1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702492483605585073721264412149709993583141322266592750559275579995050115278206057147010955997160597027453459686201472851741864088919860955232923048430871432145083976260362799525140798968725339654633180882964062061525835239505474575028775996172983557522033753185701135437460340849884716038689997069900481503054402779031645424782306849293691862158057846311159666871301301561856898723723528850926486124949771542183342042856860601468247207714358548741556570696776537202264854470158588016207584749226572260020855844665214583988939443709265918003113882464681570826301005948587040031864803421948972782906410450726368813137398552561173220402450912277002269411275736272804957381089675040183698683684507257993647290607629969413804756548237289971803268024744206292691248590521810044598421505911202494413417285314781058036033710773091828693147101711116839165817268894197587165821521282295184884720896946338628915628827659526351405422676532396946175112916024087155101351504553812875600526314680171274026539694702403005174953188629256313851881634780015693691768818523786840522878376293892143006558695686859645951555016447245098368960368873231143894155766510408839142923381132060524336294853170499157717562285497414389991880217624309652065642118273167262575395947172559346372386322614827426222086711558395999265211762526989175409881593486400834570851814722318142040704265090565323333984364578657967965192672923998753666172159825788602633636178274959942194037777536814262177387991945513972312740668983299898953867288228563786977496625199665835257761989393228453447356947949629521688914854925389047558288345260965240965428893945386466257449275563819644103169798330618520193793849400571563337205480685405758679996701213722394758214263065851322174088323829472876173936474678374319600015921888073478576172522118674904249773669292073110963697216089337086611567345853348332952546758516447107578486024636008344491148185876555542864551233142199263113325179706084365597043528564100879185007603610091594656706768836055717400767569050961367194013249356052401859991050621081635977264313806054670102935699710424251057817495310572559349844511269227803449135066375687477602831628296055324224269575345290288387684464291732827708883180870253398523381227499908123718925407264753678503048215918018861671089728692292011975998807038185433325364602110822992792930728717807998880991767417741089830608003263118164279882311715436386966170299993416161487868601804550555398691311518601038637532500455818604480407502411951843056745336836136745973744239885532851793089603738989151731958741344288178421250219169518755934443873961893145499999061075870490902608835176362247497578588583680374579311573398020999866221869499225959132764236194105921003280261498745665996888740679561673918595728886424734635858868644968223860069833526427990562831656139139425576490620651860216472630333629750756978706066068564981600927187092921531323682813569889370974165044745909605374727965244770940992412387106144705439867436473384774548191008728862221495895295911878921491798339810837882781530655623158103606486758730360145022732088293513413872276841766784369052942869849083845574457940959862607424995491680285307739893829603621335398753205091998936075139064444957684569934712763645071632791547015977335486389394232572775400382602747856741725809514163071595978498180094435603793909855901682721540345815815210049366629534488271072923966023216382382666126268305025727811694510353793715688233659322978231929860646797898640920856095581426143636310046155943325504744939759339991254195323009321753044765339647066276116617535187546462096763455873861648801988484974792640450654448969100407942118169257968575637848814989864168549949163576144840470210339892153423770372333531156459443897036531667219490493518829058063074013468626416724701106534634939164071462855679801779338144240452691370666097776387848662380033923243704741153318725319060191659964553811578884138084332321053376746181217801429609283241136275254088737290512940733947943306194395693670207942951587822834932193166641113015495946983789776743444353933770995713498840789085081589236607008865810547094979046572298888089246128281601313370102908029099974564784958154561464871551639050241985790613109345878330620026220737247167668545549990499408571080992575992889323661543827195500578162513303815314657790792686850080698442847915242427544102680575632156532206188575122511306393702536292716196825125919202521605870118959673224423926742373449076464672737534796459881914980793171800242385545388603836831080077918246646275411744425001872777951816438345146346129902076334301796855438563166772351838933666704222211093914493028796381283988931173130843004212555018549850652945563776603146125590910461138476828235959247722862904264273616326458544339287726386034314980489639736332975488592568114929683612672589857383321643666348702347730261010613050729861153412994880877447311122954265275165366591173014236062652586907719821703709810464436047722673928298741525930695620638471082740821849067372330587430297092428994817392440786937528440104439904852087885191419354151290068173517030693869705900474251576552480784473621441050162008454441222559562029847259403528019067980680983003964539856859304586252606377974535599277472990648887454512424960763780108639001910580928747647207511092386059501954322816020887962151623385216128752285180252928761832570371728574067639449098254644221846543088066105802015847284067126302545937989065081685713716566859413005331970365964033766741461049563765103083661348931094780268129355733189055197052018451503996909866315251241161119259405528085649893195898345623319836834948808061715624391128663127978483719789533690152776005498055166350197855571101405552976338412750446860464766318326611651820675012047669910987219104447440326894364159594279219944235537187042995592403140917128481585438660053857135836398163094524075570093251682434416824083619792733728252154622469615332170268299509790890345948588783494396162043584224973971871139589273050921970549171769616004455808994278788803691694328945951472267229261248506961731638094108218600452861026965475763043102560271523139694821355198214097165490973199928349256740974903922971263486934145749331980417180761119639022786640759224341677624662362389131102703433045763681411283213263085822394562195980866129399962012341561763181743124200890149838485604808798646083935964923665142968125773143229145687168276219961182782695315749838026246517590541039761812876042163861345022132627277566124411336107751955577495086563606737866506231856406991228018757417854946612532759976979605977605907564891066610158384172028185304321190446577525542775437987260548817361982675816862832952607899322266836028385135122810593185910286415081570563197173151831362502435904146321223921766339826893682531505300598915470290953719326620734112349474336788469020139049784285216341442921458955828784766939464642678122190497856363552633682780518600986992489377860023987691698076566219438985443708059464333623338105874581623547560013659243524265714308346554576800237081467573252547025507476374716350678515991736937932510326827606286459146182047214863703707719269268236233347203792459646918105261391530862802914409654825638730927304265446629290458960637519187114693453619733247895727070315309309019211991999936157650035039840540674253879275279227247335667706078379113844889362613676570602636003151329520953952028548973844862561349244147086070866026763499787934208758361219471169942238484825959143045281070626015089691353030177200627170544020906695149152745977197059476954740952102878725578568800221937177435581107939308833845586482772910086295545661413067212308487402271210586863233882374138844289381554446471057556514684357029466350628938735698686883764803265195284146535173953027361201374203009867398385143219004360289826982935293994141292305803845650227072168151619410114498263013649008770483984883860906533685990545838952031856480414932721423908651649994316592079659535694307231129116292867975171566889054393220356912933245702080671944404973049439814082278296027994245410831666759214248351827238172050410392742888015562233807961475124335147310212845459448994449960007524375195701166834174474907958820995178367680232365176749723014874577427259947609621984327148352986111902728735849052179759083741974860267060537462315300393752123678677528486921958571375542696848278363178611099336801439159059748428580545161302301439790570161088986277796107506733326760486549292513997813905358822768937322049414839401355603565604421401761206051318068919899626061848318534018362378217266375804552471962661749254228528045714420485783421132280085287042054889923412785548123676153770710425446986852199112283542663499971274836607624624182073646661712839474847328047443040334410720042872712756702795675824292627194545805300266648996507956977817862194217200523716536946770419511191270462483605113028904643775114869488784961511884147191000125588383666067720841123515355881126778957155859041257626160106751315358021242733187100063582495450409957940725479890031682651237311905566829151943053708489307869197428290490386037231160992834243171222509945471501928666487871079519951800546338838443154817246354802445180308452734310006213710346257330600123497374435581809656784646415339051465691932456235314057791936989884236471835253758052577133112007971040683154926654020260468068183914378272147690632424695171286367384431398333711761594186999346626234537345235679401241680922911636095637216745283917099091466485073920515160560473787106154702169960746569309794426121469256159342564940191229895147325447151812632583688972822628332952403597007278633646045947071241747294687757059581573499628480995678392554742404489918870710696752425077452012293608105741426532347240641621410333533405511045212617503590284037454591864504727624342071770929793540102140964645028368341804075860810014072161924771798098596811154044644372856895928683197779778693464159846974513391774153790487788083002205833504674655532302858732583515708599649068672875967295038725475708791695547366917087012413339221484668517437066615488195293322727374360410825425966030398693265422350523691085951263008318467555034597583955058403567015588797773644380481821387070034402361804120021148372794227407873789331627081013626498289629272562445805397134142214511099995445821429237838810264839482339514187674689678318628681788272555825731939518155316951645014943572631060456949296709862520433938520782207622191003446926966334259085305816044978025776325448937080062677873179548529856683948694673356963001402931314190257807758169458152725293434225905197918316621644487517816967752767709130431573425640549229381873951108441668309249111597857733273638841418507379363002639218068001949823966647123131719025237031990587719774100071324075192041812214132425327294918600042008415485115474115730598721962129885416637208775224837694859747672933018683905225001486903826108482481981675931077727026488262090723847752905876504032667275848252185162310745449887588274656780949712308766144264148241579035703933122565189333562818361854057467063806183984894662842457365645642139072163052955293592848775552427545595133827715001784016553054854422850119883655756801593464505589944248496274127118698831580476918141567961853216571696452225945947124693199571164198618847977891211426811643837723848363186731860756477853699930387054663229698075675846821230280772610069691740782024794988210954733430112654544217019585237588078534800373724711876111000877190355388157319225133384249477450311881194745595365336609206419293440035078564223432923249297270847248235576717405895001268763600812452112448756434280946593133618564324148557807919311512650972958916052993030771056352454514834572092245519848905889042198065439733537575998248580375463927365376419674806269683827129200143495667485224724145486360362115847232317369980617199364211363145807119883968129570561158812462058857966505622150748208974776417708378705292420288029004400248068681254220757905942434704644895754402387369360474013086036075991743876156352967760580183349308796466270711608050737610718002215525191993796200709161383227280177313320190059780482079607580324994622385385803573478018713802840398120046812370790924572728576545104897170310237054867879336437815780740076774742152803118498155769816561516261157202045402644129931611707733125384612893676379183853705009420630609103254025847682220367682492794734000617751295263072656378530973686420007766665889932845661224650730022095628772726222780803954834038109628057649289746518436319498402612997618900467819092737096478278724357752206684654000246833074608783587655890530569425749909890392204630047145720590537120913142758865376931480400008717913845690993629987847885421778154073505170625320509514478220667252608620410799622270348081801380066100719226814029197683548842439916280980361859771935889226548587281632769054286174663230813628776499007377599324417521476776046936962233215175926450556452563840546700404521580075454379681038435585147943092296352197852283295745457271564793185041889607012805949229592183594937074580390321410436601637650955489445419026339119607411006694977802469540936562812753849632360106258465366705076517702969513039685870236791287541358806440263423823568060764074517611908833371209141576280565223790127356419353456526762962440266022824542619603422835240020503295053190853201496804513564334103431329223589697283108739569438131809431666913390526489148332879882762852563045120637614900045218642717111508976282752867146636117389828587425317216596247643323840034900496298789487001051884494118660439739107493757349528934770739638665933255438589993537994143840662422102268328511662511368344732896613210526750893794834463493035278532130127821152685942984375651745109303992495866460942386847002153550180378000187011113151937875401091495889080764733455002640980568321438116007514618278844904681248146893097430000109019843208666309225138112111599481279636783908122243781910187779940340765274060382341505327174162786748880857541012142866746631036108800181884354018236865322168775041197807652581153841736562183567501303445659593659097469007765630951563662834863997975493756384052967232835634030315916549588611222995999686827014284072391462300161735440831436438045892205541101795351355885271347984937876133791075655995414528917770157581348757680186242922229776662115422497113341739603196763909350512320947616642753474388333888699979916463836750324186324862841878469960963808275129963381739374220953475861632216305202703517037490298568525595814192954995176552582123473108197663301341750815123677523151607320881829564072634764505887576136189361870128904026792264704949678723740258130083476397564463263354967528574953701512710069446442062461753644289498604920521823213384326275335198829492086490709605921654573769095951389378997662628770868323505964098050188569819974056600544153213840734978154080943540759681561338964320840415315102432432476506355824097853468115105632389804013803814849735287444290693934437338180109010178859205640690769726390933911161368466669931806838234674038922367229255166024468597460763582903728529497158369063729095033685951182387240386566803844098591359996588300622799752913684945617051993291599492324340413727253807636840295187369817973536657095994220475105964407590707800203936232471823804137799283739673588096389547393847128950623044844732470443823390251314913859447521279271461067225268355552093101409825032410413568118889344170634801818879038524372843450413995267508390749293155948992799740206016686101060573836203436961399237050205913691224788144821970045564629606180152957267746654025224032152010626805924692941841465169269429703164474892255335681947010558607539503125748779271822019806805065513471892626509987040387239361526280911715016398391838208037107664447231125594297930841574857549712849567707689130531391519283160749372260464837412112410527404580769077499032167615319965660974300890284787922098945551403495667763293684189129282288893791392565790306170421951746426671762860073765482548949082367049041789827946948133710054375735229262593956809537167977177738428166119599319878150374402232529401665135964883989187712666676445928280724774198051183403577263019415056222709266888151008740810216304551119368970339875899163436766552459690022966390618234599224437161568188716785019552192690477008887628817012435907238421885909432302524008728363411346002474635054076317430285610328831446395259955777141624975159928860344101047533467745304372786885761196226858948138978843512251669067618791323446207724263898911175193575536755089771736080779854992933748575879407969489011853826051113623591734039139860900187224540287265129235072513463360399477972112534407969641965843292485838961537078625446240527341837296165871280996215675141677888852182017826857947508860561917614334505307242257944215044011899380328211769427535155005035938402619271248407353448057641513492090664332608718869318783911372491354290631432773141475652344276989264107291929647783152267653096337719078870212101736288928013320665538468875227098214169947453467839730618843380636885678875093483712812994594714167402106479446230475095969112132841857374507688021742000919037861149289993213698282550504394125234293878915292944880672904533715586858939119405867992679680197519294635313212046058273013652463549197477178431255147195610894481716873695950097551490905804237705507658316604552631788191592885801514109903351599927649260209167537965856540717214902727720720795330464094926792969801456474075861684175182703554191523285901319918975644427209195806647378539654749435033660984556942205412322091494769852266066869313494128460524360062619192009545595992992035766358447252088884387701098485096145536625056482223310827748771249645923940344103848804565572091537208369237042203903081669215344336555529659147737595207945959705914921302438333795709374716303640945224011982545503754397260803763665873652598952691167996010278358881115715841157447947403528689000948241339184513780599922518984735941165421900943669850291800726152708954832476910790547502395766594197888184410520182887164116705282644694744647098868806589441700901457017395923798880631201342950834144109670046006970663011398838065441035959036385428890533959794761355553930923535001022746402573996549260318712100543951693151027362514695808436694837491133853153237804262479496177692956225061325782666165875281706154846881784460491851585002235785076884446778740147504422625751017364861832633732533541921309631053221325624194614093027893358253117355483121861881858082744966425868045457888041604096100038498733107556338903472441880147049601445215464463527687453004634293704657874612304114285841393154706964455988627023413553369614688941305795243448285788138429131334004443882694562774572044648927503718896002502148102432266232474466759222209575796803987583301188094123485941055397931150166149824109477340455944773621407298190673422712213298282018935518148071161293604753935451916448851919768198943246882665846999081034874330571542521148982924940641352048699331708524365460290800650242152985981192512096283326807672528014292426381066209220067162423905353942877575007913587003768065040693290462367019980646423816627807455845427972813636496128156006336128191171807774985721284909654045638060252797929001411671808882167276232695731445299537909359996357201956910538231833232287960366154934356195563577788720380514071470286274866657727284963806068209087433747557789312207166183290997968077406958305455058169463910538025471298095019164059177292147061205379737583188169040345737308922870487642988327634310615656041423531021112607717793087331713171338340553990771487460398786341001815489430602127641451753685567812410487627891844598648875072569190707056126189065115415374343317047710735120897496645858712323260612277676488017419041705326219011292994134240685947797064845451230432700362044446030700191145041542081272865853265986259658341291931874337468142540991989190800932571522595025697576362583785420687607875336423890245352422314781169503074229968826623618943797546343148694047370546602205236585352243349189341495373185461775639085063014980593074413127214430609686812154916799933602091124634206816046423563452669922471069433807139751076567042296090608300021464567607566954478223374203012231363853654881189686762211965696106838095568110741616828887291489708929172720203166447529815564916509932964247593555309434272347352556742335888541040816256180838589675924812967581788580374314376448051022575484145519560030954484153783175981222278083626100382962191366874699060135591098790178939450950708008470197103009496348567312617653799069636653423847839475100609198023662240258379166773365981862096901237048554417883308174322415270961858397320548777471419620210209191220035419399375584896579659677748796664983373844644628849232209159662520817710945518557849193422490391126440162540353415291859606278442584979907537650351143662301268745038748418198080021735115212731055425489544564305352174412647603739881432392237995520803725631538278957675603269534153713162286842231199071736627159252166809502575991355368041140314363749285705000161825898070568736394803223614046040114806234062268309640850645651849478620873085379933150826863834559299180029565026007129052213461451425916832384997363792953241667672636608451393291270052813463426544459202882461427621775375422965611776774352683633779277270530866888712035447876784560744034518187391335816384135671836398155007571160102470230622091361802130413326178162417512244621269051375876033152978322966881927980317206140924273036239009838514870083607798140381143984920151006882296367005549739432853347069867699527940082808004088715101937674677308829209607741428949243190765995232695414808738635323778805420822372563677537066731473034968639707048980312454460881066562049301165836992428591431719573266391179404608733541704103874776765684341754165196198749248925074208937601411944240296394254176301656047295676613344991906936807335516585031503969133874834352963680541252188830321664605945537394451237521783974653503327672856949181939882599528609756988006119162568732923062305856741898538380455708093583779146285862468723110259940158767576908316771742839253030116008388460480714783616096417155945463992218291049279692292511127937956640133819911635069635393263609859564620576104087056838003026945197112486381118533789109814022405245839221604563452112217417010405679733075395846470584747549604432233426300669210577767005747717924479033884173998953956252183147543418288542292773885210317650331816851164239848424590906685640848647122275347291760027720870911199162535365232073041274034572811430767907488354350043217248710670333120392560589087638369474784286014511344822568815225052957047644114576981380385911927133563495517808414736321077680615675679427987637155964034837628444053251043346237257981152490578554545544521284596123041549621488397472003614229920556630452498964736582801894514304786079084792783197694969107312631098304856335067955213674594527406378300013912512064260192473433075238519776003450830755426710384398977950807029186984094318884522838953410474580083102559343223332683766729150922336413159676531206115874584959884815054424243284316840728675124303432065817733985334086697460446675714566752220043300633966532727116392162828433593639159705356053514613914845684624004846269352090635453668514854973445950221749129562168205343471694589030666501122399537392507691495999807311648756832231073560129088890744800411391149293646606795428267735789996017144747478225971973691022061766297479633594138205086538353669131708910097586293229823455852188097716091314156122837942301407428575172196097083924688072410643346638203788801942999689233405774399455871877216719494121739784248455511242394951082313341900954980974944116854469271268104643676297949516289492148642491961317149112991647235802300005064784461108119144491158122997646334244709961741485294451758299141571313728817449786634669798346830633772269462112024544203490573677610824932873879127068388893280129876791700811101390149982272447545942481421950364530177841993397102927809710031728004805124074551549732750486803723990135843376691273055995713282062188159921411308769558066389515796657753942444132413153710713696613817347005744827454600281851221948810940990932030836962866394565967627501248115050908950145078579531647113835352367831505194424626030330242338666077776239635323677925205430710728141790899634584769419878510492882850463300762223590013919630157719504826367359336404549112258621982298835505646112004300905203310069698444714235105314071504276373299915834406869863675333510796589211792326198842135412149528788336694865244861474835133380676661407399397211711742580770147761734131603558025260050613460509945144948081151767592226583224350669016507085869693016644078294761341009535585550255597339510110971298294141681331629091299716639397867702538955891914794032668269999184934935211456416738259128224462604746869983410026893570871698215899513144726246744351426712243483604648772445779053029254948858189768374090536327006900359358153818832807408281330220365090606491102788481971916313409029674768726794857081984998214627359025242435180332517940296132134163618601606706467265798338016929632689885200601362601273081227215748353450689438349412293543902425375752769352427853988629083949264597885249690631090163680953204113385204669630373541593393522756119762747306713230849142762130005309519323128841489554106806167406487993116288197243409967376009383603198095622927512337341953004227167526574854247482946033738650386675256558099645475522692658975888525638532921938019756925427734969256114768880864117267022134931528551422115705200589696666380520381045146922300179526074073867465956284014582927936380990043240835742657216061005892769349094678292546431043823588171215341639579428291721793624081977688198990199787331403612185796806586358368146535589557381878378792100253242080165674198325264395042110821539220173785039143516741995771521562146363590589085528556609747555285423403032646886231716632723063141132530658836132917768075432140462636888275944716143389283269025997050182301490370977991149321829700343455538624039420805778612757584941515682564220804532300793090191166153543478221179436904485012588846202869808968146546173497378315547892104262894483905068544120327206523749314053251706935758000907994179285593172810569943764394126946649345709024807222360625171335948844289048618791256901451367064592350923125630083621154956986427428229832980495185004227961552207721881695017720401523526821325623847681964679465083107575317039226085561469331910768283636565852850668677087733147996467085762627546602962716763075931898435733867096570173793228282348192161781877007047349672896631877034483312072457459021348795825604948271846147658084172114999468548036816547370557391190005978900210343774692794687907618598689709904669070286332736463214785659245622271862746178962426173081915657109537808879062101376345625534554278724985764511105147926421816023366714189801397007129729868732828221618638416311291390879371441004437877317244968298235202142975864408249177811473076083727735151530453692259569089163032902249988302729310416400649201402822532888759027931308577656237655465764994184642671036986917070591913859893308593754374657787440243404217672261245635784002966874547245072378937726048417295375311492496118629759082198546452996215917898722033017086558998137112475096330473097228065060258129363262920237217698981185421816214970366523105064921958576136340722729734644675274738523667780397422562652742887381633962791523444894750071035704323055086330738705595047097042231123762121931957539060499356674630107427684593949954659554972154920943143136002285265513308826825684467836720708693027273333265431409369597997747572516486560938890159749662047721353072312577639566282762290115366781044356426835520595903273204110194159106231322498012107514161932144210416853872091634978481756217861776222889010586714799410601577635093648454101547200356110542300187639371946237905295153912645541941109930080128246314280836603586549859438241574127661501955659647747123114552198867813448424436407385452835140964712634742696037061756106538827586793863588408536774888042172876831543791038240272416410351076958069186054906133629466874129317991655777477566485241736146967099568973162555131507152637731913171751698949783240168687148831366978115818232638582297269787802428782212129569881623368003387984335218332268076748717643140875132474623405234987918484766826829561643892879403896770647876728358810966064816253158242438591594357823452933579761860944279313330342296367732882114801251606632436229289296557052414572925819073335515902308711195702690238701955445597233943658128690311432945812501425188456939677683514955443047602636398192423011309913660738691099481891670165891853522461016552439912303415469150965061333757453644319875920733482383904361814523000416285624017898966187299324335923789127925660894941587673470555149072070761167173096507351364692653888386301993003054113015422029787348322968371736228916532953182717997734184242307350056049870631613788370054717412635796079440530174213882746668411822234323169412609401489524987526739486390489076421272116971172200137601359045581917516877971761866029349725071038827436115701410664457810510013506735069128481710324913329551472102968266572935837760077658527140673571823418609157619097907485262706196097432783974406219528137186890117867086901579001550506192236057144573970604185874399631882257735458709134627972756076891285674861037059098061132187604504874217279698531216056889493422432407822830523827134406295836917197669718427580519721871957758934908246303617621710122858719136163784785719676118392479825448889144668052905785209864478198936892907873248050171439760654883350688911619480972955239596084126262856034274377580105813234572464882966085721659274156356281496410080495425681756796476801054888943326780104864046572429169752402459857994323102027694198619454567050814044861591244610954953398503618189226747004472411992228086641553833899651784039232791963803293409065200641474047665091771159099070808820410434613483661887430912351487895600380959418679196731669321912104783420894731843488571328563614408034403738673747949939076522596300233780725620108167284377409474820443016372213195392808907236543066640092827698510338321679833094040609957523059904947123193987195990516312657257226178964656747704253871325106435309745832309708410733118981201447646457791423573248876431971125827102979875263342843355795356992256505794909230866937700279066636452203731451574965614816261858852856681064020472014243322221389808233524340002625721810492374034293352085408853318145418028777812546300193655794914844279995302944114717516708188644421670702339168878342802189667328821651580306511598816915613709131804501248126183339805745102028357925553635460118811575415954711492287084733588506894270851782401173859755863039336633293014366889974210231734579665851571155959196953387040752079737333062880852684312491743172793036169831960497609056301778595973198417714763217593149254047139818123440834186906073310730687022813300545166813707999087989089631954620234399318724799564371232576741891663164152030527819406957404808943774720854519969574625353508824045618525595710802174359712670506940254642115327391404348174935823444602884919035297170343618627149658223377178104219893533510636631651174450165638165192404961562515079086112358169929161323949347190593173477704013684662805098068337537018772151705178891035482213674474450714798543258926539717915418220067465152085396986985573578849793779704460076586525511696342451570428293455201469995564861889644031352409588159147472030021413846836441966207681772331031791788705288459819325187110599135035253017984877228557932864874751011939540515033761527901049108075980422869140039331902826334954729532342060192780949379984756527098415910738523388418078142377053699013487160743211314885094546739362748797656294224381737690756304188919928601138564573088018861331632924097497100070846351948207918454076634335102757004011619401162271610390657266740567225600955942894373186473824705013043165666613045146460593711233555171795797372241171206870206353521915202652784902740751102626534304331575443688107061283781284473250105215351801077244527745838573078364822401880032261620323290720832980976938366868580006997351874739720295919466902345064367557810238499296972745534141830609344989931215777224190602680062357067426924977222612074378905847611106025766615874558687562258255003573408992374904208809926818262714850464031029904386704976130477828131729837543475846856228551531689577746946387006403775492624370371012909543270543316033372828978225547544444422700755977937437129782536556359922897695815966168057019631466828041969376265749532036758395016725071557075650006269070761679042296560595271036056674191203935848115427988879406552755895874455272409249812677472747145230893884341800738900872433775964700981936495522545073441552275209843293401914171541498330928881006369427454728128078922940248672333610136975637284081992266376185468223651936176349764784513747375661696762885578917066708225117101094323288219401635175287938873634954626113660562653921987701504418064664471678417048410301250057784409400629877144811218753423255881987577865212892547037533552332639692560488515819977124435296855250125768005754651336547160530299192825913021561030900505994487359078573038349557135093066315318051793115896186776254708775471159088137303634557206185771512410515027356438955637272766099001214637493783656998436972420341718754180098664821318361296867251676149629666456466934877854923677598627201576284169225106245655339437491741311858092268571381558216589445002027063758243121156845629670955552715290985653123336725624033644197964506373652252082364270848450282230747408499307537629218713608335159519392021918619267119370135812521248482279195221615143971908737050583001259435479142505038564289185424361531671305347584897993951034668713876226236237253854867755690017467543782794662973938677387494564004319620658169599708320707766503212085563537415757588255831292978377182151231978599104420863396292730764608859399303287343066103077898923453453319629724468731550285874754010770411955161031708757116292144663557254973801299238863770568941557612546709782437991333337796487373601216121390294150762944197031122000414408965636085316615568522952307329161301841522081127121122773414497997042267511455668951028081280058263499734188941797236366054390777750164790754951428012581764696236411703360986556047596124792553862499571428229295567969274626088473246103632207502366947125556655286937197522969410778216277621457198546752878191451920308116454291883689273887261902377579558772849117835506418177541350530599791690979396979245654008791081455139845839676614557724568939555315073946669653502650996685027144305126293109799807952035329964300244463428024027473684307679695331949180423445681015631199289483439846046868987274224217781494938860501475488437997093973498185291352533830145315182879608645995232698828334710023640183829172527834127373864066624580214872775642897229954406059751357700198699162847255497001607118202457896796815856465731426222487754366947651946369383650656678934306239232666827511127577243033494133565136919910555924137821447568818578178007718654878018422214932239061824135601779942199917538765116157857661515510102780246280574131623372664281261390015621266261922300371215233379407660728181199739784124878078628047298417290961791195049005452747884289147468343793953740978007239550551429239052453494913696022031391753109211739838492747334363203095091182255556159914692876112466304765633640505213604284701453642283852720675587896907904053861152812755773375471983220323309897611927640075987280463182211498731429200813670349108672656939691574253434507021357900007003169688636802730059576357523916011495500211787104258719712880922230590574345788586101248247664730385856111031779845143565941623968250661222073470443365969057149516393929072418890459715650434051148082481021570543725143364204822304461750821365566946821884539727306263903612183189036275397656013691397005284156973485491903502349045160258536437938547881763965591796380348622893871353309615508741857410746109688180666753507056018264471518974798468660391100276268038073081778547838509663624504727138789702540536429996421131423361983219979540913657600039337507986151800017564358047832903328347184356126670871095486636304322586634379345478005178001175616601449217652808401010144036977545972244376827894429254920816796776464719721725754514779707521186309842451008786013265143164898779994785494387355325437902478672802584836151040269444245515632360113936842246250985153209947647044856051262599391370918970585238623563756269285523108189632688067528949366859979318460413423768444033690184922746885608391195616969587640129043051162812782170520697245277954950409576161933359885985722771021028871493734908062495977383913766633922833018406787537916202101264711177403097708793022210894688393729548189390985443770850141835818299180830577451506477626045054199477478215846428131834997179215831920559112841404861614526936595586185546484449356468890778147816995812301121896525935168313311214234045364638821135032889698752484057160449107708677780217818261313638339939016357745675651332980295479827611198643211635874401406546299356184071002157756816429957140640129590690176843332764306323208521708535573588656929687788758964548217388433554090316620605130443493937571122796552754857412076479861502407657146581984436621911838256264852056433657469013504258098576677812405201929011471309971049219531148375087445721543653384057927742629193204580131371720204071244866318999472138962337654589983736276158735781585360331422708445979280504240069345984304263008366296853261786404572187319244669963869645458668000813450733659480301242326231213378637516204311113411623821111978306955195891402718787659264960161685788847622207476153207719395296022514020624082173284337839351423383801767839425228348388543420922407710561095891845737683852857561526673235888592094747493643178565070553129866799119317599865899209289192178161757520211365278611476782575183980292140820390001276072897685860081175231980221153512294087657429774636867093030153335404250587641971050868632652580233343623304939155120167767132665927488807247964618950634571426756900310765779240374018379365078413511362558954908126229441688728661458398376208640804105091536531227982043479819035101168812901495298127829340613355972078387183283408819601592999929912109603307337371216902464163644630487488196846456475709464168968846087140959911951997325496572640648384392257225841251191876993962293145320164109508896385206491579931148540228058155024117926155988732558487851317260514430242572606947588243648125959559154046530236298407899635380770765094855851613535414679257010574996313998691237197890426547915624261401000799482383248941778277227188274065283629139201823328157885814503351852231853887442150888866910120481584370540492046911102740017027840870270648579984497815875976930580543945874780544831924420197744449210170088418402429361131953733261888523414241740621368235718037398815518569594249736273441280874592245748768241843922281666922754159485500804945138226872679036285024165606598280510774146064050005484878487819418242321484667812231169056323028172226285757594630759353247726594206054296052398869285737478930791689883700786644673905057665380532970997787311691372019002765922618853416748691520336394858764677628849269409949528871590878062780698780290613943374760004836145349603282418989028209452071652477860092494858711088606578303490682361151831745870286620470359070007181822298961761610452055212208305042948280278664554733304141829491817964740787222740944712865590910770235793870419343965711763981889595944792196292473840238417170401560069957035654575045013293386787871351643031624364401978928150319374801217192232827989490260443521220210131876146673680470333262966195861544927633524872579684301440136622280872421887991036563096802886695557226651604825961913861407434105417679505704709553156527674047832445921514135868197441735611598345832084084344907750814255803855761152992014799823106094806549578398107791069968526534395370798191311323826931111787097508631804617471544666235349759561234403806863010798862767381382910777335923984781054809303698335134666601107313832505289766868774592093583817647165641264151772731965298912217369956970562103224503858375434527718783154676505504468577493195564724037411806028519235620471092580936470766384550283280675503302045862495677594044142652536941494997208289999458426837707179121519311960934012422901648588197496347411904774008885351124170915759259122719122000235950386050904234324610509462259337272621341393843675364692759959541052984000108841326444717476452012328273621758989214119399994694844136951436961976384273325628523252921951898917284524312385225429771089250876033978037048533448779558315593667321034718897329984538801194738813365572524297519344287007200144885967129553680412748230593461189971788069173854467145770011536961231618059509781783415339900139848145535409937740499242699519686183269926994632553715586922876186050606050706184073400056367527533488603674202347515637368970388674310820986699404969050266947923147364078711585810550603846251556323526324028254556483459933185587661229766981456741954445106906866411528361916374914229625845674025167829332444571393554384836295200022162297372847238078395312547695329697841224676476689775050377870795458509946573476610595928264847916212726514733371497478606872487465646845799651682381804748620863939970211438400362403127695315013453253186574408194072813625452573568877226023176024442054537836650472173564005771250830095413949038635157495643380517325786996478932729971949602626450335988784177035733030002343206549165036608321381933528878014044331877146112961299949597438947395635344895104947848976831296173449650652596840608924934764770899420728202701461487196980741329150056819716009787213033230936449111778193474409021527194401737023325007739702470695918513876765144754537590796466789330168775972148919030441622356457819719488221526540748384121785491795152429488278402012107708165585019139828725276567598069894515500242293174903206502627021836811658044844764508973174141367145920832617354040123670082851414247398928550675383343107753066552631684379041994424741780930260210003173294539408512627908876322943319380034226576464484102189646773557017813703606193754833525859904988387033038419637679544848367914001803816374728481680076766475494039497239686539022479402421540453890027027616967288871242785794795238403751777314660833733946302387672935517544514977212438559274663767369439396485706619298086379956710744012585026965630458930787880532438866673038140754973411719656042220287963377918210228805320967368150975189952089110659986698885263530837619302157468901153766860899679470409418062656550135286874081599388612032203011159406118244639930048265609456117035910776279625330417374812787905180836185460529855589629232000900730542585838683256857533951325910780492421176804152483135188747160476658866969164308104819396613933602389061947597559949774851087586679615407585727814193721620311188724910605586404616099981771172067288199480751576927162892964300786293460144671441856000893148084450095967231038530416150498680448061658397971688694173936467841076744044868779690120070321004282737447479621183532623243204735807888063272823158549704708272497187721474521550400859426040451091208837343252915292653247959604257313856358868322807014003026408061288006000889864191633905998244868218719096493984899233830149471017508049692688882437917867061575934464944261647257186623828761399086968715607308285652128059571847987956018311977383027055992317882344038451460235407226300704578724852698490894152609475958303377522393476787527410442043706561260937141372654988047067382493931237911865259512468358280447735099458072922393113097279398739236181263194309648189853685994482001115326184222906627472654059177362570543376108538124744220049124963273318695876009656893115453235922138887682882454580651675358447270195928193480550637295523133903311340767347423415390357795782907452389109401299267987179841169862341954818305702062658224846785242252436902013579757659662370519519983105981125330441943701707085409517797207100319032102545398400995707094250349515074685682598048814717901319543749329439976109802536823869691192118601529967651317863481295373198972409330675656095592474114352196067069055692053610448424476938424110734011427831670030200301572022925104869323506168878798896930167506027464600408037505675653580333806610745899002023337374029907018990202860576375123264721864241253740243491089281496609816780885356525393785005476196782551345193024293793365811910188694636384944501229439635938439837088121756365299676177607543192595497571819635243307304775453352849617479851545256806080597616522326735164531925032618563761795543193166051366716905602713798305486873783861495823064740570790005509561409414884664689251675490208805662484850454827892437607106961006817803370171853377940545696772608247704608133093527481037012702947732748927496762216326718588477236807441662012664791739697716694377985970068268736453861700449023575928637530357017954037549167316496013325868687445756703189657567581284781627318184495620274275347114936454257332768143243893948470417012161474391643429570351745500649233927318975318544221641712996942522802329300444258957770672299794382824230156527589990508890127097249172579517960343002790875953693637494231578813909924321045963365728618941003976895396250457930972176480083918064334168423455959606360514076408954620455389401453282022784315860485565234921811498187553842459272813096805735290744342386422067369905249986915463269359258921088697643636653953043316936964017728699374713199142194666990188196697929507352626178660980578845864764830822714119822044574875520082959672083953696519347304814528654449410282033536558242069220791146521265123795673253044064423795433482177259640104504055215295905237111283974618034888490339032619622956340584321726625909187243804374555393727954201181616429640699123613891146705084004596976964037411496707338013580469408536577792630930879792136465498503838683784114541584376991061278147564029201158469530681398698453228961016879326347833887688969395352657942739877954747078273545120948702106158575735116023680012803437055725562562813631901217968122292926911891802114172092775299692656041008233119344721976661184137369952078245959116906899019307709206994881440343614050745829682812587527827263994551386413629208087168813070686333833085454786960558360343274047129941708286451790425644335094484764574311231704817803645207702408774733749263104317507860133169367130127357010859769247216665734301044433905797742656920558478040981810840773333614002051633398112431958481781986133952380397499327698359022196970465993036455110969823613684571496814093071526318493782599811671946077491715933317369551869104016238127447878144467909959845099010539732203301223543974528528064080670988838684083517181849021119789759483672509684293928004764945465379469759838591113982339012219386689149201081535776552249856570309405851939568199717169135357984084426708654075069898883384816655954897669250067147585440335396184516443574874081153258806923240947155544422310337951137695670462327939225000770602511958001942988644211642162032931407705293954539250691810147502526231287593839906983594569908481673840939550592494060584844701837224673206591092909453663940741410533430405145027504994626443299516275319397492772369918571802432507992440455553369782334135443264134256020635343001038998160429029217553205432250465002919434168614049887858668811920703952895319344333487176824170099896285935254240241070118462176594175226813683081883176520048738575802966101797108954912757094704648975912963900725466718834214760513016782640340914712012560259883751324333584413169717176741562985947845807788511446425505916027270056819211136626966281255355834033168785554690277465857335908166154219525136617431200632937942060130654301758259823946895649464811654505539062446272540652547947952021970141878004291135785004149969035350462881418030551447044991750315019566005881121278333449674732012444803234480241539376810967448245824131204859079268141459740666734468503061027747831604165568762278524687505888251713618525648472242796042859547021047381329885796453540535760369731588936841916536903202305736836086700426790936242379678453175632120514922513764781561741694561041654124383759487399093159274475983235059737495676813110547184727935416651539557948203628967877348579762975450254418015593589085438984422260304864012431803963837888527677337019206290284545159702558120250436100600111253194442687901677263732278584160071993391318559940907431079541859326219946389317600122799053789341926503601368160546856432955036019573379990168633899752889372723421575450157046976972020515213529373629524296888274814125204811665070851369292080379563251425669087802563432342958743340388213616749678640415576749446760260528204128928796284828575875234107180559357036653043234913120907959410635700843503421942262764947836564078696980855454208174012078588288482105661402173027355227706688850078104112154804616141784997416535250493613579477662278471598612476476004722896013094150990916624672218491889743446712159743722332549929604977072630213917306544172980279598034908408396868915861769399585803474070986055285342540375073509629284560370586068684049519423181697170761556710458451724136192220264305375402844311919382804833653192149332092207254728250658040425210169673596265049665107341958674568879671748841821393261711657936293133703877565215890879245276235873420242542314015244933460316227830824270117378514539904213333472250867701672435729912265280393872571240323092222953796829646421621278521537960113662730309407884495890577035665277929380636468213611776929495190220013467391980977902730034828611981348454637791277238928661419785203027165836389215389038536649487612377064570323025580286192958672350328262768889772610126574774949448082657117472397475662805255185898256722982592832223138735884591571060658569485505883587443216904645488860334133481310661184882500007016064051337552318895374650460947992073000822639356409310442795749066378011964539607942660062697334292524617643860044072176695086496926839100108842089652109746735063468596226558328391252354564527298776620076222037148773253707040015552882597010227528015969434089962506795372354775399969591011236975856917720296567361061297580805077388748033783816190446450067483056138038527821360347455960118101278852795558487420995709975323379984269969548920901741966169418249869304840001017447672765465133396574306421983653365996280865162968603500158976475645108776207268296373886702070285153964190924016142823655162402965065357258766519246471153581087129553933985406994103300233063457985531065523689661132559231345964832911856767230398765889768774970184798997605121881323463261653302638123863659777967403321819665054096123706329371639379709827309858071023257201277746635008975997510488060238352765077379230929441780533332272779657743119858401225668241880219208962831996393003603841114671336969769288393448491260264348906565622586605775430508729099591421132342474157452172109972648980736889017013247188835121208829639637061214779266123005505171029845566879298638206301609897310400633767083908051254503690149380437910824850828159443601358474584092962558715184121763441019732004455371912921548882716030331710070588809686007774174004553344800079076113347208196923527364071323852745870981967264759751223692543944247759889029209622400036895928342730168082948108228310198597028237639080020869120335958897180264020847192430169354733036541461896240031708113739223085601673505626292414646289338620503305522009795389593835363180979559977086883635701268703145319801812062545164100651181216908335215067949416451730403959572046800267295058902551514186546611384065682137273800928442672589277614758214321590838381083256882000277715553489437476713022514195060103892138963956690293131488923991426858415999174282668273054039774514283189526462293667144844957386402914676122977500181046172795906506575651332763810166190478175866445665769521486501876856102642541973112641005453293006839767470731333635918442913142298941080344353606564566358294048504873317098232401727114474897277035956819063202911821042326165059556578213332354665448288435906176660579058861424881334635776505904146689288577644032917704246171539194379785625158079514847796694748214023307467846413978466283542503862354863099264348041029444567352969876046090638178096530698269038673444088353801671993936892077940468575183815123654472868401670402707588454737256195324341344852609903557102065058679085191379715862144953984984023500411236353680783813027506918154617357382476247576083210096236368558697629778700953455658713973986324463091329420427369624253502348789753435519328147856583612648324980921965225169482266598311159835022916913191685007672722037136422740796179978810371204828596003143326843141684469612583652137034996170294706733835294921938432556320778596501459321759304992315735811171620299018101160802912597365326997489935781178909264539376951069608356369646669086321332613694188029544427259570367584278033496344015741367670648152091474233781810133042094774796030312819142454924889317060734351233415754158239918619150094876812706936640769325684870352565896261948492715566716890393657982260170006518618441565938121779857173558044091560759868291572597522272053934409821018177891228430685922829490695896533697966369335096750935664168100530102180589918442830845441775161474680414289615445439523290901058000930943652599108011971400235183945133961213496413819468889800197612007144232849745519159713521367172590797431007992567778626931058277050079273280572191302642586276254382264472563983175796721606087377227070002113836344704268362757808649138359144027514804345928981220345479733853017451803647294834841808934089097544923062241839621256870781528488715595199294916557704282521929636283500562332956753409843377598204305517274714394656336167875274074287627504317454544570204024012529761644366497718933118235744385865831153148995058080295020676443535944851168127914081399665787322988493182139992382890184533729456524103484414345564078271314625594759480248493583979242423416481817016210856295108568608628544882980646611834193658864576321099041687120290693249666348204159916898664379808484400314134232217218165884726013243567125585245105816930728465691773142913053124771894403969498963699744778976486092330722664517045625371818612730358405954516366489561043733007377127227920015656799537803124720597429713141298125941677030852718100574543041239558754640659603269119460979515134488280808473137345444511229873930906588532044589614893290579304521581752239908895287938775531881069965879932043397053489989869820876737494326583649972154485526774996576967793532827469565131577354206650829818068858193511512723382709369159630926262198460681179899510377722653834018907111119888673763980544691467492418530193786289127643581995472340524531221150155871420114113749721719260596332754772191184368559339953219936921220682190527168220951321941045539210059067431485714231445963031717100059242640048200753982866897541177347310859313933150183799849226415854695146669415370054335937964611436820553121266511627276921023873086368726205550567292941753137120347796255678450490209402576756305842971246799943044623059101739941920495019434265782013858540638883195784341636918812224338923835114374328834628835959074605770937816266119973425385155169768459850284603559248477839181798691290254464169906854289883693196118206443350573687070242811070216681726093205224353302670753305692033321446517706388872539737350027158323290205436417615578790858061118085839758480348581087965949020284403326988507888504106046722309171254776339771368572306124349389856991502567226050841297236999700483925060656204091896952637869678798039201415048287379058876256578055000524290627346396237562305467911862000163560419899497956262430927209123299235754665357769893817030791702532415098915658750272382249408621560007695606110697411268949685547104256516734171860595238442317248773770846238777219355127920059889236997228415004826104324807747865599206997539757463650379444969836317508737545051324726448748275362306060796615228674697259356751538157514952256575994213538783307152133883812878385960373729952001091605335838752764497476198635816212531228150181290598395301482452541455745452621273818857332313392846397935640814202697292349012839202580905149126183909067506188453197533702064061229430444427580506477915974933657340153392639762767396333624833229357444011880831116944148793169006977488853935373119717330895839664455152303482450812428416279314945432232058931917886830586995950312203552521456144611884421692457051548329391612612199982750525033051713666089422962932556199458794439031897663094484551657534562561057959219575553599984412242328843143977255559589075525842268145194486945122853586639349646490981969865208721134450091482814575588969036632680491316675661118532103201778056643420253234631147694278791231386635417387358695733618678606453048275794051814778720733980792620300872687015118536151881684187956767316174341165061888152624745762334738306523446007337262281716288921853899512837042310997268324824046897607126107729276738667485360521210835442644240834674890726121983208131366251285792093793494479842145529809923102009456786285159433526413736429886205184199044485242214306547560418929083688281759775337108794523791704896873899637547930105858351721624112267767128161847447975446757824263256620885099397467006731076414668035938809978296861139821433754520542243944555152245524110567428850699388449116180513413380829894631195694471159191789778684086958853613361465272068433467128015954324840059567464316021332618049022546576027528512588847320213286122465807284837099118177198117734030314264853565700758587719192824024330180244489425784827799446959295597221246860677731041188849203345938704231535180233122289858358255700942183281115589824012099271116982843987069449186075852532682272024464928896027290691817243468326399823713580426212460864610597183339900487004750418704965110204935355114692070232820485890422268996329515587867337167445672507594538552336889139645839881143569650792751072572818297642587857494666118795789747773346335938851878355343315795342629547986724358087817013695430411996215985303921882563768746332996737178849532406289469138896654004863122103814123660078667045282945615307397123840905847630129373126442596737451684545232820087731908616066162711043757003637536732873874570408637117902815999998734460444002096374929803079521334396510925922859753787538041990901269225083749125520786126288299644937751486613087880304945593671218119520279145982374429902140669676787582617848571163705258764110179601900694234641052336006717256153989870650677787546967150366013341871869750086743567771420588422870728904770135877513445537269747102568935937738871242435412468286561822015895005736314874708459461459186151620377292877504435242048054491230106682980469261300948122957667519727736061909026177966586990069097664213898757624388014291394847634479680888156013466821247743405414877825630926484735038005759232331400448742948707199797051932422556560455110918234549357000770355653184597844681479651382181153077263054887528850842519973083805499312622728773567734156283998814698112125939462594667985690495514133950634842921140820295885516672168210805642982453242077806998565288311132833131054230475978269120112138511206725008727890533472041916428468239490569260613372535105901909711685370117423495562118271127425557000227021133751568494873868540476160411382706297854801526911163481686852825623146909822636593841346334442454441717049755976078397733888525524571612170078079563106667376305853440719144197598222959028368675098518812583376293636836655109984615657604577896635137338226745822968001717959376274018061677849022861160170640648470704388864366022215581801762987841212345392701093200577554067051757414825546875651384978088464299015144139551366006281134856542542106876639363925879501362353044397168953837831408393910775099279093048615336401839844768346402538576878152019397521032536275948118557889965272734367457645558484584777350058425997630925475611432098247534360914816117740060592238255275192566333488286767471207846228376710101623690294364660467922507585368106003284467111883707600140059758493736308636543337419773677552469925865305027735026660671419155666686468788657982220901895278833316701242616974909430077372995238044414949490902783531086644489237721374900681920503141762786587215559483649838673360450399153225589719031928239454758479713187048376283510413259110594272757807676190847400611388030072851608958919240960677911223623065396205129793475212295899617643516935349453004715318486366841324389400952539863265200447711789242832010377986534721990457284541585181598408728616930132214940592192868799709794190021375310032583166640684670226160286590038643562550535479607193713661727322879645701402509930502791464251786168348605012985370482891856016773577760549779185864321265765328542216745862478208580295025127454898876217015784179860648091252586898800241127852221921620683471693167562641674142894052871294580848481573564896355076578924270246229329958298823911845888962033242792694776648254982040525937751962165299012687287344390905393667875900811148464727658778969761003192102699101321620623010127100453710831506380656353405686812621741158493393984779679949485218749682274227239065884550977838775546995706180124856657299318060793931618043590093478733364562828112868431270642211114888123242770474974375279794138881050751247757005439727943388288013038658151401723613786875015635593536158781049333846158063872571216933219833031314127335465475598239025935878775229050268730777012090784852665946138165134233512529326817892297237621570339450742172115956587377598245705259779162149185578769115081473273125754227471616555924841848420056255402139719929699410539021364818350148529131218914249367183037724208657137936253976255195976361587983228443739973573703562192975938676083752885392672809218639717509636043781103907716631388799532918319589493859224432038606852379456720328880037686695118933578471516570897037410309450867749712349351834767413781301217604278993653385363303717477990232559373103747974578848867053519148554969774032743686238295304901992775396295890931820239494056536348876372030419654438599875267871384149546842652894716203170834000366088263240091689446555317195378765347411196696641450393376632730226704975470351009824092301934238829382321479722970582613050815575181906263850672243414220022362443166871671440395034321438238835570880573367248057095643299705456777993275987115586533232889215653248147202617993700769764863592918534350020676363231394569472251393307693774983007534169398159666446205009136454464888334441413145520212660807471798034147251492319897373062036723754170225365934640418880462093374655818942874710761076151790146542705811403737635835983088787739196381890297514645415475075180954162321430838110672634905696335981044045851089043600875269584182080725925276214534445697292591875802260308499451187678465513583908134697858279395508613642030286836185343574289713064948164565172166093616608278090287613832655842271333030999107504595267900380516588251929459617499297570649930255021222265503893886669361110270543291196010816992823833290512335945387560623412597616317192416462171077969234783041918945870562324205466170021540805798683023194603798445522469175247501450211268293172444531654022262617759215426703329094034931489666540076557302384459529408511148272790038534119560578548771653549753877311492830955307063249702325868732070741391429499147269761096604687887233414323099571691004779411920057438778576530291037936891403076197120044781817869734924078791037232243924549288110785439754983718641023650491176144640773748923034503488374940235093840121730149096714189978560550637003295160546014722073839440134972328429506841929609113964918061687379271136644810406104052575862053270600362839228819166747085256266730394938484687670157154611564824907170138900414941939625562464622270782007340433246722360462437144611423567166899105694217076371890942929224560218755286575146883635834943055032876344462544820995432504009880460250686697003326946331455831715279619762462080018954263344305644144817215367901389705164349144312873376281963969490168934628169901673586293718444628718644448016998546709803854204782163857439475481910234694842548601663301980871183687298005610592455420728867723239573168610859164839323585484076158339492109223702422096305113023687435328476421531272187108130306653854744245113020572818123976076542195488372241651067846705128294472875003380370679829152933739582848802387882493067546392737209965780111945749194589520687322346524498799179731923660526332764562864539912860979202961469062796025830668024963157038240039299911030135106200702892276831672386801441671418313209186307181668453627950852401493436021553404459442658967046488689286222945774327145054805884572831113942680925308010584527596399103557273909644283928699638558794506272092025661359169871083928390805234869392922829940297096774838475911016134129206570666019715298210900112472239105930658462208881497047753214131243750590709941583119333114884492590366987639683839543069003161395741345642731139284069807349998417828736855500856451042755884309114864777778129541864771393329595770659848290459522843872510439603306030296023259230250862828573278000382698461810529301074673541174081421058973321988086991066613887250523102103469163219505070240368784825494052941609789653924378662138673748823845614226272131446355612057036658065154059016400805262689316841685937596161407821120289226571600088097642650962273108864843561881618958576844927466677663304556409432323411493376754985622372834752492852101495881544345914951767302148424953871743818459007985645999681224688396682599950586936338670057195669791996440910989329245588532384010149875289930290896558116153336317490716708743175007762182142856698592982867299382607157132213023031393435181683423498251963152346933988604901899056876106362743151290094379876788877763662313396511112830743544471189814360445927826692138208779671225441131857649227713158414094066199111635564834674101915306453716085722756609230813020558304891871281104738912671065431602195275005165571403239325891352064152754113561710730609855539213317853847677274962449367076557501335763297193449183425287146580727577711184205847493028276946059196030663197910339312556627179492361157020036046584710825972408641397989373787212613924737285278636782989069197908722632764638968261105244783129623381372761373801947768916431110971016234837224594925465524110651840086464146523224679362573818078014364910538821011181293567041831993607120627681634425815760773938960038669792188273596320363007419087287741649056528795112064259959288019150643243650306092424448519238788192034698215962628574135099360203892874021268160507615129862490756632817463565382749327318703128680177693913872541133876246595500143814501709989326714889622056923802385566573248071088648027490989871355211454734365647445240806514547955882167833316422089340825507159932130002446344428174778589304273835005553142052375938792565515910156597043460507859617798974694400874113772179369339924215266488796031603179666265062061426381856913940396060643883759358583784639904410627042097337016027313084493827711025307449742434523816265879979193324779713614682553450951218915819350899365358648651573798856163653042014008713153763117598187858424946771001378466077061512797010900481726366460241232390426502788339065790080498634772664074050672475475733443681170960518153899109072623370885475653548938128354314641562124383243959413391867754374453542689956099154189390658748713345204401072062693197818793222931980890750190080138157698191665086411043893852554847006721515815250922319285436710626407304955058243262712567036343647621066699358546160674173725296712756607975095296159260961203549707693570848163012150358329880137922244557765977344217426976218854202092656617827665298724282629165349343785442723224755313119662394397243919574846544046086988204730548672740195703852676893527481420021156768302385509994266785907823856060104915268741375257782937850314245105345114310323745601450560590867972282006482224039814402604761646913634004418053733089195172315099828103695155979267325055294621192787281839109362038099339992838579803098883465588001567271164109171546104307581347725106680380589347989641820266272188852952728817368799485365813976333445374312777743578295535175478225623126399908692059297752703761039453826248583330232930659178361161190248755241863353284540451308489683876936368273896725602211964083212216938014748987035973716528885870864953487487668800068096098747822385440095098834091615406367622504941561263295192631345732036636227178289175970400304244187728349654162871593721326319756208083186472072265217549474367566358038947166359813269069316468018362330034840942101582682951530019664073388492137058938596092008423899969249176692011500679180465337625593891784220156597553123685278712710709628211365603676346483323311284137242453161001818245441588500243906731123707868996752129706750411627862004168653113225485883984409676540563009150337227553795665749741637947349224861442113561372616204054596505948084493812841132048486337111922013240647837081392611945948692731064683792177295760753112891502387065916582770456340356287873255712159398797250096036455128702347937416457145046980480899917345778895990267717467063211849440368706841075647344530151080675084199420322391037567512095887374359237219131088397915705509943603142817155628971714200144233514007614416518758111219510577697496603329282071212574156495315708670896981054365258449186473273041226031866934734814071283432770732046395050310384412501306765835059437289364475901177155187060365503427216614486387566295115462354018787146266341898463758206264774911756211273568446780744240432755671191682734464694114047782580551380311305360655675275541033330419621271106210354175892206447879392522211597145749749155674140897417329888990583364368058256203162721485268350671883786040008638925890338502837430788713710816641910509400515241320718269887559248054951351019678966964633972560475129350802139353979201297718894735442911890414800863634402250963694423639348961898004640898357662122915489358770927335108511386126614299924642435905978931442103220982885697058336356012340992145347957832301337596810414652660152100939274355932279524425530137036204156100424195986084061392703354107354340062520456332998928054306148388235365342523580710038932316058546916307619851095152870523875318612683850723929987415538093068515345515525332841849661027619146750407146313517053052880354194255603030670119130044713586754644964754154975085038155443840308561601170815053468782184004805518054441798086965733973517356463908789760872997338687038703850691762899289613324157385461633205535370035030528999586181514426771151642864283578696574288955685998899928836114119294210007906218652404923394371451083764242338542658244008669814700865707599974123364038703460022377574821205093058746363187680119681443146638806160240566324737771685727402115608956364208411685227656749642928939774146623941047545114675557367906954118646441151149490258889147501452499547294183839401096188096371595696507045547802240143786866369395481101214424674936207859356919977100753252390214026632213663775177726171725682141338368998460279503842395639843484311092238487467413563890099723249979680783636529654427213640582829469181870633083292816626322160192354032176272535060329405977043936177425426900453823344362989725056677365133460083370711499740940796135419630688183906709167600340979416249498031187082185864014437526638084531783095118043287294683818825542083754547701682994552982434150314271285864029279458417825822031608829580253633723869235699894726757812074662941304655440261159875056458669140101832052662549462088362869465147038783741970519515471253394510250342413144630314282629413500534696081470977153900935707315912916261538779126390611696895425817227965922998967667636882135772028734562019109965099034466449256617886613685428293533945477367173716989531241966392266683632264904230705791612153634748356765316125211642010951437073305207425939960220250676762188972688953830490896383981062432141192575816608231725559572078784969375053604523387984891130046934122858965358174624338568629529992602591950048610048349575065235433051615199073281410724644583726178124786757987781721943186315647930287219816518253594931144543828837736006364494009875135421618438785966874805471702469371223203655556349566706605704696979081464939434889029447252233282759375267568169888353671259246119810050595030892530107114126635115816010081525448452792275827144178200059000707289216634207469399727656849335914911760825841387885402141242639055944426313322528382093855202503302044677815005862869768523383995527965448237904142095576304521776906329641700597926069349508009804229444901770541555550289500800051134989379370285541258364427973066691294478372126673696523534142074156735808889865126577390501014452438055498709485814452992539881852974831664243309135363028044512113611809871684431496547666817093860090186358645588906188145736604195435772757127397031103782432532495037455896860303546905980458009052480521947515206522192635809678198765665289518630944001320885718427694251530926673103542946610724226420124173281249827340244715088938310979937991041918233627604212329571209664898004419581443666261356678838445116356412105026349912123730975104650367194847958018157568018645696117528607487487068530458469843660644626513756594067941706303537951903956089293187993344515397921067518598097495673393328142422209081042745477115877607658783086090220298196793674221397562353439354808525791998460244514502101395068191007536918185023466186644110197304412419085810285927064571008762536383186388273148178784850461378426273539968447331043279775550773610116548589618738567718190731349935386296159630299055312954461343622639217165979561773906044407875078137549452119732084783027632247985954565905559723792980567982884624777450319821253260027237627388582022598711951504734474089081002146122086816527853250321099739070891445429687910406347890637323559932821921379099357163031074253776445247748810067064588133120535527388057150808580396146916851167042409555883734939095883611823873481115894135138352930780540672165575326400369391350842867360532916480909778937076789991312888234964331427854358118019584928287537725450431831377539410164617982683825319381153619166131727928051813950726797268712428901872250769884640525961991630592474734635781644625844607399168302217929263190314526648237904409430893916385793283640822141162618719629239548432674993224847875432749619035546848866957455872392270254924156031455385238352635080875238973012907096512881957859451655781605333727822503840754016393486298652703140159073858897235351170428531384240785034973523146548631006785260052159528145350834093300839041327565775886721344906364028817321201920913574973332517046922194150011447132690635523697965060956195141566589213908966249704323528289912980502451265506467621311643626388790597060997887041316518848370604888730050747860188897866723091188393113970658333023496213397282049621868861622009402970901676858386205046493478134522494847836130551407543953060433246588418394885561718615418933503769784714818787078618520093960486626311599630198767654593257820535652864010829724513695290984109087154890963085110179855498819183008394645001053044485254821041097069083191001258119649049314306573580744922989790064607132499978409730648381576045872570673542932134059778889862370585521723720520561435004731573135015982343507268934153406027083784765326757934648019104883086854677706111714586495090766208495047016854255227108893733567847302097984729860285502163655462895803850766838867667700222938162214946346979357354889633420680795401034771132873957020906575324614455125007103730491253462622267777572425960728072984813809965738930777096455180595524406069763807072827738007399296657239169979017904845383987726841353407727599115401020659395341152014292079906578055505243910624564726695081601669405214705135282716351194463112414142266043700349650593263936040895723863783024677380041137984014732636100126343112639014092437547731781355313499620159730684894377456626978056430050255118427068288169956409967730713717940762982956544103576151968330865853908710989085721585148939793340113937163773929478767813670776597687154954704755433974508445935257703601870914490843430025566575907462274918178614846224436535051129160878187380172669403665183912771616142778560129703060419448026360571440628488209030491008746098907645502751733888193188798574803116829309655940501977914083664313638391363606574304129767187542886877363700186178489379957368925375950103232455467103307774186177651221507578548501560060046040380882176791613395888815348539053683583565733902411236542339765808854567374830505040204255847478889792907399541882672256645155999349789928008884849581494011811521155275089416840549768317158499115173426097722501201533938465987190582582286805813375461830454344059783445154148354681225064519785775976180368868589132320883312247988807326025224659879768710203978123447518247936676843669299658146540908878230841061184092889681600717125495179083650488547199918799764444790885553173715644639656332150367715335300638802695113006206412488059123553132943971871249767898146801230490442482948245367965774438392023907564533220677635438538794657115912889670227016436807098172416982801456570721475986698580651700221915946665494071410173391154901213524713527863123881487661427201320642225245484211871801057852375047923613800614587299993509931436429059061651593870487551561029050175257902362364805391546319586867238478920375669231291556513553790915757445397798406788278737045043731178285710587086932600597148218570298445744344636233956185234276769125253429202690654978773833228713427758269875374303686132476713333772534988430621253086148874537015879173216448091038872596682273059183584517566148730253443643182908382086601630427063692807111954994007619840415354159329323495267937603993500148119859977768046035140988128816827432112031275553263591195968193176043700022339577722782278967677675429374717566557032371664653252184136763539786379811525441691936041666642174401413493496409428397248626170690482107746574639468083376821647820555890935508529461002918517930449077055872562553775721205248978792914793360061469367846236499907555124735148531963732858715662291598818733149763257851772109482540871299537679352765869374321212378341167567433064923036804587174903789099967265137492703829544815303181832242417230891447367169024471699112453377223231390721226846962343899613542568462372702051691504155236503949540139070679196294024187034305484220489360393887701401336664820293581003902076131179762631998694075966280985179981923571681729727958172971584165194808477975542334618812337538254765197938659676560469448068835867509275617655240973271443355776899978990945475120729586246378371808736602065613994493389368017736227725372746427391512131987410589681487528774226140833676530174604073226518377660042609033365971676933602922020997701976817564801379653795218307356287379169115387396154863258571271817509516336487103991327042741654705351548584965459444435286801256652174952697969138994545310374330792467514298044566297050497881530751641474639821174057799629955145530874147995518171866747643092007954795853272636590218712994086792997624654570868423473300153262495302547647369074565097612103227183516760398710201897827736791872411592539270191289508243483511487229077611798226743343576697940736060382891246942313048359927651266304216545352176332127866323325971205838366627546783876592140669969380815199095671813145926230812216400398532988154658272075631186130167863018733685479390772588565368433198565280618771656406408460056268194377375899595961988069792882244457107797537205123513996701034145426655717142639790427467499775035171884902842000847336895604479149875903019794254226599624219445017982906650072997366987955870213620208256798950294870920632420126721173191214479949265005695575985546097239901804363275443242190255872452673653414722019854289754295454651592088626026992714022968047712268448228609893391420797042355114650295604164917403488057914421027307843486010126857033488727387049697887242824715115881386185942519668645021536353148789088102010236700604128972559997469308259248387038064141637716166773093657702048731952554762825375376054103821030367996185905295370821790710104198511105716823024218038539937148310945959667179790119786966554264228194456924589004569022233348927096848870327670007717610705245503710960153006546029849051007010311034810799185863672584321401808227480683850841310420547983774613879683657934736083098632914454751117702517380091562661598838245664873072395105611755990591617177616345798573623034615259796351843475942934676052870169914045274329264375840416846467190792000311849547862922401257375085090444764300449532528621073103603959173745054240980045278775558081860827798038587381800725315572075864398951257429541746250269781494996363296101295145658559421709530698229725189004831694843635825672315744829540008470195824491638174567728783217349446297575661062810403234901944580436630163685456640239853958802135751999320956731987508587690841600724047423761801158328205265046238163901132972070377176818967652772464891967667461209253903680520340691042353023935597024286057225046817522528545877189934148088961137386409058871123607794045319242359410280987599918406236069466151668836780465882227491841931580149190318191698802888487348030440623089653295476058508321508001240353292000493516446182456589754132224325567321802640561436185417618083962951442171788377206795604118159420803325179436982251100851490209597157061510626230132971967028905086250126292347225232695179286347927969494134100008423364695349692487126641571924374609542804752626734365891817077029172145713768812554103317351482946881989007918702265736018707384681649143699987106984600191689096593720241885047972435728376389138752753136002982458931858887692561219882516729402714166274110109057051670404402408071406498828829856959197346104377331011447691475262910698853825137038535780974653904779067255016467803360181679329887431471630986480579478362549657833764176886790879835274602335676250018178656294031767036627373023092372650150318692641076974688586843741406926217164346625532916146295533259182009186877965261372564356330656930328000571565435358092330765657957720130631938875793257086924428051465871768974300069205330722032513886201409797823700948963305597855858784931142383138600390173786175522090623568100329374408534126400387815396520551675568639044844723503541766917548061538046414744450765548385189949264172483381716509416349088134945512114655369978995145141230301364830886559843341576778303064076509992913759659377328528489009510586178016536326383603460339580911178329293138602013565601390250579862845514783907063407148491454161331524588764228310105560062277714107826625389670360564548197317753107336837589035160500915367236132513812801871611930792012258359764383730370592117054257953423358198015318515126042948982620100785924031693828033960472680258501293249560560424638640064333216748278397221360514840268680599942827359841128760884110893507804050858006132343738800839809840590054293030177183800775190281710525966503917790960190831974926023203560291684927003465470315057004893775563711126409434156167157552241495001627356967672537219929973631027739754928302666627426325254605840336874603732532129366191747964004550638388639389829482369837875092453397782431787519711798474319363681641430147270513140586205721334944250485365282608644461644228438502985573643191206335654939356052822275137658330074985953051872917953824709460422985071101416790178555587764898382610804393073106004521591657873080959078276329880560642292321202320778555615310504502707317760244831385493404743797039904264721942450818106955864865739276241786138634024011060413520264026627271350221161248387585409524008720142144620039293705834361975764810192677363400221543166008141606116064099527089622921828859309917875609031710835574973518173088363151729187373866980620905470242896355892334545925711836955134396033536134644860351964938902552793968536505340279812868030449962932546547117543058761079699954723436116134935412340889294578340568585665972536731765572564976948571330541422737975829848787053362431013263958798600086555691014600563436978189159237904845041722722113861768272082601631493451053178962300343085629979735752012942291203911357465973939370818627845483270398494871095098736074492163796542706001436129890641716005788577607330423076749635496485992931396971351284839382339109491675881276093185034367300198112590697964874909012505497469768284720005538373482414119319461440356240037409110070218002622089546554654127451270670621697141587281108668922831797403566989246104048763262006219067713336275204016367709738445715348304958919165088092755901140171005185752481214835047670850201129205646241095097012456761601738432857332720827731881723062474533683868936157383397529685780250250333171972377739917403998578259835211795439130027404096670910532842650713398052303400141034168316987686385495547039513393789654391538500250365670100306722181126171157156524319661792492860657487862287697247742007791288364989670949830388641728130423589811192782824748257469110176326301171135288128010383143248028134936845239867413310477957423683550887554957527348852696513576158314937567100700349013527760495664579014166453199595749744699043359879719969505320655350259547251195257244808040092477603296691757064631634475308646854748017404591023985301455443577912973596109039397094497978038706329531898986642473592236687891437455595946949680692811872994691277843237049337729827197726017131970953633151726590403971328789040565119640618022914271362204420070535396972871873840306546897497712935662389826638627800826819004714124220031541582501701989079904303902918499277677402311493835159961323599158960288975270303945815485546860589257166877843655997730206854273338362517957364354887107643308668497616433935958320183542453608084820857329181910563641117454638794945188349430823162847739785652073689693343250502504369009098518528887492798729472822410156953038796402166840957154133265393613784513955273529420702030870054599227457545236788736869465308907649642839040576580952293277066203525203321875827019372023291463211043956361634509569025576556816053566235164378089306963732877853810232848646268466872663256981983602455347463453973034838177027751740231464855906871363626663477927559314759004478848620525299264285995872410864703926593870167402930720752236247630137172477982013455146181595780891789012727001891663730951184273061527446699426579188888910048207624325510448131471615534251248894711714146042749912836511577492200770794725986098649618591134332963175539433511093045128950757363062664246214278087916901666723479767881056032558860010360230668658841369302266973994304914560421746854517128429419049835865498248815492892302135513293251567306991003125846376701238444995187755989942189280844517007821503734702413704101909018500720820582272623998721238074101973880239393205854196157438639548864764804664068368216621629550906246729927754986847925514492845070621652298071180613730683578355244215158704226012897954915522313551283114526669227357345680748526938868300727960914320200661411390423938652493703631611122162012927657841053773124170697441625667038944756172823629567284314477315294336670042787790177694273831111055900679808321071609189941988850708211620278852381370134306585094427192751855373256728119190147762363835935582817811773041664180545304563097845136336138091634703879096755541301073708098665019736648403052508169431912843956462437153928852666965934993598341808997484084637774249351131282116157423068531785489493607056281934694375954996717298258501610015024676578412642212682217658109101129003956282556114331899516450270248330700747553654072247602624990236105045323309714671132815979963943347185279912159480515906073044606236374634188967670329214956153440578256662816028005644923227622338673112775727098708365441661018481422933532988826492111649091008743694921683602082034669625292658620591848141252715838918693039129081270240872915926628039756356334399454314219461623542738131287526814095614872224550458935817508911406285606102817357811107439867231122332105994120119721236180675912354679401140026354569843481267098280260432627593664621233132362108938871247808114613074828381816583444719047220533122464448637432189896213644148703137443511202510404442174578407407509281152308743238466562847887667417614595971252975297151814451322497526738471337253596115516352313862031971590017228429250069329123052315873290295184553726154798914016999584676698510909400813266910612508193558097366628199654193584465774076889163096882304996791530800535342427729281401576187467757182319073659093587436895644484615176244700466869612359223621114738492436649713583349472057884273861654627852054769551662598241910661104413503879822793805573735903301590819929297939948013333587477675592267662597393221138211519965835177471444457261687315890325250870687321937336775096122737572868054927973397290545545645436089950911173138558705917551422948852285105001083734608565790029548118662961829997876067297908752009459370548949359906569759535231618991122931174581660344711105537997531595907177223728983534140421459789165569631123815470116701172230674820579061378091908916399420996824900675609649803572007589835261776009107167637097191388912818357972124874354205685169235565886245951047824661072835461854056340735525188315758635762151648873932239030655171426138997179683242928858270700952690547330614737849111650248513094545091260330530549739644349170480990616788446256767862007730077123260967538290593047293608966125133534456361327907603159765861590101588440546086259330647952646337791879422529002171845655502488072168429354673749029287220190690865545039609552925976379534378894424994204806013393924287140347282014898387621020883010654991802648170984845379785905252868611431601625257534584365338274924205194392102290623004607365865497462922377007004745059948466626752219072970743287585984699070928174667993446865230538642992139713708083927437673121830831829451238641919475057263400735063892469182711840584776390345505087969998833300440987918607218465357801468285608419628135423348911437473969436353478564236917262978995421270155332632843257236875018729457549643820264424317411526789396007076848388601546355279893667582152343945023868109317982749075824869622360611767111890871804342058292895506492775928982028552540268818878592213177126118964115876216388284590901389318309486408786619308170867966760211575690064200651397502604646116302603605974333875754933295380822388618318246874265456305537601525846354442172303782549105853467271136477905797268903722403321025838075919122795243804093365072597877593090926338595008321182333415073444095853656184391234223032060489868776007711121714602939663688393967191538659473154528726896334164855636942811638115334847228313243448131392994345515193015589835957055585929000746679942636116792144915459521961737201295830225133417017195138870849901020760396924117949339475546946711764529142140255642970376440434725992865973666261734627865400149386039234793277288177113728517027414891921705077971065654302954736853151878335749534928042388057889935402774490884786971241913848313069057333595085718185409609513062323571982658487488317968856359452585390453938831344333902946146826987360918034386975281657157343121270703328979102068414347064025793501119824304090729618607741587079648616707058483502848816747538735995682685653356473135735222948543463872969979859898917759092149932996926279857125220186093172430346006147611882151071454251847365089427903413742392789887447528552031585023189784807914643023280776404177362539367371119615953820270596314401144787602012738484850207683442771410433362219945962625616410790660115159931866817691837192988791620764800586214289542722420801882593672614541340453093557226784257113677194348310324212801609265182166888310526939418429236590238107933968663925968184677838187428006181551188275820630027240883446535424860946681615209301308156428707434491680750108008099024866037841831696875896040446122273178213289798254272202737113535277676761054398717135793659150217437353989023827850923853901210077110971738382659723363233072888640418317527664261082949709927614437738876510950534260709903113070742844527939981914267624443966587980561304742787813203745903538033823515965481278357825917285601432354713591077761820681879055279450249933173864947742938735779139550135675815958161334685823851230761413327449566884666338269617289044063716757153326885311634709304302336321378872310800694558453452697225551377394326460503521353167770130919168050239441491874360421967720810156819159215888327075669172815732545003909939149712426033988712021129562351858900109434465073068677569114113517624136826156982119556810822225992186505173294802636533024714809317558423805017780164199760727346146190989850008919026317174287145199278169786452851098860787551467141880456306678758539361400281559779627486705762352063106765276784720394692101309128183967105436449644525644054730763947617555309858674890530160848727446301468568371878950866128804994449630653404889447796956126730524483414556624735979739657020120326604032930421463142708615363208528249952031472967565236138095936020548395502758699906278542359153498752523192251171693449655108836137419740740416746349609531798858007246350902204660760787668130513696472407274108738748196422477581930774014072700338382111024865078134259661704470725408694538416994622971545604844486809109549542473143228748481272693736791124864089422013710015105439304826048675764974583829582455476714186077974659662195515624995353289911199406629797810714166049131693230231787135050175880451933757389563666132359938654033563251318352332592850014862679700447289455441822091819750126140960240726165280097203739563804098426446254586286049995521975570503086218106386018640390531158249533258703759107218623585994755589067087922004691177788542267053148400443314777587515019912393482514532092303348289919998834594377620575652080936477362276769704398854637140949001201245859910707026430706240601287455888888053361585884329971232814199951252501388299458149615986209670644068321705482266577498955007943188485049223829955284973895999006102586441500150037619067647562720370920593072148528926181296820401646208397900930402873942724051280764726137829652223557100445697022356106983028902189916880853752141414683470106942029283706565238947987043238385208038811989226430420817501046096475673095260914936148300444974141717094356784508731683287183326694945298743680754421824097947053404782493898173347424896657770249887705832147565395813252117338243552536234815475257017247728914262793338972645293343453740161237251861675209171562049584961946231131031566652196055291478205442686377485484085521664178969965574614274207208859343201704983826729503169885056865604465210277069387716734112990176081083508437077511813386940462361390310224709435849893664205386512403456465690855784142464428110459331539410568797352720406032720617225207503628646551294371552276323797440411817185549769677052922220601360759429064233041403587623965812697049372744237528612825674709867173025556981427290214868900875289833708319136109211917707255689425045571978109258535280858012461135455896843480218661013000901468975578569658383603645065029182802582251135005484391094431855757472821881312816335546895568632801257920823490692875842103638590181716773761028320915652616758212001742422653991938100869162421467633815458052756090025771834464652246989445082662181377355024891987620570701592876996029981294715414776201516147515909220876890423370791487623510148097300897517103553487538622423926213366203401868947686123547244011703003189363168431640028188641489599187929545358166937826836935003180235457164367589451809062645651348417483820310680554583060867122808239880812810834805352390077292515609138280501243974516586651654704172711119643125641331131671139304909830074956519804552401696669300337420411033579680543853761715349052905168059068694837070131481421784663481264412510127986373104710017215888066637427484884084081226311802965810193000307535114361087086550728749208027443034987800727251736292590550362681184670976430000336463694243860140702294492340822529751199183923545079638790486210482396016735453178711060406063049914742455529735142064186656026248945540152936697969772353240979549724475765709885588179184885855387373318106470353947701265880134979700548617889723872401933153822569636536378652026211388897384542739785294836101688928109830764464125641473586561325694850537963797870100693790618669655222087521049427554661353483123817443143588956662290155417669327335088287665320833903436391927645172754110771965013156703721684896170111351572207166661034345833658547597995856447448858051644910536962256667057863401564603103435068287990600769337235705622645749426633094635985748500044251048780216489108945503000793393672017613556029153299789591178362046181200708688315865350046527379985394341048898760228970515631091731618918201443634174527982980723173759392751300646573573892090398841936808907534604901897588778017794234284914356979393931884162263707630888951300934727294788010475593766641770504047462525442623329668957154820869357833339603670529059292085210491500484355144966808101926554838740620009146078013901171718787267573028383534118645716459966929734794442249862237486444417805912929851578201237503690478166824372770969637137761908699486118349862650751387743264556041167257579088133538362091223835294467700882121692826457492264324400704669135220561302271084666961497977457611664415554434902436489776227382123941709716497782078790484036254454537041062832227316965954678032555003874273731812320407075748183036561550804978897266334767981258290356950975511575972395448219033572300397992227431412859809984077196938291361091574592435214928796609376864340459787578207602256034490918602368988014718645316706705500206410662845023528453725915123961171923694303688786793094823907998503769519520251992774399830917234178427492937877754870450366207258173925554044566149405523441802417781271077074778684512827355148583540792119803291370448203862419823875885296517784651900643991307683395191718558250667354216804904355786507016395167190092616514246599158245152812840035820112898777016001176401669478528632075650887163996727188520401224254721884728396966464097232171067618760126418199457222881524358329194824803186886998513302166341452922765172309158889206448650242705691800808854941394946535516840966587486264464762752203751081739064930534359643051286881901684961490638342850861262943016376629078633672644770302172076924682976795818596972272266046856963810452098543609955040795759374790950062277290678205638717913259452200122461625631634457461348831131158730740180534387445796408664100710065823876747501979016493312735279033816823407186847872349707287388248396689986077818723632054829407210426097037072730409507156582691372461731112328773085175426049499321511099157152949889869665432445653787951494135086381990965341123863898793827217513791840117654396560112427132730617476904777042340554409638185759825344402460724625120566999307384159852380116316933115907425015639657598894204398577883904973791688567141283801012324445840232641541475071012493007726437055470543765184424442502259677999976854998287234476463437667292188424478525507268584730061423578905957965397945781568786061697218333364573254555137989015890256365832075804869258067357201699192719164319940911842664367304957391234699875215621065297715003039972932625642217600462151080955781999272413706030604038339409257302308916603798731380686758095119180506484916277049054050697390374803514587737700678874973630923500917026977916230019537415929756412805359741981684071569996260228789466287504086582688623282152150726215850866296065283863866173370704869705905009444945886732639569701291512039173872157747562386819225280822776286848177362180675431680857050849050939389387490149869799858646918682880729607940090999477223738856045501277267889940633872445004650870395802824054132159151317630432652536037836278808677557933499921368552730287406602402253600331111023929884902214545691550953305037739898063970317756750375055776352186366006902514338981728462202108903690739636690245872717557902161516674954551479501782393955388189180430267759370562197223891094306305610217453751014692064494895314484197988942828695162413427067015437729224605650108650695715503188860721377427184040121977006035761015249703184706249370688646016695355591598401837700818056101475234303909623742187669038109462045744619895512332602031287811490643869125016647871218417186041710437420815325730662168030774273520954488226912873608117455928696254069902342828218272505939520253328686114566917045468432924466557743052934520979248681014241497589966024958805736869692186776600778518460217246126678537096093626373365118586985439017417719328005996175915673636672674811409080098070347470923827207159752928418955654535250812523129673325574895005753885512478007569353643775703557104848276930158744922038946946819734241950050083056892536352898245467614709513486099474354009212741201199970660091084997338392931247131147299383529547496449812231448129048542979364605167336212181790898223570789591495267714327188921398052354989921940897380765537815906608012971503717354038888857184696462703881413039786000010039310838649034582535324733100678899014273977292204976489072165071978169742943970127674205169528462796564724653315421012967821273205548040004228525175629544038669833688552137556417752442861592552070802426312588509210390546677034080009623299685263133747178542286048838841859525655169809177534796388933117090795225497900103137547686882191706960416015815218085390106704823225795698127844447842674973313934621051789876976287025334706478712933888460930518376582710892265312473308608535378855805787351781766970727095536587897736295975692820445254338861821372330136306801174603555888336565585065887040595620283539046579066606566721306208488919071080488809048369341671301168128782677437311176519886057267739562570803090545607511976266834669158720029711902802088673295043868986933396781626091574554767195562073712132423097182443490723600244548583223028635895098966040858251948223833774227475636156332320344730861298872239193492106870626566194817567434586522857172333588249398050079903625784068070271923131877624474359813679462374967972443055833210204420333640392909486200854240012942334722279882592574079906614840216092793808294170600670681103422499690335427263217523410004227434818310668495020588527779397418424868271918469095416860622696650743985015854854699649610586313066951093461541272500773878882571646651240997362833949657874381662399726641737919671778106194447113054663816575337298358283817368752774938528165719345295288596472041668200366679108547711595567320229313370125791426143746219968963889838641117662188875475697398440662676122660044260319855854410914009802592585903383601355010492501207073649093274441450616762720865628235961637733941099387221131115759670399661130590656941764374135716572527363223110660433462887224854532442573818244544005967546290906411609239085979829911834677592585505391058401687094028584878138817615599900247852207732339781958037537813677105538986220790754668542351639616721845548945473079537544069839874009834314204394992709429249927560423284707905549213218874646256787807015914181755686194659020580246934553411240320605675429917014313727400728304305878018317723543079113669411266883267771782428021973929123473840086001485605856436107558438843499707982651165267489988211027970785738465812690922308475552461371343024650903881823005296769636134533274552201858633509872127265883595787581254042101236549359731511074022113036440770728889185893829542935897503918635115378153102297056990859199522220087187065557797682729294527133629379148310933302834872965788595038950110478304519597957577382393436958724743357320404497625567417769750507694787916664366280202290911848490207478566288032867555130995885189272298811174882382848178202590451528084055150496246517380124249482470457285694943049215267986089890698048116578473968654499410912566999448685295252981485121451494023355811305690563332052355205963278462624762021264323998106056409714363952715894673129632726812707043857166149848221268375071109360839748397551817567592129596582845734701143536112022987242353524782948657586860031921375247021222779332033566971180774078294841458528229946683163560922882478699049935255617778482161472320546339204056500006993299888638354937303026256652248397339924692286413269415971989885375370726966513095289401739896902550403523001745611147076653001669696874120402969046135314190602692607269746396298721301077419341769928325036470760185893617660006793213869159186368884178610491113607120060903228563237633702367831828321925742041946481527439055399334751100921050367621545906143188271357086557079717301724596183830929007191382999059461368054298572390228244510639239969244339523133326706484797544207764193725557995677519110552571410396731928782740562582981884985107213093441278552491781431993329597138643171214730216900361673276912656035863882284366828791477426747893963833721233643877478284881862538536237081752900320708622344391214918621011681071488822488273946492483885752895187655363816610947688655529717962007975115038195065471411871174753516724648003244020476555619456241785885922420319806011945711865180366507165039449059234799759227389271437422600121337739326804361297959667349405853137240387343896702232187862059857409419731909054296375036984754974463934669538883094368692603304837758550705160702449250735475148117117921211310266566391155507890793934014245938604687643028234352469092256510732663809565796045219558644445037185217339388195817201868146580174300521649237241077578877374772458700992055360635200493253969090143354458581604961850166292839345964793034834991526730922312770507644428089809606200401017335938249027880769832901342355154534422006200591617782230712653531314974198536071450714871777560084380404740997400976688961802903965683848880895208663117496376222684361419548420840031764657119999254229181239905084105245483765970325194161374269318845621820757807354971865002776125443930665245222570815315053239040037944918366634699496628801195119031092850282326599618003624583301942307649009600060452507443058199868944536129056554854011756066301934984720407954895014512091650441310594787472385449094226085874374499693554647606132970035494930030006336980143060104979893499078952788185826715984807579505612867543027679692770732779587204678455852348264022798325329642643866207887155081147408141757874189336763518762236192240204582254133244098141442384560765270080245062981039087109465244549468041922729691721947169029851201960694238991434831198682987989275793146618177806615813962005118867796736993826261371544639038352377109285552529871300021912699633815109505427266919968186007916517857054117068487916708535337331380454872380725005050693312742202394681131053447844274444375015580051285281596148260455078383719802761785030923062108537041548375358265173546591175496366225958969078489826262037407349977257133192309673159380857425959953780992414115203249279305269670370086733477824539301440844815986941383745397170519914949702557966970846172266517050911494302018165341604241684299970483032089366212136396379709470551496804950936575320472960746068515545399746701588377711541435008757809888875038499481572131899854698800023879266745765865443080449752730034669648295261974944095042195080219267585054157487887222873835562578349287022314295093237448530509054235650657921380998724517755389287893413737506428005163654597648447929323370484371962578533502810234349290472878582810162095162873982002720118449811180045124448271793877342001082629588279585046981323491480908361307176066199433451820566470947560160278646308423988482619418493736342700174831874408224577940643672632797268833895520693808380009982504390259790248888098183137319550350541149389044314812788127001348806994739590300952291409988026613089217180990859344669951490941594208150697073625928963270954062811901175393947697449985476398987550054629753704320804785087309734446572388680148108035968512283160842244674226494434167195835944522974641516099516996268188058295924574999364820556137264591800358533274959371918757895117434471727903206417020713949494029308174984069248827126511314532885316460153561184966264212649801881518995501898861641633098595856304573796202680918400697601726141760698960366872383607693494250438279745778495884914972375416123568086978787897809840196264073776691849427669421344370977584174772740096975465937809500379800053186791024976770973017390531995886671949029359000541013243398315004566766905880760425513068611754941443679590909721241063392454359537875891716264706498827652812065556662309557566225473798400553710450399207366842500403647427024018036883906418764685842861909762112848291653350661176160788160281948202337198669073378191687317581416602302400749292430956975495574438521923874656132536008120277675587802386938236784411948539441674783880933328886366632020622714713630871443966987733360961919336184637037782862491869448788236199981235837588339495418151597647465514255998941828302267942970293510653244825885510143423173866145685717910190926936704224961854161229064777325403662367123126001580940528193668718595470726706388949938363028291516671594154034358381952807089474809761974444046422067931448110644716317848896778274704662883085132382131584658917383912525213450909753239242523182435954544561906119817359340376919518561349845465482341062280116602933870592464781751433623807604771251728852036958391064588175708428116320067951993932337854960437043040672853605405677135707196418004328316831638300946682887603994837775965271815028949475254617093826381539130709646718344195362544633789782299866665652833812427270423096729031923525658098733277583071812942787516833908867057245514799526324041953012048843647149086070096756313211049888322420532033263808144836137209181885544198720742028850783018064302128431736408718908876990175457612548285144256599574846683395715482452029552045282553074868830658310075557952103182091636642717972505687611668603270149033570403273450458149409520998205531610507289261428536131424231031424636376716171955642183370345659152217574540808312778159564708177437782292474620359008474007394402636961578192364240014026368115994148534665743326197653626997589880510808104857562497592719939000000996163264666683848149320937666783980061020747355417459694645114150267967213147613509287788580193772462446468215997526583651948282985230366493140589341525152401291708652418837168426052148436994261180495830303185872472854533198920721285594747562217539159584527180667836268628051268175882172325638965196946872952343682692685559419212147340583065079911942310449766130569852897138191077714570815339381833715537545299295279176111262751931450134084254851890314142119222658138049293417674212747019201282245954695156088225036349234483206206947635890849249125954491909219898413292439604938183885972476628998697209158369134840621332210726946966417986855138519698652209056610576060214618511323684977862315363795402442605265637240508769241592843360512804576357130146624655139460548579004789201872562370424415623842140430981277088495307069113314467221935421610744001661435534897167938694035464899636209355647988610619078376842252145823612667288680834994869210589537143220334807991765344381892572529059148324241248667407021841713007050988462260582436802368933162632788041746962259853946526937990841019518782311402301046320549772574540665384992311488888713436795231632578934833278035097252254703318780803627572702003774132454244358298690171476421479280910341055649619925644514787609374717135326051296625897702682839348769681490164475177722239714918951098290307932843108775964097354701892412390539226915752651998988619106789955888957711207456511420485571754284045108382187382045689055834350110927167983479216262886381054572909411937552275519929002734578454679702006160113429637666630054244516317508708100051536442961217878215926446333088948691867737604540970334283356623440390786790141170773672686567349958954640523696619449597102668610271925277912120529517959466238500521940948210923102391523361249654710793265773037481227186083500831233172336810779130227396183349216700294299347335994361071157537998584741658700528599129438130116932743289130260300417029267625886050065353575315318730759301828339395704367722207557461547456284928894514039379654463258255806272541783180527060008855156382839546924007213099723857583826935338801955363613204761969869325128429575241146319661558253690709544905920374653770974589953079508600695544438921585991293645284650445514569102522647777210176602400435485326611487645789339971563983960469643324901870929375059462847401491761052052503923732522470990050650931725452730524750526096851985253485581706948045633582245566183156424833732913099239064610541690442645240972554536226685468330431279675055582233110066908070379729482004756484047081936341689904569838704712941032782266844631938944239326634419264462754175083825972650171812275277911558116877225564835113590323769925848613853501583275417555150873922836796948987151575881939223647218161431266457382710119228826055773260323098256078942088138982919911529290375555569625991483334516419524740757656789215139490598879609724229646922567968091657518579374192551627112551198342990530629649417386255300220517321464565188574932522942753216566558351618564049023282004555594135528909418078559995555054990501266901121006376011248174583140978496681703606041601496595447123073747468966947241396965052165862104988336828655507813531551427778528796298274826979085645318330350425603177939722079829736185209217842576219776792754919621107665533362710491065562333930050101266236064086789407453741042799643162779419696140605372078814795554799628029961549878226410661425324988284056318559967147977453438075285334457925563652941264361234417200808655065711193364968260084889524778468159770516427149356820335917928317716274807815440154471992050204082987660242111582258095190501315343060101105365509871575089531395354072725859167400667153339708308695555260213475454909362263320745682613631450819415854273212949700674461636112970976199601189219894094919647086541969224399749735954530619427913108601429236903833480013799120514968068595282612546939388734364909293047906246864998988493323503766723156005488940661236388908798891824556253141892882330528425991872537282567637078603201569586093771736369297635595212593814435311916092824182929041620117810398613608520361316947657867599785928940426535050730607788445493689766839107198206731176117063787485125211021501283733233543624370648744563326870140729421412614157858381965551412994065092167014462801234332872584095975423697196895295411218756653220425874852609276183499256523678129502030467026990401891229972380646204423844800622913146423845148960487282318045977418570058024178129492730324195249497404934156472921834352848819672750811257678211973727605508444163693066720713225322832939034866061222663900504560226668975661204561623396654722575361625120067136583019777178344616730057404569665760591065710011416473599323125793431091810123727995705943776159670989927685236536993748165066442771751639159793366606733712626908118421693738206965086933268567278367422377736381997997198578346419412651742119122166807094141328451052283380540670898696278267940317872319008190509832567070850850228121641355573897628408074405836892092611837502034836245732778071659777817946163599471823403366493103179242461025404104498066844959628375430763956943587460986385745695158537656574417862924869533041661821749953596336670364159521613054299211994803165803345233211598605666273557587861977141211361728149799961195385920622982519726904609829963950718740157855751932607923348939164387044887445174584261054658645100543068708741727032083891365852042328075371396616412809442837041081272455439310796322520451554024107074270603294709427393217234317948315190703586443190996209550863909841272646602386712246718013467297159550018451457403207176733576166904104372338794550943820776780816313104910800252177457824652170744652787910829073390023953634071880147122052214021539910163122468998508619561004862149317372169724539535218437453636881449794358137650622410815240331585471385436580057212534789599241798496703729212532889231110280180698268795596666193291061687613476012735710696141836251349147677286411218585998276390801631779528380954558782949171306818942804812162283691051455691962701836659235053351648330769475554207752915040940519018103554019183917854781339979076569826761180942052936472885371423043542649694682815292877823974063168821223732374456862315139837258397068991093644998895037442166815744900656679808924052559042170664193504881640959639162824316832143629361440108975585506769190497702681496884636966283610029944263729375766795745728749139191760314775321799111020937645101966794147869390383053398993493299339166477259054417354904340287290298985610103594762034889459848681777527974537676177573995965557530704049273167399967822325948787405942966970181424300351254182902165212736321093082337506463162641492382359545529206549277431887226249176373817133446518479808880151513554863387914340862002425332359229689622123709008840261047825557058952996610185602896063397328975472062743770013222079785882131260046886764519007395937324331461137760857466389105837741473829226069341136447344381801467108088925548874235344238144831374360124854401676688462135052623476597766536469051567900511558925799763298111537628750719588431793825817316692132984346887238157977124122450548790913954744975728131947199653757472790042454031149466065801791768998114222415723349332342522544914499033788984003537864534403546883448870170917967519087806686565612770335075469325548773977178257498744815264893330037030919549077337947025126191681053880745667467878612895349206823990406122105092573938171844053161513839851413736403885280864089750997255564565302536459282603124812026864254989319332304588529318824485832343921700791479794490868385963075119447738560610401545243436652996092366414604609827550307560637145911578925197862650285973963723697632927991341497154354728028966377757464857956414270671832393474328493919445524984052913469732055328661410108385636681825473565446380574263855117726202262319821454156383651699940623200411583174354920844609586155429471796615870340678071574739814417868852356117225393747628939256626954153281526693867497031762515735111670916605449073150542365979696372353385919841772400717659388941590512602211955723734827554037015875533702922766748543049173112168767421629538731482811932934103621399791419349169662671289665025402384951651074720110803987979835631542736568943209086961691592208591854188743873453521977006442167718349020707435589979648887971088152920445877016792450210395591625422374900227337734540261692945761540998564748609096279039786594587798487403357771100243230180059868806636273607009566028915949753076109753036579363360983975089085951360115651737131088306315209324906957352760947045135701701191892478888252281265251264940726426810948762625080455824620474113626298437448074593613788666218423172338973157649129623522632803649851880855328622573415176213500375739158483748686415882440506156235330750447028600668907437530573761864245216740300989960886603536489146093264618987311126641396621683691648849093562717564027312907200770640870053097416379828131310636651121902439991103008887827048548356942316317497907267448494953858262417390771750869516976255583857051878800128286401925158836702207581062777126604961179789527670325976997078642854207978860423217138701984279664813506428483554103093876073207049081544309074203012127159078133358664064943937949392443729770845492835970553526540667708584932339070525724564490721748469442729004262343841886334655498364767023238310729462562532651583877419252043723471610327944214492430406908261481940114574652198403573869712540087163473411645876077266346442531257015499038387315773429151445306616766492847438195051219489488835954499981650366614650956693963832863283450099516419280242146423557011400828689708243999476477353558989467091859390181542568880135648419768618447193149642527100359307618926067013104100978078096312544695495639975263899943050555407595887888594683114939424740397674587705648941225855877984999604890303261172089492798375405934741317038631667195098395724476892060282037286395942101309369651055759152658687352748839061874959324237449262609378092608310993599977043494595030797360442599422242327777304920981844920054589783609758172160428492560566644617364308249758340295671081499230962054007593379890472213080389392811273273546647614166233538913780827866877196068464757848840162299215085163696394033355782428160898953130344237774734871173163430391195977075812294480069642516002991944436562077004079266465703481765156266921634499192916347423589684084264480625728730720089559681019247228086768758948134745688592702078459050171630529305872892590921378488844787798788589279472953542179341203071798980648637254921815347886097699351808986778553108091742920130091022507224614753366176580874681991616842585129096350964608497608953675487101043182977699250243151942969125736091452134133067074989629382965837797740848031573482315212853722401985857367268474568820789138258613208602889741977339317522655729550603469072054605595604624406066190622558525674392739096744317528103338395618247978395832338622301667685513511048267768503705611953246668812162190442276652160315504764045505345204074175135792624963420354489632638787553166172166435369908592250313058248217307730386606474687001591088707451176613047400431511439007786781193993924057970916012734287814678586408507183707524193645474408062475312882054951958320339509147061924092494697710716300853402836905917569370123796256894408826975663952527777109248283196544339703201803694526541044517560657576402722612471000745821248644627345477894408040361332825037035729298003342518516140918137483474363831489743406467026400188258254082674953758984047052882203449932089142955616689358556343024420859058622460211304796522579316440541471074420976628165483612574542015626222995616873818702087017425449899173027507607656122093037397074828984458720344426442013511799272081880535702474558531914153746247499050003106017103336890733101997056461975052174885479576206986208720612701007837870657637482475629133777364258500135946671786898082543953990256463963763513412006563140941023719314071544504457566525213861934805668705558985148754786889119144361380875279343545891787138849396800501035987359187370725316254904517211317709952660363074407047146532205551527691255801723209829912564542260881795340187395094045546329284921663705794615332028623017070696326030194347840556487878395874550055086240704488674162067025020918613761997772889410621922615892800886729387511411490722828040117888190324592282612271850785410580748472744126798117773032881936940889067088167150568317475696789368873153630387332281893033622479292684229146307785790951043864318561172511253696842971115388234845119217033518807034662484920807398363341492103097831141584347130881259952016452999117106418056381616711318473289871153387057442022554699550593985735251204176262946335151968806537127184362071646564699062530178428854041588604304276712989825998123211926639024601650490243389400579706682275573554272004795062139444516594432044390242287228935108197768906835116589921248837033787441133525293254268604160291856276550440926959811350018960611962086377084923442197782053652080823058482351431019979685981861537501028099709278649433833746217157026709517330373829513995787115919255216243775968386952314359910293323669982373844906653161236704901242643663097984301218395616886287806294101834117510859568176075899846656108617512010546018792618154020569598004241559468135411627263387721612432535328842000207998526956160450334359925464517242751695299622636525860319642484817549318860687763760686390245689764588703197481132299338897926482145777341963920936313445140528446906214122913558397514574004199992935149757830482922745362272006022057871574453067700208885327596667914598160202282511564660360570087192748289147593685501815575119004874843146176231898242455566029741239055598103268203348692782209969701743045637369514647294994708560384017916677975698260761230999791813953682842582226923074004068299272129087763386122461908254903172883869030973607552560991478393285806783580174932529488155954211167021668500998738687072708020315142396770120056057146712085361797974687395457357788202645227932318826921707201220248686029192267385042862454793379846398653877618763275393362602122865288133588743980349974525217956792038772189689371710475389118059194940746683503542006462308523975831629015580190865910420028233040586040287444948482995571032329393219307147293724589666834357999861257419741990314420832090605223875654862159289718265964941128556699372160094945239349438967334087252077346205005725334728110458787761805863706935718165891234836462975999810053436337310673593024673903722787909789331695205458894546489381845386622715491547249232065469991825396871411021410771134095823094046452162526052219639922247950245983986683261977582966323139202414071187529638949585708635284038990025284499285613884524375854567657317911874704193333823909437600645450481127702514254903452141372669834488277499460901045261698627963446438653814045422948054960832546435561837707032693637536489703402041524440945710358880365246887545362347958558199670865671354373182419300321410850461551760226141967948170892160333901162100114661908828458235385656464872133926833651305281084863495691771808119489008349946079330394415632575408915809234195779578355743500347687589438707335629461355846346153677669639623512110583160714842434405914120167155830593280700274102006176287213174175837974181654680321778462030079221169009603451139799550544448892244298817839892980754942915256501812386005940943120006907153046421806875422365106401879879927311390793694416280982530474957292088590755525868457725404772104141722452987512528491731138700517015249989176649726525353361809623788799511879160774872012515751954759509696184113795830300856373869364481128927499841243635038505944578004579945326279216877374683010531319885374388395974802375599038597495494227753449528161787683415449170094726069272194862906091315928670939467228737383354050421426406881753363015501641691641062442904909320659090856696063731066656275022470278732634216783580786257203314787288125635147790984509919191690454444496028113562281361061920662235035607155270025865186425652367594872143022036859135582062995219296072282512238190082974809493244361191455451386149618842858749069701862451165088526387991110271306243903531149774956957400164789060791340995446013337586595189797303321671620241222297414444090948590025000948774775894653620519037212647004166258356057218892718703145759919839697234607677893540020681271824654448793765402902159648358353462048165535852358403125987425330248743411901123763693169121637040612839172070987753879472158909340143523176924837466518949722211363271197900082666149787110563142251829378248216576829836176283943615250441047948817204198151771479542234616443621086398628597670463277033180658908461813887688936862894202698438989539066608760884183620316155392883868427496872563656031337064408117108692891913569961023929613577063224344702957418163476678442205086309522426151878042192073409049654026199159503993929981948748572446597884755963255027034455776537515048031422742169870564684485096233508900099230920166943241812334610721635824815462588516776253933368652639649552936674927173134898860053726047020861128898849016507844661027000202792761029491752827702999939847316709902760569679040082217198958285575392569691109887664897457107122476740568400902966020865812561278922676633084106578433096810559700941721231800548706039368793936507367502660949817816985860836665028082161560420050386979515195571273379491052634155471955464085551170979585370314516814652781859773775552655726260570150482502169805779856206073629697931328722640770188909280047617532312437443403897291520237626197272995513633379225574023868142733810737978565476004079687251178200870381594920540254889276040814662748785848609762492632941982808919417031881536149156527075109164329155842197206702596478884638872285539384875664254579343032858494645613633070163173639034300467908640541079524423611526078357368701894884866961242652515938065123121404403490537795179480102470630244436128459221366501337531436611607474946412067947932009769928191322572472685982688475865591153553804288956560876866329306411499691313825187546066494132657536810851761793332676394402135677252255047826647388666809040915661663203275857509374859768171738203258571452026994173082058345748139663332208786791687951105093733268772675782305941681861305320577476250511802087871684192170714862587071987548851868704507137095239296386801785186729021707870379672150212851472453207884870357737146618629936646407947346742498096712751711024335353657226104643631733895178989388485314046485781303700469921470440011339758853279271796522213024810311836542072530963395979258879794368773677616043389417218504571713883992098347109928976546877583489783540995819301898787456233321540068662116215276193892694894421622179251505368645419898062675791772588957001355907083154174956972919641891387283117409169588915041007081297677045058715395970215683588485594803258356113717453099019209964728673859049939083496099407559488346680865643471974926188139009738847125220541200552534642107280617025650363277070073487263103630739650037559302604227359705639867681779660280933449720361819396796497113068874651776818828033026112930222578539011976359887452796954128684448046381160766800543580237886135522791951647946029251531961275473031176636857193895675472325563964002187027465853260009275974335177413996894510738965056517269243884131950191281533953730259143131819646317659618225809561803637852707686371499915220156016533208974439536397872509982846164425518689107673542019212561988551627154996765544868256841268287765572681670626222895188851103456198675883185534140084429449347113932843015199294995246823529774616982539524280867737647045506171397835317374350418684036009737557513567608949767018177925351305560686990584633164914675927244559447291762783273595312986739114263634276888237492647266359990721986964300818793021829984836208631728321600940800247729611959188491961078440723129473547536441445170592106092526417940164647177204587458737433612199012745614396085215461465440735891221345544260010361521957264160295284381444283991086675653993206204012145341369513993718838539562038547492453928534934609645166190069906310311769096761502050401011476562203960005427180403931486186908547239694447871543138770598329314194410596991787888437896009091539923472763672477076686096659861912896465691342748155530911766948484318560198376315207090121495832019807326750043626454085241369129545739404471678540809285561302456641200461429026117508139679108783947664054270898136960318014047631062632387578713764932419040228511191303750257654361046453601458363130735767580852152336303565307051811932314376127490290993239526724892336957015911157762298606122399085969753584856664506855233767596735679146479160383404294838600822338853829578406772046688270915648393222140086953445672147386771197868821722352502314823877014520318045380086668413613573669015620889150694584674449752421186854036457970870702649468086936900822659422450728564559436620874244203428592325602082591535471253852285973206407454477712384930385248989382562042264376354995841980847855388416643615171332098129257804883140578101217409497449578163615226772215510131952096986746045836859251543033613069476427494628640929431550955210744757227054057217548957043431329046751158182928388878930093754765216369900123963473862593986019540389078453894036300956443233192307356777204186506364092793993300274214833453724285597383776383128947706327272896023340545146430613766882211945676110008517036750674891945422676882214593461150817120673729278384250982729801581797314204164769852495367199214995155529794745165399988843822203893914069649615829591828866974039308164830364653464910572416284560652107626944695342001343743063652811537901131345508476219111419474112274045667138895106987583543130956516393669745109846506171555568427805647007281747436135341268021279436830685109309799295588500621420243227121790410833941415544669066776295262498492950691922290574547817454632140757209870809471229114949377076100849922835542850719832945090127428209286344262333468965030878702143487309210001771856491147310740519435367469297157303313750029525876679599834048568012053165889437159046214107210179767814234487120049484789202904803416892613006532741793407540303048609294809344989922348407294745659314261495891618102513634364935320990484199140186499302985119699173266704445151973748855689152366981644214718882465973411136062270479011618359596119082693413504649923573305157362187016353058311582654874959582161961505900024005260855513989350911142895846722251860989748408484485354465517940501755746588514566606393775583441102658042460059062981785830222530761854061824174035147020648975246915979478202164843105286121748501507386476274658513972420772870390403431014007874105368961675421137132448385466092836191855857666995460001017661747414172732250244836530696862629726467489673885284803597957151121837006476672783279872205027925802642684326693787362892651775663277621665034021836381700911317518703255106404929602183527357927298470763505296402991497232274853951262487134590879733736858323813225332567427423454977735533875079378226977665195828289300613390250934132975140588293522660909842944393705099086588857172406743360962110284912671280153289872414072149497895880243761107952607200633290875312243068668157722167520480239336897731830064281203214978471831043719601070786239570727733577773371092334339361018150098318854061112901737735996905516945733574055039419421467066596794807383149785772977118219165538987413667496287222815532164871502354265043425933813605130656870981999104706638785252401565847373750796136673052954354503593328213698160931378401316116719925261469025305847806112260697316893716334976095667239022376222010985270037277975714235865701000810275939587042664878788156979835890064586249715012521655723622491643460883359147430271640142354587218403458651109079681824315335158365676752155701158658413600158471064031437212262170613168733659003378703005626245876476538554759754209236189630826295123183106479957759663116824246047307025743345754480649004469363506260718042370398875087645521891322356560363176789839769609267927969422718762199012776484332931421283387345368898977129883856274612293780076053600121837674145196884139981297628712900742783424894197409226880693299409277141919647724638799118353141911932299661259594807015149976978894998010819580639387278356468989252059088536824264100032710140899210063994405568756532816001157531352825966789229695578027355990665624198702580594961332882779250388169056274408994602316456858039747696056884665695011672744942253403543179744124711606810148528788785109848774548303522637342732079636021220089959479629347104699481402084212549849053200501189079257229331999716632135205859273856246073397153075007114601655592605129672252391411268409518823438788125544895917209071669670184913815661996407763687292757262153019947696057573767066207238588712870584924664848242505409226442734243807287922548922536257183342878008834482696697097285840193529587236465090531350623934831160585303184301818091468900126808224333663302733944680537824646836110753792936275477679068549759160894663419677345159041424780594694065506524719268392204344675357735817658846351923217436124603242432742288574991848029630866875945767928857209355458181640506208612237158297460052341207497853902635369813990891620219827703117677999672744738992356434552729233676892248332694899650571615908798694584505831728044382996730158911980578869506662704352300821224075589327799041663398782670091080129524284590129325441764120465171844611528620661837319398108853188492364008429564081406524364762052068711610005391256527557835377144669772753592336162439726529333519322532641308161797570215586254278886330298240106483440809740327309503450718563936429663858636510607072446596993229461487164695344524404452988997286553098620116453389968379627801698867555057429260575613739053985353245785359098553852593277593606005455428327736753893489084913231902780647964375179526186509542607816264248964402882832982666153639701790378714487870124181897381503656335210822210351682431552835884119830195248698972258842667007991885579345054539877851097936097071506838347321826842805353693097518288884464296345771880808168738136577980418353223094031348597076272721306153305350111296163580811264326959355835097400470680987410840834942263333453551727277279186245091896917767742876744741488538692106419806790213858645585209907296808147364092844764127253738996467052774406670537291296003984512625608160374176659623721486731421183545237728753274697300622095378621557908346554034268493960785556529313605887720008140136910285321125919031885628495946394849986832564029199268591038747025072090070897796303977273827000542411006292965160561020159702377826959262191676487010113432943487843851480884288115593217198333101065335120000534818631716626256380574050105772238331720165969596915370741660649880192589796715370873018000900513889508429637004270775665999561758632337879766652006281340660572305426531607016713800617498344212381673732141972806938718900192618955201092467338506146151240941910093289041106094160073390131607977037627550558341911570253389883170397269994199505509635147815968480526028893569202196495992151292708992036577395851929498113994888960213791942453965995761044629745264063774698221742030799302223419931869715854112325556447312870844029549186746818306928502904452155019605640002634158214345326065453014694378660808468298995187307960141615789924404225417872531621451764621622521314266658278029546870637751302238001946271980746888885885494921477450423603860706756074544935129484912459894271166353042917390263989516318666637223775412012889319103025358438618626408370345980121156632520931213943044452707117131901424332348805201266041843288986445677506769713694709494335717705446927728514789035897518626604701033293260929185465279017368178883181913537675756462678519538772740508521864480724003526648905557352139691642149135369562253638929326731617972536616877056553227404086238488288043800711715845624559232275453743835765312931223485671812987004871215591773006150156400495404237516975320430853572844027027839960063562414125218661105481482283154805797062799807605081622329663862802456977475868800969421644599653783414190406332560478932254671165875479928442580730316476493620390858765365349793029398496905455199574306360102289098129980273424906806901779005941496692833298671324097636276046205597062279789347048124166728315689562988392416859618695538766749727275987039989747589517980935759716084115342737850267667609798267156690540692146409197228459569090836725669992675017629783125865935286350183907917442008681431293524249549102530040442435460250764568322066143339867286354779978409898860298978511550483166226571764187785096856969167239493661574984186901571245554114093897778944649528223681739240750166818242613183273491241243278182581104483198793282164215213613870915833831624221761609564406968584092923903403663044709672930155867583246482822105772422163853502254512166349350343857862250295001017278727684893990079432918317643020675654058970816829603969462587657802189974380236640495557339845919334611895713616531236186535300340728987009639130811838008255999804048344910321318862011908880965301631672755845145796279319871659255522753590774088671582497911052269576283370778701640491783593545509739621639226176852717932569163632014835171509086525989833607544923110834964595087244687451128211642144220271852976726203107818300000729250564437371551184484968541144855302464255791218421925283826390732538720335895728226595495426501056373608189521930590962089547974660189191287466488977618699712184107936037311085847885653205271117909384439225204972886642685194674529737825163766209174480261139478514172900282970371355403595948983652537675484555165589396017911735658306047647605363314546623156234661630508626831816192452196711131389800124408937214984714967795507606597376526677540277800599156554754627865301317699167597781943029148167060285499914163010429238843637049127488793995180133580361960510592522031218176456039070674818801130237326732217013304543246072194397112878984837630168003128660767750347464257251487177958573760627248881291288180644625310281472672720121017258574332331728901072555858169951278618743211679719368999727241839099066353864097424000423821320261074510996684429881285258965355362185713027852351146373431000120593150477557843630915825965743451169948985860831788153010990152627819802639173124481926555606610119585263494452788267507217103308553823545855634780883023723096950943594219349648595140922867178553494488439431526033756280031821962856054524668745446130390204635944154069171682047014167395716624267266205893282822191389391330989060740956373003165502092355363146090357239359775070152315655016754073008145301851985388252395136048221938563999326076465239592621943603701424674060001879476971534368103793729480800552521079851889155416933156832057891317469269960861876787874023697001724620687294032514512749640316655532444732772818097237412634417742030388629192439963149121649465895064865486774628204319753790313645198882087128483371662703404640055343526161350794666638366225241439167806150945738341035530000880543050119175673278302001138413107131040837428763549994583869487445294810751344198021599378287697800677163142099704585444686395458108555702800020415374787659172644941998873042816816433294168405167035093549997338443134094365627457385754241050571974817748807967714168843160299998515608106828195164610622660608138929154791861498370376252182547094624581009288640674250758481420478785130655964610104397278463139985468259782669867365837513605567552455237742523969705019685794617197919289551149322228481133297451521334268798384166490972142890825845478865903224451776718223443365104797005821888369860189107517339391334757785645537785621064077325625488968854072639502225100401930245918806223130553845895447923401297317078506484001251405001135354627058099368797323153652971975205183627052206410069176964647911126329272791864806992924562821527549906358135829298468942257267881104567531238453592187451898711851266890253215547958296139245295129594088756903257332648960092770395786447155413811989977005302217537812670623521790024080850750079087381517144609815263542813218283409726362356182638647291459245880859023450801485912150907060027336923385969088689199475541932183274750018677560825550790879236210552204409367771143785178227512212400009172523222185964995800459611190235249014214991642566717749572872642056931588990126378080396385697050771329139203412620272814585376668640930514537495886269105656416230176873020067726947673689101899810325782519865912374518621985849515310429798626743658110374157510630434902370417708595714755706900431449676162577136785547663015533943713254133236249896963885922564017381594520091656020244524216644645953552946581011718689771895302183763798813049512691370407791369116538713469925500413764486572142927757478618023007681907236352098180301365826109259042267011382959277148404158071275501460164324682530918504358417541888768380777279114779272446560668070502374757734838040433823934647246754960394225292904030894287986342835278934854464428237264463349333884041090197651090304042709474389405157392242114669990611865968148238501230789847440408400130437571865853215339143333522717193748202402692394018106219413718277459318359730756832998457867437049803061711405234179614899816067920548197845420489493346064407518124078049703797893470788105790260162864561419306883396047738524165845486304818054899758280870942938554718228883687963059484800013910528370675780807153946634761336867560217984811305297123363110534096348501293676930707434288484681893225546520170204251865795856785417431962215301639987045850695732657869917372631216968781688349866787992424935055528900625422473172958903997336426963722125581917602495776217043835146382052186592935462560570701079944470911720265801777486751556659204489063721963699870384395517504081380221133220168617318706969191401827049043480845894767708917550555367905615570744211629307587960490915128118553963338304689299552310706602575619008552688172499684026175424165853234412416153837638439477275039044611821562439853440631124904248713573874667660456827833003498467883946400254757307556254165570202087383439459770052788454519282099379308214694991119170437314958143783704740857878352979149959652961329114646595684733729298759087817612003954241264118368269815345154006391054515124047936525867587835691585869383387839633265792494451936760060359037996534385775926377256062175915818465229453356512162266339495796147401936877361438812561561036777039710480282673038910756968652633386651818318493638583565211147387833770749576375767466502313257030006603535809187750278682932097844529018832000777917882840297305208279219273372068780583470481076365118002027106067485855439836892909804969006114600699760899986598059473369897360269943513632339094627826696428469230956563232746501297506729522958741477022372006360591489639654925523934859624920948655177332242097739261690333522516339557405776183633463640491001352322809654662285370678249176454794180646357639006269187033372232723574184176087781736996681006815050958258782305945868131372854570205137365545493090275284793370626508415707360087955570530181949928502822045549108367004780139495046242179771824846604421975937302972368591879397321085676576401021401679523932781572944082690782096934059384586699422317465897860977263454148508768791307499877939833869027417304664030524524665283202477640598424966622042354779418166437753703512864491492581848329897877720348489617005731582971049497336609311246371490982608935872934184153242433727698310797796145981813280388869174639435485643212251173090233147351859097196373111735361161170286370994225545308535901285233648977924131573251569688726043411930180283139672596383200801989656237857611882418416676769588787627290331708669874191654207519209661529248851196848108741523014945039809422210926081240088558636204874097999121503295184837255756586587327614014818364658944536013195126860764562183014941316324351436895247487554615190284630614080093160331573809045193810263794040476770662065161190588699383786067710447929145722743681566733573519109949485671542355103535704350612302685267721602358576583371568834261844713466152814311117091667017157296231388941814482475752109603079610644760341752253608309646650314498608950218332711727332284075423880089158318483360678347223256658774163347029835031747476800473509319282026918268622333615734112156063160859838403831397683533894463914675574270429332925776268342051232875752190820346686664718324096539527614208282569517661474840628757934207768197051859781705338269172135645531163056220567438927746211163573890629297468753857023303439539705777207213985955297551966028632989690900252408050224709676078672653766152736985982606270239700350068434066400443776990045119504784644522710710402232605452382955966768390419247193812512888744895771837142209896678510875555516690754466385018764046455573938527057380031910402596312313854474417328885772836060857698777278775524331031276632444042335685948364214307180616267467118943258243590645052624626322172724980648470678061636901420892339727898653531604579585243104020859931523967678057395807937299404492997006774397852323350045589020590662891966828586756279926362088977422698066271699423659001592525214449143436955312932349840122825860047237871261156492799755843356501320831760143982523516042751974967291696362242567357849419546043000868582801332463342137532616804749260479176411354491887502754244559201310287402776218594893303654441802415849042258701518471149844523461584461412806797656004928435244702366814355853772358846402131766847595883666298429790594943942374405929261567804849265423197469578656584574306889227204342907864884079613827730726339059462856298605462332204533844617506492892047916884004011101842343486808842235659117843854910802387769472917027354219156942669856325465373637153039643461187749815755739176784967626434869404049630461703141244104022024003702889230705722897750646277521746384759095928562522130065760407246767686996299077718433468631945927623064523096595587238556918887594095282013831692978972352625662102260321175364330910291895966095983742887632335873507289046539470597332080881385620432999309267670824617945431860901451491407984073306747382497350317526395604426601786782485808848344654298563072394495628741957249853665077414999159424579155143923625603836090088610747302163553348761069720125458238189040464772213998613939373448160771398997686380851117761455582466803538758400646890441076085258570790058142183251438666326881588299460593227142834644677300827898038513642442828125484731425568649741615469231023057074757019146460820185846930464419989721345564440138075620694917707250147298433684921502981235925376861334532672417973545398033648344069949836779267572156673533665091804816549807749907528087290211876940980503566752845790762558222305004770524079921730346086074093533388772079656921561535176201068327280005260739858991640375825521710252734241871860021156701066647385821663447231731937956451856778985670660749720973888235467242787173710780916506609709184040648127486037429680511623649473231776947570108726182049278471786633840788898283285418620048461898496699801339784163762118747771814791397487667975009154070144883209448722190866120351698020037968338620002233671434204483706729835930038798955599988124100103492626854273181142219061613429098244982059544548561478448543258078471733492040185442036887445495922558862019690825550487432050324749193768745041724436141116279880039789611508155747399210187644176195327232434792570810764802829905408738129447730914012550436402135170996318106205900184289892462135005686852602532475952010469422877007803996099680564101778692174063038013507705804889374410171220517382099867582731056439297453676264510474565462510970884287023966075177990979752620511344530040297205492822963398287909534902752642866206655324963367840515253520915501426436762492746484255409679146196285826195430859457390945282592904036212780871272342444727713025455199887037081581948078336700768062459022068381821930373534331070193379556406791179636344053285099328689346778180353626999658105933444873533061832471949733558834386212165395217591965422803825276049265700269200005287793118282753272223835096591377627391949024105423093119876047173576900936379889299492228315574462299857693419728628279334260127128588505295683237827483521052911193858639121375287200905813899408939054248856202800678697916311995509899270439702052461773486725842963593751401087202604367460401915412341601401329207997023470406325880343147411861865680449090163115256854002205997889144918746381015193534099600494282968522997403333801433294283700306537187990668406089051068462972369252968106367914154834392430872149341771029402273353603783813974732774293399224244789650804958134365727277150755944107932055986291197114464739471811628886910185548453626495007134441773736828364642560149650614019924077509262310022336699854698205417021521601192169159198032241209657253874933900945351603257556610609582469106305438924233616958139025723891957778056441673081855006138008242734969182041013977132502274612301608738328735376372902078646932312522480043301115225364483005433384541188125264623990014178261339328141818348035594441508749930113897342103876696086341360668758775414790543577738146785298293709491224332532234397746027144257667575009698942619339959617757722445205559497640371786866848989019121615667418643928437127970389603215742404610669614502991993312607300335609688158526659829729084933994994382870774414830000911904143103589424710119452431148988018462015933802980910872131808235369143147440905312201148143298580916887236427530553191695382695684705164636052245680233182626991156258289614085465595634059369579066449938334073065777870826450193265435158885247477655728355711143675289665035576576793120017534530838749686585912862253532671284035818734212714185281387118400211781359672138843279808428771351734950158258340014836795974319066049371780040709440046362691157731731708864657022976116520261551919268908916717745425214606158958618340247034636652433047486107481746916782283006652586700776703455946602822778406289971241347904677959576222740328547328766975229541138781885573485559882398166146679604795362413310312299785024305802226192661962002063615935461235599519681496012760493087496650935554285358361253025476436235741748441110638064503120100018947200557138739745742374273667647748630339062884611696858213789482573974481484975934478559561270327352624266595652434204076877558149000751225712353159832749900351223303510989333614410736716919184017505810496702713697597566632112141971983810563245462744602956926348314347045256238859221126228558514173542177574610196355882912436528743082292629136763837713344674192794844284428655726650064201019169288081094828472530420784544048168020967875334010268746503666758324890644270153697652384238780818375492746274223580236075427196879970909669050440082893201340324338516081844707653620566424169535414128419966063521570777796649568947737702081821985711876936117757667108698213149353978244977850599264342613299874119954943696822561497455730053830632929572944198881191777361951216050715779398571661174432198804871696020924571140699106441566007241921148146369113096416948482844935424162402332146918663276148037848546930281456988648856823880375523822882779006285223066646904964003723157955050936876017028122677392319955421832129930326294519553223693596996467926763214831482040310210919921587080719235549825456119106963564608413123151115958198656487210582728767771811527492926804605228069995273347689705820926589729234500371737084349732147292841018919752472122017236204725316869794255525924842921110222033067201186725993631955182844574488363012612455604123891497630694407373885180196459935677057923887314413016679210525734197513352181479567322031709133558187375639630972602608959033439253216178809545887572525411050765201191589397575419941724330649474127999646727165500039615743045503846747813702066346441798736950028314712982101153732209840933981604152632892694637771377076627889199846628634017239260886966471964882503991050266960532118415290895014761731911740655960481518304885686981310452201092881852614088918854238409593978951471105661555294514292199231381450865352307147555787069916100261923994487249448029777376820908778144271177412074966011923722399093383136198583154122217847926855673604995103395890968987845715004852021644551117639293243070987913679124042792556393431298649877943588740741265427213000273872982766305287930260423879848691893609064843002317119669581333987730539378828779940500627757143742246484585796036476867878733405238053098268643626654794507559027525657851061792386544419354742125826286802883552824587172579610649838177276162186019137407406553095412824955249470605917241409619565763741554795587137560223063355149490946654121605612712517730526579651116243501893551328143261552013483200582211341281311505550483474554942444458426701362160028413942926141499435256277887551393321814584645404039055272847700440043501976061691028889714060247007636125633396834850831746495806837311456371596452244129619191538321154503089842051303660838777208752150421560397486672323077919898875159060424233249816580432944745364557992338832733156374067940518764682106260341508313379518201769561278799418519294664753423652652156548151069362221332813120802468126058876269836023666156798285980858838085514794065963300845510815807684982036767734741706166338773148314709046212994224012968816145470177227820020411768347789106328381906061233225266513559580378355715038708358911962612600907819638699314847483131996898523125739127337704172073141110301052781683998235019833859991548097216236735822848488923140180894692219046010468727059135642071588575329090675654798634354659241179257283002569645336652468754562542491206760308992777274607489196844304786572332190854987212285381697472182250206205912803431009323326257761074741406490200033956068928058400225906486143606016193905362086574325304871568337603408290115450348410686347557760407664178204135434388847571669486259829656264564696917389669465434038167826456587040702567814734333587560457577971311094481527106814171657687330019257801991709718466859567348212668860979796352219056380974995258971382268848791033877304199882065971096889275230387625898439887721665651198544396340386032152651104298963335570202293972492975073498551626922762026105043004135988463487851031175637657519162050962463226178880051502557822536505080003956464122175712846166156391876681953738214573704447771838611743241117591347372639541505250492890771263354153043501490813668360365717221163446563180684604804195575920368349501285623402874643938843395526076336305458751196974264744935937682532785903081460135977010765962566399188336161845867754690895437605514246005811445953325500641075312067356580049729732578243037884478133154083125671663762129952155045230445743843929759266511706686042657735357875153048747401683642758512757244525600953141792071142819685740682247393205348917058584659837872620688298016238403324864459858052138191886477589154336255668289513214680582585444390469964774722656360598784317271216699501297846622749860338493783223091226214562533498936540917763144864447854679273298394373342112273232097831642674226560762312484425143190562752834053565549977224606073165918278466986788151400309266815740956008743780092186659326627348081370835360899378128221397112117053615686186591826393915762081499938642143824302765416251698416515637816421115938428697733312260866090579014771924663300555318670040026798067959323566580283092883446275425585551697871887876490308658420235161932947651656035639301400204859281841688779780185932337637995824687387961341514486634638788313104321224268953198480198805923842946863826317623550499804567986430797296445121935286614559833611344679387207498145789199012440260974609041560528073621849828374105583644675076117237868593229988923068486527805327616400881251624584888068344449171312851620043549255066708077084044886645440074363838802402414844734825953838585902259082475163855357044778252713970032400227389232288426256133994435525441026205229467127153845888528161033597368340583061648919599022070952588676837929176106155126630727980760673773763091526947363525050799710872849322633953182300687134661437637358772107641492320281794803799242621343379482033431911463884861498191660121303026633719119668146168710962704925833710472637742739099873560815987942482024463212155375079927124553594131582386822045413673450478614617385412197715930852397576644449592472817908991675319400562267211577326743668699772293524808629189332149199533006911584586622859745056329955600867635331382528854185790513173145847727969091796466840374008997114933175942316239545747544543487747511573559655017848623098521956328825159322630298415291256502285240079293646380198253885974668534079354963905276721089602407226902165986957701097077531452104710940664188755288569762172944161585890367176649250679336740399512841724072006864140236647987681125241175177028408593470301717067343810185185547219617153752137418335111126344430887895898445474063778318358635224515362340143471449079373302195187363997346040268169758508907231191745040432785868719752588094537592731012884934285959645687208640187207284577438390763901238867232187190758409524846291787624684708108681676168478084188413286583906700000004329454952406117387935551145911457413708850935271654923117068947909038536468460329495617535377232329378597966591321702595008320275372732495883939974711953618621483672831622663588712929761702284375623738150756206419931776567350594148890635640874281815141873585469252239570037613654287553962822582996375939904616967243898989408380724789786218700154973483097079629459189179260805712822868902844569687013114165989138863127781593774723518682963091058806010955290175556680675722549683497208959068954889965445681491749325030614049507826187895539126356248586513351570989994457868360427490195968801588385686134826543679503363252466464210958921519626337820445804346475884502023416843911787171167793717767924047951261029418224640862182946838784425809707476019662778765172541794510907327749386348944372897109791139438113068118811735565904438165897915270070080548714591376789416415469030432774050584541584217494429340755333748110148727033126027163691902091417434114618458454200153034875114566494317007632292809840645240666736266740797393331009289896134504104630681370119617337659933735042698229681019852007019254010492617960687384089472765390395679435353906509308703797335239558739394787456656825585339014312057772739962568235688754816930753001675331750107451670601682507558006462544029424961821208913135458097369829435994383378274851643722220677181358392527851939272532838203475766937071698580837406388750680785912338933506522592743863023564450461828195298103104163547140052256266401058666382770473738054445350928866481488822065966118390956573563252360365961803338988743455153355748314675023469834220084131552120549495090918997365598355724665153453996101044673867519871545256187517670888769752205282785272125282060448546017122203725303644256814165664528092880055014376360583107259964944140041968197311980878205323418212600020811321079206804249996494275748166776252779259167391368097803739516663223286830130190482666988009289862218775998757315965584161326487054034063551897616168294742217035546322445192894786153122870681286301783422201103451984501057864683248766088612969088297275218606718275763751132932778657558648125940930872016004295472576208339838714628081477248189402820552196065966514264787409536889916142560160646899990612992215098553615765563535499376043153502857139976425347237632475771081843013848872374031299707330498536430014072530977958107681987022293878367145900925004968575455871090030161816478635517669763596305904011236943321366610753726391158009018454887672888457125925109982661103922078338275626936405860721771447534893416126284850997759082991163935576373973765852914076461618421840996421226937943095776718961162873282349982385225600507840209390062886971978220441691341907002832678408290316405492255217704361494867334336172680904208602714138489383821050488094600746603947365764560137746087900094401851222014167515965762541595340098851811603334521922719882926058652038114649215156720995497574657412184087226598290470981699769477046299060444985059773743915379591172761787928258102751284708735792014653006403998165314319391637815277208052937056104195040831563840441690982549801169088693326739897357894664018186841569156982357563297682448222401128792188424461857669915529464056629016690499755566941439352988434425678542641651807658876787841127705446577002680652940846093246418630808709119287726526314102184979683935939270588947728950992067663622109790566298004914336283463940051569429057347712518015721155820999691017707171923036011007043311588783883236629696654022264840485477648283457567066890557190505051105218541543515469388393558197737813891396811326137272434600593163145889031125429362290561559279250174761961991019516778981690020792376225321008855847706871838501276932772952804016585339723808971049745947381093404109119755813596158155938968801980539937546346187277623121217923318769253807834302983689638845898720049845908103324474786886338195053687727241926753486838355943410854980054390336355685820638496426423465355060666815731577170564728694352469779193180560544945707412091194967819566961901723659458384647299401905601338791868367274449343425974312619778047844159932175657848101107314350110578576083158285597068678523584170501278307022282038045929208176649610664092749972988980526811118391647886075598782342630520961510441320815075214240432450910967165042124017110410625332621574492436133309235343158461698302458685749860645243047337373151451836574934000607282641761656170583238497764328652137029328735486249047720426920900414851478952205685628541128590653373453469629638573396832328114441078496048198925550072133875923680518868937526304891017986776363736891494769885842638756824112776167987296526124264133885863924090284031728824496655022800162806961287973754602491331216130681412703629449466684817775945662784049819241359497309677514864486430892988720592364760463287458534882322545867030494809787920232416573790119133641491107295498809053908396302148301180237004742420920777008267185479760247522907545993257147919511374924890091687684446200286999152392713417117055769687891561782367956831021581964620217060526806284124709017696922242925060323987321868397079371515046941603436673186344220750700256632057891475568874755506471399800981139261314848373326458515230229842346444800882973494215199445057253649665656310648246363116755307511897450201413014321986183953224033495923969974764227550354851301994236117657651587269976895782157905919022048349187765244083306349266436849441229135123370126800299427994924158198854459872081715021925057275453637483966859868973857571246556932990519250543008290693910041421988650860339813230064596621813773076080882930242814716546785669902950498843393881700458294020938683907753691574637744665299901040175526716729777435811317634642655437300463814890756336104809214688843063736751715890526297357477156095962726230215858555711737464232098875253268603066118054794209091412136001419562237883723852853372872382972863488207678121884460163860534327570128267154138339805376207368039527170012437539655311557020162766969778168031964172156205221036294629222128301610470109740744705766291014268713515508496715003222094381109889611018490785275267739201063605907223788016686867416742585209526204037719047354128986753795221665894381547838187387486082013790472713714997198893922248235464819309953545151255389034845994570933509846277002061218087901747444163067588391340038598741265963874837286270125277211191440373012685659852571701959467226047154042731086738050679363379825662084333142894277583069256251376006214247468165814483471051054650387189623887138524198700646338066310754789403131642406415480453540992452396135262247968988263638175771497098159319582507861035392106027775230521651067733984327531426645067401048428267523433731495458009451525603298395629302254765233678082735923290746184184347689103016134483334290175522624306351131969879205084912697194727101824336442858787553529328426972982528248435948278782183350605217795138560210804895840208012882953878379794205782240084968562204851923721711754355361702513262435492722236295273580070977292829947516658868924835799900405989458461278467568960959951557090593111613785416019125155211005100527497713004787929201826037703345793812516437548282372572073278295702104205741098367510922088792743974801752188098840840925625324583432597386890875984211300089945571858659872439399101250870516146734244487370607973834349484905168380684060948071838306764449887601608859329131744048562001644552010735532135704743305668668610294653297874361677647050188409474234148276129512519742082498136631844413699644642310826179297998539899803796066752198088011262677173926816446599365877913266104671182315599977066885832935173540350371888525005894772863865357297949038055292468112895685456575645972578974981946146990323669483573921958157003074074634414172537592368753624956027440727966979928771979056836806567575800251744645250899348532274467203630882154451784535958804186665518640683052618702108751121812619136168336846624509864501367906427706084227412724740368090914323500535305900384569644154743958816789568269944518242080657304350122307995462351115892331466593876381746591543714021067886373441050389565579804077089240867158031464114943939437623537259993149415225079921730391232967886763418127110664103313030796647830084208585063777476392156847246697969426481628860878748008689613775969900754628118129577358030370624261307811923644837997395470336228493556734478222739658444552113782752045137331783285064219963367564717924651166131143573751249499769325215048323344045223784981868634208718438720251400074114157185639735114473445880398169968902345778991917490420832437760367356497386118406297863196463025571847048076351844452370408089793661520014229794249825693024049602272034015149268019708962994843578435612480184296214076190669288264558412371014111131297927147218627673354278675877365414234391340903853549416903703376579266601581116054751232768748621735110542638966501384547233109710764464196595134724568959028105494278517059590872122794972533279552453802146221398253295900327023130990024956872901011062056829175414806738128466254712819544151110807691164588781270498721432952166962118341313964582410857305819211212747544805991860409819857550597862263700997495588476632568180223897898165934385941785354489394269489476672314224992076343636565207256928365969222436697421420958235538747604724915389947673686190096091202709337536220039069929693103477112979396976489631718391532374435265215107263244143792982145842878396709303285201882289327130673461189504428540477018727813777078484863449672829823358070482408531422866612055947751606243795044628670702970405535383912873321647855878474639256473598022882823974649395950331837683392751176738580376773206165263413563236799521583254046582298027058561227358491596435760050610521600316345514105468794537147432734226571839918992769530890655617066587936818566891211573331023120530819071546564847538938688857321524853524669721022831623678920562143298182328387902750939084395316028091171825357745384851241663769865846747487951405628007746831168997967662397974702147894428139832023120113138952630952724396197672191556641628777850543779825910070413520742994798194196041327082246594211994727994050247512065238422998892781022715914854837569244042325944668094935020502163673751205046373600821224998714720544824291226939103013791673314956176449623284982899337413787176590742314052174832901146043528651687669790103146978073849605272936918589322840748675008554264508203662981442131839542180212076038583210000953417184237052902202692703410654384892775275332579632425738246407532542841528174803873345947319749016962201876895421500154027220602910204107253270902619757656704584975011721480412519616407601867447793493704546073225859089096041672412704171658087305877230179409992764393962911626485949134768591630674368809901519453885273491484510674668993386639978878351844493769868522785151729698344071138553266161451091433346114535039180806923466624496914709696919530795316219884442480784864058911479715245689161353457782757581602058382748491165323281948354453474164031568449713652627836353807673776288508700458737891194810402546635953839960433342579913237841321194215923764790729827072535594881288270652357140477093047023246336115426757566003468832187555430066867084412960050560442710326109588094507798357131487619015080661905204536141672087418300464877109756240885367181651105240436530333241334882464923846857033381744863327155661718944866483620788709112023000467562162188907574302099521923801197829056987221322463653088737751573399956660317687279848319662657376895230385324119736070706521532483714729926443955992416130913725500899610383841689048290479412631053879044143318885600767005282881238378128712229161671752122005207035255110613425335489003168118292708286845864029211862311798919708510125376652326858152269019281333206138739026298882245875576623896158514288333087821759873037251025385123996851100843653171826184137236322996909672704296835311027943238518699281400760138234059431906157536315461255949014064353638215088679276596904332792557720478647214942057306323084278055331197407691419535237122419983069564562577219589708238351457940153638355487242272249180418095570574408535570321778460395118801548165923358842696780726908716692333879330414689888740739159426492649191039267780567328580307225539489862856231478825338300920371257415928771392551735647133204503384078890336536756118462081549230550205351442024254773847502230601402244113780502443097389596733389693237730486743205665480336862103596605503185411265287876914225622145127347497830034363227347949376360281327973342173623305623330457390300549067727897176303893715322525075325142331592551220761841595924569676481437373882236268449975004710162758246454551098788751149513618573696167149690750473483702410138925931505502067111283137279772548405466270208261808773520141128354155245861172634531891690036646310194880773586830464776227639868509388120460342500686840467168871778602558044055319793343037858216286912081753268621409484702214660322996358166385208628165545645102210422955203313249961122057302085752999004757399022470859293231830094364573574703973200230625091357234770032356085209953421922279300086884953062677432046703632315648379658084676980261014799047444134166446283817495513788964634980336690697030910911846972972422278957915236151274345309525523394715058033614242434832341816687367845116292547632157304573382091658088710776726896882611390754505399455683785188308869987442440987003289859284911534970877530604911331499782603701722928648231877338308895790150298517195709635741003490524692873174575843581367924760188264823827254082701540535894137472446602331673416110917433378557666128022849465399430482049866609342646982946769399079104038358167434690824764145510903070254241307262477668437645115600688976903083267294901878829655882769805210088655425976124400519059751449561286450785187612394025808736298229248935698519804371001423515642306163002062527369620353183397762095754657263619253343878638363167494062334932370967734212345933714657233513008014083824795195761156301491933233195591888305291526224955919460827280403275906144421715945292624626081919986903528856607451157495048427562628606808172656941914098546946323581844306454991163937668842444271392158352305973958525820971248160882171799851941759124940042364789956151430305515582767486088789569307191534134890178811554624198119742623958406581986006636257273068643092755197244562921941538531311538348672617927357988695587983576263560430569775956094331220056794400147047548034222501875705911168594375571108684804779552845544250334662570388403894027755975919150223542801684540133410802959428102916112161468997223161912288795222162159053788456606480134975713950821497738054686830844094504384560680074614830962662351672963690595241802674279911887215409303168887906206771247858987296316187919629018056047575073717532797588052198875484196732597942451201905270662870479490067969530088823441823766051096774830338054847211248619778580123496494944437967387450147776946011765152666600955185146807727726885974748923000943275293371935966316214468609153162868944231368527044571316598038130926339752908878546732387691452736223608116249364646935192793832353883937796826357412852956658228647451162224754727118007819724056826162794119905266769274070579656215764155642811360710454033024621728443473117445600889962314507667341883955457093967221952834366493058330492921503066109298355333876646427291264584281752768896259550620254204857523962627003932183499576842611491197777514207678894142983100640011838255139109366693776775871352703972320175142155302812561285704137152363961687583147128578707017167335675597956570821044493301491149532343224353992675116437916497845186686310300636014001685724953216647501741097447818368275459029957137108386033900391172890100185316839043286584836833880656791995794585425262349940891885783942721710708333995032880038636858757615370036263803402974530935670974243112389709367502759588577417403903581535724387061406851805718010980813152725063352026267948968693830227360917348711416822194254326349957566853799963987156086621855132374690956135128632534594066790328595896416532231542448403506905710288350305297249364133355219517929100715666033821703938487074244305516921873482171320654968673420316011426324972802979335653032643558238476079234853767103340721454866591612010309793002278271554668865929202952065977335229636339452485972445038740951602858543243965256444610009632820457430265066079403920339688253988307745239296559995609408822437044673734782908175552175822298366909531478479972485486131607140048857566982852099867471364990905043437646212311077419227186639916151536182870285038663408498647695221547679954821158132528646377327825527872815677877936264773669451270285789618429171832914083346938222057704613324123480722688895055971061984098456124940462373447948547411356177782419304015724628386236174384960107078178089093632534450658460385683744364184828221452276905818694447723028977707312462854730542924132616256457199235807925111969150295132171340344547548407067144196311060284267556641500461788405694181145770321667406647139437050123837005545973804030898578063048272753024955474479653626908865535177636301065242695708469743140891529358129641015448737186035661955206519320789978599183323267156173000120156211375828325027066871444187713710607740342977026859063889168920207691592900528536334805249228409835362263133417254392594312021345759485497560618285044399500565016095975134770758713854475429893935750581805050286892425533709118055700562227736304793089629161053399212609542681217449081968572024942547985089041041303641152429474920574465029020449684270585592489374645334565909785234224423182126323411950921373746651942929419631223160265254644474182956201892966880738006930869482518414203050143414112920722489818295476229759682663248045627177971891184763565237762263820036022881502608870251340317839739872485317959319854566732256566897727833994852374500378637344288068490983039802098757581286296368591265494226233320327140435535799329145992975552620096443979509818286087477783490511341371712986858625678687094648905313545052641339127717798189927319874697858047310872568757300777775089558477360731213350220605148464006157020135476951272188793259408315284359994865796178514794181592226485453009425878371929767686745910079650473847692524061121829837479533289111366479926341411408738468384169545811190041311660598965113951878441950772021679405154729374931333683648091588481657159276512235986854487656797976167837945873951572999025627683590022525372485622736433411728896630598687917904310011504695856064354303399599691731589180939993861849798608575118838931833782130713005588036151633259593306841151954211926737311148423067391721043696293754924427572466227193000433399225581309183083127692917900426565198818514179648288974459335853167528762724329687943491596093329507886912934485286734135672174002853198604155609017889087421177888097382379186756953928807137456382596940674268573141545302416823525906011725540908677554479927815597556534384865881169771642584781610448318684476957021174158128536036653434549998202176254920122407301479898872165446540839683086918935342706854647077627915157302938466746291149397889288459658555446674578011430999730889128086924703078299038050986889994571758504449123036450724192558363480359147776191140621953047208135845143183636244562974126389098924189970534169914979437377668562775345769066631072121442646815349751889219949519685619260245744256737791807088661522449386136782502001654481452975152367757652252631888481990797923548629565308091694299468432927109110844568134456106725498611285072240848593060725918041469095515821513068912000756212895376983230306070645735273008293953291122228944456715289010840403377818793857538329438097243876297635712732125950557515719401509753773752744064005323685974792751799426192999179473444362384925019211458168149929686167921532451613522560379698541789434802274562218193207081294563145029622296632241281020497054346348860603044162401739741657556486849649054983080018016633804951009398403738913803032442983792685600537248147122055330518857908783900727553121584433490470733680829438156451166875325724169467734973618642129894004474650532893336519312410109124226107237007785482449192454949943869973024559886358190316985355662902519605930555734002197218707085065117742717233917584753277757094950839333593552731964983991450219071829488185091771398671816074186187817116523944460309731819942990521065119679023986303628732256013932689702416645147265946830699147035348431344917134982850914079114883245460571405757212400336224322651003009179203955724576902336116156602995206506514149086984656064214402611958838283639073169206109056909834961369185666023808033284718103702124440153389388572077529411365655402081023924301824979208121832908986502041672542520955855322835668458958043544269487582499524377970439430559940679411053595052197851977060131324094855153688081230171804105388233951964683232111120578057713291965385847420548929598511339696442705783939195894320551658148279329302721862278917692618731607489315536730205753738514665962960359174655191269892398169129568534243387105937098676130938555066207474693175866554796470695335729794799167760379664349327037862881136755393897255025103682047969094817164947298665795057963459583646096047099199442818045847359527900834021322105656587995266232203587749159039140813917818934848177494589301382484051122591025012056569145771245761157944992944014386125458569047234360103894077784380019187873174576541957135679572948090113915823955521667154702521992256656111409174231506113678557954309663528777781024948079817164537408197384039522026457082796124466831461142241707776645990114338662716000072316776019133013294077279997802500020634108631365176305505584324155012594575436037841715369664458275616276644968051424502460055192006861408121257298460465053126619474868276310475878483428655457516714747125993580202887356651264909384393485326331069472732182847361993211737244434801245771357726746201293590862084335864882741570448962727516132197552320408099356468781759102031220299420244775364442950438015036516217881198984634262561413064571440070050241258332808456897636295567209554646101882083252727097776183163139827927624910181990546868328559576720308046356322841713545197943161206384998405975836367245905496213263395106541329862314237386607058493062963827756042052002397863095210709392675117101765982226025516043565798652196358175518382186824186000919902841346059888491238138952123198295082762253112412119604032653019792473078258039803140681143864195234441712656467056483260642249740203432733442951524020998531414074639518199937386035101255120459422906695045628370307476147631128095812326138954212229347615880640112562119341657186223516372938104852390812135883309043722535557181745383564646448062599653132050900060294603665043486493699234493641091639841065080416148443891430318155997394141619715102274060871730872204609647120643343147173862814011368702010323417171921434748299780876036081933437248062489130987452134223760946447152290225962155916369794715012965146264590310914086561154336758502211246849743878469277397644031734933835502116058740751259727212919247039343620926306000840575655308569000247263193435105786075132233520576337060461446984925569430914914498130796515797239820590844450579204947011680747464616975956386308166953669838468298106923208257454883743239207101867206122338152806116612064288419967288632442859887976342121968328527435202484038368983681596580185129671608127591651527374824130733941114300795570457266832548285289286628514189002655017853578972002742392239255593711947719113576020931719632998442027242230615710835593197112690420593390970584479720522760016722143878307016913983398331287560329478796934705997719247551595861510289146344437885307677461746800988112259077544645566087366707056295564010410011613926366369930088779704729504773130373593018949327372960900689013555166980372628737208022717830068451800976360625081059159064198000114284655236437389660541861953411195857146775035224528182957428237236730644589778804635868950481775936374541435451939399921868164658768574416202633744980092249013557773260191135770086259916911855116294516710625920982412982358865939068317690443286152647809990894053992592456299228818927368050762403791201467770704616883369034594843307528050833857504860837621078176798860764080513685114006876187148955283889507556562149199885192801586375570954634055882300445565048957797738119975617599767502063275742520484537483807188610791701069422021827740155900438614226729979859388412154589285628751848256714502810062879512283064593931508085317399992575641141850767454347020808408869214562058266737504950271304152278974981204186340583338680240633349398820896647808255878987465746517993355341430586008544927578852260948337565863562359526562497939724511133727509208916840182488270192113266830394931229143413161638880305199205571488507934578045265420200184536530659599553803124845624600655926357965926089236117147066312984207401770808493846115702465669060181860263236279616569948760351936828877610612239954788532732348673088478106223731738973550686278307145376685335224792853463555836048076550509209399941099819622540197022452347314348200964698637307442632841922571927768232834498074195884153982842124905366674652668835314999734523129947582841270080535964918465222324121849788077125563292270850592255098224987801108471099019932713230225801314075337601372889067824209421175610077801003549247141807873435483733283579093300989943952252489486061342202652678062985398089971847393028495367649716765724168217788890510685771592665838676663241919554607681529740736203709634597986897853431125984964875204495758704010687182512399131630151406173362456632720389977394070604193825445091708312357412544326822147197535051721721398356428474010354036619801117048396014787687271939262996563284512742791226696061803904589277378220952973619766732002444777675351345405443711882667289609669834869761194573197795795286985536003459291256812195714230257859258042552690702367356877551488651653913592459586029115373219218411163212505624306014987651117812608801474467349923718244055986057074040451120190978043437663149433364894484883599880312412706053861151925419840647733524737565872809887434333653566287230036917953945731644727873298290931089782446765174990597126411448515183936769247320985590008271794251469855945202546597028209652013328304651408171463906010789768166571150992967043364665482764565327009353292400381633384721392894793187655654532463635486206351038347068619531630986483506549678130812798409198207152593295048756079597813394195222029788688493904181372785409507727726864831325164031182900611993312750441750245943175081692659665072399442452206317444525544002136179792337399573917892363277378782851449122240006104212931253964750744783547538093151660648700546657572868548549047454862697031459082141955627752593722425751911372814120219740044405658322022447896602665516392255016911406204752842178518208306233838987272680683840586834495702302787920374193017164571038109124497951916342258147940265315377478100169217219277146145022446326543033006490745412240358183085183485144053514035193971079067982246493564091302544698628395533324227594820984309418647088295670069214017806026290738113044031562705812346316901010922134248629494930402435897280656566053563131237685113421438434151389088314919152272752480332757858023748783409820903198698951036390974724180442353395808975313070302010243272045102952806326618377179801991594177925279929413191683956366887293882542375426879869994088763398278664055358660929846313122803290199728204262951574981629121314901517659326968509934498611464834922694934765489215871106126831219093124011598416254331462804678165806809986920819505159802109898252822704173912569320931408273556556435873412680349569770070230516187201149876161343272808788221490973811575767461956756463782055005023430440333994139635130416016667849446205374007740541848097766622169791391044503837868648299420337259376674383256436914506335699907494254754649616240499997640533124121652028803079245215508687307034528676850563888021438595062088534564480038854551929255687409349529366208319737579675456405618531159624403993036785952853936259646669498291305221706790487239385855860286440426469378192291664141412724364311023496415010032391205108157977615236477657734689198654313767092951781271861010226827712534244874833664425774120604326619177469791330886581122650076770584228082411248050298741986057473571959163150333998390205833063062874906887933506876879280098081155287954381207168543589906071040246759430126817336476240760962654847955179751207093223799671447389038868284970748553689206108382856265066745422553002528911261369607771140629854160243157238157271647775597200438741847953462719086352643790116388768808512285341514112546302345171157577956863364385195133215620669324846544291416256629114066002892300517394635385646427643400706629339876650187254363235773665568258136455684929237399126547884570998620973568870549679485917537086837944385954447443944161689684157568781522739396598666055825295896912884366453646033042452394225436991630883004414483649407787638680064184044224535733401114469520823777521593286439841425112222024562960364070496734791549725125494205249007431133957336227961236928086384085304612596565339908785586799783759639539532058629921837746459559026762253778726229144617760203585688648415019975922225452421398173402840678211796896211020344743708275791906348375005135799132680538174831391266233737509208648806299213188325393956459935567526670322406958565168150117584717567501087107228627153602301969559981877667576933932181141062097958336262714422335337854538894474808201141251722054786956176201936826797761215575951673570313483365981481947780585930318621777805442882640608284600900433758210041876953810085509671444888955589401218054331046930034785856781206645222845475504244613125261579556955756734296443744545093689517386710854166250403187963786128404150712029561862091405101624216800903951591610109599177237741591722967264629547400376222458993468841189155189843200966258928516171619984133170468964394345022126503074133651030409447190241865698258590315156338633170993683759592138723713201894656315471224028221900331127895056475982822081462142715150867750122561332963523764000067162476711302163443942032051565327346022693904198423306394286002637997292169438332627436602900275150890837424455701840673859254869774517718387847222412606699476356257062599492514812175730140519058592218381110408362596415280785009890429542280676790296530780798954065889305808392045624413024638903467849657177838436370249059364732459885166919803804865338062598315544527188092201331776063024208591658859105395711185824825204433391091507015144505591781635658161197087951018727185624379060983581699772098676126007533429636147735792988947907254125791580823569945392092468604175737743472063255256974719747514725524386643979691080623769399533649905809315726920582446193195739831548280820221403138437485578100066977761432009550440422972046425338751208758361556377164375780165878675037668621719972777825096547974427310912363782196008207333620578038972878762990809330130665794944608784766655560204946768564930182477385241963180043252814670119734026575622552966025073160108590137876242985090249835264939745331152049220404844969366817003918173708186992780673202104675229583227997092291307830146592251655476003286255121916921431583881955836452408626051057764070847471941777181870973784297147157634189382544875169574712573582255312508611819060772272943279006406855409598026724289562583214185020887886378854941282891020832753390484463517373332465369208482382349776860851802190895493363001103825759836511830880187871705134936424854141139469177507202327226947003591637563767873432229106014232458997695741102720825013554670678818714486810950386648492378113381141609774425286461325407820803646495338834196266042084517738702268799104499590897582506252245434439195396777032434684324643377327813699459850691982985450403285112558622997268891841997978307299650776997938274528903895796564962823025273215613163240957521305606079866784921914574747455425494205457281985930683717501233804778893683031028299846679306488049629671054854738270248974954211296561367553522001414481285719631284529555336949483321297536829735233322801500176855300043946477203637062784856215419205298830224940967157816747544305907111310588662718078925456052415778816888488771874527147223222580217485631529204454431092972626955493405615043365506420979935727047726984820296600034933077172931732653177779492277915301495251290013785383875441033272428817343764130030935936848990249056071038999686830496554369363614668437767111363495541209649713256128652152075984465126779817568821297057753874512422635770771045530285210322441398095543546706218217793145267320875232060548198066255523135351007669964908588025579183338895134740709694158530072502675140574506771235779681844609879175269454637131520834524716501354315933430194931335209105130942146847014611315574022902509277403763664841685257140951102795850267468206790380739112674430141398111509627054859654125110815085526788409465059473579911434962297088318705291275250190486252702443527658684649907745831166097923331079940464313440598338990400028303421981044957808286642031137809222660479261940443554869497535343727497415335821545012638052934678178840278869368209529017586498698728938902210103788055152543574410085854442933169598743873490899686423883587872244967054980111721235491041522090718055314449764904679568009773670657882581980264252239560836866155988082374009957667686788842122064070592971601147266826281892952861970564818833989585342230219951279023766792526440663959165485070700647558004909140823551644393573082106349125164489779725431973311017781018248317821167749277410742274309686776454560664819356294759326356297390433314681927031876550074391829903226833240523902861895330702879266947518675515693705253293820978001226267637603311966282474762173533456620090003995333522528158163797287012242090397273392106141573266440949180731774642665347803794714392102563555842371579078722874896655956854738394223226607749433145584005911857564207035494412139093024267004734579500174651542457180446804859380465694346690968965999066749251613031575961756795780997934882803438683752679397350955817285580749363775663011465015954692112272436639615496441968241394576045956575669215415820024241628597228018272781260710473850792698700739677033769854741379545924565485799955317509543585957724512915131866272845657553918354429940399784913052935136940989632182297907741739956421233797192326475236792491349725845837402486687777802310582285907362392462146042524447162290473474004735696047914651146233593055037500415468346616051182910139454608503359294380285054797033421844928178178598516332483807697191040456621209980231957307156560323588181511879533594610388067237512101630937454975236383439480564807472852667379698641818393929182135842793597110359220434926610527963206263970528201070553622288856157887843399123696888159364437829645228716456476767107235053225208313211444186764898615271327181441473251885471835300294454169050976185258608698760635931100137861160063300997892763542621607448088282127126137977155309699015315921866794102983931710896973722834024341628240010854567982454131995101374730278316576133600960944042040141476355933707716217297648576773021129291494910078743154706772135661825937215229983627955767793563199133662685946080945209157436976185890287658964092693186314310020485058378966804791221889480483039765246006479743733996706129388785431982593885535093279794452979629060327578267575782164562765989954872424453732052345337882017919189440502692120129557162433575693840844658014242449606919053864743515718796598614492041893919515117912619091080559810614835559935286690095286194588558647002654880854774762984796160202061841493412306336474041106657901785716782153926199452905276410683068596269347592605253427179317072126919194674831165731971567070249253754338960228541782028204170090735316476652634748268514416869145484739153213369028357954561287468629318610279072987575732529907054527814518974558607570859600567210146941128646611767309014222424227722794705832176665806201080846168027528705438927212545002142460655471144064124121246540744637726802645885589635714086112656572194377520640138517310158412554276453243662847761149274157656336028164567002823004926812484775003911618349986712086397968986076273107259718504042428605293302611053033137600714723235705349467578859836543149607771637310914609709201490665729290914983223250813269471009383627421202265398955351444483602261628547364772438182481027630284482139245561827125732564998490231947884639710014867835594024152203135334286531534814237648138868692472061947573773206155785165096102435266184473697999404406823564330101137006923161703093629979315605333619270110761236984980645441094335752732250151714848235578108008684820737540109945286005607995414318608282148768843594108014281306856764659496716995258512137086570443183507877472844507843542699927213573939783103039433248273127388930913780293594573039470033407746426433744377840269129693845015739001376535961547419789259826587598279262338426361776221039259900929855535950662969717903821244861762344714791761056885202621176010506000883814631731308759581954129909300524214747056290458867113244346992368171875980980293828889566180633964638979169653827944064275216508852420441770437626866606293303204613538703043801203581538813473787334977482222167879060251860725925670733484217721330924325876041557096877732758418954637690129631343322844738263750622980984042496001570870013924066572211926036100033425181351656225087520927789952545202103420649426979944831801997452502714557010004233575108956308924289667546689770030115832554766232809628552981551736278565552851378213749332496000434904520024840963987199516443530485558892160655720329599794026475794715281963154699826097671509758524630738830092559190659906184939639671214742793097870430870534843289920881840909863639807751611877251458330268641139318689836075542378059548111069446265598453404005738145053556629469233636638434264490657144671771586156627096510342618864152837302194555896620293917386201566268179798094201029163962787596589331026287923855505838758136693019694875347471501042157077908806687921748975929221224382676230024065565147371793089162926898317341492873052458774157721552735980526823070099659214442500501470160940240568743893036583217942610485289071701880799877136078051580100404050177522867213504662572642256397313405621951826770817533116536599456917614615056829966598775415736562712003445293313246716256665532590253250980635512652059805476196977598981718021711064554013929499681531189075850361708272614107983935615829946906453776608268565421548274278211849022127060629204136340971699125620296374726240559371945146197217732756916898233566537213836192508415071365223418891023698387020881177838349047930256285455585989512473223388525791415815851761867783159061141122159287805100771250629064252577466545253741780411259699829565186661820691665116674480542365499292897660554082991531916367537448847916634257233088976059940326441151848502243569812649764289357523226884466254462534196728027027437776372432719775399004654679287608577118080139703074072711904189936541729866180358070741508792724286242191598426772890932989937922013858244608021388589184687119142363802114290362023947801036441480199631197369878327139159199317744198703817214016791552215891816232151542806785869557065174884736516755567591359654182544054807318513243172117769228968754654135035432675733525581130610152919138271186015130852237190028841416491453067313929592380909670645202323560667935876040116757550626570248891169673758317627201790046040026767669274962786211089989024635802037607149194355766365368227099460281541262628793285298002885597497217949993464529712308810525803976604713224700964471936549068439873504850878163016741689626691607264770116727765515604006683477413816078781801238921267251945236372453780831846883143384803082516719814061896808905248332056668746190148326836775881876422780524568565798251349818956923459734035945694011322715063813429769410405707299026238229719012789684520558580715794478105907169394763962641896443592635067298215287915491127504769895518786258080163960357397873470337183555355488181503325870095522891388863875089948211072986912950234413192257846105473553583701514254052373847786352903324168347819617875959179994460098734984419549511587999305798789929034215779528965162606317424987255309584791322932625046640813348488911790350324244839454671604916984463204638838227432753804269230346515407052168798111194275813085543300825876847116348091375648664125048722807218985370086304993128766896566822654128805313888004344774082467847681021072670628399332501550446266860717340084211667020462015291542542784113106917445751695123900985782352822744207544992928196500047678920107815331010418340944409666329807177401108579746490989954813151596064034800760550664209849377084650516940883934128919833998856519991180056147293142662930638438631588938625918588482873849712086914142610611436641798548233803235628754847999461913470019898934059138918384936924472302342100460473767023329529593594465307872060371654442385565091905909450950174515312929422421499347964400325601916881430589474075265650531284698717447033347578117833969281083505885397019511723083366203449076422574911726611285294789331418444155549857002909314599759111872963131822479703352666828878246809041682882133690389168996322104674387295397401953135780716898781126955755586575876171692058683904576776029301311024460222593720335643046292235904494588590464995826736046671335006615439346697643481266667093512109116083337939337267991603185348005631992980235274187032122253051585733033962781641558883888949400770542783635292870479329332464771064454037368235590959136418722085792608407973095537044610756768816408737894928805338777636617366021335493161690925706176826307571282001082715328455935677816949553157756423865213456370269568558220453263328891204409627285934760817809796662984208836469291539890170340835544884707935929201274743147054169970571729412879987482762406780679860538680291986716605814722422183834360051392816461831637770740028591283667611363872888766686245102195963980529499075264653835870041041557005532491726060669818386906091517176883320252093672196493230313690903061352945728658397368033156987252778758239772297011670276977985883246768483373047103081178395979320428608716793054564708570447618827032971226140192640486136460954307468147883669949773741525860603413468560864268364518945488065850995411954546141938427152031579216173714152162835867053388841370390632878466836799897336580765980593736232410667234888459847221119915950028361702404501335872827086203310294672437721351007260303007939311724485450886858261048193778992199378920379607924568779293147669055908581789732742592651215610726154709889299831774798014650344391879068124949627396818735311166573137320682204640476787078948404944544899564846651609760604547354470052216823920048284311992390626548602650448671522082769082948589493791575989379068549187987228738480948011683038243283162683376504700111567435604239052396093371595946073374078870909786191058630999709886258012113226852927550429213218808611929527476336806658477791475456404788732155888003966664478003244615212117946725455476342170455986433765656729165203226985260499506909394580806431947246609995281473236059309238505502831936968079289365909579358627564377011158410179260977732661928681059157259495841363106280330760026966057108020140233269716315236057101432127065916260029708514615774031734609386424861284132015749095599654110739984134447345650697785899724756685080434007601438915925718376750185840287525323952807321558151518812809079482714038833024978436984322732632185229475022676934534025306662956646815399851132080607785938557374004652649796859928359534767277810863467161781473677504487114097274531453819622118875637622389997441533193981725653904906998072414979933200357172905079894407633765611578062822200439493783592691557545026925132132194297690447636015433432150982919131391435601599252020009043134556453853667530183845611045903157743747950807537609855191443402969143981470417516269734580844300270216695144561829701119513187720827794321520489761370884781595257352040939655376835482174297645716025913155136926697533679197475357713497705792401622419946541851263718823515605830314714076415727016972748340107783988079818106212498086035924643558687371621243511845252139249037821511028637194731433408975216738542419604909465504379492836764604304473274909067228464858801629137697110655271491603240613684095796808257167196473091258805698702472455848798433991733780603112776851222631537925226096225220561543264064440078658349532484912139436325252227451654460404871916523776068009573111048250562892175353153918173510020596419567429903480756184902348531411779795341232112376319883102505163863141622863147441089305525474237212868450906898047057308794065775647965349893465811671595184312862181846668168599307463861257998188840304374893272432336286569813378193088220877461054488312066326201909758163881697127828318265484421568172722440990046332072360905882163817548864877204016538712454707404452650585526800224448434394897219829437844388156258646169594846884973181080365856411743780851183999494090648609570007383705551889308770369455062365063790374996318249863738366896679414757789510383264715908855996467378346698035278268672901957327067445481185359023908180000482942835683593416987370331937334537115215612483273994651396807000047839007510628899935660182701139851615969825289646554064750899698984802528750230183094886655556009514988520278733056778747743228907822834378838575069080055835999701234340858493815969151526084895081089995251887106677241731692344495623802876000150518429112510928897416523196221420305926966609820318057150095985399261407457587656217465215741118688447948309639592291856293267653925014560616298781663262141065974043484097446007563752517976504774833091848459054932053582810611403367517506270806005218516597445082186605942764254353207859948822855366172100594598051626355045115377811099212383756513459247219668504769410243676721193808094536524555976281401213118379847092861364013120405163843660964819402075495154940730728547292293877378943067685305648211687125044289301249674668621617053438769903234868088689407922792197426687914069516027826172235997314388214849014080715857941913919697357290079040554544284982990136297031005017018620135078294414313991603119283837069000654834099014594837382781762182033923345847671381654401695306403397460167944937950724362194104057908803660295905304952977443337501939129713394123379327855032556348504204446662684150835665224516328091561806813100746690407205831723604760602281872885224139131272504889099208808406059211481757311928611752073463809733767391815361181262106145343708126042904247328412375846007610604473949249788017898879473712767731866511612623251028305540035906111263221964580530034485440881530671546605908166607670772615078735763405595993856848843182075864146275868883015533651760437696244687160187831093897179255599080774355452302481971334243685599110568879469492397323981679948361189203550910431259603560364694699325612226120826374229105452768346066863651932376058882709872651644945507283710676213361667721404179426113952203796524171624731205932259919501139115358455188771757193826943007015094801433031036642619281356032901214658219621712722643661742939948936780948069222218197136554721013663344242951337970710379410633421032714631694842840886924559553247581133751609393751560883969175845273032594945896564694948802169471781510137167820234224732811446770226543893699667369808328538326232277332554159563664214706279631067842512795628191909855301206115871134326457668152382457806564050350088803659987369674067801854433264262161628202503087732648309313341301906652316692528319654934303276618065140040454888102429286093893221746713872701964586559019417539916211649469658187653663303160391894750644033438298416622030488403173773940522572029383892735654334686316251630077249413201298348539917664605760566827904496535463152366147304193005998620175234308058596444310148429762681284428946092160470629469266595465971978032950977054569632524081171672506271603084173987893163727031838332732039586478130404882580199656991073852047016260815330570503794737289411884286037512573516722154247445273076587782487381495329578958630168463926499480299318093015086474390395977386941018071165142467865663921330319848601434970244838778589293770275704785719241089075318852460514248481739529569398299022123571608463553808563775735825472083790064404376599518251479222620817710207632306582692708687437136181896347596182352272594593025455905750555848767529604225404472383797979530294761049629406648996327582316122289402030463682266493210056332210863588798764720038720100742249352349414100358562026174513491854276579449067498655070996699244331606296104618865911684039891403208961274139616013706783352171422559869359210570055671816246217571617159865439274196826358661298442889153040639268466446092841342698283685222429859413165668162432723940129007956740181201245187143500017928407111818341257550998240401400914232789179595393353736659627577841122111642546087950839004336239896131821350543493855735018557943156299755953496347895282596162615395889949070033008440120815453958168850075422683756730780000131861135719147231463900848453297088521458505707318239312055733005891298397662389704755904321205926313348949851034621341203357511467354817058502803109664202525087129076559247504999532266201066299161449783962791288494717509948931541921168150947719187411276478206731029484222128621376493873658744025968743700700807732083685839296172084777580937697180514268304091578710095262040835799076369120322338225589475232993051000072558105488110846386689621982372127505525907864530526188487677756685290296473325872370206517961114374003862493302514602806782816732758723250180862317697221963965155100541770284305207107542446332045597839571583359957764622074849151091664900884507846206769984855237628801786583982629859671047396763333540055877604662938228314794086401636132395832569348567085734532163173740825553554206441206250854097586964786568522341245651521084218032485831579268499766429870985570776906134155039398683647267780594765859768393295232718273157241354736786052733643309636869939141493213711786871183992366947645364575589654567511764652258787348166042518921277107054647025784237539066559097658617186708493356460362644921945779005763619544959293177919117212377042289526565271441828780519621755079843780352303921365692366093388337971003969743249547652588383592270939471319631731918941021172996734906292149684265035519728533607255202865632100495892441002334535971744216813200724620627429288986218078698997368360630081751372602134180309874079642970097709883178612900988484264487547015339174883381569972086754846655674974025805916099319120298285237998065396588038962915313148862244582602945597454862507761570086591872525010786479399487777937407292829225183081087099453928042730755945547793641021675997839904034129746258972293629549699997444358497640795307196033022401436277446450851065551099998752112166653902280032891113541127947152213708280504605671670198245214513252280739253225377212401583532929863096706873410684905314997639200478150866833848878740905787094116545936014128738556136098429799506227287135732489060510642890445730027509894418698341219671298780798226535317914240572899850771771582455902659718489057234776824568824726475562071756214960768553616478098946055560105175154663226020505770970019246004254662044356678651457084110259337408733632193185627781355682670847504195013860986276810720277666713254220429062039355920471407535734071133087362461768107242793442731447869883074808825909918141794493610757601308747803819290475696872126507406363592685566986818180308626701031764828783013229246327273145175804957570500678628948146230065411216816446432521922019807541835256781159434675721987796982695295826377253860982742623501559407174776814139544989756371280890436076465644996331382930649430535062383958630344291080366237790362566892485335827834207033050215359346918967518181501503371826125774564418229530230288502405063929382842189503295304218577942103021687533566371367730308606241912454739900796843309463270449203164874628413148719884922372519183403227948547691965517221487708178205184962853688156910743136664088723870388852026716731476920137098007854292302802694771607932856251437509865800210307820845436286735527276973827609713038094017037104098643683615783508046106832009612342028498054941066808398862707905886393973726345478796809220796195464841166606015234527494381339925453600003948758571861813408686279529558929112463783309848417253875250471713466054044602651877452309904714383654986191418557578643334620111598737570172845782938980748420463394062741243948570300919564323142407915262591440575327627125816783377533482901138932649986675440723470200744113653485702013401668887518549646052347166491904262913426939471059437006208452314294958473813945058301075414826072117190359934184284557319843894546269912579485510701463271245946841918039181033077692046527058804311591826443776784582504831382308885109525415350707453486888245287946960040940580763626203428691999344414844706000123694967829038225804416503670885877243788937139678959815319691768825957080970616016624671237297796005482929878084696086823553325778662995848175167837054591142672787286539083533098352926737478256763681304737431255555432040529443484817520633273684618418236217055225366650770553819616228689172468223594943235305168848979796543522813812838251301278408762774943687157106252430942052569812519812395306143444003452673899547331550845065571539794938737825769317609605803664015796403567950383957674085825984650552933990342543565733156772763019079207355350720023083993029573389494181513355156570209246512962336042208384554940378582540215372998640360708519562126290471023531326059397210944351395665044410856479667343751391865814466648595660642002223045005375497495824886848693788922305135023493876887752533274817577916692422611381684735895690895132168107702806520331372839396887826007335853145977304434513897970444024876622771664641263163649450384404614655757262445888491413648104873333724438321709342224837494141056209512387900415286070340833424722588203730685426180567790881362406401862107608331806378612504404881068201782741589226608518098170313590248083677258011796589931079557359292767234424353786687286363997130599776626630381475016091341448070950076027364222630522826350837490867920702661906163337033314666086274277147361796288076089125485850502861304569097927183646183563421376947868818387417083307300034321300560691213976928245597034553194226319214593965394134703513700995243456512850830768292062893342563975659537467963281986553796705583986296607349108812860720936284319225122097033816529195357300969295372860370327991870670696690437785828615011869148976206360910297750738150342767021954722873486580499630600236467935850958863107574155299368987880986445162088057363006662884075404007488171462067019921888316431036836739249995352052028142143092249885317780903695725571469099523827988609336314504577924045525401366820400066958498934462194262601154944893242831651534184854794621906509766720164240955424070104896022675328613954132615248644140905574684352667455998878178990766022677436217020596459132449801834363182591712636586447173857919991551446971450763926603035451149017884383081786995094517182028834047566097357493870778973084638127326819397488221441679967619969387407602490286397879431629905461362674212695206055120268809272503755318045667300836710163786106086391752911212613396093234655661023281136324443590355684406890552799088141482467888449470228705432393414941180078306680148536573803113108601310361977157403395878147076028957759203010825660054633124012531013717789697076576002153041763139169637195664072250152533957630457381140823987507308106063794398243313690818913986431225173516977464415535058422447415070453317448732550720704367664848002664748755532672548968859176187224355783181788282985787928900496580122056166393213880298901492692731880087507341685950131315966351666477175792731698496583259360607146768980916928080438571398408706223317438619571936280001099678381559220605004327928254559484280856282343115854522880345308322817997004912084717729579188082877088044366900007172842496830932848538041611774536656356729727181299495556007164727295039582854852234087768267490198521235656949625361468009491849524386694342499172392659831533029641268257341708214498309714528837546034670247948912570867152204398775370519958772126531083713275985224947705124578726552503903116603947413127949138938171391338583754611187184612824265101565939440769893166290187410952485797268609384595680953581139170747938610105112213264172773156509812031918817513351759759192962539082290537088977398685924871822527698751431414046140558806154047927592491079892165415429140406026779075530384007856103409835226585128382002470593963704056375601142894057539388649820223513128535895874124724891363128150815776650765232642871151394797345431415351518277847958062370656935326144616335606902108440005625734877016175648623181565850783240180521678694109769763553378126661305717317432778000998592854434377702069618032957467220389558895820848362800737833549180248974785617152260592623966670051714554601640184617369031286586108540659935534116421874880434069850235743270834879423755690628714257348600582668879615982774046873304194928719631405342223457921204643974974143115498183218393005644895982474401440674744771521156825695785468102727365388196219068160458002931614489820990698805413636774408925445774038946996463043653350533816252375221596039722327827444807881210857378933440779017385384421671112812554606779341934543588645899836884514048990698500867850807179682889438724679007095464087416990635738100902740813426043167640776075863817464482632785549757842328062454199651509363561481140737696230265285294307176704302539023952479566657345054889882214054241409619771717840992258497783772750166122671384270738570338700754086507464615341893651847055855501523187541574948561204937985834343784595536554962945675889007969280621290276990781556992525656639395433606226703854722371980071820631540235749190782032495407857808626147995827321394737715843307575919008190521981929639295231951037821182258421025808178184929258188628611530924647959543296611122186665659142131386957917136391041844172524567228004907689517769322319209505663835226039915746123154237143796995115089664665116271157215949354905430481645580731219331412403338831705500691929101642484533104237523531370761421293408855601467303201084834771830397998626727652960820267272295474597816482280002934158235680167930902907288631624257514187978982455900230827823530443980739842410913577977535762026404881911538929656671535966866119324983805180239137555202190939782857275953511768393976895210718166032308542157463075757418046111982133083479615235272672412335720178167855927454640251175574735376495029380003230454557918155275354194787635441963569508796625937217127482785502023405603370439608555003458522663662536626186095061849824762519913313297725342401163385066164402230975277957130615100794156659051461930755819261900217815047277020390497762114346250437834036943226200874973821557268710057194332131395762922214477810441121293678807346835851647838574292967920002152429429726018147804843807196404774966099064507814225361845974663101967273620881869734143843279906705996805744962319630003255312490504041994356963237224542859187553468843908107979486662361120019758981656777806741233031283067755089185489507675825801129897979063217056037558997953308009696821846405472170103000077324617917831258390481017644087435707916643452569833099849983864666761273934668344420065476725253946693349831116780973949757296820874659478967796343821087135160183933954510678459565131882006695332079102771264437433503240378157612585147846548648438350488179524355025096753724719782920247509038697915027439347438356566344490817205284573539406364284904320084453702167638891443931712278449196455558018906048767088327216164764946052429111807617452752312858418615213572631617769656692330869786379799854641317003961050458504526889760631939795015292415120562016519479376883659611142108571420152836983916366945359036146731166168530597554574538491260113570864555334082978506882204151757749559188999443960495938761685887422560526781368654400519519733791443913095610571284053576246178334751787094025371980711719122332094662233012628533162205435961485823199123431155945680308917613879435531754966142393766699209593825149335468474765974905942409218685644030091166021124377366983301206761106982609089376209899579419980179906826655834324757017914118912142593980115961776944856964522183212580669914872489993365188734673904472714751701236782740519997315624345545847632849022413169449606389124658024322824052896769164183164759436727082704433190719397428124655585299360087981743952771378514939989634046257193560701899514401135867473342561182249750316779037499801569214280844675225201005113258240864514242049984327916081494976478024640847280123895355146087635295228779385728908578569853472948110309851650205370994932090806740438205998020270384550471751069136538348542001079937679606453673948109805387720757212286825831843887426232935980079710532951855145368843519904896720819552099487854872559103602853643089461020270095115071925371883280642000119575465024328498586407932354629550809802810597202436080383344410252508240537347508579254882578281307197230991641198268693384731466873390286086370527544041761681197874584732267354785730194941047884843862693040397732021508070004304603167746857185467687970267738278933336387277187517411743629136258204161341159362813378652261553862828060382223224409982374643859883283303646909304488092116068801815690722300217648463578767831934929743477528765679235568404437008186928436616473278701684986548883270859243776425595871414857684794303865559234068806572369223560423696638212996170399191948334917989004413483313243319393236741977171865052196175169012147015726631712596082289111785698715546271463117706773864622509895064609530568891304880303846831978840945133756309733323935911155208547101736925163390747671490141778463779184137474497982112032340260438020819496932113777291249318207280682232635309014185097382800224834085164612984529813976896881650017458902103531858440710987672387528400757857154195544539552048054094270717022127837700003047557470149895189626495684384123563911167503305093003215393628935530296281400004871303759002522605454887697715156321241879481058438274198000436857167979044881578408221712080293515878284985554867206953031485391355907606788698283230259764919336928325978490383241587721533783048141418515984809401448072133510155474656063808795258950871185624649946882531005889433896298158087010092649807106547756399731855545950470905101636829773444366001092603701487901177727932709591062744084604795086306123413610004559078828542616338175059486691807747905868349655954748658988417821195403173354141667905798954949377199016158001516625855013891501782189042752092871000567547864423162866930034662970359172518895041084990735307762724250657317451476164024704548265496334551225023352014262577859014266371973658986931061744138590744849474533765119165161242994594857805331328180155211000696693789548751688566490600537905682999217467527632177529704065014789759806514326913252140694443731007325518623190191823333179585907727492499166488827226588562269422902310063323839404378959121250539249662206990237495024718212208028104763887201622955395788946709489891962333637466540188948027915416643298290091880114493343730349876135918519565036498515976982237202249454378033879841299638315414401054952377428750638320651576418603210537438813942372770019329684339811234763501455969222926175114680150238847316433838643167307307112054909783671239532944573379860728018129090764199737183019755201457619473418717897470335574540105102918027999327645645742777598433615388952949918704142378147688520831462768795003867039806405353001936799198136601886289639215904185602031331547575103840918829499829122493612463649682287843993507228180054592742182853848517015501419813532590118506538864477549458542375651549551363044171587946532190868635731860282135734980900664838163906973290081552323141826649354383957690400911605309735807966330140198870255078053794034107823322413265140230409171746332472032772431346990666434125461962101534678535013210469080537547407665720893055253904805764501768342450824334642469533850333435224492172439828596591175174456142275144011851539696729512768703088133623842627766588957022450085530175899379962002676247023104582442036661263937734564421814676429975143026225715827190325962617158130165334700133954444797300701763551595122462960017334713664779728085885068949740016746893449355508397190724484224760146232735753510222784938652272072512223537146539655720047248654352767891084529375853082008374415342966539084340864920763456508176905278007222834257305546337940736049615020276689935235413821715986500130544837690499629344405008885022580341644488948672500790602944744676902294170361772239948097667214778772354331781733604282243916293897414315247465377869576057164377813744146591213895789779490898209406214858651358941185195604913982186101678199765750287063499561275065956279086221483952161154838116864535953522286374629870580308482205185071235164461360616268325998457063487780771106119568715232236195857980745427053554141308439116839788352626381733069593640440001215744670780633484344280266824335689928959442767694617023850168675649575188398443767996961400283200165526514548019510583064519419042867757831838388578396979358707548916237268159601399906486520512209802980995219808384257559888879526226824172646680902346809341093556771671772972779385995369916933462524362323539854504852258156518371349929014831264616741735779696584267666632414698099381905931676841730021346905706014163663435769953202131578211635156661199290457919325811836887309454185699710877023398289830389924845341254312942548173715415789795223612633900853801111099271286217980604598739845211117190534664234376218220406483368835344629234602528519069094255258548909925137275339853988784497437108747404395341863068806882457623918200804952389033102513305639304711204665037413854793555672312883667296679922949611847516205055137764950530174841225123222440249061027249735677616899162088767287141005344914770983415372814618453645261434087118384271467068469961127601150163392070939361887652309552685859907378585253649133849097994363002274481609627944802785314602438905934861033100316077765533312021413692456962276552223627648110075461114892099523213977133678768243107413188104031757198701388099296639387286604925227708305634424665595192369649035173838550012677733575139948092226610836237170510265686876712988698950225254472883272809782448835873684247917500779759704249312759228515781371055479793866689752407313276401075473192725890363716097973319786219416944124206383302793725735667176327722547055824808181153009561179863304300461781707317473883886899303106965650466528276396493041616020041405122930226354360245513660533573807623457639036318780256002845269500890302955212798065749593284527762057342147562968247909858152818573854236165145122855707104467331454613197372107140846694600394953548369325797546510860931513118385726579303235129966064430057158057408689445288558167953335305387021908823387586556659030137115381161561576610811823632792428386606892353884885249215775066270553180073658365098218007680236461588186855499785530604861250445857025339670328717180882433403440857556081468129786147009749292377879562191202023409074429791399911279475130920940440010195560660846546259799958407756509886083862036095076621008294441508265048624731657825232907768766811031200436092186667331447064025444019226263125308286562303966088326067964754453373867342220742324165664247728998397584366615667037440126757285170414869831592711329769060614801421428704027951046395949457466715425814912750910460488597255206553068192202260546277486306265659785351387639069836209325935963428616065507893668188364487998452505581675251085923352282172366526782664274200314032286537685673499741986670402720848224978140632936624150465305106500654541386890089842458836508058767077439574968259287920323634055062548837365587911632812365069996083689594709523468854738503579498580271758799226666663582619175371431299727413625551884676065266935772646061515378527413515829513166962125646576138366860222729145283900852947513783807229406696338927470845020518702027681063165000054932962678442881668771639129253683268854786585531468448469419951905052985371961417847810035018019134857111277341117298544275032683313023344037533395099238740862477232913073930729158730543736238698583252248013823658846791443944951467590743150209003785198367666424188770753581738763469298345998795380798854062561910610685229048152820575761034147616571817515341889266880900593358115513044454484764451376027524027823409145689454509188040627968303772795998122671504023731992367567845072939119765753144539068597477352042770618195927116484608926957036154260050236367531283230019091187621299885717939364673409928254807484064199744110881848137598176046983699457461301267036759490965695220023615194127042578893074396991383336609255050918629620513200785277908823695819847685866726688385672658431678505337094076274730467753056544299089679509192329901872273428397964485353410219183183941010320757941878273013501346219959190063481437991220970332249447718568246147543872621642791816584869995664382433771060546443189964156783763310477459526074926641326313082576248610133364335923166825758572779526457044197202323849377932215386947139242541176722124415793863107305610648008757802090233674817840504359106558974895987359178131372067540286099804582980270003977695343763153408936154786098550475693796648453151772816608812156702127203461926328378264477103327558057386986073143973176047589832909647316513342863356322827635434178453886527381850180856953711298808517199162604738160401001793787349418358380549650519414623844241562587244232664568349923205088214508852199637720471355732386339962334574008229079367190174899145746699087686881237298127176710790980153417127268143456826666880363974926473447817873269919203681565213595984347230499450534527551404922522067746790284697037771913010736590387428605484853105370712209921303111096662807213993193263132314518095696170062935330528648805063347096576868872182588959991037089536588904444602500626832569136037160415557039337111513585948366311865031913660924957447368926094658965466502066743719818817638057788312025742667105960403686519493609685168187681967306095202083755083733386994786095786445639931118705945967786422342356117174894629712746905292585318686837763065017647031845278556432444261184223638142895482147367274360243214653487208870458603137543608319210312841057951719059206139355204399558574820103471449304432663151653366368265158561195755966647432615219558879719623126002946053566177360900889407844696218866540115433791610638450411590545901222103065679593949970575537513214698695775697795130265489988309411217901399478903195248751029960046555155760508292403975199536612156037062081803643321249485987803928965074143135164425898026726476482663259339781312529953013243635637578658030615663761062529209329344446019332303640876899377645846377322358018408684358282908845679127375921528386103861841782364277390474101679067106925022953082160140122630898685035968624958424453518709111958448816735110918344967742519121588949672934817682627070185635882475326735113748693301422610418558520029214112072332342303196973674326790103854157141453341903313425506500151951430504955262667034842974420383298731739594780543875325839481180953506926699905637228970757697609141768047774228148066931225802363535833074048658350848000098478395112818606336838434580141389706878477592484247464200922494548034236476751324250123180219775545346762289443536120057151525535516698029318991263141605557710273284621744768929287289767843268073084712449493225529104718252980901737837394503152823281223778653312344046909653468647149056754852934607134498874322209672139481191329023366222039913556203620954485153164024611368376043262649378971035195331734825433474222374184651851757123919792340230875236654857788220556396868618606180882101160733488095953354819435941902244490783186299499211556036987128348779787393905921318615922461311433529132485333239506587857197314298437330730208537296965288724074703334099247476636014534030772259359240531902934584609272590979868514070461630361576616332260431178633182164706499781942714382646165330136825714193744426247066124588190053682209777777663603974393909721763933019692150577943002073572271043287172264975256741888554320432596036957987136875676258723644310660730398103351024157881242610317094595688295583520977125547237800548506021559529910962852775714962473940011021900057606189575690820351116127507916590069124633526229331329020030646499529615735493290243724021395785585502001809908760641390971234290962952055555116821787387394627999872021010881332332742478834543514937250794483595610975944643821534961458406537048705339024239191183934731360768214951079229106644628533485463729013259079097195711013284472667006231441095345628809149681254521547777988076463550432776508599376463658395950868991587993692582915736162027081490675757608802544363550575777976138674079046376248715256927192556008982534128954259562081942802139246492659797676472433674748870153564561207358519634731535416668833121898153302903166793458453823792073606138493688463434062257195637061537415307963429515185136668832641130357706432900664008890173642808602328370441720408819903597870664317160806665975665358633177807136453754884027258324602300454283748370471762043246992150148347087000955103029843042377259843889802605984380557697377632865867319968190887467764284132117999791834740778124802048444681935047709653730831847020566212970350057642455075328842302642138996435041335885928616631035828005193393837239865525802723859748155441093034634736550237231190897895345376617949145679855189491272244334250307270273785092907055084437433197963733331865401557632592061814859203090738266545905536657445500182843637384149851306897024092204572120469801787673754915346376518302866148038421524326506859405659892880652767075814737127706436511488679178001227432149897377232766937466128102284006099527907615529749693025931457431102934673212960054373693848653688424350020656080648963385850900702153664391058947214909865540827207553463023057740213445196666781588283454347512417305292267563634030710438015322080876647069359402984509613616317780583859492297939333273846586896174733802926345994723917177913866654127535318265703210508070671165314312710892279195076340291146018003729633858303971714880099487518269917492529204927208487133917207094002035166631048402098927995815942264660581100839239183849623137798634166153100225219974653990789385448452680535421477887352037103809059490326166703872626743120779873689523632093989011495230410664645454861195295797893498369282117690652202137668710920319683262864512575318408972855185246791873185661940947281742263840018346097656067119172204192438276316292215890107538601016661945941252098190812632681680333478780258528884831533005075576275445743318410569328661145416241555163413432637128429541103822573810164276161676168149555686429303052225469666912927204522926220867989277924749226694936583815154885880108167036912749186441452428622867595235037210228677302951585773220735237442626222912879582945779963461111984877489795095726474985412917765126012113724255489572576582749366358387075691665618027672771181404848277547953817469750851298315814744939019065059967217563969641884003343398758916889650803959990960506176695738123097774448838482206195584386010592673698303871693453994143219444358293258166480145958945541046746420974436929746119145557457039250896525020638600639332609605022719174809367757835960784892339193221121184331605637156788570662284435750558098882695820460630963369445785789189521110626075100225967096776693175331809230701117986387334547548453425680199476290106253061900697981427527287629282259440315125114157198937515302330391695552013377680420315359624443423737609560924668351009029639361432987675565012080910702137406112946152152082826935395073437460968875955898827253926500956844917958403978829807705539426409465521625583068160762711364877519549982112723580714411126225478466114032841920224040802656106101251236441006335956386331097870543130547470697414162567880795294042657977161735291710285762053679604744749383813241278687685712686807453043205107039416261278352126618807515897883155696993792944736090166879321034108587424891340074143533043422655770769915075261547470929754028902200203866978770063094785382202821936121285117196923293573467101136104220057681074500329589353928218627677134500767701644074637883723398837408069550605015497545122109013861656116934350395700029308487845905725617612702441436517752228456943709775955842335324232964605661164567387441306338637733574004727995177603059943584361652007737593534045747689075429070786877638633063780719956875333518682582580411940282820314744611228214364044531466470273643370341274066803567907539614519258621769937044904950612615334279081158082028653037561411154096438116623071240305641379986183721570683132215334063349754693590638791875561175383713985958603239772219687812432358864859770837175221414946166985743779505138007424649392488815825139897831678081924265883444424863593159798889542778078764999925697931602700677372398498125423161495894469711743057519389077902287347460472828835557551053790713088141066970651877268725361426610506166126193053323827968146208440620579371635219381681915053547750098293231348068623285907040009605551036729591276566703575872375682893896071632275122396423131115934356246830326469348821104432823987384322721553450804688943466221622702024089587845376997668828456027015530786112488949271006124028750329743711603913803954956618035753804339663894512869812721522345204739010399987674141344246249153125187100977226799676578735288582684123063008457895310364093569189687701058731202214129434472510248528194426805406545287501028814428987382380454065790648747266706081501408030244474515140469307077462462683339607099526623835525597629690108029865033459071260276811985349268482191652850356585616014817635050032806950402699518926148422796271864468252076542496372729857812418239011356678140279522869367952480766106203445029212392163431823035008137033835810151324623036855921787351051009220371557122466751789389654809060587517333988559887109322602825253557310306894520728254199454382501800505646922945754230552569998709287539010230488230170543936093930499834626250365449971333709407813372281547438378010854147861631815603748468885051754813604377409176659990479806013087438010287780682386451403020130027563359753218980719919445401157081507460827200120739025691740387107151905267725932472475907272582887644427752426184010149338328448130369265785368658857039574807944701397062115898940911012736387649495734961251784366948084002741057449219998433065809446189100668477444479616482454478132847458441928382102770000425925179610197556394738227317003708286656857177490107830016520826990257854346427334760906182371827279952705725934672552228558708719767341700859235321471197729889249946185701028123254371961941429491988787144230264098978091367843363638389270301041224174139206560116568558831787970572048366498697790214305806713022873024032108516605799721245070865042154896234907627307065537674025595955100222157918781324810514052745324773209454000210119874212429192896591956933312886215075719131138714180444574107118948326174837477692126428180245709677236714909612815353486367265151300809694516260715103912733002620557217009683547683686335918923786058288548391456897174906896751339274477936525640099500674120108377155429313344014690486243466556783097411041884255459762927762464924474998307269993926279669711602166370206119887383675904123533490661952217202212243545995574382223724831609839532258608062163339023736811589580477539439634169517120464290825406916520639650162697439867154009553856780616617096928055477936832878520438973193199241290389659758283150465900908123560957423028273344955698144442444938629357271776174709024838985848035065003646220678645282374132704808272727368886117860393278520827679352561776380316193093851529350098531273809496807899375286856807943026736158575972638872966886206779517424648150594921746093738684568670012260710706674578241336811692347188442311968717648856204850005728488175030109198119550332913396202111909637894797315570294828780870639707735324011997716585466964331504589372155694310270860878446948002508763121139432633807182735001852706229434659520858986565117170342178391569854086292196890948697435399503271131009709674407084602939494870962932744820056881786027822885761412287191689150658487027988321445894263442522219014054211607637935128170608397748190945936090845901405997137682149864720677727755829517926249633273735402603140124677061841918116390800909115176833482967946578753834753871138715806653768535073052032519664317068852142288498056682157927982989498796698257608036821165956094667813800364022251019413196531462617538665364664838364604876226823472054273354185650259991369120059237542660961151273038417340118951599600034805883593419407583595395159936912749844116532056306910427122788925100259527962248290241295675885963282886388793096509812188605407207125585256090297263121592479553592902298759601298674668557754044322112995351464994802036463611047376144656559614961668911011111709188246936246183955394232926728282067774804843878969442995877151019558718428063257699776416145943457389815193504427656261432982423365931182126479312564095509349976601388437093187016676091588658885189549423273106606244595218331208770486948995552771919287268167916771715932799702740339981506522551565682151577438678295543541637100615715418464087296882657939929504823349477350107880360218001355974649378592222689442147876507081622904512880579344855996485329447934440738837265533722194342507666497248422702897160581526305077461583626304840763616754493011806654775106539319236100243783303394744314319054771868499789417766928450871851886410549440352128357606511938434931663909275204375935781169098292573242313358545817176781847051629493448125066055472960685194480955187825952016525348956356228789254384776664063509181966135793123672861613404144576609940131744136813883817032141918317705862465089813257456357411562444053813528445702601310216502184297693224058541045891209938495806002753980599485698712796964951712706426867419740455216204367842380959966307204691048553648140461629826061302663184133419734976865214752479675757523781983250205049276214451880305967187800630063993626184289391887250034773555014856911410678684321530223451294333206172726526330981672385298175652165176644668819951691862403097654126409315006271206527652015556298043373515345685991551280973815964841827037975730586104993722584252093423165937564957899563095762694305389822626377001561582140653267549400031801317981734374186784759818553364364995777480868448363403786604956865123115767442697643177900221681154226382182405790934585191144876529313934053423357753325074397839579798020669936921468936875748086384179000683180733519481142884560089878302836299389994577386100468201914132058782484506024100601942885101246189888957280376238648596970141406406028750586607534343195311790310263056820070814887491565761685075787434534034434618760031760409511240758932957611588128327391914266443797299900446306057733763718123189238288011603090098054450631113074817498864154348456891018819581690167816307510447447666088327902353427318150779259115594966492850950121578049377056116545758496685618154908274959107372688983292084006280809535539846475677915818022702925850878912504088742720482492868153286855361593042073977322152895198861818350054258160002296902851146622666048538277578085276935570026310081018225636095388359538504117668228717077610610666298302812277332398291350739335494093854871791448167290830034981387352307181578182279604937070560617041540731895131744351377129532418929447184038018453002069075015883843727812647687966320110065948060223320697513964742795379875831976872713378285375142830552253114555661530850754400383237511084144217047902352193902030439916972937514285240842267643303835651104952543821069444100934943801890381608396336208301598299089080737784707490869160132859393691951870887328393809753687109918965750961555840722303865196840570260770825181842627876135779321150995081203159412512052653406405164573221854728605694538087286420279341641729415673170533917890244696441283673569883730876460768795670023540915797522969585585076734181523977727401001057537042531936479476414665801647376253008257941672905508196318406510688531549287825218727244859447071446286285198167286039570716869417567564386852406276009423734801850704403043833444475760975697201880156287241855439710858012020743726034454234762089534365939058341695538556912209537090590120867503455094621370041166906213786439463042219383737353558193655176308404248519390464322975652567173177647417619671869772392774893640838979350444533558694804973883237912311249705006637515822837080983795315686177901103966804402410802902747245560209116044730658179865392218282746907744320608055588878489854284018709796818510715084600515698193939845574528225436591253067096858482671080322597425476802355130012038568339758653247466570606004191295690709549761310185240689927881578670944183026267031002084065513923530194510415033650971579366303032101131133767828427763135491854608768496229107169623809869445991782740506543214492355788848024817794332569056396957648543085185614520458964386460539631935519391840175232134555027224774824030166797568400492247345499511050351766283711161816959545540623889446106505491363295707649755336161966780133576286928176274439536602855621582301531120996439056553860308125979028588462864659504259734321477912818666831336908701102459007481473660540465477100816181129695014110383470147467778334083830801938149423994828225588489605082855118953095584049188777692557127457348387520965948600387014913872545990537121545028341915396836451625559435368058374722926185426875918632920797822427264250006329138883589901917099698464072534565685458107646891078152911677938850811378556966577436601061816076924470265880915117521979200281147448650939651420408886859454781382141770859424216553965919881704081525111381064465126235662854277075263878342404034334482225214617046316934984212636231943450323119932617323111956724652494141979880081890924700300089175464732925329829321948311127516374234188409256931731547158543798790034231143974533749267556095903111457936388382884603033007164501431959282226122180891807825625290410661037352304189999556188320989538254288513126989357168035921991338928007723699888578953544027857935234226141435171554738383757854839618362127881674739352507971261363555168773780316851720909745651693133864496397039366077983964511162977630787411159056292647897873319604164843671728050472756403997562101312441707676189170281646982004349464512077898020804285084798691723391414534919850427966460034754547752506283461573912285126196713071007694522325450449479553345505379387725953799399349538713426038463511643848346259849826035291796608667608692584648210528833849069784297201268343346919491772063846314876759826818736228980761712140888068689046906049880901324082839579817800130739869935134548877426171625252697860432191604031464688108312822526752102531600759672489130740609752809934445375605196512723102756710200616673639153374436861952268210656088178498213792220603779816068504333700303036497076646072662930118940076514866660163973680294377064236831455286161200332381435527730285051886162322428898287075430500570912473174132787320101127544418406884722350537968812903987576660695755391400881716838886163523257540664614226409784124637966455815548223580403724344585067211848638344730867061404549341776099834996687769386137904277804521052341973299787582011005057665896750528199326468353095843241719926122595605603430833210000483767611497322153707771439661588125041082758757045972466150813534992587974044713811653321404582173682346755011101092442383359345558723770748604663065289024071786319254400658080424539294718227718835249701175333185559601267254046845261870269811297387267258290167996464089639083062126134439977837028385634218138650570350340445554195071664040618760672090739983710205613863394965936987297560269781452955904287530303661368007436050135466297473108073190493746079124996899994115480899356927110102774374260040254133495319035970075356977536881730393218774051376162793466331986004321307954375236221578585681679626221408284818334048256230454675407460729640856847472698809821484921275251628100885324670267069840181968377808984373619148119643864010158868293558226238068649314936013240673894771053821042906005431439964027099965327258965895530073844796895389207778148471664956387159303837812254391177268063142704986174223905570782112522215265559982262148218262415724002579336047120237257638759880327482005342667111651503705652456307209570528179343620769238900843095888756203519709013501162287601885668677583472207534388079868029706445439539601046552295377100653380995420628058917191195268684413544226273394918591994509347663379600365477800565275767264367038098531943550135317925141532073822734138407661698140116287320968294542487308348834266944613337506005775084675818043865046990816148105662562572885774930737458731299341096888328200972743905901469197002285823573639648430538176291692919541743487728126707348097049582481027893037222088603893064142210371491393740060442613799376702211374646032436460942038553912194604284645493110679869300624858686710341907314500597063480659673740298697360853767094726326231565600985282011369625490928600581357082387169391492234900190509585171616256730105854247240462371308742680119805943505468835136154503954777181125603880749109296595991967387936161693947836479252693080284820792437857454731943690567441451400540175134189421118023276060738312000888214297459082745336618249079326322260454189032469808940957638624479363498260878460263713291947166353410780991515978661285859307431814390447750126877933685047064646862256956639125163805800835301986675452492155451312096092439301970834816686252748703774249770142034358585074208937288470600829744894119645427620564362662429832953933610850107647439624399106234790911025264955052581666494830571618932211318262177660384919253483098038601792563136092398792922409287607246590284287153885596315619772578807471524755794249077669981891427646345542837320609606440190597209522921405812331493405751058703667894783121508364405021872866382786928131075999813196977210784810701009527952151885864347764544226699284035283271509866295748463697305999568228634404950643532235758046114598768122355216053801303498948948439847549801336730868085580708590637629793615397345214251843222105106329658160259084522208655010430647128150868083161379482395003251610116527505045333013189549234784016373639785718426817358382881847846948234059268503149830801950450278064855415436993981722836634053128420645598542364163371952755022167584546528420714365062496783818077328026973922596075367544881991083577256663293340193035511877253261993893574401765054398629269809574875910147549252628452114684463733873483641217559148369149672661223620369052794048919071059116797574161831578486474533458000375991625041866655774162938650677606438997462366121653306387852524135761526710069713922243589238045896106289880614030968387638627746099623708835227941151150862562442840239473856261858585618780476906201182077128527763927435717292665691363408582940648898074414148571105147689695843113342958900812699408302573185286920499598823316030094586440818252539298986188714735206873307450787968912760493038785301098772176041441629054191688285085414073181159897226867193188335239134596730233318608251261630013002706713630627201871362675605510895473093555719566656587476974938272286795385102812144134199328628229525558830960880764117519847834308757060108341996825595038335246288576833352147978125554731816686707446782429808051122104727782081163564900622026754519651556346891895962078333852406784338377891261362417843676842171400354458270422546506289048338223214800977568664278703358186930730669980010387265391163616783385696128768361136226500035215574310069248336479731086822206419906958117730265658826651865870836453024795921376429392968612160261716009735394502595367393858880482557087738333333441555589462685263165976219812370493966693624237046352464265900770822997952596120775898275845590153713852179622279213396454300418217773321067368352078913892206990022749903431843210361751848896021577116448772228301753825121105711134638131377461492509199573199828914144289069219603094071339782867527239653983492900700343384238019494558570909781094649338233809658234200560003542280930178440448398870647698946898376934808236097784954464168112744952875131782979302013680356475742558053173516476701728915264326387538343988962484642126172669297398807455228178946759317417981739934487043518725155289320716238223751785641044902328501025541631925625889721192868168902093491909136900594004192101945980920195838133522479068514282119048251321694562070814948919036519369166202220306446220402980730198883075000937807435958094581898326246967891596905158854604377129743719824592830380353966969417216099070120034060174140004244007152172946423167963537878975362185181074772800141825504427008500695583330975029096109005943361811337653389660523337179832984378156183672900782525105099968104655985015277929373878527158202988398823039601440974174212476713650583477873439489633640507709811959583625312095019665150499202824127638473449914740720201783132386113010400675287060285013234264750395168790776676019265244539871518174738629364805715869582253545189123332764335358935653764185134374876596332396372277845563488012608980871670829662623315779762798988354982269346394883997257530749862403797696895977507897299631578503773639054765879766570879516255560566980339705950444194705280609568398383914507808267855401948687387801582254302917607559733223969023001388162709685015148859301665473851066116345917596214591952522455372631368783138146171324245370499020783646641848802415237949364500557417853353831223864564745531684625889614690040958295331768883236282119446025444534863461919620404108481475883603419191473775142952271024565316101029017572370892892940901948110707540564179860207228208930381898783925500007698492338237004467051382874451546686143285163778618720721202896285224875029984135191956212031556007054061482301273341806832349891502734398457301483652226042282568607148515166807421376626742774319641468481572503656041719142266041648113846789598085412514299930742062089010876844884954455299279836548385805511495145468449826501690153677969332457300986341787894400827465005055873350793545080510195367246195463936189251572299578365189631631100480748221893132859961939697169755312477552013430402978310496464792057749886033422870102688388905976595841228096988890752301740139078532365748014087836401445797888528953329248092686307985832986597479476930213620920677054953881764106032388647832092706315537504340345467391760066365580896361334756915292368388200524500910100256453831499724877104444805921507031984919216650391227849712716248871407275372136763812055790991671438313968703415690657147666138650876676889896370244047001515495550013839839117460035600409548346930660249324501290942949135514128580383829030924271491711996364367801122663454284828461445057170708057319814504100201944895594211988421615675416493923091258273831985218745954040638340607565003467398521297391225222551133009305961747363261759728807086239662699213983657974573037790293076393353724818536907271060121200338511909552419453830334469148829661381066276920265591605150422358164140453735629110397836241129502906508182339610462715498095399792886638174631401568341492440769655690519073022428860849451871325275362731932802017579195278714350723955902589446879108626546438992612835087020895226472696733938301229879929643356805401925192348666055797784809349674656074142421951320852245967584308647743601306185076957979963932516454250655138428723364426162291949479729080700702340294583903980593584525869965721008433974322910755628613642804884322979394717824036434666926302356581604212602923235009410183922108041098821550911988067716870101693685449602018691651106552349936220088822218975691919640924089016895306778002772056114386297188458702779186397790384191521911215201784059121526361973208518211023198553276590933308948775272835918852990532997958939143883632833732869291718736564760072240214427811188877414240415046808132008608074526256530229917640490361720715781859700502537542432281061939449104372605824664255548013649030680684532820638465205251498305714680926004695066430187301840201752999594824537124504387196245574842771368082073153978583877403743759890177744150525085538007314862959278726643838227553021250683713759860074904797530922736511038921574201092433927603320425928719426249567926512489881009627904125543064610773897457236485562768697979567882166665341320997154979400889902169287943496106616325354472272748407951236574472288132526222932159863015099310222685238827471361811521259425706366866517992190501674152323281150478062542179480273683190738600529407830810693438337369331709038997903501071492954226338677465582941684217341010008691157565979663109202154675071718645684101522063419433918098349148943814086798086009395288948110583966522467945114413464712561318164711188304536234038652139708324650287664718424523802267953435186005321117610818004360027765590733109442868380453002547269493436070463903166336768693205683658078533559015870217061271520746199842457200896308429627457910757525053753440868682053009502776219148263871884264141154811530463672714447148438525367661690745175337820533137985152635285243428147370051255225822919285780620511288953550114314911819913649158301250358335076717068133759137196356552654362575578807187317266645396305363060756749717684240213122016259962966014040890060692922576405074492917166614038177738151041157195172383184512607869862571066426967147818496205664840377415364607455700578194097616526021799958886307580836905578313757631807861164432060994274117298463367094615092992310743282471278429923182106899664491902014563399690296858230291663237879327690071524165225457229063887866335802188827292505248696534738000177837127273013386566880204284463564050572989172012860179495482718232098152244036474956151492710559046897017725166360211662785466317172796640894470106829063483763752506088196194197844005822612557621762892702556667689095155835141733411304404454429477017466501677506312778821789625223876968471191403181533775464233573151080356652915243252267341891172843760564359835180088596478531829277376935236363391359778728857815475008978180049702951345151961620716729817633841647642187918848360224022925403943876712000862533409535591063550816581999852879930829538254680241485664759924940974036633646612126576397921325543917954521467099857405311223511385194828893992945164949356476283836529456547466723397955142791461177858607360024233728289254192040682496899569962725411411535945885224743903594368867599487489010410440363280227228116752102052756547745706714277826387966924338103841607189584986300787531079490488636655724438236446717706999917515283092156317070539889688535090284904169412213395720781475325859786156829283727526589800271308994533502123866610974923085267290222440039160114240474046062496587775525545806164192687454419925928743021258534645987105181374626764693816488157555889917756798546236931973867049958392021809595687500578017965304531675343272787853139223201582394248451872614728670655852099190148325821360571601745049014232101976963136000027448901166063285955399982892572841855157106791993945271295700038030630951289752531910825362569551809151819777047881476418222346332281212027542900773072787455706021257358373674843930839624113034556562145900771784902969336496977232494529174153722728872716464584686593726408335441498097416326617234014214590280933042796045547611858886251089441158030790639073197538515963053899958694180712021068350133056762475542502137889193192471402746650906099153373273338759727352275202949505130464404621663975608787610682196126292371296569321868962463112115520314771202996050671126781701567804073429195456791577479174726743747221778371048972786007576038548316155536543341499967029547428418666077952795770836012158258931418978682865791882740345211991298344136449375206961342379524718237867121801764613356974535972503658887507560285817032191960934215597459674085055730587072954692643425194529736697415930051107148687861194078901927993977608396823821072770231683043813596123865880738954904764864494000522546744574575451441728074579112811880475558240863431453716058629585968728872081085126220581912422671260802742643555436580989009975976022490905332210662893494789258921286939667634370482705127436065051109232885466930969401397819772971872303493641413910682346165722918390921134390594611222545259330055396518697510716535708533746861880452473431663940245141506723425442477262506809679866340978303390304234642092348249223450303059430208467610451063635205977202565408746881663966819800062512752874721687935919333159279695241982561739870095775096081596920626954410527227151969932220814157737615507474064519063798314856611464089230901993979171748097121745347096540563560433126333910893809627984197342861697429218784562724497520459774415923370291545345767680433147185170302226925633579954616873829989643076816342259591327597241493241852482856355952303178216837742559794604257539224122915129045155462806427625780700656628463905940019916034522535925284211944683327687078210771146678462561918524905195597439895025588530861229777123310491626244342988987049272338267385949133822144159340723157757012109312994946613455367293656657359516632685032608091542330585452660911259918350503797834412544365824252513116389905933601579082852683144941722201897000061097237351451503545381174611777466812784085146874384505884817283497964021549398006768042513250646806416511092012230684433323406374577483733669318161534317475165791125547501625423465995047506789824018362037076611055546178573809800222999577164345697678465148071492116608377444447967738462945077029835876249278752785145828215823465825087725065987700996085841209223302659402319262470781945052424114973992052596063457200377269646046441813257357320194806391477743951842585148178667016386524583311215378948519778327330904034919576159485348123777664785570453596207180654885515794090604762976831735364310955462531435992349513055238503814737697343935956989664304702025616134454046035148672829075941127594904854888115799493479486257388587174754496724010999027193541821670763346225936087361766611001906479457397947331554010320290753402211384115184253799022602304416439857297025637864825474221947365760564778755372015525705159197207593261655669962251886552435786816278437679948753377224230068779766325305239163820187999065798303258733992913994376989607238349540504779494657773792522794959050589991601361974330799087935648261547458918833759098769521078201976507517187343816957168406135421193468163787026257264458381184855874882417019769569098269300374045157623089219504259157511594491411036174959906923319960015623806589874142058717221660204899259015242919797115027879003330687601029448924148231491571849683989135882727229929084951697097438857651556857512321438473813597584745770091438133693058075774295340429221757519683523298030926777369020516319797252348090354318688366433898505368066171266902102257623513847255443977151873726425212909994909330372160561419900653739000137497165387474976484849995637706865209707190852562017389649477520699330211727120139261959276612230414228772994922483680690780023182597667338509112570128450451745496217363887013289456342712696581520463213147311910179135689581055994583855280854509804836637192813810481908215789171751611971600419985300337593543613622534069589725325180545750805059574159586748372439971998968422336614882758541418273557524430910886547791070492406553278089058768936949926333761690670393297029531691406813089793447314203632881894332007115740815275348210499132695399975455951939891036671534057494809749023499891556815718676478665605253106991473430188354691377074872577797293625911218901396645105027025516301417029380353602735334983606025128542839697537855224826326114669952542969370995148086963734143609201472790663386619388522760778104724393281217562127907725362977867505078235330119515479818311271526217071825072854004525420911087045718992533438877443266727669483849179111025321966377365036143903072417761955597281560919783022280696301269729171472081957629716001576076268052227656938737947898185002470561040891549647430644631792913841894274984881211912358671925406419583355453406371551488734569020357387448695716934701896363046940036950327930705486579421188320847088633747156506690645438335874033621258580123717350703893366422870007690082775587013592267382760599597855575152450165449111941363294644085310890618026895989841426384257568250107152964736482887926136514939496166435363774817743220518814189777243597671857369378718997021381983886312442635336851275706987116470265442833748973677520258863221459306364025384348062681890089690493472565378050725118965926545282212268696459030213152382372967175182374449157942437819994074516307626717363373941113606556396574529821779045495111648952918004388592528513959038256902512064453071650081726527092047261772757665069430072389613582361350660988130750352354724610370002250472823592456571717989867372498987787677252482501306545354347857095929875383039677631029698465067904613510020495486600862321004615897952246072244015661602738826334454148894696995787205105267434793232781935106485652202466115848066316612011336993854587783656059208125865664305764184064664279594995457774149225022838464662899671072710308148082519376180088819758896963844491327058636434831292436528029474910574079123222444630456469705840438428148027334297243169096331441287753909363808296486601874828610345040033054772057927083737290059398754535760405131775666826884739573100785073341232625284681513000091753150129831634012657798037620703450304608920558374261789263588379888241961408996741287912403248883710545991486916017712821279801050533683701326403275232900475874011974175211196459566106541475024374338074242658587234098709181586051164152932326892778035355024708178122046167246701460437952415956473941801502963313488156848819579080551120805261657437330380528953127159414669455424208760759553604559586061662162302210201004835543581896867503308433277558533263240325942590948550673620856810113310894559391341240487018250691821287353052872162818366877233765642177396608759962011596111647244601451299488530257724861988317876060296609419508960035683011391502843694760076242185638538956663256433351858485668002975865700299975530810863469576592616158430224951714271920790211831230255492485308021507075142623030472299305033880690462220673876344693673149491152900378151647902259550071615650333812340592612017469924903112013377263179573023648740020566922139128791418144929620093277137374011948592932955955770354063270671056710553884377677733193542235122104465885303797957495136065155169142923338107643639908209371279815933501693343712231001796671258318227222132664052832661918589949390533075570518145240490785136859144368928391128222692435697969406041714154585159996059493665563649660008105210373975968823284335839586069492229156922848702089154244781054258119492799592544369757855482330471903624195153553938250489288772238894435946056199430797231407634658762598446382287869459980653483161561990444666808032464919964416944088192602089943765449809586935894388880617593066367316912455508326889304267199188254363089740336035526887012969749254611438715700869652174900065160779460475534348837936414197568865292593231363003742005305701357067408065771291583984381815537498122099135168849254633030058050363529628740149173260756205690783842910512122015192990252686244884115220195663642241284149698665890824292542694815427175268732682965598275784555191783081676731389016311642993931783366561164777728745803865176378442875225279743982831821315622050973656945775531204371009037125414663819886104667226649568058249542175190944430135838812450238619276282302648085718150011063577522740779625334199573050426434921015162513493471938853580660103207580781271395163820242007136053639870134975835053458309406220643780323504447358133131477995354744721344722819656932811221049541192867693574113396316736595373844476664127107186983436787994448084210747040698788393663252919664592000051436683464961994907966716450232966658249100101168797707523359589545983624847407702908720891069146956440011092312742861118191487209259284688767087160580722266916323945901787216946085232068325025866519989578542558150567888362404719905488144676226927677348087709577455539862207812852680326440628610802806058467662150350001556911043327056543004961532649084075176182799495133899987249108233815823059025371453427563242085945833466959958555915845136912035146057020195957426150531066087680453116756288584655458261639587138032882441025610490776251805408857006260877058893860303353210584646321560847727015225123905594913824424401150338130811276623422898095948507874816536262537510421643321357016684648944656206640397715465263135714431701189882662960838761814894979650169243484917094263313347562700980208599629101102797487153325424152170838678534113125811600007101842576634070892024723505308946565500625070703967234928037851165400472572551148382106823228789855748591937637680637366763233914370986925525826156936773674221326752919504474587008912901601009022007879986466756796187562242419930505364026654627512984902871995313484672725992523040471643707722029440222248588221251655681293742056249541049917707942631593820905140434186539761321745740654686622119973501877299234708796570247421086669720505226002530501942825465230402170281787684385323617853195065009222124197153489864957198623547724318190906279995190482893433931000490523350515582970580152895104199064015713282429354792029989690802585085261506126109314253308914830454757238118884315001949844162928968621394501436034364985261747143291199825508913803025605140377354607763056629689615998504494856925083123163213421200664740286314721756411205476459527606114462373011877681075747747567508175843905596036562389480180721867130977666615310778847022191899719363542653966397405978268341760994606681691475617743400145337156297828648277970954439929699063635152528796340653156799838513473001784585729011684077339036727483513196283875003962736835586075443833384288228810893405434136020582264729045011316410634352524608205339359661958053092890654066181606367946280187988869083630313938962238936740549567260310076358818378618363010859311869080795694768101499486724422352937955923432860887123155480223785633006998182188586305767991382697906640953067904900919080960193883579287004968247560298911514910975007752007264851120910402607580683934410129872674897794483696126048546270922448818973400988872611046756785594813704707216532295085708470525136660333275336104349031134550269577653808986654794713368313201105808242161397831113426247926088644390535242373393255956915866623766967098254669623395080812761451138515089302446311322509475222359927873441645264112740269741734078600832935053584358313744082486467114338817606606816481097697784545012329485197926282103131010550253325522958196878243592541266199820951681174386290179442946511016555991285062468639812216203565499919755892894312626512184041627848023081825198613779307223293982813103401339471246134757116435736739983777443618421828927564708366264935029530640117308083950617222844727793104512894402170911724370297231951187859917803467636629858538543450640625213264621318328349194998649807264323784615626629935537371745104568323711751578561182124192363463998893300952104389917252586874985970054592878236504285872203575543908786658309860136610543257844521032919820252694839199658449504537392035918115773205084124265490145589858465840431381963187258833789402050219193807904263442754294400743899552421711290507371878462088622976132980122958589938290374996320393871549239406770201096048081929368184845308552504281369596836189674321862788602378987331050921367305754504323969001073957415431268691194598973222419773549013175424367570922789257503896627354315307215570801716682088183232177527150505532416779025997101297914284734949597042235446364083673760319251541462536158790579012071756862969301925028543047586976650034470096714407084676429921683135262983854698028474683940194937127674061993943920152639106202604313245615355282041512249951179230184089994236359148339405247920525912436218035850780221645432202219288402452208501356932393602049847773190304546031299369436032323715707371228555767891265656470324659187599292652908563890968326143716267799021337903176771342278115226018093187325444131189560386326381244781893221079703978082251771140124316506156975431191940386576957637673161707615142181103079241631602818180124155723269958976413066447454969842867767624996288848988994585423071219426454576787245168684136241367790073180125966644142346124875444557836410656661516142566132184133782544289187868206982153687858232361743929332812895939585847740391384872183944334335158341171168342491918075962633086543446903620477397286903438054858496408159470399806194745691117486184476009115573733711194752779039323000724839310376365104026975506993534920313360866933822034191164946679766980261931461125643220566830166626029926087223240594783640079707611324454674101760781990793282551327830638080059040286427235276257760046393274235618111350941750894139938325981126947677567543583289806835979656539034628304616780885075499521217276295169817723342273644222390926775324007831632149051560781191764239815985639055969710426210202203487847799705646867913844204195923915013570609190041199328685468164945213753576298570017007410836449803362947465248819016514796131720529111649710629519010884625152605564288934187430225252486719374414830807286416322865495415346269807939688487720110699596740500349982718336369632697695092763962270674926669217799968055812540075842941252058133655771371758114072115821814879991958051991173528404711369217859527033056407611167743407794398204077280335672883431297657754923952125676883432405309585358361863905378236650104337031921739840221747312637833575464356957310640951472967984487920167747040726811467483511513922551748912115703647180192471937694193966565764435907595556481512156790567658249179926782535852247447788644063008296791478865654709231146875576887925556010607007883473395234329030331766628421613148615914682779503704817158596557046574073873863126418128538770305023778952860884755419231599085263001309531916553402905929887346476928394906764076597259083305241369665495620743092266895263172308180635664831994539704634059641689974479515728766758866297353850853612309677416397318750522292437721460953230204703020957785300621052184174061357615566814143018996504852337442642258905847695326685421843654781262045920194237701662783675718773763378131296197440764070358409041870390110892050210490784641825466300318854052047537945536035936400308200887227036537077085273934027602593851195312658849307340629609053943145566166517686793038483229392873273016910824566034629209634162810016398859864499966547327552987698092166576163890700968782683062474639514957445817718617904103194311566443004744536399079266976969170887354445660751091336571206496059913950301729219826983671044775627456996253871918377127968295654398668973719240215416667249942578360378354163089356882137201327284060752672117051213401375346741982244438667589796912284663196933294060923570240338312472906441205330712199564103085546982900746532599039309781934126378803949617562316642519998218841412078337616494256444592970396423210263406106934133017118658119045595346529361398515539823020308266228959178076834532346331958439905492497525059796665126857834478910319711859276465395937275929332765824425731102811151681411799954943844555063988776624445761278296279433765859360503621498720295734528202884908257885007561832258646308188435911714726498127180373139138589722985404840018085046496908939721450882193414529801674405187626572929044580782482227222190419527455502541125421883100928986858571460819652791174162769933800610236966781199321215937676924342374886959099329469582948357375847717493529576926279312905399041113976787140516909041014449761832988493621592706119796634696507220599139193381005481885153120374029840452766339369641176965961895564201791424081406878263316347465190435302974074219157039099072630536224574250751217848463631824207289456009958233434407090475344805059287747447133083432973885743656919487157316378450939720213057926108834064171264001835480993478349604142594694554845998800767880266034262199062549451753432496194187589090476377058426859560779832321613725203913008854809263712332596352384260800622568447819025750275677579335938339240277421169166850019803018910811854144307186214655303025308743953545985303490088753535764465771078893735674033306134877546820352605177248493055084813043899780203989788803325226269592861045769457781307597859152222596540902184134204254786574809073550606750818909581610963074193623895375650417895851330111309407438857608892307681323897344490836573403907250866639086123354012958242744593208393277248344665443784314109296337070440378937552596679017136696681076874780165467288924161761970482801235559461885362979442173624402381432987249794883809965734150262268570457539376186407935588173041895360562776693394215511984963048243316006383709615790107172327378811767518467429676046902601830873999845909439908979915068197710821817644829050123422041390234432293733715697169306938009241447596116991454451837939020935752247257919688199199034734793925736832175510966466456961425277434658780854641031569881603396265439185997591310582218803525068909159157985553395483067843962788571350726924330113319115930801775850099776379013487546311948496900589994582592219198944936181603006123629195526936458869033826637396259867324826235275813094672457951264154124123332241094852096314918606038393549131435647576323409018931968394270893537425767652054024091216356491446274248993708149210366326126710552202781531905181208385788699068828684076764894012579184644573353939424178166717229681233145093175516640709978939663757991622242072142496041607985618610755466451920322311531741124414623256230482056815358974138965973211458934009979925308858809600066462346011321339401601750359825122671633553959230336083427534772314860444424385762636751500792795502135402304853613686475500055703474992338411813481752223026834874560721117703580722315099959297643532195693237096618858421755936929715246286300107540821798143562892963812123140409251140299809404023234908888558805646520276614598819785977667206902683727542462995983912352079068455535906502452884964896794669237362156237442012078942748314393365049155126176955834023179930050971384142092556033803045265341475889994407626032130386270477206124436193707775350004487236223437513979803831141515075497720438195527371080442166787655455029893798409594645445560509789173211563375147147647468417576399485733259335696017834671512218444800190467675553012790392389687464247373006918523941431473602824105911092664496109792084503272781548911649060131338508796136643068379030509556815937744621622966892275323963337798448938184726283004723146272865110257822642737828448389760973025141807195880499980359917393807120856113312715502785584732601849217652607866850921487306429041890049248460211815875012624498693937859088700298308899613102781679083410162494657059215174924467261946947603928390479289092510295383110619354282448341006756258248628511468431189992723819158780690217096547892401821715040393825536750104242448900685377629069624675702856905793615705212425337701464374399605992429389944125701963241197207060675723585225292459889046813551762283613839752515356924522566542224279382032743761791315490155064474127053440919624000990468340736460568692427406124355880552012538148812962820563701429935305437260815746286245308912393252956429630723138593337595561037748545104776470383492064421253750038901638076727077509259507327288798307203817061435820651588655314578853655324865088456966171609441135916335894497100486573459826181084001222109115502775177909877168039992679757605267810964051753034313786268726830373930060041294977029862013674677722021174320623680890402129552731076820569866694900005325918085341809378090574086790752970407848589371687380205590399044372669484074655132779909936070022723366488239527625749569933790137332602752857752985398833774621301125668546438369726194697630898703481002112590005642537060491035334839697360631818592722276081754801523703121178322219493619317614627524488261387106329286737546873469932978134693998860404854388722434041706578121412495882447950483830249717602485904917478003715876139176211796702195727838418422923345458995943872503093447875769578519199566584839452166297948508649491404656679511800723103803500148753711556048908754267443298621092197974757179870321874826174079864529130289574504566876925576913299688573162959515407913164584778454535485234886305122534003721021423672951337849850869039308757702024923103581575335691571735659919812469526577360118790640404101601839081550662684575972631981309694121393504547701771153770866681954876131995594300966342896455076954411691245745333457636464730461956546900559974760463062394181265804268102790264098543591767465495662310247038065066127955298362181378190478007214286368803553224534275668670030762463260013208818149324796319021962027595297171815162101467495161166265182678752546223971639870304186853708083468942788715533946274722652698897271104205612279107925893610508487558426495500685841497266025356815159005033770245134416029989253603020250708571673199778489980646590935670378261509037728718277219477059877433636903830585944982902403673659823450564443189175447868523280315544096872258388352218615945483767761027592266838047476019370637371585192475119451184415583908272444265712573000108056285771414564641190934985243547797363657464967410407959068328897841608144535066197537688564407403815459938696401057092110532629473867166293066616932753877122730187551963608522145960704549061462380667859183051773928838387594366551948356359906062880791118700968938013823027933938412476527572885651299758519418355440805248770209408510417256999982657598812188645136107776585192556101105158844521526371520906633590545713350507652701958019329474571293944956579698927452551331769003067368999198247975638968414714000178619034906391683470918112525731960136625863089745487164287225655161687243798921244919175543131451726856858150993667936871715904897467421621793713850701000396848634970922610365257855876392935320186705460358505337214239486891275900365836622341133095958699115946879635003681825195568852780627995893151032360498200934041023363359388773867239122948548416907151115949289541934251119382492375413980078869009829433794099657108746013077579179964771811365678134624575286485446385317758651375507068282612086818419908558306660038097560497622176774649096900896090782692718194993690837902543402791864715990139414996412513840972482056570477619210948283652780096038702461213330691335227348319879835821928868858039994379347212020649930922030632495698569204924759062498456032880222805852693436214195829264978402705147706842309507414842458205914909635223600087449148898877286150373653476434480916117488294295405806596817369322716578217861370035233357589916367956906516090482064758309250868981573612665800228465851572771424748610804916576008376267822936590614908952363249698945799870000693307223396103693484093095393580131571487439186650790178369800292739596715508139877948067149378637293814498793996449485254565266914765877577459532012465025176143157756196571329247976346347310452914606134934430214836096193732506280380219081720221706051655298741066765847428410707934459375464745324583857332760384663799682186535567695677607978650619851660055136959264794406243959300225887920747628783293359073897229719409522837968828491156446739896703956288207892582076789454435700415840320115789429950026067010427367391499221688695902136362057105185540614264614346948489810765215409411265451072532846582969993534358804358404544871841108573908074048097208473217364763702830414205508140539250456774004090488410875456114123651437424219813933456188708515395909951446973731630085687234115702248553861272012343680004069074473722881934750963815618735762883878372310423909699855059703435180448005133787219358244569519209073306085570790600097916955060043482680470766065530677302454945343052284197288377150851000077358921369202900907713895637361031311332791254503817510694518687760790499390588628912687562950438460717304743481537813571025521760587141189965508115257317129091654132726887075636620916743740532566749860436912152023820260897776038063603394825987359426171617617579590645022405715675508462935164670319705223399491442380155437369963852689158779533356452605362112531321383193698560732376981235340004417257209699386639814037522842721736826101915275970810214351091621418825166007125945055822492278572896523994150878493386581901441776332410634482382070163274242294779343236679587878418971329341271077848503819285142758818916711852082230914455008243615062921385732236038363216252692473257025409558646659742218626161265629079258321607773463825056906196858348628403083565305959962003788300496700316280058752693472872029401450335318127435025468038309594163570998633591951385164523491106095109988089015086853779154470950345375268795617570638912381181153696495242564294775337946672704981667028487081203027208647634387776527409983938221408578721000452167040681515668016516128469267581265818247569295095345936210743166608821866068804215974235497923216176949636207016958039007351303625785395741563187492833290872178403575289877387591143849147438289805664899746189361772681116839247499215156476282807600895034772751750422386980204858847081290741260091435555243053320738988645976407822497374813499394322483629786733691344897834268834900642869258377354641455718695573813007983364624024076027351915386851377028048433669969896028750867761151131934184423468766576034012106658161311292514596886528068686843269841021032461813249663002381553726839077533353058072876094180677843698726199210329075732147557419138871706834611646686541893268280066000343238472829526318856758758451265401370894650244157122940134235302671470639506242437520395253088841953187494176181120664650578568714029551145327042548028092743653647008450634387239336258254389101101545913900875188665507693121393488005055296754929410164421331571856941848875372742325669089646848372641318116852153046142554867403623991764097777456779058671969193808856852410640407252097369964210458692104677218015023507910713622214163291696055551166195938868400487351081019415557908065124642463652379392894010614462493392714588491985018631899880750527376600432134022745989350180096308605531247570364407741279670321931105427183944715364973872337796295717729330947450872193838288921988691987730073693715567983204884615558108869948790020853818472031198532704180065992820856076621159196853018554270099633503924863125339716415353097156719373323102926850104532287995535325396536089846321182030442952237322217874709832793435013119240447624064455426915054430476307929044201311243875232777462035775455974090457903928655912686911442640517906550734042364121506797875260333175824907937277047764433424722252974197583489727467951455716947809850567640483074886392963258564174358094830480854401513208698292399868612948495355971831604967637081992841928190206754147068057517241608876729058245707737846421143307643742297572470996403300314156511019093302365209788985472543366670264063735738210480847635269988235443330611985006347039121597508504568115178858505571473981910747504449835400820796267077168256409525788853129294840309798068678964308133715538122143584030544007112811514246138029646537550252625343917638022445819887756398466642540971993286459185449980995834323608333893944238799600447476938347306194276840372731720712378292969416545531765063217715384844760726997773124279943515856861108745555947352363104940384208436436297521003618589408053168430222337342527851369523342598924517948136360386588861321085748580258555260472235630352223330786128726153263430472299096127096886739311944188073747065810221642920000038723341579765407041317497775975661432415587134893703866456737581449065885360848744352693187592400518112902309079972257470986059394188064753387379757454356426769286422122271987440442457664989095037166191322251607976254109136913735983807126947913668942491221450852478233004718695007146887686375982826457298510395747411309378476356018668052515122277936609472741654150933970892214676267719236443642216792233202587580146163268789006311913203126862353600404405640376636899440233386944199357853438329785980340673726073279607324450145407073896092504479374883134153026618960882900492054722588555580832705411149155456027709374385853913215476257318025403619972546022010708850419753042360813174730278435878475858332204840133991388969013259299265592183476225626428544328082123855829977653975884691443051507859106509234399976815429946433963706309651627224646132240222769025828330186780624606336868398063570454273154551132684023273360752423553423523744343608527775196978505606358149281387406866706267396375768126611957066986524270099668084461704140079832557566356794757653882707275479137257999156117306992075639736627527468692808394180180472850957985060335692650445201062148383140837671675637346589769335935176674219010654835981206603285578317983761613423329098229239747462921975412301438244631434835550739735076333603619310161074820618611381769343278773412802226410130943015997621985744427508299421560620655279513264262817356901629496761394684504969346965133006378189341215303330815521003182028582986633365296404806504241084494069083738640283868296680872396244309517103936548903688173073128171562598239554610264733430591105809609531743997236623464156354003650064547145939948889393034017149658486692934225910521499882360823100986776275100932853611608226414569339383456283320156354652902909372659394559076784662433260885098214010334981694863072182988910577659517188958205816014454543454544275722764563887281472085802270444143921466565703535176859968469852820690412634876851969289199576010212130856614820756578166096399699762030808186845854942227363590396661159137728413422600909411219930388446766481906865254905691840136523533517211630843542148079499626940576620823719314005976962506914278999109575366691952888975532703743787964537740554278278572230755151082084769207696129620856572103286075940042668482985500961841552348198352159603434931388305665167696221021642038655108740123808698940653924630240347955800469182258976618919417028534511806158883015657970877522203487272832658781465172507887295409771286627189547435123836281103583944871791927750879953399882104913116265547423097763419672102914596234978118347601874992006517368097964974350743739520715923863972845539974893387361438468649100558497289824483307986191944319231104152765141743202967776559873023315325985039415259672782689034976734083715651347883152219091528992545246919324590708406771314369987393390116162803330568838646602074202915627180314756946985936867109751890909630465608094573757674945044085203216333037433675178081908523889948054509060802301415377133044121346788397332736105261453833043447060438438372223231170304114865436976394481605292235612373098630392888445560581570783316247682346625305535446047485012917552946120866358919356710420091963907457442735793246204664592242502101413058396564901248006181025849435269568729157430982639781673034118994585879844931427140313333629439696417810422379371583280193781098503127061028317281835096473806056173723317254229379408531937011096190703385277260942227943323152425250292149152510344619049450932063719836411071351931039712275810735637581883943954113229194303909883406072413426910991289741932206546998754899986421282821801308803290222871929779875375683364923241086052644878206882137041484824100897574930504070074327121325729043584554690960477101931128459287027688582277512097653810989196621293787719382435222429948889266624546036542627245321134238417225241928089577420796867214498318376445973390473537389570648418880353343164744017779415554420755001484557987077012383396707733368087776877648508057094099060244846456784833771206384070606019052821586039573320647632361254028189167009447527644450483761384600394736883335653205618719890606035058457864489260338621250720210832856743334284383500161758801070698123488828160270128892563387773784314720320837840167130111273401094019056449667845790626008717089549781806866796979385555988819750643994354754745034495583796977073945898386100090889420389046359394857291959287451200248650815915061144300974663567677016426795899444525618432971938857831993037353331584446236294113968724651977764238457833453215939368368799422474226533375562041422823198837304436486619014246491235827592775934457711292324980074926590490193003270911160205058434359720050532610070513737303987928582431462242748458279853683981520415061977985527668374625659628190638546972553787674299158133335287245675738930171600124923945448727007104849966909273461137142933299841005245718510885647881494058716816709589082226023439316024388257609807385722782995557746688854149916823248106992267007115737640499511588699616023432383381640417849746159887895652955372090234045748944537631511711765420356285809766913809269628570812272258944556971245547234701926412994988413920937445444579388446120415118628064476951680776452567012887821405379821630624894480593933044454688606140699327704039530178647741856087743755641693870918607866459889053288067213407635439550304131771468944098770355141383325312755193985445239029484924017554805865085864065742348412394277946253568891702439376405306989167898153993719903969007455171780260466048374664812688081666944262940440477692651094912325377229987672312515094480015430637783318753240395664015027178943941097843957254506916055315589103122933048897353458159752208022813815515619873665301699815198643336232419882875204653002581802823891948061914523254359915766988949539500546966931586746790210490102002770601049829917799262331289125622887083941260547911189417060692360670116147281697025564225043894778645090907701105631067748339065594710020665814922128414119103926514381527047422274024026764455225692239030823825360079782918528623139266850865890191272107735259557658509537869683113263922701350738362522104187443906814888185627790762761961138963296561955804601519119351662053795879030411170969352645855779633371699679234386952672234474383002850228115062126392627916568409357244483445371020044095021589930214993364127587251491937799407386714001341492087360485423625756344526560618974444687223218562184433420682070597668029748218421275409808128069884169235614988732439935579506124220536137083543270071983240770396844895924647791008578235825625867975720243611287950614667378305227208527175210889635956314424474608536330689181465296392419137935824357498226727583874218278445692980104693956946583854910054146621815328252254174828775414681473224920743626565916272947957409490240689196237870161266952537570735899291865427575484203916459509669684088777454757416631817111481752757533619661522045013343733888498310949691298883924221353613105336667914865370994780317010563302892938286737970204572392662764586950046144583076159126333055813099599336676280784456542123993202846837249444370606967186708023560211696809766589385531375167285085268032423640525188704217732256212038381864798041831984347189887627204511137414994839154161411342520728693431507892352392001252753347552522022177703414118104227972077592204192835228195131592024371143670185788072005404295897091155564900682869134514492780063769237424386773813732586148492813976007223365979037331773366200587050818873262164998740422835029463743898925342562437078279091074530465917442575313277196313548194975616710670966742883471068033843267373375977046729846760122798258110676761538930510031548375035381959159345636790310306089401565178688570108642488447516362844732523767537623039487865601983334467199674412707548533993646969421268155739239998318759254458662734248328554773502358553225671960910406411441430553406664459251747939725314409438432182742378224517453424424846381765216831772144290029509709972519052388756212248369980203682053257193107948776871921548398137173362531012824747371680200852158860485933889748014502013853939806619762972107312363775733060929707297652623225948635165799350418295787358098596121470693331627374883792238051733778673209975229516772479924044766913342197709869158847519512354794085255353161892271112387434194357251436544636378447684952637642612675671270120247445655993474096335584245929749909240681691133673759304884985267642950102999727136199520190386707357294903404746855636222578729492194699492639600138478500730291213479870511721279838872236057660995798594344885219428016758570913855371229847337095607826400323989293435957708972890603849673982387262823649486761708481147730099110563510819848462225123163161604666796820549170630840617777608717012954489677424625738952069117940575848612492430403473920992235182338985424196950479634655254376814510250989088124110735136888629100051728129724541403044907815199930037436764986656911633350853337573155536950749374480462353228523387639811344125509682868071562239477762035932762579246903925550590520576600376934389553024628542906628153313539913114245974576205874362575647372274189534728556440697958167204790650605766903854620128339834828578950251596914284886965999160778547319231523585280715542129913116620618628524336926393954083693036241673576610775338576893765415787289106429762881023015421194539615890055860074532852015825570383138390190706007392110900091497678676538952854213005313915948322752774202122023763785746322304553462828100919289512862720610491867872771603665475187801764456469336505420615459553001039854289238226192750231215183369890467451330711547878653266069693185139329609762787383933692888194262597173509567135132229837902800512364146981062916517033171038350783351785130962821754376320524260677326170263060412848344846858178501563728073974099767744884594732220540746626927211439744215369285476465877073674905705301562721581200055097947542283094999096844237632221887444575591247486841569691547256779309767291711394067169225139864877732534282696785691902696069987373270253426415394933486445637776695461760555859948976608473346109064284927965844645266300165818304556552562349235038718678212925880655522992779142080143107874367438612580262380202261796939795666101155656654353258402219277348964222406773262803420646305016189711098657313117650294981746379823027511161837608793478454837294982097494556764530249298519064128473280162657570650008969747107658608217524271505827635636447615344109917471164246426804897634033724673990458388861202223455921264418204872462233691452971293267773525231720119748111900240979868412122864373401569243629307607813772013341381908585446732304457557299395307020143513409259360300871246644859642488664114225490433150290262555094714710583393676548749964401012059497076058712529823966771872913810637870547331811893520139713996730857828576793430834079459106328925507235892409185157211177464452686350878282352207470430080819055846551957199398894030259207089803082826204505431141173275127329754566256955515582957157647293119435291618772897973853273368946469489880407810960418033435477400518967632297430262781038482219241165771837496092001924970280696423760313579360494386497368092401646021110770021311525993403121079855846182649043249748796329435905170684029698663875122770548303086375315010237871482779196928605246558873675221513508425685528407492994676644786421122054211798388515521957259074920133293878254456650574821080722577976194603016188083255604838189946789262403554997874011604075520806931193262343242697920546216763003198638862290016117658876643969403504606386896654921744394392540712427130168601121950953101567161013793816184934341672530440689725901361973599001501740861281904930124963212167141900995312306584256116732527490462250682264686913917818281963865999869783816744856738070914305515313976163701542680376902614917929541837949484132665057472869247820570341712511120726762829217169300231829698301393075691037311653035096216922509045061163914987804807032303150997385496025741128524471732030964222151322315585465241869369453750581094875930938743990898016565658163393093972745063873921462883205804133618221352806825571527870724660594854666259845854292845413968566132365478233916158674876024865913184549396606448411205311213453792414400085811964722617514100237307382450468324743591031505894316034222279540477685417405548619544494457895823201451603096576999488426564378718008594728151522405275421835606336631254390579493922993760555368607376648245242781335213207352764339469261080374073427362336314407885390742843143554142457390856619619904900897937881981042135822749097417002198562104555456539070874422297963576239020232929334977266496182079373357105882324918157342065673186264205856524278525845152032746612506847077250718029910690292750233478770022504087092708272511389359948386461785558444594390895963442158364834989063090060457736750592164541391999702874825964841126116377164535669247553695363736626818218648015740745150912717800691534534842343489915808644706845272711936420942279976302051277704141636281862268158107369658191209445626957254317623196843795668183065739222669450720941606555339680053217419862791602349334342313640954691320393613393895193553375887491529160915869388236136933093313269107174973049250811082565671731731585039939200074181844160684167409902074643253350067748795711660142996937758292977596886463497450452884766490894518186381253213946002001724543868309586049575146734682880437659412180999411933603134669889258501535826548414355344024378835955454988471692265807929010450876395634137634678405282361931322871932679702962607493170449845343320418334938949105015516554798583434145591791924278101911679629737372186471046517024695061347830794201178958240402977179627868301253877704964613771812644111093563069432170176704083928570445703506876159568456110938888246000543187944762334946415128353894585673790090999343194961504020710649676916394289197035140456533072666340178102467957850335354065573367452536904657431995821052066934570680929698277228257945222847532001358530910814284779360478094191802991159458547337298823801889173864227155537337678190613846189599394128165479384490729854651521781698624716251631773351247105178604379775368957308234856160226447462251987808832648525243034511747053646059778135989924003657161339435817224339579261209823815120389168439154889807533831007073116556121187497436104635266477653679103577942345636996398977003030522545595721780171009850035291256486779400169569223838475569107596740863189966611764049507824496553493227975824451116970700334106982927779196896263005572692662826633845389608249700959778112594517031787408154467819742247936899685602350120491172122661190368797977833379007013734774623937064010527524806900939933719849862605607636878164471949872561905723677667636865589053083226229298856022733853268741119640148903303471630861923130178943545966540253679788125274547513784826633703403394227395912592177253096629778198034941182694324148958257042902811634613664721147105621624761687365757341833536785164515484704823247598679089696828667647234428065500799820195080226504490085101085046944423497347317022301697034526896061620412339412377815493654197097275455311756544762487684172540005119706912220085177219456211989161912143977127558156183174774142144618489889538244390791153891137028376927613538548416444857682291265891990691971565014135085804898180126267046224911027091171825380064126453394928113048722825975388100428039386180079439060519403777684666736116110522646592892365714765809060866253220742158894868329134838086038069908050337926205938989405047430822471332402755747104026359805025581509356900996816173822101113194984531686862426260023087726426068923777151945624321659128049286662377309781519864981696562031877497763972401459044260017320558190972217540611067049621475452895620628536299396692443783149172730768415942786968251933158780723333084651335175096565788013899344589547848777591718214170721847676353179377342226547603928656546943670204795246732917691219572339889747651151838945326670640516875389576887109189388471964083219410960419802419896296438959847695680086619988135087875933994771289870707288805655600295807733334426354239058475146177281957538481084906859478237249733070798561845588170384775743017932086643384799853699796756234033808202409247159926474884064511646046196194493130495275047789311355004979298424554812724868317431785838392697398834528811335262308980698709569247839954853796404090609689414075222405449192108706476375049253087893651887846225854333473103256914272007113730339545573515087994605307694238245770397590011073653828254283692940714108370389939610261880939442418387215806316755013747412933984670566939122121809855626221446507896112359693851095894858433645300521693495594497611972668901720814880639626403475629589679478386069327075341018589466407267888675595283841150149024903100325782625038048018163855207986285050624747396449608864750835312304082445150826827375606335417453636857566729240880890281603840394324190985145989659244278794289089289307980252222895411581805323357966337157956299527059156581925827422473478507224728086243723112322237708835804232799726569761834571847572096113618861643064193549008208078954035722597816527103664349542483517822148338040109928070685765288337806597142144243781191476453837400916692309791536572602605291961098182805414453135552820901681461962489053625117304098124521050479827223076648243514276234463056762692615661100958838390670719471560970440740088686862839553781752965462529035279945805138830028160675280536282036318284523971927224436343288214813864990974774815651984993340893517030923895353819803001571262268124854475138133951872482231606530812743302674236287763188018603812319191222849818523573130769708946922846257295520810477433267575878305088752505570734618433197018952764793767755217215464448874440307303862458571588845359711368016251063726858893282790852687070109785515825531864100397480134817596167607806319485531226049376232014085536851989455227536778327529975978101772802830372967687932527155807208758325947289535939167466336300026908236195304264291567644984200764059427047291192447323727128977960275097378217049574903632365369642001657072245901158972511872803321536963586666601087818579552498491387337979253920197378143325487581080985247028623980380792464260724113336467236158957343810694201463968211897640351832337160142282227975047811048642840704636334448476842714148748673561921378379029587100878467374691464130845805595732938731541375057992937324000498239795938143475486030969839648674214609373456315747022549077612689021851822481142925644995841543660081434586444916928848345819034035171110004037534397637621517457835931030802532846181783691894109762374675594643365032550905062991756613241320781387384205187946107878984156740430737165641344508039676475985127139938523503635249058025390572743421373625715283037476193936998175385744384303696019329966634123663291485592542369028388847429039006167866314610934639559729448720601001974545130538813566537229818393222863507640766966926285840374649378380495718705608206996624024394533795119731539300977376214587429408284533332737981564214675693976723703976315662789400424364716027645802909048489353293717907334950508106255047780603991438604314828510242239618219660140126859718566361499928190533123039101099277888679829252338999270171277671858394477473405782247880622762844771054918666045173702701312477004084051596924027144678091861316083020068896430936702842298771378861197277925468805501288676170444759294144575334215086704317791244468207571657581521890120500435038399581908290900385749887468831703843501271230433923479663069479063369783131770961963367862123508858315427118825520938880927808233103386095395796355490683911753698093456028724733862041661064018228657152806529111995386109134136526216797992092312050777633991096014683477605539340094504773110491623231120257268494316621753265488994855962686619233545380259108622402061216448700226333688131169702998762733079936724815700609201460185554759435973347856574396702673716109651793024931200202477142105109996580960966881636556093098545323163230403473738355391864054965634313025043403835789988824268508377193407930301741440731124629055243775243284454032108086252448943818395568062413876078541524424001577843814355470592460752802293799923413741855185434350626888382338754065704675397849956431702578832118442601515253744218074702646834293579454724631289825201372524676353366282009664551874440650434186303103037806128720065988799978991148261286785955967801994210989815871840159420781980536513523519556386569703171395832943588624060462839747788437941470245875315519281623982559976172162346043652391035726662483089671489303720647593008826147714949516111086561371305529030061737202892389904334032897813936726157421756215977705879806570518993164903335978919349052384043658363592166311503240260381145947251288284751071279663604130351241251840186586396789274674124394867696402657599772129493306835033160253613405085989465597331748587275598200583546836690953920417190060065387483512021488672807668735235693155205052937712570616508012129143804626265147784352887777974075118847035414558929309431496299102452548038323153668636331126318042988388481572425438309873031888560158130378923286189377344342946795957770854336166424143706541190797398942222137998167376547715233095754251219536883603644192311832547048244836289701037861370266437138590420099752137072209068404891078636369939871585586845570589170193784998557202222850502836483771928999471141104219185510676700744157514564484059704869905398921538218279474935623752543106630561151486810325708241725022168275215364228827429356110161287687902326790359190701275660611969404515725834565506867660106176834745615099856027185657132442156569334526134295681861939542235952840218319319058206413322669363195710215542620531758756112001628792497230817956393483137458421906926194963369843756208586325555123968158738830934490394975199715443661837140798995999620325437257963479455036322847539240985045748307984647464602475375452212277977730245955238767525014016117602636344707992299061879813296659000708066206335295205657446618944620710383836131253485272645123786016214063306126658119030688862875156311503179447141603627116980293117746224806818346444882543456668205099775330651008428207230417435191105790140939557590750279056653619716768576484418412325042111504963817313931990921475973185563002229606733805828619425025527901660752043750602682889844427421681923198909864947888195415548590600801751140883687958957761452008198705663103068287169201744305146594216682429611213719704386179019226219105806843479203252196003859194413551091619910703598958648585335054453651824025865704202381212093889178754313700342525716999031955716873612973605800541175744749525279105145741810095746904780998738821193632517481522211030053025284863966050045749577669523042077317895759463551341818367792388493538164279487201861349173227229996710957884788878581307490458235991994278184047085100827264637710590326081791082266951829303241312454161786902092200722913726206288416627427126454396156623532903793196710774172764356054792811489085169582084382553721983195668833292593516935935200752296120803079665123250512033045724288071173080936911854294238275625269783458965974289806865215490548377353113219751540472343087678041251742790038558764757753259073673983107666007960136956515960048443020669835492076568830380388568948440313562273608912034890199873511812071214077868632529958944691335513412987815305425603698374399414740432101128518411101679957352700086573212978414376694382395960410903156435504612094808331532522888813107938482210439422022193431529094751148814110260813043774479959007102333014763577612224010506228264281139994842191051753473305328433819717255231367836278965215786918708946170562775035778489251738155960963676949428142872917436481593046466210118613088466207218176605883809532477726705093998815957171387560027025653995096050954866877593950888321283388943792865124824281395643115676203188591743624000496259204174603398185800996779838328333588889430588723930874946616067961161956457549891972541234176324750355702036448911599413371403805166587645839834800460393937807833355846708697598267526054576417463946444505176440083155855374304927587627469019374913106178521462595623035725324132305510242893440436016753858816469739710217111853862407651202460103680764095898891535694422530033534995737600776355923282849038891148750432656353587065016619591526216061639590105309139936721988696975948781796685141310023771954511650361026472340456407299326233585158540298398667538051902251650052518398336430176464469536575128858950409463295745357082070309976601404105090718192595639776125697777852566903964902900100362222803664975756763220955430998386280461087068649192028480768356444355386050378524424716405586487644326817832957852496570333991207217324442819092299668987692853021175533719552032681451612672776693968515150210937638957825681474919826770213384739467481575729035920336723103131821785156706487484479349609661987527651069497639651819412372692059130379662287920662889124983553781374642262776527283989092953694770809104020712370312830073672924115339164314237400633698398111717453438423146922338002052633166795507731559181027237112143873469345911916863644904294483790225719317523206755174006117411394278313365246852835226678466374221049465266794065866380108549933184751127075692280443020199082615985528019310050594513322911806458062876895649189096100851468600871722361668644174507898367322174940329617495739694280648610424684256974935367036808078168088115093220388298758868613998483332557902142846543868221607824009414250304441167833341541760057591688191667775396683896408302775493650516802419941486653927507528119097152206409639838564851854441666134336727390150740574194882643075864937769101199072076701183378714082125647340782611612372123839093027517671158066134967642899078527110367915000764504086099766004897077556378588153867917258390784385883986923188863788250918696106412097133906234177719298111055743370843112128635295541209272321219187961268189415283326269597094039427715577330025501604184025952476231542292040397655115032023064858273339425533555835253859310382670877098128068520901463824298996156515322330830976227942308776877860371418040701762423342525414247423669062209543413747585425483566395739907290133932698526768178156509212032144569259934055048291305272314357515080212673978295876808057884397853775830754350169363604120163421512082933539940314164638983192992216655345054359106448483196177780951481596909294297705163082379683427005901548736441275970455708146690432315621620224218834373167294361981393603750635930757032906500152376284879379082558533971346919411666724207840799411327513009803584946554906610942588507525995589613145647668221009808777064730516992543377717778150968861727321027772426439061567376530107935562420463134784006092840188452013796691989379181538128543573049249370638479818846385272474795297195450677611189522383150716730989823909262882446887119736222736036947984079881961954956617823990157095362904093940220082326290962495520849334116278405970222491319926215737025366947777528939781603271904359932237348100880205792674629943935450965226397178908755737227954471741072073382064051072655136345780979294119947745222823139810299863039752049626867628553613755218250268209287957602371210470984121491843548655763182243275883111782109806647610713220780638404050988189476350070176832760441165722109457881795287977944294381396187859580240995317056296320058738209465743005680025261683265844601194299422335675654565709125249534692764467157150880863531857890463437866885392280489869493713072641120561036226619148007348794555392314578534198384658319180589141204699421019723861179927034049084483286789622500602048026808617692925966576756078095081281433830389998247497874128369483753470950487363298076734349462018260457537358159561632738493815342136403224834627253272249333392440026489592313945375381404604665204431719613268508812496397233681486170231254424870551857147729030328172883242663807575476183136975642130198361556508897126044683626510232975265341428117480345399829753917427137291833545275569350411206448837969609124112332206918268077477811480699494643362444767413568164627294078053050925637509397777641175552575390381206971602280677111136071796932906028016962819596008458275832199737631302603402202757652321837740649061655120929791069362894819109100895588574676706973733489289125931672620052580026505780988900254195048586050711549471684424354820377534585305158807630519501067320752730439102184737266518782075381255453834179332344967978765971638193281141243463877477450190115462497805790935781425620054894637302634537541823705113279176531058065083464568019487046970037318644365095623708816647564039983022344318506685997310843506915891203292740978629674512047716795498857957296507129737040573166502266728631854476537226903895563954279926780135110989414046257768453978422859156179090636226306547699218389942903232307921192482483223830213914538672300836640555235145630777943593816450644688063009934897137056138036223066541432170121132877802046119782178135770666162417795206401565284733255085249886782416654403770815261152658113892395832065480323909508537177939031310627120642917283581491714920769856495701791270690338863878874689012305641253533354454845223426122808685925299256830406391771022840338030973756772313664214674715847456187918755170247611614300415525181714828693797977831016414200249678781241833976917157315077970703038334201049326151147389217535240863274805184227506368332156368855656819961324245930475420460811070946935768274663843935076770423290121101816731531336821146118446822631567384059790849226525701002864549609311680359780215148454423330311551743399473194127838344216445246622631256225182638596441083649738294995499537585593039733455625632111769137398571054896742765851911077867436908183579568894561126736195690062155716538406888969191812461544350949145089772752985146627548394149177193061806134895881283913776320157857643790677933447907470040213138444468929470798267216633425592357782853827495799974818797190038502765553004101951060957864307844052739505749759769986169247289622740432950086852688886658759913008316806292758711801073082778239655308964782555414977530310630672129218448832966343477045236750060384554950783686158865916888568840077724738279243576043138464172977819567940707270023635351073616646918041069455087847223271512147570722790114662605356315611490950170911012337049467876305252520267961222313919712831365025700337404546952130623855440825402696937934432536764173468393050140129024349499795459636236280534649153689243295652537879271369060745560180479690140368273177160396786954531675771132485058561098234357100351945455956725997913577443838041632532209790876843280075648132212155138015869657297344649538279013335383354827779042987576507653262680249334934726045684012948224678202722381743089454448735329711806583687936158663407189119035683423641669143118819322592505230083440167456929885439551845331300032934013453508295067031027455715194904934072327593734296187103445203083473693869798423168479738636490602522803809608888096047129594253750637112442277949040925534929846552153584863257320990457367410977782024911707727252442705745677939472732494682658915667124605170330879632666758464617628810651233173171185297868915241130080494129151930961360269675717297322096103122644565785768638501512622918987065822429434669846429194569095782149358520581990372097731969172149870249561539717438975854856884577739978996496600856617800155230745561085410541718195733564158087330547116571890200836186347352382707351059618792743296092117149128791484460026387638577151242240390669584686359426269571164462397032293611475688043133915152376810478705156957344070914031618667921188282506447720696941559843198761471774532521575385009760157140537848452027823349512523763867810970887762762982414334496949185174643362399733158509826744484055031934470293655363004246148209283112728016054406644316911557485973713470307535812636450970999969083884659422107337703119640429123691050712027577677821542645143613787108532560059030455955342418737501517873696887417268349392170623667297959752751661209622658805929308795759613859006771471273064561526953865589126357569162760368602616826751180811811578316321862816486318507074571421364053609621950371658114052208512768710504380288447365255692046732922201753043729754053396749885879789004514322897558392664973196576927766377648104300265855115333063411447263889149912745323765758556022834594221119386304642113725223609111905839429292063182244559982300361772848883285456045708898829625934479745636915514648303110085515761839632433188731607062110806215147704589916997525402288422611076560159720472451747146923211580928605868408538140629869767299863425221665382476413086051164091220504312101066380138614215034879955100388458907802686978360575577656304592335796123174047153321479189930574902104247546798203230123719430664492208785080415187907898462841618886399307821209519327577784597120442547360231509687713354352764762666908584822376257788082524979451760398196043164557553447303829562013753394852962626277461080403815651717995357830732798619614312928891144032899360794268797120830216428503360155621350662833814343625642910352065892403927536761665091959644167768457819272207824147517842781435198002149114689443739433743194326213836688951851672674371680300747070824892287529498791566219414936431907385975622765704447533681885408996232883734188708695235447371572701486702196291041084319812555982376052920592010578284456203270741592897542197565818555141189793596001583778661311307159998136007196198560064303947661504710305551747397098618628308246123368993707201092235016559016338793111791662179715309547589067817005897660248292587714811615679701594604182112762710814369546354962087487339930596661697098089727435426832103231554369968498554988856229653905808048057437473017093007160931760404853433668883931452617359375771375304069704182413789495101016339368506243853591434312640978106224872826978058937457759525198609154091685924199118601333070169011776809475819164083520045529331554105104164249268396808754443203152926605642748170184081477384617294183843770487004982227872192830648344379828245960096963376239892252894423985003350892746795698224025063984236036062554374173732025090003105072262997092940560543642932028499429698538670553473190603008347955547295263266485961469677863155503875883782940300528309899609842966462240831949778841922864584352652199299824118485703870907678891412147718940009618066949242179065961534402305467602375397664902749390104165497611258208179751097179750787482039022740707844277783787872259522423287825254481496870576979194302144744463639380956402007993235223418629406432422443659167226194788042571951743497917550092814883360111224900504356753075593263916205086219354591360624956273286339902173488045997232380530171291604027614222320195662615055816861374877007621777475027585018129947956462975457833460379257184298256412130593897161215435651346539985301662387813495075313126213012052341044293609876327229177351284221163053019578794625767910269020372366957244181543949795205282220022678752841576635513898908495150834619755593588174485939738410893556950325364073806134282324431379283902350728712486501609182634980845846816365007843325899699157827374372371632751207243414425116907673303272241617653432105999836918263574393617446078828972931711120127670490996932647020568490466500898660600273531016768270247770164126115591993077234415726942639423129642327461391532288349425199447905094332122065651331255492443834777217413422540147746233258522535781948839398903981863921739605832824296857009579157889673037428686888392707632729057847517057592486708539666854335779664383159634300741521827270640714589098268556753460081654571885870949772899544072952053976540993951054808440936370759552766334050737600741662473659731435326587680808233354905809139489524255974830864090896898520302365003701990105969322080099025741769368152126909792272915242534518017045412253605407229888901589109033907768952783445590172362572202193043627867201006947997390266505514691936790479595835913014863425213743913509539479471141691484127328413756387889166889056430345855496645836850746645640724556535429890419154493466329338175328330367063592585167202505995321340853379429251981151389114540174898504222590754014192442535638555092560037356789143066589662761304147766446283565605863173372497904503880172358695793352404951097027563721487695005178015101189125856270586047978527428184977418031816532776222818518122790266629594272831535018970811804857632563033489880648162864427893222534199698472599033250509694393749715284735935500397451302458556182537277845998168447405804907621459012089389346976348061003960735017237323584598663132565861927607164849817531096791067167263009894183997466911141043418874919610274018876878666786642905879955065077060270729203016142279613210167081723205657760758564153809346487494194516673362370962285310231803088982718055385965646857723709052051975393778494059415608426116606422552105971645633611784214629347009135482222862845640680357842786550383453940894023902076460352750027898157686686518330402772968541179175281572530435660456016077643403674095567383041965030695700302662552526923829654736017554460462257733210152140683444243793605381058177549125641777562917772374126305022780138245648762155268809285697278224847945870006071781494641272624395582410548209017057706646939940596883437224263450670404831312251927674343347409076740228010934554786883848494317218050063032639809501717590860646556044379612610979268716529272472415196376326705729771007713654611537834258883709699301565991371403386966681241560606305108710084516502784882727945516389288827419604396140084847260070766304641200594884089901444287023061776726399081359526260516943199020519719650522269177869468659222691023262591261553969781643389448151310315167207610512352328503215908186800408472650285558099862936767632702100455695689840132430292854596981739151369550030603570540193946473220531160498377527666020598463757785155846314926056349343778432358614423827891827195931599224262355372865366532876134117734811355718629796253074780591388357119407351940420537748387662048875298466865469030690500041329131326447601951954348277678246422805479576487110335025983258674120294750763222499344170297948250151167225981094200601255270303817115328307073797673100599254054514215210420761394627647093302740977875737676392280809437167325973998085252835756358624411166796905227937663800059448701577626052157434516218571721034622989085553905538162124329139853417646686292641986500126633218445069667169158281267111916132672921211553853776353601372713963587338347254161485018247526189390456432958132372703750950178097341799650046062046012023672756875229585484536739441785141630080949834313951258045323844171255847254104244715183666585796799864675864849812550595248781549198156302118060604371403617991945454814182186857323777013262890617636725290324939585717222722996900650373610987215621918265922436647047377635117398266802198628105088521748412082297364240247662461652614327478874529492808345545093096883993198576456366197815555359201927448581083694291971794870774529846761012034794086334911576889342434723975184650357335848853663911465583286510382839768272273892776022048808759962695933672264807971034553733016098398698884144358865758603010854761938117486975518361049950412288087336040040353509500409145909052021192303540316682757296014831044644863432040342585052448427028808886223665580416457104769707291439243386475215023506400622318602838103846482969298761579442424300100029087808435261586075964881927431219777638537057825778525781598558187802080600956174547357164959799050802163306381928093137378222442424347985462344826617950420898194936645482331555173365342935525936371871188671066661629952454231303107305850796146325847628721000348467198224056372787545503695676515032814243039936316577944121132761213501821322271229418809043925788066972937305437004031568154016801482186828301403805008635974767803958867851123800665385850086690551244914720335795078974917231821608811593031500535021243223549504624301770174183598718000134055204564428236235677176726508784318879339709265639081699038259760511252148966681646349362526894092955800835635295201131073504032039304589042228742055851494373368044804822142297008600383674926104865003153682819050585085850386149573047897412162522226379172174866387706031332566403974828195804938356298934675019494725758270608492855840001777807698696114670423073022545111912069288536599878927385205434944412993220128760209694521053059850718308041342448447378276811327543760478620364673027400447515961625378024683155065375564891912018398089911499002269380550345552681871441149518136465549580231815652732268961535960195525516631472088507767211027653317393874805166440038268409261600774429973012302920369783006832954113305911492501891604167380974803479382409249359765638408591693873352298111725985266057516325282955328667957240115072967248853699906517024025306671986358740773555360320128229275122109753992023754612459732324852672583771467895711339969466585068577281835381113229675328542353318650716282077925397165914794583687543716887450258089503617484830121840758809481474115834043984370225808249449337987439102215989003752887318340901370844409159627408461439133405111714417111841660607736502271752724569822325797525489346767599543804404004506369675442407320820091437664030349113291267368830378281137836659511611345830382967277106837832639870778430293255458438361480492566222971320835346149770313256162342380891946880479263554425889886452898006360567571985818009472856472741482902587295419330845001148137105762028105245405074848643303982560355008321147583695121628021567209959722669539704680086174379598323739192072456475745800299652448543097585748857718809862356669658290930054455246376405185812550767155376083554121355156283745959014113368447066869196594087578697848757698297621990244474929941848499656887118737182737063870288236648289027636156281879851709196436411892005933302900229284985239635865283815762148171489630529744129653026235327449511273409475113364328814590086920067393872558570570522960771399635351239505849432921752354775351907345501148745901866611586064511133938883941495450503792549036347171013615609463469098515817573155784143020279812773473063372845507584025168819646949434773277508017333175084110525664842020366717994352302996605606081819133353526156844431908445219643910727925950480952773214867559320120384826741336994777883926950526845036180133846338792302696301595881133405916419948800454000865696825723775149740989807869222669186723891532587218422760015297703214754704009077304382085782235892407231416816528339988410007824532380519137810460918992388758074765527278774670944973318520718197612515830909221205216623330924779906514965118347339370303881394648997068215924998021595429445730335092724543175618148069504982706148548039446638154787293860083237706650860562844114493551475494058787250432482062665351698563774761004946269183892389356125089367556283258416919865694288701728782261198926669809759288502435136247376503449664016294599781878676347618706282533366975953704484076846202978672774652747079502592942495487680519836775726242509765157298802122787309828381850963257013966975846960790109056960320231604491702564390104191483685167361283592913814083621641396533004913795425040800766309740255456464578200064534716397150351837608763389748389518900915599463372652102555189879648472062778099284604159931945561917484548255790123863119308185500308767915977542748273122198402253315791968052851805796514192633840718776791045320449924848491923925268550586508554574362073600444554191418878001689067878272565811428783258498842978781004887966025364002111975344586872935309407162211071566789928900661197930749603972134431708179105320256348105754517640476767230265858500351438360775268209816612022410070567317560016600554255821228034671822061511387842861799426650991722690938440432071948537549377879171179540539141270207985567784497687211104338817664888354814726741393816666682971375350159838091886960614749710074395776200306268061599165342139732932227754094789843588102708756052337437846177475775043677431179604787593471922692977390806365675456853263588352383553165275682594087168460480898557529874737989921682691611765866789348747976872465614587353816032521343674190863536587386015721698966264810058978845233710616282342369810445283950854694039193170488708614396863452078313604679984568523821076837861390072282784270268818443844402944512097243317674667670754832519867373389686582449500955082974460048557254580198207277613232322881144831812344282699337666264440669155892571115026810516784480697446513429259562162448593996318059488253269689939081486389562422118629162404581264332925529444888578671685414060892304719542363248571769993350968988217246786257270700584899308346099904802049663711957320304142633982710686910257665855262823971326881933975995154631888824237413391535272231422662133239161814297624741931389943115429840126422292269360528981393261355168653922014450860419793477640236749978315417973197835295692480298597854986563254806401086849219147347214086667402462707086930113914043097417530836742622323136635465246517420634859366705971148981276012726765068630748946699289223322064433795405672092322035145905076772733604460556301492869854629407263621010454453851436222796620444082502022663993436189699812952130681910327549066386847907799484413139234784035319985922152029362242707289959159939397027529731403198433284004237159305431842861676702347648211938624260289700634362040011592397846129690670225597072071048246098758509567774274635957480947604279084771626183374579311270092183185735184628503120438552122692195193166144723018513865600217782031791278214578988553009617082461670270262774866058157245666028144119416046601204728642404211504727145166681175166731765898824292933847225739716243505289922329739257547470024108483302959242770529476455897469044935819556806439709572263208381566324509843135026615339607951403570480304717459399821523493875559483030794960444379368578434349687707308391896139018597768708975448424372018934491684411120512872499869909364767644665045386902665488819799675117777717405880346956960001691586772342161013434990099696427067577492178589254964470616587445196999657238594698056459335918968279731947755628631590418381290122521650847669327580544412749814530809248263978285297855200705648496829965115973571861091293928865004103403972184838914143524196033604931001507499640034696902555960240570068252936797488779282682507016563154427978416713977703415976804956306229506606166662998491144411576738504605273647290962463458024289272849530298710710461825068398501263598571738892406983791596836327931159759990187088958039765122906261122134224548890272435814490129875608745516311989585767623434923810318815320807735909564643955028097420047654106469154929113852616889730951717757572384683920045760956563590209349695986088366340277624143836821837594777970822425987300986180541688046461945933111026201132443812459466149920321690055606953979590283882395418639183441901624950424670904463698701618537286435887185547782501547119307840191398499296460450355687876233541937666833809949237864033626200486904291473144683166932936446336610662876074979105993531241679636612585471701240758261546056546423463844867344736598922090501735099700893886346956241925864753508366193195778924688275936566973249685243669501140062182072300590802028369813644953921111905416295212663729906770369012925746165346122337935307300334609172752925745032251443943138141765165616402104245414223514034819264459355796837362449867885789900599914561876611242310706104172854194568537617583972711302829701872557828758178521347280893197049955364542107497241815741338848753294704478109775632150740540881852069292969981482404640190372842236956877010696042243305786939093549156276351020767488399026126773759570451744797064662812379831933482378701220660068399849267573991465237970692855913780519174286360783241047726796961763236011977101633949476749330654234803552862757002996359277112325959959103156287032537230648132649576011410227785824507057714982498120833531120355554285640793349800994371634851563604371705770197058096269887074455259323352945604960412864111863563553413118849402436802037381002536865614485897825381735659359009758067996349269357438712252832906591792338106182538567112276788235131554834273893101607886870001546993001567898052177068459717049569017577976457833308477747828045291078202694481910161954427925753605515560005589803854310072371158703237122700337369061133064975970051876875594864817357172870447540411512718013222890370200761443258485894604717115618279484922301954167366460650929627158050808191401791958252733674768036051262864490064589680660149731573019090888606981119710223219615635268130543142434369918299704292845916548154435297795852152310963397224850743563177613806076532338614797264894175618271070820686743243753866891962170606251673848035466213644172744979862722811219080840756234999867894991000253107508333309884830742195833136158594965506434448771477159169684644350804917025998301616673983930493195736674998247831659924382209668398776682624534332606555052470619954276734317920142043085791564538420214884185974342832150881601581760488141831911197717266683947218915982515519489656532479100767966887822366200756668539133245408807395736009639249354408795403758907416793408988006169831603324726328218786585487550727027935293034536874041159355064640854347375390029219847429135565405056224407190798859056522870447015940103610223896642334143553695078580528055396563581593182729704362132722465839526377830130998921627268488343042865066204158077275603241377129150139799628665063170035025063964031167383154123253164874940939698687474852665005698898208483902062443645341200763947930679928781680014865600174202299545788882260956496088501617365989066400940099652858379744182456393075892816458729735592682863697073027697933875284667224367425949738248082826701258312539916919215122526626009899654099212771403870416952989260336332434084267908951521970848770815804244569296376708197250126955756971906809391685839538448057640845996891652833912862882747149936488380519143173404424296767308181144203014194157528905525658830559409785944557248371151680795811788374423367356776590141485200757912409171900708564469596484449168800433573516621251641162335460046256194768114725616328751129567435679200279149016524863828596150575677990996601596020154734074853639588934537291238575018510239848602399163503050468826311417679080697977237294579823001758899611726202618617231633309842953362953106994752233643411411469191233488994228275945005434145103587579080530947457966931914186010730454768757915387123504880976312881893733472938060793261749505653883822647725905358346153412545220726898323684157744882166404725831516674853687814268723871511980681225891343921434856082201752111255575696225232968360946381187007013435637555326661249627708302266791368481672126408061000345883190456468897560774054800731728411607444714985004465756734136937411286747409854099106427508920376003865632501625329377668849158971090296046186603361795017959809292170457169234605063636872791689093371723308224073640136262956951945583111580856192347245969641804097947246844795435008161551169611341591550690442915014037091606976503567906440513143839049528928252246850120696222586218113524892689062617641187467307744763360941280352682996944169246809908849435475369067888683345575463081201974965467677304350580063333178001553796257772780054213478505242015433137151361555110412769895007605903425501326894062257449235514303566379611361615331102974240930952368195329663054058133173421394839281361143654785366173764334748789008591994600184938766217774307952070978100699620379139490999724199877542952643108344180319523992808810993921455120782933849028810514143537295521867031469159881077680709864863080381465696417652156742067991403377375025752142066429732078941696541343855660267481142994729217292554756515180272320537112871497226481400333222157597178165394699221984041747835000053714877645728638021389651896936773785576328108897737697479409167753858139258641082515587360379794055576991068721268021911312283555114116509802461079340388813573897641259613382152761748851508306908701399478458783717677763352619506676881327927353803722768970898514011065403346788180733921152892662172747967987523822905329905049267282082560244760508182215964332016226464044021468755003665985110241869163095981679610388562171124856211541666103723297209808625117144814226509715287438796969452458256209742407132342135292698067313486151282503146751428012923319935549936010978027985356180479453942399221829584116741128678903803363555795981358018927195590199258775434174653292262220088428080421793065205736007817666251120871621246261439867676694132106095727452485127757676908503777681335286497623032390963336026143451319202537694122826711510946320146036578799427615401902571290484001251272533845175619104740089275872164982922626034735317451123314462940539897489926909716952550856443119912952085914494496605235800599047994989754629409007745232395362860485423947124605148238843833375419793508905221422643444436585429151210774163562116364208930938368056199768393849113726233057405840493591925443639059717695705260090426395167932145864875766015069659163204476905807997869760197908810610861068013308124564920428654833272945841960274553100694141985792658101282278065255959393123922023205564570888809518343136873700698285262991243891536971330705968355679941677365746812274039172036491699215652084431004389409581177219132083647663251037635599687918534311831410377902197587791151416757889570960667164337253348927098907344061828975599516196075219672921049052497703066699806940749389345688669772750248678841708352262765054591143510120578304492372083491628921933021147534224660367352426850716661308848530396330115023586234025917682542861183290516430882068081751893720623160546527875597683914965684509516421045314471059854656159220765133316630638012050803917013681268468837768356512078056408761290295917693827158643631091076670688751630783425553859185306855876394739785713390390835126699907521686760135136823756997561309273416635713813876419976259973945987884175453615694166069262263038364810824130721893393873323012326438241930652691525439277196119362044433961232611443721038604326842030568647877786583474288581774670104589019694988420964658355304448779075716065626371372337190706584905502399037184680894234378812490002112341496956913748309265707535469374788947623380536485718538639701144439607390459854233298677866229634297462461693847060115947428607476144809188603428765396099134311046573756336568542619915621377014832473499995642232953818263849323013831237104996463471982531696551836948785894294214360206021562490292999490721874423438599871327166097436675031702886147296349963719532916911000889713533263754685795688693502253411458210518849771688924485907589575535582242366824378198420675537343029388270166713667180050892252810275167027682740841588040260519384294054032351415561957972093158020227938297042918647213840225876214262546000437300738983396417655322726024355755065340963202621930626095812310221323006372943513577538994164078211791421576081017989098574927727541071076226284219764424600655581943925028246384982555583914345116129544959740569909600002399762296223100856684232380880117443005509141329736476050572960903938994757621348949255816061603619338521605575367523645378522512640632639546450571116656619589102813667620219996827923272795332560341333800059746226310934507618917889551162333559244482816829998698254677427885268958553887296938303307299757034635893501757944838332839647442166359569581034565934852797230842563617373886760153914987699230516641495060508522445110629279062712501897742321330118016050342146289348748054635922392064263556708416511321775700247717454450216677922854654039292337924215342900339702471041127307656221411207355863993711638732184820796713094060670758832807703785747113466848396647913605300591371441694457802064850721829176158672680326642504497603270566770634479232725469981233823470739865481908242622151765805640871262941460229441573439562638281147111841030528151397768638309259495369868387928234149796767959783281757627225692809267627292493825150525430235656417580242377830184624140373169716007769539177041415726944245091802702791971325311977095285096442117435621113449218559741500321733183539364505311682408952555872355677699960066163435367120443093178899361430322313976319954581899286845188676014502878616404963989632238559728099920963864361483445496797630000015712190166789585328731317149198400924192083727951465600012067738510910345927044196942126806811952713924642888104975418255940212979109375911016923900698537757777671638638210805879768820801350423974877085430687260553207417836823666143831530028466291687355033960108231704332603565601910422645100148385714246420754761346799072002722244701354425718624944057220391456668041704413073678564340408235443382489085320534158354957293636488468560741629102910247528112524258859084808924771742796007884896160383921888744792690619394073125801730817174102420494563652036681461959516125112278518569457865511747390114058030577989627821632054951679819687983882499014318861038308919638776549200026320638321113345961936169979991301244158726971711999608266564325417930021418139455633934284352232898092961497061174988218582940185802127769727579860977469851490804292343144606895285947181867179524646227378003067407929010931923409568196587442257242387518725617283041830569577600169299634407551603472845700027543236046358662520256232875442115506369841375985734794296116461076027366381279660688101546954770493616117480189372585442504683597759119006156454659707598442085064958861567469302718299108979057734808037144385354043012867069180065612787398870802855609324327787045269631806307490045395080624251047475019593746805111136959358104761550476397982618634442833735582899939921113764659011796953747742732780192552591935349907210255472529861963176900777960775231069758439926599532685900225753361148223689859933354371977434305686386649140010704590833334434274059574449983405521983957135778276332706757246052056631336334466929248000019336230850320815531849491480334473896354790728349804135514056466803279607021178580344372885029898448466323304332588955540292000963158176314580346057222359559871405885097004759397597941034612584048852547879993914841137968728991591204362771185815256085694043971011145788493313136234080535376727147305601647455354601670668797799978099662510343719283863274433363748926776560370202634758321395295365666285057603456237613236095966594538210823208629266493946266748607111777678541242246856321710966432025800652710026370855243187134723259666851482026374136402716858164413326940617221317784054191850110879527844704286089204038083706186556610588547430559274613038270294390650371456433297798397826468821213448967798255745974631247046379667828281400027084538882401062921266069060163731382498916783834657390244215941101504738872011436232804649095992372157110119200653647291543668788490173776108115773797979214070933391554051974872092904338406779693867704936842626963147523868481307020249480534248761467485875279287464914424684183617204622732012033834353997595943623547907030242857658560305483010847036891658615571111284744293718959958876644182018425599625422458461819740785269992795926652989604506927024261770575324165827737087918370706290597680471064709241130430277812811549491819140176645855548796758427543069758893599287709702604283353443252018463890947665291274877159444319942730949873494374850145357087171243727474955590416899117521391309918673531210873862517201382049651350511796527960739604183007547236265382874902697962683417132719046331680836683466646429616778740430984768426561699851244341044802843543746945573306218795025601656731983710510714676042269948995401989443333940658488931628313529757885937032984944788516716291920305474921264365226117615489601786271418144218263593589880501674538947116832216625332626232806037918480042269406631041692014597407452378775906058992685800894122313718759699517897546232806222949962002452137826616808938019108557306014384730803461051147123589469208953064644688349000762245429399189039422337172448402911240010287308279693251904811327032204396188816221256771701491656952680557633883975257551089710005422359181456334305690875650996507429883818070477537721649535351393419694770420308765795760416010780580751142453889388183203725094851810111542628545883776352059537786013576732524495829652190195527331660193644996018068415899826600532391233931506403014495594638560861861883024564263784342140732260666123958487573472727238358655911599906539015459932015804587615337388331230331174834769822876292202157069217153767258529916401868429795977101331448115725807292776615923743706455225098107308233132604818769051888381668647420343544741377332950307627839697464442701506107431465258605465664375603193141530980759656494008957592901023787496747970385971304617299364709911882337594028327297224547333665192763449521706305380065935354434414664305270571625580183599139214700328679653064790892817835646693687268114602619780391496524676323126824044581694570951028157227077157423817999562005522808853013944564423819559528586002071900950518519866764161959365051514932828103189025812467053066783119746398189250102015126488662695728532619359367571810966747313517158991266012004457928155779392590589948050106901123778633973918423155298948373148318232096311984944523808189174897689029267685757698928453326378697861483226433857783158370758326561051498160300399210359051060521078492263002395063075657866242001227591956688887048394985903763239603000246417503405861732547886141728067473937800410097302414525000001488256299273558006847483322327953602489766732524099388271541467224188102781480208548630579981455266865726091924536720444712450981195528185009266542837944689365582494076819857992230482733961420467584660495916852063577042088104608015750788496638793568830501848216443312730615351825507488860871430004404047142842249225411080721573957929407143998703956002011725270548134221678113677303667641418644525690301041720968323818312337296276810048695703970342598616162026571033778028738361834818066927937780334717519925142720247947308759594490579745453203253252214991575071199553011188371525343584806583301483051618256288042800056712238804822028233090127626500279853167540269025072004787882118172285919974456085946305954807213745531080523290932139754091349761753002727998896366798057691989330776557066630976029942401850392561189377814293196964119075558698091648921755712750004353550695878119726564940225410191863405851652932659192339812646226258047528486164124221924258498527536250201864440983991681532325801239027433170004157302834843846489472691164778093396529963817614896793594731059466935168608430072590148061776468014212158711599577453549091408934374639492427341238452586169059243727630765343797017582852338533984276424858622498803997755077465387523993838688574903189876768352316937493543112940827017016118664361558920570813126468947903430123315768165120583433721980194222343068236014735404305913885951812127441784887927290202202832942933508796196272159940599142698441262653888339565715206351239954588823845374070270430321773123992726291107070562208930405644388736575809648665559421659246812662229242810998341245870779924446650112591816680289960025948063094464880845715290665082139778206152755644521372438126247579611445720423654076416371760243691697119182922751099049908363378796274782153898937790571079898325410163262926714431762387442013603427640593726722810000619425718772806607056549562656583654402481554252319335359831075925091386646533688304458652944240244181241461278800958128324385902554322188509669372449102521554438229254794112108432664424729855037151628029362469946768872154265767623014915625447181759430280795604048246389611473912440199550281782628852926534666115670676869994317156438956762152277126250798747416172364114451658482153940254558203675347347761569445291846971939814978601304981462300481984184969281363029300389667036245130062245454510090849447717525974265546800581046440293392876918195905929668268836775613922536061424073152744201158262561382036883502643110222625652034193245386450579977314673967242549645753595316201385589414278516118018500067664923288995388971642283871352531142146883351447940916498384560830928801390065130321093115082348657675051769173656590118216901138126425869129308117494302111978232230644581543091515493798241809292694901225815802671490849967163190350691695785947843362093672789062484236440503173235294376090510212835896933624091308778992017078112222893442345048723831493501501452419634515509172352334327944942568830675105513018164772931663895290317990217648822033129079342082746151227362719085887761456759815123197615291344367402647867671606295496822328234634319683270438901018409467013392894199078350542822143772703553333409247281277167123337944748656906339598045207729119091035556158024691138084799665731749666205671560485977427423197149699984506843153872064256587603181169084133817706639475988337829611859275845260724782102353562354757145246033326061605245138422772157272776497398395653342374636921236527537308826213777132108174099840157531453692544638531187926796048847949103511058205783008107500605454574948054701613244512497165304218041753212122646845356439931483768238875780938758520326808753213525690289144614698326358534742860312473614162764389088985940874026779572371288069023553404790316040847249352311644625720418878652722474748254095302792058087458122631068778714487586534758543478050822509733509366067407626711137275821697304755667430252150117136686345446077709647165618893036561139837040205025121993244967156218763899660577339675321382431318705969326129507043238547472811900460521943705529459103325321919534198466424785806926167971271234225621240569016619696299766422423040227186212046543547976597198136188485275562577337331424343569391503044382664427974084777020667959896506686382910473100606504798589472662781033837077493911888740462418343959051672434166891873803183385611096456754831949119653054760582069520597537377872799695599808113129969549065704515239906463748490332351313172006686313791825068691071649130744417746957422325226494978817531934833864141538616859890645581262511935652457295350667377283646402165452746663944318459742337144310536832507224850637843782481018646205715763218250621368485322551665213716821683266021054894550498775888759417225611700174416694084213912014017625671140599869234069598323361509718275598833878135330123925785764115895118619412808913923103122143521328944659066844104166289090881594983482886162614213379247506761179389018867329576496103014689500945823234932588518533026412820132652106736935963083400604162887837423100719365651370099284312699860074066865214429629597695295624424581205396539076490660250823998624968133989057371875776532224920684642912208171738475364705311892348308643067617627505864863953253923664790067220915168513660615304715286262002451516866558694092628875005123265558548758099288417203226526924089637646953663539882603350231873745523245505344812966326500081997175120389381025934087512353482511358338763859557623321441821851946554029361536577358708064904124818326570687620973418587109718909839032538389644146190020799091536794472978680687397990966855811369765271053068527617807044533843297602911153025354941106567345657966965663422279581251681494499176716416814058599860574296121068715065134929540235334146988887458549167518269054881199897801068136904875464456187814511656564392096144659300938884604500672426923088847655528562816914493513309732635612437410321785972197583237714575773202845438061804655779772283334521003211767023229217643365986554035820577972905823424558117670516872882952454879236418448952876522512885047808762567045808001281244037687401694921335807292739448150979914757719561879589276253048616366852791308189106438917028775981565341253670234200369487652133027268195356618641215204849101020771575204387478450001152267791808064624112034549940997916806987512513710719797069391359269883346477152031962116928538442698222293996963907795705644191509106496425346480059793092854378598681383356270194766738065661688635225690313986837737038764612214982990406838915649079373946475695943468852731045052971288818773442617122536818738539898350572123172919902288928229413092205107223993128477049604452273180148594804904313993265390115677850524744785620564670254170606207401055740039571353076277814116542262897935234798011390614854226600729563377495025990243220502390594363581141718605388209292196167399061829697521937169417610928928803997273146698253552570641999807891940830403734763234190413682967936732668121803241680268676373703999399272492141431673150862061139390679405715869113708304363278281895490019642377947298188389506403295869348226564169971745439720443409163068355369715895449065096925850049666278804813270762209324969756222629955568438223135878097365592550532741161001752591390021386204081923590453368102009180620874304711687159389689646273441608595762010678692321578625654758059240572306424613484610566667205918399108016628476466044936925616322928425989891320621814897816721742924375587684685729778480900985838734265415048236105366626422709864967420695819437374831271588731474387300293061453071789324915156933167202565106056148613832615863222084631338432378165573213577861496491507726584120908189878353461562278789186874485773979148571965347198375765928569616271631632592823124213756274446115934490219389991657895495450504316360397112447895656472094463956457064164381889822543784667301926735950015440675358697563574143738565779913307537079735095015056053637672574540113365235510359922347836349680421395946432269926413928424721803221161784018670785407067569333556715874180208590559894265160296895773519115753453038970965193391880049558320953279778571048458499424549716326963213143779131675310640407743543574585787080472921189659606398400986533594977345635345431684261692206115315497473610077283787237639991182126073891002302948475915950420425878831793364592938928437503485781401505118078077842727121938885562737285012545078087476725112198202270340554794539493502668324760298358641554075288254636742444488790653038527617455783888368060693361063974925887593290037217519623836714363154124207720144790060934505154732641243170402944126341273354182644142863260639355022675552733155429277463062157256439821848986238063328498829948529277894165897240228963833580078760433855862943779641861536415568346670855441481375514059680008055194429126049195118197956558502879606189990413080024108014094250952550077718370784902674280516925619086516570416080963123142968854353020000220980332078277289038359870292243790763939625409378082409127922446509105711422243512103957052171406408771145418480347012539359781594696977296851423250845920608193835868269457141277788560752074218032451585669721625409625534304791126095423567219742619484743040923435921120568870463212751133539651681382909308095444247431853441996207949047414716156957103690698877357466595463323449941767703728198478275397489800841195575433205543826701427717296225319329059497053547745196566575964039120871566108517557641230702857966243665889241194175922724816326482236032808706403235256194552744038828984372767795730902438417148104677860329638812152734475814995354072815052969907890262831591866826288156455976605527434519156707536494419499157283380508747943563612488983807689286463441738029765976547743029961135627599504152140536909955956867073799473700466359780182039208304261330179306261730325638668589518074745478005524449900105207146445726958355639437156874017134403268502479646089011607689937690098779021279237631188549391011512710992177317910437279347873502097190333814435062928112000635743096819968618004029168081485487293293508198152524878659849667860162199604716886432867059256867765362853473498270944555293388478897858942361441318382837361248726098497460335897480758870629988228246745807582418715307626836020088683195011060475254181388967542187006647609652030142214229986600866181045858046319390533221759539052948191579962623654294199222237191310758684997885617491800703877455409350908569760681902722351849333848989474327700397874431903639481267231553190536117428173288596668828691020580189595511815933077457030362137155160346562565387354566699927971091971132859655092378478593617654951351244609339659762168337807672061403204049730346681423340852120447164167039888453536548546763867380177914838060110467122970700095731374256320586156731100944645382336185622991874504959790557421290011339080731258938529113207560906042591444570243226016603313861046027027412750060137624464137882849998588529328619873708369981394279374517760365622012339937485302158836831218265436596460037625781304813084797077331092832933427815953385358920916135390679538120957263634657115414882372971825881788635067127422525681896182360006557242244416366513542047231855214682812494710738574176737902725136966810225780331006925148102018309355013375303794884496098942867684732940066172741466838725412873386464393601833932370175583452190577583697585430155032066547144320237046568025665918344946738816801419213315213050815290013567373907274893056398889822098195207677836121868647069789614950202996275555517619939425064266037375318954862761445829495259065139981915540889846548808135260356130989040921393176680937038100759348752900635211071768325982077273354672067535306727707165423541202301876274523946068609289513887817940696121016555148820322978284154987208366946194379913331516603441607358945377641694150003816711474924273561577233528569791008472088539777093702513258379338933239425526261406530897422997008781295715327715887002168137448837493646349028809118212781194349936975572375546627445036189167986230675375329891559137441701232614503137582888081840676078090276855738111384294076774588999328321084598151495072149085847347010155872838684643208104362736504299831465464593961285930443740528201085007780827243833627893296184662600353421209225091503814056943761716310862840814860959726008267695832995659757038301118508067248998704264932885222349757822176142531801105559246400285008008314722561191940823397555157203147344493965205757195995621028535341109347854955385155720167454106442901595527395755807779688508914747261394324266773913042135457385276276793496144256267447395623941670386721416114462710048608804413012781119699589541997774825451404818698808157540225593044163210932630579137856366049164196218222193356619042499099880190140265147738328361623555216619389816223359152983319403312781971173106181228645521693044958159672030617441463255947555346812011780998705655266607636640577927675428907321597937445110847142548202803553577553330847722944674408783138222635340308721858616673937498069107468097110956159063040016954099307900657841673692991325744650921877851208008098732127731522773794343804702397740110255298881190032714390107608335145571425505825995441741310012000466642722363665048834213429036810127266096493663725292019208092708860431877797799873922078398032075565821687439209522356978963624025795491869883154432552864381549076262421319701964889092093646377564086610121302469937959756399943923505142745836438428494030125202346097431997471834540732307802426203228431397292790017975212743076391095402321914501557580744772293677488247863792415739611274922245183187932939997309788277850837142401596043257202668595065491796368606058879941708066522775020014899532773104414961930880840714498740210224100493803078899674136175240529369001755446078540158381875559142190632385263807921854796226518060331577754843461332975803604846517439488739847675528907354041676104934308863194591993590292373557143089910445951100192151605946719059201540634742539228900072823171923870809593838595532082572901150332692063501716544004680433100104380085910690431937731630540526858992451189498894608259977036536993746888992992870207235331525599411878953342753106902330731489450683325152394612774255805124938500755886868662837698548194264947137084073794100663140388457625794858843539827517575592977073725571100653416938701302549730030898724278188182705629104857738462010931317149802677527349423283986987975104204344893975217539385331860551727327971882567609055051396033755571905413073342497215563927226186569339117878603934996755448630570523315750207780724815874932755677943176353019809219986158661707218928879185877145008852606652489303832954066659210330659004024135791091286478613534902730187189024904822714311432814632265860523093544198173205262311355321828867242115910764140461478696723337424880238927295168641061415219699435384563535203679413984647748301930471467459304695157048634758267897654447062932974832633043072644839018789474144062710581212804796002604297785025223746546251444273431568870494732647095466544370267342908661205328024871389868828087983494391021736990092310244381495874798187685091011139447941717596014960376784062810158985417650193692781958375043075964142370228385782449368678664210400781934859127503471935983144696434801026691874508773760727541563764411933796661638823288278620417395126773568407690651031037293206261923420935820435010710903021502596657141649252958907861753517349557836379017253092578627323916275132673868517947643676541555307877804481581311096791588578008212086294482732397601033246752058322122805104801768918032739810733718273459432292848036745600909525954440245032612729191932901387643744579682254033853398418391978504736844001178698016024880728815779052782664374242992770777845392422457004499571361762472197075422414722622990862218063552525577995127296504007209879749967853818587420517347390971772791199321712967502782169024374955381292224743457585306502678401492302978488527579705105243932820323527809633448969360569616975443588376086202033464659405864552996647268957120572217397395360554061012793632568389523521600180119980505308226563956053759604357663604113986250383604510346296278416062891946462275535354339388231978480731635983306319087405301602250532133176722415981130690323042257547725377114954398071840647267775252245323225934416437980906622475044357984367642876528330029530189202946971131942832769535641160553536437050944509808426123390491793992238132429645888816547838545285012691974760333948220955311815136801221440025229935366439555773233119221233871734724394891298018716975602657615281040038178685613407455755316917099149418707373405400998500072160278126619794540335011572616778933214763212890404755828534748727923977233956730411356357880261508558976416000468972330470732348387793883137857830681035775913141515196536124024286942153672497961170741044279452867235677389374261342475186729365548111247250287907951791639089802084146510390022309746365346287184886692923760380302538430272483553157144478568778643232741052357857999855115235793688002299531324306551791874634201821119848855120120450396475250317686306480863497270511360466551718477269768627721058597390274066673257544998241730786235225028460425798906433852197587526164415798740901061586106943346276874917594857070399448547987822484745482129826057181565075513709789856010983165589031704182083680789911748476462485137135784858532573997024793532299678399460711146218796032740450552015417426472532451027071711495819930536110636045624686399213296237378973938269908269476194237323149174213482430840533916959713904951532504763973836445413014731492741052269028134519644467962445239294180088451480094316322018426059929353216202327989996714726620585727755318882394052383922190479136250902712655180709863447712118149153672942276368351729924626979350807158248979050557765793307851684827623233637715526243883436131495496098089994892091011166834557049512041593946406388354514371552789455595190684867767566977004647007408580065887533760242223750960849595339582024229417150408659285172289971213197066807961956137891422196493562955640404393133536485444808529388830399857073054123772081134087856313625121592669374182663374652426223614019095866742758720758239213276213903365476702909347995825193116597949572011697113117246971553132016011895454246431250907874939347654154846498033813271878072490770747606713769357484742996848439275878159542167622870903678567912162652800381105749694353271542303686347648256680124099273056833792622173744449974854734605772526464587978007468015820480094367009450893765771883362641458132655508853918314174085293124660403928008906381788117922414330553445942271246572512529982549143630365860250846721885298069396135445858924351673743268434840529622185708061384966814191280737156808754003150516310467056384735936825479439798878000980741895741494569738244089574486602136136597799798046784104307076953951318018296306412963070359472023274225066364848581340458269625019431454098407853251619353784523507747554820805178044813324520855095525715083355330660884410739123511373875522474868632821440142899823270172392279373540051689702111987819232815267981467627184969789710540232635303959376494722737678565767352742910098163467216743242107760502944022583763823150721036432339832436480848096745167298660885986779170418675612197201448129439335436149888499026371094411438039570410121124628678475101220096713263979039029910024715971301265894759147675893775163729807985991700762362485162600033568871370072560643916392469164228511488687920662720801093956590597906842816732363402860806793303241385899186169238169227861039192769103941409580435815594388903960703089070016417605462671339141685009323802942498048489966296755693125290095959086473147339784937630217577305217040453298774913323517019051725739569682897813322427892163805629187727697698075121487758147765491287503349944615574526903929485508508277875911742733300207922055201562839378040221073785935490757760288195957825391983903833125644640979748524754628722097366338787124945332239760421365912995324453983435689366563570191348136425400229662982034675542289129337631174427895190587108193991794620606197532853321803663574596558870094569774272092853484439954462636830402909648876782878824956793256647635359535912998343917001821914289028334430573560913308915344883786887093427697493531332489960214895147318625551035546994503382267997147627631537795056021431179379546103882884112885460159412320269907519363338622738383875307323204093751761596008944026902836972789203453833981658057737959711518880923152296875752196266398014111766966168262173311570908691421899156199967839352562369953481546551054202483683010513761874109734291153448460642855301591527222451492494236529636136866100406343167005888314494771565036900110309962639538054831153339282269848436905759274136389124751991615802787850786883760955916300876229871415085124256110246006953522616029100483065703439747626118535073206221931184908722779309863933060322823953452220583273989171223786631389246098021275546299458617472929973675911754222497972791577817298614489398710234581982102296376448522597298600468382363889292350484196130154183520436052075257103041912083744591355562143011000908750577047781992188011731892042090754106982758872805927003002943515162008229520720165605440858120622092458576086983450411702364508152642477311812734470341915088148633709958761378098855635855828492513929817276610951960686047698159472534300768450779939597952669401400771581779942808160137282330408853748988066335181933174346443406499668879260398990540303140521856812781712483123670325580771578721263775122551550478588081508766682646811227212961700196278768848372044308328034179946982956536377153852716553866992694960437886130961610241834798549747783063991262638166623253583048965520948244667841658757533644462299171226880315296282752278891151226846596051303585307545460708695057766804605833959679690307845886956038705284630221195005610917183907644032772678969484614617390307752774229968192455395489741471499590555215175364469098710622678332167426144271709583786524215855281033970886825368444104252720783811270405699067325650835918105481906601709194930366444548704459301726222083097246084003036588249558243060518201800532123747433354886433216340175235692904644018679270767162012802338372887722491351445809981380549607227680865345222490765852736126343905983111761248582921877146621497169955794980051001132768410032786743790375823273610926511306478911345369925378470567058073695952411850343522668328334389365082049721537904179515011444723446812568207430436662614650446763082107990791686191747463197547097651690122667413580456247344557931399751781600362252091683142606527335183689226367453671508957043115997306410177688802204647508195308854527188480740662679756664722308590762961250807071552694556812355994163914714236673639837667497000296467480434759556288583153310371852186819562901571658049623167394365872464920403775452117348537229606840573862599404310289583723881538556784449950366448397025527393377491717725903476975722864295001283795097399232938542984795298669670906402911301556360881669629593408340622859274743404491725894054990134268524042096320407966771681988706060363768197063743231230792043444486859174043187594034600022718009381402297751662708222587493905870267947624679330505923216797011069524556203245215428815289129993735383985376346948874014942002735431553527830522334568538458791244033022910425037547613747824765074150938277737794136622669230101683460475338453757982798232329024237148986126245157106492015674332996417861584964403429088042812656885863697042096275973877581738121216821667339966255101689760812921678720372769877314799148078890503769730571510278125520161256145329162262133802006076477163033028429844042226750541470563099785987018447612135464575594915696312403513411408662881044856545201085191448195655480400256188070781154040189705998020390954507656643404337629525523781854022556117339673005332888603277682092263371531923074708682249136398665859148149120960863766148692577158450915243061857320235143207168796142315904613178661856028172039475671885051218961291693459225559001000968448902884516059247010709177420726286115474146724909047847779680857919590178399489677146322482666943724782816670931396636780028261153784181378658122132855399146737086347800143285885690768263357202626958122383132890793157375604486844998806658489992618932631898503198663668571052708536959657959838837728860736319543843037159947980591492863594267047678111360815849133560813847520869710242375753491349049104363858046356006703958218693735212027321076311170333971297802166719559633082116556137243668139508077210739281717557248444400770889979161206013177956479547071188427943077947986740187106173982476955667919233889793661390845572270708838693130781135240598407802127920527231592178594429900085850133687434155746752120410726765863821131413973592009494266623262467411593219072033300675788248907718660372111309452476024539323268737797863537598054524104208713787960015679399237217697303795798793443614322235519617743949820848966146004219899660098212841849651883862694971183535583039648655651757019056488208949145917925609412417546342856165670841714843683199353372809639452893386417914674347906707663859847812844563994060646651068713686424266804836484147038872211193267391713461374335491692021045040324438090875346783313395935676737798232779553231960757013276103064178336951792499709456863332787015407647283380278179183222704002009447014610178462665167727977877556739031567845898300450002629999503000378443770998799433815354495574391485267680423683978869307493133606073028413367466937289976607486394051777484069220697012005793689979070414443876603114892753119301358594196113341071571986919372203448399739378065028122838242450525787201366191242179795020804250365861172736037195389499545641345644552631305820335839757630464324604152545817209469828023563243640171494862165976649523856065113140180966394791262791017694580830322292235412476340608890591841490842125005804633186857827778188544697362176485105353201278622014236682715488802039992467788647724974979711660974198651686182682833326892870680176179543768885907517739469271679751507137795481699065238552970108039033847179531258518192820392130326781480679649868519455775024392314084762793127057430970834952493884283007657177916794280852571783188315220375074229490084627508889823940979805609127505028439932408093696043527859463655774807378891315463809249577676501427378553441707747191569944899470573622961837161877691839658654762944810483957093342977246596394576391654248076766533667405275067670767659882202998122480696053328987259984934639809279392892227879817303342094688935968605214582162940638188749452289159384342985032004605254247281781372642588044804189377303593550854898813997352602422083998184615396711836980767055470503508988333854321388958753664338783049639599117833548550713827508623093676613475494990466141084960316113683991814451855878572028263464534079342501589512391944964596678051060721944152527853149030075668965551375906404676579059621453862826243849351315463725671174889169746237102040478886658331565967043501572452835602413625523320676890043965075874878578341728686425040109576108833419626984576238051381202370889045956435541210380772219011531375100164439003699678954763352179287119135690889050315984289230803993836592933831333474558647030382508196850426785936375131288632307811009920206591179994018453287185246304178754673722908539545911243821970821322954108592430535593238865360643790840217534320609321838559992379233195072503989144941883893699838345866982366731360180522407728805039954787393218376272410488544851867947477748087369900644782888113450139119213036937804368199768423694957223564020011914799238266419708377952748684032234604813498637136652224539793015127772722345967546898849704725984541829379322541347771193497123286040516939120252253128526488795159969849642603615148236106899260619308411027405492925650249201805828968279590144481920848139949388621567222259694948561664791331853790981919105806963496420496802349178082174069314271440611206453391354424362523234265527030619748861651054683268263063155971233965696048888281346045328698787859539421299446378326801409914056548763574854741869795981282384690861421456838572308295651286207138868234255073386468387028755624074629346762147903776926640133346753617868052292871377068137427765119279147538184137431893632561898425950168663424901645408235018330599477378413875226355405208853643585519855349270988666979370891243796941538983928816792684373252601310921366837568299523505763079375837645417518432097376493447683489928834438271072222747488202215411029354422792185524604432405347830329956079948145295711453558725655787312906275597160475849047778742947862232232492910574622675568754295686560084648207328421249489831887010190418727652437208864119488519409469288518030184851534687927529429188190542922085754016195720533289613718728115044101911346409602033111868187711831953577610797923718771679000876727517123802080979135704277414973609226831143560576621319571048000756741949695574394795496953790093999990840434225025140348537578098387427168070654614945176697470090020098305915465299792065275027919592985747830319040877254387524923935282808349919308879813420693638998594646526189567893324181995283370882245590435301154692468701917681378791561268526948857656469713567315856043870370690443310957786922175507531962971479794796674724360883070274507365510196309946995135987243588486763858699749294496659374732550886786625722992535012112960175686906773238956011506621521168869391488016690437008812832571840723450728505110930992159732877233841999789412150316807027042751972130612059666969214207179347711761118120828715821238716794798146086324727794791998074334226081295863165296324835568105491588679674857318859527860504427044659389707390968052840298506298308662398014045017833016587876504152554884923754578203702168627148996488656933224422103440770122158892478704151366500309638594230528618991811519404943235243765268152427614154508267463702840221624301212322522382907077848759660106848866057327298165445747158115858475370251160632139271800818516170340249555588977499867295504177497241104870859730725527964507205253331715819411507403109603120536648132310758903566813539071334055510494126350565127507438759164095367609031191475509536721558549231143092330693543283090011803633227948025326601680799221141860042276548509781454293527915134130982535685754247574868766126842459903988894910736302625680669525277541943820789686305046418477215929093631275770821233820093357699610540014442157022932283902032454512115083141909482683788690098571975331065977845571196983854025896409129758202323809674314065541071779762148206600603723287750923448097104115030072436037838315756873763358175465349993607586165593468633857754132221279839768122575562637503108381959939553992848595837358067224044471635180153824191368264165610011177414554753238437967178325679163847622964008429889193021627671276169662582605872977338222963967855583995463911630179325172432684976006355692478576250349432502882986016078242144938402780575896792830534145813993634117905348937961784478334670570220681128095620571911508864161672526064635299236996281114504452105291007441706893930573387498138372706097805588752465620602170301702331128183291223047474128019665083168421162399620888599190859419986588252621076034699365272557818916471027444584394945611596922822769660827157239615990900620660623367728828962451661544512516297938267981789754424141235382840745094598883282737742334592924576282896188499864964698454915282555949784271924808429875453657261432391983451116836306213965725393202022836223898771099721699712159507412111669578236767662019597749871577824651534104845357293942018615218235772067602830409587894758066674950989526876804090644614720921965154314625137756549347433415446487875536488477923469939443703217219561835448481003951593475845981996812634354748275624005537884358208667815155151852870905553501934762292715167032543346333153437276465068364394096235602872778004793599598170411871551358220568362682243505066039246535844519816958528474414028273234005765193292144328136670311271856419123220414878093510998392570763109003951901050644177864480010127284001750821031467428245957185762324473088060371467744408449169044647957667788277945124429340633091424673862899688903618420332658961907826512991498762944149674781791896141540802286060430465399521398026256043519092812152852622195355944670772550291271450912622422258116562707219304315310421422974639539538332539888068978930234297831478537083099123042866875320796627903660631080481130885805000603744216870296845514915705664113258516327232886786504487112622350629241424443598961006878287684754905021623906139110165343113926117089023667929991006579881853182326941870349121425730191521347210842079451692246164949759613812290713024893916659601819433170183343477635181324627820188637652192552631528700999830826288181479565981430142116842299925240742553723561550051025190748431975345359965779191624357061330280753400505195196295726689876951541833792129180561662833709937825570943353122175346460934655349339329099443131495166552086049654550483966966570847668207374109781407046411213542160225629847756981718824418057021205840996366888653400115813304415457655613591474361559333142575449394634144721429114694339985611805031914523796153770549510077701225572691652511233455831339712663439904347169879444525882284202884906419044089500630200918747652626577850358394598758594814498584368924791189130977606518103603950257675177218216736360771706160536134630937960526830771019011810070900999378395912494989098177322274705429327277176294205986276837109112370107130383144147827168054285576859920697465290032380928424798920528004129435755190671681352843037407469994326641562071694770084692561244827602667733032496781189846483907003261580798373021428461171420934950087623088871668313504978095965446278561090678248711090352771350307723824869030244076801836509721313047570689963049648490483827838431826641892224028314219071673354596384137776950863591355521730507003858666302480673387454384139590027556990792106969469714653964816323178147692561515116231254779931416684011652306300596142270254319082883889028359036923573882543688503911516809654104258554876516505531113010609733685353152180197316234976332233683159810639744319228561816478723751725799685360689397072236307650208028671993174077173667949075915319615421740423466205426877401962398633091212780387010053214607956454088031284214409721225291116556840756220782672239571090540533457102489735098060788107918563089832915012791940681373287441757824267788295844001426645609215400425348276761355296739776530191073971287403917558969008000524603380089819964053337200051032262307200878928587476872915861021342855902779720226029641850720788708836974728571674703340383221057888334559227972027591247405297944028956520033339194487277562120331656447985644524852737878489092998840318560479130717801489981016172639751322558354215553768954012556742071077989720799117020725539816423371765669159020472075151362960591981733163477584625469188907028777317405274824328063060237928775607852745916904723280115832131503704880637397362137946226322674437864091718401398887477873026102261098249286957537818486860240969183406102678746232838372342523321191693790859455021398766833318422052279227598112905372857663970218684184207875217859346630060161179683519740592512268041379041374363485123476768322972751709670325801162494134749309985528087551232745115201130314523235957729518559634427948859243967550410693163939753653049485001498987409842029086872810487121924916209072684408423534354585181793834475667720871293393398756979693027440686250304150519431960705329637103504351525881542991475075429622181134748397252364157409362772018823922347696338125144939905507237640862560908148762130934968411604261008431518408157128282654087282007704455805691855306432878671868938928908892643233488667194119384183044314933775974578003056232643858026536551082950511799683242294495716394553223737234594210875741872582753671657545587379048896788297299014015913693539531939701079375114138286237019759260818217492865955410808241409827528192038097854368604283868792251057350706668797046037611954846579363249955025687674720210855641471983663732573114536684865976681160118656334027948035464753917078488248181192568733514137108047546445267057713373414712474826019019387005830196293450312440585888644177350789995322204532021378767991766314335042659860372050497575902120865908308269587907903877212737333535306791383091829662934544197557578893510242655382134290249600982338175956897955988458039046932282582584112451640262937792942877242666458590721290571590683565381319301594333584570718737842473132193037081729564126909424983246846490200159201414945091243226292894052689238253820826090152509281928370128233461921425317297476850896634056774045819082666625504141901108009820768286735344302745121790259814895763076572868083516084071356243633083176698905137779019592378414766030998442823009019050409925585011638208616436899607248917958713372465972293664411775126127906909017231514717708237917863398244162700449278207371734646513612061849655726921437400223480121711529358476760241352449727492628261875885377342982123508862209422820321569963889175103818148292945548040859603471796816604939865398639804593319737332442053581552244193757131595746228205084050340737759748116162169490693308629821170532616320692263156178990056941183240661268558269279376334021162201337000684369271395062965542745938936704095620537030854086050191643239082441723154771262033992609724368005981592804064900463214910884243006699491096565032088792480115309017259355541883365182621442428240098358127839852943085471692963219991052441828637066199069551101650112030728771908738942692691532839464581873699544232387527416615717286062497875695195001262836827666487650922468321211821735369294726360537666261378356735288769797484103377107313547043471946488908808333847577987494846430487838483032869079184168419247875864178845281337051267820141257491899491103569585850489040369956667081480291729953976081721695168860875832936823744251357359765607926745781537407013557746518031795159578991561726338427550017768942502135067102937906782220801913805852457306822076748369664072957440320897277868474953581533651295538208179575756404592531435644184843788056525781335394014743781572109069756930266797463661304971288438985386817946674549192129335410059238904426320220740459339558431342919309028638818700969931795666829073067279669689055046908570384005570201114404436783843061793320681429207672433610723690145292577835916303015133134529953935598395135977460193994319569791063197338290086042245838769679937099406618479673157794325986173983219181085113286158167827282563858237239395543172164902537575527807714582450456832098065901492082255395283492045560173961326243020901474380011795469344630777932988041719232236414476479705860596027786206238556954798321268974535782507600572698439899875580830303028217824951078969519945210477985538930638544927905007520565854004604218934508393088547794995450948701194414500012339892705241323132426159818526424544305945082859047681725850020919375430813108825428179332290352605739131360188692605315058464947078850337867700247866659354581164887805238659515978284448436602326662232356666142810200663351563455876785538180399826224834791672456704927137033793953462002066447096356070292623402280797588531252772691528772965218466220940750822332635035704091248875908721575689264910735434385592407378290423811015586629449153536460083475126972970947550849675168074827169987280899591142039768363704627903296365875774830104854030909743323117068108813249229322506847642092368876141645163395226427992505201846349965473633283638029284806019943612805478158768054083650405857293214371283810572064306282421751180452589420898299160092704650393372512205523179386114995098763164650700553980560133757081330980886059772167427433961505494290421134860573366908865147798364102536429697963262348862694390111321014799718271629882345328848201975790234393634916228444043135213442202663687628486067470146617548893223326008708420530440218219718614111949117685381370192085288121633997690449471180014340556044667590126741760285057855077792319585898395570257251136885536187344188613764281569011094290977551064918932984599502254334019534976294959280758499020464104303618048055284659896672581235409795023069021773691193055266957305330452102805753991571252462734549227510985275436080964544266833909479039246517990972580513352892803801917060560046442029346448396371576179599764038999381515068911656760584102104109472213735092365754556406426175323418968470052027019872136453307633876513714341439281853058107864024330702096341159454215567979296527356164333363748973428204518379930955689890760732462130714155751225791208355344299517846578973719831994270576229495789753016148625121337978342809318112016980206619731679826769276754457643579704729621513149402422918046294610652158150456893959558595805205008932428284315475175647273386225339102736328235680922746639048322402370649970820201599601758543314199383458167807372123988216425959285270841354942372795889289477922808783758715419699175140625803158910544324591839885041001184259389635856266737487185643010842152522899610367166160731780581853674255301688536192193857386129988545747241507861314489325785241461966104063621851302946240617672425385099405761345493231904200234369889940748397227118408320564227344130621739730334233592868493981363889687300875819796338765966992236767777025379059169819358446063728131958901816071540527967637112514789825692951449963715016424077028089602481412192479771552453245196578779266330518245804073493457226856494556191288625171804639664644333479149197114419915450058585286772430363091486667372142284678212273060288704286876614026454976469028161704524338190333704645829472210896383059411793086424428725659609739029994437976660903970861035310611944239436331431451840607470634546952726308003002182268881851919025038520954188597854599380563576921396295866292396118345594324557530138022708387488930642242047092524516192269659541253814211916254122072106127304004274419071307929536681956667085273496820186631490183366920513441996485228583974530923342586039240934455339853200854651736310543000602090287024060654994153294514675204673967801926899869239851546433535561884439802585678213684418255052087829399668086470815349898224370281923538157782855597574834071768041706610504219916605999784094770247588579907473024379558142237283767987663875336361814727433479063811635903711539348885110924588031251695320729450822525750190240837194015857398511046907575167270334962110256466386115629374850644047683438265538126091150275499937499801451266121437891528152854490206711244852277237839287968471260766861572606978693788704143542471817405303535213682508563882484763433968376599214139431100937404993008662335984063684464937104652797333697614564473515960314400994346720592375789125342116300727970601060041477760187102013943683762696323875931560654432127444839024632786313721787837472391336372701013336419043129305840040637167803166504860385466976483113741607180659016932378967817662231635368806953431067077304006060053689844685965283879729696341296089711126236819829427559708280382388935107772580167359480800261877922546567820602996838055690187730624263162240351442855583000245132858040057251345935550951634208827400229221122437216253454304797888746480396621427557880356747838431858842802645111247662094173512935128894776858751299448704090706398072293125439190869725001969426856974770770761877901965106445157846402036280906325395911722218833884394375532339923406826743370636065681057088645501763387029053560517709893893012974399783828767904193594161429598001840408124333922433442594804014310102632653749541083576750784342172691037193278039580513969555922781646068623625197505954743375563621965888382892088635964299990372417141437851294151386084757306301579495078284040349473613267999971019296442134861198100364307152665589877677337567505877237906926478447892956296620863965725597492279738632099303006513863807920274680974362073544164276875711076787595667795818233852390180409380300703622968340290592311856815710923067349790123215445158283569451908073115728198380369522890918961689640022044211716187375134453500539797808308574827480209429644602480969803187982408153140684988157626462610260127669228210765719020209099844605457821988755297757792805437626364207458226105968732179700086123861873493115852327173759598036793644121622085253155095865911622110915386954035363885007215906587004834433850753756434849513727102313250635885112347258785334375010369152209261927994430146344645595368408909358942755039698467169357280007620537032722320376102406288976896387694938564544086458541779102215116129134462902994295619976745322952064333197249448908348303724257568707481557785639823026981000693202211359251704810126194590622812109827135240719938520293137070426907579478259275583477934967624233310983376833460658609439508910499812940089274168133329282737362484326253790880727679340196923763661171844163365231643648365520553805385675804320707534233834592767993419637869868615929577966371810574989588659126846097265529988028759473926419404563821859682400492054451391609418338321827990081097474148605668868355553596356859671278546803394513654000237325052997535292060482563566622664921947858437866786859477362580932046811402915547573835680864625950695357195105575374362390983411932434096610042539359351179302724779778104149322855224036919815367212108471707934051583291874597438844304184004124747860938688924868658936831846504591446987546879297361152839771696620278587495634438963030956315203832742368290499570528778594973244229358667178892725064022813421219636928761101632975328552681733201139876437508010341299339323535702450374673062938487906655522090533952090144902786934140902210290465259566074785799775057974027591535432898878532843228735059743108326032344400466898385822835393199992740091202921430435321611273094571224850654648884120776056958387605147016098891412516764188240909837148649690826758136655260927588976137565530520157909832172671201088075930181650032099773736336638698170541859912567342415933730695868936151725004614941184504712834286343348294895390065998249181106889543318591685596310734522585879908307240337650401980884032752540743805021576682758865222650350901658068335791197248632242571571232306415383419061689054984085026872493210678499853242266319407188114425865924027247727974623705823827643240108606673806354823800703484889239322242696909104810499096219750723193037453709161507122306544137688992397361651423557031512388868776750030403685640444769251755772250549870964903429011612269163562041020770907402515058057058507509401803190592907565825889958024756418603134181993695526754110422405717853353284290048553252558110681713102914728219489464152854601300447243312848082167470526989805190033382076913768348111023520330055334911502813685077930704217309648013042966227286505406865532463436959964570572238601363706726896724097409421271575520388809833700560247986487364487505250357332300450694257370460522967655974031409873102783631862039091351686130870230333645214790000794429767559071210652139654254593964087229093481666313732851494742750169493049531648702904464204878903197601417151352554686264675993575767004005543981805114867419292989599773124677863762843400639476305010753837246104064315052876449866166097086279191771703694923071072095513400406680444492306695908056567645344487336645831288348264098356182701041143578002050395067345604948192450722773407786905279976153260413054103599491039263422142196946003249981219834842971132051774567280151438777184933935123517490122989623841071777490006569521033450744416832451780599059576387049084497579699843602776324812622683909266860026331084922362065034705799342933683123854286363359023951292885616637540908031108546830139386616237829929641929359271730152340144298903366682587351177907438160465656987098336959637629716563478551709029341023429058717309200414681855785422719750324014006328701426410680431093432233652315044812063495328637404391772899418536931042728367857051130594176120119320505775539062878613717929407716566903094276369907155044008707507217958813780011407674591185726443793663073152202741603032727518104334079355398789042439365929494049307122907759892902577879389808357032104880659916093467441584444525776233539208790140855482406284659060683613773632706806065918015377405681261555677440639545426112213890110936499000416267423179302060921781074390710971116934571675891853276872150199820960804572789047663912692666114938298554411578241713085978185267993408899061307196376426688113372566054282298195173408339400803983006408887997223955413769065400676310436950728305658374437267742952115782653041284898278984331818880310641358086122842802237442875754979483802166015748245949796835510481506580765041355315853302069724565876804882274950314248446403768936476176380094844976363490059147634781041164445332897459324835700205546339506037652126187393164705264978497165139650094210756230977685995456016271416562468214093960314057423769497446915690558815071970678849012562857918168802589728979997429883318321097032792080613609605230327348431918600915025003263483286747439933262863058421940507961882106693469966504280540859463035447434312210352105850453004222842017771455724372381944430944302368183946759377654322453266725795936435755976051555374582450068026723691348756933901620803658202781573351743217730963388888932299527288474286933419947760820481117209100395925926968277572082074630234574173241823719111591973903101401584312639451869481976807750283785986701559760299441904629373418397162823401804775905175737065452859185814830532708045768872014412397874853699090218293594834375820062266747352319783566414161392327230849554245706406567254415499778842574921125064961576347304888804843634622171742613746766380408722621081720926590762217578570280877835530039252939065378208298636291562859964478761811179888686568615886223404504023146905533669272263560441954335629105736740131235619873309551791754383220418369103969131078669672880762661811315065431999872286134974556561773411101342191464944700054019895484294132088189301315835013730727670484331959673951739494117283554400330519336783396826046996938421568175826049168035239046804222214506421592335797669882416125457330447007900547905349207167581792119386110599259942512464280301607796067229450748240362693270186256243077277082446764766571071443785894019638628815543437151211596206899288097449560906911856935553644061504100991544411505888430341723011102338940961426662017285978243644373289972115305280836498151474628893276875242796497165589407236789959203636259665545731397077893999477778538853201860293921287380459605032361695880792742793901616060372241916817174883003503995677672114448574306173079577474832819208627209191043350317930647731087350741329920665597552750580577674212046446453356210996731051553636684521243395615383296076720956916120255218122915167767079536468155199327524665176675900600107752259289030352484215625076879125818630754736841919895262622769012961640264985742260499019301165520155222050497115561401982166951734618669074197820275504434033462447816601899573417437128109829380747820969370581044846288308666534965833584684286610653179362196705030861368599333250726985681855136604728264260889302593221624277199887245480322399407230041640982934583379818021196238613750358804252795358295915699813003923816432501771411408286212508736462302393968396594689254330722344937247926891079009967134861475825243216319340379902567088391714312027326072519333341783962284759347044420986317044629854383593645320754535858353839343881623917942627757686108258696205582891391987872746209259310391816239664011236713140239896453463235588970818932460414267043942628122503962011359678834227709035243869431641267443246781131457139227894195268738212774508852538273873263952454350192101241786819659125029975909051405336611717480505261729617284760432541190278891923297427544507006093138035438816657884284640843110368721453128760003659379159867496296482627618559352932788161367312074691499588577913330591154510640387463884053520363909965802865691289991352862666860844024312189748483692771632739500300535408625838547618998035045171892193806282682071957685552656781506027231459780471238318685439575171148154138520052707649649817705741795220277914820266600917232973574449099112838091216309215785483182089989872182541661435738608162310606243240022842725576140959286403225009185752335402520948447086814459961507703825930099355621991052447336875301506231161256072175842061273732053315109531996446082977009653732453048511262714032547354529845772595233958295457001937421416780228635754693261090135843654085993874015565559762829602190806934336198301366780188407166280043283845843356203870088475512177592186226450917108295456350573311467302960061857142096501395633015523904599051814396749129538187275249416816117760677094864016600156604069685590682925800372407982859834322321714424275829915799180367445742747294715570091827906500944479876501711016594027272386800788418914825243132433161269515378643527628068954560562905410568746237826379248978408774037396046500862383805173998763116095352779817145017499232441356369513153216001974445581374123970594907949167638074671275263680246098493903409828389570761711409348146239326199747587913188539714047884077440970787443437378689504461360479485462851993243023069905175133891387748813519252969573671832770310429631479222235340458057958811023356358926292143396418492185400627374624838234057718976904992408882100368842073377071756828708458875358157331334522055678198156431131839024901436887936523301226765761580738768989757738798428995567600510322814205718005851105750156079441801945211157355662300811417662359712057294867141565910360406746986740879459374969341994614306567435293185826495776133794821752160811873763379234991845938135780883936530693442030296631570180234622290172640467845859433769261461976867022527454039715254687334154609046056962286497943548491535954305054868506936795479977105897822104786045576949018993123231617720882512449831264998045236723267252573630424840786799212494380157337186345507735989900075896568986051254212796668416917324367427969775259836382330225529311075533173461322769316098149674084412491763468217861095902532607683769824254670323718359513574979680426600217765650442210016068060624598679590771366493744718722426923892123905667039887784410095757591314546407646117063725382998476151005386821464376842405354103859143473559640771893242568618820731094521694171373752333057952783168783393477100763371050131090006924812864784081141013036611153387537670595444956319096268903570950642029411840761712195603845519916848404150658580269242621662886743436478336203045525700730809724159142997929071586327064146073790815663743571403872986044458786199016283190986910310742906674541776681773003964335969345191030552978474145795597834106555164631679986840878498641348055271358045723591156179643515275882013283205656718162222559602727519492873320961980663143420367614558167208466394854412798886761950501452437423364286895340884669146469401195870828255653421009417809993101753556703599588396452216495713851771012162807238793141504018162688013267706068648891388902032618340947238810370128732271585340094885611870923868916932761267477320397372620370101328845009656575025715988010684905667815334517270419591172050040030834294377768572846335426271916965028565546800686100633925426070851787254317820982670119634220596907806517230155197517770929477259075501514591579307774661432698515151087159982405266527742050342787503240782703543693932757792956247243450298956311540645939942786328330703037237522089393669486391666511451507619345486969973791760861311654961778807584355605365266635040498508557772880496929737633971306639787965977336877965219021466919379872287774355867290881519578758795627246651096182078411504327967296078988149106269128855996048805646298155158226069377986029977566690257973789197890645450513388436599472067242349513790751304012450968483090201272918024780975600970801269910275549159704709403526059782075541769102197223657335049408616087286602337455179615615255659754724035202933742228861020174873957656865564223079077975300147331770888541542579180726347572787556471935721349105328699348156406904401274999641235370405401932594298225936227424283423360595328987655105878908601026656688087864720572779011587784376098632535896630458057029392562746280873026405763697720286623307690652226939824726118399289839192363450734042832340566485066723982604121636119944554537305816460158704460617211745809581886799445396350451948809944598254669415584149644369497817821338402903340625504428292255583581554720789000408019830278579342948846830715467683793839571063363101406438881294251779223518959521649514582295437825128031952144699785045534690401843111166721049039698932554580343726640738599338495598716423997232007987681849490555306485295167438083810670078332523203045366302223690591156744607060509664738153452402898617071162714696860784893731345440647347085743240346797698983374120195646399472924715485414628826349030410504507344774287681527851010152694271596529002309117668109815151126079080798774759222203587835089759076013477512074151821291720505066468755601451436137343870248951999039575599702804710874637256033469356493096392912107082109239666487031786246556397937647554291674676489055393022111603860298469334524141006266257048022798244077142040952333192599436064957028216898782221500874588068678090003130489771544984618150554613132147677184200145753351021525233700266699133680950686488147083504846215783153958469209297492239848283311172340223921565399417611244721122049700955965727652528282047382584725680161071925225758640551291607129581925794939388824790782490443412878325814780311984093377964506089984806313898674947989526973502188194198312577133329104925777569201959623817119132299977418451539794362122113657345038466448056152836103283616987846719261633681325204759412764502387384150501476541595157416534669326024677947936605703238587422999370101374521157724751246120778255266508695501379079368238534726197800381390024996222178873778562872642965108300568604257655917641871109118325438001010387866750469693570961077612458455955774638013769082516652840951052091064054179519074527285878888699660889371510881310436568791921054328432767196988403586325380791119306423368392919356997726711711357399107902079236274267673852012234487017043393950545533081226096442434985523718970313585796908958529454896973099289873645570360946091758026556570618557533548120187846129539822791899368873522404845269021635729040373561514771161178368121066119200571712342851956580688463006885614162302227829081584074735079886623760950533725648439572459428685531798124273856197270634477457909168864923519855908584511350648117538757384965648443621489145268973337193062639033651471736894327982560986413717284216267587662316555546388212096735436092240061289818207079882125885053016504506901794921143336652413443539500441768502461517953932544522169226852150894248462229802983305377138832268719248593571186619186164273287343415611828719172310241645021132321437152618507667223973072998197478405139524430047291251287145409584946209211019991880080023013572671550125000586958949801769192465219752977874218277911875405336772280881609268332133069823098026741233920163300199040531272549894413827730175071133849399764071782227799798944319650089518306768412145423181071667715656259135782032200888747579963979027149567938664808085768880867245624296652896977961565205421976664575458754339532551078824521836281953366573142015873776345174586887197107600619908256123727549289048823829005874915338788397368818763320481156887456646470732896813548303176991953240017582176951381284041830860382407825510823925176088174256861874394735757563374918962109716172905207419574730821756240075128593414741024748359761715718774418167614674759120216685926798790867872765508534147161116974800744861079754414949418100332081949391370277361829819743713971332648548377997388167577225947653249844885201769198666714819046998990634447860406540056423079253792656942244865783476985403241859818772123657604071194284460916208610280760942138491382151182919320701527497243735021850557659851419779889144787953809113157134269122825379717320567743993906664508881994645426633453637302689196629189482786665187014108980975007450308476293101044625712506828572842353650087414196399165386840629642233568655669367922213428255244752787560873158897032060146367823384286068277363548711800037667926225291960989121013672279867492286963061911528420764579340105253267732203073505490975150141706390782987510367334714766154315699154687823355659660693100109876146802883233353405014099808757298358397011279704881638416507546730623531550163925529035717956685392161875059877171539275871091985814580210163859338522716005129094811968412533767966342711481616624287407051644982975161117369322034930136848696569529627759741594595474134525130134646245195633909778903795467256956595489428543259703150808997047817245218939502209418680858281085746862677723805346049546732175713732498807818090307112450512639912073156792302606268092149274498414174414543196178002469754102337911254407161717098084114701775283929449237028472456274248591697184864022159158362024717892532833242609297452363297241012459442879145536452526583977733982059787844679341420585486221217085443970562145499864014425017172837569780338816516359552750554038406256130692824777277352171560423827727581643617790937287493840969326680780470093950816594083301829527334937557734432034406540853812260750831713467315110191397553452533987612323472329459213529831432746173192776955043719122045222395896789896586342824023073702444212820930498157928520539625308532596191003663435324121923727891002433772970996119629674283409552064272778161603909085597144710521917926698396371695460326294333381842043947035170956981277658964341011071345768408621915732465540451239779947581334792102381897520405903110622911319150822221566802887858789802402281034758612567051677265976869922098421074449742997482558867205354849708630837532552360467069482618297787707985635918165768076689698429128638759312220542383121894594499049018777678781359593296405729186356838704899519797812310575544660868194679529506337495367127297628665290271655057708287271948877577771551253287467313316692526627915363764964540918231757436844813868614179814780855371642900091700937502740280029394267654467737230553521625281445521651434495189135400513027532214646134463332310642234820478991123299954115622368215617100383469819315306193744779948397736176715435654964954607719053957055985033257880947714972811115522489633481100489035585704652801152119673368097274186016174676292369823295737530684322014108846976684129498977535442183853820294627141844650241509372485652010116580044407654070489413216163298797756679267567954490817046569930293620582917718626831492213259097290231273819359734118327390332678480601880904067171453169774524861182105998676621858399675511454709586122121943986708394253888548007307196559919949765793550711369159360904225054927480544062406935422470761351508868128974367613810566245729320596267531392428943632561810376229985889329351078999900055751659317795971225511652743507018716101155179447830100464678884086121956095808028610436542880499678663112763880327150910574380501000028548769907797350952723472073770237794561306542649914774347149553377490536467254156981330008315442512384384213758004347952900372149207412457577589297613038064462713667001538432038668000583531789737120300666367016737152128520177654724616855714204565175197232117832433534096889759038575079288585415918122925624805145690407933401279541600743918375315893899882602122423415834393617719001014784499153839596336797654875843718807451610247254319062660892000579306422520789710235806219463599546407253149158596821482648819221274534389035775023632895630211707943327706893581189727016016567082836585159703906980376946183517842515134188455461858036095104882770703139049546680658666805382589982738230603261047733294929611977594630539737366240100402734974691107426047171879230223457075279200989084480949658142761080506452067053880444830401939825063543428853228771241398506294798588530703801088354296190954799800051029545604188196326338766177401989080671863013798066373926664477513460089979800655916985170575547326303245378476942769743317289405718141441339158300029012796264875203559837789902495695007237462161581380776672656624501042773619405975415916916339294606089315372162976263750869590401626141515796163354187025388514701708318788860196872016575933904934131110569909892711409946617463458630777628159433420429264558473601072958817864191016254527695539135050683355486714546464134249755112494113274955444125245314356273687278682828266697821337737940728826115755308753354125772169664682455325088834556868363248868553991166992075597036789180826858240250463648605327361258689167713610560547364496988124117634147144031652509819321702683593026836075763540557548547768947343305666847303686509870252325338301428308113371994644324594145820020410336471357277827024515620150194528715077940562648615054731195902149665825734849489084901520291432082365353992024699902781857010022234036671366384568352112133459703188593357878044840075412221942004045839453099373920383457846278627405448166649519771111420353500418102055516070129484059081145713448387570968049668662032464595479471738782114402775451741427323450873545460601536053251446149827979002078873944320228890640543861787998414159430284306481419177786302472540417301110611280401394026761232022682891201823945435041204765368429409302360746343775959543062071677851994172720798668509162669377290423836064882361335362984170731831424526676347691655659405764938438777672459123427735065219665093514438849538204094037769637372036550966431612086640654865631077436473488550831529671915158875701549033004503533772960309810967020882903486336009006490166889022545601123626580120054117878429622870039857186695862512991888932989128222619057999457362539707649105783590858229469846923538741682374290206144217739228938823838447509103930838142643580012065291271227337727974025967929419714784709868638810175550460014910948168010475796268881262883036846488692326079877310761418659657126240206733697985364971702929840151520925264203165391246954248583000476753895256455458119467478247049471185699920313481661674627017333067483565021337043173873229792665000191926983472736568959750195330016456905578322966488838432545758302292493466371818266667812465595141120905954715429610421059148277694948541103267880302982493665634594597231045905989621915763696923688324923570761705590101479816616629243212964050832916920924762275998100936604070867755406473381972869982126869469318585146573551053581445998838537952541841945513132967754738573945160249159856277439256740227477092398660773170081723920000863957054359546360199931183742801350021591539061970841740910774248063755896166688108931839777710945770699488571200014551654541994660012676051100366838504595329022429545142792388267097259624347225901288160931427549271539355454209310916857700928019498887632628682484879232366228759907152769399293368537719116771263309077190380230372307765567823022077856537171343087795162912042515928926579146246326540090158181864503132774958158988967128425649708824355646611827465368470785070801669422480397072596194339469062838045119940795002825929084810669904737307689899889184717095774417740444116504156971139608164600138080233089961768098108838456537558404101260020432805276706244899346265231068609669930767191967349248804953760080606605730264807525623807379418290787123167837210437431196734887063825037941767123890606007958859113628689886595758062421031577184652353561339630023458754840908239265328359034115396352360516498756168982068543089557777819109419749858979131413862700132769026469400097434638285834018361953085317967077345368161406102784361630188410161289335538169572817916970845407036691988610224714360331178130220826073858740035874270571906222292854789022289593404992104264751972907069729182671285834099840569673948586859151121893227113455988420332860803962641875024593987971988843320988744935439088266372792919256343377640912152634305802619328983034999799028075425291425494860027882102957948051357591644774811442147397993650635523701081403416534126178241830381283060469172501430569604446684254791043955500786265815326988245306683691258930624076161656691621974635054966542065279279861462977340109728840687343394452994601689562240868116353416564308104161025276184922932709609030444685764643141422019032872848884389201647020161926847092030965765596796087657012636130780121054490399070231783972286472710679929445247212629863443448787312631526007012133946351432548236045600521627607188494221161296386478452591836147195151481156684207364094194108334044826152121073683104731705416446293133536379441684009494150395843099928226418714307152321786471965425413627034073389894852033000709734579773935962428606036845583689072493136781711888473594514146269408198542783116667919792907048061768588749212318175661155035808052670573855583635415428558386607319600037159182788130815206238906780390693192083867771667754367122497312759965346030225692016411848401940984571452934795127693274352831342160266461849110457145369227665209063793323031329234833292760194600173169710492712704182094478866312717266564835586113717059996961954426903881802236745203196934099255245334601731553715860332939345091196613709613495231441146189886223081752123059733021751647798014367366977990446429125156946600870775910457293185710671254092396007766693952241876779925610344123902145895050561828305849702070607842015480637321285173272752972481500166211683729655238801001245714841071644582799834594410098482841532862672758943354946150019687611536789276202997408191242677637622762838738729879929977490745125786526155931963458000541104635485053599250522314223115986065778288126128709827087018618436499314069231365710403479228749234241086813960730463334042451294454871652618314997197640774392422150824887492154428161296833029579891040326695367105006375047674984710626224652793498095071053568501701302438826655359154236201582413341435065024754953241143828585729766071508813570397389416705445453560199896606366631978691005810636852563927642185058819930131435816525019993932605475720531978155513561873420066948502518519429235855473674788510821139604260120770069739212225875509497697644083679302068708202590678805240667567139880338277313252219016162087750705878103751342528825079309456229280715829897115619826674492237577068092680495711958029363758025371726707921937345122874583038214895101620228174502448675188548738419923761273908503067423784282638081575965789192426409871727404597394092602744044778426153981784053004146836263160184452560442490923852783784634728554650236663950528121976325518221518433621424748790831260653625583580322531733595581422231172832240632569312207864821663164132975632797071376002957621843737818371834130798295304757263218379469149678922812943768716269307903059846589894572406222851810586973801824729545710908982187176975051478546754605259469286976172435304385588319088802007789178060648635514865648298924671209282496285765751578291894206265655793046512687175037190576747954241547922797624159798011732770913453821132339299711165372965431633140090122925354734141472577012231520131170712250462199774531635678876846465957736168073455777236930214519487149182033729895097501281229551430471386780857310758875747760654046049718174644102190341965456991231310121450603468940005152670120739036237665917462472277744402539553071236963070697300527958400099642278346526754929737963337723031815027772989253841146252709705396111478411903399388748537512154516853134661632965308245629084518709740971472816494471484181446485748805313639993290135335551423360387526956545645727981509708443265529041526239343130952064708559533128808613747707717579185683840103047330433718940780908230287146476802370501183026807740321066660171277075331919536520264030238900263077726822089119640209910147675214497611102971875402029049174494129859172147901423527721122546598581460069720543712223116877300568717994083008158536335186030996280031164986459031939479543982340314733951294227036185791663787410527806897214277576412526408422924503758063227919097378522158277508050300367909419568171736683971500184238169491659254768883687731099142523092543991747548155422183206788890732147835887079193987830878882055867759324669876060228373434459223930651600528567427842243886535027549554335153487503399685971775104271414899315495380616286077585502768732963484491564326985274979204426057529641751633473844048671385828900890015281063540744190174170654134357038420436264230428948684299365685766532479085406375173836608684424282645175483795284515474879375047550252651125541590766356258396425445041723503753274515765001299181347336120222848017260266250611275300333931908185608781054176872738928131710661100204926050640672957164411629054644757488872428053892009528519451870907646171088093956245622549621734639630382317131804595013647108802528300611883276091398265091231740152340438799719409611713563014974025361782023187532009497485267094325893450274342325372184458823578117780076471568046276734800581769097737536667163392820567565494693508242590756603150186907560267271366546396547573460282218341637878215693245909877840415085430184497350225921353260932959265275754323376724662587641521342093250088032637566826011170098781092996196605310974811210582799723523848696027811484291332166869447639353305896577233699467432487820254800517931559790082358603965364928163940865126660292495079833242121773832459462778839301315786556809348890519770629300222914628193077574952147467814113555884537431508686094768087810483432034517986329497260538940700562228492921124129409383101367964623551311946052321072359289564805241387676693718861233589748164961488487577224546535440070045695502969505475117576918984451639320434898213322188995511777758073201666416902370108608479968608758660122479584338823921807052616553548023582675786496986632700759410884567612547818017133757289410569168530036782871378086167843891012310174358086354682229595688848863929034882824818647972081671881637066713508426796707429905608504028923976067725244232384842638206583043536811792839773506120797109307504118814575290435421957986881988548612699294541284230285298196761468516061604428355889434301313761719146157347189180575421269051101560267720240611957910113279744921593808882132278906431124210639277667330590554771520307951531796673243919207103309631809946893611956837332677525860546710463612431552895086540461811242146512072564341589612348588949698443989041028324794519635680346145993086320715697731097243022712015153638558918425338847095989771827084527485666816774236948148137250321199474284422218797051498049621634126483222671742837725539734676392041533454661093043264898284809853662770160747477680182444925198703890786152901710869831073748226766009182695268640171602951151174647011954437152020344368162741034048518625003665147643028118091477896505574581888735273964702865099366792863863177581153770503997316652368337920517827363879239774306320805156887125212159203117171667459103738490185995968325272231244262972090608509769847490338077684398812883138169682831009321880205707770033993330580760088531725124659692059474086856182271513919453352200138504684559387844152223596380554366678113916366582590831845538162936194056395557694762003759417396821660112477660481902016785866362722922637520904439026946060808336475256969883692278064725908787195371104788397974542085964258201128932374812919327969679277431615550420388020926005275386927758453955953813526820216657889011424850827138209278672185846000938563724893348128305603648954593861615337236761826310659862432018440628483644029860735546959242989955336985138924889696017720495331472755516429246495120357161312405804781349924659428744560104621279483242994974237979409405938247759743899517627266184512912105812804284034026027949281201150802191974382372817515343695076376388966480776289135460537087642971909415025428270609025872981133237851224300632954187069823620915029402770692073916945409033482615537315633715523285519987728096511992069059279686781616762973863912602472524464743872005223659671605688516667862564201578879006874202675664432751350317304496156974369451188306879599222659738279595758397719715390621904003271193814526810752752872975474010183239651845139995984254181471934492429026786162627620979109937097710181469122481086585718766607503499483496463890403948053537224529434221067354171689922632285669332017831798585314100611532325615598150000086313178630176846929537679174019998717986635191094581891310236193199110269414175848733717501133066334654212234267377049365081607628100285314748200513179053738000656637692261565153110003051984954781877636660202205797287394533815270737202773231408322127027858885548095868890001654006862189221478175511366574678469475532319058055168353313809975907602241037543634789622817758417273294364988756815649567764403677135509505630874761352028804617772689660546407266300985556868333576630528148098203589283370016413255793779458001194896760346705301559426062262608910338818899442382167734803286911024025887856655213028576086071648058546030423347868529459693902334047530204355047172583137070141288620079679906673825313011613941300332029545190592194025402010656592410907280839269979953926346752601817866967752947878032595574574544646826937640924622715508588821037813224608684876634726405540123493332289372652348817769879194132743615928667520054928431183555825220329099241431883413556746090378149155130651760514265052899031971715029061050312071161924301027893389523768613925371154146509430698778530269535283219064565324845627811388302931401014674190692449611075699631112761753662271547544336563621555136797599040523384667350302852211573508484472264010512562846730502837481308322119269422870031372314872185007027116647241611735208856230164056989884913164266144162253638332706156618511868545479383683854584630692824996389579626909424571270378838741278399817636977476617471524880828595253082449206967289109801684249262820377643367469837921234215222072584275530394793315036621698644555405308777999501378082701132727205837674623003969552982818456392064540191003883653285750702970882540397227662208483184450833424987858141510611900648684591033282223829102640237749847239103974691309393772731660180279564680075642846209302850392378695291490646604037895327488906988823640334412362043839792265951738256335158880827517598078314233661440932797511510600129608284878174694204828342293942611280393924861555928204470442199884602060555774822672900929653760776953419096206768364793661243284034767722047195507803740828999079547551411691932070407958239311970880693495201804275587628579988312728489335648938047330531945772791440079056014054171885630491536061884946016454196170530956233675075710692304007923710774111072633531667621142536187304503960419539313862023813701919076250226534566945221589257361299132239938482060815186299029655952092334805473533086903672895126401928631306783741445424309686774451073217316911194807452123761886998388710780713413573370392465748035446360874222322719791920133639517530225120151410833587290205591602101517581143299022705939543963513393581350949286583945875898778430696231268581406861083067953605480817145214954669746144910274418014826984740974730288027367034171283275331161341153190496295729647991488052202643821808440327818872294962700238356069498656220817462704875752887568328334555835690465594776780177314553136379188972282267485940854697215924459624421393529441198728484662462042087009865876759965185600927753931715446600836544475414149170888317504162565124851393534414761502249844677305259255864139537295851830467135225120269885891969033111495850971015635261547925657901148327433005506743589708186749130290156094867723954972731004436650127051439535500712539154681376476877915749906823268607238024663048411407695599084849357459308969072473872562095991572956128500777361928363437362406145235211403258851516209656358688578471231687544666466669595463325080413788234306913469761425275914411352941652373899297493360172092606442692658728554888054886232720365528110982400584565420204800853348841160018698425292926295779220045961373585685818114893580203372447428097288477746415043095687165794313959624075190413346769081665442804159874034600713120084721970380940158550450981729650812182757687620594295807719749826144647278652174132561591192261250153298978120780443575924337481869921204938185277909669465854177686713114051627908417467555684032848009340088683756130579076946810644520354731872358209028025088995130449954812016044256403576890456345000591218008759201477560252152122361154001839617937272156365197368658094667106136115722858485840813393316813928370913565361366395560655208939518832128029174771940594694179532066280835051058490802953823168886876191198190294661098253914030407081257473189695485609404468335522035653898193897597237027092492214258688865129532864225384944450261204291591617635747320943296766338547648969877015463224856647711739232063854096384672416984504971671620141489023133683069642080562442169186382411573324366899361787766712913492184631748664115636014855768680283924210976387556707165064850406576941371022766886472549300780856385586183081280244494295526697374973449126591196378060718869537405062379484739312116335714046221474615734877242406851812742264241894254786719461893190548241647213697863220241519805711915977378259145416298232085354135257909464026636272417894293323350320017573907000104845471037938568813456162462034698704766933615090011282630800074897078721708321182360714325185231977196549424194129227658495186267859939314684012255618941317246836113473529539617743781248068790058152471584396140115901857024443112185896403934393966208318499711449177873579608115797056464550917764064436273045921206132408643975067088379213670469556075125168800929663195796981035293676323952965435229438291818085765211830869805786087096350860120547117801614226752320958537373101141484662689861475506033714975226100611586208199313073665837306708586837727001706987677784581189730068344923064126236973006656662335056146604425476975358104888964202805348869029608088923885099658119647512222482735903388255170940514491362381745574394470351556399694247911660399731190418516353384305653521710840884321916047697464926203013516897027520516774999442871293359598708119047492274286466874865218212397858015780476386856133535188911790594841013301247436301008634325283283105817285902058046293705533580959415336088628265335436938311757140757598309657439389786543254212304005253871750772715354337078046596493446738828684759330464208238286757174085757821941694400213327829840692646038463470716847941396650970307112235446700236488762509532458756560270269181840156307173785993190165221395103755208729466654669356336316315666302012689691775084967358766202112966419595774497378007752902726041343846502705363200925989551516638191335910418238001758560475334123140358911583195327380512604666215920955232288036656499794264558354267798218960538870757781858770843369557554317643637412942282747426254603815172500826779346629612371765065876693313527039616593479104423977954020406465617424161406023558324625572881151217882165857343737316399257147234950150717520786567012111247787740566569755055603393759650657908744554372790443435568944474271722828686349205004751622926668220975339690521967807904086345446118248618099072528257361865483605029782222292154845712627357173642320224947297644622708521545255257884940832661412500458978319995278890566646059569290971980093530342400169432182809745466224438950072559516332442356570093560163957130252190108435543627646784432127094922319765162259370011112081419489240123611222819014445581307215857405781742149709132566248273540156921371654216138126094650589681850812962589875807428380235273807525065415124645317012718709742173506494796022793366052369646605145567088054397680674047133711568647065375010412866559140670972055997184374369625986276109025654553824139625007123424211369469863446297105019722836098117639026712892918114985186020371031631650620173849504055507770030494040024772775318448651591523151890143417264377970163054683309881692024977757195318797278854165205683976771664183064530511945352823501681909324347419324566406458032448169467633304827766393038033029523367988472459066068824857425488762055638375118284364152318631025678296848011164294244380294407160534072114076287726089089407733988690128926955743475120527647969118823568870912408383699214360147055618034994379459536317835825816624995670824500047513955696986207096276390362164741909450390211148603385310983327782876420731855456624696356406173752468516462697252104767287468934575535789103293467617999566412415746867836994908341331372418735937068788016726457171692368477432418235926763329392534083993430499263469089242186843614649531992625005516971103219865643484624456298314738497984966583268529399820270579324940595337477514103329793404429633869620317899291212281963793404543844980348078713314830498759439816393697887421794282266201384975579010653547723645979813039199938514648439187255989505188357775127196867900881880803496935470242694657810962014127284080844133217078762243603386271274554301331448709936273745530206336643809800795137417208355182656060243281579407833701864896801517978371986780613229742665333178260322852998573803629704924865426925168448234025474121709394993868633507739608694020602913669392636024580541355032647126235364108277075872396843104180942524452866622775908830920760329031991487205395058531431540838503212299652666061703502430083505771758513895434152856519082164465207837512733083452462161429850775336238964856952887557228205157704584647787583545795073505428228960947570750856696146917524851345714979120786907766945051475350305630359824748866740886819868125066654409148397267939349942230552796173143453573119519694416890801999424578824112554691038427795616304262382743440508185604448039902430891097305068206354785761443667415129058162114632359068396078915723913625889076258500400459520130998741335669583530719657086810860251287834108570098541640079457114094092921189065859029940807659299710794482373768417134010426021660010660161270479357051705180083939415800260103929745006675274634607976251743917430778507580170905331951809593487359660031796868382300198324846645041636551694618016432751655248244544744585488675891826001139481470583248581410809351284651392785931954590885710894010326998388953460706801200032232235278345418065951042703184403446485154244807705214777701988420355702664337492625697118422801185052109500485921764796296781179012601540134499148518311295534624937991036280875917277931089269100460082447814082597187312116186972545362517306868326868991544520278815265615917923480792449811474608489629747876925023397486945352519476346298541290906698106176000184586495964255520638724773904630686603426501271648519785810422610021954222128596556293829958064576071706150188811917979713959243179911433593516047679598808072810386834883302603348678280325892543639193254802800373201690459803372272916532679209259468077388685841043077449487779298758335392141270015813696127307897253789128546580456999413190159934260724396300220749482009480927147259669925258734010275921675838335369848282591443747207146029119387727616158051263307386134714334621254187637692409983929840853916247575552847165098232774368948050913260326188917728286995564617853935609000695630189006862376674430949587510377343329035326176820033064908270938346249370947461902853829296945814986904507606037265252284693607831808628697074122973843114047078844564777026542245502049904443441758119118666616857382540665063556294015080574827492370909254002219339971655304338006283607646764591572862160746743563516200130731591388610613866027935051281959599028425675317596802176808697518755127733378242555872191735038055157484949313182592969166710063811057217831235287047184819454076931325495092499144586451635811986024363753736077609268876785073094988592402334303628164412654165426630733988450258221964887098757692723369296877452188812810760687221455191024115605246983953152428883458373346467676592008643803730610866582549338842988904302489422346309866579016294395748054043093220860302058369175738218006523725201070208969559361591539987869999972422512639695906404514957143003482893153750688794520751413508583940460790560732403177070486195905885813434643355621425169616121929086969330076274725616055779992343889328219294145908962902575703974163691649040153735971573825857795304718955326584638384907581582325561227488005994554202861889049638585140861096724670804234303904661719305525100620134597087614214473708638901419058524686724424415515495120548638816387699717509406741858070770195018753800765845675874736420705814199727532238573605331249948123807099393254461351969456072590734944964228355044408249008045518210411988023771131548414078153346183364126908672285020991111018071127957817271531291641642826153777160930633132446626702686430766751293199790877007278614031020948834716515933489638705541737406768791097474437325368449343800135691407632685549491571561509773814277282893299225172805707038095833514731675325109525318584031483165079887160527219417448037788079170429398585578632288264737321394348935135544046005860707752618860331315450068373695512032552676857224145827972671475225387024928273077979070133326116670206760021278111594654213900097198441006670762215778770986494760535272039647366240222130863206189718294409563354420566529368648706005699112349755168390903038570345009303384745748155414413879836276261301886897583433827371188414389772915122774761067947211958644276949605557476334130548306546003467565073464290045274784932417367401660752412744902402656252744002474321354089725635700442992797700539130145796817643339200356383128302638063787791611875993941625788788628051335421267495862653589356209595932565133618810692282173175654724078858355146331054106500460666302181088711884532490144243924052656259150305590714636538301114535853557505727426110239229471025966638690322712837139882578126574862636158375428294477122868720111959841612560028378153824419012205209409375958990574204345033801521481322765260542507849096645010586131006907403330395427726301881367487533927865883142262494198549123036150397896394098987811686387301163372462480867525003858548428413896651360150461757308167503192646487890459477369041216180853776380059054590178754257739392564575211152509307369224295341796677353810114063653733819240345348435221423080305166997062862366134372554590889094197261142037723263785083965277316140529279952101332295027524803971786672926614032795210832623186186153456739823988394534064332308934688067375068871023169386253811734067153321848971994292416447482042289298924165447062293173495648300312835181309718336772405770772884813098420693485341717199636737165270028681220087387519060825116972863639299506052581614115425346286168697556007013236156134071071115126085284051222833529299873751764741304325784167915408770296097890916478279495898896270264228426773606715009564833363228051347188089758833225896823690807859108896052725626717357495412461121945712638532072928124032790476117455107226282141609480186075750124984637476607826267213215459779260928526901356567760772582411902424378433275645375109590114097168162375310015264388832562325390454451555219592345945114032748694377168937271871701187872847749175534496371255056702521784576225941217833588732633350091055409995263743444402068885835601438251753284333086784957409211809090602306541287011631863526740669031961656448836145690905881322117415737154917067520106519128735097830186167849481701951750755959017422547175336906043142341511884973711309944396204489701312494139630523728431449519883547737580168750533435958882066825829412015974083870427432997435289181096059583643782048836420854463226493070418121340367296478721381193713404954398848563610969582018449458335937523561093479866017422722254425984931422412638594606300749850592967108841026952062275555792797396651911529049724954036496135409268078493322149268185199580150544593753481209123167695251324959596940727274360097056851975132343251316095927127185730768958561520799033425876067990824682906823136410325749216222733028509701301349247506535556124816168187035564163751350499910642706759465229605871191714590720532235097379930931944582633688907311954017802478335219592389613821742179033735736224262872033401531534774556258511986469417597174181108482001088486262102741508913825737705618944851882050798109768427185124683031413599638976787235796753860214019806061412722056761300428966196597631097841935921798664083315712468011783773372449607720123630180266731448653794296498915907331671070088466720936870603625900376685047781396703904220564707604245702134543664551154985709262449744168048548041844045800945265285759387648681781479499682699101346959660875009527878556986348510651201342018976357911889769889007842973349617594948235525996552302065373584761256980234480093443830943558606692949567903214811026037117251577224172611046324282638834357280001600920277479607981297264686704136293204158765059039523294012839345739148277433864392830017810218453706587670400412231435037843384745692257454394361549895843114721507932883119171752873534614948425166858083021262713709668230243254175947127736534539536885366791251517378961659440211021338382990784541935861336669567296417319243779886713245063436013007429517625721647289648187283708248342214363577996473078088623982730831756224660156259669078008460518655907455628748028738408877219659785839409355018951163609258277883549478977066855948278406780590351760678952264553641706300783495313397434797183129603508378102761941940757122712311658654787608727706786939466112733971572125995695017152174457312611604763545806281755436105030880031886226476308526194089611154373124201627167349165442223162058599594797528486511411627978377942934222033883702576710173732267147473819805874012199142376498064316865932720581554499196235364000568534486169745452842848037867265824500033581947449070067669333980754197402252967680366899263792014286136505968925179544949154087134637481131977636858587839229735735644787839587709115403626531839928924684467544248055950364623316989058723342683692100282556859392002399524452289824016792921201767805087880700281249969109547908351949224384299826987196902968188452444665172121912907147166761935430847019976369323563850241957659578144906459982057993182133686168585680594915764963386050520445219836044506089331731897377722246708186843730543159226719264146654534339884595478528202992489219283847841373967331901506994424732711133248268810417899269040080914217744584402666811613798387422083517896693445138104901319799182440534145726551993816867174108328953973320873065189883692674572376868579376110447390593000697895775038226470274246063139784905571119809083923903669521163625641011533462420012253930160993389920693492390494773973168796207251114175768182583887029608356267866361600240271868042292383950645218226227935978048349762798849128000309858208679848743235337975455809755450150527123181158284079174597392516486102663363588577949625575941519869499556461441423780052224237398337685810478631984005406225037806231630984611786677940420595253075606675311281367772940339658293696045077537614156379504932501960154702280717670070310375035331314785815009636030770134788527872512904594483127348246859427140293031749382001085217148196337511127197414649111056962728736149132462051424929825249517502359682337797159349149122425634907258212514430671571821559629643746217199771250935682748900889297404796283841468768443277695497090461043069493538418938952800538530417931897717743341818991293865548035940477595673021835783650709418472506024026335296040636938274619031769232680752620127627634174118182106664817871082736149737918215930254205524434784955196594266021387278551288057516624152724271638634236764722042833110180512598384967703079247943480265281400385235543808750522555022271772833758789677879005397599911661079916058574812952385450375458084210106092274989986641397018055741798108767185716808204875408127134935311364200650128152797569825944793680203209649225980521414724984962673295212957032460362118258344712583408857520435724290601807670347984108247943420062472664368663407632571154158600939656003022070384206709265680252434377704683349028931119649056967289178555246974609380993656436323828773697022281638722594387090358916850235388490016861958983047120557674952474878978340403281106076967121572398128427985993883330462890520310759322754180152480363515926151229226847775006435703119715808958834272550668238747890731162083021373606772849403539568277810905720195395290914953015678116920342878730724051138708077707300760728149419951584211570549743235582617390459006003123547634472267820829387894967238273218959857787668631565714073491358467913330891524127632210583010944914271763652222627721377950252799674706046578914604720680491835933020599983499669309682196984584749065663334104314951256245976080037765891653750806933468761174288464682796054887243106327550435479756645658174064125490455517179984034326859597983623500498031572659213895299848977325086593643480737025699393995180388889621965590685566276188356105214178429726437587003741843581949113548499393120172283172853426309398536368469618101071709560323902758982285043407125808809145951973286260055365123820516211478560730612253267510460588493050395240931971366267033097033102620556407368929118934201164514182634813329248796981331038817404790880228037894560061944121888268137989147686190660296797906255283688787191063764120481859462831287821351467183911379705727699236658657142566150729608889599687017227094663237352645682903824400569519639903039149255697762824655855705030464971753739800296369697867687195583277281018202604673031092724784082342424311126253314788771318676707552033239993085449258509307015415802891036432725217203116337132810797294423146676326683943532212899429921091936907092699268514389155672459472967608560937169004286821697706056666109553899552399784917522391669888423828557694454951211357666857907428498317502349709667067767812458612306177797263401458102627404829542289738486133932968811908010666152507520378693601453941777203121816594625817069625751963407219454463986726371055686348352713569737190577968438950775242948018831781649783304731601771381224088222898463994726609696665307569221499737264477052927014722374374486335133899492836752611185977795631433945076100965537180960325795507227249184876804168106532977482744017416060362900359437655687281068737744461009442295083312108982647286264119040398357442688648181266338000917597122792569169559961954296823010062810252349760876644265547493914050777609279444791930274867465297398985959429991825743251831404457038755160059788588290964438523467529749538455251395624014618301811121282318750267895789854901273355309739707115460064465703814409355362738544536861865236969870263927645951739290482028374741309221955280729301852409213939855476263465173760779737902405183989373298548209189745212603789303848716193967100695559547784679152012668967088588816495742428575066942900721220106593744796197879004639432613184246279856583791905788617431794957405328887200775080260037007678083175192199483422536524664239644631233263320121032218495193236193134187495525279387095406692172366774356847166240031723657386602257625331271345419902214245729394339553331014531528156287284342303245860504756496009500599569562721926305993622287037684762603055656212801075128500883586467120168430581524932426483276798781489358756263535637748620539949340527227912012936546590002378738441693815508423193970187748942207570837893500079000595744693086949208132383619905163849913121728754075405703874310820557698880364095639728037914221546871282067849604691183142897114644665555590066064913139165859055669746173336436793931611063043535169475246632240533537321465900157083523310902673348915470915846869086578119960660536008783674887724722887311995078905251837816201595083791107626224511131989209947734090211693009643937643865207991095072268523062349448744061389805236805903454356435457818313613737623311502573074045427063045089626531602921900263941119129154877844253536286602686039984823823167694724026707951953659451342192703270678058761361547537681566791970332308259065413951217154438815408270876532359114093127513774638307869082317071085434318647125733820293069105262702998710752416050714976839002004043200816304560062423928566837947800403338004285789910815289023362951940783013962771782660650045525529286219062253100416712991835235979740101194687759517662250725217391165093806263780819153951426465093135665846238002602879469890507060403270719790564867764601734395434333309871794051466636688243661473548546276691917946923756664704092586656519113327666713964951548271430176910107787414948427159735816335309659471026945510303159387379195082280410171390629048556511492460939481353273857635994169178769556160410499466899108952024306747857347936642113137337069915254490143747712629378801227656856111270149142511504091080038110352077015707185342472496043311241817997686246263062536583301523194504588455854891125723083189215016962244686924988414546070240879892054150149168012408427172725508116945244912087689530962277955418468363444420181743761949382391266235878186131414773140768459106138450914349364935464104721916457488099391926464546835421395911997712780669876805310576046928779124607994835122402300154412937452191097437024674189358300293549757738702750826955944661193660678377469814640998366381623999183264697042596796445068724607135180514542749344579109640628579415813579577743615117459764087929232586182623686707891083974435688112622316185270576864722266746184551748063490553368954918479029769365722207781374887495714613315270560116854963929942882584719142973298429830792181360984677538264268999632967560868130576518195649669096539774122505247670627281897300506465232142427365789651649502686583422385777935651690693605454897199098859431033840215097859163714216675646486560100112789551939506892653340853857195715146285760418298842343553402550327066151132886685726032895125013429543205411756952885144617959012388356030590498684217879830868525706778071742609999738975463953444945246376120572117723847312800068831982567333250219081494207967248022647261913419978040805101742335092744845710490670002600675876168898125118364976282380493184768278645988032945865141444294888506961624029105157771045697184983695426953105551253384039900492012012357303283611665911664530914607330650568551062335792656334837500049718057416214806099380417679552710317392152551646374806100843177723127136733179122963737667000218823588716275503355473106028789391115068076081465293136797957161984510618334101018229730390314876026460531043087633756065866587706907400278743306936662112314042013154067544137156228189903605555076875760418528327170680662093721350810538538975889819719017687992070502409714098415024720551713705949437676788800883534892901152878843742521899540915094650049453062349747372380057048111685620209627743993469500455106028538585749487476909468933686183507421238489152167748303697354059107610692395180852928726357384072211824809077766680968076924300676956679081880626498773916116918997700320750575748822613212752402494674816879525327756013296045682425663856987731335931344285917286248529288154037226170618550054092179212415523379244193933742389915554368447548032437751775749728676865253590547768121975582970127976577910070824376202070520824177104704401603110760992683829005277725623038099558222722912356576972792402367064972299064581603819382223602135288978754184543025004608076327823972217388934258733961066156775331531555655053609003436188006099634742321863726909980724940972868474116283429383575136689001560326573236819249141033489424335174278190217618657692111657797070470740520906177094183261314281032299642331987600487643656908924778756323633315824206685179943310356124593121897707011564870846930213465559745062393443898524761467409963016846032657090780610776695953730745876140148155844658759769668438302250377669455463938480636421381982683862118693686809700178652736851478345138173397647183563516072346211035512850862578590725687869854165878119030510612247004406678748198385630413348851460154077719338694861049131158860477228683569113849046975882922885202574920199001846983997226317437303631079331947829734697925046028361000140491173316704580058244004865801969208799857318193080879509761982393927138767441866897482063099616570429535124354322223038926423995352469728097274812268211260005592789265566066604757382363989255317922319236684778883673397030982334463208339481515126118957284218923105840406612152109694880771053393942846118296507020143104372941925399514225546576305381554700105194121556198340196672013376058382642927524765284770614353323149729727639405702775682825323172603350370116677577233497296270542749126203360087724323885707241934297250999621115600760372953354704022981285286341842824798855535120199590782252264766765480252657494204374525973379384124940565655650821019016421983737848784471574990947632262741618780574044007967868906054054750501397237461377137619247764169400574661359266134802031394591872731099309401245890060726458725762221479840364219723115734714931157359993466182853807703199441173924382585682178792321116158392687169302965591523872755652391893306300607142456755058381178073352212631532788731756095643256497065061915232857768994380782248443848155607673429796366279552332733731072484213318022800461182769494305844994884369423117447150950098460391845639444793105844551320129867560720630425578547814598167525287320940496148361376364481895374326171782953802580807984978871464771094977979772200817615753895750688881461303878545855018143025165953493405651814541650003019077515143975839737570100618990604644173442463290501301934563891426566538716455815475202750456728742434769480239029490074267574024944974922379554356161508830531157089505316944836586637348428542097587164476725035515034928477428541500505179756031416785227996837349477456342257943205502195645258792187430228677021042078232105007900706978368742406661334710055731755851901427501425531012173329841838013368473975584890138720212010683542953152260770557427103459100226504489119020678776828759988886035941700364356104689628365075849594071946733104538269783221969864831585367314362446830310329447934370466689440772626099602967383995569537383626340646174257522257701523091760586082630629493514380417349294254292064648442247356256352999002066211206797383966182635782470230296742641647230583645738009535764297299024802657369444418729737024198180341949542952467364011794703481350914920842846140623204203053172329386869269022663186607939214753109787972504041109264793538798845029616545211913285153086892479290489848151854768576162418449406836244367612237881920667811036173812062702965519291039487071064321612041833424812559704549805023968877052008438285770414505114814523604582196943963303602050455022343871057243588849425880594579495346418149381560034497343329320973613590105383864025722756529904142568734291660210818754147369543224836271809872746336596628895860493492154466475084313604851036796110261008238232566817204265511089714955919186820014063086255354951139566635897285667350813434386289521901016883082730116688848101490471458407530100314564650952586687887840040902627368437827124880571084060746694108584048318116917932939123927639746281666458015797468463191725779452066622064804625884142773617915680941482605723003438278545951996887203830407094504834755216398096326386882043490891344503179922055335329652712385265634310273078816268783184927903646900613150355042074792363558195237228195283406380208270688881753285361935710204088598899488705252292840347095895650790193674787127917313778471294658631063573340569512137654081767954664311606862330572813367772472047982999719036758248909208994465667806353438022611529192831796094510195066884073291786901799883562204984727052251728110492433195032005514772253121289746676748797608813096912670530052367659289507252061574925695021761381756585862264311774007372782185268397165509082456652346536492273335554488089018037475824895147508745655514099608821883940167039046253099972469865646236736612581981471087027803697581072600537598300613336785967662546004662753231183192485417594448886985687979830827425897665491420425809586923008212653710475517776410779793369493365122425100710427703969469897408219514961956114330817543379843499655433517966956630848375592522071329671897581496426393480818553342112072551408631992909726890328988418682183760353729310036845899592523352071890491758736964773122447352117291212662516530909621662205536108577349807506640647831342923719444545081758062693986856990172451031338840458166065299231989225416916430549930615065700382221618295491632335984990699749228608946432071949621080947579421808787681275266674578240638831054648958972116318956562734955371434492734761925780182095114097381737080693424160153926529675217443137028714328306302580222647555932499658659063660028022078661098944116272002726505573673576375101632913974851094003702349778336062498583606909799681118718879917778646819217853275904047422884705523018568052556300017462327061661963617268445876372463716440704131845998894418676587063696289239464111455154099262911199054926737069469288125961671391784943647192330850441392482043747980045010669250527844701849638715083560549997340558043430495482251845146202395132287695145859120311680438145222335978811463641112190831865073462836525411672968057359047901097528153329717436012481012824500376002692351386497398586810996766531244027007798259756638300009373973357033167087285863311152154548162373698400817268339933518486995266625617152573952957986016991181176788412119674895009117526733899757562238577074872478571656723682708747627322789411436078618898041389505754243074055241394003634537420179950394211068359688857440048836192003955433238089962738209613735140123099461211638070536744109042044209589114291619575443415306378630990656647250417731321410329009797152181711760619490789543948941807986714766945402349987185319277943492533740378112204378300251150631549249626871693073618762878383863934802163894825256123294750436296563333161982262700311698365239946526321481051284710345908533925992437366215080295116599109102422527697629594816581497763325140987475216035815230149407989959844693392070690338330404915886575777495569420890261795432049026005586271580149203428454079102432447344216486853997006858015182797382999454396675846353468190547137184032474104891580533516165020541365334305712634176655192059037906271281827277066715652287852987028692203749549531284326535876773127320392172540133340382610987003369351187950029054320448573522660762409529711651388155800481260556474124595064920213233466921842069722177385139248406394647867141339971838927736967791271657830887630274027734941812820604705397303328628759372005514104875099777835646063135700236000382267537227948188781287658044070095424255861356493273899525329480180718625788778079916068417923842626243672180665555858662521508081650935096188484010273887042565982297166457135079841318800539037852749866322373586893410313077072444917636586992700983069573185318936501539810684006265872046178407106825883517470358299707735572243404956177753273399428564722111986849215585809985896254532524522524519896489290258050816281471428876980992511336356793759231933622813610963050246523111584583398274028296523987020599577075875994200252688358977950744297818909122376626069628242946849463312866354597602888841767207130450075964925468971643431222722987409670010837724426811279339593295466370581600569464648784579923627710959506470621583300732766761550351677506502220726501458398175110172558700509866701150816951374605551584188686151307827403221161884280623429762738902825559170846628026651753565450996429557456344816720180721240568332915834448047601885172986488691417061342249505858609565909454244410580229189002220511913414746045583175305093364645114644058381613530121645847008095308197238627301984094215017696612205678343928514733167415327266868507603356145522187305917974880514071520104050246451641717526949895728862314361475935505690123192372196890219471302849886149858615265359339404767235116132399477387131988591017157270092674080634352700229307570700257360459200107450466247367123540830257190566153349557765352426230191320934945256389456449554923869664036251734213414093999214215292205559372379505832829326154585083373672725774025126250100199692650342072809300545177298315063490801425750565797012788399332867589786048856102194474211819316634494606581004692003431097782126034221127428927913402996352383991394983747998772094527433766913885810542782137620621564919270133670070452553823856537737633002751118906778898406222488349272712080158217442113552839238161521733554277780531592993155504536098035830353450768398093725554220292914624496504146086923736257519671674440250878160051872970607747290824662497093880560602085012802384504731014923500143190443502075919170611436637686597299237102517017728496439355445305006093398097527209239464681067802279289456510068317342216459519498182815448376879105172647305967194051603253407788030021670900835244351702743355692437665702890756547136926498111719803127890909848416872850506184134299207477869552715145417694918585194454950076440816235981493818423844324714953136296664569031589350632985815831715689057367380045037236041575748795612786244758519618261409322846210888076214577279303626679247829262080043841743739574212771747163088962260738993421753228660725676184294761970190954246261208921015823601461757322510108406399163354304778820500242509355276886692702078667729971459397130626962134526078397192872447794358234866500496870934801241492253232665542386626822122764291249352000119146231169760782574351634553208832243619631356826668994948640580064657750196948593970568155001062484937762685209764848686761220357110048995796689640340763925192328368876340031610625619337046529797368461552766412070152044343581375103638969621209656066027851120876840732409922145385778886329970088094482799143651804394396470680559004084197075577921110929525696259073617758978865181540684469247335034911085800311484014952381429599363163117702670812756662417518927304475703501953709404414093745094826691328128965586674790555011104576811140710876679931530796091619993670512512322602296589803028077993635019304643084618156306815663243640928731632065618654459515371793392356174163014508584133221694044908274786800613884653697507200877086351259298657199345779579532763982521128153515317897914822093173442439447691440440583311681901501609932990650258781924169806428146345795525872963927754466594064031923314152186006099730051047574950718458968519499393718962162281364680191569273125595067145163307432446339540634141260658841663371210905719709396526075488767977609444889080105331650262322932845855369922263969284955162364869111149757897165348312207066166645472265665039410366523609740172587452575176136250042924747763268580969511038498413776020768368254989243032445148585210427846215319033193856392571606723717646767258612333770681252913963612873371684346841893627175788497542714210143618259460201470422840389187939362462429016114117006624308794767457083880226250250314538940486199246305837504922924065954610128863068887188305953823407163283924160362075275573695394775303345400142108085311933764431901485288477089309750489534056410315186366665611668967779193799182589989455377707229411499292955779025573355274370135535204661509319878807358211105907399323602861124768066136339579240145548850308353545606565222470632916533116932292749785927518363313769427216803876939288693924137191990645988173249450324902565818725848991031505292811198207277549177054017852298272868867654294026050149567842826293566903869797269754564877180809167066067114735377004277873130895805633754235784583462352008172391935518952576094363890334997059663491584838563249021563616529849851040762405205270386570811390182862509044010659243243799228675963025896177491262028654707616081954765953043998889394737926487428900252410127850706984150200225602955900886403888262374202902750910080767320267161087421369403999669399676948437348261388892279941775338906016634202990859668464642856664323781328565715989621281075471633608453736927317688114152703188837503578930251340255894647276417327897138749283942889992086971438751771652680278960561025404273029061648414616639792528596887899347996557157909477351567103949847380825411410700815400418935902440831967000711255669261710282478258972978767039216851436081607375076132070044855948996205665677171745215215420391682650873395413170779500784856895412120848136064108032121947013652353867391189033672418212370775378922815516861737718171296335886866488687115112109159199284447126461963811471602922330410793279623039397376126261388073378488321809311216625128114458542142415752931111750719318526084968015051766603224282737186869612790893153546515324605245874045376258576131785907965551398826920400788035398191148302159564322052852540888504771506559282094127342190623759051470842978142489944825740643315574981963158327072497438118145735947804299819828674018434668026190494516313737285621738678093347630670739375730413296161473655883891310624388957630309496477232218411906367920164486491091768387341410877770009175159108426316518955829987622089822675077560014358964194121988061456490683535772132110774248300767720505617195437378386923683121477819120918420478350583549718335958280722985029419470576522150692749355606401685664149036498900949819619757050746927648599038783763845497628276469308614167208322323972544780949242645490160950107561395369183784919218424367694461034595260151240398478460833705453646374656488292307193993071327216453240393991845688701162912436460496992171898308099862915266481267139711947805720722255947348273614089169201945295025799934125998981034549173008832795862581170050563297729532919263955224230982557338038049979860648308441576669241192695447657525207133266625529948887434971141404505129286660469996151100913202555368368801622250601050385550259863917707049046925647449803972204709128738281936687683942266478134982850997076548607623021903443222958421139101402005601723952094190110604540975053432143420262183148536976300907509320253591355995720992323046480592881916760219312537108490310703059728311692008914341166518138919158577138497644356335635057837791353721433340649602290951399532466778715030372874381142260167303227430502351354488114348135119198846914208472334754142867836173645754846060642253501354621159951000661386970367608960044095144940155361142080719778253011450292844805026991218596181408561423122996361733911130339940466864143145703776783208078917116896668384911728939307301285494324014580963392478175115430587437930874019297606821679971449495442637450018764765253098143510603255091678859181398550099958949272905925970725370839608465450355330327951046133980820659220990692171654968260868339502521756629307078867450141817382257846461426161080206704297928058697971943697347828264320713153380659107489884898899525297717829019937546632235579420593306447120146179831470984639980946355189070936707224642615896436495016070330448700426326926118733451312746106943266155791207685426629252588733287494934072643825708826266930410664095560490172135952305969394509767480612613565996666617327804463850435787478785514249768552130889125447390920492810332484202621540770017881807903044461369872886924292473987078235884651805664308652782110385883445369586029883544494176872586664901160963292316602769071887107344498514264260820273382936354658529290302992161625449102252467651472529084517540215847249380147549212998352989869614758010511054834199105728863313954488422757314821071552000056875490791396316765942455422104652434390605977469223379718471705539971151812418336343830336079004450291923491322242638737186638007671275647782801113265454380049634355132980864347434574831633325909618056623635511881136327022389586127131972386270251696700291523720927503593825958761680780738007754402370011481929976796340155836581776756860167827706113354422009511569193249447982925787458470906709489182551848646758247133384928845309567918078403971450682602845436907197081268753074497023675542154165113631750386782187972513725036766260242945486657997952999651303240395223038618743832922294659820785065250838503452751668680669347644115903357560898181668186006194558537285232085567855383584471578219058921651930518125791060363975428707225247787789129887671332229560784048679740590096903146615293131428383326282358168950993579387632768891875207622782641192297156029582102869114748611942307235899218594290576205747815413284616874024117967979805405146919087443908645368252112950403995564193819301259656130786036999409928447292693223401180788449578939467381333062589639340557729216284988443762266608649350447006155238488572011409097827614025667714815541144445478081874702266283223491823491464422162305470056376266900560825505220662181277851556386215432686184925604393097702173474606124851953555810744429183768269479238618445186903019221720392828857405577832423665381935757486571471126113647474284248498387195115584487844427833363330001077118795507519936120781492820178714280889598361351237464649340200745623974500797944194052704297607679134298145626350158402702238131106517764178842163784413351401915054991606120196926647518064757235547599688301172546223867661496620487482605927738697905653593997059127503693233342041219546257275060611395080933934047604281567952639865993614546616699950123229178598701908189749241350189139143684596594541608482101234593090860286189317333610836316485878027522517283683964403483118594176206066368923685336695401318058451842250974639621765833133053471006243985999181798344047509495793410306701005287385948433537556646924651810714707821828725446213337815893190314287318002301118077588266883601945031132540552844476321044736805006841128667639539117042632767655521118013148825114518010659774466148577416675037160461078309048343446383661658934674441739731570033229244374768983027142779814081508403416965343428135652906051561003872474675241972491472885195187617760399063191815493596914257382930238059917426015019804607280742588800905780642147067856836578565633823972924614201029614615261761451936475503124140974773542923805939453810153939902205705089554477009891932674513686838140708580384616982779934417231815580201776435981100955628904922772707526515782422283549316386196068464352397200678148628884516878022952967643514957382921335698731224233021033141977792162900202441802092156251696064750493476311314404385699080535058545214050842557634551847275035780405949657412501517571458587304544669811937243494618857302849735600691178283564173162360507616379172125808249631275953818941203489757523368974849719763635043762054813543068286119141525946145533452557015703544173527731073708387111231649785284197147501846810917474247375878822758338723354527009054522746133071091140961515105420039871851873184788048912692320761913020980997307871560479222595839866739206234018477969009938602218646594034537782260144006583049064389396538971221507944640834521838321377910704101477579663478238874490379330228282399237545223604188034094759590938371027266137200019511045410961603827081640844447951712208204412158803183194238295774313586753465168633473012267439041582781609675765517119916591626375927336798778592411254460125992248666679812180418912779375136324385799196775774965780909873974890344869850387082115207294409353546105581442191147263733521029824540246482920299704109623396326592159655337592460918400571943679885843467040981386087594860300214161191844785302422002081411566261603322564537137227442761697205363397623823870678931678939131733342533781400784579679500410711900258039139682129484502450201608915344295082726581083362502318139811718130256648350368352670381371529086856544651522764761253923980162284798102873022991742963239211403583410491756801683114274810381223422660295543491624747676597711567868665707642548830649979375957946812381450705495996489328657001499420734124571937185340861736475666762199399034513274797640954703074006323530160273190215096035319018852301298155280217503084817213935307708735121816618739689180624474472604060841995702223271308991200747883635731721626984101736823971526832628903761595845730602340584854946826190191434471676182850977443944092140912181949504709853836067766436989175981797011283385109254192126342613717779850030115069628135706287639587939656424028906141971868568891411321944557318180740165639837940615943814524301933521173348790696163595760532821894080076752672482545211728182136519007514396336693922942244593695329037485838235063960414159373658051493250455386742820508028730581387226563657808161579510181934515468821055403256359013837566552557365696328083645451973440638288038593803677488907021740489155963207961389620495847180605887045265378373369501629900441075961436991906621953061268353548007980889304505170728013602827883999324013215270217751996582634472149827858111870817934077816553004126107719251636336475734904284156511393071536176835975793690432495086391998542259044403260058989526877591104405833165201211872324256999196595829208490080176320934363744546094898515838940114394201252891839995758050437850905691627656316585372815662117832538951094472934385254675266029236895177950452464462787746167884885197564584100135641320796854216223792365382884577566544771678339239396893801497736259181454625476889551083792325787436028675436982477742100224404751490563870770773507062339457786715476035655694804285123471107308748904514050890537342788112829672993822629511197759838917151556669167596347530283204347434789079935727887541277630417747528434918695086226131987031407732911960164371550715802777584831893476019023329846862409897567102382524464511052019463294694017675723761102683541182720171372111290959887438935085620232717530526761569033785682196760918897016162957698427010768944952385976190002085246110660592832692265877270963448704188423429650717124646206985022247443644759171365915494253968307723421306695655968773288250976324144279215265149499265884923942712244971925527706760337064209706881392755616633107468221846322269771214903446955736919548831320769969273301728825635256317301544711535195654446635366350183994759700237672978908826173564783836113447677915263305643784880847627486619149686565747410112907130106834880202452099791382293121574580076292719460230438400981428323556412383872028942735974134400550455528912913443496825148175436736381361323416293795899293613272841568632885518116841337219064499446843930510368030799938915751897512572004009306243222529008545900382031856792434431804209662213560451135676760021510630577449341010423954281405592019856885711786322484665487544952056954902374287606082926351092029466794988249776592259375231487129993054968012687103726875741746337152983388334964042295258747632790451239198434685681219629530051940180831147436316890014862116833388046835899379186726693131302377344397133899103181450433685178280106567047093232659497335891334911998186273766347839700733412249347704447677651805347753900911400776945548709986694161126989454313517394735205355753047061892348163024413758235897346516005291930778407028057687823939008393448490761373312150621298684719377641895490280358965625753940332394947838789476037235281422715025443558885829794847647406184232133102848375022031340609081639509505399683511549324333372461802171565967509217644980410711754544267702052144302356389052835027139908825190056636333364102443645417720456527940566164703725818067255578840669682520199190304762850241721352259460727306484950219918376013260642906939745287157223390376937278754684066002172332447456496898211209076322619931830491701301577559833122309583753095032245180753463347218383957090783140204144350875532396892036462242394834306690243892830015203355229161524057105346820350362020379965798306055825418322240378298700379603854680445794057764278647340306208012811850926532002653610613153094896855538237550804340730891871663283347443135606020876583458412415376174820008021267775852982634216763991121821290278502712270225238039033817957968923948191556374050044649204928923679062013008126943234877372535236596088065192958836291098995584672442352862507086168488371318462578577441481184024179915327329517737963701214555548277839612352144431379409028283512745178440581390935507857066587225154273981451819155778559234983525812911619712034937387895339152456908795153669529686797092340000923108173774173885255195330275079503140300755614140839172043981535804407104031500187098203695405828287398717368409945572949326420596075798094157269702882549536632966959952545071324876284878139376838624789624004796512020042563607788221974042241983920749087068337811383847947358645312189621657332876499492912211429531725387803986601263075585824640315741256789370553917184618024029486339923011376064862064192713871873104382161596532757890284472456146112788020479371563613531950290783074584537989531627721768578158228682898511953089573620847502205236354820027791214154149609228771940482779106200037730836299104651560369898968561499574094624437007609820303899902031006071384533159152374357298105147957439178896673785339977251511265330931568706882567686417708443452539721670696928640492190499505653405726323471569974108497091904931507513394815219482519317826778607346557358412217733249494878718793477140340917328747071903820436587370349510108684395367925249397182128247303031558850572615064002047333052403802491763386426175202469420198263925568804304199222519391816262580494492499375299174449050721179760867400883841305997789989521624028806615501163884171780126054468879267048423482830063055260413774171952221859043820716520210290953990487621340562454173053101974852497163699517432470456760444061400206812004126317838683510737421478710858408721922158386588085480524697512595185146198024786449352825698620021749593458588583267211438669138448742248853885323073758609178128719780542955852729368189438778846539518994604845992786876271543159789875906125272181987117919870861244626600234396561391151574835005124099803537292108972350511716773165354674600133628478448156597974679514588711256477755804676930583327776294965732060926898995263565234817841896413901667988219969128287616601096846874292425406977897801952057208119291959140383842657315439918873315691817970464737764130474985037751546481518470953739059658262320145754892013287098068518699606860949869354836509699526177159796209143686532436292125743552347563187259416109682802913190636159805149150440848875921737777946217351010059509907546694262561506238324223642031081459773208351163995197307934070806056586947418569308074488660310167499925902322916682793109521633832489294706096203222263797396544914457058997956955673230297787112018519697255296175101756353600153217005454772237301742107837073954538720688538195550976283151127571431395495431439558191618707905182616194779507892984510468976196167961623101159582411852435003979580868497195733754716313429492742805027247685756982952469871208855535490590669753314397936562613307357842316161839606046675376505556642629334031305781039231585589901907059052428948175454064708978798600713719255703269797355716521753818556172865971794548363262872553030117937314073829502645595335734551888683486842263557728878780462460003425656999470549969546283032792315285249305810741640505135127371543201164652119969629106602557761671448740237198813455391547464952504251987195769103537663203377001952881713994167065348479121388433372425682759947913341465755524118015958765585707640722443497164909660157788713594400291580320549884461894577086681165985485620943464362137750040312745104752920999334387415529133296960520797180977834944370362354178553448076340934905476287310221034858525066607697333499094465909851102469034453305876807371487603846147671126029973801847955908009290507608107870440756452245464655080523420192044533651564777758075064013710834534240323526046907079167421194454587496220993143456374478206894534646731666344194718778759855685418133859417634042416238570368980324423987700423403070804343199211958633793071613726602808215837319236277471124509988844151073628147716708228980205958357773383848534265853267076198350732730856344601525416990301394340668545334306880423163068477596179690560037037831167477543127700672956796898446532549014756184109411922777807784816737340663898067385951923923082164665840921796734015848828506944386472266536091013240792925435120973336898096468328771058596559313687079777454818694712895620809393578931502981019469301502549549335630867475494219721886152549205017138281602755138873197663708817380452967197887609540262329567123848156249434554067747053435395085737509163548242367208949812378954619033824107128671699590805327677401494348306488324836031442000285990272357565989799818205993599139716201528195293993787334456803090930039233957198211680597423147667421367604502898295334626428037512009348967736486566300986212650192638646495006827212055305132583330124404913676757858380856246547283595475777182759880861355683017457533180560173084544804163561519662388731450367239284690171914344598224862776817846730487556825120777244498887966386277838888660252328235107025002786578779052449916634094171128607929935180349812599079464491236631722035024238949024595267832078689043671768658109607356668585966851760295638515565374723525815158611741842782181505564091795924798057706202963361924739159375921251868454605368689092207447433749973074060550700455073880405475623112501893690807271198359848115335838844372586122945171516769014649598547108256567341544444655972616782503842677368712795062424832093052211483887613785412440294324061438437645870090019407066469983682531178031665767851551468728308836906039355817545248799038998279574174057272199161904339210250229648673756399139622888659606018163964453954008244090482626340197260966102961871852468210738311355313638984121238467487608688083612742773149986603855878839713795996149442914316688673398030975197449061596030746302246332465760207635051491746536974770845933118775137857832734624159760717431824159440142566792706586913510279886868569099800255945631882722189876022924787248869280011449625272589883719603067835049142378614714007463270603274121919532180455755551112513772040022469905977925159669514743614097658670588719207779766346862870549615561997986937806294892061288837301613016008908669986499329414638942850067251352750047263895078949152125696599469125303021926692761794785984483632639347913165371951638171959045696769385467007760786654187342854960656531028764512114672392451215451401075046948524546096724420984467671068697386332892086963724251256842144437966473593916634469556001253619804040040960585735270829753427618188012582902208736621514810400315775184317195305171259990720149801289911758792730570183797837141591251403577995398435179639082426129986253804844166552744948100983332148910390720910253417082298324871628136591836736920877416636681036187536844564700339823219811111856842826050106665974850452222811793132848054025767789145016175058818058106948856070056482096903700437935478040480421539371908128486180807558334229845862738798731326903302815112475173459286403900095201964397870388038947656780196702457924614601702003985214811176801201419682586594377019895922706699835062769572468182096656412713080078669829488978451212234813503135818500653582869722252022184869091333737906956553542731144130892962414390469014508929547973128415199662097916356697053501953779238295884788101261546812825151653290715900416422039659733865220135519276986531928272621759646526985228595315297996538817483974862389841743366453615039161428846567392904581014783954142183898910847418302660018458923615785210262739233358248731734765427910636288303700100741168122946175389836396316062444528702750422674540546060674834714129558587584731027234707654674064487278577697251220424141241135371840264631815703367446333520412987134495141223242220559818540588234442318073346240163347904783417819034723025170714297201208696393517845653305998763496787841988176300503228548478568349520896783608093379973943469781449699343299650478507306398404056406065419554085299521762794988623001212292154258748717484660105958380152157910091752675970456066991700348895628330289435238681410264379649363175962856994327501368610672001657984846380170245347937750752357926016600061808872767435197666236178409486733924283720870939895110564783531796220770055031039877033218197409109815154436012810111720120073439124276877357399147130185276098406174696068971484431457955733003606543763385494079216788605352595128071254530547554153035629208872959606229549721619838939274347725859067286560813736630998587869668798726544566505669889928192428885269906648446883403929445152961792391731255653097561469473293204195754431623104052360849627342926862299237062606350069777237456495093017959170268963331523628701214168117509175028777805752156954544208298813794574541625579161564632676192114545737944340895558625099671973970819511196801128233417656066056439608567253369150535432467377730932512028640271051382004158763034580352244340054807358099506570797833126494794439188336805113902110148797370431253414327017117562421035016421490519218454992772434639646867733331846171945160163543906101413733281926887351995110304749866391406746991537840114863034694412299748157867517679519351654720128127610274751766871651036052422326240466442151865054650848236612798589244525993425005112078116072234500366673855350982604401700154263278467019105502398430508931939396820068696415121467699581892073633375700517159138899139158190978617847836512449582671526589596847502777576862449563057773820069746817095233256351492155427933054080532001672672297378836527013546513087055127860214896626450498435414956627496829654845507996877301348737677658872000911427443746936288354013066049134406211496236456545397847210877620291943920125073140580191977676357796979743784052684854540188112800726922063750406496340854838152038709592742663525184084104713038619617011176725361358580648776543168055156954470233497006537090786940763829357188266171251946349474993792658555249650521738088959564046691732090090483071802195548398530730269230372410348638711859165536446715196746325158673634796616274757612863681099036622622279817057525454681008149936735358130408304306779244276612798094937522463855741424711341483514902666945656259591725845457216288738766874221084689509973552698079613748983187687214833472998068785537290121754447780824018859618786708378831295313516116723860798047081084777032074227299336237290758363914927101919824153557697983949442350269925977593862118034725454711639807299041022096588877936242408755400453657522623144606229735046004181125411910972442888359583771026794296330473303009913340888462802195493748261014468198202086821102556449234749869136589825159469138858290835760116437345078028668369326640814560597456646445788592703992297485002579005124609914511695494106646014896156423704330711130512490367042979833930287678203362066791107109879481363368670814667778425718906591284239518030604114488347898927241310647880555506619787381849714388849125028650170556293904678590304504513516103368351269604060460736431766845863833752914493502546828875814517354206322340084329130689849759548002053413820063453249471340253100336877260408987602717733757182978370262992955006310655896015495086888929062159733217254731668611258997625538410122561238476619191338601298717067196389033093859841189172987258681874764971857036701723221396982541279153374538885994258649209480004849407668699525198285086169441705444068386731798714864691505923106358111095297729637094594110000760158502228887933268746650905542316443922345473759589516058249999253877776795613930032732331929306883703488786878675640557732059193504521325768285058392639822661725157956193129548641603575895115055241735641289365850673091926355843559154772499447616985146466147558584251978945651962867592431465166190906040612489345439042330678156613749860884473867959328352192293372827025868381032415012745618678447099487764807869165565866058545499663657695961922933777991219766901558382063500063730348905333633851787582613264847472697319062405946927882185259601014486128882374578334865057628193848067963005528310811667625735916139128113443876605418091951874583683884907334770685544102702967569595653011300032879232184665138601941059088735922132897314071357725689521102182566235378708787183500435406070800265432432821363768405279823443714260652801275564534901701648671382451199162192407040791773489594153813629302542431834996307158585623780931974320849065087335535330933883722286496929575667019034975273646270694132258925046353531128993880273455549927338982556107342632952734264778639302736175837735684713403342929645475425103142774871529159326806880687308848234986864533418567309239797356545482610722936232566053248183379557107852843370051467625159046881238640212533215839605299720029112280872722621867783909109033971628921992002631921330803389546739296100269461686711289339653543101296244924079327505470506214396952774795974135355654522827096861554311302813949131654487641589297651668347550120530802218830357956706620574386356983246571664310845157660999512748809746215932906772063183695915883202738761628101052105477713845387469636368969313123668405694739698958840086071787759899719983516047770055368528698732279626995373730503966381310331397517511702841579904280328997748512510820278090628587617999754266636795788391353665574398826756796491319484297266731880520297402636531234603390546891368385461763128275339322094205666858765758886355400992407728107915879189672819384838786615867237904962953990366175798671267037389219445968071497906147545861963410592852222361505060655259789575399532958784460122010972481861027244839147439343183556213957339905471350843366573390990594073984802999618550497753550281879385119711574956587567002127576438714084573123219636999792962093585192095313586510635419320089114279367052255614780346558554859392310130358758650279648485084818842974473183009927304265159588682463086203630507371653512934331151342862898375895849253213619736011635431135099991350947516733461354422043682632994524543103234547576855368198748231195339100328937481439784767262637762043934614487505732476158701175778835553842633527676224131165738759027701724109211014301784543540998727462013242769336044749765405973810036447137245377651597737194754517688071576653396498477936726507252848688613918078974901480742170043064541594836725608328792894390810303895635721779418524957163463276369208979823169665551041900850782945663939024263172804121423035441951420786078427124820633758110380509353558504792524992324170151588523649969567272218023673093501839878342458236585388154425994012840276903853225489911925928266727187872314080605067560811324089601526639508077928793422670624727193094376846484075744721166869942094536481874104850565997959878298307746998247140185557182470591489585300482221208952355891459738149640704799398561895280443017929892718155945325858136011466540996630600945356471147948212416137105380244740631730115236564735981405322471587939809591822340420192173950175587911508678417278719082805607604426248319179552290538292616058380318036669505627825335110940147438527240165115129115486239850292707049719822093705774518280812046934947898945736684560640078752588608186084621141343445154380332631122642117025158082086621011761433337136181464501726606970889099003214375317296317701186818231645559442948703931766347933894695162819645880089210577929765266532187985659695736979467524462790107988316645217224072578394241782300887781131135843502125461276793223961020527017436221699156094822109818471475376377358875417048831857068240651595592604345079879129130618627227187038237931216105549962755964732753611704508974849917960503491332531933778117116530978679124514802758980609638134142358518558335441559989363830039632468305373269738687563240610876895623520668934888415537811224123013347680806816279426570384620289597578615827697052057539756709804109231286700949562423794838811768897270528332600520314107018657937669729991556807066115768408466587503555572952408810591667620454632459408377398189131119373893496164522589497034612760574261360074103199451892254807832232602596119401964569779898813584160263991331438514859510653581033795405608939906760354506728599552597821304250671028111694925844223264810355705993338805098858430383245464938228538771855016338300276379717946472969725729158913488602536120371389991770139965026447453547117046467755620481811544262936142450331735279455062150587685597002593337662290067923044527123830743000953328726407181178781292591211449540901635704326308462052156311757172369599639351811366426663013485661226221230671507176001109597788130870541820779272891835115736737591498407866101514439346988526738910142203647694724470737350634898028331774664294691123861730182457553938899766934216334960201600015952322322031800760473318251058004189363193642637412334183156467353875527418579167675014661876312287262328813518677565251388539060187075364709455638403622642318851978964181171318672384567122035651523488122443615934287403041348677353218118199027150449291748749294789995659790536410063612559363877995588346527860227128986294099847479737718104057255328365810065469327209264547056328211548234481945719492740591036572989552747891683079972332468512449821107778229115744898215763142198634119169092259172055242745839309511383978794550968921191497885914830626025929278162403535352878912627434769270855791314699349577283336932827942460197617124421734570411807036069353833110821693657124619390129880695161695773737509580753477536499562531687137159880970101169088406062418890512512683751449919922355402715485890849292879841090199026807245313541182361832841122776467497215781090182334676522285304464478307521925326374017889151627823954523871743245340133143579845960183068761276112405000588584719028869122438470622497694088589089441256219238455596100156374081815991431031389051690666157504638754871327135219694281096870946411977098577274603922787187727030740055994989956980791550101160033272389427678280122478862042424690672974449976889395317198828766341783101977253680593595090275111531330700293037759402684409404252786949857800510294583882909728891032258286550978777358355289630780610565003241860901934312887348115418581507854775477671913733340525466732620828892412245220081823794257084732338054274023872678055894974527784176958841718487177286943545674962186274023897905277373568255806751998842078109216724370044030402116867812932094074935668970566741095432375601275772276326043063414776971272046982209938457928207583562700316520718518070987217617938280417190940634603827171696270587520886771660631854479951631358789228208429294625596961339159800757752308653443065209864744626277394403183321916601796669636697931062156226743107723716512388077217190457916152512005356215331588867396922715174602750646633249147227556922483350264289472786192215491259617576010349435161691472814358366585696892410226722442334203490442840723420323811144877803023670800316817367592169539265145362047384464983351411898501559448368386729129634126572984615353639319121440920927703396785914712545620962843293846597135853953858097868379608105247297407627839535331091715598690150378010111949473708889994358535492504181082597151146085041016806385342355911395714423731008621894296161988551965766304523846062504475507487939694445977101884056326141160653359767341117650745810568927859332488020573252207442260059685798742993665534027636527730161612998726749341438573463366361712974648654796818183747620468441629676583068151774768896407982688257151392906174748382254041300169676867780450876389222187649190138703490889211173776749754939376602858263997723375327268007248030684523273531218597610261921275532089162838643714964676042518839806989198995328664457638242909433946894572395563272637844646666232123203930242831648473231028557984913743356918558110332602387677554294548469187815431018141670471203618182632022661397888806013036166530085146107165924125331444776896576044238652025287745637574488199055199799744472713295296124198416566989297749589095383356395830595604660526962754209886270539581241128947295495553055716493257542008570271857429843926352296486573258114655964848319346123988971291414401178701199331053241675763881497314396975759539531142296462570692353080592948557397093574033980335285866128569421304346032835654777026587230385835493957890981724877348404661035294493849291835820044594629317846756836491529208430579485280305627912576899047356787742100757684600583505371262115759447007460800312059671800521615155336613672557772138914794102391091254354948297625412448068331879643581120295855735492431530124139920308648191621477784420706546017403283049275024249369301769764221782981451781118220988287801877634718098309282365181070879240873035693681615271819870872258358994429817419026676927734569441339744503644799704686170523251935209024306073408596038826585423736837248452882351468263014199549385038380884825918672457979403002756191472469998708348060622284175534017389272665952646932085263062351914864223280664880076768002756112741889670423588816509056708604597616564516657551170525455525530640579579984442221169616910467272160143145733899861419553563972949059321884480630074656627834111799191827281199510165046878863820329148059872155415973988367994099059132280442218149439603917490895055218605808323429935108648115376113771889042182674877376663175209731190746069231332372696934394222241222498493203885122010382888588552598134497039193890754559223531302634554570656375737676124275897272555807407966516175360964705297973369138235581254764962264177163220855998518652804263428436325057317558034944466751754025430414848998237772963273930001093951440690540934454216703506708207444154458044788698330407575289411257551844829481972998649613038682811425923814142445188376827427349965807613748469709703559986068837443267460306942934046764115751558193544448915622883480700122057757843435238630167166454469768344570164797128207771585925517245933930024652867555242514964791356292241493854490692608947386983152229889904448842722441569688221437790134894544049269655196983825034174387829175647963879366831298809015036601534856582555985429751798184567836589773936340182735683598846475713070390871173005323563693855431357153023322958070301362132475874366084113765171751315210819253189812132402886299345550101608863736050517854200913829380136126327349641670075650257281109209663113097611501706495090707953363031818094318154677712070672054408009455724496802117397516899558904569897278168761434336713047201264605735090309051069384980093763987662940236036410322505172788927793602946407060886425688610301752024738668206104015332961027484079493398605864303142363330371257221617678175439702393558993118828489619893668930653095355104748031516651446113474187181983013807498958944898257549625954316943237115926752333078485178827868958259890159282823000684668280378651701289349441122683520712738586957105932109472475258693973322114143553416038236426990694732708375872346352561084211015906496970294496131061686589567426592327637712628337571936589613208833057842478510561768537556850020640974957574772099224957404523071035916662837103825038622535539256050500213269593625791329924743633817152471861722927585927550377924864861204681344590938111865518899029138833727649006818755829851624966410358456904121178332972972946285023832621628388230186936412173908675855432561924510796602843842626182929354445044176123129290104721530788604225339086811340628296237071204590858265460008799351908567661163903365622853699812118174318281018766986853188959576257153649719855569381109887707860476687887417799255543532384233915386824468116334704833653694441309622156155818363950279845425106665005934228515856318284584193925892089800525141023463996340975001850641740114535340279969558643048291203036269120846597546419649215430575532033553286896953551621373242922197022815889402031601265330555068535005911476674059572537201654253263336321701288054431104750324556180039956612326410186303698594578800354132465416982338022062371498261931987255762152365426274842258130642352052152753836184408670385942315545235830441542878671148338726217683344464655919378076386854153864133883716659102858877835103505476727074679468061697710322509326243962477855357777529866683362382271205536639981075919714299351359128535539347249018782977262743309955242982832206386260801716861284129510527478692257092624254292318427747278622644383846685763764317452344375257128450743367565355590875491101019226155322570190857126494908131559980355134350607545865099823139603031984690891286505567316847721501007851893026275925396557569976301977026608215649647759387629739157710752771117025718773341525389074863400719717652757520662092704686603389958738703019614012913635025865788207871282142588680111574245652040252998061438341241213384627960059961556438961387171067185400134150024099089095124089657497694885302287630365391794743743694360263518404664056765780003946517476790345815632085964430601482175707608860198730729441817871673754963071733662069132341740667258247905700544493503891578710891340690321784313502655531541864888212448730239707667757997977820239999507935122202622943001746603153896595969998734276520558605781424288622870068279277659370639335213110038860030015826937481804580499342977822380447862539333320582200561753075360079917957675888421152299498905833635769534866539539101356395032299633649809457557447215231429537562432210359699940417671570776006146272091215544440765894001743705418040537506947092133401941387936848407355347748171809339525553198229026068705271884244044975641986376357201166355133138717532847264821513079161440996285844506429748076673192438457874309351958988233118053516723815773694364507322902480910696187369819076026030043430785623768407957958261207438591547564478412586370977216595454842158997867200453033494605798693122045145314057904173630245651704526343571855675258989001038007817058359511980340129692663947074134067349458327413688993262011774091102234897599163279837873239023033513002804799659989882777819930202517320683260442823499078120201134622785758398317468617504014632042639245116156373187889988679373956643569077014935281591866482051294124737942003483338178961491657580174137125552926372007191833979718938553089479861050855365357298795324484132228020914555291603808264097549720751176040672140909155376465088250659088068666889162178805416554252366757874861736619836419053793160508182942788919349872202820221857202502465081128044672736640220309157209984862276041817026048032490702033204351180324209528164386079279746733566670101315045512363019827519000027296511517814617941821422393725845567764354960670013267307595577572291582137984717124549421652210021729720547668592935665495987171319306413349580608991666758873987217628676722975119858066356590476813192432244127542036014079203657683698690197625088537995188277785116870075299182794951063235237981529174884046075597082117439420005564695402705755703557239110365127789357088267724464006376756472387541411306348246162768323207836403655018746884327039405733762075296796152566900818329814274837399385128414350928487283586105796301089056680814268852929270946852789210083095769371759266897860888112938684231079130603531454035942260520376349298459162855503755518780510258677774433781710803876481981157799220760015871482961668758030313580199241341309505638969701332846923181456435432772010798572525653607651944758129850347285806247851955654293909564521628548071703201942366865803330988649868592394607150291676296198397179476186088625402473575283199481951860609746515258490806069012567608230557684774409353918317363611607425227246572102123087287321648000497807857693964823216984286040415018997130509523222718315344418956232482515630742860891821491310851436432848942779619239863663040814611433612879922690530318666485117940907717483931713682247101591175673846875412671333954456417894069511942472894238570389619462906417942197160080386597759417110005341895472609786367270840364261435664553102372552084773382839978418201927920885637149139016317199773439317532097983683795424193180476224209079806495510834003207886358488676886841314571482103525726033113499426719308482358117910512076209486194605676954668292796945843242779887203493058931330756919656691020723691464825356686813193551140920656322630351595735450689114339135599397299403758401778509124505972245990173013746262848968996545053261612400612922654793688683215692214620900590263506444678373085095334118774868764945214432976661308652282866844727368323817869547812716730410519884840855278522645458317169667873052597309449438809071352991771611179106704612363957924253181301930041989211919367038042105417282451454845953003078821781457724325080290264170066874954628659327541867624739193897970501396569189845543259467753301609549577268176576361019948868851087077772746355787698366681399208912228322948292464898719772297795967170980288694627182616710970369767312812893695775767744316286059739876087440510955583547427508555557258287083244094757749175151022223509026428972334454462690345679398252927773127606554627894604051205342071003488236702700482180163455661777828364345304502555695520215112866550446552776469127923727821301685011832404399006838865279552379453131392075013525883229202163194283520041974891723711810520903130074208203865060932666920185913493323683078285324090384177917850045980290791374942113940644355076602157556738635581328684886400744222852839142228730876341586063868261773733010541057572219040321375900652208452536479508704931750698924434892442610849825174687418598499788845542491545748883662052971589936235305618898881568981910527258393816054258785200678601037279322286721651235512109918062883437447299595674216446064766633483309225265117419460907720824331768122231433555743510134768278737312047804519327935144628705390391521169566601208918112036712370652468637702306019714338814942112725319092043913029369244720187599782811455256285880923275632639269282410136982032799250249467212841245692446290061659298096233521708237620065952949795096142452192304992474597309491744032258325017772993098564593283299324077148566773867608102981745849508920919290152173204231618921733569054165462838232688795059078354123775344306081551180388899517305134903824079660674340667747246563514411856782430179804221180585145192041419957590975806501985482527746650916513862600821335794104609600735964422002287045567602998604410599899962360152348972789935192827478282415890012675277449238326148762836336587494954239301638464467319839570809183499473806046288412902019301655814370313954295486194273721197886372786611811639175967221093000645610885785620317891575548968275169118846061355062253154725285019581639929046003365343086485696046302215582538079833861727709510138797729056507210515816352955090625337815079900397129448734578584247575136115374430984064640986028630863166979708260142445703981069399125483713062689598900142408518970248348443938501082368579774767454212244048874902162966115861657879347612630169839878018998228597780144282234180319643568636457753490372442694426165375390310087342026258792208469609559528646697698901558344496943944406190710174584307742023895301614106877121511090069879373129531257356708020278953202830166339982001758907112999483764355797041771685470209772429391346512449194489624472790038321269000511362929296901938340849868008610965867299964447696085145538316883359299713569943530670434487872208714416113895643854461518652586433586579682850252446974193959699751726883933547289287953155083883042523559888120263736607215651718215778712939142255110624021905360424985657169107316722320877730153852246922972399807477727420434482825071954388471347405055376838481589684558601371636149615703420538093221722810636588940768428293746977459848522676320291975216649984674774675499231170151091594087726830404186496868521535519356334267638096570667578700560682857533418305400566846668456386489152091248226492654655016642698758836213641708554052931549654889567572573680053088618215510608248559771378278408294362283749293571408238570635965457096444500213233676849396220860125301498797179273846985804205512620947623990962199074007428556475041108167709667880471251957701066460511780981424761792927932285138855114993096829074541245823778465263829749468019893971736062443479667387109250497646627976555427791682391343893643247010484663585215842466619829903248645390806717417648256835412736811737010316124835817040295411999433572244011807009156767263070624068108923232246810070358072254912096287939810667888375776115550295768190370151008275181493250308593659125597213950044832808164426096107643139715145016174753267672031389202277093487063137505859670960881848965783291186754949153125939447711354419373748777399805328234128958088323201240129951135754493836887986516239087157372828841080124783723631393821488999464632438708138413115410479367174347085685359452030111677740585883174449007707236202227977786333114180941368480985198521083153100691915239103052041720173121519171282862496189365535624953524251538416494848090460398661775037184239057515594125794511073050060312307586334922826645621181637787170908948141727774083736472785666687121073117945744352841714568961735492779978293215375854036036872589410871653155224286887584891458022406512072213438157553136144665799512389004250014653091980201490415655553360733225262815398430541668709914721850175141771714843498816081779014366596068784150399686802571547134128412042020881891802978239988991782051591076520047016369318846206174885155364697367411349515444968295826268180055961554772979898399839903956017132792198924430893997095039669966244624571964490766676509656424828821781768730523519624243633788551369151879472687739949000037034074007849070691179125669021231992383918079314126739226832708081600743525716496988947180943080562520033815200503415073450072743490575267471949097890429245281349786672174348641420552967411630758142730704755282827058721852407722271982093031515791750543902417245619417110261664291634678462665808922018318495106639809780090913726928845808606340643881195599721600825864233325766465866907738696601561890369606781256445798165759272075108954015776203343817777546405919642283625765782351842025281024055143510614389110492136057757258038382540898162785940158540547130697499826492572636410245141482238758929229374811408691711357308725002819736356905133647149040669305578695269759248542654742177059055273877329429997436772534813216710633293698053794986193658957106972881712633224158192124459036800446729375373948572186716559514293674798608353360715928828488142707575301124802415191381629211010567884920216754001724364000788170504674772791890922647747824154229551623683609332998991125377211981881988338328445586336004749869693525095240023952029544427840172200360975150883219104471527380610014148009566326883701295555336867587676413687322182229867257542291312256182611409540384649136015790438940021820864161253662223587699063594951779248534564451891316043753067324950126128585444890167771325774682931359436108376857668462702111812463646042795156842529053228331832840657445899571952201399635908652885111951995980756574345134081407894402637864895125540784788864011393868958412312885311683166345649422965429603287670405379552698909480763234154168800476838106561379712743162807278236101895065525597416965871640082684915564910352516813412516245959679673547661194467452637363647449414484215496092072293769635909965016947510271051511773092301707922540063218146198679145873440099849837248934653918819873236704279246271926878595743587473466626331202084687203082105103672831402600111688293908024274149582301933403493521877637207304622235996378453749449762888235585037468559559409747771465832835054299719973133967565226429076641084494086457723451934321049239470431601314174670355685819547177646285682220221873981708161945592011157585686575092136156217102698319787300737554104815125468080875099503578563026691560178033794636924052412211638842207835553563608777746030416533158791221786554432701231808934536229094221798657626822405754985981772745164271827675555495698300444233794725148041713695891231009242057130058344357867921673920580795765801563391330875753346038153393061432539107077842093355097413027445110481963435817850427146373119020355001408348921792605597895249400540185192788637823516200224003878086265871073226006871912715064222640033370193717349379911782929016538079124600722968339763039759946402985900848978575307928023943109250515705729790444843016694805152603291786184897032943726463015805039826085313494049528696082203863834536436534013099859253743844351234158061027242675397487130884125532174923321550108999880998232885145839963731419891743901609493043246497670724373826088183214028990704279005568261328286737968411830012361896322131607142281976361396724970778656235735045902145025020463619245368911726956776442327284046263585058260477794019253428124298992344873666118052004675755026094251423076008653281706562075822554259427441346247945359352981249724531628107173572765201790768647399519993456750530014499600315815126906244245445521637397254075450545033785207024622384213022086121936275815849178724898142002185046283978913103995975760147606638978989614573080074354519936562598314572080723466274147687654743734511534415904694051550752372034710772766153191465363473143008164067002018809434626890808331195022653606255391390079546817686628761690497181765365753968744501319376374062473999089692493796179231930912713916228743023603040251406955408277052428027287308281535217952009755001592541657539681665635029318417921495214972743623957174057243254694633385928619173054820827262092741950212967432435636594552061157257328038401510726406450514668055861698256945564449524682448433148065391391526193740684568764877602840703737920188138010199532816429669785243421539609162550154831944705845055701406936675601735932934461667136650076392033969642992782805781269771806609339456189681262696747438839955683576670456619604133077162848093062388033602429181817209878623186439064823530124519568009265981371428395601143359227418109647380365250474692035396520709391380749308584519296461836110510885032976120486281608715524069914626618079410731104640242962509924054949337648395302903713049262940371730108229408959382753145687175285254549656311466132184300814892510960383207950258468127740937818320575065598338463463458529552151338898280172539289415089623321631901997921936820016945018584314589443860227311587711831153880638812584416687520037411856918693482126566211380491034546178076399242906869825352698217169196148921067205210032332601134376543175594723369273489499616409934561423155106865581535391876112907306981464134184175935549854425577088751479258461077226016495882875174264017529446047267643336706175483304303298714136038738338706961314436289699377240811304846397461780894359186008462593514947184989082963491633634804849818186600665318108404131716591189821182771336232291756927599043357353685003102519867322784975060714648676664303842384335580617286748596725758560659317538773426828027267046985851741223417521039750995225960646905411711029395807358384120701647267091563439833182068770440689556477315325462848637903370046386649623975806197724469193394879154608536076870140133694754404830761827645746416837209996725401039165228988121777218088702191561111127667246368736284901795739471521374958408118483462781577636343795335480233875959471218872368465624539055782716540700900714917484760060350862354049460484742264304390978573131569837293573559908115314765771056240164743627826853991847208003428024356825312562274475519865938759563496488475654587760716065058518716996645947306707389441496101265918383690397989010001538539474275789821629286152802939217459423983487473279725908627242157261944442020634417130374862600029908568915353793284013627853841644628140165653564681592719785394896717013279470902749492648952471436332083950882535430703038495008211717743041401156329145832376248700891479223628416900237430810839787577773694675851477145820204524658040376753222100584603312057895824079702256196472200135746602310506059901734053738503536828655436003704667037811279057851647898847341033411287246049064859674665516122861290642141449886254247302762835165729463921396321949040688581450445705534720605313100438953184499169882888901361600387146359739309038244837405314379297699660140280080566506807926584701930050588572893501841241747429479106501146318978977333033318341591865787906344372717075520251315007438129688640321893220473987790284694988274485417635808680835497048696863740573700803032292851700408698415252787264728979187194668318092791341102581473043986311679159413728418165123212805846637828737631742522703391607255503098503394109972569553357056829283539534040332012997729333023295025950840127658875675348286251014808660889421439349919807164066919404724541368241723354708074400283016284531725639034593640891898374864754596557739136112027103638916621773004953852766753935612149760489324344819428923916132753960829132277724537709260708479087810018944771916122325788429392837538092517948618658118981716309973409865614278648527463384784190998128255134040596278964237788591958374831092859867892971588135670654045461383755787633334404406434154998377486649620500380297909214743663865326355164736956242082724609754466941785247960213946309701082551689213793685939044881723068788792389643665359404239483536148126603047481872169394560434326875000101622336932010941887989057136600432349869839230021383617680104979926749155778266478980850628089437465846181603037153081084887988530188614026831192296956526225815190639291148744100831910038483570447100849373571320001265697944145441604695420725178697217706902971135887121319834320058989730890908256043018010667505630902223261836593337613282819158745723411582006806885975294407454664780660032170783038285003998512023284167347974478638175450168070197364826722734323598981319721103042933215744776957427050173604185095594604983222948114307390112054807190078645213237885925194688707612960720156030748160231690828446225469173061415764646691574310138775305265459323368050275939214154449688964171137712549405630781664526210259151440012191531226868562699035723577022523660901898817224214715302487673443037485681842343347394394852243314574772423149903981798799997784927306134497696081224574642810683016630701452447947186820509448696663755251115943046772884001258703345622845461169747913334686314013193530152125555695201499634102799918211176990128819571337813055164014230513619289406617666612843480124711266669833835355472526444428260965303728776205658501299993942249504972393901081129365275220048363508850039439843367799707409548881962344652963776044033545846054880218669661217162837734616198199546268175149867821949707703504052831353861268242513243184444969975781274097783045321658480197891786011431214763536873901645194971832961265103725295617674932397450765437204736832438095345767489781136108363490739638604413278062580872554472046602651733743379400672166125019819784614732036034236058085920295262573729101362761820890746519544663680056076230061922636506429048751737620198873724876605682808685292587483581967164202754655200388926600232803039072548761558796001383328718701739795322277123565626720882957438159465961048904405390433786114388310031863871422924397844683184628993658829971833329022958785263390217272044820111299748493766690058581154850372468158016202247492417926689104269010382487866155012395954187676171812108281984077345229259942545861168481963599415695386127846496631030182777784917968552834547104822240289568368519541163678668806731365250655617620142384899968462455993566567397963130676259443788561474290337747516772315758310846607363005974014686445167519825040165105705737299810267563467859685156800325542967908878870003459300818331111402119985693319891269787453596485892034938046038625707399927706443944615688456176481915045996915040040674366643012329804599020388951279414341914895493643108007021848763269472899771101894261045297168229303256585469680295328463900408325367677785178749915011399655588639985962069095832427234246866912262724220406689003138467414957562825903806776043471240983466066581172238546556665280681756339325544992440195096975951798034955262489083530077483301332786851263177884727388128523105042455219513009021269083343605057838827061865370882531479222030336384403769719614708450532965053081683906031232366457016636922456276805891897597127433317270323512800261912611764630256887273059158220673919178813095299723193836909070546157688227741497390908031324976020022329352777154493957962388402940397426649382563688062042646134816431365597740596342345867683479222679315105468705601771744928133384657643378307139219732065908055352791536658027028943901552198392984839692462917477290512238663985639609550215822550805818491318859668338596902994821531899185173189071897994987291550053085386116611519578085666908892041339278314078885876111781780687389269929682774800221658583807766221105855824803208300131224236508474823686155351182443833195077221972839257903671380916589714979709152392428999232990665177337798779972346260029486126059862839948231439158365242235742809934782462277559778085020429634379658436440162801208385054581230404738510217492330564441374122299529823347865776269006929528657377666191164018575065463022790671599247549478229419331080446896172710421102645552330354246878600084423300627568977016080750897816912719665700624366967872471664320391741927925787051611454317666304651102441843836852101061132724197090131681313577297904002127761574551271990996224708996227751998164606695365868405903032513022097954379644166894615407608841696011167755473921733790815608924383619942951861953119196982781468824701006350245228122120094870916315925133754995960815090837153738988484538324650859883705478872121710174645282886948675786859194511437667590215348429826872603366565706652292011206761044898433218215470576281092850338122163450402232499672196524053194312801670354923535729448360134331898035817073701695026646017755210141236059129084415126273863757943569173800246307040887527939950048112462098475581755679622241588517675540033017839878428457288150231423438087901922194210004082727235312937908517698105016769286584528812860367528973389308133226148998527430292424541570659595730504128287849451319815474384915260801710703575365199877011836635093574686858559557326486439739471678350847589984418087923106213024969366818529961531874164643487664987541821041854587523939019966991760537873692528939122335291396674347060888286684196845178220010852086138006457991068372502626325940397586359780105891609873724430284409281028051468864767522974732237710772360451326899335621991319510033018174210253052182768397019116478277565249172566647613137740302412662867949757150968571157440166620105939409915472160479607357245594884077977073916859380025002023884338059148608715620544434085650538724482143313343749587765802079140971521413074923832552357425518787066599881160299591793203150854079298140135862188046521631903820927895823535545936512961038932668249891194096510940339956090752867381391126148417679890618219905053902153675064371499904830850882127716068304333358371474547727779791556795270246444741820326274701921509405362095366969877797600141993895676779619153301744468718748241156028050958975109432483964759462782647322488490645376534678750748753304415958661561994631133802099580568186992863166055347783693199863322033262917653170482851623343405048520633780077670666690281352252984827759674322680006256703714078164896687584848305849747427438140873683588503311999614452596055258303645399248321962399638882285884535131280637359200838940289522338589669930668679755942571657139914888160289360411228186634197275693170028797755017433556941567701194126440876681269761951335049593462328226006955715634203595598857937156257565979166375253428295814437923884556839271951109875759047484259802164044376958850260495267716359095802322543086240131433677862052356538795219090401766835057480011518233998370108403941237270982652550624653821794499040374766090602576778475461801546218066022652188413424186232728090521400354501940270124084400867786909865866147531627095727115354610577355224625331658631925638740592753019311360639268171706894397101358538630259436565560203405928592843956387762277976603298857948799123809524425489272778710186211835885440590656342207766004068897403314573741032812058696004450494017334042359779577358018838249059000012458725926260803475886317957281045327028615851139962002098908546382839187152713248277537783473133548252872416262734992468833538905522589825558401824876148629912338200634785541104346201566129784715688920092760113979904083852933438398628645819869494332008177253895238775671456065094202752530590785126734331347979026422945233136533369745286926432272075855012734606501573691554545056945021797362282740677422810529523438510075224790398231043683183371413308895641440123785646853485493495069531256610467441878950381844306637843045989624140405368310795536359802766321378493584082004362068150720713730102000874571630058711643193945421959899372571701177925345379683586228065473784104459112468689407222490456887171024903071113648076168284984518300862054868408954418880421303042981771225472102680101595682716963902273991311070472928445698381326808302601102325871866318277491243822599393941507501344274056179242275211778870500820451051714834131295817595988816290601205116093293813031651338401303364712184620304190165599992685859622291336965642704021127481399160962198944701847469753016237947342625061910993762595492743256061748988667363052431522252386720980298997299966685768657352721785770865227083620093735670077326633850773973712118329030293580279417921440142464331250210012654222007804783345249758831111145222497110304985489777358291725896336110679290256689982145887864312857651850689262986546421550079242134832838529528890342874502557981428384852253754243884193391405521846349544772035686845452482778598533896487709831206425883856466159478819391135613073065664100286352548133678476032381705033394605199146352368029476114268204891133710622141125343451681861330735565130625423892095937180225989702419030239340523934285419770702428584716693892511633440866641907478051717410543354756931477100570368565267781370428807484965524990408394339495665337844091298836962610602855467138172890349118080747130335440469434881959384947567797041021821100948592921431787142456144665254758758284763741545474692982597428146068759939699615875823649581895518699832660689701235609896303214478377211895158754205327785706890488558854117607799930785652827789536297090860921798308433999957898325655665565567045885726907298662177751909828841263532413063671828496222815687075577289436371961698550805791246424533743772245700587242607210332754417507959127873328214680943463427708616472195629989678188577180751106365126433041316797827976722047064045164539527669955410360208505154755079440594009588260337423133849380208801063586011458646427115412671866584775707032164802406968074653843537436981342266235733661266358472229161730778356307737574721838953440350873045680382320805699653514366627749707541990139659865133907898157292162517698850802791239441815244599542276574687809371599343649404300845934422697469490901996373442048865221936986519174869125323943121874896127961733219335440278098731471884021451514871603806303683405108369815699120575757968872272824449826738797822764876710340192795135995754846331515115530080997864255321717062725208433477540277072789972245591839798800229469939789755529212609680412339949797495516934120689818415874760567566622058823123916339247804349845042492443084554745561409966375663018159894363187310123829145666822568437917572446085891301829729056445223748912490029573013319856968215722732905423445028642064802905980068845374513535131885576624541520009337250049928924338515202697822893740362604168608826308403739966532239757758182810404044533019542193972633557330699948861458698082098147752901386870273617112978073913568761733038716752426312138110322395430600885407634988869077193722989917223532599077766320593465221368313304548134555172896759989197784428410071265935630553788131472846036452363291000606215862746406755404906839836852760553215955182241615603391404921696819869399371599813809186246698317742747178972272563098108111439312355263528366210338826778673114993363845189546259663826995844021862686750118619907843746693971950749487241048271544669131345944503964343168016409082352706211792564056967039782510083920411926631071580293701826442034891030160413624155176927482168548346766408700911748545675745062288860718128619505006276141497473152477896080521341305277789446782047459145786562265192877477429568176557079044650117739610898104315893447359135737478288446958732695594388467601686470418914242608145600197026393761659479862791253411599162527115793116282860842841091643005043637953879771104730748426888409934965890109748846677683890656125254817051824032359427770401324512458366566327642148610647388100679556609325733057269227138793601977404630582277028880376373964600747092993040494691495575674263999311011955717780185473244003252401383770299904738939767739316584418259472452363910396799256955033100170494265247978161991100735501661616935314053179768422753285104874991783478721590477422153165841170065764599665735878933250148179784074188803573588142532096215304504741619106443728784377314242184707435737120009555086937466552356889213886489974930381834625423400032720400021848376700669887338095911904373307040872819031035950642791594922773319647217189446324995379780667242706836541329659881570187300319697805653316697045591335101021352389791398297362196573657685559811759487796773297944085633316265594542211021117862299731140837476822583074379080795071076156151090331435098689992905909309980154089775544665591291930742836777460970103056751623637097775611869326903600367674890669159775222439365917452689187362803384581329689500993324384653761994840837173830940128636479332048290264225735677886733560593183206945971352316592598116243901005178426107711233906096254552486314133371036595721002063748191068742049227081604725655120420258504290978363175704547532248001876988775865829658928265586158964548054382030984449569879294364958037615995767807051820021691013746582985811976844596661241916618135544978523069863668426529969034328516974721415260594355215590656289831531844328764145426999273849954005828991065774747419734424117263528222003721650463947239579171250527640855323438811804593128335896035212456335415011982849190226561481841329043062530156693193319494674276363837356019063366866162677046875572925345306131992724635492913788268880145634368439251800866274016107499733747935970400385833851898597143205715465152410769387779883420090078093023317270915068821201834297107340209604578652295950727065401250398340894013387810243400694691193139765644266326189835366918824135796931914512764089804765233511869233539725939699309925729986683815478513607838441760955320031857688420359135678409847644952601745792514486731210628338870728329589364724197510702705578444638066840654454432211683485539213494841545671994011211068007753511590272412773699875247044341566843454373341516783946734608652020892953578203071946782822631266963082595409698765097399400142331717821993614445728546687711985526285079462392865871182665815970684317703339819828765051108681040517876905077521027275558067255371132518012450016115003860266557695112921531774975481928301337501240032761001345646221963466413237879056957796235865168077218012859991293839247171381211882097346198790013173974643133558312230955515681794401588310479395923281309746042673605872850912583436652403969111121187378367765266651155501142880846971743897748319893872048007290442608541144811741921426585926583388476833710498574286267177565482240957903519441035821189875072889960819381452047273304890225540454873880183313508381947096613334607804773582238443638060160167122053587210475964844517018000922053324940838423534614895028175280865435887288547416183766123008190932780930343694248021806450758777028418995962037342134317933433090178360716625991761023806520684079294767655350726820465504865944980834029546634131032509312612898995655402099461149396922187991317384529986736824373304162387743102216768867030440540826132299590910342806630701197379815193609080026860217762524511516465444716797397615183779133668537317456697821711465906251723569332948869814683945246409136039141004163849776287161339699539474505169787000463523348213665724737466509152039267115618362466224045721941269234270388504527470613815711018152332031469681020393037167794877501840033788035027559363116354000956709793650784755744736939126757118857975499311866934880287899640646409031872372620392233455149647678892552847926177765829958592989826651113237429593878898590748248865589493366986562401161004840137437322686502959420227656809461792340646563103580938326124336520435184148898048120807201573294788201529455259801864110989565037603820365457344682823857122578922489340387292171669613683670040335358542494851654672374176053326533899467799886593584873184153045130550797512246061778454482872471159942812253179419920242914695749774933574033489792956488714289542998456867382991122973941371501362878184500351476663754850550375349734867442109283880832057713836702671620074979866954338951974087144281008884201694149363406820370100493660118131804897924571023923483702946288272154049390568794026098744739188574698212852666765449653202532684366338299288075594757868040272082253957725129017765695784072382846240509242683138979684342015243270477139697871218043867281164363906653656172170449599200639935572444776350290266452213192336425081821211461817866064085041173206410810878239905848969701901015255591255414809594289953581213133433939532434131377051605103495318853141395639362094883819716670521582596454726029667672492757210826258932277664006760365095993552315006184638672545487914149444070962209756343142957569047759006696612233859920857323834763219330822884336299216153601880713112888816951379845488577640800864250180618495732246545245374153648330250644045049836404156590934592546731779325468068222321257061668437423756224027355428123669958229470889111423207683192557555562727523595939552335473310676327792148420649363419589981185807750948974917833847926210853352946336322609218386429716841010446852392353457379021997496387399212122108034312948845642983546047602028976173180768028540871865670740100366299612275931627658979500584451565584496177962734622568921337962044222938570620419753828283184402939299753481164803787268885916803749903844790837867278389594993773455264644408781648344425192947134866938367680602724834823059001768590766905483859898197503192528415789984008295491527573145546125881172076461342828032713198588324841356756461756133835649342561351345412860839732316277839503041201162553005576075701455480189684571827381044792782691287953229307231054492807731444476601055505866597643332470470374511809895354939496944531113652593507744352216219658318739070202179034644277157187888311155866469925221536798051474928522257127243163111263540134245447899223961037971338858729923084521343999177894719371481976512941348563855851009392732221752904451063929562242734206335691389200214793665268625423767804645959181655826779756968234308890746035374995047793359202105493723663216268603446104732069377601481031622307417708059025773575069840951342049516081668064555188005137666095519040317294119154534955766083079448811482127941967799229178425225353064032350558475978744872889599022394728454408427270289860569060057952982493668306683739858506364109955446941494864350413431930955590198099973934085881153436198037675482624630505622314427990242941847955027985735360472978559388523717952357080387448962392944313322004678822643225916313040309578307052701443652908334294076767721262848730617355563862096064746132545894048684754619326744380764222864152961504341209625054030059556472147579542163810666257134465105163451361978907241993420469364894746533336761182063460544142709956341288926084551315961279496482457295019407452064693642659950597065604140648024840669127861012581817170642712322794277998279074274033472248538706251464935416415568082902797172225748649782491217139298509027535431085278519837228084890857216468921559248951078679206014143808416824113367633152766790630755674450626413369780300831865523476461800281914299315635233458537890121458173646954349980606204158395437388629675806717641205992533282660626091322572744545139773456638815973532678147304124378473332879436553048299977341456092389769129816715914385218257117315100385050068959973622899289810356415369066914048720278900876746538985007017902248208444919157660616532434145551451590655374111887829451853157571240975709072338856136144678588158777268308455904241010453668889517778570388686909343201711364572251410129120963764137908139964874798071626230051375031362889870700560927846555893611067098377417563648590208944399632347592117023822787805618137356255893509239751034047597764371301380065426291681083880526084995086377102542757878466143287303113030201092415192845444871502306262110956921022949118010171023156147625309618257944995323264353110383257060621437263252441447948320058286845613088709028218348603232024355239862375909981664004282959960322790739609853866515951465240484250752378747640728556728930219436021769248322426434689554958532123793662067191891178292774784160966673387603111087991313533598518802018744764167619345320052503268317311998734823230184257385430979450184757400494512854023269517707052464717795739109555610253670564929926477111617368409233955286212845691938116360741152816023129425926612222465032083645914017861200307203822624847258417734577154185528573780714569814639426664289865320460257418754601169297181265571722712530680835117935498603618917746962286006277668149355706800955881355225846164841480898383980433255585968882333670447492217042660628260663315596081650382949789523088304490612270168193834340465837489315074575072358655023466545486060836956634451052413073197473797238312110877033234134779086831234409103961013480968128671146387529399145400113979657183137020766719555484952815779180608399224581754375851285480265584180684657598420231435581675274776280635799723615641334958114407966632171019718791107857464294929714282261477465006941605089283030295763127206376952857012967562529015207506412300768377166440792028675410670845119981400837622166166070450429989469685875081469828373283723937517331573490034529801005031983926206844497324284933762373284116013905042748025833774442019700829457541824479343257101677169585334387463371471012021511411351996807937821833602852121272460622481331960682545500901845978749281285454558092700086022711220929001009797400263676732283392087563119000355585138203996068762963134992639732445627387231112496344274744872948673223630085155620840445972592418833202369637437323696569064356594849853784267073265693665395507406605963870942424831352012800019017255142298565906671295513220527328769259565640939060929907288006448594599391542893637503265017100126267087870519661691188369890244968120928082011918922563351572876169172747644822103083845403876281556095808239226700395675352817338098148808718802675492962558489668008595620042218060875519287151576600457538158477320222870797122581424038989616024657428375193594937725579188535476809038692351690074350457168191979657239553181399716862684794029129146556725207992226022040100217903444007577569919325525333963228777775317146684527013003232695898553513873833344252908253934736786045041266921578535684853371746884516732902862469616233770751273660796350840065264384259790360362025776799037026433942298406540850498748648339354748778700000054699887593444547345574777477856126267769775952484513339710967218605240399265373318921742024007567719661311575732580194660489945695571841928457866357743094462192431414943858385026040115809517907439986304500741208843396776785274804568568020574059548040620123810417259605824954784346270373907950386977728148521301106652906307176771657466956682506528798622874139705800967156460615033855521058230311418733027441244807930571798413393388743436583787912381685692789031633929833540084403843104895054097978407001728699960856943356637424245691534164685706228574550836386543376850899462649891059285980751817506526536362750503329332085445106022082309852179368838884958495007598243314893705858437384522868245530777743542305244193739861121507067458723640958362347329197532095173194736959854803941311559211008072617344915227562077465687017337220984016299560893719911623142280612349955247502536478803554451856135214380158887961124875212726137044581529197775567328766842264301719008514076409637684390969941298336468449271251085307519599365554841848743738269782136839615864664648102775484552096039743371176033332860693132862268433351905604311829449418541155931211170841034715728460712457070601657338672379319214575831108318898744735979930732031621959213566279042649758108335485001417784306344305571438598560873140281185457483305048931969732084253703786208923908989443693430165607521221098142411026340315036423616695880840372016204037330487870843347918632943096776002671303993489237322670644566879234012695287692882006310229165629603876845288339213475669830862823507872256701961209623749656344476647061328155488717278040758743151679517711732453775138491492568906120218292023196090305758493987893035911812761303393303210495774812937274720008623241976030592232216772783336396426050339798285940864095194975203007133145749800555672979097015689611563545630260655066366534358092264979150264995921248062196250577030747754849708975445299309435193036791406417536482567063341679060204122511732876629997058338106247460489561128542427025793333062898847721877938544592991992294976446125866031154575997793019328002424321687302254792190946783594056976194089776603569133326232834791252525871753504738624120372175149875812474564905238981322202338046738467790955984984304021160587840186112708447185352140715127872024839285679888297320011587105644860575941265361023605594543872690424675528552983098700996426866853585111526075214506117659479503225125320096097360236890917804017414281027248434344122644830327277604994745310174314615998906234200421305687210101757551045302432656601125151127082740965880544210666736006969132239905188403740622638289273752605480569388209375468203589310983854289995958542716736038123914452913111892295960497198726521995327117099798667194685893571374827521703470412292204259973293260875915593946985013413661438156627170406855744512026161967667569756775560738027137563938003342448828083147195345690160230514284307448905093584320549909890959152310477666366482724446025532975130077215610710527986792454420299823314598311857161464150778471241435154333972306536967938442413162451307988504791647009455603738572574491519851177049525345007811721167315941621141511223933719771869553456598012388578051689803734579274857292368389746222201847136422900996531758523838171057806122332439671760970638068494409717441150469897011534257121452973039894966009150384477854633229146481446862093631247439984382007268714851052578700886269861358568368177069273154790226632147416144553320315322763071485469723454283093064752839597852020592142611370211141626354404104240468689174416911954535458990281710734922323478918594590159665109747134633275911409523303438918550678373497438024348642194603526478717186357062609969074436500585033728987769352950819430170950425155947579906538922662517248115721292869905772472303209114994368600464471533600852005216351863190945407885332858889526081626991101922367477400849078952294317827587334080450540067844869580538963505916038195147738134992941694081008963492234018660053224649942305375697372426557049177665172125348378855276694263278152305457924746619166270703804972729355806051735710874729888449996610928495451923233462316395624219573161571808809802988167187341227777198562452841935826875916616011848226258277231672434426186556449994045362293696356067099030189912707730845005545389041401157572743806633167678371213330789041408840942379842282357178168135146871227756486381682918604719801268899361695395072259548237627527498540039922198770250194039675654050744342397319067180519599012046307341424585655481028731259957139668681781656950899077114168519212042604040329200833566890624045220319545875672082751918526163062960287133010896002224055059755289275008963197458840955319831788754302910321802395388924927509115515820440959995087411153162049497729501887854576575677011953787364374625389715938881600406903876279761088361568114503916801853146031891976340695030044613046222371890877543800184643522739839794830078627740640308138328898960987339617918816858598191755101593485996335498423151589458273646202543121457439628768342181307569364238741998790939108270139609534261248631688130274104135550993008235112403523023927604667833861505742882785779435977841961592940660942043635726599572420586318887584064993857758707634860901255595637349641939827351581410500375339093512771831223841469537697846562489791792712166320807582836747418975733692348187789666727220943402133189772448388864453893216754761781331285576579043143886942667910370925985470088199179069244936529969554475513131547585432472264638738120299239437388602593066420742386507417422801154139450415513871246950884262980114103941134972207185075558352305651674965378309696153524368872203380117221255772604285810160652900959962085372993879037406961793194460060661723105235411586736424408398047144702233316402051554407782039787170555198528169580887907938122269024084390317658345984278868689688849445150587658585246865730586358801409250134358340229850125832123033766997755275734733674485900970843750026048895680867308935618361703058973852538021340100411341947141809883760605271101056517849789108598396509968164378200025021886983192529076340114962292489875768163082135062983062118702313633806675357828995571493542907699477639249751560096021921895771196654062850378835993482613372077909920965421209407563390903200689577077474094583524724392177794630745529083498436360025032996645059292464779551567391807168001506277424479704364756823816870593314177694674306201397595359108004809576628837383218708380022500004081362318111366738174185488132675101261295309326082840088903576508314276358345077332377437973431117015371210037332667324451221997933360883006327816464467570472471755942073733292171189732819532543054019478487040199198754693061916138200336165651098083636148034547884389730168860161997860700961837326369023129212926432883883713274063331775308460861689892402352158352988606515531330936630284843950629176953284467014241580390924961568546003448872886734645277117373789997360856956695550097429309623464041035666885532922283314855935229333411336940393717186570886278170375043399972801466518033338858998498312725902365153327113695211199584249973278889650084252454930555885464942167662703581274797299757161887497216679012966678086137745496613319997933369284534358847661899403860072181323618452752815025697526857999780799298657821123549818516929831968307101185312600663683075967333848708149186786894011815612594235084438967874430414369229514532291044151525499152506427836177813987660496260090803180730434823088045576860384526669128626708552190367292893747525774228547114323526521423483301637859164311518993303734348168408215365312697284908953279416728462581353458880868565799565039281627527931629928585909090990121310160430006965747363329384357841537114939017548612586520896364573647580225602962005266679305547306785054115030384242140639930960688300712624678975426446261491958598772089640117364483647522412865265221956530840271910502191083398878462318765070093993772697167304643116003677384569621728477736960855370436290560141442307154744529605310833374048095070515978878877112646849694796153698799488981672296585733639082079721301101509698876687927733943494104715986465661808388398026671592974162303351102488820051386859748575055397484092544186586856075640258417918251630894813277201239093830788408370970756214276141656641662560114916835944404989709367611173189633519030375027524747336111294567664697080346766982979174307796861354165713710897164168809783018983420740412468163079996603543135630507990424070301068232548250471177626227495203734803327631266810259852849966713449510866456940811570565057697217736469425777079917520577984007356789879503384920464986877663228293021755590424655566145048315544340655423374955892263154856185856094187721115415496436621713659634849897061600854957563178290435745151836282992770487414626331001527166260350575672272754463399515714711561000327628205537746721285137719808135703079865737349714735765327340724857166407420942022130791480377360809272535415041338046811875693649919981194100268941273003430984407506883729979940968230928286129776250735197394571246592845317588249098707121559225009944794379362716119873101757181767538766651622985584602126931328850457227379594981798944232501351644924554468412126260462551824903198106716085932862915676208657272520944691947706471202407890832597519157596787518636062927100408361534522303287129498504610154563382710575225639335030973636495428122460821562741300658569405962545122598456449687795106752008218368244756312748626310409422259071925249321183310507013695201514011630249495349926965936603470204056863376337767405352273949343465266213073613724402175098628467604185756914052737729590887545983142774601695722747128413159141717901551767191647479596577468076882584839527881008109915503901288111636520292370438053256595596684239133485891274588654170871300379757373692801346224708633094682562976576965769060730075722938669776515082082393379677978418078537471380545004118687426693222489254540548706996921681237262724389308361273616647278712444137668182890589052138267256362518912438152427943475193555318700503590111343221804379394044203475858448660474652325362042458975053657312247595360966862244061295864484222899929368843986135210780808767945517249837007515723022311979426747533441575880485323015280346250707175181754049032473159406377845888139631644105988706982120600872948915248026967810716049706853413532996499379686666052762467945994531688798719410564742942858738270011288841673177522366070712896188258526460876459622562910751434869792050745183939164392409160325361478635187103190138496625894229662962431767926123967623372271387917476751902257934289353548961990175781942781793359316174459536066563833284791839292765995506649564192464144109390730251938457692665430735625185018487533186611017094331862755869823541307599772378745146187637986199152392131946930273764579613113190253897079006111432678794311841146543317312294139991417144406921125576923515538641086073693159972000593328972108967259487091882078449897626849000163699750370859516652626471790643588049163196357476139674698008468333935184961942297168125683543509632601184878948023203249299809072442565123275477513180453773548374714839346784496067066395974205055940140511697850514335435129757186450563785060567059482825735270320437292116928239367789388003848931117988036126926797579432582043704830978343307672456712639484968119836722275028346862530916947925601373935585819050118626379389410208580123115074110085638194997111321626970062774131641746432650465411197423838399461551997858151350914508989049160218815298353293910724766359648885709318399511501524642618998528750642200638802898190572374780492500539676747940889485525102220396781071056525471971762937996448819292908139452786811044657748243551943927075040838709660481331489233151677764242397939752572533338193952771701716493642946782059982885955107646830663645026730797330092212447227820828967103103343620917044779364790684585479600250578944093264804728988751163949779902942175484010788055593920709562944331690900053763266384517386597355390868139984899906886034007383332686083263673018897241348230652375384617720253537740793080106107611058607584415646989240932473301753234183257566349989239905251701676713985187680369179199963256110292171939673947404976474919497086998966643361216235435664913115880500258369288849327803464856521437834123297885415156912447306975419792708018219060622468779489648259568462381917766367270435843851438312047550009907384981923210451761281610808253466065870722888686305794554633997962661269337110563720704787830153234331372168868958530739413182092549685747208252637432495149808504262487101120768125922655322983343143387044064185998096861688825628460156921969554070376674424080721241544911053523362715432100691107518883020609003830183234087617391034046557249245067956967720201301527125515484353203197610347112168246313415318565719455725965628109597691678166249276020174517301621017189908051879093807448661558697685486587263404917631685564689518622452470444845249446244254773925430786330623536855414924317707014861530274717512196220923379978602080487469640721065912291890994786438465959437904005975531388596485727572272056641693842704733549844264222626463878235289020134049062976159902254902777812368077189080667328401518635910067925118418524152929086276407357069127519756631566430528494701763721811459860471633176168405950902254951493983482621363233261277014060074695987929382638206296907870808161986496305937014587647945937119595515191715982598372295322873392320665945734758246825632838121654241616011582932920747615000713535801833773240652207722074101400141585363764352812392353226069299417835361683474242994550111900431761206299095115266220591111634170021455341057534482349104350457887583047359206400884826179151231897029504926675721577951537762074790731787130502841677094834371759325065851783854096093704293692731900958092919252397270638522070937628383225683153960835450452350911780442748939256996405591989068391229404408297933970415774387924381022153923395405835504113621768656012882992243576095298121220926372985175657081399212209369469069471505232807745922986422880282669166373203839309173546023900317601810549675230258888203135351455389016375513816166978225056480770062195994286941695278682988747875314021213999847388311978639357787459177248686031267162826808360002766955243299122844020744637353146338531180960229564315279646959393115331046112625291188048843645271662490169293131384364055552805522021593862982506767973844674699716046211730178846503692138201007248232185230439688640726662434346317554993668072532687646570743129605464965742014788858724642343068491804990868789126274322683098344956419302268946418791508286084929859354653201342427917487471492582747847592518391760526150616597661767410207080022210623107357145530655401644568933476434751928179179847063138391498203868541420436574637438592638827911733063904177821890416855723272195360404365958472503446756593807756349612730780517911953194489259765071287943163119413850599299432391782352725876569010745153862419375984232748182198639743155981076609447939438550985715018342750863215981110708889461448106315882194394862210581397497664063346454238785640613883278604627703345260705742599673392127413636484887761864382039568316772471090981155072098848700928047908288628072401456294357134069914678095379841230389532587714472243548244728021211564902264529226927333350550801936451390912353464176822948658127116341488446487138940438383796311559848964087872479294196789601704882820468216766183499824807259385185356274854371004536137535807547593736098440482998251374614985743432049694815390831886526255530137278085532265296825433061032911691571226188092134929879103545128399297317393616872420901374105379442196137925627337251285198800256006563906526686327894045690228364851806154259472496125368954884346955803503775829068397792253466589550529612640278648144264042914143766377112498613383916375035551947969249676418386076288854060423444917794726698515163085347102328889833744601277957824125844918345939283471692653076228256048916999359044268746101430109002605687103756199580916319166870735133126555517095165180999383952443788817970696008307850306803884626212659925780771260775880880034397834613309972590059603183476278150533933350088652428004152852985444308039533374501320717398934951676352766326895121961597303108319574761027498742762578748124885677109579005927502491259210783412875302790055137452476074633935386095909222443310244498205298323532172118379719091662890610939050040262334858568165052734382185467985642594689802992425789148498980317029573202650314282389367716513114282254068003428895104265272373634363270439747138599295571914274100417721665147878648062357860951987571652643506735997685318170265362718972160648129565432557808416091911995861065983798399068289218156337663004144963795187721814977544606567415122590611688416936458073198486174501643534917040037673677032823398172427876418637560031990015217261279594223777911511538725347480198929580766627950907056425196769674521310890865479144731822184210694554817775704429468653516051232036428202885397168429317828505100417599073727457402969842217110841197101707951119226438430728170249752736511550309056698602028716156179101479021586285597459939287942081789345088729811755792473296769426835851993041649967290223186156377889296494491157348628144777231272026926211861498389378174706263546941732224228160153197571468855334854067212113913336219196385855594456694344874928377304607479187882711392834931516355210211546167829290119884816255958297616151930544728505103333741511476627068781198109245866003077661172372657549969089227801086873243587889640952366644751807607950878748784566302711750928291351066720408655539168738065279947798727044036856803101905795251324728107742682787370875388526527428967248912529596056839830887115265010684675513318640074591548552981899141725684729310332971551712446192219375800682917496556949804166118006066164641830214348198495154334102285786004075573722222382683516872415418726122793533915949498447451325311939388867638372995140482301408460171432412340982666996028219426687746020350044408561234738448991486705378311063033742063237538401816044149506685700686029181245557286166945572310428612741157967685536778128206918967256517641753398835589262000472498978310175868480641610687703190538574166896210995789931198136355484623556164489591079062157506552240940611658083781224928523934441970722023972642148584485089383381694875320011027860559749041688359808212722099488984378790364212326400912372213693750132432493974804617571757318556149336969647571514501041018221146281930432319948779124063524332978388702146975588570358755337230435794215414762594815677813428945007956940921752750539100497919602265149678936535041785816488747663628892316450621579212447705387748592968365934001526434788456571919933245593447476107669238013936911878717169703816380325557345480738473100962804766538057641962818616469031498958907345168625541207039556507681803380032142532213096914627713517750206324999327986922859678426298922232731273992315129744007286908240456583701062955945982745437687283745873262054960522585453869197047242795525870105666549927616979123038028924252736343083785533879912282317871914450095373911424489420662465052046213326402923007729130906133149600196485485852688850409052454582385896686074207768163395409597090615133351892172830374266426121079535392084497657075880070000955964349777295834342960399998712660021240978688962774299341613339760764036280423807407950909113048612831085802309899401977660325207462932266528544231523100197722265814642195271211368498610516080496507903198323067900863014064195631943731368714017032507853278251222984684804768053505153309986414466256880421007291874674425630405462217987280878798802070524812628707532521858657133684441738397141690975995029561521127395162140028090516754535991135406009835656694030607246357374576134868049425375416708106637601342107586690778255195770118504914900325523866373672820421812129352579424522593045636706296101588967636955997692351752775407406392275525689335798999163766006287681324280702001972863163938392443332176318527470678835307662056060553927218608887926980194155380443271130329839948009332199919350095397012054003992211780906801516319538972969302942665110515464718454083576601353232069228947526007579538714001885801150068713456314067277263581820410866203448650592835690722157189169681783875350899806818840774541815848328749749452617742532327265671688022435848866738309000909541417642746174414018815998332606569228122485360534061213678218950382088334369645668205121145698217426186910849161114350096594956692502453172870459602279819265883558577765785086290641087193231516740508848329337157551362299303394342722254843015604988685579132690160687214381544840897729720860250262870174727697428368564902870589797296670124027844589867971066409559035794352621345873184171463855295800426263099146910825344782060932262151622735645133093730606265917997528142656750416176284387777106000359860447614824102146700651903709097383892418097894779846175718801798779028484059543260293019080313297633639455633225855877035136792343478279926346018226243837010296754891343580936062338090275511449838947800242701016518333295796109184373452448680763130218828678884334127107404972651400561785491622457937974183909879110813012385056648942162928017552779435588780800038660163185209308178308227407813857211647048213206600692175048924175277632264118483741341912959791624449863789743989401647073820309548963057670878299080940124618986239419308025897103678740919573209032999290931423273995753569748604977914623286857255981070210686958161799239008272615848284928395736215929733384752601544080037374398876379112066312755260209218172039789142293787931548916064226722151202911006986208193500836368633456557607173659972521973848935426151360779597070651490473198270383869277973435873338043258733862827532250430346684148961844893212198529495321127412852069095213131808692457057928102730261587173251519151947173332235073919389450396978665275490585557612926468999109904984342616454822939806213692578430582571213494698810095674709123614985421757802472462785388074657642088427284974280854194662011243460305895593615626363387192394956035055775933110211578025898810542339481042097617362033221533074604898690656904996826399120112258241952751282693013951205538701677771982708079118519791619770760970311494254592475851127102434198750792615640096905082138226745635498997178534219303844611894440692912149442561379361727597599003260067691479506342547165415979250073676287079685431526525979034762520707316863484391859383666360604063724166349055489017041874359157130718442791425367959319565633137245480717221530840577578044642233828734484220858626330496664727930573327306592436301315810990004223264772904223704867439092285292182621363200010018406371747976080360938719804994915074730686210825556284222777803675819073548027422471692472359237592314654481958552760237598038466636957092925094179387186728619111435312764969792337300287757018554418868253585069951764479277680768368142871417237358302283055855711639399192006886470807718406267848397588504604921989547801644262265467371099363027314501166904684379375726389808513100349572494405030245516876858479712668200381053766552847934778366658135720621643334685379780085290430204057680898872701680706849686014511861090183585531327301005004768239955293642974912465029498755059311086814578832413490937680966562452791826946723727846400437259880412198881623554128799004363309510287963433140733400475300017970125460148365049300849490120096986516524002881963229692663058415878408547902442826403233728154488524833528381874346620408108961034160411540126567755272904858327750979953099287917499012044926769073270969437865203619373345289692083102169659806139249956301583893949237272470102303404308987740036348339082828479016081848137969628824712717516609407164991692088020637383390591354802552853900535695738859854337974743535628727807608531200665844173754152168604459988611758643298996503418443030187033493820313619110789346679144632715273815464970773642628179265326817467830614081943147039873865659843155587653041072188956542966480668308532793540328778065776437505647237482849630165185963345731397332423903516261975817955623748694715633479562594034222833775678125739789433570195535351651441271935661800877869761177688375257134992259171428658580651059005383267015471253028405459791509779669039894185743252901086986266982510705188761502699701341135973063751967458532533316484355256892650195562587963145489013929249863288704729088818257158482530557416185823507098440952114566724064114816698665146833520544979217790327640671672868504454216372917657889460299023071368112907566264652199909281492079920807312301803707405533232358635502721650196591519217802729773386816211460846764385355770686205506782006758174821422324893026420567107557488677620715503502239198106990193054319560998669101098227233634759362936235840800647808165376021900225027354549639130069700150023782163906086244349733611710484583729397115541575770861125878253183425719225400091382360224611746895432426076056752830157798269352962204191872414250464432416597986587672613334434985821024850813319299695162529951581654852709642841370128994569144414962044008016660489640567587899080732800176041149296058718101665410454524903598638874820740553553164649796630765503922627313456771546484600526554374833059965898011997233692788191902333129871935023833457125575312525409602678780851890719326863008332753406113674180199520700940462658897838935021757920286007633661094554212734780646417426381681630833344331042514773445622555256144639360200478639272096865500478785025786898471315116448531105967786869425898874680804942496173657461559550439944946381276474294791667692175499588922969493422132787305587090917959882098151914406382037955918608625387577261101700765423921244283192314571055232886960117631439273699977324386207420643073327539794545173579030142898755531991350214229919828562275198285065111161287382218616531225288793952233051488054149456463222187894543988939390381307700087959825792143108023745646017468115792358748205234734474686102525852265695725665778062213000602144581770428991769484184396246967115600476223593394760880632921448035538228710084533380776324120208522743619657154171935295257357191051774063182096405579138460868824339111464086077912901837980559848676684835546133327133863532136964710194237460337299823466189799232943471931416929943430743559231496454102320575850734768809793842855931138484197446806328488290759704281963057303575922249512760296878396733825715323292151374961877386404455508115485957573102901081844909930183264405496434267123468762300735764666207111490105183645211787539438309832432676930517976051879436760598930195785242452797452795681418960119890643321783058835087967723237295892026373319773450941749687214267523407582386387768029461056471664649915152548766610503112322750995060157292642294147855136838872615113143344063898462237254491421240486221836012030346150461461587879208351822117430681101712333262846777123571125829460873819278164584781941479554810155497985283427459268100095620021214480643914102290444795478058036645670781211640796918523194565125098239649427626071481257567181208331616020990113583520737073135289779341810319953603068392690561022097585385999252548341494977785927129604110468486015003634064162402063484298425854080219471132156831838966973698627826218013928376431630481985513450569096031258337359726711160565935756560316813755203550470730342252063888999601330295519985594838526466219552186693485276514349068779823011091934039190913761659144906512091607789757699244449190118979259582423453835653808985434414709329754243014700239125882649736265973911712363586168823262256588446997017685847014720347822149392956324483168044464223721866743396681028148546264331976698039113107286354232427548683414515086453307676900691306626485755396891842525319361025433593884678624790866746844008485371610939752803778290270940977606739781265510390326033224104125368606036864495017827303778352749731920499599173381644650860804849161114368569302142133802712826509606993149076410650518286331501355415857687187281311665220549586716259933074318230520070935220373189289759691203281389970003275314083830204997007940434617457713410287718308649390256704805660918330118203958527937982849042206777676765313453907158370735208769728495577648716839499404043101085178850087034027295701830839685377505191465033388435660725912401066184035940140460881369523490353777436291744607877425437700245445266366247458646052152193263984765061994881926925786685075223726703782092140886840132936289401189709047317335908583982446334929066551682320684774508512279165301191640412660090204270250335174579653982499479928197548857892020805718219827697071684478454440368067129495490610971598585501868083206013511142864406350301810349566503854280629195012412908344626449405045693651666095562564775926848573747580606000458354760117416447590398860039746177161459051409206969889059623843798686948947890105443328859203826103900489575546940651943910641363542255791561789453370604990543372247453244934878102437739255750453100176056094848903068261704719465237994012222250807322091324784415250284988098059372065655040985731734068301315897180699635603587213394391159560629620730401687505180282590478161206887646676033738280415329460772346487463512216373213027098950348999093041005150162965899955004701441363273909572619397480998142610564013244979269376141488657539893719426816213436099781742971652164803572330440159606621809264519183072312078649452559780932778903296650369734987417603264516904371146932314477876662686276450765358668199902541461203346210545770532552587361071704499942465084448118970943594287281685818320971706298411540127880297840637436717137620787383319399541306870232363221963608591578628136668685829679769893136364586316595968334845456663171642983770851150003772386095903233190339562282033192212467452524471093903080733362283140730936039029407992741993160792663901585472027426299507306416633341175129527188950421811440889354675460372121253002883377229828154462289454428101668495998955362526366791739068027362547409654038576562967247387526038334639021675659535505115358725525145173143805347769750250703311280817376321193254743340760363810652068632174819753861715837058545346678567341135148237776777534587696675132894710029173808660721692946855311458270513598386881626443806001814192626354204719031045589389534307019779130133802074293711211554640130460620536586555331828266465780765617225847461956357417658310686255948012867752901824361739712097444509273309239157520775857581636237671474380821377917474660500147005533102878388475930123863405918637603404696568672097015129190260355148562976933788509934080453143326241662034140138204281527949386450754848876463272941286671717178071752432248556280777643186838305966754191799968680796124735878641898606830386419522963143802489000733397047985820625328892811131549026210117710307660422087934871643228101637629406861427707084012366696722703012004422651658426283038337861235814745606867490419456577572204345935349807031652210584155212320778114254788218781849337293943967896473348933787052923691881998804772234421498674262128925902621280942426747040849324796217239996759523118253754651821700593990396945658546637832344795185256494884119761687598871470614880369594180951481298584082551437925265528562842662287372988258562681163936102217727823092944961910549355762458093561368861976366382849309112829451916245702482645164427921856487360016868483795257256828966571336673185505137329084185536670177715239495742406050838378251936646821931109855202639238947353554810487840717678565106298649052187813193855210454592633986317873430262467916073804951057013887832370926337811643093687257148869936066228961708702179100890750944331589098469822635355834826149532771193745142017595253734712225329149916166633137502556182478953115856885526392996046475505040905815744086959191882631600262332039346719978370559061765259920671507117981654319765254761361423539741129729039467910926278818748390248826136579525033488936348248043595416303468922604014000664512236247310058137451680906997807317130020736759232258031892986061345379258906964079756498748745968634687847743345688996021606158402125006441144542887187852696438494410316534578289023434419258633465047820200807450815684515659915224826929005332929239534967341101584297345780647210221921708808521638018555893298104259487615990762685318142232242419767937212595171364610505164493067287051464175912445429089134001336514493684754231676597074471783338650545225458970543351096997751638959997947431766514327085683041913024986952128085396634931898206497908884304926500685648603469591757660884277596798710765717266687974574721360627850811904506417542767831322371433571313406724599956361884629842205648773414622846025214726433355409487280447497190141286481213783703817312245878730955998855489346232306816636922505033129818818928775020006449625402132974557088354211198018651665710130953501072960030609443859882198212505781897033140910817075754133461945725672013456590004946332335104255508674523558941447285505322125476625516085790467085610066560991352830916142340279940698630000178533828404169193182164417201240635272637990300131078466320099514687624821067866394827500185025339777577171355184847392743941369320063898006173548553752839251196634280206153911106110478500899124613554195888213215516471411979112880917674669363915639566425778360052204298401157251681800457495318703202515357136689132994687168986193998793840536009077309830059966428177057588550985796959285753094574501442604818483627428760612300984251652298369686445654255204535571566637392991684244873041007724063943839981315241016190250177033345208610297433408830177279475298127374856242418514396940419393704349561226466787365608099786503672870854073398724204896366714674241802740422508139467570055514437547057325861407362700813417848879567988470619162563452991063990993019673525498503145827817907379024775845790349364256214629553239862170458675860534013568567084249250994567213438908934743381614223684019563023894150929323939811197847974792293348005510079358076374073840644316745646712057218483906911184593934319943340622073407795769235470617983895706309904354177619385956556522941634196108403715320652359026344719365122879150394831283923427675244253817440321604779701143874597638097536404984186783172757347881611323892557729389038919425439743346985340998944082458136232605785345523575170078338284322942947891669040490930229128525484910451825565617122590970956356397806299494185201447465224341812955953595008276926061591296381562546024873469054359871892664177210644073306130565019596277486507717599572726461548123564029176571520034224596070192744207622351601964309537397179841664358457561428015561127044948373499492648265574586036485222456989789327607104588210666684604706172304222344242683972530977982363671615580149778579058450696920774842189360359246348013348246762374911535986819745214861027876525360411218449382037190985993177588043508587677324307285825394530014372095476168262822230297430312361795546395843734046058882606562297860961986953594734826338695773164000211409903216525337561384909794780668567025842418032775476523051518566719625691666791385689213227570121414359956535862123511680232053174260935222801944184082485539870670674057604966914826402484645513098707732174621460073286599834006658163252476738789324000605150660126633204406522119507841478417143050498569709664964091844709480052791372602692338287011986565168478654277000624531361439544144221139838011705979798519013148454376246468112317652736895316201312599204109385214819988148909789956433699477813726014812677956504999335089159780640101912363733441296597531326488286035025854434444741749894997010865524201241556863722684100188522611836954893745760572029359554938414980291681490449788445665003799536720464750462871893841912355978359436701193605245100581430735556592922535454756980986881988244627585273310700439881987553469990977723760533384989448342423687486309375738685082862230367192130462356654779770305314219779426462825642248887271506643859395299243357020698046539581022506689031574146606991437601950334194657317013007086286472878492914925463624909416021722197330512565076554055525324619021321775192613820980310085784322538763070870005422040035836592499227074248585980007949776497821601774966828801895797192178827318640622339798882392016211940176807176505147747826880912826761274191735751985667185894922701238372806503228904879528690192151907269046841860086482067808930262868568039663990216108571514469587466306945386538526681419752156516231215740071245571224971512127848519799078543959778415825065549649429147089451786953549573696381692772983947871847371989865717540857129767016965917750109467591238443152399614106237875640020371121281773682090436017914269664426585248585716464503939306429031567296195788171482637145716451024043300586685580518820993526993893793803076455777292181125462903931497755571598880740001490734562638418041766961616455932411465562144602230878834053482281489033332964908071943785388515762428135902889902836827483834403454432661312510937507318802181519958832564800775503889302598231880179838923992162389689122263446639928499727225801598192649546476291906273017152107915728140549941354640052731624461332490216406205876399507882908849802890777976908136840151330002029581489405003953870784952922942120487065085051156817518864693727584040917763036469020976475709067364610018518382098608605243527160741148726171244859732523793755405233228473825741606306646926811923354590731599496152304068033662307656360180272476243832911433685584759340952924454953745400121404747967049012455859928707940523626357176415693707657017356987564510179876407886562088554625273699548063035425695725174554050190122727010850282583036545774919638509612675417699158240408441619294350973910501859234934508740134037643993687393656528058038372530314827538661452514113072865276092981486978323463193908496070085689146207204338559260038117026791555464756324509625364918863894806948599862110069899095761073115777100309249995511347555486636475892689952926632753091953932934693165445052752985478158814128691349275868260494612243446762036909781850337242145109040596743978115140296853326987147545959947334952751461632794481120847241688139205876042226992360070027883733631982359964657487607641065684550127095961229614687430956367813829363024999375153580690030290555077565430746286831177708182126410528856519658279342358922904478201903066047068139046837196375041242078392391757831874143335190980059498982505295818014918380908633173761546983916002304043286953634639362675939558170129333430787581774611095523715474997915563366123894550479702274862910753795238910957527497415259251676134040832355266944969298497579696964604702243165281335324286227480146287980114036967578609273192071433179784592514351173246808302839043136850381412245192294996942905509500522122120845285208275745191150686745600798036725250231736456801296716362993716561854034625133417727686028888009419005428700851982879247524425653443913882176217347218781946792891182697334363303064178650375486358585341552588633158529682265956724908593721692350750577356544366737970980466654238436018544197204740532119258765262307897389045404562583128820234607103211199866145149536619078176180590990797962053104538008614372904160690506593781582267438889148227171462415563055109825784734273973293386496295777698360742288297550262403966613219729370433835295893186608538903496258893024020933683302126275662553958826315234929169063640456363281733406268079315615281702611982145343747049152594796015540104459379582360808975374300190122189519125251415689444568373404018783224122472650024246856328932028449614363958948334950464576978023443409998203602199672319808822067023517913078060003951072861535413950804650160124365077933144715095913649731212004140364308306553385696128160769225624181967053484993863023160120843714880738444300287007698108982148213512376605893165125013074234204753532683485275147300902828376583888568853915782989588372271769473394917851324807205206610845742147098527028815268382243380918317979446161191356481192077605323901610083559897985923576302690812499979474604787042719585252957953874938005194430528610728548700286407021569984600504130428886520172859385283718965774057306701237936757214155873238197416517353977876611842025868691536893963486026346253224181001950090429852263498549169664185109985831161239849860424201729759298690562492648181299369177317548622536585512393889556776863117714777099344634976395911028256188884828004614779015730658269548695011356233543978785294946501896831326657950179293910790703931618881045194062455452624030283873046048367833347991028947890753596881743780748564232459984895639534295797993825441246081506557292251249416912127460547496115658207006457575063622072663798578474900862003120618859199048758109048534941942504761858263706563499499311940705405503027752057587579037493384530150708663498564404225786232235619256009395258374049197705694098300183976540800500845502235336807377175724459533007286283862190506474117849959930944764121087350565738979001861273901310552238718631444153906350396938805886926581109687997916559723466608547359584458929594664438234470115090246445983773097586248191783014534035452924083872574742027192251389976589649763095739771131723634095132872601102194105690404768831928054556108473674855214501439050642169206460408617832517113692750167860672756777394199403539106884558384343470112675437956904278286366257018348592866846388412930746185093919569342008920143810576214530425256701658356268789790211455075599318275702152573412812763467179100229913370326839378752466920818948786630433289744694059072242244748078294881360116011200988019706601454198269258765246471873750328903351305608089910853774729713909933106911744350117707022307877714764847428650908661419936392496117966052519892579277463115796478219516237207700515951878696943809669217909640140807883598844355826611830560938355014771874516022240918456462506837308485967473354147638796718626140244898935439231107194695780599265738108745007343754001629599471703411209716488441694521300205588122000121408845085093171134246366821337951761321851322291507770066164632089352889459472533833394782003851728118280290528829093441409886825334334855154367232691354507428144201782499337948317417480921966581629465704144647893675270667733802973163859730983862167170596738667499268058859231863189945954000466042010405078850267352719867378958124048404939915141412247246007814879009178545891573363736751740723346184879431800700232359718743496506452367321407195102079183494123825910788260159816249634467359843170352453631408211929823239830547969910374124387884336957917348927436603487312279936545659259794880444320515424675113912904582219052984384971729561108398228508909924002712603297650224515435185571584446888852721404724078620299568754874682411469798691170313773044091522198931996412640684213840825925304088210417358551113981122350845865396195953878461603605867025248370972513215934641799402016253419562364509365076495711665231639992421310301248473912376365501522935406394450555047630417768509994264607603381868641633889654664553021568393062327178086361040658089746183965986913162470259326258716356404901089372375955780754831719284971802611198046394118421806899691268117943004450563193810414211575414709648429689523287621450572584514899104206496946532779102664214771009244637794588756620279778118848391851393495828037808182115228305306590970884586488046720072541741623142005065127875859417224945577515621776149400102783947164176864346056160078160375789411645253648808546073721836650734140691069364234463541375615148043617585756705876061043802128880811225759765054530824212721116643170315386139575795247225369827839997852730440806455622033708967594029813246729209935260306058267699460426088102060697960994016826055456536934013619600572769683794195360316533175182187271717271030637743586454512355313410249683707264974287687427321757474463223861124486861187147817895925168626258451890967556749247535985340857606244075342277863712444368280590059680431931852134975783901966019933234424809499038784508100756418948695731809823467912672040680359596982642263440636807168487103739150533979738689475024233270360348642604304643960244655419051258021081786873373200968404837448220746692115383609238776526313375338744512481193077229406803051571080972234531178449051690731702388635131552085047376752693041186228220901744027253681782343975358259272695204437464733263951994347971602526747681559006380266200833935243815117635024775977373098441019877282372498188458218977159348142009859108597916550611988550844491450112849555488295192827103807475390095297494129864319656665087888555505395333356518482751013339689727789767800613924695344738977077911495402572734074987720676344715987132516781405079424982643660814027301506667745039242546310768331908469250967333315946957476033870383444008120645930766014058587746794394518516112135787100003092633284839854976100655719690124346890220970056691829090272198470903091600702910180622972757690096391793598815114081547797395081514817657855643218038001134785590840165492836181317056267218748726697450688681395106437436978017372476240306130516606594577502636456728643527590755267950973752157493631907390929856271759913199767988733495382258565413301087830445961468973313245974657600880938113738895104568019673401334081154213174957320483212164976545660228541830271084108227822326251804684178611922429371095607435591371863445013736696441937194102951788907561257962427297194150448912274781539228864819305918491555737117849994136024971957972953122313488900440869592415528254950559143680254317192063731652762439603533903769430916512673761033827994417777696167838993853788654383800083558849928068717792007184407632911756631524222547032698558217102557806413666091346896755047300315655030474956491196807103378651178706974091847339366027727565546804817696267585064968896917087351534937861116105286343537567587494676527537106578483608773459064709856280520757231779494805202427801411184072820434282134673806904296010651327425431528475323809800501209062554388138607720756183185753051649280726380702210971353857263833280129873530934276505003191939035182563996530024940478949155970459740638945908857542839514073549544634533290148403434237057425642972411394189372878354234519022851287914093354413073629764791233596166178621535948295041138632555821001726567904257762961486573648410407704759261345450141665165411539246464157254762704340493437066791176691834829228284942750377209154209275392574474542855302216082313694934495490512634089589516543198071654726072127080713191448183691933051563820060604429809562289542667212871593261887068681039462446912052966685578263179892063846293118086258967263202237967988110649719809483110774775679196279169876617712263383123617341295938875182874603770718953345874627199509100400245768969055651869680164020361350075626699625677421664897964928721426659624380420913066713038364952265172427750219757210397243733808452520792381005587047233800636482832543083326346968756062687479000016646152515616233750853810167688899095267466036516441097744336958157918515292811296668518285117870896633397531230716529113574344767019207605603873571000989271197559806516232318456808226942039066605478997777112698426871997862645866055712884958711859969384939057573656829007837328538477968322148451092481501090635680445546825663828506597175679915034489352378504735755595962440996204113410746220863124434644215194892901282582109420917283300659508859594887962135632338095388516711669494157788962101120804893364781536194098619012529420212355162952964388874442264325827231535971198199809895344381079623831191650228902466929638440892222673454251774709646918866121906930250121345733885083056709090652176696355538496106263933222770075608686350356794075906120275778225655252326077995612831553066683645821940661036131534886810154715453847525107451097323411519633519206818278665933784134485029640881545912729931961130913399020384561324835467140509814079045081634932422053448768972383058734482765882519866103093710935113360450871862543020917471816856785205333676565918493264105380173533759356298276755762456320538621930163835534657987930433359031370708614265765160244828444129290364829930674957571322544906067628546979364664889860691593884041874096698450283598467392578413067682024530058763395742992072105873225031381760286739825984212004551611929920789220448763982151977621118671771803602284257161229118097609299962757652462902611339138109329185680780828688834752921721958762030424838329799703693833959554051723014233006190900760431985214623287660012119839783945653118674100934782559505246889456823395749617458220226696786129335259063515417546332946595722992875481752019957487356362302965786212140212109651237801244058011112021309226898265631523630312511724514445847819415093390936445167587351492227097233805679453583644428449370259331076209146503745836583311189972754415151159566386062245726160181509726280145141325058577617599689232997616084599898646994078879986717906266522646186467756119642242126025257158389364321667387673585235086292334583584114525791935947744353550203883112798992878375265967929725297029732829147549354488017336805492042054041741521736130036742479256413924446065205084190048003113445678297773980242703688131382948005301686510897098195502982275911600634876121604857911348127449290480018983591015473801481158352918837483408614535092980667843264720806721841616122023260330485459497620485710658731622267045837394031648607047629585561457986947802284019185129346172516776426389679839131479801297010888756149628533922906632779964137483549797674230201362546003607252264527328840306577937585526250136616722358098023676726886843243819685578748565403756367473606303515377215722666082745425062129422352062246274554472120146468253904659006243783862031599765935927187418630468854956954376065712146161851151387730962610241963723858470863282904475310436653518643666916083848319082295731700603942999431576997828053281383959904702579198538187104639091744303610707249669316206000407366730700477837895203462800100980791086637994261660213176177509793132403674131987396997664694541492210010858691514833179037235853575886689590692776560281034908307234368212502238075740495757142984054041650363099441048934392836819083691958728186358034882037789281036305170094169253541818819067427374329234505024476380871287239963074815271902242240307180676737856979630613884802347230924612734252790982667866544365292812421217954405844282271663526249578268433741823845638299096162400557461163529722461075236758741671597814523436829992741437422260240934312419513143912719126940914668444222526152596170409063147738790282221564237631127553452640697802698719804761248849281633596742704244588097739324991808029690814434379474682222054267105792097010367701823901622832967640891880420335268348434413131225330897578199308672630371241301443585082249151317367209396723280626281341028117211342837080797287703113673575611346769283258977648130737927939860235155613528076954593176556645142276530448281200005263937889185350235891043510383375009126829813169916393023864568439278261019730728012931841524998369617491545905289004312859809786211028218062833652715141595976219839480741910579919143810002643829080757109941618004080352007704298218818052890976353800631299030133384547553656326457463537448732741811579994002606106132371403087200001179456135401866196898489872448462971109495495335354882170855886174436868092328150159564881901998384950015268863293168727206134232088555760900937288121610081072725277290058267043107882542923897069055417133897070277383973523709687450206201898383823536873169664164325329099461062043921892178462201210278986141546232879779664630694835769053999052369586073199973638110580833935532663831527825863618616512562260112648408334007248412550333878673948423679785132308108105350844582676048868058667279906925446394222706387806348385735023170585268281870481906345218430193860988786445431415345233528736205546646174067301518557342197504683978072875746217388834547201959792125678909586151534337788985454168979902603903878939508074277570907019823268667511685029714752140737875027420783509675282765313880845018378244991693843907482776370298233253249514891784702601505692438101659730041800447867894469937160174111144142298393405013703986293850011988676906345255585857298231102147458961211357199883258447874172278201955338578533376255521653101160290962547849351948585910499875560903943069656003091316550730603566193121828595142245955414062615634933474069496927656639952973549428717034852532693901985730562383534651371900677290204841121310307051426870768237932654175446066458012088358589297666700759963027615158307142301973270481237456096672207050110449711202055741271635553030720194546796730174352985195816063621686728545088539059122635580081307914519990478733471142434648369792299450982619145620767548122590564348059717438934526627639178299801580253370293818295359453761088068828950769821339013669182341324047944907516177271210475237522833024116523444542804792219778953867553457176428754436531439735733031870433567817520330314431174266710412738396495054142699602304228460008406073991731265863044111243239803171938816436105546445838075552746409847945254093616739910816772833809356308260528874196731494800590646609292157436505421322271752951434240936378957925256709040302149615202852055121360992288721755934435895066579803752401939659410187101288538244599729907168929543278860953911314322899765866635458423068967641607515722974614935109586211936097611338219076608378871363434501872394447157380356447783231484808770104878395523067926170614031841109430855942421843537272039633243114069956211472616010640485355387807911353694760153574264108336746637588802471703936575444844202979635135185099049960632220181560123748367226116790728210016514378829431218004618344783354753290453609542200259379021646269101739970943803992323656021325088078480997720611699339369514755936401431398793895584237539627862259405968484483436386727543173244719560853924693392154765484232923526814476056461248400722822599844312451346308090037131829658898163684216467143713711967012255237979051753046739195979333015829447019388487226276028658281212758327167375191552449983445486411745036869946158332483824821735274561459962238755135965126591928241328240555373556662910818033118116686123761889763829192196071662023386598669663033812323366539566734589562182693408010438845905848526375187335558508279642008353377887255747832283685136848480407753343312730217351024670633717274710648708974997000868549870904218310720544410975960174356504345429904243534871717338657271954200235052610383402766898894561538671954774594901098143115657454434304958280920870605582085256156655892527039511220280750643162260794162961214007913181020161660971414771057270787697863590046662394977111900713144616938930009201466413185082982835640381849726893792660656555983483380567167953169536845191053597330799553536480218510955738600930872925815868674799174085617377981788936497136119071089822593670353798230314477320912289097781506064882342209646740988738345868483993149990118353889458461498058793603513462262849509379682680164168563396678395815516346609181213105733289116390355274700074280377299684062315964016884645594219354615814483206677146354050262039738566607691632257261141418846155717263973213169229322296684334249899744515520413676402537597453918010855007021383790621517543594845094334840609108519621357063486786808934315482364832209968920693130183730394203213584648694709581074130020854418820159211688293543453918888580421811489774535236973926851175314484877615262768446358982708641100750230912668399530923873281446645030928915673992842166796927841396872266340576538630146915577001180908748633830845570827236814288440101879079564506219771882181624258719307727971214702084062926482586880472675363748766764084357118286088563889447494985810865647883998918661481043882004994827350782915992735932568615347842423395534769079544765533791924438324443355052055878028781200298368698501582294114809156546781956409043483973552856057864668942490226512027598443811489679681800695927470857446448127663428430633413718082400163885176535479308198770779185366238284548888674319378567260835962545343349994773185358560825690321505953851477605739068052387609123151635598980509216865957475725142874781144950593878660968770054371419634630633420797449609637329614853390681242874001932652317313836633601183569295183979606096586997705382803096491303059328686119776979665183128478513502307133173169507405101579952438646016179337462631000414274020505448768227814242367484781558666516909925451455200067420220408553903486424882752872198629285466332815875857560773394765024709440389509022412316079724125400827175728753222229145232500050812730014293299816194823677644711368862998052364092206905304060732076942992729618391940516520043237870710487687587547149937992679199788219079345684674956674937418207681256353688250527615683617311825133368904911841153962457656798765281685185210807242853132359519810259147608700632598803073522113329199788274290621475271182540719669815154261722793897870731822623065176535814479724125474446083974087850024411468956887307640475960135507114350565996022127925256785399747480297963187168591206870257850679546264821585276177673041501033186097896374135474622080330769585053763861922243109123118734491279748679070674185321729268374093283085226316116829760837354178708168506338263422966511346888451063598998575449480795250010033335586006845940767701463968041446410701336057338594858619826312042799254096506755227963520185012819238545071523466392932641355885523452134934601316206709306272907696529777010895746208303266633148273910915509687922479448857982582820573218256578191528132495675316770984265427182477611510186682095901123051767465142178190808444763081602083619088091198344952884376328083114350258369559882026565702419828410822088927224084197434740139975835903186345667160898291171083152695055543474133162858629454050291233303706648185500720333866973363798107697425389444107616873239464879226889558663194316926779875584855873828687326954247945639717470345125322200184568447322523260153887119880246141906233399749689061707433113896001634344110728018753011444016883277742497595837940394777883515664675127085716260187700565941349770941554288883009355130382818736683877546312748222330031305232676646684271950703314798562212080097044697265502377976961365047375394993948307745692654210184567626706742130421677216696384422471563689346167627109100152916326428341355381766394965469561955045920222429232282787811358231567292547361020732884205085457055776724459044488175726464864960103170384918409381922026835462847797449686529804536047922867016205274756152943552110080950084519857846440751719330137414077309425847499868489299543684515515291927605225028402570997437851206249119228045926260703324979295379665726215240715988278446553463315826666261926779108102033200932866227357837815590136521918808060138527917624078158275518653627119146582748023308775982638604616145221400168322957433877424083355954945295089868540972454175910702729326488823428335846934835043519820689839991382511015461333447325339269362253163783694488461092989984668521257836579327589390962859394021244761216498880550495869811180338712906425671911700829271320316957027650966281454656027243062596099673499441832886446139030429617925348016095827317810940134544183074042327238305278327408745884058682607612335970454812528659367390722763235355863894770271850895755676210474496815880762736281419070234182798019042753873229979058203254279095241452639734324568284665201322189801488401070076980731847247144749499246009235151781266798729283659094172005480174908280008409941935650604433355539544898073172140059088032099352459821232153010783175635289194029863228894002390832731218305575187709457834448127454237182858118598404404105722120999205546490438551019108306942477514299336357282237767906598409804651576311377168098085344818932946340512862562581091518663136780406553578897799441754429046170765590919617233528128064386231862795365939957542743851530765330401360736692936455243433939914857134820013503344570982623211160697734556027476088303872303050658143763283087368273159417539372000713005636421539135316629150371354396781627627749131997677530836124389179703253932546793831377698914161715835294391935179011508169462727330561504756126999077465806202502304135855231068022307424842691521281658559553741938727159483559932204904477466655758194579048872514480873180770692394474743193104136045905064530630174811141545650694532483601026629621245477614208574005609652746437689949840716052432513650278778911135538194229800554295932178283905320875508976732123708745028312591486908350448500932061288649025132349179992031059027922511683727689990842244978301693555912274930828125654344482349876885373530756170302196433287571007338059495517892866190132377393133060903571074498183487133250545309960413231771998467266919081298093735176285133317806887989757225552663279533302563543820177083272883385053003676721598550255106066802472260953804420168957881186861015620788220210194796404776808108087111725092256360487951048717533894938161711112811030877397849684279061504943135778697201039357680097614421029532741587743486449459607604283487804752699371929467363894281842301458190473217420135425993924523071465444794078374323701449226809458152558928343441394205308328443529536304556315248022873548013172822423247608312202414770961757014903686771052718313671330809638595109206320485095726058359051748397812512113792044824316001678107117346853630804574635931843096996983881962310424061587296759535743949286483308779120701728725750580257872495270636152772744713743912897923218495304562863211026986327602302957821289379539504989758562962556628997405806143228763685962179946546909782276882966952078205710395906872746219043420949429709911113411895266929679437599622587097188146417269803102880047598790844592309194459286640658326122178216887774707166922654843497013146988087005662048776592774612441087169461367949900249081388652890738287414831880643743475791628629972220200691849447056025949929893807319761477818955156694159199596642497543749795383834873135139164528724251025351850639919915730755058931316228751323361780380697176683309182575668570820278948591639435154251331502802203059029910560593018637205118445883378829902725653531268616051457153210589501414527280378871220594944619909771305048401595434401596494074990529726006071781155180986358936937575457419051652626618158366677319309061885278262913626908406850436978181182890616795341099952761156931811693935952251357610830276142326352796455507597104853656617220182680025943904934450333140573043530451437796084149344930269781849921240142524943323003995989794164067153388611976196817225285646503256228327421800527188462318376303518593696049418690781597712157193941631957770968018564554935445201366780266281139539341040806989986698763532415809695257037873119361249867503267573598362589843189889598839056286921185933362544099374161724019542776558131670880437043201145228993175477475314468237222731315914730925747104333838641140970798262908385278852285639087193920490301139946595731274605159079895783321074531674270994854114071873339745221188753426860059929865085048787946910907794347200777844302830661104238874488461008265382802984021606833170925935798568025880161399309510681227970727555849998129671131654263041364710725045275358057530660711201305825482172570076519292437444005932567811061735566362158561029992349116598795167860880531628128755552032086501618169902372895728129774212647366180811672232925547375070256679867657007484787270152865785528470169848268595955504840904460730019666484970065265885660087076793634469220002669555368104087810186770361007861315403987499868258788135831508294813195938760498662913021513031416477174754277579674357634241837800694157155338063743165571288237140592871520780394643092529752988252392426258332166464950351641280080158816688523681222152386258675916088789350765900895516159274157120991156719956796960220706644037519549333512316148428046435367561793113249306349614841070733135543681536424660422220338487589002751842546830811418608340968566254955914622288102352827689775372254468712846966202052982696425282328253453602534017578927616924297424882521457514260327733960502851799843334096873469144697618993564058875611984751091099885253467305505962701163191414672305251513961885516405509122518270898743513445994276447540953654831976262128660761077983060238280665666418461150612168125550355225127019545225630364232773265800151624759925565223825468812594053636115733955867513471094952688370321149411929279840098626625594226135172761016680376006524677520181685840117222062674226966241620090373409818083514337088152193550715127494263395586913729268589718148543314431380200490368329992810315438015037481772617714975223108645848331495946348937774573003575100975300565785192514763259409273231261526397537239687588921855950795082691335046460863504645594901059795875269059910660746673812494993069695277162485991927426008008844978976978396646541637784764231369232772696805337965234576596294994276396811031702757842448398387734903055467582882104873503317978189281074592802974619148693678411319762221364036720221556835582621058043931506200093965080980334320171076540305905140547344832083364331940777935537774041764699644749720205501450361848080652798200638905549878034736766576507115337389380406967357528542194428773984766045729059184299770025028986552743194449345545731052126582982224890314531701065207889344726245792439228832917767100440619554467023879181119250738163812463973864924364660130194161498636451754980215969623726702910720283082862752124885894079680077513629707626733075983462245792429132922216516634673207061617233063314124178827977176012684838609693713548890247764868177098835307117852126650202768334835730490202215025726430593923243712589915304377862970610098389068638971637634728675978418549092892378252752854631360894187760447519499657885307092795065768078767925278192990853428608231837664759259581639111575310204761517250530127760403801439172669490501610056285707840538426778491227355516035471075736680752189815527415266441234593303658670987041686880246344110963132019028199270680742441427969948758089061816824293712899690992219039389818277262749919552818123023382535976996330071370243669618325623197167239117885592003366938990129422799669896173791905540316732790265350624129560671755271595877458585270023046356941714121369969993790480381786456897656338590275377481133427228678080331348781389938485206615117019761892658097047929919279044907507400822574323518490189182505554362263537731872470464051065628584571989730180489892800223160531286883698884766409239453440372399445568619750654889637465812909653869865350985530696420607927286548254413658215048024185336593664608915094852943027925079857669958232306849920779496030401988618842359818222876454108231207389067989649922208720134723337126856892713353155087297435618196126943893823983075797032924165210025091554308889780310219346323234819083940820087024978173555058695292200638511536797556117707967323543806741251441849448893284983592585965244993428222024867011223932486678452129493752574683947471336030751042776082341948121089936453395038480279275458762168194334562169605953981110125625619275118693545827944472586296772215281012230912607231538338475195802627216082757878429532307870527376635991215875280431648568300813345134896309878808335085356085308273996470413644082041360271719405374194789300417277706336176104158122419652691221831640829418277823818634621967871487681904687203614623403346355259462490149174380612773558124175627275625678527010128173912252678374313186943708598391643197114426873216695476814343599478280909464356389067013529051769380265283965409340178730381995200911890369404489090737406102817330907270451655127295956584586139589235055202549561743114167905659114454004061821704919451693290487382816148919290700158530667779592531893145499053268566175309678543346099113649269291799195187806132904807074429830007674067498750302123522329526398784331570692880413578118141403594979931953799417469561813231382835535127376338927942423699187095567829967064621160283433870627353611613772851093957046950531669914492003026203070111573346022161181114096211023261279450797529525067240489642059949998185311192235206709876489047444832035847937977708988170558055158565900357571091301083830395204848953675389793959109145685212442674634660683255988301885500728844945773429753748290146730607296862195995001507798043187412868741972667232468038229266467873120513398044987160407483493066116695344063770258648572519042978161674213884629047722645510179062199010106472399116624517899630684137674761429077361391059989051647913140299012987400185115566732900905959816848642302428138855182045092494134942564516176443802483198164478244175369590408926254089671329313767241797118449788188664120850053850129665807358591144556023497239411040114561552427608141803700692528220816832764110514364015357497299489374223160729793284668859689077952947904962277418493140746824553091002480754611971120749784056212325845673606805459868092665267572942288140645099346835892819855097300999103562631046194073035606100978658935948629148333389085234903522601611626731144614488582485436993547525535468597097001200598105616749503023719460307988490571347966652618352431032960534866055427644450468786949853193445306217976859198919052725091397508730494722532882639286133813124308163361004498914035715160010875999599620327623997375600668932621663204127156441471855399216374513257178756992004533179373421539255495730142218914444514881765900348808494681446764518770696009721181260113193607988376108750619958329806750534386643856034227914921047808567087121268611049947551236419686215900535518920896045491180183708735121330211392794794949815716068925443928393506623195425830222599390464610841912697728391162532970089999360498354420558925076368516120522687379283601045386370516939683346470226816210804770431758891665090969079784621512115340585016752743304895783172831955091125491395996743480430749372423209356341595162852429650014363137549355326320064273381945403603501647129209510062030029103591692387711534164025713090332374801182964815304886091152539519958227420111528817863718246154591014153507322379890810258520791312326183378366397308672534895588082656639590469849458664532794365135304132962335382646259810337236185291934874208708740553167426121263373188293768722163680349235635200545038156089438440479691803365202335140297675574686143333305020838783811154126892515116611693027429600042611367105759300753033986321195030803392393579408741687053245015367057292337434661772999119348519315319557399953769126369716336733117976477118797010698159485281891726906968918522906050288234196612584491159662350430536436014034443586993510520884221565579111725413093740416106988943168631651557888684742571143529307845737826838191366923747187376503611401993127478895561314272036225067996966672737637319522464516567155540340694128495942378451209767375901743685854671556038570806900679791609957489085598008629165216178667940521987525268797423087705474963042302829303525842761276529837372520625250219853570058402488247288157143933331969378689501376753495147274824835717059110330516410654934144829625625905305365044019038004020211968494364261854957189753820029015729853647414192226816659081937426893027711842401774913484469101648925038723720048346500120197090145129094895911133777555832548597177873555073676041542278208853206500567733297342126473665914490842614449920893962576608667503480943589069034894562449729852362363167117981131821811898349110914432435470997157574876183338680839275824218825831797287337642658473841995942906346086502564192072901892293937688445422516011495171298576951450919196363588900540216268162256335138732179154005570620034454904746694349435718339485570861582790426073024567312612048077437035228382345995956016982274007022215853679239610946087559722627035157161821664521622488595864120490445841905686480165435601124320612665224591612384178080799782484355224617940585347834464215693109423696346584650993700734902635698991637119993894036667212702486630517387794371390242642306754046496910815282950978801076002012383443414450135676197593563459012391159337527682865287858924432925130509498994350648829609666583524717706314152976021666882896775624617826537669713137199900620702113213168634479323285053526794956006594684911309318098527330826983032760488088817966161921729590893391135011120711574576870135756170678491228695840702401889241983984694794786018629451800458079873067062979401705718930043938659822249512044190847007469602478155305053419398528919926120190091041563414109989470424396920286616102997332160924507834779693074782697807054446274758827131476923967144193749605293642754698007741800521845800027965465030002406063168830518507664008071804743220370390040582644659377538081714755380260079649446238210566352321573300736714252598481768236735021089086290403614913836427450332857483415640643206689194496748278940363347410411129740448869877217655103148076248706350678154665044564166122386658729677939128808500927230530963710188653216210569718046969660534235379944536063368695069147708862131474105827259534365885139645919276910688196786785926689805446422570520382487012622034850487050663011061956622881219469864836947195537553396360211212003066978167067709647235781146125189170132398210799728437951364368656117137375844300761437122867678000357008602057620137688963049414699694740839791173586156581516385421636279068010225866187136039197017311433859312927496714361446797801995139148220631826022118689076010896956529129986875746214049984071404754056779056886886478172452832666182598182252014731626403289192851128238981205542215979937190486214375637288455209946833437337841766947805140000797642251172020185731690589739215012381335881183622775348102737103649320849205941783873183945781220868472822775659980082173517596711993995926644074394386113254116223726768497701698150794831574551096533107287006255223441387685229836826541958706343081757454391640275712497594259399588239095670698447309993059551743615911540093159194922495647179189322539829596326491932218657729867677304157801795209314138469653003432072705420005956668467709137380709334350231022160765584543084872951310472287109963386350969948308495605329871456565640923182381332187880850084714704735985212656058285089445092476476170911061238375632689015816899808061554801395860245107500012238157368466567152911442874911742506294132126303656049544904557092778615881615668302099056258476911368027652260606490409134675299970331855604765827513122924021916965187859077190738293006235986798266744820382705340629601026097181086850897613679624080024505538177234291701351880426389261714612890720102590760421166092922287019966075188507202192487218937162291933192717123531809249959229011922950964196115379005918800450090414502557094671717525809365458569362245856635466191522005939376186862182146602389800418405283481475116055290537915813342230543743338831899604196790811193921988913471518018321117747804744698092576953907403875358960590991079429935275665412376629320033624012886186572176411148614710928703561099867922619713934920579870266661185237530091959236153546524607046867492021247646752375995171561815218544376399845606352889083661392298630705036852971258516986331442385980621275692344988529172596300772508654188499298386837924511737795226066877430922591250291437918565287691241105713655328552792653328350731609735879459481256348199351469187008885214318633657407874409562713903481807177941295408148322774702712456013713249801490169161162967363763421079348217777934743825904799583197158802620139937881200061591076306502008382680044043366263042465838894847981047086088166318448901898087115495005334664654828434918409044756679298136111504752642423929686318136169801325888194399932108425799161730699429030399715260431669479858677053524358781682644296534046909451594538884599209756255160388159169316566468194318952235653786003425886548387822242530161648312123485631626045745744799194125899252314994103400282037557235851183385681775101953078269804845441140370132411875899878064183237927374138272928000431842170701713686340646110327457473967999314353635135939771359471462109072191210558903082244705087968192714399413322756685729668311188854483475867783232347537554741753400810503523635715400480002760553821741030745589029987294721707719511659677626716491035056707379982339809375848608085257853805887161800137632608401514200166591975915598551611564322496369716102320154392457784109308401424876667047722411205320755977905449558825759578157058765443333417296636931183880866916418365896280038230651731720272566578873067305477145901049630129164838818327163514228998304124806438605708732777976367949844480561066881290055013278860474994659921789678653224637869207430092746641195651328655274106892645352879704322906089808993461858122905429750630087543548517562218518563900519845019496667707866594600187716765896224784427968557929241785458089062505636334856870633046840571325251540583008205063641501517225663663873522436362759746817997462742917119601862161874227463336951018514797202935195913110262466129663366583360431156798075002041073983569416436387890146643118991629070271835247883229944748082880821420122093287384574580218272570924456568738159896569348197150656111058523407176620054631338716343581755785485151712693557901875298144448778183865101961475379513131738548552418561415550364834334675546277354313416416375271013520577352836210062905270071785705016011759093420794239780435788161100113390353283542327987684809867697921429563985425703748708851349036535102651626238982673469048625377091027171886874803990382161130641534097200242044478624824879693462816890642574243014279274711196675143709365506543754646955928536717843615163308216745890868489738340119292182700349793749682656626359969392362904200597013464778248182167417571466224521061436927902230543647485227782531189775482555777002829599906552360865563287921750747052160247642572884466002455901586529304198810498516804498661030347127883727572417900207745959383036011127450035496446323754029793126391415962092815633490757155624637655255637522335634590027836155889386798040118762110774650586283730716150239326192459330412179022169592274268755243594292617802444248981269404432769137558136646866242819469441813573220240907730781879595248169080383237094833430461645696277055086442670611643061031562142151657081542435120719651735474556187554821372471498695549034570858950535114323940215824623731799185523187496806837071214692179752295277654968559042824876808205043834544367613803152237775050238934088988881763805471939189173683905491170352417139074281989534960193072097480544347473364148985469932669104830051985344148593283501394174457614723211930356735167952796518088092124472775373202252053254796399536025967996464229984606432754613004723204283191365758980906298846510880639787721362815869469064466377090599911665567205775452053126552159452528560930508342009849757859337264717577372225545774930567373226759945474230924542805319653888482631110066019704801436833586079772704271432441019185962479374281991081076467411566458526690969746723719700822114788994982250504950659620963246231626025883407712838991960831198013982529273168148083467176022247279131279149755495824704110006280725158482476251798373683588867651013131894696854890779514724741645324590207298865186965509277769242921996613531040480877394395637563871773006890589804620202834276615044343119285818842573535507080379228677815200003470017397557914726309320787270708322816267814926103762776500370379396419904771241225253430685170756911236105465869214484578626375906098079886529268284649800904135126564178600188729270150381742831871375865926542747300547247208573826646399205337494039963554450287216240101841843254526145049794329620020872017825754277690000566681283316877274419377005162951163860487583182375491316414039812468647009438218764431213892379392963490159700422503696448992057558343481988964939773980562799767282998167070614398566391451133452397611672057801889895344506909538505176076394379666001857326089117128370559125192008322110495532386528310663484811082780566625960619591865424701625120170131817496772418158429062401160767475092231659408842735009771296850358605432074951957581161185553891270678603639282856369572194347733894661276329914889611394095245227339651664443995617644638003599242307376485901827723380701479105657126338272707026181037459889576198400298701686801637465925958808957657062081180801578824523547051231949340301089786077860355801625647496366895226664429703475097375729365521595720501838001130064248369527497898048866994631264837071262017583528898347064563298796252781242381497234026992386224555379948522756616418209429728493815266155310038247645894101063106679155938807873155422514809935634704008385256333871373400578966511828264841752220430335068856767345670349555378329128457214087434184466296619345323934010218660251722582024436969828689259448229256958050147384203223455274916242053699153186425183513239312324992617110209067920877708129733187870325435894581929915792280590962931361580454752508263465998795829282140396067171549184157973277666960400676143216137297996287969429558647096238969984615288394511939986668052947856252004792664802553110433448218222537535541314319878984244408093726264097186632259639645140910863826836491228333387320423892458556596123146715732366457616640785692581573017706416326277340849136560801257413843182951525031568819161431210163804766821623714031755627100582976765597399349845651164271254790688446842306261705472844447632996371065129413542765014226376746974221267663193451482011745172936681951234845481018482807038979976616433262596707155764120348535754506739225207807860845885309930439075682230994136372221881065747473440771836574707872949730628884846868588550989278269866867319311504938237753205809819431583542698304037506889913705016698892684053551924564740829267924658558021892639994363316915659199096848544435399720099276981070473736642186902571212696084578602924589271426344055486173439563522452266579667440849136281652358350758369316468289540416783697255247385752387649875915243305624290791616169792374726027775682096758183376068214876888988735590065981780885865273246991126824657894049784342360588991079287768049425971336858203196861986850475004051347300679322343292683795498464233350524726346008269006825615058058741649763664556090169703835446489857897137817634297476694383639324220425723837965235893783326599373294442533854443113685210514583218508534422749750737552158547988649652704675097856963437998592856695760623790825537406599391873348890068370774615548972661693039174195803852542023631627994908136340065277424862613894455067359038836204943542741531975112634057559220811289224517943587806094090891224087721460026451657573488635184049363641456285141207658702119861641472222554111923217447479889917491239628296922990403862854170180846747565637549728835264193916835226509191171638796569697552940161757087412898188041654497442443265079768621916525320678123267769483742966427442287719857062531778900916381262514926859883568339780586885289960757261232405908210103276846852828916389288696229121961583021952214059095220522897237762687813959740538095121989595272750230049510205912137751749736554073040759188740053998478076158513421880719275860238360147110984356113696183137326863757274420718950954963564073690599226024940902015146349561406429022146565612089468052170825582975185809618103370925785860080783872405348563799782432050947660933757635178108177172192038839176847753865692930995368282838771699625669367249658363716439784207416054970996066433222174282998509965505666749459460191386867265444317339791838335949026648105910234034359979031044221890422636468606751080822690254667519844745895906856663699415684673384584758509563687077963593123076594043749822189424475028151809395981987465573186903240979489158744691381998038868158191867123044837756858082949122095282474151394760715662730989823654108014469195418233122819704669555961155855555831580682610254526430977323062758392200323778602645384728025987802411983228620358091687538811544482748954727001595733458640095917645768984441770057991233178812652162519659749420279128020715021980688266482106303019016824119195824901551341196917918239514505246674579301734632470362835848099908546432934347086102954620757849932747968065560381526658424155241402010032805931242353800978681945970487230878368863096170206515197106435999492099936650766984587409878204980640092746745834314104223160821853440623459815908708177850488886188076935347619189602143388378631740462974922741162798239194917698736236162054797635694462437600831699566411895725532404025593363255256840140231223146417761662232610746582277194030504753182900525678286119800467786361796944009774017135335045063508793226200874308221699646658676912952816629185237161253242263525276924708417951978097766815332733428522923216581020264856817984465476940137002477436846383495383813674721416742804313646881524370710670450070487649927771936088402624574832544329630553349177467551235750843585736505027603763749933947741180234829655157373241432111527755175995719456924800281214257652224094905123953705898275419286162064497690080051672810552043485522695502759535414010803257607794755217382999163944188387160943799454569368152118768894453778958210606427690604129993591705913374264018843127518832934810663329392267909394999477588807244479029792535905463174010381493970797634841266157383566709345257924274578960762472142228323509197054000044625077648492785138988357188350982013055342590379193536315223548885866324766764288077779308887977230434364036100687516427741220226139668328077893192782831808017307735060748152484249186724266164920492291822597138240224595523248149115768607770745469519296793787891155746845011974262916666793378494641156038274345558900700550222560515902758161648765329583195718135769435720399299808221473778306201846089261721074472828622198590985716938933609829022428242439689621174428745278333132623768866435820685652662538606769966708097524491429427265459755066092677031564963964401146832516886069987849984107652527278128521589795908956597815583997375515051171785190558431115800729804986743339345409911690287068434677418337742981763021220816227692197448107582973633218543613924559326523471790705810474687354824552977769856892079562945220453828662741920457455359753783399530454822592043518197267149264847602204843973694833692230263902003159471170574057396373805127004419904511231506374588102661348578762009022865409928241283772367672335877758644948698520724860512059860666813723635977900580542664078404647517048534148182759136249435263534902946088197659060016587137596175405197969008855720693723613481394247208117409043862656836403896574512705874912449954240863294279551686606512866368895705695022204010570307968554223702470323438644259531872847429722147172523996999235955808240678681724403658322319672710300723700188475128326853384605834278510272647405624823640633476677570828300683362955179358138174055054693283242616034216539333747842236296193124820173836444254965213133161882613006637459749913737857632874140797844793458879589464989455274197287491029563632473047956693085789648079076313688043458875781161717334732314995804433882253168862429307299348551379327349737185100257796798321678291010493154216629361392140993885253203251083276297326084041385706294131133013332097212236675607213832676968759337121436284932472540613991437390017909655616950524523664399922891575648298692358153737232565173629326972342367008436161796738785412338336605625473318531815294700259227642817480718686124832829364451204862886214768184751400687476326953459144613694264270032683122361926144791063805896407722430206150826425937453033717241764377350312429148019752390957197447489447153307997401303495068279209810835863986342997346393046896092447257385173993687206821498042655312436507173091861222523205627160040265570027872774381741924351552055196711728092850514120703459095006984213956799693632645159723833516241092181531597086428473648179525991050955471880427769219470459176176750371643819086697233951943541408868076229302542394588322796567677436304067879294412760668121253522202311854862065044395394508331751036583670328033948358812184531326517795025651828998076043311448601205065275015400456837046219154066798804242099576049931925485478908496535053485400384303175668826105555495951848785734176553929482041137537515972816222666334348169402368480231249335660860924198839918216617589253010571401660681312694306034967362830291568237557819277944328956919802459497451946431232736194957476648834132462543997201507598284347233931957944820680890605891133985312271080186567727815941198540489775460548919763872856096638049540086111470844426478923658831637835663924878976950720266270305794023051402224097192032890618982219280978572634516485630007662024212820434855630908521788874771177834621604616055143076378705922646900867158759744494378348482716114874286991483216478467463043615225653938297974670781183730782303118242340838652157653475203542413752791242398251756248254483004665359400831234540528967787410513615012364025900456553133102477518686159099530620221503667691856822038347011293185815608727332952660352655011232499265932569003251529317531669596146622381145742474562072830343255348702757698771108729113549593472195838335632826583548118449639775922378878880443698468515367475136504896256293112702279954288498996963759046236788826431674263100630179452546063326812257920178183049663533451603167736701744684265267167371652582296393477484332059523630266272206877024372030776327349519981568291827905024737048173521868736678248576506066689507158944956232274185656019680575436514545216349960217441291710542209291780186152456224507235057144146713040303935895220734635199786488490136414609947071319417387278558076410191673085356151661972454654527568488744897738507276014428708114938324971885335401586125485642860943456010165009015993404788762709630398110242252039676657399265439920376967110949173308446455807434034349782575542771003734773935340022527843803197324016299081604351321157773545428348123214910963071254659426910055878329587088894690246363266305833672598691227243130374580523377669244217602461473544109723669598080211324536318322294375562731168218744362716715686590240179593292832033078534081437656749140858860369736728445794345813589865015967905882725387953723136965007335638464756070139523497003811083281051092852569969885229199115846194565350796048023266663068860863398722083599188993123787894994525263971843821846263038806708103221148931893646089799623357918658262048904237262613234567054286538678238194926812289610452338739878810489315027691697874829278797548288026222797774173520253871987481712122155896594879711262632466281900340288320655475681131737608024989178872442513882290863760549701234863602048510962352788936018317083394355622844790085865865752430453023665277458314451397463341174279985867541918293286071397475418290309318288160077681341065573711653229177055981056014455829108039258537954184315118100458489902826101896187353890262516489433474345425411051909808825844379750160614581898377507792723964020771463359458926436962146209482092574281590456026920569349877446495566802957565063634502667112303664053713637921468253905430693000484241489982948550537979741889209218747397160936460563377944417521242717732268677829514875455730110253920155091648218454830151368744399874561010323693261734825836121129624573517277967744624770608260326944708335640980871306498911061971877169031312164039670001431446569976556871940038135907748198345848806954826394348215678235963305069488974072392523827676064298876086778199572198473722797860415042508847141789436625691408065834826907194407427499841510891228111913051921248519779604700512055673188776606559225818143178499501034069824226993383036307258992809336341329081507735767554427542729217878456766310453681820132627582430723942730885784466671185314857037263876145044348610469304575822631580971170407984117565544101324299108210963724984197149968002661122224116276547846529152125615752491906417181227853263841666063789634548139137325074333349329552087925506008166301047291111732174134344707817208507691606498536416819469093294115562580636748311490050345521695704033767928104814918678049495228553682243152738419076533074725564798419465386919987607622986567535375501126911294187359741098240305101962773791078584852883028678657739657260218052770073631746703273419143890887257693034172743516758712205623050407749700059854013830122824158309450482704581137057620834361663568035253035916790963646357374498920930795946647064343787051197111354766510471962487199765221802120324363605528267750865672255024961276291567264934036030088613779303839298467164164895794883180654783625852243711846074358965945328508440250070631523194393225705708438384808608476386660831290449219427015515572020474387655228125210672580288723783535167907375048204216469688483852739703324484866142006703096986693127327394087019149579073356078844437593168109271044733761905171679941942724348999991858007977170192147145167283254216937062382920237848310183121803683923853002720939293800463678452195537444373359181952935103392341883634671820122757495176059025868579375814696843280527339871451394200831464747386634170133196163102260352642602769971301537998108931664411523844853447489522916226906572490696982535740600809893745542545777901549834686535837013605710825408447562389183138007954204692066252708982193170091690907274859698257546175754991495183723664245352637577161246618159752407167003940127640526541962076535795681984641217127172134967800506957242422704234613557376120511305000286006233196589763440200794180925055660135946106796547638826716938409176379867480688816723016512240353268703412968385880304316367971416977646908849649251863266192685911808229554821475629352965741612450319295124944870742751481673360230320000445505716659184745606641573543431006596681553814708142884262552514452659423875661885099383598247235460026678975482913490344929648798530038256252456561224034580735191932410492568855301985199365874602512920756047155278042499736438536251238375051399620667239827250499427356516433109215781947082117354659844463638501838442173853189681732507074989412864466456278330188588668467228915533573717868346655408059795091235508393917706277656752904146648139911114559085053746710186032531388423157761388222073961553524402850458807295364382074641334919453391071750265410724143917715585564377028700900960551905695512383438600865428964304995241872454221370292337893358501247507546363220551839803915800187565497484603405468295375432105274634670250649887574784638462598126240293036660217290823346682202168633004629284310120015488863899565103054581512648851717040420263549464576852375401987445876646044392670673630267426838352382815478669600187032861098032037143092968526021233888418932413143901788651489729485100538261033990724922256972671550221311971501579605760588224285327508134953438025295565240124896216439388061576337648027036440203103189938135032922713157822280528844900754720561331928888288030142793399893268036003386635341722413909255572588513974673937916282161021644506295903695247453028223554769310549148197018902393095207132481536487234304393424356310994330198401005025507585300412440264244042388522229615998808563774310525055617930505791510582200988559715040545124795607605260652396256264033207839767063269717667519391832200876285030052813703363040473469348632873701206440400247061157575636334646234208538857425086831245159216622539066503581399740309636126155945510422785590455309730395154909360815147123838307923691233987531582741128331011900302451409997046534650992438331645455535074703926046054208916790588963722028956899384696603781166526049104792159741038393357468613566014844968008549237677073894056337064852666408350530350975003000023234807526849362973274290559050740465486211412419930971143439238250866386837738844466498891533906774221034425008582911955556741369596642471338570887177364206681056564606834404568913418976830428203786725953297902109328788842302944786051503486156546509708371143579765225430120084514526571913014063239477511587899492770349963448181274622339139449857998438202165130747651232551581610585653891112752416533918017175170140336510965087615977636426683276811385209466778322076001599097316409491426785710434291142836726571332511162033559689577122547949580015825171986432445077868343589995215665608959632417054612386029569786807936339440692872037688639492943009346719423711299942671582806269716022031595650199355045614346198036240489901929791683861761269984848386282521983462562752743907741691311524350818381548499913499884911890867133572341482151351870975343332933411786412547718342884361119236111860157253477730377179042014505244250026530453374674727424724130754368682735216957778236636228572221257426140646971690702363185526525331394884469444113221359210257591744257644416261008918581959093289683124125022816568723047497055854826999428504534260588643646774320774038557561602192648178418934868496675584658842683105644305233022205918232215206455544169235607026502162831242346438992897804860096908269905327981884383516293118952621096576152691726148331851807964854787837732954102845463534462410496825604736551110321189526170757893407583954234450218986240558013552387539236962997429568002245915668586673511657793718665313688459875717265205847501236731631371403920827351986411122275040177968718925841572247853702656943497594460932199064490919376115756130215211191948502234741490631390793035286968113678055516818746122816640287796134363982503528205482423629695128256487151480876227095471646622209018002847935183271929146952211324751680345535365551680330553541520534226850985023907903625596146012534118662002317568911140415868806228010006545767271865130730553396687173402527455738237718429917353229100401836430440310553993580730099612919873879017367696103900687582247366205297329505126622164551516050786839880396855118743567290135433973508126009291688893936099435271926346997756137342431395993956820254284403719302459124565887041099518624948127878832000064051967512865258714483235342991715917348981294433297661990230201582966310684840511563460961042960966395788770630273818946409029266877774873077418701883603794233960123717713711108962020769447016603764812036888511837305250793187127360742983489065910024616598744240677398538512304580564936714608774183069576535937606007014056353996511297732792814304719240852528408305514905276239090238760730580908341436284100547336903291137118591096172006214051536203228339272241156316156631214914057099078167314088656211230913379359315256135411201660385406853769420992928200727964908687190770933361075919414435780543364874494830401573306482144279331204304140254549334981395108409310158118717813319030535159121515187166017082858999044287749912479918376970995681994070184873754417975478945677499586311230121865669158603344768821966207551962008289955989164665087957368800497261238307930823380029988239211285409209653262468857386737166737725040311753363657128198253056599098050631120268719051392687035884499452202154994055734235780106608562077180479554075636482616745462004027263562547340430940960089246959121291588730003468845943474806712984456480090149558593334909837171445054056694124616161344425164365004122738538711334284315241111090476715736345884039451155318121999928790945172159547311348994382737030138001564948519634449886818065643097202277281936575990189119567028682565224298180793856322687365867531564918257070750515014129159782088334538024436427001651147759148280528633808839727402291341419616988143712891506210565441251198211908344211950892688064532635361894887938071696598292781470587341418125558911555004784215459381632609011409319010769849475096478691051382195253349212291843440859319425657446878260504020304003092223401654734820358793961119859739556805962258985087405557423242825346713567740831941533177039588112300721198433454217602600976042003787288004597138059669016795458576396611275503853528453165140676540130384076170962564855059858916191467617573245724692010410410658512004742876841617596575477152650949767524556125555450512358218069403630640657474402733958236454275979543523772712505971276838484459605941828089474581501219972618375288512672323851858632499634734381035108000831885206497330498174707767754123853341309959358842884158759301409904329111282284402531794184958737226228367484286312801891043155009326100661131291972043349509996238041880915853682269451760001222912677589466480875983750096145889654075710167054937355223194045123857077159961000646520862434271330701706805963718423425240298212123129049458596666846080197699727752723924388830520077078459840921701208177590724761984088671467785999693121631409440331446915978710391025848602728110717215792663175304211484943413360193099343072568418254419589075318594419458687812906953999683557398413584055755338971476265456903909987976781496532249580798652578854048117787085058753085267064347261559861379917846177558551999538890664859386931227543146846372143445027438485470453710715704298445893897957749252121055291297996601691708730353870330537394715804505098892248858961565747703272032212526012458343793061065293662304001192430316577214637086453573049339475405739186914223181927915902732566115554775097904905831037789385772121252821064091828372520736709309181280935203670310108936787114289516589303861228075086945512602244777652410151295431497534952478554567991757265926371941974684972322248406554146199624362463193009029688328394025129522719764318963282583267910085656246989763024823685338153626394158807577785232551852185061829844317094901100121540545186844626703051574432944596262765278108323330679002535499131766476273585759111644373354021552472079080845965425785246181196470957620489100107606897796160660678088782738464595222946582385679679146795283653222088727727650023647462394667774323600258748127458286077987836715996933096327512086446493104119890925928393569151701564282183007144711406308753846421454907797399283745754184728268292212158462587529192614328115740928838644344374280638605992753284957340096813288395066084478148989715067197875986395352161637497669611684226870053735296206650437794161700195451435726484891749939652860555506450126380579108496650217909632448710593359858888920949944139991118426052404784082400150417208259443964963040504224323344234122318983662590716574113221190249173398736989790871919066925879291843683750377687081349900845963746230958035625953106515512310933499219465470706917472615111762496978404164314963471491568138816624056090982349016455048658348213221067769347807974666873981051508972375714609473817751846738516192290960486709927215051357420147134654168080255703784382421315360813170497329454310181241630670915230530947431530240913050787997736866709720467029894653478143819257166640215460806745797333858447813056556623861398964185848665055676785938059526425552216892696925251769564723000760023964516180966323592609258389517793840399052676517504677685586689307233767622887265822894153501176969795961562418135800907189224421772328720038751710603651464829833033053722495645744798162292303589962916773140904751840065804170403081983439438165489106828820632746211982483333389856698952929028350674577386945559244930844710829601115885043940258069503989546939950759670603310388072064685609632100903298136943371190663531682797113112638155739847436334105442459214928448166078972242225692239367769871057750431187051830408413300393364372810829965337344118435440548056188153151907911779005947207137322565568901763171369053003944986711786776576061613541948202699564876967919025352741510518053180479048332299524707387105836691625235149737958838129078224417181848141920140211151236625757297330152442395812863869939865665967225708474716298225967270670053027838916615134535386800494774918729566114140238289649519276731455214104190758728058096545427388184485101646721648412860818118848555428125653196041688466411776004696192798469538508489101009595776084895811008778093183342001147110753664517824954012312764525316768598911013613870982555057790448283231846148012386799414649794199831986564301242122420097592584329965443684001329217534395483185302112100471618908069256492164831523946164665015375781876362857211419637606345903808044851444482688963014855473635671776361126655204304580328615087831950798810064706561069059209256965510847008554342175682426244677399839586439530962185760166850235134573396961929166006771213045939278980885107464783706764394460094322902404672837646877470672089842241557979318208526990242205085287141365794118978197855045873897572528746003652270323625276448417765060811798395089527575387066730584642810517224423798359254364889867591901108489085312585652568490934591378734109670075590787172169415057159520744342065477307857201494909655059112307156083653551744113823009822881481060121759548284240742826046369706434055762711806741878848863058819540500946233549315983507949512334412135728259267803154523290516601439811429028246544940295237105752204104087198526399856425626378790548932093847381092773127457616735148393069327650566562165102718850392406211997323844917448981984516718369744980215780145379188414192036692688658412517601087774218614577404090169949071805397108670218965490137710647345141131061851534905953145474513675573541416834721663321125422415071846959895450133506916313046625364854504028933296558303111972270446927127684451879369866479623708970837913251045788423267048770734260024701289399736367381972918341198622143766928966933532796451405060396640134674067637178682873930482764322520902313029194147559423934871769568963032420171267826719932503981516678369408009660203961426008762631617715765606786055420884773156214746475083693086854733260697733610880701611455541628311383406836355979547775949299535116914296835154159065311748514530496380238211273195139008856824257700761309043749109708011026933287072808438974281485716234983328637556755132265153849402285606978950431374476012165355981833689467427574225401397895949212925354997542443503931136607733853194959205065358040866236988868357417731181202044871144912060800914140417885550040626005142389809985880606259985938781676266041236642221457166788703938617415859042463864510795304321070757526104540043276241958715776178427444307673902481901894607190581475535058102366686282098810508614533179815210360925625558499472270973038061932359091147159799645464536723316958616215577012913160570967245075880632948897000336017320031496339670312832399406991522000597595816994084889287902878709571487791048996872070133266910204908333786244541274363860038216884574353573485695423760061335591981369876492112963545458029450388450823006019047591698449997492853567878887740557899349784429990379418428161922916648812518928159478644165655861157745930403235826065426631282690691506466143998227820401113670236051905309306206739030273881206916612086777536446257292041912970079265450746077531288831883253096178396199760955441287137307091319292974749239888579452690663931537371837660586263868510407439225461469299876757488875700483598654721335483519420682030566307572418481874057530971371908016674423713504895905286897631693651004184418419293106412176243496428072462207950777927077759408501847836410368108143037173000478932287686915887402327529548122437877859944346615321030762031932448327300286615434361250060789800649330677075517238497452183899855632546441983172776385445894020362589288867007419198126296337045644590220967788671307807288511779562554572361753179183449588662234701139196464899341962570324190955455354296311663511719226642047716915130088253324234231853306382393079997280268301564481744628066770786492415025014069760871510609580265760186368587675952255484867959309160277190561718311021000787228602307178687916719071536209329905343368509692250745495733598572269112775590137410085253762690322649047624598239037091960879754918523068873968563588734958488276376135684364027821349653202216202539001564662238651321204266263706514079020298755832695436041004665572133928314493236954113237662069223830773648964058144133297955194399650604326908337366488643660028649110955907203277382178548930161679191358993442612820225443975482257775390287808123900658818043755097447760271309290079561017608710821368626566856403340332711526199799954606717358589102155948987118918889241431027851224415908040051350881160500531002421201927779768668676639278036208219213653789055314989266049228732419257390596320465271080735281216471931345107706582012614620238711861470150029707402071466962894408096681546301197200589213909348657498655794200514557382319450604641834984391634414933687497408384347040984349290551633563651736437397637218253342155397741367276546263826085074555804671030765485756172456207511354887197956211571281645946779724051984734029443512181018610134601037713451791966702985391505122623542712410013666596274825658572381775817261774357669619855993183206817328395448312055459253802570615330480834165833948039102143899792646904739192943743010167794882247850995824818103280940721852622942809948563096504146031444504878147332747892072496627171020410509859263971894401932882555130123417988744376168136512182353125573123395894920300540201267198515741275612015301774291272077427394359650409395419936454014123409960213942022448408518484833219842590842539098798521029590029407724414101665465487346927355975461543410764238163920654036601530093850251111556264893199975344890654761481581252251256056258869908270644740972711173729163076062238517370821486598005549224177554370389411830065420887679225177388970187322559349319620454054330175774721396575940541729048130402712416113868054808500288178694109203772033798131606791074343319157700465667879459280017165923570715264139809265346482790616623690765356970621511150430382678543998350202313113673906982067031660684473530739480480879652451535334848843527830302339147515162927940803799833463146666061406549045945938860782654745729323608710225838358362448764009637034530209586416730479705107018842882029081967837459465304151241877713770193571342594355853873660159568448850668155242104530982154867327327896924013093342460233579959077312089399363626965230491165403230353079329459408649199643868556285541112279303331079870171369617856863576791972955054897794003311381386172952120071992836776716121520126230328059428055817571704721341399818267840481029363331734429495692903256088117457057692338188168455834575476054485503386699225666603024132361626850749512753965356010361778789032455067913573748070943159711419507089225394208486107798978802143693381739401337029014099433503424256776284497356433004029123585871220325309917033813909282931033935386018301568197776076402230376088009799036092499790591402931554360294727971685674777783088207801727169428007665814231567481922853309188529397466666589593108518453028196892616201739544586765321046762674143860718024783123557337680330171540531548042840340478796032148454925029546756748122734944080347558894243114337304370614246140241121209951617905315768787314062571661103508969572587201226296216839570840951765673505234808544561687284754089577331052318588565405291005588540462025126911784006632288793749383867544469118840857199337253848843996592334820266290036698948489954080133447490623648157719074786194252730307421495908643106646525619323942196591424236663501663499869359412686636922222248277254693542520103875490766604580566568973499503521762204659129061980265826833408795243894982851749490340016046934035833681585987763873021995804821542566159065621793587090408057996058684462614714270584171904679785225128723488036599520401364685223114545112053620337855856086489935246436432293712760567439127983143405520561040010550143005415337574897073737800585269801877715233326720170060641423809904271748347764883745378691657876751845694950290396086545313165155679087563077959997370281844552264824166000729794417704064345990222606918125243104282934501411989544163025400161281473057365883587695419292295958159351911722997962391975904165948070010694763332446838704459630291449558688659017978876578369534736392020429099733527944193390219058090938230728817571730510449795238457516547152902878590989492350826570047594685585776831196683082084898262667912673895713134632533405290352954886756334910804989312530995468457008121091521646941486149015399507724337810057418990060669332583504738104680936941445330142394737751821317980689305155196289326153050974695812741720840240971945899952774966838237256344414821905804499714355082953248822571612258301567208276154066828713005032714184391353500477972251553735924472873257415375303499176415880996430391597731536317001466662638829385329668115926030707437834949317257293818071506235732753721826269936382718667610171747285949546957198454383780428839987315134740578175847778892982848591345339501523226980493414434242297079150195523663085503289274416664674526523174475908283124835771439544289045324319873328509870711007567931050406620045234887696209836027257153048922364341184942773205584326158284602157270041911834546000082181589275955603138674743207637570211919890633522610905938193538696278721340589464309931093167229259420930320154512012076356350573942440093099667117522794924801161819887145671569513566405420877679762062469264149950308173022047826326451646778769027989393577518073066203256638131002463926570385617762052327895680297674766851344447517644724525831297091001541952162260403795564248553537640219663319130337681399442671003317574306699965938323921016799610813663328515907024322475475829085764839376517836099112334395946833796009897136822806594529774644543449164317374908998613436568257248875151321496123820216663499672465433628522948332500788306379552135520085985142024630987119361177609501181723380054596240716366588687757980187604328192040205025385264351849202915796892266300456858176618796139302354559908467421690656606519400567522298519590870389566539130599409912238758684925153510932200958676551153961492694534945355311148741870306707307376282323874025810706791187038965499404838317890299742024746749850399181995446060857487833586652470646232084845489897145502032116146595518984435742887791953170998961864514327290018603312065287886333925650337388883580908582450564394667171263112736522276517941483414316839449458264482505622806950137216787057880253188500505896087429567312742538289341411351410983632798854150514967900248572423867267369180587556153203979556726354317025302535663066373977620874196867061993175367159881222112144208823703810707677713759562829059380621658321686900766815413345303611738468339395517793775399462796016022929633127411395035283828163589132777255610931598197644255279878725589645766197096323782305337594542008207705562909044237725283757350811040400563118321948547578610950563135071471961458710516976185295863935757709245411501993430948884845895738795863162497417852785931492750651717418597495112519117132902553446240049659478121133483540030618930479224300152469383521413672784582665138491290332050313572012561814006737540043968828994396945420424565508965552305248674785309418194674409381901462804200749812203221837410052978623940212348274909580276994277798052374921135955246821889639105864477663465820654055196412597710668189547862869630980951417273846350928620210017929234708944918245745688466228500138268617746857663005972767108098191784134668983078196572681332502235012815266446374653671633150977049779039018229175577450737955760064647221391209204293035065227359611808223673058459900484682304581249216929579597912040256865759853727895119378670975576304009470461333537313732810764411532269523723105375743133989428006810941283486938511170064263171792624916648151988743753040475305122930341231377153378004499688113250254342382976925710171280531062932913547760561455655557729529631083358711357421852196254630579009745030179139533853720283838323965027198240220228846851719391235938965735343444381967986881918972138002808432436590397989829975525526561510022079156130661456215446217121405715900416129044386222070834131027060420750035293758690769606005329577899367673728352978889697573739041630058105147429656809544658487087137074480362957494162260852486757487100790064659847606622146508678555374818321236732417247373329848121452761814170596425955597559476960699592115368769202494720893020565877061353444124480966317534898025693544146711068665531040388573894269915815875676331381941686952683752803986798414652450466479137287890468870262125867132601601273638285809239568452360453788167728212773393903593984551162405878601597276248532048166905332479550176615643982969584422851540720035355848017027253600062735079725626303442469530778041400123293088106075610698012462715867510892239757787460800745960633967273353183291189837443157016649303149662672749261751953151603875524586891897488598734362869409520294764043715208622720763505066119447488826420181246030048771669584623398837341306176101609748786682829611382330297295156338924745092073603521322416520944787761417122440642423615464237072087873466242632382915250343181396110116401495042638298129120834888070808981602199112421020838869134413189776691083142281971168431725600291474423358236927082282264412301430763699575773213231494563412577176283917753067282193150231606004724272324959231091658796290040420713684678936787440279951287778600960995535894058529636240692497751058664333171194664767596385525638909430488305635373767165788578723760177719890735662545712570540441956715637897726069879961064788253784093038603628787504421542371009616316624765362854161080890516872406550803190230040417803943396322944785249229900733594571663880366263073321918430478722765563747678291014042289307696589220627143780034915619313894349706642240871938046498744248781757898708967916523433170032356287773769757067581355416925280059666607008154991790336824550365239265036906616000049864305571014890758622337098697718953526042096938054346908609455727182229742010562096312124179984332533500807733350813406486850640985010608920822053129918470335643371485177203169805163289932325637787937018669827761527697001899517083574322471135890957365596762968093959707925565322553671280569129439397101040575857784053021474516957436568252363204276545214234897672997439821411470654136684575184061145938834687277769163383683648282400348196343335023033500463853464675263916228631053087378287659422814968855442640474691968677362309956353461165720854247166821648487415481064636243284935952936714519250567359380304742464912351090607180320123568411458024951115512621963797012475390562551325560691738656823814350189411424073299343439657569833820464063310376046192195918934490813427463539652391263499003790727701346020616000226695789105496485245899856736687949924275202998210699185867968581654456692848585717285841721092008785623469765937938392570702019926475390892889013733452199564621505753260890438463794706731391495497828832937778002785768002952807663557611142275880570750154843408978672645222978234079171241419381763762928687630808099444654399393603699874824346263605946396855756866103372419331114415320210853696113220147564473069564423746707245367073912183108195116678622040810851794780200735093707763447336033875946175726301526942979316363022552714231483186748170973585136294709286120747883861969348796664758389962477200102995132146027158546024448966421221018009046327711407983308806796372049941292045862743003752046672458094800325052547336016026975212302487081084281712349580018872832330022365973481994663331514084285441305544347567240486202195467460713049718531839405815030153857950090295573440105359256967862742256519024358624320743426402313037473029131934876486802191357504366417890064419628516656568992339692946552066186055658453133668272930811922036790119942198672271664386906009858620346054350841563351387986603381154869032503655430371938047073837702207332307653733437738733560715276748578064457377113890820975252911499301624672047017898602073711678312902000442274565947669020170469690295003649877134480554656968693956682984661715078610055929005426866433432048068638851242206756156956337693873247686925836558407532302089092742646082960497740161465300326429663395381801349622678976170631461332376257105593078414866795790744223535206396888679370284201744269594389931713485918638923481728917183786473363067309614209062405014786722018752755443636168764684772232899551632461483755503626571622969289668994198030721114726060428993967138443607473159161221978627865749760935700062923020625830409564520035082737482265251149987596444806371038070147639889456160614657923505883662922055434798009324056508210445366685280414911736346013907686145544480155856712910544185455287125488166334703235761423542425515894884141324633669260150500453154731008179384205580684649667945263692299714975741473146608603811345877753161450258157246920652604399775653863812082511501191569960074017833402396153657918703062253462162367766651356918051661880618520979438193955134451187167983889049167845644252455209870873270685702170080101269086833598864521918463446453904984795533084824305893835261447682842565158072835566926439525338765315826289402790942428164497052495418043444304900683410344967152556968555072772639637194748920680512967073891592292519062502379239033092940502201980245187738278575772814117708739847916124235206421392689555003081834944491733704464664836157540814118398320866458748558416986689214006572642252426337188153114735046252773147547817241908005288334574225855353549172048755497616188163967768275344392997162224895923875632435846796865590670848584721108281114357022078993164745383757880497290627847082773970129334417597072112812713802623111013400749806850797799545270762507667687136202492594832463740108330880461064658290759526028790923829951266096092344302353715533097536914396289589871128219225883431346460831839618442741205134837459779874505024032469524561824871158612953691028833226605855065822368472666068319614334122228765620130324815246779979047363782212555114192014931591401196241290059498687135288075710164932950396490149105785368056073153850898889912580862504252144841235906730341468623610373387577082752124294540240338848195514917862209189881878839238148055367061471167274498959157756080906462035155391877030638168340588675323428552514728558274170145104146486789333231195380578131341462929896526243392499514824883885939472111980735663343246928006228732662445711657586846266599736519659168630343446300949091923507276471918171742484423982173937175549813406502766409943123583958714357418893672324327935366755066379849637299634073709368140965546683527086303764756326775419963375592405664765668711614822743198383326325079299118535672351184524691892992412203972384823272636050331049578421514999953128372903238326732288490455829184537721009500474998089712367956436356445053958610121375156504797864294429071094145543754528332423706660073181231282839505010273244221738217965446604881341973101653092577280862321125944446651279642730606257565730528844326986162269093255449926018302270428102666505989157025487409235321024872373278901975056558518899116240618078411740203395814008146097569761931406844620836895480370505787296596491915878712673844700657237862848494202314343531372675192639740747077258528701088309769074334278788295869058655918115979633626610693548636174452795679402535733760145518320866498033274647381249698868811983441470674402479988027011609740430718797012314771054914781662185771072599416335419429222617871835042442352489704886041150421428030699939638048386036751011160212183303779356412951371357359032584613793810608902455409578186056398761901539116670544523135972995765831170852667151677163979162871498001109089714168621595263935204155740002653813981841678589483242437090451290494216013588643705602726289748339701456592272886853082535755249846671813652479366044789597299591207177215780018012814618919702914412088636604956212491431289342585380920741293154904146385904800627931503880453860587802683184235936766632249900910802226938267621730187396907775657480732772610513426312309811004657251746938172558311169212088508246385534970266653789561632256791145495589090301729153020257937951710936574435154228004022680932157639599067034119009892672434795461177027032423161547084339407735444982529658978569548574239932297854670534439274741045413360689618577193799899889017473479172702345400827273712762177324039521414382698459601365289781850031003314707562612108088128949193723341963920386230308443592590039912771657901903805497597050946124271553611645450529965406985020414465919812538818628797149098535021491358428431183695503364735294200567878848969879850716462605253820548297314845164123010201327225882720215374579185567111620365177439116897976288532124544398778905283458744221235792740437325126017815020530399949399466663704773154718606127170986730360470441701272612231481213071981642387576875845041621928882388674043611993663886549569794598897350515494053222242179326265031624613075077366004369887200669554596448119676062908225043384432984269863726161088491508880885885094914116908240839203305329082923986539756961286271604823721907189559848236197287119585929207749254277162976681756637121978174621764724302782026713098228487297101857158881678664413826070115771395261825567785586198255162465465700646799415625096153241070557043488031336541663436500419640041342650625085721980885397241650463979014202107636583171646214462906451145904853225047492775135297687102522558021180648465825937640198230942703800499660988203434856620911963920781398506729073108450774320266000974726290253707111717982074271492611792257438268666991551445395239722476349056026785849984729079657290705711403783831278543125136713740848514993374956503631184821884299226322998359996056623279037954134704604372369850847405476496235853445598567729963843142064923124934558476269202015653089025077246906883054111562319374681827852085351572363974679102360210759077029919031889325437862861258372905233940702436696042087900876786042056898901108597363005870249705068296077794429491046141355169690203902408271171007162486682375154315101317054134911984143408347618776361379137936155277229574419287043039960422688618997874602310772197170878511212794413061230572538579717668986071581680987425854259699116493392234033106048045880737339339548093929184113277561355016862073737764272472745899824112600753361545361446051405838942607333375652244500667723607128566362238082487719973249160544631132330253238813427867130729885495406144616133759307779608339765217370724271418294487230641541513419571083081830383188709185555152414673927009236195465930345873106173246030772453827865010512254345329950593709945302921909180460462683888459928688209681650789525454649507199786633725609076805523510954004682505608509488469867051339042563967846533882425911111706167771383368966875414498428802358542733913166855435294251854885726893387072356596372046638858659932640515922294614841714841096797207528830628542051371137845603627783475335791679617300429430353830864501982208770626422258079353926334612443269240743509141403043385656440509887287212872884030970259993637401766403526442345243927134865249271198264918930297597909753293665682843935582070064860662097259779266695032376533241163048007378411111444524553390157126957805172029287837023571771967964650800450041327823700159192501074699920153326650406924316494193989828267679597063471430044223096089826326121733401832780046337815851199565585887644281843504359510843885246853137818111081804869519722740383024510801218503427999937740777272808657218414227872967715313307412390572426406421613632281620503821938539433637876047874580762142225848123346664526353529738969882794598435553143399340245254955751947480821583170817662527848338040697388236307586428961453030404155288540161869114415476587128930005580023041309562065417680325333247293459170006533004556684696909824652597759385018204853123233607154643640929910365441173805637309263725660207711196106802138219672816201808911662994176684327964742312119632644225220179154477681497646035730609470051957209609586981198012458098177171811595317140484055393592510537257352294806242684699707588869620966599369569773591810086064519935136960123243886474241668002597677519440886841367993957383276296586623033967240248540992573897807165721465546896316344892971945909410047679998292307730299958232684556682761699041888642419476664372053557995346569560771141072792855010441862774887791586326768188780875146183889349858793718751502867667501284894231879410300225775660308635587833342249448321972257002013808046754072164174191697380557898755454226009549869107675109756523195845285495125453313797159342392181628073928323987268810691083611605884237940305543158158474246630438277656806953542738709744012372763399975856570261936801953133655824466414072501291261248246951593571763180295090697873729010582251472851827488720519982348832074667601064984988036499479737709527378029192484190258939859601043017909841985116485027093070651628387862482937821411758129160578370904596450279763068039558651581215356377295119276686960097896779121730275395088254033183844459074184375872013977111389650195244078397780502991504894128686248793726468565773216393693006380294282892791514568979518152991547105780087837405224962607476322785445196383935406628140957628883802092441853637738278439569308693149377291548263902874708730569972328847573155857223757071917094564203815775669305354439128750822199380105245029859175309989261545942517972858605488291801956049576894268406617316186155045871895800598723608023562355213352034306006890348891590152669762815457761936619089678586065938424543651336020268863891627686064454939407340154113339624582078240640858188443202578141033589473099266672824192832888424253644503570972689449227504045094172688708991827235043127305207882762324118784472411826013332322884212294059622973621874534767034100170656006660437887591782218691535710464896158225804494010543090088720046041845880511599289107349894703620977152083202770026281804805174184199906138781048806488724308536921274437338022420658898506569806794556392567326224411195240730184365582181862562646580656637962380090338454120600580013998086323575254441193378040039926745639421027208695881523066880242674288132950820322247771721778527598269287069438612207401915478652430295981038412115490048955059829748597491247576219409042643990327640235916088360847152045110085178760394666429078830591442475381877771366112370228151950195358090443477903814114732761480497604178521925026241089180794713311874698667691752073202053885260902975278134862477870855344486564034672902294444728166746518763133988091424715263424841400004880494391183011129950156392168913906759471783952923642086236178064590859095444660093802714594338170406974044424528386480128636291936528102224315044759004682088177655171112429858221073132610196530177078728916909319523389271476130452352936280690496116592619934868818055234246331879982917278339471599535126952179223807869530364894058903131495586335969904115006609494983102159681836679639106780736261108745248545478346097701234732518142736366104986290869245619763454893908800331476946821154270338282739049507894878747673762553458310475455963515851029292674163457049870223466691525304327537376965332180722093251272251988800043177182396219937253765550339925762063463272372613390826591268683382434528985225153772419888037867753171059779681066572658807898741574184147122795387670605580117758461841720693014039863385051578740180792684745546642901229044073921789655530155949501862952169104843597227370434712136787718090733740303920677089353051204032575270004598961202740659214948204967751690830408607078790552994516984424361979228769175159345011479324992883909731383963828802630179215795342082010881991052232050960383335450540141542763713883852261011457262670043867906634347360084006338109770445144240993829614092659783727168318295025609920235729001090331916120480149584517988624790467607289393940482871048206658071693797923566852592278622605110322168591524657897336006373351827736866450597390780477725730006599843415243320454851628437777540202845702323964685791879837633848665461557609566924848402144054162733098123417550743530443441642997934528753439362054938014029072350245829770113626523583389100661668998460096071263903589352927200158272157431206519159797737481466531401585205270886401246122622462515270507525209222642197153880379657039486976248109258659623965367373028786299483842899047672797187743391133683419167117756768962760260716484391160773909026177888230379495990708810647627675353975922525254783647596708579213499169745991821000607877474249369768392966158034511058315512707408702145331361928195426100335404794820617584614914490312343700542613751124784378578465607840545535199211858111255542814955235594160140474536659686991107843162039533128605309830650367485073760001107348621702706969502476170929760761364847698406668513341370457102271077448273956527264359617917068410342985649588508989341168725638404352542391571608663248259337467088367507650702087341454994453990933212713008906420149360952212999328555923970410672541850262368353231459273215020840833459357101014530130891000881894714808129269371999815984318818468037628331557644227166551721571907995346817892074542755201496501213920889851582983345157809405250762966989729445678991069827263480543653100122500524012446141575513029274137862796634624704672005450508932243506129632303062205184752388569847089274495322359615032920918526606545142251489229814338188274210872216572669567553824030646758264044470761813975958161248663834330357394577339093402109716289215146488782340747295629119073105111831576153521856478003667174918856162693238562531388796223834886364991099654187738239840780313240456346062873158495210885313507622287502838167876131806680370681579023336679107377625414531159571127756069519209432943826459660873869088473291983124830146001179553182025484596863879062292124420188022911783667274607228873073445427781155713138803871887999131917957230411905038309415977204361423195576126329100895691148797066536823380628298212818559873891628834557300090624633268308015146529890623565862722803672667963278392938873197115383893776906454860305784726421802849276950349350902668487977115320140207634841381734323395978337524842467436542147736781356549590222656800550185616185355536756948344905137252276094110135173295074341074596939507998830008037435289498112760970424305685560821078485209280429145949171881906006204726607634002572918054128616503710102349417952170780758243512115443771329713015387922837778351962017021237819371865220895616064734699279783083633061820712306892765989106454206043313271278854987387529118024397794504232008077854150564293248048550967011052738325012841109770875593013670590073927161379797294931754922898625406640743660016623070461032230235369176089242372243840162301973695931345898635190366749000828054807477853401842971730873237601951431226248393603044219735124436409705366734646656661171370267426831722772864245271590472358739317876569732230530170933571828962016134290849256615218067043465030436753082189127234474573994437693766927220086883907656093270506160097505380877604567434695210807801622616455406114061496553058437107958932111294750109788810950518201785933299635488813678717309021440397920602174418728446735923834526331311139066795674731201769527904930598419599209911779652550510511949027848789085638122552748996674956311119976269072742484781730880522891828598234746810219890338917598676930031453746080898281285326410278685537152416567486107677378311034713862331348674733312455256512136466026571198376461783008766557613754615314376243861693109864276825097061957137774345490371879588206519194514612843872787290478859604089989065693598748600883592349629182228658427621237628946718390779993590156498692043756105041180644429330784618065930234149909942552654480173843318775818696917436908240047738423765203119067706120413806543500219915528462232637469681348642745253300501517544418204747018795985482533026328552487420169977839685091238617011384090186317914477405939703594725627345780016912394125045254522023181118323348452810602992762288658263259250846309636377127712184436084066493473285677459360814642897996080859944526672896734392694118842591213367483273515142827987334337419995661358858254471798734946237145970323256013292658715973025378795181451200341923207920993577670164817761661943158373041891130688626600849562239628303640118592080390129523020050795503736782814661374675999725438743390348141291433048758318279530706851082295533468856031519648714156336620518073027368202138258739917392689109725719172388261285060890617511104582893439307290210369575263881467370996817441707665102359787004492183496939444876992047588288864213955403021704441172365940707473468814605749213515720219267915958354363734178101100898702763120580774175538751459723264467354850209080123204328152383298265382542596944501725720513422432369199940860105557415566621602399498546318737571877676055896736122361108155161111958972696364757692306063283451337937823969055645935769488392260124695034814919799624056980632405264212249976183468646128945191771128887785974249891045162233963893438931010533709915313517788364000755888086726249980578207352430014936054109697740432278612114038811497968714761853432773753197555084090953754235285619828009451673997821023647303462360122611500154138519351814857128551018095682204435853551232569614286821626632797780839634074204643784290930204468101707031460386023416555458470694606978221288021686750211178893113285021445635304166037858378029067877681628635190063025161961437559456963700520073405910634391039581504887808067378136329433777158085209096632408107768078767723253285997838018892911561602833350391681760071420277909306400810373076087278788703296097327369920168936474840642258486197096992516903755386034456104558631060662895724710423505700531917870684758851263557871215997380273156105105710252548260800034669455727563388024588264407391111454018244522745689616708884483572553985957579077090692374677843692455388830051399891262245643334840572814743160204175956205975090606411585978647522016204337188040953290786539890339000944792980896254261021582711339394698362727639468829511068896830431053609599851460071100396992511017273115121138327015959309255539113969262266848896845860771838672246128064298465994991319922777903007805579568052558313188083379436664895619384282173671578365612784031165088560906384224342738573408319605610030395643497231477066603283762579088708668005628785899869485318990890643905579060272924428741662208788111343241175077576986236986948094382804735383674785760725547177608189303122804563701884569488330162256909945771909810723213716223576771960954900076033794093176474534175457747686675795443942806667715912116605998279498653616783594827889707733498382234203167269800110605866068215095618819072095103889156170303449627805116304332447526710485228470693331703999948414736861267707122821347121952965354790554020811334484676929107849095889950471444986864493244436917841654455313907593137006346000651116949935539420273152184871809617362354282012881248771303818057869959246043661541021913612792316615725222613150323184529320326520299858890400513420311556049242512121964924779972831885325328652762053100859519409616715329707656271682966480653692505530430957626849624204213690666207286883659934597954677668212362769757222982688582516839973357531876654479725387016063355144337296484439873330202814536980556183579911843544523920601782951841864157046725331980125608154488418938140292916587865349913701064050796443484201337189910346682868567363941458991367486119818835534766101230169116213819598262596882620892242357146208898393752841481281303014046288846412352635710442628926489586838587983588926740022469545753312549236397457577976950159261239095999177840084910145512102724997521968754486267946219158217614879009704681936092260710316189692502047889839501552321953661776824960654484246121318443288950992629256923106017198163025178668464039374393086140092215558270901825358644238187022652970541477446394780947647053796676262484635988031101925847233954536703057179594253024607154166328949523992364404829108536832264309217180922711073306155169406869535169260286429841112147467580169869920638513860206023514466610195506394670830920955532665379426345925524850549828489377377534463184183692823362979014937153703605837915441240228758175515602340308207490662260210265322601991708403357564397322162129062298748613474308819785829194679489864536026455176925157684844804995586865257578097835270321180459811953300213486364476163231541947983377802326227887116623269835650811840640180633661180550490095592250835419217246441467752367506371553289405371497812618346032343819434388577987706053784741214770728332642348622232881727172647975032125041827588531395419658360005184922243675340454451657849662065375381847681599180674346501791600584090789977433112608334927914552640431498557511366372043132679292200133970862302730170788617425906713212058068373625920991268053485566712701472325861796704179230568181194029480152974904032424861187470696726860207166269275275624341555314792357184232674766457885434697825882672658020059708212511824521122142491697550940988254649281532278268982218418893048284866989067220412122545798734835046741234037195814025743352747995824507615778553347911331600796559108789239228321000013145839600357493113121015653695115318824831864451172339653021161746019077868310887080135718473688670677085747767276945983427192441735845792746190346953712788919244290815136585371428117301594378595687367265377433359587026999220628496998134601843954635529935132720285992023586429896577026301117056915061777318781809882801379722403850878949636452193722352794773496513047711713808443577108270154832869115193266026644188929233214127360618352162625612519164692608552319541615223007207055337354413479037702292477330458697344198583202755609389827805520725804673168906664815101716991504237768607503904540776076648384516033488016046683178795820510979956087255516128659873215226812538196575425412793261699587801488129180690808748862559823560594940984691668689811081084441198437184087000018124698092004711774392744056160338439508818359596587401706641262071676720875830261823486386304269423523427023510404245014230412514039765010499828657826209808867732672290714652092656616902191677657228424603045848427670219916484425580786060434963656510616119506988502094707239691070106772585799396718982558381581186921199361824565656675868710622475433693637729663598545950506851972934183094867665500812283389457884195978444565932097050243358369212644221602353730895860930765485710709923000934312046628849131741437316286045682952897888298563316678738144424691862447855105244979535571956504620464435347135019983631671733958659517106199757556670865465242043433864536169891381959990505079613504655702072761309442941866672304828388117312926038311216743785578770456432574428884921080252242281616033040834182662781307471060599518575795820465519225919621248976147162092866770430617890808929594959203371975429756241785464012749797750181718023604349208256588557682272453004509194097268125942496134379899626075188415978727473547524629243181677402146926116657305489649362960284227830562370213159092173166885566299838102003654625507313767544300020146916815514214941584000579689977240279868811151000327164360420477230492759974193649614368092578467588824409191355332548671866073425935222828834841386054936736650777193972253229442387182881762406071482742998615851084935201344772429162207772366382037941319772263530535892391162999803854190712458974429643828494277673723776974633043745974624306380868239958509397717038152546405631866825859625212077851210409766920218407488329665439912959783075607417231277648135942353363873073877507504684042677261220292855715701255455650390827018585711847170932303559747941865626179787991619853580009647071784495329575506804425029835405034558529144064146612538394699415107495294214775656077649093940281704261941186200176383173710678554217096585338271088166612801824225613799028402620421699141652463355746284266252203710090131819377329930171087925637673365529967373383958728237703102994154353493478520261940042328301881689076939766616135141619558212687315570829858981183265712229989270356318113146906221595290416425130442956966805679343562667962122738700050746328394575169826154737579164322398344998134315105380025522161908080032310314125233584699530123720641281011832987243095622482531483074970059933199519403205342294294402134150043595063661572241204795288238363747347746937413560515469561893823599075978000612170170121396802277389144261460774785123777589699217309707895677369746399045151300202992836211154168705062827534540271611859066626332284476147805917942102643175261857210847022770140008281847550114757956687892674110907827557515260474785647262600821355088101037149026149731704737657076281889252373685194204036364963069305465235500620543958164322366124905929489463140614555452247047299757646882571593909886015759792403736687947305302192067658193110899619710640519605518931865540291940458629955778290914531198274816896515011820530769277040103454322909709700874143685904895758120756403941282181603712662788882436933177323359717307266222724837413580987999102155533732740370475314896868654004303224325573163802800182371087556090375336171382208777005805854632137729647627933032828492645049030628014982769273259482864530308551057366421349620862550954745236486172290999313144495706852364107399785046753423846780106440033663882930213340390190959295250992119539875406686156599941046319964283311232446508070242120494795721214225706777994037947901981687655919656285503116136268771889103575833924025234350457209166903433683014049174667077571457418115337810163228831686576746348844075372733401449035087297976072688330649393691094139499725051466332511816492743274478893022984169962626925651902712093608952198391414816380245193556280810664609942708895193768715930574130785775508034892265398215558216140971921848906979349952502961673430129594338488338336444690990468604500155481634579835569957258283193960954692858994799651040950938039853178178760285990099502702585832290895708040715669454601849374554343636062883617731685007754430554329185037878375161730620940644361202519446026384608243065395678407389634375666399164558145563078031835747697411401772864992691953923448295863955137950368134102541781763523002696105507791088023395452870898123732870685640931897644351274986508581186923075931585033084690486221179187265909361487091256384842253410877269625194705512757898504529475215543102514323763174515790938051570191254735880033468394737454491818402853401372178007768625999087379052145704413380219768744265776462232402377667237698587505984822092866933754052043234405926061625813809735352902787261666642586300221364208753864582153267692839918572200833292836375116230034129556887143392411423055258256496716063613225173163407259838754999239727725964472265735959166333994070082948843323788580101363697171343697728093401096899658116885004041534639147911073132665884241635539848216463315970755309481246764298826949897021950152491966731270921614035729584314714527416500046363165985511615871044671840470689180900496702376144570872699281008699526527894870698963909096965722258245202338115141164128639469495738076355127145562937523834938114725752723237396774954201606401482393888333457336660436883348695026156078611409912111171327493659906917746639684598794337624878792120904612142411240584672400910929372250207615565763544484989027811925181307395329719679982472278408645963126755324624256457716455779349095071594466376882023735736940274101938124109256317470192528814579963034603766854264195060766828369900369481413558486867041796491513272645401406141738176195171185254947978100220128174378358147886417344227929860816582686331431468786042440991668768173497954577644361260181489134586017771269068947458994055058264236556645803564582675570293581269571135414514927955555042334540794187383642326388718967497754451365506601247802506200026946865103603907795200683509324945264565875626884529946861845815275975417406431963910466560521059720118626800094413183276396096225660959098460906398351263277768908246333064554959622317686871170338661889477014553584057924990418021181097681388533114384252125080023528862564902804297527347676192679827658622696495477451612262148153796564164810266255020748223484612555426840295809697011460376612461383292845837172664690058918864484476148169254487926439095526836272654671064752530236607875269276038970438734122702629887567280449295620661520989596229589456344531245455098769161080287531588258797229798558345586328376179214878506257519191825967943368893028799099300571817550964983509456707117964499397525033658484901552758759334433624864238652556138772249341698437208274446968948286855820108033641744202747917306820647124104366924186774168321979474515565819004368754585831684924381015342480565654677531515222155033992668526381221091335912691238862225565929828911888895591618791961848510498814147254899364292153901525766709447697958315103165772334669190323332613067351097067934858602395975150744975686284550048060377305000677496127700157247517430752509922304889676074999632513919576294619226637062016434524932758077196788858055277297081246480989917418839567274546699826886832538047620451363033587538487172991219805335311950950536210322317381055652010563612603903635445311557034336952905146796094082957942746454094934521813661409051553360937460713166248035717987396599780220856561819031486662848777356561762775228702465881246888885335727394710937919543048334541382094847506309114434621154993436592221819792201445617382989140654932725429675671598155301231270399460867466314064012870519594668875471549914024718642854989782266446479580028909716127892669585127564830857057557659700585990424511919264132707799082682361426915678851265138081282550748340067669404824072855450340274395365168273390756162908543530899526613008019218824750782990330017978932026704826231148871444223776888274166915606628928424335778662438620341119156390939255033954165153520949807540331381949484286978636923827806380225856880677653521006227993488474003596493269110412673284595003376024881220770227728840864964294366876610986604062204097940678653282917265142641371669882379663966695924931526082540806953065700542367309837458936000561072697616785656297270276922295744763065716574577927530705323528423476470952151653008282984484135784680899066115865137306473884601556383759570566328515775503707843599097485929098133245001440805452203495308654171308772598807346897368806541663001313719949171179085426925030177343250336720736051471096152591338365680003886718032726632890566253712586928342620232752295509815729695477057977671873915595912817445298601142957394579708000884835734758895750926281745155133378292938414513708009134451098431489867098000217605311238603678474559629979534942428552364765398260839737254170168651173108360137006902405071993978851575876300836045692772094411910064461751595506043985073331329623637979885169008092493682383371665407475996374386845037838040802175647675638131350300297856951441654949554027200006708078907815035951104857979313052645732688814561463754191582266031901178665904622157183601933143967006527851287649339208983084174085846444343778149447465262523801597709418582255418939448454803496117298329018379198719974687828168640066663215675169523717326766281391721359304759685782286908689793790382867130400418203992536740648323991924814845710564340688454835723947653741570853554271095701471010348208494650719329949331186582776419818238253420212071453074438469073381859358524569325469909920971513747487462996072651227211416500145011619522438255216581880870271680838639965245029915316234570303088226804832482059442854071284772141616627322064250490231893068841793102770590141036901043144808160855148091238714859653038799880971304592515987273892692940757071091516366684667968750232086405411651262060019217918489415269405740466829482517131327903562618942083224491026369643111069012057929030096531288605050100132228393891492853008063650084903487523216826620061973987793316709676509110321427790530725941023718848328477393797396758401740678430017244966978328228243353488454477785314651450677629355387437008431710809899953927369572969733764383588187573111111232253728049514339405260783243649208323274442958700407229473628037489298249360660979667026665812003023688257317488447915631047281342989240818935759876806753481393498758424356703403464540159892259126603888021591129857789085259404658880971848921445600847511141893332996828254457390248524301492500550739290836747083390004306426340368319383484958860648321436936052428572911437257370768621013010151878107726792277580517919119641127484501767686711263190149206013591408932983029415221203387582313433847653646430174263174543471169032150075472328112142598214659673244424275715429604366373668591605292508758385366784384936335224279219856791580573989464498247665182476495366869052417907434300616622320135613104744039013310675598880629881836129497532244425138934078547026802257704529952424112372850805002590450946006768913448131066279307912492334176391164473844269301050347579180500926751144401661145141595249828653744271213258112337799486297527146987985807161994690029909540651701016314635995592710190145253692925426657188904222941871279547984584915385643783715628809293033282816837771955438292754106703995898368209255413019370173068420229255197736828417640505536179575773827118167584477936387701244308699463014441040023360319326256216873844295630447815505867879081827253159817159809510174786144481219687515688323621340062746112692401952117289348832705295647641646656318001183232746660103802058336320986449170342609762618996236280636892842038725997115691239434794497376457297361139617213290843347895808248567247964386475148115394539949389868472319077822298030598285105139953988473715219782004462210885833095405206025020522879846354469205638508182263061948239387874950075601332088067830943032333648129383676189606368497124668763013272061210997651541680311726941722553917719422930607745705679169800265951387257651983446750493147951465150886886097351628138109747371887020428718206183734932483386657851893432963960064233705682427417400913938124609598148450666599628943685436385863588220068481540897587038191654647769078344258437654250903222142736718182531648296605719581658889133925460266142049557618406559450942686303874625937802607670442985616718605941192244954691641550972860288597255128843307686255640388319569426372240304182271395747411341668464175746379086006264949198676875507121547364058068587184803594300499566042087060674489761238748924715690974810982283774623838227571697605427838347546135466557672165492929187728776607919230848187300955059135265466629984436371037340189356711064468036106979696978671495070704415907601974123519255292793584866048560895748614942835245337245028931042811000703986325671331852678026189605667825986276630908310105071512496206833081446370723129769269258835451450350079323382811854369373726228156311118997006174699880332735285597937808795125801277786100724848127236057319626700191099713410094340921407660322038113247804132608948019440348858844083627009849057364440499722320816535266482332438523162084902125977377679469137467451670564294096760937706063345089797701013254543360435055034933853121251818940298173505651848491081812052734502959404782223747472697656414015407663405496815475866521734613545757364073319916942916122589151621359459619256218413360418035426149882263016581313947689559720565766541909727540211294551960333475727913457534316251674243470415680138481808212619858165267316316147181323628923929724741238989650379417868446022093807443000046280018997198081301887379379811710876709964863395551203307541306568171388437921390730410076660151721279718556854019672826335897105722144349266681519375646575978909394678946850352161770324503195964369051222316664984166592852856387611022390169854216412806744758416259779441783582426062417412331684044995888368510779769158346465461615710958938838309329158466774254821291151597774990412606250923784552962393176477479623255021577607662271595746627366820933519794984232812506346258047235919551680279513043296735326757546246934850503735436594222900633126063139339351469911938016739123211486545125671671184890559119449187796879793023761050177353789179753970549387153378765595782165359986730834160520826934258098257166427813921192818771433598697370690547976122766807680910868196815007958838926747332948662928595385919598720416935407504854270745196843086268463902027408194715387377623687320994039733791166512321344594254232546395390939463017563370007273124123419779523781196483315034692857812375483285889522300895237857699169269693957020024600710308468405407865232681020718332114358421026749521797301524481196998083751163513519484838047526822913805202656000391578084409020295714049344958836648842192037489808656499542061082329169474112879040382354271772698823306942581699315608893652900354700570643391393159056957755787147664262965526284392766920141604097637966830167992241926562710285981491023695284043752252781384133340732414716160406606729407441598687935640889333390442487105536454603933779570649346335957786690042940531547502857825770291666522055439623870365028870848832224295842063124973234480436864469801405721312101247234019851972427848170977144597012765874443185372124122508409099133933744955358525281647197906515937177629316966711568040019302902321359097491235539345602538319064428293962704964913477484026850719226380572091326221354827801197937606972647162440385875852348907287518043820188175082491477329517538989830077818928926743527574897616166049037478735462971431287010143992287065014407596096990329172439297288120798838742226814579372280494464910218916129512725447359833055258101953584220762179665204141818436816602445183336912836359467280818259506005166038680336227243251596212153437961246715695656404983543011931986290024034584185183843922579893687246527640910149031162316466967519421480252110559374983472006946231273843434722538607138286714244224022565846180221772613054844933960040477836550056401817087555778413592782018122206700038066091035673604081748619760849283011949336319416374218178812915475385837692757177641183647259343090263075465180851824090598540474548229119879225721281404572490502856919482466650977904159966988471371430127166731792065685179206555573642123204223034784929151695994381059734307148342830379215717550067026431844347003642137514878983344463793931520287156800148926157566659735058797665967008748542516795826325824393466098720363004764217002870138107854388521991783946320588221553744253254873747089228099574107242396340801548890310490567213677745022809514891395998259852876492267088174812590443380445074063878744724030201229425092799174109962696406556563594242582846145306040255158190620793260151064317482422240848069392031154919476348458169033023519564580415499486412263034093534071601715063372605553408951624281038089946906959618493098529950122743744964232775118738562931990241458433534136871361061503303398503503927932873511817698114815878049411370850368114304436937399061385147487897533655856104908229982568931070426923804235436504307114596542877026031505978714714291716920294452985269688809205257881652572340721796631249257105547144867208480685635456971759659820306493803388975764642286286263087416619297875573968481239019856440526101135660409017812426672441919771315329224636123166029403178440560183016331493635544243227724773652688369659375550369392780426384560892556651013451220552349085507552406643575687517384900298601210796359931168457698097537107929787946162486098163145440018991060952725801224915944086086064937918132247098593926814299415479375906513799731260879632927822846438582682982954394577972867874758581572695567560779449710058408314672223064573275260275370495012675100523452862593927019772658652667499915010146854846427772890039382678097579305520724833139835410036744083574101285864510564572063193362873931909445824959155529317422575288684897673975139049144244024620340919811691972874632315023716499723095723474776232591170068098705928520236265245023228004780710515813255600165124004305109109738283433216803050119662980900396584591422382260293303373589866125960193011355226924018813316532286014773382861948900208795858747751553586250175761401670512816665681812242665611981112467459852925957110651206492725600748258338024112203622858735802817979907307861867668078928111861903990236208956052793352698093447902941396892135781693044855237043183028623226345981925397709094427782994028097671738078962821603693119038442311278737463649025424079353142532219634698952343392881663155547498863445483771983755944786955956017718775909088005563243690669490902268293928420608828609358600031860329812461242967535868427766211846899640907618889391291777131388771530897627833435563935938751101604113440987229013261144172949778979689658155062604882316177240477607551811432465945842328434858097600691762068403183178964630776731447089290846774624094289693383373390221072058924688267201757608323416832078186284670289671218936283502774380899941078034401136016039158138651220559787718949603748156729163672898351151212346587241584591626384009299244981932537079577662538056041934259971390373925832685210489799247557524770350843030479341519577532542921522272372326798294414385061128344664924307584860297808784652287280121912934893853772279159685579540029395693523059263211592343804176928699942502478331062707594519812113544955898596316564727822434494667762182694654893897501274196925323004555156064927612036698670717762984209059938242802513312625477971671006387526315894617657725631029290266927580647294255127274926576647192548314915320717000679193794167695164943890846471733389011663715541205041608454571926483488878560842483995166577322747921359211970022889022007659768236156926357087607202141758005918888421578268065768497060491861679258702912847675134040695404974130331620426938865166813071503077557772950859147279588856859498908399990052031199913415999076051672796304744326545758383799537985537577193301989320697449732982398375552112357746663587916389512526170036550244869736921189730046975526153883626317381079855760154927134551172789748210436419206073857649323034291620007141461681969473579998884416503301211026455632226637688212738625352682419464648484662521952283199792574625074097821363792934031684514807617640012318430196976377570582437092466098762783347379463022592362840348192409561490108115416285746748167874651423956390529098757784186555810936744884846901663038788282877799974790103254083279869099703832460475922754409685439569154752634377866220222296088614706277828469115957906124580911674538944169036795333870250647131927387848532838836005221841812492664552098942613805286521899273652846898663954230083171397050771573686914076280667148972857887954996231269397615534704091260429286115197404727213962825685142200904490109302940916719089325906020615950316589433409560712805076429640936666797645802303966404527536052940362080644698498546220879263472924808951875990694739878903299277104703827247164851722422460887254964487529597765258675191404581792112754490503218045321319079079343103910158280491089083864985968223370626075297935354897866345544614151326783204498489026577834606079706168426413604197149567672939479643917314429305213352557799064553474047028984127819453728074913570441597662661674172200440021367744343811364122327470588520055451871122643933794046164794122967711393214685871633779191651442041025368679577082442316004071919244226648835103607346673857725795858006599601676113520469801440140860868907582394176809099738249353046693513483160919750764668245528865291682429387067217489205366311602613697603894360885362255322812405426165391500572877274322041439781892982828250097071977081117584644633132897983667938121447900015105102108553476598976576045891241066871570895883205727246439835318714896028978143265588967509504079213421137083267092066011545202794697338488980759092795295760058094776168130142059558274452962985979450563977052325406581889767499939145210677995891181388836355993895407740532801310286625458421066609854048738410664471007299389358622146346598382761625242804239770118419193779515682284567722968848762412420060078250337005486172829520637210589841847902092551017202699904243499353210653548167852307825010472131206489223760890078778082603545910571640734378462055831432247541910685475631553714376353320080217695226682903585520012421834285325736522052757732059833188202984811105878633081013399277370110708070667019105557609303127885905593197519473628255860957781347923550788716399744680807702990267844828143443026873004227965667917075769283795620775470813791112117619047302346134708489290904796118855625069577262060797217304126785374058898746065423233172703423104050661093051326945471465761371957550230283958746929987432138325265557967320351741009437134234995198420208029326881192063901787510636910034377237923729961086495653685365553654897238909730764318630724533167278317310919198217095743722650734484142757192861839421400050816160126325447740335390504858931935974298448353317064436242145768496249413143672335351631916566439466992528738568814640753146788136037124523508803179688649012831319872100116225876376312335792382291559640283921552020291873472249582761260674687369114563373251184126205843449659865243913312929655459334542819850117271388577020957987213095093143620182712915553683527577171826142637071560104492458661293223225992098213976326791145598662314935466674857162331039966753071672680227396851629629130124998737123913987484039501224676723966167538509460358340226935162272978181067648679210166756593554735065783338960142250061454698073309347814204575795895806947184287382560785529210057113497570794301144963920003556494156566094045360396457662925131400510644882236043184860224370962796004944573238235102332590251099846843539936389655204266097652535223156356747663953621870016801689040564379664765455696799202425187943693898927013004606311820958844862056710933996331692262219865518578223118694408926947360824034732214163818569070245596012065608502219881990053431004871123357626804493824669612727945035620651236684987620487571785799269086684304250414874675836417956140494650321595638391507902895519530844573855892083796252872131590952775959353170173949225125284130728945756103411380851726927312413733985341658581924700139375016291503826518745987196899962868284018700108325366122739282529150962598408515596746465159970481755848657064747078605203439162774164879385675173896485578182204428493771800617608505259789912770753995374077642403037291215718261630249329424469843494904027768586907006872577582846789209576067216577733618106970650743793209119934022258413330343675993608599275530049680128861202630106418436160096343311730542288799593318304984250308465164655997928368646569190478988967652982193204867544682966716159620168743757985271521258185184612112857799216815336099780582075355450705881192745186617965438864816492247796362868564805242422043205826263528917474713009082494820626367469882411372602700858411772127090411520826009594119942784965565213445618403343424807359828765858644813905495511954532655997405086959873795285486312757739449244435518394913999361369296926852868515083840406383271939991783947184487340076467428737983931721816527176532231342103842019284990139912804765189993957640217767035349234452323215944356001420242622327894260714407863864823067346594046033127830051339416869698626424255245973505730659977019974122088441956824453112274135720494469152176153188194310715582320723676465771857585087690523091244845105385434382956198381119781691292201858897307490680092550560737261204347476839434609109230241838661680560912772016916967095575827362680015705537959211643555782694262590322443783724662198639809585639826009755171761764204009497209601809725090847860519989362929848148310586773085529262678505082318481902720938384501924265245991494039910302949277920326625072308556795908816519564586854175030413411156413229777524796358668690286607861311644064926606120904905012851850827535868425283350009158736326533893023273036716676722476377622718475669055032891630207919378827177593968995904791369188986478738995358939537462208405294070685916547655364905006221193142327438689905659068895686904676352189359854462951474021983727272820145871520102282891176025217821463764061500382370932298299278129406329169682797354148402633134298605046745405113588437412362531811417251838227744550852631194608347259320901091984793969169802038215687026916302552664383827931318122113335256220158507756461104556557735919320921306882452179562891621406387560611205485142235765985221180087698839116415107056758777187519240406500639649040591242900055310368207518627163897955681025827609485882678111262514792303372063352254540204799272956716372408943654180644776327434507744998683087458404106226567321038345478410799396139537085594767903108826256244502801371344660921901612992283239207713344765206010522379971985269567548378171166426242475231195111586099857942030935956325065966861346192066959359426244753504506909120418445635039927096059468756817673058320807814547260097567727779783215511714666297656140999049898303237179632599200624896552109695893140808082392456932572626144558884692711277471779125427173603793188533741263227548063218974239441901975575051544222203435253800129750670822302421693388880234193888939555496694985414452117236360630874948513481935928833893845842955577061432002939639865362627548216609254373860682736525587313438821539414686681774145670557377465178894815821189170194181856113634620100386717686496952148186253906040086321872990904760566282690588379380158075150440387900731672080399632162751496654610401479200404047842003823597616353086379301876663675985732055148463474756070899881149103687515498976815844158317269659630294047188018817046540642654823211878098960051932220964730506847396827237354098881921551086274432645727780550506420551638937034929518057592047000561847222383143640686957384953974853219254831996829925029774908244248669222367087981569265336429084854856934268059688070862832908322805061712080847512266320524615007286828428994914745287754857087760031375498350463371176301995807243425299476173860746728202017104301768161681773728165154298488846064996271387856778330987370557758692022974105225152421779253656718598865843234817698036561676306671823196238330938024027832541282984566675644951453755101672188242623574527900361705805184564125101608290779565141465116975151246343951960027404862411117982371021458663854697900349075896937534225132401283955539106392950471989472751943831584995008870654048126233756993634071383362959675376534833964986945698017377703319433731228244891997038739504730401344401824749687535850600661369212000362794019534719226423886817268589102039428968001606273863381234397111414458234481879990842107502119197308367829468051535418819592165939869069117823225080147427609553625976657789634204788138571655901296096150586714672340670791027492739983499373855275688001768077834979560128370116856632592083828322340583050893809726318813770394246750491517036946407383029504800460575926976459793307760765490647553316784281225048114250718308090736508902095996726711557936244613031905441688008380304718132169495503818907240800630837919127195643660068666531424126730274461009333108701362031640036274150799536112442469129492864797301696247281799997340090637055159673568919825014611298542209458512851199289860003594740089861221081913103246427485245554627991162780732020756483613831711197256381579118291231055205106420675002053183936246489803415864795027734892266338060166983308964798096010262016209989670317230025543066608807012254738214669097515780232076731900428693325419894271172142901111162661129188497103467796133581564832757899521249073480243406499419423719244408065831033405080134801108303654478970575216668464046254441182280671538876757155351181409919859581040311176613827124710058503638358819597763304492244396591017376221557806963502817048222682337081178633518774407477228787802868659773121499075027587182195500604991982207180664100334894326390827201729518715975176809735076965119402357361488325787051963545005311024735504407917784406286907713198778121031247730479893213604822810968060607174118178299578758927178464857448602318846322504854312368108691405698687835605078704080677235960795745788317524045599780469077625565490544289733559947638590659623117906457430437390275379009153785373731702278405690837881208530973833875505627575092048318195876933911440198323829409038212972694458679650258556746723378629762386879838475443376765516110597507238452482724902444417749656629904139573593643585375498045510033527406791835056948103913370152187457426068415071323000952003485022638451121211358695240855602239154953635116223008578905362456900420772217867542282736444722060140552886658848562957603344010381559986124728196155002298164760033497016765761168253950883552579263420348612711183892907156619039646684872907556412081601880490469912672005899419380975652296511053660574655045839781544249089865770071976097791587809615878997851852206964555032566998525641546745550214831593982617609486058948117327299374004452356421335445983436887718222836104258487679858223072754661283020867092423715805306785968400342058996771915401162174987226404205646092093757576280723746360473376133321749003658939277070597099235989235374374501156971746118862737545004800740926408756161829595807803768136913965542652835882527145004653822176704090479932904692497945500028184689835473700892199934178969566522500333699749979936234772709934920991365782323711273307003780569593756444631051563276957197261327324524045487836460807261107080969149484613682029050953735508898755485758016768452292240395150567617960044710030053436293712494585243838518726865651464823914902884445886004535440774680705394803153323602128319231478642743202970222752904255010615946210645712927755801098749534931317626379012459480439673421550489011705962633364809871937744851993768796532296895969204950127727335948461145629142975733781148706944593129877939130926759491225252180121947853460870973624283654689594736930559133714876957372619888349787689416819138402342981125060807110517542453710396586824669326576900669472240060117274865438170944101535596979280570244050497218840872105714891254930873588287528363757947409137919671217060758446393971439732109743619085571483201522402130631532281950236414328508152615258271057540242857343182235673345608448668643602402799341589881785502087344392054074418128029109002724126673102244331329644304312322247581201065673300804184044128907377304225137355403515418236047131501331149192471053835148840957659114439245105363924521025337755714780703115322532562482543408255971422113045103923096922440310019534835854417571178825384894765558356258536352485543740684563298611653679613122740952253310985240935400319304089567544804374457389807325953560657206672246097350031819353995047324779119293876957702944150452615288627919800323061528665670695758626118605786089602640088969818034216247129264902686372139494520387936381002904281036106435991939170846072952956621381935625203286676919152698309187899330222331227179462078489917386618693565180797332280032860633842511428196870086508890677509937148447400921968041826808468507259678296667275142106769828880476533031730012818162882618369260142768509398058649571702588678881533050382523645949330027543918497285973178163851771817057282543114324027189919325778613937053481161620678913782507079480948338982130412710559149481231455452529861729664402013618930685881559225738602899625899238942693815113914240918088726386315980470059931698402619893972639676897790365967854587952747141474163969984966407897018717640012305824590379255703751093170668954413942435114876836027141410038406096755586907330750795579352100061094778258771493567150540710574287467606380126048503184897388789149062490882370945267376325545961057203447427438042906498366250846334099821428280694187374795148596041277789954226315064615048786578066986610683671750058905310563350628200182265095968975679104198376331388679270061959819936914413134451501277947167546295570089548782699328139238199161326874203571811049669203676746018946964728483284066731602682208978705374442597945793375499779294261863367379215424720298934861707902018098172990799453795709175214218870542367130329172370850948509972036594136613123857774211749459041013751331740487542041633142529555958313218493005009538455498483737767372829474328852779957361104268826748904485535058883928892540553996468311653009310886734070614674877001343045387333460288335456284908793544790459250292350441443184966215506944169585452922579197350829929484516829289084763315168321680217448155980598508703168562542702360960673989061031128765587876072307302304551969684322272291066239507631971184139249636514682168770956827714891908853808021446386970665401439760646265802038590954770266728524852757684408325682068135075623259114473153560824711351680133724697231545022026441983339002051945014856532566281129736284784405066758370635840084984973541388267022343674552519539218672635813986695872119928419929924453414212058452605614848237613776911861023358548247458818642556969133231514988084827467824686614220317762799096724357960418342972170322906055686571060050374557523769914206633024657903936236108241478026185225380090121778523795947516472272450235174753962744207321830752163305622319719237873245427816155919002729390873630722049287588479788620490291014265101160736170401428884889865377458708520257336726960271972072973013560221525694432986407589069506738526128410835565355211061135187446471116442688874939164902071754206483341319235278977550993017340007813201386545142193253860176014955445077709926202030635823086469783255372052055953140889389132336510246091438298895512497819087296818943236983821812571928175741746792609799253524614591635895885705648772724995324490559343621256545550778924781024428672251719882440670807984412790540380999259926727063174927398841282113428991399866359819958850320026418302057645697253815189062927743425846752440926053656058148153163326486961319423182457209195399566449546064727493350183829018799508589873528799808279019925777181098105681395172507822631279608000233326582464058782130279697801806296640451892253407306841281591612619280447215170885475957574452923365065002436822131638976537580619836960517138509741859771620941368340606737672097469903516358992628803937160269903489033363743026884082259017842819889899594428211725561411449342478984953961614434241255979668659946547861323397035341976738545601825868981949833135526786671663527662546469349693652583114685653928524569301320405161192303534081859121834068068955807593875960187740760947331728763612538310381030371331420954954882252351223344909863450745192728521368884960890245051192909486829334099435461995685228567366405329598487227931477378389031832306832204132559987251670750825060596194265702912134340059974661757006882038366777540329399256012591121062433271549749493924244563620272282903776880578003777563854945593133050458194166420726013705977816783569841628022434125148970576999091957703732775255869412002356622790365464586759413550205597183015669372152728827187900509139503102965648591156673629029786617140880568319148320307154492974391671776995446227081902705979608958588596918570958752893783251606936794833653462856293716685091253193807161341685276756116434973645582994871443353747297901705938354381115318027096418280143892240542568373252636011966445773876893724735543198318726321733073004663573183393442535557126235226185591488445443555477808716464512464306348353232516692252794749335139143713921965301053207524844079339749865262164409809708063149875822755489892584894704780717618876527987180079478529119877192695294800208807593803772893184767069329916385630676209470830950294299084458480565750892724325555835685170520887941496095135685827589560155975325669015685783588909679388087010500031244600348498543927412465506813643666246254877720450103305817109966187457599354395295148823011790263268240569574978327192851386394282145397540445600912356706495796210333076767626796391290210624628474902007368504408074543532955415175647344314652350072050118119043475143232464260511134537995142748708378200075527311419986078212731377766124565413753106692278103244422602176696969831605235318604838679193922014775980994690326788202532215624808357499375925942957501307175805713984956643639109228457133277304672755758133757203835525725738224255853748873807202923948062218399751144424733494931616997536730880531164807005391710368464469015616007374027387280737256750721960824953482341104904776391547513607991270718212037207265755354668956105297943593621079118854586609600247000622126570102831909608912419323273649351426378009720161602081001953785557879196726684278299048014787546944978906137985849794742461211694573465137548006094664594907207372708243008135841427442593031461698684270807558134402091005797075301096061242196522140632657091408112100130422743002994668073578370292152741849760478246635434148040705257923374683237833132375877531947980225050093320042293823338541130098028522480352144883537152617338479535074758574780024908950852729610429401714735489799440908313125246540341814154269261704148864460025629189149230302758233733011912845250251931449341919459289324738262127231061363344305690801340873253919390015414395893716123348057924680493701516410698629728989906905576365714809388348195406372743815341893744550806773920978237248919573966920689567805558897400640729592176891131771171066073167470060157044955215169626816801322559052391293983515051874988166037823950919051235944956724953388642175018715295466424711689197263688813694889502075576967680295767724567661146986350651442778398003626986772901570178121874385265666187111014027055067251317640091284629607174987887152721963111192310127260690680662756747962960312318496610514946767424900053368337678899360691988844175807675974707962388080546859024237442397743343104387224947802355049059652702019274470918783958384407317094497098178603092587752503271421967439670247138386290866314093957720698242515866821475720972747756830284016999988073017384289335648682700453419302825446974361159520771607309767711377833175980180441830980401430929807840736341949271852936827372273049293741718520072380661239481856769083060531177145777124000893213802106086202776646692690098279399503011084406460670194038048422611561875516394456476573128925714048200080403229112737914106419930079109232240154552044271221678696969115844732106631848257221146592276287476260885743305025280778565136843207522836322450368225536361512122534145515332128026505047965649146246484947149055581933610557445799517946496381953959523337687685360520252083825984739166085045426295193719477741755670697688088017631760145599676043222262010244942050571872767223623814202538500831544111065833337857455234151547542073459738583019347859930067886346639546127333562970219795825804914059240536951939727057771584705357989791548026031935651596026291556802932175118371645643868703689721138660464980961301456374395044905623822452080861784757624067162979890833429667274999369707511306709394832772432685125889819605655129511087111609151363023640731493480784762035431007310154118074322446930161388688705371133639757171749347291056275163615396573976830983712837629222995167981304364181978927929916063533459093988024959362219510287808391971650999756852014508814961892834505995094434784132037970270190728956768983003016909367730502359833001514122827640253168488984414478676179817189038159857324900407724669527630485512622319483513691610060135964021014119943052565201286424465092216457510585059381549789445572811545344831441500975238617175049471883546650863851132879315708910585136444299092888345331244767342000354338862994470392870924112218359901625634114401120545391409455346681400250417328716309262333455754884714698035645514648184799429412127407996604132134429022831360033831375377313315073203725348629442047316070569792956506417887488816887652863590359738755761807281323933768636172665552888195099735937546106220053915174238477644995733569583293192040018209378493489979432060241278683850224449464388430486380734525280192733377453778776497322023541324801683536914512198596072507080071239843507001736805065860465941303630285256736203214099962800613738815756117216087453139304637842059629689295666355346630647539662207912700767475806001946856039806831093980579508984085097903885381106063191983113223376927653471269075617024455469866887782531812160609672964046503826797585484049258760384182127324745063064184775679168390083547265160374033704395805242059133488912785060044129322274919267503647083539652977896491310420551769884095513308150814022155153197348165169897045424847485689722107544214946313206643252006450442889879599042150922461601233146651501211412265886705531595171769024429318845584808388138842449487957868042364258540499646188071374845310258519861600212420979788536190655455272209678823068623899904342996132001062877679144911621878917824635878965270059582205252117495671028551416190788768458723617372317182737488151045098470562706037800163594421696134258605163109225147070566282672608361954034793827005645059943234758907649457322068516661591405423003738418974436553438949518697163161718072045416754358100114594317534256896519498664306456271254122838749672346933563194705392899190286358588156363049879853818407660159142782769319335028356182811327313245047985517768887279724148055556572905804918293130088488425965095037029809674617654928990041719767303281819236652641586170588083430883932249006986170307366351638736519272608508636548886881110217336843095279918248749885490013214961263913996090797789485671819266988586697224052289678249001248487445538659882330217080048828295346615294720994748546672849763843448660749896349057443559779585045172511616051809829662891044505477005934593630704268064574930126798764900075253772618596363565073381308150012694959753750576888948260560356095439517686097366752659015680592064889320642390386512604078935187159099837944203121711085098163090995370047582892480128077249522089700372873710326950918838654293513441893190877308859967272415424890350140831087522194629013303470043511034186731218524732502403513325479961392029970055164555470491966331031463330907723907954482054287569285815730588690639126727313236847210138925532472984894083607075238799487824458112943791504658220234759258500328751264181910246342639159467944387628283165486102140928295181917611664329756287806606532832259349069512930447344968630841337619382838699577825965326177413812288984165564688681992273468049065917987187980551567882637134867323691794742180349392427454486631331223812422671552062940689953505298311518702648961736192496140041466875754294495033143613748133404014874115433362741897339874181371440913721185849223846927197344197959536793811539123469864160781236272602320172961358302619349142168679793594416807715870603029047887107887291429413227948629899465958145349168987812392229966702248791726991228630159567604511512017259517255989967959560012940220926209928971295846382022888202509337717997762294109060220071023208482987302138652152701172016082469091685612359461781944508892193187305006740025372999525794456819589529567564147718534184185292204351600716187707972959063752917238060446788480379325490932787045256305877479275703950444771401277941367334181914101532641382976120884570750153515853393657524748509996873047724076929292693304858760731813553885849862464724845649480697684885067603847008713262360890204070346866511327729191727923067178277089871616240188451736468807273378484584789886539055609081998100731983255884326226225663811885821804348102225873203813050226376939872389879293912342664622122603649516371354411480217054049920736819541648761479102163059064849434086986506151881840540323675812835079433775766435863856771833513192538715988741265094925626301943586335774499224419727097699665274308968807592414108624490972286492674490345774781077796944528006667051633248463823244480359618959601231172948005744548039921726582838340571826446469225479759577259102079460659662028794648265570096056847641769767678759844241119197501607207643492473991189478217942347080388322744757885048459841474676779867661848566715606509384128367103835425340983040706887197090151891788242369045415631765117745226126566149696461261588844460458365582277578204043526702861266572839119737013733967739286244403114094153381300146521058311847396174152101578246907617667174326885601560649852354073216812006249741096925856062307666541406473813684361286708953577857642209047407946916063437103683127665230621285092996615325651101970915853352887597409694474776982274388177030240312966173346775881029818431293947238900152905277290948913290288138182521439949280367206715445205648523342198875575782024306919936936917361186808442378217519834193843917207747080743103013495503816930426542943156976283335218166281430943334537934147928443145326284868261748408591772567220876791629153623848232951858189082360199331514991723179486550768117593795786899680711264113695819418291595282629634891342856404145287318218459447364814547646842298820568685054000551940244514802690631536196183931210392226412174111000292305110427896005116599491126897824671423912872037923393123541338807708201488290605987704082633091672962524321668048694814709594418579566157590158008740866832021458081267978135685953551844655682865201490648306234662417226998536224828391246692318277684431057763006613122617966799898843053061759227383310948981563294798873411438175311616117217345391534822351878007320272880852508215847696925362578712135081361876817847485428297203469348471385456960742723433559772979765526396162206077631053705327229840605109727360336781952566358892629092755402084366052544857169793749450603783073489256024967849619390354836095051967936238823844218609802862019406521167241911489736264156376668937886434051080948321428519900911014751679582972686456444721269574377694427768152467654441525066179920458087033431166037674729088019414575385246041102134409443895656094215676748118607687418616391093928614804315959588172226543637319678355012897914205261797584534042434529704755208501933068516720459305713853673080796023618743322033539989517148790315388997265320347569438820686859540389272968631860781157708897407589562988064729614755698717189506628787548351776300054717220525555884229739415915301890451842807150094455663366763501641505650041986878022548274479372649996005287289080785087088516032906118267207360521059576446959689294172268986661830779235266411091684425713260145583462243720685500525614149985938484768509796779694365999833939558858688713785492344365570091476892950267427448403427168566097146297030373209820472572097767411253024053812261249201375573871306716083858077693870193550329410896312426377475004643760058172319594505401851296516343013485553038914069027221414064162880218666161358054579972208240395338301255451556074542823664148870650020695161445528903878752682074520478950343530941133951884169205598914312222403320036613625087381465044120732618758958896959840069922432511456174776008156578361844076475533191072683242424386838274103253764436438320281689060582242997623426368146012958702749782699439598497202285787146550756939811578939030610803082207410978259268666436535557128408538603508224831197700739076210595449414046589362933584503059689642001058174134504591925869213265255069274497217387563430353142259456885827635021677639599028968091328121364813800032872461145208752468969647838872091484370716550963832441548706125654849803922367221381211708880341698713277673531648349810870216453651321074889784325130769654478412471905639320191095239067820959562931823760121275391734003572130196960415458375539331654669887420440174367208247364594290007943178429401287340202625671749922360694899975907481914589521326528543495060837553239283315873683980485991362571594345976062470863692493705816635306031155256734595396108195797684949077518504898002374516552324679066818290328290459942287223626272734843190814264734336979915686746628376535088596483534395560581728785327115025918503251152701859224818451699316682402481371993276822585683911550318192670926164438422355955989506955921473054580656527808096468496925271444357859724842890348409740542014903699871448669966488897965106203129662309727566946120927555805304824544010420334851971131306648941829160636613198505090537107492185836511481642492586513928206850819961948623945134155675631221025181199535428549441270752169903098755004624469824954614278840272504524965798699397786777890860633655034846528994865148232262706643120846071918542179638490472822001893188242400138049645953546476987906138846076992816617348966056979428521850720959726571490510974522083165481697789535464472235681448294220934216158907735622640133249987361992058330797642979141324784029335151203309126672563221899863735233637543853180875819644508995041019702697952480916131829935492599078976227284038333604759961504386447680769129366499747111396305208543867708020327245062178990635248915599939598744564721826139061214891731964185615740910260248694062183816001881481328950064883318933022641065445548916064556276691157359198709913225035083360634235013931192488248983905174228455453534860089773683797724224786025037744410018761724871467503094243351806534381981920070392194907116027319065323294556867396296029079903294804064701281077333819613564162411618366574033206396881868937709652942133452171372809418080324043741671273590925692744983315070700350930088958942404839687289858014096014514546893376473958693764573600920728222299752051222727612261741210038286731464169649728989203533762700483749800648160478813396796381012088250145117437212642583169068403427099808904615241883494739028532298603330876594608451674072787511478283573438023793259238570433298633660316133154060445915221513185961973404601066291213583436412274553032318848664878910200960395254169556774180001144619669705237279906833866649039996280510989904338257055992789029961351519505136930113327986805414861049817878542113618949221860570799298338437225136313050550252949720616480340616340938308170296436749831371331885977307166004394942407335472327429264042121894307424510593756164792395968085159483471328780733063021476396916116011521497209294293607823772462836489234104542727559774304555219683549198583149332534049850712180154441910649327729443803349519210618810573571718354220325457171833476309039951778028757819312400381691940158851350634922620926468170098686225836951469368259486474639998978443831389349682739633038929987752639311217832134675204775405511885126832203508201135399275087184202862905400613087633674574019105785582578031122278289918407237516244176963678731283093307390602919320792009895687102312345538907181690172637686787012999666767743686187470029251717015881538589837799481718639151766333692090293222885607745605288300525525215698248646654712841747042902263828181333152855343653422804972826385052444593430053543308919703006356877296128044173361792451774592048413926698513319069166775493402213371751018653795110322042416249889190192529896543585061254040678059199656466150101724109727485323743474923515900843279236577405763107256589636566091660555781757207046031680448694552159559183042179392685654925165177390236807109521817538770506292765457747271515118465220415277020123315057136483890604160633149457877397573954386292931037104101418441895967970323521089608728674379303071849385833485833782286174361566884715289091803944805764713657981724372902488935638718017128693851688052731098761693305696497988594852388126366352280962762501198228965466612234510217403138849285950822359450038266171802387960793656634842473147222943151882316578647993602300313138596120708256949737518222618249471002609075297406943074876990210040537822773168713640335802292675137162282171764558928880718607531336087112014987178188256749544387520694583049449360592862548722366951819436463425342373296024616814707089322020352019538665184454380905257995365981482822528550284862473079891941995808812873093690486314548261353583873175775325814857502547188634609864059364358957178427853153272204041065264248494365956754760314917699075057418274656948903734538665869615202684129304665970423353073739013815674768266130707312920050197402896491444768279276648183172588662000612868335024937905754099565266081305377598023516250829161467014539593935332808634204847972811919054926818765199055112631501129747218204875229018889148003445086843347186591251220219172983066242578647541173542629812675377014430896412208393045372516502309674647339372298986237119517804376791721139891468223807948816999132611375190135670006802240974489602865082318586906144937479796866717957765610011192302698135427149084816692978956222351410069408071383113831024511116405480078909084253490837870047684591609824304810335204754516181639597772862841830006792001750693438515274656179739429323131095768949505841221760486555052819972517356654387984657111355031465848143367985646620190496771330565327509868706559776026760974108666004253918500298581415414832724182296235217059564836084602854745511263881535758031199718274137037858038895760593217216469132625101266884260875013453223893440239377567221171082517322620302244578367287787098480785706283470184226674208041649447312431168329085602371605144465313915579810896713177766821112567179288699392644047380105329037899565377648417735349465980532110854401788498211447960605854472900013444808199376113094518952967637470219843983013031155093364902692467223038622403823099085356220778607955200027596640052677273385252473359539925797855312139903725010698032564185421440961077231249368731658036406146393896731090480127092467047629274668608479887384913157055831963019811378448093431912829383825537207399607804932399707290118243764401781434750916435434869927892834205097586188622320872489831954521822047008065618872723883830813791825144538131145485034804252499457420554010989401080144963771016892311115516607472092297439514202939259877068322397416230021526300174196417408708203854991440146632566061968008343479271012089489613895699277878271100922789893612427503490099533115443473905370753730763556734025596895414291560409259676179778137535070070543388300455546729425674392560971487071465191073431255395551150438851133127520679490064776664197425590623427525680852629918853333663037382357866976950224867201998519473322315565483364958621045042441999008589365222378320011955726813851876775923957969466135228726451958892941951558913460409917288406879588412800718210507565162440217783027555195368063047240481175543272414175783015478057228533790967478995281938839723178409719853457085681718101164597333087505092903073533050122442143444616158099546306556686768897642925094710619042325618273626779966033493863686088715955181278597946437198825399255682037538988182278610976810540969982923875462207787790881701811828842623532886139542239439507923954335548503636348818300723749632124931549200662453446793317264389906366706579259581492651822620049989171841812327496537365772961891355956719953044230779289586227326242554865958169256071156914701457316134843919864879680956320337457482018227619540413319414181870096449832510672261450349794502688898807807407091666505245826565252891813059670131719453749985709891871380535354403087543744666142156326419875703800024054536409248562604100846733014157387967904188345164896963861309473269354705424334626298396978556656439331992910820266356732080240055668536948943765566879505398835800533899472695602249916071992380371169429400106723284476266290299496788002865303975658660267748487249508634218252184028968803846932166491561628046518309490807324445552511271436014599882575974489989859985626878619506549168246288524115566074343962911855049845098596718429102846408243805363287929077009953893610892077562374673817559926233815598036778537132076053382599365094122584016590435917445672910174933318229389524851225399811602906172407269815570016362927697520013038106075754383806376048487277215728301788675483503363676006144618076915192883405321301636052922007283099433187131670385128444423146041000812782609241245619957045281236426042198428534791020944661606836946162250346353493256117879455710350982314533322771704099071576158354439600515854756168987480059384383495476458948911741000861227735454968659890454390308498037357774349087365533542336027353690146871592464999796686134398489225884986384784122873716469608250376014536803842340543709195922711186683449364425224496019603552380126959344801645519462630932050100959082203774682951083592051149125699793024201285883860293669439642608580178827705104580208966228681248693423321614713222992587058493107774494189811423427547599043821846308873115697704131492518961075666596799755503673071001229006388803244087154674696811823182135601462308923796751494468926823425739110100450482096519337464219741058057567721379070970031822383020149977611387335823760355913713663160018003927098622571805059075299910244027448118204932130362521279146580202457152210199813561285292124134542317600730266920487414084787643486279239688914492875160349460964039626382235358929583145348474064254215801116763949385634305414264331894775509742760872892781375999211602149134664195542834803308810572653114198737862562835197312447103208356435610652973671064289082181146808475336784565846023796402954085692631094820586066997598325252248467408878924240904527370359075848124082892433439475537155663469229732646527478916979267492712593087845054235630029877205499464885756308241848217338281016186984842167065814060726317057563493215753572869313752320184294365342956632836689652241461968162667035344747534523851456425143553206235021778506061249181191581862121421359967126514938744981348762255969518519172003412615020467618764103935928866995451276506650196568019598802660233811780096729681979807227352247803637002317235844245060471601514399321160795749194352908131577356477159315176893493344438238846249537635351465095933228437224904223418507125923772579663423594562205917203320494548597757240833815971600730969041104645321933466660633466695807894014881356356828384449702349207282937219807741680387077622047514553169901826321792675990195941077309042513149264863209411837919216051845151250437702895739700827313641862831633464996169333734486855820575924882172285178510999102331271621516989431231126899791988469541514222160116574539791041489018906365355930636735779189120953538046738762974044861213880293200074436164485046381587840802904817387289133064107535408826758559886605875311903531007031136574683316618244256608845055659693189147347398741718521071345519268127724857458365173410392489681412376464457652755229787896569650297744541943979020732874560224041002825572913042747352780148598259914318184217004830670038366040788310644659962312372980816377798005589977401647026524284715144591951532503736866158770636709048468280950659560970842125312226297967926766067968437076256078844061830769061015293056003152324509144141017268964940865387494587144838577455683548335784945719687427061319149670814698482195379709457195956363347932739594162253120273407294603171848630210997838088984413656604920313231932536182511822203857970537464022393036096188840165874943161670291983117828834449560742574052149177734946485956463913269323911000488280596616673917797170094902595122923316502934316831980993638633305360311206426551594021448993784919664739036730870310898747693925568362859777450140537529567717241477574808703740980439868708720262146869432697138392172891159423079812685953813757430099281544364924479011175468427687825439711034857845585967090753916776581248090877707950747333931550942836471986924023112468690413712400004205661885501768223176469894361360087717976207719773217995990788718652435328288242030402428602679009647685113574971944468680695488606996227658851108468160506202766659780576616964489377729968071824766246919219562414728615208396533867231662876737763321107634173793902831322105509396585061423986064424188092511804920106070105776179342537194688809049144650550446267047115607849233708737567158133596174757848324501039814018876814035694318359624018391659632261275676352813292159103873253168856575269511031843536119087841965241156578788901221991010061024839422903616797413312925727338896935795264547485647706388098827565899652580363952792752523728654606222946681679428986847741528825113413740485472827151364504596524660676271764875017230945776837552461458842184690062021149520578518732659957288548739872588955571597891141577908560598290942141621992391539782641863828133813818515628676024447004673897543383157881217560992585753355197464760915983613529082703708593957218297616799222513281665242685525234506197570912895208852222940383631493258575398893416595460340921308565548907250165247769229480626242578389515819953595252844823568350412736846117247421085666882371408010856693763931453999010458289616814722281296528779242781711807586860431889537416196909774757941920937702216723784080278500220896268400925876568846805149638125082491111293336458361553479671438556364939028495352891505383125901049516640575286460063464342173498092499478193300404777615021563823244427747066322211093142354776356107333456023545046417899876155626112454851175346862592698631361451863384567872067166980105182357689560236780122843743856931870089534785885552870082621204775717543675849359607505089379208361989259326622523534077935370554158082868833410471937357688435543886954921985381067988935910102382196219100161648236527225479465755173461674029127438754610958191737538505272721997122492958697923547277750635749620739612625671867114237562731120990608174452053141412210705837985338595533696964532535998113170382028845533966031963961774573294006921561241477725868432519255046290845588092610067126011916713771640753781878782955378170262168441610058592514945618444169327505045132973840883397255842534445334902383604740343212692139537104617048213072274156876035343742879546933788695873070583260106104183863779277896724507008917421077308219450686108073491734649306453074884435053217876454957922040187387101170438407287588103270662074664891534777215032753522447823692578744148848622074707952168591224980051986408265144252971872919914386331307289645448188939821805560282298250713311373324749711748280794801755886514553893738947215684021247161152883905022952396099588606084330383608725063352627414062333828170431299321840838981415107985423569055657827509058970802560078645231728548816690855068010296630902265579681721409796831782238541954738558554433811030682273072614316272365173199199198656443299413440119101457703993657877445322197644104851339221860322159893197495515115098718916636584648497864286221132360167105467870310022936756232024420240110200622034904147070122482578205693409049270819092216710168590330862485452503075427026939147828209720122345311810393953112936754451742493172423191801666796060444507264175448848380785447013344124603525699080401800183443908438373470351400514561144827998099777447322696609675116970694516924964229295552966085112479479072853577370914174662224983014297865724332073426460644081870278696292459283246141845296487208517574091392320316030302327357146236308331819979845455347266186909634974038420167601056259871331902791941108632130180042706991880355064712114959386498418759653022703077274677548407875439694638693327256310902095097345247114956218602859834035034643154891373948481152053499182878706510807307425372712504236477947338985166461533564895188189987683033029534878546773766396403398396464691968227598077860113332129583753373205559989238167055531551424345630747964720161504324873104321169297460326134298442743539918246113521955450565308998415392863006281713378479516070703713612671679761134386217311129166479661580516508861156714155351352857463630261702257013632054101107979060401368300679793942661575811368355724333952494021223978371154786313238749074766372765441055844859464449969522020051766296816744366878616893589866928544774787884723536010242190280594560872429996904378466122875530200404006960923238550741644890448960346474092532918769393949640183311240272877320512806166344538421738049297609800352834012532872815062896195068275176263695410477859300859698734563554877343600571483636218750830341720937930835765112058039020808603585921153289788969407265748026734307446110804179823543569076920609630462608536208775594441326903548776954875378209010189015216742532150304206244862450266118896189312512893954384379446858191636830689768496960440431440537186586789439903893849560183465821997689331199855525146020302814803415807572162328712860093097786651694566122373124490106831279520442319999382931408481609814556147212831028516875118075770273809151624827729260835698383122625499859946165801675446810376330069771044599898591561346789079260412528823771420058552430702267036637929835481092743627270341523415469586453045015824849055889196001574080766285177656455126306547638365177875559055876087702538171250270653213016443005538891669639458694078715959024978384354252244877848281213198700387918681950914865548888261532843625782900676395609336220576214663520759647042047222083921691250978686278165460741624128105477555617043327349463659299120851147329518527716823313872798635399073043855872093806522792371601617815733868371042070921486319280184510560940910545870184790830947987883526460751655279046407023656282666846493496099110440370131590980974909123953969754520571519530838699827072234520871527266624319361958553810662888280519509561835022965987830648878572596150013987768915706643737032955581393008329726079656198054974400383238645462643167318932695013184631978259171416609238119730735734587853828412176039044925214571365228933298588232842356167295760204515233097325196872205308081436259368962775990398289467286841096884001237945200729804810632685073813475817419077785922830274492451571758467760220858005343896611767034429637350162540926686637430728573100142832590924703488099387594327539799734929948202806407398476300736191596163460816580186059970840582689677949553339368186997899298355995986838694708705568416285899666598840585637344984289657513261032873372940778205018868594600675339816665389638455862380287623044503870297228654763671629171434934973782582998590290389089149861294746553243416093960539690095464447761839913653493819018466499265509007732215136514758984891508571570526930252521093501569928089365976424063941276599710354186642823438472879712575495556610973106985540168124162233803681783478622900445605320489601388990729283504938883485547839223710659279997539210148022440836789912606876987696050911622778422783157309340119750431255879577200060444875826914549818618926125292734990113497133297667366624711352714404039451438790922881148940671028850967928034238339414048019775395057371425784923741991293360678961184317084465063998664209289535297357814464065732838366684006458868462171577419043180417435938842314368964038605967524507709850954829158067468885472205620423310121902115041329684758418813653755770068020207718295541987482330222355799266493966889760690538774354069336618541287160323584409569355809465246005989661426645941281918695140236244800536074791773914474987126086091599219759456197614988538426811649583460321006584573464774329793187174891484449969599417738034756606828110615184837921196389750010306191090348566224177866659075695835470148407266981211144043175649894331111827403489876283725457499121317425761894299804065121525951722518674991805508385841134263346517462896758981554439815484333662425225303716292693208505100592971047569138475486085111803488778698161765334694498354863970146205594976840638823812403499143709005491658396128578054469669856754473686390568626312136607134945791037005153517642805726066634170733536813834168358200640917550734713561033542309663478954100976574968465185330950261394628530961778462950912026638220395392653610618646215406237353026436957512510645109389037971392252603629363457290671484818668561452490867426521705297747084165846405533887922206070689132183254354991750574191276052435338804492549176466076917929671904235955258002192641737674870033655127144519057416556634071290612428497190892836991975649722859532975503497140145444493971133856558324852246727838200448026986814518620980709600283586444029846594656861677388253793460687177463079208710125627234948036617204637674444475342298450306495716680407078995723185078798204426829387068774865140184320162245713441423189535115887903641242445885509761694825265732247142255430302405700539459349185228349387845643471727902462388690860521429585654366167575810388785380288645968330618601065986689849486077940033143802444090039799086088014773205248330635895407053814695634878613002968779725922809119157309939055659890377965443747243629342787139135427886169762398920206128544607076009641787575310011107270430278202361522255317905146401703958687625136935769485497993846950503212635748660704550285252842155713688789985736228833414807095742024387626038921469302134081210653681238729831368040148381746600737634841903686263846665408088803870263230137319959120934305833569262385551581272676894274526962113563627551454565593589471049731722249705944840483271450919207119615129217726858204612972842585343343328251905972280054516675275000157914116435732340865689295679662052476584491368238600309875331962289977391315519012268430202330255614191224810532648032073387426288973328583607692489300700618919193559310010222993691354682581948970895733102991278856898227409844865213389413821382297881198177764657913113960837214308689963065649468585363166508489658833917265947469959170289503719600537722623817921245716626086750723058700513739086008067001419400387419267554068874109082295046240888807502933857983887009534059714797425968867685206953796478921135843791618744136975336025113475930051800003350149542471812662054747579887403442722593845966256417863501136690010152609106607915021145484718724946231080920599485478478184890041172069157579771766463980326001632138363338665597832489538046167200313094755758557028546550598792151688846982074337472660462392861111355149596166417839221071350142606467035831676152605921721832589783388021407470138821310193589471756346502943848031269345426483864984893022804376841005417171269870196179986770374929553321761557524393282268864468263886855357455271286814309290285590345007547826641930593957548985971847066362359304346252449691713124080715871426515482799471486965993270638647011264415997895029102641163418531872813104008489216476421383734853427895818022002040248749853763872629378656776905107410046394188228320778529011574411326116699607060395954963708206859861502816170922384650539094449726558410147713482139868350565189866497687996473681474811263286475286952571889717201008749080389065761829162121062919083167932898679039264919450737672045124967282873808433758474122914452646897674625379781499927394864095801939268651342284386359708878029693413311684029236142441574029545432044387638470674362412502150932923844206197464780705139475574853991310977328470171338622271931198550568738916109636721988269640444436284787729160435199307413702627229412458931513391952499453234346497552190416444483819281722142289793669706037409325054735468080674703336096226644232244022015489167612415948491114369386373035994399065472270204323025911637390851442998262949385983800314257382021824468685753978561255843233271248778509387266770473882224492792340553305240975842968816472545319091502314991667440036920814572929700497002504025652640533952478452415347956421088297991233429761199638323667505197099316710759972035376252369250251938277177953295087198218583326959415228624565049529649278349776851491995012832271691343866450551569295419699254560450449758296307938524283766222118323098233293791149742961850453639540653007825051148492789814620716639294321183575612841361193073320729175295582039232815098723229851090148071372996518985723974482925339005520304290730345371645053823228829269564529482074838617402185191879885435219964628184623388797282011505198758506991704068912539948566796540767137343009295013124070649635423434958733997369073216284162490603647278864501230857950967199937935455723249999672728314058297982829716635867457493422116481895997052317363084269456507883334003440735301698416328838865091663316758013862872946451143995239318158260711275541201648580995502632814669307936334569713810499103867513957757537317351279904482173842846691409132897864365500154524306119388406316031232555106821744672981362059368956314959403466508274047808839585434756065527698437889969775633016280395818994326548619970231995044949772656287378017046498524752146260467001920860476452879218884119439446420436987779175346832389523344112366809175570574925230745064562312325221541806685934337349987596919432146657556597108063503518907271771275722168332799177093621733703555807527315733801933581551744796594919046431187161899032102943883003554103901236290180349159671219958884362993088413031597750317395873197981545137850427173484434679793014739599468005723174468270638562423698799675393988336042500789952086032647907465766880631000723390620137085307148467745154414477753120574836235356989500459001856875434584718904929073264751355929769954552668677155172127123038251314131554324804629006301107079424957576636838271273318859682229157928687878694705882852700467879553629323256688498116615079846306778626151313211221830440282461106934534827876751162243872148812966778707769898905765170507827690466621500873660910522728799803732490486890657654818817422234917190748503070417922292416422714987653393074048222751157677934877564070520761716766413194395671935606969945903621989006553013141781162459424484149797860142917365399498584228043779680448302906153433513639309733977793563655765118625998359317722809612871471531789164653504449994963157911251597586744197591843733560201348786634216613849298113033624378218204341084415231936548197498740507520828836846869067361971600018872417264628717557535958279709174949035364704748788218390932614256183625492598663205927471602546994058595269924246116604579019249006342953129608429281062467007027516570089778480669503376211207159590090570084694623216462158932111915083329221362477616022376567454758531270300134120675657108048470548551691085203245154313489989255883037566192239430893901756958362085884742081661872156401207936890695216588875538445354622011401192735499086027463691501977653188496269516442936693601726034272475402728133610261303249180931470730016332919340419132477963621086757575846391926425327961504642757215663067945901898823619818708009156038530423199095884847457862512854439107821251996299388860744568028769260628159955022852204373649351762165220812769278251413794711330477521215691682182762973102384762264953401094666655726763527321402042984442569270010917294502786336618068380472933960794124238119529715739522615792646294053333103974029927958351479434858360114733935586476360060157296520338843266286406164050432976839225766304150848301517311654586368018859189189208821039872674809366379023044328397234988324665383960265015508195239335742266553989423823641245294631563975459876763186673658335345281906080356056214237164035965937099352280733548650082162145192685527382449725184605446992813258204194492387572817074027372675064809456837168570129358967426017179839533711434272424358990874036897032348710121457560802624499653054081802144268660854373212203213403431353602447626214508330894070072845814555122720177847572460118782930938741861449903777086231512288402707310775830942253802425422597768692900343783187302895844685981103507622647146483570666591563743667516813409428236292993006234122044145020644246555329332124590132364164042967635530739898011149375416878625683149793764938624308790485928429839314819671043782001100355996813219397831235357378647944404589365010991088596069141460670749114632219615773525945352428099797517957913305060507218126910677361188828281885426462494314303941011745314936052546450534453780893066070859251271751229410378335544890707933039727621655267600579111773979691200698062748588807541434114327929207434941220319868725033233345835940869383842796678617022146925815645166252166327922991737696820471755807129271368437390355059884029055505619866587744112634106696339764494570416959469738744251615604758065948048626844637638954696520214259053599831372106591998975026263510068167083627404655914540459469719351385400584588875098864954454256043352276098723391019894011565384656796573774601567772118380420561116717027212335239528719874776229655131431463741643555701821376959847763631990632751963911353221917017422174169203079696939444517070386031636226479294193452934408029582895647529726955730334494551180590835305377559960989528938484628149909037978082706324008439017192922292756799547598208752624470158852684714348895122630307731930502908756922961079355640965808518564267137441571046118963310000472180418314052433997937608886117188954334707158402431618757094829119510701959200959603318006782186169083551686730692840140756056485538110922271032966558128820878564608480601763174683121208805447547881834762252137882944587606399474248251227568006239379368342329636521541727856404347937933752897661238515714553470954037301553115373562343600712435854959373907201866218113647683652069544956816777571787587729717030056563209467193123686471523552284689489878830009047384304198667554594362436835503401498786624481487074997300591290543805576817676858756655341704227314979036823813315819747293272117430054391991449713302139756066496111369251254029630774767614307570940002206402429696385672330244442461843809871961913241303102769784293219124143238791037772448542284941493840703951515174432825938131116103451010389933415209941545355421520230530863027904094074572793440111737603065995171396776062832882184889134950281435986890606925300421877913620255028807596400517626139084447662914135775415592703963783400829898083221396327288146101851982003116205637666123890914091510259075961745390924843576599668667149506843187860487783615867517228691392060363530075111327805511665687631664097848208577678456587180400551285248858557106949090861890736845343533281833251296007302233636323750747313569946157962271395395741203548127326669044891293173770016306410200067872000810338276326282474221890437000985187428347243952411070128954608273234611256837694951309477125709982119022056754962813466136648395574945430181357717155968623961445713079325935439543563705008439106901037361005543545585350289857576238465343345743104738524063273381715924747332912328381090426815083152761078617162937363070425654348121076697132707045348187558449247672225949523180223985537704985941203104262143718043500915600937971182974044492365653103231531899247371124973931936735451298442209443065036877704852790442677639273018032075231603923365606988656273766475728019588275160920608329445172342500210024214987349231617118627707691615695928555108601858408193976117735341712475358652719820461588223052029070077291986725946247918293547562705059838938839143149860692541055077616331913597427687243437000508552997337328888065028425366034881312266251493144448308948852963921677827883693769090546401521579204618782043131784039666302847193655036778575485282335586188473995400782595367879365112207463894256996738881562945050670783938722002533596765860522996302285551062650848995378916516729352551754803684965878562198689792643815708609249590058863466635627632263507592748057972297998904332432199257361461040114645040487858929838841403594030750074366289917831379531839543705347512234174542208186191347901995141648585094745439042352147704730202751273901230033021536622391829005842705827406061540993612539128133302499866862054635983267692152973744097338523966612240425215625337235498054409522498387526432504424927747831471234043303588264696721268233730160670093094279256931816626868404149167568501806317992646847683085574215520263749848743668529664602792572755116743036547117339992240464656246373385797744084962741235959585314203091808044658901712100167747164937853890402564863268510265366704541079462534783357824204345511484079660068374840978517930486677682580393283318699572158017765492455730871284829131928593825208174519955002384970285415987576307877368053771702751604823798211733439710362770993604941664104646185499523069625215671546585983133751077961732850487389372093908193535132715795631343266799488357314059649119836304007025179717061721943924289548178593716499457419887958133944933165927904254623495069705464737106198304275529671014771070821097003493761216312369207045545555170418329557996674403336645258968845497501369070254922099995429370431392480858695089701222662376669359467099492211759174111052177198185735395077322349522245254692041171573119582473426120678496988119563819697786249892966818268071465820201306647805196318240725597181845040227224330193656958347361859322778299607285849136714936129448974608102708215810224625769450827091044314584007312014252740583575898358707322906233284626176539899259998873058467874790950830248102805896323437820068482700322126344798651721327229088761707717001639417865852354115503314647769657039011282073787624406436538469227033735920819598956643706494626383239975798751308647933144489037686416234087928053902967428521936086302334538853976682332611697446810806892759004545991602479124978091601200223711297299395953439066698877854486360711777503237152131753801939443262078739584005139648441198610082787256351787493020667061948980055761495712255831416553308361902918019230986224392577462523649150628672773348303862692672430573139540449538862854093947965574907071935092415560467095064482902257108960298182982688479453090545245895627900866024149600686093211910061934877141372191207688338341867441843198981295926365957664487957705109601582304144663302832372032296489814274584049471116792567659123918544330202477294770946081944672831869649532444779836173441686567445001253359806525794242024700823900656787340588138942908235543287654522308578699690760671824022610458273084929975895512434803048227551283393803798949277954697743684381017823985315952582138067622040253549868528036444046886465198568459125564482123824023656999964975534654667353769704928767725091880158228262110415747237285221524752035312063231971029823721895358480355885411456271577382976351512148666273235199131681937566412882596489596096710240513775718472265799569374383329018840030036522545159435159776162652365671008967203280772760961093612090483815442549052917824849449330365405741851802953498027000747196060167912131162712362683253321094847373039277347017645114688579947536655363476761232505595155398996428462788967014596051789247600018218224231556415331498561029000196839751395156577093908291716781618068215317503970577548781259296382951655401137192776501168734775029917423783647156773975587867971973169949963284561183495821535646234960972729574562494086655019418128484208369008026221266995512360442501028753674880122719092435620175011981181076607079520809213945818797907361970940376121030379897918359632908734375040430306330569242374004797469456372338996949371765858241615270548338141064805032242590567760363811310366059107669226377444441651887109857257227726314724257405476303677274270468612368592272179022759277691207482969416624073588233598391154352875209376510034009606482221308175663767814260805730100754510628718131068988909378297765754031902073253523100252962424617624255889922757573425160958138636652779551274488343629733573649238225913006990651071206728101146819636235206502642043979589614786040219621735895623023458083054859171276867397314425890478882954301659831480412575538256591406993386720466354813292136018162517830709103292040877084345872994408771649985244330153245547990420230854976284445700480842535048804479481012508932486864689007801908013857882008070120212275536209972458470713474771757887851535252428042981256563348534983434522113533355982430267862510594580533674979867977917641916355356050997453344441559423633565429550690182612956845019231376418243671997049468532881288028732773009229304302419976785211930262087344784825452166953012635704316886953261095114950651399994757326057459943816585976378626279465494419115230645544127804202125555848523198227030694025320615639271305334578722672207694123126451709348543157746587947386867587705097843496620740016322812951223905094616839137140184099519688335390801514401949066912229956931356499631524251202478823873007210969677536993139766888612161537572356419278066281255100645166419881223370331782786468077436290066867171147977773082023681419960569661512204172162764206888110224321364706784849980191633581899226841314343019662704056035589748103111196514485291535739778619676595961792044679783746035244878752133865757621383354504425516029392350936456323017339085412244609080605336483810088666650892892577103469894809043528828904762399720414671578616128674343774750757807772769585068871423803414956860021808751822536726991571234316049426928443263438436527803727057777486315882470519863385182358698154598716544070912033980639194700902256974558079668832554992884499554705974717431279594690046526209670195464111145163171863113242415515632567344946855252775566943858918172476215031316275237941400032154625927609832978401896398363006400089874168921935852452850227991272597885291929661164796255720914409906679532090643591969102971418495843113963961066111904732408483169620489010743421308327177777671266988965828747002800354850842819582324414452330037033834255383721033214928118817630517604531335650072814965048844563386724529638535022872000290615581912457989506795568728244710867640829022173719308694252218563541022021374372724631515972508310542332787004181309588768978285283408548062338484114705204115616357905576822962452372999508731375059441382591037212848963859605490099288845137970514453514276966596514641556177843700096097086716789712985982873596182497369484334860842423303673182110474460525632076843320105226180737276185388493027113454421264932690148858887269638048513341862840461421670403282555976084167278098274456895346446018832050415493112114580415731266005734949860718553892097215389074040168040786885651485701350335870439154059193574797598850096183865031441863634483866318089242507840192780716366421218329184643420272901249048802544372144241930274956612360305912048881852093143130965557824912496019758773646287313130859594719128317076984929427971137660223028495164178997096748901797191316228379691566217377604028439917206001128555073750444073979625734907665673485718000567426677914143374266847077082090704927977053613154606439108785711668495022331157414579735271746737874220640495913137459080167098348746044416874689977269309189742265075885839350202579776598576622595490574587380212202489352522980802536796124929717764481653437466705459505596097837656954998964520923404941949789033249683412396844655533000585687700427710395925522128556914491688372456215053542221624413977299156488007807869557464269282496260980967448317708165922083215082757212233392182207306308089069996596448870998620305631626415143449452196052311687408824754906621081929212991918148917625789640904300026514854732327020552924043277180196335143819849966827890394056290785875624615192874312369153993581790142613204710793889170431622124933315135208009800854812439835816669481410646436244161234208051125001944858333342859462075884684590068872978591801341984893042897587837658013513336093891414443467529268016529222787877746199327368012519928627581033916403576366866499500932762633257408596834316618109233639544591224797988670093487315513619897332127459061356915192811741301260529634699102115650765144955020111684210363139694557689442824852503739075407549206007059741185357320909511177747651414294204422753967385738794061421278808024294836678961239850609875022234175739390068439641530190582431325209728261953804821999759100572820626929999205482641723411448689611305014022539845453163134593328932440342828554036646519302929156665087176364805238253478518242281724617039542090717105660101921789120040000227728084242812614091928016764097969997814718421264296665800470783290442688957423940969867249052519039491297870464696742076116917444771968526453365825157299841235453708488908837951227698024682815243620594102210997152409818154349176465196664805637156380453691465344370548421388599282544772859188361906328886979718367583832836979898817421437687361798363039624005916737970903248773525769026062875592758606443891262802331790690691382704396627283678728016103264493956630517349014611779444751887434750767485294897266014541105291006766165784563130988517122033102676575331160696597278936720264419495163929749025283771155676601940004339824762079249317105380534721245227803694799844324029934419207670927004596703408560291465144811640123609991147867367370095248140421441095434269337989421044576723963782195054473328552859178698120214623221161088357367583418909720685328056905143551482015257082268209260365375973645172941157505010646510962821078689529843399391906524294757805619482076101952503630488540137306000646822403857708192313955371819504856121285552656237504417005367285041499883781453760423746554118008676038344422485867604972110435991253546876612728446412165304830002150819024062416511643559870271001146841357374136758170784101233300729183068113796372186602938419426487531847587259985797817318317928192677701194198985835661717629631646259342873835524816169878236874577492912827308010131099815795391859018355072344169310804169525796997396659164323645467519482790753848793913641916772547769757165821853539836460773773005377460148722731280614107698209465452326067781575458020972483123032436314678732691976382914331319786335220777101453009154461953075382483624677695520795574718802401220210901751025003399213924338250919042757950317452264162070350019246525281222370457707686548782862787603250723611919049214084080009461444638898506445962041759760499418764497884617139254288759685375761953610022250612687973381392204588220416235467589215489690013260603529512080763391856141253895793872530271913492383131583857036478730101323953626843139645165647096461445005297208451943204392561515303667147477522159561258529901594342708145095708210690076811254327571721986856097865983024518713617024233995209728856492725942376694971794215005443175587660234349977648621721073358431315732116394718870885174017173727296385522799974687048386668895865636164446905472022743892888676360901795442314807525626534727845458462444260083939402567398613939890744938952797747823656816389006949575422991765855152878573945695065423093566553685677627907601684040439460311189107441509654216828840070571480867642497605065428430555439970849228148885864726202314549572706567907751592942596612986839053888130960792468356394482950934222354860859241884936821428969710584294768337863446761806595700719307331093003573004267268090469762164145610229112311712506427205308737152746983954515815757273647387034349104222971103779888611704872211515553240149839739076178234687689594333058256406268921264597826227903734289478125051000303150383903382196589360778717890546592936069508617368012371514023645295902815459377723661732043764557387720418476473329300702401503960068982586990914330500238983726232009429927478921148741233949938268760520099960747774769312411785643754684135930038749607991961488293368662344339861782293252950145083625390949407360169459642937770987446672233865529064930171861521024756289368959590653840587909759214040480782868071498237787775439389348758295557182381149858913695546161498424454738432619401117683844007973305842927184450903729201313977295738110227403469665558721381867794015369607280873437633258764784596456171351227347738506039159392180021241025987418601753803182379233045906326649279019728739194112038390610853603390562545457799418630345181481189727318712786079861941998222202725344176409291779049948805369469048020617481541512357240055125862430377729751300971297538171327954888108989005505648859561497326144704678476134199939539523782746243939615277414023030576980303603580192874049660817766253417417846321983135382068044821345734352421109293990216796395459023646588315038146342042405123621003013521245864762385854074997458338173372086932173090157324370584742087431040685143230987217182239414068155593839562280106859050932909770668714464855279718586103347211170066224140470513770402154501924939425048761953895097957828727821759179071179983449137776979539325249060556061058405168569213817636816643938460099438339296237589545104762387418768361291480192601860928067306532464079415026674792895649401905371447353886044621772977440835373576984338833455714085688738749503086330235307150185502690202241887515581079760289107485226654548858681444733873195298415882384847689648389718318626383388148865505443969914409712206983986956717627159833476468888322741622566690981798913877351696741791483830833826882261949639895717851100125501827774004095678207843724870086146030820772132728368131873576160451729132814887278235919201266749409223876677984119535362900328933194279787638695178685099781269640639425317643538219897951827032566504970133357673666930269758858357978073243501268630322186784350212379569695058542804412698024181360749298904347864064053487957769254230558098457345033177490847852303523136831550808460537411527260870726921718884012241591241433402690433022893147093790065007446198180659643785642625487772605007290676798570620549256180635726524972215063123789089384221876564195641307318076547219228610945903007666537449336701000019578782724928375427310482870152701129292716197841050268223962861073641281701917630657455288749955287795050224943091667786306448554152976153915012379173224274678262340302994985205192015698223654642415805154796537784587981379848019252845141154975451987656240398277942795410665211436673346659654055513566367453247351939315805787154988528958406220992922167465791799224980988279271632505584226471170712017268410514697986865495280374025072336190127932518258269806606971725333060248044106354065927144192595455810282583589895247731396498779708894344410964722681496734234066775402693053992547782901367595739617450575057903032679233715128449500812059897680594500440744272763822182760451670020088525069866375360187514049851598875369290232824836549883885940690976653901685993770217895575866492930752570779180557597579824464455915128403880615136061513413219928019272437549868319025475158313310390844839382952778768142710311862987669678367794257283981098212814495832063704513798430876078960149195066322036817678367315920646766470036581947795545249360383323565108306336869285795641499945600458496497882326102007731880115369619553572187425602429322877650496655153578386594306079345966982934876643463005369143632892741409663843064339643796872468495132770931460956307633165657072917303691852219475182611533322685084834310507156911619562377160573369894975068919914301622735013186661872369858426468375234832543118866065972888690367134527367139725053476012201104777681707532013023243419240305680561195318425504513499340893114163608800996103997589429734241520321731411616539687176234315810289170863993515456870025679558793750547873859832754380482038145030386526586754174705770361895083878446389506239568802996624278204317767156011386300903081387670430705907811944059486685023216385492636296047947006070291471443738104986155989572602101543400168981803912633838635569168754328070074313991021299339718366911984027984953994979274226850349897547660607598165145234962981571473256859084678806804675691895116303924912276930654524538435840910629407583367633541439578727351274576406968359668680173029229080359232338310210163889188658847693092448960412741608405320279128180434468237487701473938215423373373309153574707638873326667387749830340377282929421507255634060764541021182944042433892468160041662637703748393771439000616256634610368362642456701522932535601407420361040386909110440820608849230960440180958887157253879845462961959698562358875533087477877826932904266418246926122748517834304078018232024473719996281041190681622666063175039525742338944488559046672052891360204715386145146363814596644475989196720985457119301850721728235836328518628055227201290133325974211835108611063744982596123643643519493473967658503733662442246926337755193587485991457587436320036295507308988263864589937076959271932349518092301457576940050945936301151205943079484937632015580122904849560757998998429085662176182939696278652462946305996240129673627391665538462048803735648155813460870020562699886686077064046671537541537679350933922242121528917587055858001304963611424094569314936041489588977384973594416986767118286549696217440692014999822291885761832085311872416936576901336842123537566611682146519090179556958810607758884598603928141551803060489123234805880105594264090311372293932698939119500192574402384762386567466542372980374119179129207966151374077556968186000603696825555491445992166052052790543260963398226852990859989905224559667702489166406110010640126354352041315292029166632692914656454179060002289781353443335619491857369301045886008521646220005000761310048116179227578987134938728800739021224050562226713213787143434003458703532556179471247105950837532798578774508223470407395585945854770299971090055946826716964628854279206994470318273668512349979519400813255104568885916533908443104102204902104020244866197328085074351600734970220320912921510667145842576748161313659346678280694311702451986031314587923539510435291821393894361207653065747136241309287421191151238143283519492115983535421633298613381097793775626959971370495315282998346110519311788557159345068686499598197385687527069001678808281137704081202131613069487831217741076933341368200542640013159878574023609362966361547857687149280600683345119459134747030338574522902799541969520528865772256142005371806784898463835352222357981245853798085257672729541599064180835998048259921306596224661538304297895820946713168007050931004241582227933104408305848569368618425138478878686864627658582772738743030721257991885038742053324089727569673161865077036221171855651901615617262764082153716182866519286596118810968140139644566657052491981581296231591363820810466618183601441168170826189569212202631597361488946009559881148514774757251520114158569874320216330748135900928489207899540661103596242107976210578371893580366301877674078438901331052411483173407432682105350048575125322136638842698803671870768121750837268103557002658490379953496473042273801350053462530036519295029307323301369667373490163298725672782418715853688704566237543571297199029211420179729635790451245216209838881201121073024377475121191640719214282453829121557510380770846956731790374186283000584540774100870747364592499698346413900135116693672158816526928644926167120251099404754861942709352560690937752636830347198789229443194650740764182973113770655879641799759420569171023310605938544361374232586278916393480306818905969540573056993432291700813774407331292350770876617412205160407592244003195288219801889318963389255208929777212662962901301432899635736883564464798523006963535228040645087616678115687120293722252603239919353251073698483307298450725332518780682744034645351090718649969338714912049608060758749147579902518447547580186402274469968012270619204229581166242299187480925003905187701876203991026441166584769887256684201876750700633403290731833879418886312316063538990356685751127152798419441853157495829082932405505496855827604033628092204950947448119390340021355517528239128267578540977267859233213378710298982892638545169854208436123106938068267515303920418921420069412888334521865771510001993637145625810046960084817663268984722599444313718301842214437463224227916631652615285325770584363518546400763711937161327917000998476442933308641576789070056762557520093838776573769181689133310992780851025491008622126121111955712249273469074015772897637659151932360388774322813967647976398096121646237073902147131479157772427404210654029547330793251188758485900059928774689158153697457634590654047303686275746561320989399516520979255355109514421192651515911068682003408037186736723938475851880562107673053666759646828989208034448761345828242374623437447576093853661508352972496044465759630110015049373303556201769056926038918162684007936839532918884806628911300555597816650713012280188894522906679110092511002652551943709316829481185600092060921730026788578268561302949298016638970451302979039229055543684454543949397214832865497524479596492520440407313988865691944675066352643359840562798489567321767376089974073962793181169487980178857452364358054134099228671428871724532565250280647768611821922381228092025925847317593726674073364238133925939260788874860294460505074429284161131880342458838892004359200864181772499156188028924390704451695801357799438473635638453066231695243874252938103572757257643004841124126933111849484316232246046491587116552582531050841588684120861203736830240249541698613672492975479099762962467779582622489268184748037144097038542087992193580758981646876416744328146187588010178929655979679354616600126944394283944407476802543875909913612855682566546878559062377833831206398279562853905901903336949611794659294626165903597397489345001162032591833316362051727721752181315407253971994286008327024509222258665601617910149732126956073459796937911742235684081812219807249759982965399752078133926483965982063984569552257081135207481162363103425159253674359411391813715398508008770294079878583827806296054323676046998132470222784095550379283700670872175084795330872894030541800003882502398438521515054522979634873892157226848809563519315233480071956411018117838319965395082794286837109262538319575625968066038427204187998869444726033665895355202543971901689436334892559334635646600081393615849546920957372950682679857761459137134654746240975260378182375027113037632097829749773953474381601480992246817661561402350415556774669775219357595882269702118070914580544004138977090305759443660237056862866060353211943682006066991074327700532837843354725610666654908692156158717372982762487478846292584071787047350450116450690051158157112051865827802095128853973712329938434724858675640089031818141788020651120533565497428107900303197295455155767229460704884661969053419980998476095472726053897885630632658647747873241656768701448912938823573647710924462995845484561928875157345711020864865894452786344377771146082368025969935788958973728752204235206867377934565921703605439388163624502597886900331082000674863237425397598970069238764189068140198729465520803805613738339709533040755452686783852668254339124481424573732595349549746141919278758697241379209371818788789297604476573379392796845269890434376469023638012201344608830011666972511808862130015887448648195016007144141485356438403359276238022212599878502374577139915176290754766920050563443065042574230477108256918229711112360921161881921500478250364107218356071337511367102042789559445237490265847632204396581015806655306182674770328816293092244856295486169296773767064103435099874962888011027367972511570377039793766551117897483097026911537458942677744429584459074995854250784604146487910959876373388594347693623329553869162097632013504073613512356715625528426628040505870971068446900174210460566484833130099743111398838676922545999739111470598361647509988137193254603881689498135553744542141316724271222029077735582998386409603513930895835664639631705906163652017704265274723194007282337137944929674158589930246368956600518025611825606205369828569511077413146825258528685195679442935360327995607561268361918743440529716683250309578449986061502512607116582509777843675492645069663983712742643743707122487371612787075912007004562487136835733233140388679149328736858712388127630709935894998263786780058547760949425527186273688855661472996287089851698184549713687912712795136803349067911950143084109085793258025291860328986280276699713003645989010662419630996711805012214099453409267073514458980933855956859738206557384681532970461027540724677551255380971817128093830340487723527069047251396819305763754773770617702165156682662176528102913213970616485653296598279956562266365249079396446690052003765454792492043949968793053557001562520082828738091969694777860257958955989835079528696634264573128961433533592830502009986386015821291975009005817071397021962997752132214543492159277835973795197933377449963534765528497517197023382590320857466923111954631103267059098602422117439407331825815773988244767975843911063844357862084687707057812125707339250518202466896873241821929583628616525312774765382552998966812899761240935180522725504874385530561652467379605999436234680498177135692004288541698467820783922496918375152431022319385625197773435031451755403353292727023119439907928848306011066419111986564256494298362549733742287803535916239359207264610989333393286195457317502998674612984096120578908269307048329254341419731557140428306814152147551730207284724351223742399917298269091164539820961865527886072722802934873470899775445185646427586152076644824716814996491572834633490775757601578215397931364811615622666736978114936243811240265361460264682296645537652390098757385759426545063913419702721187592457109730920378902190470009410623449929486238230053443196492722078176896141941104402295531988670321389741396322880251435667815273310766151420423777844604793268807603836239012889078724515286593443621052223023140089946733352069174527409799531917523141816415124862698727332810555534305045763151705310645598597201444297755484266228607478168012346613930465921678658279051896878671304624995644906173686094761582718040307231434345783506710451794731531498764064855497188407068613968965245851035196502007575742765478004084321599927468009458588191252944238628229199955322671019784959981474423919221510440534550643000234221375787828689077428199532863368282206066813257695755496762925158327470540152329147349700871254638401442941175434903042603805247298212212507933446859352264346759404739232886188553607149912704503602050251510523750170600369589626675170050147552910597091505863354320463119972197613513629130451664926601312258241935520202194041356008892861441933547515237781342070665921316998516957376581994663813734983264425691983968282436885426033715532094691232136394050128881574835688501713591322816093650456661592336649739518103892655138445793404356046731163302600485517763079936228516063756599974475276448521646341737732921722645478857377718356040297732365574095236251798091208343404979662053784816243517747964455283899004138672281662368308787947624481391708673882643426208888807261754918095571476118431083795532409774110398919010191610846570442340197199875699449720971527278483290452356371924005524355489249589380450600235916405315069860972452307742002646717152266190315087570199906568261223747507558392211135706975568072734818761514195101343927103997664131509458972097522250731792943575319725501641154910316749272657512824848571164826190321243972309729177514765662763610560094088266853097910203842552875877605928783292483643235530537574044226659502893356948203608326561296476563122833377091298516846420998116439844909012198213045336097868527165445356484401970644384245178761951591821796125318701096804854261378993237878462883784352632390736380357227358392618530931552677718403395113165426095156359804913550062747117460337123111847580753657049382518203438846688118047220083691086196590261738471607169479380810824046497937121714908037388086066552719401944639968943652924188512950969041625727595586857300318711221090225940786218312223646357656918925865312746216994865152170031432666617264451172867309435004483234556539252275553922402904582456053025244509705640751156555203355087626924447811269531088185422225255067870460793699607885921352966670091806612327468138256368632330156439927009666399738607598861411930861638068461604283265492643691014707041991902989094651992763389314101989557129021023049877267000387479936570603004882982068059309673852748847412493816188371653939192095897202987338272649827957099934673104807586476217753125859996242519321883960369862265650669782443985069814152400843067977418216088363827763137949706480099106102848065698852614081001266226989273967174425454269332832717803003870905844944111018586845795379532110777800933761339823935052314233226786150279385218468494883136330557283171695974657251200494491612896266225593161079045148758908690131664984273469223168682058402146606064383408318480332851253191217206656902831047521508275218728758998592901758428131059263239089628840358636467164681627666942164335718545231683544824818169244691845660920938358545553588034456637562016680238668803775024506772680416334105789723182362216230784242624874156620443867443519258258672917798164298538242585903937247473886580764788348421749763038809240818752398112126801654210922655086464063198102659510404666644988282522729620731741063124838375782211476709991418072862076168339147629703848661705336572789173718211152349651224048677120793897278439458291382364131252636508635438589589608607019571993794077712851647773156136970548810806110390743802485181354242483468673350643938541484717286266025964612925848420286426841066984606673691232603444277650336887066393984343053280599883509473552732068665480933446408811484026469020394469940469677888479699489681622526061759936557794837514394499130024889162443375492540487535185330472764043029636809327016367146900086661377473386178962285739242218584931206610209511071922594584590062705705835454285274293940779289483687887053734282968999270172582158076433299841878711763496274050450323898092152333988626370361175090034823256347167605022955225829077501281302816929179080390354811949041196236454145521108425228111733209165882140303675853769913344663733130217790772434221881137284849781998025130952472599137901019230657304213220927183294009222192488519297326517111165955700080929910110825305141816703880373943053916672649408336474410496921352358467299551655586712409860214148600969832872697824966115084300705426748517189874036630184923346715183429027747250668160207752543728829786635767112911709645743945965226950172730487640782502534423975068727203633433117474323546734800528358206414066787833413074387622705969488104837366602308415762057455527190476086843978097414444352389194325546958554842479118259280752485062543784466658825944612333626642812924945811370477996098707978251890893534663212988196176618786830042381760704495080578355893160705043722952163270936636318188074765491478610656396864591342451950016633007816087543139450300865439619082646496160775590987241081218966141408675380664178561844699482889731396359974285215265236570685828598647268920134056224603038960346919617410667997017624614931089511640826898696405349392620980312880358782304851671171644144283194848771070606433130898948265916184982575925193191590900217867673760980896832780112635662858269471828055211601816940518538236072371383642366689949108314961456414688911614633123463836916437858225003696197390228896596951926511079799920229330697601569772560578900933608090748364885873919439079467898280848968205955973286707441424647091799878452046520727047077771698586111692751410514972643427433333326209657689037519047072852122761739027140770621733563224517576836838269638738256033466345747505154887378403135620950242103610511589388134325075383218398410802561740247049766623516506944365548918039620590357352299359816653811798438838318357581491268685165108415718087842705913203564627312017013427768343092341530851710872950594603346783511464141352253394641253837017831082524345333728238941792701123739059330650787182117068219678639913267215843387405573428209290965711951342328354137104722624583343219184030564117452302849547276759762679440711133790430593995296297076887700803947869149720320866679687440105917419774053597464011349543917968108892070610669070733005574937545775917209114674256340524359759051982441474165301782638343359199171697118585701737068715684478929275705200967840804422415982545660361725438866881186725872186147587066074479295456668526480787305285243354622850535267664949007300093086965658115852741699613124657129517583480749737440023702332834401115091264078078259866029804128220853157414573436090546128279268130622299456153425337633840614253544043838652166880684065587900904950366071965250718985338541012671824711348098677793934252858642990610907170096177947082721133366739099673928314350586171203920265955588724292305714329527750750311823208037985724133140167353048659465155784376767161402606384667294634579165821190397713447898427153628278711049281674670189361510885333549594787847395773750146750733853897748157413698562566767040925888721207023398045121411970407671028414190715391627007699291541390337065571858113825815808047658775135001772309533418565409955590461081629733199577583996350655549759409659525149260644389458343446763351450457410094423842616975158271055186679605557440209822166026359853214675086856880141040377020197979121038869993681781147267732886269992051330789792484893500721169606816919360642903531179223051787366987142176082187671556373235877868773527983232235946820079541384030455761748818454056762391638823984221759629851140665549995105604995956391024380293538740163834557040576955667013584103808619504710657384445783302564535184508252424474043807853138496907947926601984226835268996070822001533475375156075232807055114974311058907802114400693180003499370945122065860386423888656485778068442354599657785861311493731661132900571287446412238279408793599436590967943450957926550267345605009954837035199683020340769629608901662030332946057817345219620543097784150759719814012466062217234454354082592304255721786955118299622501663224606927696662435702948984257423759002564752667787138493860854231174223022158635584461499990862498759437338144818004322619131338175555929453900833099136348101491627971998302597308141484900086002210867480760346010518231581567766182258798931628219010369281226399620036868330305834433631428271045661488334487516059856732741519579658856393658252772843397705682158525040939959412983767281359624876536984026628370316673659581120141916060984790190586848769716230020801861893553750015998413177713058668112354083417653534941453665099533607247358247560222006278006393702659828706037801563091181687965057791644106646586348067082435011225376586702453467322506195801556218199361607963055227156494969556321807201713301100634780328057882683038083582761450841127759492897673396527727624323868946808265570081636709215970263482479592084975707535737527450689868299758297182507352977062875758753338621452821050211908646910201034064994727034110263204966711681820326070440452463768842342050492915945815400068447975389171390643660676433129928150649673804538476154130466386360295147076243860317401626154601272351064539097770918862401558558702677349194036957909511384959914359927392280415431862943012424985787717024686113941992919982461214539999319031433877758454926523528351534977907278895250634066688111666388621608535893053308772040217566493234881192331495561352649213723846358418844743768490884339465034314682307869589004972401048419486291716203611732879764043199803841126659259331889960326319727075483621167801238910390354068901653510203898439197895110237746523079174294208651687733060572974107754914241392875209136686221717896636848220583484435240829247326646345588152394610742129898395332798097046383038836099181106080895097164603949283080466694505006504039449952037313693768283861888989296195282104389613795065194277304172925988507243627859672220129202111734582104836766963131770962287432214516581188107937620708094025473306115201542676032392595181361450275012321889629884178318513560364198682260416151157901224168899615190888226005291544541491765008573145627776311239987882402726007144117762303074872925854893458277040219021975076474503380978809238063420314586598302526147931685723106092921417700667709992030125199022161235171384849747441167448530699686441812836472036965956195617430057618342324441798788645527441106390423084065288633115550237777625363115849453488941736106262980489637442189634453019479502873259072268565473405475007567821249952438046485387827896429686532798458724505797240268142455798534837929742482517097021318557472647319055895405742760106502702363416148903680929945717406089243940666689786038815392545633057499892852580487723328364081986190513588810137190544880733361197732336041539322512765507759786378182618920425672352177984645982076957961712494869244197794094296443617735628468945652248324892312988737726529570730168306879988020002300754800769221771045028672424372990377943045051410621958379716616586319383054921193743068458807090256516608468925001548655659587144157073187926146099215180736793006303428119063995740405388388692421659422724910461511766096452811476488642117141272336255248962807570246173065468874768756096351220379328587811232568767682540976966764973037673724107302083504378353269298019885570387261101097065415649748632064421037149423368326576683548067589727647052028617777585285206453841301398952097486634495622217994747637328482342143857233675718410543026921775680029663121599484955862177286888229804784285591265833288067735758930031444701769864563870959934459467292274966202717718034180674494210825840094007114289963732250879261210348374295525047672020812070061487793049257934048533312645005757461674933470168741468361328290683985612456530966558263550999007959716304897096691929082824640417545451646106456970721510664721864849304884059509713918302246490963072803073835724941206271444988821044653752471297471327657681546809696910757651606971750098612592262550119465471685831967131649845318064877188404145989991075639620483197118235530194369918788893885013391663676961850757864551395000416995647489336024494709551207019825051530826759041072598503913170226597501088815920543860051505993981008485637382557223992672053711148437183579625735056027482210980274618220792961465454024006866359601793223813846614336075875739281334723066827047745190931627629261321420286849315473446420001719956588163207110432291148058689626915128751724065156014633096801716030235097940468732708195068006551236183347169127522061638150170816784069073652419713146456709133685104702413536639533454531796046524622171388247632133077761003249512280019438797673040055996940698902470031360587865613676351530794783111708790893239758460933209909962957133318858503452753516979381170539388605840035046836335285346296242436394839369535759056589990361553442833663492334732163883222736613626458028487009946339053806601490250856376133223918104049889346179814858298357211495864557938259421430348236220156455242842262302169966790902457482797996284170634749673479176441191399946893415943761661218996820140481020112120886006173659278544279519015092900501365318421896677871361056571548698719222074011365067153376715651084600000488355568602278127523196611735707564497906356052141917568480475445649386369660737525701242359108811659934505042029701068164805132528222234894798901829465694428861470219499827912939216421875065937475972579481022216371475923244373242713472190500765327069743437038776384787037579902480987670159339511174696737432102158527388542860191021127830121756268513273918680276372160765720517711332496924504774603387572735184536421254084783431880641626377014082082513452642441436690799456844042044303233210707902552139661061901987307827158680119545870944913305332067519676310664648059142701337254219100513512442704140621450718992405034885045331404377776433063336572678094026026207767674434418119580258070096588755746944229976254654971179331024990908892608819367550581207153160022085637917628939918607774255429730213268412276765991962106617364535272508583891758602360833318307921361866869745723183073131651017200990850710999667706175465063240233517519666402193759050142459316993571789052329792568625225282834336308791917010473017442557296784761993245452756277036314921446753530225394529167340185142475704183985734277203684310353482401802156215366402833620725277268604531669690485815350686696194526931992989256652824504064816149472392717422134278330654324644774310894076971836872578061704962795850575713187902720675846674786519146088424673847261445417963681958226466857891446853837857172035232405230925751649758996177578239046508704588246897536048736820062807942668874611881647642281317209537271745324991800504604341920726570335086576377485868597147804331259737002689629532968101921190421165732448429129162391460511188094934665367750553521815672360001741724319207835039905732742158761072663583450284683828695388465197620914708907711313085252050284131960102176668864376396316514019079918453798648968351504163580597769499092926050489589258169316220524821187611252117582170247677771025277542978431216265330802950881730692967349874808231036386474173750724820187249428906487364784812824003290429888475062671071275406476802405693849627916960009909692061428043585499908469473033562848237016846881158871949734257806026817841143399210379462693379820404451980892011127786260669236055640417864988034220866277571431320166160164578091539943231725905508190660292158962042933667639050483151341931262994663080135605801919441281110294440745701313915406536374423230617614175395155955752505416793089459503330841424970729436060847300354068256869698930387358323078916189378715400254792281911136408742845297185529304382218914848036313339596767663081048894279819397754123109606363856192704182636059731899942167627701763068386415774674900617445232440112723723700968144427950162403752961234319794701986212373350006376109835255439601867558238078175793777788948243960486721952189089880603613972226670384503751320535043823418611871816225142352149411555431030619817561404829087990234957192220101208455107113465406266460296749186820500250650261915922788290301462848508367323525627825586540925939397964055048195199214768605921736093997182645638297478723645449049728557773291971666809701242018027357123341716963641160622582742806577163074791214426519563279807991036934925712914850321216806749301043635444288413981678364878917626736036030151711146495750048335952380491284539483331935795015023245507365739454418851731018490240108701470172963157444065972404666368916670492897681053585707266922015882321400152948353057094710275836111892138440731990396612442200119116384416708470917428835672824782106875593928180438131435596213901440418256565954975276216782702071471709550141666930062704833144664052920427774447996121489273439730323385810420898173483424020486878471222813763062459571173888766090003045853511641618530493711893522150727190899025223221416531016339531731230999152734384504485964272470678229993787354406773535257901426409801749044938833500919591432572562625514205692119876320191889993944632744720518791403630466861813517864957684835698713306381543601726906865972145019381465303282055663684956748984074498758960170919766063563029065877963837385404634252951470005808049506582321271125702191895387695186270682588089159471960785212609535975447481845118113821443807118911516264138620478098017641793077461560442716911760582505591621133309052582130899215050590433812902704409852340946469132118889582903727976828749540207437620628263675109554041760349765160092055998895732304138489225274347610867656546999671045443196704555760966781244834130724942457823066102792157731098357995357803956529989257483325869294762243161333243527457590456681626614351214373212074143422697728720798259100836150355858029667144496523728708098157114272311254766962914557485327628886124899896550369964862618556976522310062490643824396966571976487091983386526183822403629176700063465783834714349827516766445082144879328659034612935711473179967030703609201552664238023332839986655869599463860248840031957248823638528395839758530050362617169696195650289465350626403612621205398730767059216897561046632092552981283381315097423786095128271790631647139464446459386807307881426166143489112265268616595733895602512607682414590544835435963777332895094393363880138288389163972079843024692325196620877306037918314048542761183158154044744989509241475662370484628085589384325688440046657867291029282738078542044352842710025822032508939622339601545839152482610956511733229638725651187755307815282009807727034174485537343300870844577757020243814956247372553558745276774058469944992611890278281052200471808944700688465599962815256857754463917666923380502755872761805259867844298731363315292711461758060955861958625008367922379500560169877489958002204982692612512391541670322604199500293380020471401803603334492634159530092558118938741082150633211603052904519177351695224773736212833703582753753262949653727321453353455480589883266643717368255312542292370945983902004506286414498890732905453223622679817059571011757140917562886644625964682159477078759319507651930016415228618758782652859287905093945342887803220073212554679832488460316715733935085690497290293939286382925910619505789491193604661075936858566264107130898940838537277326649689522698129283242166739515379625619838872543888399665857188927366205387016101354641891542992957054176310051068067396328545946798874675277780466694771532452268844511843727520345193193563991434026056148478299709059524802119215908087739014178496149642893120282292502727038699415766678089976157627429404730162416584812892787356363842861647431984329713137442000315258535123121943095395372642652788235648514871341260008989635074405611523702340306162830371757697486217608767787700250576748949916292026493446617417520849192760807877980787025603371521403712703727283079813122043179481108318984447054177686764983180564732606145240756469031982073611405828764570545541940060257743269644462248390201903410260356189940061955321352782765397046951976370389985845187586359634065942051653014489404044237338530136661531215276651506819900484124175496362046669261180075808150768861637851649194385115092604523312099773954546771905297536802956091020199354659843043003511943433511409489844416069873227942819537024287650806321957287082658790425079631958104224080200165496950126616694246819757229741032572751478359924389824438149471408151924739407488289080677382790341365685333573007089913729441606947495727981044746291778736999826649618902020669485482027530290844723557965761190617069855156345656755212080200769122869779969338948613138625332920607795772739885923643560118930982425355725442032426233820415109314851595452993591737854908526789807698039292782801848796089997561188923539084850927753332482715714662197001403475330579547790214428906706416796138173865366641985128033009629634547958020795980891011850302061598808434301399140358821101180440674923659276701205132270822019174498716726212746739892189325835976400448435855135185049874555587342858316063694688174757574864454784738213148350199468504968452264326078773840248926898717636624554609362300461105833828769997690699971142483372081591390732659433306936611307258742589338879363472169010505383843193034015354073325905419105193920213132788699778804686838227097186202529663533497600832713936487498489072696266198600117784252300753172875563025953902225923837729529092419953161752723243520773016279644486686738312331106792805619190597488816421275473609473876376154987760945993301866541397222280599131048707915555981076616722516765995969077208398047753757975267608607102789023912319707247022428720917106302505776259226563869181576893542503762764649381397653892801702921111465576923160168806798074148679826756587661004786320561725857750984389109255853980564739129601928794316897833051142981040196049885647521049116905746791357642807911283211285464068640159763402363220671009900058453529574936637807257781775277957208166740345297839130292684852181643018118867011259477606105663240534513705504847534312181737923979412555889110320692562679191894904370312043101687324393985508666027954371188536722042614906071527455189249145885583952146847526789458932352074451756660635005675109472173708229138988896478717847716898200506273131755132040350213173792189397587782343959253683178416035150586685160209653050646215709845575769746313590854016003650389560648084678033512184232943656939256744352317349364860721200672021785208983183514402934695840135836583502709408824658543215323499205366451023792916781117412243946399190098050697045799970524073510865094013618623265187731915988561032408794712231477663072115234553526969049818787171443337413917244621964213183583937815309059651793192134649123218355618575549606992099408432875163630607643642813904106737562136788024212164324146268467374990300455296834497512536981209202515541318271347132356815773592279611138620257660357913907761326069938173192506657333253947564673614275505024383029701602921869674540830333645493771214094116241883285255434614092793903013586132198210236002037906243572074658765211554672847548723786490693591419691282033533133119540761548939437465048658634856138691033187266556157214754182206799346567924920938381192793001175734364368581645415426468534404341348265738263557743453284733507407239461576839144831835179254209648499501009224504451543323256417954854092444743109486430179988458322253227960723315586771011035977850380676718541681979597678238458777753995191347807443430327088076891830330016228003780180632191976277978765106911106889168149757366998830153728946399398794811848287651967911793738641568973408320718117123905437439998286704979446893655790850208795164823463878982216093102044154518897342627387074940946884997335063113958828802545825335135816762022931059694695435090830014695035245611570996470812406200802242973323887131435209812229709076843290392865194369625590125643535283113996233181579133012444465652089145918840853942378418146074763981899027627405427585500545714285961175883784978875593327224702443403642991034823018517481660206306004516761136834720067867928335915775869233768958920558518448471077085015949723819593804868691299576602539012341889021323319193407376036577363602317779206167076367803716769348336469879521035272742912258925966976938308892543600470493518467838566056047009098512504619769876727053383528979983000452429679380132969575294533161382847233791625813837374697837963029123134725783997922604620854853783557162000995823466525692397937834928668974290061354269068609930796363549449915721036180726397649684059467736264521951051305203589742843419785447540117936094591730375137096227197373643276398792201997729224712465014005874646545736500376926180097728618585220384355000707099212229495978794565129270658752108962570050450063557145620767143582505124383706237654075307688516392908417262694768244106680372772132286127528629864453638594636680035658868417811795202193304328917787433241662611902880249250232847028848902451140439400243902129003634196637574052591419761880206917456501712314506035625006833839864383481273457604981364270402524774149629644063601595605751381075333364010393910432202804450867485086354068247802645358866831260223958193758497641423346745161385478531413119140136206750437568531764779785721348858563291596565953037447294961762486052301832070342014505708431032462075865036341193457604994135932189618623721787252374911476237366707993246818433294298400045704711639320724089693514609539638685939566086950208770912639260867558447254739152729424388004732363713155525407406237769560476425613873820304946757128246581824060771374973943920468859308137571458103562230579789718912632981909392115128871614104369533682999862360842218236427976793446654114153744824636799950243412231525849995087508889852166556884746634493967631789023080227814906411803974991451652783466194518331475524563142173288840287854252933581286292698274279295785426910654345920379206078918139569110883768098907782439539496689996540972526034051983093856746516031194882833545852404129920278654432210034766727488290271919865777957201340492932094044307502487897156494302868990773161040680067060987536349391943452271606699373596656180437977839025308090849961699910375620236492078656044854207760459455811417401900723677702309394675793544881332352629824446838660498732929460548498526907038246578711165912332248777707086024508996766979016531243170549566067278820371339735257536144079063783931322706981094181403407997283995116799809870722722248132093783175501173788715843782115580010712183471019094539647770288337828277857927157214285528861275484154495827382462657124709096147751051537262162250886177210868238357185143149147926182147217856275804566051494091260175405105343171222475002505126481253486700909686538379904468783276411023361004326447434547942272589752481913137513821300902543296416377429829599762533330450175266453564780953671463909917268465447379406931155346432011309079725871785604905860364633185896819340645935956579626603053715734931708719020853023506943292712449248463479875481883871675044194482476860774993501197188331240684095456083755336132798686385513849093504854885668597327103640853078531701672915348012127238784399308564258283923552086120406380788631376664766674890112726866812476908101330874268820260744048070201298545839284780758054595956565228753012018072004660720770281516969589040211969621852196266643886787525820377445406546921189528040490580407475395828399489060777095581113091903395027515480235701477868484939205750386310193151336765019415004285435700766459763652257313429831479600593397529605292351178914419879604346745130750481735644014258855211815133636569861093928552238809375328436906691463223272491760909521356346726850030170297205963167602459215652161023789139598832940436886332624606268806004179222828208936416471360471365505988467344167252266829538491084351020969084528952126569961432272929363120150681248756439911089813470127808516111420863465466020530529294967958527812664902001159706123218765255516157313720888771893962824491816444695162656805179323405054367483175799110942361466610533680800882971478630783156109790240763048223187657336850415510049647973650986497364530729961633439535494899644272662982655606906282423346794791185255294343653624736892896167770395687044203445915600150552984893754588060231463305268068927816493988680793431801865671642831794425033722132452948864253683613339723660321715130907880741888022912395614153471970023065753721524370552654311800045296725549257014834878677330034044556520483754037873597117916086192871101723996244831141934403087262496052331318468252670982855666469326150064848429482741173014963815198992984771696237802831656908951152276224306637511808702403029600270398383327846411725494496101107646715797357322957882643487536460316083429719844655856972736101343614208182276381830988331033379548431123932530956006295164538193927703952028255082382896356751234934780478853323114266174744279399756640035448127732293766522050313713252866950274454818298515911585165009335142098207793291460110237942108389952660046194488054663394471318924288397749660026387021686950439561655228105964492346342428532178883867581204830567261556776700681365998271227196834678243310413551584029699254554099191706018679226589653288807865921917024491010218427122978839995429817089589555408364837408673305278309339874059423971270698766701047690769856556658785552073230423357203107686864012865448006317523530023121038491150465355795946480052371894710627907631472943251020003468103356619802157642039770514034084550071276200939513591975182587278356229842797514240582013495836745629850071123231810150499742767334894549746919929129679794890535189125843990378204617588590490074796614989662874429222548481669201895545659056630804143202390959098412626086947344828731264513168331460552761394522209679886784624638600752553328313122264137526355256473446488837570991509131235891640205487890780737933676285678061258642344318573176829823851314305743059385350838260420678934879482289199412113445742823452906029678817296589928666790035739509349727143344524479134133729706876873719111846942017363590166865931057694104454276152991636193461161154670524000871697506704044909761187843993826785468386292555649754877777385713114853348210262426527534519019952583608567196065957181775793699261488561845397797084799391091775626587703232521478759488988835548189400581282072184303582594051714839116734599668133008296578061311044871889311814661753237040891720748589025821013594770905417653644113196254497378244008868142941903604159609534001179206545984558369247773640217603660712368734060131535805819947638269814304335834150692546203251558890729175821114682647789473802973388942159118829309373480319827145209413118996730056889957882817471516064826066680310991138198965322982877287319925440298191713143679792458457740101707796603823149986496632012398425932031539482591367429272602544420612228005729016897078239427865832136554307404709855054610434968177541729465488591480957731513128333056090433522120834823849548114721483341463797702772019261427024169448962827314992162232210998059412136279244037099311826951490140015021255670646336943603815828210071612130620279186490992932736220408308311186430144275930232554760042424733213070679730325642693330742633127744608115065642651030899889172098821896826964514300300236814244240752960032168061872620080756367708470412049127747580077437840787530123609422697393486779308281184799491537164397197887759858960169538778934499407625566817985964818272189144480029712260290791803455687620349033935413993910455281063346283856291499757238306756273625509504076236716712148107128240198045544546786544082486150453996328328344095400955432598952207794141728193766503785940592700960848459691158784320997895371594805347305835982265584084451704796541846731863964420962966376541812545074180332227391481803320095941813710000894890963262044987663497910433384661934624530916967578330996818017050445337636695836798016538988848768994022983734240917426800215321855186947641337127703962993302741492636162704567171836446567934280129620706068580520846400459214646783294187844662155147760697512019382242761639886759415200573094322827168943809710489477144613309808165403465752120557996577816365667633346828217438155835188915902603176519339371490151492985082205997964574279732616060945421244185999921734605677446003382706931637046734594817519717840172410152144763463729665434513814543886298252682890511318691193559827848273098755000431161719286676200949230602184902616631474538152768697877546787349548032992198670192417019881284282369476946844277307014799641752172488405299143759592012951066773953339985306829038979527928954569101894828580277088901887740463490093666105138977749454249194401220567695024326045059802131598951562942716070436534603310353367466349172682922474659500979304029867115636703440084449367317076883059120665504619393719155580629386394078844570564292866498664413004329073216509978386469474725712471373411696295676606699446011437975587427224444965838602190804863807657777785812118261272170473493376483825443310910829028109297636197785999250929370879697240861517733591575762533902249241254812429528756474624505998508142843459861856419316762330142670982389468266796852600259610374180931621434848863031545724489774810312313879047512352825266102041477783486122812569705484811114331720841508436122855681680245277689867315409373567470367188211003249060347495689977382236937801549436807330954726582486924689926444314107056428596217897363107085603013946220378831817328518264349154238147565168280488040024768382130484907514430232259924215906616180655497767138905325381238878249191501796661500180744315438202967277828855559044608290064566864574600164114312933775505908337848459005304101013458058370877062305130551076775740555402200822388913966173874385234722973639162980880612350232910722789184027372522053957947870300718954709040601973433601456471454898833170250614805609157714860149147576703349818869201157768683925797557904344015402105692054173749269093908543246549769367411318454094568651149487423440522990591406257245119518453964438909890143631017586798827833194688881862413707879918345112881440017263767835470974963132145673436519979962608254731048766943826527323083522016422999871091107556643501561356065852956320974284542460038830549723725318916262383307843643431864798923442643200787062909113743493990211951593263552528222014317604450147886787315473091265889741339875530013857605661070260145516995374785178356172670996234914326224884131134076250700615868162661211091646402231540575997591220630227103084458939721931955684242444834550078149077729305628061282514298073697900362452533630360096016740900498321882823175104393203128076217250580410690617204137355240296724752787548845751424495233787102874706591165987800719264674424396020277797728831164723217173202259621372736943343450129933538754291118953157560097429787434626520672959346333673393500462717419575356133821972980759751202140376591362664068491735641385928892480059417820718327242456852271243880343848166481112588332557361351643796006561036993589355106266651752257019126703160858227262436265629972376212764375867115690250959932407738973803158006480890050887396791020025752982033121233457515008630433907657014631845013912386828325964006817626361276118071412991668214064993488794398196159152595286484991062040630011617069958912558666769526967189498065094855000854727297731017409503335517450247209687316913521800245615702226123766794269346958308755497478160500730193537586878488827333163376928141809014919758581043182031432646189479453435650840413999605194089518964079986209283203391837883205938737258065784231474624362509112417558389233445184355396967952454397144558686462338924680126103612929423518320022897687847556412051247610262086143737828377892285553271231903687743441635901826451174820720929447784099734267505269840411998887663595345742702735214672114806026553731578343949095111385845304057956162793563191132018035608059290814797729852533227643098921150646463781903862875321031123794674956199291436228466434416581228281404722618307697364594917159091081498620213070693237624143642470885242245567870299330972719329597626194446426893226024500992879218647913074376732672707978058688221297591058667823457101624315826141327323707333099998898371950065400292225992679446990728528056617834198966256281070152550729744200900737788782363533695301215521800606949403283161225598920770310781759911169617198605604253331205705333092653612757398655859630038486754922266604880799816538306134257628106727573185904991759990772868668880813071095226140065229673983912917793723769303102235354914161269570244538500008524383373196809547282152754985770312581954873596106210731948206673984238393665937183942196535039901046604614362004631137780678461451322761221738666684390997219115915278208469164372225609305365797352365029332204053727641053784247599347202250750277114754096372938888675566023418734426074210168701098610008661322719003405725988006822053082971169537393254333616826226200415849567587787687396320466727767702310585457770884288975379385284134430075537253998821988438776233022935894387543509851928800994326388859188195344241911694541715476175940458793473805199413412546141240217289988094856635738516831632576272639005555239024980284628731846529011547308063980231152227275469165075924872443668274881475446054053547072008595835766732030385948447891143070458860560569190802367815454427987359851752318035258973092942612425339880375209401708258590640825586335357415745782275550029612342088418153802453030347822532301123531800958836160306752272229782042671692499599357133633587209255958228670174180742665654334685615441771384625498620418030112419781446923516869247047162101672392697983449624950738555069905093271339203621842532237096198767401098791914981683374797153495654619447833134004808183750966625473655882130819225827659145317026973485925525610309886593165769641403511697438496779354255212464473675284454008781291315812112119653842288569449397816002658558989822510976889750383776399012502339548245271506474730713887956431333895624711872403059199439537736792461906193484724035933301177625241439458340269060784065363718329365773730244189513727617241135926596317214392929708572341757294029160480416865077065363227941496564187382426688157415390747398861120200545088959193286614360809350483240359578043438455783408203883278172165318680548756072423232787872083850811223778573483937462725804103702777296181923806368048732291646665759224000435211274293331644425810109561046338346123970241630530736007195561614768221867316024524950298552819196249645431360454951299629120138782512527506636107470545108156174498800507649304843087688157233096221159123675556569979628645804155181893311938459320054392513409069407576322413399934861692426996563016713583190866995785198279125300909170562097583605265105176539353823094343460912309071053204430545334892000829053547671195669356024042153733544241091985825147796974005293821074507538830213954101192023743435496880569731524363788273839043933788407335678819087495287282333236813820446169257907792859831193215133000401750105220542030394804615028813286834409880896870055721219293906539808685542359893960161977104472429553718332651765552381966663333933070303773894563345383843467864938436020049472793306548870490681904360676936455143389861219439103392686779447843843780388071692478541440872855549668297746658300965184122172852115736310118625447027207626374929658379201462748949906323885823350140081917931937784584203825696034706944766569532599597415952683206737456567997532200757859243512264941954364826555530462765802203015110130510384896526671533083759663767910754585954087674271905315848129934502097090816735458753196764701327055166065781466216195798548846150474738026504257219000536127914688281182537680659658975697183538184718606495312356589376946599973712281293917392535719241964425867048828543241652731137206816736703570583730497026353035021528182369767267953461690640750591634626760304805112101658283107769849463095938379428244827568691843027635256272621533637314890322209245182918258478415637457416878463898321436936632543741300804055614687097757425366723047454682368775506685019359590977545537689901383031112058238455965918120561586685036095204851818221576794711897658869371992237211658100759737344172239616773772709794791547334204322903244425389634582076766767196560922413665086850044280197108644379874126659418079583518409680596703961874915034665584320587976838094230748345386664526087880538704979674742592562218840821926013623951205435296521299146258552924980035624149853533721170571703750390367858186184907181442585297770728769183200284433608727922398676649373261176329280908755273765011531756090031459929793364618227423811619152950047353619719525397417204989639323747985843262414410337887932830067427341230164327060145079647536233138549050904587367866404507462785819625818947666745705829584329486502941993037540602301233194439408183365831204601857880579917484298277948176006334804849924087834383650137525191327765708600096913968844579211034502372729595394447800627842437702815794091556765601915131479930009625652204760387686699582839586298784459304701402369593940875762652839035938488581394344616178580667161204600141088350841466845732061829621301363574471069802409202354014921052467944656094453958967877208294918090430090452978171425633830357302250487310770493378415368506469831234038187649266812349214041914526662863946919404467571213705021918983543732005365175744269421634442836225853497350522800650513364202449631355771728033542301003988618983828470852815108952304866986096686567148271305823544948777588490152569331148972752793189449014247746410132346097794040067586012399996831496655943717743096112277760250432328962259198684599020336791582353887598108795814444488200879242423042190299696336525795875980034878647271242365175018661980551334285103636213477379410701739195520753540306687125146659368452309423054523271954175176600157962342674057586077291648593263618027739050636398315949264471326925724345210986288355953031143138471578084168593134434366222074444721102453013737557404128541669152813245405632115879496076073618946995742276501027304322658728412587410621634615438217996572102185144259338694510725939644295444667813602272242384147673621323815616957064790706926704921190001807923647133652294081491169440146512629074149735243518739878508198559976717150368718246080748365285829847538975347472088453108596135864905406481196418607950101732299730780038242966880541550774545328512593137289396369202934073267550052529230502835283550456977790472971705113529819122283181048349333892047553219911420131453203154849037569229787391703208830935550035165278495437564520581763900043048629493902307971403039200503953439667270661064211619780316817216738996309439672896622458660131649481643911317380543642116013523608193902897215299131811748944333428323796416075154958398439717531260969286560263451447903779467717463151511756829678304516622133531593181530479979309027971593842705728879892791276997461371024279326834739249863235480265747468101891894860690727509485032413684630341830714217308096148892443970285472395969352937726191666851403842181586184898941917170413706827026244732141606382857948147506788893527165552671898058329251710860890262777066326137148120023322089088672552653983626523615646160179520107214460514638505396366660584243047701597027005296382238593294385860336485769033067803023552228789920887679797041073611642666012070225356424748392343093181491720858941236382394822054013065431002119392727809272932390906620177750239860089818248863200652916986388104830790033632135021266572456712124434080192692964426610647542379707006271878446312682652801356366529898593345830709114651252444451296459808983258345988081035527741766930284710355152001205051494806760233914125677089186326628526894772080345618541629987509768358674878317531271067315233389806287183543145701285569226526224546728530500257177704930268240678962134244044694373439058930033204778974576514451539331142067068347785097777069753697128523805236738530437221372533204427097139148088082861291321794559942658531082808832360197770654656824741124827454108333928550519952191401148993673063422121289899976264072002082552962198526673439329535243107676724948425388816260701065530576280658946602025435981594257134303695271644500714348638756971200025776949438111330098478032110101129467408044467990665993846627345733758248053634398814045725403812959258208524244530480159540408481907367930686397111077374317514914963841566952019893880429025116844538256137479939051033737767944944947264227986583658296773098030954245907956074862112162352461362273896500169178582967947891268162556499320611347986264591252908310430600518278827433361536174825637723891501925180496054453533209563019817458658649606861905708019392836349682840969994767341176536863928350589721434652073497635052605400474756810639419247798302664799111373815915527494242332779733516493747600302771509980148288902844762332975333143142579868956286688680321133314232357992692239221888679562434030665947684862653907577906922746695988420410610941359716075881596959849456359535737188164766382091115551284877309689186951826446104883588852262261003010431601477431563508123572655457192040182860175361179492564126126607189874274481117445325732548176391928838202042281273187133883533674985232367937819292886827003444638276791076522813179171082062804070856599243412189972717101700326192428860056555814643513054797637952499739920145810133725392449704753503690769260067050707895093906519729581689025510450923453262589930488734711669328882837191005648136060834034409814304040258456693055643640321644019435604134673852575871486555203620010818544788573965489474367975217733407220445779169173970655309170147205017449716586414449956652610984104395250421294682580908298638240142797995167010816242807591719109625747086801472311921102900317350697254030801291418966020886494949039704877601013895622271401998221703833862128471586024568405196342703982507579533833764101607902567898419395073061876480625290576429108095789334587769148596543487265956576670052646077295178972775554977087289075005042483532563871462202099941643971057219945601111352779930835277205768922746650379921337287634703763779688947296805980957451143909572375949444367051243808548617693456128120293807080898677204536716977636114446835837965997869245039695801007428291944435949929524004386377512747896818668608423659334320039987034296279448203184545450798639626194326259956237780909796081031211634529005236789178268974550868068774640496151828232259197381407508143920280965444247302422176573866230378132106691289155043161449884447740373916738049790034562612370463784223623160796555070776618752882750309918420223365032532271403009597942234211733817581662784299179411106192137620944038647251360518195870124262550666452042273875180350317534456568169304298388402727098803042579861760642704769692990290870420344285219683293299177669118613011754009626982145574453924912000748987370595343007015912622626192831696478687119443346811774532965875687773869083754163765268086802565019520095174503030941569027940819861076900318016551251527747864199170193729997760228017464131590337454048226933158391149619802702282598374427410283780201245198049248781647003582080182875241771565946828905709653888450384500295607196172635155126067516666122078961689522134626598801400656374478883833836647546922565042593712713359180060872253584608631374197932134485080880664652010920001020672845190469127943141553385794788003099592179748578229616574799261063634490115461477421627038543259787698207582719442215966213186235012090265379325623806146568166270548001140593572972270176767414101453243230591382575562537397296995352321120294689520474137744138311909542959245250373515837658179953167981704689479856268173931825199147826010267277358788609190690004992406283139392122835339182344076294391883843323152484069160473433010843551663181753650696110541815653728460878715624301788702751120506129112477162531342862720557373868778707152749850917244610699223433336818623964227606008578642979091688902839125438592521510459953632877282320991687509571710201889757386603350103619986752993932887587224068843622801685379984634229295554247795327143277666115090652944666828485544871892639841069882855194496390971285207373899499630428324859834528827027005772660262451646277305612693169747040098093841553039172039691407594333384599737829238164681559651812683263649911903111611050922899922769072449212461199092410073601839329266655711582235247666855720205694244097271339652922420464292202796678397596603296452496500875548109860628030008944237647116804056309148432260278911156167505953402321139175245931636532028655657885741544012259314648023545332158381866193432723748790539171305708329995335702326110725186873951250332279639556878735967664388082825232025561664692073287904072683990784454976760770998371521548927434885668422128052466916594287458866443079694369016614324418636448485204054445710331787135758538220652720712303199725205723837156932412990101439703753743639762390091431037513829422231822214534527172447181838395406659137336958959454909229441508331113916411153630738280347379630621874528927041828314901679634474277721845701889840554144201955219821324925261808212243009421578486410324628748396850478077880154872595720284470824203286079793295157259501322691619560744923677678913061805649821354931408682828760703066647427630856614834758808504680359516176969625214914136520603189702213683926589112690731117326245895072086816823090072776804029915927380115310756885898935774472447000685673549290646773899797240600304259078936498229920307928999358490942393405777257209174167102431086637221982976722380873711867076071821280078892114916028156032531249405551536591604749960807423560164734178150132061975445691955773762699936439393935435275739115150383275948957174336884753557747471090681055015053182691538453594506689312439299264241608126598289558271197262856290569227484908156729452433696766934452437157185125851487725200779191640062649377219400220560001300306591006754613133729576916090463814528049076939110735552510551673560062764413346080861438937746268973464129745179694909828027904474237773979700600081911347427288233928270454552251600990192514109255608573488478334973976437689334215154407601725435574367554200752399492803221120767502878729803046603392715849279808966657763321961457531349716512513560388786255186415850305280772923983389425563492656241012897992318407348936447915907142454179696140412102834174505146542595298009057357162899668397397293746232927034071349326393617376063688746211461477033222433873078066972653983259700907418337437171388031613128093766723756668262589994597809008954467872638727340379542284848150102069867709667696680395615272143586587220664130523626815322119763242793260832556432143804833599180811416078056489536729541594705117983241076925008750384665359564764164049214819241380098769479439955888968393499566887810088595668449804648364160423969823721761729779976461712766912731697651264153835811440237682544820705511899008727642256310757939482507857718369701740663137277651773557881545579234486422715133612591841589371123085236368739008838141697865731125256793186894999047515101781392065426404435975766547282935874310659078063609620120388416150152753953658654379688081711115196166482672146477548863033530951755810236898507169300692230193740535456909031061839699185691382483599538555549590736410719383273533760403409182420806257213590865299067998560490928688345398507547367708807884250624167458084533490386051334381620004764003761832934211144875103367557696163668726275440097430804910347453880430498579080123843851164324774333452740790803600923122426022295094842618427094207610017857610341601275721787183273316834200777835385816770574676724185216737737695141872722752765412018870015753319366984077492110273927153433913418660519885917236381180919805307612847540995445116567906711802294158475244960083777243819121768819318424193876576047045636750017825276838390561556348232742977773350995443521305736068233725569340048300445084612509499329434504918392426247603953604953728479394792478566755547020700802926091843105001035274954865775552115174415656081505168928823877665856628561061918494562283830227904522630808024437000118945953721146209907382874004977286498288276144097950366176145499256914834668583659340417286160536906629898164939285215374285597129638893623325839330096365434141791427580641227338562764414883909068980882627521825442189556519225788333821484596751337879285109051589392282715816703338102994938031532395150672519417426838651441405761401883579582174991135457901714885003549271976929539769736315735460608925330848669503963583556975887152357379956218943705211411775453136370353998200466886376119429325724618386216030237533808929454338640392699006014816620715319842874374199501983585958610692585449281279674261413795955790155565796998411087498185105446851140800209528470974032553622295787331881671819853436162122067158597910820128150243025736305427136454804840476777476805232044256745279459235687425062324333499887119789215298071822541594714118140548316410210180258504787554824749028918005612402869270946384016097053680290474779010974152348701074974871570005104513303748887193060551760406936446698776338846853341799947289661383229380006887235801185275229184790295935115886710802329095496962828153904081536890942981814992402747732346968782292519240993817338819799994541789196521863869820114881746436279517986315017506793121585025923505092335897683703869694479707007382290122357606710887137668171001695007296056264930868581649982489084473741836300402161211326884492576983154881014491218543868852950327275972957128716028972786421414962312015751111213818324549492250996034893157041754940578166465134736839920528428573458177877120455804314201545171611872975819033018270864272888627318294891885842918506758988907171968341693679386213977066544075268737774344176146802778664809684534765486997252118437548879681244787625609348480781701689743336177096930255566569164437842261521427197633099387276712390881227947858456433540238064898336346645798211320274880863745236658615149103500830564517003809898564867887483650926163456616615482313634385751373025531137918477860491910907666377589408364605119218175099933972032442321297490594339242172585753067274882412795518327353494211556116720567073161306394295313034670857575190159169666667996783884390456925721329625756682086211227725609646861387662914353289367322582116111750754148215325210976811303880732165351202862740218082892793498395452697323069908561432704963722917493401785590954603882838974924405991402305489814657354724938770787584966659569255742908391478558459853253061865208800407354634980183829373995882370349759718276271592470549480570962935877514976977187561028946014424490419821908585500145981262901643031851866062675287647780911207899861974560443766684226495566449818805774276596949357678743947363524379474941931258878123210977659454116134332438984571849264575923225955529966124028766691250330592130726541656597435658517247796625915278368185741271447192565520017107173332496271787301020891744692744352971124493012094555170273257160482055982705879843624381998771160749404920777383422516557533940500471877061916432528595270642710342792041728092426472682765059811578576173668590767088962137606461806030247415752860472012552071044074729346657660425397110074360890673401449469210656929306914708517633151377919736745515051190564396850987777008440550350141078496936956502383080847378215683244483371351344571205601228343547452244817273431052716979509715394277038860983079575583258465312052224973104085963115541223705656197404310751072479976778139931771295731363467894643386823838948784414497283333932141410911700233742371579702101071888629227111025261405138407508750396083263383780069235792669505221023415779198857484092625562219012302374409391459996719587555939036122194075798888730468963994922484254879817733875333036542417566253177347947648987982913375785074112669177759175181457718165720129877335202756199658196529527044955891309289267784095778537506071615858303890709083728557483782413036428265950327280576410999331410001983219786019543591241804659019364330220791467570780656570707053052390427884205840661232834979139750972534623336585384129220225425670774895121529909628194381029912368687087927711524689776164249398352488620926565038637873575463522467728057622999156100109609187329546456967441340969209781905408920236226727715573848587586307294439533977412326372123319702337951058497999684353558378942509202103848127720352720063948142601288454386964395045213824240035399787218918294080104686107969438877489822531345783485622781827654305140467352074051776471825389836009089825480570331416639345587411286177446592236927671646047674886107160965726183703263571415279817369179741990768651980520453305045338352535942229908896454665399364120563231462442816769050676174412917236706233915137193725301005303765666231025223116955961964558940298885946270695901052841524392225394652581986322754288251538695460713506023908986647778748690840226580462313462297028806612899936817275174342620660723162903214917476945740347194023394018919543797495247141666924156064188123669942538264846963296523076449778563741565552538112585582828165832548910447381502450629580322530348825429105213832557482582978029364262710339779527525274252194698586888643444114481792786569165806585970772358105794160308990955154787446317788720931525947629048042317002905616533681838275867215581005772017115532442276125876909827707611658418104870260879064881493160202893560218147681308330460476462827318586808555823064952816387251619649066098633711864237621778834064409878097227739268479330225190678803879069005503676649251949496228513730250241853019580861844238881924782879940609920032129624923666917678433827546542145555686003836653062420138464784977979832089673403487482480613656194366885554871167884478832900592220365111289332867569688563768080020127776313639792252705478579503186060453258173967206307389118649906186398942280081730555181554223125948805066313926710668647119560631323143099933112317992239078805769238306999357250446952735281423644222765033537446789382694583960323356957041084745586026270642610638696339474952703929698743183166806344607355001013601956882818070328513639747755063150128392751876084426840989148389110958358254762817628970789184664156686400170060721822126574526631709480634920036091177757796618034071769225247706090219736779932246330613203002595390578528904325058440758468161865410833640780012074095604137945619390554597134459368689673386080181388373727757834481063025506847508936067670191833305585852793338146802493613876340759186827107681919877253472860757487621571001776578852781756663855317705481262121247558266450866624826411558173860727803639292100814138867490736011650909046141782854940410995043975463397508753950565248844536604715329623565262699063394950066080706320319030791686584549651499755552477730495258562361492928793637857819534339662051276879058912919351005527574572490956212933827844230221078992505847971299115668799668146619506017009786980211686432332928670307400139762982780975192767051473357658447129195485662938185722305084927223089795654196465985627186985058888475107158377866921004868738672286297562236894686338612223326460813852452945648933208953889013542081961287316540121093860238810919334882471720752996473016275076532858466035405409137631458150561539921222545239367090382631687187541291348350966270461223705122038947151718572267074069617760560409236931203701898034019779041624275993250825032232374131575001822469019258100226722750804151728875224905963249825027590474055749113398447704251226083735583011731252791954972522794103299513500044469377261365598079283919764307866851543215792360772685287235072904072926002415947696108684880155362655580370889097942570295681342399675629135596143305453638185645830734318334792823621681728732128166453127722844183416840338914901341254627978905977009337338876269476067179263427980941802019539397661847908232800870201772166337566896249960153884350532595107050276151322871792919157816642645557478847428601787463665092532995702160946195367570979961549724972662504958138560236871749391232613777156178279744514370150592351665965080393413501807740495938306363469670630360310428355690507555580061050777865678349642652599982599711238037331424715575590542885657343822992715490412891245956984743933397843723840867611706460326792399180105933479710553460544484406841153094514656054503148570742286910136682178984540883545856847294533745431412258092021555599533266304061326458005009244739454671358062625285529864602824771341672746489273164524224881537591316539697109720897092830760671733539064126877888604529479891317036645716993541951235356343636132592292716820746080537675451959917820121402762026618082581489696754166812326997766248550744322743055697538492810465525055417589249848115660280469015396633152749725970670371955981128513260624384396119388586713932050792848010043567582328595859262319136584298965289036073941513598448940858562339022814837535399500102401147640748851406946890484950096946240105246647673276156424466516273470747039512743908598645847069066385555566604824963820045272549631313188992716446820679161466234419016898526514507069904415113894952951171000430070639630356911974689790392751611176772353405485609968494504575846495650047866111445636532911635960638801428253558156817586185115787913674344134067333542836690031248541426106474017181866657211762911538603150981434261370715466297725291611300589391488364974069031701637885428055185996368584151328218585675320998577667232196918462245688289951323629787443584604738446915678357526328688334340819824342532801620992649090001589863266009200234134266965832386478893752591610219287539101724600964017656886310370313007231871247413853345555782108770838697715760685708107606162910764390921891651857452859491382777251767821285721425049452421532396021288090958067148456544176746304202223533037426102623768176519667435897337478408172722017771453507001333597784562161348515192015720688463035428073922216881811334835381689825064595575302793349304310451908818941980052521695817411342989614101564411279367428974674795171598817917271761672260609227905231894693533715516901505199083378202602226878781370627424563080656182071586302714861472596175688465473981832677086829271483902215973462626138406262608443040738347249747137235998903957773885865773532667534342444366906119833488754709126558600724476668356058647330243685046154015548923205327604223536666546674553500929195471392143670990991023702786202272116581589881790501195792573037942485568399940819404415977428228516493189225246318218116292480155179922627324628901707802223488861710062097315461500454597969897905583494414276264360991879196235859118229527613495794124004673989235267196229295466406748232891345524362554176714525693208566118896206501105094123799354684679898096969016682808439524536629704825273162473573002924608317066214625748381411471616747294359749610766609752020181191448638160831343056841730672468494863244421358764609032777662978126808370198133183382142729930195642212733771594152012218983917470146284677297361681484104239282007008994185701781597971958755320861882295291273788239626454116845647419682221547017325535102985987320066643694616251366967211137410725923387128939951781727132459434447035839171895410661796196916494991771874369539179731667507712705428900384132473817419737015540274483589490002694310586001785237726181896706425008000072520932866624701256015136214494528625200844386269675425605130282280358674661026082514875399956026196437236769269266422014502125083707888660160926950923251449839759316653063555794471363981175598546740817085714098765252112188573978550158833507811633283766186487986989049570603933378741635365166585100155801318069264194263261182834830112780081031849820660125423145247420259966601316617954505268750025308536339821588759865578707532612709580261719266091490658613178630247750789228631206410831594331200396844364591324628297089910058082892112596258249299425112636905215645870014401371817745630319775470798856316441797658573859396592291795982998961053153077117480086045718986972805951767477611977321580045001585165681939578824043694359362797726483214340015742882345092385440266139596377124910059282293554424612434018669023687254356373965493681996561195398817541747205818058651776430734435763599321986907580190625167089259173390486107664012525681206119895071026510124012999179160320121418732198389856684069343928939723172993679015966505346770793103982006697785683084499764952276686740729992983763738543861714436973026019363245431789036667948819410118307552135296546810843567207069712763637715341828303589367814195191203257514763990230436839702931390506672397194836920488997123039214177616583703446003408540057063812321608897507735116323702797466451731442195047867453677409260780923645890688852963209234272965459662333384259844868116073081120015394050910893355647260389922382106844103685863362851723714762187374164717501193979233092045782790703736092169246802652099839782653883150383956189457056952179436327504738432641997485732670636702942989733827034968236931842498351841263316983383620516570958182820122345688649559518275539777987031166691216374821605346486663374877664920636676224464928652883760004200258296277000610994422670605183609361754619213905388214829675058155845279220954494003999840137998589527076681744371675110846108358315199240978542420424839719197498211765147599751295293023810957248632734634907014601395157125138800233530863613632015956792319173549910870463353485891910379326254059806556644757011146662032627185659664720164321449439950046069760618930474250258276203399237528274778440251849190999291567585596992128919931433561756492245667232956237689496471198852649269397780409481372291849187070337508416387929044458506389787335601462558282280839905351427567169225223854613880466912971168064594651401222405874378557039213718984269211277753246329735662870846544230723894133171142621914008927966495124237891279474202698282217411782698438959024030771820426822676584298048762120655623793147694633366875901536220973928719170400362363365871140937575513740609296598251679347074112335953586876077253763314507320532699249199915594186480057747842456540240515599113200466040424500781207894789326819680944121228082636517256297009976450144263974656688874373445613607256308648234372809122153676618368757296774477847506950867484413341542421431201721749451763758940201450304355501089696779993061864222794101014494512886830202651262335795928523087988466439885585891909712505078701109464523566580410560853718302764536199828456055760232372497709070429492490151337918891607751887277938215147719986330498516331122509955220213827804606148347195714365898333137919633211085229331741469635366429069773947314032922866927402442478140352652871264573561750662098533278344453864524112169677618691942658423253803551034966700858254424099040285242168957129554325857325086070177625141763821187843680338619936693397737858871901735057151019654911122461951967369790451131438381836678858185904734397051394053598081609489911528372442200542883740614771309066443964860057032264102545875375478701702100597029426412438504955232113244152879259982051831880125026015588971109947333010481712386180470112753605535960199770472357690007445401329594328478548040163777883549353968818183502895527324509615815534894888426617225405143773217917103750684211175495736556657636135717403719808172402949585191872941594744756936348942464834221920572625405122307569858871264184768577896110761595262136144400886891486396824450822421306949281637479774947393634045430949717158483145951668900196047695515886728606853674405372342636971047618475642683641604227828612020510365786014930929206024465829846205044616885002645762565243249644893456458288187180147974842838528318754713211572538232096281183620907981266394316173309766655967114325773586240145113770592685487328834053034781379865441510340256953066745762249663605567662033145330060191745320102459789361410099985359200372995425030024070582728765136777755099035830245020656887366351446681545021563616759546483008019582681299882560460502323367749981418382294371318758089765112603529578113389788369525434123887284051847464562969034832531970635626451457381007007199881305398214825789605052513864535775777057222603656382844333572063128221324097064973527260857080057067320608270948946073453399965492601591995994204438626394462124819268562761652527522326579376913139835093028576838264949900532691626225649548206533098883704497084693006703641237223356156246446818296308946751646940045902091157675207734687755594240660747375643242393514705016849855098541593761618054937131890478167858164869182893663930701302983772704149047903062641259234868381687472497030247600332258253234541107802580748644250798015080291794258948240033351163948973014258409057428763598244940457014615999142123670282711671565644508884205765346754474205680793033052098316721514155484793049591446289372059925209703752715817183031300517222198018065098423581206980549930590700326856070847086581299010313014889415928164029095914116732635744651858721698384217030381725493260177470065699475811332483191539085956000508168207652454478931386414916336847272245280471657692558899409754280527111069522492717437086788098582440550609000338553489446297987849108858504536306187657541572691294177276326137941793572811312648451225235107320764390939710920486031374682863680845829643458547980279565075382505519338873523249751540962065313108751052123064226159865980167019499821099314287820155699685058527312826995352493774903122656755358577212934397995674709090146428210245870683098595095329705176618179329345304179112434462148833355332230030389388519498066756712365973801884101565176859645852902370423943008635342160678181988278619664632800663789805361273740503603878107070529296030740636731902115731794568347439248361207868825655513751199603498448348663849848815031835223070555799513488789829768991594085520389436462879342914773188956876563881476902411219404525233068875823360747310670640307088144741698926883321096817329729975367096089888531188737878629862564047345820488104332491878673109095944721742369185309768399711343746584396904737674317460708094367699145371870742823754340617549560691808193901453134012591020551050896432596940122370758039176316522638869681071598077734499554971354116829898630780505692589664236758117775693337545727846310161157728361162599343455162171431236652782928509671455219711457560949184608643495704888633750575229302245043733748253219602153550176753896300079292506173265032949683036777788045999131478985779045174511307231783600774277697750935777803965332179978429451949577364636332573290737259291356269753705636108187164968301787326178132225270591815675858594384107731980769665879632232457835156362917532771402357117552720536984227525629257965387268663277308231219943452348806242408707601284188769563929102941812335405891363952457262636885428193027597509831798701906900874504318960203920940202157939415073591925068426103662717037641609192991584242493936873884017867224771611016423553468663109430198590147900508235362327293103145121100317803553683447472827726056688432094653110373929480327157113959208818515108659442209984606995120308162118013650883207711168710514587736991648485526214898390479258516008918427181689674094570422420327378528969512937118749970151124971510863058691462599571781375076928723889765483788228269363624104207336559517624276540469909438776133512466969151128140805179963900946616903274712260951133152191539848517625343871139885747562270140694845994542451655310266134982498354623020632289874806063830233911365271598243702597824631976462521508617001695114027039530598137508510675941679527576746527908401207792149742776093143896385505316086166453458903047124391324726672036759684846160362042542541800177466181781866492087945282200264480278177246721289534488514969269336930652954179311682930875794605591974600036713608086090078446779618827693047562956409037227650586960838652144963476708480148193214613919405894329284209789440569738445058184683745843943449662189801265740523065882685110171888832656335145941591106180051037405013265564627270591570977419963426144420665743353026408500673515620025229841767330439728206500611758838908537989918178285512457280069272140965765332911353366836195610001180284226142803134365751630161456847047965640028417199916135653150776551046994122852681452311606147657866492782876148294198337051551397323715029950592381344528437072605101952514756565964937097174479786232544332827336959916745305675830817534188275502292182980413979760544210250973817161757897208851411554186464874689303664520264273756629554774430371836136011873657653600966615570659910378920412879803479938063266883220209802643917838412925910681588225546376433698085908366162096923477308375999069439020676223301348940947407553683157919345819582727102783716613568424957522758428108796962160624011964750667370233690876126272878639518934310308076781009692376867786457484074768688049462558044101018539289107020579424117058719207053288890473323378166307619179502012896693931903047674359819480119334260654822016632468869324272650040044295759752913406187975652016724508215871645890100064405274378939677097174329909486564231405523836939829916591328634324730831028500816081970694818705505038134407817925599709171197755860291394801665389093821794428840528935489836556012094515146020217006102528644474276854382945623866097980640058903622981134609440418054780263960025689263544548528139803227683524953426782530237424327661145183902527348388032437463644643854692567903650091212674274838911477295740059995262884934632869908659117644799926329586871026762673118123618998079497966226841594726880213565130460358216981468467641921796813861112849080208463414601918162266072078402848536655680198249688361012398794266049562000035707215216492836624872858644689788060837522412335353705731318980100822054075752245932437330491994519041748465941757869837079165330031259233298275118335387715973162196550990729503625598611228551029642096924234011262084130893636647116222258436381049979322497777337626672095253335911531959391326655684102052656540612028360157066018561475576393048760649725072006784458781381913849623021864234143607030575656455248394168542373837996422031179145552659275945440126686415677100588762727145368111913973110611167334170638490254533843608138886827530304572162685911569346656304884697756048129737271808116641963539394476308093060118588665220274904290695571331475239419456617783174208233945105116109406320551387703905670421960911574457987790115623389612834515377787287944818998590340328978533941023147766469282662083365162495758674518359106069832701886565627829809163498184506440555529140687126690225795635294987673779150416399808429571848391398868023300949968225770313086198851914075052971116599980860638051514496952534209101706665389027167607657519710322811040683903810290351894845147573247070864072366310126504267092392325401650315597492104874413151933912477659132735791091361045005871793415815800307133380971849672696760330728540291365623203698999930214568064134359149589708980566018751367611502063045209099217122528439006686327687908317462087110656528899998537625945324786124963253466709836797811557102597145925781736797755963205284530066397940342488962733267026753156189528092657108309158910092886977733405798922375712320517313838051611885717474021409908629538494981341496139058300648482836625164169887888686162247387504354129671592468079296638570862145558535642126277154010697046936534187515613852073491254463857896697972895979624690511037471559036015892072919710270814031296584788648944006866386771554944638653276052489243083497285949871827633536723942117060747299579356607282229808652170961572973089219950549483692565892908447463156753032416864174219105534066325604877110893175504630257719473265266561194735224692973173622160466698041971133873286698596446794650889801423283727790083775134679319981732350712109807822047685025884167307703170290750551887274056188755080014986712876721025904282419583077180934035139586477928238200024745247723228991409415321777128522634797583368501803441950290955411244320551822725738870416056691015284077109312916442440428570491435141561257215282197487754095538842059087432277018417922455979795485794709022377536137239547444507887960507087039759223130610458326553911826105122837333619387302293358241346825528383583743289840427227458077610559309655601673272868975677828609638431212269329599242748290218181256330121039472411287480231625956124679408691401962186762501182857878136943150363302991684297830519583681682158437359738526988401154359197555709929104517039835411234188696131908484379495244585000813360279899307757854212656941308293320161946515070222153163984083789473365400831787710180008423610957869547171158025703860519097307823982439040330827528314736872618387074747501303206189310076041974465104217177113360765273964905015638173675248987598186243099035998369635073180498410538083866964241295092463963297977567479394522282803384702986448017876093948929218653317918769509759125781201766560210597745160556243473419758459385128286377571261955267903747032494183054746386064553046174262935996520858054707283314836285263632331891239281768963361627130170130073309782305919995806527489323996940173927174121904917817231456189127514959816392404055814277907952418061136237974013661616438574923448835757183775194970529182498497761456643515643101907418971440543009963274503888885439861696652397823514819486560017210121777126114757887841794807236030871076085553106019879269022912321313177753465317326329496772405435567975486584351520181375536913924164482643374376289470773718303519839585281575004111328747394257445767364284364219936709217881285445503176659526949996052590705024194042350496143039820555105401143496816570395938186567359762330469634842808305203688353696189807015306273179769341415899690770041334737053104170090587393611567974442158155231855977850317900433935833306854908624344938789411442766488639376317787564639918401394402680467715210368573407518925594523422959459026454749060120257876414573376697849334757456673342793929803616176119114758652329562246815479346185347181510020268277071045461195447372858742059575486950653218053093702798049295238878471093359653798080021071253429638049741737516595876000575612466357201640130281309468114066588094883932139100073680088743461486697361870457534383919325201084628069041695351822619126599626784427398115999104595424855303967378200027726483266725339678759110386869138279202766293904645143998420995521298310261580695506414815496050311064990000432983640719589890717295700424607221771943431843772466997160533274640172136218426226398702951107490535175908439760430153506576153275650761284729845163107636300559548060857136115085007483935332777521465249606527351835669000076931858873506441134303559139190083331541129332775927464281104823584420607876896335669166884917700088024450381850983696600283734068673956124844106345463217028990433297516044005251058573599376458358831232970589251650312800081300735225384756399304747075537897816216493024489478042071671673858931962574041904593267722509835711763590187411987546747719349784872584812431052907974570503712687586176997180018995241457634760505133794964990067991897342927648992642624385231716833791266701864564242254135130741009631400968922426311546034367882234310192905911948290166593114775711157197094858422394267378710267968371368476339361085810526077409824962935484004978589584976384277333099949629111828108445595923574940615568076071358401708495279460428153363372480084752164972497838531891307146234608518920854380237611121255831482175938539857935693843416447767864927455122663372239020082120806911540654769552547369494646891699897614637499017787076852022196072357176838862774251972575257541545980692042299685470170314517005764838780865985438979037665340751370434209814963264968387089830798664134900133753022410404252328372567722095242335860311994634265704825336502489161426350821988457488619823541714465224493819207128651720448788423219005807217593192958385963435054058785240090849757793163712965813543753574946586011434219489682866277739672030662764704533626186572721994901448098448191883902594849516319598999314623216108824274009936069880781123283062795615616703880490748432998737643448305590869125508186016485969295857661726925883440087288747365944607690383475314169802047380249184203567701516941149212813136758698787240596064977481636628030711603823942993258311530411897815962985605075644882406993989765846520793514411529244431077513909851503625368853818331557779400186661038419859419358813451308755526943523483845833328212798635032310341408745626246149487480630603790622259442815783585843806095490630598327963479167228451856939323250995914132443838428178710148697571825808396995774673672028895718196564714785715291102350264431190003268213501303325103810463076541573530562530972771770023147117199713708676671053841983174154137023718193443366358243316378706018727988278332069312627040773674213200422113615103228284033084954949472891312600341055619836505674161783344990459855934728006565954582729328138950939236410922778314481262238588531657856346148604910422007533807569998384391553624258532065769202343956590022504362464554044229284752633571826902486599348948371828270089380783372469217584372025691008199930780531120921533529264381945843463855946080336801572697905527784981924081008022280051166954371803656708830499777161017637003816013471989704697419569597549878393631610520154123670224547549731523349397039616596326136265422792972994410953830908038345926725657271535751657422432693575106056672403123173068334261049429778130077702355601503997849786425908683878874103590277441563350754072684622587318528129941857301708683205617894121961389190830115521498293680418263042322499405093710908212028890105556385331409605162794365337543641743602086266243018534848048476492355660795350738708041240772928658912755609099619626864985822660416221651085445666845470227041797211976737921967082368757242539117848312186380445219220413687982484525396064528997155565782548413178143185173074186871132550717434354882248471537392340884407226929470905299387299922159134616306978467416036968524836660779764054162333318020169941989769324261072681338863337328334836661180591972227798300326448819899920085792311476578995665250603494911442718047635896435209252703310945439721172607292402842474191768611363714462599109365583665179804526897756187975395201109982599045106750956914720559270907595376540158484003806024968635597551682435320002217686055414091947142593313597995962006312940980181334688177929027476004409993194144200679953934097440646144020330494784948733636587771867908222481551057616643555154475690365164766732104312305405396928858066668844944209041536415591837256189101482721775592563107452127034166867917701341563579920506955923132121965889458885578970787575403941132222024608878438653401263631346644665335286022409659947149354888173009331497527893146274925765269142620323941645714268687022936535770234733462621127615394245356540741418283091451402314688942415701584537640245477552089116948510286260807847636472448065173108922385862149549249027705316477904540133797993568861050601879971462584136744171107882042524691292122168317841632254325882367883690762415777526007818579650369647912042146143173021863181168193060811521828548510977032526613923594566969011313558329210695243160353581114692247742987395870234024764157659887810789347852436895297327629900042381187601268818461521237386731981025547033011509156486429867215162845190976418222053846551689369423750518974650795351621679489596996348892491442207565916187743871438188574715291678573005330822183995241288032597582851081928809556616259613857553120150044554074681144453765013577784956954088525741790300118918555358020509623156385215938339806717497228329679343849401013039346715458353408632293288931793484758060311862022745557522599787847829048272433827422039684387305097481283754184071244967643563992612623493478772584941414965748892425426299548890567694598147233645485965366039035545569759251299113747559293974920991183302106061702098399211686146111465787801702118089216085692400601614489891915754866654507523248601878187842927508973165841069472953404473253121939866023535285201273822948428474753479063375058017488743749867898923935125485975138035604887154437442444076882119418355470795183244534857386075057366596375230702269040237076823296717141783932400711866420788062463993652980839974434659643271610658805763115529694089043622101279211928653945085433027753635661647403602810310816318361099329744849010113010476239634279931375003094526549416425482904615574738681224246328733433563427408577747342706501865453361503757311021406768199981510781936028654412672908775932247272774284993957163163875315553903687370774230450373104202594998558072759638571883277375904536356230269316605361710796803238094962216392581598503276575882907518748470622267745186204719203273991040183571955890998469092411349039858758261315527234714120782209949645752618769768266435134993907759138091519514488030079715341856065829853205448972552469656123818638985054141380241148143988115360995861157937266697371152341153364803907751396430490043415024920425670739214496433307701848403581438712499437881381806671832954381970741558090684967902424802235031388224451790542363098535034335195885199274457406143526124168319510014664149879249946609933576095679859137590348016791511765102477586884689124607054453525802991063686210637223004823105941045175965443110292140359724707429508007869711596029988552772297319265673627772628852069117753336635873321237206331323952203754907163063969822476493456563321633534300413329502146799676474406250413148395912591071243584690795953653930577921876898494651034261486659301629289561910823674353898655062956768232360915175231110964170046644655756685077705254927912951643593169286298820061098261168914145997770874735202464140224212760200364283253118632712089881767871927689441523389386472634037822585504518564388749807562024497124278837733606849272971246552113082150226626217627525328302151872301391665782739262484965111678232496878916331570732450426382112947295960573227766465580965548527271132732653916487028857994595486665496418013505658212252730523508075502083146855675666645080820003556059319833958360062066424418009685530524163213443504881639120359021426086749677108357573103948460929174363124008125883533919671705749000582760654581865394064298973703118438627874288054772748118977219369209870622818858075227357921623635758385546364607908470768580254587311705399012301739033694776228645387562908920266735398454880033949490806198177433757569030559501794078341164235338471053788348963328246713236064144087810413848998992325406936984295161330280993130373011760698583942698541942637317999742260577055750658435417864080857910528089601452579385259439887350822249079088325119333855664711213429901820168988664879326954391811485296375273168337413494339390737573777410313378579935571116445139960786325521717252085478246117136410877561947608681783653636753302611073753680549539773977510957352244819307656971644656119236970042812020066203656261308394095540254353033754184147308602003168567708234631653236816151093651476251094135098078244048647389791234285223437954092134301119089678518545094978471015976570184169066561081216824212819842450838696672751755390084670689910041644358058856732162875959948639143792481504516199481081439190277341936083078773374997977062345236647761205698205062279975899512119610436244540597489723671645107546672555613141068861364559730630902448746637407472267989658395856967370421653053742890658423195799941072412450916693094728417085654349866999215354143641009738303696214514003574829095877774442338573347121772047118715509379685516672873105665929880319527510237507132610179239216709748815626905064950329041558128047450712386054483980823105379364401308614006835255140008999886935850665637533475189181207579099801050892863000171669882940666070359279396845102403504944836421053884779708076741449893569082161466440792526977386152765496832718250690662518327135056010171647428314292342169190700678204039428473922095213174895368303516146350387988204949665944095809175548273415404904014290726736009588057530305660956769645503439553787081790204084169657084022375858972295843282825725805813836201400029135404409897504973531468434192242445819843535850613596180267657693754785674422861153256932898978370601703240405017712563294079875726422876435647246935780120952100998161747700297243873700709968865478380951410923085832391845814278375049135561979594974690036976282145871689998027403288678819732537777379694527525070292153157679938436525758723736057779451279041841449021228974116067045146232310289991054142962321542326538194354576600998588207400811878890618057995062594917798118650104784374570414958456112671918702904300978264161144696891278557436051235715358265146731935724896101306913687445347661393602875789933255767610036195011756008464006723668520008186909528293416453839697250871598205411175752144398348553337299375240276518196339706733610622016721279424210029160992248693366449722698776530808777707802666883560598069996351855018825484223907936715663701595220357371092296199428153396098016927499613015600436297684884620854892767809211214421850436690337876955415212737282018657271501190963739049327312698214423682171298880234163307521460775018888103499334279673855630164805106087709853360171601611180286291028850644374731537523182744776417496709554534194515670600028297060480534632236075225456635943915902544092562899827204523669342923137678703327951683827541232036902591068157558753083598866150017312353308787272404255481894923459802650645484082098802578602581516824741818207330244900566357300137833651789001472307644975005340118162447767618466624156393241745471876058069570928797054353441735224332859683145795395630624082837483576061884164147263153765843049681313919914016778521152059346620348525003243024083245807678209036342921628613682990692608682224463585446619301129918063961430077953346856403996901368685581463720355005497768089787857207740010213589586145337981171012374933876713479679469193997469593240873825714260735498641078459603588517926298406955605571049658378888227770096401183744369697166992250351127926598296012128931384844011721846800089532389763050638020311842291406582220104898978092973103719171185193322515220156650739092266407079310142971212431455311785955084947092427616379526059925768014133223956395628679175171562911646029217894542409281885618601413228953410981488720546424983816963414567201757140396274064445947371619506226538897596351239323038021143698337017673352983988912466388559596441285873863002945432289343412071980080582017506804136142973636737925716048645000305206382027942831163779166375957637350767943751975964421166480865511996367991131773425607830892961121056556345239522346387399303198864327068228298893109923902314114626080038215174911995734299984147204410456782379125309253299969108691207654563985436256270024818245322465714168054746734711198703549742519045011825912545125455536853463400151060219825263524891078423381647145787224939741190957646890748428653274410289733514875543768977175114258324947416498724467895170045953881219159051242738511689089406860362203387486877613425624926273569487826439058051268218930875099766658762062128733989815982235909717767623038283008068616145314231638080032441347836633756469916776338318120382781734012381008958525108402711295261741948202511602448916336724120289751460759311757578151472884826355932982411697971757665414022889828077503769697390439430371570323077364938470539339194701231228287973461463537753830947722117283546678848575482318538662753441291102890335074596800444688740268232354069437742331377445855306020451324431645786466062140787642753856068633958641685305668934370890699171705019278708782017781457986926763480460363483404077235936465262952288902090843070925083028155197865777484762908377795728812210901485278640119560483553986478802024827856511754108068399038236493808218020152051603850949036872173665542949745557747454602496829999830203583681866638233271322348822955626077455458849936515015466728538154977414113587875309980691156715461968506333389203343854330972379403911638562518636168550779031696784788371613674051747581406875004098593227675237007354751966923387431930646520780749637634775296052844443315533299479043046913307362676272008381001419056743797498007776176094862370013065366158008285068973758132976505470248353133401765382775033063624971486148051505486386086885320576488451440063258837662285802702213869874557811829409161097289598704742799890062350257111955784695352185433320690967725505807998711151458902271219559342875020486240780170976482774198703346674108292045596673607815667284861596461933462118580996647063454913068068102894047758882933504574347967527402561742010289272473150741967767414678422059193356722938929205273580984424215327863996289914367780898457064771120127660206692338317577145248356174733788035320274087196764874303216274194270839290228046957503686789879042905964799117208489129443150056679737956123876221634727984770657975809742262956411958950532320160007218142205018788768844146041653459109667899104568630101461405442738716309629649198063486131963386255198466715271791471637984454355116643854829377160212253512804838197322803194660732744514828202173690709074524542841210888091102535692840243676537724586701242953742582640450070352401661467456810969780456506645430176859379546386109814066461640895686507781720241583903918057330515527475762333463072594481798752055458048892822416725948110969586447977927738652854562312960039812647288338259684066900229838881526091144712031822657928913107689349715338542688003735198672547875366584474647351348856641209797157376412306204683041596532006680523766087314387596487922778932973810516950995096198592313503021669793782071363623119978188346933713920618298899823732447699351319618262851433666523086981630442766245573902461323411293573556434105106523282411430177513427528878116212207957041481626987953059295776490608080156003772043256393730427184954111357752369836967428887256613089405810190587256008125095152880421152301772765285349770211880740700533319909973481918863616704778054708334487822594059293107402663545833729223911092748142635001709857478780994258698757566235493743237444655673965276483882082104550549852983853413275395404744261255330521964708411293524340829486735872152675700779248465997790926428591538689947326851639175133163936798301967914974429844586902086410510848889070963507665707591037666735539450968931839099052089565913011157612197765501978358789146919004586231875276303708805993477974959085893835594544138323794871319367363700673837473159360202455487932230794308231033666747527516698221934055262968076143253368113158721572445679501020074279834415099927732232884531897162284830244873042932232548731692239194172748932674062736905434183715722744234359899809163719564491297100327925628039609471573514604351887528361202655241238817639322618846223018667693939222496648080856187327277099090214617710771251700332670253153754546110548892597821029716351462111867568396696127089426188971919866665389636114445657279313838715728612244182257270900215897684060730671400915612809717336392297893958525131768077028103965254349052178236963982886316623125277029956494404945435915279494307977703592488639402533983184604199047059821693322393293957554075758479802267157667495494301479873706904915002757582992304485511270670193490451375139213115821733644089067053816967019369936134368147043866805442857040664830736909518082358216874259701778083054204578280348795973870860654536133015793945527197472482095499437536794277222152448008833744408287038481512326541239794392981110334573227559870419303384689710273858224072971167908298071803295297678739368555426862888699145411327118817733429244083429981845368097803884052423798340136493257916805688654826093101226982023689885397746274470454802433203057337563177975018595006789053920534002993448361795460149560637888005341227927455367202293679550550223403124304134458399460618069302100201897203066365344167033225852056979462786298438728744075587589984024769401494955488523381668148615032285320070977866588528388370359030092011706763751721468293589690062694586441255735981579493506919918154710799036854142948126303916680172968624747850899063563835539258803611250311991532605537810556663676838557244617216933053487814876377639236622465057760314246724512704204944552444646332893795873868558749447751538511134557401863594427188025659967761022232415882591345267424871179883642642845421959503270617968299280208577381390552984068945656089573668084153657519752471671552229332621329263131399028106995530658919527957320022740963799162774386391944460944826462799018504251610943893982930912307208674361265258727431030521161761305522094923795511066856344220146506747029686345885572677125505496052273962799764630918895458389848538327835744300956148204708147167278929819184128113010179051486836549747352955247450604185374678359644352305212723278486993766200243743657850506789377824296351474790625382134049073502971328847643084628175418479288369317641609869083028734765999629709628679704907790463369437379839033753006846289185019957852247317840478740485788669246016663048026376736863947717251432473568781312132442129652102110448100010410728931536897602154823628452504075023618071412245220398768099840198878569947710233047142970204088118251606199195182533422367412458105690392008372405012262892678778472919838594114356064777448417016289511960447939761868800266021999498388117764887919767282979880115558677213525441428815928810759008866620076104977602589586797663865429934492441274406095066941910532857834270730891241912741166616525671222091700585441562353846492121886575151994897277037448644587217962689484611355914006918475815015113927473899417086477063802568778162921902543958050279885885920573845668005177399838176678032029322785659375007313265996214447139332185213578146772093620878914347765790000691133424936229487869522722074213555341863139983622740624975799258525398495400309209094216770829617926403764990884723946705249622552303374494883799525417768243759125077356166168679199127888543592361827308842056896890909353836830210731931386759919815583396980311188976978179097473417578983890756144857678364760578269820814594785708575542858119984210571388997098404470350710488108181004335029472824128386762602896989748935853770457003603858716323643198015434746231160647328695299111766617225582563238799346572007959085890454466705246253800879486003894767535970837507781060854863195635225745966386614640189642872017425042283157411081905638169928580379023353574337594033279474733324336020292638012402433193105399081903578200054458189504769254095397224864382480452029535305161557439954173092414143451164424267419295202973573145590620402095677357896072890230778573318563006204714392491036474650771684138524071133869285722537622528419068391992890132381157874576923857270696179378627185742124233702621655914774695900788792484602304935635224037229093932173201925970867524744113290478471706530839415896634620348926324188841229587999898627876244261596152269928053702132822226307136840554565764599616821875895003378118494205734167865838481919547422275496362497389103802374589664181218703860946391906215138834196314395359298887842216111505344562340986996692326176618920953717954776345082969399641408390685691337135643079448829262292829881523751599716857070696619709925132181673510109450393634025420003665408616172724734450844621278062511786322097219428798626321659729242058170212836483062305670129613229885084858300666676879009976053538644654872747179357640541632381563189181024134759502638049705900037564967838098076052614762053197750497050809172870887575043577036200209897183186220523527848133152452693000580786172940220158689105029053627837620760745709713602245256074858919393999114839255233261873929691056831125115720833330567611604635254270066843029565098390827300978127241345882204535692943670457109138498643822695362699263820321342428137937582213100664443111676776642067430047767757955551142391951183431602814475439525096747455612395486908316624421124052458822174337436879086082502003625404501420818674416718575378876755206839708238647125277900556012723844370483218498714039567457050938579264152242957377606319418793419811198334104734005952681234667652979769017320949449310273189899784013354933848205733622791789950832993984219102995445742023516912843142730339628140555298205271965825224949151395506561585534339686304127318518097585069623653235295120902897528810850177502563716538353565806544335909229299525010845569616763690334268324885500636252602625029252945771024180796747009821120093089366741283114294368101279310551594701515717434050913996607343405012502040411259382460144276721212104098674535989033166185533432697987525771263296673198058100770402929832437481959156964042541017012826235759105128133817270167595687984134187885032508889964121217663656646169326645940453577459947605231907867811184237961520534188675674642854075812937717838357570664268300472059031677557920870826644675964796594974128385157327641923680575645657277427090089951840892309339569478981061596644976166178703984258617500120743135629056852914794175869770077697047185296193808826303575698172659206749904674559604584575381790345183716415638215449345025059830985229564798644712533483962671087031556064036637355921343498082632212460702256558211643179066672287522952257493296570697488554088796231164355458549223951109856999367126308256585036409762944415020697121298992235181103366238830855040157932920085670466084574450917143203310628064371756808966191550704739679781986213620521331403381408731573309737557568447882459679028546671726994357485992678522010408215645962101112325504970913845651476297519089134079191358021383508101532437185464468434849518161071944563335451316587347094904120774648192055799049732082305146772553204256919589788886492375147109366822800771630092423452846319943598720851403818048957836057248200272607795419515813433596680947718725204273784563086431172230544738314821133901567787265867632499565244846859634483227755926264320116088063040093892275056249410353785543163966508404852980981035302862353617085039799639241435812009523827837231739942677748065003380810323441936578633348489333758647645687705101885491871819263558165400905003704902419963139636583864121570999861938578735988032210502321454183480749266996735424438811180291683915738023875153181522820492268488802706956262076619786855550137987218042866155368118644083443162970059564000130432086703140289425591678406771198876721703213251268617589345439176872421212369136513996906726138462792264773603825200349006040505162481815978564924733146751407443883474642666612413721132484371606549483495072234928045419837979740146693010835084802320701512962045243097997493208919543667957174367836116123519985021884461775945767664524154299472953178471896593332080124237400183124718250945389086367516074224517342586335335101918877913292502258791515128464222671610483240336122004571640616745582599195171175623969574891551199170112124904848143734932772787636318351297518009541169021488659644977466747666128588262278270325301488258762919983256708161996292232221363055372103712178594951844873107022706797090420403297892230945585491888014933619911814237284584527369819104000859018298539026188428319662581421313041033164440609768340442275644377797225466807723049090801643394204643211423381728449662301902414283873701274946566392401286559950568682041042315877416341861476097323730040510708902261175862111070848068364814434305161564647279300459289863327092590634956693868895690781025886745026839098006415628663222104557173602428610198967270170568077500884478544454612360397646573342574643706682062197428475555603444790846518940911437107973373146457113941070888559879893072163691099624409307686105269566790478136614753873759985658116208257584012109626580296261337338247949217982911675067682691119495600077472179652498648628890078875924699489077366046036762359096349448286303957427073920673719246663036175779819296383321258321104419512849789310793739452972143570105781995220052266365789602354687324356801352280013667801977391306946426152643885718129980920146639685565905152187019697907275623271307947036716686119730095792994900903149950086751509244785038683387934796607321516849433292175770095116535350746328056741834064910247245411316182518742601248494572735347466243994859473125959496682055501349468330265216959637501361618267371744166764666309794113737729349436352636202113964099460792885982555831487253235428230225270307486353990026178702945840634524673474060094947060386182898106933860307911535534339424719506054465400376842441329373388168766121488914962081673246768244520603683802509545752552368369185441003884491669245633811623158549706665370524001027692271863448390900535656701934967365985810125507564707750498687576801957908660110776502208830479763869448832909507597724400816375403729789307959354179489932958886737513229069066884621667997083661692052352490156561088775419907246712435043677052507173657398606409353719677066156552752063165681243119623185062855852990980090419934769217766663903410324952162510041670062259061153871698358522728739762725005859106672949533260090569819108937347433371292389173881524078617450522339518987116006848178752665577057835837953071679465297950642171317208641188333507258322085839593999239296467582473088317389914393478110241919013332177149350673277894525520470006096135004130772474614273856592439894100557283976638684902480184665029017016329587733558297019398973210001842411184616078991024366683810050399895794238345255982462353822658404916566197762672569354516041285455634014994266793527775533743074559589699466124679209693547716739516061262402139321761832366590161581262995419347926923632062241869466457851692712132825531603898898918846918559463818066523325106528957416121395690521066564224124003368456466260564907814068119420830742739636416607810339130480895993557621801783920250628014680466507451257601742082891389586663046831377958550645884789259454635252192629657944083355202892527693148963387479225614456590642011431150455231506104430257658547005054845999494792080180869058838771701147333639815763713234755643740146365248157411444681623818590940974841749643062861302427355704580146102701186109130345640712612946675593539081860586905022989621817792321173959568813187706418883277054626971557197008546361426693592286973216348301451843581899086632721373440343897359724393986152209235362271238347223761788293872099773214796598899464710314723331431714176428778520476827789256300852297658614012145984489888191386409383517408784188176091320974731659970734746884476990555932158029780255303173587604254947739694440078126945721246602308469922796737515456533201386807980055372427792422139747754570348330910934395032290991545654008294083936858065527295599152619479569036792297548919230672963203567640883894286266898671591924354612108819992814756200365279589643084038731200314920667894418854465083910373049081179406750152024111830469742422786492884359450196059917048114428189331543811180881057326042380543517247138972476616969924248969460862744260361065894420030697626025512236338263923341681972682599853922585452420327228681509902426328303441770509609074465265018065404785196056948545899335114154619020963051669962378914560520729432601423704593272750223942921022359877616980157169336330011904027197860291503182443891282920477818483434567038741459540360372754428061858584404762512353882757442328634342127832715555717104105942513819613662279446328727041993026550154983687857378351911854467342213619076065405784272542708901551571023208769007560739734635526069600267427216474939334225670387867472996542026215208615619685726967931862596803569951514484539046645626471715637544018215552621867430143539746336258466041919861675885057138173085611545870654763503507479131030105629806609721327873638277018155238000617373980911776096536631195266708561698312078916659622840700531707343503344700810572951591591612806907881824004862314834428082515140548593143541146776461624115714532488543924046088376412989280091774975633406166870196755565754339371535817213295312734182594821757828484816454094053443338874052934439748091410626895037265203612394195124969316387806997537822388806451650771748670925296714078296927902975711231390520401383760206435397813022268482776559391038662953053285185716510132833556638677625218166777549287842956992677627055802753988402422797642438588192162175407097598054797724878165965524964123504856904233121002792061778163127431958355224331288331814511588868297805603531066310500174462382288171903574570382560578089195204104393024083406306085280620149834121884276238711136522869869273695978729306399702613417573556116580917108041483216314001380199537460249500354322098208345249771071010439786053100433627587465451141425984662499522347158050707755596293583213719492317391871706252936965670386702562577206777655423739565285103867918770229403934999023294137699944514995426987938482164726328292526071055201524410964827262553419948304393243935584510613987663127568004353303859239182721385040618579822788344848589638036890571304667334694224939131088838567116800327569926332013157697627054135566962568886359327287484565139164015912633873884158947034141637088787636440156040630153939655263849690103566821385775209383227518025545761207583846364828965173083144741675617704187649224442428940485190971994840234158788053931524958606241041974750214151612433505535433753989785149759926496471944721644419473059621289912999187213708688195080900832194311374497595953268603434456424224113548602792442026428859260280575117189437843786349653061715642610724722608215432586928200736305090831038867296022733926275922510967260225604866086047231411150834636397824323646233780678957911888720982246007425576147461644220333109429313322525745905505991531813586587364045050790200984976922300291793985989967285319504182817651833396818433477283861432663955651698699283423844435873995486160106345333736097465267031665386804969296261837165206373459825862504363375980264751135529771094896053347599448968570501089726633225619694566490264988190867384310652739081975037306320407242801162455380574058142931327264029312489784887293694340531609657626497985149811134539138951804021540458014613657259157467580469458825846510386890697187093091433018968069652376122038654287895200248131142043816237591539926680830922865538959004111696269719324340087152972268706705798480976772582290957277973777655014844736100159241236645486709053963173614006883233243325853445103734707009682469073837389050476106028761772887293088298103937922295264948536896216558046791244529593368570306722774742854911509128358491128548575954854235068256924276842586710392327801386009539415595849014752104963545810902149057980390467796776696658228692671736683243684871925561924133616076262652604684478923551452654680400682002911475929928118091240602544360619142028271687408365596900430207281036612012689537590430564626215715302723775840244474636152202461572349712542350660588850417559032688747075395633380102687320789371308120202854774099177789459000431961679700733798749384176474029713056084757627003779877589427509515502349143173407350643657309264431599190283719888603137492642633642819771762460681199799968778667718263705945147184692954739409342570957343512000476247557888633971012132961067451999340902614567436264261314023887830579109058910973106814879885552893761506487131062971156587807667377496610838569625484320224561326841915489249364352088046796777418816363441490627351580602303134352401586946330052327459049749551104950162817948008756480096770708931571875254697700361974325902144577374489294220297132835213507142305568780755953715689337634815534852159494261209065790765201580811476571730669213049788978950094155358857589886259107032572992283549668156337594456096351719547272486359884367576596272120250205789155663530760853831835355181848922879850145498615276315064480130287198638761621902481906112185838036100525668027813415655530891540973223321774078922189063610744671325397850739130681642603306730428108189646784819124306694763979780653564386369352749538012511957142065318757247147777328284831097640223205666543246727152682476892410904922431016355082318941643486712914592442432390530742404217147043712694692158539720699516855539466355557879439668238967043898687847290714437974509464845180576070911971487317133096827342869319888868684936792552187485555691132174992966413291886101686175580061636822543992614699859883544995328928589852585693312395544444565318707502823639997310410641432211303868078705262587048771767002381124533873678549315988080356287645685138403986825024388038834325188885231410266058223385333623887099894978210048282148220711104992223904209650977973690527252578396319922492854573075967661398555468715115197839193828858884277308037234116227769164480628435845258469186957314451207459776970876620641168519924505781036673988742593490561323950750815079010068025459942932869708333152204360597811828033781539542061936173910077985952170222783976373554582594126998879635444551833709973409742667655111672463064169643946501253358506809424444141289679019268401955530935442321142777991219993715387180192442108922360659922012423864327252778212832421941475682782111927679657902004665731666652959280999849083771380005583578414021564023281345115281543593509365157002447099131269274800655688077841668029537711065050579011674764467464000751907887934553498491760221411695670116518703559718958531012298108179092764197799348678303857989019325465728035185097127121301566775749073395120741601365582926769438451755417574447680714011756135748240666239259878205073044183387030127368964101056768452990277406145988182840279972715205686352882107904642243270493370950988826941329155970297333737466590316830901314469636318231087884625189708054510076830430312004281177352535934146733889592496871837085437849823940700895085986944126217332857769141244346610580294669630264850439023003081776502073750272859557196110954762380869935881409986473547189532849856078108860031958754023850187647969481803000920188219418166989205540663737878635524737440673282740751603215788788419861819775109640737870088972978091489045529758318901021649896527282857276963989698048249072214523233453581677050667150966404745353703911048390183486066171831340356470734450152127320876249779288492838566137869106753375215918982452431156305049780642687976641816711028906664110138038325390311869096813656480332649767211622865144140378818223131648704500160187376812631045664906010415193406229572753405199352191520897507381850935374131930507026055014501636073508402589923210311959326533540758635261081006266004799997707382584965038956228854810465800447015366407403191203138930749826559358439459740046137509465421636061837694333161786893017918758276504810448472912338595464389153694798840293790309667477930258353307408088711185231466171283684295322382165795067317093298536696603069426561323124047621203375567155615317133347077115109606055227121876954066974866679769696742073837499636935047284564038289223815083284117714933620958122213092986101003058635805658402143123753087086026470553325389961835166946356410438277633748990137234810792572658904709794645013665178987061682066290764335896884515851429522942865936270044300049888671334547954928255539165459122177256623206459700148261447641651811249551728409526606368286656731687448379758231465980707731899980682259076884988179255883267600149697683625896902625254239963553796614679779914712144850083977633387286109237501730238145774261700987034639352120046600040254127584047513879076735281767383325199698758678147046108621266744892010682490492043113560458105816996034982490431489304346317611804387205396892634867122163031781747522996116892067522781139312156730164619133652908427132400426561362762332076860602398166732886922876667979848091793786435430479584539020854815766004737225475940580000968823243080117876450130867461463577929302290648185638984203845701905100827749542528278969720731946683314264186912638302815931301724533779949773345965107298066499110273529973590314925993993178780787747146590721527023504030845756074744621261329737892428561013606936966521462155336856537145604371794215208480055610955342819929764819536042132964706803963977576580799891796180506428190839292253251986774972125314630139524672228630825218970848936124516292959464400037193650114094143700697407184318878268127815675239964044066736868279563917677114810833088637390978620010612181287932422140029683888940762982863995331367601590936521845313346133768276054361200403692546848453510455455054343031192086508264180452865448977849274928576452324129787566540367954407776886990740597475018827296492798067177272121774581648623262195033053598598688317954160390056185834710845685185210564813190592458207504197217349544216951004402030645901262835463956078162165172756655396860519956915756846569917767004588129313847048037534625275002638514245107422901325528204994621652286347352003067207285700649558989599909071077110520332204363948043148770115039987446831806750047923648530440926711176445973197202894749065214443648128269442428962662153461761473333484571111906981575600037381738634828714200722251845128409938877531464494123370826267646443957292347854248475329485992768608168318076637907389675646324338476704335419246678164662585396830301786244409745252313259862520412046998161194153813663097175641572011896801461738118806521423072588493764805116615093603100271990467260956073582463135227925854155116544209681017680415656945816831911438654058063448523370389971240231633507200909578295854812607543971039276630913239482815869893290933552501877955108443813319773157021946045314855869038761032466976133675202219647968594871138030575373435824775136209993792935240339903185117606912528276553525921130776047101353551720152455457448212659502970017273711196138689840266514480231172746437082073206214709672055316338112953259099824385304911700109688336238796364527127749422434722164907329123412133224550358424565193437652825332935566285036245616949131641308636894326058114382558764115440287776412461499572110474762507065289446478229548051697692449436772534746127618136064648841854391533493157672417978926800481650854214008173148948527340190454761739797944179870910900523054599929547072995296754043204495134087336537671483965180248293376318997406684247631379946986739229290583084181820589819449429321177953820531858855351492444786165782661355287847075420934425323299485937803773594674268100804023785191760253998538319522278145951564822698622322471939784334701071159236888944184008825031926470925564626132491955490676308710029165191461671563748581170086436379375757162088489682880088848022860780530660603726555842765110526649160214504313339274326272767105513959845798114749902963368274143091359891560165144355358628819385875575167260146721240473326958869192803241303268224252280679877318295201315459338882825440734582134326699387693928921081766780887445365966571657807788614273058811053134791147030082328966546962286141123833218552249247958057621308676677299684261131650734837567742906036724289921471889341145827296086070141436678792460183879850283106647187241154676169185264113320962028630978948898855337770998564729631066965693273667666700503887441944218955683950074721817181806638639601259449866657247546730540170675296003062694253903784736249583773298698495801307154939176793609080619475647776999697629265367032565911763139893783755564253868746412300021201861016820899183903112954777544974654925428974251180552171438058931073183062172415544772544620002332425110254245824177336539231601633692449465371585086382777303000918494206721754930409337055994531442020594687495285935322270322085451357791082713208645468386819048757996107343149306297851570406436900482702703669576712358301551941010801482965808320450572580198141874604630866877528792694819660726325968583636454561111895221153923502915772378651386961690191245582226493103664911735923626339561938890555560124675828775878323498658229203373810440208574623154419200874437796989362176977389521431709173165908711746071319179270859359040365716952773635667586702600571508387376859977222429876994699168211048543870656677161475843525089165381356043088973407797594630292632994777906928959190931772637506200244902559385151848395031417840252549499334814952902411323885646244936325651674478297304105996884388275834908734819190646738237894904464721807777433344524714218229848317232449548591401059047309949578390658067575992724520628201410604011166767574390944215949594881818773098588778843958445778183823436256431827897104919562286679363234366142089238961145425450590306847768714204362552372727773448265126562579694874727332491287241561125890310779250241224035943512298823642008315580477587987740850276526411848860230719977544685341364781369797061677420093246053524207741006086953202828736191589995392232012069653063884107167904800674365087272457287854030986680359774075461330821812981750553641949678552290994613470648377742475919244484504338271544733560772219208857791684438478817052091809002271732660437036835468975388733970150600978901742598659628020748442614543946849659379198672242860820642823831758708342555222226773700183364965539383442963318235526852389904872171910811075401231125436262929486722845984159621646652298403507395480780869887075613758113154674485243366172986697831316196628990970564016399609964898212189639681682347032603941836381045794977082774836641299246338551399224124718989929541166828695606138110132911339882880625793508606435773866351470199952791052213732922323844551671558341162296591378006787688111019871375956274444967652116755086539376947435044442326909592745795086478066254658089743468130663071968223281686133221943131513563035163544422910765080826423191242864796517391613596682951317904325064343109073254925091193475104098655637899892688402744237343106054236817065167634853454629036399847189578474885181886466990899289799329814112688088703823020092159938962304095079698282453485834402579341392407491134492253680052699557646110097254596837588576146034785232721943491862750347816455037539784017413658215095677605639819392083505565611838455605856085392551743855245451836153173146211683751575723623737944461467494032436684086729472106741534353029078066920208965674737192885657742964381973077817789342701997487146823833995378991276147496264610869142686088380339366013614455904183237129827110549616123113929032069596506052017745286931039019314638174294407672842725557757696719586295458877845802781931069120446308501408159893347236166549668042356721085239384888550286863929373416712318138661307405859238304545465348609222150878073181114692151631675911194806415998048770931136725212452813708397668410931169456611453429497100856106921233418416552144874499785942813245911136178695675308861295552516434506240130081105111960382435573237312505611267857804262039833905724944225056484394357452563942136805238431873292744652425227879073218859357478026338428528022186650453750954725837180026717886968699134197142872551864112938831053833648748566571809376997249728034581245947825555699307057513887557477520690025741202511280050282076739322794994557733161508733369086153440771896854308705565175834322389478221050046586185466707584739393799628871476764664035707370619652569956270078197283225037199671371624051952327536698635291884572705256267980131316497743202993291273629686962292244910270085217378715286620263863460700944683445922176594531775012062013995115579293953705219425165186692152840378905104971788915458227413272353947534345175918752854930321230407032040312592457278993407938080558021785709554478771050282769831428252971915185677487210927635045819192730137439257310908847002019547381402110715251770643037767133223927134820646419592654553994410513513495988137914661589843533006260992254360311745723315898576194521201932492007114832948544910852065780390707450105467717950380377581746904406125017153313742408736067898834437823300442860570853402294798097957402967093734092200077368403554224115850659918432723180386723123268255552054496213503280132083711949290937924381627869918012680731189452552182628288323977182254847530786028208317308633330469079605795250954630794457264942252368622201246743171970238484159768469751166796480732362353821676179536487311676669199913997627566826697260502626702665420473165463168943484197362250773691871761904446690949759500800850907383709429265123313270349543555561514999953297741485160817881763746226456634277013788478510335420375985711439806252578026639682030457025346123943059142636630827159384066814391548452880845008498348046005296951684195326263444996666693083777680276406577396666769488472249444822365101766401070143494649567084399868574737136407070508220529700205687519274667214873319739966923632688148011513698066442190247519486495287104342072332017374606141568391973144772238900139584230085413789995685427724346969109448987953045286627048125931034970031816816450076918090889217622251933336579188036218286120788412667732465359044681792948606649108043735506778358085708016248299759094317031339959319421610875509695106739491740753368324467432358132802109625947750439703188211743505783168648290661464966035858457961435818571637973885674225531982526228144045501058194793677231347324576311715878714893033204049650484366082542369815086659540129523881391536307227976334745748012389909340969498642898774545515164267176361375168750500253896338052833001391667443141209682136664303441195219210712580541857721140690641867588737766365432971132393972411721001231359444900342480902310179358505860667909253313595913704048231869618910201824499429809909443405842056903385132660298574447816865090682302986493174735271831133974864383151794065551735809964287386893101242071028754461586642689217152311226017508314252150283841796303680316615022256560139385667158379200231577970206027924160250354358182578896180301788741753505607570512683057271113723407327047306863821309362383695728536019434875074949176143457330037868653437913147554282727203204766382771357254183677141017296369176777278701790819409046633412993300207206138388049699180236259309977638053243927618023389594630003867675297282316735324639254602852303047743013533981815377874986402760941467901523522952250590350164307459701786691099044460696342422733856185147152871232805205846871059438047542009713023866211576736440669877583540306169280782922007694956685050388666658330635022299815293315400487381635064515448429155049258200207906063715650911077903167410093907087270690639756331123706469515864190565491983971105139192247104665608666238975118823977011683579213546124663359117355097350900017666715352427875682038033370941668747890202520207247975178773043737082469106609490955082950518073174055600931287915569992406499521764909103592134198644094265346004024363285206252109198959710518657247468294013068681369046158102411097704145909411103822100725743162763399343874125324249953045404203565322927359631687377512255048342166321833333024702907770333856071078433793376522966166684934146286071120814525429243032788723047983408190599108595493739705975102897521510104173014891842652124698971185007538266376686897022125027363513066360936444234039859356544527640858269822180371634466325905540888425570667004613089245810185875194036870721714580357358014287517773768430547662150529442445822706938440428598420765945412239454038804242330104381098347245794455359677568342640154213793487463798917672120823414546916922666725457760179425716085413545112617493505946856054763622941315027598959905043912105822743480260827330517514760291557174708770503882239875176227067333857643489661521631895730098952332011632173502820116751129927375071326726005287630188020975934641277215967291734966486237831617433669804120664719214498226894054930861121856512022144355156789092572682364838088710175281066795532548842431277288102340910448487743925299539121358161429098025572394343966755956075899404915733685381392848582119461679087461878946891798872807316835163337851905423344518824866926736153402420881390888801033484046168863689359662278827768526133836366742308949863084643393088777179432346340629811803376899751364669532744676395709174573721316289612447682274673437323980454543684224801763816356746139261749965889330192627313813748750756137890701601681939838183306251968951745128994190752704672732969229328595399836305598826464001539336104651824384841864434050699024267018107918107109604245840376137876885581656913606528464417729880607773103008794051575033611381222260248782705711135546108415518113365866766584533170328546867271970727227215127963791228588377620992734813497067394646892724128188313456520405792316488569216013720892861373447342610105990310072536696993523735915111834974759479869920443998752006642672400862163815251732900792435966998974499723303063255232006215695130931621542729652253061744722163007130552863757402021184472024907937184094385474006664471677582137921885593553403157175524371666693497921229248032112871547397883465234374403654095734534986141407815302224510802092607974211459246284115974048016862063286737590238109793838168351854648972587650269866971889295398832508165797769688246661179252469649173793820446746027555979275031724466626270601375347839219076588430758672782049463277409044387803389297996264197562962295610489389881369795511848041601397617836698870861499642772834138378632048957352805045513007014390023769032308729330481633666495585939652827367694109970589474353052207538122381325087571926235120182746333322707109351859599958454728952356333663848704790137073880294713909825386920771220480251448475430445028218483375287885479886362001406005060237553733376181407441157246244538103969868932872438142454209613932066518787563989224249813116599429759135091992534048482727554177681475221411697406230680648158010710495703266745497738791148135681167538816526350534364934693206569004146212850269894537025645765925764154499555042520076829228540268484882103775806265827205160477509908298361374726702045718521870433082862659120462177363804824428525776420542992026329507504341563859876529214353760184502306420407941713888378720223968876174003766684062610064572590260578228129194169317790552209843439166522291180839167093219020623130461858549835932349801984520953353175806011129056228292275582681598292853584697465383119630711983165763015211691333720013779129495891792230134722522524747375690057485666606125770602168876851165817837985205985931677338745477924770792734481528058995259439691391699763841457629018698678794105175718775997267172816982252627355112865756721698780919821318770289607484920772155737148564730854649786278332833396383237804057669773383360326810054151427001253207146732439104803472945354392082771221788726053293463651875810197641918891541294956679574740451104977347494324850682894796674992655927325876474304201572681119297846072891795594022102704640502497614934648711451049962761455355266778827914264977654248233528731682570596333280734889599189299545234395404546537430186491311437668833833944560753259639741017566150842941588960381593958283241181056997187590596816175991337799389772427441707200434066333837728122999571755383127863073002280988348956168280893169568354555132457748373312397227556706628268045250706519034521598768763386868854751024385679380926760863999239175816082035725828625485026224949923619485197436100921397397896744162459305337401147975148564345437383241306837917035939458911889934263636537575466043304100849625265251969325405337197969443239934124283362374368524186101282606576065571933166592076413212861747819680971669968138991639341891811488141184467468412223953629570182356113176537274339890070512347954913822211813623376476951555653186639409230701958382086914882595497104005357744446298715999161862009156640335408074933078863886025434785799031175509509894712146232983292633335923591994588787135067869767638662484357837865067938227689091800638169656737188236991868693906843374080945236674715169815056195822261789991320863890100357317082228393634342085829923234046756823224047698218556024083496597223945638165520589027944627625167457044645597111806784264639826308439570469216976670167021541839714524068111078960964431070144229618338290493158138023879227749602441866415538281921681029156513129080429939969619243209971962741960766271691030127187230183358443478074358552337531034524433453286112113772479009223044114150641370354434292793828988648275575774289529837494644534965697890742365041930845257242842975308695403921095282908719896781994180588072315128880047789337004410799671036094909316307297059651451691296513041276233580317918143099566522761787264970367229629143617050628189403312424686105545447734014738751599871573226310389115729576279218028773258017759052443490647872418013837600299194173901139808163417962098707654371325969122663668194330622493316095188628395699412298592185956555715294550505631752722214781864633408922045731001297304271098835403011856943034640051339619015052164577550734848409906564254140758451847747645730734626238175143895250461726298222361716854960596211075928326963344333526585633354487911138905595867047387518704648569134710144755430881850703997229770376135923235945682042234351993497965125790154717956729060239959906671794284655022810675743285146465200604750787512592095185636026918510476917137599504893256342542736708883874563232585492854306321916326110116672932005806004504143929189702410682450279495924410966119985319875453822065751849771802175050578517273449845536530631638270262075671879463054965085954956909764339842164606878754586484432942473442958228131279238525118033441125589231012596250416900122222399180886579980558668973194208116380529856848740586685243797310892184678803766518829513973507672764294882297333705635972018002639939886174189913472151471563797158263916679805272408464651807745003448331517301689545453335872497486695533557572238841631870055913845854786851474366407994725858733723054059295672511487751518033922618974065328716559233048978869883224673866225914772793314021580214148421243391147245047391458534435621406267762271001597994753885401164432708699191482963222269460610395651339465531044322477602538214206936752619052058602918358304859858938230941383340625938337892627869182770862912756223461817703479899758534733657597949524459830937345207939418490156294606390205110962931376255564881170006729010521332943619634355756520587486546219702277025780023490476796102154361304222034182930262555146259450727456175671382546092641076911641733169692605638474070379887587025043209324906089717532426448085141785399315026710188476005814469362701803878018408891224944243385268841491571214622721286140892179832945588904134852970213090930350682734602577785973249854484280126069457912731072258840349417670990989006034288717084722663826007065975781358159214345575894621662812805256705734476674194087510486230588492153375937300183131449196202147506767513632789893147262114809625860376339489441551417447096734789727817743424314626468593826587071772835819681922697621112863380012254374415378539800223763449372995003798524723333413764264882486961740504098874416620103860870880883123776335389411837171156494805984111338128760876380750385700515814295675423427486489066879702923894166721859374685415715218788486251633328162222489469651897811447139338794797333857917862797988135727963615718779018234042508215154438042417862992492860061552704859975876044472306676908196724702308032435593267294086318346365550459543741268729754181476263736980372098942896043337119209076495732704493012975526632555918060505811499416150813967492076728073174569194025209323205492217630701812593242147793442515444146060803088182445137466256047459594681802664921837719096756115445775167839412598157068093271893212129153127152820223033918234758061081815274581588924990310225710769869701274049002568395810038271760303830051015896832523857442375090139111228599758261939489860821612678270778031654871213611638653790746991063882435784999937257980944921777598683881718274874751286579149815621446413168223789739577989944248771156313921830361251228642928792173431546032830828734533765369353812735482827789449532160458517235728684361227760834836242778822001344915973515531800833254931756590200719794301121311184923332782026549786824292744843366418178978122495472452477552223251040278627924044590436369537797163108991318809473308790695649948431857828116419396248076998681965940258484179945554810526963906292619438254220584710131647367066040613863602463501964606349706387891002380682836893012019568924885010403479158019935869583457512952042015822288272054745769735468869944344198471942722293648373365939170289499957375064202773042247756482131674888819135805988111890692982777772482379179376194709020782753032705705209850834999595894832850187585815020872181299718742262087958892444675677687439454079446788922625698246189832587096470539017775022330941585835130312101527156705775294537590786530573646566160274278988661416326599355927936280546213396396633299190686562176797370767984898639196514979893048368093484352880214899203389048323978042993854444706309630904916727421586856015014113775933028718271239017474288156985731841266037338850438363936504815659617124919168710285526237242347442222687489888307412176505446484667927145207121873895040846296977549077996591332754341817400497049395851891894019774562290749131054882238123752490427858576563550106486312255467887279067194521776923686829292269952424549522914028815928019691704994662751042912755589473041324116515370226188184729367260211849042019043492213916787549556861042747440304591494645468018080304650866948213308070519215093166006336750441613810974407536921195005734427684883186394535629114531346425285651883954826223023346387100975139345935786936222516081950522978101513080732037666525120008795313698743979017675629174017483694568386520885912208563327412747050116962484753733722314967489656378236605102039447654103016470953322679849868027898803864559930548966777365568861370895846432566650302107479523448537717659387704984570917733475165016755900135377519768061805710065696124000849010093858050054830018333110600601856827041234879630897073144904479397338462366150921807305496641279404647026883417573297056150354215097112977876611376285263458911124300029136674363823942800074740957803742969953499097020635678839388678433351365472611901545574425210355591201053437608657555166158912210343624761634522849147927826266384698187530132384684383848198982259129431965401303091035849565568860423399293764197277537781297576576751104220674692508261116313483421752394714850836894885690798137328587703543841545668065822436416423146393854203619392221295490083190338867046636909549163980292760929237733181711626458622288016324936225945968458131609004557524916441273515381192028818110517787834070400927173050009153315669821783263623074102747808983518268963421169435311823668571135018207288135525283986658128488717716339080358723260088685972284225811125215795848611919616341434879662152796338429598193158304078469304371877059895981005020680696666580058933713083840668965788413586389063770886714034039973885169279690255858447248874524162464927825345779433659865245448751535997255868902314490610468750552843715538971359887915282925828255050120835419120587880510395496202435877418284809042834012623317913548824250786075509868266022155690538616721739707016552951826185149785155991687413480771803539647696253126379133931446691551775242879398376583996804906330680176854652833690811941784649343624382999817942041651225155281648662278969241316967283175771906598106614920189094814966766193502463479471325657146836099798366877167117645768363846679320507604568423013645607467711282291454410457836229548419005716460338365284954362664397313112157990900481873735514627240002040528376748055046017505262238339122922205278208826476178433341282467090434281555799199936787059242446539841415248337185030982365045703951871832547505889146921972787747493476137431476334074432723672357889683072187178156069992366992607880234726582584111858536785494634704089537920077406163245285854832012427796206571255740619001540568666359355115191485907385418336738943687771213576680356395554954319677643261844785458336548591964475108085868241702442535252203584976471168162476839953624476793908223428292953081300906689380635274420004363883387069849021712445883967870819545956703139050196133302424742867545568883597989025769892006589434200237275867258803211692625170144931468664680549000789632227031773306101313017187029864949930259177391147857049708705092800940844098301417159418161489959727551004889962361242184667921740402557935757841830411854809829851398218698285647664429028480990292829922586242989685205259864405231722786608191694277437470575771880761080178170144412923472681276169061375346156304594764959765848582440358799678373308638092246773164888660137582230112667714358818269322052862836600684660417608669812085388966448423634127830430019766438574724055586785414244526663556478233814748802005471190740096934076623723196500713688019886856632248183354617539427810528634045487684150148177861122004990204474591552400838546972384386526846236050165034745895856420487076738103344998421391627255092008166428318460105347025818298005342090247498511881750062670884412379523195042061420729591780120441108210043139323316050122661604736720973055753935978395931391217709166253148727803743200032297288350128452632046447526458249676953834093331796811966577917278829965391034981801394378419558229713114826523637606339828606342962398279776496446686968629837267017460877965733397537813876632044627737591511611802806674852175256924858603718711077225232573649510157221247061001841261126143113020371508764915462560950255744788727300241807695775894301097619588539241071395051108671826885921799146347036185965741416975160347050238400013203497201690750143454481840785001959616555552021750376614208353600308554226516283139000897553529304579792799051545541705586820451135637146704411942761822983730791428614295864767934829032395722437781831378383090974524463284891032578685455840364603505384439735356539103424668901769280812754245712647903794048222416972827054629989166657013996978232508098930619305304874846505714394551522130923050261480079978803377249805525957401726449051295118891778545751052809268213446972071235540578850789568719093781853355007751043065888274679607849931894474395039999440818345801504830345039967155327137758714638778072081624941500103065127483383647834568784236910304330175565872230771194207625044108524387177687336893154848960604981667626690323755496624275319348817481407832457316079552872676837126118081584623942044542980533497736915195469050498168948792939639968752324908065516345216962542132037649917330724161582043172409779780270130087004141876079184028490145991177142665209285453570636243160765058847376985987107871715794338130707580432717296927019986816588918070391000277603084358151804591335015658811959424430718750790126976529417234363240416807336041725105880539857167060382979606033118535820247244763710051832406308449237674456287167496676490605645124991855267272564935779149936017213357891928354146196788689475497941118320386041934887604287998426882664136623387737479484053621544989893738093944672955532085964288239560931926733241512640389426756729012135781521056356502450634808667200331532150992186650264551465520579140434331418931744145838420034720114527627475566386463637199154891556164136320487255709853796453133178054994657384417413499154230689959953012234156670160551788060454883096589803517762589040817303354734957965719804431576804129356102302309380869894586449484552998450548608120087719720164982137383165934861750474894264984687492483015557556088823382468631822938489826958743128999273455955791027777823999739474079071706240114696142722460394052244672743800904788068009204257381456815446138608539893580229084144989604154179801310601766049783453641531633197224496825336807416715398997449480537924789476725847323987207948415076975129577918946249822894144335476631853499993586673581654758791933439905537468403042134167767371913878776319919673229649624979546496568363762555201482210355676498158036856868528035439933206733394042646651584569953881912796585701315163723035971515092329099272112888339073900630268586743036381664750134279032424692734424028488879997900400655379849337708746593010508071048941423036863903046826850163688100183578933799329677697771516244432831505342567167908835992414207504466339326227247670420359784332815578267651026243239188433779193494885924473013410522507517984038779077812791771316017378485164931516371038572541771694565531677933276154956643657568533225261023257517130919222912037868211070106815689349821999351886051472789723308956152755259112847529248525450462215444218657403751132591100938338672834069400299224989263821091937119486618171512760816517655776727261418602198834922131227759032397499396244564780586620774443935110169653881841453023655559151086374832503926500145515591650607843333853192817359581558458366214501953701708825489775034719546868729080417781621620256162930998363284038401945381868215663424101427934990548626635944994402509452009183025520397214084740691796595681301659021732590209567459603718940073653349450183082615318467364198037639325330286271045821606050861605871702342043549305405651136441092980288760148311068004486037089144269050402978340847669181085254217115625518889434756998384372769449941429708519559026365592385928030262310269084975919716402328847731383904355979530301955847218432375525820627416619828984383021062971782915921569843316111053018858411779987507490214559725971447090225625560205015783836145588178379268453835346710734530611392405820451156727209613739119106945585108712014423488743684572259093038880828221033831988164490376440625650760124548099875097829844098463810310411827722681572136732476956946590412064482082337446955994162810986211350871573563474400228807960266077457333640152509336919698130463835087376041843648153203775053730654315844428577432972215583088816557325209144771385341671813443899989727793495960845508696953243213134378088859951426680407416510593079653252371846459999299294239832237197536799832552861852357326487871009326795792414996495180687852579182314761872393062952159868693737823729092141976803024842337931249212091294171389210146784397236873930708166013915286514957866192992916443911890321162611480908966002685330394585625087315335985026307484834690610544701424902305482929966185089428901525947881338446026002800961728992571497477707589491756728992114910826997411777485022845859480960904624945983915777808117071800347130290630116202830820514038486414156962849536879123574505379395082788818907286254490746622170778380512001880953938635251023490891476271813372322525910660537642114052353192613420140635060630018743284514593473055345970421994754697570192913054134089336885942483002748062704664044357516116741527649515523702214487698862684659580526666008884645549681801107100990936424888996698200975758346057385378803447003420408960409947924574316693818153869606263715503786284505705418845096469632896205705629234882625133792545103644485308087253873094400735034798170646065234750378982411046597471748115523989031236348874572634824627476095751743819852819291989088974329265640759433316586284124672401023565569048111756975373708616243583967875187700984784058369197650305092970915418182406401131290010427932054390441173924555617362192512083099845664162480576470738605995420525769774104733019541483361533424007348150886289257936415042340225340849370443416466205702613588541331261671215735101998722424269278379923716353907504977432685487433824893026206727363360779377607536770046292738255931006602504206902535833197261472863174220653847246552063061807215125928215475925782885470680008221119015312086595122565147083024953801065274800286628712746221399645832457713101207822759876352082228938269028831949407777254302019014916401019878291399016324790719180243643462517701069615352212028878954633775200223278831567967118993853293353659394990352293829626037908771790694990611912542233268104054979724852595949109525623014783489820104507195673511613752564250356229316446254994049953376393560695700081899761566110463999696850415925385713482598813689539413398305124842729833325658000103051315350968079099652573782547670896511193936428789683727577684593507812341774629236704615931703990288581337898754546064340659388186398665227856724185430630416209729468692003961015419550803598377435588873694136689725746809472441760189696281570691423095915767009759476558498667052892464220888978000005154389575336332777778004863873105854239608354846698025241356418334129021394266407044811421383809580962167759945691040590866981286518748650426338053876821560321833730740443048635802416994513454824517723865203231935200366229101573806074454502507291141704516508205300252835076030567180217673561028923589975844866871602154377579651429009915144165853555293258381638286365760089838437476797280409275250082202249690761195501733256267328438373885824664039815594352128116890599814708807944419183077658559180408494313142557089288529249098735431536073703948356219285528337900892796544663911219365569647163275081259636982967545685102486284030874335539796624821904174202527354428423177276487370781632836916350108266420207972853340873489226708314258549914110166840319279286140445442863482258224509436580477722265949923765329151538474955420436736331576270573567872554145483107553877168491143431127250200429474690204875857059668789339730787366711408291358028462701795245590661917055864732170394146165534414802616198350224836424793414717253041289153404506474416565082725331232510759368825619705159856220627094023879273693273530841474936338646502818276487370035856135523593091322134316581241404398030859580053524696707826521555370702201292692727243749025354323788619419616549520487206231327014258129894926547170961455702829955829886741957173674105761092202255397780559773442768684783906964741087202827752992876421573828952129480043615058553309611649590619368202640717196086067462055669329877169852302061833592941970280514581314621534936503156147210184500626379460600239912184908249741755506877427075780429580807094390040728732474475159818802337294122233148465035861512152220817891130789956877444107166336586502448608390381013298927074479229490228048968354005454091170385857352842668460699888874103231204701461691577737594237941588168112439109572879679919403126484982986216752425139083013264007645971021668361736296972391016160119935497749557869792405296729033931542391684141501160806726687800926676805214283706693493728437579236256751104330469824870582653376431854435859157652754714308857902316007859802950230619709033107024924108913324651645994557708921325730998420105037301538751461136011009196276460337496137944692218680785500894811272456339897817476359911175147905364260452586653452235981308799574585924492013204125039624563289878073813730067133330015755786085835778085608286189746896708443240654513253003844708381454326352809274253847386546755776877092191944378553962567901315888585419760784899970899036352050378989108603636995590192337635404667238414621756466502097366846335239234679194162667240798368979312275722949933628915637699778865018640202696095705147299319963368259115126636447044600666212663051289878453732049699515141376727975243456405511136044445605708014391185704705551738082865844736344141269868874958323479530603008032593860694618519200106429193658218454415456936681056320483571573764634539036426293266761753387252523903856467751805138622619177324726240430645977603498706002358299230855770510900937417657434723492503394076972193908639429635388795389007748923836871660754379424689975505043708546748172015964808395204367564302050107437055683132390425989129984999194782488190441967483941357124233783961099853543209021477794940757159729652976394317201439466515126924917107171326952625229591218857141012461798012010170033730265854332662620691809426744276510874184400109206087727293789214761939035036513004424757012107761532457533753793267466063733780905069540641798216647513051140440411722244974675813656605020527128085423815600160900808397842671113319856647746494420286983443413412020554030216702070678990560438147052708968483252884203685729099258234913146664038748375152809000315273781304096558763891253048041439432220701409482076281490489269593875869155340719287470993442557109007407635118465452245044195151159874769396591888001109929801544507041710299465222387243055683513501184977807570474848987035685687194982040052217472334947399349772746982410934151859526747110431418096131581684681041473092906388465027584609881069335866929757005223706138174156013412902959349500968895238872190138393250697294199966028692462262931842051141769418220662542967525909462989987833289804498300658221335379271406379364171313038669482311254011813635685914467282575558004525770640488425957860777813173627191342990130005401734461747215149245580817748342261915397181633718653793354462153163797036706028256725662701353300915506359447772011479216706681799179017047734364737033727532070069701205279236308965927705428385239106651368929389926576708394254907358335602733621031885732285724644330034326926111110993952871413424318914113830839211831037054689184420845746177750725897860289229357495173671161308445435703857295661861638080683062297468171718702180074594617729526984763294634432039297316704464537018388327643218889474056136085220127042844083738468894854197598215409305779154335389810877061010708560102286676435760100072674970007339711312655921263314258837835377702076498886096464614570398692955897961957259970556078763286853834355609229110975111154384005998475773515480725390190606749301591932074693212051478190577585081087142379751588453560885947334730113091622800427966359061700907008495077707347978615696465158173734200298419684926713897891555151984595366991488689567598081851635034211472208400301206199696006275847951841699402112800422789356810209332305315996312859293898558712169142998735642014726157644249183401203837157999199511857894126994751983237780105424605764850990756796241126385801336190017236543056020056284720102309256693567558768145292185982303368999952832907259786524607145326177752233623459644476149928164662978227479423137187503838742074007100715668938799821474430278084308010519401779227676665326906582578450177693646563095978100075798285671399521890063690776077162580594283705262764310126165848113912136680499914155374885658440961604763805823938975045328084381574719119868817213961258775074981832447184526738893546516238914012602070356482395860129032298603824577469062646011326159025872291206842432350992739184846041149739571296411007841269991098329855314068051345372166147257581810522955880930975860404470640746155288509768634775203778365127697610798973932831593858950711430780938065545645877095470040393013546870378080386321234085682087258197985228833910808224938998393965092216192603330255573508056062728782788048910673953761103095211837994964378275686887583333707146722861599605910503580218635918872843895486178146130771180910812490849963162278832846575594253052046412139689226088374329273541037175261828029101532617894960248100037019341870802286820509709007942988471442418218777376886184309981095159064716282763971085573923236629954336951795667222161777614590122020502103564752344765409191390816954151524842248599266586402510220742789607321087576359350225593676396014622197242944968587568071507049559151216306062711211214748908797976262284575996567192754132176502724328298687362317571199938792732298612570059832873315697897166270590931973243879465798541775053394609472199873178007671600820632784695595241096024886327080752683472304548879506725586113701484154286333242127443968575535015091547113507742347621178107322168416492278265920094061758925905523805158490541803556545746626422783296986634866085671730513110157903700370460918705281784455357094843184818000058820368746031184094824563145763097598052214007882208750375965294611081704476987146712878046528550080210504635681635077961324157727428767932554635460436483218530267493799014670363139089011895074675721001497143059812199351267318731523662459656291079797041480674421049010178888788726127061767843574542123364529831741025499684467382977008418868763104787830318093210808618299839728489006577706575165395153741156790428609784064575787465964681082420477774114268085837716188055749351735785455653004672224550369475114894057160044435302381357270066188842556133027502259107518594569300942341881984494918355532252495460977602605784983944871369128757848698339369839417801670789195924733512728075459411509498711418142663982778883682969457522116857581591209892227011218335256517293636762105193214500494814044591261532745945100669795303142270854688739184581770729009037819269796624770658590816491670804621251388870006293134587080288077892463472851097104086923706145800315959093554156727332647133570197305099368186330307341691947774404540924841207576945854068897203424218065627317889710178233002288138303035334715210570576834580946193354117764999817817164655212777017711674993606360042462919551876557088862605556545933357822533600789247893652020679381808396637414994290018644924705346089379264910588906217464756885247761023913063099430923148860539138904982695483771613754386219379403960927719163755920061277043795253518343934270072603737618338356853864264612600561169885893436004058887276147816211110738966198852262401133789427621944912445052091556521703211960490654367392041337519507002626582155651458186910692501133249876716253380636303645961095709131139825977099038077329841512653406001615213484828789252628943535359053493821124628206332737887039486632226501793136478365149006765112121432058629195422014564355430040704547434587012323422381477377636087854909911914835739772310311228169027738631634873551639929217659357511601855721663814078013096261388050390442265552227641596848399529842001866522826306057594623273468384434340296273667178949243321643931772528777341508133838585318218581725674510622985125635843437212538067084671465169236796579040303652220880073859968143872360385447052707870496466035763327859137368263001591113817869243582422810149438793708181272819961511956310742022573428936818203032722096836438091786086970936447486630185090074078808344756441203410778667170729971836046448069385209283837219662579882250577641776077878380374983401620860026089071575068908031524520878062118688840341302300373096221373320729928866701661440575635910928876306263566935036190300897565665684886019723914226448098470423063112191583813865061679629686822771256242728530684940994645995404949316740876971089059412491661690868662802698293226116044047814937083045488590353087545353888060449086088379366083891104117668264671122788713748375924563215769188007102527416875516480511079788226515694648334689887474707107706768181254615072505358692982444212868302442908435395891702809428775817017813011825500018758098589151171281180368133351093694467309207759098615438200116279275149954624102703683051147085833369809363764927756052347227670931847724753025337646016281299293890055052390252626480025498454627012162635352957564321520222277824287246118826943658945581269555540074754085573412712585840243353451621728900998433119440983988208271143714443920975979785978767686894083325941709733933574796419437929963815999816357330280502418586265250800386763011502779094057876415048042125538693787210622641858777182145547841326853651682964806614245200608398417730699778235078668517283142511192432204535230568036081464653653136153967562967475996635369857888080622297036576927634153363689356887219437010377395297096436281737796558371039969586392304940879591836955533965907942252803126130417998568405383340408863830417620408464895760852552405794733865163300658287550742833953740327882436803542070727765089992737165102002363266815591489734569122133169710204085033857960002490989543836408775978057642219908785899965379408995055595543734428000926110307006684692629646260986337442090544371852958820184726717512524863876770745017105179238084607001342476664723921997553845198101639705148541967588285629344158147628762701008537760499732953927911053948634398594581304762183450505341646625824487475215604753883582342912489230848076665179669301642010467755151035106410704290804191860720915976836537981018567925037250865811494953946633559832585551568706652446338343668219021916533067382402063051299074665479648873122013013681764029033454386678509700700236936779102551514248168841870514727857058742487712238661477424177480720668237284712412764800631891850211216000679704301162283120169527922681326006865728793161219294819232432561549394478409489393938552749384394272613151711919944370107618056589458208371216637636414836998817974230215596239223813182567006511223226039055603750463597353591342836819544293756331833737113055646471946737268489127534324315723736038942158847956970129040876701918711035094698784576308512487944868869510617741555636015969109328552867422012341916435476478265303499556302331648273407365008182760150705168366139167826237383393783312972234249127335619326635678015025943403559050401772840582018369296458984314658356376170369564441875992482108393335036450416180334084958301086956120223327244391720170983951334225601719310339879187131038932931140342316598583473445312109295688587816167856056366693960464327179891545142011992731512812762680409057675488789883412240569829621239651593718582010721004442568777054095725016722218777419923969974242454805250800700365177229498649901544582762784220545423668125690900093092290468410462840005508536782083941243805474983123556650316397266729210367202193579445580437670200982779020190503567734440307704528228787942690232087246308402956600883102462897650926621613169688668070145136924445407275332600208866602557752371354015821090447095607211776067721572251738699552644828165392496291793326462454556930701752105786883118863976154375918184349016075015551819429121493931465093436959004543411821593703581674893218420923553579616417097071026657745916347435030593852129175795190948789688936569964636626115551422176470117609142763623541356014446987308710885255940155770293330716806507176826589061515390228050168719470602989996694289139651617004820858098670241916334874648515636660560188050527405093771099563973083046782836297518821688662677557735105494000885282726524642158660005740772284066569482581335572560974369259119058341023295217578727980729923896176827398048954906058852859612690949894260353030292658158078881210382695833032747460547174805328631026414973095982439913157936907311445147251233424946733814478966606984479610575375908431055320393057729202018960652427085659070022674402210229841556336514667369221363161995527318479517974393027291753697602259752322989667971992038254163311549723188132390948682472193903907327923208922064902109208610621532152964427585595627068003147453619453064667337618516688435140054579595516390360908318534024172460264782785510653504672181568694502085900136320394554210488977016903221755253527203439012025405895373259805468235190722467912025548265000168949873604852720975967050942939299438267549879044192202042818419654498129417222012416408407108114080239202738710277654534415896204050945298103906314347148394298993092566994451580883764470277249704281537541403733840876233560031721798735665881200677024800524342584100572727816789918729011057834895163277454345624608173512135045447559177232251166417870394921004225707428479231963345522858074444475872283607850527137841300142294036587843611314811680761105150102367765805645762827001787064872226313140597231528510942673048784618457230651930451793553917793697359623433870925449008961642842149146255376032884948724943769816530469359466083274925042127109188608399801715154748403227072750115912530976139895546696390166363555160537362970299815348192612842226610182774683861357990677908850059019358855468448662500366004640278553912949056366183740948509569093149366109815181653186745159876349361119908775253093382708991443573161402203033942595616544717143323457239865405966628819595720691204491916634030698106989377700043965327488620420557843550618795370253877098255654775700944957640510307952791557163931493399926802208813549025110769777399264405818027145845783961661603337128495286472559121313165571856473763010746738795560400892379474647112760904696470739028770063249138817518739416903425383382034213674217691213904304776755624886660060102976620319670397052305021987824734057527822757453932531064599877294858725339210901925660641432942935444955212643470195394363870733014032502530397277472546499461419980823986254595947528582179058859836715879056330807328499125745187823167124839350762840382643270941437677931361736001450719368026294652971394005463101346480149911526469652122754228935443050276902585766457852642347414682457558997374870043780641270731361148147950436769611848407918426531028930765857395165069720461744350483812258916409833032689057266565563492848622455696404978823181021272868515897521114200881008219370462527304163474655160802418240992005928782224449646318420353494652115389338726656707796490197439903340047162541428984700321280530112013434003632731926627171660529424307383475945727607789094797110189355709756539878269266663437696386761776779427143443509536252641040944857387842925565942763327674191890543372553491142659784510838554285874625364275288138204985509077791359256761895905807549627513438728306328894275944377855018970013423703699010917655017068820810422433433351856378595129218470442487790172946877813388584765853418494564230843975232254584541870585059409234154992326050823892348791518283134375405903503545037976246817092565717232807717998862109779549530132881937252322927169599018618537590608507830498979182821289641775828334301731744187751366997921337252284309242011562759552762918563538268045736171489805020672709740189126541482756075045989103061622020012351577274355642240430248401998611453063869488579671973350187550836684997514235742540866098253849559901854622075749335203238170482626703403804670671374621391708326712612767515562422975623189478414789446792675459709808808729968356219103003398237439845514708586348625379582933142875480363929533391414925907410654089485188506744170725598270667221226974828520730683817266968658817008567564758133916895408574461368344127384007270205907335692415155145540712038484903880303635497768174718503545608541319731920783235258646483841318702588571269070978285712935008070417408180941579495255508833845434638992040738538734858891105024882800816941451383286522583829223131475853858393279582256800419969562084186912291114250311771955667846934115901095078641799292572351091518115559836053388777009031313271909599137236471581758035720555228711561094158563878063265320605888387199826257917322223662895171024037101772875686927534717342830891621136043261025209148811782870360145311907460943380766849797124023747183637116819407958422224628083337982026409548974113921572738171674136979584792037689323070133524647465713195303863182456302910180873999567496200909493186369162027016953739662436571536630394401902423601294981790089732382467673918121028880941498049233156802859214186878360023527052429112248629634442629455216027297407221474487645587106488094224621011301411190325195396060498261348376385234086219075091480015231994970853151694727038698501928627522029791444435624490879945192243578203875172062187754438117412873851286718991992628659059124627519824380424289957023242486811331701186188720776916196219551594271887668556688348151439796060108881983822356980416952639925207581682447375244045811533476007680308027561332184420172015933801046457449539078864611899955059208644667312538211463439054619761576459558766054760750358596507400214877481533842867836894622992322259311223987263072888448295666660761383263441463728786089244854567206302227645213741807045828841286867409874126561685924316199572602347579275045806144219060760754325556199581406013623751864414114322281040338531568277294299871037869484308000768631029952106540503295265312490951283916099496200863749689581723981090104865776121683181696882151923238314111136169247776053898873483426243576591204519525721911206259211592857521352073191659105885887787022587663827501853008315591887037362328149521028091985228495661341923285949419770060553999221568496883816739181275298938488995903440000088151628572556467326194747335027428675381776659846257771561239004488177582799818540121621224849999162699583222144468544064213463912148677036404516490232030051453261166125078164395029786660592660526237431697876001206217488789426400355837520617768923611019768849918429771130267638794179153938777070116533300175824097665897367549129598193701229010427442705341245697932518877369971009565147780926552856100678614307892084145110610557411488608604673484086421486268582967458796822162830222548443750191352795020202610144149359612375667370637069826047831172964028414500633605700716501103868487487319913674200368770459330850192267439512735603719567151991224576695824890708668605622707826740748254328883990945763145010063753779106598357640663567508018186139640675765123603403648878301711355508403455128960701152086412498303651068886072733093144289358491030502487684554001008583473938253412926012974833189941127657531155945164027672578643188240601860856214546096077508355587933853737257095058633294128662332240145649099081934067366997908030780199015545066987229118432137634633506623171220285324684473870366411827888936200348658575390340343182863394985842078288804064921427677615330895433016588494728687050732472047555062954488371484935259438106787788625227032943525360419984476708369644737172909728630479592793677486868975694841457254489048870193668971191106258517487329557793225523030005673960012073235490925297786037294223616566438250025589995885277118180372672405835787633069882581981935428261046602845446873600640244235033834431083522364902624462087513490332142339451226556334959101219931126252036504805344481613244105555752654791746310455055928505250787495987112371445236237997582900837445210668455686478684785017949976974764750855044345958122951632384967506134315102405218605133653161850754258595933912804963416755713212746626694688095641728477538136949190137575851277254440415630074050215028311430625007139020129896031269837134698881154587068501564245840243587656877721027223967123808804882099014233017199336625644479600855529532931719823666313381204885052668978587061845463690287373091004290601057433983149825780074616689805470942184790230260916641540182338632718340342150042117498852953580584229568226030651221674062264348094739547411420721831831173447845766448031232016492561714090033762647708642899235652258883763222100378550112616016634932765563111900210721123609535665547068241659030675654834006288425294998305878187593537654831324395888522727625074935402235412338975778883284244405298932752224199865423440030266883278155675648135626374541534041156474246005170942921822273144138149639404117665757737725010878620774884296858495606345872806287431788497993385617314425795600625438251598551453022935164176060699485935263708128786929046278545919306181085393591021328010091651103911210812800157319608824844365665519648522760073022388650637482824307538375087738496926527763398421164558307774531396342381305333198192958289147338661269539449731672566724153460346099970848410626839373598212530889552180354864231199496917289715192928979444467023800716493481312442459987903393723134732458668721069655805847993280433292630603993665555640037452949442123044809557332288545827994107620461119915224282845500345710454539313101768225274874105279271681339742950116661812766300102988856328424046565808543181905015498553535151570531482080556621243285335752769129124966332965849669092272519686000275197789582188736202355158403119388882645585652347028452667755623663775095447990678192001149385934917015952268123344903888752823670429663083586768678500013214957359513646936536755511403599040777286191312493622272560431452772167991915887276131259642596049700929046535519014397515567755131561620835072026783972854546369254563241590285872587271571851087999181207666563538347374159770714863677602992272959404729257554567983549690693614284105764982037338644452524391739431012449112817981305292621726823097060964601692869445343100489332867416772908683067919744541543614729479620214065518232431262641153764878077060057452743320709652653623026119641827265137579272499561367412879118232178517462340655558095684144122277122271557358073371285028555645891362345394022552926007346250991485388065874901586474392879101243389327371252511842702637332191035830723186149932264885760526825658141871384562852802218862007696267647892530708379360758533405221109297837839660629293119204613981064766495564816605355268713351682698746648959873891479006434628922182680883162607388429195186249905229865398802128390007011088255602077170592184795598246128662904344930353834746879653446222680552961661356416997151739594697497386947222360811547961970680409012857794471590383948225309467282273242774906227928119286061892628463140299235657996382483303556544299789586520990478651495686146681404714500733594803131365848549565630638086517793951320135825172279577189324130362446209585164278841995168092001030632636929949422245386486539872769123701305299563058053944680524695509891214324319818486282834042810286713360607480230680980374152490154392000093070703689675675523859293819791348349437495621636233264880041903783690591547188740587733953552421120333290462553803565624328563453706320430492932396663775571973297283933265585766493742592365475607989197698225427169906183053065123437160591451311680757163555035752771152916078492376233223692286378621337760708374674011051252338060995092423116645919965758234913341147345448555583991667098820954543610826324279804355506844619341238780075228703210116411501857623330214740057315925402910760191583265505519047491899704682123817655595016688912303027500788056507580049031346842175909606443224903836851287507090680526328945378274709136103813730671704077526323169360291748270722882647772515956999185710259156904217363646052031768445574284012693294274385149515260137011819429654618851237361959927909264662123961296099802436923042994576929052539878192253564689204748617141389551333087656125837520131341923701892920552179724575416356342910968488237438514496531071362763523709517411470905037511585913750643702019058445143752510437537169683331824105672176816941540307974353610360445732707079611600143005292794212335064344556837668000430466202618940210851085350270371201792832329893172046291789183288459279138293506627031110328120336535719917889650227014006028463586734263348403813815049463607793656747165626407610804195781984081000614349130922074459248223726232076890578776489770217011887192262413492472545176353078634130083526374845155056525625629860931159833714113908635498492499774711817806335798866985065374566128050930185374484380156460353278157161200122544825405832476437276325106361800805473204928964115817623485116597295894508751449052099563050289391267908395771754123146701812007626360368604027590014058286751176936234976007225488570882041829932176640505832645887086267379959940909947229364871136386987289617604723233527528876686368991125725878780966532888780151296236250527595997233120509885787330278437617474112850755731460734437316342908026098665577494117820293702853393239824925951498603929008458681784059001502829840148436452581636428124681610077608519484637729698612780243409947746288433303219834358865839398020859510542638726439073693269928371482684703889155629572690361975374229159718057195927499315557656417855737505079613118934633771016187774306099821854243213824672968358207459044400713861196502170724220247317680216276175569504433940639906956998302035442848769598372929821572606386279646279113429925129704904649058166376858495677167725715454316449191886787925707733389084993382002862170811545195972041619889591921963169060382158091021286890230248103934686106773181389529965890788642975598998491279230133870472216119701690281629676613726294629132945483098004213790123118486280645295494928155719344344954918733919171387484090848942584848729854942532266445244776123991470666812787566786784371059526315774565252022727510164656252247922795523959421371667485887276659450955632490008970742506202682701277176541777812417595017790407588062944089651966374677448657745649613869283329892881120184307874245432265735553265782121959459994745816028150276062718940032147391783446073827759119202210968980796759623061229037582763606021163372172341243676462223072325836019216675643329359970330702055891840874114664851659034442324963656326813020355381996904852410738834444505620361377054263847387212546062369828681927966800722289252717063234963486201308545800490120353952789842460208332306467915766319658793329342156784380520215572985391107023812742873459692564177666291847426228315882261559982307446859666695338069391504238781354219526222194651355348205719272397307283547154768226795659300496111337343536409446183284959422172643965729761154468640912182763903066366405768042627377672639103667577893716667791118309632673734549217038474109842181929932870402294134277708024071582704529795334331707700424513047242848925759941829279569589963227907964826143743884670720631936507288012420944026765301779529814686505744499320189253169661408201033347347457233172917770023499106040440096220881460575052511656813910215345493006800374400903367877614928045919103145734127975125257184175473672201228966592953624045339708271462937487249399925801450625861099419208086296844694610325740923205322982641302460880014729134560750695730773976280294155384827273974729643191575726074948819348493419687313623148043162678373835702377931754770686421985634510543468853036969036217558078996084075297755665635311024077497985395693028284079509156094430142012579542276043212301716663551392935158862828410385890199134433649829898294376442818092696950790299368416228764022920159955626906220456651361376774086201153400142439897964161262181684904076865976296663668273608461936077011505752374798678937001009516203725342619046856538188188327136477081429300700956173748670222977225028664663601738596876680780638583138799490240060994973905385651063893589910794337084388640783365544785881598618384947430899788882329659752450266335136295920436759753392860084962174180466303212415308853312108594983844476244960414742549812729544982232465409909385176746048518161634609308229383894345859642843570714419759466420493838746199953394806756913314507997508658785434998905065116403720678600031274330900347190068072841949979454189150778847802451303099888884716467784918120449119127237579730835621039493340962416701851610581760740477389589258559431991721968476225638043261399729804517116231917734119300979381000588869993473304112629151768549946607102323347520391207000131425974724178283304314948838929230145849072225316985358919739869926403694984573898039793142185178992517031732724115886696382017886935467814148188365998613370087528772176033832251139280903629251330785428184475952720510979329896737952934389554082968045845488026897972871681217612045996020483299138381131286540646213997225401984880374858605268921990687754092914860751166716478028895820992904621897109093981218115155299274992663663365239772456047030754131175963701711424908947667074161620422977528747931155293366726245764821268963744909814685912670919482117005702370392096268373036654852721716089778942837077168847609422616070754652280972051969954572273140353550107044723271670085026414881048019082458223584632613796857593451404940490168133071998147345239943053283609171187642675682892048750868041772177189873366995867547710020990921918324637986284777826141089379748351778867901080590928566295139470577011681821290154716933793366036733885058678237258953860517031291842310904112909024593695403191571296651175036156264528695973868924916372697308137894820256397430099804122867056940439220637606961482765154743130098289730421281615087365912959120921464348830059688587873903123670978213015005508226059042196229143719287766416649954122903155081655758487344153444488378990699163654897451019191217387603195316129895817712234314334583125948045605603514079392290994760942251991489358681580683979791926345427062335167634014004891642466451046280246637051076422827550237003346567685544651987521283404110816887614638469024834336015935101706588397626449472495578696082091505906805170703481657560720182298010470472607970798399901019585091774048420445318499359588129211124607352356963736450846546048948204039206290524349281854532226912744881282845915846550261288127621078266367690947215710267063325504595423312900886352212205389268504614329403556954385407688198864394603305730277652954845107078030110708368721294213793457802493662007291190387625132612972611211763908653470223650264059314107908391497634768297633470438031636129505676990703120462203158777976990157274445179215555806770170819344572974110713001269968453099899936239055966850309028857148924854272596565559937403683634077802868738547380325805188802269619693730528068664939067614868143378816872671390519012630928932156025927754018872831123571647644892758210693236006691164064632795590159198533846295436087093849154404378795336810585838339784141236614257580674548879063131800596699075335490410099151567812985289215472197322809383120522806211837770993246044807089119503640353551263955301796910252578814540342149969482805349448083438738949944695062812645636230050818636518055970306566581877859271350551736323767166855215961359354427388246383279619430219254557952305024446505232361523971155852751646542839848432485908854153032234853236315690892585095824899292405751167219768545874709352037285844526805313626315936467034400769185644315146777287391446768577856091137633363549480215814963423887434288586048253678516071213710979311704703135600116366835801956998818592663407829082429671000965026234376745073395384730736129826642209227361363959736782520136072787881243893087831625428952933797478748859785277438627022443880903475964729849120071432007235594713488243833134604291291470290042805881289881276907586307621963939786780438098398128536906944611860164382410895442265880394510710033938220851666607167008311457554179572904525304394735335918169853739783878505936086434164138572359542327898043763673190091468065290051219652370775704820032612653685194355933144804520813305861023248490592219123801197492488107347767030932370564671270453950071088482784207659868193932082380201442431392894079586100636527121576123528062666466348351034387477772051055558778151172914882554055475073212417087065653565522448990770520813986773829722517519911233466535337318276699144544445710064027657955209578727178158717318045026044968342527184505359050508654503394554144788463483303255506465382820079233982714415409328224504253583019038919978801271189273650400537082110818616263173615582047185467827253397797516472473898080265822843192084907176291496395740953413983576987870015285058218051958854730902841121820726126164297477059834871369734393430071214746288762262176850994594802097017140704745834434028749225721477816376415317835320389402488331020711194599633409777958367410398218808610058843232289838189197866649106869800787862384430083608482062269570793551958236724320961214505239142763164261085938200915299459307164359811509744471399610746727963006254946006435690761355048080395552252346783932299234036896773294937781306487790982224320958372209877062533962694612585787218219183027484623301161892836849192787802470304506840133470131692923654597261273609629125903509199317183362125521597444895929012539038729311142783505440495348885481350496182633480614510241409882632467025746233657958488261166210852788614684855614235967594459844314643446023143948486342022317127554289753878443235327081432398567042852982795767230319747780148442895846935223907431983887194656310190393429573566316924244937977151743939275568857332386904714405538086918271588808591616051919986062574341101198989490525667143892905505692146371145126959221108498459953465836743478430705907311672571665359511888392634254724318347884827035739438294766160949289529563023749577563590454037677619891874086766162887566873868109632513218071819935454412044689631688964186378796481740820620199255831873302314991035192530086999689309981528890965603168696185716943887220826974646085728531135598174151752781031092330346762940184546387026461913746580079299680507495764958132058340412485203177241844774816802375697068929557134499602214818158217088931919664042836408913155276361583691155296902814613831790766465878385109276442547547757519858688445541650813928941357860834039816911022339576608888740266573146218234401068704886921492941128865313448700896352736694896862195127660559272142286606430638508332227432854799954728207724699782477661541452434411841076745474507920100248709574284724627209073102026800195766428300292894912507151121024962421653400943291943923231118338465947839008144016093262962430714275045249507827537105771747095136888110026552115580809691419025123849886651710280443849394358923120210001802829913890081885045604464324007084834111220445335710298550940225441130757503870855116921936715421340345105158485638301086768768902753850988213495323229943997092277284204923121935807173318054508657932958689830311685358277864039334629926487621487905021321358550265353951243382881314213917972048733544372623722931207641064036112524798287093597955723584364596776199446110133027101759389908794920962517046845145724623727497223920636085458126815932496638525913846335426794440484699404481673685085997350647574086916713131740094431543173396378737083889255692917939245801602438593630101094347019647538406603130596476269469610390969582932719326897629157678935269144353971950444651800568773183294081792620736085847881334106436614584374512467989766162506969073758698591799608553715668432840812904741347070159944098119247419686336244588028696923008740456350940459976835006176373348234862290999909345604389767917342718752950882972700946813209522454292910692330475680998745193706966996399214654909605190101803581525925629511788816557600408579722911412437441637373886449302552539040003853822607626466931145500775214249393362036976132246090046234947356540690164298044196657333106015318935089841656371748152982806764509218479920572882353171494589597660274930674298034056935181993001889867129075173932864956241186176402659572864665135279178449317966278349752517634939904161363074237098229142320244476341796202360115469735498965778581277744702532542553085702821937612021212307951975619248074217221643242373932213915662228236845367785339739469530432539522816591502104211183980829572978922838642442274083462291353555852521045701137692240977847731079911988836344386219522330962583077380209935053959683383888184971572475262019481484924480526387544182041021511847529192604735330515134903487256535300428558903307590135185020101822529975005126001233514568797015788477949473620974571901924368056556852153470683443159096493184425003391809796157290816859591392014783603141419669124986587679409827777777030700456171857300221152948844594245524322382862559231209997198493546238704083314580263102044171533517455171454659811995808683530608968989527740917440644097214771131508313828692664516064331163932643855140824366032310956377698926978401349593545709765617661210315383170158735588184590594916414336834772855132580575835656600952174994103990229706585948997787379747012289442322986179397114009731020051500303913140630498737416470758352556642772320509456935102083915206596171619219360011939097598627690459978014255390216752076616804863673057176892324437026878760430859948210365651855121467021585127210864370907050322827352612332471959092086199432761734606324128775248490094253758578214202298028727675860551016155050304762608980266929963196534318775508099134756579737724539733584945486481045535730948036130863698406002425019162832461949177168349079862725530631663410627246893592329224117822437900762757195328717383974887105654057730756453223922809225948662150844286554768916385172706054239174301665012783484037401465530583693623028305408069560221998150997796974299715659476919446815342074324322449396549317134879764888847786784382000134962609722005046888691892338382688449141383516757276917454612316230687792414527789261484625179739707831486341372469289094397016829618084078211992713453710341166640988855489797459248097808351038667919452414298482154789485233251227546347511365428910946596403550246392744986195665151857529408843712453718572906524019771435471549836804664237560383133813633152539616570750329651013369854422068538742571714161889625998915090398928791139608992328094972273500749971961419389107790892175387066918273876838685365680043881242242602348421803223779190989628683218548564668691491654379894259070780483434297862472107141375979357536528959083590858175885423411435468989151712635778338849710009412138506872997415809904301932196233974292314060239272575752869072127358436060817412384320794519019926989119953223680107179838325178624818354549653750803390465417427035859577577252081661359889132497165959078437678018365061617319548979479840341725582362385948735037505916503724402002438350833460653588396358137797520899627601089088041031716345254858523640160602617892837311597293245786625779536204820587313469674958221776222059524744499175471221108951115835314281871629356933846375115983142619689398547915408958147124706550050574301809928283691129251310167004659762043593272391457693730775961734813562379417027626662686073589413296814024455446179462922996789655435153728097509006127516829968232310651106300227129059289474750790477945066141080920555277990806136130105593864796656036176352179806933719623438732859876574671057977862616392217949189537774357506223559945883850943979452937247107565125335372515106532588347092683078480646138819815705882913523535085795646450935428402358162926467626923718024343633770387392541507536702695467475990138397401942283678931074014273950943528310784736434263143172196506144483420438710791195956007397691902427156684191619646530277131904696539690182293162820569664695368154505944816473040814281106455942645593515346978168932141342398186323290817425207526009834696751606893497233553887889147803250925404940836376339199314920376998808724086612070992663146086097223128992691741691714900756739335471180596083340172787439098911743779015992620849191031923723338782276477029485450391191306037593024496406261489719704318605573546647347751598540025931878099281550346165563877401080863635565090890033051602625937536674337088496116307233154251113781028246395579630492384760020631128113194593397273385941478118896521441726661229775519808607766968793065324650914867361130609832632879315268369618175874927492583080273802194745685481777418026216876188871652179538868194414841632023947844614730580129670313994925167760546050198293698659846473068811551468803975447563021519858428908783800353646061607536715513189400597336620047685197691184391436479485519893210650198089979246264512811708740144309063948287981536733530451796474333838528971150918004813634985205992098226058919590968666592400971918371380391219409861110708181185885670535629538205428277440318762850109174269289071525463233296675731247533531403345090757607623011506504382712925922692623535909687051335290882519442638064061898469289391172775368474162510799941106228773454284191937451998930996392130450285739447661757578032194614040009073270132472587503491605056559734161824222703410441979326103734246765032838158290154124961433249584807377239391247870788608525165699077639881149493667598626166403869237864574351522044045827498617326193675448030883095673942685334495781930820432754685624061952948205619537514594278863563614902660040971484188765183583149451178289522009419842984364758836023680174115931088788104386014070585640000261590455317537383281901394160393979187422127347034159476992972299245554429585863170272133522122479633451634336393036583239047977593278843619810856073587910538598109692064649251487423931289561527114023114810331462392845606976812448306319051361297989879663554929321855024793577409749183730086320587106332023069474978867874450265868812325549133920837964301365729412949503373622796980637144560134904868733855303624505750629687047914079650914940917448135357043755293859594677943257824500026675250844265348063198857849588311901836175736012073097265618050349313558837520340423505909286467152463910620743821970497767184187026014816279592105702815505896409719385348062302834148683768805743208857293769182424129777611706265230858437662886809969016675371066431363311808744044698227918239083530428595963705949031289212372621002056837075782194840217423368991797090954625208144866675890280062339276659788701561192629169931209277988564757955020825098543665464639513143960818947944170578528362555271172116841082573184621444268375393788480984494722662311706099831566714389069530346576767339245845267931856785763129765579395594402223990707135026339025995068331708473477124216199391304683859519618375073550077404897583705386025277707425107222504386779109833061498959343368704153225195394790662711427263623337266786845726514394430287287571609186260808340229852303535754915230615671252173350183810199821316075255175101247837820745285936793193081723495918307639744357411304622971722703641816243326321176541125927843478772677827854910011567095292834353162084476513881312466901726723129722302755393988813377605705063702774667293434784871205098488729014430584088876559873483395919434214813550057910018463133444671372040979205572188244303855529816479207935927517063048659936072823834007206227152635964660905587795079594820328351206773913969732181611155250578755934739086726971131079604673396149833964068675973817806354163583557585465474943742051184881836574874549205963458378055386241074459662060778233987918245984180171389805343264378929993873893631279490665736266663272862783599204530920371025333163215918190681470189817385942776808087910979011132618602358466719582007943047444367791505419397842950933981445766331408369094686340811648980512793552067865753370411486419297518118254341171887671649002352009134906757741732420855141362829937986849851304512436996328538727677775306652856373429916169007052186194710422918363710106703671378531034460856046722835110982882900870229588583165132811449370516196760745152601358504674519872809689922644560606257215754586982389097705197972359972031546583340682355736239299184184406846623833307494866063596317172674363506582961496347843814569195471002998453648742272618113643192348716046315302865217349650866727632232506727445005724887409161585222362587817876843324236417177255665241900591637096615205721410296698596105058688010354159997150067583981264831702449659689702253011201131286502186492532360974432073034729666665757820555977691507259795557411468480743195132346913333591779968171339494926368909619419873213084739027135267598868053467416072362784360555700687165333322463147843381896916365027479377157414237390940643882086886131285783397444410124324425998917925795394672248347271977115824162924785706993525700088058331652266452543892049880125555390746042940978114098233349691686007040098931402747115589832689863091989003221038189977968784699333126701732579875175167727638660400331834617769716367998743281981636557708047682404894029618908301802591131090372769454645171337605279833180017714400544675789727268730055033470494190477845575482148961743580347548672482237474425043297566837890326137522823456634511619759621548494831208447524368960566501303207043707756601214011241828867836359155340936574092768784869541348142607014327386730723105468165478291784078485041486292524378334149214504448819780329917950743601345711087903085148009420247083043933772718787237236242962053017231364590742122453090781691500538146776608176387025502205932550691835971119861135086373566261842777811596682455755956068391722126014324679618441168541552454847166249409615494355401756619795372276727742874846036143461234951441385139182919217140930938963260869455003871766249392312776098037875141682436953802169009371693795094668830470839968078944873813878432728349454722972903738574774835876770947067869674033932745276468454491969494843114867986221746831217949629855670050588385648862737657926373707593515001208510006909986615943485108680380708315903290545294284176467692618385537485936795231415753214594238920339347862546408905931014680941136002153222888182796403669892925084322870979386858821021233723035397479833147348127433840239193057141795608395932299778020468010360199433517463209612354686660100880288738448588648714698788388439263274038060517375457695069559003648706906057036556437242232866496152895019577221071093241483718094575084353533081998381138422409711143467667761154992531120450466427744832912563243190057333680084283570581313377105185289627428495762832028153476462623501143258893193500940894225709881935655177252959783973436749429173368705995374953730948852376548197241002805146965906026198491934880977456425919374194564846127945386471956378236505074666611081201368909142802723467830934720138116576114788697499557488732521479820018329018669794694316909381372550811900214277504754941214232447636779193115949759815887543168879097526474681366991059425311076870414403354539089004101053372078012612864707309949540701981682831803506851235972829650342065938315478555731496097497094610540033994458304283516317353551079011234065978469728641700851607288286548494492746065783518552367764101175629468849450651350193561472989682145992487915241307596628443914974922731427010998419692927752710253603121910416828598100831334605872777641576355635872567625778832834390654498528289468287043684571396509078904234271696688808461282439567177175321140193848974984508351863732475057500294525358715095441005783428967408083083014489574414181796868248839627810099033321091902659714332205659094950535465517381668242795892248637339129733569100211460882475611212033365703834012821814803445598091965989942884397334275310306910281968286186157954881268078375814130034379740914246067690984066099113594865685017195895152680129250425014633667509321539676873177760350106582448627989640869840715666175976471248799114629133797717272034416094338945211652686918075375236194566040861798640316535952482356456777659004564711231415638752769650152459883476590735059925759858904239894261201018920216501652506210586420735073083158139154012805860926997384804395269732913644238373875825297526949314236303648174393009069876974742610007612217238415684247967882223507177352369299625252383890789999393715692795985315296418839850575155420618423143322908057804479273070005033067137772065574183673070228552166995022693811278630291438799211576476146189515375011902677573214746689284070177860972125125970670793271658034267020458366372554677578267049127511105045287682526902075493645268088041695120232243318431715581305628761533480398829038326134568945079878513149343588514053409333615844925049850333534489679372131222344351610320838724546690564627105812460088626307251186571317261335429476053822817695038050199693364618076003085408210187881293033716859509164427545337578042644913584679177274595580678488287110523007951450792032122003482953110395645937511145507247951992323915556988719406271790885619575288556806356317023904460177753522336176717765606569375619361936259570068492248438289144287997784280102515971795248281793420502299436973398883127868943808836949897203996318068961300457849994747160589353382859836907588754315812747946117347176037222864894713017043939851361097012482183521386661878213237661644066325418672975483626552509819405277358203074690541843476812126464070024059146538325643599928980181837801556911150639925614899522018524983531639039060743883264204279427190585061500346943196716063936271271613698936606884718153250426609651646705897658429438340413344899817035095852450703762508689785303360151772974523008771199809382021820028322481968765231796275031501112089358880755608636066865227256202515520460354981886416656396653998349755025004435173780781089119710070018545060791121408004350299097653373706437077233795789645795444918986866109307292337337799563710281538403132399291692887548885836458551336281031303759744659976324614438827177912237640879961843480016824636828892436885904977916003401587937039628812413700900334751838317822349319725537679591814632566930373231175521186522026168016458653314791903200556152331203765847176226830695494599350991218583529927170186624661955426505557916922089922093741606334596628286502770613338378526594052644118301016525597812528890624605752508252247153754939653892388432972349888721881683584470610037747975652375799001973639320605326864402174329372093205888407656512464794691822223128373499916217152840416846384365662531907221591646315908598563264565382198053536010190347229590777108179639200169204444323376356781166798441323030035666964180340085052758303971521530949806519948077634371858234670357137521901262395972023536669250607997141286662328581311030018266969869823640562019796523782919021707059653703117475390326813007868450086743645498867023173108112646275502198812817309523621821154606070128730665019545551503665665922931739264301949428481138309247705559473971238142127446076069623321727059415071388689192095990189037063417550499476759312753373760981185699717891323721485265849902535671806319315337384020831894401073587282313964474908687227444252148435179672785678857347820700547500621577872437469506769023324196807886974622285060114326180278742744742582138269439408660243641134710135115709794102376735635256723462415866084705052961957932501520854569123192328525401220298972794911673474135273794521445148432851036709613496425668719787861709389007902144602546612785421699525417135547859582512673269012474627768987503498132426021418733141116918758571764455277869220894681448582099386264106518702029329053318636760874017558780426825282696901148975915684536323706416574998600184962044628236036842135049680577494480361348771309583721967331489812688341702069538021919198510008659891170915738184183861518171299838777200946775617525852074096279582719335218940504064488112945616195339327821288172005426875948953314578355749200485762537506830978543348953749753257689540547193262709177203640889446712790797409583009128420435770488405440835662172458994496312935924043603591335549639736363316372861002255675890421695160552663051079494225691854820224572257207979517227732641955072257969272168590521862847382835922653114866886279153315683512181370708836930207259778311325318864947370355105504667748030905239354064865871056604889122660079948039914958030811744089819939834038538342150980211546169303585566862558924804945443952395937293139111162773567353194799563719543744314420024740124595768648168708771797541412280339427536240760597938490473570853579472206359601802328292521044869628221881624026189256708492505274592992522043821882589502134432817288361219270956605605948440406703338861033858687875303104204204056881388993847957813128768098326367110556774156542023666440976680815465204426451613171354249224149308839732749802643956621253337940055298983621960461582835930696483218115000819096735276899056994831971941769842213229373823393721154834252919086555097411606519328097956305605347838895068252811436099764668282339387484147193960889908038349076260259430744797673707105170248820814454853212245644468167341653226234261905598314992000609263152692067830954902342898883882152613106819740137195787387973447029502904354408690406867599174376266222394604644349865567364914154115744066402864169964473326179953966045214287917973907705428621525054818912903326776953009103845324520532465419400413647325481146066158188186799068170541403019549200713223977220955027673114717426731110534481138749570016367722087150905704383300431015816460024854333065006998569329832832395459205302610210978295088903946309864569663125919187425338874659725268649307618340981094002430875702962392639920881383919945914087834485673412176535600730111166668130254358882959422396724436157676480274076375065714290019341271936834117710807419930883873188575972580535260821793673320670535904901593780487647434864838718660115206151191945226618251320227822988318830616495341012214908970167249374560367666611681136635673611275999547543645657886471477063521594380338550111827742781193369500934941518786797115426549458043805950046430209855126055327159809176054110401317700737790673317874654433320603331763327644165301699938815776879427997665848209763632186840614370031851603674389368395181518380687060129238050410397093701335327540704816441021080323233412029729453728390370391312026514533277171963114320348795018029478139154167112254682602066384827323588891469237738028518202635894691742980606882641770648736204882730494772227608745619410649235691294497055988773130548738716392890728185889262432316502858409886430150012194712776494136310336730148987857217905283568530745171668376252698743128033407287120142322888651270075831658005826796599995228141856216760614086335941848406283815388207702772222383059267825239772896290607290476494507548592250511926175730777005829898529995918473011230078011937265894954943137648667078406229598481528162085638648567971310461138148812316618416179597623720601803807146131429105500744217055672629121554919314057580730274131699894362360595224507423039711621716494503382787182391721383280661316024416564135723697585915531673678271136863692667393887465717684844287076554374402586230704412288942484338213442025231688316819907179998104807414903601184709332090737989268514143739096250515885033618034805736962536122382030758400625596895315128308792622209933157802149024182832227890541051503082647762367721619816706259773830772812786415270911274104138289344174619221534314883435600750296018350699304537770071816600149171656176193032057131018075875511221684489694784177897929072269678247225995468397816642077886293360662992675483376352634823570566166223306904993104776460040774795790369545327077779862485827216826675228357244202854292517696899124839257446289215971932182438004732407150910722559913507323548924221791494984272651357437138920132223219443638836978784258118448653181013535998674372089887703992234288860553683159878274566334260006052785284967897252639297495200599625245679986690983574636110806722217622811807691920625264869013641532888344975644253412796776830577354644384417106088410844141037912472026065451227914576587848567012746683525904795253781432452168658310913366139102555828627723984610952150923974300726851635724455773831109277851064017385959197571566975693682380039304349564336982618604119997982574422479721320629923825869389320511631138359027223978185629308094563981241807236611575357176577175091525862864244992398890845159196092623326804154020284991403352937994886612990584837989974532198280774853964998370900118975783632922156991006513522516477779268457359327682761052771081261930506541554620424278852614346119590024753219589241287094843962436677304078282904295097980336698019966186249102271524901476483474090913930557855179337105088419991350557649168818312162668498949619048400503943318012298816877820200144492999901403482280100765091766105003655188517464385880523002918408011229443178528227624140836036357336513617078847921141562124355513691112687490209219294994612274047828983932385087752829253451471516565376335556476399262297744756561928502537832594734218251730746058849542532733503487603562357419716489287193991241787510176014605930258256911426829351039928962011749465103455266937094608260072195362967924730417335114901782640523492069169348865607727271732145811795659040292770602319237353954825786592886462884348528526825348873750609726958934934587044101062886316903618945443068427698726515167281220381812336001874046399131421710754135543229384107296996321808787177519730938666327606185430818902559606867930963592044069328545359665472539171193315438809386409188838136400160224151781605859159085820353938780338296200821409586815670317113139862875148502193691187061827127541017332355576578305690711675241814208584748223981851798605404189046121887526287596942450786843515958542051141540215503297236405369685138247495827220057941325205518884347905170867245027725908507760268804959261347074275385978300375774215333246616369314681250709376179652700587770099295260687666281716409120716092933308815387639430752889779354800620945458072225107915676603443515845247560437020839663725483717936273281068286082891709423414454092281109495574619878908754989737358077357516057444196893972602913518664221789448079327389182916245285007379103218027245713784277297999090681306053228414600990077698226147928514784499681576790509290490251803754608063301262410798268036790021536656525223735824939682620085077653186321481355706014649087755855014322834897028558376699777964793929060275706569001926399262952341824046541465511886407912064464213323797086603172449508444278682597845354473145307516458271978532834258158419342980531029824883827999285890439100298781170665388332786779813654750270413559999333024626190811049391862448843199686765783572010058971263510100913510237620998883642650316390699576275732242485388549002420214588325300653468044377933360183287074921613299388840086118619554643342831608069694396712491330981926923874937790334723097980005361858485283025147638669491520745557574389531363440303647607958986279085482158324727622116651922838975262245518591629723238088745693836794956666141808565378105073192301674955830148770041132113704132471595464645480160266861083603581867540763278950475084065251046763834685859613818131531429482738425449872106044865120290887252575181149931348256434052359445475912770308801120747983405998437193631550871177984491425339393624254435464982285213146567939514448104326675196927832027690231689056518300202192161156273030531804426964785229011999527340176092228257643138389550778773702870704498678896263755237737174670821412188225645736023411513131968566942459755111310380363968820702702005921532600675195234857887708906602029932259979608197745614957624692059906125326412993796430544113860254758704615397092791436324623173261366943786549364958074251621902258871299639672132035160551711941414171711064213126946277427189116564054712791949105938834137615430401381317034612174435422639145777476270722659507521056744671113615239318171327740334775078496040747405860433074111345414598026409308209688771155105695226772798089447194067858558993273673253140705777657353017823327817347084150963752492507429402560064947772534233411562455841355327977725770217319468412015247866616142286554696136834614700631654442715667369748279191042098822752414034341001416283414912402388840688354363401328085201402655663317415381903668740103900591632239459034513886802089207529266009483871637793446557346687243976613473828575220925156371720082071666955578952596050351873781829303539407734491751670162421527094211767232473855061745750250311498056022381099948952356447198129189357907571046576887311453125221191496589490052954590515675701452079492342913394200651349951438045107234747730060119699306777906776824107271811279098968384526750779422343272071153361342239499877991683575095569687698750832896422721852654592027573433462291886686939385567945458386653186914350779745883085181605566636178995439193976530882986072640066432999660308038017228638903286199343515708552759995425764567556681256278385199247209586267017257529064230787664523457264442845181926793259936977469701695951838633477653134746947177198115270460022842857820836803946190676287092391249052893558156534956984742354377270838995000676293334086361809196781687150588325472726256714577314649800453048617141717189210581191166709389640766230100387703153353409122894237379805927310616645007976983069914278225107776435167371990840842620659730173098646543453759316099568560366050828171463559817567384530725240895169722747786951315754417344454722319523842469417657225689889311037411986644891577622736979187242055865207607989955858443011449299014205538710538737653256080332968184546168661082811535831816796143045658318071729440669411586376384846110004382178673118359066846845036385453102254236270946042934406553755601429869378509382514199542500930627558483658264526731879554581885165063002404022771824827471174699163927935410648616033465991717072686386548515713942197487119163570728432245983288208430295855762347917596524910775098568894147027692006548333496695848885977090880307681176920005391408470713295101728146121870919515180651104050378156414129085392169810867650685081213468617979519258789160321266737026936867990729772817176528048859756030785031816754411800485873461171377287081212333614156290315558711447403875899669580566531966052836835225243417605277332934489709242833528086206175715818422014806307368737556756570745706582673089961967483864487309105251714390883895120133133349540028408932790917642074993061445626337379960890861487468977446233380247271000213876001300164198791415031148345460857627486519359969189675967682257379101622155788613231255233733539143843164432343125056995799810688572996058333981035079053978914876141153023140274880090713606348721978270728572397062463803497628206843888161338477686617025781753525565289275154815104968334418539482659075418330051922523845166115509468050771608516584944585498885652867825971735478195724399898217504400096065664106924168772150111798982838110992010825761878839763841332362174731603850064661081891097653601475389658235243305700839361354004621407520683075998941863503466920355087624862761543111503684306676429082800744409883945324111861402772721307220166170405481233481404587334350405037400640048826507871127914436058867195665761766084306346718539800583107749363754126837379073816994764376518091779814851801570066421692286311301328565337291343042641611603060357027319540538938892339844435680707069795191913280761647147890317334041302702781450140747862994037749300647503377440166688518715705453734526709698304292170529597434675350244840004586064843212510671827261149912555077410283770665338637717120211281923633582333634038766309968138210374951212629393650538148276656110365928601709774654711167537735122035630075054294720825546997293979795750019831806784557491270316937506139078241254533143469815572851473507209251404023028448931252592843427738742020066023604162470003403051318469575972370945828757593832689551107824255905237124226140278137120057383347299452371362831228766686722822949437157732084385228665231992849123248528214209907682374110310530431748937827213276787865767245074580801303563365068736707359071942487583967331579052340474823998077707411455513131860802577556692934790466729554212989400725124376653553536991827636459604521109217030113777192373257056495080197838520131307457041315612801140927391512137410920021536731457220186439413270998821856217565956593454472985062924279842233947432058380651422551458784227784575165314523776009283207874579015939503417778540345247986215608717039042466876449299118987280419207260330736865800889069795674057332863211874860253691362227711170390376714966175621422787104763675019772948778697155170553205021565649232122991575881926241452471728142492041825762382575539221373125880887736522282642007290285558876661872895653363728796379003490166278999455845572507232051084269986443707048857956232231282197645270548569315364622050744086008220164929694727237869663189728853753529549666452944123839963658670150965468718828024645996291251894364539598873457490217436540820133920609704305758863484394659969361375113669922086008507819190021878435776155930155395592882290714274303686962084517716808692475064253990236003976602710763590656274897608571123023392663398652398457719280821190751060945189042763079392461828830799755183177478571334312823282611215450246737271201163721417916891078903113369966706387684525300759756246752764883645190666216276230738850097848833668585606757408611065600519414059985915946811057127179636044550517414402545962458787897976354217883715210870662976618528428140493331305620685542289307634592013608722600741527234635029438916116516679812840147280071181734812916556039451105737266043503924846951965118663270117728399871259803734868520387814457360903989137798518967218557941470147578936076781244205555533757474786704419171461334204425205753110107928952220798960062537113023115682724342731289200738494541613338649273159817016898766960864642844838496107904322917213332789140406144329435398068987045011338830446625378659959556367392179771849991083110702771067190624724189771893139570354097467314946612112539548178352377157073988829716910416634415102208047022982435195319585403114028385567763114141596271158389259474611576979407081235440052461052912538447752495471821598134678282510431564947033719450623152791117464528774651167448893210699979435682110149129258621397010208745323654641407142526545168531238473379483867785537183848496938623195854267302067885769105745674943978946578216915025074427650398620061365815200905790359182816148017456998470783984396484937130492250552560253877733801856229036997713370294354918103486670793110644434598113672156791243149007173271354227374631793217300971755373635075287477847369361952808514424442531166491578263917224863277460706941835317556506015944046716650787309712851114516831425539658871799031365781193469304017768834145175238533600125784407635367123495080171102680510462781859364235701439131209488143580409049813846003499713666533991597525203039985161958980583070019256072784036969372987355652902436431934058514890191836522571292260124229510762403128346440328626371363447000726319235152102074752009845875093498040123749479729466212294899384204419301690484120439064628136409898381872779754109938748555798628430145920705943132944561254519907325732423758009476675810126612285404850722697320257318491414938800048567428924738906263250732112779896207914650467777505065803053740861975493370192229715196040997510638197999317262808735356538209272064131609077027154493683611405082743959349734198088954680885739287827575549560135528721175606378088164248283472619494250173262899061168714878230438237669492942606362727163907367653625638160762359075948508844601929418886622488818087346887378699920397031288596996017258769181003700816252390760545294721246434198625295689108008383274170510149523239071632714747366178376539688181465193352277875019597888774577264962952938561821706506394615273948637928937088771395347432141759878565597922740385374877661054677967167117624007157977327291334084250070899865095922967301923061854018167876999849942620675315103639815506768530284866243243513904909461800560042930862303350415879394709275732937866926712337372078450280491905767185686864028232183073390513627845094916598955953176053509312674295655136388158822585331911172561774015301821047842798992089234256838928823515333838939646301814697395601106445886394753997511957836676621995158148158947352897207355676653873486903537731953808435477173971094486798184856097198761950784681245196390623022717031052887466430473983155494282250120359663780595605428107345220737057875105407164067644650681691711903332994010867972656747202603268247793639799214256691872305658145308135839830905632027312851993445491712611193348640246659010696601729248133992750019501154906115398097683711891530930313156169673327194586945080340925438805708665499668913533449733826051114016315847137918816375896834656246487528929867532867236961723593581570812793934383375320368768139885081930770363344279292685251940688153887958804992480420543921225835446093854834962761303924215560298975364430981431032769226294924798161549839441647107512551181553570179730727678898001648221542782887728987234181377871356701841025405524157223483484948478802888303148552059567556614472699222907491883862096694856047243967740004512026012119591961070196503705981586538715435841519485296541606459051495513877893310646174512876470554747264401106951234566986280255935862907561481439330182745833906970860569817870962305528031728834987601598083170420609143081145062822188085400895958548980140800294053871958507986051104533306173057771723108723259369235164658325283007442498447748312108750859121117954045491849350455172817766752470697594657179681269358342683074750464984507705908859544415209285302147161061280040835735981123459949247043071617699903761977618270559950383746870284162184641156262362311780113593955763189855574820596842545841845144350146650402673190910037960917994935461281193702553080021255508134527916030099891780984609490838687642030039593955170823299379187325562707332783489072650860693016323298282730666922596059599340311453876371646813217006652344246254976820976426434007878270578360195883164306851461515285535277627203324090217769986004666197459451520829446337808852846883272042795722067949402761117152887594587523373223738448839653189322709052250332346042167408294398401713553077349457785954719717297644392388616475907554810932486623097354168807188773041074037685423274376357640083320816181531047452011938095180383698815989553147754572558946114214593105390527148291568490155195881834893036022266501656006743672152222701478562260205633356013449704898170692240920669732426109422184966996747897925555930799668430448862869064164060234507383231477232683488531093173874121246940631239046622824328657879932856707825854710788292167777449091639511561648737422997288365301947936978595371338594245195580707729250131256257924643540790951666396869449789318481286308674823704729253977134892776492548779836638777083702536246727946106454568949939054902335381906574032282931576598058570129996258305773381607382196292382203529840513066996380939062435389648345531932673860270074685010472280376104320398291593375750585214210075788005837586782375844527950666236490073790060149905511008901569798672739652288527894210480588031349261082745642891369071109965267905820043000791754871087885742262301279838733125697642024811348656260187648689513357688828635766788271883193283122627591614850618296495060560621163424242329170524331801049379293044828490382001353079754815588272595466766754556684710407674848029368288269361727121911580465612325877013832569462879767130772556328483396369883787504778064019310750665570178216432693987261390771751802362246912567171286361788274063343231813722676391605048132409528012768816459381511511135235484045185012747227852038938314069217086580482314129135465274528667324039542396546918128729045104800313758287529438540115486780006906236483336633077585171686273455516707404363268009390375531762929161973977334983620011372777865230499758927793670061764905968887077954172340764095126845517305802807482281343594949219739953995859072739310889426839229456066269721062237036155102753320214952546742627953525131906686994380507080198801447722968414307322405066104839620556055778539180548157600899188856460059642949547290799598289395340340500640302726695647067106219576741743281463513918229166481700108633238239556244114360341318076816797748677642280093288393223214321156448821042983050217041858041710575232497375609542912586661358986164070342191865462952647797532161938155154058337703865773050951555220463138214520895231038385081602136880183134973789042214520115346946409169586754662596257576479350420024005048734776808308695927953651148162884640916249492532566645400248573464546871843917525914037304428960210700222808626075330583280676397135467160266550937576987129642722419929340421505828646020732509809810370445904194387384883476820146384116135081320516935840681950804739994627691730987433075446320663118095023959611617993543699233343537174502744510080597761164454342940523642662101318241857430941445443998908135124249532066917297776190330949666116844374713476844386538913299619034517636932582337412973719183758883470077804103690290242980058680603566492876383425915854939046341470787647407091112147552262457620873865852971100719985714625000063997028254498116185032463990184383333426838485894842370016480302877225155624391841089850663764965764322887323484571849065193457340103524537257253333029922673027750403098681154924822722873684997163098026407620030550470262488917783376448560896757047844777642341492989733134230104814356345170217696290943525716457074682547427864474548893924470514946702029634610451956163016745998494432700667327578146151871644844704419465187906092673382540770056318124391752761148582257287819526990525834614088065552842476405177053871542172905509755995109167063548616455031116274743434079233579331315235662283095771771309766199921715025354327710532316978153384906121555347570108696687600549056333706413714845903547272843958497609214283060448753423437146690809558303448764163684279419245459801296394795024519515154743712935712636575004956169526905074006441001488409616990773000859004599154267818971615517101413488694673611258000390840015244809874447822227162172494266094265635481588940089289759694929128756101086606254783443149404184276996450000791051480521664951694623871923115610980514062044287409715016301562215960611009585920665893229157953357719145269328051812460256292468026088812545752208708309533362269455695488022458118758202494631960933056100410101874090677497311640416895429281103883590496156010563055617551647278330613845021257622862948525439449637412420358228102926670888168040649511266671730407418421975776756534322144044968126793907609191199718036653103446327657764034995094071120740558090416636588120940324972322861386380253410604476739363459130871757437427174022677380588727304254781957174245563769265031702454990287616172314896396395080981628399340953313668848838179714609665134207152050524732458625110300937638546070054059070393579276049789988414087224789002224805987377053194363252843522873554979859228712206531573414558810964668029804624746274740410965595292416967035775283388173060526769067699107786796298542975210740950805276095186823228252335924311908038118463266471517779671621469215061271449511173109042135648162644331478107217772442341332578331089172578662479881500787630865068494664322136834130239103665345865503939202386952728493327977052122137401644850058383537592598990452664321077608736893866656096797033774690841758375270653763136693598408386009661917253424938122195062618559195563808403721989778019736474491743640686932195648494340531864033281032239366098611465452974188051632797560623557107487105814392463025476426674730205308767648481887497248004426281856875175653760420429678667600088190475494012792403097117440806832723513444326119808226947133597735169430712880327633883888286421914070725090673804339899293306824894456219705553112994003945423565704987022468489811612261706122954399578227265158866874950060661663305495997340956522733071142830032262977166774291431458003827835549037120799108552830165415217921104854812826210093022927996093423201184085469820689595433402307049927064553389348536293652814484399028494157283694808239546419004426203549575933183828971847967328443943275147133494700832390485663399029176101414005812621444787397692264585847313506902932923296026225790925648361414419265874239992684472307379254537755272212242320220424653895565888000306078456827188637451902290029830634687957367870450756937757433595443562986976018120185955700879689492988718351866519635535933506749347546589503515526534513998337438649864634189715572987660122954900992380448073583812116663881189397041039195191965551842544731500695698674481001838853681312296583963013918540790624294311850715890320649002657877662286190273969563661153126114668875407599431838102718529900496742906412193275703502902513711820109472395012644847619820789394584612959476729790837649051460368107957826232435850016521953677498900607899548108252842165468164857900530038212216904989921651120194571908568596493739335861042477981462530023174692867895457289295647389133185138424534002302690089039677692266854856978787255736499778234426234125334559123123210376214042961028193132298159485918239202977279678233080142735393190529035807792509512294048837947984879269464755135812254564643703458442806050350630294154724429684205955412472997738170711026229213577879947380275611000562457371187104012092323125326085960314300864098751424402444944762347773905375119729938064978699620292358403679088844028491603808715255085994214833927756321904022493485395502314503515073868403572133587313909472108554503405088132973075973189085034563827601115201270798068982748345454008966487259302752439961549382102277340491303586316262562093446655846681185993648302752459984485662045754285412235925154726404655515646637967616860547818519483214769784080083498750737226140963685075555408520001937086199977137001135668547222129795405187393581141403654788905603092343087241424349425646430742099381198205839489699735603793723806098284450781993118264648593498325292457923806772913549485263868456508250072318582670356059341507705757891008458444830534845228545438723871848138416107128296765463973925502638526333218755016333932750488394539535158162174223849167170864369208337082484030113114611433133383450791559147772246138493867826162190485009620677552221639863668214789291328800328454594397499855468190734329597036322736676636343493429518578808598959548561932883172762519785209359654634488551494011274039015235526159890439664151454254346571118574882820164256407565994386061925306140266453809862850516066155798821425725259386574105282650551436610688178677383883805786850275865634735338052164604191777050675433662170897275137725153800471212692812604303682225302086764927765056474140897870929262050931132279824795159689501756162122241310088037542292365378284816534418524686480772984598575525260093969927735166101540295362872781528174456079448127627462246158486744545334133052878469759741655172378614413601853185530878383703798238884860923190310360757980952625542063444398371626633204228643035175500454682965018589839250583491953788800043091340028776663804030464593462476840828052309008373863038832265523840722300641761247548648593131022431338192200445499617599596284756368119071615118817107355460379911086987920930192659760616546927052493181010691924057732567873274566804283019892044636926664003790828549690770669327828673291150261531639900038932161081032293674143119818834633964606861443610205717974056317058454939522442871285619140769349503739023677329696644306636606782315056952697766144929296292352045435822546389358516091038865146415942089894725450985789922879025122991753819977620821807512282856893055858640808727981598730012357894833811336175086841379965287545936262937190106345866766965675424407553456975786084246543244404301098906639541542640125308402246551396468239105823198589867508215162100405639821743111526618823305607435478246980783854135358217923233502387770978247453951472685387579901247474069527916141668597103204552855770624906497245867624198325673406673984065450622574551698494951986697267029271871445448892258566141017891294999414054811913588761654518917779802671158382125862411036804618711446179081439103336524773398824903306371144843496722598683966561718729507664194609219700960477498074906397748496903407466829688379461107398495233902279087257803838573145486952187225773089975033113288064338007094553953298562660142101478378308439440722242129413219323895573467511360556601398113648068994400396385642675179872300397018898283606319441911233715724435021788065713738809955494952328700552786641760091581996925994287097864201370962270755064987336659864571062453669388420548747331356286697605876715889656264261076518072719889903028841546310120239638759401491558358410517658433575709555697732331773162084067273716102298756563467171760395971558911186143324776458900223993162225833606739637182216503827397214774170403004855296772707894477981061948420478407542534362375012451676348717192557405670780464828829987435442276771453703628008706268485313076935247251689307774371287898719978722761485146329735211549172866089735954673946861896882113737138836167456687538739934108760704868248372771616866249690393034928553139749946993673291000670553070044400395036178782562053956142803541512969824649131402323304146406374924475150011900300953553004708247252775861161354697336929818326536184181517503863598151824066930080668748596319320464920835028885483480914419464476085850419166916932271501204591566460162085032205873988437004390447482971021822529594072821216459906847834797629353767275957229073640911401778592211041260343021462755165475935006816204092958902744561232962007367627600659046151374256499061334744763072786689101358769225743677729174606050979583432552263821599144483825955953757668373927352130049183481160232252556654326529686767396617500973894895909105323164449071514048440112286178404662876336326202270146276999327868837750900230318559448029082158070764482798292733129772803743113945034976640930915378014651479851483775976554657159603505520988903270899373325869916143814329625088814952805039816826703473700076506356913716649698896517368314345241048162645889765211544454126480251671488264264874824041810159126297639967820533041329986317267321671154627126975077362333062288550353234938812840679062074916019204733704196683658063354142793434083799302044595560749690650375114291039194430835069665429394358594649526157973928526493094271382322181401605492271075418904209521222844325076874705030621501015896830159037910598592590443301985528430671826334981179135933520895048125568244506600835658497067613234234272157605332097310350203658769474978442869105025988606035216419488094254303643911169900582517884902815367557555432805753097179978977878635648611157230692483269962843363714782890653275293452448535473855179400557093489063434295935271749580752561521904258564406964272192389227891033185273151820993599962002325094442502469492390507152790600643945209911945031388853588025153798145358095211069821407118871470629684832094950657060539355858104278811488685089670991081902484062834380865133279414968672908537816171289412385601841337204508441606539898673917073165411411165319243901513463965632319011432073136655700720675638122539174122612013290115854494224370415484407858207263949007631482389640295221050595920532667281061981315876828476111243912477531881740726399366569589141329725937635645135400907948838190132085715844803593074640821712232645071563637202110821524746015245819984555960018069979041123233862773013126113700237264665434213113123011598454901419817337054037063506537024152913297774687320204040195607166965688916365120337208911488683668170040379556875344660581474154084920790245899874150213445712482771006122751574607464915839929237735019688409610192545125671600146274974671633824859074573869273609466180995585936452452093335554538386242695082161031236543596308356609909854433652411360108167601025778901171250433665646804686749333657058695433323828531490233286594815433277741894023748908998772938205384776190873245538509662973977782568384334507087783867930181724139320307932148388491927392039238711964048785803730749383086644992983593484655928563102281519032314504908613642508599095173644123434236230710974129615481143693065906253752317668991124059737761422775893306451124733750071498932370874770260840212158009819537966610629768205485481570343082233654006512005740960031874525709538462044272726711821353271533695119847121963330342309101814337281930712129740514939783466857709938645420886660438998750463580151714526460945455984158174849954026897878024989297019378189102234914579467009178428833512005486323876228479493982385408775414604888554653412112951383988356632489190372725420534621739991261328270008386792382972362769987164842899544906712637846064529520067634115657559373519767713853012820525686694471618142440136268533311872840615601010897029285971344997349075939178230914976066742728367532503000808935159790070044191264449141099673081931460381087475413436085452469098511193650460573827909378396451140119343699841735412001854132492243856043893811087760642883464939233705309037408099868219936483859900716769988484972436658162213603948719612034043753030565904808479802566438024939243048003844069789460491810381466320675761065273314480300012454808959077240958213505883213092594352246553058560382113691993289999493890475583339988646988574564550965243955438753496309455812892546725423950657291984030061173106184719553782732230379245959479080693883893022282864395547655668385030090363376378182108514835214893231284042729638098189282562652727395932187514745232652915660659002962339493521472562989526698926657150957078587413322275364616791731689433914666332739055562510133392223260170708676952907351251966479941715627851613559140117555524786086389512352770058646841906434804407898132776307613334810030465186428403491957198652139445304248096298970566513812967415060879639936398657148820529965770280944090066996468012200303677452646617985107838575254968192410314740259756131240852551006099805358409015171145357203787889602091220354234927405843447031035991217187616656024115452113927704133326390359099934973493238803550743876896313690964379408125756717781877645894800970502067889567395499239288013062987485239231456246038348088504158173933577761363609635448754149716449581415307948638116865843347856879468097428569647462146521960713945688418920206061210597550366078208735903343339814909033012111967346730905595909396651693463299999096008424787065849715416606591176057892396854375180264827539399766165595166024427809920008051980554669715313185593270090355260326862358164113554672565682838654599051507304407816745948766898047833668438741681134266937171447887968566192232027446193340235599060523666287092747711295335167222810065169633573867553593626560897855142962870386057246783555504740270483204018071391638954563361537378395620766151248833199453201407744555791969381409094757935679309820238917543845483511726749864695587642055228286020768819057648517389534490450627422091683078019404873070220756748945259119890289594737489027279035215901890157095469818982939823803209012651568915044737667277345701990863012247308830675706399149740819861982565081171651553030086854443811371085287615696676254829036697058193090251306228984204693386137693451513089891510252512189470659020994706644731300010600464448236830417735528320008701096054275866924772438163068480191577531819222315697485447196236480263100553151276135071260285298720822699505326329206605161148566719571608930318180840253626984165691241580844924868667367140489332021663859069827753246155991938510301603359239380069605587526043958600344381932777007351751483390802782404637648434479476163133670777449816811916454810920977413550962928728129622260751067550919026628356717649618072284930884656661924384550014244731717033104174008920070316982551818592318570472023175141714113534424170389961653886270001631918550125050780319660535086082057978792033655989329957564065781293816505701875984976396875750270559104497403521082119792411276658478355471016966135863153475561813308300726976057890007463622462296468411917451851625442733619254023997339517225289054510461515307848307508375534868553951742427240623820809965545645501417895350422291340180656512803847539754816163307826390086980597748505952393642483622099864241539999794306007113541113650760270905753493643120559023846287049387188889220355878243338460827285289616435851415003494735356710373288116598385200736322845587465675914471088265743026462240454476734513088770217899577206924376218446482691611558672756491316693993717945511104778221747548052063334351524447799013900825126104718132743820638722345751172391443893485230247358222890179936444709239183287966834065711858825168963167640736370417030542302879258704385310714244158124425814833950448581236814279798314350343827165425564688902400329391039103122943241268539172872198795012215133923633948398233392485574764259873291275962287505128719450562585036517907627872330778672529218349075648694566103982827468186339750405643460779074297143314235046249392661094659376097304161049493541634830110529700381633409187017343542106175565424165057531442096505273337307580399455248170568407874111634083374992740670427195977610548111633736550989052290231246707857165810741630360996283218274655354573269797150129867980360077470605217778543337818145114759835452679124234935898236021788583840848835230513420450404345457251330850051621915350103324041921239338908249361941679735038230301780202439317175920974261280891101385782911063306070182248748592569143153148414093287732981941290979458107542702161467631844442773430991605300126527438786519261361900980014059282227259389816039470378979943589946156871121091173203281334080574066623227267296531162205006306246788258146231724396006728869027046664009066543526850886569005867384249416687713872820212200796023949292353092963128771889845767963451635134161288668390818295865349092580990646591279152934442056980808620679427601779606447257513350426972654274938323858197556774277644333564148289021329485787323203110258526459211362695720382581667867744554712006322293622491088997033715867311908523659361570166990127496671068937960881908474424595452206319835470286340644853385917003148494306985582132112684533362586265076477248257615812016792909833235227633722628721148579840621895089829913569397887596606947602353044802035120106957667719870544587251426367701133177125518135109505383191033242901191808485903897835829027772494084467961431571837045844681396570799806861263399435931098679674366892376078599559555057572410791426766285953480619801453665785015180922849385853542017618718347414637680027493642652810905512215576870230568844179129066937866715923659369901601157905688881931924571249570320496241204610913837738155368447699409830025988359602610570854059307160939484336259069419372373919944118092205667182690283117651344685296405605003589643751942957522071674121889836644073434677077076883241168054694134873495383795879871702055877155007694365650744153959414092615947548858672314919080479368263084462163509517320757749124605527905540184469724211889324323849664683249384281860319158403057353908712980539571863282959776293872034012782396151750264766319599911486646004085347981941136987657824683642087891771105283547940226420898372595439174082822027387070116588289793141933798099231495122440698808775773030527002447604157410119402104249200073681023186054519298318020502087480669924598282658219031218980255706737051098093622815903195234692614673324718425818831004012502501198808772869586514231456685251801238787773262284348763292531888435134099152657433760169253281343560493604240212389761661654087556693203559149485654485247595905647848236870422762195633574249130308115828916478830535004357027632058692175916412806913936240071532508150325079334991849509229877807264341456583656276262540623208049674064610860476971221009137141708225080015146906052107574467663918416167497470725800824687555836833416617805113751078786693898108122159865821359442540682809745946621079419129702947113909190987785181676790794648115748555503697745432847368009151739643210466541354216030732171636038068817114703062557380561636831320071069714176688417492288273473790323909305703914955894632257317860341313000169097469475592872604314088203267565086903181770059249348418466672450344506749277586035378086120791852595936974384952628430118741185684724755069726024960692574156191933598505317497430444622028114580520833838881086846430748465731882698161657182037607480063610032912486195212768601308273001091560472428384252958298202809338114935826911482068220399922708139225770602753586452722196574601945341800599032314259464892389606156737683777508769024292298374448828352647808290456486414273743154352019971571641010999550823027835229865215771019303922901993763336852585172231299245390093110344413427698434655169039914779559384814293408438740163722089658308026393192109042506865659558389680638771212381891595521317769596840642025400236053173278825417608047975442866903705165301486167097908993521184502236432778409370683188814465113116473353983429201777745765257010276626981868942874903707320390896990757020380523318690973676494658072133287730761263429037699772897523235437175104125326040547684886061736198073828637053975343037040748621857656994585585923798769479341000972673171338016254885961542706058801642825744771926858640086913861017616117625929855187025746815132661049628988907389135344812411919854557204066206606452722022200185544294254637850099007605723909921387636548037398396581823922087295205034198167012472320537751721851574023150229533695009530419790819272501936673323501133839480155375966759664194611489151840596270616195038253992206862399380832493602563197774840085672416749631526503876094419629702560844317831897752895422819621611367686393193486971185612650436291507459509029705113861424124049784907550701084006021076434552048425863511631821916846606365623091797297223811817918964537073805479459062021831418628002401359881421241495752620224332967390982036592494287479805944175266185080028590316198512441215449141972620912678044493460710452805292189729647497719143620898027895269264788383867829648810906899144077941774738868816366085303772242278592572431160447183620125093343552467013076903527181978563956816951008317061602698238090470835214844998671443100182059143017383601039434347821595636234642244943269026023292592740887122769699280385569673163494201088928107564753036850735910739444939566003640439386527933176572961673889436162221003531417448107158023892297733412570680500934320444920606487819853167246930266204632601044975586426127461220882492663414127283743886543211428666994914868731211408898273944513591677465834917739772910143340484650389008708738683419814824437436920020628681755339789805409615171870599832037893303723272101045723357544938684604690606753106383914473924312411485581813769920762017291716783569590261136832522857150181109278152455667584428885447000509991788738560734942795967399153741157935050644018943957571888590050701699265753815336904027153080586520532730308134580445416611429533294972957762337531297743770557422363169707016307851188911249543626545210008256395031498528701470466672077566556196647164189181170610099719694466906539921311097951966983399995129758535709746569958417189223461636079980392118816477909540589745333300574144654047527473934451964790683491903383050467584810549833981935756661130944654843426215325388366642589284526326260062566975478845455840355097879207581843264856679155825747969544570969690299152682802849167201409863970962866516753184579467483907901034489767944470939280725266921975301209952069005092492558699114065355013926342019026001827461411409917272449156170838888009184294064016968700059546654598986730363314787022447462873013610297677743879197111786478646457098444428371559798397656698272665218949906050179832793113668646782724767958767899651124707632454131125994039715812819232168002121930762316687296151414481669231062168606376108707876392539916524967726266766037115780628888964680129933089254694955957426815908232029302559268087146556461101676283698208301618073803650596367843610452178492049240822255064146000631548479468606852953757102707782298662003226330479167562328817499267923135306360257799018368560913745108660892839733013776630668090040912733444471361958246795805824006905081452705482594263284720317523804037438029841685003678621342443781698361350836301113833677583095235427055120098688486299738284401330296956209088450946775287777155467982916128870135054812331531784298167907309753345730815164447348376322891795392538057210076117861035528201559091150029226719997063301474997547088335367327316903989712260493578144909179633440117292320844360267343680091126284616692070909652207095152388660818870733710535952520771240292845277561276164667103878910318593621767241815046175453400821590869928998083305764022093978397341621418761919496350760537467466096123395076298536259632931234185000526899080768652617509876070236861988672282939838230343166659678303678988877988117832752226505505812619279408129002084893736266128522380103694709217188039400131942302392181854122697967367649642485965060082831870195098457191017898936501908864611476676480955618129111414140018467889182843865412775802684533211910630092068464471132758410300625469296864517799907236633722390874671468185434904605830407876991690725166244691075666752595010040125349851140697212502784944234986261786608402651947870931087598292081624122997813460738923320826112352716654591311987431824532111436984228899618489457237523532522028259725699496194676477252487020593401637821204665626511150809912137503922331502788613499531568402291644462662558259389956134256770148080225882982322222901387673920799815166785297870974714413040871745649967410468767446554704479393397479845470222897618531742124260415480433547019940608103519848649980448048431537899440542052744972916816785971072548131797921054779664380818950351023934608095482629343230759866580750813046403449417234570552694195099799301355097936830491364492108772716402870589317804482996072422352171473086767457673460692686072837803918089581306909867975217187969872581520095491860406181191598688379586022073765707290228714008029890037765728112700499531744703016872646363970456230428110317140813758146239161785995379392247837085712022500607995604061117773454483116420499879724014857013628929146734703828781566211746245205134112588727013019625854590489477743324226169661971375823488983554050059370640781344482033315490492229697834622132825777123636879021073589904279271200255126981721845976900653993524015119253282952571695918739003946669574934410098612097837819289389694527012624111582007213537925567903291065876827472303626120397945349616279406022386683405962673054632395702945934449475366824835302059010600074063204088886651234111321326728925291269134937513051577474705976995621466602839325524029978496798231582100220131024220504358495981733549183918014366761891683521640620643003921861254263947269576685712069960675397338405044311935345706153423211188666993683650562845945792102182415353892402068721193587640344546858192172449760277253252065040178553561555789419287418284932849906358595401495321489797503300112646413356813274216610897122523705639429724784120850774217250711679527476766310181797753980941711990083687482314161462381890848210716130724210615683158317800936289614991550589796052814810490025849695056263276871335180837460855555087865645215604494143160138467104119830653752090372679953495384112884654675497247282671403628109146814300946956796847159743646959208670479762545562313986520371048314399900950902651808381107056099372539795857891091893154417332801304347157306083471465787085760293481809546544884681151808095533336219228426105590234517665381210009787212109843455274328880679682581869332226234865930958368045227421370057937715203862877209601196524068591606814519241875832900672187701932274794281937867216415464526264289901978473271710240490987680382236064867387883652275124835490461529008719066820699638152765046006968395183530685917600870734725252160367527900543720089576541259895406874698147113057647425664267774405331492275369375856063246062776417619764571009974805300882062224049597350691021098811374677435274568934343027627833574144657893085285184253846741024898699559386632312958454755981288199367323493615486653667117059153685648600924197430300243063993585272993885895203922986832788148868607507088012265669468963507326647877032179586415937683048798898381219300733788936902032899778169018523304321984912943079966007523791231380622077822691459060181081734118888949794051441826968503102682152046654255130199626762192475994997023601647892416939540019379721366478754062033251500275721142315058575622864565758262279213983757949873077058980230233557429235453372208865995763547861763984470484488802902870922726886015318598297903002416816979802196230763496069201148318936157250686597305347546614103087667747848034578166631216015311889442406422225709844585172309575034354741335162808746299992640381464062222059975053129107366436794172636972964488053378398832906778279274388326192373662556925830122698375221072662840755203759949832181447049596968009099797061852894218205073584267040504432948847942936704379848619535926917745761658754254850317943781104966311668337430466956459756085684566518714070667498760691186805641936493843283628603119963234538530072102620388336030093620295701561586302077535547655968551037377684928580632821363958837918701177622635663790405047919566392944089835949607180758445002577250823777471012130395538818777291860200471661388823233910942585213225897505711161450414098541326272418262318254634577808444122328055923459282286605375828428036344894846024301312997452109177962760492491164597828340055562139375551617165412127129838622013300628642274414667425090090263748150513578624896685678792546310573694291122663484949954877254060399734529965575274349647283282330547877847874667706689020603849988994928859416883171844745317468950204555697630926392775992396803851640849517345851538573767975705588123144747470938819266413279641617162466295519009992939631075664982943896989523281400326758792570542095177389122522877058589178540376328030473513478900023478975899815761792978582456662447821410303954001461160407393667650886396791475133133812852864840618225586504474558789046406495971112148551713128362031864260744042693986942869796521020616733745256107086256712184126951346057537776446914167536900918643437878391657215002197568600302995583020570600481142585242493581857125476372109830041767124696615194457125390871839357650083100321919266682410535703849189821186899928028881666337659296029452324255381442666591463350996885074410586642765918149827774881838179204131203018200050987733126737395538656998953919314196841468506323065658074912561780932581358896287662394324611804592025528390158865166295349327534502264213994460742593344741592833613591130662492472291504362586486763824359770374435216800370272987906360766714631689976645536885167347503912461003648976833081341034324695278001156142428652071804909622982504668867665019461608023896892542461428323435329791450545652155234175034889464652917046086066974935734871989570954526547809089706097511932026276140012218681275250037524032460084556542545980763503940610805939263507400903610895696456244999381282098833521712154508690140839242264701888738833009925067715741230136295758750392019248022817604060979145283341144667143801631389941166254039991843960752745022655971657704182936248815246797995589156933509903200066979171659489288604988133601945674748689305028501818367091912573921735518078143994083739544996732293556707383376815980606298736601213027892174799649324627537468810211159690957780902932123388045014648050348434938094570050794161207481674229247314339295972330929863719376597271295486093636963410947413654227395239230849410645723370373344417149419671485594091422952053403044457512961376944212892381843856768865512467573923242473861888144829148632052643960544860947760219303520710195846698399466732220466227320537559593074664125725036706669288453291623569917975341258166009285961620326160552834941300164369591091996113093581193084307418262653704750274934366313274972673187270658973534423281085855410278335437940065165396056233231186488172511285429002674890399964684710549205000491114612096738124633582079089390724039362092263262405842611570424484377027160035766191772370959838626107819307371958941412390265728444742152910199649321566035054018518013013955764787424124985969082292083007665822852987748116846883507323378648287884352459311012071024219842803782750372938941133174663343277554070216429714146561744106646160531544672844415786643423344031787763878886831148933124504984653397692480468279790255490553012651000808820212791964010434078094244024760034860312271521014279153612442459436126877907845296900214475448982506726134168284673650666467668855246444390528277444486217657438734124558617191763296454214367589182745195503611277967553720991136680399603812864876532363920528337979661462752180152942148996403358394031032193745771382872273219568272462971314675760999663606940837206178367702868870920008310349954518731801733951174885359376934687472580443587134450675957697907647612189592033671371796918866645475995780221249271148170261854035245028546415067005052983067906922239662360653087523049534794091945201696418645684266674489475978871662422608598803535679037885445646002008236893366556456677113694504283184825132966999551314271042030897670827922620620458578527540391868009454156050088052873693011591222954248199464091141318423404310898226759528941269210010144382277507632536124925094498619691213429532848748514077405808139699260839170321033119931081777951379902319931829112504443875286478546420297988224197263605592509977538745335435878447965067953541400080258884666350200112965915240381270001692919406262257096610530793496747421656879329914874957545506955312103182237472422312740377005846591585292219777928368028756506533451688594334633015188778419843356797444268533155173843484114075640216696347871019184557848791065170264585344637545686987605720589992914429353055117889830756532339749234254435210108478353423780941034762470203068398275937957788476641116666606375781581122121927768133977046398070207134620386209456446371843916071538841961127907531602928903680097361219709599957195100258114069762570897561129339534603531129943500435942252768414071685691079593860524424010727119457629331416770660797803597333485168167556059435147178411894996444186477274405225668333136738836184669312046289039656428075006952780760034650460086256057613183036119915244159910822235798521721498853837963653986396588667594387193561655180545128739657665173735955144830550639464239522842944324931358768564696658757520894457356151786229638047843007243776138352590590698557392411112818367339740796274597077239995470532707115111741937111132739478355971778577550092402371627181673151288391357707605984457842850962565838104498903242657392719185280069197274426351276022237971590672520914949902095555774029387091696371777993289849726666624297849959985272584955835087196053405994579926753180066998048664001711086153226392798171466755902464645467443504014320405090378245173292929645728824394194104577050328202007012781314277658488614627941818762210674381876988144554617234949549058915007453869282222385202579775633440415077664930327264720013380205554376610430737151929500707136064316348967879377881575066826249607697030754770985796447059419287428559198827928603570798404136880828585949814196737100369165464364745287381779290162448720717637137935822107455608536683536073819566980990792583377989191223217401755661435095299128171222077679549550910195753224697861674065573419638249203665347708271715083419601243298295398640635686835991514572406064609578271585568399609729285244129618193185199310385221085822818590038491017932084196743378891482793950013344773396765130329095437360456199611891764018033998915876555099006710560482472345560986937896761030272262590772503801340773912616219844489209360906164554515110220446708125566704683818704136221254538835187704174909410829572149570437984015167139062361250865800916972927769845673747159558449704435863262459259540581439755977977573601701855987794080729619427275288222188935809787412454746646250034782617439187436887233065380147195376793279979970384773046533958062289712716594941006435980496869324269456815467663841465250316469290156297883437104874915832621250888896848667736697421024877357518391234956592632758901134554794424611704753866639946777243217633091301473330537541836568116886979180035012961510882341291998216834309931892733382685169132407950461842516108030269051846451821186504563227178219638555373622548731184265191121250080725832646490799659609060632876516740902767815948237305002716619961919561942913757808575840246480079129892233086863537429108918121275351238643993373189871706949971011980875346537197099934783929486003641499058724023100406661395340789362190465403954761834262937768186029213345259975854446623697725072640159669624262123326497351971366561772275424552392346950413252963825603042898287121596221855417949135689399775882467201382591383743401178524522106925456731389119486626487941790292002843038645170357608676775513833458557446033069310482465962184146057621957862347249613464338912932635653278936095470452484886599397268134758743231236517991670686721674034558828613067294236365077470154381299386609398324210593896111932007794481281581891200172573125252348431230790257231115259310026354499539789869234912561672838464890762911924160359341045324088150345320248689133933959069572301990681218348752406581357684166742370417216408729038496672569692504814579034668184484940557315697025199990491441735912673486140178669715658242557822819297556346358983144029476667538167274303970954566237887048122677736182842323693023816151767218744399145091241965934759050974343788471168656841239810364627354580706024783928171399477454975396356416644138101304948405041668612688239100059680899120414911713144091637163728098866700758854989746820736024733086271188491748642928806162501890671681528107544432266787022456725511181791538944342363135126725605355322293669962257921831538038087559105222298489224571841263918117620923606614704734003388731405445444154178545733895988947068182344572794053175371701579327961934691476662507498169210717008162943134590963470614085390900153820073268446750870564363329757906933963540303658356136729350697157178703765831000890797366982945305329740465418227574490231128216102083629984002277850282248494615229631335992769551951928063968037943395212410066707796800839133169410220537668110224668841025677616267048275670262956994904197834091606489892498861002507377457690279995372627955562723510539352038227750678896678851282833756269158790291601463174903952484402370394670542117041923333250910053525161951417526302338893387764122041432956609301370941654293190855453735489945320108979902383432982610017312292450265338275542675874081788095318677402273506857618214732432550231533987772685867703948161194449835541507978939442604950354315142220204857739867341374847279354400397146385256198639323862102993490008173579260423753873201752745549683490362502984768995463027717253998355682392467672400393091348359022475344414798118029246151879220975050704651767896380660140331747891534378121657813689490808593107193638266060634110931809393786339336426398751306559261387627824792268422908570626742590860794730620890113838566069395959700397427529391789496385752707478557598957468323380714962747537159081896404965627662330357604185401966656883531469311147530182359690501696158199276743569586070145359157003303955459712195257612991017789324807200712841133545884436418287240448210091749739683002395476053245004042191530557090422126593175823075403111094933785743507084703620630879989807300358064707590389837073560077845402228353107060039059217951432580996307105625322699898324565927586461052379472636598843601454178850409574172114188128170744309487687485003652307262627986023841194465162447868913759601560477449165013195897720893665689472776643086826279856568796329745749219225650870014084768925096931497211663691925474100691581448609779375543447291219733447138001706778465883666070032143118168900072666080862161318372833152616463940796516433739034086063287924004448651937762817925773049493370886160857120377282399874575219711414330113944577072531056257773373274889424699502925012595696129467958733021463777874608770216870575589960459450625587143000649913163426214698785177687234307448002392367044400255339047108411179408262728910843862775586256411034024641781173402940557993510690476663120706243821079800722689917035153212638132851264869029929397864343053661489446594174938203515437373565378217412693970148681118583843199593176236177385321087306598485403220061120841301157208785463264532558065176688673777902310407096899757942400841279870902915890130441624416085443959809455051431968231395640194912823557442331154941966766687728447467451228964084172148206193725350051672025018298652286514362053348113743261277052332567768552352369772942666850122773958727537354112523072794182800080469092817674941310577018826682360717722360553630290148308842847535466345403688612430430835260997671497322159084973495043544185733755780092303185049023081431272505642663119766511069050658924235106538575675665283083033841133802650144269039439310453175427745744459041881584378334239309846115847649990678870488913325999678180571101877970715317693737447661748265087992798590618568594846508725090361592316246521026220881399788409582254704087477784234461383943455010075149608621240951540304573681578099878518133567886457874766725023610745712710407088404259617160638750400179796679985390162441642741007961809288129544594064576600550286247233737421567087713187191578940024801056484184744399170421428289185497606515783242255017985477039314220050420294557694047069107437714697138396209812877854738118451181555298483396795963549053923291281744321432533231522676445817859322993845776760497522355601567279688980076947869202845928173518917125607150981725241032532468670765970046830998799213483423383772221300819145020612957085113701092008410274215570248355448464401556256237367353331895135536415922887031259221112617634539805135198773812426001386803011281555713515845295021107742908524841744145174320969324905652066249281929988843394238653363341437225510523789214937177642569074516428497626314381639282436469714370596332235559271653703008754217961840086989540381662331366618069331819884421205510075435791773656031329102438803565484010867047268191254136215423479788863392318409004420286935334360718597216644835825206208296254962530288061767510343374721863099572407242483478560270518603206164472910859100762441296861684888188387004562462429122134937634941239213938874811299892955167230005906905806019444769078977398848461382686655724594091121021854633691559620641342605795970032364703089766271243318232666335580097819706987904744408472441008829426577851548521481567074011658581952797954596767283266996830453674753834419804478453504521028637292035552784755106787477560123398290138530623365723544170950567522490870425141009996367403781548968690826622518387087454352831156510417434070602383839075797626535940205180804378517372608746017058919527493903230494236479506491457102377538026165778235879869872742669701261700081855991588006584614164555172678351511427914438353446605276771614751009536941684725683519394632055839913915812848448640719070651734186108020242738197942134718194075148981812957284915222291285981083550963396736692882710873875356642218351325527468810803426456249655256358309430201264255332800962726594542836943119891958213785482380332613825875949172444461837217247503673613725077773269327179583445109066865563597931991752907945986162715480926098493605548416684590746813970543578847357546304502317197092166206051502972193548780941124122331389937870424176652006127925041028092731480068175503578062683823183469349148011049166284223929676291561719212157854064680514544028889625914049713727641949877818287069857826367434430003465267349357834462252802172138263598736710646129309516694786225337756915117680800432609963864204452981013594227408813424258617176738833294300332373614131747242785249596180867677598080459124813203220765129673098300294735322077606066162482998055070041230188443961037992016714078125581610554451304441621825107482865025061296296851028629801599325031940566799434968357180187021031066363183805372031910825990930009502224774157964538887103705495197472669064437367844110792361638090650121425582866367206935213838744485378362199382900990901559816603360731019424428589500040023412013614060135876377380941157825305916427213057075080908059743881472301115161134920915550741675344277525071844414443425041526121494468660585509630939994373244819747200223323540769730964134669118893903880176403191753166815176431351785226821093930823043405719163831320313019155574912987732793389515529494035095512290731148160897207561480689964948647603536193803052224427839631721176194050673133702589990421626611556028890531233972439918112543735771781823182466107270352328989895196344709298431328134763562606822023907216133159910620382214113745672014457099356378657803498238233324987481730026819475546006461554339582637956112862151039488526339368224249071615786938826890533037987868869054105564368801792299404230278929499125498323218607697147466432543582937559634948620802400204820256745835487097402026300566412821216407068421655331292743188527704479770299744716974845619496171846904646617729432601719784378688946367029924690085767048974209814290849171812478325553696646977399512622129449061514864076755015993210804588622757392371001121129190329624122797980049393434674554467735381851026249690704152481201668817221380349987230405171594287410985181505674611887586747571466446899359699288783182365867066650945460096138681059501820764915799168289125475200326393468479923163123163733795483995518612230763512379947128887143351939309297988719671518086780452509635479751384648878501555402561146249904769482439990061693176991769484590039164013905953074576102957835991948600137345357871482314288693317875556285731793728069652403848934354526941905805188941006042768665717842936694566435781381598164938836562210273463570561311400566494016896733931999830605610765393286997227496893757447559656378623167381007413466184101144374775488141151064472299080168090186944879523363217248237217594537413416371366525080853906003753303356658685795406542034966961646281580027435079530603585525194181922241623126493356108347058916420180052260749567776311026932259951056881355542737289844639835971720598627747031165253869983742276555075119605904456071011187468349345822762928822542948870530681167693871717010828836095003947420346213643430327259990084090629014044809172482068001549540060197510956894323969461865214878916875980576542810645432166002768645447495807866621931681132063805763675964014771945985940676971308663992354579503962239114455897656875858597761000288326366318089701697508347434797312850025598633802570173675854519716725317373781813866816403663130875425242132054907017157463951981163991057814943275658531073729903320928082264452696778620834430530344442938153412388191770625594435724626566960417562175301830181347561331757998439952931146113443484351833258085219212488103201335627826064642602077414249161004917744235571484327798444845780264982635543212016077213657575968209898321842030884130526279073154032681537785427010929080141411067077199247117412970653019150447915785327499433475486477146520664288386423420505593794152937518465356450052357415609660215582202360514746649361967462941029885686340210070517005223381242081150132125621316979057230242908456618407120971703982340047789934237983808894043871397999266449074728854643451703412312590259923189181519080766947827588617475406129538806463638720659004272865080583214674101998403392989753726755565036360317657829268275978041574266136342597091515569838154270026089558690805984022544660861167512493058306424699091784011265854399633044254570204793309743992332906203356484734011782690939639488048815064736559447878899955642732375768877056341062699382665633936940503234013011089821440251711302125769275009501480921601955204989272998780615650918825029836052396045568803760816888995777113167690199460245834854269289756208856111245125270181864989819702506720368497568618802439718655188856488424847722010368266194837723882931521507966546207970751056707910184535988885429364380803165182980035886360175226204795538811496011908461969876470362659825413149259210187258672238666655579374224208362577403798739361933572617155896215698326675951169989181540149704114405201515867126802158865490871520284408751432741491810226060914350889528432536223969161157029345993089215923415339345603779619136625780814252382526502326702798553035518102848764153785013368665472442518993556398238268639087554215721406631022019788114744611920012244374739448598395240766489541530006813005802474969716397850037279042862399077092735475614828871047397105883760013820843435750068347585831283368049495319417975099283171340522140077238142623362973987173188826221438640202676583977159200281012446588450287370670867970274504913959384653256587512623193270877439425643776958434217519689688788819021108903140401955326821649023759552784285502878624834937654711850063776869158209661205836225872393724758231370680140775454821507311078205140806469428634215816335177429931642364997801935062855080540503744644208363607347942141554730890021412958003198387524320581131789111968587184215933432028558664317858792192507791273059981832989968214560652237455697359725903598831401271812591323968211718996009179448010665863134987869427899620568089959487342766782796914879815217145944477226963793062711862779995967440127857520439970366062731355996698021084952201523208240659987742924949504372739018360804789198883873732128453687254293599988366935346735454886888427022832509419887203176943065659691277890355208593731222822974508743282625257854202597623841611745241740425981491129149281685544584428989730638186410392677849509953534545176006886928129157639981891857713810968169556269633411809006225444812202122092464957694070776610014993796076319808450856666119176694982486643202170218260797252016424668629386857660665777510766503078176208822096166800045036277439956308004161963391537741409491149731183655893309416451994309221415575869754831614428405425848046849332505582988438020692409564470420183898130165401682891643415113561282967642362632531988795510884656403731880019739793476120968946954930157504569956839431336369479947178991014638751028687131911307805998394949811147635039761076540542953484637322103375883983403882171876580856852565772103773801619633442014343105119769567609504556681228096051581717580936793336261000234297001304160791280220175998577214851655815123579074891169363821608526411641125239989552104695916662538612107331704638032851912554331197890664401112383550462454276755034740949285860902492435354696597786545161574875398636077240521904477196290754620790932609024040778334051436301864343962210006290496914101612426211221173217175599918473899009903809479185441846400157768146858125030581345274474989856806112876048719358493326371880835141796396904046305852009222810968555090233602818426594675453313809135732531135695501424339469565499644182790947336267246258350918978498363991209810110014266755492814800540937885417837866947355622089675487834710378585153203605991952410154064886711097121556068577452382852985258401730720315652629125805797906512466974194461994619235148723805541879864709509333334326769674842129819238202951459983395207405621886620595704795242869641619666166755284384727102938199064214728074414538739752729306769609012796322555318696079526587387679532098997545569511686672094715714496975787312767978653560426969908387499736661910231770688960195309666476350563145724698803967243648045250883451800820447283227925079642182843009592635782188872310200876446251251146916970757595075744126390447227341316863095064263050062781671366447741491944809760374883859060437265783429483101666175129437773659130252813867100834894597923460119591902596400905035265027728723634151579337219833241055868494997430041335087950654833877867463615825536288543701455864559698180477408168545446100109955361468310977864420741067542782745331028503573332798507601606410139951324512518502488298361033508835163581115274969581775829997288970136659779474600881762941058655809804159408243639234648848284773172997437677234829097116252053566284190139498238960063530141013037865788457803536037639285707426518132844629782763606242095514135798874870201009983375725298037156602385361214378426033151026569795870164004544939001463928624323472810477407059003620080206802635722141931059931417503837476096238477555309871661054013561900209703260552989666497057616169572054214143969151803684858097220306142038157065441173625619952976733572093921540058147271784571280050758342683797145461758757193939122142821875094469624305611366670804731398521749072695572887618165490672309484687569922236496526092062484371675227427508524879407498496057240774179343843379833264080520576670234575817145587795315890699090560772042573544848318875491238420574855760203144552706317685563699485326943538093618187143814664235031842527317035899295383298411245006158710856555666428562071152543207196217298822690768037426593308284152062948538009354233679422224203392349603769723123072787582480038015984007611774544751200243588181467386608114353509203345200222982667833218223555244821478692581483300914851754840775210713517387463350404269509903395525420277145494748840887697718638139916257786867355734163547483846785576988210085400389775393127513783593717856204536914938665422416648283224450292203255624644649164188117726445535711686034779337373515426057501722824858005522719328337838419491623709595422487930804571225034640252538267997101982727719823125889136857374068161734676092502931596885961840268090944518648379866364838365408022578428505673973429222103148091703407742690283226718297884012106536731398356067705460654099025609618006076019316343757861147152390711764960817329967670618830019335419789624338011271797562774706191862623479478005488604111235236722409822233256554676618901616615481850768861110733227025865754465639965692406134950024852194172328744751625560304080870505347542789325508691098723144753427143332501039564527061615777168696758132956284952494448175344406340606973567163702107195244522867604413738506712794321870989632466449381814279826293856671939199268627587277267272477438977853554013923431583764895838704737221248054969065819713259860487637451147258817773945738050201893848247245715808706753505052036005827698671347758333519868644342402289963658508514513142352827198264901872762494813355824832521920132263235842415826247297079033090032298013640329867615950974292801905120372049692250198997413132054450046160282007105930740520769890177498407789039103630458616651371826951024866473764858143242609572023527841937575097511774081272469764761802837640742656349074104907845240488228143843216666825106228983079987640366077838185197698828188738119679553090517459813921615349439276389365598625637594469843240776851628199343946085870596846071625110743716065434200177401943112450782361299560092849715913368711709926446267635669859146689507423643856898040510991974036779517972036291929825190506390836854985411005205983777971836394133610203465573637496545768191113113344871159781585649179904216957491149561253663743574435590469666443495482480832372902341546366271642835046990743750438253950584976586377268064866355631544022325568564654437601010648926325316789438551424118338640041011776441690195118322218628570109406634112129150253415682117708985568613596274963747868133063072089654887973032106657442732161511899412604661482782488340174001325379806673892170811480167924447658294096315212513551857930550275130959251222668159103792950347117566436136456238060843793972695402790267718334724579100986434765403004542220969048537102297415433618656310768699852259783408788604981133690538331173370267137503347910475992098190140346414869975901977265348047032699664124701215696169725702028776642939845686125853029040708372545675254609824433446712545820957701612081443478164143989740440937364250964355939944793780393684762200525337956596845428931390938927173178640547850612584746989577405405948499744813823432306922101738256001575955276961881187802304318406455900687508282630476514791699888402885712081743258691302107252799848562753987329521346622292133976299243406291445742956372252791010042613820503072651213092334934334708783550215066659755589944560910368401330728286807812507712407347293813655191956483913565018547468012929084320164950440900276496108626542034899134500902538685354316278145157995234484420263349679967953719620918577999688925376213255659312566077440563234189106270969622222937050379454642633724013940303093692055258048217472472836117767518235677788601841645003160438189862135537073802409562647685236134676236882787814051129432403336800178277335379332786490888993556244355715018953989851140486241946528241082373059218794278182234309796693201740299179228100835849126781735207615824053939378786235462423411295569488510722991904503533358133082087819011081883836947343731548987626366314146196037556794667311896147991649788396379367533540118094140105737899567155977338197425815507912438418832766110410128516669319678518647385570238804884265956714477680248054221389065513378095248216596206104553367449347030984424611684297950521627183006316113860172641811670332807351181933194268682467442253874816762016138723941302426929839937487668515353825520971804285457893299401840795538772480161131851325657437623132830689403178088129535650068954448965453345482689975697684565518260633427942525625203504640999241363498994130687881519634192093343510703528801093609590121383985631575428139781510547451661538195693744183930810430559587598227401915566217667362084569007557309803384257252027447495046779721552452435229621113109996834356684973515727198059023485432116504360677612485146311532065382342549142133483244381303491217570375346381492552527594298047269008374151023902163026249239421434314782195370552566428285130686543256945367345584673567648858500209574483319237848112269020244640483068304584519556145894495723743037229460668083898671206293201186026164754733801081950571284485387955136378849763825608881012706017414006662143413720285343542878207489908424615586519359890259217546747092636936984867524202495335481752078385360032406118181658816037476061685614459559578900233661209439054088376591879570412203221851236444862915871591490868818836501244101119189539710592140366991344033621376833251355673017543322620234394900013283636077768985246706620738853912537031534804426829637008631426106524324326343193731020791758266543951183559862583255950082338061767278716889252306132358842115608031983989953353597464198609553434982142870606023193059532467000840155952518966172779888150945705099682739791493915274923806157369192408264107629754083078921001993489821733902973323802800332707364010121003768386463853262961397900345478239272792516872930401706315966947325248249102716888977528573199497915444459069776209476241390356311039842309206144382346201587807758200993343534864560729994263766995519159677556581902747651793694770117831746069271928171518586417383858891503567488423357297839826109727805452435147202033996731340902019500406390182964548233196641287845090491012876327805332339253645205273603787133473440304020716219726103059474007527006648497979884177845023013894818861054173900505973417195272736726961326960324899239276435825052923966213847619147306906619361040808854696916982871614728784417811773241269252700719873977387085888102090674784883361656035800768092238116167572458810463401132602968734376837272765357980924762474209729159612174515097895368036683672047539355163933751865115425886229993836114660641587788955274898643454131721907956142464665220985127157605872861699040950561678880412301428923512224348481237297805566319640758847654945203354898331381061460104530468579654506966602633300979697270547547680923768120437637265217348494482529002536792145371535556858402976199916605384286856043032013016495235372095230352578662155782158947945726023331062766487991742137131580892383173273075311024694971868144767163808641375906596845541855989824431243761299228053238960276183616661661289403689570004003077344413010911718770872141879339594006721380613685248832557577647575494647676196435300956288541890673446003705533239779539454787674627584609053935653904492317501902901689726588406879828174350891667310097671413268014689428890552097251162146477910754165311488375770054814518652097770849687015402002765962149861346432470664479969275615323294825697175732277438582763963100387211763682118971878463961028287377315498741191573291560254517541287714952630236407150114197213240968080923133792959235649199284082101103576466988473360149360738644486236569813980645189530905447337184765377644836486604308844021700720358876212823928869018186355782942842750647232309218440929210452399876792702054564729799147268947885934350662450688941786354754768950416984691210519196311373261385254182121242619595701737237196248273966358578625562942777002859068025066709230121670877866989410323992827235844166040806596454569793647543737392930528161738554318368117707580475910597637977296995519285755821548618240096060578133593851996027952642476205205089901184169139878595217321771862699379197148595176766867934422865704237375806961375011455364586086562659307286401488456730492995594599063325171144225135680751003924169873837736139327937187963711721627649506454222076313684915737394123493166483719170264363717887278592857508218257469684045956245090590264957324094075536966184292296877489110421883463216364343618407464576805179544006100754938505171544716137023492749309343079059443969851511871594250785300308543684324980904927330118354504203529940071522844074306740223982834918505480974327164902734301688755755476511020055538892710455521241591333576140725879655234155907506393102994510406541657263592532490237312569910485368508571305703855799534109441215676556326126318106424209805384349818247409285528353805679773463382007855741154589306334234524733440323770082089454720263575316172141393439611689712391609098423684396514981342328673861400643009041142329643095219797614020838270464882130372470777314804977639167201599851031605495565521173227721715282909429544811237723458596725208390152812563416281180670755059545820322616727876228625052976567956229607286438962400836685253388486389428430302504865050145078207679476828312922026504624089117498077470429976802577185054399447755945096157481939543189549945806608039049750128843637420020922000261109666491825810976456171019081164248361600442795868312353060922479778005845622240673362786937378149652497603883853664989045249634284380010162952563181324147379840892687496398980557707831232351990529762110151234701820994633075915214557127220768737923824606600270248587067714397723205141295790597249772221231817405147737009897551324144135535637694008831062229794938496106532332597472465648069942311614357893393381503341804418213622059738454029754388855113511488589858456089192219667794092556874166533092506647108803052830997950993754037155728206143523945626814681773838195357150442963292478896733291242298373698926301884083331636320712844580476578698505781786776402493104433326279209685137539441458059563547216873006909792854244163433044826533456196427067860309434838230544836762801313282908641539400769383052308661561229383470427129236044746547127010079703428611126956841551721346140394505437259194552211858192201970885649902384476071018000577080447764296312873488338712807173047344728044904324012943207813809012596277571646866455960263004977741196563349830399988751713233610859432725227913865179236341231821985983346682837538956336025792190597282957569664659628982125512980337527194495979970709579795464795779517837339720141071593679849525455428930966381024313295714715952691171576588796746455627322832829509807337797968396493960366831370776469177438267458035302584477265674552380136644526816040119891510987053377301603091734168285458133113671800882827723138325457545855663654021182718227508191159584292798654773739166806023523828096979637230490734175548996752223214382144292935362060807548893099886567484347212833955945662923544349630073621396136490788070105872719773567582818244727947161578826825554778452414521977694773397878953129421736074467122298083354103384788844505854413905807031029308931233966568377007761966497711223205390860817544728451583376085585560059400218714438303111839972269627679601307918514457132793162163410059318839917817722213846126734952580677508941487800383317974825308722784790912608646411034660549555447663575130756175882571442893017331632284437511785420653187903263823148771762352323212585648426959620888019619683744691292799610412049948881117146614317682850579253901061202150687837532847671977521359404783602961435808788385452344492798011744789974955699909501303818310541022337032461641528292647251370058479280108186039376275846335951236867875035966632594998855794277244171221544592947384078426690791479230112982052904703455457074359971083046646151743063294839188537781246630144412928484040957410872967607177437385502330439522220055550861322866100115698306946228256696140730005664948694711485767537872805366899783670680891918686120743131603004880100474868610365293895766291468158139075419427146154132483186779882081653666225366977786321070967442021696308222815737365801902596984438993036114476362799761047002096101810670864976020582303030042220749320845639312019321951877031411028415698610285777581324261777742284915913079197544797642834898446006741288715130209756971549661585765149174333351761018185783665724022601825494397278873242956162525072467030334297425848870438309493003349530480193260459090549215145482751112822481972725091621034271896861238545579034874944535876334968640727160114194206069270176524248503381128178889573829194509093153380200686348386128607992646589981355196312227632156551689106587733844117239151210741411653558312143150993097150893423175904039532845230868604168276726432380254047772506332481981466899642006285778600468605441137311439407780177016437782468278468511430035555731415130479215403105477059439908115398657122782624710902126358540452317009705809224382443127466794169716384272671465657507461071442362799444133612174424554765148275367730119285698818351046464720520975896384258220009390368920164044503019372051424109804645865026262005030666371996064506008865307183349038809582198371885819395237491050151449955808121009852817860086893936992397263590941310243903659252836505206821223153455313225320407863683511508055996105476133599821179821436800886143815633227252685781941805580912772283345532095860688967662303498028068617190636267002456180815714791557097190948446562594948657931246441752029473211699655234596405776689054320402860900721133462990377675820328440031200664241105935403186671343350754974299994446483403137152470205043116578565641764692366282742354102235168340279470387748973722511864878305983066875995608784666295062685455192877844816381944378256624518094735715132386478166521975123697791248540126683642401592997532035192469984609769909493282067343396274570540675568359706522551331886376090229925846495348921631388800258122798991075755306948464231316803638063217441989807424948293717506529107595187741901260815810081587758414297870604400935140913889456067181506175701278025521108715349562368741220006766271201904501593834571324853117891067406433611548098175682905764586504081027780059652061983510034956130289365158794138766471567665560360860359278229597268338180263029522967770379769413690475003642847202003277384283962086764866665752625469589500357591617502173704541426201070168356834848696089950854259947318953814912654785413951419875407959730978875990424891126515690994999137635585351382201821331206988768019458960321081348281859315699300704431791832045647211124686873430708306113602367407059764167275962692034033883044076352484466424598841531323237516513978875978242306253563163523630205114974513528869951507053896832846537511028127254600436073132086970817595219023301675268369745799864617643787686461563797408335039757696726796541498814037994945895030179904793750902346619635674248244886364141955166508690177921607942158829210526693649042749815596556524520678145737455475363843621598850548346682770641463921115379380156538097523856784424388868753337980599488358990284352280868129260062616482710369493786987396400344754118781327574061121594466743634207614809123937913363399496230658855221787851960253940517729447106459732876512692597596666673170210837523007119175735768175400805742581967640257905775582017846424563654129531981573553694603973463655316436298218914692863672113151182796394360781645392906306544708243521892626351873710463754786379806836834304576464575398430472833283742998479294562853977480711148837662172181384136877924014941387790540536535732800486878565772954216172537509521705619324396232483656837354712984277844553551971872020586783713975845068070584247696465487053755292364559342222096024783389770120954083295782003809275496910954242464073346311337283980344892189260721631815111767223609141250326088548392079269133237603168006748403298177521862602374844943083629544379719715546674498112671065106208582330561365230746621718600710299348783629298390357184581088470015529987422233450128781127280358727657150622761708712087154716038186826822163730135948952971884075941653005742237968347400697241092457599210508955659319628907706564511997827307171247136027646064474081535951147100666339785758143403323780354561790556348552138515712164141868445920907206930208305560459573069923102274578574394806517962678037322242739186113423339852187510264884094182988816373395223684360598348329124348986087784656331183863932809536509089292685212943241460115013691389805939054809692372352693161429681750285428435243487335070328765240020574339311097301593370232806350435460915740583170626083724279656808989717716134991400518680191526744793856567875558829152281345246928094569110581833159513459972293050752951223334995620706356246952387207011337755187283595705847616825932900357980157131255045727341297265042012940964289300862276088245428421159827096035398588970360960353685804114396470235024644616580133037395305926572987303353003724298095519543700033047057981755963504155721458702653870662729632201604761213685217107521581203265274543946513245633958980466099860658899526640241421978209129921112455482019410851808427219556422736856531346082625916706200411794824605530334420838185677587738483016886892138083101463501993618287157828467204742812344727417318984551744447228043728453214860111072914457882807662518155328202888517214574355765215615561141663692011929748495564016674212318353896526139254792203324227534878181821000299071164698550995338654132421517234509575549729841940594228451605380730500589540384576790113110802897536021507220876400769697170895106642185862412304118673310031265434541994680773079154956656604445807070105674030032022598082570979113265049453075711501535341243593219601302174352655416353122389014561298889533523367577099392445423900123468016435613201906411180704762846020718113166074105370649954773329595574940450666171808010424805605881465538680425390887525489252885325846885827255721282735837849735919007393891963554309485137782727046016588131958211239826167477549276272879444827725533703189922555093534210870200295076117206712312647870404861902454499194335986708298809077232034641777603636571638325890763966272337371391721985907333052707214817458706302662381472224102822196930041229287120483059365031024685094673017261618286444226901803619220015867759590152449504565742351402546476114446787274774833209172446110723756476481547377745098757627213124576764088179306504260946559214071344715198904292328943172637928764729680789542277453893779000581213577578595183575322300184485190116517485354823319350581043323056329421323218879092044184963013448110047223156711707166817422582836789348060539890600610439477911394827666456601006636974756362063143412453280466094321611725258168947735843605271360833835608648279390058539009736758377150154616453621821970354436200227724189454485237499566977045232245742213557094209743262620299242157337947023737836260438855213480034445251599251474280252453064682784818122114104520898642680301020451911710179154194199407899504928581401316885992880253938904521868462391116046805470563647932699343352332482234628182283731124389765504612691129791938783083391770682494642361141539728631330365918125117544982830078844483712638689413177252048639380174350853374349654820791780725495145311581709583234344565115692261617596897031779106216512891896624640754042830073027145023152235704006221093544846911725672185889266949261206481982733918466939345412141020781329664413504101787053048386656134008099937238530282115956086772632999327039297008358786544981609480469581768827608681297710719179473539239143661374739200167634764198606549693585388853154439113899423854520749494960955692080479388751419512958651324006289717939049913401191698719559324641778680809557290685253262988186780466720709153420568650411680754830914552893504882448554672815846404818930315696978381323928448766541197862894518380759092736955316225807426602546337813254782422809616126200994714539207910878632756923913284871273510537967009293562557594464405145677340885797337704760810910359948948398731287725270014300959338523709892677558658497238438210881126545815419442070935247686504151621631423294302032159348558263552637893209634393888566802943039455354423714551596838140998211439570974016806889965218960762744150410840965952641078697491146783082106810492536349130468726159813772156852692188776419478043982334504072663492339211487688104373787849758533864955076801318067610193495585317623885628056122683966615107286406180020586079034458801479086273450203646756368814422983004247426504179471902674798473508220095164849391044571982839149806231419964663578859435297727110914164877912041170601891827309167839738337098087147630040763889080829106458285632452740023394095134012238980282502395926753662823842890587251433017272399093472842294858757862764358115911633878068508118064094664902362984806130531117579319503031639738947370466177438437022752127627478612913065633883656094621848538196440831958954352112720464052048705446808162556005870381683796071348229830902759365716282247125074825985274482067381623652165802589268261910923850957130030264939047234971071783466869554603669835728779081478774901661633446498513623134784287622132811478917060860333948387812305045439003382682757950261225038218665835945113889704361255947252760462015485148156760290373439529383997337124531795641720660531221532719269256132448092754471758091505744990637944510797571610484834373017590482045536362908306804168864346847479827050095779272968986415928584519782762845097810968968127718282882169711800776977776802143218679661195878668134861759127230526510899663254837480138807124775082937382517987177728679455231726063383781994106858768598224064207019634180340588795746348853681475019312164142849170360271726911647321865516689803653934587440896080849983794069495873275505014228218338854735016289655942630489477672972199382516272516356377460820696591834833860575302848633274608695337654527989396942073091781844632470975085168783211875727132883577915266335071361823536672766657729001103556469590644247196737345925487873861193598804027755943430327407840794609431638176323242424644170786543587316327538692382523561954007779099547749480088495096453997647142614262525951937999293943660592107058610083513819602318899235524061864642300965412639605690853593090117012884846757862659934479318779600188571471590673147953773581129900571070675100123931378679954870075950507678106096050424811571190345695621043745526678301664518634948141997793519660850174111997310972025195810671417814546871378477853691117634368547995646456762592949372751694763072783182083137578637449437609034422928458937951053048497171078427578900016723485219709590901698544536348021890994752941237603541867578218680848275474220469140208496647403672434162384357776883037570251158488112347779899227933670412081201449099463212505294028989423511958613036331597875423530467096086577050617711859002456521278244183213142322647013833238402714155966460563845735608001551571426417050895774577820763013871945424456191398121542016533159489132184458953786455327205799885653430101600896663976251018175718869935289419600025904851932489565636190848937425484735390360876321496152292081630717337575385492197184671236469838678302272452328996105873964595859484486465563807200023706734870817431251734584872241503869074179999761374845725869507750186003631646729876004618273107357572729617051505325534886766497771609646222232149437737972079034741788371966543014910868713610692781290157611362246021750465774935101431468898657390880807361595391340276555995763623126946876622748314891698250072568574701800604022056146206487151659651408265895811445133947422251017226515946926000470968642130472381321053758188710346292266117841982978065005869697251557058010561142192437360986824597588531568754634052744387748566858418501404076500950974319063879837323988872844543217641246012631033435256317396200929231974456822567325903249892178767227120110145638602446230066251887755022313569189172483880922362292281521206092124918532543018174690688200255824331185712561543176981165580428404432691907914143632638407018893468125854160381228862049064308396979196551758582971499753250450981403954357530852719039836697763914824042325896524597743888381340866449446604163050941625632150605833213995222067277710969121989309008616197341345525848636429003971277490796112958220463030060091336920762967263015490002576064882633889390928430411770405181218138715644717180723739634562567568563142228213294706419483895286973327624228871772340140458097936161455267386624639097486327863539872730054232901862791010762239486605809542292385924041907540198114864534902273627370803353276199264179979943684681131135737994535501499986276466411600342549046007923052231158582429747419221623877120678431124510815078243767066304952698710502693713458373095743529801625384253428098317771530441188706734851558037898557538730216797684104512228082839467552879547661740171111732985244321242797643202629189222115160827106842234344013648006694722462187458934148141028306815412659845302994457492470862946386868500341351494619704386761649972075639536908599406697442005500920676695336686936363162515380365963513112969216229766769692115376481855226431336752833801008342966747919050598392320771465883905873616394431735211080703140992211330368220086062571308699529822505721971236199903217280317167352419269295944929487937367272559337237650705092765904117486624252461807198922601332144174137624094359435102793628133645400306573908864888354749866551600645069273967586603945123097380113896532963500425505566156026844310271189085050086358223860686304363077166847853372692408330613285525554136279100557167300425646220127427223031330780875706039510542578515092231896239503013176502921414062080660031426319885455387236920868160533947344481602193951191385044121105150842145974950732230054390458425298237147762006018825034219350567110792175596806898379163400338620909937216884658002312478077812494621083284511381227558591241127500737482868065276778753848761076225715386530006012799403025114407762587433451124274706297884253947346486036309174558739074131621025724059117227065502059700892321100751441566558958759433615939164146870420175788141087295059602980725324283773610922065022961835026730612696213575912431267559179038095784335233422770078744976925323894148515395362001491344166696210305443014282684803582117580484371921654537288779602350831912718572153033144567397648082963440912130547251841109521636088636614843155777785342253789637219908345790931073517821223420399900979259507116139072545661370205611678726069457486341286324083378467111522037022424775621799062867878125830989073766214315946770909729404529747912981155231199512196668406703552378189496625489561556231893415451473294340988878825654724348659616518811289736188490195740346017535264038346399773095658681905847073380672675959187340402643684879702121603423126572275126516779438705557687239125043442541114734480642297225997359217167340438272284664741912522889746604571978957773834376757231281080497715195690578963795549277517251912459919423993375918831233127446151910834482698386423019064563959607349750884978663243017556730444896682730952398536268031596914625877906174189029404639588062502222561742935715512881603998146400292699035779174852659235122131937793120816729301148939560003305964442935607437590623738862888453251820415616674435401179478051259031777138056500267362351768702857632297166819913880516695339723850481300143754538021793875267703099657916703164680042134654467958745941782728241063514946613280567324743890389759180410789486144179923373986328185387169243060577940541572079171862273838651901637758582911404046101407408350512868811358127615175798705856094510911906078603152139865712655918057531359967190711305589225395085874042311448167534901929969318358535738485200429879415387003908696990935809489277787970877736200127081390815488888068880127715108657017980530625294888574378749933174334227361996525009578632054932762846474223691143357379478616295835994140946733673658386721180506860669452448788416263152626694436036877602374123056980926132749262856617213437032629801189018146658119153567055840546748031589775310558059165316445161048505531568553247503310407332429415407174784859544994929254890798151032207414608881726578254535625999014394997995278798899395456237831649679392837682409561425520081970311386087024419164929294808434403755958381880614574745303197888828672338274129980432738213496182122341817396619274107102573659279844839722079716636707295910592640837880796999879529751129118281696633386048166631329641583570451259627609178696570266617655856383316796670916832611775895686071554859488597500794886869459506517062047952062284312127031321195929135117094516075454482068249862980686846476121867847649360023583359794634319617542437819028392253832637374750551150419403917129087144936522369898991041682444481398289426883335012533886075612840008137648553578504506435276604460523660925502698216027023201088785831281685263991521056344629362838266747822640742084573711866724226058485553331213058207251242902896860712452422978324522251563211030158053886720193894181191222126435068189043486833702856371284595536270727814031511153868181491112971190686784181114456776381429647153375270887885984991345482265824202813948790763870713652216899187515843418523599349498283703323202704269175037879307192429098173766824472440856634098043821310840702136366676585150134053052461230708459805801008832947791086825055726675567609910289087099855448502627877467569247877111421613042490717028897899421354606334665895065067775877703896709736123589243577227657753361878515607645711075850263871508282718383940614174789379405412399272314219753909064360611709621457629127487376697137613587743941073717396806644586977783435654834306760229779119426833138694851531101806626092452214713292174522148370846550695384315797229695990880916410630552573107597237801136279810980424188036921620719561092721646793862364136331386964308840886204607196596985550508759043770987827420270070526986580307246798425830006535329937712021301493535361811429214861867227379146700600633575521054252593163708469613924779035635344310244471317924185250146998570624481985991182125129123798159221728934044943238488737311240975840228313822940765876135968322167000033074858386712050821097198321736154504683898195503304597619649481434516094561869770431996637717352778180569229221184966155185260370963274224350237106162709602225837834690348663657630352002692093589809663800172780042357701656138244710423746443870164787402516675181320572738111497431824032591048889090188652228446040004754172735244884428543391604672922241202699445655008127317155452885132909140683796196663366457350933151593571138122441740227068665846746339520132800109285786395412332455508549064202189326542109832821448227021144651741255853449254512868303991447001344131479575563801583142358428853497887578693699545022393337344354496032446132596306238563347995856221713952044977807947471348326910605935386615906826430518847811113784484652654008915209701597771729571990244631179192109280425943175195510449369651614004947274726664308263668661055204683853987278094031183914813954841572241992636146478385487687543754232111031496746727298167073326544711129511500159543187708454962878261008071097870842505177587140377385510435062584561936369271997562444694162467692025956399221442575768206093179521819301454887943218482840011983902027141132968211602784183924246621644698530455264187112769611543089219983847510725406358811747018995475335921276701691001527054164273915641907106252214433922939412617967853511651638536396995985113934585355597309199238127981608341177005160987683606557630959920368763373266326722452747775471802590987475705486142030960480055136933432241133772204203971241890560800720116989170267058193178991409521919727951428691313497815012375777235562804821104111022419820335366978507170024200929542966876895258332302435524996599898504736812087738332012024467679473592273476029402888158149817175715037607412707996551090682458864422924420827910074898684891403361703057142154514247278659311524066101843672075116902347700663196223898430040307553826020643071957094591916316110081026767129090525064982942049050744805881108491410003586895757394237128147405351469449844268994798457279638519587279690949596719232153549155278526968260110555263520585306133954323744716364814552653679198107348073146567447404598693454409996466411128710954305354655017593730094755594289861952368266846254049962842591883393788367249245508300321852928697289299685202838674882194686654079725687403670101426368749715872735096736663424675081685859548060836719850342840688017347667026347164425508337115408321846320937802126518117084540581191832465568663361157470547510434508919640307351920256255565208908940172949185030632845491763013785200001236778149850710092085777638029975168525552049376447218879410802805457932358861676177374273225104421729707508864440031820945880768390983630082045237978394395995884555731234543486327807908228535515101416772992751467058110604619975182681616250638687228156408733944234238867952448710021846940110569676812324750118613525309197479036106754263726622050787566492276032703371166431724146325534194443217320986879351068768326296247435020677899931058743529620509298056445036162153261897265392050648051788455447095473884614731902457236296297989579710743484464575152702852967866731672426522898319008800742706670702388255186872271126204790809794709818203276368766761725230753711032543782638165107267446101444636474193575096633188018388277215616806614877470946851518911181224522539148213704090876131497814334319949734299718216380977205565886446257211223712078462097914874434535895738282150686904286637667403676099770077993061777325393710136522238242189594404744910892820616599887646836869952991825758711162722832363272658480643163957519267396138113443539617467019040405348429725237068563421296749891584133901438520903248912305188708200891784759956571367173636253479380301552861935001327841375250288879179090031371819939353581233159871392130086181510256329629826332342361587994697468852809652580515185891799439874575825872550574393320406490687106295916819909789261854591705970352628956888533931957240090494585191188523193465595915742925428992078604655464823767595474890987384404089335736321128055099182395479019729332794704081624363939586427731362059890961731126210594405398214737519648487512542933432716619777488888019463050845999905720752477184487579534408326025119926608228137539956050197628513581090437942676109504856601558752065496775321985654990955506241086153322499716950163591472598034940487184143966953063061380579853550645001286320006285911422537974435057029830709243719397650174959211093189066308336360343481382373438688588948555566447661432713541931519756024764266564302524749468699802746317744075205633683766373642599489655718962715122076699307056896822625872448683897686175033550308110604347630481520969198484393036309033617877722706054876997282930045832037075563724211620651140079859661428209598725038346615389933471007085623766385293852264029743774874140179902375116131428369630533472947197599192015463627786382910511576293431925471987072657642104017643266986069488045093131894577341697512934340054508227216065481393008358198309819479454203179392628443466738672364763229620414974323068057474977468687882826425956679864282873197835473230841887103085283215547660132888280917089394787592218912626699501027133946895896898340701939046725580891477206226126279305760925314366645151578793070913726511381952607921995302274342639247766183549865370819477958314328298078880318804402141997497258090481168185610110284923203510123503651077884506094731411125430368935123798811205262793741267714565645659238538649320982541354438220918414687475538190254445958296623997020790194124453152178421893145264845554056588239254455519658961729976092822287531202623204852525801273292043388150793953979662752876983141775274833477181726079616057816509114410848682771744881681159141689846663737801364328725025581563074641031945075475079604097075343901157845421797746525009959274013374082701139935832400255012572826184944684270132301306532505364599818433662357828178752751458070949724092473675728594570714498074435189094683219283969128484476958550495272983671985455691593526332800388821006525399619439151067809204753747777482939033064216770864389430239041845782519435754001189740425096446018410460064813926129441209360093331545670378831066924746866440418427469954688259501842443524798077261786002072110694621342297784043134286646719458192282703591137153072039084228020413151117322456688897020083142065918716531234531462013560395505719382516406645997794654184806974746793897954179440803339753340828307264101052389822737272703113396731264017974111902638078945233413231869765189383293524809356253899155029346375276646483866419952428648761222179089261723735092991702952635234316638573803967978925806170972692498570563680260623461784287830818939253824578441333104368235492103093366423540892256976268516844978223305235966847769754287010959369823809187532227719725518727208426195368143377207433197676409039102630237381605311455424622584807443303263489134132621613364013641752514174375539798683769607746938513588832976271901787348547860873424212905933986792201980443777378891166338653785262417915831522811050929323068138484486342983946040992605874297096350895579747353436507647968704083253362874796118342781345951730274090874814598113429015734415472126378589697035626382357170902368089033368809659012618048947326797824480566974349197559743441534297794456143286506651103932198967684475340594365030201460819122947939504278977941124633040439635042610063234286257715955663912967789406965210794526058095595590329600391506233200800554634896383493551444636328346302963016896380665308287091943614205903343955654063149068966835095870441521376333871445251779931785993653646166734905559472107700611015973242275551440221693566222048003199363470560523696892624907346838460275918919188122063363510106957414182128077117260081147186620729340929052813373969315635826881060583503452559323220627825463023388116624457373607762127507891895040283663501777048422961347221907142051404414338014671683148494673555127555926347355015786109886776868818189569751106913043475954748132738666798363785472315130923977657318425088681591190349021673903817967678685188660931960759733854680948612968011787744431969968698881699852701967613994887080709449359518114174726423704973216969117462192779671844636357206837850244836121148976556974105632990322799546377027644767877649536499813797477398954321498251975865595011056340148726901210395732136034180712009886716097374009915488802318410340829394144395632958677165850037117599772289968371728955065647081986552585152627667824384688690764307660567377235841924559724856453036280642974948514812945276074134791872666049167380225433236159407080791043620894950618754938064117420610741304854976579188860463185930795868936396889637591879411065254964298217242775138845298798865629759654834364862204691328929222360084562694576842685808743921096226597098656528200757827347371684271221206660448845224082999827445189890652307742135025541897265457845238058893412370582302223506116371876090863737647908606561785788177869846412016267535892767163142853884589364533505320292581779406899483529931575191129492447825002131394162000591667963821761181442239529344491752006077900131220360097218676097627008968666810421313929074954233102037060725943484135947567049496425753637371055728613842348996560382405072051026233577573770926743390466878762797822282003463642682889572317742390105847583659658955785152707597607926146697992074191942001241608278483879074125700948415134320393639346719871821366557298205703501864705012449799224467565577984641189751207931377994588382069912626690407980982619044400759967808196372597780433305784744341808911334718037734370117890022399278872932312449974096069338701068937603173266713319189214411473052345622922448912923965136561073240643330997381312878786516031743273870172610929172812644081002625355773996138420427417188345855599749684845023222429184456293333620710882122751418485983555248529910356163389604072351509794207303924609882222434424449014530009987416511240894327669549956325076897452304910743252888692851566071341979262091989581173373931602664510680817214040771161473205474022948882366556518327699460876805113397327245331276865826647230134666381648592746937536662143899995604668575175253903292110524374428802473771155853353413458928932975085711248535162520701045899472071659599198301547212714333067225123776268266355403310713898620741964495813947997952767691667531414110440920355413117666931523701075674059696501084549326863341815696856451115866200770239141613352899506262377955839045780609289382560200868096678534551572831201718666821602629518870600226966660725796026092132107666672563571481368877437069021456101839470802802389279853310558370975961621502974173035995890174507833275830007219097760578790081144163163044798504680027829085465652777896297737060367887703783444163447085208263851864823490634799336016092055844909979487672283273982018222940219816873274265888399800478552600049918911528244925535746614319417745320221690039790011988484470383682918494662275538528728090789752312833542826926611587513187878051452415738203606604252165059754075370429628595122277878848743754881795045369600731710779981560476545787677228002895213974174363736851407044793425196142321648166087899398381716402627510069414013974834450405875262534237188991534045795668808333146843528021112516763597282712591268753960659924749381456720702743065185529531454494379723103168808421063988683175771452092055482382488432803774035947056074395324415464108035505379169688724529193660527415184278397208399599729566439812303971138639264677374487816367654003203288962799677120276165527924178084720297594380983892411272531415608712260702315282108548617676981026019756218148454429470254476906874396956940486311236695373831569531185143776824137855235691139227316774664737717758760694884231264225171646360351987133014342737909913479119654198289664071662965212357413634063386538482709052074923797076302523817606122732354120527509478522790675822954144795652913701019705906183832583716608207063872156319353638963753176455940247569772207013367951292723949776879375498061643246924878488291749361317410987103428188681134811463914232301245014858527823451524716773465574532867740763938470055823073941961420487533278123327686928580029858501865981445652645494866605594422282192940907761535783593250571614609366011086213187889608358432687070887837155327638452111631698648108454670095510683415570753451140568472949865668494102638811474447877843827123464658447779262128539203803810933382876824978491254949782126771946673677181432735736824287196523262335789787202809159682474811779094616562663512246854179947215099074804979359560105959879059430260527036714537068429519489387816852973105157462026453594844143001620073032814011527456828454161960906205155963862934549386759244930811369584224056821985933101083712594437876693731465033400172349815607723115316535730630827376223901080546219971995836654363350340764305443096736266048797175298208558219116318122227489015838688981064553445605877591228335334219117946784926351111752901899525806072052981614206150688266192608558907783034397030101848596777530121559749074981437270663854600858013936808911669303279010227327982116695395606120870723766115162487627677784876362199680876679505336749631340420652165891923790699771102937806824842525501540719063596355343673526143150296880346098744779786614791916732392942568997253092348922793356464984221767623899743824716790250177747522358313815371897282543414929204131502976062882363364251229252790483487562855821552395214171623652271717901263264516856151510840984287906988085075805204199957356452655447871959786245694559232568314743174136302512446664639879218316085146730382356892173007470562501336382961297862160038199060373888691044474772889219599709920155235707806264455872860837827594391280945932214122201225731162093911238355167284338544369063298165673056090578927421468175280376756104351756945557091528036020094682018028698106286094468710645401862443757859696530802483718743035843081386291729910615852503802950290666813096695115541931897145425656774757965396426085125563369873680526834538594309288217028626079736176997596196193376095870549629550915091451607151657670942812162304723428334180058154076543841803973535384024255398869566624038548026681137365128864685410139938842157426965568510280774360893229554041836432503445438675660007653281681510025672648298172061720501527656872606262957417990499922431743056314267734232234280213274559256247146286438212744676085107483561393578233514266661292736869386335258242363704905066699150651702691253837872835413559740241292915959200520936291919548417160013661891658343900320514663428767722292814480793191471792743223598287149449546322421807172733777002324660660764208162197174946850476952401053115530969767713505953794924488595212464274278191613543621498456856977773536851486737190049496515562126205303863896810892074627206130907601453860900272920181774540897783683104947088440960646059186314035498840782392698225023703253227358763256999141397958148679685134066815294962336528635822113176678393388305927944199846771262813581923119565490787265790327879856789986061371328820288165909568795164386595557089069323198589021878765415441433100616289336273804852891653744486261273300660247229664358368176634023189697300542989998653914961292736198970215328318971867798175293335471138422897194306613760085393750399523502455664510545368047141384352613471136352482420636688840133452156681520951295779112186248344436698554885661684030941442922653843455657678943451974640088012105655824099787265704790632768496355854122195741202358984319396165616619191611380286519766478198718909574158666479331674217121948723549814685085048851380302675410924685665563839184203082194312681066885579640676080990550271171418333475046694314666484302792581208258084809674761450200337193968131909499214051710795687998013854014516371002723095354876488893267648772202051159825550679065027179742602820849515418184600381217830227557514235237888819260248366451453602092510390211692287615535194055376590875367295323652701870404161274320037176741752236914928489214809307087595933891411445142115038535127344757720658988515864603890187536754871399157871677672417320860911089684574958453885706134882288400997738272505756712494398030317893114654027886628805505980960178518620582025780164695790343482526358820119767117483446799229907785237173621341931052433879068930304175574939701858202032445895273151322125202175637242251836776043714028592858016572744147676008544370958302431703743694956088186901373994394096653344050154448780081514635018143962200439369692615560687576627451038093183529499330137507915744472554847489477685222544094224265819840817057477150145015765216586780826145558331142000173004454676408462974033386291053427058696731191029077429450609110987055382406588506426041184346979231094568889040316060765321034518709806211844148395457817634748055532306600540428630351568134609878353138579083804563584745908371978493571109026945735255596963954266319950010195313357388410328283193127538540315031717377120829849462533519054067594064111837634654616300680503361102961019469688303319279537234932350432357571234813710107890300034803614096661935808775027033644824002885824915148282140698106022234556343772165972914212635638154336878934364355717120996756207015034455103929680748011503942897206655480727235523874486540859589481306608746282323426328621692834603901698053159892216813557901290247982642977885723228811469876442999544717349834367444228946437056511974544276805455227645160302906043023973888549404206060675787071363602408964267078173086002234806484376539053492803374286520430205660775486844176860996357132434157661477186824612629727245928247958139919447638705052270047209732372763021970809778792174704100204083534443955633165566511064344694517240702112752888463681283101523048921461108587751691392928621898816214161309323646672345177893840685934841819001795845170493824442277663519566857985490070958091990421430557223765295760509434326945110388206175092882957287700949493339341750227006645299735451363747989986044590328143164341064499817811857695454425003322603836112058503874977594780351682887896803740780644113427053017094414498490002946285991912811385515243731351636055451315109101548772182214830068371400400526397079059546125786871142047314705220153068143040137506203334665337985423647569084858281506892870712047869477678545604998587762803707951312409765701530255160772838898809992029642288064697595294914589295017286590904950056584051892180016619801679135888106908105321079850602360566968359368831170361777095292059565290602876166423708894931154310361152133316900027271445980705121016846546298615439080215675941024799867212441502628585693585808438447957334909545169187605927497490168297174406207248016650551741623056395865208288536016388561618926615574516281663858781357406965323360438736263895953177220458892780478325334998062410414837498331154619627746830671281583586457994014831486854905110322314409757991695523046516669946359395671315871945180977344381104067506733389172618377120615381384104738223010604924955104499019833418805678195448077743243401377938511600704236874030030187979314301860885751579868197153019812369139111124452539769276740012548375930406753080114745903617620574711721020430722262264975800763697133582611288316632591946105415961926976033334492535632204660125480342395149426720774725536821549294835326480173290056477056746428414014500314509388311692599686099121873040515406394643025739223834653987434334298050067791657366893017280193618532346276950736290252940664333249725130585491150810465011398768682941413690461127608585701167675758939644732944351075064639769751813789274079903256116175727868463261407021972202127654418272408702643703860295002821240927843894484274075609458339889872117209567557469626740424509915083015434192894739948787270731323502971743407036275557644426061828227499458680786847886014224572275279286543888935983587023296628741695801880303937188182005168761900221487016862060963481456303720398500040507027377613507236251820000241948857629431882467313630921645736726628951060290831182417512605555909849841103203990892290734204589004963149757069088128205240982671491398686400423091056665334872451692696082213163058667606191892447452201281510534730782051229088375597806226761637753632176105011101428198983819605595598232586809134104063386625828613881414346404022599492701375804935061604632810864736318376938585087236669870350383299640074783953687195285395546820065058883450800394391326684286417782954647024487589393736850309712770454411522154232721534742397641226632722045338715275289700901817894784927049083831179820084498419777836406583336933542473395540416681317398113769738356708651893340356318023744234036387946169776737397214043630159784364181793274903186405166345427936516703438512144697511507255722076481435315677858579070638611380776219833872798278079649930930354723504970864004498912630671384517920749075764658284185747935769546926797320923792277902749113199516976832355975939445736276591859632268373503092384923608582271461402242115068025123770255148616714553154224419647175757149760588093789195024109573424886655749708371734353679739824197480772874332975772312024133684935303399435700483000982830230250519730965220970419444057718231408525221220901056711200918330181916566135924518560742456643249799527219674312374157675389279803821352631621910710358507026862628206724346786374528544934799202717065946941700930979301542569930626416094286975190136850961015711347744045809244495085366921444451056519915990715987270363382541386377135237876470377689236795278741118783936879733835820265764060093729767968256135604915306828926850977858709521505337515721991744156321397860538487264891953261797792288493817670673758323220419135198703359278626985369604319922979562596821366941978396470747754870518669077495427300432902632839095133619704560848991061984012110929608641480535018049422821431902578285309607671156855423511631677066468330461472340070254815942711143804249115565713337376532695045484252531654007354087869991092008763890949145870495325909629699436762329072402809775982184358697013703429770899328338833698148756915201632303246712702491757278034520345278706675712771757915407855637221583805752434322102293083609574033272583949215579924255821292270681357428005453283554190535039665976997991698589835369326413727804855437362157801249037869432689658735838962510886937043424424266706376068627464908125791026540598369119965045471488495459724148016906954059843258903881176918439779896391941321446354803161110391267187202645097957253578853235152748216663736653440346521035214902920499475653020083451107717957256564111312397506844611602074728924334004041778190897677995762888160637992509779136640333396649294859020400216991313559927371604703879934889288551469913565498099424959000351435130711368717379485268210419757319290295316639542289211047216197493952628936068263176317305730867997005175360803440017650285796746918306608561380491544085293481751128547301135506582982579555522128762942130954709387629175761772932461395389326061265014250307715418808202155604689884260123740306365399798222636944886776786168602751029497569709589877240711492652529883004152158908769718452883769176579384747484697802320256508598112849957704862916387639556276666448456702455761395297631988728627214753554753130528007534952319982426160755614821994580925657753280169662252619771436326296137254164098518359787576967534807221083542584982394353520371737554855904019992554886131034679252044928425547593629928339831102948055693947175027667064867983749379394200776087546999357187441537844699795022174604803211583354361487092752739645479549776205789457095719597979781284249612791447767032744755044020884135081801939965032930958103908598291657366083025965053185505496062240002805643836268854982375760229134096080302077064776092079984919753940317692554452098250564694813366176481018660681355514556531201965468246868861972841712186387002411714354203670211733629197446338972568172717746660326670257244923810558833297342305305891139566512909165840503166881333481316274539319923522247458896994539540550053792988298918834573477998269604750650751431707196839709027155452733812821894767099094307554026484537029904201287274681773683747695477130738812617842577066616136674505646464758232510910277276763500839799840013006022368082918075353307380619899763089012265490873621968910725925841653574106669995396453986389423330938983010877678893580695782474317012196058300405971721759504265081181524914361006728125118897557496009674706621201099540149516362455877955381169668807963439787778639636536792251409304479707292554890810102240119953583859948152917020105837325686025227028204302116095500590760329350853315008792364543143328349620065332760002981410772004772610141801737532974158677833938514609592551376498935910345693987880072213146809258647317066532403960315572623518400161857779886714505014775065185478882470262251786666808406673650948693412168658156258018969600199509052709240087079090049094353119327161261693114012545284318366411357500206905369060362521690811090078828867271732007922618024319237452272756564757972738916591586114166087895104895931850926357588587659461873688464377525021070365018881267640411629693920474559929669765857102536369321609602828292810139968635813969911264859905533126085575199461521787510619756449096601707559664986671257199907205609352674390584513051269478684062317302746363207647664822485048141876008987372070589710922131675157193684708653836103501767414062000033679752360100631828995708803814999482749692406183716525805569568944436810658922848758335216071458766645463786955892479999405594008805233133196722497209629789693774071293754275176327639845150391799735546485600342674069384131923044887767747353962891456305621378044058309225375481635447292274296360577146782613750059482127450368454428790763501669787342383270338359919011338129677068524881218734148571365377021744174663179710305967504658984514029080053035682111823807605443267467582966471559709605113399690603935243251934935188620498851396298775138573094170152716350723096570672407002917047220018738982857059873047747224075767225759612215909511881600161279587986664002556234305935697007172165135677868126913138170973514392589301087037066772608387023724765420960539813384970451757507486239200628188117936990926418162729741179471366617701859598290473137547417086803260061941367918807998538963502609038415594139121809810795094735535292147199165073584948163175896322088767878172910529921656611209435499997678064774997530816160180090449428969623101304855162000317148670254541677346139505533057835845666837322016965072468177762487162468069149858538254704866556188765701089091687503740945957268870952965965660711833193668003983394480500264115004718962854243667198931664870620340129090056470884543459055474535250439474342814974055575224666551994921932306662138587892947099137454700713878266399888298865752592847594864335750486690072043128607681719599561078731308425230420497306502427574779291424483550398388467919248147751652279184227817805688353646787832014709422864025917984546514737916561439031914512243352095423079628306779723238511937002041241409074902546528809061103754643511900356538967256478279000321455095683429332882929540936228672692981054788159289105999135173746022439372686127036332090007502084847823890605125595110007073911536223504273438601873109959149490542277108111329208092755889466504124891444623799133594515268995863507616533496810062465226177076670398422730080955100570721467328833158556797803400378700857953170900293239749227297887927074975990232274454787040328460563900578165780821731590441941489763273322149453662340967583986812905355138048867972750726311090620480187869511453182098954376877396702881654558446174504681266202705049725095648838481687562148213597620367083530398040060654495460224365002343111149702324895290813144026527507141289056419635395415051944699767880462000060643450330329707332770022591302990362362783963621331148506975169942143957489769208304288247522956976605387407403097624937806731961503591154336296739974716185676730129896078350908206016580052573706703876064000634877215965798719172407382858256708932327364991331985102685109556059862748332139725523038832220153629689266601787980916940392437261323271551626377556235629391692594431672271588786417583532167257989248555078561563544749289820575784374422545606671424846980727267575557001741545588318586548403811917833470972670114439620464031444329881164731315150023366917303153181084403672025101486036123728012436382285063288671586914070590617891391126032481422553658025183247362731215660714678425803229958269725490700357711576181907628026080687668851644491795524250906516007977468856712105949189552855734218102671925873731915309839488014271725964645493679020352685837283560437989424423307940775495644103091191373931987333820214911678063261362248025672763930889991986750046330781014393712603462305734199987754339155089086002025066911077629840981856972991279180294797360592086515904520410652249331815927827221667842443198129001418070024881789640503730075167635039056741979890338560181784024706841292414622827766912440932696638602932180771286869553661784016038217160630430236671337741891532220636646472258343264328432779672457885701470673118712872586493264971112686918934373311830744537518502754145904079275462989436509987554266302121615627694888604132139149617262978068631235267757063765915028259154876662386675093533296172125393659355513955100296360970040517848253097559681950966750038627384646437180691931280987804038593233453077741576282674084407212857088266708716191621556322338346114058618415745313329920934284643255438488901650326351931905946603246595919734754029392541095759798665208887162788653448461563887691594267725237584795265509084237142158019559340748672678925739805754351714155523732933550691549148092787283361310576447767898073661185125267774099403618510647176619131779103774741741647169852511371056756778990993035963856736354056867769411645441203503445690295954268625986812585013963148060460636019721019465066503564717599981375035572624628933500867795817935080648402228863606271289755993534515247871544583566452355520981885386300119938876317111808473780073572464632647496602917177540695423783721350796512076883276419125255793938608490528277909793076142918016737023712952121613711561063341795789414832280640904485285897985597184108780135837538020424221025456318420425775505035322317669315077627438089245969475796416383809472427787428335664534397324231797534669708050256139592427002151577961177986876128147259790596705855993245222231065198266540852730739676880569877703740684338162684056952641592912631984101757547186032789689425148073468302330661745828458617005372776695354575132867996834188389167839213195947676234785840266602968131827026478184513070068053211284534028883785436356207658178108952155581143880636777206119608383298795724388030854083246522408140596292057049502114655356005470250043837807987316050603583096003649509745789355176756445824560638532175411783189086054269410017782450962338654271667062717301010510985435800699453742604209925502641048348795951108847493860293838457583578651004134443819392925618915233136163981381851681044064770167945779232415168806400828686180546943224915810831955436765220963358730705056291225216154909346286417474944144461268112598012673698787415043802741331242511805128591593629430734043310591372196691364455779190688168030875929418351207082657800096473322872935755510294303141955732308425623164936773688290628574984509862358856546531126834508706398106919576882388700776475720857127860113046878840320746312389270507168815651108188200033715218993670646424156695697671916811255307542603767169331996565592148625908070486457963755146311976652181453353184703476503563376179065015050687388795983883162756504834617296433230277660056571222254016743522588109163582139779659941580032710197778866135161075803274586293567340798478755696480287653201192479246141483493471906899134512755154311563869087128315083184628648334709681039683139889587705340997747268911087938044416180057381196638035985327078420887086821691474890533815930163192166561324073386508346446234306057017314011574102056376887249808195498180073394631860891973791292870388284221716272236230076480350712019597943544597237823969653070070048312158429834433829381327934308701404097577458234039493952121407521743117179502989880454987000458056800856512829163398376374736636902332813785578650090517508644767991663762153394380351567382171377569671271367555904731909362835997702286015034871925285362204551908531084861394728565215531852085456332601538103684414507602521708592831049203660692395455591547311421186755920758800458585275140105254558899731554449776394840595644737843384344861860174179429088812757103179450477584084607727461595730525620615401106075549108650546214771129253525153434192442212196268428366337374435237125907922040440800930748162522569549801926832584947768180473315718888593547516552041317199352309569571717194527699491498670977065194624094093685744388636331142773413421385644124426746971619681261212211639222819205651934645731694159537692552910638025140216418214689801405493675883316067656274690523858406058854634158086809177652759786684471752055676082592909839716827557361332108970957489282703507330168165674902280002664969221638750435841588568555910634368949576175998559993665770312907618347292999059990091594349141403927207078638168096976791291435868858781605079076766648699594493665915535862913685008156619763876316212445051580023461283040366688655249677866557668198155208616397727199412501909691630031459068546573128988316532271312343464130314673449618301442265718692125357563248632082662207663998875900605994141525959741479534997798735430730705727938139348166189183325227874482460550530998753700104131760388331065339843288725163548943334855193421718734201934487274568095350692500016315151192785032557838150961756607910198386210944548129140070286454406538934943112312649552160284943045949693552594097392458760707991501647436185093488172530805036840152859322779898713691838688890923815706503175926865971364358074541029667026029981533766027959928564528700729948203980125644296200307611490287865996013058523471495793026923780672909439751051842109908208637835781214399773890574212179970264153546272088124718200734302157461985200754412188620197146932123172060087380547753142509805760024506034984850703872111265758185261760670415229671911454929966750729820848971418442553480872448120042905267847850367439376924246459411497651399499359112112173039371915396903786904940170147691868080784078453009344826047804074104481190750183326733171650013762438818300065711009828948652835265788955911748534538537249920558501872767149358009974720455127531918087095026027609205916986421553542983047721864253922941066700477520042780403973091450407864881303935983142062702057641201218561816016623644677681831331817003425385485341921890214510701137480765122982809115548416078510645563748016453251821454746820063256988028941479067579080132645698364449978659844010717073229626363169682499027192620071220076741509619907011840389512989571728276541405963036337337265623961828220483723747393732952493350475034607498674118025737572109769291689046918015857807900542117099924394106805489502256577020585393310854566147047339063786924278403554676881458080670627537111453641685223887111331814478402272660080281083042077835824074495709053041092735032230325190260618196230179403716822180741854842581968154421239521833133773729440332755560025702704218886655571645683310769132996317683807894275590790812240138380426511368616210409287192957058968780439500356188043160340058429668133058162576108603227005658154981501168589974578385734362559735642187037486224131740923141556281899053515406846162263201512691584662464948279460797814149668311514642646585659065187703522160264754665895825456206378459275096076508970635375846479489405987802456086536976594478068927115929262193937834269797735635349438466440658761827484597075704272133881297207213890544279450278477119186394876699140630059441291048103394074243510538890351691269521878676608001343096259091851917674099895594334529514661931508213662899866784817648957216282805149739363758104384440413830492914808392119347152253034281443472492378331926488535621365967709929200654612180982119884737279710435604559651820526361978632843936718640061606046229082563317448645097387804783529067604315508788842327944096146220605833018835791698330215199389245930510210666828406043272425763774662020284804708917003042212038162372317538443778117018227558952900845387432528737027923384488699641328564861660118323816254568532261408288043113158382440278119081200417522742973957562984230786965172282556756096244948629108659502010780626923088319977464570160558915438486625449935029811170324852979761635244759781159487227334077954293381152218606505473570662655938922198300436348827154484327170239597832214297485061182303946641956280310331250597515748652136800316875834841751733451453470857347948267625828163437806752029132378856155245615991585327625458863486039157139148311805201012735055937662167705195499304553366583096661683553435903371387545622809081720763588521828019144893324496121630333118210471079404324545248328451399979476690163724410261627406838873133235567498228896044610238941113898867123223325239180717547670031522824178338884140366823403772975858029541878540635014403537337310574928775294653878986608228301858461890643479089821173061700393308844869359421102195853721409034140287430699536428782487508340469135971411253635319002565305508248857032487460603265199851700600850871557342783770340197292910675992863002186069643211071276012710398381881543379917161381559981011111819420920450895338736571741706438146168129819754874922142421560755041347747387029179001991863932669599823765595020785661455478061027461991232797888081058025734161333999652396386461826775306333856180664768681203991786471559535121721369278106736574391881400808156044677208599014383950444889279880890101125018413559432794265734066973470455470299144212714439037331107561737500658005810040402937808302148413032504206398376275537115740958014664604502535862003322731966236467135981146841107489349350191533661742328110955277192820095674279135180312721190908969708014883580846887324869536785719446297854150012289260437846974008768733494203356654502735115994250442649462872529875491539161126325564818063407983758210329672602237663694214958879254624186461824742301609534377118263267801783982703763146587345411881719698674671459724024125471860046339970138062090519786437511561708048946156784460310735197323723651690250945389152770383597886262926126045444256096085912909473643827522865490336837568847683387865700526406978048345482241259648449326939557347396126807217043653334324959648132313684347290190816527058431764783574841882725461375608775790172572768437103327826232840938193567234879357204458436934100550852502737641452924405089615703835461679732513740904496281435269585779254211559521285609954486445557191658704397213299580619006500190091527250342596579265682006036720352239941857488845331445631357373435680691095702548745576501884109561050114574281891094454604357012437553253101472586612011044201697047430499848506905514802880112319123211265357117408869113978647415501730153724859810802382977344317594514495108273648943636807583228033439244118079460766080805500705190269784666149907771539610731777560320276270630717935245412778440178382949224452751943467996879761578472237636071159912875750091262728775753778465064133263941588993112223680025783062099928179862880667434846704532739878255221131714675305765796048057377375106337538464615966130224622881375427252900755479474589628206390752672774160518752591564987523312141142301949503276966748106809081316657658558985458258963691399000039554001653265706092409298693176274605380057561830311497787417385066053652537602183622622367503581906895976901796064888301142163791956055029332008747277013971905822796816824210861250664516291995389173629504235374437742986779311101832646485350760971841796591978688344231369218895976965301160320660598480035678415161955969357439286636332879115680398692530444169690632610057403957718120895170536598422814213731526994186883666368228237619061388832488061481146836123813362748865897034765370180176046086064328334273092338478211000867583306695932593205083409044003283691468729437732670111543002627800014301812982241388979444715196440349907789219842814076256110061414417669581334177001314563042029639114255191537303316936367833072556530289133637269334812769055449213901980421863825315084190099492216072046784024781810056882917356126708336907196861742477247133655604673685428368491236163522137079427852582162879148629634453756447075179551735532264290006650303724057157641521630251679677269284583751463503916086369403202819351553621630052639317600140831776699128871805373567087027335625838867929130785139354869235454922775369742261214508125286413989624896401666951682414163100688848531101414800189443340642007788910023359756729007592087250665730888493217539783533459467859130830926346421605084634783005878997338323656797593476386701408808340780537066771146732168454013741725791115680879612628489718545094936221585837675798363110904792177194189112865288662425287077085670474838566480522941070342639991342918165476174873468264784913742450040182469338364986666591248013814140983392858342767676224598312309554681875965432289586488077670464713443864859981238889731803921854635307266091225922886366282593062051631483365906276484626985445858407482167940192109476695161244633174320777854496047185067268160699243924659598212130208194871281790627831852470338283864027126785315366836800016206503948817256113013770026075318500256837410155903879553784837356881505633247008906435392451933191312108621130359777915113964529090193934185795151288372686667802407892250485575632308244448290880095567748718659168498616531346693638962852524098799084557749363897595250748090603741298342610732681274011433711871558813958981780612121525367202490707679398174781904006744610950749764172407651261785270214023863906577308227214400945340080279866429242714394140547973982268551072766218363629324138207360176903877243907072882627760627163563565036706527985363313700421233689865053370354543704851387547086005586206663617012541487238197842118361165320624196946721244682987967672864269090820272795266864268046052181433416407678129771056519269969074856038948408002789044889196941272218776097583319170006860324902972699644554496903244973755261507763975056137344772731736853775293981947632950755243809306590495369311704056921201554925961376883919161454083091882969707688438575430566651679905732321233211709020240361549908157744670546044758380978972834517787728183585259788485465386648377671034383977287831797254337581320137376484127572649185245012106257135406483048635543887754972339771813354776539301797893349724866654175482397726501873138823000582242477996218125830553741121550350832757259204254725793340181651058272466489709062376276288478784248708290536119769497623434393268122877873149149068590063325322242858345605737723405059676464674540403765347229427292111547851339763813385238082350210267227347681341707613399086943703795619189136289641007564523977085960466216854562939120105329864982681377032666612725705767923733898512231867784969328644275699708268515833196154471146412826887319483403495533207200732140279391442739223874731982225307425105593905785534975854046907727946565229515296735949764682129238165269816425915010817471179769347518304761624775581702133634455376341111475486257364617387171599277656370614517377916526086872739122120913494086848234484144960073589056780405753614334915581014706927076573334452501878112418361370546278487702966157868399782550444606713124309085502339930143333419593525991124948318023782185340274959053853936000641604562410440181674980785736800911888582956758654955097157319934032054588070520902723151366007052497993943550227914494008983649482859816982097086155057428906339800530014919308016593911481471177636828212150550058025482530948603743450651105675661850764975249167658385430840616826326310394031403413810927933786026848303823402306210201725021736650310159774536043335010785113623587867443733561524585083933395611675882951558232556038070738565871857110820985554494584798535725461048259008032979435255558426737713577484739135432922889053823131312324414071778028742387638425192001264237925319288868171160933800072750255225489659641632779211268377565529359646328492108685915092747519612228532711401557024712165640051017379845304190244810872847951640478853373622120095977591477525398123301109121899502633621822190514707571494658252191778241773410496931783803755553936995265792268501455397119492922703169483008616913552360886758424835354082584018400082313777307796154137456394356059823644944346542429727352954879180516132099573122560253932351498757341859912597787856894548123611303381297545074029264321889856407171063562051899224814138006201217270086538061238460251663104365528237566212697350604105290725562125527117168097135909821397242809874035393450827581826463878214114394202063519264892835756348092215296231717169402614850814452250689146096418960511420593079525920814975347789444096312379252623463205050510341477946373450349648949673514081064548780520308157139476529471940296878564539504648838230784092535730616371949546543275044418103331691449423848134066352578706979076500610827572621543942502935042431901722472881853320542456571889235365509964939268168296452950190920501125769144836528005092333988960188354887823793912156321272441153683509997754445425372988546688501929804976078761138455942449233523855174030906667364209197242929860445819169702285729464641763899064523842726906954317258592976820876229680278167978354264540056990267918487904337988169775711924926513270388260908778884685878188486803631758816562163010488665814478502819486424554526247702288220972021757063723686035337846024119593174724725329108199207645545000604876338388584248943912235481814012057364346602381976284009220405081660829089435853284216209401948090847897851864068968953764215898814395335986465524395458167396696630223045854555159651129823111465676978722983990535544979053408934804600117843258590154926195539141835083874963457492777995419988823670556688669321426299357277849873178209324004410443803039384371305949459226331400884531278890390414232256881544026508278326746066999032806959498623047350131570875895865771813325764072161653310038765950614312334077145854010012186402458608926452446610974574337087811919012572145532989658036092487860687945296086774783264222115552529971884183932080866736342102757290254662617120580014989032014141498382547441347392757213229362957432071067570574173123709267905375259166395422210976945149740748053597084127489661414299244601280843617381855191997422229371422495976408722652985956957561587776392606928489760538119666113733662975493540010290363109235538678510960496426495091128314507214516155286869614698982121287733044852675147862041987649881370484889927370133307837079500927557950635950999042270606191371266152226035198014074773542123272072687910767535207530848279386002933810283551058674113770382763908026892759299562119537827409255007586748492860437950019570352329122632764022027418039819952919442727719423898982579971731014918271410902359031587036421095368471206112435611620614582097101206754482024953746325772437320921229575045077203615149850069192761606704007526845218002538485817397708583847440294803844168815137150380563982550923254916511666070479367306147620441283744899961936296338986283220751745071005109162274078114232185593454335979044056863493701605193568017221111873349199752866021779406890902391021661260037450105780858169927819846847608219780167630493517640211314701382547579692433794109336178032236633180722334723367534645769624091338708620776909758122126775840309195073605649747293237172627606603149341435319571119488101558256591567659938077548511480605741137181063656406559321163029791503080065303453398965935293828598750177629823316035523378620997205304297485313768674670291122970878173988550647597960293860872022638018013537159026515904168071500659372043348284951211256186004407263755940185809462002300065120347975260867383926548814672829826453940595527562344852296174432905185924298251665051524390684225810727574865888263238974433038761801025528721796155999038030334397379719180320498862494244737622645142324857670157215375414874302569220302664441135548034290454059779039021883320073063561944638574691938805217355736623235674924775333551286495317215871008999960667622660654398812638472481671420981411968239402415077444408555683392868236187400880979918955167324667940423968181984240795577219648324932339484385742332001527029102609346270310521876706646758892713599318943500340900046868563860922913144831398023217145415743671968998200389588931966170158073484945327913829154378260366904775904160275882144495755787954882272738939681914473209247061704794392258567272237211262350478072943504422812028155650333099545626000953490473091549724952734163917894773553967709309413505382191694204352780427621902270077247693548943785830157243375234899034005333857717097616694997709432793578951424564969274320141252579344377327604197177682543368625678074994279885963445290239864049602940833449640072303285762753231767224291654228058590279154117338217241869315716004675714738481542178343383205943679210689801450761124748262367317047196749668732263177752996943269659576632269148738052758558492078523708717749960722448041628453609568201615375513713545117166821228933499861202405511603287733236760623385636654212430769463398213130204157220971126541710446547363273293865344732770882682838562205390975248961638891279551918618554360911356753970277462347647698581282852663327984098844476847484090464293710350004287544824167799708500218311355722618656879854191577505781199481225637248152904768242621502429371647185471924799689522983072570185766974979797261148448170263392982034539969772360275258227106816465823486773342123191725084666904925170041991341057377625624161642375433147368883507762161993384916139130175532517041017854556110586871960009290807407928268794520103034237963104478469028509194551298705504032887973532749796280018719162664841458331473408720311166810591989680950205573463705985484707943065737463610324364160434524577517376485809611805763284902413921105132496378448022039541398281003979434038412817561502869335105228954904759248494835515068106927875628877142576267333015187297847133752334597297807683126580388115414685739196027422097214884684235982379309907507020600314444507653785452874584900636177539199218769541136730108769827599777715507515297330513563117885066214695434521339708175743330840416678254665281416363484525805623491543109722609454820389367591899864639247933827515587579603397552013262626547669723382475177484574678242824596814548109399073734301247554313323674786933542128806157320254893251247560595645540271905611120785228603035854882282768945340260074899399702488386731712450751086217556967492522127313762205014186195199252656619699276234648669455290812633104249099150039373549863022175587374311868989941785980691197760265785650872051911876996499308010683582140738078894878839791038848872168738164062956480529406736160135927652846744858283000622896117990056266747502780106301136727931447056452187514959471030829509979341489537999708526609950802492113726517177703459317293535751620586707036267609282883781593490805762931002967656124703075293544066492739881089502166332809827410097492624390016171187055401974252683350413613440259765095253197532116667181426956361423386475078972717275622004690457481952053762768885224194464930593363954659556885220491439316606512858838770764658474937300775593803334812106883385478487569915221120462123143428374720016338344979756588037856350298141791882205588887272858355811871030552861114374123626077446697798764465442299486753301716906726059609554343549091037984510467073974910133183930335632149146087889892622679371490259002533762273665211082507387723675065082126245226210108713967989909769224019769028261404680070340981425493971699504327850730800523489948843545407259700741996763276455883317538131126958954949025678180187633138967641597864365594715925385622018704686585254910849542829367670046622245961107563302417038518997724965095041287645494408979069368948635054670673765077869305009922980077835425822331097344540499846119246905766717348553274404382719619370548823597542577717676598523042999245068246701962349197561106151168758211153897846935548491278407607267789421032896218575002113986401372290295764896041077848353243092296661267538444910861116817707420226065872483885344507323514033122342989765287984070283153436884810562209678509164234637612586830330317187661801896785180775578411467828523449460439448264941915987685770440451979026320561279807286717650515653947267916555166862929002742552833961564045152572304337013896836248791755831665077182532840957226223765369094183497768566339959469468293763668833465833800660559992084062148008349584528564798300840459474014963633201053650255303002260090834747019425673242112323221315839293294147832375765542636936463550506945166065196429298269690914636886398075310426646739552221989567448289677823407793250502720743134715941886261446543370551671167733225727791106118240118817501326690091786090856444011364798433209930292402169278478262323229197713279500385310175820175126387292022766162037048910746819995167692257729797564702606171979382337772895298361418868469990089761406660676082373683156179807968291429336566671955689870401832927234238230757977511521990507821490384782189683951930742044800543473680620284937867592064639352936244631568998569812612233170544491186175408498963569716746166703966275505018899992112634100313684523448783462382847086118046887352512431609544314207815949134579141278118555605439951886470565314988339135869918000132091162991246621146014953078000871524089347461749266569418524883728069359565798801813377199174857196277335126433220263046329736911779316532891378520215102909955726668979869418136803138855103818314313677552238541080818561464940851476121817870792888392293338023646562531333661973462249074075133694103117958481300961447762157464417586092858349371244560699960693750283540582944796867755344096104883377442638673476147547197808407211709904600998495120009091998212743525593623750835624885446092581747803970649280676505132789004296838885919987696830923279527286502716104140749014473326816364389895807715702381092909358804203776967014239824011806190765897999355403543724200311513215472738048293228363960722716887724716006933335598834092330741574486128328385604027650304336911623895643870831359818544059270793492743920871242488069370155021960438197495321356766614266544073564139517577528729873535469166190315705092628455997490015511535350861508833998773964530291393275837296522903075507217986448093498950317533530390037663413389666198112609966532619084981777793320414384578770761087131078959295777689097371023702892095567026332795324700368050959816997875423358367574046848416068993940342396511662018335673168875605196683947271885981576174616875769625882964347287863149864327718332389725582867916097512052792166088700477302096099070785912190088485926377687949157126516545179895761426135199267333787919675675282995187852965889133135094239625749223924979054067244587937094953389393233471584005402555425170494417579032411205856093119848084798119068866558500159771924708820198268164183132356136859348741830528454975748273488873709898513650195662858923780667976547770015712416811663184711721349993993067464749852605284818037962739937394346432122907887785775289157024732228595246120584124665428166348362569654137786729776300311851173429734172814194555207088039493741556049452553346880701558872245271059588025251464860503216724948874379322971146734476847131459208275720996282781582182245436597976155828837320468632300938421716774913473932750503828951927183026941933000167651897870190068783164782753726700497736603012337577425799903408458268945662762335046852312668368764214431537220610693328955103956354372083600744999589404582530734868758310967422650370467388012893598799749874922379529794201833836108160438003675887152596312556026123325259616971778612243916375036561124934148069111799360812942005650447416324400509289422409776792251465967572439495150508135915606377698906924003121594132342909161332257129696804692602964517056629046161277823011230636484045878043480527171072797776949575967049661290821422962914826344654391645651540182653954055788674776021904617180626137735548616802539954261659784336901141249446993957110108557160576988777414885388601744189722589649788179310529090932494783851244553973860306715274858752953486416511451349591321925094712811938803647861753637994571511053676499402025380678622002831013327292639471273394009796854966009970304870788817908782615499933339181682580694324017540208709828065824498880539726962248703057262698770886756312445203989988135376844101393180233037657483514878176679539547115530395343087773099521192804572062221592815730476240041829896792473060437553859856638694204040185409267774180096349052359997940841540918759797300913739344425383544410057749352481485529258665233890203102121870890732806492146567236977236283454329762925744392377871268721067452645506465820329403740547152272095481796652663158320685802947266227714155438861027210481248664964402962163774364669580803888895207602246754854952664622149698834855160466610529498355588707874863587232845920409127983066228119082216435542062944952208496899702759304325628906093561390225087264850670698575374930882526181695425398287444259712470476325386140417174631844958558750983580866633060034304924542604808965320493699048500594309321504349299588741086058684198256803336987228304265314647957640064984173557947718218356516061347701798385451330527285873038468590689936249171393980856516815079759478672932769301426985760206768070081954655190199668573886495671362098045728723617278827328935033708999496986075060812228913599495113822045163444139028504473256722691168443308557958413582515642722584614103805118827512108738320564711799774847128866149825190841675463336418367626987086592933305959228993393616154901258925593608478580349556543237983502075757568213129600332974121705626141981862389226530899672916216012746786841279785949920321148922541100935761248001970204046825064658505697867400120651253940828304479691148608166526250511695212982871052311527321586982476259529394734264801135781288145607875337855026038623228265949985828370429146406430729659120068024573847934153933136599817372392622480956619547855367544342286256903009238779669549696582209604034248050336159994018414970928649301765549484830096236233601608407194500333955174251143751771603974206421088741323573609131820409327206235737214033307623549220811985539449498602479847313780566947385806444791391676887386703977010959585432675782637306758585496537711737501319666437316580709669486446335473634440160990438434419260440526259713174720241117989231897912250317317371661919675980160870867967251955477008972647067836269402586415482735941758304172331668465631304971465269384048944880057528979497205889072011825674636013216142824626999209665409160917296214131292489560995710695046748147239954849896457566249048280248970050202634801022867224336920766537883047217020603688991692340184297282010286052460594654002109284693964270571328325511478940269200964447293470505610518098723853161701606680113002938178718988621549398533841192776536147794582489861015126216254446315193442001504997522909643221706649421853929341152968887910788344661424797507604551028570678513650177436640974873381927452139424522170062977552378652810125978345912999419876363414394775119951314302009531573179347084312652447308620938653605756522654311314136310221584517913968178001885080210971193480075592016119130331265218547892076274461545058942218307114888005095991735777592466019439087205240217515414012700766730479920612193513815397487421851588822932052331032881589184947643832208753922303680881154278565848287016868389512372236363085520445454679251085563057956021529538623886489764101894971841066996780380828438456300212225694782750479888700173889096138989395072388014680505092124445267367789064779280980091174627747056494202062324057513210981926998343785536681989386840512717616565347186692124796678453168884547068029313191091219672250414103068067583134338948657481902952111987959537927256475719129609509482066692673792500075777227643618342236905802365568576206895647893999599576412828334895410147743977738466335556305769566373286287105709093155012615990151380992393472865632975111143027410883199776251269099996756320837913133761480244202024602238052895142107182828287709176991518132872626302873578524477635987084692649227672096242832243902429856613128579725558723818041651382714349898477131827350994364256625026741713948731240704975633778147132027538208465403736341682074304523359865393062043773234236808347874748913017676765441857413694636585978795437800222671071255712764139042057173281369914135882306045949456359768266622243291226141732087021022060284301002672453105418637573845694363013332356014163551919202616762162022003259163496553428540023357466488240065978030519794505297447561784835099886909986424188620982351348316229795974423545785517922523021046003466690119467562849892860997791861368039200483079771235925455102477069748130443872695637203861209987236406106212906785619584558073171849444173873223412162971150772835370809530341082645408200816585204914381266284455079800858870233062494793614888619990370378940695366893728991924273640511028413299911930627813669759571454313552316991276490434447576668891346015430317122095249062298471198984908466693985970266046897668263157715059500434203889318284960839785060953132617493081876901673618555063207296223754547758446167827816621667833485344530967217399329987562745960323355276495723669310481673185639239305822405241973685644835763450784129441161230731054036704407105260020911786059324958655759761714147617102613271745335221424619545750602058603426109303641705779085933632556697323323765521324696510644890572304779994871430261891230473710721203584788192801178921224484651449763544449923552423580138769664416907128968231159792410813659545441176165998836839091010004110513821863829669108555305290731709019215553479119235598477728529278618114208073781284449223360818014764705593162325039819004912975234789852436954925648359328385030081182578125388100627804298539492243085452156883812261650860488587613626442263851432034818020609730036361575464561847758129203362763143824389873852488389966955556215879088523718354096636709808415329786245723567197604569622385129780926050491700661624972047155513114463786148454550760481787549577219498192075470950464975345418352211855379155296943168726910666230868693744305756163911725391946329726613244717927908202627941980555041134167862634497908242475663301345047449279819759394851710250540534291396045237350296338782736335493570210486640084010223464383609802535581443746212088567293589062239934500380929855663611035645776049135583931378919429327977317218519720967140921739492849642354599270568781979070506639068064666537561672834335058580943416967613154422316908974755943773603761580624575384460002437872370298775899627499437548150849672950561996848946986617082770941771315748114908731662405379427781515504748075000789260641719823292090995676900947983916481717812452102991625671148539996605294541176893376623915788054179814641926097533859714396480892530087339916369391652415586952577895105962080477281384598516018369347165870793325291097166327306649953698756966871622850378511327566630102899115959898031611539652867730447342524871523233483561329670325212308769922965581654988970164501716583313242717111285181268182717298837748013369302281180399860652702020261489606139095442006350460291226183730635468822112943738810243974217451395580172170201400052248741886556237508326217747436376378472260585381968686680579176904947015154735363356135466355485995025747550175672201254709764419838403759843294985033297273373981653180397108542136709125772693601452151212771778871142173613012449117953048562486996125483362352053084288994903563125016875460548725499438011644920377286027404621675961663611360878266375479386229430508743557217864048660172538902606730848035327194816397931553963109768925740084071471079560044939223558576372192828321304265266666088198830581447889669559201636023395109209172169207471239334684941585214071181162697706687352372835515819389544363022398221053922980143893631578791460029867541883256107517425317479356389929414651985982921403891874732497585857066347041364610715546692400308762570172851489606176625409548287973997171277048971073059709608578890856251560325317232719177634885041778607994232050925439389419714038966453272225026045574453888535771921500604386195857126179830360485307563018807499344506235252815675949399458747646975487610169103534281856380542670337265472805020554455087748361806934606240398147797510117591735737185997392276400971083435529384744646996414415726127353130857579443085576035710933528897223268644761604707310127899702860323743153124601216135762094124157477513270405026765389278187489854867977111259540896503695298575150550761826145411169110255605741914520466432411522207145560610227876511106305980105763153327075874215034061252995140975277720633103671876377155989885829028615272951451789252584710905700103794001371315374616450468102194885698779044721891196316591132678097129729988338682968588961751232541954380743129066504296626635967267911456174610038002920881275822411690554524520724810027173352579676102669522991344707330188141504558076345876028181896955209135681824096132698705693092686886038017897105986652830049962444958232102506589481891545197735134536283489685736348184054140830083073701461180509374812923250919379596637610063279137462136021623138776113613187444117077255543321188929351261416215542538613036557158125452888584132048164918617837194209588423858749746030870195068159952466094866108881850666688125294272135012861006403839044467241109603699323287417269697910700791049871128353110271649419163201811138696343292518712290829311381651486095832699506590839704354578839211297750525878108391498163036021687243050729262678779785516456024730040081681236359105088350019358246909638792879488361545337275425537167722316043073011834953412712317763394267325139033641680504598598869827434996183829813895433678378743672366267411070360660692879052685138733405273770300184499328112368862991772568990096782071866995959549487833682325831968012450925414391078272137823576457341660018157723758269974993242065561130878944506936030579310960511845912326761737371206446978843939860332778344504094075345715570322758203649944719753933580243401981749748260339635377974943308284660314251445148649847537122235463489899585900208877275760469237341404861575401987140326424113000770379483612191578048876969250773088721883674619842830549609289504398731342710215017907024021895615413119936446018573680527577437389626385139113181291619126076996451740251628665703613008347469942836965892468380651075974621148746731055490388727455930898162689831204429876724591671558539350319613693591949129543988670486057157962098955660153895719626710237123944649726367846299686447485086030003021219022202865518477999417247484139920558128503091984743825435191474359629233252774613374207881189028941854602172858770288132943625811935540945593502727298680267622815729457403914501635223205252218241961695685761193697841553373282399043918926962677646169858688185917000737950224752876925321818032527396656911706281652191149589343966998421816158283541720738727703354688726913056547303332069273787405896598548760929842348384164127328351963864317952126747887996962328341883787360859412229342684600023033881313613263308347381840944916643451866511880297646037188330604041826415711377356997939111559467214006569827896700907202115367013216347219788374093160087187403754428756073186300493535194658487577567129559740162084608702950568569941970356259316922001126225429451741788805720768158606170097118406675281024890980732579871502155513264568318269074997877734277484477950766583725313133494423126380431606640189871099395117732259994239467354807580568665477779607292650653599506516003725729873838919852047098237555021733414628886083579564568405507496973702355766682503792079974117363334109595168245592485110676445192333025201630002093567554640647234191152274582536710293887621074910975984563094587462235184107014467075222481205133611341165725195178908145161505184948316487918815941255277458754144323215521849340976051998312946113853932161197559309586321648190116071202886112236467690125005950410037126099834811595048131027711146544710902919705515803319258826960958817146448438956437478251176235697199415697448967080521443481245334436239225719323434684539356843058184093517169755500465683217377273255577689977053025720013774345763351547204901388878447536562945374779562582541308392386867168771348612468961388027468533188275639046247373227218255584742571695339445978784338198176380395734458265087339399229816884925958749509142231411629369122657915844803575026605819318628456849868888956928999469437662688816435499785101937516978526531166577495735322536529514896517938396216562812872346482604488324370379609681761477847014280626545857442516004361953296035609680007576241398597828950917331785625149006574429110090111742076124017494139766814217080264576980285161481650891350423070992415238616892414081977206687258444440332992614253763963303241761820321744719266139956004920557456488149386043469573510473369931633511559301085602060237802069858665244733351627115926966425606622769071352686615735088458265652705698835077170417870138486375696969274788625231277123088901395920325340863478366793116068167569272201217821706935893609059972386527219873464559213884487170732692617264889407607565676927621740917154471192333948758314197980441534506386629015417669967116402583221075889662949896792138959832516747296702857576191227278711444528875725749873019221952216221487535648306070450713233914278446321955619054121384993163603733513121445004987031408157140715070803671710374837213164691932391769942549336224199380317208196337521482894087544988053446642200340017771251688939878889385366740463397530828244651109035977469368058618016145758030789144969232459137407849920276207351563558651543050692974329694644186902333125226772972756412667289149241997677107603169177485152160862107306731145918955565712482822445785972317251666555101899464408965427308630106236799697413644248093384835208666640320648274377909551182119797333743880322645899037803396351161270087814275282861197490366223312228498175413593369545170665244926285921281139844983561861044091740335379024053485210874847805482127527213711861568624337113364636130725247947686515045351289779393559537683256006305338152392657583146646310054857134338715170502055360004006833690927779593185510636983191596081135346741289720888354880647810604695604385511209649918875057798984756129478345670169392118244840894799538695726604244962299056010195763358157170227313808560012172364658260649289890333959029038511805242796002653882770620633738468229259295062393959806691449349352178536898905913381967910786251285294869166005860538938177608464914210610665565634427880409107732905609765459900008074339412695450871064954606319120820746592756801608433285409659202376884544063004688648236192622339705343834240316731341218262550803376284984284004840972613531879985159862051690346827037639262332983773296417492017544281614487342933638724680971013904320982997937094503563257148863723548601965367564792841371066841399356998886036353573795157010331911333101558255190605465307104362065732043868150822312569137500425989191044783813431803255289823504458177171256029895637297598996492374210827831701432138279849955303013752372976365378095139116874802329848858447603834988373141796209741788253419229488545486806708949227094068530732262670345966659690648746916176848156418332868127191562468235459628996994696160564859136722796602938973374012256050118551438666881977673388091730222641815893074300246108517151043517224898514697622198345588630382188596970882923102749138397023539019652142042505426988706071830645599387688317884602884477195091799741581500195756583853007988734037107708338075951557545640295902066689985931360180907010729918358868554291564962956787795169162402153877275445545663294556857668289836580655871827780343861352806996855411672043046113461161234129612137770795153085226511105674147043389447284836291553194389167189136195867331579569678255992403340408378064960679978966592114331736549661186446684235345243660201808776625430657533589100547599445147357381591806927240524909999841234613586682826188917216580445575185138248059858788998638535672522595548333051796152974232863065361732809950278964599500881502231318347485975194912511161786001310144989860093405483198106372184479152231680892761252000856349309398111271518335502390729143771093080545593601859254718020039327603595850082690703983322748339775508715219779780671376086792221436021467909081307281047380448290921588823707857066013135723801937749944385471129063966243830422534105852956426570781218564171816705988197268275612369499188530781489554901416289740115358660590440058086900315865926172164215510059510705983233117921424306861635273992196330074771272042178310075954084789411844729593806767425514558024451156958355364199154251217626516077661139676506577615373694902593845802054717258246902454546521374447389437803005661972811102282430702830784162680280411274278377129385495836545448933900770563121566362739615375119759323937895543645395340249800057902643525608840003971944699793376923792545587026502604231503724141491334535550209938268133255307830595066482161000149267344219385128453707743957771415683669600111615921141824562570576298810518550768036446421336129308359248211061846789264179891543023317704401512654453593568275279196225088101120686678288986204112038863777637768717278951249180230035075523992437659763542942629988384506998842358882333342047398896532353436983260952719022671928665508154904016772161805335926555572135952166956850658142203997825442684464219798088092877422832850778303397046838509675749799496086319390146063458102079560951786483948446730296016063817983732186511056258872036163170033378556731935112205880374907981162597129810589226494413887010059974825825429745513005952542351123456793312056263240745745403539021616161781969251788080664044871143276625509326539292477356681572595189487912692625683404673705006695163744006242013399298477788209617503126152001121282035512887492205702521385730795734950176063514438373653882632363565470857878554919359275010875169588803974809259396945020633787752017233119069203518671831103620145748214418894022143857512194159178740534537600245140326229060833887103962875869005774937132971458283965776679531369802383166095722447600644350248893826898927502693764318880241084080449641282950450295382196396446429756959653407052883597234658472948668198022190505016698726892264613692032232309276419775008161850728427820052176246553447730642777630462935028781394730140804085835792504677585942005471430706193221251963295490260002519439939337868955357890081377155756901178447891894013004099475701234555493287402408779267818346703122881615375816815702460696284103409222928678203408736576958246840928736248941131443093817144975419609017310081457702633831330625509371318358075918815804524746244168185670158699327214041893060576899454575383494380127955078831425540743462615361842233463101613397047492692156586173499661399741347269017428724420649311288406052100701431515369465220059405901094226386705066536164745985350470150759051497987350549929760611473041298388989688707102117045280038696494898621245064400905912119396296517418710950154754765000522107754752537490627454765688823379139846307629247721237731222298563175551032456079727706622036106261004623035330898582279080755828408646220101510650429924439209486589770016017497893851499253202246191243233274471333927165136649372500439281809455504149415043795473579335582350831135755325461702601287533171079141907552188748716961734023660033216356893553699552600115523223221448232721706991600042035061773990481978883899385235099280166096123958824977678668119331252399361555122964942152589177692942279351476629911430349861779067390550651500929594798425070810700754597553151921732944549965593260731656888742648674320178793875980992269241742954704620995606481136859726102522189660190045903841542282326884846976338188534337842117470427478670748676704093358127073364995638851677976318594719786224953234834183698338454085581585668323843418973260378126176137009245182966242203234201435446168390621035356017208052839760444919433224734430969796149102475352216076284232832313950535826599359988179809664299610765591560127248396609709870242528059591125454789404692031225772287692541757930098855141311965905810780408878228835048497944703196970251241113451596238454769681672794416812023341009935520711141146765830999864253166614819137561316081463075004346369408895119046281517129811275476756012698803737335277348047267807426844752611644496468071340592787783909832333173523399503197018163229826940666050370323143422825435217135972041164579024373013627824498601501480338555077642397611482645983172163016052018987685314768728338727843761875132961038721219803171768382722849227368972947985064978291971346599869353367887005326670663365853457489562052729449771415606733127037370310711602523257263513847544160932665497580887593507708526290557992557427607529682146614256781740938837760104477090667786866380069344408406737899007004595801165217644644845715676074427368746652680035539766257475356625779940132023420689153834479762744381515143753424730189866238965084885316885727326484676043024176492733097529638591374977927148330413343986684038938385937249445594920790465739550839996078095069013202827593913334191455164511059035536619018113771650448383164947180467020290158295020256164555234279716281663932926560071732364400244201904555712718914585479694884017013154214702344972477758918503748980393341749116918173341876646121225955317526248587689174973940252851393587764116921933732178049831612741766387225981232773124166562075107796889759405947165507360991046256506394811098693482857058239337384986254784061098640014204318657567374017916631602548121354990311846738145015518278195131309824416676784220641602338107341730784504677612338857744323420717989266245765439672650758185272735689800862905783161518455630263616711930022851961727355827312824487717539850244326364917265876451731045010008013425864682127917673844397703897246942738288196236465537396477483180138333101606489867206954497173660338570471623032627248835153000330341562288456477960732635539077611109693366697023183509105858657735230292970436558619781586681443482733717281922535391801053540654401127514317157756790633419994145122131767910378676292389693704728676114339261247627088491304494742280533567187897888039334083114199904535215984294133171963802798115348124903372961823425089654572254478537577106457183996409584111686925142619287147368223679279007549263501356936347211248094719444209753032091408876129683617716956387641069822203874166752214564945617193506203516393669558700842850456857311250181205987161155484603410357855615801803895975228989737746506618626961810616540651018822174936674927472260214405085466421864893239255646643705128949578345534750203189878030530245107274702319434309442371074457723510110506654478719928540544328171025079945849713769059340352008932993584291261653811555858738131906267023063284066393416244069466699752845731856386544302502627242902573148095608313634321302999569875713347495384315670286547712877200295978340951730718027563980734984282780300358684158611670992098950517638363364491711068910578373957261192648122541457912415376243004301853551946895101218078747057988862458091513257869393372689332308970823931929794740200198642942883460051869622539382474392926507326637342413693710883433756588666190294727181316013097876558990129339203624873452852563188438193962605982540305061907482248967976813139092378822935490292569406859683780857932151506094010162337770840570358693406677118117646316929277848360518368756720500029304921104445843427702535101804456401094567995489657173032108105052062551023037931710208384732254412704300009252733220135373910172448007239120781905723197283493983828281915719195934195912573959946371945956955022046788456484855365780112689387518151546343816508848622641237136512262117995312323602797637255181942021029438033887422395936902766629252898621847064428803568199525173759737144378652985388813098482785014456018870617158793832928154305532861190603449197427242683411703848774194892912896300957463532462143412787728164811801119672514592432631502775223164241340756454242473838305521122722710808646305652627190348429081960391515469290694082797641623527729852108632965604604185494541089311875677881667677534130770346335109330117513947656817647654417558206459704407870813543947057739532817181905330547903195796660010673215927849163805184341307894421681604351246243573547630490025336072214531286816862378654303082329201331211321534386171029852473774765712281905628109353528055586530035764339733666228933050860864115019006293946977696504196827471320790883539735989301844592957756810953676314914423926747886710539138340913833621248358361728346611413672353564440847536411832638834798177657967726576082049352110106155210528101273949228620161049207888288880654089550821652404765821949272775823399585606190060901478347348362538252628419081701247000360855588195344025619652739091727720906565073085589723186913444054076914364998834088640467084295276985065013553815625374696659730685876373026330312548297520148758021308141642225048817864901205035421616468895010691755821713028305330552969434245294111224947122800087233469503559517837623655255652308603703904605882500376464313194622507684691653586457944191027893698856752111224587913724568872764059265023642920423487931742275278149554817498443107998531241919880341090678475664238837061500984096296510765825823315018018597721912794182141028112457420862359781324340327334983741952713179482261986367804367351534663505766386353355267424381358073650901604314038443836109861154636925780887226382755823908277240245218524274581556893435385476304114977070519999617855160835237316717181537204643358916329930455374905137700880936720808712600845274538614166875697823203077704402553913777921432845197868966694847458788887644497546416933326940234099809293535666578661938324010422480344988626852583944061977220558413171902039193051989913618042591768217283837430748770843177063632111024779181425948718926169220166503793945161850802314115786188741203463861631104181418137561350016858580165171036077598264551071981148693567833414947621607285349651068662336994143835516649751923678217551400694991396857332892402898764888742192290187094598526152159257236331338088619411690185497961102933740749018197121719824338211230373157196047588476721308404317092401686940418393050359203489400220285362887364375399726100334019486842668107547686089602876098430527162163010545001153282382851812863866372803212468128885281736228716407106950348174675701695734592321648619748433463549733094399021210848729035553485212290822615646206773655106188840893656138388561436446761457344179106957849899166926927945450604680585575637390903536738760430764708893874578106840935103146759292434491009319462090229921356385002416040726737207748054576955219013392074529473830407757414544333643796793263128824517177568538885765449995376396359438953195369768724324069899757865093467719329769543185736415242075267109642201575693001245540034021294590368488504328805898576099905986368610698933577800351134021602221385598611391115328111242891041128795855728645312808969855418068768666117888190744115183318743800677340131923993683175575937447256400290235270951900689983818251008164698979454647630495400442314777824714307142791362594329550680907231674045269623605939993242575516312997827638377568439038459229367327192866325866378383894840986728458662771627368888453913149119310076250474724348898874543499624802704939367543210081107174253247638885207868441529800617301359154436995887050250643962483087138000020653325983676833396549742020426458668188642886248731775727257574738109985822608771729621010817048277586097080689701771142053629853737028586262122614125158488884483376541009106660634641622093144506486561076549789164767831543892254618887719808659527368299247210645110529415533018762882456076054896630344641557366809500302924173763313709822774281977820439019093429563069632031121458747558112644902748368072382985937028759369687331193262435303567345683894662268188990074332879801322193992936399693317479656431384170651737069439165720639751954035492628968803495112916520579475888899330264474266012949140069783734524121759384911160581816417057597720563271023214584542947966437790698427999040947765226243602192842197874357342424027008536395999720025874607099515756042798522257274620735937282744529359880732698189017038069907626468638245738733896665342207569976140009290520166083481182775609569226506470720312857309164998528984282104861799814842241246292157597095517448341555222440032779509237730982071215423134643572008819535788664488269883585327236132114354364295497883988448086616841463352373869715017202375433295652802140919698048668333173977889968975716871026024067101154609147641003953650999339631026019366209398319506185849905442744881847751045786735123800973609332814546164911152605649741058971513773510053289013404610677314305929720061626841775394617705093527051651174009014841559695640694939593070790614165301816067091649750288984288844530030063788481985109564761833271579878643848749480637743088766043448185042905744149911040814378764735490094159407113897183629749967686485918837900629301041718017365555501538781017743539534905325459330466377056642904010234666695273658374397563438595986924947861068778029454704772681200585717525101187991474170007128847935809409758614288686503786964450823167530886462473063571816302562175265464734078357987419559579670370058047906157478998045475627068184229812355518535037537220828886427678440318062261031277403984189127340167883514599443386989499779870914452665164139085624985476548849620963553214207050809166974564932450774783526243510492131633328178331072732712494622096389934342488873959620528610298377900553297485901984603835524678262185758088510706338183291077231615604279318135940664804059622124166806797307195030396911560165731652787816129170756087784389697749557494588079893226318320077483660718196955047965129754461195343175574883253983252352063406390832155339327888061818786608798964008762232727884215760658952900372355705768453675177894581507568104628248413482698456496074473608608902408273965719493142612413685192337029766364919837808305533585015074095187952143826600238064002677783043397027043114820077031758116699324633983471910982688803586531310422201362164273522452455580070492595669547490742446525912408822200786061378160953735067862802379462018698304536299991241963173516396776012104319425325332026044700502171230652360763224007842338071651118923786160583889537364830797208135129634324690055774643537151477799590386224644638392897450152425050256926983309231578001582034223548369863585889902611608107464843696403781263616294100609539442371160987679330598846492186304192053858768785849561376174169145062424498019406268994920218550493209739355154825463856372642778693470604273888624777561605675439430831043691874963325360441102597252455588555405958632202292254968693878885084870790538751628086117970583868834037057287356565350747976266943650877391062665332461756203674598048893069348104742541658538825905149883596732636629688283215722196420993427942659001334748312749779880462003631793556578599203684376718559168470613899923671177021047525278547159499948749404802597458173574057138622865836329131643617878334347230850298700707627667725198687928151416467942472931326248881880450739769240379691338882824870381329384255751416559440950516452494510248378656881987530581526105286181060195472565079725724848152853170952394763184380382422408588861265759789727393872394482673942381216126671763365447059880060880793766045214182479795427049767401991044838811297274824714084930325639846882095905748844626212661656103244617621804468580732288912173973838589159533588711922544630619591511419632826501603599066189376887369101333406471085207559767066732708722695465503212165591868796107652086678546273090477600094962769032444182240676311670841819605222334490473856341545614787914866587972136929715799413195120062223948036456347459576112303650993452048666749367139880450613514917892264911901501455735011580353187711796356528727458872260133851064177758238096876258997579313075002903296085340791824418060959539750354206234371300007246281828673174364266564543866364395480050434073576249090612206001302376514701119060434173892817871653300179052226689233531006333282587502540300253125667987043110172308866114412674907118300080430063568800451573361398669810087504662016071862922866769823781126580373795594698908257089576601426592378278508458382134075745342022034340946128919932194537752548250238477858867513480613850317663720422135188378288309192271415042089087922479265828487751188740329724745501810477453080500630264657169210290408341620399727234358172010711196080816207748679760567146064172072835907585824465454453697084906447693550672217918565855210616530448822384080256375448779948714128351886119767879870868376701873076759403169664900422095948840207749292884572968864830213454271711675733213817624798994157766370929653958933038004236753763782476168859160711004023393073575859220688736039634174650357344669717391741552184989782160573934106777191715504966910171269648248155827411928025381307896963422545011348402704335115276235044037853960048499858873748127682292533114826916768734462240357268298937135206207642266910901622459665272651194050303102362622735994080716621222485828020096750778273738426741084824058017094123063882878309848352579560550190455372881125006210560412014111139364838953448508223859133118869621138302404229523298622681049884148768814757092784300663262399977608601910100353376256705557084689578983030199769694267356679419772413474377671425892242534637371028933631124760549494051076619578926195598237330741346268790635247532542263691327360049238992619256745065949219493380336114739959911944404906151291007849757603953156985795669211818866852844536050445316608917873841383647981765271509224171814938254774888311965013030567523101044051007505651575370445772569772055898241367885913760817305635315283588667568416341028493000346467295083087541761032518574805558281158547148027837624580665975086059232206269734286862901945172538358079689942753182908151076214348423763977357586367888916010923327779889786905925363114411153809436284224386311599163606700152698780523573763969442310412019137184988122039609640400234472830400444547047587653839156913945278969512354840712062755539260392557398926005299063170457285228427578140905566544846276961591272767546317428251251758228072568214889901886579481592746004728898030340515920047825208586127030512763985026398954798039055204470564411437754772660945612042679081351045306962562781540750310788621642227367398740002416354306866102401544467097106016132536969750919054326796648960202968778265383339355467479017715732622256128873734049925268107954828588534602994077849665382771078678711248617497471233790849204062197097986820599848480413634533677461801631952532003364102942608355681416732699259674050407812918376560398414433130534380074236419775073194104868023861899465017811418977308952698969493119075625322744086347296182500117837202373672648823853450359388046932278958505121238601657183855495904225104212191179483048175427141201448178380299351890895694192650868949092834566818575874995179300933567877312752704458008475666813195961443153081710686431766482139406532476069797901664757299309455453246639950088667524928692181252438065131518987470931471979329768139297543145808874420869628506848542350759787262793397699521809843985031718680489650348256190853385403494481372315544040443731232803289006303850572160525150232331419429579601003816456703519057578575307820299723238397388249008306489844863926222577064820485112363333272346576014614741664294983354748994585831432938898808669313270379242548453519438757608321936305855722778070938447716774122103806463638684316379472712949838286691109930380544444685974626782471905997320316275408688682369008935367102855915219141321484144960635908931592334403996268210260784472355523626768675420772863760452993766932179597745392128977988123979644976348811523408879842538002089355477220856544046023008701376017322392317765201087355025890042254931296525437183662265994907605587349633652623240860691970640314993078481311899881927558857179960895334271301739690293232093387816148889918546544246097341598116779883472297408331746858512322798045259428810371279767097174298756691394530729342713488306228599943815068971133517145018651377269151608703894839329552932225188001733153248809752306498618928931194163868164604575549848280403844786667621850048159074479350074485381939382341779039959350572691100915524601607712809656556550396311940243035132820136908574013022630353778574574956884335182493429655610985320915849000322917558936752831298277834396600211447577474469512745141282318582827698127413503636319897277195411077375125740578289467082321778108360797494294732614525441774166617625562191285843716163837308544346035614626581894303114541611357328382112551609976532929847654746269155792166110785946623492409626827156087199606522386218702614338117902873529099121768780200238774341799151505196316415949758955075948049583422816551701879803000379749541312595073753981738373135578655777413354669283945105137403019953987931975583770230352821950430696314077377595074046258040584046213671446379142829691038523098051824919798798339599583558734658568222210179025181825210423740672872940831591433388167639753062158535349480643782845674773218391865436825652676924586304435831210656579707369627342791445939404634854912609975762811273420505592756168169953998149874444123185924382805105945443740786569945175956178944680725706689781723090441401326057638071527309358807331017609178770262586793549917917707635591513291996936181843814041359467378794936031895538034876013274687334851187182983764925935663361209504629205399221330310012989813131251199178959216423571119032490187668539888576707238158242352139959261139458321009935106265859800309187642263631621424406359202195290353477976650631594723547432668079164512359439512249275528840041068970001166037652545135971067573258104210229525836729213077605717974194869344196168576553639105486726352264699042048716152889887650552916108581595204354077047453813536673984773254044337381604573344545082943332351050834996158830372470677594384388819682444923124708814455426361127675192634044141714371094612460884810696960675159423322053633206428300249339567823799876078208893010888043046442313494056484554013350052220279874358723570302107776358403455301268623124683455419430921221162681937698097200745378017647182077345449704443115891030853603096407272839954967129503415753606034313179794939809927277666219386116179264500116080498501168349510013911946164793988686905208797852365103631945007235940392099513784180951999213360825925790022823861806028453602338592563311597983008922810296339084572323743127328821779144085052762003929340965130736079030669238870474598230245068501288308860512362855488951027129517588030312205487052686183864785851577631234043869328348099264961281926417723483472063170192271941473572232598732853585518263989798052571390743177560998414842648321094528767978954948473390165971020200311242427833464018584419290814567369735248641832120462874053982964352142435734797216229215877728460505104379001974792404281986716938260049821641425026090223605566677008878447474312758322638605134645171939503045651877532259338840672121801309420988092355831287860940020832812215103320545538008068230448716670056384277734329925167751227551044880455034828738078067310279642674855649275065638740429319627328348604536993392661757725142644314436377409644988194178719602054918286084065816949145035606991269159716320832905720429976849828096980391302924185462014278232822336247779874429370265757962294649838270066742667810612419865450586214211116728931068068466487827683451642718634150960594629588565768493670599615526132571140473298272236231310204195234403965623554384238957640557399209689473855801665267941789742548471072434397739806727804526386358995480129632716916116444910028232852697760732052048944323928183661220597606292945452962405623802927637341750009277985618560702497643911420163499762879147156141677109761567336570315571806144215856967382755272587281271291377485676552847713459381344761202686293819609956856515314088975915110060487915903273558745511583516856647257394145215237012164588123248961471366630597438557002619918530941821656539643849669592080669189816455590251711971640909345393756516929165089689837549608437162864822146775106206881799338201004031177135167379537281764842240135861398544314891038972278287103944328490850589149099565598477960851671481598989663378824009178607690832921730395549529212381614249543586612658039632426516630480063947972899543489002692610872876856409866985211873360742362902106822724639074824790546686306738182716647545372074282738710443890898045368204777719017691521277615794843756753668601944493350922760250157560766567701903962422112424409832873169000275943215177374829279013470447106630747419398900599745306317083516870626077464076914280730479067962283464881962363744992029820453674966613874989468901263468551987482687303371241869982784154426918381875674169279898754915923049860597778367745723917699676790277449981622992172832675979288974748666189555107281216019204446261483015777236755294601107976817570547455181605124172481878167008665253641918434074111853399304125451828166718675552413945945853178099840843680425881370076679625013008052178081952791340350286705841811330276255833597231681893827923613002542285011774485260162050162197544850172644731664936756449006479331688998785438655039326598725847758835301070718431119154672285113104685962588240828418049308944984405877064242599836747806871507665615878310585591758874808425578265288978463402767571322052892725584415792149034436548102671284165304942785336864575083967704405623643426331236868305826437603729302158534809303597307485023985616826136643866245950121680271132406286680940291422208966902395563643059466909814282859330117568167771386402181223406843695311171694248939130277896735167384737487339630871436820745802083459207551384378279649545289153779331900754580628847920429698664958061599222056855204931406855600433133782950908748333909800407156270864118966872494785339390572032946286296864426337165292051861463166559147552974114321701085853099912588826089709875360949032650793623582859715700023884560229817016041617476650892658613942840196531730539741750764095449313505883878291471567808533685659542996662029100817224470477786696715752895007604109969206840369735666377206590445859820147456658823408771203275094908158829391888638872005661340440794294487264566589093753572614554551099895248454195452970322144884464217612358216796939914203383295907859307614832875065715533832403819134085782407101404880000197002715771409073450257295337653082728120911378226784015089872913307919805673080796956276348651878724471863247205129571617350511686861637428783163028399411471868188610433504180961290430498954484862448441744744467192456683587304267236078393797645554827006548049910000238240689110311614912907438473647056233116062020607845606659530612563375135043153705500849880872925134087822495518312696371483539264169583932282993236857879458204557924035839975561482051965251404288050443064687112764081417033558957205685045008258301227688387199075931814209417357902347022273069663675794212291449528766377948838580034985511955367782545315761265449931710149204750107820262752066021113557682276193024501891496850247895083629738763597962052448774582501201768857948946697209571375993624680913020208703161760171644816313925583364627991722441986697817333598698269561724520788100481563975186865077633988073223528958830147469218589751603073269386472966915793958901693064531386766998788766267582071847446026590796461363622997496551696130709747998845707049018130982835056652738806057381035009985742134509207556537580227641478649356154527163077473409425801703404945166427945554949056374322976707340600792147500299179558934689140443564536393816875615849179434249936801338220818219166432472656630617787877418978027643143845366716446297462503321426778514283163996613672055383612502917386632245398544969046382737110832030477142242282330858265212268300956342915936254748109369694079191342557653803366652403020648252283377349969249244996905558878838081685410792297161025631854301755807495940176585692641788205959703380181489300883305978654027709282742544934237040720639891309098706268368082672471306626815028396768396792718230750760195650181128967780578199155680433046885549072093017322334281878263802052344099455568077663065664544548581973830438102066313985590426714479323942478552758196420337038943428521215143131466416480212996311745478721738877666509778656585497416300966555266651334294770669549623299483735008467421730297368326005456759741192913867264407097408687962114200190560686416756916326456587996223838392937138663854037677536966482069303735096337328670173594639294111750687151288244604916213230033629110158608284983860808229063127762415901040593102251678358562384239982481828097849303429723241508367256485094917517198391672462044970630942869414480870283198569604993125411732319653794542977253632483098744286443319112308913077057770559753130930894349454588096641489766092153932106411407404717424642098762790954149991761255917162572453105663696680042414451519689213410731184067369825754222022181795643786006081742606884064039093965054152598187031544110125569442075764530189093577674981008628387932135168648982326093526346036474328496642529178313008100205991278252537645192017079384025809949154751293725543869327484494441976590125326836126051308345073482144481688804229030509276398932034905133265447668787068201293143233714576745590413975625397572158491122494198363280498487313255273507630752947365935189700459514055892040924486096031966782307692510469406234093183291134394729378344760169796591645901803453340893515024664549693899825434097407451598367636914860299379660424894210407048499451506052126307974967180423754157751499663431899479859147182648750452674206795515429775771050721938142830491537521645369092637078509888118332018997592086483952692356675821022017610241624495721120378538912740507914792139540569289656646897311914100712450868148128226159089328886031220312096079766406089087745105305861467122714540051279335086013071776517205801059010712554320305536378237312033032121602217510413086599357614742611234933699012933077179981846459988707386162792144041079331959915449176922133102496707202072502458798434041581739872660539203952065311290221375450038529442775824575233562389012694775573488552933513231712114048849984248118375647743417295710666802903652932698990177814590544874820406811389105774899661621590352069671369269749135711200793672884450541738282505710455153821825467486346347047918698654568611171920604186041084531109125849697009939381410898990325232701424292455592379828368131749093228798988655923018562668423086449887210903839554103374712485389883364791821005492524940524743931796908437824916963472120521372687323089144158732290767470486004373174180918183937762198706753397775821610764206565201002082485029989028130204832064068439016793961186716607223686355876290822167120804297419275397475458298314435399895838379731923837400361660750897118047497872339617140446284741209065868353975171534105299133942340850361681588010014817126873566755759300109140886093314689618189500946536487337528209093804344523522051349997942680272319569002226922883148206005604275815794095060878736046491568920546979967675730561212725092700302245680262238115838115731873299884420701261963538560720411624275294790781524323466616727291125149252270847165412614537083808508001907587286036780238476291868962649602547014562667297957189911205221969958933199698258544532880609479152342244117846036475401460413367946650028214859840985360623319074624215785562139506729462312104600175950269897345027358742219522519940323715924310235896391536713656530621381056274825897642680050642854849135362077738630629458164988808907297124206004085560918962440251303605811077797265554265846940107390475044403465237135955208445552293840986905642272174265378957029604382988775064985509244888402587539006425831368649039688868054677111669239735979419121896160925690357967112569387883672793223105520781672210120986866660133318391118600685940802169312183670227248219707465482068702362296163698386573208951050998306279575944077200931834066836827012669142854288352698684821799528337128456851476059343678568745951598504783381154713067239345702866978477575170695647760891255270316469615053729335345578166431687176306271397384610552943774226142076911475020926351504547358362652861050389087735405267030235064712411557155895886716737655751877247138366533443962385591683176457874374832963057416882239141938900636849643036028407743312706430721124477920425019941044664752296084647857036303048752436143232023715828861407396137953742633248408007383052302351304261491210477927875851861929442126038237536030986599780707108742129194946835971685748148830543622885038753559809170731433575089976733237490423353694717367506981313081048378499381536024612269659741517801814677006068891563715899850956588343491365626967435175243518629692621896133606779308373055995463341634695839109931336611378740761496975792458244143558045732617036569646004802998433050540963851831847141637887524794051554977226904058629809197684434431133976103948978931651069142148806455331181175662583296558850781606333985787155356400785790411796396999919961416737289784829768368479778761062024188667136927389655255609324261848313234949070704323609128723928708207818148269173025380678085289323868781797913296091307090461198019824865957256629853953725013288459760379470567542265491098003621736645422491664043905012599202300562907781815213125394826910442862790422140061110859296469254559271361859905937211164006066158100443447719546799942576494955363123337131659839839986424896321260174180247433546605429922995260588157468930010054633997768122913520795136738765977177053078975122585312084006869610315321939430492162521625572661958338445876142003262969929047188409110109903036394157214546313393035239922234989218916812213461279416190827364481668247647795163337798318204068594153889202726212897524479968468386806827894452552893590165373278511127969096652462682224591933877531058482603486341085823232646283370687013294826816412947389634196514555946766631931737136038851878747639706270878221262460588211609399105522877855355945044623504226918689815837967009658767071740295063174440018614873454581742712474540043132226995787839907257428254476236091258198280402825401144540302292025241179875160384610630045666457051750053072644012420628354426298531756839371176364701232769548091644896544275604095264212824687489656959640663951144982313395916117122567473116510354207775430456064472103480708508988209552805301130123580901041533180463553154399166182739504450666710890576910021657226702400732473494719312740931864978363802866006690460297759507166575051062962224983715609919488226802805240030509769742520383906708068899658439995304841727154351653748461411822580497600093910224520309372491315408894415122407824865081715693159379349428637142940636145564194566131065367350498600718822863186063041259814091657466150462179110867907176662281749177286269938070206406836907669289588667882994323642516193257561277083288421039725702454182110631833824754878050307302326043370541555238480539562313111229991325581823316574282832014893279569982575991300155670788646239169184948827994196848991058695890954554021276873273457850112597955723544026971216512689671899146214758000404939936548290865967360757252861563097376660603567144126482766821753375761055437684592140114284327911357751328019624576320843135496303816819263032719347301358193360913777379739826857068161688537721870521987426402142122542535879679503454987956821505495057634748965844776275889065813708803957201614671829134442238812560307944068584767863924256781430311380755510912041367544255363761846428204999813834870742783317515818289338748189817425081395184696505294048804332582439722881766643173723619860591752509725300764058218780023729435682153951326331935510640072858521084644637562878467825916248371169060462137595448173857208748846499805854416293444149704586789526577443804149776327354832855413561807405839044636513069065410981864115151348310999318802700470548946360767004982055481433806510829059478351172588034915610467759318909862578619823523980450844414502699442119993976809587900795216401858133246522238298692168088795305504852946624565795030001765969867678983595855231444288315250610289204057837422714401010674489193604164810997035545382151176235958922150816584040881047593543269862196784287541508569836066570944419138608693347749159262171717800033649789787014007915495458536577553820344962796167058867068996503996793183509374535626351554652902465489486619219035130803911043548240060633028107209621269555169048353477811198532206308591843667977908216378390003149896036583885979712899244861498605997329094435303899115897232253043972791142372673610390239921542953760341182011117703268537308445318093812112720403943421223335716490301717072308457427273467056993852671585991655880656373762754618586758319005462948215045923885461511725562871240294820158498246512051473578778787808203712107620693403627867029210883789605913847373829230691571151126342988688329168569077173816848822993043004329188409183100544076201003122491025858014242830683435138320639578167068621317731680989640091866498486957685015275565205323102304716800256247481872819856225811658974987852614525273881725819691249846049142120825270255269568133852070389493708740544233293546722879881090975510555619991479993690373978437682868222344657367161041434324082835056657558741702164776789436165798241681938249218775250168011558623071539501685104318316093589346842519761883480082437252490444757692678312990721099810037893319760200593306075486595548380457084258006650887017676165120209190844737308515770259152760108418625391812229619355174156566549410440803984641749937494990866861949110528962535599805613554193984018990070012177875197640571117378532529351146422188599273060448706735774293553461033788749570649726408616744166266011588811304180328752484939376962522840427671018230198048089588487551646148538141553400434219223002756027046001551517473528578964397780697923035038945117507354082922349144043825652394756016314170520919412323671265357572249451657930695518550641025245724587526245202661552621166836981099619957489156524927662112985738704829155599474636761831616782946445212443700641698735885699973886489990284863637688945144316409932540063524867188963660813356383660339761500795491616692880267545599109215999786264724242963047182709666871693985782786832842976446005314105846930092682146243585231299266066547495532562959730834710516886733855065865850066065884435863418579217391227851847855136016279672326976803387945918581930350701387993309245415134903143553158523993860716360782652597961655298603738456561758751877246844588193835849649503526143816389713351221801535169996822841584629536202809398709463883710065853250537874326635240288300804479450531058175176503554836454383941760450096354541318121972337214642321751290552225668496673540776778779235219665805980239361673941182936163916834458843910347767212720513383080459769635963780794378404390568078205683950183773811654471071500709010736628579067956385343204861706379978049453852862673747877413105585204641167245201455010740552904070024581513645724509896316502315336758526351797386692704560659622152447906415995755774598071731207982008743503782502243844597529929833301505602569210208306008355730241058995122359119318804197230139388269296655000852394101823912947710587955698064379164169625369983379138697632500102111514389323741642602844753654339172586445005470612435769236607953050091124920038682481087659024889253034322811415866257935946386651060441855341942698838521099297479232662754761410356390544126442618425513842884845960202736354739041681111475019123912982040974829764832315398288525080772040135085909793338774327611027196943049463804113825083261317288182010733794750568251955322485208698007521714770186808556218356435417586615662866599638563068189606768180787209556009974472942497474083710508150513567129879580487092948503083095833105406251579103516788847539680302428521592496295261111845651146213685255884040965575070504535569799716178471001381984067354062190588390574489312287047807463313071949778007351684070361198806711144617006128912977023849255424400523327023446536761392744288898546902306595311671618622781886115365412023966261690900285601569152113226210238747583251421362969329634303374374846042348127978122641980979847650371441415787261207468542244334656686863340755258031919874211495939346898982736038277288872772258272048202882391474268890635870339188724835849376977910185085324976192551072848098443620165714707052801684881728307544506549892432840746888311057111068402464176713818448381685554229196650395549629619408998054469467732480078898667468410307980135450957523665510667148202707739721529080431627326620484233774364723770374521764163866629025196422361488330116799626507512137201793435091517329579038373633644757687894183310009946594447974647440844498854360303844291166785203241422643007469565199738257083222242651065848435330240993526742566145058186535400107939645207355063347509928826192539453018145701615143421147575151122040595479210697705443797178635233956214099525870297193764415664197495864422155341466600992471761936074346315007212233559309402486392249393224972674011135425794899831757962486318222747085435052450987986724118348330980775141458663236345208286870241393363110837767999536877530827705838000308466609603329337303891983611186972442411583879503452486583290765753716145789168309197647989660000988345804590588412760811248100485905737322889371570257528232841811909017228508074480367137957319562056152768011395512339680837570209407864033276572404921303247828032789563941240929729712752460004156844204075712712414591649003667155143547462826446463040230930942671158819880345893312645297278608017027376145447423401617565884611278893515757282568937013434013466227490219843935305126802097333526260616565380903416596652126483664248158756430260617136993107974556439751704758490060479409846993575068178018536109859355893946646661566073109400334896132296598790290918668093525753206412163172082134118154293263920877994572104923758011773042422868663433310374608456436424308513664536531954828366145379534236465119383022602533696762163787530854089759550249257686769439703010254050361019611399667827184259335215244995920490598341962496562182888787979584988037710527064789691811396127731941465372799490402413535948360792713586406708621207688955527578989171545517897865827796984627406616068883919377343432120202340421761803280783639759989846406998360036457091198934137743187143335352496932016538040549980526496367903027106739287818720981721112322975036532250157228702616127593789840915704227577062438868877189653686992020648616967409470989444545753859371303879481120111526217726071000918186804636826540708233832943645779946648513819048059988650582934376755105834358020684402212525294709325879821427615765997070571328377877008173840201404255428898645492909743145715916820601165520118834471481280782019153167213139061102905958888044080836911090080041474825512135807818456385601204355159970952762326515590884911371015506174208101499057166767076471642361934692874867025451467007494562705004644108372292520914103170204080698684335836472930868753875755208453965247049684338683755301377180194353328191766981232965205727566917862727106557325149719884623908896269833416275777239657753224041562840002671095538885496455602009207147055268083928190333073329293542977955117915368024181780155350663981600136213583794220689382034552341932981932166875931746564496830576044315003211536476504541618572393435328771803615670675866037391350087665062645087183402653786920658941159841886125825649087184897043229623149472687722663623571348442081643567531511891043719653829912031034603544094683102937800950778161868659914988827919200060730255573794799233046019004346852720530747247538496301098865886358114670177463361569013171892216163727202625540877561934296040528212139865195397939698945941210633851867900486603859339353505875749847687460028974477504087040589932133929820309924247462953254220447511400157969318918087744233015127800605680771352341127913661390934587405775447968683865277906943242220062655474169923365301657655462801224361847707269060721195570861133254163658881927610672367833975259231979791045854526116210947809342060347062217190444321731669484319822094156091803113249615593305102951029748044266019048335968788283062547653353813816108809219507703698410691226234425237969383161174353176520540537699002545394698890138907015540440790229973102321993954678485768739885219715473869700872666580237207016001952124849359159521693109577362100365646900565119369409580028815286858676728268585292927583959627806177449391174909972302464731182104349890538823167188917372356402977653496606379064194927439338335974025317167172080547179993956056163354095067890448661601314261561994289584690310579811664260664783353233499398003982159415235296567836466291283104114088128846139138960242468615827166109586562084910721651648159518359331873074698567085471755923220630433094732243750687772667941041826416005278197486473212039579167406432723808722325884617901656052405001470135307427658352519531726619320147927614335043590903880036302261197085527541577904950130144517741877845590137221858019989645999837100516329907689513276544670763330426652958260283822051225441961703655709829130707271294056217048259806109394954967351590345423039557935838045413517062100557857138928283550510545613410702796333807729285695976772064212638204160043612998837259391352206205816546926433750803085356951084903898999614432855247465704427680581871862504518746920149005392082768370937408839282602099793563625393845632847739423245013221378771261481134695619924564594354539087868927428682744594251420409165136076216381335238595312889838003508344405328482341042709080896255299258741840228622633810108619205146912525395587807984669735144529555249979179740873743239922245045764912016296742823219854728710313219745961212495629351570668882751273329259774696132849330504456292935406293992236819245954246330384123724608838542239863426609513469878220808478047058989411665239768184153687402591916318933407539240060497999598648174584035832937642787209080924885472331864608489738665861453704233277401883749456461170286435312459954609587868561315476689103910491942555666760784068731705049978470194872632648794077358324073253662951280248627530659991689099909472756118675212027126611194199122677582817502541792770791397299003932489831411204917830627393362546730217358032318015999757487675254033549993256522561035412734669450566922301702363467408789573980664234718955010558792795630625399761729119437040447709435731676774112523901680362870894731884711795531911667857445824233205797741921620961235642461232483710970354009434365648885544247426602355590940500324845209992329119039048563354543498080817561111157488333234439138464228660808740569551754972253872991833922849917571165775166788244526767381835973104005566610008624471274197653180505244263129302109860121767106075373174910897731665586380602554260995268954724074434423996849494017987491252649081662175524953030503457028052035357415275115508982323688044603713307511504631483012445800011083791202324364534971974999947671215882304395467225661346350292953151620530829267436623910156197164055602842022230833438209394989622774743221803492684627209660882186432847942557398273626732158843768345756489230149614251757347717088458033034277679221619979642148281196508094829325382736747386439001510995573695386455482569444651846227003621767887702772334119856508708371379016432791425306282965041052144606658253651452575227303724961062498562155264618861445379263288208919958576161437121862539315670255217767706823329544171485654168733743925307352673405348557567776215059795172125252630322074145808348950154095336117584726620884889868616187615566224834563151066120742938710051767018594680291467895861606245083140001732714572706854525915283290875532311869184535547655818242381770703300220608614349271441959568350867542731835926284080142481656311013644520076469913318682661072434956163898419744316178213220351833214545869666524642386468906774527428275721541549913532925993389669492541519240167974409686843311747869218574336074140944458643870989382797004016762293294276475797693505242864343254211294467635444934236503829110431947402586718510158840644092629595930418356138354180329637636063441589763106575097900747803482212657378625689042213202632333570281171793470430508118332976632709778846302886113941395753810366558272574453894613398254386348869657763730294537093511412356126394765800361330872626550786499840540973593740592243665741248430586035986062316192796521764978445964756597399390927131369467574395685433243971811944525420903610124760449861276444134422345083235312511750206399460828668301248831998677366024900083558001530827267623328713987915740879522394572483009264387764815911844071009867595151402019894498045194673391811946196534463961245672410618301991959349140129374247573255953592556263726602957008059877530801586506807267146547930197041206211898918587770705884865166092210793316332479116298448315198847914312215289272648080150478315535728615924572917133697544554560095224050100689416460698323354482817577072130421525846706629877521850232030418465934274106784667581411651317408818547431262224228013267938049568494035246701690874508021277134612706218903157533597474789638924758364466329269767129380502427932807781337109525380708625723986045104567995122615032368834754598771621243773829830087328130786566419002908534513147498604481149043961730201398716380155209038932770229138325292506436471671119944015249950491076551313917036003988449972382361182312385119610774546617159169205123022276775077012109678540902519790418711032263602965558240824046045198528358684638529310386579774249614344333844526355143497758480926943606316137181450083912435557879768239602365636167699521602241939699968861258488708052578539084871247120124422190098703303336635016475275746864531926662496685997757047621905803607238214974734820721982407656166766198445541187057228081300181388704169701728296691930532951927923219040969110820399515955775563679049518674791773390405104758929787302710355857587551455172425733684294311789641791211501476875940381572847718615008694050161431441829754741641426766750421284854214699542027433264849257144932926847281917220792811971928793349618545367008067064815530537255155013243735813037450381454237425859500421826394585615650158795559728760032715924989184523599037241939071169590013040021935297862249996835220653234858657281739921106756680360927647344498457181294937361788341048522819034768281383631893540085631479994603584832017383041873421900029381157912928987137433915848961430440620249924277512552076058124933866271669226201267990345471064530714406599572216399841685482983818051716764910670252336382482921569063534491187231985638432388881178334357874244327232687594978810536109399546661387726687398922421332659934713758041747742376235244458142673999164375599917761855394619487043614170809603312865046664479658098497071326311213202385139140735741478947800109839200665842647634931554486446208171839924240594612718713023901398343243099879631226700228840474638074708980081706647321218849948732204919394800484320631991719262987173836033368923528234208579779225784552792636722385728658008551097290116834427114178772751515210143230514429502231511978153636035955700513997769324069836684294595992041112037037902430939238815909203231523355872901917556375693698385091687590095802932331032551784219080250253071069076848579216773648030984334318301905431820079583553726578926656685086764724412933566978076488564760775025701552152674513816761530936639995276122475758724097122689936249406363848202944041236152487725517561973959765806574431603489075007409659812751464465593310343864202383487952337827195340803005208343396647494982074304398024321484045707142422549384981922495999792858683936980455227730382781575438682229477786490422038768641199504205205996652891857462781747889663707353996242759665619104330721551581689289790471880008309819470317257168157995228885969857314541888266413999702951067620967467613348119329263883480954373714731164420237253783479411968407850887802798847228448221698485788985726203217899216981842545072926470360938541696928415089638828576595620007351045163944676452998391659903645103970865333192623989276940778105119388229075726276717064339819852775961118033171365200756573415948529025863048352197464912183890770950892139575679430882894021963504647688754321073327497180939079812398406431902848627735293795105749579504593278583845873697256259354187389724779689256315855654456823773769071263861829112499952600177447276376825952146817680322819143917506215479937943978750818166879242424882694090036213121919382283997396827800929052807803442196804809786218237930937785331615419655586751009933435595838388275232334379659420375768467842709538167880760112452515145317636360198698388509487372049381869634169435271936791329231468002345131306218162282620544790793855565920876809596298916877285944773337071988925950623180717093009985722064257133405204269598448012414794452091286166747590102694774764545717789231697839832656964081345125138500793699590696564265061662952672621697990543270801208462672921084203544978148730856548549347677065265664060844486041640340821113468553445318669127900547175502487377478503324054355189402038081393899972526688996124822478693821315139708134331863152709593608528504483116367740723820754747896552213733858196168220684428423097048391884654087582713679252306633858898282980511142125387504589696591850155145033867987755250401008416482153390027993299657870504309782388372437523106202116365319381664031738593007437107811987492102785308575439647297821693832188736891050328274329106467396872589797852990194734123895809481617051017485792416198818514912942872957853964638559762960358924316425491949413420561916819137957940493486674732524360087581484465716548891461126626713145758595238028448577368955113624597389625569462737170064776302041671821117394878404679464912228754349526407546394425896586024159373828537785433371075795606478671029361261122277581909526032779318188319854466012521466908307235905715350201533581036906461283778383147752726079817911991008513036776431918954007983538472561462653642836190381330114339642828351821674403434901807940119835512532318128634909131690187675313118486661632151746404717824761398383435933862168512511992497021974983011526910823498734809522370510613737520966504806522836548595556127497302661493567207192263349721604389250940011394868615709711240673698193851292795395074644502661778683773166667815353671135044422929706742910583504205042899397263145771075935798888751864278166408296017208002794564749769419696224827861357350562915778384637863609926003046668790378634393838008948900163776396521591908151683927628260114007909058313860677704332625606657159131597667829140573448414598900649453844662873527125946723098369624498164215314352734871420003138675458438566509893798450823904064790684365060244042683043884140174839234837474404694955279182538121509424906718623070666599667972789566805958322648037256148439864378974117772210185774908422063706228713017174392374277767264583938756142305432920966015865314970208473827210255959002145725723974390785629266292600846925026913960372406320727697486682783001738912874393096679547460439032546253380222353401569293924597812743537423340573480295844652809055216839559494626362251847966243016049306621739553629201992348848976570122639162614592871057250565699447491459037275229603654123918056422687730947656542209511234762004204893566455016416427035734641157627708187292279353350540698655808309808614560749473283681188748053223464090962616871937452187983720259099106830003433856919188165394649149175167032271063912507104835318001251855957747276616805186877852661776923385693694277446596256865026489470717173440224126375569484037102814581012544179253206016474793506128765752056042345390273889616948171785887932502941881386254233858182627300724465767079446178828138952165708982740905049648006332452141654501665155745230810930589067042093178379845317488057379231773494238749002567862138832864923388520579527932067505334439670890567627710277029801292452183481988419115488696344400222508049920667600483668230159340915121182491104565386117695664476184889265851657868531228100826768397462833594958525325314496824182083912881525682342482390108947274518171409785286913706007307557249594654391486406889655739352942905160994546971794403964818439854249537723190109197131345677337262656172951035273444321260912225302374009769526267871381498032768522515354040884177372484203694261544852238329789200039082823773312993298278700008073243090785269268087166587972159999703719993517315715639179533890906013112926208997466981047142974856517547646243174186058107895510505472851200040063064815831185298212944025107738493461130892300546969309347662402140749795709237859174380568376599828694006818633369721647886788708073528685805366164532370901846834609587935538263197595263066508810290841992095933442878301898736495245154483517658777786173220524797586108495608665492178142725994044924080683424417989994352225692948612162110492035598004332984870454063337776569031838895276886822171995950846102239228126360452416411181696844898284716051439630985647641572356675173985278019468467185647705043337916874125969053427951002073561399737664148786788768804923273179314821491566093620425209418416350937585167027272623005556392977391925351440182891059180952207692811659258268678437753882841115149151080729028830682011101513377432496060767681145579867493173276006111481791480533379363288983023403360900162030848059792469441138485581558934819097628604215447503112567989212148919718802631459789409768446234940615980100665222478222117446307981262694882867429924362671916431800579776565467111237058377437468933524828967772809399454089316785670365535526214768343629772395525850731829858937370544206334430493390647106831101938711964665629482606592268227703604015467374274589795293976021246506680093987045478599322979719528467733922720579897667946213602320394700985040579978247136778808989708069779755147643240284403489814800492081200045478044329555237380886649921631077720162452521012003189615241190605783434462096814784003045802144792355513311638719253956155485284255321854446811381334462683058086133713035712188709546197060050594561917287034407213607100099124650262110227076970610299232322587540767556575362891359126186063443033543097727892926418353003442268205187331171424346637080734573479273099887750728997960019269381549547464822892585680802345134254946695231755717541991954379671404950263686746946764527887770952831186141799177883772945472971119311582044049186607951332349529446233214677196988093211728038182154487428982530166313377608612198483109968378787014676069218479559793334683524069543099919885077473620234376710706350446218335279813462130301597967956650822447069795521284012266380127933756789153664248502319040032644063563622626876685624246910310639488841876743443348068006230068877177754897947895069506034844258305824180490164585396689942000246760639090789636509127971793908917176061129493534304854618793812623691451807239106457752769075206316903580050417209806709314979083789832231793657294327909018212697328937452594199008498602910468672179879843307179514301879959829933716444265536481260359505812302903197678470351115762681859635780549638195806655499263692575813311998463649902879772870141720167627413078389899786211885025490752063301582769341237392883894924700535832706025118676104518153798166826211066602643888658687306623072904615173992235828151305189157228570472216173512412659444898140641128412253765033560159345198160344619977261616425006866321945109990610421128410907419188209175284212030193032912185065493698241112843485526489176339516350244107043543250869299368993742583706006441259739827792385740996365799167264144139238001984495049058209903039703832742831074888349059710822875363302188192404081899785258654148109510632704327815857543536542481318888495211838026372830162337089837159780943926730695870504882593529005572144745614996679728945106374715957640613853467781495126423494482156401437017390941423968148211286200353464927994509917426470338518814097617922415351868876481467595502439737085274792218789795838117204531205743795908839755591512269033756112904169042179724551929881454177573234148763029751493031338220884103982273291726605266235648979864802834646044982336632763347974972135155914766616321069011068926551214148714440700495361617926286925289372348998168029150306315294539062108013691376977836636244761560521156821055430538516244600090789373723891853963303439931805541583185465716562511852086498152260822571749831027589511592402056327535008776446535975845375691078445487302061321964794509034379002026111000598977282839617284811063242674304017799653614602718581195387720218534952016195824913010089444841252708614607258504451617735852306258344306519179205892916682116200786048998023257730123608175233079502694170831356026898136770445728191105923261533712229939166221880763605616472443591634088855634651804391653157624063446035728864294645164682456774961788215111843317505094886197581777021859741482288628351859388149271211389016029516599013075340247814161212888776029191120670743694501418999577830935278596585853413342300963083663836887472657162138919307595575823094875090255100031980760201210059460784368498196479158024584104940646423058124005348153025170295115069827716140723816401992423838669399625883504951237965292010162259973757066149775873744783292368538782238367078687094480492810643721306661999060530042972876077502358156551591542683281082220863517364260589751686162478435739149442872355939803349378389703996795800181009431767408971054251640437803398824083922097322904201929161903353894142161721341498378971930385298218381762980634810070036451583497583962144522844468760018651747729975152879476442626689538311171185250890668748462756778657589000394884875350628667093793921038883826469461967999937406182175999199326011208159185287266242887585378785997661141055495504783916641727958537902201578950650059974651267514166607980746555614676233665000172117654819298362889966996971040612247413003981238480115746813582987906366603522622403168031460803194204879077715689007446673631340826092120641292062634457582173828788709849470094926662949631714314356565793358571182162252641433588963988610777048351529715793648433135893720357533989436430125840975326455182006200482655257129236103917901022419862456634447436749768307588014983325694900893348965096456409105238671495007517354738079265568255239140376219975166175450760555886185604570821988885772717325366709374762764680433597714189357438653474014027391217767469653102837525958713157799507014513668750255707101853894901425034072405761389567404279547934089238735551563650590511944857949516149369976552042676647913065591301259213368049565922185672385854531492606177634769053276280092213886829007303945830230379845709805107002430821016575035629421850402331345190676021262653225684078525377157129143226301581202133139329885056680454204142045311884977207807059052156348002041975163853400959977613115493921562926337168025352739778414747540241994887937035137033964838477965896445246607397447085431795845209228588380544633427643864518278993735969041239165374942993827328397426240427310439866264726985987207359830847765592423392462713798834118211677964715465164211760738364724160545203755848015828144473718897410045397985769523419868866313862569608709908602586055471093904037450059341139269206777606358169029625889586714947526922910756196583425064568752318224876373033818344934004098622780077325232658636238497196266553670049493572741616078582477070922596065687192231797910172696831650163914319042267446035286262848008470801956217974419956744596809831140993870179066191253383415945870384664617155942195191181284002671671481265050156184694920797055346769202346236568054796941819468698154046681681278976356630621696706376025563742972234804154456990602901300494313610629991940824657810912026149880000594486736402152626487383495454012296697789787520610587773524104589820286638719231906901017652263028388240494441897226201604946332630055402799963700625344261515534049901959813436257998348248374553337485536304414163698643412717143253443221497634136258844146116034065364745350890625235980482423364567657881173035039045481146506028961098554929956282545622379785426859037106616797851354469529306194685081274776486542226115790404928951193530868868132414843883185243691905309950311646023757776647978171829067476062095502079663408590847824369656899449958804875929782946192580464441605026684839665061216754656049255372055896178657354141401798314359793583254093832906899576166745516475549004602340226364234272408307112464723467992324469599946801617956282120123686180478909716114883034082416398469588495473685013478337378575524491943250786455782765415558363942421426502350198716906428543384326659137328705610657708482042687378291502777124615252706680019296343939247326495995084307062450909953098953143294690025535505389733665285527684494089279955340847717436686281050069671841301177746484742887375385936523874980378657009491457355510407332955203441162852987486607569714279755982733097966678356879998898279970188232872881312077875788254532767231209141008847892728896107829617658472297239683885053676238320299687420862182073438343471796678337760703658027285597342086031366083096527074574330765730080856427874635126768920843396416043070265642171621510650322738600833593709738402289706055239986874332008599778385070315644152728451601854279897791822141548924688793606693232764603858043986607720845268251113760944713178869706967880356259903052010083768632891554593374180356519992101681960812055388866300558525853823734969995528387007904076355882100361103234649237562045998925622471057005009486081032680593615728246309878351080714236801544227096357946907832537043931203608894177345441411709362308942733811747776375661427460340562486105891079452566761224752076559423319884983689426517865467125024016995060312364819369983247313633719158906740303571305519012520002625989169817016775909084232462610670277771437888474661006251310483716533714906037983261484065684546244463612657460856464173825882895340307660850806994314155497846631362711604168964966045720463652959248089459782330152084675986499120472200830382512321313997042057516749628978157924660919110737680264592867659024074158595433788889211635264015796911465056789383789535924275986030668333580821473431669105513360956686982913497298089345134500541770529088674821345718794040120835721853932859585540989318676202822363512692680335897143346455064790370497321578991516493345743004167613164655086492976474285405963995055479533689241957405444686721838432142388927702121340069821857689395255597157732868243003738044519653840305622958347668102466031997934350801377390125535580587992193156086477184226944992303899464506894004428649006978132526662642657585913301918302235000392427371260090148689167778729231051752140607058703435242095470099914918675607326709253052990326114832812562767009538680874064449493815076340731533148158867453155893837923548389327725265849769154553937623487018655705117500600977286138861728761253627853267308172490856361067312338480464600127964738210754306619740188227528152903995139916900942286338491640729912967122951806355689340555927557375295901033836033119507680755403737187914101520241306166803774528472252763023958969122355402666303671390169591739743923369384020143519448498219931204799730173800671165834032612913217418713407733411305688601977012227694479013375632373392347469017597820335731169304020595257171440359153253871705975878245393573429181836298963279326136782712093276370987790405000726646950883680323912406869334790315479797508393161759767248492051433639078080265860880552310733463156065854555476825486242677859442647830035791929657623574919867151163297890201223385127253376071074106338890047221163267325254166927549761160976509588920362400490846965652470320119938697782435673269182114333898264009044514882270687795067429653423435671446839612426791155303244698827717998682712143622511816097896939514281687781693782334993648889761149714611216363322239804945370380002585314574516027599604983954198115706930662053625305667395962616872282641143002357067497489027371751482254869805267162217574379207974983652582618295357011633423743710476972310229135431569437460488336981334593772416747804722097019675357775998657906590513196970302933877899596159313877584496721334234560412083486998214410687704842213004128059025208966310345526871674187476417756010487176700459000259786046839383925945741924877509627431145455644262006742740684969697493458987040367070028743668973524960708917193548747564244222092961554769165736679651090737161859914480349681597818543175825745078263435961362636588562295480491305771208672673793885527313276256858615501749673504709659383787067551223546299088696878050142915994264201185661000072294616717287466096017388666850334475872142833413545938765547546837165945088612401422693158660220821993074171410010970518982846334324441373541629560960805036788999376009516614098741304173057035493899685663654008498047657277995238226408762638622997829812448310242338183269125705689432121517683302499187423366329792374214612337982984606419329043777995677799263752220232025837661438361318239728319987628830265716737442574053255452992664331436480819028473705219717827289460468083730213024726966185018418912845687986511179548608446083581560656881994312100061811936112215915567943615326442659853796628584685441403328877950443873447488444170312217282865143637752443675320451976591507813481144455006898034584363306403290191165540628195829467142294471002520388138708850327202969531997471377442930482809069092753842546412290638300744641387887635289120086179662123109884037840745544551803611509850084892607927176489905636455994061234401682918406144695586716040254506781993577476622403070839694969172856350424854758819364751925595952989066628231954383303063297691363565459752098432129093234002844844999921996089552803209570156688939697079521544240541229779728642945411852330741852564720489305726337408956720353316733487460412443583939769376083582760319591535280796093761500227544916225025415399321175035003852225046054604090337332364494395830062222189129332857995956994426055140296816702011055296709334148377917760141968545542839980616945909630362273613669950011296609676390140024834729610525784632256863344997956535498904150687754651894386122696734973402579209487633656138631807896552100518713780398218806396930205211153096736223564278289014383329997983905687648960770162347812916198968701200041342059758947802270366589607440142810796375836428465263290177870163419051114589121788790964018795719484220384285496196490935144960076816599540943221004627726674006513126231643909601833405001812116950519818186118005714728270290400187958563423161481138684169461906274311641701721606345999261556325348515454908890303147582189721863598913041577206378568682673426311859964696801943633118724899633029562975727096198812767502044814848685322888191503799486247743863358536932444273605249101000864730172758066156524776557621691900972301338869557875248584767847942693584454847887973421626076870072705880350150508199240025901697181974731684247445830323746880249622587784417364317436664995660949659426349041607855788899118037267759645134890924299509756313260114101285504232137403335001992395574200434204947861837155049735010574678324911261559961959083506588636572431190842349078489118841735303554560122644139403847101624115189166105692026144704829433122699583150300202092428138972631961551032391145627017195940179791743255074981502029513997728507254098509821232080538659874968191973395772144607969683858089677544363970552066970615999172581875829265597133804094512241336945430628929165087220450259733308603660452994774214244141918957947851453543304466280776038389056609320411204138705739274925224653448114000853393283188297920426239749165063429453911335395721809852184111001831474271778339491084417415519274046766566417003821794767854911196199937009387314596057757061002787910334563573257866303568405927005405035733638541393083448962763758724814133424837210683007516683754245772479382423029351210851141061765755289033852030667741723124553688849265252755824444784512913247013762664452484837538741036233671029715942937425367224618438024138824195531419977059435571288480951517632341230892259789094575851248208866466532601278591877253637716141017113498605866208394046657413071731899015817392084536036397332569462869073969329636333567284536560627281976217064305623866244837643147888320408325121708971874899646233755370141101244263405026386790355646267155088409487052010251201719581251968322316400659876978802006425094275778447981693956608713737829435803490620249797853556343975412227533716423513170596607844807519814711896930796558492791320335303672274967601380441490652551862626651995282127564487833426935480500198963625241129717607712421440139414191993053573116340801550761061754403739784156214731042692106281600358788370055960719463781494512802303868654227686045450285323241125926568989406720184673723908660567538133844015845947681163954387666157117012062072503550792034398692751239833863383905409539966688049707415359777998488149568315593136565679613496280133916356871009962100515542964652441639526220285902684449797751833628774564237378325911801513996114324868146341269958565957938265617439022814629776007733459549784153452689468043799167871965766105392958038023830877313288841183041992884914082137669505190133056149079400606934985549547110575348870549478234135255099735318832601924114782040670682503687678500379259277653611522769161552416604936572051615795515935045439094840417770659863269252212524294334878446626024611048557859885046473978078845821708487040998376347385769774617376697270903765613004639979678839454646867850463829444430029865712733734853843744084102832064362262248660317114693475078580529425118187450558937449176047736518952555129945804886106712845340498867413635521245495368967591429167461009393747162028265817317085455292251832697429091764830547314820503681799035513767956951791132359581303575865988238041274151678167135692974703040535212444882466075151216529368588079946925009958185830224125136402015131290217117762638343913798821074469660021833639171431859871056338186679605002673758290072607979441266995980458119156778906489337497859566561431260335822008145355915680561181315602682344657734557892943016392630657481622475543075139499673406845317139583373397873364358607619223389070490045174199623600526757667354008008984349150436407144567153341657982247609869242651163906033944755898351416698618018886238793331444089980954806594812649371449542195629498087210920135567315163981599955584960898562599298126959423276530763150585289402198732012111219482410055795593182012435267033968831199253660453326442389021593148837089250298670772194362525281290075219086042701521549523269514913399052900838923260682000108644666059537758978317415705572643472199666314431796757106470127011516794928753757112532423328636579824552944058843825223140579093322267156417648932652054062938852213833640930652487696345811482204914605311919806236985136664607366455308813148080351882447975277113453907643271496174337703392559728996016702357069205300719410851979043182529257467451899879548400760301076624290435010685294197288125412409209645735863649469002372000170194836021295125297260515969135430561576149848879360601062591683161133438434259930241396678985019455980667679925649572882253088647888312209360289224429637536369753828448480035970539378080981920658069643123306140379330182429619272122898654134411433502347207586987555023475459620733946589774121127734746502779307405756483559116179126692479808735406445294009154165601690023308725722405534665660765136929926694973361944133065076740609110551190198693660032310068260208216663830105584338356748385125672476685141243875884471373641370221671808789384784408579613389758227658495193010080634642374130341810754506235607760213622373501846709124869650973251783756007716264640544562452417415408798521778195740985964421599034968497688288539677992187675372055386909326249973589591587528143133622817262027259730323571000215590511664392265434279723203278661391411193292128868684568552710168929691074401258549299006729844989907906589765711133828063084431159237117545155721038777962383809759194046504552827594552530401045535666781072889122130932614358365079930537303978105013076509447433457574961023024431038531993724947920317506425795279181981112372484013109368721563556220201847897174638407808538990762550907396643445918602371477163185971254823753833330423499322480092558090584279392447121438816649839697568375603241402695150467282460744556636103282607708703671712275732059848151311618113061901351386718747493235387856365934353275692851840593134649511785814614158788451370584852948511242480797529951301795484612423406381217174509914195553370657914340446117794943473467277443261458035802421269982781692792254847384138972478622684909697408867866732094069044996311725247992332250665405926013695172744123741625329630199774967854409459097253291145994751230578435942113068754766461640739537926214203736654329233192154801485158373128875379783476700900808615599798159770591435946234562921880942977134644331438386650516743600229210143535970701317646995045675917194466198396500675108992079809475018055705637487696353691903314913522038362619105008251019846206487800836994061627453362486742013065308386247524614604675643794686905545216907982518798246234510054566092240923567007601730713775321034671420769947180504896374485972099382071722479687995222496870799816688849347173684896290244091851732851668248142509687156696527115271452567968463012065972863440000013567361933553774304923850905279558165361543223131765123701560798141891752566596356724531577891024780351569205423719129948971490942720851315660804916644715810091429261852749986934416614449494605778078621183059719809013699197521808372137529512025192014191542281383688099739480607405123202709640988149817954500458556539499459687396646213772379224189619755845394527563504985595594655995266043922037681940703130893413898332145120591617848316187820649238494417248874673785538090241896851010231261288946670102520513885603434303639043449197852925995648520026491120088568577126599079116598792903011164666466206067733644601866499419218847654164244439534331481377640162277790293061840428380017766284533568509943299907430911733067765866421575577366538496015360944608688692639552134944336657718547288106738994149329300242379654327427657310611980687490579364441153013003304979713523380287494618772037884329028003996046503721729574671652699450529170282423997122622751417387626672946960109276230316436283444190938083993832511089872164927334171306760105886024714925500115931754986583516536162999423519707777506325746074112459765283231513444099835081017662265892662060007637597142886458267908117591350018368228539994759619824377761739610646092506384694246486861268359367200972591181067671299481506382746875750789764287456693414737172672242193040643613975017594654764612154057543897323526991065541339845854940354148959896153948691788979574539855549446182776368996630264154763750682072291524957649222183437983791621373972029308779516130440814768204711433586991229223682233588642772615120908291766541310382766017093649951694766582592687843723800175128370191167590527810353411196622716159751663455372949197627247326844440629359297758491745036205527284055779400918675696795322893229264681905961273149820764100895516892092564857037442887243733919418083810976767979851489144151077774396646511027674456354002319204610146105959887595906333699080073337267913962620160178855686802325464917322601579615060944293214292768827840071987270088302392919301827323889192620645021964635804328820197661681301983061606068600954679726913050802634758337684989213237058101154998483468434095472139134433634687105932117249475085227010120760359265641037220997019996485125413977551103886846433681314469139869024446306029221911419539096415999700227290497194795137528348523147966605509167630023044403869163292092421676105988943305943438381547024187639851739776568211878304048326728349245657560276169310755275385762979282636214418597557893335742294624798170181998284259739486063824445878547173548827934550222934700431249641054471608830886162997075770788044283023229019943160102864212883985033171836514036490973228249875250166836937733787807927064598645433606826722374272023261151819129584764405251878362868932680661120341257740683435946121593689603941891430974357742069821666690166927616787576990115737081223417450216082718513444596020176313519778385351624126390404099388724369438620937862254806851320424279216810141079153524675327874605718911397779731794190982178309696171351764635076516981799692214454770857620204237989183313953669455135559397341531089330085288883629148022235851772401801688239959728285945706900913242404895046068823287194726899210429283441783548698948619668894770746716752654183748436171820572764840984972453855228636490916543113626627290673650745994757869779141023539543802423506626687598524997552822194414967088948617616089367510378606267519861130097054630138774171607677123608428070351696265102631855016048311279847189544964325138572922892137024777912364646713332229771154796778342134955163229961303952721639010307155773552477684590722026258738497559043242585781778533001638635102536232370977859489265943269722550498661148054878292463858130720947887051546427736735441528194516272570433000275520039993859938312633059300138365355663143871128606156664042057658919184390223686580271474630698578554842972726504094178272740226376376466551141239241660804509100814613241016456704152400950528097039244276770858825936141696481776178511279842126951618108578178665846043927783734402516209298477087377733639981273139561615900538970596437019458552045057779759463071041629498930581010424406250200311001840962413854118133978397634188625758537577863665198154894458341431801214979838857364501210919796765675054135377115479619366679142001550048422193756725907218446883039835931940817421323444009646462904492559853783290539169036362996390171434126634360557580325091278059644699320180288536214484021321602212800675323186171010157304922043276999707864842617169232944572861680995659210333600212844771575729557687051859335361694715094484515869471483347100108114138554692866281841001571319880897067239788296250413497695710269241581469135417530794698173699651658582255754419322819056501327449074050433578729036961798369753403089773209710578472273684682234896374563505588589034898829596017827541271423579772209926816805290125670055714302014898264035502714856962074510230756558891176514023633275766848595675132170092190081614327779975437657647021812928036564458885893239120093836480132940500957278505012105788005185435443278504181946976618425442628018944768107370073658769712864464897484426217020032494465637818909785178868449713452951518986437023526369203078222397499751833519346135735574924953822746276499440354492210217013216880971296960783810933583879647391505440167879769924498157982334298105609942730363751865986228428740166049960510637127538284764245706567490495862500420427977733239863230060947223484290325085080094141463069598101393913789303488303313605895628609865388823573013625509411565205124328220237956057869595534844299519229990857802139771983021503156542275060396730129635333463705036856833011943796228909517676291926425925708156788771882944630946674928102028398158181034031793264112066770891650971999013479782633793302761281530603379779489411287025161074890715847249616940380910508681300884486034883516185255936587094364980773940499840970741886407332101129791603682356279031390845636394378353397558524558523804715686845444374774651830004417537154990644562677703571419926920605689351056743115794388019616617465287487998554463726949100622689176346356639161338377729566516927382223138879093346538970759738186966954304772321879525489695618695781744323250080512212196640672431792770656926503729180702534669413073898026538741999424018986710931910714644513636728049533753486194057091558733097589306355942322611570931712075512938117908887664135027713325731035021058900906931316369139123259183796782654402299491807143089237276935410787656803043297955975638972205591201977848792057483534040047355306688240914803242431983287883805602347196884437603092234553570150727565454995025782949797026778716753408869258574982707480814117960237798334821446851053858625946051428577834284691696666866604184035997387031926871451966139924449304365996745995900090197118712040222209190837609829929923025094580537284474870313352372516446579458626695696495404851914308034819963368656110475875467390294989362506047935752505862270443336504191108361586040555271596964328690151760494582296170710201941348651023794367845891317768069841050704555421336031794160300804143506995878860299987003930309726246217766229224901374634756319766000130796278175946235147201549786335784941562717274792330690364687668286749207190059528355521603047915119247218490681980344065791753779914552174734835106202425616997297265612621396533053940200999987025669896274161556698994045551894458600922924317148149423493952755493845738676069460981894620592419076461838828183051371611693365263025802107217874986608370840417228122419749985968071118624702985155029587491124850277301593123030598813037486444125373993798717301179166570434915099872462666275107457843123022426158406549741466251445924492404663360387388128242930820199757726768874049286514405671819381941780021716372851400441343856957301968158421677246873052994043020229125562291422397022276890798867742159263706120764278460504557809759754994550508380124626889276889723580800243293058154263841300140341047797735819123396838694063256408414701796901413149790501009402622022761191447067067330847733020568314236473260887693163442209313422220592323173286752941687361050843366079498550688473800173248624205241122332282039082493742028100993029586655071421024278198160022011263808082390751902058173769373554665161551119620719063195809840742027409840799124935797336072690631803913988473819340451069386181675385139505571216485242351911724902069521738358916117877252030278012958652306609463069834503607363937425571543109084553224807165603597775640945758536399230798924043488444664031815320093950226634462753491132486903277895783540700287898980599443609663168094515270755163632503485944714440222783159798767421350263330611791859824088812584587713965098985868161619271014967075771708049776621774216480554318305601316353463313038435749793615501286968116858843038522353588467927774538696769238456552105915999452875209862477846972444133721950127539542178080318761243575237015391396581222854003402635781258779516875826970992836445482675939696959360404406273841190845789468957271794949580021227873157939855126107810241346627676118491241201928200390594883800146559357517294658646451036656224083645479023926562034630226134121789006259712215699274350393733931117321177603031629784384147180951718499497434735873037887261927136272493159722927387744739938207676909831136599889152523449384823184054359108379221117476427034901055410170537264950519923906625725878694449565002306161619550813567533773175883415753518927260754700315771085899020883170951713619149974793213494915510802793930333989231929896905366891624235195032691053471977702195042502678110390810342430708283548669781386101385719948452568895793136367796141934663236802404743271040455724588981542137313120997407418855218525909999943975929983685944242810472777244001374502607486480239123405604542272555628256707544056625856434357659688010948169375950878994537259586971462810193395375559636918588085392648860616041993443997412196083872895993562845821156605032617988246914325046672117233833109525138624871012289226350768622189907949849646705197578819402231549738227170773263022835952105923399351203396706648060191837239717030461494063733070575559729797761367529150225862480167097820995842605994170965010769601251383227036489799679507693889194017186048019982237502302155514597629941167854872725879069094501036073294584721742008724020475756318940566389348319100568898856752672104538375105258921360243400295051758636799914434467078385262659944442075330319619089535055307799604767919097359641454594717331027861836172652534503861707823786835382208766969249658713986223927302052536737619312875921894284354114000432182966180834499943354393016518759172750408244084237687265527745309080159024240767938361247022472598340363215358425357832327647319418431821805770077868532210371176983403627939682982055215947305051560819088395222048795842970411273338815784495104627457130600546240704223216062321768295222720652875114154699561757813552671394422364109497072587776421903833717505737712136528095331908559972762030699839543500792073356817536989365008786857061634890635855231776665393902407965453216838136430697679573366648489459113045480147670366148231433232153751073931298636513605685725692148542944607811486668514363235827464984134440738583210857524091066652383350400071917104394213502265787689011178169616641066140972537231054941573333770579813492757393142647253872736111292320621159011102536711158294307054159795504501056434852850398427301296228463905147252011324532739860284648541911854096529850828713471420742615945649600508389396838035040568890511771832002779450356465982218027387030326228210194800986466200858789240344906402445541289613723072998011311455661927065288217021613295915718961330824676566265941337121097034312314070423555733072953483939772984822973852119283941261740679055380306931053763893055519686795952907348315212058588708799780208102256725194476639440450117908015087176588651418948564856934340435733571846095009589546867958028955936884168629684132326009683341667222466492939240947414421863882998310518568472591188773335828586431933826104669891524343567322239744632498746214169128665433709310003887599300384671415917933219638848055465677941865407663713794993530207650674106006127181176790610220617999937423788870688085611623928970983809733047957685371720824159787284356363819935480347551606441104276981473062168255638195571835735170888901113844714596161223362775270397325065597999060723368230384689457386825421981097904850613998904771636343405075604728627271296331961373037996269178124963652589268386105202593451075090914354168948660988701056873674735109812510457391851861841311871452615160310109404357581051072328107725745149605551518635206420018572823782131022504507792398542747513697474153386553821040517584259054179406650035843115806888463262670563160991214667867941914652116039750278292532149921236298188094110771593315798237079827888645287101200736714556553745791500045422030898415352079725149801363330015132326146854753633562366388674636406538791796401499084943551857721917404030766573055034575006272426567615224421723998944924095442847740867163237386360061369385834167366487333306878132492410216191232998444923035029900520598260826182056378102973891618819942068442063316035525565686962031022771659524132728927043779739451529155456752998445272585647813774994794542010994707904259863477143423352702759938275744979829661209802565110439265038403008199319023065351469229573006906022106532055299903359387262743543613528871083182588895410130910898293678166180712686544015914965113838487284912410978436531958253894860715433729786231519154331105670046838577693909037951097375606729940998123891803937702209797465979445624529666522498331652638071218190207051090461673619273465656424927074523108253009964242659832298807773486981539080198220070756921089234773184072341772522200934387848203837693110261197582236310986503050053546558152558698598019522444245192598353841726780993614251073497446986954650538201681933434133271761788790628347005777924736283766353045284693111462047334004915964788301478876950129216038893849322352534855941612663435953526134652818430664292328934122316205147313376449308044476068970499620464119942145293966764823153004142802374367516670314835382820950676974022697685743740611305184984821064240503236831605494821634401418870715214688818840657825279323966963151882760924248387277395506216233214339509132615974183670452532927933281152641162455364378167747868510343409978445335410228173714673011220885674009713212567192120371888637710205626989380581806536851908833623353795760329811530784237467237297132077946462914472078088753976365937420166914479852473716361290982459628245242857944886168596653401146089556585979776302789229522283744571634222192797168132473426831811180181232543933200289314847486604359909920459384976350690577037854452727297674515345897480607859942859108096415060377558266527020382359296259237747580944859603844462676141063044383570055850039827901309422714234094636489171586748969693609855517625738197276443955608982598843872054586230793796004016469150806608320927033752473497869418706540846191533904173552516106805191232904553405186882119604212992773445870713576625300864643244643746984319679267486620674558680348086680353683274829937670663534450690279711893470054289467820480785495449354256907648317512114639915738279067077321951532481488077782940595087077501288356307707646211389815410506348317119057995872025004370579749010970593930059850871476837964421642490149926027724301406811207507004114473501716400227524073401080591903511149044515355610903615896749601592878606145238650016918066390575809117810522345562335589005657017330056182574962681580944419027335714819120247649007726717708754984516512861682742240468603521987604585591212831209285406216795941379569077859281760611250533199071740028106958673406992429816854795601795275667780927805103048402391239037607828293526344304889298883854867263042495071701205637197748487383173888031184753714188550234426436736577254989245400173833445031177579815032496679104217245373528729067168862072343979876703895490971075769358074878473865877913749634163037684087566618477228801614695337827661499103866508030483193470137625967026769961738091648211126061513892361256146459274622994817817834952614163868535482044428190552463686689680740789597645213136242854590896794269287051292957304100719917780017969408970184132728017668167811667991046701671674270004659336877611962848715298318830689685654926438949024484397594065022134768632187498067471250050148140407083421827367085834534109954671577723836702273073707757168963770543386111741548267707794403108524047081775530493955037990495624875171364892676156436471505429432164870456051677106841793573545553297225067200440087946119234354985956243647538664627511837331340346767091808442269948289790621222486084669552796880317430841911063667512900833088771063184403873796996469070855460007351322066414184290950366461791120088333302571412222269427004421320040356529364422949243236444354449354887870717141564095810195799273031766579174015785350027764394524570448504611038118666750252003341224761965259629232732736116376513160761847728602566090395138800456968307493737285021568662205057511361665134987496350714213293928427363590526885826068757346502342133985493687746313205724189604752333648762800810617975627636925306774472451943720447764186073694438752291997564282435409506882700542253951611833422921181959345899069603663933639250934849344343293635962069310442776541213015859175571841291630107181385817099884032180763796907645621846663836587868863308994997284301573419318404494056865079339750265579422875554283455553307758861200301928264926276404201175359280409389037015520503599299973797619544393481570025822347061088090991616990086309697263511637612797182112807828185563683641775672103168022738621408444004268545826753883421653590324172888884651496731760332970119706194520909768349009871688422740424694180086572314667917602006697312350647730427850151761294294027005674392265982643864185396361514251129490869571520078346362133230132020351753730695904757910284661249584178762628067390077949073425052388427625540889363188647263541539054497122916677936286421460573757938947645746356021835629095525140949073572197680525153123616549312497189487923341457453158807251845622361676946562317119083822452526037916839520665263522494920736569813587646437451875871676049382130776001563422749798017242019635172109324357278703664426971711625022601334289281770258656690735788363056722253927988226622455495173851546041667074355138372091526882918794024395262435130385065441177530147535491326999272810779956110089868270532654878940936403043125255852746298875679563265108622038255207046107379606783902053262930885335355215326454658809648405196589526733390359733172178370678114648758167780011064325588808768572233720980009855226101670505527909490518663499980737418853680817156412546488963915029852721649096915971873792648527920456128382585281307625314938290934749999523505518436374530644924306646845271896750991235841226316977276725655164468473778662859909511215891995698898239273670835567897043167627464421949901418711322683979906375934117614507621582108216760827696963167604042929091064704908265762534553299500614785171146043107294436725089613322198116922607685341855804191430103268500489173855487955323186223627638023634262120312681045966160101855495227146129178365214976417227153172475398148397978891966653256013398299869148345833382502518937355063544839587082190437464509211156690989795468733514240040920969239107907502618265417610378469322977761542872771588303140857445677382429037766172049466130258071199512263322919404037696553454164329378357143465233265143441098810234704672168863686238676916646305890800475613930830289241887669478583382377365338101183535775047899042700109486524598701700864513739198545982158328504288741367352993732534807173739306982036010497238438910945585569160149877375203437477569691643213835429461364297986751195469697218797760369396833160094076365238940341132028016252190588997510417021081492703709913559742524344770576855810597044459813641417891041439829462066934402319371392051100209627170639312166941752264654359764199413035355150751439257177431655885484990395546500771199838699458463948166389398516694955053543937255281555526352178529115343019834409469560720133138938785095852439679073424489845774449528660584607656841903194100563548685797757231533199193081823216400520917826935031973989537728681785504912665624955534212851286626643584937567825969324070175897621105092670667369822717671448423338703432562870888815602304518040603803282556650696221166041291289525949923338185261664979371528626585688119553955570245016913848193717502372316910617937653670642992944791220830091857802210928335250915347405405354811464839188094324267791192713937708858458992778667183535295047233228071188837763167500755304207370627391854737707652099014261975393701267576360511959209424098325764358681372323921422922653261952041453982435792391300254287836489767712448105838429234053692540746961612235453085109667936288806548250295945843411257489104254514702238511956246529845512847082026422599853601356955640056310664061244625581460249744734237574861637538822342419161979502774693771395213947219124399722123426470274935953615350375852362020069091509757781285928681136983176606568483614263594789649452719638249707459797555140226162273950461611383305273939260741560455172723938665168638282109125479304586064641693417936994447041235744826683449379540029266593594195869062148065640074374221559048619817804498391644174742473528381692813966779565692641262216931956582935957761112124294059776817920997480729056596437649060658108620116572371343944393448934960704506260161597066933871951261450933097308512549788845710726354385411834231361741957188036669567965526964287683081463414609081049399297440917370316421774576190411123251791426977511443985017644726862864779508397912110334552867531325895407129543549333572454264243786369799512176994639247627097460170879870523833752126100573529921702786875692623857186458964438210758906550506373035141007498728399004899820988592792806838955829745883596509648482251955300663523831231317429947971960112208181084740209808323954251490751861662912180833979774237172122930146233522176750635026759134855204526129502571227242374488397587630794880508242378846701559802215118488245290766564670748736259809032518451623463677610306031952215313665922118163806127351312149989398171534144905664735324286426955714087264487572087721693760218340838884791744377215802852791952534272416210933471412602268815769988420031574558775975141072984869448397925801361836554820609830149355282432059086672640808559849926647004229357324625452312000031713999844270188604303523792111640780234123530507860735170790141735298996627385962607712246331190828589983475240399755482675980935749722990565929338419077204282460785862462700581480553502407816284534040138636818070340586888188368946675515870125309241637663271361713758311606924905139093130312787962133649257999868983203965094291976804126093119022989953354220255197869000930052092749895544573227601792465169471796517012213394765129794595503415286478608318385832003351350380257313590351516541999170720580965824851705459862101343363330069036390430026893570570393678064546167591409742701533944463567873788404642392515129525421210788335636914120234216878084844172052655476660573198048388055047135874528028031389989232747951462933566540060594296820999371749731732819861710361551039064569840503895229289039274581577110826285059124772906887319534686795923313660626791985530257789474490673739239513277647812074255678597925515185574906791742231731951272964101716629578491652580222191768964053876797268540502284647318967324852777088409167879204665504210538607584749789993328902812096137275984445800078022519334025141200129488166846701673536875326111398285538740078575941969572735408271739331765632237156526998022059011514649333481103157658732247581724656569502275040755784997699345517512207909351979430183067993106634717396923046315904019456899726195068039140366829621131061112189857058897507961975804012158926119497142115250377278491742767723825179304801809539723332288213467796947578507697582298250981975469888011255245210262662789038260144251531678753776208109534049349854337941454239766144843965320669841156317748271099813776347737529049935825165670178322080165676027292388682092874974872471229734951031434164355904549868105689331914222953637496093140730994233945262991780115155676628196496484358055896404488963347772430563268575930345776824804138400933618639417409326736026852328518973211900900138096574513243436947852481784228447362871873568006297389266316146116070134066181640736859437190647210195473688701292768757703696044157179441244201552077409349714034777629467061050317345581849329317202181665783102649023402149587234978033151217567604542591834110108113321502157877127100929483550012504869913365451134396270232222366176149802852256023478556708777314201109877598446037198534939057120668848926182777739841214528300451674022424463067497515068465510388116402737880057519306285433579553826575014371406520440421603117957879509146298289825062422899105368109865887437691127918271979076953333624911207315694808970413666124608654395190823545157581213502141986472930696407572887399961357396138981636353719189782549819822586635640761899311739634083866520449084127463374240940221755452244896114822160705944265390218351876023315278806208994651960302334665332094478168526982560365419499723802549835114727869867114762947067286402185590787079502598881084990109659601564625174799661666829105438337396184389790208492352869103037766479218901282403066701197909717101709762958525547436015753890752864867405672211446883290912839657520895058872371729811530814743630943561567037512286469825567942889477668308295138240784138152501408359074179671837287942062121148841819455925636421974422486335379501108677030578339339377786166962560871854541024690283385005095410632282680820283741437773213093459515706875705037099303708750793379274000531743838556351348845122110084011520662020752020981356426602201735975221889919608973261822102232248713608840019561522100699258690461358037060709989757956171872809125100651515488746539010649664223067853522334499914709697139963498823855592933008435341799667270188040995227841575491332606747055595180956895163924220929807576359426039583182919296758486346099892440295314796516510987379936833126881023163630042919117690517073455842911342959601968982516284877917454105680485896679535378255838575359698540709194216215754282294340176700301589961533267735676835446395047438833336057538155511738759563997771612895369434169298594589908037948571309603942314551871818170207967472818481164924477154529559843041120952410224738850759588683747549888424082758347689491321639086228256168159705218503827755873619802696202627711132628872514578744218111098410262700882355323333909802224585939260643164982481894322164396274090437921514794346906537614340803966132533010411689184443331543229622424883732812808510122078588208357324001602072142171398844324070321893066343519456529093577447252583528618851005023413989620204246272545689583094127476730109793343240326590735735676479701730003203256478313683999145531126205731493217815522470423377555137897154364523488883454586538234622779936261824394612491935563059214307581826277927656379592079023272017719120890296646907475020866052453202225504086927300961223236246649148974495680126115067455984193254519888821153950377754462264781248233339789061190766343266607700346571259627672999567242480898195399167379852857503563109465822570139984116277373546653327950190214439876281930152545217842292479036945196925336055471192333103448941297042165818214191585172259128845000902906546620244643159749565127523387967889899385456184556604799058824506107159885839151557005306358353180120992377367126256815954652814128924244247991167788753237187923104290178598730768649919795641664116516310578628329528017494393005483525628369396236249585264347626119302544472666020614235395737835476844365657599447273249037568645299870814776410458680758114421467466498124072273822811695273458903882398257030447906626223002527525664835596295474373238613361219601435088405068101334483814164746450730272324299113797128352983265649561476757275854863098462375540249446953219037753381440419550266193328747052115169466465981830588231593264956527530158345438186793161821741242970486746888782318479471510969256561574813211927696245230942182340653295101429745246259276850464827291411462941830926082024240730741770054352560551875735582012725307171817630182858681615384639731476173555216199942359856655089187607347498109783517881132205629028245550809618197237452968863962043666507942320939146445158866183512295161853863349366730433841266163525509298823299097279000926586376842251088984129043010487619104611170428435985318031070001127630010529196328755594456879449508965688018576407269999673400307862652954443561058635082667447750047459986048075390808385716568066425254727883883605097611763207564204322150966980282961702235306689775267913390032529955330662320296082834128611350958926518871271485939823159219886424428246238986296707309769887171869066892085110986320971771324278142622830920653495228954472150992582560156470676514085240797450173364968544267336883430589849314699719655906972365995654356248961166704613206645288665906084861603050873500915877587728391334789616540586893960131157931329772830573597761669630053451603150615035810668239242859244127676801498637112024216425738170314767998232768407989361427067336509498366198645759874117365951952269181397518795982845839062174973127468273975750847536840400548077676612466966500268801745939151616384880174587613718030204048231656514583204173129358907304828295684127471561868751916597645298959029830522279309710211475879666670682308711888311640790000407942818284065719928300648469563476428749785573104421621974815354440526856277202655762260912633581405381872138989694035282869885908279699692729423611348183103757356864934932753157070641621777186603830605921754774217514093902432865708403995367341486281943918908473321850614543383926043662168775658001797694973929762002069447224085765307161759900477185738541647329961883901361517269367924419310722885077338410478430596301483342800573800275715675958988643145397426442902962022460210037316724764143846839113489665841395578875731973671823803885419568093067956850727342252574612076653172653238991083347290246565931129931890598310711105740329196231280881494033306540285584922201477832463869483456142053622361556557731473122902819075871997418933285022952587147461580140482551563016392186281084833688474837125238245639953179498155658353304331313080660935702009199789051363749414357784553299119849917827226089170357463099597256788761557705689303956558613311684148915852366457527672068874706729854869127674178822343827790069299027125659556359739729825285824826351069507432440344840592648785497371194266722400339709897014971578888218687693110397715420424225387621949355509249915842585576243950036252426040551797475934481910764608328035766491774569297999148996465765607497634297189334628045560661001998224304517017999103688242294114927943131643786048945242556787452500082490485026428710024562863370475954657158963358747144408120647803719983609143747090214656972971744327463493088098404525243438750105849121811314007276437949952104846874420259386130581581041949309007350169510560529256051872671332490404145933273503712061987287586451125104355781571637368498882792340765654794544184083148654508245433254091464863050832088425028658858867671146758472948578515784245531215292541793308926083834720760487841536089526851324538497468214127528745958978891246301434447190509821850799424196488728402016283761478239359413974002476901587166393730771194162221164770139494826234869235442520185482403182164445130578464140703303361211608546220080718092343797625458314231408286119934643871883568269262248626937501117034652588837043774594935460416423385661758233635509713887236654689462276390591089727833156025032412899571815362329169537837640451783564040789276334587140003245948091176688658932861752530057422463313095928188961290325881449092103157458782812931794428001532869016767679869224085586471385591022702593594840213441356260032918311863423785318003107542792966796498796469199676790819406714894192849226445737110569503517876878457703406246495166673761722880808272688312944832802145290786301411399479095129572752966409804003436492353619874806943252943052666422454171186976139497863364333389434045174283487799559547394383235025633651727382144495107330768782383089536145756802786118958506884489629337961818389572242671356002809949305917175966257971215877283405981915227487962477336165859997820411533585712335849392641772534505736941175599807413907392621079481647834047217410953597919156597638357374576966263661717302142929903329363937565292568728568415383341102911868133054029653463062166336934140935246960545879297688798737031873713189760684696561437848626621146888502682538628951671869745175327252191177420284379022672157505767645790057868484896644470592330864849495421544536431748659234548269589122306393291582463957747662722190414461907453222282644751774043011681784398820033578112496826239505475967860009322011270498426683886789114724189744928423089940018031882547091547761094824807582529651523379460098077007340649288272857581667752646119244776953865668480261586027118083423771411082990513079478594184079369902847195458686741209978237142425740473767210940124042312962306751469680234492953745806638129931871060202694586554100969906892164030029814893213417571870416660558546454847064717908978822434799865786632850531434808372157774912512395760691838708604527745323860559977293078584021178938232485947693154049241197516853475237176425188448322366578583039236178673250154464777191837843181553950021680576495240726574479625416232588450752863682907570392559774625387090888674504256126055292513495367375081223346348717678784226549424166481722671417695468816602686358774868830465500490966018825996880057658557300663399324261618662689382883580821726494858767497059875214083404821693079819121228988128355250903371963419831785955351146399090147972363559091353505730249638570064458319730994502445046372960961192098639297200787931444415546675834769690632176646401260843574664399759535326525192935956595477785394408369928212218005286537658318111947804663500908118370705605973285174127209594451824267463911637074948195422452013227591006027587045225715625688869803484198001222116242660407930765467942477753731220988014209130405434603459641685078097079526487257587372637592618596327309791317452217105541234669256908826372920624417923680117121636214192470190268643553157606783269257369400341649742992757199545130985704370140728426485713351641028303994576356653988088241823040496894307939105405999742615806976168221988463678888585067305945177133024149068159234794404499837035938994311272217024165127892040670553025600958546268722250786262522727427784192677431333415865286758762495725484789978032521293516107835553958016841599327908284617963852740962443749972101838044666633276449660620124554892401041264429181233128620196208181365184345319460615106637729830791243037338485411698083654182514237683322730729024484629560542297266971234892191214153697173201624764530708678177481267019920872893837303554531316609856724236112330081847603536545819998387308121509434023357454725736478323623865092724037204583451789857050127481483773438685912870309673910935472991683293423396789163468833041271343311080539351372015305410972243506236710122075036218343343410174281055267802384322593064245664949690494659110839886676315932510086296105375471038056341289024535852039575687596316649215915758539902554553312038659720471963943740828168713071259147690846968857780154715243862468610583760406582545950793136111232913365275919882238192084688412221504347034075002802497754076349341495440602980410709370949628853823884054613022952479600257690703431020659580529110230430242544505548003988117784442162485496220008670282120452122621663313882591910934408826787100452515337563651062867214967688731663868516642327476062359092983665105199043021331527425966945489505989249578494732202301857088723219053900946405814176579990661059729826635769816520789980751372594037036265126543981234648122828908329334315414222342223819336316481908610049089222302759339744226572646209783084636427506867900473258382308602134955572185786208431612590130463832525223570120084923512660085085983539686072195450407595278749945764962710740685830999422354176272282473754666279954133151794807486317321230617798127128735679105488223042582860514127484778054164507923863841361446526995332347415137128555513748197954177038861857688690692378673705157953517435916682523945627279933229899624108958452695064355062072746557937595666630265226642200979793582171863540594116251809212612652336788181878086418762871264324200325640881340558492456416027860796159144609083092838821678326135832608960480519316728070327619538878008556619364136269359258695572762279367041548556554057693298655421062567028992029183623947246647542055389669783933762835391784877605648933372941667387418111273334927404124599325885886233524941037855812112849494850259585893559571394010068411393906057551151489520423287845031922885337614345963943672051219642711119576828584010613257297553338547516823709685866145802359370234109341799615423740855060339292015943797497066196656390204682226617391704017749972178736360329566178412883754033464489603320963609620761958169921615338963547474676079349475146164810876937589401226836741218902279488378356141897371533046844665916683773428914220942172573309531870077259310707695814755321518901423063440751926026298069997660074420179078579610518408567565614315972474138172820606656792990525304211817837397527655031835491397074742783094117744267063347313263857890856298242312421997423455455376057075870330386899679822020388231464333321467667779099602163996837424987863604440458198690822507180335062085601393221483192622984097183297855781959860476557814772480462155515501847586373428165348391176490510711842603841579350596934191314059753675614825837107054197124101330616817457792900662341665987496022269080633220217116222970914805041046426407641210970383308770733980207595811569946757528740444664389420755925932992290792745488308516068499495671729890711037203321252205820543769085318919710594667774386091357939385203615055561606966561089726019773249531295050869170660448820767557556083253057712456076566990105373580888547302980421766690206920761455782121023757996755938232527451584039552018679745113305612190974373642695870804400248742226227995018326883626445355139529125313002442145233597444929066356446247365195557641273842487813273923513513301303739558129811521234773357722632178179317630587038452977383764039692908933510689482585006615128162767855586193016011730921151522768753129421059411625055697903004983828350408105547973799752867599487738322294675501913362167621181891266550557320951989747884642494526831587032034088420387197967408923047235745205734497301258471255441305931282258830819388826783733256684966707641912527938983052958791555071458722433931734287716164496079030989767082030846664215176174513224629929837229726043534187166002434578219223407800842890203449045562102293225238156196782589490810244245895067896025652941572574397004132090761185162290024791297528124887790715918463892537625540457780494776199399869639245346162544363774320738947652103307853322526874468284918341378747109649518724839642551668125293535442999708138317516655943368037318079538343343464191101100294124704418427314655544973014601605809773962467020140165229092566009681518599042491406525757950581779716815913825009269162904941925935343147556256033862027930627949728205904421043877314891580193417843509393927865943151001968474299358241799859369104936582075968998585245047683408269176450593545842544999918961744277922420022946236914804198780819711350547338555994140706107364369135112695384832720103431000943621161724358378236322264422526668487725404171824866390194610221724622784244464866082936251698755569678619805731960994609099960695518533524742983531786292281358324752103980542329302070265776087623837547439578336134156210963967636557860716190545724851492856497105704505787576855716186801927784097097386612148061421525958100602363909356315891924269826797807421199224410725396222135564218134712816873903584227243620298900641525336660743405259558891410938313581921558827577883548988560235605267156031182871638886466309718999199334293782471587668464830697202180606736957174163183047433997799621614528657556837081149401140048871537583278559340302208269342750553728729851409282410789785757157979371818454799988204590302128269197564805424151265500348720537576387611323783177974434522271657568982488178867178201798539389301120960744876703698201095192472264969970361757690422306742585000747879908534781320213773018053847251796776590820163450103188360407816537718952460376301103692701212907650304681936006441577252437132528683194864810243015070441219012330270027848427964160634510490945874075858918597449000771368735544417916552381489031907566168811123116823392765679633091610908579428817694317468512691117389814051531498194528884145563874722140480531972708014149573393765927795321335937248985236570145387621710883221735664955132090237679518769545356787434933505500316268702540990254431248293979602687370083280981999797931805099228711379761044342459644506335191367377223809117012864541143795563495337894816552452162091364090995561323436809027191117750802922545022403117621073802609177527936477924778356206417596808441185279833196537366983089685768347572245535603777732897045521759498750437649463060627367678613196632329457092823132801573115944996040734203277264072077377752645407490504331039720223810638768765084218660727037269635665925153491533333018605649937204721180831243612743592553125602923248809843615458142034617789738686797932955480687593014709374034801866055914941328259157083901087728686206499205709197163953412189057227683354103544858851223027668912087901630484787129752868175752294507274071058725401160594933267424410685930770611251974967696263353124403468497473719727734594410341626686417594349775358249806440910195297846801306133449587624734469293775717782616323641305319438489217765197374227642788266032086162474593757470214000903295408884393562801812349517741889891706147637075735434198846655822893648575400925300852108717317898661260550943998861506682336939153050241918574681699049958475748754239352073176808883364952703325865604245148295839893797224070271268637924249868072425570262477277381729904485724290215744481387682478131199977363245439948222784490653592493815500449296358614281558799937970530870714206157262551858240442920312067618665779880414139214678211668051757073103948980934554321983679692002867767870823205250434220002117313923211036750592296166051529933566372122007695149456026388547185297874217775495921834453916532085357817255744443668187019911002220025488699587589914320355037103336835083886010044632749508803802869817385499145424661638039738814940045501696451972736124018051934277970671818294150526658150487376955640670335614534870267266683483239296268304457761405941350790743503808073836566375433307885663119989812094041104656085658984082295615143110350360740478862560265580661363925027724072697952481235443145165600462855441901345667413769918036312973155449035368619224551043631049869859384066439225215922853440549700588540294829274953646745235228144418542094202270414404539667079777124154136474090762909568749906660203927985560474430617915927886730367429883902054244294482903943700955455131152942987446004710141380166384814675855703214154674843279545947401642693519787016621204271665017970644376158335268124107685026947414453565033020140051982687983366209524627909281810051301076877321027107991259771824200261146743831236821407426942847624336361933923056564116287023979492436858156456197767957306829163155723874836619770820105943455757053519075326049421695505645167056562967456399768615831910115027445097271232675692326324073871101284233502606543604360107510151153794062280498550763507008117619335513232630859979561689520587599602313383333605059880461770571936221360021642276185191697971339166672524556120594864374360407270530402934599683431531428612471640924440996438837984849678951999653039139382589151196526217889071270988678763858145841994029241978684980558257921797465766993746501455894449226309095683367431844314913762271908075072445345638443860634952515657656630887615545162246841378377895501907287136480668059165986577369680468573132419330002963842385127805359863721931250843908953536535810179676244436870562732784491637374900111779635084201172189698507654069980146092102906677532097008950475782886070941955979093171768922407935872134368142855678301172795344622399798650614803133276848090585898575916419359072372940971869301884367399994841697369690661165597636950738632905887072926055704310918265005288858058555924164778103655140369748825288962250607496237571793772756891018600131712651926189766910619349574997516561627435228300679331849382259863288740733587216990462994106750312416322834846598050870597714849132829675483041981203744914006398203772922401965485348958698217713631724511314463899387241824684980538996468999478311863197084773745137543904163840485247378532984155227975662398670796450763201228314830650862231495436317043247201289793812253748613218752781885747795230714817676720438740792106871506013440193728705121756683280052128450509402596108329107327537011026988496380446024684685305821447435984127510501565466880238870493842530379748903040714590132944819895213008486619774173634347425661327130359868315765104675111192511476303208126720535175999328365818921979016619887670966327042489657851069860572087902619346957222137981889229386450260758171519730617587725499214921775685455834076717026779438427344377652093094606690632936481321432388451698357256744389260522040435740071294278827739311544375701928906837279003909993908276944377771457334367497831934305778442690617362139329020422323218982843726448400106119116206887688148658894629269056132633159606674270832519084881099018777956124157053306422476944045679766925402852348166959196716293203497590894055524455657764297451817910456764480812946068563468458438317125831511673279330660806795491090714264363183978629740283775225071540659497726711229829422052120907906424026067128004537451850258250381844885674526525853189108297270261758578665752670691003222366208478362580734680554455623768965021770483268484446295241387554482854099639392783362688685178918467702535814599842217965949753768312337931868873432675891631894758947693584241186120811618516530782562563610035106627206706008273866459994362800337338228302257682672280009544635865917602738606774931775965880996033087314893401567906380136710498005151905846789966984912499577012036643330485749179842292256087839349594647841109743755640756525489474244714866846472891313580836878407356756642038980430901920951567182963110202653218383665060606426424482925584769995427074369927471595058062418999519314590099347827736169945898680419735834331554376978400467642563042175211017189260173686697791209028599975138969037588619768312652372156571880329933702920594028125593883013070700304451253824479560704725033965767916278284997610463919615460564482267583639625344615228219460795493560606663407143920366622868786604569195255092570625762195731734805265209846630711057862710140023104591276653289080206473121317094247961409031021247012380441157564662011216985206140997023130641933606227064548481861030650589373007698220877050027015129494000345211724013694843071762119189530747286832980494194830727186792382775237312592783206610862002911199546649513490877808270233151525262469426289850634186863428744800501085832260861978726841886426755072797288811663516439077069160418185476226031721165603005756584039927770214443275470773229717619102597332335819189841789578873103927101346085886313860006312745333581823773594715514436766627162041200733180145721282030251357319564865811604135784532787574111367346341074771651438953736691517869806708374802022934971884399917368306577397237596686027776584528543002491382967335753332771620715577767717544796753722283431320659741056760226040593984930761710186297077122785476218400999716562856623103019287101388922841352629854993292614693155913554714155461138262174534477862138962392522518681390208680071861950135566035871805931361046034492717749769320786273525990677405337910255359047353877418360596826963423903701079425651533338715620835648808249827176124579663675195129549916885850037599879279133245212388424229162222971419888278873102679555923831799808590050555714831509142064952217490723795469906066707095176452529956005205811292223751092037449546917584401564864269241685345035810743546656699543869055430018437368702099845150564272619041950046833785484073403139671912521375637897926692910705983500136904871290611769840794048405278331950137495312884416724562545307625107442980177708861309064360071123935396775236960464150899601162025364987453916581201110168083425646775936657083373514156956482895811883317274272405247205283687694731972131901984586666360594771367045253293101733802229451288673861804634359346522998462952153775249270854439944744553882510236413833279944952480904921460339621339060568111275509679782465134571780973562153087063737562593752964529000305066135954592402962609779005393049948331293934508763043609678768993724677362356367385859692290005681721359754016360042668862868804562444446171898401152140581145340581842602259158812642625054925849800065995154258077965205377793387673143550979108316902993699640308873608441462975325355436918895702395394358460558033768863037335539585993566274594485564653025650338553740542074520788850917343005375892196797883079817895645784027197613274716118930570479386255643326396683766149529636150551411644397286420823709024765741875564278907450520654049125286146126944089269763553596470670684291041208676807553893062876876447905592906898302296275730724901269486292186534555383666099514662884943680867618862340464589566792256380500714203009822264317482970397192707574638752230997428001684764037975832180513951528522128111308270884786728177940642851125553572812295451057055736194463427595540005134080528437739114220500371277253319747246719642482219318962278962381710065816648631124012868274422423740104986577560759135479873648623471969604171631062391910732856371813627820075957573542974393162600984936565684977026808903433857492831854190430519028123806261977529009595530218643714978413604702732577274424751951243335609926298727711011769080840576496403292252096386796875878839547805845390305795613078217778023933241727854007411918907836780183199818464587276137745966882985112075926670449801291997122263092963768194248306670456723899949911257153431795659604940675448253960325629989998864948042303268538329758684332705330855121501550638300807915436291696953221019021597224460814681410109736533413148604528544288712746121349693061459658940575818368776044643204955348625611890403885036493526424768073422752319611336406352287705774845276737798933074693679417162359443435722698681843517193638939607473338801431791460423385134271365767980158357437948037446447636006705348069605297670432405881825215154303100437294032981204927431942584143274027231125559528263251526564045631545922922983662597699338238254760552895546824990189913558837784642232401550369280560550094342445749532687548257038038089135661851931451636034141973761545455661693074853467935245257898705099107927765111310532028515482316965477832784988008132008824516205185584934259091974747637774883611622680646055525273874817326420359797106643505926742435581773016578666247165153551403543416358294114658400996011692929056154213299604422382992140928517066934168783119202092196070330773066150072427617015868789432078116908602856542133328470413130031520858371069979702258586031227806145564649994917960982918775564321818957961422162452676073567020032985702600249708892093914296780984745275966956961771467198983190911169225195343925846386682469600347024545277897663088474119395504900026144576305896856193216876950415928525763973905889557064105173908140491753213560023051868132161864105194416347288368260408732840641995509138766248683041603333856696792951276886492199623956841306842143366602191081223071302036739697141246022262360814031425860468285541595658317016403758011790865842809940723320962600825731651493706281239502582887210747813489859097775700050646547294361739439382194669540381511400726639782369963142284949965355812540662033705087109688832808090531770239357972335562436929186103984200683116935679176611799677523616918553203164695969639021509000936864165069351131341771402606086997571599835307395578870874270055178616973414322718117769975413509833404415687974315345599671725227559551309085439112750481058852030177001746883622423922226445381843336037916762804320890280855409354689973753801461711412126512917278001226965594213050550069340624086222428318579295845539384666402025052477593715974305600834188382275546659868302062827882542332736000580981865096066548174866536557131585334752001056524544653467907085221907808464168120443015629773831467991359738934936698498074100442989282323929569705167287602915108861459619963727615456636995012394082710527925531785578512545254891290498590077399572306962867045937194292209303741531216188969335248428583649640659820077777570912400181918432351643686324061619735012105157920118168401224606050639000988804178995811055890125098260982117736315955137118700260459220383325472771166673267036615207370625814519465635555638983365605642957135404999119005555197315552549635520952993987376101371573500585302617667027754460385119158764412809256522824586554456992588777919870553488895577210786881598640765332272667273910807683356336818488719357675714374946788013842340949610348868643721866826434859891074840159672213896281791407789775845492069987459396392381352678881652905266587723778151815598709673242208809031697982433958472708516844946716557712938264759001897485835580312842251676145814577244045534227625313213447660747551036851251948323170966024875024805894182831443604230452751893227393580822531198171064716026996336624505736375595925071765630768381542458356836429144852729058040045593294545814685660332591622928771980479457070798934736952375542231996683025499455157937917091137018773407008045662328349195402538285221548276199510752960781322041536078016639112450673395254865210698012131669934779084082307956823506976055666124374323771870025596530861686110957795484926100577099006403063973465188397354548689760693015427519126272782471228614255811483485168494860974735039290718158453325291561142227047698644139894311623958576528961212942094186356186737836489971591214105521552942064269980191500894136378041483735115112437790558664762531054154813514741312512451178545265006083209955874831472900781161323199180429288703400707001551997588975644356025905098122138239552861096847971814523645399036381603615798969978235399710089926842002007660190387865136082624849788444964271405382087871090130891651556179167046190381631227914175684971976363715412546899833222066463076954127600104604132137501259560369922713297051120284975249272468081162936302833743904102200417192635549993316205800713000307272918259417960807355898066702121578389166329593936372192011367004392459491843973973555369914619185042891654987587248480402853946718676117916894199230968829703540114545546846272296354216377691556621464698535555977265186080664400295677980943419596411439484447927596495319273720622760071517740413680360572612602267910449058336292428955997920252405868670750096466972770408398478727171846442675723537722225955035399372642305353910759799961306669112829479187384841418450264562265784683017572154448737114048536568099503351799351167314082821963566119589848342727829443572428155606470100555852760707525231399961233748838605909347784634689003099520353010319888185020702697557514321502905878231191465851411720917927128138775107593252436163543546347886318167632654001545971977707328930383616511565856773727216667020441197285721331070507116225069856334716926296138735240357328662804780762632160834844019965397238179303242053333186014071294693391596786839533823107455254119203132823334750936175064523303791912922972935161244609677826905855139277745959088594499235974712875217652855725073526886194101946130305547000920653906981146163659289281259048737626410357772632268916429147965421727983015669841547204687759270329255194903497618761180314840859679107970286603506878908519135034185854541880570323712094069486799703394741421873921704174003676323703122971843699966891609353761727011522722523764752193829316371931234346522580683032606948936694773629390881956347603277150698185623055568864090286642496771599854982108696908097932986813388020638621174210304968420277832962131896284271927671773085805759346129190845144304777715476939569057072879935532062173386926754078247171042594420162420275701780423600173970420115195860414895466924066292229368419206042017524535890189885391655191543736432011580239868672116123304133345201461658413011593623477281654474698667793434098723086116749691478854365499617621554018829614495785050824648921084908342042784511846017516310212964703718007030266918825275902858907390286667783479510625439248955479032471611050002514483653918798982680278710645044086557941176534899052381702024753594650415190670675575836137084320203262657618547112334268423485517515785379288482971252579147547994181455288500685007268028471518789724239838326504842219540889756255646577666139900513272412711179073076988101033499983829159610615225502864261486237584526794501064416483087369069770279205232123743191965992279159483633197642275805436830913345870404141463180199014393759528015638436849925199770434141971517707160041377619365857780890442784499853034846078705219020238139947191419915460032808884707944612512715776733906420764963756193482206363977223156099034071813306048165150489021557627541883334835249081947011136542661544176138124528501157164772592733096648630237514613469428055960183567546116402761159710655450931874194771856001931875062548802828677415865460327046041390835479384533365406050587088169240284691042199649425029100169914314547115878192124754118493731290224372313301205813244291266219288407838674108792744518774911074428763705666843062497972302135219168386901619949772332140717892029529594709031885797727251113670493243010737839285343612807781655915089930837548428560810933129644031530036944596502601235615233421199475342891193009798258495456249338257504704065169551708648200904866795747500385408848521990016510510773764574600256986820289411046712499843666709776894348652768606646123940705178489954223483819837735753953006639578453744558243950840712025313458685611189576504674814416909739540920354523071671554899411368716669641210974726627901133140848332142392246810646253521058912008730231348006763727094620502024102802243265651463390055506325489228815125194929963389309430053803925617875733716999221616995377749947773702345698479195486513651692173689675991433090323147388284307165188614388687971899002017431243194749803729227733347537183704927401879535167463133401989017746113309301082534552887266097620590309563147019749784142331503865011679670203294448734903784695096750930035408893341149738265734466045612197236561346229530034348568381082988969059008986353343651253167265467255602478978620243508351916836234206419057391877677104784228250495188526773592528754733893249478832211647367288437476657840399515035171077108127682082376504452858729571237749791547653033942500099837640548797762742925138677074597039175073979370768092040727594011396809104498788607097443657548076428512501186981364122863053763310652976907671593376826240810003223365598277814479499930889364672922246774798651738141248891110273902124721788692182896918179226341642434407267528684381824043187595837218061997004361385675315860013707864847389896131026114108521000487235827200138139495676774461077092298042019786248088981851217431779236156794949791478921122922558531768242168498511562914608211363940512860052501335826018888719850950487152195831939266035733270501792307852184182793460622310010395939974947001433565467253865435809157397159855008224452780781065471334995816259828440506373361706590080283840949111676964272457517857196299272574460071876776837390222148613107018938887355318510882225106578425704877365733309713212181185314145327966786767325708869741868672079722269344985407622645294314322791120243682556636549851560197803003564540973190481701430869614802508751866285560972377554797069929341784035943207128810748971384117962467539716717864675694453508191356048288589535790481595722093994029408401290188529698582977027375536208339299906360503411962419609109046777676762246202874957377740416950759671588884777046216312371904331405923663410347329032354296120471059279894215722528975883243928722326361451878536610710790014224382142262392426414054037293230362665418510424560669515114693925760695800353193381287281115350484313108613861281735974675110065778135011048333255409786891516302841874877695651215748950485911075388394882918849576362717919380740070636363163497701368018042921875110462658391517916354122298454282482753189374489529403083997660291807395652013102088951444325744214414143582704609895159848010330954956612471119258139000470494801752601818931326958467963005479021898977386342508407501003488405992871900629394940020402330365681069775520924694765320624877735905344140538635030887806994637871832380132797052266242948634082693164139705214028272903167644838487431158613705557084212248230389985276428572903009778385908253010661353427311766271636990260611070035757155388748492423777860412059192050060411731614551771817013682588564751005746260262909141668281825731686886666993016489006393875302638310508208874552647085488415541424812749018283300742084861071668178102008723703912562132045728234517641275380548768872390114211897527381634073743749966808095476160548062367135287523248590014251577196509684783139257695467495073099268133057441654792126471654034510837074446131318573865402027176215291270627713527793108863793420209227010390596539616597313100592262482416872781689275248028956717041010831799963150060183492648100939984047145387624687429412371986395907284397832115148622197431193134048710179836195410445953412319658959746203743199907114277505483782715532900397320816168873003540724319681323806033510183981092962372916064337760304251462667133501412482423699393081764694684959892458452420711477102243938007250795149781490929155816181339026264324636765611567422583977304357090475040327958184459847245384818804750997401200715564004252339606837583636800850890490997507850872772218498220435670885507286346773183422411264302276721577677865084088126225897178434689224642968753212740552435036162559097760895687896732030993247779830461616759130382629772659606238049501192088994328278938521859049298862091765145684335132280727259461144617180633294734339700343221217619148449419230105314578792620166696008229340603470493789583290419486648033912721648290688495756713204521700931440911696989252692377847537475761858538962964182525330840882297976610148257571143498185717759003324301860557570158026813920977514572606939041722813479984397968040704780021063834796559738516889438628320506882247770163345553763021670058719343857461130794318455179211971327621542430873400365060146902827093920715807475318455813518828490476872002169911633088606498862155195781107917113903278206881405323116858447456611470644367991180840663822599065521735677197757502844927611813523766672361645294592090880530078456282337414812131084380984796239029367343255849460784817242938498075646531934824676313153205764739884190489772835551598591924543633680097645004186848945985659671552565153207533837391926752284777050827659272494222345441604324038732001214259643740219895971901193820547696696415992234048913744034358583284112071312509829416018726227724407432048918075500509415565359569568761631653112545841781590063552050211894584609184493585962245374272007289487025757264673898799840177784685809629325075434202039096548493295535141307581008724916016298572709488823369888292771927483128550716283142820786603741238547156405606494407615310141356514701060764674607365135358569331340438068971244579316065264391549958924734501963620096123939405058528256094242401165372036369453104928629075429188445848002192001445591066925707544345331648845762791082720600121125763091533109511864442554677737075834801841983832798987309839238120735753659773455586820492596555746563663193176462513122221417284760510145519489259043854214281474884048849575318843367670112147124635345882204207535463377076721694262175335127001541305514065049571799034784111242982322486308424998427799805850911181927901961254122378193605190996447525393890318090431861748478639076818433150698761895644152104090222503263940932866750272780603316738127755809100251536756684536409562638754117129053426208126820224840726638727596299948186070963069512481945606121139255191501941860584307853426647423011816748957734247001578108894658329175404811467227781684648064525197170509254943866026031807886751032725522489639282523408582641338007654043791009011771945379116685148230392908401001862164665882561637383242105820202784542769804236877137934405245292502803900001289985566271091246308384439777264678680016831742327775569031126437100244588414241239290225730213512013613961255941354681359403505532642822420462321938470351452127231865406006148963610492892658469867989501914250557280451224141617810504717659254276938499689966138073481906186853139768627625842021531556871629870003696439565702508254315568900875437293640241935475186659850914087936102130135027068772748127624959188299744601304710705687715798020206715313246267633486466065557298541597586281091917475988004555280471367320666411891997246560971613050033631358686293094650632148157931422670684298413118015881514787724996308378775433889333997226254584612473748106527365120157164835068608096983315089802979793721482677092295963812016222970273965363802477416360309073061329132247044290243965491700559108661751090513914249956833207729631332536427974781517378235226490837897792022055741607899457432941778222403053168587842449512428749361380414220930540712811670058198148052719275179404841029034133737815357789363441281873237418225735123848141484071400990219490796209043232349131469115556920265629864714755791624973189090921698887570906558284866579555862634771285709089063469997686105016200740458930632070835644937109608807367351441076330513352815159674412967579990942282516423367898888055552350859323211129858572500939897163936239180481864771893043279644519316152462529592440743402800375555220757687291775202418197929282027170940512772475905669531297298656301527074322934314932270221091525873807285064217555127449809987018910492588974754074626677990646031832142431640318509122225478775537524947926624948355816898611608676349266656978480975734658068056961967866624368486161860785071841715484385870055367641364943990074073818382451711385349872993562828974821083891519326522289135597871254950743748178315921792590645528008240121844692276768188301273749795662172618498407567036203090568886706898349703596843970554969995582273427728736545015982829336963902967030179993325790582710671502291913795612624989342524206131907259552340076296306799576014201523213709082034450426348744166005325650325794799811566039111973166593452962519925584289531803215463731467852368074041356141111108453897382694365837833165384641653790123615287692780463857651921701810302882207069136854325513689481499003660212102080606037807183771867292614773099284928234128511946829250624442898508574766299589469572130890368941734249317968118440100526570973748998397391068089157732054881689699329519986176517680279958794386388276963321417109951000317942236091153974772458156266630789188336701373005760466341943057334051513117253716000139182273264758114125533859359709214446165361232141732798375210295585063205549374840464014766518786588592920547364377623005001765807073364182478036119941491068227406185788394391311289749108883426312483004448863172621510892206867210616051056139349681323607979564349677727607278680639196372837618556647601985390643391819435865924362328705936341146843036223036159220381104299230234357429738782807047989685583666870740801836601802629877790253684856974563533916513273388141033858211571309077356247400671061136008633928633719120744241090266080394095200125595123339282216637901404885771899418296982844551449083966347911493062754891375988417465986640148898435947928964375913407494005316444045733809038532445008683492050063792084868314695616887215138444373871919038877814532710060077056123798928942213537822147689095465177873994272073095273500157159928780814745169778536749158335215765785948584152429350673799467488250786853819646872424587829761106587307254692346498804990608913882914127860757809618749240022550516356075105752850741750537562431180003920877825174388753922126406673433959289755046308934341629800295271330765496694489146594342390856019392317955495580346850146552460669037861970868918907272853531284053341696856863310551779532190555233107443114095520548861899112053498940704353214503635488442055168928366692266262392322143748139935642589742556390457019706108255324638428856687125141849067850904281924071791275248151092200200272679585874653468636229989956632038622230471017647664455393338426242940404177285053656134948460848108108121895089828946454400183035135920149990134445498447967111680306893915036581904118350702292656380112343527434269377167815884082566417626902485705836575908268466501721938586964418671722398611830858715978433150729971359712897282652992097549779068899673574572189650366013960570179985525070055805610533509208322745950752698753330758957071183089665388755376079781176810791337110406332559197758273131757609718287829092110294451368607314854168796409984281608733610227718910546988714534331369209014056206786632754006163903830202492994545569465314542204705376060932132117333522739557290219095897349559065632949280662414465647038249007958253247324551641964603012986321767420255251099178454641322943551125124282445215499293603836900919416706922141601262980767075705630604890315630546509908501535823707897444442753550403079592981126260684434531667810306708571290652463445965110996417533416830745341825620197527234667215189108877691926180370151310954970601327258191836635637767351998550900339724900207984826511482015255623936570080795551811343233375864806963118725327153926897418467800430940417628887651933777200698434083770443929915391890376630453564877064206881098363586540288864192339769457667875758277674247844849016351261369878006902356442079150651265637653204514785396788387113686927372282590755647989565761138460900028773114853029964523706920809810269823279054710934740304371059943960847872768807674635107404384940909589080062545194485355431042224764124261762571576517825565217773158659599856159444035929689887044718070271399508662779899332914663473703660365127538696053029954072427747465805660711549352932752010273211987873092303159169420267121910540282758122582095773530379618707130592585905947333987428327466628915164823226918635607301804925012934683888685340512195202740735180370457289032549401052062082096414052410814603997661311493576511070616816116010056605390974611186329334623946815685109237267934907011829501793887895937381316608386218919188959586196999796405232813168702675842496467515245872588781341524533784137218441096561171839468781854983945136047746517544984501990575258745812237636964518447110007342411938210820509911704388455357842425560035873171448357731802766909420836483733920390757665025491184290862649019018352906113224806514365634490022663093695859018983473838597695705685740981948426371410193311132178094737721546786397623595360233615748017066903460339228337036476228739106513645394551361501048597423641617767099139843262518446777629687043967811755373259925059572709982700624005691468373251668170539139766556473737116244841470408676362473577005659170640447329278760611121739248719346923088965502025235933258311699533378768229059151832945258903775937251297924446819233041222315810730189325221398668130151887919382352467531266667683874591319798731092721123936217394973756503101093056712166067321604724752887958316752430550393807603129720275947698155946353667023626961510594273991425488049599139284361045422139705172070373127825236474164170529917224905135532704898247589632103001744058279132283437562647586430179304765065854839673804093281191821642386651285838103825902286673925576770421381630167672387277739969094864466480775633461051134713831359197926261681475616665591764958673991777964696222138974391666288483729899002661364877254015742887077101658148212078836930584664526886359775642933419042646813307207364323698133626721104631701954363291899795758167965576044198189442422784500574535607981563278817228675445197554697821489495227871416303484450882296681180943008364868697217700586899170958572947711573015256133859025338897835264414349805046292479982332189571518576730994436991730045371703390910054384232376992579965429876848308566300244560731754051208281458855664397625860262314464720199639263538764258251500118189177878157092068931104581998387690794825983895715470927576414975286171548062159307310289801086401279042741101761293423554023943121385967782419552168795628033915543149640905487404105209742297021786319298670800382390827780092920415577864402237000858325949870293227157577635457247206531441706665082256262087375536713597614303452660126957821730432127917597027589069756426410893492545085155009248710645457897556670547462998979570990240925449704575745312065540806627505853402863865106729992079725286828132961410671642007897242321286030572345032233113984792231201358716807429234348613356486438275473550164679450017329723398136347169690398883422558051675509411928345847378427484518796080173587451335460001438741357346725923359090202772363935267103422431946903930878681278681684621781046663791842471560308185056610381102781728571748084992380474753468396275714406924707149097417476531476400892446600320809023675750592684592436195327695168422040970934611158597675707025608585606397868398521858769383311282468183831918614573567719903999648866945603446569758390102994892418013951486302300334715604021117384887830108535185318490599221093733519971810356508131153928465710565401732244182148767048957949851304221596171835301930530914390946436976109940172813021615177908113371575498363689563841694318314637021776948539962026632355374055749156267977006294522652243827738961109963982818420338491121018876834819805384010252855847311717876962023377517146148442811702030828438388312109533984086223863131052623335169876747566232456938157320077782209963729901740377769871853266274900587438627268401035318247985082763443722428296159985727712774353429886132981092999399219840025585725937726135107659849189310245063277624329800697574779260781449917096744226821462911026554733989755107875391700799965255415116117457921548616019718149637759800237726390484128632267332977818078102817246846694800347599539641653039675554014049351433637582502972341833665744506612439906616965146471082789503839929723405452290168128165025592540481633146417585939579186728509089844941578704655028919601327726032903069047686222667899959990900327693703123423608748012634277030802739272378547307326098475729330671057994796656878976974014796666190338672345530928403897321769577929891522612831309430807552968198790332879331153416779326330758718403286489013480256061055584578426960550337339433955270229705807599704385297863404509549695275522566008846043266443843137461474334830898726305117191505993247985976893831931678527451683538766442716612810516439559041149695339189894628103065862761226447978746283039671390260061073617411429110150557093378566824885274636854985850231141545360422665994266318789491170032924399401657059601894050437336756386572699155861754549159058202204353814850533201741807079576397135273169488928886912525238716963482211434840870342854697511653118689831739065500066802729456407856472420938458605309425969068606552206112600709938874914315166182027323005839880598439494267596350551264257135401772882134468306692987551871995686831471943072563093539018000422798041178492252382101433281723404933275570111215441763158517694424019134997942157409974825025213138269376050272196775772480090857057006178578575359333781904145714572917386408462402121637460542235484138165872494691575323879926182978293586757958719283966316423046059030608010948966009731715761615195479549386262584976256384038952463938971480615466989432781516863152219862860207559423209275240498386998901949568402161537939048348617464537333272538460743727886095393664420304744061677114253275586166996287493393763147489829875524242938901751008542917623968276339629207642612400174493299229861630650762661766051412214559169181933039808121120490068628118061309290219794476315617703990019425615612744062187610403511515400130480653041348923677670410753592318433938424527713165702753036878505924282107408888426231253624299135029114787995058209956696362951032876450624752327600907778074077149261577344293892094389139046120451624652922041937969225142917457269601454909838148391883936813988790756394181774785850633456298987259664153861299585270061283718484582162826132098189793634899845854530347483231298523921127234623666549098944795126080780020433099203500315428196313080605095183618407824802561456952281825240973268143933737016570511253286282003070589350292603465502350863226210664838171850257612167217383555056586578772740414461893855633068200026747781460829715902449781359889270618098847450067965964749962355786490634702734047729134599244490536186721829218067679949022094425892951828085961308232432716299265129824840441604753473203257033672188193450073728454425725131319133579960830057454327093440451633585216685910484157248758288178590533503427519894650295905520750317941940548468441584988719772140666985068843105499201440068516161680619387474754223108005814688741436843624140773211069443968449724977339306594889237016867001461374501962211018158379178310198420379628006877123943816641962750944130522770930936314544197434320732057737788060316184207262310986382962104561297129078103056817412705279975251217314700869380099183706802449652842146239097272096116169896334108919591162886666015916232132524021126291782070675272480128223568616112887738944908414966999535085062653308028610922176547690413186675271092957786723914449817372373170355452440929040588935194654709919249333077115585199052802720673353269317981559187658095612607221875678869707286090060851595924291741071462103799779377276312532455569213886189125478555830691083286517750791716556269953391450116660116568229982595984515235637316177521464583613833957127708924460064806628309464222885702874080082154773853473084283482552381818186798871324385660005518040998006047793625122892991944921213667362534675630020448808145273103802196124118589199412294599237587849996819068889107002722021959903302085848876014701475613766270094167519528318424947192820199242539387694594116714282978062717407702958890276073454279566020183231721641450392658114079994430892233056232817431347364356539691952566558576904693859127760611121096155988571070192834235021103348814204611391182822659832096105368114420713359983480190036171769783920620037305806129956190126911723724356920623468570399588985137860215167890608980907945020655419133616177170884880121638771073132916561325653470094701650017967944685574347380298321272927716252084752863108537661872896711583963734124549789434751945417775112933751218103360066570898253630135205195116059533299677379951278958980064109675563269299593075184726485526779586490347382918313783759485190686084279676558195695244765230775124526703664523928631158818862485968881600605525187292189638544362396736928627193379758297164206368137834111641662497748610158536429082180938870924503372174557369989202783309387786280701763169945142110042508728079903788349518029899789029760714236292717213199244159714673286897090276159324759911868415164640310114474734937763544751908134009139455376341607054739254087449158842155155079584095841678685974188987083196684486018719999742277324334874843926179568286332031760448707860623825306793739507319114299567964781124745768396282880793830150288311951377131201240099491894819430682943161872295207131776969614198350125339161050205759340526734616815274947487700709967939664633801631944997915230715129755603631509525788688677958044353040207637987339468932039349994897876785393354117713377299415094667347764070053106614412134546991347923716642072054039843529556494906500131956920349408329536136602450060616129025870686461245148760438346520936211625304703481485497810034077575736470445440223899424895992254350145871541915187584837008191127957103799190098347519298137174174958643969314110916206755769029675184100287105164275022943434340026498753936589860508834183585773096102425901256213557098628656405232854109571771804903195862218168759843025325186832705892722768678901413686946318109629997050676754667756819614345700377845394527710307181462715610797087348884757376386344282937337168613248070078465303117591902743320477736242259035392357571744182839675567423572870945181438062599609315186788721033617638960610885647470206382001309790353560545163378457537796633227567642090638253319833525897108188063787017814437596488329853250602913107543320833462612081210667944785998349831456255663703191316550350817095925630264072863263844686048334566422266916590508644273165252534304545059972999106058805412415315335607238619501474678636186524136411626145851513036798772520870639562009101317066105453274784925923222803669456362421049823244940488052767506272539335889793815864737327508234128269585825910463533210485494767375936673148762619029885409516421213260479376822692899473908216667197706500246352775687350825388026150893041209258495815189729262332507127065067375299311612737719687982301194733024617510021775375950985463794495960747801803827367005603978410286631098054301313908905874976113601477675278623595541655089533846925323134210450713596053610070584727941378574788110772669220457404162416223960375780393130427424893767556169959607535514557554333575570872805922176478232571604336389019623174712079585660656105101018322501258637744532250884904538671900499119589496407234644102544915604884002738681197837497504574351533649789931884863194366716745477672634827304870213809493551302058624616372957454261366497897863373675442241441933070838116438132489379062939238659448059190517023276742014808576575893698330187203608353216972863228224711359138598326692938851501304455132993312789700203933904204885836309747778190898778160256220262632023473406588203759120986679913143255853497504425651525052324614146751201302900957913650331065693035813181312166923745571928654853720658612042921132576600710900571259723113988637900568916727958948761557376697109685326313396358126860554791654090869579901646523225409174893016176850209198056057984321460439442215053031818299546223509893037102480679112097584407324259739769075857487872054336339476917245754489364317492282683449448833713539103488197463605772090733564739441386957384062602317940715227000109354221073028288395678376136887525982069626680750493874950572847773812095600403080358434083615863113697334881720691956478354114890150089642885035903886773157595969864611291286349305754405965176032616149381000891374591276726979883839673458898970134540463840473142340524125612612538836155950789945336466633797472359969693299053076790610565274974918742128790666261164481085969606106330763839180418657907039836335782896498960037412646896832090201528049228158984370606892087272825738430450883728328673133785677251361949562452839296634995450712820814841225339790469050569061548707414162259298422379230854134125898367876223605684592111637627777435884790559661552078038262870152922768063944417284410921251188989872483635264241190942976765426228591762828313255968323782869957623519371341932852606441158141527640761565543668993288660347883895975249479107692769993755108683064100480857494913194069795388529565545517172069280512330627290915846137210529290744272286605255919233234031298741613523507824285552007892891887878288688220554928004440119965513005517950611410373768304604644270486689103782441868263257630414756753165395397557581367492807055583595053047862161334323662677573776477773863093266204620882414904249999398031319894910237238171058673441999182787069850850101205021504289703482059337729181035002279000997920300232299046910854091572858455101918135830242681291139641288110957236874801623499555614263819947639025361309375282495059388258354990924497931233424750652154303368414409118939607796750804190234258852787042758512644357175941896183962048615390045295209438815552901227519546797211541939401464568152173309117514493355572045202976124943346669077399067386960631865571982838625114452618912856460417256529095820994340035438289473729657250959857878721108747122576966611273764432719937697401781480919748429822809790683200386789676493072615104165716240150771026981648914327201250436457942089681503993467782941066528618172745276394302770244839079739852190525247255716936144247955510349807110903818638720076291764658104867243527756250335593482008493299341338165447668041794775130678462761563948136387532821243936047348973271545840085290955694357037743455823423496771094053749626178782181819667012578398604445056384072856297047603891636434175570630072993783779585034090793018214739917432692951071158658781159054638907162025855436697349855755681038325191139135152283386060119561183616112079184068888931866777723862210436684411084322293635156677855413467456358120257217012778585543330885377295777444232903064744275209779637814991066380782527856008412146608904373793136347906572325086861208673487923126192310958084099888081319249233547037757928609452943191662630128963902896271573031191350659850139876834230315361347196510089873108110679215814824647136518631188362872742727710977061190615200614864693516271218017120233367165872289259617914203892073421171143634382051007808696996535648824590362727952210795853354884690508457955238006764311797203104548282571498158330785908449122246655372253415560531815760832056605604399130352271471184972572273522152824403054582619618316226949042106125557953177559740619371470105381347453070967665821555473964225750259951533734658961423517862581715993322803297462243001757767877679444460169503243599546794787880150275145477203569217720845333715044205100630700005652972481865697028773326480761186546754105773687921242929415619951772893267229525737600728569659260037894615257520057523281996590900605687423662041766969576567435255194351104197271781985386051381250070825550036843355323500517055448750724746351260541208099511741203287565512260728100157705270965251764321837458937249991308933215476495898749190840966012572267953952984462048991607936031220355487805365427037241615757565849578694752976595689230640449822621804451991467071081604545170696847150621206803908889807146103780846061743513179127143369385253153628942176189977963556886709242284697088443979948651640080124297270466816109239638127483804596746683475817416945438820366704308715346567333334632574127433445756583516588059035817582624538744896475139466585499985268912165106007739016794981780905291436854075701194794419831118275408655287238021720587360867489067228459365943631829781785067634004609028407161813160532752821163406998882357288491249333933278636428688451997573423608366347619190014323392746158787841921999407041717460336088188972826967062076004060517594697062535378186088690756171808689291565045958388152610665311547355839555398387862660337126060619928745874925856014939906944327751372033451243411510973699218624738845662266723748983169885958696084699075106220806826418999708163813014456637901875988280794198604067172801303072770767953765958129457888765852960701084355397948389598398747538140154107958716881573531651605699975513153292599361262477066451893825672424879815048500559599554346627446615375274406880150112257309570378632754708894187919748494788300474585805077107673771798902889335260307290299829481638546997809735168041643028518589559621664126115892921888180022723986562063884385918827042266781091297745036346647806397342131716790959717622525182040356828708713438824168013567489083140258424060418127148091389188232857280923403882345031168588784900167383809007794130283021741794055887588776470002273315234392800899335963019595565895278483604571442422989320292655790514861519248387149699904243751352938675447343984808250695672458417880030197839805009954164147041989804903914608243725712017942032863347583619711342356487064287621320778832601591267138763094172160394121678298443706575010683268091623231564518916645499119828350315252225968665109209140415088523275214796805047814673227224783228005241681710769512424151608605857090964629406713172404553572644521302988812248271299275556188864457836844341418021798130864886368002140544962544742638173566333704359987127555211026885858378505199923943118751437175743885526318435828397722942899152036015532636842341077882772726964658212046387867037034827581088836042877457474299298573158353607797334049889676535335833418690383279246888442888542837704400386490063059413098566715042528144953885344253931035004730580499216953863370643558071123611751414012224824667156097544748543791985451280744776020510253272104063557766724880912383825773347885236622944804336800248308973482309136459885492554728779367026246596820391401445325213254272778882929717479298399611641833667678757993831562994717696058431834573697917628672461603572067521854213102705834170275064568152156078260632736387664414822627243448403782391321400843006372250738966446000624683645539662122596440224100796782494028597887592717940460093490203148752343492740221342087158649145794047459135995743132706396336631931644132064307046824717422994004348965819826400391532837892998145608526281567462214794335267164482636081804886995652017910206901145305334105534380550046445249744400342607750507081224691118407965262508644067743290978648388759774602567061732788481152504034459001434032734081651375520166811212353420385864795318773566666989427372010316821113000013725346054367161310815985654542442157944794251285061811119697214360445160935568456315010819748118055112563551547981142433674623302020634643900292228585430798148311254866655969356425164805725853313400132649917170775588732507062348910169739065686790820334624375359725166173536928746308749391684203866458062613895367521554941748516310684108996667950293566882071740252403758795628331588300024632075553826815648566687790200322900453087496192704043002172963143867151293314281505973333398941938861337039999418997445260499728750115662189368825802614956029866883215359652186389105206013212560336095525224542592531994163520907148422552533219142584093842315208826501346769110431970509762312264749024537474804096226630616423518016306654486033449031280955840643924953459558616063187923335954246596342933440233386469186913684755984547639336646995160513940581951101800436640511155138695204688528284508768577465121964941436363061289973089080675040327743490437842368575373854620963121268799485890836305541901957075617249844173413546122021663991436662290125066219242974221576981841590717077234793493559455601747722653944715544025493439830629487815521986329155091472376573019343572028790590231374696001668626653771897323699245295478764522065651082243560770130545439007976451802689340340526836914864684935447877665019533942807940042424648664569147653365288652449017279683445450713231232983180044242994559406627256723639882825498671287925036771592735023736372099057555232390877586600434212937619574737470694386632123934673156174797541202788966294435005279961678138615203313845834507670176756188212092570019351407346432831045926768365439653765784667137024146169728772181747034679920845124971680304722766015558137627552801292275680076065699769259857778898312518627251053954756093630725205948599129172653260617580890558975485172771997499865993676422857163941126649005936924541055670399115190648662481788834628952146882256262736623127365884855164748843444890521619838907259827605270076329895611311074331159200904818492220402521719934247140046795492510111652252376814729321215556833433484395009571861960897859263775772583177387528697664652883334633119752552426523061875847121614823953756316925498316069520678514899124770326005585584877179347551334859035497016952572583848889541310601646008489296150222815405867740427138944213383688711757426549079087712076613996429743218162982395826287619601652162477664751021313519235557560959859907004587438682191565645827731807348180039463841023127219572001049580149284150028711636618907113750957300488444861081570004259439541354973446696364512054763120427575930207526153066657558107480200842753395617981249650344298521383488933210444708145559333723677805609262929526134615652408527377322746448266378149717818258495628552069740171989227602612337067761467185838878390382209035480443544733403896764887926058821979434952533136445208830146752668529111074510022037051126676199727708845486518321169177220564618152388293739095421816581853172294877060629190238511323474071123341772004531515139328953413513329325538570420977537980804421695498815063414675772308930873816168391970507066632304266574625270515150837801375724650033864834275542040051133530870033912998875120065806066763591967488604704924798336012342194094369732445926668928197885647340932033945517823088357600617216552444375652073443553292335967204135723169445421949737733512338218387752464718855363357816284549703803934638163836372872504888498864405227507149663237405138590147507382482628593319162965557780979678289761689849985898649895766293481618086998947960920782388247467815253887315168289420122363318327999656506903188465584630259674811054063137055205039626403095801050980012070440162825702563050747336359804485609090436633582672982538492816419756620954805337323810055642458725176946837204880862975736679801900280651066282970036012002573420650809749976548305870846807616463918230941053036233300447847645112107234597272657071192943021828527863524731158439881149859767569741731358308440418110919630626654871332989943308098296527675999299350505670967302491905272433476198179362923636533088083118512023955521199676280768634859786743085417363838696508075191617446686072588132162314000342640053847408498518491392896268756251263630165018638833575030520355280490481036313607051047485578771095826479593554432771125830345326670412385582596460942592573508796520829831841596179877482163849198733275313926524745521227523728378458302538814456899840087404345462971130744458989596979236078874939466937339990456803876305365966414977681113277840849360291032256796266506945424229709623770136813076628383527950013209666576733312886011662370117610444900834045889428291946695661683591015473895706028232955547987073601298718279449504329784277748797698901545310412881446592133245016611166533183155504958281464767172101247590225868866249526330672948123315824102324999894315104131794150319779972207805474697637017720713205203207237618025315926113913496556538520144952686582615398960138362537619959317098545263961291329432802281706105308971200955850587169675049154267318351793585691035632024142512516230996813934661184276892224037105710536544283213880471985057062311327662421369958544088321375859914169062514561753889907699883913190402461056068367378735672386570070748043142008346185148748270100841256255159711760928331905193384202940488643889857657135366226595663466441084214720778769758255810856039589649180613087385116478729724403404724030502693799292469193100504226816851728972466620593081576157606061855933953309650415202713304171544856822658398955261278529529400337600567193379589713416702757847873608307869460370014569303980329232377040726398558563865000120815798788975120294343512378614796421302765260162337968707336323912704139457853566946838173663361206908741605626126610930123715362791824313705589983937764053774441119661842834124669733157933066614417640321700869139332437927994646284583407764777211500455171234997837727341401976358198484784938191643201596274173612783469877957195418482392743081986001367365503860462724046253977098680254628661568281638137889586645801857879579207195072727217225348133365610028188190770664022613488581818082705372361588022611456130560463410618806381227568424388993673160903397488559090903639586172564057800365247800485541372348194496479819584613252775478901202759453389956761622366516387908514967221694825845198511330028111305402800302586783263934329815597065891897442466086964478282267417135128620005534170551804092617495394577826813452056584648932155147206007292615994204609214068332827332673716456347073370536228117117803558025249642658875908980791881353699228346694914802360271384738493323086244823022106814505654593625144189524608819613481825061568050378204719846047873192795993293710809569698315192110453980993769792093594841850037767652046285094952851514626930419922568790692033598340628157619642829827868264092935077265018568943861952816764140973961336862454736822453068731557614245486859785432170757262708121503610741447293146110910492919695401908795339768209525446635343490972263123558043547018793936379155469756237870684076489903066508148344102573570283144062823175380512331924244762745148854743447387297012173404672277795617470082027084612735885981981239619154549564922003897203083169982551648698114362538723783572869626530383235269646687424255975872035509301797396392292467692327041599887562852955702617431457195446339237760236753204403953203554449655196160162899188402626387145373903507640318037183799141848070592331739955504559768654311951516300921706651393390393567077437264031335899557612432574122174863629741210501198635168088851547667712853883137586177043408302338532818248936609680911049917369179153381442894957027537994853326646948887716207415909839827854068081019864601957113630192703704919706256257042784142544441017149346790478508994813641706156283487200419614589759380608142862513448900722803273499720450267049060159770641830706538886685730111194007339804428481472844132966435123891790941695975921282530478135677305686802862818036248845430784364845493894384595516389455360004119766738569026845074759240879344708066945528463173749408834591735167815150585191448539354469855838031375975951742254627103447921935482444343808486458697799217562524655531781378920924171251732743668046803755715571409101223988013327066179918231145294528172349027552909088016382345020716210995778232337902966044850063790988447784101649256189791382719104265594922982521128162658173125306559163393376346500984996720930438521006867244443303697995968505470136784876959488400898659760495322323168962241283996404232969805999083621965463784748973170648551995763908869521028660484797377215145937610810637841515954729168037318915100127863075739621557846877321513154148344655603801435183202719835321528063604216742673919848315383495302747081968522981587931806417048000594117952444675820236331553564844008494074794856909655436554136052874701201179620032978739643754570345924544740080939383321594544947421425099134157724301477200894655493499459250980528594246033925817823013135974947917829629669147190253006566339710339590129408177378163576484509360691843229599057760166985423777131236358069572693268059657630098423805506742704954959148178553249140909490019725511633361668820915541134086642770236141682137227801733927399895979583219032901512811193113143037838541755668760433526212841184109069475366873454085405266218688851851227635082836702450191436775342880154855720514116203041067599166117731410749194959245085251184328985117927651523214481064520504679345106697471857699717268774519899254700637332804712177279169636649547570528409530659385999693084449315764235840700831843990680003635280642786211620971626405369060305620249366560714146566890952276633574684768044729751158222664409479609009013104294955330530270595239447348427339004010635068292442621404851402698047992709045627965469246172302822537102134737401819489439806145669848415571469784626909065216002590465748436459606979350734200660027031618104181299754144558236880968853919536200964042774859746029579679013928148020768662932994585613800349027697660643783911188146074686642244104460386644861006815413369754454148596827773523373748010351164528382647427720630947960270476112837986117777471843479276878273690772059278854461021591566818398270466457609731833481309972579363605518014669401801057517200744720243897316407989805265528294308025265741274368541888582994220496922816556030861163451165999059777504718222484385865498412820952303462125631116479704385863922426094808089190919403784376099141408457035535987168983937042417627253016952391402019340204866539133737283115539570197748802522479427750351737160677652016811171309211301081177062405077645591425326881212110954582211324657058005898561595197044482287767796167058887019178786524972808612815177685596979353961334223080216314497335214783083353592055655739199685388681540971533316210577578174414619697883077717524369968395221525052732761976604182771289872501898971189735721317728867258019261019010295197542751212557910654854764296297470943592917893457079511648788768485119425252935655126266181884489032209787145009813891870964100199550854608383027218410725282238720434455047576242402294107391030785895426063792674975483947007352636597461098072843697403916258265709925882978021986616967059445383976266027765529652073440705000827405037014315911563617171695846621674055970769467820073199478457562221935293258211126157460058783997204962834992689376838644559212293041149199212624918742630328243557347949433111288415678155977524994487979796628811193054047960240798137713587921895793094217741036843001811729077140560204005567892774558219276608229716169492132037817288171615504086564161323436151021408442845031532896094666283319966725844400255833051091897101326179154485669302641251108205372914235325682798653608688689090652231595008799986809582803766075422179092466378966182874796619543682649428552469901812534336783966192699700297098829899480308911401848205548754292096371569144351901722466033135570175481221171508031081475908722283608895721793564007603325665947873390202207045149789629515505824957223475642413698079116206208289917168074782716236676761255269120332256189434169859721584557714424693829284876806698262442085840806371558697018640441244239425582796064039879900627643839335431716058240793009261789977252441173641194347333658692577348344087906486404208469625000634059374790280648063634846225488547370823943964994741228828739043327928758709972903186843818222605036457676399297006483835965629260856335791299298491900440925456388461464222199198140412174936148049683370317869070501760074068138727695799768275085118099651777103620805696882524065514498565613898843103401541435325481966732969281411515419621001800962721239453346035521589188777750366121000962231677451484510867127993532431998897823696608230507096760252342493335674319077677328409859782127308411189332770386253469356538310544037437478407738405933022835467958005297848251778855439408976484580976199167937169153043392210471590310842341352344305650087449466758396632342722310629130197978470895608665578661046693218570714659504919315834473204670859076213095646711656903488408499979456526805352378350524643814065730467273636390177631708952176355226823347118416466679398428182999488873537283422498412177548829838373197029414512169867815539268263707113798044015869729483582335145906289397816563612961805005248562748735772834744286050387620783304648482032886243141791262638263391692536789827048278973768707666578038546861127378241711539138302389348931787714790248909296499955979549301048070252972215779235710686639487837472884133514389238891519291826660727051601614786061518779238739554237423937034717855138254575299927694314646228652572262818173490790268143011781216407414697707169120619012735845047989252265039553715087358450338919605423253446685686642092838696540177293278994103446286063931816513862181170217327722817527129126813460565916444254712600592161076644404186539115675172252486500256296803089291133368566953404779469819508505076652882958838997133003077367812063128413589687670698269734453038984669594768606675844224396466648619517841120107035564945090069405813522321941147445672143838655540812806865447896030100734907599495323584955596915926564905009282818920972005315963900382165256769823600605184870390744923726837305174869460690330851218333454221206909251157807383589665445170021052116801006119580908309236733956318122109583698116362258190671089798658249984300783874829365066324097519526637271145891348522768902570541375026047284410886767593282686089408944256584228795432895278759414738138115217318785458384094086722156476503016601779406314262342885838276554581493129625560468476511438128213245453596761884126497060426905098524745662856526821266753058243211371009702218370563695470600410866799878546546602642068195896252863788902247744232897103610058320498432887748565598862228743754248718914021061848788754258395652640866052085797005689074596766044008403339443018369701390405719021398862298564607920728277150457873979570454809840478901630421938580470306368001304998779539762080149412285229127406959025401430460952766179126940996986730190661063170054985455810894915576725877752909707796005870318904569608205811447259294157218222647892741570269320974308595865197333898412473547438882389816724831337332098523061074497723067980760223881792767149686117539499440314914010358587128069278588788424059722109046067400547064518061443120464315342826393655054074902872565143222738204491669616307438733698966915935026898038336037403887757233451216433513858227292470163378058387839375226592004398634513872420270645350783607505329526461387754925834198389426931894257070441599604467114470583400029957371999460709829626704391641241597185430265728931346810836781739094204243369101968672951562800577756354005270501492234767252398604450862018941540002781874729883492788956270022640420410075419441149052653934884999345125274357537584387919032120833187020644926160807968697090375728976201938268747767465555696631857625588020430458428984134135775609475299637130213090427155028394846723006150034737082281177928331923060152519104618986114907532828290216027228339083425851652327969748831166013310748620901793224315424649113380843606466244128200811145137509390258242065450526307312423700120893798607752625724565707217876285007853330782084648768325338282200049769416731037309541164102466021754340877685481823690811729451686841592557946426867499997484864752797697384128375362664967998396872763295168220447321018797160897772084476842288259390174475303163835544533423382822212522299037849052437616634783095699834433931799662755209936299468831745512566818024495450142065510554745291671680499923997055519734915161303205023978757863111816170732903465357156248162895375846521754337243876445656956890931545891455757706352633191316511329654126486612089449791301309918953046564706511629933509632965622463711585890551980928900883955926150546411460415156593650428789232086547373240239118362169064090623108640649107928382420589368657821348703108352961138607098167178510483600439877214456667264298867708278806910198063610358223841938011030472017526485146157714956376676354288242852358789453642509807130633590644766381252502682440260701172821843626384097189822145774761048233797479112659558049475088366961361964232874062379961352174190955376001638480932203371637640586924895870574586578859273874977175212708966420320754794441552925622255764826005280102666653338266964885955943003092599415795369873681962121449414832906458733981562074824799372836313894341162628248065082380745781867737751741902510398364486574386539704047193479051167869019637031297212136601366591114681019946140317826699466825540145753196831866459710463718381837412549960180215466018513172802226125769670235666810437844014782944756113704484386069989293000195063765214957435128226904460432871787878501145407499605936488950035981497538893749419431615489414904997420789676524799937514827596106491089870442718155540738942076451150919916630626153735788894405499773211666240731246890167849401353859429199607746099584705229725086102277456847896024654081854516432891329008261711587989618357973442609657614051814242957959631746180399110902900146957618108151299585459367666684476116048659713065272568185135371558805044286077633440080126142342181638460102706331340156034944025247075874009009678554911724181234560896806329970914921094275940028744582448261284279650931349003705694399667523727348637997385116576187039338127990656522349199124961221298623106782644929615286553988625134188450025372175006775323898644928379921426068153682930009779549868417859182479746967204091335895092478560485853341940712594999459124146240735926060301990137794561584438743711319702613410261043658039068775013292662971695672729997019608306987040686399592788761840855372547870991865747590521464313422405800913820685317480324199726114641708260698175130039879670530145202991374543817903279843475292978589154072145080887434227131444295551940528079597721709477432987975868397194998339462292184949995689750453987017086086754130312130562037405255982833029192085686857757591594832726810509136238144152873997264016385096281601708817128165619256770121406047470872046084358364884788978122006719740780534799795162295395424383661740146486473443514779550405877509555164723231699099271624194355255625907168806826310609018843391575195379006524637503247116745148494964577777522469789008446512433641355249295179731022152453643662055002907267527437171345663765875649075881546237887323060825403290429987131247428909124737710279823738766711991136057160431734337942581607557148777122695447410185470313522917539784280576372046689099569995427512218726661151593125649543400560813274620506385496848640526141080396850694417574572476423316135701331061971708939817043379205315095565235080702519831248453096827117249873232555986323499022700584407203862773629861363262482775097752011174045259570909270925187679360957250670241485078185658742844591977843723434624195657684500547284155685502775886009998177351473393300446828544221278481505228484733261036126427868249416283780872645076163192709168263351036217317438921325863935522940222739165275248775199311241283688402894151838919312956842827722083465511612918553182210663341360884629739959967770718200052408630478969496076011139534111066142612757580918200929049341088557394139811266808412593023884316010417818998025109014677713851344364242676786795445498076359477377313779505349498760379604396233792757930212378524439166267211245674680722458959021499982135602974854123672633703812526301552694314333364662195758760537685741883938409499938351886145804399181805152730323102839045123509659628840372063759298912897838267611296603780555693910634340997545339129605130238678722863902432503166804754816879959818844753750094686729965516336491779707103763781875497028604151143145324900260663183551322842003337508442890271718551524589668433244529241292583656603216097770556496392978411281924320224488804764412836167795158739269392681014580925853662538959707959010359525608355814275982583711130062071007839250523272094861384709193245901757080123431391599716594056933269961815708095219086756377095535441544339861342994912611724816753574006620924096251655167033753694928312467736709667539278212558239591458271721598266473466943388045782260553359694089728256002862538286530493066077449917085747868504171054902740003994796954635337063517260651475344770600578795215514970686712859164648624424571546480165554553420222825153945310053998416657650566929316765533567536261747160669749967267399316012560385819056344377252568682914777189962435346433936197725645612374206129585385527189071305211636063759082986870087900074227016045183142248810842670162781866125782143845713334763648756706744369071466002125049933893228738744266064829628553077447662778578878539156418689397239044358886708309206674148783754364388677278408425864449398042785674571649904641558975721646132387752264738623563711760885710869334627438248895506119128616506751141127523241372739082820833510189245623216735410590751739646570459322490203161859458023101620807346611445878940435233759155980272481270297073775395647212255746452462693291880034754094267438364142683984258366093130571368302934922935779606612395459029946085174614969176748181026424829702094485979973073118123895654530072867953914178667278121239931832927160778536905888435016812396746824623715010783623188437522521707842299746600975694808809075246649797611015886876841745746228334940642369468569102422655549791636720384581226401179381913102144902375514541201758692816157517021365286019408956781504274887821779291179715060006953564512701687883210769198990218671688662447147178236899149058748531454376476899867229735147962066631944512177203804507839886944659908120515354674591100646407838558480546861296548594158685064398823611416002718669239298628455169604936974014425819273166805011425045781233609560106676998660781283048737111337837321536001078201341762942433335117469117552189706875733093198839288548236362008816649612066678492041128783550020884694274795539935443742418178604244555178399283517596838618169351662738324368691745874429487703404219693596500828292198016140271050795580822632270022718450661278527383451202029260587988351787397831347090830232474784291154074173122986471995730528931580035746143001657706530293373586650822591246131640675444308212571014432060917636948895141639835416479213547737616706237260978159654256111125499948145913102902076613823187476530854980801592199194922485009251309899113755953665288502603191795090044517012209709387331106272344430859743243624313023879003743749944994378737980956975247982193179398716269085708684996658511502156744808593463751485780419517655940433415975105489744874244379704861151252788049294794416327373801645438613416169638938942441960704055452337150668368078570842590725047195590566565235861456536020572402329195376659233069735165207622053320499434801106223232507740693430581582838848601090410419189970918575702258443119982875275864694409654372713285134504363230458935950307724484308840020505066685788914733802677080357564418511921495599460674513430230041242261650624463677340972970671025486478479436413985119260785962239757659473724717941512676421170752254721218821241557037438992032760658267223339042722905530628723799507989224101947137838542535921343083321543302476255270506488429808773520812009671346989431650668894394877468351952081728573591025200025132848552572856335934475397727072846203915282384766919444453811639048143354651052883734563894503997110526389747894009935251257785049959555716285384362729538739238741628569425127227499018313553690632537232018661077765297988785994949436729404065545465238449307058738200933429063298932517948394494084113174416000290459861396734661981323890459637342386564710786252761929997494345363555424292123142195073486194891208364779175765338985842311911155777412806139036968436270111145074594574346746213379270335767430933554126406364662072398747861386033287461694739046310781750523849778798214534291678494471022237680292095631034427059041730848707333418280138297195243021331391633543337150095807069491431919141167584016398516731816762277994836118639170455245431592765924516010152485573207128197351399536320005220613890183441847491518464632317655136445849212256943855282926143333523901186301869207615543235327672426319934330078275203418411481635606144966803318961155739022210440193211574868502891893593498604844819898253842362290652191292646971844852660500211045287017071314951002473512503413193156517199889157129772382124153133591768490468192820211065627691992633559845374262146985736353974318519683354310339313544336052213708468991293792363193605757903102399502003486551248614526234755717275611983627768857860698718187956453950161992115046967710876255503597829254418910030787109081588231763666701726989761482289353178406781970457205696596560729974484738567333805417341136092083516045392068055201738827032118248849258049485801116088528474701535746925064520619544027472266035543714942745494514522776626206777526212519707231092366524222744488181959930143533585827449334995029269379799536229736751358712031924099748726032034555909813574283814725709514364099145393243218041012466533163364177546724299933073879491850972319192402860168538963868697250609528969135607840040698889956875889370061644910505662304496048631399600778484945770849946389186637304007976375733863724090386999075505070383022493353896399742233593942758317407727061239997544896685851148223031382601274400476303822381045944420034096517431305982741751984218110382877201468214344035561190268653779609057329298492967823494764339350527627526586002232611824298252617875934269898868661971297295061558714524861461093353249759196006597667666756201343672820166630907155042627538585019008074786038555451238589156497082872655104271147848534441159081478257806384519442932801115094833584501480426018574341726512741582430485392664953932476751056618072237331737104486952561006419407463067565861596100689820510775344282515047752949585054168305794964490053814059299869233230454021932529304107668146549105799606322622307360729117705119631447969061142072291741979750021211420536883065193794898337784754552074608855327739156368007059775511323353807117782140772416825635233261315245613012190661060652758939058404715399854008549747859230735850862590779612618656383094971129899567966025897955311637095702977085303619734192018801533497085342566346044427679095967953107267621380812004570775793568344298881175737944142848000871008808546293281549163207535863024042202120220470442948561004739200833439973819694802824299651009523869595078556355002969338897931038827070807207531821733579419510603108260821113370831115311991080947970737807552418811970817100184538537613981392381747052010424469431049754942091564467822772929040632280738650679833544293920044192385718446406024201482840212061327914197611135489799336214817615062567052001354933486756318915264622322984412943380615316554038029953086513207928323529799136152599469385875304230262549622486956163357556734737225138056864655697343246824298320810630095572687690433986283820919262570729894190894517786972096902052189552807182083645895103701927073936141542726678124782841133935261594747839970530386710100257161080283348111860442815692882954772273231795522130680293527131336822358247518769620249094082165906759437493860471583138804418631195117368039859359960081061039729886439681976956143495725236133024025239210644325741163294931726290713515020332735908598570400594537414388353361049785085528160662702072725295263339111140216820435651582043829083727955867222835137493238996586415134273555110655642685038825246529005351380586750337361657985666180055091607375331693538121751674617489941340604020247925145284770191455583380206576347749045967764094796764201287302512846414606013418593617280644140098437695907679760351915560965525512535897957717435731075418086989389063935439013209865970266298256427697988187276831003805246276690940532534858819895879112639078691404122725379649312697887997850638060257098876279973893900793816795510648871489462897838510340497476020883273764755326205341687698368155179570615299343492969998968223502573453300381426472910593506090878195055939954389393348459081227316936006418095090189496864244621570433411403461189065550179609883711753903280624385844645443585227682675120729194062028471764318860028742504323724936415193277240391726836243593257693318926143479395662364388103990733165465801606797439889709253553772386372889176333211037627055264483208936755886216695538486328559787806687899692577591316520836945792997069253630769333145963355532340609428646547030590082684519820211732132479862196884445808290036184915389581031289147423164069171686618418623259577534844281264548250984008085675618001837997156570370688912376896142453877737571975013684987383332893593586145193030936632239719341086281234023665962755966077189457990047409111120048803549447110008843739762822519287620403238629209285271089509930464469599336436764917472701146759170897109838432314581352816859230727590721670916043654989221759714807880544274626167623811793206467491888213796124722541580292575688250388407065036058734240010979218620398690191342715578536836608843753522421864570899515483918337026705837377597793612968203614175422711449108210146056470892970158226414883662194986812088286390048149663626883009742247967785373388926952266804454804202453914214985240987192050191689781245865980411876599687326337131033213299417822815225064938483135402350713638219549423788813160381396260205497220443852670442341131389650981315804099664471345154964296212604080646310694798112718568063714901274251639054497352258144883030613828439911532471217586463839756779606111909549593470998580154327322770239521347748433896401455207229781339190953887953500896538595858192690892702545574571204575916054715037758097055234290944639044735946513674959058291389461524876035989092036449365315308205873482625851719592134200334070742493076948748634400922648204634296554687430958585739175512558559664049143865581800954331535730288390201968092812982664948990752155925712116394184206627011706356868755860058358828120316541681370521094807467442708747333949763801874333358699866498250760134460686204901754699858008802454207381101051277855237462797533156975548765419201540798934336640449480433282092222400360061529933537180587408394495497877431061274158028189606245803246137306528635083721143929346539019227206753978718451023608656483822741882148015126556953320571781021879496089829988728052627300664029811856960199373696167469172254958743700229687611708442736736816459077276069379113035798096049576768321302483313236988255569196254192076393552143096400479309060854276793343298943608739091799298823705080283578556507387210468800720245051188916210694883435549561567559793652025889303978154861635973787886177159273556072836283158498311874691933828265043672774213560216964480233594490559657608952288383044188503355673244424177649116117062293411138321949917940719665234321663824834795760228471132863211524900984814300893407554457164046904446809012802380312114832855533488592542925631041113529173315234939562001271936236339184776803104131982826287639898410677475817680882733888670152354512958687040807038227380373800638082159934962311346012526781892953055935455705509823504695896726171982905346470269894163629147150861044692978202202451180661305595757507197084239079722165233662052468607151782725562057326068617713254184349139617534254457157354121122719546847052793135521147285307792278646828629134440965474741564933723535668132187112487354939118496770381110701158334211364984980204463164161673270033496634178733761547439997708063359250469480909277084376087804947442412676777670011190452979303231102583389673145472089173976509427955001416392104631743603923953444267658433355110818448274788281631903629897372832462388836609775890257448759632059372883994626717860484318393426968762403910058972610918536774065634168582375561496370496913340422640477236466051245992999803008386717218082188871365374541476594399301846308658548366113199762117563811369123010253190444094237516372315464453772990947662036469438224453674632750069264693559242670677073867416796723526294792951616375110799957087788383588646614135364806419590231803183668238371657113857409330210462010603991898961580459768965255707675569644822598744444389557212578918179718352799874549170209651427939941965701398792526085500672264057452586731184031558742340506501194384076595149419570268623460398275151041946775575935857397436742569544541552477025573381558127316922762637660665648072552602579294305718099813727325056069781212084440991975266714191983588929380599837930374596289681203561848872040314330541695813881863878956023799939744216913151023965341257493340689827858620387113736137656290330776593147862348240519407909533098374095786746621268846774926038513472582624766740939805578876678892892785225038105554631431446012122804830371581423364890578220046442074495023588424468850012549931573770167892871506388927896545856695741045897936399794337984116021482247752585784129252062992501162105324586934003636727653774298078445264618015558603840094650443914813655381060375523269017508428682080409439212927621867502720382031077747357805475402909442174721834572819570324936729790863327275062650703123632851726884529089295518538971428601412861146768026279302981517266794365432838246585172594099357710287930030321311999339881638972009166805866791080084197285901916362716530271963927762870142195393536874975612266556036269471867594216669500714652727751371213844951783566593227207833914031541254222801545622864580148249872487009652034780761818998406776410671546369750684664252863075029998628800102131298199806472399024968892936749380672567921325355785875925057665830604125054638946117628613223482289570201319457293354717368163030787270227994566633886856637400966049495997892540280477145530328244622474655873786436525235691397129362996744908003480385921243949958208486921734403996498876162388849326699963810601919220927571472190632519824793350684084035568848366876750137939501374060084896091908625264527524277890006180059084599853573710860627232740611230108044719714747586549785171937892465567609327693827149227898186682019679509188535441084525019719144697836597717676306117660927673532400165635419599866745791181449985983565898899661621959463238688687988110404022261578656692806699879510570993035824897151785714273853459457272042286026980296305210981136911330879849521767054741965182084369641471823044062545326375547511286172825729240376693492721746350986103366414487224202326282526752593055226560771098422177736056825836802093555361191712536723426891126195675104867023148644523561267611908985345796868387391598804604151290854757962217600922665154538818303291585032671156414382947962779150704037571208507495292158339101654948292252860051010066548186925938418999103451469843682160146796458853332532183797320081486452994329862424252955554038677655729321735555591133886220114935344665974426908629052652747199155315274030810965200899516579207310485718320351111634099727793140763035511665740047771116847147741331022577199910723182854822961412106581587783875958456772405264762562685653914354325815527142929141973349622996192202206381762325282897406537651135282452185176609501413193862805413923976159451684759091248642762150932879670131474726095533522275512217730846664947525107332113732637086750430975267527142099490553511029811405862744220516577328003059176661452528663868349227350039423864971114307968112592956385562302320992815701508260155924625817368608271075234674767831429920958632055591130428003224125427054073095242726309741727535841961218678210562351410881202593057577713127292531273336961421071782944361138136537610139822854426600293183554440679774187810831530972430056274530132918255843652358289153076283605106012192254678986674330572431757488092841040121472925106752965480039710658718412356865909818123320340994653142894022619784101422811098919556021726908831317217924199723875756239642120671661060104842974934691449768203487260327873037540819806810768489455869149225195169730761641321764192536092442745818489149216704642341802328762487504288777532861078560944454396451103446982509281042472697870081410080764813216392253418594353334575634927523413206627793692015911706277440775641932021218471665499003487280121528257008013663175114570213497576571399532636397606232308462082982219276962836666723326759118513784424541916692527962762481477868240261108578732987997383952108069148748574913188590895637861431616460938127258741729010367360858861662172347751220449545626433435157487835338637537550433738140624135196672655674933845838100880144829902643581865017285490672952534724401235702867296128488560715617672231249525753312377255485700690928029216761435952205643884275326550932443040258072595192587239897631822979757581368234965622650574827471781060183815261214718497757345683633222211936563192830330096146448246934392809639028641918748078393959953163171828070494169979361870459604809347620349632086616678445141303886291893660854311561565644316511337221353208048249665248126415562734047093964961446159718817395141750686271022438619501433264601729321813988031099980998995638039344174130684998146591382524979882629795108323408655197924071571528903460134648894115222133906607782676216057774552907353910371435495374225640355172805041469426968699831094919672915835563198917435033571601247308136079732239817247287220106451975753305734551169221831100503292735247297831877197193074664727475413680138264403886786332708608650851349428175210209264569536540715775976938717788966695511989532430187773317008692494159746285725595276597225063440335473388436434831978703772717126265614831385914426832684424837928573664272810511655599068838531077831690365109279523901029679230954688529333236348587617894196311858293845256284828697726457554691028747146256801804537242019209282860135756670455404143243145634726950199481308359373349124863284018664294335530784156599211295291288837958403321165050797444704896418754141481212807935302983770975197715064522576583112649578871918152834446548071509113697935128803516656441460982683204120539823626364597713880304592984337671237732285128637913149645668840383666142093926471834874936018786900832144635698870127548899868406854569809597703666727867287351153958863304895413517348823832198800703505134293869606282676977380923682896886678471594127125556859370955982044969241399197817959038774054763892051950868456159925472875889755848418596177869274855819650059527324595574521137870227183849742196527687140351400439915585138678947918049949844730561337487029409819915210906656469041282998336357640655879451935500802282735912026196197312695853539981437466121602086897952662715022828224542497203182182635170608424885668717983582548873209953040666818684351532124574208518671670076052394642433049397215228150871826934334463232620448507081001364129734893654248489283437090304471669230716784921070946172578861308385279261467578329073128015590793134730913838043727941151270473170600174491558770037141856673113914030663815643891518977233453800383297775820252791604777949196333163501404091620648608715422720273697934610902721803666800981068620624673842662163903321599179136503773373734141795069172642710396846568945262143979700378308832232266804480916373172111273599979159301078974477465423053911722862659292648104588558756787616820454005315847578496048072395928144365695089449624936624952319334091746321034807582401132961585155407421214761177409373829273023977247152073393730671963648359734551427669182489961520306779052400220217662938590900186892044454051848023370594672638643647175704109969852483630802075432837414464224621041596930072969794693961204707469986275996558338531298899314614752019592638639903270616297536015992208660209732634902696085897623595765906046136843682309669483562466017487062336069159163901709518383427747285936399571793524880731664785514745998264371346917985822827836486665018063784505698186016077947512006883985237221287503205224760709274039980445713655349885288300093944964953076743223745532324634554523392043893265604833387497399894321306471294996761397318066618863286945693128193457967717571177375370797125639725222236772957605780938507727708996147964950631948292934153300277052803779921822034648872889533553462646053776964887963492852665236430506365845730151496730094943626292427462866611812562705875318674536242044104513997081915981116137532633779923007730875817638168897518269677469887534545117308672983643199259323808174630039669511637073746779068531145038145657892888826865425960159737216993939200533995928399781479381897848028558524862670131996160957209054440955203926816167815406358588263195493380280113537024373167381352801546388629088594427015112616567935521365985960707276222435502310301271410311980224269728732951229833798679184161004176505364751286337163528992288671539647062873311733233917999577636798982791129514229158008648131150663699720962373066755731131899522919746366497062037570387069620145822536230365645194644389138825610059636206659635802129920637472130205902997875041471970204022379645881071610885199769973777691180900730551642527367717727110060385088221148965374013101825089412378425742957881169746414447406980914096494460205876623425676457251465674020450168871775940309862554139947303633363922506317439090357625889608455024609331539181386047082087147706630697498089840177805289022866511701298744587892453105686892480908865786162484403535568435827181025082240337696374501629708411312495829445009460082909809480009795637481281311179497690280976578930809063790424250043149211385784847864128606172684052551842300781331436318292202824804666959188108313124728474487704117584244652933107823850683217298132583868533507244091119578963978210666075090031337311247691248173047507448570721690817502668492326774342732075811348296594501902343260036433757707694637219203693762028371728536702263459797734557172271713122953444439279928507779959025407704213981910372976647877771349715606664443065524911789523586653071973947649270589153261306416103621990812458384231172516514734864075328130453257981560471397103026648595786478050653561730287564411370294675148428124662533694171604458279675097083688973962318299732601518407321432555394680759555653536186818344543879714609215979482423363198122133300101977781979801475220941903934571467755801432803731461228098779109664039253925322762073644949984905547831321218016389104802668044242682678973890342576739822161784444495750532464969866375456793720713068442976350146926615350549800225040047547066180247346786071632636704557033829064096897978656004542888988759547502886754205667949178731394985139917724813488649704167489735022963924927052656828087548615231053163644213725794947657042973980086185051471863091514927577109720268872515358419565990173501579581077204695267763176685635450473618775907699435731979653594507313840838577993931559392254537899521816999208984452873306330851139136763356388015463297909585165560433347892485662559113585354412892502763977621226627976363821084489206397752037587119292319719744692822342339026525986220400119917478181294453642847617050946877845718550046120892481097079531937263142793975813096158160494834756027921321258657902530355210173593843750468887869285088627691569396096914924188349076446447459979810118285844554001888996205376038183632267417268864067434738663499025303757356386586263247870212695063018804294951397056404912908175117116893484631911142396273753133335673680065013939727908000040193052713573570175986444797071709764350153032773200436980304750516235614083587582658131682582853956670184338084160214760001992247083125000663094075600073095580169765767330357949208857805570511316444176520905502185375017343205658707335453055921089887292310442076565255145936178015264886024941366209296508817829749497676175816619774028715879921276336092673374354152476500859043338496945884427319227609157007676332800813516536193737670872763757399636593169236158720759622387953693375899749486944097211665091874723424443341885350928013980969570965359047720247246464568596599025801857564721395118087211421711112968995281105616049873973035620857837155057950157680814596439767934421726946373928575749754567156016930513189952265705135795155294790486267788865973438103837674833867444829045041076034279545001414478838700659137563404503235617931910730920740910137942472425189055356099906863276829146151155705238070943913049364440928264357222055561498779466101348471547736613691909366682746054874158931467683711631671860281497791290130666339022394659786109139409460969465467291706902912232322140465058275879660741805487828032699232342614817561065944827317944553015464814208709150439277000650095936887794646374509857550316614826735812763316361417922082017374873232782921116275463377286700598350497798980181495227842121410198160020701071221901519951071311612131825688580802169873510508662596518642608100702426861724774601671065985361585338047691571453410287204422840231784932978657437172405813080535899694941092371727009000804089690670665077548382078224234549559339576645383773612136036332971969764261261770445408496113252770237649722188453826673767023814094684212845651613555804576402073667038941053553372902036021341642735636162470484109482753197432481752472036311052015529336700330165583900701240403732463487230847086245978822105118163175697733910794257619222280752916006722866631089054275276521485294198041727440876942824286492950398868557229175378220100628280376223121899555527947132737386302925915125112663349662584179344486325083452391466749784183308646722101629380596690214916431353908872279440549062417302315482501576675355720193293047822636878045736818035763544782125864634353527747830310005512894809473908553299768206579228706387959948602527240874876798614612147622103660519431758852653095064871629606144027590937603702006945065747582871251549754929448140999875657303887712940988755703880705539343880433512938828438142994554713866060387425280162040728426963971109969981165325102100197562674273277104877485344259824452964996519802118738449297338208699330043932532544310995084482528208375285780924904406173334528206448202779603483130262615925775134716421091303728914742538643805414263906986210495638184741977634218525702826289975148589126342954601460055577977290975584966986115317603275669147076545361710522260282423557865724800265033494897541498700342145210821421504095272595096062732065787458195497465328450561695384824371116873107577923184369731537551733199443873981950439060555583094562061826678028655150721972434522139795518968028355359220248339617237983958038563439371880396052037416744102888263285178509868494466683232065569240392660981299412157508145526332953650327868527202107862134024359235827327821263790647668013540919616029642477384762898360803659718253006850638176715098032255736393957822713867798180515470863162035709134425860651298815462863588540831808970241181358481003378613655798090784220963289853549181208631305958753348802555403742032482794644886080304455542622310329567509757447323029204235022271556590185351580335529698725652484315833398428866309340271133726625373434736348628443191944945972089262484942820708391828535358787489169503458213497069739623260059260008460069360465032811313156805786892001828563682420047747927075862100844238171076299213610547446807268347718090603708071000749600431387289516678951478802481436560757884992546864113588644681286320239350064496405498187950603172365243467128532343202564031214272522859169254227451660102068662601432498283519855272603125937846127284469340034634838892109520558575799686867379945256269866479576543671483938387596742161349390773762543331041918643330689465133251009787496908174622700904683596749662107388137533277968130132214641503975498947884792377315051951240630677284104828997051301276776913289415273865016904278170894489045130563003717749694562459962980443387877967444000386011920007241337794114477291633330741377402223477043994134577795753009966381051017475715004360063997169105358441069243826817199705146425859273827205348210300543381256424684539162372299137677845091931989427351681918342359103616676327327861462242914009334224693889550777898248513296593799964695691846025252903875113446177186620464416649269315846328795104268200461276763882738835433350151363857931832263932678162831533219981823335285741711994862991856710702237155286440725265707427110001068970120478242511304975187988408401568253645821558904050803721703857184188687044727003025176641849435565921726921851034021391226652337195217140773939557128400497974110149187039415086997973447901075489297571802637084915521018899032112677125383400746439886253066494658877680298141303878512516138420707658342891525146071460199338446142109303901839781240148504437636140016795292852989022397411820361280987328276434999519031899006758699519230201513713747564210908965979918872019906885494948993185151972014805483186601677131271769960139558707376699063318571938354096451632600838600848915348282882964887632020400451987164821691548744568578335849806925536422916034798862920014679059271852543026432819037186292168469861468397291030073824611601790053012853181953607669388177351531270332642539670191101580112753598096135523531398707936260410077523332955155698439451887226030177842356713177212659669524361779705868600011673541363052020568505979904367721019239329028849298749000315289586851835616913758507505383198758549761260844573798709156910492507096188248285411586898938304856106305264671791473306248372563021429528495793905215532555442176778925077214863092588642734395184013770820946992108105773415369928709859157449953601938174675759621376563127907866984101129082401413422556011481635901331922905724335615332388880855074479771730269961858914880633347214377142798021230517116349701450156823846787471086087508054922474436976961415067855783248850591156702471348147404542187242009008244482362058777704608371950124894125099649602599841182618139366278000626567535073317609650073762811188412092067522318360744873601073772480811060051982463511519542645291951601840607284080263611981789538307522494492696050657103201807834768598558976245094565886053124409450164150145176772592681696449743194827167469232657989086271765966953711791575380651259680990013526589115442279522858661434742589076375256683921692979534515125366679231321788754107737877817901941592929732339152877933877675227468147223937702109921598982825336398947788002207216342180811038608961494992179395550846666028143110878008883160051879442182253608629045454667155439205448233122570672962193589224593294426390527940111721138048497110281098621662098043229716805243170055505895667127895548963041071600462395290562943283180389607040774914462778172916523911644531748905808206561190177995831761892812554927342110486400977909203949302162159202311215900428107724311235037935646196089012415365105864130963852222149253401348239752349173704091011224816431842154215372254755366023148343737059168195451941083511864330948667670399923276474257746624605378833814497899509051806979790170975978026007006523132844552653259509286212909311142161224085242952525311955475687117001992366056095959297870533912387038510996727366941328461042520562855417216667206714954414618800709208096493037844864360639737357898668872856820330039885551758752788832236451807381525520071961078974779905304220103703298888919343513517115796345573364471221987763246522969153098542938004472978506042666005492300795344661418709780567669475224871984029372628618627882648405150862583590656046153706249603241568678690228931280611505909680353594687061693207415923014539871186491684335020922601514647716939012570310528030515115880872160750722996616844107646436892927967831481689062933913036424386155879912344538333073808452417535322421770844138288299526118344910928911883045458627892803521705134160185755041436598290995389237817200316003280144428700514253172228932050108990377275246125836114785142745882750531629175985335116016058050093332043354609692964311117061320818717659809854077899111995496207789269052160167794999802674796159926398874985484157897803829616613872497149052727256226962689686340153387407040021086085024191859464206564573438531596434133362514775450263796719868935720504338902079608293098186522566939755990559629276606738451817493378716681016928360860601327832656393070749595488333546353840737938532631990473220986321767371698512558294320625944269159327763956326058758595107935189326173165860051015989010742093599880001251686466724111084949799255563790498520918617129892199222081839886646632799402698793744649985506963788645071952135570742938598636345333208465052628524102563093988281714543765715000706770604762723696288459845398308693123901415859025428650219195013790052056980539833187699641543933929740617988565767750176418073841524836454702480950577646427811918915588810599679523397555640387259024567002188935800728136684367933355657076037271581706024101808982333540790684158531290116547946427832405841128640304283685087206590969184357475665665215347068565084171657581885628264625699111884856883864728453203354652410150043972371482676621838428045142531110622045001437925632406844356403717862142832693723461352245359134142504469211420140617071911773181289878964513202347633240660955202836274644431859051688226202160331172621797272822079258644796994566101548579652216214201373341737562699091481536130784543334550185739303173542862709670013749674265207813826500881898288767933669262643926540643432211254888520245829382183054852777867888760471401247370496225797531639344296447634103245569546744971859465354908984433547297070017111101033768337644687292844674445531190176794605457371698536021523229968603857069276377729167256068345531545481978207910685935031729040416411547191525141701715449126236861496137731563089276825429390957036212927801549640439244081849924149925343677032727182690225474261501288352601416082688185754292955649193702442465285687111308896805742436022713344049816286701806458403596158135885025997631924003983935245952552946653649163597256474804832362173116918591909398830850480552037410720568992934484954048962136797837770038521074332762123250747938467027702704219276049085978786861538088652923944753430894190721077812783590361043306552263555054564529802040788727041128640839392101125131251332057733118793607527854691958568788592907104778130654414352394897036645335876725302718470483584600687521747454584645402310910324050632045340914882556520639541581714209385666476616488111297119497424100771681038644518978562973921810993179057031875776276728335814537611703229560632105408884595048653377709556882802565243099747942142340814694430874978979808274367098688334669739734032969531781063291215913562169415806434099888051586824992694734730759214969228467128196763366757259415473267366828004254104698411276424478181330039000126839189322751014368192211528080931810542091301096782852407829188206620103738914518799232392794628001331745230918084714046813958985895976181609626313522675574689630828604640332058774424813508821883402385698151776369877642065147186425013375910573715827587251452372362065122529436181661868736089489447253893038201973264462856178718123685062567531164752991160869906547932022225625065103632609379721666366674821246006747757088141971101995828959301779879077874294741064850279040526706213754739552300657935774058925857355612377455489048960141252916586764158387038860598328126784468257183436388755855429040785679505845188563706304090002358499610805562909392513192943123389141149378147423973883843707886781801921723469215152301341263942969085535555611323079192212042085794124599875125349519493678399993234720050568818200864401732089743711845479425886704297172250298257546365140656883920889862556879701242240787221634720113795669133892962057351181281534161754688972964172842880866987380668099054619959973025355506581867040185455926211604442759747229764398504781152851553967791767719989810487021919945448561083469342338026147881330423211453980270248247490153743170218768241746804298067258126575726653987779000849492606545344086414803986756057959131577197053211720598547476993786572832160266908575443058416883334361624274862811782171404400747031367520266251771867757140411857258567588704477895300479116528334394251151945487619988269677289159558005139754273754873000902491436427745907993913141972457007067288980813115532663325636990581091766456535189236055772056402252204927949127724825344807721782085868501445930128001966879593059572094507064510518299006634748958502897807498354127498425999722840837824121881878881262575353957808546878976300303881566796735751455266480719273198014281879690269841416975890692971889216079604963258963884363091001350278116484453317382103636023687492536953203286999437193936129857924543743887236910986501229325625773144417389336042309539172644896852875075822393287467935420595549351071348297786860837616620070436946237920315561983047556456007338580737175030794572206141468197444635765730344341910529946919726810673445142986484219647894364471887139222584289136950033780761138676572486026851945019803569365364352729434828168860436967666950453258454069081864300045661814508019605329496248293940549691550294627436503992810530494360794176316480088891047253509452338903499086337616846049634586293781039439875450814927237987059513070153478082139908244763409559800231681097550465673562501618551610553344346636317707932315847108367211863761501698539850293318722409983721006289394891115497766845660338678608635892452716974117662108485457398203895073572876955067890448764635019856695893841073405819696957605224055967824620017386442241004276708318319662014149751265138213089275126864147240215146192438546356156222977156679197433847904681301696646534792266108350687402607140649274156410333497179044916697170634213946478822086109474172817003343658556404047453552958910229962750418715279489409791114149046599804924881472318094578224835907260626501392392806140461761806969293873090138157514927140512341490386181447162829049628351608344369260706897446616438345709556784451091973358610889044209864475684796303923884418275325500129721437903850931742975305497158478266973785522068021225474705216059730463520533065526592573715924653176406038710466600797411839119618675552315121548576478084601496369542987432875649888199433327295113357774571183025875629967180489004553490415757437107708910977997590001685071996148623905727815182962983250181198552236852358162631598742197103911869734025601888054928427733225553429580331517084650097713668207708923850668406021244382921420045282986871146665447080363105936721015743283344407869953258194331166936234577748100289508115722886565090477842081596377945868680105747522323886615759723863866819592663780883855934625844661991001914768655834932412495262708790939866717233495300961158958495042513550027849721367580261262070035612665065721915018791100636358455618124966081110104559502012839714175809081648203030556463575951484771453314451847654679922110806890996299182652745593888669085064744620895393491373976640833906108222009772158316605427584931291056590298006672843669548143922622309168744809784864399524140775789467447094148416318209688210601900150334934763237747091275806873642062374494620257563215273272273765641499994907553924364292826269027678632066840631452645830048488513152995116587053754482690437277501792814194213033933031446874881698430743148925839118982819009328798303349199754666418577143030003536753837397508208544473924510151814412591979247836163086134001950571111909971612158070096817581324216831295261316976274971358943924104516898710359643581451642168936409717777746520984419846466847300507361384053825932127291032196273492197153402875230241851312224085600439468682623202272030932299313270041892076262247867837205985467583569999084546521988469813371175349776530934369291664840694767227665543423475113134413093891352715584574388361187457615641983845207522128660930196159598924954619281509514251092274812871005406934944968166030027983303167593445933513635306127919329869203228004374673908271080551052688234037084572241404806067579302244766783677931536422468693950536665888978181856307863524174640862918925898159232903845978452352992054181382865309884194308662060336881269344203133937300684365781201821163365787328138039694303355168653528862626933088269123898620229930442208388554377296048739169345707872189008287696328036640020184840467644006562069400461179386460118696012418420546071818489194459792754909229704830989758854939939225361671767962439496870306278612200031457127995166175852810782995416312796935623442917708775002915606568358634880514429359617890526423068258681955715739422032192191311859988692233957287940128627566449704611690305157059253508945177138097969290119854345500904088375896149832440424290550224802273178771628008725786663621186648394763884822847295335713436500693748053338677554029361813554029884222572080424608758174294652089108185583406346287150056556170648825777427557892756568619922192611643741472992388332065600719489990820205436283677742656934497807498406526650137158515838361800876869177587924500594277881895802038801613276930673579066416192376802927992880384950738164297614607618677571133256080472383803130160045908025905634511534635402168050095345115961130478985601437096007594908279602413348804521136113092671006106149560662039273651653966043308711472206242170079594912787481210865353176169282263780083204632114830600263813415478350805972601641726519012467281499584692557579890278519396208586178060117893001956488224268979503031740628409692330752162838291789397556400644256913435774502607519276588003751214323166569569426866528483279758258758507853564489904342241389740558326316360506328083693914217902597737416214799503407678822164181838250811289723867107173650302643073345043456321242356206900287059974615754993839247776045923306959008865118876535200414396427593174361795523508885400192452972391332057213053687297797482768637295680340128154177043428794747375135418606563079721090595941893518744759357563338911427696230133559893698753254965916404739255885754902135113230117649971633315057695446944757065026478854498121894684365167902927239323616191488116546069518551202345594884352012440696516128662881055930846188428926128737574613416561626665224324015235305517960174584483931987558370446115406694118058064378058857576341036593673997125809799289810100965954597163415976084932529056971202851574613447417631824271970978373313624214501636068858482485811795093984688031316716707287292959595960123962322605205993996636568237188008172408018584344608328765710448447454108657326992949341435043637554687444511981490829039286106357149661570425537314959661997439186688056488243498991847305557308493512976658251928808748729054229350997745393496250710317581286627592576057995603420362491744949925673858953043840147203488864014606725946980769270236243677915325245198253045745142468955987957218096326415253158603064484102753291679057446072676618397469580759007443308507815228767896391041481862524639905619349637377853667886507535376383743924379586908439740857358679712662780270633976155787651213576077225134342984830953746524874161456836753436926120786209767168307873232624383249363905863500056344759828667588172187311445083296875772716259329943125399192308747165307200957778985728070703034956058051179582418179646454090826696478955134084709977328373515192245154207363530802393731125655153509348236412025164620365897504982897950857981489358584774101246917637548308142770486240131993811660481736203610971342629483312473166045629671296307664222962923084911674979702225154293754152915417550535586135588756678086181967243249767791139049982647599120421587030987921135651074562724171165139415687485486158054483297871810090465276685047308779466683412066316497226095326584842315993092198128311409678037724597344450775610405087542774074368600525258360941613855123081734673482279881272683110571372475803180257063000058475881611880415166144038897149837120683225663365390193936248265726176132570098284170499357625610491968478877988133740408658573711157941395830429039844182791561759417455225179772555148362236315639835623826625738004406163894472262592956035038041449400350456643266508704971961231544537467820617936205390902710056837826272172925641243873425357941497579508752817325353032906655437032115111225840691187966411976553412444931273167912939677075945596463862613646650420436174992154432114216328705749194927651068025434784988642798700141269271582489465198911215518275957973020903852439632872767634225401862742861434186651644823090115761940753513195160526940400840401322453936760197653177297856185837672665075543711763979911303740320617330925220988677290845323566280408125739374633300895850309610435493842611425945061748665889179585006607531451408028765680920430526605230697364603965303277193391225365046336168697067590085582006402030127941081178433750585253812200367158042846894662331426090522675606082727349376229151019520408278163507026445731435363910923950547773731768646936751803143062533196069123931378732795805225116204278789023491368760837301625373812796923759828914915817146947467818391515439838109497654145600121966284380729774543528194590877717241999383100761951707536528891364657444994738882913606709652663133084323957500472835041694607416972723269464104961394230465238311292914892851634404607298196241159596620777378071533910951865445789978239834189951633345109081056046149130887015731168090179687316454494440005234976730491953525783284920826231153377227725654402817450532424697179668473882476915508924309663447948995853810778204306986497502522149722948016543389706505837541766534413693048574484103523037047020701761124019297188418909975727645984308421303783039913443861321820191249204185979449650394966602887989888056162790833813917986808279080100653731786906468267308241299125441921174708957826661258022884200280998697490757414797831629917815032693982184133656726161213538569634182663900961856402229813246764430185512419187596788489925875670481159795510320513895931826502913419129373736799535018733423823625668702620211120298272344256320539706120925475671896263856091075600983783534649449553631093518222499874773084130350012683129058657930171826317078305810552346300275260420942378332851719760802657161431880714754034865090736299404747004345268803993550808162347428052070345005959798591410120773044346972123555487939834430947461203766835181293543776404325199219144038838562619049127927668995479528108873259326951868104665368457579903808621229382556001907462868664601415947444953528748451686282234981814179298720863147978153432485196534307780251711754463373078996003254123019155845671349738013263636821721274362516965256171336959415195663124072473222681957898738529874507869845020690609126131025113543457886270018303885022983234518369328811144390526340669831175300056057116865310453129387972050495072509616959917093595622355019501392942393362908707015841491379767322552431532537637192052148653139577360148032298505315771898342257681014546488957378273328685323681266844671624159438900609166720745273528673482382164004347362963014982993426501686994557680933072316471887528365508776642024675837934944592665659862902008393149029198672103544230399806850936538971269749989715273691640548529288810367644143155742928308012297198543460212521461490483426639962624403560058733952502303420920809727282254076367237622608430276763073004750754988314155839302554025091537600469213197949601161953493415745258416002552020707809279515797171186046083003604931561022371086391880048235721902769038061004761088592837993436161174228946896228010520243158955937499505383039147539641942589806980488502756878056389431281549128906630168532986667587658142042483414391202478085686454531007548585309939171861713131253233671807575195914960781477135189411760348267343012759187696639374507774986873120479468314400160080909747363935713916067067905828683503830328695136918424451818084405051632586080239771415879845901573913542392499872775086823904404669068424767860209040925536522291465829539672522313486091165547482266226199790199135010822869593965846411712101154248377159205587203509407172287144071441213215659160132176785351012438952629763047823180560617450254076591421811397187030681691972357313093452450219327527246558029152432141083147150199507222470382649723988833881890099933727771585018260420572823160172651345693911675286921012351500207547403402554361814608721560144237331644900655138309805948937488216362846032770808903557970408124945683930661956350564036681126175989287770002231121456831748086272783751803192471622726945348649685206023900062233160296683661494079581778210020056957716983507336865656289100887035036156894602038764606227560042144382692285313294615135365298523473091047059507832345245124014683885511997422514222464634584177954540065546918645507246764150473934985921244588260465263910170380000160045699637386867954995616418480558437046076358676671180099178333586987792169871364284494082384261855603274654640530690816230903197442776747217943668681360779120535826295077548619672199834162782854900021543916869874724223060120786400357449232755894391421593056090657498576333939947364099460397977478420678128540758605140253001473066820975924942480646421488762357835246823349480392980861834942575587157886459065169499845425717135323546771123491883102971804409310601130621322189229001209818250099403472049226841799084559546204962230785060706719279742931911371484577852101390540809076161932486428218019070961379477582762274753887100259313872969690259229940210395991740347063913113736628057596436710211019759070877086215335321964909918444494850829712294316376989009394347009396761759183515426503315815134305013476478243928874210803795060313398184794523764134587596285515050544166762858217836488018193289040224226796227040598867737711002964007523828245528563988614902323412646455242675058394188761916912083771552644774629509714272169577602836731233275151533434177361696238667415521804722633698836990895801668396893303194422745366397892005042821625814730305230504526752920224616656031385673269873484821860947573892683635384973147463544438639547063332917586037181601234216503534384426414586724859971460977707211675692270973751107696697965276161805874789887121684861118663626011951559336718534805966214576904005344229707572885330827334096133469009010228019620819229459633574121785842882969254077148220275413484372254200255274459368241190657616911653853633236037472685969050998170910215814199741134235684856427095235829441282439595777152851246244102515469266322959783151809345808350683852248797458187480303786274458801420153004153823855663915872876890816850984771676468944659484395737040654623718554697829117825534384071921451178329298065499849713158678908939213891769511861133860764044926064717295069554340088620627240304033994510652784998876544750639887237040223407232037295456787269550167878048784945206020804927766600375669316563904306759021731055303152188779965029474581120804770758044644781492139560102251815745579614408207778354812737618109399686034177133062572457303837985953732258335744559032545183559798319017576944334459345865812431413806645277430875547384805283670470059652342180203876550900295166397210867974829685852039934542061724348470086104862736604081939870783466966124495451565395764489663151817993138397467385710244813857723021651450355294456963136006118359447540375344430660688983915972369485195503738476689387495140107599772230431153638819405775305841087963276945360949298043109302316127839847456951920678541676047326009213686511559920059648146184455363090269784820725191276836333159669677026121509092223064096519910087315830641657018225291244481461776946730808775936488734049452427667638412379113787163816906370934825466726036147883843980944091403259027692896539335089144170824414893677392447230255430124923895522423288764474545488421464729113833620234215423850299750970902036230038885858434507469216195951402268601530484455736266072607094199308147521003018339169474808063119474778847703641853335270038063541966315143481876523152986533839743486113825746230913974707088670349751572124958969760193473023299199363782739141712268030585336969584165391274586760012689394922371065473923149761281037946319691211088078424936154886234605298071684178340521748067439396105732333465549997644318712014351671905893313337466213254124548475408383571129555142984209808061605536504197300838466050332900755570063088717233462619294857444182155587905143120128167265459933827170147049724664729011519683614242410308126546359814404053477713115536444380425454842668439466105929487158910356115677678249818532454384650818894160355472769564266420639607834821649726021791334171453459506492661625916182998301575626098312083333213371230406485642611771619920485478966783779975249419790031160372751982576418378992813283416565943252738545460589582566538634090520158330587297483921724561107880465061975324675161632976774576531266168381536016783393412307146283880409579297741531504594650444983515330856740538161161666853527014842050176130421419115695963439719199516944075519478919921214767303413089952323409060895522557033245999733450671070884313761659578694867521370098720788106456718693383538395901896065580492191260924234543176970394430300939457609094318948758111399355394791894548378454982853286480085998821106639707025729856498791938375574670291474039990358211747040633452224482841887131297040938306922361979259911668806951969414672728810915614808661292136891376319536943123202021139404436292354618463623652749737850297872148516704337713473160025859971770804263541309662159048254975974751799833943548812572454466223219659849146553363512042336625905667371104238082447010564113539104395123204600409715774418798069728861809983792511816827784783424321620971196970542120567798140800113077048347745154058226434470512185997588204576906480564819365781285802875460908827934215310679891285806292690799965216001270416902815254357641966725130415907048980885444448654307432010001720484174134027139125178297504365389303515214222323782657829320443407496332950414676581660216527733508193448868089817095852522862067519641557769622930657769338610062671786678179702256093118650492858936844147201241521653469090654709172411825682177518214358341154726016839783197324665388821626723519583153656122339695152994445368201611994285769111438677771856385743130197137649012865609622776170242706988449437362262538548311201706335302121533506598280493221363348646679984781800728123478806930115370518986983602621378345371803842923433415930533858767855291251157325093717330648807008671364512147633131335091088491622386778085442886824018444562648391688287631684466445309812788348959170535272467523007691215986783881497730805084504125351768898402483177546767343218865044201040490965807342038271005636153031441523356141326640384656557217975958053167471453117327850712253200824789175819551175663285436615343504374956666414291080536018745358397348664871031325318676107300106693207091978885025330590220127820434125818711062583039545113011513635636124143616498668484925476448838875787767378168329275101201901255062913394025515990925555107953006948544895745623067554540119596291977675752161796489165860054011847856570899137631080482196929225248560954718951207873613466713952471301928571002856100124219607731612908813388187460172573031428966985799748530983853647986177773218985895188481690622639943363264166517222207613681499230832070334332883112606893193765852302894318212615335392589919436552214998871138126663491318508400445952530155929627918945357149744732266223797584549432605421419047308426217892391492780860488729729765885931424375189644292940447811259396510458761494392531085795100393241599840477435425028000507695200650477524022588242925535179314584403851544574156565695176133535619835387350134066612225863218263157994531359326540980757953487979754916450678502458089655527844779565028659127827703342992690848446011575976974812846106323396799829668907943508615159494995472948447894761616090491289240353456769449355678495855918281242621865202031779385344593554903925665662359381737932587532301580452575389547224145994515703866554107315310133288737366049653005129405352709541561236987481209258426529535063986513859167024145683201617766028039359229805324308898555850924332468408269009262046874221919791197055940971470538348794407464390104318853068399728810430200656637333714822232125980179878360004407462143295291264675022562129072173990031611271824249379795056716012645496261260975732295670470423141956331741957948265161883264304547869648161066723632077997163599480768871436475868553573597119458604257009515682222828206890398891938830036115541514717754565718688826038041586978209479529610886767476395343717782953340188979439595307542000095393876732763792849581016047091214682005955208224637515224266422041992270489093166121367104078165155803033930633941710250937208630676281567194375280311734457975126475105632651083628170481821250499273886015298642039114323550122740543749630217271115802019295039861737342326867482854551185216068142473668764853254694073130391370603313235768275528850918433629889930496618265698253380859777410472131600379600422549033599769666909995099328822666356289340105184882097899431755083790390628845883669810835634862010614480035051784040771286346927558731531983514104600245654254666345199053786977994305829230779443996431536419289996730025982021341812291031139037446382017894390377236439487130266964258992818459281810707403960639471795995817222506749660985132027502550103074798749022495261473666005024143267966057566768357323119195180726377090059323936401408577445970711108465729128478441963159724254189259433987446248086625667839879375798334598192055785947480163303946071289027656219713456587373573575808859564066279583501135433635454766409780099049238453725165440131854361615334622418373601084806553838025060195492076262913582936352942355353961291187958663538785443159224522154827649963558747616898215444653712963975205308424524661481306528489396851077290382346074168321705094244961134858705479161901272958969520938005961967461167718563558228833011747169350665895790914317100108327658606345596210624862886354309206054581732322976193705918721579473777938237088576525780304933015322998585294071021776078946612580869213624647489346464845753816798217594338314594533293612634549426500831176367972936503941480987789718284500202097312877973915603143271737227376133506990359152326080893868908853034734007096356642796775985708996092155105858734572065352760553345866816540422894260976949474830868448018171619998041330910556989818583818292906896663749472754000750022169841536835029261719574785627831265618680679415598205402552967331334302474459033733290874402183320219392610899813292312820434841028150477570077828315132712101305121887668061484129439218774633920954708370770482269607160104637353572922645371298110978861435320323495702439641068594475340959423184138321383656205784837785363216104784251034314526761080605960701140747250616091356315041881903137678885256254046819215618709985871830438982881772805219836676852714958674312257193092847541752413335352110929344655170552726547843549733961136121426304983524555646716646510871199391179490930658147241977783391126622192789040431007327030021071326048677455609543004812540271258797911045246109504097410027743055632445161106220189110554020812716498254791548109356094771519638125822096510374919679007256757617298707762720540252189668335880076777702769285879102688338882145500906221268964992769553821548998483844295481638192357079649010597142320451166744536534386947845042428633046280780913878612333416045859190313914056518520195148194699353663303661848932135467998335246084812230873824852516972666180906503399204085974830040252534720052102446017826623227517316787188233139450921466675708356423881551047224133413991757112219578572336567298696903111719223516191852316434473410506929267134477621081772593793357992688018520541734428289731183199024827773537945814786235692962299717763415209442901894980273882837655017584888569635188822886290234954261185486192733403616278157128979417942727815590439276790669951018841045970038991559816555031335402124204186621375163947542730246480874293287630501898776438323493472452053632732167777768789845220617817209901912347394369031586408507655739080881723929207359418400950052938806567864069981826622655663704353148149212952315786481082279805995789127996144136306063496517865861610461725291296003054265848015709413624508948059100174862314926201186320331659259750284855938653695539366483490137739986488718743818846207037950042235343452874025242843207307249966227163472871444663151143979723306085475632222671053876155202820099908367124733134994218157267659022792177315228170008718806048792129428846863669083556207814664369452226468530482226696874734615733366649870640996780367600911811988179420226016559037053192308867748460087698869082759934186553641981952258808834530265366356628559612912718857607869541358252500779266615897838054507394488349202369142243285231805033490562645565982981837606062374966252176005869823846101380460102770429405844886613761554389955823382461904682487831310330787373123302932167113921596775044053777984705214030364506982823598891495815335156820710379855626545634762322593255299135323889849745847651821437253970254018746261350739810481971228994508101323057278081783810174919878256118600245545678906350891257751534286172670632346321517002236911656508026491106010225961319181432019403227706420118660171979290597264601586637678266661772312188913286590064403644626881186320124479551140046681415224298664246826567303178279471403163428365321095466563943982884176129330337967831513618802971700544348536160492616783587972623683773962677050821289827248425982372923148857184476459727530704834647567241748732062624946820874939269098267394629035850526883894277349519050861067894292474843727939888726011503952181357566767455524955470860370816280304956005244719580000797350496969846513564433106043879405879567540917169501270628480585841334514392332267309478439083748937411487605861487311922057772976360983942565258035003477040434628008712813030367785157084670214847279451309738711610662117424036063649693702020830251607117449758548121847868936079630032887314194516397682533707208958208035691177629351248674421425071509877538482598783153776271410136764697365884478447167209101339805902928174807802595793314308736594538508893617808699805984673840793986907146564924273978157255699433502061920049617892209429922713556142102083646562321034205492429121902994474294531688268271750100928578473529912913617583517786715902155378753502045771405690863670222518375512507985484684364084208653715290583364586632553646761973411254132248686459468217832871478433294333429055178226978110541452145153584869389081687097040183799647473490642316212336384337219105281688621916114999990855082468316089781380063187511250738942684351156269128350655938055074693026573322937041081140902768534018932642780448112547168867751588183607365673771520429872467003326071441529446116417582167713375391573560845466182420748232443141856697354404251152730038081564177003409805457143875970593820966289366357684160490603563835651978214293094409586563645327030175951854189765834731845872604424599391615736583934891752671542405006231524182087124999675774862082418273557207555011440090975811884968837265333186085656293024346359192322637893018332119569462341772530911976282276483788098931660064960964023005719085087058216615428556639089472747204497370358815425390967602668657128554521504985563925233678441352405411128651417903570705707936804523646575692712645168309852397466692470467424667381712185515574557969304816850572340737034557900053365317813369549500150139971467538524777737966948602453568949879704487942379205047204300970077595729836243623191783465359247059556107157201188826428298109045880447305485571464625403874706881136027583762482267450461645709509070299257835026746568179498097324174646849204909892282026854448755770738060331731629481530376994727561439683546400774137286254123119632735384189909172108129556759485774157541771589277880361456740952393524864135660169299445552294451860598444719561057990072035504344054334226395038763405358774933314575929911261939139643042753400450564045579853861958173077996183892156933254792414170190509262575843601615624789299317838683095773689845744986062667912425386484504305577390450615871077625786571841232637387961012307468491042994306667992538776361876860216525775833504462606445336627030388624934619094458699449505951909233371103167204642641999845823787202964496852737868263709904987169111721221226888073624589079793803831030944145668007346473829579143166879405700580524247243410027005526737625597459818435186868877639207101585459697552602888961448984127355315299567682980024362283711839538685695861241556729258376683077154258401783423630335534319378193874489228024791497102577954906150160034637830848087758254546168764057293964839819158604787527274017733010015946506605369954938024580492758898035432597957744541301285028235125792978618839949252573479345975272202138417469913544298039051001974987550222998157240144799911757562999625875773812509023947447065210758383806289887508400745329452419062795746800109427534741888242163996781654894182190372076261381374329531839962451493912084813357859859015317123829996754350497251722606397048261929870658040608452069200989959823052871398602542986325033819566706183127356954767752519856375762757701487033552826422600430971668767610642398165706549845775827066058558133466195781677178607870471816448425675427711756956403937174049494669041647983818882822087917892679223937443210536468267059693239123179794071678465131179845529577077035836936898533396724883199743618731572703904096742311865782262964726513928886591443803813995592956881149990730540580718536066699071627176814804640571650852121498211046723206486737223445446014691617591447859298008224331751770836617653725445553152338756025514178743555400099246667790362124608719146044734635522321616913931317914943792589162644299990767329671160744063170588912130264552824749637882003876895997464222115903098315082009824397735552801763426208279602752820256774452287169618153182893631728714895662559298699033031393732041072664691009330494029991188023210414868332833046878545358152163756874569889453672848419389102522669994866327153603475300847118030405246911139527744136845368711539387121950980373595598136073477139492587310342613101488803194421634296745701784605502105212355538843712260207623377414283575930624494386830149886027068555593925268390270739860376248799232012198456987673082856681728157806587332776816426428365263102455676124361534819799588891269839758658519848463089330428337268684158149715455751301062919022487530986678460358771670853033461201759347879484145450669959693176764051216306845188003360261228366393179176761464620251003655324462875712164825158391025456249796941295210281298895992231186036253247130740976671352430092465575965060850235243991582830223742836043826867258450626074555708161554527253012410198346190751410787621844131872801760030413782372424383484531455941280151211707886406442648728751146901883967747787008128976384859132207183997789261657087108808657150578509856626169096000700888742064342315534455430209006053133345088880775054425390011464767184770204461872339946097060448809510130340107592264842836481132980457689699944551084923498939933294253694480402130922790908454129998788742734039441055227148285050526618380590340390367499913129027063485831399577581013838214440761296121072329872818467893887203587549503356679980365239606845092320700191468797170196225925442921411387276431587203855689330808008729632510843119238160982495999797817234294730351123279794581043834964604882289320530489557323627908292472354333605019727294388993246891971906033969968751421422023856233333119480034653377759962781406803548868243385677752170457135332509435911104484205529111017245440749209608544001584756701468302555996441417615771400607782520682806613050756284219740125821557696039771530557387062080345385264561594434487454047419644255989960049465634465293103887349975569034739858774385669283743616645033950795794341795688626899142118259536169352884851800382728587521571389252921061363730609509394632260312605868581346494102189212915193478671652185493864099413144070744661758308694502632511672929289059346310082308726211140321794373954968325051174257550976275436126108563320561687508844609169702445782394538029734965911243269526559416759585696710208826342145216016007555409741942491995239585708770464913072310006932101465079338588980522034114594949335374623962693956187712345317713231897046896516569327457371439058007859547649354049938862903223177728924310353287002731380607888180672949956520104709215868156632847720714988604096645818621441743668210255966773620804087294869112451727762100126462400052723905334675500996134383980367847311902697338262875491023858900851482971042580552221929727547008089746072788688344707243649810680987778366282300284966957563440442837695331853596130663896445331567306477481007963016759328412929586981082557774482374605601734715391399621865726949753644993507679484434425526980620035956516717382675799816901719599315306716060616264403614780646248660888753181060431628058684187031201767159116488888608650868433252360928724100196375415274373340621846156586575089641900284092656584976421146867072611939586202106173955061345300629735174539287352733181017633885032600265033347034093768073994362589517781619796894916615551068390389458627859181660658352780885176706177083680336364306303386299085999578124515319925126527386760623250718503283709838093984076710524787409843683613646703992070745559431956407088500233360807476833143127151194826763598427239562391705781322533564474967766389549636136588761488727254593496243229611914034075153557854006058640073894272276630933696755700519174799976492363614415360619129607344548435678553256483263259475424925084246040748501374911337344919962065245409832905503376199740985345482716375344411848228283869539835563844948783349742680671779254066497483882660445216897726229863648591754549405844027262269004706524876183706859067094043442400997019927724815269985129908540365821714713552904996244722595735028648955057678714668875643133998566399032639676296759912431682495804237149196247658837574885485898965876872868473350688289143845482092720778847121963815252067435967640967769226436713522149318791332150969602659234083473459964123176777528850649944336654732717232352203780190427720511740053363371937239206404117591669528335609425336092406780975468744606678628152481324911564130231917185752520462674676809843556974483196052233667605987571951182933245478723998261915263505147553998430349588395375141406222019731766833432857410143557127497877399650788849190659135582052744606944502507668502633527192884998170960758450604175342921943170571049471411158645199949355693680056650180380026191348527696459348054498311753915484156590613158797192636893626913146135538931563081807211518547089161595750594870654343670832522382880484721704866538009838033417463578214584150311868424671856875701138256971092800035379705072646998195878783567282100504310341027863028560716891565603490328702254079657947002913052087190531958624351777826740455485179564330378896554440839284629178731369395053834259712820135279612235603579637224567543126316327991142033073924215250315038446901048590316723529426023546750757601302563107804504939214462646021115632538752579926232700321503175693652351995500168035114489672167166419771806086847488399285624747065928439094561814776775700975791330114474945577721266983181381562573856660481550571519331523021485765345185526455165405901835635294590660906497593045186575149282671825331995827548597336995849037976853155453358078921394773600799769218015923506411737993456798954002321917023701556390511500037758985670439632745215626269392486403964374965195027118390761466536212851467769746407619198150714433968020901008418526720572143417347219559575838698329334684831949918988281994404969284959625557864686204019641494639233543867036848505021752991208016348089003241281675170809880916722274684868486155603536245124910887515202099835791050358183106807103072609462785521804703068857974285778275662856310140975262155921045270030288954860747696158523394183977924251279851615733246391030266481751017210248502071304893372953784560102122137323375046292659260896841924596899868860821496848459353188975118363358077167633888000422912085115973511049982336054252516511046432598987034507616798210379006517676566715455060466088056143930120774605721557012125506233045324566667808334375849157510611491818531906067022448789693114547509848043333991756456204770065423198819117724154960610081992027222307930657916684245604023588031929753814233037852798024230647095123582279930259991701022043038509864098316243233568439593037556577586272872863326614254512431536786918043085358975305825862600962040212709127325033768151181233057934591827645206560560994348048650315661478526562632314498813245033093563946953042752065870892870093236343261234505355900921273618485045576388789344430133067463858969244397944081018819546231481337549081516769451218723299609786150433222098122595776236999996999935743535491071009222546802925249716441615511065326507977361864812872356590579633823386118593685466821125087239282951069097975795292900909592640110890557379640788426571719894001437028603478998412993731981683458859716705542246222392796074777711699288910550323420739325057304557568897197078087775805604733205491819302659465849077645481417723716860335187966404086376737056115388940384920819680560063199450723815000228851053642948579697582009439600415443429021358769670122856648587130650473969101564284510335644874924191914315146366882295730297590536987922098338671185605714035730081060455138297077229136299428359080669465201252450481421552825115830210561958060534916297582357040387193787503399875812466721455769392507413611110376189389006394488776058706159892770491814152359139751593522063721303693364673935615652303681696345458414116760655839563034193418231583043433693331230057001648469351115981267886515236542236764808921160731684990545265935261637615283289337763517235814140594057470242478611550048514303758465955351410893443610409628252220329611902188821877407345616777003095962481570665007685563492833123344907296741604146598949911559812609054477875810534761020860171991275108102139722215268356293567637716158594388616508675885079566322589107479493251973370331717966385322218562053191315387191786362882489605854908352733507380376593379597699297528229961171872838429916297724785048794825883821865366055324330426509143492119010361282478418114088268479479091911781925096223551157269647705120753008787051897467780419864882988580048772591427044176798996364014215977520614764819184818774651543778519616248321199880078828344205471228448100256753884117217707071068186061169624854929591306790439265127541914075428047310267805778858115355495949453245414732181294373771660598354547711934298229039174405903226727943941944527732360787936334883932264222198051188379494882280956639769375499580769822437163734173865778886911843549889251675718402818837787753977082421866353972627607867504329679244421829247767734550830915448529867830695720518578792973229092634346917128283303425115922974570031819361209845164141330607661484491865526653620773173914306798823652931631691319165732424325496286354014624637079566279727903535707145635914587504570951143973895939236542766449382366967046374536487864701404816418217400741965740997899275156395008675780385215189190365965989143566912995873224351313034677305914763768900201224831198993988624351268139996577716738214370833317112495602227665799123354462039821971181004013625943094142718415626660287674689950557123283068123215543503505897397122692355170518826366142431621079187172002841898100484350610941107672047251332123067466685174477818314252346937233742781936626816882731358917606818890763022434412405331312537804540780422684888762685047264501404474328203689497637141131460865884387065862649691940590245293280154597817012165642731728754687229706271485553476953536779305851323675378324411175427166153401277059160503937783060396626833697491825892666874282567013481395047380642683098323130787662408190220787478375342989473500554971932655626655919365523182235514675604072431516531105408631928181273657616892000466639396024597341950527242891521301633639705793541825315097635094991077693592581083504298246615881015561631637246996311286888416808392735592700225208999803233764853226620826752879101343912032345020910412234067911905131541422749148865915618544931393542821252605528890697914101774718054226542166840250572277031564814833218769473621266780793125488688982955720640486156783748352557484010169565463040698474015521394324779904334959814398367678936333137849795696030409149424725149073371510296026837264274548639957751097925658845723554817027646057203467422687845428124518403134936018833210898580827350810092772197830501469088089436740077681679131836108116516820943128962708216501484377636052069245542658177794596129729210004609155831664399886322721403707860469344808541650094857215590406252590583790351899133173284246784473659194619805944346753338677636173051890305481650467091673875743241410953629124413469897669275759543421335367434606873988118210800323134813130617136148797777676760768532604436114191642756371994348308771330799885008829652037512301642684134464813206597829417314367905476985781485134744733177563690264304048951517318617481271795376840171618400717304709254730204778803343976216169746354956737209239930597470389379276782921419864296043538326833441007437589136368642891448916447566255124439425300865324908408253924950335124636727823194260703967301848917782520150258930479040601126055762248706322217093714891738404731490911046644039898181242334023295397037610292630300078883077365740629645526757704707166978813112973553397467350479322161402329266486485010063316043015861770122373042137357840056950789653642508904436953145829945353111507842132819596220310189673736161216984676630674024039385741778788585537417196330337658388379745945369284596823914279648176523569166914192259562355795878616570014284493883125952380731382611683940791881798273910439414630515437107286656654450921735259104965105517604659750938440887055795171452449897208420104290240164913888866930934559283033204418419766775289358946979582978929250129669019221516540664065219044272233432042371538612449199335834283307790591740005587956131083406923374378362795861545846393917371098907400550454112208411764770324333021587992366354943957239188758103404805486202441074558422947362620119107559777198743757304478225479428575056452393621560879846935375715089280333696251611206269014986419786883054486341878909983493177156015880382979390230626595151323558404452546449054599544695287103786321960883298636623826615599897911527030227330138780130647866684705575257704969316661014164515841405209968075168254359898648560946836668827660176584304905378283264973153341906389680379399264516273277956228326998525352875412602228783321637887384918525354530655020049887380575996833272901114667078680239232747204336567339763733194949129925509537196543725013689476209219451974926467356901667083872177838342333634952783007590323130633189256090913440698314810155384803450915930384975497502022786804012532911066657019418636645267253096054093689772774340292206108206556240917807702498875403837158998223362094797294691694960934465465052850338493216805192964021540633148176150925870564521211607890313021368780501035237306341991230616180160878288185182749855160018532054725803577758524661627135447888527746347945143334125192759913986245040841520147473920556280283725253801444960255452653304852983105510447828425562508645856500026968729846079372726590570214768291199333863877106207104915926439427286590984134380149676996427646379095201018820231976717914652313576139104031624415372022137605027468111141813251832119867764112563631949359580604200077769496914840518817559618031496255733427012821361210016830848731484247863564082733590605883737510775114044456455764366138479254981896671468315704976335417341168411367040524818367309781675876843992541149200653145702855590784642448464571994585647799031848883733824943307752592412699188095070602385079515016626465693290439252880747898312640737609444428395784445681746310474204479328824640929490600035431709598524555017272661761336284814981710103505206949243143281252706150476873727682909315844454556165966525006393554324476760427879667738544491241691326302605820923193142911704737528782274850424793639570445067948151047406055036646979716071781053288662632823813263916714759480533748048504769713545580706641869238872260996682920809578971717169153660964816985106532350852590242444894821178189168435274791035296332463642938232228634099293694245895928650517081359884299443644857039125561983268060265917446060860241727640596774529840952964933721048686249364782641035283508464287209206202524603075387497391212910710658383454584626768070356069428538109910869153388208294844282345569787640156462807531258550484000915594708775885369583653226127898735450731941512860452485896674486451819991971947644267253389128176217376589208685997673819366704967437703486957833105571208873938349432544600319915111993403992818020845794444658993942854033327836201748670849530444254277540507799239804628544478668610050234855394998132353999933988065584033066624882622319014211417624674262058333056836219959521755839985198149419156557624161598829107796243458606989739894639673740725670405050652574155310795354139668308023764655187692439105684184196801977007017947993359972130183938085358961795223027894868053816199155162980285352273989538004260052694557460124613526772268980891146780404651146749071735261179610095995099913213741727943867666475559695843598794747693118339229280067496490799143423674798886607336951316311129940241617733618492708856476347455535047896718007046925905085532526767656212695257444910454315601311794269910727436042584159529246846457351179195339321293903477492640033111031926603197112705796757460761933825366082581501904125328362420421131301694617483802029116004285426683112729058244287317698745349284423170340231886574385245824930464050938450506441143507754219696015720670110667669942989446619352302280453830760459143638916685287907328647146040148357048255274513624952679102127102244562055789226162814409727501240767152827240172399849381311724097861164405780336889635524561753525756164960021431814046924321188556493458834625120368046211362782026809335279460086396757661149211498151843506016608534775279093392048231326386424579828286827805279088267288756274238476474735499185963396261886061733445625979268681117701513753595876119788081411017595647844401686974868118430282082926122518425213516855273695636664255504388300575924887594647085109882227206661009415240645676599716956814076289088540172053803588566804690659814357852188455528531582912875080694722071619159546219128594794884043698295921276529329500577802184549249666359564785917597961039642950673956897670052488529183706347353173474321649768662700778688298240540803226743240484714753924163780572626126510503122286353815478529811749201556628289609057030921310820593734643186615629363644571927373301345004554755500897954514586458025467842401143458490978191575088550125797413787543082553799112978192090915861824631866816116223990561257632136823792728931004732612654743381963662320279508420461789530640628706580405151865602993124094533076381679338182643818840796818839600995780754786848989589517970601681226181971510370546386238635361088459126523369654784919898946064888731254005232538913728036740478284778594204454359253229954838054633320587881847697948442044016401800640662144630118876932008231850164104088989347773044127201633089710375897057569818065989598264461446228275240205849577495405623855541312386830865413347325101103950922726170195593229122155863740153826137844348577291249016809211859584939726600107114879385003389385290998056143295088469272421344804272490856989150033954169988070101197032673596229083356922331334876580562939267092011682667366584637900720603442378539886059282627384499280719693012122577323346788402634481436858390131009808658901784000281593523260963331629354271558926760698327825816220393429863684252533141809398612930522601635055763687736237589243183130800291348732701082831670762719234485495988798857023607163959103498670637470490597032476539708679874625410395150575459032672981930808950879068340105473608154201800123664356667097615228288720945105870681461791560658620260237847218652529613868929704109175399482115266996893185182178283271185553276935128678734887279456296765048228728320927106068521494135302280883546928914922196485484520713877270174482032867910358067807547517042511529506391256673043776607477644701865156519303548064265095163513475679412920487859775686011381697927607729993472759586395264695308908661305024373613157202373309202556203225787989572704028206255436785703226208320889233694498919959315529115398133489719320645209882275314400469740713158521018282674324048636593013934823287712915596289179116787516142175932961502090114998058205033075180938171062264806299068004009400881035168696227108238024126915749861692031738796696473979433607654139054576860644921694353208948284422800838953963684708552253270820024642132960606408690048130985336941436026873504631629930409446034215401274722196460458947301111510350568354708266492043904193216008813597027556488354007554820722600608033979863818091803300280554900980215134987076044950805896936011466470965051360425590152522482122113814637740430118294931441891744098127852221521838375176413603551858118883944060469737342623051132014434788425397577010999668280969111119388265284129600005010463075602349795862183503760843324580861195326712353434384686863215386712511208831457274074026905806152030295495407312290187305743144797257130471010389763150948929719347069401289976803857621707288961715678863645332677828025583653929368758964082103860575900186072471989417476269845288631555923872952373806071686246191453113034067670308129302421847703000917664745806747491808022905401713345339770885503181537873765623757991566056171016268051042575784705722856445333627722996829984180271550953840439804213570902354140663740504392733739687880079589313974529911018880044525254653937288062609200424509872391062143814938402888371592149455876191387334873107624793458320181625589116171642437402536727441289065959282050649159912576974987665962862633379969398136138274309213681835870996921117693177134292136099850972484248299912511516783726560434490181560977494250857291390244999769710561665352858348879187110121099995187335788335755532100631948665230327923644207121134314527821583297912624427697491808679848577226043940440137360386845254658327179301611583539112322095220085188752576651934260334079550205704810965678948044468946089503744857922719516364920192360198335963283357700395909647095624978423554526747644116505704025769310325910832501568288874212421697329439051301938274787816278125190483568074614498969584614303885591046363929196921291145529781359420514207853084062078717423502584532645653405075559075345123912873150309590287284731553511729747600678988049227651723460771682292197790842253605885148448266286150318912422435604410968126590853933366438011645751609609945071992375073156938987896912613486348829233123416000924250211550634834797075288867345767168473199071752121749081850578639569445628490145937063436806216057489221331953431569139346942920073233139061828628418939069809380397885569043288361966556639313347639890233504491778047327033676340087132451189681825937103381430467045794990247847101579586646879225072229102037290860547450458353101795247898462057658889114885422971716233894142898713685778187113715383440150992896924379552738632337736301394617329211409692398784670614795984705916508411079567886820434741997906902850149355738153047986488588367269233804334513558452302248756066099720627173032015089840298398077874000057049450205193801240271885934534533022723561771165638980651793795283081447392064540284435099931290842996799084942993090179170344036406501726870077049607433804002447375480244175680988219972677159887163361634246995273357838657424973508522369144139802141706565742421261341123776249298285259237249879529942612976860418221738930041359211209556137009979037764498610512648467473184670284672819304171689437879971239991267565297669697703106838627815706844872534353719702525177034675671221894378357112607674566068759211298423072211259317938639399992215393551323352842346093548491408836180497628428419822458006186765427312547605763029131505847813073861498924667802086298759845510669626718366503996512944720502079048145419752481940363295754145719790221853117819911728521795084933341074639892681490628604394360195432532287526750521505260527997061953433285855068205129985506094986897127575559135381551132571247056818965137924688315578078716504896790179696606129707536139577671968623435888695407663450397158662003366489952550685230622806289557580294132812323024469961308873006553406055086280494262922878687874662655945459779328070701162107277442807532074415100559710324252042742790149366752311505977433854200011152164494163764351263368438811744748640936555614083091209801159217866901454864040494012573119853574543422358204408661883046423729881186369810157381883743338719648887482288241164762093915197661323175015853076418660447143325074226562022676096228689169166459412628795777288507639050670759942997434888786581669302048148901444000309098783532187655304560107913930720795698427996886370271859850468602486526356118047944819280237718764298818372410271108297812282147159582676278342022101938649394614441410328224820325279065272078241130136537741589501970927878039881762917747607023248670253389138513419326003929871842423654108430987044529738441417587959095487243419333315594283833590702812034258444504720617591331168321582906435856585469371081630365327792605579262445846381625034048110378434866131112679928892269133696186000558904532807543335319616821213586851751394257067768696528753726748569871935047760855556485288876735029567684809524879000811787132418482810575652880178415004726371858066224247588338464357839884285865397584791800934258670401637668679561339327533521425299301676350752339102439331500643785233236683210456674773207722817362452564567065802648706594511268526828696801040813712374073344859733750895306313524369420985477648249010087211067554146093454590042323626275546833973088504889548389264284363047697409062257637458079926311726154545497736387454127457816500798195468435406830233818660134111205808577459166153259161647507060742421697596304826359155177714414265244596845965355426343146493577258701185945717153691021053398211801562440662040728238446102878048554814269388780803651857771366205700471392714143688143321843229673410581252036348494321888800706433471645311957871658980368317663433936960169627096095050752333118004990905597805311237644241400558093774877571425243649307862867868042393619634588079517472757312263472197118027490816316686925637096837771435609123424758923877508748025698658367369637431919432857261877107269734390012880809347097930283176980529261552682994365677701125031694985718706604776751980533627749832178888896251115396740137596924890933675804064532068983966557517500046662811241934834088741142213302364824619195645463540933182436480684113378085498185809138955750521545556993061045610041404102395706041178851828320567209500400795457379875905607617087342854323888329040633262168856968929460175972508900045295195174167675862045927849028846987594167475884312462472715308139069577409619308386620686628089108383440250622919498818178556815829923255559468938985812101147002635248484488930247206406399855599312781206103723190029366520256186717937932940413918919050422518273398525865277374531704498497649625936294180621404119009130424710485890500200575062330423058030785183109030082527348273715681468333991222121239751026730335913473117410273304687817920128341807176756693415184686192044383263486373606118534287801843598025451161954608740943499713499217131317670618286001037347162251791287266439249353867512907311179027275910017792668200361250989969384942602290715317443787694589064848373286837893517250099155836694929317731250616851352437404581121743365401970501903079240102291339933317457866822734339221650739230453496779158571262565554008775329624778945217724791960353725555005708459821429539552430626062650817339542928272689428679842545044006615201132052811602945916642740133580193218049340320692735692647373270205305733696722655337482964565937184336091507346278844806571094994041600602883204373229939183337958406685983893024243158090409417869756935087395660715510902688621867300486546697128033291582724570024013380529204081623530360822132010161843798166590179734887074680300896135270912044891606405064842533439980970413773892376032773798518502621745459314584942711965967400997044657093185536525808773668343053355306763107911648724336937331523286273148512370158637509428326593277726020991284173469531306015364202806475251584761164779026198769696869112777806259581316169422719707604373710950025080741731255146273854406033149305437504526006599476096664833477959286900119117310736675329555974611783353795310890774057383310971603863590301557778318104296265666665673118889785955377382527808539519026866882842013552464665555708840778478629891734470981102463140931193181772509339929295169785579926488866619633263691743939575833711270021184038674365869157892907240358760215548610303594552122355162144861121721929499408016258218765246122563201628278123049211004945175775443445474646324953477592263991928564606347262711658629431014849559633041249191821379654157754179240344144542238186713706917202777786778325958408211620625547231090388149085667566262744738857636172749607865577256185201338676583087510376405201937348458336866145043013640801744936296443448118500590089728263059267161242942779947692365477542363227910483139110409895404131311388435535320703414033979927125465074848890013474558138678180223044246266626294245623794642573237301624706044120350582819981380685134680618711980615044977120687844665277419873239109103940341148286855584622400611897069794709079187705965384788808889288882437665263430615800543297556968178987341966668892316325303835607181382565821508462351881315023482961383876439435982229986495990854807327320336018376394903445717616440201899218485487254889768355974067567583456653315016512435028432028746205287117780739856048795839292946528041649214127894376492098113535819750387023582803546764033886057730705466367767292793488033291595429437678082333639234517439990211593043852791411384973155268981016187311795772712558514041822374814108080886616252593224682578604225345116830896040252877532378494135543930307596248639379715036564459793207061791645045232148600587136018121527954982669369818536599281115500486250699309866749485081447004964280209257744269919832441663174052010209272558300434299927553036911332871070313127161504824810785833644801010672138413551503680039085347944923494973957223989348044366415782142445556198847803800212485860045468481571756125993486544270306057854115125989766488897114317078137945511034624924806376010583680068456102502736793975525122547610151261300701604141449070991784648795466497358615458590035949819508852544723768438622381510574558718953283045381567447064984238143076483665123989420379199204585204013331664810356331359309925181501496432739239067867203413557119039809926817723513916627675089483880943743643239774133888346331537242491948810993298269185453058028406170415565292437628467793907881037781505913531999141011830089208289823600668097734105560653015504668403423991145950268583457805891317000111135552257370500275636383694419572459018891874516407519366203688381259809861789925481524761477927188963213286480092546882355262485486092985274378801616468614467535443669324034222516426291094755140402931785925032738751525741913580198273805993613602152638279253489020725323710438051588868408468348354272178253665218956427727388420405498218738843182466966130573642413043343664246804553731564904489044859740186875479092545885245154907663584512767472230947779585039079768777914645405205789178465171709597491687659152442861568790656581488771262461605322469209349809718024425261553601020900282966198816354985546724666139373670244137337316074102219100622051945175597258153789567395383436380990523907280269549278368248463961341363324283750760618832496288884170901037067920915221602397294405411341129594337174921620699203300264969795668858676890615403774408809581873986439173175238148186352133884677055096737400036961015582871880219881705945962949371952361831898498979216329222361904135888083805133389283970646967409347306536256717734184514788787106820689102085380113436108216286375726994930023266075065388444067019972684972896504408248673515830773708933282445213877091801209725519715895935834818759126445061304151634567625180978594920467429745331684794755249301142694934094430590150991490505629585535771332778426339519180967875083419248036775860442694508567101329643665233316899802197264192141673335871871873371808655662411224092633414845724314593169540255794993601693160812638172701791713130815343540852282658069167408028649601201245666650289744187773731432284128821307542855492049460696271371138057781422104590808749084661075545581423419226675832866648257203796623607064203223662244894140886208402844926801027208591972477524208834039752183535684530247280269520735265602184205740477571162696723112066103719782969842305514874754873882380829695404959722380731706221118283441450434038031162975870341653480821820511554677679099489349996791893404502787955391519935375499780776954159720098220599156418361606700901583220347496268994726951823614153736643822609174389885889131703715461817928456920333908823915144242417661701644554213318906662661779831899912855863177905199185637354039765386759149065231614526378607150488056329844697509810334971121060130137671967977564337604483428909265541557995681092970376003660802358843670733829213314512811919462424008901617402780997560801536479242091376752433414496334157298538122426438110371214900874771212990561931495142630322889405507923855021314437740844193177786861449741413887002667668623848943517314858488991329800020375543982642809577946182191499285938779846806193896880537870235168500014745170564897025350919888053143782582379185111873511882165649515717503711752102651115248850019116196276619649252499365716961624551624331668109543593350327296483877000630280886564832307701973710404409907152372148715071233423869211794494248487031788976693701778390224328991493259812103049369035108251335764861730994205044293451892120948252690793219335879422545891225268001361335531182419892994303520065090628492353841612241306637942858883926520182744318589564843885646244940067088876922658067520002159584028227974675189436165819696861894649120834207700072771379178659730308341088931710559602255899043917212640662321451461932084295415333109495910229804941579252430358983971209044156154217434518861949866273514706227787709848259977883329173473680834610274999123976560010999715535266986695563131732416264843203924903783475160704472992186795320109195729906288387893226674439176319345009587292293654609581440357684311021708458383285054154678510887301670379296932138110338145145439319068233802833268636719022805968571863215835763463835643469302130372086824998440022385591869315872131589396026141728185861756608879364845365533811075886998665745677557456167900180085550560268237749026041807750537692412711092283716416105144281051313042780654607718225266701414622559892744008393236709953404383974763262627513168307954851378102860892183428605779261982693363893456406687098587500823188414165917580850592158627823292226115632597419239657800250824253703335470393806911367786771065713406132123845508927336029918407347675398926918729527788622874930978139482584231908727269507971881019997681551353059802278547451475878152652836665059295106627015718184087300155460862068995656395649205973279583273781509382970944443534925628185663515396475860642894225764965480350499977327637822491029859170467731367764988702327085879404410031020129779002496684007184742889573917291859842618217128144576397024855563697738075603640750200964011751362009690804765241211658856827845580650870231135337014315102909528829338665868635859727603592981529104221815272555807103502079901963405466091926648494250078237880831872930864986042718346382395718647162523981048851803831208744216344466896181977073240936851428297811661318479809295214642503312304788250497961932310241327906205253691437058536823827721303539973961493943215549949552045211384914619352240850443644013637096756291720938634772108787088954325867557127153204868683381143084702362320645699807027201996234476280602357098698132841010621464079669318307544655081982264018967384046820043498878387638958138536964742880814233662574900033075627994080256920902376173681162212465962323796783808423188280129853219806906102369900158364225205279286048953780004277272419495740589021629490591506692440187658177477945072678204069722628037249434414009922892766193714879923284443293971185922019561152100972899360247214695217880113248375668210097558575413362764523311646890063428234353004479885412688048091701195286878361649600495067533676998440763248962222366307424953363889182313018820785630532700096259159349836969330057606886476895701232157509440173381127827492669973415637419303941488650462227961954258496497856379438907391939848083182015811575504400343625528437966898777193287023232487173837116748070512395679730693202937319923046147567768895880044615329520082705343356165783692488519055735279207112109094454136993241762459743225505359987388189328227279863119324601292550050686540008878282876105511922771840662863819682775530496442552141251975847980937550266769587123204911465990922504239094751097296160620600355619680560718312826013410485321909101507070793831233112728508796568283199659207463310375836563722040669636774607990487377878242341820505969495012317668803626111651918517712736921556685713035508580552409894653809115851555369304245610729672849573517903440664504964640855435296744168337034133756411117690786231103219667740470380162748967945304319652622932722299492915628290724599176103376816293786635825221446543516394705687377135367308858887964462862995149590528290176651652648533257903425419003406142720621144658764676126893628274330242077349877193045480564807724273650930565333997029694767738326423712984775201219667438954101113430668977804354255967787726248949587869053884699622900134414215054645964305087214129593290628105722832912907180432790259160011979269326451943639843171012109591590819709765351709719074941824631233193608321111694581119098315617169654794010288998962551382619157962727889618877418270357860347357370274088151160831346675734979596853071017051719136996421660751185264534248168786873856704468535517883765840656522978121075762803216001480963588853586482536900618801632078656983597232283548897306620784767847223962253532394900839817092379379121869301899040433501402878045876864022413422054543710075148387859113581976398375496331536065613109385996678174394874571711375991807751947650746981960344218563383738328755315182344718961240706972951864687464764428842982308714416574856658546987721096387965319640279027609833786002873182788622698221675322117355761879505392016437527769670109962512983972080852705448526507521891086359313990575426290193159191196304011321722083260678166385599341887612033401280336101029256199537395736745778680248998245821473194480073128459931099466893511553730821597704417525235335375433598814964726661038772123163276322012621686604663480335856578354433154135068391042139671568229986896912934314767057635441976078218961942456653760298457027536723302960587480825824952438608433519475556963636014736787518909416640031312319163148411834551136677026730907877044787707986627205067805901625181510594057849011038850819423829645158984352652650772302160881896119913058646340773846773521347988135167845292495886453024693646369865625303493524953229875015883229556334271087776321072419415468019063485377487931789013346083958313569127990791758389318633804016299579849576172909004516017535979423990262155450441908346725296474455415862545198043001044764432435832761666353369122206461739871869696501204468481331770477088286962246879984696114073884396823226332559513568868214524904128059573228854642903844148259043933880022647758893853808425904420535379948512170817153602342733997377438572045104868925830910781265089861707543200991105792534242036417119311476220398505598542542507821486648969388199441352888764817650271261482174972703651701897538470283360306607025894577056845445050990708027155257266626341844549056770857630127832933249159754878391295487546295859717212544239667033247942452785917924222510456073249724428025884475391344787434029667104859767894386835010579231700835958688492131724650190866312845385360234697770824771000479817127859434809901297611343000957857518191745296874539586438448709434483220031812336607546788212445418389197350768746524081857820193349885462292412539936002405186180830078243758437550137860549822950766148497032489836699325948022630583432624217846559548494678731814856397255590727965738350554518586256141620178636512783277970661071863937484420464363935682782836770140615792046095734958071767044880189376440061486799780988040232092982781712282841638920264617360039879216631080273010357946389542091881003706923981437362121414864896705992274885663244809628392886267557409375064067028620423057858650680973460942542009827005048902067233906760254470940369253651996155143913510000634634225694978155656277696420289432224540026079766679358573753568181482630946457122886404473678443132547915463236428468893722229968359926467217272681503297938478425277238451896210235336554415574594555785747483471004513779730748778208971835239586815131986524375062164742888903689335232526646000978646231202488202488951385937791668063210238132757707377228482037158498938897086402086271598505751548876704233928955266211574942611213630949372802718987902329355020657748843419835918421339818230171417511947084924645004815135867660376511063176236227157232798003229157361880146089814103557952921518068305503328591767017463659216081842915755435509711388884572899252690412300278837943020727632511902251768169891271220146603289008264423492072969781142307045134964064002379121106548058306912402905236508018218376187889704479077152411811563274262592825478421764750216770811752602592789749329533494114846931712365216482111539721372985049611401111718385178509910754043799471190741337266062660628681301865401226857067539024766633298367703741555140659431534054507472384635805130241870831225790341950276171646340285097152448571630312930629355913129867700292818529069475340307705971942322741217025367040969518876080045095612577542829683054300882036297934818013625014267232163647738653476016213025049512951520467783075947868048220432790332244458720560690133320708334687084049599414555890985673888748981475947097211082662475918239060489835233978858154152051338051762971798825648148769004330253293180188809151199493526821966412058194159321188871635903610611638345162566491881645119078123330654039719271322205582383184653679573600785626977544470779534770327246834672191284318414996238037840342045863528672684090113621734744281581072532456322825385935010352373092558902548599529491846540972741520042375581729293734425220825279603174765848085414706630881480311960915722970316367627187914503134819345854112103445523040724487504123028520569254457075591507575198780853483959021053802743145119967142192821806779591052485933143066773942287180547430920187891629995145104146186066471526675236202422466264952194288412887370906758353454645801285982711136861845303456951806610728665396394244265857054235180392162006955891026812654127133125833775218267631308634277347061018423419331271321341945161825885613701676628703648945226844573493722440930369895439602332793845878049266918904733177152299454437160517036893750923368415912329245767999592629051674041573892778591683410009413559752412434889065476939817135109538035561529085877955971419435178147145269263293192317175631806986104214347260130898445556521832852623112930621140026426153844415149018229171116142814089055677878787775857191488229553544850990693293490337211443374275326504926268527458325131364684300184846374169852485121271337421476920090709024915226279445176216554066516633436951892202770357018592141046489471483218654013711749598995631806348202399935700632112507353348473389172650527715410773950867993320598453659864426600938117795664106963296391030777730286388842629001436280869838659509678444747247088526986633355497423733131903722879883984128780400873196460051788766767690852105878104067220052060027057146562065598584226046019211612094883591036233997723261521587061349407104703405998685858720062762155604750860506597118136467035727105171474727102550495539474960303461525624998474050723950709370973111769495558797301228924026747760482234191473110711490488144156767073896685521265696702756072929709116246740066749303640518691001313895847361894976754194034447887532675318164294575772709467629048106570326230152984886100481686522411039661694494387526815125007445433446929629552002353544187813203513451964508619610868316669026747869093243195850746199907998560251475975965184326333567766417937225143026665374726966747955258385736541077585468959785776985290079746960115515221226378712502782423770547397148073771031801493036874480493175542079047471928947827431082026225653891445016300049744721994497247116405288189985941125058632847634125551781312308419504822816702140918708636196977971964220376850093340126999799854413635742542991289964454502515657429272407997018844978710108284052019869601048141550213478553288770471605298698851738167997201018648753597929177991323594417798361436970722691676383980888978708090074627606490628616958215028222158230863106940083981379660854321882834465586373223137312613230088523512446174367399195252207678774647694213185653829133688831230363665910855492596985356387168804106432376180956670856054760488963857618500322530192359784793010236799450105552574770739014057029487221562839667436260387624525512296851099159968570652487558899578698078793572474154456554535676484432455205324962560399810372352416616351216156007662801472970111550288875385153602405542538689528617752969228289954746961043012251878414323949038015312753781511530986657696609057825866923452297560451642145524053481835727508781179057777716701308957243608964373348727219122366282986027598502359749405520984444410695219758266149784250289125039785141425318959039925986792962260802705946200951725779087159990371565883294024015834111792953951986769619521525059045999791282919804569540031733996725842070944611179660024894056092985897185142286033533578776096776077006135272718775519076315013656904920798723788273259607608300322398513240002657053453647759130555687524157665345018016029052018215056211556870413978825905825823365350784455185136570511722303314393620987194991016759455115524300745650338295953306397367550188869183657198720564928355888778335988397853024575075646762659025168453494190470523391528531886868587297355679106534589057735335489363049926804687459019155829118760736441236158925087983988814053814225963384576156510877288851437903848429334023987706123317488658454372005551354215817358169488148036148470682357050536315911113841099970777498918464167137428259673796159922995664585551322247863754342251403714899312302237901867855479105594006388482904657156119703977885695427249716948777413882834603928021812813615552680758361588458151220362899654871411835024735231176467025817480441789642248167019568758136161386710145785482483133250518686363841534930890567063620863993965113876722570036244626679977811245112622523341581872914826904596205754518976141631365513924967653771054227415000087053425297631374477491889901739945600433608497656747066242075344143558743844257907005503373026753091235837535761152997032494887837809589192252302357200631813908051299224529258109224668427068960658095269910839156840009763179039683429094623336455975794705515032379959284202617577585899017127734020295667775185509145719886492865537826208598344818478824648681109112957070603021400356704881185862398142930623027883213078834082226226131138863665504604383492709320029595172545907391783484556228591817576302595438188036548705098965354822342510890978399475335885664554789245276696497424445488986891896123753788406032841372904215384709351211661985304635964047529679929663113572144805157768356736113463151005285617155608117546240407707770491440951220039231331505743240420828136874863989827566127064899498083621926425513885210659684819644603890592954893165634902795880885225510137708027750389065170125585034456024589577917920568854638635453216549464796167565435218886141079396643430327661923183768620032482553085914187330997239623651850706485527744680723436195585124296348075386829900731417703099010375354972217882252025329360846262948415864294675912704457450097232706452977944927009206587726372574316000580841146972815272756737314265638081370344771895165102418722620498887306856279573423590384876171573541988409233272622633152382964930832968403668948589952322701389224506891251486138433702263958401586930425891158066728110076238080109153743197657962248688499031398969454861978880407781415162036447512271977975632164700644360877170522378681907596676430655715420715593981132609536006376782306013757270387544858821133091007671011435704788593609972757232970533003272262053624888754084837924301474002146165452793969643374506375525149685199041072512931903148025274098566483684522634878939081867349140977099847399162866939768445207991900572290398170441561714031187271919029196000538533208110448278422975047569844015021632154733757039094531910165896347231517065401472330672910816558483145322752204623607833661881283303229395308301870078790221050679649431938721168816561781632557884592529363269437924437576340812829727141272412022629281900169281335549260706164156700772504198479980238042796600421632624325711339524559162036157188298010379535036978545867096595068093991020057531043376508816924073079972209915967188458606758504830990752129496459561752863953603219615610271014500172344646453005134338895530386529921834084619778342278731962181271346651217921439162003286366115735849515171028843126280687625859432863419072838578458915730356651295020448018089862826527609396939389028470535287519575956013310011833947870606987273142313886699179183139743940425449528990312804706197682690442524826909734762732022470314381836989391348240082679956329349947387122563431557334561444354181031388713528559728311846917482661449775361118931747175970519215224014961704691878827228742137555667626101074228761206698079343699811068987004273245263756853166915629035271980101974403060339629720503712764730919118024398539278830469670068443024178905905654715270830127271050257116990475156784109945006356334482909847429116753209972454700349765583919466336563538809781490254214225176939671959580798189184821065794468282786159857752200428921647727032768404304370540222285704406921693981473552336711707626348242593887699875413317791702177038361179898562630652947534835789492868510345837556626798283015459678490645865758084786119832292935475940582714913064822056971978806133578503311178118366990298337784584141050704635461227426013704773512223415000144907844879163920509935720035387150489597254989450393689246334683145296709165666889817527559385248181794630796251154230120901176271451962555862914234571121006768800672241720018997923468113015782368839465954026056258482702677115041995476320330959807784298269102539682983888219152518151033080317114473000782541592936849179792688001977739242332631396311589984221144686114012541645803402303180667369586202379372499772885402363189251050232861784845867625892378336974012151827227355645217496511311420173681382959980912879391377566426974005708331863778094023466160703141547471168217271541657000726282897937863253846613976715020574907002289907808206057647036827386592582799175961064621996597992008898564389696491773070252140266315024162485027933912477376500178324622005760995052921728185780125165490782347106210992107510228997398767121131083767110229596267484770233024013360299955836107307900738145778604937191664629837957783837844201623355926653817312088997746112262732796173413795367664960451784758268134663205687590968499532983408733393578964792781104352116141678308200624388387930418526890681420461634293426628839351600506370984017650552452138503221177785687290555397239826842931916664285830297924715994553857897078997895228984624250189109806532156286871029252357100846870235551490542473640413244130892658785897241144662580331477504397004994330465399021606202906843885106866485083139175116213316949859607092787463525305303816971656839625175584662896378172858641682668706969331006534771129858832985295230265979568374751116603175755783515892964196567001738824085898021096420765928841578708596044801354916716164138540680474823441595575526940698613469583748703675441582493453475386364661171119559082661244506054296114907158226314264041528374995310390204733264686084741903056634651515916513273623481840204678384151687266616386769125780217352190002431915570548911776231522193177792209980249077755522010043307937304569202551655299875196740796114444714447138335930078562729092775698055227114127225652942960318059081920274991000632085464250670882053014571998648595533705459712358708679172809611656574068550808612460966978016646215369404816663289997213181376862150742174677680824676174959317749024031262934616690175567531296783570733242171560144425177536375937802927779768564612529367200279237477870068419539837944386337317748980687999658724717560366018212823341307801139479192894237021751819309340473350439155676861089475599595368334527835723778108420729791549046256316615187518480720238463938570373472967624758304061923178833027289312390668407855038957522375934031904594289221091172223284615276488800925335893642155939695654520056502638122411135078905416978726775381335066359028000880035293941290378953807324431351092352000470441232729271761008133546365718959534350092626720499215057357345944899490799549825045967666994184963581016661226761357155599490351499268021677397532167855116119655888716538626299666863486181040597108946477182903464501205732031579221011216893104938500826342990073662210059084949812026399973015814003278765727803818245868033074626008599013661550181735170460870296202192146707766829473838060337922911162000064655800956126492187383582333364275019053073986883832113961654883680576650189334389192991678780388615668978595817585096348222140617424578336485731657406639888151231763473490811075739551939683854527833292411161596371476214072265889580172273954299344447093409476014557154853275853345522382572196301865107654810544476353458487768840710856489951831824195595886322216201279606788228669757119254893476920768920359181595014119799708171052566701008907578722938470191113763634407073784128685917424445758643788841570962315781517390028117996274293707323929627805262386768387352175197708034253527264978606994377150537064339301720633609072359981160894565874498824032725376862837279325621956665499301775620516818221135729950160739494804095185070459048552424231417618255428343437027768016348458599370632734328052746555349143983159899201773753579945769928390621762242538401199359477949333858532856697734989135674292946147508049324854722595429415843321040063851435771435025095857945226531247547730743480725005214723727438113449257494108537668197192226688775782047584061176792344012320470358057802193005284214267617527400315816379117755613232636624479579595937727790558841805459584252624969360206146199030079700799823382779417593347205323076387635069979038941111227524044583004315912565566591612517634512799301008585775067894269906591201177453032782082128906107120485330217108429718733848430821039775598582150226237814472145365538118797072346926412329720770561071387076195914778484393910776794944065249630743889456536040372241181429196739310251363911107396228555203757420672249099250140472674013648705895650826174081712232938172846790788615360305868851455768681388524237754788452054487827151786792920326254556975920899361051393734452938158704457838657102672999320729749755781159207164539991569022765250128429481654322331720899051843900718332955031364979651314767663180498659875329226127067739715948911498228454010088463885967633510811514572488897994329486685058791285597233650400312525771355571314205045150076693394953117068525362970516290384523904577235933879618640250400850060742146396449562873408160727540980171808190241643328738815303942199354316532191866615655249161436563856615091450927185810091301299575313436321543984071249686373625962118490997676427294636268783503052486614911962704590583401167800949348610614084748353655722060283368754081813569599452885157535991527937685714493727531116841468966959483458196788357100570727070916139448315144266379537425033893186475495744329457295737908988547199460689099936393352059212729790482438702165959413309484880105112322372008728267557231303595231002993798168477796839451888798722188371787235887250768121391399469167845311025147392046900896386114328100606444725904367317533883934175362954852127286103797825888573847616497034679254079299323689208250701244335473723557626778956923295390846529684310682958646944144467111274612498651303819221535856531880075408158485275936017206503782818909088616870493340602796106979646675099391041128556114913048259544683104049825072368537902168859400876243963286508437734235780343896444496265606924252436795688100877477551619446025039874927094576927061727159819325203217155083657459540666650171981656052141154173575381834337550231810204318016690941126119120598068799505104902285052937385816743777609513323266068060722566661017925383362770390901532689774431730500437094425228061205533921074813495969057217871623932997018114116990920832820948568474820494319864507031102784766124330265514826812162830257283457092283080490961318643287489028501524247366436792072549186866477551022778047231346099514453671850868162911316915873038677405788072857444664621247362252278327520016643990582717148550163075006952527182949038928614969949198763484618966010234046579782756597402582153077299120746324411704740652123542244289477792592307085232401558970321770677442349770065747003054299226009247493470501488228169090191646925355051673936034648848080894373696205032571079108174558672742087936032294343609727327672662016157941751349240195703708699426926458119130964989716532575083206510117018922399455301764084726175693624322114297157502729889057971208031596615847232934457406423242667205395332330040322875588935296546068369832124778665983639801662279823253087573588748079328679490478456188748278047615804063369871553856705328622882496494418829903284436505044952374384701443744497319465194881460977017704422786138161893979087189668452116290786289518467213458408184696562543540025218690382553838490146141261658259640474217392195637693775182480129784783061661720474627194481944696086285969150890117510340360064402216404662779898164517232305790369562588719963123411875280742895352875974606552554362013332216345167960383736720029942007138020727976564088561396663004478957329620485837302015700647517850742039690104296165262893121809883540249813063655004855291623132024254079029217379393035478299620205628971817316989431025566543709138266031035931842462443587779053752585390048178228404329251257164477517233874925349315214433952194765548365826627889636959288145869899102771808330389004816093254100746916736721195290787821149519988395286259623432132736690406251984580073875074118670607149276313806147166321663826192801917003632687243501262430201851889971558935443447004361630004725139882356392983534393345964629748732677219042371587227007146547362485874532518401866676697999015643864220736923834148798552801185969993551986083526111785792934404317133527999354994008267952614742605355669487331731474538204587087182662725066457404379905855494240066867382465012967512289271193019222034641252560770417825312383809820828051620322743611894576984798510117968006966170300550594113487968108136369217854535203945741972564387957032986118335070208703590407707911996628187671802051564334968666466504516525700931030664436393171216873393014161760332175801039290007125839388856814774736062137924136732256110367978814408157527208036157966084262521445403677870538112668004927919580597605930876415697355427199172445302241390575612247196344332936382299606763533099892760071042259346440605302758331387704616360593752421456359259524053795850399993821428971263953166775444067176549987701129052396724617913881895648888233132874972411428120683399740629434094427142608221038257314501755649955653623987411429262622910513084097710788603302509712570633065415036177060902044808158344337217729901330513155889218783930532134557440334623966724606666103325622581528331058929026898167035582700306461117102997261948819269732898624225588574224263915908308277134400517410929783710081887423079671711540483800976211892771986330719079980619831138116975913250721752208608604614888596134704067542187512240533583363996556362101637122656066363322415776226252766363188661506846443233160420846806024355801128954933938316007328256657506715002115779136524482729318502625148938232879356927665928972183462629028871279696363240626001473811284473337017858514860399557439526828094928307346859959192976094512494871832498031607777674342784362166093262166215966453201988387853617826485762980380595861507075424680486343313777287458143713968640863608812311113344729884671983473849546191122577471938152657897480860908184408919301996463644139823009803984671514182605657349503381529132377284684219267157751070640060541043103619823713583521163478292551952824174384816455337296089007369971861703318098328528121540357736116983593324635212436332890788649269147814270458542737990092177160001535657492889469830719737748535673608956398535425348563304504304150253886893251192211991074186412376408343980235550011495203364829892593806745220198466212277754861790826946154479502703949307881135885313806833474279868187840230909435943650429103012334358918191813191463925933859116037224739459240393424032169166015817105388624795105353818506523065548098347215789662455601807418047372016734081680588947038290443359073815950947575114590596547188243096053835994250032964134380027827143951549894755392673282660879802453511433797310584027014771611271285186139637214393261893228271696634765034434754454811232031145411168954936748227396594136047471670227408062940674921234588019340612371932545679668787557654317598476012801268134361661414198266523160172608201976693729932397289990617738456589669853321856534892559162487017001389660622481503884297337098120223498967211758881018757424263629650959905120602621289603346142246767156161651798217941636922013684129693220408624457445864051432537936548801323208601425285778295480761529141536955510740512648565924485752392647192648540135142250515482607064802928123460128731482009257513863677314137522456101703690976350361108697443162272534473958303767594840656237283154673881426354910598774901033668000393283687613569148102193778339914754747924606905325328522490422163294595806857525500085572142842753442362332955581253944347578582083016372915601470376436144803604170744216920574964766426054354901918971521682612703495917394834435365559400438522902810365242444098036021973183493094075293490399846829020138237380532006903802512018038920363884134285867409091923051216169391261707036822668402283974591780003612376639665766003479640913342283236649060351148761340716713025568205012409264034718775764515498727120221062034560306192533913795641515498192061399780296464141298322684913530620186930150667084676156258102500450373892037401937457608135422717896917578682462733364042296952894190406690851301304945470213313957693118136310407695597432361004598086448985300744061082128700891685853011924704522223661771315979209135747128893039319042668013652507690872954201053455420259514595484536521153194438367096921956261089069416365576284620643742853185817533798426966257820140943748873375005798439243245408751387135012282643800916053740647965625284125049429853157073310282616754537878544607827290989111173473497183185753520424609928515255642617330207207181446713493054131405761067063667274560669023778737531784842811391577867603825127169125334877580654713841960929433242148633588038451636544520459358114202122830366611307049583877120271447667651990968380495158775593796420059455956670469859196613215216087506774373578436116049899809615464482971276293716393582342790533390751268824976725909889067921596172522522377252833257141285729814769030576771072807077372589026799620230418584732893870451290733905631234622902363159781182616570723451748979691666189771757696892706915441376753006107214956707254982568454520453405156446242360355690652537515859896650677092092850387224153044090249742218232630982041558575633061371211152656862901331783245601253843623330640154278057727245019438832069653391563280351566042217461315543978292989405003379391054371541555332199150951951406506095297154910237639153635142676240411507270865026933059406222993616457926262447889281742781313363402600820943067473977653959731666379565883766738936616106233800956816028180098089709571309319774969442178930184547494532695005339778926092325178842172614447087294943760343909370213645770012154302085062302276942960184052002939254548175954705890232697158781171393056252062987215903329526013567096452751659173079232614952604941499506429804784891019403034580836969661545009917687499950458808584300704143023098242712030228276063032641284545529038525602678226421208438734930534092645012996507484603574832519067398626048717661805679377987373452011390023317844590907557541826889140649927447229943028676716066441434649289133921204349391548303375375031460879942051421926288191584731672281442037281428703018133222710443691384682308028656540412865848055426872211394852602099121118614442568963467596926493379792036867239242390715357523215542578472146503615067565229130985301200728742772015120437927651909500111805438642673490905113103225769963136535010347619682872672594405375650083487883793089869389135827901484088659553760165629908534344649823374471582219152520589452329438994946621268044837957293141514810912584504790694939577428081550485587554681326866009281634058913415806560193100640961521566998597486933745844953846205427256714868680287445201510042645347504235221885661121491614241536546830522540672936424149801920161461920809365676695061139295982378231685863325724768577723802870852348662486282296118163569544986786221079543243506354632250981602951309587857689640094125044821684041783998821617081778778571978133603833219245167108630782927438931232116139780530200000793861055866285557198807557278473521907043575182417103514582720733100138826493969297566344521810223803482211152799909360600340234271196313568507235172455497593735359771252684120438122304570587736827068888696304593668322091711556497197424415037530631014266562352981954383762551245998050747404359842101560855741841380045782667319053690541842269645082761114594482018212647385465109993719319229018329012411185447500171822474903947001140336894876113623654519175113844702439656999860668258196512147465447676471076984774779417977780588859903491215496146359376665596641173826002125744358445324781512535670774686645004167936116580587292518330242692747604047683145625266472229134125252744556075000409901696856529332385867207446251285365272174225772025926647185684755126779992518331785769970993402689788609925486348619413657412241194824521808694752988163380036462630750304945001395980116925524606728888382048156209150397180874909704101422708452148704764126562525431530649723175900100224454031951611203463992410701900146107043566664065267191902567430460314436264249969568315635104411151954996425236663562789234005739944755857858908469912533808206950490405600765825733202742607734920462215853258459473706127234153428204317633626267471666557903073161273565808862091068273311460981538131191158950860227369495335230917702552972452972364048951860797708913150327751987277677139357207107187987157028357030945279101055857708162004225494674087167385027331917461717500960178407558625014491601517772478216757975188438300896765093598127926888311819142278950184248963465566449555458194156689054776794444031542882038210034411050875368255806644608611800221223864419172968780882796383135933235418442872805716192254662011857849874563498879668218768382048842074243047445217950104059644765243556112527301676544111105349565441647770886855882431062156665993586489638194853814858237129185290922113564753084403338824327796584756533746534737289824941289276411067654351265616114383135328563356587703871553577044953574269931945317667970428565146792193867028457750938454837285930658103821351533795424586710511496341111007972027714887986255170070245011200520310893357880246865570016322272181847665063356314171893260446424247711953252712394468819055562199244025422468239307486056707002782606730848221222315809365275846484765320144965578862451178538433533444309934132825837378762342056882644282839584508593195860605606179219693854812495949395912257617289009056857469743962605821448898842199959781346374088236728402598959602758836135592024601043424459845910713719363791019609009609722987388157877727754123819146106186064502178283479412610301108817542398793392348364992107001487240070091522019726001705917580588716063053632324153563455065865676493802685646958027829863724360869558302177343032065486124647175618251099634932709557611538465274048313609814110189396891133127599938882910260565355305692620660312674255135999892911915967946548599737234783032801616227492962734278468370825093076308181681566963100419003244906216587746177452716274417709502059263731554704532037210326246083957227549445845303161330920157192750148462938518347548060962588887699208432658062868775119983336265073306484030611487443920849232287642362186308895500899791277872748325136500467369749927528610770637437889406709946074565576359863875128240673507570863927335281523708828791624629629628209704212956758882041021569922592261885627886003314317093273670877219558985171397622176906372360145519929862821012327652762795997289885671673588947907933309817784047952865170336007444263646036115855802951980561955416966587357903983924667905991101999017138646500148787499496939221315421190570616566483896768873878192697368513557401036923808434771130207187067979810019067739606403171283469100469078112560018552344083511422907935688363764752801121035532810750405247212422282171018818198752227407049019965127088936125094418125296839719198766677230818975023992093758953438787399312068554923715593393065200715732246406535864065825250009413670007745925431902335153560668299100699477704532820360539546160003741817103468883598340032069827281368058069023128505949755099030755543548727634027313387016677309530845328229167088676348375234419729373745301469163821591435327730313801045271060754885953327904703709255454747710424360983393496754974641986312176522289046318432210881461765275152619051444485815488914686703214298384018167464386715019418138654858309082004354050041257759693038598876357777498966514409237980821965126599295249527492653936177698869498693450870256808806904010384392641385268351403616503969477329477499058592237343210682866575634307495360451982642447189331313470878080440198755862566855376138292553157213038795855476258479646443935606728055393683298630546606231824852231704495396801617592077296542925585114604392698244049591996280280630333365403480822387359210942821875607412297087400845763222154622571016786069026185996167177564460844905957957724469816691585396844095400643050941404380603209292792133337873145235231037002011903491204540680900594047663060650952232461567231973030675487185500949344429991339199673694651234714641750374862621921089791460999280778810071525380220006576246069677465585406254329408321369159803062654712660828242829328189288370179338335808566546424101043930900737570387804899367753636672296745794440444801903915360228484336841542964171097714474720968969411657512321602991700813353659252593030296543650872386757384430655504227139226203428145220353405073732122414947582202789950829210700402618045412160788142932622254061674865967693770230177641978809685811409111407402155000438602088970527695799612586555306815121500052357898718041956639901926762129811464673259506265099983631346162375508450333784762587595438144493320952602379581556409265442175593903300174755938770826206735477134071822645704016476658107924614434420561762766308774620713703053604984339624441735574649954652210562913564011208556519353828252728076352691945731099898517359886563844946173846688225037140188727690530319855249325732767886460082705000984790537869416196212863689879182638734661999603431802954197373251522671391494147069297959511769533233732891400241716478231978944374574183956439518312051670697091563453621794482437742810258175699548901734005603290024858991103839861806412224734693027027023990574167744916786903284667214919398433081567293337030413295151045041432761883313574853361874111899317860704882418459419553233043470958106470162865304309419127726225355535705416859460854092170500248054018543831418550313052280190196155342710731193938205168753137805067656694800483750636065591825938144483615455637795273615417248426506052926769554559570599407561083356639128464940841023855347079496717281679513010536303458037363123602391950577471944589566323018215252373654315476950105729836637749701140644553722229254864498909242430035691101058023615133154864618921127399044328268410064449611720365428864408832633631635059408365232608843678281568381811418336191653194427944716831887155194368133321901804787281756103309717046346019618260448133400058022426468507042730833740086557432308489065014957853646896835296359474746731503203614259941708739917932334828574257549592166984719181546397602233593791862396251372384722054548204730001698519078171218148206877677025555689922091426154232384208398862844028215794818502968616380683752865754684931819458603709230993040486622257498721570158462648463394931663458993649258938086782819642878217865908280626144986703144005952919906967037587611489838709850289956008514063496079982551396640692211838194475747787558186312568935509676011223265656239083235792445705363441424057851463696415180022744849255850541928651723634066079825243769189902649642066701450805301756865145545114133038404847531576048630063328348412299719612065585275684117483165465845959145756424570642785295923976435925490583989729572048126604474949376187276194986223354569583540714477701682024181917995247650157932308832761500565957987346219651643000473045295222467281638265886600895170329361769913258441597437565862204733726375326086451457533356086816779639324972998642079894873835019821802527242212757061028600665363556481792637098075969438522628958314962929062288373017533863019599956954924835614616458284909012463696830397194509214604407067465300092588544133669158880160941462283989019115298657985553990701968581377430343954972807223946139465546694899291353900392090552069243706630001153934339532556367481756828494371259228662950079263099566969724087785923467066558056201500901257257375901305275138967457580724337850298602453211828686863552020405198163659507247156365411093600243093184119789925272996157609089635919105854366807504887373787417169788619115126291291155576240061012140463908904626275732143485345768667246599798908915782854951826379624394293240176660607518006156054337728505939283444899751753219974576517448453267822955578903047905896479727430872759766920974437044082069189153005355490562130996716211671663836507355914075129798857466307707162517001923501881319943657686424166871890314644541142007379107176604765298606183189117018227821178008934215060369812720273526442375889033372643598585657604944436197753702688323187828383370654629053453499955142909528303869514831979710887416740449939999130637105185079161998023992824242885856262583984827186278458125671808690370465767723371629084180888221863621765286860806332002012902493815158613367695303445341417277745414317602196808219838171958415317338628063347186126112839667488827563401350206513511823978631362182762570746178955658350342623197895753796395648648311330031746922920874374617508103953312183228418693506130625483905113229410367794306469494596529721773818224571610934651177688030860809360749183780699602845596861193774387050289344425016605995758723386426140530872079319968048468027247803396732940552848028358496167619159957805894468260954169001946974471082628384250848652033855520961718490217837691956802634360559047622271354769948023189525127630337288630975428078578951750865966182097541180509544850188584171444214997368665134867821950104365395539684866903323254376438106802379979477532810383698396587286348399007280992170418169510421723095935174230595565772475982190707392573862683972620666356494811344519673700854418412153855424050654318291902916677674271687134942092158055217380899995453949892467162092735754150191752225650583753144881727833580000838087273196435179281526505991153459487639475732963327711886946144724044529470818866354426968416304915562019964213561725136862127354580620186518894654625708214129973919129206486602118640655163884320326448096058373854065833065590781516607838262560561520711450326072792024962807744077305577794363168119533865518639528915155166110035019590865194881624621994620112102586135807748886617043666296018096521581748228715365951925639239213130991296850820081673058812697416892331713387543176061256295971468054967211951745078330701010644311538893671181846267871684462627848333132576332064945631916406032395392706200096948014566034743270001079987126680120174757556185981902295776746766508116624620609729035484213206357748304880628432225050585574958197783614172021503323711405375671449719135112929467503135966048825156498548466830067332054724171034533402310393105823153503566174732244883954384245951997891311665518417139999298810171383927030577284393015504901000995374227809182722083035533028023829025678683710586260613628156705464161489688780385168144449919280161794129054862482286930018544977493946986700051148651674478164327566341477807845831839937753233889649269307850508200712234992882330994684417181129223354936747097327366272390156346427313363942779632457197896821875524761219383722659912137484092094509318792913716733525086374460958817881210254452158842327865282301257691493901246969765799977938895569313649083415710228844744131990942332802800536947212312234728700693087265280031089122353720026553267984442017977834355270364562554391280821389099928798327016819066810602968944199659407740269308228474557710583486131474386930614569555610445827678168328356091406763203262344306200965864761345771532167386570714262870511380909300444929648761555826349717515720760069609092564759394381889504510570986354393366865753651699765270348878198739858712121241542263744651431140734373535961738797782390225118435299743353652574209907036203871299474413340910741597680651375592521763404316656488728912477413156255576514198969280843788509416971887324650902327758571969227159182656679950011011940926043845491276065210519840745473272648886520075419356894549593958624067019673160815376090647802052092008309498668720096527730765201155943433315063918617398890933898993740698542117804135511186893479884790883890915132408683516325927154698061164783272571565196218877860018546541089908109975900577361082872856146746666878253222212986670064972431339137293845277009292240071071860318027304261377016958817963349650383816836553524774750026976342227092326871897148617840547821477434981306320800328427485383528144683232480828173295898590976498469315362953198577629539755722814619073983308917892483012239660919430577612638637226838363580875712141581700775911150209176192615239898190932265682120540289088046711027997651613629568766724711692000608670380830121928560911437579618176789372152308451975508462400581643492553405764611624084651516943550180982106116493489240486228425140830616138805615796278494297714359204993505483463561040547354060930062224069958163835439353783690567442740826496145602827800990305409511567444454254967890158567561780896192944207306883245217913647790523094218041887696934647685497332843911357067659013283100669581377900690815158530262818222877556524749284654972659084972226430134420299164652283594989003590873692626902221667267593602439143312360327552905852870320724871642619430163378182467648712251082697950001189902321148716408706424598237552690014148738843217166856478814435383851788865900049109596701540672174405512105427059139514446675591679741282310695072116104868101986556064123025886821530989974408836969330760678639074095851121519822051600330430592313903539085303896859636247393145835332909948958310351843391438336893435604372707896199244060000509491443173363477214409891830216514897463763731352238394097722936897692298659470661924293802372453221720192998831799578757784310429434690006978110730516273794023271158657588011081705474086828462931521664188951954549923852300620317280194326506493862587947313297157340169170709548499046188940941461403982228181416616150700922643258717927970110473432038325547375304285147519051167220393836853342604976477155117299547683556351878288049060822075911060706632072964543772323365364058513915533774211093065742106454277739485536316827574886551630894110277270203419808183030046959953724662857359220565762246303621813196303814601507776034445529788637170336836851157072394866272020843966585719731172079279378044735141519164026391952239914034232834256488702052654345998584023695097808879553483760937653970833819591414794409413027369344250265387552692304139753418029602559537201303869216182993518260636514326566728256390328902938135788654488512098255814400111198942046829623883572935720879218941065625166965836992015347422806521991028659003283609636720215863397988340585798620085522912165178313037327062622854921965545514271094357258985009357154919822352095600039770271844211921053322027919160673398497010723846691310042308388022503224735049384956250905357078968427007167298740431946729478220436114453929766192894203012989859389788181655773457625869244771422101170807481906322664547821822971652341750279951322751829902778651750003173772095228580059809231103076618088237545015224246902598527020710006373146255297127616459365031632697849435378589868713375729826103920610573729121758218441021957015774249441952579812836173748009756731429474114420953507637920314664958561883065458266181038535979227682910927887078803787122035333311382296233869781087918512259887780620551326455698054417358320230161739175817127869344621030397249586126339959134624365750815764054817204767439862289090016112061541718286055651240584820607278069318506311779155895745659463292459402484483205152239333196837905488123467022037750409513587908187158222356881900962005384045235434003918834104460064259838078840670664727449373811546028551497870470323078814160703024959512731111547034868956113341551729423681000945001659984724757230666879421802436925818181104194951798437721615352842781671528330347587440643010753604241440008491798310602164338657119549375979444454076566377105475471258081040524826939561701455972241429023399628144057555269011525492152686728123141886838918969771888092686638269517639916184063422976839072985225622947584318039442235504734070980251567121432453358159873336705512290609571924743320075833161439893737907426692159981969658434003883104428214737651693327539778553306801732292645622416453478547053102929772555565895928995196057356163445784070300869514396357019741947530807040972202982189248424153919266098422138538322722913687202066485806713392029387455332167895107505386206004913803505483450872697147936390420215128170229560621279500794144756758185024133790328204496932409473978496934459343356564599685287086152407835432856310798411284096432401885573976461499637645634787261283691646278131308882362568975685956061558263501021369343886119427821224704979600744009263684035260214865265142534515357242353940342788064426847240471523167627923742288380528315130940060748937672015320087453956744249906848914533473736862219503380507327202963406220532942326826424491636317025057905428263264054841582367989117368456701629171166171116194272986215607437774672865088586089938962351954108040576968774563289640871832055747095827353900317309424190257086528975326905994032275684152102844326381987769551565168909321853265949200457537319490497318533490173893118771994606792907998506647349586399882859556796726141083535698658061656052285805260973095159609232840697753537124909438689004636722260073741552464471044478388783283949016956515370550721363771945957647364788442038791127501722680484352412904356729518493077270751576106607198808599769628312685151616235664227994500654863345129268122241421862289458712073161060778283131229424200327531980411426845836682981782747141389520157031664674077691528968423226649425502177332357804570804344103961332197441748847198552910748025930824405801304576556406453024071298432461183385615774322223773455788876460750011557888210807749774722331560816131068617977772298430986629394001759403363075719493877231344963766879688159965858656288841872428920185652616275623598709680327822314634068091888413412114105417546535985081103120080474670103000365859862117450083360032322215289304083469396682685328709728986180005779658559856817207112525020077806606809857694041411195254993026932665865697592086858631650088295185487771048225354899539083583724912600434679289978467665947647958700607214936451372360943068314709860117091891030645642589160060413428592824627860710625014895022717170858059565770407828714907654798135520743127949716623267564922183711210841555502185939758635883442432282132987087921126379863144891199798042153012665552822097360695310536305179407331799112177160848596407983833060720194730060388605260132072114522805374837648106611563335086974439752077041734318776692258155393911012782581348753983817749391879199128907863937238710312147386841968772645830711103919075309226617927372902742596922117961030624574530252878993615419173466954901738405846308263296735562228189672309483893044104590009919831419992932078133932422392054910033547602420948243422056198747811753460652787602122698995928469336392191476348213282471246321122919100614278746821194666763749174952258237516552148018303979474672858563643107385415944022523947297978456949615348614098534228905287005902003233260622370897522184982332035754940572400289999022774362423823184607752024360195066750825644585238751939705562267196779126301433807910644151076636436258856583897226096469553873275973380468181147318193680771288461007678241900235570975427612417110828452451962738571273629277141627447653951930050374794571741104260453818116828668522003160551268229117029073418865349351181789830906376202933731853723929020699744952495668199939018605089872816461515717225799787623092428615287060304506048776273294267355735363618664962382358456521458606459344496770280784110457415746580096067225154485910180314172308781833716914199734428332470108063467856168422621822058487580387675399656144088936143103081061284517716932737067021430929549697679604837650898162743838648112433952180994362012147270871325595759159050747092857674608886101547388941548365886509726942266721655060326696129854825506362327096876739835020751819382869443713471983349757459453505801147890063766193693981254839405743795620083703390198273931461059480308612795049842185726492068930497711074368600074604674999698267049110118536510969233900518460662243166035168096042653569308452909195050878078481449692586783391890445200153561357693678011698386012485363421910955180000922299738712973973893923172417719889032027631105600852232828364393069463391530737313122170481834652652567511650618047100788897069251190260387276344096975427435156542785264215304122817084423006112946673958134346775787761654994903471070149678739005606959401732608359038359184624622447744115164550749606611292614017839116047478990660982380134548825490171818385090779774519196098855548916196939083116341817095068948472657460761034191993064477834590999357724788261770546383676869142283996291270155045263468586868618699377060225168965213858925341454935215828412032696188229855672783488908270222075292604770688017203317665134888128993221460400431364961714199452696613535481880880412195179156745168071952770127481252780353312298603502700422938150554061657032266499220516879327329335319178559381823714666553910652629011445418046437087369310784550763505581219806282710317221793338486151624296335251111138208922715736298590579619624644237262109408655736285926982530231368029253295205174056811053546707236933430104003563444100299544836394600912131663714128312418754928622017595004286754265164260413219679773177694461636251604017104818586902585359635252340903867512811135658642407665803657651096473347140433601411341387373532303493132169631242480447662597955494016373113031106065710934142195887537338276709787443062838496181310139544755408589756948141564815821022785845097749383367302014206568480100264546121449863919269168556929583152496379999494420868541796625648940302614503408416258433966261948922092438173562654621988274874746732766234758348464702895773433013188030032665336192109542752276302432447514509517888127607371507183736391061163353148067790700749666346206967268177202358204289502440775415411569056631580797901050704507091183968336978139069269069431905027342542824047600676615154136026034187439425260061573232316337911938524149610823658410477021621125554580095787767010684258205632944135084057394417909293612932117623868647349643432937190368387481763818423920131798373188406014822146139062129842531786833266687377629872075080017494266110876015446145855484595909117094644071805423153547943514372867060476598891105226211971747117826046795544446898275659700094009728987668632863329301511605499046498900860985438945002018215007928169092160819856107946676974546304596264212822950832229201155402938364148661898654861010945847854334276249362367203995189637047972930550311604671259144424845790694157307183841558480296015236478812058653258722431038611444705205797795008944779534809887080644160061479325665206502385830597486193028434320629703618098178503644210790060791871086339473502254561215790313056549006282523697727782128492214977433904229124322264575272032461070403623211832277149878850295203670382634347716196616783299697549015627888325995728183003197969551997243240447728713069245112706785063252359150052468242933958672056065075962759250851609039412575419758735140918966310751033745812820915284365634054180745424504120345427047558169882974773396106393347595068580545698826738857120528269295910621969006854701964133598825518515356219683970558587170291740420281903754243635655818891810853852721643704418019764184034125771545504944809817075878505247937460884988256897676159004220599967348711035386942973645998120863545299298684617742755249446781195527725387067463235437571901229679975600159590897125113110784647721354777853424520590320447282640893145669169297374124267818019897047594565330586700923028245904962432688230006299029455875143785008071735284296222337114999851835770635680120870117233169006150442579572456697179628308089865948541888311489019908879947328943207669250966850687975997302739397081132724966537910530710364223623135838475275294518991357012959264228857636422279100399557492763472077592567153949600345620616849718008848618972224304060397507319018695182648043731085603062338930874022137963839498621279726588232532585102219100979940013199727024765062819172232452420776360750654589247593997123191143192311516172031338272314205666755583177003923199549820005855516767288622690365174745101284840387216418141719044470602062638352888469409030110017855898114633025221739421005411057098018259197654459142353875149548735459464809597377594602054301070209872146102527002158686618349312911415372517278310110380695320467959701580832301681577458965005702175088024609660495953992807224365831276122445203694185185404506068400921885776441893708182283958847532441982422200595593301398240190763211969816720063618029020155858596196975702217822919428501982732341090428397964739430252826373357668660903767804516641045881950080328263634286252583978507255303059810939720380431936272191855211640826520720468149739766565336700403597943828612410302443939509235702184553211100822854117953570788605830500799580612947715243034330765396134677014888677525929127802620686754809560568513229841984332108936820087832798891523233397517177389948049265137027817430587115298660217264610544468879384863248168168588223073673820274688287371760213168255079384510444229170535360035707710075662702796051703350302605199394647931919442996465336949592280443023010545930042778894095715793785516077643683365683500629568749095805372047929707427992696928939763259494520391449955399560034575284495501513221697278278424664162628396549916099163300706428614337903747324437815080962178861867412813904343016294193446955777739707260155596328729812811963105537462820845750299243219657492745265355337833004002542960984847509990320260897821202738957970527882668670344273395124329979300165480353844720144010941756643308527887991754055763627639746475529518894698742972773590436387414151420097887738872846548720249126527211610084530725189943433283604907443148261503418856147665393057240889403968074658543785163922488929727402082552058221930156671813924032604965131671897227386832006859516801216384196405456324567992779815489148455479067332482755053321589480063625860667762978926934706591070795082093855595828593647413648134474948260934639942318965828183560352206049307629143645221053921199701756286442469995503188588354088415245800870919608340713460468467462983428287920886010227608665190542863348287316972390469404679864667454880807805043639924782981499381420435738596938097513123558003732061974201846882089415309726786916794876720533024807371362562757989940787145866599318350421453489303179159363847239638909623251308331784907613219119969500892402838101593761292012576392769599065390821083763037041800109304310073419559946970152326254784881237514863622700970611966756566929065205503671104201580448975265604570167149620825008304550839381545084105054449060308508248111470196744133761411905728750688896598677463349948076451115102451332632117544267458394542290218394011539142074976457434313659083771197123051749432583224420802919712485788765798508308599316190844830818377902506458832139030194199482548897060875994494059412518542633349839377970699732389016802694407843257317576513982516523252278213729670434207827500971436649242977911087664906412698559416387345493948405720237257918540784266444934395053169513120444281040522902635115937550971039556805284224126949698999427366808033351097863992430968364640558955249391280732919736707164875711497126092835777625232682956845292088980967349977157906643134521506830202717519408075050995990332826980039098907890217309918463165530227819557278441300330770659986414394893899546727883627496309266485104506059325572502950351991567777121427857237626052409142209498707865780979195578863738671287876679818640924445535343257191577398798981375912232273463693792076223890354146343912362326845537451030763575236452974400085078283129159298948411457232501200621955285107376885265097894279872382155586784161628820928462725068247561598797914588709235138183477073705115515683687326833545925953823885973293480063031971254437642108291456754357033650217369245828070751954243528349380049353808772622553827470886630773912433877212722835071030145391502434177577383119262334589514344327349465876203015184486089846659866659001925482382695521098598743129312418086311489763794022984042090729249200411690238248381317754997056904434680879950353707487009330238518207010562782489363818430991357849610781602137072088363125028150204045460082800578417370055154624297634959846837481830768249662222718277435727342899245178570430740446092426107055434594813661193158432226870696724501914864917879946219133626788871870650908555665533678879004315953526961670177347051331848485992097905921274371962127354672892282190776437556951279269432023149346448501794284317374802105551032506674951728558984477600980699889749201123935468999362028986635646627524707631177003246821007206842862794249944767651104130485112013182816709306116355533819277825440887188914557187333398092002218282346980611001164149644854465751237948302110210217474986072172100804799781301175763018041896937389995710484033556392867316050282327158732986800278897927205164245932112386082550893160852507173148053760597817030607917280086459801582682518234318678165288707380648970356603645251323814572054507281182913203248804878880146943537216531410060705954691508479885538783753425478039151414449389447088598698927351807273728310254626526900646547225685976450512020646826988101973837778259033293696647286390182686607930259387116216171426088408862213829742677160774466378474096515600416928517379577191952601012033944604399012742454076877532595339431503422057632398811179923575037235186325450641108316570510090213966892975772021082118278976335770951626212145962456373516707136757726493704279076658405945196369464372377594744329956318582073135927560306214236296984866336684901845630456870040646670631765149187313201719605304643762951613514802498954715467549224924939342306569366186891995140674771441047927024881886077826033035364011130972801956410675739447602901551221163011207632845619692047036563410744145557005900208445613676090666185816622093483615047930259550477371037777562748893367636062369026814651823810739969445548367810786024020317372831680537770515023532740931742093649120706520585790363448813591915957219501563715574313783674518668853813110332446027800677875291631047403988632979818827132655230441656751154109398455155282381561553034163077246917598035465084172609591649237583685838036115148564784243762959939206964027869760267328213808169933672466837214143684433957082307810630729359184243162830429490820925609955197926573115202465177685632291242126256931587259691375184161193108891835717104636270439855439382211111969756030920085447416442723043610920158739549904272096796192960006020128081174331582659589813679414411714526549508356027420764493630471615902970833656973647773647154012128863244512158703026753444747160831395009453248090682900548034083746341094007684769783633540248836077879976633885786197321308198575881126011583417150167897509603921020136704095587407494892663499910351721853293490193574735249248532772060549097841129220455258699487261134761115490832783056111602516886443489424434878620671377407558178981299371998221463177808844582390248532480474732374194935397295952272821901717432206877739358228428375415864487470947652330212755440727610108002921832207025313967941441430468114215177116208291955790841153206708617308504648040191480747729400916630314605836323505921444094432997340187967430912114733141419019082148655571511411880467752174368445436396783048820645069568757641806262962358258609914960543276708167034194890385584177367250928621313732709946017923544805404499873868015271240541583020184539661604848387577415940208528684962103960043556637115496786732722183092532616535353318673212504083965821023597214740529904913317579181529042445359191037700623970432872301674393640509686096961022114801070535485680607351536040919661716339706487811927149694594188714347265163208045480021430169604830215024976709127758307522554151874211331683866605224543918221238521766626745685090534758681479848543369107905054194039898651286792679250223172401921790765048661322760354533573122990542058213976561564347232244819671303912615966039391490717252057200973399865941901371588823450614831912430383934001077314678014757779642895531881846524804552616437268806913094517437824916546969752069652030432139210837527948146759498532479556751636143370205124252373206049281331668990580702332526162480063405302623948627314753246906405199090712365130847820280146702346497561512499567267634874712370804867858388375179905093269244297496804751706195784721934394332316904441775040022777729397031694404564778379648496070514394305837896525474664844412848091653888666883018668488441446080400043659787888171208514704804074485959646556829132987382070076975103824078559317158680030187606209081324874532836685284833990677634795091485844066604264972745614712262875979658968696483670664670494276273442943083924104195803640110733818485946407124623581454937406529575926200832379900821328815636375838766652569450641441216026473675880294056876589364906146994825845447640543766745545237032990340948255287859037467047833198893516954176414995171597355099369938051765372727592337568587545919048450688934076273899385582937370269665928083347600284734384948242097438606417071304365632084489015162530450213082658376740866279622246273747865490413182985307601036084662091065458468148791555267387889161226786904617222582159502331873598674075057977728987181035135848828942201582723604736418826993212367940014030422003847732326064411057922299438281325950160971072326558009119140722032739507968086155259395763308567860173592912577057953787019215658999359080235359312480396366546816316432321839409238598923063609987314626119885724545526949555117497887763842828467461110539379825672704561657438930150118095004875958376153820879133862800747550975395646593631979459301280976675223999600429608063059676361790988221387565521038564697691249038913878232034681599496141134571699161578696124872655412871727504662877749021610032908448064446728422784388153325286479260167690493632752635860169445816513816169632178608020143543010281956853000629706428546685991054410038958141076853210188123072682453929054720448484707010625865545397179616460232128956444477721891970150510593969295086125706412365743952935160774697801659319091251529864239808500525258971582951687319259354263578714378760294266561024648523272080092484842748956248203237170591960409231383386692970764578174770651641278653485917947987354378598239252604639283094026269736603442289993094157914651676672176753704773561431054250626856148477362190831229974242470617646201250922438707468895941948408602822879246805393257318538552130878473568178411052502246398925745422114958573432563543906854379435373827226001333666738492543021612989637964569024161746986855402348208423461520627193916093606295033366214527116699449433589346466277844692516676164107283032004934148598767635853423647429769323660434174202983924431794325983350818683927285569013652977999160923846872569939590056955126637166211080117062245881616439652906694956049957316545674263099167845027245073671145590236707931651069997338029679430606673672364300233228677352197184284346905455723939914151004283661549490077835771926326722609974743295243144687178028926361019943743686785190690162293940056076908681964230501219178697887816947250402420024201783283674639095425220551477392667613347206300953949734781810078110639578814585969331461819892910991024770612807699799015001313550017075055188579728080214187758829038944966339786347850201298701918720762558364383426315914843736427806809256946935671216447966193843051804600377635478171043052225100424790601368772238715307389957670218964501994169250165364285518089815433219564373997298414119548103342345504560736361858668242102034758494643331201398524403683861631141859030289395272669449664682486975236271668595947484692008591881911803777502029852519544767411070979461240416245886318766299530058578720707085801230469301098874664006674220919486434640094673326510691023759922718208643887833129499927982697899249696391026454466450756702696840175063877627539433053172412873679652120022629992811814154259375885945417253334765374867876284139380632308042051609886739863790783456626966449368718678404080193167056441367923411319259006306876967617570700902188198981013662051006952945692108640877814189082551462405061658822999370081599927177938535951411464529867927335526209583279217492660300870502478705460371553886567283608611210689852680959087169402755790962610182404078018345222986746954944345753792154398067879028330222490444546203434119532989322775245244645745732790597160305847432735789388557990817670561324502459614405061676223519970220586523205654139339305580069138709306889624600499483583501095678727340124070833651210772225084892870523979818393431085785998654150874376728156588812303930720555260580168038088009814104202855223204409663568875508953060934113788776821076638571442302201594518432810514603240896349709994100353237867704936251845139367356498833992672358419676826386112811252259565955444449435504155725157245883816945523164463263254442489497921406156384230717252635667677398048844160660197241164073396543384190505716282400816942797262233479387875600732988992132534179252323574417577700838248426707526201553180371402660451822742131962575233504843937497400991951647651463346341694915424035987334632266656842821769081226377163009190372632817119068848901786793259240690945872674846117446084965174089955466136010131982307296331684713091297041382278835690500697891640389453333550450070175646880753334348696052980969966711795918732394664197387836647401682287920359197705061005999432568622080477765966230293279786006526014488064359859809777786266165324027558994874019349906399605332887533926535172433691384412508520870111751883388174357225993950877007042263249521367619366179487876902420932707423728067563705818493377138394650115481046216788582096460758243794528253858620730509918068515093918954234634521956994074773498853335498994608605699142266693067111637503686234102284689130649564512367417665767038802517318800691331267126104640660967222967021556682898069662178968790710665028964707177675932737167369229304532767190121710006002892923522918182907561197732703615173745139594588979597621519753630827638347671333558471237351561102663794766562583608081395937601416001353003664297231264454387277713561151104471719361617700189040034786650079669630682110976755793996946504148997940907232736447193576220607414228508070496054012396488880344283520208229593785513140432049650832295574110600914397927359101785352579869089200241417915529782723583360979706295304397681091076327402850344494322237570479967979425623081347344690814984629010164786713135255025442836666676801666466553120562463012904756168794310237251058841855124271718419334336262329981954709170218362239745031099136171150968190809473340895135181604724081453102916355317341940250555593740634286292797825361559659908975403544787852318222271805981363478595424705946305811739015711782868722011109072273446061720641305271575829203325290739401621717491920789223335932349422910642059083545560688469883987046969003516986200863427481822896215084826330444541365631031258041153481161451121106238588976772504144165110176619234273957835396402325126679549058729685546517477410046326869931137195584088158960225462930903262997218193646852884788252753966252677115482103941348014563189758682793892124807606387816728317814988244621054326171202504068211884015919021471593062788031329140658027623894771520125637350868194921094674107912487401586123758235301777578638168210815384661452457152824153167590031796909924461500339291916831345396783546271852108033490391039998911954584593621831299678031138287266480317011574998169207740060435362506538585569847962650727756682666148538284099600418315334894364501307368665135055100237589059810779034526898057618007107422290919567575606940656722342558727494095771241253359768104611662228339558986755784895120405581468124463183721712452151403663738130540715794638374079362809169387139246632559755424906293923498431507338876277128662789856345003523555782778168894002785504350169472739174468547419442497621375601150053546099671629787008322497869449327981851959280333667138174888489766468737896956153352651303907670528607691513187177897036591787838625435274805884133083017686493571953328709422728832725818468531982396461686015595899762057869495278503264167894726470449197935207887743071235441246652923133861695913826315338027658632621147503216614910267095131396873517061051377469949494600655454076788132145591568551570055100754603548566632550657214620690801119896497939843212608466361145595357130433440831461929913944923905526169043075160696970765321977345492471641333078807324478413119252703857755486721860386633001393854270561642002424041527785978260910997617884109078632204526223996508443469419233097740772683749293434734933105637844610341437094580584413019046143096903620973218319945469317092238701703744419231331882428271677409579352603268362127018281736979000357706344239297432873632568282300569889048221765527127720181286064596381908909306976486054119816827153460328082866889725994113572562291766047715748375297928854812420726169186788846217391785950542280618060247389181563672320602745565416819619339006830013948027640952696479374000953696961212349202158119132438155902030259102841784190433252371179029182432632595497345435126941013752527253484396332205824015229702275633362431542669743608428047212936738614110445206111667045240483334175628271692593875512928749490717431198002963341430691963905088815365453004011542503706239646816500228297452600978974846812416349081338880557413933829676278161316417901448456927186712234029459335145099048452180640594947387030214803204087398888732041969772444162384608858961192136766797266577697194155119878488553888665108813572033672586770704468809487946540682943443060504673702974157413800941960622027361363614011047006941526375022641233481939704336865726941967029592365994648147752405391330044409305334781311648818248343377120064092214893287651190078497079013077174645775047318189432343435214431818359964435485980701669276700471126852293217391071153124370672823039334502034144034954453128381668223270614632659837398350480150758856968823628445023830051413136227206838370441555806323449984057443422246534130320101973034003915165054835789854359672332348693882147934505712041079954736892919432776357416986871356878926360846857156337032612996553426369778990162949519534326803861823025736950996867880788789321655456025679891144973343377079115899616667996741598732981388936675865227717973553341660125914596862083465479429015414039878255029035642951979787946026043353685127788606256303620046128499211455108296416390499162644209906528472576084408442495864732538574980888226331506948915056522490382424966919209788903149280208805303665961842698659854978896313160790459287765033898550137144113770569540882136085423350427570060126888561871854918090490613095411575797385316892976990765438975973504478736427975109949943391242262318727768912417546751424466371182396478421075398926773091674118639049690112125818105535802847625909636752269082239313715901293649331405250829453262583862261896721772935762573076349980278017623386674534194717993078758685804132788619573420918705935309517558195093402746280558809598719587522251577504959883221435828364341797194130738108858075137676549001878749282151086093206182186977532497280217177195045083475254713524671643141307412121115024258673604521508592367400191136960344330163648349853370362692402519017986339673332086020249635891292856312403603338024810922744937727297737733377095517710145190037421085098983040133276234345344233065737910816830952892412146654308588729689167896656424994136451863994522581624170594235855340427076640475595721670946714085935669828206952863025524748928317430364555265453338610327738033206877691084832978128045829410558771364134284556620275589965440728215508994222150528242924095654905126135478324756175644529547143739961197677946244812529423108785748126045046219351453867073764541040026599967735230530638480998240441039046077118453948571809917601828140298344307775245630858547737748220325700698453306439960387754479473638170175445190196461023891288942350669219041478236311363170888972952573884222163006780939620404116019158707815379885136453450027186309735148907362603455140845991118879316597826814353648604608535156862102648898563959187411580330526900318081352372036507952462251228494681930210824344077777925917445459742910910349468197293934786878171266907766856676284668852497410742868159334456375642812050673951986470296341618127525881069046827726107880114033668345682592404654301017871815408585935983597475593797907334774195049986579081896294330125790651847436498744081328740898133592667107511337927706211796171050490282586027743256845672707948985808843958871304082401355966435709619667019615707636822554195088501977936119458066051202177927717888221585669156915782574130146327913117135740289854683988940939178332688508548315469097202825300562750983067882847214047670252726555313614481706687412031942615013422100051576422367754703135492756367598954504540462515227898200534734170771469031683149889897295003141503015770935597094946679831525337297848783989525557023713989308177084929430061316559580618782024092328082458201971099531207449739215871388088735636394468823133655092490472844012560964954844730260591154931433043826918119564225760435420143596846919959033020566431291130653671888909026894145792007395762953816210234903212761475000320774148578366695283585663336774731562733633209535583125960949863926313600130338227415495232915251397471446126492713421125467658936174057730435190726718463140783222835333745098641481592296913134579979367468565954817740395502100771612126467127347859290757884335973326254379383606691630146779133062513482095199970674654933991657932643624735330108808230931338602456774161073389398134266795721486235910306636822086817910762683061137514790654368996969865442453481609802595648071168075320733902814753726601101736448821819119089042529853638220158024097768507994129714631696081578624633575287609518010890884495821181121106147715673703965153780312305177036592102703760590615035659595463137272943385338180968607988503707312159675248286610244870710519766007314328376754195733554391712688573901621632011525044095244903326991226584276994324465799061194907718149216092083957341254353290879342953740282181743435147475256224988635602499893302107646856152476318662603482868512569613763967653125419529572783252418773620725876694572931662339610311237233851061449473333515374131743786348703358131587355052793618140414178084870967207036485784616287940310697221013924854530000561311068262955211676578776275144867003893165264534523177730659026850821883185904743990072162798574242625284769785051063035158145506232927294717065522086124683950865442603782498128435074973678979141747985434835319988706403261552246678061440114629192043809790230576433848166871953831281663266326199768456603733940105559040382721329159028183659932010481871292555059223740929128057950812864893893604458896898271820463403705808787741507936295036963558615746395520763066141686124804913940093019456432286583945011588731114894994515451376453220996978112217121800204065381156796309942507034399153272704731217232479607567738203281016822214073045978679016092409244040525816721456640126259433626273604771420229186678466035069372206555873088201721975489766327604408226408502217499297065591376336299438286698940743662110195526288791140354908388768234487078957816153812290494227583466960749714904451572998108192322266293956062043233292483114060875564081350960002845412792858613369757878364685520566741799747687062767254184924514155577336698386907595178074655814697782430748028699042921770673280638725711155914467016281473967154947877409653747535596131162582242040470521433474256261018545184716637096113542126555908205953766708337563925669126171264640476338523216693933707441935642880742945756488983875481065621636899961885944206839450519697495136514923829268729553776482404626603709319408810535446476659934541272860126270679519496403502666464238645726234596052879512234135642659074468879961786414209107836877847934518222833234532519840890073358738414077504775641732567609947091430546354428808545608312364924354429223697791147451437536489322476187713806594959367236770979386015832815096724878942692934448255654249361732521894615781977279531148080504421607125491472766097787856548699586829742175913162479325658786111703298493776556284528019143312131057221899065925838367738843157895733990718382753847684886566931048246333627301094274010593833144535359152243816801495888745170806438872314248967467997431434159580864247020166447006760018705999598598115386326281760455739908215703383927175429706169045014548606088275193976471478594214132079626516431977182972818490961404311515011682679965601708014273286914821717459091010671334108283619192745309772426454612207845439416372854807474462355772031439795648359009533390840043711418002957662134817011858887130244166639359930680021038948171038854552868526539303101756429622776675378977767326119778170726759864415596719435143290052489735561648772506748929460909994325908107465117844495341061118832911194559344834735438133706757728442138611119872522925806471440470257327151019980536933762038616334539510398440750828645554316214730358242654527850632819898751187092047595223062455265979652419080161343818394916010813811871033570266163268106201942703767311138429758173734238733200630247503818481711533584033347142407556702900714967171770233971135310547614830145810111895975071050317260932888096168134333172948888668934408927579325780370572830051432031944473144217491835672265471306341701672797210642336793128024826525633055990792882761873226776602562094385065551557091167834610166007997840897661248098137167095727253221441082045962802566947327132670450482051617504449302106484256393774238829555222035142143215451449563538636343772459852392779295109028933059186064572683979360649843872702593964570446773226056218554050281457306729894725776622095632058903745601655019190428046611258706818266058907898925785964934906547509922707427991375442281448712604740448236980919150985953600518135301614627719906824810416580326711415298710261383375978009022190391107921788275282664125524787123163688839667987745444319974729932076092939582631332553239694743534914399624167288998427963608134005341398667783357935124007252709738021334751332136975292021364853528645951194392557232724609079822147983883147184522387950155342463778009345999231325004052357861579111604898189915494150801671530457486638796903341363750058135860648794293005979043602721264241272678855922972260988732240137244303792378812667067964129290336334082984841100794050896697685741583657887934488475393348566738432681334693176557708121714278198778721252803243439905109222256819349897183789710557972779284204849478235921288095189511200100436565075776018357538007442511646298709021933236476473136095165601160399331445065207405506521502756144698277996770698985657442140819484812054107272762916636160780937229825493578170458367021028411160600380254595363075526655308965321839750611240227460764880604318472696794020141079471994006299712538315288755518849011278467834817878021429224307143003506676505093960891451517532149408400192287196851023769798692098832956964612131649678103111459770440767653684358891148758000164020032476427649779524681713948970924656786714777704202581892610922268276414179976461512517527049242990029693098381253870429312784266657273952767260405169143455871207273448084145014385087454223840976096477074062701449296314662889422692447417560287449686651475925248973542377502568869657613569291261360535144893817324309871155405319481491187701322610705242270771613125126675235886202316837245203678325643615596493943963450187218567368275568022903865198863127632844491626991281272237740884815983108517253947238552257285713579701937188380320995243930118105039835357933091055905164813019481598327918194124442376978141866359955416927734951585427093577938461545591980217948271501487408488044473801429354745704289903372060706843677303440451646042400475876449141285842584455269337022847412841015067942354821298213181291464448357007832929607912684032067010349083630612713743516621598890336903402131268517024199019449562980927060917852932236119001051837921070542383696801219579620269821114770548630724192831277226336364862138737694510999134119733347326528417999344863526188201387348117229354133405031032721164001094097857563117637876394137572866955960928297568569662223872585915433246993308224802079022024697114978197341490862891820111896944120588882771155066397817892664503054580356267336476941403477136706573374397124347167305212360517203479763138261424031418342664238080344747007403884281552239252775604841358860268200832718666384803412292780151279740586947117524219055894858595677872754587090820429036147507722404032898335508347161725418058154542436230838871452332274655356355345669966191195204754132504386665122548359028312828229009176377866255093513524972256711980343150624497680421895072997638939594075912053619801063946174665808622284230771879179397541808770600318119526876297385870376133852742978909537715426605015632608399580230872926450453688643151623500556111103776838201246353035473519039992749971894598931642288326197111886127107477947147534204874054334113724427279970085503464753033707551204176151085646141869417904550030281106983577286578212202416551141108294076248754442635870692711472782006367967625575637994420775745751848060507565792626899460760466056051208278865512039017174361797674955097940651885865087533861579714267830883169923359416371141032018710516543165997976231366800514179177439510275872634475297402688093397559695020857767955272017881351726498559586497891607143401321569164306486362982311868280776788204986763337925547755239044848296324165678507643300262116989357719684997970477374402216488660511911305803694553049690690534810596045632661271683643619167156744511006026550888474534025542129637619729918043366367428792517939893819938419526615140712928691652598240200125554004958464995084974193357078648345075851170088172352661287077986061684953435876450064795990360814118940844382538001620688697157286270898795646986669363267422709389065733357250374722904766338699311685421595739200881202915548655985546163978207565126624971851960922803289625126911677369665743009313909503249938530943164942271770307002334566614265050657263725223423539487394553455430142007696450268492598328242847078799189065859948456917153241034507890120207999186961249579792997301688618263628412167619572440249805089581001830746856457804508372473189428553551899706497294151282833526466648405786738800185380471743375024086794335745287314789076905047031861272425031331980770694496102353848617684966116877912915330188076011529020506283442440260897960369452258915907074621532615488170741801906820763595931579878741944704111948061606748988801362693841348180704376845673702969214227744387786296013108097844833820634527100331425526684596253657608312370459551689556912826879469778476624126148532393349646914851617203708407728287732078857767069878161941725961927505533434045286772804469740877453003264270570771077106927604187968294288292611031766657402838247468525116128972878063298656170919149027531662309524457036311812586380671811759667745830882885373836740601311769547838622629790490566160980774585962241545072110626891050843105708431269266417234997500888080567981254925474224113128626207801568181407979915358070627957017076270393175997728553442538051141160664753663678911887779250301137165956293224717754693945093678628398517397449108968148092601975843782940369539758683813668733509913157541695226913225052354859837500284396729142691552499549031526912941711164171294610911986782304934121864943440794264853432405345083172435040584067174435216874819548251465193432138030116946231271188338747067966609589521313288467057483684423678855023473604639094382072268727013444016149337991845056220411251391754469682259941919245686708077554153473468606374006394760668527593992194943126933024695303483348302456707047332860180440561309738632712927301422082680666713595311557266659569850344603071842222781940112138819796914387886851815119578325600536809946095442350815232624327949328764504757050345108370575930390478473038484892677335760785398144942068693208750138545654338217588376555103728837311252601258205688932609651378758452357795331666046620647284497175843458455663735570990201243636334724361247282926311278239585157108158076039244201386397605974651246494833411099211722569849276913729771768973148364049591533591908188981615642859486233670562762474004557411530442735751128099354070092510528287236085642645662456791713284946109109026773108648790253164522696308660226466450345543194892147352617430556504117561379005254723954298023229080836311445600096729693080009446583056925952183257121412443278015709346923269078006953458605820252523307574995870922900906537642996384654308840571369946873155376884898862969197181325436283986623226983038527475730009423785815288163603940419641665371163218102920456642368207066201396058612220793454454721365033129369793752061745634197520820249233146863069451028037760170761007423674037175706781206309836262890574561924860988598412525956325560716657043716492380589095918367601975529047866589321946921425825695925471079351858637638203549943272330857371775000802454125063643091870646272043869064026509635373062280973428833156049641346912360350119730939852615376799564383258933096445240705879508541609375677995149405270828695856536330323077554284365418013888477622968518242096001748735460065695927266353549254524551601138395480774228330592431950769717368218893008018109920072109861152700500604167645252511290828154388989622915236967588425265522783057978196023077165862117246948531386542576104024667234091714371770116082274593433298027612998621008953351795384203135035576281061862499615524378983583372597020216877556059593104251434760296152459093859990404568244950828055931416517965263815076543305228574063868676786438578793266252842914895906686665979268717617720165780503221910749678166622844382933467892956124408272790682498953050015858456351290238127144825983240505743556462610508553730891088547839566169752917014331924799195900895884255052384196645024210228158346021151386774069844679151920566681880384314929947408744557252749825363816859741852272416153530556479757846006738400957168954447891080661879303885909231587809970348101117367896349492891774940760126532684751537057484049672088909733478434969418502420368155541610404690112136058144327988656610853824754568209513835020148613559155088800497782641826945662659953111423784692716129749412604901004760839477374966159280482790664916516499575935131505451770775254558578418653671600233191619415951939234419361812683557226554609815449015259670901239142970575132220343982085086997641924189557360097698132675317687205772391753113381336482203891361448927073361733275820769863469277460528385594062929832372086154996977797961524846609073043904897812710173296000686199594859087938455216136113409643155106242622565329373452305967245606528338115945555827298456622304359331592624752333603300996562330888374882528457687000992992658529818960799081911079555052860545924648653018029019883092075198836281517106806383783321941526155345182053358202036964329496222735870552469192911474178959361438593915964980585979182751632867179851666543964737050961309369368557686000649668226223351466587783266762497262064516499341515415129605267962230567585498707707980166032912383456514609407218489168210450498337195784782214140059403549081551753501785927070393434156269711212521855752427652539576525149287366891264640166718227067259558910211243014673048529839159875745242511372606384078339366781848143420376502988395083111906097316315587826579681448063165706363727665543572463687821375663079036607386587554443158914016539968535187660837794359465826464719593883382657075063412309827936061924533171220394198694647917301504168873287401008582341862164967405074676898693641767320744509136169517510906105770175782964510362940985564284135132058944360556572736539057176792672819480706238412665481312785688412014706672942024307795852000091649451850713085869158172530714244441027789435656575018061684366833655540993500292520490997841917187282901655780281141444769277289767950037847324171950430886341061906156386973756706792856644795680151494763826456918402114314480661067799856916135177283150641382877643504093462169605678436862605579650894705300969702640573686791885002079951750591993364328865646022366658723883164287956622032928125672787223899882352698320320053235497166966088206259112032852103735228064058070312784872009750890442613522528514142821072555421239261270582151827989303240700107640983702662671578317126917007681468597905343674095020881856377185046823777009640678794306107975162930401868344233162081321460066670908142816388336910838728946877606588146867634965834860490994340662032100693113972865221607450876243339429417915416897947834727527748978844451829329642377277789653207333921894597057489658991127630148969784457175067786449093987986620455077774798121580538048762366325843287065603945276258910224139041059314829910648544886635644736986000575949053374538965821354149538764439172819372127064118428325398403882734222240709116181230938695394995102063959607360174703201685829692635129157044386467014758210381604604982894754496496171307661148403758166169693888243595850526111879365251247188470326405000444112206977825686732917909371169625919967384198580121507664892746465397766058541179782475737548435191523242662371517206032769287981601414182496644489730309824031873813545349607369586116336923263131115721448161232580685446191513069472984345728894939261955372727366872618212890615344014232312365614009643202221012280619737697843496571893871635836721503351790758895575092362626130949886612975336933750426940277585407121966047362017870247683088925191153316192940045242898222834066019780179133839594138870170682198045111414290517420968177462606353018648123644786709773457244298159298247644641702823049612058113461536478972999925381611245568105904988131466603427180609701562890787338114557478398730840249117214702374822660866952799781204118036293031193087668106660965255123121868018985194231011056566637311367521063686474438202066123116632464717767936433986387054497724540500909084094770575035499466096345463313555906422373849761819369031862145168110283775686251194164203127529224370628287179790046926901829361475541333314473419075396128902702831758493428993590527976362595126831593206737806061611839956487472885011253760405588649029985613436396674156174540991151348904077889751865847679585812579761492606474151069548993511518882384167134852966285616129675321810041628184906024290665233796339800004950974655294168033985650964836996175718000357541312604454168250640341554842393666780326067088528196281957491882923337104916043514172802146032831848199411766686084885450389676517724068424708422258894353740633586113561718992049050248061991727228638984122355799116230372262430944557450962104462665474804538805032728996424249010642977437714348530445851133357612403255366454589059696578224226543120601536205149478563625325458162364965301107595232419439991209242064660092148146298154714111723163462444422454725314630505748755250515591697907731133391764220352863928126048639611412885703571921989523593322318074849525228045991090787999879031512149273896591970166761057223998357851055355362495809686004635065568256150855210294526381879452650948527888534156630230257690986698347523061176369287308666818910139291437351700240273229617979708433997653705764599736501681657625945699230653691047251205151907303627924447908959372520344560497570338746773920617275794431840702303493827497050895983888240221117680805874746922227916464571668679641666156274281817440828120290907994139680792037353295016388637712714555635253596004148629430329953219583855448946894341319110346636065934571765995228873845317337889460535821204346156386361855720672981706825113776857313875850625995706611995739555617645356568138602699365179334929939705208388348055489437145724060721734096854506032898715435462575381023465376087365844666829252931766100335825521567940530837488509954563536389947616946438688900462629079496825433684997309830521689031709244158630050893029471041357569264362271951070273940741885523676690398921710098105996333579928372543764439856999108689627166284433272295804050044901275730168094177521208149926445934827757200689451263062319442492323868751496382425726522170400649399281398183157869931277185763898739727578419206433179274192798926482978799804710805924304462981866647876508450612320797889593827966791538600506271604538597610650801797528612312037227715284811707902887377984534390493366570844753327169773766628941903403221066892729862617854860948804786092533593944630873941676998343847488334435652280569287113251563967716300315257610709841454279021498881471207827709601054136482468455837734674653236343096408531708721410588837147389924167263252262787980637320745599665615858045098193298676801394204808095601853590911769293271656230445890471666104580240080326521214541778015580105960830365605188305271138297878640640689033810110488787956763939561764318654918543113327302015731642507845710964058394136003315330976885029994227841438658844363703269899047036986691768271972766015569146906677464417920298228550902578564506283817004649441724119397895256975874587055235533791483980895317529348017268705174078083615726600174256735662542076087379259528328527084990131346358968580679133897988135819084973941648306564471950613297622630437406215148376391941209972430086585996842321825597268462414995604917143424529436499795857658444554672926230747088113523225842027042342780802428976728862360437755254683220340361283470184859946976129958674677542239660326059782974583636023500048379133965387995027591689414376327020926603429609560726456906633194828309797191131294914622594026980169278349441285781935757594442334901770941309224732731773779163928937340025227968461242584400582937245013048858238169942034078124662409788952670227832529854844737668771982145675169918822877098997922530074568484642371081141139857641126760219924910299961832845870848800577339112968096420222390502148316989800220743893651760583419851156285377150173379122593604173100553638709083034900778778775843059502560751520618938416415895766770853307203304594553674355397053796392000011074909006099962209980657445445433546342902108628552249867419328751113016289421040210009886482983413161676926013648475546343515295392681614804097272322333601013740833673193242135241990244886567864104534008262487804255732949581542123982902138767270429291518186375300297434512542218504379343221794228866524698754205906357426998657848272983501146271194694110211660331947088588707995788958495141843138788140949942526138866590765092871842055319386276629272780391786276754918069105543308500893113153591115040071021010347462598124409830105650132206671738200041211324706780387082868513701645168238781637001340170117941975617075991956301929871291335172307373173055452631084779129026672197233959987273724987920485012998602236802590938655177332920268249157628891809617070553292389223919440133118244413037558004957081097682482378939798484948874574635764449362112430045453315061780802432197110493970198782107505223887460127730039257345974792506880763560696128760986419361558668872046183313781778947852734946413122291320132649763390562992958983301850917032693323034273485195623905113316198701799745212075030842451435683305871911878635562670872404826217985325624925281528892416760107509961192928878540596378960577803280525430710976208010845277544275931800357746160774978113857615681479966345795253518926491245613289837999072734096769556859504773648951699124929331408753581986464556268603136735471281349923253796808598344878267267762493461145555679197635135271440879757548720787931362809102518445310262986143527001353900318361377277514002676341905485682135919576428321357857269643520999506427499328938132926688878887348384964158818478700895091389085366158570120684181542356731817986374877276885275378893155999916717717751324351234345635228594435619370094919569106904523042241311480732004719056012028175305062125997304514474795601868996518583381479242165219801516832625698384179490803086764428618823582581705890859683985636083966768034682795861994914798577534019128277176707624981093645067622827205637326537458773568688935709715279319926896804235231465930753652519902073013366718567995117387399417544299184251418213416999901414944986389008559969920819710681637518942755872554407799601893430969831573196648760721009639310370767224714735759383801926356313686265869833389830373524669934470427844436576915887057616330852617196550156809203989716261663130188428157510137374847478577896296294891550774406195799141491197666400170851561321150181490665528613287814995453326724886138543891361097574998913470261548774511789114345585081824973642284470811237888521585737255931063516034915897698076139765465103871948661776858041039975169365847442498815116240084779914393785271597900008717055846646640177865959111549856331516885157275057318499916330782679850715686260624046613422342696774066667987320418902758767394708475769846491983978590523537606350337912909774215829715013883013293776529463528129135337949508863378195487378835475145241205715164491557238193986026706478592526822813605843573135941003339797166859619814626978733129274012442275210437299991216645010854992747880181845911388365367965573314177867892002095981484360655391566390818316922005500316514934241474986235812124570812675224628524065561574169803305809757944781713668803889971152915995516933929192646144772396835144450804815888231315590452902171943270608346911730136977561689207640768480292602428147178313767653304513470305201632678563426376320270206437460022108813960408196166878046156808754417026825743777829195684182912068006923390135140885922475333918333463774733804802503408026506150789393067182173606828318942682935597792593597800030224137009772499153225887990206038843871109114511867899358638517179870875987619072886692054397463103125940705764103698043002320935932009074722034560184709439051631464334123795183392097067786587214198974917603847271034721837171238366209068505423479909094878560420753301789953182375664153602074274223669459482483599919554482124142981517301951637219362961289876711531205180871120193896345151467486786053885359836187838414402630272301231869302122988384899340336257976942512179563932736320475226886098375603558646059687502892941495311761407569087843100178563394383002736392111578735259681145743514697541032230291543489180537930675201534619013752691259084094527157159950801016160309418203424214997789951137423748072351748867267327972240686925906450446011389082270185926741845017303336558680743857693253356074198987626554499013316959396678182862009586612933544271227414046700660666908052071331331616924648300865729113057661212424548240117415458271515266101566206551887702735867605434078803019383090406453013676030478168006771858738619157807665588966647660915785762467302981668273181598712170316535090668577561667697257154613480027534941191612650990786446065701374602321348289691105793164058507609309636440409626994803979097936575458411981126753069157458134480272019663584641589778605222134263409945717861402420448200424910744809593457252387819474760576675390860963760563527316097728540461716292704200792761512133811762349691698628455805326338171684529600693701676346972423262337079816531287817536483682882611221176899723187827261274919063234825221369344852889175284428236729953776141387977986986099976166331190411182674083118959513076160917482486841249672732753873031644172966173090088687142722424847669435152564707920752935410116600493883830404699009585113623956513324403116022023171793008771597008188399539584530964133427921779693919124013598819929543239020920181819009180566604548452936424915526251720453702983807389227997389928673084972767566261788043876605812194752816937825013016006334837522888003564039137789963883984140456370742213676671055316559728828865646886871532513665448485503049469898676200961217566844309458489520460801629041570018405039220468779079599585219709127364206775329749913748777850430862936697996098513029159023043744980117732849993160740423488251479195032586168546359081586364615563784044584231836685631012301155674306019266802971773958276463978058225001064505130466289294864034744307416713987909492918204285901792042025239914696629871733484808146354264791953373870869448522641639618416469392404154984190624878185931135248634053723609600944509026310155678954878270787285916061301052435962880561545631798311474065674689040614261670097243806483064714674399258830334394495610309443196246430959347003115168200262515122315295176016557551782187523064186349911858696964281697447067287777919449145816463618806917045860537730367747340104618004379322184959540797797916931226990225231585031356797118129731479226995400603222782629807944226478979718242631328589679084362926803656773990732199423594227787278929237719136171855583897688409336330158044405922075403916973288869294054408075607001611250480446947215556469569202504112499245141866994820536617825830891079640781934288382965347881156085765395580453200814868521278166284685892929685543763795088247646341772269478449398408660535125347472270693700704024962109790577378106426640564670471400640231337778089544928628014250680565076026392103365622716568678182198007274550911290737805082509785074859822295964923091700280428335118421685843247627166971683730115460239701012335764988261715657259833261113987644675185156076074303419552234053056324703506347423690324285394022184580800766732352819628947701099716435258003188034084383220340656585023071766036334251479603942044486338956405809659141573657438697361730363847050000834568629219291627943634223173424663643144523416431583785398690299234498753302308475039456165909407693665385486598803786485949322473331279190588686941359504453717508076521346154290655047589294662662954132339737058106597355257009168765029936358571504226708643246533706847061912069330298120019418650427294455236344965162053772579332657181297366763146259734867961652434987251186243130545655427698061772831327531078004693902896736456059702730254861504644338135557668703431059910012853692166728958179773739318112094904946614007932741660313101243274352997409109750664777130801985070574741830177626947070224150952417663236174565677998980980427892775149132142819944590226625129191962200703908237065115067427871929049787875809597978367466066077748600890087161479111961394450857845776631886431796456419539210541984388396560627368933966549181479277928236160119191689289141436960611523814250663306941211690643095502817125600365648796414992065879755306903543741729502588991107700017320220919695485196066077600106686826147436094263767014212799942349284640455168461449021005478836450476262088279078839048863647793340805287910594834834517967500911319379724962019787526705423580644331653662629562993121149157101554260579046758975882091563427274577141464986884650917026869324916931142389274792895088392363261811629375606976703185402703382450991317924045919619649855459067503148616836344731751072737817099853193236947903547117039142067302182425048719531090676324373297189293674090924094101109125473473776700722713398381590543249670195234203309875668430686541487794908059951686481132033439069051727758931427682120006138126657899364868657984087651732389725063488850566689264914235281264035475883598100285137598867739470478683865435929520175084492419906931666057957643771760547525863978101422516804203300532761090958152182018230054053856535734397423351923940481140672866845791575745190203032939083083526460380074378542571059996788825266785348769348017376824491550905861120887461798616055689298728629104122531943724788441793943876447398678546602699399491786186783484165593896795616769754758305593036876110110661908642870481058972133365861252401612591788486294557230558280740562876964997615168636867875496418679730766541804182593924394988943685342217281882874554986576081617243293391310888626078248052814970537485219336352616463972740870747780513255628075203330935961683775976694089041586197050927710498968068770769825135716336865262171585324523412546367212809145397461116494409282518385323720815860030567183240028380434836512928796352990940084380425161832885759835714563180357657284463904000613041782859420787702404164271487166330927716784563731492890086997082165250366334718565805048750842822098144121803568324470471562619331273750001886444275314826425844636558568889935544430334385220887398118409654185179832723984511379165478979737567646377514294504083539355467522277081726650676010680454182003503942212923838168787290376477632658402606652506986991572502403077535170847731378626498553778810397156894593907743009255386075546187043373919653285588650651285192646388939017071383832628037760874308088553293823232387245942307275295078754905399190193495144038033168124737304191522593209253954149217372042658600658002274765831635438156491094093203708906266177031020322652565012679328738555618209193776404613489558944828034076812208026807403577527226195104360595841903437033462830258843089036181130501177903720303581286704916239328121416682366021749566485989217042998595377183960360642250608291958618563687151636470097254630368418856752611510894217226345635840124623868247979366339292580094209681475912048330487911673577172723723870063027550291151112155311089174213291808213291373959414409851783927024861833208764155851127074605045094827077222857755247900060847840599534804121894802128208122372449053878554220478342765340383979433383551981723417792090932758346477629309923450192432829118575566072270419535335164406351054589358550575642934773925082940440306416017521289436956925057369017698663362008837205106563020778716777531727084337138159182857454009694006566214374552129734530909992787473622280447746272590192730176831940833902787647116256999840347955111647684795717837447881685465448413000696810633385374095497618428329550312743768459195804886394488958743383789307197244176077391275140199821743404885809531985658339832745585067640915534860453658315796103201572024988555209456299210951104998058697574052566802701374212918518795141033935645600658783038362914365518138215277488802945013580230081516063407018837791097645670009029197975380373668339907962438463031448917187444410837057727392562560404529820701054238867926246160544436383663042456904450598980579268455009534546034660540457849184444899977707445980176128677914660683417545995182946891364121578682922134596882943458838031469318009210783066398658337905218187424959580119580047827529915922765207758472572053524053847481157999126333928080260621283871624912474615657356761335750636486692004059969886065599497398920402822701056642878392983685356481918264510496164799313427218378581071802344816097904107653500841834634968077196491639502603260751341837272075875084308410140338106572941056822547913391274309488314616650033370003743759236166671581951638418011773177970864529596107178601267548562890035980540327368784871737948518732037834109990515698398633093442514222798202162648209770497601479863495900588420450527747703448842168143743697556752945288491820797135024869085136292903397593512922076560851934180731335352230908843467774797801442884122526372869444005059317691951337895048404204189049782031276289650270819407889851123277964629223794326055857379229608063925725646087086685966142534357649537085188384266811867636400104628589112589199077087416944370157373880167708506474494705981417465359067654806563567260185332764408411713044680834323198649078765460378365986419129027989010950077102771512362073084962405965534191210238652600527632719965061300706989115104276900437773506850643753796998091597276513020357975505057983134766180637581218343734460355697710297505885788124437332773970586214829164821478309292205643050067051093586633123661282754266150439297089283776600481270875542676047770704474087996017153871490386132011248863254858202299825868208758958758720044597946411653575256851703940696900863001227398569330008798816467776498227410823188424362250302996308968235833118298899665538305547845306937788729815864594295483791585085617869238928572674621693374946289404037590709527028534209157692540468203539953444556954720344020786830799123888815590151339622857413000220299047217750676860704257905833645886856113511944690392721405600041625641432186170038289939747701025478431195330332865832773939428506654323055305328459645940986865589866703606600276581044255894424791118422564226836859606059019927998102660883633876629223278476788871502060433757394374877612196971460818330947522208630469605514121733071439584722829753763110159297962009518270401434308702617875330740730404228384466832138903287559186250342006248101998470282849396045256224189157771424843430380704357623383300743322105584679161128362609642027229641877144391402530377855488071992231622362300975776346290022293908670031007709007209826214620689577279887007624678925218012759345424007283358482063843269110064891226884830875412501677321013540178049571513058919267997571503397047353821012849645802458930170818547192234647887390822948892701828470311771288007946522564254713668806376505987482090758117801650964573236539693386736400101444146917355046776958927600146112225822694445147573442754453011890708827851714471468949935535103973655246231152832868124869083438522415256969468836134352914218837907493457847051666881422360504163800005614927127377241262938484809313967991889773384893011867320946868028571335360233535889064928037606869802482268366152090697718099015166083829987092428636967516252106968880331016776298767853012344409634017085207917078592784726490184753018476179370734054583040182644358711293370367177618332484533086317366166320343272198019924269706456454331958378963065160065975200594537511005006703681121791550155838749185474309356185939583470788445232675267675151180904118466443524458051623356688995077151359935769188442061229416863595836996732072582541625603096923390066324551178377956145955989070924092310694818979628565689768339956430575890401521423733244410898308235209846585470964138745639440046029264933527195364890427378738150344199443621806771670461676785206722029858870986131427649458399006148301441469064627081632784910552535179037146386020716615326014368842983331306387857400330879677134452237818486499432387482646268379118105353449095551440451341424416826874274175270011735808666903926032124273390856587502456488377659668898308708160298205145118159415042430715137143442798670577187404196169586975555213510438888034266818322689565508978894673542365843773064578780478198143937691468273046225725633624975102627498071040148865440990718757398132481651415213892514733811231790213508438671583765622964350461166114742025388881404070139338494021342697635946287067249610850452492716567649884514845706555233274250519754398033417766110233830000043287313453588768344074028688378291643745950601291286250201215035602512532217359436857128391693469506726433456343581573592703626389498034414091978342344487470601506013260820040642534756961159679448145311561156052660402810789141575165501889783996360243612652699857927081838656861378716184417191926881650042916408467418100540785953399567925430432053284675136238541987139657961223222014386432321891431044142560610374395724325706302293522384206509464396049775958375023741101116886983648661743666870174523147951643215237907624083723070867650780211883022541721533090795013191677356573835883691893366899956549366323843933989597395721761693324000497752927557457346553158501172062046861109297872479714116132495177857635279272386856328888945110372641134515300111632841394616941107698005953427859671903243890094314676207505426788266294397035674913021564768907005256805517602303886430023562178258470891254929870751826109775598338312472023626210478218083247694701568235625816554339941582264973248846381984139586521034980311142934556636568206871974526354737274956540337741778811574436228759429118849336245863955784618195926873651348979981446239331515139789303608900822720959189418564806239033889586292394360880210888276028699562394646230638383205851175908414263601890337382618212218289903500711909868687560471427784166920164893345945810555736190874492825330646594284094489608129535975134910643823426114391973972063339763120486020791608233981666480476784271978034153633698263709978523678948432071560638718339003277940924249699253721655523568548906471247234422582192920741710889878926134298903790196125531103871169792766248973134655688751716619943553777770478869266422946199694127374376774999677546558736618146576687877873774553810054217316775946895177980424367635608129301753619948961414404576323632052872628583214598451399172810650134571148706098637657753506169912452156477044145985356457907836460715081697661160152922004012863621596575854300270749105215550166858372772375764498776280384502268689836889078638730076497150672107369678824578926395764071605493118592696898136565777832535593665798153490363744789164997805666839848630409047906457613533506868141006777800598779160680034955408176826338574184747297694198511850014630194999795052431640447383694826339530792063817969734507937361041566025957187360982109740671981588476446254232540236825763387335327450114341966271952739890641647249007078678389764408626449400907750619192290758678830811636510862615516332674699146262470554642008355693741754965378898045905232303172617184504229091810076100725405344867392089887838598961166447674845405463493655527249871241126786475920432990862296508192038348371919766760407839150183107967523019953652260015906675602778909641308570786801015344193026939597760483142875876414337922169385616777325415968793144793897373824523589329646089048684886243006982663424338326399832850103248576145462216319346856482799428052686964132915916428152589432173655775106026936165624534987810804555529109102675143345708534693012809165579283979387561847373930054685393152021874991099461113988300126496888855211807532013614524095042263999810569370981039656955015799837457709897680092827836355617900771848957769394329689133011731087490564799632644896255077213054859873137991491391687625473177787860174682424457936781917710979017318651053859941527727402584377804017794789149084890413446475739616782547302098281468549683837360089048804557284936980823322468230393250934558585563268853965298131851928541563051182301422197198028947463291301930808126344633511685409773159074510480796342129817703540441065509722588860654189343211255481996225651985232702309694982188250035014853503344031115237982853256693158361291992188982627635006926376841596239753071819560104907580579319952317050578423671320053009132075662178555028902997356717838341392519313665047533570731787604266350686105833770336867169756779396579167850406802580065940386173148868897098242623242094784358742797159278014787122284300776323843175664113504229067339587846810368319049727436034327666040477482486989516893181561559387588214370506979832778394047054249747480724773071223310811915402638840985262491903212750589020466997448660615317870878878432062926864020781281367433292945063090013104280183552143616735641917924337524111941637479403071793755807255398797095433062509458482946686240810866554338453399209988578324660189666333576538491623023633997122914863160511059899173550257635199252745379544983123684033320433421276258248598798975567692678154536982668482954011035462378690434452072006824454209930075154833156045145939430743128604783338248572526035397642577674190079772758327790173739035147678764791039607914041608025280753393737468697493133707034680105380215547900765807262802945896315318343943381065610401132308540978358494306305988347778411075529242622944981515138658918076235075157820843549849553014254522423644286360552367870683504481962688913905158335453358386470324175927035508551747206577622506457629928845746181248782195886137263342070386912025261458510972324996480137508677849790153632854429728808940563662522384922798719393328166739003056851957942997948925467881704863559893693261638862899171302150533606090157977608492172087591248099918126758317139399833244770371446455568144210789502397758017104225911482814351474709945877291333808627857245509775568866543470090573688656819659542425196414902647173528816441004102225984022733924801711388049678629173816881880811327868611402672726657848239883431825266584831742654469490651754110738481523366981226021568193977398930240037376980898706282328014652884270826940085766920943526863024283787926296059951100506384785214344000230838211246374063931332139204422776654489084096020017111141594207109959860539319293260746870842638393512365406168275117448356262339028378791908419691065258987929104700308019564948344785393740802935199490901931292902183133944634973834243718140913225705221206312775146854590494679081812729306636869970976552401764903522362630153382603107339872782967970364149624651094504545721408121158511257109979302012617032794818124237147188200706220197362209542693534656362177157966462244793891033800078980888836617754012809607908507378345629361135133532478885133326702037973145073746372585413866686262839695812939886345234999550005005997284944257152965274163473731250786647377140000723966055963194465649476496201297463822104098462984462320973930986576984718443337559832254207076943027676076081238811995465276515217844577415613647296318461143470341502274492366100224870904182622903005426879233219878588899327923902396209813337919742628509067309346659369378445561800090403426990893352847230738360439367602886746633602449516664324733445125816963881453724388981754285781135440354622750682658751356846428193914118401498133323686532520968305743627060965505997840256410955718214488920195256654140727110123809888279686915788700696696149944428763541228635510408263595600577364728095545231613378253144915638311306395663509787699136642561869286347835377543443261930210429014193119227473255321839283744040498873637292111650853915946628735948769499063799932997117280223621196649633468393787694553513887628212164678305359994846207263041619723563803941516792014760517271676208949411670289428686288851623893064853948235332118452797500936545540941067534477774891407269036715677838613762245193709997318093430225431854124866412652896451099442032904537286806603159357979914924803537261061804055107699380245112684926095933203132018471952766718812479512167121694986337226108241741341145931180803580651717800848857415775682922770712357631400637988835213830671562026168594711786097718758411660161435626797135744774957596648028773552105101166329475262839507315572122582883583651972563665905453807856805368444848949552108150699736824408301320832890895278416038710250973508360277166183698339708577562191162170063511620452811249107102088634728686471679240156126186797735822199263734406571226039662305237037058322399638811043144013867103046216275687384440590423726070561662174916192247397438816456962735357522642739180191079214796217077440035690268032074513387617492579238383577206494067088413411374295820174181997979297205385161771582425189823067813832405477595530576743005347830913870081484549201957862313013185103852263440802626822708953184228066886076861663619887960410231554663329792458202520940272327814928627118005921966563883274227054708653666125361050887990536179354415586637514001494260991660027576736356945882391073608323422209773204663636842883818824489697198360411541015875409291992008873320136657485056749561385633238011641911309853905951204881235071654014633279950921940163891586991354765626330168233689066504012118466175399922827238253377323845070389237298469846142628140569194939880669557139270773444316186295109091772192626235294030694553532958240925339313117357955030234740158214417934454838556793845136459948424799033912305991259400372908425555122632224926317261766277775037932473148546583397601155663698792774471646804258817059001903638512380224484703499579510375911063562914780553210454895080724330985440710419730279013287491903691902280182104530466068163223252499233615710040335067985535557269917074523815013043144829592442193188442400985762304998365288196916085326293681401482343438919081716913838453681975085136439556200470116938600378608562523303240838204930506546587958823252720208691552935066099516655753608065056234093722343732560014184987862497585156374586828875034337482409628778652927500228752316989594965016160124868907946917976460966877598390649516375884553078836665237430482497051066941059070426282038775328927135880088283889372474358498192758969742042342728385798810165031112673324946297951598772466501229638220855864750248607777127479188937825265780601296499243842677975062882833042339702982654270821384259895007435136543468768858774099857129501536598580795330918216583892129551660373024462540877156262454759788037361498935666473161481485067145904862988210798289772787601292568434680134133964952136434964908256751256379473540210744287371807036647002080913943562040193088557166920877521586579252238432178655040497577804260062749839477021220826584760869362400445196912143055864114539705337234125331106198687511010833046647003066353784130765134615727913670872829004708001397658971293693666828105887174721841095075635166145108299268696163448359452270190033786018907194334542019769138200972597630933916241069050849081870593887748294151885853325888528778775933527366986630644320094453556822408621200330776442790400089195012125546945443056816850085490865761873968163298073211376824973127245972198728867643755160669917117784336581885122080186697601438962806767239030331314291202776858470142416911357574120547190108632400841982960867248721617860490849718443049815272047604619860304136973764968307312707746895585161121922061910584239955292270902617918868036352618521230872979817595563335057293630675872053122722721719016216741408637898521883122953380367676148659963337217151762213369384152523873255097698617736021886840590880109066096643666896282350589979199684030546338140837280168557509450966699937420316232303130878158692963858916204559408728536420176804151996147397430090928559523411482780141900379448637059324876246262282611232133297836759395429010274895595019131781895474200713560044215509621350728431515633587643705796661090664394121207809779096085355632150790127956243195422023669976462241252441074298661926214991977846330120309256012868849896317448392678661732571076426027724879028866412308048356962563559011172016910744365956867264988963612659476607024278992934779256889443629656384570401977754542166358795836505216115469819651204796204942334428457634755401148359960323235017103096954508266663603781830512954695407360184724610589581811380215395245749068258892029869975307314335316968539255098591669391219112343732070169493413058362271640799878523716754932581878859919329284204975397678525488558446613872979378310435765042072554039410972794570464045230592731432243030999400461427866748925738660788515339514366085076300720228410174390594031510023306046394247841263168186587049373224630372483918956551675223586204235546882832117297957852623562696253816149557162070151419483848383531629767694899380642765874097852896159219373065401204071939873016847569797760625422621523755559186618903751936013379401146980112268370050230917178826178334418747121139314396694944413432326911729998028262882694614004238927821185834263086085456604019329663419809111141088991888247432243662292594177807780654045033880693441766829839829221389399610568490519026396329147328197876541691229336495435804383520642289757809009575854350020631423928382361735645417901992183912498598759528509934154308293418408721288229297795753946920615085562917043220101856907604861441373739435730463511611421670457732571341247376456997986236893736439234884651471596773654991336861219329197771741295017760092177244476276931403081574572647561214392038823026228291861683591355921126502918743260031834345974428915797417825339473102838009496133501537435379793987169666059186755547589420036686637142426220604390384646710012835834624066331260941072013946508713829172575189381887917912874854123387002121598133662054948699890452455943841057136411578149042038709418988405814063783231558681760672180074708798130661257392215337224776472292426667287434806091242759988934643665517918109544005258461331406543046892429939663443892206282317977389150506399600723883640527962172327675885359101465868889013523620743937769600470363991129432778802652911730924915980748326539213716941178671762042911777776346147050991539457844412326584493085688666545422739843696521349705571203002604345475029325105548115682018967790580371721825401373398963377779529753133674793230262460482597851511736881292040738957149874233988949341822228779269960708706145531280532047980056604162483730973765645571150967455922031143063478118670708672150562666158963754876917299916714738560644144422730334702881383937586195278757221756709205484286971952785515590425609761374516412934218701614924067853822902442653704105669658173159929154428676213643144035510824501955119158193706911584320223578583770158671994364435696144418521136519569980891444981714477012145023350266085651129196013391525616794979289399213982052741307080832205735752514316127342592104955245526259352712243289093698498634129931658724357323423726941006832430751848204302359257168102601739688843720244392524853012242800959988502036812429103822053764690813450424906626513136370466990890736052155417531380987239836499994674810087043579979015510961225724257040185694118900745579695481924362123940123151082729698877634355955486946812771812857778064265320245645652006787724838503848466528497617664301959418725313176351983389356118307731508323790447860849837927637964956492433846607164030440427188713569312515004596240525307547130762733261252133901148784552693667885863125345767338580642189194894936197139223661866802368449169512981468178433597217193442667670522986499750726263694127441128105051977051141899049406496283989336095992233384817901289110826739089160365105772598802017042427790208628757825704934051885897901821438362652695004031862863305953113816576805431865148693091948694145060816667004699628498963453657077529830845318318784478729908961343726706877965485611459692627850439102876629160191793125476447294514287012055939844068999870502979940337624470539210901032589790193899545784424427081433898247181264342793854567463556212609261055776935576044146644405625508874464821319980974344527739364365680610971590099119974484434878067934122052577919951157277828005801413031464409827748522298186550094292652033032900966020503395756641232105596492637821855726099061990633274613915239680070833828328235128170765501538071396067634628144975761510986186372478525913850219340172738209873754040465337058166425063257680268948470857444559911910476341552440829719493376259163328813240256494787695149739054340887094396794077423041789199746873559720628019683374686690295733621128361361797406668925136430470376443141442801537790880786348803421256797846267706050941059856036905013701396175570131544070675074611168571968546143389037188237510796038866026285892051450218715793507743535102261814555662870202829971180101262435519184235480414928128642086608182291467648821918433603082576182145900757142661452275878847283984757552946468416727860032470908218602907145375938433930092611931435973289476822915930530343235437143852505570254397083563527995659988599306944108154604978551301201192440439496892390529587876930628202285607307288515624839593563793014891820373322683108653750874460963758566483812262202873767855950631292338623884108642774766437388148289968105475141503303547503242676056006211358385511766967099656020239544304352052170734992566472547079986635197039788194428046366021945008154096682412466862480376795481837505394045368848191625996650763053955135056819837427267726177126512675395813902446226274662430356792034052177435296025654650468066047644152210878879425305703505135236010882063445578092715207973789202896283364524554508308468118080671193558222096081252750377384069806886736336673153971229359016042163980395714567847480888601633207400673040110673180632213024508660353802208328053163853694504323947794305211353118471028569802421432346005130804012192451135425705397731432018455500790986468467944421265081280520341048641673579586110466559091797804601408351405550399515302229799175641030595773318835712529719809473196014044425535791178778330460638960238424613938318437346679451231551012101855428080968794993334085955535913794974434102378176667978407522918316798030512961925421942910149072356583556489762050214535330948408722162629638574316967033710797168286011802218382062061995620459731172391884916058499827614725208506245751860380120797922637986410213134320081174175721353660001453262571395252156231204789284290670841323276925529806872865978238300673138805512639914007080311176452746732308170848933020079195096725443481523193323129257474485752261029051159942521161062655762829255789183560039608110782069020938791279370247088578521512543981979007947635206233213533375468648389902571747681995275309341293516714521734905097237678617533391207871590292964141548013174476451521419432228767762272143787358652044999652262399467449734912792304906040459024689748418442710028267608107825979842690216634633409225835981677034155854023178565628031318791040425711899998914106988664737464167273770811375665355892397877104469715328959051271412785754722535417756763160754505643074470998910787807865210127197289543311007495059399514091951103822551521674144516313140697199637491221114723199387750216024975949141454792147736074296627648329732341453455958635902689497696471547788783854105561509403055191303583344906333332117288330658580493824168219728325204613406800801953998597472816523560066660291216609786474494384100613497627324910370500101995756213627303542711186395508868859711123180185836956918591753124636335078375302790332130174582225853601463964729077695801932470715918455825073093324592578144891010132038440712859446613766945877561470771298010945453267823307674805381687613484466526925372540015517566845729056746866779718632819354000708175626259440428796570431546793845814893141173695167499730392608789863234789926732108701130748360206547086434664829048156042124949123912433355703959950078562446389148934878188115995404859792156798220916249437075208610967875301629087306992838184331788536905937985704003608725442545419716319285668449502379651238478673555163785517981908586840999989853008980961037569738488648829865577018316642088223610143895608783016259365575088287554273929697386864900627630057091000704460808540836984989260154056164280706851265858444935237826954804414505943965146541920574696836837604307986832823280727369873131346815670858422707284962998814869287201666869604730912776386706210133211891149741492136438144623627352037556827642593831168629078542989945434046820770781068254100163195510462544060295227379591413502357708626031469566355182340455381383608194268260497351413073087984402278409370512623267556749245748620051386641926453100920652592366423896519427367088259557455681503284632799099306985350070260455167682887519235412755783814971685391658735655624375994968332446905331008220822036831164885386025326839352193316130439615196356068099279635785234588779142119695567985683442754006345957145560129742344760386963548356031271543902881062892347041824844538709061169624329377069310274327854003415207794520383057830211526458255985282572741682608308050743191808953694433220621116612403962545900093759804407163127789969359613189782754978744276149026705948342492726808330495828959844502657954695480551504089944992360010252605936141798332859458279101329854192118155353242095122759090664630198823735843496863483239001843654824048132505607569360756113836973885507265577274562772574018444377057599274541859204578433794820145617471013592578015864690935284743778579598737084481228126533919398534430834674685554720701942979051013852536491240344547943890785616210206860190199264098949323357517519927793163347050942580472773452073577852992135000465374223830795105321448503511870754840515406489788890060212982154794527444793325102993701121574576932527353522304619096374025339045911070063991048507575380160609326435775738697603363886485777426142701981250010283669630082978402097378444255845268801210420368673644709417804790448046652241631303210776376258016223470209867357106308721898565290498454500631115660381900100707471926202456235348589426343409428316167000225001895130276210069083543615443189800338587445414852651488703505719904064268706350206586559133715878663621520322965761323719091332672172031441151591815197026668061669142253836474355878457768548098311455514252371308617048031530574635011292485969603388504709706282721516037531400017080112284907024332804881462022318423680277751314813757978216560969623198633543266483055690036137657878977145285209134633010757111399797586436545015022473368983577026128721465004567363946584861737271328542957119338980844597798334800053823796392546288032733631281187227024707325459933215261989789449456430647175191001006078481587960225367688112247597228549463062407802896482185576675807306107323269131297966430642380043330902337126835179689927057854153137792302130022792550531026201147244698002607138463103220020106672017526250462295662591006827240863831662319165816439691108686978807514181048352749885566225972986609046636549355106167589856302142767217450128374943406809945624240143900505947228671782549986529698435453182176090591792974385629334326347735496841434799195397199448745640930678860283056608359356191750561259546183940138230347349794786640394747844824484495323991905918757212239595978082831808889641215473258412412418273480102055848855589576775836419567616720162441464542890176259078373872019998017565999652683027025231775467813888855892644237056521035524624327082983800181343043475405694690957333808933231758833422806944547944136267370814100466951124083307519921932314705672395415280209961838922020405524792410934325015593865837549501922853346305326280104310895235998122781115909102514016874902282671640460551873228533958980221804244355127836540563984698701647523501062379696160290770490232051999054569443830040316680519979142754559598810073613279616845621333953586572601504300587417556703334439023462485722316440238851023775701290210682534854172373068155365957725871215586571634852135127924548412070411592491014738492846252770659600417209862317016934021697258507420791824993056269406594529804024011912039693064442673948290199684657993496024943665937082737290115853799628126862834197800816522422819817787226910031859085268843495181592288262169195419742003743670916829076251931587484632735953609215409997100851711525349142665613907917974623438373989895710148903661336590224221334486031544281503942134972446013055121321646858327533019294148471316070695155528067166797273823489786059794982249819329825161611116172012397261319224195598810445422489023734135249001185416596896184949042125625555695054828438098704261146854039183595452379660380354202166956676108233532573595749364129854760495720723659672008470912515351760912527744879137505521677271970054478412352729903470550801495075970369914401230401825634751699498380046020899408350714511349916951624712747941364564753429589021480004312191346181037345700191748547658364630913205154452433639381442779968818582428408957475213352231632030541445262665662672603287977771848874818492698515520017400535626237994059952839263943362035281401868581510912436138205735730637778077905100560152072765550715972942177587369237038877680111926616592097688637122430503966836451508213046054770149464616519696115943821238991738002239416829201276788122879298508295155075065491170335345037175505051988208832943654148356576020068021473364339982392561753408533782631938172200454341437669384134226773795888758302560583925896857364226673671280459816479698841637729984683241756596009020505914624383458674325551881163438685125990889692138100931414095925126749329066372844831800541536654762139476533373753110759677177503968018752795623712987222245292845281426428986483172891411619749290731472683591159183557723713105974377410472850333981955177605030902644678843608581616377888360543214291608148122933291366873904182037738807678538850520436121585187024843872823364542397382869636870616982319283631499944076000941660644764393814164569501752757285763441595045681810280016932044441386203666800734716442997045630340435066611486112426894849337318516764528046248025745595626058067439119920839658009512403971471105564540028513512815861560441701144421197299444244261776321725260974378478795072560894854611815270729520408930749397624957233587666424589924806385526364286540536886922917491770771772625955860536510344854118526298906961277455919977212128992214714746451911539928674802987331783547708606339955808277243529968194126867675199866713291779040333572148257704547210172043077937766166304598484743344133343888886867533922350757670461189358068260329707735997247758874283839191764463782644783432366490793020156235049998148998987513792012484828739101697328483953644969860554510301748765447629489705136446154483704610577002853537088943412711757184884999157598485010699729990363006986594950275057183071128917507689450451846501144527691092187894745347497864063318276249418485797674545613127131364633384461534204533060337488455842392479428820034388262317453351954938168608725456442644323940059954030473666736705370942834227595906560660688098529083804532803387203173837417272289172746461888772532789830109562989182527354749819181922927877139796854408017310227791120676261515957282340946710894870167526678380447181205993615155421792511531976082444388323701796191837675780206157017179515262403077059054156674675058908014933943156338024169942756833517052347431523061342405579761781491369265205380229107214879408213534483137287548261062511435282811501810089322531052986322508188878038076370845693104941777260599925736747029127376375018740208448040999108562825105410132848948110712818509610406543950662111318972133556804098144548358206352276299736075536866419134128713707905899502315114081926164171218200053600704417403528507849888465696998374309091517218327544432348919041431953916828571482062264626241692088259671752522125981458822347769757987803974223927254082672138419802790999765834588462162735119736114091330249235542752124768201146294663486293172574770263001349209350874881759559230195161674374531335926383741505781101387334545988695619704596816479312651536777457958221523454155177784735028110784566752257115944807661884616590675072170505315014462133528439370238699938605967571192157143067680296045394178655670949118845965478174125082489162258269244936131419960069534342030015969489093249965370389603907023824170882179790394838412846673631848648612798475133882189259234995454685856059017209618494383102089170490835110183557725713278022912673395208796317746979189118625762217620955435315708560454871454804762445554743454880518793049278133698897314601784032326995763501119967571503843274082634371474736058391052734090895075229460850617753026378408611921410654965939744694421044022374082197659316374565129917746273086121687113906743512036698390255814553463043170184530687284475061275477212221044843260505534189027505275103018504093339563093111092177841929166478090405988266384641348108525032947927971522948201167785780935289601734845285329074518741345366226721608190663017340614882561022953286513778732585692771023328730073543344002943078773448481100107749243840118317729181219838874843627332337349256040329210002964429872282711135813830434979319909410806124201116420374043011558518727695315138464545954645754806208387845485158059625112732233145437712938242189184274122275269436653879041998616138142051066966327033315587074646691957439671788151111339818501983908293187556766384373250624131761446049167229469107894217959097540903501469018625417068603243946706409312994109516581359259154076021086036569967463539326203444135068475892286481230503966975246942994587056836979621325982671481412131244334408800616761698683932274388599510439878019724664854993258332412429719904306237798818224252040844099893167475856996311680669178247565437979771469544403499170512789089894362141784328527178457749084856551125957015697991012183114084006639351284964442373076768318072376806135662220582961739555992182013723550118306253556046888820876972640616985854079949181948754805196718696807283324240830238762691149323607655325377683831631085772293357813886701523383822976719133911468396096894029726447633155194229955316673450915893153824255010649701543097977626112404539665563162471382796488435822031990574084740341518133116782067038413071332907764740350604679104163728435157133193593091740908667247063770464374784435601018247965320902055311441738738181285195671999573836213510111358033696109864953958615163068905365079729591722292769286348267631108975488616729814993405705837902737596557681174919514628795743649398000082664661198364654068932216868722047822956420370590680302182396638175134154360745764222349328277113754107640291380131186051221227978538004176668047311058937795275480661375043187854644695633029010932402931604724038631076673357793671258187175628521057210178958166997047319184521844513650760730234979445934880740493259823968087155094981937285913245051277215081481483975617552792456506641278782499167225895115856196119959409253734351123888795388989610557801502256614555354198316249301645250521840384283158607338015521854231383393960340778336557284470773057111261414293861304889715007394086653789326483001137510178906686355308869226686303133121112136652803936003867303511019383113845305623861318163334886007555420207304232856613299823791724805117492382399285040720520166791247376640498582221680291834260864468365907669390119372803212325474560254523428657669959271908725991745093192936931588732163186585098707721849435920450567201443688366652149062098956697909701089770834419427422277967708608862550972738327149945134960398686000792324249310044717349820688589452514532880203501160712917965654643825048251803746806570794390045850014724109066569485411939718615133918618097962540401914292571807301324433997647201485672516713570370636769224692677924244936175446455847281366173336994901916542752123450707344920808646070963913871919058106800811789514536558604057158206378568442820848845986925545801837412734888401225572596791939795204880992067897164639206548149446380872873512026867538553749888974288074071160652077512906255039698289602821545354108719508781194889331036826966035510829106442969622694340820481131964560953600762423413582309406325341873225384325449260327841605004884529684544136190118355743588513510777887326177725633520500271996445391038789007183297684583345776903814023641088920435940065948870285498107815806272396333126585765207941855351539201834014796190251956768886903731054320533713400711711012167286250787618551747916225953528586338676307212563722917103718472135920534118865134176698642089534820631501061692277099322709940142714757833690131490555676241904626602299826329010521797066320839717283911598248064652227715629918778215395649209922883667112571420089642484952540961330064406345100131503191858915393562968938985802561323999546659910243698382055809466360168209585233603067869481500469571195471906342179190969024634584519553280504260938571414822982027040505928011592024952548220686975346130231115782512050337412827179554576480035464788319531382666665200872855846437145836756441791022627378867156330783482495593106510124796277020472900375762888347308893947473645607503052300213549658058279019936477298275785800291115779153800919743923069504247105097818638945277800031149258916446364386987369698350517101726639448018406412623362279890223578397341309846197812471255435193081274556710708651314928212346186665431983928674286020673819878461419888056173948908511195656399065639191549054190728745744722899677164990115290960782261310521928547005321154799086108074533279782997834169816988402564320925845909799957896611770317745690292602952790664050488115805232386103051775362424143157401549305609270256884455577081998511864169362358416945292813417124479034061293594981362597164923536472077009455358672161634636284527667954675720734252266825014004623505361660297200292913797068087570013447856610503593083935797816069056132728639175473919286348072373956691820031406205636442569118344560362555697106958502214074555472184255297158400529944196988518560526888699458622337253605496650774576980840746274590816190629442186102754533548895774782463019054068496437792760363709685535072337414456671013902129608577265963292953146051594180431512541711097321452823860655485519602721817794293005595284016475717610961255967076409997838023107704155710626978453103419681953761676180646036228851590313837504990783592761385195576781755744121827984888422589337207684393506872525215570860734718091530414367738071505331705739043817967482088081679121650186070530289191761155304711732601117861357126389733054139007503408433050095401438623630464331394957114473964908704460701657451792226435749458366449893022086396805128592632562142825518675638914950949741103082000060967758706494175850157487316894895065985507528108418716835986710232514268377503624890772554677960428566917256097926055332805197919243823588672236940413158894998079126743960717203111451680246559239685961048355376730601881438532621335494114263932798498151811768643176706320682174897472377429165483994813384033857500585873264487809288830892841547245507915178892661189100316708051709900532254289254969001118207968506356295612676007572428497385982614555827456035666650757395305490955671813250989190877168337473755472259045930942457770999111731806918662083888789184182474692636709537075045261843051949688451958232648591393109277196359461622548481836021738819841161406067429823479700036833358982678551218858111876474316869557603352184491684959166722198661593938330510692042891161473422128835720060129536762486153787283049448166973899408442854134617890908352152402017454477557483459072912337082454487673114928920186653665285723322437956027954592246585278685622060169217222445001662273744137729017278483032859802394277268279279396424515777866762218856330645051399928031044511493659496414812588690101739553346132976997913783294365987352979716865462493468807273900796990501673761238977863436848014069213232456299614470268103407975308133576979052898274922118324912025774611607162477679577772070803518765979081486614707129230978235059924116547544469512831049524190212635410946176504208697408828437860546190953983219349461765209334714865433668920850770223328918847574853452026877267359338100447526386884396136911876017273209556086088049328533355608145229023081094509832565045298037425250092319823611415846784589264679682300723803889562684711394122405488442525354396855044317450942450901993170016494499401590122227543602034832967142475907093546205993925747029146309502950734996546196625247026842120230951118774028202914124359274754365658475550291025729880306303268251239602490348814317734564943751225158638627666193287344296685582657602058110947832903370465974789880516255150030198192318602067505191697519568259988122638731340596149596460664836413717994550927767103405430228801422637824365424766517462414776447702163598232180009786927274801751822943885652111247963799422933487681594393263737244486651266721757579986672365268050277301928197480683225802603585137341709910198743245425806631636932236632582930460809535433058169574550338680539179800845230782153377175828166198508087133784353818145420523748972789930256165283089460326324455089503772204379768279826580100804605098017423637942164008308986449102349989259359428137572093855724860739796109927869996630657993608554749393843822369811696628167601361936687492439238627715049522695645647044310208008701950879591167830982415577281185767174674493305058390528102719424335992271795467187829869792563934920881087999588319171391601341702085480334786215048464889783477715770757196957578933427038909118717517844461656796571762838813186008659386463937017533152975614247340360009802188681815735385684288260022399692955606146551342431305677646314660908576578828570159210942832992085977946436490004494489430336552255440047172967931221205445221807979084235643518089613110755016398980324495186467668988519631154333995400115098084946268601191087514081799255461042565750158836405042065225933281155434272721414782079558411542933653140653894871515267947504358030686754069748612738507005848949206728065605832867420440456583594957973061459549105212381466907575959679728277384637002648340898730577605403211953150813660704099957878946866538564610316298520609649959650304151515203920267489301613768068853513543814722397187768314531515522805054341828303808039901726259713503840736059227637463168655721277224662821850677030226143635029941468730899378761270382309128728206040045149480219998975334157109089249394869693201231019118711422138983613172532551000534152269274304853191714479559730076971402672809431279206883922353589152061746765887640723083000585811050502582009741946765159626069918676501858336388126225383616465785818488591746101233899081947300101712190082972257480779742554308768863047032853318202959089385702391858598351641893900683659209634655909353103706965961693232179024313278184539805137327585004985548445517552826054123572132416837999281918527009872748731571357961905098725101979620643669000650275353301361289939353382668127517483502560889040710896172276258195099517244050889635185225828435448275524867000780456900226583332012090877792416185605063854331454346064075311616330435828559728924949606718250443077723194580892641992253179370681872822578053780644966248370137805394874369199908729985884764539656338710249787012064206851519561940871211189430928536615252774881537263161768466060804736405467774280422074336393182067480578289031227330425323749476169258652071021066802546326816127992969706017313243670516788215795428899991831460964912852502895460521421538067515434113406092283275565091789899440930871321063402893464021594826489903029288623531869631830192210145353622759952689190945428538221902274220570970120233909508837180276319714272941371476986630769308508921593292491046395485993053189071521043636456517873930886098871327416221782744740904085561925886903852492420396102126313109104429724308114838131597583098843294642236641031130852753190775592292586028365468006156518691838852882296366345989698635792817806277962339373963837530728027684897912904741209574974763237040013740436936570242086350435592253727479814775469122582807938994133283824477452746389760216327140462252237360229575366261507687658319118293781414018372987221744132533621100279142500828166117730512121622860829967705238092601292129404301481199532745215771613499186462781784999201620564916417060578129040170294525972398930378888554011789539502069714070406820988022087603581399075994228951937808317309507035790011763203593184571873532182657167702349734949420645814187458878855881908682694325494438843783863431535198929511397329612799045666468998018611116428255112485814384645042439656658450109010866920525173616425430440638123778779385181329734750961339770237863800517173029791366128754739549494112092119148459555746454309860750071998248077571603704406921439680716071948650927790483585603406428249298228159903333132486762819227821803490420437280798079727329205080686428516834820167070081355552173332997389631478993803910567859137329706247173917650073311825223249188205434159731931945681880269575272227542901559387289454448346048291917875215924689424618256892532342710375580398401494002575885480630814042975455209774838518875292056813284416526615503622529820909932993987572121183522230252518461729002310844398999834131756701850691894737900446308523761551648397879202338185395449867603594555378054932467156016378204973389202376729557277168488146132850294096464915278673490020906511012945169158572705280110048398253199902470934841654085320100479556931277254684868966949131636027251718946053650209524554622029827564441916349779443264855098844936944743717494441548448938969393530369916981557899746862413630418296583837158326484766457470728165809076413885860098764909771263143686410992980072794042637569773233855182988338658732807955389180562114217997737652310789634860603343652627899392811490748389334783611169678131967585310883224006496628405098947758055566328721009930934024398280275221640084147423041149312858902386824274207929440331455127156141050041005272720468720255652831906280199939447902278604007859120543608037183734419387514787486501158394730147670569478878643491687166126677523856964754714032773727690098605872933905667663676345721388016530655091936998358555919999160070266663098482077924675970458192507978200782657630613769239677587485276623193740421688421389235447699275109786434114287818387184247797898263219181216241170584733267209802193074328820981978388048261758550879807251037868440671761085485264267806477649208332073403985241586805495672639504077453814784113623633254977638970073968690204585129967150381912087743289531092972945068239393777936628328782001485062282365894742353128740824000480080612272319761472163481403903563799683178533633764332341546432091663297502645228750126047344511187338895940160176755781436077444032150750101816608041586778763786071874432831415967693366627244167944630838183326029060903227595719114059195103970916682009305379335248982643168433566905855502876869153285054713851667221891328408305386824595881797209648497959724227529715202616702731280325864304795137394128870713677842746379583491391316967312061851639543612110967824762543721924583956994533401102887569728080741280200680644810039529405236330516929702107162902787206371365696130534879985946760217733405898850904898978389336513074064235352780783635457290784774924494877535098236569344794938663730717099015920202757522383316928206557874702761144873262980333454515544802208651191339032466367419337456511403347526251707661722389635303737597133575266132356022810160321624658282430510005842565354581100928037293667825756577463951610724559395501845518906655517978672291046248353932972060618496175833238468128303188671680274790804096369144534122329901883638184247912905054013028501140813237258697140026205710667427501109068772979751613263923349233911948957562954461637538768611197188392936718718104907100400808381168368738754589323172126978406970745733815737791824603358218083789796825370086523789365273454590426562260424239310171042883008260994834902814395963450647025183082028178753273262549116085735556786556217417433347937773378018220691652706067102517182905339494832296049250847599670643909962373356431954045012781008287238814331465008650483989295713394431264151839663863313091831429658227495069599259215186307069371408366074121567518973540124413010707276896793600553645535991245003968184123097745348585260025162308799426499904746439922609429658643936531997707142661312337637235133639874587170143308220742145987494103981325680970364469409445900074022092281804009478141765068113556934819364630327015896484727199098127113706206628071641107658662350421858371515205262312672295772146443577707330011539703730554788702747310203703976082495497719136005857805622317679043186312997742751598485230883932862406166683337736778240220267542370390991242243402316653905271367284160708823255053032335576129477719811739433693880570496513950267337115713755483597142967851495775428112668653885317733618038520552782525879045666565871446417281245901407851304681556132564952268785078204199743987679958477988764061451464763093215065152677084622372165076625987629811163748735615360226278700694852672193215984353487756856810965816543348825545232194511066354155095470958748014202593606630599277000457061045835113715722671950256328753937807434062187473106133715183501897722896860263533633621234962647694236085852131045285508943023211427938258291317165214565111374428236104349724258781564402926367717455685268434378755339344455115471710863707372353341249441238970383998226964602146200549402899598748743587620099094723417743436817133056219599535329817244016651757484411684137657437831861861663213208603100295388086342325434341024018391172795649943364484173231810988294832104742795955452206331125553216925322857423163515502963062137226745869686517385832817695233281165407009659671683773532045445602459907608150675620768013399511192261968528835215994690862070092556325243405202363752851378579334855241412045011949271946474063841847070166053143155928463287134205980204272056047363775440911227289278944232908080003595060860028356499150122022551544401889566220057247216618824895256659358708909322216801927747018969935744564974970193584776376994479401850550097659982761439834325397629698576221019567194506824638085954888747277074030094825147521460342454820261471193590517220094125582224338606140117665830164101713514622735444546921129219151948883493465430374774062915921906624367167723885442449499626580902305125819773101906333739762056671738062728546707589596097085562305147759730949913442304041162072709658792820025721729215422028757521894048360979354504685919435261451504494906396048096564522610030390606477132719202178179418747980982837841820652564291646029649870982478600809839397894049092281930062427059398121446855868501226393597329259310522973258192811836565540554489408064099396044912184931229482133753894956350887525322756987936001544509652655977729322269881786122420579949175511647772073367122381169540214635493188156695493182499495188175761533309367023925838736434108973524676986647371338545420645710871721939557146545961881422185547002808711167043729137545903977364174385775647358448531264142913171444137423253277677230791213854787553401821102538778450090622072600333280651184223453855374917516126542344604291654283472653106470708133678156869790821413452347199243163350559322201395263993210887128850009536367727364633820379348966352340424723876241351490543483419543458515710205949675397338163038502371643928432309379039365838019137812241967061165494639131437847823936660329726438880276654082643808060548166424646212854031024925986054628162729431048190898201064450550916256796041186439765624355773112424385181674118926390450057379704859176863809623132053941734190509589529395028711641957124005451005560639360414738295259001852054925368048961416716488803426219402618249302826507046171229095348175834249408940757526781087279243823478147230777232122651582687009311056536676256511701835412753746201670080235449300098110898943562063686865281279595744641411796956191803468984696491709428636654145098725460763502587708540684460054425400897265136392239330243784009645299280358396365840493468401275119433712084503374986820446372062728698810395009782354060520653380799859599759323637446428091237148845770977075065111630740468590705299138947588978823574826358559818396345795465217968115071380630256073264030043705049149592927751128584031683205538030777187295413084627556491880988540036002097785057644262275017005926247606744643751831632555847387052403900086776044524163409549804130715426863181099787494235824317842206468817656498752287761424431028003990842167288351678128767383697541873513375720828938456577929546578672909282765014153947871083817333199479979917786755818203046319916240440832838769345267358852893059766341686098577418941762163488027316500166228640729554521745390696927556072719441648621032402621708908160310090685700577379041026749987448487147040925344488203720609094845258491336170265371206744485931074608212980783260354979209875938234361624049369885529991249872007859509634027906899159674868686475023505520942756126921251088845491757502128295601066189134628625649403530212546391252985553862584267091997203478498846590487757399251387991024789687919944847141307943539018956276979727610665142134902873843696705909974562075203259640925233765775119573901497615002323788680138532744255487476699775718985078700177089756632908591122780399424257831633347822807381617964527046537735966356155637680814852016282911680249865409952867587589063094114028855532824422374835076920607144710311715731208173015793414645307236547435841544197841536758056061921053261467795498420445561109771687117300547270473202500351593777297682430129012023801244253159633063252706529263306683939082501231603596211230098701033614927357990600232642693381770214903557067205206793477367841938645551096592867339150663632231132090625480105927277233478105724893558598528240828730213582772640559886940157762592539714234688828124953082460838656612660061380834256514900202989939296480199781362498805833672797676967105267417373484533227742530713920051340200608941612668252741801322647684808793519796229556049105467519900387440042292048761138155946430427195460698029035755924777191303711285780372200849682038594926476013963588653313003601340362854439417373323807825746922871133043973049835306657803395594673585527434788575353737477179416815059385162556346000390619385400043955172403359251913003973574447033169427922657865253960377047218661098555192439493718974229867712531442032827822431132017107758561929504632655650324135329814086200786911592307403192984654431776907737829384126273509353242698882257705459997088470957970491706124087764262297171374182229966683808592829738383740890302013543780120537682760658490095125926879942194731064446440121346982525644102082822139791820785000483132608660634144900383882997861492633710144265495059264862685155422017355135679104415751026419570011292080876093829390205611058696857610665338528033230127835727348344588563575890595515431135372511505321390812758227994341050312923786563380941598795666803086791563067726283890774058936047799161957846677026736598712624273387763670505485974671585539023512355304843258328737514805626171445084018300342393534029316280841680819820842757424497720561822979863525140912745865950374706409420402821713605603791301586260777780243611663287141440086645095415702940003098487597258295769364771031719074926242160506465023257045759886819061579883382226201369608571442203285965196666720268466560739697984284519272684254295494203794229728989223418015135745920140859074384763456782675632668601795168255808094670423940735789566152449443125604681521431984471495181985028140463202109675854172133287638181341190023130870237759955424161803164102556529808691807690786264142370767388971554246937150625988437964685783155713347357265291961025227427580227824482506937927047776128830455653728644952473877826885856025251078761965549375592673759910996607533640325200144713979474353895608375221334637012463095623935773004431172926795020866727222566004088715491654959345141069028446269051057881551831188535571681383252818462484101483911144768583850779841473318144429290108318110579350580407015434997335463149043919370566220846227318187911634017958636283674002600802906783867271746800445539341009529451833136071364042092372379068354548291769861299357548158766971392777524858781405707232506015500957870351355238908423722922700564347576905079244734657090826243360916937527105831220303044002465937063650414976629243450450538841906332752148522777745343114528125076605687684312986739830639788320868156758535069043465571807580232788874545835783097347252299305074013538029228553436788828081433259701399231478362861840990528201841022161281444104998687256861667653323887555063028682759644450017551829896570625715379531505751361189180753224625516781502603637603566543388036785006782586171016243957712008647806129167096113860034665820485718325962184329963603294116203999602240950025379607382137982334896321677964555677525950015358181060000997789347293906112622863416143758428492667462455307467215562758309318000055370048708236873412750544487930865666180052592967315245048317681764296440387532242515820822099708553841752207013252062480753104025685495962746223514377597023574434539289516852419814041085756732845640337777096412853955434560087074504890606155735108964532912047072735448935745286406864543791780442638845651881526987953409982571543712113454393570481927468736451939025464187071464352243548952045914375537863248196957795573573292061616812607083867936666722059237932536088985560454277800113585888377999364578553074924900262051332313149817910207373918557190032059089237733195402402485146958137842055900459847757096464267658381610805144615405588902082159029955410392862865649599718781052627483888995434443696490475516686776188304653168731053633487859682627400391593833162258355569467481686424680768137586360925888195741955870231376737212273282309980344429009815059382672600383214969243812013353777586800154388838726237183177412955191633034628929029962499375163738202230138915485289392607022838714243511304743703967033052698573849706985866035078613227393960979299675065911136210678797249582437645971990920410695183425414207059112915133498343009767035471346266026573082152099391499568727604471942663053087148993985116805992200031965847058951411162980169665344819407687790948076937352432712527356122867005156249060918934844480636611341162013588577309998356678984455556020027854869752554968408599416743741210202211422674284517249400932965150391831933100994689833325723885589078182256575662584643505104781271720778446788756788383987983314440229111583896825111232449474392061812626038508011818539506826267692277092759254118544610966777906374260579533230851388629001988345980364783147918845794598120087568803459537919233143364372395775747947101486474240859212606244026870007352721215217960697059727111476458473762284046256579136274666431678847213914317850762758693476920765651182248530103166913845424615257040770326214047283646761842173107774223824210508527748922043619238485377478670522054476259644269939150125884669739968288847292190369475876396069521782124591974306285316709289762311652706959837165337448686635024054381112806052505376702037821720853158137069753404422750537293936247616359967417872723866389111709947727682643987820873698231848387767464332973232549648859452281704211449187015371222323434386576730335128931412824491637703748837237997826592763327175537777860262723209244570567235481168030153409209617768483416441113055364913598131200601432450218911376723712736742946293600900821441395525953131503939515703856012375444345003166305873531614098300022409890865538402964638666879959171458352938969156000915620239109430495491489359791794164873135905470432678274699964697898391380243448977420005567219535959786067064256220199990495211835286102599777725585529368110215103917399371840028041389588751649153772907729435560237753795711447767279126561964584400743996573202985343947067988520727099624946644514101033218142717523457574210920365891214337487101858230344911191770105101260386748711971203451119732260268926250917488424458961474803988476825134854925115009443411708706434009905558602771230954153139526072545314038461865577114463358259183031146643856368670685552479657755994657277023285793156173810509897740912418975728396148813472344785706480463258973350344372967987613912222991834925302130601647506242389306162956295495081436541523569839697374282509369662864701865104022696261918534634697533514653004236231965623182384163318894715757184893122233434931978906547091192636286693670469000742152249201226532777587738203656845076720935274877423621418213407400968226710244861978089206647227796785710256015770083275059793866895206585329282580360714231781696220438392586006710032262614642088062058677469160584653319473883165569560922421788929355437405397860547079151122039280726017974230121679335773188936056133567188386852580772403543967507866392957898802376657933567748036107172241072688647471776186578283794558185899284108897441197817928664404053120603896773629910155767446433827104095646516475735718206710175434972639552570504277628427002261285348794113796970097898888698048495212009422431587419767768868931059823001971496725265455137805119221412304119489666747915269180136147018675460133356062688179250590001379980153726968840901889004449878126102804237940208125878082104171713790891793048424578138787388860938697005610042439534305187437745128951745563882332436398575876089392567979596299652436189113495362212890927179293282909620257332464063480087941076072134970091498191671933320100130369528670192002646411939183548675227988651728633919514090162590969674243359265143139971128206407644130967657155378076126460016841178848785613324961765021805032872939434610399719391893181178594448789083831421772417865970464744594109447002758799101781930462501150247499604759308985148839638831210856194470957034999861365167147856710413986818379273652591595270234330397776297452369836977171460581915493033901400528214337781377401615782857950013414532100467561419878050310037332056584778905627998613208717771049354887597588032211581590601153416899671346498575357348828321065754673115317552273378233704218495896476295709171835090787133123262547662939690358344452406795460184096569220813063397033617664721834527453955952432751702008247078443543511380586429030265978258249163083886063254780519674031982707669623553209611186791652987308574307837473252621836235148743045686440612792552863898906345555785792113207903874583826571590336702629222562409446724369049336696285350439561170291545337675453311049882622882613786101425038924254022246527163593856916684126510947505229806827595447879333944177817719157841646059246739076695358063582528798129851527518415085490761432947136440334929827129744542502208095000766149132989816736976764143960387283973546979837136121503379853164847416273903761955128867340483376627746812483728062061149105018317503495509621740793736203229041160996572098762621197930513581591289236876846403736090025028365615423801129110012214420572753283104323634697844531575772736235907851579397802635604554591147009502616183197171299021525460185687477839372980424007162559025900186441549005615046251796768524472203932244700609921633684039134722032292211488421502369519420130564692518568927675311437707897893464775376427230835757879811722316162909735061690869978920026486700715144559504173503606027506231852212969384886243235753960476673306151106132293964371860650546834634863684277336324820655366316618007563499238929543896674646448696722143285046089624675801917980172839766091862941755066631447336698643882848250259554588664290357591220323453085091009536986575063227981178475461239411629448890755506558370029757408854806665080447362444479724848306184261656291285531968433839987371639170121027283312885595260856956085171457612570283606483237472515256389109723177567233250462734503366945136874698857105130376754197399772711000585598227451742264296884567078665648827726078908676287049129184449873318125931269810332567095129642226443205992324007466257659581981083559206121659409640042894619119840080272484387209887514769349641207493816673959490948068709463916015412979690538885284173816630776704579950366285271781905125858730028222829473664699314019374321561787247485357142122881984823907271560862086771779447871507192445858043858341569144137610603500089195834478219271167032850610553297951457950728678744122411767131042292949042223060956707269268239619787611353470529337020300422516827316356649232071957822570067186631907916937337904673480548119465294412406581312869932137633326945346912670349728094485935200447169476047536168962405190112146294387575772497308305020467577333496091726821702201242910307902501156450790651574958874223679881358078935527597077967031792337115700987847508178530839861071524056342627617113231480279014688330735646864501377372901092327287183270141951206036404260347886760748172650131374078795954975559776209179813025080047537021383888456770516328664642976483759498043257799860280778902210359630637774603415813704142437813489369815138225668640646294258406374297624011235536471623963873331293350661735528017697939339248023103644797002903854764763880214203088310229100711251824791816416466450455514588604325395168806398904550507537519128227710291945514902375053662970308106988189784602988342125152361539380859666378706056868559984055802907397344750114750331515412593453307732728255024227499033671978525196162187395191556137292067050356519477007864889843031281387244504752362038776392055285588466540298462534368235256931687670525202732824253634764675221309909411801795126948196904149351716549386118254370140259315952068598466905285058678974833289318277359754555248413536408022357498299497606354808628417191024826051683502370999278863501411073148771276474109405389955234599088906335841006760840845552941565505814229784325154476020263520590262810193283566294773666889738581342252859340546966887747636471483384298788417677845358669764403600565358320251139154069104360560899656915861711670797905683745681726396417678445171326888069140542220835233306741404442220709415119173369809235587265978585990224692611155099737886581325287244337329854466871074950351853639860551437561133644486213103047078847872657903388579185365415334313670012770265084519653894484693687403434594056390216134773497814407680188859226393715652834903352658564657412469201937057788010217514171472860319333401939580008577301865104346993412896359682912682873027214096675250236063775054696078352272192431396318178848891524833439365306633948292098746324539698637138570058290535162915540483668237143119140860035099175023273478980610674486482236651201195221912591167835202071301612413213259301854774980237516964583796751233830899371497064331514171650926955662292512446680240968792570093252557263647326976970941794723526846514802286840384723621216501628937500314879408378785381321107938765752997735086715150368689610248842524300863048267158966083433842019574361490426339416983334448903427451404691408214293676528708170705844066496975541793829664191715595976720813766613392274342623328743644360463845569548661021150266081752957256933920640343297725651984795198972178549693831932564966232422467660959970267596091830842232316071335808386677240914020713621700401680668780273493536863113999907951234633851981032802514821708703589803775117023767696772423460176562374812462739824452400837869779697753102181364378856394028075176313357653735634239772908336043175685801971411556728841278527471747868401405305114784652631465832934630731494816917506820331872165345954813614003577681775311207905184014092874962211591882230862222106675459955599561552575871526036841041760880916579477407222147704282061222020876077989138671328095718944083057191141171710896686365943334166414478728304341036214229866462147604365088614502244228754917077718926469483807783920841410269813656955933449558651645980519084799151039649574110377675725648512651328838823004613109644269007136191215091515260481474711756873770901601719658541529846571935378084812799935035497620803578927500124505728671272029565616797539089474837593755558945954435073089616948882176638677654346489703580373311593648008682035185567087007274289405464268340826074598915293789819820883267008559067985774743638819813383731806530481270385827590291838217864838592304501561040509024365482080567881642063508772108892381862868420054067033746477452093381014326958714883510839178383779448821592693892708769090631383893265676806305415169624957412554101962211688179391215670872256540838584065386561648398676743620721451398398502244369085839740020896976064452846149785815681431373356614527419765704619929383473848516923492615920154876543157716205576760605622069639952054330990772976714550387807642152889615790274457540586602563818251435229683806121672266604168384042487472951849962146494682758420198301491163775645946330085816224707125928782070642440884204499287051044723419824634109881802018688878396592394231807487628556155981507835559951179210831253686983710009831537644219969460020022458516127345254911280791690769801636382084641793235377774468449650143266880751602915646571861988907636561322153405204150090689127370307116284029333370739707227601880108241440734873469426942910502031541717107987062281594765988830918396555667181882022655872943864557520346031637034490295466496877986403369244523678367209719583228886308113586608603313558079723765973713672985255140613308044136003718542985980085161825292063072024820112007459306284478321349423502881946851193355329959513395946002033545457679264234463192928653406833865768216743980265670173582087560283295085063461366782524090926900940966895925993750378849162026589327060444481348394808431847670926894304080915235106110562547086592837620966693846665649814755142561131991703694730342155504041961425900051721837708311257447520437204181677858006139650475696633919842271244980019586600967976875231792234984298235592740374011627737269417652177444546312042573445619256399117557687882605504863610709722369477055096386335898512181025597292457770849943236244956231089654511920447665074735905908054411241583709460473926585818896089610075172524155273760224005188904348495548976962907390458598872441290164638513709333414082715273923878203301949747357593509303701656542614934799899906131727095524245830835873323859484691663035746957963799025499557269669959647785573170762035895755369259506460095142481066895170083808769004780662653990035396977754701812413418899637542188770490893976402564790860925044964186990046524400023141319962341047140754488295384661153112319622372481739973335527358254144215423307938212855003566144407082480846581765812472163776559099366640594706423066095839917915302207995002256219357509876646560884038563056782211857471355950801685952487991651514060713177478576900844110934985966149189742431019996339014703321591205952009832452955405629073113162033076220560920823868550636041559686534576159869970040286627597018695006246432372198184398962361008271434734801699394120191370310557540652542298834147673703199486261069564783108379484343860917540953546882153260792938791645330071440349351196323209803502459403920854664779092897545330279547981080334541161384415675762352233388617389582474652927569860091899874156739751029240715300790149178592646357266818569523797114252431666748123248521550366876123509142379121892532372632105562936673930739123689972916723813478476240224142795114193721291144117720794196200646717555445607078544930345487260145523622954941324433719592937344296567192055346365801005644029380140084190768560587071120079675791424309214479598892961663349539814682162904563373394523271162702434631454573047891619077878819102941072556938833735904948948323002914194838274791055584919177727664450574600612488502373720439430663749649156805265843869508576310414479030867252263315855166761947501913868061328181259891360134594097752183555956349487095142799537500732186597066294053345860687954259747287524767720679036972299503190263479409832502229558474702498334571490673507260770268605742543077983298471252329192615065347998373701816228869670894540353673133194824609923757489590663339091216784137275652852271767731816745494690766828072258661360906454218782599706844823684329694718286904473270912092805291037277423046177252638373289718344313035268572981581778631333727255475687939595810369964022731206975042777744225229133336450432062451164132300466546601693185524591625911180973076587114360473456676839100287580373134155123867107027558226418128769113232718188585489178089104338650270086848012755874016518922096377748908882177822734407659718522836708467782335802400189217760136254018382999425017136588209790995210966562641020759790391269108489678769068374964313875155659660602602986889737143436591221900270188825470346363010472214222766822793174983342238243201449518598390304942984739271650419338498972683845302151228956854860066002265235761161394006251801609437683916512440120277689027842762185107857976982150578599656076926933021763101836572021887247544043761085424247078193794610320582373126490088465493663189319428391317790026870016543012185975686654488513421460559164950203201622648641146158609487044457142024748331818997985019633073536759376378842262083190899268745050237056165903476007638514820754575150872246695802205584599180183785326747530265664326454072243829801195639254983739385500516145411152241930967910162198069476740405446415464151079030364843976281905836433327623127206760181745739164613654100507359997000422177043759721103881267853769855369015388949089646515884701873885915160344398378686231889793867162085060259243726773619624280130524525003919175015230679753062475890156383559046040339682262456100682513367286998756363360848436636465901257731809698302199990434739455450229410561851486383801714013335748170278282574585614703036743568626057325635986487054982170122203342526354793171285789188653627358491301315102759146910246763369315281498190458866690372197600285363227267643897975116913487063877581495293353403255170957389627021650617300101066524513422171625805927012600221417035709985324932753436145909907574653472943046942083495670589981851576727083846880446160372188446800738865152970865648414690041286847472603243262747114040116911663664724488749951368165124344040472107805464081010446865045014359760707733652001673473657557813821392768521016270801601308929589025767325102368937104646663252741634181480650667180032216006276939798936828403926188007086113063413223908019397657734579404491943476629855524406873846072479172151682134533432606618480440685132845416263264316053421873547045629455408969616348730252404473096689878638413173180153253311520594217912051109049067240486140937636904578242419651206310449527840546794397973074730222685736366454983659674084470932018075882210522983638337143066280626771142979922063681187953090302416346621014906443754778937693698246615627718830374956706465035781385554297442357722483220825959671566705829411991377947117350583240024614114967654068529211665065948271408452996007322270439009817070374456633273254968178440846314696152419456445012327516135451464705714504218739654811232731756579841355067060340999181767735731373623489689969373417156271078698624846542036605901942558112694882773929134781191023617230264619708894792796936536372814279041344907163116806539640469673469875943459600321908646740679804719666039270527483682580673405577381504968074111354409788570229099537765503699089431617030865163262357579311209759498546203547230521589981645028448777927469110375397672997312488812433188374480494008269506532493519163031201021330901709558067690825987763284243040684305916945156860203164600606449361377274842862738035849984534695240552047179234918594160411849472700165402850352505754945355656136428373703583168402486063841342765442399486254801355370020957620920511893065953644800210423067637529101888965293701878918250866733019568508791093130308540318945733910528909455757645605053743750946515947851856205714860241010884224701735622253275737818349231246204089269901431877915607618369094270327126247756081876973559066611852188631328864019516687106883986730271185761461014893134324307678897055888769430752194081045600096473348579140885069432291838184315957615938259559863681102178205605899229300282752406483948309812239973510990007142738857860261505901017981702483090842738603942258655670359842926675080452745233508511409296574299893509820148568041547969881045561537158078726583177520487262765342682592252098168141791531041073234260665265180885878553298382618345514039710898944564257295327513113662301682926265181892205472941903510462911343594328541999256485821749444687184986039819115058468428549715302286980982712122616567212308590917349330499735024910013447133145138531050814263176833921562261886169423652077821213020116766772736536679375178680958329441275333415287118503039050702599729222334700438148366758001022718428085543308395674431998392635579012607673494235724676551375431914911210021700320908083232732340785871368665459742638265908299480632104749952729337233223911846766689060427472578003666348110214159730098357307851003718916813667265619031681601344132194706694285741424524683891798227345081414532399412754965285138835103761275033180654993604818259340193072977295354335485549351435017742649939287694862526937849508026764347895056471494220533089757576333286572276008937229597498583905303337965595077256032223203176346906639980793863695854448450703699879163753439796679529734360586492261181229657752714596074277939595695550707095650481157162383430032708745748067365756518182596516710303890572144984025345000963734908218837927985471490528159804608239168016105832095568207649412897929745159738190187317040834982910478048918345447576925364253625000766829774314058379803695196065975310779612509910435305202194623163163340735346614732792923696857814951354802886519864719046774376423014832742096877120590471932788450908679111349496389730755972986907152656297591164573060972167738370254600550703531785484592225004392799475459456282627292976043110665691705274734269930492862793366951345535876300246608453997632666749873304723198060971355781320104482208121515219182858486260523207014902146001518427830960888497182755413687740135733699802821227536403374065086783082202158229089051087161910333906756054180383706590093356132069656093494927837380562487311843798160810845768473415792827175616174662028482437042921896600010305015467938901610210011756954266513541218175707845525821708836552720258153211566970299989620191076898502914009246018160929733059731971042478106162809998347259345691833828620684189595095428083224578358684745487810611010953461786939373476550984081591427184760770032770437650340342849216318926475316926238744813435301849348473978157503883347607041315611180241076059194974782323015774923218152820687012134039976314451545108707075587504599887794847399654188255267019343779542140884079634632985595270840857723077284640781324191345466954646767152957572898316209968998043902298064582462988706580018482810298945492529585077632638952881531801353451918237699985234441100031074478123781752393053448246704678879124494664297815403799536972192753094761545100302788007010467051137148916862350406587068035811638001654698339999036950010074376762056226412893421164965349237380732350162682147516328096152121869836539123552412604655378964521003965159451554512770364220399860022204900462092118673046090005565015009715869380211760083287154031610110714633696831811212792572933196959798894790723534105229921289001431753881410911180231482257821979121390662715411084332519892498600991131487572131307896669029623642835750378708811959561977649021153246892554588492446328395673102097633582428806570586604685472851899949395482836258471148772164052639242461032901713273118361930471959043474725393866539239845460976900908029197660100796761139077997938697228846836344864293692051094660535122759834528090241450192253167854622026069477550412679965103903067846006424584441588155415879964131606609493188780238637681391656187974707849073587606926683736030690490466040397651140246775427303830794441427075675739445610601025534573767514904368673360612289896737178261998455880630322212721756022582887818609409024752029849218968168704795781192934300051391610662927471295826673424733258195337555540221279717117278398508749113480703496852085112894027166992303613530237898109603922072597718368807455624201511081308606935776346558307132437130495827323439578746173242901364752629507331767643429945242918324728261504957861385670239927854963456160352309145513121883106836051376880068506835203073968423842735895951960326141339017365165732663994976741429621366943351256472691247414658835788736283530794712915319769342647502217165871087080956294975470000319001914324961700996896102328136707391585002892224243310165209822888355324182332569106374096374270773722713927155093898131991174090887087582592922938270080563620730423129863622457332105183555079406120279091131901947180200854384729641305642603168090435499489162763021788906097285164082422874975259143184496247897546292942989733095446017236778014930507479581433998097533563946122187206196440900135836795021621428643349530090703235245453670671704268222606663999391409543510755670364770405424758344625717089066502657585831002362037193259971946293207579780245301986935455920667098394314166837626473802881602790511514210700491194837916733576501618850719082432406786130465357612243153290310893534217223140562536859539795718585373500947564571205920316539174003854135294490472578569541022660864651511171503198865803085297250754375736852282197677893373311574600831237593963197868030671480430598637606240823387142183452004399318814017220591260988692465459424174553265678299967999521238076404002735694965914994820369812402650728406770491964316550287377635849037451430548243662031763475486380584009709326997693635289091974706240944205262046331832081993234007806438343759633744264672393647608096799319160525620213484982732017857997421516791519554628468063924067791304119652549210281602150812087379680925742033730676786615614435574475169891208557416652674537839829648973389516443486458462792542667357019405216065252688592250698575899262605723193925990331155488405936762825627507150676621873573186525687153174853593504330509684045336581848697982140945438691524677821547800352910094907178745385929496080731535875011833170807220258878977260349259625470513165711502113367135126136715839579993340684288483569998229567464860064169427434165062112995455120001120224852583366585606462326498274861748667243145424662321723947031556103668028511843007950315318133158278008296635960916192868898968918549586562689732710441142257514538128446470211536987262486424000541768749603653517014444576689420708724443597667337980062774436030812391153633203166416322940777367995999225218236395761020143015653383939863781651714786312635020831568499753553999177535526395309639120388963774847036814842937101764674952685877615524350337252418041386021074779441471637591272722698029517124647553183618886221205837580082262490766226340002850360482528944017549968630724095286982015905561138544873392025104428755209375043807569171441290820411403578120887361095790779571313917983673181380854531635144970909433240355602180589585898366412867039863350692949698862479257056771314376968931064036214686405136620637650615795074192988490317438805551908845606249842283144849250675473105190412208880475100470150180488407055608703674924626548223260047582176202958620227900789121943664141945245941558522780521312808459277760412781088343316867200248658938620970683664964515150551628895848096509444018613878220245931947243798430735655380083139446833287772180855822852761485350081241594951411920446753205182953566733407359654068673573232460725880743728162855352614808437088987610716446635502229956175626459981069810626836147384378829759634680105907311337857666590279398108814911231762340981628963915121178398394543689656851080204518657534323314741451302332763060259894663764941882771379011506970496689814826458384111065914020374198103104979835195022514664636258634734146259564729969286114103866029759123090716831611568165653472797714019293466790385747238582113478098866404360683388544743810245894079703980108516903231687342793644370326404718861941818679337187807355468206886511625334829072062277842600469559737680142189527825761739998507228454789922736471470445250544875737555303092560191433166704573823782754901197805289634624422215157584721118458625471582386099046976002727853651772471698918535834623458828489044932265163541093375583166440805855135052121513432522153932943223016998654427345623901810500316390713031643797004517280443177286699389258593300422199138314117168644692302133884163338347928910688878501171870738671998947546777917590196683648435004429760635955025667354335993664663106590816083764092934058047623518107451846029977427507522479736933724328143142297366608771186145904233980096774897517158909093741257368602324847026736593554164199468694130330996205558161164559789319070241445424217902921336894259156814852892703301628046360864471415109013650276263110039526702878980343451646966045592457958441591725450665680663457552626408014572164163420082758578393912354326182792511427004818699409244929387460100584020007777704930081336032916443772371887531806342604294167750516974656478265920843575759028342706723373865300847049674834509585370609722671504054500801971939016338993632872117327785800348499761020967955694783029536624833267354788278177323940481725691095099249771932243402908293030773227383854891796169593385992855677276054196361024678401491921589569582278972673132869049869205728075978717602906365193605542659572114466443744043353791996985480911322398104336770667374111200094078504852912511771709839791519047551049011035062366489712438784843353905869868399119939166379652111291451611822944609353024589294681086691267095996411970842358518462007920890852636388612565192568817157066073054841762100245175320198781371638882021765026474981928312766956322720584332356119258875944731501937245057763927848513356800082271080003289089594346528931765951975104247456286475724108233308617116718155837944557640323715956698437643854951683618393855347611626995303257155629082802395681678009531488603675253465437048705036501581713967385766963923101892072687427100285839601649039540566293414180545036373193253913737846418212948584169967940856864155838266743574697233054744158802994836502264064840171530680110458235267282071891624074358478342129077971711791468436540175711990361461443841840646275710116093879563597457125096626075417559498763210806884468621630908398679308029096828399393629214666356305202229643583801342366629361843240551073185164470210869097454926764312762577603355184458214829870463380911152062731427203293882891875270867904921942224600187783201799702260847654224997668134503323790029717285873783913378157980768394128200033472503256104883232200061114068010704297548176562637555101459676791670486897219048514819256814225343510423791516805485429822538990865314187145982558777632118333959745064996673581024302404840016077774527438039582024214862750042685903760024181496394854974839518330266733290476771417908158438292612697024356791002916556951005927896214571780546018891981564457967108003910746736096886391756482645751081949541466060234642926070257014495549318277941799530727034571887469287489002942864161730813542346877743180363622873350900741215788895110955977695591506267564869841739311178124724953156486119269911176987698391453587269135627807777488960788467416142991262498638974898363964791331512322150872750090402532736178062051219645401821201529819806966351080735219316237410548236053937021355423774839837793957322557568955400793179602480787922597151348538394526835680529359007633237921525964251300342966874242012267971967351532677018955731120174499749030268403988017590908177975044618268519103371464049230796373208367060310834574051227036091376592512114634194544436229713493910400921615867729233955544896071528365586783358413328890827344397077910363670665909552905720866703427783690141244988232162601981691607634901219606199159603031742225639288818485615977629921174854957463691520982506552481683961000834834584456077959240753943396735042313645561545395033402767274425255479542132499275809958129294394739713438962693510366231934976201835484223760530839024987453532864467765664526247872323743831829679404358738861409154781585093503484366601189806156031949487863472029354624028944390046548678589170301919422989357237930868779947370027437958187680613492831340175228523534618110282477516118949576680139300217311433037463636541123444649170262716793860723790354755990152416812872981434889783190416338291411567584777675008777032305552922848001972370236946351678855446034784286701570553408214070656065187189462489569771194573952002491697433893525554019589938857135194492157007484667198673577480987113599043244636185905309275001364714943621127194396355557843973826346390782171963749698659196751888890094186878897221008157357521166429484098646143378140212450018380979595494300238042000334834445976150459754248636004058813954811438063295140018588484665168598697029810582777862707950318989839406697747560700116791015461878247658134815942381386454577976599559595781181195541092305515774733609501591851570402435861502140618723705428855071447875698292223965379437248285464348933529577394505773086257376284872826956996635553615085057817014699623388890229076470597850430727641391900365644104267552463123350459694362471251536828445466419409757078856801669322518084710203948040647615584070831822572380447180337857587465444217761204805957621950977105831460401061736278689587434852225046634679359232140154830166100953071110081352061653890332419068657004422073375145473868281704526867453714126375328891959411866331520582898250867128050937633976518646805776169165024677616196698637518883526883259081814213509378124618426421015290656680544077015279627430204241355101062064293260654118462327157064924395453305490471652630008173730609953819681641853027436147696084439734452978111770180692308793717060734430337713095185592295372379895219722819017128538860493940895747288253978373433623140394047462901346125217992505136532603081820357279303525233213715085755552628282922730424361391650154036625381138399397151874276856161942859866918465507920312089734438916985520793003096824280691241506047260602636956764422844717740725816312598036437109676076371717683589221227496297726599598211800835967132350132597868315915613239655025556319009176704327466754811585401835792035446701464600109398604280303547676722633654701831956582446724586347709255055966391876716415319987863579061907447995827684531054595176352676670186943140949196472144491983752470255022208393151497771504507077331134215652862517790709225863674230137480122184249323763800167010979752361739186424351851323795639222779631078403508537822477449985416525993867217299320581641902230679481063903624963335881418276219356276272282434464155888576845067160659439643316487426048990679324780782097244592105209832125728470791959321039898762704089014605287705944605379990280515860073223208876690758870534599296071027978571942880165248808866549095560699379288641730412717332093702949878417066953117745392061609187345848534694055248038439817326945886486030347128440842347871935397976205433491917419038718202283042222738197596461474378256874602877278970573116426684618058299917415059820905115677849272279523286690218642622678685089797023968903248323482731120933783179959192401315171794405307612105200610260114671586452500072672613270096903221493614362324550825793545817806403217171171083377043704901073690623232249141186494313593272638328466492919244248243211022056328463015964798917313604476499079588075924629041963138207865035438553724540742080798259405765612182962599056609747350413675238290541710906775057361249324492369359670664469634122310712508809777938367836504970084208330955890506281338845423589102762545951963120457583098265714255922258682825620482063859853571864278982006739626670456852441274040895909211205185927962620528384916533676905759577067356993744468877623316901725118377131816916650569737765710656567237068553696256891106262321606626167209274246890009716521997318568999891791762875024076602987835502955526287554778585673503721831368105256579395549859316082556984719277397785988873801388341635591997005241722418156647732757479436361676849601847502545292062630480371281710653604655012531405400156976570373559227076984982303922872263785159287510395389739080411190295535381120218777031879995052964229088345045350699399976399505433045690108069424393158267522243424888596801180443260843202545504529273461308084700589246809352907135198296965594888491001760615513153025202057518848350075483290166434652909047012728934014766175079368275814666093739603181336675954355914363810477676292573115839791565387763361149121490373468065044741975169377914043613218262815828975762082380731971738137101692254625108826767363154238590713299602877788344750751034779502067136146689026822970797497470945809250060619539909003075228770552490530462089729093062121200919032813929657404446933016814582749994030690646809939655780716932263923341503028584790047101846365410975783800998161306663703216506272667525270915192802059202601852910577892261100767946227561677108842346354898650577317532747321229006295403626267261325876947339143746029229606909055466494066552397470804442434443391430702898062430988291125373236952177247212643914883421770118048569521253055771016967046513904250153656701900615353339015195264968540065892381183326713438197291657372315985573352888769832049493506364373021886335050452041708102246369322365337970071164005111371963013075641130532238736671088704297015160631176449527865008827596005088471280881894733060995107022750939666143149577180399361963729081773742595705311009774136925779017715747490560713173422995739434258253649971047765925396782756542450614382394102880143705206100773343472300527545411337932018230384429795557617751736707765896242056453877724190396791647042941698344463094811799237446313289221833476606133467335839108427015191860887463917620872071400688993607655597999860895476676416745215586889661876198457884549512051996621291957853764725429860014704475293110280498191193333041860638626506266471065999035404046421376978744899221800332823389496340518382413581847342254051501038842155775516023387641945354706008794687626760888796247196071172449949683831387992547110664950941937047371084327777354229272556854612051160982546858805988678501319744882379011935794421598013908841584148034816009402286002791458463698489626574766308398282558935768568071231381385534395138421944265598954881387035320753410769818488267768878348954067648300493984698207917396782016746216094164563881349411634424454588212601293776149882800823570491349807334785801166338200487665328955856537255680300128412699928157080817825030562431168673690098511836979956232200936162037170814767773255282147005246712323933122097690204415277196225284689897699497994779484144840566971322142327512514290253643110029584228653983584958867234738554739392921322703766219652563898544553994460187850096503166567329911083657340976603491103281936888892434155401401625770907433618249296768644041284205266568614579452350593705131875922772163922730161880798710501904585762882030541102972216204642427155427897871271743017214292828262042399160682240241429311246186306386579249516569718424187275345163696569821717174914877911078662624841911602263432221221679978463876064090817171113505613813543398747132612922845116045985073614650284260761239941363168577658060586593402743824375283898999267605674414441224492324771717201935191601463664357758137529057223619400679348896630870563452349174423223310674638621727911538021109730715017875022474030775574738592541379847522851242863640953607368494091056920330943736674763495596414692791283187996815621919436368291272943009236391718329800497975611613184511622383709141297856085235116921362328132478323690655528472101621946513730409046224303752911470827827537567462457760442638884338889297785296177126667688121686719675826042181123522345909084032145359923396466398358563724516389896562161328102327777710063498034987612631010442272065749114494650283288461227791771169296709762222132442585194007885731079039481885501198239064785555476998974087086676614543263149624190314484415315541691575847398131788510263092011901337058259410939747949398749362631761658111186503600494335187141998360408333994956243467213004519130378201934590616646776015655719940184812318514376375961834642067407054833177565558596580936185445627749726187819146043435800057775523145083373695936853275725129890497261294313153936032909613931229590254047006554315673114024142589694422292770872838926438114453593846460006387178749677426073397972775973353724323104080424877912963541589026546835247224923818479149124630883933237733554728108024197884940057167092235917092161094532792139757586944645544081861871403340101245463641651442563844486397419004195037379543314803760644827959905544122210423686168072719774380391009375065921007486425502115276599537383747396262312987720349062632820343348842555344453579251174972453972349582977933815599271648581423233772883455423511558475384670798758518619588118566918544423496465828558666272572779308240664377348605688416488474829961091144957718219117807459627679494332918721348659647927834087685659374884000538703280611626980161346019302774461706640285860876499582290561674309351742622955748245807154961122447838127083468132278391271098768347058251801746715810344030358588828437821383526336127682005357101614777240256277121295000606173160494321489021548367036726064106854685080563190372859313074856050939255642183629710004352400830370347584118735019228722392204698854820820305208310205107109213866895989426189191804041112234416672948245949525325410168479733762131551423268780638882570774718203947692673511957185491717844293162248008109513188178082832952580593947051542094291583694804586411436067369382039216195192299635667702594346184234337128055107044061100048604641808940399077962557671508039467223878891754058775922502525753459655053153723411727528262373717095599129055187878729955901451789213849714993914394036985489560415468758808133800482965053594676661347664713219533487230276699562741796933097592274549613367486552699905314079240710193691453523751877740951258772162887791657471867194997637576501964598061061246709611516948192839741165447528173869102378739159738439197678475416994453539464168479569319029636944274591964119795045741932477776234235847163741228431478846732701452418897115252114873074206939806130364384898112549907401597399007104249495176612588771623473975369903244568982995079361361710088408084638079111213563440717008800254781636735371244355691610196961823739641573221328737221735648109315889626050995394067659567031499570775228691998829282293977033898049490223167075832725005938539984254286410511745649003973568484921340755528851433741128524883605779800220443517733113870940974892619970282835663834608712118848971229021577169698038273090049040093878477817517350481436946438164416710167779628723481519271533992988671438370337620738910350026295755392746176534819469784947787923653596579295537529494078333126102419603574533212045966429194049526390790367103123776996322726909091804660105540950930054810850323339307506575391640759464058738586787821578695837662070693411357872126053889793217322043468623856207539758433379477739745267505293345072147317332887483051336046764331823568793284305296497962903638374896771897621595691019332056953293595708482558609577508835303585492075840111259115459140461088225899180755915912854720519211619479374466693171540215614898606919853056113659698630660706510600921333468737739827155887231509996837512648410072041386328872394595470207706336956831118502613011774914761425593473180492916758035333161762972135789020416960148010358051260534701875142942441380970274675214127632377025478441605197881376482021464224686723061937811376258165691450818467262899361641960067368979914374973162531868713382433614467349312966459594537266035538706549350810591448346867061314616278333332837604899096431225490121355877925176225897381047194328971083848248030651092016755817338877951236664937373904327594329844656620593821627688712594403691918104407805047358325077480538429840828156786426589420142397834403040718306425448052310309291744130147749679619588948869270068025785325822441400807043506794266981401031014212888610048322388531617893849461505475381691956632764677870306918481536711411348618473219714850385022618967569706536726343974490040245942965627230548354241834361850816553228574454866457783765866195271490569713898611367421663901145205199134691864101730229969630678960698966833633347743368174472798059717274504134316817731201310159520084166496387310063199019526703306802347183536557557818878112038694274767632646669471826317340537474100822946533429481093601597882484837801862962144008995698960534815084736349492265711310502552110729547374184742914734870267404454547144899721168304182616448514821199785968816704626332865598769348129246193403223738587418832515874883689872643566596577142190274850242251346576602042006922926126352519069765273170949948815066527540144707871825490756552970744764137144122626177956994889098793489897347218723576140055713661180863730573749389399365166544487063756859091041449133797161150491219072359253683326914679682363889746800355761567156888287453199969587297403539937226078728996356935860202727902260106021123611372388691353157875893186263405105490521709024715836100033700247258683013077779109262342947578907979971772188719132852717946925354996382167128845986714871390997063881110673954635041980250312013766322507970509520193503954443884529689220616401001129972403782667334658220568868590886298765085594368246312938787943537583564722326088930922704428007827641875451807575053376897308647975370826335340191902834645358502216791496331040337160574450257529870027506343251232652596268291408210177608581182927216274743146646537623202294329548846972751289316688925442824875538381421333593766468131942751781304222716229442425757878572873590536715504863107587497494975532694023193866067767141243101581229915556065318370687841222584565667879659145715817210701803466337589290923269288103180435632157198467515801342544441348316253087911114231664398669812999058403620043451242355996241563346450397462452138035029487967930654352175705657148279716424468065773360823636892600144751604510211155536898364785433129831402804428941091959408532654252819796886043696075395460472485996336225743602809376197365900599148397653147536559402221842651858163001819624443403008857919918691179190080015916249096635174208302466921292756927373654999308205666412187734036154215581749599939534286545082713057079513522272506442424581024142655976419154606053717431144771020279751006799402524776834173033942854908963868076788732227169089581541212655805377685070865563547684953137336104110119082365787964559757144698393361473666684314253523833246904600242242708989464848121964067235264970735304021727429074729690761906396229178608865766764867412233235769469437587138654165492891234300787239943172142502528510245524561075911639527509117029349792506217307607253601341789428770872270283552772026703086100317940439252491776665013801639209481295379074700389237743347749158814112066036819040753694378621865646639186080895407062037744416201543444113183306411136425393120649991665821529877339314826181523784525380967073062239505985391237826804743674197994080200718719654255408503049930990835058960720271862611319349128890029589923407222147966630582986759340895591517096770782876207691528458795341136983016124736407849071712402323808153317657720280473611767243571494362960835263384613992665739891904635795584735229000643696310334452493095938008680001901052103916385494055798289282726752910404363118152744307725941769897274892799144569154985815871753355338195281157108650833053836227795640247243905958538915529282383399579197105177109457832955159627158642607672645329481752120589109443970001141808327556904062360575998118254695014849760266755812258370254354655838913988431302677003197874425836975940101764853024333500010843117119502056346333851421725061248123057369273834911572680671760197153175511031796625939632781240240965770688580408055196232762065482191407441783326513468976248632478541242402986473062466886414171340954634236477679057090841856377525914995057992654914526370083507614794269988346356034235192326468467598679565876405536615727970581266529878641618677164271451105396243784497503779691664717902901683912485480124318140504079071568868410923946217257590564878217162206145892861075285223799796068444241797193027578980137252316152273933546996607418279555009905827387335677128916416677155208254631588569441721519756875437392153789636756465209363521694161355472425821653265111607872720544842785106562785060917225592720527108781768647794078146608754699700254558812741488027219756623994679112653183277904744049760386898456289217653463843275479894616722477219075248970218375430563231248040976393517331887668795950433104211384223753268582228229966957955450195396916455350659011290590713601353322191333165936391069249037200008696272521785491754898874813532481234441212242419740554208203057571173588973889104566830579280952541330460991663895231297254670053255462200869499435478456901414106122058621985600401305076404087173162018628158351169159472498237968727953123619649732740619623176364278791080155910758960215029268160752926170302870929339026490515232706341273601751824555619934595619598344355272377268574875331951132997850855284460643797685443583041438786166721215788338684273975584438616279319895559078961387691545642118945332338974450774862439756789454568254499284668015412263764731996244499912323009562070847537394858219532678313288335428889336879164450741710983087728676353090013142364433202655422473137977370856195891713891188204924290337579794908905679546787054545566042063823846299448471789005112128617957077518451442370023911078069605119435940359436580400278227821397056100106386441395641842059951295806107610537729648012135323866936379529184274960234653923526588515023393459491646478163790709587529857364781342575718043838305626544638659521739589128310176479867110003243626160051955362182373446388291682127777393913461334522461547581256962851268566197000511749553799899413237561452277385691966397450065254765183882133760453078410406191849837989117270036379319724488621224420305445474821172980252535943119737420700757113188376140973557220126250445224797873797870334347881148019093473559556660724931847585147348473479743621552664613061628426187577141642046178840274091326263859499417160389314912076243112635559964337262061346463009984620060466767375079113226433652656264182680141707577612320674696894344079792373575243763173908050784099355367506886492554595422768125684006490787439100347882983896878566540939996939742292572737394982400341630339675911959749067994638968183107504751601408040236889462919710714489278322764425573516968887665783162272372386658612971363279882508443103562083591296565669988641989162779919661969741569452443309372314250440657697753199669959082281824565458404814793052407625250302102450083762812537667834681949486026800128904317612253068920515329843127632919659217679234848757291144137878746420222083662739025740908044151685678504592927497653172288890571013725725415150177759778532794451419614425609354978284517183195096035666640510422615601781840182359389589433550563616157897185814589809657508755264928958903641980611888959492783819167427417732763933678862260696345320153028761809888597528500580891925798433415356807667287037929135767938903891933163156050936337373160724040101745910152271586701569835062772695326650397999643058070677234104897235976624227145174074752060449729461725453866400778949196558859240058916796486674723861277077691965159862803077145761932404323095760805126479190142526446511802772815327060663140648551107142361583066113299581014871613086194468088249548809552091576269096524153928372584319843571671791469130475822510893317730079996302332507186738471545811971994516592405861749265528761664698717039035265368011218364572101767586065078962411522523407184238901986898271600895391347534236516530379082009069397590961516784550463465055746314563625095011954495933697816745660254088920411263908138520246680487438624714432593895022719172993728113065636331114055039437993086073187499264868759363458555043068130442727963274129927645656253258289657212615633466504687271884928163506741653612516611181516740287748218760188509877875085272532820981691980678178303930339172518260764279458454693786797724894218715121820499203109780585657255137122379809551661683648887975850004284962592707246850077501678472135203550186706965390671252398636213787153409757614859532341018516647636520862920407596876755982163406287119960353540348755204452924598567301516274611877580376860024123088076430947130073032253369716242137132316329097165160355795916163373563076849208527820284648829035216079939918172029430220158058700222372578813053320346713499353543246650855782711998305184994029050495824526219521154483657044812627952037235160052398932331605331381015490447773612393584279390944330583867145981462409992949054771188054169474570526452416027053678236343251583671024822621254756519727127524138532058004646165154989702594365131269535948950568558230041040646565718429516252658940865603874822415362094726905878712315488407870755403292519472698429427028030827358286070958927224469285288204524407386100678732669472635296596326160229444533691921746266618123154437250115257899229397410483016487363228039160464334125942894518665736716217462170389641295715235865683899321708582768737624389576830820389148692267389752186131863853611876413727998531589073574500048756679611996764349574723700610272908972849384229166680064624201203769779900675639037906454807699424412424683120053416279351357665742700380573066140636231777218803273163777314600086193461777628236521471688833800794797619326350792602131446576733797752947632862240947111264073052847673922769261321872762831791535441134663852922479369363761239861530070272508349027074664028952973143972796748700159967973732695172787685898637926975468494871269569798436405419204302246412828118451108692126992192468661675397546631389245216595110712055069293232909835113568772250538354988976082443832134310186013177469951430278238419258958875548354537595653169438396637927351284105016535084741460470333726909601266905031607967145931488388026319491239964016737823752971901199817319274459423885156125679210005263514383659217100882453211459898825567909109585594294322303422235119611382830859516407084176676385469901448871616127360945184263736583095249568637010569889407696309699662518890710801043607842621385496858075053327352690097008739378168652163864844274731088881581291201924599894992655414252853554255705371346605921225492041342901183729790245679462298823707715447159561668861137709108836143186763496660450828290014172948824829247310259569429445310145469928968060169891100516649910694095665432819744311179853339938321981834214803382867939908030722192861266795727963363569482130162141703702619652134740178663798591459338368195155994800025348505524579612802451027789098977298809132667881136601093529101039050086902322817132959743157581108898866988432903529392168094648519749429180643656325303124348194695804341323311564762383741264266736263714822882181525330146076928066354858911764322168712946406461356948193796654383440403231850114393677671812324785692328379126702848272969650642527894955711697015356820548405185418102964175871924789561975949038992320608431514895524277310076199442562750009738132809105607457518804881049082747609697324356590253794494677035434353996417713631342826707948316197446368397976986027176702392888737353073367067011263591685730485024701651053472787932452010412310051702029990049987595885696426121166693874401285442373149024009454555231040779573629827126547800467188830184620394740299657491947778406344815060169475244835329525202185197087737500099368295681526839742646482501400754280386732682696969535835333220104940382369042299455630977500022277646934638708379065826417218045177525434428229255757457095563426553979262862237706256573093435917219737496522009937939595966575502989071120935581815040930747490365530783713062879882351838197757935899602254671272176116157177901044013057880635277777739471524636751859642108418372185555094327143349651048687656026937187937392432588555783094329117905600036021824855997139983590219153475756428721271867389426076466432358108919416878131093512209170420068659471995830011315007306240604108668709342059207688657551343096896390982988918190737936522286788698247350504012050771274911931489243339662341095028267789227520248514867458357386073065514783602903516096117458576806189958176779127021641807373814850677076734490596558769652454885010196684610227569762653499419651446827664621291674977690790655107203007785349529462044416380959426880025839042465139174985596573832262769181769703486466664328413763398319546379834779808553953612497857387684540465547175479010581608479910351473808458368035735254737182846426291649601432220470706583725679684447526063359648268433876879338401063045079021041594206022568173047051163932933518967114331765051872848413253800499500654151322587533412954381140132882033937814327347309689134215096033681910005835573969146375589884008817740841296436342036226760045475524791340029388601702072979364436277669888336836124597435172104891892076322102058757032946590669550723373030988799123961646482995978123439590360168719339956233039138563252920453834012498134771436927972535285917195112119209649848305605391310212828183957824432578042018614125048499683239568827363902506139522030447745517686150023295240590604949378906426010803029891106461934676712424855551492246761917098397143569968261254557202424111893511072001291569159126756998351377674322706189050876449930497909720866770488282936233959675558134730116641805997475683690411229482916822519326545429691685221705903524199588185478866282112593348796513666122792628515514829630917680723942646045664085595383784762199684206608082263971697940760206853255991971546117554508236316917859177469622795921480709303308456940406315012055986873568219064270094770124413456187237417875650189913446684932812478529792347529992892821524333390449587170015242906434314085029100262463028045184718119973417627224324989213474457314430109650788014541546513668437240493857225038341947086187424531359244356442504620949262779263203608778699662373031890102143654807059811578851825474903303024720617386874760560464426198783959404090932842720991447643558476840665752494773543148271087214068693185900832232934336457061715960469168015101163971979214653588790846671168928280892225878880603705360491402072773013798766930406732283926570177734583303793928156431869797882677932221733382820157208812372226634697909503140118521872353426440872255871243760295028139641617483618068754749513066419753237587935464207117081035199132287402514872297374985063601415460931023878145501125930347117521258031881576653296690835044528125946638928277163621043610071097798539262246080365397752322074595084741374564933305309987547785910305519626639540315266232907569032589054077042306158205494173291164944986949305190351849808688320065345992225029717122983186328014445939075910014658083238478013643607218664043152342639372351529149774200701708995779630891613480641213776132714060604760915857233300882792561129176608918133754444805218299098246613309321962325291589356037920498244259811123441794193102120614405076837897261442251716043824695160214088269434064718415729344860186446729460560937726865666955860163939759821122484850396534935142069751522538473579323341124885634190806597060317595041117520224467575272982510427943303884193308107438386461918257845797931022755385858175297076816531126026120482595638553302627725794928230042124174994834837140933589303388855724705732490588298221018846201665571250968505261994338455085336715359616193411469609343599871256485735337794297937073262089883830831992066552428989459694564319786360781130779457117875391618253397000796191167608934570640915044036187616639260489968091935490504179792162703035121748188034971445766151467129197505941202208149932035554781659342491847489050928340149760864725245619962504697384532188006981932725430678168408745638517378625515801160399731912844601929078743804533687593011640747252967171021021167760273213573031384584817523612891470990041397184533325737962329015069673759479775064798951414650118976025681518983720719805003570477414242212270547023477916348092270637947254774580077850196248927056443824409328435163714272805543187278120401805660164407533027480485342141714301288838089014736075394220809928636785541166971393706192954952577865612755311679819364751531168750622283244356269481404558763321413066005391551088778700665026583289644136209842666098260287524205108846911766767604133413671136755118570624119549006241003904255687579064810747434011505805747760708048679726892122024527385876944518747641060303853201025215893641118000004732211162846583827563326014917107617539873813924293224725535320641784227111502528255511163227122301496009336787120722650917044563085391757923163572553472568498466682076970676086195946246534270378248717199650411637522371097036560232979524632887685296021796852039821850085532318676415782212067815257737769972047388464612629752498216998653137144923385452281012560458551988957196130841409632406262507682155215952482085250154860045921612750323483919300860680612411625353772516452776091080580151203143396854108283980160516347485202694715461639140279753749091814946884215958032158660290091313346078841434490848121720252732386497987406811648542727441544961021561738020219992317579372096418395539730818215267399344130747110890581904042442544955219635858685787208993422699694431139544091575396887751585522652091935520156527521966997932855375434087465051527136170087681911302209654060219270356354955436155082584022401045491478980069719383587137130300385028192673371157918430696278764094416127162995626375517559759970804061800387311322411634172593276100477299866411951996862555669830130120368999081046712929341741294494998794192503852148368708399307032694525538901373319861380283855961619628159969105130274908650372800824536507338772435107342413240012289107072493545015084659647481227930721888010996813975433841993230110625004747757648852564472342026418137812254406515829022624565645959173598170505797633494140671423378986108321601165489115326271394718969193387320841995788417691722501089520670016627165955604198719180031297336430713466167661840273729925354735826545604902769071623390618622874548609046317478900911688573261117792788133083975220609946163169198756595165969771796456924059553017767522309046355056140127976925892969272191451543054215665829611865006352214481675269741181110840521309511922906315449286452015603217068936417551874666309670106014023248064064975438345321949249801854050849265279882833919209902542504859893039543027089071789544872635884574190424557909517049886252638174647201467742700090845930297758164748389486022045104239237041811244341744924400109854956853748028270081557669857792967523220780932161520016354486913481035351269025859574494272068811091994082759388496021465625277212161295958363009354170139920566728638948685886274457326305734914774915347274442936189707469627318917707125406525455023626867766165915408332991247696077005074763800449679765039207165169393655628943561157302027444228284639209751785015311315122681588337675452107408251940405756846399531262830728556115230076338160519161373647421383314807821078350712884390270412163478188058845835620875871113416421738558566869428568668308815768229330705856834175640869043837473861461457034735569786483889238818378637910853933858912524005969514885324550339455908004833101192990044478812509722228604185369680547073803947343887276711581086472283787181705425167371739476935657732413153166463409792926379021246532183471750769732795553158447695208251277385144050006267162709215152240626480663449637145727945497218847313131827734908837513156427535721695249254253479076984527842844487454440994019018294260286808558910935941952592466579449514898576251178266927994388813321148490502511981839287851563124244733070062356033776925664863157801041450641043780757606353818204136677348143098644368592993228653439340338922946209025696955010060172415820002170976567409276128807913031327006918067190123481954791330446406806400392477498862981390010258200152314977064018482857594098919283032905778519965101094539983391837920221964404245470444537292401389096666308513751024789936986509028130365365212148623894303303065843262264098996134899383862403034632396950614452240097508079779202820082920774269495636581826714045002144152160341509735337572688015701729706792883734283659590749741681231291446113233381846207040898346439911228961260399222227137459815323566543511121292079251655544158580441259417608587022083358414710329374249959159466452851167975962624021462821975337341722953740676285737922749218358133522556723340667364081100874056006610276458970997366940292840901681542524772574323033030011510747397515476305817887063402781365908157531765575617220715624415876764063814386913576767365070642967437307194788037696011032618233196074193858668880888030617879215509512902329627049177356297542438885623201846890031521489122576324692586618829694856311712258893525810420134341397717214650474817338358329980981568291891205096516853223620221011487751488950767196033941001519620344796147479298238426411928504571465484596351739634214676712811254189306665662367891086277697926741074193378102347807772133544821067024650825811537587680773003072542482804335555725056892888611352081791086458400223981825332263165881737027343869887410135429049176449266336463559007172333205852327391070793089597895890089555905178386336203574350731492489925560921131782690988713738289245993915971563027322871904387293834968579152549515436276949312303030503896334574246359523340473247895348210961885800283309803282601394077043492280124952205444352437797228700580576564879792416022663093820345035817443174075060179277926810424088738618982093605996310444233584886481371868788155986536694119375841194791619886818726898120791452975933123543077166762572708061287824507195059509743338419661609919748574854826768984767932149702940909385847936777404589252423546868048201104823150686929783706872113186049350816581026076573530342307791572014215902342727832226578876659062696380149225244640537980415033202434633458092865173505337972360293536539921314123154049937175716057891375194377185834148524553745848724450541690167256317104761465061294448218282973512229900384079634396159924563497968144411075422083244434509321771687039254905184795102960167218494068430808469303846178603616312396798935556129395463474880972555505778100452939974893722559901356526765102747200042723716319829986749274150354580612176334182695302033877573478608916628537543959274231198569422061612927170005895631347244885532881741018845744696269100651245881883006030590291097952358931366218572110853559788015842504490773656972161794957705276849554239938930014687376299487371141819469806647974539596768731738017385891422753701354668127957331970259463407563882760441975358598703712085886517323959447136552961438749701586029142937901342840671273913867823105544834495453772493695404905613590287462886897105352701467069719923886005400663949609147398479593666428082520867540793062994625817532176302757861538485357071106267844016163971442115174844087698673724048403507965117975047144257375818092907828942533478163702870451156377198318930974857016597115410162539544717748304524088240818538810173719441136709697108860629543361713453101825932625218063807638637374532888800971785958178024044594880985165241848219409693348367581066564903649695029102688399346037907920598065106060359339977909772537961016784710883017440917747662031544331542011593539033798711076040508606159469174452843791789404890803337505197907052839518504716074809670505305540984963705620061056112741861103397739900063368530477368707094554959484883286318618061611644613375795242911076129173745191525858985641852576222020829668019752333180294079867483900525885615815646004889523342812900761820617365267593948413793889437672261466212772693632854680852767865366848718448979832778494622635650104788145369253886710557055079425708262478443294481686621671152868861130338164886250547158013502619669784463967662413498059048834809260057836189694287853492638812224034287710236547774949333558492631916969570373553263217019575554658178660607711877708320350728546872221451281832048427920100899134779156164685581560166924572462373065846281019560915898097180169505317345087521248154558356189850531867941602840445982874535528757317189181362400868221835001064821518404827242722322586290619293433527901851551888705582479436057778626365549778515812019500750230776226207931792619772723092925283704548100511216429712276036878317951972722871878958233571873091991196682975325620557182125969839129186178679971652687185215359155467678432337802592425192934630887157340731117658252653468601936684041860760358729920823598734980139240156588109227900949467748461008238755349167890821763676724545090005576204808376259408088524248316922710547619383524603611196451033206961895033757116654328483521505404389532516091263987277340903342601841433852035183857633545106512887693653130887077405482014231366014725623298005447719491555094619106325301724330512371216015667346378284608743600875697941791489558348403940083708002846195150022318224719471232229027247856680570646299681983556593905645472638035455380090634721740710238677412216422960622134218990908316046638968005018586541465162893706457514299551145128406633599862834734558004325343054303840308266599485757198262027758244389041892031931288214518082908551915237971049607093610045794960077807187276518531762592287020376589127754556003336932348277248655956343973293098092776363497155690340578734205236180077622806492826540886573042638073896337140643639199885296722548553700080952472902361189583217449514401364159805920203979261154879137830736084920112755591193865831661139348246332319806812985252968604692155986432367035030488877107528381247260147106385776016489976563805033519668276813199515973166560854790823119095016038159444931608143304615419968070205669896076578894190711069924866418682687402547551829860816642572763683879896713508857811293546880669230582868442379338077135041304238221643245645411447665595333047630262018621818079628503581133148370371907003621017944053820025580057715348821028515000260861673572235064481631373520158147924723744372258349807861386228540350434109775828116910317352499400766881670878418662690586381665624922369236740476965227738477619300969442353519012386466649648091669337466825699198812662345803445498382493669187980702303320721663437669676161309208636249793404485465842364288271344940346452702488929934093861573696083521948695183435522046128265130643322330343182488690418134098148771612442765942752527635128112851006788281785805355357160349272341837988142490159785012020362728977995875435202528125553475463508180616757745810862554057507538429352380521876118752832485646412474606400627211042573062382173992975612515628413312886286272276750348299099961769465664814239654201778410959574611481708605776770107355993120633967907065063781923082719545207037769810605403046930229718397782134828094819410530500563304376733051983881444917589094103206401684242099934431106830729562714981075662572319545108059347197536963678861219844377613154663901860738254219475530825621521555386147447107158072301716693758544155656526885782125797887050771925124141125172934209151152837946500601241522526873968617479851218864367685319619541637318805862140349174289037503808326414442375380076669438905716130970415655262008083072283136734510009084424786438734762102789418310520779896855383961121878650943132666297558606996329900132205610759764683438804317873335767027821209898786459752733992190091733281803313497287500910594742439008301979691278042064839677671695084879157206333345610076051153264998201361951658085643535364994795787219415555517349338559534868491493744834914061063935219015007762534649935183512696949895249331741100202465981232872848101308400097627813068496104327354806894585293115500689475853807171499438790414003246185404372002819379308110675111132668561854203165143954073790228863241055855466611899632473134676929381849539261246393516780227559906395825580457783242512721393969654616410162040487058956287112546968169760222391199800212533124947392810612964256631625199125204315921470352443742647851403120483437690795556005669506402482266838275253496132711216193804202208596185595366990226722361809081721817853478411737388523825989112116072754361771639806422269813363739575570916937298369641607493305947809214714381226017286797892995019950680888186848881765225951944680545901385323500743861647676541449243170309463156081497502199381135196867430070382737215227611097859643503814614555564389523671809067234251589451103287903906099601353453938907889181541018754416305969882100363149084935094539591126795388632001379088370509959701294980118906776796147180105774104398915112485737172906359132214527954391759653617766850584424749591805167398293785999717726927154441049900375991730633238185916373978773884081869774357595630231513645778146226497088486858661366753463013504579416910104100794985781594150305998424444256810990501852615552663324656102842582297291222151958829960953551019087143198358935132822129254306551756158861329140862142692384559334244065023783827744483213307572185199693741131877831761125014537110795402275996966797630987981311473630567581248809460517514321353315179948110294511172848255583915951271921994429456971862954303867407588867776972708860927108009960102814779656666467845337579619866282054681292144685253170736169245337354304299077553157063767386749545100176436682105162236008273409720813364221849269436975621061986692955472427874784150882581170093508490456218248775552481863678769949635737513066104748700735042981505627427920534103029909996970844369387177561805858404319633088623696480646695069546622272045590474851351663855218366427221363619193717188269332071179515733385115221067487047220762267894300902501420690368191927659450828572286630388268437400544454651220656239227425039113005314285751214622278294531441893613181157741111520312135169057610949321141395656289248054857177843429327067440541792705875687602414176570815301997079283850293812430239095752590959871139227304920975304548847889074985619243260366719916927338481372180216784594621365631172088310686824121991912300166839297618363838634580904932114544862599432888571718481513602619736159386827605600797357124444992198967177663289083465823057495114526096203873965034891611475570147709794512394807646165019878709549690067526962722301576815412556147286247302386761329524580867082085362806640795662834219070010924015215810925234575759556205912412422727832237665081450849380165455718433309400842280118979118930438216309829858797996620499991199742691711360484095612969867639465892651785853520819601300234785045095553089470531198589514037274328139951548153673628765940389510224257512667523245244096135001851467865892150676242995263851407681088626884286106772098869294428614139404640116401316310651444829556046367408792749862080141155959824219923081816974189269914364172436104407048133086442713586321614685012362042616529979541548260972777261553715313668872266467930032115813911037418824875980713865800013743528472033108592642348859454733547018833448804032458341169100674933918671028655875301120692322215376214653362069534909347430416321733527192920753687724628968224921174236763138102959831176421440443341506564342644797569311124313773291619140659635896780446272310340598472587532937203474466660007068007142450739849590550329196338490799690229351201145621083188662530387848101314204845113942416753845145845564825729342987991404069083236607248785061827777868749766412785217568993695372165321449067488683622100878952611315395590717742432271512217233204901047693249734151614987380890144183173380488320009033720231375928609764558669193919766264809156552134851828655254867126563784867612109152363519591036098973818714529806710407045423338065268853428470499810066415772939361151264159661917835770730940533348194908413996473944402331221982684245192552365428144491393755667214419418634341258503680781866026888724662453760908935296647404093501589197736308004957765775940012194244579776137829010757374802705636263356150944081274311403732962974448462488136595140522316373936740994692178563695987756010128972670185426489144039940251692009306750466705235957162643793177803272480455315810658490797981370194959521979588701998802273320389856091325330714355339309123497351252212061038633035869461248571714451649440815873504408666144836670272174917634982936444437399062975147587193774178861347389168479817175051301643339866310479411933689995690409774734302547352492456557531450510637941842551643641196807879890282900552961111613549202813235525186290774037417733605416455314410967414246994035296000069168444443413312447573080490539068841626206554112414231372118839490229421523676069056318206485486957933892785693719256541008741151705672014658084657893233613008762794182120541494264963323336040703201604191180930629863826475112687817442429982506998772656332959701850683516987520730069473906090855150423738247013122578853347534070198758630417552814793551013023496064591212815516059661886478717789430936081371068662531693712285425478443022436747581867321925896576892211045351435202066708380759859412429732094135126126021151997130799808142761623831549762326638371088542132300528054804306943617680918931898022696182293950204658060720016008605821399320261200630654335438105719210292347422691190536956324189727411594421203763287019847040630240595072817479638747532978419385292618250453520165667922373018484677584018896523228862091801927316947434580938074917882848684071432378923755084266969421891229245025991884284317761261875466603137200665533126008561423930100805940924954580922381510200964259462029518669705398548864081707859131823565199826813869745687800452973293377787405266707001659287255442972231532479289943949133512221832998946771151750265389094576701362160291760340296227329926754733604643358622946712788755330735311887316434669725853267782688941896129903120406716123945856647245892156446805722558134659199039314073612209733728397219329305841226501698556614145886248701151312233520336849175719934520102887317103753030063599907320023663884477442520005584162915929649504691093316692604845377448391296043593342219940772866299175710331340158612418402275277570672625728289301256769402726041020945435601821576581633535076766241663624646329711806641749588833205783731497422406896228213656146154561772468400769960960453986249165384483082108271878784852293749796553527140751705932553307153868952466610971454145591820158786395913878608665933044132509408578328200833128666877788604890759570462342271117509763271478352346831911939712448067847617076620407383585643796662434153145275938790367172670147660599433322552808525712093868319275781180199629205302562115187936681268665830690606778540053325671704937927636006146254190919518013946090781968021219922302295738204752583385288901776857088176158952039704376292006629338302183541798641845119346675493456005579042918281212535732486584351273726832284328057084854560536842310993671962068525356494579522700198936467146511242897477129882469943902037518128963761678424780710101224095308920146337862865938795861046254657957319497938101157836152152858693821902617611659626886551184502965659812537353469761498783302232720806955188053390469228882549580660655114396930373718506332227389075338634310377010665489564126296840802266611159366299921463166280133556226601823136242578028371469307738576350980327522678770384446167511229801603449495811932132688200314672742795766792604455403409139815336629203236151466867823823839638099228043917902032272410729194036361797160923583580182022614316242157501600777513289698164392041653400352826085092651010142786547194537209805779338885247415819957289537780850938046535337227279845773218424595757652985332083252558976662734361831995119184570919443968561845644897287217141610950963148665994392852566999667798423676524949319913308289487769894395659573521274067390138165786875393569257719971005628154930661866023717015643204865294965262837274309962769686670354244322051396584906346414474060279788652954576838807572511099016004067210843584267317387967723669919176823163457077683487072546945047817616793883703989060930816836224178423999126179983876520759285580425913932390661043058809439612413251319065192069189961571898831545143873274664331155522156290848933037550068476375154907196852351449538242745929958652388557983700810374465363293561416022461618926089140743256557511263934007593704232669907194828452852240664797364798077962267092002547119287180332786538526661990728691283270509631799246253719635793955481477867504087952245159250096947938676035918544183163296579476689280640991767978713471741883941117417480800846626108580511902748562513144748454894623298736973834568177038531867896344849784621510977065294652356612881792454712677630148836901873947618550985887131321262215886542653344259286600326623501393153688964675615069677384503254604334491747566978020267062953151413380198743425931337718014940478775676654314989331969265977401654547625272435021543753678414801751486760694959771217683359965084550980872518626857983971757416928899136972665033843399523483016754657162265239378120040331292183117234627946957860382227307290131551392050605946197840880076261911708245074899361535147035689680310412821080371064735372069661230555576067483344797751836945068747708243272228700192687697086588383522400083117722629766393958886925192855712925024074234268066910801567162414408269140711229747238544081160479041344833437848894710134227877863623953382238780658164652266256281306188004819867912530866892161812720963894781426834406062302870361324791833574254140409087291178017952221279899777683980075221194186802804257119954201107301549744872692732649633557890171781640752600124623093863264779319161986444435396236305198164330835881972930986030499122140754085422926195789540284270366402054276471127790555269415466055826932594739852885167865329348993308531101528538441417018889921751734089733965839210453190356961465153817769141841166646596034242706764858129842630331475118085914765538516085781720472180880375584171220259584513436663279453552517177259244688315936036834526290041699474738035547386247089145237127192468615022324466970616385446151948703469100179720580148887364435773860131130234897170724951162359038262154635919808530011899057456366309136056967892798220532697836938608278557197735521802717591600276497665387669394291414107907935103260921803980796020419369133862203333697491868272979254306192036560955871250805340926101882705509537000064240893029619108478550803339894985781162051182952991063886520694475970504047824343389055983258952314210986305129229167155285847672201700798160729289152708850676890086649189657717352188027985744339647546547410952771963235979279159698597839332856998280339574787107183648695555620430721219482489902729348049116566589495733433763302091809143098795462405758302811318020707852302216640741689584765078547163890549532010926108421900113871222125533984391213001994320460216255476615052531774286041339969989930424741562279317318644063640964598325109502117332303792493210959193548538892740233376768987812731590832580664138517471632952792614580914393921087641650912819580810601805298699925872207330981790535917990418068455838861692664905283804553445650166956561774612692860996744046346604826080978143775396508778615745908800392374695388402868983949905118727096060506329671675770689916400103767605893398145957612543623365050622027797543707230224080628828959219724092897247415422816079907420541500160691140236708342726757697702748767533878665938269844352844072083086124877392141572560447710797394417663278752015421279901649174430038144237408673153136882506343006010445406276983381876405871127919342594494041623895153624501422214306647772034381476534262780646971012353156941055348243459479624717192011418110465226781534829759647642668980148112149258478222769450096995397983060840486143554673622111418406842127418961875240609368766220052723003768323090806487866480825556610779687736357243979033692296714284784039836611260628467106080852754919915606822071332084212550812882794303252151334772263962568537802887689263617864104879299541628830715462544250680362875693201875714567042729466864607299135094904084049930124248690989112051072906531813824706592798375903029366115408754161704241122362706590208198590819219611996307212161434903216514480890455331093127365177069936011090585342040701155620013049470644601048932839479280028695700725328887697107515194429366788813664254254389770021137738470503890543895862758763347566726305944235397296514871660761095241175263916763788499997235684464752120760319218260542486904402825605943226281492056602925014215737459940815708834018198939205225297839524766867100880444838183752514030933182872301313400045782299728682101213519250523264818589929612395504236317689979080482400579568961718722284761472560770587826415393193389163114637994214099397181895724298389991565000271398170620907026884950256744204619172245566465804241026691064923388838618497423459181864523495625785110232585399249529346790411143027084440751464460261238730459424694786299507623728322151957965187021385845046880085779293152354603039255452408204424987267024681859602967231485920761833973758065282614282740124641973926271844906271056190322191765632802868589647586928062436656160592068932747725001746057229393897965882278318786682709796833369215201740191046227628438239796132080805882576738617895702171400178991645660814521781316825430275990222167456907021917484706090183006257408358420718872955370211830395368154523109747904026964119628649504055815052850643525967123137657335355330119950179565743151096763497811558814750468492322209421005236623717578753287856328810477277689423598317050716581618876556202061435082056444350483905937307980081242212707150140062509973428403522924428592001392892571550085921867587338703048406435910707242621696514253076492911281749936976025899657162352749621232468569480971699256574607739982658354919680432901756872436667646779699398771677430178788136068282895507784334161246350293277934961714471851028406610545794565954406186776780268488068987997312030094318410563515420003317443441399169492954860848061450713888250576459046064887269496663859385317319872302562640843848415696965009265240806150913373193486102116830616799466188101846089986712258866787029151050625819307866788173591525042576450485901529966045690771637791776821423546995516343976930420171957183466759941248263549916497642226614950196876219326268299756450845151924397583966569609190338940170246633839023054315930339097652817978643523146455908900657489016333077470325912765475974715993195691970733659140114702673205329473979707984103612632061917988639169256699141956868982787465319276605911631883675601864904234495673246841977310568079347912684823808914052566941080768881640105115963865662473256227051404549083975572519783975827791237879159734247617466745502557540136746381829573275734982011982368698853717570996812265695881003382962288455994833046323992118231010740780490566201145231321247070431458216814604142852839884605430501157588470331318361960175607794479558953884439124122261614146502990256759480702768875799793808693988984959573868316305681234684810612940392786148207129475177900228134417096597097545516616566991345525263004849535338534665932582148210673144764128044927730438363401300753185116164508560164626005278511599962263068819013933906812580979740360935390881512709558672832953726993499672615193865695400237378939650851877832037275790156761063209996005821323256003056762131360187642993329578863510802014065145432727528831037059961821626592050518879974416092480242922104496741377457165482339345356444315289425716323251641703416175308135943386169624378040303584744615741107773359267661724418021480409113272191184769181191820384344522999910529446304805731129088316680863629293392797683600915031042218925635545770740070580751630363861986120271636657695466899495944857995446965862539457296477527329944288419068668204753043756132459002668202407600816972199248779705092419129571454433704130523286390209762089817372385208464075996246579512059141986632483491310305935462669675693338051035692065078288956766719177861369130423148773890697947413703457328388503472118735093856605730175948535800368616593599381592627284312922832943798913295179565067115634570982134670949653820772147225287790561512571527034263174228469022221182572904538967771702677026345406499574605055741293524534299623011816777472153858282094604626392881953740378833671510376124471075239252037584924358609076282562964528512089000260277078565843304796297398532004476674894383234053519395201052996474540514225612271684287515981173078808565825709585068144248270534912835867218910196655672289365538247561106769884468941287352511706558042009872745075857676692664328849027629052552446807686754414648362061460433169640066426843443029938425548384852901526961926552088882157090435815425071479012671366455606626309115152323305423880498671430760429345407130467938353105110965221382765154213668062235342957953151944608055664341608332245939613510044434448176640930145222842336438452334418448816262144487948231066954557456861132664255983349195745648271600594434649083987099861982678181854555994153998816783534608965814252890316556951976526622726832123051695508485210248122729360281127392018401595603272762445866990491781373077965533849366991390462783673661459968774487093049500415617819189700211808428659847418163977556828146430310115341928590797487842878827157167339060476723546612147617690756167757561674970736987151633558533548804284478468904970124839938039644315124151750695671979097933333265436933412233346394840417210756674431530000633002217514439810515437205104870247245042222531661487359872575756943059598951602263876229050329622938884652582479127761799284158898447551387287142943061792549309895309144239797053871431947064298606832219152997236247640736656169487243307033766794777373213063103832344889458387892897108717474580975539688683443692157124624257876173200644006096487501481918013205629531238655132107150144074887728644290226783967338087028873405691121291195708783355208146014911354971485502502945414220914896382220273776686019463224155066910382003516774992591174988190565846989636327559081309427437897938241177115847561206981432578823406450874534825788416620631410636551079964484061473534518528891265508415505001983005555436448895986806640571548775357740808789047815028825889313188710405385175866388621498831641287311830584282900925544623031398052531973154394338818743831411626019036318218984985609790112366479731405978931928094881674495224249204665391186548810270264941981363357361422700211405263555239442704365118655408566100528772796132523652011985158454266408141908398990248096605843063945107306110489982201095120928239635815050690868076883085303655904739621037535340834202980306560874802359501690347753645345262949797804025823969734944465427705239245342827519594378641249239545102510340099044630111435075205538576141889431948745147732357236930348397062342292167053628933425947985592905737566191508620431605591891614102735379427917914064586733679649992151546280837331180802043370727679505280141351556598112841286252436573327651724638238226847099092016482804157167994491457896333283045203385218255304986328905085158315130986412800689120914727808980589678495124358810739026460540720143859125190987552577009437507465341524604804769460831764802911364013179952840016650838791510956799682443525803436563267261570639416620106696361204493939217381059879686187524332654543478559273884461640789622918767671467116491173836340249007849140278815866850021129525588333554916539071621996815521548481897469223461467994800267711549601475044482398017863735088177967135193118847634068235853785474060948131082998674268667599925896204307661848633900307854355627932202061389326212495058079311883015081126994257628233687231858615444900581916579888254181710527967994675258189033403282049490440753404636940623901498934775072897027100497405478974483100134028034068018175407869417345627774455538180939496519117495496711570236818276151852140570289887662486594276694646476842050272817872219032318335919640720971718954625394692955777439886383461374673033063754271736200597910711489928161277274534904863308889756983606131750860485549415148059307687337992524120056515020209247052767597874240604567656958720846474674206926309284760550602239681178191989994613787816478060296223834936586125836079731236017421834845194980993970182853525547973676312798995112981455315350318868756875222884706440877093891194857057361478041235775729570562945299839845986357859830749555093961508463271980708569584128002373619987658405711885973539059070460136336363730057626213729426266499245396036980917554780157436844344775518638017808734315773024662967928732447337820481132230157607225452373599575266608208498032765562226817178861962920907455830455455060043895043738820681117645380016819249742554766737127976853496986640880682837211826326914892930517395667174300337376733429251521442289813198493698948933982537435738976567990579969541598905460705019737500099082226351361101731757230420508727501702413549712163895488558783874393652508297687165140229249518619846694521102785209909264376917135482249274201020647468807985881869877406734152872086708786804272661784201622509398092324664108613568563223083635354825781555926149696841850289428141508601012200506796262599516582599210653394239840016421434621979502850844450052750198441812933395907853609554059243416000346877849144877474806539438941712173026480049759097974985732041236604308437917764529863375762203385663414389278127228568044496438471395429354970208927364997650761377222278556023083383779969100211423830008741120956057832555153775944453106117235374862603136464800728762809432408251100640483970225666845162106155303696175911646047679740302404106914006958214533187979901427011531830903054743705901955880034837697222153137931711825243903334592942188868290274041130113735488151220089115696357262546801819760687427695502818740150924988107424636480401034730772101645792359405602566269208996645229527188573640028636133423899399745949003669745174891536609278391128706890403220689102434268941020772240810448287429299491919776964240105955910725372165408299081819741805339393290691973386270986623318635855319804045736077796140401766009336574003997294864430507107698180761179553499924609135988265753042162571788362107097262742001255590924423225852771339145968734481671187226767814501415671799089316314124485163700368400688355705151174326837043513973617504946434936769649949490329302354363339383381781541356844858277754500635750375588344714078282887899132076481289818675906002965376782010667514591536930546290165646883733562953285613068219492649114791333616637796303630362766460337353855706012050218521830336258924146370464981999208150193904478743505452799689738719923764921130580058494126716799860982055770836801238638272618942185750811335503253171646625412348169030729609550780299843707546817219983930541188019834401400126400750054056585124022706443079396149503418735478367872600025366926926073637070082746750017156246489920916329778653940399592423183293752768300021163848815605136629926036936348268923332700568532008651624941032564172974939027685010442441758895805842024160175921302448244635698507585886614085424843248564377969663272290037545767979954629252812972410764319412339245640464789363269456529583179238284750626006750496451151404514882130085394821967679936034130045736258608534749297865797962821652986372091518317232954099671188786744821629493013592858083882037916283608390415011481248236410137454572501084136679586699892337650423740264382560288023919774948818231682273320749782295156866897320269327637643375819668490631881676800580814754106931663566009724335441385729227200248235080482359087390731168894781557852804572906334326734466934743350890202862990643828996762368750021210969771018316001076923897028578612153047447994411016409976542099134107866600604387715010812075824031555922070749952634525708234042728445338558836540652070224454500938420058492368738828439102476974492020131326644869266639716505147985537980079637757493614577762588214112570913988813802016303926747771412976071573156467440924457117905753073610343299231143646806916528080646926857167428729157825082804728554025980242558587410405445896109131664431380683421402810368390801534490116619091881749560721240538293585418568725570952314879234504541164204806769748753995148931351710142135493739384999969486435708252014763864109032586466557652058722080411153839873825046187147308418620449034213419554051123621040856874843002225005686963152047383548938363289325623391659909142274450312357643543138229288012160692596567751278667382303481722726978235782532295029273504485273990819278646531017622144399229812436708115473111342008535230691960063594168212655625311208761882428217928779155720474729602050927591080771654844881578277511040599795811270100766471525618819909840789449523917353459845350417477414039095491552145739644438482959318658984280720664380339369443065037056917576339371033933634833688397210142607243284906612836066421323197283628754082199950023178831343666741340701169590209666415304986849578333582853612073288353658560398239976191022890193046953110299565461344697068483590397437140135451528811413294631197967469965632594418233857805535071124841655712808518008760419453467167071366548574720971796557917464136389239282424762519488866308745560679585105679855529357361808430916662042842094304448680225333091939822687699059213354364303166850711075913573835633572952775534146319566545153363241968745858732989354881222351979580192052400405986290663455014527654821915633520592142230772863138180368233849232116769007927488411639826885360683612559250276404656610703925083193263416401743626542082144005878502834112422185232565185022435548389150666256704925442306990456219512487209973324595392524920320886892153918967515293239242091833648757885281725015451536429399900356318013847211279758076594132890259259426440132600664809200490441107735554390257145585386517279127860639604607636975273324476597746598546026322374861340041915134007717195827945966519497095403777408927604093729780699244344554954909806737798279407039487354639205516687462027156395918571024942940121250302326935906505455031134148045575594824869534910958227198557023526588158063569461682615802098850286257706938199664117491298632692939014828404699935144002220477869069584604497344142803814364764352019896671697982061777246829572989884668700356126597394877966787423110390427014792460476100997367830070570376413014404258427863388871247434757710487659418925563373268215437659469724571917890685366484197425697337365408273383231475628753664251965031338517320487827711903159920969788588195350988994878746470230910272710098304493777429369354018486025349932382654960833616883224233369243721522768468567249208155809683270225375779867593096051037001672744210112104679994507771638127366650120011427029587493834753482025715498437873466164746418838311502901512966113637637378479566491323870307954007864986724472939182890519230968987853399592946669734341362021981177302433579236197302292429781879708394274020518661493915140427049952578743834912107943759781557406553219630563598283737344803689043686552781633261000676770124910684925676982197510899944579478835480165953663542781013431012985744576490813036550347417872946835746728990470711783641971999161139253566092261118481710816082744505011552658386610887209605151928767500542377302179821555250250560202834645710265192123509619656925017453790975434187058655902286596375424615542969185228163368450776681851142762377627885273248782836019968215494617712355332358118395537163405160807683559879442754520741365993998662041061958027138326812523506895229440474111885378925718396419000760874503649967642936645614445065196187857711126592734111371845918123621673936235734041524393412067218153683024638218074331422432542942744225752175597866639530999372835778872368018454859544587053191400943641811199681905392933871105563031799947886278306587051670835964941843201959913903178040871646539448150439093313404608316680512068105750754922786284865825433669371342414835049855219413877754597712032544494637936939703330330590647935720489236581455296585982446113015860049827330143765507428639770462824443751546843132845946931683621745041207885317540712066100263748260509975739906337452168449422841862322375593810860658784212413783867111356791177498334693977689448750388094568384490863765635009152428715210363662845554709444741527146629510573150014525887687207165560472791052523295026882701424421480548421959578557272475181435980578536837764558090050682672000422444415584181933654630191551510343626214406485554946091262962901731007568640714290933197790367892489996352602507731366604307137702060688239919249641051263391306392811202687138963165551432204358512078762267934134406848095790947695467570572545197709407182468301767424660538944950343871347905375280960883006173194382550172389465371852094749393432821577191891637236491609014479505183482000789450997104687208721011160340709126192218246156445549299224952595166284108210381066378323551705051055669793751844952284936075751680798186962987259663802617938665456327011742826810217863641962619373616422339141739955428625283854134789854174971473575033889269577543380981049554149770788427492969811733060147606192949199008908013917829503957093752769041388015303660106550929961935115631425602084586736894810564298782876223657619285839479659284694926200414054292402182898989818611343110157232429918968299919469309985800675173335120334847096954684370003425259764633877683073306386096225443990361265314123572912171316474481459519465583849947823942462502062546673051835301465553948552934301184567489299985709930789078381824906900577947696451462956665563861474731492988855117586568239969975965196160512124742584748565701112200947768206902584194110902876300334599264556807349513036076625490505447745699714798477012344041774941857221864237619734059919903602278122907321883130001676035954086257030786603331982705572317990978945902438343623572865244484604348227542742896108075405405095575021489922358314622611671462859328804691342549845096552262575099848221707795960477367235864333404671855790061912998609165348762836429207183214662784259696705550857905091055099756667261834910309118328244978955879166046129050021604179691328403510957693679023530308996771053371531199389516720751525686212934119761284357595870146545695666080532398156302617820759855325528572183710908863202127550112039649303886927211362931081001569839478804046646461383421128730740869620290751281569698581172617978752130149342576637554000256579069698741760796896628188523128017596385021640282196728962163769884107069849730520816431944075914069149609889058761961810762638373014111196804662703359414055609376823391471035714518110101867428042649860183681787987446660110104659952389123376005675786475396169764252601912893895970479733943242639875633935042263468678064359000550249734611791969900895925833446788809924450287718394559762957963173920908695049584369042701876634220904590766161333110759443729942796418789161672691037292147804174655918851070943860588834038238939639158341765732663891354540708274446281237337647256818046829010517177852615112354096257333779625591956471859714533602237673540440613271932060086150822097878285277604209595032947273619603618490167847595133079353245439112760309540070282032614047059229371457934869792484864087878978519626360615856586328283596576950815345648574394491202682948969251683451434807564105775001137618213322042065374161408404995961778113467581138737505497927122830981672197961785756402879237710313859659899841080948941613464935064923256729433248225975181965283325542252496426601882141374655572675127935611321975090438582203993965690388596314664768526026386546402658515572990404900404459336014541457169645277721360102085156506589846587474266727927186038919460877540703194456885143337207587750635897084596158330352290965860756550000940509456729809918874067863540277013974463374422222429745128276303299862644849744022723393848827166597261296651767455093571040526701132642138475971788244684222291430490620282989390453464891650056288109499175988311575693457175858844266784898358442038623694943525708613410473271987907638133629838827658751665899931437436396650549675883380569426954218303442270815584225025451985152710398749433897053824537442464662835810957499627393034599091992713679607948768781136963879196009693977095354331165005062159198152085912122406639783224075230992497764177980908364236476444980118669571226663573218087707469435678062833858908004064334183704399322178295941280549305793390744452502899006845019628158954326576872964208815630623245187636044499276034366553940115816840480423076029784004219402631253765857198984780878418234174253692522906422425964047345234356675675540537913118095467202142311165029589737315650218461356307860061579428854476625281766634279301414685490106971484132478553144997374032819718789844570275907967818409515503506854856815775621093245134315215620261993699933079167993885832947647724795652748724823567060154247150156363998099144858557972037151557256492621080862189148201587224298041766342002815344435988211949710115552898408939775307616219248771829000599099007345759184166538513611589312085707867357722688317487963598506186207382579314161888916388839121150080561191771957681451762548017358091562196786749345737445013722135610840602030544372019407011032700828646627282274723859290103099815942880395655949266823314715790226547431526876685711285307135720027164388767784600915043610673268497593559525465119363526041487051317577369726375380328473393855755719480034787665405704737222252753310673449226513717844407450535332053976820252834597270390324968262579992158492613880709710891659931180318420435697878595182407919999741242973519410039720538951291838152424840228400132435864644848804097137180167610661542880181562837372804164382061891188521426210427489331826054930253882160083147315611727909145884362240643992387708296188212171048311976112741538489037596429711397946679762066214314420102355992333515891156689728140949672612917500546922391726688337702499123311802742179246522395423749426958641819623721312861527537357429965378298395026592868762623400282056906609272403043573138068234711550982987342159692512661182904616897967487268043679976264263000822821825737253103294625697771308009601966507077286498895774464995503671588616850111282715535467115100348177150951932202920452842874279152880309100049918295593635094711227609295649794607476530161521517678028010408810373554216923270969966655766256299302775200029617491880335598659639952015764089059297518104519453185469426696000732497813411346019858802191447897199268178856423897079908005617776718066837687370057713480055129107529379014988386092064925907262981474796905212375410175980433939400726255694068715132372090279645625823795262325582678989908268089508966378390505714911087683718945388000957672932538980646604973677240939675167108323693414469120096965890275180125155296367521462469186037231874199644429925738344839899077676285998258856194283443384837873629280617933837879386593716681175088048869628453640915680142007399362080751941908783961130196471536878461795421178057302247237435663781671354958344232399748271807343805548014485447567924271815912355410030511885621718206557894063436710948339121479548763381034073511458741530638952863191205359250978113679688425247328363274738986469804013207802870370157060580896797670174817017137507501945880861499842033445938803195516006598506529437822776062248069373179044226589345037122571159566677708530983122637044926136978581099982715298606661976560297150066222520697843710982049397428344370294347368664501738993401752851038545585777187934854868929941217433650443413504291305249315697538085243796801291434398050909088273426166330388119904556670583442916133583580011492741439475343202637077422578783201856270938058978355875409530557832493639971989280935396061920224401399899072554906930674784106812270903982642351872761492851929023665202436407856963672712752243802114377856129685070401046374525350250588017002561560622013283449568474868987938372792061318384176822468451093832595707728345989009129936196905628186250066355586076058012232453512908114355145167667903846156599523956988082789660301768004692855069045197608580691453050653696994669556681985532775018945447993169302922646593512863282533984171903141797776829267080107019074162511948766575394487752348122216272162048609399937009031580279635791408735653405129930607819495776742000091711402749261806102488468031512444474591055271017766241977410688773970976142123444164304892525161575856027474328089777919193011339732188074873081775082948532003288816369688084588317945704660884712695462083922930420329128159186040890241404041608851576477203970012369386744975649261369445594043204979811413482385985521322760609753956521412755679273133479354213999771527825876308820303177827723468433928094726687095225185157732081104338245783226656623626022573826705534176289665102284982198569469124244119523972669711185141179414186788522762679119185842996665849876188022225889868665229914671406398756804554560830368147850962349110277623244093689619463439573497390335181804629528472677489214707317880500224904862678177239974576202380173238770241600635330019415997450869605185874137267547454469771590632797827607996621108537841144043088901069685101461273619332306920941236826267892521536330206971922731997896460385618639609249843253638132144560877828396397986481244595088761899395296733465907125698215957516006401037449654366239768364930128662724147823063314245064936272210277456735119840203650475189712256377866065243277230528037367874866976932938462049709857207410861603425768974716085144772617182052376109442146913008042357542979043234150395600013947944403829736609425870655966230176704349133161213396063411365865253667291468228757956390897334091084143130122687493006150492485653185066902435823633300243467414046860215889459106035370779709297896591332736611883710682726243109891780136777186067628027401329860019557644759617392265900330153889423809606041107891293290292397966911827892450584688444239563233236789467239915366599462122080764747689621066627711099943129913071537801553000758109549494462625399300577926325947328520469207601109094857430140307008822633626711715189844352990977014138019042596836324422032788141908569645291501979286125475784516272115297683403712932594570285456696850481678280811177398489093480864271823887665091644465101856229097836720622063611854226713827263213532589223953492130293309793699962252945841964573447549182822962718543002692621781235675706011235382872362745591690420140133459156719769769028210855362459909585417902257635669760416378892783477306171791024424496992256014831241677968149381556783768450275082741077513480394551032988966282992610973261218220024136140995577040354045145514019894096539415919697192362975227057997418664275741804113688794834545709014961441970725149079594823190298278365133563563880412350996532864889898959251528330131102082692908118627615727234048476611038861821853897318678522601669297672932248420449291609391693910350095302344010498340444253962170851266120830276425130238830033786883084672251568615964724703855041650299607457752392056343228690844386369525696625541392580436910842422167949262403176273009039896789002328047362743694708854016729924579970997039470901697494229989470125515473583782731812472560651671236807409507938355439415281857706192973905587329839444750710653699197123519305156204129240436271826582800399148283993969884086601314743147976864606143811348238837801039042551262539239726799330519513279287860023271594199578939231913013955516165402069839464114289359290513707328108859085556159316023087973853707322172855937469437287076667541317454114767778966483679497166975252581800629974367772407554034138494861940295906831610596884838696385269250283484393350428907934969067779513501731185794086936408141039816823950551255545175053937357045890155942174390095231032230770018655732466042635983578933098938963818188689029543094912534392310286251705707645320166269012997015536338880802173310780799715863305654296675463082146222612243474669836502840519286245825505751243353350565321187840133070555080797304293407556813003813371944973980940332162912133435629640445946873279982078713748111822800129430589537209530572964748629427140438658256437814919994856053978601350431184046350173967094367538066858295320466016529313387452495703847439492211801843081017549211537458834387242528111042270053656908902235721804147265499428386754227065853069102694107589040991468153743575750384790729081877974276637972202133092779034149320708623608620538321871138862386705831962045612737313515611440003349832995938104873042015034477532580384574923995243954677973099295152213003713229052539568571738107160955659616229636913073209258698527311056770808438251550579275472317191887602745744795167203230402477229132709053837768617888591128626930872813972447750865579530467383120445785189152144369505503034509260442215211399313917570707717605722506497671386944532400153484724475448057660638978463396728738364458688411614830215162868901761097641812810182483031386946892942242775347357839584452679005026992027373293669669150992870520776102537385416863906803595756202175494065714450968514471062385820435047828985066209795911981973782914248100495278747874862241244211190416930899316209727366141599976079702800810117588206475442884467244433386500414562518432774082185795558235231609635250180194021976363949706061001030126252231881815334290570680270177543554594145969829183299166804801924244208488252450149596225994252999273569534085936390601757397051033106997008173046101842172305197369614937514112611841134710102734287544008076045284543911285263357864535672471178810139626640277815458289663855080724147965768536900860859962138108048576591205645785779522969829493916816206852843491301797255564881366038470646176206882174702049096820590533421293324969731294543904345710446225909653300709041271685592601421375466278417283132047050023212890956353108459575418006139538221813736468734602391371471399366394695069447082579084751633772513822600471360779856322608195037709383453550757819606094104062378233944864445299908780608257934184639962929083893360635970258043309487305731077812689497731632737493066552665452320534174055031626808847278114579075508903115434496745873381904185369691601008765026830382378943056535127147544087108895205195749107252768109173124571278244997187118564382605771143174215260067753908290463178353074760293732403498447583174495419507924667891506333242261721389628318806009597205080471999244427156268991285069315951627569930694115004872295719139140608071198009278498883635362563529641124877818486550862398416092585593036846831865978679242747935038654452922288729810962689939672260113964009159525567167923566789559128026566179522425517942685587565791054328748738085762883723180898728870750991791637802867702722361905431081143319254528724045118404352408506901655453362407752209484411975753939862087783268712788849230857128858149376280353374212143358067226879989552740777716676744101072331837857280690202395978457083738036959231998596543883106152435969079142164943672901247232119493126531654029756280999019704094342331771246025365596190868824485817367193653052945055765085531102607669472851986700508590266743940783743750619317618788290877659165765907464507193626383328796952071145519049960081636449780030619379705485328567418593704886633877601665845620277853114840997435706521708526660249697267221119128496106589778480317480722511890963429116508925771471776174280254801531002349906314745509741078659192281693235289757357848854513241747768042847778229125295843034363404285393630582510672767730299423399327934535438947197969193544809020044463985613644884825346476865213954308028108817021025005721715456075204114101461283774815189364423292037835999024561797823649593741005132785452065546314896700580016969885322411532646759060517272941063331995068111849414408323089098681229008850833841651145019943176330052139420764120361633398412704651217835772035302195688199212288951747240803756916105292859572771972190628282893276968268176030844351051976513506052338342968914501012319903608123608129820515254045819779402606498067105929086190382693473286737039081877650861890534716150581986922669026191971170970704883160584201903830502310504579610281755529597094606865036421558898998432121202148548276300262192618394469835971264799995777342782958804636237850087220155780057915982844482543856908834249022538905145606844478025797049065179396598761153510217067932073850194867535073701733643046150519938350078982552958194027469997455002945748331851443727497651803145223823238658629364699837007508015018509293110244445362405060774103810460836012839123185639800446356720898788521771290250021790953347630678199414615546327122938550038902154327293490807015667804291599118869232125478656726871244579307329722869878576213980533793659793474324397164503087392552049572840088939883724313029803106516811080979109306454294437870068264392311876777545234776311366693976880476289169112106729589754087094588522633296600110867514355055332811064553692392263781919755392039315266418149494632810844095146248594233161627981694430327251245284937973495827841240790965581661038424590902657750827942702947429987247009890740264848165280318869898239450849397388904937161123917774411163735147567009495051998805614425735378450731502285514293782962862898710485773646584259504101000677067238006695168604322482697227196987265463855002172171072044397838708069029059269973984805243400679912675055102887355658958846919731062669236969006906383471091610018947712866103494918581983465574786881033969138477491151141790265032605051132744857325080032498764193467432549195609767558114076857362697186254413645822547740854805749500432139954543195128068701713866636776679629093306740126261900251746810351576167384751882182839072173217702441473437338540870946054719582170716902584276361955371258627403709099197362137872289383725970236859030662640640256831802942551024279672333261757953125183578149385115233430431908231803093671874937293567526305530627240819859043062034853550882266006789537091872573286742623656025547645847844967602579070689776673406078455619783797476457878870204899304669907811010287509097099030373269482269712982030659443349125384281614433984743040326016918923421682463793451389022915901084979064622935671721919965777644165506765482019355503844367247725913315993255496056137245346837020181488403529666034751100039459255769055363741904174699496098427079877280977051251458201737013021406179212698459669503676079839061176107485391980973993633634760540121238283799607515879514888480392556545655905547105044378490256377134137097448154498144322958681844548454113145259386592842443869215955449239841492889319195574985264692687931806508975970981015248806843606716636308164392934740366276355463360538528845481761464345031154477607266744794217374273642411960623019023924875709315727190414774813263546178375407961926533649722169995221619888228731649862704146595286573614873714772905942076603880514881541989881135651451395792392159926449922737440722836934962592808379899284794864237664505774685999174868962622837467167207350187408018175660364944778701487321502605346265014367987658015736013293426104475489125195248568246674270067466149267340852914541666983983682095596981033492678543853698937268956271654974647819499518240650521977645428498291045931703965830979813361730846960406290775472507568824314156694767218694640189359293165007735274357638343833390900600819131729966350163926669158617057522972603459881513811939851045652463917639298447117358959774679766214386756350375957205008321272846568686292705862043116046938280250896956905503949247260459176496494927782305194173557627173943257881709003759706064770455404864722852228568042118957348139698053219513888974518666201737002872523327964130145570336923434674882259833903036793868725219198430600165081123122677130595129953158152104859455796676507753084335973200093664922493955623469030678105328682844492745829606238722988259889759911878737890183128071130325264131129369928201093557489067667725520735879310090765519822317124635725528093579564971649084152154716508522581892534526023569696619130147916895964774741749287511041472743766973943449048292831742806245716210209470168304221292489188171319124739701243165681490006416218267753961294541073192459552463705220295781686351352061355575441273378111236975238889799374879769642157433315455089959430493939073643403816405650836863136820377531832088235650830156288178132196132929349053706534616865504250947510626731936100265063835513589404426730409158076032833502946429502594133503414511404812449891575424262037463501594966622925520913159545363183333081805204080890689006271510081785268206205254889442785756638299975725227844679974725428059931182341423083047041647438502361887892178826803167696613971400933557927754681561240873842555522518873104718398776123356879427964000108268266014552456387512746039337696129867830589967239083704254935203625672417818497578775157778587823102678857527577620756078611637298894851106998703665370714953139578754648434528391574458878063248148794442737228409547236299892010043804688724291637509645427269779741897967963927475873533464701846104809956564271773102737189937984020788549853690817140362400305884619625983738531743579173372887210274514144964155482934667082044162792109159957650829098309029962662190136178248206499537225567782494587537535192969207330193123901890708217279481316562928666866082569770016543560099148074045306355803815161157528194321765737942812847451932689364638252035331610699230783686818819508248752307095102482921178128213946730670386374332822355243261297112294708595922385335063381051492707964918133600858959270829508083798617276256950592232645295178858309075129414864471695685130442636892745342784674025712986638284024384212167260139836208730365672252658849177279115215165960035038090202611947722056928079513035118981038578528053610333099360032282275007749783282967203929681358659113732392911316865170336988311291111528349060706900981380496036791790648456933786080570917123392324180977275936273182030119779538498679489828620099400909512475092835615073719121552020425527101040124217905660249300696133570310844943501013361386832632703476440328218544642905605798819390204616609140950929855432302515615200658773955680725978972314156157379835724229752409909041588687848448528510993086326301664461102676180211124196145603366998135098175295383382488408225412711493321293171806877069431627455071027238437877438775136933022170412778298773408723212423806926272815781025795521579566970851854027630912243772196803382368562521627034022390186062225347576194328009022904942813218215206555662300371334205133795809128850879491366357649530781021481391223359945213519521896918468797386605737995280757161643622792437417382692866406295916841841645511395274470917040138227058847216707375063942800647432344048414260026263723915392799220315523531720644962403448064086676288833755205064466022649189420252094721788432638955153082411394132174632120679872941687083520174260027789633772565305593474905351238313446315971738136632870307153553264022720233924645649911263852504153639801741415973633969349715079957973857681721560604772069045855342152712881397198117061660167115105943816755548100739351703432824086998283320057747394987037933160775342706464310274903164263665025630790543265434990550750600736811182642958360057856867489079412585894848138366479872225889667686916786849545523840108913705663710253734522079947720217610355145344571000475536454539756734923991777513169907575331410484659398569029212153029731021077934522757603181835971522953723451108170614502960075444061766089085916227397807094982796629450251770595018230273320813970342629294925078048494969776676167076650726975745997359842028125929879701547884606890304080683577083368229287392571717271864666276362508005228265690675525802650786140757204159097613178866745527085761331083938611839437570986772532497075130392579559891315596895821252387666834305174028044344631838982791793795350542268382833130971433286335562065946240121989863201128164602956787123922225825196820363001243019277655202878230829010766514122114082901703023136624331343886763889334394107941309018604289005932501099717036951590196230182206156363840263611590547016599385796785100476758118201507898558818317221941395929484658788474249280683665332845345338160194608909983551604148101837113806820458416654274150311818434716336651278861826397134911882572128876873442909682014804785037895751839409994402642241362078849494991835677052479447496704118717141049303888339745241815639014725686874287397527964367482843727261817760241682856913542744068285544024959263919085038861430674901028535925157013655359020590457923334695597527083911332564433873148208719664424524983453327841168606734895632633623689944771542242142791882330387635158021288094131354814346231597145143524016459477445687639662238831070565365203592055085469222797096260748794789892702701999954676294942524753308890885785320475927164014370956518450094933711689478323254133490169400958762267269209872709833664960255728336818557597125816549084111602094889089276791355132065441879789449229636223494947952028523684873363304255054024503737507293768149619014962727608714213785438467544489616013685553993048926767358043234670141051538715571869661154123112343589018103886374895641298196066866685540650536773008266739917200568423065461499056377771455595145547326654680108947723474717111614815551852640181793621365449438571466506638931749195216464836842359132777749354130954751437146461928845494280623866619137136095137563728475409996084114963883944584961740125783467202721989616677327957422807932800171220278424729141910126988144819081867446750129623364671122622602653296988315712620475638509050756225465226251440477926599269167630632483368842600442829735222890024428580866059102954834750806408221308587167994064330578330467180797770094901925904353007946620757770495129623051848239818181217919085148784932494739866637239751805627568209111711515856463171115792975271793803182216197388655682874768956575211770945680043784768436950617409151267647872814406562314763957329921741472458031117720370211436287740138852912086397569016542874481948998201636333218971757338036512115348377523656735946866853243291214834512857855881341742445519045206742788537924311569798715086661321373582422757219636586982162675533808543072867010465386319799302187020292152756550702998594035125465007971281191716112528615889277974190684601574260607425542441545984097489660420610274469033795595226182720451172630067684311321792120776510026178301436804954924021752012291583874228646382486042946779534734903838488719742546379302656600155381966419974311302888417244079478177879347875967578705915784334741235442905217286091635052458574185573646788129995588813127645937013455911802404948070676000723531560981779069117713692969266989063926813719536563026185021989416002083860224743679166322339022847587549034064661119600529823314579193811697157968377912873329897101253418327981551112147489949648772086457415767131540549821302780541215589328489414080337043195715573643036451740816396079512096142175239529040931775960893131850485778368205208255083675675523089548897328024906400340899584694265230607847888093354986064368380651820971475356836655561724726319698986447393908740889420544377442356551352969206944103403762275583036349073560972601336195229575217424130308358142068494604327128678516233037146823575485381451134281022660938083060421850439828640306255215701479567956492578127389917174430831212928449551875537338933667179059419033136321999265919609515880529564988879200817008973626758100597437939566059604677430479762636674453401572545052927689481261055404189608427122023422372752003269448507283134175127365742352946369820810013013115025292332537132950087451857594866980237312478046219068585068116108521916020987620106658341395740351293874601558431073140558142001105416570782397116786818275559601352227974596765041486787406491598054964644058168960052269285254567596243647173148799307580841168959498536791644219613676972565467876410925249813518479498409408508017948054184775432135450687947227010094233137327039662126347135321193726018972175676369684049464167162831255362890896939284460377427449864406421231132138037162179614107174662612284270074049454378167945650472361329568031769757524033676986249388790017216042229367295804406760605413126646364120933446890982655230976018713067632705459124586425952240239180449113932977622008622582676254766019457227978938149932646052609151896372431412367225521565704283190103644411079781003809406690555331906545256339707916505635326471824002207935047547525157344417070085797238185022559399466534077676691108557473982349011719274753035252718825859680731793222924014041600380355257927434949127558310738242584444741182246741242209100307417542387445742341667526705246127265414120916750331305774663451425371637652551728167013507104862710288239722999366141881075830320850467777947971799389592835820957452807827738275228224038190723570183971065530660043075269518617156344946534561364574233781927198568928199685604622739805327349387483391153852835173178519011134994397296278829374274156231185912361364556463235316146333410378386353346859984314510191575123330543332256240680312743881128932217052913081814095416173263187345776307559725074565712279110309609486251066789996568244175639183759731919130763863935041831465308768435184706912816858682884614038415356925684600765486654851201601826675762628559284869269483564303899985005660551003045152678601234291216360714484721958641922641462395255974330686699480105579344259178293271454531623748630098738722631296327872776696376296825602765134653742654986468009922115038779462104619054568214397508777722785916761938141210871425782116668020974654692069081419232762290553063876535660581173805413923434453514352336149189061268963378043435361817935224757002112471288480705172998772638291081905418828744286129857983395658214904614067030369269885463472864968282963584668235167331976921879751506160424276617367425975550031666800435990344675215662244161210827492615720040905247831577110423552834522211071251608786068235386756324785644412804373229561128817534195540521559906559759385147947322330484109831682798315971651121430366254800777051864283940295938729507461190500124170232080143888511548692125274876208001985001180976877497049016363449094329262103222122951847197853735948016558913223244069554106621215622386938385021230697977711383290304735418216483797626962678995143785346322337785393158532245798891909913604847023253255314297948701549642158347510203505689959263770665108212789102031486366708321541905617080134689789393581985190709974060410392451817100722252769917937015761111591161172594321359081870619844584051475061803207843752763890806782859244894387291366705347534270760755627312969879284194486227239703678212460075096493950014226320505880724140186645222530643770224143527230734292318743876608318444348422142171250635631572383442666352267295986558625401871668838164120588051742682440057716919237179396173530489617954645391888553026795484178604969952162643340592497447386237164936426498415562615944417853950569212525746747452915770574445106324023034434441764253111910345271296485619710436235887623161441619161504560373712661076016572360722535670958301482911775786990995757993807652089070227817756587998794467036253619704589904418389456236604916455335561573016105256113436925976800056147989986127159736351778426021075852688408007702002208138202842218021023988693034934427333302406742381950111717403849766014494209625258449135817144375357655792469723407833399273249086130014520379359633405508989693980677482365697844729463273967994359815972729487142236790405125657329302068580000294313053060512736082122154929421360261106933997940007993415458337456991368546819613558866734188990066089695552091654407526052366913276553075181024429888309205491446405272992108128274651377789995754695968157469088052445423110829721577499640348297101339366631748978677777752223377229182938852914558065533927509303064691489745343145219660383470806798204880398425829211911178863592664022333129748577214850184663231680291753811324519648266426088334530796071616680489376164438847838122031760912043663599411008254267628916584172998988348657166493926607320475525386264095620945702462399425654323888671792748136914562245041506466493907000652568414719035982591831084438598728319563843390686405094025876183606392540238399114626213013745954193723392615303355040346578831891943247633734860546114136647241656416189975726185970369346717339992840891277220532147406226801900540533025112556478385753931574412842911563185932637446923136637456049579777799558343477193543094574465531509412913551955207674276327317871066209386619484578384490286722876553567030815016454190413293136573132023544026537278277881938151712846500427765585334030942272874847110206010139252031080947593606710229998417954467669440346516259348911192853971620854290338904199094204006354284744319911697673530705045000010568448853567724533874059906117147704564280212457922161880981580503796139804422661144989085050589720520225222726924232278579330752256724753524061604328486225214040240840915558511900732304742982657106845486069964194249594935940460589350147962526855488161120681643373404632146809478981066879695242783331818622949814191610938984268494675682858647035792257985244852020892596099780731276989856355233017754847847027941458859954144400486444558437945259899907070297589706492601571751740671403195472304484500398931996218325869456984361217232673325733172990742595358501283674390981202014090481509773190038016782994010423189979079997223831516918821371760083606176319222887761790354414965769614176647459427852151628449176665039483179312662987884125766209880599593060208622871994002969548114101779206371235149746564620200393685283321624580864785305380275121763337662404768065741636653599223057365463280462025539084894009929338435969214499975108042524016196046240976825460735487521250613379812114698199744845031419652374246460026829280462159111662708330930175444359423379969472564878227513592528033090759655117170744283273114604585215681193473879799053386792392885368177355151061124802374377772093382638691735515565572768370369302319014466452260942204973050624175803518371039568632971944815172542452783142966419681495063602477020952636617024711716599140061767228943027331478159453877051626573453246806067045503896089421809553865916133918708587770764634147542700531613696244097221017191198879792227853301816054971491809313557151224415213604660342714753349488302034059675370983299889361347309140156812331993720053930267073415737084677120376111863638436569585627963796480730063167890363705057878437500028018456416552702989567835302365841504901679344816042804512485750935438497474686434328579489112578627544815304792228464957220184814783761276610716922956310473570253565705182526869617011240781231952157821849366206233327588141033580644220949397698190640794281592249324437793544179681764599003814314557338395663307050760260600644677712013306865608686808922314143765279412866490363924817248708821334376419551264846077704649513776980133833176186816900632635115277226319722199254457873157356666498914855105974425260433286862604256833281550515717503791161075844957513239695591880511145454639751617715465402216371775882781553937805357416032219383149987253039346311815546676800010622176496389218550057177834191587659751596962951342719699625738625772863416507736416500392450479925619088061844690425555419061972539177617081275010300855026241531656913883316676662707840076740244793223541093366876303180565408186028653055519314726391971108035155957528534501224354968519264081571391231764588940211721775145771873946690392196606416748635349708446163653265271608699764663379001014045558790992473373889703965562756917269799250638203704126907734846444993668668921030626365107462657416207227598596963514716869808278186192314444308880654728059694638926110280167496431940184804737242615215506931850941924656110934557674238298760435590736133627538391430490114821614114725062967356051660408787091068598831892895351365216264320714319281631434264322834646891369271381137495289260458500650776712715847238760100957597475406507281847966658792812267148477736199561065662602032655544205139902284903883323188799186210328611608844360803300468600466182853779347708926822670892166957463695545352251327103841514178439636541283665225959174442265148350771363893524623939382009122434064308619579758851782279031086544373012645831901896512547178439904549199798635858130912656536363365731446212648404129341759873320418836821012224011874748923680538460570189365745867108319165276838209133885142103664069024291614043956332429150532273813034593881543037351712714961489951086729641591809122773057170085221775938541427675538126361941518079800782021626427458336941344556240799295051505666661692889539381464516084128547003100038597408172381385584613307589542866464693636164626618864233117816569634819507094679305731433382360099439161058093408847155465715033053894752273233724091027672059390541192245315973191420234262324054324460021604251331811355623156965683326263424667880620719944045190327290630949120059095424708962006571467421128021624578975657435129751446674917627041356815984220678062217555745692854709062106695703282692162832956141318204881260546545940980062276866873670335129651369961514374969493274557293853563921361711041591247942646974156134651559767079943124635032040598887090315692813786494224101197908762859873213209868925271358514565507971789441633196969150503631750325209875272175713083743534440579336401054345411103121788029284999863304550062881481345800204442189284163963528192895347494018690750009637189090538191737190643253315677547540083302585456603910290143899458661284728977970855631107060260575928177753035991611521830513883025597947514712058315160705698110605362063645874770105902278224711465767429252844823932813085303169312385611656966489368691866264279870766157342855965117674905318937509929810776158050628550897710919564839969862993576171530862142346501067674746589424501475461964906093021743160925494255983174580995035207064104665667839040275440095856511528986164291071656128194110749218974458741968074111827914293249341640854693167522860868890837936018145906910435243864881207505763844336593175783851603937908278350001611720836283977105786844105747301163356266590140354175531640289101406098917058344149359993778922613968696238579136008870688368724726380160120608970906653842630694843486214447610079197782434013226601496577523217943599491404585128282053532042497571610327231755393795902334123266110721652468235927863561926491986867903149178504950922905743296259952897154915807804141789238561685237567863331234666361432152083213240071872266875468021195103529037009270127993639858773948318175668843235386860699632533256711766491020956487328753006917061185345885483146789315080722440102244184404753721941284070401208440504306089488946218064691822088188199909010593476028135270220160584373719270945172510596873452796535159794561801933889566045307206056756131157165649837006096735715299441584550360442108162241717938304607296539410228840111646053159300299811521307211427069607839161388477550627830978034598988912810925191508699962239615649293068845147966650505574860296192668373691513207073320081159821745662358203492384733810908506989381866913652062116178153626796803993009165971506240729252111974196512812441316322297863595253276448134909480058851506284697139934705920801315420715507250267436284978219428480238298478800232868183792556377197494069751655801395945118444527024152368503084585489186760183658948322956865146069191953215616125908430949016410303005539197673247640061043287295666671528468425021324598059256740305448654193525230406346919514629461921845612423463604840506086861139421972646689406289668866972112988089517782590424918106728405852715143291358238708466158547864729831853632715805125026603334746673651896265908170412503033939052703297038023173707238112632451866303120299736907141534614402434727955428377982262232140305021599684624185032554943675469902359529478702859080460809052726692026984391181554488297818800426454850406417588820025181707393255221022331181506106806290271487682852391982704401059818236498199730608034336488143116838108119348855622303407066135155683186055345164375622416592677647925259964299252202202361372203127340553132474761765137783161382029901881892442827482916174681081928378780356754212274496211517674843587099007493674599984531517335193537077321897538256912245931333771244970336574467402393182223361187725248024426660416975500520187591744501392505444627450205517017502792655274780894666331444256508303351669818267341033359029628504044734373334084088785608526936867185612678881406405006142232027891794117290497502208364741002515995755686320642529252098970166415909168269024385580501469730439286769332668601743910610694765917148370328215141205193067352523976653763417886899027544980576345561838054019991622765074894357023058468527485249082022684223131897131507091304012560615057358280474322783257339832269984826816714987409316325380356951290580852677667893119658791368744720866388576350666133627094293965456859798222866911524664620482800256636017616296494922832444298338486261756296394361177058112437158588907918964653774307658881178863373192386164349904648339236761069603996247689411770251547495847892944238536643564370421055090964242950984640096103296517120699030474577284365396417776708000326558661981051065202755874262159923209000176148444989515842143199979071347547017557470277239940677197884897780553883939417986635319818413766701642181460546740530988688221412251428805419004019000366908733797491886934778959335162826846003722965302405066068381445119539023715987105055167185391696179943652652890701662481132376296894781374300262653943589993649148388063648890575314131578647500064022828571300162470734794553709754608360418319802678472605704144730779538043411154736350023731334898181403562559235819645631230605236339924721157484969449361205166377155397935336252185654812863815297001238334485754162331928607604863157878504493228233513430980201361586425356935467639252675533243409668758352515944210913815372512756300885476840902137075463577819719856627656283693331098155345665009757200983941501492245697745995984524650470198019244759197155866494239028578654004444922131708418524058257777705962701941461362939551203402545108016569628668396360334188083247815957283141267373418732996217217975175895969767273557024687512959092869193502191592039090675313605138692135443747785535737791653553093334922641456083366583114512319365349556648256481901509613759927497456227121737237980701902039737067152025563924115606538422591457296334476134652319633854014771492675781480727397750138177528168878142290155582148849162073379372499635275525675678784256452229552673060096377994177833826083680887450396287874050510352203917009047283704903565476428628502346508688041223093957586273528602512324134436884316597199612954342207147349519282645431398011802516135219646047795774337080878311317210586315122674426897333074928081842044414864392878396522219152460524285740917005200965092364652923712196624998952820728602070220803255527032204709170327586514931303468222030131019460080302459243208018848883419661551022250673783052722444563116588478771597503394545191665432290934161607193265405920556284135584129915624447844073393992669696913341499824893393648496329319300577140322795000849319247396548305393586797858447007014764950358870590089263212452069112821623312759758377369825098768099517778149642843985251194946308326875196890794351531710773513711409644430901608575862471649045821315698086406750750387081096642639471803542874838200401685126101462647798328432646354087179333484325072091741132325561241087203591255269013980796929118872140582162187739291442845471055654013777939949799735230615180425262547086140205648367688568922340430527420763719815678878687803644653388172674699241116793635706991770510373380364088446861364052902695512297234304210026452320406957171520361587931005923514231899639413029077710783207416377014544538241899685667280551900044538264370233128554813258590568540474213443418213751788752278825184634583982801943439038579153280992988714761251000402414430576364834747909395299002995149432774308706426448986277919766293991314553909328981033777284283540723668820587729725228087716851355332478120931940877413593570016232917227699123690837785707381732013377574154027241183336530726669170230894109521487869587982428378970933584950740716678239587864543268352450572574732647221233336885369413194863098846320658657545932594044093717240458583268591334185774765224298603165689241584865478269078797043272549818832047393856394109471215290794782891519999809787984230396743841921455792869769948475295599319566040981426358777323041936629593947889603155963772619500832630786733802341556499385160867051208601710633705201614697083661339933698758124354913592568590630222023663138100799353311294826768049616488155391940015029395578327709990063687718530227078859586301677715140930505709615613860013757024982842111447503497823475889692248865330450372730285016879874197429975967183398282475801548944947941897611964088745912368019379680792898100106189485037599901753333152961923279174724942061061372942627749380565933267373409145478045330835233331768707565977925119006613644413400612409297482327463372053216939244730049154420733691964544167296973304024731147453664995573876265941875611073797375488872856935414266716866618106553500662141135515146115938602290745070203063966468452268886604396472572831951141327618209332146476575398205389838399299332800883568007565014457955509044564564621208141451945123075801622517396986028618175327641158245371781649868612919962725789664308913673397350113538498141220181351491582228410938808486998455507255572749452151533645691016249716622483029523067772848763046334959932663218019755118736027452977161253431562095248440316652773700521196131643888717690522076501691541920027387516505568125747512985218864446238066007925018561291286471210954859526894624833223938889955230527701929392455249901603380938867178060111715511333643895865657490141943013289973048400022330785157530878204653382732724346796129599036167523296093952689231495401408282067317986348764438008822955705674116750934543758682615212953914078884339557911551728768102245829131248537183945864517311727676415951029295023435179452472302222940790448838330579047623575496332407521910899100950959687368977011154974378017134368428007689424589694836712601120713957442345740382161196256228725010706666466193942056340138574809028930591950524951704268559693260984790237233272513986547650202905505046934604874542266958505281784299617125994933496689599998907196402290026955726983519358336144344474348445305434510550715102126137192763099502193660525257751585083645238939202372099271127434459958607369913552261306406363411602678497029545849502579684579013491273248890912354516500531607123492425352019273468285186910499501503736807950251851019221343885869443980049629235551775712821579414358658652446522973334228180556575245348065253898102127641515244779960401744860603089044203091111410309612592684590821487458467701575089768602385313893377214349548154098848904754885278295201672208953344560159229016810980748665819439469875475170268687870785054447285467769818438606611582286714607479338388219806536856142471700476829204903741279440828853026550006638841465739422429404900913880863407058876847632568144342733926796734657777247204272889046869105662619497797923366109467353504728366842721198981955815794927823920511907843383592751400619124100176485303188974906981453677343131487004689704200739516673970141576531504693440349069518017248644222528173483623656706387302474850383779835803472036269892050498495348811655581682270668931515926026766232212345987551476346936284711179867403019942625233601709960106843975711115709979526812279234670025862769624662872387852057488329905847782003526254366171017101968720678334062229911310880379699242190142868477661710920275045876907470200975090727730716223250681045991827528769549154452405032361474887069338851407891858149192546542665600203663091472406157236762923501020834341481265707496444265933088817913807682786926920782511250038116787118811042904794221186866252483117749356139035181415156831522119798223743652563268470238739158004212938894040036911456023509133822892675922633997623059195666498018398888593048802595195130295052665087305943340220773089220858371147545260910129361437175845339620228754786827981554996074867006708981044331926879436160143969626823184159886604330211508987711968845047728813703116380193856133311201884820485843938203578398894896568495943811090197287184531255143380262490073675873364500003057686083307236602286792831243101738676632239896396278555583412063586437669592029906241720215029468496742649734260405695310919066498274774219997689433084352334460928940520137766170962715382610645780568967813168887344299684315616186977771843049150614349929626200173608845495071871845946384476080274212230822262781409986998636917373379575177751954329461718612767102462128572445867839651537721370509499853794806171946449737887704970311542124164892552751684286817453747070610016651661824929500753208327622357588416478765320352254051988946962943742889575093811782934251853061963824477684572465384253475507134806119744658242599787601300878444928557756297196699760881960754145510066522662868390866092094008952166913267454796179771591094907248219360803977204482010405256125723839346605688619520251849436417380091726624695545518244561936941567971387558075100526939415418975034090238854862497973859994635366313054837417614184048167197638964354697651605604238617114739146023772436528963434464660619438071460178640889769235805898814339874044854263355507745011257563013509975399846479012129262408322931422175483524863757398067816168203958091753000793519685200125008595047252544461953972860546130358667074658346603841422519765875176204909435125671740276319692182700997457704677699049773728230825481739190837361755430359251864541132912768979970445092941208530665459806147934346788601952440847287690862384619485964821961679717232797748544693499347969266884930350756618996618979817220245587731519941731462268774645869142116317420983662371153666278100535763381462737854006030016976854913196516710814553305597549928458456913059484154420089167398911627555350308384402509685710574587165423559893968850191573623978418828322076686249516718922385270430018965175771620990903429510812603355879206595538662988304330184625486748487858113628548008731060128005340111693651958656339727197671347152111648077362699904845006327323569670127012257143126676819145248327183800518644652105832542553068707522997526679761872119885069643194198155407545898644147016525187601584934027750705492996207377738890892997376870771479088041972384997124733395223315519585558653167070680750270042923763858731689591215191203306489511168435331386894756993381183108390456819242818885940847855236733039584779768236056946801974937199911043751227900780167682325271169545874529874057762472024412951804339505116329769420317110632263260911409602927430287822335621062687580473307093093317748513242351521572132563236687634898092071797806964333508063115921868942565789011350097207593205827605597890690406069201005293185825284883493742755762688623779636310924308554154366265293096634784029056055247205356782104261391107809997447709692476284158845567516329724004938609584738022654997929918427064845900894636613711199315756077708324401745396277534168310074045050513492976784421855297507373554437956879042963272393817972885803180763611173611883359536067566171213318565773960494000694708862876323176417305049978419901495802413164698014658506490982471526270512277959143319331293698774209420744488246672743520976890090902252309311161888218870481651736356156558152220696931750233012302928970859988273193243183950616202019601729885279399962122665614016125748850151414144913331109965349388354901855615562623233811477065869903103271514295653337082584523147305498248771398740001259733662525675732194824731994876714726339093395673071654749402747744276881059411791298224758013254167510978649736321222649895079822710809163645423679128973335152961206029694159607992316824887343957930339505261805239675341678967078006375337065559625333783602116791886708429497097137586338828015564081448916643594042589106608490359536282011802200943967635115241917438069423297544042220481466322380911550956741301574229239470616339155844286107975166599741396097869226905527704296172220284767526037035200577341006881884934617984866227099335212169634263764257528750632400753120005214588991288714237491866447364417813564517902201705699306199244433067818001928657468303023311733648031582360997130349007003262117557403870913539185460835808468321893725943405073080270791083331066964901191891095710994456831225058064644510874772979908629346358438238785684065421372699085928613162569466339613465145230389857600494847493726270365594159142382569258548230909850622738963365557071125812026742867425477634861722951973136665214484247037358001728289500742042526024098445321333681914784115506632470148255045543364443370051146326711969929571330122981356139540984830479877809264142871372806034901106923394972818984243979843561265698921092536542866543956702454977588736801943435262496447231480033695244777532808870654993586626867524783344171591807008342923530303373131328448850576685936588922624941699394228282379790400499377204470995728112241823188497722739773381134788116353415195893530408639985778219004927267937538124255787736483603326421899523186131679461900814236578365301876640628066288632331804150727091075931439173512495076162763428432722139557258582726851023547880534819872680916370062021167145313186681852508373258157642770039077245572117406366226225604970517712236507154271412654988063104949641253083586854658877567417668795226369166675418630362302990464702003439187947541745950706072624831592706166005867989772290063848762463542896417067720590209635568833294930973778966948174793901332098581590425383032846223672925116577287194262427855877214806905183806843402688151314262272072028199420715766007860258544951098512486640573174918733098237861070311974657034304566907610258504214851576638531646798794834333484491108074834239790123141119073288887735418016214169141049931131995885004270599483220176719354166202252662670916423424314606030399716917141141891239418850014696744111427804878361062536283834685246334686772069445547332564587249664089414078233182468992822354327441607025832669442127401888314264408031470591277538014528322877755058693060368372636593871966341758921563760299068393541244008983012738593186572000327867579314419207357148975820258869639825751745025205995618673784740355223121589335090761887700147526167374583269776076451781960894700153553484302572761992909265553811653775750880548036363805369441104884770643024811137576107301739983097601996115192330757685217396526440556660099006141007470684080579240666499455848735059680536457386683504271631951495202141418816922990241971983566381476811089203323892118950069566599310045316351688016056506289914369733714323353839013452967659053139555227113587124304885846769597355077571568154835689980162446801955698443778977534002249797561243161967825251084390315166724573210305965080420713075507541620171171729184638528876826130195208009445282718936615774074224898065219064006310686788442382716234725386430152789598613979075514716469922436743007117849040007680336211086846230642811449934710374431374906502718059576282907179709794909893298671072282005891065680854654857880127088984553897738085954689061649254870573680804393326141624884951542051103448038644613647623587976001133449174587025783507386565905680524231116085790876087440846071147864753134204176810923774152270976818788293019528478328670782508720935395369951964236562768030351185019590255348855948347065531125435100730306046562527849944598942126864539131382020900690884580482587354447493554671310583753494423458420135362204922883474620479477861239254483604192507882226769224974820941640267756828040462367117771696370665225768691689147560193945139440204004486911920052413696256544652574110252469327672513641213703276362540174824211915514850771704959900777913584172244759463161837487890270285822851405168897612002635508290651436314932582948131918226543591763717760786192514120691986988148952378704770006511014900790579633034599004742501853279103551904329753535341681683993305657463800391406911652260278491811756172411952223215292176397814318829041958833538742575013202060910328560192231388504196126406733746738871701387389157741406877043367011824293342110921214650512251079541522954505342349704536337456936511725052906853374892309378279800298094311564755992743785323084198555117624021248239036570138843607720108220867661824133849327646502202331037743886620800368021940523044766640915064756875053713729071271563212174980888979790535232804587473939828630901073052326207433759375647247666460911370917031490384760361947463417457534369773501552324808204625561402845572678824634568249446357554916868741317510315054958286410853528650169980870397153956876531141422597240696988922896952330175601472692540428912330950418880866954473378140422071476805356654710549396795996902698097940996240299205577441019946962906362716577278805938583007006210061641791505283098171039589614660112543178119184684092996761800067982181132391695193133612706487033604605087761429264338728304361736511062320900477912479799930332483779050459864326873828201281159742259321729929142070045874672379286375868140082109298824932445744159028680596993085622201331234745490153717658777246823278985142182839250636186517172246161118051306760444941608902894781592989638141999419552855696936619695197522963397144650538518330922392382489176003441625806915384834942475982008478377830466776306532838177526731708994686295865589606234019905155280518553302854077003848018497809302755707360449669718437969119972115692003036731902826404476995596854259945232284996684728230790501580553285902700994618266827848464166710530691024135380515886218905138221699461760355250204853914026778517139865888470884395767942345013345972641393434786597512601311292038086712118393262229615779610598453268606784610660972052218577493889021664932593867145331161811153206524348594779824165185128590919685716165815971402445486701473923120449624561121449842889919594138701995222493103695363607874129584218683286537626600223155145120205165520158983808320705770862852962241535427546676313936013125967503577773672290226837493822451853205400392544785007276701583138562521146261430442953269120966997362942803847151990493904349971777858731838336494544488622398810863596028188102660720428119562427079972913368392872939727171255978979855336841409115206929755285173152577586831100509498905571924979709985054055067644001068325146110337241438762398602906402228014759238446592063329107275319162088286672799633943324499887475347990411862163835678353862410477040850022949386918633110361863669503859310449376090359197412596002496772224457450071795357612161753086598322622033526267112066739278422351865094355656129394087756792226941465461677345795253937094087620737834353288075424195213792249526717265247815469254054251187699894057205141292631637449162822490415334998917760132824033215857498037020349504500111811053722705995586059161012655670869025816227029380909514876144727105678622208534304398181716951154266929316690194779871101522977593066307125045741176486050114943289298659497498123603752348271517999773636834502041404972423516765536796992935491087191312943834637848476767404328750458496936740376893595279619159663176478817893352382752232943887793396749294613948693940173587202684429143932742966847248807058649272940850523404520569072210175971411096980719448092411375306907326178410489261511621551536039386347640689562329110602892217667187178874133926580864532664447600014650004665773233506950099822600323786423205875837419283082248009205950159798123304917418613234305787770449795721935833729642884764712572252664175310689785753778459697120519876833104547149921965051247452057995411820802296197151616542893621066828964873904792098862292053473295825302440063918165525322319240142780349429340763269934330182339411880923218977677948041036520997656138830009390551598021720984604955927638990128482000785296863859908011302192736605050702003758035325872167474671046941463825173426228993135501038673692969856260536396921292217999599932630100197953365192282331532590852416906253941603434427409135405704784382096519366292364103143182320949392475413297071719314934663920131570388873812973882933482101422800129793170386928242738771901567175663051305591297330479693462850002338797275532898171282643094914722554902831227806999198357427205290843181542250899767750194171557164797440765995109825656685691915567553410463251037540509917343125189782205922448216465548270403263251593501232611169748099108339547792589772524634324301431993981778773671726803026735000035022654689562679263421244644082964036258625543707025629039678555086936043451555873514726200558756195977688345696588770732796906092069983917860710546447149512069997358248699379135178244829845804696150401728540067437393528307948625589651957145603487997052980467837176820214074864978449514460932568903664248396781598291932966069836198867744698231943275710683628383406850626512352058243262380137476703247339221324632204581334928924201214234711850169152797989895369415397849197340457276353782336726327465877275306526668075383104450783253519287865579365081961335068143267475894354102446165585189436687031523787920363006657298146139451099985237411469636456826170732306887964656692687296546753879715612204241939572690984491142968323421341442697101946670122167837164238714041726179210660495059891729168619582950482398732237093158454849551027214714405701124112114683815318395159930704206448720297223167362383756968817992204043619948887171795542483100244743270433242756365644600562154951945100172196033475614752434160681447034997099087584050865049591278754714704523351848507617097691753775954740525266914146546081923828400166471025891018225476283084872527673713443791576213351450712145938122209278419174013477211217251845039579662711408228573520835601237904044111137953838349794271885604217633188235435390197131449950969725894102569395680089887818844995654325385313427940667110152967974279709812735966440857151950372534002138408533330565993431488639172970760338289813098386333705384429422862278213428233648551461596563642300026506823178112860558197604234956498684899681392559333004348786087495904665556516718898213878443805618285700672337618915464091245566512559830464855198900227683521137815437982894998468200905230677481531271617243487930396889643835134139475296207369372594784081116370092546184222029199981347032782987880216162231282093515126110723778071607732148695849827383534001579813667036570249207079125631501138919736777619691216884077212076607974647246765211647404907933800456651323256744825975689065316294879204355630055516194172344542730948334310503191342701868210422057114173620778016532947254834729036322126628825391642006642280762869709182774297311881699375649715914778318341003891692255506401934285983279910664929928419485861683142507716756387645692363603596323846314897976429735347393604850573664340309204318090375423778633625057869433533649416244798494099617173722700729793864189232705655819625891232517834264684031307231302903156960895242119672147385836586297296644489069809756160687559520048641953195032804535565719394805524277615460130599737321997255823876114060848231625161150395073226618721967248896382684009948812675771677906008207305909124780686793068156824102055708615951626695979231856095699058841680063156146827997032788596214328748043608234426573092100070749796515735570426976081603926719481209885469808727265199253611478585019225983561188734343605125231339069709355438010608452192020614832671624809253507896845851921397877368912722062624976390961711323837961787932933762246521221384726392736550820887999875341904483787485136460467357009007022426220288087480227386258991288296456921290149207359603636568243138363850012168204021715517032521921641322844158912771462780066480225071933074020326280200843099948505051051032932762728257645127144691753045143731142306157375728553334293147604405083690644603471647654370345880236538696619195428953067124004211998522704918213997895539405429454744301790433745613454040885744154237364087463607685842516876026336755107744392549760117459159978772627689392685297825518825462234963245025634779326620230735479720660384701097644633097753602579981591088067048788235478714347796444159072879043510996494954614892557374954912638718248243606055191777757472748100484810268056928675801381368153535084939612963662492920762425402208199055742824067620481311263271786104784671717257955084793117908013910573014067886756077530938028114525706228226666106962477447241547500505791623596307375120945914623552773785061318888432851554463035333145415105495362805130607103918504880122532455260025751205347569033282271995499607466968760690123940525138508600550677350303574169073860549539947029250369046702487504234397293407983651958862513866113816505073180063719919271508769391980637676228043937828053081160453469042383755451142198360718250210671919927246772607835031888597171151390144179910094994477581165818527218626069447037506468709610336766537241385331251554358644944640328435987772827637916407936249959930548525607558800885746364014635136622410391076627132532354948227223374224183509411589274276382888987498139145709345736475361852053075094348011835583033205294898556034486861100199467422525360170434094832088885378092038536339067085746372496468271838190941852621767558935981075550252010483328257140139265370129859102708199875975485412945191342584121082401427088912819433010751056333969565657511497630567022492360390869337728208101587525804133208472460308241343098938420552008962891287282779561441290680471196586533579974485699999679681371032197878277931535319260643094638747980840092618469040278429720591927887489984427358177271391809110815674624394205673350887322864742620360112892811107561060951245772812527222557149803995198166234085253025429392926256111884554131026906471233813148810283453321303916247503694844764786424180919521213775090920481505985431124518606829400777518724214194744796445478990375464475085039704052915865245814495128126301181014483304748491848634259782077153563901695524840044573186437956354924300075522713848037419509943720827118940957621960062487266929460522101103224197000158812520734604868025539630279297365473943765344217572295777128869090677289338583584261896753998255057851511191270231378286167880950325306756288652574355675803224575699374281156984418658987471884832860380781251681678097406802145564429943461146746964824845444078411951682601270078875524450826587013936379152989162683968943881854655393601767271627502517479801866489677589555859897102318832345452294671139919958167028332579951738295281711578571570692053739992935991572542109542752598643129653799212987027265500642342820373659879058440069587028060230641054784336819543726681073626447233056001207306157172538857465248442389204543127889752674145149916944553418862019956399478677717850735696765621463049869511590331508078484480447799641722856993926428563649873997223243862919447339254269422053325860386563390675939812178329188754213421469676374459315690010051806537452029444146374865446867946635404767266852966034762805198641793964358637839664216564348609978768881351478600493052730840410343481461566273315684073493484483126619700826843608523943523396145226112940292554783454412741234835662524935928332406251174636850926871520584609875826464432726116536682552384376807636544206218541824234158458238768534795441644560127278375238924483385746303257310424617669705696763002230468741839826754907077248630642463726597112287144987412603405988971795898752594810209320843859395973687159426799840845661147280241848469059665423807509133992439475166552032555583540637174643155789347163495250222975911476642594201652753999893279982279871972290366416785842587575318145444849815667716608316649443383925874500394965322311108017906448415774135518050925028999961194168370240219973371041326917004617174051848511728215864895855513557251096386056153420602688574012426894561869773247792638083637740829841491288809228459633064618405690314744550448754593874915229085647336636764602010862262962027863690317193414180361896598356457538451871754541613611011397341133430504595221015929110716173996073919785356673928891406114864649131132909472213295304283629619981468880157480965161762989837079548120813665410477627052434183970903138748508283792296684635941987829436584892361896428581900498148657260608432461334158145468114329492943672916513242336858000098785661083576407053674422206618414577834031237876920067565720711892002676244041556366556797047844447695168989833448578286851583895025623592537014536923807646850803925211028288009155829936879240901100326489952508029499311585458998007299951405110332795744115797061497980596753927050821583544095350141277909984296195037871576372904034610311131845115512785942415008663010301936159844974361552271717261272387623581562334774685856448552911783990666748400169018854905274265384390327437965499034214691321197495850809009427574491852883388234920049003027170915870756825860575021731480835577108671942305127464842660598621697027612764544478993341699697913738171347646699442700160703697884323585820791423814969618273500434784826599059765110852851459701904273677423805495324602073899981810083749959938185475135567187701427089706013728075087068450906571089515387589051815914915522034838046130736807694401310215469867296993292351078333870165518448769909836243694891653558926653779386339708802724918907560738377149135568472094169400558588491311298613325988967080788850659330563418022160548175698036817346604465150027059007539051352974805642341421040839710432474599887462249019108880667728261863898889215093802464975867947342422160466737644452759447344117091130544969048172515921828347364343795628905075391644449482887203608074772015530332173105754063122487495539193834988481331190412416281025901866999527463647677107128334267806878299988658720798393513230743922394444922064673961215206638931264194026413154876171830215632430489965660371138742071350086473836056151405322185961732082317408111524349713250224016578014473964892126234736149523651485935154142160340821608214857664208732181988478928703789910950378689941327964315438458961533862541765508415697596024196510056631160576062297414765713420133380419784160181332598330476532325488384295421951392222619684368304091326341102218517047866389152506871097695451199914538706954021306101776923775256147554701451438549362179247895289308637864278668540420517688205053349213554309060960899376095336936854219394509548170277245033201895833546077682014779260188374074737891924007101286624147439296845590929914416514715594559372650030266658197369988506394706232378936930976565027207634237351572330324545070108184668885248920897291193371876044643760563161815517777275506082835624543702658206695611860028081179864944596873024465395261412742288070959651044003901194527080541894923444605246349612166631833439977118569381278849793370934105033951063871336833908633778894146846942892182524270968199980632179438111056370639494956135131351891383392327561157270797154594187139911862159583223410456234992132073478356163112627900027779231034097217948950376346435918833519042815683065175302905555575141811148127600592470472854524735471323959229131382575196206619973641963692596250212467477453453592701881092465854299213345823563959845569474726673510462226398796504461740815717205934599186251806308790005439672286749814531653166865775417665170209194326397608762683155518598866905779743216075128976794817449137341559318761539528801722094466434997115227945401433039447158079195564451056119550188626842979481331444782753973388808674734641620527520430462801557341997952746661093539009935397822965710771345360116766392486440110690185290894634658894953632312479555564761431193620503047494644393693018547886538117011699586890395989786297196189884777251939660581836028948524067727505207338715591639627285967918063374709372795947404736680274040152523936637114858742894657703229572008557527947648344018232412729783055854811525024310335001108945396311247736247092690632490360606641100515067364627549469708710179205966947458034214621546291791094836695499227559846778649289257157169490143741150051701804569998599933383203816533530236771900131515903451789837747605541322761613244270530601571327838383633479029381836262027575972291829725464196796318332173780699920095361501327064603085519559173216294700403472086433209659369477826153416544137221985692187134880917073820090933870491537658436370174266207360742089316300553480529362171270806615294243721207727701367206266024216689407791036643890603651850628144678243438012057449473035305567840326935113209714403932365385912250621122554570702306391334338338045668563204831763343127063626813861065776348702255708632120088329382412737468680385524769425908341264701484989075508726739553046242368373628243900329191449072941009441114006528813364757307025758974013162795302139235353783932693445904630739143961804237897912922916914334789764356965225739800324969282859801220832709417763585279013101494731752985657527842605132043346357046703918435026274624032326929773203845218900067913493094245996132575776992786363735356952648395230592476330547683808032555910381756171651500548654330472054172042916654144485024737964770454454277956553767171855486206325276298770298309849475260765630566769993197836388384273921295576280083009657480618756213770102781766830481371661757729053009411570513517524787937759269184633315517308909773432850995760719825894917521345812516151688073628646688533472582676883870163823344565215427952876973010705246724443589479518257125359703558117439064197120088146343536274961138356848155526331550393626611339939020519117552840252626683881602456052462916024055681297300495246797734318814157017478866854261677482041519300044379317101507324206263418345208469138738589134198258720251883431181373233393627423438245072765818788655964208701113562226052452571342647143929659920408768725276073318956492084613986997870829022997525518680142934344615284384789417328792297887428674426233497901854595178062074284275113167608327468349454993438976979908699909414693851727273919815542233552201433392467783822335453899196726249765149635254764712161395522020006925239174211298203969296250364092321759138525729712287146363545017138236779791570191712925930094850527426757308254524156349187014141635316320889890055087031147669703338544009564433714021870689524914058104893972650891192897123137583702551259830911183324495982508672725180126115838763985092576186887596847648331572997041808324770611319432898885692186658741555903408325938702825875232565922359001215374260797614318342924313563502304107467711821096975512799645183213510300385260320120429206436542592096826875610224388335831105185972878752972754761413740106280960083230804251840863212058016751624785858258059143372501939709304240491654487194545573224802538400954825760810373813880033888145889637986700127995328444505176278803511415318438592981434298483645766827109618195585773161898741097044427576323509310107229894080647997047953082653185184447832583014467969578240061229542385939067251830971094049548274956583957370312114418443283097672043540812294666448742041352495866592452398181048361559759733957834439872481991528891890602177827598247139426169116860731088261495737878001488378039248072526493347296584594167246444201445741599941948334196975554300845354848731088728249743178185242571882826453529559684691508026510425572063805551955771449368063627706328153078957571392009664134669215992045872170089440348585115293432527511654693958268751942180223693532079484067486002125129364440592824654966295057829586755865238847714098400954008308050317603129984046733536564790437114042296654468416663119518831177295107760515123453415083039241499041455787717881467780692228591036326269853170812923657414486435896427981394314215233070207901120021207637440947664057761686535414049261173022695589026719709977538142051317749591962405161335620523412138348311611786361042743594584039463440685227997373144175297683666000062400477012163536243779771701414002843358830048025307471706575604554393238180896769882992130660057876563677580291563349387049728758612204292551972616924168763833619087474884843362927626066215419839402569976621191862143096226324540523473343764926300922960899891702012271603824981628484720661741875820806693457645284993412587120577651460749843348256873334813086731955312067801607163795038841799763921389040734428612714864472300648005570930309088558082196804072132933017687458460582237337553254064601016979443257170011635092506178324905633125371291655407227387103088126042496356112268444039963301650375687461986501598522214081270076362061933786727087722689814587212655008004930962695034522677187236503698839891218897333726829820457913251844834385232876371907287270731568965725160027186700586659164901254428542786356035222496528329579105666135595257096356617441828349704389576873225832749220901905600943724269892228487513857984114948707349372035014804289100264463163945877595541113808882486540430724499987814022637631823295644817808307718387818241343660105509908520541790214288067580107853995625192743289558924940175488782670596779448000696868634544273590343811677506723017921359346794122946642724666367229386725048125626024320381097284504807570402221936939462466597228029850376605665108403376987623127000951992861321458082504585284442932408652060902745150973971742132459080911931366566387929917064014484019599136238364898072370156333302437442644208374637402144577246634960995219136648266751802325398399937394823027644784409589256464110722549674071282536374609764187534348859501868354021900091763972631447377935054869408942518396154738294639812999792468786158121969294959047153138710050381140711185095539755112227463310140249116335456723793814030630726778253904424142546553337150988913913888754595189986517881457061325980456576662200935530906385034930555252810832006848988352914391155958537793174717764173499419603163954011770475522001768671439449513655663061147773908838112281228197413047019427975149812167780576141731931386630274943983187475758145757741190477295102054259553523068843562247994368750916054689308043689400636694377735668080796282787401729282791290237195902930915648753016395019385118777457706636886804634192163657083340195521828859263029592381532085936063853852893082151652069239258030913430331168760051084527899177877431639681142850720473615884164626271765207708832365184137809726757670928278063976463918614369898716637013262643519022751136070021784635759979032287445019627751904208000987619297298607713225391698440931848549828257573289546279549758970860911652732142775527008546324158584911673540241096700435990078653317181141384028095189812104020272456897094170761442824481463353383252220610446104597860481822266804078670578668915801705788240730706195710630676279679123703910229557430767547781919890287296855837241425226551240963091290336272685467095504392140092030643911246937184199654469271088010192118218439402869068894415029280624354156579205411104174786028601596725044717239856222126817038445205481132497810042973055400359743566337395207711167937449293854653722132577063450580180573368017198032125218551933162895237128449481178624805205960488200386433560831009608024854220025495247457120354060183186175495097358031025823046234496461141639006319988120585403272983558052322480189110204386257187340182831598935136086644844792814816964309029817902532115509549909696622217712592031763386296231835445760286930809374674401589704955746296008799988023626266085881435095473862031209841597393041157031849825333627820207493143414710153693848251074873815868638020261098340336632927037284923151995666205313013992679923710421163577616028604063540977463682048516135680577336731674744500562497335379702867321672888470949131253183302649252562682935802433153178144618476996535299386274690803002828945222402254327472582828101893467398836541573081279019840136719235710992547018610392923419257516313599474517057054407139158979694414406108966992458381024642406424632985097699648039332317350147099766319440114179626914208147792194871410563800487335828474582446544102744375404597876414173488039034288736089042820623883090323683866956688323891418514566962412999659424323142872841143997578153066668188216066412293342026518454176269843860974846741368129977675015702184077174526483855547454594880830674327097409339176051068105186275193862127274922971471982689410399365413918182710459733168864088200964096963664540819686480233546766200069346570415040807882676991718860342006649840718157863187595802379792418843499764652696066504249342783509137356119605558749058421731721463069340101772069086859018128533291294708869424882013479739510458648624744186215545875664911061258350221221006907835533441013221117204448182060001964555838960578629438651124619225582854560221919309824865140095584878692610443986952106594871673100648419133513441415183862571766978232173769052076286428521598723983393693426045465479243670104667840609305300828795284832981993568426167270770307626730918357517950459574773865323939027152290095238478820716419500182836522839378498683596495103424128450150948979991426750511344860227260704765894326100038793128794752719381404693744364894785147849820575152945745026211084499973389913450769273672520914265309003288891055355454598337180761953671047755183999257882308332014860575187569033847501668121879373073411486753553556655658358302874174985355711687560800529589499814847268919508279813995231645169547439288836242248438112532762142933024203790807873176211141034940999823577303045197212111703248212643310382005152981571853881804448745522052831578095916472418183009856576840863891072197748833212272704090973756504091524430840884306942819143905756373703104648560529732014860543740669029725967073480018475340177499979414154504059767342546906398703476319337894096712514826413452788108564556308201761991432081574084394703833714141605863462991826054766863746672786361245514887122237814272203618111979439436092762832708199975828871117407812173624145597275590657652931067626066752020277951569897795099070163913076391174672836736372746609585165379899689751785909486860000191781322675842260123661392219744387586138696419593669230266005979082485342581538592273362904982275178986168532589677515924846014282098238958955553348576088912694340251645479056832143866154196427880558011808587545417907962384184115125449252193360857974083787750088749579342704137023676055267778317682022342147487589644073793895668564623983173203607555853618917121317188131680615258947520307687189764558008346120039832112354734421542794280192531759315437875844103971690988103285182103542729023952577683428717608256780791344783404926852505360689812291080507132751554113613413952122102031093958538873402604539133776634166017356769291742931921243157771213169450686063588287288530553869117487364446470226321383774530623629842560701332825057459320816516296332684018489082420563230696560989353995423836393342758635277020077436514896045412038472432752902713689391225194216606205244628457674864251489704097413981156972319198517496942964079344249353293747090125028162000951845027124287812344221151370415955928556617666039718143677101861323312535311626488957431038412531012064882355561529828196729518824272619075322514408461751967472676847946142179828842887411038886197031678617259501860088543490028406446032878847253390234032599170417553116548284732501876754324860443657873276945433592066230822128195129129589328012572109483260912325971508726236994027736778054835200484342053002719228605059907175853358768174403446842244857802488083464011048016341957051146262180456246891390665973725043244213490620330685819022264011726509592931700839737672333181387748528343658704212898606173148806578443434489063893968004826813236079170071574130388556225892139348755530035503024964158596650906401459861045243215710307978877961548305443510039875923442464699192199481820268842771844163287366114092165789663196622608686577853239309348337901465039727765562844671382047954500933468238852137380272727514176921697694269701024158108065729150683005706609952839988978982244289658300303465046851190710783603407874872096293056244982236290991828139420385918071159466990308629271655570971888397493477713292216646987527540450617501029623351103775894092752879947369825169963688604754431152715154672177996606865524517106559780501928940437246660162340850397560143338072015917109370220332541748378312831555411132110632591260433611471110945627973597483867353448654503441841443171921432097848075374333620922978343004222213315838036137005567045442866865436798871605699811651929939748413207173161529090558582495962747710148534645020200743699444341068620577066595032239908109329179299370350718311934601554974697043390214973549454291477461631377006607373093138957887188483821415688316627551601734052300980968209425298854915520062441806437851716138579349579169258018146929509178652352445077495231432890886651331534666771601015157571570215174338802756221365686279194738932317571333152422339086354797265688956203447238265732635939071500056540069452182239790245350627214169365859470347078648086626345360568362242767413532380212651757003815344946674748876438791077930330451662690848072906945969191816739950734347147649841993352464205888254558306281946404630438066273574748184369407993291900024413111797064614195292236770999741353018951625325004968636799592376639110810747683244467185157804579079008398874170537210734679681880150253101349299497164232187875465224556830808365184633280703346094414502373080927662078622355888010527639282041258808101958691409220194632141708853357800799769224338296965706785400573264452605072273068334786486166507761139611154973471462193347522609699629359782182295002038312427045981624476895639219710124831411200678827822694165536982245741387274892482013733279276728674140438024328183886568791373224576064594520886549166367892056537057654744021330445452289550238994181946445931031782313907197504027750000565703858861042013864047289659877469042361119228397682993891750770150602068969407208098898540708242930369398441467497280387760276836726856567596688647941855562034109717911508255204264207247709445231883502726041384300156920603686702599097643388071464323314150780766554635770164356551389883115154822423426009060247385217726928560038155119612548983575564956496400918887658797277942090389319924216309028220084754295672319893503460518425538993973733496774810501869269520097236857911470938064294723721228722780027088943089600943316738944738777762716149145387560451783936259249173945864565944833319139214728924781314045524448503458659874533739456620849281012667760543237956976586064219500718641570631886827567737418894925089056272548466993070035239789860138470086651488637257127771812347443223170287421321217270063038103847773652567750450090638016377469496568432664920677812792931979710374751472007042745376111808096505006922439907965705696401928156412697434811719944812644757254531450974662774816349825602368517276644754188059885054731434227230603012445513324608589344940063431325746852226006952995093034705182055648727519428522652660241364506053631248806674529812304412723969121938852186561036507535437292501328508954702315509739685529012342389374011631113122823267533108063213508387760504274363132278408460470225557477272456238518142100491199568721446183677711800589333008957858363425537969372793231833750906829684160717166092051396811551872338873719281012524607413762626546677688507843380735140844895368512445321019312986718394381847291515574044643819160760699255777121219491898458336885597816480623542669633928410416993561877739795442997380196823014684916733826432331670205753139939094312357826571306141001065762592575391205594435849234019926023815086844065807435451566212683760436251631105530005399863008372841838634881284392881939705472266789781751579631724321160588316847376356523298659674978268690535703487905156795175976332143375880318610777660214669842194653060662336172767649366627756564279185870865459334376868067103802499463849211873379964236372632815345257557521871403253584756140414049880890470193392957651219799425802255817134892881856069565494511519510075816220386509207970475603265773731698413967486503079529346547042945563777611433927427483936140499047087470014940242721055398986096634439156144157823868188270265904739627315100998517388403697578445705639821574231998870275873368612086709927855147140682292789251171428340663926095398796807221442145171046553875556032168240405095984469248747855608285013647900578932785869404209506926091271773350832349459842825792781511920190457976472663361026725472826060181203272224514412485946452841507785399568009593147153686407780967964286076940818180992907845817600012163880819955894626010647831012641462806729124017512751094666842728977517549945153783709719555216918922466406362633406076293463411145902395894629612123296474056850240527459492752402395346357291326939487085754398040942722353205886971716901293469061884496461588224351582354500054007433919709558073404881433634183604969569735876005049845983302231615675532692923715708538886986954002648561206979221838660002739943823586269340228488079897225281973214784234933336440608063585410688818010762121687379341503789875918123043341194444849399048180862399784088954145462332836870511115664958358572164003973317171728701389514139690363308142184559073939280295974249339639714493156484077318647314016113469153503318883096670178758723071695417296688512151354488059701398232130482838432270590341530245833541994567569075271642617106212634801056692935641545436351346716996282911689450504147287279254566658156514732740678289568703508744940165965429361231848893601233358216636925147121042310230134230996875237141323078301579385118968276193126766776305047936218229659432520027829517167994972540490212177200100553782555700326599069670829610056323406565749217173317801440534634628192396549572864228779661964284629103079849339952762883203824553898771338288950239073603135243111790267863824859983094849943167769083826607566747228406092062746312731996153018493810239450244237545484843960413200904602250204036948471839778159042375661138781595834964422202600138124799725155032782682755622892308979137827104845658450600872967019958672717092951888814458326152444368478781111566714327908701794924368511028425453090945914768183482691229535134426238862313975376937609484179399390101541101131719138966378944126886594068600410645510733476798951505865706148276116495082479095850566087265944441411907864292341013164540148016062065353813687787040167638306734674318417160793149439698472951826096589777345095790023096447502920574296501886662439085467572735379964814061846157099999552636568211472325978131767031102819514309366014318505486732195006597256548679246547336952970364328371857068671802745539700672494163048492880530974642068389693866953380286887421234873310189405751673060409766034870473446999365854348111583234824943876448633450705648804196171201161000979014487619078592025088602325463684001619435967180566907044269277995433978264725375242819632380437184802141838750634975922437245978929468240142688959778292362546739789577547904374008100616508538604252815257829626749480715992992995988463711198523954340944198323225696753962039548404563624796893416817025585856393514587926981405599942451818072005501337674984422181033877440217169364212513195919002554387075889488462022307221079219741750834752935609605192211414360811080392404622153280827116797329415965451992405395863800843617360865129821849312488166223485841610221896743291323397310407602410972726999824981742512808292143886093956473765404147516243604015008296380600042196398001866893586348871867701921910384783006134031402517206399628336244337863514610974850087111545455328406092046632751782415471395792722087677685308054247509007254465776071868084395313862020020645385512362403634980316929576767341937996122534932643993872939060281357702940031474021955858275842607263935364536122416633904340640203592925312726444801007854229357207789032409075567247693785711742125560914695840386260791740692855983863154454524218025068629121373245461924646220992783049306059495519386695992118623132445954682470248412362970631378685117385992557301082908379990588907057250824532257095408512144801804716569308055092608040912902778200009359901648378264710691418602862598116941592742948662461494207774438636386431040762384722491545287991907243813786308588634753209677765306669526784731462458468630671409531434014322845286713204684046981482129863989367563600970523981599025657104224633127761389582816922034065042429430706830786479656125294916847152348431845098968213244191915343535746248695019868804345320667296050037660593975056681807149389220267343455538314403599740718920718616932930150608994835014157362952961090196512348078326390899856048910300064732200738606099249858530586137375477287860176888447000395336947929644702153926013624468758688938479381616427852380665164259819843831836361797371008377131072847023996257491394783609680061351118861231833257787200263083745247588985487800967404237457226148593348780324529324190698681723153308115087392570225311695996267980994217272693718989983177093575387218147859390761885920800934431796001568745752396564851063915859300111637914056605187541765721778191880797989945739745154326617131455990855394342142800682739287656454251570858433784848086594906708285514911863697213851370858167697987571382927261851821983197794014622672159709514306167235643622912791524473400082484635152023419563519549978696680548324851963626916024864015772224717076566439596847339733668234457509044816774269423029632681330355200319272115107543114788451191951702343382307738689492811971152623325225211795582286445609863755148461105150664770011831046762625167737262872574178733839694833557460005914247782303860782387932924809912512135291095785313398658549621558996772982741282901228245676613415809383277871270571659249306469476852301347852557854042966758275417537154434384330937759268250259346635917176003788990281241031834016982066938189333735679113643958191888451951182256411589576163837599905101350846000842168064932638110383240905522176514473795671234366049289006716070010187934123214129365501187560346796351822086183189176319590082402883484357348626086728056277757645905265020960115609109675400802028671178520794654378927753985650286213348334554155280478412200281892335766403414372795964636138185959735393175713681452500057380891399769898756830554428109379754385295806256006672677512575592622757117727265409921459816252720195982100173276593208707606571302156361636061188030041157051695167219828581587865594317837524516559607760939344323671767077719358567764902137297588612938013797507878810199551977153971363251637985186143516605856873549594450876041095775873913688074562810208418366790744636688390346353142957106559972378219872793295874584321116394467336899280591024630098145368824933316132007228822105270300921505067373103923171023242350534898074876242537864233633565340759192928155810146937013791553620035001731990834310725868999221041710645876420176368550129741707478427682819634147774827634696520741504140276359147797930850692267337264903153642366875456663141776178082789280769191588580132464412350309607588688594101897576282603692822221029102212067072460733652337164233979217545327523072895647922512852459785614412636274999601564211497614391923090309150166045692666131770005582194483546684838747689945541869943644667019681907008653095136460799947882993448286031710806966738034039893067756669195827915510182457382484726446780548029916364988550748100041988529103205866251435764592738730918031552789381862225819577072514661417391845231689237482712483886000193548158961508547656130296272935931906755112657481304557939734458304605168340230838971435469352858132800947738805711592602075349689225905051624544760839859292651791843131914003974025341098088792980372668900794522883632187003084785755961791444774230376666220318247062102106710053161871907394952520855164504526187344611502328978547312842698610909794446622572641779820230181657390746880926666820377602973966887600869540682577662088440435810619512303986175726697094508466989546489404589861321671331533959061155349298109964272198569219206820549783629283877856344875988240861142734710945813634607208899862550665072297984695027894127037019250525349356815973918182448173462022601366868822223110078069489728926266250331923968410400957517205229318264333844078342679739862117326079876226519267447233153832587822417887336222780127166558266279913346249413966000535309580653231698417075185015225621613142245985953655640779328517273696225458983367437026853062053544478030766097844333141523100731287750503745361956846590865529709442571139128003364630279220148316176579503577276082694399033419828202302892867679565846457324794997451827716388413474704430730627913880578541767005599619474791582018387234814743298110774180752186271038608087371145122532124239350669910487352153605406590392132905502037169216555232253720415107419624326228124802197793701338517846600340184266879974813745256713129192609026943729583927418347181746122498899036200329343270286799453787303906125122875525445142794901579994904303937055569848289176743767678883168964883626899642137521260155532884895708642430154155167158553454067284686279556913701768387519569047502523961436406962782180657326021504787581383330394631137690445289944565641460439123335785600690622037594254843121598975205719918644472714798218622028366680001437704592296182255241555366731196783650556721819459022354188047634030622671945393900510717660999374733215691002804620486536258205206144956125698748179658857301950965040348952840463734607040134763692055526178393611452276316775023440153666171363826134865617530975127414426646815038246107495977813782877662611329257303423888034640922498284385332843508089167187185598982774839416817395475144176495056144019621995456016562731304044951133976745234792756775197369412434878783009499453629173414033046317430226260078208839531623451505429159969126286160645883068582817379748358448832487032601522284320729084492232572119575725445642027662223086731357261697650627300574729677505439214210849996339393551613140730577871949997548030624313990761861286606419920144741368537634559837213894074762062779223723640238635143628663158894318571998953106331950274140111022554543779708958205936699413769024977352943479441471318118070737647640311736904021127209217588815775339432007390593004094499918236068195516377973024971531708008651016152561498684914729382618451750855612175510019114577439917137373831042883541387840669688740246907483102661410969847606779353511974587767114391232825982189057956751281203067782465864150552149362262346207365531325459931457646912109961293852571066646719441752687808208863661268795599575750453087934012202076888486705546479126084266553014697887165922479111122487654822490312679742461237897087189205757745850125660243843581839191281644065090530060601984739982402947698876768954464789308335409871524422260318794436116211422533046612417816365691143112317424285536342903834083538259265648818256167929813979549744795837881282770864259671124147659914965203816211605498296698903126009680006708652202455742011276011807204397680142636486721607270175736719748936240974801467371399321982446335862769482733435031948758402103464232459206989553084653945154191844437552180221535488784928684729084152027008181455613123751798918250698952526022872802996986161406603250859990212062257946755931626861745992269742442292721566117013594613541773452034889045810144138423672695139542277461492132750700292980138436681855047329131331257180070211531117718621022008446319946152885121723835677357391267189973557861431596964641830797075403952843350179336515992863336849803479376348980473411188619991382497019217406793065203999196428542488247431037629021186584314266181351902285009273858339812567171063467378909605757119631263876896066886739043475786687109810132770407920232067588787712520374574806914087070311085652325596482927396296158126697331034157503230320981539952712258427012657243472648358826725618748660978494592434755554485511044560251418660716860531693135825718591873028784468845844563172263276650927854096202858445288450466486895128934324539194692306324639125111663615772314640835021786226355440887512703425906488825103256993804238128526943553679605325475903827213674984981721819658527199462493589052627212422901488239588302469519376797275999742909712751729398594655348685434517212801854710657429502660768079470323838483198021012669339116998078884910479516776619225926527793499287759777968670933387303892867076852594520511188924578539277168188892098945289124178748212884054866901858830388704418285767590093391542522586538114000896418346428713470614961212839458370451050861267330431339092152005681383656551666665369883933260923147409442977141370641311450749154293368029119655457172658569812626515192314031291886426467670736523572144842785618870950521913481929045465007796229683204986153028377618851377165860665292910518912554015281660709331876933443757041090241581655744412991613518863606555429657546659223308451373633211062418439453424164764388426058495444576336673061562614344828061100875450890786231635176214865925257878626417701434020667083809567095132765491936235106474698821843996298727420399643817151026594485894162138809906910758341042262545443387214803285569479169792063934206326952494951442488721661562814866535491951940319603667100798618779356676197926966569857995433215948332902270310546357826646573040081590134744857883310375699358202725809885981195593180915431110742012008166550487814501149436714641711920339611459696116695565084271414316882289030285762446640971729766429135445887736551712905738173671843568316799294561830279371541909366221390526151296470852378723295955264357992385421455483011061875443089010099560912510900742063051759473945953097985248930611414383668701734288822097709602042323052228851087069245161706536447933961931291376619329679310665405275454432699271575038083685857214924004128613753038664790092018235727833324042165728534319012848720695943972271476587482990303975405647124435593440255606622488485344642652084750201565799808264568859261520826528716843669746410884542021538764663305889806834735515234063049623217167902015317973710657441208206290249254386874055916324911130661521665658695058521997708767334997670386777000996907941512464940240937818355952558898681253730893827970158600354803494866418414774725401695547698485013275804683964369718013137814601398442847751116608416147044979678840620346760623564197707116720312564844211721912592970280029956744153042607426076030399724706662993834854371338998749323679634308528659643079780115612547717303910068851498950474878615216475941360527672122108462839308906496931798346444601584878490402536407477975727333071695938781657150045358936758355466874593151102928954559693213980527634394254053610299606915525289790365648290604150792053744527375110120443107661486311801075546443565831990929514379608801925814709046300727959806793039608623076710509518242809491817472573614508784409545502657138668268244765863470704580740747717771186741755487916920464097395964270206778304148369208950195784284367948587338184231385570259487460897075311908615798050803297215106528242971344040882950097306049475260462922089293042850721860681379215586492913411256914613647831486107967272486239622192614634595057680410433752798677823202175718773173087372362201785319951790465902192175828931011144894986070020509526611784360561174574642886938069676110519516402802184288705709317056895126383652025304857112404610679009523600151038290933142225376876221455447558177508234637595610890354697301830925283198464314590976257303049906934580556893195573976731446360169867148112094083414931212863863296567425302023164802303471058099647613827511185278537398920127845939740388138479242620962145190865305820732250313487531734477229028078014779721411772528651905263871089474286317160493084389294554607127280499887080686755744331473693117678884373004645164888871569772843391673570658344784135758227227984282768825394216319808027090532796586495082890011396323544752677333218111968944944581245298089119183848878316677767230436895473423002380434711744563900881693322037288528452623835206552007967003978980958468280697443802149518601289951341675421541975464303229427195199203107192611375375754681894172239269367119392329256908092867948322579104597522937847965472024570819178535711624293332163884435537601309136962569471182820071752484810930608486618098495341338550916321807491049430135163507834878516472793928319141640709692003439682109318679202664702488476552852098519560247939197080143072267318479790156752999368915082802166796966040679284101265438885265196153655152766286631910046045646152096851009875876967262755494020418707453527087717247188426768388487062963932578743443018358478324043822530860464255918169794624740823016758066494033742397855924592158989241839964665618879241109720944155339717116953532720824511999702363358410653300426995100459060031592690343996290678222192228916870562740722427176055498029079601929684918558048019654706962477535203868509588728981311945610428041248975658153012993102375765487983534231029964835369050462122711224877918635113892620607621341573749724557999647015536361992182217101104895027156747755565977091603296388613598714660910638524661057371138838910345419905209290021641510913337913510567291971531813991016198447275098299871113309530605489135957561890156508006215927993718416667877884919421921441049673154740595648934207999292713985101056908035631981110095751247610683420707262633198404545347917327233265051265591998785812554792858572932099343328601405741600245273336414381727171737224565024232658407108054978916430595788744680880759117747333680971344986556748396667102672671328172527606142436373152355113717824191984964663287262853966511988555768626358343400708988171189903440600330957537843817239187284792436548253699842363269324285293771129148463335260694666798154346436886877609170485721069227082388909488049497739274495088333359911798195042268140253050236103994033767648477036491785481912594062820445897703404291033537267827796705026106634904861986101941616621272610589806400390003648195175731317037793011931492084677450110565277403431373098952332260186623174370636060458328139221638632603879829924461356154565576824731807088280824268444174963230893755159314773673742810042433032786923868362205380422540686100115301447205834606664291129109786131130915416299108550305804000382215558514748022866637333606944062429412422318746712075574376243715291200693858522133030165682315016561307402248753019069417863250902274096884098881993125806004120308346468456830732326449196823039406806500021929646533460795497423534671902396862065005109156509361031706452491570030503675421082814269666248925674279087216538573697750822548425039053392649772470373727721039836155057186719409178349908660826745020390519056158619020908042043153419358623677241094751508753367472993367478689718010479169822305669598662616606241902374089151266482938894794757930121868507974889533620668702849582648340390659629656070316933277892088955483293810401512136141912762274011712658308245016843780924152244407393602993630763382134049200277052785365374753960628592987936069261608412179196843605381405410516620536243648901138535120860966984331568252367900456747366426949366391890973446238520144237557865107064149555880625525862839824556196153438640048657666329863500092545173674089341372051543703833112567887532525033492942029039447933280133885040495208620864571335327700811140538005266507632909169474358858944895863716524788707144229305221679633873188662618567412360540711078811365851116120372481426560364870927409707450203162736035945411007621345079087576281219168857060178171834114870365057995117687739096750206609431853714219240266633128086455481232747185170676545191418424768543021093116667736722436664699014197069489575098624378485305833248153275278814304813003629261159177034085653443581358664426312833438423427984433955583085397190926303788650436688622555918170016453033351774625094433541731164046412560579739263838304915144425082138491300664107496942693920264492063678993748896090001216950947792790412348666678780278631532554462558232424762688183132242423114362168621937869039922449571342697162116948544437022281607343825588451430784763794980171836174768123449929662593520063977787206980111057749136784948763946219637869374380471340466147066000219121851017267183391802608492978315536835150476650037653900133936711572736949518065995853927870998284645274650257191556670634558370670475714386233687378439735258368793145431892072840132970323282316618011986895084490021855130610766785635103255721480152521859651180091374922768139003560546888546716769757215492015969827517126264845497198299298962212292973692473148808869542691488232929996471165821875958284389066258904127147851082308164876097022054283186613194353452993878766776010157680265270690140801446885725074613895739052844441303022149220008640645719282159238047847354081236736935588211643931076558732733721764679474486513814117066081552323195564719602981318765353216726065526027056377124803169657110240979755217900014324102949777443101640925188117043457113737927290292026820501165857713293483405668759173239866550938553735848591536145180110332817688691439235452757170763745007811347669563521179761125847024155555356487819477857315000994918951659340791957761423302290988026622663169062386560691201727514970923051064088862825416047382184478499338658186656241276992662429359072462613062811452537945728420660429882062860385344355475150603519283533430912520523356646188214880860071592261627836636818283142498426436405461686698586069917482345125775563726767813405534322939934756896644860024267583700381951830999099175965821777536621210413298048000604859749085185262889651207272482850098763931956217788065150175414713232918840804143824719161370356678060669187954677493010996908512735793964834217020014472755785595931717425986273867327866469513341567573407096485163419368713132619216716393351761521312327898582282557005265077993486681171493817060119559109769481719388120244277227458577217040670247989087835771158671238475711689178883922598631653766859566315431067542156033465417290609367498511989246566058083537099695363165890411657729498464564077834289370537515476640360278410233062067408039402496036909658879936505655066142768009266306716018319523221180795429170292531444139025060113710928667510783367604131696287925201660078789039720916221252921531785507020847058507125230257457427085258606622568805551351016580763565745265717704538136997767605608461690700057812745570078240678788693288265858954695615676121706922886226896888360081678901213610674825023364783689888789218896846385602986951871495826317320487076669967948138935062006030346428221538169332195025317664393038171619756937025978384363077757217843307163889870244260451183869617451883132216369681080577620381683420258751420902318420642709663220569308266836217032524715590846654774719779937365228796196700012054509824894357927653412773239980962127435510256959624529713494316945986627936653551005403623256686434731871452181430215344242515855879367343554350494783347739683322168187630591270847955462270951784276355061398978823161577189505758472400010530593887048394234475391028495239444364937127127481536929375043459144188644506107470670294702041096967107805223895520582143256049571603290467762850122426174914109529753487737270090046574252992728099507596278915897519592715067554196778654631846599086487109012392323318866503330927264295166292006446898982473282547105174983020433127902391746160812372087840193390899194954870983522372131386673626037268064825120480454253950592288330755063199809474245540694086944982451293615942589596777082894199925684212212425568661156564272409480394977342237629913370293215321537092459396178307440958238072863276056827113383527285032460407003679025199210362652486867577162189559446378831127458497186821446566556799754258724700432238829510089520389585877734638746964991784867825591497932749209530056995310771731850496369494455289311293555260158126391863220644312122442419702880681619593109422300913775589707748507102540648966625575216100628721717133888070026072573713215335475334085254267150777215656808426748196018228369189573155503346474531229350175993449290305828624142763611274311396140569734112756611604424183850636451026046789557376893092750635983965859771797732677379732847978602237531738599187895277173136850635091136754844955659267134878712225172613101425859075778500567426631174282041649399406740638261523461659991270472025096778893737102274258735160036369677040026827237281044740894363580117025758055159253918356747406920485962533111317771472203636779749153050511710750950018406748924315392547970830173283619649963401734104979384604086898453653734517218665746760623938256076201739655661094964220236012182853571007838365329676038267321022270874510291375321303420114484794930765184939892574225710750008278106793073839800568618528069114821168212721118135958975516047420228501690914488578467485056405530143874190977823486632059654389936991171946016358603167983632161507450582204030803935965962925278398557770059322692954146394370205179741772081119977179814229285124593492400646675108486944237553305722716797421658519783057457646324555486100575622900298904437234395548426802997541442815787006862882659811388913796552731845586745621106338395965151439854868262693889345941336389639944406408954992930873652289253326116673943389684222344137195267300464223945716506901857314079861746010427801620564428892666610151842525264372051645690608030662283858462778497229757146604942077374261977451309203945915829762043048804508801317690457259138959202672038944463631037648224658858372883353819477567793363884551001949577973121883362435798055796145757651694940201677921967438378489776244656638296443153502281244889173907924856566825473341256853311691881207842161756006737827425242716941569496171180416362461911183904371437630534643057043753076165832865113022238890780121270024099060411863124659283092048800552462136200208150882692094053165372013000488712758981855149433034284213564046211430911405146165187254927949638893927389324058931767778467253719335068899613431055918387402449186885060524257823569617364982158112644479042231102218507003703828981016232135085215859582770123703365078160145001346266387351824610345869242405796863083366290473139250794038430125832765809915663736980640061842022953226088903910126899578768161961136692360737879637904710840039314635449581069235201248503110752046777766237491723721409058053961348349340465355922108556981528600107756990211340806998249556288021572128754807889915902048742278834483498173162532007574449580750834324109312682541006713942974889237343117773675869383775780872957577969052874850388498648536656543650362363990651397550593008175136412502825196953499555348138782004640648225597979193215726162985434309062069099081602040008669450552694932229290413000525048020738109315278801172848062822729507576333154003862174114928413077690688828667434239278193313290816304478182358557149561203556441968838059312327067217336701866957262396285002441056403087170352220166942270723167594054004977863294354644473300255388415739324062514832661441911806960937071279654582251563685427769320254486351836069641092013398252603434088371505718967058915054881610865927907138723223988606910441431243775647942407420449771224491497786730690541752402404232052765055912836516970160037420152564958492459555001470055860237682899623197886069530158801442903928278526014019046199472425919300607140212716431961675862799961202186645265246510168279937330830864312500374975985319921005033811392911732045220370298291059486138208643692194434131994363561042717306761680764867674960992273273688954160015366714276447622885440903377976038485725159369827750030270646112177749095323392024009771144191592610464036290088081471639079584359811582747727579951625147362568118709450214850597377152285997246657472232857535491222603908368981470401758601324685821027749295806199789140435967252500860821463617006264826187436548817595281951093414177594202690342390909065796055426458882301619461506000302427283981894563494577624741638276750906996549171317379277535571559378277922072936155528933215881657877108110997722908386538437732690265628634837577249308009904601851799223842642646740375872167261639071345422906743587618071046081415381053894351819652829406106837465656347153699866441552132553717869070427138962981478589840912097100640849665116451724802159622245630661578481123828946381062289406256835139042217849161821091554260657730867095181387467241710577445290890687676786259095976352275554162416094848242305771122915858850216881443236100423794973530339800132871197755462910915698452722124007925058633277136665715393971423641090012610569269026945507555895657692135714382481052520139493129913056949893036958913287387037198343051396529187378303680907380662730467809463279425112313200711438085003184269343715244665118199953832676474624672242564189271828967069246133402493564914102313590434531338145225597236893762021431356659984035206837545829681009147234486841667174027802012213055616011044740594240529375282204559205338579113591880712822027975048157989894751810609517938788575473913167671674188499925516953972684889581419693140096107651026719917618002488528189197387765261867663421129249277105019487531900258989980937174089686949558255784924503339417176465326974564258336890493108381947171998242706113414394754575232318167973015911588764966193753237293924879261063171223089987570356563896254810171034565426004713167647270317168960756191603863718440104614725117528237963225623606940814186643435959736687132941204680746652787224348460918361647733526003254680880130882856211442677507266440447839676944243574242304697082505531207180263032007170037742409519585536240849695174313603379758368117124865526512651821815088789763509306430345517194630896922152177927695708698952386439990647139641118435863639050594738321000210780896668307175917993461675100898852961510584654879113618636746500885021614222240766119520681197858777197212551118986558293516545600540840441747993527771886092200097712993600908291544588344917757493493782898777679048923519388807058624521685245919786404431459055289973842453384194366834486686219242159952451593083628664501012377132642748153897260066386073813550306504763653698563079409171255365124254068950359556369323660654405696285907554950310271898996563952212578420432351667964153234475642803123851471012595352723367078431069997971379836681301608076215928386721240671103455340773836703010737928626017166342368578420168487229661139246565590984184955960751330806145244110842044087214975714810326790899963083681167511353640249580900374448075473631017461965249279293396842038090289251337651830808115879909710752102801132611674603280496881027514114519741357668083890665422434689629188247233119577188006503970441304743398605103528690262455369331516334964483875181281555984158070070470286093706637232631471092679616446857920971525796609182439345563753836094022497705701249213240372086955566906950951533159254950881977313292564298174970109257698257532990850106336892844790450372348260668896044116040089086054302983412471883508965183717751589651508981664002741385856265707434237909941262256620274810818580363530561444108718307223276432215263807308623449976182836934642566501852319103565191188937708081462173853299030193140495316204184836599295972406615952269915393421012683851362760788622486643554989946305908329829127778171168453566457021314187310845195830273395821896045586799569305782565787701767139612111563351149897247012067157425768852602949258481698422284163758244592275698329386114713693441171253543079280219307239914426700815884119441105010686427361666496696080856440046077831370954132496118995389705042258315245464709886989591143471462055643583278672907079846973702884431966342844322044084230962653606762293782412461901658458335119668273864449970639825635900415550329077460942440866189982938325631527091189339101502211654631626028621819040260748313448314664818620091729657260735435011398374035200573204141014387191642601364005236252347183503514472877314410819231921001530507791845428423355210266226376937656413570971500383577183668904721669610564082413042601319809299283599022030349371463841323668733736776376404203878604228403239549958125077421328638945250977264940324858926246627541707860924671173839164618315268203448929260003865516703923010699817546293167605539090955554688649723359162281237666433034822653208075941035051851600172850266737314527133486655333507934640043769059040994972447774058362727497882040816895865171455505820212480176542378584122461441777088816570270328957146127492930661236390824330460276916992548460347078733390624317513234662873289162965312454997650384634453091448899252977173296753235606055780784616992623827692921911346192572437362842936810516884336274045440111038943741018851596774031954413663925206197430503847439111591878623292973037385281313968115772896218044235724930154101881647101522156179456105175408092036609342207315298228725523253307922251104265777322591758329289261575217972269572447882495513431291659305179097329389149080845970834580625370363596456621341915168575434032261491063036484982669058218059248845781998369557014045213262473928554896636587336279250801160986854521792508437697203248672073929339488475094966023045179221364980389895689636278011192390950515221642929817262554105929266559120436106345983749120590216648839488365557605648584477459245963673938118707358869489920260426254645987244049977671848467365635049354418885765006204523374866612478627511166418896755775288621681139399904235776734066293683359997191102859523244357861912467232307914721762298095528231363913038772161363648059668033567421072974957422050186293219655785978432149031520678382449369053808995571085212893859841764309046599667838260866992868780516722916766525163444198493733999871976763929026135926691530444412597480321354275749670062068659365832853069430510939812273872430359112361738220581353272261577902892369043945079333215023180886208997517146989633126828967417620565310779751628634086074196433420700449615491827353550903507196619601241174853075244541614850044232452820420594068958413612241519153972945435375632082230203873653297966974473540079125543567441626143080431940026181363075768074366491867564730205680229704901871621777950613570540928016346463249788959518428094121533953744173906016241687346540942520822409282754187316638912725137783207174747446624201021487697990229091023712051039866566592373081366029842136252808490610639190375020514931311932184026749550008256238593704515141639683113483071964519069251923186901115985978598926500173199289555333036242055400293894947741843206524412278644278505377316088128785171308812254598989541026971198482104954549419546387388453677711093812944244601638789135800811085910426408376310731303370187192251283598939150899009669110290303243398396829053532709983062128026043907884326695567843386763210578737965492770654880367851186988576236703240406385822710064803088720941448541624520864116894793175761031321736319976294528092379288891026488849370360925773048232695870966343384440601055128037620137449102286302275927604750024073217371698001425174858712459264046129498424872624897718139802757286550868920652265481963952011922022731286071158408694244297365245073263672467538468190622037457671510434151375949352676690822750598777876216830390788458716898041571538846900580173009230965747516922260539943567762734101441983181259506071427822820172414926761122229871981014451561193620965564364741031777636621846765226106898363330883741563443464026383330576963337482716795490787804445706136403216787494594529599150356946321374420585056542856180405447593218293293965838312526870153577731097641652197323853394893937896682430518560765054781222306742625865645216203748464620015666568456502469981396615312931315524394305688829990834893159726430320366224228175486269970849420600054174433559220970025067468624660968523045050374899265600583888820729512650148212478808853290057622091714562580096868948929886949406731039605944671496211035574430985322504664371086962985872371916716318082352580741384919291940346528294639861763194942667811901398106226113919577505587656002491690893054574980535488509157103065365281736069956042483581543195813738806475959313538655836153209061037858180757022870782561663695336549676521734303864698000450886456274423363226759953621369121179870239622388190477435744404164382152323793020993567923845860064392523188496542714699528376555975213355331029919035487489684994202185142393949004924217990231024491702891775739324514551500021437936349042731102099195415934454897876017622543533825240803452159786063152338498358415240462111044758376348689698192639042308281376610949973689520739013575604213095095120125995176780839012497365347113434830720479237464121312456253592001877468223740401332256590507743780451543980193192149607869538251254467468724713285924713239040135686494015851223216917097146710658929148241965124570877663474417678879246009737082023912896867814484085773177469133699727766325485242785132846478974388994265338244694146139621722344985291979162699762549150158169824939752431080226907460882665414994257796837839440304744314587682004056563363875527478738040617259478155488833146079813155329120278423516022220438311232520769306646338723242016355684604977672582904232337961193774378454785650063776286170206558461888401404767516458737888704717925813039210557440133325427041667150529492959594938316526088672328975512229838628360014006599467017056607329807804588222465203000458531581832685402998966492395307131757859655722356898055018241369026205971660791789662955850332538092596605110134281432770945175315237280446080374368042839699442008409652781079824609946513463987784543754404803820805829665359666711740579873217510762360768224132099694162010855221714667673400638964899938890681015051818400195134279739895515738802006681412228779961060214571631979310727465453008752120196740269127233928156783573481504338960387183239417581856707499672985743087806168803143761752790937797743449965334030521882258159556090583842587230089238450702015878139372806471661609677117281758342749625525810713581425478419409769386417225761200106617692332974970063289030905988496192882639379891492298338561775890914698929963309173225673860115089077603669546947710041586644360518155360689194316864902498419807677082919340615634257922220440454950923405212639823924170361713852966067947006707618034913922407750052173513100283948521770334705957416343431918881016219112911183942890777934428401831639722810073120459266039984283770419825645729206516913304297377723334855937443532455054711479156629971797622407887467225429509415999687314575330394377459231924245674423948731284105768798385038441573594586223834953385781305679488409928432481817290048441474054761089874332167439621641132400504890434470097771716550395466327498020145261543321726649420640132386848761670583138829835775937944460561353107329807474621024101205131111928787218823516459883290901173297090094660324304286638797575205107404556412280942428430057733436408573820096662095087265731210606748929145736243305270847349520445316864435173221022670935142752391039935021583805912667118277522016749456543799446123258197666948653713446067984288024269155086538812004334125447659617460936077837087172345558615760442931714351202083455950204317764471322164820215640716360826107364157207541793449800501927594074430994183995512577847428233071024930278518311783102796971321265769864933251909926171004288910791047768714194450498812865852605263674770487443961491295734511359006240788967790933246586225564898475655499152595968275762736839634931315533470470350714312413317324635787014956377666814850368752505977455777738622546112695759173246075165645992114102203232838719835151667158270520054914611713024468729460744263736443532965482082611762480496687033210206183724801779848916196290022523423160531225594558566129981710072491236099297367452099665336866779256962002602153169533759491241236808490786175965379530507861808404552843068075900193187117564976466282031034519684140720761205386683422719064231276261130029992184451166649035301836044844224075269109371522017446660731414759165332175018319067826164991655894745047091531472747827905272138064435359770826769580725516643318341299360389418156159662588374663675453059470173912932181117986200545357690920948014215927641279175299266478351686541968332116153921232450231069468461045159837078779041826465468405550603729859693719418760864392936715569453634984471043220927944323063894033296788716609634242242386849884849543073032404144305758816017094434041912920673811867736345434648734739881079270003532811060075436618119223339616538134873137874838328887788739137536561100837222121906859810526855750688785541758496075209163534926322155222703248394610035694243953042767495221979958166352285652194062323683894982396104098005890049347186859218327180769033238566338098799099265689570333539836809948066476196529264788354381675245842331822620740968320552761541881659754084478353062189254311458361072454876988095755218068509093104831427509925992564886906016317095884281714499345640304547500536626178120478593512246219279172526988010255756512817323542267708924904270501832550881180451456706186192252415601606650262125288736803749455724073420013834450432518351246736856804609875851123335942047275979619807839172119003826637910412780537797505268668364496326633072031149269361043409415413380428448803986501765200381139701210351408378217681399301167234273655874199319464583459704953621746444369727786776128505348420334515289047578201521097559946801424394767435469067470384410962677160469757228194004325822054444573859032561284524412036694116610864462841344286563913513361252439511461032145926819181046315379876854303199860898757144409041680159839948416409795669963100219513036800011157123542473284326810408042251069956740389496378556363173962430859780741278101793951673317969377768079138789000510331463454628932128306352591985327692542934177367964436396164325056343802599098021415853055544934084198104476728334762096234266350353804880083850548449418016769991229213537453398189038824378793628624789015439164047695761071950901715763841837415159623980672490359486321082440850977597355999844629782936207878765829730669324672185331506887517595442972201740861494855936445946307306535137846794749492188585602057115440412804570095346837729400786025415177352531872791121791269089426011598103654382248838586351128094225066187607523173132564828074878113413089816639324183936929058271460101085767167319703515989199461987439925987197855382350092627806963473461484189586174217051718901110415358988119424272869956881933535445532662028321901852827180130656532000223805930885671725364716889234200126496427372030144175370992718862880681932794677060345521889536307942730596616880128597720055516979096370269914806893529313125481760561746415607611052349346606315991077740417006183840053235599146792091688337827118015930498080497513275208422857263918101389577972088762689733478499890844785381696544833478450621177546244955883364465203651700279725083364409651882760262661688659599367490193943183077235274047174951128959084284643995348275292000260698366653079710060119347279653846423434286751758307575609733315939675706709504282882526857544720604171128821966608182766803624425790135676438030714727689791556586413013669243655130995564314577087653377827430701397856862993883201361991213464346169432187606160393480078552595245294189861589440803769665373358357731129806843706077733744133535831409857964212713212547463021949697770435681884210976391778392989032545547956434850678339800423471696288748159977217173082079874475942361530427275968383316653055517901727460594638475368522884042541416539817768651167076288729177323044667456490249914890567789137054459048181529495784979155893221908964917567849509962122926000305959023067139106646183309721940070439558501582056595238224219789401892611772987129901462090670341321193147203367694748211594094894735246613556857151429658702297246242658798309507799057527188539579495316964544720146878703065667191945120127783703736594358938573404349521350302843060217762674676761124827642200117652371343946424402589950102579771122345872152143153909723741078634161139208224817612152780581066820077415234308532727689996588385275003038533219721365915573344088836336727093921834752234824772556941811999604602704893503808042112994621058248589676461905481523603299429267317534679869169195830741286933424901344927893444550631954911638281648895130890308284136484299695743126358389072823706425668308900887899416117778825235528066761667543070621324553584951700607695206610365185920662969258472559176293912415055789693302127954555933259979763016316019932746086216420536113934081564501019492290364378829417154143980971853821585009157438175281046993511069174790731750857694699252482036281021455022883829727017627584337441788730776798384064457706170668973363255587886622931663855856207884669116451044692520882774633331076763318601201092214998274073687297388867187226423888875609423462501228647214714939063292998969697940682484269577118756540120975799073702175398150870223814814482627156626507567894533525096941015237811673360140833904744290731690198909151197292094229308392130643078541137048912914576496213677931229183159963603304148707329956487830598191440923795998368961334732584839091677021973675943124022241671535019979493203000216195584566787857440589373426006910334426834148231639267661514814147375628549764964294601583677199076646531992457285346517342605623273035801165052565695016257642131338032229133897944582344198868693810671717445913683445901354956529583811410716940219244729157252831655219500706866810811769779196055588287887627273511072504434893599634538032251496797934061819885113856904007964348886023149100232939632947338635949561380834820713721273643718164885164717781076639718476704560290867307115989910408996164581180614937548379155940628474116323314123238494367074557248724626581680965107722161920635636555998196798322155515021263820043731037609238265927604866614304508350774233330896739570249065766149740767438043017763931610004046771672670059767386002287861438448970604004847862535812124261244067084890339861245477790539821095356925914704186944771000782409012852185192793135735084934881830819825255843519173130804040584750085219890340566599016857475558947473473872931393498624069223050349047594011218320319391917903638034231912350256646561573705304457749001757838962098445649964183581214260477230164146686198958362107219784749105995459236339676890830142589811306087903717898675687546178883173734869590521575743709386272265554117906391176778725011634424684813702133073726881371614070624600547979800673499169180609279125432272760575610366797709239396678142871526489773190073609383308525431719393020134700304949010047942443932382414350691710651330055679248097117682635612310367874420415290296432657010786036130588969243886671340562557463903075276643810996829581109171587610887081145743352381571103013732170411148972731135807955060467169125192411731937046963152625123426256451563401381886821578023649122250689394294395470627616316402735672783221023182380673797570643791374019824901852655899557451561522288949540597651599688518645558895316544764899880084102534329378738571825087434370083544707376753351357127687334904554940983624860611586763719319252804304468004071148726467404422896655252474109193075564201549696655584111192779380524311740130155844133009920408412190118905112499616592224477802088429422207536160096655922549870635584617430854184875186469236411181436728050756939080832406333396658442088584953858571699035847176725779860589991650756111958311441937283087904527056286609789071757341146139979614234885177974741064318318269446134661679096997954392762835382354443897941519125899695118466735232090633468832587516293639088919869484863784310795296011319307566444854469725847858178058520055435671670075733019120099761783662259226906643401536249477523640664535662059564641776708306686749173330180204037906317661058240453081298354431687450844509649226927775372384573700467535864544073694637841370304477514743881499375546547557965943503445561832444217801211049445047148503236923380859794384730276245228191504071527408658996109398713522837827457809866495284763970771013778215385099067772081564378036374626470769973800955883602278658484191638397389423786193629657863981789010508816206086374489140173739157563217021600509261674067320737443835749758351525887346491992454792160214585864925554375267628056353132634194880572233200685014427420994971181413086579127654149726362022933802795521594232747844583346295892752145025971435803697373546972487174494484527425367222147596456148635453826926753619371654369780682985561425946864710427820210576215693010618804313789662616340587514075495278165857742208663358173636919593509628888984609228911709986099844835893935975865302416522823171698262443447731846439673202144534125734668964471239280963424651774678006184721984342076380487397767778015111066590768712370522821831318932313639661399265781055581736774319512302532196135525639457487266876123766474606103119996663001377058840468114287690600162864418639138082849350520794229683692719115503140148514215537697857807210005702688784760573429441328475728546447437641373776785527833522276316132353175290490471141666347605144879922072219705209003530575818604269694190060580164821815687796000481921336461880148666311566430551748663241045098219736950932255178997820935962243922381689214931784302889244623363998396285952744543211953032693701572726656888469473557284497999024883786262175498042805709752539595436285382354808468490056078562756945832375922937120006523231822696224926989470773790169463381611764844100665011222686059309631004019950918125905196663979600645772918461196324238751446236406674007225355012934356981797691941208004463612408027832451079878742787165573340619247883654907852842142786129508435198721526888337712200405937630485741184283683859387487545661649206869315108882606539445985640615618471581503917391822591299122984293429927289371378253687367111775773984960915726517396706228661490386816830196018698847889291330111195676623457021131213400337102032687934131221604169725956424992884205072269846907574468179109473933041574493373972725970784094102961068837523884987080539765216734357865517219458665428270709277141234579739773113023679630831427458970725842119181580176937005567068440207681879977072227914607314874332923100492390547775291880443725221800802384817159391411536866792391568629654112257346306716151328001718162393904745689708072940192195174972522921744136084170928445131590799355925683814356635654366493902576183920963066064679117846183021253811028722133473299648667054865799888865512898510007903526570576466716194599386940278725588588394107244316506879659862406703880016550186001966004267399507840801238165975593831061626499765285785613737195557917994113043048351172595167461223908000444389411123671549358664205033632289572916642120838821754600275213950305960779786588429066320006932695015701004371941789662112487571572718931464193711218965275154778065111039574656183908050366440528692166876506049208683297951165044848024624090826510350783749870584771297817521688197289255912783415190928270864188692921234346791915512045413368988725721922832357069301313443228857375044034394563209619524884916502375860215972302999107611943944871000639358280933080682254571126822057815536994231453630751114382711502711834189778728312092227127014521201743118825839293971932042665108375697348072319509055094390904408617643569760638045566335785691839830997291903621671754284446162360015667425708190633697586260011820619143215316143253926776901765168693137909116404091791689082073519438186353667272897867503803090536429510976744738177228657171580578562827586260834405099518037556889004332062464070112390674870259828963857451904574534794822139465033429217883952397039487066367109212977557841912530475533728959354568428201021418187259533739255844299016944714226971638399399579712354572026395384497187685147446965398292883786765268001112447574520285986046119965999927475322053483295364963711604871180069385956788083803773730096355920565815415889602577206481020276869608588666999551453066216700477190221465367566110595004995543047513299158410176694444222928822827052270424436733728907831058361331139829590273971053160982683314116736340756612054315191180855627105336460899041212550703583702373190592073518374875952580197565068175614162040375424236212141190102740489796387869288462920568031488388188032336100316387675625166919332409064002325003840856985849528962840441091783949368506681667005490497099405544886181340937805980854467257203735912009755978359061454625476053916713376751496168281959518165798025980210204528344792770590369978934165258900453232496643296669653038392608711407912252739703710693267533443918530020532648384977028071522316249469883059844219615086227531494028608029754432936646029777516940820452782872427911784850820743046247344005704817534799842583065460339607961140546024196059347081763176671783761528241524528992406123044068853972787208595929655110118193454430164711760504221638634235038221380857497420877926403777319234661644621133970570297268351313096587724433108177119464572771670077972125763679984793334569760899126075129452354892271993955516897946667145683179893405987051039226605249005739985017881618504143892107293801590386880064011976766272136906004598644526694765128326916811681966607094971163617070911802835391489993590668745436443388220733608235353591338528769629085578468831029010340881043882774782111185951675955928633852644868310809862376307817917884857934148268884676365683532410584359903293555813335239605972358511042117055090495690910272742951283056965601152477647661681648647157730906261623245477341221339285296832609457572645051653496745284697881654382028097604620404926589374665529526642448771470191303877672992517240786582848254338230424055940062406461306674350800251960510850507025085915464387302500258877212093612907027884100785774854392701931862137437920791198989772923648194620556158586025954416529230987308971458581345385338897689790582932381132916441204438626663396188574926579312910202552027893668537608799386384617510148521919197570977020127877511679301931210683543474127816938767625951144823009134607012636757899752189157970371005601408659877442424169953482527530472862441455874060796797994332340425248249074276534766801133922392509921840952499516140230880093751665114162472172571355430061724946687682822338811942916876193712283150608869346914742368586639880266837474137871709769505275319559156102139285796005156398727323438463543638017959385042853692605295662230879263355918818892989069618163469065775305323617813987602523926735609083355459376812804305079638519986127502364592352824444905398203747524438793712547006178083520015178862472152652468683726250917825507890073116269323261149531010037288430564947761312457309636453150638674307937960666408302447706779946652004017362119452262945787222536342906751208377278496431867636748251123319777317116261168889542020723064265047909626059295509409342995112610277589148046537214156748849868665944409631979335028041427352184731891401446062172013536017860550663064253223760906192309039536790423616652844491011082317791833987873336672170031594500032034500086479321090403449575782653848073229479715403749589794445370738672819229032104222956856436002172901888215218863115757135999112818589431029598233600817840367714983897952629462798695865042881951420753590802147502231501870737330482842077848128930629281695453529835423446014327708834709668696818355134445311321748850849134822363643605038238018298224389475137089777915271972026053049988377271731166536914073833205600125736881091505070139816083621614839204218681008144334987629394253079837231366913058563164857987464584498045983505446873423908131231710062027243454724859513643953412033043469387388503171649702934630021692294660215421213721551492772156352632589466635718975628395676186844642136589421136421320424332402268160227980835348271486154789681987259314932480789202452026036285243228026481489626226359776909301694121843410234658473059829818310342174166927736004767255034175112623627640313833841352812908894356065526791697699041153934137467606845117396107150531303239227433163001508311540168459326446501760922435642920453735153046447136110553701110410524142311723139183970906772146614485263361081299665838680559170241047412085849481388037121707147600867749721628632328148856377353047916291099950330257238906724010236801851325618066008401151175808080139679795045577870791924343806187499718132356673395161285669361721404587188522971244019656559838066190489202335726188580637964044896217205683893875149376939301147768697133712822040884273609285789675848187367599387828719835474779357655083203728549858523315651301037627441800986352319322489404287594087609630883127427398612947163724866357882003936636507655031417513653779231416438137627446304416268363933875232971411408705315612048947782178466451375149192561932554676533906668705018505593079780918860679938442479023685517655472016265762566963677128721237628322341991965623183802908493799480179742555010817153985902406616943757669910499501556252238068251487391721057782375746537573567986698118807499384930775294486846273402501288456546151542802082179533989729727051420438876017820628800341399584727117996776322125502176826345800027814546570410631661429058079187109042173544289808413757386544521867322343196280514035672036040163325168199497707607164995461755104375355930668381282768426212680894945920923730632136419395083523659044327820479178644717554240866362069743590314697622923443135527399058918688900275009796567838375066038642176186662999589569734184806347575988077910706774944104919986974591431536567100348117814397017911007971043319408601720705790783174326923666196934408879794944822714381471466327623367555269080707391607473540427101621087938589865757375202431696385785815406297345974872029781788160543282299320802659473386892110763547021317074734652665516079220197490332333866255630709869778299650338496071813019490809618686228080461070686516857041985164904666910890690928747088725462065125078128042173795580618699045376855454274783170220388721665698014370341797411752582153753463649485368103743701827203954311652416578618443642280959992139564256999404816772917546210873716241800914573803129312404459321239909795365616900142480965948728077332263966997749227482601955073695928107618463213245712436572167874286547649558744466639078641796150870352674858089408015580344913636796645023029442089884579410077438557357505389995133656276520207049286443222335422522425631186975532836388285000680776180092372528266708356560534452544791670999667920726355145917161897413722775129453628524662641762224086720352229863078249948277918845245597788379287241096711808684071772704538114155702501475908920928100477849182964221184036146913581722779848878423494469516048892812852588560362951232159408987073519329840809799713368249461723221644003585261383482425453708109001338424137955971334313464756265368405778261591352869154321268884468842818814614622146162777013559756552034204989932372362400472924346594012898182276942863500898923347682370335293868933468516157632634150686318151263954227739094685899027291081627632529740487144938950685793592183694109862451598167925466434553345636922908982236742038527740309867065455944364456128492807380456156608612362431473080480577671296906462458389425540503436520977681299903688198799212115386128352662764998674204041951592041078253828002163265203590453975744445587451640651688507649989131443761877340442561817039271393270814876085377187235969188445210638533404555401316211680877932837768727567032542992859606268538100757509707059318854585567073680836622300000045061822911462473262086808975244831417931267902528879008819652110847702334433535947984067504925766410596785614299077280586182659249689763552496527846408614210720194294990562910880601800020403761990309883952937839979635615301237229412410309824669331361725618399771697515453475398569574206812293158177690583720592383967513271874391487586470855287848718001515575699212510177860304027863615037442013910131047322292008315452886826701194561043032241155623558377975936416413385055864164925138965900812152575119551292807787845880915843352579566558157845583074656291945461614561915881599958956629143830814561618437761486052779343518844712970240294030914369736119086966047589347518476789218011453030275201915120711272111621592374616317976937820735595273891540686667025154955348450160184864725394720727943064242686157570111844342318811337373598487268320887079392464937095975877440103218880261608064014880258180722128291102410914306438411849340547861787079057359478679817181384524578547844701773776533040770864769579804933867509381839270068997125093294942642980049057237002299151609564768146297694541969921777604113832815196022361986709798793537446902690396735355130780913056440798920227277900986299004820171638209112913734478928288371207129573272196923976126238618378781079422857697494350450481911039964443047072786795691594355307398789488068659973528173778834967073094210374595655060620152229236349492457481525021255848784756875291774397296356433799439936001161804863525389489897462670091583623945211761579010379670908748038849322223920051862544671866005160489160723337783144365416153735963582002873142248472100036747628454894757956228229689652487782914727120242192739424261316175391083259642069379154351780509390445435944426065074599501112174007526261909860373687002642993763865268502842580285770804768702129574460905952568809492319052736453128303874599216535931890401379988174160878943695449183995647544184387072505349436129632975646948779299275451741251758619128020084785103600553339514155208741534844339780973111566955971593759700163248521967528206800231227754101500361762108970901581766710813677264750192383496288515190390896607536686463082427994552600125831565600918860104412344836875358315025211920052853722828065818222247382753687813309321666008547729569879763435455818756914728361423279418862013993626108184308871619747467333670627062175281607489379486723774284553715600256541214717089120080406252417023225404254529528256739312630304874609515084337574639033774433774878938768806521997338064577919154226300779911521738814924517915410520152616002688314376165322954039524146843010085418160666181548803598404755622166531071758388365280189690003231854894397101899802333371550435804307024762046616424426106025912737252253328769857201614018186390611452534570511509496143661810027730008454951434339968557736610132248213304420686003558729039442315266277178572529451856540459866299552960828840609963399316317920765445804089935762937173707609220417474658134242777851236789426367568037225710097380846692381311699431855739422611892316424012080544017352078703259334505010030854465052181563516695301553151615151187388317478149016695256512398043569724585808241963441972283901782596894184808774339843132024669084507039079771742850425607499258721494003356606717562725328624048046432762801390054263779631174360034702887753463070580473968518074380155454927584977327562934121771739829854621305426394785609817486615976848486615757301965417878299419542372990593966475616449026092721798183181188557650177727410931183885638188959292025202606090252159580111566899856935201739193098361899921197311866987658814543060418158274206321561387319473238893269614096526358160728214201135815679940086744349282457913465274498425892754163580750808804260283602583812802019456484792465524861324920915015295466781592103400236950810528703440800855605611025198227972479716755652049938750304796019551024860777870809626813712713932986418905741085082579895968930486608545728854805416715472530213192285358526600435500073334619001426187270124632034190628758664613268174304682009770205871486528695370647191631066969063422387161044337867293793259116318263568637277667429586515880793078889053144396930078780476099151694657810001816986568306177311693530974999621179360543425122780749989117522614234491174231873099005059847136232348091501494986646942379219082558732223361082085962978128514950280881112254676893571845158661752069383172831801273640098727826188478952786291430513482460449813574206483578604882113176043713484181660652402020000246151585766620683988831489430219215499280328417636331967546641855492872511058061430838559642884167454400167926942221713816665795809745572787019757470226426447583681339935328521627525568327961400901766510068027480257115547361163979419748101888515623025684056013452955317850765467374957779751599721337834601892916803644299888197111916632597592259496434752931091212303587770866049559073855844791389942223037450697038921337023695958110830844901941376146216229425746699699202623203959244512167569998720564291265715681405264928819172320428094527150420067742780055420222142852622968308634632717787872193958188154928563375145055613872890343815308525765702212532396782420884493744213386503354665645744023096782040680638618432921958746467203126648939213779359030343595946881003061388503440252043657789254404865103115194709724364313764184254412380320380647680142382240766097609334713966070483173141380040852665979271985256186182646594561195148604473527375001113519650264803271323928955805619630247608352144341846114995566324755326234835183577635534575706950793554539232798348968767084315441372625754702684402366988805395637619472383682093616458006512494333183433889767342889763900333154875164781389687137216505797806986687100545393979693468420746132554176803216577895238613313861275338344079882962944132796651783176253075632732740834603566739034686334300995986510951211719284882392834838073203249814154154670498560724021116440662596484519704861979636776068012239274151637648033693544952634478769048830433396684803321806119594443611740970827903381276094367365157360772889157938154767291123852258323017027203942690993063685421936563953595805862934300725099009151583096373139125066760770333011078792460070097470411382971747942559093173213995054172033478344620376480801327112173471548842471194353329799061788153085417467874850048162992272412428680022741803509422638169210732498801621083942869499652621553061480575345339572736445161443620448118793313536932410487757747934619271856461588014766281290290811857888174896529131603879410227595814066042545105022914795030213218760744552624951625925719552201636350475859176462621091964504905709354615983113494042688420482761891160781166238361794558641117940604988839845390132150778539513095080267287366752041086513089284408343054680521308632985359625030772149616800252567679308685611548302134550350146434263763195801731963030812002924454987662398812470130974378469316602726121095720236240594292516969849741174585310808878402085295196444081924380955707247055505680510025733625650614713692639696904165381121435219269324227628233795580497950229554134291648917769283475713041284304691311432375307511304744702457251362903520892825914854681578505057560377865797476471670512364293631904336795885982284459580688626668793247869083879604282649387016053592507608854673661253628739812525587221608428241433245518726408150814914422282255207471390178729566959305308822099079812884339672598681783969795043790018562464477869652473924839360911723286747902176336988266975033937413933301416987082634810364916328592657206874672548920708174884513435933155649401774730923886218417467791147833035293103916425913408999515973928591620618420790976717601943168704576944975784675716325536478502670681310010601096908749698521826459214184263545957626546139285277208896386655814015583868053758141089554190480556120435189602820746978150993275239756758234847063033096853548163285179854263564676079159695447317742834089698668926034626755494182636931716642403431727107680954373314577748358136230652150042641900345336157744390131371750534640668176514837338683956412142140623927302285107608552927535469855099611490498153681043523078051425254630428589937668206725486907630914865285361955243907274329782593087005365780782376172884126672357769312643369615910903725983208742192736955115156154836872430025201307676500773585284859115211042324158734824925384801062301530485157006701005773326480953667565414983668581857292370859890797950807227159107227865156965603932066565076998698124689271268390042156043415944434357986243108259702300776017701356493058110978524476790483980879772492005818102112165202478359813481653170772429664508443580138626078792092713064400946853939090701578324685055883555475320905291537392507019356053870253975731733861272094948157530871602454422406096124618043534297442908392735431174312056707200269944045149229387732687770394175994726113670909336990462099362527525802654687980477685808141222047601714386713866188327110661308992687543201829215405747960719170615117400258544331687531411339758065155099183540488445823775792447826851996860653478143403313526700986040037056893938925074417271887376919710456331103847716116743609203768141043026431918216112816634845899666225549818548856407468215281911143540766832122022389258309326332672869339018241369498921920231798216876416460401141744438816486412905261261076541572911672408981438807149592553520843529740374973143888604564453217824214429714200971112740166736515293105829000272275807537996730369783448124481614896037471119736438847817831331502299517558292320770562776306988748119970453682868267378710790536432475542217284547949202884594231184706098699624546503179766142512216517388891035493218140792860540064043898021750964971580095561835847902687957323700699945184301655773126814611509205203904577532927417016175902149539720872834494326612442623097692884801193786082258365225327646036106315851538505959273463493577165437797050107971214536147085611378369967602518357032727457904080506684566150407152549193139559093368023990748996039002691926150996382960898574081606555175348520190854484793305366304718779950595445428574294313359046954547916212303720510965707637239715764499582909143659957256019728014391515008838762120454291909533525190101696208821017024488840195240895492729607401776334147494919968404161215043425141477836431523472191924911412882391311777631424798967031803514950545138317437416835315893298827186789267731082489423297303418981714148831255031033217437939835473879791226683759678752447637220578210912548286527200798059605002201880615890166611153489633427536908860271406828648930177195693090106073196444165721290366920319454121769362012661074910883706216631822238073558166801526097822429075569778266101723033708431273596443157901802315579923646553624879926809410168850401002012875695424961197454932547692638639953930978384315244847508732447618961251191200543014086093131774846341637464932369539434125295164155990802217053903096741025344160125838145469380627305406010246394101838664156617124366551970079476488488902481646154288117437148972491703392654712825540207284665605481092349886050929499346096709524905675820207914972204281722429983968061819837413444493832947955059532001662655684822476356752925217307664950060881792000752637313358805602980713227402978874995358187550873398802051807444106171788097563987946327793677077667537479562818668808261695112147955887076358950761638294791585644260287936800916828941117284909670667877522322179462980329751905991699680573318025122489922644641801640449486093524908998869974240612504710499193523511534998888826351991704774474866662903243212506884071142067108366166062613705064513775582600315835716776418819865752088529174881696729415732224863981226693851807858659672068195159109877123685299362934173495512594483154964729331040288876095046871349625544050932573686043351934086557379511809202673213967438827799266313497036822762813588173267164279299423159875900451487656838822367459574103802514831752177603811783856872968534944554990631127305872632176856391308360260072332127169086130282402176262463169869491328954117656932098806659438985295092760570396738849854245922977376808358516584068117801244470535161956490514776928731104366108373909259609260567624653762326969851536769858307164279802010444997424311222690603725649466536501580138822914090837661720319685524941040981745561059167823852260496359497212309067209721394722549450127576949993719505575754954664716429167283100262218909196997035311743838595693154789494066097502756685482323067662668412017694784203969738989751858948110621941022084278811004165699532186465292603732457785919063075719793285470146498343204100935912929416528568846207689885485673465995572664461594483113286729886833254148522784230231207958118478094286997752044338279024548030799048181477693817347406467086030045370460498083175539888674945725920209893053615577597569067370400109408859798724083354814176841302488816850515734753422483818356438183603211955175399387425150129586724894105326209798989924065923173967535646596274996155206755784130643610855630015162772685800141501265754115213059255316444952475743086139903785395877728365748135022745725510717453368704114517677027863464601113824568319314517548031161351361170614270424076393810418971609219008418907403399514043883347079657748610898643555121874580870893953994664318979001357811039055408268416480058734145243574488428943655629570744953648512954112488250732201166800102370244968649454947941209309597338650913130345678388644704414759140333942784918191041530179631299437154436545604041883791632249962376354676521532321198912010000832249909848455135008752501716787533213406051185636893462271426629616986624637758326781748462775100997218786638393412119776810045478080270170134683526274713750153205279533143906914962107621640044467987421562660414423081121680407235968605321543002635537734034516374849850839336650650293096503685815549623695559466300147661912801807554168333016080737616390241105131224767349475880607184502060198822173746048954157605820723585991191856721690748706550369725427698555573898575372333420033678838683159472560907209968456311018261262265023157107091578565933726293582105070643296642084286772671103835250029693583518391428526380333501938101643056320794062475561959243342817696153175565070428353713645421732608512352092743544432337406552212890229578116868021143635905834070835604592005393184889879509169624384668542658027890491295098380241773106112013243092557422446856374330426484175793707660498474067767328060004578376079220877147457655896108885808092254149244838487578555962056615203427649959841337052748291683493741603125201998151766951512460381779391459688881837691225754422772631084283091926733172194688253629938816476436355534510455329815797596856110415975640397947051209029625211132343565758960536819997265893643482917878571894513808535238061091807241218191928844689204450918260205849817825029583028554404130130455309278657010410143091217903238486081056782953453547834471663767126954942537883427656136719961918687704105822521949837003204452873176484718193936652355485566704254882276984403574442234283246609506407401489918808138162528044271091442063867033902713509311957281043739127901993446562552122072355070506659174284978861688645291013130008304118830366847113178504754086801097504690421646670792964392755972912758037423048001680376133122267901119070885170976683779002453860165657528189665334360160065811299513179515584237718177592612037985499989728833658574468639335639737323028046860176742989918146847351970903049387731692879904238236235326317240162765050917318924014236921663948210791778455439001278057261051920004706025397915968345815953540738841164009923882546757606125860290105797200966107770743145257244567320255354319816073627317291371913568503650483123676891427415284226560890651816682504323527363090399071234411032712398988179294777482456114064443621169543894293780928392496791345547410167182630378850097224066654152185912848882701203946221456237336081005367639612853267913410760543345690106432487122008889640641451457855791008449634849410560080626949493052039283234068682128935410441158901991005543182871703456753056512557415940268125103056696142993362491385989619579951450875802257196324320012747317377712673515195225808082706022472754346807631023871037278909686181166677456748078755567869444048750834574963682441301967698179322729668023537741399104561181309812703155790055449318488923689205555527223247733310088578866173481261333050893732080280270216285758662909784617440491892870951366512076392401949344357055609866622273862863108581001710193561678069725417861098636575991978498332285466003510466737185923357374870570877276254815160948711354763516715644522549421750013743564220114115451164388124203538842438639871954804985470527764340525644509468756743779180269248305665542731598190925333232365970930068803093787971047025578232018501534818952330589295775832490970281067175157272201611735537912954531044246861285098582624614932370585416473688430945098192228595036426172543335929840145280823089171918729870344460387949513305257799072202992280739630261390341821389322576610643742578681055235436636868363293261746968251156719360234662686541063196895136188841828016964792827000190257449735369904876965778329942618609083236236281440882346023240551847275457635673073511263424073661725897778827654159944817918532904863123969180659977372591704062807364800821579909259231206030765527162378556982584194349774595094844995390761408523744852683513456795081006407376546019218972305969504819237615081811956957378078207320480434592648131708766655085031611196859021544005616375482124742826193960826479431204099313421886401899555247879698583968972173258365051972260506182903286483893545467826943979282639699073299797360160052083233377714716436622831695663447689428651087145560968201848506683768757811961403455233186925191690592343269586380209310070613161218777451850447237625896030604577739611778619879390290015263455716991181877730562675022537379958968927918622915276717028624937005201877880128878164641774781641392483161042438171127575717773106799095199440251242165855351998841057120241000151123532678740563981234819550455569028650841535623582031095210808225068308601841442243676348070146468321013418754758023722779567376739078821900315496127808816718806010584741702362931685626108752895759554811250779847657360269463630581037050910062578116389085446961133372330011692234272096256409042676144576072215516334413531033421675783245020720958511650013039861511502891128732801346827523440073623768262921598995367095071622507778166671286322475915621935877545880748038539174574644445957409124480997832686962342737644644429809432751190503857083751893935751880378737719867068887761525743721021486659610063520285019630908846473304295564546543831809919405413838502974764474119566544841612681861997781709934811267404953308074182985235099345135518869548303811513409959811563185973593939041920710736412344574654978501666108453448213095344882955006826851502888416969779106554883219865668165004131618711342197026070687198341656011294069186424956079761950333719799590029733127786208931082200864631804208853954011499138466236718965180218894010164213152920697055382608069596859722742956148970523044913008769767458446899837664704029606754653915780263883023567106471841656590589608249267853048022515640599366085510819769317468570887432982945492858192611243823136749671425018648659690339651266286111365858152701206123989454917505241475088856789780827003303230477989617604138421357306272932459897658079404923422265751000470958314539221901452205635866414959490781566755878922667471800739214244495725440565307073279372873754123787377442273480038005421993120679722516801190968821844443822760732360883134908678619505126257854975895663781411617432159748499617114370766388312801618665109845826838458205242567346679496855655115808362425577822252445666082617786587748923199967622245444529070023920706571731071280518003420579904627837549779242215856959705545526308619489814011171648362281447740980017661289279976485527527184878618013345293946066606135675294494427065327778591897856068771765464642020592707061243203679872352006561630340215043267931999755513421253547068324630374413702584041737747563791748007109172147033902244095473341636737919491729291104844245902117522968128771937842510188586435334939401906186875000254167602770241103249509374578707229516797239433438508897996747252810992986798568586764019243776441369272872486285610647813105692136237688329686207724552655045050664970028834376411149120653523372454110487889591105797332642781181252594176829494047236467484104613203297037272717824410185639481780890991738742659801517160589489797905649176004374374669923622038686996449422425379461682618738517612588845423525231460952901353984910424183987149737298740519442345899938617693787014795446114865011971142232894165522969266602454917202902861939037171585386692921366713599791076575861066304437254518633350645711699444224577353215533422601196863062208769864025800386362476237418728835634249975055656620805969300790674601647718255326753787114689219275507294329205035044471910083467119659019018174321500724103172840968977866975747084656286586403661208749809852102983964081033005036564699845094558386531140259535724808102353628765590541344190486150690234432600293630198584513769967223846876563945256371490996771381615703173676006776965721813325484166423532576520904531641095818018679627246302581990572479021544090747525500332276728209751347162977005611678351850446454431233116327375864822738480249858909805788305343457791339581916020094606442723153210137595801959608271811053323663081820365357447701831716894908316279972452710209251383843800133149593262861438334234972175452895566312817691595656095648756551340512571375834561753364714638704332891747716215076146371411295219309266360301362425783878035835272556363276815268016403503338615885961227606961121541968007630795751111662559074514417918446143692604560408206906899050395490706271325948553207941769939630421191556287996122620204415786403535038884774186145119201381505404360825628991544713490185805382869722542096424387948739667747528651467267572426302146489068525238640017399971905726705065974311292202083907595143435934787695147715326150720017899533133600216827935349068436667030791653852256055557624152834760476839937045728819579794030648823456267759851656053390323690113950844302254058367805127578135139293156212824339899071663118097295272778134695934409571826069579986817249521595707484194710981908919056623994588042647990460585685146779994858047525533348016783730774773011117279459321753999257561653798928371824089742651962623840057279751143772043129141564188716764776844146682343206256773224540534474591374190795933097513429906935130658015706502271371506612392256087105566508513506955436284374004717429926771424555782947586746088741518642831052530481186238183939623851902960925979682965771615110177421181596877763048584980330507295523166786870384752843560563589252157846412152276414489494573285059011341011058561637613934557885200839523294976847913047998833743757455894790610366574003081893663482072479589615484979475455309491907960938495158196150434603248340981161875808733446816189731489660881004654929736170060130453328840315001096306109386373986673089710829008497606251464073344002037959040682810056253828359126384251874333973892473840559338483556514109485378865215477002373320344176480374864726441881196163335546003335632999235661488658301575213650279236971300499512476041074401807554323308495423267902385958442249585897413800394237093535910596258289975527190688780062374834436759697615214310368428724639942823348296788335980669540300726693300214687090756919190606947560427770288538473970086510467415692543864546794282792285233984435149193185194558104497906046878141015878234651614054445532529613235760405276960178257971620282727593934202231930939206701435368045770902208648442830638275498930810834783688077173024331965544885264364358829760090472736257574825572926270833359236938714232748290820670121662135973209041931492957096313358771723567001181764480883534658618275486428720918552337015047575876500225880755376121080355824132709796998607053589453861639718299948053603050127288327184436367727984400933555136805567118076169694583480681792413447579933741020885131809408923919600383709571190657024201426629630760635164581680283457425145435417509430752626728551102499223424543015871949290834298056421313792893946290019258672600437970489735811942286844764613753570948363032863960738435974884531068008963571123335928225605610252766127311382759676440557619199163617638557403816217634442467189991029076095477943067816675388366600359500216061264555171255488874334735835619510194849444721540504760493579048159398682321846651221178413379493932392738581819848654912345541846596560300265691067740257413613990063812440256982818474160863024556668663909214676799125597187988358189561779937998404855898553726555940618124099614641416711136407603488080654597432333510911258798520552754446275507334228380674992213660194330267614500494197982758053390099300531105834066501137451251598801562126055638575805555359767748470057199991894195166941691828079759407707341366219271795377362053710833625994446343534657219220470970766814642700188524635397510535302964666735959160739522146481707895928516309544942885827364085079348684690979808375712874557649415596319760539678694536174308579905353594880532118859212375954010181921169326749619610863502393059520276478761554108961536668606222971063421099382626166485716067757577336646157763090710481786723468903046034991013663585638557710831749152766641838099673756650360245926061074168360462613830541028458186266006791325388289859634043066972121389530234326136662855955626475433058335471011359674505632117093651248141500766334646953576941384710183165492021872253011468409413641336375029824944296797660969314910316289877251544806806053680969865612624336799263384015469951866236765529232788078238041861620872376772016767438336329509489711022852679267114301386977298303205724269578210898320034304028774649040904287728824819077342746382254647821442162544932413542250787658051752465587643367229591572399381142529637297483102766029089691470270361696226454822593624843029060535263365458234304804775426590874497325745228584029709637632499359426809183805992227583801741390813549427492368239770650570579987528251199784016273349457509077239317017169106032530002717892571039761604349203140196374370166380157696129218308560735122001224509538263439661954445703223414863040542474637505110418699872408132029901882527495281239705331196335517329010198543999616884816860065268984720926075776161153899325847188429477277147318186557456767021905900390456795614956436610290882645442168778599577179270445225234230693514062875934212202122847912769264455061436716128602338034977147176593536909945502084858502980891794983200440753725788006452782883171966996900926521313201725819708038297737272052934453105425161158505792779608846220427464948195681940501273060559025124698851248522109502539546443807432702889829063509254929558015884495416258086896479936429510308696383986441633012438853543193788395865324725594177447580568047351114982324375222844594817826492601605731576941148946133617887845899228274783227213153909634024626850106319099906379248946145398646560178435446172044294260803890311382110347096221674896545358010003232303593616617022776633334640620376082221257579013030497584862074832213196238118885104959238076957667377098293415362286952559794275710992599652371945688093205265532893044807045937995938984667567223749240842839351960478426445682291349139406814772398730384937530959572017100844843955970411776392842796246904649074997770087053368142149241287493306645402445083634047172834136809974811491970215017932854137812606918873202914596836142367528418848406914778091573106571799418093745202544489478660606365997348010397633632949271366526551122240940393501893912736334462173539859817362128690130964465573611852762763134731166552750789630579465991005505762463741961065359212578006597973344501044416823665289096904766242077523135087983940827403047768935190148407415867724801213705881814403810662218547862184413992675817679162202251304454083679466022249562077955173240213574294055020636862368893675620963406584616964071315730665999072061539365369203558871947465032255479691619213731927779698485664390108981226708779692736767140159411005777051918070377845044330495816642906274456626455503812436101854115700092771242348295513462179384639990883210201126001550647711424301398650701443739685868021331105903259205236242508042390187284637817720274747715929720595745189396017785071265707245522620613827160691059450252966798507156229477208768422359593471482785808703527768797497110595665704718509271053259603616526779474974313867365370114135629848812171130818045981575630214914114025586508658181703074845338940786948718374578661981907413778050685948146274711409542302498643015322123145154894362025822199765078587006880289524722287491707870322510264566007311237881071412699935470047016368739214339114820197134147658808435576052485536942875929519834689930957153501416421948247453279582258262619226469237106277953424730065590788778068980176911970544676404056962727027689214120753156082517513201304208495346187864341880288130702339952672035294763453673429174565480453210231621182403255835947095607314733579241946974937858905295094406103986540203534353155561236645200284599305347876548541690951632703958527268258726400494066467209352016160032267073378375978277695498584452551963499763101323114953043527021956642026218302786344813601131812225287097482368103671890342686787336161611304326510569138514343412020849578323703162254043041208602808774784425502993771764844838399374371967564650880017749125210220846114420443703981074337664929081988974205049372264230222016069429843059612471628721172011766992692591571040995603170534335211920425102622891446519614465417910616672804490502947969961579911179668506761924462410469673151827617950529494390247306319016330634239977176723323178814610407788928629248023307482587903322535356558907705046727154936921066904443509336496781220552331342898696037851129303129166504449178713755424781162462918744133518577608778317847765860101897004051897141404451144565809460971891848165477469063595092847126432993361993164911446748354078840559233675109888050585328453438168911291642637288231499557158527794503235593669639383196701816725476509368667959205980977679694859614142183934526967745709554216168809194837599276847876518957672043283866947931338009174561824059247791064637649132685062899136664148026921022229957587300764214523244166192616983239261856625431966481727539614438176830278998294654831088671751504599796837340637113710180139377068947762566317093274916071137587448122473074206621337932530908663470413200475323583182397149285583344683028662689741042989892780152662710066196029215174060162419876510273101938498220107972910426979058956993259356554243893532259004233740814805324977959150625997044450879229029984150800652230711927403436676245847904000746781677432364879984704137302789924847573807251337749298939989294357319885145052523952795857655095418243427049535973139186006426418577471014644652024211776676035909922576544396629938854955763886739454369032469478892393540180295970160904689294419246389097544930358024577128230124923115704010384360404408953308491139429406147149852788683700248839930978966334086978626399719183953002212510329799905052396961558768514451625700032545830208316813887461709488069058912186490642252861150183021959358148936180827643892598991246792921584554549521467592742108845223012481902176253669046648920912006179553685552577719367149125519167006517368988188525444935889150717518251028120117480232203023903249592094030034839872020910016045243539525396047956436123653793607862233170481945285203627171262018803080635138976178310773949696677009832877478499331368767471092086615539905405259103026174880250668177200939688969529512683007222503018398310099111308847023681382551084633344859954768302857565684132774003486026929045194254022376199428060039628391045082359999945260177416249703473414024088508468351235649771728005557885095661124150585530205999832954937310330842780505562301531138743052809878214749411289593735344066564990235557739674854307934592511685365473696339185677330297181617211538305047793780291028400795904040793761267069599777438395519625013959174858684913397232156703322566695156185486826157083576904484507875143186917874941907148557784211439182892080181658217330121976459677096363751908138434628291993855254205075741405188710010593874456853427283251107672189843000641553861490243070308750273343034373999655715554329416330359488623599700362816057302013450226004449620996475449524136222902129551142543833123760387360284955579593727338516584093570129074309092605055032470640283395531747439414238968220905222936100114497020118095142545272922884207284101621732052897253355383333739298646903863883993702790826398789839833683787347050377926957176148380742078044723137575827700091759285736375041407096028556117414110218082341097791010689327025021253804989793411704232739421662922353973179211762353849647764685664864608073641471724767684602653497859942138547686320044145170944647940722624295660897926305247271410771466402148322944403676987555512193290789635829232454968393492498681523436624023748367481672686348815268157045177133180585774170122292936104467299551161900691347225770642795333168216626387487941697007959305880739240716321313926926335680352016776444884359006720486601632229076141989533054051764017949989212906113383654184092167543280461309873312567005984651322248984318456466285896750635031182045806582849051019469863227960944210421689996542845543843511551539838707037725090592559082481292917702244565187375253624627837511828090863609509092249159978286560606823048507618064728516890742354358331505038335937408301818508410908707401535162717231416622439738841748667710162260984262452728156468177601632352070148423347047489337173696570863787898704598465821905436255724749686227784174102145065192086878928580468654329802572944212088820882074598777227435387037965354658133257032176948149990911193620200418278348568941633296750003149407165183640826691776085575227544034015026859039639475541699882954743584899635892457520965990948153399394004354079368893257381267873404661222097129949184285701915116832616979684088023962685944661244638543748363861724445863526537171277696341320115780868254464012272326211736952983556323623161576963494511869626410444573784597451877199811375425154742945923544687018318295479754537995026995382001175996642651226713451831266414573467073526191200778999710565248314242492077294321521943391783312772186516535120023303658295384366927311288334351440136808832424039165564528920316338685044715566554387396433683565338564254205568747828474457567552881087418899181406560936131371633878355539398277390125398745327300680416739015965955834055153096529214040007003805745428807936259218885820985716728004584560734434886461421844728167646067670032938124077188130057006759068047599843310319399694652503574937134599689800582371763091838241140817719181518439625494419780327974525995639593990502402670845121689590349002608285245521683528040590433171416278834107846049931036962621140771043356444362830914463022357598792488584361050797667515712814066282403727673964678280046105882063593983624668835588906686483434558666379990437680995235954138642541325570427520893978552285590500820957983027651393400019703540873546537367542677603001619809635418177840348634750181040314272928409621465399894178492757607212318615055789901763477927819848159394846925402440458160812765382597225614535132936827013881574688216488612375592819949805657549887953736221550501297408411814467443513913100813467095323122568165033562388118321025097627061213624674060363255664036837189442767975386569586738148839805860332158081692816398794411496797076514592692171804219297327399693396078561125662654544255892822640206693031183787727930693501475931034192327112070047211131100093188790150405720228833028104515879757438489913294129327307194761328052577089416326737400946370298304814238967018041409339630217071965413197064119466064923835821963733875491336675816932173341969354413614954811725460056141177962961780541422323470310846489489431155431543446851245681569233552651298249648867322789224016689400111274925755377528629614093378033026394356245434360396350063256677784434452805872401908932453882209456589076641855176220858681811696880815905044128808028583101554038322100700746927005988447101393144030853657855335076449253405146486546549015895804338424253534122063182550690033195133456929614263142845556388650391227382932116100367697426458082118855083463431332752304106716926448254369285624805788621551703462197873828956641997091768251130820121060374674748614893459089044260370864511921229441593537786966155747381303068410884006706866020971290673857828640048426229100257406346914521302080116087839108115538526397734410369712104782153133647103481423942459162677281447410169253240814223063963668735191934244762113806610721924085646636402619284993421370107621535166069016400295311495665903945666377964949994420095726284611561772330577266767746889499390626377626895029069702051057828922043316424011211324094224424706836668591683725237371491547989615743075316738846332980981025017669252104675559117192221987931573909036086620114059584963550054620335656908263010070064686191857811373668696134322787538448633866330021048084774281099867896534764379953124654331318013464354094379036897560307240541974219308043973039816503405118392769263480254932663872145309840222881676459526791641241104168030918132864505318710497526551571831191391174301760161137907793995061808118151695205679959799166440935736672398829627498971592790281123745819475038495091544422478376442488289814817963472845034333118991598565138647293711316778741287188012899853475004440599791810645711621775961035604411257688751890333989495467425466405211778607119981821391100402306507328801964783142687513983000149592817563575794814980568486508905967214286093049257778870737619918711807992862453567014847400712716383065798205718713399120024091879157671533161952025038355062668139295179751950699739255820312803196640798396980001065243862657444963541321376312037382549903231185062665124792018788804590447625119060293250317572057132824409800851898297738124491196717223098329361036099268038710864575421271869186025642082690808313214273113191289377388550072385213881223693047288412283480519412464059616329797687118620144652834404156570128532442882465401540238513678061806788535108922834603639084915953162045396478422891081452883932680548841542729224594328529139530085627535994713567819669191997596166930632303597703496265355144689114221708429488718447895495129828560332559198268564984209680855692976393308281071107021307711947970310932952009576794934762965792199164593889712907483115823296983305923560330162062150455823796225596795119190789135766526488803652600828672437698735564163110213443789819484539069890110859350357424901328155543059419233303237005407955855030405491141982973321127484655833100899775996205679943888303351027365914357917588969039954748828427366119082544342289149628195491685725595348872651015621116713782031713897738597259257286873434221664148295826562158821561491743142191281868525891417679370331228496114133979661584571088064589007462738132704978614253249077757888951135372556963827603539579964879724286502445831206719608746316601550723022263869020893480766311103399790524260538315951227316894664082775072304945254237595952156518180129679194346840997529358309532952080139838982021771439766413729320096736612381223765066726624958930117306931820827396764365190198362041141693093059923491107332069627977453871354157921272378764911772374478026476760083775270817310413588145996600005389886362228690977111643372698337957198852428933907287511106384274379590370388957191264313011204956161740049662119965817968862097224681565001644426815663799198359073500431450449170848704273517685084082767293629813277398477853193456516511958818496196765173526927522351501684865078595001104100955578437167494252296790535084433592972118451874046532111963372848638521032270216382882892790585862129536675176659943118452747582734988726987913097001090824684507288487019638881078587803599751804254147820905803779180652229996970907881163204810164168954861576576941351608178316036129229180688608993995569817513893315563207467710658195349879095156233077743958767562766943107990348542577789820926377467355125860876946785308472216396269947178739923547886423013495283075841457300788868094894691846186733193267109938780109034992513622584884994638349167647830954781408261025453659871240514593140212332940798453810657020629147872237006313061088356755081402425567753966394524879137628993871427749852241938436650903517949953230018907688168005005363488677335208115083124851699312082895474227576449960601582232076289441079119366442576505239946583398456917599897379438491877389758266373208064385860552750211605071035998975026454166916962454433363933053450499768887197442640106196993070331470368071791830658650355592137892627073828237979203271596888462288434738816635724584641274723575668508958792077438682216428817451733157978194955331810217325130401471142594381430205592697767026235238979518197936723154436203692668953326639636663492529350568883619094395057138734714924551892622157123209360990213373362973249178351243470126652671404872836257173319212443901515351689642258549836720518911462779881495617191770586804226846240606751589297574889571391203548478641764041039517526752493175406671847524039296638723573328389786080942140689979556921339038757573770235832740854960151329216090119206595520197129342716269285498550553436672860582983986346148691836187983511031024756721412959503612217433547101384951508007273252741399413081458054834778440078084010853650728192738247405148721726623624091005846618520111799657443598852283036617475935707114344569533472897939956146943722373348779264570361341926915380087144415570593556317018690017389575468066758158615819843069400485916647849578478140743960739015197122160362946715816261955703163551761204743012030044065414993721303431432354853292837902105068470976594726510031622824394947849610079546345476828588571824568891246002429439958224391776944008555913186486269389970997401951298946862415590733734485434620458027755486207638459387581571950314031848544795894933615128908786477840657089450786510120972054010876727100012748335414091953399797801737545676837020027453383376310790905610034716640915356381873222011529247256417106978877243626646191775737403290443057065671046588948264356044799894257634952619542548052961190553276635967413765790288534731579200806927765765375238202507530065977561577870365343325025520784535115687332731570988047437447542036073347949416959608849244054279958221594332449716862601032559023556619382585936068262593353583528958173274238493118765655297175964640183537176754145501918708326177594366165886161605715368612196995019032487357384166560368441145804860560647589807737809876157114637076962794882784848619055747043356895147637816632443156517658599285247556614383442148146157421522132796388422861202307867029614664376972490122262968116657225279632338940747056655006430520118918268189838253490996195552981669717649289742050989331197003746534663801393552086069629366735073493862190683128575723892364392243926282898554936251676668916643999126313913700523429119758944777314405506864234155926109105279771544679270436674971703141852196106232155482327277923065175034367386923769256074132844396527710691517220770361882488277896352526710589237930663830612583297304504407497326839208642421019210324337219555518373466528555639132040055990374635717349468044317253802591904475083209290790065811636211531108223110339519443694151204686802192857604590050948205082722869686813625217470329175676245175348513842900518865233645731872970378314550874101337822953540736022635511568444412521682547047684867689786431167223661396810645100285454909347583877886685987340125817384855266249652488033109564964409973097148648605890582027569754164369856325457076598307714313813255496066982957491098549855876486390856212695029459209466636703119101957116931984480993262243043977709981779047077406758170729711918954924947136599402754210716016617900597523967797954787769141329597972816185315485174379860992962187556874960660213501923887263923743994034044424331735667909041472862239155531511122886084928619882065813833704227861551490623805635112009977324406905298260571878403149065483079590207910606999579024579957398759442320768961605429288448571724311570853117112075526586527558285455343076598228904436838009853656900683852648292623389337871296931056088145364265459465940100556452665453036043106642212835145193279767186306980837944198161391355938414173731275524856537674437296980327193384694188167464741485686374257125489028945169579859328387214775034349358684568157147565678973854391920696380099884338547472017295929030622981691820091079689343948008077184224274273147262091345268801121898140718050657416107431394441579135055433696754562311171837226445849833384548944846198491169726022697321012027539387453310143614265500296831598090180863190456819735415262360639826380628161998101143792919945005365139538968556584875446613814038187232831619169938389184230186392166769741385295568844214343656893687765037876642748726516715488181970824885236411510102421429844285686704975202864943504805783851168262324034449705934967343019180171606663123918666308750635807826604306850077346922549424930405498567903278526835646020023586650666678586653631326268055456527155268236119435642942657244427676104730810892273710031813715137296241270946287040353874652697349644129995277696657727048950909601432415750414610461444447589412660995179927990948113105476098469637593375539644352709523121102340358181018941873858553461627736417481900709921250090380986312439464666578044803030027856239531870570143990955625078919502589700702424016025537386668860623102321632176814607626453919758035293596072788360242416483946396696546316007019234999783811833199551346641420514709209494455992849871894380756904396797135999860662107922050869930363169893793536118559727734141623980945169712124934523008269609770400947071733188704270131948223304928106242361245830220194022843542665495646585544355228193847039730185777120476478352021220292318868796117227712662658898701913221634405363710269194693948657196757029197232194109398771852929428769850831753445240739357848145530871415933706215424062934560332037136955133843242107985485987141583714017919824095453498032811308422800564378734436843874084205384950822754846573528153822923755835563464653938435950109741396128270395103707415214577529177228766034464828749129063793360941117653526671839477006888079607815161450194878011856002378128329952112513078844618274785207673500343198078064538332417680311190078449508814232524207146239657051314095049618017912289746136682951328220851606264070460855476470767927457921956170021809805568731357717128942997306313583008606342629111745745320307452677133745152320173962603209072969340414249278899615456816110700296454438707150317777405690497867348280969722042409574432918888902594661203782777615056309412154119756859948390514949515183538600985965870148076949520688567656848462694986418710960405450556102735462935930743737111521496314361625687659260386099583131594340219685399891579082116657583841336291868146037349451042613199017328352373971992327256601944291315938938524416825306832811371584460056783513291446781279042535148739749722228097892954034549765436016336705379417448777386855669528742829781692586921259287077241530754827488608853053877827749237722475503055938534696459451417367098821286578458433189694756664337080104108468288995787620309818516884237075976346460127260829758792490053813624829343855317687597258977587795689570133634188035107721731981888075513038632094918940769436240005514614065043724967846224458695200500303084071162437034282835690133629261380049815567915479564855707895142993088584769773148344023448482610617960547637341261635998976206385737906134940703246231049519506454473156513316958769325546819952388668488359598458309844565299165379267822256726882515288121454054601580103903162040265330455955716136423843812907313315161266174317279436577286056860752873478587619878435683998341323693034775818901444998481213404878862388447010842001070874446234320556116849937789988509001919280769963156345784478722417138936493589021021227089173109563931802244274292119680592965856627601800602096896225159293750481412832138890817401181674988097239054528052065699141100506061403793164260107658107953630339819582885301704066581832476546327208697456649079451592761558067673703492082115274095942779254773623156567170120684886315770662350950270023463697369023433485866030734914392283563568703577082948510702179181040598844306254617802358175369340152395803636445345783523307436105928047697261145380182002513560697043019866180848886353933843176572516093897252203099981210637577084767027639107176711753278336185080246287530832056395446930904444373963544863284591251746709771524146219079379086319380080295033029484330527872245463218550247822447820527177545689560390068347381721325308537999664677867703402076903089274606778328902994240280355224673431860849409779298852233240076127607131797731260157842303751854228795130518405723607573551135626242382069253288093330909724066788970199048996401272423925209755037790792664821112425402515880384877232480925360940331960968141028889115436598596500110509742968501232070969024294593352259697964427641945327083381723331398648266018050248789488569382016763912763978040301182359411220849466532809680771621150704955409848304344052748566231874596713462592194364944471118617498998950582985173294123859423758175675880566418988244701426049528747525209878363661638486628248784693350562955346344961668562277775734127104933132298150033349014782185699573365199558676882958707105169926308763140602732010581524994595490471816146201344207986219908567685711157319984105095243006724799744154299519601560206259192271924761626913609565493103948209534347178041351663409487285474925313475157296758057650264523793243867339716237174218095843239889638591172266504104600841104571650170075003920869509539846498250395092442003935196504789155593125181776617728458456404704285402103008000201928683067283659072306585132516326112646527715729047244023726928214346063772173958133832485900260927779467980983050310445800519351084471709183030281396665513378325740723506913654574517582753291469676846767788553144451168538949436607794963284403057158631724117770203357835466955901075002037111494263143941796875979909408737454096196095156052572122803101201393967410643046861809457296417746737437522077498065021145764047011275416768881190280688828017738400906473719139672537514255801546118210709155156392983009309525859151162583475812385260944166365770720521515586247015250574059852961972552245434737479366006031753586829603349525363667243383141264468231324642143464635905392457419936336317983452301467689378892947745066926723376571901275629693390625205498472702004760793967155023837527795464130688951028322618110126864246722790124398342290219002975033942755791027024556766375897929098777946037596729795548802287499384302501009502668843176236387185964906527985362018915190965103527000919056558392488153344096097587426179839096015069068587898907743497594520708635579748952469577516351551442232429079443104294277713755276201900662502467145614209955471259654772495643298061662514422292054177307247581293943118080767538069632655477266061999245132681858762070083412607980595547292041359711755199283900508563050764077232093702713716714002315044165367742606481350365927784366687729543732992041139267506429914386723852022767800288867990914094734092533292907374640889727093571056898775955223808589140308560581155685106742739924458573829319861896526967774035754399968156811484279709305460749368698029795341794381726596943590776058490148017687999735158796272649634720276577010875605556169846104646792290715667041300706518901589720934052427326858944878676514190617926124223669293697344585367578085437287217835499032465739060005574263843252224268209453426018055491459967020085596088264497678776008349414594027066577567553604271049128031528521505008947049890514274096049498006532655547525558796335292899505584232787519476760805458336757179689114825074306657304060711797891810154802688833623238548996814579141837381597898316343829577021145997470277874833692702418174805237637329306820266841858170799164082265605093573198903801628787047747476442473156043405179937724376859077528271717221825622708415336410109566696707968662728957959972895153180088470863939623704039701154365110239515173234557957998964297646747396432413984549343614387903808598029937407694461481019569097623760881423690983469699209517773732558482810407681422726513063189071528437549962826198018484888144097437947823119807669572739336661163976309376574817380650507493100115356137181290564135486280207645720655073836705412789716887351605711720720466487084323733385749017618119455631909017719481598645472782203461770729014582502853426619890386098477634399307724775877832391453122919825934328588905540833310772374879770746007716832730586911814610150504706772046223469883652846148753619107771058246924226721504167396690741201178486726597610570278947778109193939870662015781354301991893400139381386126243618730658170832882960958592910413699412923043284031844907883216294759877471251728151195860813005398891839163823292351686496705994515041729681241013439163557033168517799953270615961335903175568533581443851761856941629679641738846661248601207532710544908324028622656734278368258525238482551213929403384004066555296450501135653809521096324573352787652320996345559763160586820478789283633661869208279492844048989635835573721010820596327602386834762214550168632803255211356146672240197479613731030304118794799685936722674327642134092729542323290789001944260012251607318750978996613252372394062983416588373965565154812606456408490213303896004732590583238211187172153486701567825387884033666592345841710024587539028342478052374876450032451097555183075413935464777073097256465426300817900611632394456288898231325446708269135792295535580402197394941003082804517292151479401089842558911318960855649520108893399458013869745332922483578245116372759790765394876632203284287526315329559194698505018049354790339966104845413592972471113991080095168264887544316470717057904550126389337500891614368776386528389671610458347507410385155654226117067285826901835807388770507942060425176362921297144199144304078743074372200043579922441515184066581493805264010911918366570763360799405437991525078189010353867320655448279559759631172074230415506636019345572040673665407480159951029570964092523362896484995598582296863196811418667762140708244561737631290091152808621852090305312904643377066855339400774870340152823518635292712115956440048464512065319543535331824699738889766408544072410088508748710347579489017459334493825705181293407523812460938741699857542147131431883660750355761974860872007063786379201247042332076673122804236110150557650157860507705277114847752018768814265291280934013862097800460698561197695274599216290774722988541574534713885479708243103376860732141657551830935077010293766294059469844779744192494376579647493463594890838927919948844499968725175609884441204969646619869366125108844013592029588783775185433714154085209014181877285089190074651567091229114218377966557675407806906413593238612458730887620653713592818962957240273229416843903895723926057080086889662834886782556818279007295191092345337716348164497409220375481185164947143508468425676645994483127866648649737349009008780883503197709784938025913442591509362172963665000224872410035820942821779217882011885525563740772837383417196795354843237389232897132332774340431623246906031573327034559984376717284264853671044464986137990785721064745202731421656463693924651036888165561647666595494500937287279525493825862240569073120466279816513804647209179733703882604769630481327247445321831433223246987852889019757868072061478305927255724298844124857639339199077750539218339549904150890553472783960730465165140971028997133214251477061509747422023181581985601631400311966957004818643784379541664159659922956611886925021667548241587682309215247101046656060857473675853890349524569990503266389655761988196239630090775677661522852496415526072452219863142572627736132395822950613558675131674995881271218629519366473554081526171792977315720166581555316860395778719933821394954043027016727715173127493427633548832356289322414615004897757067039388577953233444153892824497072360410523054479300445152655573337326460216227807687287258595166796895678909784369342686038517645474473916877136956318387145584118703468811420269601898863541454010918897365090442786828376964585340922556089450605193260728298618478110096474928523797593705385910874138291130685862041722357814804324045483961308872295395102990177913280183619602460680282422113594081985143704791650240643535656181360966114313895751618606010620991137514298704683611579423533693612168814918371533261621547824136385395603493520665950896266472586937609325072434857286606870627583503400928215710828252279975164965955710792516398201948996309620524815781945109027742703840669821967473587242034074893418880465425327301030373800354497701717905909324215234916567216441613939839006341105455301273147734454544413052404895101792081293241923419114933262761877219098370204208979742121541166076566567589383375228798862845129052456930327549056671074093561005165157642997684197900285954466829400011527005571785711230364088433121838253443428302977127772564774885871535107616986218346857791965223155099713679888047792776013796766182875816131563758150871218790868451610049457615596142088187171157851316319871841997550872734368406997616017821853285365892712471850061775389859509043040399635768932029499627923503272212437389953030200160484512464741913226685981384659041269493210159945600189300488649636724657799308439966306451683692349541574696329788588894731978125812399367900801858731698797197612942458387788346415780171360294967248522055260550222526120742106524838235927245542049865295251594765818181115808770085456745234320054318747144674639994049153682217383117223522546210618924973736793862270240705678810014815185946572411004139139804872698629142226118201765464841801383595770344919313504298768798428848112225170236047433771407863812614631074759432645365590817393522189344891997038702515495961454658060417303932256844016897683488735966280697634885307357870367170325952191177955567717973822328525442583622186395767697227678621858404803473011867365271138184745505889469731333220661124624387874854842620363603893136366313762049734547103490588228115714841163559476943592271073595779716301601144957163617116359837433191941250297926614842537927441119766634541319931866981219596710165521250359075536687736224303693082328211217527865648124839687061892003524157671146135171960864726436354808432756502346559774807044556581866335249163471826718605036977353829660132466955475369539723003533178413923918560296706448158067194754971522786055090315016752449090180548167755741938438593123483717306054728609625926638794282858796419328219226396526306361687457301693270143221803731734724804765886729995088272462288542325574784874728234314498891160378320708829740440776772648646859001829136441414452885948542271920439128036632231328947193560720114832388833262659288074934214884946969443659344871724141773601386479151740478386259364245073840705935214102291147837554543051265765572808444582836475421892880095006110904675907724314992868137499561569429524481456514475619020255786082876631455336224129894414089329301355879955068217372759270106710469300237192133629097034746977853081086324877906280715997774982070646147183510863841760406646395533909924829972087878183441044009446556587573913798073960059393443888689305452320861165515241104110264565840151747666743126281901755202458753956497753270442549117547815264395478570569831040712732722162815577471941183888579806998007334287119101324919833701642852256637397280470411136206509869950935642620374012664860870324079286705695789427698690561985120197200484463486004319369384315240539751794219738685927150062040928637709196734294905200015731795587283387449191251045829210516484671050404594896792794626493772718102451896144818499866137420755402842247862264573371938021555260405049212534522014549776317445482614059891233229791713912476126110622642226687358982478763670253755195541666751917211213304405537248033056442787300558406908536060340234504075251472358900910462648219123876652278349617209015041915644532507041832020423352764588830743430979516866167510264496606385110654364489638721945260288806856687047567191041678049853111939242562637875265504894979456299688034358429196078707679732498258420467501295780306566076630776526870497846422583599973902486061658848166311023815762444898365405041773364028928350797654497005279909316225998594777974227104883504720379057618648797459863408894979203572470292060231049826965355791974702746944645832571266090423511648836619756780499072369529145426449879551328047646737349238074248997581546961356711718187162671576886835451838507371252899900542099389818348808069424486976804743478383289399932676451613387541495626519784758668356622783203169350711314468987678132978284426637576482767783101905375210480582273205068097174767566720354101043434312420491114770615760635228240174871392205135451231939666746580164179232094199781835588053030035152273631078468114356413958341219249758273071261191344569741837441187623861367826271455215410156962790255679623081852999703278054699227138421544145988956127340650032642633231798960029448084287822630224620329027572792723298736750429388462979534229685884535504958553934809192762107944281884901447514536833960115405525787306029788387966430510196866550771454565060781562802235743537078993978657150544560804627398254186462215489060325382703271870166095904188654052848368865565075162638800876619023201226588964933811426562980410399739199870980246309485239042152192610358581945972853574240379761698679642878405787046594300197375852584546758260421137691611577061084984656840053214976106496905408674281784664666602430410806724124666867277274455322649475154172501981338456867339145981952843225227320615687258999385413085342146639563042947616427023332246461077730570269487601518247743174287324271912877908195332075225793771134082691556736625166517739722968645178074622814249638051134548644999566043339555477813073878420736689398347092476756151445781850128679235152820550974936214952968032439363540983720081265552700408520988970751966007357586759981674457262304346719202610584575206504688056552876309419260401705392350199525862010203485317833275097405072831630180145734250857151550164244281812666653415653618161375589029911869842632662455710069880508888278939048931691258017337806030678448769718359003641769158363899751662298730292029756668833668309356152712032466814062062568782156320165683121013586552057236407441932986633430649605243740786685204694400041395019567387443144503430854798906838214033443213229275297280530605880208620487075128613729840265997320988970612832039795220811272347104983752546239707560291883657003504923666840113077146921595363412565222473375900207930729913456537108325400071483483915306260498220611548395543102444542500711685648184010596715178167978552631915937583431196714956729207390821606847014183006943638351681980977138544210193877516014295181568868354437267968775583865084976279126020221681786739655403040330681036015670376906000552920074985744652312038208060524717639355882609825797958473632632891379221509644219819430438366782014152758488878349742414997261679819765475019547635668179446255587079192932258320110965818732398238475834040033191191303885850139407533512063734657122822503527636157415662734849542070070068424601472167636025961585795108535740163589964844893933254735174539394317187194227633487909203514298546513374868764936695484667934013908743689886355535256852185910070264343506221280288210571555359358436646375747804986971921390474548254627530685949944202532341868661764296054433026554257216639960999243709181192385568718836382481771435874946290661587481925378928053090872888504531432438718050254802695409054811497683380746820580286225390472018429646940833262434656896100895297636876307587020159884671619181551502586569969014628494448021802722394179367843641811335563154602512755748371288216080171352962203123540418684111768066202120340772699651371506564403563431974026116486160919671771596010182665406494633129092259396983237874928824567842255997895889616711622076765466137456228027453504991437532480075100214464242461043665948261981463652990688220031926875449042621481805993140707489907269725562766404292218435720332715927767393667406029260321064271516773193222734864332323512695054334531946493326823562108801198624146257666541042615615658785435481675927365192132930766221659090080172790820036357821940290386281804308773329483984616045849131643277441796519982743292444318289941780253095092391677972809814888837417646326671126469608952470921869494481929101973909857426347913921807534576554700285702631515097475274052056001248818733415415381402414655543428144771083680245586842951985411000197927399252263394011714802827087426431325013867208396567768992238281435859662074694898115840198283843488497025647227060339348924781935911877469731938370754841442505021438015095685088412256406673895970615722827013666361093692734837495464396806095688110817476378269601248184698829046812994001599758198871532574356012385061991511587645420189028729918044926662827963134206662474922968829164288721860655532601103553666285975139216429038533203742642595950088810845322078425686258208965040675055042057706509772526148297515818535458676019299099923641601823337001812091156243801788853117330827021677712476564516709834789853949640177426332516860126941890552957468497400632452333412512135000628625046528311123918392839694734231112045094493937602843805288957515620545534507684998618948506561794363964475533615129678037639479762189174718992123785717614694820451516516501103608405458974144410541831164072961298901409822439253066185034993816979910407759633733832094403573028059576789382266086928623648058200826215460366291816039239882361265178891230537428401541051183692137275596359338073275193553691281047175856247234261155722022462073016308413350187752682338411462319709117659698320968110998718922186219540553643646989519624948909116378207695786817664631293125205885892195141400766475735883577442897661655070190818648117786779598038198665043987183649258549751212020621764153274779040388835607503911310233572193170704217405456169170816611888350432565626843852470011390814475008181857953711718826051657054823408882279834196541629071114477864030699181678989912896354201806300126671179222592473661064225962161358861224217431937097050474711085754037030843480737516618287536472937577327486228825743873833281663375560804594863267947712328132024040332683255190693242363935937674163328927400243938929777633903215456595354441516558246186861988803382525718638523953261636006753989795342814905185252087051801056990374464166263285246086908164654677649744517240348182457639164243962781051990710449456875736879890082077977520019461587212262754095887546375694549125483514246349017794834410635245466081052332119231626143602393251334115097677186286554485517398327834021593231518415015995867676882598491933402418604024189617206393495701724578288407533772706444401717497169703321886115499421351369356957893028603640610171972575404136502117347671799503963292204118306283417071521120618855097143964325524419780447098890643942645739408180122388577824110267391165651367333441520157239868707593557167737675576376513536231301396007479574775692945852375333658591396805525763368273362640078375357099363957365812527285512354729590647188204446893085568550801851585341111546978444756015660150920959526791003372576104136171048813637350114429131684982394557630636655042327822840169716952675276013646249738075516691752920899623073064482178895168448280673985952125680008694729271625591481446433307036489131582392741038441422664373131558284236890705876650883457113437929258433236679152484299302692239346683410487099792210445240251852917799452668912090013749959100808074992846337864472881771265756789354235298531368741931832978597640666588213692024195001434983703485183586852095556918460971556590633507476762068358635943433107104466641813138203700991127004821107004595387973316878907657714986253056232054319668826506725304819163355204511975346722631569055581392510488442417545325627371813269180334148801320008150505352915713723200400945707979075807503401975175014262304746830714434283019645096093437462787725104167238052179690669980641491247274133888912326612700587806943525174802510302218974774269800400310753320650420169556818786712013949241354511143108116684222991365730676422054503868700913461484270692241542077825126209579712096266449647564996292332277916579155475538726414175197145843081943831019638266627425149634365118911142272896320325537665676363539187723250011342485590077025560452718290532752734279679605915401839151961055849811235731586559816333526103762427853559989876350792464212353017975177760449285199997607458560520676749672702884848869372826736803556635407895542776297379330524958397435046838071860185163601123738847225396328418244293286105702389859169505849061397714742990949796111319206849401399955338381488799035393088633088514170466755955974684432830173302161060732972358032847281144795563514228469022042454499333652932739161095524822795163562045315576052815190290336174193008508063206521846083570799812446014530596320298774774956952899960102848041485756017931392800680260309562719465725203510224095878273128489705364746072463882439538938037941487923934918621055655206405061732106510688623314231975172618662220010606888101643000908096226587927725212545069917648746419252488666771246472230182823091435480614588835284885455555222730167163348067633094355279226075509971872181039003110704071375936791192018144522667920023527947557917717184166557014260891536896098184578975025229373409984733208104377467020116669459531740655429492846564669234417131829792797874349663546802449096203625167210632061221818850145563837934002216715609096426659881015600086753046234633357532932591962182425523412077090132552678240391915966967492756566050736837116604514158978069701020491929398425389531372960414630134320758847537204275039797624227080819602289533137052211938507782915357926272464783586135046011739538236925110295373550747293086501910973690486701283030893827874865461015581741771637430303885833627033512124841056877423975971620462228177495036010890174578993705666392897053288589203545949141624148773314270002596924625098221091828976588627251999897796258048623519374101235243576506561127121525439807138739455461788217729756213630981181707608297564379104072506122103432298400534758926576918333709199074488484071868615490224830336486136692660818983003300562116040172326830334716885113491061149557644045912077320312096996053799217404866560383289862736049037367334336298547833313850594385928186850947331561614411379947008157624932033711030268203395001249777464782102757979075702152437016299306807541652851088946542454940973942319918592833816280177466416026105463833546660763728154512914261929135930793815719492477269613997203195711033731155734300895747128065951838230009483654902750482724876496666315169825893745778399525569342934816142491354509668516579304680233699292503004066353753790158613131876283302538664536391346823314487037046132252201568539317563800612839575435420056049977850350015514357831578544960006686918878255666961958787587941727355958007839252572167217258957449506742867577208488691627941284986093313044264210291653020544335543178835538033622956624893320167349411713349628435808039785772930586103443491958598557734383170091240999020260645576501833796387200543622027791359015315208151301467346146421002438789365491446593456883623111202211221247357426974179408951034638282738506815507362673503961038327086904073838104008379271010705200269910237908869289130847432576014233872547866521147820974452690474465790212837869497925359510747504638498200782817148986791778572194305801498721917271944496891688905575028653929698897593773754053244130256773559217824602831939135955496301868409604013586865611781238155013818449316925313196392256640673863525033225898619547886185373562483953096055365911211483249160880799844893106652203265591238032116068174801762240686183652889405856537316467046120330846527845731536723336584464374833315231218266111859975471228009418777890244360099702210432346457634732136805650785984240061638177194951314924472248779353769307112043546360377618889995813088784443329900294590709567825810361813874240713656495105449409657314462399097302601705607394792255123122407058108556080022296284161338175500192529895700397779852515700603720827193134924714008414961745585140105876519899890094055957721389406032369585853042497330530018155648747032437745287087163347051447410943016910792017832499944985423384447074645527314627250475527441731766272592405312281464984420903713055980818159021945880252350715765473087346659065621155157855606968891657549571906465028153685029446113551691111479204235757401632162901779362980133111402831355631625918085702544683716383297836137132810504682229184329605289803093308814165341026560796473094991503280663255546744932317627451578659208118645839421449146342084375501835753185591475716272511499562530735159406735940006174090352370665939193523091357429343493645781927964161606536650405923936514948493009750855868384509560682491384175508510970777561760937515537352420058252100279422489764772756346707599220158404775362455181592050706306118578137408524354409914437470717711470938956220187288217482116641541204377847056281867995936811733637002569877793236208248794296457444681595036644786460781104051843273675624256700367572545373575350438093581986200196810496766684717336761383252908389937511918690937903443510998876478708060901372985448273774282979702444262539197105724288361399436780100778302063376261446584286856672749799521939339933886074187039136552477540901253545659274319898310672035842236973398332037318154104119422636840503084812435654255057863309016215052387440838799131148462233287449335750965296063926529699998178535936190079831214063624276420588364115725136079116200543501839540691026324609325740217000556876261861547106355395321623343180375235105589616337467281884407387475706482344697717661708215076283372572815158645072590088270279836936993646173175887511958837517519216104518390347465104380410319458902105947396239625560899848786668345459934982043650055568302768286724942133254746451122892600757754322408919698162797150958820135478152682654074852092981216883987332606051763895924217353347413541891750427826450504462206670426542626881203867538208102817248996764826254465282144539570614682699585839518051091264344063531888046037319071029672221487831404058538874912224747667045801684635940206819700747265057686972940454062246060392167553481108988115279011529560385996640311545104443240387168688321822680617553903751838417115574350033266710231136897084363610803127525783693761196482257403981057947557715061550885909512878008532207251240654117987074839088747873068838877050108994046593840620500552117967537301030087353212078233259906661427141470214937508944721168261303745942997294852201828326324786088391006744502126938095316505563897944884742908758052591223904215173279207244049886204378451845763227141133243061561737427607305722345041538001491217343770352077990896058487820409535680903684705846324774788425153218353038196883740698133988995119125884607188221537389760713216286881349083879116269675475508115974232031928691722670948423493456903155147353922756623480286690495598235742265799159570922576433495851826883073014825967473796808991567376774049602923929025685350838963537228522217244220851648220461765475804541968485263219825760355671492268467267829200785476318943217615407083978609300960732585043637882535804113430929173869696837655970841736063964538784390818895158211780421201326868071511783010642295794913254637812642250899329979650729398133304945718557431608198142760117990273498965952652847460856974900062854877874857878828325004158084980690535944580174977490388697443959087605713634330660699488196814003755008825634264724146175881748097733235848507584086736797647835529428892411937209466525854254780445878672866792547700172681299338930033880245674675446006573603492077626037764743004163977663385063723767957356347575472040053976346055457085501424263356133340717981692044651051945465594267372503158076664210241041456892434365959731523501280892029758445079608908960696632350905165195624085840500179742090604473078424793248049307836590706667464896202415907566933883196502356871027005676863221985455145139033636453177763666728128430876187451784735807120008759705543096236222295928225661918442367575912110181121870038486543470699803996635494449975050154443686518179467701689842962230568157741904727849470629616700154920974949357480436101419732827942032963772915268202758616047911794306356380261128070466965899715324594728625602676467389225313592193466524238248146144478142460164557293881316934673562969448383271734901533334780311450089674958187300567361948818564988959379212693093929010598196328346868552972158216673353729874805736688888757950458668015721808879429647564433821947055426031600589651426980210382768339839125823828445489309890949731957127053911788156512953242197240927558205504438110990535347704330176717353339445297755681031456701426676811190974306322816311731139218580322207906575231196276561201827454186098836751162269425724362415924117386343078844889026241760433507719717210378220571280063639658925465947487208174922983877374190498226084436282314832180575551252561211126279657193462409039118374761155692496639647355876311616154220513905918862625819673884735221040639082504581223177010574337111365336424403297400252907324987432690462600209425417758191615564834271374452746441200448665268872198107398790685192996930996960388807738554742040355505760292297880735485174499551465122868576956319538368400884620214166522105740012606656737183200159043739164228006028036774439123979869705690688653781820384414918944708245874051333389292718362302104988536777156367551933157064220949018669629489382959159361817837729847869800372178674841929746364300175143991587868959900191785499162995347695409183297809732080812018458764018871414063871904154970585526487866952687841046032850421004127971017786910367154653836026145078352973414905729072839374074258832507992096499416419887136994734018568256829265725654383587739635851398353940402774569934612810568703110178465375037566437030158167674415769762126386706170848149217926711471545295287569864812462853621328892175850601018263184424869428020242778961904759971211564642577948674501893413999459258768802190708170488469161676821934135645288123686411884809597875479207054838359156421374247220543615909761378955353016498017857006986717627341965569102407494446925233397681521490043950831897769330652736512004819256601033634483429522558926127967051763569018789906612845715217714092886995823606842609757896961670949811995916526084619173359681105792424205493793085856995969117692248187292652080372810180716687038837425918289654582644059683063601680354198031100995244557240367436404636478491376315995385870006803892474314422624833054484831109323137740392584841749565948785079075009980079371492821914699941474835233839702055584466445631387516071448025314107316400676667906690387115254540774620845126856024338930016022762607097670719545743234470723404969437522119428387869696221788598012728238056990697704804323862333116540279614629585943152153542429246762783565052967057057978225059046618291461269846616398313550567735635107471346823435450836195612920828681112488439397950896503010176844697323712467818618383430486462113619884671948733288466784015336899857945876055612878529006378825682498504946914929466688648137774150396902975891819756062977080706624245364857001117602738261022967791530858800681394234506579513233756121810740303349328482322978317325843319959684665666600202518634579381522132663338913121092992528701627512730833131658174615532275868190154192597298788414361513687056841616518076985311959563263726620933019482633693133980353909332548541048717694258573953758928897225852589525095164437034248039611109225631739638644214521660162983880376552078324553579704456230523156639675467058402255858835563268475228881531035184974893760881130538978425944373250097438934976726592223925279932803450471956206327267189199504180532042022961820379833034262882629192366967455032990745992312597537742577239760373018236976882514892422503656509951233586183452182528847697326095094851577859290186271634190209988789172701060573691921033781012047688917702369325844196780926825165241784679794332915904532308423089479326839085637006986170764413963832001589406942773573083700082595310506998242500847344029070308852768318870577839480353565416043027909135623941194426668719748183464970982268771615522743807183429433323535129934918007721294264311172369543349357510780341189319804321740543604274657019426897061896253109354762692352048554891087148060052849987879571215390332179261393109382473194481764315271869965441439008417922140102674778783812627582118254059907734960686395342169248864728316625491158846488705132776030577668791288161250789286633652764500947103257289432104535183652299340975269724104687938317375146436472916503379072506968040256960965498754132731969901483366899022035913396176264502097789926202221063613298987251259546963896415125328059615660936372679797794020137901251327973495684029606275829712332535156079450313282380028386003806422212054793747556112147442061379189883676535130072938182198957004900690019148128024364659965511675260139847927420333959524902435773653974638543245743219963268411163116832822792306444350564132450631094037176126160614922867876020690991045230971585888847890230893066243958919535456808773552637195630956673999423685055590392234385033760210096024551649461792347503506736264219932841786196292627523153315803552039999018994454166906534658193525941492592362039202844506684200900652012130228095995079683108765757879071213575042036381764033960054961949072783360741930022801462189816622662065767227164489442766598768629254899768838077614839496047610885234206084817852010855028429696109003661897112615187682800435552875053436538785974019648157484946671201586070681720030547132288131586698799543312512337651061013355688511008713262698818558152454361258373092695148016186191709315721061699639214107029404987000452671390360599446764159818976737276362177304205037402588087643195817129770100204460923690864266082079361730748461916442466909977140278107371366670619501573901654145496652542422905442430322995902147704923715800675816230010099824546163977790357289422286576311100450187579466510870652132613960665592017156047252283039232713197860436350593351753842488292906801699309517221363996995999477462552053769425477660988142539054030804105860137808243175346248475421948534308965125806354662610151587061625221152734925665746543426258559062861510845929347987331550913617028470211550704839405521996239222419777104291792616865038177449664215627081799735175094511640667982993183074422777639056288985226983962794810148396409424615421245488181459593954503226526718090289794102426466783724059114897624003246575666233159122298348550340212559070963545388815788704242447700618963685716499406020669288244782031591860243704334764890120094440572854428022802472467866275511942805025255195831952782233746295160847810742284590536488380006581097409866889973506864748835383858044498376869653185344543628422349953226334826947756914086530959391570426785073564590886022787392018125297301435628642552588365215149883281483445235725300564530195227802799138940855211833407045001561131374006217095258830611013368113499246348426672682921748723200096681327311078214350745942936548962443721498745513861389965739667099963010160380633808505978211754730559337125924270297956662867510351922706440047744265637483270321439680663519890975296651557931940963239940301598971013125503917660359408231297549923132998040479672791097138324691056720817316023699919206749124132468544710046867291483760357307038994961453332386742712857350572116181923134544550473729025922445001961418286415749399296593027662935707035913361421252133909767326194298200512842998018667973618045249416678553646872839491096120960926421728789698141446010109215482380354386652573224113966766919889392372493989409123834948550236693859951353197831258629745169993765410510411445266574458390130632590660461463324656142193022132653973441868155172501669620386260598564446682426137356793617765152283674969049674480733280084366866721663952120473358514852504791082621953751835566471664431251213203212124691517543336348402371842135887861981712389358658313253752736608496463248837603461848157762938258615776524865362251942593066071244352659302845783371838200562088268704545036754345089290914993837568705079535946036268032288399984932344890373889998454008406365348898959461208949228178992723860978894171393820160857847156514207821281866722756190499863173066370381075774708476727819312909427547856221068808512625801930420141359621674740584703011046293864120566663356768324761086451996857483949581308489311018225682453595450858715154286490822581015975717360606131979692483468705559434106755167100083118491073884805423195468125657838599758041700828663158665311662413202733170276490750583223733554597221615295294268845808198736973513235090299219517957537971137132698865819839148874578578150110373144771578595158176051581758919235579742989272859881301579209537433920245221495745123306813302414472151520877867314565288855408557594024689874877817582353478886223964264543281800573701038058002486812046218265345722975538040186304653459026066651751290906828059745686668041874639951921040527578931506758624406817911528407448475467841522947605858560301564214937190780564662430896256121867060905865185957936834521868707086878421454576047014229836391733824825019562529674939850937064020229092128183189139375016108585487550355714501671129958135450943095002178935929260689568528921206664181291989047094378043724514036660613643401832591938199702819123003908527389582874880896754897433904971011430361292614003061079996918730586978485988561740300482982566727058401515075739875574681818309636820916937003642132048704646735021366127302092433346533244027701450893450176550744005865325039435553603213524179010111402237416541686994833472361777069520684542314151886788147568718756672694240273523364553850194955560647581537735332720611191476877153388339658570326246029328798754456207023712997312239454942342749627782894390147997972709951150643127647999934088136654374346798840978343214014296989775910640777206553086632040036392399666756839035100445706607276448889861598961021790716035958937611531728029101549855191763478487001843993036090367757888989538560238374906664024547925036152906408265550627581189264863209423422892147005306376914763302392823142892875840280782907811282006446663744931486141812844053867608024290778569201937838983857143986265363900330032514565588462601062778561599283019141258676351941782472461033259391845346874598696782403559162616081777014789632241831801734673087284564571842059765896062716301608578009435236358472095006226289252808633925507887964030554645269758457121129066758728692143064668159876976722711959673521140280125693825046378450626478302297035014865970307159647521332548037865279488741894679070395145090386252546123313439926094194824841756552110347633048997586636051803603967332079120919478480694583098227835569859269241973240004752868628128734288455483777768993817451491367418823953955745156764403437899186712336877898651673566980515745000337732277164366659645663315000397427367104284390602181225291905222106021257702939429436963198719544688470303702559153031779080869878463452642014601277479695035510339407153032186758475110578456747004803985161105556551934720126921463396644854083017571640642794593448876675855380681840333735438549457170742285293701274396523103375110647279000849196082489717006170506249428648891583360832116632568667905175822005199430419469783177348470965490448578567322638225289163673143600004681459356683776323528476888104051774207818000894320915015570201517266617373289309015359500501508816153119974568763894446038988075948950080771132564756008156359565972007639278287717768427933803726779413841981327203072631581640830953244797350315435399433907920229203852488889096786835781129901063953812282869613703317552687041821116538824481036649262543911243378130166394069992740180022639119699528447013305513534187757855870072584527849240051302574429454802061239068657453606911325530389622749290095227701401631502570266678792215868294829715509731343468948095671086873738345215010750162530640128553349318214247685167585829752545323353958461970225683000142302592409274119600864221235217986552570624203658711091796063350653304533379858839029569562088878653693574625817166757571228495940222291803492889966846825098257430401186093943309650329097226358883320321222533732098861045758078883248661541347943733716569430871676174684541532940235424913672168326831868692410338916916431821070023128778772176058320748505989915286431604636712370239605255815738405626325909260310395778349292252592422191197395715700895579956220939230632785122612132204122186689150164198869484720241080499646720650312184421572702524348520042071906571960662793645379138218959055878829593623984053382348101373944810221839451028184739517075790958342679901435679779754869698435590877723714297322316492288433998905584266203129950584500086147919570382845532842526683009868435249695711825180427512359714000847663102601181555340089546688052277355629462197283420032179116780206422521756311717577334767905989896119921130019534916289826678116645037231815664984816624770933009999002148024360226754119744009426654391515232493998851714275719416529606527120739842017742896480544752382090929167813902362308485525610504169522616245992521674422331428692037441697146092288832090594334228150504623982774166854070224552070219384304576278604959300294616640895753859651458650252441425186759914881987934069193665861592964915178560756021697784200544416056031856088296052502931176514755353239351867687443071254245704872041420884356501593548321372114126066732287190714182889465391628706547378933026499335188511799681317011360393332128324436244537939884192028885065843082872742376264998355809518310201875387749860249597920738339215528806057719467438162758139488181286055522557432378011656639662977405375616293378976277068294709876281241397567392422554358291035649722949989715787411404179158593727523940116730635222302411233304974448401366830564506646224206702071888581212822678188989388257126168469470486841558362075375896331571779221040465697866781901677484590948695117182692806159262783519062390734608241941267472175237744066558162632234507940843424186577884303159093612237391298961318213260195096148957680105114810113902256005724634795783986810812285621578398052373180604243126788951707271016813635112471261390902983830303768257732917987209271828156511886061346140930754104872139389081763997130335118520934447792642977794441877332173104577146962490443406704040422643831112995559320886541507252030205145841176155737900210161929444073050528882480877300987761786350892926126477805679596162191380220147842279268744256440642402897183515060902136750627319136655397735501446468192578879418630010523256649519324532681734661904798790111265612027049907055385434460792202581451117451122383969843938473756822780366318140101327934511917037041238990498084122160820960378408988024483694746224214476993910989094248568524301546925200030821406163938861264709929920647930558007177455130032841686892203911216307706707980459073869752162713891706331879330328472969489186265159941503950428522147174377838299862681568921721037561203491545651782597963009248352164990470452099837128453348823666472390155355588985128492374572117422547428159329890680452482224231455376292096566338406583604269833813599058394533189366701667910226492752491785146678917564415462009205473661499632032424948072816107579792824976529706347429365627894474343224374307911963085629616870949269265819965956029982515903112870510306789295387991546110931256068251478846085035830322144094431491590841976153204439115911403969049292989427314756014204607086995114471867783259961215520450316875678861154310363519787468842171046085361850914715273746458850507944201057822162477765457386429620826498591523731151671404077479040441054228776055960410769185625583972343260939692797234027438643585147948249856991963594381352281819987994898497216125025262675276699610326938702013468829940857374121414842938598904342021256796508116077857670983308205323495405347446028368490038327336952857473918572413370563027023583116634596903661821645611063345497017028427327844453073718743628922636137065893056035960997603540832663953426933572212316960750640777991207553365471100684364165777616168154180786601002442582952435958917331920059424322949990224953267423677424682149990614728410672121122659783712421328613915701335064771715146440877984568497946912977719067025786025618618974806278970320915976625193662312165216701898190838748623595959974082926230370892882054626195191827320598349938335129887950575780690968816881537158623393276648502343973391200264259503094504652872319847172474405630744412986925671277697000908665291665119065065126375747381061852335741342164299464362195882805466251865054287906260360069713768281479082715163839875174268359317571151261525507514438917531975350444648722789149685651094111637272029440617325390029752800762496366561743798116950857928027915300221868029174694118884102838855526501600076860369390676334061930734492750028318504399122826779592784481004386840706445970151109387293513500786718864865975833840556535040492891070803860420182332432805040268375865297169566825332487359803914476989393054604203565279108223541909101791287616040533356379909489177698910127011631435357915001392841303085178374451517769885475562594158493015183912329529603848232252306580803273446901704045391572907886973038124379757852248915967851437000983549382140866375061606268323714364628972734211014073898067329603140564653523493281485088654707461148421083711854756884744922730861661107572343728857612730637480296234861195535904674057804372822111947627333838596853968704823640852063963975184841599234848020478178997021685450034803420964120325709736800440544960709913193683640319247737051080167955408114745481550942461986063386255673491518462167188098593490054158391313678616153599724855503493834535684062690459831222318350693255441458794907167278154556561576184924224040262267797348010843253581952347180085818095938629388441314165811319270213255979280205939698483309264394618359384981850433422477108066287451814070018017021341052859615846779968534003961858732070177170859707654701256413850116048540523694181290066569638551252961683023693633892038087354879697797573724374960414867519316067158825076143804907371075305648933779031471236572034564317025206473039287696598454593758949927858898842718759143971254862199744451132126206119753425333017726590119285863522091520492971568847305403265967673721019318074112656377718911446356668883766834591171396482588028030898387676928433086726579212381992742505692873515685509762351980827041244056061988046277935092524934117670369084852605752306741317168971191413462280240963665591422130135751745440551550566282039100035174111304062387647777369134859261503434185082001842978521259293407175106547965021043808432084606483392959865832150892151912224974263631392312804428910553352485524594388833214703542304818116762914749677315396621397237650917391884966275771183265738391739247703854599858754678353664606627883241055121889610106708901708721105656170855671583203285934690863763432725778586574996828898540598136657949653378079391465875697194765470547469332426099804766145622027973768223008683704099984687330909066038955708245367561720571740894562255335538597577713708178790408532242937735351667978130376797508276136585584700666730469102747559973356243544083016076297430357913953117885917053492174294445288072868982822594996590174349670989892795410945517594497049752016872249314527917308165211484594199932334586238044024725134029529338535022790687231948946390844765785086043222701462458547962811296415216242099640214363906035807653590989612979026822536463890642246628652434918675120771824074230444153016634551606884057095425262677294098011018477242181117934698634376001220345841296953057385189207794653222605269139940123748815025049232905769041545349869734716335738406545845388840737662692673124232280381452586076714844125618905893996641555822436402104420914970351620282670093168152751759691646577961579126556392601991487840593564920348204795827784207077888346179664548350373271895531252419275623843793447508170178030765201485784964402656365754099564362802831214485098546528552254501154787249593498832059119573363746107449298296026128353324285292802693559663635873397837873620315237696941131075139124772418451456716305350115022687945930222799723168374613796028077746195758401072432092471263640140459500213552952096840370587674431723662421002816360226291354904040346150312367492847005447592617700166683153115947652064880014822267387147603857492615768051133522990351348476909279337137591110223271796639809848743842212432337366116087108230314274433178482285373259897571018687338813219339876160771737756358769419601155986732083242248919947713345765578098250643819964740421497752703376259378661138709429953852055302016634688178271534397802069082234889610229695361310288030189081071157805791578282229900028707536205493364112383947923870928248867270173681638056492196412732023681129854074035217552904855899263839318469033382057923304725817027514673701676975118003707232087587044881765776798161130209975587056276086574977625152877269559090546803042562585131344854176038975639797987091917075552283270514043174027940089226284472912990959789164721603309586079300820639446807316862077544894340083286443067079968251617508562910467119478224853194161367279716398346065773341098213066087309568129577847158452532393862717268984394400217280983461654408045085241231422864095377027345122243021879917915888896228798971347216241573013133618249934046566949244371521884767846187538596475884091269400919807495576177746339479171393776226273535572877352237863821735927150489671620817743249423620204666354481071808919499838578268567874979182625478413740709136569426729577859571553665077429278377461869780345339599515719425822135306749621426468062557284151269379976912322665611394911807300339523997997184192533311726528104906752419539454684433328101028031880670932766280448885622866740417173839347185589512433546158165287335961509034650441087613333124833668842916516578767771338658140258352732806125173471220093807469839229625603031460446514864720267596656537251825283423459708845704116265568455106616488443732328460814495484038127686885377955331640431622284068760549185349724747528346297476368280151299865070124680853136523880923391870219087189408755309251441535784477816988214357710059951949923394766852954397756145941836475275600312257411003464494629331826165052889655525387113202145772143355821014451330537711405966946590295109765242294621330185384201852965644568147753884666248580986436857069282530227742775699692666849012251774450055193796002651688978391618857669706904336956424230506371875775063233746054605734309965903677067896566989912830165916234631688234566620339760131554174046151879376453921886229960917737072219508050267929610435665563295352231189637969179198369731591873899343102023187072527926002457002629511776354689685768437226873385416184151488287669609626934450747617418581681728211649367715004798727340824298794741762071376146358218360553173199477430677134229301273001007766648800844868162856999090614016492662038930677034627314202720623380398715580388356941175972014355426246850275880801719298311189482397822890096876033116166399501434654373069401249895437656517104423211069011368585463453245642899434487467330393293412980778654307941699343659947263326891191598200946766291741999610787643989059933457089657079934128180121145293318938597301281499648552528029581664110918749498578420096002858300971181273961574842158719715737256663880396774904860447761862691585297728281074241019143757606883276329237909382106071489177934494260185017004587763164190792257053660914387845372674792902305517585653537873643374162532995059389342324788731981541730649716675811069177509824259459462202168124256272768833703208009588385024295130816168753045723665569275769818691723683969757658380584899284037404195259957322654831520406655985488054305329481725298056751706699629553759388055529323126809506612605530711756419904291111667422366049581649847170634301934670562782882677518388548928749736631854250104901714843567654856277264457451598200038721300431856542359440502189479457013013097190459447958147008791835941560727914411316500829182342491335115380540126665774063583364017284123701719390294917000494794393523276888609245598238975801519957534465422433014569634418642996493266221326403307579750641851364623791144420776589491287358534565628993355080537021328338376760217380991438097541809778585096927998298426887696639574972439716530273139707071902014901887147955654149261595990851867018977555632929111614290609187623193448357159421460093181455692050754180895546295234186413592645260629509067617015575381502275894326631579849644758590604743523203338422934838853610964507084419576801123520255746557665034032628932874280241403022024544613566155971531171451141397834682177395403172167480768669200237748020180478614556543005158256405652232583570900253431536935033510692641449209510849801567468918268536962443987357464370500261161516908761012866395456492963883174192681344018551519366997399798772077748275154567040981210927753552030355021321627265339065330374923502020661227087091433741862904057226782683030138175304048166298590624213595868513429708363588700160732230290553017951257025919235785512341530067299234270668332037854697057281040072310532115968767482113969271833828412782248096639550433982396825277027879974726667754016276368932799957433800801866911175322412856241444220372854957975006708979814814728319467900663818830389915192897883597866121011952190058688050211410292194579605051130059252197512937987518533656989859995264598049975274377985819914146103345368138071725635502484487554606819920059436800549174259514349481414767124252585848246086234359992491332746702746612429930684946736787240171163479568396196401487260726575823429162159489103981346378173840710080387928558026024925341379854286736409081614559661862239375266797506900914673563150977576283489861614376739200911813200729109945723563312778865344904880030854476335902168594228323093106504452139833170334218482064807187330002187291348623874878297586298658606349462542990556807656184154905138454004171077664940561975075687945136098874829515098806594055902357188581920311379525625291327223401559730908035956497739063932260548447701470029872861680839183962096445865370959949586134477156742170731577665693664483250817141285453422268682489845932531261971902965946053811340889492445286200765500751606791158811359535440839025260713651141700224496198311042645862128184595010879153982367494374292839922996277697577257596224199264330432170042129820982105094589117956537793188151505548937666573692326887631486100400069291186602075733111025094461067675564711773457766704358578317586301756986473542213605064778326702903642803252079238500018087592848206039637926379591480448824841128370469482492032030688510928936320407220750956999287926320501479144425177799634014510501458425599993097056154102901672701916246905548533083886391386949501885199492487057715162902348222211785263818841889846667129988192489221348069267384001729062009200783638883330324032435794107008861110235363714709022767599295149602448418542134940476709738518981313233183615388703278694442233375655744051213321983176924778280550592808263437583757595450909012438624347561069832339220944988218278540301561269065352873792032059130169752492284663431574163777240425520935268157436098680763014949152505729608148151570774599219226950909307011514302217675108978696675740796600206077516588966816690647190140390802124379470211936023118549884528315766524850879968351651301307507033444573318684138461455389586269365326596749336662404391365672192937071276897408754830746625925295270856573295446845369577177432707969630912232532902211943978027580701929439121586449603097171348320466401572457361059717908644907386879854617971832607449842764486828818351229396467629330478726046836616030106417757936445220701942894032108195841645872664832746484439998703079774547866138799742496829708213953467377930772831466329316201995772147287496693957704788724867221158529118251268454838889751452902771127032609020668465809353258908108624559876069691792861540798702746970441294255153033567436924229176865977911676846625901785032356919076587910419319410008669810275963181949214421809157921993244963212693407317861302490931115054813833200449978536280944788250500522680357325563353849400979237697150852413530178292485553991999561697652783499436032639296595620397862244995423386123445343540863995930574322260756362250164128284973254449086239568839375802308368148311261855128416378780715584527317754654547736787520380583183001826522480070020459589920033015024907025345656730000779038471176384649524286181079142512199932287932935680862652055213615305860115296768676313209250957104344106381850207558665380236490296102717307241650351352917498035719246737084783885825974841235456773287863011046612382712227864418295299509590252436535965289692293893522610021793732464488271934880380391403323051780111572223569815224267553506151347379174361136220732322400449640806630258488007039064992148672164742891823929168412092095151304603085029934352334138749670253166115296898960945154651131620394648742611214627564159155711138421321292130710131879612682889601291279077699215336031049034147818555645737827222821830974162188075341366508860903369068585150113890386189052162650323576764083508108677255860032368718286591609102645055761820691187537019207946422804467919870734762607600758634408504798765696755143881260225477883270013061829489388296539512365757612952956985437225431174097788137878640941025205404341869481626391276094690523877629244006615578565979854055249748981296095102595140800464268962867926553672789731382587647519993144216064343598839201023666036607096420754458397687820555271454714920157976562618195595907022059743845280461785167051924523977387342088844188224755169322869218965992454798118827778853079927081437805236978894251974523140487459989446368300204096621079208857275439739291149323032791373218375432099432675613997357427696166009024111332113278207786252162100126325096481590269553075755821346156990277096816614527536469179364052782601189211526534913534619245487486874704917342594512732748511327618972982581675731583320829754206580313583789288851176488577528375294753752117826606326780153114320522718921552964952926384318826429560198906801124588440723374317174653285450607656759038769579532581563768822138935218811934383131631406030293207486575859256677542800548698857793995971767880194240229529293446875150919041566067778949144727981430497494449553650547700931923546012104974160101768204776348978777800746213371843110373626865442423863235364693976905906534182666506706852895753956534853367721146290538178752543439572668206222205388306284061901598210006099342650158457145366091692509673844467179110619183792529309560197017860763223321796464982875305319785541176800522376112166531404471634216850164335191555690547910292638713045169635976334067534655133201282876609005961330303492216830646444223390030384189062876961484528874172056391013440251509438692479535237755999654214768193658046878003783182383024637225279617096640034225230408266004870185940140679593878021754850424190462676457726030746333079627697188009682940171688132633484039389819336803908157001392957349170953223792455722585362016607051798891214822550765341683009064545285960581739861704519407879203139179445112442819294300927482650540185390291859171960195548195255950290008957267412595828678632898457068103190055771348508431104043242482822102125051603904705342817038693939761853954446633633829284010469545553365870882154593779130645007305670368860267757660627697861679686122334119099994088486337841177458606016325364252231249590144708415540880259402638713031806655308691980819242140887507564633796596055752397733229265676323813138835811926349641625844885892257975565342777014316410913894892462310800480721589370047132265844672515717805842229564606287677771441272637200660015289793392220787692665405031230052362575031999402075007189977132343107796959544701414891158293900747197780729903264047739178433866352873333216959787840935585031044599088749751220962313754364631399192369040590791742540018192166149105654780946444152421256623891058187685470878636933544555435848387385136114076392688209033104765770695617954091255615180632272313637493928439325287651283875853526970371912481205656313696879891269693299274523632423730382941672533569899658787192042478816988772119369817920773547465118736363507724005439726770964578004795943725298568521514221933985055590046811084826119307730916008395088819801888363910398624943797961707922163393592843807495993736417557880023005688063639260438510836927987989880643325424044255141919108626362260643691090545716211046458385782978491180096493546455323091732739866735955506428769704740154493910782523699881162287197557898474565018346691840575897583218326872629090383727034563811213930734025986029421189479387613224416096866549984087928989363154276934925749802000447897595430866349065984330929944675395087825591088208568445615187106136911996024502673177413464627847124802432580987211418023656013168026216617411443473648612588114593667194670481882110843682976292182729943007155315332523581267797301876317028474483867237572790549921265200716977785147783508001243202474654064900427181431625701123973416299749462984991561221754571453382902935478428998175347805862471322927757168891189148969893861021823602648060677671652111341992217972587278698262597171031404662156483896888437603952440626238093190318898602471481046919124476881483472049498939524023910497130611621461786534461542850588164803638565976951679285452458759278453444308582315633460403763821759230468068553508817372017398671677147412339460098634704157436722456600140321344274495609315742238521470775090331015854579392071288857233036562237405221562888575156794965640724050702205158419324049952791471800433872535243397505124754499157334361631249904509409564435835517490760318292013493388703680634389024759850845010140078745581780263624255230469152023822513179054035102093294076325806707966740456138313049506926424534017990619017163880187729083374823115643493408940432419600434076088864025400996181558524366571247110001026108703221748934668380552468649201619134606494284460800975955456693137760185286642884496277384439414963070390434764676714243920279543773390574717629684319072696600905900805406721919879886154187516421689155954863180744795193890554667065725543071765080602847036941901038091594434796922947549171922539769564219411496762533560036297816879700110123474722988499161222729260997990355947237900985766848021097402294177380224223348153546039602212406402211572625396523642877708013259965410202197857570152060020507740910582596313284823499734951043460103126033090820137205800027762688125716570347492657521603674194755051468786987881599321042556186221000159176815596359572443236177137607783467611701399016213209718477607702498765773040397055069180621001515135980308079233477687246257657586837550696792638708665835216561510531784769003379314730358563600825990296074115767891924135820010876351636588666672962640456398397793459161440602273217675903125543818589183885739425693280859376555148630908233421055828554088530844443297576923972913964629802483077063160441099682087620748395790762705533902939304439654976661758032073820976798726293030860550239966089147676521604704835582860356136151479633702727870538183772625819920661591245731867091990034798429652422740247915760417347035285178749429920113259703555793316048766854919444155127859434263396220881413836034918706602575685863341554603484583407035471580071139489317908035752944992654452669967287146750811224663962243946627975331502003757266337587106770894607360836918315365206759362297292912183093716188606073513844490008719769609396017502452038722640998282257857399527146905615913994212942413357036011666553225464222281632689484574957340500289396674402443111607802844422514499732590319549160540628724290038857598124021537019813421686073423321864400717827952535034703082754075269664404092221102232860840034358757340106563565370998497277663048552054238332650678381652445682581675817994367935783797982954362879598658032556967418101767592398068280873093138171271893784887561173737698775123337462701045470710687290916137434612404535519566186081318210575996067650125850995409726194485962040947580564569392040508711270556736810102030041467429739093397517138764753545218925758741421032356192197093259024790119965274318201050452679739611947913793340009958345443639542915493933132884559853640111839777408592435501992791208766000465039649275044212780706892087053634188930745474594359260742084452024305390923372965299443673009683292896501495508499781491849173826482656877248203329143735163746895346120567467827827398418207584862459187849176548954892156307372009601360905854204561245602946453119504049470661615997527404532128006433800162698720589070335592040879211158867592419675333215104247923120502838909443320727353618528984754657740410738374861222028382713377067445624589219718506408026114691148943473987723423150115991669591171443481005603767567596740295568021070849620596382204419609969134247606558537305864493619014306453973476297870871816379167417630079691184864387438420346136855238644087952342649817423529330767865640231617767276497698395168046322359895446593812092937817384353036695527485910004814935531636261586273833349829266982610546752428495499546925527727991404879045078453473427486657802858954748172885316610605913565815791236694683350817214205115183035646681775335713111449634924566715163848272154116013806582519350080086577887921677342170687557691560773613839860255270756172205779536834313605929776408817432938187994206049163640797213928034653783067974125475586118381383811572143617181154634149616331159672841798785360680009206906945840099704033227114885684486847336521007367754733389030064309468311749531444421638679384168849359814592819123188825115731487228219527901980380911518478360832977821023311637176043846943132814214286891192749796555026645468789553904550809690341438471643640092522326564660443305922625620420572190196415536482038532772758383095842896327342466697177793767122281847184690022951459263268912661126468200233814131090406777748497344396110235532857859293164104247788209893993008807756255959052552931263501981865975565343666611804247163228146076086564377155264248346691771817787550509756747102309804951241556671861687887329468127926718855399674951533853217287197447497874043159280797850394489065962738234806744550998608950289598939138321314608885342456548968244478275631127500304719831755250249579027090161575847981366669628581125161468575470939023553517496604808700181969446826303083820898148004597140211249868097237840340608543647447908124004686131516044204615446015644421303669343935615859518075983995348048354749725055939771177349142878935677741913179804424971214207221544273782135765561114052894875770467353763012131299743918963400787468866879439619200015060089127443337551221198184962327938106032266535719397440230760929061531101699739210586553015774181657925449668220927420844836847232066629387655537402246993822513989902676158025726610739796980710697883659534633185005716656427278606873616589956545697970911436609407616325199491678326903110478911622416052478733239870039278413076871565379677464501181785057664991565556124198210260909146747742952992872678534096856198038646475745747354208274862174643293946138899580076383303377469739193721284542592522219856774688423490287441995999348856496843371580969684783353728133999475674511578903368413468950614183052584819692990025504513083693028758944906442410494404321774526164970647394189448326938725786037983143502861799108591094224125357817644323234088702985473418844162509784826813727764385314880878712978145573803667353819231422179445315796396305887314560472646662782307507363021899487297778919326743940407474348583440255569792533090911876595451484212205986295697005185384629090684205997458773214940758745445542419041420767576612403379013668021221651332533954283593785104024263628019376728330605522965298832314068562596067311608971108908668609243205753890463430436946099518160483002583696048821944753826960548263401961446285566968084651252628221143641118527419338695473173971022757603349786223892417575093083953134651113018045456199278179843861705194788665947254033929422517136619559371363187585480989701560441152231235323952353226226461046355368934346048178535810730959022551429590349209112841634500029101914992574219759618674857688690671560896830128235883762609740044487414530735253488869434704879226154763495559268869317422871860521038803671799964792438614180184276557357851548569854173182484437004163270776810360002424265910945788402510609754681203247610090184998977744676663782126136953043951681449498880649350448668141435725971901197597285491921042999749615871207905892001900917314548602947514031126575971747627453398382277186425725932781117800739599352039480321662641892440151317400573695991730912476320229048842696690089919849542692346100744849705328152952756236252658125900347253464608268437024157727090428924001004720829749589249287696518693831844349775733562104825266589894467776178127691450485368952103787362979768569351370663486311634828114294913389521281693182526605788957567743532137948165360757064770591751632437976575195047986631710117496012134133349986770373442037128885351925130050586779732746998691551624780387272643508155880877244099509100779183947866052159276611010751652203686887973005212968669790096271661683872792549266217018271227551833201231022926061155216332662960216172131622933348718768276425721102739063521787154259086790815987469968077091007239588865948326861260463533269276900676922947982648423199234666925023466325412435775553951588626006077257275264030045501309429967084138063931843107279133368727414127178602455463956061536514335194556485188906119484520250273147398419246166305873728466103857731813880579694639856022189252560571242560089961471241110912756692974813861523752240285783543927751997222347566478901228794954779182890476095208628740817376165891517335621798667648015929466976537656062492872121899516851829495747551100813960767331556664636462265119091279777823320692901425650442847376666107304429944349488260842578254074177269013110196576408677152162465496717646312665290910705596412694056896907926831934662961926626516696488863142416924782756496314426730846078388002557988370521073320893966859875517522864940817037810350641169330194526196580151023334683867132333325725429628950951226662883015462412040942241517794325440193550667488570057981965614044466651947963945055477042066558831272205262858438447543626375103227123785592052079324017818672139146969384563660525821789464111392772905525971738464843640406263411431281646661868790017876262849548680380433768166572484202560848769438189259227802115195225032227719150886394730206513449127438201958831057875933583414764870190295381712873336679326067028359662259157359321478474948984892986712569425278080826810400664304519423700505789954020374682380714373192992499648129936893714396550882640378565124877029042816851396286074129092566223566509660706101767112259049900004127098411065270957685518262226002840488603250951314103217461554113877271616833102270706470796902594033376074088840076962076743060504284639033234724520776980639458148253886576385253879799905078028326387786457875234801903343489250589580064877639609831811353524335079796981218080438278648344174621057224243661981534746505444025859085190957662408033559210928454175072308081340408548746368825232966584660663944313541862067327193687335085319076662141568551098983648896075356464139305988328949092795225698425658640992786496277975987751735515047529673560697144982533636207518419223178711502465277352296325348878927986476880382655082829629216082819884950181681063760019843514775115984686907896488232131411912097926329556538520753252529160630567090959472394787797529768385905277986378267038119573902526365846596911436600041086267397716455446851530798812904382661472697457189199905306774237351673634493081316717525635260205598110406306501606991596598901357490223750512334497568550723513635656511006428978957757074217548388516796237362077856798973799852868220541538084428286509891578909160687128988550336703587272442214606030707628915203262687370801973475487133724164742257053069608804372185160265562717675816281534305513948917698720009017012962187694216093292984054952491809294953728970100056753107583517811176904693595044144349066638258860472701002150654067671358816098671572699280009049096628327419061768241347210672242630577068346773484441871228397811031667158322480641736124591318755749506263950221462433226399947136444440745103108244376993973612790252776284441118524189296832960309130556399728573001524660724209939007452653542612809544445258011444555834351071625389396999464821571242456566961846082567990470896051034780852895960663911512068120939464075373301691451736654808123124756154405866843722949764931498092071810657725647548192647369301347320245226731433605693884885748067683970462763297710657043695745808409111982426592351467802399925777026967470365802679587101146505529315815652195557636351235229811015663356017831761671795607110169773178296785426261916891943001917232945783437757091591745192942470632386403640714505696241408748234298760706269028145173729609159109427777136116602858514727729724255676279700509339635088348746229475997564229929010494173613877251291746495545361913039815097939164481919164560003298456068250297508354214365826585178522836175421303209442001243185878619411244865001604101420064229036896545546575875578428706868588373567870299060761273974631565461659163394997865929295198441443393792355541384829814942616147098863372058371330339282524669858568434601750206758172560309304264413730985927098324143154930962742547842270915926906185437846418325841836399594492850377884119602370355883736819567982782290551710608949329426266591621908403189847372560858258627142545119714362309744744166463653648974632828032547887589908709499802660295644709442311564021816891560083025767467762099569463675892194540695270760040517998028052115485347293419607677393880976107574687843431013759384272697532260268938834674408872687961329764093283635080587570362048903397717677610360378410066387776586972842663969117931601765914063381313271339688325427608339135991050696344093730335775705550952810161364898142908880738770855803487800528838786776287575810650228128168192063225633909946179069660470192542976177037823773407404076629812562741271557041844110140827558500715832458035397422305208018689500465109384969295022623076074369941597666500977090132981670473223833812442872928945470051007161123130456057953302441646850878120063506699252135428200559947095419807200399417783954530964333677103858688505117475871210856560117237534987216965039608316801262718516068306047510249062336102823100745651881189220788054058090808493940209956649294244959069620718510692891574186531272700809901670364178134366976531211662693791991666758284422601757097023705445621030555916012786548097472862649535561102155157062354552117167747366169695587097068282869826561794006093849184129955477389540936354247021394327993675413449016551216521018390704320473205268156571485686738576017176987959417768174534150593132957741202750397027796391677336467460655927428086609814391826170731625047038521309013059086044951066617192006365370992317840021083564188955957267804348336827224608045336409545970252703202935692659182040344210608560669937112640951854946699920045276646510914242099689559089075724966064585069581223241481723633229037283434524747475942929519125240468777202380817670554326683817831771354776411472517154873835935326374502484746767545594110636747693841947747712194124858002856768969869326351760918585172426106682723232151937661347897987662618192168665124850396961407985324613289035042286294355525755840933651849916649659397312490405618715744220499858277766638689816192870362876148689232292369616509042948446342181142674025336699434319725947478867920905736377629064559353742049651131437567061892118341676723841068438597860404771625381430587387654304943146993839574501609550590079004341845806461256508333726261390004476915311538851778397117719994328423941419221913067534400474152834976137403126197808808335110963804103632664513066157644283499671636908870749951987374684028670260205903012101911414406013012466643679023518667949634761593645874788885859818042814521564124448987381787424480206351415521657242765219667003201586001250681641818394092396983959053938203284959383453145610758485933077043152655536299304357457328577393863909256326294989562996048051766409525057878507954429540428165522389267373516419318841608713035657699408323052461544925199607777827237555883291046243010221898343768030469506185795641416188725679754941590586028315254761295338855740034293827317910359723816859174836957883466481333228346786369686389139458368013323512115874724057376843813462598579637568953536185973533773617212309240660944970548132862311126547411126164068710150315575739172775486990911792616964564491892784905636505832747785330528957774439913282916372507450174000415840133568189030707634367251386392569739360197386928492891720467244354947611124432246927759059891756396513791847387984963249474825847538171455574958057468055998134218451885895162615632535530150475610869482796069270419417658346907720518219734936194888781251406071867118446297883753190305584801881316240427741523388988478273565570846207102639176385583786177446012890066689956233681446131437940330559843861599405179336321253546108155246324891035190309006322981004795779012967024929720806583701645176487760766560594314346197467080034355757734689587030677347972669307049929456662430857891851063974690826014895778330165952303140111292369876538273498841787036383771902769107501387855453841382528102468861741085668637282162508934272892047379831204237076896209522551380474567160077427045633611219896592126183769241645222392320804639681504176381136176988409694527942153733038846295635992445170505635552373422904038411094320092351626352411192480971271905582920219174789909201691407111114131895825497304494613623960645107143001284847173345779955817463765469999960476022096517302792725684426165833755522031763910223921253886923563793679383450334661001754801611142963244575447697621477665968006276784178601874966907512560114938174600619578865587751941620448100690458458921906469748059581483871562879437922191903109646678287182512119427350808796356428224218752858499564439034347176134892880757361753003412533374305905286857837463107668227154854570704351039887786391042527547730960595761674015519383899418420667445380455911135375911994051479165122335759780993750779740089388661769419329106370786767447979967437643253669863063879368524344223318358794599316308255424989489961459754841608759210954898499698808269040496135267123383852919845697359399275286055024204947313774887418627250185340762310579398228281209417517116957777213603059891412668833806167813585061066742331763590171197955022098312153975474571320193116987185799019849618487026174686695827524601866954783109866501463862105695038710117190106429837613155312313965337868050986721306838928473492740122064923748646228402538775382103677701394382352047610776017609776083683877312696772980482958845065766402443240332705999337371099852322681958744025633926427868737814038278060437272568848781892128699560015281744628354734365482774518878905733408535458943108790121768461229394667277947867867539557312629822610387576714020709297737665684420647165566604305132482230796925159897656553127646035090038278609784997422510214775487775131961066641488165409160436228315386384223218857119854990241783701800148898062836075163500653825515678538342866840080044666453728691061690829899830066714522023131605261007123628661560847850336149167536301280541897317108965288097862764066260476390881178696193071027481822934431068777623329698142784107481660393784047735132063284522871528855349806301445086239449169577977262778900772462963420655102573370333105306559946150787093803634382165200211248437706831405832235548086380620110469682848202603785849699239675016975253099897296024964560971934112078869821389181800971079861370336643792643647939271240515992609104911391958444632330107679245840297387687193209509278591250467214797058551006426416885730164368256544751347814655798040939307142036123855901111657082960755220311684893567715564860759932706489600017119893956587016118175987275754805633812284590669890347990264775622005479164472355099359233455028026678047049496903611169135429799450986534688557358290480936252100844371631754120045458154645760685476349686091159962511460642694679021027902620742783797275381614410325784299178797307973230880854154464370578785387553399143527547131762708479785006576195479014550845806040936075562362972426337421071410054044004864814539224525721241431787402266643382936576038312703676496934058679993632074010000100470183552675273427571095773901237452829699496809387970945205691114130598455742662781403694750809079478314433939499423570553505549148238628299391455116178633960615516099126686311432388230490730287242593233006595722566863720694498246849241030958124117546731944758614850018222623670176944837660392704375161630563835851797849121956646688126171381920011507191288767397839806736005602515018755727264206482645661812016405194286218221759003693888377692292484087615292331122106355295909492416208752406299818187976488125366073293104175441926361418370743832001930436622709154587479462094647105747962834711226869368811653460581520290622952032858774658863485359675401688556568006858258061899977291976096323892662158614728292193792216945124873844457583305387544217886357031311211539042774357267995535968378638268492348143883912188780698864708506715190520850757505602715646638345670694170273031421304364668688506560955575221564396825092431811736396769031696899096918356599258076443426606703825867798088526427695043219544488595060305145819749202157932545115935503463813960720088070482731713520398347629782797032647192274823493637527930280795882006396988071925620327357227747175388918017084403382204040000641502192311466466097736030647154246892788671481755358806652822484057653211123848856133346526498082945529262386940771757337196177675752452377245611365329741803584432197831637008726352639218948958423340204156229240869452082567427068441800755308131540961326232103877746252110407562330658987739000340733206160342652550785835940385465779844572377612013309458436299779587046246254044361708596355246886972767804125418636516786769027909577621771848872809014791973447388095108121867549305464822763375549114506058348284764403107822683437083960936484187053905714604634819020457982013612961815750636487122053788535589185194649368155575429639605138299618005181235162371850739289221209682307850101790460673684887476108570081227714436324850769318551128434322920533959671654366515779303336318224366334760236466176683177380878228683177612225042400636704675611572154208959663154204172516514320838202733500209900442200785904470234216935566025373308661355218640342933844084461592413104866190929527191838169836313307088678042346685760342838452888082130547258184582626224857954671737710155435869940424327595755167850878635729813537943292479593663110810343492603430076063753070955215209864321871892629479112118562766633795955289543640507543464673789512958512666568515622644641281832489159422171969226919965674273079845776418169524981335901865004400146013765768706405249783067516175943534565439926430949058399290513238529198186268073101392039148576969067306122680961515023448391989049717963608949179374026583767951799195849102984034637794197146435112928045173240789605915798391685729856625891317631944155562977653218593893343028299839676035357676816874835680892530795027623920072822264837115507365038424870826251290365059922008115931888104413735609512164843569418038495263078009266027462502039082683467866515031201701227884244704982680404433619915226468205026198608425899598897178645187256077652502984173900853987377509279998841595571882043471627606711300407989921568547303898325651028754977542926737738863790019999033569137123074594627278650553748456285822672085120174049793344239516926638403042209312935111569690322320226833486517432448899300576135880099276020447936609485609565792435599411830434718186663525545131773184752438615589153427825539244508143336716767240088119871750264698742162524101807321808996929361734070381416690969811125901398116170344466216994253821821834647575100849654431200730463679916047170302927667083587540274104047361168787553288854766917011736051514671945868513221355589620890806791157219123741150584490742368341666186162005790977395917002702131716109551730228120684040896171675639756585738325097636187387299066977717731327499550318920868705900089292161897243428869118261188029096538392792923434577142408067444392197328644488034636271669161580379537777947718430834775918302406072518811163459367125609815789073947818383296069758560538953685150552873212544116438436767417310476026943088387277770660978599703425867438572399681691455517143270859936068969964970833058536371208197024101373413274295105765344781104420173344887971173647064188643999810599284800590556070965240508915421306099999784567620870790198025494535585569160317881931344551937558228687041683309705910931491902342247523391124715455031782140850541943371257137362703072687437043185341155590300666013792574406649686798728991317324382749297506100052382532750556541440306623720328080794108707718501399279461284323285565477811122329445861777162012562202644195153369964605136609407613643961250501225949085652263864534292719496779712368475084390776833290310856195910101416354779251713990650881832816994899433886716385870517254011670815011907984089477667319271832706505164344734645114452522100609193406845727205293971224455190511168300210268701772245540611982699025167417277459351675280249248594136903303379706276966217572848252837116029593324755488644057680460343144943727059471351309752348442194464823763975997338899793930164373282997802259163963742203538589533001736097809823656491621289720032971263210631822427715357484298746724635641279948361224538659965843591206154619116116702730572872711805366049140951118063210393408098747468202734200801766922843553427176270951109508635190814868908211962387297538781327827416367121233735248355609210166012475284895969324579454594455295558187856363766882353837598895502285926680690523811339315704672148623920863980647009064315025811861846400630278372165852648760384144901464753990482888606846847321261734590556280846148496182299306847570351899603306933098241829745653885944562749849089727279284981560295362519506974270299243440733066838519113459416560479597632124347905701918942462914257869215076881608541937544821868603830060024309874960520949992787066617499178203660432465478640191648002615746280798179216674928019670956783815440672358745824325231886458678532027479432963077754956422168986253637167914410838728178581238152479272995216895253725732387885762348323018044518256362236101193337750283645739024244518511511188305134962663745572882681115862947530505032014446399726437540582013833830361717149443270051373126407085543027997201195704007716246803086709074846377475112353713629595249005515621582615778688466682346064098360981114334103672644919240539895284398707165367272510916866199059092438487601636450683480673262358469943591245588241362605607859370821710442658092949839627345074341996434710870949235956624122591537647966675272274157000163097261643354314545647299116091805602042305675776802126506591486091197776583008748551519630398750077558563967218942501377331987164702296668261261564600672610261617939228724905783639363896917926947846331459704407917820593822662899274074210680427952539231534157565954525430252561508207129508937267790301684545863656179955077313652374719887909279859867418452046656867180190938496511208893960976427192898568657068616090930060028768390582868002812392949544410208580370858210482275594589366170233414136238231165611145114922405007366191458002888444808600601949963842563377634779519301688403222927155316128091489166817249089070319540002086460072623958885928297420094569275676130251310421835397335012423594355893696923414975123136879072942202980220189989773185953405653750024835117902777803348339256487599179364934183863833117932126499310823951161547041572695000682892399714148317733586773222825845047636825527198587466975337754487899256811289461800819999856869986966256338194777975095824745337295488397701295992573419784291059267539398149109073996313046068790168280292486674341154346418606960073212898390003815635931074814858508396145798281978088261609353083440675992341145213301123756906124125823027728087591656481409465278227134165325697781631765059856095827518595916068133469247995331839337218762390685482990842206144440593987999464219651203676853096759098630309858303008216823881690512956360494074121995914074569053523513232294126681185087041273193588747343718912603880964333739702439456306366101056112189113900045634752564892510384859835100477243974442193176145357116763906275004737883134851762788822639034664518818889711543459270912352001900196668361793182595841526848162843573582031739216742627830459744208844290265304945826780162057216587846390158297878898321659432450087242251144154439432565716011602804425471231654604288259385987421287237503298771514719395006847394441054124262247865530180247221977990805972005359660796902640403939442489929492206244333523239696908022886123148335377544714583974268600367291300824813770665459623553909117042953208630342867642367879833086122232862776927772900968757426316178279590801472650745229792348937055303079323745145582079177738392057535299133333760981241701021488145054824888116769308336803907990821195292056212690820385604717109784346952874086162783005000127892616801995349471352456779988309012493746948928163836200000807288642832714861387608899984370145493730323034123336427428773762528959555759403838530216576238254772566962605449519356397045815034363165090748413258511720965416186145453031772918872595806014136456617749956560543636179173603350948531310465520623056186930013030452548501370645778762689652480329130155800278891513925998646875175651893256726508351350005973619679201692046754608490890292222153482381461907875679432873667832938282835944475410153688146796563006533690605638230894213339701630409248802774049790794333837022886344321648100073112387904185144556953879654615962311886809703609966575585332364326666076368307254074996566879716324746700764642000347758241892428793555934096486258972644323284099279571764067400069123307666024279868687628282390124972951473092841663408271010605886712545110878209521336103982173136835891442821518325862724557574769702741887214983210087553945990986968945343533679791069633076583982363716524780394248908575315741125523509385407436568714262142568470800114587624438958770654158653707741288525248296590002679757677187137550947950109087721357545258858894596028965659915437000309957582218020222085294041698753327397019422909590586476561341592563023263632641299301019395570023840174945545897220668248107585339033513234434507473297544456585286081730401413633086594096101436918476404803524986115753479672178936376029402063194629964458349252596578402729446623476383029024028935315543783157742742334199989895242012762428689567344341647680895269761705309590921844311337807877118748761574667223917005197761425221221245754579608554771408249000891646911188666704169539443775233330322639912808678484993609610177547329910030454781421261621939834675746751471275431845180075447956648176440579130794515704503322435604943286053491292311643796770176564783603226539874789333911444418843662064876929682006058097036983539349539781318150040352020225723718958297700573301216543616459868228446865644458536511455020524984224014063192918137069540186948704045456180292105002075991449744555868997829840851956091507034875820357854352916158692860942711332380126346879337514279934186299587216917094227121438921684098350111278396821603653256483144532637898177057507110486772725697032709420331994424791957285526357794489966336433845918442473096746083522250484542835615955199462598665323355903431532338761737435055816777511358120801578004475199225135203740653743474306028376530779998586990593115961852327342546988489656138732441979505588151269171218939527061369828577040308986672196436763128127595035394946042847152083324130395432613803245783995076256175000741894979615116689890825952995739209974759176274619289936848986739107257065798478038885509830863400034917379398383095507961971609144736427978152380658133036153187506989520420006181813133969725856142252885008161929209990651149905382845337377352417666869375628862521872657806281588922158754021484403120834439549967597101466536346148234694532994997283179103796330984646078969462088666279263956221346706412920691926195465133407158392907242866128410235289846663265272874984472211168781733702644252651547293869030795052566224393369034356047616863574643016639210622463317527422909880077313264014375421451313394842520657960262544979052449559559379061339843915915131951671313881079247067042466378757777907273258527370929422373995550888050920725150074873875449073986159852255290388207545937110693908871649793544274698437417690938536431695652953271864765613386000805006836563255194550954667367565967509314406440490575834125958340390315698719460489249310429130868726117039090936105028908840290415300789986545505960389335198839894723767576301642547914283774723895760313689882816299736305544056043865465559035542554574000805493908313628783821502655025497771223543867989343147445884330153324684179934714968072543982069823534103852574682798579649185974445815142676065906393344820127230388102403180138489725268452248842540432429773200231871229493481655684705600836781784258356353239534993824426616913454733473987808917938481231718367833987324354937774471784856751500613214411058343210070819889190847125614618976894697616488971881892917758768088292468965155262932493669512919983378058591616674372061197762204393629669331287938044596024396508629420303411437360012367856590855658595397446526925765210552847097011034034740286892747145475317611836764445650223734068999959144833520840231073191213994376127612099603489300067986863463529762302189980818550972148462915925632605072212327688014562526936298246815070371481383803992141878023627883070378606850489203734639910281361418699915678938121041276736987685389081463072865858984625992189221169016064874409229721657645667296675462875849313592506555799847222662024454888220951526355436829247020056482565798434461144249201045149074683474704204531190545989045251709326824032339911281837628671694268760716639906736562301787518599254052326414661977384330733219868876482322969553733389573742514167197485988902334898461822323168604608332466018640531387714046740849912662663607261329360504164116414558523636481641386705845190437569326321564714738156834112498495649029427697442090846978750777401110625148039107722025031746091180139519308982537576986642712320880685317272107438180757611164595106732953344959322261786252107179689228640990328513756444908078806743098052549489155906916444692159588815463719838515271650886203389682029938789310466789677415860025300968563891817811810726394061893313533686025600448966116595140222514881430589798904711762829126333726312051168396668037497912097830068056878913378305925646101969204547193580313341882131396552078678058937432135231158776603624480765609151400731464943673312820820007126176176928890695440761850873854491390672898109891443261482803668144803498442756398558647832403262667705848799156703989806666299589459843925600137257912560740036939048245519901711101311365718421301281977159615298561624746114940336558936663578482059475644513176617516676473889355064897013371481498718385967580779401008657893923111564854728723307506817994270552192311759210627588715380113917859821261561633095955458293271724287554003286843037151273568182767890596683646410353598822962875589043155056398174982580143115319837648153654286122039328853577059184389880789397768542221790993473460583548734694571185070666834245553135399512729240920879886981748915194134047142098600726914072040083634544390673208406372331159862388909358146657039894498671468216336051748624519814531336412209278635452200412200150623153083700032381705561300708335746841982617986817224838936098496947833893512444890486998820132664361310260756164011083829881149863175754821409074929008176370773529625842179879190187191956358400904107638493964524647642931585219567742434676339503898482330431484933481244065925105768712365395924536282030887026457449355818512711172385174933223773838921490093765735632125009404589759630291233313375644697616947333383808747375445432105036474777381985703258516316650871760861140234263199118101213476239887513266541207197194800330048138213531188258219503991156582678285890027363274847178365955641202762332503375519432418201472432969373263019977293999441927143543527409316273901665971607795160563836767590883368802861427672992862515476330911859999639371276289830244651663899543129700931326378253802716696445220882999107131164082990719932108590015339475617168893473130721482684168617447464560846699364400997641680103107554065276384321791498052184102407892786718006804757452444024212999699921932512728396108336892747323406908724405575740345840659668886554461888093452358265419213767810994039999963503895787421239497233277938568990568305971129615737469070060640582248472453009073456744853501491440985857337297074970741552111250513373910897208917229615772081278901048504589421440887109708636902140204617839809715101048079957604437941337113729612530470729472822736682869376826229685837196654917697180489781410098306669966989280646804717300067024888986429448455583270239321658955701621583195163600812205437817364440745002508042657879642499596777769580749102268203988298665387012589313374039418360460067717904835828157259127268635273747190694680984637073631178229106790833693860902383307292027422838591780741557093075936041351010508779912688707680695130888488063148105004632259555161631960456142748771336828641085830953230038759620424213902374859527941547898609229014643616425116758229379980584756784612610315384697661133926844317755299627125221374743496217077674595705818032269630106031077170295980290553671347629032702570981307026467215043437617215661580894140687192344939241483109820021713437941710220963592262162163766839314103460547146351373767703645648973632918373414388316191374925650442686285147288761938132146371039265183180002592277655738274587003973597498885851694573829318268459253428836129324780073172553086665375044544222503290112080860785594700990156422984002319343358024008035318463174245711759636611273518696702014732391977635259813664883978717103493302537623667971101638852235439766754505692278984140761999138646364353278181993738948531825948115485810155639393937458159988379690319896125797586176907228412570177602836953068940407624172134965119056257529944977461273283942809269001054810826592925068570254107978591963262785196525460466401309234583052813131653800595176890253125673817506752247263520030417240826867805098512177799166244098588756330167979091310498450261549519560961518805094767774060820799598850170448247687496883402265961597598780912258058002112472488838215524770167966824401408312018919064973925012649737380385504456338455218383801542532502843347839483019802735293543537255627801298749569128997937801816964758031944374297053661288195232902619207417331427256077234550408743112924840785993371837427156968411451563086107243466020230628564165300434819633958929657304156150979177089274723597984584424269933687200330736695228098756269266544035296113632925226741246320073140552799085228185033483569457226422486848659664297101313732207113795292699059246221706899366304894883883756903575193073638381334248702880597590673144517025200442820467111050920603075871536159988443327588724877753143065130274251695017757605092918933286440348384177397714000671468170707883103970892918589536536602435025190995531677316933599672480580923765034929039774886646900431249078373502354025995784407357934775953550723821146250014052683417737066160849285943715072946286347245762177908568030852331710033230983941243355745020173365849494518466706717525473212752575491617225544013420498427078791288712983095945115634816154866141709377036676640824694011025916132451516245685689981518601850866501312399878222904502533706158607910729680379735273837753492432962172298717570089753736769058030485494142477744630956698255128226225768237219177488527013009946865250767061524375671303956678710616360278497878103074724541076059833386722341803049381610885280238491201219054350735370157695056442863545063547731484474213960520758132527453245648347396787012919743721411353480745451580324360871907600433786363589197585182418897639649887534900674813124566475258335190224164348329157810801709461186027529096784886043032673291775055961420369892089725213550707764840372911860929005635097367623013706237727615082119317552270577167318810480173030228676347329466394096289950403521973020819891652561370501205381213047119611620579138492337432391100113773321481909633087803417048716968221654741712103505621489154239438204840730145388814001116915903456596534011553181024536219810081764631834007734439653429776942999228037858553652357589138378758411188002692851181725689887850031937371437324485488371767405590670337867069140980726817028799490675805464467797568867750249874233057378682123910474243175018047472226597211735165761788681418112163171238323281571149899244924089602082237762819904993102430666430854963105501755569105925334166496994723365142429435530210059103422342519424895521462026316352902849004889272421417504572556915731124071728596016020055104196253421768953994519982666296783608939347956226496062184518051610555858214627987170196924226379411201209196792368097028038497414713634652911108248494853009965791816190241003088902395336887081352639683524612147288211398590495180056314888207771166451646849060802699237073930107742738014666451917695452634556061876159405895286434163357126187352156555525582615901138227885764408004754380911194745450962514638586963914504566711661562487960718791212489424026574848482566625518530505410442147669090187830411890366769494273069480955898434444352113138288080658153855664343731714047843465812463873777481553902699960306933732096360676680016484016587132024619275633691831274112294320057338096012926287233584937764364599893271008499405227004558676576549682075967963697556338357413405057575298467222533208401685839622066847960994492099540867116759061752496690581576544349632456995460544086393779345049048482161587486113448829077712255691773863848375619932763617015746548322554321454620936003445876379639982665720962291537479252452970677084411862863640164578093599617482219964456274090429552670994792137038589070273833177516432846296361195128782169084537503343383080332425430458686119502719929318924372693061484093606039701698517180973452343008154203375183159379627887460782130534388507841881231250755140964720762562847325653542154851156700825841217356747841990284733166464810184765539760764352957853073291170112824833234945137061481182286488438932742549062565289219324050320838693253721551904014826528214757254905568478147143172758564669383650766468412329535511004041429106249980041381463743893606830596030911165909322616415323670088343060895418540686753619137614542879620330690203649944906447948454034792059861339294034250015368731743895864213913434464030689379300865029471025682537109043245038268871084406345915763811101189773792939859513706994593012759805760719441711983918642525326816124167774959875844092543180552345478902661936008885114292509078514891093824602862365559680695851642279242556609799314583844496850188054137139749219942775053168315621269226571290931014955489342942150257982808060994290310951299393264956490875784049475898571990647923396179326701056893083967905002490681448942421646385497322358936380391430727963148681037920008151991109696043087611065200560062032446795675504143056345233639154864456307693334274470935757923859878894840336480077410151736214983190845998315011405787880576329082067403113027368593637156463452521523775012627080406858467550546924904274857025546001676094161930676185485481065883501728002360264911794150246646248752473126778405813988017726727081742200728333161726171506249759088396910053524118802142104255999454751787697715366368681565264776683473088406190038476179111830248736103937498130123065910505480182060690872351341979833037513234586603101822868167568282117846384922728410671600148012100480531147840068338859774916331967565643066570735650564257551633732876735010622843831270041439863297636152020717616661681065811342629163295797544969215292194104088228516265555777001893214642407632491943524588362563628089509178981216851168953831105373201359970762529399640310584070184181680062395275252666951635189318027801831266561733117355642727559307211799602103574806842869578192434286883315264169441920128790549678726029614722515678176507567441879268307316506584569930901065703142880007366932026947365423833321874829165993090113398375408017130312332701827172118523236704064534875575609141662042614449949403401048742203190807239091402742875859300893248224124871315479405152062086137826061486858400175894955496740777181818186404733286528381713891335138121789772740624715695684192477288307444571741894885560125012344291566032646625723097677455143258648962524060334886614644975546024389227876715261632262201933523937616560419885014125864720652348936282612809201704265953969192352925344374445887469868932792884907789100185588042753060839096607805282880263875330897868924325285483869959605338324517960794802750216974276381275948041928460838303633890376967551949493907308655059273446771861876531280779798159579731255944891862476492823047110157286590615488549937649015706811549224562081409259983406434301682986892486797679228364289893133750628459982860614309172193592434862906869676399288719437461477384876233729720331219772070522442134284223102776652956263709147012723045803362660100867328897421423490717930988107198336330460289952211093101508414586339798007674796034773034580362998814136737787436026037430400694977245443198465798136336406617882777099208695018299743727387444288619289986937880558477368359589207595798390274063646757515718381664046386850218315299472426625476471145134111027871518833380083983428531459430560248606790225700472601795097479016725268992914568993563409244839491392424315152285045719479286900983756853259617292875632069695211440240018303127539444940585901038946451579452276304554612038453843558090322768931773652515907071918806479821381678621724530648679139201646788250861206218505409503041798362985343428451733010695361316109776690064384569521426149500474191425810344806991917966742170620880894304822779088324078556501320147149852186583218195262328785091672487731251699300279679896195290614004765289484800288511749191243977750624590587283067433665670836793710785123302947538486851819486729197167019407360131871676121513035794212055347446326787721523560864362434070850177941773463256565551360530352664351020471424221943520632178727267585821858007453715346877240641360304263255317110913547011942948329010974951865055681169232099588324762932124958609473922649332531019011184000036856639883779563568442738473295827710840522910312113020128875362988064691157612881250979542435693818973462915947768799590861675022433652195902498854316557084485537030466702346732900703127745757033169968384948141191435049777649653295074242209614891136424619921651577979417057056763667710630200750503954337153228077110147114184762592019255744005218865260939420736762728623316564445739850667684811175639489350517056119627094075627660024883680093908614821406065812319318518740195183671273322310220108872843294855884310863021582892365244409585907909646357335628367275228060077208627909795984259066090436644382008662475354247685815282073736508205606006432759149400410160742720908490315630245538549220709953703460599061692743329869478927089369610539621141525309873307832613045570155193099540409519944424538867365425460417244136707053240572882642933278729429045489831148806883793136256504194307087536621036340365277675990344487575722447484372636788289980636760355008694327010684525187801434897843642379194191226513064275797246798872682317712210401436854778935423733193486507343356375891177083440830186751444552137392404227132577680835078866067896105703342824548180067544031156329675028600491095697031355048558557337113969340356039901902514642315463488404847695471420079292776266701770632709014217520284957878277482984003681721944607951705649690384509750822975522227056777977692926690086068447880229949930845390943877162918877426053355754387266502438977074773085829884453031057348376059938142196760830521918845697175880036187201451883482783598532983708365956555949382776368604475022509803336907204981378367520256441094245195617385165579946872094134195538129262811749951275175219439711398531081806898029812024285190620443480191541968622582931242371151011032321708340516770641765957819311306314619220659233231036004110313696495778042140845611309023338270774455651359337679058073455658560623105975898112236292235066757327131769519023170070623245019867077914939131166028402812879072001294588074306686666890304258719922109974596450154015102127875317828384970764582332140765341758890664509155918454605349922710373863037874070127263487424620965821657021905852206074772417119534322394871007905659338968533195298130336197975165047128445499279005005006444255599154840534886643826678105038774559357945575306904191242711959236750094885120974745281885360929075581241423561283157490234555913905055449619530482866794828584837500429519435953920023338186287083717488835711038133686052289017576700777770939266414808707006041456978611784765641187604882172191046616106466494795620122014144736576860618549396140226572924563255939009819698186438168379589703152083569575138295907850750793559476419218139098915922688281777951205926014598770173432941569531008532264439432989244017892129917691133420120937197281719985237971789986747498233188459936044106876479564990545403057740842697599718197296946887607365026695608084932920938951454547874380023570521540171224664665451534765345763288600264730543652288789082306457260403406235066303035003632063056749979711921881642324889597198531276154932698749221804467279963480975811226504356847598264962798956328015206922430665205625126078648277665976459738024718259417819763707932845299756935097396255100264680091243561965956270734468645634259639897197626412631645359503525876155776724203916572611249300446656389783415687980525902827649983753141009170170162803291415204331677193785780563492603656787620415647945486392060482501852347078700035116065464885132203426508589917099300379895153905812175257127899143020004985957645626892596489727154155989903378021662154213348703354896799404853704938500618831158263522738878868960274251496205648955724014010471465906101937629685846298710824986172580346856300731738188496964619455107019053906528443120327434294330206180206658103943676507376750211374103918641180448499010688303785084924489636165307596489996461534557560750814989970865452166845707799318216330472084495944310427592937208854588503529219605390403493546243487268597116610351339825515104956692199973467069932616031258076012880876599883508420736716062745676546452362751676087025205091914307281109081863348228299549440233349718522116418535535733789465014775202885692322394112498687673191829231160982939127383269267485146348004739458158110707644526340266393852898004195420653196873770514845732770797842285685524138074959305335885734179968521094947040475048383039112393731364948414250572489070329022926868706349174654050243853513812482799730747127541369195222998045644255863210049166433173092616374064023549983557808039660139865146529339607113036632244473899090553779427716864764649897811017894809973127567744898784147584623013218420671681389553250358716197533068394159144431099956029776628497332161649397956498183364259210761708252155508476587849465773518119625611487529910324428196755116998952840734422067683199491450575753905270294332469322967546756566639858185769045739037339847039838564788999240586679190823306826872551045146017601403544178860590173784235356767033098230753342368291346839014223336804747995354786280419469856265733049527783407228374931445078884444740305587539430822240764920445096342726996837310230055713890180777870129371690070687694478577692129923970680070826853475459638382990612415614379017300127645076004144106786510233402853843019637334044592546919693409770777439584043320573131607788358403861209494039061590934994995182223227840885788741502226266959059167163397146948861193864429630798931703775334813948066853069122436547692706107537591241998666475570312758569314822331772660784590329845045897711031040639260531001021508710513427416094689895628047963576265182746335077728452338250921924042493657024189467242643749624837243023518961003412063470118649912232385236830106973390468024134607801491632570966202289994819190123210445378193907877997478737018596657643706199816449867631289689297803147953940489542294344928475732923538827172229567271796366974235177466063032717631003264697738782895328537328598627609617826646513201417538809747852707314219383352174990845794171886284410064061570066582895772456731675149966933684183050469478193189722968913415327676975186828740533104046472048521740195023182643805924419481153509211834672806273901911076207030364963931104765274616838371172701881978295167290431325343442249284051900412036695231400259033368366101471620733555228837930214340080948417940917718076323050245185690876957804657063151134061006632999816805247613908357110564053759678085399710448902285723481749461744600707746019877522505751651101501896259785100036354684392264278337846671455515177024256660560163814817424246300398230199397688568746905925347909696497782660899975284749040583585276161233762170863627846463144752890776499368204139478146013938860600249348198795780100544914289253160020154209310270200439236126467956210843656966651487051019834809020384619589115565473012913357309218797062297119319574654596405510136107504428920111221465145698883024588839382790571534884414091996037002011709859024740050270275782041861781340707827916657990583582390650054050674857337857358925909829402527012128845208194210510370589173919749785497026291699237241165075974822802455245569848839411286621282045615358625833663661981548436235473633320998328354677797111109647793522385384554230993868290675405012489215017710629191846420766450178996199316268087121003720099310717984714352391688814688643119922771046249237857411888080479666146403095883302089668648271370748902719316301096866522880407157045959969820069456736143744618370741103952640898900959928815904195231509560906849346255158305763308658825087550155252609715902389168629210000847879368794215746058137708046229876778492570105164542887644102246203519194412452212926331046328640291862274894635905244183411165597378957728476800788354165167458579402699894116450493353867607604865542721783848324633910990830991930237731079337833531062106754868515180106855524300411076499066619545171385701175174091086933470414139545107824902848090068424278881392340933467884873184179916030978285084644920629816835314635710035452918914328483642809255321785400908723058567427478187626716457609437425126046056928637565189951753011291597836924718046599287322382605569790470476753427007924608110120229472481783019950829664054412292220515667692979161050801023793193587542316332567455840464025156595154527887074614527623334661929819799328007733418820872274278370102971981491990588990985050504469186991855383028768325783513857548710959161585567412798598662427192090354641070920069613778788505692224802240335449150276238132690136134941271484521382082677782664794695295932357040739260854234591380369783896843738386882922766274571950260097455236169697577390871879201348824934899611494119235423334200385268475065570846028889614583626255095983985552982807255563022312734034305026001315191382150352869233175751767923530732776733068456402718529950123046150047147691828504967637014198854526521945153739968923951090407811003148228594050901131578135445650218099100043139158197257745552849370673060968062396211506540534711228270510371279569292171043658569428117150753460767736549522035765935131687596532608423471869303499957247300971574849131478869859910527178617105858083179430156437758256420061874582480825542095244336889509115953918609710694889018670545259853896822165619230431401220221525731376005116098074452097084539145112963475238427640359750965194014086131860883885698730543664309133942948289962883464016094542314227535981634137285877256311169971046263838623667104619459194752554198792463406711884818542103602315543729673915825868370417063157959782894957314536093024167001016743772389733843700871612322660416080902750898498492223152177392403156874044423361371332520308808429067785390868434779000244571751972582897246096033581912272852874172790994109254210023226989234180570258162837787421158600984973311882830070359039652943383147624861475189244069619416694621685904025938414764200225988506515793161935785149467577282128773377961365703219209643627414182212697170048291221015244235060690038374734097123993685463049692840016207000908166841090862200599913452253429492817307889861425472487465588385182548722320140938948098456679580917867778720580909697989867378520718646421681944502040104107704662611034078760485970936420974073469792810310931990417848475661385029169734534647415686170324509748325739183619753420600159299094364109418440401573250514817480990221639732844021684661750061581895351674257447917530707095687738085425841999557992505917540630321542203754223265744473950991852065677171058864664128910090357313621954669728042510328383674980246762868968316643627259830013955891388296010167935913041037926783317294255151742253881061423777531773649217725729292154720110822318848891322384153821295883031317206439018621149545935045976748317615932498163921954207140241900715630776798200336804939643558990173606272757159120259449051667932539302396802733276096262208301027112977775877487550261313143686910976885878066999353433783655013976191155098110123398787068293595809182774547406053475235685061994111862802444490798545768213886917102242087450781357568116212507104340559524821077534911528445802116016789724922330839799176360778496608548668052076047894921008686673229015310147285752577002158865910642299291618721829195236628022859097785319564678438862402304165736920852264093208412330222518350924532124850095796390126233903590065300135388932149776546891385373746661453708167791687098374919199396478509082179162835275839257788077457124561927518353187019963275049046116624770526286638117598023672590323624698566466327341676377095559204818928317417057724476259311569833021382043576876438152039166648754696820442651874760036521317406167641791389392063651360429775076624448835149606859634978581843402878409977057505509131681035059928295612123595621694948510142770285066161725627575345143251295681996076694307782045660878559498383801867373472397696048811543904774670173481524553124241977367934457997832174884966819369604308961602988867590785836813953975238489815875603958539636950249773469235213392064865984438145632596151677119525696957679779542535755001735176333625476593690981722174862102521876008990205740486199391733598742982481530574495329756968475632307008210567068696957711329320332932368413520221509695835324083070270967391082537753929801774494859678201967401736331239541511365500110493502240527082536729983222105388026232686332563042181872949923111608465008924403727195831800381487363439758177188735680319479121436020194659973010282363205384169521943925963163432363338122430381107548973605373568523061468829219180207913438932304147355591541989982844914069059757778413793607776544860465830413775108226234296865151528463310903471479776936166406036383539197861284649653170510700765169851178288899097939939720404654470424934968191412045911604209398870164454409681354847987512956524183021039772241912563265704318221683754145792433834549352880234896884901447139138557743658286291763607891084831606141930192535491055562558856553948743364437248099807298085813424015276892079135246700533200667785183549009934314844982376912373418729179415545235281030461404720409288639107545114302787894414210491310306570083090019228761963940436513049484828178402143882042793371772306711052840140638033458565550532523146384492911787311288379289853916611922686335687149061966848002770427225977082622736963452065374932749988317337639779608930277943079387422146378096615957027811316976303699786024330985951419968202225780597707239270634097159870820707337071291921008991115333439803006138779842692856212357266364919616273883772805319226440070427590948659723557838217080954666953282658553136855737980510799761644577654291449647128204315005999530461096334753285813881789045169461097119692919773616138700640513597235224077740686017140638326530746965700015337384286182840212556196602145527989665096605800563880575478690727364065774284817030155647600787324251079258716386591935396840751106999677938715429787822570558756733090754924845634397421844836305094763970009960836404632253006306469757952947140407415420791643257296561830598847990440242675358679598101215962986920150401259900914736356844072017844318790711281013270551883948259176764239787060615583355106736670854532455070021363494382868198214560896153391898440094932094216147558673899211127279234485098261349128504246521246706095534167983254238955356603434914831727398758658831300669111221075645202328328358334535759365486789106301717252458723532064367139544533242816788956925713148767097586351120451145893259885373388564780987163280484924130326068118491724700228847846017421631428815734125210240788170343013407966115890389401175836182433078544197804802347290105846484874026516169121874233303655620194610336846102990328401878841523684274451752346809418126904493206984338220852142206413801313866266250042360583062409047257454313913332700144588009012392038486100129498144163815758310796905917360244033757218104541744776082850485956043733102428251320315600509728667253299268416566825300293615297926554139084992676897259444710285175344552591055521149628168525318957827610337283525483947382087689503487934176024440604100023421433926561359857411375227351502265297806172393472836482548500553140184957024148770041829494109918656391569461906381962265309701315807895409107649418983469560562919344241432369300444033677554321938137617918476825851814017706188044261703725019984784280556852693627174906181815248171047524337741431891060469332968085109058381484765033148912638907327864642667669334513826617466312426767376692131808172227885719332943866774277831346101891934545260351611821024448272895629225738127003206804987781073820049048264436915950184823095503066865891542403389784114611464919224283185250846239708487200569860012102097496441410670648239056058448025878707026654033999579508323945552740511735215855716538450676487524006201913465599875549948686271658048039724674735448075854623830615573459249888218432854636068994316117587221111355878017522190513578192315958236892786845887281801365377578140701341223499441852891992189946289564015489544369778465393635646556653950998066725613770841900632377281327721577082626930673011788526216268948111716652276861698057882745841746999755072951957070278025839463188495985583631080407990278771046039288614059715952041350926830316562254048335730554294258985067515991368825562152477623190525710642966529375987119663550297278435728948692820249223813665110341774871703340197165969320674970742236428809853678893541430611506721988271254539673600203794919351197332471452927575953933477149461883613701034742984487094505080017770504248944020821424894852586958888337040178535256475431015682421414275098890585902440936098058028093683965154889770296028890514822178187688574414710234060728256003477745281339073637936301050695299082050776033151850102781745330322045762652460743945484582873651812730556584643614684174418913588607858489837619280137662780575565074717052589410624691564393437264401767212279403862220866926036261178886304406145998799054828505134746108054763836080448491801022577681770248061964134069261626385622572247407159398404759619618164418006553373901257952691315683045543781252870067803792229670776175379336241446065649709922717121138106417919916280144056212735066386252665658493575921416758216613622378672728164232640912405460099096589217228318367050969565285480669931563452428329671239660560738778099679543227776570433349136805006122248507383075015279980605516797871752385890147471454343409667859854024614652557802914764133439629370680215151169720037270231255191024409537203392643918204619334299432448602249989799035073617850877127274119945256846780196485963097328380248685306945116882265592480476506528322837055003885024279059662288192689581822255715743634540282009944798766015325003396099807977181470852416170503643051302670537936233046377770319678711399055264185660696760319842744871067012631709871672393160728470297827170449125873535529378670440994095155793925501358399749786394599821158087140171837861951816022842105681793321324646633144425053241180926322680842345110780062929453013978449593854568569580918346131918731890230041035839146297708501540230708700026874748068720504152711428498966526059341314705419424035348349379105122700449369603576719163103176851277676341970396920040450675318561529587794664281027298659592863063582010052989450683138909230941440807927757568483468315552240203025849225090795666312058566076996712942894913662542949933711547766988156045617758563208690794676686182026332314528744236751968652460360803597044015778905896484638825812356361217644811723720878189904643963734405577551817681144175107375849591251493677205580624834654074015651097254834347489637676687832105414890697286546295592219854647429579662032761107200288763749589245812441562843165772685594780505100851047090200265518177780012468285391908537998380801402661762715303138173197681107387003093995118380231061925769268509649810162100589697910523478783095466592232870564415877858565775965679280686307557259189566546148993805815135413487495581408455529127594606735485504817416071073419805900317280422413816780130005759913681305414213179341495147417707799349004200900838705586081348841497193445002643192551948919626844801534110193510452330039539147371975729433089005184592927632848401959804271787467102370126663917984944045573682088546672190976017704857391475129532869275941345998703928668512025070734705866525518501064896309260392342278227931553985503666410368141682562489315569099622228985661119945168373174733533921484568713029867971004183959068669850491992153817564415620156632556129777607623453626509567260321751321587199848286124653008357553744176957335909848943103611271969667955928538706441660215711825327676917489094948253819801099619251095681630463429398522384852416380917030482842277457640995117101710722445999015380216034898127771253840672982877343944521753524612211434010775298314444847179078029826124851165902874076592082132933681452862781025061752258297960371623221173148727616056638214700623324482110417996671504246715825190154187866960199573421824978383002360631590639032011615911875963496750973494148569484769359441396780379923459807129280098569857775454806077705259456074585873639845856602168883292900561157124923458581629868047541089943892386576739955629192627952534725599178790096767156402853526769500162208590100236531257686793819991846844523083572170068115803494050328840373752724547070756809228918444965290520081191487366411707375330430141989595696230432005401450322565791161370037378004411807112011900363657502726022466849163579497595833336949064412158876711110202261273886878027237361618981100164735131702338222012867217400988416763139753979828675235739242747986860143662287745243161029655566714291351396542891073713160679937319563179314564793698444083460652108854586250467100807705199927032677574960810506937844808911435016295510374772259174514297850883475190255954435497332527423512587593820226772114894215154564448120817814750391175034095766032183245907209536938597933947479762777922039190211789725435038223402113596293134347420432570092518517964449117878569825044712617703753887608375011477685569839284150365068438897579224717702533621534186629806850433074046682567669615469467402240053834444345380006948706592711190912832166113353193787018495918104028359248489992455816874570654401434620261443186998901719386837227052099814404152817820697137803478206036451717155066237326694898862094465515929766455850990869168932611036366427378752761812422577315052038014220998229628170080985822569830851195159737717206757873245241591355300711760661100083511703653863673990425673160303663781128751901735370958482416239038418576476667020312013539911146433796283983883440860746408452155762517099214182302680947173896631037501609759657760192864651735678801908779501804621941764253578300453366454475412926330261649628217112752685617486619355409780196584283258669495286049932986879580935119706969319939252967355884423255676874689536902028267227316291416881930668273454268736862653180905644389850963347579912672267373223100720314450026606462794654478457666535335120560249583797704244773428281520675012621084749958547893348524730064817301271166992675025244577379511951019928103238350856336676949092749428822836548831768281008607842366007886884826546110676906513438937491699266147103084494833468388608420476448160732214004169911552434787103001981691021524893158707791861855749928633199596471250690947649867787018460116486801436672380137514178786324819009609993957032498727212494572078417965657416108118501677589173164033168029684958326006280475037503046008228831765581656623318104044134639369973254917006425821829848264657878380444952297645889744938916377942831569562954845937445585659663808534537753824613185054085821567261502235255323079840525730775193608547607497156865333875771360859717377505086843948236524552561849615312272047693320949303983186289377880223506625070177189334320741853334979627200093049542570984068831883902291613224194668680925329809285082759823184220686234410591580818577521335679709679139890861396781408775776997196102922810767818026310765815012217659982066438180020823642800530063475306948273619816672922930467946891826202349541403904294084993288438403752916126379652945879791860612510051909233306842752909269410740738953364042561869009385928789768858717049318616395814404351975241561481415043284143991365478217765323677305750961105022161998462036990088702441035432184065870480924491383989562087210262591609660779973907085349162720612656824360594142043488334379410944923068321916659425675334147722466222080129785425225262913867872936595755752179761219453357825254660563991108721515340246471518448592448873131811407828920290644001336679471172055336674094751730309834099355553629549728567076026273613049509501208385337966165970961211698709226549634582500481102825242015356694553265767712051967798400540700743820313462250416419262109626934494840337659169635198173962473486352013833345974577588335312878533572032931967144768670590867957366670381296350437842364573816284380619658724142572738940316540780374914105942517589453840880772958240782628908127884813590732887947367183931333211283717373150507641722991832442756407480124572778042443846196929911258334455950369865903072371494345669140195887918662686917252502464711635802405725791322654797689750580085756371401077344951320076679746939563269747921639580230349813876527157882858138975014160880010774168813501413670479607955536687443014905602853172859198366185790692521447785275933022737555295836958495583157550897643456268680523096117225964264397392210322011067197062996807005180695514391266805871727946020565727835535530216696518154211803172254750396866114934889205550278511974662139324742413552298274690297560926483129549939696529607443205406127653933536112976293803891951261974553277820710071878282292284561649779266285991903194610056682847668537788885144519528530119767220731124886452212534881694540233490930312395389520989500339363108945624115977021119385363465860790536576499240969143176761222349706103989854725542422240210969046252386892011551174496768564206623580610129203478791286572185537945834060216948809828277358222432722669789148526546505172768430114526954414063287132442658801680673307904757654248351988782633579172260525850257281211177734487126682231165563740753242552251935786784314592742484680351516827532181500480423251215323612769560581984289191666901555764339014816348943376558945539419340014717895290637678668165618806347470658845959722856289351485395327625041896721142853007379790458854154540240353326487826257162299287412996079839171650553254296520863733916660614550150314365164026058100359266801397852662386662908428961845398809781043310079024335155430601069484538250331035877432566689401717888697880575760736575381642496191459196594992818682272474996473611599744184143301818293485095083201361248781260067753415311682497587947075822153218752882447002664083718863370949826999210923366119146872415207543896170899136614534853704710179426879848029190615435979370267054112978725164224459993640559583862608362893269428551618006434812972562947423751706827637139810579691081827159134248702225585785680890922731154751989789884861493139538127249512857172554854638316617169161614583635137533043351801954368841929578033753645675486374605821995980294769536724715286236314501366691069109563609966512050323412426035331579640672514430861348606275031560471122103860214816458021000678582444141808202234367080760632968323293094874634956053542569287372469916207884101017197455723411592819572832294745320124551957849644628025996896862004927071981669217834793195800985192035856396519427019075487600574621300302807612329151122106003167658494909670150414966387478110804507792465397854376458008583032917580940315717920521561137038998680920629393069930691351997081878024974221531317869034801621495736324722744159843412222656571884176855340688039310414999614812346262521620834345205030655963369760986115058159926605253456572652854271089168120671303921378275418092705490047994663233107800179997352507190842217119675452984080417759640433821791496272785701041876498618943364542156221615794073799262370023970194615393519699713024671490747210486665915814053276792121445375422359468988322775403734491239617482879533896008434905144157812488013593628626097928263819504114967373906538514675865130050021062716325241506635690998274780765206671551025265657666937734116132851930652517481526338865047038234889681605810706253197776520312608470697537689387627326803238661382183953533003075605844024167641437100413314429217455840111360288836969242094434612666593885347843383421593172659838941018992085345602281641118874118085523692322098045049429513013392931222498031700467658387489784409352603818988136431601258086220812420963420617327257592801509885333868057365678395269071479868710792723029523917738216822034747564038469283078792062461462175313383998698721181321322570633678197152017162096829828007904298734257717575987013707452707280901751055323250033525076839139301860095635059611441551854436958609468891972493469887594750252449059377053776621519441291380549874945480409745005426454942036149056096036152311379198391402224450972633617959535695974395760082056149115730448530968937813778640460555351919674063720465348427419585623651034686835342567238815753261130323676244329191043216712204999246393474824790266965855234478453249639375448050570054850265421030005349285823942239412828302907485020530831352650043041060151286638147781145876197313370597842073868606388178318489148019863827617066036034134330021735837883474352416846388318640850799469603521170676673373855475055667405091086078828941955320367158546660953029666077465768503991895659633626312946436934424944928950236343329847472895799601936541038266315138147229124712111812735837231257870567838993169394300062013074483282545168312932731460485784921815439673913266943526914658912977901699633473403469940657521223793272074179778137414741697647184560486153691657162656952751681575229681202961667699543324081046824323166552147393668050235636427221322345091655132267514355826884539000896658973193157184911287757863532746613395072529088106940569254382525808814107592862252895965474617795346204862144843536751176595731631627891514820636348435295211058182902661209351380760579888317009530979855086925300548004238122141217850666451821322305765796848551193114572573918333347992652751293722755512135889079436705105838937101262325401619948760288609305890659598256483726669200098078207345888077247751151884440140205395793834251335101914766833819782488818897928821036234422627572673397887820861078427857355258293143759168948523321689128092558420411956271824705297626673204876309261834263637380315075726423217715610741084913739704988350848263544131166800164281762984958526977727745722753551729178761345136727134316399272557169051677391875727712443654842923449826502529097292888524222950978281443189319432706316952975839121802266359326593399723905360221908443315490193789924030750217859834389123304483499028621357708394976508203303224654588631161784529317365653104673916055717857990204393621793349951288336006573786957303953898052768255193572225072776453988352398673757886151224916819523078018663210937784107244215291217907287489987790073591407530785556389250567534826917458131749870634198342599193119715435044106427397460427373051638781837879458462379623029562668359403794162802009599476575907406375421054344959148146867828602168462611313077180545493687956155465706775608631041149254478570300900691954512831249703661500296801030494464986190199432966133302422012653864569346782130205137011417029594462697404730060274432004079734257789005135692786353017972756510202792041877225309827008153849642254662558365583885038084011239520245791623651166638942937163780124811689111287008310763586057833650954907819294427496900574581030294866255798376670651057768696614188481791169031880954975089306381903119139240841562380185793089081748310969825641232330174308102310440263609036429952350306758768599391598251659382269612957354040767732404657660419680644218817072797115096960473030589819690814752963938076417834172334101235943872128681333450084510666734170134846050755580604668982357849533510888059517278699491139819762601048247480924494578989161854779137991223097273021460252758532975854508118596058117372818743444005581166973723840529206054042755190940253806693294926595127217158598897536364155250844777197007932073329813306404280470611188157927106454811460149551773126776439758829069198091971145600533736177709057465696245414951349139682940531870217007257786048520562827667138098678377465290429274328352293701822001468216700371329791049502259675031283183930968596568539893128265679997044686985328172646720152353102022521304314675863936466109138953416061626458855283407492851951490289389736255929273040519746407983243406838036388429867900230105335399044071361869870882935214231080941332420035441059165684181976349974300285112253152580090724353113013318817646502927458414685890306708804517389898383105516233447076868722416006398967884433088007567701642033751676006930920282298463202070444795404726056904804448476870570267019995076023570151285925583340551138767230933619164720473957590220850821636765518773334447917262631398869557149533258844887196977271914741001397146217785473078423815459019598215151071632597041830822472282762248916267747670341605635248616554598549581905715282165272588389936490172939188487462423869466664263090281782278507688331071488543452629148716738851941814004235137942738400566635176254230812106134873750856910603068662854682562567304168750284985930410888087610007390161841862190375790866763410667496321316308490097693045913628602082916423345364021253462175409536009429497552907548458934550654854383616285167985196343417436001566916418053437690099394294430707478415613436241834319813758563572776769847914773048091103964302709559395211104519320251062102727625191785900462136048085268762312090337173364043074886161670873824405901491753253225398511955298592125495413120497611304816314471328505596189044537211492620786040850094663637419755145474165914184063179228869962264635232619258254366416383016308765512553939426259754174728720528083687988733037869100225313024062152109521332133512876195265015161626082041314937308554872630281341640235611558318646632258697663717993773391542379892261326511292796535314935636075086203659204216859641083667931161991402422440832741723899853318189615261568783021039297853021938540053718182030480356871865745983140899410235533729045942083771672602385025484848882060871377546384859853496289316079536616567276445366193480306951495068233147536442294209596903777787488489290809020857477073138123434538793848137426490113894478053149330666803505361409754222262309680739416298691331766460198212425426853011895420687140007305123694628137629492866534589617900001357055650261459680973067595635696206452233790095751069537979060987333875109453528711742926738777825715376580173906417743653568545303697725860389473867839837344803724686813019233083612433504114926915598555150977339757956450008945298695176451136498596091600839051229922058276127761277423267186328999135274436178244820912328085549087414941752423224763983734024419241808553554834760749168706441191354744274114266275212940402813423187927434942298700842214136866090403687388793006013319627529526072656832212075061274546808167776838353982190286395298120390749656357086548341766627407094352916160584953162951291934986206630519232527073857082467504696842708001208124350676852361460546549294690219316862904095832744207415411149209992289766014896442415206389087662214920191218493604943698327827585013527261824609466383873466847957643623826740713961492762152365825767497537438952171301968071818329490137843537534286911972294469083748158774419121780126845518535362753762777092660270944503344570619328648498597472278505060564124634176723051240740270143887021616146223297209230430823474589948986520288602530725286855940596464593210857103611376318145738393527354910924478117286920759118981786487784279614815812722603059182758099037471666287589232494091206952167839790433699087175780847517773847784596178691658259495747775703603359298846362683617037145265661767344250506670355031969868436384564470104706224318354900774019159897563179679833316297169279764387858121349034698967300239700569763411581148301156509949247735232016230227477528403637451219339778358729655912665825879867324534276947563367149547322871884279192532198260817753918317153348799085999131542644485809861567928783828413581769066867892324584077426683315018931096859054545651573748928857075367092583155233210119449343613703841042895482199966869860076960357286774521741912470985359281061469653441414251257950873573571526555349698431019334790494170390351488206524016526877357995731922800587330431673817195786255876126188090683038213937374178173968341865552637932630971177466612500422404843717390247220865171736512520137711017552466818804156611181396784454044725676007789559333763714096612660899813007502751292644202255754183463113128178114363178232484866850630094332823795942631347039409804147612397549722178160973941888855397254725739351509288114041769660044562400579928653715821120433291595588351182752047245927031559000151499278556203753536005455564894549121784606116436191330559777968413619814212908868985382200931186253589326684204894774314916479152318341596433484615329331758044684176608928612755592920721276386302388968371247702229985199735289981750224183534189993820661278571283078032029230706872331533678069122458660546180715112936029986110064194023270525500070162953993245724459038898719432786100870445436654205818962797853989808947108842219462792032424229274221897130312185115048610455567952997189636761704868018985867739265093235718747635776032595336275711334834238427788724558511938220406654291967784728303622501593836171797264423390336951682241965181240483953962994431991760014942760573536317888219337242041610000014427020594964764990231684748270865239257961064805148381652001516511906961839406757489624685234516317322106513132800113560288685291486509523557054629367053918633530830508566073501290792768485750855192988373990426446323724119783692214968873826973777828382943375324499299962778656185119891127104148022188603241870106744414464564633642221332824331057329649636467342001337892655594694146184863225913959833226473726190629820504063523180546219604176776939515976101473709621208628752604758405569009263985928844920817530473402272146474570170098010557290458430867617866919414924205365733730163647392070555937140125621878063148328303563940098708972075734331164960680905232271516300542847578873414279480417293857556515485742282549634032805561541678690666925282124539045611539926113412929140980220762109267235059435705200591370752591079639788398039883717590564924187228724461857476732600172932236295034459888082853384095675027828864155362622280729159063772120988044043189672259329623262656504070523384561985171030628424485529980601351439065939483989975957956381703955746451007398902900119679053638479880297905575113809377440573341783910322395485929123026307491933516409144116143600112646947260503408995000263445438528867705619028062252539053271339088538921594611335155507989130797866445243088275012097791169861130711367875583376857849490596949023527080954690418215742604684224161347132289120667383137780487551384838908366697344621232795982470336687027784172727912114405043852652779222739964395628254904432929361356745700098891685005139901326349332934975827383641156622537287936054706291215315505183395315638123915767780221145319342948658434073852484375022651844427607715149627577507217560142146285092430056919727707057993745554977357988391748328577430369136917793473784603941764685665614474377070139634353831613714258116499486210557783883866763066707739096234219317722697088779902002729188813369979914471225607559213399504917248399226972595401226193874107953874678381604373323525704540211190706984453637351522470300190301566297644587901728519358630614979929452579775407733873519801504638830213202669016653768848279284980055879616759698419440219105265341327062713847280340847453787903658385999994406090682513211920221640654802832347706900808646071914144953020270452333979476986608148193660673736987051464531364099491364870893177212227008321650608061678863663860776877484660861871107099056689281331855530945914766474186700591606975675518822283650723077052529356959737280044467915469109353573976441442485845159907810359877455985555546897221368764149143425527559747154235924766927185346083095784635519456335027747346120146437220655122119231933701125430962645083484587581643435743948498719527889068577718346901964162981420253669970840800684613013561376647015872638955630204384663355074777907662422023280476763304358075757104975454422589651657352345610316496475272033449142228006405620683509940784583041671201157725895962814555014960077974741350678795927341785457247594449627977072125014568530276444912624110108410408158192082099052863557504749577750226933439992906842041836080667696392954819637300521813714860753058114021310952261185839327631985022909217423862539945896146891953812610664576629748173596369900278985995158908323152337716017551727116118280451918796580789678881591348525676003488648725095424732476680175068614160147992740847469459543645557972534538441776352749279345723979728762434355399617507634407944735741280628923541788841291295259187850507875519295770835638644144958728425912412767693052244955469120364405241967918749211330996982586156981849379873249987121737718709616756003991347807566801582117564072300077448530444345657400698771004859371660947799870317169102978580655492393964446049052237192691597676358490045043640274334842376823360683636536702370679796024642034592910228075658586082289412772848120557405353130613462418105969348483001327787489542350380955329928659342558308637881131821143083410744001634904422000553663572503268996775499337732810947274490270734054164176892540392778022925081591679729608422694230506005393047361943873071072501261821935650513840751567258383518847927734383579161543326129229419444697391736918646070448759433021298113963401413904256635133072645600965464348141433837473381940388046970413414758900251545477682434230224965678907219398635098039682281164270324304852073039339612120669542735444294283302996288484358481775322464204383892067803187779638309934898444974113613180580247865267791470233165991804811748717719004624893899593147399256955393611456234920567820300037704486365301254822081389708520801310088754487056971617911183220437369272082106994932470352249383409131791509667764769145117548807455609140503391010934843354709119901789837715356909498614249219484074115895448629406368657197800307136076995609772360072824681000206291225994066805299765808934215762003186886852117432616485030410756091673235914968918388406277790360499942445762453712542805698781288042958559418639780673412589008513596990222493601195595143564814088102477998492879578846328983652797045289031172027232875022421078502413842235111647519174071571663861341990138616507886772283049068064758110104243840910728873768635868626363866600542008723948074886545909246583724991234982364328461166633829785925417147037812068612971785952075290181770144135761693903749501780070649801163930295599087821248522408090860119495016081253151935355021852051566246961477331880018498300382375059697021789038112506203889484209135564825684113847302938605824344701984448650139801679801005019913322126612631934621037297777409154357402977967558411885741390528527202772430657296577566598105533733244931826069206975108728429536669122301495136964768047093405785475529168544646087789163134865358540669174185266472046912866148165050102924698718077696434843819779264661246318082803456729368098616783955569482073391298182723760486388287891275045537102182329956878852583557229857748531713693631203495773998343326623560832604242937720691621946198473627030952746461699571441755917252989546011199306865280619808899599137811794430588969903049649604872155763974004271302431460029356743189855674907395601244085542054775340091724386806438105528438561726172450903046303551004406220028287881260099472402986915916299438864614907562128823171791395790508303286295262205099777601048759888051039881590275395168541125457673415880957056674350576759204252900904037347409190032264628582942254610935984429929314033850159626787230241626708641665681640469319065500664457437294570106593528485227734628685944687779260728873800809807091637653926859807500254342095070080309889306190531616529609001256211177738114797111893214298749649440580346123008126538468114330305522075952090178919958605627054155961880911821915174090172847881916467793154812337366514027862823466709514246565556586906001666056931362388491956596055319457296626806718088158294775607744871636333635590412459106206218201851955370139709280589378610313718233396945622357887570481520750449697325824712710351305650759129001101724406122805378755511125551640596665977914487842920767124972374946137755285519484469520495071573178683795249927914967545066104417749361846792003964481998909156675197475467571701578963413097839232534521772242161775258907892747113774131831440861194583417955159040824519144109830028797393780490705952097338496087828359444690096497586339203205138423856273096314046626179381367933250478023874950109302312790786552587519221085785152637466802471261672191430036264119658728151666537391108748093604547025330653975431760330258043561904568176734373211287117648670443673057979580361133813496538235153640378105336644479305118742942912636371842641076709222222633176262247579804800734136397172906330621533059535512664070132894183254942895483527931174811485492028449547660213621776535143531195574445054193328070838770112103549800716473523102699663669651654087520954273683673648219662004438249320686631470724099550904606498495235689113658582987395448372702353218622944964045368118912721609932003352331525282344288021525036962509042671112601516800293539930768025837712325902067220902310866214713706457710065579348022826733794466433492867179552790109936856069276151967707503676428104620594944714256742266467258267534111210684654811669619768718438315997832447964855087642494470341867121100882747957852399771406428863756091248257019158356141495934994543988906380102146684902050856510166603113013427875939239613710188170286750207989768695805659069414273889142245589299030964084026664286568138898610995003466667018460705571393450304855092912975418740761740967945894840562974804144621922206752984959063039968211652410092741727295714512998009679431068259141147465695452521124891313416911053285267190542984571893765496116487268100036944468721479318367661593359982249806681618977605424131171695412123766499905998995198937044416714042726621569019521308786153326455799318776936568944598573948018571406058423685192231954807412280408602140776630366758234740999146097328763397264442411720126994378398685638364568644630638895258492377861278774653233951576927290176438151783722887162643931900361533255653643911897379493755831148158685505501821139638166126242980690070910081726458682762030722341134882153329807266480312312492779234103276110875196376473787378262664532115853866343418422624674143535076727045826214403488133726451695807981050013275034317710663285874199367123979392909427854423575568699789981835331136367689482992349459962700138754513658421746472652911141292865691711586999786245281868789957947092900968267329173594667604317517103062957606462004220532604456688569009109758043007964626351880023211083452261558457574714277609483056126333667148323879224407077155497646842542537961523902358074214560872949196286455453611538130841763617568525900593782371834255090717115472884291938552864151116431252318899317825729972411790668760378271754653294640462269876269775642238802349336605119439553959756237805728721524052035171851321015121470444157826204336249240904084965733575193813086884947347083402217587169466677188944775954173023664536847866510098407608228190404611007459430694146124763494739963047450287315395652992296888814753295435541230441025634791203643836644994810554258806784380720879434569387256344577401134599265271766742332334418420488170400779215452076904419442358613547774114971088615058747600697862138520585970445995273738956236443416841065967425493252106895087956845450903462012419376198589598788658103637676248091848553459495725229054462362007753812668130162074726444528744116625417534037676275915340090647036870914382424740948635862166408370772040119266212247195950220010381422573098141650920746854394357608836459399399023730219553271607727287317840543359432208780993701384573268681250535306144030101500482224024884041486054392174883694509155148559733319903513465617346015452789743639741850111632993834842740047104564228200921438436651508079819485250099111512348784873390580355262899423931348611303972834078855048395348081464978875482192702515701933373645208808781783067791569747088136398388348734487399430463445736081496242709261242288731255168894488059091772250077551718678302332492519075304350414468229140429296475326582515434713773301287544275902400227183369221803647044925755455539645702769421937987495329923225960207366374739249890175997218173239116429449528338522751225839263219321406877309234608263757223677335145285237434498141149745748674847066575087546450285712010618155562315774273963254840941007220231073887166020858013157559628701480505818127878996642083630374034268977270074179955030532093247290273085587780655692825458359555840506241437876989745577562567615502083544032758537108441004040746842592793756976786002694059661132345286400209620282625318052326243446530094198190026972208408352691919643499402864479742018107650116281872075923169166074950265191892825251298331472628845789520211186261658919290951196127628806895978765395600327091985928579089084953529671267714018618326945407009791366010953208089556742288191370331730135771177632830190807756592582820337539701976279700062448478409301181225185046597042097993380989085159555515443249188418735617930894743605182602813634786348775331000965923569154655880653875948099799307173947213616273664677469212124438693285847699916086225056986143313443381661510427438094477485910782660473130989743880978937374112594744751395934553022534227876882460151062153593598164804227249786588067189485993093346059281900936057834510283864651411811241622951099831756789926377720808854370494169996856394515695427094886248254810868158467753566400186495102792549334757739890115131685972083045530037595383746110286939290667497717239781897300707750176009163163286178785929436595279462991271484031138629627496828148156638254866970458863340833850286018503897341581108217526161546393513110528715497323575301841151413382996666758716574951071298387015186612835493408954212973476066231373980910272729307299079323430233267748869264975338079294152485699947818903057158588153054767166004210369534573417892853003386389031438892184935948458180657562679066054801821750502678623185834325437315484876726757399843432692960200971622989932690263239577628941822988273255332865871452549186562319927481333177953423731433112028302378878974061500722197189777215104726089759710713530851518603112160601101626983204649377767236319802611730365337861745098511563489939600922491571713129036542090035898269364442206499811199508670706227592909940702739404487006178697046305045302293914863423645151984273231989067373298707447045796056227800888258851394685469170913612176093850664020184913448323756036311337606376645992227990296393347351189953048656804406788208898190372265906448576141136301474722878143055126276467350546637169565038639095686493595196032983260727874319400040591402990226337627823771122493112732152393218287163868492677865635408235960596770767160639941511886433707956594714866273834344356176992109086112997652706895901274925086816775526476020489173032540053991241151243498661056204678654796545584297315485387448725618628730189520209946533773887972755482396410552700985121339892190051797599198464091185133531542660096479927777879229031029624149596288598924579820193357947784580411129207104329231046641957894952671394543370817589145599830480963367282439100731881150999273723976591185657321502094171788450016897232080741459935643742758217193977541801742134615242992235926639807782545157000737014537848804731410784344644627161230614469670709137338590161940558608389138861231177452989679362127882873905125458754642052844791131732337309276948017442482697022679430782619883749436138363044781790904572973732178475461565782018100949226885802920271817180011644680279010062739297844511822389291209294711455363653523613810321454804728939723283361279232366663883425277019903085635792984923079438477314394789528719173050141604647985275636658595794254701601379462370579728078698429928537988593294186495225292392490054026063252008295081399736243873103558044710331637936185474236954060669468839700088831430330497318825344012654585478685583283726286848643302146146560535216540118217205872444327386131615633466632989806572018624691470942718762777415283299048930404267064406641643932755049064095673443460721346179496577050352929852995059277898581040631537916850604486201577189485581271280605683810690314885878490280222079021076757357505305167477925678218697542178520402796338871131870168020001977607893078555299027953590130963140616774555331295750701116710577491473406277610994116140655624111615903874251854792930850291797745396260528900417544836837313597050384099144522130642981079476565703749223772954529820832480210831429471637779802178956074744446548126064375329154552528160465692055615141370055353239146039963735680334767086029285370409738949570760092928337415773543728115845977188931996385369055979069661869006169911271165516879807648826704030337594410208286535330961028312187982426754239642450979672827846583081249445598448286037453002534334511408928676119016661993350023648737050396363486435017168801926818141654802882609232782219165910291377677342660357760788758102569726230521882675124495326893228529651461960016058205357137306558802622795007853702340819192847338444302118886220974490202265787461183504872936241496676468009303829358146044990643192800581249435230450397371211492782067166058473269763575042309657523655639549006307029588477902226715394142756828311779303352479558527697693547652230567475640223547283242029300603898718764732457223232738726070272957663009837006992269919946039303262133287673408521928637858861716887218137138010684565931443316151348971879267277272264536948513303479318317643573973508343302016693025570234605698558396254942515918539452804837995082847301554718881532817824014298828763145735170217163419376706991484582806781566142200550247503089193114312626940054239673550440089786000529701678866328939687801327217470395121408686444605172895401651498778132972166458183215221769978996307426433283666241217749679484057335508470182298356606948671979081030141798945549983666377514202047755840487818729025048163602636436497985415705695001410584126943384292516516848923461733381701069731109304888581473096698311744520101552677760093788989244636778200284156928200640263496184943978004888847900023448825676610104199741874058557453364203415451977856051698741721817589038903095118392664864630058784349916845969858006719259041259943419408474300282108839811746189616488601694448543546279205866120425972643164027536782241427036856223013091601296649726241811528063975730304607379243065578088337243285438917219408330477281416663190413692653177757760686168881326729816195433887417202914313848156953209230644980522355974600621376082825376196914286058252962380012176082282015107248993346955246529994043569953741728993487849349746761552114531140370677466016055584945555812495520340496949421426748559155780167512541421802067454573120153241180832578568995912329187947515496638254452042091058956437346408148098859933077289973206055858989280821732550486559488415651883822238182705892072311695561885700354888062218644439099912946226598794203795133645169726566253982812657056575971538521825199035504312207726547338240247930031625403573731405272214480586537407743048875447619640722115933836511430992894733336807515966357885659216701943572886579765944888272023652794813768622579775969848210801126658885316497081437800013657569193254523873487617176288505047994893736899413563510111644400423121378715528876485251819949124294748133376952795444876868000040114936273505070708830677389069614130969448268044749915308662681543555163059250048884240422440809197780002745002373996530345530224537667049510546670017596813784745667133397631609713576114821054149259456979262043628232005811814409434635155133244491991160779635141781497238393547649200287165848702974167666930968603349889346835625485983228871281881032015052098883521142486846428035738254600072345409065353528436817715069779204248460398314449752575682627180255141342739685189743150425968626279001441019425992361245670028710812130974496916884776101295392078380891916908028889802071120792730137301660060017997448111658430111881263250624205164712730436972682010661565941290767636972182988424413235899329227125644259394156221628285432650328906987275530775822326176724957884201172872245189611739310343590076874457759926433357263571959545851952191566277703023522316402521233303344651830710964699309063885736182833811849589561066089074788501955426824005726671016822397591856391218349018064902087104218452059299503169483243245217844639384711839581014213759150628169727524353303374915738216282430882908348413701416339194242166368875759820406043001678016248712135909022579088451053905041903894807797960124477694311520728101899923208686225366713812828485807558328181100112956660800508063122078011275716353361812121571867328427781782404726968326945938812884572833969759857135613678187497883689690566092667478585964801769383940041392815452977283510480362681374853511889475743130842505954042847056517325631420573999894172372191313228118412526856370667922419184268081088862125115826490656171625173025876083694777527018339716190424195841288853066912167001846553994907151647158939162755782173549735583565607719950586656892990346210245066990138557609779313625237981477627702203321269993089836592198475115087428191057052449120345599118640728531447458618157764525504447834931073695390737815238869001486734448975351411817548580080458300358220206988940160779891078359668131852167394756330599882660275698987736659791269968466208157326970840733686232310766350351390597463644438841953046709859661590369304909580212037055047052453070024864859219538879239865227198015344427470720627106139925133115259888550469538645212420490341760456509742689020125943875075188198987013970131575739190950960609872206271323908717914625760213322916220098488251164441877877003745216726548319856780031117220231632095765985813054587376807353423314040105963348620150271316042490057487176119219272872418583539772531065266716275392776386017906218340560832660450331375987154785458226443437486345600468602937063175189770955220386719437438134079531118519739513560776882601677038077710096170115003430749423865765615212323901295711509794778455488509033418366070847984526704398026642188422762452423873391659449066185307758715008978593941032168245644684388458852733161994184337262426781934761507244242391378927383278961122572158415251736517450779291663370716887284150141910768774300070090616107883663966517979710070367768782517984412124174065751111425610105193371629737847059797704456755001017128274183552754441401901899560821762705721784052150765416199850663101050257875092575957969396915183840053065723553340088335376571838702597534769120498408105158235527689238614679052415521220816582266908315966938686992750281257345366695904390167076143398131649381625446683956360955041957414944681457165273846491631418236425725827451240794726390299499511556859784607844986504385394039053953597601707234811033188406557495318174884248906580846899362477175685567248576837438916281432551127650884823815132246096493449704482589863839788946386629176938397377022637369272680129769090733374656746478613256901861630119075360665084369158974144476087074801495990384869285814993767431510845125271134413453540182026478449379063116425862341537245584661441733714634232061159619427524999456496559556790469029492377283226853370545038668008701479432893450663447162574834123088756416726261372181684030750760266139494155271915190870743071670700077237081619981851563304359676325815991339809949374573984473597885332312391384695089510645576243088681387824896392201620514239294009987592185636381096904559389148830935846715063609958326807521623089314361314827975562020939776922544307957532200849179795103835055445634991652860862885750795668671505654591759716918397266369429361656194397899459057327787469692369974614726996367223424482489448334703170178946129653462938084478991790545186272662733263028241624425767426712172556566911154980201152002814562905155731997787225108092233506800004738495219663272414147905637455365769480813131627873902471144270823297310311676746874014406984062780471734735317479136756916599999152420518687823773836288833502334412410859343086753977099420505614246489881448105011852968070869709327199888199649688588589356398154778319311772023665123849539152628047727981966514138210313854383247965969566640875417633788987037335393728393785815958783101932149588915681745182776313070327019804981658940646912965559662873163815771882861004326583606616455891421459149248309812562995197705694387254372727472726247609253068794164893805902026264068750724414812931269045740703643448221367589494873739504000247476913475825233970508651669913584961527036564989119351630226100185977649714190019191684775879295841470952200854719517982096643968517874209627530946533886866749557437977880991754338868570155602117229308396389195922832218693009827265306914004740884544109245232511118355136700550574437573361337552538325580280469426304721911944049497328643968224012601738150823754789689328842212793368084201613909205291623056522179799540871502639875179184446065777471704734827317008437615234043437494418704651307763751369679051163123764816862974818741158582740446317414387921668111665110084810926823667959633744313023944371361289636607975998918362014306547846525515920471632342963206511821628155265311367690871321022369479570758530961451733572107532432376654621964350081031858769670000503240295804683136693306866359826784261007687843901701122819472339103595613209326462203700531579295263753447011607590708567497536169383666816471269480625208128627299276672563645984630221243669760671807696358814306332764528019827165606825527589843243779620999753669596385143144299852881490263997295367539742948130199464450424154375325150986861287693657435273536362628570987150190631637120531438962920962087296994320531380274145627851649593327518280801474036331718528945460893699292022466181783610314326691818970543534466796927996977916285939932873759212070517112243522410571875191329534653335905287334474346747923387719395860364455441028760680818735967982552203789880498325483466785889184531310573770884329359481290016387120246171835829787882585691560391331176705927211542100010731931901376861737248794540030737517269653408000196620877204133466610696387716052132955350172826308996273780489501074371312366432813276794314018112111323150245800296316614459466360579906116977243416190010963173603093871143933262304629124281172403639484099891510924410585801199979794045152760866301805486299890168632815970681776748564096278679581585422347941261363976116445666161406012599100429763119530474350315337646303730595680411983203525650241140182576146326005112766468374381806856502542600161552726927987454132666269890349917350076221505204710256588378760286421438164838279035817436193101038052219221791041056256295777169397519045211430795207197644070849348394866145869922725561546303815083830587114912594400347649258247952883193655911416904995523030716358025460002996876831336550777121211509994136818241523645151208107465521003340391300908299189310290476023698204431888459132442307604423168339569854605943528640513473007600520334904709652131290269276714103304343292390697384243599660184080189357542601768036742530503687079967462679554208882678989444761537844405830426762253881621616194008338961387605457088379497459473726004947183937499782533786644615086515318537992872945776317098947568138826169392819792306912391680262242478983900224630930652954808340029485792391070683193415957692958163106534839067008302107872688430450881432884971913690598343988438261558970064112259583581636554951936906912988196306980658259179767721789467121331924819203875558018028295211673786852373748212464534430009226727188590599343297674071061251556753416840912822028903792122277894373539079060712563382373833727260315036573910107912572044384252822907850144951732220266287168523721602997561519173687528066057760101491557430842418177240158628447822583125679306377584202622795880911966852848468419981370462866568199590892656590116667901954690185864262740699135330244419819261617476326034076138910139605710262677561427289221794319695229782648593465279150166748033101975456715116361567044028067232330979153389130302326329216775067174998210014226277074603434352768451865306969737203699259740231185082211683960647134220475945629408153232328022862961076848921207482547048364403358037228409631729873893577971145003328086712660176461886372834331889570131674807045800623156699722338097775151242379683682964770434126348312555910733535932353390691272704893074844835514261490117173197652827221413592299882452633177245905743526044455166954292982632699959735162647614981561507972012758111142875467247536658004381164583362368572227718032576450327496900026412120163963212153725439648172434365753309142116300308332875977497376538309040563562774422608112344659830575775582567423309923882846812979023751344971676096367508396711946330584045271194614213159793425205605951427648548061940696984265184082462621238864025541959610595250402364912312440559447907389577022719409582063477949555330899285635372169204539727365970328573314628340811806622681287968757169955318340906864768408133939402087571602924992080944285781308727835066692586015293702644412534348784710763451066966910207909033740448127637864172668745719787414190851966041746336957501627379415499975580884976729756110581305270441810335370432284783869155496749039505768508268639025849876940498907017590787222726168136650833344726329542347392670638038147964762566937820105789448545619187881424955727563255071268769157876980700943135494842941131195122823800738428190700092563004682435746082091985309738819364989151060619311940240770039673635281097359024162358713859398799620978007310700779488670035662359034285591322864185915364060627989597487949886767853999374336032673391527981214307644915259955964065109190620311473398498950299012764469745055519191929666211037181730270349978828272663748627433533927359827878632571363623481868011846013463379591404872445021038048354864929643643187665159870138235937582212124752360702950377621752211075014597551900136292507472229674241515559375105241423230527588003308967226123824731421902893672683181055607467125722722528093885166625657366059085743573536504142044695712763635107913059995019012407631690647186464462849413031163855058769226149777033115651215414288292759288489906396637264333396995150420853094682716435932836461260735584762695134200626334226079045018822838586554035556433237244670496418329119527093067762113475592953127025832034685255809342388775284396303006031343623766474639278036083758354070191105314977420142574592370480619229146948915935868703372659782746221925043092723949115875564612290767410380155341256868779356820672714393467185108039652868146377695455460353029352553536893354181119782030360169034740178899806088729266707155522697319181569433820171340981122875757779635513603678887784836647270253297909127934677646471486497197807996199949127052178628451062084880389569498361311891092232746046065553704833767208871379025767869222799926695144407104122130275427217011296654378680409632139820138419407097100239651680484531314831664792915988339162861324622393419597142641640507130262870297187308130735242588584860470313438294599121271522751170567156357079592790450337430064100077274788917578412936047667262302678551650512268869585948019259939886229964769302467102341459590666679371777268346070202848700806747455032564398563626239641926912592529203955468796567282278725338484989202438793579161638096086173537343662166533974287585791112311001750844046722801082606091778273666142826337021762822223356118809829473096082622768916575758603754039374171521541999333080773566322683443952323123835546111426401931743699421786579481018184918044411011286188121995559177320150661169639256334433008957057295087991074296562484231365493948933524970088958769006094878959313903377664341013394461180769407185903182833399326549915669547565714830922871168618168328280990281668362876207887792087963991602163695094530270504536293007986464304744326043139459645772161752650147246121389515403468920613215904735732925239475954461075065308966212553334690160142239508642246875207105998366355424328208157462488304290202423154393802732188359515935302173009121172318370153364098640584178086408274146550497858811189755128943111881884961567065421414876707596624370221884072078885937250677248870823959371730158764715770451073944122438456904262713519962607493397510318644886527385852250159423416251438323526472129832693755489860118419751637086004113140593311197642000585520613139823202411314655924295411172408850543977997812366883378420286858730646421262717310809997290686657626114885696464139379669314401711301170105099454878958120027222470969326141204431704230196996666024411278399481983153623479352298120436783382604521027234535392242797947021398112654771467054682953153126247463662609174102238742095435711470415435477968411140005993831674866373707885256630070171118328981270673841876548710699482821385954370171319936260553028842844161970283190276211836114202741545829575339615662261230844116578203973793454212171430830215183164869674106329630054743922276084112981267474630142520386814043421214978153732300910863283400737507495331093712390323280634923491903574674415884411145389349781752997163166806660569959889617510854481304449274020603671673356447594434909176682485075351269812590331251741248207861140845696873127285198178360019390314948832327906665688979244443388315828663952721367910131106339815230778104623798485719943287727960444509080573817903137684568389198352864477413174550006333471265458433745341997178970733874422778872068056926871756100172903709860399787534351651879554075872887586769706161673744943916278713825667216751024882805376867437066352423022602962367357230256625938709007731189888010432155993541832705722477417025905807571184698722124822581262861701730994505985441065013355666245220301820205369261762046614906078140771078063169635020223829589770653247450365500409143371030718281599187669945316126350571776942104422536977915734683570880852734681430110289842297719846028833178606696783967356932187197711735743428670987469685832232274641896245539406157147444380255041756364606062142244124115488316883714883978160212004014793944707009814227106228234345659347511422115547330941949761382370713520873831690371066695493783141810070696554316403471083500524690638015361284594719511470745781646591766595953523676047848809701524931743251896417545578833402388119233723898736061216518646697867536014200111549211385378437389454335037562683798678310489777159895047294720311708411189955983283673100536938955399421150939810379211396191177627935249826233099322998708444811179624965242961368807334573433364237020042789875718921684640906791793383172834369832480855589872690302316416066367730269606259929216488515492682786097341560304227538138799580014973191244938032368781299592920938982683563391434482219267787741853103312225138821047373057229084467637307697032101600943078959627526569721327810307870913194754550590516583642261239384494306584231919708520248504894908405632726184232438941663115889689328055761297951905459890230533418662776081910482423943249911546625978513757152789741690550496089375131751689472288735123154413444601052849365630836378422909364304213743103066562355438313469147897110192799091095604714655858590189179957508680855036616628254446541466450034025650312590543686097055463387006510986657791862294601802608362861550727356190818658764802478370893242937009682155411498447782952456100253777315929832383407020378523550487445624526452105597375052604345255488654465576002327622996696717472452250747505009036264349858453026453231935931527629675832436115484465560037108450684921573800316983454201685098085437932752617469180592639173019969168874145490601486782478609934464947840497474708948489776840589962896846923143759546334474520089833337092190199020093163418914383058002989584013055208242412560539413609157678100635213355688638277777333793961323829083401673012617166405104859453581623807294194588139458468197521049977478996625073869354601970703899851263681129660351596637601601392905231017318702576742772436353735795092714189165665532172204732251857681827074807055424312973233966892853182946373232565051339125745751360158145221709823221649928430039385349050385541760228335455193795050734263641941537789827858971011578306813721612531505611832369844976804422777507313107749848051282647901736383901801774821594221424463069448189016999614082466978086001113600313738637412598318798117381744018240004565050103938914173965303187194695778680382649724225519325325463853903471896641033749637798088010216391535051963612446566113107876137224020183223140773937522182449739469911668825231980837177947707368052536158023095779081344196497679428292690925088247495879542191390983860076788102276460312495765546505577309642973059406895891207381074007097154525511389986973746230805855128114802012678912113357756734809849705314074269123719611037741119589487351215464576922504034869624793845244209088106963596527399479105981105967914019475640912619745114303521427330414756151684683529023564687830809190570381629604234130124959827320535958433657953261029549099955667142833664307918864371838036558379763900153823314555536083645699537167319812815378681094267262105981274801032302864516569211206036508878203988999026661346617658668242324435493730675869114757769170761866559712442037533523964058448709029746633764175097426251390815996008325295019149055856529496821199689044861737093293769693248674874783362788380563174271596149957205650790091897334621237139511722359700629529721408123617719318898373453069055258303953134625384519708279232713340914964469926826114992693167111579759240058742600360798871776287954248779273586438999195801685878739912690446194667822920193862529243035289404791791437343446665883517089523275545576380241005842261575462223544120598334387495999748332731657227734112518464796192382852862452660597142011817973421883730604062508393462400957890596686509117677145703489509937015159903747145127502720731066624671878892368157507866745992859083188014953054816480546646482504196204949236216379401941194136946754312573523439255884733018000823258435127310781651071829074125523244237405220333927616616524235725236767725093823343566138919079075641089852726249921373066380020353019876413538560496710856502961894662690577476004528771676356539826614351005260581964276531761456619384557248393940120314924904672101336352647009905974762203230656746645074726791519172843596133429474152561450675334476732057441088922245133177995245963044469184451500752650559218936622251481304285045638887370497091887778111563997660540848459177680690918599600229573179061628323444339179530318769761820185570584075638856152365026212584798681729998054324130954654506118677438353119545608049765362811933498785437409556878359635355584224788419836638172152893527539170207104879826077504531454974620455003097925516729490453287256820349610693686200179010777999244493644576651959879522222003658936344986169547755065081565825504398419828949452645351137659239254253153692374141687784618612362331170568965528907723598846798875598532157951182353896271577416847156490790149867977464682644457381556321757922240046705364924372245043588915484089000121236877384573949187060878141947100066270898820204312542627278688440402432656653159757551916561337338600331119719258643766094489887576644089429364875360163956904718346126042909861730464419153998541463137635511917171424202268660332080409650684069814257215045570166728323917661058473332147891083859040850567456315391018179921124770002999927976506473020199681304519907840732551622961117040705603933558922968036550476931050652145674416506551051344769577899808501892634876252795699492860156935188265706109565630951848610029553519692863775431753063926148830913299795825045021180612556861579373006848161318577773766447413582799037726819714603080660580444696812926262311783307692634444281091301871663889844987658069130692842007953953452481455531519522530770283117689614075331969903626208272756469981524910476277758924897260370838392479052989206605393887641856080381456256520480405442168654944899903200883798306423942390790101026857099803263163837409823933917876197808160337847155333257620965721484213202351131415250813323754229208282718882249252483338415654530799963951021998602915539398983121082388458362209738822368917892645275139107045110232590959220867928542843779233353708253224583240507976559197996216871205357804196326660035460961547327786333197141196063586568944884354369550836468445176600892381534619592950517368890287045957748827930773925626152944259993868973528677503314801067532704004015725384961210034434473014148857050455466899070663207871147369759658474248377426891056959356507982315251966793503849773665515653950286782671131591177396574409354672843419036189331288282846097207731108183928105371555414449591986670135857818066427166669500869964691160613937817033869753555023753376017345549816577257128591136155635099673331243125644010770317948494002245214628768773540149217799325532589639290981088216198573078283713678114641325980787810163545505051784758057404979058477172773530424728448019083505978328227099508390530181095497212073761684247897622166875268026089577765865960114272343216635448498985445782747190683929805741156918479503904311443942622465201165829158183094244617915088441848373467306120835115840269059803228129866995580368163246492707036548582296309098151936982686204507195778421742984989318863482748791233554186096414885818966199947610806880349453088151661650584201595776375056023933689329646180335752253588444249710063661619696073041088402879747885697548986520102000817973229707303866013822837314284253710411767303017088781411759683507116807196754319325042779112797517508184054736889435446592115578018499239727450495790635139420649374077712777685059581249594297713365489077355897631361427978453274878333271040762107666101756432241891751633665113733101431401041140704246506234557442760756633315570866444091645120958874336975534004496945996815465526258399649318907174772793336874515568500741785160434766968482243065933549789454903569285807154827298963760792603057065707405592781775813489592559609068541374590260863953558439882250304770496452965705502912727592356574413858187246668055533780422612948080366042353943901148364415882828260037788638416020864788427122351729016960015139368341072501665544342448091097367452045655094467619749339835161303655221882058509039927218487874682330696732895916540348326216487317073311424724531379733720071425534972624710683707048515443342626669302907805112813772637270564925707795569415198963445281386272057030542861246156904004455361989817695973201516690439078553704698783667521931325279761622369487664800621014837631286134932141338368949471273655497855050899904918277465336222692658565433695619391827356256775950679811034945694665480483096011173348458036012650315654349808861891975088555442308737002716675696359244216078004407446651542921811696366479374622193529473422146993187194640613878826873487426969875663340350325357644504868682271908308166541812097279555761566273264420398421311434624877015482254505216021243298095860707834583900006683599515469227335843742025685087255069359592767160913153897608984752057239569933229494015246576789034354508488918658164799058268050439715041391476485514051256343678247579075776351647833548570628181870401220972311431749373602254491219036215263713147608143381108440487765336262462533469617183255438786077910441341569245750822033796115665266903253206484018645459977092525861012443951962467012234437942101399050096987768685982602518886587526289026041339329702384291475475952961273365622991298907467875968680423516611808640263567115466378104883750123538026233780911676324773186325025580327611431093030363315482425216857767475648327697536307296657374345705342499485225099653790404685866891242227103677165179524028130418693969996098156867804541798223002917775949515656869221092001584977940043366803213897433031633631238699285078498325471391698341867666686183067899826644277226527487452581174200473959091913147677114223070166311258044695394988390212463028843207227591279196107278043046368550806618470439908988463324581169752753360888903068711362620806305906659956495227180398611728931518683261348891871970128556813667316660640424049309708314578005069916065201361425636505827350474303312456633464644022637052599504783194034870061779666845672859469631089921827539355139108085923530742916620272271813174078473979387183446797424609845078834593371816398550208255802231769251694574146617639396163431308883433034096685862169199614352881949470727819809855172347018097017916077565854574026483106274417595640185901538161136089960953334905662243804437983584457471784973100941069042870496326283361131243851683465039018059088183650074012259220533035309694522973557701249010061255184624271482084057692024673132821760395141279751505274146934539379846342212411225174556745728446108720635574951761513606891898740179834011652596833934473311798309653518937675537252643995120698964607862915828270926788511943138831744655471233636374163870342883445919653790019501144767883525661064456274527988895135133245509428360030190605094037560089034766668149337516636168937641563987529989401581853131036023566166408707061701665032997492158670138760503851990265807344997724112133477343996717784934696087375950930287575577353046546603203140007344065174866256716923347554542931198416952070049600029541766520213306059940235329916467783708617645403151545380175872657006662170366175229257547808334211573612875274143763938424266864761855508122261476208684812513256023043856573127256955598984510299537331975628832516345801352754313737450535802209551675850100787607514891815945298013276513737736247707279797757669101784332697201182520523609999127397050194082061533029315643992760424948566540385465914294076717287672214484572553429325998214216866651864873290045998012253751119827850584464197053780178868479624166135974089694395793406306090210800563719132656597506504761698929039378914790034378043520414493869295451620639493735026620534430288001123667205718050345119302267653971465225527180415669825577981845835078058475293270385757259450314650362009823446444045526030160903911294941328482090024443533882030426597282018855083295257213331614848877978910817422035367979601153300752450903558636845677945529721402032845679220386605298153883977253469896485617581528523623924531870428405535089238179999961174853047204653115080955459980160358408144249231294437546890623816973876809772252845956876661624691096159790681892521993541186074214395565293470133034369065117928770961359726821676165696483532047939546845996752805025005419117470212442838062992015538742906635390056457197774640734031564513316328882265089973837178359899521938780080536585069419988471444867579041798258629241418134525746932874886520211283561918066518070319279564634264490769180465932285722747404425826207278812006703677179970526956391601382248722404422874491528876679428647416756850430908976280946489701501428564083314467826964430557543133213060923155217296843413279157910935537179803837384058632075680917970890752461899047258677284890128563282125576204126962690092823013327905403301753451377987205197512638940881164362821304723100181247366136833031637493142662894912521369467657715322376673291968338286139998351011395725477914281467911125397740884834821623750794635534124421374444766314745974363408318517670810344010931327817952657242167497429307979956789711500933143210330297869861664598097322223377496492803728818137766290571685905704580167569036150851297238303510386434368938742921524093419136668151189923086835210253008809479094101311429029724380808943955390299995344855095385852397358576646537305319647982937060336352226088351828750412322552020618493947268243952899853914086895050258040652874683102149467670878394010436987856342587296345453412199419165960837001727562335930218982787251519858364038463523818028474004494740154026476992805294945818741008472090593187798129189740238799861849238802424185084598779339943260778816869492082073929813045817400385128146487168880298259584878766135166432074743394387010056207974830850854863828306003077851312944377269438153683140356213993416241259319460164831559468479772968835399801739446974856630533807284576712398082065827930538069453134508588740782238040017138994928375070538819123678156182522281866361726671805828768977635676716067347168652157557932619042438767009220257889278302327754725176498951023477797624917716449426604044364245255060554535606104752656774616086922667078844966281361679296175939122325649497081960475040537399281225886265763482963778232804175615720907551781494483267696184727329958326295740943048973892588628803832984044363542095580860455695404949783292671852131009726952587807267790859544129008616738316794808963526735270771640911500454789229623671982168827627201655954027013884066282819951873332242304915127979440187203961837095668266868787420836604296275640873855009715228120861254294133681369510844771551987285136238791970831282782209904978721089173845155290872160862281994965244033946400975932408048299221259282312538105830777358657578853906954613892990884002796754411516460407069937129889364959944435797590320389626108043484631806414501664267129231171957580020345407191910928265621334883747543958024237525834648089756217595697971346203087962337489055322037535427987782121677411005843409301937774442717541266440213710795833696806760514494475494652642272830245107537502337039502975329975976924671939273293933746787231533506118312880893964051673076686246129713464408701196063879258257529553633963541855665373454796098762921947338487576047128085582433387061304148482937940788979034660597198501855294242142284156559039652979048567722700952463753033846129172236567744581215633365350987498536810927506365582270663573060955558918555894309098697286061197433038484295845428363868056894519589870413545958577163806147542057802807356872861952324717497676208930961878863844084502712233413965820214297493859493535172545089706024319704775706884816111672294979651610602620460893962725670398144134281965465444777625264804365204946021949616049951426981671346565665322726937884029454157615344722803658404586012566332501106764816607203276698643430314029574288692755338106915131273327253190916213882322481113383837624987382955263656831479421242184996862048480410588621868908648360123396892171134547102021626592547811994239951434015732797311581106967945828288769709077027093940278575147273154884968717132480071320099711386427034482631401100525735931885225972060690803609280542168408970900243858986682257745545809997432443245257112669277930401520888904082979547118208259323137773261570844100036992442094150803756139724496254158236775567869173199922712573478684616939748190327006369427711861548836996592578868661394692892765329634164666767360659109509312589193017068070951082346474099312887822235326697201580718519801607732027608632798647226575471524360682642397853861226625609043757064920362302492446515828153841699580687528087140036981094639514665032839078620844046120147791149475720607228552226941192592842440480124345094508974349333688529483572727284678995824926090838129366320990599689093177238614177530104884524309349537264674484801885455446797089305912239835004640134450322638711423995407619612055913879210659973029950443369017092026886908553096654556744701548090443442550272938512375729381781637580766798785051452092751609185951374083433801868269690984427063424487075265954656372529043543168361881439496998238461383152898346698106223123769867918910657001293845606607607241911509382219049730231591939331290886400549593124869325323590773629759975784873555205699366769768101816041295975991069738689245890207092423404470324659167995227001164297121224502311753991007300807295840296937191887874736160588401249410134745483701084610095210278091905933652160999397395534710988401904910938655882179107156289439768192976828172357022074182456588462341316975210866115559267052442449384971279978874801682741398237225464651773540249661054499697342705799545383957416304194292478951186196389885149861053393255021697328235324081444834877717316439761457363302374517273412153804943882542296520377773880355535731252047721467017493919793218921418110942657502406428764564727173119990728044213243296033944987655080312483378227485654300441943238097967987016415748929152654597695442269564088236021536178166750676729814816177969489511177966159085328977269022604303138364415711250258575943199032966490424136635242225399503547925643897640979477586322454522833828997088295158254479502623111135224877664335322928463087732216875514822293950446212663976436253157952875272207267348638512186051454862090818276467826374678794025657581977998443656700173500314626145988727358735194556099954219799679352839738467395402472251285140253696628952142320554305347643540793972601045948127884231785802645300184901766362691072718381519809396391485800233839954348155072196085275250380112574952701337608245318988858756671566391637659304279247283922730016194802176984298631569853225487589731737550681351302990478364318106142133944054570168568541588288869416049561126507464532320249874570031636898803392676855745910053068093663466049492868156157540154533876792079456083549601293811909253737539961177317182945411056961551687810310481463029257455086665788110340523584646051992622008985837681310196834989821087108529816627463738749619557412387666487167949405576856778840476252153425797880844263358563498675406383593089436304289021852811349505843601486954770284689092281959430156799207997677532879422425679500197890421940002489867556548635942968601288768847803947167044794778637661948662175547049619053071170494132461679882634187393041391872680965428073618002842939661273532470623778422089767493576837116344356576163418209541302229358675269872837261341287337925166283929757879829527200573107552955070292183757985062970901080827933656130851603750687800998256172318774808714165121696263124630685849941022010272729803895179281926587029294878867672000536923749547035595281385854620408845928720616847077691534304680823471967575779855143686998604883984829643361725212552663192973533396049061313509081853337453433143774315681450379290488201971464982716928495688947961115081042504009782141552366534005237788831184082439818932200401326923861446230203872907597511238808146867954097063538951199482003944790811257417405780602605964426841781686836631620230473458742949258207316536342181579111019914021959202600810348094697467436650223617930330742975350386836897254546148029380196557555803832910607173331364165914785905016156961275380312343353009496640181268069800377898345819439839784412999557677809374232151591228197094845855747444465125987790263783263307596379442081036846747392596149847779265868878369344622492477513720406088951620731258631162420792944091530363284848571543439444531782331263815556566107476815660009911803355432616891626940607539499895463534861674526105654374271137592886943072117408831121715264107002906529427785009767586183285387614158242095564793202960575048380446411365828965403098806537959693281960417760000285444320955787167635988590023825603945605746540861988080680351753301442523924692016568002041695557243314362568870908618238431787118536906535980602889822679425491727790291487199258667017036970271329012944759734676164926891987213421479026636673559071588284909160969105089959372051898962789823226407346203380983301886851265013777067369739939416346774123073416983487219030503865189818988710488091801291970674521605325174396260367773091116758475692293995949198165864094926627301503875772402832216377374272810650748976684051885077612550702290171724157033158467942481677677894902566585266648914440553582946025558249854378116852991792511598200092364526371800488890065755556608418843903345070025551471053153300969289969598859007151335821327611731256470822363376055831968225000366191495946637799909283441254934788641342914065459434349812406752663178513879853577796667790953065596609181332853430568612235718239500045487722925009462015732049003690013219950916337053168988325691389236544575281786978092086220645264145212982968012346833576107453912261516215090462705025020876650163393766374014577339656742184093985889970756717416140651529579566074682886838194212468528338049961630668567162168035076147146233244128297081622664799579591525138320122132537673883091568816193695760552715068430327620301735945677215239925242804931142321980402816090075643332020457813927787174190530503675175024481905114243455564956113162186035621269784080394209237781169771794432223047084291379861939736399033238800841180186379861311346038647671862336358661658724121178135573795885572460233349392325205140229372026959674283555201339136777750612317156988000981143157713811616137379256890354884610416004554497350076920732429443200709139664644047804880652008986986308641368859716770168280906026569281446685062310836081162781674595041843946393605441632773114153417501031605512416524890316318246308106227132978708497746657019771135703078132325352020838002570192953468459630012485692637055737155185245005279973117192544113343914867369511400322490465373400210346446662480846938049648653141752002459584354293845162942927058464398198462211813182219274711877653575717374979833276213794873991694502937222926782504427035003034953011205782801063989144588926081831855125193123378809905002846206150162844141918949008322960430414532930672694955922192914440848610773414502054008429829921628149355202847548902692696422982959207661175962013441578675464828745292884022694593910985979904747166688890632554149884204153467832826924544089292855974704864972214239937852123562147115666287849031335266464313617721543498301865034994177882751567044541380178465063537897388545933235877445479514572661458364646025953823691705197154970606155004277274280125646840936632223862550658952058071484280993244377903679356757398593860734367358402466630559117900765284485187469030671442090536609133940744074008493669336305896269308062532885290684709789587100877701875601620765870574057842664495802499084799962254769167075960270418821954500403088759066227829101690672114971251804393454379436799834848933211843992860536678992413769160211108467397847294272665936701511218478225406375502857034471989579507947004964816451399114236391897912566998981708160683890216896378039625314338305562935501146270109788013952730808302000121331776640176751206081301794043846577115848358704193261956272232564208416243193147126255961419099480201259612385484910254528948174752531078567613901011691326526395374853773966975630687216873240894015703927273156068625976528058282423775282597427882915329842566511078868318321150248459790475453356475784845147647432868502324377921694360613899077972108262536184035345642710577680188067633350334120471010426823677036228295657370412039725448422646446875488390854401399588080012848613400354079266003108145873305526979584325201459481811852349005542409469212703629132414675183038046632221684549660254881987818702547621569321157040873812629943626758040516076111609150877277322935785497300424212267498104970310144902904888035309886171058133324549689951724481662020308589644465197457167837117407847040734067704380579210605206250299712796698951391188114877376151118562648169117260143586091750781410646342471929273338069653710199906336239164738822353876740367390081547599359076763524255784860399530557813254933746587342869951892398539777064388494596643726902810742827596172226133431305831412101614322138661517434983487033655241558828451230038318376190952282444529884262730666234634478197182048235184774647999959867720335836340794055669944219762499015341747581721983815514733380882852452367206261311695223284566087744862107430786172952406208143360681243843972837321613423660038777379110310329515206236687840988598981446810053610890254612403060995386910838893107330054586934012399293570351886005183008137270292872500359865155160353706852499094576299468312916710657261045319430799910414976684884467091809677087565208948748365620934183023476269696638656989237013619561235733252118406806088643699520102945482648229385989648551179424156436802638261270712948303715420958631596657116868851758999202781805049944981170511096049307596357713805889639253214777575149244549109530368380235156338848498694439590903926130632589508953311714665474620971068356862386840150103499728619981285619310744209705756519630133546322071314610184042644895977738629057181699486270479966177021290473413363787774909273501142134572664806304962543427061814100754916744918203353885358963373301397672657981894643581186351280684583677096565025350777237588404589199424194607019461512084864123708535877328541794726801625979107572650537992166260777213793058278047763533873789692578616982137270694639200055090076889112756952798931562923477144880743144022777663300084207548032366684736391510195565369425582102887874460071773188139471834286537121860543209645008352531372095224197517458914062172601070919791766152078829020912658752133973941257498332599929988629332765333463219382656069452114749671983927021067195006727173171207695656358164295606075089053537214357077404694038066933801513004329548597844250745415453981718092518443025647939828328919370611053970163225684357225479974230303239714699913052414522487512860594386387187112623919122696487162537860659673499288973190684375881353419621399094768356622624947941126745877715043684742720711565218750324570755432911315331329821463799725014874785379012497882906386877052573716707079287978303772509648443698029363834983365623089758169824247914263288703596450677689189558679517441034832710645994566473960177899773780317186308213233259267250620462941533209666492668560121999984133045914909291502178319370982778048770219317276798045952614742499848851993083655244751629711123323712526268853914804136807631112667853729517579838959620906203354002936691732681101433419209037016475166383826195600038759489164696433967112633844959099551822718035816165892435067139468898870847208840237607205017769382797655110054856858613719675169292646568465217921766106756522585840046213729844338068891373649271783638587777254099786544309398140199770103139892459557480012766907114295244592129986068510092033066661253090020132328702872946317629285695115954325862297369070537704293739157572563931022065043599073670160848051382089992874440740831806694400328597853475549412449102783880622628560787469441423892431742426649447948593304053827650960737350923443614141880203727480194256443391712556825852697875884246281927744303872720763766230890243080109173767583569941070896487458716125765299757065126979711292570059937360047228828490587012712045210904900457210584610492391372802861945649677983178007052953014535349360995994136125523285779814533676374423543440593054214991159877947805894984100535300434777235663922074184003314276896164299456080816195591090806123344988868518725499158939797770207746385576330631350185996419331038925753935009709168010269856465597896513282030162203377659992577934245466590316129939795848042938586815046019370661367873796996295203815907049835314072927786118614695823823852745056633536251573400679455635567112549521254150070029902849372261704225297849332011287485892238131428067979190772729546599675638270682716334518261181411278813916928924886009570386898080571213804931294555820006494548123960585837395555154876743607634001798083067094872515854293260258628644031883735497470565608574153220314228710158385748500350386160026452262816730531967061371849911992423208843831133205485865423632780158463916395040045525647142011937846294378442231595795704368248960376263544166452635642440155836348117142136016193521516972619130078661673711062847623080963828113447854650989124979437615968962737349193465177063061245099188288458996315542012857046209542502516580782106610079187402804942281927024196057931532188780805119243506924666634168332100789775553445261477693181715289792848801403236140260426055238694029200589469468835018239182524909372087214094862786352410622818208219852309093244876339172255488794048636402673953932635051956830808769350515187119831902655488947745516583537188501997608241188535345156722403981877514704118902610733563089756481438128912991906491004676697370857596746233978184518319012818894858656648502924437812995183425995835498992084425458623300320335553420540387933051752574188675155891237590092086907069884842822579700917609449870152587577134834903970967929893214417966676879680752603532806362733173385779714340709715549000391057544187859801507850029777078020458324068825561650048538894184703704437494497498323627321743478439789966383376463366418733479519937734999958241783972758291949853097615276677750560640859760580642002259127821562928022539630258548550337510959241367027141066635388895249928034486832211957925047372596613953458814115160139998821084838194422197535746043959729453709974104353105779707130991400638637088580661768842731243358652151915203161716797681515038308067174227941153511423603275191424953494020668142392847152479932653906360683616227959861129162746183479700287770506831480051836089823462075671670402891753412407150079933508935494249140026218198665568618194147487526516787172464860604379532235473589539225260046418008241171152873732114124625073634892154648040754322824867212667531570284743511651935803280535041171457743568735366067963001038213884498120235247719717530775577217610575767489764804836489908793334114002988052465450839293664917385292131191240708486416111276219216878011271856963445990185569278091352702059051321965714438088767338973588069023458702972566593779795707495725030571706196287051447095838765893635997879993209610206546881075007268652775760744262822239744601670521884807033997213724404555787746237680408514714349720476215021910773287532339135915244991577669881874508974208456367830539969462760489934947610176933224612239369430823501662712877379270987111908400354337034075854573049480698329825413496693322844766290429358277348958869627061677201404081045951621832117904003151691330166018300727269581565848886592285889797454292476067862020903532392814252819687990268981578371676633823567041028246723458951438892187609631774332411322624199818997356888316776346083572825794555858623290506185963742032054286741510713414719295553839274790970757749283450095455600408113788376093837002250554546749224096755508539288129910945824610645185736313411501340112815850962839768548397687361829262655197082519278375717903128121367053943433707629179958313890487006503675607303751490728697131255609787105201032759087655398355085314016430637347655415619619395096518826587028229048286162196700673042158386420963117395639778329981145495908221871938244354635705254713500566925735607240135454519296403869216207966422028119573215009981388809417365106207680519718056563722522656816459845428423831440637041050220351728228467988601138787305945825049846670364962172530007877748907317943262872578855224683447944491429699224896670809766708814524799002795949014982029045112692478718982233549410667536927715410052876218570344913587865839490877719763353066509024957273162213608159036346896371396197351038301634555857994842090147793798100573737032048038188071273239645557869136272989794425641931474228674798171746574090550337068977062038200146483503125778527719728104224250126863378719369785642299361492010877965193308718181072804173076291985718443650946067577950310145842814854550424593710521910858791439366880388086227072360576203621190856600683186199821504337453037622458581284993158017041656236026951246122411502611532206269826892049484503273346165238296186615763059698697037858415012453825677250040890076489184836993651994960493098196246715585849379735362385374663203588043544413048034506170347717396117870452287827588830397338454534642499643260598225428060713878900387714987625000949313775170531345713537849110494774746702482386806769948608977128604449442827822663424711190286444536825905451016830375640656503031122258011844346636039228486222623539824991167676693603475352097203823957307293218860349518589566544072748972942963338583705806829186517873759267605040195098807021287191442362960199475311395257715914312564306625828000856794661300956884884974356645052090858503841800010304319332390713676244219178082154631516964458443927919323745557002585409935699785388190666777786462690922871309344759559778568021470696478992391509762053969575134975054329511661676189183816592639567719418868887847087545629433533319730435752353710486499405397043218054187354981537063094103504641572787178984752846119834572645619143141675074577802632205782323487370500326539169850830324974383478529111470621125029292153081867476983772945656633188587312587970666399446901706030863570148441901698926914320690154341219088494845680493143298823524103172273080066285954810001316612738463106995013473440949891606227375108453361664610543972799099141344831357972407871699624892719622349998274405722794017461649680475895730999228589387626948727710579915755817614694593274573010619310510190480483421929170157307222279923019052210882110632835640477213933274508135618382417573592745684374923281158038072865033188649196079668226778254734403001036510643503613595281947908575458495019205908956389764699175284065324813932647275047788926743200342585836112863657977907088251284241840223531027993232793222265553025969401479574205605634071495126598101509920998180915490696154185074518515041538560356360850036631457454114036292161799147700133537110423702919152654148360693922989671934369596712306201423614753434328376598661598284407398560624421744341717768987151844192433106635470743276782013003600963210287234192992501616557661239467476162073440752898287607452277565205926632989362319758459651200388463567782298816343052416005560272475136683606513719313830080728343757094743337317993151518129854218724713349888426329003196872972042685118460629313172198666227226703606327956871778933938896163782287534651413665868816324606464163844440705867094924738166801761432327710399447787755089887340737347402650737187157656501205823319455814455394204247505730574739663474988441888105042774511845417349876158873064047762456827998584806788034883137841409877857885819043529361878581318721526704791587886352059795322819164298695857850360715710521010531518097751900551186234224591465348925225672470968981978551623609350450083631714863682058534129411772934238950996057046045625051275830176819630963430552613913792429934579573406231759187723603082086923317387903139370414016484981060216908386024823125780163746253864285321295687438932293480376491718118608349362924263369902382302480352187485393261576858123288389676133683109291572485974000089287808818341724573014956304627110110431247175127878476674092743980200093870296838422107772712499945867305050920413574698772475433592154244398326072762055016644592084901777697979693219254009390103164170163050350058261747524750043478681156528976285109560053143203498550692249853981363102096154972584174204782852417516530642229406287062533829663154816741580264013771617047103359899623298214830193350285867254993928210821196530898439529531153889459191950846636504801106828663977194611655256852182903753121986199216913500323908051688007531392663029166587997837643497132643442066168707052355581633892371793065068672318661930395354283796327628271905065500654061451904051740080807053433732269460301996007778627277886393661251825504977643015470010907232013632222410840199740891166465743649488407163646989932689409736711703899836627189221870081750353269109706675897304657955660845505365300033595254312372967598090874193303209590432041628370891022797012118114481282207094171078005321624174004567617390635943213670220733769973947204405555864873753702526509653852421663248263577385280355768721216653123361647040990917027008956039910055233585377670156906214066480330311052034196394659064087037038628625424148385283815116647667834195213931002715904573104673981034921817366313617049951987374945592019647545012867859352572266605023398923983022482124829151991646266284192004869908301536939633499325078161197169753072045396808416764057866689124963333375058470553118655826238822517809276937639563585239158507169634653786706639883745730923288627345566902205557955271619117960809482008809483558506593371599935985833569726761856165377765702509411299397230259657579764607987731700695750334829286050908051608008390939465643258692687336943999961633709451308269214616249742294673838195386596745711974787414387166879715495376691859245037642363982762685737702862118423275527952043984376067084451189741049897958685799823613598889975267422167752774017902585633197563156173531847687076434289689331466155008388903732715854890261539352340962344586407543422276147420548897356339205388992583044507141307852853211746675995806414328955439218883677603232078812273630119366458738575426432870054788864492874418402407620832920419151571001309676411466959453942156313954202792762375367249821122416927776510329591170511613372607546135657676391501669451139901391551034988065191373614840391064016993771301858058338552610183667324177147113759190043025208272225468909712022203200168182637920475643156001328862163107793561969270974688403551442782293642956200395607069385412739764544067236329782367892988774957445675394656061020581879924845793192453982325255611494090500412519559852176705748917407571775866523362925653950902338868840840112395176219341029720079529026590389923944166900013661766842122696719146521111998308917319878259285193055944947876199129546904491242756163333816547771092234953671823037822556176417919164738435060502651375896477829018908895782767139146780463751886823627364612281350364312283767859403802549577846805546024860624625486147880193727073761793670241730269732954253462056930858453550022090565400401403918256441390409639536608006352002082224276560905031780106859886967834344469576462512355946819936274892588442763925690771405228582116702209573489521886671222113556345488497536979188538704603495979779348576234914589279878537199011460272022409873062352619141189835634008607987803731480434868210963740998106999234318850775715602437290095708034353728468032152714340628131331319047100198847221367627625489886058485503348166791460487393425550422744438274105906596458121905423371010165036057562730759298706102788711119967941382847638379598423622765052262907556796999718810425559745673727929864440413394806274777028997915429670474433320741032033830326863762899344314231037442376670589982097323113635915140448478540453490548136103915964247543730945872653638310924331194116579224024490906706380016691632306270400692026618554846147694257696517329243698462695417672107161982147809963928683554928599024250980000786864977820689056522700335987214830451709251905755296460770269206990777341317549006378391692365484652200343140813948582824118569373268716247966622080064007313478464479179247776325974184048268729824271076269766182626501602442421222579503878509712559956027228414111667759619677729034976681356232290126955676018201023536548949986379146039877904654348605806625434153146241903428381910671008395066583209440424025452308799760114234370972589091675378577038476576281215256112897361817109896934884587839957875265834720215851675564373576825760768414315727618948533088590905187388382566903205048227654693233355100205268246938827715142881767992092948128407117629299862034531527265347629618311948008065240280278213379724316023361767842416619024287298918224849212296300094371534461894235995190756395562480512833476830519071534646173746350034186209699366944051922318481589988854792931054654407329817719269904307779076692606493664622241261213434003259573397474311760495057557998171364296858485937570490932289338559126345978050713067478725323421004658841796739155752296340475909659323165532200810870068754685479260700865252263667932986989388245578458076255250914550502238281820639422580984574872013370599755419911375448846490104325271836849999543006243434149947341348812465802902781540664907752268497915235110931434792016621548869430515996220649009953259030437007574676881379914137469424806095053338107807416249583482482425252917751012289111202055644669057699544936726860637529068940179243130605644608157922990763189420675611829462306546721669807737168360616255708183524356880721160198772288832390454157301811134754004348255340240814759124897874807024521251801743486348288641812372246267812321734815717872048258329533936014003417866266620480305303119517275440054585978968982093287868298089408358423916542649199250065718177085896632115823647287940806423335670457827885509345704408025902825827354602519312364862907114080770173932648580320336384550751882231259898758159523996070354393462558694750502006442729962581768987694484067341875959325594171972517110706385521435878193564628431216819034278846832128633206501897518524344164258373157488966333615317080682897165102562037285219648638633296545078987340444524629730252857263014355429472066921914056688898524475977090636000327278398835078800955433859857349102964353474417597866811417523149639575086752128595692135516463070620448179859498690832326798032400721176698321181047999772864091398859238747969493651626707645808261473001804555285552352290205697275129003718524967280175503804628188310845229812670974501057028395999196634788132218632348984786604330173338347646431877020186397651058582607553683015729460466789285489471532140593523571048307832357803761682122725993989870787502218651315814435053863665517105172341089959377943675252607351942365401770913768983915017242844373817974243865211715930829113076400376613438824684406680606115351547420511224243744127510292897485934442028045768193995045480127810614401665124626195355793828375052823870532569090107135500775834200608457991534740297030281970763321120247325995586351825730625748798854250330615112979976191360754980559705114466092732995134468853209478483844671656730581151017450847213177757289887055724019927774709024576279691852303938389028741271883857402122602934805796102161456610142139392268500155317596828545575126057596427413035588654847344881523933633394333371034439761863987226934257094451780075314186564090603183221428799275970624900328399363445083344679513619733253695879942293889580369841852106257860198980908007836595302516428811362723029382329128469232471578505641554127931519602541721255547340863919038568437192865488665610615778567714897294538762126242760230235749865995206524115088474836280544174681340004841452971679647756834861930499589544246306768411637274133430550318423776792671516223401442361317564238452469131680408978823838354886167393207616694958247602665096516781254616116171859502028317129572965258626233350184309022633475614489364879555590241546963198208112518962693899767721739652546338670332723229357667209414600147794384100621621306858254160246893546242126777594967717474434871388618867535911324581198887344042217158955376929948744414181546727174264911449098355944651511017277745298897514904624402561754785810900595901793164471912944852237610839433579059613171634962636841770555878024168503150402268085298963067498213247261239253298084877933248213899151209434591592151400874412529174720348021019308210773952660211027285427161998257245837265935682993346063237416580823601461478376443246253410506752449013533233916213375362733948105633757838697342622764371841543263872494543534628763729245452086011592956950537554621824976223794686175812925689113435611756526152385527466662498452299236793723369833014444021087597082924803685689012732802780129597177439202354019191949549662831543586167069702411753575394977973881994982412585714748131146086282538453882594475840190398523059354285981859474995021047017529160156902553098307915334045845209782362760748423932082489246948815954416844123517974490897108026594776425010690127234912023953926692382653844418561775856707161628215397384583996573928159557835133193817077747585541995732811397167699611608518302702097142648047784041038041963587176473019238778163008685090932536675690791531425876705190091302859016225461897389520140389435634719242981963529057081440369882068872181539886814046441053856082899245960799449267605659776394582363823706865424923235757708267503931706605736432296845032713483490321189691168600292457585914805968795476293850696977608680362704284879909727778712681383980658303575073827139331958041306762140957912289929523396788379132989932614739224585356183198542279387539460549406920873593722252302114595979943358568437140879053298922336864110002731197679240279344445836219044387324121354798435709256765170085745963004416683711822797864257090985050394719539428125762853508207975159066376110867170875262563197721548898399954779725653053263873922076102483875055666097232427146956426688096942967082711708368111969984479301496918882617170866546794220219936512026328163576848641905901233859792920359081495752022364325020001347522856644694368800026959062314043631528555417063766474156048793513300808143314860468164671176640834623693094309089374167716393530579806780913274586321611644679823228322511288013052980820761778389041482725278735105995439583449472807716720340392116751177397912972882140413010462711015924572743913541426813318332600023100154344120550485908483812464508233832476115663116515857053522202531310612429401808762895954871458681974086019478440195831970993605567050172418692427570692781767408470309931423171872832814909377841823230677896919031025159690559815219489523550579893971511437622560547855987585452128574234751297747917987695023129432825565387344158026693713974733400802882380341781761655033252250701743623841436885625120094445776315185176017228079945154414749274366577140692529984403387894560473887251944745663252499099512165239178781932416805187732820307468943822832628983815560116239507686931759804586062418201267514824067222720067387744445653848693171857402545811000833209281554201760263101996441436360218367781975225054173363462222374422193289119276413595280851556382849377165584589252971396855187901630142713305741220634360649582428656660982586852229571433196168390841970567107397919966373689568784847877579974070810900989127256823263136987306524745312978173896027939765504518301507361758220175632400062106482746283183148779338545080642291865493470562384061013587615816319993684739416279630375724863522419666348067274453637488997367089961326441322240592222617194200485283410725827145755827421445546760528915209251631124391843580789583903973386506979924258317232044065708806301279851260410228963150732616416687677000789382441785332124059198671137396913546317799171471319080835507418272743759210497136960864152942816891779311927840306526520108711855949311684684112834411488878340327423900673577179902540130554447798958813806941571928143101468917420817200559936130448955915204050217793780370739083534638175963737604562784309926940493938770382012442559154691542568241726569613952169900815411764672326598667124734166372342257202446021666279439264816012611665765075176459646865525590526042816171408440790732234181212695988139972624495736933054079572831161076969569789472640582954130626687866198282975697604556061874480761311259479948542647449946401624072223252557596620349882884590925559034292394263763388262060071171850101664701095194843156058054041101395746076353006911922763303380468193919294610963006113719991248776600240517408122582742643944743575486932700897990064786303738487154989419319226964197781383886856336790012467015812484842299233550982906076287976720068610004362606150952207176116384526337712586547834602732315108853997509215269967666462863568834558414602161080653738379069709232604747027806442384010390675690838481363242445474889742471227026130551774710101640857212705487254765450401007672712146475692455511176161148830263275516203039290068110535116510875788421538339761108480131846650730704746290005189177893477347273746690170107473508468239309266346181173062547991014286714507211570018623944516724195288916555727783626272151876227010794520119358364671955204683943940616086307468881962997322210635469226931104436195907161241608109429554417240178923760784410527247586193963457294988526485718561891646766428613417286149251732380511042235116964060470384319504652102839738196706373042683325770127857740749945719695551060788602528370413945210560019610314795074303742910477973849513525412338046087546909951877302037536631190069470797875027704817538401662607100470542053902866090873426959703731311579726559452357780932639408177459868567012806101044066970404770053565398577549075555475906897658973563226119554569619011041407082750793321875699685932990416750727921277993406708833986010697114724626192928059059124350763047635542523549243858743687378046312301880068112733657358496963411221938504686846479378204965038009558157310841384332840284177373674586259142938461099164700241865974644093630331219425036056006407082824299794991991475381539464586958242614799030744781992730220096053926183411224456915983737562720369718319674306344624072963063249578202628002409812645708592553672402751325476821397673781182497312930318714223725510451427028987300471998190426257149772602759555557481332073522190564050418931600482330009048021308362546203402029133756612088835851642170557859681328653420515323920036641235924184516217652458160611587997303661684492505492527001215299989364595476755953588247866883129979258417685317201621856723512021038826758160666919286707900417548697888981456487789747832349184825639838750165170608419381747718864431690156403734125130053075950291588527636327786652375104596896339901729231375750194753202379716203880232773604945954667817125032652369712403090831110739435114843395659443884606564615572609295265940680510842788366246638826154858104921650852945330141317603158229989003426994491083817352256061018639381434070599969585972646532190554354950396763401426232992514388128767658560380508171506898750547079260322103840364411404288816835431693674424228670240975518994143430059992104682948676357680693092796360526404432448282774703695377355704531454989143298109472409833321468138140051536355295767241229088848235352395388234817250798330753734246625487003442706631346806320490334733815692863210087092429835181604662701209575446853156034033445005835043673398816529761911037045533242523519739972480698010617250107177729647095192432778392005038517442967456080366762827565049495887536182364357571286229115594927337328391787835853034550679779602070217654558820867450842760429017423646195047396068511021258668465381804079062297401422217112626199269404395014847578169480400634505745409625278967821684015219054134500125524756757999040220017429027638221806759320950497041287206342480678444522186709952848504310261463721291066244493958381326941083834115328098327520723955918101782659718899626632649818519270307362563288078441155659670980861871233002044523835475272437105111096633350401260733687882956430433309838652370911370466537304518836279904230101356873328866087996780874613016019783282347397291159190532834154696769292716440810832168648505313848692461138757922700651149256862147836229811283976176220265774843092488721843752680755793941998060281297390448313561236271395567444917965296625377400247166525226931554785630292860535800226959130897376776298248530123160031484878317237760686821654301957860053962485805059698542357337600924728085449085324995458471472747842317330967351921948678544233241904069159087849087191200795971303134253660024331112997208118069809027007134617531114309088972902905445390840896041223431002799825361682499753273946174946226250219129224832456467333096170156543841809539199552684465563874915901318627019404048849653986453657396350468804561599971812326647673756955856162915904920878804435904323359351276686895715204205397601975894805698620896616660216105326129198845595372285684120790565137541886616038299851762480673572501632225653981564316789704915153271567885907893790689239392022998487659013485999326325437408261590758099544817465962704941008340527031779125509860371932470875176175848241956546980328308165364684726541526012006403792995558624697039478711149882173212216591158633151788642101620494631380143278105072027143255565500478626944500994646235748699567074602129165505008683940702167847234678873510129696754793238292612796312820866434613640828110519735222440334185198687741208630346444494286490259482184214862827050960887869673921370170137278482160635920537035254312575743804773719180696695645940728471029582043230673686486483858884069831530011283618240636456526761511982392873152024292616981771505321395936831737378885093343247851539162236275904947899316330221755738815244439379721791081357108381826855584720769579342978162312929546792716535242959045058199846374052426763004951605841279620148726369741888125039384925169933629127567476777109180578749740378829901458832347294440457234005608666008535857674735494787511052233611762653736798755245662080985700688452512086853967968549749257019442951416045084958438903533935400473421177632064276756110760986081304322291948029749425682570611318618087718185829191042520465872320758486686954614918711723801767340981471435388459663395216729704830255253642555216450887205576614304808180849193883513288873353366671683790977966932171993891463558406825897203353477235632945956645568647537074993737110113536969047864525107927554454096840974307868287414559887433014798780483562123656443692185862692501897970575982294146461687732441740139032154361223251499554406336750520780738557896530896146159620973664651317339324819628488695534100355793439303122613577557608041208781317588924627189543165003950163027379540640269567236152492679683524597906327373334300482094413534356825532986571077278868082902389515898152695494553691645164003659504058565668930691952382691715675672635852717192821929221218183218890177656085235519176034230105169143917781230012449449931754163777007869472265412573375492271462617633643119955033477863992328408952669026928593460667787940139133399770003906288566469264842324283938773016389632621061674173744031147799955969731462028297863301664688324290256513186858385149812801359957586234743224306152776221312313441919635869987964190043798127546400364341824538565778069242245826718762230100359597402179544091057975577816575709326645420517094717667457013196117336671088948390229675858010021720135866123271521737006786419190241347495878555498768791866231664789839854032707472103181158659711733377875879514475651250649773220042570299590759047113072701181859093321150215396613549542507923987544794452443024896132237107264435322831203593499790790271621346476800364369586750088784234188867700623568949727428273685843268059606894739137740628904691430915328776417893295509348449444827194709679897621608776892975861358969792657220704863578161955745621426635106048351312463158159257791933775130733668641663323652270208908583134298286542220469121671289342049473643676847275704179387213504776898987914492770248054656845783183650958167748085441928839138637189827044712398779039106079441553818293823207778197757420160365408397467376821365768011190100062586080555860283399608382996118715638527606774325996625927255809022989055186597808956602409619826923720231920232134972314004214423229631826459464811365847982221983679621626280458745340778083050454605567530125337745585389100934070917039915675834264373485101728975680706926495512297846554258964176406967425657823550557314839848457777728551545778992397579455070282978546999744695441885924069262694829165431677215365561694327945389123286934105702505659984812349074940570843388692759642751335510186705163023789133434869821056363588097787443028992727060757164983695893012494636558340179410667934519322101211725614970750183635859266260627888402727760591867591051920484490396833186093251805122397801456270807499028090674865646966661752436107404843254223509182550397165570575340246232260067233434989277794449696828769540055156882050409784212132320031108839406161321627458981257244679137299253262463721913562145506384612928032061186404813203863852281509009662479524685705053090352562069475854688260195300221677237210016544291974001056077039380520216601515241485709223366693538550620851012415480074029680971410645903471602146057409433162461686233014406101809105119109523597787608695469536786262399800026055180293574876497880394557821642423028473848353931217271825253689605691797846953579874542752728827619917767154863952646722756013413924285193188720558983356899971430086159787032666290661366992071841353720678038730495515931987385448460055785784001398988812122980755095743498598261915767456763644858457869292221932497659289583147393739175515952326131656127979306756618424449843647043887125762053234808543290467215833641419906541028232053852437993349644921312325507760483102662364354443182370373289178651808452201687362644567359046987889294575287385238006725185780956896682399842721153585299770949815082001454289637807598212724315693775080837174129664284573167010331096612994270604701094189751173840269567204374186164363606242107587208636192938109129578933399732771245082796921493603189357675959808489751307196368650168361570222292123375864755165590334316002932900858191184613979849794974037965573989743011155452310602702603903027048485049252488161853553367719216228420082648401187957688387397468063212515657924958721754658999898636253223147846047933848223157962441676099430179611862720787956930101683251872498673389133370657147811606112075681536715425127478928460033399931153317413549734019685536884584363095597823085582513449345327313710787373044574749732522972291136389106062296759780223679435489233780916464425913659037614529125946793457563290243748713325144474176673347259482853210374393218844702806629829873907171250197467507264669287798477390091613712670611444025926581334806363489700874532990984429837537297706056515343537151175102613464025416070559596809863326804850903378796998592639132811268428916150839074267168636316987398470311663536297315054473006305814131564882776550361725283898822802239257017834425837296675730473461809643806589653689407729942524693542096090737036907963505613051814870929286084353508695053540416959503291598911088811730189720406134192530717385703837631565747753830376798138645586609707978979551035160611363335992031635622347269988626005791989741547076641621944742168415399662501641542562449687772524923778623942194905126280362789670300618077467225196782983658612698042746660216006074365907621331635538982414785342793948977885024312786722722673349989553356981395303811725579229690482912388373350054337246919201712900668049997272019512548342265734118104320347571739584353168453599607259151789235153170422039922204902952916776382905388891200695818885483446619617148638954750465774435256545946148216003107294503092847984336742152024151896679478657107220663483197699097134306937715072631698846056199081965036739617815074117781890332013363535047929803633737037144164634364448576634672157638759786320549650638938579911930994362141387190998668439056195293751345070500793459056343915711426481666147806523939289068538785347421562649732936041374786489446319447209104658035368604630661691822912092384258028872378076274757349129074665065271205690903193963234578443266518559839658429114181975362366696339819762999976207212979475811061260150097511713108225038832927460209512896949136456694624072361863991300796833897346805129857753942071166295352358789559286003060949702831894602014046005170441456162760941154182829184261833216379777274617756454351178124599164996291443292294614841625739869293568262698953415366935406073839893512348962514378884165331542265946269008506884121655816060858027655365004518076608555192245033332198005948727611405860430391757742085473414163356863280797467217506197037244861220850700589545838673691306256581449102875464264508713084802427719426211408390250397768621013361148807178014269403876629769122937878884763666951739153270341242580684749981582508327558949311611319248256800469149116499667631743659053574845413047453632341231533610858610249669648625652448635068474246934998136933528662648754851494727726829139684723810231928203704946979344631935061822193206570234158145668641732570203351208778314247341454485533729430774005100333332223163654881164459764388183977883939069139980733931833317254344596693590982818680408136121245065237116942289405582717697370587654993246641743587669249952004080438556105220505090656793570222840288845243955207499283618557312078828114661335151303962705201587209175677671987153121628547190839432785992030393924778463307341334914282940322526578034584091368653079095751811615381967305996664496809954699151525617888021666061838517684602422176197137390240320377026851237365170381640046960408310609612184139084782302706647199132768630008423239612460452891499101119668191790555598979819646875247612671966318363225737172425984012661251344505762354865759973815913424553387383367890884031632225858423304572145993148026535934422054508853754600663434456251860210602317032362564846009482219898133800469267250725717352164622532729782669058062202955481700813522020009512107671091689225361381230827812870070329227057826676395804215084962870030304380098122101084086791350892820403202007554889994340432817250721431124537764191135190079904730235175237272819179979763269184543690675340740115273963575213757401862423593272095690111136900206121766685321161850164140650078821472220362182584731093866719856955483849630037433883677912226044060082293178953201477093232102863740950510501589908710933845418582891611888731101864493709116739098868367574884313494939927385753379500729966287554299259664014815883360857885617249004344212621402568260077709874192120974535356782427436572254925409022485857894918282076613014287676163970449682931544192603912395262260031764484172581438538255566314856035728886185740957509289434082057595857528749508465755277574685317232271582668183698655439226129752871697236236941255290798598424105059350401052227502033046922197935256893252628726981609089594590854696742987328194789622337189227259179172317177319784880451417275597221306698502782469333524911848361859681011411299162073708983842780080526821401361336295345980112630592676480074020567916289144083827715835017799274190667772531348069819262300912304196132185727880678575034910543834837400527549103506326437280938232729092162389873114268110172981967475364333716210746884344015808314340499517909582731795559781529728741400605094389743372067984107451823773345863572958182559391157016761582860132556394160199020818108063504356489174098698438603580519053950343523947453182548083120384976156815311719194847813813311104024737293182720493940179215701131911227432140904705432208275427140987865967977775835197005584383532734987314411572374251077355116365178598058590790586610876847105762960030724618137309102830199823746986475195308509659289116531043422035800139972805715746118271118088424816732504912995005414287476452555797384032689945099600406101407719218225285463699963036994515303287460652371511670567296069324612941049281958257747368299602173957513036196671938943426375725199965232003238010358009929686697217626662241045551799422885690161466880706370499950801502002394165191262414748658524934414446008075161182284599730888207688470390801593357282687768256293475304173461188932534253894271785455673547906063668918909031837987849747367013278701677043874044200780540446617134686251931798403927669158042420741318242799751842562286412424720359229474875526773528843815380576771333918967402172444580297217599490447700687525855995326377775443218175242554946209128888656015475801606964615379060351854326070604104089501938276214509782731223958627590602838213087329023450045822847020807942786360991210729586207321686507552116495204689454994120651573926606704554273830536239699119586627320082075383683257061476117180248885700424151576964046760381089760902065106205062988200153152894048575405175435753314248188426501757886257216703050371640305898867825868799687189712460173587130891431037367056452911641161721555096837257354456858436089723031058822038610761489546018562892502808794967870443269373537032844722501663589684989598697402246125896098503069861578087269362392416785679632526434868815096377083777005726280739542933251331951537820816001883569278326655888846868061535202379727383937928409884737094722742805180663317734653654879196244921554557701751357154594834239328927637467161009960543498901807712751922637634332126201855081512299499640385821504217836666745401961018739485392486283720348892324632443165979987421268644435034419494338590994820238542473213011108323844966708121484539159315115733416676569911494523996752508595786037822808823770241760499981371575307490363851954304133803098231518334883381003666096916653781003079112981222456603954935990976547512518326675226076294270573435162963084281125414333446043085871801480679224739257839251993779480040287613640629759882157101477732990457193493654789807585291597251961376561482808047613946188990831852570935267411647181175017408652912041079832376224194356616117161251239749760471647078548166443975957012611983768840104305377381730074409500906150979817909210679206481567384477158578066358789329509403221898085671292472932964365518765251744163838754766963264962356066615725856523457587276579109888330316960823384022263993838703607778782996562141640884306654205344455927311098537613912166809254207678780262038296181365843681917482553002210706412712556246820100777048918444946514155016225463803817030411808692844951427031052450878436523132833860998121304934273594226726450353068323928030691106084780353884814858035030822428262691800813302708276219797571758967914355082190568130439020776420219012318198407518361377109263599814216948234357048195749784871414729124003888154324971336266704341721868601393312990934938260796721019809790349544218986879856217977580482044926333180421772973051150082673299534620632499510605034111353515365228993289570548390852257418442772210494134794394572282335755213568876725791458306972864797738488723732924710905827489204972971129895885751079658974502847907976943177973665978091988650259557408626626568603135053849137456563007470601050578903983163997105589459373461466747483331575457373743372279095123849970939316849985962845083235118140405567556637995939088350072110324083428741030086945071528295715502515853866345187941016393205442090940044099873392093022190364007698834383878573846484646521997661814133391336100480263216335211422908231793851240390340681785542037914221114859960078206515493405151246426033053276003729779945054528676874219915754967443738671459596762181690093352403515968824517069922713359705993104680869871636522139628604921904476663429394147133265137234509644615668286997043827999034886062620141737930097907607859744880219894478848600349541877759252386782078217488760936117926410368471966223780956768723855435068589762386277858152239729418592070828272306157400233367229836491352249281663798535798472002362048877366940269905829815733013123530299128822162918315763266062845868515438514084439957652049964121282053934099325435424666358403395338391571195085046297834570903061869283643695582991966588439003898845389447406952501919404294725805896530818939479149907188773174709880387999217283998788201006578469293814449577810559848318840306465765554769800187744483323210471454440442826526504418298639820833699604252321023318903345042428981262286595243335251643137086935737749373893621716749955063291884544094700509606897367782143840064789512602263453903991291757485074162358591762085831410780071845045779710001041910676012347639094241662676206893396562320107122459400277142702301276789765919611381763727844552528222809556242938205377669120685328570798918749143529061329683644680538893573365426382312026302275844125744067926084929608463954159196757458622009192506983642865665372047605896329045297133295986421873741819224895152138789084524148710524162440989089829254450739028085778547884182697732263772238443250178117654342225038235352789665394401273496420274601857945063056681917504017093059910568521800240468901990109422918359631230247867818350655697782027071943042865507786634557895058038230925316211474228132077444967221963164641051619781595216936267112395907664578802089213096601948222365853982068190277748956386310728813212148463074876461910295247850299505639245811532793127516368793747805746826569355038049754326305904187659849286320623504959782974226495187896287620830711729715705277182759233912067413727136898116558838958617923675874744298124772512968718311120162403205487759501105950560665956127808988547966876523036780393327645658313695066588601193986273366856017817770020667595068760074916796990022448860413040785419503275221213701372116020417158936523373707166681042752525067524607351392092410914628254656088069204671259129743622905161692345310721470034535529760137230545127096288960220371759435103617207747928314813093983239752191650976935961568869802840726314992564092148073190423102701889187694036466202848734047734605148138492928461660043182840331391004037364508907913726768547632642812616809160863390677436656512028879425783846389876523174900295783013081983176070830521989240233974154860400446012650787612301288015269957808855495928301578655748182588425614476197509100722269080694516612879054157271108932793761813906997009747175449896549590603554747744945749331412941180171552835251376527265981097260194918554458055771739542653960469385992074479932361559430816793692203253854153780389411331749085429496042361049174002494623102859057669601358447071986887252266166358315081757386052274534751923604750836961593169294969300499621125005014304614745740754669650981571934166114377918447744278876651554898776098036271943641368919167035301303994738415924151311594863724510198373849172461303893157930742848489698085831705510519815331708595322087060071097460142661251115503815279476399750758213441598871524403306023625351021537107894271750618695848093409626449890259640066126593708215763405383755491053897055897485055149457853987296245185379863601815770047881464437521823143685641236956749332474231472314054556668165838323220344194202171226100645516001595356526180012540283186817825338480713892945330467761752583264503015939168034067540634464772449283185523698839009350533407256646142401231480873119940083594705851833194009547808940809690414919095957971017034277744010953128089893064474437979428240719184674821343443998926418567973772181387190742771782998267321702052305074726185113319598322946878879497073446306746871437586357849149345384470574566032094520190474873306699234534694746268341266311122592169897576744172276054223105428579147364459460558168878413911769912016156729904287229846923138178552388185874815064437916762417898665527596838402124836294894129437915529493311181849663179772337260376345672642786528599232895285519381069364193980192145930045173080790143930895454377946087064408352358940682213983229877026833897345177614384726391971159388758257674610386981946513773321189857311110090699594986319594184976037767962013580310218268052852425595047156120199062602292835367808250192229829877261995351540693371198198904619375895502970647572612661563693017748428299271312784421287132959244189223882904667615385657659710985809025665733292283446670098333902949717544864144195760264980482937704832179310393075242310634107905457185764752646610141381427871761952299696555589141925308117304008456809562372576395249090766435982582575778063040369335580832567639591256200748894812794550842729288630275950066414408122249936749728861136038331251235121442888818011732828641522065258334803048650339302931345773136727906663735717649242537539940560047374694556080233472691594841594168459849128706448541556347848815391766851687778653251158821695366069948230381006386648698076918632574416974872267935306841264756471202428747547072002559056355332385250010407847622820696357621729598528878874687802143584514361752270865201646484197062441927448625257772201781870006012167037720623058467153967440796092078324848903738176172411766759867837374197104205199014523189521754772519215169202172325581555990467899087342184062175564137506052750298314516603672214915158217955059027560765825531374462273749097734145956894638479770696403120753850811320906427456472967360205132433944336697354139348144998148122246123353200274750711483234013782796995834500937352831185874323533779149102436677401120778871378992233614553195480007539775396765155096908037644113275752012746767654849844475670078207961681399615222680518410841374090122456174946729682524058595409142937731820384432620076755839155617578133619943340504896570164342851693588924288222882602204266551709552096359455213107590441850095740227928887869668251575388397276602452984194264854248498206107522411538105690618561757596856420966518069686103945648819584479120286477499028427694318570293013296635670070440841380024092132764451903019873393243309898974629779617972862505000470962450111668860257243569877500578846696963031159341979657968249904400883207659388446963368144747517813698411364622710876961841577455942024389462111657844471188033695732952350587712792910717152149000787923517815944296597198136564884236885251706169899827737295704534414334664209384146802647438448236600458103558153825207622971006866413047836040261485065194126930208205728223502934898389339648332198020441873990842187662222715576721849516588117603660736661741099167778656058111101853297027645525675088106061673920263537055665511603487694326803544241510867383174642952480464261832533278593462311785549038319898815408799560620639434884781478281370075875493974761975075128749986040693759897508190994387148366227817829320138695168150183002978199443791701785352781464582299494354125670433928124205386993738836251463693915055378862128172587589717788275650671317910750141765777909305711319712746103035083814405115404508193104750767937824770081754973145354437530804378254657430579753776175995553978998666494997590162987771962483890313664868344799582503258089993086486777475741832905254750346968434676944038484870266659409527578721064269053329572116119639530447868719731384902029749145043230234633930112574765304962353424547862255501327562065627955958436484247009351358403404850934150422886718895188137789200038470243152240296328503777817399258113462555317824381032285422861356518994576980401347899345090697616435252771861458859942738869524695499768227523558461287558848086509785598115242535490772580945044463647744975003848441925586230380351976424036375269978027674165645541944567703355419525776952546499724870161096004884192914649293394754504010033688027347156742601845826694064363915120522569042297858983774958021326916151197302646667886401571619280584593066590924555077177076414635991147746192260125286475663133753156059411575879056020353976242940239005737453014317124447037148797908348339791624470144493852743546136798410589884513566925326288745534930478240377628879187143785814085158469805448745131154895288478695572033887802785080064193930443373619080483768804098217971776176097781752845660425445230250651878370172536439369877619900532032016996185283857448495796836233966403101846164631649021935806193666646907435828308742100185225112854641828986522891044866748384186823112904316064427011892327810149491286542599607841628382189978878085925248515392303572642593766206392091530269525015628181626988575822044836853092165326819243369773185922874394352968962709083551329846368722279053205623259900534401122601517252112914372574030716355481561309175833010582200832398089247656576632725804828856752148687031667941219802068277377138615303944295353510662142189647796651845977124468792108539415422739132615549327929927674555522126346047227237015887317731466623380882996437907276327401588204069854097468212185880942045277553161286024854870989172987187964181250596114411668534553163398793905352214514269593661253046935480546502951827541467331455119618794568682831920873517780272461727158026175426045842144460384356946378377491023599838909286662708829757710516546263583577928515300414219927541007135773925417291473300682895877794188556789911091882580525337226113601867025968428496725618308823448708217562825607167946865437890586609319116084010062516534840634598387456457826656699322464395169716739337367439020352147737021425364327667761039894316305543064707255828439765365085231115691914350212148907491607753405164721853520408394441140601650917108614874244700187021810793132082729892617075053604918418935698239157526230085908425869122937078257968489754702247807117921341890043996277098693176211201647916887400714277624638000737401724922208796532466404632823741539814467559025510008510395522981647073139340885165635916901616745418190625051044031114662672802476768500635371487400484019899966207628561112861409655092247499142055815336513595895782541210770447311212996561668760597346353811981170084600941473706216191716480366046917145939975664133235159766562503854221270997385706449333053219762060056659969627204269813334178711440076609652517731772830449321157909942232161935819163923389007805584977316447532230390102347171412698357042319650612694405657198423052581114228997990707328123954923947982547135876715727949499245448862191093054168949158891588072287557137574077368095020506478836886100429275169234972690545599533749196120926620072870923220055378250286235850532667881707584880845338224314826592796261916652723546635284784158714189986658955875667980988691982406719218652279647985095576330046047858212695274962275734893527009536552175305954741828182355815796347629471350611222719929928358215984801983286739904394370016449734393555616504140802322046340674386346543588306169797853990926905807952775824939872861194060105419424095596332007744498758648352779221427737373013633644371574923500772904686531720388164129527530302517058772455028491006398362864421444799962312338254407249080033511612104610883772611413322794081905841326825324491428773001282241962385877940873000410531934979932123056098617718974724643232053049336602900440369605679928023413339164537578681426193176486638228102013837192689207188763662294055003611511972400574371227062647160267088031906536800811971916512832943432486336162775294083904798406237794322426381463417602148751645421792901907046791217124894637058930087384851803596988628784374513614545552695049780463109849156659265316772555341277925226858113421498033094918139884041837184540071101063788107356673151983588383271613976211569786046474476130908425284085034660362880341564357383531172169319151087043341223857153026876681418533684378617308691954512278820110208813128030227393069329817623904012514597675479869288072268004471294874882405208181106280860981556933001067073766654067800583486677977412093309381887601148683108780240944243594579762816597145833888197273953789993512716948721967521492094489946551231358879067837143747412130695764889970706239787361007714945322231141857104891690141758312728306475179400809939063429577188951087880236415907640778361572482114689124946019308885183092756770574809889277921278883002954073795244949108138709641777874695229172260541185492192330766047834093003035745890474653949729117751518031857627063110995030147207415523103872977923817575412514982335203367882201690855350007218517569717708400706074588208114973761820934827389578837817000389154828392885918229124832159054249855899028014173265512925058351215446804549991557023661852096789161864289595331644779628333125968147886517190568884249055043743132930939532423902843415916235527348584897157981845785598125333974354163677775467273015017728494491092703047256694656290663119381152407226689097126885847791117894570229770946047512686253192285750898397795603646277955513717015136128919151240537812244946034456598941900076095092046102261220118530970733789327765599174402443013363830255457054802518480403954534809929019805265362969834619558754771163584079070209333442543087705769320281949163682035920576782823074516733567918384965247477673460207638723073168543577246277784723329064018965859814255612732172926738395230836700998067086134113086149704487136946642998310590637080966813757077023649808359420866896920547507660365830386897713807858963982799482163674064141727063161513904737253037852636037286087998261317692935076238336721061748831378212621402158386259537344456284884431018359034593260965062816546698339264251941912921752432077897985740715326349351653732470803762871043594434489767110719837894927436031566629617522332712334061708560974941972763299932463661584829475095837933724786691358982662700403645014006394908315449596640406396766454628598337744245635775013874177165166990471680770440979351143639578491885141612551897542084458416986299085842432970629902093200042922847652367503594337910915338165461677101781810461474844963423451711608420980453839051415791670298504330678571536740587662775378584923503463121380423994624481551549470386114493644614850622002049216376439964358834721941120280755968341905087878990329933603054207969477631750239564340649957114518340942660440735630451198636224371600388330434239954546982589623855514277603638764526075299732758645665857511651687706720943823849322351939172859364611554719105671800689424038888700714210746172613750168169101803110223334671386720685816604551807969657182525106454814635952247548645397444106614805041152478069293577714760336781193337645002003458165885401715438229764950967740793360116457176617802255463793846909508335010847754883852733880465700948888496658392555810177732143453470432038257535759863897645606058261949409502273652605884208157434876828763944892352800962823751778019272057237914150750517934831571066932596284260945262761576306084435344028600868464254424887425804190254056069750854940916227693714005303385189103092864795565822593291241167303875077952715918145487064402933032413089328728135154345843915796113626765277513465544918865833311721167974623574997463440559849975640263993345112218759652355811705382540817578472926533657408368871855891681345812757149378747402841277298881418693463141912938067676535283166392165625892985259604636364068673707789868101811862021183764962292650164977548337804961442644056062018785611451823645135955729971187353621942949306781528750731373154633765153829270739331120748477101552503014899552055767847688423494924753160244248976607150088208694670685462656059035188741786712865754494391765402535236721523453305947356825232390340333243442681316242870784684779868027019137737104242142219504145748356285668379290869688811095499436823298834430815473755959618332230339042372460314704431533193999643432675243355039969354644848226150913207344739236546908582430048941041215228669453355711676177610834685034861043709982526653579680768809284171761340036888089883643417227770071086579556503879356346940434230922944927183986690523410904951096172282228691956842627086001187945053036718638074938464743667110336714013809880715312102394611605971703114434059435785835627124143027335176359841529454075157826671413018907153124935539454926579284937965130014938744663400816835710026376717577354781435465101369314443098683035914171007696641440710030597273088845496556308884193613934600286233975456255752609411015170170631377959802344032927554120643079226266628145673866506891888540141791678600662112267860667940665685965447051156800008796372063025930229681434738030371707614721667222619970620976878081024480360505075993970571474452413191466463931321892620953615305694711507941723533557834470733292832590663612839130746322583815203119052069307102852498957598110415368588251460335722951528191579018042495097049450389218513408161973700489340639792325590741179169355895877861225265545494229957049679352581985945999932126635981365821487152739764214443496673962153936217886083782451342912435165866759852396636698265291951116077678847484789567089333877227987725841613237698091597374818053057475124325085233958674754714267651231694891153032680758893306105360779010433754795031598623500357336006420556776919956958441202051881731674037003579214175009695750592112920551654687839062356137708515895254578551654351182775163303365369024988544046934032640145152621788032516493412011042496413643166327492929298814385851052085023993829871540689644747849885599647066775980949259094143789825711428705271028625960823188293848176122844565542241463534689702979057018388069548716529233395873157060952812860611376681145264850808981467820154936016728187513828800817931648290917418826566806065627848402460750216474121950161504549051250194090348458692437174451209822207624787619237353808704713674139306009033975954489103371472978657018019102030632763628548228500856223582312208308901137466799200171421808566554777739620674458886364672628047345851231612114230636092640651373690997503815937205481996246456037671549135633277077406922792415956849466554576788609322367679032809574599918387014326569713836894697011572758907392671815179988749435950077895066430556405984981235970824454233906449996478531835306037768010439700124091817461363339521183306118748064420952013341880220214880489550574021751605854096509708151226747289753252879382467564636572107965325260979942665245416119137589606698492230960585724081307427698027166030210929750269264295464381039837965289280113593235674177207016262745581549369765018761123426272379303947346606362638280512428118130274954481263266596375572798254554414843094445383480290951475398831313684721423881415307927651199155274265111507909735794057374946941799853904539911843824956858759364555480174564427546007592288395256704167472536436056430477786961950434450696919704893776038182972900908949988410873466054982730345017830894478775344285165387245746250124304338754554651996469285544377827062179431690512716002545695457423167458741200185554734147363213550311223407257638044271494808188548276192025704970798045398825473018360589925171945594202524660229344134831253792040992217769210267080278960125491204034315893681228999807241077361220131062067709589560166017125558348552026951927690171699249460537167843746535783470959603988675629733210803412586665559834299585573188755225047879333040145996992881713170898522964039310304150878415261816252057650190161221158353340933861962008658670431342525183360400155594887597611198684691393496099150374333141404152506227204647543423024352041420082083875683573854486985468776579047935523981552780610123510684201557592372572696361072234248324879894738365642885200497661773132406490502346440060686918644146552344768246920072823270167250802071814128301224188865312895901016769935083746637948400039789817097984668055971184601399134954719195490568208437119598560541029524500642274889317359104392546244337221705058827619165127638213412019237994470970401254323772668749431985831634826460572724362718599277246416356270662451334557432054012953235425966545495053515292667916929129072654769318710759071801656931743578887524364851094960875858418630551376004947173411542653363845924454186443067539895191250121658357179432581127354703214561001568444922559526719980549567004576092494141547574718312245962448894199229459328617511747998227691324175367755253160899423679185320493272234408046585793354418479372431210712218056912906008617616183002295415540643533833763847065150895895093177211709542381845558922480368159290559713546635045206364589389923232653440961374485106993738897160134411121708350822749481937853631836039969697723299824197980401703712813808803901665633836979865222971679975669031292504294609906317490988158530749751917408162367433754367844572336408690107175022337993482068404109520631029633456397254690835701667426466005334599365635910270180397530684079715162957191735104685356313814550248839520613678072611537304395163636209665369166978615038831283859545496793018122923243570669605053696712632106550618991285696728398057747007276349652247311152800247805015669699633295281750382693373176073361972050610326125366430473995341300127916106881910949887496121175038542397591579429545773875063082482136106945147044080873109795826189537623610617557135832573290281221203507309707684682037621496554095591154331979207916514757823449590524917983595651563862246093901802122317221738506218270518675605996923761637304475143673193426073560435189396571962842880446209003483251407012671574588139847858739095931562526572609496974358192225701855685852807876365353147901648833812335766734777133495030324371554174632092915272060031583865693445229775142897369126629318298911794832287325725198631446785970245011991308721952332965421974542341427468931233105570063716795127282504160645536367890637900266336053134824086426816879877186881175755274679413271589557068464208882882958854753388073960052724607848883222053533936201980102440233496023791791747543158265238748462527677317565117214628930074710891284926914930261634163262874902766760223381960800980263034345549204336310115461105188697314599466137802756523971382034680404323968282548025982509197410427662450985034339989590755733031247002090797697035602478398930810250232573643483835993995794357279466846722347781451033777397969020472182736141817892763614576611846422537116649050835323270953548984622303923880626276648222833767898600788273956268444677545133970650926186228039015518052468010853229336310013278721780121610169461121478064851569574082901466351931404492494619417261118079812071024079808174042598021628587235534536155071074142252513896670982180600410645575623609773571964014121655750193495303829161307171818102461229944957337075450027691140937667749815338514293833751703648717605149414949450491224694289222842540575421306001975075339529314007490208020600670487566508609606972248230010620354834834373076017331247419788060647555180081001083144933046098790384646969579063955581616977186873968318261932860613775930434649305375310413077860832146576284044929371275289292819298682924957463729901316727231808951713098013963423232959761556676822760208732240493303669816840229871763572273652267852630350232647657296313454837387485251162096442457472616704912998807309655621082659854113752480289247174818991959550615175038846984554862552002632843654466048493640667058261630010114559599908002487322891191985010792297762994966425086820583779738547385545821916445158551220834912786334116965309172626515106277689573571896042855054031311895507518759583224155430820809346514433341232792912709388386832884922233699242633436464609679914957971497268740175346502166546741741567514469094651304107062450116534325306636061049449762170797213538654235667245220244073772257097314528785073514368709200500635113633371352717498829088397706610443204308987226076749017288620123077346155818116883425247569464428835455241146961210954250270095222837148122636697631261225760302026157426500097606430501734298909255795957886387216436189355497745275498556154996817107120891465346616168264571317887408844930876842785022208578474921886976121407146657142583362827809161314011436858439356523932039007895830457584184510261550637108129799476784590850037923916984048704823440013551873999776679277777463816321300429670308794014523125249441766598269198272011400373410826307425778461803200934130397452163002969624219249917090835905738276208348198245188988624745395315198664804341388576248443024218838950972618990353426062166510079857138797773998271519763977034419630613264316376648482223349891691376962750529509082320105186454017659831483841046639708331896419634246219490550207049577972981620610489867034989241364232588920030118704843995740091934801037223858360294658214099032281374012084411794409046164206814337634288013604026069857507519320868322553222335894915439425988760001120021663402212151982070867867668407230404168872157983263127984664280490405123406459841614688484554514941096272867032859881493606274695214747910923127009393292266931267589037219094630256795911205870818524597653270489814330783655268348064360429869576249221120040645104344985626876526227031197827765613718234265697134673365367509239151872497194014045911613374262183541407121949313091299027914419723963892822788161553985406473950548340305383419271956536947427388705283026123350877860620886900673499593666615825486128269759611297193268142296463942690609157495572638318441402948740428735050997299345683190516005091353383174030428856782758585620391461378915642811663649355908558600119158432221528668138715841085904102624357822613393043833046191335301366404123234072575892483842529148637139788969865464643027634600315473514301698481646941184501120617749022883416618448194092107030633723054837914653667178601321156986985876289494717920884394903353969114133283125343255282848959303906263521254252324971669955923350077856799981394466363580041370221313459546755229929512223593554678899126599416236801051285283633732289831648939830951070486146870024689798990333505721903586188652632056112639974163248749695074591845283500488927397828669773905713396737238046887915324016960089846933555995765081287825974170959270456933021738803909239681834290541406318504075571376040775013310003400622471692408306428623339472265116310316253276250043136511418842625782387814923422216087904701222817170398540359462370606579905206401752219218698035135205745998695035336898807081533577882802328741767049442687255203778643030027120007533883033268775459665634689875690541714904250340042704444975867104500401107877261184903685915499709490317880127747256991059649710864362621973358205694882728644867252286182501922802978102409913505567984312128549258254077225037654374249982671704620933739638014101854150288883413688995602614911365680046026993909782036508915275436852656682936393948136898082064094543750473944107690944608975990949081613042191296590882914758112169354019220099037420100763814959397343874497922496237851845159645439232883106199558768011120572619321983503769758224364045410848479279932717700987781525122953195772776697561329979043565931446492476344417973772563243707128403452187737958883933752450776080840818488664325314421895848996285672039411089531028818951077316454962418699909786683951174409292665479578395379558215292226861622867452816559125134038243558729411801530365573507366603864913635556026907547773395029940734720888485160801129182622736267280639679358168968290439103923840391730910279895183550031886423106123568647433683231326332506662651814665208932887651710467961552290051425357333744471923369792069573469108949543396058366103743846369083650257457227996283053027961943019584194385139318298943818649615152405955242611386898414620649132611804292929575500506601945002661995119430208301337797959233867130213554017049597070257175298994955098927435428676602491830370226450087230990824656593260548766073146545059823974353401927491037128435057312146062102181193672090384532635255727971924515984445880364146706224397098518988139829396364950290766701369645138643189412820524511659130470034512723505688977039986877121765668106476943345708263818048523471459955769704150604668899977531562084854604163353062583659960441539869130853506098200640283770557283662228176904186443460532560607839681641278830186276287380937243764396817211441353194416494020739922869335676215161499176209486121521092597654308538330592791577350465971270841595949751493957603007328947957858194214143508451124070428309893683950353199435240404551859419308782456338942563811587982105780752918955076964387053145563918195787624360633400582035596830216551993676094738835140780939626288613836311845138028942069848716138087935364764965054467272791519816929656540847866883375528860711468105411107996395367915721905205412693332898243413319662582994655614907396313324258481095070564130074401851610748342792593749951196387740784810259128160896536792478344843974546949347335054521932502024232502794966767410049903054686455923846083636272590088430493825362941950635166206839529554483422543364372443698850949667957262353683054639906010877305524817719104818706882725184343154211965216427087406761143707306108332255611037300724590893693128958122840164378915297931421255180623243701428303500705986667235518662192196811214749588915357962689329808901376264751981695889083137313448117227605201919659861078271023153723465590459583862635586646526572251389532004491842369708779322969549802085946813026718277794259935157902768644294017128889349487084282638227331114625178685456281814343523959401741355557597330220459708991510159208075383996726829457038833268306579916080185076959073483190038860655789751057207063127935964590533843275671703481912918735178239491887153345411148092932138891790635832682918772042958260478023821356288818422944664193676701133072172394427233070153746111471728036868960855809308231535700388338688608777369061140982954664834034346685198505021027450382656115973230659560317454895901024762732338878419195882400348368465270491930631194161273839977915976208571904793644274145117785571407559666168862591834060959531286883820166051191050032064413236013189131234119803656929182372043491332697000385081065619308624465529172738639814782677357252912360913979585534029734537319669447325121217616437106814298412152489916124230896492116797281519547122861883695173189604367682644414578076081281480364741469796839713415251445755715880018711211716630990229756376866485122278829203725068126966645431489366081135958948123541479950167671096812358443767332901697610142906900295931611844174165143407240440630379109410099618437603654431505252436217295672391029818311964137116745995841056396522893961968682842491172091055012915400469234643806277810475649303840074243328210926849476191984215856375060279562824790650248872478381047664039415634362914819013105513236332344846405211838065199625152871440261300277714603992828889919707597773505444088680058139964038287672467158797481188869598951845107222012589483899731881042145163639171604082021345974655726380493229424423491097010951294020564328758395096453415181066068241897031278684615558374793217677460640035979839403117270204446453211834272394709075526527963178857574452729796463517492399746984029686827916888296514338173608322105987833919501236772397028098627354278184566807601364029042293893910175724791797482389884827893146570017294440800919626960908722530034014003416175243819862584778233787793536361197256951737958771612873356065343892490725149595707261270542786908306536633280005637647425460459938072866328037650453822952028202653072455437130585618099711869852984813230806045088935082586520255599854091342660743938627113920829304107551950027467948410926838239783246980626497070719178316891552241170211834070580728674938967342231599850050122079156940216599513657528609871521885314217071153875826037646868215928678983838478217001648128051051572803636472845350171313915529448504144936297888779864182329182197521797920277648924067286579770169599840008585527618885750504737451248078715154779747910817292269357869074565280001777370346121140106765534216405831878099990549118497754607716116809140915425472148847568976532444024885039683241236313928567494340076023938078680444811682257691951975956422117764740396098166343343792666840799848235114357021230137699908790686156621422142113947949312311530522511757330792496885466264695749667474348428582490506850293815567101806781131839855304994872096347180670497266169392836733841795901460627026086600145484249766981424894864694887379946376066646506857957816606312146990847090451264033040889301059858638778605500538068756601504159392605555674948264432380866535842751523749235904757896771625252577255868934140278523609898783712815439550816125598787354432211349630283630738110061057938880790745834463171370134521665200336191094523689833651564874950983439047189251444837857575680196945539377728169178212811405911903230762682382942207418915264114845398946723726072199128250795647470433004928703911974615015659337318554268147822388552386416255425986064053552682469617187994629788018826121453237718572320593809917272504050976147293328469311359682897061410828720938975737209853362635186363991769363898426966126308426106513955802026139325030950331959378621094748716971869665232606279561719075894746835686779585766440088714251217377521281025870516286130277273298038490096038567654103813320388887119168868130928554299589522136121282584178052311241449473313374734216621818112919165489479744040653816288015197565258048450482479818232972411223587222884709682426366181318306410604962726862711808726141553521736856235125110961935768852245308679955558190942531825940731522545728674248464599766709773664984344322763791272806762296858273092138281951710989880062165229297772231446953890144425587446040052658736513730231329398769782645241599124905659442954685588473481739579351689755843857781966234119899570639509334829277085680711169458939877078669525628462416317776656084096570421475404308819773026011514253618017002310787369983834783062906919108462220158339288745539479074055592451788832505774757639406603736665868742697568861385567468122680457328587504725907211024041356621771132619417850672833600412442398173173345177118467866354859088953822238898535088195864897472475012486109741361356517226789647892027726835723978429448620581555965123436312861341909024241679215712808195656184891014594604328977458742892332490959252589248140822203487256379604035712184289975920516698716190130257859227055547430064810738660235952870356257486212701764614170907635121155369884042028248029778846842755827661023284134544170290858586314986074980576672342503539945908168083526540192147222053654343170271506175861850187023374631557929874392742542999119397909366755129884067875496488096058420152766374401828522556213132236513401706161260065321066434306586688152294089010074833049743916958197896622873720803667641420100979193693812600773778846196435526743488769782844692039424289796709804897685957075116861921821841143608242438273493291939280568040157013394120566225895252236535153812109045397714916317273661920981837548678193027931590202744128209137328622671773536453226271023922156830791990227939048571272574673297450638485497569214641552740221026054574271404567575074031757560696109374595679773118315464792642686581509263666523155562262557455140900433812360808981533460658275824280941836780434086514724104135198589123688093520985341003296821464513060530875075474155570776735747321465787002901157857397903577285456785068587587932602414772084217247424289431337735546764895472415944299199634416463649926569175137867760678762360608388835068289513185686447246232871770163451089185792376586395357999484886943072722080304875142639677649940262614050060975158984811888235013523789251281171112653838875493079001601736758033213146676454857263300114957798882886366618744025720372499775710611230738757025902532969843937730030515238341099897963418972421353532950927077948841671119912846156047080993392508042830756022090866420439983242534525160760676093202885681802884480496150203490802575832221760332816491912806870386867486271735987881951048275405616893805135476350703787544007825208773640882261881302473693986995282226362297865358385531272384537306130823240421003955020128627750900555159942984849865036487042690713680524695774513044884908657746001600741947974765440448818863470198169070503715333874092132625401009287164068755042615654046888527529148818890406975221084704305970014693807519382689521809081596898309946652050615093231049920445589239217438895761838307410442153330575414392350364710559035275089007908958179803953961683268782275453372158089142850713487302495460358964415226587298159937034428386526986478719378997974085707708666706791174450571180215441530606983255115432568290945148665577014756730486765147291639382327359494679328420738920822123172870050324512604250099292947326117134098357373612374089355923952921976449818426978045308825794142508690444589023285953586928611584432443153926568622217109746706468277535205245196496390008382907094283656256275891866881725306791972742351248685478444113520454273157089223244280330473092489248620357456243836385187713508444357261534590072446836606060338757699915292223084421215192285638986070499978211009758765319419844754999393085510778174887526910877231301791681813548147966416264325785439457294369923040373730693212296473036045454001853478345946314223989830010581603338579399901667218737428381819120840372159922245160795696984207174015760313118548553877913197170183594707276894184163686160839713117066221930429051059557747679612050859715071933944232698368854619015452289669965984327912301244992563831095909154535788627856849259019472900100670198096107669605175994976862788329374570202554134554081713850174116930103586280033028619064778548245827456086251688083277970362526903271199673771505252657505419571333570218387003837267644960535329296992738958840196282299543292100344299389204864931707334953483101413039083329255322994663674265872138042208042643884057422151493022630262167357949590566847726998975265733521123677365868854703006733458540221441392189499563466634050211502484207562521135671210354256685080275241424111552846617202798052839153026251336378005485210870494743787411311032234328574820119696191339294381544932825425995200872899624263248836538152899983597579598912296115875727336493320686420992102342446625932594692426852961527376735410242562494987382186142849966556074957238558648569620407176840847267857661425983391908111183392401003534701072246194707960573067987968686014823361527792509326535916802730111977989321201503251069219483133312342067986934390914445523995234975433029747419309173979438936960510897743481361759667551221797758989284193655574767803559025100788062078854471337023032505768192172858767870155956833697061960003203201411183514253031475793122668178468399249332380770517104937976247357061831552016561930630873153751033516499389268540482679216189943620581641218874560347760485973642113261311152719551524229241724871124063644561248064564679963693522231677762307443362917837274858258172022453115232021817310399659419869243588469461048573906168894785819756251019391764163855983422118039419242192337101303981236817422869144107639749278663297304770714417601992978288717789587226062438275938755480801159826346423342102654482827029472022420949422061330422186405400922777197916535164265433011842679452762752793851843471827831448000312733859490953965713944174867636863100117359664709272199722550514764033863799114436564397391871202383893199139701842682649866702112514520871634858975665982123574162528526504345610462881524295737780691628052421248918386429384378062685952022253923597992166248519340407710829341104591267246150940047239456688710826282425080996765602140874991330596235123957075108583410730949711900789637470058424132858983088802599604989895848000448697251672757158961620608143688483977431940887579563026828259715653314784403360003575053754974251867778314295723462463002587649404418914875200363650975161088904164403287406887975990560538683511008084330487141576180005534832178158428259467228159414707218147659878062389206581309626105384854853282663493799410969221256949239014838675550885778405348139763736016396638074859793161178426228307750649060998869581269625276234361908540183274038933283006253128770165986612470633578043105031521263503387940511606629020320248474230535099479114267321603408992453581024439567676630541513655636998887671781367154223625632274731753963287401369797832992492539650354144779154266031302538001658062715153536740241252138402181663326074391589742904742112032551765291144724343302275490295680859288415147635280776445772315175775899401367426170656859076054472295047294439022365208066407441134906362667842395650684168404996096680138177757609067378789757076844407174313726368701145698192847675822984564023044149408022627972674465451706552448386710596645543304524002030332510995435860596407542301892754809347371314881136337595996739476562307583036849613039089615138877390708466227369722359294016263862608467220577257224591588922116442782081429287253884556038052076207137107815865703157906448943301047419801308079685001532290344636114345185810441975305087080206356055920672034689320128256739147822484736916504547403855039702284676634824314427937926049815360937730295131472635044211584011755607905426213588048123150131967801897709119588849154551377394406263975041602556305846045123540793828466080471113463008945142518796670806717925287245297522277835628682554417643562361523629586254608498040480033168088336361042285384522918801993846878197517409904858044379345728900093696853175603202924516589658731107704635232026798808487163488829229724532127095328099494371069183782406431335469924016773930936713484470028236800895340532303368422159274374766739769483781197519375683118034937643149680428137001252096326638754289977879190551002587609062589345907739368088768426890232473992583372341542408409459547265627536460477682930616677496636280395036362431793909583630124231940138324985231884769316225336279372483246242893691544698993022386638929578779672272711766919989197718920992185173430846734216665859340984411469654853530458008552241138575751075693984869245453155938642010115694676152818042735050782531999769468531892889242357138693719412237804669233193640906414713239366871599897206867784952503256598868521305062461670259671608214221924053478675972734722453430473354973070642896299953311700386089729586092216970040406394690676076608046333558687838709265160401690275779426197198507582419119033129538407489036856768434861078704244695854859492191633150232296010491767898364047641029190940357046269627852122872118447930487612505041503345040552067533637660750195837294608585477056048554852604529822487197394332881163032043242205903292620424158457790587956458090236089823345403987344634482946739593355935515678867272576072119522530853113636476279518019793072030159877581735021581315026674032989135356267855373832111455269235047558753753324367376522194962789470215870941700104491018725949114830775861386950518106802584357087300102354844859071375652343159552097167261204394265802236660159317689199708925215251432058073449148283099206357079868069120080800694920973910919275324496544353302477992148580681440761830545636200388972704867539191346416312501162086692107420826060229055149793838084764389313531783470015105192838558059476558189549080617745073581419562247047717146196281928533461296085100001190335497806523856944246323567863744095573814529039470925899070982193056778671467492528006467571845757712330675388957137143412422310491864625869168993326833675145815690539713444156641861871827633968928556861021650452027615113285785481340038764461981696951884739725901991892836319443447391287274234133777833239485988902452556324689961663664641206986102472957120555035470247103056970800576523052740026641174573208193372007696714568175583860201064713384245056603484060673759262549043650917335739768233278385139220573883597429049511155594643708515905294065641368244203862896307618691812728583849172493384481053059953056457764358837601689614514935848564178348975906903056091996569132814396065676101992517158503064247395082696470136835933595492475862013008077986825969357435360696580346146437457187782474709334756306084246570072724545640128279617437537012366481345788581832411158158736195853124060700864932442111818998179084091805593550798489700984212585853731783200217260301181105608864152081795188543849756704188246496711896815853313951062612061507341432751450950194253653469757529513161611842985171416757400556621383989306690805475704530833834245309701547895081090537980217872716341263001475482079431225219157418963452774357644463433039386616008013441025285547844849056195341794069886138863617836657733763799043253166082452445731313289102053365184248214558015808838526581601095320236110470490005490234339015021148352026157233688190141048221581840483145003311463597969296992999024897003311114323084632872466341229741037658946901384831609644426521987968306746828414841465788147568442515604651124965529578667268251934477247611422828141184047722628848795373922517133527092398540331382209884191155582981709802718769102151378017912301622655070261634103575572735762261408394474170718624963204133997486761282938765657390451005083320817624400600785119486624887789499123741456929565177273954360172876435145416520320866987486352856057077024184756153094571826347605638897845422625951661940598607393406243000949978020826986103059211321330995173495306633698843454069014564015869709455350067263963274492262942341964380018683112384610757081251763557174253881384913840517330110548866710888145109736596659043799262297024427360998600968290832166335068371605778548822879238208514542055979126226405237469417827403370875009814202681661195644098048797292988427664056408691370584143239792564936075419923654504217945435235345342149814989474656208776596022731288305631686924300212420221651673323239708349348012346362070920586227621052685873177965007995204481260309707666662319383728007613299339593244281373229182890269382701475678604887555247035200052143512467506987418053795120733503590416162199361231894039441280057158348899827396617100145771260656636726434948751421102120036790869404398562072793767191800315723216387035930667980494248403408830902366328977941325505708481728881721270535896514236080758559748423334554640336926349798342516608547638442561434171775348426527167609217918400601645960850911521513472959129102799322346723373433423816824638003731233878972705354000382691964118913508087333876369402778597869156585229097608303383527796391805294478235087985089872651092753936449378249918725269635900171961179676149397682825342701339762540215123946288986292255230661452058480969289059021559226457004166009916213599339581215231775535155908587068299481327915233033641175798590726055992092609451255333499194802217822417149581962881745067537000852839293128432627222083184314933778399736716747933207192268357772410802655352992886283160644160406459642019580373245655678393498235409797323374959917044171415309793627679306973246242515350561941560568918423574393229839793548638932868444989481819324033520434891833530444015118248534501197965826713081872451496990373505133554866265754182668463415855038908061528841696771748077606955918716497231356591128020267164939998101977205809694091272276203534325634786126659783598881612720180086394606550160640328114955457888423188672662282351409936276503883448774743169597805382727142645460610651705763538183634168565647699339315828279529598944490234922857617577549146316579710585769179965079001081455555217490601526296881910511836206192299489619439097843284840476711594005936191793110469728193991147802568723819626667966652684487263005625817211245354239485844621475427098605649499596298529445879988850022729820585062849702629981894663642346796970963837870799089344339563669633347460613260605520126187340901918421228561370423135767411887811074900766147698517016188078426699524740854127752764159117223316947631281524632222800961889280118618845012735605708063543145173498311032846776035244868159067875556066081710587425060190876689103566403341792226522534933115767052074586644500142701627586641371314452355604757562618447280427968061071282525820604767120982494862896098058687767174620308008072730282253788022554225818447105276743795879758709507743271019992987905310974837283138961349972971752914478077324685862526472718368115689978538318673427079572884720139592025790979035872020801947296090849564429855271842125675770482373805671710702949355742090549725292068700445869760982067500688869271173567627262410914759573674302551888960966182889211207347364175169140558133865985758610914306903794936362607340264141903448755909279493166082513359830100501165288345092329600601434385148399539051377517262768596380142732859391724227554786524266239565481447725025349497365522204541738717571020452112378679738453492790037035701750110868610283260217814540279293759254451420854920141344453222067112611731533208589274564170692910911491189626752910663400394908741710042047864632088082519350983086371102479687889383104665031422874304811543955315192699176289263407062821186423962887239100554850009702519842021243771732775374758285601075757781764406165543735403464535456271631912326226227856420264140052521387249267739923459825770874144263282726710207341095797186727339087891941146133595705376872465081362507180322241574967953821439569105423146627603587879909641382308572106777349894554882863569605152736308681159324718794463113975133696920480264224319946080236513292709364249209430268940861711715969138918252441029546852331169017476815823853694323190704041544333465554188701136528666538871565329958853503355064731818084117133739764370536061265127450856713636190662554215316666912264950529638607487434675594617833067952635734281199797770453802601341847831457006764645113791507090389370734847451860560772081986169246355464607788324032242787578515250486974696583216043425064680923926185585453309090517513285693064407226462346960376751796086879082768566313975072915455815693999063187312981306068484627220681283738461151728129179230162670177455049395085822607358941095815932316602426116818496268216276994064026794558918908559969692976644108195681277401936252082749147867410154872928462605493930207753714592564863633009344619312422177746020547492120847375246652289481643755123544687026969410750245038698484383795655760519859571100911727483481927459511496459186684480988098057546044899465941930532461537485281714189502877615685042242239224718091619581967869549569593414407119789959421016247059210078184486853575299217395672204842747695067786025650467580370726970126494537616136244839092619796024573108694364662701921573431129684772276895792822913953554793345289628138916892157033632023863294161252771378397662982014632070878809311315978805776277820559540977733958404994470932535086525903220939085707697375747009172168831022104626785131045689793196583186090332797381957735236509811264335305052975141528403764860499687406844483866582206034601189040887807255173473368208974773368434254435239901042418926360762942919840831285881994696286208702096277044226458641769029387814437093699587438001537110674593900843545534836123868488933337189184741745674573389878656661417889536993637009685311967939938881345252815358746827299029250237079789123713024186039936996391239587073642313035230176419307215179279666558381835847612410122750977845386127430110002822405163032043200323792271922884725306988547554919084743544811832144610810942172331112579487756090565625428721673879191955702805641294090112326866905878342412807206817951997889778171871647154763533457105561405293363513324251566387694193332410063301762100059721107049159747282828552918670181961770541107970831983511022141557766065918021856419113125358339996992302425108815298304939393928119774518053779180424954999882515416786819359070743333668751823414290678231437183052014281660835062082599827026506960365671366629083535045981148452869004593625940926706707611422391704630123585058303065044200318829429853142473619731511006158812883433981619590373242393606226732687677043215374390043092017407994978443595137060503177029323136281856235505825932665048056349188985972935958926627435116770098960464637319517228973512566044433056221247122254101717169673850160086900202232753266919202872489762680019836443404510175725532997185700772151511858823772039190102386034188134484378096312669324186627194209982745908474376246246423797681815530127401622914055465479750184444646193202082374621901600313358711820848781629072254972973628703398609465676808183769232442879613079868180885466071663609474069788116090677466052434858094087800472614712496958628912880550254312502896553631713705335498133407394362716746739202995689631564752604627002992727538863433975090428590040088180093304214876242796771146503457068252160383405833644579250723291914810511247875137150257717407661216558067714014952266186039930703854051129229385956222949709759599368885773171614911461839224909766659703769516160337850263786807600166719321726915291226753860031437866511457001391094952803763485505440427844382853547872113196197099425425047544790846885570263893877319007785076567039792650742474090940309121742396571626494769901166244868745801758557551851102830101706330783141412613720062084192741811750998385388564130039283441693712507498564067140300374781176370358759942435054920401145825780943024072988218465528721820961483848949628827237371238718755489179826357003748719881005999691676873295126709660939786937122397832100467142960161655084083586090610461597704862846026501262756958482873583062423770223578821387344610156279898652411878347635886293906169587938130740715046175100089604143236390258561666370082844194652669567152398100774553454897129889377715782494115120488455849415207782639813305328204559464797548528108151643323881873530507969475293946988229460098753398317886655880191201271722813364336884184717833553225413899061364985214888618767361054994699984807919111634774901215427374153632955494629665847357139789318503363279687977669912411285563445317167755658886102741994740630726096699207776969212048238729450327801923401028731901215046389510548148482166180017615622248684504153952422914620075263957688013679967418344805866888002675935149300419922401824271062676969743696224895100783956073799046626138387370684281062724240385051657529419284663714600892475900875732555188120996398681004334780921402269556886284978192179390566311232997582823275916998023913550620342115389493282668397166469896353579527793242106220153526506248319057664474069480162942887690030346053450992099929681239240957336613927969144471011742548080197891521656301063997699056221162432254489024491033916723882574137398059126457552110429113292613676423326026948569601267727229040942230419930613431247623789685578643160274763170132480508740830132330022334625503709488324231238900276532085635605041154541147500444025358017745917553488813801370818494203534547105766122438091521770323823452232728845177432485830184395864585152420646582544872393309029497690275172521941693305145825089455732873844775179073319322788924168763173972169170341756174802411096677845798766151282497868605804268138210139058472599179482199112773577391705100738755008988582127795378211132108825557019823812353200077455720479472423962203961598551457822888444408240166292486387859229799891156034870287104925782153303391038205307200135221749559979199935856277028128746029632138957600983420322593117223114259517194012715045033209452951727267634161361864952278072261786438619128616436112237972247520065993758992487839070595467995962550385468137292446865408791377356063692065028227202829180137193368994600595345749672891210916138623554443727075677105798366944633596080244171795953014813115374368483719289192078273635331135518166663884644008770458217117292979111651330688383022242694082367462805518645463576023655992763997446008234325122169018969507404571411623612943116280601910985310813731478211155873713306315399321993021648917021928788211839758810207393346035364937388131343622621868353979081880236711060925507272457670262546095382809424937401998328072623245258948421065467733522434567180121915335533684521998338356311126379472746285876975587399850683626742395111591669531019586426821278236697982705889077382359459694794274217756402287893945847703486236516792273743303817732662516809844388731628216410627958415171583951398451379652673882585585543811701503360867475207164385907266050235183552035991986987853968333256609196797245560358209162120145437146426756439748796027027802280983256922259883304462185695782954781781306149165838605231577944961799690768785033432103624514617165923205385196213192819706408365489857124107462767592354275710739814643150249955263770435981715215849941866773848460633695660418833704614130098804369695308407202845951136116717105468175793455746139091966699503279321910639590398434793604116760789453958635226057371749029144130298367660106792970575527925923845023308312531663727784984913710292067492946047021150794899813221725740883273081717955709429682245792315235981930558330533124295595181610929268035884220177138781879588421929322452634733632333363000178955384148083057640783819901684715292399856679467867563739184922320400317431204198596740361065064421516881301183567309274466059717679158249833681651227037762081739140115766668866014155595820977987388518528893654663041434042743446253331238845101127414752914517849166553949307225513046428215856625957759108460862550901669867884707313673694870915547540106316798496714376319860933659457059039218507516568207658260211063676745858554200219481168732839079066113111014634454883106578535616234667334908123517954200632835230583275343501597692905612600568511615200335176120964539978509196456229755522008579063650362822448249376220463760372244101917462463779987847369955675083060412510696767653567250260479196301022696384787145455609726007985972114172592710240598347766019730144038180487055828659827105745452668849647469220057273338360856588078900767129359084272312615929104973097101636107259103738009854687887976183320317417062372213333922274842196043369493494227760368590516474593430796224454900282552145421005262525859013748315636648622246615735966930327362848590304368449283771681033465429142162283489284145566150359213395183950602057003779635619265995509618620159404812451226702613814973243720893973410477944954223405879657017340864847511983410070368166946225500374481092484554731339264010411821167812000649404544726964336621913268934348186146104776639618852271333400120279503493239219653623086567253642599834790527321977068398735448847211448120987028289834995310306147383282019667044270765727485245038159703190482083239675365847522109496956723969459014923651889885173655952032016942187991231689047044148955297472893457883366355466376249101072374678179905956191837774863831826654814817385564677280479607577868243673426775277821018922432638959103522358867657558239211053749502757089963375724268472636984727848965855265542495108373331273528637384582476055420093240220036070534975095918915022414424606268792793022446719148576657827664582845722481175969247918239385926218187122848566906630775699094622313014742363496153204323644654024642586021683476993500487740153661588063055342942940259637713642634880307161613181886548643863095159205811388980497352021125586031374050198423954856592744876559566431640603677213256641995675663732019864832253060322436410961742485436244506217324964134075058205552558487679778720098107151490495906510039958405670147840014506766231917703431859496966312819077124196486225065339352325927213373460089997407783124423700137747600138806239342260149707352630528810525587159258544932566873592808722300971295660833699869441746050998900168097615578771300146364242074489361343090022244734822939347428686686031326695528215975881307150687387793891141983248204949714701347152217136481571419392129477555697850162539792221538420564623885867297000078824642788005686800030502808100798103258798398334676306928165668043548369947357095203991016459812477836074582126991545642960077359360724619578787831764554771794742656731005306930796307424478061799647267555618345033799744369214515206844318254776365153478243861822559344943680451964591143155005848746395128208401829397360038200588499860399472113446647167390492001670273224309255688706193762885745445943801056665510047860203604415518176616035534095536707040930000696561230247295497337681091710225515126745709724437596790111516853052927749228817931373171956522857064977602910343891617593823807319478662584806431584112801087162453198673788801029025482379216746244320707567774730262028614279492605434622762188662032440734509461364639240353431601102024281013866945274871435905935665857397494396250459165567107001099314128669739672966031433375047269755689329814927157288174723502893460408412127004083935425096524034922719235501558226999573543343673988524384179796318507679952620495484646665406724154291795456126790524377974200545469603941893614575240456358114256031866989789027913262627026665068341391737269811033026988255464185592820610173741319381214417549400571964227998110193473314221997924374124380214296963211733252885172335820847078331573961886966679142358329973860295907773142406063781292373183369962139252216373514075413259383879753839027140142440455300411977631853808803455165012469683884566588317992661972862580514390133464075898556178523465858194521093328254128746550832854963293809568009603302809032228687407163866869094842185178364889557090204202271670342942274187222335406713774821725660641422346328212851756015890161807993604862697667103202073576558002355725840542524160604259684859868036901694824844889069611213792741693612526007305004335319499088003167736246485715157533082056975335423322688914546220042484067290485620008113182735924109906465151067217805754871648118735008460871485693293330814445577131395795537774771483025137315368225135655769587430067774628960135547468759314751161592240979570436187695991740505049191179542129523726877467354015924012946571679957966626822523997715393510460472572142556966254760477286847759705157643449514295431131227841361007336568397112851422651243830386890831594823191419973830260415409287448509960284851599552708262581185122128655720983878893170190146511473540230774875431108621323639752229955872880711345835189678402869118950926006440996983125591197804311018906234662308239896143813302136773584050070749001347265100234311900064680094053595330110596911033367962346574999232594875803104086967406249149067814248971670109770123677108680695030784169487390657789936439853470189352760971178632873598408848141279772574162732179266304037970782972945468193956118014483654784095106707104979600875476820525395030800140654853203062333577876869870215518654442751599253554884660803641165891713616082531823329648605159559753042714001690129097933020610508229857232050873819399769224573850236125465251187587715015481158479725252615920226828677184104155859816472478924784137727318508335974773927525481328216243293795344812411101492632401707583536666478372335966914275568895262117416277212252956210350879277272975486332962350844100650188243824836718249046767967878154113664934097480285100731684068697690281090652464475607481491505622939582605266342536001119604177416131892545661279895633656495791102565304422597897073504295355396475092122603978177606489163805087840209862270908125252731082919431414538445475323637928095489666699108708072617152075356865642464173897529478560351029670348811838330727136755913107817841301578393691643366412074502297777019878744841737221970616301431901355268304872783381868040183879256386127530883986199141069149982471512355529467797366080666346763951568074874324582598551672097877677808760131924291288169681110921654224419681156755925690099160053141135824548383177611251991205418067204232228803227047281139845150907686101558103042878636470053510327004281761184925983741163476642727106095725425397540469406316202769596382767561138196527699292902901559570897034762532810657122977306766731908301236393402708960855696350916919543801857827732777419411040477071361382563480640709945664496300764043030981167622857100054053130763385316474493872046939804289420489122063392344793258743315017195869851629557658361499580329003109316219596769387713510484277530404238808060240532983711786500774840268909533301432804875693241973866355448798781839941838937907958573616512592281076394593190419577424016252978797291181828965746854423589781425241444653293078503484728481052657398291503908504393999236413425360515561898988855029940801939830667096263368722386008185167746119279224318559055862938695642705278857839661640038175662722192211364261054466265849242655157543611489387648674228089652077062940003309704687626918747472509739436937697550875395507713468547624081985941778083733701365795921566281180542224568885867994828902432394304196780902924327453996469631713940170390291304786549975876144002831637806293669042818304642378650569217722737198719179544887777349001285017313629900624949978224194598771007774119788865618283208268172198715118900975151925779510467569382999768332708429310789203030955474296426141380629903682506650629774532005731102833094364789067419607520384464949545102679888705657550313471351335368778895151928394107358165188765228696811343897121488658233877734697682622721858864854596147233956504209621065265164454506914246231628767704478789800067027948654505668281641617187719568361498730784849748448405828091135633954891427848728044906095897432472151516951413655233346589588532681840600052945503687156829032213340792524857336196601856627806260748653567486292141272163073031623635556973272062926183131130947800629816345430715331129792394418955422915822264650254208812380331275628057096222987830222787389457611096383651814943009337062497168201018929963043450041072113132135061196375328233719902735061573420618991987719490748721164673223059997035254572698819444845780598497087956435851278314186780523131467454548246995233138856195745840795876840179654681232718704045860730082967337714685861483668525736341408347819365279579930311505359297432231797584138958488056511133819528874767164018960785122981261173483373273311863851709519605842097667586187565427204478231006981321766956868596918794082983194873930892470681746504620980939192411058310921326637397490964310202084368281021261466276991656289672620677630593984697727975032189916553047796193367961607377807139296398713912105271404307476851054011653008583380343325359185912863482272652746125453304907332771126966207101213647789305957877972273818970267330474472079586765790019026398084676382740870514275082800657669869573941040888587673288153476370846110732761976906369201674935579644717578391638985299135440251818021859138938948906658209434377302315725955632508213558343908588335912121924945291260131757211090617312372262241182080466927441054121333778937717342167380833694487540491943612710959059252315104939604536412336517707888570716304722382907476023004860262583485372820229163751184068779743048463140310918299909136264098517210003469608392505474556379073236324274850435641141374731498459779371346388622621658044319041781302407959906926336458498191571390204461071229759412182685160882184059868702093560657660672595739375742023453454184769292350205270441744522072340780226659300179251247442790792867645100057455087517449580056480552595055006584873777572796630146411317356899500189854720121715581645361676581394267030415415681277664906426917028688183076751619000433745925945362224169837144618189725087174132634058213120564860598096815288439497717695628358256756986943542660123541215659360653902365074598397249728692865353726293153323734809929037043102776080289926974342910214779073967359450266743601356652583435682123003729285332367423967050590723954466984031473398984898365346882395361433166168169315211953902124846351886485389638553314907276749966908736095582071022700975129938652678881288304700921007359539876294217579021406628879384581214411783178403274767267493606963323250291048006312014249248273279522436737665207713512519441842232373267020972600396795836063917812757509874091224467430751309574421735149187307724098898240259819547846739180175228901268446292821282898976195799792943959551166134730837491220863508427952064262875600236433291696169643282227959510031652743497834843090677945184938713598576344886036987724214740930437195160135453268941117060108161656245546359399639580877926886915571957515403609014167561873954059807100332344102895086461137468282818507507159201393978441017516326449803998657647379307158617878232895231200260520149608193553305236047336020113488273801437542140405210069549725082239823768859210208367846005318288597522309369649292895451055737642666117941454414487995896922616312550477863972793247380172995318209256624223738020477831131908065684085808825100779365795090752338164902247218045719968187344556572896052135498122910624735465086782379044642929164172142454168946643831271708191381503317101629483542005993706097598026898997533194752988374172454036784640364108350751225076145361509973840762505813093435452062865510049159614394452026706392441688044024026465552800401485190498406334130154770971881725595283616340846814935543505861427618136120583850232626058071698568418697347767938375925421379505115380759852652789598483348392230913881256773915290228553413486106266162506703143337902190845133430293955743386074351139417788169743614040004882059124766950875806656276595375274468794459210031527171924574679633050993289009947158792490027352759433912330892080039959661595248718974295691819265958216901278455394214843379372779793851857922583501064903676628668004430783549626124761424957015977611280432573029550513937172785499298951012491990880523903980384293540908558537254952691702235773973636823940402717339879923803144227376157935482319742126978016605615558937464159938138811497106802099327589037705937669379326535300586014082651734225586242100912992115041684863869069785806627664842174218022032093490889556330475937271964064161406191573185218013135600373623601508968809163804361713191828843990939476308662624047550425829969949927872425508932936402146628393688622008421462774639666005532805254519262922513770521503994969691439177636823608450187449453665930945193156330068018469999117903998254719129325347348176970019838027566407820976682343905571602336396010620521456481175551285945861405259996315584353752771171427290337218525739343015135036307321506753912135570682171136881679775221263032772243263471622258646568813089970529756945627314084694314175857348965038277786336262022648611939448924054233508377507729354019779693974893448524867368932170698307278471199294141171876381978608175220198287979500514469065198892554651060490804302759698621142541574051615874206884847713595562087509711669169731279206536960256552888429737540397943656239977481812499374825281295719275717699199074657731789202774502223200391703271334399865781091765802062201544981119189775706935262978047477286836984606220572709272849898512077771991702494104262913286440676948625671912420890529565452833556238906913652905388720499195688647086941872580308273912246176844428551823133572828485285646802813433144211438220020023067742990026343592970308260941031937402176494038462371275661637449968803776681318244711203007905608870046696561844541045304322260407834388101088442763865531040690675383854261739322172976732228567856644237188963741218702855002688419005289277987699066244769688284872368616432220589056349679400189946318018935740727539405216216967514025421670724343450508039535253764440870128420852793234408723414811435038065950442556038247460660099449139905011210451128193540945370972585512737892800774044385959902995004785069754939753948439240881048696694405108794205759656970896471007398922874686854530732412809682452629082264588515711284415427158694490301599195155944910736375913528542456744690417441474927848836866998842338632493571125912436613858885551575319025283944068458851757093040185134020191162749253063737894197453064040457017630562596537017467242992191664691324563877306746164594180472686370343967268440444333100393813350916622201232946956904900279943782822854521794640289098306435550701633298903537966165699921806599368863370571755501310636163875175165739376753575662633519686518626522940029112504501369529425779335378555861815454958388699392653238642184629940530347935912013740832096704971660188382803666013348543275564713880247367486415142261231524936044648425769630842905517167944008276211792327542857966901166572229652134992848921664463335100904811730171347644701673805927061220576188177521447685653367200331586356886132758625593029342419794677409956070714606140786252973067500163304214963923185305638668477334843118718798852088660942820800745957929734979815790638294757900373904506741435919432182081201178414889350860035933369371680496337945974641070358514713482424628471768275617514670652592954681942786389622939909031365118889529687102940470750863890435747949431961683655326374027411561186776275969725093209945338984437318621838974694772973322296464890738080722736010779616104494934866556050819029381202384496833198186947125487188471657218004737695450640376179945525255484349451275745403664941550326129697463132779748347879342041335069313635966387541505517945712768881196726466166542725345195296937424396902295059705123605213724075914195458476831888594941460199969547509978116761396429409759896453114403820889841316466490997717365713554235622970445828077553952979062611965017159833614311468617728556844896364571108425365596265446156038406883570575684425769678148259857708353640908506521276713730896277528647053495474660101391149137259643728775938494450939045494906108171192998099957011366255260892061680823502913949220163354336819907938707982930739347339710642116421139921221142816612095823239059286040405716740707138737082280390641119132066803583272188958166975019398339771353322822811033207595161503147297779357658420562349774540647796290407995093517913837757589314092789277354498848590693559825127772324449435872698606332943441146479435698961723683825643068671566215399408355740744360516642379959960419129294117736914528911890961809657285269004080257641983038329239584062370718612591032226942033566000888167714273954961737609014068302834235606723517265555505694705025583059143438618853558895374039220066916038978850166457857847788414147164274948241046714799465818636175280117544580731271357037954810618813103053616759269047363301394069829440817576808801447786984597306907064354669795908765047719071100889706862141338535431205846636112055929055478212398450192331646516982606848020145458709080927619004362257373050127950687898166902679634234193607456874456638290760425811922659847099368369807887786544269547703237381753275952883527094898098751956114631009878188725791438710404108122144596642437241827378070656339199547088517068138545910885361632648853749643062249091828597427224016877897053542760965936703920882153985915827975151712483604448414637212623098492540407607253859689152640251153036413024189978209347515499745973474004749058377785986405271578826038861208035433062575875874249673664964209965958877582767730212467763452561361962088950965757334264560054672048848330728491391659506684874162462309282090525940803494874389193676368589306525894953468660684829409674176584988482208405178984366339562596506696248385683538484091654883004223383359559141150352860102679934163915434202919911089530897081112789187553595377986391615337930159260580627718885580944664823487492057082548170661008791645464279689621967937425195587907062792637224892785048151350656395841741418118476646032885934839265492362417831498383716440409855476820231374767937776353795187043713863967195775157484227035423795620151323819506140876463812096450465319870460281531749753663940232601257540706983634519532939693429843988426270875695018529225714481318421170650391013981118868383359346370191618541112313589614881314642428201013799665186904100467016580010070273799905266507671494197985905999798050208027915751902803470230880837762395482482726281902511103690856181822138898581788467139623323390616523189304084160074186933830142552504943028380608763959985136572131299423361031550198086527122934271871843156849972479625994965153023566969976801511309656257462651825261471749111559946868178366643150005751146524158772078318649957137016015797084236191108823999491137295862895838394726929024547635579871050318359583063487661356743757520087866150327612057378620378710248535740501253781584451553168837564409164321004624802558056746405488880648348570295626508114997341670163200622874644120082561625482723858058939124725343421370003171787107267665465190799678588655426192344038988140630816297924011839907205172039044831602751600451044007174165004440770986012756066060959986265854556929513510605902009767181466254229551319570944950882056636774394481164385154276691849999642941151402153329092016051022179075734701202913647901643691636570719145133939699487459784568297027056849511992136497061815320496114406451827112414908942027392950364293043117277916397284820279548533647799705522091782158394291350277203397265613912708008105457595803476018620911273251132668377939848617350651601799889969314496272457459165378692566504208770058474860091144725919150280499027517355539805791307491853519239688924661138816600727040381608705976190693532544540823437334113949378235827206339693033036139133555446328624730603002486483452517702881239817111157818748525871531603982031877781402586440974413356769533910458364640942213332200927797062974065590511313334155837163825247808865476620029709710402170169030325015517419360102187587489379553106441457077497124728330250488288896619742227336643628761151376937033540829379146592502236372678052548156985000563549495485941998382723475235263025867621276828891477634751561952036043686843002829069468339548986769399637735638459144534157158346534425290077686885616640337388750042396939171210501598896118655411827735276981075943718830244884412839308560298489213594214570990154706916360495177773979761386901836714323720888984908634223733296873273030247852833749052143379597242985977324623276765900744162403526233467378784045699370362097583177855846173152999740755656704167356577554358562528861273161545786929912091163701481695412014486046481020181890689610372271756029713344222566215567937829804028552881586431580246880522997383399304756763738688565112303631709519613261277543138362285066707384001899197742939720819348392753498333049356654745306041202743362941173523200251496552411312275017430259223594301530137651331269905609599170143327047437178899147885248177579244858945576934098164044623195055472999898884269950888601032194169791621700592123403448009715209084675027875938115723514825816855421574574347417406076982118944399417981735351293406354721507835482837880214574921117683030574506766331536158492410938653695118913125734025466232873510029985649542335787318966878787239943876985148021006185326489514023594813152480419314184845376650007809143350173249265884580905476050956183178258990991421432149109541354760281491674221209886076523552274328719146615434684904941782682879566170881850570769906659657952396925167255452768719227723273649205395745929703253131151605750579914190304997439987782912119804820930606273861603756852459916402510312062211368215660879016853658010453666204689973041653433600904004059523428453560750735771630153497030479328932638193413089768302905890296017842025897203687650284057192112205998736001047132968864068188208363131487940249452472461959912833932127051909331717879480695203651554373452205357882233988548105271821537676308504990168884503907876748434339079694524262367737033679067168674322781479198212603416422177267870460874145524782789526847961363306460214299321703666246538291547158032412207295137188259149945757277221620830280076070294004320669188091965698362162971173153137226419509095906881392291773002643474882997134689543044747706926360388769576432605255415418758910676813868785326288968938625474650659124088630334896847913805187533834907803518901542510321654273093163066849908658907866629839723346486895454348562920872362434486606482322771495377056674531914932887843155383670734850451215321450654368377977501693646757264006165464463293094657467424249973835030269460871368472172692873096183625740961150706664320202110710816253644246063929619134324640456003544988130211618251416186069714872647713492676061687656100752697326469847950853586016086962134722059855458785467859468521137952996070066609738495174261380408005827910740871025080432891047870029101365905112041285302201138451091084348443612140778999131883600333120318925361404951635034108640521438703724119303023534387125714572161418129378556301642738958330385662084491102687693263597332303630911853415085672799686902822923713617944188838152085648677169307686240499462648930119786902204996716644871109918277655603993859140478378218356298015626565423703872419788316235166098840662934352558870761545267150073138390959109410155823698197289141983159046328192893239203625349706606161120314789815133241011484188788960238149088296376110455238455027339518384297561815954207545050108743021269977809238552382007637376781719644149635109229552885303698563821174836579962853111758029005298748708531144050389489589522117335446021862779254025162346392299461475383413448537769324279610300375300631118575478768507429629027093098998611057455568660587910539424410785580192600087851844434432214666826438487300334339422497563985669883992492596687217878114613776034633966002197912785873657155215663175892430412938417346023628102174221492946242262407372647228338259663019852826287656659711104779571350811529380750004044515013240167584755973828704994008285190275026614115056261132694347967125640569355550797633327375736032346688217674448737502703239644982167809878729045533196808820678775606922271359962726789789345020099901014772541176878831705959502804135969717308299591651045178392413796802935231983331402937237478347859887417604685698918205878609583590633975029446291697754549674957774175427819804196942391834140787565859252112110988262656053160440379467080192395681885242897780005270794970045823571542439009269257335080856314052410681564456908023764904582894617766651496812270416199266260606962036101166945408508134012282847912374863050738886551267705383575046459578978852859278249325752675622442259541787666243827060616770940632697364143371719320786429964750282073610493448609625662035779171122108418410027414623057143403485555826360144523620208455080694296101453218148730379399214807944600262960017898986392481916799133879732708976682831109267982573521780398859132498909012264479690315668919845531767761338787951780323950367705960239340270059674069001002994156707011474475758842803797294559392660984010043120575586135499148244352170059833934497837933208950327109643599767807912323489791081550459480263541966766008260842600917915476723094100104893255007748007472173572422840828878945412458378022268003084606116491790112861078590404660344665234967374514680819389742186532910782740793721655345338560374215486157948851099351357603608911995408869918718226014753173257212499326604904671368841105585518934264442063860047194238244656804616971766520099020493611092070412694731674160954499178127094202202074226772066707576687914739011256538990115299972741376298655683960738606416968964608911112291824124190685197281685282616262837571480624638275008225664987150748004093855938274357296673360781944216686412194981455538388215302319548841116488593950203027118363026672582751739312568862719624378354351474979920056992910741578800526536404829116671483048302088694010974282276694328069311327032867436797531510072489215132141861653034014816026129539279211629116373143881145779164569276470940005422712378110138361697539947357172651278816298311802494205873574526775603863280548891570130643087257498079304114577461960233873746137103640716705511346224551612887184629642293577368638742626307928721150090439485102062672655311261443376950661825069938431321508581402196823267675832016917504240048391085861935530535956852171759394634536642685943306523045053164700522017145532688322989069896995631905843879413801374980871419030424549779038122672774252666583992896677641294497631751605348693658768436133919787281152532278723009982204360530475159531624661642220273796461788744477314511019801075712212003649844402158129156689525561521891863846124306665601299644016404909267887921301851557457666348952497036364070514957529051225236756594551338666506585831173560677172195786329165235683420728154148097144223625105461167606599880742259811629548563943008391009026963841776945086715348740241426519180022161234274741200855269419372097433214992185945717286015904673598702657912859486999167073439851834388274943880839995820137449674352082321564875031001226972140010918501955148784321203218147501623780055355356742717031231847912682551175223617860072300628665857989160712626655101222377922162724527246341762050606026778318806786530844564453710958657633054780147208762042280911951917364784977314786046398848139801270218483143033754945141542032435025317914473804583386185376024001631907034226352025547502395735803228980226689018461978442714545044149917805851798898173193285344433977306993521920576953229123701300763387929354620069339174036831779386418839904168478106734264053152866862274053702292118970919094307994157737863970418161215785264251374639450681662926324484185847714002940136852318583273379334996407098290318054943350831992124395362384986011766264503647337721066073210708328954114125950889393316379841761670114827116679604394837905038892850603128958174139472249095966374462702152989548022770911278812761582927815597007253986136942653406825389746451931419659144500765888957951052413048269556710808998833347877203805101057072715099411439101028140907947174443945636687163637178514518763203743245986568220396803141784322892192120336159277837641419445868990975538193441622801381550223359577849431415595401981434146259112795224703809916422209241894123686280353610542253050204875627262725849512952681838440858907332502816021686857227451110256985331282509475505570468412990037526348840863711763576410407046589178712767682371954554473070109956554367256238005264782449813757896140277126796966475822307321498828631346240933453844681933332081575171465968491966539136331056306036521873671931385500875750880373774290933399419576552657676761892437020604531815639824864515058592243457240368201598617069329038164547448078356999297582497308718092168458557165735895948483013827262479029539581959889288732146781333452007940518384965126165257156001578734115231014520166136718923886583986558582625461322896084975485759646289399082174400701971039293665338525000372024211339546234033114861461613195500111097958909376272941960057491191671901197073640691095586369525281715798308836464299502503137582876429795376289415833699474288619006098074595773869425132369365219868238056193216236721525479543887291207757224393677195376133343125567047184969429994055987436328119467390600201858591414044615586659757291003212903661931701923049801072215203538290822254853616457765691089661742928944306460587544779660203946423222313942154310306585387838503899223607713954898459187897354942117688428664952744370447870743857513663992120936418547255423323872164662435360195070686921704290679124458809733301057035584650078989449544513019119009829594461121502925535949617849369849173285695480953000132608306665498200461691407851781197768503585518460012007564019461041273027430070079521814872737495761531768560808461134530919213076264891658907016174466559184514235837569058187267195913405048793802036319167440107775511048965483863883314174548010187356805671375996634999535447443827299576344815414872717808899885634005221183770379671433850836046830476126818103030465037023636209654893259250822510930971511070300851534686454086897567892895002886397895894572888159951095841633458608870652167664034474174262518863830320402317660118918001387655062301069439537399196910726844908251634207579700799931124048427099437246771592858416226419281158567842995038546233796120368627586103505548062704820657659871471862844065419416359516735275910803509950948234643064339789184030790758933734693294457496550069731689265021663208262454824998523887103631462410516588058299257256345867265888828905663578336634992548439225303626999464261006069830151565023543549996579116674399128560771662329494796212563521172202483276693118393854634276662029371748092543676522011304874868688286696019529204603674383984822150467948933463033978786842314280542864283375036495413308204981032614336528297266387258547147250996478546927225819802949903935413256568874236879801251702442953412545246187110656639926465524231318203118163369899859534054629343721870918698530843129866472526968091941113899605558820442832359077854874857386109687915013659080129902887694554800960493974610375026618983006564504570667117100437972333449052271744276547259914033259692893707702519036588745881011143431531851855101922484276956876202705732471880041661266897408101761264296570333470443048289034412117146627204954942048757427096172906681771186909475063620500164011976767815006774730149016513115622884970979623529284154656114733483888366979139674723529718999684045815717594468894061091452699476830482931271049839300006884309413872181965613275008183443272647242741737742017555248774382812714840801691813913635071962393474576079705802472315567429108838616995446291588854454101893739981671532259814041314308046383879785958264502200532159544154659174758410266354295017484680885275818530876776503117718254936140055295286788516171128452930691149032832609527244317518481689391320626689065357630868496596770744351784737459536727250501463055135582482853098007380554319663316565424364992205744162153041930490031519948959632702269358276909512317714208609817748043957990967195508195980128429318740003061020416201988934131161520830143677200925362079425998902660419136035726121921797980049624442686054488212455783873912614492818868000806357176354307182363289210528203338575042029471601419396281914177636937996136966567454955275483072945749059274847787705572947706750552623253949850810386192481283991553329107037420213147932176153192565873105049672033864818773395237705234085479873780772764717772610234381758532350540756964791984712428683091784289143785047909527087952268388497122694518539166532332661626298288075126384429853400158934878721141389556695915762442597939931969726149536755391349366172042621275165788136925961678137093269217007788269336460033896270345461996774812464133449358766498903358598496409412090358552992765941060071003967074652113734109266955547902871990364506717545535097674491341015260826407335997594919650689655567735867046994766006105710330541246131246993616237737883399219632586106751535222483958011512025409223520563244154634144013029016721198770345134274689188737872878894326322595746137269329683892962563946796117784305020972117324645359429497061818211006459606515471364854640690647250127492772448545810852102485351765455270523853060958265727532172680837220034831360026343781164943796661508706534658777441656629073248758406118137028745548201150866457586401936637035590631502804416465360081705344165009937147984906572022873939889432120531991496946944410865677554860716610712008947297403878446953083683620091380915532962566568711244577658963259333540466226282508471364890290582248382237694525785534911834045939625000130272178763408148784760183404018710086277876242840588409471198208836243950732539356543597436599605402007109210907233082082795639962175615992129463405187967386053497122439654393140606518169127086934518007297786552940564071731669447165427988131633468110845718490916210278798147805717492034847581930027861450790211514736705426544049236347960170355750000391069683763403787177595845660610211184061017574968673891615659936467101511751461749583770200183889052825257864525994647326499107745947628190002150314422923813217531265540966859317881776872189881546730433405822960471891604975039608246667613666379170097964732631966932723620826217718469823634759702515147968121408716928107752668431708268972317674560339471562246913105371880434539576077585192550543266231578868568697414590520436017217097097267825312833876527111522116578250964419632252481494448660708708409757610115609547134909261132592572563834784102272456502151787938357679468643025652019928659621481861610105832648598520181695324863504829894028021335640534887503797011116309963460499392015863170767557946938690223160061287574928879679792635655053160937026318894798315616611800786193590617917591946382253705115077400236776481031922620959359750704545660745119780925990443251158064719506993258326782304632636041878199220581062659225128691846605361749322185203555729016397278076673292895079347407206213189364032023509611268499205237764992971714777059968351756627399629992546059327976113604672574684369370242749954709715690948873903331934918536002622091568455302503100135470848124435731902991831609709593184151916432632973310974381403433267850906123794896260627366741820986554975505613225880013796702679170168949974323357514106163150305025413030796395703873874300215099745819030233921732924541170538465612405110353563853378882521034216379742614137968551902695941630159500525560134832324021672990094388931405868043636415031066252868712097328137407972560385544573242343107328084684996764398186874544547121473152118035070987798485129813286957451005990137105688948930643113972898022830716792721724599337574990164198113504259679666005034502137813627264701387269534162182979133924872479570824758300993131323395049436506353989364339848987233954321817912692680309955123886533481553226121956094118204163654279611964103110605019965534243912415965005585204717246989616391338139428047551708375475633054083990787536140422714022320035650862034791643535992649888221433317330905696672055906467921049890791841880569291483121173770502177064446991055912428868274548046978105945271136468582790647811615758147261695792824983830544518503262010920697706792272042063377445725269009622660205104005854523269842107942780780328522255524080733453921780800017775456643437259587266300839115155094610789992247650329264851219704643100582761752847371607044507466178586472260954344316948212891617003969023037054523418104848135971312133199504069642662160265894470453978852021666432838423816962450431690260287316159072888040128073225760525502066096374567927297454337091457217010500787709399390062855669558146828744217360828900618772107729988995344068402161146932576084132388565309061617482302710023908776869159351525793043560364572526534823917748880352801705386593102454710666785782543000718326619756773530683116984826006055466630725772608069773930094449588939892228350250735938459942154073053599205156995971832339665473076761460728832192242189149694315789809208341142909785962312313285590873092328718758619620984715266796507985085023158867512337112299520401596210571593043462544538063971545315360486181898388548773849067588429781521246212786462847209393112851598489523912360430080611445488483971900618512007707872553856646453075641936967085340650955801957421118477391007531406673955626339538753040727212213265736238575014298625305877086530442454272343697367740429056441899649335831149544499508544420969693461700177799202579017921556717487509699315184399438329735345472464137248591632818536734937351173547693765555127096626623362234022618291015297353331657656826217605550143306407360116920721466074593686750631220454041158427775669749427623107330852378757697493565635078703595113669592757222496163679952575409462609821643445932527675897820906828493167344863058463407203181858059182055323587883204871710067454342594185409163891062584714550660781514435587881819491663804288038111718475394580764694301198102735598937715806976262410697230159774014986129261830802711191114721181078449239941586897139242428738868537214049092139860140001129789178687499939737803465793186336925678500794899973330767909192538852446833525650991386530838054574003776234547383690728246392612214834495495290470772246909643590231680169641375014237046937187136024688807971256669929580570197462122241677474214496245268180715816165124505421729862805311340997577114893060075769504993063199968559054524352860603589584380183312834901327872741594231920654454607538223943159567155863729924391292300773764551061429725134640918601641268100699980004285937225709838174487318937451613221270975343204332538272050527958373257842729806037929728770159372696921444406183870020881613312833494977308625166369319166058507452277267381889278064236379436266557666922073992133427996556549401872624315176553840332166984548020137537598427580523792869497542190643873439489738012835790702563409588458873041734039249045728113069330882401361838700429054321689868039640816149709791522375816270960353784998966661948154099500143154186398026710215812644989503508556382376838208918522974028801247231341529889420250090738457897459460918654961609342506106128505361862807425990277268913714393720705888755147541997284033749594960439771546390170497146642184044602062360655448435951484444298284913254988383728023840418931707773810222598286729311398165922326557865488947548003983305141898933636897997554886845711057646863338490935215694965389221643605672245996868697578627963476226873057720977435441934681091220142342912438200606346787339775467794634089059444971751404942880823957233806408353605790081324568357499069585499631255239378870390815832621993025200311013744032376221814036799823555845074249500839514752329529858898628626656225549356094047338051462104637393571063375392029688324998966208305896316306356183207804689831435631829915380197166724466733464820578145747809407028845137210150180780721773663556636766115626185147486030109150134500144791194410560309027866596788270890278309907885208468550072572051120442301394938209022335909599172720565465804546786515820061248355714006765049993857755210935091592820984890476211667262169640858735323974153797024776618299589357835170714480513637300574428524325088515242236963235793813251317244120317859508927674998996810914130002933203062628713807256854158927654494549458767685350021432255730992884658296433537590441927368380774194493701684903712060429958742239882567094569001678279973567767656045822695679580227529459639717366938843536615917146146808232982173559299248588386069706892944030598274455256271253324256648601682509711969431594662909428923940633137437718367062182669824322729773236754044510322644760546117479816698375708768383338856490019608778658260822832096986825885257024067869971243177172529463618810024299293121910629999816083497367487104062797997154798991816901194752908231220685784222041375962955897338213010331922028016078032477150580659617635689652937393805254903563368807190469499571957321255897497528136720282401598291033188623848628538806654154011262078167093328344306478038069074322454846425806682076274864135308750460594084121131455491252223844813659091256056321534233892408872651394843522943355222912359311644852515977773630868686426749523766730325637099632376451426850373950254719011537124168450472074078763860867196784628129263101952868297921277484515255540688997570159089796319443586412427476229762841146596673930539378848582889056224481421298836611016506042377910333581921838727608475216594321020130820655798831040131199614407201114067041815938339030163591637114435826764265654855646514669781281253313249289532977076481948811770378810344553221504120231055909292274515726004348721135686178092148846663902324393696248967937448742119743653839433748518747463309077059463947378395096406935949406856994621132975341505654068370497187450156749692465768479516313131054734530610417560560817623278371062375917681232336595612895575986541040082331852158285324594049172464554389482209280284000891480807138684929650490438062453558447753352883124743173263849488961611109837034953419523243740685918866974442107513623714821131434979481608448489838115026652735825128583132380613278684489602162172005439624520503781582931061245347656397385459359401269028583611654491422781219499471410385301296575739236209768410604788996251502310127655069408104197824764313232296273819880837395166972896021208904479238381237738054734642062087587954018056164650173772020104172225287444454481687741558048865831094053809988527755620415322125108739600613652779694297288769012046860032798270563841605740000967702710267288189610822048239358872712397009504591481390633543416108073145251885037144972413420648776751964666457396171509991889412937130725920542328118197292982369035911558666252732599573162684424137194762474156675818020984843494561122262067740698960637998821088278199287748920415530866728154441130682956856287391481022324672401193033594858688121356088722500913773236795539463858301730877138640781243157233521347409460814043004861629665629171753641228294387279543498599331577948098606581393508145607845012321748859366563739874182299655514324396705902352069028936921290513333122789147348838584937791928410905631576136401418653824111572345818167026686693934656974400581825336950807284167027467839576234411332610530102740253489237932370617604450840294251569912309721194853676104791015134969007363727037875528803438113862527425695659617531761416011442663063641984628644188586059588819715471844853480502444194525619645827407896325225232942534825766666491604329419463057675430132464480288642107650367128852783733648910301794109304177873485810021019504042394577862767479076731322733957512573796263955843859620474458834522911420846085818150722036011468170240155557667799886356497912803245471042640650941860651960679621928586550928039002183454461054361096249253687841001999410816223197907241789885930799810797318811859379807839190823142026210025139401695639084755394195203503038383575837458921503497477197196769986468363536002631178533588877217659645853183017480998128358971395271959429804515198606646383263020224700721664498936528000763587219426188794474198726400228719143846179032515976158074954971894987755156851595710371845515403650969692140178002904060445519482780387521311590679390712658748819580092248787313089702235677097447801358781835195310279972237969522161864023342332650896084824734661494353037824328093903460439877712536990418437823326880820021709712539053744114462089606092989051205277304982693355275131459755137360873301961198974219691347508800984963628498303805569666110726381443885141896937814608512913403341096634436899216149914869635319020323176460358631929204185423581763132528854356060132187714323285704530975623714734514048059898363637438131778585362934465714136194573504204072779768673387580297167202152709156811884495176268252204925704144470933697286649756158218343329559340118643288366669334034226117907874329583281920324390583224522821457855209369620090622274141009568589761288671140670171370871733383302738387671235404541488828779189524591698040570518940827141634619771268629726618309744397986948907543093577619506472793946470547544717680155440305508400693467563703096440229488288460907896306466736116310710051866277858874752063200348572701660474211142491876701364049503419359827383924773175864966062427074148213705302557922157343285268027175706532443405075135608619502838433439504560447534716819780860052087492840613338022567923404707663807101527548238931936914487213572370322614781293906608870587784716660475042453601966985079534707749811559419672422149405765892497587081090497711004086412924608241501806449474831297803923357431611397824289865114624933041487305421196858080175764768144781194816721239178831246976018059617820216904255264112148595744457376662476798217913607230277894644550704164102828321091343272989074665069521087278375411028078785812231960398731433693293666966869172394288118657348170317066011898289912898904851696986861466505147637346721261267965311460730886085569221582407567243173671819736695600274399959255719695741200617429251707688469719399130898394009339838766333174254571213406164031546453867758968698994231526680676332821235982096556960758482020567778379627973784238664895172657421113062242870463739188113320336806404721361792843653092837989144113998968433466137047731205332309946512992037376567170105654334360275226855544961629257608283760777702408240025934677194034301336872656314376172776863095450722666532962719625559479641401749470223612944060678798690904449337946282921788457049154281416423810081105487963959223275480419594603698823317995058561944798909771075956334125707849401320809391566370612667655185749640987030615980156553929532787960424537274248428843644619510668754324692410648625033240658727194170149012305909157976058732536624260266976128388265725277075384920368013142879283961558927419469586173728368840739419720006822468314282925869741324185596335119979324532108512432380407052918487528258235471052254582912344876422459006915110593833167500856006575188924505941236949151905531866312660065137630178046037865530283798664410897404245430449492383004694431200665667508787251172496542627446303749718825276517731882945557410234791067043208312910904625658487667445215799353053547827311740902020000203869979790745147652837838814477805799377721604536887955689198735181182580924391934374834038608577713513016239327319451824554044423140107733615432743819875410515090386383618087267257585275380850993731772405704116369144831330723609103804741045686724400513553446391482419638337353428080003691759717208297319551033891768914373436317738848993701872679769434034729934335041284738419920433793755793282919277685941231646447823012311768797897034343104646986382781483942791681184513145999801262851073590178818605575895416225142191240970703925230546844516398661586088315449150275273593995282328777674179822970325525405112139291389505653821061261325851063565970422718830909786829459553235785662978755210349411250246500741667969778319551431100789112261751111019876591398367859952736864197303197126298070801129182182504789570645885290508823813783213483510735210983121604590105020962444877857526283200735748760552197134843909130743396160525011816979832753020300300270134959527176747296588566756113954997206189284552111065381426407251703396583039575366119025306174873296735295671233826129771765082167370885927791581745322281720136032753963319214457711408592905539439242229839776185159145383589000880026196319568561025353062067145716993005184609411076032203071183312340838311299576332828612923846981973202797253570104956253426647099754053672365596338463926776312904888347958529956413373554166286256245902988240657504487758476101491903514175467428913711856918542270361062743862751869350750957108946672749069618606832225974603625546230626049419824794479817354611902319593598012357427330860127704699240542826649903067868765708685747136640719467551967294517520447692962390443920665166576350286887492364612674728680504989889696903958984215836760380414646074221082998460426123282472127013341417720481877917090150029278882128677213974559332780757529055974690920270147289298720522012047465783808907779890118281779882941003829221342414224055269340933907467581378464580198350135058782922543457111416052308751672007793502148154232657612762844988542726452007003269727763719232937299261377394973170538874181939101054852102702293654401705549849893975843278410501762953185089590085281233463345894086427197666065089866588205368207210481689882826765434862563497698796012801096236609441002723723621002812797910369404956397964060481889464059353318108026617282586946291228325197248961392897958275368333294575689196158703716898446619541869167413357981939185850469519508766922370657558913062473686007446912676000690301076404263979979903093164033881581599464175908701952234568382208057259782366772321056402970693530092216014623881887092892012725024976269100736239455512802438154008533224151126715735445653177329647728211554937277043329869489363247708910125170637332063648837876333571464668418324307538948007187468442270096965607985007235430540221371868362988199569353298029325672448409685581179879951613069977666613811090894745027913730606052297773819061113018085666512107278739305405268991939336897054499746644560244971283203858582683825729084621950441295806353262175502121543228886713577470902355329886241184711601978155795563174088205483412372980415900070894238396247190065135069408979276785834922774354196450137100886040760829293470402118938554774771088238999207637056055637090826977504662756305617236791628312575391827337136573396879728678847113072831108404041929990304809644980902663244108561014625951094724359155060185340668634414146572954247112870948574508955450091694010892902509697872400586929484177850436800095293649513681790420083066976470591085309877168052553000933443495542076877376277743234325917262340735067883779592813341080213090370824952965591279654040206060881105344794957405319720318799795804935160074082516258545329175365554573032314678515687818661917409963194808250968147265000795577259062472902955540389818532161275596716560891968267067836958958889958628729497876452449244553220754371124968894624256401979019910497115285693136471166601572031634804963145911736427613247092731108169585219194479999201362967555266852078867619074012908037510567034901533488894724540143202057939105777814474080437210315078652613066083316494853471029075317051826916266251219030318049145096669857745829442725000911647174717362466636908330472244047060553128825292975792921756492226471110435197051798348727910897284789602134416182297347007950195557837096801153244017040665602511814420086182335615010107015829269206232947917106221172231315631896508064163066718545203648843881829027991739799052971577321721022767448346799953621048709128721851735480251568218285880672539459790870450602192017109280141759719490369761247730955507304549477289993023667188449332353843683977469685738852907242997103545189491589871675288301247944193549298198793285916324839419395749931338703633980778383629153860521547903852757583734043518254530540172667045384580224972984737332204482572839191443243018627164778992952005314368914478710973831597489268715406652754056235305662611696121884123986463839799653908320855059927696289905402768589709266820649712393648528488298563064852415979832777679600906619760467512652307695755862891774613919874699004764968824329702649436469302379822002486125942678565284682798018290746645300304751600297669767530222980809396367266754163632393877006741713484232234957941411656789043342459670302699031170602661970867158395999236980809517732902659838141393065880110027490876867222125502252824542092998524971923203585468914552593439667704026613367574736450371584826631859072704090634332874084041874759210449314870119933067732002851984951787508463169859545553985399775752006600707667890715556185405641189434684420150271401739360285265756221438394717838094029173969654362552377770517540606395960536968603325316583973829045282246137761445386494355646784776511230611004324374619421994936698839205213424221503835518560946415232649798768874857613000078661704129039100214523935406260115135230860480729270992098439994158923620033358074626105657603944469072369166003669451237005773883035639177658910902905429426240896786507802330651457760183951441434288135110113780559909433999490237172946625146097523444932388693547816550836402673521590697159542363334141703087017558450864044153472191696987693223115481097451508890385291791124187892416424590943984730633881627889375743553365634846804508709018863990922555214112640907403879583100707693798639285736690691285675942351405595682904362432214804073881258532743008951574582802072487627174876279079760590662424461979707458171864909926186949791659378536380689710653440642204200283044332339819495892659447048093324237340535774027063610162565067663754230517306242541315038018895510133139212056302667881117983918135159751890434023090758393525372145188363945350826647466312578426772010056806507382348126130192792186874793369496470754283025540384978039114954884385910453391845211248854730412928929472833534460771906040689733916938768820610220590481682860143348778376726467019908518578643903545081719843653986543997755692691879135671275762455884061698628117098070984126903056269428069967804395001982138660672532445467119820408669855303710589296739920205820642838149499474242805632473588880902390010739390520536567429548439432952447101527582796364228050255213462102146721625962333177385572942075083220140373327304693780655033880860728466126977556517996109976296459357192693040708521898336322613083839428749815264929675643292756796353673747199931387000779554866216474283632617713408211114349959550135954609169946620838741113572806496474157000092754255720159018303740788440803366809254376795495712495779393277472792949687051706034976833693107751092956243128643052672712489294262137232184230971403884750241688753584613307541822571193349895890021844979926521836182045489891259421492890853523851778732204618646960792301552897304264231239348890985049242099101583313565532444309461146899936399295117290344843272366470844522162862277158354413748511064276336064352527246899330090850916191287382133542071292325740812525122416376578134520461822827770177882887119280982710002267465406089337250665557761035510684204375098356731286590332692916551074546833675678619615859143034572441535607869553360642790661504938763696371879327213806748985863856461173231276730353590153083191419332018001023831862325467004391538688271453826799714908090304746785760847819680256871596778974477712583423789748917700145349972569378850819292934326996919457940583893235956753065516696896725885547529472170111481325995536976009154847929451109349501416782032956601983229947362136307246829311772495334536579170104712169931121354327895475417677006188135394166293035873025939476447804884365809955233465041033701283367177314130591172012272694740512458055305519081474727981016075793055316087406687854651937779871659707365938874862592995714229839314815531519559974766984008076118801976228492004816849517715590858536728098272638290026676772171715626567762709006610938251020171304857557148898952777973961591809409456285085524633380650917939312170749201956688696693814842419523187230200756307796274134203262570133940392801964104740174431816527061510179430157462657251460799353778693493300579207114630765222727324551622221641096552406550299782394821692935819925889400706598833195758216981575125062876677645670295197431007190810123201971828758512394056415477043073238255286063229399849153529021058044382989653043695836792177754465211260106449261212209289459444015272668385361750526855850207896910479642575032271511835750942109140378314229245145062655731529700413654762045695585709480069216431290089973521671658478984720590838805730769280236646369348573376639779987013806584276729623780236633586128263351985346299986065171713542522737383432666563466709137628169773753465826644372701521476985237706511103555310212766993987488140402034106707359654292781943939627807924593109242837699988230197978199557597032940895458159856537857920681165212953252530325040725906812046687430799631081848061878179567823492716004328753577101545906990705774997552077500415990491991727582341671780524490562040960837620506300412433985220534494506525911997867503676500132237565680915840787052712125066692922231646461447372031155974284198617676255858904395972857171153784808081205268756559365943072946111731065656136003704046673817427637139517840595108603528617043092044450649203011042767122764355286915079808730582103223799552833135106089690543009028292900178989046398153071790856944292905636101758069189895633418432275035750682549437043363363329984349318770934733245484937507273059060143028610042857348109802795803098479565427206647350456534019915562494029148385101450039335798148467745101368893367208526684789715178747409973176137866902938597259930203722824156171534036890064580445492861268452537648904582435452203920412764394988593326116350776320668335399694143268679624145597688408350997734039268825368342220224680673854890048194321114077569156033487899785787609058532675053559200031635631427641491368715586148169595667110532270016198413475142579969155034505485079043019936117653816344284641763562595610605932773082563506513915002378177755755087671877538641246896675070059530179053289095568201273734111816495301890291241235364867997778378963943092417226796564795080674209064168921561858570679448567457325302453579532987611283016712048891199232324437466971365422603807894177528665753378118026224348630777155625003910786026606388790786418317469416073997355584864457613664112098440072811709116608070070272439039541360609175109139763660121730471829455820976872683296298458791153486414966982211925406505753408413830324388314530245979813570098449240439660818613206829379821211604398071364214374890498667313798431974419743225237939663237597313039260776237432386455932947870320364935145176655090171516348415137678528231030169792590677414481668823948970174848609032794550765084016620964732654345123255778585746470488471677235947287258372726145083759975551471948980201757079455011895911107892954816293903228108733411240649718439997715088652821990405290824958235953533758956434843871631583428352650453760645701382051180531268600275806859025021220052379769172768855337824240680359812617805512298428004014190032581409820461666052934966046994224802547876078041739156159128168665750261874984636536374229132950217115534268846531469969678382855934113788618158984657471146293084286356066955385084627483393155816397012764455675326898957617417707926381770317684433787236975877014375281634870287445790448256957799305989801941092660577767056849473235398589355834536593966019741063401130909042070591281601003216232812720400973181788491091968831655514865472093536346550581772057149298534664234400053916113705157259393823840967295947233195181175873949490586387938381237840090868937719482549899809847778516298880872138951335995385022935074630545758203608196282896366283144339449712239858614694149889705062142099155372172197795542103867939443450091483198483470685675571319022191421179973205106938967566018002656851518290359349663073932783082954168474281820515192324336068605256407632453937729469834938658273489621353004159193125608318358871606287646735102073712302424747042152676636877044955777333531114440136986720276869665633998993832530139301229278187636622735575353056251422422896361068297557584009072616783834995597180377195875605956430430021981995262646371008045466152189262327102766723310871733620862573209679190726983926640934884450789209993400378305215763978733742127748425635319509318308160852539575979744346875539325261207400857641062144048648700350275188076735519148442571914331647072445355782308922806102084281227072503827727678578335642378913659256282507508059449831428152303197740631447446847495288710116718687937019935549797513485582100498525304326730060866552921948682145981451225291011490645371596155486872794955150727194555259682183748677632506583286375202752313835532339889196341436676172187496306007467471322168078095992444259469883151337636697324805862514198873970222655123854747027846606069239727973484508472880035686612208033841577977897831956643297256710266533860726908796838314433861805082978772831459318496627223178769470530567062133999242493055249248234719415739761226885536845741363338629420018164351678927747173282069337174364391476530132603371536766460539233119005133880749026006913478602199871621498851043500383051585620891516470578156395475038746954147213388847145007762947969365580107118268219618123432710578466732976662519075133509589085835674586354325643712432793200980803545203624943902629665164518621957119028824065797691640394574880625850697323195682055893758116892868524813179307551053225654232014919720224354960737511562860778888502590579900646558276032375405792560351396866090136302885554565461209739083699939550389238297447074026720765692916078119057740855262952161311756708453256972800981063116686085138988052932787269787681168104872325211025720599100139496496692188774415631846081225325774847937978567207684491598521474049973903549374163724574270392234367438253246455905799237455142528537495592361364423798907347061297143565438133303506970412100748487867675573783826686448158024557240143275910543583848940658675358094303682614789532085637138889425274228025101075972576397762878532864107134205972936383037226891204645052978029911743963384719449872360524962983022312156321656895531956078588909433334658386190906192825972525658393191618094203980221764426694750351102777298000622384406340919449790878405881678819494389734351386967895999680328554516774663290778226135854644628056043157332215699221739447498316120565874205383146904587421169474468167738625316391550379834261876056219292022425507097591826922453242281661894169506959350458419409648333216906804454767424285831577536850187995966322981486344440127483800027367079417625939468311580190326769812888926648348739800927968689454446735551991941786931837809865166755157490883037339722948654878034821105204966883068376389376926882303042088185650810544317957612515539372377309737681767388702085364019767953724814689200792640070168471315799352034587787238246820021111911247921243999896618013865908385618274091874555004285017011010018716341951376471203354976213424171207232690086985657967730881397812571898666794859670750882382675308477193540903240139245896775981851971274649340792031094880140844501401923007671520834539222916360471437232984693870462894064472252947490939302502429238477451513188033173309043522566880544831024473642059953345384539818969973716588516064397625289240904396760973353974923961040133545145128482191543752229848521667647200204484150669081994763929364504987207645078284015163349179027172641387157620163743200603751496942531936141898725131200527336779121307739726642150054623968986959643343489110908860864769877696411415682187692704323275584186095509905541190768951532173482764164657065922221580552418362135304712064196209436981844969619464262690227405302282295186933843815023497038382165866308092038509554781519544511814479626904230385126096314688635968715642665718340235837330291069381152714566620830857306179274671366875542306306175743141608708743913716961176035403677957485984805825651306153103799770030193522773672035593565137952318453807959175061213142904497340394833650149001554558992734934869022030513824583195688988526432261263441121886413172613944367728457391195642664894357981382565847205443360433442163437132205125145639603313224446319140569057982845268719794996406411884229006758400014300482501858973725240492144586169362219089820929407787848304542559950668998206814469356824640200723951087578732329173605389130854319927184967130332188719970668173674357129396437169105913890482283231363100449099748275020241738305522368708953474553576407407770831888159843972183983580917200978342213063791109466286017581326049643260214175964753153098067896595136060174216557081314114137761268086195808687000183718073302099275364703398580430333134483576536891364792855745553305542009269370971905660160547552735318577088093334538600343921521822962455025365065693954054397987471733844909224643365809432073282140193444790509089071731302139707137334763092045863917702515063672555653952120834393055171716275542412174975452757573222778708405478343359558368177170612239794954917148417139153256377975644087471402824844676199112530507466422728280123848537570033126198390066174433295940554805849220347817779558976643840587638168058210788522507076300279892497632119032741839907163457743144740985697346116764400471855386092139314168730986551753574693385643044049148820348181668023236544376038161237317665848819375447967773528945065451121291905419436378303363280951741102704381321650376293373288704970331264262332012138081058763203951879234437298859783235447669144209822888571924262591288298104016592311784576656791239896052850613626138400145572681628209738306278691330692120432372693426427069400605588401711477299366536352124130029850018369580241737622392343270861355246976745930092835160037554777176829800000549224262111598452791446994521161775188290453176228378180074897764172825079842398661469034077752188011953740639746129663034323504405594677786257311302752331668348915162081405357426293350254357946624079861481473155141372241376567415597746959042866783830491324920243755767332277250602561008531992589219530922796779979547166212554717678836341951850797876486900147250963059148835124130882774613966306284787171370832391273072150192053981509693738372506359605705067913208810144875537054452678506154641725782835264334534580212285494853882408463586752234201513638617850200475216174619134109849465118195859539338334810210394421150410872746581456547051863948377875852334091651406318794097418403832380891201366764470305398767554463858743298636598220590898090485481087611724289178380293913021159859810916699810326995565145711541796500818394851297034457480087008171765885536660293456176627464032278672749357479697051103443216915619539680711648614435311403243415145534495125183099325741550677000615699398489243873624667343448342230649595107947018572089650500913277108270081281081794556777537373261818810209625632338801588260732198384544331136120234408723246639832167080235714318768002082064490537779418207088337681503648214314833438284583010387535341190233943454159556132138841976996805808567342310774959699211208495799347150276964589822467932122951059619751390378917589741184277610019692325517926177286937210512824216875372024710423363712545885124625102964380603293465750428724990090979741111943912921962447805093008197492964754272165931587044263876667451427511197022954920841574962488803921792933519013903814265243169384357678157681624032609375978014871162056429569874038132987739514877185351198278412366349775945701891059561427310538686526142270765757717746305062410508489923107413321832933181794275549069953498679794541841093301035659361525564071851358683463489197008582662059571855519716274426869383356643100418445419253921051380946561361110084568819213335676104565820568492070505267444388348369446120918263621691522014455824468029173152564195720286073514035820735694691632175798444318258867135086512382286713213238046039924222601875749585315614910436440768027054325117108732319116215925759803242808712758634891302338094660422642901500369989440490755704937986911485169468719842965522895642529388387895356326668764384103358366730027031152132942677794257952018152082045076857619813133511714687139897804449115273531015772352643750231002564376967647905642871104071255343437427693121982542473310310820545241394615007658842483813243107543874027246671476115457044183097090014910167107554698498683976299789144066335435130417698828343804647644855066277622641004826487974941576894957495076473480350729815994893144165403671543396393501899964533332641925161077501586082290194495047194638417301500586924919796957644901765079600715589246115309107167805983739039771373526109190882268181881057300237440172331227121430125182515195584301809398168194063141810724088263588739311640031859559968676937073768683940037701049947789650952274788915709254473389031907794047826877777238430469674034868690420256864942390431995394337106681023228790029653146749121944967498556878640039656409476802229689086221341117628116554086213298897449840239173396155826571166247482850885684116496288275071544201655337082048821019625264126725746641991146459508736952309848044780878163181561551497655980380464130717386757990900633321238718031852428878026678951831276969311460041245943670059293130150353129992760470719269900826097874909611745260409248857930898748177235356207324295938518902662784827442189002322261987409815996666751205826351632479106122725804657156475986543103250132854827964264602162108870819544514685106773986353814827041167175863020641086809725461417633900815052730957822935577273986871764131745796126857474471610892842164604411411226896565163333310321519435619624394080059383080808673713885434866520986797797383027187065084753336822606420102677147186519025970217919578875742951034778743488397333485010113662217233494927185561645711382137139982165416345954102850295459667630436923265146564433730966559212259938011699329561952585998246825992779079722116695310055118095330616977459497421727544006665497140156230008259857283177525211028344655444946776113545189741622385187388288289228563519466573973294432445040524230837743279146743715199122654059420081532821737724751372810237144760957050232016137577400362219415137512405013992365380152997514638244016176877281867022323295594536294212147760812283011093418013438129075387838250359342347847374446280386574394983899390259065927165163990288959876483802689647255324648572897438340185490866064166100534237313764787198823433173546893429608938642388631715061886159704264791361964160163746957757752156411892455768978195537057036549803117034300938018287525009265022296136491724500891357798613852855122463439266786020393314754837137175421546161492227304243945138243529526346089694451276040996195011633665327085407888200179984586006433130717630370559672562538701726116574587255518317703934459532421305346781946281815941906233432652352335135180114155769148236697076484327601183446151656196656138667607525591724756670838755177349164720571145041796414273428069927083748215342572596425381988925791700505682942484835964920870499473651317928731446045477640189028246906942396147233367690884918499068398092412854270581617100252885926655473061454335024144630401133360358061189704187122484659884358532163478755082318325576740273961362667477658200709633821430552073629889788533233465268348347948534128336154734171803951110464256909862264609123584436737730224886266378618157031608518590765623299644092064859653906364126318851020317467279568973380872392533888382397263183652379239518777277183423566002721165026163341877211643391909129594071687787465001189870356307886258395500058242715406951996775836073065337983982931718183984889423734223322655011285400310775099708379130460864038355778984183150710253623186679174421978438625108871381985572333015687547129755698087749598156389339103441085612848306405299699919780088480830371219430705503632808317717220977017431108666658704557225234970801368048253084078827832098895266056955797522858922949194787025800631362539114098698535374313990676849306664834352998398603905020200464880934604496688728013856480194944106054480108060605960210084507836635418307879047857823836579761323937119311493602168215888167084384361314301952167800254162994581192063692486049244186984621231229328604065204563522974004276427989022695335562169078864839558826249061418139749558195221628458729218243641321867154134175805612305463818284012135732223488111023134431467509851802337534991517327466501239300452089361202319640463159578512208031284776519581708531264780679948365681705331359923348905649444908019668799011290898089499322464332632035555183810982219755153591515329754365141683687560559456753323853249711398316806634251920073425406250181307073210112186817434151353107180057503508119838032032384176259278595774307384918535570094874042904708753789560100036083401688720403441815414111131836504982279479653877054390054387913783095089211498884669190778714943060814244584482379341289114711362642975964438274022974974229612039505786516653167915262699893906967731598055840900312303967886782050911113307880339189965021749563061139608815859898843249301260557951900800480043067448304540899717465789989717799083745484575078130539004618233419892376155889340875709711949158830419235608698396744159485508041281237548406497331221885471698615705014931601623949429198092134652886126277525189772698592841238153683968874740818783939393895012881574635454220725688942675411534985698842250585612796609678206598160059308840928262050457368580221310257460992333962393743982619122010299875594236183671848303013597318234243063322295805986858521592156332892718681319732188656582488200102529167763500610003001935457993167763142843669012221406974683944851858833616330545764825729955587174154046585100438685557722625686992443125328136147650318860515645554494885941881199627202386385005628930127404401537292392136244490512322770366313496130830923618331949581715746398339373813397564516677210051590120609082263844713949460842491849061752446316341550931823943560682403417701093795307672537543622134576405147241679475538951615733667481919570702269918165862105799891679052024699381197254659729304275836031293275986021603227448032220191811280664492854432103664710921766515926132589194933743190328090279220081102780333856387899932595418043104689867224489719762356531329679943629097570178666180819900773583078724916176353893003940242089001882212402603612638441165438456713259411835942697809763736238506385071668242399538855624700793136388114427784638858235010576661279803571322968701320449050299062094929324951137927511243715787490563789936834308760535262871802561506416529283568685169591673051629368537739337304122082204270160606738286319163334650775988889435958208307693301282376016652068292948054569772434255663199093003030080171427503139814872737071160247907911694922998457933636730335823927377360851946804830718267395385908820370309887979603084663180405485046079588829117341411138838984194718687253055002359692633269667237493652387297654760524881361225010122020349399408889049741825369574371714503628242246165227827578628499718973799122411321921194134632268909038162227371490341618180610824062437019471394693957461843607229989517905539839604387954058744960904812032432988886965040584252286435658552250125863735997957073451674104495133424132395815832372429939576846741430493935594431042212869408045159020388597963957509378662443086769202295555157705634910882754280377278925141508378120670109044946174185936186693160524281675631157742441478231626019048096408090161774266748383394845673344360584889780877899455380991295140091011038590237124500005707456860782777819496190870573006560988697265158206628060497097738397663869341238187686118538941788619533679032263273502589182541856508378436464195188820507327761742431775135365368408317287707500009335641254659056507399909660249996329926004505927510783907860110861979182559257864791369027843054291151069801746729098268563219515457352657473477090054222334926957672445618787396503478209341272224131135121271346087164790887419518524833947661263439396347725438000789002231177217453666321209236867402088468814099006985500566599509142969998376018761348196704780161288474558607078780714344556825692792536890638522316109122005485464162496650101124721511819536526119797585862536404210958687524705165640053610216728630778014907751514288436288688108805173256987077407997052871440939063403692406250809603550162057939627434963085196498384100611671037223925325362300138073275262066453213586882487353625256498541538204762505571541436473544054502576095303576036920702250033836815685579757726295350240167569844106163682608040244882920031533143148807338262451757197763865857529919897703291288680638899495827851217480144588475813630800265219171984585290685172440300894031510260522492799998762864302308709021100614112781428165652120810350928955233699730675736480377364294519847423541102736873897289710035148427287175571961551344688765403361594158923250736722538882583203664365626971272014807209982855878748729012102434886422003115668883364226386317829635431815996663790983264432667248715479609636531832383603900616675516178730268579144149532006064737797710898396621730153938840147214281312767799093356762358541475580225536434774988353003754745124134320770160006257945204965589762330488714326697781901680777957670374841907982217790093338768786256310964786458174289959358107615813654672754098883704654485659274281513598867223508659553601258435174235989921111938952403660363940367493705895641579122212212768975698322798469153722416927628227518424856094314629313697091265884339001956801948233173427696305227381568429938397801531264427390114952934662712191897948400001671608969852230046507203337330380472807795498408844389042612863816359318124812668616004722422582279750614403118278683274361917301451019737649850113534352159030473336323190953131538201265193182627259169920307856915648559968102603202454895364990508321832251208417060902922132459604292804694946027881776599830342319103256691572043355628083908315286430326092578263500731666865432543465005972388067133085766857928844031546439677568642166900613851580573587250107455247548591254007865453081723272067622504684221791048973123031170487586355462481831635099236828129236605184815177181881257676739023103911415772377679780443111585944879883548092486676767324606118915946307925352440747571389387659269081801058639103127196434766502795668131079072580721605699997228261642976370289747813369468130103341750587818057673045397473242901977323493559295435850024015874864413265423425614611451698828280503247521214537492005410222904363813453823877208049884780601482371237769941550882315063169472481302604006312653705584950883516221784523230714929085171338668782020766489657767542146339831967354311029970923470570913141443803929173432054080407625352438842999721827103002875616742357372591478667672920725683322385115936144252600971373138148380341362363798592380519871561772743419693570127227565592291457640073426048088139875881749200347014786340197795890047049601547224563733331831837795912299028775591004811484510316239836643322257684575819335998783935150673995511537889450621484971358572612863615130997305088693779901391340849633648570954430261805777815868735966450313952045300402708539922453955410553360038248068435864895064674727945094336759405216579806760652831042101587922552889318708509027130648505165449095968779326306461844559516013798146309136797272745111256977784623699994745436226104547721887498007499799664359048981670687737064879860759793206804358940521845533335904738873504613304820691151622943763668962825946438995171416986276687428905455012404951446969017045499220717127720077110964375165623293364387623939695455980491134732496623069023918898159555661770786688349138894613676961471210156202365548265454061443962822667112418352569012378601918267322113283251020239164713562564922492675597513492940389519513330027751269549694999556344556691461445623932379307562776740465142247037962997226262515357307661516836250947394508582040870167035925602376333704272989978864902128276912621325141727134149022504780755747734515733656696878450636311855330812331306760351974675893345386584880655752333902718569124573093046931658135094414195572560631422959432501589960559517569608480912110241596538572128875170899124763095829151718248301126294457646136884771522324882995549881447242402694898419756979721100584461214460013332283078206980091479272663079413276084946607858444406434590840839038789452519743328208399281636511794789160896927170809966873550999426400833225666380482005724791329417877299692928033312960867038761506974450826928848648960131187113874781396955125762695511646182112981294305200955125734720185048781404379289349209650057560355928569126153464525002490091672465658890424922862106150750684910421126166157451128877838646133517575063630184782137813020442093128535442283746608267695552184781395406653022684422080409038388995405542887262730481002347160947244924216578533684263570145861344206780594963933336117161627021563202398708967359819402092686027173168208929685276390513884040182613836241508518278829262232738341246541372586830913988121030108602227354138614620373262714497337468980761734391749041616878580273866724416931468120131884323800130525257058640578771905957086800678418398482530268336492521343916705710024401719039582923696081092257339423587050259200116663760181724236546961435132149673578923369842495901101154668538058040624188557291022878247317937098101593311010328286294696434883830641556050917635109689998403454246954069920004995182867311051544008634873485030864667697562301406871701802259612844482089038973823954928183054293326818313717880411812172350971269254969743677812624175493687594051431699763727370582513761650298162060877529920277623493319608099460796702231952145849515053601822983725252413402506558229737830571285407956131704261996582368551301381303019866364268738138572840921382966838319325895217364674821447657249633486712937195722214790175665559371675492512638346824154059759974262998244395181685240091850034985583147399207853497352748567373950158735510984454742298136512202156510698681460579513737954072560685641420880811135642954931139425368899290159682644681854363938924368980141604551474827086427891231954991520179308000984405231851206384421171333950059874233529076312792049564082208241531936858348386308839103064693663799680457753426870603900566775604242722644227421030718576360636105355206489806980480448415344825833611076261188337991994060998424712866917254507728380914814827539316952695951452364269414309706842787636676361454107768912692828547773183863861105058637332567632215912947270108019717489227179092618180493354063751438058686814748742060670543435086095283465545006927817678315525270166858820293455041318436151537112932258259198995669068646453144685501486145141381945568870669588558893015388384729857111291499901630905220231152154870971667093149724719409716987624205508169425682209207035204416904702350100342416276329179112705180957526563532219376433062434786888415473646078605787026369590658268733939410516365798996953485110212166379251196005714796440293234499456272144568386218053057891797178249019181089140906661957269044147515576357376132787079317268386385671190286985506991467358836022773614702231002800832684779402921483967172373607805246422560798297300589151599814416673259935140805200350024688568568560550328137872548536700179688577011997673465197471187531509263671618822637999982171816543596957866985769003748075942470539011170178209187105542371210592748824911098820615814727550355114527041236284976309609845840321255368387613152598387213853040144819148262245847364023050790261515024686921537188585316600207259995133069365723848932991566898660478710861328036844613464797088277125352594981644498507693491034874947068397116206410621810560362914563013278720214055781059353307362901673454501905136041288548341720401144420963716041471548085175517072374950813569585524685094540708152252362568849203984509585912090577204692052169954731844830566148908497497685263360753909423227668466226278548219044262228963243753127620784515931642729545307019818849280557059213136955587191760971321051189404281913514325771492668468253474373485377096967804474593218888695676491435731414253206883316160434114841727573230011423640439649835974529057005969030272185765173199702299399111411091961575818860320329068983546163175893218457020811761066787303915240329737170782826720288255359919069694112501151999250009632471119398608499522224297526998399316470499799235755141010587879708482545693169327300004020247189322045988696656789412325654397587489356035137383689138440562336368394440740772565703691373140015996935580831028194656839913838795856610382668728185170513879726229205990229723574161137857454513129350922557068149213535692561612096335901236632676630506567956586646784882518572948259120960362447194312640762340251675227178728889939907983381409036201271785359332392570696890995719548410586669286765139874600162843691522212175322855971384653495843041133862207452540767347751473768800002074208772853945532990955721761172368418140783745999811115131536767673496853042124099984090011567836339717092672223723754698836383928643257812892419739911898871673226177676777632505537038784134789667300309540535136747875228129751154391384355318859253443990833231345433424475167166816510863287874596618498818671626991851805223606214779301524636067005660788957143238796888272101220567436434897373778808297431791009077979794909652214477890291839907609977745654972076431814920801249770583273568880939468455614774621441746304096426595005207415940188640953154577682601098926489618854984308640883151767514147068704781431503065034780639174334108485718910759110100754539835978813430673414145665339052108274408484389510550118825487457084051779491845291910535573870772130037559971177339261361322156788189345563438277148127119066561836438842127700675329722950132366040314784356066208563612802965729135258350803365320620018099039647050992314796901548366162838830989649108482534133086349976076308593491682068700548256027993593682647049494267864962570351281200482123254860456969456603170991048367618262627100950109201990078642051003231632862416168755055822893830466157900863941651380585483308212321101827458325145837834934345819792987219795718444467707961486828940448995022602768515446479907695594896768709752026847002916583061201822849917430422599597234892327431836995836414865671480643911427415331584240050645628932434289572029888070562911878154105884049710474655813245932009026490648099257894563204928446480410643234403707762667572218125118284024834416759002668950432095347905033296848680785702762885716821948610239076700462011941862407349861125137079580321194294867192938128524834875749385025710765514344330552762026027892895480836392321975061847473832936589386587899572531526912829457131365718430464189571819498238019932653431242513281905407391417842188987411594119290452992365166749438621021498503243857188757453316712808693792863664650396812102323223201917209289889982500578399775495624973213458557191704158940756869931558773568997688931174319576466583391109524842434657288800986631833213090995260586589695924738029984511071673033533987402356934920964996214674820097603515658386422559625197085369350463043372355398313598179589055126342964074705911388006538048419974976300743517631394348846369901966645263137478473180368493906339979663613083801572357419558135962519707402900384038922383124695082886200495345202968249673219192273494803542720071245110510414223000496501374865214899901520611618263820319961884342473823528377540990131263675933348161944274126882355443774297607489213379387113446595004488085763105884774271972018456361284841405664593255928390273092457602179213306453610679701867938493111026539791979642476906368806128746510411063366926103611986046851595849565520348561989730055523666034356968993800598706856490224281083556570004970863739815648955334147323175873890362305729349561313688455139769020694363068302247013486822326394443505836796761650899249532681366768894670634489725026768921249412145196625469411463119733380022330799019629856468196871010747319039424815727837057990474500204775813888368168949021553710904710239888888461525497508167981885652055230658790194836300173180158094148404441284016318746341868530436875426399200668060111486409865335504406092745638370795229626969367843749948462215232977662234854019548536293666329733294547598381622315176945070272106289463784764787322413589345799706334913683217608384659172979340064689230364869384527417903091458691840758478503663106808385158819917167552537049333742604702768436710002334752403271678722626030766271769553401188470214956356049033007466912924321823882110608374742317358277308868799600361845098494220195390369160093261973771752692309607424542324345155278365975854234226550526262650889699740437488921953367945807386790015472474323615678040360093431336072481064381679284159008900311739902991326708933104744782916505439136012601362443250670648079880495255815700093816308751910205437386476167920239784615274913928819152490812022567592531497177880704598771160661824009452602257082216414006590900030062984871631973079587480546368967736089374181586964994780091924897158958307614835093324046037777271850379785755352080264237801282256698458675220030723248181631712009634797412507228776350230295146970216905077222169896285638629859853879592694841539754075226758137979751027431553655896870137199982426448253231852304377818397357396887625611054034830349428599532577191109292509886610893109629975210638330473381253831927864505980164815540626627418024248524521151716043587869874071512933007160109888285781715616002382229754139269926073796631656019627945139540303342523735842887346900882168600037793965244635738525728580375822876708831307304737805388337004886210038103478888690207660754836950967846066948523876592284696187229407116938440618922862117438686405380308488385595806114093814355842673106067563538867882777300848203064375154036818974018497907918892011245504693930650158804083406488920611610851914320507482721096836356968460589887921747670484345256407332735003336959294677631707367238774903835712376294895401403876651847106419084747974971131579027438809444209904084124056993685267949420541807393605357990262438682803350234094966007388887115710312739192337513142162598599560055403071167585301509643323549429976095022484108802616899410750169365143521062139549924806776103122061998977445788416756011121354736577643411123595571820908871264041344194401592784575755618863074608481299153542267398835094215096635325236412968776217705963246057190545599087201509098353291249799578290497399093944958429712606843775574070865913283875169052319343164179659249970106873205742981321471307072351188134762351995488704187110218741908816389358135966347533228483359245462449290299243199887175086848753764536521966874358442064674371289836818313410995013790401905410568532907022916747389197118066429572940721001523051783642666391831947901223243029091868390376757652790765480194377314475072321479072297361963502347587602721215505356237816100428202748997226788570305669692651556875006187864860458469551940123429321793688440450479022776656015756833563092431745525636776380577763689417573024920775633458599352795693199695650964450474056479339670871843712754229354699251005669918271628367766160719471317336402997915160556664916038652138144313200980019566880500413745387123201574903228118374270426317940491578524419580931677188432263038843798375341967376270087863762250218690033847766629652766596719380139203794056297490067496690185450405961404245187052704338380587002686250559267641683826715892302323165700823911384999658128674915453145899852283136279201287695616865341081078487346163970590476822771864250643042306349403553409715181865505140703720889768713299729535831628763912972470187567463620449704785681086942882570993670682545121727877674717669205650189103895418459563608740216171548347356879855322752502929069999133809883677766576462840625715203502510867723704485474245584404003231702808437475394880379070742899396555368014296932204437759195915220049314795772795624850248437601048096946499535327048965482722825703813582989028808923432504076226357656602696687342397572212246596404714588876883993603857072425136994404132870015337333996208992185291624652111131312584575767897808804215778320566688527299224988108653253684633630132219785687485053144783843268354601098490211337320376478814605815520126143336301261580163376085568525564633665204271306635225784374818769355019253129269257893642649594489650644756023289942622149991319485406562661787615653976295842617484946574717521879252504912328627358993759951129200490186307633754537780213878506409962956860444205639915679018406100101457844651037532960561897198469622504987268789169869544100848781616984155258062163312100648053752953199457228576426315016644641996629575819048299339918918495516003562780755772787691209108622489481602036277048107747587575035278824705974435536870581259464669268292193064603689309655835296851301863353573344920301117196361698062889743389016900096147487082517929596847160653504361516105090630546835998526053544412894530878382471990655544275729355151637519745746624035188426398818223024451162547542652385429583088794888343017342167606530970382460133912544448824248835898324786509661324301379974607201322055132735899030567864341064807838030190075633656412335559199429667502392193760006275511590938443991392272125896825209518408331894346556544167161732843980659379010341205159071244817852759349074449667110658353535637536024968661491857522134505111307410835814631096815064135550083050404261810668964571315301545054233344156736077549194842889192050715567852812842610106547618824103586617482651026615080943550832469332852679437994525652929140609688438918500352230868813451732578931356081627486861487035604151419779631970109738642628328752218214432989955075286083442762708666212529627205207028234466050117249333168728660534055379925437072574799653286852668138632728117544081586638589310094462519258065072605818479607820838328568472285872600243168796324508616721633941373259594508027256247444292954837877819526144077943502176294079369691063045036089612342494515882669804396897694477125020385747041009915961393066776706544919648465684137594297942377170429736499800619900514763762195020556789796758554080432624876989175904384705634995438207946839872346310942026690829945850614791210426690623895160320182675462632187223040869062455492136254930783067854362761301346484151210675381197671499716681663349900035815223255246693717106017091266498434403099856863873303094334742414028244152041078325667325683859142351927416118035477055749325130000157962992607645492096908913029197972213186885701992465804509323024317991354303883007847047456556711994815655217677134317071569285650639416915072510203376705202989303706183352753752826255854270400006078565581611081494399914844860259781683539299169982054058556440244315567066458203806243803925498760667864781140005263379148525690958828355335548248244374248633072946386202134861781475503864862726914687302353789182933592256765166479014107069352856671230276179279197138090927053214108114094574244186221020459848771056161017535300707941976191047793667634656589083813313823630237488886837410338316303220699388822249000804667551465770154725881996278160511106078342915529164017935656249448389363055651832534486806159152849352390049575544269594541336559346747545814259283193369517849173136880151049308396818846911367935106901926001684588745190751556145317971524327241835300834182657766563963029246155355765409948505756010677640474032016698561792602207799706232084824821976588187606719802424156824426245954737847369745905301543048139213363031724636689410183376125453239144530797315631051014124983242549051605657690222153815566079444184445728160522609024675856265852640986138233480332458978677576010600226730495090490183733142780700718702336383568246670636656398276493963343805491862107556800125814065577213559326089531564018794933614433556163114329333373753441562303182341359552776691638716464467441723549444175783493566204478368451531130497623458362377589974233452305365788781030132638923289095656354764144305840199520371922436498629590194424625783811125188548138109428033386574480956370164950838182858309049803991182674877494185443019457915736912277768383431522815954173564211492607619545698069301049009399907161603327403058645048540135127991071338423798866569739891781262164556141847234279704312188715605206530713662169885362326299518676565221336244427333710896284202714356053148835169457835539243975360827881538290318620717258515617855574946084677948531866303963089676301202705187025101217779719941202710104956773828984380221876742753166065301093334139722180115281808142856329322510529045556952959917836350033059971038649334916859325445531054148413902581030334500760168660914127676607537067395749699462751683983482309400305000186570087329727932040467602475248035853419069359402737184718556188733443850328521934396014362168018929517663971595007496211240000493315809602030608646348699793368764348379128774639382550020540881195263674938324551811702895852123449999215081078980193751954080467265406310725204850274173952037242742019159206929577156844595816499441812466110611543558979032114821266036175439217623229747420775591838490883634245919893545540871144130130135670339519458860447264018506028082321008602720170655618023966040410787825286985532532067004913339311767320488501874925415954837482186840803104964051394760703087627443170386262074231632278690305949647610156929821366675647981372025911989971667793281631863348557289022123802014462863811341434815848571388121848408413972660357866719157331234685981420176519306186591633945222204581816208441211260792543781352505239146485651834956627758915218210336221496514279051367090550343038111162875988511373233833168748041786890631753320273199802343133935777356228316165330928821846270018774766508915696993091460561933907376120282085876701436437546231260876864359609103635142317989066359473588668087593858742732129407611551045838019702973693055910975880936030112083589760979593349173575133285708041117732437641154742973595074765165607327805352623713612567318011736663215349939182290524935405659834381122641703892237437835778230557976364395776237064145683263175108326888923545637053686272622235320866924142581990495683215816620516898548446492760349488940971281449542089592251380373157869082738875153455633006695247108625843753916275558308508749745035744195980344492259810744810789367171069217073046757452989264190085675632841216139754050988388989368704540376565686596890675716662094760609831363423311224534572385970585061826241708466948884767552729447094947097721755587683598257447577638879905290243864044305763992375653694348077694186007795720991137214097318257320575515000358914420098843786442783147588156970709623989147711994273081127002521925743118674359693391687672181168349908117942235213912536354125855321701599043567228241699111624682110071187091272809069565689708178378776327917532726330135703455038089120504450844005204555216801018325012866618337103753201336904354107645004375561406614948346276659298562432700932425890658397947289438769464189505371613888518025864937941754711276673095856253731812585087874651109359305160083555481324671234337136111758686447890602112197419612224268437341907771776859623513075685080331072085174644599641600651651696411859394685367001378807306232094553509223025929916764616675610863218146731839250352399835146129812720835387360993536387398558504727583604483533829227611346522184214793804893513420791254347585800136119854428419417716179931632118279785214217281438506544069196672867320253834781763429009427785998606721374552871880459858786987230079248984832344626670547105113858290709687279678500862829830885877234225304665540741053429237966937771859872505796780199789404694381118649442262092575864359504086923579125697357606275600629038024289080595774045315869610940419466082488763705131868403274591682171632024513007292667998668505057201058432260784197227724463353138100502460688579325428551467258258341245824887075636192243422914226702434065895049935397879690698906671434970483056494222942111948094084993075333282137805096390127995788733543824809003669861973555271758577223168183337809509042719005356834725296092576542553304291104244315262353373396416607844074498523922829310536331627246308918246603136239767870134626215864006379004554144806960403894825513624990662994430007829480842814446701312477074517275976831549932523523172448788146692790774788907129014342115947341637291587368001580753552592679724463936603820325584680408573136271286715989501298068281430881711965117510139396044678549013725244863849451121229559696217847436151162236372842387721676121376555403591126925377911329003336871466684272218617254354883338784909875622536208460367626032524246144432436755320842603792405114951292644682313153589307643394998686320292492031378462824139468674141056127603135140956908765239937761438213867126253768472359354715015222622828244682833441196759739684271676797536066313344411028624312952897322428291557955367810529087599009825536702887911067978632809891736142017810388918140520811434745695983670891990620529915083346090589005848899597274828756125586056595240889652118936652582213771810083858979419927535538689094532844662065111413460914484569985579682090236758897458247391601847082458441536888222252177710451780274491486704007899445101911549771475831488760347334905630275924430891366628306851659753499039390600034509638552092513414152392945706593102735399755787065078764164472791943228159615740362221542897349376722032597403222833820104666245343638897209191220363511979108586476445956297353260177071567853132915004209002392965936224891131273237001685747615291161784248459762590847147549520287895755760279822845034123449244467142610576515924858107512982447056532099353173895596010741653836704720225610539131568849008252103964265995291082821672342614633884058582610246865702337317916609414567518895157600323226835366232190263374092021515036858747030688664451940204966822560903632076065042562514884465050474710029619688121057165791376203642399196761822071718448664267410348860511982212542622223808258127826286258250247086750068153611166011410647857318945899034711199177963747982294976252472104019923788816175701599640642500810881082634645591860832401285455345374591510959510731034728350204422716139418278842136792943183563863239819734897117049626061561610134019012470703168365813514880748350253713999393976874389291122593520809128001480560306248548888021957974338446794930151031501983690409661229778198553737378753405088500345612249786676878101157284229401988008353292469768967999889531371697556627643085502990244985646220618902377880372710548023606678213710899375227077172680409296682784218861588034082243463848461323797621404204837019012693832160976703647534696402656332208557160044877274688880145370006274893267273957632290766372629263751330291526927027557690033345474495257153381301574655887376503403836658241631480267070521160234607661813458097335636452048199059054301509706134203607427969279294099217176020397659659450750483768396529641932235939270363713837642617455940817948145797530975046368465619796247583851373556459448787985662077520368571390506322806909010546859698082585913500242666411326977204071204444787949303567805950767491567385681039942358223561277362139786367267093088864418073657766326743918290823049113486209755648819435763539805930761169702167833503692282644561502383930472148573647908911460566856852900089048314214424855724274296484164045772179508856994846691517400171125702003965929192412201557571651276078655929296660825657023716136627485588285710640516994960357545840514997361803378029468527168366042142488738603163697754656881192370938683770306066647013653124496193306976053218721935906277255197468039719713976397939109614628981263107445942488051907540850535809658858032038344958023666383519504836974198325381604782106202773801041450635536967274205271558197245678780580551904457737327821211220035561978642049752159370733523114617381792779734417788934603646253145822577938753420090964072721040825827844234381555230279747114895073018389605015580116191855988928477153649991283237303563063052682249654695216088383091375656683192920704228795994855591712400156299260451208186030493338009535531152370856053742549478351254475254464693096595618049832112891284022192580450825285341564002829757287610184467677023268143929200142195370788815499513055120585537171113095414093915631352360095628761876186347414326792848862690618340870573846179137147582836240349841604640207229803669206328248390419775688777477532369461127748439602459085431651926275357584419357820847581311440241574026339074804512168292494653967724331207261148337449232772282479146521201498746321702437284619063509011199779802455010185554862294194352457749703403680569345088309566297884095480681318483723811383239863776515947726605420601438842066204152378327763260028737596402212791848752937111633315953210238307557945778172370480438278839411017001651204898357115393476448367378969395095299017393280028413308399737829634010738794840781683334768631903165174186952287236425152940097640882277364580181633137238444315212488213204985412168700282483104563601330677629655363737130362385855792341355222605800715613515795475663489679870797977214924503310646136321217376679764191373101807775127568639147117506708856661131839474965157541511461849939022853598305501164067674470756010137132967448114938169799164196291793374020786168985901708747689021002234622932160581364165410975679604200504340886581636536439884432184166568146534160080792947216708228737009121812119923503207820876546695792163440407104679274596896449694614510798259174277881500635251352018303874652414196039052152314293552280255612336129458444891124627101826116451561170662922047708458648162113968971529513800414739843740631313848615951868670014791733251665701881393911419215275153995301918416603011251311486836735872476833274820696767293700836740511414406350293911467978429579352398423180411179184244071249803417054819511925948597608149123197938802881494848500758750576988020706386814950052263999401414796195022226843707709371523299106581657514197878115116765297411158854893333671609302934609062330254962310600316928359725994706525845893160974063413821048390023611750208691595367668007429010052321783877110561634968504568767069259153941941537734082575683927779572514067605394708893545330907310741883736356381643077101601250650367146120977811887991766599763371332850136934077574909731866029224831824936375456942461551498383693493527302049942375098999514143492227251380436980238580778434335796731035318787337260859522893391966911621650367406681874350060975740521624035614994099551884277268531932322669397038416263352011957966871785935560564449427225368402002491205690800162731760098708054308407584147732703695415337394822269114154357993486462901767211410488180170524546713349820382757190930853079587828454290447421960092760226448200164679011020645107581029767010543635952994794529623556206855072828131184671122543650117169183925438200062561645747080607769588349810674556042939301373835885847520694041977167712555354369184401946074829840592693868052004458592568531844552514445525038551983473426088048245711322639690304437540403098050418079860720598178295969039111476196413500363096647746616743423320855828897542060192176073120758488946994241862570634208014981411391762028599703728449721726586369325338527356748154237602255850457802041046020118682135656348203705194599053038702696572132483155395695598329619581433412130424508376920833074998871198020168771320722056663001860486210757348978881138848683286737320476893512395984241683757992255098746721990888794612890393761793989630624021428119985385901070909348183138441868113445663068661526401763442996564489709136703125619375562815108615637360241448867050511730914727241645115786003246348235880393402911210131474753558062346518452587419577502314758347407871367577533963603604720165568481824515530733836026336764291813605109231569233056867759922089105758211544378214920521943273044462585573467011728145034705412570630756493285234097577544994347449846428415414076962563844496281133948609690219097000243407628970821907714063393618264589281616960033105199018653147595700206717133960685321252421703849172199795400822250793405621944287752215971252055028584748713277166746811551735790421941292288789956856887146458012800166520934991824795153134222264369931368651465027044725896715217927498508290048146334466093243095974761699376665559251872616237819199279236666162946429620468030195558079519190412110091277737634762565100133380916348744723645896550345571143970285563767221282188688983057129196945415520065428054302408647566237949614747565809790553728254499721286625141514072500739626678866065485927954613007920408295452030176227445284430206111938521713870003667907613685687488351802848417613584575343080812442377765396624316893336502818136499847283310971567889431744826260897868337107421779196241113893898184000582832406278344381249047429521250798908833734622205314853769128686320325422382948708348318948376252997674022387853732475167021994399184329261827763115757771547299285631720899043953866270322924484329619311844597966760027345702951800825876871245480168619988063469298160720749865159350193690117111190705369087073800954575008454687256542440505340505228983183022367050650533475814474964183715560516490232557720729447482373994516086112077183342021533159444621747218486889234827554685451764495905277377751987794463813124689823903382092232713202945933686484608313260889313575258799955089522186931725933506488124357993031049365728384777963500357561077941089727713326265452892524456171346981602622777708214808690617163764397014066348817458981950758674287448866444716560603697554694203052253114291519154616220824367949167134368970064083742437913321860022415292603249261352721315152326831989172445169507404476656833072936834399488294480565860566583086756269305004351249042706545626285896017678622023841554622727799634620432820439051566327619189760783284561973296430568502553915043125610849345066242345749917625825431145792795002767966158105284806770116025203406865675173727410537526218858365795964899109283376763858196557400104619694733753433271781067583972494405364030656417722514438467874315510595352805870492163952833195989717871032312408754439442230636507424439844367518377569691420988161310319955119096315972900530555583222989179255586857011036922454710617464052143335601912759533292624792965235558244936202236386075032947286715450162173050629444416159618831838877789937831992557040790116446647587229439760233307834636166975134395094294427699870709524228045784164100300943373921236111178782679857408175793259141693065315355511127899899449007303620788811660071204409848247310778573579398334074409583193669782009631896696737656794158424924807957976110893096291231441048733973677638310101304905620017437642104706227294492131540511598753537176257208586533532231633600464775914544990131017158349305960445157356564859614292884682416345195423551006229489272758056398026136184495210107990927155982358619114196828506200205406069652943625778764749158136828467149675454746607252767979246174669516165132837975492978707885880507986798116631057474129994141149329025065523286298240092420731602513626768783003909711328946815454181909328037433129594690169091896960040195481676891805914469629046794047926206911785206956536236472192686083194435951335777859742478855721424688906453660958989943444678097504987117531542213408148163358184560570277659296345197248556706137868429885084917505926716794763452674882812929000325459023363850915541612441375895158395022893293118656257479333459202683823230281343257320996696039518999527811877934902187968233398790613361996337940119407299358459049982510314112095816106284724494049879209049491033442769855252522372754914369543721295235302867290967981943910662568210759703379341105531901163096995153187625106708102098628368204321160565809052460074993831559402881526358648140463439250346124597336486011525191769948723505822858000756584658632284362285717907204081998646462068044042489738211227297540189821596897138049117881484676663231682692572680211770234785012915964842196590735777529903789230272528144517059105148194469224221180982183340392694909462015346687377675555705681632522129605553817205028352336401559452451585899859575540070728559998684663760108885281789342261492109296859985490133267305763782761743478106944415450825071815713061870347291536501360177967377778379716131740905915970444112816804608103201434814339412453818359416183552851554334857431192053658814305152158044945664930028794371636028132726033082627273383789133586334372054260212417261468330157512934529979616901123099321806757913226669965822658688542484819227563291566617042016852225635509351271001387650265503621850459192331047600920814038771238518484448607531196387776780491953469949966015135205986921866593028733399795747325137167440277410736780656057305511038059595514899915203625583561217784230383677792128663158813610510534816503067242191218594318443069202523011159378795333738729920560473854695356113308983919567070460249464341837690762960401983840309658250230436792200468764909300472469478953971731583769524226733635677643276447517989850541152325316950522237947319951420221980939865624805081841610358094062646803812660675141176226851394041802853951605539519565413249156870737240431120482443130981147887967643390878640906619635289389002874659685886665948865716102740920663294678055250676346495644992076146732328196117313767901788068080579129036783803859503612146624471944904067968358126207957413710152542542066599220152839214325141544867237196134387944403261176325487356021670465397200807936222323462341688980691004239120682131058459444992092177069932199048516014785517220115952979189611064881540364412690189033120457719612048414437496088591831658994132260780399547590198460915671970508834162383730456666690920277085908618565322560281891697515841972574641835933770846213676107479921620535174522089640792458329380671056427567331894467042469670798123867452153923570132177773792138382217856806387118447463509746197309556182314335612018144472984901713953631009357698854309236153174779792013223239562355841109799404230154281798700120487056762476273285633473800065931889875591457806460099613305634768801275592008700837908156986680813683317337023679628589215795654883190812943409541553604386900278481925917512981047602219239956713967765698680261493890158371662985615734901172226062632167371849577834415833699837305256622131295652261355620715772210300195968728940226157444857998934441130413510284589817413063470407693229068323565159372217525434346006616707009233727373182139465662682496776143497443311296677243205122858884546809655706272517841128677087306714926952660380423323468252585535728004877681000220287306259514248474627854831780912229441923724265463709259804004841700924715613567413757791201239798362682339756044886164794262282988319700767596860640796747987846385434740794162825539540310138430328850182224172670790422678377333928065774441074059171994952262346663243925046030736795686185599445884634033880866871293466806095664385339140911246308413174781195534921243462275437815057156614686147873156854968336356698378933267332934737839377565599968629469773624071194640031396781383495534447529921626081436947699439287873557628419273613493653726113227456657481719343248924218558905782796919130080905493770107493333989382813509020899254278615910211485150800444100434360814216134437451225719798857731525628407473816819127030523957372308591064510036855380511044308492065074923212318968653321160566336589141838627604728571600704097267017149164465597286058457994806955917802828912408513624790666871003353655423077174376936015422966997880462682320306877557206160602735880615275149228921695650386469848317575588710714966453786765578630731383772126448206428184715691769115523627505476203353512784349053728205473045978733403566738105025937088428374608521577274869447167296489256572940290139703524867544308327891622153555544832866323550880466892119800909510148582184630294011316931994197520716059400975668713574073011975712776845142469824424118583097858947488457499904614537026713876743362542173331242362142536072843797509275219869074527598878130125992690094032112044889542930739848747539404577829110119939420636667428623241589676693282625761190209294898186340609811613722130656764382520543765359137734156454396329546726863103246987601658654902361621080714162919490994422899417673547888611421024360431699434353653624680949611987313781528938441537998101925809980418158057709137678522315801886868313187717754728473753296199895348260703889149961165582477688700072812913001229216340085469024291576936786017602849768955793438639812565737100497693430927236050763892960807733796451992368292341721748137770132406565308890078828148394700211737048252241857208182653025605793528869673841756856464877589122793022487853186500172070055136170839940167967316900282630683704835290044833312358228877446321051528495659626787452937354424502499709047660264578986004012809245211115123814410136641764506818895783501141112480355453800659629014580005207052820625067263208296049628912658274640150342466429060816954152982415926347348002033325398613631711099634454452817252677367626628565106405864777857508271453606228975568203158961878257145655559836155340195685172166693621448664107072485318565575542202682692388346823475647394213715233916980726961353779667067177504936605427884149178294926595238144108931390517939160053948209108228905190984213154770330865468733447341377445762125401208677181518478275464347832714024003254726279776890623694145672788950045828150663821661598965393125669412718525034566196702536126000770010828424949830016107196126713883898649139393587556453182608869526363415604261145762534570825068812518600281934732850176170515710288305765919493681085446456089034335455068165151250984387459057986757727284036485529807933329916623111058157003719404053679481052303635451336285120133544742265769749271528954328623215338420775661992971186931221240738602282247668604139769323892584143242024973272294108653951892585554941923633939393126117285426684120623552927997099222512326456365310907690871401629804250652523940386095380307804060919080435602695837258989867555433762135727272954590183578313295348654586507200510538017184617861238862430784421658241522221581272336173876768519353233046180353803524797464895220480634689538259927111520090041895342273847066971122610960155750562471671914844184614593703650320852471843697198539192079410693342832196299579617536366647900358098096899512626126470762758181701893031242758943199574906843142742472809640012157419119133340032628621887223307384680605821017838169253975935863721940307252193421887837016308648472376952534073167726899406547814965248831056604002187245159659382680962012670503334843716474582219341973886856428089123035333009423814382528107415298472682941194381961494449519529914421049620125839378721702303437339514873976948158228461598615205792341136914295558531695600130869493830675196451068061846594505293766271331008593361175303787498463798764290956555674130928481842287664929899331155421371270154650552111610329422521353666166368588760084755257755179849217553923201885038058306932932585416644072783799160322761352003855696297804340880858496076758131724630160787534977490195413069930145015029845428275358367094702553060057469949587359991713143969325955410470484845563390494996529040284000800986836384259740924590214732270834019975229068654224357331269796061791400838612150478632547257790547767848298306311854244866583070614657349641570786751191916893512850787910042611547851645105881252587898272810830420702617591579810694591301902844805024801017820162338446258807434496021148228570974937975964676015753820048072725805753751730600792900650929204560424786063099645838415543051288881766426234499492767758089265832185430500783224607919390896772017318603790374008007719600607240125807460717078676932089580617744122670448668110530782672237782385371038703070580597159560683257427219168604081868684885411114139624979612993534424829612200393491412422386293758989990258732550699503820217823507167768549871265743504060956375576149987983927485530842553773832232232381806844701280288020628921806490911528866250402795925716254604389477366377217292260069979555215327695396534524793449426580900466795603155278382579395503890071611983810346675932358682301102090869990652754304478865194184430104803516868901248327149182218384992233454543546074993290190114687050781770714917121993116850111477715886548464976383845957673660706891767611127476380838723537939321531429900485828510533811347485734002748521541237305109285120835253689251290803540269992165696877735593823152343857542048672538551489444029744924914028664377490712138592709882758882057314332854244110936320398847467064359720707553324012094555035418492256787031355288952088495024585819856336275040445170374055502309222792962727842160228843093991110725304015402444825073554575169018263229236920950905036959979942901488287266922688582571503055633485967413285626082994937139024876794020885632954992483468511783633496487730782475370026217104539838885402828868377713911727799999147913355677388068883503033133505370554209831408898510028029477609427963412885829898109694372670269969680801421824490118828828994594420513543033590862822043897643403202446470759699330743129474226216557990249424287210166603254472584363504244370717964985074054878839893256452409499098869966180067511644272634070462582014926485977310153362396424798979969695792086080623736848067677583773803614648947218864004627179380037516204650602200176746566613936839965949221781372969719197675173232509554117913660869944032431373658017316277641475148056318033184648762065010167970654419804889456854590303747982083704092938529790028121618501649224284665219207237834844490087476412967046837091083339400298210881965065156505422840928516995766706909960624365455211978222074196354973584262483814641731376571084005355277752151636169745903209493494045560272808441280421219082029505856407349933678301653763973872439606350441571607858748884562064800992036058968744496333441689564923466539352441689359413615478979727027099052671300235079856704452304135256157880671175049705576266180618977115295003009412201058546051553472350746841255391810993239837102717589996503788241724143873602656345602088473522370438209625671659652555471594025018317680590695396844485837296910190382614395782823366459236739937809099015674135192620403090872080041929018291622846282354664421683609652711532822500435587244326183271919512648209583534420773277903596202333162818766692927034826824796014664610335444857642397435507283039539199106782447097036309349128780335455457020913628072867417131583732373257669237268833317471657331428914553488594906812447546451237176000889733683898432468830308513088227955395812633403672814260837191961798416514118308580772246966284282367916238775164698409745757237660372362971987589004430861458615336388432430133593733482844922748388303405886955982239703141869834179670107293182033620085970332977836553549415258080689854841616272598711151450763730813402225679547897244453555448238078104877479475401195213965098651480208326306625249939834953232900803593416285142958791840598741029128670265543453645260182376348610732835600220545792583894238517745990437738956335951404029317612166475463201246300095968054940958061822213766388104725288003222213484292955571486804551477512263362697660809658855676130650555169297365195539409023014306487664911866247743163897544363090235933060172572431944740914746981548034918105410517851016883234753960036187660410982074136437638431245428582613271609915645027443683505671410960755672670950904046577788452352906294777607310625168509314449028204846667756085017770978485434311142289308751417124154368342346339077426708941100869622937060824648443195850978946216723566003929496298312493704915507495377442143127771439548938527841562191073853006766013665569778774576918119110729372257806869502572594440869717022455257604987231389404216533635199755126398407082943246020162760820596003538494683694533239951194673815525749949438067840816498875901880412294420210429252637907046636070703647070402729402286846874945304166864621647354938568953527875703552154717543215924322630515481470668839972343001900617948882398523621124320967579642705762388082240587031365636034014568172848257415560542422799118470006695088731520016900960261469696844258034146626105149727006102376309034613025082426264328237687783247175179418343794303784174992541852750921970717982799365102481678875731761761601831352610001232790785306549691313263601302607762655878165427447041873913964818000825058053723237334674156340258961666221340099009811643190244388069550416943200923277196938534984496786770509850587437483465129243411732579860140424294813922995752512524134301049511444263509345065070038525916762477622584786293547584711660087499688920546441981088341150313408896316035858370517149366708012383454192044670050479906269456404445385736572413067745381674869918759726548241020344031496832853923865965450413956160012995181495174614089140954570672940235235257159994048464402373535789288898041077310259194430902224601908166602481133161607338571065540740192218221394882024280021727070751245589602771979111800177572443942260479403283570849065281943272640025912660777068701748560540603008342691974437361776739050662157167363716029623220619819079353320150673584488247286133068506174300040782515408628333111954424105844137074633987408569943523226039627684356298600212546121944177421879237909234344281039063384187260617978609734967960406124944755559790317094495643937827889897879900445959361563475878889161488871882370244463601402418488191831842190725982564807545884867200472778336876701402774132038489612711643170242617198465762900348845747070298740059011511624660073699005432732318621261755487174603153653294950505699866588269432797210579430993088742436572395372733440720680481015765041424354662953734908273393609256449679700007007767140974366519224876419470247361869862570660013100999701828868284735967919673865511590308461058484902679505240150014060757782417902133267458968176061127143201354649523601447168266162101514297727447879014171724867652038828296802637871916037834731578240948877634271261458164397593886391040619025669317917172194544086635296459874193579213516402257852432666614840574362391147619952183066676683872064034054994694430896818352225209388764250627326150182177122818958419429156436709116355998242854821732720460548749905623623456131165766090387921397191647518847893063487960012199570754902039334315480798197382663829295161904150634960866268433729471571222567327900580316787827981480391901562734028498725415663568239593525294848750275425483996716453580617201767933104145083884894075266995040199170812028937617349422992029970173237599168760588276075739199446656799117176866284244187636857584527034781405936549142631360500374511502499641587616288702739839271505762101277703247743475425096444864695904113246018942474936128133677495876124523705112142019526409565797419514487815464562551569447089735192371694273058010577208806788476573929359739383454403141566345462591045671381236826321235171057095305366533146610557820465188463029497836882723945232760649671854360203015445452094981051166385075715393510905656627394066883429583948002051234356906350780591362021661798320330814245745136470522807792361045444422920898992551042998207351675790439513296525882646992844148630224262081188577727883158672766646124822971732062095033815983166390974817753639926026607413822534061774092047609968041034179079592422534774950259851170199795808893807780380656204578345229060088246755814670768124750085653492352875356485709550915962880800972177010285155068745750455151162994125729909464991092040498694983746785623338225657705081794089413156916343879784031012847209412163549320115915893485768291071723366663713829379128933956936340630752887055871634184545823924604206408991656962682587470748114353377167317821729838486832826261659616309738630935475783764334591620588271431219650453131542816943784683879352080219675438208871555015401099805238368074096760914870084137252932113626460205468039560673481255769196209665503444517796316146613919908826384877769729366488962934157688036713008148431484390589806262358045597368227846416248413945051226549428493482709142191749323168572253976954947834410890141069885005834138863617023125605117064460527214422191757978481098568462364861862255653015796639661443795646967281720946239240497699637094997394181770643266060520134842795046814304148897344158946972948370436719022498310036557515859019311122279363302735541865815342144567471731201248175900212081386826697688828818752916953054393163460393587655227511813256525698701802194681951406591241067996071894568259723718878646265152692810035634245612585030041061208965118900395189319459567197206948700520808039664082204960006455803770530467718619948649945433562049201231316102990564895745001039777915559048928971136953417376086504109216246811052935033931668987441795192628555110674154439197740194418533835659222856205955981668032830091617964997967909322187789583939534270755627431623889207308075266555153375971069132117274112582995350430336474674543848747395942887364410433296254786831196898969022188123753734780263885457824357550096991433713448150573408855976060783012731304718870306505188832652286812790188125765550318233569033420514945869794162301992389611611156597739866204852454735705010361836752010044706169899848921128515689277973231206321043012476141465679445169462152322850074467401743241798890062319531764186176571053140751835413291103725070901357899085975066314318828350215699616122037600346302422848986267040965175710242979424060481784653565125234943897280586346157658630121230638303967037140029824003226305363764121676438098199025804879544623084322039028038820049645735601034654955512952593837911920459899055884964545349863506491180766572206413779230882152700508838565270420462411124378637842972846511671682941869688315277507770428820891487262712885463730644091430056905306729365956112974240904843687214439478981386468735460917703159027456061108333154382254660959876383059892942663697370317396432929007752678729317610398766840998750016767654087821165349200662151632477505053153553163229776857313626153089949149743314711626938865213836502653878060216389737756761987483298494514873230160703046290276999933575116639840817226680027019623595743161212034267957779137836887257944292903134509738092649429923672161169038152159069035354289385201247236841735063070075148077588453897555484218572028929514044258895057093443421555619826715513310867547165039248723792198120016619115507528819247622162951056954411442837103866289860846506120461971519996687041674627718343894339722049154263154890742226782243418299044324758574020454088659752930647236456697007666261888812088812645446659307699860264688188843013699225450770038783938072568897711675032719955378485153981752389434183802516059859543302742627384934882626600289178944127697527477240697139723775298110131833727349568281483146820919579236145179691970793837371285402902212933486789153503288503431899091427530221434512524029148693062160379731294480425799355598962450868037079969106902219396832237589075971927981284791091555639743385117328863449434374238182605277310009115526378822243873725347893407172882946508352752932736523192400324298189524936977657125840348724508281512616711083723345194686032661100066818760057062502003722193554776536963241063145686465397819860976953369120221151351521379084665473551904325290233619965051402094445428930979166835104690657940203553992807895409175160566556821051384391043732423030005016414568915188289377563770678160627692728427485631697579700008686432492036821806444228956463463364856435153110972897023778333619491419499803702903167819147548247597096574117668901643934175941193381523589504233664685004517790879073958231395394289838329104394406585636430704375669012956292869847505254670969265511261632156175415845331906930139237985118906499524594296391556541043670622545825672111429119676589727203229695991519907777238530271426949605022179201195047193044551852147125077539657096872269205784299076645782829432224759597338305387637058576468290004491314926481023526388943621635885623473469207369553549972943930267741008980087855195412325225133517699540257606345674392455517914972002375099161125545107050813888098013791043720965865425541525615904491991720390435869533630511164287330183633746391448442022930930623859632785086775816965135615306840832405586984026955501378539428881092049223814218805809449344930368385636815672103660883981795099397354912369311489433483895219703440996884767005374891297385683223234930645370736142908750904130191441138980180455007973868256107213255140581632537739330361238606559732409841736665310146688720336177804454444448120001209543390366435313293316299225072110971623755205349894800428741990833972542457684614661218582078224138777785419938563791072781933019588697542668581393329101088277497070710479681900237567962349261905113989614293908477332891816536096597834161397623496893015748993890213489221715911359261906519260808748869045570464838000333121133664906166103407430026635088054284184553575037369752551479731971901520422667313575590630769322493801834584476703402969654226849498361848827838218361217435920946028355415845005935369628111434353634423822383081477675092317137365915021343033972932474171995249062716950357694256130917964130164614325275932399636298764722891320754531841512819782117951659928698350445531347590689018250705598689708456556322429294728769320000955622454040358775148145727212236052561624564497531109430876661488428454440315737582787722635407648195313284641749390469698688182431656853652618622955235703201347083793951277985123286795418750306586045931659525910578118278606041789534518388745190611007351212872162153283380027929863339864952460275524339093615700451372353040224408830366211007140814062360274418930435562956085903879214502586057429223410185820662944955933936508935320220864142324756352864810979425810042278387692908881431156738247467150817119895973712401112285729610785502894165024945699253537129986982783664594870173173739946776678101965766675144722726216365189399337969147893626291139535261565949210427746775319324418318294575455296093377793599187822796855486808748586936151977004213742137206861442704907917953695143473590807919668297854007723775863546755915064334366987619108569162537509370642461733341743495191253484906721372642932833324511562738482797534397940779846803184796806822863291196393181064813572001466203886517167285306319947060879865896982530925005218309872455067790187292812346948066781389316545003056716742869240416314222933127874319274544393086924544599134498492470259001606919461037119562106367936302733056216354218913128186235926010620009720999676411271118309019375958303604725463357315117528614562722414353406412083182862359227203753657609945853225800457116806587603337184911077919433251747085545068801989856909526335584410344284575844691599217346407778563112334416513483946197089950723711885890177985391396744550105211181758143528595997145849116138961549173735077790822957242738899674380747660087091607486936175253997987058706420426523146997090421704421826192894662135831507650915578601443196988433497428641957900701534447017314625317688238886892977295218032914561935941146313859963264382730653568375941229659451150944452017400033551830302641776583074347295232975500333673527117298282910248730894347485000510046214661228372078494944324661081960611664022246917439917677661995924241272876204295948121827444705770899859416001751499977373091425835762298150508420462632393347224287400890416641120391078268036351112565724983513663823967770464723491121313149259351084145110895442767070861781017544028695981557757232911710069207689931437767152541527162221845893214140247553802029766149707974873389919405538709085028338207716978667705954348615973119569902224946918094123153011174228093465786865228075143282418995572655252661834861404490127699861500886201695789581729280868851541238454505647172226864417184457427909642617566972727525896763141252384487920070800014312825081963987846180385726881423722416026478289539636144909970458805180371701756347202077492825916129314131463626623498936809562119765241041449007540855462696693896458405398432446786263934310450201897633768807641949734478626283971380747795304334256493033958584651814696378359424825229968769885479526660753890328927384478024374299814516137070618471965811472937099109480244411331620990783770184027043542338903124791080338457525868750603932727346218904677810708880413274423196326321020347939975176535979944425302493259205791889478632007760755350663362094269264232074294120279263443090520355021973689176489352986676944876950085955847259362312334293619491476832480158548713608391750913405992562835965487502934851972431673256679641489508390328307754565689858852878045841967630035103609455761559993316354797402630992255077917391897181634698658554607359959552729598373647213619851988559759436475726249523164810412559460660377628427471863185106940304852640403328939218193178098831288889878467933540191279071149547935214195451035137169530629317188850885598310490555643080665279568175313734768573228625019679570281505542178724277122313092181152657761899871142604438741162496103325841970018777281841223430517183199565914987159673784078343455995909407625910673293597493136460771719155116726846021844330528087533663990292527873991531989900637918008293992780231478034638900020153361569699350389925711690057182220030041976341229465629593289707566252173279918194778908801805165706231504189317196225460053627502748342201186907596629612720078917496090632533664229561159514164114579012517513394631626857267787412520140757741766423457894861465923673547645227089107554120835501405493133703721827197147796929854621272643533754256582583099370654126581909584706224964784429239138404655995309167762548709058882101905759240282600263624447695923096731795247776808699409140701532471084265032017189530446059940703783461870759402462339296089382542402208667340648195469282786602737617093059159187509364994340426771318896108295985498234329504290428544814245849886180857700819599415853213640256114475989801457321975681573922647162520452235655504645473803493783439771281437475567417056031648944548657017357674031686570015073756183339943428149481410444636765289319040452018085081448809471356598888869415477142881519250017105357083896058168671547988633327965760428245480051666092015785569137986829056947869952151452857407679920529534093441502382365681535500619127294874086949679418399129906172566203700772595627198451810834170288107328370980443708184658581213433988343077784518013964575051227922250864248854429859142055833221217642412156065880101986663175348060301520040665129130842650514356587293201096690522012893155364661313228288122515151410111172768968076901858540385598962705352000353818567605110408288014882619397914171094443868859847593277833373080700082211485027401804044082162732960461599417054624117241102056461847507071850810846792747616711356766883955332636888203207489787611334734877142823565968021072029888040205805202664584230700291397276537117985769968734022747448169087871249577998957092075894782160653814088462907839657273839189522844111006178857334689265320910119364459815563702207304311577779549074230305433521978998633829479190375482144473836831055110880978082346511932477991323378708665092700363381837835267884186128083284591563286923625454216125598910510346191500452950447197252791508580798380966340992768084160925418288535591948092433939459711727220547811058775228642671322321673051489450358247772275318414753369517677840976595061973937195387012447199610007976910711773171423154923773381691785739798638751068001904728049042193138423779176143147424814193977859367342750721659002084089590276213923387418939192692846506033776807907063809072811632120642233509078168479336451051855961517935651148193677230379439789604064490822773734957983477430603505148046971276618718414663881234590556558575356636720988345544413742278337742020358492855841571283723875077649262781321275850975475564941814133865387807103667713687911873461320534836423525197651549326298137286119900818049526009684999705327676439549879191552691038796708931323080007159711009639441092067076823568663116678821196007950935480689484617818062036804165065894447724777988636382096773216640193797925502419172394150541208859384919266748021028200798544547610209647169901597243837832643503778884483617292000914987580726991667845045706743588158750611438650384961401498105362195607670878315536671489072509868209480672233166391757720892814757689986039354405693323385456796070658732212467562896672155365492935784490077545548223271382099019171961771124563935430594340097974316053763012016705666140245341443041797477877682901402837089731938734405151152492755246704933556615019761727369430514195131361981284342963206161362291188172949498826305491442228624649554760345702689235310982790041479985099547978826727535937896265084754972169350443003395569103997136259177987133364408092186120971778781836370217645422975021920868659540948977544508857192338832480028782208858311504608133065187751928676145019365552323224682012740616260684032149564452892094654798935838678251223820243760508691033387712524063656202366638013967903103529975186446936067265069951787074818069140981464510360252564283296078862437759963640975240557350306973198595555802310048232973116924907438531552443905269753159611254243714479748543015864393651317888678246149261613477079834346460782782519245513216942019873756968376636326366431929846434582092833064614975164697002895709426720757718578967841132676404739438694163936051434207151281413750400614436122305343692594832011432016523538225961613342793841145380409168940712268622403888342667429267247257159151730675813436698625129129213246658567135273186664396459552066857387301966894549421300740546791728211903170369763933242198369105139370142975350075721855141548567893853261589192323229631651594286461678398888846066118514668905426011033356149112289910151188559297365021709797157543195632340726812533012549463142173123002218350316839217568453523971812522291249331703061895802342118563256205431982030339233874102581515644009401893945771744233396223812722227798261010509040920278070629782498917655873355589653957931061149144859163640458701523125167259329714080992991683552927071721283611574890044011192251462395098342111027345605695286691199745833434738143257596118933187203353048150174973354041932784994317499539612043021194569297797416172458705755410845874647235025911038403809794661666195531819729376240167959313822539478165647656434511794256289502939336291722689526552091101645628360035730677539072984083570570054518293673619305037502585805306518024666534797146573501021053067743547827408799108761800173159616569950157513864090713088970070040215661168767038494025961348957269328921283767389734170328986071650784019241351424066404600402331188090909578471205340893179965083393100064234112944405283280352504808489496585692054347295351766827447519768209627024814541457584699669950441860521571854416955618219112919766506919348515229674755963206820950584703035359227016535193586151710513382242227274795802923472315334120312972695010716992140703034842137890446433643567712226722454759346379342802452890127197445258920723342796021875485933217813446363887501115985289200093011889482078321109716403559640902267895464416272035350675353834656673758438083289063904909736012976895690838574564168382518954253098531838102727883642638286791290172356120039482089042589364570115832430725108409177631019353240319026840779107376664370259956047628713355367318079771774056169492903059846479199410652569578933403138253365372423994806374628547700083080442075803974689465241800844390335391831202705092851228369532494407465012530517426417514386999332382330795563241243768110118900615200440479504019836264762413451059783126215907291167324070292639060939660567781819716440090799577652167344870081417733782285386045363454902880633137855948935347225278917863742112586391825411179879258851407643487444062508489959619932429069265192409644992987264738243128756603146535735029064632313942174877938333353207417155396840776107454748072352086665462115711835426566094078633097818066089395274241331053185689691607089654797970564435991146484518610375149659579432064183857912382848557555678918892363327569730846622209663312188473635056221762804400046052311304336722914755280428152493848671473033427488419230340019394029836622704509461097207569515392134505364860075405825632661889879491375981127137976056144211584338587911867434650699525767258410062148762596384096096086520858012539175254782446068062383053083319116450137264540106562449111132868981838487078542800913935380525076176401726796944980059720047625935471089898266318604798826380773550092004640911132951691416248806127907170755627503867359793416633868781917752959049225755376037194329768356702269350070941232575720487241395224454860570890441260455802159062226133807464922567719285224371751333956060116689006981719036720354586196134513872998107933491849092909893622380888679787049814249495159842500765139610580274109722189422329355388431909670809143346575857868429711206423023197212477521871585796053673761151366605491778358848449585222371907609317240100085769389014505537797709365493947176149810627478671826118458004752260049658907662854067250874568295904583169456501769005747028850959085269748203706963412167968487507552020494332576570776430756242601473620715605482008099390878901800679208620086621340498038830295049168948888302008255886447023965002362033820689714678621120082883122751558725652499102913661848526738319986125423937826261396122722168610068437181294791399035145062036731216602869285611265471030406298962557544094928510247564330239831882781834217033599302013206994055930780211635124980805304493207794161188662738592430957301186553000250768965664785513688497660139647532191009953198456965074650395221560848652108587414861400798477273818037052823518047366787638227543658624827339860074928103577964789080908198339308447548535207668644737641435246700153084669340236217188998246703308692454522262479439273020227256042870058738125749329378530228362681229551250780653298029386614359757137474497629676455041713782015188490254814313908203778058368519864028753681349260002506357571088305649357053832967928771879957517403505955121010715823840222999294059449503875270616696495195195370238898006732694998428377138314714664482269884629596105132274208642731854090193712917575426628916548593125862581345355940848826544497614952439959867513514158815996948770312695228093862175639977633821275309905375802340999992055255055639544063788639639653426245933904623549379851042422564370484083479069268770530462044005437194418573773032890380493788883819046993385409590123331059439094817117423448861675496171319431405854012840038335516255428210560020283176816533248299647528663933674948080838345618711466592187422805435277211631887642750688813610012144925391588891032165960931657099075608466889774293834512976226165476802925415651797310702979031254758000632877423701043172233827419829270337471337909135632645375711614297858943483137568546146696418109521850393748009560428336301981633076715508268697289968124474051352384872987651711228479529539405296342123709193063086012665268206671257197773077724635792878976671681819024941286519167487709165518637039426221544221576810024228903793485269286991934480431493607928074863687678425523869946760111674784209951708483808404025256055046076620523072627570591163481893666711890936129870848774430409596586770684736867299332676981455279098276367795828832228570480066358068121995310366300809170474018269970294195512339018972335731650565472058522640632085052837112974435318759620622814866064337408303673824828182941619073255315511414162798974203760034333443740361284410214999753605443754794758031616149417819704874949784563843686777046826195004230798169368945131771028310049334205493863850282561866496704252817975638064642087741008313519439354933679825929167429535136821346051501425478091416893330203302628042402445862691555075696643301606751430064679521800285960988532765671935520379633405112654069040917961086972891649347792619743331032830256986435032870451445948371365818513968086159985567110346822560042011258954651888504524802187028465075934489227684174780800424171922215768909537371043163089904579832714235845588944199149341652833065758932566743477030677325787555832214485462124435352033163211048385357500845060126343907065911215116192728307043768360743685758687437915009853846658520481406059289871805292381787457276214280214410865670845133408812410256388579130868327496879396596880245476933350240779326737220472230216436437324844697111318053956814841854452168175426610386156930689543060348087949229966655482277739959960857988371888276462870076718064769055876001515477205021516643095813163913501892383117868216971220969398394868747424637773021045498618989878761427421544034529986789783674967495344192753735416992994631524642859961469661593500889586065172601002650586798257367322552689745746992184811521700976250908027251670224257558208958449705098753423255646161135808425351025460409760940534073396026976596416614726947655002939579211183455196589096816109360787753300486015520529591252194776896174827624961606972976742667654493770918325422591611832451462254064107133966783964356176460596608285057491311314421445383171966231843146113262077791686609480902969614404579863651254698565830792685158448721354915312299017732585090169001036246104729449191646608378989596234573388154645577141621093563043966227963067855815922496339666343119803744943396380847553155618562063819006843258730130578711307936122885693659860826562421111809929232068628547585149682268890776031082231153137395761854060194804762708984489766286364288642899710693904414245626902633909261900426724694174485062857976948525625689260575609566158772032803528590921342794576597063615881135237915315881438093704147754296293824712606492287347939830522612771335410362164964633349222365919736604186985985076984515063527720898029515209258072044050746992916100368189402218848202758107726734592105626788334528660455871151710737091216799730235192488160527436799865043531201861311093346691803462631885041381902625447752949730508677050443912873497768464685358922240638449875344654459238413282411677428571534504771783188248157974655312851001998006615010633569153742036651632809402836891168312436115878822331862174808466390125940748047134122254547792919211943983336531166564053171870843269231003513711789997530847215915392354131284499296712621690145056775904107777492909060857067204030384835009478874966292976963382306592060146217617248812277104925819006748932621887794497225527067206818094538550372823685810079497117114189479677815400966373460539145798736169348231101652335650428794078551248363666020445464288170160431963304169647789338599079200376010175358357339719068418294268836690717085455350753977380805581795134575623419350418560946523659218355592318549719231808167607078875529803306990897447941796528587214573683556953542310608791780989421110258883586482540003290315324843845938182170293788342761734694633970448966608373272681969422896932150570684617211765257383519735622847080194550637679421353813134096697836045850648457749725955920702913548022136535795349485936442228935435325007069253411710396201534826932582649046987851474645066114630769260213216617716267145295040123009463982348309401052323700903311970724613077539547245902847450901145685677839324519151523579522065039931718565025467357637013722249795677465469988038579317410662206038152940506879008251015868280382459180921242652027029816640769724018557886479696101233901385830430903097286775520444341893247993887691551944640843048874659511073545225313221442805448252624095045861219892394724751361431738451130320126344849807759372736046104686886857872346877601949789711495031088610045434780829625441465475643011896022782586885095464714135903130905676209284531782236948933811628338420797546001194605569563166364716094508878814123310035820306054090756246602771158462188987857114254472911244043860356597133795411313513582192456896997683749599756253980429104415889706684967580766569896616863211907609711045314810081266407798949121133731975194424659232204022695905696520205827227999514905911760822915245489670983765901197297721001526142312468469462432537003305327795585779053688034617954296966904139389683140883086459967963940729736782973819882454237900633321268017396212698350830992000146495788645956555460081879649079975430661553625448990548210843215656519972842404291895966906137179731230727631335001182488566702589020875933969776812638961324013419356773436712293894349866081595993545302172470302775081808938998874527403628886697616613830418445867135531931763335591020556761435097702095348688754568257936593724155130818962502161966723356827445386454045400408450781921374563811872248137412133897454049486112098993514141427604223019710571984408770285035202240038936677253888705911544146285263001477905233490067691893969992928688723304649238551733923214671105572587406840120429864295163963968475170375351813116163904099962811076800835094228230229128328674536755955412329423690072743129657518874377125254439011979721922502288746123817806691204719776895175044802533519734374761880687705401455793340049340459461444330456003848339861630373183216664933774250858012842867518125085856832836874612655853283003347492532991629200873721914970028737053118241027696239302811531080036143769093646181460304937378143018830273360630027794465137123625569958553690888613147809153574753438083072032692198149607559601009352702692563538508649559440747287335334191487785892615163370946948314200259162351402304047565514650145856763868063906402833829712813748709719555824661210125925801758706185844448453142820661330223283837173751173009821735608958389205594734532514090186890903988640307680258057951635888053609976608601105582614491221855282539734224446679030956996889725547495214796225461623133807116734096601602443685069936345866225882753994560693287885304674424761862943056651571604399889118105006083959741674846777095451995405601298475623965484293198241216989354644072612164767570817721665763976477553391027469657489266263789508007174949971384288744829339518526591808599406042360787249774826890931250897648281009784385755000448153437648075937177198186835380836961669505269409934551110217854468850696887856956939292895664394092527893230352651615778632644135091777775316706521374212506409503721309135452563128677423234205799578027125215297190777190188588813308771111641512736901193324863281125658284325711335266421980951095145330675340550357868902702385676653510054517105242185390560383528438853757602856987951578474478120824198600016635388571043148871666789515633401562910647353879513786103031004988471409233382148119609831978722569554188106415723389829592216972700890400661496903266359367857013392804041650790853728247469045594341889212479086726518443759516125375715854662273779125118605114489670454917960090252774890923890740168663915376168318551546097056956738577427616963835662516197412271584750028147163379726159807408172498641035225777947974163674687493488022533924243293094960662107644218756503498025370745049602871635752351234557044297816268250458466268898043352126702781010012656969051850564636630784660617690695095488295286646487641382767115782593070999953672691817401235216169422108757025600623567765619722249073765309698439642413953824308381630388415131200737550092487271853701741394325347176639969216380988092155579820594262293547613633920557503023737201374526924472575869863403456859662071794846028137091004576105328639693782981503056244150376702537825459234995660992950757033856746585163981789297929242641321920051440806883390026228532151334808255666954851647054278978988189668148960348258077445331648949571762327064211824098321618880215590655747822525545686202141660463331787614439069152281126825867332607254147566379163573928409475540685615151406786856622631587785158042899693854730292834834530019421512360283069873104846746962232242139304299723077639721846662560725907640546889815270429846372005938556274449453052352999408723053219177406988221455593063854194965213806549708004761464474414558077876127492884380104598284162962535148868771470325129019245944266867857587219448754380638600620384114893909545148123310350333128429664006992500640385950501309973146557215756505545084242540696897582404835110250607855413536664681346437437581169756729674532221649054165798426335219698214408190150099882292240436119536796306528341779901640784253206967902923122815719734964256952092179118852470774943889602134721151283018206853054643674308296005330180058888087098463180286041962720441169026083106557597118139655059084781740633740087887906473570363696868788781550761616843604021818024702811570221796055374706533546323570674800207604272846730332978020151240548621894590080530922247550904598145858832242712401569413366460324996457280971634624875518684819526132582315356673033035767728542948332581925050842813288401091639043544199107208063190619140800218616532734617213280417953169379517385551639618109487048739039477945846127154642900614953812789719751166527994200820518191003183303375029774279227221185095579234773137940896221519611761581746465851421043064714095476824287997318688260350628805486504125534144878519623315109044650477701507228537185538617769864952026438703496817571597223081039998613382941403024630051598938438896590532319704088607879468613787430923017965654600511670504144439477051535602763170998573343712432616982298581939543320635348835330510788929730090705724161623866398015375646855215649184324902133109941704089758436677925949054404622348927560543170045781331450156342237443041072897906915054175252614020269785660808510274991320270535452610580917718318137413796539266136149761250279754418667754055624992844848031511060774333909098127653358109127336754130008923692029248606689211258717002208345960292920906693832665063783752286751058780831499527589626786965167289227012843993035424863041266747368889912675697839838110136271939758544774296125248419136453513309017213452611179505725629482441206983210103297636338127308864352434531169608359072010274082237309931806533725423026648320196540351333918508617246015091589247105206123102141967407553868702544279786701415030452100799862660489467064044053258405028623127347327997818197372842412915359834502143255570487093891433028538324549865635293813337180238824184711683129915338763376948550372163082565097683722610449908743506209930555091699885282471430478700182359410404958013304950473648831750613569533169456590541246942306636745072481764559504960665249908231880089554633084353283707210725769282343390602372560780106873697520625116546083258207610899946151460796596073780483803342004944227374448008322433757083553424739182017525139641975098954123324529699984508549479393608787786038315595604763533003991981517928002497757537117973733735353502911886170219051967063758905492763371712175339738940996076574001230443043526997276276303453963425421807889176546392360085860890149865794564507451511173216021197124085488181404065864277922825758203620047017969623491491398424137544563409033167215169537771018892640269064678236721077639429514597871429741932211612847153229326121270750337422841660781982715050732001018470135572379634558975712199540109928841208247654248284723476323821705273112892886528361446021555720273328172554151027722082433557611754400326566718395600623904664310996972544457277841281265785195248429923226102290578255114202692214469380378688754331032715071858732834305581891216599130521971986259333990959570893388054782548760407390944768766994833089073344340174331828198252182356894568333224523427884107771692162061526261915060866255365030759829116346396173388239677066536894553442025836973328753611211840345001895253162843763591052746292017734713070803073658432798346070003553324461382096105486388411970638018015350355764689515483925677982205489950336891776755539249738833627576143580543300730890771421280332896717391436682434072269495452841279561884128437656903830919912870222597588900939058741570358901690391126286412277027917650506986397112604374852643006176784792404007680787611008967398417040145648739802514313274000134139451754289032074183777838635476177902456490120246702046139176601348659355061432160015271413166540960158247473510551913213267071918635881028996954665096460444065517935624048083313465354825936290274730792692851165372778802310091971912986808374031197119429916125688018990709564414696358544594218702939385886033945496049956478384545377214825323172454657994789635593929364725183837875485623894812378003712587066526363187912171926470377412817469102184808728335418890912970549068809907223677160646442361408994810187156694336820665256096988740703701277106941149126802353145483700579884441549977646674550631639258655641863580171711494240856167100351635029033660334996884290517997106356798900626092075567417934266937115095892165731964098369372069353737971235971380865279681394049323623305256821156849354153229277919162293314274377101883001052547899719586947435867500479499229402533670627873480085284519054282053227361237498631267497032720698669490173189747003993563539793477315011447488270833445328246357703076187381829740695726675679717695589484278648522394731903783649970879190276319663834041786286074849484348733314380465419781294636770175442308875400172510905532473877100357260489878387444201471442222143231345287516991311266075585226120833658774272083678377708729519413075985417412879447585843558598126300021059462469037218167366316527919243312165965773150982104169276047252120086227364338776389499470299934497841330063994605387995048005151566987053896694238031809082599129783602595892470317101275492564698892556710221810396256452211366382995503334177345239164806414789284273665294784122333683294610299558934023072220835289557431873307679850401610968733537917154447593710052754710730077833206102440019359486030777380969621634532942044739409648289824886249208063723370287134218725274967444990192044606900912298191744208629735670930294136594993517086925355915534898256502836560033378232321040393962516473027887287978276080521640456538382691183119327958470075671309287907773000485708422868260528944210705005524234004066882700181641126743225638161117668607869078543874814684165880994965260284271669901901720735613701855104094129700777033186301027213306530014403978580686933660884992072317405097811774567288793293924266293448918726993947624076577894371510527765711973941843088852453524206749692740065930085452500231218460844382260434875166509244033345968604811737108020744496240605008025600964884267025565513437084837710462771827711642097959613909579721446711140326645236389551165680662873351264016157597642060577432913207748340790067402665528264948356526620103396320596240046517533908557575954702327862416708470162319687761301270788834795561059712447163138826471792295916416124206503273784456119786587681824558423640192568209471186621697675520145418959227472604337722261519708118702152322222212743914522453771661425889474132855530680390637540110906238250049862426038537233927465613657987954888467906369172092520787148907077014045626745570868706454578008952335657951128536003048764897163331420161240976777528063082742124604665357121608458339607886646939264766868324753792734317526782226297054932630217535025900472507678372249182524023295395900383333685057157909474997240599826572739695260466276500882071809471781372150977176911516168519293142510548021045928902012259670511444401878011425452292275224135552492137251463444771076208763150967433697325096818071389351715647889170547479553641622671368737259746072053759792497898172646183107443877045804080994647155804899147168526694544327881108433927196748880319110511047550428606742833573995518520353079316576008230475388075532964986105546627362259591017113818554565998027429359184614023676157735749038669132448713666404566627409776109807851553323538640381716775394538582730490477093561847214940431775545419536823450583573008809762803141674341938453772022401242909767778715656165221759657912336964066275513738834448249850321160713644197068456673684562473671331610530718872125977378845370069963009296404907885189008694151433402908864555458510380730873678380407802771694582731349809126571923977011680247596509091527812500803310110403461229766346320520172220889911819246912247488586618154380497851119472918103997947837330878776634962586748617800539111803471924948471432107050185189351162322586024675449398611328535514783530573032069830536316904323025743231629920158769643308943842287447301905223548447485880452410246359947387126788798705431425366932583180462004861200158020984879695250408306451454719524141317761470756974904114983044337315327232867393430881932164160984075277102367256369410892808138140797185818475452738178743842898834217927600715365848717052583426650090843932194496706726253444922648503112443313670761726955581117158934874625490331090277499211591250602063967999524578510377088781820922425991337357447928975770765724234465158436483687344951315504765012183263819909979436266826913759526176426208884133618140788521875807365952864662395862915197731549934892717375849281602221564781777591871985569433780092467735365391760866374338520139605176049996961118099603769378589891962904654519056794612480171618839181164001423025368399971069908170971796595185953023088856177587560140608693488347775913567611477328888310438767219885386675296606131945978811702378222439633939865858565630415163583336928571740732610218477773924261849612447393490407973034067797852819086660000704463743970634070166958365214169930933079030208394486977597780773025034428361700255823963610946652104696921689843761715509241860390094358587292151416190309570749837797561652586826487966139630037275229666518637493781612163561054125834465040920012319109682027202162452341154266624625419279000701678925784158664821635864648988463633766226754755592241293356547607797464139698070633881544410298985161076120755579876367736023466395115452210543145271306785608628571880141656174323504471488540185516571070469251825041573792005944841987577393665176472551193971747160813217756312512695143633192437639058277213466019707584255449531493723146593131444244374548270543206921207835050817988692713068830425948983520432319811297583755027716042145365331725047365798273657825332554012695269543385108214867448929051967600013011575909781990625373624990881604423005019601948715115979407536710964273257166102176737384862538459455666814464027748435893555945276190929963719058323129839134464944642348646796087125683272045355882325238139340549097287825921135383497544115469666210336750585788713718844079149964634292253123665446301097105597808105376599208482838639285409288563961048733036955991181745711200769721782927323926775046456401615993678718614972674669292103134446697879254511742003686087667994426802585696759918345392519021910224924000361564960180386433687671660320265334828360063810165773668150461412312853127305481978434717660843490498256831111435884695410829051759763563147447342250366228364454590507730858245924647049635700016479587083658411374458705378638482528084261180165036150684997027837736936298598125372599711024338516502594995476704735377651253152821953037469832851508563910106149314721133687155229754730493557514137614577805837426983511174755355254033206903547878929349174141885726783492856609783559640674869565235772051548596534619842907333765536104226715694893013813067442586492137692859464700997302428230603017759167352252513510372836269448523058029726252381951223519318787114738240227036060594027353716296426143956125799123068276024629721641415708826623596978096985607075937415401994439137275146657712950586961897638411686181147197251492530183599764974741527952248117127966725401750099732378063338845770986715442706955813877508965420011209891487209570430439438368650278372356377178614948216040461596835555367837535532441100471810773899763810682480436030691299989515058877426168726940977816872629192952760130559918956632498218770376654829939369592543589885308740107214810255457207283621993933988731379017969489772762146769335040399149658506823256958019890655578199920830034386370568658489929369033398662643432930110477825358052497578326806847792566144411029483639956554169063770743664307990411568940635380799068173843490516847753113763813049370052335430025735890924384973046493102496862703326949246481174953989892631368552783398868769781505934587220520436908269686626358999559099922731428654041444697319182536773631488071452713496874563825252235041187502398000350068813450622629642266434091324800975024398170379383378124314938561951982869433375054730412659109346716714516787024247656127896245695012305990892993200736108740239945571970882421405240196077298035403792833678034532456297726887307191888596183686906704278091001430622173829925804584061931796580526755848925033633022526684833920010003740609815399562686208955074718802174779052769627406484496727265868862165586266432170112996457823288506264912898599280938770881944463615267386661626152284713955357441705889647334698832833910907350217000565835365705118209568767291665546361757059949024369553634639995398258543042223795098515641036875310409580861390689848218886536863264811170588870506918080035157161255477808498305351932014598408699537522852209377308984639850118245743436514105457301107077591859862041827643184100095227501315563421505552457965614505537431799799402814673945574722373643611513288279530356071110095365145154563912312909921327470190262679356017859455591201929691891324879458246059182174747787332274240307442067286116474844275161807041726883344433641640563269130397115687293254801230365092648099378171669017000865266798270842087426760191571602953883709815019624526290501993722337350926399443725714595065937469897084067779522809677051872980761643338537291223367149775878217328914566934833023684738614892344786871106281526783247106811123889418511594249550770304521803344614709474561781556908435318950282718294533482959538409847778519456657110516798649529690731858551192666038896241827451318111195779424017413051158555082649354566480098946554662609218563000617338912678338296943207897097444130517914808480289537460341947309184031062710570610740971885184268427898682538781300809548790302452380716400793495682904550709492759200618178657984389049505506303749555438277195528483800448147578427266606245822396961953618726210133431119005375398069353186805967371049197568921935315549889550099479791019970660498447161660713778647491393530168147724502432503995077606472718254128204209924165229105316840468287580434772934273356191057615317186962705155352300654265610686810121474509474720633796706188297006039515336871839416952914416937919103275354557402983940985624358373070550678343080846669538802599260260123219430163403098780728594760565288861192002363620108917968954834124513988040550893708797421440205837872441952028166872452674128556858789561337827515604445221709275653610031884266695872187467291744200428280795574962683161099206280911218451161481470844494341572940848041165735891442297517351109379937214323015584424187063915867679370198951716340062532063351115594028649883578620420935627119250243103934440410630542024768517812882577883262590209712136302160349863232415114233296152973316398725455680248064077723832798996247628510102517234559200820826717479996773824561335774237986509837641919939192831723383201921974834411078386297918795163041533426528614370872726077901606762542557815149095107938123772240028656164642192662975506873337801428323581138733297562465514062033152601821564620469940848881239470570184504718340182250313070718770554660255735253390860526193286556278195320357193933098170771646030658320611822461406443066296622832574098211443268419421549560211285456552432906065010680914091717659252337466751737931295147213806405793854902223898759994604873128897378105742969040894898324954905884017841503596155942942917058943515373140057754598897099565846809543536328008409714214474623314898968910944950190418682814681986245203435471171279403701222987836087835713983084854514840302765962207411102762052459942152847894077180201658263816748066396190300578198043858930493470056470195671869178624139866448416667129521890115616524144191024936984129981454758264194656648077048382194554024576714779424234674327780291362035943510987548369060133582791593395741452618022950181129215786200939037285017147953542032610278546969035490931166964374048316177009554718271865926841463476003913296716186846979837043027359848772075964868556026334440776866261141952027116678494593575699219296421270396559514096133361334497284978924548473219668201960175267848839432642845112208537443636832041364688624971753303329317038999668769760525826749270743179219497713690659220025206495212570379533818206976879778534838443502544488112565458333253654697568838730489662731966252912421106864786821461887591716661146759929541494477265069509773715165248029095491790048975695340156860545455891547459755269582734114154371592420674062156528290144349726468264711508874822591951856662023086452499531530042595623977047105332704637772394655543209828654559242911187865001177259052726699337439872148554823960288380199795247884299498791427799606961588870223196036489054995518448786730269949532519808597700013317629829636238716370363345883032901579020868307275828279712788154075540015290925437327209414721326575094136047936633333736562444521022444168707508600792847835432712739040305216879042392797855869995809040704730405464122921302108168908980170340125494389843442857125634770759578175432770046554403504359795161011761823627443956956927106872620374621838425598301633132665304008668918062048566833335692801578218263468093929905211290700826094607134655530694717604681535870211699195153937547379563321546319565403805468015134315449473932946491404299618787466698909674186578545901360771966357845977780209191540414443104277355708738036451385900455141806076060511092671062181049916962974978529886917471977518581521139690953425616333587239532326691039844254970925731212390138560565701485842517649016919508692380959506967293919269913850437701454933594978519795639336075649051502994544962003764560918461486279606086426922926557701278016016762279683925004773901463268390961824654029784732505481497304192205353284417444086579459658018309708885577665463768554579381352856417530889916969360721216870267858569160567266319391668290212048977602454153751358623700989123108943627804914770846091426599066029196205014328719783429521386316499265845290713378031510531522688237757721014128723502805232586676086216464820679012234073873214999490720570162444273105673924737195375776346019594688710539524075586983978913397550674872800717254498183884622903100284940051182428787036149362076045489162392538494400761031785113624613602551097834586483671060116433665608410936519345088472442749393891011064153985268387747311834752436904733959927728973274308715385195838993167769920037988528992238099430980512226678378203693898494314962979612364055843974202281155593464659986550894065746100806980908974214867514152947257057777952782668864026263119967499050864380129853078752663056413458010107795960987683162517368837032981659822267717683283738349592747576361951738703921515313880942021725657684036150935752310443941601864825060518346519583190614252921139649946034605564434907561295000029709999944689773106966417536841285274902502902193401506825176472345011258600094964224137638446895746296660485724024995222253177794894606694314880193226237171796941000149878395104377812319174153134336042062372798247866661879648933970670332891693236199775218466133923142330774323685859278612649946469302441055616642881980201767732406360720776275146139226948604377016321668792438584382732897151455363710215885319459280378858484423632649640853849388737731238054227914243363627144359615056562169349206655597636715018200436284757968125513871078900057798936414896442917024100885987556172611225685321263768155113354590799955631741597114810619754161091324826656443829027653546642201659596023584249460460640118529146972351702236570086731095364657302263412583908375477691346772205803274678192291114457646147887618484900042770358335051322875850707963145212188247546741516087675166132596643500011768983219957010067442217931622145030266627680771043435922854708688372463784098284741513332425893291540527791792079204150405512226776875471568320364823303544023932709468856477112430458145876421942655620370343200948981045726191652762600833650197049143853602890522359799610493950956655593617289790755199573295658542297414998848392250713175633534245474046148652104719606319601655132835080114232494499705379786069115649697171508369309203719245352902596576729786595811357245529049067956395267629029593634327764307314091037097439383740793305013463493279880287912199107436720146621984557695138176962635301021017508612011446957709623042264892983692356412053279731386207361925263652685913952004552403249265296775619169476896203486870843437526188281298241386967613693486022181572775519721478209420909579521522961562447581000417071765928376378873266302403253147033332944286578839371790622198503751670646098878016134895422075481217621109737663886767098746584313606993109993614830850451102373981927468756367022824685461570240872661469352184907653591798633103691843748791780370537060219606092066933880657747602364323732990132989051998140277828105717586105250187425043351629299636450185627073316720882812317909815768281515104628951146867619528373476125569840130511525513034304487586015162876478242041794449326584766969598679064378253191457057134818767095352439548213095437173077858332363293244204840283205367551348271105514479157125935133021151489152303775899297688639985065208237166637026829999840973247642219547630318033315234698959980097347324203995222587082860093653194822418595290014315777195756954562207544287759635122115693497450541178500501220899201771650745856147955034606677953207993373786153890921625079861139794772177278183710347323406968253545806477954915705668194055749972119533760287474634525913006849698955976498451904413267596173348341399982695460717735976993333672092906189037105087390336007692717637288988543867997275300121847014225754267545026944062350322045031242961842035282379603268252914733431541708566321493707567821936677251366948121765770162551639418204667826407404872499216763067689356919306068545927606389342281093377272159623733136503131361129429756733593905385419782779161482094994282000287113650004317152164565714820726150361754865771867504852306990602291112631630914981177620777176827115325293880365003418829914172104602101483960366424546656197035506832213263842912859919688748944344237997043949545599919646588496053483651867192272374657430469532674951863956596713475634763191929977500228464957917299271535835601581304586228337037091416594834058775590863679239054982045137717210859279741297102210422671359826036352322198400774543692286607728939579555716973558386721054453276867786435923689394692318318000083719402114361287126904430914353168703710949333739944098265985564205891434571482235164319875790405021117967527661904759165286894425834480593251328446453494420027140453783904992876281824388123241411825974198296176094557994870052608158907839724358782163727927906106032452209285356813925603011572544566818671680782783093385617479453998651339948515275759867054470863760346016222472559743025394863759749581655446920265719025250638199298093416525778133979843657353861214656334256477797314608060055435148533620246022028515065629710671064857778468351770244212641810824420650435404753053470602487472815193986601810915355214211968563786182244519021340082353622233059538478008231950334909984437165997515094479721348760401679903793686818754893990721125020265934789906028706472090363255719277466971293254825991593097250293878027807926711884949384271936393331230262399092559247526682260396988125169879208790024367884465656357600093146134463580526183042241782682856476250561332310274433769167424482024260811986230888948889857062246239853248065605606057349166239363598580402959286053249884350140937145314173824307155909296646195828837932707736421986108970056530656802015408674164432322186083743934654618618003342701684869147110099395690407701644349043387606706721725428121102854689990384739739084090631627848667086105328622893825040032003094217848628601190618504236929880954740471437857450483339133115645839396527148987525569929466482752363334236784134273878226388699569102842151162564248496189751512361449559596088977704666897414942480983593831681646881789971857346886496794762219259348822162593748963000437239713293665031727690413585787735974778896683214220069624637543243199877849543083806813623603026449096327346277978666151029674597364614839613105109999052940558888679031573983019738252765617158290999130405799780906362179561143231358547149942532482890359638506486531504137789226059441137811866759110506732224253142863022921293721897806222250702772086386230065064770369819537710182485435086624873207827692804739602510046862468699073889944519231623580830785082812322183510456059157591861113743947193273636250157287762163058153618986009708481525646010309993400347908232170024525062919475165826267598025693004441752740007086636591989989317415921280065852352369142346202866318488606135632882371677321460196232130086837309333675260019728709760303794881815525823471745154058359705244553442746686599086625921667739577923580197384708841256317514739826271874930799462119147902984693088355302627719653749400984787772579650017226283670276170003800709500917806591574204692862611187662868308371606973949295613982045601882191188595631622745853786410312327964594429022395270652449300196943026015414483553124622292628345465973651389380919770463008618071607190329333969024323364304606528641869692410362049568999241090227488581807784346752412143633872958823796338689359642014009892124984705427174610312529477258034771131176505575179185405658991803739658900127334850367634156692336100543094025213150614126567855979082707434105352916395810323622185802012167661769152279774794886965915695218683864823573525876260594495274589934434938960941231311841280194587790422739653812846076831740945789406444098740300208751136926787060079595151312113621232900752665227699089219476199706506616298552245006958186067683712113450894218653207064826085192465576067448488245688084018125932164231349878755026555946451157748043552506354791464093054686328976896422364459688096293410698406016602305108090604719892988954120793470513435010264004086147165885494458925570454645916498077045066668323065075721171778394014746693608943638552511027441906846923200358011987824140688614551950715310031118769264648208898273058265619235262780893511052583783373426045226536151040789101371672024150482825131343799821603936603110058227724571881782450845087855901747089836226623894801034801385482769855133298239078187269211851363342103755412370572334546241363884765441420754478766554779326520045630749056396534677108881556007876819080675162816273353455081229282990914154370406102785330361260449551386070969339132921609762953644510714040811497473743873971764539848905980689936198708700678196592743108601954836287796583597976042788287268394049967870658662709406761319526240636034581301152472267639564527100196716487284347064970462470969147194268735275101105696156517054790568128629287924346250603985894027635512418916394515055955047128700986934390448889129854501916837375594664064646862766010170867398934799999449562744576202140275039340627549342305278661720591944284547551006052733204401036271968358431164473259212405798870175027940123987478487936480367854764037419639412958242669532099700281751699060979137896684809264846340003570232349970844175020292728825434455567146373334405115994910047968619220972532196550899275732389326574980789761308606990433651827219515429976646520749084643170909617973939850796528156164406661524840985547179160907465921139652755587540899701841342601456123547957994548647838690873604968999710366863670636950643912906931942524570519880310915455324054991547650457710257200492614261495001998952388920714424885445748894851322870501649921685467339364583517286571666832597351832193798261992767779182965940578612197447300961686462700617409202283611461368194166363949327529797443266029681781871945138804949001418494868165444086951356403866362253145203899246888186393882137499503627337630501516894025390242714135950165647261148363141818615164577307139661891533802262361962976340568387820701566510492154130378908992635115726061622560371378856136814019965585678390677183391117017768585066645827629622841594783214169244036165257195040781489060472062756287941994322706102499791030745071615046957225961812722503580517132260267672539418228725051731358729017570599399108195348062938223866664431712568581258909964648950652428286363542464931665578844922862688760153471328604151239481202792029036947511761674132883023679471080398152566249159854938193962816711008520940509963342355684462038345641834818127475730832539245114166237217291616908118719821286196193246168205369867795128873461293200746133422967757021917097222334962642688090235884200344085488411422369435966785600796314140689614329899248828282252528722732136414835841780127249543896321088853245858849347333100528917426394527464145765785416224295457506219305801798048013199359744425894799144034273092012268701462173309822752796285968822699471666164557444060732010221907991430680784753014644727805798413650151473065695251525178842957575714641516821246036767974918127953470735617011315829946891711936825714953504500103874467024932619554955605296185318477023081586391290002022675360096128627818800622328477617860924070700454641852792109149910262344195158947482843140872760863417537938786970202000000622019402624934290663905767352873142522133488944103939445483008659973498447972491246321569928611410406373902921322967551049796047547941221805430573859687918587879140494158456250466068538333582906913855684905366613367248744792846709971938808646871482218015924827047650050745777585789352747338566208545403592932599851153695703505035388842574879340357417453998151999994286271702464614569471239103747264265808431805584524151496287456505688243680744102956219194892904479943451841417578539564780612727055009588076862228685794368416309499299583711409794986190446461492404667455910415909812754558123897663716983555766852645197926208843424635313364750285227800914675251435528605519308911562121473195822257120978441272909215720285675698411906575024400043425283651830825172960928159834598914441711928404953921011417553061573444781318892422241275990191534525530223565608789053008059803912188498756210110527663426651702778084941760288459082731511178428533727818271468846029129235609645118682364348061642570330779011878040647154801368984189233818461371755811869534077235154415668771908796107319916275010351660968040846693306768206088645682509562269167940771728082731735426932459426117580600924687287007514583227785746280117953870762181959910616111436284456502428317294863233069009261940153338745629091881439115353590935771524916278171997975006327006899690696893656789689419733401578529814235914289009891190703795886744711008790837466575348985345634639464645626724909696588737703408686517913151461203489306042517108974999961861826900855612154179609678942367483288498918138714793963757969723104185675248039991889925349819467009377653892784793519872870672323501480277855354418934349058386061632647649198046304656166938719405888909950184554123852669823936306680370661451815270223570984689172160169884977983275769805217555322824185031737314770291378031147705992965977280180447336842726287074087796683625868586069857653234192495295559122677229002672847038188045979024203278078832608684822268685174860791904133923184013446194926688493040464441467660045071260837724176182131181456433443630419061817175903786996282853519553230533647115945859900021945371585391919124620921916815649385790540253977906165232000028295776389477030004927069262651047953818933600948736821323601109033230325614988562429359633845987909163960073676299556776691175786213855188609699648621181051375265071808528359549018570865906844893447833014380193588333594531943930152316321510658902091363090099973015485215102027381132246138810122138380580900380666896544814990442709768958198561919231725832875512543967942376340882850468924778873828193458151334196819211863585838284232700979155837408821056677529469176631930194263387315015081151245741299189598322752357616256819076905842095723644925790214967406214358030425996449796095112859697224428482617832232756364543819883405285028433412613467203696250610083701566419188531182472958718125400037218414626345935691284799865368808857652814665095681726658343242053581340045034247712197824811002526344447856147067698006055173290451643935479083366664157721192973696419142828338108154422358362733868384243218363736600184773343732787398433511027962713505771837329076827803690129948235568361645138109590987107248746683821481670556172553025527320481052540012508162057564874987876635940534676399840009817370425495793516442812983050807950015832811394895557541490621620123448465104395575313681553686954369266281616353313090912635322244683418589694900125852691749951865749677284771801505338887617339296713434923638116399342608438418970874048000372277678331647354040175979123962812563049479669015019836501618455213734702167229355430049052005342806034762830471255280261329222434772809849260988569557696615007558290805922997489634697135966761167690080988399450580078340820397791693145597138285623469518243003867458882307900311743637095746384264993377935167867203221568249943897121572629877683058308372777901010834489775512987296137307922733122995176743371769498734200927325653539942239794817808552667407278040430216528937105440466619821592879755767777961294326618560233147132333612608324919627077201348108869249097098246174015434701351349835089287116414941896113565955061112150065030855025373920992985645774498072888159674467347742830595063738377596407213910540149566848551410592748502336067862803692953004704162825769840532279046868324093576443815205874295798758100725994895441809459417372017818911570564303420202773759908991817477089048584290308306948495156493745846743858216796842987327840821814989225392682054514960186293667041472905672100827063720780023245344865583807243074084422480470948670190746842208677308777436824202399726140580791253596991610404420809185824727213314511620197515674180605092186530418126227945194686470840219001689551344958854447934332019341758663354189239804097935332539348080354087181111123424334427733244909745892548674816013996367549729415842204952376490737431493621877751316280569032935564186650931213014039242912740775061377713861088177694207818214835085110549670603980562915611380737398000464535891498367322215863658785972239117634626108745709375027802531543601434257885005156664026766702419722586617876783141303429141349632192217076890160185282656472053310212937548793443356083916820531681439651487270753337083190356976261543251308677182719576800057309402419341838120731811555763768385371647832881311024107775208981442354225654626607507915135350586401549442226748228170143694904621583728981328575240737252923241822931765922252126478841289062400194396867921336657756907554310531515939805255072291449069819551203599206903393010901566557767997020463609786861647564896552574458616142180413139177264199034750526052700282527736375836781557419214171799220679952696098719221444766286920397756221759370474395733816987365873935851540628922271830789282462813970964118362545506717614447181923419649115217959620937299144936610909712670065733882225042373967169581025950250043360374002511715431380615827319392169938357084200974024219285114423253133203468517442287988849845933432910048854594340052112698322929752318367348401778773540287742802347757823072860154875743685078368528489414900298546697361620963431940219355393070141690958944590715036108581908034379258146936464793374000541275001910450871367798704116790289624664684469952710075053932210138512091565909458495348200500759755598803726560314945715954277445632538836258007917299529940496221767835941752831093489645801405410285409446887048846895215025492609298525923105223759582294052823709037379414950776282436844094172867584062399291142939094993190956075720660224516232006937809833287850822482789352708069940710906088912454415697337569902130037125192508521652061143009401495565748666923259682832086363163594253479865782066167835722044219582141058445767341815703854093797463054741069178315678715673193043208356930961346304885866783539453458074724463915544117430687035439070066841029475905915059814381366377922481294074477899713310207174828287115163916096138150055426578030627364204139257937297080723743095534957438845364783670553989282344867697816021424846297348312918428004344904387438493161772858501026382194675594894334701075194860876800956439284334483447005055248944030873989954854003975484752649181667302497388500788333843631308970035911712839209698181899507879417513170373492168416161793025390832409905799822903882450459210681343466564734522524256087632408969969530938325133650925796233064923189111052201438425778388189089449189379554757115344702443116347645811332954683465260149529445169280639500777500405921684481920528570620757806994662587591803307207421715906222565981996474986181358731468822896755175728529065383298632161390681333145910469868051739768222396113157657057018044146818392539274606303216636151471747675768543198101922752745045432975290063826395582733278939677548678852264783590514017660759593093277939199717972525031994403577932685654621288438192823415197498419391416643229882982888578856899016329250293006760672432349028489215220729208683634407836492426541090500789389176715745638095448615616543487658435931171814679477076341925312483818782181255103957432059870057653981162699196831689596665253728760062805294088445193548420332366579784242347865096149582251330707852182412205411033064984873546951900413684373620755405750316899297684166304909180562798569336426922842763514012421120886342485197852606017572391722999788703457109283181545874891788154811005095833771096146551630673955121815234858677684067490539547181360463735289840054735110962414318937876471447153727471634231201397952535676677812531120317376984423074291549528396826516916191424820693122376298837451888127251436895274758576279085339788413193092576207058052655320860908168822458851496499182051278335925937249964416778573956652858916042040860370874370141311560410764460103033097033634142725102885719451390786588787589140365025444330254709527790135230334196867414580316543150445195856610436975328842347314667962280104600234066537807134485682493286888440942874032183893585530494233253607354215007792454920299472075838851161715557377548843440041807315134627565318617205808872432430100732078396105575017963800198736457405993548136989511296775069417764786457414612196228253972102141137752655600492846679461649030026448296650484439111097282637099285594316327644306168834802652638306198718474601370895564612004661915219866095019298733355164990938362806135800327160619637272220328993021223543410868650557417031786604326425700906921230122978137472509602273279613148914427127219856142547041338698216718996627186611661251350370407717378472367262111653406147173895272293905587119102598153663722690176435148689873572877996767183434595767814400889232556817993461540434404384682909404534046303345069653393486784289803733216637919013170904909550919939762869336435125876266659179763378019153937042464304212456898747051950037754076112360726466053897002427368643016471499009811396516826968733772172344448526716827107084849833684567210438483642278678379241588517399171567500150152641891643193897763422089207812090024926129000884348717076186850465579189584493694578632436551004301729096899718884058062438859185745981354640290870992963793130741933462890299216496888188466406512345414567357367471995384553894609010428119424844825923475091785252237756279642353057053378939928678427814841807774078483452430368479969000565793556090193746208496842107547760850608599676887840213596756015897246038493278849309955181117263273899353948764920356844928169906514547761509513312270478937969666566200505222120775591705862883209202117319782342626983213037472714480854121447406138032265797376400048398169963439124758216934009837164842564847907582746541765257552450991190138712317370856376195912488975402404244498173347670313617424808863235159258371155010347444769551633205739554866357606067580191923199758574454968505413095586410420487506808963102453894498486222946717404672321785468573075432773459226937021400950099649841205318408511836403271350868691378292883761695261056621875905025746693412055768251003244260205271403898198154895354091380684367394521170593322711782466164313995942035154954070584598427661585177357406495456508094390281690478424199425932685793186635330618581139362351541948101397048455800286686373116449012723414341273761974505370586442932402302424974759954477843656358736636107442328765271588637637841922209157714691879845439611369285367330393255386459896879500293896328213237169583909505470285390298301522161429101378904057825545514687306809684960458669965551540613843802517253476067641798024825190309997161801076918026916984128230230609653304272663986928924292809949944099447685189442167182200456013039803770366365750935481182111587219389498526104466689473087072458610534232176962509879142823608122355970103366786922427074263849089257637395594131494553672698504415098369861239480054607993552631538084136285324158997531537548030903340944743462298904246415085694012308757766223425718431335379978299387011994124705122344852573341037196505327191313660950278939201933438493803103978082046934139053067991358854307254041725682498746079132991729423474502667291286058421284752217458339252383629685421698841665303529658978850764872277392642715935268773314439792972114176707969454130933466659707857467075106356386696507246716142492789333750961098050528713613187064244893640015481540217108701021462641803203968450330565329485021511341345405506519929870187977314752726003234187420109577627615127096939588910324864384508428411818306263954437940429160880580013574285242264434088201780212646847016016764551889365979957779529452468179599515340283037254977864920809659287199812249071855485951938442513829252480580509814710691741986180021483084001225212660747865364792085143137950733362071059347044661228691368793048810491772470589466304128271399260838543509324077658683329797327515056877568210791493380349907619395929988836845836527926313287772067440024765289834133745013803181775668741433457152445243620756070829072070843353748438691684267430822831634260625579318702136661505897683921714927458705281034484824668904143414756626918705780175048175308153111044042725798251508003752985198295943668462075249585536257838014766459245967075172947237873312330931076945216181691002879650963332476346433314654054237604906284962436130652306862523136987295387452239648466581511616731258799673260782397776987691256166719905173098678226261928371723506292010991065952043045737456636624419531569431916361839310703131437449528281072782318965251385822856745579271659404910072728306051788262978489570262133987355579999424380527838438060923009931352054888591761919997097825489987615852588048773863107509624335157033609996146538682209951429554516754125275285931416473606034882702064720706591289172585386960508681237422818296722314287458085243877665105635328004869395306306753465733313297987165403490322282175758782057611037971477031056355443507742558788253469701231248284531829879996082169742958171993074131535638676150201140085733186915661549040883058493872828568003309341291880522526828313511309267204359573537663879001404590485291765315997428009424983062991898328067964035802227749303078469229769426114834066187125070170142448081912327304600327689024741806949640867084211583276257389840094866221313801035883564502047593492618478492700875965456690510724231669767375820576523289695161172023852827607726827208122649465882771399203741314546464266328017925644786964165953968812129456141727606606420298441332495113291561883666528259495040157044801090073701859619532959551899253440068025042479079035293090776932526910519687233257282825742098567659941660361530943330997579470548807439495058042103001997909725414750040907339271615571576785863475138733447945745269160289990501731506954978288859417213324894045043965121915490008993124682215504957166563497038999292662837813488458434962619307578338606195871932555334513333773570834045079223330114131055324351577977249319363988124570695015115402684373308206421457476113816777616012455879482431385983204105483374420084706634527990796431957235996413008473192837190655812459466366302367201877632410520229483085536025757664604502861476478145942316002861474861840724323706783074620225055972982057023895452450954091030315065719761416979315405925165470515637024068477750718353884346076338149452943501971977554580813771327675234111084497284438647342993095761083410466433643564565745583796136349171067794704513795668678569579635661039318195505504211266184980018109665953369735566350262013193558979011824081731076817029970749383950479107237936890314385140197994692020069622919667676567831598380276291449320414924562909975196091903865076607816015236411226135406296646503618019738582136161429228363811073803897302772339898318799201838063389570712437215038859788794184520849361501341870783960751715253005432340281528608558920933308539474586107015420508484616036748859416394980676143119046925992215998641146276616048207658298826518911671187412422622136777428114023469436957465203086685805550890865149918754744432441408057240433197459111521704346379610529858293277135276983688107467420902217338171920007212312633259175834835607933943458512633993889058809449841888343102211259046716214706611942575596390112454421145846129299579871732190252664476601632752885946432614164153328064758953907553621939694150218794122828117964680504520340057651553349280231503242013845097903441005054692273100779149838381843194800168523975572211863969912361529939961784268054773756973300751276801851700230719589533709808638174836024383891902901877248327233823552014791445893597502380313033460488464152142506279386263766610063460317453072393107179504485178690898548425898693442066389375865505994495849462400505587352686160745872162162730180130099216930743316365528529926889015124500784035807387678709895009082013786693819603641877037864480309599212851234283565084968383911071421683949804030448006739073596314148078110858116611931464298250263499485309090573829591766185270045519695171785371491908421598200451280997320380852195523167526367496322565383827115457552455086491342925029757480103706792515297147120650288345175490743621288290039854724989737454761038887677879322995126847095642294353384570487505746051514098945399580924814613290844181712838700919183602222034582509958434274465083511520901645470503803019030349111426567296767645115373642923316730634964273763012845616056190156137180231634751236810036295186724614696829945904074048474125396616857778341771264732502772001277985997905488563223162238304497109475918882062219855440871637005947800833136477827490589205269403503514474923100132203909668974940465863493472760364639089639522190119724545119133062819887487549963857060588476818880936721228756143237239299445773609720478031743104090716291358046180065037594045383433544929691811672333256148041393427320128599198833027187221395025895473750922170895214811202304671020740995316559423780998711514135095783246914851857255963852815685516195826833287433653647675731361800645140912084051304760579696699722858348811093620617508345284271570275286074049496242190029150602834726682844431010649091169465389167184385624581147745471112630778929998519813027349092387521648962143428939509415179191279189908692661706712732435152024456143547314515187173016889424340175087574414670816863595367392514687500301506981724682053919786783214295049346167545564851776445508583135676952439866624812752788090231250393625074761809575841592211131081397337038965101586053185129248088478955483153513959424469021792894750514668900702590889572698632658702097140299022097292179525306933669993846846957779355520978921184343676292697852046369573744819497457338802797570364817579913492301346945045782457645876463127786023113303508206499260826760167807308558929646491009707629388235206744033055707015895760032539970410621375206650407835027152064641667245371766526073644372531421146347208606626508678452054816741135375464573695714335244403918209445272063568623652163621712361436424299006498306929687238020846105900009484486441659750900425315487566775768599550282414312416382811546743004749664741936729433381525994936919167773518511308844199436321095516831499050815830287520261318415326759984380734785425746057906263083320982119338154232780871993697828771433757324803522636690177006585645879529431084827689808115144408781043251915481416966696788877808550759062445810481643583276986508558716128759707087461099472129258207431348276878819201526622199609482486281798358390929990500943753699349888761648183279624646393839044707308094505074549140381119053803423509836100916572990453839311205167516432852213991108194866510699416410492321467264710439805636703322723592334256909825997124077142367642997797611607798272782305662707485831276313360838304433124137200050906269510305776979700471206065946137916545474023471985171721518931961783696028739567075133417860240027686403437221508204374577430519530690771971288617255802033380300041192963194220004583156426748988064708369241254023181211725166821836270612437779371434646412820249420419104021860359168964451114399179986542137238882362897078713252508129750790747606001749009294220121662318367316202529597335824815228314703537935378011712775633755927515102460191773542578274575024289600302462139438473508352216600899828789847932882614265049291455343027452204739981997109667192506753928414546702483362860423633109466933401387866074700902187219605078170179923791785429091173481427673991729241854847625379862090339246359238838607176819733546936582874729028007726791641277360721171502678648692545036256384638655308320337129420009888805655525987190027738166181586281555184918979231957764521423804376913804781081039274835349291192726687210181063919354143073679606112935880254189731418374168306575138226798090910080694963849794947978241130100417844953095802118426746868558694335451703614329924069984894290515168923495599982064080217145810515218686149425074316419179887666011831222307150508504521630764746288905626725860530151554876910313750268448754360832510492690176588776454495637083371165778675868597753634549043895773629332973063625532703499608715326864953049762036642618738862714258798706271830871174051328643382699910897348244110636912216909777171167060621710155168298641196171245036574294091122185359902445128115527232805798606190608633122676378071986074567988821752120654088914118185769163382784082055439971802915547685339980048412830708341709557318460625074525928499999216951293289949479170522659392323511605668439790622992597780825265389410515732101509510032799415098844599460182010430835273510568262115823488002572630945161685203853848969405712014544453829309435549588337880524498846288143621369080969026068531966431514567340945703822129272790318112156742174004177621193063070904373490441785175111969059621588344726797103793538566694128622871381332425119158541216757420443801597277105118261595775395009160547119603081156125977713628437996865348840595519119741742831281852866357135112505461976390301220024602932950151147679695193530007627305775556881822634464429260322921771942668855814737859422181374938238065705917474474031080590669900009554854163677983918378302929553927223922846819361519818755505883288842220428087712251655299083837123063707763687438923920876857289755982201231677649404433752000282621967559701230551418673787763611808731053806029812773738178914476052899067984897069214003953804711780316475501321788403855109250831388195319425472836632110407384056184610589184204421094676492774572926309039747464092683771962791524585123515360350439634129415751815614396775539963681271778352186754629621503090765702133951537588658787529901778841796552185257821504809294696307067881430053630457021739411337453331778389124730643682385325176452184374007226801726491158992820392015120380624736149601066499155580462348469918985857346153968016050873920306083015245689520423968455781663089029264091018195584467371243689465089991185683327872666313287053811093587779534911087920015385443559443934715926484774383432437475849666223681065350571768556375057423979222357905865185648102921397851733886917165160780215107832797443994329407249422748694405473441446890779916210578041813315016095799925340639914944285874729007128605825681302482846261202663244304467002754112428984944849428002812617874873959378580388661673952631871999734303606370683404435211442565467191773082932955945914269179313436266055253811867672909677651605396366888338282650906814555693991637201796454618703464704409218916536485764640530167612735290400513237323195740639177273426208066399502566395098731969166339181651135479836389776691562490833962003876502744187786005629914471019692696328793906413547427950673463122591592868364748209908659253922113237416379582876903683769978543447532255748227545866292243844456742917983885090187440733585282567634108665463982198518870718995955903577514576520535796764948607459572045141907987394492469262001564602655460644197605534079304789412849374520054642878483080204414542861297502310971325507419265124943240730597144416431295346980415996645399190446548971372996210681316551771377432365928525928476637418164545228512963091809576117075154863076038651886081157550442602371739645447335778252715938159543739454542938315257844591998927110991830922233348288100461090902973735282620694504158195851582492592047565750589493219007922472734978087044679997578534102153728736339324589168946471777111019880554352215178638910951897034857548103922115043637374444215448151776480483489621936181811198322869649362415456526583746081708282439410507299793317635612994542229269054096605113531169320770335667064850267443606513553393314420879107351990178947377450133602344113124044764146860265754579086550882336630922468555747280156346128846558525616247699596638342146927867224859915485542138482596042775123911077696338558929182642451854552758396171189897243784967007631623890605589822671210646910929452346877161307623101056406555746584079898483436492714492924154530986912569023991215984909500701091196029157135026467753581625619144708354962128389947152688061590345692396761616672820658207099557924766672032807175217787903161168039130912638758461919424837184993861050281971568938828757456923634085244872026821460248789322417602376744481692632347469947325913811377725107793748319617226281344954527339397630063701522766075547176432207348483182425707592823076146738808675483363976686090255377794146067180913089208285463133424209645559057107641786385795598811286448755876529750728999988217813766682092527060236803794820293737271820534138525966404134818555658775625992513755133128644479185799985808546413246409610894683620556968713119436719030284004351854612274462300530028949153692398246438937081959101930116856493835072658983753186648512646046794903976702295517145422793448467653322153981236154389811977822302771306130811237947046404249865075922519650176099569735856450289539625480110624552766883999722007286726612542308746298530310398427038039435435203018802943895968917496261429053208768848285467398626771712500421230825453351070683670366570300196694592841863125820163087986996764809325132443905238075353464443483045856645817286647576499138857454081389517322802743136279555520071967215664422871917178373329816542591121955874513906647704811915366914281274570840547958047924319334023159935033451824658896127147007767061410720005218174719178657321089962961647359930940753886742622401551809061399223271770648237558046982866374742908629115645127166477299670212683913662725375096235976979534613415682176725737805099578752745995937548446711527900811013406019789350357379698229066970106380400869932408073768628081556097543106749308572942556572793188650260982458304466806106898480086803424049286675524350998052501788517815584878178396437973100466068797758952092394015864906787089558632239258450289818752140487301119433976851136795529555310373582588726012899118537278490068042193182647187367476689684319255431619019164358792224679313431023409337161449086077993422167309551250363724566167848137530523145219089229827439895943688319468402301292345519214904624981949490956343302041555256730485563387191623067657802884672238397270822414769709007984797825225046143169977123171563097830542119646399800637523132338974571748212865817065553535271947763685267536808515302852684225391925197771049881590214728128575337043744740780889317018176748335847866537633344106042104973467714304544686907023823936242721739657224593115883064912910340458859409666861403643996288504513018425165785042722749604388725379383888705173043960519149579806896466906590225038852181934453133531952098440386470609488139510519945033889834249233939856477321894357722554963988978382678084755852411200070623019056857120896308835298318246687487333674636962253316294921920525060562533679037599380167729566410448412941113580661302513593251795576802160983105604456674503481407878347205699000853007673501370956858777992249519293125718670067357526302362747221489182391694491726832625198138343849783256102111588782957355909347652205640307971837071759143897852278882767711184711413915371887538063263039315453702446814162102327719148697710560514986035334646260529608807877414518344423975309870003620398209567195743677216015491469148933955028849212971283014828863945213324902200636842559933119647431412301028644481111310060012388684975899049543691868448983672584802901090102674589384310689669139592405544875240810320693867096149328812353426278314060585867679063177446816536394346581881056993307127069533667758007564023993414166628974174086355929423312889998715726054390887950170243145559920147403003686690232695136773139251787851387870454078255150832999333964989146496057495728568255882771513663921792981850311248423460928814314371373898514914355313462913819480808383021483004584595737690511141680005356843012157964305948922402699167257415225013452467351260271176423929444394065982314982696364538736464622910338245105870116337009050469153029819078077908272345716802944749892476066671822406802174888788319055710171182716125488802398462458599111636065726346359179253254571470056510147279434404328523385553764347165969947822203390956069788130291832541670934912604651654202184115298071072301794618934444032910458592320985678907602356991707240537569975503662991355386544009119431566501428170984927272829166215997117880380896613294998057591082357527276975063875089106574834145352299489490166481069892797399192986552290379507447415769499278174827732631686811299559520847833292781266463229799938796902948462843984787600352279109409166756163043267039068479775339245773581463017454590441309655985372801868793136084636976089715511695004781937467458943257519579720203283866259152180306978451380104581264407719359043449234842258278323770883410215106695542077867187407468526589303761282036598667493058609620802659274775264856527839546271899169551748475716186378737948243061874727557296995428336001003647999955433628649683895893638647962860366964389067417086314829273826534081814687148651486013956156342969190392714423077307206005636206937720736052037120001783331839723147455958202847770160181548215558326706959227570672957837336053730996592629656320937461851939628057346251643293970063463733938116781953615902407365160414226010666379598910865278740201567461853864514963547975378457473229649970508565088217206487505729168668666253837595853178868303031242546733549625438809809928615404493187832613404727848672447925180857178772222138086397104583855111897389595605826066724853380437578359837229478660947271126190284095407531437067659340926910681971519445242991064972931613898410086323079747899546090828899842450065252571981218075593466604618632031024301900992217129347575871251368197656379518510947072283853633517182833361877312560471517330716763747565469186642867401649617485249967002594217175938504459627814913405775670692055186791979259210744370544441499863210913999152489632539480519174775272511070060239736177679022153652481752083996600590518563960119278454241300616886630745688025425722297293597777808031783143009652343925692854480617561390624731138416222723061372462808936987559276454490848007322412279880159374209649015533871306829332217582628151541012937360018099782292430521228979502015177678885375762750472029284440932062329447608166824332116508997396284692407770753880912338866034046715778137548054194938565906939357179158115635619657029556957451751764638801012408952021366126813141430681134385769160923691613563464825416476504583052510797449335216973220890423012811070823681887683770985762064338267150897354711205881245643226930616381310621390406865567250420198219392639073370299292699056389271958794700132593026816034384584307503545108149506800022655506790384564343817559724238718722098161034145483300704212796075797962218733645562392280549825160978797651545788987358502041593864786996299365261803064863571092635644113379634166267613297765994702700853990957754781473154186013676418342711430909116019697962607075396435106668822817427160149453842509801436806056678001535789933571054621305229220899883142316074561966836119138360826445165683264791314467796791209609548853135949763614427365310023373398948878702198303443272768526919919460159584242594643312859777582936470462384109205741095501562811734465892132340703146866043551123365981072789229116473911192012658127944066971283097993739068596210001317243767704246588856109005233396604000536965280840772783949502866542820712945929622103036749953520641277852720575254012432462967773845903635474611786857543139478166805332239441090889857076979695928848299635650108831968932609042571224302858557293196590734078515145425985415925094154999158458505604758600014657103028964887364826513557600679122998273218101520906709970266406513392049492517650896312731172286803978204757383686506067946652591841326330730744117872641570921373611671017761077689646260326871271620443826159231724162640077492591642809236690023033301907353584184360909188020350434854717406081524768691248561463534364765817929209133850709192394115132506858400022507268102230545041250915382376407951678623349874459265266005293031750136155387234858076399603058015282971783850271803710545806784049847935195053552604410865448331655402886463093438570969146463519986764865768005469729904131156713057741882126038570874903295235234571871049913990064859399062603264791356280190264886355273962745300511238024798783782787556278870439587300187537156523138620468215547791628624531394091496248582923739192308176938155795015520995158493462914999903608814008151156904757664771212845921927738037195457016624847711631054972467685270579864122460102377049680820455924976164568629496206075777693477317925301992394388267989956832673929290075301435367742190692529703697880014290934496307531348254637204131688062004237712544998602967730726428918442469913172634613932940422342370357212125467535924408649604250456356884167896653894917791270634503977556726397348922750450613295457099419947592083108738314527702293928381713027931785566174545433052774872614502533279880669714489157422499048554473238078732614872525915543598019887926503485626752839692244877651778007818342606049340500758284810757852603856196630143333396613326261169091274398034708279591452401907659093756430910160570559047184687807593581357800856244626154712015435810910889625848489781195103425284178231054632556079024933861913686560395184463962170734861515477750972833386025346952477302993779467386631103975684589906114172140716046340465197482946824873104562016452031329251876298574969249263487140597149270048355842144345091688201004839057132300074420857680084812502467077934745711356859010535821499270682831829436331924654051780587188876777638668581523426386436441410603814355562697147694862972070377079101173905888418646843215219236749128605325128984241359168859334731053495789666146770566791411871795225701640935097585608793224754720893792881329199700644629115946506715711013915021108887464786686056028042138092418688447749802998854925200812891752225011967673928814028228541479090035120453968080780655372790313912828905363208253099160306366084875898151298992535355010446996020690823323106999164830743813732644982596104851156632892625095251937824176498641708202757293220903722689740830572802339493295613005115689396723600645915460641207897886257061989634038480041187034049242794385114372374667319980576372369021017446247173484712181030438049981880971358323830743021836732133061270042367794723673841093554722457923208281656384870562696707310437114742973907669370800281678841283611849753938185676161618349452205873147657310166739521694844726725354694883171642237945431239369044254905421242703813399667520535534441433435640268157885798037631664641222096271077574929692667977236253926196537489703557326848422198915957841069541932239448657058718356527673874524770157203292046776177498209112142485718681770514945211033122868359370371952371071181862359003860808350520996148471687181218936531549439449093290496686864064213508338641998611470530016336615804156376485535666329168059620289404256326893709714480193476254719387297968939728577287955995501201703657818237747142016244074536797392093114533000021312254796622013286569140425632451528122240321805372328299207811461618211684203187143802701038983658514779657466314956248953410218262334553048242206841567272474712695141313498947235416880627428252364097828954681293711020335761425804904016949501623905244422952653844957009918871422269367339515139661819143930148584295778428708419087080418865150155282445251055507620759548588667997266466254245358540846376382114506853679580806127001480198753384750134000979737570294216494804258087594096621911225389287512112630144648428404403570960045421033055428467165582555315943427610512065104691349102514191585443223743189914082088191899459993007629472156383527974813791775448070216806930580927575597356405126525777824590149922468203766306598524113012047671983728310625728435493685962662872753235479037909239311657489886203281500545693580698485103095458150954026312135465043421762206248455203574146875620747601932281736330199495005325880100914824607085812061943446077032873536884718111022761104820603021373510408142232983317857743338947293027338405990696621275502561566984633994053251210891127069852846938547206381095805805138467017004943405185208853728840385719394662001079624599905882743838958997377304142002741813304494052944495323583216192391979234929105146950449717656757328256958285356278220694920214616609144935137734295770525194831985367753500811091832704756609269214288575384161745150222502174443771244380829029012152594047745029189701806762543243716498048431524628589741777625213252974369972443694535869408695793285830189282468743740843448387325694968994537676166065956875298495758183557051358796012915988007994488493561834036591151390220526079458336239779035803815612348883542388327161707153764671056841748574552732092513595879900378457386530937084545068657580560779868271289604910433935255270845087023046916088300576116827114252159687391641215002462150195932405701018756639310501415729010956619997825569750285375209054855439758087025826670687110614378134607556659537902005962619321366604911632979916322905586807782124925666455941242864227171596536246117859908777681455317626192857724029505833848284170688542024548374070399414785125679254940912944319272770486428636367387654285967443553807549150413184629140147668510013170225668785717834782843209451107541415976293769674678530306037860586078858527840239770223228746945879961547135407685041920166567223544022027746599374661476108135655521046140998496345684649161001012518489768581136406312480259902808556251549981401249756709601793074352221550211694222938235182650930036370159050576471825893175941108945650601739827232699112312306427718542775142274542337813213581513313864452690809303162590407808756228491238002099998860674919028647736438055116566043116871552377463081200400263128233839841588524411796310299892022063102295143817051985042277511640213378350768329169296730107546406087621422302048962440480453241128745726031259499749767974297667761270593611851636477858803816925198657250325722871479878300384609835804533685420177710551111972837212032772324147192422031589411392597910611042161922520699447488953187173344229891463536706466404981056244938723777275882795745601683551745844194876484271198068137588987960088617313630090818016879799815938439811295968009468589582856898764516844485369257621044330160125319716032035583260504357560810171885465996768110626368404830307661778010371337265863065722221457719479058750597437347897898809008666934576676518183820298635394515606011374590642479436597229484045569611754666989058723429475598731527842645511233414878448402209813209024958838372775164131139824535532017875447516452776176817943233680811183425043003465555978095413635066908468199274774335569699905903590157917542584570069784990658428022975046720192761052578831966887973047129914255401227412768233359516679929264193126191864141681768999454897012270048018404281889947801099532965918691648703299701154676670240043370894552358801128266560395681980498274007906038867158822068844185575035453619286931172522891894441514281681330335382872955661243261455738489121547292954511975304295076427408517197157191029302009291910506739602150786367057456886105386690384514282766181841386560239013207670408616978120271048782720653307792847342867191474652994846299406420154452346946530075619412466720769002633727034701817120065882823475238101596644350950535422990154979438830205852542383757040966348292853648082739757338149883843889481504974050561725448091153822394415434682929967056226443393970381151976583874639818016446061582105913064278887831230231350225462469437828740000028587776955681005372978654802870125489793348559744982357031140433588225237225010150735282829339552703440753252594363914728938561803753913523037148767907023970406206524420087550526008574538509681051478637241508870305630625592204768365093990909059393975213507425008511804218188634708394316925131395585438326936363976726153568095728951401593251367258829005164685326963146840207381141268033152421036073150866037936635407386828673779481306002232096328512154182639012205342525985478265458564331513718714386170477347732592309783833656478471110692604664879108772315631863664738454808786584908795978197665823194957148258990682566405272185055760819232403808356009895833820523822419216007601193313586092454007648681882743766025000507556693464174712577314945011525904352232966531521768278700892435944550312647390973567025531090005145572201886076052867815098102446538836883617206190983819855224670769623454696286665391106830153675457530766047982308109939517668412242545025492463286746279990784582634853077107078924842669136593245660576520337843940518549698459333221837630470925155272964429739150886993284825602892352891538632064092877000206227695429044076542126753669899471665519028751513784554195495332272407975898895522214276242782276587846248338498398618165513083593524523299758287474653959096208068703204049282222858826257840213652946887057386021375797905205108583778405754870429612058628896610219699761175074958663332903196742155191674802210225574629528532386324826810507658566224219813058826987107801440173772617507886008672579695454889424705111315292039233863186887211961774177082605241225941029003535589657798881904350636252008148386506302678615605816896045938178945236146147629263615022498632920998715681087231878461750384219716546364034121720269338403050365699550343102035601391142747689190140064488312375237340098219815971859843898148296299245291751899025569658080449232064130105332353082833907708789258894171339809952351935154418469013978764356571463672371322298483292563441949068644379341186090940461971332852210786827685648602630611363433694412198418883106235260680290554812815943475806792986018890064269105201693814092391884229883878293567211907907238831385834180861648107259100798413572704327278686759225348759273877771593645797507111789047652447285288870506618350730670507308726152248897962455811818326907766452590541600234722574350315442174806588811964044351486397396021477387959921374557030302239730634178897252913258704550962143786359352192894953277822849686390716195394193421839904690142203214990279088717345696481195499460229480418902225639704221309307892279119901623185393131782809865582142581856717685210659070568605625126085633005958149070593212868286828550036644993887315970495669934934782266086276593793874775783741058829600378482168979915811854533499930520128900281996353301095145234544324295793724271193171554376192024317368266755373697428140364874743945412910177129190844004637049864097663760023226590478656317079271048816343230921884452321503231089597716012317925409595321913129383281326057408886696860024048033231899081488347356845802467065443251231160045169681818616033358084725811871284419359429342717642005352778690825463118480759700990505015472628486550125778453971045788974453822442118137267147976968873827538642477671303015758154542697747189707585328965652894004951244956401883329779829606527186660544344850440570382353058243001231435620161181689510516376849839516664784372696140575945940890184540082702332778289125893794544077803213482670826971045803911197338013968336127844550720680450471970736827174692422362357969447057533983833139581460155134103770138455347899472701732021948532759219672968934254047220703276125406988919204653341881607148788631760117261759013434316036248076696620094157441399893575997576447660391128157517881244297234699542020467369094488537993382014296967135570614456791233549647892467299283638638986159716419500121885975394630283074912679415680968056817948475317653163714979632876973294293113089607424633928005540905362057490506593836254129152292262204202559955501136443109609456014588945371737693478471408726052859376407952663584225480110648889971402529940541454623052527381829502816431153910402539201192752300644537579053094758876703024674229490678108195697988590029267841972581633748975733668149476815384402220169704446883210037249791949878839194946828180495783073539053889321834812427497272310489930052243338192994801898303084919511252507772705748471695675532167637008245842570999693604480976406472008081730618033654011603114647180586244024684896709234355685792881846929597326766727064578523687808991217082963293442675236459798741991075391679693476489695674793165613314616938349203805613135841541981352203727190698477233379335184739853013468096905488208684269247868983031205867435016900558762873830447116826294633676236087056192270177979049358276563503788456200209180047426430804670452275808289735798989532195098332189170149028830809387906261292801174486061367908392024919602255008785999013495968936264818612300308184497764909746970204655274638647976944876667642923577574184204814280436656053764420228683388988159441764059751170365163661713046569941363060125515647066662777382063041984346542394682588684756706176612962594696268313657091320056931639828110673730808749508450986609452864909631079657020581508159136647064187860655227807971748425916642658256900225442451069871269507919498360857096872066204686763795832705811671493739816832916253401383262022615930484184300422600897647222281152669141037331566259255084779992161273447434976765025617818083139568256591143388791092722059773303975386615560526819801122069737311041001184387900387236637501208026304704462561970520316409803310394823805912644326074294976222012051699932423040343269502081529802618421980110593926847534348891094250988700063143243673828264589609308216051738051913834248168360072737809963475831246963312848768202155590186223588712846326542335114434108554656763578544275093870772404625055787207171969077752569655594678864374895346591678359786301818975782766856802938435573517000873450034915156515845524067561998477233929927346909590121701217674316211706025244375048389728482061238249648884453034717183418930514749428352632705847960033189824481977213302559069226736640883447414919325373552911522724192707249972827569450389368185175438852662907786233824397846768402805042398723910960718388358007842649418454963272055747727379430925897599711872897694951700351564626351003982789268892575344247280898118221473234671012988724117192890683152982308380646067736824439101839408025623993219580375069050094365179955080380536083937440130952075452875880919877034008365097430085819539087111975280486783765507591565024837217277939350713453597980654032638071390368338144173715079830154431592294113061824483342568521253522373878692475452490661804288462510880022861389981252816122825860018289011675367133611842569245687869300558152062980655090606411051771354822918989764479291232380292811450011016537009702334675826913997599167666124080020014945464889639098620494211735972317181923660752725615176771802677076156887377649979778933229649896495487311903625471897906655124097457237561471144560443375210485747780006453364162518564359383850491799187483432381564466132959589570160216833721655222799053202068873074929210178360793436410031583997668203068302588600227739053645223000056972417968862241069338633553844002311488890999423346537379842810813571947063219443591060173678632432675899769211729653977142366199318084423056108608727694986040619637179040601076945827977563253608956958602233927595736002950592144363510953313106524998258525468170113830153606573334348847728140590678083896254739746965825943029801890919678020473460224933051998016598209010304662340553148636017534609493218356023243698922778045138965223488988627786156670526764480328432976160706486843218690532042538777208490584746104198192667819300833016997884643372503337785912733965605999548748811721201047762673656811221703457680823088993265656418770140115487328060711370626816853439816606993638752035190387994185675822776533561096474595620559643827295438717210293667007831540195999593874381673299559480588908864648708668295988750659796588095196121619936268314301756920276483132279941048774464571333549725403396928471166754658591160697643014623522907052593414311741435125013535199460362090424613734888900892952124466488431393301205409067195565401198668602087286127388274125065920636696392848135529673043648217815456394377940117672585802791622696964398929288137516093978893292105167593135660650902885294929337232605482167235624783451580877662064330273572216018739535429264516056191524965715726591594867929193569472828679716321208722233746665707016203177503663002423035246815781388985662358269908809364329572678586138398159579617933395305371302260768883907015512686659463020778138493670448201531716737413848259798742311936069964620318241543046907274944645193775180293692869246662872205503910229035683789653065753825663235683318655292389602292423180961506764149998428677049248437355400011596567389555510343398377930440990968119175842070257558883535800593126894010996920071767147744109058678933581247074615829118571014070082530205931758641533917018805828477240041746704709973255789452275680925229582522928679978058528116815865788871072664734443847379515775267386765533842215007319050603001076578005479717668618918283849661463806339657065425987622971523001640515428548017142621837273245243754256485379667553427431182623749564173344421897310606959915548015591940056165733614290292705744334719692446976091183874569425825897592436687856491034156532812148019950414167051368545548907968983894928794550192249828154386320308410207971524128758434169945217330708091194133420153913218458201887568201959074274781127752081165973550420637662265102461163193313409881224438544002310408930664155310966243821927403803946054921960583323782959630718759337368866667326903735119541697479594593730753808408646017385665562752270645276216353140052124912668280209876781044171035053050365058354569788260820354604917591748657272227008011998531534946401424121495530052289820551047922832448236213321876982401491859036355590898153706074199777352843790957286981827541772637988879780153057832109982436594054801565044185671612281901023164239756532722538392252011045255125410448162321450290373598080352023501906949870863427022169493016003101454247195306009678059078305864767398370375867115357493224022266362817217536387428418056684782240282776036722580676122049151419495445258834218970714853307015246240155659370129181654380255876239540609543233432541431448374334129104777468401375265387882601952589264805646134239154475293174933413869567941084218264218329271206240356412995831106327714198407449946773623010001950921637760213935414186491276448347701930966505866383221722190596483161797433454597952831161670058247697611407441139964632331006827287952984846345033732018363232726518046987842250689800836123977238788029693688100639660346685944087211809591743331791425678133040588236936653820349557936649147059048328396255961578102050033519724277330700905332944384518919024098098845537605813453262197981006745371926949933180075002075662210359085392021738240376585586140796778969371882452463284323447118130493046748567556813494831228027994774526042127845787370459707077485435763429878400364783464689360545941221932258530662293480019884675736552774453956503544447536818251408117760660437105171374938438593127115219360791237060685210315906306904550312579603609040300112161595518512802291680436084589693838217780089978290037501774640562662759518829275653912996380096363290275664453488445326600137885845197559937518294199949195573270988537398858877101077138562640196975622519933781693369896743489516929835469697080078574402300588552135193173169420248171007289359744596763311105599137308355795017633741038350781856058832001585984525726789958027261084112747042271556590750710667543774461023698713497013284907384212465989373766429631502488500766446565468121376944976840490211993512498156003505677155439576332112564655593271731379305558564316499521244273223429479255359756571700808996581718468747234288724379612083130675682149874231259375785171307506628936708727391483918413159945240532776926886903695219524190811797439919468662257517152704747704814314460707658753003855274364562571178246750525903777235808095910935562119128787303093311333096534956334558719653065274412798031582979485050228414133187723713820337926565356102666291144402656402423674918170851661924518436100700947388330133703733847352593488990828188598647784066862024530771726678487717358110212805506846257766098210847733721275411588141792634197473418195819659962680717233794569339445837052764593519237785155041007314633508470402650837695477269627862592881452329364754419805769223765302371478560940952590968339428745940855118270800221309853647530697534713492122330647863871509055197828077668017628457161985088543986273076076600186187950927294265099026213090246377688422275020607368198466567483832022139025037886745879202540222470541508948340684797681019811459911541525777526998095606435506145420032946093678444041276721396128894012075474772360081305310909884961022426110681438710672176318815904969792147098788467820945376438624586822380303474431193669271240109052296510974565376314494934488755458588163339227197603361816538723810814502398919809096822067507257723375371739001591240300373678644514624589493938136304409404905666041501409116596098213088614476978961783934468297621024795745527570986600510999748109920051797037089720694459114254026025182109255222268717840588194418718861915711095282192113940119485127736401981573616210588349727326886095793923215561880157964420421103021459065175227446590957777521260469049262935285821694462152776686015439864818244310090829156049054002738140329208578501961400408639569268454580857642150659138396925138406229510605734375986168556764647283514043957704201008101368135176393309261942533901528638626525248562825716620290338245647972805132233705093907819770063757235478767169625470020446862786190590442505453052801527345123529111547765575166219526284660345523988857331804229826009543287361818916539787585678161131100074260611307701652294298028298084137238497289238784133665432238319061097354542178396068786395576427445424747311019305867490454478619933429197978791090633913490821471488958902952143531001049886267540735892502700650121356923609776985602081104387174437723988365222710603456391466967793701990078506628163884973623968328229293508121124878334841924474826673747423548575586952474076434935507699232359691988685421238775595178259426477000879907975660684257930180760738632266545367071277784177635803687062352304333901640807181629433002145155603653865126503162583120834085631526941780098502538217444839942418308465412679206842025366052760748523274069137344963390512423985309128075411400416340761229464884131723111381261881334829346215741038648267300861117058880645114832305810022723367436941111106306511936648020632045140893142756107477804665253697401963781571692145749997765439160434775817999821546861206962092226625308002727548193185734578667715382421220657551878641363821814373115702964423166590987958095828693843456739928522095659527104628050596927033449096843625802590224249797937820612823203888383501456271035917093143225681473107624780471035723626104894412396647954436526134140936078498039865560915664623193032377011727903671829432472979272221139847223240598158278922166887588885369383889849801726505930476165940255252780970839398490353401735928213928434657937049335573461445204196032184486868169532991532152582049869226695524751182099960352410797370687281039960558954989816954661890298271953054233760265190728639849086766549313050833829217435449106834096696839279306787932442738719162683227817442209028135646903022999985701987635546114364816439908154947522326342878087170042998921002372837945326727274317987288156795145297536093171726334828917980431458825347467694169599929198405813828966201882802409210448626551817386490603850659882409309610196458811366978528459469358716216702199736676781178266665080839360712450267399261771938051599859291480274348491846860150494794528947635923523298354086220327022857052247962769173058559013960328288462707928603334734741597969002408293358928161737542312093301770554571491358182371086197368469220510644800017786241067901023917449954583369271036643449224951319408415285728406954760764184640705461820425574368880740150706922103755645040856793773960215892936449956515672011065301508705361779409662368144369284003187511495261552886974293662109163988864129244716710089577386257336065950370827647996180013844854316758767028393784516386752870969271384648276474403527434185677009941884219265392953660889749669729708078679278682616906278062670627896724610903034886925646144080009961349937433876809421473131566147069264153697884043385987317573518065235467054826400094768566420548531836087478544499935741363842752771469225740523962519851322610618807454429406555195386051252244487493512140623014320868283749870510834123391549708451485619691387013613014913282847765207280553718700895256694191668985287633026474672773420419783065641902456961336223505165594348836144008127360391806976503776508066423630590388400926422920713515766567502038247075833436566693631235012315276521745294654135419827056830904825029194257323843296844622783402898830887607420253960157170674418249917305031427201236022917785120020359069014750616414714832820093583306605467789733879819518745480154563314293750603079151376826539490912789334480434063495894686981956668011804127158600540648497073676318987913265400166359471746864842158839941832856139425657129563639830886651048561082479988764638659500088750428641929861361249745207563124245339725372434928569185461761234998656655075387611911318640178781921425443789219909866700446188582908145845793532928764033509939858145967820181395367195604593502613841886772451899910112976019466791408111815664098234376416352859476786809624943614591982975312532997222887019576263073617643071144098113236638813874335768222973641791155140940436474993050377686585633942216613844433378867317004637909774589511741938518785822209310630399602264004243760844293589147994022140585161374812451672923222225964185314496277485768597902778244814734567376632807699929093489675257228479971282991497005241497804157289858781593662007286246916781826156214572970381944657496599155928370908920151854969450602587326623532279133797973591002612069617383700981004369034473369957206895286679294390555271546836143012848914182785992491483250491277096337524722180334220451207987138136953698066502721341005451272721860304499597730433028928663088774948229316745799651877336333395097313731189193168709448604072150409876698052794127909181653313392268710598379435864280314385405598501309299801752097220842474300116691197487972548800390517379509217252486441398106177585876821569295969312833407536162344744264489025100680776892321046536421815287969588132914622458673843187891956800273026395250794033985311214527866667628770831094624403988728684990021973950421470858391279109718199359082887787507087681776080066759481082208435810142957563477134766821211667315359246635101587507261564944180051781209282782472389677085074938026886926807293711757999423513920459246578463963332457147688941363241676033251743331849624358628490859205203418946094127593257887227364155191613003240167271476864264458984914308951217677437899525970817607894320441004366197692101253927651711240609244685308534254205008421718049578140874422112319674396935740220431872190528969893271694867105874089430322134804114894466020241617946310472518615098270417537394526925816163342962730031025726884610828090054606044300845772571857984788653515233513852412835415896624223918164374520970926648882028221691565123068020512557844236487354974330146267632727473428061238991216695651696209816621115782451899273327488687699745857636676479838702083231095134214098272669890232677167151343093237802289731342960718206257377153894461842962945902789904597556429525066207838089319659635785154672996056038440570449725589132314994512936275219754931166409202945260002756144613130868151242849772656557054641842634870617439486481208060363318348310546887947712595066448259462565216074278819554182580942317264986286039750006183337329823571735386351275239162521145470085648436441138806602499865471078884810129908880052762971878654877466181928581013472308376083312292554744824301477488376142556596868006320874496914614108572895076304083982649402064480213399389673161474225884063578108831753929743541165603059354575486978745465073679017541444881574831643431669290417169754306445719945172210121036157458198134580718555893865258395932590928368637857868037949338832406240239429088403740731421326885814700988572799313678785229925802206834659034713232765823624845388518223299823132734522090811681064433159512741318182386144997120734714304257311177764038392538425922679669450184839176794675192594965319290244156705264207880327180494264534464382271156569561507000905076352321862747105462339003575521957082495360868954719607895974685922445902342050026814196100326358986762120248728910212047747604797584510390933113084670798692106967975499766147776433322384640997762992704270447954272295314956016696781445018579347730712912023136421522541850621476514771421813599630741328852927913739459372906913124759486625878218087303364404868826001479173006784500328418514382219798575150457337469062850952350581952893913486209563597684767119376376937421874376035812052666349752660821014182437181575228290018163986191895136736037476603512670499166000062050313731458438664765895725273591088072310283754064397074346846028365793651321656751464992830614836187260754418910401041473176283226542862126049750392900642951416504184839208082770918037103613130821703822290834171092674351916711736955999943422153583254433417451183893188829164137687236499503010472617279108256911209648652317039504104195965927791815200248126112906810697680115216942668718707507778579158728944597627415326966538533383155450522344299282285672975780582602483540949737870928253956761144491193654359098435711135916791337364526206327858080290069141980056360266036226643712536812754626386898358333309212468959962490690321670103046358890555840364866264907938590559773198441207768177685635096625338393277691491570628435693150004567582265879882973350544474649977587714485980686724158502206701136336246805101673800501445356149238293912757462475246948616308695552577895432143434493072885835515478531316063292820012817972809446450817657111314660717207270812056034251008265301725361942007879785754215247395221069742727359957488859190266759856457552922189620342435790015393989489365946621831147152373741750824254517410319174919316697341858081161669512843552810472727748099286812875936672671862622097202281217695118878089389506775171320535744918992850499768949679437430622913413624811777986300812941820181184454900318064277903369913861280046802246103590795531432556227767608987240739144806671740772488459362284869051317068383519717998505297583686594832063891864693163891796734948203365562615107803402698088822144389152832992579499289273407984680358882541390773473780551098711665335944116958960021495586561477528054134916232494683159615777702461468275063446411710539566677266925873401523374231457774856277021321005005101451227451333808238622708872133246186140510673964114641057205100355840382873364161188783591845568706860905902006340960622996262320964849429462365599751952039129293119144267523431559537042941447426902473226749605952098636776579473133054396892629167358819573650758019187240670661857734982357387653247341769965225643759143899918682028927556474917052381318347997313486940112654867878542450227237473181978773336500593673909819272430094985429809644780920643071705574469827024459623998191459490704581112818332580817816959206253243256576410793498376658068897697236664853828893089224511368080403832173550604383845484008177009151555974088612255696016964998020792381338185227868674821259741869016582860685928199285166331506914377061461764767836225240428191214000178238035748745697410426357242881643173358754249478855606931683272138451022259763160928850273100397277040056016852736454655172470013156954095591665962962001269386231247478227830448856257465822284384724139465591240978228180358808043156967657806703670174147301182108915904546155463593153918140393619758383999716560570005941483816269846307151774852134251212292815444005243639564375765450738235805055941241202757916897526401415021304710354331619235136219180119294314405448361008294208014820119197407666456286171302263797599595839330745166267873847387876736087687230287490780111763192177892814051617258759804050896406414697498089032610744048228110338315647553907341724932903717729720314021300241819280654355827966219106339006458461493273322006724081077780371956345311336084095722987025580863751052779050494737029124238054198463269275728346969357376358956297605722043761673763894299275143365017799198966494117580575647866905459110051763892428253700833887908985445601444175941663265382389111375941553415778256130523927336777663782299239730077962852181676785005475412924239777213066844448658376443081058470045171825870988971270107404063099632364844182646191827614564036377239137546943201799177067190233967848433029774877418506696473761226229646486120145938920312864421625369402993131192296085771444735208215886393278537335273172876727032548188972260941626363957838141194069544154921252474672393469665944889487919369623402216255261725620094807762637069024673360771244753122263738958415410678407734154672202605316395905433855175404823500142937033357561683166985325362357098744992524297481270774843674946463016638855183527972739750891672432960544969407003815850585110433897427173993399568067143306628310523525761168306618187491020337552702222816135289101483311873159577173154381889702606458058200917396050470192314784672794519638171903640468618646533177237061946279642064107027785855306900092961299535504804355142172418891717018069306377114980491196288219646417482360872175767520584846471044179490626786481020709729644397789132566897084029429935600573091302438701661511189399127317156359727739851994739561599919384328429128945264753766057727548985341106341830004360535799309859758881777504463110897901046225543537115861096485451985636098494458155792461864023205986679753514512895720937290813154192893947060499871706920526690046691710159228928996912597229195500886143449135413879120449683058408299443600682424410059592943260082205946625893602152347426720320772969647570416379962729710846816065770771325480180923833047867659241087256596852925972992874583461027729130771690886662925360538804477379142561261897448464152979816325097810495660683924343660040763918793079528158510375037009629593240018154050721271332274011825068881539068221763505022120115636481353510288505122809806570328681080944385562642365455395755341194824027953555273177747054902306537477104764608520282383376144251519359146654786634337097726823904920158925427868875966097630446542189173798969553384806034303780656021483394859361396245368542039134531803255869974034297507831922945396259045122199350694173573031048223637033280512646216259225838917262073918952273796385672182772944816057702330775647502151324572938310954006893625050581057266367711399329550244074422784650089404353761144048274807995629206383674787321705307081944962416894691349578309256441570574185462922518165382120372002250498357514838328366450168838441672746363002043096189288378837958870914991415341175851126129363085042522645558952523768651724583059153736202322994588066030713243129386607230785294477339080870846623733400423951080065261704789089100341710925766899691371497348291545780988438748179621347640784195438241526271157298006265427244170345138393151492316250123971543373246373170140882548653919038623394354972875191174367854182254336666948649913010157035229004459188944453423100534389260169347699699663658612817917086301090275715207087441201011326549166920608113201324291738845178079909529402865770428246499472948697568425153436541867912570621581194327303553232971652532813750600199498725703407652503399079287411253720487502685284607926992636234272204989184459916512368659527144190843377671143889867956119431382357672811599320847390765059819447228805723834866365078483464831469313423231118374000404047743921461581562275862785051907962612231283914688003342298277796343841364875311810555038913095253091290309787018710687283932216837417450180954644682348896707976701575639395840886346534601404121673336339553915025646902969122690829930639512048647830018558504980451071078838376379877716676088307313891958176869706594582549463788790867143591153209484407252279534883721608178263143923952528575975281833194665017639792191766447659342742138170201040670435511614560835335747405357283052062147961625425006852329643376923246457631014243388634074409544066102373161936280164170614388004217141449284979889801376561354653790495219459751012312360754520043718689723191547998203431108180490789694540105177758781994667980770184023568683631912072508871429373061268626019313060942311086258160387470164699127635244632679293294073254600689234960532379967965192609213815634226043688271839073704027164728469083947257208816325599617696249500213069932957383436994371902424310712764240912530843496620599232735033510716150379372820706713053951321110083044049054674605047128523966563898490230581445485238789686987666529795344371038343492973706459902544283078916536318205775837683626149253386106279271856248507476828896895549872546974204856795264609856289931870329446492187774971008552249174685445175287719004537684917530053812549151728014073565861555109186786659515939498033730300151546070632234550532956131754739967192526084995661686836682023742118091024890128787791717162911696440499375280345342432684624149541326370722027510421214867160802368695120654632299135856425472811655507224525576786271061034956510684532113972298373920831085029764268297422003055380842621445039900738088409920822897623674097458771357806725556372262054043587221801079871742259286457874276681755673859372584694448830012967463579350250834561227965469377109504758209258419527829623055929771338015507338561065967957181726477021355116725406484768798536973193552006078016893508758116625074041398724442927602822987214587977900917718024406216101649241584639540881679837509030943046386305939411693738373269639645700000262261665192310114374831945463237276628737730280097709248493108734972929584256606028076626093849788882433960996078945605219292122641622706015447393865291571610069329265152687251938480382231907397988872644569934777421519743446624984688704704868305273555478501183222019584668232536663583342121016259672952061709101414524123456571000224021443317978141999543463274678306307608148574375291177028688341446742028584410488289692973905068740556038443143903923603126444345135539752246716109348366406398279933252538126034525862063058533646770107269384925359153962591003711773757932932008826381410678023908846320513744467297752189227414428497029381447558775365542819094179732650628091474361668359650360281230488147412986731676276342149190758448424338073664184863331109084447173330857768605255685298572122940503989209450340293340745008120277958974896332546437453735342106469232319858616215516422181228294985179332784562520660773432498516897190337176939283851089285003328633792442183167839365609392375197149578785616036909656752061625578067983072109206957002058946880392558287730545879934985235331367323510027096021729964298459281835050868915199428558078894934073488417423173214342291110245057068475278763786731192997865816279179729423463810619897833192245655194248460831989529537067191167597952674729899764719150784143960414515551658987815672848610727949983453889261656309478382930168031343955548663170607159797567007296468600649222765069776636115841647505889237965998646198299123592149970472987132499510955718288605589975990183080700562756786213104255013897473447289433798923152194995364686598259346402996384488716923631074786241133902984677095524566127916787686785772281582788280709439828865554740033610861493893505468787087513114578785484427145938225562732064823666380560470056185797803231174524208027590780399379576366570279858023572694365237824756203737862443862280336969134961561316888337502622588784222396692743469340165261908891828621558309452935918452017012239619690807120374135030769311747107056249146561604054093546820787265068917713555984172911756489217812391959190817634375462137191146583769995650266734489383976632867117429449147063588814150896074444508112645760398274930944861768930578486214763166675055298074872659653731868089577393855708274973900129422809109669412056553973724985555917324082022000276399747242189399452384506648594295730578764893129396594291757628954485575359741461970471309062464117047540143095181490891832474601062979112084189130398846686332524598432667333365047695910930532007608891790370518106756618343134036218383242620032727233220051168588612347121856794767803713551170510240050583801582815422044500921040760151120084100058533147126284533226204376387970631439433251448939164216893291836998797909859446122976435494062215527999919934528239686318981604776945049807122063752214450478449395721476099389260133268200773455899480120073112790884117587418450247703214927338849721970651472677772998501721513609673558291629980317702367798800898286134326000481228381343521185885198708074680321773724898117976696903806825938602679026224255502076902652455328256543190488361111512959176651783580776259815256679233228619258399599839938560245685312855905325348693732587418507573984281186079926480460121885069222427021210763129123174008010916904334796979700987357877646926980792237620901178966788549835810425606706292150607566413462298038571596961629628688225725897040260733458200066908682648819011758209136466129882741591221993715932891241110380190981458752386077649770097845706732250465640504422329827421035876403194299570521545243328432246215134243183178373837004860707855833367318621859477267127892137068190752489599303258798561470936413272369383853946718869414841398407823379845391988831786435621376671321451869019084583055081389815861701886537925387632701797129415937561011035483966888927189445085156167102835115882698250294059272472497072071847270827538284917407265511606973489618753434087547098725459702443564029349151567179171033516644765401772216981220165883265730141576878738338851853418807962333401611557491001246256243151302773430920975523223992227881537517875013068019354347717256046370924662760436694566227512083666281795746090945461336725627540734650263632925608471437639595258522028007436793174517915694205662725893425453626979963097633221244211946858596306648887719485672258991926383451726958594251698291749744483024988552020770487030202012753364862124904466267371093074027554596002131734122366181519271001433121903606677368133568514890363963459462749364544568425835023164601413018117493775192204301844760331808853275622209637685931115589265486899692348167654012606340515720429994573941047430151753675255002689268273723661435068437287102943473290405315385613774219737284209212295788631861513175668483357549447967206207867712020063914875261722771048847525447850532129832150717640362322560587031734536491935125735175377268750590219798982003119253110438480809536820306409690079272547637289336526571367887794720493180886295858617091027014291928154522869426373756872100520654233658249117826640553399698689002289243063995344779472329615574913970114375441995267922068899932925927668893338580607257811027558638010366138623710555930086013573943412546680993400220038554953528934692030363883012918390265768460848921573321583410762813480814766507679270761960227070116200705911001153090757856560318779935368788359268732172879333798135866654910364015232580198051576664677266285324528378568402676573083556709372174407860589690634326430317889621718870107110852918238660749347716168616709109502010435149654137810551371528474752244202903061185136443706020179149958329143721405643152840338107584649808902620384453185688182043443954841251641626429708229802585901514022580601521564845639537149003541973751101071056566168870324825504733225417977366172763546986531805999592187144322939511169122599063440630270662911997278845104490214126583842558132109887579573646853670790988342846164098821494195028291936087748367250198969575295064343615125921993356101635691871321786057943434842286175122752614065718761465196675960610146506029502667211949696247009478532479071964587660971527404369535019567300686078525981220237485189837729161286244620403470705381563236323906318133054313018390851953708779098831457519142642574187510896267930889979646510319760506014003999177508174056893061610906466448980426415912013204375184956021210151142231119580458804690893077403475193469116454570906969703770030610802286324997785236179190584660018876394310168700653649437202076141591804090472120103057889701815907475545255832777627548615549660710520433227716699189547074302187120335743699372416691137676563553209418452124435473560309824897216665733597403410242713241640773286226697740469974195609692914940678901697234149470508193322318420347739263356550136415373616317415368002862575931847728360363471780614759548232359526992014964560286840738892119614839852976983777845705378569140711177979094592000567134109263605507341618040880020642041878736077856123056006128491172297776353394646067297282749468306827934132010021379574420006678396586960374525275335090512613118346617355921993674916317975169177544521261962939270439622574093534380414631980114631028636879426979969821461569133062240927652018966576183125862183770032143383339048273143337347417837515464479116117409810353105815003141153711760348006844614578716890364523520197708207983017285013518010088864342464583720203449328724359730004007923846716951353756962907558421620112712247852008884039430652793382163768386143409875485121761900286372012332883944459076660123295488505862335363425753969031212678997684097302754041723711570541199674343483718934152728220511604044119181534127334604655105692998967678334550754834064550562354384956730747114078385977995295903882352502870853478874862373161880337657490842550145575627775570665026765669357232660741086106347601203430052941275097933084614035052224292686113979646051889533590223259176319006070261738808294160910745580577892966960597457788822405444614602796903899423807377761075550078143921176331059242450914907216330981827431259379618871863323544130103006392615228862071506760006606200439500744929537400951156627664365041492336252152261205410219176005866908156651310549112456958065800862925393412156331069629457757075747113919688063774145092912864374737066047423638237908129934394470247907833397299574513431538975447977592942627512378900848559315071236507840221530082276902096627552387742582112446867470150931740152855326427372474837457945844119605262775833223516365626595174848460716464071317735632949708247740261735776887068933423760446296506400653334389252061891070469488354005967461604635361790240642509803774456904993999562087437304104408781927933688579234853683375452422320997662242199084180350710690097355520817143439337102121675742974220952382716576669000184635034843291897109818369797507130435610785045275109113067354769519528380754060424716088484673400109080648944958651842324276676281554690460858591572821210038747792765380346944419019965073368453756335461344376127768909183455867342004120172384083152799739362951769338107042265793733476589451439527914155757061307171531148179044917634464901302193343875456846991901268704303906415753742460784326367782959900726676830891077079898938598477127377640152551497762500381891300784392219612265699739475470004289368917064248404245385326068910331404124853722669693454206444353428123490210361883978074610175698187237722966918188609176238108088367235938374365718647441918648874618732694299655791984681135110159373025013212686682060885924244421907395247382678929086574620927811378481839776865400128433522702264553000029181070921732359044783307320635041569298549135603501461148600117184281053672102048140498821640815032731680958874661922205778878101024888504101898382840667444450908301527750482500863015972588673478885864168159614844969770084015765186102740744610112296244772647405037257592231213988410683062966686970379094140106114363004888749258554569696717645048345212248866851715100204671738223999215813256555228213640072301677511812543953822748106326711459874845715330083844001943067685364673208265575432794288183822960680580247042974582538236934170853383144632249750440664715333172117354367533330739744821738726268284111456491758119125867193700396164717270234715684136383860761275166628295799270442014446463821434721326482325793844679952904573029601160751161060281126376108775408356882891210592228954460514760442929402200015300548875966520008603681059529784034457967333929119923787390639185686632303967239699306180153377377866219482250635723486660451367552810233236064489469360886479625389621189891480521671142767654772478946577268058375907919140575417655100353425214278640536745794606464297456170341912257021575318008772925438838673446672870177134902213633636326507495314084235957756556310660017697787078222358949354850416937823219145199010216294771188997396735384491783556751315510560242526007627955301001821565956657763344371080068275629982320741586971184689590882097336653326043332318116973547408939969162242733768560152630074590886267172142080954518637664351988772997395731096783014107068944676586918418763540092997869574198324663145752380504658601205270136869702975146795543235852112887463139232935474759710297138829698045188352626185494569123201826226125893916410454818069643716807447833922730169026962445213152972823649144832500234475324093083256886590881442970354889576768819714322302645306694922547273201960413029782195088304918226161812956912240307804872568525495537333644201002651671139268698921274122317701658363359006239056064882968157579997634655482187178632260453882702751980378229103831618633774118133229362680329328241122764451007640117951579780278726429578051181570924011165584433853865592863478156435447281776235437989079567492753547892397190558761728443157371004794981700214652865178544036179310633728131733200193041372770159803995748625409044303090005904906390058282573152238593503826106012746962557209013380363059816706216419524899153602012551620309817322347603313728230810176457711683185977537291931080542329525368370722079979718798268127599086442426902850161485937427481244533508379335674435568747623531651647798246349617451021844813010697413262184169448829614379099419537326598873459230960160134556284297030761074123790684328651474663091300148366329701892079324503929358089686971075518179759518213620872036522514939680578055316975799043878706673590843013299993001470280207327686793596956683442235128617694809056776841462765113512219701605619401161237110774042212749659740649698857652252023178720795693112140020681991836588246449739095838201406683899043357847675932323007372584022171538620533377388854053379237199582925146085846471196285143768671541267876271948878630120285303874452102953915985675394999875562687286349727886884771809916426123280620248109225500586186084494657692520814316738133320022156156685744807639154571799732688281696990897854973459806236475090315803297923767766305110051832065247441325287083403646182400534258909968641443244962050282045744170129402798161855630843684671483675197064225385868379497884774497927887647349816371662012023043459460242753293155118150017552888522153469607739834544166570017870324040609066484244634076523642812863873171956650167693376174194818750920121274004634515429856630207304680718745841188288349070183567547090725593038118488213069146863501994639315075236352293892008750162666570685394833439804587116916089898735561996579831684872643479551037563516096193984372569534309482259546566687610885728507100387216564697780154330299610684904901729334715535173742657661129739153724890152463428517709194772790987728825891444337188154198932118461885061905238388502948998157419241596343551738976415614522204047979391420843508261493186736889966285178786456953914473913920120754458429387500987479101107009410633345200010492919871019135653716121301043812787738000979472654332409374202839484196251797366537929135969534274654388609980621424107224867656113633712506254737793873449127281706322161842621036358232168171352333913851840700785748773656187759389536441094172185624057167669549610439530486909551173912935319359519865658829942867790463740931455104139437682451164483666802957287035401541000598423528652495367647183108900126001951548188870555169880926906066556077260435166747006917083294163555184049836043894763818718359218748038360050564644900491264671326157483005912939145781211382010829032269123757705219708716117957303865290870671984818365074680890060200390718566884258240781419186368383372392736579378621958293396382969172262744881958744381441959964415716459368430540174911937252514891100899841454528808654630475639543519915881831783209272364617951201170921860255691694943705800786772786975598286329389591485926047219202422577199252369294990857088539580957777523105961171855587333703948785359739058946453057762568610845763128004305420595826124531319374699275556943980269207904896460604251530364999833147593646481316856984561521930040972440649014297784362768713411430854861716762387351633351113375997781869059454761914661405889760670869574845677850475875484262115679002385099109728932639920652437263978973584414787894164458272011495118844983340120121185371882704989663227955665013167779507328289815393327299131831481194718582093135306960178712757876456818491054516388532234573067513945385011237457409410938987281548772656449600316062841005465151758161078176738675544752131358486542679533672645631953673865794238252181741646164023354422640106293471492459179403940830027627852253745374094555793564553482337351823485256519803055966412518209931100204116004587827566251519129401330616915588580164308827362987598793117379710834430876274017717836901319377040330938071322440313585807300735165021785215039493381507851139036168538479329950812688939587005392236924651536751258502259432819796045267172430212012095610244948826212018556343758887951407167725309203746100305531611868725171158747623834129100360509307904625896446848820621442347134958239239323882799637396372640473041329964179470677959603195667909751233446893158683384649120498632665744984029610393979395441504517487412900083245784768618511516928717256658443276965154641870240553598134203013006226023429740394688470930619005084753786979123125179433065859944767403415990912748939517773357710337525388185741243096230829234110471719538082690079305326387202329473098775738686697116456137966165647568099791537584103910845998219583154992844830338089228648027763926748079709614046094519283151742253225399801179780451266458491349525919187894782601952182315376724110805424728595647819202942383291573003683795735011465452067811273315526076816676193900184360710865849273446527670375998456967303290209705869948626479372835509885897676506592618488984468438498818324057329195198172136009132628304491041418146713521906667172709032302581977976948750421186595498940194214091896403748827985595043261185861572973359874099173304328108454977034271274404210837084262579041020984231328125836681004861833725383828960043384484077746468957361012771427260990695705064770109914438492727978312985436643093658548933950247419116653146102148533311082000619404122537818062896532128878824070421563914582130173789189971558991121992806624085585341655952346316555789236596983674214817921498952931809611672020744347398205053724952123417536753546077984268022363355519094150716328278572702615045128034777094593672626076761650426579582386186574319283767976761725021359892930328719479407696409673743314952111750976646953795362562504753887243550581110387879747226739151428488631263408939605976408116589897244446592631520446100687627561861469462590136673505158158686683907695141301920469980393300460154926568740573636606210497788194050593657933444678325851130394846774660449403661553765148195669952609885992178148114664884321785351649706971092243149784101173473200491186752186042290343718059768977689488171494946065056740559734648235140611806151794561342518022122189240493513615583176516078476798083435718167584577785098723689490147504022029838230810920915777359522570728365271196692409315203866190594573832483985325090936317173251577155106602118462953076354910383456273155426785183753345849430401712336680826779404568209235116148106532292136340772656815525545665017416168677858431918977909747908690269436785244032187468360497868944229663923976575677875216319439335426296676894780777660997162965125387577716373746273201544320516592824198292252299636992893333804404342971568234199397668767773946312982890703649561006715000548397202052878208062075843785797205572836727378227250134804407526999705723528310697145593391977159713239108955988858869579466523290480469986538711860729804957621970666672751511556686245669362700802517415763080678525341331984764465100200049283908820892580902783954064499644988130288817419464032219764591044928814383856859027536195257044035513157298765953007493393517620807598139453600810870887477687769013925785932202974960455730360748579131113496476720538910167857814597447772474341302635107947116965719285321546775545290509954602662128420019102168503828583655840239821625465191242829908826225190261385659245612960568690914169389994634858471875662397301787030468493423426334229612719526893237644930972911243376357418771221229491599430253144938369085555233942316069906522042702812664516539564558543975675127745065478988032561570526601268210394167738048762699328009696025633207223230499674199515531623944832528473117153143914516337284816907085267000625402763976030032294429798691636668487595464108484817315599483988779067680138418966204763396122424713859179573746139701428495964332866319586771599242599779390348680802192629350256295689596531826834718638844884063553663746708809226001642120431618602383011488467487639389781113608019962582049759955537722199705455011977303468766764367466747267311983846311339259704097134610031854022266269615976663155109667464678901967055798903294617437190589791440149566719074971290093094725885145029953613847834555247173059218054471989183921270683575951862964517924436847438753452148488562132483474767558636893897538375996646943117672545220081915314882108689728758814824828696032577241499810341843452697077221314413618845557542705803418440914414325638868851553906135520836729573122006221794757789831646184232090645526968484389604077597299068501094247296276934543628201789928428541925341180720231822933118770011469861422913588803515223680431883039853973096030639943536026124918040766727192595703008403277988101471236740810829287950173571059636410460154333800520287190788462439811517319072322930934186870828359166636855517238382619415146780584751344056709707054860600988713770861163028363369614194101583160961584907645684915817488996044450899500200428178491520919124485251303827715009727138721282137786331364838151694406016355383847814362490819874587440934196921047459404453799648317072566202014364624780196849390924393748271032888418618081608713123649703883438877702329120154929083345822440765343481514550277264437161588245321872508568718053119845829964752116134412312504145763557321474829082737148749250192128124087557567842556730009563431297221312642617335619056655868716125810085301348592254242322168696645051762433759285869102510777377097865386124659532784728711705499186724382205216300946115634774144869480666185274138568673494665115818720817953233494992636095110128326440336556087941972836568536504345038138570170583924869672270740117631208799925597952954756146877392118707624563035199087682178847529336425669750719267782100584751507913746873848361821222551748557155475743118891949352035250588141103445711484692380817363263609849205628079455720923378957808267718329103239454920021343332069500924070094949412864803141872847188906213959822270575063447565094773933126930589862267936964269052166986479016650470974554765954427699713617795464281479661446656402828828873036952261816137676949140746829292701424621657972121914347594747610229241680483063252458671804429491754721618281788809679791593531486793025625002965015709812537469508852897490335369878234317406789353942969767805482063503300868485429949534247809863816883792208814788650486734470207002882824264393603922151097027458697006563562032997794056298199194685525053425822760662439786519137225203963573968160386760358013126067328626731755170167068767191153747743870981357969561801390315633087570837275438713623469860753310020192173478587371166586383848787694183370794715204643149789596846468843420857872096248824134608739848968585529437685775828712232678132975902516561241548703141909431221507071006144549242256247963489145626578913066570829097390078181071103636429315722099432412860890191220820605844848154087048579945623178426278820556542003581230252918003335950955206169880642697466030781796668150133123739931196444336240429208479519252434475097832144885585996479515754169515004552272882929635861050840266289983797450616846563050156500930746725885281059458955782404208279368966618259316063719191784677913473817228475341836862667143345549807515908527207118970884383875482149913896597433544278401899646884746746939290606062960891573881326066063874205481760621321566777755600705251360564983131195506513038058693814855570878102522258838812005345373466013614986358161015860731300199390350608154323269147381876944597840248391131680212627183183794592895900580922666296341419285620382458177699525767013615124382682924942217395037959125513097558476805740048710418526840263580088016138750189906599373985853981382389450604009426416806599748290527868821871761863817255998900903558701197057053013739912861580419502460923482204865771851310013985836171207976032110332279786540430367475616799497046906476169443077092115128396677051527056928983290630222666810712715195898982110830238287103575963984071850637788787613918299863455181513493508781877639601767799715439667544219467968261103325384276129417718321704685728257246980805269979538013860441674684117263656334753718876752173245679785300611906341951189538147208668845145329251896720564814642900742790284581359612042627820617186023823480364737907396628150002927359820242488940815000418121803164682005419686845203354355794318412272630633665866676423004936193922810400153833219158441587197359691908777370032186684639546117414800701145822058584472721024077304720219018125050829732258612383415921354349731910692157911944096920585505671291047087493918218302074589953685433783243230579639303381651091565908694063535118905725806374094703261346388754302564904980099276105308503680368497609175660898002075258869591323120023285908816695990364952768498137786499665823718071900285494764631822402538703379155055102572366452939979921690279593202226161607124403909918992350795175214226765708087709005707924544754595259278689566835904033273849951616668003450507649056507490331425437271117495076287966148921121523115312019573774221096543660498211634058285492549006537433573514986670093606054064365219790799854701238010428012880357015784920628426311160183934440049596280942140417349709385334166482089613976247287651329706051753498976935926654852433847207750585210844416874623332334981981904149136528922615719629199627526625318039244351376105585573856574454832923801343337812952190279871105846927668268499252243642204553383990242450547442639583009237137238672041616812860358982500029120461170181169499016176695734517287284832465061901995002859129799984404751240758069653822795455883823095635356807154926121073353559469222520766657346760132319838152043527863021847280295312695376840525152883998351630416012300555707821204223532866630395724015595968365936697351597811829932941472637659667649050794810833473117206431921283764145681095973804569274633035420590081651740969080925902117438707640071607479969577979079789581469816406430214658866421045876148269885645904185987588564931706623658923608430678015558484016688766233197816755079549823282883194888741732907194935242786577972498823630424380841455221790748793352445605692992960888121161876846643154108067742757280052474209039383011870667425190262917317613434821217080948634844789472745230214205175820938282045395477217045382728940222463527221824178390811854795558036413179151053874369302722915989570411547264033558955566404733781357987802147657129930885398318336487429583514709334241737056359154048200852723654256564476411332033885397805197869298125983834065299344366798639869128521671420674768193265092271086741730292983928174977273838898809374413832184918831349974664632293058738895667505533788134024116517823546429319206204507496130233036879586972932996062003989143794049113356429457242394138243952825367574464425125365442186447665538128540859594341579889104327623696672067561950053805292496655471538019418177200146488041499755041450387352341681524899823749243444809751389333586179221618658741097392452178667945065595790768931665621976075463975119245843208579760358605679885112990184153255165071415048299731789725058295346669832317043507323580716317051135675316003716912321390939323910784830240383398809682830814915783116583511676488340480319872268362132302200857398953904838980884410118652298953042813799374147603380569973938046834716016204716976627316741468192607249162397442692816918706843299121883850377012164276293807815976940922900991143153691007076830436013299803954737096941778816159990573101247636000787981805306073109911173976847011184741475369216404701463079543914346490091696812559563710856288750185309036125187215544719664814928469791023833008091421902613171635152796424687718601769224419230825478320120273888544510574155782157536980791283533124495600756676001258181826892392912586405635439881687030633817695550449005038431097894308327626857137931533096719037567791838266733508444240690911623724463723502506027082997082880797270361764126665875918462602966273771044742277007646611502242469531303991993468857902054335872806208282326096832107849168115098147407414569277382745812449300197430585309934784729036083699364688219254062291207341395765072292525191501273162486239934456348496131262833480723951381860980480637518622671210461144533563248280909026504557797334003506765039805814057279709471543405039291914009923567052893932432115729585504146177689990945733710735018879404114440345745940308562833042652257610337888357603952700105127120448834361732943646741865727301789240984264748311024601164810684605699783487834820131175835868444372832626096003569671951205640383730147799072576236670918698415858420548265952771571644310333697356554398131667178983546633098529414197085629016408907913668950785095675254886771016496873209170865432523442628404745748900671603934139453659867727070490467757763085135162022813629467636207138261585695419602679539485675892995840567228508498825335965193849729211162142538267957732635142706234494321579055708591192526101968678662477798508159366978373937462336938889407089353391228320198349785870482645954606443016444127468570077550145366315543735946702674231233039629136330830497927184601918902751670544673664280496293202557127988775946597687684140243957280619499088345944011272297468435773517035802841346746911812927817220917993936787693998821004413714515639572549396186904417596231275890882460441500571888029652991585463364512677758831361553303284137256787713237412748869923091041210586234131641708190908818242064659226705246023418258417554189585398625241267752967779268172600968576858192504216598272057545819772178620726750631338227375588322649231376328450770533013615252992810286425970318718275301850714130615542106949520200806155998142629533047737393212531564138267073474613284234858066105633125988173772436287212525142653181656819131989695825308185274578367822975243830556521402425303632890030798522097052056266451780249743910666954533298304413076278452599772724091241023153410968365468817218172992515027157625551673752175281275239700111475113569501871785274335928675593289144598441423072909657761697949903984310145565640824196936919566233696766868826127893095974527572427305554302949701354893529655401506071176917394573077495955207735867624531462989989558366892956057814707705078756932292209844572546811053723017553348783755080378785523801563853623254913173187856703752394503605360976940413875520507456793251520925152588314295335957177942245532008123021274629557838485036187767202027022089022821440529343310291234965000017454066512108515395091117493493381980242003235257255993294630933356366299579131316273750368403163414475835860173087009896535655801419743288396534248362290291909958987274138134555999033049005950160443315298146150210148509259532440985432367000542383652107751975006559511207673520287418160612753840359950178820578449330858157766801566981260733528749024154256025680880566425538497289830870631027112012528359405541046554813353495254331120487078730250014904850064473757589751159690086898041142474628594917626417141700966747588243553810576495631040626102061183226010686530902168410364926888283740809771757598407139822792062942387145230516101144081400307045595225737510044944473665293303427901250674334772360855721398084719907625422330736744254628253690795153407084463309628220924842501656053085985149452674737107826045603590117139500771343786940881204568988154647061945636913156891692768997156162065827870922430112837831832829795285795355310748304265762026691281246062271886894344847001826534436371368536662379147235706875377563865196841866215518736593308655541526942097364376670618050127973333459806686619027709694402218197445441767706575525346434363001538993003423344478475142167910121204770926631795235065459796278271869218583919265220772994167371144128117162052798253699374595066417823910334392713217633474888391590008620392941359143528866861492554885707103256018879274367453566856613451744362477136263395510944804959212825253903475888404461114528879199936498599613819671055298989333199730249839678891994744575044886860498590171750491027745799127745254322643470238680165293331316832347858502167345158080079631941658293429229882997591378848328807279146364319482507286521808321209585473030681837363273922123975432586142285748834689496505972920231284133876628949678758489253479180747322658732747161622425388391190744750792205778786545564996078007551046942566468593248360437281910473298433702050144886257198618819992432777514753339270988617835325674590119809523777107585207365213341850139002862317587744323462282167661650636765504160125365088693556285191811061798041537881353320228711046529582968951797780186800997576548929967277308899092613480674515093605656644012594971340071147889674751537272664133948678460500350201320654231507708434433194135499140400987196111832046072030666046263054705954006913558638269690395406840611187312286981707674864526005256469921531055926879093175759753985945115521865221275318341625766707176135150969734842964948828451698935755436824649213375698814137827779776026056150790743692608058671598212844538531547075644532857033293101082743499950559777353574685952022273525078025788309794297534916781635595497206599990255707628748476091174480152872412209946933148399747305864518768513025267715874933875022788037043153915736045813827083485476857961228868893212733859703982915840758914312240839718061318557245562058101216795534418264163627495281565506166927895139908437179479361968953058274931625930851697750178845213992645837267736426315911072568015347295043062920517788085693305917443351804279585529396811138357494841163455228736417818300973609670449065871925300230290728524371909906837845238615913159134798585374889788878946500426433823655573241434551845385445946959063028899539188122671659642572405021851206481900729832144263326712645319196482300887379924429321522989551771819086809253858787824413857450762716159651911775318697148277913786357502670048242129376923563593412287804587958457272139585719721915646818486076664855750238577496651172190040396412272056886823307053613598756600044155300280685103346025612836807129407879268348633377241644536055098254107245545484725147696752043476059468137641396045015386692678904993811246861347998441820103513486614733487382739594732123472381564036948868737214159908979587320182333324860764021280813680920563016732497485699594184916918449897949484879108891710612538046076916149570931307433399772366466819858019962898931305319457788970947085704731383051129034611354595877935360415811338597980739622381660727856038681903733601178185544441008576921687979846761206362559761807672853768106975049424497745565294733109794320067351618995467792550386703560184978676553525150616573872604171475011114398054498551194147524482403228062536471529728865130341372887509800793229778048721012859879510475029711924678166418387552277809536346919708727409346286596762386364413155106927957816750396522165367324642113202186732810430646811035516742011840585802250053549828200578658568744503684584141740446412696182341538525154186623474102556760613875668447783045107349722908771482281440534431424263355380430867932168839091086760000748194635006027775149485315044515288139123243863292909330745284489312300163685105299343944855150808680440485436487984340159772078183908046575186719667324194126923475513879392254323254685920869656226944221480745601743805125562698707708655840505859088243300806486574265061857273109750911937915280676014476818107148889764787854782465344927370302987088410787222331193820495513523832753371659307574648695617287729439927387240706521341894206638313495485286685659611381476093502607483193689801318368352787429850711318173980520998007541401848946463247095109702280934221386600422015589374575095554912553852746839825035659535565433668832130022394557623348678538245531058721706802143535135562170398833769991016154671792950423934673077408507596135315725648987032775390813083703277028439676494227264373679621989664209775081304228261057116857568888609625106542260159775715972600563315535377797273615815788236785252671004300045283863098907989356563211935647954821033158149057092011925080199175107110777180989162080049881897230378207686134049844278109843706902048799810605099091396868296070212392412347845299533375719842263457015967175636714060714745141217578143955163725988901252376067756902516925906657479475120881450385978929133586043207565607940565965307109697803721920455457347366662580310096500818767546919625581851659739532361280787610631411301942243800777978239523264270053974112884362815802228036443368394551868309557372574957189335594710355675549982890811389621784591889972518517001781268555603180400489415857550482016576726505412332295656861239510835329520008519492129795065399659922603579332344737926037489138514058409062324155751708095731782440275269538150436397560768038968567720474519692392088629979046917070913979245731035063608329318662249138560271949684418102103091542673310659687976259260596927955578302558721537682389964507063776674030923750550482254356361717155998144637312539886805502547234991066575935364569711381283277942493707731120026705969856617416748440912173396781044324258743037693748144545984088118148262090937168880373998668338435997556213438009297946862461124274123827003604461778066962458197837517542052592438437432406040381641532244618006346779058712995863515600016518363671459613308247893355345920615431713871706019094126718060799398555647242744006316723281367394292318820154543822025205442996204204901757801989836774051204232888901580828465656163200372320213652118391899732957793098777994299742447814242097771117743878604659697042477328679046820789161580157909172133518988075718421080604267825717511026467321227270208951770491169904062868384909608513003726262981523900233950612179324697354853994018401392133740105196567660914382846656783757308987375852964038205079669121330525617053008023924774177407326116028372958564982530921891382451913519462695284520980518308030764657312835575717675458257817072674489225378380188316866024585531987375300015957470337869359035508315241267405525015536453030963993091566569737202111505137587637959235404823145886694654234327826735211598729562228845036124122796823977732056362796036787447391703502590101709328903124189997184667785551872192384111780273816185429644655240386146342489756379994334991567316047152938681575320221530189589104715864442852985700911399355803332840602461849539083884617078877384794748285711611828213238951617111384264518249294309573209555839128183483588864832616682187158167693033355037665289367155883566766402792462997626461454413468546862080453442747470025816521144963764009750350343939173248471347804471065747889868827352100458113693455333332831237001016831267293378753081650407121185352352428592092611660691875560547225553780657153961512838032723530955908770321092706929636896831521619892597015913387200151610789053897436811786578509008277702139336945471108836095282550621791760463755013246960514213133834160285368015747135858116720354881752453422171926051649712791049008943398110630775846665688783332686396645200598908312279648946177817302804508003238902826246664671233273159077383101354038867371153891463465531194428541893748524220133966665333385140712654925055603674926805492144658773720598525755190871098222552410259297745338143358523677848965967531032289076370569321728653790304969564928195408209277749019640426494271809049641679314442769676220587967365929506889107835858390723422389214539937371949171118341901678317660441701136878746068167059955227018418636082331337078772012403386083099250422121500390842120381145519658322021992184227317387054943290417054401743579506048197998227708301679446193507008068317591835201967045865166330073119501720847978810430236527565707243334522226604916244625417628313702035833872228619421361495027436027345388662174876939670738583386821616150266427423293882791584237848103496654821911383080211223055282158755344399398631658953775714150494756712158465070042495828573562381395380508215997809411410900514273261594551187417020958743268494391689698030457521381845984434157582415046908989501721292728881030194630306723177888537855906909970470041447668824583679527589149711398592400199765419533102377247217936178315967139156415293648017975935054342526105772899392450560506672910834605951836629535640822131878223698865250115418023030303024882526435676306187193375089777873338135646412406985330809278307107110873115602463797018666675792214178604308207127522136962273580927852822570205856755442515693121456161008017953452446180464197982012342162643222270422274585187404546987751136977239399087179863170225316736195859963883710079568286509649791754634127607346722746869702622627372145467825720455868284573420182206499656755478676698828496421139377671117197563936857662053326654627708749275990210744750177184470822350181645092731618086193893098877810806431940206377139720828715301632589092857330127953595432156453137081409821458748744649957344807827194845174250590080336242567739164167625608403118564623837915702833566353269799058303580264806655886341298723081564684506316701137402722133722511530526584566564659315186802560914596340478566162547526015708068546958782335772848675847381382209026218403819400424091421678718762428649999605717226168648226244063825984283994714471778425636980225879921273008188532286084110282576649437798767253140019828307210555103320806159464198866822351670544979509843948645493937280385557762509535746188407834949372455209645938689986281064383410194255808855499613269146634138513198556877744836206258792622590911160827444886843031360941278104875375895475693896325779580603091144087732646420308573566038792172002234004342655743301687783598333563432131987364618845826291084552533627610164085085417592932103268524853607567398339473203522829588234557110394354127818616358282806544417086564790039112464583277979866588373564213413114196096127536341038872809141385471340684972321863125652528203799311412370979396432472112169801124526593428816310288381516009816935625826246780572827428630498043729938945214715435812826181095894997415738747109487252277988194679497785245487719168513136414847838772893872825052873925458251420444159309211483464126168918169974175018455747834980432330879372889290349571271395418124247144230739109344800929259530993546989757229631777410431675826898253389271213824555235717395394312886398893051686401908271283843296535546032573469439501218609614771723344511078940167659924792501626046484008320195556875638280998446380752768918103822947934540667745253859417128838730111942168386951644356504047795479248341995553148307279222139810588982914467529848817554255698521607637325325013141111118766112406813640793737180468879232814221673630595490574251198744520613331560152446924448423473212964977176240295076562225542625386799069994323919473599519373350603414847876837749263043696104595766121395809179553530527271382360821264247868469804481416921522631974807462311327326693759416207103706839524689084953103163410387956234035403775809744256370862059278344157350344451522100499615993155690738805461765007161595990473628606537937799166106220330233000350684750709616138746926149934971600786706633820155266296473502280168440728360734510386127839673562262573876077065420844945842034927000019265822570687192418029630980880399668648220339093057638020777318246302954783367706559965874676812205992092195579871984108733840786094400335198259489377837069208388810676972287584176081977280665137696463191132374167993132093153222247945812720854667944224634154834614929349215521889577445287473978995620135759419171779373759103231357542641382730225155772601773857610646524036230325595085161109943833773613733593601329023646462228228253965580422862489507777335960462244341363021122571665211798067517361473842838927512836029474564253404337095139613139648542406385293245231908907831220038182667059064278152944093305141293759585806522933869850832562209741395074643210994194057528704892920252507946296872586212735763218191479448112387498095538064295075978771732811963721326153480920222678208611484178542937845195042577810225805532782150801032335829136574228423047607132957043382674627605976893228864756150036107688877129487122872261752723177551532716502152972453456767507890977127692685852142597495736700190582115709898463143786941684998882180770581688104254474144284442484619478200039658204069282163618406215971949522877970102291792627790257386702705238636502477128426096574008369430255709398048322665948594657600881107988172775561037228098116427238429553323770816102264940573375398176749444649954995765221460319877637553361023155450970330774501935052274376177994276401577564221604470982002970598637021325368030582021532438056211661336510445810500347897896110432651410832074064507023710700306222221803335201270283728733051296612472714955494055741296131195795393444286408204106590816098272339053975925622559765396878872521292970810760557885440274218386009168718502412004350189735337454174082613805234605924172238817091125566666302105189394760599401719524279923064752703778906873903572442445349298069467747111194697515742890516377981896154597432726690975741784923425095949764657622076665091864067762282736192706217130357344896186540109087692339156303119962810677789919876504168475711181428191445111658706366745732477824754120981423663737695692844988817565954386466363763570109911277512029028075356665005862795778044690852996859458675634505722450010404755193563675274414835529855728708273250055704093340191790961657093156619288001055420413689793458532452649023014842671233796450822246552982073122497734875653773436083822443290176856124249042024211724958076471882615598243359315936179887255644159419692771516149128040149975556547070612065676262427664001415653679005123801855567277903283419603229793658384909508657263793997287608403676379861964832927029386419484918673125583481156297883920779535483711505157395164834252589365297304071823274480176540471079333678980476614801677010276061877490280934196335348270056434884247314940399280977562345384026127547255461016929819628519950232433303785770470145711098796801459560055541812174418352640296836742119839323073960383348385525660782692436704590728800692524505339607345270187436944760338665977014305051852142371441468496739232107021080965675563002457158679563232490099497317494608954530595016643882526643085783934222484570085852304242189666274460815229874634127844724577156921773591584005439838157151760464770085007866252895803799895546878326590549576460596344328637809467964087311701076919056718420633121094330847025907292976767616731215979568635033809297913478457664049151027813083578644037504797390143238810263272917517379413103619991440064209270011178363212182042495201680152751034147740119276300232699981358935592826795855548549788275760341368726724458983781527397564704842188378559436011019512420691696745489885380769236540247641564813072380147270537635561750269769560519356048704519924148831301591923712335789890494126099951520400142049847137244187156454668406457733359354540402356864983102963049557691546758852448284163632011674031363280262559421564874929474626217409820200519463939647730801399339009692451206003706073276057334701163212525431327891439912713297802926413917842894865668762083439224078971413483789632304986935229626244604798154426706713842216865058182885631621350958156212916792289924386845090360286273871699103499861598917300913478777072203522849576682109982455359253662477882442670287070285160869669281015284116069155369225078710296100895935114056432608876725469481936047684483457284883299025619087427579307275449388122684314672190097914952363266963233981764155732842176967369844930460462905736753703557047054936106498948392332969720850815594847040482933513411457478891257018255961645195811598297428559421473247838457460516140092111370661115856185310426334352596463828705381789258395608946505844768580603333144270382553745535721308383690911346627454863809539127693352928842706348384609469039078275654200980819028535024157563717096312312172630764761950076108572698383973508009696701273941081898530428569517498839199389843854111187095274748803296640398941091717040046659979498897399751553553524473712182216427536642002017048426038868411599566058922569575987392573061877300989230471257563876810301229618312366654811232368211566580085597853907302978598620667525944954731581444398594558925279932753236951766107251586974890938098897905051037232553301380904342022373436161468829064991024523060151123411191249774038510216709434695003147269673961505397596256267013337147871869116668718088769633421145324163691145720467593755672369564264591450260261479391018066356872235725004995008392067793385082288970280718981742410750036904733253770537908120233984495073689830722086548134806168272233247246318923582733313248709824934279268085494751196656556065410612959921328364454835144827683123269695690642359539985586131807861170220032241664999252978725633668263282664560834240178053048931986577293944286931255713287688822593327243917874690783205873452051465479345652603830433694382786820766469384915289204346415453508904354801776867875055391889241189669317714718869428082849459412233238098204714479461441939895731991719099940645053687414878479180429855294374826866709270918038924203256370271198445903620014674971953935999533646708290028712478997767947194706581422598773269968209104679101011039286549700459262039379875920037296964191033283882389144730919781218022889861708522489754729505465422285967975864027471482337183237851680556938784331942362061445217997251827622437343269867235709047629327499767670325235561038040768226589352502228535635997666677096312227809554119779021353569185905706473634039449184594806446404882822414961578359951995993168460733364204329235417218073609086359883452866235262865376352528646370566443945252945031026459851806901587603240228532789575892336854799816610687633735347240703738815947385516082899099533191319010513658244239569138842798685638506355416333013603214350991597985907761945830801985583982528173814919738754094632387445359132470340265226537984998032558168273481889478380856961136527440401284405074248755853951921848372466177771230320790496048336460330371114756902344940727244657482575104065092722382684117581523565362128648630704360947415300130515783675194653398001497407424385880551236721243833147410514284031122351384048137723856822190450545872180418342267231493727664859868535350745876400663138624164767332314747210164016960643234078651126362567646471959013955921031096433605526645974299208565057985549358262504063084019213690244201636760081122534811586234829802090744593894910486195824223415194965954092713229708422099645688737911200879896143405468746515371003088480824587896204175226286825603638021686559799027370892023998103590880442677320793047695823452520335718618790041190534506685209285034690557621747957234852812631692307977929696196413066512530484377519664485093074961055891268726410903828980669784095576555196130157805452888107382946838146885513011847399969246858042976572139107475415111105874184715092589082578987152414444648948853810174347654366185671144387945591415213240891774413776031198198683635354697850223734349888904942010198545363945958278052217175579467862858933337736629323116335924687229097845829325023462312784328256137652381033060193881788582349914841575124705203767016663291530701508559940806707222107164331477448078448929544759620493178656763475745992387131928505146560468983162090390190796635475427908222995726358118542341784588634975921138992456927496407802812661991194096660107242746767498484006154225335415438458532919408077893441530247410633448136862535559667908897084556962168571108879704734830332651997014967892628387385071971183401367134207387420327598462003442795026399551776407292616913506886433748537138752868278241297849673211610264477600613966985314910187312921561868094195245941857936032929787043875977469600329067301695748756203720691354206368835996863996709226563350145471804138284054930184698634685629367602327355767852943766515456060399865628918572059027910748397009967353174305593634241725288982598179525309448745398800639129324815423925524176277032078632284407466234500553823177406226689086433212471354392935650638409849608048843498235385324338599466947631674820841623757603379739446701239642587831202282901213658692186697647827019309636499919074278950489056666112143242481917004829045835325370756115682027444735762387488139723603483812208576191409585750350713441352264004260637404266910103158031016104336352919382559026247714894584823988319298204543612813900653058005417182851471461343108841205519964218762063628472323491348496914753772724395798968458808388357265847626609137249550097409275391317085162354972248284417035717564810768832059820117087604198195097385106653851891686731098995630470486411988115062295526339354347153856769088808501954171818139228909740426087820969380869724678639139137169923533751010992160813910100333459366792022868416262152362869847277530079936127300443748680106201709127424165784415960619282404885992169003643701707093650845364789483966243292780388611146365102914631590132170052393780094913312793755569386389896896852508788764486708392150844839338943815623703249330390982720434532763132904073111064063325669668838364404441596933845847152554128969558166401962579490439119099680283702575859754656117918496388246194242670270598788362600062800679461157201276428248724109838604954913508639965701093440929481608248036415255344595193361769173461187413625239932830115838141960868330266161842993121988891309802940702168962481088053811183307219679100955677335554929962096988054118039694224277560849484429658282954273697569885427608085300273732790645587031064528057202010987324941464244575982240189369344922285004533394158862514887782680560496369266404337630719088608664964406504332696645536451641447857522784585427481163240451919187084313247371070673088133744113669966790336936445311876624078970150674766002222843697147496377033428208119589302088201150735997319514741358249993754950638787003507066522802686960010259020780514760523499853689020871761919175983048316317079631829057230324643105152411458104570291474356601068391663057804010963685522734184860714062454576925388352833036513140631498062038123011343468042487392504317152979842441269647352040944116715507807599282817028486953513557202489970001630940686366490279682790156983961651158601361717946172155324075405860580377533624757837282258678513579831454333932973010889794854388593370801428327334953916981081941116989246918210152653544376093135893738328143042023120445088844596518337192149299018375242963323880370356317829841772009806099681733822186419633013618958043717416705837913562991755117902905978766572249016659132837844399074870902536345111157664954899728921454529669323058794643570118869559447033320705336506611719510096302027903297351237279817407711612488843847875959572955148262073742629119377115430213451177582617902894175801723652669978851340872426927707541825579552606129144083232201132063342382700576613639708637905821558847543295042746577457659246838633551881444047998733451622032767865674282813119957241267235941465812214167594722924616352467177929697739816737650536409370621732385007660863807389518358881689607906222928605075041927518686653159672687985220726813658405305899873006472806743775583695252121793835851666645885399589435554207579852107869199608676956568419807356582398386658297807386772304677226678133182820580894429452012288656672949115675346668489852160146303196893952524498101934013036039032234883416874788002503725745206601106744307547593187727461154189493970192079705902076174008079997413770559144417219470781752689290176845436706829739175103583085434329295734856866075437033991195568871044201826530393691254671659358937541741410529646259710928842147011885630550561418004241157464090650998876941357812237993274627033317930427547003693741562361590398751305604949182595306760148059970170163059052052060876979692779943807327811181041380053487074859363531806948228407566341768230384412061976398655416275970595682566727617405895006808258727532847254809617277770636032361345477668084550407977200070835046149700777523815225240974739039987549950797200282885592530173281968457681603346965200023577582136328276680611013656373205652615900299177761062607351521843635936627397458430183290439323613618870959626475498036469396598090356748529573562929090671861990134713010527411311819442290587303759020203509188440133982698685413739463010144187971836365116539810087450845420469904357205964706724530871480187114849669243548398310888102440765715975206271886518755483275924854925132693364929195042186388999189538618689262245734125350297191248210829530308024769188100591199333618409682014550005413542303779997065849379475285851041202565860793408165609611768830038100770653423713363850086100928892715327803456753268183576115220752936992983999945356378347379604034558221508522634605902469688670819815260357642577725975845183207606747932545040475141061387661979998597873431123018542865082967952695513880487843927432968117365068313263223247403324401178113282896592067158827730081708688450329805277950488499256690415200719490382535664419598905842933014968320534713566542549475841167622945904471603342970908658130112249111528092273888383921129592453485247900229323591094891532540977007739504201989414973287066818958608730355778623943395099497762714370348937323599844286700196343035914579239237943999323985290307161333726237510846615510180773084781246685549965237085218988844382261652965774398864916909764294478191979427580610850391910458628214910250724826541442704314446154938367357866014337734045763441527491988025786879929145791221374425441803087770536018402576051566347108604726489504696026144247277870292237297182407139226469919284836819804127638937690838205018722267113575314903117505056162630268655894735103651141840629440603609168352852036841644967463479302932544575132086366059238042698677710263988011161861040162847987055982927952459125127792131274114622718603947348858853613205456411288971138688248386732722411223212210146079059050803639102358116661648881528426081121211523552062113162413234803240823582924050303698453281448676757136810725041083399066138842918225564263961313193957391535077133755878149479021530511710374508945832842849279527090841935266366472492989079448452087025298157335955164854664598800744566148734564390112236915483756018157730301489284132006521329954454790774103237755981872307523555073198401839050960260303808148417692288140784077703622091364296428215404049938593455844584820854860431556192380442565011995955165674289287460114303582687683536938024235178144135550835206956259373327346054752056436806031541628754245758346741401803764485158981423885959192250713559174626099606962431567284545880423596035987105995494390985519766615382305332386163294750849830165573656039327556106468707110014233236024348447820277114086948412921421751309056106693641869922767596227826415925415635488360021789832705334106865650716231400786308639055316978985610711316273750701598838773084928603865159612380121225708394423992403168609649537224475509841702439096338706625854016353233313341818085064390859918956825072912817604875919926162605708167534088050263649551703011949986986420215922609842969467764767218106521957277708724191797410372256381130164311790569404937951028149301065772507655689174737156424927726125803707220421834286084816948135755162829608467484983683919311982051666484777261601487851688058158536856931842496363226356504754680346386802907594135332293458746450923290604703304621175984198952842204819481632216396377756277683312197261445777227444583866101106628836799352616400519629055967967267870953339372162583579059474744611926849940035367804173037032297330147651730430016758755608131419079390628680899958353632760088301461209207000158647776022871202793554851041996286410495421302794007625496217525480708053321438365397406214624162261945057229261840571828058605426312819562778045615694798537284103110264455757384636204863490371960056214194835356694957017197148447018183700264991497690418858956045636942306483593809041402341320625551828498710131256261040778896286562029827424632988260002784144114264855033734797165411977676821810119497779437106516040614564165789440990929895967089564102231640405511727375088526707845114182490635196348145938959669062088402748675150600325636368077781741514419391572703070548504976738770441979548666238211530100715171112297743311198849366483512168273134452528100307250072547222234260534762711401186666838648098155523612605781313760772384331902428800514005363968689048840379935123705867114657757641538826012007205284000891351489752614979407759854879697030636811959418439914887773940549706840231660426662222766918138670523758991086716626890666806240883441656266686449667793145222360446282360037195266131199435742774440861555785974765153235971092553602402718150150790802879054408294726471994592736399283313838870957251355240187740243094685251003075560545603065148636010501235190167154390090242806150613932297938310154031451768929048147152623449444422050209533107218909241859265413571949447301790239774077548518624242716333858972628139949725994112750119782282744242126265776830230869265481631472098777718058027485276116096094257022443140610371692827325015719143036991069878893900127857870232579314784953758311977055084427932088483587228302546433211344161176320156544620524929000307270454695339796421447590334944304404644035690036184147684155072794462157024420771436417045118371269359073066017806157577174473562586731090320474447465108686863324471671010970601506684360780938614267700746937753626414582731411609704212086290237083276718674455739358668456105648070050297222661507077577030524730841859790335037289342480098012553529912536167790705589335444798701474862333861004540374862893284936460893628381160452692595557199774988671850757423636379980051750624490755907904282037573115145695037321534843189131985502303604643633238825287107553827195989815682768498625042286804958483265098531850791949537017701690416495235763453833406095544867619320942230918646365098725133388886214189331713607227667623183489919542185937888777700882500787004483585252236984397781326672287370162128080967571075565979692437671384451083455195437422848796051719198302346314784471480524116123710361048276306370859281228819232969527351916558452977218563643857137923195378375360560277854263439260146295619780177298908523771756457239431774437525386146555418837757412930063984507745643733073069594635690769992279866998316125776047367628810404129990692348550553383225006324681954427821124762997126311787401887766614807950094827583511762964929161617649948829702059951408045583345063070507423997472244312256114676452749899817808112584415413371682543565897896381752985265038813683650562686253057752074173469433143642405412522274805733993763009221988374783559283013390708511835699938069701946755815506457303280536381208961752092575273600740032266536454526819627485895951220408710836645063990911025690153189710677480442864967186231130529879317662008596365136305783460992018766521483999873294853252766387967681201752560733823865906908640976749602638690501082702224927080784869388527536598222234430460960184854712826221349549731920139539466590509028055050754448372255285152029229555167760336829442464160851222006167040815404208714242992293500840008840992495493617455729241838465831424825377363878905763646405612545914158358064967227157248367810158748821900025991327382758030407976865877831517214311259114397430964233631132755971017809425003139483319508330000229078807196202411298167075074999608218210734666140163316755413774236300170255414823741189093749526638444446889704108286628469667239872822630032344082404971259058419641592762985296748103355958273570056643465315809473983005825981259836356839433998155077358318801418661650929481515040830209736369386896460315553034685492852267062491676994308473451046188056249744174976173906690297527300298767663055396370754486808657609552011342468059911770674702622867931346031858544107770092633552163986383147947556668660366396316304405649998935130233801515445412134419076432925447190774674450423959486265487522315218719697014656737239370780979634075759006840035231408924501391274017573057700101039616667526538804066126196533877171810250535172677342894251952805311060855890698601925794870242731881271691918558451052186270595849116764175290720072760837723715975849126339924444296250039250111538352856105143866109091909746466114046600317035313011373765330621806689895358402061630077651297390155435232200750316471659057560173775866047266408437803543471143952665762592057799016018958468748922555897555878594862489628393329699624241528597556132702777630540635746659428715573313236287680675951539430817909782609634402556468883723123614292237213363914691200498852962353570950330632359135017620190383869721269262050478318267279508883519242068020226434849073885515290187520606693178106804841467178261873950519216800716127502914683673228703015623819977115689237590397530442761643627450493111146441139925319353235337196109971348927630174865470796993389989976168421491737263831063064229957842499872559605686609439462788935204472754128475142066528612315888074983983588573496903331650388731264363575139629399469747738727928605631358540864723820328335856288887022544015022992459433577498163061748767082961828956520860868197675347360143734614641399062484564114399287942949070739522026066047835659736796764806647868315496541181906012065096237749267989885072944580950840617973739598334751885061897676564462048179883987446603641338434419838162654383755228013267131154260374652848766318498473390273600802248639571495259271035685702899454485605979991331330255123390105764087998446373635926272401604369897895821005906789787589735195037703443277978448554098933708866709951886401913228185063175143136558933987903230482411940086849047527709089282293045991467894040207541798059278656888507612601967586959094293957741073286375465747573100324311178146800846705736814611650286810223545076274347269416253477467781251906465860509569409147458528457505368219656543185582479483740996227207760276625576211799655329716689463937645867163107216059300549659566712468176938722968826773956215554872230741688858025994140688791613353792293341701263230939078493162658201365708610100643365836307406937831167412112075305980018136389146986092321220494972611840497430671158061603541173679612259596852463823127599238731139908252070850628908242483187580033434868720267510087895069328816255012414884750373988565002434445562237035644840690017906623453951473166640679041669994049149675551605570879075354632209535418578263704325001160880323557751603112303647706059354574022514031990069313573086772269293687558521536688669019552115288401253271134417023614354066748412658548232145750285004945836098941447152259059984466419171023064577241892028353487833239623635331020800199262122084906310500223188969996692568201011108736837459869744632783911353160067650851484151779043941368203631457049192520558965280159704635892513704739998639667162473023946403837067777520730622081774267824339169642263111188558652886665129594446985023662533195495996816658595550013164488372115378141507830474804702459584274011404466389637166971388106185096503870083768477613267128379438075914503622562435700615153442381218633371335548443180306141292632033104905743448021656530274622948128700587856659744920996623228125580797214590482423247379716708354987211555289159463309009596321521323262242418193700717956741543258486099769248737829235502841968084688299871970597050345806735927488673054460179300409797338941845434641561049203429184432418513661328751269212856758671912601794651563159038730962516587488808008909251197851748519866480669080296560809372117715353284859800460856747050576338422116605828736739546743395613323879204912081698088734010419273813829308429674103169838433966660482035098073265536809121642960530878992671115436561916572455829692063108177244032122460836747482861024417480549024755990244608359174669175331388858240442101956308724462441471342717859982578440052432988900604037677094837926442291004979141197813223674109421030963411852098329821398949856955918403783713631522320450929441479787646152570686584780205516204320050270096863170177920345453662528194699481470749490789600851977340209793962421846241395887814616003499490058488850608025841264254286115120388175470867002817296917237771877339473235464920526781559662489972058742331457274363077974647072689613540883220146409828129669524360170746453297573509681669893637151993062564620857605535564652569544456620985159371527094521560979221334883714338706229400012035209100599274498208405720684890628666212053178860025632596266767644703077241418401397574502107767814756619157897399733842485460644109184572617394100205544724627502285010009140051497860497917480389035351066473967043005522475257213279861619464275704093589099193659953588855185149774061433492169229088575902246015207746957094960799078720551695334607527607241498575717975769772950180192943349384431188657244527377731058472327240184732157423228693653597525585943746047921743037698726530891664018338233552368484391625251722172059690848951984922837413711907718055489572104589209422338171691431782777241139108688229403590878077291142870369767630110468140637828675495954151366774821235353323896402699180195022187264705596663707912191757594069907482246700749403105627860136428285104701610044668882058469354735839563197976008155858389299991344254704937839443315841909519583615410966904567963945836186390239288720034647055566766696837552513110053632794689315999495853494302198135081343252919388627422076301815612407663110246672247247153601788184501547568038503683510334603314488589756078669981259963255662296738317250376095926940883666770400778132786847014543979663735270336502858836415967534710515732060082183422843438639510360781394315453600033841988448171574768043159340667786638315614450000125632450137334666357945101863323098679970510063891385014928411200497525736959153881619364793963583433205803596089064098562654877676683137727932050868208389068369528189760653469004038996368652256605333707350421586410584912487225404651548429253750455834207241701624016484137885513307069828342710202012321698094262183525240273543634473871927460000640699924534139111968493280883696995680219653455100181370072972406648124985270257473439614889398105748093567890207251062129954438186764118126811803541129698377311457489963344354283043787405382413135180013737957063710114926611310010136242607112391177207521173545601206366582367532134181760173072658351233061139652758887082747920272523273955938224155749664574885796491086719806189980211664744785976741327049299891693939258509701598555647558319276072105406618199020124074771746546875915203787071829564282809564307097164803395730927536935850314049055029005535743806922403716837523344073327723159791003454052499996817572479321011104381192881528137023727941760273956027006058974457338770786431558905123432919826789164919874460262576112365685046578666825312176363593032155168714232626271723200907214621357168742591728309989786992940197019818167556705436283803898347358264465831623634146455893292463319259089191871909074542047954357570997064273216022586987550268340640184921756500026480912455603016648946263405219099929867238593017887651140487064078985904735612601229056590264522406033887225096055299880806368849499012157331228518139711303779034997725933031606152536475287298752170053559239290089626435134418364483070555763797337009000044385873612548850738045223060089062275906321288287168111377426273604852116061600651959172447818651731348620349837479282619401273552555612170299337788210463393866440888505292120794328494380685060285697232921424902136918481698150755722535467889617484815527777469729379202196434847990518695237615358608236315292048199438729861863374423451684014522566755220155530106032939231584317401549113332137934904907539038146988203664034817846156419511347199675680326540943705515154190611563538343974355507216386992490510642260211996767405236858877475918138713543480467575275651198377589121199600981196646472395821640440231868075888744848390710340241773463647053806883287715937112720435706623480917132834937909701286410316153098542917005178608497881311832366380954727344231383760212445235209890816038960263193193704015085744118073962243582100970929747818469712996321949899833144803487718802972160783640881384994649878752506958235106217048454012610968438430809401696879652637995044370162577019096600708953471633600541429436121308980196107521497173578668030042364500915044942923967992747496678458444413034027401164262163655945975732979858396341616016087720102528416564859933031660063079975651954012168832657714199955420204684559504760510750404414456611102435470748874026979680277787447588023080780900749849334805057113656379894214356581601470746823925896830946697062131993291216553136994418967831697629452220966364208524154466525930330855845913631433102926653766215320908779104410008061918104093990765001113553021289413676143604240819683496236016061145800241013186111210305481225107496683253243274383330953594206028383031424083219315421386761429086132689165950751837670189264808164291239094924654803362246201467332098116990886987716177626296626486361560183280340706706276644351494917901308842553284551478494412275814161913620670259453164361355653882373266583725957026466093007943103819985444648430804530629790424148764545270824183102056095869309615847634052819992610902021538269250590215343937571693816043513659649309473284215911353246979005221033629035205763668163100244803798924374240495014186631277185042700488374024828411542050778746965794493325558952999317261420461865127622100479433544176944748366890342915007249652535582005032425339294079950014641489449640830325206454037474334560702926266129352801977255535480972903131600110188440533569181953568051355620829132328645506385253995040466897496223331434953517111716691435283987973734318889824648547206178332702871014521670762147792803625550933986332096148833286838096756110774853924917235739348431872194143512539603849650511876461292619276811901966235455330877480316402964065250557274200619655885390242690345892918388372368996603377069693218008768325908697751694119743678621810476098393386579544748225841894507500722862247230928018310589488183684652857196710498288166485203266154000492860742214415604626226436939820353812036103704337828219569972649515768093586162568861084404206918792865140578901018310053384185393300351106416676316518122381510864877222167953835360339391442138957608928622239961140901108166144362345123680043308922775174414735855291386312735699360031064617018049205225847888841575436863589532444494115829385062251250809935587499371182195660597416564983022864326513539668749224320491129580880894473849200577525668468185886223859413361417427172092304430599135647241250522001296839721597617861807274993887862846535831987955441334308090602762265360272640794366846830324616249574355111601476766523701580069608518940784005864207887020050811362891416360780976830928985405462523519574837991545164582227395571445143824539346800882931416646774357003127750122716307213225439857453257676188467767527598561908360333179233599097856080957410005174810704488938317318857234261956625922471901857208391028565508754148240880527649401852082079172085540803422720276240933927749164896818667158575118108106680264792954175015021868514064974579183201680449589455262062785031655163539056227139414945373432129273498460184262484207430033920689406110647164653680289337445880531262194028326173534895430141448529433187541195913010113791497902168165111536477424271487829273751652352730834730845492289328269490183571401597716443875355213778357973703662899609538419168189149336922362649936082368452431986409123777089865339045387791412999131571966353271229753197500537582848082779150200286527221636518071936755211739704927389529376568336644496783617601700794247060573674560719585123865956892807934402653908045490750331662394385414851310105634960324353925848443920677259791630469162410425272716112176747953062010635943217669126915124983857941665813266441478035323032449570808935547280414470892654829464419284050009140579666910471189770786626152044768452913186461421773419675271911810371133795065747841631666246854732587490903585528733988376710561073994793629282409797940581936909996606941431231039398039457526633880692967657146865743695268778072711726613348426833657932264545826765823354519976119026565717752786100070631313886315752487035623442856362105655270950958588046474540498189930021448412034529659962924402225434225900316232408659401608787768144435988563399125885190878450462305942310004480091925763493677867931604853207451936313481489337864308863822985938910954876090090573814922377839246404701418615370226487519735366279647725003766322877428617613560769832362367019811130202269455486366330300522065320413374678515051472130617617248613986417228786137030160215939884005686100928824519415975719370354989698824104547683374321120557550094706542071972307493061515054917903684893703260671940945167087481768535295713514058324555859587830088409123464456767498574454268325981481455720113015528938964811655283918585758075025185292567293607774406531792774805770471726202228084062685848856663215031196852511168821010649250662373181223735680644433170140879957697157718986296053595852929450535865326465416319828255801769443324190751339179170106918484718203822399711677383746534457581930162375379405536891815323313352333320716242934383728272805442028422877148923648304865694693336470943294646316479286326646656780200196224567673803482101859922504426947731266502889751989163603933721081459085514963266310068201529338166980265059734943474480645776355531055828100444320089999319999796306310738160098504065931820635579329543476276807175750551206031717000741082243300477916003869662442187436702758163228791268704254737768494626183893780850677352913348190717594511582073873101433127769552324252079451036693783793354502324171869393033277916250547533871171875270204613297061718380348019582529255785189724379597596013894277854633379118808820492602757318971135847888389594043326588799124061457348674632643630254923072293518152482414422887678665911697385055611797240202923120333840936754508771136931068961963201421306262123062790032715311592518567435775303745492008992779334228893723643503672756335910922736487693749153181384548475957461883092068970320511633399397879131865337964785977813312064177379610974288998754013511122785318211951162627028354783657770844965524045194523885191626627361509516784401544082559229480276477703919208536506824952100121278991007746149236874339931239487035673258479332677776968740015060227842539326676728635077880961299344149891187723645122273129365260229730161103081538172770329001335351826408577529510634160238952884222639129469169875832728134065052282129437812086367009532143799814081927789493613239467819249328026198239104220353378836482782769650554901327878402917705767578837919827181938609992677383170799078197090285601876363122243850960222493608478665008790710760113180419804642462854925605968763626460414856491988987284609978630028912286047978168864529545331932507910957712342235529292730372391144179376509495143658673355733506976340786672512959474828596155523428752103210359201060599217795491996487226841416858416173904964001654984707609293539973003221537390673828698618037669926666026580327371716271875864264376330288087761308485055903141635042379856623473715614393539072498878413521163978750284859056660428626440689246622853328631603320675185651142290289355041323872088791870618934262953237616552333318145502537139702792651410301339112304115353313614802220679570524664348234361765041296262175546611664611857378026395257201872664439349867286636690781605129216938163232126775564469524835721698562064109611646309388862842272817449956040916576164391216919461817946637276564564581541434783203191808308495161113517158990972843241708010279019958403839689505118457578411667852265959304702676364851894980106955813175902145873727529265715281876614069481887799638069290338412267336202134592244632492147101667111181014567367650550300065354193922571496574017014612748893220336869947897590294275408269927929184458530465418943740616003246982075323269306778109966755298024858407312888900535880635002778714080595230296493454103503886657731181065881491511802216675177476032418080459079680789369789855915088928465659798246911254714251588746823687753711236722718613319577861027361336849959934498777449889355604326383644293868466117129380085461035843871215212012287647982524122802770774869900999512619452180789018802296800950182242984967204879897794827055333112343468086711056577320004843135597796523095808346254066212447784634128577142381466275283913801245610155521952010838957096332337371603428023841082242461037139113060975423510699271767280737316908765153382198542733707337339413753930051189207117598698386072542707952672629729815116877910571932428833624783984082590528091743281265557839300898113471006950639541681536859114193710814308895496721782714472933059884497606138420160432414701312316317334498333806087703639952741788356110466020107960578057157126600621499639632047636291129043766488123275305750407746878601495459246578479465268915794856031959478147263950608399351151558447742797886214457913753580556080344442228514904468996501815077360774879058686046772230154814948545417568624661988564188429629463016072701144503806369526172391271011470038082025698225299355746628308397937168384756341234684862699709075410263182589938240872566753824225850703819899102331814019324864538759439810179393229994212751616901637023845816196449573335477866520685219213991758932033199708799726512600974784325486045198014746510034329743990616066157517786861875813712057258960129890961887372178531872437049532122899802603410976091925461870155210291000340865335809416774612702866027503253281657048504256692607379478182256462018804194935568999726703032394359949624038224246549487062184018174926449958074250680457396383204585962201532484096269415702340962886030661867216707665971619073659282933107847932894819542122695005633558881667932770221749109629781946404871608834004095842546764177763744005488667567133929788481356644548552394905209678321703370864550441952977436791587695118132229997540439431976225941458559393451295043673426870978713399921627956288462648775800221897232113488129889255700539746523003642501291172671546799217550772683203483447120699077062377798834925184067555627895313419721713944440649376684538664755809496942239181674032699691832986732394687233239882417059516318308491294068516828835544439962213440149877340791667016827256572893170679044603598472521300049103329844790261577092581011021737763491601877616108427854734041491540776130969582447048202105253269980761195146116905722214208519150122608662819849183037374366526554741478396924969847517314457143236086313887068157385862704539544864530411337628307110202697038345138095411411085709957492281441999015269686811138716482101376474811187636584673739326760228113054824565858192606482963733563853649145855621687290586090025728622432656278858727002179035743606782797997327634989049900130672400619648013612395914324894414596837637784540565074569364548420221429199595285588020884723592468012209602296135750173127891778402636256533760076304222956308007797620990592482415367868186073373647180450757860928970725407051110680814379002932522900137247642991105716511063225602938965499597344608403326476741806898042995610784057709150515141393350731178037605460753990247985967378872477648711974674567995871157020736895295589476084679581348151791593763366026838677546942964790465889963915797399885851474178089086650945964939366691993451313333603363107514671315812214654239451458220468574233891120395149896012078356619708469597194006433261897436527770861893972718170862343402934515382328278874835799791726226633167097406535566157509744073027681373911395823540579214838462423390240368839652900265766613481994877821665129544190240487286671906710142799142784120359144135836158630036623563719347346796286430418274040556638899815520253014414652636791892775278151524286959779585001536750573566181246001722281074161269743991322686056676950253121191870236920960444540230099297628895253170462985674308681588001229751547251535001441894520722969101061771857528891700710699070297036444540964131237814039518800063179733679720794609578302352863053029317991277387571874092624367102535590789088778470033997841907527996414942678496109539504062139076014184672548316393160088750703780893541559023333231935445587154648640062942108833343995344001218072023054583955433083161604642979217679044850909868208480879146202866711043763092959236814150703509848495466688654640215293398541575408526990632713374964251201278976745747233839452919018352958313840945879998904766581700518258697140977750775590499836739783884402808493659504832908657427785202992072598073762929168588561128801771967345909186591924242878937664286984228008484474286268083632764437301323175041259402325827082073723321684994115812980423692512426325034201595214581616110797570482099463589568549602561579179314551275411407782104598646160422646085645311301958171099978564199038238462470094095386841698403209924489251460235473249470374865132039031474558450133165866474407636626634766557480730631071208304970070080032795745483219512427315347851039206264173659876746107477976757606330665349199783888952869659669380467607338930790917294266474358326426136775225547641456092080525190294954167687658578176291611743716925927582326719436898344245880275691543954746789566787293804875941385554991382546418190973496453098387257681433885938631374399550377601019607113193388591509207035066544352962408607136781040069084775541483967076044936137002463526742322746932567682718280733376226638234599708507847855932008430637280989103874540846996858654617949530810720062048994800503685132023182389460699188082616848953005885625711277145122853656473621198567735676344587369405712050435786179511025597800425158727345992020064525705921077226525856525878628047899523388356065928852500047787069620888630416150859545427009199478707264814880760691225237060050960866422642813468597764520084946597658585438637996462787607427099313922262249540782018917126592291822237143168421190737889523539407561137526674326187134764183445396626192548258818263992569885804849826259401895498494613007483412798712151747956897225870773959348541940697765340981455186908993647332082485629879157521457211963873812405754418804071481452336344941591731532295948269799154556980586836904290838289866433403901188920131303710132500910344483970295465244132981395401935593868706667659056522691916968208675372510192641185814522324997958787100296859900568650459460089981868619763410101143970181235823734970768674416699087683616863056749892618618991242292045747105849010327280060673568437586522190102541309173832905817167075102046589079543495716483944402578526945346501955812351060696968728137907325923931490178871261833449659926662930779133753560563623051606316835241243138059749888270175200530701148150480416897883617257334869911956593635219730506003860091904942582034774536658154537332574815549803045382132050929008784320801959464525015920458840434450796374915421631278860421247520987199681628689343931530987969340957309727241831773846644478545768959506240651870407638087921101837811667068246499913774999661894098918498141048335187936682423774950787895138733779911588239630532951073539458484220722310609193897402537665708855961523969679295225984215605345722583859536755462263220247550546093771543805879519426784798785817578786365285967583814984964161650615374094738123897873512201233296256563979189795097362212753314326267197305114012767421550837085961740351928985481525799302451453380370155933296407186218751830206368030276401416871522580810519943220300906343687257554725015806408282341533917957519467737288497229688395704436407086172520435963561421152100950163252327994525676849364817778157188229444670534845760863561296633190655316347398568044412545637643295953899385512596549132644666542165492932140912354574829581189339354391807875232832141512229565405935716960335895095130549929290930629832701536769280354398313717822466276503164235193210818058251327087989855634400639283896244183989638079490491189631237633854759677069314373658750120530825509288413897902655463831512371413821521963288523071118660182714554135559325736723996327952096281509765665227524501594850191583289067733427366483363151108881949302187339608916835459986379322639810556988153955853170186886175472394317327490717929593753076481176686790743514168972413305515280627843485882290940594494834823469601867387070620357059712956176742060291898796041199143468891838760158281398075574007051810019717036230175489216159670112140475918664354224123788581670367833152631715416037809211217922392551173216350093536731100096494637545537262010338482758686240988211648340570375559087346699794341066396481967443074802325565923825071756668768139141917294605710602265435713875313659083463357038270282489761299488201476232517078061273353983887822923245598211276307927108263922178711629014852423082572884814744070788797074398411890037298598492355615241590995394801105790057798114536995630984235448270001992167959602392384665510587774719938617229365815418891104102881893951206376303116310201628009974297135877236445938214963162230369241684656326194274023678805847357527134526273410797735425735876023033153220150814838898287025685047613160413647046073065277209966185704169235920971511629845749045656141978543383572047380441317516436654824664945941842648556063218569845886262207640945453250520450350418127641899182378440041108912466298592289238218133331409181317919725444036993072132735520574016918627921466682358632281558718275881308244818230606747925853045436697299920115866569930757662787071162712471248672463650570306364926447617302752564514704546808424174406783774240360965238580733774359160414958649058766932674919180949204763044175174124568937202340894538480944128123574241517904551566603310717874836167376302853863502406304700091685862776316086817791390996906550886471784822829918065211444859886381873879942003375678070557027401402427003130010635489902902860264656955539372380628373200378181943479172060058356877210142393933754809940506451804004661839202296801983382006288720217631763533844566231549928057056021201481886557720667662309450231075674880682212311915207736492517931793348494802015916751238913059817521246374177087975342266414016268617060975955124399028845463487790056186114503581995181996350818908233768294407096902632667584799803612305944020918099291754806084079391711811041989327278789924495419272025071506270021999110340731042933316412063668868213811726779981499259569678511908485872142364850728218140800037370756120042848840423790109912263521720236975797734886949012411189160283565656237277626581625231627064900583441805340440064327450036396510798493136305705223284064951119000276996910207838071932841401907103304383399588509581614004349819195112821068151589149108376164216698931118592589992456341082050711457732383230354951629421642600729001511937080838287152821786392752897448856936422835718100387597980142718712538149143148401321519987264664628240247100346588062099281433308942019353585638612886165371164993227816988204141061786131606641638897716998005049605854218495995983469910837358827343686393363952886531395180696944739342980920716737214103682618444273861738901776126828801560762916040464293455204952406888165750072604980233975318599421840695688074413119181357919272778503986052860290861365696731130519896544865790382503873288178160087578299821173221311143886940552330752250386228913565508985384297506243449808741670308116027490652503418945118994556095833336334978937832615880841634772336766672334245751045483601606781211649762390133023755065427177660873168899869875549267655694979166404056205673872806185141645017791141098789406785851174368552278453221571386787629049118735217952417956745822820864833502861378853426168995550631974715650158919091940746566511677234725437022888637508968445563876288334860895831675398068191333969379289358329317158432444091404634536456069032884652788230508366485248346999787876350311669304966414255671495091456802658116289338668920427001450643216897364379834712804172286262591945627865243521176332583803516177887112755305374104606696337338625514589586890794894063001585204664360747922778813651357117263798528895282555745991605381029152984612765700344321760998034864381142109860011851219473875461308304651135103157301430888551778796756178828903769998168727543554377918820501160298289009263670154192177259433622755332999562601246650855799861547662834026803202956573193476293356544002148776361174499532763238232274428553198077516614019971896029884109605827536687061022462467742346518884250664069610070889174533604948965609515771857434247826926348057176606040171392327204386417389535415995822948651209745916888558990896075018189236742294300175129668825096673383800449254442208852740556524235333474654297157913675240680125566502283095312660844854726433127111824719294206668459615356589998366589959150021261407959280758946138410910856170033254580121670379566759176073716010687256031567930679244841389648037062234857253803116412296998717143022017570814024680540083085957497801014588098418847309242833998134586740469291753960407179258290096725693065363893114989912948024715217658264224121627951816041780341883128421329523793628544335603826567366447351620059007884765718080113820747898711034768353704411371813499105148916944317921745633030398510832401159749434615181395626679210581104804832112047411015933789120706462236530157487519706916263123498663225148764271084645311001572567671355943375495703406214897106989053220051369277592464026380763916575763252580934460607959482142835539580081374606111302128138779223371023258325343874293462623423603050027679267195027799236880370879011485528037798620548585185827126219629760734184824279356959014521161580503728824666543449739971533297247728840683453332605030422389209535532341283191623071758552375973376883666964612213435643623990607603488808376160752784842927743194467249283994059744700876318012993887718089366123261054011367519239254348215626071709009314285080001572170825011938677425191380624941874534336053591362488320555898107809639704619719311309208382326038374981132137425594275216562626754776016302119074002106049024989334311664736255434036532316941594484565474308870531790939427860518492785433239702131642227573825784228137433366399632344615720776366616950237658169044433469253504577371925316701510734231124547918328193739115158029085929771557046388442676247929063412281066659281334592855194348974027281253309294218013404070243404882834257575904850835190840991860827348362175545252018726299032384677353589281247916542656878578135419207823922070221345954532633756932322845909844908322714725282153908537922964154841314700263503928865158992918922657164161587706750556483591327223158871082630872251024306687820094106708512792803371876125147140929249213572131241410422453783673695098368711132865965474857613310799595681883252853986232874184841194338806247906199297089425803909086736003489740087031917268042230847835677232426309028172228100316367492130991066786071260398078962671710320828886895077992233946510148670049810380638402291617669058597120207326286277822881506774587267063399907614310853775410014426327786995829505119551160649133413783843741095049156732904909968372898194698758968523242736272884111610227755940410632648763799240032835388995969267323514106029048083695945516415938796091040527706236169493267145686314428205898718657116646837253085467206827216432812081482823423048444087542207607642686814690705734833994054648015888950249811096690393984698591755273726358099581156357834978199893403970883801290529562628061287232593391179481287679441748155910846391448335118373968087672374337204332157884317097148776892045645050965219678832725444643650250068551924935528892465226842668511034719371694167255544955032875836253431691938496893364199993395955690321445268137086916609839221897852578573921863020349224091390994388549771080734505810971342642322597249544391094161856340221174396509609316286211332387693110065900405597893376532209264629068537874530696057980087395143159081445794268002653263867734923629143196348546921708867503063172251421091982706785408099781599278700921493653711944014839941903008756177428777450109721957000949168787677106673363450484434362246483638618383591002911815014038034546329155238381974219874283919720146570118765174681054764022705980296520271034338721207637341122054901865564606109889779993549430654367499172387584508401070240995704395225112029941931348883200198910524568924918235493468716584310587987503820829597040661311248372027307284634510609651146629417309696648845860877687731442355184756779538798779670125001414877190368656247145602249010598132985905744316530370566512295995916378518667668430890595728300573082627087170604609561968420995875130597238135286808658644663378048268712756433727890802359860084423936991883342545309039136477485160222227704250329421799755654255985517838805695076988832460486792110097748304152166069143778845292042092547023773911496238020931423665186434163613061284983414735644751490865140617585388809797056423694430330754938795433926771299917386336222043523562479964193797502534341506633492948831869599091749714669008467934163680454417670476938737106053203086471691374894580033303469276032833779644932992019040152532005814389897727200824240412583479526119218312514024420565024440907186575896695713287056749839444111027263677749919482067405379207230114255020905979930104362737029542442139426690229669744493667913215967740146253449529758600871071067786387916890339276011925824183074141291089203204291872337080652707066155877380641197922174927154738143836131508576011171618495512985840882715310095162287872841362307089370583852172154869800625050990304354193183142397039815943684295163954147605326242963083527904115178708417956817711932052674173836895505587674073050883683772715405813631345595828807146137896657327088066252851799204351138802012736221655683972544843700253847800262611741465556180183478745755280408567602551117641519304928039668107498818468430088270107668425986196348849185721644718477763143848462632055522458152041576754071500190109899606586518680413429340360605844365669426386984838109060575139832956607897344977944672651050077123335033614307536946512690711058860787751445069503155190589440531090777905178174028519957155541037963426180576049800814935215446961986597781655362303702960605965415312697600005931017468213176816535271075654530578375118830156694666001545018893101573362998030124078403844571967061326502857391030491122908426844955423852098448859919468494721227160001156517048907288127465691808709429179492600427901712633513506762795271510696555480450073828258048838903014679828544763095802784424589588778907100840010221830486839653013838641550971960524360264186967496283710940935639478147384769436732765018724599915832010973303170896783849032757313463903531674751015158027210163522223173826788252608416343537470019631695342211723876821794945856174317506641759856665417108688696001546409439315946746682193294074824938733659676724581588693320707849725129870084415644082895296214237523324346845086736928728913199384601520844182761834695432279398561527501869311343690368444579829584545968403412718566482133050488539998646765544608597039335730190929884375207914510518112978612616061366210527035110956429216721735821998435031403061656405727726583371373721101117016486321826103583631571804751284562427742659801042682366451804476075651137087108436868882152315337274955740681181952329389434914577914400516000315673828146434991359083576851885498586576221008346520480314137350194805720098734895213426356423672280686359457941822087957735949766579427328843897192202840154309430791475252343444042560853373533168069270724905936652473970011521071718067359643937388284894971613256145732047985169129520676213801669186612050540479640364235968642440218861832769956647076336047255407464832133756068623010732892988430262483796724270771264188602951174593056149252225016216538274340114223628919932403320423749535628612767811238161588300022929780174212860223514221745033206545398258056038721047939623080541141100751658462953083461846865932660122012612002965643295564908455710082578588545757124124662007528062513504120476837194702015028921640336835714697203264078434363150898842180763853191274454668803559140718606264741033253832845449156143513486901136396362751688427056700434001680466295147132040696670209877237679792001828977331369269858392307518059743602632507209024094024880186323617889255760401533942032359712490764503289109056537665074485834401399610759918094788521228607344889917397158797755545110344502630556271428106420839009365785735665634163765600910970007753991241449049003368606642448040466608724070439809879028839582575060316960900594152890190137861786552380917915154547692224539432397002226372026998652007249940264122332181455027254807303309492520486990404272188610356217623771486295899133081956631348341247455228851448013666485594196927435170892303017295272859864923202580740508071663019270312865271802929845398946653341620154031883769640863571908447325027201718201264352861123700440711260957492470604131025405477059787020792175716940802403456602392326418976272961920667844879078540841994675189545257724706238590206158782422106535785632519952702184945052194385763783199531934159178370784058283736708772373427454226279224358907486451268224440959430977398362564134033907991944769319611316488337133954174830354842000426456983093193411584113627298470480735442053336866337055006832661713040745013572202850740138574085784503978764343870579377735137739870125266251561286727696834283571823347808010808659403092400823924035453510106258991056249927558008993070301396389970935730522221690091020055842860560606120131812610245695735102286362289110484643987679539902332481125475388119249425829217949757013831231321306575529423894880181185869415697617717257046107566774556532073041073547175693716406128650589817619657831187932795092720752368388023638931774202858821167602084615222740838590609014179681612458627220267525360942228369556965815276671025935957316940287602174324807012820894941686086517547009653245067717386930779709991152746248147429396348629042943818386105045090786206372224888126175233277980093869276836503991298079238553900383622126416546301202089920927614162661963642660001314560043199854386410676673066455443408146163851716765619780409062162506154900482011463356392625983748585098505630308864843766466591432019087579085966918367680882005873414932086327223588809795517943296340685241157475659018260209015750524016476530513770457322844391265133798175903808148675220597372572842762150241892094517685117886376617844044309330993956716944736014285168893507335727944444122898122541393151558819100362395883177544337188669761875879424037601899225378978502909970204408668108072698975287556886561977921432679281621186561180317685427195025719947418444081730262044442788551899370140844060662824872109562751362441055852320925171924553339211561057428466850876545956726218355896267082732147456068665709027198553829903187883529424525989449825788897610254571805432867402970864680565877040767179893056181064073700020156990941431899717131338494884524261333753769571932554415876684210812213259410028499610644118263876879969856173444730693506190801520423991058492638720712973732913595644848290739836144000462827231924244967669107163013876054081243805966380349152415202954167014685658587785216861418750464287294423792353729516090726122416731273473533449488085616485372689634320896206209966189749862711391976752653048903424644261685050825104071668804984307795012031740503398968836197278307083623483714562137042854862646489646940080577364242116070986850765917882785503312534277272478396440898551343587815163158444743834211442252920441699556193459720907471673842437027745187300724926983978402906527131383153126124437514273240200850594224430260812802335358517174851460165765615858066073070370388331193259256780054057937992056982586805117501786238752213530337989674914698247150441511016347799026959520864953010831606469511669247390597318698759003630468536233955055161173247919198874673582982818111964931531868622220376376129577966607140524635964137702851334945331038925511455507100566261488800771993049371709278862912743927789210377114590382732978747300740033268260118022790490394617562319452750376432474439149029508187499436880874339008362686587426846476334130968664055124274318172582137181933991544882399226095286817729104729242697268266253327877769950724136298604187285318746158888909902911553998397077114913048491528823715596604872235524975354370051625257778566100147493305543744381970707846312491145383636904180067353322316088571320277629344378363907415331820659394656798600017893688118732852176125538312975474108247342058720117660494762948777096209295094048869912881115452132555481663132539499633781524213073820219510323797509117559034721112260325980987575596098626031042871916149778228923449634907040064646977470483006824547232095570143057876915683820946856179251001237260273368288306051425250284592807035433250493090398260311362961687507122132665254527350897547909768441758789236447669561929318999603856321781217623975488225445101012080714048978711262281267857646577464239076034484703113994942581302288399257215578522932039766666877237243633845952320549105677147830915909135771491311249327192287610800942607721235045057021494349973424463751756451853037407079065503625275750481038122776048018398608027325201751117959643619468008170180778013902273093249390609519880443820835235700966262762941676728868037586739005453658191738235276936889047681292039234157194477169988405817882923452865578481069780203150614743155495604197841342169430038411938284305785092815691454952455715444977386726689431062744606322519010763634104167775633998377254580136290395657994803600056759514938020276934295513050828215139418358904579278061836379989876839690852893031213433146479331920614034266393368047284373376901366639716142792742929692906448082804557824812635225774846131688482863149639202730453670920189978502644902460176985249563114753352177027394223749965769047227896879069125075394697173087987402451793547124931024694906117868604407412532945058398684272084259831149542932973991833823198739900208471919987687240157631668652609573613105850771345864820924990396957616331819606394130920671885219189023653598582900661663180674081741333230093945519186656966597373811778962747235650419991508603270010053747012832822910266142430509870958594358967524171187894644457131627613996398969895399993377623757845883642044488421989968091412704403937726184127379508257220256973834585898338596978659128898072767942581275951287427565713227318401020297423630483708693203686966436822764183494511246352404867094052497153506725460923800053272974403298114042961069220264546576322809838911800737796862832024116190883623342920980457337109315144738795696771633723528025917739529355242443759184601192013670352816939676383965506550715251329080847078952464369022354930280301291486556511217707412302861904247440773404350969742235104915585074760654623723870567908942157088570245414876630384337777354132808824617037432422099107864397412506684611781301516869468225115604306977504633505689073686704871907923612049674780417258555101195198924403896944528233522299743494724100949070273973060864206484726978642751207041538223699148816638706352187735580842943245976865483516864701924626843824310868800157803496030206523318528807834783217051149733100340274650936355315116778031873688818038353265308558374982477634082115792844261304485196476478723531058100517212999464065171629282205452754180241942598733945046932594983266262244934176315158695698543243925890136072466543260463715401870022096016706509510283037647023395355012313493205955658929011480491025171013345446525549431214968987449527463116777666544699871406578061969079533496851177980830546600376850351584072728965224332523567488439011816549103063983205981848368848052833724747360903910225079931949822209249874852184493156702277854200523053314958478267832988692247982699348626033295916991933303224889670180386380533705162828274378193133930082862326573116907926698539827286535066263756606985759954512522841979650613758829908752839600439674336402701678633465333541472692055828681551255991071204431152678501090681975077239378527616539071445388319235484618968480964233982037452334543025835899165874671311701326185926778668087119282154626541709784466184837759272955428935132878834732763926822429223715210259504510710186899819850275003884313752437682284684689414317226408110028034881412690078850933404443361918620989619997912152162444512007005573458606759121464245033486441574646502563644281913950952575614732327733339650396764067627281619302021157402787786807290511535902531486995565082740218524949910172340484757925162358493833445027763719543937716417399521345179473029727360974688586663089390494835051773955136886450649322950092131545930858097510362067965041960440148434717096612911088894492477566438482915680212806794588570547180941557194967397985379516210631892503521952653654011910629619985523640794013613244300426068085322167066108840690576736961878349490767469620021050798746654168309482310613410842233753105516937559668447746458534972266779051266070744645293650877463832345173150212860419612055194182099299921660421761417190071749207585043590964108872846631583622560570692324061701552657431988729810842989502801867954381427058160006534495628722168219137785228631173589727812561491558794492261857726035655955089441647982070538224846303954638573547227056677955005241721052825472857015326988219676845174079358860264191420386966733115485146139306616912741863158830359557296381071929947106135365899994828066710000351777163234311781021853602407020458571503999670883554381732459739168241323360287879765340609482770287585746359982826871532013797794887381707116084433956349232932480293427818493939777540607446893442956575265302263326000473760161195823973786577712193942070166701320219218183613805132599572087871549548115492858792823932244310898294609241032043581400765716257946012977317318742648833244789683019600056475125301315820199403873941019819724656087457535590138142722567519631586905802368827739109732457640543777203870261630604107221410355293752482488712851084256544698498383313426729275444144316675719153093861828953183309496760221554177172713293716207237203342280892809268632912100922326263175195750920651386990324332199469560791479001307423309910800146467051381019452109263313951809081640962697635777854864687054860973664435870291908361586580407562432667095595816760145005352479472893453536087030233219832746079640384514438620324355260688709260518605817826144395728919208254284679918107103483489706037531543384022840110753099268751207928962266304362721366691531307691895047458377393384314352276531867501091614040102007819520763602089820033225506486877707290817674397935249373257414841723925075708271059901117697775326930679394261707891448234913575242063820226851113565724765586256666311147839088370371373859020946060463777283937156599853443299638906584116634451071964482791398833658148729849559314647702183926655156788413686648318633923789529452950532970062757691893705181758837957865026458050691050513705680858620247396638286583821996113936494206792457171714631685252959876718122019308464322055453298617107278054370435645298055625248734357265878051763013286583437680323434704993155522257954672825464240183947067800485858422736422541648835811270005739058462821728922314461944857302712818105819461020041581042541609960625451642296796622646935853490666469455002270989495313576260605974068581455374647312612387096539976151378746141125843041349050171398077845583548897362781959555586193683263788053263851432004084627035580857878902923635743471690610142876586819988510559221196074886660702803745722417794610558386979474799303739488849016116016708515891746762069084896360568771478667830850812472562499167545517896406225354788255079392143554795979574961155173297391401010053647366927873964111072776915254230576766812038340021870854863247680676315048478915923305115181210887697574479126468190778201137741850334208712153396857131835638661272561923771651941355516260377870400755980664485828290907975498848925527635570856427676950391923103195026263675502800581178046572552249630420488543024378549279894522855635010430959331858263204834559263900132186831384316594622855398679648852924653290501395531555648973520754118148250395236958433263123538394561577815951726500749158862837405251858629793298419070594704399789222981708607229295324979997752312472857458230279749707215482987904909663075460148964571225739435660138201126486439109127735899348015820073563416217585966100208233428880846238778698574780431868897176234276252708584606242739330908075638563314596494478782303567200836425850153917876723883636820076331765685041495320592933900654402741372030512868046863649106838067089867082177633941281866249802092309460627691383103920572380171936775625794631753902094084225255624689672571231957799836793327616227050098029328289303035717920819654934867712873192739141676782352569907362123787086467511411288887714998546826115951014971214780120888911763258491402190441347974422922324176752207433375331185121041500611009975903185869706557805308187460163519383718375242557303443580559941484021158588902012275413690999923854480488898537779565597753666363604044396406304479758412980394011226893787496061836105986006097913826880892084005284170599939475325314986764230140313182223264534332924629481350598492642744819892156772726302601414672367782455536760784598827386812047291216718001056094807264457997155808003362031791428984595005339235993159543487320035556062218906086719480808332287642782996707540727504234049901019720682562091716458922816554941352926923898220597181031054491568999935010959111081609539412019361959955151057814529451723478918287131878051530126851425726123240097671536427296985557695233632275759229502347507453840127649161050657390916787340796775421166900070862214471915320684753779653935004228199850812039838589647287344139981620885247648241403260136021358242879017231168062273502997432083000108573343562971133659908562093344406509627720180847065173914044819732233420245818889029313951085487305365744723676591115952000517779957571748798141826041662891105927158600900148811998213755013586180231998228660435422211551695274679871724207273974450802693823086885109240036026359575575603377245083903474780507210523803984112975155196087369948874063730301998882609602942918580557036276894537980024547203046084729013218299748074267987436155861724131431833781622594424206824761534382758747341530063774436693430462357356775755381131922122951329398523183149713341812815619056477845496293590605502977829386207597520633299465309966568562957527322693184981712691571107167130752532294885515688827986349193590819316775578038609858208428932388865237297420310400020414155219530618623649270866445263607610797565566321770870707719720208737938676254167265669685613428899389138780701920047304678598589280311928395381009206306399223342327667688738818283546742673036755516624232406973169343648387425806391973161717795237693709217981030573152567046942250742950124142087275423970363098112619065746158882454201312536399589490337091941180557564779582443688151008499952796857992011609472552383599429307129842693290015167887508065159071564826061309785568194143273667873115904501777449235531166557858606826439404657965921012436587814741875007100205848467101530013775622848727937931779753257464452836630272736004974920096164517954349247258997237016329179426428642019894844397847445915880501331929286575479426342326845214339718847146837198650230031208602230902438785414848653938663451779601236952915615824800128203483842332252109332114184154149809416635016641942474851399815600641878022704468190176859161732925756653203151594722949522595413557875728042864706334357178036410642309105439488124852867642980885519202387440834239838230943328090680995829167031169255679493648973434006925910179369139199306135190909842290857720058747137557337661467416279734082625600528656818504222319847220377854804862229858347273222462432343444558182912736973053393012222155922430448144627541583780230471509293814017848422744309946212595679587602190623007391151863791683549563858098141948539296160011930420614949277685693567475422395163656192321271283108664718060080320992821805211734487876264137440345152929185185399642668611209503963109085178640544859165897943874628886642397123538442821225836180864892243553007458939230786120399211806835667757529260884658548621796881438397989601117308170292099040326227022153374458956814729129106506691191392745912959797391588545908999267417268461941727918145706928765628616519418422107193687864005617250211861934556552182645292504341350495455638199125005759011923822303015040392626632122767877277410775632863917405099931405128095508064450961427979017947443179487945324795849156277558086392222690024916648606938560140935625055793417225366151828266417724032502692084893543457260367057598548959802190338165745181128786586206870596396562695884507317104283270439471379135709140151146534793859140962068258366367841981402191416032440978140506475667313075511324355780298067593083709026326206159529569024571109100374140374949934091616786927559887180899524510519539988997902385126679007412630587581884530517187295611714299453208694516503426443912311735446829194996234897469196532466132745330813261543049224504004809993727014688025599807507875176987417607765928792558489920307450279907397068808977127097125170332105966896061404807770439134077417234768485991988429682912037521170158034578958956405413981209915481245612722546280888689961980150401369596551285926811510352778645575893478623056290318172508830341451080614830520375717285075638066781644882520539400880830987916830122359548850514649533402132645895112882165393853041104145534535911652468396544155124347830858606718219614382418294109643713965565788135255116066412920776546581274428627280972760182206607839642186200643348229395787672309733213574721318585599928594679658009345847854884229424006913378473954449804008400555581106005709684678502844315855982860688821074417636673701294073172016025163698052070681166389028799523196094442127078239832255594449748226683979009521385636817611765440246403297643896270146704444166772503722186406771203937051311336806206753280089326350345621161652405431407858052534673512379261030296382375042005520585701999577801089981224353912601502166884485030816193072465913403238202676924879789538605483576200778196742724856145464782022294489316937007866161917252641148360666914897562778574226988756334084136660557173592265700124212732628732975802602164981481418274490284305637706510147907248420942152667850322208419052393697605258648193865215579932870780073736495335615723383776788502902059461092661528827819601405741604324592522082008587947868713846461796679183713621841266525091104112669436683572976311823814204734647269310273484251628272276402051204059975606103922770252373129292668145994323350367135660241082305205851825248982459945076328417588507496668603176276706420434803203469224949389304099927569488048179121018044508164590547351793142255428978864302362900980524591238584700536735636425735518901508992967356869321628280671727102852086718148900036127649345789030789502177712721645959053768270396655463709039212059771175305580080680822504900661360102027967717338503337508461050475580519053485711914171446786039027574558530903971235630321323678069070667763314489166594808783946694938991332149146895119445689474610263238707734620219000808196133663448581191561954083815046417691085714724877499512386408155190807058709600813500385023799787425099480508865540170335931977389679137509412286546866789285132647205165839549714717891085295447701691317227419490331174287750152564910546216088766750782021938896928080801638190819046494709231839392771841882740107527203474852184405279040177871990575559744047791407775590187072615500437770109362057850570294708972001950533005208699474105764165960193626270545152477537499576048439837791100314418235690038621292964552812816537499546780254776130506614157733669817943758176334879622503724005936997743787084056079891947862611635029013977616290246800629630482729640517634564513552087291205138584020031524990674842825968821712964613278979978052414440955238302016665924636162887701607938711322723780159339502946323265159480676903276890583880952406121041294075339903421081925763391064705391566546705855305849834349685190564195063836024578428988586156384088641502642588107341805389966381698811976455025921965229367258107803781835512480273562207169859217978187041585527689792074127732338274891736929080585409936214319034378021535094929816492886399094934364330744147876147772716518508667365375224779165393562066990616052141868263002665739988033902889204045093396898550930037265305630155498991147397559969677852398837077042128630428620485177660182611907322670750731496824937316426489551366526565952824115728496550321411219550968478494502071077567112071353210786241984157413738428930897142800922594324956503703071902289705865528783670034161864063113600972265688599279537175037420510657412293649271165123472805826845450637675558965379898970666890959281186008652284490448008001333770065272396009913204209515482734963513236478040322185721379203152081816504711051758556356693086167573423989673021010314159551492506233037315710901519949340507551002341441799037730608090716231212711913075663165271158662845734405176190765031929262190728709417910867604419112384321686255225230281519432472009855413441682065949557880583362594736896167456358552225658074198412737851460973818605686142784420512117399427567846644773339392517772261259772037264743050652783928405999148644261958053873826123057145491946788112282876997666969847124068042898736540576683766327179770850958011588925729723354718199183869130985740690253007189613748406710154219974090690741270942072056289650541757295903724871430758755719153564086068790242708591908144380615233335321360782514578034118097628730688760119724078974325435400780386544564650228456381489966700844443368527982348174314533910619848986400929343034317744799732658090798192406159969525640652116773543613939574949647071564784075755015010046711825182782839378063894062743977396418340211018958320246956250405945113650970173889329764306746551731615976235109994593489349478111595787061463835645006501275260021620982319853743208991627172932265235043680066901480450853514087829484014837220824961366364283889866679685029730158500712881593305864546153829120329891738068772754407013295285126446466247082655339014215318601994336572388324115027522758645589867750416501958973119892832873313073155579511291309972907034963088521924695342098739702444093502738816289558464984369599992696037039431811940578450333507476916562614115556745523782741645208952184906235982061937503660857015766071456527008406192534046347172849828171888037809213242897369899401918029585036007111103193849276279798552921583574699193569004125374686946807130685289656145907970429370738562455600693869982556720276588532350712184547588293584757577256677555259865376941799929117811534450995793259438313925362205668794056010477986305152757861821435769962578873339595983657575180547444403936897491924424553652342088698334604952277210133638793113543316958459926540881333588112905738795295654608729633662883000881062711968721998611512375398670941512101516919054803190029072224562374245846109044713872354720415400826963636039112057335849279765284723613213836180528984405536906929202483072994732955017305345701576004662584124652861927985989456334276463428132312291468894118652292223987286584809071281218863411789398531604840000379962729033747441554944313730939188083014045481047321312887104569028116239409047097552399025042223759563232500114922481090213659527306264875245316609721186528752580709718941488084477673987530393753928571460219273568363652676240530986106132969116275533181268959791834909494516775945301192094941585107866156658906588546428503300229031283284603593681020147439809536578248967159614578431557695736755670530999700225102863023649229478951562182764915010787714979803759624830187138773111896673980949826634167214183940324793889218446685766559734217041234144641883814548236810903746180694302865549542213461151290765654857188333814499559690821228922609258222359963222590708421796291516932191769271523621685104367160556753323174574288487983392564849738086745084092610191316945086083660603087782946613963680647102576738669234712424299358660005064133221998283535852614426815650867761310713122901221675843690270041726086937631397582743866494838879057760901262389799874183929304941752592237159489547427417479930637494625613841933445680952736672917075205486258732812229217917484414195441888312310525239294727016526125618732119125214871484303094341167064433714851116310398973532484179083864360480731656901523716594430967733293284062925982750700556156334494892580334158463682024956226309429482354660900529525651294995173151452727631512783958616376591368208377881605357524493900719209659959669770449152260542647150795232238291292571443032882982656106490711079575777158412583891714685750749604669685640438748617016302186628966271612119957671951392007631661249028248893577048376912992513879858189851738914992756705587196542724726491282617196222809698872596678004172257511466423110566854024687067092798682085475488837612998860988703334074764390608991639232081981517310986430260742816779359146594113669205640925656521503965442403252159888287296626088143262235445105762876344080584049340241753048987019931654720498050131587320264081659441187188413507628984249751351548934081257862277823816590743863085711396891013466661928455352667676918401016329084938063290723985217616743356964778269238543137875511123136641749303620192589597683407614209464696469095862680621012177151761716404849063246955757149456592133711937341593932744889401843482895360111109274838777180618082048465143507886131845430310194020248876766586582278059340172926249386037196133708753471158931927377457600325415762384099376322282954157237748220580010198474512816239588618717148248854744222338138453178073668388042946935020472345614365330700778469550516627254295440991776590523622723605015919433539253854286867716052089123674699286305749706304132321314623810922089704846092144556901188740437047725199586669605818672866920630366659427824495359581415913334999402321448636208322217285647037885108132433053311245596245081474841330611560564698139176231639650371684455128462267183358731032022031432889865090799604456978306725859965450582684207040909479640064497806539031118246524822707497261133695809714245626767539612895520989243736564943593943643931674093018628399009166319608268161329250943082223144128195555964378860476961945241727751418811565938477752386882213220709271847627184810015482157863576663716785467973851948673402864195933392931322222511386050965345915991244742905704723110661785574404684614984819801962058889563585216605814550492924487787724843285411271043622239516360088136374015946050556544035623297916340446140435883386370333892630682400421679585432578699287467177592188281603863161886607531110688451088496579433934962156476434814355854415275656279705512733005256664931128498116375999159426319435235220822726875638054499174913899416275075744825160603231386904114198283154500857107133439945450013946750110148013577912004943527347974564059627683813953202180150938271711038445085328152801193862720207207629941535730079139850652234536293798726121466088307542295947586440762396766492992901810092387607400792872775579258146170398756537844753609042661295564099450061521711391316474891281882585633518596174482705270152992837255601565389205110701266977216574087803969200449444321733124395895008295129225864538057476723440625075051970970785618012666268538792941305901783099832950051926682265363689157268891783849056315566798140352288436004263009638172857280722585001178475458307843919174071393209720236598934230806068412950759191216480177891191275657348717347571665332636956912563136110175339639365150730817041647935424187798894874877622767073685448780090427028142447815793925674607072552705667696283970149885205870190218615499126139873126384394262175805367910991515215900311699218973549198053371896294651468203383980929223516934628844067535524565842266554122953998785224641689684062553775111612242238111648012170234677706460982100959177802145791845357665974789446897422025377195480691089371557368361494300170852635088189388473199500459292696395396359991870493416010400333838912886161709754525494484508415481548986274425340930264852478721428217715093848762634262636739028300077067269663637148767764133604622157732062005558074051116804382129802009485313477094756657184844409111469188769887930236519356707452207050326369184782921326317189923958771922216130877285057161869089781327410442887790453914403478237737504688618936805599031553569399440694515805613309916287504176138387098703228933534704089131810400289573286173621355948883950806987366211874896878159851614713912028824326811640673272701171543776679699400936969992372093888573044672250121427503268551761009284212858632063681447484378454982242386464740644591262392320709873157171604657880272405749183196414487556709445791444224593918486432364737828181777168419545699860074157272201640840249240261606653900935265020374590731779106163897531373533977218574489141389637083201861413550060901657958051194759050437630715270198876796002513656247112675617968805987838542182520838710739711882797815034066617431956500139442386541474746367440586943751336089040684398009813183370476244192510195433569961354076678825228176036405145924532424543175016360491566903020908494109918156504014525639465446924025274574063715365795935189162857850813685261457120995067573427626651347786785068547238874065954056337461147850908102463983502894308067181442804047521589155355601422252424154183045704856461140240174815211082798329284807445543655375790712532005786011795294890548618604786375766040340834076551783192677759325607878127668045932872151903815485740549349744261525722981242249383759442888254986192798573797317314211726835760546789190114829650089005008166878989852237331774871714785056777998325282617090920521452827151950840330222587782048048040972034941081738885755969156468174800408183014241280967611586079549918532825974962535830955353484376611176565081389169037644751196320250913154110214733844892183170280155005893226242988895771464741152503618563832640741011662200194894599951435773577448797463588183876731721906899327356803116027049786245621036722525603117917011400966952808185566926375829167228340003139918032409341137513389528412864966730437620319194875283767919641269519051706933773262929077907484810187515090247890060165287631322427354738611046992350714001308748423953338169963379548426487804962597942669992515401966303342784965092839936881913172459976347380316332225720351783363886237027678804486106642451038051196775048894421599990362742768288808143839260160867726365403177938701986078918904277350541876270118650691978832320100262439250507665008656356494945268991039037215464806811545999650487742479511881291306583930530265750430993602563294809705535373061273116313664789009638478099524167649324898036682628890937741543258418290704384467764089218603914744975176292237977830858491843479703643880286197653049004232937079349899050293918873246908701441769821943934029860382212329558200310727277035768425564955006503304431319032939880664926811659450343868612346582349315011624785200776854010656281876076300732443523392215471956592924340927221087339036967655493309659199198102254612988937433389208845785584622498411887676502859980573884038652135830355097093356263741890225236419933502470027714111941199607068511082570217764427071745350713101828429582912924075697569338487093283427553816836025578691331748268456165036944941170968329928977489803030372293807810747074000606238228033563281955266589531621679022802270402974830566369561216638029459943913634134750182711710872814685954880152361224558876801648136601061060085722922442035070122309789497811373879296854529151970148594373081307634380938795439373958797532054781006501070479461367417856212353458055391629990507987646725090105171353083911270793028635838650860021117377813673307290583032087137932898257193178667164890943794937870660182595485002877274596165144971201040090281383680439525671842747571860613923816147962751610582728086860269455951917383818601824436289346962302616914691493831761135515256876055353456082450688023758464174245847748853280367795888585486694406359049580051008312362454294915350648607943673115962118778684124335747171745620533042044557837304063244101984066501333249966139629913453740934716520978375058942975986064959756349089061994421302042028414216534340137549661169667046767151584694739084401005424823242983420599000010819202967798589179273851635491712411828714405054554098932355365226440536216235911602743009865715894115448004541050704971546500328045515059792852552584505364437742048307676466210873601909618302065694252527371292648684695864608387626206713445665791997443207370530069811842265024845217844843244451482187364741015742402520833007962156841108177333291865649434482506731467007154308929755874156421201703578182047128265839708536290613481006269055465654928934069728735882135924329414268646389528807148714994186233705161669103981965199681784487388312265392553080433918525837145294456771910930053416187456122771183334303312633575213839721016548691521929615669331492876201830191477072634476993415373146739702696544554970492821662480178208095545487326318959574149725415348903853468606220344556228604360128722961436778413728410702118360081256223790573618719402231173264495479739510302981563263546830449988085970949165268173680818874129901827583484463830184953472890075538773846228567219788627534990104524054417100717560878539395327380750700357484705585021816157686270893142527732579914742037645654256614811787390687727320257763552163051586734245859449252385302013814311536493256266257067686838526108671964001008117750862491928140913227001657564874626486524863997762881376264146542502184958330497777506030884327096769797171542723916482437578959172892988371358622621339011676757096284605098450315558919380669580711694594778420162277557837688392249309777391917028661211939788795283477709423321097929695440627188380606612956471108331193059334827843693559970239479662234534188244723046160496790347308302821857530165388098088969853864160367481252196335532309751235890467700047295590610227602431035535489166631141052578017534119725322229611594389714048517844987211409952413987439948741861344803712976188818655555648107686291230964808448109849443528219739158268178240547790064517411593916514308455546902585806869413366213003412207235455440759608893925873847730742549055510367739195215797525196634805675657145806127447254027643548171289244910986636062808197107437213085126932065416766008969476888370532889824895271138610685381156333058705948182810876781603683836977698709806931292946527413276655585811145173430883880361825908663656332715058858395065810254093959959320247525970052259401761119756529706519496126790409020929958767216296675671139437495265639095694365653843743237965126597095345136834140007503172144726644360525913631501357436808317086463407159711865609528403100724117513435918523899509197809274733852081803003840730504723042982261692006799876740506500717842105492989667587051113652145604073723913815047968803044774849851568186212907631247340315266548504428056795900922309796937035622059419235958018133071414327556835298021752915142230274769202382775367554434918575837880753079562233832636929638152699401081622331040380856681610324647492321391706434129594238480540886300384269550701721162805407583728610706996374177687138026966982578494499330773428445985322487894823755407710434362043112741124716452119560926890182805899988467030832724923058316491267362121752927638929962572702273548441955827947187578715935020132640233049670524036956309081083686502154120702536841401448926600214436668133374822969450107404329612248387128523432233647522655675597607498090455209064856192627703184507164704225444940081941927685018229959908493055140888464323142318055354452072011647850531954864571944005600496441930083933885341774504705219103432994006134480306782858877975940946984566394444531472132345887685145173046373962461575845616716017136712851272354500146644800452596836264970951416502391961204165536332193203157249700124336260754459676646235044157833861291861965323524810425643019788164822049918595192340241602807592172161193740089561020912822269267506697542348019422768794087889233531173643630915658827104925300189809836967596090867062748625580336434995450458076962265912151487684011860319563515969477970066351319032019953032777244742831325653664087144500086545951532839839954971469645863295800442362155235397118346226204177320498896387631872487071059619769842922043859569470351057815443584894197055578735758892171134491202647531272800082359735943752953644037588298262580906650527666701224989213869144792198722369181031105467984778792314243510676568323720348296265593240245290553087820648920761576072157254911624900488990979241950174515796163341949694104819535393890758903950977010624503449583563872639631432027574219888353431987473930341805268299313070667293722039260578744995972507746355132187499903196774851034806507244374996273392211043210305477058210109199730748688319766504742585412086595315162226580666636641928436887597117117129395263407171294871147790369467090208664236593679281371425370565708588700918386950299478712105060053980033741225987228364426435072135311988562999446644745666595945346852188265902282433523709541162488010322826538841892065950232592550546556632581513889820160815856401424005357093595033222113102004412938328556647516937250239018889698347625739228007931094771532111363988084941849532456904409541060902691945048900580084566517501315302274671656764934014574767263889849170715699198345841251335486741739450831956893224813579661636859185323741244973682890054195005046110767963866726437355762946183015940049491455441249343517043666646347314493394577576791926689809757872333612456278532321024495852057280104501087338229751136397413315360104147396336623921230827519835003930944619411556510564392500027578250977429697987320636357377063868109803923394215754451920952983075144741832201160182200450100058004376830400504044602376260667774853369762952863425977653926984043970447482590811668017914736785924384386436957194509173109927181357256474931893661741834421879442440734964970595650657678332043959048477332712543183314654665531937404176483714747855083711098358215047683637221836311081813593955482536774795907875336229222877052190500804704755283823344532750020865405209277638581037476501097506599776918119742447110371431566561292756254274792692841542912367596330677906404790962343295305258705609118982949780906044555140273772585483478438385484255437159873782898617434862359120410955716221142756251032164097840499262519700539725111442368042648720864658084550984062079046620603247246107881750816837557733803635942382894317301429894669545993675015986255527922232565320814507527966597362922852090448975301945680827190840054755136367633899278168679806332761618099747869851532831642573528097277499005083861597356755659769202560893284031380030308955115460932902044626278340334378336855366863097526857272407188703563368266262551251352732712196234549589810073676369871272278512992940336880856385826164673867427195957600678000030127334216416666112356262977214787432453125493340891301453866005761496166487941587698364882432694495056682644525570737618236182956344340548321630533856075150944478081486477119724388053005727343614914858390683687915728559740205382709442287772053368523641237670060481842081710501603055050935295020828704170854860251957510749291491332002575436500840608529569267479308550487464697159381217856020948508850749653465866148482429778722614263160605427694300157974766642075793753267914889412824378258268376980428164337420772963719322473332512304339972173739961977971464911945226871158272800645462236813185963074754921793453208864437649877819220901964814143430778584374362377944729593353189769348954837099030949218949846222920226610652653152838506895815954612043808508435675121138024678661381964942929886462810106958996719711210231336670781287440810298732974700253362145706122237702321002929795676234911224870915636233867557948467606472824073176779835646781947123121705957277677512215543269063450876528524043145145351997168770638121693881710205716784934560424923477694567717138717346267119640423701207069595808956666867969432587646992264657659625692194010159272820195205102621332019594918931183773354752746752683941652888049562736196169833385323024631069927312156469760679353336442208503265189351807077701158219985340497252128866359474354567149050616983705192649275861574786641015813131963222759684893987104311865366151625446634166032337627446725064336703222806082627560522758193340295025854318989647981164821829705806703857214741076130276998171953255364993209450930578660622679862468029448420097734379771859579040908525325121729053562344806380622282294086042566680330941402713901754080076710311813929778980633490147650179947769947443091275095070548579193438377029022841032695178008827342355085782757249421201962391453025034404497906507723453126871751374584555786227728229305381194305205768237919328299273193587854258663005408647635287564153225243848816745581174819937654895847240830112258596269823338395269559208653547971845936383996447201760265878613258001606281464259641758518637408080893389119242505880543634282139016670681356538785403083275205234895379355681111837368226155014712996349416521277889046157841334207419845874718027286844502896549438700009730991918247199603877061460844110148365281563522647776793093727329069398351732263921024453078318981600635713780852965262757815492958996166087973479998037537516022245199589881181536009580682945704058769305186568964187813354687161134587116403621353415335144242052530091557765290138572591290196389895062121425144550351706111069039395129543050667716109076765291671764740411623361841628364237662034074648419722269784102617571181438438033825347179599913554685713238123636560454996617718958001245707022614558720219010127875020634882054043172220026567550209430834424014155090365015436754991186896051440708477528926363337593687411668177353820745035118546068788027847879780249507310599357773792064846499301824100149375406271764211692085580485580736777551066420270272714044170915792196506650336050335488096190571916785861144727016083065287835965037463346355392901489113655499341221347171644072107627124610934479669434678690495194781760362925261494119079740305822004788922804256710194903019346923822458631985942102817751734490997665858923782239460625870955657925032838033803775675284322132791066846863427708344367699025317979927842148286278124196713360663587981926720694020131351543895728932118458175761622722924200621538912482878138361297723502340727220252254851685239627696990582841855981009476286760129082501970885164805342935011571104730876186584426330450085324273186392816355716812969410928178575589370380737926052755168055183353679564496945773271909871398961494902039970497775073294225538293822389662498615762897930746941212576777244016980489941676256295536266505623728889062300815674836937838265782454258214572724773981175707681887438518939699478644669858337184185372889696354414206295739897801709890255516354348036024501631865432817401438094808391504312247261191523386322042535379340839532566104962275474493651658103469829114747711507138222184649733370483190831789113014255428453699763713141809620895391967267311973041398480123882197082585824093014082186157656995970521791063664267064617305966646515460769931117338821637599153648344200753336379982818306735825652748784587694886712636637717788520420848208980153011512715389459897176962210545036163977417695802039051520349210830631053251539242298938697611437107405255962266705461970415673218160627537928646602864160862114822212382516055319330616801818856451366125522675668025519753317550719421014992535202142091428699319186257101454190512523416834131387934170087497232472489406498274206663577312987628698403883303783959409271066495297131969264881052861678310007874151994476003771702927418434917760341866597603672828168595595459147851483660330984609994757722021367947945442579819323718193412601487442142814748762423985126117039503533106150183804388323434941402780866801967835969219015268397711681891604107505561174070656040148764547162829263985604529387535249205659337490139431994535248393321155346119484585145272999031388702967218618731832492128030209485531090678818411964085993927195101131715538166491838387844654881167739929877567036415306882691994037906027656936489495003234930462987047754059649255332893713562015277266731736119400547465849948126197253646247458630678245546916809696407313839622078719925073438654191318572260890230943513482442721660996900398314548075136419491445879266753382092385425765410235410134321875903795237202199905906202113868877676304290529020954521254030145452781373237855622562519061902062544281432051327402955159431093327605593007140121198564515569019374707029926815613907870710321151514478058456547753007834517129101644961142662631905114396600712891721586355287086559642891638937120226003183992573492608480983094324080127266234838566992709772154431638441126605088852356955362425877725607581067109313627168905779367505382893968443848633751949838889653802262453692070245936309451494226941245473514674802290138635855623330599503471730219607952718569417582512037062968792330229077913171233823525714104737321707290659876532514128767776288718280190707189695116383545582874902359392746641844143419851870045652961642298429630762026369906007352064211968038916949114814480346881259707775046451638380698682163944203375229883487516974322753888334030466185951438869549360000967023207595127843787441347560833363786214713990278602918710973151606194763043114454636536063795731861581507599730173490395913441532729277749210125151982742719076420330486498062476513387176577377948364568461793449116267152360000474596357517289745412755574732611781846760764421423516106698439184819960941633367539034538633658730264056549485347646601628842630486174058772209834845433507908034590570265719680797918281259970706488498327035005787523348176026054257780673642796571163885114625981776590004293693068956356445798476363911331497854255857824994391737774894569381136588941690468247965548004201864025996650593982849140792235376891711328155963207064847592271252288402184904983378716146209326316603779763891537883899214037988966600917998053585785403113240356576767351562827164618931426063556763275988994957861454880831649065512747877264921308886509545894202145480579757335417911618467682025992818077393725478384833554620057107062474568084748691361837590913284534862470463041839676425893965937528616610183388971979584700715425143417552850045220416974484376575379520765382457837678714318823446294430342754093300356331514872381703278949141546581856914348013751864799357793712458883563792127561199426469415240871738996590041399829059235472106311530887110672791176542064362433448696040584963603053571587293340009072669097476553581514750160193576216194684728879850907986537542623392137918475497913570604816432944053317070688602691695772489371802572942451233788170677681636200059154280259198997384377444562106858788364514442343612536925149852234603329636494164541795987805455673916307868104662476638500211167937322564295940806789517194874546562210595503558349686371594617629377689591129184499039783764860265392105727099695579696231140399735585145160549727075692679527522520366163416101656793051498242329860025090704716250520185927605271679693403345602559713101491716119748653789877475580086527594109388972919940868681514815849198791112380379345044745194502567497562226237606769984781303852201089879827938079587744438144294454856572038007287784406680577333201394836381672581343030615529473197561480570094670437872680643996704128194059429336837412177909294980117156952145482450446268927704074924225630415440640561557580913230424446157705918055977814205803957089857212338609659709339760591452179105829938656411291324304332511737553235499315479255696450323109114478016735364846715676224754586589560924377444843728324221409085914614557853317039078156282907288636380646749081114523299678472420532296729207923798168131717137418214224834961771093809873657413192144876628349852465118394931449509415074731240158167141774469796347335531583444291022941744559011575078770937805186357940265542443220116890970605901336334670905214906261486130437654546977687201381804733648691120999040693577352409430269011518768608379673881109612185314889957037880139044035041779219698849036193360717892136552791197547015246786112443404585470644339904844551198652966199917295502625125697181939246114839159694007802407610869182542134247539161054744198669150883869913464656419205925924156307384638634906262132415955577135025346511027957908463003655593691740649339714971158973854334001395881124919375891415301233423933034215628238619703741022414149834741126465664027239469972529875224964626006500968459264655128014144160255341586110970773198512800217427159128419875229078113665357703681252152693033618439158473316589188695554349991576634175273401185382099558849548988559500669378919710510996640596980576782879720575246297509590505682366262852427784908439759255442298842739510528480132642166070108281214200150863683187749464947095668760715604832963299123937164187250618608341267403402255174578988447930727869580255234803040275034969298260190836434210691978590430098990882178102398002677215244869648126671943029208849490520363167523992895089521095875317231423960870758568711735084577314511082757820318212604692352181414033762574824031459206134230654070086648960294947300615444229470336361679073567938834970647583763808977611547488983719941241788942339495632400317078529177955020184634875692777104349696544077204009646294615639217101864553326105549515789370766821915906634649814205316135224365090860903656610548867144053954046696595541129837132259600089404419175048414994293540764506557924233364966005808166035476549481915566211367270727405594349722063911186876974667212225426376783292493585686983298489954493997678441546910858811119558588968184624715706356886958144133590515061329472592960377706043960856813201746484016824335027151649569228393905626589874213514185174421591589715209837845013031423616708565897496708589744966231350891678931260419099935154085701211928510133646814328517847459423557527810376033859509424745000999261528793693261242060392687938116503712330897482961116797620530014062570603496873183707277648141509273271187224511726562390590274604601806201321537850776838692332902346514345237496953875416619811460796515068585386133102886226767031145934126427485484316656106746642240515231061659535637471616369547841405665098547879370861284142326633326580469124066351013495933914636400005568399449411327472799642663802485155218962049761489223022571249234402533794476749792529544032675043847293946144099190937082652731863396499320917212642674446325917788541251230072530180116511657781052043895868077691334326660143638770404520166688018256270808159666094241235720472310522977547545759440367706084314263010196386047663209657394874158875240263357149967758332065031592283834119617305127512963176322403984060710185535222685303394505696050316628387230791621987070514149538339799345259055073323590555103023852152012646220028233317106427771076911723966551808984262198030157575812207964268139451279178841488725984819558097682905962086486855717835574695440946112372421513138227273065175750707251593699847307306554169994852416578611314938328729223056163763713882187599340612662216644213099411064605341164747501040779594278887569164632481124849177317473071033872877846451161429980220733859916866053541978123736795230311969531981406361481393297664134865250134091669388403484602121202312429702767125025854343821298132630050130949753237417798876726222587663500472707832017987976851444636726714220859720203155265533848986399186667096351915691969589260539759253835434551468738200679522558304275118384503990588925249799164996334948272932869503729345900906322810970222604592263302862826674534013654353171156594966983058819168338906687834152157887605477731909843637812807627064123701846209413059038136362461038590302543405164691053450771798130884533375549475616291918067754680789374375026033882015010534803469715189164219151723694572595988217995322858823350990829541346760096118927903617874604675960847363292954003488238814351590795573939906353238898719888505283949048191671359443645467377077229876278513729286977581229302610028432618644856344123121969575569508311110385960445759279131449612300211376403598520140318742295214232785564609639476630508886252038025321668509301023699366788772525717448289416468315273211752358012302407805689884105230759838592515716769317058706192089851134826689585246234041977521120008464575404954185727261719433142728471529060452387306956259854976305326264919144977104980733059362483743408078932077985608840144140282111838069143534834363496931443307850998467005149260351345721520229397974303918764652675432602991929136834987933966128287720487493397215255764105303794945072147364298565649871628624198577212800842588679315859754658228662276002445132408012016489484772829776925961926543051118770116860676428775307575282897796526157573715302411385547303049306933161900655620844922155196122917078797733915591017945809204785819166289935004780606209107358802496475971619422400968237757584992135074828653530275982875679687199328167134412248702720257987632619602563229063007072778986853156930560924492929866473111166781454149683422995690242447954416693393222915277328812219965307650855569750351254040773264772917765293986805612372724942001804118728817865009282345270187254542058817047450375048929411745358012450181527012417574151642619906074174036255679178651248667638085082718249079078498748178973790743834247110308860854083632482335023752135814274978167874816777311387652170463743504568328903670213051313318243623943133959183553481677936355487839148179061744393568737634463135990356733530579388262667732389704839199232288070067777930618346164657005296887710459370631266759958674085598819963669742746291559990117440292005480452938574005666662278236527124071879216323077147325167341215052722751149791573686534443829311780714566509091282190674669704900342596582689276530534656115393475840335490659990768309672364597909479320079835868379086562760528214502545912414884536880544993434921522397499668702563332535102473637398725477769640421728240736109991441497913438294790825641843377097105919167033220197197905731985728583843883307759543856885326493015371795516332912603849210427061786599262218686995392619419514800103231042089737941938880492232219088669456223075933136357859891721082740427891270148736262424336190765779303648429482914056012400764711677509731168193330154636783040011065073293603654951595689503301630017232441450813010974550890573577087490236210444258953575815945323794180457808608853804549654880044640284189946154053486196297394266706370276061139603046455762837179993183517380517844261345568943655669603484374707173746687439871103970142653462603629079292671946716668224423756987140214110619417114422335149295629633684738503743053041241746722601545126465151433819438955890164761527489956074489008800583518422560380499455213126912162429032460001722165490680070716959136483200178269517216637212155484952009424967242734291378149109200331071806313936892362853901106388765145843647152953089145431254231622500341513178530987443259611148571855507395846081215272260464820840128741081598004530254525848823218920262256343821232016864109205285109076327523423097625637649042054288238430434873669971418925524827050211674232251335962711167747079327714602627025695219646478533880326300713083512918604820239374315384009336128834018219922160557596279907058172905401403375653346776488207313057160194905365658090441832405132545221775659725288042312321695052627232440491527436449250125129073793719025470220913652649612141719262560559340071939277255820403645811894461184596478657945064739258140560380206105669557268004269056763937130201960879199486423445278045229381682345535210302040423445533869989355751609965138897927375568193379423134407782921061192168597849212456191737690443115025308764288872425084516963196895367591617266245760215065393110727560683515179115441941677101393580442881967666566855196688739808195417519495727520591293329398305543220022747689195410135567783662291127322225413206683322909927817177358517262662466789562287165595455435493716837282104445137191739242768716167264434824479738138157268408592141688660958789808406673567606051390416429056809206951981434098276890746250065850411949386136842648112725684221136466131471528007762600706325619618368585164131111792047379911964278370137627375826132720371594002458236736223214677152616858079563255447919875265214736433480357298800176542010169971285344329766444287321050552988019518501272961049652455795310061110241952187588599768468235756616298881376337428966125782590173113441951156122133937363927193129207509852691216195406474207428023602864688555458696316586582632345889821238819694570654805085100074957186795606520162186755139408420745763660111902610346549450966168964929289403207399543045138064300661014237815105343155845357639253943546208661736030401036202263114418058480375092266361723353791967959105031200431064596264763910160920368341914072789314325425997019256326899659475115219124511658947775517074690527795762025290868117965625843383327681108530580044838894093639177968244923421169578107446790494070586844654422163026276063665592901818835206114978107052676769733369765270598127330634748733420069976616669576708838965643944504200556322337581500961465850955522211873343880096032300809493321036766234630608050284678042024602749466641660540852195746626028380970824058970749803118603311159333789039614528714934068670450256277446072039447958587127458941949577650384679743112613394770324862984457544398891755929690990583259416124508831269356748053727422453293647256687045926807057973061444138786779756233053123414371529763729486421688892059986684606128852836776363283361718397584586140414673399754951029022105614893588601813356635053358872030134821732857901828226192062823018861589910561296021320918465713322990832403082339802550250095678529111104336195443052941908331273140135713381820308539332754334024263451315610632532451285408756595648913059860979815403344987341599054613990764063258108672009155566768795806921001675715872865594779700010814143310450996729659942081450458863238611133786546956217900095557552268180235434892777534554448881595636426770635927945746113576293846443319892523974597848817074558233182882463401184543320657253353280874985942545293219919326329299733413972967573605833221727508516644606204924221969946376801946331521866988403548384139752614871605540184906873472316129520366334149650335862973735899457056791468991093408784188712961824112579176235704911313134911815863564516058131323960347205602566573984928552985689410609422964390727834752152038305010338595094293877888647818255567665508382559213968223379099051274316985017623453368413578707066646750983732152767033170556569338399365189406627119816332097668231623695908638080667853867919372427998197945841580627003162121281386492322983020276354924464150875037942968323877642896080220273057187539618706923075106982318525968703227256478820189336268079096070630637462922400687863601795815800386797682986131331330075166454196159773944318425200607585710382730290886759507049365598544435102349609379961789948660330881136891097955282480804235670565871789691028030775739983794481747945504555723777046328697048021594399966103266028453500610218155064770704411105442141575357672803009340053923947894362361179127443057513429681719658325001430773151932345437398437018382121713878142149918192548231005280565294313082616573301954579983857975571408741098128285796983791650149385579413303432421340685151849174243791066151443924274492544284379725761696990714952213101943211775378085070000680585137200461743718307610995747910563643166697697521488040787135091010062060007662856095649818065500840884800363475339888161830109541091561821546133856194829078842938449679662440211117145394463305342033442398795020930606125978244060878192715979109190206922468317768014364899105316829530427638578034993270749392704245437069326400517982488281646646870840922782328518466554050345770709647274763451545806691381066104127939480441577589574999130832693593713346701631701583517580566420074788850110386860866444110306553473051043166846810737153028883293670576873371704602263512968091079722489047726624847720948363733466726216561031767298095776844245967767259501536154853755825937987815699248040900426680792876342890604559551301206920740528529465196187006005169781080992245405625241260684363667317636664191564870753394112702379091955775739347301693759263835503529426361126618232316957434823962433943752546635796207826123124662925013144024396213800927382282323830470168960572205544224216355010775385768678597881084081734697874464958809884510147911406542778143396077367155647168735134216074155463738489367260902881144769634417837191683611161085441642166093514716237108803799105391115969300841780093100646505735551967295547383476974584370689710042678479167167586856751051784194978744797103780747493051408746133280272055088246117265385921206921651183133712071776278696606217216813837085602263589670348032557627192700821743640926565631683481457396352238056689984095742051370102308312136392600477936529387576998268682107945298123967791548834490310391899687870127732227767321019077125340406472204861384877788966035030270427610693684337817882790170621201263015310017833289991097612996554002482219412351921314948917603654404984600993771128958602142957415232578113132303071332651159601600459428173830247537299598278944119639438144469086959873687519535993328835146564729353818006619597250529360590582051827247536169181174896215494121235378325792916490459491935002241284547697491165580052339371110352920589557733492760738229723462708461784253515428668541357869040055653764692787693118662069530036656923634297053628457858228914576392672708223946157278391215678818078480989684381055898488429033760605423361702958148863484188409934174685345077918106777185417538198977317125503459552304908999051390655469738252170118465555175420169716981289536894229532409204945777857310164201210552774177522471868234181767121148909622441146410766777103469962696947178485680471328988140876786431215484635263820467443475379956997216351080044521096669941219633292758615598614311155691669376536812915638058906714805541646386329941550265765000343180710538865689600552048933185809855072504429274388111548444201186972781317401190675453528163647417931642635056865590598469980700313116655489598941936618904690244221185105829512931271479837963153233099236307580899189284384347723657414979907698408408220816839392778327601956993179484689695498726236500846674316885889124081306811905196866178486756429947121449207302775620754411462706460793422905760978683081780539317906612062573487410451033914345566154285666352100516757378464095806700029487797191463365863408218992240146146092709990081168068101281637009858846045712839462962790303082363946289696810764455173603100697776923190577237989780516438965524935273057313466136238358675858044446335841421902388945548988598149201853750336892351634782768077003725628751553091183931842630128496573946635434635050951221931514784623641512172311556142567820986128463806353265491838117993616599781195443449600022776638412815421645537809085449649882963022895494415466384174252569320841153572093110560884347168903538845022957406061471735179836407361382533992778425152862076632333526719785870074837185282036006421289665277427556916850131616591269651018249733605776449888387235243724860596554610872056185816712935493294496692121355490253938096096361934564253646574561807981135298372836525853652097940664777089658702207924794301436663409826194665494071363974873394974697111587361900876125061027476434683775393347846510488569389267645989053731993372900663424600467341505266522924652318024069540513893909008122867645846217959544655895008170632331659731972206679143902138428940409221338298003192706876654688530323778039897498399710415885720007307566814372690274944994402286478867194701059058440649104846471342053982952126213975501637189522824441559861207796420377754721774676836882225468572074717749633331037596010772819065017207083469375934460732332540624018431494585947063709038484627975205899611828762260848550205075345983829849457313984450327730666752372581493277962124597797062029238249015638162144887381711215103116033909595351654607397210587998030371721781775701131366801561575151363556605199864462392226429594457106090405422615988924037239658206270993811353055219699857648220635087999510003973376327061080753127084120257979712443122052094360702340775410020899938687760025730389451668384252362946512834255793424414749616172923000060885650267490155124455815320623831116004075819259698263344434089714936362930291323037998321354671146145888726999845330951464702750253437448096253104755123002713110272011566531349632403843064055361578916461087385547863466674593962782381976077460727162634431522923228419895386172984557319692984972745759768126995619785407020848643632194427735793088594773782818325191641416187311199188345069603291831634468474082215740262444876359741535486872086379297419153159317727793705279972897077072763996421715618062992672729631033872070896564407514991305329540220738441985995677431607586852292955121823757221499139747634832701656719792993771668089541734699227451208354886597667937908988673542193757987212602112090596697649668516640784403768505101781798451659217357148963131477157353772909059906704900811339382974562805715527211633978943470902731608146814538244685033545253001047613377304508788753836788811321352835955426008843396115895530477570477931727042311707872772992915578929529911672684904112109944851968473471120474611023428225545898001190035802497615621174538797081278025608547650680602755892470393989739964192037962728432966873894633650780246773100339817887270784721044705945680745024609989211452476789870584451934086451312884951025573777025769363782825074217122592935208864767466979714019056534808884075346983312888967813648495842664713003920343778791533889947611725598060712227886285070514354677021238967952039589760278485357264957924596772045533966356664980286353933117631785652037641857101503411582086788725710428073821795228312421339181975822477882494760772555927100022069119532512033541683856589987028330070384366318939275846739969101639566279391059957007571718940769489327758657463468767335761171129171573607844717510200879302940600833255055799505132081270383588773845093411899530415753255587588328275947887427812173863960380322383275512733164403169099296076104200709755205611885376840065776260540093723878242582070028561500107714166335254564881408352702119017175793035664912032527582037659483804868959720620188292534118862379726271971361372901890962919453854082229454046586186023901157286498723132702703817082007469403988565221528381699981411943021201318280242580814269792162135535683979443006301457788791670958156658241603585527513290570875613039711811723787939123101380151861008126268833558529693846481322285383834530857042858418792884075484178969425735043756757599683981567471271835042311158099079986404776260509734887463526494117051464614732764208737527430490171735123645058757591275365904782296967717505487311388552634965983683750072740731981920553448455878690249022047879352605906513120120241672892068688589276088093453712345664991614601839357838249619539110587652858446262083873014748936591012276739108635218127347420983736706732249342958457362611468097147726359815381560226719973502732488326467232014785596805296044326102704892332444540105368990939708200972423931882901205090228378628028797270128230923528751310925184378189003057533397655382471869035639880722290755690430853758487174064936610517373224885552585989889360442701099592987957263526042596036480358646182274077012774596662248023795743631168896325612551390645787914131393833724139201293402136151984694261516895846635595726857318452129060913128940927977880312900075379929657005117850066011603310725050265238597966860430508400352353710062236499614334598312498556518902371365448623306582283652169427843359805536280632328717616201095058079322822508148678609452979687732251455505433578367149360112073231655261893714094224997775085688675404850841891357180628580947185512756475345287300648870070763602281557550156947378927175037329940446429974976269419751934640633257008495705814498524909789951532922379097508472074204563587433385901043419556882875528665298188450300773605190923812766119363661808231884820458661495233222043615724147846314303552028740045356276982821160677915893083926170517988045072298550120157850873249083922689644530088311781182050014753420320530416365383433579429241572075432931529244997736125338988603075981878739656169857327258845994121760707926397180076665564097929161506278764577400780786501252026846160769756762331749507360377791435229620342986281040145545022781827409623125230654699151676791807281795898412903557081883054612386630801900681416073392060079153758059171903091636138831729052274905038413471188403456898061798580485496391215916619322324136009198107991992968133388226968555862165902999614473601430695340467065954029766698743042335065610534299318237723830133743100531668702183113174774902716371718269893528229274611213450629076639283920511428953473621349417071841189972098222481467040237066016129975970523389674765861915870784210950371714546374831477111809195321653734863832285965921857946135446970404931208450353989849075651243728119502986637114784723282764302158702480919407375223147298566658664381065299144225223055192471993038487697714060066458663650028707227605814702514118357835817951861242668307621437006334114456449760286748470893697672963983129713387196844990316223463604810949326111401454300970730870056110133251005716429780239398522514182457517518550210896758866213533512139830570761806136853148116949138422157918912230999835374980981855479732602448128120603770946084482945591667434533502283489007344378444634269132021920252682746150772127244859803608191135932360886022536375706264279480105022060507398430717297154234275048881581417542839308733904143048717941454727410259449776661076265961844503306420735257159555268815685669106360655489163518197031055571793415758473681386847631253971423588625731801754531616927454002745276211183495930216120028466142459157755105160220945448430753093266852258088784433069373166874412386231110768212486673939219054775613923351185306043555414513964844654102170028124481533754277538729646931972470621066105884172969587122728958054423613016595921861870964985438884666173076551835506536170645790781437111909778214122280395743770079380310628334637088039662660718976562069059830198739174737552554196643503399543081452555957185268045321619870648460252986706479855827114790306501742296396500586132684473543827804203172003953986225005414689169121652908982721205730719585462263036499497410388275144602917336219835391260007370588894096338929021639888865671458800392659603301175759934523371899307924740666918119713129704576849632071637483988860731333305652705488702939582906293498703150551359474865404560730141423005260832796572503282698995980112441601702553217020066675658374256544927084381341722616990088225039978381836043418773333683629406520715233776918077137798972723837590430738636426005536637279961413603686173393907003341523140097119218709772623248726538150671611712699715238888506891583022909210799619172084950003320220138514942749147177516177151380039837996841212241061174873824508016172795180022126787985657957097216837337553751991132363352544550503352431705200650473936888430489598444614056138588602923167279767660982799902405536715794884373654953171156428779792121781192313594379403086575073473309986290538519611457305538832220914906524495294102741693566272742309508727600501240007618128287944702858138682526497041666801193588520375398924351130348388172495310756558648541351899007161527372816450236312922427649773167600771048272373923056856313937113414261494215008680281968582069881025998519187357753695143623826808954687743177543153152390391914802534974869491924441539849241073719778990445153016771525892403141247462797671571700390075526616011295368299299011653700938342136418746005604503673372761235801944802183141265817192910235720968415777681828695885657335982575165550512913173651397414151884284895902243549364288445335722392129063324208146002410954812456765191960957981873886843822067640907555683329324436859303963691674649597606547699993954706453511511991925252742265571790495610081346251108793808029735741132234876962887112431456011648617939244835884155011667322115856873235818072969272438469635404126824428301610777339094437127516932328625795924135858946428727173506174911602201688304459775110775212395920691253513378623796367021796571697361256422975040388434168248187036725043683624760228332337743671277815660411530736160509447707156020462813521859780335647416419480416009238827748274620050736359227089198006881998454129158007862995042073763949442838759485094624865323832394538328295232892159931638048259563440935636224196141507851176171627524644149936858562466486067892236653787339711506513752287586349705503746011510698661715910560353348961962599941225315903662090173093416835136169555319363553238979126518445396328662468523072550754902631295275799837694442408699581847930186119305225058147221418966185232128987490797764320520788547502927804322474341237880504433412376536884431489302108036045305458999822140396366999138961932725898994961355254016620140255469938419442347592817938246899674447710433400687745965921345272473088058385886359159989362634743991841149356537161282204260833794504928634654214159139228620697520037472370555219025058535505653611925692590683256953126688440644276326294765087981028597813460178163731757728558546098833574626867382209814090618038642117485147970951805353064752318664103806122061442941088714507130814163055058011401469942194959940890787291084571752246946559850640666930533623760696579969263861663906164605418613370825105052198669993649637139891441650998693530763269347012931739743970605836595811644696894620200099753676555056627565899010408046125887688189576455591060396914562779202020527406438733509269611806683783563599516789682532155202937139965759283619738101744069506310245559103158808752502519967845727267124212923849620801147527357483824716221467798671258539507344930753868812751664950149020350979423762624705305178504449285588373823301875994900908589346745100508698769020821824570488085787136054437726160609373421014693774112725978822545395614645234710462128423757323051283345377259440270551370640401458936652720506896093224315565709221278638988068212320955733001373662020944685548985368078709197581245682899201341100659884774301561671118191342506989934511168165149791672017842087851600260013947131219679967943403440816339304567412422249069495464906680210152375883749414898307357308120568106516344568309596990251734031751218508743419426201626064502128116760399729425998486125357636634550028116022695150323479941087151384809034031717697789270784611069332704513267778759761014636635655541090495973435098540020144266172019600042007226302966976274611544545797976845094046276206970686930542753483283328553197087826194798697734967918462145086601275082542534255831476977936412315880033226380673780658138871228571009028378938201910320070477654374430704995662087733575349552142993082152585643759784069773735106552753945035498314967309509755957585927506748541831097617819154523973644398330745968277993927663108141285101571406147852482513903052077549059917055544185694989957949471155451222862892100165540497717220581415461639308207377805864187919671877019092351339962563399559358474171570870636041716832496920520346083232865491122577479248065193995434977030521123152344217349967419543077412635574471654431109233459924434999361707591327457894957631920221731630999298870455113079785478603805259942547118274465532047396378059369835317821032518676587482104507189550683749324262153344088396804866132718484843690083048711361775076238087158809117864229922834041855244304279640411166373595108733888074628506206393838747695868503687578498756761893346041499410598004049301434618608967489040067325363531376992132586127891912915763769015323145591571331309697321099193963192896659662942710345750912736229555647983602653715871835128730580160367869017884390649903201852295068498870438284865575828700584159088877100941495159482012481849404546749228846023560961452478485042145861090790990081699761524096112701602510931559190742952297100788167745924384627398981882858677510252471678470108474631662841763935857711783802394591230826456119323505001950486031672464945410618608473773524356615952463040926079596709167093201020540525067766285990127009674059917692429713385180510614744195345987439102060918393644746473606659844483024178333547330299172705228572820177600430465141115073366583421704651771619825542443817419620647176124462539484578525384073777167082862229550333255221754180994325113221529378609788051986401373303071619340603292806423790005290523270129099689118048452709992189686666923097519994083901079780504285839333540059722466532705134906696748898134444284485800160613403834000551495576235678831371184517807416637364906583536024043607774286723962798547649009211963353057524635359968314136464014291567418424568230712465003642090202191069468317167397828601728065046992815238053117553644250923088169445478247533517125716513699696911242818714688106618662300626240495410602496728171512059634674822782401128036043169028247016423148556870045602972527900101156982559518023110055099893630269163966487807629993774577035528714815290148593955445211715300620334064726733928891702049366120075559091147601293872231035669156563004637060448274052208478649375855520770031884386909877418826218856537410970958684069848596734793848861682752332472489290793467695169604241780439593341218409426655564748564410082175484463163871002941497534869662222860393540375048607498508980337602787357115306130291814514899414658834740718308733756187272954680768500887917891718784092015274036998544862282819376806568312418709509711810489001140396975948159895127565701887900141990165447378537270252180260100239691691129772160906168004219746872612280281578324353544070951818553114524911934878188746066534534446060627949621077301142599521731035531666230882404571754452353186621837116785210283542515836618533316115407699840820883783152828382810255667381756288909666846732642386551328405622912181848250418545631102833299126625332081432394609586141820016174897641562581888494867507528531813880452684439312883079269163844964163484205438144591663321078956596737635613392785932714924823478699766114933376340981584268897041368935792771863515798256189260665574047719583886998170302490553025268339209112131736445777469284788819076689941539639783004661462887938141854459308678747868782715138783272965887244337229991583420016996767810024339179963176394633303525555451048812158331926256372779503412260387134788153489238385958853015072243119845999940142104618997857631813592824883260900172497294181728976903494935194509985421759856605629074157115914842673235709198930866768468763997188804955177260345170162019559760667999786524124896737368650664141400112569752838433373351191379250925884419300797002171437694148514923228120152962680258386872544420780102965221030099446112344718154261349009235106150012194374288988493137610140485120295412945238692831158795993313792969416651117705418027191886860773627377641524703467646188917551722043424485302513801250240217481264951986084902567522726750176385281527470199587833608548129147965917500467249156815342150612007226703076175477814812447563620705770124634201327265255962133589129267330942516914793792486739669740922219115612593516935903007666110279190078015908835583294905706635437649727363602229881452591781039938529326473336268599193704833798732729599613981039179816070600141286998705484845992387685956526281863721586243777417554125249078641831162202829546266537684788042216202239483569526498444597153064987796855181211547725538314045508370872622131741173264948918911827427453486892854380386715553679537756603434381638549359521647796562385581095159124501713376249144577552058980380742373967792996284084102609672435009670100849389117665338877870514426643769807822067246982746461112646304230012818517905049622958808061177191574256534233267837948961070804053532615527247313072910354390719557210823118818993641787017349566552489973128225489102061090893084087815758042160996498269376047916800846146669466474732756064218097739814137614592442689291830208916517920714989669154442706514288555045822133968630451268175098209315097695906379125122969437013830664605259435924650064668054915217848463262387116523702338906751451500337501196929914128907751492670023040767714654540907126582304241951655292046283682334506882268324137834855369715210556337535861898913465617404672552624925386014438489656858399737149131243587530945146511445190184221258085699583619231973857208242538863623983697167198823085962306780037445482698909105097814475913211600309148416721807467249288910892821837415445140202939066680350546507732721621512917673661893255423372394098383091891996408610088638858483305578614777563219953168640220646451572983382217519075059939677517205749095815257050993620558460559198725264791936206962274207436778205108542959962381745704399071984922321603706774398384724080499045365775697862820047410300716117449525250652902241268990666015201338591015877180154987110164038258497366624993658412160527199483711246990883971906888549341302519546109910648675052517530073877249206046291125578798066292943719298338423218849935663467051865009409677521977934581725786957381646373498772612289794456033884092574271575774559912618330293381112647630492474714222325100325885856470423050077305556329686917219424687300344285950210452901454086447962393772910597053559444015234984414501373600437477101997296557063513242315590652579879146193810548626922692236583883707589163552439505909963457707958333812477645672475569058654833809433008657316249279042397354842203649730831854046526234411711408106560332071544991943008363330879373789772261387064011497998490404057456186788846706468027301454868012078512354450075621884689216617119767113208671013388168004025361509578682627095437271945743557527228358475009928097241379845412800224292432076555982783491389590117281513753180782250591800394138677456152317445360373540880599536267603003998550576949827504039045015553517431455746848071272156566620402880547902674366556555058986301267556674451971924197833549017435057439178934950099177356612221147827924592606902644354217731340719371424800259695026696278750814931117724614968916603417506783503286104293601889918587168472390557658268554537239389385462866793677303051700233573883232581230915356072469591343610769079171624305764042399392099127618040969337489214993437079757346424940290483049216293189207260837836576385479926566890060854324765494706700432614597574470143549393427272671093175721629063693063272708455594405696160369555757741134747821958938692852885526034612965258888712567862042856354341903227202051083184436488857321964724005689294736862277549232688577587738703299308207106155250339091837435143094726700958771699934182141746404547586812060521125798465936714962398558320887025633731140759274384970708111924791337195151041596163827827150016120475386408292787178437728774987749276429396449951215657094921240472435049929776432246866563478364465582694733747811781027223216724561743928519978491880754756908503853751234775878652427788738936166375035332460552271011505985465254321492437209914106436964430165571201484338758798002135336803709566764645578338681731722087072872178461575067202005019549091979691600390884013390528924892301091974759406326759594231764209528026468633390942211964835491982062528849656397600217523295912099517916279001056103314096603107278077631447483811023757726775557402114935577095485335113745900426300195189268207796282135648631162723974408011521923225011487280882672703318725665993646813332265391679437777286753557803374405136856227425397689089334494362060592291090472644284684801990721976841314379374822041382069095601070919743439253358969915338963491381355396433874180206340825335908670709290111611497966315878122369425211502046061918438606188347848124263521067463027190839093120180495518381065772079526367028180868064084324998842291617322807527420751011985978848224242163612247594411730045467703905867499776584952247249618725899983416351362469621266368345982662185355994004081050418003338334816153332551375639517643168656586406584954124448140835087170781316045403774881614593573981251016231210583725118528870242945227400260935435276652951867411212217556442101724306048062436226586126873711187716494477257974511013652330513441731782416825721156865655875058521070166972722462737796201446268635384375388933010793480604773170325013072374490080774408239595541013658814747708527598918414585600673299520484884460764138870723792152034216491875809351474853497370071420460407927965168832183710397134095750334222508980445864430773081385800472775126346409444643695479520375925018920566347303966924964857472204165655915914202367598339582604901679617367665921219095085638951043490924648034527638746042816473939843025279486952814652415840253186946701030335452155505902231396215363556049273074417364821131787459040710792784372580710704264706288929294886429087978194501795901548449353126998956144150692598492343522223139160712031937020069355903991031950114192769945946212400236386873584342963643305080278471147018060141329815284401243998106039065277044177719455380258265680704821628016584886706583255056129967667634775067498045851178851690990649247982914100679068044296040176038454507132484641536758778851761482227330166211507728957981884869940809280830054989864546927540053935773525265068015024961335176661332129062276103144169123832311714342694093276626297085806364330424679192676622197171438471448817826044664739440677825547088816485984553936363094108053609922590658689536174280717582663089146978300341805855491317075584812145396019920317508713039527338933095779906941668157090068554800551351340047526561982466247018057021753483497655675677281939328271927937259845361186888375915703428951491104868054289276082414386237413075041811843639356502079573375382706538304469402584686387570641025949548656940113879720815047362514519253242854395028165878038735114297507458504442071000070414038573753654773251501960417772445981583671802961744655847612797522551409883898789905317199736459597519654414499172311201815965691514835085541645260717278772013761295145394774605415837285592195177620188126549111624392885776316539727463213181880496043344098281194156482387565778165589637639393163476758862643779298335914883652426285478872430116731054258803178728615643295663493625846170532241275478532382657706747515213150136334960367553402581090489426768796190775526648985102774166179448375901725785172619227008260566160306774748500853661388452001784533707983967652352745349096270635333546969676582081154615863348014849334766117391442139270919049683233700693540716568254917780883840435996013423657162394034707526124876694264599235554531469275447847327836452430227465190686546861069897091403509786979723184245666225077415665864757470658303670019718597324927188417691336878175699290860578214574203107683719175294268711215001539430940005501704489333185621367509427604176477482964397182472311135428218837486533215717388087049200991895732589038672234779576995574481006979736582507393706520497003820867061331297294338904949758597476309741313634609344436223092451531888306471732356689269238156148563029596896214985283320584077511041781238399132102617726061800346708467665073982582067030737857465859876762163558712665526017808585810776346803010904959206930533153878828090097922680843058004874670716856360231571116734934084684230903014507083744497462035585684256447776897752084669885656485014840127119221020714249769875409535915235263210366597670699979838930512234164545953518414187987914291409219905791222683255922585597532877500669479490036562141890625368177233353571082554404271848176714879384967212497624230731104355140419723461337863357853573752729444570173498654357219122360185466382781720264702301571715110965369887037023936000410305251417754203817696526770395172246703546798824491859234743927617435375464685639710552383103555987628005161555943289329405513888936331782741719147031356437889010494623325387607869384991891233534389101938156320367681272845196791113302203975775995089141281349623671400634341752858708149637029237411382188302157870362950403353444400004490006654055615069049116207207340758534266328348856597798785670642659550047289921781705088173133678017572800376164606074568745155230043235647546479381631741364004567831140034152176767517480725931296921316780453302424141484527950991180164376800609547059242186671834514289801635013947482991985306921598711205518261502553032027854086766251056042911646458803138269339704993995533509231801111013692447683754665499123027985767152749268025963797188256482101792190083943594265267261815922889497776344219060355191469910946694838510771095037271789081623535706113610792497276112051436673079149604502603884388256259483066182759745820234795873276273919120758671007511509572029788534961034369715669391549029660450259990512856470844477332132684411996119824208839401173448450614127719495113870974434567889484222792412487416550685146943891903646891842049004142342699221791220368959177201565504159847121813022418303816470176570972285894634359086933424798143274739125291879108355714383088658131572169843086241526140136077984158491588019491431007522714566774334915362650313252914931399390040068743542609422530509996977809986966737526383590227612057434434307227573486356530144553726486792383150879342893378014485879007315614216559644830981610416841297336822388462912324261341386891961319202624407571380508244947824107589245687598845292268252012826304668639093245562534010420398754196424628946667529156653403452727755513971996322110750113036705752237776822439058348508099664486160765692290455044954197904002158064534678665535699632061285586963496222297687238965302244126665612615134275390075602656811585912929522466404080544335424448742100186335772492269279257630922531939929083922295816774329127990840636030135173530545565067103875382275201699195401361803742336550676113354252274681278140699974611953500024042491076120693795536655175285815620510879130999381822432541541607627264911230031690944274817001819463186193279332907074897568441646165301190404564484296058191054972182091543026029120152442149999854080868651895329198773300714640781655538731856979714510246664626924614440387063844256991983714631426129303742450112942617618251179065686101502691239992972319186353297922966403871750316835309998122129519095494988810884047604375311399865871836852471453445390398493916027096336911256303426695853883837671291059882027012261451401678356900270308563472437253996861264017634693895004148668148691277504378235890114477756384216620093531697415646432650293905451192334502001442383772123173577457123640096214915976483882323793443398536710723222176589060848993951659445497534690481160691286416213940143679267786425708371248729254245542768560506139551694188360603241166953372812309223919592405251068668384190601939601068603766484101220316415249212220225006174886738530301236133704935411240198819974969771496195271475763674337827996917245105908070572080514748606783739318896455574004651454989111467007101919659353689678091520014520224973369346797572546272168767748615682379209175071241282891498642717564632533693224705808089504427271539850186305859634888590855300017343144532210815914943788264946340223526910215649128539830458261475315562850576480606472794942020750843891937870788861532428937464732409126530028049239749370826647996485104709707326067497214937462266398495751597946518552106855815155326053724821210715455824880786325492216855302566018954673798137321467093319713101456622796429913329531612413756036573479133297072815993798793902766792256754987668573582355352538923956649141958858907698812007911002946381707781867447945068655711090097299625419024565169518037119276280528256705483571063563324951445290405751436680796020488680781794999668013693224698357862151355026834366033204583249407202873302888956563743570360907696367547672292382315382541795642458998050139789801038288075502633608080567161052607240328700025458204116298909045066656039606128927028469597997292757003454186120481832613239958626011456469412497356973621233852993839673850479204184926858099570014909041448694430352256153792758104611212608404765264962716198186435586638813502484738914105605187595991129993786146166679645487099868453805916721045216087400992857136542774500349029760771594184294911922735924863959492415025531436435543157470281190893418180803840907436317426370528716286472317357093291311317868381442282300002329589758205048487923351192551226408373585226429065853885209795356567632561512087084434315745595511697329692759602549237353096620132392067525484176451813699700508823526780813127200332905304865065923712641996847825167239608896279708944260051906028893726724890407890134230862782010105196333799959308416994571376853488939322582988980106195402158080925704444633968228656057497988619741870812050948366037634691481609759376411358437256033563387216322245544813758390914277728199988286473074650318022238868885691545425652778854180831813577712609218239685073958762789403311611469691773155091087071159769321440821856833039708255278409858382623534591342073989767704606584432780338974241927927529664544682729482655795175556103612473223897497228875588354032207372456024558174250935021397249079335962435391744151970909759127513358442291179522527798887550774468538881430939041893909373309379507507846170993661379303604221353897560329513418604214501468796420765129311898047222012047969265100347172013452918464527104915180346632814811995490608387011594091569470298248795910257174591353139916849180188077702645097503854889422948709287493306206327653655159209471666656188130646979749006300476490758099692441985030055563859196530011411585276404614213787982914538275246892785869094287115660701056985704678045581659518249562967813092588253170487888336086907403141436066667729168605961885185918564676556496274124378285358401315175267180536088210842901472595038815677552873065492700758831331097450466944413245721642170321873793432466948019611093286722705016249588407584563125839605649282722608290563526358619581700820478110141122298602482352395193368862669193887549521120635062109284079249441258663263294746886466697860954216014820312739406152250734635507866799235635288030446377844030962606744445913545232238984621869018961905798808910372626278276507953195439228291958015906771074598351676603753341082829524962315717463731646549121294242086287086807970525219817347540395038583065794111436670070525654771262683881999209316936424229931717226227000091436710467473714123507215877103724659130251604754075138875450273425077722621591898160439206486857288082016731012404738242132707835277446355525227338577886851569814024741150599300549358032249990587738051948765687287880680354144090493400486071256303620244141173320042950145338290059775183224135630419091838580271851730347032716145448850046516664729535393518929160224083587520301167553397969505012709663561249630483309580718024018049879514178902790250960807569297597681149127576244372675000346689925820721295644643574902762174061657111685633608942006980292206159067181556546588649367665520630064814916444373327138002580938626672566441233763781644203087882824631043227460788922689251149414238771840110744882258003804852087156637877351027247318822046678732268059463711573750808070444348865190614452918825964187902116531090971773575031858133804357962535601393648348698856538240012509127106983249639511281031776188906341884460182716094739074612479399829116689419462242132996485462492683515052790296254188583067650343611357793195108962027169651170630209987797153066614281076104833001407096886001307887177349103152532306015645768727988429509594174754029795590187807118774159945222116438529502506887344408157610206753256290746094469216909243271785832047330968826537479154161565695932935934851474791022994240824737926554163136253480207015409366539223795296322277007357533679079465973123052961207101258646417362338907097677129268141222974947401449163929495583830626272014425296655956776709372586536477028055070172813377031863194389912117331744361392657213860930661607026899552383379062946836699101166803263499368831518264591477036414316293396998155648986241449003590086195971255270328855360479511194121062235370415087799585154699015906514117517803959534198290119905187373045140128802422549911160509946840032631644835450815270404031790993025724167647404827754620524513743650236128500503561703997913341615971429619098469106688504624036097656702269285667760629996984122744984449631833616309390507079503400190356436940565859051705566345961384274086318651699122027555896284150187981094333697569134744377749323464647510908580694420607996650604756465501969889476973563409601935230021465612692541890686576525404766170779784451457730070614551547839113205225616489636958389165051038111623457209091377577681666762513466962100531503557738870622065101027185945726479642583364642029602121696785463254060928788026209463484505247825894920443385644309149141232530608567309811219506082206506136513241708694037414889973675619763794504269346361586885968861775158420404035831305628085858307148167330171701030708513737263019638927795030437343519988072985031992745496253390870628806981105993841077433182941872118623672443830205378960587263002546564299400894876260581458733702919759421834301313380783381843463867043266633306480195274167090893969482282675785913428599004521559503493266487130749705673067293947035137439300205508156347597577585413096456059126852857647426439091265515219690584223300059710616460983161104718579128063195709662744580074730136373740584815801340196223084126326419671658813601791490814292107889870168007361639293644318768948774505923083756967495761801595678657217229557617894360546944133936983407564392610195087988910603575977750018143629588528792461987447237175999583346715653318263601566748715342829319324084894497080099841121112599803243781468266341593461993356432695516234810111495212935232987853399973030754727332159739391775314504748113329444707196207096037919986207670570743349846748752426771785173899721004129178965693785999468892748130005755620650593640537983139651168574508524553929890919005662166382124172264630806869252455139438513084050274446088089822394378982938198003034658657950256286915542006710107740303939327632297667052842092057961552540925833496300561334777931893901534650319172510532754070427295676554264838093278095051596854602830291726182852647662732169968504126224906656869360794977775599589577202401283187258389135640796022516429698717507842793132439386490107973739134695049085306571378050305880311611737864797165047951041386890208795122253821547521727806493620831302951486375195133376498859279261002798199428887690647777892538636381810900676556774280355466524374327135844525725535619507137253112914810071645437592608981253876220217533056969262072675574752936743276331018671628622386132024228690685147483242994658406701544375896965280807086567420885924346551892274225118400191966444683797589111189391877547631316066754869890836369900496513392316110880920097238157150866299019488915860116006165245990698200264474579242113189317916961853022373654431027624702185242515879892134662675610094216271027357056568238361130210027509561078994688141454339350932561933039119234709430907564160299706348297925406711832146984551007302831537449268978204277691060068599822968071689602898699515802299420604294994634844187534320343910166752114189179074836907098023118083253997789267298051466259436021869903992700825978392904678805985340801015761908644319520963511569249458198651668251032093072937046703848882860779430592702730304049950042882060729454715456042800054344657201001381132029263562135302171569898810659597998839581140886436237568420674918130925797452408019375270020962076716389368992179879155806298822049903511173460820584990092368846676199236120131181587505969113698740648093082554219455096349568257902260405696750031098048917716501641390253564356004272248517437919235699245669196990179775128824045509004807184370533760958749530227004118558143381264258388300444055938780091938623775494018032580667180638706920513669923554823162098076824619957293338921537254526017349420223357414366591345612440968802528154989808442023336444912829912212656917468483492907179748534658280779782173302138842824148921516832708587778366761819096343737211437089840671837591584516272514574728260594288137357528234757184097611805573132788801269277498988883785015488239482889001763209995664255870721368666246688542646516735445477042982796461168207492657931822596710109898551895248672340763730777513952402380475222162959439970820482680758244614665733901348076216442925661883793807291835213296020671111614972062548611228180635614100400485210615687457234891143325572976005914317813334252396376833116158918612268023816612409097603339795414063188297042231647241695770553907882913468000930641853048451321031923977987279944970437779491273158303578302937873506706865002083523821418000135271973894432612805322435491625856046128305357602146662690604570360550135380473238981795602944185105912189695173047524910176821914238219989031962758148555636825273547921283894069914687429695268084733707316823346746166538206696263473906120435819420687724996285325546706425343794131385336944770261764112233450912878679184306983322904098972158842019138555921832967544777262935098724178549929016157338037382316510205095126328675140810600869529149573279516792233170585026300936120664086718560398031161322378841283739969338063428550961805103446150502820675102794806803488542913694289745743356833868471784623646703881529168905396856114073163342111928785174546359366811208830159191820225293892964136264660391643006934052958753996212798000739011594070214141686386459085519984860705838447487784721883003411663514361491706152634922383372944960412592022659441654889673893021103683644310370681561273445117641367293300808772000044897595250936456403336717616365725192428801719129339785242823135660934482397942246590641874450587876872074421900580411537542636194657400303517956102812215807896842335483260552957337369218537550490197388207290459759453987872499469665644881360627071823093627759108561540361533230912312265365778061133526553581232339516629545505603798048844478263276286047827979152710298571483861509098002453842698417128456716976331481242720741345549207951517264693062833029662772936590815386252585924597185404414285687640537093704744276594919976130265249577020706470192082519521200554393022314825615632724974461071352936018162641415373121805755861013461852195242626521663848823199010969766291028966426242966680808971082159083923543751930442056269479861628764659602449320320383715169273623704916051759696552638024459481863369568852212986565694021963369830097498324891157337470400601627524812723532484389088271593104837130536832970753450503069159835654588706773338919348932504573654352104376093338460255980467994289030691827490851421256107188514229658749136245636613648528742602148587296623807140786350966621132766723037399001288931036955351499685449981654592772342295899818858935358206981503838550477880235136159440884555773058928804452235370230565141284864190704434290548451230538079456759170970822436763449830025626611339739755305085436725867231175455932026116310709837293296601218123791556087354052043709780124457293733536965876774071002968244081196421868922501611797344088658645260241602167732624422063099985947640025853393870961936531249758885244068717274715054495720798534899399223122292516606235951120255542075154807712488675196732427424311053662293142831983560419361553689962868399272416556570655928017544684362893611440600761221289917871594697796386919608985434523626585387242679449601845467604312229135280328852365117089088494832958452645639937576379403325394870114446729652282431608201393191145770627285902363911193955615474212039070560391495298897254717432317012379495580666931976149946338330259135154552692701109697371175776518175921791522084351614452152380029092632984793701167256590494815355925410420413697081532805162228360197832216215820466414170798919615589465081132648010633116303368269313141818163017739118806583091275416440222909543538167389280577206228146342046650591425825815818903993767159648547774093234506837543674431929317004131671321496528471530562362653025339186369906649898928264400474568546532189380772945637821600213294561570821926681372539436924935513849888793434258037496528503696972282227879320795718955313477272554657302475766062497676601934002773029441404542896563908915549717518235797481516858042339195694899422991240236158407277310206033879169281115264364788616977016744470622717482476702266855897854507141734842344503182444236495349364663621902603326988191640231340274690623380613194193531844256747141179184978849686936426353274947952941731184353738555527327215972257321840846118402779056098631814703352837760589551790220511360932894479872875163930571084967974304813150505979120027882035603262981548645142246891034201438039357535135436609450250406155794867854361852943454249345579981425405345139414755086708899079470458060746376125618387097951595927766086161815395524374289857753852630304480885297832728581709787030619597242713612821636296662702254527127405560800878837300247273622108036223327459775540568469483172667201590557397430187553511887277573889185814568281857872950722993043156998409244532674605026294376361514557394719384026730468168709717404422466013988061625512070527590320996754554767274849996855935671268578149905263557381619038073301065008107590434702223875719865428938328158425819180831101500320244032736481282615082601638859945928259050177285927649139114527584158579921919448827649713030736976610266964263864400886433802071631932982509665021373739757291742594997855702607939962660194312812179496749997868507865106823236319297357017907973425931425055672612211078860851205113236611719570723494674366527071824280175462936033262184166925525940433896891904725423790669855770415513919425341615098956141553649031566788761120715239449787030569630086918147371804760943383791733038909808774700170159074502970148559509637537851959396430792513362995521294403535169925856960528755127106925902526192543091377711156274182604881295300208844433169359944482599058780025342570801051587157641221143358403747430221047685224736898216559708428777876936844782519898410384401690119900372734139901570487350098575693498782546947891596157593757795852510933730873853391582801762353254816240382822080853059054828568880537814531703798826963342536305845401704744161678662330006987789153264755053206558724052765085455735104952688020094902195830442890072418049040059652818131831493467389028573265676834671695431211096013906059189082942791516566878861117513117716319880020515337584124315938041078233799902277747752492806918122679767354495013075606175914126021437001600559999569514437020504665839748300133402626362254247678029960566548460435008067189164585215598158647416498216278432130309601372159849970896930643505982082310143669086435775037842398147520311396246543814389120667792631443757059371440504239183936639962006668415053629455209095223115406074992988387697574819299210908948791977287759176143168297885675770106686487593154432702737105490648205035520730170049561165647990794636697024794916422284407497301295754990541911848100752469334462556694063179077143107004420259723807383468297808306912416246971111708109375882621111632059514763277207981439692721421455816001929475109933668146243529985966167933837320136543811395540789232355234748266717548148946591773059266318825729738682479702730775173682177170151410513325476613579433276673030137562544772849917936639715933632869597819653362181761693625054498435603719916700186508339704566757050973735100802411617166230868145590414280664848241507064378400452512106726202518998135659633071889857226373242762857361007176615286300075973568679922226431460201598732411002780058771404472734467512539988684474998660810514861934360918167336853785320613454703355068396452337397954230618669450517682700073361821465750551722492843237448130746602607252341273368182122823662158313205362029945493083404936414185040250128131396074559237785208151282327093276881326370187345104373410726095697943970490101769962505492219450719294377964673793526981268015767022146555112579438946160095826832840989264304212298951620564266752056566311414603021076911952878329783602044503257728163861183034803266842774754615185522770230389615963482196117053527952039664389193838183929907436424396152449383453279515609159101811909326236540794917750024201312546391577558354295792712742548269393469791806730623550874318233057690756549590272501453153284169457314118156390995375664278809783879143263698632277315355881273116893442034424164002330687867232372625401509747972141280413229091945586406378278944687880216344936501056619281650127045826921437273703095450875819430619926596329330759209949886365378223274258904425162942359936163721694979066498270820574227901281709648060876076496302731762055652962180864497449270966829662005572244973822357590726340248688463975804637231284043622291588613608835211688531593940077142685845590978256785732851017897741238705829987539908390633951975150726250603336542448827560866575486581293426157723805456742844188049504499757762422682565784857086716653605833418821770316290193644836062407869340633344902819683880964577829973890536168754732263985469638236141213277027730879105314476948128653834968101222014483293261382190985606169214993536112864618272779530906981733424677972871271974600639256468366945065855830202578863138214432752575332587297448535088935079340552779478540110828181782134097663361544812673972886290278194090757633267972734372236995526039747570660287314147082934972775463525177723126319154289108360602938577538480971082461288061812546062404021280822734392342408107037189117303302324148540176902903138608175141453440942525151257046470806262407144439584474732023634803050218330606455928053438566897331333039430923945141214200697859461720852919497961370541038330354729595063165927848310537121991780369953226492422554353524715343982540358799961635028205488356452297842971544169426547499552610304891880228440627721271177435731146308561379847898904217683967921606484311326438046348604600565100902471930533308037868707143343106061845213815197586154373892125811131695353663877944730626056078625868484857452255435541689009122319967853902503775072833287795406093144744390233115420192394105733982793886968040615295626048234879749400667055018125102014040206555103842665838612094129925858163744767862269363419366010803405842830199286782282648400906019030665068335742387741866540144707889637105609857238141474624968206762484116327322849793196855204875527064172049706927694970094569651384113484189470025797189983166379617327793923956730775920789606447690585032549229758275783772606256304827631216456793060716669891940846262178850866606857891915210392749580273498150226011855664666785768089221681298003192303880628418658242524358304097088833523254230660406935387220802058808106652307039627363747292612724660575537720432543374641559800357158747389224878229889070164387898599077399971373764570487751186136659425725731533075796387491715371265653620799788736011872410390667581639801664490198891591659304688000952244520795351080092902666801498053793026061088907095266833533922563638542419279767327531056520887372676774996430432938683864432136377718240851399108142065592453129458963232126287207818919434124229948919918331300525889392161423681319672183942850538582313145097783994521970547171621437103499737902801958195561289982850546416163237230118949870554468261543686364860212298292478510460550431970952085474987509998122997062984124223650334333253019867313412662635923098219808540418405971079596879366364675022039663933416814436282907147453097634589309813942026745515896917728845248149853137466398951576241661001123409207441022352476874059622310275232548319100525922538615531056551276784074581266592781210786448447460697351516082025294593694912505267279282634783149772279593154271320524780483886946580355472242347539004192024517113879454509822724034279176395561532380173591727599100505756210706162097123290941959596142717973321157488449300023376653504819108224928207173242273084442252614135708887005038547422689474116270506284583057176915456584281038955899270111543017227168678332195389164318370826458872915861495891949226781920882093930500406679501194882231899242125659675570131393603122058584257708770909199138876592511317217989899741025069384698731971417727005995293284477847204161666807852897392205244309400353513086286849154098379789379955244389994417642939253728469697418348173709539110528439678039583725355208607665367032052812491577499156953062240184044142662184230105234624455443560219801764543398331666121464609763824921130083117054621433583328158683153261132445686902213056860313968164759410863696900653524163534086377307857589917175260982844029762143141163275566792943790431861615165642729118903801742585836327880604952668572018070651741282284352466037566761592719679182123972131563610041646904011774790098789903219298416014755552135310567243423102069344674335546983928961192972779459985505774058623790923636732039665164309748680749728395369674226894983437165832652548950866034444063375625568231969920774421221424086025264071978259704905072128827170393379163385268752369559793189552513043418341333689646679438453109198845516206967377978975380581219047482017122910567549399094098907989184926128188287304404857982239409746720504155411663033019764816530774186465201624165672483952431610771226607952856592604396991476240820302484835208066279066866376309346328127798506567098590266669780219172683352189558463772384388889898708033555088116069548351036231270095208440178504872836275987202929362377451191903709192536554272579421749910682403623053930478736841606226656195309572314847398969842432425817438369930148105947696546494171828775507361376999883477915813047143512257023528276729746390151597531298287519695904196418843961358095997254635795263625963276153280446260732877971326011180370104798692281420939962045127300968927423284243283158184516421722352054724363013126247735187932844057278035062318373951172857316955815887893078939046268451906622340530136571735182886632602585005779577867708901764423408225826608419635914036470737704588409955659445269077645332996808266135945174496979450661605494912841634669899294362943615456958415069555977561890323889504287909198142427545264777390987567594865214963286426098911298761298107098334781515171155028511552995625265534838544547753623327128555226118786788520793870386767348084388949502193899387862650747637077584144084700334526862721590051934020518155285208903706246684550985260195085770867167754951397136083535707076348933100375308102064482993422802029547021155649352575958718332888389878351280279603338203974990437799310070957707210805082606253162045243923618870886647352417179325216344825805792098323774085232726098380073990204664077491516812423346341961017885897051285565538418284421915209943827803018716050027948305911266538295748240930893302120852354509568047660025145018163042304249954120567842722801666687728238933507971068946604143058681802070040393359563879493911965488241489652481536182374033470635135049601953476297746993369141547268389702619267415556422736404816746724996437196125136439874027779669271846134723670970320297202987462102527183786475989611888030370010863063631424944952741993984135175288363320287795724507965995410389707154471759024184744360043160919591930787218712069887988306139084980362576354679594667006900902197685755688844641691072937829969027975097966736521796613863898647024384592216568794233457932750213238758153247286782636533787763709769025405872616058333245894693625576776229829752988714140281184088507209201318178436290937195330167057609931531727185728722551843552235725159775944867785301218415953098288765420488915783323494201127571149621205752523668712374422961958294434481129381518308672693485342534039866388509884099623951839569057129985963426581955064094123110236158029054590773433358524962416320237157603602054530225627994996698560446541185781238849399875773795005432755684597164770667515342060806737406325318886565850069253913717458499924769663191429911291264013414154004168459991857072609631636768129436558132954201921690566880576889441595709071681252041122102457794366530055691517732368600568824087032083348577950472493067277537279495541148281933275288167390451055820916555342471558137471815223713140680208170467449572406596033935384634873256349843896449814888599591900496563428514714440915920644437475945670202647665393862931604102730895014580137602427920236019189962381803061370522433482995693398435846216088489833834911725478864250099045512204264627719170566628078854708477968510964973684700629108575501937459560479509176130627036801568378407387503681610768739259332094163538377919431024943564101417278137203156106402241603488213862286351425048962459068031448919916883535571526813865942108303434419614202489812917729699136122264056837334230023415547469923012847165217597270829526516578782424660087263724467312242738661656118878381403859073686775613735438653538085026541003901029995449737635506574830873227631408335717460958793590068856847738769951093087181148226869912015697642783392479320043750576117859150926701087897381223736624685478992384976318771665518779844876577979074774758956812698371900773309398535664993953048850634007753114112763674771561251927284872633458522615081363617805161397217257462382201994886635704120486313291927245612824755318600737293921277252933766180888148065717858216623710408657008631965512798245645847756172778438189266488879551469471148881934579997586996700345571861259860701912559721637461426016091677203070861101169632486995174361549794518783642133192215271895959107728865105363765007103704136707600271899007266623269402430051087122261714988833272104938161443141390005365724503584971577967165240698104786644351966880119587490639643800541448922735445643135444890818859706487394721038132305605168062279589439241611704082328212633921962751584618995318147870442626112970520514266986206584796672052798936636533689837869306432505585822555661947168139057557763954378260607185646318170298787305032456816359556732051129816401073194578787776239546061508771992842231101052947089087815850120528875186911787236912264033808842782269924208992048812912082514777230536256839978995705477261813844611830906143286009762962718024819503785198489383027640912818217196565073529871993453092658724563522910594346789637849196220266994726404554699017784417913367171484614735750591217891160378438912564534762532273661640882474816948187687676550743114573195192894501001447707555897351797112638600274589770387563025803076290255600034251645000256242302223576518394293327072075963214986641185157925043606890082498801006711450796383722528400409967829579574493667226171918559086658606371329335712608303013866377206598212919929316478355715648985494178911083426041677454138754635623392931609163629614065727239054477915695418685039280898411219571798876574267350045006921571784677569716288960341356871850919061795562735327330347549381878282782220800049426941555915195820739781085364649682141731786691248325671365817212438946785440744249435610482294371009867079349552469965503487184859171563705139066059226399656153134290530991806663179290774555511635516416443064595636408636147756542795064745502403344354102584974770978667275661778143065631663127448942980350235692580610379332870273056070083892751316719702637528723798801799200955982642924570676753369040732649453967226412473422323819431415693498999803722302279516738822047050362130902763298781019948503591262151369394073449979826131484405742109585797941734616498560842893847873064875779871396672855793752187558830469177767034530821823633047369761456508222858929618929339044165073142656449693437934105639438958111938846797673242260233139533707829352739864805729610230388845176363277614123171008598645328969020782012241336222618631860011709131912104590896850078725409265065875376320466480372152313078797816406116201120997206226808572170102508378508617106078102696088893313307323946226613005652711548676702685169582948947661195292810378089307952411481505698386033217087874955388442369767157796916995748696713936159721694478950760027654055367492886890673541517963450065302686556957185731546360250648536191635669373639111017532500733516421339790952098467003037063783159686318282295595069531233895403512389087954390450005547269758450225465490556695268861159242319470424386383945159478464565251788093928008968234875164266171992401113778966813795055989444001595803729490467061746464732785397510025851451461841173439098296733242456082871674842926086069152888746648325317036628008814492443302402149547718739400219284976273137795316660477215642507337997814500677382614422385937110762787204562467027039453996020356447009919582402835509190460759342813610599352324100744724796540935020284433856965948349788858050207193458277329660619215470880947885428237708905043512843679474761422248333194367796333986460356248348605378835859236151257212534904804430057435537384842551097248413423763833332726624899426293320412419764894134784414717087915313193652686259738614716312984767262729785389118244930003608983759874470041621206465848141227096536984533023364603330275353513955858825226966564929416192952835574175265885330917639231029424584524997107867492945646135533191942457834488998574155531800729933613133333071465598895027892086312413934071575307256359871513593705958861654604090335672745972275380258549933754883920850712921610932306067424950829158122102739339158973133961047762933984096743057356223352151424688826521968070724344187801862745527356163113778668109852215472606979916452312569775285500840524618012098052252437843446122511830914560762679515988822551541679071174609654645071532919345553939621744883808995139685776351899272004127812330166085433959270087367841423999957489647703826126419858831259419378968526654286812672939330729365047488244797256589148669070242165671773897653846006194169045683801164598290387907303880989144501733483182087753137697963520945563258051977157266785443186982515590007241978896207901090095439350749398845797066792952912672066527496974629647152647997083972810276201265894177634746545144802452444244284528306210916620915885091960843279259160660469808912894215718847797374000874764917592422335738103893921867926499756252525124383659174245681297769266479010764020589159435357283428551109947901362747797249471139298707801465930524338095221264583172177244419519315581999088994289206212466094023619578724762464004110128184555634000292777463173603902043596752061719912010620484085796790830146172516335736185349650972169876759272178721877176090160574222169763554091956170718711858670198976689245658446614865018868842373133897688900335168089756458092431914159705685107308803441515206684166742675297542985053351486425726736020053794114138517023218440212853421917013517546185902437266566998388091688264489179983801063094004623992364505122965524041668483398964850305069505139926591997028019516113584569998860776010827812591352492956382460271526061492631391375455945936618139798022446693856898237544259138448106105432591233665721044179548690257932436970309821749019654606758012939587231617127190457282316621090277649633996582745862395996265500711986608842378967145351090357947053999420656997596382488711724091335194341729732650465139276551715705346932254968696506794894621775882235825167806145646302515563903541057032768382076130399470216167275916180814783640472467140575776956165545000446361505126355292490572452752359026423826184636826803613484051954862004577535658257096576133612061955241653100290185273899526936397974102439143439841096383985831273405296357541559474503737958268652719828819836510685204146593295241649704209886000962584263930428589038401793041928404928266032257348882063062101427775344440449523613058217920403048187973530218983117928275671704047012031745376857617133403015676747024369380282352417579779913771676667383635506016627057833675601104284317746180266034196276633166727969935056153110263925162008978702909801909547672694116798267168291660566080735774577559219660188089455925608527980847747749758618669671574046487837910113614277176482377005367207203939668972592947259838775556231009751184151320002906748466296569965826133724945994876536429862273527590683637935938449179931623774301003888819104082295249054760577129219056366837251243666203434528206874464239948507488933483235486753110601974476047188365901249679970640051715246959858854415887084287055513463201669895859590727862552035165550297739375706951993986705122487661804174012210706138206564726596091897787330629359150389512942534405421441483970393069648789704191910732333518782601513130882032474318239280678560105393355652646263711523215634510908468072074633691067601579762912863688460983269661505942885102548523862673234825179888233924683900945676373953003137649545196735353567665298102285444297847929129999296359719651065646120851117098921199757303642075063647356181231570289309763208332497493582389291031484470584189146891668090518236502601532793746685967943636109554744258803435018661843193952872394651108384353500347144349562901664968447880368032166302960272221568276058724910625746356755003607084228163863446666371172759309516803843484820183297871597091341663689152614332131017646059925951767045818762370147845386407780571184969332471211661339010531024322049390979371439990642456449036216405553577190924704885139733007488955357581538194671247440112969845126406254951656084712146846918602001405527111880160178165866684729756630554726420541705603947055251207145547213362700754689299943148236237319549784137184599456151333603858465627895927186857238607682474456476424288127093902823040532805976173705432990602233039136719522986432507049026389601646137071989831506328146111556651486030081982617952005842205287676017251109658946502646319269091087355044242300119452992643313893004531736561375707969447431030863028778951567557257005359484544987948869677001457510609509818281396613806567834874962037240681236594482973466881368098379172469989052138272189058257236852842733144845805579620738191064596247372976639275855705371888459888849812891093222747761700042610869276507687664146973379306615420802154251710780354313141898847170697267304925522777748017371500325838765086782772648630737168773634229858749112824892902671873853725873115727531250166721924175970786212226432779081962357521578420381665587653823689532837386278190825602925349517030733188145555879035280805706135290726136129713161836842279939699289514715680393449665887800617185943952190121598056238976854140327555074660508275597630806626750717017093995257691448779065179478858104657534601146439686690363135393293043108803014525418585155499160454171859506837626650561328734511151306865448772921358131232086134383377317650354338209687995253003899658088784404709691710628109113804715484912288129269518285904527607815717580853808958885486207931148824466787519795839764368132477861066085097641632964149246749675348808485434667379188963138076861906379300082055313110474471737777735673405477058019893355438184308611467101789271799600754684995027535535790306316939500099191810622021003288061749693046702809262659895438163148024552267135639937223068803073826530683385580279681633950743405868415514270345303988888249140553697570837028453659353494387651197348999979559996198482440858116226052238756387590425447925726986135025200484823731808025356041810565221283777947717313004117304481439342195697193124392320916938226673912190445865026530576729340160188020002638695818668290322713103617972081848704522523230751174863119306829975850880356532825978534282856543652344871989133220224317987630140795146160374902510034967116303352834575866967431273888377471335737389758590068762717228855185782534686364568339538049570316522671526788188007853834138400907565844466316053684427009892029499967268096230847181116435824295139269240402111538659647099533804398630752780098259069308068173113819923351195704875323773427294092360137727728837285304810688332971244537138618816943628844658006181144761906506656123904453169808627389175786039301205556619578232220157720325896782769630528821581361916603170398101757122884827209636184269614950637587305636002832547586101255304299987137265200348589740092169403255905547740785611103849047918757858120711089046815190931445595555941912089765408567652023748473552859342396487014413459510464591656080321790870762550330639994035624803941027587600534042461423197226791191302392773334583379337737564323581714233544047568276549479354880963871584308383002619809953639931423539281029938352680064360954850064091391912394556259894881219560104359017626382592053170010472747022848662896875106097858483916031938781184413945164372144665469777491617420698863234069819043636330370315679655261303611075805111352870074497973129758340330890380624561262313971502232302240863865658020809250023711475280120141864445905544048999804228998844218783390882472972260836761594285727072348724522537212779712497266653448555108829666174144579785793345118240587036175394883365821772228750042902497966264990275151951521330646854599258925055416523972899329760324680279851660831229749775932283712377213717917013809693814927372935000269132324447458505861341046061885540340174209171048660409953974237657711915396970413152531044110864373061971732321584406229398334022200394351059505719839804199317144962479199531569653661826387998797223711669500549153804080663701529228557593149374058629063223102866762819048213334955945059072709778785708819440085744873496916058112586401113930375117325060352354395656640435361828195125045021084587613996030136454898309947123617123512856278105094594699117384093212934633411232750143200096150683143214670976132847163429709877509898858233247029857867433218835895060056530246907828380062947049601126680572813026160841838183488593978050896793910163330529247191433598504871202298810250168666974072762972163302019400723777891640381480030723114641768812004838511983559373728252007418222944145198776403645265159405860972109957279064793786224161460877100245026387602053147103673807961125289416894813880842322182845029779026414632480746642789726249403726617198105538774300275099068965790261851504720874000312329118298248530046430514539489734442722079290373294276314262157479642870707096583464331723726900046059627425331888153850790405931569962346078485838109078967032198631008544854268583814906214259903008084658935139402241893230275574671909545446514849946447935704815082064014956199456433373414460181153033322569435740718537411033431714579609202792062390704429666457095644253483320885337730763968689382533521841714429421471656198761087648752111530520457608117131151228068213538665554642961769027779247751538297878711577959622171717334853181468469161418482615018229423322326167810712193964980901064977168657004936644809979703493157671320780177914786257494837196168945335795473740321930973227314437698428726227873700159641848709971483561054953512610109130132502087086946536464368273564540877724785698668812440513753834558881248622750021012431872171325439195802644310827158679342931480836839555835732097648278286805735304898874075324043912235894642166279368629565155429735585225529603034119919529332344619290585472694571328832035597280347029545807626162025764692461510067335327150790836715663405168791279225734318288568299287405077374141227675770307479162758963294801324622247432836841477577842594455439536179050510878257705228501902267636932255724845648048274233488397511485572007715227368786374876007622339111861607116714297401265219529944180802423059789601949779146906680051178219853967632072196772272530007679207839316540310462467619494976553280223514307742315785386382222792835061242229288968271214268995358039611793236683507247932309680728310228909050591057104788499658991024099311453159424381200782597483711009367709032181685847015287669512277732516168653545065362680088896467905122658377904397398816639306086301142910455336399712491877705390996240331188530601056872068603265039495118621514309734179636263149099487332010956571788254912688321259839614966485131630556018933038948022220802696099804092698015068374619969682620003920717388089153334921080196396977582289421914434612070951332134415291634649068806655116620707030609477203582072908409389881951712103337695225114878665437666310955137463024716416822895672020243585943999640309596109228945950203881333238584369793961777850106831138418424049714360323801099430618159874994592006631759540061417390979288464602081146034382698462445721226176433685476973285032953844423106070724091559118016117013284695920187835287943319127332179652610013191281399230634659993821181888248278791836660783588023126147181423787238609392031656924744701168857038905738764328136391834452298638694582807268640121558683873675139409994017353946548506213469435602214608244595504451260547808514831468913052429186629896730741427421044784727048233838356837560037235570162077585963231748404980665152523728304590425338143789478469143104505350432209642304532392537111518910455161793546786450955153016403903978086633534318046444115885145554928631265970062421155075380925592920324248990749531649088991210775571356285704936744741739699418949772528703251128908786337695159490904195291109987957445064811554054400663980941695030709641573723152305709347420007481146659263184014789055776197473931578628018022966822586810698395535781433178134778547798259862129089817176042898570334862928190621492274597303699876273685042932524650647889392207826204110297612443285351946724247962691609488684967719440971990292689922059709765866747795334537279641079267819447139561500047668566088227054929902281888382708676319546611971060273879265674351547865133616263245616593765860942112123832097946117206403711678205233350403304879377927396109254668808357089040054945556183825693439578418275089223773844158321179415540105901017907437259279831890651864049476264688745326847825948545601648241639978672914593524266078823042909763583869508178625033371197295847400862996974029892687377183983604730712624939148239947564812361144168485245120305319578726808590182710651159153628623774632055908412540402321800458158290512510465612817778178989044403606529463899345012488069876518090232519346247851767886986225593061184810947834996077887033997685061001871711285840485768176786589073920123964784389981327526102246734194780904025706118646304379867692572186916147830231944242334783129440828157519356143874970668828218286393688196101612994501949584523059853695307389623309941558957485395864450940115204271523724743537432056800287533912132506790610278694550809514357702765757008824389022819110611440487498844094115898269412821100152752119884854252566107727193458922741207398453486339857318313211778607046622685882852173572851241988109011122191269309140712567114714533135332530271089523760442858144090268412617371687511787640333325910103291878296706917834765883156898502957309623068649465791027061841832535537347015204507808540951811235299837082447828634346516216948413036639154961137123551517034110954113473588763498910100517235031548660245366899850455253462389990760600898406598047799514364883843221585041262639901592199426313570842682323645437599568111250221792869209503609469580463110524115694003179436170625038811657245563117836928355074240307126075078518703151053959382416698389226454962390733446053998999664681694820089538732479653974083365243931502365381009364987369501509451177184490700262073830759802248767707453854424177083392376723877056873991775290176584128033061958392150301218563972749773257876053726780768672624130161637581252144614847098404141380017402634265082906929107829297117589275001203740390052109121917613582876013597243755490267459739765504904719121821701570989667931874446138927627549741463196921058342784961478462108139268793051303595053083877664421548303996763588257532258806213539580447406921805452170459436516039140316619671251026850708113898592969455102229168123342663997832606311970020944833773537131474859915959950282170000642070744466977641949603113723942296740035109639427606779725964098596749437480242594562029176776116221530144171112199057088230895651360789344384662494268502220733719510197863853640533795931382218958784361992702972106751793737706183858404354543766824158472553345444308706556855996530180357694809211771210483678506393006591981319532770274693130313566651646097881247903583083758630318803109411647107311119188447252863312906634049053035752767081453601992520706304216072119747136760247013069786084060668629302419262762054287540139202184182509113315090459249184674656751843515243072020103278702842388961808125840344699172001876602751079086969804142608178685763491004683982771042322567311586061857382351871681770684020326579573706039333784008861314922571845376951088428579257291193730156278458561197357808957178705892025748187329230232851691164116636162427956645895441060484406481213141066559181439647814875211235512433735994784060294376671739690945061265467157674509340546302381246051961845022760174190281105186839691179540119333686349799658012833247579646729883828114189218154334873405326152376291310655130219367777425009763114061814949308237622595741601491208351519186828359902731461304263745316295806604761783105436595947475821108688350746125745697683938223407959600227440868884039868679382737755768335517002999355305520986862445253442494518965805913853474360156605003503769328418547428891924262793504204681784284383141758931344089134544489739784349529574971925679839426574307795158366240841841261792485674878361766134080614011687480097604888877863122354312646483959544588923248150145764749593714732548423500240220364453963240403008472799528051070461520860209238444687102891613816862798994240586418694562426208390753162658185223099911314799113990065789449358084509233552009504080023057186596314867448126501522283666085392866299009612476060272631459167311660659544524457804147020078467376409172307982660763434590293346658362479239690970698942183864585854584792990838324196406190977267332833136291893321073709387187115154368271448456165684112910452425912639944015515376165488635541311632242069100810132312777656028155028701266614580134164795022758434184379767071825063276553423654698886799823124230197101681112002913480838606113238492587929334396618398148347539292146944114013205313367014099808271743177261417347838154689065219666776318773482601549652664734915396717009161250023405806047441323266242268035278272333746186633999198336763430485383572806302792442514878498646944526518299900539153995607071077816424309478173219020710265460651266528183140657374091445390130871103151019046309585910274056545139131922822401113197957527422047570087434483891826760662359501778251579306332489976296746650249149418424801407064533167993891944682408783760011952198838848601242675588227323352845457639281683597231496515340247354639803380800533754012383200559671938746456552245053552373479188590621472498367963919223817426018964676111160658012203015210999976658776268583987028870427291549454522231828190168093060573017154084641673270253129720233214881819841087335188112751330917091955893302946352847483040027897508879806168271066180153859309463948356939632971870481796831197072865076167350116558793942306959019645379435900274539540030604369422678750815802510216859810425492782126014485539483233635419716182420688929949706797492463096223935256374668810203544164648029543674957794316977473173362621559891255949446336168707669131085887856360921704398609900892869884121586231255829415600131821541865276377078107231890487899801290844951799928695643414758961044879067686076827445515547416051501722797936526957012312877252881963252878776216862994738464481879443147234357898545012895619554646219004749320344620129951175545932142403643669463665506531922621682292051008353417740620360148971478542636012785643503928347130459430348538667292482061643277936014181306688635695288194476621294581233829226869356471497847973166767943766536578735130224876579630559792677308801659410663366944297965974704423041676821381980611514665752912181986703511608020726844760171872777734968893326137799765175794770580327891997245647481907688934048470892432203070510595172526430314631988787124972770265047659784360701798987687172481465777820788606542947027788876209468598815824364123676975528273566483696252775669609340225672246576665323155309980911908691899396783943346135956187486769223928817365627233160119998562295903168434106069027551190336227379928644417552956281566761037605220173753140580042602385683189855827822708537192659843162907477471390378397165385641247251217845640888515091285481455118943267002635951648104843408537094861449282067113389586379339516837897963193253480894092665188371017301200423480283268905258626319201388771776508137217211603028014523822226328717891060476767892626901335646032849020450391283781407639327925545080088123258544920715040807123713707551035908825349697828102721968264046924687670659736950278449851605274797055634109492685408246022638755056435618132543245611277057498615472358740625598611594247340612001169877213478958092999620228478687239213610872703322341345907587769769070437986394034252580041089097203187274350335854351840842528802394109587523280698995469759447211878315168793498906443159100543931972214900922809006761777024151011043313985529042909012610867190932179655859406756132884120565014455816627047749783300119273177690104717019618302823658742980289135365806600960838534081318799742912354702715251497765373794967400632147183810115791072271310006066433602009487403170081100230822226941013458810840629146272730513564756608172692766680881719122479726269583190003905290030930491077375955135102814874457362218881297390227797746704259089683445492320351168475079718411635128936395993832807935734550520654781991036637147451768021894240109117460683820405017663746844350512250642579054296320769477527524657337030853682683571538446423229581344059206745306354290560695869679297857642576700657804902729088276296730487256847796870193584343948267078187117181636139554113746594203668684762347316402275305478869636613098342617264140647815805327926826684434109398237981581840497244032054641617642095767555723825097554642541726934526269074446650292506760880060476193751426831861056739978262120986947624343515407521765795717027018322486727718164691099384295085139697090977980448374875833999865800964072668037148010298958256827264705477310185829368508424186504740138089357509300252679489325045022714516699879052190620639148850380121293444428181027326588362112151388191328925111268153037817175492225758621709717490294524704949737185048054578593119243497487993071168000972245181465985009994977865152816646792669178244604172406259640832422810135500632359882625129775366210079024466854567050312444173949496986173678693303417187283387689805579147450714657428173052920561642637776761122089164934824022169395485686916832955087458331507134014184881080115107493854813664846277508610791642156909637500164682630677091634917088256275477420646961987848845593076524686409361985030151728347544683878684712075097095378336025627588622544367146059714687543628172610019939648656957690496100747888520842205261506212054136142425238585592323119163279838604759178007524152118629033660550253493241238686104677271755317254110888533338279699041819852826866591392626684402191127972040325845416236539952865306379253533821139109115225843881894005696648557292436032610212829994811200210248903626745352739020912601922287875124305655441079700426999197023189433218377589930181037374543148539159115307034297879509266775826685950949063728473086944058310151478415194784961800852543940639141705602329429741671878860010896970069419294305070046542388030591769810422025667873815866065262125642865273918503749242361033052223047749449783376865459925128640755309971794856853580473188971707537434731734560534377758228365144201352716386837089677317304933142295035803611447194990593716908129430520188193335125406232667378588676749194846516950266300605666108519188704514318242403127623720996365083840905900706762436614234629075512161069362210179132950901115425414408195841483971222792346000561456911518247835548312959907245701408222320351905068396906637951198334234782510435654741741986356924659197122611406134343506926234396706225158100685109985670911554428562737022638182666267788634418688660724158295521895790983596246261599864666662587255784039711833936875819578016776135099161109382109520510019518049278494762905079812515500113234193430272644440756503231188125624896917854589474594337722946769421259686037464077785184246371550178898334551004677088363846273078223203447757911015048006084143993202828822381385511387155190361517491948522231181036177859888163358371008141877812013299312037328518443296876064222812949224174797218828485389119006004875193996991604222791950579587313399671307635780130387239843022081067986976563866249326989094226121478461204742588288702263470694615480366937962261279586191031368095904617610381119616512378903571666139872988816766183935950925259107100098085859905858393407716141538555280930710289132216279195137768469032635714550245433996312229845119047329353606394107556563232292128947458592884970094192496270634467752928230130660216164040792217978674193438177462247410685316354533096347279367167744792220007767203731443876077023769669082177017690618865603425697867838193231811695791383385221268220354688082080221318691259997147635097113497834854747311638574680772350173199438592802820538474368601243775357568720287047502074399293283260301180509113070305735318607043356562051074572485827302303204949064968699640761715308732704846010169750077632340511534190364132204693278225569180077337315677092616597371392488114458664565010241750624199167841358657342931620747749825332543965700295651944704618874899019031382405591279990385134453444718721101783706426725567687761498851176449107537958810792684789270714531588844515478464284008362562555135305942348680446800368257009178732605903857699679573156717185079183507891625814608388101668401673712444513954975383925580105913397586594319758587225638107442062451939988134790405198720521638590416404725178593534303658598629285882980431055516114834183281810260522152973026090934210816239518446441075287238585718092201436312772315523520422699613440433547585059977402683463795618481920563812122913171875981503833696887475209875695831297262103704774368389560887630191540818083446505456990123301335631165767520085911350652604418198852618215912466253255927591525502151492593256562166324235772130793069023158783239478656666286972642980382907290092271297788076218963825807155285561525092224541580878880537226027911014513876520984796129906885246790554764733125085693320831505984325722611675353624406101262667072518653164922345929605394598254844216598930798129177692547227901845004982860526834381916442416462139396142012277436732364724892943202343211459308273537412302072834327541060010073781839804318430417411739397729096929185663065377300682809918321675601071963297330129733592327135868326448239443855731659442602678052023319625681529432635224370991541781028005899633767324898308833231746465003569854358151764132454125655599990329924538173140226938778557160148901966329638333282687575871085449561777143131475080111736719665636394850795537018627661931105639843374038772826312406889689570616352958177184847873880800933529184009788089107010188834915274034356555987134554809365072397684101856539702958046233527709758380367956377316584219430759680642588235166492379496730575478821449905800025596352513166802674339574286990243935350572427177042473916220951257424709591500521124849814719263518179468727707214542714508959250168570252261653249696570550266619798261336681130585654854462608121802915373864704165031903044872979719311184614963643680659427359926193306677948241866583004853940597573123493169973829400982374949681580824562630440705722086684707202455065558270266486544094641719579695699487618783993810494567766151598669335722860904210582218497505481478030095628031266827801108950440503453517158164605013372916911981816030321688115938648814126980614038153623666194671174247171959826047999842878401831016654426072350382484740845069036175159853104965242169847488777817089992454176629890942251043413695806358162861780126389887177049925224481543910571186177605177462995503645465767154178101782433624639941439686308693529513550870536178791180877319446978417260218142007461548611693650989978046907618694159959847314279062509805795564170226157675614252562602854132154553297632239038902633103189381358386595636443711234427170163093931737517900100867772671720512118175154844663847218852795076608884284522910910198237188394802621210698022620100130911216708943860642988389585086352795668589506549789127818918194253943077161536502132626619174254452659568052611967251479857568883878782735534773148889170946337084828843611989301650970303954182636905784925710784127863541367002207416268991769875339104639765589271599190264031766195938944026786801513120079289755313713027330496958990380751483534762021517097270264052011559785487487407411999884179522829151722716185681465311702687051671808287399253455964960065786282044774657775597028445879128857663661088285995454965113022866698148556885211307721668468131258738682901736881337529457174870617855098508020824435268643050986707071932595169869358708972101233226899218749405737706796283038725539930484543784777232803817132267695190803402687320063488928147528463625067442103520120543070543966637825655766197650120950852763910621616996801747765656814642164527522297981298298070701809554379453559760689138408591331852974363257221394362128643873577519366936500197652287912006607037757830037119101350710465397743280764202787120361066678726245706399881912340638369843643070372911191433683659275984645944084347285722354520401660366299564953907198339216716474198806632075530509558471402731419876287065631212042855004018519000169394440623140178302210772921663524364731824518528830758450707086267792481056782876357158309125409436268657803549899101279908418072950727008631844428609776306947359799923617890023477797701130349398346676254147942711416658955442709108747886241805691605283700877424304232605133128359341987218223665236678200144624401550281730986204437339462979327190414384432984405987620033436537804190239754219521584834847063474893340396071907105056024168434218618665101676673280464512190162969197530253144127745495552174441865908235950659704419041827925938166139122064890593496424751664430001895118315668112762763747510206229971446069421368958607037462640153222272458344715020862435763362071095317922898110696381793945646950870440789775495353638381611096136137332840587611956591831834139311694226096314507632189541394676939793504349330212817913298003980297765569008262430425976431395295124425513613451344047684785404893486521680071835815860704234126047778388088466329535116171606070298054824604084030827704478658152133929676083969738515277305512510849286139879524438712220276945262885898776079799943981685933769800503866070770055352681644197297704655799649066095834138319264317695607914316837253071169020919454996869441834616864793028402873336547395669799486372264717519021278649870907320279654482845132829860030678788571461536853474174403682588065381538914147619753452034779639239843529742261309807161600297492413727619000781234988304854964053741854217198905440053654382494402376511153267075976309890210824181718025614023051703730313406144927555127371292728884802780212442965082691724179577509520010035998334827592791917778912976176479739816003453501894734100308620420993784458790131469339046079399412150973297253476713180232884392693636972199217290510210803212970781093688946931004350191530971193831506223462026823865074420008989542162943301765658095266449757481803543025408750946876176619567756373752480014410139194127280028879318461324686938590230037214660992014941024076673265403625892589162438281046550236993107136290152142898546429445318057766324126959093568830569577303203785760617010924843619444037500191669681821554718351208918843314973184526540847283995309748025959772355168055664555197539015161133353337502680216908930098111143894541775681824364794389373210931021667756341108603402489424065104263640861626432843209246878181432082970150246497376054959767539244336503492393249618487048925227644203453839939032633614558141546388665527847196105907809148341799950522142390541004970079635748537831707992041810272147344770047227464020540741518259916067018341561334901222006195062261378424464763998011592573485012846070783153644242820821395052116686163787805403879154208110548859191591631898318598548350795890967254035869628277382152522718453196174883422729858238306136516621776699456065839006910502117104942664701184407388514817526359976486895911706038802547429790319331263687502295599904325342759659666805817978631217740523914042383897015424156173095012168290232184741101264353877234794682403568608804430198374664834034556487297509140832303857944274270781598497341140174017733868005124857739269286002110331054552518386800063832190741393694300016469980200386851784687959465050076820664042316544787964753225498063330236305943186140928234269684851929108248816376897587244834652649391973771120443908067215395728831306414414631238872042839784701143243598150395695232392800565948028837928123334850007285209091226199462620810376624634338511692547022767076611291282001267781886152808569088552555449390619367235346734130101066523589073032401067050207293244627208679229865018184011394592469940350543030312673296301802364605908292188533385012761266487006278910491135541711349430134124727960020663723898428848646811944560425084111560209472197386338856106286041183950741400431601322744486319736767695009983294294604648761055828085935422143200490619174229975039811585086812572024739792704511499372294878020149120357922538196060851375752885349055916638921976183915872885626991120302528503085023432903718925339605537293322767119317426823903162222325987154138190183541364892721039667129999289823306918583744444709920529242091122583064102354729289983486134503156305691009125127719369729794507417380965596238057986625889398866794377767868539962738937393331766804669459400544857517391578723085997865357867178092846974818301991412634299363988855265553647693773925240761890710408375754611667058187369153990028582945813748522415811184004717224627996114704703095676801848201951916182024528066116457647787896443119858831066648440746097590874744215291057247733076770217892981991878240514951632741484491348597647830183000347094297665176110818472024085713806013734706022396221941320577739731799150828703862239985199468191456882793813636823323023005368960573307554079696418745117883217574130090327413087802121981574588377700656308192998419671658641536450558844467904493206537392892715532784492253785584874967531588533521718696585662040945034491061893806721473755895854025100449466091163417978523074805979074489176145391057558541524877386163876270831201495078457805976197046457615050671466101340622866932397954910577318724958993031926790148662539600289404688008591767812690086800700161182550226815733939197700714220467397849586597290600168712785468008269382867436952428174130528670395151863254291518677524770277047024745305593304240727831755137111753731800572234991549280852880448805978413403567830447448982021621485130838777656326647608212393702014050793265562002377383052093145969962680873129875828185423312807785490944735973583284972775132509195613805627052167541311782111200940988094323349892412668262344098439520901622756943058083365578525355911086280449331818909474844841197970319842589198335113954868360745849319864663056612303583884051236379728130629529286504605112620785883803605282789369254109658214049644350481515595806457851413312304690019658848497735056946236088163465312733779147179150936357405115114132929602531884891951487566817657237519836014573209595069852001004821808318228819416858751533644666578929930574665838109072095253175726004440477884647756827781234434740855726009831105081910383126902505350292445271617407916665520030688418472704428154311732779987538342566752874788808236103679722398354344184493177211353715752436645910727712776830679007500123043585302458243988325021563227607585283678999841072838790579812426047665466916369500029787707941508680883673490155497187355795780580422825047256872879777507956902935575991943526981309252084174433044097333455368293655016685807995356420436243215054688686705108400286226794956982675879696035669369174647226293713753545398834961171065794263094522782100307649350303519900688848774863652974198917082197644983199938345416731994074023953299092744177508952106196402069041020787455903607791698203363607988113868346981349064099930647862966743846839086217939433324792348144000212947218750512757664176434015996170198866909387500773324516933164727553549539575975932057551316960129833663073505686957626447724713845237032617546432715582793887093378666921476419053573618934973897587360886920815867554230987301820815913767313389993722768883321883443662913106028450528068308488659726215967257148522955612923770208487982850808151892058988365523607627528389332176694126487948190998297853537921838441415802318492526910243406118141979257228289387588232605158755873182852634092880075703305274408238410002493549288431935454267164948761188657775486853508239003706592786912980927168810142113432971202953939585834758249666808366619058740408374163756185397736463543575216212376662882422375692678544463832636708287365678414602767864129183120915751907037798490265412737785133815187601783758673154232530776185642995138984548452093032190592947865142223481141515322490361835898347260006133406202738719217767911317735645103027335811108068302826286075953006951448089195677325776062882682132406364338754292503101692651963689040717490869671294608921766399636434048314724365635440266923755720114944410395377773680519008092941261411352445133023874449269066029146212557524894378658722122553195711005159174099100699033910039152156641119579599934324811267927739507731241764411943093491000422923014379821958004082851746384151503126813393517243284532076000986866494273436337229315194212055182226873996833606221874689717891803783900316854495290397610261321458949589105753275626876580264139116195629880073723177454847730849641092498353602489012700388001800387913229777518559938341460193919223373241360815289640399605455167562860553344376451292170677642886681316965649275388941364492999988091084256885349008546399535355164844481976265342840201588389295397142594185438655008086867673179747565229249107993541722027225524764073413155898431109782813817465613137422781171561414664287186823917196809368757925048816860406921213308356749395461146635741199278428581148704533841861061846434446843040982692789018999506708194319907093369994620818150039472835060522824720365292966734897320817635103814924082110537396494459716223429662836646097577137485523019287390539551854492714639221072017010546530937694890652217411909669891093211885708494763112025176551439434065596541870779091694958073226614157306095729864805439520614192070490204983009632982729510775318201447337974136221727566286963538348853985998510618290786425409347833722961529208508998427035417576873087637627059511330873375169970802496461691676359859210790577668548029036743922975501890189934361532863014151618056004333504744481409456026204152160254342821400376410047637005186890474007472953292010144991092911803504868484029577386640008670703123235662293396167550301942758971837615810862612453587859258636730964157035141918980846376915762966041235532377896743895396461341273125792080685876995637021654482987311814713532737771177165545347554868537646323892246144650062031854402935324147939770463971408028649771498813195339182311009666757180505937706891415191076476081712692337413819214188258343889728380554108006410690659786450927326890047781533977918886326328498511856154235736204573477115358430329216052539432009755151771483018052521892498371110410866532362569453022437050658637538839065537196413083644810149015522036847462939989589966340388389008264421558357771176931475441465306726815056821732800070853339510501386782335508872963970625268190469430453685853675363496724996003577382483394293338538923364763679162573211077889551903265055071574586765238990745010353097431960501469984218014346907660829792539330640143995401487903957365878930702577343152802087681580070394332823137915451455049442568302641058661355686765555930856786421340788268062624355112740200556888835644119002277834550663828626674769623318660667845425862078824361875369050054355850077795316865189088941947190340720017740512082078326902837545583227426393159965960396399692405357352424032999497673211647707514973810786030965494802724656542703560883049837110478882461740313721455445671384682105177243977524987435020740886236969716049958680085165032603617104424063372972880039845668688873577085650757979628665637155743437759107712639694867370564469765827127546846638758695794562129950887991984665599129781317171336452812782427510242623433081543586052624319808522565102413812020486045558359914515309740382295269803857348243678091061788363219996525490095094313390552654968061869563972640663725565250679432895330300900134803278986959160010086152915825630910262948921527450673442947725618577836241762670022938188249314310265768788678481808656603756356598202553667560833938282676119826489272666831536455646483617528671412566332499740327532634708944943043522848565944842051301057964119570302630607700131661707585773455616237014893160228979700620519026678038954142518751143466645324632171250914787440716562219517476899026221180669920130657094491520859423718513323100672453473725810220095651341510081932817386095538927098716761573579018087763991381901854142214447305433092029945715322093974402010332048705780509132382502844502575223156958251165826771234131047709010931694417863575652386379845110986440596416956142466699627988268635454254786378189918852210692901762711575082943488933055888247631310650440933214326550884338010121333537448721448829539151414019012095486666854803112561269594258066011857925574889057851076236656955334634473078022895456492484842347666678498321626324899804795527578188385658161828037691791101604297060384654300760824564427758939793339280654181376445425936972912579297243360655325164740812147128515479309126471380311346003617149020504787722549220283260273493512388864710684955950036430669939627473078477110878008250859294798668789114315759409454196813059580013065664799527963630717129661702099866441926714278014242901470451701988687953253563347293225276899077732149620183283492436442424697301488847487183499593138548063042293030426288337461889722292919094258732486761682977218097354739790440063838562234706037937079849840818087070278996786824053048260478812660582665975042485969568008664728985185603377794869182697137740532835166537048164142154070040862262611700141659285283492977522390445736497333413554941972444519651516910759591879183559441062476650120073796331600369567359682470650028630352258284367712943942629870251498315279121874289114347836495261191175928963882810680460733765837002420284414615917098341924423982964861117486570963798038969598430579260635046861456287174634041167607210941919919284847781257258201459820493008750409451889535147060749156305179543284835118450992827458632812268419489394105477381984316694024696791737121699779929002812013733542473100737628781613639402713898945237884500881834126756146557615254791176436446117857596191128494631454414083772082293322104871616358552228104828427010272848701325108195126939511430473257153572361199687308375350579420787213442962705029022831585162961112502146834894332870041589081610973753792497764244733917751746922849603438052304088806828207674636876683482715610503700879580257739847438634212722635639007990907426933797278371685290721159914855966461323054841482338801742391856849594701999711281440689615343645447368750820300930401824279118232421499168070171062106102323225022974350269124258706226307169981192176501987571096459781087984649600467467183154903032567461416998263766772068646300162947919142326207405550352130701287051571578024652361955037300172338231751209210792827827710390329257191385441575170249333868983186370606411618145559275840671189781190349717249421533721378405476721777085088661954193101886922904436432116679223700395992898353291194070939501300954098017457025069438274800208742451365086541145816473236967357065848097765853211218563652740362063613205759169400249824357204875735754502175635868698038912983810498897368446660671078099874272472697094468889113056236224675313421033078349903644379793799988592810068630703679462946590928743610304576922333014075320236433941935566072829110354561286669493570238777394261336033276459971935508294683180595276907429251382088025890977713714472633271089750084670380084626253435983089128401741607922707478207257300060253336909931569822745386548399545588445713265731817484562283754321023346819887533449472088417350305469171990818501392598088908851759584867613012394294135266117032403266031508505051120303661572652302375159493867001961775159138056330118945743285202527166009623079561678487894480571151427878009645808233329323681800956316306206519293403444985655516181958695827516801362020168648224105568452094479188648885362600573059605658799663736684775782667858658337524422860277384157482839122570966100590227605778754800816652648439508539822896005464351432085704631745893966137645420427622105551616950206172728768957357241531639386074933583666810283390352788886720474254998385848010998014342067042520262891775785463543077655283620686826074053845024989393330583153681418410295913638218174012215646583560777647541698451340597550621311163170913258730174885360111340156720544863558181940470420813868642905131238441099839531144717859481378066328431981555394268262799555667855428514254752820246843333142536812790769575516171640718889724704165153237305355495993922259158750198086703492612357505983041465982879782710863241898849406577555740261347276438175628606994182249148695781420584057329285691799378940953332926208378861375387022489877085199918281186590576940170877899312196476543495263006807187935927835126167956090997017630070950213001273580813587301645392974676885981606631861006055694077309359670171387400187852418527060253156051672602414576820622429381201618050026084447256468679998125250865213525822777828884660815697350571184804649365888243121007314108791099187469957336694169345446692367918481395486141584475970588824064542158553679075190645962033426396612199357420435514621026207565200715259837489557598510566293160182877345243906769630805482453064336831932512560438312544901217733135514680254162857776870494822895829034322098463025156833549662112487679188706751306485614231488838346905665915560927015080122321390892553020627045978743621308034152297832596713321670298875556988544516416769119265987411618966595898131946290017520402936650540628696718231982213734147742662339659582928666633852725349815744833280494441434519939123083623587792360262916232511245937052064748624816948024044357866986066485430193275917815723871545764622838106052784772993787383385062778411001283715515145486661339982720093898124840047865086333739276906157367804210899537679422726428583676629596574177282983513116017928580562738177787619898623213353797128970057950106503621405335678777870009803592608279545915346390825034355698265619616039162845207344255774667437734122509643857647527490972770879211906644287796621615317884985135067915244548549053908435917156551364508928283091276674938401476230373762717259074822536152487980883446003417867562662113937835843277703156575426893807180307379220709763326620254333488608793039645128682805105286669918319255035341993664638783691430926067972721085368834225721228738069409054730092790551936538896092412604555405514141085828765316933558430878688710094840629884777100295300552623255916905079995520973510024931018890000518081255452775435750559471945362235904046533396496164123103733364527634153823943182132576690959620261839862244198974592409230801820827178944491878335558074703162314866750914126073046408727489497723881814385773508234349454271149454252672704277110825566233704015637778064644481335521092728873237822471917364737840678969628503273209795151481539754793036680799575617645561426171307960357697126475277875820855435864771872756585385384089750359990193677944704395659089798737960782875903822220745984616928510606278839631709736474067339446705826153845854979083824929587158946196676723469930212452912050246805388775527468527811082489708086782303641762208318627899485514425733467944927946766317458028924726477497923252021474097130929363166883628041769900334700591691688693847611553196854777452897113860385429985850022130782150381906244373826404393837682290654841451342875082742798122544155757328997839968278104727022713631130546706249568775109737012026050113712698154202698796536283677103147837098990296970587027945192290769755856199891300196409068289401220324953460821394769155319286664444403466584848613931470922712338764424441200724707727018334617480896667748397138239786778957585036984424499513526496098840201244173331629911836034776567970112581411791161152663115337374454157108635231859174898923057284732613417371406930337820664885272835625339930847671893787418271357257250515629016067114943012571436591962985484592782582063874111259795248323895841817560736423064106206982511661081690503950471180197044698632451319542118350879800964758850622143759085276233734003181039623774889041472811509363388255666151345496118203696005351920590610984602715154346323645093539583121637484869301039384279583908034230807837381319528289017831308990215937302356405145077124757523232785598464449179403281719022291117925981190580355101373917335982506147978533673606159928238337522824418696381290651309151173885637714324132751279688344152368284473144148259883335849917618782005319448581870159899122275764733070856189128681425910459768507579345024275215668387950301462165132046313117900249648760200413707553374446073093847549275494447606390348422095790732038306058016204785317260877238159131311926557677994691684411021016873300068073875557955048516608190044300876119461007746082163374527976019136909678395713079032385850936454848423492939539868911541264312017275079383014733035122983496085720941379682223233165202962596791406204827547387247283349237429211147603195817036950237001278679789114786514816879598489184221252832471191544433143716865011663398940281685155010976330083373564337627440747604763376067423773919745713427476670462757736654542372564221045008764490347349782278791111653172877470566680150813865738196774923598957424008133829277867853391140759811618518648491795045122905804377337098583254082753108222500369762489787490488600598113277428408331847624418408194149557533506049954439780989785630681369086976546768425337308895638880230049741710631761971100839890971677890588719938718899829704549076771221398511625274625385692431374281277509079837199165612896280747245430705454689551096310879569889193148477271744478648800093961635023227685539367993421238624705695709612192892716322297484475090558965414486717496415953242970857972242533988201587058097070250641111035736213710989349198465356691294708016741101334032034579000114196548331431692785371042821969566168790499995517115373593141758815493033108078201436194716458095525268560102209866566864508483150425161060825391760200216567356811385514114509926446082742984644551874620963607475818792750467068187785375615869169729159144168754141958829269818940048238262265298463957375177950949971637365800718507466895892703471419376478813636600482389951342115008164358335312614365182773443403337547251350522897373873794541060596536406892001841715416585624439248745925591260937812905578976629037423760391509127338091516034658491728386971233848674732779143953373715642236166308332174821240131854028148092327251625432318584699392399765078347084266351989286087679410482778988296160615453543069928547139297765997459982771803788418324870904746395672517820269415742183681757654261053786470109112450536502410531114706165728864304460059850905514431750318009337612922943587081834968846418581559228297452591268835853632158171500716914934943551954371783856924756731250891443897905244248349528533054558981067343401829076699867457062627638520085351750976349454690721092076224021382820901488854374275877520723456673742104405579531115220835437993358870551497698088398726940602270996692990223706342687006875259590196596796901845789960209540237985107761511883153448248158668820734774645207027258968499706703234486697969047461972508908041997963328293435031350581734058980879450239587769290795298721351432559386169127136678574147465300219689398742783135159022166977712375534526038019668713073567048585379131092156244684155612656038254199862984233369938762879071604062844560093786466581344574421531374896957931747339314887828522654796267670165899030637820597556688347364626523886753000355018183856949004701134036347368225122459288961486088256157403692987045445334401750893736340041278006529698573040856217217831883573488542413528070868024445718750546474251810815410049595391687489688240197545043298572041805145178981761697080752461206935441883278387490302881628658286845241935957816156898004745485925108314350176453474472624316899273190404442627933907859655949950842817393683365103984413346016822974396475476229929290324262600284909152057306009977988365802786644795238932009953074708852204990167765753316817472622325986396853052744186163549084767741754376646115470068103236304446330411529057595514193146427645927647038232994226725219693263058362569789519089186863859246965086339160804736739883691306741543357846435182224577987947246401975101145963719653017444665016397583545856702179955409267520839783340910190971643744681169379106421056308943194527453167590770437533752296748818744190327779796721375502261022770175857633238017969007381990392057009872867992196142418640001277257426780959660580675876881480769970623663032630600650893301643698286281572948345463179732225904221344162300729811641880996271651806033460086440356847973891711867388199729942545541087998528352671886967216446299906323662991125144396678117955232027881328197562484104261217908508195142998701158423479868007890737924994414082243775130432293754120508576380410331342544851901661477049935143790172578641270295093148031348042823291926708084917439801534721464717335800363782141540354541051081170220073100402569764543795798673629087578184548537965595076269784773645695747125563055509984355401495185652179174188806704216856179617023842526148559981646757790705455025962196495765523360233950959787498582823102259599362444712268607972312520808762262056614409170473267164571160724352253489874572317585105693209477881232696604941798016727786836528737172455280137536049210068973579991392873719419601098403088889793017004585701861322985876373558380044375903638498907834473530690551371205543641058516769537269734097494386605451260656931448006825978222014354892147610839907952762746096191200347589481525712087542524973664881702457331817319305821232602492235001753917931240546956514930429819031872357977560801304152016321207979234135530263631569770421127551216396532135549778873264731118007622003713762581369465044971562970679917698381364018569167229467413985649197661126337642250250235573665039841195100111262759865882898922183283141138654085218637144245375988916195892249943686574869578647228407291680192674669887645171853736153562468892725140703277291280736429672304150333976740980704137734929135311949577641541885358838452763916694559873856071408750544963043850590415376598929885655261895005406929383223543178725032389184676243336321014031808044835760908434025868165526488169895542032306392127880967449493358777915157059419952966543996712490979845759173106420895910048682971467343447317479909228180838737371078959632456442101796255248668321553087731590300890171256848289956177932166347398442404602062995280814138697746656027338393422470024529816696183352225018969767522876930608661051132491056125207296396411336991920058648330027484357649285441705461647872421975119680238414645353219559972224114916322935746915942402885037329362078215115119093450427786089574372114090526739487640631095425736179578542135085344685793118065856174936097496834742733440808069582310411226500946961732456813769771213455681207194635895243203112227924323508856702081779940182164074378094502347929964289496479420317955446158671781711154005029556934073344791546649408371830683292150710932860048495633428877736626767444732434970368453311269471525218792734785714882891040584018092158906771006760157890738740554926989927402707361992263423598052396219777446138758886047658394548308130672613709635746672757013861721427384490375056915404274373520184535158388940211790306896931526672624578896894893644762259954739680387951607146419225499709094857133611737812141316858903988970106950604105801041199745128371820695627333546351397556184586192583233033630660713344469946262964275161705474328940351657673971406822921572871416050858680349233466720063371725978616820122910602713611106709506465089627042669702006085550616416276908355814887961771967426646402310798649226643842014455579969181815488071143178110259952111998752376462365090545094930276826060046558571454551634930206363489900770795655345383538557911524124536962181321280968255424966004752745526678500410885295343265192398034991192972526330532018893078936901486408978468026590599835598370804801528491877135092118423390419262674996232325737208603641643233934335294951291668152367650242513720051931854733710381933635922539087226221577268360032889687800232506085704087749581847747736877477056476398725628198346503929842367531609836662621933715106166346748376974563968250337920262622656848556974316507554079844221838647635270187903999035838521140927942571539848436406949079292051774630670040649921976124658512274365273251562920829473594705304675491314837560900530193108864497241981767519855487473360138880355494894277768621990509039218665093779612365725033158207638618284545570354421007890261419626317075312179386032971593433713928208946970540909500933915325625978941835285343947695012798010387865939321105527905034461016518405799990816524511686866436418341432104610978381826483111399352719462672446978944271507975968159234687304815238924297488813709847999215782621201573819382081957560382971377784401394067921738857079341672801878998286668085258122305145164789734601429023051347348061716306432325347889776408756829971181521196980754652784702364424066027894765863320633786319841386630245059528392257448786902848236525330450111055433126584561202177358896546762727222757136676263165956384662738653046443502662535965323625725592572602643967486743817214636143612188620763813309759960979610034570232273215751862965288153439612835971328201544683535564864476130148095701140536342137653382357023714593926832147190797738150621169863495843560733927230794997862994579297389291619248993723688556220454922363698347848595244034934004935121437065506112679524044740127615221575434115381335265941184788623543159406242081065487436345031308070970644429029699025929047969597087610403685784656525078345719364000292314215799762734536876220738161788387518486601380331621336479878343998205684449858400308217617881955040885939335129167938017816500624056405366484266479030516755576581474876963435838315855971731269493503421913027439069659233431774761936246132702692091522145926029268865068263514078322507143962761988027003984957464606665194408809062094016229883617804085869896523834006600738161190788358459769145423616226320772332739893045056724273722425437247509044593571265521921812825253678415814825792093454576282118567977001494333825438515768217294751194747532558256033317228782506218725216037654439311140360334249036905751489585892529006674215570678962967284515022106855439895892641557017190973509218509132342696619542505202256924455754142579687838652704177931979037882210020109732908392361548568832599546364226572557231286761157319874388955315347544968399676975705718344164331647426599535297854899597946119415647714729446960864230368055832104476363810564945975570830663937282414758247491165309624881190899070471744026974897896478168174818824083854636732455863911623449563977372133864350426966627596088851254972628732391054269075353897670315783443774654409492009113015132159629336108977957659039545183694581719031212231986148153225783974904005695287561278833127153329390928832561629093164433098569722161319635250094220526561542836377681182468237538025440773613770191769240883503028991633094084796420094742545101337871344085166635243874013832466835024518525437216974270332493811937807886111034345449686457661470252293863086181933714919060938668783626416331035022692388118698166428507752855416320159402663294408324042791604463357131882362820401405448925747109186855295093407266345828626203737173475774152023437111584494378109636265754702890492623480157775315731658514615118695830891802091070125368421800743582109927643438369239121509536203538584622097037536398330004208243330594239500628183392173800942986525750602351537713860399819949282791781643311360619580255294026038370086734884507895385754383828372452379042180735059864517052526309322318838780643097402350492936591918812391168011597133673235915961520910239574745679377108372225555119723629583543788192048284376597010714132622236557828235529046289094671343615479472365132028577196051620817002194649678292223070033636688420441271642953013776831879706651828639871964909221988472699647739305672537332400674015248590735166444732351636309292589428193166301470409226469577095449381849708947259393330322896986971285406774396620182121308784503752653503451754835468730455547037414415716713750555033890949249878335753405418122335354523749304649299304996087219011783791135781997423308533313559137877049404763547764103369288698969045327609396840490180140890192134501199405459241837194343875821882668568900216204793418258345556523969076451149615958969539387412748560441574241181028941235784763808402531579692177096849126752978724040291379980390487748347443410108236847186688969706746707005226603198965311144571121800424804300356204822044382730788724444675669671770613435834945186157022343081392378318289637258463039244618902851139723948598046811783817160244232885709141520023283051882924688279354425255316295897052115591243989088473024773573786539786942001791256908610960432734628282232423659065274058216482129623954526090489490321916224017529293097863658090166644461640497767320572454914760526558963692691300598702412822152796073334280218997772640994913740272482014065688565598158578224264308520586048094082840050475160504790475889706907705157277890890243648420793233873297859609385216720295890720461779902561536256395568892596161861676692459126087784967025806205062027598271728782756993212123780232456785482883411151431620551579835435271525491867029844517848371595109646240183069730026244024194118854393726540013901153739982614468810017071746980598091374606251564794893463822258989748770146715051158611472594097647374370995219256503892285255518202848883370780237566482379354357375313915936325729917865257983335168569447994020839031116803634122356168035931753542441279894474804276901246781978075742024092716073343182538334512769143624542345672175835312646034243689126545059844020196631297988924672307759140960466858123973545608632379788898850464623469805105726160629711628884660340103703092432005688688239887314330672837530755685265916345518327762029667327786779558960747947991784906131792602933850659245465504450410971410739548820647037987623429351162062770335213649789520476392038416285639206251213609224696874616026227654613518934279610054145401167231005043161394227803129038298350300548812376373531420086886383392337764631181139913958949323155670134384545487299423361601290465546127467308752632122083711525545169462712400101861602953434648132157805290192741116271931045846775777200773528481444150889461541548363116535991195602295741062533018551758827417044574329307954193330152691439968596939767296872936902018452032135777397806525602620327654107847939521469364445210258044065704176571854879719243723562464940099121753217214687169215786985482858408236757509567197453308882886021271011343927381409123216434424152683566364274615878354465611438530008877390631795580682041054763139974231383828750120238770152391541631801928719391178914082288565628547476571515804356633693808640316871862551215914300172004688640407702847617339401720266014581224672872695111307820988104412417068858116008336407722239226147863361585539093856736630701227185923992857939214676152833412164463210706812356911510791275567024451050547793314677799052593513005586123187096124981117542812283281336341231670028708094250269570043067410099162284796312453850876192161685785884531853976810924250553098405190885793062649365015907888745446151075066959082476541375821669761244576353494044765564068521650753399358044563048712487086952978903099190743919340450395830825938198592189924768504332261448024541395798258214166108582002754231151638263099420396762340155728937273002863147573616088175209117357375631576801742828521837703050528514575050597773340740549454978943929598782349577173550660176794125844652198673006201789464675722085389372399836399382039470571158925347615162819482606611508368817454559641759656440727050173102666655602787148296395195602105442794062111990758715319779544844880447665484914531131619957248357176194213978859311702982853882781499096084749343197329919193322833918353271980181643296753820695078580184702143912152924748960978804078554245762286895838806163031776373461701644117596470134438116862206581565495125921010365213528352374820594141453714378162962373216061263568095433723112213088022457178930816577936141325722830350025215571622565899397827172210228594948713728730836429473567482817441094908111767199206372176995700638867316898357511083649098194025166929122898733421593558021193730720658707912712195785020157636716632686637265237108220744268880893295438380491431011166533239125121830550799394517197386313100564419428373930745333551133061073136944994916534795787590942846528431749564322165995822657941555502321712764983457246055071113169024227560715476572137322686410355077871166150951200258464573131137859430408201098732689933455198948280058611210861690275620396701837248751336763793997462514958681748068497379285123982687409863147394120367248335399526558115792311218865389048207934383972024531580200226861477312822445678012805990646220150720316796552967246643213518120589636833530687909258684997389964237401132491500292635224953239500688908987721767634276294545999300206525465072349845439197620059092813055733631867266684652081474285326809278184983520073758432367877627682215863080378333362686613422735175771018736559102325691771835166049318546253609689506196993457713963999344451520611908260974413259283779868205272300774580114256425121213105344751255358350429258697076300909958271995455668671654468078723281467000651598371140994051590220984935146045391598154632850739590105175743996064835300415345174931848537919334455162797043454447114478664968600620152682844829401738339006428902663407344127215390901207947988069983862631184671513109171709969834588619489231642801593241787582904357247509553291728058384564636598279838655996548667501089315551284403110627632452554313587094737750048287692905284426429104620734967089805438330638650459321411795460940435655657591625992032239828455951002776052507365358342723730992264380662901915263405453157833007583651303262570731738199033154677546953605904866934239661121151987976229022473370007996128190259194351752608167316127459265989373060846413357450318563541564217549497795199795713467839317339509875094333429530543063927884642847279816429339248922568815869074518608650014515935078145484442741526269504151735651576439813441712156805438308756391311763051153150954169108445313117389549720891980307504482487776107966477585418955494460028054589334185271244952349481822922287700510687171411184930695969843122333218692197749314520886363853686602540787229710451753732710704159458112195556239827141293783069692267724605826981287383941727191103612649011393889815351890875759439400911119409865319321652890181239450171068502785608266715016679205838263827312404309242652151915888673481094864059494566742123327353921583168613963723847555186861631720681971458718644793179827759198539005878077898069481015785287214264334311736956972849738371856265948728297463416495002422099776169575755878919766813944265053681657671450903480472497987529498978366210476176890379179995019536890259699859139178180437815445698913859893238100094745047734783955564707317276903389055921989702756627476663301924552255908358599011272676788085431197096020681793614923116187912556590494514098951713899853404792014770756752665228532014877233663861098913108363626295032967772617531468367212722093599055221907158662790369067316863276952188238234554305311992604086455956595229022392727857070949716085199973238320275220787418634510202940414651249893515184973703791979758623823668146410623098904480824930236387426564202822970436592410302455182269076751338094013342067397522702233020669039252587944287358082260704229697224274012649422761258574773066645152645387664588095501697925632945597040700756121120457821229521921586407857927471218326210425572448894380044426365384606157712625237328873381207285434423876997976895721562959455088576697043048202991259511315024570041704186096799896833152384949427910243830954457985577682414725549617827317539378308467978279681597761037913843571993712478783776329097323225866782446353872667783243842927447273944565395609309171545453845260788393691255017870687480185045617514649445341967029468162768938239120101943983721427177708221144779513807574680159459991440935668271606910136726560408026000916942508803443539525238919532679303690087196428188352975307380241819453860325204551240220339334237405371271496233395446450164774785307117293898292646677684490125310245208254792147240837997172543222408176989598931522880595961859799446320239196249927682451227768791476897364122202565014923485458194560319309218272120705334461180123377020365714201643761047110633743416613544807021461878248945460467661341014765867092102474297950973844043412141458141211955164630171677718080989546270818927554250834796671642107123108820621612782681948754961655663344488449558357916214229759856293823631650324433221621902989771970807627911427873901758307744749458774393193683514631119292093805693985722655952189370494869085821133269352137207659507296866591573272653033724425451306759477836237545117599438710754392236931571165403585970791433861237232803282229138292008031269092913044117612055867407300550429082643848172599019005544677693607398864495532881289786543040118983983517206886088733167279976405711097884060819520103674423654533482444820712483252926243128345169740296794697204699455332655116683966533038422563046202539801157201256463285310580667066005590930435382261047673936059244538068978420245498550486060650747041484509279773628818905934361279998878747765191248377911055448730371974670097456840753100971019935727035054306818069713780588807365719934756472752811482803896131162327758491700596908627628558971443452440211563566939911998780533779061154440101258230667024850960677659941221244978119334592299643777764828812111569993296419743045405315977087273716968779595354927877481453393161397201723471158213700360102728278917450183520200555464691361264430742967510569015791537782330809248829401157514481402298474766360468591571611086329486415874894861286165400643502603527487944427543122844126012466608410674946607441987014439546968380362002867934210933941877403915236304736764192022351939286954662195283905228977019721482316853657132544153528446448351866325757574409510989478693453361366608337229208840002400594668319716076987292316759483522343156396146170445360405117930265189991987195703874298512012419833097167539321881387916599247458209930518292276303066072961651883560526174869416221518358388903549968134640918522531265785046766757539069318186255318137914208645380622582472089918441430488010868157392641329127139718151559384444570597903603295988792643554778545042557760976852591550167683203202279534271179805654375154417562951010611763808826369947085597146306025749500389267389641019702442900249183073730635355145370356727532549178218174885293434872727928454840267555349294286835827608529736472639604216317330400437951090180711931687608021860610423367927324041083624825653340154690055820725592769936425765496612111705609103321877460623471082312007421395589810413854298074970217378978711089767519908033818779725579386605760609300767303452693587251767777300550248982254135973194215040363064750453887036524565796428456387375265264177620873362293610040637354148907291422853368579335129755063315428489706883455792722338996039279999925932389320534687451106189024177709909991201598281036347370355081517785508309814270156626747726033416787653035431646998384127237965351152864752794424151746347815869347352696394010580488900906828907884490888360015930856419425939161338888327087255897764731397244262692680092195859222501486680618052551862960377594492927495453323633459854169385879525402540032177710698104251374394566869750176526687544174000885799358591105169331231573413696181553052996626078563981154965901092879960014393977989135881675424910382120718365759473196532599565951707117774671776126361383299672856936961781250116457045966203741081846839479597875677716416307572201953569010036827737944069269025134843039188270495346151498602050637021375595613540785806475205296406636141641255364424659962962783129887656120057595608834040106121711557670827038241064363398342057975639188605356757651156370613704840705646279344530947795774129526659895539708283745689841374894120084363246468271209472454808390841829819072802501829646812397559394775636339335438426894751249208611935444521405810859555821136238470667866897128412291345849870742705185594718545601414626367809163084953428126515383786002818192570850362735924480527262431068168831926464557345194493710336952849352596472473345279613443547585924576312808979302188972879302714921058538016238458073094464009981364174459727254607654374856007496838445407983980168955378896679200967455687936004337570188929167729981116466366450844220881353924151067769399956555915790802376118214613422239913228517984096649245225418649138963623318357370690409028823238952611698314300397519940294194886572989660325237165272245906221922962583681046540987431595949843644485841608791400893531900933738400065400776698609870601961418974576812914400532920888516258059036814699649424108713321012095580592895937300178472813810377860915623170519342090427995768148462719011986387717134995818587132857591440931186768748035653566008740607239464314709799973398771360733281551989190100719450569347556637829808616447953912213530329357013639052528829799419226083633587947160227273191326005620171006965663022507986924746109938989146055016441811352602629398889401990881412884318002688637621623869902504647998821568276699132660585995245922401302678364707512441243180753221988736685643185203494409461041616470745128930273275584106137793708159031072228000196990880582163431521735042905160484852870158316159388814299317694172719922661996454623531972050103107318372077729850000885414286695964321288458461464617745954966419152764033748347099497085254078578406229896380300863195814011764101135888228524172029716004154129300550333455636593408843312135126197446777836492015088633300160207507356146779101973474491178599917754173150319104287999080490012201617536844681928800555128284369674851459792637763623307348062963244292845415596230497386965137225661451006683173113503800506567609953453877554535529140977978984405875298858183681387954064262881150566464293691338995411279106337270886209362963172600589566404680883742208415110681607446043738498886796594525576421356940248643970009765821856467637951444273916404878320427607577976476947902374795191098805848788073744051459539559940682139315541925254929876858931231049608886092475130992713290105132937692246089795399791164908693380393594618350588086766621568898946024047061499563283531286930692899077770489214604494422855248240551440369194678403666966846277657109940503202882453965200657899662656735503875379605958230803223829853544351661717179384450890961479240218834035273476334937410707553151401072169234910433772325113365451567817720062471644605137092932525468178964902891778562451145309843949794632613391532658096359761867692641589419517082497145782828237354995580061372251703196314023741420014723978731406493918973197707069518787594780047268634596670498274684326801430306540986080047310463689662683302001758584517559292070717997847892190692673580753970731950664688182602164855542762649135368012474351219125184457562063998682080242606652292372795767390215674533516276247549519678810752603730399008452667626643070935892909048785630182666360021458345230895882259570547493574481941450196136574640311869221604471378190102859171690667613905297022762337566271927247398219592924168351255472809878116572697148242417917360153316272876248998497046953283310996393548200177756963075669858780334596390860056184882408304232865456899449072323070023129647947573582998747149441463064146627826356882740003232427784873193994647607357347294260018885894191840021117628291435227191115938977790252836964647676264190870171904541496145512455103911675489879944678025451043915723240450870007984818588487921343650836446114668319424673060073136785151078468347365205882760974506759895422851859479193146670782756555811410498965265190426268945085013350271945792638920739302968892357001114253686160417087833305962855274037092482127489858376624486470905503361895926518922132694622161477056889752193395500203024211800699018759092826679811290537331785241223397025417336772481041323785225853395297486768705030852324510471440844573866263447893430487192127430845882837194415800338637425869965306565685035801624401627526980344485255038661281514648847836252432049314278484441449856093065687252121482349989557106126418360526912945271656376399091599770935901540047943013819818647176856035250064864484916274144341516218038310544341078662601365724960381609850633095694735057650642769535029231744868411446339590522475756872925384366018099977249262005137339172947735803643605197815615691912688204694899841711099511973112473441233475944148181479063886779817558101229035206514699120450814749817651596600854984942153128568255200240403528740022154304869496711394257763433479531485071739441026513761828068172363574312150107826695761723972443364916271970440622912931689619659888495140415310303155265954862250328086816632513777163433096137423642662430957799013206377248652104800066184935765277708228278029356646467970599603536503829520963345132089624880662523913471578425405901248694331765429609545379830353160002538210990506721175487228295684883997976490012680158971649065615300963443904012232551298043740419041295213930225636292920284811228991481781358192486255708176526644337944565841777348083287651787857108147817037537973711461903989339645279938870450979417499066234837076110617798203190141674242445099538793445388323660654522453678624073142823990533123654621424180651247247113818098517356234584029826591164967512480991089627792614572947621007016251342132178910308754446512741688216361507742124180451017353885237944643229890442185210443964256652426420356841794959389337786088864221454264454190602569049492569264017671128305181461019190334834689412357031116092242915353648548838884476549388445436651715239263828757788500031151504595888626938390918639431275726180156843875258822059140225012632608966898206296862658904119535959143193469468322266407717939250603759259798808909820213910313790422904907630169201189413583611375951349479767775537693251312514821671916830440874975666081691919615136755054033888729128202503967992177344812667190596373024059678378233038064540138121475072779230126187424326739584061331500641101832225250519713104637893079227316278771678867249606124053310499506580351775665474438597736124272605613054751095342689075680271864824714647525954010188620671681585863784001655212981415510985584402728257997666650451967484180652224889433636341366250703021130948341092925913559532436158588140371452475297861700001199565763322056048478854198690942943127041938168632905805554649454430053307109114646986179554950261070540061344539201761289418322021407179446161384655705119845571714074115994907684131361629942918506226667353470851216644458889852831185216511183274050142850687286215845266186589902989336982279866250562696070241167640001040847785052954870371129044578772591514806751386940854288218597844439685010055634456248940249350965851683838711528831373293612895644189103119082700348569442271352183216277551225018254851273753461523104256079559652714241969349060494951666808820709785793059960083373405999361083151478368830485959276370094117854766477521453504597607490419172439422663438235596186449587848278185060094542348764281525201220528072944043544183065608331550709918326953733654599662838788836795640262947605700780880266694177694466694720834811706898626600298518172622992241174207398942584036151368650603971849593521757494953095754688636875771731857846600493522504845308998027591777024996421996105984382353911563974599175856088887225896187814430288184097035082772350950788199031447747446441675294029766505812769051594454936418688364110919982797889139700821652982460823873368957813558065193570264476351438364237548617807256237864284172111513721698994533400229613622925187331452681030161378141134581905886508549246797265896694087530891945207562158771963335521435054502892831692538645499637412144678015533153752649598454553477480133458993801461377201604814003833845597462774292344097602207401525276803428478409478789036517911489479854080657182313088922434090190171023681492226938285973764026681609954738839033881653400243560453736120724982792393652984285041104992011999184836467240023814322921210747279556734585769665549949317232135765633590175629390948185302495241879787518668383315039091362289676632462781248150472216410143959687696583350844949315907333542478817332241048539384622246544315795762719739074165670638474430954958078088154938246899729265224272321873375053284702704064773541024822376407711417234840245993742510757527212863506505572955379829387191743427534536631985788456792078792520940400724113394200019265708250192187492472668487594054270412438144578584734444605677549891572798790155678352465316906446284873207676581712669736732992945924966624215986448809990980467047163334619570483642225076888989634481961477140447421412194771424903307718553919393187898519929082249044319149765396994534321352149145508569916094618890486636964547738524372017066853288426760861041044769905277572129957417305656911319156576701839241575049592847111223396893658682166610392224665532648902919260863435367282911406567196098705018193849014116152416402966430270485008065359993084796956136842468190412722676345574493781570249072491667398069850671494287737407518174224565449534556061374800377767691386677596285531029216870123202521505611412195088897160675825113942966986784644646123458609692160256191007268819229840357703084929306853401570296003178040377832415056158573116165265045525275651179208398677060837554940153820449854162176681821941822585898928615759603218945958755132663005116735851468617607203568489468230154762683846456751332438052776133104612834642412006486522285204407280054334091503357403523614472205124068519924094543494719891146493605507894201867174581194611749772885702979375934550762033920460248457065033052130445607860737214055794594634671247590956433431367025072115281694985925900960439969892627792878571577928423690754697562956211195735076984675040253270214918293854355178886256260857375009820799765616437289360329877103174040504116087087930779013316032627388244457851139887199523381091328318610694035931491870510233177592396723497591009239660146639205979762369637449367505834847951069653260557887535349468268842317643221129397242879714566459455995482703962676101916112382315167138974618081763258243869257058637944474862539254626070491737076759754628852511035760380160870586347888147079803145871054701846687855616392693986165906168490105405947452099214334272056039238245336507668431475247788397722422911985220028731260853256258006169399139319867311339900899983835406992692117781855661410044790866306953999717778506918834796706913920674229125328981801923771797873379347546831476787026986596088267612679926111076012282297454945634159291377685775962642764815268408884610994566408644879567115669946998369930675451032342878556229628533877468243274300420545884581698122357065900174987669334336851517589185511841297373034777440606014164550038859782865667538537153498144507390271266863760356651375889539654145028753959181912063636192600810289747858229551527058754308434530320855721563028929872400207668171335081817396192441227863376576504530417074074647823950856042972914970336794924362086497670039140265852709199978728293917838284407873358036971705281414329954150130783255007816642138855378426891448110320124986600961635732006500441387214630027745945510702780982981943108573118367274713382994232727618980792222535837420762928113071308880650384390277470444458717493051942908770801192654728892825244722832341297073611108546977726204900627765292323436493397039058959099780041213132594470398908349748774036252289514133289046738094601188367856245450028370434675892607456196264659043333926364687079027129401716905325184500125699590461835077147477810378686368827205264003352747015964095135114036233290663271097214069307164405339323243357894277028569276655192300044523693746280891697170264145999369193561803922400811544040261465774955442029054717645861525868990464203487068817824957821655878189896706014540609002992855426654046403824220606887353775527043196311140977333435025133612852246695502000759780453952256979035656780545993930896917691370987598325599417700972574353339885979368341066636245608790458299574474103454196971744258213216153963691818648709165341758218915817675743276099917540984958151244417655730700948064450722086224077708431103899913768341720811634754157975977170800092815707340013018454920701225159473284428245144500891507683366447399578829583208793026630075437914591260227591898173014292476400724753925293692995649959212325433116016661887110165101312505209842940704044728209466644354753163189911625856834141294632456036148564430942881205483947590087781283843110934271716117289914449195775736558432844354214045685172217338607009298003065375454947828920907585054906230210164655882346009168576944503731098660345851430647221222979344904247535214239695778451626766840086728789930905836592351149019644331752502832484246339438791831752396026048026357431877581133641176346104657028253208748898554403232268313067060323275589162392819598140514270802058381178466360425112267014427274120949678147683101551270601762795747977726891177632179511661672135203331116735511568510080735730417230442399508793125306623870153227974887640746960326395773642903118596586117337928133363999838660268264134194404551960855751766172133845208295645721788868239773873111683999490370233981638773097295862965621150241420282910772204571158883831626960190022956832909031566026395518004685887317590394152824939991993095190791338375110905167190290551282388046583602714208444677657448516781630191756949065424432746645862976947924003800003526628572782990575251426182822876506948932121516515307526405446281548585868816342294093599446011422421975365461944202146133804219887963352503295134296178557013888481089157722873651602850381176125724088141010912793610164320784065719751168013615755845084694813531065427016350447374501230883607863413838148743432186125580153859289591231795517926804761891790143083503481485265913316018214187889761892004371836961627629220348110680169862210566266308279487855773282319560536361106489834569739418738823445100317820663651714282669694146526479557295665853410473891194441870648771282564872394573563283093462293595966631506610603244485786124204443341733524443529451110784317453091780903927542974634803953535506630238963445994646446202977365598849802701354298022929710675671937650092029204053177540836876228878837199283263182866008095250408180241892626750754873856683778328097733118758160271961306918393499140720959574547054266499883194730428743890450837346360015168190186215124880421348524245643247292410795162511223557040505374345616127786199189815043929271010117322549471459363361534354874065940617641558320030324684390166956714227112997405492788808710086055212381792433282607039841003242284097982304913173933867839508942241497986990635555366788766806602734230555187225478764741220831711274558401238003254980434010325457038328747391675794276957982468487444278420657510418016694062303501901689712825314886395390966742510989095899972672837143074887312606573653861360389424973952924756197715513575403610152105358204070703295475673030764885018908868812862176932252701672645949496297097435233039201077559979836992784758020648910856189234806110945638524444084634401778849726789021785982117844450246190286651177755641381547820916491510880488465002557175444990265160662173175861568758852327424471439732245628495092705951238687442698389067519609893216036663211728587596312852959068098813515004571655410998253796074229466096732298765428993594149106159642438024446250424211223845551016172528173836036237180851903563200904382758033796176136567626061901783994892193227106909493263213511419023035541096147930067970877313520395561216191188287190394127978407323821389765341073065933922939594839670738203055769392670438669703640564477463493037390682980707763084850655219709722072538931099888965931466325190253750201923826412062753655707505210427759008542381609916926150889810271282612362878503554427419624090201328252000196050170693871738359722232468671380238798815668143629043567202125344484980809215082867331049498360370216937310361163848237165620127718067743653083611502882143550970104559905337055643940374491952197453219536809674775030436340059506219782462648710045108004920370258396386162365743429224880061588690772708909049551498129878893548215855433918159268011412003098680363514179809442849131409536291221726198985652385213093951821222714346154260963159123548721310313593797837337567350608301983707782637546866702828075588164773325702888527085869440586760567326200746189361538443783863330032218934446214725678081870880369948115324238981585044160818298761035979943504751728272488310589664470163333705767456527182394896803111921807286236396709493554271059500037400559071913783595299780601969442202423154544152498311296041230590895223563071529914128691972899715228893269157622218105137976782391466182332213549914897223717636765619096289516689665078025491932705543260628877082535501966167576982025036528453679960827092334247405898424642967135187123078296235967286371241223719687802872482798129530241992822057358463042226884757756183424299957544664152701801128640438194146304287877769870347047511530638647696043598231022151273076161305971492338547827503463150611462349484714945550756527219977039523830021523754787474100551245592732043248399480844805852983034204364486344181994697977489274249962378723494703976524272143661968310111273502292449646803347376838406160495876846551021602230477198825183599564582657574697393584153194242247240982872638710970473394640363568717237769033490131091710184181445164906698149629860240805527379730923955842332250025710408106074013786531623788610301927439367692850922780934797310688163231439743447397123852973238694586447944392787101207520528689767185775229353466289807987229008188524534611169252156511590745960705689869563120023190327931158812285287601896360046595989559012454397743926309945809221038990134479487668802266468130680858173584483404000632516566775863989828850087549088307841903529516515397649868005699902988668231548315197415808597789330657670179041981314677620082105211813946007791552656823336827042905160772646319564589216988977266967136270968773080964775695315415302409807639551562047749292013481346432199953472903910411631694987896441265458034799418283373367417758176853442151118734663581943134684336313551557782249508629891403457308509915675001060318518499957121812216979928912743452559604591694497221626055446290754014610940856763488454843055835407995602852714162293976034938568544979155386458040235421316304339951043577241584221322984404894208485767951433023165992610067354377373256912451832417098599387180842219466868416840254507756914758492010134124977121863170232129099591856813288783222728142758398095866127528882658810121157212170263462159609438438912932186516296463411740297369901696413107581100918478863011968237449101753263327384854209881153760367986654370683594915653040948226584404307748741440939103170937444101797400826999640427847108394642836623338900433073214223899989710042215509461722959778548939027699628487458206172721483522428604603335284189465304068688110366254640133740652181010300691518838453471939013265773097525375382929706872477282808012666345275760678222405840377137009920123916404559684835183381650964037621672364179478629502080115905973548745944302746610234312361068384315333834357637832624828072844644467355667505479479904340772295486996444821301147321077364557585761018598752363425568497538043590567497166138097771819263888991625749101639887181034817712714908928637425407814591263270888009030455363014942046768877273079188088024228008672890481722780285880245055850700878444082279908171699512868879758056829713773066610323386686491031708568535875474803908070012763644123488474191127332303619463543282528078674253174740424684239980312742405079176577019964918263946234223886421704167498391901409930743551644782229830404734363519251000368639052941350035267077129606464633130569010785919319688583005995594801332075635567915448520708395699495024712974725835277303550465259013824016117241044943738848382881044695396770513581129234966996424890291565452775597433616059721198987536227765003207476900655236687052056976028759309816944796628675480854997334107383913108393450032691057592105584774394825033332269521795496492852900593466130996019751344290626027824516152673117397817131216142444551734417167620953420113699745466975567010341823253127025758101036513609555459826987127229369607405207065463891138461913238966920254382587466883461591199782955485380340753790439265369941755066513489803246701027314673448694810038021908012879768197599985238267032034722104189928897204499421293341286772551638008262978536103700732015495409213832425955894447293596731943492756256678683087422002681254576598137357973376952372658021099041263159347807521394259137388492096775878888525852305430651218222270511941341324885217437394205885116104674521873854068250781449978026526423945441343862083148494284043287348987894330358725240879114151076075666685233325304269999006006158559607009921939348948563027835444382946453418320176134024931522715104785931948388387916117988688552465143934612738064977239111929436060101154163032729522432644535757454472103224178090841477593257285814211887152605842785774704666848475939232770674481492827690383244965822607210201434765789530304965382547822126626937618531875711850392298992735869534436713029824307544536000065848911031580007442429913021811059673942402227484294255213119384594772145469704261140193849798875922968280996506949805492427403082319873494924301160416138378658073240247153226169274906294216822150439460991423371517059824018930047294074999069441785390759930492711598224299763040262426537147527306232656343002632964164898385234100459619813547461932095814312907613934027040237680842404027183804110690861256808705836394405733314102894182672596006467358094130255585848710053618292350174499379955941638148642848356367098654333671229814846964411997334157902861846554429576114454176520322958946337782136397475505322806404732025122475509587153650058941485861141163406652883216154977698329870544511607031604517837777759846975064718119280207704408060389565333968185839951352900002453934583097111115221970207356405199917112516361870901642456317776733130703899164042223599338762557235873663514674711178631180875449667571172824844365800238695894168819277636483767426870387673797092234281743223898177572214448026204202897211581738696569018672233863193339878722853040831708486017160173358918642505200368774318625675091449820983281500675167828024252639603733701977615740815588047329255183837124585962931904525993266019946965486690100531483648079861043574847719949222452409688770229985488471894725492077004454287797846826272742393557292088841341242422851334942924788832507690500164297243850314791267253073247163275205988514795937097209217167628720795256484016375102484597387711255085139560426022179093165514567946698871094568613268922279629046013256361127424646757327914557801592736080126163520538775368550962912543566661261862060940539918095654282813278139192143235641607249626296504625913158430493948958882486607424166896173791842632601860809944004894100665492617072293053489303110310053120142500082321820495144902897153360285720881663637563728270511035337530672758792613374165785533900953565965604057243347652924297134854419945114060577185289523413766849835819918276803866409908045136803348015207221395611164062640056105231873630463904562462588285955693399132000314381004313473391155026015777744951955997917758771648796736564352881388667347002674405930689420773212394946824213200616200916976011532313072258507371773442490579858193710558480271217260201332483095169045053117132659189606855748334333467166028710087624912839054615124159693992977192890084297066163654402513123279640122342639768441976402783260389612442417487770761028747091695125216255496339883901341517318143355961136456881169575989605499852832737252210535574126759689332493958310027596798018527038102339187944055463274489551376760765097637120770378609140672732785407492373134433966714708982345294686423687350381905297240797441354293280770018488671502552267200472668615230123082907710034306219881918179465503279345357721587487783878754200728305499000321785260757477031827595520907422903863423039626600714781836362023447272347463021414014712183315128673690331811075729009439456008238149462151875417927000260618310894870564099189701829832440322101119705415847343822363644266876708948933704770871749093627724567821492646136765228577563173903374497356998606824210909461159243595337228503284004077719055818735709208386588612802578784691837920252023455639918403484613168477948751034092015278239954380112096199075344561534688111602423873153933864192988722005644365438052558234013899062543741778120227162043884161717765708248899113607303295591981719411447173706857341262711219088919266932181908911208716851902430117265532574532256699671555971376523921655870098911757868440122707600361452696006862531203703381644404424706173578984083601777514878934873664945623263893002167841742525546222335332760453174703930633292225294455537894456559566627060318391891718338844083416406374336906854484244953066355187989870832073493567117151416032170824416688993490734430445525966121321116506940613073599624033278679507199184906105068633175774609290309293616749767737723275287903113487532485206014470878341869679537916164955624716223197722182119128843912270855838121516407224901473399464505455094712625076597373156779554185463477280360702385985989098174815462825836776847427359261003136517414602292406556129382876295309358265381293087345731939047103587828164067820878086924236103570180778501158365408821587075225938504370472622758121004791513523808895146919682257267648356501547659815523900783516084627724788996529246121861007724966293440017810713853067756060897168996997286524584631114293996677127441336942401819062184515842398423846397760418843102460780425821954237428238558532045462280589081128534604160973978322971575719566590156094358464478132640020473305299278765712227293073960147097854524222570027024148666736624172250934262764686362771324802447361988080147198033159430159064733290987525802126482078473502464797439450647186086637791489371946873312434084023413366168152613873473541404670105421234212779052487966440734601174865837492472992930963903448719350681986214807040754798916114858212345422148321993661242273669212125457376831728742608031500713327940677302663986873093638871099951780824531887990612926336851376483590273037543589071925038620024117179253653831835745955724989500493950899505015897866218680153826398558360500067469885095352130235473111893210533319958538360379327527227053785259839853599622582595436974471957445796847736042972218339012540710811361986345755593583298899773301851537639192478558155643679626001840517220722417100978264765562255456288704638635517631579295722609862487891947316968976314551173560300899953717821141562303499344095581141348701518525173875964827321179041981381727513476119102195191028580006491462168106914878599263718208821662513244307224812862017058258953857482270728914078892205734935862031785267221746254013859991370509556193877991360183290650322739579028594433372252085029604095352243328467711281116351653737716652418202264404851245560029072340839842100353208552840024776542676668538403836029182833580332899944785555208163148767051339971680860232555770431374157556563031897531503684657037075815164174953874893113277624668271436567730647827561856185141670268279980204085064939837666358236035816941282473871385839827269172620745741895878260053061512434279180529748030085826372364647606897220518553792931320716629582205558981078161335092258267575826202543394535294933497776128151736835214764465089489471839393702330280115199207568291878638141671465581134564177060865175115856589348179391553441036162352480488595987109146017818649350629014037317940905783840292808586905167027446761268968682563355115129309592917057954435044856838655636676091295077759636478141793121940396633169455063545556584152410552015903854137408371572928772753845689961411627696140024090715794298476762113732976714958973322254868263819191616747183488271059411722500623617903133037515605376251497870503333447761281478863387121492603778660474030553183635600015879225591957553988321166606615046953757579750774697326392122642224755213283005458488780716138256022917414384135508359332921243008818653417943442430599638186276649246782794230700693468664570431100273360285517480205980182166594845249150413351610326878441382363462776546383875401044680892647389213707769445674320601007380316129618334744220783704178672963578817199413319902002615584610869102227343983997716634475214732068170527892838028456510283519848922208944559443028304653547086704817841102978536443668065553745322357557382999936631257084372325325717829764286034758380705067903747244135052630156886191021088253397925099976564956168754783930153823648253886326095632988484914451931411981077327553407177952131997009391603137157900841605715698965520945323783838303796366839540310310319261244422483768940451301875776297171878350201676278194089124289029798302684973281152779455868316182495159811287077877162742622042125709964411484765770290673107912669831061009568863545556122363260106056751973276002742159358234586251112596256571417639720457074927430452268551441897063882386149384442388947941844130170441384456984351837804322230291860745112874300920018326392089506620332186832003817376642685148295441898713898408106949189030823075953522746949791047518360057722072281564853638210169565999961404215134140325525521379534843398148590190775152217746429455325153681843893689912450242538879904391205381545762984105326255152974268016273477465388453170069205186345160122233589923811452281795947929922006007186495021954481064697912497387035791163055903243873175951385523874945156605674941748613523444308506579671863919909440323522910616909825708695628779357678025471503995117517063229499992185915547750230891308497804868903125188345402658247013867838363863090013369959343138099167585526588999329329037308784064562547318792406640857021761304390569705581329641771587381626352725805137014587657064411168199378962239395506946789827368812564445329151803282893852612568113920267016093363714274560863800222197007820871148627535531639606052524537356929897511751303661360075635934472081461146004506698721971856913199783374548644970919841472140939902045386987904721596614169673509356187577281629029563778350324724572781752764294726049940581697356106566337512701633257551102931335194644678866572077884422501056193582351577902177339736050123001066164125625253489618398091114885812347595475547612902844897007546440780083842194630599143055533177299478221259877676147610730992054779399522701639075168183717511974838435408881821121974184055201153726109822321449326355971922387769926196035111569136575919292649933609692747874114914457243914969517481151451352527964912404372310721940387721782722021071093272761398427532431971212209447873192876218179225514886025661954946781258098978279946457653504072165805214978833185578649051031142010761082923366871133572229391579813691009113140192961662969240282997712166556167864832172181455397520502394006726672675976676267099647662132702095161958374112222047701808870398195782075462720602344067435852189248958012065699098975037413108009880319507628909069157432993256325922785052372636213077213410296358231145219785567672527445426196057508104177720649881165862301668015755793666507112264677783665155801913411798008210611458047579234901844304146362623596403899735747461714747157816939237129473977648900177518886653398427873948474527801637973986109606941542626986254445120796539996196937772467719062505085764260440318234838011897390507428581056607934565635772113680330312384891497194150221566728743954124178863851772220565953333295766664525216970764716475228497339667239120404655793344552585572560793581086884507160464574181793891316861400340312809395098134036674301619563487207475654878941079850981511797703031134361624270908439917548239469283649035817476231766879849949646175211603869116524124509406760316919404403689504318921418944636987048407419303839451383294007493535956865577679922878107131884031276703643576246910018639685463664039108565581606530683562279139357711552365859217213196345305813306355796247150488502880459068813951768490570395933975696256281858894161201988165119344683196059877872909490758679217942144022056533266880555967214230848655808037601288295179367826928613670311283447505971832751396143952260102873441634519359972722869247490936922539739354258810108727580761025782959166499261111707043429218686387490947348014299609167925602747301883461907167678039427877884000748625007833161163180454674303750719458429213396429363299708353380030998274219513813868912570001165043340378337987897986496052593921006211175626502548650673015897774907100561334169538142682188599628698899069025130513933404219585262118522245057832380890764705658860564621024988854685093366687386379198015645607861007287755687085987491705524655931625629252824960586956120848163887673407125666361440199703414835571334756306978726820589573327025959163823022351727603178147495571483391412798761035276357858507078760603874345316680044789519206140229844076678299295792457263471699379415856899682625969311621313816719044615090115138245163908366868062649706582432380705929071107098461405754360464308930667378306071578091660880436283910588564082358411391307640164206524761842562986119873807005748763074794767493281096102819328915643323473506269292261590207973750718268950729091491080720781479483587450785472149127923173118133208296489862394279406015859935979359329377946447316587603746017178140285866761183459597035187539755455775701965866743029605187221570476769139321098090343561781175401917688661739418686043657496566866967934635012684168758400727594700676475662399293907840850450902186552708438728623948516670011007114553418458318782566604189699538955732276474525727770778684954239169492552959337490899090942855352215099223217627551134113857165824097257690197929900430743330027509244831190924153927766257765028199944220898525924081888981412389261148822126023966159726774003460835596865995236191325824367083747407016482421830282779229810971691151721137248826207209838768007701610194288802172206979051677181736891119205343533045938571750145576243348153382427962795583528888961172164724008336181626550644374871810251513443138216570245893802385332045648153646040912524001966826477803310734591278469156031998164336385056942973738151625642548055586281131328570990255533170201514493039363993015624779627197036626002882679863706281928131399048053515235495684124708505674080945379994596139510172543326675340746166185948675733650019407998265389920888748815143802276944009361297468673803244246675223794468815341622139985025671388068564584913137768628234533292728874798378112625572960730440840286021970941626898638754358206816721796151004352461212306888402631372898425099675012016333673848962632155895007536368620922092259825309795474208518435421375387684521875986640467807004913816512132574117333657662502399804750785248016164553907294962864076341881325159846144605135793775239201172377126609857976428963956664346178121353511535755800178440338821337055695461605036374296153381942560663093111091812453211304318652532586205526761170121611503582633951454092587573437532867016080468971760412832934035083818214633448418417185972523856827326836581620849351455728842543646702951252468096625396435409471411444849408348765245485294250400847458413864534049583366769507389675643975175289578422611784259953581628415434681303474250717104184080067217177292036349299798847579124320993096634431836882868741829979632975222520016546714639080935205259534365269600240230493675635130689550755493683918126845916062990505932109199176876219673595273628948237676638826469931977517601047800327667290795200256285439898778005303602152842451673944752609496925237806753622005368365241850546585689515779026300071546576986056907156891078567210044293887730985305057701356284837774900018924007545859752790059657247126160612075391066121900967523975575750169671582794592968750059676285985930766313206859174862578189626315026424068781435599349778952252663805305740183110587618816250329433903879670089322974534978662761118276777582043380957396034187026336109088823581087586048588523034604147732689006921853243075216051854560805728962607595156324675249714651599374235478944969453078560896625979057976995863638124798095563434492035654934398116111323067933776901379244183297505213148818158682246694913893383402018847141249741603990663557290647328316316858999817112100031180924210863038345817917597375875595850968839296435429988054852499108774891560615283025912676711439406363599836163358776746687353910567651651046201926184115984140234597316338361209134641577342961314073662135281035338139734732390357189135096563054646068354749847279649828002726577183048219685381030646517630071106185293115622327672231445111694399783991328277070681998794902910565316700089102643545805965088632873406125411896117403809751123447606348340204179491641983228344318984514024037810793364421246966543244223336118454479398097021629496538731631137291255736413100589913789390414520284834461162254961193773350571202094377711517207783822981410728244721258803090080067486174532871680614244557426717094122598416307896784715163743502608376085430060981781630015248304009806971065619754680554379538367095828325099888237214115745790853198177247355727604038330953657068235154801456972724970911922820877629428559042829285989726331382464354181843608371007121881207626096255078077939679292361487897526271713107870688016873608073763226611674909043153601663691430920722980065730695961766814441468204206096640544449242110137460673547105169282069058656913764103974195684087480470571541034144853023583527607062030013956737778026223830613112456216183321558119555092935526708274372579472196501133494508844842905258636102047299457366462568643205185976198361447138321236414894324443310559511128834733371297317746011108849519229461702040797925929102022857339733091756730758467395200483776092146354684469439469771455288920565249975571542165694546602846764063046209634817621354761610902060748809032378483342255787683701342157396855925734057824284320510903564643341432447062288301378916713654214103641202154281206511900627610138833040532304315388039213465741386058858002250374730678004802081433141895201007107224994574178703366289770549138615034516792908076928210272610100080217250147805328972129658190295652198788726261725497823815009241690135793610606545362853124414231498008528443607226847618846890222453173708964052757436655459751348118374079149446450477607209995693471029116723442101069646459400647311992404269689257893896029642088649492280651418074257265133652588727654978009978225101772061509942223429868362346781665114309081868130355410860130452153198672891210881197370238455871041208947897100112708479028774343090038719207070022265951992832241790774288784139421630330852657037483749661653742582120050314137768403917329042082437522503311486522857302884928710248099772310587137966920318212861687954307455116509379036889779876658012728682928108170441799743813076980884059752742202258721101511266505865476286896506680080355943845728931252061869718763558929507886371064812049380003502452088106601642010714204285440765608267411110751983214778367256272151184083275734195810239010530710026124882183892653805494455850594947602955192710641323844807891578432594453144940599117723322588537491171681177342778376537372074355022673097496315131182084989609819449612036343988723682428827791605487888011977808403798970098536926530376371397452396513858730709218958262650986334910900875489394702541120925613738262521631428090751352797992426774176928033380828586747643435837313557312521233699288202569174563067545341013053804954793626684212289027214716448228627406004842191196493610824176483200902357431503060147950272800648449493780061202073060388229621616857038683900790200741936899604163351318885745144113731787906659014517972229152442849444751260939177834877723481454659330896539359216542343613203387255239869361328699101801237419438808284942302674755592387856912810563236506997720325934014323306072683298245041214440701231205973677885017694510640006400301527344462589117568510654392438433047266073718414407486207499258324732590063879514562480299839814331846347396944470816615700360123070106427792562585878242607415767296159549605849235473859328152152888508901129423947291731464531966885619831511730944036048513766811134759539114516690135409990489153851468926105035251523367140553066078367517763207863800984749533814274318186812997137445863891337588586616649010266647285784996783935679416836471803651434878976436675266015844840061082697850325578327306348930341888024220948878884822258106635269488865315955879541942108171421917283101989984392806372963198533125574532114448888640541574614775140499253107631802439454555620943847302451215675368274058469390214365503223984043024253796268840568498654481645795614672317036197130286019503129414352675968066892278375066174763103056335889893621131429396359479180377579068954509297757589675533829635621396202789329614983939991315672336970780993552352384153780929083112807709570752035204060715522532447254853849569514556022898399287630080544266919781618818824974034474674244953796700218294282336017345038694260165797815251135795643955713931478949256067272849934063935492087604034598826097035989240211002675175622032466885551666965348374837830381262750406958950938521052312648006422364086713098981505607426675433259913776401384028062121717841342358556463760531476613788003037586483893188943979137410287141906955257326439691944409137709854301509713626596452405832416315849920564313359331601094412146269917929386807276151623488828737943079788435455916168904511732438811678410432286214740385318486571521743408207890288603800049657573561405693994682082055340903339946535263745481255437281922673407949906345500112676848511344491941111708511827790609361497665987782650101224773000965857301755273091505606328253890351701423386322942646956564947340477145812821563292240366689840230901313927643682939842535353875295812714797391474948220374885172915760167366745612527335342475949465164307162863458123914928971212474349696852994315553466087038247503886537766115529728162246429517393326103158154318120591367363409534325376211749351442943504398350924837346272821381725080120148952379641432872908393483918758736380571548325812583771374682639417452646329892586638629289486457703754325935510596664087928700839441929058432056646611856438273972669259715309536842465679725613038641471854003375265510039319428936663622761237719812881472807461242467790703043141619653152740753387576855155185418768481789934078542053099863695316576325129818962632795733012101014245032798204576615254185118551038794769728956488936081492301490116129833142602611964573622883618242638053665228797773007570306533286416190981878001117553140726933586989391705477972247111718778513741629786229073079575440727957437779336008206518677704243576753248647667268518670999959366263481828590224936339510559902469519009811065110651080250596694450220521409458859902594814618332638643977912897054565853924523168633571834371436052131317965675150957024639465160133622093900851687913798322597504470011946076668710747970972388456122029773924645808848501525486956096621081567528781980796239110886210170221031977190358237418477434750590469557052795869457847529743261034155595239445052789881884580779480469273428503417637149254514855252563444768595332870596674278726800837907534509025304293507552794953806871601054574724325520045355941633849983651913316924637272640757474932747061417480339500343337742709395960762905889870503513335514182549860469282938449140609603394083004401850955524736060557761549054006976191493861028701878146444541804350591940590439431319387572806298040079890431760397972870422394994376832649796241901317048288553160600577799818587177588737355300834312556159517623591902057568106022390085927705648930580101219178748863706425155870188137288246914361852572082311209338871183248553561027809590742297951400790422252377774726122967858531821749561212268798923068507430210227865136970493799064122591134971481807866147709792878348127679113454712463536883904170128637007153433691883046287503319649356456210797929610416536475911766421579136504569326404972960013635340368188770505872953642489221780105206256028691405090301254720872165349436131863365528420501016851751586446956688901551231017382953955211177856888654192838271164986799365314865366884976510121617237379872092743879415066169170661188253715668435013709250693483530103621162708839153290374158120847977968417629999515609496909472437811566265359643424763683153147385953048694660094073783470343675610411861707837361017856169191998860046326298920061095516432175417946966774425514573030040149827904847808861475162357986334647852037017438119928141879746103735915968961228022889479387602202134174642100937682041131791193290542114610852741634914255206084649730823392185929424628546815769519631742081398981137834584454539529562602843676289159476650579779963778018822828428095833294950175468607580169571414849012422286216198974733428638125023571459046978073760432813576443869658217952965213468902340051933618707541841447901506529619374436039366758268133956666448921049339094191369607744033267034105945157472855922541548765782395408781981564028364959176012906640195500518448769702187899118774376826740876555364906821061622947745613020030607763778854976348301474331999161927202360133353445069025475554605368595808246829735248923810101770323940539042798343629054388880415724227248311509090107670049239590096079832375344762459887738064465460151528819821231549368909274757229653632263217043316197678634820302208518293450873263210339881462853388298466915216892894379153892646815285065528137684899192660470257267384254637251463220914564846052487454774007263701704584840876828867646130351537854072284468497823414466028757353056961380697514786166867224831012479125579738354866172761763710446203868068560045331006982818404555289381478363374326900765573573751469867285934761016777037654001398408262584987261039067893968488942748021367615715568571895969183363587859645874106137090236014857110344373437945908359563973599293084755340351567710278495943062134415882122932558708321072147696324193671925666966238872189905412230859872018762763328788030034951198268728088509404356003524072067561396979041035632246809241784494439900294736444031076868552794379075836932245039060397640166168182961951052484302528574218863116725312957010874381520853532418753954953242094287550139312806684549865763178207172686162294255904621097533263883588962543932755094268996466224312018706172928841327971287539893410403354860138729315349316661135944956486631714347318072974076558580758056618258645466943338394448124250113435454454285837350256477580172390805197816477753374983774347928503833459456455897555083624662015171128477916967323498733301392546356747681141020638616048667124920151508928878551772122604637905121382393355179219643821743025970428968669459829665687015031665076117805755649170096057598670382297864368399699184454450834703060067681036428964257705740904241685885870065101174784808334443913131314213605119049272746754399659067705960725914700572943196314870619075986426942572664185988570078572247573018520787906052284504132065848169981244731512002343886281624204599769926195781113811080994834535365344241833185662201945255793209566828668368339156409152950016342578881089853493318514652436156933827538576726122072198354080118897266916289585165812025394187352360440188304664822698009884248653019982956742587956546305923252280790573164042518738115159157252703039938231671586304722218870235260541003741966476027874019126061429543631973404775017511742151298126115683659336083792990331441291158832230265187198640524601751012323653418131030477907840707043768871703510867381072889438960140234398061401259725696382180652024905112442901317406433299871170154075827994010579975650665762480327039795639337654159443978978105352117263270756551130174457162141440434038661855880004520345412780817782871930235457252006407423133451008935233852506386104097539033791139371048181277479311824822088930516379724704097232955603226044982328981576733901626311951632766823217372361303459215219455713415955227116452165311831022834346695400189434360481601969769904194657679877139488215020481695277664962201917994053850287050520933442318577037004018474785003946178999121930018951100429621736428820284973645993118191854545675010508501105700910303643784956470462658630926830997773964514737077787115866723780415875272664241768694747130891588528232090537115074222937798746351996567311806525813744280682211631119946736707711011277098538686606736489058376105952744834632763036922353741761972544693202844530211426627794575644798793153955075095870128841006056907976129521329123480251415524601414272993238331608406615657457352518951614714527542517514676422069920845591452085692380308400812123016832954487855144525725887807574194350866338252505913039810548296825898878289588058811350786358170028740669627976374664635716628707853799104369148104581172579277413683267409936015322345514030572276948207676643854357010383481118918630308108821925167360387742979817006004783484946776448415068506033723023646512416223048551159590507532972711607522030611507570889737108118946643130779329047247814731350395800513485658661834886116630135057818766130274179164156439366050359234947862661984275092915935518386885419334952995461808500501635471144768418080571498995655514280382747838382310014138759543393585815295481676114727089417439159207259946418638503871692578623914158482614430760343560078494165856559370904624800930523988375065510882679266819435106436354412734163642117391743498257397988860338337814559309867990587227653086392349438296658934610231705333386963771538233809389653650377232955262575677115574998174522863159995100809867637333450767432371292560344210878236925358763839487899737904321952610519968647803852922126965474068568779784234545196046875953017612576297816466505908225510227767708214444577974996364140009428925405740439262363608955078290332294936668547637385223810384785086409114355757958088714123480353166394563308465912642980157646604303369049287549467210570411711466937121525423959894446974661078788863428261458342054985305655112460984590488626257746680756589672093856330698221666996148670178420663007371958819476312148246278389378955937705426437531679572483802128029460912999229490953101657324018892052857888440376157048101370451430001201289864328306659848622515851653071019378629001379248568241630901785133846547402842953443030837397309577147271826400827601628857191478712656953591852398578602277045643123575015807889508526462638435050556256899459828250849534597920232081328381660593825144448382652713241992825731579478393503942596298813003074924048281763672884813083460280660902170106046934141217519645394173883962769771951012450584628252629627216088898561037142513383075621507806805937583738738453983419155947812641411891041556047372615181244638813293252341175208909967491141438666816332309750790412420792106998159539713537426364799027269660859717599169600942728599920167756572340820277206664157796365908210961891915188837982738160846845909352868291832512233025917305858798590197266876829692447747560554244406641014127814995899538030876438949048020656075945958392272163348061758423929084645216957905508561203960763816635226173495672835592643795184227962373347135059137837249673621919842825905591163528879865674682509598858036427926506610564836330314868978386717026119763464702630949829470418377326551803651552718065162638113389018742583240604580954757542699207775366236737207618682420392139503684209202419011775679167068270172898050308848701421371421418521251014528196537846001562784950654001793011776839154120899185896649569577626768293639155132437412010735774477529062360774682141211117052171085982226030818428887589069764832394291382619184157797793994875034094438918129880973423907607967316777788538144120337581599630568737928121598520399747538614541487000102693088864410829067814265874271934065862639239579954699201916304413424761407152912693299462124368601054519814099237516289678295567659467038865578454334892220802965248761636576679783797523115805220521805981267134485026836511724522859711167451333738686711400942735566261576218108211703160432196009988263193023702298991594081764330128478913799344995093155756168484443199139893487581440421368227793332342657070196498107349755800573954572241883339433248575195200710363132226426982688945100345220845152928739094995680087742622508924689959754314988669048912212784669940073009826296388402011732186512244289381467415689646329055904031211192136064989218122612444260903165229516960240132938153393946647242257236690984690658730545575798599760223992976404463681121259095121151424980696783194681244408584653286516131966915407709243934746830402611975239867647861933074222259582886537948435579331573519594768903211966370317881303967144487497722427579644775250224903579371311996939670306123460159740644944869102180460170397050645493426021754990529577816533532074559553300771192916166777507663372413863861292944525808591676888160042225277966463558109401723820931980211674653701009912263447256393120989496506180113125405724695784516076219326643022503296987865681829183863044608531135371597325109822386583556030766422031800305970324645556209714314363191641334843914568965180876891514152722566068061924455472555220552313583443528925969321861229786501525815136888297151437010951388381771963697087122930937856739281715726889968493413786333182822234360558709926217761141025509719978553789398499695703445262767024034922065946876015525876893590001848850257124140491683047736028175945048262436123729883044787097267085421613529794320852737413858641799354398358832158781310992810572583849989875445503733222563998410161321886365386228732760031278153343661340462016252610896426995051866650667987329759727959400143176713071187629082991171661037570722515401663514588448535741672200226353911809865415649628872295030392587187385835549029567010229258111712648604677851542741374996804663760363350763544388536536576663454475681915789127914748166657468480573402457389903835993219323123918274500908823565690632586696265589357123687666047011249031231603552664361995816027517283039893006579259267056528659200404056733580621164885380235434556746714072938090004717694118711597502636397729382489125307644784404999311525835519675661772686442135640198582538005174081394230815086984443775901133920326622572084724898135524087013235895541137338405686295637257544903582930336885608798714629119658306127250233349300806590324668678568839139495212688732172185251353865867785244619707140991306232609654528761118791151789636592883360813848373235071981072521266971144718804110773851538709748281500568800950808679105028783549882626196471143290209356596343623389936543331528095402268170667136252483321842919172116150979212865040218470163827675317399515629115372830368550972011051001756981679405842397240965792455195991577935348655376902449811041887094445417685307160178518484855145189257107292927027973239824242045450090295412187193246662562509909413890602612027142612611565904129704897165989320482547841738905811331744791151658269691089280108984803645101914404656363243633459546543514763190701579325077227812101666350554336830021125671879472498886941913598569287742955785383962019033931729486248890823905238655263491550191197724981676763117641521765567529819330307147043683553304861289431223684088204388633036015519718351487255356191964359569305253605303615016189473539024149828010840670478136021829218043583598625266270957294976033555323199143467591357086086814235220264438418370357028167244350570069346231093053071136006635012537124445665165113804858201201488950985300342786895524024164718667681684384402152483213180678595556941473321469495709382830899996020256075575392913588837764773860291651630791741994907134183837418372098093091363173061232883037852545622671077849794297023615488422484402297407814052159724051774793738618545705269158283460807468762780430814803847529300286571276016115545001426384105312749952777764789856753754034744592281254401609876749479787598253823197402833589239932217003142738442066587182745398565574614236120964556180747166657363056621598406614814076899008919744463893598319114503923406468294450727635784384389341851562162501281192953329705970429260146179405848557587230290614634530520251342006605177390360511288895303153850565664187409786269248570192349977715915602933907407617503251625344990102237056847250686161962837599940338598448356590152660694326403076348079420819722227356472549705014045849487808815163321619008323297141228734510093256734105752749812020091069888751281349966495294190742075112872526710438493488045776095159730558860581511767017283398075458582766450961104512264259705937282841975922721014281259628083610177981150304557978731296089309550955766235453487517934183343125112847911980588815415050763744010124115603800208806338301536142344690184937306986229466422940375547125393084067207885168825656507853664097860159483905392807147054233775812512025470027345660017680546862422235784907028205256955188598612854955416642744569409799934358215663081080496816266720829258164769385922682374117642647115007681295162092415133192285900037426428579572373397036975987561215836086486547746754527554192023511374256858886581475093241682838003863112079075602238068832039948534789330264694552253793161905332140616913907199049810215952938282220804673445379715188204973564322040655230494025719483877346187176695050297468868723552034923278757168982085102310476250589461904288756813858772078534250357446997406846258621382992815968006540379051227437627176131204101193756149385373167530962470201016259275699885347884793470511525776874722786373496143162521998560137163548269124115684216744804315528224771488126753287943522724570244900289817254335517493083443717320611884504004678905542455189829655473321085371137211332772622129731246475831173340080564351664949469826554132753632181597181505121685434101326980648568388097551507719894551454500009905433861915597097709690010412360118651404469372170436771507833673285623874944760360121446487839615060955301083481598225341576024258089148341770863979366871380269285167259563559761663891126006792193260020609850414588342125238904078552924966358975347529926893769637583025365817719533099681360148257310942313862414788042396735187709791361203650475277966037322445347971633607799616155490598932056302089828055845963462055965177329677122677826867062407152775629497780043895986892409211403748039822582708904281376199545941733292383479526031076484854248614299933818603813998170436218762015311370927170194219592401540003658273749219557607197688761787740261955530608611308593381083759286676525457098871127151997369702881891553780604246566745798204644357806516645578512408803456549905317581797276087391311049658618133200960641547639963533673709328434772686195356169753968074678207639222409474588627627134660818729041183668961999271931857330440026122327399195791508885761252486391797663398689845515045737832525893712993287483229593558934947418359526488396497816642425285214799113437071185468362081838681543917362535628166827782465259785390826708387871143372989346070186174560090129660773933583385996287154541564961833630253502911841200692616793035304370808146306828026119359883168350707935308446135976728597164199666905380121359921831566529079020234185444267704127644854581715125874078499953488203197556350508293862959340034864717076793230704159828593140179132396003939934345202563526002521975167280845001955440493948587566637688578512521038068709632391904365820063967413877940070734876842746282971491587155573876762608045619568764413335449513808238466724278767482943111725372455475290961962612425331185432985974646799771702919283019243614505910657285463802036023721636865811353739853535323604597357730551638682084430137630354619420730993792768529485837736361380861837530154409531017979828040063238495838662745464614416896666148054425492989578090030861938748008086572913322642703165396722923800844661095836130474193990879601707003390688103221255767440537049205490113122695137178500389655817204508975534728228830999757329396376326706465566101952198571343437308087371992487606863861935711828430547980823367312206733066936442051183737467941822197184994493536546166505655706687599937782717434123515220925476913767698717107627092307926795777113966321544030042923499125340393129960166707640110513954279288808155647013025122847389863430582028397960446038088634799294353846420699101651520677823023173097390409605000485309007253045910280055686241313972445159572279895103166343961716372568773822834310333624504964333846038293238199722056892782597711572260695652261662215678754332748193985070296727179301837359150605340764898504444871444399905918770259741208466260768892543916668318444719916333693526451468753466025136926911267062223108967464100051818951299078393841508592955412207083455700107787609793728221256384874282761708797730792585090872270839091194610639273469937815922081256564299338338821322527786150688345478587487493123311383442378240428650570199891298820856314670418312885439514576558783348949110677265776069660635130450363083904000223462960232846026992087130299255412613276493804621667232245340029968714947870551569592455836716245647168602489319571372895124485508911192956623667286604985218613111058574058611332947850782058623239974101343226210978784715767744409534837453491734097389881822447463855127014933052894415341029225226476170469759934767595587680048161359932380472721557299924645379062524905995208678353786112561452054186003461040357499098053752334896713812287962388055498293406547389135308918374588036048396369674468649630037306511295467553180043170452542680392629066135086553137357932681130837710851522725907074359597437696050965381724109070125446750022838638723780402609524240357248106685260634816294060207550345736120230783847073780398795534276141559629180092555197090184702498828946729062644445381043001899996910789208595001643236475308712491737387276457215028036997962017800586157740102787668600245787648818181165253897714479626524970350904457056106054263392629241005957638398642255142248093917738565604312362288568273513713384845760572027842113826925198514806949239744303559485106130136007465264716445490759940791113543451838782906240994357561312519306391033758026692647692125812632747570448587512736239953254684312457294074585366612977878619514335098811869134072878350818760662543128384133900938963552362439566960238931541724271898233588619461105157823641090015535689781956131055478875809103428477353021591361105779194416025680503246033017177692600937242167248573912196449821690272316324434371031096670755125325386044723513257319519746555274328245005296131321107033407628255210756973284581534033172960504095335682432101411455003400132659172844042531828693186340875204249819101344611053717137569629197122495710808970175310178629034546671802958768723713733205111107944253503769776908942731370003594206792204291125219376958903483455082669294185461137578491427174721822120217020606473757663076696584252249519717535801009668885056513610742491140900311457189749488440959768846566239590193035631419483473891028552284170844071716422219761116086406699218256120849946270113159281194438670969235865137794475343613162299261281991566146060821383266376535515292447076302732984230500561343220001909520013048289823282210840453098452540113377031043023367164440036976301930931156131687679464950889510840625924054591752011309179089795811108650621035836571386780616031925231716096975943051714531871023891252931920687299466873479857056958216949733284674740857703703434557833858304283313156445533166617886772448188259750878471844735649303880956532606824701312492663821540555996446193721136521630439462754694218570398619649186991516398888716955288479731452842769421951991893840256509705002279851010857212287542705564535308946286945580680399116531546893797322918889488809984765319064130356393500737796727595433808848328204124201250907817967660417845928710618815203162533746063418801393036270867605400141263709952087688386610034948278829704687112580607101164781353685033847058632445340296029035175683429535616714751127481710296894927477265667593327469119631933085382733637427092366531256218076429865532413663380983508188186719914501488199496107678237733159934610098968056771337982452008842366010607253412281390789571502265041577476238491039610669154581094372413289193034298064479515897319712381182821762020829016686680252938950316016991412677551306824034798804060106140098580348913614278864256442659496431964107186809051117955785998956532689520444662516020563780370530249909581163925708899891587845040560346547008718951102588254640063764524934202739665410904471937076502144325012448797448629986598129315783089816035646440733492858867573701812333752735493433962432076498006176019734909063922694263379858283274204938139775145820526921072336240573199201519773380767850565579279518838421426633135131060972101683982994086520283138051640165029299848474388039814720098938346968477219635716410433347409311155926632352439088893293523481459498928574305393535895319758716354468767013836270986788863798489918766401196045637365504143703087237748888465537174639010053004670424455308900769671161927331540505300242487224474137444062543369087843862350076471868989213177097230067332829916160670744956005702397741582999363869620107474316986886547834546506366087130962509018279209371480460220644214200377369424621028406953430331251204972618981984121135747824668586808723231436312241132535797292435564873161789441351246836028921688569627997210681146633567582670358280791925230262949607926979344829287522371985640247358821624619590916610900662025854051295796590000604758233058072073085351422276044611112908136299916111944729719327157146688999117464466120551479442910595120947842066024414046659813659898189293371119010370430658009773878440817006774829398362396541181912436537662197782377098885505467122798596417758231589346725485258782612150490591895784670250091165759471450995751776594528011497614577956778047158806634358392697698605666890773992920535278608923750008970006912819165584025400610863097557037440200750852057927465782919141547633097435340731348287966781606081397268721315068477864963273050903821130123066911566100375634293692179234753627148236589117416126425425473794244259846299595302408228123573090896067326407355015654516845637738721395088921576900885056065607522753305392553442249965076030731088528940896439672975289642547543112603720006515202407676915021986122874554384743019592654098090987347707788950952340495227911474927223727597418065860382962976302096278335350821185679931554211030724461022082300236154970104070233296616630491959611490630992877353381498778977079718361711024008082232542566911730744581077009863857434613673397580766762991058687005924866578111405409196630675910266499855687702958179287420947756317690546979602224648792161867173984259493305215686974378463512428718306597721270771293331569823834579821190905705346923015370373257876402168183981201691181412237453807612215679469227530461913009965212641309542150650581066667483380648064580552958392765200218761535005148494578699083109501796071068601474037942934000908743968613499093435718826280665833956078785512847013041831978772760987516815215159330870487637704410178280019303856668379285664033077251616404992501560603622925282536831598023378777197945051745398670017269339346587668630617757477316250193389345850386372793739218774227080129319462334556220246854198615410867542928729022916830702613512851757817598508371841598582884827130223555916777645328177014173774284524025953351892352119691500111742892664213859579835111789186986441815571147743801937336724522886290515409528509985950349230808464299128918612943952985093663819429386002764688439626056906058058780859348878467780038072198543806082488096912768236054694270102450288118193301924555780728741312544400624515434708451849343174862918325461676904796761262129237728527133079578352309835401737235470734670454502333161814462510914015560587577862828220215852727781605564712636968248084799718871012026134056499016976491499704001280328647945775886230626595343004462563193114260251484655117374283028236625366233755136693969335231226885738801410569461370829712267365806656666643508533749207047402283937508283765389511173784593451130600433922642268095842127684863905768483759583812005606021566452398987333493099346056095517995026361884252113525227689766802606051953862578401636286427755887753167778561099084449278886816279565164669009613242034657295986595058825428509636258279810964259993839622161897970258673318533824447690674063161666817719431080982705241555744197931552056754522240752746268071049638950125731000914309887267694820728724239261230544709270729459402975735720316602449165224596437440204707695638580593041864088327695024814232855579542561274214711499381244011539247777891364089004907041435501851095337453517968013066497676532077947839625012249092196903107742075310088825002582536302874238169327599496785808899849316328905759619758084988309490658210975384265493414954056307097749399948120501046561433121872985566600315352027819623586259745037703951562812005778914503253698394672891926145482960332159869898974459701452662625418542033293113857106410541315246249440858695111931828049061702982496573094681317196449282838947697264230935696923623369239127243076495682981616334136688713327303101946695279283822763856888057833588093773461485371314795069279769139679289975547818667813414025588359916023133056650884715240077661619838612968838799145288665683006081385511694272829078313074595145415974643208971184146268738220012457966473754692371412084823023855298087108108746568123714120871092852787706558685992400551886617758737353637576971073260089613778301598068341933760112103186909770395118489111896828958896374400781866280080523779874449923897606909012039813810723805181690521462544852777632968899777025287776821598651191311854961976954276784348726341771986355009707059618527630239875588309240712398445972503398933333170529243830628272745290864205633651169311971515616479039563923194761410339007051419815155875845520532509701319055814227545403044043390660788291523416126194565440836319772471564173589161056353996556874958250865282842658399170095645764604062939813594623238735082796616217312313256751809990941822728243389797485725848586501776964341712844118831946763484389600346423339460536017697003803277788700695441461450450227570423895826458136258895135670885495711292854569062392061179494794296079071006612077701503632776990599695900029065850022387041849615630542491738809925560683491664680188686491927260702824249135062584998302852392461738473999789102805267959845351270740873546902314143571223932531228804453670668759573014758744263835196488746594580370565601601291452206446906339201822873400860149593496334557090009607524051087146390059064117426647812750715323867034089091883384426206456803151739369429138161878386040896308736204100778788276362961849981734671620303970181525669464593460333498813827841012841265057110102958471638813656614481952456527302443690728943903937614050581883315694402837139857183217869327208283919813829466545075685374512586113273020211769879423956045785827558323526979966290334380849923928031174878103662115642269870027327002896926680899053703235946961478292975607069207064744084680433043056330488754835274253459728655411391597795073710763904779644710322123484724818914426920909923612230579623175264694178231545486177484613518727992943252094012612636404577352645635912016400335889294841556504412944046154445066346328994023284923669104996631364004396449915105889476648262849030263751251650147439447733431152273776510883142109415528852404261843401468805843800336562777305860285781577723517686676639616240263981982164989181178801259941933857205642358169545649257830875047181145214156593772917776741490055234567023051749952332044577992697257092681038119414217000925009250622736534220966977514201535613714924370812546116010586706730269292068262287474095455099470821774789390920553117202046815024232242284826617799329121457668349073940911417077405580115134625068712987739004948560650444616946083982442805413423465696732278898760257048863117614554230657438944270177825116012940433278902406872630770045662943226916260150015870521860430758305446683887428933561424501560387497797445158209001277214995569532514474583883629826014631309206819678715636052236245200802098155539979854945230753152307357947610494909127823560019260426678458735373175976334129887673578071247887905946920748447409810734442745860845626410562380622300608153748236418518335737242409097332727507021668977697390964283471924406529505047720964122811653272240685829259770000675201622209824653888656738395357877550570852724821153681584893339658893023518229453135221859542722768158287159246708333971397429904434052036215310200878766345541498209431868837536469957480942114315385188166753965355914168263693216478725482038139916241808367624250179731500298312154695871892235705112335071627349184703556459437776351617900051060120803947379423331282146827126264968867626277455779849531403552005307690979011872139536973520689665977569051680150897797888404403376867755686308783847229039246009220792650477030071955638056709789777574178886399124362342313936652729378254515139878579186628938221862234722722240655227224369610716924411196197437585611094928536641779207636271922491168894455279287966648920302868529723574810870321817752449103764841122490257526615139363903334095272600356015130899684769638252464201348204326994731484456711440065069858009266950751242374738073024059099742240903124394389863496069388330850003708102008240784957379774969620330644231181250154493844015594887171361675431872983721634793508415511282434908315343384998831080601936074390334624808191980355216078963050650720734457901477834060877795888694209880008604400026347016503119297443973543915516872233565020484435816505291111283451727848114438121664775793891891303427391862268649662579291262754749838815399798808924034277644291679475359080672732953320953021678455574351040381746334984137828899233069457236222022477353856905261346906815228160481878144794190063277381054363818256604246945030103867018586617330917076612343816906183963566321790092712525905556721016391484707408603547108418715242271759559940814249311443245124353049897336243821590388971776806525497851408636484553177417256856063315649369105860697949980744480517055663038471367801339906143615784902581277126175650168125022541557354286298172829255877846881606995805980167371363570245911143303629455644384396294323842442536790715315433892289236568868366016646543881305537857189563325962137870467169201184768886938622787929324485764317548324323538110800619332944587666106591083687926019320689479330299038071135661257616648735378601163983377701729525167196481767651259066638664151053069958860044932989116359579253417033569066674735247621007052291047329300549249795649317754568161120223225252272824047529320757490971364535972627112272197606243128282806349855183182424462147360161121212397011606794699020426146801065212846077602250363261823644238086196801635674547239616207323767640139130390551139133292119805350835261107327944040391611777860609685565890488597110456406778466145005567429716982214235850123878420798234118896686677801657481585014451420135358535460232149093886418610808595876434227466999898377283512316735915877327905791131967334733573496931463469483743539319520434929102280127825922691139961216800979933900053489808074212334135113038957181172492312097885661646962156895036769387060862483917500773774185074067180718913845596724366624685794379698279996646142703430390841144489576379042333389974225242240493110555527151791524066174857522064505230178030845613674910779508502441757042613412367969280379825838500725300603921014534928319708654833581433736793517623385364576441265440069712460904720294957666297301357941938882976115933008778946144730050561646542532243722962964824988026002316995804252854354019246470707068712134155876925607298321927065194096947606617740208729929996992498111353532253042649702453415306402264464375022714047417882287693937614574408864212622375280574278410801082204858538620952240620575685114958960302725039882837310698975720733419832493161528065354775933007076489166477370448779718155182120719218566154758726760365625427493123737014034345329912847089913303735061190742946909293585281949946708323981874055120663814770917501663554618857183597008487523932126570352791193398441144976646192600173607219400061593656075966116479235334714838034846532354187917134600889093708469314401266465457342709035344669182729807990355535014879841420729998124815321903612942988942149757041772693514949955048055227426695869968574987363483122913373833920515334531003334367917023153374653586682265613098597112009154540429124865479209746274019755110037034825410265424625300774773175295003038780197216863058290813109384212745725760884458227373595136108653257747074469099523693283044882291791251918461075137312347067542244333681874427534875104746206913801546285805171563067808485346706691637061641841205005811222466599758279388174822110170991340889281582187610278527328032056981850087772293327634903134190487167905360144145711693136640446758103375515031144019307646616834085344546130780405053504103156828977645183979713615634698205305900519579421732166567292412862425644018799108633852639415641210216209006091834183056657332220551824934129848217468323184229761462371196847122365605122624399121678559618319160365912856255300380972549410333722265985124975033678639523396327240285821398870092351823163645164170179131414628216784829500566084896984357390593572969337233099627693714532999831720953806890242632030770983667424225510833479452890683425268992172007428286706038213312369886003074550752337493209287674690082567560243640035988987904574992064596362552222729122220815138366608764004474050914585770309577150263420229240997812207413024239569589009528516561308023858326405597631581246626061600685684304731445470527698959686397737108584588865777660626144143271253102422106605057858297129329612979859116092168912078432826742019469014640573635784696109666977716394502745704424470346800382224405439948982498864704083141074519514284391432319387683963577046603364549160406845230334202131262051966613130306497346603865462378402558749251309916039081876636588630074761360729871363230272886518435698324376581927921750389744444511994653515497458036112366799586923374966737637152236337081176305384000154163459730287861643871604931436319189201313416754954785269056972932582441073104832773901360713713751014184338917434635114800747262025120704470714615174889394318669735236597219431413503936525102597339892701023129074337239814850230113752062727117586370831043827005955603026137439477398817337639503219397152442607336539636680206407899703282907973928970754544931542583950848135841090269039414581270412263196886737597652363791694761711251450814605550015163012331846964157243379767243861836503960623708192069217660492691646807633505720556672746528978439445445373463781499482607600785792313665083692223679245615856576028151455598944307641627865318325386673524300906519537175947454362148809106716203680568537291292392630445279986432252585837960443585473001949086056299922849510554985029350483424244205051849005348561857026021474669163075540856745698597419986602754439410617704370568619322344290330871884693572089241654003310019876825743859921041530778442272239633151297659816854910400793063223701632239751414296345931847348410427800648859535934966985193597361976235855485734770472723713187188769917463811589394340819285765006786281141729155496042105880907396431617953638466867945071204339392019442601520195176319490520900435316556763582301306268583653516377688344994388103254453525734530559447538415602694149803492264347211691728937388079163943870998795183346982858773868754298659045630569233679132227332186340704970302083399871836508005775970752861933526426405688209958695190052218041894634122200424404306570618901135422730082057354679711043665061146629377756058860856236506066130944466110166421996673342102019475847459789700309735400923934494182327961510058568661055035618756322119782037784370530679800622954230092727602425130654305554746777638167548360903265439814465897554945096288342662711433752320882137652961672868816947074201033284406613559286790212090668058582121812541449915672691041798516629041823007913930821339656567345186208620671399528770838798224068246905009795564451001178957733021674945874681028242636635916970905884930052046009015934789254010414852051577206280732195924976675664403017844021925982415668066016256506731614055834901759285842317993734594109834634500757271304490145588493503693656111230977390356066163607071961768174003277893205019748765482298223183727237603655875618246706714008530269457755333430406590303050581780275601800442354610128422707872194483739234010613599184777218629697613433083314678141830456008307995557307592632715657939876806064597482588334637169239568591704808318312559656877938263835736980974559077982729366396529337269993345704811034450736411943475549878887101731243389538747709649231058322818389613188295687981918762062758554058116320727943182311373974683488390588456227625992981080672549238795887411274009639082644699525879775742651057184671966605674134394664802463558933245093849680101362598875325904929535271182186239420739908678258970955381196951824121891866077988316740137983699606434339849278661044996328368524834284356558981544632722812368102773899275362924400644065891967924502756997975114008993163374373994990272250621143904029554586189663401916647698132008270187410652941706056575871694033112712242371523057119794097635481811287189943470212440858342973025072177589547251458677411032191724015369865329235999288801309686967921159347159127755988155053852021015523338930338338983390418785517052411232210430866701279958690514139719049516617259525646695816724439756733854798284494926158912878569808736562334980078547607399968881286351575949240530505714054634378180292109761583135463220450630554969838316550000566283702883410665778786867627001536642225249667491740613372216842095135216249781533960833558183371085885589303738066289548646628980055085049373238665499420940940053600183900308809714301048303894890508398002500472966407377245119775891930376326806831681734859958636092611776791373696616242338889195662837171613186739259639110846305208407536117494749188088652555116020016745225269241486958798798605889376379101808173459427280712757294434356501409325918844308688688614025189028939872007302740048768972178425031379689918845711704641056182074364530624764247918670799119363978017110727273430364221877001568147432256199515700075308408167190031810798367610819185601894945357749373832142848969160771139451108623724203813152329334194764148959959019884323914200585061393887415571289274962900704372795211719791199083142983559168235876811843986216537615761739146493351585427784941510706176642415362952867929561592864311307935311741418361574307308052991471034913920453938037432850840400903828204843117173708996858505644203438015760465685862214328935024492174380823723739570385900705970024713166354513536488744096979756600986578075622928787319795579520883818756768026643126072038736970020797477142834506402731762909277454354158517138937497372203855269116235178035451306018757706289507509941366430745769123846505810417793975005344582302493533331555299309647117405290924141418455558532604392979377925721681197194302306464317298848754084848482366405430110342835055354609116251504147387182896425228041609451879719965308500476512272429506875389168793435201087047697042040391425985626340025749209048593241943215617326567601440937844476611823320054976533627347947757664521000264002514482709605656345303967464284378985698675953294929146023145975306615175451695439727893713480713393956271431101975578028816666776081128502820558145942315121779146448750590685941490217179548183114725124354349923259632952931739123871721715916372552160065132713573785339041704986826013295194363919295480358023817846394297941960374702982818825632673270796263294924477675718830629556565814494845671540824392252383787734405927310512593292002550893792615887250909375838274186048813434490411363937300369744364180886352025935967247114592206062586202757120168359108559306119100519072415464957910717114172544919999493248997967970954594900125866355769909366255880875136820341509505028584841026199796283839323707771199082742126810303566194854129655646764072705448983792400103699974962926121329046449379615602694658834869304751756383544469018958539431223785515356797131942952201371632243188532717368928400199065138327973572891637420609766461812042791892727748874598903719723114519768097394488196585829359081397186119903984960652309809573405837586896070165986641822141066845502478575345086719240555943707220309860860822998332014695692741970074995737778788096114934928799938957882009735153201772634816896742001457897649146514150494777092397793289519330610149636780291007235412210451574684014194360139636993350142701677186498686903604299891927700603525628093631093865035764844642966757214402251063980222434844630404958724248819254983851909320636461856918200039008896940472976783151476325074113300713859186925079461774680072403646836969711030755808911922668956532855276190004480276156815425503334356588596089290598611202536152735529215538198192424063508155707944103375493946595127396063409492841438197193315513572550781617280129638435586336584104827060359171494995759179465314395864310931879889901549974657483656356133057662982124330471645359215653533197076578568527083572803322281124080975781897621254833637469757535934812675418058824863325135475568934606211414478429509887813240634112457555674474117309295484632702913885443963781279802854949591065054844614463431354869940767286352362619132002885114554610986505021248592293255617233547624346749969318025286192259754223782601112735378918490256691602772400473223483709102440452284557800702736915088713899843906423717524879005110703763423538208175894997257755532353145774207564944555271378187973704504760900461776494134426968794371803451979341589358601583227255513397920771862365766295171752036620933325108923769893318307742414350884486169062520665821558799191108190674479533009240083243616601916421179377416181334364541108008542057348575812396901831547810439337376316422449104415777830276824749740012579941697042123354703826697423036360831425604191108683706219796820825778650849902203367938579967711433335834794122534775273501026649654371527482174215964442843739547086736824616473775990938335828652296607259004390306078790255783649390269039318595119272065856505830990906734485777360280440243265704716823762886127916159734975877309588779807324391882471959451895039414704584568493130031999390391319093038745935410641728829447325730996887624641999480293646084536451997011411552368284471794975709526757920395069282772283963643457468389283637041787275821202727200714250805324455141227819440253590907295246892912580224615493359029545974683689682810740309115840389601198042244095687709188648828613570507295578479477601268739624804806545917375181903217303359070645915031316829112698379347694029431257271874148346897796288025162677209668280954249723916331516865050932133108860539462106724682783218355842206112441925986162833223520262598751221765612144012201061864511657069914896613888389304599763190026525632268102358929669965883421115889448848178278028030107302018361745334670400186748067122565492116059376751468887390394385928461820800626739488375646960808052686492571449524259267531075874201953561710373315366534895007555816816985729005534716738237402700521053676216164930485296092999030842013663095268158221063756862907859796295755098112172789186806938212979802784398001454383319109253132332458350503218600433440489675790429678338632388346679929596909166861122216058927068334905154977527478496169937174333856153908690125315963800023620064012253962432742214962864304182822651103757483935846223185858822221811790309697061272658201988188198366068846420807016027078461691704764511811115441365086911103768771809304619541989562500200606750723520539496379527983372923105878952749413377826038078638277439306081999976127014739215524765189178952673209152265676976376726871657674611539106253384124549059965259825223792530603198145775862827779169814985453570939513463780633263671533187029585800183510330072090034975662653394671949124893317416831729672663083801247570886434227240869218328840107803412776163553953559258865168054240119973324813036827457645182960033117271518033492944073441959577983903924057276462261743874823426485486500983930062009131210948669781553050749255722495808062625048913462210541968610546541907871669941009494993584883177739874058783488924557557489636753703839898852859092561258744231868533017422401263179408963725319086463066235173005839129785076298151386573351816530292396576521050278218832785326494341001971029352208738466565170703188684501640574906336209261636369628676628961079622365618874776753479844738595283954387860892460195940459617054428608425469894599259333351181644733854198091202306705893570058564323219922864843723565532858117383733136718022838466537205003366240972843376540992104874515267941502805677534456030922668218770831728068866099249959096026741210981776712352879030476781527382346263973841633016430088959633288436385099155025375278144114385028877614635867945569872458342789035612500677953054079648291294842462535331747584488784398412070094015689260641421269550875594782763175776920579041751833696330416776617232439626138948293810531308781394469000172182657669779607160879768984688394831819484140278026641938964844790377025441943674608712087040694644880096779593845446892176457421291863136215752688524853977276251171799865775811691845304423317637221256494554143343480239780303298961526116539756793453827973254288921128843809035000281074100559969007907319890979846780583453626514290683384607262433121330915581051675694246313795770168733388351068686542851821906991440814885468320292445664412151253885006113935106019879049942109686751338274319361811336949342532862148162185178795423717073165863734183658316990164125525009035916702775661490914474102995115491327043304635117539312803500170395363307799049799156263606113515776683158111962713081636814194230769235268395612057324024456230700502673812458831758729029045754279034409340513673605056060794307898775024448877822827699542345428728441205510941732180311549624566608977230913488263431196816577793417284102991407335281802220845023484475951004530438969594786324290549436079532736363696540367420538337118790735391088580705864060199465898336867104781578741701221569167511205810806325754720000379504804340526173608020064942721198325643674758405785643450068738594319263076073400224437433181969643129048457394251105828375903574957198638476693705690163409415571394740752483537200406345018204579348879032854407280472845017318564457532109590105125481529041876506266367952013621260753314103209100227999160602142296895339240761346295529753743557845256726227982221220513218492061558662344440821477294403606790193472262650696968881441753167195780732618922877963756496069871926620999532546932490815914323074482451283117184400611381618191732949323041981886067974847666721902980476234906722826782678872420415612324695912383678276313304607741836428349373479040437187683305664372739929241087980552866935675109945804922860986028338901367310147970703849631701448629238007199699760139526679530232071615969730297692824702016899483182722244405074351081700297063138865224577677215185604201562988192490962591449960215273870247509580342728497511135629904010188815198802716067877376223816724698375929145546700041266138072929804470118502345280092974048198007180448016347780744199135148608449749212210177850880018843067467727983682389087357541097234901773165570425022641740675697322688521454229705250352238581172804271909752519879644153001607174112829687409167129674449476592323019189709517629904086522645285005222245864429913091731014301729504671018189356855565336651026377014342166793116395804442920093860155772914916459420115225070708407823406536073353428058871618425197789472257157314565875406387368528366787779718615070106157921087549093370702680522087156240717680647432700512017132048685874509214948711449270848658312070435084755565129395004410198459233707463178722747014242190949649803434488720817973212498245858764798526317395840727782672182875222472529687834528842750115785407217212671208457391077333105616542484297000303733460549150167860903759621291719511105131811658680475841161609265188420275750600471158012720428678944317967970820696217407256987569370707406222793807443249620853362431680452378355785679199820594640984586032919267067911607925897661520765662447355205070130429746245786550566463569383969315232852271889012614039625763507974357822520694209090564836420197560616370008533077128843170146471905197454587918667832278096424473197521183967851437125467772580837300988323679857232205345965639380662674810472506511155051094837468267382087262536704021282115429412613620120402981022724559769913037081139133557368435997866729892531555530154876026936558678884033265635678452393053568454985274396743788169933634468008462608290350681812960182280703818824464424813066991567306838812747229310607216835930535335783790957620493343067993274244653881837831763020283983479585228096056612637189085940188028928509383664195585455951576468507896013252610339396631460718579311410892669981155962300573888311054739594481223053681124073847948633596017109745295573189293641340766136795260526199487597414612357706103699497397105290901404033601688682908147671776206973079638361265635850787987907489461470147789781014601709159669806614968515269160579502003659022785690988893756238363772841802871165819351747980120198553186681794248071166856958162920434747068967921078464691652620204392340810467847135034063265267794226519897378341360093809373023710525432878391311913593323236453201615748602755511802384522585550366618755929244547248432558099753070628918610566707234722854004505759679358966747654959984460503940259749093325606075955783975013854111035956737204062115119822192374951031436817005131956442826691840566715901713002185830256796053799397201578676012622471443412822373972422210579959887582839691015973711032200368041548887597410414579955322939886703371945916680119495947223566657350317022911784011802605715347884760384531953913670069348093712642886291681511053570795808531313128523162996030996954494654832373885343800035982085362533485026156883308518839491119567335164403074788339537686250386574105742067768896060769645055567120153228185022418241168175315657151261265116069104652665933707265222538117706183630078229066567915738403744529090934229152026622630167247151689526416241547889629805415300264513598474039789252514450201612652284656642490683873109202107207682860491290066862726475706174526722218881229651033608340661295743995901767328156912563851204665626830239091234496475451476510593798007814428486744750180852848306196296069908742859827493812276502283331612458758345540869652154769337021540354297392649431955990705393222089657734608259533104096523540970011591436011329272803317163339477186809116363689503456242594987687540203145079309729026714143548376604103470403483455544570186942067295317866058999168585126511267568580840569845111131430069425662081774690449714102168173234797095957662553196352161730709271445118174691236752535018200096382426750651042796388914346133046763118257503745393405719291092458422780274633333959939929546806871168977220706915702894050582180126657363455612674956153920915705193467057243617801428054638654459968181473892556511967947491873090362794909351085887069069624614249722022905349827985125750705695369368067583151829850733640914275869567871277863026723578656805301952138100334136989866725482892264924362138110031598143710518698579165398065086822638975744894008836314570724435847507069983008954042376128715890281125344859169369342532033370228216648057862250460904370491377369766220679456761411170101513774121674562357344240759217950195882364546282168306306080881013952300045597707122896642800178960165596134602255421473033930580020306999963870945668683801439849286537112487775581369127458855584019661229669632114111079930940910908922518048683305998410982795539085770827291867626506983884481953005163258745521651035965966728187401864189588824765280775946219941261980698451577674163755638716684524146469175455787959437689257153607343957704064099966116360061817397142411832241467348775045216679596954697247120552536569569722621596292821612223997708530735739716477383810758323009812395590989179265871146210320023931051199147629089962865896904069152321044287381121585483857823086235898837287870791489685173550668782850372583926410670773099297607556523442846930943326096554366465466898363752110481003545292999034020733301505185038930631410836098926583826871376393605129564781488060246240029768925087309114247280089823790155208896496680610364009328654480719662859524868032284779209305721707582606217989141318718243326323914353153288044329937251836905846651598883814912920649990822859531645669872347930900792101775628971068328777467808465256369592491900956476067836661989029257603933248272896733478270576590257154099844544392202457675760398465826353446245385914075021559132643628615147975953204790504519352684600436762386064540861187572864795734047923277606940080843223681033540100316810558956502378492827914609762582838583593023945498997624303230756483424117801508183511459129737891190196048985873967478525249724663890382149053124864383819172915970870491519774678521257462632612669325681832370432912388021734496507239274845299021758145788007326740329247429557008019949671091601100692802777013181918062168116849264938600861054988756423901153614218018549479326198611431632903518204480146871546356281089095080652036675939675280409581833103241638754207613546354994383753232636797878683749609904029415789486418810906874665085009963067061806331635538674471471924942445329615593730778065097778917034343044900567538414567865131761242179041837133029331072331476846924037589761193978417615943911705882793716990040881648362268606524838976987839199402952389805340977157515107197065310521035408948317866495415076644647560141413360341330955196881291640945705539555867371509772006128351892488011493305166535580771150631807833187155927505108533018481621163092834438774083080718911285288953383198845958872629120298784278163837154314329858851314446232168812779320467143049277188183687350320897970118814790739036836334794918778932373415093076235622302316622769334771516147478548647296593617277502363530331297544669854666912477222205869341406628051608403864251215846403410644712994499447632443032832369914602924758914143061575379597389646043251705025457677149324028453678056919167353016397831873833661986838763276082453036219700497907480794550638217048538680320124752741294673595496156322264172160721971540633671488789109474427502448977475158013634020996890418756523846472470691249651090240709469862401657987118788009172864400330703721726218631419677275407252661357257651955791700744020845642262364616138115188243269314478313345602303936182380492888978648856964776258713417703059004602975868435716681923696249079616460977455847185648092898811781410613357204857869467384164538197405720995187194269835431422116932792821817170916998166087876030689371467231249321552556311692842313920002993112799025423984910167417951592846629014557761687126068486427697379549384019279936683514217829913762239987593405420928809995504922231687020237459029069420451798100414800265623823067728386948981690865191627881120891398073229946429104807146550417281765736815526554340066529166029702967586577302184076536784932013062629094873852107309947618305648376411577709173082985742385437905774282748160066648033320236111348778303744260434465774214700025488122493651590086012661416546669450845209282762881324513314929089248581191926119985349615992862789056230843324961766949282030142844591813703555794789130994952321547575774336022446847169446346440578202129054679097512100966767209010096584235124687683461787151495321552771205194707710661110522314512008162021029539046702741987658311036090887946926930555625104444110436932328915362897595238482670828615475738483157491416088428853899698145412694163855780238278827459892258019289262355083546644559244448667188045386926123879997322335504040130074808719412431719586835089430666599775203042510068163387318105941844291844835095041197574462806474232690522992763269743435839844113467886786543792134888125313466215027112886775805271513589417382220580056257247177848815936075629817968604435847478772955712962718032403163303860713011437206955750594962329172209875942313938713747269390945907013594470839293305840326247163202703494957540012309166667776130446990567963583287688790448481539954264544661305500169657447839927767811954564690013655499615758795220353940033948200824658818527911984069708251774299151044296190285829072409568308623652283331776815014835807001217230862568522134106884370665403418143699156324032159389687894875151870780277969212370529912051112834718064492305216221533922334844454565717400055594603177114653239684962046377659601959401712115271046387780797318323408227972052600642817675607025475436862978680702557148487453577886762703131646129775430289137969521158184572336264852161915669830830419633148239015996732378478105905990230407233506959727830468429718017967062942561509801204979357967579086782035121284943326707824890687854416432081951687446067647528144253227834688433824795179121008973704186157019608117358712454634264599559169205628947963691939099443561918664647300434718466652616438990734666494919765196714624878338168185752685930706472286353414426745209398460696977386001927810989870782700231381830590179110407842845958765880579715521696753351455919821766435980308965358862633757461340774577166171392236831763461391597315891924719027632201256699751445948468301731307735077346384886109240369715314326936345587108465905626799448426533095401109739094879759656988367083662643265507697033083496240613631195075488564935091383366479364913854068417065572879016968780146211442438397580231313187300909891821455450878795443831064275643852638965778816679012505975583070105398617040418180809572836595414062952043767115640450384625844200178402725833370570747034297213852202875007946697626985513845653728102450925004836850050826820499789988077300427318049819359964328570011163375864909241756275112226237484837950435921126836377273319462066062930869876951586550639688462766820056962779142490024078151698004829401461002156675456289057714524471467526716789652181594272859655547867827071471234531904589290240770245436394100519555767369399147441812108966478992358551982405845336344959026736625608811013015466408080520615514886954660380139317210211399144014701028258472109071530037675919136323819596283629486699406878602287507105834790453116360067508202754869381078033217328294940826882194318499771902881395650794367313678631835093290060747419661606165689293337402487702019782004046703613123823094896591522311126192681444012434346027778296439108889251823807565531199069329764473686421569767535125499805527865625152266330294344179088713232120179872121558682674657535864136787026143351619380442622096172906219308855088107453924267243206144217113289929129873145268688668456597809164232948905978043455024141069338401415512511137918192329995930536599894578337094953176909549239076511683268693772414719428223394402449668707184692523430344832788405250346136334616701411423214005622433490632473223792546304443767052809109120172342885927948447943834260367668525298682860555626801828890298421264925595236560556226225743457526220791327955467740187397660495755921740592984609680700177964875083844550083532797974573713254202857728826421560068060536016973013105203895564398371397081741384809418574330224745772405010460066642577043193564329196075102662676218210667465697197406932298838814842322332139693199014862626406436888338492350086466819201000252102561144659314398422343298562634020362010213074686210025450709330239261845575376925309353656954270590413541894433462430762891179986219802116433734604681629532562094823853195212228361021666193473870923672786044192641252721379764606341231452588688814862108959207855332019291925358356514950170448949822503801088339439628225165226061915266273792493164975879329942546640039384061078465759354895356235649075830104983253205080884006524895385816555709872295465630257084007639490977270113489673008476522769892909038315533073971884998648371427567263132559887574733273227001571807515080129210825214765646979094802794806765147137341858798456385692667727454670454238179811047341781094950615102850671672509363897162806643644426107337597969009087152065062692191409086351010510611444644512789026333534552624787198915968859535762812823546410588363023111835022347491966879338615850530048600721552783209962352885174615154912028295364009301777746079870500461333769677470485477426483735671459647292893608581057294632774963957847765468924002838012384460188243933184259048281900250980448077524211756216145360520998643863122865919589411317131874234916218272491482887362686562546980732332758172897374110456321702474872342790819961878117215548874614793733665273180298431236720881942708867080939554944351932836762422856809437235812390511575292004264737611328181772751658291682652492887188084393799941470448560579614880076573011040877289836633705421709932908155797311921030034988648870364195894178083577989943518606293014821469999948574108303619706626770235001093179148845451352830090813551947267419657151379826050663993894277138132291176165026830556049969144739308586767655766416006845577423446557895610824151312481990685334669063188678257316960548182714528938747324496236754516718589820875067538972704429195528882427488502939269416216281997978437043370106828104634737716928774999121432453398205137472980894799205398634650973030298222562059204552080367732167462885521746784050491751066099693842910717467939247618424638429385014632085573536060502099194188456712661941777213855280598131326387422925149022710755855021031118471975895379599109690011439151265378814451563068747285841709298118139948843913931802234664195704202745204324135115949626654543461617899118809916094128422837480589842634253007011383771690130274839809571296676679257949079970218313200264413068669419680089068343504162021162963298391666534121620250498152544764018076551036381150758819039671023969304274505986646169151427217087185122935820227405632531287701776610848501269846303526323700899866482648248808384583294522480977916917025667149638085244230077601522842871841216745605903525799482127946561217375417455069141873433045937512477526028831738990348832937760050279097995773435217404466107317646487999608884424002582730417120791404007695783913768864849940549438244143555579681903218559499300083576624116858389599309224611025507985399413459666842522988803346605522153365486822869409518435329774904051005861783866331356483807079005820336607631259771707227831361332981564970352692748003403012695803372123201237996881126805040911762724638270637569182912089266185628527421885842322942310624440702388577466217994273600279133585170683921349466133381920687935090692183852276720298398851858795622107661226409105022931760224322647058422199670860685595145365922518147651822623137105097017306814342597819121446081337881553830353603423764965102525881276867052732773449835651214486729736398534796857056702416677097347030559300008405690154804860050460124387727064677958585880654175217227397611680602800040907054343635912867049384286608777101674463823762293575153837733700375638422392643317444617636974483955366852779130893017919397986681238795576477622898664124148558021420163975186115559572340837739964882283154066890674028668440635908039769527142865165019698620956199909673100638306584433514709819283159102647110533664634516580357020203365761747672029537451162765262118036430254180205611793642132209276588656833244280979495713273676051379885306249678551718867547832151298648145761907905780569852073850416625781883907357374794675977186643200725735846743430743870582560957867723517672737552785280621010013916679724953916286125901701742861034300833940743447378571753400965051609068936176096846295563684974548891949428993898209024793718323052244668639631517222223281148701120390200760497930058940088396225152368055821976470251022078549059108589771576047306234069964443948026619601526876345981504924630523102682167084939529934339621324037038202758581973339756390336681893843826584199072279963380619439985639715833199348430144292780512072470735016477287244376739389858003250055542789347175154650115298503477939234333285449513716957373436152897539391472570551354656237459362945026966482265779951457594204096648105876128143368808331015229928808150396487350296386429591494320069002347721839005646058438992539841871832534845837137664950253512207960266702936308833699430504739732970587172886053667848419655253641522858087986768938251233259529282601493640073792437429738306776591671722944894265534808766664248970701855019149827229617681932706515640545746776593144524903742272909347238237107181570834723090360324853395628798312906577978458793503139400186707207712688284848560638796885447801786460356025485171278427168645218490338583603830246684979209639601763102657768810443078634908874904984084997484626753925217373812758039148850614703228682498460291896232008650673336913565349607637333631677654981031585731610220673502590831638866002553081013610047332559637198216343576859883847482010433685549523449780285184569158086090336660200996193153960314388723274704156786736477953791188270484569582661488567985042483689462686896511332803762229643266771459932823961685402098830334586357701381056105761305889120093051089013234972910543076478489188030571352095057603982700647900046520369000194204425176434609969344873489983516149471906583612720815754187082604593341128541299136214383928200069514006606759504401455526897670905191388565290098565939923980705952745675685777101676830938690562377654691929252434380069681916875160316755362431249636919529120814653112304975371039317584752112334532712151866742203518510454440586977861328488562284876580991697738843791033095708288104090790639649938867329274623952175329112573198412550483043376106002012082141747462033732425121183542361504323955266426721163913568013271600359676001130221372591241956547691342510195025133303836511057352362354482542594195331517506870970724874327873391036526103023819940464752485040880067633079903488207812031448831984223338879289649701230361876252206798927973466052059297681837209400505011755933456845754574870565767950300909072553948453401937414806339071064112328995059849818290172614885861908907219542970410042625528211776134850834239902259826612836037842189640628080197726899056913779478980600005500840101503667103846296185444929385318427066947643713804773279731863669412520367130919344763065660336737505030635023233546992119926677975887111211172791536928521296610707073442864937182480556019784979994968105817855640146379838498253731670406478764611722453953032801494257755663290028342187684785418822926481977021459484598667255340632539294112654529562206688154280289289362327718028140019395026850650807450301274387933343079041467358796079711109108729287359713557573529968588513195630532227966608163168619462115873572227456415439718087086349814739186303220283048339967442257634931392300552021234986473363994929102194044049564764935257779376530629879135047010069852847002864466557810817820054997216104452762352424743645406514113521178415533217324813862656355456052958915503360892490960899882807384737597705990405302074036194835785132339666074243810179839994616817902819192941020698396744440744264715711129397885728720285630841154272362021647705005460111520098506557393168829543048835978512205824477356116452621344301540197081202790115426543141048069665421285212295162503197507544912597359636072550756887883794339572317065875371570989517406317617665693239697277670049745113242174938760571497937372312798098152855773539033285305317706341392257760901301747884508591104826253453679358956125634275345494104131996419240032474115580755727674073998897030286705642450509985532390163778366098187964953682889636539576041801142764473231225271016191579588250408536412589652300944332239426786216540798180994058652339906924310428249249208343986071114131994966662738753921321404817770681300552746011004101733652926371609073471316370024021933223423063979821803697503898891606216195754136498402459428524435125702061792856882804575212328680306142515143646729169153010245681157408238920915610126865021091875738801467336913185923349367308105847196058361863984670027852789629221742792411619950103247437729617925808217633703394567136962151778990921146813900086104365643046098619466430536611904286338142466132929323434212104819653822877984080218508193144681008538748515715973846340115700532367047149662973348205874488413025281728909163064281576916338318565843363769812979090652687431405786723946529672636065248715283546572138962590379952575488863755740603833452202661708825796973130810661022128887214927128061007561683611939944194846811410472541428618885363598855453870744092215968962201441507241729347173820627989069863916935495936533684666317486740464716443496376937883589569190707795818184436507704644934973470901925579901612077984604811363561463981104338555896971083588992198688798678879246370980311366616806619629797804901204656071389191835898404011078880244562589806507156876047314233565673902815851865080885687783139679049834609757113880336352249927436405319144085262669451624768519387214058152395329060860477156631443774912106209830830565852475668306566410331268999602394792156247330145558437824192183654413833395673376737143220693360450755358675839604422713429766261852342732464922123468837386933784299733966125323689438465852778332042508490495863369256769632015776289085042798079044597119803867864978358472873595762885107376041721112644170086025961381266337134173788100228802642936075636725691280150234502324785403444039897291969819403322363298737519337228820757020166696453487322567792482584624246986567835687672582103336872525558955145737874400949239137666170409680774230240917553050408586826713113986275048775483304017872421380301259931148757864230588269740225137094286943801454175988455724850359221316984607003730738862244727191707736328631064853743184532284932809125772429968442708186207448121944946488582205795664415589203547216904773841185706914784462466947849210639368315097301077219805377813819240548999579599916219462554384023114341931320945219037831215057664267829858874114691089278292638392903148703220125822196232539030548781809683989189593126416966869516672519373391509016451144215720366606115148690812715071848859182633624353412119482256278738817944293220115017497529382822996335844388514945863428390022277312462123104282210213734577732189937143747790354808661974221837146795530406121058394094618348209345432271047934367010395447186871218138716380355382074144052128097804019776839761935267080054767817156225839155669682053984558651817105188989079117161013293234843339811550687174487192399416473243469287012126351143233191965459430937109188889718962551399553082565068588793819175042175434180511586290766244267492164939290239973275341828788377880098111622590006225361692252925613530316562370940015174040090921697798739176408004786855371700247529767642001081172818080198233110820888802433966636308619023721254001897684081651445236550255220968579294401858075352303101949746659540744561241471701849841153546336754318112940455275469978731885940813862633842222923070144814260938701438046816876862500749946346308292480480258524688417759334605037448529180862879910564891844142441369433888584149837316243929712422754339487254575022917856142723318978757925444141666077760838278646828546030643914814650659919524322935512572278649775330554169294074683600618671150953548629252641668218334287710859475312444557600477702710624223039618599913512281072509236735259361158152693963808964911628430325078917384911880145857759637429567521825526650415692072061880442998623735289720805066722278936294890894564860760870922808503723704788186057949855089145512245697293730030826836400367134192402686869044123631565428383959421205224252550149652796796947263235997679871350178217906684900228381862958548156195475109941090029173036061810889416844800741132651857598153215964855068001195448322265865225005024098245986605179111020558301681194538193390876828082238896753499155591742807671444963208154598553246592842505316014770534774367610970471472749361316499875358889261238793399489999143693222056509659143128783092877374453922172384266970060532296557913116804320432485425370466626972754896719055915067279470837896734871656676863969838306734142111690781373541459108056934897758236652432987354572165976841738131715891206954658005849618577746388933281853192736167185644269775683109634185896945987236193332682419097827655893798674664291319783926181027859177655809625770534573404474517362379427800746214669237684255385004626420191417918848415620464875595754412621216643957312425898730746902200009904205103767788983285828294871425454254180934734461299839423158228237810693598937136891661678342896505313797084118696459324410447971951243067547524031671720003974263649723993749223775381025416996842376739207909072931809162217843208630749019341635839054076523456314410223674182531941374427275764641623761704234233862295605832241335272125704132029179333966962699853136415209791916843580660613512606723810637325798526250076313739415220762939981106358519473521373364482743987100345601859438631715191179388424866261085929032968216541865868043815626616100985318609324640238561417410504736079332757122412837108087894486572309468791432236804714623351201300682135677834996230751723479056869862989583941560384010254106710216859657424424708716183890029913901879311828443214223794083190516424002546607624645109424678549030325365068173909168673741757500354492830003855899808161174995421706921636565476044419702094097285811127439526650072649514590609100841771272273819304856713997247055404144787540821598625665651329707317480159337214229857781179218706409308097034794752478933019172619523731919361544410668618185318794499690635551404611026499116886555789229898817033147005807533727981554174889437185150367211430939504403903584580292081168852899732762664450088337604913531908500517035566648800161139545415041473783573776578844916871724281744793797996037874890925347693823597552738060157491571709410784911068847238497844474134492612167797340356569754520775539038667694984904393431809318549825719040331213379102444695862461192983887058201848808620910141156630617022109907256963343071991406337337741532618477117137682545795452986099462327794777234028106387994071087814477552052476438649019680903375367109470872542039210402375400841799830911149288766750466073439374980580653944817688800134751607508189552246673956503271281408958926253472085032714448863432147900085080210179392397667791472851528575662814334743502930768814880397594337530224746983931954450709094986213036073560607207160624265509208894226582323906308438918561900456277741110347228814601703645786739902469534205132915521789024998082237851432321599866624381083424338848067777201952665584211030996847839966515036717471675056722799182657718666800945006352443721622884008596715199745888308764856111027126486542796548689346413729174846576121804111869824310581272781211212057358584100350807435887340242656424681290797746496089309761131356984723129718797053523012932919242801847279699958615076563207105718254858900200015802083276646421380515661948581907613609160453480667845021276459786564420519264866224034078052491687206224036700464557965989307245344008818384202283818914137792839892373222579620015220762063725564381286335791777963122590104808429968423487549676756535657179877639719656919575949256450920832798349017805578847000792693161847445996546756900747001137614220461959060521082077048013099365547937251630612570871504163805939953448694694179610907900629349658905784026149772278395445684708697214424939563151037721626983290697526239464277822360375486517963413135945714980215683413044623343080118845717346214796504895624591994577399349594143903345978214702426822667987062639919666649963499409305174501089121587533650778938630850718682159477296509996399771249609778011365184355701460232019792797773427999995699489430989377485118782876461754173604220043799037476088295062150589913963668565827250357665007100799518825740752730864124822524296614331480962198327900857648046473231529395626843894775724250937091024862221597223353633329359583064206382353523328327097864079782856877648231009032054157920627936137367138949963365616210107378909539339417962242477580869982958134230697871754472194846928473717717101973725564167566113491078755090833295794433614724256130001120652868002362694546253171518840141680988787183920667020433935125096892136071029675769067604955592532943248450834321816908693597256612882811311709964286103941678761469407766759172496725519044301907196391735706059067075605159371014487938526453252488997763879323506266057920149041312138081926902348828355240787041648050035318078645637299172673060570646215938244382146319057536645935493147604660047760564315121101629798153569736100517708806254778340546129072891866153508492769835027945651578760776050230327914127113142351303873064271517118086816514391874748643817960462868095250518111377942819583364413795499003841402996546725680844030120585848583882145939712126109530962960153396763040912071559997041648859224614531951008793107163386887134101523499612042875164539264703647057248938586624962654969777126543571179927923606566058339847842968051421094106346754825701955597111862763295324166247818254556052541944814846450226982666285112482552082082430065362826103458509675942495320696271808423562253286924491460011358790052549268008131627437987039444227408170681831356090765375141663463514944450229125016306245080742248378175475274484654220915778021962583397779758470609770951198955019882184719413747812305443201796167322212368395348215637102930262267790996659103453882857889953288984019473795125075164912527300521565203784311433883843273973143446482540237902864484819791611527061795149197444059803747776583835165041458285622928809976637471883360277832068672710817376382017983734606131114650176953323541046863392608354878447178343655013126236828214914087897587042252495427270363150468480811097582291461362097400847785754591921484921730665914310839981140687246381306751454461246414687270765977522028410435233610997772016871502924902008432752282889132715477228311074428781186251065813602734690812062140653404762384194671149477721385450332049891510973950129284772041303894877369602870304279674169622320090069366475902866590964797253248511042815130681779124664988572465909240821819172596997249118060346563020829169045902914703695936357614657876158552687719407094123640015595708343693694510738057432664125445246622873133039402373622351814554520393558948659039628556854605092254231401332075274258289646838878751717126639977319466852985756393230198288413389650501127334366447490056634929449169332877792541193759186439331021915720339653209537520391657971516623388686347075067901131799287544271657734094251058274961342145611833742329371213331674145814158665328927571011994310091571624469789374205735067146222086702875937707236931391318755982102789729166700391656030264174368020700732117398887031511052772716976782573406334981759681232151199633728166027232518757616437979737238589448389058087971545080179480621323517962085749540534219232842514173752863489956055157362192826489972098350407109751922367488293335567807730580173793590735670372186081383275526047174565469087459743844117244298574282131732114210889710848351354414033912233567397762655025207152556403002648849244202004233870343526231666982402131988108757490520215847569083040173303545825641296938469316933951635471555139558327552911429563321445703084935578997347306809190122996882359478924544052400837382254230591458111637603689152302623568848403916511692554980082865418401022342676644511280447183654043251696839911459427186865667570302541219285371291962392582659989696589384963284923915411584014984881071789232545614445829185166581444319649409890252064399104441016058844734922987316074285633619462397069381681897007606770826827622197354975620781734753257225210512601107717774595046642099178342039883176962651727243417008859060841333078825130048291815854361296920859556212988304295041146793992190721561745987200863769769709294298946717606242579077606580553377441282863488341964868158562354157618886705972041902774112252867527270374945701100891960379216894437822929038407532734343087186494414305120613382501154012466764199969930731328071741393607076997631045780683385217379349718654366419946393024221045571215074072498939340924073929056624427699020695563229573317413213010031514762948528602380489668835192990620086235948957055190328654104857480561187135867377535962818160158851454223123934651750582063450992314810352380914682106330961959472495901384599158812102152657607536701777272104125266279537640465108241821848060821945111029489984758493047206300381302960681222798073197319062389266003691003878400712796241406998887008044096282126096653183963328615112401703111745986894423014140615407443099075411793818686099124096986516606569015477217783252487413997024983094110246902810210191260555455749592772662200389425875171943865240764281376342014788913004079144203222982108506615619354867601660673004548783608045291452878345542215919307396910753929811559393923509182882416664211651097701047160642547537962322878369599657700360823997562060083514577604013420635802834147472492852627369886614620304146369608194556672379188387376394370518250047907064065231308898385742877674077148645518319261935780598386137167356366472760318991472356121539225805730249401177962969025562499405859424328123145530760741845590935389225463898671732790340927104951477278204919201772960333710986923498826256222116512530259192563138925600871148333927809861715438404021139908422054400999317420726633036863702622399343880816477782332416721108794116907879028726869676588255837599089415641761110451149777802780417474771553756661226638839227229616239172668295314652643549881478763697288754745016910078147383242750464058589520700259402120701294986868053712890840330113150215049558971170771047650316536686466584828034026305010030692347474235340989305570173482256997771158408444381605552153738477948957632339826261120076129656605798256716950785710808534851061226489720920766412801367131598798582208254972416430410897679950895020462440654976855126941054922811151002329744409850001660652604836817683938131305977195490373210258158763212743331280490159122828039266388779924105196251872380466046315616223053346660325408105159647046801893290327632725364599394806149507496937446046001828071728160298452224921852138141795791758813159538891987486130968497575963354360332474863266916590335197785059002307467855868613980930728234997299337984029632714617867343254234880345460013806983166497163838713073182281053866234490213057998229589931567244051192357425029863692897375912509869035478338585512078659968634395784450717447214496774753739170147778384275018184470406274769595757946392028892119480150001258023426127991685123394291905912403772578484189247896176992784164755092963056984110892423356320628400122465336107487754988810141370146367882056671174909774121645366985550778763721923453847411669319247424828484594671867077464631779414259043044899522225195436452069417699047517983380771416371060502646310763904503878694725180063400218544404496529647949879493570137616586099857144947164598354637444436617800917621991022010030415841805716711972599224347309418677283701801104770472340153441587253574628095134384532571205801557377116415039964081470841730713390697247212962738957915848191631480067483907334639972185489826252164679884290536531007188138417917692004670846184333499085531379797675609616328929841151315522371212603542123201509820451577859817030494762312576727886819714817117285450653168954253712605575085228772146319061870542070813321449742695288232089341972639968113462997897885128016599443794542530339771113699863543446656116696019004824493571539909803025790876760057137782671301354162661546529796181325308554093991687533202528735160318177651708065721421333405213728853160995822988511817113660836808896872237756853280270445039520292756752591826371671322490630491412300335157398223799451971488125824124938132013795061412503373276075362886717158805597601604991886044560545964851253980068065890661171097783681926737122852498786841256878695794725845297222147708245355800294981238864989895500445365972355997499146271974406313662717736631735386372797706836248268229561807392738126451610991431297369010710835631459936561187575494019509682810536702194212058243768192588132321415145651778547945539788365510575509831562536422244219941279791928717441006787094423713116150827393301908903539778084541336949814340723149646377181537896171108343185328979677348419656496982979605875910973388633592761718687718117665513897653603469578243254593313786351118464795288210222035919140429327001908175686983078913950949676651127863543793760691365291056436853443274038213508153002604529170864862866445166549078939896245081221930487208015647977123230809430766751951807500712597125856962520077311947937243154822863941013487595276492479471596532580865451720157494955400562058933249126302842960001460919037331605277167467056974396054859604497427824828117480559093362332073205873344925478194519590586041407516330903607406560397458175854240629511801295405840338598185631003009066153250755810410824854572226391322195240946835038612815795755896926068399044621574345004191404339262334097250017515623185517240053782193615222634943704347283789944212535492607235434066092426533766223575096229429501500393389940618876198698491469875774635937710611376441386354308823399128863361613350045321808778275125137655672576256069960302758720477601641517907757975993664834094978983061233470446023155265434594534731411277807177488599128616949139723535555659931504371063866594767262512413943468906862929290473331492240709776947273108599288934473256896257145674071561009066337844121267436683678745915400987964496949970197558112526652225578182812578841978371569832540797215512536090489346417291082405253110421044833396259506746606114943596302678681178774686839078811097841572149666709608409854060014299974130331699674451208315632545143736310376516901720022722975575053528965590046962919186678130348075577984669377337454948047160472864371030158970826303114184095954855768722979822673518949994884116759615001862051310996421346504646823236526758881560253957345203442145521106667934810070422961280579555271530702574744522499741258474645715422978866955208705072974445473385955014210309313483970329129141489204089970985658695201321571579180105944938899331477850151702304543972409335978151126737618838927357391955601183143499118380890854739020567745050123331156237491749225751612566061407752571290018244108537833469794903078739012432436056889671373225738297987153196557491997373707584009250813215356508485661942788933393071743602793896371410143898643174603650527721741987617291320468009946316720002319612412809006036240084957164747356999611097874367046784341685171355221417474220274476184731658890746552008059370548835307246274114318185061220842289524777690242129224656228322100784833896856559280717067313982880889030263572597171857895598145321822583378643211248781476617220551812709349299423614917111672806450780702981132103589786040500554804216593304970570756011569845408165756868531655835607328656048967753235698963681569532737371016098976700491858667483776984323264934982371300194903082498488137605981114411275750735080888352980638279156745068938151242641463996986037907081688828600045604844994753791906752958402007077034739113838991673798108340503613430070504257637665147264366893687411033882173815749852031234857813078924544192577836279214472905046307227342737879988556619173856386813052869046295149430034077001714855964908865476821555428144002268874329163233471742110316949798362294000890117614219644845440998794970093536660956273250445612360960399913631966728851364859505644543052541585331010606138493758778498434157213611558105488449142373034796701733281927717280214700392921738281639217998514235785580953222643526524717692342604841938387328007114403800926302504398645127745887768716246097910962020077944656008555175850481961249077777905598765378651002296535827803406434127826064322011443890339674170675816875907839914855807378314668215396788525897836853313967785676519094073461143042730993887035051573740969026162493373691785992454565885842082785881546134611415652006187258083914013336110884972632029080681890505433438348167915908550069418922518597047205794578331066654952583735035337296112834779496226922644587330574334529089938873401311493140459037439091206939932228699423923634225461557762229767139201607165632357694554274552099356246867499602794768827434946600690151369962761430578983817442959667060346154649669283957693870844978190706909618080544654372794023894042992089646062975440555014025201756389197740174718992685659510075442425072236086868280808048935811680944329252510103824794818494173133853136466104990482910912364054560760749446742988421355839930723528660225071429113162569403428968784797010884699620522530157234658617032953662668870452988953733588611563616066429327719592574492631278677117075967987378466685549068655875752761827566629135138359455258280779312957316536446253149349881194992060327010051136304325116559202948109881310732624423475514349791408931874146929813897853919936108337183686071611455898677598487439137927139977127953135417995866681172445008868688676357118668972866635946250539317873058731315667597247737413399438254095938629847067545337594242422323119710814349209633060285084393932449413997659733160931259754814026653911510695202875188191793771911115640125815072662042612357001237210035365404982693397693671712083208023979450939590264381586629910302978992654288726309528208116100006398106921965307590388550130422964180759653195306287473831172335536425868649132421949189192311150378435653630922736700585925635873085492769326298564911187500580440869620889284498734894774820085026627891429080527830194145784330541067768178350303394247493050320833887166739265773946004892835007302450001796566958947448913824526111030527088918318651516746099515160424004283211839012896034948222943379594773689686337972796969715395132512756740872116751350227143276593090745137293411156819911597390572712050958431050195115837639292099209611849336924610455114630866169634191606952590730896810403606080437516236599797948994871468763685087325136825175882590174809785578646628677795799081826443787919322957405922458114432206750861315637612490146413971351956668868846210197460343297250696765772860333364567283574639817814790921174670577853945524489080699893969340805058652633839852669728189170808108018122241709588942229816789410081232650016177771505911239255633366647115496996294456264115927773661710573150238607510849207769620934085180341867096763910757752749059582997836450928520359315109955148009879811466687303001588603841879231372450717435882207819026482943319573430176626732759597245418208351932375353221047377213020104433758925868983495470715564533683840866134711190454248636440425951398140700183532755689267395212635801983646526884269698501899903504646185322460608132593831959024140236624748707857391772381936995077283702462805850474758403445865417889821467870044351608946024906297096863826926771797445765185596503658809314561226399827918868441841258583037159522075407704929639946812617686471423082056259529301014119221657192232893932591153399359072835882119997585273768052526420820168358174744916135627739319827773348077368451490136162614083311920589501865183099562640253353864438017003574085657478340450741841029684492761465587224924290803540008537486045754492753272133512513154085468244773901437342820420040588449139689851861024111916329272613820634930779539475205380796748210124932234035529771143466730770994880613414149513943090968100722848197185768638871739924259127711057264240843903148337317931903436756909077996645722157445298312918183123828136073913775325891683581995545279918554790824990747199488571376578344984954416745336872144584374709793869467662928609492794737471695067517081793114060128501733215598887234255176121776389952317198929410766053096196986620783273576579489051896430249534507355931917130275110900525877260557444187519363431466152785042108860074800565216421183879197374270488602956056716677425620111934217871076835771310760461047461266862908774318890482369438608077085629134422189700351202032143779793152574722761579425380260220954465167338663566771318107633231303952280039298224448151899296687896598293178408867701581577390494422406571067091819101823339762731253481199818701885121042613595973400396146809733276759690472429099029577257879344200487047714656121103732281410801261686444072881618462470289158401263797744585725858391114935745583479118358576912577203092562981222965858231244003303302802512300158814158749916678794507888736633833204270339920607203042382639160892545883524354040735343775049104963179900312104267434395635589873162968089118883299404831101425600351953142489911217363389408099264471363028436769668481427213395927769499959688030015956179878868912391664279939655231001162547535361541186833911710643338138562666544851498755711741416518638637872743215547569565219529293248424079813569530910693642449966414443310300658028774134419392460002620150873542881826474531946594219130408240480751573881358106007613765153213095538751788619326151696604227758688991631393434478382058761310398104790879387273789952849153501997177235378422928551151244054482989077453384774264848540349692693976634904167184218143974820587432188480445193492964495501079416727650499335393077507862278698586778600344920200250662110053754166733471617753748930232953256848103517365553325749960895211042361161162711264625812314654083799712184776828789904212517936247357015071548180215338693505108990898269155452935419980541042116351793197220791707040202036025155819968077461752070127328257653008085139065907275596816272037711138112521050871274733329285080078559720873966803417438600891627683865893525936567482240634409296376913938145663434848157301147780952193670882442341508156962586759710669258568270950537639438909573890527188047214252937734527120939560575096550057348878952271460816715920386779489621423363512119401639752749700185419359264554742664678022882222662705741934791852577220416502805096007727842052315245558027285150937848295159852207836903784458624839407856912419644831892522530488315424377127894357169305538472923864083478964113184866621868702198171043942894087545060308884203162782830388955423446804348464243793700833120033390528215471076820270637675188578477783935828695287507996679563524644751504167373436227935988603020221002645842337727348289741930857898812168048346751450059388591312346694027714882146500268806693225198595454514274124553061363700018107613823258779555133683737469501545024644405580043963529896745843508546268769508329151799845772943911650346355879403956921250986948774161776076567085730491098477457778418458311527208536751997352395859556794745742878365115236665211906556935784913787945086173554451678791088963970321016939991884356226793322266976928976163103537291230738019784174204311356552877569727427308014480644208336177867624347562598149412628343151212373903072093736063875223030432163537547758983173294245858297578243954486538503381391541904670916484657833284654533886356694451922028887232042608915921785576273210293608086588197980849817319895015155598130265139690456134404409808402170772033889515080662015680022841229573973583910852930250059337011830426555305287063934978755115308126892229723676194070738176340896687081864194220701134408374780015780923574162439738878763525468398983737972835971068853785824199446098094474057870586742003510804260725890654914867499509046151880876405479348590706253663771213393987703011279175205790682953208041071887094602052215305629722648373742377267562272036633565676740566649187387670011093705009992666948676739980543607068445907943863688256863483486700168266126334037435706929930266181151810510928442897514977609945386531530297081438622765980980729473317190107458322787487776691778447784890998309204334518362011418141712983422683230240289519572769103948374561099175944694638128066327987217939125177449827325005189687591407089929885537381121864390857592602509367055757395182898843345372339251479231609395730593660819225514075973229980724643581056453901369328636981178140809503213514788376292014189642889817086486054929079339262016195134332970613931303191923144037864009263539227866081024565905965886816101348063097147054715662503231672763830490397499649281175568450597926562595023759426124569194790893080628351735038440901414400740656211520211294669980796683314235854834112079781622904106786818300621265900229538669466745154962821676137243715412206315936641094932971010826318230921744880883519926575215214554193210401983472295159912949252483335130616925888386621121125886730127645798941271179294152771680746076041604690593180841416789821169946833479619045985368841403784568634363087154600420484969654610306573399668556024120937506853615011898803065157821580246112161225848865935552723372757354647476912317773906538701915600402180992934003902769046564135605164762349766910545047257795801074964494509616181577899836618095269390732414610512957838790423429402371694768514965958821351473711157841773840990606377086604611135352625580706739331418969368232587139632499911925865789767459159054546039982195803068622229747764017779304742232040401284259786698036756534428072938504485602412197387257088730759693087782633092730237239944597333440669565657063097003634801523857114348256543348482808371743741518166372595994314912417485643197738913134572436105338228361862689485707322288665257912302948949851495597999391484268959468221238421882527975803287645450335012780643167986517654192254456541581580954098941667911265610712802015226453555449837840292946106268770919133016324403035346791205447887105309230271711364828750816035953949929963877266635662411936952522338323911167227679609727394791528469996367904653283735552101658288713746520303144574996144634356440455738740214970163488057390420712666688375224861118743676160230983658975217569747373503411901308811210624461465416103648450834300717178319434221440205739023271411173883642178850357501409003018503457562815740437879933667501061943433764017796668155568215470672667769646783220984580058546148569870420657800818813880692534469136253129379962603365690293713949719248826986505390538888203350447654552835169388381412491837146013510064461053567503474730315324894910684700540072552546514583688481621222819575908888732118028743989069726319119664430592018913907090312838879989365671651009246046467788076256442172748734208373223515074555836356329018848914315783384985963178519388785287187668710710767194611193498097780051771847093175101384208778977532247951528150672335312400744951816614610916600109694006899262114298122875328897600151082783231810084627202970410885300534649502948220499536085822618513928875913143947774413737587611196036182285849878845640979376154173293045502734209177334539913677608728629674375432989437744805508062957818566207781676578037102560044110856014294415047951964963581279558953852913217656257343286630717962110697590351734078933290679586781352626879324793335168254107314957691752001484247143369408525741114587845778784229140380341183953664857293653002658954816688572215585078120044430934872621519876070157248283162689691424125843830341557034014988059532871647737168983555836399623356370043710847873376638629107520939910597368093550489917880608185779299775577176301297158722488892723426169232949329537702670920150599659047894624950556821911918306774646808609187672349693822148178870787914675862107884099389537617200497978725069062020956762596832364161214098266607181711951822572759545542448156123005479682507078227735119859023622563806436087394778537744077465496080197007366551628387032275847568819356778583197303414838454779786572874371403545413730333854990100930714437835812847529343597902398614930974636653097198142993261080881766652367022964952875196235175631400313496413358212668388236460353645536826161708180620714524902128795818818716541574202152337536682794774316682694190238658604862936895004266999239757361509902810956219887399325622970771818390337741722522236722622997456913736601215147408556866231790978675557500712843001497129876977081894034213197619287636633770114520203758620481776760279526637211520994471103255348493476808352154167747480028044958562140713308426958570958591697919091453804403257289751546208697550525978969104181797798968301220956309782976781088527850375752839941289669394833460913919929218655573541363342745294229911490366966416928349724331518967377437701309344306244883105885576635129063847231640745001620412952760886178772940813402786644030245888468680703417894143403226359856951746170142545884439925962658502435660726388692034360599256531853127530391278265388083826045233938681928181039466997546982780333971247596626352097936164290236276035507713549861566342117091907739922882842775299903418665110563088507831830103330883896305700956611141037789405276045953433416172231905804748634769226690416697656212354607013116990389652171494010741198832079138052516051241727672371847068734431976763604431270884165223800898980604499775084474106045395002432856420425045256891053752827959741419498150749538821111868291884840788919548136613737967669981212605247345460339082104399179028495760280041634862471399594337835063244095481213954962727066281332325501659815362214714808456596203873537248779108688314059291119280939286380967698045375634606003066927992747854444529170967281484344921962058146955116104052432398617603475437576432722015428108070583794567801789000919620642787896102875615672077606683881301614616339799817139511279799027969621355922012313989786216381571559018639078938043732434894213938575132464123809703635339641096738928228995843425912396586368427540523187140344816135801798358684804549164898437642145052951627806301725394800831540209284675128870763789987409599577681955330662433988102075898422500299756684123418908487199050799549341516716959903400594635669920226711795000548253545994238621352760163238395296724765676989968494198256373994735907646621469438527100059588793267698534580069543803310504177855236381150323247919290579700256442473021516233811483236446114976901063226365034223909428539370539999078507767441631806305023575862095011129401559276620837888614264429314249012787323214089114927528241081235977135435843188832927401158743680685847333382026627514889961779941902281967393969052028152167616960314148162006073622741443939232861271965780910132113804450567573658384729472755460699057603373366520930717198519587057250210880040386340532615718363901785170687763204721833461807324837167316395786985204720992389975961229057209292433843071222541247045714254752117234191938049191929520766590671083891091179993713595162013208642701867468256755007823986991875110829998390298673046433064321771273459887480807508815080242636996781781590725065060843876466100959450376577050946007225798978467683128680108338055379581081949091110259637526456881811888317094621178321251504705683582084389932574331422310055634389818613608344214619009357683282583544792600029638565675854071982418385073706103503888134834647197260276344661664456027386488332405229768339751884246568385306505060268325860524904503988764063658202323084563138375592632225380639677258192790398968558529021150373631869779045163639978795069052746428241612186193563125454927368619930321637349386976114355964042560096095304933112863358946156731049840230449960111450067055457558826061346387012859210539626686181300184538415449076826506904467104780775659291058502695069893671228227027463770835365062180136917702987941776133949912959179291641189635901857575851769064609970039073034008590188470391125178235174650822399035037150542605337623568012503918131211491529621588479428544163452579207964855700113483333253309451926536129687990699301013110801071395700870237942795938595596436981667117235544902573998605752812251825471137583845697775184300149944799791904024530695215429010121845810876933342390638540674428966892618066473866050386649025813498341854345111825186230562682154535523626023949605320787843995856723236023654262993941832624196153751095622737173451284645307919104675520480766761597551649125403262704677566083453539794013043001874392557363171133049875407826743295464476790504134960079543735943557710843784199335549143946532461384333270553420341818684486478738199900921859604252917602220527592564573772128662013222888204609701391094004995430213426555255425286903956545932304220877782580985205708486767855238784539756817336622519917856670167144595568225823150399350543311831723744238369966003945296174618745633357294128880377106141853429680700519964456830515025478819719260499308866238591063608226738375968482674047524246914320123338645049385956928922614723035133418663728806900058758807995912537897592169585561669656471931972917742926803785383616150977386598660994695513490515419386824816344382160567993894788984978480902784834611697276977191999401304774069365293261616129969582504401656632887588910575876947683398816547616718408303055982480810225702823467692665636253385827938872236221218889750416032452682076752801519338269706154219905689887580317769800435206310267932388725043074623604176227725417764863093879005373519415695174530916998976007116852199168383517711594697764946597274964487820524660453090884100910831105802834990701998036551798641436877274638391980803080810259761281999281163014481671382434901220020781984598150711240876778449217535705887311289588012039518062086585964270752101258009314683931632759103156450189734870699480953799721002437342724288607550363245816227047383922838188860604110226568124296496145398007449424661197453225315226962632343075796390537331846422528725062956556349335469220344157942427744924845889557803693016037177519265847045049621370912058662380140776742032156502830666140984917426502712054861862430025098740323645936162968513903867485181074512687535749536567978983907889012570460669749811945748328418293675283456065697799507003955504606827811445157576945533776349443595278910112130858787167854382952889697794608421083425743088635997868405174709312527503159281121546074279176761305879147453858300163937911729653527627773842521374462738652332745866464580758381382680180147411839959172055005327330570386034824613471628938378856263329230897728828917271508749739978637070616448260082391236708185446309369271167316825699425739486372516061397399433059907642577919141370968520885046688399618258948105492174199804395085264459113484254717763312678955339169805846345235117554821214693932270215699687368815274356825934575217820350556074342204252693009923529046443716483180946889571782993637460313554908450061733286468311947647051213259984299161551538188952563983709882578766371957797192948829396539674515792448366316397340932408689012180634137381375638821393409997445517503577825524340866595441443960914002019691278751691601046696913118859643813277600445222559053336337378427862995249308228216081608512858355461562434817802985645622344060149239435476954556858638981095584222570495944706666540104121655446462419145890241790098640144347993323812605018381096594911208873216309918133596834573118104329663045898566714884937072347213348909501789278988369983698923566787373754720703445746757095475329463308768220093702785374001066953763205608696310999390117851434501232715373190620169221331339371060781002703889248608165045103175632007485458960792470896383777530342198830316729458338946012514694327872798297366381080776145749488218074349010370175904973526193642211814922496207455235449333967667506622847094593713474768960180199158940663307990185304460399909242970363339048916297547334344415564429117160494741463545708549519656990596563053144976872554654007271758152700401407462025410997064891131912302082226280706431038336996362212165047991810699570471214140799157855066143498526953702741610601888868585387361898557235122107525180223088346277207690968016990748986601737069395970269503935088922530180717344998798932608042440259121361401276940051254179930008558770525467385234484238470557149681360456914950142227545993604984873745484925601502095671568844628207395008671667701541746586021470412043921311612999156891455955184020745404783658074850338421771179145528669004249937885117621109710176502232102681995056721768339133012947880043708565297575301530992576519498272779784112187094051524025628987530138283647217832440578120232813135846923825845306087187758064350005575106183917136293772782521489349791179890951847697584641809909710682884800232977587388232237464682532823475301588738623238332236146991607042856918687501534486743760916651705450383957909076955368686660595409444687225917511501526136344096523268069106478089647114915708521908047849739819084444686145101898143352929533216541621917838053548330227274468740288509324522326409925849933536634615227818028178998637117819027145694166280118890786140978097396185386459253028062089090165954974724385478954623302001997200038809717858258679533369701670507133220523341800683979564410161416014754169126881704518146577526102416003921523636038012180533632267037801542824382978130662071508146479612048621700654709256395506580761639833249572230202795248109625561616746720455465554700150276844554195819961643406798951066852810309160511278999592657966419504077144826036945555277315890791078483107953678018556025181798829494735050959378963453311336494846272665061280960859365083510158239614564770202502184003878970258007661578021648834311060765390647063174812551426550560367262149550772559842863071570945371549625163798058249434145261607992409251510601265417695100902470013678990895397226368747204623778304471316296315265052969273371756730989908367000454908570764160680367604788759176390961973450416729922733589426399188913031748759893362246655763236388222661073466716476050135305393273747594638391550063594781289041313362485082297935483594684348868627022408358630720806025035553610842512241923005933606851445790286052683847344064397807886805900219233203052053069002443128951264912771832376102132697855132871356548284099365243971550630529685148429029931568692031325334239065660186995172268373473429601989435359390372461368909884506842681924885954015526400037815983041536217187508355374948709566549932638983342896345698731170724294490101732447787944214583432166013529044359798813225378350604758437399136430566961020720820935060166678518777933100849873065544827088455871962271482095804368913535789438365183546978216609709438537595789645518431964116598522610167765770140201179105641872927004276554967244561909181858294033223189231558643942811200919500963803769061015642558307043608052218864894735367208053960135165168216029930242779991938016140554757499881735521316078629376321299224329763164093450031588584292485271880465276441607505594067872467916096311526957069132994996066439382571708779695718184040019521960944789482702193108486318644949221881758059952635665755249480529866050634806340881964400682787310751571995497385024268658167198871395604738798978048295761189025406408208565813387463520174951134020923376202645022888928826183960538217322087588779613257879105537171999848509793768993182616082167446657492438106745165427758796022233532008181007971283165365436566807073353509893655115340132412648495585672165545231378986423382594219997804101715420951944637170284231784773891461954280745368317259290766907051871281304398935309951386462408150834236225509047878084006412627336293507777646209667255735608513707073903912636993135788356349070223239215612510225536949938232562840063814763328880222528691130327782859230435351506940465172910272192541707092500220583679031539415732951214102605945188633400698059386544629632687087743823636344671161220659081823844000605837922776037637568135814784523917262879553969457563375556031325954771895107846009034116934876265829830639228229598986973640855467031398746819797022077779279147478297616997318447391152469362315044763480433882872825026278368950762703762860094776724728942533599330449314976086237198638385784013238389008569928811947821515651999873174785866209662494086166051817354497706623887520126765343914515227343775533853995677125171397408107509120015420290488806950415844516729272152459386732456455071695743896437168370693283342691295357027187286815590690470358073880913981509324250943452709613924398229631583885420167739109087010628204506351048470698446517942576106423814656206199762986985222902865073857551200619680075298528885392087296832528655819841770158622196399113004224229870761282513357452260326168332791798638322160168411941185889000493116506415325742917842473677350960334463168554456672374950738807343758774496654755600402954301013496844528244779046621938144086495520002811434922138395758338562492612409476024428381557574667924384954378469857239199813385585925520129230593192171226253855067228116459048606132847110842445421159942166417946744280697903528666622125940741854898713517430219543923882593175821567610458759232720846044392674001112295779889971822501720647522446743089168675048872652253942738524415865838785840170466800306175841463056663847124714331503497579978668348840271910164176121701234650073282029245893549914773659250019860644653467957791283611737286878055215122802994823454974531416398548637796515619698472437521049222869892611250654209542538300226676670097186315432202602725315825000153790577206442939434927745250044280271326973597533292924849327535533768451302695117246043983173393952278502329409698901299118600486341385597936434191557871080805856659494525307144025260256663729477852114396316320416336477914580220181849500822972648587680607353534560820204677207654184927608398758953452748296215387678468125621992518927132281348975709328858631199048476057435482185537822044353317756625951042139878773855870309536022109021564999638292037080664298589784273278914278117985949596158104958284141282856150411407953893183033593823823404952008342357858538410963655789793913935331521083456945387097540440789773970226653295569083190607340286571744705402493298347664290222179383993714587283725881998686920705181513958924991164749290383723097431230442354333537369939343645944428930828205386170461615203762172740579428356026574162889067177102465892555834031534429243310653198148253691465462690728771353622302205270034084643246843468203862189157305322855112178421038597449734801105705323255751206097395979883852379643729142681355148058771187353402502220863592910424788657995803028219076015776961324398463384145464027723525304859772663941768092055312602783484480399162406390831904313576532721162669999516067904711012340518071595674061218805056199816683162938550472488621899507847603585309089855428137028750483006049534165160742406334683883002340151605089203006462007238880295007806449672140170603707406001581959672302871791163890163907560380572824958396080550544551992255432787794053086510647486259577966871046577271119287923256643871676645073550267043101401255510304819015292787405531016561854643148731457504490760630790839778035910759022926634475154792620104108553040902275439690964946304524473226835402463496830739280197936750075179780935879433997978433287066690919097010146652623280334181887807796512706357188920425606627185380094585398563081732671972536530705542174814650631823251877611871789378756220881745443626832116918468859633915426736916636885079298315894923687602976377633275884309767905529962666683230048261595782461209895519135778028466629863412563659619632938023339766671604281810908590722823059191777653919599665748191991124700436777942898193513618194487952029607538521490339570279496430855901070116761261854491655326805076451269820742504263460974821076108261959970928184553869759159247299305620877750440721656554280194323973804024191365916223888967255410545267119730470135268275950225103711276714012886244276829237090925139818246631928798292726394158760668805636188982633643932034818115932068862442607641811082942477266339560054541060757819105934023903737987973421294371117125722986353248359144736663564040481989247754658672413262958015584732116772393876169671427775173644131449356070298636606659904747264242945508440375415506857006206253937661483617730028676801247870918311373661776806166792014792598245028743491672462732687013029233608261886823502029923985911560302215003265871422077909119765233771914809073405438857206870186905352469108719792442367232085829983735515115149386051138730066593945465068233847590901303031862474907888078175591699803943327833671102707693248217192386263200603711024342029431645893650505797245791319168387527347725002842152985006686447948591679705661022542211230342449645435212911572075032545159545310173034873456645852692091370525039838797287660934245674300142475570241229960166628918996482571800051397592898487547147882187374880951444241056153063942620511132240632712300039161977844107252218316554036988446371924777313087737518490500482619760942053931952981065250155732523096979355489953517596588590586398903255227467206266542824881926508924649062911162998483917270994907429002522151492188067333555352443887503334216877322755938084262394138879168782423866017724070416325436834656059088159418085061378833750071874919711085562513788148781200618091323995521047816466307797532481855012705751168807049887294102754628142693638567656116086680370348563470819016893955635666411093018206114461024980676740799529247724584125668829737708556190459515671059649416284402035020291970273949913133972090985963077703114084831356730845306793298042269158952863738670794112384959113309274635465887919402522632064511195318655692444183600226954568566655356889016295058115837350097971681489283822299224346443236485552238059362278851033009920172910409243048331301598644593213449623676884955243992790662585700787479493072979773911144957208224186744744212861751139869108199443729822082242507287312480795721492007448537637432565442074010500869742950823535562283492513792079605358030109361920848275619675520955422457240827752784443648413493641269013584463798648581460593322512834546379979518863950476602416478331308623932051216136714251767488982970366497288558934200106837816618959417307306670011321024308859856514872522182433397785013294083681221143664250686315060951632956339727630489783618638460952773670810835541267132230799288090500344493160636788761078502726286790311118695413139829684641992615932499270758003352005806236199912477449601352827334740688539868120104112167943888060474067408193147752751809711682474467006740583766349952358685488593887670818191175382325603127856852932721383183581133574814786197404560124601476092981225808809902304400440723600211655235992295191515073389226956647705031230497643035552277391516981885950782148282773023263399870647474208279922951910608797609324726852621741477409656795228004875797659642594025490808310570646082425361570761182282961847591360736748529988432499796242606667203312133587066364723818930439056500766883822220530826062782916207188251900523359630823736029750817920483159310102261708271687338387940089690570185541798657575714206953419788210786390293430937718118893626284968864477178820025926170953586197181671276404423201950869583872086257786834061845823391068574639304290408991385704926936982697281595794189772272336444048081674448538736351926216434324364139073270650236583881908148398009417757382607773234125459473162019660507892017422809596114233801834523049153668500531020829683842757347769617563511969170094498131503555472313617794730326194215506633770290367258192408086284626136737102544671235332287900526495370318891080071186890696407284662246655843822073197343942991656228626311758030321392302656666055005645378733855932038899747239860185886597598385759563329161964649856806832837071942218964861028260968306040621504876091914726681848772722788624828962406662039154487487637316073010384781444803303781304997640166509725639190494510341986711964532514843117568233358326570083587212232342221429361124776819371831487105699506777026055157342862433289236091463792898963012375124106613951868739717320847592480619590233796425968060224387787916575104832597981126731304259949389842605261044291337713089192565661928761586790597274733733593640912456114339236303485991895624493584146308039750360540406979691023163748514836000696972317562015674866464366511521985708266236400609408656781358497989779872701268460079384744997883234214767669308606097244992754705766121045650011528528554184538465534191655030481499128146276810466002716349510236295580031872189777077537910567755762718851330603534462719447994920513473667203624038728297190380808942522826665393350201180866518404352891728254474160808873212558925992971708494087801356365394279393468258315797690026115615257117582173672075653451466167073899549277743663235013032323421516336779388178317114941577348379368950711702102852396161289522934084662964794517663532537227011614895895955808536776879151271439100770803470219339138725136979980070108797802649600648161140249909461779361357893656914798092693663361779244420683853957908242410614159175762842848096658565506645988851937526112969496003562300362057784100956069372879160002434324560237423213943049290927801834897054788155569741460793077241991093106546791590896882099434386134440182589973907715991169551460830516135023695937138597903188074680723891980830298005724015085026276207706262093381805767605939640137428805346909803404607892901692210111732490783933788119755439150519377033915084563166383574208952507358065821330691857065288403277804439244872332392401785618635765270965743324410697444083365384972351956515277147906161293431203432342883271062945440750262353058484974536187271189291888057672468181337745447093928198248461074150384376011164642097152835108716051444941626177097819279395949849116117694533430791924792651625497630797054856759013290763480488710951163397826441364571682920727109915994571501997155865409475522619841650646353658988455462038693768159557000774818397219785754078643646962646366109572256779602275434886721762098058616395284502450940004243096310876528507198734385134904443561014031886029077153323969667803620806558198688238789032678789132193023041441168429158335812349183523889686732920331781956690560329922256310060206520829754024896489140070309678197577722863539236655073850878869595191086128147028491975959928331770150747951298155621465291912103757317169267439311780510021856458243778051160870624217016855282520455338407167855466346909620451008717704023151814214859749931433945322260981094762422567343649322612927880097594781476772097058963421164238576938904361467423200411830608362863455798234858151488034160214443813234391035515547930932556426591749850047622029627958816556057564595067694395455087348812596730199075556648187858885357780619974371568469152210876256264034161357259013553100408516186892582120495646324576390610037206950535513157084128707633493609686108643302214361380910098043639220325304880490696051794637343603251037651897864890876493127687561087054466231194743625953434095489036073915881391206000931180547687872032676783661789309958011527389500020091567203968670436780077873145547304371134243112212392187495540188226459407457302135133266463003241825772401601894459014574027360352195984460814032248905267535417491783648729488112551673303165046348245283502483581089521140043723510179126262790362378211282061463273917138767865582963251937961588194368426232282276245338658973139245823204799292684821524582986532377141715075206391052200712763395385540905708468522140259767506640763985960844767863250683437275283492351234430093048866602601210210111287303582630537917125760329368951399561705586390541529991270094925212508439649195079134656408814840105839013037506876825507314209236500787011797951661222865250415226547806931131970161027579174215599541801855733064785940656334051633903779144779474867643186820204274014651751316306299685936916500748751365733082067245089397511514550797964379474842602730630173891690831985278204133872168870298273873929043873123740120892362753687894095375518566470624353546207975907513540448517660738201096682371932764635184588937872159050675278617842798613293970818413942915122738452648432445845844628156997277799465603136809414022765209500055154243791801451575889995877806145864568361108522970966397308201455292814513943554410338058558555844216252504524316373238775154689038436457239358312250270856686096087321907915700461042997114849053215620366667854430901516424155828271394628745039554014601771031928253670753799303139030597288772628227813348678167681118443185402538757510807953103670093706659621179407180814771740122807038591002796248420291609116375000179995880025107863041364603448141950791675765772435268909323113867275478240468258299213096014203133877193855940634454919901208553263904789103964740987997401831718537335049437525107006946365959294278685883771213195354522189202619514438804675340072150221488542953740838991626497986094756663280394621414241796234823381760238796060743286024514950874964603190145810171614566839126610099500300409215137817043274733937840386794401662288368863721743520509892212520498280572030702118780680888700674454082868232341337130252548258435567373102964254594580785256487968594801375485638483471662857961360855851291373444718829601242262843625054021960276478868329528790225996499793287030142705692873341628829898493915780304234042018816266745836614206703874019792000289479950145572346158072021864940062842343254047473406840095849319495937082506423846864234252811177015560170813432937962950703833268441844844612977162361370485798723406676426078226435348699844622039048435089082105661713158198486224361998328400983647394506683079230740651566556750067334708926950307930228247390320767239442754687986406633247545098747519246225986573450631787473522817677919283375558342955551570384334846240069621972051030593070289569851155159888329754336194421830344899565261193526775413136451425693203681492973386117102580440708824132697151162137383900480409374837885636562573491127889046392917921236435729948843648324364505711943244634616158718242743344478440108160270804916368227971408429394059616087798736680357906100917095875209855767852365453991096362491329448090752887583309550803667070283336109518928120410985668689567670512090890623327230288409687252247530809156961952127114830953850820244747246492171641168783571957485532787828505579731492465848147765551213747508446980760388534184045482705091700659518575183377346984328087554556079121699979414495816282267489430605514186060075429711791193677504443286222453268372679917715817077999398517808923128655387050201737912119030519336891588682002289160437739677604078479890809387334945814823337801849277535329500684688886051416871266949216921839322932992311954105051320810287821399643232358929780570701918278204522656668056663519253984216616883992392382581561426411630732427784910890639570968495275642824781427485530793626343637359640863770510450452307639840021930307204498807163326347124821793788583418385204253846205622915800414144526876424465732137149397194651464781430096179325183296722965885976019838975078196708766115171513115943017280202647157554723466255796543465405804112433404442247695991892144043664297413201880246404603690747549383810657497512680387776742415528811250064758616534842570196248431984182285940732239932531115871390688655448456615397126204002556308477044147842608180188923009707305104288232122227637769745977369590019139030962995116490122989579275573923053990199508525678769610899667353815009011483258886423383598731738028539782240061387346264072928430775923132695535097740998933051348201580118481011390032988994020793027244113082416344124857890408707999555936000160714136511155277137282095341675128455764097755503106054122637010375544726071109198270479765866541319230397608038681955872550707759614182759504348814408884893797827236077187971671068756510154612845519928871760763810337486385819264388676069881165077374738765525283663546440403344179998149357195980547876029623247528794932490954176260195648165992550050744562345264407668676679083720902427807876451772022947113141607760133375172587063892907602926610523376632255160298361427166367677647983418576674233272407825063126694775295272950579111124425357623348583539504486949138272174105927904576740363024517768113118524648920944008220164541362165716982961670466592793838024254205857557361681808367911032783016815198462076753073592443906171973846182184007549092647547836964631746852867478838901883399908350548921564209867514694320555215927529412524582874921495414323923591896475660042728327727042651950720473711977957820003761558689812651135139430123433576405124708679647444722500406625832788355455448772826269355310159502740389047156038069195689739972164561360703775974142806460100963542757048333598689508997856165548174147811774971282334448850805358312654747362886131628724049514864209306244236880090254492582924587186762462585873886094130706382298274544843016559000028797992368346776384624020094137659785205113930622268139769018555361628873524288096205137284441735009699434587819200086860583489113260900284608000609844469454955435770767053404204239650638662103265566262014785229356900797014119833467063210260853732519669155055775561273503875019716895179190671979410592941063884897954903778185324038962363500936486669349965908661623126683304559253416968867409916232770983661063655245105350562613605981401297530404191728218736051109601653057266362975732457992750803027538978960198001398511233684310832213410550373933950481943366714581776417708948962092837107378082534562203790261908466776034489247324636849367415369140444708302068748716793379627931567840965545985712830046857350358896672775757338740446472355203753244763609482551909278108707315317751313199547017089274847230716254018265822949014034369685859835192389402190738389424708809030346315961472809866054799162883105972505168369887526190062294198182387063712918870794603898692244500160265017444384515607975105994296712593138067213100395569742731967060276551555640116949007497498798542398489070436129510942975863611834268485427927788006457903490450406084353732986282391474953900976225830903568378322276217458940107514470747840692854425683107891887777872595693752700352084742503312037449692145803794995398232034428812066080643502549453497551556298827727876954150297276581418232195192271453874472927921110421531696182616303342156486362060485300872346896481092753361028953142676472427981000094390535667275749096678866142140734225458616599483815414780290395312889440731337677564371991356380412169278732605855518667402697525115486364026635839047349335220723452456765844227298310564250640891982055276610173516170073521036829457387676892851200159760580119066652979355272910402929580973549746314420768911426403102938512095302073220151379472436504897346981816255227651658533567003931501833319720176689641879879663216903735918768058904031901300561059285373975105969462716197521870246208198362369663245677607344181924540134670011874710205621037711655941497295380134077629204650828968115324262370284787714658036770010653369111023306598008284039225003347570479000203264848867087281306616746297023283292949935920860517408141374385194817737544889871821328844170935874754857935049537796662940803408993783032087608613435069644971835566438158465256339604603551868078903103423230329107674048758618374913108425712324048712198995738038151099126090142561716458708535760392762089232512432810231234604352837796681018460064450198682124650520633146172154297072483322437282528759340288070092749168361622182781149853290131582911593783481918866519773015402822125418834810881275729901615551791543679767159080464961208387923682204176457572568680423636041064086062165931886184960172175838446032422511728873768315247491537827170442925502176018689633522343677110340037567700615312205946459840599518127275704608358929344812880798757341773274849348942011707503874542784207418694589762202582861435922183692890019984849605361200459018281615019632723899259485109865753494243314030758227752140066574626519277268307459624598627057571264248260989916002832856202404687274356917211553921033294178319178479829101737704549980486062426930385301079505673856743672915217592847605279632077277604995918513228913691930213023580948715295485508447091572298474467963036757709932647224564874857617665207980784286110121772554061544901109902565306112028168398956837932644175595926348317806264254534513416837193765766288859707592384760855919396737949060987959269886003165954325222907029535979255358399123672066807576507694503252486882159048890451519706190770628949456579383451102511100922313653187391562985348744118650924475363943549030234931715839849035419472037934704545487445942968223951598628320975700582482138989790820985307173105431146983628736678067597723886835595895830102768890237464245298101355639494899793663334113419858471372549258623334278738290743512611073984459902978708514547369719218404067576481781569221530078323600944029298803481185504782970905791781886133823797424435326385730995671070222644926625038576635650954160135059892456418244082990289699868339173609582508300276606170704277116237637093440156918274248980586872456260986384019506513796374978356590614471800448889520760239969682248771272490461747632248144602403974545677206366639229243598800712809451540724862944246755478717531987995708288964996387239189177830779520473949272468617379573096382898939762604168653484506739600668627431518142445062526298225592552784505102874517136589408003463528469856003232237324382737714894835021791740482069144826420798263826699749091531744757395719791340378749866380165128352418787478801445412740454166867390680589145894531945356822800109386558990259354969170605456665327542850648031796415282693892588226270078984024992643891326273427304870300388739246505285870127343609353927970678429936977210087753838030828089436250797270861972895606823007656129787465162120027671223494975964157202252699825088321298791701616028155764984545158198940657362040814111519684837357079341099640403764810844393433163531435289700787755236558296574805808003935073494216743358363673736059573026059204192193000019837749924944057290795723574594874810910803246988527021861222557527926357373592760005053214610331818912405328483036889688673340363627792005659444595353957200628507359811359385832528673266596464516191532704177827276488475285403371925331189720059959659761413452203206933518839980725004805512537004572526148504803603649693377752366438514270652557718233191656645144793799974755710777464853219831971040843205438621470191905530530116792959466992391977147226817065220622404174948139303893380062740261846017424208324168911118833008081652062649701536361826174269293565325704770543053496315937363921752760385338420620871398075771681537794035475399466976823496251557527670931393573294219757419939452154800020200093568311387263759369078733855326111778316674345241602467776424091548212439124224978332503894288716984886004209105700237590313365318270972797147370121890478424973982948931356412017545139452228092839580088443435166002551547962144413260171659145165510844513954028730096243784734323260417712285665028719215329297852004869860529423621731057353774840890694574209755842373556440548441156850885543841851060430597084894876976131281523556200013289214025758681687301988569707806822637390889927537437950694296284654002028255631773205126982489455973626677587822658391159549132284938188005043100491590250478867159677545834805878611337520803588571020481306927168483244349508116952492797758705337535313577648480070676340473071915486313955355459438911979445101538967671832574185939291969190708978979820806401939992052306867958244156877327323541423825734845560394636080721496280873731861157632268092771417836534055135875049190646036799962907542165288666414778177961488592245709715274110058211879790287380313897281988056705601365489060463132388322012409611981123696668484905116656525902794062813217277576531162230937609853847266582253077645334515170098273448608588261241806043216496134138965277165007554964705233573724742197573671042273604536333312718000018657893115429212264547795208838916609065476206706266136518453209641109360556477096528617028940990538071579331396077649734218429127992484064863815286816369370695961762689225259561440346553258828483645944724251983796894914072940227648710957430765641220749968828808937120786746710552267841285036402853031679534488659309055363137293679744275845428211065114110937491040424626747996490461421659019218452700951891618831992195419901551279898928909587220349405499861549626352085053878618959803995352528954299471874244459455064697670859441833322695112165187339762618108770090359622216231615700280817313949453275770683911976182013139507200204210633402120653116596680692638909977056763192956900553530552223647206384562780869822291093356675814280732852536381078651001402049994406211266614855119665142556104714526655330934342624767708300261670226233430735382683165492126109751823149010551325561071844509392502688522375119590976481736837032584269013328238514798395362017787560293385233047064928672092112478598699197427854801081390023968825908324315675628515149239056801248886944887289849049805700362306556523129749913695026046809917150387652576555149928592905895496433412844723405951782101129019891368114156991910057848826842468521276628988972593488688251602082186886368805322457934317356488305325268082746760335231172639262518610316197109042999065523741050549146517374920752533022224635667154358531771178138946398448749451197079816609598229217060437076515830851988580470056246323626332881230712660656748737915740888359829937384751955558803211936005253469388284131358238853699075042881163230919530796975870552802230501482533875501705110942919993341103878395446500747543931407065772915596146046649444736997755299004040553223827394508975098483284221146487555654485205340324147401506492417153094213464652288794434010910738580871103911659299271838229822126140458597543540075822123270147392779215556821917206149651123914007912959555317067081736283321432664263323001797151374887462698001322888445653612712167230398847991457611454352605596899683659821435637545979267291347790531282475832912366684392024526265204613536675820665833142719626710364588834815170408100771264817952786553726228723548882218156376164348637796140298077631854062726875871891811196016051900600057339917765590877170688212127304832337354634504894446133458378760296361195590809088757310747498797681787774299508168445708867473820838318343096736345574932322620748706228077578779494115770073934413688782695967230251986512104115422102369910764981976707965095132970324544499598732255751510259822351719383923438204355111377239170516527933587830981559474452346979629809465397588303118900264147540840568004824054356978234386269710969336630964624163270325268461935216998289263912044769718514876058479796707522522531776868207029512942411091289267619818240049896751648048867854733143567298679754132522810585541499479106728951927911017064635438236919279401528709710532878669557542054155755330814794134731965567567687763712741746406981513312175417364625159379616328375043180918879945822785306678027230645324415681263294402565797135496288835364581931562725355696940720869094208174296219362926856694206603391196683959431520224083634914173707959954194767897849825283813696836707884647469524101331809102208604058234743134484104771221407824255355912256336425749678964287241817455807126033400502540473785785031525735225896642557928248695844356594283585621490491359203973383952615841341844983527693274258124951082403018064133579533535053849485337505151279183541808738554444820387855022671050565319633167374479779550576042999217535276205641567433718033535714205930456220142586199655019497047831667669087603448623007991479887587689116916389496674031860087026716891718665278378312601353046457137960358694249773704213319195437570948481516972921393044831847425736120532115969060548241720863779344130765116154728659167311644743350425616779827463379776347082236750971946725847499569361396624821570959999891451893413216602684105934902060738937752389276447211660891537059573028152469436339963297575661137540353725867950048606988078669422704890806479821982818487931725881486513841890144136598750958042765516327049384656758563786827546640796753435880278341174377995924842502177450929324415201342621696116728836759045396795052310652536973736593943754291203102223799104088609377638604223373858378002205549835841792002982640659695095763262059444235256219348409820933799321639388671478183298376596352217327679883645078047511679002342590688173397252499572640400142840636692338338632312894018255353528836514290298487408022674809043786513340307705235841108401293737905339871896067390091000093309193477964197756979043823587672932383846315287553984564194736352668889709477542923697809821193472260945174825228954786737066424140993079892274747893296145949987494348675086682780766027956538486544494991379965261810659167812504133456691704556523677650723816306016786157409697686934849955107545837052369896082818010937987704853695106427139552578059582414385005199926188083634529051485600786365540166615972070037646384052034893042652039673056591135399388516733870222773111912430671142493232338284208193729343380107539554380748687272800620378372918536793302448223626287828377501562144064892422467917005012779689166788953545902024233733244817107951696472679368814585578002518835126055793766925113070554158529448536352063440346474203859565429284717053315828734944956076474511434789324389668450500693542497704274903314246435863801236484684998426437089809648273098107863675362478238496796474110765840340616825548724786919020513483431777918347934048018453706054770946053771995548095823502711861430258981461724750955363340381998234280033229118667854210074005929067754962878179311865882618504881353807356439601703414095953950600629012944963606239893210793441831871241307267579797218412370199479979495244564162238791363356074047376592266547240645688663428938785058027969162968740485681070313770219321053899355735716503748490429506699525522922747577999476375966343154718076325265180992307100494529312099015621983085067347866644621357244468973834435466574657117536744999743173743079189356576387486586086876510176779274770497887115861303330205295177489923143308072837289069873930213211847128849432381282677360920778458766604077534931022050921130764439084417020468089539182585733766673027731457741600386733161510412358558520749304339170441412746809204419284980636090139910595259074557921927401505171174023751961973098652744048564628767027169458237101313251644874145341734847719037392766157321706847278933843637118879767893225627945323651846046247613304251942683426276239004418422558523774193292367904731748676027880787821759651616178722696967477420237075064836052822437615073415647677073788216188911238253840120293727369043952548248939276197630491111093017403994964214502883031185853206893792959355941050322645130174091138586017910105597536772650112273553465318484916398946276183335967255101618475402667630894948825424790346124673454690191667155819230701125897952387983355453032739048470761357240015205080457042573234810781827189404602952042975648831217463582150974306204333581524504294723325247106427093835234712183962108022610563494454743188972370485308479780754186766937277094283151844398168697211679157577344665533171969412944081733236518251286673237484850510994744591998113615307067703306430524297364291661395455051687447082759772970006492455430035818131249124441254088161211512582543214000233618667169791987866393978570788263361713945859148295085663691961807240485306052862590301164422576593479852847013553259889818020359412332012019182109429105849936183469107880828727686289089066247293982769965115050733249445897215943471826000333269720591714883128843568290040067625759676017766785935237206829391219140153669302196615979162926660403029476420903798045357891210304995028029984092250643630678540077665262720702072240049771773924990396718525837872051367555428488628979291117101969824041576227267262022260071519275211735202543545514932388221540483324475341736054767868352613146830541727342049151155714091934946561917699672760656745988340155985377575519709430748926998212865001726304784489103269269125794511365222509904729607962778665434955202327981463700004636329896753297382073718877940381746984147559070219938606228540934399843889562227588638806403860519251475206719319406702216887347663032042968131211851295409317862967306124000740149095789058891514810766886600171083968476047846482417102991398791145312416929670858962085312088498983115711091771187054833252802347679217357609130638660478714642121901402396854669226282941247936008501768192310521846530052553322802144423317362994026475844451074036381522529931542283109206134743003832436081788696430990326098256693415531824233281158085717840122504614685302917114271593308675109352916755635496137979519600911203164275768181716492897088503059354248691539130846318036570344695919520748088624126216273769629997752334194825448337020034477255437582209516323725373329415972872753984167207696120404055405209176001266222994152984414998580546243147431401678709464399444758317051931889984024414354672218392942954762660924700179233911517289367923723025485803986804665016600621826082639270760995770076290915575145626889455866793907979224440173348810764257791952958233236019821285895037633715016563614968047565925281377002538254496115826561738957457853781745371843290531276317345483863859420662211577454299916967357283424712124411198647680966710047966820729708423735183375693642892000015077660266031602446767154854288588692789161261096601829599303183273862221321261258788425311691254235110221696145857814274249193115767458255126865232558415118640900997243202740564067443546869592039602710614996077190093832326566443515438170166397209088381720474090880515055049151389723321629516067328015977548440306947404871808987836512556409400383381566075311784541649434045470931394634196140729014691328246040649769957429255557253119965586831874947614976439250457132714750956761801428722271377347677089040902640270662341669554776025930020521417272027791874005259485738541593919655559971917052343282494256921680279991270978906447828699403955090987750245261791174582402050489882094542588046737228679121821234478252797564414118834751893765577309073988598277830603600152533844849290278441086628432406006255347642579531055731391908133926630374576131295675042539056981138713457985806103014959624193324473894531151806103577821321393341197078682695493844802428363763684642906005661624967439451864181511401148137479630873939111141781614813239498900729519203844751055037442436711510218129254882593853387727688887058291622161638764520517884841089502637275045964691213141057854268417873647203172594564075476846808097049783162616960779151259634346742160168479969284856557941228338253924719240029512257582782897094686452383147663093057165782168240021364191695199024710490629997351500377235791527174889193553278965228742759489434626460760479363312706994487132136926368351625073341828633881008844628826931590017946289263030500706630060397995638896915975166344792410223932626812269152231203319918128920732830697694636906204890722285515615460980638006935353123722216793090670502901625534938571447484122373496262869466209622669187254591215381765319152911508951326014464999181590005067470089244006315466093540789884375012508839226552045729441409698525678037346426450123531223357173719288042303686769689171395335489191901061294844053275393231097007485497827766387587530308834919867291172554577821662015090245173762787870691352532489386977857994432634225014882625670043415229523468167059907672006309755887897388484159934818192184903659279119379433797567181285137034300264305539947383831591667752605451629847829880415198395572853573315354995200113367488096558796651082644861486647457176995705645100647520137126350197936927445948756002290450792116831988149023861556972917912946644894330164148842337016056844586695038192003025420273097200383565444034040576456295484796449617374984852659232939554624311977721574985722722182087944091546462527040976732926838519198910375209679288927341571833553200048127272621418157927896056766915102478694014010413288524375018040132639819925141691119127128907837644601416316394739830596452968895027214399173113558095341011701740302355217671548151020450617245339377214895886449045888441284939333180337433852964962307919403088529659015281671387851051087762821350911355609549863041042322457347984731839627814476950318794222510659890904674954469597722487507814088755558701532335924364632866730878623624867432972679737153022047817822502147046152426701401231784500749236518590096656193916079028465567991550713975098288792999503559200390591395184669465571156799397053736768772683265023411008447891598470870666797962638542179441354390209130572752831350652010962229721365850162537311243858758725608121864540883674325491596708219494893980587940155293205305508074524700007545250089600401770569947443958942659770692494065736372529524216646270201496324332875248285323844139160735767151624611487211270955820040061733362571800719852423511126444928305260801668490791126031519164098824053273563592531719343112054700158988888206721637021653582453830500303442583425978504077864391718070476242868705811524797734720115561754717763577234276998673748399547500564924055340552323866532153006785343612950131776265177877506395948485173926796309126223449518820236443123515883048701695643631125252539323335045051139463081758670966542507472628722102064100968422869094166117025758192349548001250922070165849515098705740212505568542535411988946172824960636875142653596817023935573459772030782704957936367336913721327476638207476071967660385849592986299763145472674594674987673964374161341202854567990858634100870899013356508295060764225641727127748011701688095088021572134124204747855701187851383228021239383960305857050154632981932126896346860988503657206408056616845961841358507656348609294680271515538869078300456306516850841280229593345429172796511459465754025126778838007617909526572865885488694629488733735127013889871731676460078616677818877925440985077057241773869005905639530872979697630176203886106947683315260372284606796988763038847361875039114047837176651481220110341870351107127809448261953067636588204572004702695119097418598701422295020250195982384875895871745537678147960058838714348119673737337740206217440292494162673049953190664634322745182717952263228406165046682191417487462579803757174956798647751670933994202195953771516140170178070456516325658701075603472731473531356208818677242614710709982647234635324908267546355612798663673142640517808127819128553665704790107906951493760603370931123829256026272331364532039024152450506342898380752087153828014576249310922435098669836479573592874451492730150354808958049447068028648965328440919230695776723207026787170829703621806176192074071462844303541841234494328306469921526785281426781144591160247625323137765933523968060345494172881021294657758037250904466370339949847534139367692237595483322064785597342242436902509106193918123484976492328177801066634433483561905287548315791548873186769514853706053339445191685740446139058495045771145603070205145428219597238239482218292559461104009952100471913672203005869547318343254966076911215886104528052176244309708559466997500307782225949880117962039798686963255594585377426835123823415896825679810633601044516727185792328396369124324591290298978221980829230131207881856821432266075974532202536342496523286270616483829492316658233197623788227404897795876829821164840537856423147355467510242241031572281252074192736975465640131011260436813451175863572322944763810790134972962065946622930679281977833530935764950338976562946264965595174178786982609164399054756363322963041135594619440906700998708900554390677549606413785827665565561858765873579282237517338025775862590130643387479932393277394743532811299832902102404719704807807492552801204152274850815787981474703841288469809791541614036804267342301448414282026361895792154628251480228339302706811445836059278815029871485503571237674137156709150887841909771596454427561038523229469308987257794272528598104921729616915467262623092937030811353938466978432457423464370437178093436143750681537265933044718621150281454467868129647968893334987547402363274578383667182956080057128154840375393367074358628074429931171086305531983398735266876079187544574491540284735562657364114877685721328237869764549206115979806936843885924233400071799582523243059124008940325830192952776094997670281124633639196971837742490461468678133024057816245218349835711959539698672088783390378635534945555955264707010908760145255712534352137112964196834272074206534669243518156358354875734894967806083939782562806484288401415794250347928465880309113688242201466344210699992431677871639636564253716029315009181797998161002185592538420857773819320444203844073257095568140023164075529691424991237887437066385315541764783950923559944647266450957808018939236507059898449141698800641615297610487559349647830403099575751780914649739395128728234944685413428070247969417034888990085564563907191213747900857127199103770048217348683549058423735371347092946644665567381700978235889848874928810971833027429824906690228415296177860435053393377388416955954030693748204209796874799810789723218521087274360559669514586123972261431572706756260120905967007171438299608807542736472036267980139563570951171370323909438513595926961337060119519104700682999676163097346457951168256701107665824731631872174184751293971148023530194990013175596012503552121460980814466991014381848283375822523604797092423142062095808587505958904259961732028650560976511186372736897557905103296955652889733790531079222088258710900476498486993529748957647727128699753443300390960247903517989104663201097990400948502973113990610934972821198819428824058041542226079699866269514775148762268699768568698050319739501589759800072686303106095529619325105539982352765473583169251012964634411204741436042403487477680400413856336467118283671175624593446060797975609740508689670064632637820698186504916911328289115469074127255881649130291486423404730165425470211929386167845271978232474827113302303035227394868320710455548522448596609742882255847357576625122873650758129078213282146794773858424812157123071288419081879995403526914770580031383521008045878077326047157754534707668977647181232515797634900051189562872867287938272143738070246704117883247819645595632038076652422654748366214490729748713593262722730763488441531244803150824008234109954420537517833939325944369539249030220324976435349398372638957716052220062424641315847819542662056188504939564657345291309248533297920099761438454957235996113075585544370389812974824761594325159333740483377279791829615117981679721486838600297951558438929924643579853686078029040080165133319976140452381742723977532980501526352301512527756950048737789495584550024288485961216205898999077507730894365480757272198795625802505673177575107364860958262033550449504267009023702166761115863083286298611438597370183061533616395850136707683285385046480585894600667114906466199662011401175152246780906422538887446681217410847329915194164806681203129611475255250322818249362940377008475513320553100737890827521702706488064842485774430969561333528558108374129536180638437052166042198531792212472983460916953993874447800979836621757562686400548588628922941032351495031971652983443517140226748104266409884655007771793605131183874600943355985178488197868512565903636482649873834947840412551941188185502052042610690876890613160078944283826295742418216324685731399801317206378523551549366099791805877748320457686825185457094843030710013957980193380698021777730291230720317588954158895689426395622530669216909678166821418047625828615799060738753254825074356415625332527186210780565137541104666145674368312962499118600914398058585290511893920817644598603546040878576586572004143225773263326245859434425793330831417944026361745152192953084837809287389691375262967793656270081714521181988937668826437073354434468489494617580351857895494258592438604374448203656494873248015728525822305346644900060330166963986031438664761551412312693713294347997468111727176873414932687227137122201023212711689456792968294714011546563769895570769031852372755850417420326928460563267019332108165047731156375571039400545044898595157276426554065606048576977695911880418044524585464351264724589830128341082846459756061390326706547131714032349299202291304634963501000976700653946228014936534482363974001195281956045697398193895005769074196559345334232851372759485428130907488625789948090771618244725656544124884124604177038892547580941560631406736992639750538755441639511270037728470226354200517993616863017930054079728723251044672628777217544298215707291035812336293114518556173443588095335589012601960873036181789435776545332977548460428196125509051100464211276950990469722224501916016809420652301537679376935976836409540853428443712563783743226252328033819789674173852224578926024472002505590144078720216130162475374312551048021163304266767829990244418812974438426900713371698875524446005739696222071202173840784237071578176481391319530087667140734119677560172793770748318239815900108244641174018781347437905674273302684927852994477784603262943285051877153837455802045190600427264615678738499652745064579036491667164991740260694167507568340886247007019665606995628410507076437970672092238933797915797997502548228991292796600065446970092131396672054495666701430083887131303664263005522894904341812675469954446518077127822388863550048569939510328542177788571788804266475410754839715059635074343707215698253143525090176985252121888253358580317317559904012925909760460432421303671237945672951550356309699164212855860159433977759493414010491869260509021055513810586074715697938923835145172031814805035298934251566453069456692322505238525465022890033555177164924419263510206823378560105123989093542380105043355000721242614944379749944346174346059092615727679209819829213974521696018367003536536491454005537247986664744397107797341873615108028824571567566627722218831641743637380889894305371183555181819199922123122406322476627996616130634423051807599916736099523832525319727552834422676457977651300947365104546177588120357616661667964427769823296426169917645187317164337060409433370813221083270620612714428293713330569367950021018157661378911255729373350310317253201821573347757998978699240185138519315706673652790824243175884759972403237029840650371395074286242541452949312994051215572726583347319981836989705999967888861501123529784264533394174928179299173575008228580294279309564381152764143108660395534548004048356033462000147643579203750296425216033705705979220326757121530080810086270067282130058111085312470146436691218845988233644702573218850862198731045626393872958542749516240142688095031494316037264301931609004303532314790867756860978361901595871028667078236452343526858227802170323482151744562513939731264156602846597091173907690506402821262990837373803690586514898116933033037170620628313377255367740057192155639231350816597553951236982047881617609973102367381208029456403415889679148844571017560103540120661219863138538239862967255277014659694820254146352352810216761986714221386268059247578134298344964303472929774560673350047812931262308732064712107965565240929982166050793479242600673650195811950517239832940946994088413792530935505676535664266918383408441315988194309096831023404338015066072389568978549711351399428220337383963872767974742596929196042796843323038118175838875918483639262376616973648618786383934644469584566726487129199891466320330701667640772138509016391489291397336043075241068945141917383414635597394319154459871229884955901087680853716872200491112200233400973857178348493900342737107977751524337565380806101771173757385643175154987076876898788691315891141643440182144515920695728904124365906350495039267185107260859128551344646337710463325017589036238525618423535950795872604327796844332140751156165213206264247465672924693882360465778217215223380318412113184976018528976985805027822452490672610663532620581376312366145790149431581782672513338963291096228056887203042452679611021132697825478093100348997080502729182728618145148896601965423728406224806169111143813105623352463206338622457704194590405127015367740266322439749023387967181265104125356244831238640280482440619401827852105030732529953288003333488726173405185369609361974973685973284725872623158060838249541473549459644354466163431312162084577058938632914550034408338602022876121091273035193322189352451918506837905206569625275496282229309752063977865878048434165720594218244451553075205482374603474711722113657228224176997866793217621634625419645795849580249498036810360796145744992424690583611296727344710625931589587407141067145855828729156276429631434512006180113206391189997207235266881843097386089651218118679987248923533674295510733518794291787731701454303882524479369911796878570723590086507627967972169671926501240289832421828949532270055881521580300137754310323404500640067777620400106101593966764067011237230791162266830690135044555143060149825591198136899529366982883490261946835437715932993541697587083777066882253026420195845833968437737663313154801951325875472395661092327213157104682477632463276066188680447704696333292110010605825711943834300167585407526253225786393888115728240087473308503066879257611036331043169637557988105343085424446871858754645092391872910045743779045591846637765684696966845808807178769667343360045506242156655296327466443567214299826952125531004050621488187690275402200302859316623207733171053182189278958783776968516257305335617853110552719553829544068128668785197665793707800408479711356423333964784247321731922283612781646803309351958370652820102078705443556983550234929947730010626311394820129683790077375824255272040549540748282932048520503332691112667524614716536000801102330523535231164945847288038469831542877776465734610237978240849185611990691768601883396981882802846885851783032367340925465620356441646649712380365836571372284903203890934203304271308609831660756650574760535475259800965942112278083122074761433275685880661149958216496188380773637621419977613630701850687845492680811745939001456408690959031438211185681428338292916749774299328309750029007540166095370674052402577284038428135781448651313351269994740550730170273080699581408009176318677088212968671828718559714388903736302369180230781823915527456454442674522913588948357184536125310819844730598879194433367717548076493045077659988088916768064180341939314958913749041304447962848044390252022935121902081117582870675575730979779194288962512172605248448993819485153088688347741251098577811194758794223745605845399547103166252310814865724831180851881961821469059362468992119974207560450625243480453800042543550226782281042979951446515349388960461401733826493276860635110155415998726513099214405986104459751606974730340747479602722389992666018978103701926008472214000503139209493059178128946519877843690725949492440149327836215784120496921073087355508622101659250873549520350537689151558856499629098390407606707189813686920327434345564283866934553109516353393695396039887447047520215948881815291662232100062923451439490716552032173535751073404187319677846047556308249958849839656003307157834377633083629160258803550164183943379383919653442024663910721903573416281258671613398770825337756143389247337839056033274639024472259113776558550191143510349035758202198336752386340429914363993301163434167576325415647465849820505412273593717059321286372176307350799590377220776034906801839887779932091760558486224070977346142271637320423709186007339924888988675600381209778480411793346892162000328669866277865237236090270168131428141213172858191854230475860784597070661346749707301049410513106094295611202436477284877319176860436164356389637538012178071817793857485789083345062599632492834278568968299637011257775070781439992581195018544772436891246778486756559016251847939215219066210835475326158187970155145846367805968440954220037005351546377043895575442860367778517152812204094290252334829388510091793710180237830771020034080656449398035991815882715804525070394590892546751524037593606308278763334656843481948580687287289276323717439350206736716359190113561052124077672788706609266375624292813711729869318181848277162510783726225089586390029040079261319805777958464031267012047959427060837243527623183539886867231022542851125385505501708807846288418552798544182495736740768221557280972650402451331047035372489975477245497699028708957750330570272040017906405289713623380906880013345593980600865160960210687631812545336517353869968888385632928371518341214974824331247832758891476335698041288503272281406140130618878144054980769302588193526026411430331369505199058359437699596283039440888379815402869902460553027149416278833522128980697968033426553838371211894549704815720741181424046816295688078420899377753582090388678971797039834825192672265943709357101108824784320448395231191489399360806531890199740126786870595119198884036627341903424099479187027760433786799671815425075450565691845174706140626138027843580635591501672407010974470828373949710837691649360583997438728790422047290678745559416760316299220107605892107643514817832708834287687687750547478953746049521160035672181686442414956085653480084482284140874462954401878527317397694973202602163379676177215207091476914118198243228685648183530256147848987326248197991581618083327320934734939937141040820567011626748901998665944553778121670963656701815788230189369373658007873710233425884592955398485524636114594893585088798322589385864508251972068154568567347478504433690321789646075744173253027493163788198196993083395466255469659120851197268038992577190179576982200591772069579096694023516006680233719499770888252624839934685081249098339784127943883790036676441996177581807373017525061322079265307184709841899038195217030953241197897657491899402465647729366598747555097763856440039196705165112171847108289455287979818010171783594275164301246605733847744254476456056424706388110507880569296261417610344016062136912290297046677835601147523884003319896937054477399176128497499300684795687292990261423807173987078166536334471181352184795989126541000419390822361525011803032931188718852550840283658249314597510171718716430165467202830019009249903708849194854646907259283633143648552358389350919966800404084039148358787969117529825759119530915481781256634957247527595270424867606058597180270254497261549921033506445341851773084115959818480133227621290124744736980976040206639466369937535945667093856562822535499329073188391391733538337616616767312367752567932579536871863070008582872631681463643920585225705405935025647801109220775944626304314910399888676777285293143175445864431537266154600484835549748399537337807365050330994636523082007639899931231532921355769423254313048031292458887055121084587508567014881312382785018459308577715941041671422298350334477242125867953986326867782040756471319335408783183457390478060609175872228513214849636048667623094956703345072774295734812232294337002666957611525808340355648047253713274039431625094923855785189536891750017454911483156144770265775099243839068563801028046699344349234114320165582988284099110980734221309543961417771282259942561803073100575742058616394360111953874686625994569859242753610462227257384645313817903203715783433390105372910038861159981967876236089478365520527664436377355151574480191886413641591414834343460510767969109305812922525362718027018466704292546785214167627493091367649621506893649278747687249362126273379103862743190802965333574159450642873078878443563171888378181142065675763230315524726293589266610242997122816000738653747377891578319982611643325454327162480630988537810101983677714264402332264876508574143047900291940839775222330588255414940863504348032932008642773054927255852382591066673750802401107928206374938583053126446090514806718157059897025509700138080298177755970188487786577255264946415140957152943546401563657267520412705489925705263871209938560950597950456909895093100763849771146365280564640268523863056049369984686689725059750957573960185363527294722576436275773747917123626921335876919856614285542442898354980498093086994570438532229523503829931950233419298681066728082922960385999866364414872141585738537040973982628558139985089405322635438897445971627775513893806301513417751484039643480747605733702131461296516820553277383588428710717782365221986807838442465745993956250283256654020050172938492283929676538744657851503948849383723269856716424353086746676608823893846635562405531206983089269660928393001306378979588273657709034836508517537895970936729225019829366884360946415006260350534820064598462577702068698997267809163512748656441435198244538475185312274982772931423528332294979288855122545746360085276681340647281277030844587830910981279081277802899594415442616648907123074988589239740904518760073683940390593360905966998846961858590077778415129666616839898583568640048270095139104293945076328231537334915691579165578782336297504011442319406867307738910094749233562240564516034610768013877245641536904879496194257082350917522098494871007248124725424958764201590948736597689338704829965893332500893689841441766499732602368293235371336973170204723998144118445298617743377937179315210196465772465647925375446278908986584682893317922321803054169780865877531260535229312524755841986244409246409094224673961406627326518467792429519506583455089870936873806848378142400402880713720515609980124295484762469112361387353756082172400167172819255669082757450025666890964443612624955306258362893738698126860043388815958787257177215070696167241933450967998272134596113603935809628225073860068633424668106439886073740872806178029852548547902721982519753051691738845556523510252293085123960410419388212276781731353425991748338336021468634070017082693868725633147074546460040904618108577885784518505585457981714085329302946466257093903552363354405616220784521733404126625394864662089032515572866316563805214021101619353552993823814645470174666048084609032822709832440344075045766325427978010668202648056264438325922648450818502673423083593660821678081919906377698244776055021992300439164121067782944596844934542044340016297670764938288542678546193122575145449496931542177404671880188074183330431909797862145754358753773437470555606711743191041250433617570214203299967828407267930294116451448933003450236653796732781046221567796451231191757896018639279737393879073651653222445490254159732550169337338588627893813125726552765183876627724622766390118536279634454165641641003939433740315423334172936718113378392492448742078191540020991025722998993044939523823257278724330429426739126938846575083329628012969258297478272457864981907114329686429933593142749278648503181708939260229887424172247174841400594589916550479108022864724641099252163570817556908504378807776242419669829272141098766767067786386339320941294549944178314072454741484260759651411044609996024575046525394760636804409189395446032456606078776177601593517167581125994588129705294554081124832874322006494498763118228380076350588293951689410471988188797749286927024818292801044106863792363134770369347170652107386226379124724485947826784532079494354112322842429764148880174060061162756324853909607852560398236337731569777257274766543379395397310326123817923292296284774949979464295793326162801153387935878762879371664426034035892548165930506900464323295282181032049121555509413962366586569879835140600509088696053304095042970897923207637855374529746758563844447433049380452944950435560724076429022335173116220048491318275000861900610973762047203393497236117273495481596582584804345641019922930428913182501105031135976259677931878871775433769557340186738675741696287829271006956025246982214402597287546421579145593003368496558270422641024128675949663730129895377281523570031323767983174407708293981848793811897566113321582163322316341129469406451716326658003447472035810017766528013880243439936739517058788286039461386898923430318273518886838721346056752842935967214713287832255133391629365012092639538920449242484138954344074480852614343714683863711680256499417787859396581602286416407851493081555405515026899285158217365595178316661628073978511025101640797630890540666131942361476055533435269349733701316968077037550066494240077847660071492761317206088131617020399556529374339912795475164090184570378832233524008624485404037383238367050176751361374309571987646619013066644789442696229496731945512226818065389470645219594236358197961757368524076615208479136265788553577450953299116646743681023172795512826723732321752054734441481852106247600776712825603080936529294849057532276310640468274962477529180141656622252884829476437276481001633267190753570880374695590458470138717388578649834142321074763614127483505615236776821944771029181936898636493555693463541151751592871462092230046857571135487034546817459260760064774550331637514399470987957663628407294674504867474125546855037245512563569332068097005472474196090904636157403055357111709335772278778976529386204180914298314519147174420744019173987205874026211148179997548014602150852144570546449189778988360263059553220019925279715058048919692675312096973251298365136950990052402744869585029176392930628319417920563125019823920622777275853832419386097741086922666799839142298798595286654097321456400176126316461546121440896455011239115862370057813790260018828158907678469401838986493240210799765758766514297697454616531537191765064236128002139633124252395644843104581064664171432716220690186948509351974079132494287470117291055434544311068690844558490380833426978419083495649386909722447344601579444987993495077464988439886136267433902246431228290394168017499606856373040492051074288271488154397299079315064748869561237643039913851184353035567084323056416940975161848567126067523007757494275507849041466082338349376114467225344958111935147170128540486765895515821730248985580300304802225399034020467466537109660262890072871445821152616462755398950799958427078934544716006603078826155446731806867297556154178085400172129080154031047879773255746316805731452624216689502784795979322293442671975757087606577193343836878568259629589948257545678250926444597749221750587400751979108178698728279943425226353638612369007252791798272348244065426433622004856688020827205766504169699447735993068273596208824494032864902162779636627205601001448386895045344283561316328369425148493389413446966591158991076464565860755925331299341169705851267798509442970925325985381121307352410027407163884855338996923402651152513429812232838692502813125801005681971718419780247568007922189805029866431706923563511284342148619930226772408548853104052522314830077557329890595542905955788940602756803097259374748934640125765916530303058484607893773475473016707166755684903988780853872942109577078648696849814567033854153955814072468604258810287597773830714119458584905537330838020862634410711213667839524212852402949990771058058477778998089658062406924454364012284434922695903938537702707200486270178259312603731141685390943249330593447305899204513010856033438063823254086546522160755841343856632684691724706022543985503065950777106062489423765193678572050795628814051184233152343374848910864175712924158861367280726849727433312078688136477591915606089705704981636862542641684835214886949865182943029186576669472176639739124839629392844538269430639242509948782050133771804855253806560391646561195728839160376587933764766933995709804809446569097060708514911206234761178945423604471541626481260354735646626556074084627335846216882827456125384540858414680316715288040402885663024184199927333964026160707128959771210336589870074386562926831431230160570043546173446140767077830922115268304433970080396190625811083637545260149273390079324313326907539616746875217418894834321320279089932959139024866220634636307669323273600673960854734076859066855773789671970771968078716770270723103412450558386947541923078641440412001218085727405766532731272672132305164721462341154957880715791062017533304393409838052893205162879807416548278711363664480046380900085034754382186018887880334285197187046533323127010250382953574295224538050663360779681169803116270808724026968358658234122939526948628600983144252132968791260862167496102535871325195410262204325800044374717482381017001241997870933672956113585450927626844865057912612764884137642544935918478494529654132250553287933210647084302927662552218463625366119133205443836113023812182589750008245725812629343540716252230124317836163516398672425194854284357634210146008841496819830380320763532854847210203928997808671386620970908312269546383861021895273369117191438332768526121058883680912615747300858596179891731553336807642197557379298057863757736447105157003405190872890645965017336395156986493676858183894224466294380797823319212630788237096704006785376077229366398461545432752585070545654386500329544113527178617396977368009680152895354496580459661352347856137844628798820842358182192413243007774471058389693329886291319161204422313432223040541370607772636373453421303165771789904614624146670424113795485300412666299802800648412237259611959038046553934312008592843019970889724162061453680617172667997515378708885123994899095654525805860693243896822272945872917144885313453791037380870514465876313665254852654751920412550656761790127724492557810740331885031525935403132352336744140315727076293755201312358312596089852295906734062584162846634900162417443143527207525327355225787029040116628791355039919609181164019756009470085450637333166169409302324364705577907841239084021259509360799375622880176857778960086397279913617753162593213021044140595263775664650746181779176912432499837773809071606703131466087347675191839932722796251460413791503310356693095693319570100553214982748682165143072960261973880492467002260343014626912943754075239638988174529566368383115437358953104278833935625658953876031696562915722197830221395611298853536900510933259169072362650555008125601578933189622121381964074143784950187756934915510411026453149388637547062599107505172086236552729807521574595692015594504941586113718092692714125835170750019800604509750764502082054076215068234760670237311528224420376758250737965967044320164234728396734383686068342619076902963237151324620372508114148885425179926774345416961471558494167194565755481044922805381682496549131822537154498627626133228090821666128896955169012246708372240066509751525487553143041041782332557781010547168927325050784082564266561074915500898486561600982398777871637009455347538236051672321988434114158150862242853200055937755676379446099926594264453546227859287657538905719499366230010044776421352454834478689807038331299071114316330197212316780981181758450920789070979775320247749186914249363247842723566394854042951200592259568692272863323477408987858141865672752457405271554973885302367555240153264014713467774771054732534310460322455232363073241878549658216192518029643576375518245300097180502951323507622673259346166044005583956039407411429701359614558388914471907083481097720466680701200147623826673058086480797845236556704561212118444387331194046069561778459311954925821486911355190507675828649797197360566657755892526133360367553801917450710966137933296057677969806284946681278407060734821848757054199621052078518752892275137049186731875034203116246678606716289699530523309117423121122763176597540693327493722659012015893143132263016967135274344565505674163535836010767618023822351811584427928772929807752189394602241748288478619540921720060632525689585013318459387014429243472247656522046706498928870218915834385181583396255240222337391731723880985800285124016337336883451548643911578598037839192637790564487888234902697041269599878258700752611371039093564941742357610544222115037618820269943761937142635057074858688847694139233654073329197174379665417674357215558364959506904995456497609038478869365525688882080366831498627642999016764138954021515162927307482147010289046479622669954854190601340906955183352591601384619694609208170092232085397188436253037292181597870114956827132098929318110134241918820322863401034478283982251186860852910119781170394700400186742814021036609177271952241215351691386494567012818487775300268502109817511189544413144688361912139182593067860433471675270291965565275981768159272914315032046097887411315286715894625004954269989707226313410784224299540174043238404652241148865900836691413085660458233094879377387017374377369599710819069791597121610675375169715538138129643671337614034308981599090002826926529685025062033224145111926605227339754169862639986503032561952585988930541169570449650644187386559019357353972956625147247016563486977662719596898110631329420241556126626393556008676655629158260231963073128667622066324410556934923649305503592065741633818583384258602341976104438040609188432011223877791679483162778017448757947655118098737569983045785663239435923775423721680571435607660993731435626581246078292283298271715261608308798938047862312734087595340979940406305110481473169461974993607978440874006848329091316531404501788200265792215464921422724524520040666440823860906201389562599460996354430469472739722397335177940724884671071519160414998128004975829240907713447372226167130683266637050712117301189182970370755667542081196622309916078386809891780831439753751609241853942006681279983617987476015102731961557568275222095530713503298347689762927903672957595163643796324428261087516273968884492159232495918002929459451410209176052412371126277350759235089193777490898039522086394186697347974947825588876101545085560219439143081940002034429107778054750499308797765454926648244065387623247440182878117174015623422042085650313070888241122001769550005619654412996409704544323645178342138780675035088624650645653687931402851742656534075132515900817346284493019740873041888207726564601621343534071142211072193456690404954396222949127538816658801933601546584435285117431768002874569347420912091616352853153606228559748747893296834709983526750308870085713298504064178696266559244083676948857748613309365644832060252355452656190987683589250922291912053593214978699380525905264406030271594753215153408193276165829755124498307641226324093020528270514960349222591173530537914307799780493182863284212530085919443766040734978303677112731187324915804415381898324446707142785492678641005336296800048645891963554959729261910413780798205571913860787641922793016061557543842203514245416144409407708754460641268215207316173091565293514994392521978382587171488821294515954137121978682513679628296461339873573692267600511245874596389096111466307439025730724214775976512259836986672827099621564501529454120323662117613152987957530870155692144005165570329929195473020240865809486987530101277998030192560191505216194201134205907871290345177460602698164590932738331933551732663611396930816510066175598330322526888325798727707173818721630439139219277586824985660429524982778396132355205262475222791355958751644895849903784275569556366889801096663324725310004329092937808063350952268586983633703747901158582894298396892487167079757136847122350818315268093137139729940254094200461318941810984013822821846181413781200402808809393053481894117936523739704452032574094632849200861473779283870402475572300708854861180004251263341124118030950888266360456133302449332963308586854038024584693779233945550669528352838562858037000235106388494041123185101317436274920375988392763136800128713608234628474069738502819949975023908702242836298211432547793919733717024662696065001362888962559052236668229112006075370565613454848547643237419733838721870727269902121218236249416482184355123643454242267283268296885187259155673283664952093111796164625923867241026294009758831163398759186801590331362217677501565697591204092018333502864828588528230084985916877127627245469832033736390189064490574809206960478614839887189262664357120025443456590375533151505887031430128725164305525559841826674565005548675891529713891701340222332397412986539245101842197721067829180980878404190870208756250787051790091610935534446736976536387939838112668007998490086133472039346156284223336814107882807424558677014377732377104242227052855422256584970326998915047130870317805938918686364886851055281658623006819176918597312460768381658110008726082059402881542341575380336619308552827472996974884300391981353568830934891128679657198628080876881167070417532712236182038143257337341895028484762225834433724972212989178967730235676271518272230830771937455831247141756970623269236220845545426117040746170172184157291840791378339619339018179052736635838785598943655638300772805768319361882774549842776790566656125559139100019068149210479825448313489538907888906298079296793147493814972059200942425805738505642105695605348169823394003461966149406306224261239883106025927125227810896696853556446215049178181559230709769215841580902438625796691848746539018141487916509131105797181377075383583192312738085243987797951361241823524104102324345121390921903624519249210742254999755993370665163466937521641978795826690471935440492759716912838053784126124401846382091092428965360022378495804481697046900527807822337317843351242647507370217647954777414276307937258182180111532145084418000386645020409104661778485801153293556153330141632768640727333073794962361973596730203738023699118188441398261544646558243658781700180698018134536601192854720782451295425479755485280468999307740491642015520375374360979120322039408109417710582522665042143192872530972636087895440498984377108604094202620815120514252971957679520187650054335665098579137201851787683791952752761384647979763835331022968772611730382800118584674058312216673850531397342397189672284094002421880106725852574773002988665294759902847537417632348188185384360833447096529404379696498521684042444526576785098027250213856198028514674391620721627019423809744575429094250997607029348747430547789908847938276789943158485647625431812833264354868654617422379970348824402452504407613749566161834397620206769938616660041615445314983970266740261329738705122658734258320378379719834877855457145816916605991412505420410523510147862666600943478182211514382803176694364131299911195840455245220354161807843523714694905634370149522162495911337917979915441845207570717639729278557694388651893951418338262403311637935637565493885074228817610433863258525143758416315266027550499330811311738993628704522574367693520175739807979019687217641195459369827594503818835972241361827769865797128675401585967281108870474934351805726739064546604974455185031249150936181543285159793436269849551728498831108992161724414901773953871626497631416257187302901892071989958268023388170819229728468243467754683089863966277444822868709234854802053341698437896689806001994856416795373803580794274754174348713288376951933954761010432867591018344405572590203241326514321104238700664894381521234833733283460430793736213321496487963759617376263819693156403339754775264586985412867113805867697596951913797438539746948285518654374385423696909568904270291595538011576038894755636755752184511919232294120230149265417765379248899232627519977766317251863374003341165682739170746224241919882193115559289674953247356503111439022355335083131128338733006400607994807791232966672173932938616351622467341242441698476824252404931712099852908972465654275183719733216934910196874371361184814234977454164274386816521332233238857591448831302794674999175535795520169366199901044439208815478766388616539554315154007179781067534152481163188674947263675891014397919749497461524610590332106448969407270688272338053623275922591051596280396071415744908457712904347046934406441328529708668029155657654536693060147769489487084640281257936955076885569082277394224164057762815538776180815756200415325035126961676577663051990735412454074641615495105164822844324231037582162303464036381638828078637987849605678679094614322745508193594166626387416514508349635116202051542727273599299167694636544009331399391723296112819055508422084357210170367401007134263816767686873491394616924544978163001834211903302579803747080668564700968690943872223782918788999217723279098009748356942660017622536932872774521045933414331366350781504554056807336211426990275211601343340157690098483857981998755989806262987815958513625664938409155793415179004414274392039664105163642521512959515433302307253689162917672954054234725691865925448511113891450294802447998660642792890139321419427332654881396673086244003382371883975614881591999683658654673173026665079756806821385413856267136717183632884837526358146444091949908736703896162830200996824024440274005181755339069003994403445711050544894692968605194206146163982065251760429213254017920693647271273276722642018615325680724823637227721976106761624824025828623093444678892186753266078698669609169192830200348566883727081916310111059250034179993183777425886316262781199908277201883827517124645758071535582065574767674244770646906041105021181011308025075300865691717216997615782224752219624450178053546175915885643269280653598605235799381865167783886787040451464253454922290988471342714357321384345907995739074868831207862556882670544995230538527701011028269532678912339607938419748448218140484573959956399419263171331573839528686200800143208045822010308724407836372050461681079284678838971050624102658932846787508901292461230764887356855725769403825948368913202115253424089054708670656885808161581987761969645897039777263180205964154988224167842714379530581011365797989651936406336454809873488313041965378408256843499289067930851578148299769844183344570391734223823456007871528943176707125762360155858856632210667895462023686561568155899746654594191882442838972445118671430168308630758564352335527672308481536106439374545154572668726388789699675160120108613733834535254402295581938281203380439606651455051696069451289258634738710609950766499855645374199603271475481555369352602072953688193909347319850779504395337400663592184763973120790514225928150202514123078934089140054837669235079145456141679080398753963517745642394354923623695557829229687491369958225550532796391779964818153539953897719668119357575133135375170205458703390613942219794567845248007992267609253690887460707384105035930560145636408580118800680510558734762329822806860736654667714721476770757938770290374159980456143155218655948337909091840613773667787396296404064114478828886201340795595651828205788383815174155727147728911472068517701219684051045526741196439457782693093444614671005231878132291441699754880423327587559895052758063994232100049448071476651288645098997132456811212622860874310324997200501445517231022330106660755251089247137160866288325626303116390714338258781780059816064630073907237648977559459942469302699808512288709665124573566923491591025895626576134262274603415893913780219660188272774013535095567357244000462374509941800258794736956831881122688888047188177916019455273993512845821312060794960540851636563571087178830755573337377225177874881975714938152957452993612889859099147012579399094589201288741255680178390330724957309965917303614071505069394496841804988396125776062567424754906430284860940410151585613303264534584770463195750734095436572514656781703681499191623617183575999627839323103398411682415789666469322667650277720536591951686611254236182381809235698191777803213966891418893580894211722794851241137434502242406557039245789862282024135634448327426995091766892552356727127059755888244888288041902232684156521855082738408056291653455935074266005998263502027706547530864073771205175811666594828875385235170055951014906986902570080992032775941379553304422065885483903088973289053990290451602483326505623100278654733579324542718117560929066648445902387662113680459296414686389707574956511889517068592421516517386224427358313067029098062025068319593122908359535157824373064398882155679697495282591312452574206213825146036819068986824006653449512637328676520103325704944278629659946025442801656281322922186817264974111403910482956148390611263728556788838264899716480290439072055859514044693290521319532835627440560201101479105058081337289439020185962352575819203316144704017163110292473682826529820700037032136366378222036180982400650825457646965691555180687211005254647253170107162055370762123957576424777309690822003608684367215049628499794273505778562862093367072450854567068961716761363815586346284031364786594432594277345746146138806978471226582271393377464696676128038886826981884856303617021475606830285834447788648297958978461157064362201383003089315384728437615337052966152991363268932548502979404348943750747078288572469739021160249536267358894865871664042041201655190396030148760271750403011293094414508994089890218796140644696242961127146512196230276723073543650035782059155711465972756398058352832095142432916129782788232609136088576131449812178717389049895517796729151321538760094350246548769871862209484405920338856718521507325891269855562942366107685632137100449574618570752641824101925705700411940224578835437579087070501898338846351669382256541958019604486177837461991158732773808212241667113754201514914607916375864560417657086146291899302986309384705609419890850663296672186652413957914088727762271664343888729351644546658960555842607312904685443636529649996740110638741749962887100175326743110184123302142471544120969125828117313500971795799240128618795482870698368701768202500524535375422694644393935823637347655303491460334302269138553206314137080826430215866925003183165030510024817714969099401193589263611293185684667123496335420090245019461573471003337570356089318756481642974805071252572289445862660309701940202470508620392001836987743880943734421314733932795648462389282528345838179246521627707128768140259631449785286260378947742873725849868653690246113731752003519239110372240840185059000465034781144242297711734562231909751624715808493035170279780017757860424431456120735058947578638116409549438658747727316467039113387318617842708142552336431855747267117115706040781829571135660084096968008841611767074511491556592334011767868386673680714700317077712046102314437929763215339523717077176320132170534857717718955945895794602616861131749596461317969901960803207865701308320572547755406592270298074389602680937395430379185933889996570180817909713233853945174463487994496120924399561555357373094073080135486745634253134970222808883669678217187096252245748140138891806742611214729536432668336880101479073143111733907059363838013549311272792653480185786249928895802941481590438655235467237393899223751462395546624990195268479119657817942687641779752659147749874905777799137717361020468311991437315601486977667978043606134822704425051596758701383710551043763110146029067179360784426738109685099062261684193661558405385320526127776208188553074266930163323672363730710209547710080320908995752694844602253094131111495399334056924826950088828410133070143838862143073149638648032153997645438714331553330796596565470578594591536092450970116002136741882819838890353851995018853250960471699932234132690053954666251011922285533232373730964244353804164837732308363527458425612512806457246061284487840093816293457635553679518871606269343603858692612594819922469791762232725941151061982468417817977669708831933792088153315195708283254169702400787618731390320771811808933414902865544619286839343510104413009869600321826423113202658738260086929395358633147251207209084042879651669009911370884716344233381730580426659174315192163578887012884487451831940845522455387567348544685355344825733170088943622128974169466762071526540769856746875326001977645949625531296840202722308126711878725847683496071797429419156196536201826112890690106670527246146917600764974467992345147109114940538581677129443396179481308349156262985362073058386179114289835010145316086301074641693382532542084186551162564743735080100463361631289027682509432899462677907369057864038393530434004101051932563995550024740677484512374238285199152913642766842289661491916311271077585981442886027780675998611444181321243598660175907984554472902340504895151839209580899696205712281466660900585969132694849339365437305973917626600742125654430801499959312308294986306725863883311998992948527719326042339978527372393886046467445644560751173374889185774790216886084165755610820588347415159109246517491476361164703238653305215067191596350446280558352695951346341720422519082378986661508569445590967595906471053880145865087184139826737039976818220519736709017604989962159638639266846152478028886986428587037991798620713179776857010560548350728892267087158822960892563880767150623977379512842202875403003923030087564520816414288469498519487663137147775437839877244713600091570600483668857089915902877853263701083207284702782625088623825800729072888702300481286586033970417442349067684178378550091195127652306484063052198449332535193406756372975436997472686194391855190941396142512374638091236673758319072205690141726688392839971094835538107365516486446307002774367283646815190332275574202111325959008385384363208040517757396498528352567768907104778046066619642202558463054776201052587523474293109006866393450049799731086318637967986815044564157542931469018744875709487603592051298195546744422815541241234472231805983987659293708930537631131476102627915831820453264071209042350979782047844263063070497746646791022339316783522069004818278499126046921658297561854638977500498492788475168240443928687329263149500349981667070932889668095193492438425078790446613283656635755645435120031100633934847697695310621138788474143243245132757271081810092575621988089533098639498135522294355540048164070973201215303549369346230516662897781200814208886382325473232052359676390626067866876107548532498905769821165876120884325702845297411977397537714828207998097330980943206400602671151653889262847674852112699381762754192140873044229246759881503199736839970413153470278891575124695920688593929821517289444495573450531662661216000810976019601961015186395896543080850412437994365198549675385657168560814707040663767691035745663449140400490615784234289153008274696813103543206137907396197517059544050802391773569409792993010136931935171548202926129060608064952524173659363967863789621304309455541025667207051988280628673366476151520662290307666670150933319899440806440401828720214414993812531398569184257136616708783501250700469671448130924601060101828285226302510932673022276253075152470912711489064115507969098781462960682494904481840208680938243481551225976229950565784688094734084799584231524076199727008640430827435376772449157002532486232834644881258179208788160763770163940260702632013702079704575623235255188789696035112605228808670393409223848816564037580464305908268474503681666044183778249066622911239335520672110465170712784031435959110098598341309932571128413505989058374913976505688088276895005187706602941156654272861856491691760349442108531537384955203562082794693071138973528804629642722912365690039996797652401984657837594980510344307179988115856587428112767432237537061050407341451751914105074961834773470105470663004205993021079821016870258028019439505785258064657298896490322463663715198775087356812895418481385743680233439948017200470373257701820298164912156281985869211223029170125839152167169108889658411358799533053413705529760285132139077466612825681923478497569765578837277395525224378272053512429919819861295315102948485233609750870513040914326882534874435304571021935958848761002653365283157299884748543523633274548811760033652513678169547550814517546022585107751725517442890561539759375285556422375715840147221592752459400774456806106581460546911311421512834824297302968929512914621862903519569828600682031105508402389727804211822813138808728355028162472022821011085570037667128882679815403833212762906283641960821241673099166862943851036566659423265025781248896473743861103466780200454171021573727438019065884834619926018727326310076776981225518364497016751664978536871369820210172396823049379310500076772917783058917648021854663998088580433715523470546947164442970810136167713434085881438330437474058604906355538543091238405806820957729161972983550143149182861851861369026627189671456036893656022964902860619919279076148481475794139768591723321387280459018983956117859925884548117426519319968066183320143633127100097611502669057362096914489083536107681828638089343701197564510744718755203717375911883486016698645942670280677827004358051281375748430834117998947768459989175274444685288232228700546287200654403137770654406337131706829075785806171306838056756987127850623125325625580012873284321970020946287402024050887595470322831267134144059780657735403787389670488809311905480184113226789693926901069084293879075803260865133104201081703131600201536975897436934271439608979386089755103129608408305582200033321355203684152493923747696142133801070521962126812008609972282244572798279007581637941850064451045684300790518392930165847688224433811720452978917854115857304463344613733956499953080587821271490214241634465097948615898586655368886835940302878648895848152201812138684925429069502769663081972100396502363245773179900319619969940371623911616864664205168770397698444919296591614635028143987946005465871706720204039218072180920834570973579223466388694248219263669435776613763690811575769699909724092833062577170529201380458084000598205168396414598708193239875991444313438356968177911228778531265538916352020256793122801419895204325340406408793182313089103686536005585133532823140251590532476290433037992103945933624380069860489419070952891350659222429427024387152598814503591550820520762590535833796527974596586254626956662707650081557974115852097606751115526439933752627300448872684726261070826714737617234835107710781101377501124926373360940263821435689688296262138997515753401958734255194816715856181132586889642714399301377301566459187910831782845645111980172977820502153520081524998428922642338155738896664237180197510370244957917946480070810919322355915503882497944739585336753100097122476537719458591782336663105560390958683699066180401438452371318118090913437039843502433287283947213649477473093481886376810014082513603974361476405892798147142061028303567258615616835176769194166556089358356837376946020516227311796672847523266101616730783969868319345164715053912275217059928246038019151238793766065948566633317573420691720185902894926281526479909405398172581017606851592270262750951091848861662933849849405705376301385499226412921950339982068563434779718162840056941627777040933229029267442591798937663216721858759465698108328580550186140182711296800786682819362714944785406318230012229235921715585435253417396473463213338232264651311429538680924132416756306873085513287126020006041353702695694331040760222531633838821930750695801750610901908624766105965465006045840687054986293849864205913607955049074457646158826213343475300326339415362384024970515002061088943074465032313791258478474638061083627074908188266653296298289361924388251975649900660124532399402962686918225822118187927052439539209962958300617054238753452970955159932497967239177926302570355359523365932223914385442254069011872947258291321992370834796085261988387301494172542154106342386983370004899824689853308577649423028735118383879934733275893671426597727142979931551144070608381038566844083006477041094302427931713719133590073063341242698409284985697515053283870962714057336909029877737364619907281078514802446240289708856495528238745002187703375520962373965731001737484399627358968934999157035807638193530573383998553291266310186986711873100063567731787710933586333318142876231442404324920716848878184764580154732649480632811035691534173480197559548809947295385962625331587474796654331637225403911333928108075562899224870075294459018676782262932981784247652805464359844465924444891617928851484284541595315446313329389425513769390053339473544390468773756660669836292228890184565630566116240630746241693616778530439969988848675066331432322254750439392082763680263767490676832803830187311908591347089234654020135583116526652083234724451473445937662587050705123119336400894747353271790105606339717108236115788088372537541882136357273173047873166445868226075933535552288135190245990847472066113775921348072897325425941640447963629820231608664075468306253027883983921662244956723127831244511425985203936165656082987697032561041720004480015773546120847413988343248947214031171706274883492132279936389306737869073566254859340801995476919694974145794817337884905165776026644718516838108949438276252586426530087754082245675221303934288454726764259355443628951773884201128510753999266328956471663391103730178391727055826908167254089140301333490981557290590729918432497433061794583817827734056569658820141436681918488455452274850782322943061881646433155755609823606801055591512631359403643358038087171501226200021993253860447136539427920499199330578401882055583108853397860173046154013894154586543935726600227097721266331626282632228241507453613725740954511582029779263282625116052482656856179823469509824749930768330292343261197633056722546350969645462045616914321857916659603943717387878509764452247577937396764760371110898723740135626916421869751241821765060369882060960395796477741826056036215923010255534099695012540032069197831786431231919074951898999983625753157877291911262779159025555260635147956685441868114002443245908074494409866516789402218162230027380485790897794546210900138405888724577241104045371175253471752562853826577648682304934629886064066970130084418898028298537907496105088218684409124102252634722518328583703787967837473000023491155156167698288568514017690179832859591591638474363469597475358984054654927995873515095244103127534663325061683602497167635715644901388804712264662699951662969825425263902617117553748141690477746772961348465018357352574341540663345269565076504900546492617208879583975575624510744931539051253300396622694462120728062576949396963355074189298484484139741372731058664313345941163211409696793383527314397284657809205711016797978077336731729036934432223747018299647521319534631864809130274267080626517093853315251088847634172786856300399929310371439387918378014229469034815984790867895322019658915523747767474060879278722723804836012247514225349587358105979374785005518971756312917112071748059397636176515717133664752814013571035903538859775390912477249050034973672249890384679254982761296004358721949347173721193641770813685797473869082552532182376334357191944305477183187557292450448683063287934390564405398164815793587573760294835225948580517380856327595353841564888445212106560543912904911230206571580875146502728380279156872299787265238566852380003661054852608920060657342063783640388693135104592085591722971593180519972352249875195453834305085762740497913979335355572952020164740823205599555073499862128936982979596783708721671798606550355004873355574423970584409620438593704782661459395336599436416530241530467767566406549218501130732770903046769661433482554677166831744605396607493891843939805818474488327719768232293913417471860647564672654470221810440077392953113158247008108691684093256715796099699588432792147352832314394050281299325421031991937714562257722173114546565242419350608707525989624989097750320656629606502257619259921345807682731450577606950854140775147755243220473397108557059763376632899235877111600016413547746150578411525991231897930236986432020780818415798624509143600666484401131042120109581914998574484435031313396561277014896668456933934637584737305218471417065819124063902340572326944728632312382721457877337630184423895306617283541006827769478899377761498402031613981138086428273219858168739718660131267788140662285504030122139860381903034708643599205086178510686312843341209336604444241981927650170013941016715583128149853565054787640013712867947583011206126319770194718210511664344500993671095657975793079987453589099251714784476342208593314485533128119216441480197390518122932777779169511623650065983221430299647537742464569346709453375577285683515380582208381532112390423167475383854284436123727498671461057909254895246614321854723449859682220552908425352983050526279199535346668628807813501321752241168748414926020986720962301837666866543114283793622856559670855435899340864205680457266231395009912268890465727560421910456650076585272304759231491579082704640171200948431381563779907139151972290682190514952746423288319077152243955221945831487413374935246436127126469233786371441278264193693218155545741872459920198162280576788738028986132531930948743263607337468908012612415839877470916268212970995982901086287948843139019890462144737801338186316278557037976773327608837692862753834321012931016016523090724254622434046433665500170814613207061649930876485472866089127698573519988506570322881621251975647031789680555794857352415499280745928518480826940015775444583713908747850203998039594101491394453627894276112364040866156001716496444252209363270907905757351038507997933929375719600300476238810769597820933878078679501466021296142871730060714451841492404347947817290956232396161912149112299839073222066181595159387875285542956536020314666194932029100242955927965196958519427254289271118542408939431219236246810126655902754596120366282121551750315607539241014228658487444796727552310420656701141962178655097474518772827512108037842028024529881856369113567255270271673836299296563559506445657743326393353137121042274539018182087529859816636590927854268577225844270907051026084397810076435201371602570197401250294177225138701360933753610331234637838501374895201238293442133880207021666742929027652355949295795480229866688785213016389139204351454704814784393054259697395195935370857733342050288790596368369048462205170423963970886515005161028034426913870996860041015843240241482610380092885333517390302695621105124059614951235537299071788935493893235548566852337620294080741322016964870253360574230548188706241683997758981853765906734980572918118715499425680939900346068650433232734115590552200285635372847197962733079643745188885119339739491766181296586983679803510071401617578552657257728844512728275776235564655593786866000078092233039438081233911903203486031902310322705429650284874004214566404093125346019526865086670754682051058927551168659555454140291025433923425322707892638392977872796964968618152002861419539638389848929498284851777190290479258666158872619178384381862366310089913740166939483122422203130455751258998414034689105417998339473983226025982551068808392043178999571912916236689211529206845950666355847873558482522211931118071031771410688233458095227742098011318751458513554124720248320640112915829219449845640861792567465412154802690392063568548186414853175183871601670994181078732622423054211906770952236552016338753416870314763418144849840896670996884669535555533478690896416248318169571349200092513438454701013616926035325800486945360935941182086997643274947506306542153041669425286061849906697209007417160504513057541647936257267569201688963586805635452689662830096564528994957731159804990245273119770723129929994291001780126154945097567065985909764747453058710379907247398346845114651246013986269970492595404688214917905734635377078346675963608939558282855143239537004950954473045374205964437855206776006836974542340037181616434526067219227097597334489071442751399265819547185477100151206332340286402908382669783239381580078292560628531319393127409731586168901581510069338201929027596141710612103107538134046932863383446961747812605303981963968248103211320726740192246357076429746788114313634342057105368434232567629503120496064662119336306847817712781319384055080959372067624204766829690377107357408858746608352443111627696434692407873494125580574318924975104852663797558908298398484880333358458728145303315050810257235920371977654728353179321049191617674050160939649923137866751595536834781970203623892311121950828068577784383935547804914837182305455956523469777574659463685907392504138497915808862645183910828358723185282732441330728759201915977791647519265591612511867570634641894752311548401409047391884457827675348885986588664359436238037362359129693094640454421856477058735826064796849005692378629376747340480931317876735329774141204473397240464895948791830554109987096799355242327426900728092854171410788658032067123658035866776319932663363144827681754464677899950516567432240019422128309186700756067835956181068423097940040886190506042743740952771964841812275235141645847456958022092387335959800008258365383109042702095500620718823500479503292860707561023450972901325758634884838290956335571367689725764439041248961838387118250278120070350241988435416536096472031268267011681469303989288251839421993463069709994573334464078852675156212609419144291916410637443436310292247327714241745059330028113675221207417891856777047971022573912753189581378463118638684119512191335511162507361791604108766649989207032242228784101137754916139508692853870644359404666709810465988067576622004340700116174880820110713068937439932899430453068786611891986486291417031662699930977911406420398163132722040752820516519074319416140396077620812050765721535083440858784191500501688504187583487210221824189488590290836949126390555963692901671048346844597021445508079078658393031874335368373661248825990791778698172339100587453170687705923271116754870949127605829777901260495874988940034215392856029792818481665992133322409876264018058393048577815048765776878238171438270730832806196982161360717764553395483483140248443091125979516123347618557383223778789598200790944210466465087791111802741144970099022242634470612976679686485165947912093389676420730388219967017587836898785013771085682770052551555457029414050588830639213655101121549209669327489706899734989164464322823055045464497435170041183435360374645566926197761366307271343397992598536883318015939884902495475325273116560515157460449669637196448611818429190571518139978678073737163545901190639514488239703365516030760382975625684992069084571187309962393549409857158370325341122221747943729513284237505379583766240160649389197645863068093950468665114257730658137991435017543944488057623689872335648007594827960469580643759879753914230740868779465889544098328851098132174651801170505495463823976834885308733014552561677840220300749819274800208004411939642781629588861997190652583969259245825160364734064752053001341366987000095883108749986309996133752797871380245913786389577467847984240482164791001342486221311901697449370407833369907638573918695519050470251460645748065778838114053368153436660384712428407476537520200770554356741247488900270916150606292162454286475152312093740485336958631865385239774568269352469729025665267089425927265555348719965879412724590092823088842104382376920984620663386625873545338861012412296987036119136430191663989711888959818044897117190073447247736777434320894498631503408911511041709504814183661292458337177316626424971243168554483696780256204493489708744556063934173707863070000089122258223616616521144847241973042349360965778328986170493048671589796940950093263925026952332851842441863075898033887589425828701026808990151453042559976162717099082676935544173375998185826669345812589903178949917411901439596622110394734775247850482650082337206733972646484150304450745647681977373760070132609141874436808723806070310470440437711564909657956090493224661223686616465874043859567995840277223506549497161058350910894970358684774158209822967185060074727777211020747231504082149856834432776130279537599317190805543526583578217683518397536928669209820062999372474944533881717314532153572603393274909558117396389147471553946823740598430063616647515716037256427084415823893336934622359530448318780453530353082072379887480497980898252033919973831445589835925478564740186691312141287240762962344339875039072601414883522318469351489908620698703588226829337552499187096968047420033151362530972334089899471231783356122098912106217985517795747017059583866161306607621663167966185201554111514187359712737316656795088806607198699563025994532641458615014937103622078913748672699302268428946205062685682181562677803490327335906290571450059755087154721879946806717213115191885525246828631089801531677545601566721236394170361036961995073001624744146360277994118705381016619840695282146404159045730377970234807588842017786453793833726553548149196825398389513660029153042819984589582452671655551761658322887051256760347388634324799161892631897820295884498298882988595652045357817314060771285612189581938203583548485244228866200960777932874632220997146244873204157411261432352824361601682002476933940832447850197982867726147395228016625937707063442831444494023915502816004743856236282482160097033893712933150342569591145890434801863983836183490283243666273792139289838350057376225285295314285750179310682193192284385639543369609066746509355067503543457483465498053480763953889445118914130641799647701411468767872223326958097696437131211600832643479974923626722532860936486747201991797968154502985507936787536727788527078612820369430378014733312147588440344561543771847256424560776390902364991398010787858272881768983241310854379330658629352158594940502113248904408104322603697653180488788018940435605952034374169659078847629812930524623405618429938357388513002218501615257073737811235968541928027259886341941252766929253648227205835508848280704592934083885334874938251482709991547460320297524038588774711249901871266114826139377675810809177403404727515247315105733371219760049699739062999798137834612668023385531853706027649799548649753257315072567947245780437878823522112535912003872368529425496457844979390667359539622458245138292549656545274875906783714517242575440838598543415831623233450655849859082322239706774652857529602550533372637912334872112627925744436344980925308374711367238954545035530599885048870255534443558665506788399309674493630433204003263352527299477711191852928354365345694807978140987852547566622899778257099970290881070788588122914721929013442445735532645499444044230181729194587931218404167436185490540352582505728305619050278564018097041366147488209820185044461943812454406330157940003993335345610893560780178653467101342541951085245513826716687820511231380643296466493977598482557023385747699903529535478474597037057137083024357276679681217101733199752365118435677628475786860286170782926115726820546757737497465796328637669068322002241261606641630166596702898087750945205592407067264542511946860484772264806987220479928026886218959356895508468187862813078617825122375398464980079926653925499772465999331476248141020224010980458174894596575642834197629719991644074050570853336144126347897653625272124804269254049496994518493950526372287091295709835323817020151324580939100780266879754554043398783611837727046245223661600746349181840718001711381070803871825501311692778943105920383943056935842483612123569820609722710076870042930127477962734874852213961650326538305819696403925569759778514916113083458927792089292262634310281374633469120921788319688774411190138862608443200013663082566108495428483615611433680730329976911155026001202383966373923006175387334065036201109549685326700671080307497099530890066559033686369843983470670704357574088954650630578993116324653180447292196755109809757249101883469049466698682266700240589783290373117810003443982858492068630482838466362247907927584609371836435960316678430215054906464380948417082874383807547590262732348267567058879204857504496853160238191951750318899383495491302465346166161957308554913692219490500949931006342163039829218236536508360216034301505509549688814899931930442462561426088246407194408386131868912565774218095980204895887452548577743638520519814446086996374751941242399017842559947625323464444944148415100873731549053120856333826959948904909194573045228694964371548697259902785968499787079222491890540937563125898704446414544433496764848889182331417777622926474326470663182664522059507208820387637091540736125632011667958820027419283223641853014551970602158046759739520112243659749193359187233547881376272533114702575375825893549447142575367003094271300158545895899396883230128238370220112045292960828324752987080295203760742425151928008619564962140918398597766633685463360067838632121893620555913953288638474703867391534730218760842390794673420471930262574287043508159306233843955076651902423526961163711694824292490350281937334993026970830728400840271854738169589572714460792772282250986974779493250238128464749440542599878032363493350158987746459831935063384342644292497286241772938501915821726745564581159006181040759802780771083132133799557232575893049063880845301081651628708512607978927237252497294775557230049251588450710098192683731990878006405666149118642547013473746457332956759131278252107577450200239703632088781550059243611081067375439642308646892190968631268832888131168789066198793401300295875673349354214944362860204911728796004129998250946618712313105233317574353073241286391656782840761398071333361560559315492202968488743362112601581756984328584223054630446944563432764846816302689449918831528781993312570895264099883642466464835765126802841999962405408928022116527149574163932799917167493218281679601988920012032941020100478533012662169622393027149915833374815012945766949706166929967839197483077105486224828806392397351980394152966582169309172378412747453940214535130632754639204232207618139698079894610352333385097242212473179278788191102610087410529825000146321224467752998489474751798320760715972227655939969680972158927746366369616568284238199965371013406145353709627743415441741951368146940715082084155530161389104597801588782630682412116274868362567834591760102892340565459891167304096091006925777695718427482926685822497720604472889977313721901858320378494559504956560970589439374412012928775581248717383158659879709882051620867560861224972638667673544444548054890051807100432358631451306306662204960293028926964276358492132680762137619855446054564164491159585055139563530225464621212712053386516939078029499611046222342711825897431250718455474827832312615717683208554032021642045907208825452666927629782803653127575416102178928737520787167058809805365169443764744483528007806046855486758009021578336910418914828410627540147366632338433719109809316016945122337876201014438761999979550226448896214612852862954670252104332962948965475869994895596333272909818385802040355820670053321873093301398653258217541616434363383482726649278623999541472785219253019951347929493699920445422234076040232294647373255525512149059237062140516994806604641312025419299923983930067279793969480826808837060470225044370144549321966048390418926114973235229480977407927902297632617831723502202661596795384764739896540369171264174707383372864401902028226183064416096047351407154993835141319026202225469973198243893793802496144123034987184045993725045660659334792691098391716197177848242345526016061303911255902625907983452823513409983282832682828793751833285825129003913767800151620134683322863909673342265805638228494279246178683134145897366994960330652596969074255945406721346240070096276091015929375735183426942108881151203068003796294700058056607210895065868690618414526099988136167793673620961382066934401787239222013556199446645709916552500394547095051705398566460594960370139393481455686790151365958614033778502549689238886845592513463511375368462635096248085339707823251152656441982891722349032025988519807834796804525566743489837202542607682832956502471912967334233765752039410007448404667519445479312704025788440262489337186334864609320138849225830792881186526824511379028860543733279008133867571425777446791992063594558670479918624814545569440258346311063629223737836220793081432446000875381097123177013060694578773154597155167997693140273158468303778174957627836601675326443887941250867378132234102940623006737744459750307443518166069284658589944064203004160642088320664509921773115845359079318429804652879317441758140213136556941304835454858146347529639589020211729094075716541421161204584018512508826751631553320821910695897608218390752288424193407181385119594528309863455624646998734080437489708060557368170404573258067169905299344278882683945797006994962169115488585234153291053951826950999383186975221232680079993609622769132274737754946726901676437070216590337169307681395686495754159617989635825580222386899374163361755549234678825737639646265805546587483740381607192318478929585396016127745635118439548314626700126278420499204048375332375576013230832923947315156233605490994907814523694690259311095339410931444385388263312649789952655923241674186513892770322576151045739469703866437276318031131005557273758316255749398947479919165748978910812633833945409981847275407908793541461922759095654692171258256731449427210648791201364533480968083136503688782224795337267881481544886792799259473730357838204682826084308818537263174812094133798874594909610608505608332501465771390363623934084497409353804742858010292935265314967901340859502781359508953458344211584120048457710726831640402979761510851611607437643461067153034308072209056298317484296846310849489264618215504924829186328966980991840039731956982139413411257644872971729747038035147577588422571665893750252417632249126463675859344669698327459529155687055982950916845338129062053493361640435650794510219918664055911079711220890074052433927013623948872264378586636083308737883379063363662136697724762663743568283450450296325394511885919589130429744882993646513499542077452576121758032429597911425749667243095668143929647782982110603805404366360837902136977579087550298032848219818613626199881591447416980696338685234763095739229521323324856841960174520878777882824623757954576796520051097562049028301677384164259708500083707760414186223357697170467019452550388440853627424641602046569070641078469384821247432934340532111251220486781662914480956122781256168253501248877157268046587793529017946092799946898893415801136894517688216782923709531835851829568320474147349760254778592722555870633640287169536172513791296685717918807038479231115664005701472957153169880506249027126488409914556706752101460384728688067664988283225609143166216291472899232409654786068439887627428944569622713302208048603426652347811449234563920413665441071835279402858404463699091858738146000181307926750254469921855376558780502943355795156960520339958750845454841440355411868867227224624265915742743379534580554496235221172052903865830358011881292347876397195030888315461588087217690408076415163034209708797652428557188390058253635460050441723744424288055822908431828212615693190122346621582416876506492737045713016172663748728420590452468060926154148063205006665989198633076883614204524486441859538008004795793371452052796419032730000285860053650874579504854488384099508808733249358785009002346783342854259960568817711166587209835464502404311720521311225036589991368904664918714778916679983886117679183070201426393236665963089736765977954017240369649214321187100667261456072110228238272937800338379281425182937384380943771435980294860829266251450493780748719554823415628427825591120541524968289212293523235359163081259719917644636682960408448758815195924189698462357856076086509635295590835616173146256115606064882220276589062746254341601317495640791004333763297735184889274755984002414054001721629527805034089966331436159841683770287455204929427078648785946633398194981718200460683839728091757856458819470293815179310654444422980194821611478693033020612634337976092193898190597614323669866084875930720847759767489559303086752253250133354553063485386150400469109006349139649827470489617986039061620223395276187098444759767927076448366972711323623130179934012965710873975519882178975476232370581058130312596584237325030253976844814729650369667964417565041036228141707784681615394162916017888684825358746980424637066057707893091000758504431491554718643373236025725342427818064632025584685958242988917337787881523332614896401893951405715902464453963295736155501816495781626711314389655089525885445396568525668833683653846009245377858505679503306519006777412936899122703813101615051309927824472514987970072257021637652748602403897622855710571138180426940865475963789873812953419926691692346048226737071682937717853072668966786679628439250147019687615972689012217341592811846739909975090823642683368049707422557726750898731246476388975076193547206401822897054433720547070679771318040960260289110142413890946895421845365886282446387460289092288753086748339182486545445070890008544366529799079911775002098598224747851894176966547177009337884019989843532835276445686017837934130703876026643136741833211744669327280365195956267855169352459740390740089773075754044222605125870273149259621797389085669794456879738324026799909417387976753290641674894415496573691552335992627703303633717624818260683544872557836956594472779569412673447968747754661850550666172040503208370565651600200456930931070560617669223079906771653352126546450857655002378890077018593480430455026104897429753542927941237745513033963985480131476154115546326734665237717804072392629195220444644497096984809082540493764639713432758841709953632717197506427202848661396018838105693883747186384382413572131228252909969207577024829851116826299903689272842919546044840878356425012904957397935117511143148359099334239017192928065450349068538835071342600805807812177018119528336331596047793977550269690694112829818087084257399778593236489942087706582960201764141647826670998114839495671678742109682486256463058779478434922533750344691884976727456428134689071411433526580553386503782201550614765555841618573417114755197273660264204424019908691093476494465463815955553225100341918390396891402549028247747141489979394286447278718400977970514239223550537657899461308787554291412753753215759772748069471131896512931800231642065135063579121867034461950768539843965315685135004217846417965741430859958114266508115893728663331726876761450120625648605779131924368665275577972479252807888724106643265736945495265815884466615704174463815736886818002231999165258351367851536560748426675002977283843297248351375722831111589828143005189026863033200204681812700308470742029460477681166954617616165592826956442757215371251881500806366000134053163430120667823519523175006296551910824536017464494270900956889858545129408417246262837073784185364720077593138864015049701086419117492386500898897572176140334234574098225206070739471175210915040929200710310696581826973429158475666415892227337752401004898052504341355925450800546876833183711453291427598711920400333828529161311604137363102823880681359920071466772383540216968346171338610937885219173745116983920425339851486390606799985125582383314915663974853200714986786910389133094520950617575551837052066458683790317651888170761484921670323770952180350308050859836073239156879130038309490592328721265494205855786732400622985504372434448642424499794259233917864245953328160240145305708417229533089925399421472465667142478357793020601732733123015620066845969442764764557854274303498195436681639040325342886303360806868003264244158803387058487727293713776242171037095046711862284858657506023134688068020740225574482108759360699097632287272652544853687187007881479374725897634316716823938310169318709976200532750093871972031658266322114029829990432154371029001389262488325454452584263918440565798013293223866842768998370079274074001057146348088330585022952701232858017234886249134936127447078317416113582449995261954769346132830677120359484822078186082387951742984571547331495118847508613331351400101634309800936679057322262322296110123128099972433047433986355782921936030613326610919054945630364920849992888198237556041892692402779315361386175045761856063068113205954683572953104471402075975743102215242147612653919867451678333505257115778330393078739791524969018601001278082547853234610879419949865684789862582578378060111544607610205828791403135156610321816273496440467581151363072811727113912105476710676115290370177327378249828736290983837801808314472757320917672645988631309446563286600275867573711737882978032351719677352789038283829457892467157499464490967635990441301087625720111400774238619633419338504949172982755764785073861674885569980850950416628150862763644267753577734426286012518791542380863289373767000024415200881653704695990154445063294209441589333909748592708737193827915012117474646221689092009431523093675896671713336227600055096643633747974152975833031070567938880997966476829600877020917158510430068994137612761516807774230803877109281035175606881848868405367536416195805295570449214449845676773634363558158761647125205728501985803984527821441688467333858092696583175150098099485451978259958987169331729974659601558238361105435797868038126994752664670735168626801810781989126507711015827209703693683594794602765090186644155716132464570371437549559743879353749326658888887237853936352832211542821789994215343847761040488582583699467904655080704414735537982767566825751029217209644124120057324121159681359551785241025967960916400267943060191166706824119151789566426536923358832238281589173571906027904426770608384089971223884787964222704652476230015260036052989037105546853827373067929670061261796871079096614083868423894557312423408562899717845397083809049694992630979233861602011282818217289740771811648138638126026876888919210613856545888728521432660523000082907534416231630628755466962776362411355303361364515578975990189892975196690725925356213109820781641154664034833296140957703054743779620768998418798461892317889993772668371692315542532461044013497118406676843413593523892022357180959663853885167330278919238883004030437427608976859072612439300912032527385851473893782907545800837882632627096157905061698883538606019953615113054656872429067305371429125019847871735915829757129057410284364219343127253931475955058317191314865719089807976570188559304202118555048642780415705484116067469218152262934939830249269184120981860529479517049850355079498971635179902099574215300045543096753561460181682722748658722251915959671916578572689929543384180012409260199649436748239555226351167227383205460715872483268207145532830860499089374218017226265642072357122068644987600963394777376176269836746136620230538385661240192852550912791606657942722237141531998668151268673297590043246471630342995563534060236183597447213704153674394293164237753102900367542089172928290121431399529961589182480954611039352740601801894367904488495603043438654411749515312148907349059751235101628919538176677649829135054265732836603588958609376260333463154147528180878581582695398911034173941187964024691859085677999350315996668511135040378620503421178072192424566192903582144966942662477038920709324434392637977773472877948926284102340386776297189044362205981043617298947134070001031836295551265080186874932460902133999769263585023073025325502765730728062275086433908030402146211908796498824020117443119758361171853613536763095020745315275492602277542520298897597789508604226838294271841427280106225572822934412522867206613888767713887580474673302520964048349689121579847224822417292557079958124736525274399441863276701576203259225298239735750342879190241860335983575901118726416411931306901861992727416514977138917814582509803653752315003007095931686614385626422382213529738437857659603530544350395930201571224112328967515823050382715087730461966483631910559861478184771122200594675206802329532803811609214210164668269246130979733379976522341823380452761434707253401432804910881482505776811275336370657094428121404204374242159294202212720848404532788999195445279770606474129733005836727956004425439088853794530488499970932855679635254290313894328513294749774127018772294099893388728140187149886484046639651640156077330714001708521621982759164344808786917030010453071944841263080729351109983627574746799039416632660841605433860543820801614487467869839443439909561262520987288377028369041957596237219540665382378642450837475031725920372219698712278688071599135205259807484214147319336881771421157823994146193732808212337143310654610184717308734168713398720346811659341992014572026130085578822357290714192719431325187518878439865280713007568620835946711867731389087952717220555578080229659321543797261777764528214035541603957083485204085625718077043223324853564839900718012831383091615135531166330393153541286915127155391571696583134819531078402216792642392239878231091707244630832910941883905937793278723454986447177361109457872293864756776440546072273798404582543456625642024622195000552397072536036516632528265833120830321837126031210866473159349844045046334243221937113010355025910184194398726030957787421485260435017254216214358625148719600997906103844137683169104202250392714903595970514852789155694097622146432758531402543721949038012434053494212347160727366126061043760534273575812236000387226253187330450226352403089389611724425858543751605492184029811992387674543607476571304909685651282515949410880185689764085756274014311555387862091130137886914930726962948105453065411721071264055037009777150480628894925558053438779054939303141350204740311400427907603225905877605103421575312073261115904782049392957986129825674498518812085939919187695114720960944357782554307109479952249589100785141320614943254422159886973353381551851440111125662435661097724287534816813744113886721716482674491285229594922973837378312208771780928355019414132049141671870312560999799109106290420906090409913458032412292743075150175056036688776547039912297142362597697828401906592477456835318601059673304164468618277835595451123286559830866501466113508068624658824084280948913256145440266966001943568956923584511828878461816971793849909158456138647662664985096411146275447269897469291832066511092457956418229592889487868567000346274302783627604823867274062961055050392635711130340416952964305443654174743596866609132697825529296844863947778990281777799825223432826372117180818457660473971307011032090680092361797992264300816614486864003418716118266017748925405421277345938976180672477560021062531984675835428149146115099114039433765227638786710661502055963116202735419158686762728585049603520034744356476208732340450365610633482139014785247509497825147927856312519754157707121046721938016930158844415476050929023216134936132300341819880350112395099570670869732180901469396857067261366297495675702722379790100112084346978859400641458036443477563585866160381587648206582101066331685188220052198407989217400298063974819006030061850244902012805784031778395161319611239079705118826481921778493747240071507576215912841191642708540774643934317533640933031021083078527253158357075179457955788244015072257266582250497895456601357207307315654312224672905090130744938222634137918718624351554251169711098428069859756810057751835605592971554283216576776592590078366166133646217450566764670932498693240177255127477535039093603335427975150974301897988917373705841455172842913733573562162340477154082012227772320137477787215028216719708978514184807595648777142160240819412207013199845722845939392462185683568810628402312499904450259104120972942314875897455414177602094392849297961132805593487045921370703614322039241641643389800481748314146901982705014382849234533114124946577755179948842309421250905299709598624929188509029855733601143457489495724840900602465405614733725702003813879641876231583894739934075241815662061839887430375799042033604508464070998981389969554864754408895007545795426342711792832838312894153526012529345261804467010754418999305776775492936711646645396720655468144226011549602182635065386043194502549873542669611372358856625086352472153073832482355775116650851719888211378196253174664405083883499097406182807014081629848552068669799476852065927856265176590032407644075211095229692754791293791315936230948403646234760939961316599136206096627768814250921765443294964493037189824416768759275600684462740598292648571161037541373605874824297054672799846299439953726924443812901364518327169770825516249398569474985873602917086677135203433454524500805285350611836541723214257629637450969480929414260663203582001034070232234132984297725061445422752256107269041910686182481210022366313012432095051776551329740050296403896512062765198667368738874001987444318549632875759242806879429259497320909200386546098642787841526518276999161531153640654771515267942329651675845832354483378589904525513405010799580920663364984245369685553588093085600880402731156378906458191830419527079998139983566594459661422739729231062016014920181437676302959603350558949284318928563033174856157556085050323738540553823868791283599926261116201057235343238747579235390696864817722443365232142321255742507390946723937958557473801303785224670591519424780274848971622053686856187334121619562262801053067562507963418212211184291668652751632376094948541540514630444164963947873154441519864003190425375904334431121787934383994469578292389417921428606166301358980960129200776780880163995022332252906687060934474720374507224792078249066202285408254811145551572091753278425404023537907391644225509143197018454786536195072640366895658888070562885576157673638930382748904868418677952867214356421982249874943422710999822499933184675558533114878347384090358643528516074798360998228625313505530626660226482934302079381997576958012003807252666052851621191253890217245022935889700912473268153463783303618614854281588392421898998726490925448509871715565659119586246033928622755983349942826946283889838424438555829739625143607170372742293290366320605797107151820951676168561510774910644049062216338856397190434558483267529839669195092117150311281996525314781311799953533909538942468871722936364679724556754652916674076436077212564681271018977146501414282566738792706060781498358866040006283882056272303102391049624201037927394246920612366244924037839674514843469464970718275570311757467275866425232059403720348181892171673244572521125302583012432504771764120123996907439731864325936544611119038333082314111599595494924320712951178926061244020617829767608646829825255365086844592803205078907087105341470498862708884604214157253138747948717980631019409192038191318074327415058653271780084147633175169566253082217391479098404948614568417136688659246580168919986893730289688271288961892518630753624696350534803031934374557970795580566769811230847973606696041273921143819447197596858932914416023885589286662944031170233350920197710968578619272676556867755943184435901059360733550019447224193949637399570942402361023808862094515787908628490526173569580144135472611016569462073775591882963886724460209957743693718002696083253203327097077097847667792172834655666720144438055014673240412745160010098624211337037419305820913333743239957448379038549647310508764067987326973304134223245165189818489113939664465596428105296200423068302547412615776865822795476466066284313718972707890832409494407746878116321238755145015662413870409732785798963791369020215001109105337935244636729771299000128632541634202332708092911513687079413557839354141906131529745149965727493445558567291026583459314324928935626439293726587552681783733478265261465341487614162311777896997121508153115547088533100881328360328293945874129276866527068602818923325527448111457008789941509446656124208001927238013516410059568663236434880781393930656721734742095923573578781267471807090421319650297049922290254593716331714407501019901251293625197948251873279071908111166158691405364920702881613110647829974700132087003648645885351449445239783937331944623453944101095262056409365552256561323980338712119666017865552350715482172684932888377067486622698215137123004102011485226315809003454144516141190302247749572589739336362568504953097176717599173146137131528977915470458324041905502915653751349993320261443515927726355752269211113533432183412191953540108929695204260061521819590646777830549861217258287848850895122808518050857046586983603940455563453038493343451704275900730406711090279007485178370012138496387563907342754237648720297348683894328873827921681921013099918292516091862105736650904161562921579957715221291849105026186252857340012524663937967714153536938323579281099756203417983800517994752764073873427081482836678717954068865924209243589553604360458816169581654813200622947635569092883960349971831648849574265887915435107298085186797026594572425090157981834357478312348096598382160468951601073037269343405027763413860559304872569824037730548180665848850174918339304257722346108062158823024437602252280020454208448907600639959242001905453678723830372993424077910132294741874715696496103882869389291270847363186378458803934180988912237792935307201129759652587877055873112395984891042711493574500379645247612716782027420380439334332257587620105310725863524782952672714602979715342321777379567657434081229003967295347012125035823405287728381792605690264803312821633157168369325217409836751885459540111351811369693867844698835322281647617471045299039211456948156455434117765339475231986892441449396443942279599056844866744272971565529718197505761225947430532082691829262091010348146145579162837549389634839677877481343957337910787642495142367953744034585574673584077453279866694207582542642519099149890883386931309431448430781072956584352499445328688059994188591418534804702462706920530042709090093378214561185810377554461147147837466113012729717694471519127045136158387767480198504995178444200859246107157347374581840212285386520265086325485735009143404322489488307962255329523885951105465835423989700029567519752997276309284245885022078079426586633358308966228393562784252495696375348133209144303705801119227649020794482786720646997914826700448967847688924556233804169725403837182153983951947560081595448669810861463078375167938426720069168202253093805909606610324352110065935608692155002467629331816726507828684355301510923849808261564138360229626820424465985956653086566106226807559654653732393459248461464521490418455948010546603613706246519330018422271336452122456347713126708545513655332795141900741900381746055173334145123566712190761931121964135000653588329177205194894724554938397864788345962352843625352164505563864807266546741576478140242673904249717785191677200698677875436179163495971457041129073821847843248399695773877895538485324532495863376136791778519673904398230453699596099613640280088801229250407658373960851077907886224081881815181502714180193969514290391814242058041194076893722812101700134396661503603555155576699763621912982626538414660600328116461302041974845538252436992559798044809036319908017165718328958677353917375650501623209781709908406109088885433140961619432564959370649003854842913440925192552679136787317966925674117052042065047897446248951675267759075243438120821646726754477261028227223990756284876903810146517195276782697018944478815031945411297304692762323027344274248777511493209022372454123898488696674173836113109321469748582763337774477173951505378669510364013215166513863302089179509367724353494308997830755323542391060249438425466767426349998803567743066956474572750822297584602060524315773968309068220736255727049901999352037069747276869017310297659272525371631409700329270489492069528301887749259162911484967397692333432685973096345001001398643706028754407498770841328691895962792511503984666849868167909054942800702310023418576137379297727811105529460221437379396481847920828194595104494547720741360833307983749958768295367267299768861970522653097320032650067053166829881498946206352150381834539688111642542286519275150223524653251158133911011767025732593888538413826550861323449290566870588537262296874884382810250801396035744567582524597287084752506206472403960389676996286557459590395410293397940653144104855168643764342319132600625269463639052766975047690326940081416730240643681243847232516541307198319253088663695652287754466431227267476856820198215000749446569165000846648448653329503864885830064407178116028675697824114061356147953146538734693781351633621343429861088045524491881419993912762777439782281169196769531082032232180828655460265783591105138926020592892329390081637936702366376624851591280341298639391151161970236198517723109402999284179094066583447960202782579777290203758559279830579040472587743678207811093539189517274359607000204926604148958200124814233992194552226355800441594482428021246505300949132415102110461766597806428425189362908103913799767502531196180302944853789691149438859352697940157598707743228042137810381398341963371667953005344161591773753741168791601324178308022138293491598396870877335594897857017316867790523911460644045605953666213554463869997721603973022610107383859332695748565809245281349281092360846605550645323523928456739864744111698385252354538510375841553125443078605395601541854919961474855878549052130668764890145004663083625714511569932855181568875117780379454802570636908475248322385742718391172004633685316022681654184554953638288786358033422445080809374762171187008247152941686607274108278041576338305680049544198307399943207290836291613551337651798808280407010431327693603954033021271780205694320346579530133394498430399287383464408845836879830993432622463780021392724980679142970634246288897471694221935431073783518199489790598236066562454889542486414193712010225024239400499289601325619298678795913849496505560500686183071251452640876891336274627327063267352735579552220990359083692915957041829497016474971296885906767370253710566057857078083658137411200367679060137222970421883034283467122481294491784571255427659341789421213029830588802589046846165859651996259777902190661612872563421828416650830023275849263527921522051591970101358647599433165202329166821541644699768216009403699524434220265306030691546580372003758401984960823762015724081810567050723705391045985313602633345051006179940187751667672190150791874035142753278649448099688683127643165441286626300568737839405742111029428010997425561290573117190918811692101773607910654069204398729351343471822233363115285164185305667597231552564992504363135467114202526554005076783775308705503727540558758304990927976765140485744289429843200531811427170899741355638831371986985862058401345345852018629184041504597514253207916564724767824896451291068171459048857880779574365817560094972826571270513408514673029386228011367488894305973278549987478514955527057140420989506201096595736444190321425549722820779157931854306251798629850895546281864495456899597415421524468414087641323785945938728922467619656967482790673344487234541479616631343999528190119152426437700559584131605910336065227402349451391389009820782188374794903557868313267794138508978246755518078153795580084151657731726131203785552942802827518987194894032723176610934560735183159215879797649576820953848932377742693013842534000018957979421587764673181035923625383418157786383932458297063736467121493547237532877007399941826270921436367342441904549596019279376708681632996697110425164179889139340440632845676311493560046907664195859028780583871336767706698549893802823482619186880401093369073552899967956286313389265648796758303763190007466366903154587196336973640989970878275181136555760709490333942883709647028991052956523398232046009752863782386136126389398505096251064804690141961625682320223243039939874521538071061224894945473560318570469403650440739599978567651028587294350678191076092063134471595851546464697713988795532462996926840854643177007698837360898017270871415892680162515217334534908108169056251626458673531084974552744582961517921026585364019702940335067588928095925545148674169294971784323636721944525299107910569749807849816257414345036622147292303844428913034592163899759975358154322914909142491916748575833166866053815474972178805914949315499763375715330383647335580474175096363533927276139434629929178131883635669339669423492170485670652114029763893802565206025192845308507759465057636519382946784417380864672384833689966081752703516838034039385198873775573370651533138608215470629551355933718235220808329119261281846749459751440448383269801477022826858058435370053842704386154499849878240795387832038420625526487267085466222757221495955670859823314804747509389496961660024147225460936968666677334695230441196655169144338418886306666050497456875397772107511239019850149572906551801939926132110772442795552644892618503028637825553789287089419315365086756878024248167110304450680904524128835741714567714770629456366063042783825111044002280571790014667675654010221298339818692120226429938823227513289127821209276443897697382111706220516983325826790335812718079488640289458833043219237941732326399001603937290618389536514656937761187287663591966657246154580389759029397125004247450487457275961224721724383510592327355790479013180349005804928120278552385991761774848487010600937361671451456340552094352353891638539005677932551352315734453367227107115317133369664030184379714210501895261177359995405072686232266980542742603398798537164386860376726406786210673382737156682620335747179251192103441817903907274210277161038391502426783872695326138054910078436732364016879905561723926483363667231979517365861668637469300359919564766212108803060130490526109611908971087766129848087202382475683019339391105497782868113165437307047380955942848564748397608094755230798636608810118556687933292677738352711611640488695776322266756814523683252705902827286857637013199213891178413697606512993596437671554922032980295062710927934973816310281093146064455491600210767061512537799770327357954587652140576951763451767368082539837681019713162176860148948592374181086284721473055532493808012119454624424535753777808068688724792308770468960802390085402696952192785664815532814259064965534471762720372803352046777454229492369481893625067087321859857307939983272169540543490102381060482274246787393816943258424722227558144498316752408474126253188305694552174286807261986019206718095080493724269912989497340385729154878792012201263909651850283624383492482019549356590914913557717559118251306917624316485062681753549177882258274817387777511686436964748302636455954504929511995149078827912840323095143422386730884857553275030318431213556255415047761328216155406039156191277838411398391350229787737274868194038769572263356219899702095195790155575315418239252943893451226411305892858454760596382671375422553692970552958584142474360905317620319879402880426475571635110690488188635140245888898014796761477549594253038947696892757277022733585112643364796210179763240034561083378257977400061769487907370178143064353272047528729751355378996282093254890017698648316270727385022010433538713591486591557193202578322050832735137764687253477557621140922505061257331027836178910941124358454487538615868539020642025693704293110184172468371346330940180958835394972600349496221880222016646981949024746507975096596036402510115286509066599859799805756963240365986143003671034212520150385118616039869871647671407807604578160927806296566414856369359707759862435169004067457309941771553576181574743147784761898680232951698675180534987874624502449008457005257600675175032059396731778693584105997710479298686024900787633093992389119160429133095811004966447321021173134467943793664199193579715802030646983085539393525778860530562740104084112630984675766140115234502139672604264695075733564031016215805118473214070763317620157015263615872831624130937479188757889675712888276954078720640173958392339167694249723654816039551537356687078998535609198392800879404720503507516021210019048200265432322419884696826682798682326897731777586794636386978899377409066896401515104438354677747760916530398798362055506429913192062187497107682656741783718736029669383800662232672100268536077228643504953178943626834090430870098106492646333740464061817504187015779203303674089451436413254310536280873742492249915818195642926111804157212665579473346435206465434234462281921968144407432297175835859277549625829151551752095837391724350146381857319604221217651978281417205249990710918290396343838418880727241877616260922024787469545448685712904307320956396683919055531951952822791317394302142355649160581626177319526663031763229970269877411387444390708547279406509006182964371794124050403918924961596824071852106552145138145058367115455063714180368491971968933419413909698094104725559926850807056205121793575498378237218927060341359384057976824133721872172014767287650865940056129091157071484858829193619960877733226903777466785549969976878356187697223605794825933623229644839705333595132231278166056439137545832188745641775989311225085688219185095807772662301965273832301616438250403892854923556034188770629966163813765655669646780110907767567161879918238226427724334428172395362810140548018392747254653539770635538872379592900381798385457400067967016187600705618783273746432995191922273990493512860918001183117638938336828418990875038414488942047491111221606428238832755138494897723378960008269046290534602061329115456299988058517867277445164459850731116806389468759135003741428193689272612180534894726241346859353854285526971265207899015751004981390578610946682811962950681123596570059679804323721217626858140672927482975296062765009529092691503044870642214780584901539313679389864815609647464050003778784561710475096573966761277308781787780667705574528555165790543860307024561231904621615392820041983214237282915913799460640799351185612254297850217829864651954589817560648087059735513969463332297447874954898953843997550364430445284023234612229823926018720994014537358508428902295845946265100353140054252458954574445128267620784797855376761332323692987675475768739470460104151168294214762956431824730122682341929231646693363186768791109627743347178271773479643064312535457621048163878467125203996230120119722576480544983632396188069635785016234339811458351794772505219407285630086375613454552117509413842786419249711571666373950583145006898049162644610185139457058300804673038135188523684621297437080945583336250474298460325620624816631587617322471848936519216440953955453513041088857888393813314549450206177279581951673902134814046534006004142472850046433397772994322866612342466978392332631832406390834206488928807045029238202280283063866256639472764051222300615216678979231376931318762558555612446792175054402042824572742212794253547496279186139632507071922149483217636780408710212448088659477781909976096157924444175171753812267080177773866671423003135802781028518425123690567821739565528344736589483445746537141981451674654883485735799905088487394099915894316291628702702460784953916334906034376459417672484829450931073972002222292827354645491577177851058263234737571278422454606997039078323190020977250247660834382847152494863402001139890049558101068901362556354328359798116928471752106354420963308975155046654956580554411324215441500933839481286990813698574395769440500994292313099756067668160441659795373978738962253842410275524823130035690384743225618473232470734360195291409767537097251373446599016359450323489944088341873160859110943825504948116654607518688804319591763255633155283753628213370993202527744439025319753593380450980577871413701364692831033845841081227476874796283677472448801896688730696017039266868526219271786041876557113705247279395212565883411622149240802365862670544052306479659672817011691594073820255996563880105558715977077950073973370574941365526166359389828491971954417727262796889263275634617562056524230105704092146637693372995694797516642976034016349690088162048340662561318414507740126771036069304450778619345676954100532484440852637638977587703333153479905461311579801806434680143892287160030757274428150335200509383042376000357598700534264045281214407568554810057272568420221703160012709859751434007162590931183034677566697198024897513041299565411844961979306764943635267925452230648856577276115908988986411991384175359355024420094905245426083454110189063651571265865459913670223927940541614817156222407378734347916419525284140336135012371356460477593792068713757070181940995593830191001427741058619613128806639380334853510449516782067651863468879114021027622251329393412675087978733050700247142296913665463665135071111214000684313011482047019416930647529680944405965059047212773521755422175089734598296597628162255547010022758109593272930672919525779245356707352047859766900782846939693440817342634493883882616018859797779803665803074121679448209740088246602126899477627051947047157423905396399736207447631342492822344025796742008386686744565685475838770473388712674038007387794775846028411646548694786458137674181898606130190138767510164702041240623243450051447659696049630001316291008344020507317875860997835890481113249266622945153940744207395879120163175702695572506533476070871823397243718568177311846233154182925041754946189034180281660914855316430781249099113711550568119653441559977371030842912459296666685605311110189584831385506529168298255621667719594727117890961501880633047734014012392267739625939485914776404028866311065397156909665292994850005327542536115263526530472915973439940412319635777672489078431700457006998628190251292467594543188179058784079195543201212470321567364611386334853057893549743369412495989737606263751414426974388999761962426774166382561283715355898870225447998307286723722167557809528134655267948880981530668468146670455964689481451895740876670013782466719037623839463311809570774246990184331483517171263009481961817429187962005821651604697802536107468124998912149932796940286328858312530271576983027267982953170004149947122028729252644917762781376463680612756736287392374508304193272273814681478319797444051295088309624041946650186889696020420936876785715747591688499913850434765431200553643862527618675409628532400604038463400922172199474300320858689561907561381729128678795431454558798896596321208324159788459267718839312226468737253972973321429980567894181142068866761090880775293508817526574110624991383256542291546105985281899012723463280843297024805725211737551107211721233109180642557567610008527874012873392820692138445231947143771443444952820118602204067621719554886418336072160749768728579885527436602433837733870848912053119265949467100773614557313439265595407537918714074793548241274972394862143136241751741617288966160515072667751435768917404337652571073769663329564156896827198934820911695732794261042912691006946275142110627589056902688514468223783316128047733150460496673215019882433760582627851686546401402464296129761812975944854542359320627045045778566694315325161521792872195599504059856485232579053299985511501448583780527502092414578460370685249744918729745152251534884565979029363724100976079378676531082911975452623688554646898638392711171478461267318705045004962405309825082231483296456216774659828680075804375761256905620194839015591332508981935617225039620763198118841236764593792006716936010154622217865406241638005396771737609178883168294149277763826832132885193364258746200567490084857196318005433128800671102834166958968470716585348449443765146861156982017957760535318112474706724613848719460828039369809008101577614316661573797070584561603510474954603375823138770365189768158303203918913015021107104673996001470504984476003027273413675454816264014996775267329436900758714302134791251463278858965965770259327039843389971305372172563102312852923812190834920125433867483859184584020367416788394426460891064536463222116097715404999543891505941810789240780305055419357643850859799645662959993698268197617681582219419394430533440166114675010304054670071945631025081467093120168584037729233839658467311055335950129199025012365813785069627233379872392746240707392463465693917207111655455039857499736529204844739607103008566723129977449853320253514873819680355142861042731031271738399354525294613831403304618434137278854838593318366981561244506558507631461652470947853155797143420814951698462400530246822059499752018195210784972026776498870704776089295999986304912495506861990045150148736142565386432405594150528421805881328836289423059525484168732484990191780947234658164435894219986532280288736204513104080499976154521018961747667688833683132310971680718987754461887585275515302369484749625927918554760857516882317739703873402428995310139795021539435489703464069096072447547489599218900772105538057235992759351949747179765233955722650267610526798391064947344515846669368681098836929350117735810056363170451484314262241956981437003986369499250531609189467192067711238834175007973140131254734102031839306183851848247803885196275016978221100936252716730971782639889153519450787578871674169837232585609352597802526918531422315085078972906599719058048338507732259013605977409671488107445963890676349294393630166938558543468368273561352911542011316477869089864663573973036216294918351455398251294394334492543540621331472596526151416432700951605215979664753196515582160249995896161672216383133772667036120136298091108206600170172561100679440961775624027223354359510112961317058671656432125103637517061368080971603174176968433921137688303000099903947687371055114316454068731820293931921085846506901059520410696339396791802342458477938469888089119647307631832200290466187011242809019099988375350326235547965025780690789355520296874035691391418841883176756004001996967109406854609794807977296153257658384069515063594642757085648411035480847488850725436344060798344568758800755169170041432198317998430171253330371724030740142312760039205134033665351198753961998461110193925373261577575930381638500514004461970312954467321099053526325131727243608353235474704059895524467166240659313028180949551157386992529275709658769717817741987826385183661785185831957209841539161392180157490771846118629858611682409400210315271965532232302007100687814154536377341169703511836016238231912421482124405758561957787778274024526829860434372480074080729943583980918327343368773135389063226546503593321609152940924422900772908075470800074976209498598603319316103431630472960240227095058515135067973950562529941185790605569911726548592330588342010135142100378369300519799196064244979861160359985909392711119533265009385802972345298498873643674994745751684252726711742456747302071833560184667033330226934662079365489630655964076823367013792478945841819973230819759546546232971366688348621973102822976253813709874831918331800218014120570323371474928154960561373193493835180330455011273029921946492102722441213078120817115289299507263066597996188544258134673989530274926655819519655225764235051859132445817083033917969566653285881194197933206837242805718011600081528211475696186431980250536843728620720848710784896716605034477718065195280681403672271801833373463824453326083012232387275530251960475148039590931437272848432875140333748103215169294751151561467204005467320398221837896669949256063091331225723039445518388626368574261540538334612547899622159102809125970375638966717678497274458382828651041212120632883551005446379736132894290336225451488344379123139104202348743731914259839588537154252828646841813354318837366330498047788082099073278124098811473987632561278321598351676450541939589336497048458811801699339063355353064390596485840317423327267482627968771678219961629256004154732178755007627396442895481140102051063681045716473035870631942955165605843340914753572270410524820237464401179129936259300743666579671725309111518561428953242720804776405539603879681003194375516968727339213630309304813005608574482712263562766195682117510914301163666610833814509890296858173766799385249799643948272271002063182008213237447675609264859693941321745425696579064965603513719102132601976696054263342677643602940059359683398536748451575031167021013662960441865879256661742004926590528587109210286234116249036237692879690820435543409240681628352408661058903752857398764913900104873166108486939134759422240002508337062239595561435042116997814801197881654492163694406374848949014768631865066305885617834359098292153344451308443889668106297197977185582411850969601247624469894477917240720724930843311807395969789398303322152073736240224947156222827783987215781941450963065346508470712508352206320338967170097451418704337961123907369259780009810326228294095364499035145009382957010499898193268302059545289666547980825792150765380414006786418747630488053181130791504006973843127022221983361948807992706769167798486201821699610874200406805944597112005242838647378074858363285460393471681111823338466929486033789756939069761013247135457244990793597192123741580448670877392259287050223218462030352434481223420130825726426855757454791884588133077062131359119086378183813193369617883146620191010750783149425566303246737647411984527822015236758648942249833674337691072991245568989252186775381888205148703253639939564761178794318311414899449766848081244548967987501465804401419841236597113767784530287442114804151407474983070728834283739974447753704071452564415054294023477367580167743440213280412144820489284821456007359495635292193399218708480708530274322621456871621742641236459702848935109893623518720441523755831605157741526517122148212644707932173875648527708115423618251045998454487550888192696062640967620886033662526756964399304164320805186739657609585846254266095938644438480064061772871111795517866161181578718114941223407106855415898172214135812026743500465337003014047333058389515396833292710312064087448827667863217525836633155923322774244397220831303371846672057350022904387716608998529298554425885311125885764567425131235494952716211373455831786488879746824947819532176064571631528806151293967162285617691287320360445720476047099329617006341044368828502804178985439582984476133459513966989470094789532054420200132295876238626580870970128873324079139108091041809554662297163469270967388212090223708412032296536295356380751986141611981398170647723448991813578877064355119448678353354687371280660848076622037209244421431059066864092985856782454035743250816930098179951802330505870236000013759794081736075991018693160053755068873249310575723048469743746558467837136471630668810382782601064763517172384767998846344899810742569636134272772455159054934775019685555959744829118981502699588193690040426908343035292618466219980277047131655261504269698822765346035436720170576528314896059456967410558427850517146197954003741743344003170101502584553473455955110738136821738319901586836733460764724338042560950324179470667783071818948709279703814049135752047912661989072123551255203597041822772909555625455836105466329221743074341591630036075156124106492374695564179284108075619634396978974034022263607962341629733430034526333566539848305623101552291341543661150668447223293527969848252707476583281600863709380417146069142120301641040839301141435421817448370093445043061052758159985748237457394780076955134457960169722542081465772017324520066934802860156298844738752895708889565736301244846940702549284688064701854726316315982895051476303400349522826635532875317366366722954417473736990565344597506880815574251364644839671226130257188528083903197578276793997942845529708018633323912068145411009031836141685572056029011216820819917876085235531590791136524723656534418589713918686038027707760595459275793170784956514749470676331346445973074570723730103106029125709890734984088945087053751842431083561988278507077579324891068091513122567397046038415000195371441680067544589923945742480215138429453452894426309440245215067930890142171366581010997121129646651950893565711985449238558221694205583349189851212421903662636810022104669622957776788937167431746808317258849605661423790852376351972868166845814821165203916120393223995871010517252727592994293752938623705602176511804358963015421331731993965467506294822783508679145584084458726857559534055529658502123534776985233737253925541789027545042737898774750256987858973206458919660702637058406819432137767360806429631700767319184470833347116619430278425963703013136221204055153671071524238985117138238098257973533183246713609811554832814466274346354649272341798375010940956470708405133171996535668424251334135023235477574301832181259621583890371561753933585460533540826693891727857994984685724405700145580264113921922545633901998489762887250052885720326198988294106128178222360463016094124098548995305076535581089363661678694866499009933630521560496899574204257004033673771764732578055185757962837608254487422506998567898998149772507562486556401693983924579086862825680529135710620008692911959741880658442691908401409719585712569610278410625641345990497929584109938413976844567329552282215811645865517644038156344263774419876086284891285257597623367072916460641526132823898608631448090502517286685921566099347113923173063039547757863579741105337524504416984876407288367654565045852888438258820376166707050238466994547656722407295132582831957004098283312795712482945656715639294342316738437364978076359455312689833783156190130718297359679761142001895436789037833719043674505831332642603228615107955678685318821541268958648032232183566697078429827807891518229842943693217551814147582034392455623660833044279731887395263647843465054030175537596295072387748829342665056905519015621109907260094726166222579862759466603881577544344205022278416690970334731472935188452081874446749568037777426719227493106958382172628180434527275503963127572590374333314541288906728121242225331295379305147913383571659665198144504294023117101820953581761661297950991167915683315324083786967073353922998328854420859206449311564797647582316040429389003713256115831273484503699568902547911336358378080905790154739896393705023622809598611879044018494996158582542079352786258793837227598277059897815299648776865248893236449913157843199583657641525337959685253053891574093342960575000412808471531696980275967886981229691299842102484280347530806477247869952635362893039725788355093765625926710053568444851334661792916107377638039289819481893189585021918248661084660306122932760485378937395714437794771320107829574675837536627811773676808275783800068932462152244058702310050888701359569000506769463232728546137731593297188561949017775381127332596451929812118531545939758156443929683423630505413078589701481618195493082450399448589153654662138446672811326360838312213486307147052800985850832558961679365800077908775888461143276734487016012974778272233994263949187716979466251059171063614203867066225960291107696108882232849738035472869381072009662162128198864339139641686562512983281362809122707327050803122886351969551877589658160430366274237779902096308900744365516452330721712034008764739887749978304004970925446597933775789247034608645067789188337980189528802514588195772094208459770322703130521957074598435366728635298527683493783099448273916350819585660479317921903615784221822104663245954095648515845016751794143346046834177149420595707051570142566045054525171493093224395058185514868255521770001770873626268340960656393874330293040830697339174034484582680232797443910664842436649837454576866989410256356362315461233234894076959166064374570254498034863944327072736192781858075093085082085159843370001786206329156351190981219671060554438900198944697831939535007470755751370983920475358888358938306508165821999659389844989411563551607410472145087104675716175461856600384122727957907496379129499831559034307782028538354416781031273051785759248297002730313427047406071646294397644976678534281724198250648459935807488950174503400135079875752463775669445235575935091647158546413901669541241394650539270962766164938557181198866199192017955099775909269520749850254983149683781810031662819824403643195531311535354722071232360740110312289566061801004918329162833633102535415285785970753059923811753027073050384362577082465013088314028409738418179017239641974687015042955796943558768309134372769732092631852141910198976538667367791311942360915540779301315949917553055740930283748040337525238062563638511411647306393635933164250006989759687227310279938087704211285784723709814492956958411560812572053065564697469721459174520862048264265265842223665306406564175823770376833820055387655159260542120595385836278783308297954990752133682169576901252234355933885888995348079265217040123413735769576584232434880868046757190931966504904687698239829794427250447870753930036566725843721465932928659329743607467056929913539490530008608805940007936626283944462879562260212715542203615269590568921759097213396547366332334753425087161142198009883505584261919796664258661919424494561633378118274638364075002126416202859110504971377718709739798781286411319236376175544050907164599211009799536916706575101634503236013852671860269561420513735565914655868824389627467500165056693925706839911597293391888409117675302206691747891634146599075054525599455577418692975886912188216592204420742078383808300591453358645315967513966701577027915509134103612110017990625951407371112429336096332802256038256433811501349352439091786387571288764096628434545522799938079435615799151311250402671985301474270625293505979542169479636368934973303093050254242800821140658045080916648579702566213393783554378614335748017062240361622069605211210771070558068867585752945736656151094294040044486511587158385817782777130078372666718358407349382739237192745324376537813490095873640790861182104628525217077693966704867498291123857765148329760638620865418534819406880224562195691725914636219147112385384596150714576079649262047379783917761604871365981668272982332253398005131576662917383249332929514371576687280802473961318542615782159348340172008145853239206156710960583260275723316104298144690135272062709214299481295600929216447017825491049900901442007056225968547902626497132014163558875795882418259557369863979716249202539078353186013236015308971850172396304706908294933581338374334346207850860137629133974706876042971614713470447334218122140298900768816940788189993821543734392311762315036388882833152764294197978621422452385631834984292410402645906144636797521802458846743994826289203983745797211560192164225108401488287199434098611231717440802562954979438669089954328399419628872176799740150273006088667274310520145578245823727036328267309793565468756950260499860073508440061015292057070439787668263833356630770967664242633510381734863226880827675994765262671154085241381479147011620510262910636251321359596008665921148990317412848268847550921872070325512383678634804877710034162952845122226276060534166527887001309177648214148006497199866597780029807311980733970151796662698884913156145132094472261059364979990433082828339358180308643464737012774499490260559367197908763933985361230899789945375558694343159457187203656618939729438022391988349933904671451602195931086844546079313582951527588010670135498608919227461910663874255178544267651211293417100226908622056646227613927327163019769011877337797672085827974031914327417130954431332035873833859466729749429229738727671371034878060204916430806605758946835942130749700419513938616106444849999206903271874706533793555855001170397496353515320794915512294709210354094032422144602492995490961344336100702332159959569251472832643263281754516920774617929361176888582933902238889557115095027015741076087757561102393254163587228337989236478941544908978941109035406918418643282827472263901009221808523900031276120044187284353800526055606604418110857854022689968434842560544140553387706335634885384469248510404152968026183869837302770070572544611717239207654306470867551932680590284217092413354923410541225624374954213363142327574823784581588957344276033713505286245480768393248019593520814309405144145703895689551241252103863646141025328373772753476336503064582403068807777708547761395548306113225477502694244334648282105314150370614939234213632399517993286387076059683464047098379331349130115912889800525006938164078449186231515556831436752003053587939236860587373330727964741845862428948124486768416227066324786620138672948380479656421494440958309161186364357639820737830493019140101575876753690501280759438807066847937457157040731387250626618787926850203138941616424707462856237213511090560559124167793369927921560321899255112777170079544168657769411614800009704146476382590162525083810947679921409842895757572413902397708991998814694279806445090061926725139894495377234904147146936287907632559610080115461357058840672265210534631213624698065794784423300033833474521067296418190392723441244362336158757286716872269801201784866130919528069951771643142193996557911029758743670197624842187158814890808848988331034539888767804975291538101539589610866124585446363566423683884991839499962386421378920820931485372215381109762423697634180954707377733063791373468116087719802824066050028219967695545267260811523096978510677103225597468061800513720539157052684331984322612768108615386075973714908928429353306333382553020317718451390987863442549542557169745093910676611285602710670073887270473161806681710417471131939418500823218849938657157490250048031505825045203837844771075127498906413141582888397459343298400109785705120506263450611443230698927378120409716366049141296042547468918428739632845408138353486637887206088666985210733989020217995091589420531673620927817788950129126194628926166017077244903234415798897575095717633822476251997022215937677495624285940628218938340137726859545262462064384512759918672264632626272570960043723823458236109537787040695983095164750574302223719539307893289807511576270021147800691936972259949371133238317969369054618221665710537626700328478072890402805393670891003226317328311187431979741016271617038192479487894879436211079743389220477524617713999845382006703296183493171332700577569095588846301281751963581504273335761398980392343039840519508333336792999679392080067898909600246499927855695869156309603506606280255731980064520949862137739226530046205569072753720444944805957606172581954569167122378349518839302637925812468967942356120697379777732854138204351354556572594558526566697421477144095929484780828333091079844622562594955858834621185690754720405326420498501833583310585130473688803166073544223430786279919692436804566121490389906709311183794046743583204162240008664814752893786713453642654573145802287224522811544165883863465752256617773848523975635850358208194510087325933630049001039831768010943555312623430922186959166631026912981045875075956693375986666198051096891522532586387731207157284505602403581471165892590714593831373865746687952184770177126111945270060031865044843106216996646808646452834156701681150423999729604087291514628398795906631853091851416651651314542570401511294573039003932764933333367499704661019132795320496936546358552423391333030984922442690239531417719733739669014170426223951135437535597220000460511020323584220562076903621293338105978227340823289694452881302330557550335941815625866472061685680128585542700917017413423487943069281303531330335581263859764817792229925697896340833754055369135666004924980309056828439552706020953766555938374002174350028500020799007305999572624283927941307765245526821561707602596465085721311587435609984532884421752205732715685557384556789257103063881359032564372753824736735174520020617878694256409257882262314820126543039684065279900498556075740388950534522216075497585377902902710898086549431608336247419103948450788152823548822586547157319430370248846376096251102605174999216948236656458075928120499260938113681291612212603473411290552877602957905834134756140215460640002552524944515572969629837966987838009237652549154493054801792909865367278378554013543354228235154199691186268826933391295419955527051835484369465122976212952097170121954472588837741157732910837047341798195237294406847687019307545768176252154971552217274027190696583429110095394845003664846316220375611641594764063051205561244136550891758909988093376224951350054222552832388562516171169946516271369287568170953551601050226630597788082811768191352589963252992330821892236997749476517651824055903275559513843905388012760340390365139517017542915830271556039859448974186996519774052398240517182412348431531052784325357349516292538879674217008304409641803213144000687471053411014319708650446054052527991182042797615564885589571400416037296174376475843724729137359006440937566139889555511872779361428061537125896439034431685982493125974728024385633679620854813863215069642689984526428324673446319657207466814568154126847501291376501752776071955171422235646380140356294624449995679275787239412907311971074002627292740879511447992224432601875046480597731434481372349173774839656214234790005554099169226135937667744744901312602173805421218392694788459124123259042900003577660207088254816745297967988719363039951862726386648257034038152445242227762785827529980062014717253230351949879729938004227690026507452725809248014267307368933325771879862806413515939716073287061067526618911403551668401750437362625083343990881829204315116447143121026431791180810890953126863693270385112722084095444014963264217815388744361598479397797944558114112531768394316623952773176604347850824594353460087847654744186798649006031578819313012914032302150892452342264023415182886997458971765472529881455416146436594358148951473126545663437167027967651688409049260265633979205753057200578602900024815542836076637218397939195558884075269901116137644323054224002719720734495944430144681041760723917908397567267505733525781028765539079080756469336402325029367658462023168145506953341803311658419708594459564771353997118541722693754903462240475849804098183178780581949001205367033729285632613550373178949544890422965891169252481860677593145286144232301160073197586230438679812970198121891073005118158222096282717877125690554510425278132490530434785734034601467268360870332513769583264927005988452488031467930220640732012139292469114141907966653146305443638106248538190395108047314435464232904639611412681296976187081228413229024788176764034261198401674129958097627602288416401354310226710943256129055756487815661884797579150648264391992994983755807341409524592328024067186119714421507634091372058304262979956346003955461804795465210892861896086199076542290140898122440288669337749161613730179786278360322606666186363324370044249134056294079565267632168444033237852697874032697803671514969285324581093441231045944570590953375901574549901228968510800296920751674553747614627473046780000444643709150502779562030143409956267052212905868028679445644103286363357389557773570375318173253832785859237019308943573353620179038150254035734020897176961897997539344784306448233099321979410546036398625586187196973456577059638311463341230589371936104808072413343051477122425004451015844039219354442963437088280061918440978979902980180949269275353590294248715197069975977245147929275300114288251614117707677546429459658410491176643360987608752145651445670477566635035010455417883185323306384660989402002071740245530826917481641914953480074082426874572846852940942142232181390709322569854283392028873778942444215728392874987112406787473662414699535738890100124800939599070401788386367347584929303374331336712571372016895182427011419511848553802011689981429389134479396582939310818879467943009250000308010161434361332076626323523025406735612991584336538601371504429489902516830786058237453092339021794282969863655803124543055030467422874438229480868700929522539294237945661326239559910791614247771742728846504754241083585701547501015091953036622816917730472447757375210236302179514129177018539278515731706256428093825398714231240589542046708751039582075936366575743635790170758102818589411921746075200137559053016035905974402475878189951704645715246585550809052486983758434422906568270632848516237265092769055525484970327098476860602810302859435228720572174257563451482766505303360357215379895167372877740317560666356117060307081840521274963506834720261013934859118107148313335725961559573477574443374824459035914798998502180429768595168430713842146984914343023947203174703396220228048699168526872872751029842201760251898341200778257431263843102701886017693076673471248856282265327760127275796644489804547141463167460175161541045073149118025150689949217286808867173404214136199371626651669152393999555776015555866447610865984514071719176043257812565979035869173414324372212964407114227713290308508499203253831383193153228865244118314692777871020107918647385571077593221129574474847761453367752738480662711029302541215725079734860727620826877387153770930066299743514365377235431990473229079202945929539818294742203769175732030421647363192757531603645212365286200347260090901225412214384937535041176898486770622369924194062172054612485789374374532878429149505718650787238562065255403457687039868646749947184292339987680062024425919223100263294064341748368193535796743104477781673797195495373922436147110224999642781442374130046537024625667109912857486845264059353138405973055767797753710062079320623960899845570866329798401366045125454341932237146384926479141717315093985225792530954464192916015312796581796264790239591393934543987980500411551454348354522736271553001562521604138991085566406215031890596597527471376694573747256895709546102888843767545429852812664484552965139286001280969768466659343448164215854943212192920525621863208478638915020459651519030368695228910016013096115851088131193758049318596170013689521881920287220202903853146036991056632139202905697879343568728900399232661675854549872356142162016968090553637924650464828132690172654704830340007176245931879858206444060460201633783028678106845566154219571201539732915967445732146981508359718020868280012614496932159118151881416594771105450417510423849271985966779102499769720625140887859197845590673092615372909046281129413948681635330292205006017751698633185273788183121772558451224122641330553469025650533216607668938141811244580615763416175347512272232848964947719229634685716201721162696512335439961609505842202067204403574490720229393144849169797523934330585166874292398355215914860630856882230965870121149790250236909589117946630073588093442795285988042228582151227280858968932247022101416510498668628980612835509931961563406193969520099821008297308751056784149113887777741067329936922870872595710364469910207314677016121617458312165831233360776358066650063349637330286766790585128966272466584910997824902736913536306312856767828634779513772208832379289166052439273124649258264774924144862215346373247203803735871667754721210916395680122143358606158978623250239484688449810252020354074177642677665563517819162800561587515880443718355672867053064617243827665668282646528826576489059790981101856278085087271583676909172541120158892439817344201296225306303849737480470541986111198976981303385963696202542512292447401450623220841643961289086832416470002820657310450602663234375113533780919052010790935895492158010507774774433749601678062460223025642897040191788820004560059625882720832194288381328131832114277069633110586401776585403569315621371469105694286632521813662796287049264562799524345015536206563244746680678092709539350119565593794179784433296815830241098338284705211345291455244323795203638759367645682535457198935868620648228705690094232398783941473978916343905045936807277077462578434760521630786895545093983298744197330135537577671571473081446095146287482886959020467209309496905853005477628235167894905419598427568613450135830630259493055315105694843652819590786799797397716377380645969138603644420916491807410431529390432933977251716371548433974590027917753830121595518883113035439056429840524501275062027828767347012310665638378239187100386592264026008210207344752621612212688477050401628979089991189875557357733802157842716506053001108511531837131250760514728696064734513932009583776582509321642062725068077574915895772827339669864714643599974881575475507746741614830068007560639674595147810277894194377174260063569675440917382942349026838835379904031017283491323844719966852109441195509376289956122648753938767760935060138246500825668579615822036901547410255315587573515926623019260267052930700981660241274462001283042404574725503513009563735929579509162125364360980217476127348507991776875485883134339045086990603396973038440848656102321372422541828061880908961873635211156811288315141344205151818862083659132532776186747441262001940333930844594033823870629189543252803940816577970519292390970069626637934926226172149351286229340548587773962048991315344971491264307101665319000773516090087593739413021157092636888700954797904497321888614229718049302543188254789890194299477898444024791661055667232842342440711684917110655040549820331587338244389055720689827169591386618330749862983992880393215544294939457343418179852020624474758199380339436945644333848975220183175880576008298930680436943236635593769181006294579082007155608062319808893658379029820575272766736542497080479852878245726596691199104325710429382794748927295483562196419593655139469351054723178579520071239017061236046995860812775225602073712388749991321274516301280485167415957087351926434837627483962987260198179492057688255438689622312016533423981319917379834104315067563878992345150966054593374879318908411096919499019034386095995002036589366618074119612552132407943130122391728518382997782300478289512910220082185398973766070598690499487805159622059110841274026222805512429095014671806331042537624741261576582836067902864612471515959661513132192564559562397228704664392346579039181844304551624030763198359140190008449720863719422809926256785721801654620226628992157806772361140616050332096106726499286880640030476738114481559223062533469620361815320561099159117802299362720171922628073387704408405282148358938302808901670537713032691408277429955823619991325496142819312421800106283517724349234594124857227905178238104196516192586681397274464763257973100033616117847370564516423856207756323896811433580298517048258114287516294315997091190435117450504664227333597973624251395710694694665799344587677044951216482641788343925368595858364834627756707354754916734777360244977196448208383464318073254899400515860381286675952946191473910134297324609359643970688500644018510653759104281332716380023706926429295160884729728190424734952442348974053938282514648638813593428849516158111189672190181239349562743851749557875901108548016713687162318157152326622097722979902633199521895902822097144792000419598993262195015827649085978701028946913415917000031039644928701374662060219419993708168420090067876721118068521054481518182130282067681957343943137730612177702791374765765554316787124658485523368993584138813797093666120426808247529523730663791810608349964543434235629630968674487707314981681671636774333134896963123382900457351698757471827171448335667259594989512996308774663304133616983643429197546949681323597060534739059504897032249163873039077174027649602787732424770946495610325735977316412914472383000715828119598701592672517643666881435937955828748058152244910563092115120715580040967754116838409423497244477618546251115041704922134897865514431825861719610299955760326456450649977015018015375775709407539809267083078027316597472516435581710397296639403685366297706947273476475683433658237598104778374538204831040606796043043194529894366683674478501238597216303960660369788026388299267765074198254673766845602440295489530327257231329805347466866773800217118270643229198265769116404599883549791924182601864645882160716870373955102239591282347174131779823559188258275415785714299904755573807323422651452887637600905721172626204541298125842825088810551461174448208591184245346407238496881409365723633480848179654020735559700841067947831848238900027054955321434261982170885083932586265211343878888001215181626118591796203409330396099715697435118521110135371424953374382404647932453808496076650674147172907465858107264645774401483313275352305775325051776157286264348921541211073055941107633895392489667570675562152479455064494045858852182736264144451991046878566309958081335535879807132181977757672862939134223642462859223844244931265317028357062762262804826215154583103382274189169627408375128084998447823316413689802065545358644467049502263971470921176882646718718361362023125176975808051359260725661899383424069807008200740058306503608876623957979655228331785089495706380370818549195588714538157698621432246206002011305231124740768477463561299423670636138658994461261035000123671673172035979188057392439922648030806883332157876013348501104848036128824354416234072147868523493845646398339466831341950795744100733255532332788152292004089814375890296759310084980886993115369430132370595601705393306596571997573129444513725524598119238684054464076783908133361633371271080038045845614723360165033540469675334256798448205380931732576439193354960472342805752074687531138006958184186718061403544059813483064650144677271616013062741221852211680284964213393812974982774085261853585474502211639055169045818829599408223920280049390766582478276145191269625159667551414746012031146866931226782448319755666121423270955076995103556028245492266199427825112100788657414509449782754052654724122588146193795345500175483646872414770111631518729824906051919245039849369249729333285198076294924879872732669535033467704754521416470029640468181461071413104299659867625485563394085327078588888852166531821777288133434932572051474939624831452516628026507243508097146765090372801197296867066843263851482071196542835065895196764835558736666657746134530880042311442700874438951886937174923178116128242475530405619624501313774561280682437911915059823496040528591821845416816177432193603668380480972900327261870859667082865113812071504619472148496044019815301201035806606557258998609150876022022737758510586829155629834604975869351136292267641054152040023517094914143829497825644417717782624732258543700106586455712090449502568247701988971279859442602847327051451117849184422517827842140024632501151745244385322266715133750677575238017511981291341296803106697482192719880345118055216042015309644011043009199259699835817755851387615045374898832149292590974847460657445856958123819129097310962519481562531433974164446039487245565612569398056131988502598073055989265302975779361203548968764221052084544245291123083787413754643061547356502924661616222747258644938351517565125003125223699184434245519627231739918232865604629329717656050780186407726843597830504557592274770131471033966927950302597286796181850142511903338640878066394643664747072905232320335112947762143781824979186123776037303315993307143377575541363726432756457587411276526729454436417117902186723743413063326672406794367509435859796086389362267486961874037274261221814584076638980428597433854738193375958710365594233815987682965926959978071231988209157199028895726325609223378830090318374436233098085579076936918623879727184420691027556624745961649214423838301128134636515306968013677243138619117875216053707249205032061949807610268758465112698178124086102934311121759913017454312995384446187906596854020981427818699558408804752960689407541828109026029761510169771190405278292173778989050926062970974515370909068367601697862452452518044730677002194817890645162201815203487899649888065942248311683890381800554462680671866805332548145344499606846026580902427642183681856338330887798415205396895118530161083541377173816152931639366848609056491094956030401382825006227673050246759840183032942059156463259711701897111391955945515970111622544685921390128346863439551975376995772254010699562018297295524684259633446897853763852332777383099791041390194700663717114541029363103009155519795761746472755182314181026258853574995125463613836957670540518391091367075561742477813056995119787249818529369599620271724780990317211463380772698579858287009212864590912400767824148458492680504179552849099942583507032432101419008671324458284460754384883161945570123227511602630812499511959621978453622580721553792266579131998951660029709623539137087048830608632526882795230887561376134857324127119697010789790946883414646222581548423698471438094082802068274533049406964575471472394469251716462962621844759799025621032871756589469031063408196224091799211267486218958300528417908182698389097992512886810551305658868178404303855755385754350090274179689520415957097341384378070056764643871709300849742575953692228110979247521115091632115558848929876025773739348108937484071942114477418347403654666489894196638327381801787836615683763833215902086713701058915405628066580627857893659338893294020773594751994607460255139042595506343409351255856571876536738220662255229588124855972325163665181841657281822681536963600672295204955552247205461575124243319824705347818642205438463595783367620388915318457556075794820772397715242622826986039094112667501359974620627618881913259654695985720154333307111127029764300111787890715017295662237513766521766422120104378127782798942029339045167906388986273394085554231425021125620314112606107664097630971655734485749606625781913662860881511638937885387313623909243215515974971711762128957723325129096878339213917694528033055213042398134406069488829901776735694731564633222492471859077971164151398448515714569594390555459371604018705843834332821073449600018693250303236434775267863002495735039058141293004329040945281618505309219879331560373397292274017023029659228238149749219633154615556718010566874864445398502802949443834577121367711318946042383650032550228570932855210903181801448451461279784832149107036695377101516085478591460605518854017338580463486034472930861098285032196735707815528203527898956783104344253536040313578657975534778804898782961615913502762737432202364537517853433315303854418519425179901832351182484957328765734732745404366086041808188334010242865030711118415006418521066479227865989961595890406326406709045163462202863927626359504126117012303038161759642656164058326383880106454361846286190605284000465865457857948402248002782828216843271447277356609345723764489447544737529209927836476110625425374783840905304550184319042552010184296301710411064184366600309146282890773315518890299502303464642786117981273969558672655096069869431535639012600080501256552290405953455719084490682634862094628227572715517044642231780660224025781975658189724778149320366204088907507868317344962343281096704601756356742265745683201329642107233099871842019366152556692102952250370892303487539263618376403352418051472811358383713668890817145994630286042757582424497299171673491349111575918325945999498496379044863412309615157937648889337365507439418098623154671906828599439586467356245808722589678207005013462104661538823957155429149305928758207397259552168104071313109441152096118274105258147143771231875539948496696594950600349601044847614033131414177996218422303529876928456743307902341017358434384667760724092873376322345189159706791078128673845329303785924278171026718429455065478463970361871153943387411850852058397275618075605500119295550389533324728678233641782289955158600542914117515086528715113012835020192387020228688963156342818872048440307159189716378628134668261274151544378708746306088011267567612451464310384775740170515039998193561010417755727094119587132241492100917289974931669509485041506627539605605118966429318498052241350012245200334421287107226092702348446716498870887134900420374623366412545236327765444405953865084186372922056987337910890334552284966584995606962445269321170850613268058354411845689710790796018736702900993054352161398086252187956061699251065029671890856208497112176012263775305215549814858821818720556681987721005605003638002864619467099139142325586274523400719011407328920948174913593479427368145281582226817671820264992224359540748903630447290165626237683302349923077172524297901212490039925733140138201291015651955271010270996067777230483927129962364144080175314629816661013261192818996952266356592286113651461827181865874432239195410358203499762462681120167104646138426524612680334098738039251663389301696386135064194958462449826090251296330169999256834929916605705257638653128830585914030672717840652182580241379549641784776070064588463801456793678827114713758261204085502284162334240942191039997205758437138360344578881737430123987633605921785414993084908510951703978734340866064877392878862701966066732698832732513393827005460583275236274728651702011285000046123852995178129001665094766709127074184114414096372325066237063433535060394600450975897020164236726397494478727283729195315879453324742829224767274074782407393971536817075725704349449201351744306377948531492435780942839827129935861375703193530288303855309105694958283583610220536134233490873033393216996525491752943463311939616021519394988873803231307920446948663193266568241231298248296280127826918590904944649571250747338876015878597931814662578597953941253688064355251442715882251075995684711471347948413581124319738388595176114806718743578632321655866129081377943900204407187518308028829466796695068430170513571575622433994683391204695107861653843611097205295362861264130524051394674268625186561106394238864679672034500421687196670811589297336822425732100525087019061823992128632732496972488147758681990004629253254620822310845985473886596982640335013724257523766585606384090232242720940351734514871753724897348469556005709124595145690171001940735984124547095837254155016291271606669143734009867261368428115034926057411392451092445403602780968847219573141675437475265874065332815546156606975516524925008332373770501989604909796602587026870646600515482445702013470139257563787727439030293538533687269597937636950616854536977629262426760440246454539005418464862116921192212501431451906792230559119196608161084629075586390738086020017365678048903176864152350159607720526460998057136299552684412872571981268485566649334580375923620902901700555376796132153849191564555545401983953913986487627714198673146301590482176097614950081346236410645378717135873112279052702896829846554804327363930537002058393783869056851336783823696777535256876116926073967838148490983495525863093898945156641250505324259746389698429746960083975396380979271361668130355274587207987008154319211612368367664767691356909220193957496550843653932873317637673601054464586452916852662932674924862436821247921639102278726578480990949514427078017674254604504466878494007304632869374966825367474047890103853502360498283358886811843061296331955927280052335017317442674949081082585783167416690986818728169953706544839873306095954187000918711965955285773723517744752202149776537639473549861050073122785123132193471377806908777653990016217539386028796804484838360821031848871180082758330498979116560793493641818059917102615807528741187571173332705423895974160426428352766834963207933171669840725834375849504527034756822561677342633492858649189382889618052589446127652618148285295287667516989660564988971369647183742775306448248257842649936413569484923473343676531629806280014633260331149231195291462378794915665057075519675483983559480305833948368554645728949174857739123767528268832508266713515995093182277520869462866415936119153163544979089657809221944189462360802686169437282157792693101992478285250088286800245611074955913235279071932221131325708843187395774508801039703531092695749688530169074482847322826948984434712731700257619774068621584213566132980147430018131358140641413844402881427374266970988358096053595727874445282925212007284795384517223880440088304520077082686309883004806138627956233867961727162914895021621470088612667392569929544736793184216402197236492878349699626440665724492198597228401680385374946078547612856094945857157439775693872548108318661341780134891637489087703837204138676294577375211732126503158327847767984954092213084234012227289164144903273682279753441649809807908140678394272627551445974393583639060476897861398401005942245159021929945637280325503186373779316830450617694545565103935699455177287870117367893862830192318245792625716379596220075328270063285665757887056751393372085590430818649928832782295750008776292486214982504913414652311084776746712918491468014217873124302945967497844827718171526718010523413863986503544721311657167533746633606769587357427180634788715929020473610225419010097604690336621071408346194436847702766120263025467316523901218552357627583984821196158769567036264090408375020406971861032511327033578201040759807683796629473177498965803041196195302373401475544572278454229407210408713867019926095950021339390596761405436793131175131133727981301192562320955445528916171008156261739845823818111011140449574029139933949001581432775067423193454603017510621044357830429073089259452944581965997415189810382717763679525291639075411949480323812547463492014395089160440666830793405566396643301725330584567527006802676486518309160641856794804065108821013017821691310553538636750828029156769510813754755078314640335910985866308648313143981185988417559508922226057184426612250575607074867370608933474570140523159974537017039174017538959767700433924109747251869794089797046645481067005546203560448312042366414328158677594116495825937904304001850236566060267452238777602219871677550385776513082140047520367694907019259826785334358156734801937007846237731094468313218703553296055570483547414563686312200277796100116472721095808747413611880622567112861143646381403711695908228911180417479071754901065316038867195664688081039592091972699000261818026596196020427331138888568851712764427133066227587863016313954587718149339486833936870923315849804720473550939575184775562773245326964141065780793284739900653743930792156230364814603159721043363535756362772910323711215654977266905940920873347538294542231698075924347128665978679059281631602710063846373325601656549298867744066550538864608127703822633417139217688510423116529731202883774919007538241510590450517429021734121608534883638474183071131095242568028017529600859000745740114215478958138839170928374153391591074484539478303203615538424055483793436246593038906700299297209792171908785895711999751339596691618392361117060471460312806710832284245469468560745338312115431122778174995846836091289989647244851604019537768003809058887400055392786044285952895618117831869741911253949454337662972050072050125941610714039881910340525453240166898656828480728949916550367712101246106026518883748423325911376400715476935733001351142095149465629946418954749740140814125385012161207937630434662837681649377517888338483483151460248007094414114789506618903366385348327388125265423910364418357230282192783090107116041653011299015448690310368064243391152634811411772902031470148701007678572516534056970368458620061181560802953556604688382649942109813501308428190322921573184942122271189803735368205434918970608718286686976290954461203965705519540334499541016065183983470080160433958980452667338802168561147711079288501639323307275471702690081013332456602252634968925215515116622192591736169864450385929058430965851563235894990172310741861009273021804586427808559782096123201731612156806205001409000031749160470500922376337446140752415082526859459947397001093588159493410657172520273375507116595820408755020768484963481186213610603262428028832396814483270704269983473191165368240915023287048641598569073947024453847099407007789847185343364471141796389603167904079851938865211070924484700408229682913459378145577310579792141499223878178074064530975037792937502848336479480177961734127777597997617691308576852442191389322094204912953589457540133223108728179813794525101171188821792289757716051330195184952134836209477176569095949671579833948506210891996182671933825223740319016803392979773076504211892582415686394876602610291963030386560222376666487245700002203863110423408128194010346504141285120571731139471377319636899920251596430587734890667113476132581079698570597565953697293631142941549502740099476116728409288347257015648820981897104945164465018027365164958144360530120503872759460457912555389172611069136251292462293023763188326102195324748076009716456004027340102292567897054735062499221331683473179727474287254497364604516889448326921934988991308828878603526357256659269773194605117929061919862121889875600802620660979325626828743890357268511603921066248836097866325154165156457270596546010142896724152605485375993061489380806564007266564168391768742999574922102707748540817093542295486105380526227538612960401158722977153170035114827566481464721669407610005796191005460153912949430774871626163628054151283277527866691836466923511068833102014375493785965531318135799524391504762555673515078880506401561949347338422005922531292770690670770073333692311974920649209016022958564116342640442944922600336239863862567131006295763643957385317068861374379381807305637253357336046690537897060559912471121928099112403846341735848795997496165463710847344765742508320006333980030946055193322800951492095139639415614005333565185329303334685020337197667519363157911244224089257652942114812835062970559451615155891516715363752330826847215797448685279648790918796312338755340214726941802594717159062941254227568386338966522651498610919574558675574842779770207084619388469021670114514775140707252553135472925949989673748731987118805490352813853389062824895430540454455962288958444018848892432373473096051130098001945973962932667737484894873023646301269424741388688551810192245501934478748807468699415203460673909748007643603568672999702464145504562368423420884637982379449030837235593346129593342414968942920527526922862306837696946760139820615342839046028155901793001538507376964955827892038664612589848920281188111148163588328102599156142195823135545234560524473642602874108568934615600571236529675983569896143182456637461162807065507408907268454622516532259237199805945798705203289305490240722300893138636337697385863586754679598383190039580122738690577998637958018789015336722444922719768286236605307113505001164137292560454123256450567020415810637428782994928990115352630051661714957018352535850117649415780738190759413903888569370692543966076930466160052060455865753326822803450136500749747424299602580532263679142720227400690318882525615958865532180765791405760474084215658181745835149784935922576764054725458197469174762509963821581615803451114934272106475502207815185644736384549389969655191104067057651677957394127342810262795228122417714138884188831810822862311342747368598913160804088954953247836740859664123694755744578507727886776646143072514442112931527079358020431249804108606491026766811752309021707113316665097129691770773872226069437948523204837148532194780038595864373363324662455526730059267189528659523055426759111651646353577386772388104800685029014254580663912277872771128093069131907546282868672366899812279717818713014657154360028997563643849632630854275964002542072084255696566343745073899553004270625907426379220263401710814087591081835646149785792947283656320952037150586702462919417587404342074312137470746088568149947912634744367801947713011531118877961097576113009442637967708269243612896091556612298441455230650331550982278786816204112826369050542879024631735095006371659632500323877727440856692144514714884936118907135932452616658844876431252664018899958049394946206808300557164815315505142613399208628312410842736763991386104240677102680897841195330416036421090182180579767313380280384327500166788819847204808350438971719371527374565897507986382863002908924384327430585580907623061966821009025694974969813566321805871949631285239825460573829361241356069421972547492672976402917522379583667606656965111212633850159662252102436911210332529931284939404933774920933500289740482129255235448639450656769274580382625090999424060131966340325902914775537772719081871322436924111308828313211850542448833719451303438821432888612323580547959084736011084652936543492249087841629602881942734308399520685167922462260269755579373567116865227144168873480146113193169469644301545366022521176756410558677691165599090643724157169847525108790084543462352581232772074128201780725319344468431273177419079968956303214340971966806853235385894240569904894653576994414222089550088946914122592709712683649534073571941856945930017844790466309725250402699437782154936788447002019623538099634783978989230384274120676591604632670268930895265314465573651326585131531439152146705504391981300252550142279950491190984212986402196646567219606496351393086257407396533842268697634282514177480311413415252064585840946071823760578949716173387922609356651076693609244371676729715987361051997196312289846498175389287651227411605825110452342318048405706193357132189958067052161884348643011658091520240540090273105757947540476842261770997112910621520091624257343293695476939550502591506157772665162841175982258354479327757256242707683210640175269946192931002788545016986876256426454826426643209945496475493886770084148552066912759388536781347511688602302041359756005693328623568240455372051952949723785255976448263337244298400854688925098529869608602360021374779701417296897888161093029785317283339737631984961923406676197498513348775228525282105471432710579024529443955949184896991627477485377778589414108686897268751547181606690909121348620611441963482139103357547310263394818542130095841185786526023142506746211703679112674902784525882364703360696340659007769384309655560197890748810971978608763609169574361310387895579943849423147039407521146517022191701534894924117569139538775194124021003576006397838296424598159907552717605086715661203058568202066623099512357023091281459319875786160610838412106863520909193756458337308586686058337801524706662704900028639185128694921197109643867539043643439076189272520084835546385245796270878800300985383282148808110048548724476086507980817196294907444056007896013658660858031896271539414604740605726120577484769208267004497888809816158113615097542683359580511875801050477137106163972415208598651848790697082167516537186548671926750849235557683368812151312444708265717886347437001772869302967449656039017297128081341087575634685787795301942674377989578092895218320835792037654949538331151032502820891299090772864433281337335597030501779805081899094724822040102179463408464162170324999243218435155165830208031827442259467253319940750096752194491436374395929585130773699434604102474307138546597902232498789795851312507740320132413835526873557948783412917584186498053531806796833041921650454235260936945630250904605264648870520991974352881111009688522460315141877172722842150638766041223796998418280439189168285586628268080243364394359915976147212909610772238365910605031392956737136128916625262426731968449705783074914500009406679308291803587401609663653803341058376547196268621423241596334891014691813431698452685835555399343408207897281110069679250507074765256530095098914937694027642644563690181893770915810364655061870150416995002716173208899876732099549683789690447793322176853221865675805889165102278783425668268581976372289284244279176811637834606235912454840854271821692369230829785657477781058287954141883565720627484405940010113567951042960849716330633832565684542777042052955023893523936240670428389535478236376777749365193165182297560029054716900330828145263846083768314600739068465236162613387700254495222720384463988429538473206898448453633906696216108447592786451023309038695985648547114066474539455311611621998326167038274808163041479856091242758727087912790909294346013489412982751339880322926035251475892028915717619996531783722770656264174979437140859157227852681225722867946859522362064922751209167411491426851350196393264314956307496119036460725456695563379220268337632597254387776786399623157778991493061765916551132654087592269962659543636590017423608202041363797367745277858650700169859805458195251963127434221560429219183255352556812855382654552046541710489463045214601657692145565791048089872355248682825874922503138382978212738050009254041513178520667689521683912244893858693386779387871446367466847568447409210298096039282084501881607973367675852636426287327534667147654230182568766164156815891887162176129732229279566825138101792961491081039120754222053062700148451089624042011269695281726263492749827907057185815382037652666319009141813823813849556926673266738155480737628725212579191447004353601348127725070809617624102071062472565343173812687450729313850219421001976122776079508926327946184742515649805048774741355613128041520426837143482795020696851485617080849100642415148142469765276726115123687241896993967027091016951253372155341826638887010525877118523849524310988075966873666406326031455723604827159492787648964976610430818746468630454807690339182935295962608780775791837270173994921635925498425948376724416027869066515005540003374538849933105499392001133058170327841361068881110547059533546466385527720754581074809820671381657940070687636697267521303225820808891903133312297893185411362053423113747723051711860946738545495556246621387078322099460334462355174188863712645569255549863306393140552990516233819508418766694137349185465667411365210446827558471143900292264362025412556891915680755545470711484887771590767081911792721093334760680837582464951441476865038392564249187367923270149914397492788301539278943395124948782040527664203085097609591141082683824036661482969389630209980785106878477110898631080251047453364039051565828527214864872142986814802644293936131322731211716945605764895609124696790485859489129457809764349871370219348524334427051542608602800858700408750608223076728143118493426253073661059631840922467545290313605804025293350839167402180805169585610694499701282814760566448001553966167212815384455625092066095945741323992365291563318564059035883988447178568559108859424193026270134691073109056230358316972968115251064127857041486261182201538411622086288911554387185070460438813684103863239441738534583767677046284406807655606390607897208619002957560153288624630625759813270921886616857819836390398843590211630610420163615784615382533688805730729496431905277142458577478283289441988909490812598674606692854480531611083689890517815297564796209979409725166760537191113914346434013274202548320768522583697313416028004820410583604125006113582669362827101552003322914740629518743164405505437389361588822128291545754819741228132534141365856319370578611639273286630359797494758416937613661851360738265047918057588235618768512375136772719471416700840848958020821182398230345929403269900019136478485684950868884273194788696472052350473139579408235140566122379488675482718822007558906920948111632112313391882148216601934750351298059390542501588522312229676154507013882518368420591282838975628725162889298119265853040100364264388405010165448495024044729123101567046224074969062963427848695184037454429661985644121049214035137178930931203005441223387137041947021373079641252073150470340312968168438903209595691721179803129472204229960741161323555215011479245633344970786537415131593413364638768483542730196878115036559805853909346894173774855162000668349971290298975346152106945913750893142097132845166471577114157493395515308078937204131239882795999171162296267363657555291168503504601848137297865720673730635208734878337497665192294731331285011088969496756817762016443441041069534614865025090106566276873311125704681694391644494162321939300253860012358201642321381859037507766379415510076205740541114988917726120868031410579091564534613497508462563128489480283210547043794250833435583766921705882695036872182468264000812215329065890777617174137640926047761888849402722873593409357060869687980551700880908874033891410893147923665315659602829150083149028872096190304848241628863630288326310585553150922401511933479641973330998770099103032109455128545191004872902705625961546923242156709193371890964390926762305445427292670266622525017278091805309687575556501111058566110648258182346667849231842938834032954426023804238879757492018048609434531313169705859343326962517114900533525477132886144420063399222057709662920074959149592345373919289427401532531670516172552517667720424570620278807989250308986373872790778145336275119227218865108154447766860976252207515065504802553616757873875999589262228940792797217588633926940771301448634950816625440469767790649425417722775386968482152253390063641625692414545029701472804683123001277518734599956560041801867448192228848855335789049664347460037522981552557073337362527768824808941393575688170222606958836736273903806423134821918536729098263540825132142976493213588372792292182611677959873783290686216131997045467129692131409738327745417420242675036832852550522136035233146357778882665789106634506594362593459310156628786141942209036321746635122836059496652600212981105409903958574533261129715926066117815574570982013953919151080907861699276640233035019389666379945591866447091849999936947578350726713873229311613613920394786122067956102221596404193287605077736326302934279467228635208741136577288825030810559982623326283507246694503546563329555140358207288959127381965442460311410410547060198698330150397360364903569525615845427548029820230218118867522497146072419915633490844912633167198814427258711132426361630443049752333251818097506748885634725082234343392210226486097198284764869039611745542216640102242021371721198930017045252796120190837930654572124791876493994363621825049853433224084432358733880986856213377901540297658540672376348730000370590276481372153556678180178073851951104198022846674102991236351316606571953928086413815047156965035323577366199921017563559605738857445783506551009542888472626411282722206090095216526899885316761262153279080013620620494115912463340372746223557189915835194927315170886768303432375361359047267284144379131912524117938025783990785877351729288515553599418424661347604296314062872528415019049272261842500433141618279816204217408168621363703274390866507446058971595043928759452654537808296339451585268517517663385408569055952296186078064622687997167044922612046612210619180844208943064999100721860946790889208748530481023989869891394431543554280548220780525375214634421955607107136301295599343863136978268828296547242707181553386584525666110934679920742209591005806441063185501644217464433982307797092552353532020454338188644037375937047890459002383417122936315815361187758718191523764489710446484742118338159815697017681452944680247174034778701067614371929383687867454021296726069108238114605247871952677509262932546845723843956151918469672574763789096993681180140948589072150949605826931328793748572790064247888038691573100015780143983063000600581250855784586243499457153574221267938978455292365844758359498132508754630506356532780081790078603480753703936057052840593127849526303614887568082424034199923706990313607863222735336529098642206716044939281359694105912146567136716186499245123015573586081351457279252204089285063249544966202947273234229655511099544073883840003900754824893179885967088822738881915323593253213124755232216802358593764244553116663720843792159114098344346246642092650873998008541614934669468685041060239261760580967771312529780193362966505741281939042461627955134236529761894709991615215389832500067914277319888602124056012579566510343607748440617658151682444781850321883194704796138322829478339338257144663909029470862781509932282010698105455736029641650171621740980372977249059398443276398784188349850979624600650215076495825778184591549732564287454662360257204541458653610458284365152762590878494912034995065125178821762817703955826262008675735293885509793546301964020339014937740297786118522633153322015229788099590239164594469586301343560025450038259801712334682720140847356369887013631583999999568625809874664394752665994437876849929088459487390884820691142079508383326496735971179965412694904047873589790492582344180479499003063868578048722748692186426643081344965572026816690000937025542232062113692778424682859791791578303405778824229784027489452366728499500315715312427240926892662566649606579370925615613048839719171909947837928556626641719222189428796984635078783736137725936833540279263146911858718781233314417589112776768716125706029050798919694887637481975507338126099132939390326506137287560298519375823715509572762529020880284016976699377354377162066358910654138464758035728671192142012849903837483819092450649489415757240209803108710141444250493380781146074144077025225149779800797813944825541770302560337669457582532250328765836769445060711826973049316685253005919554504885063995865877525413723503589406895397436439417897581519032966432684120143364468881772988071278724165549232366597797686409683814262779706760276777129792664309288146631979634476629482936476099509031966915087945662019509951757887058971025351488457263096342195248689937384196976305285117857645240062255891786360256863709790444644714378408575378879499251791555673450794432056879254091896523425369233734035832262345621432249549356577360897336910431576290926161795798204017634058886767504093831411876555122448068860434705055686940160451564654842338278640305258813847115369445056447902229823306834162522652464595464102820085146742478451557994608389489634983161742062545871615605740241841157998896591508948292752931837349707182073646722993442143981240885732187761310586271334207578685500167649636092235933232636364377057752450385856493036618584751978319332785310788310203742275456518073549386738308187130087386049361667127470044052514757345844556186531562449118908780537249853929065161689730568585391095353320907346938533554720809565598128282611338813082592031414729772997653687404312003823395600750834243593445766385103449105189809915667002198637060117739268215087237560690788129860426502234768104403436740949953879308062679503502894542875180532331242445854787657675043097666995954307582719696020819930722499155157598595896025639532385032329045434530167225010119666602503281597834026813603100965862158442869127217496068614362908178098425303592157331516928861084085017767871055527181467277659675477714341317568748249173140608941885283746628709751623564135471104255361004007483667376847967646090246769489726996400822008387071975739315413993247714705399623085765978017297762532179051627880023730773802179915614085522884202862211091272835243103488264069608451561101148538319094513009546734646793444201663625272317372149108837651602097526290237938101005986529215275206055149488101336280756491664939689416951566716154230144197165230560227745146913863937998271341485712957592134111455399974180212094959492185518192742037853074916432155858662011931003732937356674248315604180934804485950243376593621721718257722879292440345392809174993481714135251313329619815126595927120826236948975903801348439406558152309301219995619865899205552276605995758387688259795736948014960865693334323264757781978320601508850690318182911306387576772632042910725143621271109522078459182055108455130953426674062323192937988387798819931222741236744720104304988841579514520905347877499174591839072236294380750185653520450234695658474325597398972735696507669352318917108627449408308230024534465044895474477223655386731362538984814396507671473281321885107380489068177637067726117111693412484665163215109589851681703849529985349552604867010556586001954169542294095451822062892418593764395393916697217384392409857754852471613332177762497838910956952212869495069905832588812814691580881638249992307740823210397862195096871910031535770533902022426518600140049147791502085872538258618320926339406048513041978490454906074308266130661972126840682086467570187093041142974213567156651060581946263561766782088391975634101368826089735542530119835987703618149435313068105250838022109790308896801514442046353031540060758567872779822288413552204442550032548184554383041906363322374158162090688370266954880110297363402193635487908362830101263727464402434175877430457176098010843009408647749693348779477450649340686818074523015886934304166620634798780408646668377971905005332177228880862531476391756628414940707807020253030944938215283997538198907490152000475053387240282142040878629281152843410706887920425473400608222153919410031003571669664651804089111102162178651003710706548082481796221878049046969484387456035806553385241823906216291995219575060749035718745155675574019225849055414882351804731266835013223116279519869850674819027577503986303338219907304434191751917975591814856329009346075912611165055573723190514324278879878265299824003502648645835325976590694554266248422117431279375040866060922261089053420759572451250759095711653437460852357117168052782558997328696083227311887785048981809611914360213818450075597947469356332225383517432476705915673439105812646460396470304290559528444035816934158086972791639846022221595501965149818222833107457925719348872723641702061818115664744443381701099227756571351878230566814740651450158728958638015293341760524782270877424898734426784579014326514257909968422909045790560513551430481917323991375793308895056744848682860743372738716873344916985940775196596610935937647873021918972749734844201348322749615606589543114377682494672095485243637611045966752779785574615961293075993225411165805353801060260746812316544888490801570410799948970508654047137890043578261386375979402479413814242361350852594645105690874151644948762353607450987954556738191117124117323209042968312150036473934066333715899981445846198213751922030148288807316689907721722302576923863393765758549231253386547178994056498449099002667253723564295087693877216035749538042317883099940125975990869443408075588290779533428079428031150131598344003303152253029880373495776367500160403458763953431180963369708922213897539638301496412221641896731859249493256570411924458894671626542897549376191931677232621535623398360879076432406592978090627057460970902448356365641419661027317145791019057825944848666474856869536571379121377497924327122130621094305736983224177965326075084780578959115202861059328466940860109090996283225122457749870797248297243598143617300403240194588585905223375445881663721385936597683138989253893582526375258758140006505509865306987953565250584020330393398851115970578511428640318903881846446708085052034608077098880393621253429061423074834689547801418255736942454090059048936985924619310528171858860719775957755761873334106270879587234344080600982199620873416844825208705671160762359989608656892914277566397321703906997465463619650399365992955282765883673138220994787406020021403334314270724054406211485221492142624250581129529516476033132690419958556836785196679842554974099456708471717203450881038427829058186137078146756984104503881880216762217952674722560302121003994194748968286767760008192521129124188859832387439641095655796253671896792119888341220153765931222005913335104258930873133857678850779541650720594559091855571631447070727113917192294401758496415368176366411786070172374312228159902682126640770692690599896751904034915028245083242750341433525355992508109788019052941329307184335315175754599823133883749413175741122632874681377817493423312346367110615829361967322389738106817751258140164164695215838741660556384249921886624608442128464574272083040934692838651792077938550012518269933662169874268472651143758822785353462704634625261882931879215081569809558057726801779578838567853782571731054739194980647075652714351637354855384903033187085208971907450031615470648070704314756504868824398207465644483957083562905127358377093272455658260016486406361199626304608377619822793153745380610294133740650346911588776778092889809454735113950630179146372607150684119494159198766088426346929992031512676591777801807246718981482984520496098158500148666892924592446563697963178683993383225773583396323913163107870268272725701826496768137246890776710080755292154032252408643939929610660451043038125950552952588832143247632027237863719241286236790887368074844405160977718199937487875265257646285563510726269085325670934900499909537993134155416686171608608404996304587597512629038200003392848379525251832028720212990170726559060550139981615877674942625007945343316872082743046809082146734863116619345995205922972117255933957541679458004969727559598850642660211081931461932440314075684766143159193836609525816956464190529280573200998870991719683019936213946085986448339501867698459788467593577678210750111225933226637921698228500009742846594406350358333251542910340061564390905802568587898303767229682873625549890586939146380999577613997863786709042802349345329078799553405593058831246050211224542300607318219314707948992857182564466654727688532831753377239012867445461378260077375299119887715068189689562505474671348494649688800881454049628964243295569815031913021624440472325933621957391703001608222220431780988213186183597678959148620415506343005558199631438222356122782456800451975726500719260767811506756747820805215424156357973016916893556153482661573241498292758158586189997459700772314163293785905046132899661188107589907713185481116319422623466284696312125220448518850054944134038442744676726802796171886413851822722772369221004280676322141974944785714295766682885742897222974912314133660450412869044515228774787779287029933239619472799004468879444027387497688970317715746420963161189616486522835041517767267646264440187525665315466601028267047703194004575731580750895728998790943793095140124393716952170769052685585961431409244824704199071762438323340892100299346369713434593428829403924029083078945406745377508234766298489415762639526223887529256866270548553009521461790354452911951296123813016589295148235790460287491822423523624135910560441793359236825531108335425558294908958951665674732711715259371392364415173263903874426743571411205562001784130995014691217693139086119053292024210274557705135556030556181537842251900267231159250576451262517853277382086475294956752708853976052972873127084606425045934115044292007470778100247853529162897906471004727617714278437774317273287058659010282079257619448110958624437945847012658882075848959374441300353852011881126407159582830219496895775739078772494268371035596883253361284206804675100717488134080965613601382411870101056625223273127694148585176213353594724416934968789051039704834477699443688896917528302158230852004246722005408503288940339060732684656480939054154766772480890161908445708499568657499970642740588951928398222120904091674210050780188677393648600601897666135227443790029909309764267118716112782069461505251628589213254657258546210605301245822937566764375842530742607861171471791509401778282979080782479232026012475835092372404122273056766569128396558731804244189958046730766770439676248395506712720408432137362964387666639989878231334308104509036137031855362712954800125730237632093196961407622073427874552027652477167753026169851176527705686753549595591180135915502220661598958154685015072638869300481039124599505178576955103205612610918782132078266735735623791323977727889150896750899277902432701108005944012161026807578104327718849770606225536134137127370182918432852937432403604198729182412263377156044591998127387264996409289967436551317354976276878228878123257325462070740871157503897870347733890198781072172053596679209785955323603862034245738957191739784770197617862941000490804776827414047909523365006494150043343676985033643700435652510003611918557691412295640932797496183716429175825790981400310371633417899310189912212515483472640247778943485303360772045095373103035335737744922333025670955969336202967256805967361244354814321393557210251752231117521519399050273966679680478984151677204720451786694162978398719258003543493033161678843551953997580529656765293879970218207926112997203680744753572841145367099706862602595980997782987124794162678431169249091700650632231716868401540432704725182136354776514626240398641720584056324188293039611132891352443413539551491284277222550543065804759951045301123540096899502038767652640844483996116312529791987444280695956141226537893130451539816393138917289821938087975011448407357207523581536218601271480484930855025891650807672245637468971504812150954297252284599907807482896458461326110314474686024334192255590382804036144517299328394421202805972587481997355344275725192657339985899621449285685704746515041264305013047595634557377591440299369955112901083837522606232630314630899091270487573578135585853579702269938645320854804563628662262881122863811407496817999227799841532955393021919122406213606600997356294894074055754555140960150474039960623669306205471910176057486544438122009171648713446960411288988760480698698316374162160566525258749320271168693706757874031472495637424332091908417289474883646287056716548032606007628145144021023625217828141081338783654733578072756365914404446224639768923757940898289307367147440508396897400341808284660018608180642516408696682642142194937153832863720920037492437118461189613734229643168929179731759272108934218720950160438215803629848366769213126229970916607385426803909999210837216462403884669893943770107839794376684440153751155784807845132536907807383204350582605678197299226277343512219027756748708037527334244091293291374792081026910005866407599016303875703918055485062622048852223346756887682363602098104662695362810295571758767568890191395582448634697137835504999068355027379401661522821562806348026802250784490593632827007133795352677831530270645507075617778653022827793155796252162883326743041460578946950819200508032032362917087294471148061975272133600020094086790639839131366324464890115623053719975403873924037207411466275511277267518775813351266968252122137889948130763441711369188505124861267202975920211731124180905366153600775305319305836582743162181002939909040424711501465665062641135663189780620840030366998311186427249753492496435890497220708953016455093997326198910797916166760177641987252406761539527864400222707926736648069966104119143512494272012054195172176062448040574861834728555276711900619169000950540234386004726518008571750792420464549260154327018683689800004979914337067563144602916190863304147792200202622021684933160838288937107803368524093816414476714177535825477845209546950539477256614491315445628238925303714361153452031310117711181095391144695742250921794512699579236523168536851320974444970974623545700313544055675358828257801316338868244595327372644941891971994005875336269918263662726520176514363421919556303343392866505146610793369039074556530069878239224001041961374589308600781819155313256930348666792656709075264992598632887724854598644549304144860149641282433861271637920423599086083442710164386015337092187161154036708474483065680986768303976178197199944480968381626834596645990595459911501343966916470167487386447663636801357240037766101660036958806362741759014218854370629248044127120331992280437942886131550201736643099056076955945667886788146529815900139149729608784684532705579592300661917945757871215181491791707931781802537957336509688258731166038227723740765352665352488204927798360853992828229325114734077823918376222394301318756505436925625835077309169838158404501052339407250115430806084046398568870272153578712950843189068899091251046757445327783857197207428430556006882151332187973916717587093010577122395870197427456020935881592892271897235736468151847975912056934066362786177044084675964222470067511877953090647619710042270267503941938854794859862942200251797203608565753147996765506029429389080878895571767515506893712754258387379245687596334865707159778393572442117453883978215946224194956829027227549409874428423643343868805958879359420069278828508366649261455458518681695602908569966011994400890594728527952127801390455671131348942660502226782829403794303593846540076216054945252932568705862055563002495349250853172553236182550413978287963997667433686490512383313110449535769463148775986615319506840376785888629395077392616677442715513597812086862660776106120922042945046136046247490649387987719202989153216189679679162642221470022868503579609790022505271414412871437067235494636432139241161874269314136719983906598091769059304675934664172400192879980932950177747168412930287548059325245831040114722116525662893008337876336498563019344792274525464172031884712910698306857442132732409748392882295384467444141962323803722942968155957683866211374946837016907238590333805218800405731062499688082791920784457720221639735593649645261855646348733055926782735774102412923161511855725762419159360327976991981267655638768327364794051777556270967290851979321789556811143510764000882380674749040296422305498161454059356267540517389586800690774505200525085932931087884617318649233623123863568749039546401190754479518813171262993419027866320718569610718977123214027131647299318403332738039924777578685780815928120829529740658621131944651870718608150164051138793570864521527570673553058124476626970642074929424717773957151874119421318930899498364913082480652251279322977445857212069518429698693740126253028392146662257064488363771189490657793796571479092930681130561528209295370721253324342943040096343820510860886545696674333166212333405793285558472392650755009263810460129872980705043953818435718783756502148943898753303884179055382693979830725433647857868342991987187415976557859398673846027271067020757224418134037213731815255869062545990750466494703498838647824825890340716719895106143764956396812954137695853644054389613958080889488528512703538428672226954709396301486607248268518022079581694442033494887242695076480195867895895576548936423799176731831117620102601747772009124537253226351137306397346898315697494079822584835129634557333360497129959829352119740666866352976054827169922060507690274666800606837761338554417981150020032462917828707103184342884087781080696762721463656183255510794902228096016902020257327304746671087379026423580092407353223278479493608670452392166425138173200820148201434856847662825590933771210430954597060640503589377848900602582086498081750654954857497722331659213038739888501108824340060655524571115848993706048547185490533069760921451912093381342468287636260570406445543015328711280232393043628886022952859041172507255693825198488335256612624801229929511536392438906127872227291835238197783374997458252755722792806082933923011828015703098310445242905569279785537943099813467771188472946335485233290709701544503971239729276466933561470224667473732853975997513072258957416148699258036051438529170485022959202409188467290458176518561751340627404518917878740197132571879576340933734259926101444143244032781918431288376120416349660309098195800678829934765081048773970217399925537995750816977410118582599428668501189422532642169606206700015887014259046738287565159397745582274060950143605087037771428688504685323113992035104914143662390568064627119772069490260133055280311289294024791280429103217422727518533930226787902791099935524011809043462556605357905283744432612933149845109381286468241263960876958854280628160172953361435719135962080316519715997517614480870420934120251403787601754778414894204844568322609155574922881641132584546362690554789825249393651878139948215997042438971308196647594595517579267134018783819075956430832149971955067673154886416217107206670272976988916935229639074393298484712644770618318661216342133384156132915964683562585378809221451928518061668779207390024864090314674306459696373245574156218291046977491534794051622158809553074511611423442676727982138289073493538686404848839997102083579121773967860967690886169384012197084728836676519160240937546570868760646147353711192876419801789970123501945728088014548393444107030841942690182908243478232579524932922427145251676647067636997031368269448125728794495375272272915395910671814767913684762770892222796865333895354145770250643992073861057319229325833954414923559572749125134644369728829444491109081152804073282240647134455983395352095510017514972161920283720447699786902591058552685411233602658506192540896881707837137966947489391213357388021745535822637398316639442682557214205477625344422383908311685713259579248728574638357925864781641413277980988371704216082582370147238725645859315017992888625776776507032212336014509210208057270789248210782869969011051203747516524808312116748446303773628908645952995486497564563540219701835180543387957398643352794818305015718255742440326132586981946521734650861411397344668985852746822540316040389371171902396213172315435374398637336693342077960654277376624030767631790087318346340130022974398086180376124054183338091768763399431572441358443473390194956737167160707711050987324783802904241907505529075490871160239817053737595058203595158364418892348768648687952698261264131492575861620507203073636444859461571432982919381106324039248062119197039860084140134562841858744257422484490847418740673250626516265122283663111494510450723001899308322570085818011185353378628124867464348985089446468071682625463717713460790810874295922162558390223435665648609392301750210791700291440551018027329513695228977573869327333098048737527121862384886654098191024264077452740781248683809930586008686084780456325315138139247103283977848579927112583247704430182323918565420684125480192438106730769246187150089667063671546436796955348634362767914572613065633853148154879313873032084325344559784146726843310876019880899059758887042079689102441001048084391124332196754984674306090864751676823867131471703353425139560016386987961257775954516160866738626186244503689057026564308007535836685051202861179083536453878190671191895180821712886169609665341611614726960269564372782183640899609934658479913207374476279317914516538886589003859536430341712798391025288962544744423690987935539923802034004924312136219539976575557006083359257371111261463734240575997596112713989126688771375702971346210522680845974951870240481930214386331944435790177546289049223762018088829166932561837117808958980017119922345464702654301580242625900765450830743767275855105092809464869051248832631759376373575573988565819278428271617221849249831949484892788222127406387752819734259775004087229613618564915668125582400447670287829324540926716141417738365096977106873555637465481496355802453476268777518820252178261588144803924550939521749710161035520341808524139456725923454387399701133223135661006887927321224336923339837477185536941317459058246883112258229628651016983066534262727127072840231629512948435027254359686476320395895012369612683857906932367212027949370064514512636212624688943714480172357705548015861208131615146737645573250676397507799263608643040780170278453134971296244930204070180031302053103127189829047788222418489384249532186146619715529931433577435660823079287784465838976721345797704256071646526350003084706745310907352447823848828836162679226266091280994211226580087351659678798918204653249469332646669859632964611872637717519386386031816620970622492801607371796441426705412530708473823673840166675939527180123053398616753436746720504083703972698767116520383085453536094663597757561174421715725052422018424337258234359232658590516746661012515003079520790586134587050341843821340378568732418491800215082315831788121445156586019854006121876567567401976351498781369148138979953386789805361983236179201790854760162179658508979540946703350739370252229304716529667620219508853944763171482223426884102361389414361237260198210316744226425755009822555788626713511832211769485112505184954716084459753221647094117916432306259773684303050788895805713425287826558738972234754233036092849091355731815804641227365762215618833099730470714536347610353007810980231402628733475632210915036979052944719804422868198451020323030676362318764802490261857546246886339941541047810092856995712878294194222427833279768234932889965475699993113012407960544582375188870763971102720432087723108233846201340809203698462650958170355184581972357273130802028733399546596630128188822784377994812063874048113656399944415992484941637691573951982936000136995221784284940221971994692961315493673210544019664960474280273732263415387076334662925133322322162878962954050414587227941822141582611665881386528602912366774646988707224731711077165003852225824929903780859610109581994247995819246719882871706204635115071108541625844303759138475312935023141577469284906714285656178466094032454651254004613526019434212837585158720030007369418762264594324461521372586353017271515062338909658391267277013676023707169743486918083361975481331943227249048220523015151013540250641527655882146338961251174991884348351524477570707074869657188881849506830184405785385358583584939084496651549649254215842313814021789617338922949733520010941408469184351084256070831039216410340633149918378022447696129597624397400419754987936528297270456843882693908234000454665180857596916366152825990579757613149284472906772391096377854024911331974944011212794337345955193008694937352791467178958808159269004249507001198994126201469604361732807070140132968749215417746245115358771200367950557964898173351584052885053620820175858694513431668159531991493797215560186580458146919664655879099924227433206644828997997647095246648432594087269610579771063456532576346498989334325488292505169617706664828444480579840226996099760579453738933939325950727753550612068078090823870697758739658409290005937501620726377477400558911201033665307659027738634367259937205102277597850110837042021887470796059211521037955420075097872496637577473918458206792404936335596078497403808538849127888674273659586099317621416424930515686440383769530341546227881465209414016200423706944556306660151703210217351099646720833349182258609338911607425484806239436394260456652711698515333043749244768427996286318442545243976250420178480354458148680423878729440591503906182712087080711194305499587384241725787912881886424384774135172476301394226111566415432972966400249171986523514295174465765270017467946394959802526279688764139312934645506491376953449333279256286064240712782032890175973900754821456854644247796053104216740985287369403227977414516882987547595453959376568251614480127436874342806276364906655526005783502021116606422285117442895304220589421632318886907615399573247220159799783175152983402355591578108761793010211066007267902904421099590647310903574533936545812544694548901256741627925509419045475405903800756602660601921888925255389460545682127519739960189659549940026898294265844434750769371657592481396898584051190793716008987126910066670764952604353567858824423759423467070225340246408618670938967682455141534289564996634663907229711898796686590617025811733690802254604638732600908331054793346134899614654247572195828028614367664132754309828362044583410805208900522814367364435651799889021886519402833897465334959742777459781251160979615992912128839185657492339313193364217351012518202206919653874886828207248878075065266250189225770330051844084519015621321947028650715076549793381797902498343269448744257148528807833612405351810546201783914705046701165636679814271413227525389723620190803145177655980918229263325875623194661576323114263093773494500506678209002334523567884392224722039493991881023333164042722808217757713509131067534568850744483405676499116016536722356846334016817249580389314812601780135254020294208875296144036035635196195311977623499757594894463335339913958292377687076319649367855180091169656382422936225233893448500615072887541171157647762033161048647129707208509396299649133525210849126881701166288587940573940750056538706421344855575263562014766423605459156437753987710117780216515464421993216990296006152343526418476697660646295131859205368628744927356090072167445861581440053582629440631142979801488385197826976615635308316376745531947449076296253716777928767062768388937826926906792026112990035996185820276288003853315503382995108951938198744802516804514217206211162951313197966275127186126850582821726913620544080323163593715640836848815015762002029786998824025911569754637245390545273220331480299854140927412092145484348489387449591031355194875955320540878263794686217390602230703694272856860460807074955198807893562504109037526121533676946096823334769409268282550985090577423569541102840428249251988529645058747211777760152648567919646521074474109332806466996019220474193602859962306674325610711814496355401336848826070854848041692317604956523655679903170212262882870402332117024341543213806108936224632380964218944207765362409654077169297514548604094630387299072978986011650965879346757396061191255839958548231459676801008471739743028603237398817720994735656955052469777319152473283546788061713814151124111910079186632064095575391992787676004908226465561219647072205366856751081860433926542818782309515407157874144125226928538378857352789377044865523357211271084819471511866590557852583057824854707087330315266989723630738493153480446088726796695974458098778610459760693318102449778149258117988010034569368635413763422089271940272450102826395447825558541433432572395656861043603067803079508433592755276818867531539492730776403411077598123501202928952199745735353040234649363102412635625342380486585646408687567263533072307903996419862617704108578913994117875699516571192949934189721526813715171760959636734236904104905658741716745674990525714105506513702601105854704053304843353896909273647447519230116041518953706934311522017834352014634724114827881144918676228718696171490738400057821540271784319035455018311353625265354314244468327424976930414208419662342720844307447608215304200478320274752999043716363274001849708847379056724532562574009518427894424083905599616240136497249576777314284697102353584378840534871394795325742969456113544547188638908778374105132778866346529361245786267660366781567255373972438680901036926957304157000580270482545055000051497706164145107372406844098594510971593137059282746088703281470242006424684681273188285673320361966431466461139115150256856370052295902762458419207876993653952899426237069877866985812838617257710100857230320081569048340226770843725009915860574943201283548014562673718126285420181812962314950143181164366242977578411886305610930237297428987048127133803562508927890487643997747051719210799183252732335015554090772023922363312300941339323517179769690238566646243922777606094852335090732860559249239717519511809743894180854166656152611759035206432133232980703051123102415909945864557496103786176715317469231069728785762150611782773182708707004910818161422421003986711442733990675628315391742120254617880752017790472853612569915444570142702192263623653160851792689746924492464233291426605502235575851546589117922715601966373111591581562124222548821966687827054705836877419896471625063818903134597444701738272945643296069274731306683655944684248487289889089062619354008711294264092694636010302226825000761899548828378510121980589325638660046343621578299188725722473094698862441141230981063671304149860547499839242298662244897805925105037892056815508320448713022226594424289301994776612687874120477964178618453874468666388990653302909881638939343508692436751113951057447531977693166818158490777552826023804187742410221530459212620783319286523884089782429431692347834072828580018628503092361157926644097236965350706354042795771417266501486795209896995418540023422660850877928691794970818680862656707732285103730246546869070630102372300725386248302878210501112053707300934842905847218209704247640329851965989730562455838251591114156187049724146958284348168819739476737550006952819155271760552368061375825488009559340268437728626775903303424103562903908970754657127613094449143091624873454054925465794095224297881764838791998276755162046412588070929039438063594776201038351630229920654079133612326346002158501767492296983368180015968074240137781683266157351744627834323169966569670623633677536035359481993091631994329549391298607488320755375350785674035835877678981718885573648761201893530594908007383882916488976863076115626341954962841071953166753426877123851982733301666546629379635695116675816379428321406593413006971051743549497859763894768526543132072647649346838938893847569827551582097416963017611170559057617256352349542510576735848555983843374542755482128966319815506534160459037121545973944479819654348031078803276272984835891771217032834729214817131137580986683744461460586388311733835160595913069226739572063517399761678173484608958014679423728285434537286551669271707407254479035980419226406117930535490970724494007253471315727748603844509267599251243083736838560898335510940717036657456341537759419407990937516339308570348196961506805870802825375694066959361375808711691008339055994746111717713134308726099246537759671153344164189090192285895289893592867375542506747564862555906863183132799892344120616141029450426742091319493044261793348195081834979944385328010882726162320170551632836343410468553968817435317091517632074227119931439276096203147443878176518895938883814243479550821861627698031488963602839045690124013061722485606577074153401742773213670097644655971589183858247813247183722102106959088735367207613817398098141362621234160118477982206551363548142815268635068077412145671419732149993861052806796229872336149322630458758399245341102859615108397859511075004077587937720341650227840841171669307576496238316508728465330274694112922356005736495080343951279864284810410102159259123875974902416260821997294860342848204533396086882793794425476180557328048912400179557405650633768565379256776904421831830574122848900064490819422556008955065202432324183649948389858796048525845865420392809355655581467804378248151839117565533755559808112355422499425355337972532594918515550551975912548470964556489640708432750614622224798917637246351789412306307394409844195589903706432235662142061060791429567521659777780525371266668334579379789451490136731657081451123705425751830506675641990004301771077317593825877754978232044848968277599661439663865836296309110083144343064559161205575240619509806487920452286320324331638611593022888544567651927573107678095369439261522778376500559416062752147653237179764118770569398107733883128801806957103757448065252289904878933789247949679009951840314134169360289859016671264413282309379255334946866136441998748664742428132079595672331993565865352112465254151333854460539756482375282697285507512895336075498274998509425020296001426403616755104897848432556131249043374402645265130981378060252961926323785919013710715400931273541681149976227212587899418921983785588099087862385761452813795731728384952804232633318310577389536767260007073713228371696184033540090433278731523418377091378444067462481455126128456538829355001570098043993802677285212529936038746890074444882606136909428559679437843496671387619868569488124914601913092921057489276540794679639433417370536896358161868835521188024196180399909289308132359591782599188652291710574782641534011610029692049258372158045724232089650795645903541710520304927571931550004808896919690191696813040518050768096806397007326342648329590754938281286391243772345392645805221051448066366936040904107304206902865831916929376639477419961046095951964435034600681695201325078734096298624127341371631473776959994509372403412240666380596967234187057296427718255964802664539740753024187339663101623969854989162372151744801474584042625717414407445914163919008137859736220228911050464576057395948736552526404621982829180312205898585589800425995033013400153772869120058419609193045201036707747164069060151859752896800528378193883757892841395029461029077168928480347376326961603983921383112259483325927457950753422893553191835196726608699390129397880465010016213584446757560044151703459731824173510192843119035439437261277128699093652599382431744164706937977871766448821037918177860920158679939069713921028308703747171797618529004978693108125854695067224060301901569348406452937617173970332425965500025677339854637986453627922673761422584524238419395135051400890805153137706915807530848563979709389600657606937632842544800656071023383442216637059876675399903349717358107263515365657038361273174002251588381707063828170749533818443629866433121813389082192361291929084190911996381009277740563755934413280751341978076629499030258470604952298591609185496269962322955371190839485271107410030257357433215041895681817039767299672279454634751155524643916151035041090466769371359123252602641493422173218718779803321013976428525692724824732897493355577682513501507417930871825692559372922574001639421203474858517464653804152530840416454315811025209217543464862269728616386601739865657326213439806650066988618402460195817316359566469347018222495384748858774697425535732672882432411119240281020762057401660681984506105323329287544124952041017697438984316150307583420166210441434942183460002344345857079388012696036258196357030523784013899616561099211015370796160680463059688651041701617853659308933340604676905408301257225117181744763921646706447524878417122613722650258459337203035072784235174317997047602181832190865227982893852649731696626828617972807597714390565485589661945321957931326689798082635008426856694128992287251577606352272579870833752655672104491013782530812622182969011450069283659974642577503546948925641236359230644033981126967432236431978932458057947765451838172120468319808677732963032629828315780812759352022010291124596736881207072132230959219456412526534275974442488651856843713765547302078433092269742093628161703484516159793509206928748740344562762205717213641201017427919537037101483256092931977186796072037662720238252424152284044115134591754913555263852525770301000024417235221653633973427747428287849736875226642791451121488506563553268457738957646778518917744281222361518710512220413865374840434304712727162400558453082998246869017109086137411605044588553271905157665213566016751024008130469366645646942523589792108370906003393984830214952572339884208570758545645966929002384333975126944163294803343916051039978229298001342411197242186254947908478302346115895823468776028892244716597916167877856952428055967985363754343228411523548347346816638915552196010234992306367364936407244049739559751854869000160966274527031310712906005718354116166550195595162192395015840725669234923913608908292072909062409074471229598533006411038378468787436183644781713405820544909537001127049732690935082620050682032659320165528640841124456394820300752785261699478197321280734123492672498735144412518579311164310098159851502132103429291462965310312150008409008645893577819099820005768819243415167318388518736803613423111178439764484610592781805905459216330769013514289061542660165258033829717405101253626625958584009767695545782797475537549227279698077120148104961449655247138373760328443408368834013211458131652029348029930668806940143198480318444203766459556958852467797675555024738905402883042547289443352426279203573559554080849967779986760432402667716180574846071478531432366322969146330006931125940942183074651688074797221757954115462884310028527562010491958949741690639971218382565976868764492689385155852926390644729602983583434526626981042290280814412810820400496503507389336130026456614465807689840582923602399620054370145998107792178548136974313687213725784610922745312103436501253163978523237934665367040423075704578960365428884126416211401335085298443506155640408628529317200478145277788372599550071619223355947498231776581462814008911094478058847692920123473507978858026843299480712922602888631904710035120004216015813038650451325805352499266711799179813948454805077777068058409584873399086049855090696355543687788447634853363501965892394463023738031053513818651285774846033462327963823812021960352632886637828273969891573550523535572816384291053172212643547566455829356390034812326207539310272233432241673798807709022652418852845897894679562205602009800480294003700034775563423029219522280523046982025093101443547719492678493414848651929428833632177077666414731314268540870099097362378751493315917287729782187694420225185622966273177691190012331901222020510882471382155490908839242517110849675210874505513141137654413263638411592584108200343247002611151992123260455544699049044942988338575931642936410990726184498301155121483145078107796732594774199950152215687912508912999685121922707800096549638813098097604226140420385449752573709796840915474814737383855872841674373050102873464993106876308570146563167912285208999815693364173331066283489466699387421643344213744815785687415271281394026797426504363553791332494352931255820584777264842544288115780880467583007077101694389317161951842320281501373529749206592205074125409585124029879115637842091651495383521435412179574331886860237015369293866836638844166498541666995422992731324761384966061424484433685884632109105828312360543130862797199917171663280767787291785913632958845352212738864783419887700731486280796720474216507507795423055603760704069286592210697985974724672138000190976422276368073729729990443796038113038656327847544645731688993010296206049995926949720736690605954688268364400135624816728779323761636356539252086984266736734013490229271121506944753280262638875799154164843756356995184430438538597851474161978704321096099965832602280875796804877539503413593335598559247823588435473440967006521316323602693038426787005894050528651174563052640561751257565845396020178608940944031139896172889709026526316349632898212389643287649440691328554908693214286834265499451907836896934338764023060657808499337468623625332613866597105672921208747491660454818301116788125618522477795143492730410042310322455649488419535958055901695781981272489994975889580877239700908253889101820311801884023502130536382415784294405308143178600450040173284798411351173009723110668428612159350230584310888096121408095929537438413883512594330495428778403563988756539384680924753623036045608213559618153370206099328240220624569780576641711677348329105617398466088942588890013194646389388333634109760144456135071800181200579074425754616095321526732111613291602577072193129328053755676295258420462425745108745365446837438600671843822933133034360360703263444815994323060138021832454216912756761725774419640033866777414835251224241231761109387547764049360621767223300046399315340415987996920625599837672514239237551624931722309006804095376638202616045522547930630668508460780095462468537989883195750994843644325586135705272763473739126462069605228429387706897117291016653930219650694126219885458314948309348390401416612524773518695871080853527407403401705008097540389629562904909802058316658439758673236498584309560399165490354554335149916456908464202520977595617203337665934892796717087676973248938073865668287167458879008890998498899392148176721994564091183803291095003082781844845497677886731095076618714754033353046352697632746467168617118868408277775168817533197816532486920210901095467107222611419512502895788423692456771280862105388179825462642661253825434474436433357074104179999239101607126096990842043321959845838748562892951616432400547683169224025553797022972836185837598012361107815716739304881036449255765747493167113996675156241022256419314931548802731892379704859850854247431630124954266325482497527545870581208854694963129708391734193228052772147680261404256146156584150008498887776245680228223624858347535377933415096343845289998633416813784371582697938842511480364825288497728435457138877730114864771548155826500096474013426959658928722612501086549539284313976790138484062459341126845830743501781016757534212554080262899114630212049152235501349242668195563527898009081109109578578630185317749767047529858550273545252363291180048598208082419715239798633630157262097326781154913680825766745962986111639736591458087523748093595197699635811618100247385671870425935422613995061822060355565172108627228772958973188389111384425323129009978305432662183111760455952861943727042237829512270277162498996821216897538290253799569522984322269149336823781668216247235311480737221570526737240422322949632041603203489583635467004245300389369494997542194916487507819621109824801849817505353586703601647380047818570513069700006570082346175969010399173646682931869838426686595906429429937784876851255300773492441723653312110444888503637196666718889928637655576045898336128076286816649374115807515428313577837143108392208445322049127365697767325183915257865665096335728531989398461713265790439196208057955773615517547033583112386626846345183522474053249414132099536206863304761826132897461423289683664787208383012844744413210554597272427051683296262092902095783927870844316156911325577610585634661705396198707619970991703751937706248919330961294246349775970983894587650919310670531283532742207742886077584387083551465832770024942900237517989148771278475296725827139862421825359182508247718297220813675124108620153120021855738230402002424619203030274773781380902763615273385929246200121125985936299585097351174095243711070741508453313290988476090225003614233816421076161314068837806840513970460722234499718276485075439483685797936012668189164198107614429962310803220367005484411579952340879571071362997025071022392692815463594047144677535822279981005961426992551818780632040241101216324404936381203358431155168843774563894764939049561701564920920101918078345320835722775861672900926154764770579396463827811723857813317980670829755158453940772158096694646975766406332660751940962952001374557995200326035118028335149438254763826507135877649801156360485214477838144624339756493558052046996243108136397928951781848383780583479176624778866928949467643300790728048225376802240279060471326559672250929153008214076600274505550166504393051981906781105407071006899443870946320152602809308814702345075766171426111299436920225307540797175992400650146967699207226251782635282133851266947855575009633109277253592578053543521235561766911972844672878386756903832867068457490102775069490427951833188646000752699767134939260437605906460174305789477771018205434025432408407258606588093838226119036303051099632375948429660961424356435679089801618473884446619821654315198272053349774678886903611430941729541302821533468855290809270855948088706061499163500922526771312318751020478687712052953176133833458119464570587775756770964324482515104111294628012851298683716966398452748209277512184594361619221639925899234014759691586277346521035969386032688058141802622276087106091592230506841026613049284939532625231146320454360824005952218585072513306123789161618451014708347136038754113814509253647272433544517681125341675062749868451569487432975493023046067259017388962337297877195025190696176325163360425960954716116635156151332327080567292886337668514752278280075120241572603824859040359536398945707996516830262828696490132894153103022318251054392918494575616645697898365872868624071229325288686569686574631539825887310743253432710964088988651594566403838667760423220408425258643551473823357996917089160192121373988797302541141181303157604091991987636452487451626067901980968038665697025189805638097922040570233848012992319103578239179307201482922152616855650599002127851888021613173124773838249198464239392292146784448887619363332461574939470364831971066911643042959135860036204013143296457075518137221751148571486535219207360384216282462580691779682032480772112701489965651313995692965234851925747435919876695430850998177485796791926475875774953203973902135431126898291867704115057325171715133874841121609019439037921335275325360597915683350990619784430676987198002486508932977678640504615957543762080958267749085886376266803154758607352674184735363856157235123178707457776989686508115979285663534058921040204541048302194710846701113048104280521889432359570713663346652185050835230130936235933224810146191015250026980167699177931524407009545053686915544456041839267313306204552594492451451845804672603349535145495559387052402037824936471646742268919424080648108106408652262393957481030349519743123619111224739417411274174714294821396130980480087246215405606729163921973847057630549710310600579637769769143438989326738147535268690891916494386180058958405598718324502968018131828600323305565875063398491796436536616328053150933984234620815934491152569707830076469463239494851509921004376268143970680189127972937049851263039544045599199950521228055422106156990912188759607413464531144535279210160074818048757339816299396439158776260285754544230174829535292521048689653671941126722124936066913498821089061830082300599219260598567503999180030995174249798909952243323279152253407200072490362676636851888719947901255538771643239244333145678134420518445740191294946084010426297722876967719977760502058500143786059585417851568279873796674949172815450217654175268978801014715737806733725036729749909628155006535146785797242326140838066800670729535756975515779109908659585771431722458428899557844037852353119451210965246859345193610709482618187433286152428035336128980290862173349265722263228911382970949361681131835268171746886446733057429339827503392913484334163562814802833808933453753360150348310907743993223173537599944020297894493964076375150399307593969766431473863679688026889252072693556875228928911109534068566197848308134504848756101872538650117107674454826742570970501996029590439425139449209047372860297555721552747886209482560702249124326821598710843457811814646287565435097164065457675240127982661496039990031835044372740241761683576159932376838722177596540610859706746039589218164658473272072671569804374553835952265987520820912780880223521066396787024018577032600922179268565912627213511569130348578243809183066589933752669834545721667959049607137873488803708707893464182277176985716267681842934302951856091162343188317190348807982922025106584013023446692084454206229606103204767556946589125749436131743826714901707230514947061412703635808354268253868276535370290303302535361816023387419604453864548802800996350517519399604204486467513939085347892808217203424590183589051894251401994857907816823489968966265402341343292708979719072322495936428073632527745649912411618288554864961478688538449275272884006750397723909094832042335488518102933809558503193391156065421948678855439181251160001034257024782501031052421562089119350663200983973085759978779178503486998044923494513041198396435463511120498439914683919762397418986791543321816481787343862768013959949333835184247971790608357556874612325535163152599056358914989321273231815553517743373944429738882350043175223972908894501797327046162502787523532496696149650408271055083954542473503300419352450854958108566762543871356944819467008076282935641646078780273947924233206622235059759322029592358609058255775586981064354154052362835768432588052417451481277781121050178892273421233586662496473434960960040920119194571318414056319460414723590580622370589590989212095105620596533528461816470969501128248377238677533150539072898525694744831823894429382893945987348173771728482829273621985218898456172392944199939801106156708913253538370763846916091860184435862391625592844065290719506429534344207048255057783636647284934940539657091499497540586540864499700035721265587040105869188307883903458302153976508821005094965884706210439523887889664193765141881000552159854456190958238136425821080773541057004528548176170873051147453647926271862037269756954437712530097720443336949536313611591988619038393433774387511650198058302274798372457990490959904728187496393651886659652114522907863267710897796065482235862157086625382954055182798766761133075178038684987787912208634970347323282591314340760573258948096246379254828647736824550336876732704924849729426342342828962108284229239752482990311272960413306451834531892209672617108689783700754883970974617911598931608184914350487137434756180056300421704025488262823296591047180846953419851629986325099999912484832583819731398190095392379436597738019448457185337419427406431378441492017271481816558822150293034090011261785832507843691291356928825871869437144092160103687606253876700765079150920488365899878679512575356770024914574647209098683252583680060318446042322360651466588174781808498062342419144903485416386365084829773777037286233787582271127294931777897504839568504991088340546039652690760789874720411703836870334612774644919896416087327723016193213785851390447020765690942671508985425139838597448786079122790388419073971815148695480595665682168405566868406329423890581251791794181058818601912285247656784804767650976001703837169328534320789749871536060486302620636402123620294781990422221493378474100300809030476707269013385422602060860789746270199237357927979767568274330722446829692313402305176147063641491214902562478828025692071408492626209767553553898121067317621027474455375893454000389845513603785484617620248358218366907867722072611050237189575714337401848382388026201168074357529728281619784294486417829531056705883053803827592267555178670152640958065348974492762727812891724336375614452298240665598210792747571658608814655487457060955865989234950251226171597215542451767435958987584585007218384585743201584611852694417236035981429076278337576858371007820657256754532642909518338390010812881817189610971846026310094901940265934722030561703365615671207192503311292338758066662331059001765265367049070371792541899748646536455278123275103888921585498391929185497483864676986471329563772962510031550269319923019757574522732910980159725768247336412370218028410657261958929653169283427583756989049203895318205307281487444893224518485371267771027265141341361840745222393404851877554192066462305663649911993242699386835201636798063530417993334392886471296017551343215605179815372610332948359538534335220669831158988566946485671165192503638844375209100318568995437291326959823753772288941152118882669816101816302646404644782757357054301702359230314918717144143796641309296869519620679100873180898903864136028141137665166724065959566730635153542247722141006249210352435333411583922457721751549925663873425264972795474524852600757845228275573403925331318289372477910452950470273215079897114013269276765346314901499511205639672149911758936785771309239759748867079585984840014781212145712515314820428722882350374975227868258169944160248740911703606783223337828582433251587507612205292188593916122181157013821324493170819494248840342792406245132536018893691939456208399344237974171296977943169114534541646192150519985547641453475264791517031830433592518262866304832026904896970054899090527671745511447573012229356318006241575112789109699981789389752501772564482396613928849135348716091837586086430781259545003174894788735756585301865854950763701702128116179506253623984533844188948915971859545038195485238529047891494437267687637023385447975051286927869700824363063346501288236015676634449209566015311686611188764975921473306033523641528565044104365752555266499103229108834360698887209159648656806731176358103433618836877002394287430609754014074303586246079852943028464163798588430322892301040419558785008836642592732448997367726779435624730435627485704783478390154866157831592862132857937669161591283245049047305022899372599342282678270879638860820491383109000087147494505364771798787684854136921574955344255253977523083621213218796201832368367470480269291117047493409039320127172578279057855534372871812581610890961485721271308551459364662054319780385856189120655040094523143945858734157757100826369017048088695017880232260626845490852530764856431086101835496673125628679995721740703866219773218510831253329463438080688745393252476266464974865588634550483399969322321149531315296646458899910822407266968908401688459653608379058047387322249522565863752606490988485612484811605915820354573330781583494313882038167246700063998881352167246624880098412598315728083755907587041064066416397298450290460966332579501093053594481752280615028790093587366899444368718798366897671416514241631194118492522174121937489447688686958424647058319402043700999287663429459187715689449037865863511470359891484293102068769121202824953390556216361022764347279779887774084439830680461193637311477071521072028132344650840181874829443441948821906482931856667265310834185917547770374041068636044636541315087776392410416394756519008290932138556505771300371266914350719073401903308686785504233855805207883259126103607775358060394293550765322551280400045022997195804483879009624445601718443547994900040953593511939715137039297479277958366092232750994341263753309388679776432487255630891727163826903565477393720151935354079793683352200155736507394406859227823224224952025416561966661171981719274096592737529829037970482280055128972764419778563160103534681851737228607641650716838176044371681907882020151138714342361632208335907303584241673380246752612792696263846214123417650889220075599374385272608277765099844513189884802589454497585821329436354394245468384208676835403947915457123360045539616792573796545621252786909293237842860283330608145920170327388141915268093444913325481429230226765064339030277737096884551232787033411890424360404520091887907018732701219889968644119591581418365589383051254036031846179949526562239720906983049785418097217755679525440634147613351115250223027202243237125306695507341906028855610250710843508997708106689757821899829480095106480134082363693050710847059585606675015925403084487419112605613749317938147061584495083810014825575900608623586505130604248108702933631095935041204429396745596916048500225788908779576136701169190675794422970374873719160889617862802531123300752643975037500931724247077254842641618511383831627531423652211479694665668632298611712377806839623782900752872999072159852605078568419528155277986139048031265132560972301520412327280841492863844222783532657802274441505086476747540289145667307571059171883153641681118774933062865913490679784584050986865171835479708756627070812707354298489495679569426924511147064851118717482014937908861186641612796322672742512065831827577361400858041428529377942949514868554989818229666080576462442078405631374687179319199697240156372767801508356565252980268523523562864588380687849606493203045802547702675454509014154962272505004163081867066833334169010645907063148075214461886403661409566625276081556429160808258249087301136011930488225881969727307924427174302294415331061477160455596715305949144261483428364689913587183772229691878400833433422956511439814658113402569766776353637234378811827647755844033284716940018272245198509024826226190652430926474263153372416855719716533656586739495247011887606753248703194726313074324787043853236260563353830507431261425379368469245998028381942119994875273580950135857570967875034410835622149192431397249657048362151418457468345560013699918133663292605324120756497189398981405297854863400791176196606833312557759158640298370761088380605252387700493403115239860985780426008722161193151244367671196432421853466542803717553024004073436063703630589105707607608315197705436848710983638409517627333355837498038481134234405947371986022779578524351784292341317835868452295989790018900245585604776006477930384168558875728568277851877985715367299023608252872537484430805054682589697799981614535947670578209930522760108748408906634256683071224855650817054059604501468047692050308054177206469250357853668890219775290180963883924629718075293298788897099259571599530134839281114764326334159068278599785803932498434919806867810451500521192992330141779170517768407974843586793908714043320833736596003173258772040978466571162507436630454848271690272212189044291416772626514276567632072863632934307986467929118410057767482932273120138103903235907533658128405693512218416590732008816165583685498711307887114070740000373657918359166217687616445833198504881173199846742043691297688004361602287756907188662745537475712044102028851890277470056731367561535747196134286588292736799409003660413161925107333167895223309556001398943857068266590247980663101794972109558920718810114310550928320203977316384691112638688463082123146397396155829451784173019305329095839434837378052407633354341634768339078769904723121170054839591198117253470088555754116947619385462862756432739842936241207536345935154183442431170135475943926549706911360403023301094892529502579434598809340567014437417436887918336632562107089508305295622744488886213888203315691441219582545470491271180089144915482915925841380964373190473519778394239627182293135912870432903265566506039813551329474682712129687563381063784738526741912192041729256929475001040550463324379737431786248115029786488129683779062703815721319077287574264246570513317519245214072435158941661410382099717107965935821951533896669285963584031663487040414909760140771625592572737799960478470499099441455716415473086263548186366794354593406990523875675768551973071192217017901703493483569455896860280961447894241159755766015662350637566775636120953145189215457345527096833532075519209258218280861754031898949221933578308980295811248683994353895458874772705070135192548251497194149499706547109734403104339788104577549084179802380983769616205155471361383369148253660810515056529969225464136444625364655136767242327956650466871111602324944425756876594274348421423069806431450720925471952581228592873555810656304836643227678406754955060716484505566754318559648065117392530032940455057463982723081953534928983767044957413925865895485496483463676447438631837238223166206711697584331804802829673074038686133568977012051279929271114133157938110416077903523392015176753767413260604983284753944053835485790737307861361521800829708462653756504919222928679609380182163221859044178076787219699436220122545802770729538389286523817969799879760683232254032464006012493958101020434263401845839637416699303385671174237608248706234712866816180598891955863643130181895637183524661767157020508893532061776581515847323519716125301540858949096131238544754860614709609704028776827766682349488014591626926499391058163052960117884453022380118362047939063827979018782476345217962118680471435570699892889725165985366964878950003001389534266868023766996571685948584700128850932278025413035734885248049804202804511531279186341567439232321127446948713938963942195642694609330490249529187200897095216146128681952524808282962103702504820538585028337709996474013005898642594733794120408962616952423698921645183009904450295876449652076374787938131222244632707489962123876843287446200005375620591125004561224762418389720171236962648123175170781374047531120773708432727919393772160666466997091360950855525572710673096519629055151537040217050376866843803930874578963081475683740096131219087494591739055906287222829511222634815120512907887730929009928973387067280217377678046433155603190702231018399406199247452376851101911445246533113740177423511920502448030900689435899831900774942268657310585127382234038197204713440575640000796573453634100729468226052010371834285142797245626303408039719863092792231667684833890461153218173802422327770394858429940234360047019004767673604249722779012837145665560270756706757305946783739412157153323942190286111822179111699757322241280055878587546248762430553399320390170816039997349125392305503060470011227933685574160631369701242102112785750359519466870488096509071692854079195661163135709524183627429365830420704121423804707838169807061818662098828360666435816363427756752176037767598869284365694993465866380722765044140585155506875244509050716902472806653340363593778415720691737240522754009984809364378635511804458943159033528832721931555830962813624356489148622565237655569051763697236937932759417422668619130245493864701223792873798250811101602110872214445617621586462990795867363216843430975845552918142678862543131113922077270028101601742944313914389013905042876486679555803177898757136598148102215598937635458026329194789607152840996991291601304186054001462439836270287433816694383147489454730831966445243987525944027722288851928753553920505185462277101589991090757572874520731971109728034180488305004124247635689648985883585173155352550689101356424461944496359502612506472918125665033617566193283456328588165454287720411695525954008865240927136309855133931917223808563566935646385394703583438143953401248945935129037455021462264070664427604243821079953114565724991448667687296779334638005669753322720962518237323928881048721960922037629584265485378977899706344477218864349207276701057491822454183387938563805547682169112781251941406118540163733918847886606485067186074328266563852155290441479284302364796560909196324612816474045846170691520985093746323694752702297010771146761285618772202763638239814386702204267316587710715881939631564568071549460696401081746635680756743946620970388658367669678388554911728063583651720632234387590636095634297936958026055973196875351244891005843713488676444943008231218008971907227699131392626565926068979419489296498680613536659827045912958727312173584315271197151926166608593151953537539250883273622347330697867180564697895025787043139770510220924616733882379105572380379609055832165578208994136983775304569158386732385415915545809087583050297376335905422360932889583912881004880513566091871519817323135035827333502160449621582004328316090575650238144488427279104274994673257918408901483234962857880993573296798845395077390002284602420125102043401356596694972495514592270513400669989179781993205762602831043671913521628953913985900376454414490593616968529215233020380160635918283801268276919312987326446574596543813030828802450846051887905083552123234528263902972775260332785484306440485333336405014030638240204907275480456089029730990471310252149320901687964501255188213549955889285693169942213997510738021628606701221143192198650108404028858420448735220015159720589846796806550787409203153210101620448932798161464436104053687775801790266604693465077712040208990996328853943455680303411066383130581902696707225395778860906036972371466747868620634275662225959398904670955634771598570425421166154130679421220875357713405931567335140605588253282631604445122765973699522961811040778853829162635850226999709522554666061047325010233490450252525003166646792902926342139674541488312301448548179405225533238503830625023134567699395150744746800621995730003629967634507455430752650040945837572372850873751387618367974141399787773917150409302310494713860550178435122949357268960437317900276029903597475825147727676813695123965203205977551709017414663428021796917050747926882946336209647203320217668562441289401686437327053656475091733128188695407722035269170674164208221768001563438890416526955731283564833060925712924471576179468635771239705442004258770798548680666665616888658768126864814673851373752321037685025083854285028824964214550238341395980727957309868927056720409862461459937623360578231379989198957782666506407791020607711302933050338981256098068069221673437260592927444612597534288816670513056954459634711872212076954751552760432373387110235721114570291496785612827550381575753138799707540984215933467649119217811993018388090595778290423963337574247003168560284861700041506126184426937585062376163870091185132073665221138161178839434144672163891128015399424383190174320231881130532358485025943898938360646909362071644566601876973770432578691437583041179839847562608363115193833261803982771431778159537711071397498551832597340228372488192539483428529719451859650063184794460255732155188095887830175749103344738913225616028477926791531266804923823561047143303205789331392228173328236236022457450941743652386229025272967910868353562094918942594946092050482173558118103918005698679796070915336963982017508877930001575387415520981765792124900424516066832615310524667013037319298498140715816638144699551702353767906413141788368894959975629744362671189300016140077388058213436243668601116477579560560312190450834950238511310456076772277245728648704446085175550948768002892726906882486044360350720556366232086495471037332939354877653572903757513897538047694507881388603762243800663194594429374262725105238220193976714989205024702694005750180471135066396074341540519071834898334281442074123412234549223412772885105420048680223878960209200595550354280739304965628046631552673800918896868437770755740851594057983835386975498340483564408299465755255791822031160506517225648773104295158067867012668938384285070427950602034380605043676110430533900671569652787912691245410235573348283267397969286790475392849479997831633042999526765325428395514669636399482688160478927047158652463219360832633908252195569107473321093467863885284250287965602528857561313671887191397848399067445316082416002309124009344360936891902227057505724936038316061252677867490053031409186278527914609809958082843463313289181679654221609998481266681646589100940851503639494721038663546415992329297083601047585195044083212045518575399349470867866260693824849483728477242100156549553547094401231838059582146110114695445461849667719463105254842226822216434315630657574409683473366708227379282933881964654352030576493674931336191814316035339183220232534189829557210860209780408875488174501247396050768039738201473576421322503407999313191299109331288607689965279889135876338903951171804657094443281489850220522682926916087493480311837374022793606861994643119711200595956297560608336048648530253946162736384075349988728674349521058990204484138590033952747241074740352947286702990376421420292840843923051765493780129127005266538857846910210187117991022157994217923935282044592318571064428808485931870490813370066810889812893351963524332677672752472867011762855908459583423995279255263662299084214263689052111297587744015902589060374383983441219210571658246508291963361476726733502863904573586498962548773873935078887443917614852192960565682117017772938419609533661643607162828075486904671214504776514980570710487747174136874732951479332276375803891828403006956225477504705535659944839962035117445343813625463547909780943258731321850482653294082228361102974326628003542431772948420304942637620771332263796207920085891820148543680332894741917341640592304347370321044027819327563288568449034874913060158999332311945743173528679977644041988690403469942798920505202495626438943375716166560313569656320822879099045365246347117463828349451703309067545881067518141549437973153290820901359261781226119114727196747715120044654190944547410241784444436506140527348125339976375355718788479189262182816235377896624785932533298511508036745934083694982621012839115294669387945040673512214674416479643129504434890349728039077149706511646705770161965060433563101114495943446051600962061960259540293805810688647561675054983403788801244488904348851498196323900034540375013994570221115388537931051552887925510464000009775712428793798877447574248245094188720503650529668609914597890958663982261847159892727149314752379341846937565925882664563805073782075651174507549084149083790341393257992482889368429112106287137807771242415854757391150463700825639963987173455101815284495769922196492275995531654340528592512348182915390064508470759239304161999805122611205778301138960990498811547206399271008951363515742742160123963437841601572171306350504604851836944979331608811042316248045864066516907502726217728110129711315428016652706405335603293976118063201052955923508654572779295327199194787469270992317862975753068941831082620238344682531436488901522917337977261118581341382038597073384121825191789705737629855748314203844235013016461966017752976931566312532098148159245498103065140036142232428160286673222409016202360478337952613110350909860421377301822316677606418079719233687170628544682671950789593108024792758607598494404032435294554017930484708824143793962775079634068423171236604501508969497096010992823908155500583895902702460168369274148735637298362092032325211626660848934749855900765843355623694841682889349310440939180802527032071879234769927801291096173134163816696628424691497924322824643056241750684766327376200024440169847225208300180645737323395101792102202403851526243729031593874326710962700277807676627910786183215691269782911668820912622666160776066489183752384995083516308319286812178681632423788197941455748367332420947005930517318560853645519693755428940930808177233385585640500293037637705405254232433198756200949891975305738754832331905823566117444023544445087479975224163758146130313275155118053403123006478772536098181587110583822866030774013927204327326734297095893235405936532926000662401134843815570241101402012726810046238067490493970655296131101177361887455838458560808239752503536279094407964044163910636622163563882836887922054608284549663875529453844178969827082656282704557518308159717124918401917457931141115201903400344819713514093097608241288922937014359501247070281842084435163016707197014479033687568538700520297312371269430653505269624600717744889817941433443768519666904389820764483135308331745900619413831478269296765256041642570680254238092069324890314543533643926750181235650358788433715395727024504652910432434851811103234979094412300258431455307210224042560889333789862808603397221954016866767623824077193177117825799853074554770389494377548380043540185963671446855773163428001978925314626669464473734768001041541700713223673676981966770572555740152440479026542784156364847885722979001120731244925887762406565754185235128456255297511864469062182995371300315349535650899494940388262064741925625569148940519511815420656862826776652974200335013065540152270205522135588852961344529354432859420824503337359802332771329331568142417980525116130681100575732085870752116204389384308264218238874121805371070795319419042060320631062452191019620133295587117066221196434858447913900190802646736538763730796652711862174029651071801275646957923481214844084934930156975039677915405691956559076314513456343772571230660120011344910543741326158220197463838841000625812749793822803265634919634507885727672996535969832711402945113773827139433395328270322965455073330434149188082833392509239711144016968325775956597228393142872526631746722436911640156792374016468873930133005835188586615254400167414796823094346551010371033950297421391392689437341080407291338487086560021093784921825498144038025370845931517890972536991160144661288437338492891372430070508423828169208491480440933981594801082365798864096147384494671064363902941493839208957555658621078738881695122973013508463259624339847509845348759817212763670788466811550068890541869248752641334002269427761064145755281332509898988020970740998831580175411190740744959475434239805416242034364279669643625568313001176399100565849874254897964345100394699490530370310943510914805509261294728489950659190925482581051126522584120854472654847592793310479887214559522558580189334529946608498158254758114302372243466177242063776731287531691028563886017210208093104745514779282255989934395271956054934630971411132808866270426474886916306441919691996117722070192626561948170885160072569790117826941344659052281509266469875119696245409237272427238999917107812920107496248203176412065885748011710761639726105769618632223624563011559000266773804545740472747704091761937280222332501093595367065811545171704352998649078480147448017987542843680239078081402995408513732213827126029456110148133128978776828236910618304328565986089953550529262511305695799253482588713788009093407232715157580171446770187489610319791357136661994777172291901183633552516717395116750414683430137528794627093870302337789094962710826815260256895730434086757953490552155301528746398234610259451791115973766286748846888918988199592888877098407258245330945388562591395169360968372370176265868021346319038374871913302461755501234019688607245405293197897247742856978076836075552646479833738489201473801275769199332548555083830211409353392859552957956648609251402521272214302913269790549529612299996173578271230335438318701014404959310963256319081184777731326019348109038354606759659949313817507247245064019530757152516777549002962338681269517627717319165315997862520350482155262276809306337841010038088706305129414154314161391652097263837956022134263111081745453809928148754406093578992938402316956844147847934010384163653132434627018429610501023597732243010555908571250378935379122741245352108461116183571783884537643705861085395629014030477960005162507506255188803158946917207807096250096262844694782112664889089421996485830048813969701859219196322678965033057091351376883105233384473987205711644051319650835663650838821275219480943070436518281036447669354003644535621993584847325035160975504238605516653471434503308724725290550698169884316312208071579066767125931504073485546364296613444585717777104333774503970047391649358208943293532702670797516775217383795010474028009748488366712050880894758314620710263065558968837542730418820550624805317704688017244714865351094554564771439705884342264026426559869538161948079751468470448417162532917124668586156292116943332156760168973836899079535086535511952854716911336276453354759813162430533338733061381546152837883121275383404822024186177365081109077635973247077233813044177559306612317434384657145975482302245440491393732971678160623754226187459458622136234959783050355378910532344631234334398860049215883648494969061671382828248360139083206281662569417209269465308316359131072831253621885623962105074164478261591173251068905068722649819845747410841081399789900648048664427852072037644687248002660494197014241299146072387040554820005768789288554986087649472808810827821759889004969204067887441289254471847613055821056987128283102202330378447396900856403098644553478012620210880681482130414954767069857002102825304267679640927772599328985483968818780760800854645682136908780450430539081937555299381316163016230498657793678357745388332887692624409367665802488098658440164987097342532575831377666556228528604863623312849017622900955601620183351084472825430527467500713936305748394946179204759635479620098614322702651379207664496756714482013695362615968571140755279340333065521590705543451941873176928456003071667094715898692719512051918335645183181095601505976264855050262518754839304253029200522935137790070520078075301833707418949047208562722768239784946346756653553107589124798189092144462091858923919077031360674282228262750880368567478433927042767227873867007980750487533592273652993744732825012645761076866590492863398702113139804874668696487199360116684495218604135958829482161672367177191281784010277781596812280712571827746822128839130564050554091789469712226342541525386620720905700976356909906899284394029530494635051655009886502450114007249953113922502879766849215019935715050655292847761070989142822002705595232281769882272127634606048393392126990411905460126945743460177576750332919798139963695308518738051100037622693815255956767463387789101886643087106491742518093933031572791523450783040034034140940979296080791264253959168655315915070814374808980247612259180926331121046373710600456252008530153419595798907381087758405774748637551079998856323272173180677391996991075658552557258803251033877395068739070102065170504580041285191943111037456811216929798568206234251826165172662455249779603483775370332252484332329521926238151749682245919436980126756508531454387497577984925542747474786809789579430769571003708147845046619488833715261662201733666429034992611960244360353638841256845576553041383734820260491257580242454635124315220276192900562753436539446127798345843761085778291344824478457660260141488782114020507447698985547877394902243648590018271431632971362908972570925711117894083050235283226977692448510109244220321196145337297752662050062622857467925372627218577965412665181090960046017835426592957086216731140111263771436372977896924389827097201161393086472329402091958313261603892329206463241129782329985052619968373398726636993849314670310357630800703309016508124655297658659362976687669799377144931977755893813875891933288894548302438372776622644184250899217390740261412476052116269964120345185041246123649740121682517805312175445071226304900470095515214480123235976561705975054667278005864839075920007607543942080858641782644963743034778847136942980927156237009166556147952049071865505386562779703080364837687459699641140721384851468484510518815268261259432645740421175870503607077314609884612638436619522472835258841812302776544419132976553666680921745127854305298863751434376311866691020422775168678269930673097137716193895215336169727424031208081161880458103757303815901446989937600462440390200835984345290630112203073504327191746189833785770272003668007170543664288349372287422057336801038694602144663051916283838095218399392066382511540670219063228166390799778702543768963373988073056233580976909568131338094832741012105099974875250553354647644321722323186807555511680174745623030819553469636405783160675210230179753805474010671639178273491755830007806267533236348127070102510442031008963977634005507669568511604058859541296775208570537673569405501874192552946980432799474139372042287887285127423274321133496914401880073194612285812645098034529227309706750196870293007229681570082322722620485039912158145352350119023209582607511336686693786630871014733141416590689906831849813830279781149168773506888279088196199704689014597876521439830699196547320088548010728519387701710830494591276143441219745073926801922060855415573587561605643740365624460053252187480122458653353597520530146532920949648599811121963855380828460109975908954120778668170696874302910909290510382861960861081353345638031023915471299397863253875367649910463604815934569210512940624507400206650517909382997580732516900659930293711851708967938302628112150838146494371378183597364387077701186875814511040713386902885392430304373363397352849047503073817930009718626814129062767775325073527420280970641692086046021003957272361057714341503869592084649720028329546017678206079117610838457411749855536069983433869775666329537493130644191651607196955185363687495347197172134929384085907678521846093753841921049158196298422481880796260906429295483720760370804857619168588121429101429050880095119025625803303192905106299002201000287589982073734915340674177700273379663993020558009285577776354692917247850011310158195121355396736282831987218801578054754708085140396796071263226805003308478717626164977024608029410670961595254173453755210085835650784776278324762793331305670374581144765107220759020963094004083808153566152967992948206029377387585961613098861158986455060488559797330524464248525203026270131823507485031993816676503314235846725583058974784661508501698964926636328117709016643577643481970070723370852587661245159033634400244639438548410381775485444068594256759053831730551561609018237085183187444932393669326641926578363175007245091286912356597663159975698713978893018889973246187448464712982339981567080776224960256088890720665208796862714495392441250354700990710599443118312913658975674954610121558424630175380080445551386192910909566086472572631108954014185869006074955419244027037735125495542852801389911069195389970669484560953892839883639999911437498598119400985378860194096582516108774705286289665230896810709456285721998955306807425468491679472653380242309069954620250413842027665175454155194936832753425828563826130349903336573469526328249942570585791257864299158873408205959971325812828579875717721575010416460405422053057143885257475464976449196559706640465118229297839724259708802911352124174115259950471433645073023274192027488698315228428935721522595343450592216356684439524831430030653982614465941506716019954769091408977158689585074315947168371977806591761222502077457084868413687895711155314776073967706493838182255105239531112357340888347582745618487368534682266123586526635606239529172184947355318570104519075799108811438272487858263211576699581672281865651039227302233809476873151224623399024837491181405787283092936126083701380127042146210779361747549719911042931250668371062686524822774641315369072833129973976228573973888917735215735815828684896114206471080641129397562114503456851942422903671789639112255851548699534421667172556417816015390019052233395982350386705777542820680364191872107581778014649498892500951125464921029741706979541249629344492187526775281185538619165811352365819305222010733559273034787879699834885037167758079058050880578843075733925180203663843666426319357954077863083152458520629538786469146259103231432290646908032842391682630315584053642737879107089662697906103113597269491320402719736457357933826060219897526623412908855069013375777486090992771954722363082847363991881387978114932196136781420726508038888160214886560577750904353884948862069944114379784624139982678516358973123885824306583779303681097430570342965520329615964582920700528045488054989318792533932133438868326430352414429872278395132622945276011308696611828525372992822762910684574777939409654731102094536233297764223570213191983339284910640470806497324106703665820899441503780602840695996096842390569215041930470392022602656163742342691413447628024081850696407560450976119745604197032907880314033608266740692158775123036793167336523277147490220053610557563784174135268902849230260678105122138144822578693854926154251733760769021157350101558065214267761958168557107266818121360426520876617326675132757652525411651439786882652727972861680038790372178021400093122619758713677826219049930743504220648776784084388531016136046018271114939181013225632906781201284532259438344145336213268881205530647345832668683323466654876827577817355138523419277980687155428365892225758153108627422012926701998806817580593187143290236428819579537199813585705533420505544854212222730181120335914633168678781792613113770681501518058495293186621696084389830740726752310726851537384859320385697548523720756950198232547280978422973329494504624069523794389245628231728913192445471470463745714803831357690288495685716777252816637489733438243167557651738462845006741543515181445692890262247225110397922533337538054419587139894014805432313958030989157418210616575905196609199436098090019107847378175337447623105428671383818709853378007600289264486913910831758453339745970013957495798127428493800613065333430799893152703134523034940130933560670532081802828271571100462354026698766825547331935076772035100118223559798881845763169168463671596628977398816940009955809241612929238995810518830969486856400510995473681759901038427742768344046153760461474245719882046404956253310233144273912682495583555142693937381374982673235919075844392501721481832823565072981451567181077748637342449735307159370102104913535126151175405684030087170312972407829652770596595261974762172321485929562720136953928274818194593215944298463704853431815679241471358439082479821788044608121833387521480285103374176752665465019196021681232771369814959987253600095715706529209386818176269288109874857940358599905063232276498355560196882363308096521251696734505402999934935303293727604942411765938787110065241514990280936130073598313357699991773187037528622423018787372927130715461356790539765218080590074074794019129887821139549732740539832935373960574288399200657771731063345130343827743661526856872236894513956556071750017162657373429577270388086221153668813769169697828901927432725296797343836201358316867075470525117843520337833494933207541192640810969797639246762949756818594772114949984981165209686676859155609179462683988537832006373614472631533503278453682376908137502311560579283315959824588982880545946434311522257228553121188703903276405885089759214036487117804593761468730963985097185923387757378884946939159718910564446940580784815633127367097201010888668505961581838884969855870662216817367210748082740569085698326417679516126253857724548212214832794516530332762190642357187263812723705688703001537894104569252330314981003086240284291286457822854172551152075328962583125125986361379857356453873176144894383388563654546822663168809188182834951643802088617754219678811079424672752744266861299673810385418652217844319751221443426239661417264278435689226938056644170117637413958943069686479203667481874316328108617984226172491149532533181724360813293105304133982482725606733533173562962312654245651290692770482855974908542170108686705135293817553148592156679706025487865912193314900942355364015754739988979736837272168950749302945244787521228922779200730119652559857505281915301615715226699211140244059316230260856996315954665315599732627432785547802533629972566379507156114812215273422208166274091220128097363281716793551709267704012313978858986370862063557524882414475493703072147461004320239414456526040065574198759271690279702330588359986605197556813675460077279868224590961030652872684051079180376133265976081791204407033970417462424906448370860850749503879016662180896083388965824299105105362653099879711667868928865618254013088607978776856570712371176002164565488730421247653360874858196423956129122536637697414541056465095572823806777182388105417467075367606954074301870549428505159627379913051608647199200992743832952183504938540742571663827347150247847990393606662797851688786843050804643048446677249605624496463093216484793792579568091343667121487190099034725742489559849035560823137340570872440842210362629265104773097990747511731859176015044733569924078920938142542781516840010262367283634909807690358286784596292485437041161380447487768472160073925503613086920406363613671320297612343240014012032795895647291064788736060564547867062434329141308690266990621194915631316460421487592223552237703853414923694196398616186490321821016951304241525318922305681895436377288471026640025636450439008523062399397274620510062448333262510933215134723039072606576969052402479844261945970571254511536102454311300237781871511905963299367605061689920476225990449473560589252557486010818837387856353734650105654056900691914822171024536735647929988394663855600211936106682692322262122637945929361717394676611164217081922895560846065305547496591807145108893001075705896787317498776893911286560150164502151583571452340880352799773790086901024330446059600333843471263696369414833699732357428661619463788939711587057096046802128174156847352234750435783930910196103559277216850096182516854117022439246194743943552200856245466602172811993041048614899261735428205968891007461167391973902814828743612249261416476743576910295104887613619632724753152584586021735148982112164497778680779559200367243642971210470324237767872512137345282562750942036538077134281462028727300153714160680527426257305046670438739853106641386925474945486154109234286074567658519397677678283645825507946144008540961028612403785415659376105209170315886697201084653289484827060760214543571361100847022171946890748214471100888559423376713681412973103761041210381896831989489386175415465594301381621509771475046267861952731080671302871878954858116257850472627128609444127465501558234117415125268675362531069067872708765266959488365491261603522031835719537982714886395914285288149461926751438639286608151954293239361772474162594305312634611111016551685638939415952047765906435469006403282924070891221182384138537799509249725124371888453433938348429606155449599360860863105089828072379550821586937847005542101679768014124272312938422176849240413254392597811939869483783631880825956955801761254170922286222665312553292629151061207633009212528485922909450734221902287577120429335287314001685961345465853071159444054587082509667922328616915078362043178925039964205070670000736503008483782246793137997638619043051511508400975170831380545617052841188480585742344419481568309850867783888462531387857738328574740677686219601485903269961249691565002659917953302205323465484166305869430487724300692885840456566528905118886614316019958922112698090157865425653401340367827601261907659148171155465846867826341961835031871980856747043836169667305968113726337523924104245429586426107288818667000612560929750003529343889972125627010039029584395487978726361916754478245129992279818759153620154499163084673757029259577195701836913785693478493565959626458836599724487494544703662511034854389565401104128922509920037526411951183585043245553019980872977644171424198661227039356665942384497224382955840913879277230043541532169022385989348762984464613767886758784630301104427012611091864840398861243115179640717443681248645008685672119990930771139774567311304813550044855925895322868785741114597323705806305544937158705876440808620424178739602836122510335527756482663508916784511057417682024243857508946215816969196153027809251912245299738777042973049788346369629034688182169244321211804556381261751296533184870934131377690635039120655033447029596357866039278422366424504271843393086934625649015302732461248303040884647395488399961276131561806432487807596794534606404112715661638208641444209937659793598591249304326179127213112030440568531058987741853602421500851022893209696628952652030599595024873664899236243707538432254090771171108072045181397015783646711698338787649436806008753406304344160749108578791022712721242610789699449266372225683875450438392847118914686187358005795966009536239918616513121737727974183212862605853548248590234138355032827848907089010084646070258191853529511511049067707692544444091470106544748005572193540406199743999997794628008024098921373419661980368769823206844116997224921388087204381096333435913339891787670190128715343660095844320343929674055503528006640594281703553130950519743730186491285537330954370092731358068608009993669605907806835017232602457350004038695397235004076289246932516031340077815858419078584977290567448134808286544778627267786202910872387208684513545335839613842775404194667995916479132433619032908622820096209288293824505588850758835396291653288695016862215471770475852022843390840141648131709455068817608686614963496099884549709371028183323334706446515114813894180906178870215001203033233727664964217912021344598318197897937619809380891898467960317381263115273984015577129881474523796273412086311923798296266536634349738741274936977510172402327635265360138201160298386343499849794737361877364472281032703267608428337205577666062088722117632965543341731774427354648609353069678540710996245277977822356809998424404064623135496698136126495416163256779378582556586901587914440928812976733414020745013328568069450025614230703595960507291447723567142068430787592592806356359319258499396459510723111943402493006720376905646475329718308369832068210864343779938408851035201947209608330464978037154784402663779730864771128226292934024891664951385317349484420647173962930426966248670297338308163050340066251996976778673568559615441780892586356033567864771402876842019757085475564633172452146048922326331664984536134098837653278076543194002060714320191327547508200443159957939439967087852101647231121764961842331303399281621866587561801232785298840486184174141295078208164599203375509487351887797536433859745916162510817615062309411685371322385922776760298120643907384541448528798452494750372861736988041690073082008100682958994404065908341413204984657522119946282549508884934371553291737930802922551825655851152546672690936938428257934942967689731024616446212932936854359975663485618848649792262267806281379857719053849515557685556561329834733600488232401309250961767732092250809384099295911879237708242442134856961721726121691939003651393249899391477243817806365359420747860761907521955489656090901550259737667660208439833113342261071934920406814900685566750768434978492473388326933569215503590597736493143176064158560436713984731946902492635359814776959997604248183550622207451440858727492177923169890876060130559691702991127992088829726414935033244189249767706215999298672941996641798248798652806435686654532616779083576804247569888716585561889020401170044063619795719717762861673155723829391810053913250063596548700231734162132296431675294599629586293390086673040073785865638138749926677531285569465628642872421444829219825161168445693679179344806135415176585125954449691042617814100014351686760054299875941129821373638887585625363637504562954384194482616245135165624684250469195189302774164246754302451024381114882862371221561983423680366885776621118422683437359908197696487894827939775801295836808609783702571567059240409853618008456056819641536378062063127032553753586113287013542318190452122846441682406171652828348769385334482596074185895626092179713186871764742644827439648576735778493189186382722262812167804749520421945436055267920316789142929772044630156026420498596948574190433582750596561201346910961238500488953143740560277819815347547152917331831796884837730397931537298430877432391687515094535112803720437992872801103018992014505700733528622264173274230218989993751947687035855330792162448008690532372455327346743131694915974992763360595044656555675043593497080701122992248796112734771586774568341138613683515478114905688910271476817393037611105497999343572905105361583983907351406210516973751113918908968911187197768422233464809643158233757747703525925220912742977785491515097107766481522969575636830150500621920668018791364881271480247591933500934884638651300734944687656504064173068268664333775744546218245225805182280914291083603770156394930402565201823020151136695263143205518497814998004303673764226029995290895900416422116330570180133528453511766868962486708250523748491448144048911396289234130204319909079869061083461853556593251236115457539425990208020391556260531483892129841605081866549147181484344859620301309825408072552447030606687106505403087544819155550338435554243192937030670303914704046856472442120208052454131369244667953485596132054576231802495984967885229305290369714372450471670130408862174184804623769516330990510433163628839883502913352430105306820164987484763134376608198177874143259011332467257146994123747348476424714952425879356475418337494098936097104854116496032007407069630772804997515607352143971565549646969765429347961385185643185966969319778767564932545236712388832946480343075753638530436803673174889464491775489551840361979974262818673026548428327257768638542545056846011369347636552268569435418210007189964617489601754905792627434241330825432310634477197089124303130475230970560716212362834156899322812580627989475857255729825179141474121366084430489619181780587442110959260903146275543092257673977234677359427319051899890797739281301184318401634811495809114008216082776371094995527246242852206147783668274017806938650410849385518707976009721598813698176856466860748248288679152813274708771339310497455362458557260601725413497057723815683529571841340802474158525447326225140188965815259188407317300755478530658820072494610684979725263621923257794893204312496554403109160019098076652324724268778989813803904495716128679636353376834650571384188856527373502967827956195336724038172001236091483674686922724489635867876416803200626789221922398732538872721412130513236407272664024514171143129939811248680565023543010990271575771157322077041400215683000616623487479496589199194239889463966701146970789601039566230064186305189092591152033037084773066466848697292693172970332440702886498436323618878485686447285014829196883012180361642893721285655948325594672832327811013827451338327951745035331801822360114783026262668903238085833906089074491633970739475302320254875477960096530588526851536178167016524512923586368169398360005190323885699173689880542844459656246574104606604615653110863648192822430484953333630843568610077425789834714548323279105607831883474610916660359100757617711940859892428433574549007868568990664499070326428594286037937855935387177396362852329410041636062314950290445880993176403277703348793073016187078511837192577802624957204723659850219030855613269757577956037555730778698967850994961945663435169485222141004651355007141247622683232211783215712287032995979035130398316081998558060033810568237286851438155573157075405880112607502205162364874931069196166271673472404811676265647487881497698645137346665724627949307188471535366659936936594641037050281682185855007984794387009161815590147152289512192241026150302404724179528680666709019381989534780992044920359714191062001849572413509278914120685681141175205526155065069188090846806061361694919577473771027786296674109310315954976370870913295840291984465228768483163313708479825826598672598819720700428205615352684995181709622814679541753734177465184372358668187440736166396192872978250124861782219297835613608600643177999980255511455975832986545273733058893241888381453109749712894989539115582910203879734843888851966360759790347526343013741658610080462404817160508708781925517974931836119953697113414960246007737672576039924235211862391308138955418072660337242194117987931299608196943978665820059116435919805259657752713341368784263231643415300982096440081743161033903523178477370939094776957876259712451338777198948664202905653186804856623421341142618827016659836874150973274917415926810002436611424828462077468801697422609144166143533671777299051279318270051817571922836161456848595711721004712692347634957744949989856275853819313057451532190433611538913277036234192828857928529035477481484040718905541946153964500619518757563908589453097445273621962612071505459139105607085267403962744507894075915946573614015851620589346391199907223482336611545490153899406044480434685543060345375486727921687281258819570315411125652472613398725429989218030695955505841437638949680619789376103968614249131635984662540468449793962083683806014682130836325022700314571712053280766189138423438667945992973171586703599291026610478439319996968890051810954402132718779802394913697732167324186439103811173997701326818362340005402799542213367921511762811879375834937602840854971494143317881372479957124712476329490815573336075986192191935057946833719003652726681017575633932355500429171788835311546537208912271376320190828362180287113402342175447286895137378917641373745430966863923362045736205893133919751285520925576582246656003414318714443295419338549483062024682196898542142412928459658374278133911732676038630611685153405465779849969122012198296070706320574668761254762188871560621915589757887374010687549564864948906567562156182076098524155366167623698617735936778629305071560967491290719020484042308175059212435407772024221938710040857950517326330253482585189081497805557393354231788945505257022013134068297861493973306545122392104537520392621491066398245669584486900163983078632208556808441782814380309928450670272427473319649875816993022836393709384137388555549356624765258190000929327146263739080632287406727357868294742662819494045078724051874997004191942057429985340725608870296990024979449341348956610776896877687409500289073420776521265908482182544408294778624565010642678413583182250275644261981478987856760822993382099321014091402387348043131158456885434899423547425659117391875715245429597279287476564981593565513960075787825280470502637226393048903278257014149302436229568067247260769323458216082184894708807087890522530738973057892854713344001335013349336222982438434321438563783902751353285426326934468487835399668832045191272279866046170796021554595652094967059516901542424286357196054295588631554613652313332736142135493180327186838761388165227580576673448336471164934684055519058334090978578043083263680639468188460907879862940290155819110708727927360937258802812327102496488514164240671217460731954806769886717777946668616207244491423362109766132042219082369119413764672042782658818736332829819655224658381717266049766186985863931938609768596084952789828494078949651151974683679034740787584981362274472771526472171277278451930816460089928161663165975847218456324389906220773063967463124210418659331787094579801269736171175233740102604134150444496540775948488580538778964675474738500898507974399041460989190682898282440715302264192679997465181249317445764530806894059026930212171917749892232145886476713636871633336583696818014039242812053821828287403548680204844775584448313267839608838431929506107031389718641083116464624262315955680335316893639868627280051209430270087523749777584603433506351377996858853580687454466344772813248876515054433333069202109974826649175540524055154370822640118215251893993292562913547292554666569667528775977875846549212422370468978563609756243522036029262576089649672361120084225554981651322260327515169393860538755881352177461923317231739443713086997058755076603634494163967565370922136135782466828045098006433581047145904206020466653355321371453473703206204938987200817025385316561827961944201225600242354035938372342300698604533044924628061638974021433863416543638973904244785817816235170950284026244940957654138293020891542523588247758575624056933431764732571544009934646440320536227868522157213252828540834973812404831952697774511698111016677984092033125260901351657247063545990491041658951703292690196063123827603663606698203391636174911976336870271243772432915739992197076423156721070647094250214893833340719855658299664952881477048007693547623256329746475072113934469387475238791629092909632947078958771320655760624981393173459850689010871037789653864717062597583346452068301473461374017138418249428094493786608135054109088728608310893663269089708154147638635179324468434147244188519452215243408154383553766935981482613827550956845080278267168885675774733743503100162421877346085730516080733491829921802082828046563759985100087734566180674901784577526742706756430779841925250611086557691195267574118294241111039428472985898895130827736345258750645603256532844719935113799695638369964004225738008063737657102110782668649754628343592371484649285326952906963827480311166090141680903201205763078456302918701742511284455728790058316852044273430416765369678035192438971343822404740649861255090229187571292595451582219497769258053521505398286736643236386569113511201670772587962790125799645331030686010122535404993300974858801744719178475910848799023718257338671956464461600096165936150068059461462572607145077160847036585785048233889779083711726700022757089975709028207867605680824850205489200797241676577803081393346559122104878301591422969600890482208195016876812235484128994460777828240763012567328275279329956427555173627389030522735332053437905583777979202862270469240430637503151368973992733362489521153966982979709992870846537423919302908729185341643832703642930215625927134403003684158910035691646847690952123330245624767963492946769420063879219954545350754753565701580380076521640225571818099640978570344802942465370100354102788485081744372037825171916887411841616206868800446208427674412171830570069591209116839528516950166197070644852796980070866592691376045834795548539614862288932103290420989211587391009049617772016469085460354506672917146867667872489344070446693781697240038580840074350777059617272857208567994852463379009909516627798026196899838679564236427031068428406889339609905295336517092460764934680680739826432229983592274543403485075982923685177740919570182652292192489131887765454428369773561031032339496150117983824817876690973241582115044876990711833217632834183340850456123648988545513130492031389572274056847339262556704499155297995044837179230120729638139387772675840851738237042280017426713609885695791633020287911776264695410771581928720625940796496087977281856772320382174818649722723722298646900367855108055222244548940833923871217486550925526097630474751026866760692104637150072404975104388531527602832377509906049966972560141021777365222571919787505641207338856692786681146233427724128834363150962062037297543417296466089889174187827574019856539504528882135957833761537622510807091626690294221619320953460444828505660287794966867092028476167230306853676174024731692742550192547202168388207244327074034429558779122685062167728862240126862103327734655899807396180167811653536453699591889105929481123290237312361955945964331902443352593428384818048414062477764855845959921073603390202176196414417035842231698382133697213517227090328153127502267475399855716906394269267149095277358657014608900332485392694547020271907848390480816178636318451986420294949611100464713026901651689752601676960697853712392558669433982294225603221147812079171044757982721107526996614438667448229324940988783801373392454051763140577403180388287924347546117302806745745618619355265887163555172218804799409376567080637201626935987018045981532354631011327630924256481448772020825923743788590289597478225998133731379399029729563649918123107562349409575848905231729904924856217772213359345420251778228832723416359929749994161714483085622991838125483929761551152128971639182092099565996221940975849012871882229013893067909680399331208323488249758421903666594703704106955920682495455597037655969385384673083471939695649987186112951432267420926583720122371461746725929405105685971611887467161796712530215251480487226335269447220499749966076862879401845747442747031253334716132773152997722516333688447131858997588404438055599616664349689065940445373724027829426670026349420541747083700467755247209168557575644847666052930148727325814241068376605267041181071595518029036396529573500099623256872036146388307704048201589124392203050278673567313178165233385810866218278039569012249689975039907477922779331199289587357988866626335872181315629116381399061479660582238202499220947463749186390334708579549245436826273567728742341131573008434556195902734940124209368576511152474212343019329113199111244622988075576810437002304810154431086354021220195682740535509997457203869562691624403751053960543882669550042385629614437851914893392982019722871260118647622748014288818337383763205956245359960184106870424756233619544553100831294335931810994310955761792823326169433626141752714883928777681624798771289886268884635932012494189467556197404856097339183476392551781761044273354206248119929810931443676989810705388806831184629379999292899615999869228388580270161896007620180268171009314345623435453297069676220199463684464869791908702263051073539508288808253410705930889761134872567545915392521900959363595868882637401486622503006805424240546438288734722499352782240618187482214932600890939685237373773633918621164804379011910986663747223142423585725344953794881468795817679820461326249505678903806794473031325668604759427143095988264923916348592361746179030440453931128186669808686562854831259681876867307366823823721976259214329968862854422713154705306282596005289138337875814023074106267333648881119689598890950264081623879644499462461299404328932372278886553746691916116209466707099809562433729882558064608891203108376744495873685271150107818960261778909448709272055248375494958501960148485175340215949153901044118426550132730964555481050976470378699107999187310872976784804133440739608833632333476135098230145489951600625026605877325561180554931908237001863157908432414108685151709040050723464667849947196135350142611372738700395392406658704643212008041955910769117855954161231792865688099181379325479932414873594139083504824469736384584960061308796933428682464559180702280296949278159740316758855949649582737523988722389642916256253360050293008640239276129644763885451284791215648772745580711136248835341809126349517097761029728246985214618116783042011451754672370391256125489615785740425643309980842514348878634283671482985309841028833703944341127535000617323130786965644605172642860395819762045692137179040145849342448134726750569264978087683625843172121843706917727400860232777917402537087380076347670047582795365536367229368374066657876354744747021699083467439074463565019959527186257053170267566019185871729706284661124457337724274704985337581889933527656802419331310431540030841259879389647267917107595280421788257394838894836847650576996038219223136771550005869404682564707726791025351461251686379287178857401963211304393363531162454694992233435214792410624827931135386253749502609318808149933189596271198000975915033160584552004421686848898339465191828547736615568243375963230972307973060894849181258377486239474874485173427133816535047199705664080879044900098472348430440167475294505665348938753888763211346464433037079827045102652970545355437746591546696891700003415806882149816825502605759040787263040399170128379760824994222461213446944983198889013420531312343804319211317812925474536805690694656506518304115518502642707745742833484763902353115805207921156345313110432030022395874882450718125109214133958647641508139519820111414065543717858736106679084329815996304162137964851234404688628608421458215373224254224298249251914285362044762899898931699147082514986956130834846281581049489238575586458614649212604522227488738231037798712159850820809672742509334779809441217993202452229895973967208457221631023185043323110146559655666576067617935835426612263797270861017180672816244626540762526437529950441008642134015605739782669373936081947788367098167856318794153606010005611541271086861319842345436072950772289133972941211729749507869892660858100967794776917743955820420562421757441394793289715704650093832983645670179225231078366453665179539377005482582722985695563616333734630309126757773299634017847225793230727570968620479445609132149314179175462049287866591399938506463350555914600635888372971568235204928648274216984761494259090478983273024325973913553899775764804315519650266773241541251587406026447230452688812941091167258664111255032876572156752054114770625025535179488267531162841678796700951903178018633233580094233089420494753120902339819086202485667812859930325382845487437555886504634328338296503959722084711770128261051547202846841680699574051808922244608063878817294525156789791228478680043707506522896680843438239669662752525824463022094280089209679723325351134066995578720484270212554394164858596474747502277267809156758441664515847236037249921514027850613345757361712296182320667140501560481509793489205379769931498660962381264285612223805397230671556775647888530460959503526786966513967536273582917183790416411238099338245987962896989712485692231090630377479796354192486950004555209488042535177719966297029507957541551972114433172575094920587864881212399659594673805715058271720107840593419092060266532619721250196553103303807427120447727248389287329926390807619424733265593618265892197657260040285199800726329760738594723903407857295856197658456857073307691161740630753110373092120904023203526356364158534160673103909447421980798755409147113206124996507478874857678397687686125129978040412189582515924973649350543371431216799373200813667612159341368347941121793796623695351211196070879407548693147351613868598516780954881575809657499815285392044656305417486501290497183444972376779112191113862090764080355979140409064282836243384319512088034192422478061912984541527096129856239633260280105591873260268234910992016029259384804820784201169758115575907115372417703453735005614730604650749642643961783420602789897983133338948941010962529843202611812892087296881794594669346747116940814614966369635635532299827485926289399658640085481731115069112872915303114304947745662064523737147452121596098937281482806415728996266683674581858419726341523292351794914750189223808645766311985367305467182280143915903317583051503366907555205716066081084509842054961242987626505726634017742667655855093230253430527966134198155563369194862130782133414854674155139409658927004033340045643513905988557298555898433470802245643499064512235972947117690662799227984700571543969027339877566645224439507703371500919471942526504862467240093079740130649336477039052255650800342510741019867684593599482689321804155016320482537922285352892850036740401431618548215567495783976410892752922936463789706538706432007794586067978994386320211386728930922439854690187104302964609198014429719405219322293307923411795790170061585965984578950084354369833059374711287379254264717173174220121965825278499272386209287661392889835988209013573298480144354616284310258669994018301571316546953076174383830599360421233106487358029187698900297495933940155517962833233673236892017793254915674135920470645327579629488642683766227433092078639897206385783792082837760219772506509164849258173815215761321837204229466117945797113531282941497579499730937940728505525538512440278523615046839104710463388121089848707335726737590940598544832740413253543651530655482597065550568427833403557236772718654987392132697596553942181440645899467522300086586764256878227342619658824919700005457078033672595945652578568717451526265877499993382296331520230285488745616316613128989801277200569412135566384058791628242392984077135572189708468562610589426360206778060989608860944680634216572806218130002800270373282806804703519959795356896321802259229564944444805725438807485591444241089112357208016697899493373964087241457420995298061702225485323622199789286799537023889710416766028735800043879463001285396651996841786700244588543567950867608527307245812329765488750290374731598448022975650966287850909928801886274845644664641102815143765086040537083963557646588796890286377408104712079952764739720496387360161135677123831820225148657680364572870175261630937550795280145911678220207805069250003443639504403768593444549976242904404961210945209734962353605793151773234817441259592124584892116010271557708497734036641874116559595129507174480718102831385583751983502233972409996989889686617394626224950319932127054063924661073058831245736235734160959858108860775586548648312323560819254776342050829139063428856447931384133709888379213127401485487909376682228925555010147011350827831241030793709253392504189697949761423234458602813669742485334233173145310918712050273979001766538894540566408100020653484056080822983789951235538169955219413726188245195427336267152794276810022741145218227702731715969162787900698296775306153312152214082353655734541215452278904954221072000752114010405141942047796146277420000723712184242043960922713624951838001094411573124976881534273237335667286559115113589619757306730330763357564657183821866883916945535049248246808524377792768535140244046332865989502311754186148498580776852438494983264155016796934575841963590913313279738896594895219527053049221326031082802774466217658247564561547599103389783214573041921454678032369587132791378045184512854684045030896478041908898981499238000819383253744784706774260823599500903849105669917194826209753005994216015607715748808501555579255624176394225084610520526904782466688736389648613085408294846073184441408597401459989534212719348385617325064708341953894902226032713008661057831067862264105553978794327126417975279738726020579658306674041476219713881363474049057974603627132037720576787616902837903357098086949180730130382718160247997888163774126527035711318185705258962278919276783919507138613827012136322332429212319983907368297363039580595730833705045243542011127013246939079146731912862038725811517821627414367805696577242564322711453884669358839760937223709389884110760959462344518229557711288211472599101818683864031558767828241592043738968435959140459243069429624740703479222886211685130642403713849369914114746254205879156041235746968690269977117787705079974682312116024150453329831834628880517067166176270510663813145354218378385857873418233962592450057572314144534606221417530498314845784865429245625519747165983140892836654830677752273249760709897512040246933665164835364906003257185929121385251958798625092088013206106471621552531486185321380234205264458453162935802014817229771784279893802936590788578373560610155254617193752513813691451990264149651892787165441453941433626296661519885964357146111533413572034735590691153811089665938934495482561549398057864344325895830370329248290583300853186690445429510816762305438421766458044541749812482382425454884245895909117481847458978862700041069418095109321085880231005096973689244272915397467816922514861697090643523447339635705220274593932714507184131786336531930398189111364309916069086450054081090094415749485577737249620462001081506567166147336361412769840240030828013057869607232801208026910625885574501170657015708108534476185741512821224545488713089861510922581519829296038326938824912144218474735374569134375131807381210171358984401999993662979731828600396283446183465959459569250160493929472232952048096286569109840110830064105916666388966033674676242224645792024249397961155154889321704677306721324992526557613724821279694878872601504799258411572301730360684639561461998856853404305512183685920505376912445286438707068172836120496419356615106332896024092709044823987666643507700585505458741476835408768919636728073720154327684323283990210572886572214090382937271789763122455246973561023914052760983231484197560661163521542945419572572851974046728558394834944110648908818188586854794845148881686562601267324623380680885589004067749153598972881070493252806836082808933652504219296857420497528886876083030508964116454848384893786488387436289625286517406940685647917681408454816254069401780234541776305760575989324780010545422537997418314831138367990563889486566154436718234063595925545614028456276514030071517343677666282394585458511257077217942883126597906980868940130550107295624881653112578469341042728253002751797364155700528120321609454793424126249802370820088641563386984628646430877298686948450391321067068254060134358154208514128009121934315128692278912058827717215738077377616394792998275882539959033031337737894863928075860181531458360910099900877734969112666681007524966332131909651461744529590510649666401563815442742504254939918948358708228525019583058773753070988508220579516268007859609205536493461032801397087882199450285716877169659225409037586509324093494062798804412036740163017025762190487708133162927046473042462128849336802005804961386592578854672276284542012629393262972841777852569873566913363471060613192734401378277254657561067606748622119218186310874808896431528592087276129951975872025881563207528741761791865307343503978731392448726446492820931043568968962227570499118690965837980974400864201847296938212622227915916137395913018813161713367762962031854200226819978079445661247760622928457750484446399896368046213994954128095705077189014258055958198759823189090916397536456953812795621278262281062640087516505844273079699304584315336495636272453664683594165731197452806648356030648638266353929985334147294738619246062075709782223554049458439527811659674236494710110333089781918970307652749849886475123928140220860011878546046412014913935973337346089879652924685579085497395251122242382600179076796239537443954690206931453045633009260626725204601114742398507940137568952587244210677003978714751816585888242937643738146687201696006161313395881344218914174143255656450376494837001693594393895591577656115548582612459793073549817458833156734036712910199349198077142321366339840133662870171777096092582058939747884176255396913826129482434723589198920012156544800396620214263373675976993917712232919606432887158080166091374467247295215819691975550812822140214720817212225391948393286965334157076660785472273708958555139649378635159331157927746637562193883555687566371652236369604431342459642701884656003765974800043684732131745450559947540616243779580553734932050333573924087713184940770683194404107380829937653118103405697798775938553661730555971658050677754313403497730649932215881130406548642960632384590460914194828230710063485595058098953529652746736197948512687693080258505481225185022311988041212412554403569540351103802702580572330961748712338284365392846866908521601006555122148633405536436899291377645790340171621361367776164637114826010613677515073323731149997720847485232833232284764021908210628232414036723714545553141751883604987020108489800552003349148437071594675598915738411714831946037959575687242837999490842197035300853074097601954655328122217974114192178855448860043559826329964582357766797076664024461618242672005746181449980851276709222773297176898173072372427822847714066288700695563681847258858028870673766038064899313509260411372636752516487868407430168304712032766013481546736794679507747914759153219243748222065393701142107139152995892678011864964976666448426955352968847834692732870417732838711018674073740974299469790118713688278782582502062887149733289291177648976377514971427410375720216903854696748463633742444433981676398023192778052665408353785720095132790337588624572743022763907466715324882241282320006723704699764402513257076667845758490574337529239676955222861245716606078713105103763656563849023233491360131953034149183795715617978052950253852756863475198099702358857262904812844837580761717345067140276517464261716122420710443200343738124737037778189964659970434212882541643159207940764919239570725397398545379190042895092884187168816551576651627131715079446375637437465615301524573593097390405525179075044731588960805728193069229195006310764700942559051433216029959508816068875738658419557176653961405182393777789164260610627746579222238436144263043990545123553002501163210221290258059206036307908636158874874019263144644218937299455664084593306516517088108354774466574704774653427707221077259068044084076572098254554408561585979401219461912438461542953126923475544453601833442547947387522701702522671605136018218498353838378373065473114978574441624968657311908301368567028713151415660820191203096493366703642415367552301347247885238608085856391417717347131160141001983114898955741279525539956346101186164990702388746726230915680608494473214615719684873517753671052034197009617220247009789882935666708363810298129970509411410103446418803295696098014334778370706292412070724749587765858875510948117562902274813806361927797908051141561414137664145617322071766709295634683825247753201536064157990011880865435659245487690423348618913661356406354090048436879089211703443922205585072361234586115455692393663021182519118076966960662558494976116687721210773409955264564369522760530775875831422445540414969044066111504163376235224240838598599332855291612977306608275023023596872499785556608879889511268693783565128897843888295628331399456471831888727432775557715144676288164664547626108492001966493927701159644769771111208711983896872143065813656296319738226625414368120348931108436075575905478522994632990081282198822395970822115134566794687164340698774221038295290967059618836397204447355961854212423829980830717928856001988819833727005586673602300241943826091124587199335119793367355370681536246765568472076344991521206456026625191329270954652799715504932671807902075533583698823565188779408632846088331044063240224998446543100601961011139945258127483918087297635763657144545843669016872130706694582514229692023085822524163802489223889195722142244201581771320559922228092819537967633396977206707368637292070412871591399958997752007104755195283793567189492359602013506890684957554703649061862213525035565854714153043387247065763971579120148252410439577365541245664019390186191846213143207661229806774112563299908938968167689430048259994539558571705796050367820088464434514375550254346811089051362861856529072523090315962544968613524932678862300084296457189665045389820327067684250063036980432497755219520542050602014943145679274469596131887396001866067305231696442127645366615379097349228151229651833743392265791358628650727466424767892497397660746046900324563875169369763396520762056998273670608978092242213913312387324283153072413439790942699023688338358002957802539120605695061043697551425617077859673135668827653005619275787792046906232600944687770566830516990603542590823791358723334243224372942020645435599991448392971001890224206839113054895470280140261276757499671120190429816731801662104360268872620360058631509231703527959961499421520118822341603445878873224176346748507646461925726083875262057274516099031717840990873625795374307275455020126072278562305240532752046284146323144128042071795592567818425933358662383770206758621313611476018339898314311903377599371030845023488862468082747984916480348264888208237316837705718621267117750741922840510330118887890510339594081226073464943429776172755001796910645658875725034402844011177638172349949062363357863236520949992066679990318572989473838717720071139859837267720403829151735392073189655864712401342160754537386381429708512413799578104673377938462030252395011587694527383485316256957855027348398824561626754758737518807844746803460294853227765810786618026166948128241617410651252073326233031441123080036182849045187977401819418062825449173979357302110821780158643249556310724886866976763748195343660978115955332084323843181678887016557762269052041455892130602773072942005701481319304840170968305267025741703888766654887838518256738760627247061435994044251212126124234854708639810953224923513222273757011221601467787248664908272014711843709462671830222000822453800079627049404439060564319618140366886292786948721920049770292412090757456633541315579194626027618647389129258002431017411226770441526572053312210468126209074593408109189030187033489889990962791561666025886150506290840611048456472761847085702631432404623901244349203139803591480786236313733521973262556619057289903465579175471437876175422641311877631946022631758012564295552729043301656115360988052104608689895837396805127143448070402269288318654838209015044680101148345817914654244758536549799131410195219318141482645046981635266210506589235497852614013167434450562302322362154529249114644405373481172661559979980236288801396179656725806827677326221269353857061163910270776863639975536256332281281741368752116229117875609907152186508579216409614815419897548997562242726392331825041918817160699229009763010914241622419785927389510368450643161137943771584125855958559515543583077932093794030216799342259382107885055892026142503443197449714096050727770760764985965850216466672553749591543930799756577378005205310250430828803072040226457805012461806995353881636051652192852573465249091613703333494953755438648496967284951072044272946678521757720862547541464183755867382551460404301408517042695832621489449520124068436554403934475520661421721646360138837895133177067272953944949926757028344377181876155510320827739819692972806210675374844652252263198056367090768228610319755734064071865960292114259352437477493851185370206463402545850953377959933664371950136280157831127813992768572857676977208370395274200064893615286614039347290250103568853716134185547669360014518354954236750450226506214134033300631474600176592387620915440744571182715913000440757347166899260696523679524055616246662457972610750331034173665570717046456479095351550096019643892538822189610488992468710006737121489655991025966857725834834458141537265782510754797059905352438765573255297450780314035493744647914837755176059507024697136872145118096043401003736507074438555445185013427529163156161226677410979191362182935820851295281536581066103830827387340753184076643708951151453664056410541994755300166957017418435251294324601746740346928291335013752185727446706990223432501259606891118736724003098720402065094971615073937959444260091780571130461784884270609187003013563367662897581219549642060338201372564026246231950885375802032556292165049178168503852297223046926518296954909338422787065030233456600769159740253913669012234737661586997177863202844302069325027669377238991441546374234155429782622948759650848480737493160989489982744370576035281487580510652528175228603568711373445391061261715732299443314602678361464826129115060947304081715039753224002033946047465795998221720299386966593593129282494644796443646315817797797279195815942543853492568148081094035861330792976831187939293472531606269059760488677525369314540789040292917254760648946719449066535540837839456406807791920163406256546467200868828641248989575459306948271554938183902735220981748972152268874254037646776267502777094976298342024054123872537723461729241330351745199130441934534500103094092536368955814130108349654903520369222048472251702654684593241727297459862352627227382345097972401927017266068114505440594080486391234666568964311043856871501948782863719900707749208213167123129944638980822075126818907339774514734735247314348711448734196468270035599134022658852492009133054241137042858967883094828806424944705726182116890346859338197274035521753024697521657016334726963294743914512639746018266839173838170766575806237444793151880769001434577570861816547842507120953242929872472006736483694118696123330410737559905838961446369383993955006962933208570544778430152118904280173470413184682686854442608047290148592180431712549785014123870427756798716606714296966255709528737540795917651392284120226748440633779609923651957032027740843973140935960440251118794854650200099290592974895369823312136165738841023596803699028106899511389306382218706386675820813307992854271847424839654082420067189802597511809873614137077680989717454989194780897254783947612255048173519965018894685765050908201800942671453534843292376166741240027791837952948900314858578229305069715580859233125311614797089660309137772940292578109193312475656286623081481506278807343018550775503620937899919871241715612512400494697798872074912996180371111823730564623956487736479561101409471027177216763705534851988173799966083032592033755158829680250672188918103077168063778340922408735622307303217890264074452675472928323376676291889056551566337638165557613411003833896048724238613937011857340226646079949829303632956181590375619288138286413340158220157508726350063588053531688877788853972217907482219812080774150590824965965580263381343584405784510093951587044707303058099761257392975233888013701688530745337358121065278123194732826857575827987842153655200422979059143293646245870799458233125262712234358800849438794599154197439272758049996207184196791051104626771553763201479817862389833627512168825004541030072284171211948815337068226011169733540604490017657859236792284709668728674647925347728208089853591744269148139557183589124212227504003019864917132939662564284035792337620096647313517114068072955064953005792804513547740865682699457340626856880342960026728531303682144386183197769743327619845806345413564263837705866226650523811028523060026668271140474637941939646083394743041496135309549264461480864079561888762117337952889566759593073557847727577007926026678061981085682783522123397737685773730250361674375176385020116223019667286032889065151475149835939844961432021125003133384700359372107312420702007218613761593531135631825934001208644392968791636496137147992848246461737183338577659824002244044928426162987158345093162006424599276419191993497695471088089842548187436527772058366064628096136551890771643739598230413478004340093710038414488800363718973045055794337120898819417622554902355190794979238571095132420619348948574237905488110693620475953472575876521942605926557272468104711668063663281264553889548026671160973556619990797934984209114493920482369648929544869769539927203886896123784397197112978694579399779242001661353447331471933212015011008038635162139134138447069476043799256916454043482109424631843785802698481979538442021108107776407968960052914717737517243299312089976942922932937015926595640359314096538868683372024290407855036441659371976961257230521059861648262780590436915172625396000304256624244002811308999835866739494484852095735567665397296653571970951956595320221846817488819180490285417036292556092241657593050903236472949196919474346046400836953874739431858646407071603641974806605683948837307534164515282930525391323218517630272895360202690629671274141390373046153690033207855853831849064664730438551837486592908064998391366495542082722798326004815672393598187334507421583707224266931411086738379500974684001932838556295083252793871072984230501069789792337450285620436681713072200429518754152892300039689559044475353753141291771379713326844403550796880544292237664925328263731467933243606439336956855834058012019719556384932056105408055220170471498952318359908589049312155521643993176921037968987581395814317450821937224534864594692182606349144584096248849731950665635139624573620131673144667539488283000767546074317107928447237945017707878581549517823516868717454110870871357393718826553744226166304398046827188118333412435367968863306321660747218343158085069032486291380850206261881731975198774230769292806106613004261059780026378174638705526255262898454405742002902349316369720264998094615031051075248490000726246441229542338598677142608925507821715514584481823732074310282658091392602787828944857662103685514129457295969618906307544140052284687959392299023212885725141444801182488832579257738838881472047654368968520724540073839740245919949537010224325682337649036222310204374547264314980474404048744752404911350536502838806443638612578253791421381098681150880604901506443639894061448281348433357764260994479373902084036106623683894512321823175896575407799837407583985638729146845620705805098013913071761905978637291964087718968328508566605171424159880525587346343503284927421768117426917544345990877386466264546088400996813890366420837154827436754249690243710379565767326197808638507834650785276640474731200044367618316856723860313351301771933994912907316737676522614453984436157963916558988074101102264331568735473322605572323767693937815255587758404000814794969454416847805100960971430492531020401234924569481805870334215804733086028663415917728397840027049450202144037840374156353180420675795727343847213702303386413471979432689970597688011865750851388199460440244867270513070942123760800776692477585029850717434246638674466497891348160740300213352179358255409411580969259624947229433264039926469262097690991647155311933056376895392585840498693976672978606159787166348360787831455338431195713443846615924528196452221443582878533517527271880431158726059680141451898034475055007859883418859597955833825782492487507742295151115684945746687890810163820387425050829614634605278622423355672239003811266282989763149716858202625425765977419262294909054854593453542058156857452704438122967760996612890676279631849958784645559007770658344558212065214784553798653662820078581580273011121781627883938518825343509430981210339916340701655008870229152667203732599368024107770191651769550198247615340443588970272694261924679583878681592991320088004334412277504260562296831549138351171199822036708141194958863258388270247925145232749412826253334536802114741033191716317612994718171006799179823515334859457054986024075256647219010508162341310362164996601914127144710395327932133827407232319662169355189894079415484314635720509764934441136185610071879372641727696299479314541595447321057474375910130595898416478090660034646950967165181868885514607886533448150278668009491430750414133212582886499733269335015685879281540762205043035396773236326360111691696629060021471425309615246331726742103290382524685174652708976121607743596556095151942548228948761733144982364690888957587088109581118280241394232738514549440094235141599707861069255349854605925326148238392745113921146846264496239916585614118405146847823030266180970571864490733106110251477022872356664583782471470051715245109955034637011777971223217519644304464989117451129472414846587981553727504984011857751333147384452343014900167877117274866380851668350571712312965283642035183436453163168868864433862014005067369192173375468306796328722832961745527784794892927310109364189743557327710239940240632659146446190692792510097909678761342089371918597569828222802778314845565636703117271499695651325748893547834576595142529263274624297058233194036688989118936824873338911237437675233745878853126632338458735036839012217818331805264099667167608150558450544104227977578518273950834399406408077895899996096409281944140546682637536190090277274547527048273718476519408709201677751346736206416404902184936971197707852036126705230711763657192346520391668076427883071291113272747555638500516163594185059342991526204728408129022554266282942264862340102770246404494145612277402631685513294197612849295445312312786460782043939851002878867624797028537673765416909155430173463434766567962104852030128379380555393511141715528872324259358724247554176641033216739658887479697358250714504368521009915438307955469912605175709594959374140387267305270501753476321954693426602886795981969838639533693993118399555767540673077937943408380033434183642880858801823694064319164016676302177787886231189692502968735842131666978104324776816519418531804187260194628393164182434077333156092673111469455004885823025434761222074597284312437375674811837383774155703637636093054133741826906278650246054152443471949096681213236582948066730498861657540247744824958553184548218432915691192397097923588042748113900339623681332890296843516531990272572131665385908193729285980872319089687821766487468618502311682665046238927071847246461452196603931657590554933779386780758849852953443930492058920920624456416574833575609974823307500144574499648028760327342869125795952149263948265710250802682305383814689734414391372137147349765152369062877666335584559854820537705063636940304203488788093980163831555284189975183670810160310250615937012516103949632195597770974288753535703384347600888222937935009759606078333206242024437322528578474363000143169786880696851390303309928519040381676545564661533210468359922350705443685693457004354526689565822410261791458390886108780094935272154869215977002478450026431235763789623807856833720547746916065902952431027761407931979196774480072439750153942327781097828558369008195180039842991645432033514047151405010798567948912510827708743387532094390591006285668964572223189477336964047726606096164978389786324417229650949263673977886409696948440108178387868066270118566013114502396880072530019564102859456120170516863466901209696399993835091370088942754146657901126880051287070094298821982663702371598390629870749846448221043957572995721381627381315680626906629937565725679229650083329480890427285290905955320136369487027383946906281159094217217854620237692717538514757070920379918153139875877624501891587542747514316602865429515449862299786252991032279930693274279379410685648697942307938043440461847419612818302514646116823993719365542927502981036425226347671275973672344914531864317518160689590858760821474125434304396879399172905620068002401671194433569556607562370327990376630131382538438054256831046508870904026336001742539837339810198741545041546044651564901728700613568783521710919568915080114220237231563629477376673963420643113053944863459240196083918356136263731738795838527269455559572910577957373066408422881236136242958923227784988017775037447175940450917577445343911446034534563583955040151124033931711112537287621958372408939428098919276177398849540198712973297333405757580436782148718114523660418493997098521466670627163557789105085717803936669216229325381572749351916023168453211098148694933262405500189242927095651472545193763768578013693094014555376919734686032627926583396433882826908326428983226889358763545357350709275601975978039947469584305417206557267702281967068575229242983686966862351559945161710198839177262306500141869540877079189666689853605150357888129660870966308027542588860930697564473218456750936641398846280719358318398926322664511838693479777451679629580848329075461173478710735892027360532207359953111898754642922313200287149917414100769594900299866058732550455061746995235119102000185731294473659107447273041093672679057307590435084007789110659070587551672880248237761511686979051000628726092156868607601396063639255117615199425813545836312070717123768206560627245378911796233514490070518328573256847277833521530726871373433056987027100141974354859834050701086042135601294752757406386125814991537504847766115847066220617715558650795254596526139055234192043860573085855395342734654174100384500746427782567798960089047642033268895873091614598211416158943831950698975661483723778629407236215695242226823369477600657810499451263663133862799890945921873354240970932613824438625336926639774102506973679758256342064265810563121139823152535305737421056335878175545106753399853671085590881911587684779729954491289864360329692518310330180343442147909778576088059644616003362165093819814476319189672637442491275190198311861622092452016816346617484697113717215407978286011068772817758695587516217532417217950092080313795931505325642698500355282687926596336790672561427772805214439815608057387524209705417003957992609286665520595678591785063314067979307606819343043297441880718771957446406147986099166483891872003295737295292904033801318386631402826522984908490117689183292501690660155581340335329690796159849098975684231955576870990862005233705237425562489234507796889672480983215956253278752480522058508998744733538111672844679307588988341794011995533583619629082841623023496823066217472571456252128317653106537629642846094713011442601386943427494953859524198304804795559480971709305683148147458492918435415096046902409700816625184815645415124774141349358737845322258839482233529401567470796226730631666993965433327179263100129671473224089019155279341902929078973028492738577868559789510149514820525974182436536377665792727599759108960014224712221005325365427995236775908599625437870421219678448485320151921046265484588722532268207848598716836001575374911985771730944988209739873230767756583032741938960539072657353109064870186317009016533237198924559845355419251735482990353154559651119503338424393938077113323996205172477948649150125522913285475735970736542049145425364266044166802826434783983557111872032360881343415767011913182414436880404458135321705605355024881318737766505825512756663900100264016439273824887512916023512357954465763529266245038997810146189334653084528395437933674769754852339479520274245518301713021933800282881218984701434116853633287477938742668903886651122680848630255248214657030280399773234780860926607059500235970276990300429353843768550013199872346784591272185060453693347257050649858526607110590344670211740980592448213594350852675928331481810553676916103385321060332852294145678803312617088917464113598843933122690615846549553689858482636986419487434374382917454306444416326004492457754285467631780869426768632991290297025956963163069700848126853838226722023311634875057412009792089729074641280746866269855183614050006627536318536408413192585519480843194629138111759206743060948428630838848579948652993038643583959840113189416954154247974956460920923751195160574691799626066114233276428681422797098427184354313052649073926904672988967508054950570263298028466541713942604994189847282997201968978570496279487408043750432657279977810987969983643727499560462552166777780900785263220784299505654441901785892417709107287286243584107269265246357206665100777776524835574186501028986988082713243323217976000138165935277594550337277674495796701674769418663420315680097392124957962802431631897680473441239595531383143973795103045916151009498109938806386008189845921528257607859779362654025767300200889576726423533396274237313556448296283524230972369153542807585969544113524486320282119745029204256231763772792167021275884503779865378866080953783644452189639340738493204879970722985270872308456466544911860032044352446924551559129871512176687487123842462696214967379325445209702419040570269044206540758769137822438445316308315495434517727906230680957240651852532008592173932009430334025198894185427118546100989627823468316171711163626349870156412816689609236118647231613445625405859797232957696821637868040824809612758771518120925636546813175877129093529650172717848870087254157195719665431277792924014765726588609818687104401678620594349054962614585721948372652772598275023358818540946931793538017452295363877991502848162413869462560312049700152963749796563997634689451188304849899705251576918761225200947782349189336792227759460501182434571370372820035101590054853899386716365691515472894391117459796151621048745488268791224232988928759150651326415192705142586646058223376841207012200329853729604828134076144520316126507710090933764224374863026118966474836309713343372405427506083498311289095362557330470830000828325300228907505231218407564089001358299948749453246700504874545887467522208989801710151552847674974034288179796009352874652822129101047235134339567134658329251607594296316854296908272901275426724150406815676538624340503402170837424126283759291453224472704933686119286305773095213543122438274964151234518756610198547862133637299881624787162500415222302004386268644072384620543394934984773686270704831805868538099077458959268743975145077143303754174722532787426335386670786034484993136991516477050701931197404366378027690895002923972928578749095510623659470425136499588382817445336173538710764890371305741010955180465226945697797939396554113433677663141140554326349966411690131212573651232449567609954391661320646087035826636007236864630671362677426570060507701770838244287723518215167792008783293038735716128266266943721392229532665975357383743756414848809504657604367471141204853706936931070957007183070460040845082672465633644255530219752256817388128107687782465097842548012469166208043366865663833304364155888629458401904210976779834822496504433476572626583351926094866574646010110266686642410769914935492639595359228163577378651086815785823704377002845415827213128976078626600764117186963146177333241213881309881222063342010916188579177483564609708704769488173804374819254328979363426173221819835169736178632684162851548756914955802070814762943645059596054275930510251100889268918749084183331870198278521071659135174019727491155801814453599246103163080876709760621995440019258120146846172617687393153171821353371555292691536594595158595234769881387139590412342151860523500632680390810547935751488127992722532243858087660882971466108892919212413955772217877079721377237511944820017910912823944662497236945085432899318860536891905667175721308541025148128219525510721589044322323723625261074234260030935295165359133927427319994542921701554230575926458819307605029139440198094954900052582357076806729593597547315828819603058672592976996525357106161841851220220529202093699969917719212665471523351549443440619826268390236126440842021239304384108076837965616839476540843143184554439561669572382695844811547068174125877306947568307316376495795338322784257166642967578305337380261583137192906384964856188486407766963543642544799514747601049995246314632484254659191312519875598607615641364340027151509599707319418623427735734076358996713662276357617733811103191432566590000282363592204377168006758637094438907521461357700286645875407533903557792153899358349846191529858227179909785953749645862804349257812292147498948000575270859551062108014225286456962130886148426313027609098573474612702206966193112425697449698999686303429556861655282897504111090964876575460714080860775013099984805087212547519503483108691161413209839526819900952725780550022693538902218813721206522154398875290905498539113819537325599705325194858800953404952835059329200813428101943177834120784593388691794171695227779481383985133031689933784543452246070915513019794655909539282944273486770588249245938269535861343889907006906269503774181178317102239124459924945689215678234710438535149126593474956064515293484475707689770819184884896566303134235141375425642181186755638245276595716724889615964155490662661978184965268050136049819275372326913799893040439940510675039568745054739621977506808031471797258701889940711164843389338749380882142476508790124314705257128298253933846696352813736279731152075066445050342047810947202680004984257509933419769999294576878180858195658391075926948408826005889101364841040939769935878485261816922480236144660919646126278084593943246080116037500589875126862034655143132840853261450590896255936210397907926586339620142658129861563683777455469158615836178136365892798718516111319092385718079008932234394661361370552549093617449039386860803043834744114633655531344139819744694674357160710862013471687665249538236107980629471011973988657430937801291636236935490474767467530858427761291112298895001382631115570860141964077850125006679533876859604055092530083788372764812293653537360037527332756318016246570233486821682363670045014238273579259927993364847306085021724706077897035583723973695124707272507798546971720662708347655318272784969541173569341083855277356084699642873860840902182806428014414629862463149001646660586726595304115745295552000168367755485766773414191567895926401982572842353512900273800428437657649870492351509596605522822510609254555812850486296268540233388769566503514961842511830832413586901324104393264835543544028997318402322547272358178409688930857106319275999730143108472750290738566524727717860524869035962491114164748251890833165511272898944016215690535147412795579074254301082458619827727742555600255122688495535168177645512902655493743144694429113765606430512280251897456363305549058349802059909907893076533619405660536697546161351592318195458507145086716484833506356582848007434911756713792644832321124461779894774966872501057766861837114170276307220338484845383120125955315188957072260367579377903248080836081453953886053810064153615759363574330412497575320635769379677991940795737940649173155240097912270360976200447448342697089736580838483651459325556119383804006397404525546905143503077853215123435794429042551504623531218777063060400062148420945335611588482750961190727149056421535076873153590290138834823836781093954681554437850651881120133294392310139273550505779291788937412307011822629325509207757722093393994183971825710722555707855314791737149785243369862263350688720383141393136788975566534867537194117590145849257840558531211097384424625431902047231884137287832552104231276217364374251078080763546669060251067452789919727262248748913107780380031289467071109476274500522962070436286556211298246101326333813800076538123648897752278728829469848733624869545084698866430186802933363344107069205579165917911385025062817243236195997325246982628103620324035182055164741636742856683867037745507678606126692821229027557854223109595348691153812455501267685157307406891103813417483675023279290346226248905272312021256525312674710317421637317631659074599430069634743475826281331207714958086737062020798898775259227096834238607719725623388558904424353322655581446602030823401996163305517816661242089357136105409477243278554353410718684754710525743449271950386563728060723475962524994535904456197261076658478896440088085603812614331714454695142302065087171391057627181302844596070243834949601170459156525969204396537259972912912312047989215811323828586373442497086011259106504204163390495732691993638368219066549117003254871556713545884767348651596161883921923437513169970622284218673613281445449537740256455801946055111010355381826170546865252120335723085461819160943464952085723772738222433932252333938381171984926103849533549758060878508741450315566435496931308702601057377576256584586660850152127610498104522584326804314071002026275680999307859586877024286726263878894305456311212561961073294215723834130751923145510465281902861433219678268214244089642432084724621490987916169941178550072570238800293305646582241014644528076060153115856847908315291268802230576586286909589407718674310676529073654494270256681994167732767895181246120231774998113810712382689518083473186820896247681771346221209108802072070543016755584222179956414165926338426656880681629845950779063585271260197718064886916370279103175297414460865364305604501701992887717279881533900572892474626197300859458281201832295682056462418396985792725556722846797798436983226653528427173977947694559748529387286351127284846007514594321506930465148272766079012424819698047665872355345115950460720056677643658705262381313194637753970077958811084940809001030627602122948022613545285925037699084353591333664941153987798071865407154671899437587845932034042313906046728803896733235087976329752492002954836256761267760147472295493328868436826421697189972124830621711258533668366782174394944503480156584554474166172945659667199968702532843121745312924743669731761113923439436459620322877288310648615533766692137757072348969433032815937687987924476300425154166524956389751251656517495426547055184015877479636362690950918644520709501549846307448023721413254698991155564865101332442698226753311149731084106177577026800690140129495666922023942032947247101718898342278890913462745597199697859024800682766471828837162352328490193022043310530555749694924776782101649227749886168829388028451647807120290203236448039969941310673135020836158928829211655876868716707706750645523126970226753108283290327900122385689611098327057610590535111494098998376653681804788831587624961799913594933769260548861832659548941911279188820037886980940836717491793149551160513568527405197927075598869650383148584009283909000216055861126071461037381238377959487870676991517835945021462066227000713175431861585582736062142130650615583035114336459938907572798779601599419346917818203107591609416655301601933424567836193489160923631711015348617311277773197095234718263417664180859604794712770576231606871347084649546664915391829968450600960554016244150689460257476752374729551672966100267353772552914435194453967573098492595756714624567448932173207111795563358346045707409655191051693235819320079611187741131013943507778916639018387277717886192893437405340453948857607688218537638935729034674834156195946212639249459504545943514204585582233161234585251695884990764745076605611017694227530421578820968414387127259655002184645275168067135988011946738341036883576935251955171212576732800926031872386754959205122448787437749251088831412503035861533532055996659175784005464635942225780274065757373390870592593351813640660021293104285360167523424155008334037894258465223438910065639858496092501079984140476186180084385229533885683885809255877075042203132581554344217726725191255871176134565806488809692454297004882399380354252670931209212876701020783834241398862552472887614545412131625304829364361256727646794970171526537653096308819570979001210130443711603039131459309812209280813348663385392971948134649070827721815828330424280882439255479315324278873599651633678568212612793167194507168388194544315849454816278105121901617883237510180374546863471588826882020854301661633473598883923107291952731292509367492060937022939971776902503633031155268725034122758012838314346356220464637574959935973865885210241931546057754822221835879110171369927166489403185777909296640962311841265553960921857783539679553074867503413376178214193554211679660016140570686787861536363494959683949690564531327101898098151183498056801615964136543480190491649339716283415856319774498900441712720922182519004222479304590109584071177194597141073974634080418276241615663186158564912146863121836316249034915593927127399253237098582053975454828140862416263104489964331459821267037175724421939931392678913126766912993914063884898508978381276276434730313300893463954074987548639141588500859855408428029053375003295574991854340993190719164374724469870631668310424838677001734969293287766484491577794286293287877476841027513950712773207559401766965844544487189478360425649495940605264865733544277008634155046397994767227653561656223446918923971679619353423182699957394320922253490474354594012628406411740809427938335125035423740588945417729549267140633363003304182263324024161965580631312077813049335256674056657880875810004902169664307641291534479172142686891078129261307973872758401097442801718804820498580446924945551610308067036525774834335266843305156109626775725167405531130758553077186322519626262676170523491403278923726671779144016914318239435080513778448669858110974648118046813622873681352095193295897823626360982307885868516917522624664590081817364246262501599787744413329942536479139485419410462818208979902831444669658731922328834743379057011783099556728950206840208073730262253000613481494533443421787552963772330622675158663178563786972517220852339498214257651272305955173326420056790696801909843472399402607883552413309041408257520148973745779169626184128067900843458881421335907100341393152567669235306222292236696235193141511668697861739465816405345691405023388139924815927903949495843698897548116540926788068550269787372265281238354967784441816944521267540888244697531394302612369539489551521485803840187658166759432337763665576537818590245757571518145162807182890340582332350361614487597625101942950761649570244345234471260086768315713246489432298466813256404320715103019788451727558798406645511662983637363865449890730479110003500002527279478092461589803188747901248553965645164254556213377771703001068206857121886670301464334049737978685343595681769330900117062037603322218316732306436691883829875653713774859255142119950820158363443270944149174948022771215989458840777694549726068046203510983239777729668257118100402634123723579123680657470846975107831579463054332918152662359366976636665006793369314873444234981710312215164586300749254936904929287153973522958506219336382843246788247303230290750580119261355539758996181762702793429644482462412752214649211452424660356005993046116363806009123143011252575805609884276161466312010903954891849283610174561792470321714850864046993962735392263590073700215644296310191579851951406853253074064223594430657322640136131742925691292022770590129678973683140952496817793590996026886058980409664221493001403417656005182609073104867396777806971860756404143671299068587866835800304297588164311423144891319902918379854419368823383250933143287140717263744302337639725981681340451518180711957207425186264222593573109404867722778592753016993161271605546185930467419043926110414626116485117571286880597394750956904069117167425625490924097792734597837167559857798232008619401043072242624479072602097506100257526723257769514712750294299000494119529819958430586579848101004228369190927362730496378957130681361169047787965095992591934346025537415332925209532080806192961540400231732901885119369858454325246956282955065002222041438949702783100087451013275499251496680948695176072501479940791983431392066169780158407879902536637530650898227524779472586098047650808749793899271843864809660457063541660991594686706375255186551847729119335715631880634336763667925954434611194016221111604296386329076132440770154792384233214550707367568922883513094609905599171543946586715309012070134875858391389751271043408093396639104654880761326365473951635205328352853403014370215427884048803036641352521212394306164957913370378166540390009189988234635976651396334826513110939910130019844410806163919226214728080435712850009435268409963819947731901599972646686386721719762708510131558041662802347245875485930235245915389945939813546547217434535771727239007591908691381209205985615392927420731022449675005872484403642498373651813501850047216462248582725799529204716944374243179260641176911507953234253044556296754961697574326799973915769235746954438332948493763101201705658882424969463046180949218100112352454668660191099405099660404298518754523916099690308666596004055413814294696497087105690070810289616459152765102397562239123683404298810139625496526741062387942674144634295229651994424363009948548658559674497376654418528839870446445141665282014166887911592427576770253393091853795148630368593778509558916396170937822461147389750224449093257829593849693882988581518818346926639003726941232583059614896980137957358648154118759656416140726943716917150274832294171068717724747363830664498542162807831525583853111285400399198763724324513571907356651718572236995146913535971631224760575588675106470344257641661187981980079605947194142888047350860558649130219284651843951741896254269062395281625783263228107504182468803348527652428005970933352749796751400839893693813876662264877059871718173558667353963632463501598835864817364108671466130796879691610250744409523085740887429693553451704388227339865089602083972696975410487025674212296272343307922494660762635640922132781199763255757749587047517660473805637781317538941679574162710830341997806594760969237702835295294513142701086947638411557876999022646849420656967723099143810092591825196551179361727562521739472056744400887279805751381211961438111818373159803972055037920596437762513406286349700106297046014765207410445139056728485614329305104540004254377498566176273705708907665713122875219449546470609913871188653287376367136286462233691230967155433351741593175690476298018407158161312965539305605520859338504898718137023044459598039443442944041955865923052757009166032120418819094723819096624455666071526038252597237281850948853703898683800364632298130747305889839411234579035793287979426143800062514125202400407362615427062897640547816646928851084292381406744687118836300184260150380975305417887032548602220179379350488135815520753990722308828607341249988369405020294990977855189169550200671188645678349108153119308403244872751419063231554190669223488002601966020514024933987157324758504049472392727047217602534385678652295730145299064212196016588775734762626844142465283082669303734051109217886998685288147385936749904361114773138567209772628731684182070346397176545753347923891949475821492843599915510423194012153307098366292617091650257722167670052339814144784321865957754557348188116204464709138706776221955073889656777655408068773672843890433780749226546661832090686240774132150312820368128937115769671486373017338640728006306112806870988848768565365379148122916414426902999990753007206029983445695661556731902969908739367337523897923372574782108351092058414835835852813980162006895717727333811187414480876363901337030229076324702530431805320433274554982661184182908381579924127373483190317260723270333733535922955608847395825924938404073750035873435669145374920332229089825628590522160406721397331116455442419377980393638931185361401697604415000559053351302592530991027861396744540071805476317652519087342648551392380807178486515355965942102749269936608523542828573409342771477743523855946399548017616065056621429439721302347866803662917948155111937699584014935601293740153327359657897388895812010594961141982649054024245802005396674888358717849499549165535637398562922571987094100234476547371711888237418199382536983206002854543176698930855869864790346750025460182873122516779541790378789348850189096279240231968334494579904810971119434816619695455354611600816820498795955947066046341520386462594858359801038326722185135915806125265443008098721480106644550196335243773624657427874917308849003521179357461520106407914418704963856148597577689101452372777896681464694601435980222512129165719599042193704267069817542039994559748862161262224182367281290060537401542457368987548199534446269418579434311060840849482385176067719380985099022145883998376812044639796090073044835795011996384106711364771645300461379650968739150803810697529371194576531146343422923158554072319002840689194336269666497126711004649375201965323282309614932137062932075853940044234812477036737882871382981733629311115115486429863397579216372890343148152195533249001834589556765743367337729131689043803493736840021319407593539846818999941512100904375060549925643814195228974438640626478094062610008616350601970409436276735674596123715530797747216897919198816043474861788351699039419063430029708115817036304158627087682267167877717272759094919489014280260139011008929127938209156773824221145201574030202393577916592510267322692975051737264612278034938257769423400592845319874502912143765766134666756277394107804983320331720669308136728219568810151262463679434221023584557943625901371352016861324741534218484872939271363514722858615145717400090670051835766629901853648035373102509942198005125002576605120040397596823701524767380953937674917788006771557075043039521670218340698410542114706155989997347504813366239121133147329481784988789998609952626503010383473958447938408920601833691812658516220167345702516528865710747703225445735759450952855065454830945310011040485923258708439052389584416789887002324524065363202279378770359773706030818173768020574204872209319250748037096662209052719612423373659222556197642398916048928297746242527284715615658383033591820788608274055949364795830080523030758676093881789365552522273492300760323223644828286770682395312395932331850203632949217680733893164321707958906847542189781063089553225133657707929360223469097584205752514857501640231976440612116400657791626814937165568318716795513314287639602597001396193759809015705599336170595673091338461938956907893036581604627083662167954364308544995984086583045982576627054097894402302846414259614069331051954791394191701235021341807940201561415416855144728396805006034566546590696908792210654075664185542855593518918964190817419939230792520860364657867492361045794615233333360271092178212963017744223225267966880400257400253402618736895843765384185509427910038217974008639960653292585096908100292565758078673571382486955450622530240126977404480163698650177835984542157208633664838035174238302489157082395346630274731515502749458499639439636298464305362216655185921796745296497998419102528083809809564354804669727726342052182514235278461577093308009722482015224253822557848831430045611766375162754551890290417227161918103401488198581900285314230360134909835940131133088777399450830879370160688311628216865337261189613094958230601442016148559352032639751859894653207764629255643210238554364961885751450330055767408325090504232831779087256279183227029320392726580335944822258575923692159206908508638043763597170458935353713753897844997934358526645410929112711084324805130487087809393159568716486999893123148200712067212697682199987049381957963372666480546450893639434040444747184793406828492873844595158015179896678849680581713583224620673067295468201064961227094074049814667499309372037987303670051824340674897668984499572805548843830251038021864171089676961282777216540194369113990478683577552911923206016377937914933726801557813450746359004763914802065561552198324314762305567558765440663162520004942272842372173479255240701482080116663564233139548692623599918519218031001697308311212773710066437597949361939292908227783704990906336551186639572108063702209103837111173852504305249932673537135539243849536007759215786488634390115830273771301643018732134067048616706854838289934643362250816292328247118674862163719599756738353724587259870401182584677950540621513692654975417646049613020320806744332473285008467107400678079239343296250586043033785774871235114820890652416152196294685554992969994278800245248463744489107754261601940286496707105679874536860490460562630473511609091303900525908280851208361798051533985481108566433710734831546856032870444553607506057991619492640150603996842220697517112041569100375661981852023122688164289777168992078750094809417001988086056954212747296189067447988248606010771504825595152757128884144920724101281231516564551365048571605428097031044686760882927041493209488602009814290889159901003795122336780272112493070563677053809001108151665350103294783905981690298676159089268417048247912945203590191250733607156652655769183821939207561745234397306823627913955729219822515963007332703183353229932962275422078542327554223870517605174489308751014897258195287871323503637112687250962258917399178028061278992177100346789197513263406971234257686669136801743623884444277687673193658636046008359827672872095941023861323571458025568646787246562350173174203272128883502742917742438158860469669367267951250090674233553610184373299862563279547048875465240800545374274564545856903780185329996853924708767980526834152733847338459966383407134404162796942170104049758079725941373967903123376996287200729244386118279020953461292370976557297589874899247470299269425087203226848605304022099327223789981276164080100708343542889046139131655835677146113707306634135836523965476571501613655364789227252046279359687487334182651238526507670814457423948992853668348452381200226358658385754432510941135844606023375163737288290547798452740447682788861985266108210457627132235419235662744429080482077385577432493950652201499551869042016607191267456466506998738968266716178327702930718680204536683975905951818172340851362724914712087671916204515592572575465371370290535282934888551239342914689777813365128277525768055838231964761117248419120973154947217772757122995972626401682954678734136270032708720154460580099079842411893100532205659199736150449230880307130864359429161785015210751802214733820402077876342841937519152168046788535052668695706563577754985844023961733094097289207895468994960076907606302451791423247215254341588745167860932513904058741434308606986461986565762752424079184752440415744140567833426616175350217880210922613627848126644979634880669937388258612905073559176601964099963313142645012578030208817308505834950570837231362376532829356340563433256441289472241650671173228221026237936898195184225245348643721049548837212472022589890215324409443045910601649142748295499766676163972535963133076455639727446866611836406116993761754512739484690599029225982217159534018243739114899487916035197170286467960292391982440511326896938901025362328846727066926143670289751672525586218171969009016522424916108842666941490733123275797776785138627946076832435920244001512005699666124946948670972755929169297024389575717419546947911810032458215828578040539756439937959999553591385012428309412024568789403363629378723486075706313538138453671619148359880899800126644364407986824709531314152164385888585631387384891270867932016664927063351137983437938281999491029361179308806646931332330467074797004534841343459422361155468040527545322170261860947382881556655759167947684952167825035861258234375739584110840030716006310806745907661934675226157880855510425277681089248365658139634032844539255274546301329416645945947549536180005904352023723225452693934148489591142243114998358504573122779937324020348509274148855953971253091987232101777504250709669204770564932146523506151637210946199477391788105016693677872991620984522774966222460097940801795925696809791989421057916260892956169679987701890052763405836122212962493255208637519779610798542377111843941346605519532728081551445023106926649456915984077471191826061275705172042928009601388912585960303387661073392894255552443794687127099406479020116858529660525374329369169028806232911260742897789107025301493298440110243270043826276331639752129977688728707296518248253486338239351404163142913376715658068209551394192217216977619556952154083554594040408847511214939585647700761294852899326292238451476944570636224468199359146578072490857306420735911317242973352256854236435588300724493023395095235336462980882370540460290370540003921301945056772751925583633724575408743438835318196012545473850804404209417569798466000935734390401653240431558616257387900747673927963995249203169808516541842262568069407741963013179153433779405796604074979852885719783246612097528177264999947822588379128341202933717867656208000306906221621289735120095138217589771756801686247318574030378158138821206111832957526426099241982887107370711299781232717739681622149720029761383871596169109860167883829155492117422354051277834644064773612804882951308981544922022048733447343074468653855376925369969161925330169634609391908598999314474994633645171614405203363790392872599959647998976028682460930874287302197343974829310891913377645831829206196706881131492107763017265435158582832208965517806665339903287021239292903472853643384565311685853224424165573296791416684669027560009120439233605686877844606686758819158269518107754762554198114674003834744339679496064585906719959852205231286215622844537444495459962980065806494321765974714100561260610615984217812993409936392476384543379942306944531983412683550633067923577826202016516848352688382949869602654711481230950531413771054259811242847945227396202054710741116886449967355967225174182595809860086133330586866967841029079303751370549000328823654077912321538693486495498148007696447338796238343240590519113966628851561605815593325412574446366392516443312472193867189948650104388634370207828230474727163894488189370401194796295092094029421483636140989783471327178823872297983298017613072401283278443072910844755833249429232987715707808735540949512173136460816748597312713234799439907757090304271712239169995543628187022378397292600864843968212826416010337007045381716127980127051833394529028143947669583490783823728832398208596562097667665058503962152008262120508894944500570302438552548964680944611651147255926722076891678037250486377592161158825205450786070543995551292599685939373532594548492153559551194626665469549240620106265936393333868522377458325192894362061334727309545566733718331503522994844778902956059986830428620527295119945520295985968323021159372400651640484316756212937795003951838902334350035394667531679834932280524155187023300313660402714629153690010227788638873049545522335116523746843106442089611741690974771597788540268219482848815633348163536687191807135677467389673501980621131916116271947080054661532541686207843157700818496255810765770339345432869735770859691642457320949941015120681940657958515889434363784292240450917862554883138772740532681697662749634158599665274680940084880319938488840073483584722893970244613860735368187114676646548682784254509454758938323245616925559946989137532665014559094752054681659630780980189394664590754837255224642680238336733002794651588456465931682411323601637016815259332261727915760088879971573828947395362791929061048476995375792994326309246525517261442398165076325222007550758611767397816263486979824466583801274277045775232923279210853523377009460333167634197876991598200070342804038533530700944609235257844927246287828381889673094555350421066989067700338429746729460908982057952457650962358576693652725829805090245116469495778083699588166433088602524670378387763090712098305680698212328096593594466871164401679811473763476862053509575561949794536832120486944387799050397480098826982673769214193599174806316112932974788866392630185018341403459265681666098379048538449382104388556502960268172796647549122547980384391584545977624858771518547537434899179078470301592100327432796142131108976430590473792295154934704728969893084085660574315597018679604136464259508967335733251215963966855392636944679047207191986972989737835868006248021279211430925851488004141478485947165290504638572311852407875695924739178094975146347801032784906036212621142425081723538585756288164243561336927813325315501180098262774619113858106250169819834188903788518385377210198243712173362297874946380430358712963196872004621158001402530698757579078642126303331508756223554136033546276597519323713473999883041817865598534874248818611248987901668361143445453999442835568042076594984957741337768006757801399246568396004504776514985073343854626423499152363820507158176553450386161683847100003344621304194607465085167806913520007775929874219814039540598257807266736507980518517904550489988021091035300655372225299826069786233147456870144596678619883830754994592317691074318617100256157818001788231261401324877549792647587282733817307578125175788074880223147285571370953012054231662187704209428707018651172972900834514532109752328129267387950401091829232644019701112187153173053314409576590977201449099562749079953664739147956318017070301062035598160635608849789507024252615004089802549047492585007078814105066897466725068178611217080839922633366869830365986970533521849358362338991752180500274254543554957806429266730055967479796308532920104018305109872782961765280201989640144787315317418474360376565703937819917989129738002356594703001084505173719643459543224827955359403111306391138426671166851700347555411718977626567544527459731387727146180686296554704817428648757553690592255993511966820192469329506996883750614768984559245514152046679570580168520293176059495865423986827730966297619366739101249499293187687482589095341161180974514917634540290197812167873524998243647705039403924439366835067740834806873952634999174777550372761761429178426232625175762152130645735735359876633699032346265665149057196758086688317777107329093609445717499488148133616290802285015641792743056496698559990927025827125132287055915824871434757953144745848574799513573713106283373404118492370535703388419303228076778902475672104802808348705761316822198384490341033446581472088752266475126834424161061195637320702983094632371227142550135678801669879786468401040231458613368947657164389811791991976991594863224920671797816875700953396348975072198298568214794682354309125406237999197247793528512726935224163252828654924629715685997179864109846215478351424401154850659485422616307663892391464716675248117129743974899847119657095843692019798851450431204435172670513767637775786995320896677262020445920173454060928433197156822665081982379717797157372828166738953531433840055897234001572509994533227688165363925139931692708512920006884334662995987111063175967941534788066961426641663494919411684460204597911283305763597808351980247616004563842060725213613882272699319273621942893287364400179544067731515022699192685616884301601635044486356517779420232638436475332307645030569631490684944688985971937679532731573789874367555454318574757364493209334719219422702078770448592340142333282485118096061715526674012686828382940526708120736258409826119162952251016504311133582657527939652193182713975312195668119468666977520020513713762892307051122829952199589037640834187051769921156560420253056679062989680619986552346476911267543437521481551080492129604842463365948080693131828500904158887522090277525798103650430107826756869709879397995705260125749838105628612103654839971838346930275530453817741768826552493055644074363092571650267943636253451263409449799024348642123214751613433166547041751725293284531296146824847027910872277040469896021226643860100905607458039669140432679118675753003560131189871491874771468936463739992777822931067398385848263625579531666489769343503832921281340574009692731599371914794336031865857421788680655682998149259921159717027060606848189321062617160862875301368302241069245986457165115667010977001511075733713120967318896274904926438033225625400729434525970923644206946537369079658323774304216113057866812162475343037398630862415910681898826200564981474919617243749724426452444148097957997256947508928894839912028733963326894626039689569640601792643426222933204148032437402134205195005521849284552449471425764886795746137296457294723983540191718274440762296698000519344137205634665972337618464907809421572468366725362204148634456674811551871775511543693730815068687569285112492745575307840369081792165054008303477828977903168940298979571744033246807704201000933235559934228491183283232045198219005419620618489616047915301804127094181184106607087143116930980355448292892028585448820276858099247801229065598196948383878141546406941154858716800551407596523794192109036125767756771576275773548968832572604467692205763013364356549310822732951020855922718159863503222953859963551914947513759011177910052411948042547027564402933916673989778531784025449041763766787447529706192068687830821955034309925122522586742797583249213521257405439479113667514647798938239713008613714256129497086243691130072278986973943360038278505608597474905596020872354673173958567429067050895813323623921775014487873672895583356280087498394961198940151258040329904003573343001284424182358274540502869373959244827262524496517945404149090966964208694506721426116452697989405638050864896782301788073723750550169877705687530313976380790944238577559665548629077087151272899896777808779110879477751753599132633649428442877644290660319438592700186009075979164764774982735662025056655164928692561080065077338430401283482511131733747158081703783444730919908080647551678159364819687792924723586248019970565115135223717485750929232265777139025068604771318728644493739040654778446903478675420385706280298815322494409277732857075012858529389388414764698685383113879486202877222035586226099822522310719337569961552949348987947027646767310778062647039493429454031690125081537093664142833044048527305638358443359031969177388303382803882385223793377509588034507720732052727120139802714717325642142783535715075933359514010137825806878594671949357113526939827946713210360896418682498277085288270568482447767818293266401796595462286553509230015962080754128779007329565398483362983721331748371156043763817722517499850645646779954970022860934848961108332152720675658968518893283579725439629346848246251073305804454165028325746177277086543993123269718841848498580520311925891181990451472524671893213782420730624439819856728246056077795792076666443185297943909084780388095345168979002022106416527330970426317795545933824955802973618211144974750003673489156024448366654900490894620450522826483154989517273902520262524748224030129003241674792031806182797538553779738909542268769164140307334777575142494439599822268876755730508702474624300568687033032923985091977803100271033817766372161816509726453137575825082817791668991138895703118824545350134303378092298510290069206133039899681743095122947885405969376691734506645446456131877827791591868341234399296363683109384894846676226381621284763106158604435831958597713047622304667490537750642906497402650608414024069319266894069668681786352842896048752947989577281603360017325429257320846803208927580628726887519588800360840039059072145754501522777197599500879102763191180026205987093473395475488895771938501452891367825775111863787280483654261099823850517697409493134716915322558608819402189922142333753098597792483035357074147809719606130701721079931170752980581000552136781072246200507815206132810488383269510320541171449451464940207847736970988388762505070408892792223576399485968990563702759722521383023081422318062119288986432534042654443580113097489699361061383609394618523304027352618272413277831399822080313007003291077045666586897406882925381739515744389359108226199066005652641031280954308967550542566807728599268556213939091052052389287214099242062708577949445150371195582017031225783968886885846598614164262050108027571307197425712791908177163671275803537610381798181080661028603984192097577556630034140343771461884370144566343214855808569793136222128732441232651786873188765130298932159882707140720823490917919071493754861089638928082661500576743626536126358221043181617664250424309435417503580217055247246582936137893478367294553664628800037750181684130580294629190359357723557229761959726463615982251107177116261874267611540764596225739516673810765374576415063356533225544719730833536716541669918098798765920872738557724927873343954387804771351329283281399515461131117465690147276028277316742470985678187321296017230926509966073335662734445107084822557029932775439998445932555535177466831664687014937760543951761409305170692063183992237513985125636134695483821797287321630217539038405346328191889397438387427977342784089892432104013835603590130312150123702563258790109241274547696474520817407430447427546858564511203049579396384983626496084443384992903659843983421512140707136179181376375810583327756178606387542445012360680897143191254248322911864908500389566412473687345618781121026932488870083523942653651694532604427067345982827031206029972780966922813279417979844566962681956072543191938503351451573265839054462348453853651949409838834254900252097204594844633791665221802802665645950981376426512883499132394242998290832253967980658925940615575747323181198759226899915656055468460353425689665557690730407461969740387758610768002477121145395769876109373910683509996371397456565057775385349790270099928705579532312784264775942695003250708915714952804884417269091576544571045040473445456206357758535500800314710388663041185190257895354678836058938345370347118807088745850638353962274737323010527786905650392580271979349352458030673888561598185520995190668016346833490840605294131910633238928408467721404696646722599175846152080861673190047725808130642436009500335097850133061490733780069850621080083626919249066879491506206299050426827473890334715317915893753380682740377776640003098963345970507664963431536014110859035858813583841583074843079323351915935790752389673011906004429972508527608946979352010692644287799282819969989149854409763231489696901498250937790773051075154097731004102496425531667177293640154913526226910499885984475143530001169172554324910664083848516805531685964494330175307044944256004527251356352934706726494434503169170536368501955870299440869880717367760992234450017221645183130998948587311611952973374885339770186634390380833483429239000940430012026920449084240518039593754075181700285018355645893605391436765465246905706825614511577863990745701395274733410049496529222813530559000426053158081207271364254826718229970157280773089083127436935887141691774910402244821852746830562349301912778101620460550995931511389992454739789026054718984628496534365992964380205813308222408068477846058569285414901864591470795668298652799629531523371193488946088932240118977048877670939160372557831495074140889091699775670132269920569886572394991190151372308825290844821841393175570523387602851864978839021628011313279666918118556607450286830629476146464498666126775372237186181876092084043973579956370440587493428277279589023196089318526412044489538043747694189224726456399741190889052738922749329713777596631953988512471510574063188212017510282440137559350814459155999738318621597644941885590386658692809418846260884066860419596026923131805393338837371201887836707041870765700166471786413270597193999635413157987631016922079744205757497821538601549221977466532660591233831343185750735458174099075572475974193944602676666314548103477792762563731898674980134715151972313488897724774963175598069785640627742027063578041735486872465861377395104342453543823058004169862210513230042236457093253001726541139838441517950343748694712381260588757671899178151652022390186250145203064086590696864869669912379011057498273632421370924600459238218438095203013430926008408806087932531528402006557628746620302449714176636239477929933531961065186448988069157027050882911112597010867549907469170041666880431509874746441013959730183325491832402705590383206476851101158250985249514973831493010559408013867203719462217943828744392196829500044775477384190739908770695499205468884977592794257435251167720585098096020928620813482269187092194827357785767164652739660415698875047474693837502810544916974491674120362854686324593869272875957788174759187849921711571654269389861392505351812086233299796391480058771328427522060239427258261248495499638940178256074279998522536222363526924382072423303226321285068597797089986042416879209820676658228444112379650624676656521052796279132364584566464236415910237267936157030716003465255292296178628145805465878187224899197210324409719358799845607396597411790097467991988395265557588861509627357776750093523258567096713848046773734332839919802520979179704574081835007755881391370510922730778290810123131489835323817112020959330370230197002667122668102997939401883342955450592318163114485130525704260314512577239795823804332251304500734588035516515542070700805086767943099137870678626038584547194269277352411228699863734210909698377941735768293516111924486769487688066690508278804701311884192188878846346598693180082993749944103144930155201126528456290922800378100464739130357609964274341140434337246257236597581186192359965624516765384902178487801477524495739680948648372444979981853432639567982475610012141769529601009367693788242232871543872941879218324638435220675013882987814690654234114434491865358008521559633878291720080841229949635981823466460501437068112440771970112363658910469846693400074467619079298996443035508799228151296066213157743671473243931876369416568946998291082423089740967971392401217043489223002019817761528300737660648670208149723417926140829680158892822083871555676989046058172897641187888386860296480310060443284518201582609342594395130660048318556870766257646452203649391437485160777569396721192570386092829323317448837387101033436935817393857453169527330123838325417336978466218958381867669092729532473055919358596539072370617400659474559713362061976751354390982236340495400010918293362750808673307490073047123735090684003370378118452538016113765943321019825497978637569165234431968855600401254427847110410287853005856081862721795537769309994599683379389505682650390398484793358710777922249763033301196768127127624002444372715964645242311712471662577605098139372578931123832544991707045229941227746077107673633294881076780591785040319566723681482233834612758261115914407819141149839821598001826180169692178936828965807092804622463870761423267024896177539349580491229828640661202904166404521396244073075135200163874019219044003384274563888428469761033604585125129245806919908779830741802824078719077764345727120025631113212618917393547710744921845633044801137948565365571674860219991335325612871047965424542642547349668242797707782573006807455061840559998986327558248010725657316179713478995376131349499640093419555222233702939339179278554965466658224164991154218707999484784926685794823982623152952558133932014477012006167568641163413678940037559456335317158133781763959678411222427341543024505050178897393075347103675188315229369154675078164068690374650499824132228326313076093254062757307163333558557070313708480671472632085833703390459056677750565305660646237079397511405905893334580578074122808338415606337356461503337487567806607605297907689845373376912845326659453145976889996074025143608043617515085694660301390348374582989132573700142564474373053764984426496948747137687330676957445779162419369854108027033189823265702826568458576931512412694103173804701474945726399494121622483439511046527420147122424159706166374569223196307623366336255817977262548892408333697627794602004002164965238834578367221121559192594287686002951896788306640747820039387317830724679091345763296599677926214910728608486173480356901032717937267135733438176086658563859037443791500366002240451979595610744154342774512277963518421428452299899247552737769302473209551094630020424668479936937509314892372199619534111779660440169715452568046132557212314870772774079230152752104752092932612092278422768361029816174141306148480806331821216527517174303531721131109889013975805228401238879195533445312247833617650067722389338448895015217968133925946310675594234253929817475789423765563153514016527819009251601364437031724626191639410381443910117343533549692605155674521449060598545719052997794071643551746348213921867165903399184135379788124983848425262182379572470426076113109395571682320496161933105778836372815698202582366256811024215100753110470493570245339422610397738197694012533772618309552300148519498654270486935956662700698028195020004336249530018789604561877928294743497680249660007562662045481929294286481039769583972357067217906885150448318437130541632814161476798154549803498935548414250010466727876758789303600545973277991558293552523806237334422766750570013675803622439488128235616250146867583799328070140178840980806719008746555524104459342718084523085720334621540669765960131603202693300262647836875735603787939636554975801319183064792378687702643664989214141717658213201053045661945785183030712913261634213094494403281185087889267930536402962976075800244207282806243396186313791643445738373787925742902230638530307213198640732271637703587633672421817277086244566135767551052581602708136629225311038739687617325384231788159233563998048203576095123545048520878766038085261924977181009965664694474064292223173978062615360298275704694423419615321448625963860749739351720512340990198124600395141957163285632114872629594331150195195173311149906669079795539236755037886222267447484779427602147400937532183823112697578587367282624529538497549272050583106501534935438218729644357009411945793125896582521949099427795406694532645991402492972874327093967411659722101283123013720424822940657423697210290772761679436407707126560980729092524220106808679664162188336083571529843377095603480141882362814517281120133286440966025086828314079557949929720447156970824901127179172332191258462797662626164477852001777531230130891059428274789065467562557473431792912298079006683950611571632760353665207427215235473559841568828115896817112389494506497006527466314982817655008871932608410601676086302109231499995334105249672056720453157222567823474054357798712403444674772608706154730878095155504966622422820556582286072388627576280115297129301993290577266869199249366272714077261907311123242343779067463928446781531950510248836222610521266268147644668923751843549021749533717278501997318620830569670413458087563746703093522810405219759970866988079706975688732724788856095265853781694100641946714915047049067234525835712567574543669900669501859836231741407741421697333074722223903008029590218559433338944946229718121837755199260731671104576678208614942751638380640648384164681264477246327378230412784143211031915029252205309336834535139358942556571074487270531491658227284005794920247789536257775867205494435461804223326354531295331531391730082062487031552743827617292904594243196564790453711421902042062993761808900908199934913452304187028707497147207981886155598457743006288342701921874682841927185148202027422308159302881783542975678896116366101692191547419938113765769213986599433555273903008863259741813020704293109114868022455461830936033963829134766293073461399220097941891322717287014567697655084863134292308565636820525396012794968926744356187366432740819970468343708427593828141016081449804270423542496874203307715563163866722087656192180875166706709820594697547987822034683942684536635294907956090327284725399534286980326645787855673768502853257721903935439570477790078864794822369390532291567641127081976574664947089686542719739864887595536128794968095331738443639791940891440082913261309953483304489929395078043518595668900005990117275937410196135338362664059629844387596319641768975541167245833910555006611796259736362639096050243300997604264915983296065786003480416015293340140597236227733890542684665377641100382879265845159634319160313842765445560978387591741386362355702102085726595929130192166259345547539725684508402573844290429525278186469335773753816774408041780603138372282237827585660648504716696848337685874280748892141040504887572061283809928251473401064727814313876555142501395597154931902464783807633053371321862622783074051882988608679782764430405352738368855451453104212654869572634919479816805653352586480989910391258950572501856503351653633346804537446238488802686709056008222150779717848789666979266785934940450705177065303486660631929666766489675761840024958235491720184928554285753659273514679033016721181136891800878856778893799320963233119089383998607776940637550011293603315144327541201649189024733718305379315564716378897858181883893210353164051699336079092305935269078892516817955670567250390165689869269338150358357011721726918284710768555177220193182954658372249879228269720667657024417221887296959638085425191233470389567046726661401112866059328733317596383230532849201151021494501116795645798355676268040745875417386135681359507636440554481296779747366178919550272539578232436390723167984488558268952450603060532436272157225521265479816301376998211978885098364041411055590645107153722757063985227969019734743761924439928847804478235301450082741248800869997850097924257492947268712530151223114545872231011115207207694850709496787251875379289318833077117652771545646230029081414206747323222126607761906895681676243810868466439570335621021096970910595830848545374884204588100050224396893604469333371268579108019797969814198369774201215107606308929416013079919896009067704313217176036960636026569435729864581292076315198896026567076853770795704518491080913884075597533695751390886620679105977574436678853488735347437676008121442781948344587790239720391545304615174411944373092326379259921080751969723465843519523433977487612137717273501166816082454901072281837550840733106287428333450827702232418192291024267400576893761273091014632483286389817606062790928932589484540113880834212125340448443141069204325498797623956129812350665023341620534602598380344559529934555832986591442688296643886463433925125536104959239639663079684900264626885689054834050397698944591090137100884724121154133435036861419778185502400434771895733292590905863789400777207064415599247221586429094628260960429859544474656522936707541663234039205900330395904703834746645892933544873222957459958772292815579819273728014103014792187365838606788299704744241449901516691457866126737931205855637347489497888535350949097008026530980189257723133479957105141898630160559055574356644634883239059194221432803547293696941997823842246461100047342525429652207281700861509517682990060933751208508212989987326306605484047540864675925672448025888162032221356760446136346745285173546282496310039507963622879557094223293609272163326233225033067568865380721823162539156473676633303026945317847582065944758934840336218782427595732394760163934933053414741683899089469908046294278161243553367098016208241923328185186380913772563816641645691565102450187289519937268416541368266194823477650492794277658802117573759056142289365634923921088607754037943320453798480475187202479895087938913668594044298433106385319039608433269959170872777732903859936037265511371399767322663198352142181547317432007959327014307176880999629722988609565360265843048342684265788800875972281532999396243425730418378085352530745315143818710656919408536796562931244808870093005266295550378614297794156389265555841827623223170149775638136255440282049654656107941111646944639661631707045858011813352987259667622935677016506790636240856713714314021960254521605199417296016413113724425085842891452248502879081213381467865423574585815340467193931342464354215813491702577629293027277133291004255803141756315492169645895683745793021162517041012169312656612502492834170165234508998830266001372178139629917397273928624966282843049933836689854813027584894615630354687428024668387453893647179304680289364629758369853756016081005945694997360609299863685136118343484663943619069865169821790419532501525825641216306820158990387367795830438214761195572767460004295629616225342644253945031375217852961934091228817978420684301158901836810237568791549434807682592893586601871645109786793892093441689117003858908850956587012503074372041514020532843305237005349871109529804091120020575732451405622417231310771138250848595235187770010204447277304641367171026613945444492971853879864547761712323492925221743346280248737504600292001330304952243812446669835066178746036412395269312823101898425097277374202582757834796345661080020403867468670165635869433025025094932708547009155409797013149499493383357864117570615798175377828559486590114242792312977453219530596779041582719697405312862295411983588935575849707309298299042394891970855842442150275569960230295233212114133739752536442606768712057870388109931814030327407208709005532073863238963422604470517486265908292080800037179416290513393441930362943466697595749479214380259392873493568373990983626706245774425314325637253386388366431671880489613669849246727404812428722521820266513407699486080036161029452639252490807648760074582015811174469610513832746351075074529436086797156206056435162431479741332325908580100253640285899407649677764680461091265675393824120775043163368093738751894319972793215006237190640821079896110331849788458700474710281002014788836473906043134201588659035007059494189907377032627838180914181709436594935960818585594753083006218709742741487334669294181076809973934544116515246006639857328169081103522261651743066998230755749229156734130781083345120252201908580302896194611850648861678604581751005717847262128533992237662897608361279829234512579258841288810892423379423788842986543575183551112945144092988460061725244417746854353558613873118392035104528852001110386094495623978467023296079997016017680150992463903637558762070789410407482370930680686239390867804274970949222875417871643314609506039091122683148644351088728967023694958797569373277948811701690190510233025279343831524253530161583642511254577130998079410150030618863892772204335247341849193065213953253784572240246504356522447179172493058421402652076347660913554233831433326535096431032975378166042417346550853659303270452446879284332489104950564567874668934407186092637468173631729780403462029727447451184206928122286470048103256136031481864505818277176285169000536674679462161528813817392514046722655644027224693008961440709885203129528757456656520061528531835524743465339791372746337056914274201525590555749042017950409350652283523375461990416681762422571316697604186662447201420204480723290059797023855572160396559694375089538750087152571965500007720999630693510272595852752203088001326257797444429054972315056047212614687920804000622212889681024380496502066842374676369594995510079651332004804649508224954474596100366669426623822240610966278780498149304391911388793028892339225445595451766956979080029380554203804272371288222214594978624110665501024618237583344818687790202453207478575986071576015190836135832575124894518387973245421188667561351898795650619487783235040915778509162329243353504118865235762449234968039724591359864423722897644635492443477238393259867073021432087930757082949316769573496602354842379799548911162089282277963005511319243248738455253909729945130419548537254836964433001011329108150682025190437450560079602360381177522139012393450022549323640813954617008583028132758480652759714693617144866754573022138743768925411473462546492299701214933417562721863737620518050015973402984846730513580819834187940476256605544062932153547595327695520413311011904847890842714286140953564178368032438563245599185222804511451059710734784316071026994995936720348252774104302618446904951922910002328381101520671938067353384463240111938902554083631074350672617897580547327707950037982886421620661282902376963442858184602154939543285591459103953676724215155235401886408445219258267426468251068069625444515285430084251353807969061341183468290990792998587690208611333328729965597102124653621989741129169200786382829129539578792028992611514835441618862391907135955208895064757604390736038095881572877704829180860752885084239242582950382116925039402523055404141396516799692968754164323882188580570034872512100654681750454865107783701509925355219875672406395389880723527628324162799686801139106568969301349121807920583685533714163726396462570172867923016829800462839455958838046020008465704966500210941281269350436324612688406920773403727666984507438694683445489511884052185021272158986360515584954596651326229131053933459167992072065488816166032826641729715868696549472626611578422033956124448052192658686320732409045836787260139532947316194208212150761140116879249707705991828578183018025816108037019773072509549603672309253698843763006924147250343133771797182438324461045331817309743236044926611891235973324744393401115055544886704066414372539148841314788396189865269758075656197643329782682601238260284145134612459945939559826615091781852919493366352250587711653179190203929758674500783339070175909091289765097764551121835392191387328143734375628914689042703607004285224949228821428640340689118428054857867190031508502682241509606057858059533237550666548521007823082494707685314718538221631296593878909881500825836795516986038453838754767640539491380232949845542383525886664307358933193281498258876099003534994950846722233513026252866146143188134940297629361117272369453204748914789239951300592864602282616426483036561891852732121030033636880331089858906371175237863434679055013481106382044306076834104061957865866578391384914774611724560630867179020436427318930982973056339126589822876113474512723577099378315627161820091578044081896025742317068213878813769929149274781016984627870768411130013464766579573145271209128023584168559834494222618575188776293039782209816524280808548315339767598787408656318150369445321429491706960603576736917475459829595880030823820838032638165955011091804376368468205959652629077131359134215712898164754489533814731154481898019779480553060676797172327599746925111265882980260969688998458813094854632412357082128413636037714522361872726305225937595290387465613289394548111248733015622507874354690814329668558859982024503532706346398870879898818453892900022564311839132074518165261651129960715162258454703419344261767773088877145879654965302093216692298211993950065619850318082024798566043332210239540245723790202137024944586382475711444848735653191735393229730440028983923464641401259759161162569276015806091464980496542708314001314817133671866667280157336339550534632148233716880833671611246406791204617459325504792792315422260317607962650306265946616143590477657996702096475864372133624091102225154590421696946535909667886896705999391469454099958345895392654469691287387638180148562534169899574356456822599085741264032528082019849119760612881787843546295988458479497558434785931691564634699483572244497247202399526863935730128953313978185638720296151234485579751032427871457625587923976776266383266435107529283873233886854500599923853218158985951657330781542377909373780178379117717067276076604980043360317300138399425329537372608151595781316260369734600306431123371506282701354839750757494775119910533086066811912725652091729389782822146923804087871259616188459393840156127066706901463159339821469348323002637397157627246067905349774560305772495416796040791882759106967042213581714787006356177677265936405524440196387479661226225950417351009747845868674375345011615084355612989511404954898729783375141117662364994887995154438747356161343084948497126781331134261006637979338992118356472245950073009239773939643361323565271928570324838724668881939423236983947513130932162907569049682414427759286182885531407532630306260867823131290955102994629482816388796279645394813756400265971453503225750977479761801714950261887113294454129966436528347671488924225164412711174373569696313331388660581543167701052786094046386704212578270847808118800966068168666441194680313228285807212457096890901142206942377468706498186715412174258406342406531843803080165590886744532093987124284156275209775723129838598500787449016949326122042432984549638680592370710477243155526143549337121705180340254216606040976300386083485820574892539710278421349096511900177305873112960266812093415533721023153836218338148666658395980835782516377612788498991914034028778445250240280471862883741682252311150087893173033169134294766569690179005877433591768153523415015782666423943350279352830101106856630318697791470384868615052710239905081970764896898991343102623460308891994906934135975679595569451871834950004629978833317521230646145776937589397029783546343691973162550371743782503064795887846430592162961736185377342811215911474106811279849982978948248745081855342783570826874371323379353964281040493557902680509058477429610290790645052698076185637546316936802979701670930081133883850788231401396554014243188584825802067458331113698445444801119833884723864835357605106589640180316912908309402307749535688961567691962892854454401823671884221134524764724596149577064760224006594334258576839842873213093262777923481011696290974188716443998644174405288505926663192226705011405605753457576714523866492451936250952529912121277660648968102962683912890764295600081319635486281750985881969811590181333366499316866433967740613057710477057407454040693558494676569342079652035440847040259542460529697235226173830963933207522168387414416218328429594590066184351680622849596796792956366685974675223310997536290625666708856485334596202350253387410364956603782779555142509259556003145966431851862012368159862597041508825405044822537920341828102866832938100484267127077933184587673843653053450964457903333064280675416716861341667091768499330676242647647889988894283284174610968336141689040992848612299330974505251717387583762456388485226031977382277294129494711329386360946818922806277110173431923160798506014890537123286011907451093189721858957649022355175951593894565606443443354872417548172217857244848738000367127640493016073548106409524065044281053495125331289657235543109522717598224707629454911178542757666111824481117457831985311763741240210151511159678817680417721822794035042127556119502163410129418280556952536364159559791678512895466994066574515835476162945080220063733011168092018587721733459139291727304658425552834161978120851526191702606483350379260568778626206746216571734261617668212717900472251672405661976190913461108500118375490104897014220522349661080976823613695848086693356698945914715974431392850571456194262538154937460090514384678883001069397067646628427745232511565012713516211591615666155141891756832085463324813868199898966897719739547591029471435804879347828016401609925176942165576325568253948488343335722983342752950015039624595627187261970184919149310761975009456759901264463173059414741763699181553501425037696504457509207072180708172224913871417097741797142576039915393023353211558526849841856506975855456306468260980277190331881120694861815400427431858097926064993192000380747780842975421028998746423566534163633874893044964084695622004821933404058990156933144698994701704418213390841810148648126111666535423190717077092068715328505984869297247513238605052696049629054243406052073280954348586002959560329300364958312911565935683109398904792349857429190103780582062835269186226407601451801242924434080645565843917181702214515397060065917570109722559317973501365498959375074533729340920132410390433954157840560345445109208716897152370135645825458950869647448500117251727091042687595618019506244181638057342041074359697409291137624392311600119569799249089268237562205753688631829439073605658611039959901838855923623988205699559809243739958291902565232625162113782175503947101792387064898118988625750980074239206904217332348733233262765861975823489041224298593912507481121713605769652200527547065523758315562071989262252791026613704931281736716391443323206801528398541138363978865806600529977027761921821246046153091572979635890909358500707112513365086088698637569609846372607556136866828601905317438061994618004376831734773611104081336058716008077332354093557584728365012027420416968491509669087949195420815513495165317585102213430197757438445023822699904760478402053315754733752909303317410305075018725661462313770617185091488918309482826370878627186864469842897019997202311999526881613177084142936858486290914553139429607718668354271202611925928085873529123158812365776098075741282201208204419839272628177210734641678592384923322213724293267962277397978653417265089749715186745565149720354491430863660958942059966521925432369825516695963294907228906599528158763860724766489660848522661551192670513903470850825907311773285189955210738993606331788030641830462615555168222257524142943715587202917476954480332679971046186321517493043604665774062581362789056191476589784412009930626845620238052937618761453679618615464064139283612977651866219896197130909564577224550257256378851150016165838982810744951579779511120619563194898116682127113142137547221020986367963265175302593594571781910247275098996320145546791220232930573204207198764508522812022023726986127526533062720793950163967252696574546375314660117013575317934651791545160230154464563275836903225115082973640919924067196953334694205315233266174114676151587295737151625193158860590438835478229966101820077632965248519985620509030484222655955458280093356050366417957157161542722866129185413647864299517779595228855973168127418252762695373902534764382608507615408663710807332638617566843549994072056663461941055920505969997867375813355754665629027466595522028737720030232052715197420737378597514460806612058736361421709057050648292120264805025647788920618148213685828814884217607055016203218787776994515453707218685299429003080463220136530181311768886130595312612861776296925202296049804795903928741990479667000561781967755001771943897945741629887766404434787068523515342106165837198457124405660323048039355642495579961299481087740793821725901715360622328103300489546342199823001462981607406060714300963491347615523234884864683120694211019208415017209463625820435200164983015568383018732311243680634118942276846559528388245759511098480725180354629690111321616865798514106319620632239381808251555524307136438017351484093073872422601658311820619763108030104527061851015330957705905923146704741855811111367481906292255582685358757726352975361180744284186989945471346469655603748602779620975551372216848705879175654325245611916562154014732510170075716223833007850500300439312457382283688828733680688054083883095534234036619251327368254879591179840364098281797488495855004949133463219672527797292058416800250175721664196653974098895370895776489100361445415259123824292784643572400446054259261803956518861867857973929833832483890782475553357825225486971153043628473569506361425903431423222830672295598626824518680957775003439544155365745459162267276815246233971875892137927329787482189510011298320157763277162114713607560721424914275937460040163739554570373539889906936713387784140737457981772649551207636291166931351927329677536942675950103580260306082935222353740930512945088187103338106919603177126093658211863252261483105248314336027201358707888310521372265791007996310448354972695844501390182098696020894261048934606030132333846957082002818015227176408662526110403010412083504020227492537188069380707162463820434327066317045247576534626569710435523386619225809686470430882537464951941372623961238640547721297835105670423856375878697033933246507866329085723172670782616376613136327947878888103922603122706964214348578383561177681369706132116760040215463404676339828991948301232873837365389686922293539438864880585543727464340631855449623651948022907186845560337965703452978115392193059991918529510077649202237638308566600855510527098067590470380271180785097587085891890750716776054939812985859697755597856835887482203630001510934786732024149342781411206773495574221054032363530457508870131706203435314601024423795652038464763054658785309278988538808813518119617775648257976520316498185154912546987889571577374620857554087368357679702979783878694568243860662852493956534320283399383993722854297510425085211185040719240808034974890144650796516793196446845233841667934661358650032737730743803365146608012631155717739180095904914523549593671248110954997669790118311266728642774944290458609664285303218130421686011738277250460284723017917346203777456470522264178246284904339671243340137098380425693640218048441934292408768201431229130245599310647071714406722402586088284828579128958662937578824686269941394662183974401189885613918196580449424584827769142606519109600968233881343468482173017828061925310799480789171502868562091560378389377192231794549241484471568583568244022384132919168171206010931425411487732873339387578871639391297568540286922714554301434567408942004088321930527010319664128276754850416154244943783948595475792354424843907002298392114355459653232343646064775029847634369898677556468200273591722926858103549170617492377841532852887228941921882571751642393284882790223090430476832932671471307012393776062790878320926982073882413961106912069396908654333806305082412393276326679038897289968732032227675518207069721567940689662657805987240434993632638799227914532985385371964208907734195950264919430884245385799285151218230864371227095063986252042185635650361712852014433431275031141232532349228302541447530950849889169984270151665822027459346559901676256767453282683546579551249539839717835294229211507145818580299225907389416397276925096736978737340330784204920684772226456018983466169880936549753676644021655063597114795267477372175461415831668012686703670819508659975209882905649505460003377051767799925972174799960913203338417042538549165830643409256817943822417536430902267644312975353682987981526154360779193495526461084822835817863315919777317637508844258652782405564259056990109276888368266220173355360216920768796121729598983349242940039204596986287000570940076315748523178689062578892992559608230687332968946621131722919673602667417409374746101271408591851589982522886056749935537072619865687828709936520039811863813317193185347783797317140267542555813467827709868534570709131633998425114328286874432401951439164078931320660151588968318710256378940338120243578227422803212706200460387331200319568500850049389762247795000068199016632575130700440155950356584841783835837765854081449641533692647127871285320232389140130895919142943223115795160875929394822835633516541776524641019128690238293537278639769687419163351714205267531339138470094478003087635625544913052484408603471050475791249635253319917492251666522552800071728915344864231874290992527623943162385218657242835106656301203465477612121909201477790708689971853444588864098841372938843864009968613667323569243976280917105893842073815579071032233909833075370390226409453739081883769102770578290124715319118333176808029999649755504463146064610794310721031168668130717166663448889916067293264801253637852413559473990371537490660965396474076553783232757753705638309027241952127897359271119962874950246356874717220689193702383969765363830697950026240904549060454485337575965379574128637900219483229293263920265641320093312884145106441508488656250514890387713977988983789758889422770410303438808691315642383137955608769328687357312927499763784802671143317987031680653692200731105486220226005113116301371507683579943148665553290179881990862885050439449315994774582425725849892290906523040707418445966611596460049469033550694894510880454906657885709456149450584293700489268043679861586246240897856056778490493029995705327941571923928121434343757143106520157808338505082683645709848024432698409958060649498206597858213253020383426030538637696237167092197150556525417934001997495383193621626623293449186907183572561252147239594601501808658279219047497637648154760694451704201413677570348819442316642637512786216442578524855113605654407016774295478202175620532809479065198463047716972390531987899506198433585581567728354563101324312924083702435436050118850997957359989918168074887306787501449534708800524522721282834316260764675117108648593135189849242256673265390170167580344827495573484504073232505546260458695319970156928876912302623316169210661246767794535603036379069574743666909785699847734784492162295386457191982927369836627681523989499141315779498821931018860491892269066395829266243914613464494466094918442034873049127980627036745667553948207001258618620056883467692945057901584760062221215316591683930866383753232703996727929994770302217514020889675716093321108278909984664452304574828319374113853157759109567831032270259200696258084880034365361990252614842490462114913717680203979422647834423481323257616066524660974490961567793891738547314492659858198359786635503297538645301960675929190052031522900887645287377512205876273014911026535939056029761230353718041898983603115476937391160940143564229383597395871622298608150066792636392135310339215625201833068603930163153690898061628972936002405900236556925122877724901648658892368332010514658777438581929432306237160479175472028726789121146251689583784292787823302111548135474297185132426029311522465736056198155667226833428365672861269793274972897264269230833190654739805088777157651930993541243494139518676806216855358989184322583716760531531710357185397746668011579959853529003027364499892354230854419679224432451841769674623980459095694729062059053125233167523891791799600075571445857304327019178377164998598333977511555303308691310634253469160214309562933391834237089223610308962876955239470512594304626339965427200356500307713784986083507514186297284266811428372624055933112597187722114563005593545310985406648449406633518718243046164452893898567007076948230817783454174769644852484838107855822145920139980411732894484213666971326125913807385597774792265845818611820558151748295745616589567589176947999752693871027613649042230687087000029037257367349617514425021026518000866570482929558440103129637003435149195786510263317147636825152824462653916369852866144258037666189067821626360513308422135571366750124141641640947865637367743957508222105835143861751360406772651669786886783018562449799419729359944791050459629142157097756892190216771411949891341399523819344521455567659368366825591895435770720823621833112480887700605083728350205833944273317199036983493438504234658488594501224778965590391596539993840370702119357344941025941292190455560372489164069166901941549675757725868253910046394078129243835713626183735788565623804018838377572800804344511484146055032120721471766351251733691499450723531324100888705465923298823471746407810608569074843720571879865457461266242092379022371997402464366686495904082644006611336513194049792594846528822659912593608875402278036597620462630090053503490629328054552205765515021027941156337675497548206144105663248692948771136980863908898351741917559105337412439453218457386288294692090105431939943814915228605860156658493595249065414429423536371745371127204795170111034723211741452043276259913299577732016103109843453432166965802128568656626794385865796910069025072603090530232996838837940663513005016828687763785589376519052574141326169423259368697920068498165163928823813956992214285159812121930781259524013641789013256383235411461390413667790360740106021177646750095430440996296112308171393224623405367013556821529990247253829484045508806913389352367157594101393742323092471210908289754461778809661795378805894355557483936951908076275877636034076034833482894320801415691696520058067689058150779077256476520907444839218936542169987917132920956348667664333896883175920396526188605058763599418847568112486738790850650092727213924157440048309809233449164681667769810482964734800173992351816688452525559069232263157238613628411430309267751114714618687101425783524381319287269817163332830930731128475484352395017261712680972056996204368761147809922944762590830884563434657419270393635880135343655341488011252281032960811208395100723102586851609267438220894337299340470631001540063259355679622407352006079572733043922017755000914025750282198211892146454782355643965904546887209464029423220331674000760662548545486378618043115143560153167029840903382761201435074079524400262628483462647525485731121969003686898033313275468318595543028941808969148764535694614070153401660753661872948855635044655525740367736716173782282561056638359386439202211422701331470853001219045788187555079382466016751801537602827710633988554159756296226943418487589488153163366391694336775285084573906192958064210520355360856109903458282665071138231309258266494335943414628226506721072909646987864086525837002787358470888635054095721647607733280180299660605535249673060547741895488895089540539701761960864044900263187056409196678872884391277847066507066532282417580124160631079494495356960344583766232109059407802579454247916279413557788492320896661118109965590968976310120778825900024042516136556955980587342257587906472427016102866249607461699598202447410964730610121894058951500342708529858848234048712649470041203947077712364397280941424665509352938607801006118908405039396394988335246593167201497736772675083869858048286151035766055726960575006286712995171800727387951959974430058007178438760873000618402152799911423280706306417087147793909930152151252596292763926646380140274198886467661601965364149900671717245423194488474519281805227625292757785861899866792794561247336600788116518710593522768254707096656416437567902539684303738347595404250212383381438966990582000137945189263791360717526976989182313326294204518311952779332588759657642558621426462976511062365890684816663202029901234372076322997372279256130495736965851837915552989853200370896375196170430403395181235075224284895232168399510749511832106453537914918526947635653075403351157811964227058792380249110523772057756388864475904111785471246620184298725659987504973256558894319602574259800044080411294491903565769091090805046543700841165459518310072675901518316898700923433458564547877877418479076094289743046701500052591361967755502719897487013732461547017198310368888100885132836623628525792573616889118030795776539663372469842823052206030685469390309777398364931865287834609403163519089093872742683772448551399560806650487196615351471273771104088988006846699319064957826465420624683940409987704015198603608843240523650911019769643144194410576002700277554471659146676187495182922407396327570146831606468693238311262815353213468343655076874203355260664589170901230876906329256928604235593869034296484802827515896167922724892106843167833767440294853099491922349309959291551607079432463736274892331466105873461357824904241430623871822686593862443505563732023829507163393269696596558172840307310936276737080598188249155753251981016214268848965727722945744957270801699686771961550050197440065378235979169638815134117044581351258974547702806202808757031633604283369231277146744640923403599011675147102730653496498699614890778531109483081544982522785507795029680350635933107801324970178754175205339755013804944604105602620739801851864471546519148998513782450683224552852238205739784860709883523194493687914172173730341811689620526573093675271483420740941147386412340116047409116745575526184971775602786120029417131518842406188983314867275148338887740265928821930832604561282243934922341515695486279410290910421812818935942310601668518718185285081520836591310417827198718586552817321380479419625967498261230235396183074941957273934252815159917868530500436562660851727063000417017288974913198120453451606191102027329659464553701774070904484572362562252299378650502736125048437210628036503766560178138121494495697968408133782973276576356058143849981171954978226532657256201140472366084774822858577486565956163782397262120452370856668539620334904362056714256299463315579144101939710869700304115682735622897463415940061048610562914671913542877356135406297072572170995729651877495690570515640946629855670857423387304816903923392181123530676608704018075060853399068326983037093060809394547205447498649431645941363717677813206367527641663175431619957072464871844102223647049766977745652071027056998693753007963971031536712897869460239810649112734899138044090204835770570087823343106493560415371175384706013177486163786664663175496602007486364815401378078243562036210719823346736371480941824121258051417985794499146475767480292888820820179072454984889359168317200758578417046805539486118498009676507342464660722424284389248600135102852171219170557338298547273950490070628723528291063784519562177796994889881215906918504637175285914461939205397142287366568442299931291976865722294149027568121061999906767269371472660179089331882249586954458758328578767182041043036162261646750425258969957695382751111828509447322754812161907260332054729314984865542527007797689801439427296459164108513117689201469788383088166391721365119345467847830575422360652130974218430094202296930005729481311751021915895277754005952498490518730647144416101523316338562925607674482218653226601284598811036190983711907597090430802385691797807933420043074439634673632099422158988617343935516580248785813926264481082794114263032831691346918164901063910525405035036444650312963533715094092555977124860298747945181401318821523098514625561793408740827936301231671369676511456156729052143709860937889228603332842602337040604896378963722909518247091939610146799254292645718941428222963340845098913424818644645267252980172063742634498306471321362478247358966087123397034417790350035008746215739673082292630330428542281910847188407914255690819810337338185806973950348729105675660695090879456068148619843870636706596241874564766621952670133974056944795192963379357514413734235262785550351039995436002156613849924068300807490664043620214961225260303172721783622189476448068083764134023590927237847940271504975559226758598537359561729873274627397112693069164886677416592501444227133126894869796388453647892308603173410772588703019664895338477417819146303200383831339704944188651787031461535909059239478347936491768438606435116200713352391707500012999033150673721386692234359456908982869025198941479061499423888576081041224689851330476891400463871286211656146708306141150194541850881661994189445694268316056036883597388724886600298350807924081630346847208429335282500767041634264474331831798837463207848272917634816738130187557730044821914028527593946226777105447132503933163554501028096995825677734549880958079489511236040905951899481480036915483733429068302807630785205888073829237423891036244810774689931303848697849027374178173177575617033032194793473173243969176804300344708260458817380590906273245415671232472214509636623168817583052638765084247881134801197184258009203431794378083023353351852145663872182353839830556319003572207205007518357774450098608159180511929540205289453280027428464704097121252977545489236396290104307265883181118506497446909995910043754204422317745112686989857074243743231416739106882385421106314002194852427788724703387884442172030587261307461721918567092453522291162001636696649695061462021909280492854700260492156291639249852039470927617423973901543939632064930112409692612632463937566504468015713042122378433459921763082922802273214679646049319370152281140356029158172722676177389217002412292890943969003981650074965451361236956736725590740484259376027169177526305442387549602335312794728888174143921174763694965902871637359679500363802840720683134910212255764810796924274629877850889970869296266197955721654933326649397862399236039539120618190970586138189881180126061383641793165211991101120344756496192738419639503360685427830284419038154020830874584260390354203332873060697086565110459993059182774597440138801092047558087255139385395911120445815515245793353271425250595743795692989414479807177196119996179030359835327269375632520602194630756942900602214912772988955085165619795563752138809895499200812567613733610860673099064478874989620305051519588359082422012691578733719658209579383727660541646859721437537689702752060928439317891086772819755629076064833110852030225547285450304173457332154736755806460604633100549709548394865291436863314160831973861905404290586986660552136208303509442371378570234482900131530168426904838280955498254379537780135021205726513225075347316045939197544022745342282321090427202034900371018017660794888275231405282845749968542728318293307262857791432601374355028087323193801841658796043864911401818078223539607583269656209612661653741174499345615109389385275137194342925371253060819849083705099969275029405137176842011397326389087478974319588601865697625904812454786529661908370673535750224536117778955039952681229452034142796529903677255792972187349228360338506478819416627169694252277752971216589697660928592471624479492264801164402298566541121080119733909445113076787098730072069910623068428992987190906819315280604649107932039035429497721098978760949085513109196522736254597443636723122580795778806825313619306828905809780789885186659257297289281697664931193904256270014138130223525505732605735069763141469697676983935831460385605301696004928887964586965280760446636915113311238333132740817409501990164980896693135945134697940636392379694020896339851017550196926381907297309418423002070881401246606483561725866583785381078723364440324030387985886012275565496774539390557576957600863550545217705645617165620718120573354691399149945407999287067931183245549878285245113863213236041537663680114789510656740108575870100053809009139790717979443989955850694096069135188804969836159914826958713278456791385335613435005119047757320748915055405140495650803606982128161339782373677111865400961401506415802411035497529146874367133636165885745351364845718811133095848094098067238281714938511714461482637677203445006748570115939063732457601374476288955196439988438054815976944375365938915600666903840399032303990644991216352891753843282074942914008694067220357306794337606470903329397042327557209214324764544421969491789543025480531033954376028502059263243076558823741576609199823395831778860141530004392890901380144860798060137524415820245575218117928355753479243081173585553841548123653427096296829936541944241517189586574608081826566169002744215981434638988095091744966209879631551481492454453868559389762590387889539001659213137377687819730734292255020291248505156884286261106986693288607662316272115895480724089851056293845977820294245640196458832435500051861005881714479347095661756364810243730354679176344511773660592578842839782342510169461583370572976088801369866887728284203867851565761464233876057252159969025019625917018454555227362431775066886949335289976653685310896719350497025626087817144088811725686720649961544794761972139414410635119168107714940321381681978276981100852576288393540611532649882483640074345129116421558839813882144745144224343514566529966627739738425940485635865547874333794307240336182997433853739456095209761374672767135710294843060830308687177572975315177016708875731377947907591806072724329059455096228523458045480998205023793782711583812479173460766452353867977801876401900504028499437747396192817241794350303891584549247594760909449336178887415761773176329647244901486804858355664079944275241524173995460043294946365193298312014521431264090642446834794283740082942851063557223562010098845944332508309162905354511468323680849244990244865468984773225988756415773420150505904680435161635064397988670685947078416203592033522076572624630681504006121389075026942243704944237856381087597635688478489516610139443510820815273596523239727704211170075633508567331328119324884044628388249802484013398818994971026662432184476145793063655848124687143795054227834286480890955940865549833350399108788849569044465233841717501953626964472067178581824946668625419869264714463580108554785502790426160751353076887615218735016820702578548169241368716277255074181872977852933952486790088487084601508100749448922157331120549527768162451825894379506247420932104070462911362957313985651237928641855844980934543817854416271679601791917999449190640987506533243174072983082302321772114419284218792814560193468498118271121007081942690964811567504633542907128209394148051915301487874340035483781786057041280484157271452239203518562439473711944096896048338923576733063305645880189672611678052832205677485948323229464052858121302789760303047857304413223868100894757908742387927034572488464996929662518126316011978455800277371350148846873672014428746320493186202754440078256467469462190459993980817056445503085327901588817759407932042626468630833733861726295581453220370980461633646165926274836545983693159127944807140823783458483382841619552703845080605311639303448655627601094285105299608669366488050704439128544848177468907228657370744551340314915178330158806172925045209085991629500598105003530213148315300288009185167038089544668514295822599577215679413054768843756387036452789612136136774823986459734559858919988007847124853435896395620289322142001133629909672203827428062910680212029613743893441484728304979767738335235497834651245409359802607523532101092556700495640635514887354194890361962209693599129132369483211342436065054496591394913667656967533860787027097717354250460457614631576931066024279200715316431263186072728559143789516164155533221703327839907360410271497005504958295164915018913793402283563035953122002788392626679365457109315002428112756651747374823280390568923362846314294003528478529541741965206235837289133084611718352307350164273313520455401543671066413203984371991846374019495389974598626983891804834099968684867751520442409238556136869962599851592824217567037477765896353250843113743234551572034116848912233201527834013199153905683691669068782520050516792366465093867443567183952492787777571097519899007857125557143663081377573453760088622600012566895066194820386206693039726415698056301529906471124858563108359930123673020022023280217725469181981313446489719835344827432938838488021061106540983231512229820559611654103398168913044269551749976661145702148637871336005823094328597299316111710475719425416017232440662916150204585284279659915997030385823007294127240222025671376289962094297294058782956379698251628954341495809374045912058371386435815475657589332488004186905136963052956762272028297309048755493276853149446641031988109649458566296739500092383513037863603581994523493366884354205634098582599042884821637241892750695131864892959667270924230482488898934067527337065660453272640449628868310782679583909847727615651714126411831437918421627780971824366181711263582975269196178000805521876584639318957871471426681417258512333510312910609821911480540630891910094875009203770929863601239703468399495193285550756619860154345989282472576124638145503609434961717078722863946747866703322507005861687145252236999100631958329261950158560387445500319999101173527746304299416046906609523459937416899553129067974908501788944236105970623303359529888157800755967170783930214932275341322102331141719608075400811251862102533435130896886822470659890471937222914330146316554361857628969612174459921268787469013141480889818233795623010842570149110716354703671025395865759546040829765634975515730832155580984779996646574180380754306815347295791131265032794297545184778186915164246000214681419221830582369824165111045540879530718353538188027591661516899753106572224250347583135547520195925837429867051120666163736556143743806954871936502323377253538511465239799148392132124259095697662158459822295404683289154047409955773519218509802272498341204561413522782864333966890941462373405326032125863336210781979690998486917861672799468568356058108883255132422650063107795638459280530396421439216923178327761336369479335495163399284751402384199173896014968357863049505136853610421276028975914511220984663901987805372693872585363358631354114523236398254519689812604450773975347372032247475282652023746934432139641235196536552636048738387307129217288847792892918692529039850734957929823038592843810211427867084055308354783394374641346268144946421087078672536312504393242697893688470846503488456887022917970617640542947287580667474991983729079594104089272295778756136392198484313259112163123668688854705938773532177900718292351613420906970397745615382302467487808880486314292220315717215345410448479536324568230684911436036001999091926478820690049965978676145047252300909458639883497247847118560542691911760364524631615499977539190381927698858397192507125978458970039842560723102613832733176643492935153684082378946070921618127514781209171084477070601826232041820270393121062652231398203507043782335158022436055235420789066718704295918109100429533289856481613905875840827163114188575355505219936537422930483867214246172919322484562545969425576674459016706019786448927904750541996018159797699967783608172032010831891775239178016568010991721195784998088253281037337511700364253149855874919934691109410024881613174537066661707058844248689277852777454436503959422522553505931908015009787653164185705935286267633039566889116447465997058297825839399829179420840869943231948214136714814094205515148420779775688378321843156550526238339245889392708361597017620785212600062111585670882421064240449241628972606114509937169540452784617307765771692765095115482623859360767755329153087996843513355417484573482910664401806305195961960965139215923651980632197999051710751640730947328646782832724451022691098064765142443436097717594105278916974032185187818833653938770112736663881925293298144006059463876124565174854806190926279726241950777969146177813198330282152529035658176879785902363432077739986507317304343340281185182540904854593192958828082110116043646675649758879440594895617084700983951331631525039948343233558903958879302897864426490126691810013227314822766851362199885189761047249626462078407123532498190158776452391153948718296026025593183678502190655246418275230104896512577394513119693252646220056084742259820883709496723932983744493588411360156590100430670293079026017422694522149363438969165872600423254886245489142676311985964091907966475101288952342966003921324140706899193078929877546378756997451669077955249434057787850515659850517208996660225064057132143227485973952815084303315066160119768673533572290337302440493804946294384896705459123945719271723710359482538184825408708327588034415657073776138962420464247367981561687771241344424351826219166667916155525155792312156384906055118623955908287699399504985860651144785922002505231356672024343772084792782772379616540640477901047857131388245772212469085023309158780572716784480838305103309407116061672517513586369113410846647618897601027756014659637098268484372217269742534095522795752174152288584193015950015075334152454304759036813718589519089355533315802174951266963074207546857723631608145514999980791408412188391542703455983138916064641631250432622642296228789932339014751293589806369244107153386678629806190322188319748889704389719677047756706803759679699726413232379126695581537520147249959760346724085444240347746363942631331245752938459823215099182080002609304660942607284654357814529313846948729549106832454053552254047988906323587307155001796438016189702631185491724534605378308620179553176077187958671779223937764104780683260808469409760968973713215359272891966423203101523168071107687726783279704725037137225402094151366215169605957006030914329911772409251731385624139834122202016126300172579421966117072559173990343645913496417770274516566017211508400654847420741276185247006853065999446463891123126395686655305955798294448877867729267490550438332243387130701066206035738974305258193445520832811440634687452973551016853152044514632158731780317221283515248628729417723763276700291279081112284514657916952210082385986195569422872136941922505202250242747741721867594197132754682765404201518162014662627538158595527306596180340744848041875233268793614930432447850046768286922091738737437710580544521033426923177033297534639418546746816636877552651166871817598201161373514764115325785204216322504936234893092539910386420613362651910093015602343566656293182477925120707304297582891792469801359507628391446977927661972477251451450339621266301831095572829557058076032667203553621347763602408470895637379448158313489556299224076219790369173812982008904072589723135822442612009413400543575742348334071410865256939313640209793429569180734266357379764555724603334567058773150740348234843269309790309476693727772514782428906838217830816233509174320397304317630566375176945119526225249286171254962418061606975714704914589870038546794376349017676675881398312098204604845178048678502633678381665917511792696721509190335776028005191769909834641389162541992545353774158153048964353151284607021437631777381290886321706565442520772757670667351021336712266635995630885857438567392593505186981357729251336507873848899950366027530499649796426515943159089631385017968063546867782393536300340450689742161673346581660487910017775066465786405520419492371511064752829816954464997753556003554205112805159132992676010990965151226595651971712108033481690922816977889031685780460531448207995623080376546614638613369919780382496824415798832606688438036128011976518438481888764139664526479556897977707067660503618063216533177862195016903164371515023393994076796776011674306939683605863031057743869920560336620137819590574570782939664613178394622519128335717770688167014651875924391994222733986599651975488813931060057794466374867346836929848797233901607864383456725921288018934192307487711091716047887440120711993573418137408952684225174125558385026732854949797033978790637541068334167403967641564814076811752108197622525917812693919270280035581286699382381965820047659291563790717142261176948290286744521700639368703469474595102605311867650020049914917184031955077506237929823409590683668646722994355572945517043803425969981549962938082835372717029374324651399846665180006722270908162248440581201867529193126220145127234560048237679222133053331691351934487570061873462432105760555563423658750169244586765322551644441582157032854026445446427700286920752338912396549790878757587802550975266816672155216560010184626370862771113230390000194890829585896410667237535072136885250187235040988927096400547979890316522249124789305020102385561830655512928635719141959464060839200449984317168744610117007378710773908268989342802515915126369023392060497604298932987652295065591784983035398536660197201071133362947400007182860937579282652812078517313774032986187590587538387361670702823085167636469459063718364683429338951692402062165031846795726955047092602233858870883009304958343133641837861678243340971336784728207916890897700592487446178807902245871451206020268616630082292066069552954926002234318394195399975277980809594879319898482839667893190585129455152133953539740986428210485676556976781834103241076472083458477296963162157778369191970675567212433183468922493053829971585355986422496992989011747447403348523803246599639179415782322542846211538366304067254709633964498591252521776290831652431896626114119927185874711210357339461101631729259255205209906137058615506264345807597056758822184061025610978199655887437284809497407758273644785229202368511418131798251310759980264129200268031621750035870670508147725984605541593232246125292019889933733610738657968219571371448539860605819290584361750425033810802605963024520765098157559892901230275474384873756187062386709808640286390432176168975140058916434971432453772916523925831398158353868635123370527933416244461890722905571883920222237527220714210784709584266671492701816162491567099087615174600831015079864839941246324023240572524003503352824478285540031996283656184326506992710341179619782028577826502427555100046740004900889346224702178162158503060942840586150093682712766049659560763090519447225280986991897585304066372320618724643881955755514324361345751157986605858566857974950628922825170289878137579629132900611333199730096813068416354376945792995559633175264366885099069687442197330906418352463025075165558825475818703825056171183374966681128837792391796596319472412430587733081277164443556457319893629646110173602669808513633925648639288783908878167696957554412121998581749379437760243924540653656452492565469094901046836306708769629434735037848006963273569605092486761484887355991390783837085786755454063966359460616789523489396588442794701874345732228221186044933055342756219122021117224055200967880651296652385598822815323189311740186446692603040100304432385182877542146402067075537783189666010745249644389225814501555704029319169491014651234578952009341841794987080324907854168561102420984319339678486421524093298188498066093576100985040836706413516898534783992058118308453002787380607074574395073208305959717551864738484704537968540017801821365612064161104071840074889951353244145903887487459652934062444480787608685327977137783673994766789843883919318455441035530682613451213535612798013456151955834264307423135599336843230250490625801466237975887302823112869414426415283215617937402557923863732595834498504677903632895899017982385246580283632736701801962818694953168853520734204083140680033627522432739722637489981227578744911189312706366692044640196277205902393248070388657211501570275984105349494225103657637090949285092527372960182143250859905550538478549641406839880886344164898441143131630324519611865982424277453808645137563131176679517376901690720968605678674597127345946199542867630447722357158081851258855619406312087366424874768891672232321479744137897320416163847276246393523137810512732318711806575275059268329149368043273209224215119712254458591679929424857757906777871787410852051096149012682262958239306822740586616506131939758948622723020422333824048236866817967640870127317164982825148176330042322084214253296970511834517627107857142273228623890653807360363347407681704407247110427177584900173186322662587501353282572741769893150500579619793135614867551817301936996622555079530175766793457863305288826323376970211827920000042541442491906037419183533766491830754098975352805493394312734708415703080843702870655391328615568582292760298671989274404917209549444204128852666359121041273301594564409157859652132860506312399694486908894320352947278622893748769570473826873358248583346637524008238925893277311990824503861643954084650363023689939479605623790410370985362767029533142535455034103505656391807261424024272103297149744422949273295306306150931330265897941838490567240578915417442684205412293380613082970391712801667191292673978529939243555721324089260542738497339637993023969989272993865071558576687065049628900753825430776470303577035286208692824215244782693211914937498755761221310542422599254577015441229381209391863747508840399132423219169879689150241984413792001351097375500328929704542519884734077041810766693400148269179151000813973958584110855097725394452419144351663854189782730001353995178721241114188873369341572344410590359862188290470763690650599859717223376798625147170082064301943074976365301287090070062299173579565413182762737806566618126446953760884190213704139919026279637495267795418277371945588049677793176113870937886977989475192384288730419587122051340824761995873561361508271374768348460636907778621043593957265293012904642577681390709692565294580895782464112992959497828744545179273682533945513569202773452768939435038420034253745210001840591661148929384476319566440109016784388014250497826071038292253456141980370540575399249584576311700080886440075518951021099657693339602306104310228082469741698191237750244989768293584311986851146230591040762521785253789212188313549571077390135705854003433465403388094454098229075282272751323735294215065034713590035611571706314523908406157359819934364117323325538558647878205094369196570334406981243254401623402070986142111446291198971389722771942044611666422028154208476691964062488076083514783720094394535039035632840343726986965360230926528610670959683225741773244009989152993791979769768467230075691008261119165524795857048125054940351822075373594809533181898278391643334260141394123158250782145757781783664283106724675338606215940858531518666840063218758601210414323686182388685276874468838846346120843983692908863976913621601864539730938455928421989903485599590034536781573942817557469094557702388394223322117972174364328234278267865665138692084586847989175497635285096800915909264241423076197882809588261797823952211663182238304368312893548172757267198150033985632455753814340034539690999591616526072272537818482433132173534823228130893911180998875783340712598299357216585309896705521375375615887698163683095432781009069991582526550859030486447701882956983559894479952009573367501476366729038750630806162196427547815980767715758890248238663265487652930682058542891653266782753932859579192872740909138232513049248009921204806368344251242330524734961216823747916339357936161260453865668559757275644315935613874460531639699067624125078739434991876007517013174974741783702153850872149901517340197187537289484747667294532760095499183766473400580630998602823271397211889463695703914738823078395146673858146674257782228653117442419058835778295083341258582997332819414946391171830488752329333800101523010944784492685064554210376503542366088411814706082748528140663927005686258046172010016030673001614423600671390809090677572341919405208970971572257024364173936363561126256613740393429232359913273989684106491068287326380028606508799357025387617985892646945134979731796857967415384099514578917220061381304519855425327832607099582657619407401552146936065228533432197753846424484738012177029786566235827362885277663603490486260142194338629689024330410737184963660680967967595204059935610265197264214078147484647329833408440974347066402125105309801902437449738193534924713948924657886961319322242749047969719587562804252607426928418206483646602697071337213211389541447081251454909685057697812010637784472895095108831747368829193395580389551733969773849102073522367940651135038693999102092795891021840707830224512166057080520745581017339186236954217794385308324202660582584949199294373441585650823560633086738963820875787993302320543599061138337178976828978886951783248043304273663373459773574339357041961040375626018857286503617231461457830681230305812308073869111385630024061651080700782860788946524536466725249126805949035569778620166563946257728895485673737051395075220620319123245988910173967807213485381470045623065358923769522710806855854187722831532088014646014225639536282776923085575965917537920098611691656782441007944183761945463620515817849622054687015775775803218613636308527242258959912769404852717371531868391496575098700502305248675820042935725552340359423105462267434574521598821165049257415354612829896612261273002910409668615632888004831680377224908143453789770124103813593462765915868592497530115712970388299433724522022034050231053472780493928536003416656799911086848622647416897290850488698525414179660670546331836212929511089307983365762566938220439188798949757602884011245157489179878605009712273461296493848673361227582762537906708077936468331723573543253107097093963748017477611857714994590453027306048441734677719274780774152358906902082592847123431870698478982771665983752628147466951241847724270792512795748514512308273437690741956308488300080999756746238916117983352338161886109650884867029877624825707125737877086164051108580514046408782375764569786307351357642451673128719481146806627704783214368454716603951640279773918648318367244869044276304691582355374615161776103195670197153045955319669655410651643684288876776747266626634791091900429740344342192009673097250902421442025166690719752703755880149912993649990702380382455438480799840501893783416772945219976498717444057964361441418762111365223532925838951871689552439479509855418732263013722894490392155325867644141409477790287916872197830100659942682686912141528222622227092406157200504419291683555309830497255129174160710363631231740923461801703784146852856609755769290504756932457476948052177896031462217120728296833070186457736384627667150046852785532245240242320514189034956179142888560837326560723244709907054157509966628236134297789677906912624146767864520101444652569891385355461283470702534500644921820571695626742333450414231304987173046011541660225762472666243097218706354220898671328324934042573741157188133348224979216538582882298946268148454579710209204035305064806450459061929148530286857085883483631807375452535088456348732053671151199650446579269714412004234340592364467178289667690736020165108631811712287738030674227389987043248126474698064344398004162915366171197251846153708531319209910716389728073057674215231661601168028146531923919832912864833663118937167661027614578752278278408260858810740587492293719264917558594943129951845967751163245458629576634585472046760543803531994922111585581146331193739370743774038078364908922889072324816019026394767713005979860399881276014977002092936145564244934744409570351495774302291188251871227454629624526528970110350478253115677019872271558448643733912847115500694027687950116904040384214743662889439232316475421319049849795250611971390121591447404099764062066955644720488998171054029026609674217629551150630154993057495920391005361456758875758383027939085206303249085667628911017660064498727359227609086259067974146963299131637754243725041796100288153558825106836272327419637802950204860456094912129472305433514113575625542601111968798660649917905007410957365777172083033391995842188376024888108499953198175304412417369444295460400250533946381519202379229976345613737946250803078217293181453479178520915941606238035995615196027633367773400769286614225294416634398838962077726503277527382329698663104101154309406140960095997400857367627103321430388274315582389704889411517171275406301461842035550075482121663951269507749068072726108506939766558002652946122152474059820865555965485566572788003898101773251296560407196927015284924483727504187095404521661477228222582591347714144611754503250890736202065495537302820084829596883013004047885115011218818872706696001462490367721420715912594856077800064894550700809785316069008969466765625613255962464265347839219330482818372442216973914484048953433431001959345995092370431685557083201746266307318373921750947381372951162165213118458156463861970091101005553501021635630484402144906456762217521358106767370253012436331420141125787050737543138658876908247321932756233269350572004033906729292055199004413335937323556771448369185435720432396018813154442223555407236571215420319784515343459811135544196880352240193672558905967279950427516932841534142405069905220727582971117461678649212648473531741653707913240885607787376735919567901508948474511477177777393126259983896564877556478624216961856160876748795569019205334341226114199971650807501143509062982668304338528079788287701014477209767593881288001515251847867121409114888940370181958798036450500612248388320778729418891136396139382445020757680595132335398512193467023453058347008863443511051447589331305500070138894226672452453121335408064367813395889699011375550664341286187942264189258777319787915626825556709521022588451556980186443536934078915581481187835048344272693260008353847330711413369512304646939417868814057334811699241964149723731794289276750297773572877412969139423354372714666970220770145677458320467441393322963333194939557790353142339088947756235016041329085424344675594156749341204310756211171176872292527672500105912165097834423427446352572226169383606021081026051961628413078111228298855528740073723922611226797733634101784113371801112684991084138799152501552669856643923075398092049317119422868381426153393736668412018413116508777128251578795611540431024512478911789912818405111749067354750552932293707968239262931309736038290204352845489690835964750444502194611718133966295801434583141419914162093405836508019517371230205307703612989259536200703788368814107979595077956276308234593640723702369936354804915513212900965796685699738188732857753884519616409633512825820275069817874993650609802840443531365255028485724131214392884489471268325682715148423470076989080186395080195542789307734623247043088856672586571382168822851592180957154115988939590791009729709933393072506546343352725690231165198017879875953039029397605529768996359715902012694960788445540998223603289319810063049177420046475555543925846768904171270235727940075905415910940501854204918987230709713036740377237586159548072395414946588324703063205628623459339509630239537673172238790953653332744414564405899002455291635765432902719003766550975133344622743109991423112293813970272770795381727530223540150736437615921603983447514323255059296798954375025401860291606013478501301552832060038408570142183208238240096708381568899895974669137627782029485893281433790563577150195034512867191081194133822228721486359655501358681230008408981812789405540729032224930275690717376928395280559943108678256101171813336850450238584285435833544214877785628198890828672366575112649206189810635933551631917350440585374902573810296840080717742817941357955447288811330114195690537927054281186289890565812418304452276062731403280305060313500325267793698150707271329918163570667841388369351828504495707883072742813156560527638355016838382207514547778377351729147000344545243075025939567448925577316429609611328006730068216349774395589584277579686481470543188661037399681064416926442794652524199620476966234310206333924215630192932825253084874613087990375334847430795861777370070269565020823375319812146969098385062585450071220346428218189608083838209261894225581876429922574782639294785642355683306383937370919386670539059877352570407493795787724051660620371046630354899999501614751531220937609533003371032806600411825218251002882602766019030331449726640703638064027951662836386832384912828649192636485976740357141077179401539838393739376903312900594980933752577072163683156067326718916688432244894822349912393337700386673345889429669315446540619782164323051135752515938837331561512337222945745503820711642336559880835496002663129023892858780824210300056872931340041193183839727799453017560616817822544272056929873281448692037924213797499465245643295817396737516468488305769835239242997799047605376193528447575414994877921641525506746156987516168219189419637846258882171383696139714785313080670379310141433089227291588358542267508325271028029941928533116615016221233301196711946661857064433677095728153094707003718785679432949329011527369461265862922012812321395912431830157142193746360061954984374096234708930582117046633502409454783204414930089455304036163093867520480550207384368200190883487997869689358091126393998303238449657194978975084637604520564281175357550875352631412103519834456990647672195178253705662676128824137436138037527152250776264420584643280907872328607490937367938255059059305191360904143116541980078475569687138292711262913030501842463169799563371393505873564848309823697914756430971038123297082885970566949566601996105592393367298156510694228788667541280417923384972403772340827860815274127574616233371715854178062034727218096610538039472902867844403126812782677089966786461411593806514885576692473352944668509676943195727186080496166687593959694987574765271468291043649695684485518346143140275741678733398926784896456135005605567506810120014596637358601264035848206284167380013868003827249812448279569843062832272169709476611729294768097251819252170110083957520291927089970766879129665871340626740455468171104992550005282007075222498947599801081810710229530674050247205377281535893904445344438439860011281213259358787978659256170808203535880112421819999772468054514575641842772610703576768130655462910305818880892458259364759133826399563125701664284212887812859795618004781146790225904958232026851363602488861455316780338357066431443695947090253750225224709650552024990718779586430315116467014056695639227563519349281484949146051167280890243322219248671734397040232796646947492260188397493621268467089863947165108473690153107857819949129465284793006442069590238722783024844079847887981350341239299323456702200504116820230439216602276743345986770450197789209045044774574522391328592254162765434666732922644895614303704431518237140280417291184609483435388881039587448409668881622522848984691259244280084097299935152471293558562128604907057914814365213741373894199511806922737491486693547277928555531223269385344091985048371645048586848539842930766657951366203687817180656982952693968872190007971927143173281029565477691868118702356461567083619963074324952941450994206407699135337250564768237036284842547985036622524942625974262825898835873122185298202020411853357936020181426372171385963305041562318324804935967074420917918763845264343421987525805162658847746327344608148266165309281141067500552900811088035927347192086803623773472174223860821590482428702368920802057154238199032769781358979253684806425691980294554036379337761316493427304394624171624659029716724275235171176872130582236543949854502461315356515766911057791429424868172218532109078040395317626340398591397112645747711493828537789416790279869839046660168544014183172711945459723653066576872632909797516708463296112924147110915137233919292590023329934728855196533467413670189067804270368985449108476190627526481706428979230328026653406816244367941058846122535880750638586239072376605174365223291435440942328624993305263576900990519546087943870467024096671114221627010230864975206176619161786388663454778070787060797960839001469001731886166848517761756761585409937663889210957378869744761509667653457658267148735728872380883950003433622814221343327577618531285162164086233169201278627465198402609538024719724797583331150284817950103289245542799293065847826836505665062674838490130798083165266033896495234081604865253475206583586772577792391719591860639719677911393513950272374573171188728345771048624748852636904242098229742207896033158820855490651609098690148586050940992756478467622791643268692789642236626838646460167779836177094420831245413246456998449708317066324602998169229782840632333843931987794418356066729628869438226826560782235997045718234727944930003369279694833391422871205836695284729800374296639863417198643553636548441653609746266622679791547673428991334239545180271465508238070384797716610808650224374127742950266806127769171261115894650911477296525554685819312833426020965844175718208592963829733376834051174681712386661863647875623453122801418796121758049945370801866059491157243751377484665984551371883779165190519115919676075942168133285243559897226570637783730121461277887001796173699930035683728553198319817718560617321206936858029212190446599574892139645685924686055019583044195142585828879885054858972264558752494686049865051337696989206217951708384037856971534420083953396089278955957862867592224268987581552712275396032820449243683763916057718472086298641705891076183846730697105134311242952257192051555688010850841184754797031730841680776528632756285649197564932148410245349894925856686025070293314122419938525926584617297887187129381964539124339610538028157072137674839566220545671475196432370766712437844091984573753139468193142169858080611234723765761428501458418609288381016839523780965126765411541578484948478640142778167155223465403822048049465283826226284192969003373922466544236378615896647569219995481068653508695859701360309970683952329402857242925518523877998121497452280695709535353172126515469041627211946115242359759148246581840152865057216713012732358596878231306750188707285368222727008144503943352915385026672056995559553115286036225781549501943708427955260374642068122984057251675405210516495401262548904875860603890303299437102175021865942430873674355553902036042806214854431904231778825424178483973405150564896126723792479740998576495286923792315677069341868904628215341995991366967689711503648626124889014361536603388449459153981197346909442948388139032407073833202739122293399477136962771378556944483187013482656486991946832194801924743990133438723845834623439657469596325042103191670382706716707923876779242576401691579830425765638422902192471316408120826303020734467318805246603699955066985670899304738479029000589335952899282640899151723449257702585435170507180568653548926632699148345826921444978329499796854492192524933350494047073006814622739656186257688453197700960058081946957875944765358771183138469504580996757730014821402371823241696349928996009662150384985256893117828304909048415987137768422041000020047347956306796863100010262939265030769009134163897572699789994469155101115432324746513983026409809972150710096226916599580750879615062490350869733310841946613300313948814995840146658789768207356314957409538088637474453090607487706194965231007041625960173371982318118280456389271769865837487221946514239557600495972976347528529877157995666774861785336015947291737200168349447456883591498133962433445336753408348380034406874650565499151053283246907475752168946578667211914253156008284808450867814838742395632994013903524892211824883692258565430154132340475577833203724542909486822920055733439162193746293683007591137919931866843810262874988844049494426583744726486852757271278197807132006316716170338351721496447719571589489448749706174791984611583477633411186375416623360036626063270437454450049125765916536496640847825968674223022186776480626486333185397736207124668090764927663620405634864740487280804190123596095295201795435291506792372579427264763108135649843530117585405560309603927035914824436572115711990822405742434203823099324354073844520386580814069629328206089121402499871881828120402446120868739404505319260699158549288991122201720142305580533684736130093402944947929420745618761434981068710756286836211068011273593709160837738579951273416370167929260005133795981536531211257042196849377294969376798839854937765970807455404554086203031958465308277811138196046519800744204518418484846428773370059441013680968054320535943037752272686785195242163715585360366885932399802197140370117215592057866846651013773079113849867930655649761925806175500650771961718530709184730958328576153182546490131600531293710492001188817211225487564559971312985289124153740389949646856388196699378044421187347993340346061907581638893031375377332727440760039280433827111487528744536193333342203173610517159475142303382121736748744620421633720214253218634143755622492048392276114681868622344304900489578317630848281641165632841340311728832142924426248988530650881692371237295401591677129025325551790720346279351211837585279356515059941037089151604195853736722129526408040439214900786670770166349728793828724052782186787747169584662090064467757779419516957303356931213038170456675554266996577129847752991102487080810284165125281050586626124066656466688691879467513437867206826740204516143745022590524492414024645178636724185446725751412921109378622219713225122192992502375168000590763254733431993954000821323722481150362304709935962097080474271208296116078145824500577557279328230209303305585644803679212102461088145195171676179139936883522636553925764085389924513191439374031022666531416163224128770557535725260008617377231151317074007217983318313835083390390140088113032523517949283468478802343708664564836945028784948783804954783036268884508924739155665574195259809819742250889871750725297145759058041029776674806681577179329894602620257593498067429090257028624806161012942461827996602740217729050250611757646466666942180440318258734162563076853997657252389516659557926699621904152528564128986401405807964303280693667410840236750647194654009457551041729135214737976304212665175214208906449569595837795327254695683181279177550219902873684134475276737777553316702123820854806226445682329450798941301584050845528753536726319191973421106255515029870131729715320799497879884210897025692453599157674894400805865191047271384439304917158939605438236931427441626162738428433243175582590647920953656763364379336838496022391674661973069258470200371572621254536347198431785263003795269507517502067173680077290267050356002391608213323830877007937259408660847769607734633566604908594427494545755767077742095885240596466882867171126221415224044168521870116723745792270091122624019836528032217196414246918567800382873056049827726709512274921245509282243300015844289179469820282691275613892581895130722571588716329080910983532657202115361603078188472697360648620065943800186382192533727480305679953267700961130274979175395823537694207796966424939085158894014896299563886428280807240794073503405392997711162741536556546529062817666414970719743382744383702553381432450075223577466145357248522290063081624422659175791055341055987156449638604130131650748140359801905904628406766999340364255061879649526471048386665356449094428404710993251210632588426831235276997970023327613176748128398162299101335422154037932925456523587899869891951279151040012202675289332021002513448268275723356293999333885226223941621558503344334814026749953719387967826578658237910407451237172449599765674407942374782926081948275338868287275030906593047275370091489327555155550414189419951966736498854792928113520492844545228776856451152259001774287557687256377571396824859972300707240484349838324680574743989824912426428168303176585239333429121938347320807937699782222004792080052609644935806131143723475403923841790092557528622400739001246682935755509161942112628444521694259502078585597141796781985168659946939578715984539855890331443733825226625189621378306608615637522901158510069720724704110274957212739881797881617933346632137338458977705831462324233785240315227728593483647698762962882794771215162402187187125724555133365917229437635555427599285853254494777741800578803213207843928169084353065118839796569418576085968732881306999025682285108395763302770401912452471626565291185241088884553605077177889232746028615596067466125308275851845073355126234489395472757757003376760745865186635916751272995184399630807022658108328416152596696374444950852605296097564536755657493726692890357140839107768947229148488498302023647301148692596726202085531415612041106137586069087329680417629308774138702776723798962052283033803708836916219089492183112324107565850057755935582820617656383104425324976473266627783875359502162168402131159745511606042610613432327083141404747280162547797442466057851379936428993897830231961413008129206577872809732043588370280705998007002894308216306325538388850462550732086344827120409297368496874996181156171888564954720945801068358876529943783251590575267107904578763151862946185417155259749361127188483121834846928249273270127438889062796442657800537289951071507772723857176255683308509590499107905725430669675109887164738823669672080036465740820909608897618953647579140941022909376580209906695071772399630338368570879450940940318796612206402170922664095508164112698073514629933489236703992059709968292228371220037443279467887206003798962343806801229698053425940720004979754193234155869069931464742515390672870850098702501506718553673262721074917727604008930889960301124729145734161264539326326764096455382640321637081822706102420552634411991509488084872377373067415613318153210194259637797748668409063667099845426990612879339591543884535266044770720519113485681678592030652909461277071617870836972066779025795263320392325417829519487609711652300096693744220969055365788269246749585659578723139570600709731888032641843014728847965269311074268599890692472296309024452422236470695161720275961636580392492679070009679416471621481963756931747538553918827344831640893737920209993521347898938314103077262595803095490501829111768493430941126578605995350898364843863049525270591717347210021007171248352139134011546462729847299168273479769995814025011735432415689323949375952283716767115804215275531988725454069981658844747070510011355161537573202354830616771065625966853345670768054411840955296356345232497320025935351404615344252281803575873314991348549505713898492333216913794171898166038385769791813592234814608033806350282771735700646438637890825262407610010049349206635519494276677102402026670357865444711033974247460926216741879180257445714082611423109027214497509996092978629410676133401066081051691035653509408771644359049838003951577130759281278292889760508595984495985501693408418055192768938817008283819196793125540292045913424996123131108495517690250959778651130135258676571244625986937304697946867804674081767034393971350235793867338743491167787516864060027150959997721407562796641805720079428593973930805081933035040000689731368904656634086529302822663835197383606533416736493604365618861333659110333167535500022033028546421500987342051090742157575783161927607644541147037018879314501095783891233265830493639149149059745857578235089524479501159942523044739436177240861119116851713222784662084551995526204435295308184322734887479029751767749409885970286563680095809619672914237462300237427228450389802374729602005471406317908581361099117817511746584884761910821656069041241798804238020118150247624191230200340731872533473124374294604763255371845174524105984333288020645520220523976770409472447409123737148238666183735680303565648835664758791124930930838260472032456038830939338131637071546332383202564336070022180807480058635003540681560812464893183121715824781330536436386134993356163967011767302918232602537171349881807798230804001472344074829991553354846354736351625783920773655585877782578058407135172835589136018491772472440938715678953653390021667476853730969722690318525874085034738328730102667946661835156854299897659985901847709080330341034064869814808000304577670206948057123033779488545419210972956771824886515389437490937790037560213340738330607887132527763588114521443466541402554714339209181429924524875552261800830273192295738458290270494846285763764429048055257902251623029464329983352591385355112590782476808970391907776511285720110753945453302472726311104610217275857961381206077122309685620337961394513128340061463376080439989191920626913466173765941652531203979732435071710518837140521409142544541713852994649738881370015417415045018447594383797827890531318620762307307812249682434348082761160734264500766417857311594872320037596452626234305664738445547940609324753525990763936612038366423463794179433293684586021795841931224066263135958974736860737525358792499040894831650995735470622863265677791926468272285138227305388600961653398091843771362407500977377037534248548696158686239486095208001075682678849803509871227874891408145590037654723163617773800892998281735347093505471089270281389190069287815992330691479831535199556296741498788193411279973099210463451468922982510413855855089682472538369474361930994151730053224624336495822495953563535869430544366572764106551760110345472121413421671355325255544302335860007870797978544998893343681709731916530299765734884108638793391751668647487075383153370474573505671820696301654588437806764435381597314297680883748928018708174231385689741631965638937782935354248742454141818543045383237467571199913033285013317374200714533630933112606961449975831599847697112160834929397496917694912491098159837342183628223120345183666397788001871170796509871472126522664382167219325400049142359241701740392018261291754154472952497961549168302253018333177438563241661955365735335191517345603718851647778869111102183173695541704723618589187082737093001444052580839668735707356937162258655008552347733170511314378077592014962953859522289779059487183086506473848179804880095967639026336013914255500517928217672181069620228960593356743324228657537390457036333325830227202311327006952757256564163616139499147784886682428523424663952445509388284737239190661959024234749745683391342517487508782241800033050843499272664834509251490970183385190150992309884909955715158957543709875559408654286947066176918375458239950894928933341599441166804694257303789833160630518265322008239383075043634482145798757986309074085689324673146404643176093269944363570258042651552110764440139953866982568824268771423973942907104485890209882669119620584061604766153760918276866240181096851960976583988452961404717857215915096044119429486500086622028128347544881300068349997096014446630487388714000406847622786733645525516850464480007889938958637834841054469418303626610561975554668538917089761028318698379637474104000527504755412433606117646720581455255241725622349067309555358116078249171038122136424389181397521686309068279354047656781662867407807208082215641407533567426385356831220791949206976148325529128220981176238459362499212299445892785546549353143898057994676704826397157470518991028659087600476626908931606679016600585698049591520212207021683257986857805411142834957206625747677053220683684151158419769599262404372446027208994476873529745688606968930799966136362870664658400767064235420751439240140344649264696705164843565819994223920672609625904486619133967934623075062981618387666210396469728973448837600965045758662299784757807911335987879873770407682594364185659715768903193609688602832465504357060660519528150654062796859484010999049898707708755249183993798765034722765698331726555177048715477452477172064111646977725912221987809825595556355489772557466723312177131158487232248957420192087708046108562071165769598459834325063193732676580119846533548588791656314196104662242240482387104955534543996474361783614311681770104690120192543633541012001891005428040944724067817883827580723530956753365118376113811966394659764795442037451638961945133109519529976105353448355983724868350917913535012647905645924666269209524232508403795818922712907574394086744380388879789369057288770045827809941825070559194458672136754657270635867720913857647896859806270333691985235735028151642130892726172545226286381845968098492180104000706805438449082095525074575438156880318492008971753801086117728238369655745091557079979918440683949851682784479672522418455621997458528227671418336449116841756024928846001110428761497419146439006508942746335046914489014134464877299310577724528392604065249894210033025122906979720243628091120929574643885933000940762653089094090796200280932283194701528330846839667496730818127768635587118625006709912582835234299293222614417715381294668648441299681314548058465496300008225489889454123702826943740770351452187016822631020806857248381505479419800604237230410330851134103247720257272052085023382166806683883657686968651609337745775820349657346710701103637921274211256616595313522173067684130023542301867128097173478546394984313189795780167028496549431969753789423433450049108656308871076328527146470213014263539253451585106182165806802109806308151220175946341407758321568643086165964684661163329083931777197525644670898351158486970326933869723165897019476611700247504665941580726445549282337699534404782638092054226436842791689066113531857925596255208185938655504121211958153657003467711023667656708039550470271636552278625077599838173746713804436499317796322626199050361243016064018846471256745931591788921166239084766090799904655137568252599081743940281575699601989015599397792979862583348220538119362420137076401573178888817928043496283212939389920082943972148642354423903260868095963844850203742287296280796700506159205141827604223711580409576517023845592423782163327439916233774974908280619103610326854703886797805790861244069361135233140892701723140387897317339415058227939793793894552239316583046044204718589257820724455496733320508464978751521802867205426353078852680861835347905466981566810774584025691182136078933704289408054210862781059835253102607705735255222445751278744242978983607832596295579879383454317021927210931569147371678703141879532088138044965879070760819543419326004758816749129011080866045140004427016879445277293790898704720218796873452416289337984281384892406067654985853937663329628439770124743642294441999857484755555022627799834979115409291626769438351430415564209572319173118957434433577275819429450759608181574871200600548985206390304253772490733252975446033558606819907894988638790833698305607142660799820760318256824487090781111051481340231550669913298834565781207588586796373933642038278925465048941180233075651780224880898767513002762409878580701813164381080677513076860326546149652553493543445392376339397150785410685022058700713928856382034519294019418788309785657778288322630624526448650100535195766304139277913490505807551490503840889795590253152715375228377416306674846125200001678334757331753814478460343919777105145347092102239867354074140827522578811272065441023676139505551097684914198848571494131226581825572913015896923782975232534577083508579518740946082188861962518502743869718281959587232638843173730269733130430583867227951381076536164526763630496413957481262056215415412628844262605697315561157294968702326242754670090601085906159633649055693851325499685969268755431519080921951306748319252714433096666464651065547685174876940527180341302767420173738415504758279023620428568222441633488195648709424421207068187484553736425571374937208221942385658945409051860802050165949693732540682248653605784255505621593839200976357554353702346605044527700481839032048998870833115690043169332073102518460573703097721341675665084909523473773705118765136687293795686695797760659967899621857435778223853367087668936478666977539673133375744933620704793228680663970403703795364085362690807794243317899923463420170490829082448753964081831723776211868131418357309219776908360781385488362156065486894261766528305741979260521147135682754933581729877500475237505082366427333456102540258845962983208837090035214321932734035145944583016223991157005810756200137990467175320202346355465967791623841846081296363165050026660735048069628197756868055885835799040325405247995122820317622602362598345331275969728055931917329168227061271254668228549192761128390695246167801708712560607045356063243521039301318706259235321808846325726201650209218720689208633466050628796719134482849003693415986645583980180029040771481448698848223571684321092053822312877654533538972758944878901293924302153661122216892770459405221754343977232615070268057122426283123744345640979779798626121376909425462637107578933906010682739362088342825801615122875217369811555925823102307698572421626351913250800731701687491157242600224855834287086379463133895449351718985598814543771820666514788524640347357584688840208399817553444937801559837900936917484745476176088396517526465038095529681265572326926862829770872831507945773882590060237223860374980314154995601237420215248812181113050754955461208262385529527392898841533259296366042517247831325160384242828130665524384801559697110506029083641494919905136299883148698127884131596762729163009590987572971810586186456745287371078888601603706267691395749058041513048605761087360802423305815425084954096012208684118091755700254526021297998205170502954221384625081930955265556227455492280668072637416071270411045164537764227101261657688610597853265766078210294156341119075028391441459741735032494193350678171491542557644016977637453957485231502420528232167490829514172786289434881861024737847033188730883374603548806845072977714206944241723500304169989099041282826576525235036782894034748838141291207502252517790576768439433709339985330858393547665679475231024612274581672285888039261630861756037772550643394606746060356932484785380350463749397526085404636188176030538831716347997854059482675683571399927726051079429519552653471561466182104115464311826184007731804715243254580858916877937005477100671263522084097979655738267795853388392021598940664568814833329722015665161245746497508280895613093984210421956922405741694069267269074605247127416331314632510807794588781292728149134620353413862478957191703235846735268823875295447663244317012459834587663767721521260083922411203561358798895967625933446971377759834365080136093656441862827222012484336659521677783646414594203249971888988476059628027636401191545824128121672366062521232282098554100099306222769117451188303892421858752254942019159421973462497495259023953854521533773129672692508412075873609259930185584950196537353968584724559664214435038996981594143556494449779057179414651267000847775457665236662368402595784243930262601010861617019835708353857187547976772239356441458670771173864301171287351177502717615704628086805056468809110227774041919244312941051390087273015899252410310898769354053408970857657690347281546811826898978218147858932105755122439676254425349067214832636075826820183032070837724645492012542213674291901769377130491232360546295641176878056612479115585277288307947666702821226336411352488177790961376562672316242687398324468109520779033220144947584466894778566865704568060137158236682873568376201173053844453380856230155291350196103340155128191751772869864091197704698768252352495982725152706049673121112700894393835951291248457212045070112912537868848336277839677002692794766135935746899541934963576187878632533112100605120302824265139486020799574998436866628201438038618977019493224364685525286063684635935240161499355423313208923137430667557707411373444621606177189781697016398721884457873978019614312662415125942158635328309941429135493197057769395212767694564835765730822739680400656630010217408410371625531248275423033332399150758534780860447096555355960622317602118681376418389312529589217896897798812791581032081365463536577170680475113275283141086949335359857827387897847728219406228672148243095903641316506046986625836649078279766383782211332935369035049369259790042486748735498042462689015651368749853566138503315534995357776594064163719874759516230087236679179540671402540048023024215832739663023840394518201442463971147955875897909580957711716331114629137686664633227629136278728819015823272946403059271932716493029242853607943509886833815160289494214990075730886277156139616553073072537055354165706685302895237391931520319414199321223239443885435999857864472288154773767369344682037212782030584029868999216849288995182734145503263851541947349871219584844534809296213024035344268063146574954526346061706659825826591213359629335359160544679352037821562806514553286687577315846206715741666349232285447425871597045906484891671476198217002954867634726749008284344427325965804052822589960684240628105213717555085545484519639093825073803216577791749245604911189629826453741038492127695935151178024501985606946220996708117536688021334485599099975872199644192146276008636221725852432499721577301122451938877448096474398601680189578359002674801834475909975433227741316031898009055920113515324626398754395995870520845431146865066180857065137343304464052764960075359873215097010851934715720151009318379947723859712585160071074521781724645937258337021394284931812918664550188207422990195436778289385930639376416703121353681105789679788939633555620346718493042924337100125330340437052871063932818648577104654090398154410097436230417249970178147272012944143157228869104047243048718703948563943278669824107957283930329990247280416960183155844823273124305984992926872968774732176805782793494865624130085211209627324065407083154551063746955681832158666007448953393490830469068298373559903132974015530575034174562029384087761841060789563207355275618314367946698834980348879578884483497476474234220360624245319957673093082091275417223887695419318111271192928749591047416778444111043998419569489275427107393202456376626758563494731397061133344985560806021530388611116772064630691430439220908634910084483794401863721383635517162537007958996170056354991666160605012679154365066214023402808472788485249646841226220597264027618214477047078984811249902480903133680649237765133796755066894537436606381458102155386633840922749037120152622550463302724479748965187943431057502839380990574586761705157482671162804862271651846999165157549202093517264695154377428930657224937952248699304049247344471082858391142718247998126162978631143108890942547803561768249445837735837338026084700219056847112382846185848090183217969728928887981089711163691318802235792644483350735615234247631245331825073548048416243070995149917746688545829674870812992439817533974698506622792157032423200057423992030198044504245778091218185736093901722818869659611506583761953568669316804461556903901781792041135403095018844384185349933596324915023479767536806330805066569840087363597316875027561152509288649337107974295428663291259529860356617983058835899900269831211558213069322290447678494297615034794205602394719851499688865349058735777648772140746794530493782319675705995615973974999928066066440503600640969275349536784786457640649192238312951162744655982502680861243527404720466060497838187180155060350928978937486511527405679866747191540221365766885507512950053950172413684279048487168822209469754679154749685035390327591139685623122857339896024569822426079107423144649690090578206127063368395358048254634088645270557253942438668145355162956906077252370133943737394652243484233412707469745711130266477783913622136238228027491941133769550777362990047518992342822510094678326036692849212366264725074982565766312789772283992774922830737451905655410396428082664614278459926087674834729665451876946506859857785040959434233197029106409757142566195716098420431893437199824113819933312598556184774625542472318373118375698900772551533454750677451737252639974907633712729812148179908521164024781428517076099231206870113660596581872089988897722002285991862915653853878319611180592959636990834029944126525352738137975354455274916537357707678362027632973114040256261013434888494451272188206300748498383160073791221055476141480298370531887989217188549137471860924023429620361249329981530495493521821083120107456801542478442758200478342700101490554701513963356666626265726762899882612184564297620094685891325189493389690527017292990507204327583762702344603779976769757451981822571938970791927118095497832457506993048627588474336861906963580412071246962895095696893028474721147777464631746717245835023988191865562353862049813890130772432331598154375459136695610734054716422058589606505560263986724417056505128432882515584287712955074814055731938577271419240043526238582669515377195595508361379955276983545152556604023200507496641323262486966503149735276355522985466819652014670794511979860361122518770501357037997119276794691127512566930295612757635412685735599495243544999854803089448654650243458348947384034789979507271600317358724621081104294032743574084065108165107368094253062353747459755108109929462349114641665388391746780712878982858983288697948777579369836846191520122619854886480250400224077878279780399589390975136605462330659093294059165583953956911825726119027833982837716385696526005217695915099246912905574125092637551524142721768267136910264521611023490284121396810898518792633695777740854370037284900967666555987792473249263118190561974848175436428773095919708534678131755166501162293990574389178271155547579882428205449516570931065753733513892799770553190876449799078951960875137600282675216560340934294331930063199027084786163169060170687166860168802138649721529861026590192791829308557907308241598409705093353174903415244014717083603628490523550089514402230359451349606153195314199334399234828758936319463481303357389687153651940108589898533212107571969658913730945653063532564877392074281061465180270964844703661965975176387917584660037658267353933391473119472905809526597405924476697446422582517822517865654470262400445410070960919213007015320213453612943528446158659441006806756800021589787606736631426733385646620215871799198942547713940726464580719967020895648207002816013942081331254512169109804893217721196669765069529394112979079340108316748756933231533022403785123742647809690454856424886268694950327272074178172877352203266404055215360770188038734149556018133131231502645113894352725397261028000690360476235925102835624112840981405610085522249645732572384114878039674256787324211843161261793737432424707074959758844134746963315258295423447063099532837188070590459474153872360100641332677989572561914829405673363472584650110864529055092977637398766028631070145212080323686216202614262366018966896302814476236794232617598685726373807205244691416067696695643835762971680360851834992105845020555843219236455053925698194154082114304478169005482172887357641042931846294985198791829021134868007406411696055693013664178649824203009704525346107216748528687639444977079703331781795617687173297325891898557045923261307975158365601110357954029250159503829758207079398804521044024919219214650060688531435350461969787660113841549169076199189900557563664187142725844638160034287783493903918269551531389467925265756070548903320987475164359825248769847352010192565848407050283263515303119208586954495403227822179876237615654042907625717645019459428837074182419084168125958593823338867746864290741724987833711572677127476146740327018290018979582126608555448513400266266143742434111896150322101981654271366586458032745417538816109880209679520263507132880733062497746195193944518478400617510111673942941633793413717560665215534544263376961537113151759058680217306370910558121789803957802486808732670005559173828032360239122003347737217985137401494883936962645681646975203148146114352625320301839230514590378762594155400662939149817047347807462101083192697526307953995830394199333885439394462003378652312565598689634227816749622466445286611453919537964148566270421654204988248944994337782757872532435491881480239550491900167635463474082255750501331136705083823700474805997330490444836355239633742119311709319074929834739110491370595414620073016514951676713268887216259082489273198108496115887261068170278130585803740093062055173825264682488932337787776198751440354010356859425287917314716388560589998648413531768255128665043620178025124231760529942018836231159732329501651451392737705231891441188248870907499262612878338797113895936392177862642160193919155898092574022379160664561808788620034639664200910362415384519908527309343226659591667672978598186530819910951988468187273201383910579838508968286590111855200080010624293357777162093270621459647909199854020977851504395203161560825666987770042812226288874514996610989300866986424980572900427571902904985364431519861518031488215719078524420431859453569574372289874504548039255111422746809020699912749252389148726663640099551060270774198199872155344983136184157889179639087452935581096447277017553627115851162615269993076501211172374655262963015879756091668339650922191785999071185975037091906199466289265386690442127743657197378065184962664666577620660462028059881024769442451511419532201370926593993044709616451757914765263008076670592485659621437062620785629580786395100556695829609656676892479985010098698098504139089847122295089223375955798754014419682274225382558449035049179933587142448945199623327782957457056858783411483935726059354287536882632115022609785132039347938340813307765551389255560299541557614987846751499834649573822850341764419622862704605657910117758861662400063172023702968810257405890084149951386692910063063268856185158509808018234099396929825200414464085136447993172703282152085250752026431542505327959816442465359726418462084097933575156137362298946194211399928474435570713694168044703646427726041369832490423372311564479288620138303212060207629411365638566250835217604738094579225945356489047767464750742053529410569648881126651102143466962128442565152371765603122012914674968775219367774308536324312249695664260979089145074731270061085632693167100210099186288697767094948047696272947347679055242018014328393548690411057520750380111576808106289675365016004430048585971031943019297155066562975150294234080942963179159576929523931504903334019746112522195305319001466674077683587224652321256480692610856205188733637798389840604812877500999387556961515392317586162914715769749263824429437583162082064990637502741465372161326502033463126798018650678075792672928205717553683571887820791396372222946259792675737642249829467558760000216728190699515385075867898796241186275892296282382015396705389295582101391061973849055113413652650243515248914263411606463886524232172504992574633462832982558243509945709578660385220074262452334521715909517881005430628957211139812079036403745132729940467544118949928709751254901008063546731226113686450072524213188846916136860885516048333474403568448641992262222126342769608458008710150632614697681378739843718733377781349429460566843221935621240689797882624263821123496894323295770534359221877056314502485881322016473791010716887756908532260153824816708922984883552876735832010895804087104403240735903501083717763017608581202806331111415425794834843851798560592201133777006506568174550197031163408731933202807281168735171517641655245709675502029750697011350014439281495952799831499746620419648013037404488383135308563945271587675564772196190319368574705357945811537423122103616276376356426008604486232225531013840266599772796543378206157427603990057215912226351201884535732406486763943899635782737975570426567090858015428496828604147128160752712056535218621936172456452958524989887871668020581952882874177623818197468156536700945337379996623592347808215919419587973933645413988912859622031562319654925778523339338841859774364421327148991621334271558921386907548765159673118550992095072182951969204062804206693205355488118530117793114604865792886859888342167414364956372963903541104802762033703298138656593817186388255721734538389513947248779476763852526149572626964349640770511906999901725868250064462633993226487741115171241954886249906447098073750829746900828600974364413411189160113338908015931635410223171411588410436771591213022891309423136071153005571587533967905064306819222530063940687796744108420113693039431791828415576863508895275328439878066904149030939528684261561392001202150100171995226810365800044627221699544031895381236085021239974615750608075830027989352372818940569374297340851893934431945562782025272495708193705662095695174576240271823257643380229156618354623755756260728221877426281268297541409665607888224514612723308537509822046398467286177327110674264981119691812619117370318887533562522456553054905229491367113331567627352268992432649125387349688489709953055940660720320842235015774251242829033079091785273284706496287664941414106381392928302370546875185200604454008342810086074590201762669064190791596096733452946543191956063882224700759545069667448976157170904611490363911484463805053038322409873912813980038734374603796530088627167396220663243484595789057730258542565160389844585968243658603858976929753737507068968439082941577753838541574068790481728492769471214734300300611082595260805216150518984174406835997685830918252219890603739593546541555391834856490488756314806984061221310760778071664713625751227794591655194301286022484906171407921848661232084683844613967147927787956639654378931180216322527265950354948157700480453506372132504397173760291126334125078781069208801685693232774066950153525397257437704424752099446650901072450516790919012759317823833979518864414511770746923819623300450400222713209807960967948577309937020846051034371669132467202170559968747285064423322062104116507241890910864023489724393396809512918236155227914650086551657385549979561806255315677823965126149430720051965707043191677104356216890724114213312983953791845613643154623139358659037490872752719931632084967576267261506196348744012146930028857152640825686338700274533575586769490161448220351631178609664958325870430962509156757348723132716688986456448136209459656213092935684660508170657370326125857326422692135312411746099810778336834580537773147167339042701380969021004265445991065664746708548422111066099571503943770715912508539741574131434994481940965341549644334549560859981228044888120941843138982902107521310696868057766288544605199053525106040564240611058854123533748316778777475610815878819603831305679931328869964694733057137045802273963157878241675607461272767901984739334117444596275443679225043968209984951374873965047692095764213349000225322828743963735108380695136356079730226003806253790588756542047538263985343586490811915956469305339990100109551888464777827721449050376722677529741019842779976715637229817569474613020961043571429586343534423414192909467528538821011837301078969699988139402470632030306946815395868432361940143789554529702310558216206319566091653156169054314568582674927608905128179472419296633423678961213541862674514545242907952884354006168674259355974764587336578057227519404147009675152289054449176578511522070590909234225500034466678331367741965132716544276751474924706657847066433863742524793895409007756559086961818275331580523241681396072604365245267106228529106500370642180063009354548784986094736031811433053102499341484546520290334398661455952168254689870976417810775312431683857911806885903043082348808688262936307156239160967640996578670930822849681221636729045091364583780544248975143634853534132341818716470052556762005022400250191316833067448164570937954012363220890758761724284986812958937161430269367578602446585272773301942596583440171924575973738127417133411619653307885699101408999699362236806024579239443364743536231160266606098203293513045323075868309112285395041402904969565362583575382960569345135662631859743397169846704298750042060644141655901543594642409660953816473198569772419266245660106083698267349279477669087690183344007492070460926733234640451720914026384490605561867243600250921606910260926275958684152510309569570041988787028563734708790150833001290752881994597723178932148012672097019331626451727840200466292829921046134464102046343046727409295800340004387946052409523322577038570396852814943358235298970293220379077927485415714289558805235680980678496422299918510352992802444418844033967322933067094752368498890678405458550802370072506677237185707579836568597936234927582818368047799200321381067647925268766230252420624412101811827042482965889683475549806396237045969442903075898600491410319257084558833534133292371221152658123271198703337909784188947046609948513226818937711438564404487769114296004975740727302819273682495140305731239843606414265680002133026727264927240436745279458435821137253301474727119968909453297885907137189106543383280523027393909782867562321741695962747640319515607394077077384718228541717710327719818833922114597928505727836760939098658606059505047423533258399220447164470567826736398975488499224231421821480931241633611148258734818078676029621707834249985460942590268199256256623682091155599124644804045090604405550239218229412546120573252508073833591686555479818723722079724861404577059011004711713865581486605473239015885153451288857269894418890723382188375476156898995602997429595274754359274873855485298816632243613499899891349336318794821880870705518440043361025757072912515033103753382368567494143372982354326127445563279799844964116049344403626367427810186298332013299716488536711125621985527983029984406856161372349496874564848513030312098435084586955264658324469291968902055788991764993549275621378264156912829163512582974722228095131886700215309755409412437452053606891211021613237387304436695471996575689628956236212828998326793068310401520721007715694008557836817261149528252240705794423673400197228634117657999961985821080911352375119047279563324299341378307253318076652846243627641195295687833489022721493458178598005401476024451843197338536524019070705429053581177991505262862176550550945287696716087631108915205523478282793989758775592465005933798819786646508285586453540258080990240140799318572927608916838399443889472733932375605144370654277712348729832306101452548136773736298036038237333370415745102471349417046295878239004614489527514656843196306519263730385267922246629569942941416582978347372516254328011949282623273495098737148154112364423088796492798537548454701397794997437828721685371730481994300392927683352906331624233384745148956698994460609204952586201362303381579501218126646440611661900988181910013886048290118266383074170503437229105735387531560826698164624597857317789902619254838350054994233155119707825352075018632738305846167801890346821989591121943989417849753435345153936970251691861791493698596176114863828191693884981265996336388541511249483349646074675992093809741404565844000345593729526569265086909314212069470564544642106561234111968699954233294720972984388151156841864918874870500328325632620516229518528082856809642918322744971037312975661681851496187106057629121879568604097775583747416007686541520545747504848041015654874495782519164376187882880636810708843529702433244726031685524218296968144105740028696327860341806489217216675373992335885985413510339231296564161536959715006036914649739119592346451747296706151180314167801074278359091161563437637752441317471360652841005681338126533198491889156070473163871874077430814625305433051263468020708926806417005944529724244360707953309446362155098134460506513468889165440459723753248890745687027892229956455889355522927544206822870122411869373327772857280051492291081940922640461762430115312514095958470228029124447236834146867275562440298609216064046214561428791257255950581431890619772033921280870472053996956124396389818781659084110191887290349410076221698165652210091026185064437207040416035296394759807338816109620828980697306789386327027693834701818071630598592684689510690466421990236076227012742873003993576538002580624775096202534919254210434163367207024400411418072686185775042723581608384256708499821201143522539184557700296320166877474601402145055663960420703411721735510067609577742935622987561790043259796784300432611079489157315331638019009262489863272200590449003104398805407218968187183233471465941785761361470674900419731579796200992191587625922976710221132075819233206712194978013426606601378344647469184533336957240771736190230466095751940296860206710812362136110135620860787017435083142831215282405390951361762202643249224704167777229168253779318401814545318110460346144053595188801092335821345938511655826880591935566123330107113740432408254312491520036767733643001613188581437965719985035424811902263153898322525720149730289527520021765722251906655213740860819447311322114382371596789481712584105326671495663904927954616101912937189472226023828709025738956317888204207147934732256287810760549245198388845016492061591374196034647271215946519555250629166962006368730762815834141742476494522102557990547986667906829229236359997739396638205039986124854549673485652668849611255291299970161444569378488188839394984306076238440112530174868752534560507159060846970790358749228022588195512757827764772292619753441227673319112256465480227679955081823755915926444822405130407685373823418998822972688292026955861069631379116405209688925848674372696256041766938397015466024882168280666499309118356400327337133399666418421996696512442955369152267697621082891439704958409520015992650331338448575260845975140789160779993866982001503797471615416880626707739692094385563643516802314903070391290621358495924323038701888574330642489107174386837366392965557988234266212560662143924282978786497794602754755600855611632842719693887434779382352711816505856380195910436647969143979455666610167788878939380883030310411347883402702668265770612031822492190117061178830619976469949316803286827850290416821505515899143326557309883802096528167385051985151673405833146869054365236401742475628635351059006487154668543494304020141184764238304201560023878278189663367749756897864218063161410023125019348641698740916237220447762392100031926097700450563412059083362254482124534724313395533521178767208004156712628737048387312221964338661650957267559204193737133103216478655750167733283439405547614092865372302746064789464800828879235904141758104669575744858055222788949435245429672122844806819447664876199257374613632540222699935033248485249621068805125288731291463593239231001070457206222623610280526888426015985011798314104742595440484263063401422992599407609370835672020460235940143764959862037387486871988674932537404330106462447777191242272683392452571714243820802397263318884098801970149943332369938896476905729912771086091439566054541527122764381532879901679968448054356086736937558664718584680349960155850837051836129243622756608786920394485566517558763255404913452036917044777034427335453868106007833847020375048818328867978136264430765197802606241907981503263947214005907211159950251524870583657519441399903284530182241659088867703282484137373332405908456287683265853311989217698490932158832270594024017069422030429802569935797166898054356237847775828500035758779424952753115495837064126750988784105878491083173887144116910448953973746907507357521438843186573531008801328010388886933935101484414412313571810738525197654188196223019931222962007472112992158465707082654633644840862983711269164722968690417126490434527257481531571512980118486815631642173415896412768313491969420801037874445363645158189240062602192090819323571404731609297492465779663580709013273985797575619124721161846985099380469679776608237956278463968331804327691834808160077582752398943118722510684919957379602691560572286337253143652876323513485807549565063076653435629122256714226701577692723696847484072480297670547475021846003480017676218678420289450645817121965621362490402051779129995916420853729936464522203555979809659387759411520224563838887764094780494628164487445480707092884617859563424547508247272692281575241490539021648069427750279786151919461639072013792721581557360708314976692428409086762521348209972725374285624991389653764891422046302307024899163297130029857880618284139784972807098138858208923721284815495264681918110260381928434145299768691479160680430645505069064151180185341416351530398539952329157209750700398676896928262353111358506873084727326731127346811403323806723135699277492305131586787392715396260836013110487738812874860726579222257280492526707394423042235209602697151499197870249089879798745188603682250533043143925044711778507654633864277865954569992214440548379782009629150047505678282767491300965469568024498584336750244721411243328016820047546711846829504027297693780593882606369961444312804492352905291129931549818123428568663932720248937903166444642943169367554897159551566124160146618182110547375775558695662099997584024776256967637195516332567949949487174368120136081286134375191535440105634082691110150442566536444012194111882965357770162866375028816687747170353551453514141212548264224006647687715868436090114703237612375752425899635986525343344793202941314406148044910235790267015333358215011948883269093801438423300264669024211558708108252839299231065402166082737127886645810144442243426226795866701169423765416469595558836259737582344789737418272484944824619793305495944490244973162591842702758971739515606682921429060717223470883734925117323400122658370648894851102570991195852242638228730501604465036928116820460012306820839044066681505496287306702796360718569183865943254854807772661989297879738140729074031534823244927188753347684145280646119007666018953144540579584345510348966034334810412302124668262965039817343273848060232742632422101521481929742341908193958770470508336018115529741800952837795256871221174821230514622828603471287274343467890774328524161045535273924669195222745380066968255869500769925670022291789303628619991094681231377571202151977263647522852154395407075032566052397052504633220484168559319521184576745174807213213382818432741378760467816863283397551586027195941279807836803501664991820076072315131042340589096948535824445780057218309307866772093461324453546473424437553599547331311293123924403658785108156983887331589794529650708707984083170615862024216362152355467308455778538810845948873848893459407781949656165536193326396224342164794615033187701354973735785776593351900568511352283612019428086739106849919371192928869264017195346342598476211657236852432154050865585437611727900361563085030898344920317442792446205095998075117021697230146832691910018296555743903214824641937986389663748553328150890812874787255556535847082146109558531772108786551894819564607686949161928613150819253233561853089608942726109093635098093923855769149901929872630641583621249635304006342458752228394272856557641604393653577266281682307205396987782564329298048424720219982860210879954398549675080930344689279039529833958887823993516404635007503748041485491952600178474540336240596966820135281767128655448894639930764074568001535581547424668278698050496089373693835671841236610647071226248116378801934183031956962915663076826948245397292042826615496605782065065147112484915113617228250345445191902744488920247927820797767798294364701783230374213017393023487928582973328577210598144664852296010967332605079890326327872056028330125627041368951911395966862074791885367675599094723160441628584447755802689747771551640577787562342763366627332330074617919706873101156056356566614911582879339408881700145905156376389771442589573038067532332717508254230608009749283173351600450611199773967433226485915048399489016281249260550701023987569647544049317790340637030483469799413792567431211505216583739576193271708126524673388856896964302032617489619677787675963587051441297036806979208759866296120787274504746716104613824988536965965096096581009617341399511417758268222551706886443139364141573612344580956585078023173824332274080595153999940942430186137420118541475794826465782912094227362701690215266741761965513864061704944655675972485649499238070575783019976639476900372215194345142732693665696291439281391251974546910910640347071063649500991988759333123888875934072407837316227517019826770553017720973554754841264536672902877324068525790774387950294890881050219366650899932522587243925588114144918068490012648012386934398885061586247510209839871550419688994196256926418977257366326554138870917287311815765515459629646476460054293534012289450151489192318792744866395386162852441271746518605521747776293510142698212292954277147782359943906199948448154160520758816254052158162107285597884452745485633610486749966253462631065568144924406242530289229961685397148418712532882874235966516294487914433984657536059526184333629655956126298424184264426747675015068214160227110530641236953563156475196957481020482766525438568419752849235694355445583021476821992201921905338880348372792177111657254611661926974162540078247655197721964922550109774238145840544299940758660169308066830160658340908385560748424465183452119564262358113174649506462839948831924095130402256392129755891347939091053116993288692259618601684307362188791161952331493613209482549522879960346832349723019409584528254399000410214299284885924726632900808048335703344374020318940236926884930691089096872858828158702104039722133499753352432105669400465150253511243985311896068341213606419335166281270877381576859679568958500898894126967112633097199848894095510566432798935016725923274651121427011081046348773725585055548088716947134088275994553257391702432808171509089348045569520750365562633319418967859064150794122236649410827969587679065812084628764378985391463311804598789597916664262015004249689259387167112547763678563226146035867795460266008985434287810590562495946215289993491756958611818149374621691677600544747226386260178060502059943025353979708951802752488446688594130909778979315656373331776135821914272405232966009651138579395899757137967121439707442693757476770523239211430963744326229653628167518297748373300395736546950606533902893031935823779214560697083627925808469128362691458538241275764205930270712216016186046648025371106399711033629604689192727856909359396095868074356406662198161293124557737447068224310732581053701163440299031726157975025450451379775418384265435527749600204460675439277825240779092531109419654342623289690546157618465530745664113872815258180037843188133625754424684805279624969399037023279841244150882979250402783787255279236670929651474684558555206848444662005481244860082743704564062520074425065179011941563963518751655565723176765910508338681175199218255472048731484460194421101648329955199024432762183097340087401987503453471818408594954506207610050526483783738933430323139927037371772391622761357463041701147857037043264698063785902902380944975848275431515371032470844318754900734759481855070481355798280007893468938977018952078251169494701740911348737098477915993969716395442660982014539954767425498905211441124635379800476044048265453746335274914845893553301244974039501685155932249581779825334731574250197484646900538830952311369955227054777821047000177689867259512565561540899592632605459100017216316110493102640127547460169442200542115283519197015228830887094950863921193911165378926065197556631760446374760857225070426168112925069501666763057016759237456982559692902328042526974561459527017853492529374875410226459578898474582134210351905391553439278574004068880580206605455586791681113902506982794052528252911813728359609500762761133243679157251657966167283337579317211415218893570624546907599725980775446733581494850175521325633063535269790343926134227121367667230755945661149556310695778729267777843631158992682329206580961796134521687116012689241630200396276612650637255879669620421992260828186657894143944180481261713602176211367670933780605636865263400649404912562162620073804129864172705710918929166048318431787229186807575831590081222584603459487506987389484586632424988805609361489699871365404580572479082649969673190246183331904919451641487036420369217806841078285028224479340854164207206322379696835727963578916875948880447199534289020233506397263198491220084560649540338616023515646554944820969728075376921423066721084812691796004576834823221814547065704375977034259046830297725549811627114641073541390561785943207934846793296723208218893678069622079607393451711754339032353571604848752549593089849752953096420371942181925420042819990614560465190115216654163147886425274393706265463445101991653064332779302294562797810584415829650067409703617919078708786823411459217628792158696513235156463915720013248099165073655889067854725115815999576250568642505092090440886666914944329189656510057239536770002832745755349122864865191229323676473759156224113043290069577083722536656725995167228412322753225740305452063185809162076041001999920923669509360014193238623717746511496467678026257928088933451389197765721885213815119243588420865108856963853764016160341917413234326407713662894907351155106905199680724703483519145730390760001630785546140650634048388608944027198397752630017708268648274744200184840834742022616231190464995285222209341505065593830508582641660458353872837389095903466619999233604791225235491514245516651288721989404986118335303544199178222245273699229970291043400868930821835870186145544984132857782398258365769942461583251700006824231325800417988930686233348936387808805867891982254604269926781864142121676291961504085759058026818507946491712083778443970180030076874352512982674282974907401152720055108041383316025170118099895006937624182529764474985613281626508796676915193861486767329894108810171576487862479233923652945235656503654113219096953272022919261129189494364927612965996050100283820658256279135471867872698414961743757597404007432673029290214660120757789009977587964856037545580653078129435978717913812931187952386054143394983424178112180521011194948901970289846824768938356073174662237463261306102690727470590387833215608693719481524064818581056224031837709423027611151477550609472058133835969266532777922122631867275339632444444661199235650800213370891248916398577748482603741650393494723984797565810691447959063032765216636875135327174803522222525819837259036631771877032178979928882087464447766724022819157630154639116998368775206943139888819327071490570965388515279694234080354296466086194344817092133027021246253781916041558440604447152337610135447652801962918293566016570480081828373615022668558318835691116298129791879363105794983260185701188932957044575386805941920181349847490794057929066410135292491153283642018997491459540437611285521081669535060157188443077812014860022276921628856817318777951824493169594396879146025000862156047864149061763618613160439776810360567939454298597344316835144774754350652392742835955888432267343195136145047507462871113511069651724688339658815515124467573917699568675690211266498558587975718889318497138067467433809167287306511289266942524782030804722840902723886168148885979287897147295402697154637829085597236128793236808528976970638517351772192926701445531208647869214167984506173003391844390134753507128657521499688117403329326513124425241923496148401921332076812530464577925315616525178430690171124116000082563509630263076863738634783550500284415006875059372444875889531663262728659206492911316671847267304914337821871508916872472522946451702698147442432520518668199669228844164993571457061216957783688886477682612419650698985991291248910609640942189427671077390917017195481493823784433927929273486726533850951868923286242170267041686642741685536005274284898926083544224870308502723474922941982806614631096086098685362154376667597815597224495685538334681653987579497127359436050722985645546107054031331624820985851392214675593416198416289291902646653397596019214531715409067545156849779358130332046297201293835658919940585634470333088705567505496773886089035721374366461978997179683326811263740107518891802544098931444311715674074232371897918169497609869466807748230889824392645837724137377272110370008703523641077245852021601556576192250280566628210987226301167281863791974157684643873453999590720121772884991005367874990001703721811223838018700026745485252506718055303157591195633112607897091325892586619148908079707008733130123618568441092992194766824545266474162755850000994980588313392653428816360673106093117967964125104426682513673330665457682582833448795260320265520405999593812294066480398244200241342334573654283023155438954256496853896711948072688386328311023460741761776919106297564551531713816092903147439001672252561627679053330914147511510040528341250354970771165022990616152003190996218927060381702673949397824822977128260755939388566698690117129912223167900447811872512142108987862770565020657398149318680308408764069589090831507807986096010328560326297319266089806462041464609686551874356887652211837078083746048121426506944615128682234431936620490975095488525332192180349380680294641082885202079848541430766510078703242317682994636975817227376082675777425749240700033858234717729543521924546213153340622334477308065299186712078137242201980291933059572203673008019829933580845816261697797383528787932308666741486894856443675481851606221524419771570861435462959583478071380086194627975491611641007319658079246062870457557794622440790094509474420914471171777333063091182640207564601761939610226473116717407171942865388403547752561162370848610689329067619236335567221250997402721882349638183184467623143230262530148030444279324206850958289555389838038045434203077308719694930967865545808979807057903154132624317951850435649091018090728572168900034781501448522581636740539365864255422094251446461680959556115873266193070394968639852101180742629791735219043468886020791917387426460297309042801206018503003509871025221762615251831803457267352804676670278380647737924067173492869455145459769566727298541926945399896468695223222734797139762862037890578186790814494158520434192682873142510894707851602208211836061198212720945182902631616776175072717249849452395328246130882976986825554466800772418608322673251310114237967826221178263757438270930492166189182897598616405695542541100579180363300187503898099668774621528386468493819038795001526295157292698373863549002396529618514551795744322130240393297757772445644987923155958553187767954577615128255816500207824044248223246123244682965861235555733202897739521486476347235901848267839061390241456088655709764635540330962089678335669184752015750396252714601711383819537634243964285154363426695903535025786189083656322880980538977182632705196709479779775138068738821236564427897706762426794453293641699457196965178246675580128558260309952601944827373630349564421826766142201861740918083836892850939214698355918131607738951174753751920358219790746280357278512843149282706535007476370905955252254741042503383320952121348468284338944862768879189788691553325279672544843702487119090940440051045712781038029066819471273523562173914342585257650052588094713165723514758578985374492016221585226133278575172567479967929345654972634313680700772387467289729790867983372961146588693490208859351329693625226194839752249301291199362954242468773008358809828645720134581092852057024304780451234213194844466495827770252908837693569770858156750311071353148023104270408712640736929418787332960991277859469870121992835902694096903594496996177402378692300158720593990465924787126707277522987261454166352669242989443985001841537363610674346032163747241308832680866967334577985137336805721416504241557586306850092286917275097587046004515181858290837798960840371241771880152594850621678308061647407855540293449278043737294452547946958990769467963035562665123752150796715545285793012230506727814546693761718041973601312850885643404860194148209109850232739152659458160533476849473700213070494982723404607518357301368926644712680041923976372344526057966536505122738831703229036769913534567043792687899232958197951020260665425545309801447443537975466805412585846875346856602643140415217469971349560665913310853537488057044902979177916506042608789906110946125560504677406476740222802052500290257967990937298596980605619208003298667938186184953986591934025559913364622201506121360975051322204649263853422280150924596896843613797304304712128213462258328369273347540510461864966079595170970902973116087334697936526002067827995873738883332189474656433605280021401256499227341192693008250878274400395933544296118928370469141365405480829014942279725667631822523319079048575362675246071383776249145781279183963867655576093599953292576525450441920150645263981419057808097489522668483903042101259794986056591341737459392483587929924585762280341558617905491319439662467287021547655711136562922762743287306532502777092480197605627673669829438006734161466664219555416859112419930354912745288979972030100405830137419850563419047036972234925336160241427177805580885087036813315118298713234739501592509756067481408222371209240637905866168287410879522620219636086651062308502269145721225778880964020588895154220119315282213523683285823183475016514819290332560641762968021022318817572017299759720073995598178089842819727932943016542447773999086495450986467011297565550888082793729416294319127054185990473697669198864147700041218516235940528666007343634853318582274348601456323478931645935913079130615234722136892133123780785723689826393654403563091196899027157025703867783518466049544454515887126372026527914649634323465972076795175294754980956886946923326502302248394879285501011745981529967666234286055681994710431918591040072195085465060628107755111624085317096767227465532365880336523606396057994500866845315949692755587133495081501021896629114162814973522773785254129254956502934972862348759190574130859171642009411299923585131465109014416462893717095085112205050892551187251058893841985829650799622769251492338589461123663291699965912117041452392343375569586017407785523599749043096380790724032360666402219171271219444502829009464444352708249187357191155736331285783604776546738538838583344629627622322325570538073070633233905588720089459212009904187595400344829708513688531361972561811668786415994474492537936414969072213243162333249108301738137304262189342773486181729692040657380222161210194808608992189585448195581731655672484276753215518805638726076264788248026159605417527404996649549419971005006879063740385738882153244544615118885828608268297659995065873646133322105365367349301359395116452915943246708608204999978010794220722553162839965011181311380940293545146001158560186566214523825624772855259567634752976307022997773500867284497424180502078080485022575247668734741986411424043064773148281677453364032954738074137992630275677287494176130647657344701441745164221217622908161734294033866698812354957789172685110184537474424480004693999992831419818595875131044403611267826832461345731759474514840656851827761856269071875966380054870111635593244583870994363554955986151293852476850045735432704190290789165311722738640583104398245345255384876452271014398277370054422861367596759223165726788875830615776400758349938615847684553148925424244345438159977510950027904064948298662161999927091225941575002868835060035177037018776434599390340822988054053920654645673841199399057593539944842029417748077340900255987355036264885321175528689220701071225494490469433678872462012699420246816308457861567121593831520917628449778305966156096989606106647844216188951410795234187709045928323707582174552316291204958898948173582377569683804488653007421423103968390589826106632301898655842033384969026731354848608143784602368974567558693809060089938998698354710196192200475005965426676401103250991311982777158033417050527382683389778584568548765064380091964181371446037536142229551508987045579055289523804434245666861014140232964310549393768766234142034362829318374232941343620059394030398011980006405473827198052934180190111069773059052916648938548503719532801951926729108937133809808535424011307160017942874926470638762633385546632939796370010870011424036715898005568098694058511874114882943052373918206406577381416413876296304003842068158477690417965429226499720642874197899402060386807254352192575475099322433043389515290975446799701511904843651572462237364963302605455456216079618872331869468460270356678136119377952387998845347416088406734329649612872038172874756085518042451772669116045185689361820644210947993752362715856815687454109397141687861769709798315441545952152227554898672603086129154867113229930338585348136291687780555976855681267486482568520603076220979744996708037439180585068323361212514976456698815933599748351901499172832980037988750492122625095296924878858175772155015634289616671840209193887831233696282601329880745688093012890291308772385273891756659854388837138787860670236685399989864174221737924964060894186770729322054540570659946794369547458853585489324859245522607484324105119008390205319025622611492062883563156528999336486090379453966427639559727065209175229754239201629335566657652516048062016110858552221967843965324659122077888858340015722752786032617898604373557793579731373280459812737630052672141182701252958438912076097159289277045046353723518981647045216254314052389269851044504775031119461738735648179415722801391822052100815910064338657588951608136225963792570013437698801636278036202621411741652812548738989317099940940103190840160210077234992082611875375744067270486208794093313669616332251216559127141060995781450105937285610257422574990105995785682958218598751359412554575737262325392808152039388053548620285565038378189897174047196806720599322204108300677145299446057718860992797460890104412053835136458525609414659031657779152500596525014756160110012722048253866776422427703493490231258227648892107023735766031459026408720220450048209452354223143288156033270926397530225913708206800756791676528185095899294039981376648087038659836998060687622662178002655983246820317813670357497844388872136287138580075661672964358465432549851207085170521668716326397672912222337458103822073207493384925978149653934826986380449370448365158610055739401677012791793841094239187113351553836049334603206943442690632936693593143230265654783818491190718053871366987204001401531887780136989056034182285619549290289843604489882684479778772237185060078424929395835645165462576271633292479709702868516016779112885223188986835508674776666124870452339411806945309156985784343399503324540836375511759633882760238399856628398878374062703798775063509985401804083243587641309626112572943262051223485337204961499758400034850581744561080292053526714704934993397956534020058023480183150244987407487181737957218400664727578685308547867547794014402707506252552165545493889035949353846886929813397752742519677290739665408756623929022226079527206409604991372352990617382191600522234346377888090480109205400829703228050618053646971227049457146663952243156302822175260134646254824423420758093458591024429496908197348807367956881434356784089280706098496707882714431840308440317859305471972414894205120372661193212344760800333122894307912818802592569579938689085973875070938478272649079089711191954394716151208918916311345089115561671289873525360436319239810286458986578028334560129822858062368816652062531239432005586801645960218028756229749900258950217040029165084050172407440715415053081612244493107876335384951988360418715004713294996872199950842955625559664409798329610355307618818846878711252272476883125556746238131154206323315303569838443498147427796516285571509035284547991897936347380587711402592915101268939228609942927320755481572305961848174873832609522503200421992764781584400217310069838722259784734965213919710182202609641917660540996948476011618195371836530041770646859229626019699016578235591718940818123089279318389739813655816787227361598294904852654142228043462950293352350996115736205872572445490449659527863314137432498683912313769446482768938366638383820029988931525791796141267868921647151559857145795070310528363246878022570711618883673272384086996637631334517665603481366420831874495471383169498149741432423230427227584459094387904319572523509439950497884419408657197627633079952988028907559938505141506276421700830075169164814699941068516272008678823900596695827241471456240488510918768927077078647034504862208269400005171645097843149264796307280868521267652457147216729903695191522761435666324757591339094331370966682131386462823985707962009903449487443910279311614390680745091174709035758789149405611338167838856982489808660907902390633697280490388863829885423225530876150607673998271040620253408736714523187866879901188063235481342286602205191357391681419415468208715282755657038160217410854362973478057714141436351989709654201055384840501290869916590083121469750856487169043079138693722401198382516911573397003208871573086183738011637597574734736377465042433951175167807496150912537207061809860906924575037666780198321919678914712851071609327644228317979122554763921290111599507394894016031991685260783765379829012562640694218485386333786636413855725634804682669917257487535615553999937301734444363501860136941999133912306255030354848267007419601058284667748749851571559119994795040962211046464671659811368060302009317820074721526768972862478933246725179339635904502438455087906962627704638660721296468120511461529819150204910854340190282380562288368672130070275070344305910558166271577058402419911942739793247021885629444340561602534895534943318852767569396154386610477643662719274533285735431952885634732920474148335662954514803134004080095000342531445017848796447938256113957070196193907946650378700165410927129228968896913266860594198769412602353620823929729192527281755423685913151091482426518390497864620421318981600474336761411639094954698470353556234170266005190288765499954798481962568544106783240422108277707102816655975703306035100696499492338136193139076526425041455958180079755878573674377316989183353019691240117092441563560363395188102812985994493139661589556505091561869686114236891002893401549940808024524887911166949590706369074583941692074136813047262628626040232223542459774959555323853425230402123837591891982834784272774940039230160354185360285630926547286127698374798561266600961764595931131967004338749481386728861096592399681634819106610518080595103153987430884955860910421780115900899112775030341791796708631671196354573122573903322712470652799481570747042964326166228287416795834065150264626803880246197387732799091028481273931989779905612884596918465224057402138536472314976007075607495618550535384237697437637053940114970919941927695845575562475936526915768546524339599088922881522843914101184909421497616002799439858684454637516178115787596198997161168493062664587522053548860832629225260537773765730264333073769340813957139775968030328419624361714401690652883934022256773074964935174521969275253747100569294319753807874725916790038382134811833024388781503453000328493359910429941989579828265441246170003422275639550611129753738927936525582460020976569211948290543875132811279200699480479825314571467093713457936988879062879196992632677660804542052680889820165206369136740894244778147251383546977571125456014917870999202510073538627038142812055543645758228495136054133518323161168071247227811087056422722347705440919423471336577281532741245516145297089021622366715458792172497089319038630680329241566296893946426016998206205491843022828391589191694124775467544991875371762474366027713051726899599862744718617603221628361290882286551707450654603355970241855977910014431416418594684690970691113192081402351902848407796350955600969063474171156576368448236661575109144768912684709881441486940671928960760385802821020496734142039453356223155729429960152544096643590158734589181295047680191509730672638523535240878998992034193022932552590503723611511610337970367607501564901668645770795262916556603672288447541471253445144589680163383482919768773374558593653729978752248485180084645916167353078732925562650292309194513052775881973620269428270830569622937413042263875702841474836799677206212695052445907052582075785995162467791934248531840267189348027875443208870961002761334267479925481440543557533278399736428779811970669158930824772012497470999582316613884041442919418216548966784472993816483197905217089612757194690735800323701190327598144648594867641017260427781825874907854067468286038102936096588758934997949698142522509303557611724719863921788735831622625376206177188692016727133067306928549083736254879577591712356992219482613075504487764947413634460163529166939359655069098033594046648853772989656308131836869260823456374349188813915527414298037283393212318945453165160762401138102361562672760526006916888824319527606209267068091945355956171361264026277109866865060137815521937505390901759956792759747207534274287621606868545265378997969673508347069489186387338191013412852669097467803589140599811111106317369370202147892607879173125507240884627811544077488976276051302200464757266241064816065310361011618222433920036587399889597367550899478828061226471560321405532460815953213383912966343343403861139279406454190928577252873894787637187216228082247707486370984824907473099812606729390750365200360904151663613312316586398556133453676961593330970647844078261781294558247420717947941903270524029314068805209431879948767186646561426930720273958046064914505115768382074450670386665003891322544666146968446500315211590174715170853078600325538649455266266343620532379463934346092624458045622505167042526492854575511076151648403315454256490417800365417706080678557863589703940694805094271628215284030615420905061778855762570404562044523720253077051545191770229521872782545157944271904013288610177182411059935379801611940437933061170248056068518509151952366290056775384596985428969776514947331423629349956482842516539666915701056447374580268255728766887827982106923556644207752600735540531090932178158299266611409037587967114759610950745093823057753252449429056400413844665446157696883200806296815306455899914328404805454387832105662157708176533611606739362240037812006730502458841560443702577007611907373786621279088460887654719309081947081417599959390765335500363108930851279929600824057021795802691832373086311225414883489827484561579317725789246178298937084737704101618427660549291529569758287098520096397106685930322819169710339052490821856086083294921089259537933471918607255197324375502042232543104870906918968762349121955225019872346918359744809453053444508039924866238714746990729538803993018613078907571807565942031678197538315462527007706286105779105894619472878033943340926592041216149930138328445731266063834399795443632313701539716001519779393912572719016401567761199313170288369989984566745554098672083997972862090995248099476831915163325327339553176162618005467066263761205454068632763405076040925515687303861539372282289853582107464121672503109126484760930478397502666915998095485828654821901878701235806538443139000756711984471116147872782683093093750769926010874297051686755556942173926145776207068987430334095877379477140357000632123255673352267477365280698101822595299196049682150187622165809269222777650511878145736106920774632350545406822001302575968768283255401819125230465657719040151109132597608080084149138848335066637149458834299023996969145076268152703661310792756300848000098020645979651765395832282148550732297454652460146600036785506065408708256590260121214362094391414843575697714823411624714267520682711059916020676398771980145449466662999818730624663168957131573555084691029874019685704182691765529944328030100106987477265655095903466801776918561097010639765588834120241609856575231457717381123655699533952386308157890747875775252294072869458863701563496542997686662061730026508156971078749759763114140644260064562073569750216944590413532161972832882144335150876544653228336758959069402652153074626195365386442702452098640287499806808139412419637866372105060712916699156074601755215457831000189730737012950318638938655066079816847197334057153671199376077334453470356641666880174445678061050469520483971718095038778687156891324192905632005973669324358749892106948634068860240435814061008037935693696141756999773112372083274027157419388101002607050274137447410213948079471657584543422776144900859210613186101590627897631812845734494003244037414920006554016210699362929580988935406271682084077525407248605547819285819906354453495660492033952963087468730186342001544264272361843916119736774615298677440301896092710300579657071701748999160459961760418756207291595335734496723362920693380383687097795793893959919380900192863792066827625778407076114880070474496059149206828794587568400852559127659557719125005119686735001325537833321304411448320988753368629162831161425650154575649651762079627730413440680979861416565566075437833371211363998706046744868782622811519801082126871880350359310591958403586739438716082641164989026338883684083050338330752881511358977194771103472552124047622517686916132653570479490905174545822322638611046267544528070567594271982111954155650917962569349112383275106247830273636208836225565025149418631545539776008388728123020640049533631382728987170492928834064589040731185400160261050346298401961873961940187094398518185115527466074475147625464193403639749436602262842070455150150012445938234015536918075114900554662619781172710555495353274330205591347737361958959582431132226409905090820692010621029230421985278818569189803472214917850189611836691822869842996736768275250122472578230053075160094272118089832654510412146639111019689756562172046915994441703161422424054728988555796075815456936272648480164334488942571019906027694301587728881015449485510060511686473359211523225987286254267312740274553562936183098867971224196897129204183213675961111208103404478769584194593728135882972498056766493206904165854959326065286180754366832635154851720795698527765513234332156977385049084444280293410818406848542149632012254812631281248002465748414320208549852378180773026026335469454070665673222920543410986679585013046753781812077066043580330380239712239450981911056961583092123030931528635133506098897165626637866400200147948261291853269449904681643320044965742483399021371576385630095129238777965734373964796757648949259616522390475308884761506759833943013087972960435539222527454438501515033024249005710570639235162963388074103812958609114152580368942465983879218247232268116899626412082297989469452842660982479333221139883626226104619750621786183838222151639733596946962137548064092952506975661252093953887286266429014688500021632463881431244241308992089596742184286543856259883645890705747113772995993744881101402240851701079434401612046771487138005431619062231301146645717486843720539196617416322904671037739518814400686472843324050846416547285110983629111695794184625259163491457586061302494890469550641837483478497879080372428466187152061634621014300273298373496569726615774853087969135935212257802229815724999036364227630911274805770797320235456256398452702481268007565023797264266928178191258864328411677877463572981833339904109066773205792436996264195230280857765121806476404531906315697974705028460125651289270984399612736026874023176164833794879257373506597501495868897388479381174829080993959291695201727722713324028804496270166986530083366098426666792365345792895331523453871784011261314014778197124373905287865223621183558886867416108038566047702622106463125999110136651689886234334017944032340716982470714228450285501428468186589036886169536328992699812142866357396624954043294867953422685037156547107816117100511631311720138423470983521996131044865198982712124123712328856064648372284015956969507946090849863487302475559092006130472080772344485611228705005806190571299479610160162339957901148895844249530797359275930945626869958467252372039291946166102435179711065290595477673099597619423746069197808015499803871017931340822695216021855735003801884948588782000962313957537908213775343216364593747139965582748153005600046911919632764833337109527724600269464195881076798806275141033429698319137324715171348844585358085256885688471691164078282027316773344726225176490972994358271984303871242480422524020705420081644900999264037716115951310349663394625636310319049102558480524288015285879676125683387159947556424514163876179678179560437600123828356976010113121914825791101177090620231660420062610671539061458356307042228900126935520560906538267098037418057694387293944668542851005104348798852987712339727136169842845237130645108244039571752989346411224255950997981674231696494753642572997012470916231645197307392598084232166963314339662906005966560745974352769275669621302622956240842640756799454756239465939052478401969421571820362632588271791102054822363861024846004712245714711930947875763077163601608439581914042156903454204214346162533153653622419955553734998119283531480782677138217461817950451565263932160543447393957568800072948399499998690527663594745479493530403135425397245222349911478779935484535459353347506662161836276835612538962096711825244465296105115535719936446335453190809302725094455546046582307102132371327020097014232897384830725002147190685140361454602147528503569225106334368716832070646065168240916278724318114857616727608599136456905148275200985050608605412863206538110612219527085693996461795061458051780884404933376231871953677648710729330812141856074076291494939548770173854423492622367533520930693636361752510632440883348310444306844695216832828899992377256330910979995651121307591175840379167673304228872379629369731997787933001018199223080608247240237915728261606262464336055612404258502631204169091653791751368947602726503042823424838475894461800438943911712198798274498248631302334035933024682907108617344609230949922456896593352737945301606034130207934890749863612957353138312490056384284242272045034264067488191971777872700611438099727035862306165744602407562560418918214206577204482822126746669946571753816974538980062530404182732951979432928766680268613465033825428754056974098458929639652105011347161545467566666161503611140717714349828964827599575820163351076053823305579130423605455731193997192379692711092920631446248106940125235509592859286834592060425549272721782251958814583232927156291869888194360798309174997615611882827199932571266806621492359569685827404806435993753509406121347010671872979453064414919805626316992026136926888652774533656827878540734570676134112156886955307545024180007775116842179544025721210354687610704452409537472389297902119062078025393771054741163423184280010455161970335589323977115810253659256169300992737194016718098555614740005543270952111797955811179490111440597675569559758253610321883430706249332601536299194988349179908160628127028850566506392133834614952361077403618849019053918519405505055508837673692742747627433274955322167163040538938147773478786583392278100108769804990309342078874226480095171969179581360155100340249317531592366383428274949175467670328153561783954197085179718378958917908694810293496653101214035753471018742826222969436906407824577043924161430843384390695586076418746176409492571501381904057008170425221478112432304957755221499348822945819436211878032493121252551023160845119334856411349358985907212026057048752301272277864491696696093628090505149538858092850553028747417410278241882696768312330530574537703594428896120926852880023333667587248741353297862768020295715707397934436718009234278206597479603449272298535108532408416472760464557630103930645619812927666788748838453410448496475687004708379215440958055450854849762378956248125251866755628160062829815409804567513983942497544103956166738595774430090944622973279537458722756566225384510613718672683580048594687413919369265685996158162231112606685260934160105115316885156356671396033861695550571006790115440468400787750007953761589014488688658940553849483570883591645796824221206297075824589650945153641324237083280271863401197095955976347348794958338968793934824986332121567492463151436689786107873313199650058467994341282596645532869825697167929154500874908082505606583337815497550657420915845831611051247871789202532346119504753003135522477885950617239548472964158512234134992969378158569010534104352057223099014731120867249066026296189048465235589529418899777238650424511084702829710610083720876255185431481366034758448734824938575844898979153331771204908244169207876051936203750983050157925473663769186716945654921567169061452701385830582133160870326780404735226939648933893607562662781558425308064715155749973419147096211564866849878722668614262111389158631944441309424483219905815577546805051917386569583058257089134938058333432516723227072586043986352893527295599262401360796353155052027987413632157307420384858731407341995885172112035898371542531472002900734416586851194891891958862630452683807807133581112677481532021365480676861173352092500543707856935271491284134746526892232918815227664184057193651088214176933070616168579812670709822805182033982601354978757954486095235804729515602344775637520551818488358224007144211290949720574445530016805242298149364464147114228359065948649300387476984991169470303099971445055024546716192939889899069437127747919721421246898839487328251102985088049984350395344535822149386329621402747013626688613455837946694465216683557074528572600651508932092526641901880316319875831419245235128643321382276889221086425660538317520009719643959057005459337251750045423917375271680569697556762120645516240818948224780299424495652987475791528553852350373188197566227942393857123473615599242585941181043874601849600218948813503385557799635474593891980900605342716617190424252992885844939040076770333910259034182006772493611539131724746020314051679794453039492779715375213328524412998533782318107172947667715051260404646580746508715094762228174837229518828090609294979244662275401512432851277502983077658890631574273317768841380723979104602163397582514912985552209865638455845218532893011324523407627612924074559532366106367489240334774077494323231899781192591055512895793210488177921251933054247580948220863860768267728643841264030341984097793075658232436266088749524407693865986753770942757943397482391365779060012593097985744183443320490844580542161718012368852649676414962560845711952263065327448015077600506669438744348793504729688917214851633859731438761669533173397811160985477959078234073381450043624855520196702928904517343181631422821167040296123767576625253416279919219703757967832698316395609324303605736413192148740638078479303061606376091634043508436277626762569865677708998314715983600370027097035066871222978924023190011448703361455695665120289426602199007008073421111039958334009860510772960587991452802247885954626380920897453903649942450837148509651937222077704502249220168458388850448862083762490771455109017164783412330311000348813938952383456603334078957533969870070909159810804023273489029365167974754632313818203470438771807453561217393085629214749398133544962933729275312624353615267812481370254445567091015988322607333227221688049457080391531135174501006457717644916488488459648231251055534179067044763568833810871298253105741399594116486571003669345876956096099417865859447330399810192148002900452963559236294961076883309029920241754755351978884655424922228164566821464916129510155263731322735236493307721483222159426033935915865577949838450736254638686720341078813778069293712261699177892047934405176209373266298204119602613648462728705143047760002681418989666222001834059866413401606368987720678369698328759140836116192866035751985428866107219447923188862902814615240586722292245492808602635678307250452602239921766138516276034981393383641361344881648119849169234252075560412811976827036645636268359111966993294068092928794850855346159099951643024151237053127135402283462629867921538310683609350797328480654296744087562093890464650301694433670412264689891775911776154390326912615156499353428019478447471083503042943301203656306674495833626702451857681641265883411360123788459676651119739233583493718579977860290125111374886874437358562585314826432981224771102143119443300432615326683363092756424753193166163256799810858976034330781691315519651252098551765754021301191389290337032399388753347885370537481861147948427999209970714221447279213857115364414661184868795911605910822649073940004839993392653418286936938785237492560573484086191609479918564031097762163631781762922001162165711942600267312339068760143904042373582630266932064906804577962880217852821051135216821253026718836406543876170739099803286658322241314688549728609463847178590797099885650234732075760696101501511164132545174698634693355130071308503475079252330710301074978898025337323709236429450022356902122447892377358745415932046926450665792030650375429876542610138263684351615029063259769440265532040951193168456030321698119807373134587686078221708485706491909854212313792151160815522451539449523609636293100274040841881500460625292906563283956828610026019360787948241415611227706260140194454328807446070249291844332618248620953368638835097724830802703851513718825442845895791520025580955673299733532184412359349101070789594389416180119537865052552691620567889462417759237344704781525195625824387759641901553211357067701129183217454170783525354360707301822175663538956666415112960417387990474276123952371132970023468773265352898583910254694466152850714606042460604257031135014151268955977575731491491484562911439803164677763227809396529722878988091956541441218102348992856619808812438762346334012167398400870931669645777160454402533503360274722451492646383680067642455154054581740718327189548091426036147597039824039986798705559804391933536273447944695530295634399093575910558351988673593037062815693315958024864033781489357545331188414261590564566780975390362642062250796915815166586358075405436465890032973793268341363304081093210693106261745253388532710019602178689724336790112178038090472584044285612088707968516638990173582938364266087436430158182846907071288509007596424043826706794182382613884868245652434343554044952435563458290107991898625548528180843556560716726103403126337108748126445831330629829423963797535050141059819624222623717581507355337247577808987252391368884497950558627750222011340251190716328513914453409497758466104870476514751714971121707119901456647919224901135572029820262753465107905291195930755313068803923324316878843040807702879697678884896662680447196220538225856986292372935695919020863014933317517583674305115191205460318285812118455572422692945476018567226089577782179030502121296303397068236202910624209566164220049963089376237406825666036748729466787650118881294460157783585489634331694335685537683914936855095985788174676998347875861044389422963936822180692238051792698497411229019162402393028786473218269710724338139600269316718115736465759416950615179000326488184593883658511645875041199002462583088908591634506542849587018446577818788038874919545624843423956095278910246143757863535766436293747925444221848981497565801503038190159447157494280869169347514238160781419306109324617834631458376763090892379148162386018635895272554684300206104068941885336027042924293842734138039552969360751455846496251157818329667385180228040956355847985172429005059905914697019945924883639297602676318376538163293759491241498284132520123066600745136746331681794421079920659296095368001288899106150376209634850804943578044330582038845748354701471687462047210853204801887173512498402270924361998301195905156773157859253815639478159122618709033255555061827258052554598337115091033128563886994685818683466274512929269456743815590703444732078141439811347829432419463171041858943892264262648066700884269417451025400304458940587459042844984144268948740883005971210607784719263082136806630831944807289551213503311506983732078248179793260312650926692024042066667266596203542668142202518673952863744918151503413786553454050844974020180090187444952448841137761200311934709960401503421486444146238468989665194513312737706920707680089125388096430271369343203969547017881473378783295091902229631170996594816518527130998196084883367371676804895176417362614007440241828150205093938778844252370688894091177471352660411102487090060613430273538298862496909469372306137300736055829095373272726237486112774485896336334686930397829627300550190999981341398590468294513981693963952844278959149682235248767636110835030555384634596285376536823490405390396527248621225422546884203520825753967179817785969360494724123313181123356707638170725601733302998218903747210985610556850743936517212454936465181590128107601890753742801826839879849527687378233025112417833038956751703698631786133179280311339243603152660863286136817455121474250411055342715276574121712448758393874925993070490808473949032032938176792866614822510008212543505949850768151809286426936060727938349875346706104157702882003960573406427367383441053308619868550872128477526077608651018934919975086582198120992332452048395208865155428996193116465365154689383182828618518717053044257583194497449760965486005358230231567233076990789474657002542012796272822600618870655161325985059408755294512803135425951440893342764326347989497272983683535928273028766874742250652451900512744026403548660565374876719023893213452983843761241131710926995265971744430092181649313435920073138166804716418177592160624366139327904730041519079973076159630161600084388321179126941567102254713558769518373512460007342212188095388550805762964511744814640354300424614312531474916418682868279134843808540816011640281579029176606051696570632404731254459145351870707121319353971631155312535209288367022175058881014306372840380784297703102661622541654750368111588296859708229591349094279527094601120361279689235615625462849702941813547615259065571326012720314262194024770688336892791599659073807546005463987023647671085803007411251369436487067956448270468943216762317158647825449384975305593567097277437737851791726655392756149858745427654352640006449393620294901111107106484388758277974839855373410856173947772002900638872407038464812401632772009916759892831662276233318303229786826396661259544862742389986646916998601169955081631915453766422118812902562408573834558889252165528328516684604889965154972723531418361082366126144696730074568241664244683909342398381913253985617850366102663714538955637014159759549753736952241333217589071188391791675451487505487108532429801793076347640319324575084877705468982177903907416326026224969408782715086610585317105646682486325309491631087946239463050706351893805027713333091641896473533477611145318962260506239232014181865451149701456925129012038806606463165354035870641542877949128124976338346911298711255981027851566503487658789492670301339564094099591013563294483743507610279026534514835445821927717721810699825871549204530880045495058838431786870483517856230200150732788443052463547051503345543637432606388287455622260191153378433015719255023787630578761171256314094062555298881973022869334500697992879521543665821666029049523842087004283327865293295220466071791416160636913605648880222982884546523953461746565758413387792626547756492602204187772594444538518900586527616476807774341573855844756591404519743211061280955815190692837376870644901362081595617562963973431518546910714101934034024435255146607800936272020277742385505465713281404115779118414879795090440975011388139183530850264665488528662023761758711308133242133524561224565497403532319745518648314620205994191428563954277896248911405055936847283179352275886297924176200555070509264484358533735423798372938716530937605084583103135201756952476573439607890182708605537863252187627422272254285531071460841686259915828331141202877379951283747733385221446229806060427001514523648707986657520523394594396418535773232366756588075524952536812961895919515997784335993224713629222363326457947800908626016176347415037273248424242594734833656612361802868891076617195458853830829500621283401159646098579490054619620550204124920988299705368682030962303110212947184656564613592610645725628151777297362275201744811638533192625166535788058450947630253581006809515224867963402466575551909193799742000223140914453281305921355182414476927208055118104183107549865567179616836027307745617857041463949538873293697026328979533069270278397740435992265496631725196301815693351753791372844195412787677875254665807792106238832170209845219197722621029184926602091285155228915381048490382849737400410955651330516968554949569510335588099543336920157298652530906681146710894254165534080860147316097848989039038300785132140797956308535479635925290339763879044907723945753094106567773707358860048693105913953317990543045489114619857384358974069010512695071427591550286162741729057031792283470537946796119719181821475843994455143306734554958210215676901820596035948786672847287432663017828334859424302541487513186549004969275529013765447060569456898329328228404284474521671682088235020151403988443073007769981591050524950992277937992180606367428250707915617761285098737865690711083850260945280165254106591713536294336394514776211997770409449488202729785345468256551745129102313670345164389503925293870734627949188604165747292912168781641427611422203672453816623154869778486229242447704389293087167842754654228135758023247355205315460897181517410369236906854404248579347689728364823414593184415723876427785211906597140458241584813601537531011180893875032897421308680407205898218227518823943234197906438223062902312026300032178024531517627183836542972928233066466526704642422357510168402254145726908671833167404854331096236609207679414582098002820942052676857414214592728353602784165819458758708164422326214795396286536752618973411601753191855395775038705278858566774239738902441691998518229707398137206512369248240797702012193666091323358078939046121992717901815662451391208425884732283286774610281670950941558854304599672286684148333470043326176806304240287470335332549573747908442761781626634807758310328321507724666003430234414469360357041839053375342105364349317106460602421790668626736599648181417919539541997022051919553875543100923381859881606066162504149292567957979009421453676564955260745529876312110144869453365901329288513038264025896091449984937473410699057973992413886596645567105447207332713915279151184490628471983743678213845422515499039798094163595919454372669779665948521676146045625142666649727630848024371715627211337916623452058944277511467536753969569002808745866239345096187779208951572873756240658726947496537656138407138205450578366392736456312820243212567752813087799186732864195627385050525616709092760290095485286708496174360802936927215069537934365771820171537164636170510878493055990607150799684325267643695955358567086544271313758439336354781149117144046807535693459444344607706584306976289944809045362638012706015441318787120538273678650698801587374967949532082408767239230480481180999384044819543526945656774118742948409681950759470999637649616898685357079728416665815787935538801430898259452473669100848268782895435805249468063685659197290807790407616997253717010242542334102909589664365776695071069558290501257491255227148882540735859520403215374654701037835134487999341056195523907030890615679984167032056951362589154656163156410182884708165858765595031111052311389878578397925086263538777858871225377703237925550723672013025822947882980909982624622881443492484550759213879630218743829885325850878589175188095653548829356444809951860046378077978093729686492685286917507705930735104038555113367731236317007547337366760521192752405496435797961590676575076202274938467835902754800973409232903662383038482671312297428784644217070124430776743906401123571390699018037903522366267378631050395050080417902208279431167186693473881025554834837080332041961572678028469532985577356835153507369675359034762540378420330880590310559136864582757205905554488427962072880226349141614799135668857379257912390549462483140956110480446418469747286142436214398314007553164652161656578691911969347491874501494575080203041644013092648173904409569405699271456871896805935162725236635843716981878950275751132317542229803600635051528709187743070856498305416430738884658726768690367843685035545130769327198961911800415397578106481051204833711895898528507231800117685749147176970781865162614204472543692743692908463794945428339144336197948560777302833452470869235840981831017331469512564280664948810356133009469878263365902368319922135114314200941583152329215359965115869481223294703069056185530245726646971424864399662818516464367342438843551502230995525128597416696047967079073531102861569237065490627350046584141572728204776044888818098120061579536390482303616831496082946588878434116268962303317952218566546657557165674993918563893428771045678282632916425077480555831021071704466077249885599106581402321189699517553387768274562000962401369935389465165709891050116451783014553423621159000130785190513794459835050021118034352784134766606516176726079065869322149130941688729026052156386352483513365651053639556057335295448545867932212576987043197559271833194937704612861616973142135980033353471056187503851360517433763499477372205769946702578158452268508476684035415322061344224398570599060630623770043048122963256480336861515788433987943351786996690885130805550008072317227317417636070294212850540412695867876612004795756642023833815321244912842842250249720084336146531101383197953031338702577558743730090185658141715561790683881860850146910129761607394436097132774154133807876814605283397529097768163223547919415590586306876066412599316499217889472980054174570344768544434921069817639364204145302801681889948076892865147602903978983163197525974698641171633852067319284753380351446246668803434350569202715173970505473307835461906559595836550325677690898946715983788042457021460680834147432655585253664139379950829784281081888157018764000059459833838793618937823329122742980269246090342779123199459346602317776747499776304767409911618821598865621159896382545621770782716407001112360274668150401676120900135786042215933416602531488116289696468669875788457581193760831042777401363615480574586939828662503702007546629381189661151447187301380946187868052569740170780189625654921519628504231695970119726076121583068718150515233306112383098244969174004669307815484510189715518184463421709184067136442894101544986703821263991942291310440785884027107985282285860162670104776812688791966497561707709519336234206062697164731856369053385358247749958364386731065039757887005987734584638691471422994340544713140102542447413153964009865550125748114916775525066991577082146222412836571847885864588405663057447359369885924669641453090346350063375913680567391046611747394637144970595880132316030793581665678897744685932441805614351791909079931204038321120705544129563529899856028784546135437543739024789623521120889662734485871800187490211037210122068183189112038333036527992366784156530653852304644449822870851644437095904644164547351753964797533614623834294097675382108984657057140411668014723914888691592033028580982998916829624359269983716485540236899208471631291153825459514531208590228649108289763019044098072217559087060181155642268941144636522534562725107670034572071540356530949686355198978479389562243598058960567793263780074401315335820555430209565434243507341889208997869870031925567056615905395385910111453778867767438915791086322130355434712866526783375059237803163014548156918140894611062046542025735143451198899343645468253812959181741218555317161243825546098698444945490458441173727856643336472034279512891762584880262277814240245376170111410465485827824399235834656795955380055916152181574366050246403318007339919600340284126312094015830154467838826097880338007757659028931997917931049433044889045003521799950651694577999649874806042974553121669800919287677001171236645989260261016283746096709437913540467576935717471882883602923583810221431983084846315318557578582369737015909439439964572579065731366304659168664048594695518831286077353729465709617427855057327092524516937324364803100406604010727877108107362411625791219990656916381179788421208733457958896857811051697868468023639179160177273567585598344116709512394492570447174240923992638412528048793079220656302982670029735853148490918305278140170591456230294669764180362425922733578369793030392188422488579361848567440632032424887263359589437374074590027279408912373955938832215777783758756633070758773512607534873394948048214291766452668206498498959534392785834252338977668374294742418009894621402863187285209255355614193728064796620677077494162941631655578421681411702053994756654191052138099770301326179845929232167369221794913842272857151011398262208660689983531502241765021793138464183847124943193209545841831279130918359974293690420222739121772077975385932176424509589693696487080477972281446396257147236260733041500276879578373691865631568002214998185960006440568993132810097124064213218721159114129691335898050960474020518509242006999259148419649741013586155373623323143667869883486480500091460572539659476117673653340389625351133535743653900658800313376089367424470957625021751388061072337674012250369750327873549358746957517420818049680688983285064908686957118229346543104000493939083483257922445740530065855943175589527392299122497301032979753463427391300331510452425244254999665531180353936939983429863045179388839465152905698504695004365240525558837380558233190487238368959619456248823663144089938012086449839003692474847678296777666275727102015950784396223391635535402033239540286033247940020985174724677819788718980308988059711831975136756710548153974868689986629721130971953053010171404197248684500385626365376217867594302397091241446816351150766207294494604109558772790787241194756421189399547666450215162276694198559668978576305658822501320065207523865978314978246912878141135833858186117729701859356400554712290733024884533349271983171658375053559174108446460758845357026742777990700869667136953849338239033018591243147702378004685431582199044621644382190344860905642680128165041889326069343430116430303571896456369090211723869091464943259294428319549089026239794299771361473190991051640575031053229858974543514793916496431116569442414162280117171849247085778422504314922238790649442911390968325749611082210292909201050129278464692913220513386284508173367042535812561118177031751162773631707143785283042543197373574561299951713305062654790667447676217163498786014212312306175939146303338277672880564601592310188779793727721858531525791206383033644021181589413561620603429495902125449116648334840252914716779965540428169288565729108367787836459307904792821313621887881806399883099769897177499835205407592794157169984832997930923599822006389553289522336757730131157479015817748162101842880508205547719401962529747918280017766463571318593152676255324119466516601700601225769844371756853065278927843049144484098376152966151092563814594570955243904969676572120805475797016397181537711603127210493177568591173976800497143135256746613541296595782993398872752548163801124243329715083722153692329255935262250578282026584391829980784340576708757355379060583771645695755029896933649838656562395871911848348870633148109352211867398623360675661570024343232958755044486778732127413287415921042342663992918654322994284198053497526871051060665312450537187541493831131233686480635519651057265258304929499248270752213310732642376750575792557876528148918795221522138603986041577851877287803562183346764289991317847250474862914689401748258707154606530674350035901101188447176119054863211261260000294234752926427422485530250033287511316733065451899690621046741825783237092130316914574543509021282983569301440083757908922110756821769226836044705581624113897265940012096969896601882786872819030046117883579187428832623005968316558520783398221472812673144819100554705140437885678989223501422815931818395001881948809210967507996419428871069024705623706126413975474877106530361494880506901081864791917166664293879105539572328405965964800725537958282315274046754604570141158358685576310584791009512870165180419601434040896875348205103038263796931728296170450809310307907607287999659101645968690526019086176218593358927653688780172712328949791802729442790423063052042524607560019973528109592559036088065635912774828474235126935444276433225616057376145526614188839429648255851200822647576540378645603540162874906182227872778445037119467668542233632041939102582730827519082196616823993665206246014966047465781865495576728863218411681074225109996719984326312379938853859993209727311969835511975881248852152240116599004854867810263263642899533393831144858604609454094042901228977569111886201842229368787548806542733563911403543705813302798375702587904341639225526961666013330747409848247935006696884333269664642122799529040377919484889059261771176098818897254837885312910963125126011283971389399042341729800804749425013888027162346048781536185435715272988456032571298132571220250408428510633966348550809392858927078714385826965424970755959586598974656066768441272791842300255428607315565911854580159030866548080374164657127367521135594171459392712871112965186021315053438830245356673465399722993592040632997098186072921430029859652797081719799665343794614635874017942051882929114391938120440823432554579373175442540425455588458979343435743702140738726283788221805868135953525761835748577684417270712124245674253445952609799596633367180794546441622741391697037048023867707419105438150686334988778260089695937837979707173995368420956986801276495996108110955608791855588689225700748879733321432998636148045810239032712958773791220209344963936216663962681723064562515266005821800032151184965611238801686758022664670182528103026371634596821480087420232025141624201175132229854905219453788817642276379342232910990928345018054016278365430421283413594333507097351751349696397238854608958312855582509152926658709890726528840173032480924513278173583462088918338135843792187575207721565368168232978360418811744391370770359657588658659481210217966086171355560342363447191999570850467897470112844942965002587730714374066356249839193930577349287747450978750380167736498000512414597943230648165520104890375024842508059086041214697280813048918436513652809737290192388206566366361145664592917752687899478022739601350039030645376462536515594385422460900701114117267480235232397365667803053415129956814094722247606782236439265634360712575394789327856062379874976699637705914901599475250042080255294667721148272044891240290837183903237853668242283619527289994646292502434828399036889238284400081750759676300419994929621882607434219095814304832739178666156754262447253257747306950676274942373427435420101054014596685568281078375779625999674676912334662271057064223041814433740257444257961298318692623661110470554431008210757402812414005684134752582545779202894002192800900118811278225230817327327087553432498055679881629016343470126528786278038922693197729344879240921382063832993060517234003617535513737678359571501640262770895957593364730157047588412459762995611559164307183931479728033199762365199507385271147951741514102462184865216486349172882440241544923249081542749360639155959710985908619066669125564364472141399298491734660941039170892590405225721316996280769163612077125231102278962602973196198110013421865029793962255483861374451660645083265460181997763536611564463096404190712319321264828127905228817873515309882677077892191389184164673527202981929904069818555962355860564501600421602206589157809097697087451607309540666032223340330875733886369403921222601267584544978978614257277680874420105713409841686698015218082917331174072377393415813626108552188511856925174214912054519100934690133190861237085316712817764588911414077683298958302619200468273439677265293560499570952206843094675517378246037126745272615567678210113951993409942214395897894529088894919182710598277841425948796815820008499921492914596796272012251041739096308304621091553359520516846713144538378798529741311387463517082663651561699031878738408354996389782640289200443846459075683666205575496439938251948251963038043453516961455075520123162389594826255351319515250891803222212233571556282082964192447468237258073662474877299690229729012348374797139152718020298187774332013971124028309798244887689913699000073808927811126816637046676178976014954106962413048394469712403743636386308072638038566772276036877899322752458957325224661275731779407879500876414043020247616283002427300666312854864798819835575213209420567804185037658424555010659771353863741019866642312610358229529191654576035568288627807547354493083738422938891178101780326469648431609094096362035804148585708200182513693455437365068160100970491042400169207256629231945427553075248813086562327097382594985999865739100685588530646424094155745570564449739523496732238414242311226385697102322422970079929349963585334606191004843856640957180026206828419984005503398801419214485473185315237607324949475027288898529588625709601310158759105704982861022495657047029962350661640543984883015900476724140589124290773346575391686578913687391390981898164183556832782852462441423310222099661879974905454737808898015610671728448038746500475847263514271546073701430522822846847139833167434283272726652760014676128500682763659438169230277344398931432279837907428201833534193136634872674238444125666715364857917765397720158488228153464242210617963555274556621305389255891097199517565407473622668589101640154134840969149478836494039573550335235931849737924648207762442490566825851540199101209354115286206825572047612834608490459038876095966484253347332237041268304470387186384584464684576198460777083045269526114123427748448143425402585461311558768849748810792618220529106670160510711586592931838118702528519683394519510442666032308551029229551442650579117148245229233889970081559353456702876689567256729831363779725000112165031536268453214749002074323991139733403345711422739747426650083022158301757612087874749051403118061938813881077637271979970980012858811684169053986835538708961357011823805867632487028688117556803052274739001513615428398503688233997475137356374318673142149161976481908783293972733187230492655610477718852966307371880995170064736819995635448528353350710647387116312875037862884532035730632888096419918959746603284398364284343713578965983267833787396962493967577141070579194360833701972032368550099948720524812676601049236577120375585117734438964746260810060558278918917892367868375746536154157423664429950054382393073859332145876546600042811485541592549290646553890952515804296853821464428737532417902505124920989857703224879209148187675799455556602226191909611071400127466156953711731520778682300542614238523585783259327212735031281222138518968757470719949652860924440650460555240965852485443780747102082616064786435302391831049232291850875314640223811322632934947034336655009358417690578090776701583069291756615588999358682268695294843411406919847576431123340636461553729644438239499505024675209424021074400227164125248515279491789583008832845429742147728453047670639737994154374258544951961315671151205005691708423001699436416041531688577288172985079821007422564524607120691800209945839996775241173055059024149361894365858145216329567448747504147105636211066451778073845842193402743143259276766918291528634304153072442214562149556309073501904371105932337558772727596872520305262969625399848796649828807698372032040340983874479274586431428215703019858982643903380596879932566694179619122363247150895552454493476151077412844872396391690700602070567583270701639238305410819803268760024110072738957023149892382283406765154425948719099265901205785124774303881568557681854276101600018303359298075482671772926483305185252324262571871912752096590924591680873426961362631692245425172094532672413080433498661797737422608379101459854843807736349579026342201351427587335898276123508249960907491332336477182322173826481432976990279532269921329085883231509702433367698409022657957603883473807788357625247983661846894008666729325534257011685877807448828979568754369846702540833579860965290146717954912935962721199036819649646661276936547493157909320558989975927810861330179625412335391787505437164601523689032307034346216369240194697924941726854279280682802800472143035182608159374972871814261854969648197687727688575267108100936672048735075282667237565096038548662183149256877721820922808163405116877377847978596935288383892911923378278936082785166305790927802177954261793398756100713026680361025278881755768878855363940967909439928742721494485040329222852974044662693565993370336315545797277103939884417586968777695979348067204296568751933194004262297461259513466562209772837305297327955168476563689627761304285308252782648751796498028351060512466573125073920013546484791116134751336152076462348683158239042021672370662001545105434197301295232615383635832637838677758938765406437204441681303071401267702979951086195545172353649508569140150349097175541017668613071068269318325607625997621806534499085144437925695000747061817072114139950988070323199005762635492838913556908226617398325915426317595656589680895426670796677209995529146454473007036637497764979932992324585942899595152136207292941398912484898655109274737227556611747042736053317349313625575597987428232733110700069832905967837960213138402434243380810455151160201812653493682133210698515917127073467223423488767646618483420903459729770341928744755435221666561986140453243320700648317642243956278330385046919829674501508028770787783516269932853378399083281848702387782992144302167772173120926966589029419335278842196560517665390179161699652836598215056132357107296067089679498455588381961679463592750880324644935973386607426122427616537025830363410403561187568455917491838791210279294960580782617476435198445027292487657119372829295099859671793990777914089199423264949328195789941807372919594048568366263617505525505712596007639306439820205204067279323782100159780634296125036287221273063735848443920704453295167295222534475271292120029300170510099493519451857528212886291724679096153406583968659396188487665978632704093720933019607702461240650180050388947519892984196145609660493984179462140498950388320085776455321880804251405454511071575328000183567756617630867083382869083156647920568763389561623801960308874193418915594910381814052628558802866977321661360833249188868492907224126254314738589293893179875282210744005266984415383858500445437676867998126673663993624736683795757433185940094330966259571368166167703224132549743226765172668576546677265550482415171966708896875157593612939280130053459460033398415722428499268656820524878079429401280945226054843185007221760306655142916246926212044272529489278790070539268666513033562829448836192566252083368476386791122644666122421460542821841836218400992765462337646652595131215327972771317901183019749530312716325826404915150772064596101389254796106850252047256170358168964566197406418973080400882908771386747429310532280638759718580334445043966609000501678671531829156598703777626287762423590838895996059450986655069807188145649187314373304619304323216873629271311663936642220798818632853221330763243132977426583148203567295720110331010342228156482888105186941712154805942139578548341398834015329887138455854320136008066804005970101269542704168209106727741989993834704080193699073060597138471129967191777806129728716559886105730746826019125187994426406213585088958642858725871028156694624626489745139638950342020431543067430596357628377204857207138719101583649918750791090808030599727664623909936969777055180801612318442057497156686300766020713343697814987961446930502203692251031215131251622235845214228583548768554857683773953023813814528252265774950125902406165693012753570260508240430155811333796678679689430728541081768121836718713954479331183493799483877143651681248339023946799387016530994356753705628404407555787515014443804945280927823133857919935150834895411592208786531774322822732864255360575980029668685301566752380240038816180432116961608879444892352476004909718203671601727841301512700871942347328827285783152921703499123353295057721861592329866103708757329122012046864494859518750609073591068890486324994137088466392740940423117230659270173746697466609652611484446827772139284157881055518629597277465793503270947967213213507787650648904364073279300121070730325867536681013804739326385630938584037352385864192403841741063130130891965129446184388759138349131363704793456242429863943765815513138313628409844857151796265564135936314102229012697225064731049771657824118940305895785956188703567882157270945841395481044255210793728298974556520269746723227364238413397967739241894797743270438558990581329661858351074345994725004286234878953280706546183538823128252986728734892658031168313296237831716811746163287345029683779911758319354277958921781599601120716340443517544463113776470548745402378393874812288393023919580147697705438338435035349646944800405321631144870153567332888334667067897402604863586830546366540860506921856259190759852799134129324562132702712457240538906882860956666230379906548565661178318264073447777541391226269838050941556132674122393651650859593675378071263251330569664402116074339312909812050620574592392621713745813537454700209949196979678023771792163725352375005619656474440351828242660758863529626312395792097272842310107684422594258745089162382159854618337771610128876345496335622764936158746529829568781161601560273199480182320981717393180445169823445504210593623080890125580564982380925201578229350795642888247633122012579738394016740567364637235877821940685113369991803783667578225174596462353169125333641035664213536677050137249252828895340957254895678843535608364247437211350538624011616502584867316584969708723741153998772732681235293118844173200916353867849897413060535877229034535711706621347428261099444285200124172053528421137517481346197373827712911882208393750869212775263419926248276929868820328732174190095560348664457955889194707070039361903454399026707791633999124607270143836743765838492452005008156291178619743752543433897592031907060502333492152239439670272043789285734172835212464635490086230977359624256317151165482695135043015815762051030800538454113124357507112492101279497190742671501219796605794295694774560791750575437523720398872101145769939581637744134146819997282720359443871278446936047007401248402727806905764457778941282683394450087898667279216270577235406350288836597886606796825039318801459787556488494183065630049407310432474808569397667570514741457379032907089672304003765480438627713054653169385105219262116196000273168175959726586655495255680433544685340505830204923758828446541077666024217093281494243575360332141455023732303498974962307881694984945109045285098414840849997011529768759730298106103881817614022102489392626872537260130824778880056532303345055967802342560167402296295619035413622993120042602418774277725121444125179499006297847926725426097382308275370862587373341670071344642363085405229882249958242046682232983028719476775873319946876941274575842253130669209538826131428111693098652001035587837637392625232797733608831652350564499929893394028247961106124961059981868674723869168712754073626133582587328379073124158341962644367529253947052427508561301307297731228215166408498312114313194127209298409695351919112877695144513864665221300517179977557809231797679915741955508158319103137185724423363449803693304150865228319112031942238593658614035358733089939207353532729980014437286893149341285016132964908409503312720220336834723392301042524646141371680672410851720365287480060063678987411509908240808012729172841371387741342231858724869376139037624867472081807614559193354319859150588824416984863916768464503047378898489646465536409636608255714051007883879857857273973717402473185331814047095105658189019894858543610984266249948243247594445082336260241993736746697919774355260707316559674996379088376565124097007179678833763523013221605043837354894103151643480155193704988317472477358868408811105836013978097987832544288513217518193153302940918826891523374179258650925477195301385954171852916471071705202581559353116912000320231946531868053847245236297206807379949927092665204485190641212607218177681975464721272551983644882738499496899460293678537307477513284083559409469704207049079198084649937467046502377013302258329676386342270558824692756286295251246138649611117504784253051958386766099099655270096644956210918372336227688412407533436668683844404421660842708350880518938971802701175264429197015948443671639965089301690359237460493403512380130182156294697058948646586068367567686444252263695026867173825593096499068394893894159349392080880682077293293234807321252037941761224322110433603074489739954067156929213141501242180974313349127275819275303190162913273140025882259713732874935460476962549608513659552145810684924368600355347299201277573784603679029989422845173879257717543148678830221262619855488398940882203859047973928841065741011861789553480423071737133373322756127922839376609874840312344184606091061948214893733463984036822628496073958699032577627590962318863543768940388249583559974812170222499251571979170608491981380064444413717805571816163614879951992356258447072612202479569560810864511581822155657495502027074484376771614062857766467098713948950307028203416493539850737198872165621725533935833349539229696517368787392311593368853345007833897172276449743584691421952344112224359551081920510941106143172600554246765829693799301567814703186879367263885243614528401331588079085937427120185880245251291989956299194572628345630270372091227017794037539177463479662812479236509802874780889371789245933279223661434471122470012183008936116344570666060239526437427242710360511181762405871073492620341370429238841427830978239333440814423361345791091852421161157430666500334176369840124260239443608684336915122581769340401892014277788173070503344009537392253877517497509227424260942043721532612070637805244565608806732591085724979595977735662711739314985366050268588454550767224126651321407424677748538002114669800682804266402417512200308424992907020278061998530509702595719369132008930396123937260805196085221840137767717167934365166641515535043046543906787975347366798210511632031112182210849484793197128780716006751977618424743676874469238495091253162962925912533092760116378620833645384989316895680844085011600634585463306980728308961817038033300901988470351518583419708997581645046909110625141986534293314258546841995547294859298658244525345484046238672773574541179661703676577917703332849641350966172278279085912127859510188763660174652651728156165960211647126967135235775824925504636614622327930838771378054513600037843995735992713838856253534919707934232541169129029588233129606502495225713815675131635714238701738685241723149808938031124124590039436447813207550310084661243483704494948552439299535575983358888015505502896550002542366199476823201980155957431979522720207051441208202578334064886557941688343482190478492020473028122238977582496482932799305862987164880115703550559075189770258013059789547380003634405162201210210692081939164372885656508599668723998549518428528962926846885243085433808955578407050780096635660026479214507397925293536294967143919612513612347937554269682804682501595484686090687681582364906134836417103849385545940501952609565019542699148021016565314187774007342645123684465500415046051945408226201042731637090711676749781306618465817688622013896811125865425854646985084927859706109569585365548662739575754948934532597019495944905201081250852330850095197251744013711887996249327994361070889331294629158701182678186774116611606070855488124126561800926024896158266326332757682542416197859324805832269092956296591748021169329515766540318086055789974100591276130623286661594112752300908598696073954034715355916080448036610608979989448398704483075009175929608173587661279552621046470537124694427702490341347690587373049427408790333307188221976375612824321187753889159443279737106282355151262035645857240690121113926003035138304764267234011519973196665839119982998996861992592501128804583577226162645762404073037120929048151054859474959701971300428277389301385087180687120936188341885158057953438094747203652205379085239926312712466711640542248157078123540123135479585786087648611424966126719443591365507003779121356778146438837719631318292701217989104250602491572128894629241226757407234451652442708439412531825101268539234912419032893295598408360912958839185094708107949313634754120401270162333389655140573089994885031273797170533213719598826152219311664457516398232381030768404016147666043139478458062631237394403925615489981136214718967228240410293232688033062773391197797805275054228907361128731337830219875588000131828301779595211186306596208212726323669267654268712734331519801239551690988696349106160556919774328476241625351867941193614493849601107736495076317723510741171938935385751107592316230157720031383867187988879023351862720451057570995497479797573589652488390401034686788809297568249795336424219536922096481714076157880778947952691873646263358403654478137314932294593139124736680046907556958147079138574316560410917634474220997121892732572940061407881230038537566734966922046190655476938348874896253968320938968736546507937178948111321398378314950725442482242147135977145287432815051742664665776572173513377549206672471086053985024151817316356586748010892186355752281152656645516025509981875386782241090286058878157686691357898588233421294314316112935391248668626612970856081402888742933463284562773845709206716895561415215582806007790418173760734691051624503931294878763005695083361292929027213293249915236062807829928744941555254817577547827617556332300716861219043749324753945216684262611044822383864619595791563082588138172908852496457454943389911307739878918954202322019408015011431822678457133879625245678477659457324563123288458853320784751413400307133732734279962734949081620220661365470754295558754299150268172481780968685432436889801079663378747350208773089776248039738500132784745126716820859092895919070743684937187930156150630797392239582099415225995297789777902058572420820627243436473542166964044826258601246154631873766045790793973103993055312819447513575189013062530556215612762984605169253914576543570509743506509190831612545660237392543051905574939740381295382476671458412976697910777168765902771044567584995783933483939763813937867115137777599747246424098915182369066903627678724019901500737161853264478370852875337384139533289297399626207734350798159105270254927306055006012152820371508469233763479354268845591501876155568083457739955352517519361148081837680454966051722935228500617234688235154023242841575770484539102541530194917606513469495063804962886590070623883336293580091481600363661766482719619513189572965489015900257219581919640575492684805859027445051143742683893898521110502230026886167513673985364845882040524551687999024713070890387420393741948313740760964539320816994316423117422802155692560331208454755878734191685503976740020145313175158308086635046061408452654199591622346999144660746513464801554451726188548339225266634953620086506361229145230543889945431091606192098470900541746549510822148792675744226018348351146534761172451757964282738099434522356220863439553484301174470742302491681910043438985382265732268303429274605825501533484645859497576332477604272047350626979553267280892728904452357634529829450847468270248327361928970315299571689879185974319469610889366687595399874662289659286304301913955879956922086918042685797959489117154245573418602864610920385775093998561970017232200266284590022622822803046237122913298379986531563068830420059155416339595288735636282386687720777225019139238044028266723879571483856479818706170169484305854280467698756040419871408854741428716935896667076706395691422268564008939274055533327255546527106662594171522434262394535424925361613760503980051806016906824653837020251253148562174838097825051117695100680248886617733771322675513553011723277388537368742370245982700175080588804707660546659482197622759552028892212524240917520792261299054889746267666413872702818432827930697806712736082447141081555424743118256582799199456523047328894623871185919354678376210588713956368572101770706309593152220440680017596871771747235560783778887782325241056274388459288975885622345365231058618157580567701628900520700909376667171541211877594187559138851596965486036432645353553122570262278917386169811067889915004309734915039236394726032903104671276037018756598333847887327235216180398037441892208579950555270105361177118154095050788793870841094676276101392994288080003431466681417539017389072407302251813525321145692562986392036320499338097840137273646034022776346193270395704956412618436331344916055578664893655677780809775279754997406554899270231795749812583485215630137928810177266750339808483089961632635539164898864115252007205826030106216732808082118916937344517773483996490112197149393284688837277126311360452583465522863433031273987027164908253553763535736128504550885315228578101668011491820806866227252329404562253660353726934033226619262768025565236602914040442474367710138761953115788302719338726555267265521767739716784510535715606154792713686902050139684021901109466872389052796542898332744216061025319218621101242619600276062568223887841438496684375001498973666697338879921914474439439378242084062837059067173635250199111580888030184454289149163498209233326816924208286922470729254025624729460800696594282917035305560155517226678844284791701514116145862712524456752223715075173145053377182304619449217753992491445289893524451769428841020519198687376539601902660834222560109965435817007192046551830087463445324181038689975355784877865173441739446564787934842899623807030784869758304167527053944958695937094196304222617826351922417077413291528204045210906245403529355795077217536291977865959128019641720847710542041152373273982274346352084032555450829305481014466033499198091458347864064268925527634274149270249681995412066737249230355039108836444157528415737153996977585012314290758113983300343838604834611037088489222630184040624378136814693549958026079151786871370957885327804450865729289166117159417511202564222974810336903173168199130013594384222721907920139826069655556786412482562678447141460275807410777773324750539127405955482570867977274123023175698784010951234366442811991759379897969102643215034696702434328668816931857999276442970111267699052922769629696741234930054758062392131376218517560586379762210304910654657619276443893674617093683163675048288777858730051792745160574112077798799183541672169882625123690545348456562534672143654708624784849915259521514595896238176833310162110970296266478925135973856400919246717103369817167523816069960566267726325616604152382178081125642437539523561235606626787591192796741600770557021332826113133283401702457233954505318233785135263692789631251897028631482578729554751696366870273850536215407930963636099573525153812971266629074962953494629305765572201373857786898875870360558988817076901728774593079941433008203376338537653668603741625381574434049463338450135664712715826609872750383068714107764923481162173908348648453702879130181860344051125877389095375663597051589524375907363375572187199719650890960278679403273185978694594628667384091577481999115875029135641546352450576935828183728455824741606955111183978146081202706713099483595555760618227301174908584035857804457568602799054462438661143730055553851556104354333158554934214107379738363137271541139185647183629901401970333415333737007350939836247481001666392109219197924888962112702299581176528825248677434919986580409021785509033691646045035171376065960334011427323578558368514390315337794249154474202022641496911846862086815949913306016718643885983955163200896582363624840365705364219782569276705191919805987156031388752814971731265457693144843845340230054749466370184559226205764061259046774769838566132310437264672265366815619795137739175393133037175258394874117565944289843220319867317019891464811142795285118977866870682445854103458034215237511908738499673257638860165702420909251546887419005774234324817730328455883535590858549198657488708801470469466195473561612221229519847820534943632115068252554896398478502243549858992747908556761182772858957499270043430173623436849660050243495251533174389195168248272788001863516367601408930113663415556717377102844761842137606882143754686338354165414981163765837644678222054544853454701798838634129902045964438750320721813340451034954099507582893507281335928845568641632124558038929207986662987995523361707430542838492868858184032559748438269387788905469601297634299095281138328551808564630233078640143622168509443033517171881708410248037212592885169864273388759471342937874581388573444537368489205499952551620881523261281393521831547994071812372651263520509166801438085772275244333464529559529151039092359633379046380462618142055828989042534134557218502794311978312075703552183835048622833575350711681820088617577920007995931591999348815431953182978190726902650913241890716082378453227608717470327573691478143325008933168113014638866680103265708610103899495182907917521206767146719773616515204902465835461947082892339290587521529551966362378082348259201026928409485965930788738717799511534732572969713821424945896746019648675595110188126754169869589955051938291654681674616645899945796932745579841603054939039525830234400405670440340660124073636688292009034873873665546090857960669963777347310531781837322821997172722067973168311715816619871581778544686171226168628138027214985205519707420643320683110819712414162615463365584858090086908777608404322362243595714356284652397946099798805904450893311377835631257952329206919630004380366739099187393179444157682703251203822609239030012122930918958518749831438945836418235603311669678203102637082094857129226031849232764984693409753244013948996361353712152979197170927363159821485294691529796355110095304099330220879340981900241767016857436088957373509010761413673338797311043682921186139425065584239484305178416193044448445785908418514002354198476615893394086208146510988614142610630117169678544826202747851454448310718577391543669667881099900114411193297778437412139284271873181145065345135071335801170530769207209071067273522692634571972785108978677945147584565620778304973577433208923222589356977564051876313390950469975495407265877023858710407238772563144536578657103562464879364007807731327588594587502272950469444120846793969794080401254250387541726663833846531044468851402381661013936020951849092491344610728436880854121104457034113371857403301719446205996459404769961885429353382485443316165016974546450138710138721267680719624994797383847610462904352811442783944847523434788597590117943701046759941929412167861749925794010769944895821538057468286830889454541344839168190053647972089155169396509536220581008773653418486062534530763401055858982642824689244411401305599204770753965407358622724489691728380153030285396958909799560321699974859531375848224396480855068227321787955916165200855480565677265101384777033296830310315389175072373486614591144354143469783295248457795918199578025051573670252943878362858027965076750444735438140500045173196953098011351826619583621706282700013600366081192280803421653150856839182802667891145973791125816186768194766002891658798930077080312735458661940987695886325132388957185779155165709108453486321331129265374498908432911225641259059284049276298885090298528843912529340282048671135528049984451155313791625001981645197796943655266932264433530428148591187454075928869583311331526993326990791545448282582848529350058092402758162653685189968347766197140779183044860672995531524176439847081693037525912148386694688183477308064775319635295801295454682600993456948285915194008892660984783131148957334217663084750232908821605711754040590648803397761991878259445827583683341639317592321596430261168644479439725631805161821666275735064677928748744433958612945406061185192770268370429587763178611471863629666003274341078028845135279113246747163674812891795055668983729204324594536891419914354986526747587030354712846187207739826043703850454734401291588882758547191549251810179111406799617331813226383109675485331502711376561667389554896130744124065484483443315851587045452216918720551978886032882543537791902465477774294786574000502604851449647625766078854633234631217325523739105618487964194597793657280963304707704205527096564218675854763935578455992861067459507181573804452159176071655182604505250885788206860523391978133005055673564566536388835276979412608422857348939748096996379854904544881091613034682786302846604988120519248819567694498711456474308048486471598030321843899707985805283719130437957903423674299117793287906544188790250648171481561554209045601083483543585733004897482230332062228142693541768549301997988165743171147347644451445503126932567531728396723001730006355022209346235833515052399712108311668897573931845682935281243129026924935931468361597720828948779505118250671355661547792854048224022972659191034620617592130375476216487613112036552188171742442154746943199446708827257140215029223158545120827762409784945228800962315179830870066638036772537795950153216627247156694658607844131566378038885394278499700933586765936463144836790352049676320503414198569865862821431818154669217680377949716965143151715661702751847609664991744976320168757291624407867616728425426141608598728698672365810441254743974286549551804880893772629150647375830657477518512620872971273886402583559824309552882901690019949765215022169232893055705345755054310406026115578575711142795933716860875841151184688850979844325563892718589524879585667310127640151117654112715412078947767459630503786376414105249583160274225642110882896738954753485910086593435093018137947046440312176934675225816203415916040440169650815984171422523520049035151114498977488958990942226432346099929885380851200327284641786295359817816242758135449937996239338126317302419091556941322613518602589556198321227849061096603270843976707318935785461170985323202056200663601600489854677852185524633934473215280912441390430746516677713707007230976314656158998974583283775470772136213003645469403617691126694572619934940133173026741219722961296690787772293562395949665175376602899573967513542305952784210427852054348471945185624248792597919265443764474118925921563088494057007217554026648103009772319518350868500430632615885396614365769651180496852445995421591884341098105558797036411909630230308904965677853416004536703471173000288792022887689818663694847374605841633842182237121556225395484245820947172710705286026167644503149347865163505046444716631320828613129676086878003225866374840465831069210095656509888451010667229071659021117106196062121602913560132335553266116302911579643837745650890302479024536529745915274070123040450316192913182594690448648144542551469471465631385292742804001722287780989204464344592208133228528427709970173270709018504968699156922512619369090698704268566745289986706732953331915059297427936720488206234432648170062615903446130058780319367192069930416324870198986354522080778631296937850597641021563693540973322708077530747167178967829842093030357982909519646102951850368970162014177347135535319372091515514129063465834797815280595601316460392407794698947078731533298450239846670305181415887625832428528091542224253586495049834260991826977089303693275672428355719175861285253642370526750824032289037914891961495904020142390479337181641699314668630823622496977794167656202466276420325373434032523991762926914775133833902788937775553173787774441692922611620780012815585497354891189375311205518023409992825504929696856718749122867789491936715840175109372177828337592504978638293617226424012670487986272915218137447706748645934403656109124977582909359615284127333018194638125022840559540162285270619824266362708656954069564203903130781376036645433849770226587486842130520735166790349806954541437895376109176988442969959041465271932158738758458672261666848820149688083744360853016077456250744657739648685622775851887353147215596819989087078553520283886754226592377289812416341808542699473534543717199260599157714903104259889006610727534718297447306996718450701977029694141266697667953207274087802478341337138488379188598943439773424807363197547654963344440551902445616339308085245765680498831083960717192999702931389476326204051797545380057653615578253759137902601122345432144884300251079804920312401022028153860810129110211239484061993074058301998759539203044118614591472724322085520347875010870141908075322082898267602417790491666619853707615160688468082811471601652714751910680616717687591921030760308190155491381286703237144543032880897667743485201225475680012364117795650165699124576088432148441105429922651353806411325544995441192240177333999128857611585544417033028999053900495210331013930788651913325779664888589901743781947435715909590044086727131589006365827617182650774808522710967798035793638955709700404790089145695900803304538239428067336538911556458089512216799276615758724386211868054217119621201267036788657114292910108635142895747212002589123614651460151506647361989607474028952760165542193795433107188889032802423456690782874519109023271479654213091500653933709900858271074323395964215298392129451331257929079461089614483750654664763227548107353081733918830645034084128446658574539966339150671500550747406977340653729531740091138600738991107054762738571167595618249562500811075006372017081154351387604692799512027789824280877160006258519440241310260082744387119515423021391921040507210698550573838456360090121408167831611984469330486547085993500096778363050597805296368297113122056525366058664665541779118762832349138937342079035047438903795342593603676218942863987085612417108491019097963475101063246907719413451413804959824194193635831406583934121692416620133090907660080905205222894385796948660159690105624321177128921763696313255461064797099374050532294400540402616005108611248458779518710594880787754647451212508350316687806914689515491065319934779476034963808902373083864421142787776620728161565021398907357617346253184907562043642652112836687651323642882533511604613686136102198797950391669124110641988885701204891722932196235232607408732923307453501326655538354137456145827536010969981595536292817741624338971718605172143816972629860691349740213436649253088461846527565765129543141600038776787590880793672022637056965174458551456532523885772487946386138769126059449260487518186919959792021972396872164620142058734677524919592260269524110618770661334588812233355645500118896018037385928619313509749801830570772010364958922825688048994451278948763348836201945788119735221439890593792425200143024709999255355254143774447926411955925959463608600719409832074434138400033838607285428379754496432712974458949257262444616900096022195815899646745072710585755292734594492570302704401440482740131369533222394881713709666169916645079303237924719066669712828862295477943987357953828899366109883798895892296688761296869484525210543159650835728613721163684644665177131836461225943192954137654557435162998427798512545314252331691808081280461664506535394269497679615133482805383512018028474741694547361942904463156584061324374176143910488007461611056031589179578835796640032327161149314172234479380209535679676270068139798454402807576422131015916469148947514908915915901459400688563513122344526922892566450534299787766199367040331104709552404163423174463264258937829305686110350246862030529746016821352313683211807041240434076902644640184818030658645756014266863385122906505512279573472812556457289754698458981248468838507400618955478300195567108647497903018221965034929500113317860306626113513527209579167384120818826979295619237120732520863918788093532329389999163660974935162794438992505650317269169941586908264148489793137080336843122934239600862255540243574500779488999217111347280430740708994296440649733007160126454262260043922196293627994104906110186686450378268866637058915047454122756594894766291265426675134373480668625266116907606500002792890436304817253657646110949909981283656730976081427300243181978442949994702848816284453303044838977299740078756063504718930848558748707752801473487508761920300343498893227900308334562569800950484616441046045125511800949876618800812426053366375231287408722532234320601554601127408225682024548371737201797413984304247322564594922124773146352698988994014366407459107523712631727318927278419222380809379788463662334417065713216983720477614121641506102655264318663257737115244737385869022582385080881548774677005876074556506098450700117405250447382098108998468757291132658668905605598551188603326216144821283123934667104532296199227856970814496327963623712065297894618714415132609423659497679926128302817860112828033659771352242893846156163397670605949737255352906600989309612906310082529924391127755486898777837312812739273466561302861017554160303533381643458254388083213852944890410759331791651938055298917504109031689361001450814537005215286542604897993922442705246862677031040375565163248455187942889083503366474166738033731505931973547795250324870185015639986240596113458392585742222403573200107086877027932065139629773232370451339097485060549677648651321038200417499654522721086617866243001644313698149908618021161150864217567960400853855359735475489731600311922333835666960205903846817152957187781741014700137334762054239234608631698299692559754929777087883511319887390667913971291325262616084502772362284195998596275949279143050949697244703170406239838335524398537444670902205816116292417050886440603025137660905448416904869343209536926171498657436130529742288404355667149353084407831741119355908125805207464783047570823674787569748639670957760673233850961309203872914706292712024226118125603642533985771981983634428675569213991659557528284811905793918546050241158722030928186317208654238222992876690343441824752651064450457307634494944601297307800693514621936987159015531395636103652482370821742694671712559732848730380729789489354147098791302191744512696228583922702152705331145475405017770375882842922181573415909435390578572448714138673211369847717790577112793385722108763794956632070612488762395710269944957246477413341972307456936197595769172750444719648291736106731182257754787627562385196710863708689413122593987598450625648482282218292078158194622350868324368091609170422366937808577290054316095924943235773773948687158953211421261709556576033579927202777643379423535348477938806003966299197041191988903097272535775839425477496440486799464552477739418596246669481865467045709930140599216529520823466597756039392228433232211709800591538094162452176600885411664551762749007179448930369389959627333320932174485050583103261347846502798199400573357645537581235994595868515553306796428176340858504239706169672039924372446038958251178770538046242174632466796435202444219774473479117715421114771633502658915840682288186475447971644997793487935039401144320082478570826587779369142478186533593828660297829681511501399377659451913653108516583414684291308303779389439897311689723986284684476981309532860673676596868472034589827475911966962411387585201930865643106888859687629485018182312681900972685491165016137347322274027087396062753179904963901995091534036171646710752195856362279638604805797401732973749549619083692861070773457892079490826651003972658650856516602550365844706792183620386182711704884866947370653274112104801965243303724660829949324556270241424179665664297944589028832079990417957721059745075907531938494187066208817240197413088260770364113430073597610029158014875254568315027258195977859519997119082196285187036429334982495543794621594094864480968798195855633371460119125951744304076040914972666225108442471071285703713666216653844154033294914680697535949964911704344363323042605635166595328550590781361714921537994752821551672410363121235020237357809478502706903411706129750144851262141096210024362704166878358020919441152452533138375856658090358905192586850540325358667862159826261485548082808786797689135054591962734182180864305538399195978999993623661162614150973509276458207511574845083640551234036587688576577464958290067357699447680476270726093909034310344850656830628208932010617463920520703015170381666499437057572037999338744123158864064938933301661019350612532634589158258886038885891592405668456794156934624792481625723570133301106080915888932316580356212502494205687244771497750751149847947011437118235222021416326707832343203103639086117381009460672026337810648123935606939085486622443025537701423637145634832517774877222475255310196092712699854391026076329358564041409053685414034921544353314171218111915695143438371209072828346881553005662888169770679279984754796583026160137671828534288789459702805509363183864347536938868867765297680463118850643452120545683980487173409501622929267539510095122765065444821494428078398139659694065824230601928974516901519100912272076145707909691998421777295431104292508707179117773619141760995678561337853593839986538859217453822673492433897241916041882044367783001656293116427056590472491167037014861809317121211970687272950349067201634488418608957218132198027367598251461747989646435441003178164097094896140194041247380481689639807386974640629945123082025991088831940944545572877028135364882139659950664900422739497493241206512893295686700303774810133672691760484772655045766892517600393174469460313740023048015896368363310641560840545043578254294802892291008864062432393598364996723250731001307172602899599392388731165881351453341606260013570069299858066870951252527015725345124613630063330393286976497000377534897489439629295666682614242145244901126795568231665961808125793282364493630208240982795774440103795976780891268944529056236684610781161182794874625635086919136610651674085916614491184545813994268489699306415568402558486503513851219499143909737636400884723983272253438523740118126984993405520946292474716443232434153722744860501447088441549271210276788745927418035012695952163829238140247227844591086296860938652800194288771514019241561653448996053890545863082655137872764121686994140466665725023257327023346161929560069159780283960509243154339309935627380549473388088504902424634389292653054693257654493186651321109984126099689239604035754979499204648753558497488082457128878000124735472859924971889637795465266695630252927379528889900188238702109182184688092548194005827043255370771915178487027853567332703763434368075760808811503647688877777473540173734736739962366740408514516739313645290212938429672663206094353159506262200583157843247062289379324481814567989022696765108090051890316978529227326550527815055789519918124947633673921850819655349441377105138195566081959806188657294670210392827168566927040799317609471029595014460338297664695433710380747996199261788058838422234880035474911002445328449910702825297391487234848353266997572771615416955907726181456120605437738855475090248720669135153335895213798816901281684628494306138266189537737808784918376104307791049334562377837126315139533978255652793244347390411813894765836393319705145396683988151382145055416275125771811351115169039100723497192180627588794678560624588206036595426152925418864309522067658495436041350946338447400410992105083984377332254403180228886664502511831696773397737887093855377404270730737480557056188312550146526300485551720557138770738614072251856359064671368048049956725589993113177719096930025405396593096669382976059753963638974775898920099859486348688900402866380968549432987394731214172449058043714967162974089270374910047868044901181387090127995617560628972935609011131894774396075910006201487330595137163332370133209176283088318223671381509327554801254306270957405394405668686812499336462015735598605017925170301822118008759551532686912367600004561263821193113363513618109583838116673667350830120121884191691624064340905206495696209559719633883602977434149818231878553171120510079555390649005071687492494377046805150468362694894333925562167685195624781488408715310414713552303906180757014829522753223049837909615318474472777708704584388444822287510494773959896638496541032694115959190390502344453170374438102268299126502568109578604557287856365269204832053412908663300047940298194436286256175338664128844652558349517564201585792735915612729752443992103966229445380549525281163924717448440355043113787526410789763673738644868621502384400594249275020174441892287775792505734233578069291632297939653851253144970620920108445725875997631889243088063304663746630769625814747138884049046073129227553991345026642014715936700068267410021819598041226794269519483316359902478365335992697436744654181982890762030277874388943002550642058593268076148950040312358854950379612172692049366089687007406048967476707597895916380171113975356142838227978464832004977470731489105151915535246453400837966892158494024763421639707471330286690402072778761135417170862620753183139988081816273761545380312590547734220259907158442126210698178497471631684388060128370373110829386894410227557482704639701155503365472963011823791112806376201514454842200192413187482173736552638190743733627820978840048176742743251660001349344097442413501671085834778692450722218136166711709012520686220090946551821587446967856714089131784436906127150530126539959042497109656784275302171652117564657974439809494425909926155670474671359028037166756462712715032599247954389952248288134213625033048345247248786056398334385306526651287294966888751973353402914652125043572447145148011448074638316946829510733444622335599700877725547322856848593265387757723317687074139167498348850108724659789245638882072708598632916543688101863109782100031323979713769993246241223136041922284115231168295588029501959381982278665844709248034727163669674413354908707469819343642138541592194955425152239553622499348060180111878601148030563327566265941135149665845387352677150833365350192079035494695256702159722868880208871834561729741829769290327309089050067963689698906729646534769401695463761543886416697615896319554818826873664993213348378176125123507491311291883526745959677467784453608309768112327235184873154302186899494262227304726823485416346120960833142813271368834441821132994393688806174750887871859397296168643304609942197326688635880430008582395700335479858378706889501284680162345573489916574947274776980949916520437238622523321824031604566582550932602059100484402616141844307239980952441846637088794594372805659340224697372181456020737444344787883308235980984027465022228502413009230964593731177065831907101955671503968155368168197400119991472249950161409758907493301082769640218270776708781253349503131497795705043400996974588384770842673487994238051420586918953155386400368692298023621357206280569391585911976525075258941336223965990881762246571435077635081093246246303316565186486490006791683693132180318020359355121847175543956366140984124178610281749975656405759662664642874095645992472973570992477317685769007132321445539787564006527501817002016946625777001195033179332128835852909619975104954943477315178072371701566748378260478700626130600979767621021236188781143909793676271188368193651133007559261061857565864066041046447694354551839338702728529364325723890566562523055661474674326190016158541534181911871903431903844449771203241856406615740961846187958740988498823716432226647721909039553410611199867047799222978838634725466701370084043332003091382101681529289884349245401352016677657581279005351299046228031420085221047129387324021851673677407049614016976555407351196390590818413781390167135617006357958097302205341929745423087107079233660025838872014718333966839606419608539447639617042125121618235101911506351792928414854548361130227618611783192421803068506383047822779836483939264166994294626490883430883480999785542655101667468794428946905290961986745406530190389532792400640923542297574644845877568504328836524778552841064010241515494105019495077051150508505413116439326078713287111811847167314423658921979093459290910927733100214582813931451514471968878614553707056429658257331211684656240548753629753327557383990074696503833353182377205896810661945834449275502739670313057554607587013997188710920160550101626321637027276856855894768121597229876442902547766484784548652009815165984279655180653688676232037547687257890561947098352910409223768156346092961816115587941998502077548008258256839831937100666139907839377333708614140401264651230854726206196197837700042011392955835236501401391176481056165320690070727459972034578104588907424111946333806745314011592432980287955015336933890008974905742500727992021837049645645507957236795300919909197736436453968731741105939819603729303862726337126719202089383203804742490528163868269167629133237027999232415218481412850941087481585920074649501356042663787879220705500740303229756308141099013589401625448139531461141384463105451146951546514880373091028432291048118150923370327119401523212821947999061529340224019251497996925586125448847143488293193769433946561040280077216026214123172570507899873934165181764736487797920332580118295104490846955296302063468073618319913161803805698591603693493457643815849569485238652197794505598295193465030199536000080988359711242536232658585413956846679840962974301906826491922839640337199453176158014674019716958668893307885788243477162641042232085455575149093430792414849072939720000282999267977685612873291848507560073058864390893393011041243923642723233778852939558110133462444386237996323604396100355042881089795508868919684905221672464483589557468904764100600218815369725430376738645653407391402965738591493728108808662422217246939489605381472651694394375735929847658169895110311794257265108464219918948832587495396902581050781725899298182437875957396993145468469379535364159536636079194975292264638401586259428390885796991759050091944204377993061135333734086843572415885724820558308567195692263370816401583543108155361807679843173841708944938403991048419800892960020017997589243126545033352342995330731555375502205788941006347958410944084647419970280801146594193316609606832467759702659311435451170541509376132063832149414605692558387349146156061200015538568258924658720606547404310089230765147644636233733296418364217345952911530173910993204796276929983040466864870837248301269846802228736530952742369643203507723767992936847742231517659292252306551338659255981013359944303315125441612297648625095424975416688631940470929477773177647480373338519356316347734343701641777420664659205890812955234219892046609811617639888450425566741567168313746768378399990941367547044513681224692984056863700250425013669765876389729247983394235467882405696292775976621686598848386358033761316232157753302480057435675108652304981717357114969988810084393473790137018551503988140713263419451184430422183719300036400610591876040817566714304179855283366736052808185841154658961087055155563066701450698980806928602036067568893539473285685327209517573999018249295930165070365111485768978298204504436586481954702730411343752163887698355396249362396429074955749289843445857011803348304404767723015852803414632409506473984242331746356217456986939594931494168186517153766689547515491752733814880777168925702631974854357318406378135689111452672690165125924786584377540183981837372919155540648752787641859397984337698208841191364487449789290060170141406700536261294359807205108919006633470162838164525679384290300913429609172970222736448401140158828045304207572415430388065294011231541361335924604929217215751426692882474480517834125346220240560278529745487938241537759651384160155421929553318136724058557162182761855602615785633638742131514248733472900236706204912270490429324411943345298480085354873583686004749669493409449997637573314832578841538693245519271314354661560440048261876164020142977843356641129149285376900472771934992268048499937606962448082705065297385142462648258762430532474729979686595697511202565255106726588097842635434786389436479316364605599618705163946676281932931470185477402023344146306034216164580892057155158100437566860843939780284637430807658325791145853802511467594347401791092435792550736815882580943980851987702317304473618504785986512143515472395950665249384510657591544264775670032002503690640742560584586904124515828118532186946708631904657118640318394438451061168525199801145224424339558416034952797826106722547867568670785897375583702700508308737734285545773147044323385787959349516294172799674430178274736437759867499178675799736990407880180348515640131614709235526202975655873377090817624935972184183484245482338486180781819790891583034630679432260954997849983384959199349378821744669688589678054844239441401934414385993327009257569506045456777132146891596433819764676969982956183902420232616820350633385502855262058105071598960003685241115622504071117073699902612525520021530680639802575563829980667788847310820992934416352806955873817615587809994442867103006383181859248615629501372658802550507636104912860855067405114026304862509258319117663395805681599388146241473736780062857136563835822533032074977176385020042757626145902378877897527746397056167226247759232829727864083024138862474806867305615476550995541598159989257059530326994703715232294253442291652853992568114365147781355379388781787281654416898332556024233826577400090428442271646939389336171779917810141410888739206598583888947744635853502246541063940577821193507503315291384440149620121390809729157041347008545660261527739105113705957035903071299738505433405445696836202122684753730134944542979382030406410336502050304682859970765144888100415582524667895157816282010761308841891485246470580068969749810880141028299186871744922658973092830654650308214310030356075938035475877939814836378162269773969180504965576363283162819949073113381542695678888235704123468988198107053795976065163757682581677500652903142130546532958821208241802940778495508153573666639186658421298646636497782847544808180342174412594065530974533557674944012121466556398398400275549715550139710130142722940158919623343505537315191030304465990483751232624762827120271383978286837352175542179652207423807497876980719800515074740842539090970646984110908801725951250206293754239482478434449117660358035949399597825779772632427270524828411960843463119190175345100581176215395815463323983714332724159269776176475471505120866836688939981420771537585334966251531357215692986320188853352990713220168973494907924216930460225617973472977784935961613629335169642531828354239567922935929918825227096342250135726905595680702966290183958576499750180654082724639649270158582895295228781277838957675545066730492217096821382166407341275550292585166566533675831297015454122519692258611519910777009604642528257411116634775821406101923680726538297393755517996615585946808117546539115613066962933489785872321330629048173049237047947384470800693707613146906671031126051050586022140289827207961876777398737655679024963271572931298986456985580790139423996695679649989289418443305199687024434072279426387728760079761840609820847734188997630515707729577950180771476273212550925374011128903239893324331618624511627263819561489046508544960026558537521622817563676775945842986483972664660985386173531383020477709969284133740201417422044810668675970065957741028180189359608279083594536372986457572948787703691782187129296633501519491637228535487036086359730709537532617951975993602573446399634714404413193366769630539171682138315871303170260646808451200702333542165296538661876515018837982974483864265233304225022267766999747093190586751376025547037567182026693040112670127468368595433256324571098175465796996461414877265905741046335623496973686917059945701013450098008826606927254491996617977702336965359421325096014642913515606911152737386470894891167757840474854819094777702425883931051258593247761649644678206735017146870593574866516760510943184796105056838474686081621507554646731179849808322646629767414841174613821024482853192460737451114719320954065645499077876157859816693417847437383573963056874671728277439877670135412155297623793138824074508982716075844554265951176097897549256780714784024006007486714626009855119623700896459751361481476069325605728715177200024891325269500952994953482094934734589903126593599719152096854714283730003239632280672300559570404597192272526610489806250390521255905229002183025286642663109586509860259599412626650687393146046209005996929743996434622228900569722557886083394163289403706076991206129281208537769947080906636098433057921112773050665709838161922218620266185771457257737635228618897641482323105546438329031210444339612627433408297293399119687931327493774304448398949111164903858834551615159549453940121995446893046429950120792919387248374332982254823529221430985690066146564282267798373829429997248327721424952657356185217439944479249014681342115849715253427572292522688693196699473773105262417385127425827785801484700538784646775354773339211601331191300509216745686030019733915913910690203318652092936874906939926786932050165272747286457204112396918945361548372635837571073484031606791608902627111945782270773009529185224945195855160997009689592742678303856635316348135703989545247452010417841583060150811168120531328039580942727634467193070821984962997008740100914857368962554334139602064119286708568197857032452114742848967107373135339886707531926609485336121757978214681481475848263820439387951592323145190425971782578200462051355299522109355271214221885599944227953653834017649696070141098081169456259565261791210229572099561762569134191621347155676961741197192806141366558787581070693760850341428015424437486617253547235604550159782428477755466256592486771847903570911464602084423355730341458627980354508079625167822932183920203974041155885377533942812077379229718222569132395726112356654728166930057909085055951287063074174020618366653652430761405156895256645771069617027626875640775824804016841552792053552573849137547238400125956395520440944154667319146949972139331530538707985376553168978968173723814065826559058335509249900353922681133038979495202821087016807733358701736732601324729530319358361209781858000104435878003630197849004746050978198295183966120099172869905314834456140847602268584839748093120611030730739897911637084881712161908030863973861991359451481820661766749664752791894586320576926657996079898586411032905547646224169126488460188422135255607200719043562752317703289214569865882137262637892334822231913606916901177039320490645293753429444998416873806108145025271344219306658638248287295739248850442005886148453341430741768841831091109148685423860740941053779982395119217342011008652747095574156118459341870833754336835195062319719208526199807095086004269643498835672815040327276202644347487730195399197366534408999971331313434959959983295968585495194692185451225266302245567982961709898169961171861841282828046547277804065869764074605353451287990756536510768670205796589007882744521566574511179971485160671194052174052671657920545920201630861568967180548261944802314445587870703791500745832956865537473255398130456379277065860646133985730120332043423111832247630152418292776390790533711031220038200085970252074134499013152141095233524570607174545524985545746064153915512244659959040305896646981196515520669834052219497672690816653319431199695020010720330084627109067948599156305133763240191024073842832914475376120387596978583553462050193043256202413981134430813266823563899715442047404523905506000883195463965800663781853563107443447127484840655814922936803954100090837005132214320509210564999096300156769682222451131623887434178423482002603567950262679746299330755102220401541512116508393297875853671077076490281688268092036821024101434428409757847448422486164801029810731958416239933350974718020697234366396517956676257387458425140674913157054082327014531440392719189939406127881924754663348578002530156919163842421136143251042192342006433881620319055213546438746359708824276696918273748917527247878679092263666150493837554538929925869342264429161202783357872426957514421816968448410757310667035252245037182438733994275375640518497649377562234376366359849244208643472203820452429730832193674596628623219327620465326651261928948280566882596559744561356473574397515335907216503000063284028010464458961447753406086978169733071021241246766084828814149646823749443276620105627463300929922344557289869109152596206330082750797671652013796703645642602384414522399937460724098750300529193128943913504283834472800987737504799980310696445297149881630012940862248406362108246981083404949740325468206829435639401285972023087493954935733715471011377613276904583127966302027229318283461302656936762618095961524050495829920468550211290168365825066080068434722845895488569006734891320687585239226962266302728552848015453160672334674667088223363057453720595949738731485352304139534475011852455125276019032039231273782519926229374683429432346859722110027207327518254531560716079651564303786932264873431499019632821344121562629799925917511175191780877924057238490360099000309068589281763661997938515749633239705883418033049273122685749192885363245154041889415300437161696913561758509865261868990419751804663464245960895863229591260640641064039556089518566347346467472873008800460945317020401788910891209096714511999822221975500314955446046953215034036813012147691285363999403915320966839185669617606610082158264244885004213985729693392176000669516161438698982307004811006500146831855809253662384371935044776999254244046235364421171910984222549963451263027448949298537492742897676565197417807645542387867324681841310898668531270836374054135962579025358156622714487698416253854223520165448183350916341291558353988639412654969945672722805039748910582461961131559239812996944633583682692835260009220873198842886469526420276172603289505704037455924352650179215020519413825272769980136984490195600472883724776304419221273978358541459797486193635564839302459669013687721921057891786878358265342619169055588167983591340576369533767650973641749643665762186455406187991014692191442411865831421115084959520227498510259055671801607581048664409572232783863791835137537612642097274818210948776982775783349920857048042183878661364459463008557634755651549111679350490522794382373603101201015265137362403540400349631696950455109154915850075854750888784302946396850072038196440021639543900657653782975094310693845656526332807587149444196930441993073722377758521157727258085427013235628257669133812715662505788641943097275457582068954535099614878439321875684801717627333065421449819844987159712085794565125053833803198037742473354213999397413303846726775643789606096341799873374484354259294963224996021230219144481348106497666024827797631232381415963850543048551540018317338155525036326373202831605623055239626295821773336390913580813060309942556098816379709455881664271744435612371783794283912012594403955604272055394663215922234679341537781568926398179094200139347727033257980436892295916772991473877434587162725206769900372916952776548489307412811473635469283151579964076917686701134266167102213779831197150030378292489517240211723155372328811007976507453723947207429574636213073108968721929974579018974764478243386228398049743534937005940315633585577063075564897142969054348831416808045713181627629045260478870666041636159804170573826742621505716416870153598250000751866671365039494600911611394979012800192489417357797261101308464478594145669090587645757869091353256123329659077139532863923308258352474778689317071773655102673469170963375672578112372809502909247065819682657176152368029273350354619827623893025948852531143343891497954069088971675313757476758525265742325327828262169696936568434657074448190063713100504400653192168133393630965218920612302325336531277888389292568703442414918921779035773254598987540043558476101099493051732748088105997836136462381275111589368903075896288096568524088674851599963289474468707755435135017971435997746039967070051876450679213903221408209233677079594920887216360215386307271533127596576208561368012338926446323329342162113035973237764843323296937029087921876402610872875031790618268201888731779958499629875207059384866173967087438055915096834061019052649885869827425058485688125528657535400612270124325680364699629089442829744799532365098825118245640628683944906106955119973075926687470117356349929269010463304154505999895475710100396963462685810519744662573385876354218145636050361438890125861037870016607569049476804786205019235020463839786575969051308925419480029016619754577394499136558987888878147228681663942778219524179575261138470320130859729376941143649818085705119082335852452439153280099863708653164095570436295264331890698514696739603684458833374353392409060158463770637238014905264673287078738450699467093211267646126329713880874614525077003645100158999965572246700143728048430465836549656141378044330501951504028933370079735010587929323166184069628541933638981228000107564116651019935187480418262806234628370771118041633328958138047077791268619623670705173739431035719357743876429938645623080654078463672698680496373711526030152165604618695940477328923745234980062302424570013341878405941662435524824996502018011532005643494028156067351018382106578821549106845185101108239077543324638592821049612833144518816650609902818512248763472251718970741209135674582838842788752017686558241539707333986298412612266193112256628751963092531699957973480616074573254494849605330316479816278871650097332310537552094089031882419890473999738150837570346416017826236705635153158706640712640776305854058678977794050754328817088214420765831585487323224981674599479675664195505122497809427472877036920233415419080418838790175304808939754566382351868311383251643658816483611492193891998406429227459345066341463246776552559570362374509789104206912556056433696544393179462634739918662231784424932858875221033515681471292513062819295133991685355717074574935917941538666213527003963107976976060797042459643875614012758757411511456320390487959538896591809292914306255660905703749370383748495845083202498877782318882401281154796107892776724965033274120004541213584592697076871826113689295680396604097910806233634406512592693992639118452973092332645170220695752904222248070146176306340402078194476541351202699675197534208813520720206030040618846490511898506504742217117891252895308083563613324182959566509780271216437061559138303910675596671344417379716953664819893926827472336210895231679765147710570294415424489124169163384409370362950512134475829555173721204580590460286905528034340113299789999938443417962762627045160602846984624442825421054705674965984907403214141118200615841800256921748216245054278225267926867813805072415203902517318584844732603940496904631716325386507623588886400955159510692452573091890586321041572531095032994509417745539438069227775759666134807855404046582698373047716013568042303914710047163773541023378041523914034840345542567197803331275007161964094387567078450946902376909690817241142184987781209801372451570068128091338065548126585129733248502269820123314082218449617573789654704899854686249793289320057590613859424976702646589869203875967349542995168640454423535009225042892551450310273934323328778285497824889548820249006759072052836788737819337961125890145818267018577596603798550137858668236727277602551443579405328408900228171211296763031632647765741494106322806110526024689142051899158832600710112709719013251138880291687080346683564813275058915574789997330167987073492532886525025202831874690612786650087561967650625831499234593687883577479508658509365349169767317024379193340283674889677042075045228711567421016594970845564940899876290243283714452265937274338921512233031640687234123689291670991847412603446570528795263311500226619444070954446247184673643269206928066522825979200418300956746729800898376984714184663291891619610253106274563258012014336453039636450153303249048122279340815495058531021287987159997979685536810991100930260025690750294615666805000371220567091062396297662610888205934749320551840590626682081102781775861254347229267097953678907640334473898386413062922531201984773312666141584685650546883855342453128648708480434836804578036724379556361571040025560178207454659937112646071785350572466642818962709711293320130771636594803983594129857805346753877791491185603826065118505500069520118445347983124492463821250110207099926452144073577550793954742640658704436100587365455632953331004881906392262837580252475724068515170727903633068024012800144609679945602935777802021612043513742012864801405491152367622826764306668536711399092058761845662570954322268132214275466489748467210776987050276142211385742851898859164828995238684108847934611235175126623118262083444887138583756075801995234761698109354529629620696259116936913883817930516484518952153221160435053924266637361720368325092610664673450493396357852656487308435548434158744781934344259522933141229665927134000784459789981521759638749437151517803196598608447212017912468976967808735090332485147971688776935330478748527548652652208802541744195411162821974274006614664348114549883504299410362764301314492637240941959917500212398963293106272672721077334266591721006696472731199708333685200155098223637135964338782687242491337102933152697274984121466885034903302614360021508726496852480756058511987376125012059879478045400735639883538436042422405936509270345164373170719915000624394726239379202634940675934642493177530067025507359193368747002596246446030068055857495350790270327624781199344644299037354096926797721332617970843120692774435212416033696196722343580626907122041683072727859405827183157823597285458523165586313384635120554842962026977991082319212800875198117779231588357157933764216799915945690709672551142492055134915084364057111612962798180906210425852782538850488403873308839932422655293678589112122877229402361139828695152798744019907187118195132453917362356059934470554136778093534023479677082919865953947109039663075357885525204412688450863121009864272758120666739947398444347606107702145748629731774090555773851037423430341211349764652167574823632989640813642459216408144547963306057368760455671834339377686198230475598100917159380428635145070356125255869585278587501487222582884999998305498519255953550467849240615879335571580955324265004012558609049013142027042531774746556956993939951641821483373972568236482468836397217131204641263186355164176395140709506795681107611139387234916390709909859942645199032887014158468049880074788661083791691688932826668762283707557011755332996195280779527628719042469214175165503590181594732789224811892709643500099628666684467000834946261246712072529446292449712647467203423016642554688814315590282660768563104616563735337597999961520712036786861581208787677811776681339424047858082697194735635294199663886215830171655630253118030150828038744410682738450983817534424067148381885648345829793474321964204282285918667349510267459525794334090341657974790422995552113751577312792104177069115853283100278922272181082133082646932036471664659153101030907672473586889964775303737936239118863272346026234175179456330072358032364577394791512380302850506581916199700366000183642108490519290798091995469883177910268005530954110553057833191736950265273094279082930050771388144954035577384307294412176079182819886194690256952239580732712766270676520995921766502953439315478460561824180253500393854621817519892360876333698850504678703896737157205311945729087757232999291196374153005509631419016411407922930229134083307096327689611003985574580415077006535406063351331588425249961862012311375562162263569804212160753632875878065464207800127438631560333926539964606892945905891307429123765856340957988858234620439169581448125410455912416487718402294008564113127255011794565960153149599744786665986196609541077646450483229358548756335606122557664280607619963060954615898602957734383968115928356295255920853280914601616274098177699226823906020676221742519093920273743220944652630439673410152695583471308091939724195666724391290911206415663101423971947619672395641481154925018524203870111710439839457306084706925887156561433492302638081338236916010989952721605348403579839186329355116209401818311772667009895601468365733296927386578802789116628579231494702649523606589386089456746978922932652162537615339834194783706354205262033156906250934705586224311190894870424521857888558028374505865418852236332167840314600993716664225099084218720168738177339640561086583714190679665721643467913753190382375173472156697825315694005004697070139231754611206981684714558168377903424437885175026881250466703926481746603898836225146030286335487221505187185708200075481018114489574832798407284451628565109584180775543888182349393296668133826527230576233199735455846724049082479278356379566814256182170266501978398049871698204275084188057501802904229226737113808866066848384989548322683163579412207172931497300207631910566243893139283074018578813061033047158055247742306607558351145833329001164964247031290100977821228263462897216730409380420211656034512782628146617772718625934517681479105137896642830897399599006643774930393808581211190278484430606317519890401302551087427242821661653181539254639629599729579804538863292711127645723784972728793845329023358833365956238759466712446854221726789798340796252595129346259236194378563413654137969853507469949729383241767955483817453222588789288246770284493880956690334166574715677696560373432805375953877399143543239170132298621570054980846486968583196835941290164924592138194509409049462893583533558017882175193559861524487429033254799536752726200786329860463951929132726482165194059845948193564283142872773965844346842740392228186775901344214085209187281177395647515594938614101143728064813660292112475716572517363896923194522025756166942901480170447296918134583768092453820486008275818527416237427635071098511312713691570553724578934452702527663930920098228130385552870243620192062389109261834048312874108086868128124346258660554645574846277277670204671837562903468850704334685168660720787094132345395823584065786982211113731354624761694323407692533888160072671221553087442118056030682892063940049947871304997786797192794193307911396404687356195480954872405796657095458826614097247376850119879785181125428285746845028287511379866463857475375427629123824795961737792593786633247608417268418266187424496365061603926076484173330082553349458272963588526098730206188554849663285930906882751620196742249581813902027633496761150899354803285293398168225775862980885687090306284949365830458304229925355782445626038585312543010869629975085097937876393700410307435558280725844319839396323603388476308963000597101448459188406044314145727149078040080453610074987015738766204062296435528136727337908301339368552947238994554277360407814963928952662254860868779960748556096678614782207272290850826632798686721714540810839722159816583669474762208462308998328217971874102338892902646492045522511797447949493451257188642325598806120562050160159443926763036579103911786195049717616837040030932597268399257884979785603295665030536856282237678610015599144473942646864387082197923090091290850363112463029348709520974781874599608878581461626104526963543060089044538240831446670605620646123741422786664826219205239936702541119451268880910029682986525743522375473932703264200677315281618654244709284780183437652934919327039398587247688367920052537199640868663152888344306103192646229933703610603659210035322494539188926421219514940467798884888425686661214118112325446473526383041676680010362197929003158713546221101299995544194675527456592020525637169610979091851001031688229697382375827774337536192054430438390548014341170144856808651504737391806723166868665880359875438751726040084217755185561646986968807007828468095043856256647621245499005704493875549279289147852084051564252387521979147375484490335022264482858898094050486598560975168794525984650038813957264948705602916817429291760638381635498648566548882308414884399231351201661544331887184394378325243159100020333363065790333515687487193566083830712696450361550261645531947619135955957845072326416202740927974857648471810642236414637864893126152108226830075964134950001196255721832124091965449854204979002340530119582840615767640218126067470455453855332959989533527995237423938147526305145487208356791075294309726117917510904502490591458205437256499996141675171383060255504623782292677573268009137561276137670355177123244177304365589743979729016459381067224940528666972534573775322990893453118094715263583242755421716366847756432186966585428347124198894542574220075928024887938766818109571563733788372791844061607465435369987747151562340080768216916482944353676662393477464464303325654591250586933022163463924569228099386293016187108382470713341893954351270126526488912175573292447277306206761677788174940981601135570301391108295965202099803520655137273185700754867144999882033355242570819136872311800688971296459620741118259832699407082011757532320910120110564541990070102835264535115441828587613226698286133699712418144430880929246019704826077296237516290528065651116947684453632691529328951925784464713545292481064511548678019156213716232803406891274905107382517123311940303625262140157482514610042084976852510442886467242582319376470962100513314539407987378502744562881929685432934465440526345105900732983232798865946187887048377519997191426764761600836684613615815943718291759821752524474450481560653089845932806922717097553022813030725299681486688337975375576862450631928263911819085277679983922702476259887397424374676488712234882737199476675158057342568806547333547207140750525058226476371549503099924629158106364009187453119314211141027507753465071476076184865871641538006667882735846998683993196753908448280009756719754313030174265780761084512197476872148676363005492929335536897390522889730989712241023044919838706251617198739216730918321761379676099311934589586403496948278172075845506565985970622391265889248482682274398665623142110814717163261358824802357360235726842478762698700653579174707225258954049406036349187285377551034033465569474948871436579391502113965300526825412879867080542003777919461697292750203275491373744989942451509549319631332631321683371550313718896682462561594492424829613339163689724245484480231835911015016124217651129133511804896262127242576510954717288188611921074582748255972306739719597930953448295789422589823637236108319297656749668212563856139920065303002515658580035180141160719873071526978946398415912853589950020815670815294265973325358253315574648408626542715572222155506232730583717678495750475119074477359078217366788478510188659421291261206535167773131296199861702980059657955922464057567357739410774682223039074988313707729305060687777712567206153341575683264179260906067658087683533427573479502202378052597896953751993692416711715880007087241986640207971156599622150821705860519456136146557223096370751255657976156812307960556701160552435391954908713864220793691670073254175908151426057186592037598088841086134370324380034053676962675171963115327036597854089865005757372051768126412997310637905308706966149553694847440165835598330728467412515522642942648274421380808996209490009253070327286497727530849539702631679639682790604725718501291612212271376782118873697875429035958608415218858481801019655073284405483037953507985443024783863963997637330415483274251550656075789214598177089718588135705860549608677216320298346029655365231790257425023702105449165875582930654917160541207498610580601784781312988738567997288792795266821564937951609802928726572716057693452340463483011492577225312684131521498240319103143896005257586407509628033529371691293551500033174727344469938142045344278996632323619805245338599806598130562407389025022124614603009262997474283656926383967568028290461376488207311640237813659035170481834310495902041070246727262555468508378415852346309822065435967150293135041667827058518772300746880701961521042325522897764156896043109861934594436424482031230729263074901998053195002461459247113984695981864628408222982299580426504132811733034105235416588572104724932319999044879721956890248969320917865317170592552386357315551190047435197953105924751480490049685369991756894226200754452892552377178063360016597839165610167983831494662655177304962335266252941762048304871970373256057378174321954219875308111617358698236435539506059295976564277665899581622070376013859218827111453405236127943757108414608469018780747190402424734118060167405912876990839447849851360741225026651433463426034868879283538723284815699622102366852963034525925964331876024640320747737582770027074403174177584847990949666038078938392808070206949411460137665124960483076515419238229748714962882278356769109280732372501466491552600387175079563964386091120934911464847610480568274254426542085957717512354256195958087819208352326230773275063718435038265159760689309825424659523501539025130570062207798201841932843763858528716236906866174387731967101636762687574481915922909984286317744826959819231542517031613181938728122067038303869565123923855206070699656604601077862219089237878495635856088602432131321468273471386579064148979547229127603519087289613133143773324358423903031976523635195639762447996481128262032684287355724687633750573821082473368906334661570569267545083652848184282576046012381587381878857939490454848214569470543031995506868777295756141524443486998689896208053666657530298739877514963198243685163125935149787730418025148200995603349583711427908958547683602799424043451621489879397026612038090638745327252769591901582091864359427693026845248472596847678766571803527654703805114178284779867844657217241371712440366116480343420030592444380014611247324730172132162462891021366745100726417817942949425039586106743440556984573871040170575577771483492110630376271363398041622539807562940884045972255662983272279402267823620375577411494764770497015682520658599571103651218716775602549084354088140880395068301123591066461284877609066934641250311537991920174115125678785392634634952720001002511025961302834039694366339798208914555182687200156366518446050866530305833150331826658662942587726796455645362336472124527669336853176316725721990681212055069102024912485370416210259692695679834694405382507660761198428886259375120050911492720777984661429045150766602829211511820148343177613361355840684711297472760066022295730059001256351303773992626259439597979989813170728757303658878731109307659760730836996407692219244837177024127095264367284931597177175491192133621959634438119050268418483335780514225419068652318636275399747740392832997474239567938188446502457790242789303203037410921491911503337716019640919017701454763805120937090123625782416636385290337038632294529093679282106196129985996869111970413881286236105379870209224012062365383928843012015850697620986634062555644654302756451074659519120308658865554553269625585738805200510342212036783854537274611012813876468392347471047340851891593376125282126639000258524967526843115581218500254670094261168282016512176425914976858861114712031323424697509097857326313182114276032689200569773499461405818938356401881421468477760209583652896635291494999243457222528756116685860745876589392249406206846075573765065191966351875706755699317867262665745642613665993363411649783528462108485034337718110894551670671095584826157997922680404338742181662496957325812449640854851062226945613754354256534340287368323349421042029620170772777352568089883162672481540721488989656324238486922335814743312131621008641027531055149733926216213150134508960313729845223917106515940862531702922545110468450000799835370436467447384762510020662130376099497311848249914183486978384851095282952513881882655021137838442228483672487375486257786041402387123161584424686530514227464649196301691358972101623170845523313725666619279259853673283241282836090175252317675907783088123445505217896687385819402932555339530762870620611574338827952388032939848320604228074146313773863221201819243956034925870494294914918622833792076807215214765896198353214402976602401138114359380188336412301421619694593239416471035800810227362566649201530653883211628130871671980724170074519044113534094191406863928527985682611543495211457402077269248842105625927890204284067782571009815040568156690883992330533349879099490785063365866137440895958103696064094139681929375195042455778717173012820997784788715475248967737722665162905886574506905635994239847650916175124779620221091413471205259445986557494803550350853115643480567663356043149184145164511785270444633287037938716141674923398728517641994726608494348283550469948266748856087000979539285098586024813651665953082633879251317557115620332839011109815023004780568213831631723283008405998935535743701373647505087465512226499387536140336879061832928426613079067853897692291640922711962030923552309146607472146454673848975366079524167996711470563120098356776909876412339760845174801672298273391752891707628964912339304287609475374541457900291029457114562889884814498609015153376676069491151220827656022486176541123427338099544053728557898692732588330261435716482332997972849498003649311474393172080540825078817307920031476230799902369851612192819118712748690750348708657860888271814019369980184921450642678446420889401739945426961926630683446657781704196715244468112346403203278476084469689763765384995337195101125860795299553130968285968697055021641933080498299676336095444810799224187049605468316877051419915328514476017797280325169259815231115926970153893048103037252733949383055252376874360307306869664173793595295656523895906786792544650298820495526593056039123630475267366225571704619720246487263995989558919946779883783549295373159071510227578143432401178759040879764379160140321912732797892525073981950529847858668649009747880995357073501686501834318862344602031611893405153658341440393095535483735349225830532821830626852945429754782438560564401787587993853423635653685365492718725874237850752576650906235746167937214275685280744914636318803368969182092858320147555156347342109079904373900839419678666535269975368546722451039621925377867053917907250590617697810375398035028122540466364066585940859124954506859001888761393024434161121775633760847788308692104359878339071003492469401826878028915504680780322675301135700139906456211953459465310197540628555567419729806462833856154869424072585579342693698966424554197076583201530751478834350497206360107403990654265105579037500283774373362937884207650280340735890114585179549415938209354495557416143299968029053416935450863864802234553924710803692942897463695257835799638193640093566700391849731726131454413687755373119942074027191446676970545784928586784927685468014545545478803717691457539279761255512742750532677828408464579450052787918442576233713728916191178165100901850450705435014608828262654172610408010104216329337840135955252756876195098940378701340676642933448945176585538210131703760486025955729848176655378559262590270585329435047773998327714350795002624579724772288174936902027138795840433204279420125096974315858004603397788656529053856921403604310947455339987175123699446066163392989140770131050238566717921461033299797382659561832631852201718103583591103291950066062059326630681986212283664804563454788502876440070136040620822962610153363957304961798816659060970433586612501463714009494465785718636489990380804546022964137671479355320114626171657139964894233796995626068074547182881222973753489764746628629709110512322865190079909018182848916493579264627953067390794405866253813877051128306455111140131687353735961476334639588314072871313226538925451310472731841788492908809903999123137311494148191027695270405532665839554812593383128040306356336762797004851128596922382178153292390339463320581506519425605985965715099474119644928209672220539972801555236188695888985771072792685678567491524959474557943620566232701139091504007595268805210104243707514594504464784592968748899516132325565608480176404296197290649883207475102509426485491708948129651618883641431411657970044706341479798945112571297074446930936373045711734382202420024449710925343885994728686322039610651557494482442590874567289937534058800678389394300104035849122043317647330729510560344255361836957980740075996180515913679634963412547573288629274637152121291924142053067396991646670862488912904235895234174998894984710979150960843331492586387877202295129027231024906276676646778990423629718287440088658354780168748386401268160530143516882827376579360934501396911641802891866565751660611219239904124685406806783133395320264731481297282303205605290167646226883574402380249942998353924664358677652839004918556853255596502059218536603898079156004376648923448904158357333684535626148289418924869365879375197947154186909942611091171834463156737820619469081195538592272322813955656246806158655118879547634880034069696130949275937907050899887052621925742253644190231189513155620750995942004657550546332528566699972538449097945154015555534320928877255425605185384849901725989379793464709456801820460205481498252416418189062087555777150595264868477218689590334812828640743101934447096256606220542544715977148973164530202473180519048213674721729360424841922918914378633432843072497091913009814724140328526463499912032171860612344179090326546795217509988525025041672782564295957765598874417007252913205005752373755991299997402011018719466408326064734719880206998760621424428069264993815128295276095993289105915239540409617303631902906776572549364965642466337463474719980537740600199589317525141789495691593037682142605016119465276460551437568959950895021969689194294909120429963630682912093384819693380824271690230929922424938258367474218192928950128078189062618024133828785728401688439284583669012675869349007002572604726519255395366283413903163737566883189801666825839910758922898486376478556279005067354117110022166053593246625580332304997165037584510362949253537360536501372495737788503805931900232511295480680338239184504213513466945739464527405306624284645466002286917733882060270290129853209750673003261541703940347983425267729872530455907152904430244426219096077386875669070553858477396956388542251402266168493235538152578470863278214087387599157455704050073408972486612499114972443981410627853001043272543842999163270159584773861359255726590933951384830941250587662003234908034389277886346967561645399163415794596662652004575107604234433434867766262247240766667464453168751579244836268691410514998412698877269208807223871498263391595744788818846375858384269080738331586972494554434081181048335999369847236730985281503562067914001816327762266570957795566337222328313640664678776333625094892803257806284782881565095483465919866084985327284224768383634830346620879839698796715204473839010666799961594798514537054341774361159397902112736252391058611042938863377576386907903409898476383445361328809891297307311015612545014371379564244801274869136214601148667072132936893957818247872045103191737953280707437045811741464554604284499759362834538316013557821831160635663854616259261618395562157386346051632624516070871012276657019768780886295469362992295763161531482457223142564612807694068290196399573525819633025655968933461063040324758052226427807101638659442883229933032052809327274569482011346663776467069866360258497503948961667785517925163120174347682625555580528590245169443156882433160218967375994312868548747968210545598761271116362603366157126333681431835091023844245023900615903920081621125812859026680134877312385008314139902529151692180387409321512771740187973123753670257698077776425037713638466610716368332238909239992439626449321752271740811469404851426952263435844432839110047729252505937895602218037139038875519661345201745306195301973741344851711156532510494618484826456865998067005458354444339815293756886671695376645183810577580061083965878207799008594101733353287106577637460089183676603325452062218846395740823425609342268747592001330339515188800876339172926432618137184601424962986963329146384421655052418489489646335180608594225195923990774545724325810151652133811416708673886430348819519731196061982045306919699871108987068323726812383984211909592307818368075546528553305668721874816344987080824603469016305515225489033653287177037973236294621910887314174325906752674775772471946927628196433071980874178037494125991597685764556131084541566891416380783832482145321957717477415260456800947664410434877719812303161703570005891349508830083544327093340644847300672368037099515547695566306836147419109801458189357153291960057235603855208115749458498000528085627136666794549087015530582827290408344709986941676533825162543449369052963465391168463855198142785235139844270915677859387570474683410719353186272797220470465397037962146896110302682132048428183606489537332639314043269292138525650918158709718284092328821949653230892125516026260940296648192233299400880404780000299978364831670051395278329678796654318610903982021230736004798227835795552453212707789986920712738979641679665575905525486409262349145294237747334031383984323461382192569541608311570251878532751716624941505614134342753846838990155470362204052148747573733062964894774669263035639318502259006895279806437193742477895674536186311880826081136569843004894819691813933923780305545381117722771570297973343868918575873587249401805349080100135280454397416253234616002666492192372472392373674692044585145641325173442118674134795161485767346577283539221477159467430373035898840198529468564612715917656686701254578039474049835985216319812104808807417721283328051441589021849212417788394953678810244547316686910890319415828359973334900966523455101469044002763131616841075415417734257435556956372936651255319280819745158468352675945232814027369399394589079720192309146605626962564880236816001831050249673399782242249355782727341295540718895639837943617557702151452503805200346841245621738481345865895123479459700484468517852244455067835462525156574445701700976540265127737160701911811813036061638548366640030029875538924690360732701275829560432192998033660820425414971051096361707358702430213221987302540193925301153152358721135746949604283832843520141407829299776300146310345759141950072704984381947793030310968572612945380810485108261855707343009400609192158706577267543190112150432349273472698665479321261642093714335889893439221213271126837184623998597657168677836762339121958133166464887432403035402045183642914574209491379654319122257977462325167877633128251875277334041756564185431491636180580165033516591022171596592452568421106770567739161923245098380058489269191748999877288270382684142202126550366415795477350767397262007467894874441359296015070780767063689871721617257379211061254975408695259575753671236944480659455809771989943174054335668001745734847425695920244172447710347409879574978990728691256804168099735103548405415615488402411989455518912931994993723182759227936172061211996204551099307720041446260028746051293123612541941715746344049630012207388639776885250588087844309627934553519965766951291966952339646653667422961861445600235649094533720622643649023058262918751199530479735731372363262912947848022020089780553694483079409769104423543974303423632858660494566569179008709004786256854261437264460897137170451292298443636713791855928403673617297649963412357237987652609159617349582850669929747931236671007750841625150589764329581635691942128484224783415457403941915840973216095124567328220614309556776545470407905551986596570101636538687428367081389156851844529073217361344108569832541647498544116077186561097219391902480741889569233686322882740921621567527665400965329171551075194453372992201144703171622423528263171422864084095437774318983888007368546538108727918000058134976887138980403634378973581150142801073659540255492810531870100541898516175040485219165170774392565910941579401757593246593032477146483955908374600103170311950195179273057753171643550046697685218682797531502643143986259984713668644672432565779458059685276625376538133808345434311196828914529666918041928363496782602114655746398163419193557832780289567019498329999484910728349772760395301753737280064037904929117239732558851528524647876252039201997376078135143941752287001384581425415342078268944081486566852958111677787665607146743385995413346527519033602509420334036213526848203373702361186036115272804091892017614882108587035399539330201868361620471616255628213543771145990242301916228009691447058514975774477858844731671745264066575258112167771506116291056145811322359835194985958761074897796155153538178995670262821687540425512470924352796978081217485709112681108658443005504044290303381097699075004927749116523787780207546928079107560072986245199908341028801456460261437421886158157119690331075528164920693933403841524367646587828399013545441639708291424059350752361784531377987394225841327957905477810457033688279796540089531799427055969693452167701430025506598251733584085307048733363769016071703515825153773914022616660892650923906283333585674151936635366285767808509213028639474544746651089336609539955039303658768905811510093673030258178889631872130064764161419682151472017613197052999482057051506188581747224261982107081364409801514057071267155249308129402858632508124772796249799210366967293722147438962988952818632477141874447785320701756590680216846174333626416749402203656060168373684101110045920513288462909743592936845591247023285656157956787962257876082168304390500306917449952364550678226435690491823229243599280208753008838304839246298356924706865872254026903366157754699439063741574253165061759137724029929499701697537725200982322970718583121457858718424040900942257254523813633167314335454437336749869845082922566909562731586427965005442572587940856202427529024800562849978963783884435081229524519549073113800990436718637350578372942105503405063866381077522847353742765478110591376551180455409588360618046613567467890687460643377119329572795928480281959383585505145055803365888883828409048693226057823772733039266966055817471135834916131303651463432690958021758311266143671497663495261110358832880678678605334829490465119250375648233297845208196083880454211220679486104582758416008136429090422648179319534577440117300248611012455734572866329223531544302485114884961837372779440499026665257647227485509523480531235456121383314127920158881227728271313297073560159063959640938504577163332822549116835277861440301962850775097842072192955072918827458016683295079892679471194307987387511086440947337261705905673315009220725155675335202007399065281348836522789925632054283071821136072283385983143717737011816197790518560060901059604924776873739943130550368954006413723241584974819566557737444079760336841201232725340258897097403664193470279605961271853557970145224670776941236886718351682904817950939195008346530857186009090813425024772957024435610713130842085156300596081854370624626196372016193060261473587800700865784139445156070439409095836527994732112852093436567632886482777986541025213064606320799954398815636253192134232521297475897454627305555887878498532602611820376846888879164376840417028873164761998343538651702623785182045017945166510441734095364714290793374770293921370505512010384757647487525567760183213428377422760805586218658146957796954716462833923002348892184474128711901077747987727530250543338391047905619232743033307841874423063100765632899696959726745125320466771077510612107179684220028106678743099233424615228725467161331180187194964794082324340614024575444159904675064880339917452000153950447786406539177769277587272814531925076487007270519014734185608235435073497348027156953495341858090016991864647309862258467136256293123549761218668901389554967915767006824782433284970128055574711871037589438044170400838743585928803451066785550654553673134885836931345370392415103693185417239702304917742049095442360770909684128035766274769762772157164960574140169625078929159840612791449952824058079779915975965906205008044245837467842800657170659722286508889829249131764024782373051288426614457682619657666465883739614007178976706938552028235916571273070706615797938444033510572390236727364808560810323390222699321887752026514920865455096423596466754821780575222847904864678781995561181368409652153048171426618199776029279733805779964414772389836866299033845376260791638786784060461619441275317250835549221515025207537009158002086962797522491356953242974939870920378170533935044861603704035447987421730855695500765925831811032586119494814690510518311785928157641512998804160322595071108388441690944114170601527526854470403203868180541030195660061181275693389697784986152610817111365261827467458981730546186367399534406028492870844782659395493209287593349824532117708152385089317893791170035806388963022146068125527469560914469247001681035788373961786711278890271266314074315493309374177282019278895925016288961874872610027767220309197276960858372507329492037218587507966847682015975912275402953342625561070214782995702926333685119382249822536879158354411733442331877357203654456126029137247020263663577297445077073016549829363349339089215638713109671114102710333102935982631129450609716415759696520189661073652528672324444578161687286183473985826380639039085723348732592366667694086348854540980995569586401026966986594099601917497381579092344478095961139362038779971862112458860207422007056561943233074998168270147204367077166272784220759062059677199886076506032569053195810922947946229165062149950683450905957695481819936713661931689629339389327621226981168081639189999133138291166300415961556981914252655443382871691275666364373851816165331241325473652826200675009924545851625739941320885989087692638811853572287219584186469339791647941590124438634070898502404472942709575973011774032337271075267240994246146796179896880894189635011411626889277668627445892729756017153417244335786260548071272477643585745547390222157296773199070649452537028350735144611435059390541307352339609556645382878278214285384188511878961967621724678648448333893555619654959891277316388753358773084463160941190666070273631493412863333602475912082997392196172573765796874410683621154155231949114458810344906285803673032822190619728311960699748124889744640645552379761563670071751631239761106800527282830810797009137933518296027567664133241509580505325728705100248545425625642277954468096313530188320723420931449513733898910953023216482803936451288468700896988520189509680900055294324855945787669372522263197019598787768008792917120418284645948270217972244619019841612039194277037103685931379375512720992326971791462914920536271160844884996752711270895654835601052019158825717129968322002455578304669959079389224321499018821584247704047286325633594250522104191994767461958689169992511292195157100327136544563167274451844646751239101277620260917666175248373564835449902560775739393177078703432493898052037676131513147398266503807699851457509269375690711463890778370105533208455968665265923161938913669112174464576204142961300831115641086672569024710777619542581988844577705383122725521143793691519516189886948590617097889679112141089943043215105174710641332919431416560156812831324811100968248871896766850728534919435922884341836063816656458668654765448637911270000723958242588035922570065563204528846965129679897244935650516963226348248114118142391041170795096168337527277566687810717013966011482639247821982315691951881025196046198061675590291864797438608804161922640572861231439866425982703709126631601312270995017321738707747371602500516458743336681379601380225179935653519325571530125549040345500799768311905799572495820506398636543555511615326042275425739164884764662294240589021801060991958424289499800264620138050440918250611364333662831315056970016950551055697904168046430327174203602147391110238581485951922564507379796810260512288079486155866524711380768324910803974129635854673799520332774630060918903270032443669069124523813558762159915910503950750035238687095592220096648467543377699039788588793355088058763392607577993665660122326267122182747070156303523209200428212368089519033385870552695388902095689022170623127982207697951235567368949062179138120750782420517765025360030946760537256574652292056388700077660037410283631150944907434310279228755820630662525023114096789827539342533735226268218154036119397151083600851021718220301657360403985959461302669922258586272658122276021681427640735820090148434228001962372772825153057191551526284095515704207970381170367272891869210498562558056196470549614011865321905576164468534518881227518268253509497768177531543650462063979095890482886794261444227348936246862328671589787600858976810926222009245838081528497121628358207234971299924282604468915165889338030502537366644124703320302020997561196190693147783729880100445595573000466299551010910081397174361323101714154340628595621488424982472206074333268491328633380529517030173253759363111326571261461318434429064820748111718458191549910724724575175192231540026062467249010727221694801719787030584411862026703991838623779743013200104238895092657228322649533099883984983078909635784931392486308792404887347474253576423180108216408129323543127552544270930372977970967771310062955449298988105137049464394602966788752405545494354000512200122343099267981048672832164519740701051674130129650342340390979169654309274530076978052411311979356085257573995583434603546310616486239962357596314999564680437257749631469896076916944465504788692702719557521671116038185805881136895414871678463605837539716921324854879243793995986602947868054454387541701453252740026653163783287413639849731399555643595703006644629486752024185081754625422053408757073507762940714182868462540081581954814422805172830664602468684742508857764104731390658992909582778799112601018296006145373443862898662568157377404412542061013637643193168934390589478342210382874896189324409566713671827609872333172939916800357244953132949495476082409720173430013146349685868207827259615981510836107750448812958855536395280805462789166567262810762319225643616868058776269527025107666741880302494732668740837440803667031666604989496066588419027731179556843356308032634561757194899252902002820454094603856869002160442114715188382221073208632632221631188486472382206069383307973147193463384675350335160390432727312636428239089984822444374801021498957269904372673318962534980282659991353304742342895577072794629660599428116051400431464795313027159951223608781140593030977938768338180916330347414033773298965653977112781162695529441613121131798403989603543425087529402135925634594964813935575971925209964646241569500576777890912468797882346873959167973317085124049125074752854880540780476631218078617543099595150731305895078857369930460832320563871451094763334155192355340183341236620817704447972572587777027551399579201404814395290731026042020060228273394399004749063832559533293282356816995412703966579190758374680861462734084919911389307473200293106637611243060160823095088221186168972659366505494977912296254708747047465847230838000213000315824490999723228420462369282486817854134245752743197739210913475275612196028913878726429065257702529407127247595859676226873466764351565748573946950642372211555461975680151904253075921078635691015765487766711423430589387710488214149888091986297623369801309903839240745455106801605464373520908424994270737121498200569012433134840544976357955437980933718386390908506215185449950913099675179150880210637798431716620007819369288915623974982115752013696422640747981151042795672189557003163690614352859611846628243492195553332826335617410380674007802751468559418887459556618213178271244980647736164049553051874727979701140243012568292984225354178253526033573844960843200667351499162899300369217709072072615205235342146255342414763905652746850848475188801785578846665978383587997197261228209760856065958000986921134991040125675321367797449795558865294212776922037967204685095778004642136719350875226552465516087770187915405846717852822222480053261608070105715935203937111884379976385781142275427690188887868644345137599323489916162902194890716877929832209837449658859976641872474766019385631329789532632906966266792082880875311411631390252550838079562570726052064201958680670169777529606008109623226992680200568268555379017583011426374181186502642660700115960294756428929856820655755704664758717013995101898365927474233655204279983200383930821254431541712238250623867589127227553756382250763756858404129264344770428728627817667419319311075631893732134256642935746873835647440792629896458107280281849673909363116724046611309605867803066752029300585208581612920023407244291192930257223090818624051627596270900203693276306298842526262599642007864274805413775523055887180386982984470723193833730356946076668945671300401530811631218785109319901925562751581794687041570961395645106589658896535032922159669058437016583392611388775252754609679975913200419652253924438229256487190338243738405462268853918924900254172193733231560152905510167298715406258361923552585126476427902268421757646656474894143000624502731220179773765543483587003570192637926053905823863734325634428208536798319202959534945401497446349336469011756886061891815048479509212245367116234944638942600172770072598134184295486498514255982106086446666202326898308140500877376341733311433457773311972919844075530716766990340397890302334806941459357321943857724574157215116521967842795351265985045369814933455337955326757480988215533450680764056302079605074497013759209643061491562308204156471554224883358626133081876071376075657899138059776095453904003561404929005873004818218022067420971355852834962930959618103269759048906776692587774765916005755355561955334763030622424796746500959312994144600866919002804194741225204828685525907855915283896267041139147147393479671986035129875932037081515144393912825453650706445153120794401261460185322186997458691817513174133148696416513707442046360993769702701547330715688192679899813495389972440873513217178999464065730765021052379230003140235900109240974236908705298038856744164659272188580390603536531315069494440436423929191869893088277604694617253674864934106492563515481714389663721427750513322211965218030420015075522793594261344724781439583597357410231894258182722642880237642132677452047787192331374470137212645818827566214857642153316989320620775365747015187867763178486661704990285594858475548423017656652586844966985284150820973811663015978052336204561903958248554870170214482827967485836192603525296865252364533766018267666517626814421833806834627348106790569864168984348064237674457456496407449937236713354837862876814110460858518247394755510708717247607934368662384677819101696257375004919139135394571396298819763724052107069686945202600073965351973358489001091906222684370580708302002444473896817709009520961347501665506054653592371150601618593548368187010656439262803113485946260595857869210780704413062680918805294707576054215521342863466009072027459012904304833408919663285246675300972911215182539222178425604967878223153297371615499451329790250450494762744556466141385245236759455524557474202260650204135030154151517116595031567676240191505421146862425354134370424437284808893173309880589402194717336212182894222493568766312350263966185833049078649938168920031354157095313902231944294173317584369727046699832423719620031880986775416568384341419864833661022408932998209082619000696356867554749420636185959555710594309057762048143583787104139867896877722248101505811692283814591984486848518131963869910904388223255442916093969322792294339048966168532437937836901817946005664387688461963627182690668917208652114154945007226247273408130954126454691698692731604120506034612211342578318488604408314068812252381384066507744857420893872731598373783794509166731537111063785183378436430897987603141303287515440510746609352390309850079558462332950479346914725369890224396649552819586219235014795115159188467383996899418905054347842840852381514377559811345003912069903507839281796291605220431055880890252717701810509194070702101533072213977980261453979902206549341856898176082819921620620166450269887437059735712722544090143965103838316727053960935841728604412172715915790129868732755560893918685391322163802500286176171179033878833360392441479269961048690825256334839961191950340621761948989464483005212436492199071911790674882689534735506760059351064774589007207452999543901057142280777201100987754827536230685473998199112126719513329332714469055318889467446262450481857664331631425664776973491746023823737346827578271784832371472574487364159140834067255641820109915795350698381321036687378657274866049845933693394224201061682338231081551466410443945506399616180919153994882484763915817514461132700959654253515720074659264617821528491833879423473250206865536617606712395045380144274496384602853433935443989925023759404181004945011428664158677726579479094166162520824117636548538283659943981960503693950051075971435633015961424269963892277028369649811638656467939024193017190659502247521663930345884029013513214452527109840606988141802277911631754043625755028056214754346188632035216796161484033184166641287542539589808003666146684274889155564017728504921865582906059261815678212450468841180089955927743758008864259145430125550544659139316551322859684470367194969687241607350891875871304228748191450519696234176879000635539701815913346394437489604740210733327822844923103879087642006561560421696440176056900922201194884753594793117473673841973690361024219521194819437510536389809365381948101086067713839590529284138794650622883598210838047085416933584473818190543457616233767499886092307651363218787819766859991225328601347835466472486070265436631955894470385923319027325371400806831571446168225715720517133598498297554585903181248440226796521002687220248255062972489884607963337080660442179492283558085923391211490230627092873814583193305663874601343759015348007542014187724517464273154431492707663302955480084639219239874360989309978941247624016823302835758189344952057013967034775182069154146789621346773614269851906679238708368065953325459990075177524692326498459523084281073340794319008470506526347546190057302030060152686116266423328631787892529719466447094899909281427496439516124571002966897773297552900849383186238038642618147158006125298519718969503070601618101231360014366497644972083560500231497088607907178040470477046623838176042426872114443024076630637860725216143491259182897975495353417419703272470810677706068414626199078347342683706288750856379458074834170933601170895860067416628785466154999588238455401550692831568786214742499211082852874827628396019061676540434236235533852590029517204025837189871767046276958463012766235614180491135830452701208465532884404672024901326657555254921987099805447385794711232817261942661894624621881505383740022106962774457703095024468206454976221127358439710074673775172709379173233463821972018797823712113167993793614018327882315725159255570156488311816493159163157045298693724552553558412899774681609443981202396720267446974643135780627093191596854978448729984023658492951415598889216043180783860187748457565160879734932090810576440314808699525268974748534192335029209561819999759938787838308622980907881912301622198287639000606207245182384774462072578930725172678711032955505445557861942468106749317355397694645634643730186429471405341498557792954222483531085105183135316679147237284885139045745006222236781312431034935689186695207671479066854646116126397909992590308116922018371869569877096594282434362374098856205234317942236460572381023552752177922406260666909357790493382709449863870448316327114562082438892294136195774893383854054132365998084475729049793676042478688664880918323059580536015811635560001722048712119103776330375758486106215123641339139985153561829347270588339778016420197808570429785867774764093274086794344753868961547361417374147905015149642805336605092856673050050980093260146506063910723191587095831391787513581325175520248596724977886575477411861752358912316364011217159679216618122261977722831674800139225422142229971626451960594759874059551896050785185157209306189425293788880261633104697090068224199902517027826574494316801161936012324818631012539820746561905601876915052891963884835275319227090104979422317688663160214341606064020931046818821191645796625232285534923159755575943718781346973872491453316520911968167183705046559358663976510941476800300177811366462824883589890640142317823281387417168032597399274425352803826633088695427248139888255173044046866917355817207605113878246196835224292421968587297636649309652810734572728892787711903975690472453090908154009436452297781531801317669569633081029295235510772302135584868222220033608146810018616851877629936551211453590722917535608449186885521416023793515202519112576101019513272000926142329205576780299099696182629907119550839357497616438867019029374046498380307887498693634976277599142752611550727515273717219493467229407324816658488091782976168969566275377667201456440280467660555992246637752900018241864628842322564199219103179394273347860862505738963917443079756798016325379492086508261421715189421744735477658043598520619567902242997170788840099479869087225610562147550222569441573040587597601047805959241933393693955854374441007634005088600661523343388949908267554940733493496148017253345621725768493360013749426156648042251177537050803972474930678166197604441005150625780388754954018592409260151306834334308829863687145534553157499521830768558370671611656958193302826335536051421615712439645108831550710403187119796025753050551998300793631442549901544655157420419673476097082341960055314679209903056925343008042329390095549981671315637016297826331394980540135312522227611501850193548392196243257639652868575963873377053102824978439009163640603462861340132150252454316899532925985697095165739171049224360332756284317274500916933449175310999457700115714084225586061446175151824653737793427534673172131112171657388703643993549560931777434662810395782542983041903076909656050969938420814456451766109272714566577252383598661965008804404246527581887669705023531376901438452959059324724999556136114655332457582517087433600504143788131241565462458248938534371601102743002664224995101962207922289138880518553681134865110636047527251761116680276542844780016378028984826123176859411705287237119385230374358834345098562515307785314176947057108303603008239615233131419692264649118662457017130272407678441161359367521596879691252999825476766972097158525540252941651880062473186139936637386703867081245464345866053423858289632793694276707316674245264512206446280513157719186602269769076614660918850422996945188048502618018320667749770642171067990369197092470161776821868524612629313296060293069008682504923832273033740017828390267349398670765639453331785929473136964138388587338443777157902077419296213901687794639007544362494008488655808174876509730719725622544877602885752933943118259759216987119033539685876511929702708058551858492922421429205239307748489488093053005186113272780697592631333900257672939868828124863381097984866554614257806693178953395674915785909237020861984883361043174953143394327765130795183831928046756735837871893093690208885339887047054996235321839771404477156052024732791442611494582998654530095928466634270110981080119838375352441594065369934083060547480231839395674091160623041214146947642550345834183126566588372731460812078266061749516205145222891171847433413154094159696551742044073817736993346906118421775374658409619006758866834202760439043492305392532703178442353955632088685294182355530526934115212841743134173219534741807549379824998713251330883704585716098939522183610581779279636113883947167286822371804620930001179275139390827906988400723633018802931021501089533181253445676003991763522790425241514383968073843611331110869043800613086730771149453776709066368357879873704872974907426757386535507180426141260781722341218712828260010161587897123031808331949993217848559724242626855904246526699914011478379663757965184153046306340061772908197983870338822215180027611493759198534034407094023750743116877673137388144248929672929331947904171866093428040930383311000627419427812836459597927721264693811547271505188675038593619802355642659599013477505407539329112979331404928746975850114140031262628644232495126593306395785285696059749897163903872819096275245534677268261678163121492540373057176344845598435227939075177219967309397087273595525784415947282018522251664890202815831781689838299332179789605663094581099640604411283023649280792168845587453445692168873424035761879733692862033713904898664811249859975908124513251426136263053532951193337447302730503857996811385406783634239689131859201666702046496091617910685233033583775039736593688263572235739057627321805455610364626602736854675693077191035009614151377483611993000593670129730616125477909420271637674400967305869274810436296795050233638770071220815139199196121879531790002148614883508440682834038439567975168176773591452909746175983143874305502261128900331103954003442638134179730217136663611212699175465409508235314161519533030441647902372029658378834592225850442702718928941722213289091513071531357750468322596387475663219673388455875111381258592149624909049006742236971225240651874427567245101329277612930529671835126043338118676469037596267088883562356492680612558766939200088359913680737084002155791406410393957380582445090072657327055009806862288987931258462837064279711900492675767503167225596616665723969603341929615691565623814286413031808973636307638705514376348049603480798046985789833480972333129488459573294072116066909113476487652192888491714121759712960399034093533554704155919467999832845409283156800682463913232808554016298732384858396883590853908634402603990315824987532635302189977675773556501843011942308650120557603302688204855353772041240812051056988748919327384785991818084740261831730226035995870011914032617994729556536157310248926100964549144394904426038312226690511061815585336568460138372786823801318349363371553293442937442607249561852622302395162750456135138826148053675658255953730701358814397748205626476095019024846236343596582677467398524967132346887927133919506439799048861148059432214827853439368672191603015032599790581660975107756771739328447410046511895156855447926539766331914050685298220107767793411524058387000684405382261247767322980260650164072798408212615920221367260880903096115503771212406999566040731771774588629024441220797873865559019856825226961980233252963053888151549776081881129906077485821325494512677833488195207278533658115363468833129255008289755786847321036102645288381358274036146442417630532696909132044082847876634896532556702223353133999762101772305438443998181196409507258098714417706986028063530491664641947816575869176211867390346942192941729816917008950084405557173007049689150901560009105274674549986067384861738438745744213113616017375066999467537648646498513167951352949796169979147030280392960349947193785915901236879015181107282802540361723925026786698106971034377818634881285302839158599085198807079885475044840040163630271446689495828923287748316439098289828262993009518843645449050173157302773624016255824115728423041462322220546061290041700048040851317583004083232197842034700094050273339767516033560138656217865554754544290102484794098011016386411734899728953759531154037577864089663361918317605630163281997153412288289514821552883242292487349969246220039457356169314561559715913004783175415247280526755497948205070200779691546834733422777146750018112819276710092348074239389680833781013486844175236197781737950613122499747224717040792339505246059322468666692793545236510990723399856889690484917136505258607272283735246842044826268214650101239646738241078002386929029843693345889648451799587237648798570381173099829684006700393728242661237311038904756926835464824625225406911031940789295204962038197476161989158279499251264680605019311373819899000402633285755352415811217006263105869911095465793179738045162422368727270339409677068023607198095518788569312950962691989742103051753335512134028927895584869705448668581168605347897529077781713589230156457463298917075945292200147365766182054236534141857803594735660565406876781327097187834411022637604199455249398712380658224322051328573386390524524588099013839830818933466084766337849880311726295711064205913311503788034485915133850281578901311752075861167852577616780629038963802340379917639818477838741093017451490449812412870211061370040756631513192878215643129310147516564608650092970803228728091061639626777548900443132262540128855575607327604920090416451474321606896308255346542560978895957900170129036642854833058456321884431463118917186871017556335449580005257499544199435922544576556212319149619906255311114075820495209821460422279619127508036321858511892510247949896910000476842036069164363900103416053005733496089187737223325868882586707795153974388948643760609785963864210077267737006539347016287102290404650169122153285066496775728935698849377426378816569428432066573679507370951533993379359250730549095532787232737949272788128840036398706148282865961592029166992480804061537745343401769034345158436020686483014792950770026816252773332589762047128831477152629098552988305482695819678924996740445524668644696011706728147130376694867784396132623473343505863001113335144190844345889677960930629811968415796187691521875374641459657506548052153147075538962531419984973462675875289112231574513456348662511581182377089989467499425786028271399666716372972645237973475649816809171513652415340253914822165445611178546398721159724868840970605260161794362557686895494631818430494840867301723720382994901712776868539541238919361437343079231022637682981585740927161075609825361604859488878144127104031894557122956159214251943525650397080571639231003357709652093278610844351404004825230334021777217128223279266043517281343088613273193231264167419569512764139243830979890407290110136581623030469195334234610183812583136228130315741502435885560631411509626041260694600570022941297793601527797584772927856711472300517169404202245324556794748106105878517952087685975971592503904797387825626139988636754955095724021639064957276439984703277975700757458530546256034092153702178362413334616115522091136163783221352123915543123510436473769631047334500778149489628398713287619631704545102366390920786258710314375178936208725740832376515579245307663341604520845094026964025645518516312036031448571137253202093738823767525116451216481081949755814547514378571800911219287428818897747132639925377913805540212072790670844964276318835349563284842802087251481736954456173615522623941717894394180211231366105302271518037810622620970681011018023490132182148932038474047222690655479814133135562663433010984970290603631991771398525985366962093788738140000162703600741368893891041462042195924442548177360364444901881974711669437019919160614527099251177505213490762660510932204224845459398204901445364969960605955248402981287312873356643121012258726655708075430446201099103509287525716643358804904366125005364175288390108776655443400392676899322501631417333838719905292423440723671341713983498816305635206162489515296920725234223189837231270239551020029069016267097382751310554591265821388817259623624718760666602624504366953544516988998440863083107863587175925658869022549875220452805943504013006852689606085894266370913453843800314359486920619089920861477810496552064157199825473483593999903508216043165693762784515778727155189608382024918703714113980936162038160562831017830214542248979894219862828346494828751574501882423654264758983819716061667538239896872041338999471729396286132437877545504915895577678538972719232159029572267517782138236854421050943724685486383562228514259189812355357972691802322514703264938185955819657966888788406709596980081008301553912879505300604907300006117889092769583655027147375071773031777955356235174493197644762616488400541570043642091400887052110230607814537665841023088058091402822825385638247467114492606754839977135292292178889218293013517924962706857556284617750591280244539997890391257220604395364052270450911989935900667102632144644282934223625317368764951001948067936966084327175502894619064786359295030014193783588511453461641788669888317939670747128936772489726141724029574473223873226383873606191615970506485405033502363169910208815795373472329508712065637117703328220424196909968074910855207599306159196861339551160837004559781925926398476715438614976423215693914609296063179839713955574196756911746119927280629300255380307044700725553494897410813225001074482521554673088938677857843596504654215634570433985665717673714621421273208427085060626373101680207540582052553109290095332547748314648423609319819096039158129956438088497476650608965297854283372841023025044080931824661161651504889002964524465528090207800514565066476092865403241952552051855915183636744316455497029168609563684846519710967621442793336986712240498342795871018661775039512657815988783075012835157208592360396258274185531081309937216529255240915152269304409574632692104946651220896958181813826233518817757095176621349883312054131966529193445531364835005302764045296219608332288914514134508064113730112691831999067948502726140941580611312544844834667965647771264289021088577809227118678331644785555052046142048147648824882063989638359374924095841567000820906904426568913155697628800659895001050026356494526606278905455782348844443498639775910439893576809757912182975850435835433347127947263060114328436721037353679684796257184687670998047073728892341257276503247086099610927127176164051375929099534372821988485515963523180906995868042301845820737715498362750657902274582942907538153938210529128893284847247679086589362851261046583577682664748766624593573750403311312151390351282788898536259695633205049219843363646115045456748216927209945003945306593977364630823200148450939264309462002748869339000104017271829149069382306343734704504690690570674928062391506541996256330930208147835626469061396879905074056895633883066127702245387667914344623086089959999604344798151360068178255059535367169752093736075419963057796447209737718665982854910941782401350340379077687466250851846487663399925050545804565508112168690770015985442868848702482973279626103305003843817086497345382934833894539465231873728868445487220147178836755322179712672668990287076441264094716412660192007374120971393436799180609037786364434329159163811344987181515307064709999903260565729409851294482914508324128044569058698973576923119866874597568271863337224170113523775653695735644556242008658484738178153680209172962162543154213814328084735767326729522068709317914926485464707204877731214114572439977812280803409786110178627148878012931132746496590826421922885763308915391594007993570825941338290148597647073859976499856349371705291729902076963365855776247055839841899379801534594461976390844924712354297954669217354990007121771057469372843043944443318881095776909360000710849813027501818976067129188905283262447508621170657222736439093064628539026978890225595444182002770261795981499600494017089533767830952663501875800248161015265504894148805450827236133742071701581872930891223705902004653138932043594009228130408796762260037365205126392197753154100967750635533669270070085764289254847008305949466991357242394181136236836459605215015813144572064064247066365864835706813337830744240828678360685283284196953484734263754848650921365890310620933692462027943631329897960857515516381897597933628406734991578871207925125505167834884352184468135238975534342986317165170435431663684271919135563497567321729137989122338753400271896606478773791670875389306724941824726465605795596594989248307291033256715598519384554317161467594653720936565643562465882718476953815655070153087910465793449590589915522673783005698944711854352548922994442314130259136161540059027611641403569970152083847740272485836748359979659710289571991885743772056814308921826155466745210999159025095886372438569579863994561111159707787694926256951143270065663948601301199831590086082613603985362128997311374950824493548510811255756227775612241733609289499545680260157396726105645959840559426211898435900306473399603222039869283648275167610720947167756963320734294949908324848853804563053463562388644498091783152053121072523909726277987842135872234290344420435479315199283145795926489127712014885892513385356160749722146515091632104431836903510922397689215742701686230826193312849073627465565976667260457353831862563678409654386280582308996577696543851595267050170568940644163913538972862069214114982845469212483877835888420679955265136626406161150019717390597223462184572239172782016622683440078744624509725174201460002704421788272449872282455804465585343604424233205287022765661606369142557278490815658527983424098758107367849915257841727123844893415456838418829659402610674855164791296424731812142899586342563127206108149232678097147400993665925259186312034099929738583952428153074039583035441710617245313567926460883449017748873607428419190959163908546232014332672710575222323417860064667698538497154319301499787952159444024177198602876529884492298618596874731926982656416086171206955159566007502124339369317515489128619752433232907505494581466814956079171775015618344560648009680698380873497096994571859335810841163655862859019356509401617521715770212695295670224042031180795428126149445635355221530452537546892281756732461609462853664723102399653856086687842398644405083975743669137623843570843425021141461865584447988051002208086548535746196719150476336529435942574637934897491422703906585389389209681050184459968408515508379297728596114630394178275461476133117005179566669385813141119832251726181371630349119189346393101711161006681509300819370137787314885086606582791721829833433761388540619096838744463860557543526520649126397949624776775985497245548932148572712703386483293608616474797479398835799747498100046589748461385263306625064515747149189134538299293657019848394315992223214071947037205900353505900153820142927283129211579274893258588410167818611468366327941584458435218187450485749907661897173412542677222533278945512621887081750226515287544227772047998154884350243158398504185899013207064160060881963828841972598575500599304984345630840165593134664903019210916808084761833311925318377620727413502968292825037359793259221161864516601200328478008419572743225369102469641652702070561171484803557597307541409616685070796453411119113166352735991343262191619231020276743778747710437989303671995400370029176557776456930255866879871837037146953372982060191331843570399792975287961546081828579952095183703400113453817200731737977477190131234256776649948066592004159863724631772845965742230221981148872968623776258919449916538219532386073898859185350663132865319962890671673762217772676053904633810712542246459936775840104512583213243774161509233425246293491497147964008689648423596439619070040642298146872976239057099753415435523114222428551393255613999663992135113160626961333933795541154037720827225806640336157645877350764544124742666898946184459909569480635602095845087878919447304374423032390668419684213970611893718927150773019271436319078452051162430061226038820275738531156348762142048323854239938391441572060946290693171325011499151735541835392779607776474826507002403141539024511919437222991501443051872199802577274654165515628361156248156002368326909384372659604872480725165305922088542013770074384318623186731451500514779310860478182671071129879677738498832285713342551315831289872672369947437230598603700379751016752300707051997262042561630184520457028864139587181421016648713053879448674654464502763835935060488179991761606773729328822914887996366627082272579429734132713275464005799154259834464000942432696073171202570209885635560371930113604994212122746334480796893013750987349912021111064451247393456800029902467901186705296988053871457059514070981642549633372006758741488859803280352685220289281734338800530724085766198115600339974102735536865160353727187689552262755107924729481037001901748710076816219962371179210358614225408075665868704284285035579571152336663689352066769269974501301884914453177638332949081125464028915799959108619862323410334918913246684071490071291432312871672329543860813016639551385607146725086680895277626646104786589865938597203842607821107000371445075801861288610257576685201575506622605418183994997515458977435153225291647944171452433487820010466345762872768384839226734988496243590398268635436624177348129757297984085283376356840110066868751851370539273739515990065427783732300242463465727276103636591150846893606849789805544183301294561984013592342164253524680263367525196865851861602809791783233212269982496807540547989766229613245349731698044367563234021767702441899497897214170393122777884573055899592831140177811754151849245670997407190798221439698426119599898832471958864047045606513724823654013230698342845709768382361910945034889290361882110350233781669525309259193870083756812841126191104387155121209087624162798505767872856980173724992399790842851886421139354035412377258926162137398342609194212586584623083238205258989711785294785503728255520572141293794634092140499168855553525332304396143068133960682270086505893747998479895325135629783797081698456155692410815549102101003741883976238810904451337556423519923111349720635211260718256016904477276191455404384128045745257674312490990072530564350450094915804101372762641577150485537505822042610078981973736038885775493593871521084421981405420447713277912691167698746969854486289332667327036881027926266929276329746205582262570408663102418217729964139549230680234537624434884709197775014298007306802095064811004537560749651391362189637583034411893515504995814866795796304651968940417058926532002063297941186966795855293039625930948096327302848203242205735427796249583346213316789025557721894703499991975160734415165622116227716852815817077460646118804732697564340379977355223835093961234129797461830291432364399223966767719893202835049930145945374755645081481073031283323361689374275949266008310715050600667808257352051460101337048214314444479097308629510188693206457028123167522206916657901171807172653961105788322337228883357174266315705142476927839954524777639474219283681979438991984126552135300698448717584001626383789871064700238833327399218972178991655945738292292760080716180543542467954095501395816451004691984728381652800002653524644252666462091788967145408903967648267206486518408316347268892049634387788372517675236117027122602574238256727299481070575065840118811373844032826706053731701550366239309113780024246412547457087058512802379991702584289802058223961101689432637749394002942998940953606492734094352727894588183685047802590874558442248086854316220994830796159732187640551413176310840106285191833154859497895191885503632567343640838803142753798631119659616872030728599835000111658565455300897745418112261559555123061272463285605943579464832555202351119364999251947891505346612103072977234503009160480410034423982086096212167854086674923734683112402730820852030150895540471427701128714011751689266897485898349946058634928835922938834317528233736162676074608193249215260854648341367138003632016284536305790449836044641708725263959525966776653664988860046858629976292623217536702644489931919889390476236467899951168403841440955684378195367025001461687708933834971644359768223139667650952169220536233755069395507524852785110508882067714538312701603892444713895936918672271201413152215438698644353556215902979020749203390830864919214237014924146586231247031631696829291817072064997501201261402130388553032641208226464694447889672758384956088711278347698943514707378573511482105441651916849471847628816480019978919482094462687280739286715392590889011820636461092183956857456601853249475677623153472136353070156530880029581489437759961898799927086156012270380372683423105562941520144581303890234766674202855646467052092774697439942583270571301706487320287462780903837554019606816365305956990311055174535918036088696671969722801434423838611077731379680496363977075370854102506672617519819029498349677031793787876238731357528895126692765134977890607033290706278397562373005671332851476418961397104630926885743388350653955354597712493152515042749705375038532204725840423540518860682645446943868757024589894669097065327256190890656402183222651786082056611299649101523246244770503741918686463293012124836984961261927200557989523994085524683670480172247791428430365467773235740844541899450700977377759166062149345716351673125399320227763321425112351347658079776679098223558743619130848438495048324662276984617034759899567988340761094467773361365128244631189012605491594175256718281100821116499368255948452890438702667952597127147717455368064040745845601316349528068583703809024528154925557629616989543279995407938531113508310590726830708411421526556078492083354295410642647298731286516983385299982466774286384780159591874143510681664606609090117905630171116308208973741955744897271565954916211143908705451575338932323787311665984034106122306173404327228149545210264113915272862691035798438219669721790229170324371205907531256709516763861518820062304179536480642990697029000012675961379763518201557743292843119021364559799472508397031995712627618327219760576121222037111070652906232658534377250054651550016717781404072515428547297275071624654495530663305356533403223185976266927833962934975492797000001660927522851779419455259179737105328600637180235615980259607229243060163233645766855897477229523991268063393213920507314130686887672339819044179951451389137999210433012236497385715961062447035564362086130475028147117328310285898345868046948962779755217560311785660948686182766980256191537535742798114663259855474522653919021489928686893167611005004426783757818346026881209755599853203150399723523179943180150775427842733472734105659924555779413624088009103896137879148982965595569087098368399632708106961065204931233049902986333533579724658190058163627619711942496556435295529104275191274544945346743232030602897517640115475770781108710704738904804878936580436129073799320793902438050749021177957340175621032892947944984652132296382018065045465880416259082628640959745049223905757115251403732654994076659395781721945337470847738478886054408115343020571046462406977647417468398565200690162788364728783484582665868969512883667627231956855346708509126778006132088347328843309310107638715892046914965058280700029765604464371767234287836692358092752751035815996074695083204748297764515576525726601039892991369372409376712945818129085957444430103919736173358892640298341809603373944758648344138085850101938837620740240443394040742473828215095183841775954038679118134854095816162143181762112872538248364495857608199910815214453567404720140291151546548855461688924085018377953985920124252286409149226516701547488680248580110676019187016590833828458766228354252348023800943491826954215685571909151555543829648011006938813976995170496263622549200861866955764635624787501976210370199706076926822783269239852126092367228794555909087264164658508647796385786167675072776881111487912385242123539720576948533703847182345837132546486726281868607685016078422698907910168912208289975731968050440926942390936870907787084093291956540360832653427055598090320319195262237274788933388636696201082292091609534665311996339369028374443947755333042454428061181575305715632716780464553654203575586050422861040766303343567983543915663070154649795189546506144903718543859423307789581636560747172624828157710188755449345400834663415517957535879525799198593585261525395883928552853881177415127437455092254796554629919190864045135603888282000083538342945634662590964070456497863679341307925934328524095138403750454054828607186762712875008623106688916620668794846006237851310223780189407139395029080599872478067366624789080987171770346410105135803343984878046799606463890511261493612001399711482651611114251421662042856021695979801149545758659739052773909550875184826743862970154959222492358649966334747981874520119383634427244718433221704670724847290922437871992863610939218421909954556274138289146624647621115739748778369967929945000431564636966581301377685396197576015008377525417662545966950116859112378156404424778294235997990543133037799459369656883166542886352286365319507020007064568393601648422937996398527254260175515425039690015425343352146920993434297847366126639094136546954484109686572042776672002693915491958436963772953659616469276785065657233572919480666332042439085671466551559582928381811402561571544936566951528748762753868586257666871959963256018863890292203903891780751643670753129354473742177266867158150594078167806318026450434736094461559347175532413499750155653846704743439883433121213441302400963035623604318981771337968431328238978196628675873986817011039274491624007942319461874820019422573285538753679325409379521645324631324139660839175938604303971221913475987516124335298079961603514146764672688504053418948196162402875877444399252614795541703064260585748475146676698585424855276505852500692691814831678482591296383896655810434571176702906010508339980995739484450969225801033612437282156748315333792414252782342872023191478174497972373658927811056012662285040479678795574564391457968272639108224528901159823980943634015473122416505858542756587830195998014595426227454685061289657803665024444697686609184545130096339592161404441546765517391161473607098837618200845445734548558644552797182877965074418269843655104285650825119176681633271820812550503897233086107494346034673148420832708763502111506570231795003400330255543555057292159169956045339121049378176299889822904401407717545178223040643655936900621236290329451271311034215473012839321299842906337435269663110185343367793108595676813361180529042488591146250670341511029706487481740630001989001377387803090504442776489651048004952652570985693973807674990529954467292523769910961057951375084629083839045872460372528315991622473809891018306171602346887725494528632775429444682197838193605228438593209266358664438768650875904225336763562359033012519084417195376043449630552574253162191915058100408957040820981280540132191527304912088473805073756370696439023614233557878015658696564908022820493424244110950038525208901892165496984830273484294648862629442567597792326960350496930335852944646893557673747466013463697797862048261428116222189106648469222186277261741842508910350806058212209267851941312291273845002408419109472891078845476720932679912158423176865333576671531098114919372754334282104677618331999080295393383976412826270480149622228948877614085720460499191564105801788211873796352951892490372342213000526800071689594574805792295355994340311461530233980167559053087198721254765092941086302251579585369732140137253308791779051101998300945484540260033367394806574684188741255274115416145195371310320830111933548148102738745338402492814589489430067081895598659000770971621722722351322443481853717102607569258368172196800893993992751781742147254749905521315859366194089199773253517337672753744109743158255168452628164843680812039397681503611780342085959127769680424611374801867994941929735068800672860807033596236119210859273027960065893109131529685063857127358054807468998340165583961232070281771380135648168026907664699573447903528376892728526450532566370892684670842546824893108129304893566007461526789506551517848896376998742337618044265395368056010884975770152400185842900203998999175612346896313397510426586545994740299653672772795350825502784021496214217319311094771049152443810803795767452077542346149384270875702943713195483138026328204651813088237279956950582800753812059235876694962286591990608644749155452164922382912330310952032034949974118202903220052922294855793717304695237141367301496617451616177894261425031263892274696994692836101702471022010602589913758492377406616888039906734992104410738814831052231741741709064400505038724843815554416161868691742859346253910285867271313228498910295774013049516399877161410779955721155934435624535210867904458616234171887587669488992625575167079094938672625080745052971739525531763869100869965935177571954727568800395205878077043639945882215875601734509174872719317694905825474549754860336270351225963979706205362412989367586174918332645800190707289183780796249468689868220661418446381708090326771614295343559240771738437862228588507823174835773458614234428610761365921935187573088269564543280115339493857050919578887046653372750186076065894116536075767676893763866154744019756439878530837101683192463458984173306200604077860714992700476197195805294659426778001246404686869193148716558021695753063143714693311177662743618146370346339222513858508073930404555063989695024174875812031700404603784761002761184499441236663235554005844839313803874932742489915245313342839879092610868519184961788936177179186386241558000556029539382139460213938357012765189331287062328749291376725259116244166792807588459161612295559390504848697244473660329351974014736502335710659109637412139483823360525638344115619994440682044361837149594008042965953120342585217466325663587550716625759240251299682718991743148619177934151819524562877772731438267114629567280117349213756042460749882196307724090670294902567910753877494163248653283427743605027446432693461507532120719393578378270297533159284244576815840139613988470898503576504378745256606441996968082734014888873905220873335313185023707442220372840555104337237789000720607205780973690189245460380634139713689623404462813791265134975176766082000519626817698458726526052420360170309529796947237737361165910883026934243138840941380471997740859427717013639518304989820931733343901508560964294503149294155331773658687387610273966041066629328980448947142748809131000339315746053685117396072994399506498586108162460396065630605935121360319233439293094356253256995146733654030808796930182836501275350398706019283082345932782467787251447466941281980040920011180250903558040123772198536766422358349003666948259279262639958340395459872931355015602584416936972572589508315753108530548864664654091270762906834172477150883963980327357841289470714709110972059351131314437612429378730113133236621721724404561692428292749057020987254319134772575705124202858355975081871795088289054182374452460207263569664942984342847431881970781844306789989498278428044602585166145188750209589268255935410723904384209849418080304706651300089780096508407677114851954370188545018543603317035204063428269422626834355972700575095217776346005401022736710728402566956279382725043334327781189443371526780672833686038903007107274220907248000081682597690085529238422755897472613882616785330766133753643645464909429154362554479548073337809619970456911659192945716787223596037484259745176250790661435720763685934564346826117580847961623446652238542645670816410619655752171577769121853339790829270635324758050207095072473434987929834854155410619883782313899113949635853417434192683112490776471765627319953718649401011428844594311287428326594006166245968295215523388136263077836968585541068954289956307000440660969637786775667528959066960803541605559544435112411540113407782714223833419581658440614236210063408296067442982422175189702840848444559394070182730781659229552603872507793762625885386251228231806154342478605834523322248333407952832910160337896965636655289362547391511373804591128951979587399479914466077611272567250601837802015144704556209992713494947694198693329780784745437549385411559283958264692337431751440437855363800852014931764746847890186780584635374801837577025695432314702762616546249156947491034500531923712532970659802423850307523557925951060641979585611379729349123267073132182181345528283552107407596204976792799953411600345626077214738666063484733916737859942218901086508372588285303262836319534365940399240120335284914622814459830165279261738535277696882189158291798600025386951638974424878889104934240482677295589902755753448429744618377129395672821043556199110075960155928185547353896584517916986089991433128138631564079698240433482356044799486413803945770847599891161544249643728902032618117359688085482253451129088388548209818208601019072118134805640547332212097080469953960457158301089915479231404962857453022502350591166082798596898102357807706083544329241918736539511376703071881333156308673930502173965188734362294755516216484332790433743058682949015648469447762812626248431041749725144655693226788797619961855856366555368434709636542201818035907283772178256451330471354698180741800224165248889539471512185889863589106852924718264815084426293847852928879854422452402053808042055201307668005225554629491303578317204816741148484592723504606453056933379953113411816117964481359536630759792296471318958401363366948541846722081888563142458042719915864684358093590523927550531541182228299739848618112999075238969427476956673060401322531837024669674812009474658295359749977928529492796951289469751486184194285497036247167361448967959305568159606193047019447795937918484445504142367978742213676651992879474416657833376622269631656272199056640705426999890192528081796228336988418117478473828905542900449236562932034261612888134687115514432669758442296584466377259193420736696185957409453982038480276204572399984639111984078765828152029255204236747860759763554865391173238929195924947295312323443569270161597749295405010631073691632714707150818078914046910518661678074873578266021755122187615884103064786374562296265424570171333382807982905756581631800626651761687336349488751510357809719818957324529530319532162544586869304137127568094147361904382940597709908000199421433988492794864941383839662791124735473298577935052461857457826856209726318828491769564427233858323395797083925575398155668509148672626343994181161648194673178958014597324054023025585464445469244422059819642234877030150506235513206746355653757060523115242619123777951644716556048819821649576678969909880596159041077025443470639378770744414733862419732441459889616384924352239489835985254751827100756505467498532451674313938639056327334974645876233390251625383122228009527515525326637817378467825342657268023875268599951518195191357578050600400368096085423073721862901009884090880264798391626153757433384686925169394236822561952242423300459003419160636927797209941885864141617420064077685465222612535336138984952529330787855429497098429815970172677555379141228650368300398227662044041152444810293389281375763531156076633124047003033263124320636853940058575953439756323545721777309747093460195479449511569364770198370322721727132724722263401886467688342993435717164081429747635314098423723061877192481106729044522304389817065727086702812045808344113342653594279053202840603422387997976087932276589383992752366721908663033339969402155511686175187254544531906536971240899678962393838365115198199635074801406737168472709831077050394560386685841196207702795884692906136494574510243531755306876005250154218311740138174421409045524509968325005179840033742214243680619754433274403678380578197417093965082122070813549049526774005796266876886250383361989423814564513336800244608109507108446318547402519003250129927260874268739431844732956784224671342489300518596889738328803967636027792612695458009732597775376930940071369301295105012223394408665233625654537257201580274398774027219719973599744266190444979966273599463290894828011383319912571647341861395358050251960013687405246114677035981805514428754315476016291783890414655941348129120464183173952424915723641483816649158028152011110204474465635200429524875397360485527794060622486439948608314019403832385697464771370632319609348077668046986554526265081235938681542924098398612543509675483704941368760590057229520284367138206473252825191156028795910833056115697681969999483311779724807093705063975893852861169659712606630027317250524647130242798362354953551902322295790217633765443895438161155581599465838252595800164149693874157958558930001341791070908284279220018774619560825719140716374622680655330044158303610854380252012404297214456490948274100422769649436325371259708980900365343851519736943408262105204139795186537902490089202706546943749420251831326741177398147758210968690949525349057598048385248991277874474002313499951165353420237249927539138983886442432565542836121855157752837580602910129913730376399865861593659072778853421059416906572777238433363259749242178153281395602326066477172662423167249918708052607177863964018488376453231559162759585958974164524270212823839875303631583729097860849079702799787870313559905427228761042955531462995413613024062525471581743491747712732992588073177439636030636717121223096992780711957396472943222236350532132319570391326399480533143176111845223525553588774646645492169693779886584793394098309354374142805917064641321185704098276064127834447858638198991733613437499200129799221034186872867389060449373328059796966009321571209277063007695863305070643334035606405866863664983058835337245585033999683734622958386818556156311504517127370783115463532846596598832722351657754146609207855435864388966013128648510660151820131804651098638948104011418050186938011598938595203797634050187660326273060249710977416070169453958244957603019386334548601263337774116691409778596574222714480264110889223999922206928975540081957558381827874911217364498167398494733566337684766248229656093922935857281873112916437112086255206911170843807471868952689324570882504195595179066452855773338618810000526756200605096484477524099539054713733578894523806487653924457833832627275439958825089226181345633104331360433092728784027839012122995025721377244958178225006616730185306306224376467903465894191709958678656819316445601354041823957332547538414330402489885710718213672327493373756287606852912563456358283662998959925085207968224222340932593413171940334824075259493882823323077266701629701227815691560960395398706142716256049453543957174969024091336666414248918716619280042652573446946512121395204588406319588023145602534820031460015244159786752228680739431482707073967000641651019659601275301006680246617779584931969639154288972586645536810919814208107646651167634409883599594194172792177422032772084548819815194396678630944794655666250489650033276890743728311248190809329782733956137629522695885589528614362528922296963970528065282080275874235642895767937570196000897014200690454357714342552689960782795758837104168426509132596974895605638782132646654280088382704711276699604628561397385105448584456303274641215779163445329932024847303936924635719735014304891914453575613991772817932714751262565712488241170843758725779413015678188125624841953746431762573810638722177397604649975173178712348157429435549642964285063182492721231607488167184492416643993637873618851410060851651796630239973826845806071133467052861973709766683660340497737958530592851566096954423568250977490732961351257155690812580818068831726601459086811496986116982271812287204191618913283277102022532720417773315592716753137906539557628645340124298910089787254513956051418737785563352208998267466668538456888108780752771454222482899983011763951471848486688400230640525041221858175925024334576406980619435632725785045741654362307703489756927914609992399588921569521119563903053669097380372535687722991482224752799805446979578266672777408611482000028105558057652370903509600604355572919833361009401342493027039013774799281323259763102932781114998302969294960666750586438205765347435236519944000257018676195515950835022169075665831814474958131730625614333109059198206625415398358459324713930459822303651562434590133303141742775708117839666440273930629757533765971742509308217771179229325806413199798936683258277780290382875567253665787429111942739245390990002747663971532568421462090080780139915954870501910083201700060686626974534937357385651072878448797757234486315812395291936224260799649286661848853720418413745750499244291599501985140820685409238763168976788786039362863664387951345516454800340757893149280383666324015663549378135917577946244730401179659217250933077269849126371503614302695010381847849998111263916123060792859118680299226848330463415099806223745571680270016710733087656559907195403470054575912508305823384471397045444954476226752116061471625277450150654120155249968912253442544954361074722391320459648811696170661606381521337750179667473154249020467615984851294778578686824242105920296065769738771658618358686149223186358316678354261053355826535417974544158590089981861910001100042220044792146279520142918275996719129452315444192937629621899180169874538249603197097135958532695800333592537762314221299779088257564085442281563370361957741242246392127535469016992607016419375301349849968005827767372708092143080690673988468628161485720570022117975639750637730898416020905240770312750863222719050946610079596869876933558291814012269586976644541180642313236054657375518727840587155084170109862410262372460318715307043467569238598128749723316208156718807272669468833203344194435958677486210951405221106968955099630179802613337264391434336289705023479500576773531240046370762116267312003498023618092799572616462702915553196471564255368531893681267206765902725354276657476435096761846217935787256995751513340947106961377056944011460163837524726921671177666232394522459074080908759772796557212314679542911895538746524051280572507706146324605486702579864276083431419981691337420884993792326202553536062941391413903942923875331142370020005641329023191474342943365813483727914148441102248263968356954388702456680550980425051937884489793440875311383785723103183613927346499699849507183797883680469503896315067353809822714590135575601457930838049898689076245836608180171830423540896419070232540913969352612654607066965490425366442296518410198030202283681810475236169161197142608640402091422877844895091172643068478353871026431233841024940562812985901048558181320466408288752547534189966163366769246559596387156659166846537062057174569064313667457583086230478032153860260771836480167025382970897003874041916876406633058992871690956995711055616837453508572782856640327649083842622362840564720736176635728229683618310846630576654689792178963045391428798346999320648477682525687507899095969011721274307706549231188699836259299780244276885258704726261290541017486069360582537623527701291478466475906832921936954596674508973704837007913942831819738119030243579868325910977387750289164539995753948649364549678878176235338435774192598099710063970513655099706237219941699529957831845156632546960406804688828046715659720942449870541138869655020122235182300631163179550538710106195674021794368733742201537223531164718336278788754587382400084987324525155089686795399112644764820910267971801893938134731802303050100584390371663705319585640242733144639421022754717921308326708736946382558892993911883609053272001747124587228986968587414492246491916808183254800724868627889865187253374713257180683209052771671945708276145224414765400164120350514975538934439965991255044088342882081606272423761787444757539974808048791134584162414066954562081487895951869474680588534025849514845840049205242538792082144408744815424919630121585063715311290462138550414256736866788859529238126163474491984073336137893095277802969258762313651847592276019680912178152081225125907425192210088824693497953280109935732649427990419325555757132358906026185590217707590352983537454008221592032437483430542095613767184773228375330754017490213911554949790208289471794708681352843860738606549031798290790895885099806002086664008333756782091149244690270541918276611033548508005772048336345182772023847373871160817716909162280306160721003170836871302631855677033243339944210541021559590155854798563746006291004480172059628770891661240444629302015811582771969882424316951013343522597107662715123828023120167170904393107528087065750034379624965449962978431091626195431579688373383480710498163876408907563976871620628718982799577342013993654447606491005687819311325452562900191768697049389330191440630214094696979786329953859870847160222681476886349937955230844333237855207545240398819344864873066299908096674280163296151564325699731990514603721633150126905298868401984523148002786689824460188820679408193423169715120872325509946319771656195151710060854379411107396624640577824632833824582540389353897150520700399409662258761525172762594312777224229474643593718088325158276289380828810903020378934609993405340884364923035900827655959271150628072845522461507300763369477158754710483859705627329173786612976372469653952296616447784664820214405698454667263519043564861671770114015952620582457588564938578687077435523540189421754224248624407016483385265390944398352334868568593270303707336802727239498301626346466225138475485157970706029354587813497842970611068580958186131367031775991913455773983651858672140361268410143790719116560750456310925752218923229328141504449578571035127583513227272666325272418319884228444224237160028437035517630170089257658619420806187852529867904748463159536512481904892267271662716162486977203232061062639786259198397657069901099873736588706162720021614537837001359552730815659645392466124301680183978854801634412748032702155609113766787062578379043018586434392710865224505625092914489774864453705021575836815683554014259887557354486165567415227514122220380255576037644304853214013526449484241028324035665996390904067601503454917782888886451747383293107565267375247923971103979193474704674060956651125496266369559479291165192705875484272563129362165650789350576245478054989663737919022139636531237971805687041761598000458117374726262428298912511001457181647969784514574225101638943699232081733472296800874975143613473354614293251024794390362692089953677939681125560208772998290000738158146523877444270759635880102428500190922631250254710968248630421966736830878544414108354484719820106412973827621487374514129160909232542866948747847332069980674468607013077035079605277817773063166604709961608132463552539092081047647509427750890472982129643075878849149969749831430033053454535188441495283720260987370930774197783311525553097880084451950616682970558964601691902716223724461560357722443957116452945902850418211325923800069689179667523834828405754483089247225536297620859691902033183316146850962925928480670870704800586396979710767239774672198780219630576834238057476166326003684527068490245565105809430563290215184164624462892857728017211422635221442304306358333370095006463115774760062622427473661977620358885629917684322786165700247026278585040931837360974340932372829171876736433389167393167996858132675796479075140228674255639343537348937703188707917740744352710507609265103643396366776769782646326716010756071305197203690615772888270668761426034967794168524898171667921358295787910608543012744951047237049539232332003885771182828709850748228769011391334579179035655486328327561652009666625926303188976215089889193877503430914395732045305671456185358301860548638179680662217482708196773482567456002413830770427373626437062102989946335224388006959990801875552830993324316161543161932835963922466823668540566895382496559066577448006032637751724623194468834132280889394587440013408759216114020616713563324569700305956056011350669845927663110934808690090635882783079210183640451742456068276689524404970527586094156725874773605645186530623409703459651738757426243509488092648219707481305377342039695787131613577016264876555495702379615465488394879929931366916469123504682786542741454782987974590477399400703687876476612204736869013740544318247163650280755753340203674706017716552431416801230243083001429886666278334760693306237521902202707987050292122904686816187404638353488206924797987135071408004178942222874259596796127101666923140869891158638155980756254435025682795552977072261750349752349614581533147137720604657637130688484647441824324055324403106801619293522891530200629684442497747601384732006223324170615559368338892151349632458528527954534021594004473730421696258390279710648254266737634635835504341268565381587964452081449495660154882687276120563953968150091420702015448437684886105813046771551145007343164940535950196386746393099602932715081906375889638833602690369372992710798064461141115976046579584266065988667278727423366632951433432923118019730279294945927584029329302749101714972066027649088768876741958257978588614852643452437975132366548767694854185133290836497340743651365881733111042990200866470473792580953668067459567005901571506403507384984369934232879292651776146486523549257194404811529041970697249844695152263646634091810001006154020128271793189183936312560051657838389225862984187367330050431944739495443225666018273469349389027797845588423940064623999754448714917303078602198909795209652205930206092739877142002236215298898573023770633678456267739556253180179581770093494371494027430747696963563045531458953098069525555368180809155624654201094690830276112344568638372800987507441838588033536093391780566435392222729988775576658008268876839105388752507269684287087824810460969976482173816073010940866450169802836489524914910628037219377752618417273501093857104995994584491388651572641306290811909392791465512690427324446891078976174900687522778438410505430840924020803734792492444743795009466942562665355340240976115614074808885922215044887308063086644723373995816583324627930413456732427740551642694439526670878468251998388536025124060922895359575272722760026027739745183286706741794328862077723280473037393712406602276014418966807204713587414272526137807315718683875030381043383562245279031595401407959153731805422630867003429884603473141242664590019443028350401536254622934615913264137592989255013650256036902677513200537110600741359230935339378898020710323641604399397596542394370618361647150893408030686860179283745925024190479176439110013561539474097091976724759817957997564863678600850413073263985130635404705224695735334159864533352037321578072240377446097385374790892742715787390796194835593868564043106515318433242846158332538932392799544623023435559025487110090500745044383653227165488867964207958992147836260373692469556605052713336777491758781858710153976962197926692287501844419697452561405389591429375184682257429273471128398686675685513764745730797830669898121039561502665532495971799613691653152760026425107166227193786872928434473591618325688747564225505428532087555708308124748412126526175335301117936083772574188882175147948649720222289563952091620008755930767641901293091204367676786677724623512791545653168045693536596897148035578616605752979444158486482977201824992755481537482091303652159836921613217126934790451245488367003304691952702794331790652429240208505137835130598912778475971335551170045006734290129303097074818409007898907783835615804103816560158926855723085341427046825328610975544603467560726081942510531074036929883264654159980447932683222442847073158589791183885384547323385415566471135614332171572757976393081109049613623241206659474209030386839970164011614308912611467841685450785151228627157673999407821700977299965564774476526331690767238688984667503869186133840344869785538600935057296782402698750369890503807886536374404996810049451626557700740419293515471093936848526673439531917852932255097370832286527880783070706504103827884115184411824532199392789050402956597414207004953499116678307882089746134850716081076109423490569396984509125480214366024297535648504264106356035826572882557064801141156233662386272503215281662378124466101789077915927186882449354917838937367952669778821405975095573565504780905655022303928524273492711250201935365018262464510225061283124501168269148720751731484369570419894497092964764021829845597559884912878052507432494354696272756876294355306615316759802392814048622976792925294785372111724102761776493940722696372656811564546713988704248021335210800442932815786626142195105640307764795246400955446035439463130822076192905998962524774670034048719594271452746196475114097748379549811775605991363493585366147924378058167421372104633741633350450045989111641415013160256867289573618738862888495861448966594074514362880148953271434862168119839790101031467554290454881391521196165464415286902182638682128346221354730629880825565820359335835626750542549220671970447163698453924329221537174540720824777442438041563184968703442809572156363431322051988202598950338668882071558758847497226439573612594875725501331052894209121780612609617332323245812103623193777791122330417089463422453692242843295541517237346924183345607164250687274244617872443216600975079999675875729823413412871319396421347510616550838484236870265391847235189018703119742647672565329191055272910602555881389443307751095939741855069910466800408988963732993279536819311036166159511779951528705359614247104237714102166361598353684833479780110100777227703534414498587561780121950024799790845628406206291097169112538242149857817207847539507696575620849855632253384624709007693131474718302268569064091467052748939932311246832181532228200808154244408047805126270142081653362296338591490403532821310762859284464436556095441478952934358934650285536787404009406260388263289911113466914491878589486577569801672720709564657617065501365730136477545290388079889487246740189299738840339719621384362781802944989479233869663277766154505885349901547570556443212084873239219221948692985922614980575156960407237394421822853072927736905296880157578485577878842486138726395857305693610951787505954973660454622026998513337156413158081756092748558451869967505618958780201256048477651432454296680903258874852371514055440453079484229432331293302012382235290808208354226903268968147336289123141478667479032295986833969417083870025738201280835114570516894416853209095804007454695281765865821934398629710811724010436274509214860415522767584043913862052299691496494445921802524252495941499108340631585359969943067130370592985727638940437629756455817050661452431999842354895591154509061146085184273769494276921314751663379911094605458492197483715955993434210577016596523103055270757974012803679432378801022139746214267626906639590649476767064809655073747776522978439772947769476297765066122605677863514577482420804222079157775487145991167031133062954709158349643503241908962531714180542799155393739012063835030661065018815574174189628308092858510116666145509049902763032303511475922518445291730035166126852975879496704341070738937584164409457639980499649121293282388884837758022848479054425023777827046511095789947604628798156915329309167284990232733413936799317955683995825416357613940712719064028067706506625145528928814037217261650669987274387493647634075701380368747224632647202252303465706499456110973945586509680104995066891352144372755913169274375728602174338818031497374238234266811003278693982895131789080159669444930537399450406610420952916794521632235226009059562611782702889237909330420020202809837974579222976511756350862916643019792356722627712598319665822980931843243735907604395251518748346931706819122596126090416904610734986102975889257252677946603941765753376489981520711752925849405364208143580263799186331096937471900201612876753981146190399908666598045520256048522001741692430140729550597609487975229333560859988978688923849061377890897120721286482719141786550231382960119824999517126922460838565936110405097455578823910874378551845174221164087871871108723514151734180717827817495720042964298292406461328709610026499666866116551998552385225058644750160582441906751962866347948248868107452017526571538205414668564161180665657606356173379020297376272711569850074401252694912096875387055528156438848657630041419334049041428396201138488889466512537135490752499829557738144319614707163631521123415609655727642436285088293360810215029396605790173708972894979621177931079544229357535996819925578116142440300783909728603331045523470871160439833890656535065513936749818301262806120963472785716483464376330971593668332608594035681775497359486937694664245981838479092892776097241720521263503038125753535618503995432647716627847603737253707005981473456957404482104702430611742744722949719032927533974059103259569073178286962743801605604707886609255251134697002200206717582324400693721594288297009974639298615375896958365033892982802955384194182454466640711844123582551054403792169957610902101891097794564674229902367352978912557172481969255687320770842203626161912658136920675779991480246934433647688976373992091300989884267638352997710059545120522149382183995072993633979303980832010376947965299551161282617721320779657255603137598925608451048447263587287103062223046617760423989240121324496296270747225885725616592733989179126687536093292060516057360966299027748736476121480653267591354883107144964973682509245070214426251701423447282346552276029253038870313945575143390271350127361289566134298773916100845851210919233114914075289857843202603450237774472433523323657003306665645438628708609944665596138731187757885492438288082109490804820291565435658236778184643444400562165785442287243322381961576659440162523019825408924616147708154539958635841739409483772154903805463355454651208190784920042761169632199369912268985521423002031885870740967460432316849981586460580875980453115455311922437889779319631110124655192292064113631299078635018915850388298504619012902779464271975530053112383438114350848431161752470379427878188706933160730652408102617105455553783452003397326118922211270025079582751122122312688094934643853841807435411878093882481130907098725789333815307239112743111113080482563999460555064164348672535806006428774043476825072166002267432501461641571420347800305690158528728658999485528790343593384148236117047399181615315459091134208817596624488572910151658814999114094752015772848429017227911344340599806070350447652776986719833085599526724891129185078237508373285272650198158859232707957574728007260052805976795783888838830056824190729212773249469196317597522681671653368865151263709521195534685532809770162101307342947700868672271966738700937977927284046680993254963268683356449323261140592672921826810735021518209858520954820351496543191082612494223736609294270959799800352489990933773926943319052680086567740096157397199502998767584237968383473605998453266789209934922312691649665911923148478060405874846757956569907855276128434846954823747781448253866800832436013365189885017495710494598344867265020812071016255286681960493024072406124515082832606777101753701867694578770333288923230003400720152337949830896270848143169954623145531898686067781412887668580446646336484748417438179884563504231123536152534910635466468570933467683022624166982259851577277132374726350812869024976110579126499500945095450529671591610378309332808018374690698814932951535696404978947240328501736027712623684817383553126828244411407326604993222449382795547960066306254855427867864999193372553597483230603687270883121646057629637973469247248238671246774753469551310735809556937734665695987452111308410618670853862576635737543847044270864401822046442187906997191686399833165419766649550256998785977078022994227184189989186953221244241898648613766543197096920989529869868790676021531927970620192620191716311501872135835494777569932758650197012104607084540643190949235166973357545471549650518068658604698126074271987303561575801263782656765018294883620796984702181622411956710026878803177491917788343035291838920023555444829199034831513403970331706354421983033083975748989613599380666239801254235217377467558020191125322669321802617348883809253680714475992691302689877626621993763790605920560103086242875440286129909430088588380797592841657276809109341937781171021307392513490231565428931341126586030828086689614854712444528865348756058472396929681843526645260239143176621067431757062854696505621788231236339516746256152070699804951297017157972416903374455481085539563972419900724291718503216329378683162236156124316632099578543679672323034203075865985930112844120065225441017305267394697955337668960416535797115209715723814715469319164816346765311732036090996862495090021529117512276256023069017453670944364985930172272875446765497078998667062698561185596471945309660726694367925093393963654067969832826870414546422487778815240756454715453822264448690296635211511425998629508515876154125096828707099345442528527329231800442597023589552573967819055493862949340367312573435091049114322033566066055082772068435262481353365315297510894704226317639580734071988842458385717471406690884707743570616630218240534092505534400195078796670382384670649629130029991001455336352090718645293312811234859451832105572023510276123546479477038023010671957878457992357635924802932239298026658642754141302669255861027504309913219910794199934576717170791091617047922684288762864715722945980611959053484892499723390831367975636937148483256775669773339917379678321708649567295124202024889528886867157215776371726963766398118933166221777144201231715981870148858053052957180396286317655207200906008436051779878485277795727192142520778559564088322647675043978328798996274611597393164519603155240539883756651611840116067753598635402034119005057733523387896109974313234124341693461511867685056286185152075047696824783758564657525903452933235037231431691714769344304003193249430846086344439873233027667021389750181814278247812746302164220911890596981261765338379367954636661960977657890810283000692343152690489056389501758780699903394147501352367073877569041999916726443184046640901110967465176459134083056907776841837467777489389592958508950457820243835829072119427307934057737225590082485369974500940235769633771190083367469120287423107744749795071787445012197315845337042346891521309580994637392523514749888778042940486886890677170509617897107071340138722709576394689293698092908831963565174188174904169063442996526780886557126943892528527467535606182452482276487377640483993666592069098776815059709979349606725088290907063536084892335349223137336465310410707068470848652112088430673088552107589834086939257827821672402388031189689924383780609773254442208433885064412032770438290469556453459786051918096716689026586400795535396106473113046327666259519548939320877987224598579115145613761781278549907632819077995312995345305099771444866617469058017406536063620037503283042783151599373952625451761018286652647074186450369967422278946817453080309858591534230483825014611429159263577544605597104386962468032320534216647271876234287897140064742776073338693694063557939373911555562289965918123108919785155473374338620720947037498506527145534204639624147136717778515223411839834278764764650195793619346406669348547106077337824684732940087340731766086784860551953223434951730174891331672711477828701446798060979516065620217412913554521005715951902906688544616311306799674948581112982998755100250377030693335714393003227110559657556997793124811427854429425587944839450499534976442513613336090915521302373465812505398096715271410894715028887398554775761085065292508248753089823293683214140290688357989672246941120845655092533395619827568453281580941759782262400308811934742964633356535796839722941463527106418807946462864203814050028104067256853097582043228271299695212014411942993450775555143107061605818528110623616091573303292036581569771089260543050098817316583470834616169291213987873393437083993103959267799214818427751760382228383145763400327195489883108188548354967377658435915974539245777095196479643274137605043283738202726186046963101216549876546412746300685986940726598787366370152782588027968862334100490186942306797522759024428909141205896126865885689143984418621914900995533979686567250053948827378825032673649812131550125517473587692570059350891548863846817538109151951113937408545417492220050959524302657509288927582339725984373930925141358561243245498230514221377027168375298636843155378038842913856076849711667105167878065068490044064950889378633728117752617305308449176612958240127250242102647843534243710129551337796568471315870110301827798006470948080261378134508769786347906505667593522344774410085197481790397066009360875250133757440674151254176597410748713062186411552843651037918800546095321710581182196129505235275909068080973157307135815995874445212490215488610754429827735955024188387769036126152802577057557224440277537178123021954979998199924350280964358833114013572504986859275398900397484526768715642261592566290673150734818219927114308475108904144163969880084477879284392007977406576925661974414352336032698153191500790415411419366125932829259070820079971730428474253920421212360144817306866678809605209293737599931478716010486885962232870100612481433607802134340398208092155292268646066763653509079638740628164309608287011347745404936682426273827860022229790762175419752677649222726832379970355998050078218222641001374897808069930598166917734139984877979707985652191646117176172441928602145133275543718256115823226473688343506456006235900789975509049051996984247255437146889198807275370976198294799551822377845027692654636416072115343244822189316964400658748202704050352054655130923800524395673645324236092985460034042333978827498142487811199406348443626089150365651194122613761283225922337830272560135965393401348250853797381244544924647597896491224543480134704386336151098329554213566610801110430760925159327159891173832984807415112092756828733581719741352878738271570697292974306484586113596453626414033238628397888861131025259342979505909349301691083234637623238134431443757168086572070973297286495922090999663205543170767108698241253765823276643619168018957077610490712725735875272634441626681394763347308186644000624125333738758940443378263530335773733740944466579248894824648339677473878719510561405089408546278511079567437841503113255752921499635942794551082475646663608397587718507036970739055493645290820417004883529236082616857673026791282034579552028864263153106191695554202873577678222893705614756236753246189165176096314277185642667846289275379215673266873087738470466125480213605737684205985458919464046465818252820020355907701944196187746562998527754527884719065733339866606489927730279340171845494617737325870011548738232370836167602444928935004840154362086844081804656529738652034612811817246715897594681416820474583045080251054045928053978327029850382838544655436319265264773524003489361303175432094892574243936606128787825682089311866016673396460478936518135405306494911150373348438329311149725126141381709245174710306377779647089814183767858242657737590921250340246988169348030739240915924149895601548383582602330675028611707320735580925710800875039253115635948046112145142016477488669143078317175801180777368247168727403352057093671273933633670166989349059246817970567507698458523983399526727225928710551895594988402619992970812312997339015140039294084979715765960969527348590483209085792012659894930435935459154148118113261058460073934041292988714615969147718743548883349234383976672046091290965866090788298728148800953760365923369867175042590075074521803345878308077906274078443466747247793099304690027307895912127126713010248352452698916663101344107807342911330110803572373872819547249422622475347363196327371525579064340573222605047135962486635712317328374922185101108970431794579357418157296617133945795825685816433464548829998884465092304182568417494985883582828761644742012022050094533734238796844061555962256829090743057170584068644856903835809293627548464337469181392540137557932578917795586200948799310320447167990000348972615987659003814519038309480220249470447548139422851911757537304700190590181800349323657233271014952399150838737949404281921309442910525884631386426509018993597042830364293061993341157805676007522627215741658916518324795650574136099470585655456920812213780487776559909217298050931933190883431218328594581287740911638031525003324853702111506247958042116776669634896709010797515170811034864747213195800131801402511118455626337874200830180093546383311707208613533102472302469480043800149726318898083037861683629910675432471692829901652146440520761057561475171701129139090235376453083944331636764123760663363958452791577992952180006093129510329706512633699169233401612555276488180456870837399637888732599646890162823202164100277641219286959820536449800940205677847087422984711812810723806484546688352222013107304816509858259940085300524930588601175657588451607626305296794877067019017943910242020135904780163173152706370451603121006836877072597214635350350822482062371214418597954550771220096541094573234674881317321623477180022017831835392010739144419821541931186615378298038470835677673663615608140913121638282390832805896278309074449961844033774854539195943354890295176281820838070033951681571447239306036895355528109910391287646781020691057255336249836279161255971222684051199840874528494028477468309886875368163384502477055108078433939609763930997882685949945846541215611487653404460147776424186554618097310799201633622625911666892208415575950953745154469493484152614339379306830914305024228070282033901186209234159982018049443053222479266638069271620264612435535471915803203561165680824752810800183621859408606748720298164468201633223300012460388185995768093609712554017649515297023851126120773832870384993187109378737083274122286590261022695098716209206564764946379069223288386365954810202012409878574509096967830650684409050176609359487808824949409664339862892662461588340368791693960478963169827605271958231918065513143101726150527823912697652573158192155263189567491184502765557590773795388643211859213337088475254071605887105806463759688384482614746029300695504616452796373012306803856761010008671522280303975844215376645730724434769820261152223916852682044801578495029992828495452829773840506561650549464064077164553392243027217908650565064514002231253150462760242467496835220603984704272140933215364080774466793183562419108014650173104118516964573712780312063517376837297601135005461624075894294827085022437359325128459635815088266252487528067680627190413070530909677540139929785355051387516333629125581527282906294004620935094269898974769555815888814518204054573347662193002748591298758190756459017870754017463196538100513491719299181798261443246562452861933514176026287878751623158857536547056528796377590882072851188462456847147455108434037670976628315780163820235099503458013898832707761244717725293554904770572895745917936113858418356717625635547772558708884102631691280238886288027183163552854562969687634766419447369267295678466813622979990622346690995914579899534889078402038796800670508601206157093938601394889846715941133617774726255837604949088119470321363227385173045657633858875644405596885360248685941167808597022996441608210143497793829910310817233054960726920170500079382735448336585938788041213141315278307471956958539810138897657220103132899289374580846313426905757188596947214888463895872442181351929368976546878148789195715400653808633115275619864903484392453130285744958641131113618705601402373790977120782238246877927440918725074440042381022014696747659246902012157282621278151092570137393878730741235923346979082481615341926219468850248950490526279690467015669306107435438407911688706360237505863993482205912591704429319599999611366051749795370171572188689127430254639879881824848599587910085090617594135152378790069385643532695666674476495077248699448556175143272935692913314867020283198304542948896461783677989582425163664826148066153593588719506962384832038913632704891612706854660289499700720770496106485427661643307739447505103435914116086704667619791850030160736154831259482502845919813795362477712196732556127511779888646327516251966362325127926846270545713556728325110910594605445922837313456119336009564248290330717603877797792415795895849550985694587440570782286601334282041787931321746170385039903652922304651336616603637625676274185915860603604483198820178071387913944186912972879785243963582120227775275098521750893521143092005675695359734660243675386958629699821751474988259123795354659730135459133689294210003755134669980785396799808113931801312620462165485795930046785772623880930267250571337482710849859745088355881326235849710697853203234493228595597568824112513651675694919375195171531541346687949270060554072885801193673868135458840708319847023746381161342327992121180279900723599178966094111005596951549709343690698104917773486373848248085442414404379380666561684538240375750498625240139666107358739146523158713716442445007288267895401729268279289731057270017367046147961741981449298548886343629983840214566514819816091365317260762813491421445872874339090756138666156431473124551218051103762442691814592564805686123766895256872848137496822113984101961081379363234059650640159158804478860633069232952433661162211071979363202582553705512927544527584930495950406580248994438728477932537716430875085527088197419663792771942054834633899437984724708752856186679327268238654267602890898478703112333960778495161096464518375144488377092402669256234184464426258528622082234561829396155007636243026968079534834752835127248153900289206554898671110720975667658846199989886035154953946544016865394690997567889662149175303177718947560703845900819097183815972238063952211357645847313169700803573494986618972222386069138259211888533493709262680426863114157295693248374403899962358873035532326075001288965419602106752514568602477874905829431905075244750353864149703547745882047226584589157357636743813954509026375703076564860347539038233117993825240913045939652440220409749117053608153957286583084112182052237081821413236358982513468388900027685441628723166210934521293795785336485436852466598791914840706829536941668077314708437901793780186455930895558554887671504207700416939713697988058274303273343569189998985346849873682593912091512120567968341309387971240899436112711504039407270092002028478731554448517912264663506427913318208923855811062755909232910627665982642457245270129879632379213837056293790235042855404869626828825926467015565518987844665635499162109373872351791804965606343589660685067751651451680044725893224726859306694270652267574534392547922638130275165900795238527475786988642080135177511916761098731091752528774510529339786580362451973038482886847329104651110386893308911679627934347870731957530420919702752183461969982092139808168423062070759207752089806431585682378531810400031187648990940632801962331952725943825231105753380546841696342361327022226637850983724730359877991060542301903304355289942227388576717360770072090026966211980131952693120874727843666541177599740549173654229758894040591242292579441619689413014344059891492644480078857834985194816419151629455353232797911823553554074519198217479329681857745144095488634611689631172263954078089253763896930620471969968472542882163574444863200724040807835346403068589504705664201008048821795258015978861214721131148749567730104444571214015941836730053572894227230032278138172579713114087924802813284203383176182267683226261584133682986211026567338577182725902320578001450747662830587605676675509485194387539089689638679667659497720023999413395006744614382197272485283617296872459119628346505822367147572495131301142508638454115666610510633505183261583086131344063420519323939099897083429956209295719366180177224119793312715943362932070693011448927537732690306682249839864856097425678811114523298278102078262904483475028472244609354469281604771008517344474938706077172408704733775887048069946898404685274970310601652836296636441196458930621644266376218936400457547630682852396115341217549666349856615960099306337239327214608267110130368335042659731313153157596081193550045742418593147394353612607317940766696571270672423584699945263321400138033456399098588578946547691990568149688811958826461739026009125848892231411344586004343913180681965146514896781836163882268874330523070862959260393555415448751065843724648794344677676897467471392687660424743439107469505095980753716080736548721214613499196793680380570361699066877539172866476422713518213767210599219914837302794320158870285757766883151050519632966974110170386004630498553073195214508086146853653435959771714994960223183867178660480418209910455105378750912588091594569018974365624483902072365515666845895344830083495123527917681307344434256064661494275500023024978591269342805591001277213016980644951436139187477492591161998066235276208603295735662159332978778500008972293193838493613087719274726169676458618256076790400362872578361620897918404679348226749861201212868780069338357876743435161279644454367955692838581956967830750550044439698122602828990087316518801681679154620309672624996203632574942650322300832507868940725268633548647755717149570468565733331493358355920974388004697570494836073102490723385692081820227336171641924054684936235299488677040628391555561619552535865756833747882149169697547172889167394974714519391130950156665911502671854641427306869468787366716877922018078298543427971617748979078317087693565623556035652083682058827836447002601173856752292577502475409881532308820566879435495188777206794701630409697687423084031386448929372983568713267311257699228698663025864452164512329726058098851480567975850115938335196710281060019218391061122297173715508776607882049602674089414076835238715375543018576233015433507308156554885992967853239091981249352742501090434706418131501431015080691091024717892620564416531125131330934380530172558032728523716961370564736212692660626365692367899545112585221363876446866036219140272318490753002521296678450293455766008714435030518639818498280348389547455674843559626279950922703088716598476326791596374717313804226103411028229850787391525694723912412944341744918780780609458073046224951875452167011496736195181009467643944876467608038547231739963925793480318020788142848211048564916805023522697508981234177882989571688014328435474855480403263485853924943977110312721534191911803788071822493310179049467298780589437458074283849256583476974900749893610021032312906713344293474989802846302154798856615064388767964221219360585902174137575840288528248012571402313151391360995041217627986162917221835739873005194967447991902962738328648081800483377349076867662376526254202572114996420635521470535547704607674759318537255994016269294916732214230992095114126236405237245139425345206337733788480111712888441834572483770141854817701561250522131219813717695741756344709979792827691771248517487470480151496260364995120361289747165101870176000992131744973071542244674203911166433812902312684766610501626929998345869417563241082442034607628842871024391253400025475033800443516745518075080813678362687279833945285717012286882872055297907585613276271915900580009397258196212790343747112109955845595884472524048546978766535559544083949954943416294935589203862046500338050997545787441920449547937061168065081578101411964038256510486758618264865284538277952714159732256289418783205989576026748208536716833535320948810682855155349331462849285549450321553981163862312879135564733363304126710427356533685565305112938223192198659358982430923099430942413791330628552610018023684897242752633893838312413596411005750877915793083784761339402901484292229689756023818200748068179258079142790443945144662421288189367706788312788520739123234444311168667581121591583004745300443166648322351912797256929173955510301176053953945773204842081148723770206631151746344628420617402861847454917308857228779571461879228960832107704922100804335060604732643933878163643363788220300662860815259607514851650670565192171772272295222850845707102676307066126629800469465320037275884130566781288864005621551571927227603252169686043261886357995049938332659673842410150766767131260834532413668384234357124590690673116418020730206198376003893241638235570734757443410113055509617078320110922104954919991754092054405309075815951313223293227573347114338819884614516668911395145235542739460777917495257039927138324298836746851572724927085869010051929128598347113778972451356699185803838102204418909128912984945385818321187999546356242579530164562474522823472074182516547719843208030615532747717717552599773866527791041508095572999524880391588588821777622287861587253743515667341051612639501393633829163880439712575583612488063897451645825257873908455572697017952131774612283704536804918752468088336697111451052053393819074963079306799214580853689978068599767016349188395740863699255170870109875969262223153421333671663055930528495229432166801313121445002784725403393946740429841193382433577089635386486438535566872824756656318283259072238339715335891217621774733458485633275910946397188575489106890224557596505565685881492178193671198423956773372823811654918036148646234697692466375762377834856104363275413109893241505775765272156724644137505510759251851152741940503103716123383709778643376027118035969910703450567205695557983316796585582847209385485270776982411489841548545169279583509023623669910345749107532217303217258552597182756272410320613569997434044465413408223063662307763580810803807440117257444209017098411313211318105582358220375712572928679024991461706839165642845249842628106271358510673797847759121842812341209106202191629538957325456149564746773107322698275286915060822272660457404673449807902306325276280182615584088007699935177798802239949896995224694389710624631243720611216349275736078878039759769963033710976515484842304117473624177690702618269256719448480094203803132980029265766410381473520191173312299238537204490063162473046265649609015812707348935547529520225917209957884417332525589481494805931011171102565298210146922829423581756185993899923938178972560396739802064236714715951889503210381249777112696763149307346680323414696162717467393851285463675509831810833872791746500955524786017086886167332070094221618751730069597536827415746314406417142499835392733433828399500051243631403375281442529961371874143508963697168060121895967588726038127343012898572115694921398018505616679118344859296536510611404761154582232428356047507014987409321898864287106456400398495900364245617971037391904561300853549013018713866783230629244046970359113315507529334262009748242922412876761982007535186182815067587045191249219226225441964164323840247908324822864617679033282829754325752080282351752402724726209211023979737636579842510018290208850303020228654825940028701073604573009470839153300471662373287800183213642441204209124044480208370012656386524857898843976337002133979862676482172146044452609565658510897332622410267213463030915115503170089247449024655065587820015906602157042822899402001556265970712351910844130042877215009934695415262698265785970719852615440613678611778588936294368834772259651967758169618491494804560289065394370865983277027369578870980036324540773009341249768490077836261002967897018311539603286830056146900252928006689481692268796142814700391777747424086038440683548954779831082533674055401576870353212418907417226694062571047318045797845734770811674872972295649728519186778697538483343673420889080025689662343638080105706179593947509046623676824680053878490996768122300893574225180494641240862934255216817537691119023893421234370775959137297939080624829670543623819242093923515555644160862571796742334686846584132677886978474104298302520162214379665017598518268479044359505284961264294318681759497669239318881480559567880409116199822081684465000501347281622901627837576709089798099135519093302502984122296660698610820119789702738889003307810920070872027136629593935482948344786959621432305050089662482776975872878995047449740095745309866790152927752441962689825187999483687510531158630716425283988290530476852817025772626798728148422841606477738518873624528675073581693439201205570911695288638391077820076716261367987360335791230521246171804706200051943418572588828327687397467371150301635483740420330092583106008964891514006312830800980453664185903455018947912035724946658626428267288510943270443215972893662956653168901483649602851864782075203316910762303656087316219571658455804559570488288979255525528266339746409256516368023203216841246293030013030488118636092892777081821665248718936927823674761175687007585810030864623863315597802414873763875940409857654242642302661343393958249208311333813410649116621405393789070589202200586898974350252787647392641210671110782204179756677780239655806511131057549215750886937551644023559178669754562948037820254014288975361405005567087179824140704488432759751279906991149538896641540317290834028578870314063509486744427881334265936419380396351983718439494323919905262172760280865767962442100506155001377898149808533805980006699200933823330646552361283254423750997131978153457900766918012558413031390292155582964713681848495361291979453326278335243188078070054641418383591624125514638590653711255735442942483887988569333903895712349141697029217798013004052469481417785823257296895618568613505601989351672635217711868544994520983348104401879678476347319405178691595403879287524001217976445798326750699043024035735691945962380985220037722640823868953910005058922464404335719255770095235330542141591532071407667880652901057879395997468632187645911760160878652203181926695615182172287242397777552156754528090542987810130171990993014898204411151153914664197680421403231728570692509467604070969859462099657326864104054527787629023600752402481843542278941462768558124530132413125529003362261397482773885303968943273937254213823015144304135701543464441258116417657097735239761577236915888556145480816619267800897460364011619259770931035734752629982226971556294014460477823711525861656335480086156207549845992068670272623214713048937842368088956611934557358631712388388142724012015913487803985097879207497010889782466450817396490636905469463196171365079075236357751923092681594170213970687540688790908766498464091915207391834012149958335208285922521043940412560101543136675856889861202876197562237329263923608898869674829537631660868370088319029755434028498096794028576091827540132274621250037425341958904124779331902624676837548707150268852726105546368418660264339287154467631065671770111207224106145679795427894832633849916414857193080289242402970735011798571778795936720585609082425570625620810461831778114512175825741430095929859619413138775709108371074348873329910760434452762203776596217764828075957412495861023559393331116671369843528005873792590020619301438612268129264001345603679013282741014420436425239802549872657418483615902041968963403415896843260867194891835832516444013423124478603349884088010536801681371161297344860465909683074335560667806308867627975955653946450298851131522591945886486996825569995888633528009071258791507490755619544919042160018211126727621089832105625125243877863726105198895262299008670531659094511753690309198594042497223968577934813800550378569496622501759942581532263703022451475855325446578989744700862449505966421992683278812928454097032090509150377579314501506003534420433259465462065975040636420074265239921697923628214637108471384273459082158098277912839134387500249655825473693430515422846057001595920002159336738094823039614190568565980583676890978120447772691282573987256166089014021645620607606284936970825207517689565173348143369575488595658000695494635564837155859382616067674977993470515477032443345227890367219937239210777746364256305058242155577536958379497084577777420939674507685205790091000336936333662409163937657362019184485514237722517862104881469687912444145016856073797329327605717557968808606743284438383826014157454884507763698286142217272822931973599770670814991000374944534288595694523799112164904744703988454679690041453722658377086897031414217401148717158906505356857949198727242010695870458830283614468755578859501167360498507156519290737269734257542703019213754289975069463962667650365753343521255168862015407596843241115959942018634043598334238009975789757876297132879314783360501110242946720400936091152229175540769463575993284959007218500062988408291850726100810351089277219092647266094771689597382829989521916451348044554143022213832865090608830104753788206563230572974538265711437272223499904414754899958631245387300585564880919537160318550505300718935281298869099351473325583487402375229921951910152660644466154988559972442989980094121727331494768417639453028776296243054677698934978601617908864580167143986697262729379588054265715104106573050591869664531614404594853720560866359804046502055296541398289634838687273189448237514621287925544054504325551404084867000069853984193497379924657110130796709953448253309760133053079207536080406890369365615999673529602984983394685784551041065974000492728233765407528681148793828799512195622702476400659034255551731712370762738577746524446498460540055908424528344222740397611063808221447496190666070580516157194596443727540662402137292548297232040843653057311443434509890347388815327322529012271957183948636787167477189608765712949961850641457154814255876652118009259113957321763899117874730562428125295225385606353376763915791392301859667466286399668709691911754507468979964243529513731023637709799994896991490093865690136814059178813019064739665248011428014212563847682922479491585130262456228105225371201537185106732707842566425694216291312904608797695271669470742430295922070923478724264137790255234491043522541853180714547186926855311482651773289855894948764923785335869514397546274583180838618796516657834454632570520239093850810306556637336030615005271486753848891878703722022750057097132642302585014149801604592484956711675329033835214055092498288990393760853450967654767941537415555294586291799147004512554576202540576790743045605906366462508400904552796402999274047701638825446700695905194659928512698543152547879388055084589627524320967774070244197463451471754953918730409552904362332511139256509285911516305679215984427654247726217912216246736072576048052237584765755877550269186758251655890967617335812478567250023174168592254103687419180317362220273570968254299665638214538172555982109869527794237420272624673763795516136258212683190266943393892404032173718452259241116207584276914552179634235263548022906133932085743300774437817308104706991713553194699873900543939442401117407516509751563333175185097074382992571516808879677842971787996151490268258808951927925085150311612223166802358677329097650059724479991048547531339133977338803213445066993579718048606727933504983364886560169873220490977033967405035780558239531335506359940479341041368110030172412094788665092333992113817987739608998120571946622789622006737086930193519785321627137702021352242442371940137014005475668041723641736596502064002695520819281320659529959802555895107556711140364797646248529702267173576291716138006571819931442790311875753389836033662664033514174067394804639888286194789580802654305169289687046314595097440300472841152065056356847940308158254300063558903065406518216102000880261326138755647813717337786083221819038169643258362011001654156715541793957937880664770867996553373138739840802426088766538987548115938405073332776598268227293558447012175907297388201396476554878059695565956225214803593101070199646084210977796646941455132740766217206397763558133579164867596283253708506125681256663222608416722743158427860256458709030662220522612710706726885401151004203496518041266488026924714640778255703225822424014678024253964188645765065528747159582885818802695317137455704895213729812692815320280268468060969353230217302687927287587439260761778213816293473311162146867792552179057139596362853197369016450747292510953759107530039111206179370303364554781792017873967188717062864210971435037571738129173153735490952163839264013442672620956671062779137841762403025609113510216100145940794518864328529358809334158306745428840851999149744010187051517606100182134007014727771776056655819802504619131489683000557395694428023766392462157411994981728944100126962173793093348316506772672895846176247642620993648307931390954095764354554993095704155109321282257832944546673175432072646245516355516914057777575014450350783944506144894809735769539618070185418750233305839530062132045192994410201863129132198263548602428768994080012207747808080753388962943476463987419480158822660830773178537229046486905478509698253867797815120068235107411277294757553498972292187826457386423446599260877718025321585230251299795038457537339256861700421219502273058005188695947041921349625674169884418182303692683278521914443748603271039303016567029845661722681668533794240335289534006595180485771601329525962792979526819165612575394516575442610257924981625645456422738286429027737618241807730182477937704179751195982672347780118818982072842403046481115811559907002069039058758234250505688730598543656264662469979463982783723420129437250182433568582524869021401458458617536838080471647402911434410103974330460541673124447263468902786852178084697918649386546054534064582654201494428249692114875984242369612663231179763492818362146622624703648749976690236687635179883735566244780083458502918657677495699596002333450831534081096558926230320655622552759183173969087421214032406032837221301243942387446441619214706584095340444250716860763328922100693651592299020998425675702727149835878784876675766985285492317890944742572682672277840424240429751020774195837399195915711367153421028840867846231425286524028492982042329790635618441252075976273602403730110271180246876964380804995195063106810222043586980137423776277416415013522960738236621148651048002829163183773769994186682007279736840694439682985232366970112608523093913232066185612880976029838890747339481558009265920791633094878454664037115614926456509841411214379485976231675531139868647717271640130996308401014754049862842847988758271294012221226846587320739557780569342534677061402259175973629644033097425878825150822186891666456006421176901518039859267158393542154743386005225384692455328440944636544499774536071398973110522167619573204204268672947959685501320347252338780994810658628690908833990021661531390737023895669445731136244932517785080795524009560339067190590982853293962801994035237091366590578254569429988691976392722558192929435117065375495138643550856123027403864093006445839178096815126983660857332217605123899067468440633031957997011776646022514325825759351702203311954348414621238287466079154965463535014713961212988430356316593471787610675800803049672416310820305154404776374828741193814915519207535153890237253953447123671270104510626382669144248760294234021211921816304662952435891497809440907856024047997190449112983270544471850487351407821504043991324074166247696897624789623531653845307210838236592287565930716823035627779937137386442843035778597719198315237022493468725056113791517407029575516117993127337912449782840299237646838501059254827313876490456714045590272637612771623792057919733386138888607586421334225898461271916696708379358344042609785728677998500730796806730598876076741803643101764319222835348316435344770550373266254961896854511241175246514450826823887716549917086005783574537165536596412925740174847734265978191437928036779747608576120621590060832718507681921741100421688668877400085756483578133933134173385740871672112997795434360229067203734436717838121846688808445940913061435860805085101995833933493635729679716637710779907650518719996164382036587148640025382824278875828934993446409436387662756402375998705008123731893532572650380167872839763677919384495047827011504871251745230305947189431090822865748703247990458506023394839123639277424221666981402904594129218865470241195038789372138580658159706078934814050414810087449247350627038734273356812990132930621319352978128947865191564278771568511584543137274700742506257255516367774485402377293342279907226001029422126135162276474448669773646997451596186986246556259057006356786407800410182405493350011664396998339340563103490296587522492318983822284913302904446567162166490404682297191266232264196921595304700946856488789502841543108990932865663141572227592515842263706664037595112579787930171077751544637070653328829467943290456907528988689782434328129073743666238793979057062102715113725628507681068197828231792377262452018306414900355310514892655055547239843485934423817657331865459974466090372155383158283935448717175209473498714946847155925543834769067623504590496442104727969538125402329385042951614736492956235287656747479963889352145957351811019863406313251308382082538032886123636232099824018946830412917942958877317739779516000457207375092563287646257416261490819079084815045473584529051535238457094248805372366548676175478946352955572463446068139095024871477539946086875097783702193342205504289079716621882632707560206294922708671397348920034851839601871266304626193849729005561832664667394472827139908838771026606119649104978274221950607332826441274977495423233561130582819194249970817901391150197572076843698820035765766630552944640861902670029562264875164999669902358754931534259699947704883550655360259999787522930803885356866395996634042636741329086005363762132688227209248411473964606143555123358816264307486028584133623863937416507293275650680596376700484903775060546041264893600529240672983292373276439682446153932355509967702371353268044661813758164446094476871258945672468173096757538588229492940974598640035622056107749310816699085159138820427897460647403599321235006315999372795147849902071088780815869578678912803508625652988802172270877569258965591781810161548523884555539742842375707433909154454693012008268344816172356308082372540031854298085704678008382770177270140343401002090030405051830824900018025285920166898368982171448131819298457579197585218549441118672093843435885323294202427303192876311919907467358025140636476030146491802260226843583438025353501185198841131376598847835365474285861636270203298854469384672042348556668811539925521337570234301190197117441835055838305186298524487232550593543426298174871394982633184919483337493426982891288246765598674769404585405800811356123697418281484734775187885431789201450857097138353783519475356189405316239761763576675996409212015515670930873107826966352728353320134536546953380808294490676382943917940176121242652950310344268425973359737095250562117119920482063755914068124276805171659063659324400253400085238005127570848776550257004246415929865686196808313885321423589069457982704417638436059941285449727762514812119522375846382298352915031120586712622489848689733428729257804269437496881542839478341048741205277449791535554260558077239936182232481784662930451884183243078677116740131531949315130570396492193971552859115254784722300533908113129102157893795411955711692683648276830716987004052938387268570980743496114950989088426956445014643137765965512385665851020076281436720479610659757247026945859993277810727197207902133653080518471674349901960147531988651425921445393015828541564714392778381416998593391207448894788171160052627739576051209758830662058922579903969890578874055685141452145598528285114377181351630018130617634283662451066250518949324394740970753785035911615802619172221107775975074624617578276687580524184344355793151588626214209332239133957020192223822359293997618222988874121681028548064690068519495730346751841341967463039172101870990482919079484140478648839938005514099541746033124112184091385359146475195732080347534054296385649655392537082531098683694991424125832011956534426048920821669628875489480190221112370558404722879766511343736729432964763680987355799678731923747918429311585823440741317556170491464564686425432799187808433554846084453553252740731186441115777513602433511829107620114842300745291248965039739605466861164262042377054996143373279651408699548386547872257412222346158237766722169905191780869099722632878954962457085166349105635534892142478248175108091533245826800660240224103820506256807420878016102344575146174839016426977255084032010989201479284477839595036162427317235397087150833708541813730211841190605891476862296103574430127597212472749758509648912417193915104553879485160150553523507894651008550475513871506906314929339962463590936563890451713059460159502217069717698915843944931773959299076040801203565284744377327723805207061585014961030373550109925076923367560599508261030153111823255721706912085329905792310902366827251095804014225431981016159296851281045069120130370915954620991905496503508087318694185052251742221373017564666639928258885081819919532614486151602264059061152314365655472475812232186359680289102633706047195287617345852197304844705625785160691823066480446852903728792353780350474811012673647265178286531251486150051201979853644413162496273505413007456239673733768409494614437352185804847273516515115925708286501079551500201387628482289800881328292078668282512587170829984425582703445072506027853566922471802404963907180629623248065024256844935372510593653621509963594073909583131203003446129153588269675220148720220241701659893865207924239845891941272825377349138333856688137435463664427982003337643510127597052691810741820827938530479611148749063789890047924916365091144940355343902745605425355031410565130902839727688035286999459470967152706586211692321223080773844898040820145089747732892377179647607507296380501702595826792733184562007920103015668584350592821928275023868318610366594311335979351704519819759581518275152942130888507855191759913638682480509668639304226591557017928254357029585853557987438218571677721995304900256306649563727321055926603106373496240817892554051424750619814958029749160504475722229950657838715046939211294047377171455893731868448775321122703112187667213279056934491055967529400142280921259256577562993754168334312919656957640498596963845925908840529652050880872912636299001484293576654003809761278593688226932574365502721435233290111044836128168459663805055898316911607320054805886535619358266440810985132115341735375852193099151148634489966835308913854455830291518352466959783566329361888863291067563073632565449115578107103635945097926792509059971126049802996363928080273983237412763263111323268132969542785729712506559100473052233358862483544392893379019635549275984388511746972701989102120489297843628322211689589001755867050888959395483897535025164364429736637464124492475798863971419794539792732570455791627102040065717808992836163863441533749122742966144254280376951529371247430472142478759154644738442567110880071540497968533075496189499712830573393167408661513973829602385874097455904550921106183395580294805363818889019867420706328015678236014974220685933288929970117338279570918439401667732002204602431487368268352386406470997931907041049224545381678838770875395985657751342292972593879505159573985848152674504470283299839592757920109845585796296931707743663583541081651650117836121255912325293969688140919162891664955264693565838651032798844813784612215016589034841052173087852406792768581762560270760860141809463829186436310043313270958884955832906558643251947253932242742943167155932036464813173518439380889124324660466444700848086557086692255512251732241225535581565220303405825120992053880927035118701800955864981944058936355150245137989645559745736320449824713531228007113218609255736349795748653995524986195554442731092783639847513681325497063998083183421627470399393288852524000927311578421011391972065535171937507293222067089830188493069722773490105720454970752679685862086377447513852940995242223530364157506038219820677379522997725573219507374606501545425360328033047415428219872495996249549973673307846248228432890767084862712362796407810912751717804087473762675194942247765520596103841769667447575103041254082604005221858068665633562632945704430751130124503264299434489306457635375318816248034975523219825739176833652761980474271226818471606402902132287289236172385094330400509435083452732088336087654762533003401778772426319833234621762251768073148980012641722159062765364155867455306655570003924697535623583315615821025607971340346794332477803391853609996441087256862943157270461214937401469336253430703641282112169120233418006223720870685640914628870188636019292571137404671344503488385626836539462225525281347669269359993961668269489138665330840985318190021079762901128813043071423549678021613300783738439812621428808405798353029088607657920034855036015935309084800148195246166348484040903445074932687111109122485573525665005447826444570043181089496500667266756568675154772872259371721767421357916910236998998818699565755495514924351070938671433120010528494060944834422907394877973066458349326075864831622604365540708107232667708795583057227042359657794284578988142768595023622674261116178101930829155689972099810220969651400449451552575678933232359762738010219496993180522293038653062590865389724492428586237566797303334213126846436849293774756439207400288701500528580705114773236772278332276295746329381580677244741141176074614766897346313141611922442469150167959677023170612307829377056480611148221831855709342347158312287887776272690461106817092185632946739230688980501962159821626785414212050199405970278883270080201599046463201905086691142366687119484076478647800820436165690599426159282077691193979598409578726351735890180188500988976925135675984965521337391304550495746866826245612466705394207344597204776656538121996994372555002022246387496161603153673457712655362053570870536630169152526436636995968197938322934533349094378666129294163442694000206148153497938707584519162980397898067641889206795257975115978821731272796365336342364830585182732846150156832837153263039529806786672886408566957349590364620337087100449558904620117637853180918733207298068971694436780145684595189584747381252782379813820428505096730281279657549497639098288859833414879124019747291250791074622833030268515483088453016696865614809091218001833963280308964676097176815724599212613791146854157943091976481048983796998727846037900505346245112104383296413245727931440371410456860626284163726151303484083278918575794559767006105361709397396480777846468588604908722052896046181812253142163129168390553218237823613898273923486489266909660335001298853933647331506027035994480506952459813598269766971901817268670083941229425867186320624819605282292734049065359431596460159944860892330319141052340681496089304552592813091402657152323491505733582656265357757700769207896915146048822363662482496791777849250558640574066070423713806486734681197389813206168040835630254932692964261775382707022166755188036655102357438481322957063891309278654102119466810947883366239851934599980536558170485984381783134839516181990404141772644973091667047696551028424938375366870703610711511610083489801674456388002124289373631174537607500491769575502968361745457697602158462469979836766930701694021898689633469303123777337118209926420521849073688663564685052295837951972218256600468176046079357103021523895358585360545486707494941551282025575698304012770992799422360791861682156966530537088493749966337122659778364044534704557584105474458683458527464252699833309047929368315572723118459727034669839306639383652211367329910958052192788713121807268713422107925515425405218581649967640093263606649650061281264241887788306938743501311307212710848545343478205685456825862967649432441465080220577433935688398225463637178576271596935123488813338757124921629097200661021187012761411170859065931626126792739073815202612243806220162777458069546393527508991770811241856368228604925118784337780475414145129747120969174741736771599039114630871816730121436424424258427799334497905930875898726375614560746694808374794897165355798716299190292008387438299461674236341468959712629528733902505433251606867410355127995462945039217234716345395979800707373131003162744632511808168066047677364227518184947544909490499834676906720675739385707499763133730741810913782442657216021139043832744994617233162770841466282160718026365234344664190392920965069775060862348767620977518369867896853881795927618769171432219443026826250255198963873256735873566947282066242912918181973714899699096338301184933188419240114038296612723285324178907906252255923142035263879116277272966711439837307764851131523341933712158664004636783931539368502595332984698848876097009473188307458693642954780136294293440608986628651999780020888896693062536890967127999477043379921143338312478844242595823810285227065682713685521895598526512640266443293511738636983866349241984566342367017354424699687952014326670781477087000227907061064804539524603688655477160188425122375071674965036647403699452426774918716190721108719317089050277125619518660874140780330822245887600256036082836534514884954836807590439265665496702718157047009537582044547601168654985085784157679757321052006041512430538012988032529786720494626972158633112863466031960470792082183103719735126190494010586203418529258833329619494369346593977287025164226425168701778384563017914902692892930530759555524873010574306020183554498907089426313742978107664662990045566514148482785222543980504846950635064632263901795441431396118756496220917479565238931080238414274722430374188268547537046366314015217191784587147749723930513303251949003863162964485958421373681735351373682740845094479006830016879500394031662508953431112015585939221565118903430597122127806090745365589061154636619524806252830740664553767693421676334600887257882910794309793945954071832875309486282441751395957307142342919348022540963306118417224033463847453066811680694938427595748145425961342879221286008006538538514492166855549574009889537824873732084184208703740401090208572439233329418368378200671360215437076121202491275194491747456184008424619402346470546596187535569693108113577070734526395394618985077310938381688824221641188494046613514906240313234842705055018855454708846252076923950372639511552865205653005186486183843172089493936867537382188742561168743644829208821490378670164689510750028391978392553107366108286242384465438724711326279455325121575997870569405192695637898188924903043769806776555935670500629936670796769197384601997465611571775935072233451892039870559264037126753631673443321710766227791983537885412304071109068947810795019066353583733147734005953895933006231236057199805669431471451514738937900336910150412068879670025394650008436606897916045961195500345850905640294206633970310870377099882369072308433612749000070628769670549117982560936517841338342436794618043481536712611777077706632946266284790638399713012341080008095853347589891819145677520833553538221097078087007087419810970745344365274992744533911858794563390689790974114202448098359049451537549808467485217715429127531619388696776494877462982089032978368143763829530557396494164775189920795594471800603997771575469739318713316339694310383151919771605064448019710092669269439548785973009491421028330115741276298192191068968776220228115046562201652185311485375130734383964235627839480494748416152634321387342129745132101327077434314500336719875003130590265668593738146033666968354928923269771958413144602710445824503846187685098833332269337446221396561976650493483737420581936300424177530696658137337320254778866657976600040742071491869640309914242280113833665754213561992757713948881788716570375124981906957917334113561883572244703854446119767980731407486065774855115495723119899887718803918376079976474034265091626445634564826295427021354959009186533103671183464347069632002732834206904106060497911343280468615769239233111873666891739384300169466699620749086375029858870545173859981427858168580810586050338556688177176751948290350156791005666595086023580822239975077011421969914160466570867047544351842718698812581599478092784776982687105151730466057075716724163600512735967066146723946466215393401515956514161138066212936329733804851016375171165474480241066436304527999725532440282837519275732971189286128843234073736267131771029288217591573468030367400537401431432704175836120595908988119750274571612949845020683234972594252789653310813329363767832157907706601189048867755907729058963775352627161939753992481129439764987207102212285436355399874094150197722949897191855986868706226536035640990888467446918315947007933213515951628027788439033071155891204664906124303238949086586452244403120889259990263024292382922301063722180784273614158959784614487728126870266420524105553164229000570248640269227744986367240232688904087372588051022574142377656969665217723198064674268380550772022685372087073059707863618894671493098824895774197725737748068617416536661624728292161453363596208893887898765326999089788431500965536135259694286136658185492627994846961809017229737876672383571804744745041391712669053444668415745161561192657069682112163018525274643089059564550500985760477519309375121265147575586720598935638486449354882527740109173215018833945332185751208296004652381034612099751861552641777940579337347817083160736449412705314261617305896310741300321325123350510309896231855935220134426585326596152249187708722397988677264240722258142143385981251326464526251451447572312778292972603948908405544498759270623686535777644989190440150325218539302183928862663211970266411949178488831149867368220902394597850464003175301928902769856091372181402323112602966799870771428795229838509745376999539194354118417537318861442240591276799335336100572036371084074576601529873007564316657659686692925689888548108972123107589260678835926861840432276897926791491939229870561697661773826887839424361668836289827470731173284049027402902756362378341632540028012971707269872605017774897434666670650850591623707373099352311959815814208978306512194571810334921923178707611723401966992516617294259888343512097231623468511031548867910369801657871102755124572721661326217725093213943884461573260417039617967032002862011799413183455524179988231406670616545917660030811793750976943747723309302806591013267461392263455763053607477864328396654883276146120079843240734746695907397254578038683467886379160795499502436175276659983110226214986465079486800176475192419434175936429092894039171425386475883272198401690006073991665413849542384038395991152311937048945260994883321620350425353127777650014410221747065302110723818902230495192647949339130614888144736505010092857108742519307978913677956690962294526830929296883654813646708419308556054257131904145241643978498529862263716641037784227461608677260282731403674298233169872622109375069431668065855325314344001713017571168033727525849122963983621485934546038965707624532611026243599159719099470296184540947184580033523939431845946371164199702912678924860296497762550768723706251477087159356834694046367485335188563974287407271813383136048145539085600734825623455147240981888559744777346302445600668826667853918511104721308730918242268294644419500020077622577393739617632819043587909858871514023942195853233222763971784708845766858743431279141077384413200162378959054780028188004331904779920717712105346104894267680201176959407248250125153984180418656452725776182406560763818924696897244517788647278831518296824923656702220982015062256729580037946830913837276491940336937871511575712546147749287430570759485417525163699254130731725107593602687156834545640764694599550947913902717688373771548667584784640149118606503750674199850965232214707581560885980854796160090464170814509552732723234686905627359151348929342082525286657328681623787377338904398775676936455995681524341254101455499096122943265083994628474109402642731536921449149651445870308959959778649113619845522320670998090383693627424603714204524186844305365277610021655305825777429859183281526214746790211991271919801947538550490623396328426676684119870115699348569811632585287272737385841629689423798005109307175748812713351666671645436580609948379734443991858510769867111455965775126305872918584317066445784720810101535874480830992045745948016308360706938176822188243958736734032827400009775649193772018578678417991264642350606260863168799124028684026527091988843520037232050353993999793473069145590477360941092699453703594912653060455698341169218002185813600693121204377675971330645708246988716414867418093983498280557317063290130380830099625738683005559907813564149175081933575009443039228238289883125975239664860980462977325634868235860925467898683491804855518836542576577474380411672823223053339900386580081910929127493884850864913863717161174044714042355536871080379552648970195848362640148308081484263206102632143723367644545915993736671996033985696723686333603282902252471762879132979806567068121119778231732178676788342457870051907226509369319321760344627308002912703916104547467043133172725409285216138263540164536171442681373215155397953858198243406101479985622280290625813315074629226091020052563771781359159647335531532632988961395621741343713970782328204939411987440991294210134547261359880979647897500728247191917376826898999299702587648215675154325373262833977684765999297660907199385579249691846206973514730293157441305946874843563590175072309569937095553101583753678801726570055365971087038282886811823207783754992249506077360483928417140972675115156470292899625682120066425943490651041670427865222284222751972104755611273771205389048192163703167245265582924832409880897980843533007929147567216174895612184474267219323563941203387207543515749989310966620160312426573140460874242516141043791202001563073298883841738082988280328028318467032095514449558814373800873422779535945676077548751469933494954157818801156793682757133839869161731065011681817554501877753868727237210256325882774576013669729547298744277043175535440709895272052773418031533644324897979972727961148910611431597506119058664840395085321207561513011640918560308809584426099401103920908767453381172914651514529554729182929719507748827142711453112107824468455546161532955289504638625438156058890510806369174382068792433376902141218380689265189375033145674929407427689223898378682329606216158211864236908238055827353093306665362770518451085083406827108225451142950600931764835467226899040552918397359710634634758686116057742306711435144881675397490743811057890698183163669332900907289056093402289755116502879490155597606515466485671327639482637126310857199690368065191471290048545609932397634725727959768871146466946666235792159176745170544895695862651394547703347447419813738310788365970675684706340974768837543126235153419646371596433804831922834461701142257092458726710346769259471056759694881285604121635465902648151121607671326461503982463122732106562517753119165585108341460382230238093534198289365453059057900832224897825605039267146538585277656537474974947763741887061474077463688623098919299314425397833512879725490415400085804581038717423612121120287320003847458228556827907109542896239845551980569770169980881453554136044435389107153056571213980331673890508888107096285002904544072824360758949350428500662660261520735117229948453220759421347999764388705110845187378987295613877171815218603957322702725823213879264144483050468099398945568958547937926570567501980981947889446042320516875584114326532924116963934143942824756354511395414286194659663988889092942286886684416109084633189963001722779281762669557596223967587730836529948352056908934288834535072739754553329435413395782934140731959270820801237725017271154341100014037855753166920458824019367664362348122438939203389545620996751398285661225852460754968972059793661470925664697501067056465674373166838136146451923918197609754175199595870378952460369788778880418276264867084141369400309795647779975099275878854042475152769246921387923213009467530938016797332502461463954310131861789017282968702674640899900575234766474841401142715308699417243645918433766165218790880642058186202340566386440014996290541021027435085342852189298012438099411046642513366749649673934593105425261763385729387611124397536501827082197703911351069076175164480069197277345474632996259841310418023043491207231539708396361017167059549052041084134012435621172763731163903355263520736814817564854705189678456134279282720037241292748118439030538262232648364904392528448944455355510901612360406537710062582855470705774253697016352265418347304886971997171752172502906538226393987462141922111796021582669900957639137923125894600456629596844189751007966166029675669594733360232043084091818175771940362295673356832162345918764386113695829122075398421746127615587709784910884936838191887334058489209946696148537544445442047431463581828016641152171772348513985585683655865097275267641943820512814562327742526115579121591596972766613491511691127809780151411217207551184555193866610149938675495289580512832139042410744411829147643417076025554903843248313428631923501491571517399540848560953952630886334763842312839988380936421697820473360535251654478913138139433660416751374061099148447279292894123361716088041092918640682058462789931750234913678680367715640039365066088639615062853575087473771997928027315522031443653273465883139163305866555378651479595829919602393923762178757336439648305823082367630559314781681863697903540638503676146105306396784937618757782553232190026267977884967764947342937589739644389513994931083102062495081128405708494494384289941778222566205751025029751605479920530659771659906256760649177894878576358513962004276524993568607610755684687313550621392055049165871764308112988505884821382483702807803775141013923867774296895227147366764920078215279031080837790069691581811845497275311048502212464558244957959443002637733259372966327971239783055494075058491776921234727904933769076509731780049537757444548496615877419161062950062562505172722484905755204396270872480365057297338122595870485040888698051104561568138573247092220148759639314732923367608967049002942093365512788395694726814283460949040383504126057782612611064657347283906246971612180906303999228713752878555913717451376900687555033144411200223196934113023941980424171414520243381545261406941976501665776153816993269587761316641866576331338467878815188661010054221078739542622518767911557242407324156575403678621803334597700577325040159548044772923356680833335924798289568544339868672652088439545017618833353089376619572026627021370135522994400436298818286927464712627687007060986355048663454506529360435661428770077511147639329725980764479367511763456546319998060803103755713427706447613132803685373946138917921814810646919220732709112045771865051764251966664287838278307483634470787759378755105501023146360602380338671729324233818996929162357995436347132083806616329543860257228434115769112826874249826615759617046769229305117645649421323918428601808104842922273033038052869016765543604845855368452448506485169842673314538986192247477803800090067332453020973073911833386187863352790502835893793357674493798534767372423198408123282212505619450662626771132199362551927735115844869731630889028385894983002352774996179791058827641383705367037956068948768671531612310597894480970323958367353912425012214091538565720577831783817083530204892023029789322746713507409246761752839271263125493090157003738559358916894200973847485071958417307437004191761507660592108554571080006176850685627339078525855600847407818871075569960610645126080256488373994428404157105018820654276242884305295100073557066499863520890847221575658645396801555826704038223039003611836502792622334110673837473700251921082406311718350838731950635110539592489815521302263339531313722412358991321103093726855778787980352989093007001086312126672566946411640591295272910504723368033577409737864435654663291028461719702864987668626313987293223988755204179658240088188627571052045243620974896215001538669269023671358180011058381870204410017049268270407479813375712544089647667996655079108042425925913410350805590707172710263304715414558333001151630043985386131075442529519643565596720034527719476760113316434220385424386440902424899632987017336948641360078874814077102187470278316123789957761472688855995986389015770219240516484745711576184007032636556489834467217462596186766288405486032793125109581698108686590638630306840954344864645831719232779895972072714623759337583100049742307515368709895853423974858582577247035747023887079013620474745797349958871168568677445926728293199319862877026842939803741350947120521428561090792970706822742978233815907587365676830771369185428854287074456791441578997368366255627545661569965716682456044982683856599347601047228592996173605200058437961707914976566285661784086014692674633830492054605145686394908445315770474838220181898857745454224832693148867928439251548750228331796400321347176458431463813283689009467670068560038585881820825295329396613017873736092106405318445037488135175092082075385835258950559785690421909007307584739405909356619350889715389382299335062133209250945357270957273871892940760161259553044868949753881913608348128042794549956495336609397905304174234196646016621431836345523022561232112751239498365494974937146657150973587433011786030824859073688531634534866937210699290477921490079180267093599415903096048181171825752059837372226001136643041605721712868919259541036356681962626954955876962310975042582250638668937610849067725798205962417963107162164950983144348605304449615263034234172353667536971694432365583483353865826397244254300105071851190273192507332891204519928306268477521457603785627754988476950357348064057805898689488792682539082310744582979111599504121599628717580453539412771708302462734706199936457572036273061326867183180239753885660848113353387656094224495808988826297850339246093389835922759792786070087212458043822541295437064153570378518133334621338433921918465088630642281331047320181384578428091335369677497832161708116468453135116835884594984445502386676767701491730255272375595805621657284075246082409951957165732107818086156787189016195465027859881203407268962256562065221402633743853763470828611634974360121599230782474917018166995877553356135224668421319595142522717981957030418332795528085812809948178908770342056949357456279172411291799396750290566650647623204352516127614254346809254694305902740159637548447282179503678622895054073760820852806997408676102772317869795194993422161314840863537561549096969822507563606224312588326573556941156019556976448766361801395842395915982605557805870479153086456866390880995745004449076731090431123859930077786093012631947162797253202044759946091776642772186528522877435255596454245052106214282636727321773745866864552791836492991978104676244567438256811714162738302400311649184739414668174478198260417890713993276939096552762841870531928209431616147734517412509636300753568354681354776668982594090779367387894406555752115976979538528475661833078591110014000415491642985556911566703975864335684124368603596646890551763933614892748998093910984229913337772854878220990081860139062804210130289722577457422525691934039462123548037824028395187779379330935818004269022694219611473511461749811411894948369705369311591863496301360723472010834820905551928043247505625077096419199229052102186205102468314869195467365132940163123108701460435423881802968491687673027155979511759841884443883620999466865056713483107736117182243189791061152649035611283215288073701218441291530801878158621618138829614476663045792212206399491579247658678579886021266190348789247961388263746495310924264010385059015505297407142196189223553459700284667229471904442314551688734461756476213986998074881609413915075403441679664546894370275432061291690543026785061058996468721772309203940574849147190150110971386716015370528731717034216120195292034010265125272791660485853938362459836694426345741229444811590830541060486460389027536677675575940904493715038632048844541246233689263455178583688672187183011876024017535659696286921238556439621822269869689478669797847733376206418574508425905900278126617621121539837151261647854442227177950733149050377111767667502236213152696656197714115084885982021490425396777625737044532794005970554541560418515344855314644707749205711574317704915579422287816583797323185196706741890590607237918235646498466091711814458471809115319472359078017733278747746911847567411078110893304417633470444366824351812827096300286801474149899264867581300664385419838781749878837367060007036166633472479751049457609773408982758559368967470136172174802957268460777251723124778988533443832222532777607216325126150738614956710291259290477797787585927755428741059178928091776484554691735028482521848590780979716041045606026322439201190510706777078290181944815530771476050674113038317271183527535088865367351764550226209501588383789621838479997006065546088471872770051679565104899057690271240444813291965087466875365472033772165841974476293622227590591759189894751509441955071674915013231643462333402008508166979400257741422786594525600084639028687265853270672286162200403114075057495136251564369486961955467569979657973824509563293289069069261746381127852835308188536059737848484581260542064878852386166466265070872101491661559153770329428299437306975777797871907252089657536768601335525982636620695525594721386734569964000482563988997668127281747261941221831355351928942091699109936925774402980961818279830715194094548533432783246559451508825962802823934709365664964567513983361117008808092075047739841956001377172974277364043480625431567911464757585705068222326048969885252832073413909001741017053784587413631624539618332315731740023432017292444725651735210103601510701667326900316416933393525258817002604597738877539474539306957534127326117346941221859269565240923034164922819675187662439005119516860326726857343462104008255069088377230174356538714141815143623015196479998519835026491002163153862887157469564576759307447749584402651407737880810334126263407966089581932793550383530468853158180859895750531017733295944445414857110576088376056463313833083476753567808670334423893168573658511648493012292788698175790939098494335304184806267222615748034876763072316508011441144727725046473028866738962420397406785690397395403834695361619723021733401376842545767781901849515231197026422039519021470390928088462388481233081985645122632647968880426443891751902494439902373897738292312714036685138561662035946770468205567618059780856718817875644837346750352995313185737304369948768297606159034237838308940360381790523054464362301478361463385084748062892573820391996216464583864071710277056276517304483193544612331482849872145578325084139622312479776789889143627010285133235487945936005242595395060876282403107504160088360577097450470512650766792063602135675503333189866602605400505493978592947804358709167052140537180850333613636866564037047058946990720240336016229931242196257427508580608169637573881937967402215132493790744337038153855015429588098862992099343182527212998017071998718344729355622455921957189890034612654603278719493272456977721231130547284346275764584536448984900812012910150967604413915852091928800986538595473782908837774644497731233903945708676663023267008541971463476962318670311835160870292667800891110412762172634383992083589684562116709690661835425607360563862825733331120581546202554378507697893650812697939745997047397440430585001542692271308148095652512339151495971739923719347575487107533220398669260884845822952975839816923422985092858441280141052215887123210235405972018489962915384521235018428357939017486163599215387303356683656643660534924837127357251060037440808981141179704450790038872630082808928885162794200413553187054899166651242829369565248614567519653755641489533513369397727864886014804180370673923656946856598229571782308162280080115606877377810988978036973205334932974856455581755074155445075054563228789564389888159075536033911093961384689723622178937809591008310779225975784298446443897998158284107077316926968027203408870888969179475578741605607968934168265846755637451513569549961621212114347432007112468467558746962028917569552152718605261464890142353582062342359856604190774243233280293093325713114055560838554822703059776218267317358722070265016174808752574713564946398167174846325422660502697659559654830115106311028188429754741690742391008882449041119037799815223946528732268207358486217624012790697155370212965178397260967140764315490009425079991249528758602866109178505887537378663632350915184031452398128775427030630397534862489271071725848634649423101731502763778628290342749707416387005694556950359657823765362076836600393554341241478490486965230614620472538256352703231099403124120573673720788701303409280780955965431007967573695479810898439927083618405333320585689103565952358237830407825003735177961426153885424387553886078237232840750098213275207005635325154769302891563662773656124744530265041186649172411586119364122065590792044743790586818368775284773473831210177513966659396126538436630533897246552858459778010091221423645785217148076210324040008714301782400868222925018381598510064534384009063440466335384521780141313326020163896113100460266015975385481174426535260949264090618465537620523536975186612690926998576906642694937863266742234206903716477505915116626659301006590401096524969568989743989696631605937030703561323885056356622807564607997190088923774798185997088736136624081344849013028293391161241237486598767967107264984383260895023092588402658197945100621138979741229401533288668710987016974172294242684956811450941732178082208900714713951799466102233014779648597614381562700079797429784010393703513093835863776267034491109284255331363162520256686556961799073634679237920340341418062623797751644002201244382936788755703469907844783604948058769546828072092795546990286393869445620752954077296940639875105495373528085636047962439379786366161962896557157152079384845595786195264679796965774394516254208459901855173678778860394540655755009222654438706724529237801172043810128305512357446822109451402762011841962803492516121317670619749590945319167511222210131027934381298162217468456152873151586669991637553267588497043499174772938027044265289865007145060251302286097711339105602554147696703745054491603780018887677518413503649284804494645545073745441728413579925406128175025677720790959213196665817365859643520295294471937726450022081986245372444867628583798842285062063777314196368920130045140165291037832663202644954400778634182213163098611030067583373942330749398331981817245610097025021580320528257064759881153746404760851852550786070412113112595361922081948064481427901314127951406124204645005234892258425650584202803821729177322596088084829155478250307925292436905031405218738960271090120696897356432942873959280695785305678288915734939137107939024062253299416964484836632785682352042324321620641864942072141232307703407423934539324063219196298142774856759963252631630896899325223069883497574529984064588495728781518096298999925497599220284796447484767197224033513294370345405163904440976622008844019850008008643699705161691112700225629958702269857663710649384764541541009506647154390901333919995905698081439804780200786178519454968284322055509414344470957242275842000503526454873963770275362034450895513730037707664842698259538940337174719897873696408552674483204609483658491939403092155344182104809478116470289696637359495105867570156053114833557868770581745920001978048560924632135877941553648809195433864753466044697987604006452726378722294707903644855063795817100426177581008021307269439822432437500526342762879374598698808668530901366860286160023134274031460697762617654789577419823304085062469723422841272534589563244871984452282481455779409714245054289790000746997461886152161303889517177055932843344458152675151217457346860316446500686152912971704807456663123476698265617288540883307428920678001806035354859096915648228631790218767943371538346343838617291445459519560931778145508632893558619515500333076864067115217033935217418691183968760242561296870333664710955490181381685769889912171289894472467106733507671127763913380423703629158003370115294173695175512348959519780389329928739134365099697804296248845844097751424566673184544889230243712569709592471075421862586351101175281002398901475732269823522728529869568270212556794128338328811799064414256977185922308891675005937553437550862742699485230844162871749180282825027528168144547729129547671627052016951920500716618920962355654525380332168465650446541131121263696523437033842406861305766498440542671370575238822529430897520305590494092949093502047528104929298648398219405553014459734574737281709279373236364221101336536873614671425001376712818539212322031868759674546427631495000210091273804264361665070865128047277774682809362198788017527351045308575220127757314142342607613256696171303785241646852619897402195008878877239532495654613018770567237980628894155626333134321816153821115025846661112418510034516809705976346151477040235999652973461580428127107757566979837217330138265611736072555714885280034573881480237248198571007180633031359864619463252249997917714555073606136945722676660629092909228926079553403270212357999285852855221811298683733854147917586326702230949900948953423463278948376658995036077083964597712955761337274685277919703359570134859573776745086257252102731106731408891528141473114430591670937172076857731416246618902543576014114968276212652203641538462103121518285422484742335869781683933574421829945896170216213992586204212200700272204379749751683442664663904479837361883525505378999576943975508828134579913794602344413470729745322475619623945831479478350281588707490644951776396009043023826983496368957051177229061280903584059275628977277781292595511160888892807522887482575187401562208058421477788033925374581924145461936003866354669004770561463570567217518646746381740897637401981739441354127949972018443284875711766418744469329222896539444058857494087449707652096089635472615062712939028605056900422600433292571900205714548057521235422166437960999228259641503717760855667090561462942102997271048255098233074561443413948703842640903029054061957575906107340027096884423713717265624218179186717537326233418866498001428045760198502559931424953455331817261105426810355236650497337937626501045664548165386919217815903504415262956139497375542102849132457642805627392779819326519286204182541005543094774508166430572315751775848992073830915682872895373168620370471041324612682060399429622171079411709761226898804235655286848277914584126260814453726178330549341143372079768432852709534714165202951049374130110378109620740799257609720988501463874977690782993382132640964544534375741156940485398476369131443686778371597378610013464780333033563931469092934184984845133413283760601406548344378618466738695403770657983330777890595513073009964537103245436351632704095690517142365576947840705113676307450248688900631377451168997691495423490715891558371415474025709248736950590999625916589875302634397568012113922542788119198682492933304488417308254164626827065398470208764376436822753925224282415577375776966260811685429916952652039237529863205219758039151526969230688745060723936195512825202801848361905826367929345831297999543618914152136554699874923951670218886871340756587979807809643324245916750338923184650010453186892105516785704783085513165399116662983134886440907558448281930543016842727802043564100557850593255519434616507996809447147383984806125813013417436364665086722621981080359254084005362480569799845851794074048725214181739956815417664178139931997299503913082860794765116603453665952744358118019140568729369155098864826030254807149817762011260850546410021824465071424700982991642278620153705472719674940427125082140288075304586254542225916326360776681111553560452880995044735545726803611484504685739975993894744146029077750142698084507467666844877403148604935788709070552349331432457133370693611904745629586412601901504867111260957855655724106281507823936488805171043232546556590922185137155492525913075905591006702053427392984339668928497705830274122326350182308602936233261922214516956724239638799349018866479427176271272271740710705713674500917381401517736003723065434933812011157324123704083007422890418912969002548943696290235748083171890784194169986742555926675838235499476668379972748130480370240126460305015622619671103712768875164856649580552571213726170996215685153615189653310888385615648118615911363055645453020053595412318689319639362873760046766618888582008389240814909876806211502809374267560621278547233408060900435175840042341596510136754084142441965783311482589237749392059533322688087670008449122871635355725340494103749954268270518707279628568167938775927483811847045334175607037772783426454026169753713208257715808334105574084852212899115516792654985131211034651043542709688778310962925151941402612905465940636139048603147383257288841310762978270290098676807886616697845696663283345668506333020598042970237517510748777065168644258923390499719835415342715975430171518540966387155383681092411454129653303343553220229323600451037340918478631589032843672906524608705564682947574309137366937862743526128932287755047374988372373860705482760279503808483304705007334483248169039203598689310220413261160936932932603929672454466341263795137818194236630050510022841389018762741297991830311608334881140197073088403596582630080802367826681946042049770170029664207798894264019643734976764879155772387685739233455819272079182455845488028487557584467986522940544498191843415974433331168595410909610229607120643579668613074706646282512950317371627935758292008572452976108702152724198579912028758750992973163040854800082966120055595462994918806931907835221919501542995849613277444357677577249361947814200667416431207550553274376719632128747812722222525866662683467548692109803891701512029928795563318279754061115813872876732476988601453506385060177790137666232174091083590332740201148231426264435076668291172046604767799372502208147305327283687627387973812154585603595807829518417046914392677681576725657072228018991347206046839314913059247690353599457382729561267521668065674743653062295524994169901597502856129190230625261751942988512020893141964574487578850380522960576680205393058808800375574782887843702366578760035401431022886249864397123127653916283152355637521373199892743603487843031702022315365645062164222229702891104137272444419336687975757932962795375528864437118168525780778918838905619454056110400318682657174569436550355696517584014130687479401201726608195860135654447963268627823730442229837527839969895738470011080811886381003809263690791178867051513673188329285153277593047710623117717154740567238007749760426155459684060702023152118400501355532470357812459519957312407604863770381475974729466249084739564873319774570114615194584902696889158262475841393829022800278230754744953200365825793039877665870052736263844168016575152814528623178681023580129084857495765324766337123537125834614704680006408530212015207608606303395327099101166865753429326717890245574861476086592265357332256790713967447184361994705551878499501792396232161201103585316219500718877075124692044306920565606786089335598561098955494122947566230482769126180671198392210634455719179395890023146220815553706049568228187679924286710342538178239251925494361610712227457194399647003138046370721477121578253591652585519810735924394663524697186941367577256665206057825519036675438945377068092980599849432302276457464905546252635899210206953948844921536577474031603663932357872041264179724470150019067678529503724161048047942089342172230125997379282422428339197017403648475237815315316873676484871400144000580989207426099929958495674113211509336141662543289632967352453542783028284993585827489972303395353109709183611708992834081813547934862022272838397732774578217791934692156935339065540411959736239378515885486074052029029092539245398684097970749618102684902814440115690714398520139523346596750821835803840502076930847050595468217378190428309701863542063489463347736887753486529322294459752556618096061797134881656848321165409332809545372804366072107947467040566683934208117976452021473535563957456422657765646870891112852866672817322637556753061350593467355056927821906049017999621161891307616031287929767302252658074842264807677628539873351631548889299183008787096670194690982819577978603444564252784997526309932702137227455288192586682002913408115088963292170492089970278544150769931582398091248454203548845383025684119818382913092150444842722107191059984608582560146252540450851736268640949866927862442125522831164020766471810224989271059770776582669536417869399176608012056577448134234494908959653566715746058021508868282945126856785082975763159161455040323960721809460900969031060208648646475861641743412417612742454381992197057967933102027951814623913687088310261643906697894538961647599304901384190450615314036494967788261615858814835468432298916990456579101218477955338230501553488357242706082579502559429534340780342201538179537054342705834804483267701428422372605124756124421872234792042711745910517146237616084277401139213926243856296526026908745069165910001514237582011778950981713311431557612224694560862281231008366197138451146504538690108269827322404589289253506959030120503970326419627526566143429135079244476807205923879228763747197398510092592393128243198122854357952063520162497143636101746988304871861506770181881980564821908009451199778888177706169149435749152261561509638943222224935120083517945397217330009012712106120847334131409318860416476985278761866610772400068138788956510161796107351478052049539569897255635989511296431864175529732875281210004611786142085827656499823417367914666587252886014142090235766622562852414017090592417312350586539797981636654971397152331171467406895076152598112029813755846177688395439688867833806560605364599004109913630259839895903216690210599332952177373412632017692200704016936215880881308053670994399670725239165563942964490330714960249260121278178804624620433550866198249727982112171031503587264355454925683122515818545824586504198374155659392309946241287181654804296555933212935756855348679328952121731010171008081837718163396577013249031523977784694566790211051829601935914086473027421943349842926049712929147966384551002673918748498124761617589303820195890357598667441956111349820030777283124995171848390599707212920910017518725420638511652504990911046369967870521669524278291942522383305588736959921678943500923610502775496066725671455714911116291674357020296800107043344087918397183028061877477913375605280595682118742473790832831229160049941424236371314466469168461027759509672971327511415822678950717743492697431071122976764465732396228310835575794546826025728297559072198629988007509601432722218247913037051415588766366442162307089853790377371355329875565502387110352180518488827803962768711669146441100117736328788087195184369785917653539734267388760459052381659992975504345782095438885543495594379831032255313310263073186981718410285051820868688785587659733234309882165070394816339897901953295146749444478769910650594214741909307630326579659738920658494785374104449296988335948566901289611171598474771305578196984159949003085979489566895329696514005201705589975373007694680353220811573962675251305941243944450119042916592236228927299365395807687109567728358131934054384517206411572864507562866036905070159087354305760389936611875951610415814044761516312832705364340746603299575243205575670671890211783291953838684676032674162094746125289877314776534694533250673783869816049889629530596458943242515009896742776324296312902873944044485325790039228061883373694704155656399548485515129691365667931796394330850082318876751257330140490785222184561434949296597144191374728124373404523146974640098618445993804070121122803176637523253948579021917587792019102869886201769206857757704380743545155169240892919520473836638774281032493998947885848915672515300777514444837316755806743432150226774368263406205251022276849882222786948411484220069564331445751101405056855524467805497712711091745673037709180284008321475623169043654725890977308144692254574068734435921604115736376927047767636657516343725920303852746495064338429999700122436070355312801764838843762899726308309776067922982446479820988756991128700627948207491268733500376503727763880671447632597406408852434252523327779320232585678920912009426632991499917208919721927292367219549860715623415952244086186188092815172841731744449964194809769994673154178435201098345884152735225137055423624347153004264621928389691879748325969278302594377261941187101271872707280894727065277112095687230865183328393075125278413711494817914732171721545080672163029200019146647243465552989965063439634813128620360772772240020769644026773402156950493012630076627950488748366421549179269196640081093752392415544194430178676136938558511816134959616381244364436404006746830787070104502686875523023197128908841898935815831817704280414179304792480707624884086830653367248513021266613667036043929939275003071862083309130737929122081716763648747963006709005889714033208733391718101915522028717587266920842285228640970449768295200132099191261442478518077492794148247768300719902637110939920271001888972699800244437442968679004821935286795013753054295705199471532139665114173008852115824154798745003487438620782773255192777524639967080085824271151119202127894191967355567330269880641185755509678839488629796011524335177696651701420704118390645725934838547487786455019932288140104505643856219902656379511227033491732249817857185223433226268271228265442948655111619052570131089208031340912231524946135423552313035525554308731506289911690800107706785898598067929698761655500067551102919638591476430878077676318258921441984895016190739643917936692419705077988527742896153066118046741995678312816952686229926493132232172040576031131971332640553636974114288493310428992503704764420128723269417736588889671275098867761924168056457750827348049227661185128823703322183638654642624559770930140570658688116912315674514676661177041528171860976720279661205946348813690356927917761949409111554674936721262277921993512569145576440207803606874403930894665357911006479461746806744606289697591316333073668694734396992912962452431081347583952248956699610301081845427249918062884213426757606409248902457909995801590859648092185074717100141093215202723033666738639535009845249882772028352615782598817758753193340208692284133310405021540958141721864334612953224111258407039023528659607421129307255952086612741129324399963678523489694047958637531146843095787214373416820717492687620711578232796798961904780594730294032754249002343994002132927022578441814875315962725882297072872873841656672546354893979035056217514396719253146689917041853577886907811869718383236301467210580415911285514873526741139857811298583875566501143421522535930596508931960175820263901856160932514930976358520059945224426259680107895310658626845592304516693230500652131790855770957544063326685577953324920127548486652986231449011271435002374194939400535623207181614579525000408140780179320737505697139569676979827427810572492868776390570417411249292004003245927831616909986542378687258031711520641287858632530338542659610372449402114711172032351523889907672936936605243710595435519073504107663528327467914851333104291473086623303989645434159704316642988364750236133233019007687162712826606110983104242514777798431952699519716370596568078361143216486780624409227456739536400187017644068738219431274746618852381986112232276250223939180525501676194352760151666267662037759298536884903837239839203239845546723830501628671353233187827470457531598969799238853439666025616740523135694369310864366638291220368044884158365032372861900062624584737776114864234764324278550814684933173480120205789001765555353481065607884262682266468734936604973749336607495377025822038857717112711060567343781283963775415718472610985670543490492261707784424068171985234636522196774504827631664753805561187994576359532516425268002733501880513028327976205900101823770979968455133002367769311991114393467614486145474119850283917344171147196746526538177521798814366547386982872106055114669490027001636421287307710100390104112274757300444047890512699025255760697518038039018242055565360992214189173468816613793676557687115021336037610122144933254470297559038769720022781116734441019299121625797943447391451148082744933218969120557956762528812130608005539222989255279135003939252287802763978498360471672926069570145831835840041873678652499999719376995072574863992470211520677542273560940068664961000205789456943281583589692802704275515880211268220077639573296529604578953448506320521740568381397220886224329709754296050230936304343553506677268585759291563493322750297886692717438525979861784431257809686914926359537069279674939442212566984631211232247613167253477400434340891642488787566323422776167672590321392411005777122936475248743973618032341609893643683562558318242162103591798046302878813497647620707027550759758306820579536181345887057497388083228357960691329716531268962337828953588778822749124018108811957643600849531868080223865960208000605939484937353164804721853276021032461616507126059734346209245246234232132512317161413228410738760640759984219319918123245059782971898875851989591994245166235884564843450631369987823143261477669484948816332098046826773740689962615633396001684918610833490256414215479586129676944113762098476353240285530343119641858472596628349631118515620864141775056723203324728814851781058677978332436211507807123869891916706316643393950152390046949596806119757808034315454216162536156451864101331116038745775365227346990125327930209766046641439910888613190217088018925188264578850730211273892293026996008503047452430829724817501880861978129188273743591991176792917560268455611909955109360002502805733439474303644145546969205989316696616450282981334200638431121213493733872393313648621905030117154697895864135338059830514747358763858991984267088417028507954081191414967990866116333420625435574659599682632253959993647716603944976871235002325618967988743591907554701201502947591029790309913242029083827598319446682207893988620795071858663920061278364453891491882479366028289010424225595428275199216035499394523128408152260568303797224527466980904709963067002080809328765458625644004377159093407271026467349561376227745857698620307683613205319943342626754171240080366336515015670440992203488952977497058892842456364604484932252114095231548026466174186171355166643720008250641528186978255721995132470870546975296968111462269836825472607584460528559321922389385100947965141380077035891495374051565198242992463318799116521307198283731211671347957584420797249241986155950438932730280176292685291033163402935285252636628184275337418777247734788285613770834864448313108065243518900479173738437229339637535268774669457307756166673722661156974145195983329056619402650537742480377865125335729138203668510694380086241591767643208434747225118612649701168225952457565297148360431033742012157880105274011134083988217047693266674428439978819578400375149907789351607880270544452933228420739760711830284042969256755092705359086525039690372365550911676698725414581626826163419698298093766742107319512927427088093221596158781437675566756987070635994403414730392135397176517333014728916631250346307289698078020457992461529948298927943963231568107346916213541208258628103871526950610367008713130395495109061917208325386821791562640682015278019694126361829771785393477612373514463492828817386337262269616590208601991898169818180577769039399969127107964729078532030586024069189452822122972887469179146054671381405230198163095274123919027315359957427683935406507770528351543412942541307326219634889375673345952771994006650571921954740499174371193862798934333591788537788852711199915454559619878597152885570376870852552659789350115666432289849035193215898353247516033790031463747817398075782214389235459322672318527359152284886097629272173992948340155460507511944273017521287088101936684655425326601295298345844498805601282613014350714459623057717275947244183801046967593035780220819936022941985857593689183849613258049432936154644120296044796801995454140594255571548643442024001242184525869910462963383516537564515824056106754186305563608355197419331234909618019333668474957342341675910337202510819667482245145382219831487153530711058048732384808188619057042663269500106431723526591945588430860005842962146285527648666558154621371692493109314588118445478874549477695153138519938295399314391720028774628851894243671945194945221789483708974651468322994867625604421642138667287612749863655044398843028741100305493395804611261917286485804545567447984916275473540480322069955184377903292706868903558705635660865834550287122008708340503442453511641809346120675906431824166819546705580096587229269096693813791511092678660980501173203929887795861736564665454862745982229129366094264749683176105510633670620325235869406202238196212049872093052323441640634467434000458882785352967530577561299516964303618564348539757010561315251692458052640956488402680725190677663707684184886207574518578860163542062772171686229313539292548247302225775415217588714958123120149575794432722630697782569966233765628207543570873272589548220629706430871287932415506114529813264724621860230954517308647403293977642660218043825100005838417681650323738714448945860542213689358826870795032559575072345390532548413501905665432410086975903364081244006411558243609332490370233457829485752288905002566760404202479088541425604107840448769882092186329240354457764057170557510034536030434165830090051003065549721019894613848962164400096065417407428975936593685937629702860489146740079169147080857055151623660415688143090535220709411814826435602205584797583684273745007547403307959564649343813267860978270619321384113263268681106445421789443279663785305874563067837127415407640232023179325733947496539684855699059622690847260772002136958512503584947296612450984100690644260333291603245467786777324643931935723444929440889189872704231476260562018173838389807904357837943400081169199653703997965099499602165943860128414871008133842053214502933866461542688300408051213756320923699800218106985397761954195538353504650166675941764139900973008837276183633320223297930702110265670073579138196089528282442733028872019350294866578312761053900172572223696273441785915547534865943531669544487119482670036314521066949455732082883571610843287822208750301263496786751501007443617131619094517541368553615496583654565873061143722555315558585565979927379825074504499195367161221678317828463858424962063598507549449709219979374964587645478704744459545044155167850097770741104231537182843194915475538527199901652554962908526979384568111717158091923772933783349728449499339455666503677541108389885242632126761266900139039799918629225806464792482094847523636707733600716669725640812709360669524885043252342562224759975508276150566433084308236615435095246035103555383369251864073735367497704483661320389474283280413557864536419151975929002442237948556605879102102432934093767974623137908931615806925997596336630472102582783946523920776206964716767145101267991961104788948807897014918638664294632359897873447216265831157292301841621526071307752500432228780107765944755050226865392667243484814556789098159670369383737733377333006036995210980569399543445272800182052821596239781387863507945523215214435249311148483926532578992967486406685205990361978092393075012178342545935701324490647598444881269898041890550982820643673760677482536967083098536724609886139720596322455092296887534386249981647712955042270200637663378083044868567268731660462035579072601394999526158843108205215129324478039598994245379871632968533942759723997051581898364797807208964248431723226375931468062318264417988124133395461534588083135926009207060316398649685318567372392829287421910815875301526187566314576892492295015472159002413043580331476235801827561947654983470646869504035648541673639407662953879696044879367001874693937051922225166399260030452936253987268010426907230694647371468014775252161951101232826612985648189254692067196119812655891093759786543419099584351237241121784200804468222645960415447257566910627896370533405340630094083806977630048653745199173848691004537114553098693413339418106925562474060382857713401278806884541740806319813270156858562997596679744132325458361506627442957239786953522380912611176244110577979210091558743022900353059657642527128724765632733624009979116141001677852579175316304383267964576296531773017600612595577460364439484177053264508931103625188392063885565604174283224920859714976248531502538401910720638889939546936276904181041645805729182463551764347073609439476855226562899062882571412687602442513615090015654548098448658720068323965857615454319397514517066782849374511933322487956283476759177180275445440675635425247558876052795104273854782726661006551591357408014997463061547698660591047781957410954700532125600804201253678973650472446854337845671424808082573804649093133569619236341086131420234899797070197490290056410340371877093534850402230490691581580768156540616224690096065968906947186855764667998288369007401901837956473838942941844257335056748866641538752513922697243187056374390923849780045058837674409289365046712220515984377128664070583532568066695894912668804418964702611563358507146325850552729924737655548042568699429359143530236639857638566586045860918618892677933745007044953762917234288726772733202350834943717565026954302195229900103087904557616193309167608574961097566094812628763801684476586545661468740242609945201752459411216529292061513397897883406003426452641662168373876724656937002579765525664920440961265644334394081381625921194827758420417235075823496366652113026561989401786893005288474225417688732412732033193616384171592287297673134901317409090320938943619540752226160340979671315271795078474283430555706175291401981747702705398624493840509544601913764249254013419483036072243436182337014160351770249105121749947554244735785658991262524022167150351628069869778929923899230041232877896103262372135466947049562827396300595776389167754262336176096112144245714963673816474924740352265107638310159188726799150381346449209456541859490071391134256285970899058213401012700094152526692990731909455980468875169081209425035279617468527136734946414563927283816862271240674553322897776875802691811970385287885540327435629978595180241816769544150253529229749283290407364741375543427858668177408101002300737255272025480640828163863306403764739490265953870804124962580929952107996887546599718555334066559073508696497911081945928678065448437861636564991567725985992322409881358676690534028463019458557462124200835044239107837759406897650140278330860054040002088138731636606754690031016212539520318759792605385787961476250368590045234973086715835689810873445999924298116633513839626607359486487118241440150783350659792925534816657037018295280381981339060428807071279412442414717790642212044594549607951067904533112973329634982123690696686774365944440173803804607575821711646545015965915711477025533383812080554623172096239403240805301837890922785547453336212541967602399099743586483165128957804754205654607777372593071745156074616836113182688041620433248909466261186330920018834640429625634522945913033062512108899071929956047488080862968997718982609726569357670011264716744843393264496722412671123615318896029584106713852776293448090111897796601101878606709043988258543086088952761350706523757961020764715435563570932255623564771236855403406912807322182047874258991900384634817287187430620795802584290813318140840749865028762322132905513603627018199402933751690462589579373293484521548266542364804348305577949690379074349711887223115619277957731950857770894067904935581674362825624464806804338981511433337534246264233462093473067505487014814656957200915228232720503305863153503740950139691040232445766874759272969700521135867340672871359099972277694352963997294102280537716159270494352044725729206345589211429235296898974489524257009409803482101599086870764856970950223507157210683992097162702436856605523192593426740931965160618375305832972323384097713169154925320264536509805645073448961552432572236903156010623993185775678258064778989448797259672718853559828215435879150353891205066834587823425952105181534068885824933863148710269972056966479744073899114461069928755067330951697533822846995805778968824401952040082787981092318110545211926748747060986338277497441457358964660690157062539698624449594972990053461680881620457950355318638909822144648583620036561116288667590896560340443908188301534578080406691835925375845193941339063314129065598897682625265789796964789944907702097638919201956963171560336422068785648984909997277855841630844842932493475076236072588259796560086666883556478430328690003419702543956246265598101260673992435427169250294101291721065663282977319400699400726713434071763471873991672896452121687388596481563023457570300123366857297344277703518486159336414925755442123687483744928275662063931594344777845797355348268913331189110070243527341239762299831841869824715886798644343254156625682187714083743966925218178841252269179133089428653525971732364453130625327230779969116364437062727880008717682692555758248782651402286605367767684749909743848484049086349305329647772260642122310680970253616740721937977151889595244569255145696639812704826093664504156835153187403138717092241810085910414880507411503960082990820501156901834989798985290505814043882797484330268797139944415195530897772293026966818005388549138101881634341460271596814088161921459753170009185700913106678283838845809897650374445429142461131405788882106550432033491331867454694756978501618923130009686253592517977893793107128002071672173065804277083715957396956427926329051991126373649251444683646863174642396902356083107136439282229371514486929568203471492781261923464187264944597060221218035438715418528131327278613605660861542581386847588352476974376280457125069752535753994983005525134596361024026588482969861003789937703624731540235921325847935592272862549853502603020492670259576001760096724736757061088030451200270439662700720079581807147713627808057688796011770512371005305460457262546525126171012155598731746524318798057941222096576990939440670717165011829134920496602380224022939163915989261219230934232688310701691228010100622622986362650344718835551281157615697719836613677304979131912056681816642560121734752397567603963535153272551314941316784383039865644118068929700193857425238055563696585540360379548698529595247083513878943637658156139380839582470774774878266516173788507161108247562718459155701054197129041908982993441749311570032060175014311356200500962490838876030663905739774072558711355067232787220670996110748274296234422534723501704260430700760884127368313794999067368512565532904400919102288252332134567756449148195431298760118235394177367484852655729301879860795240920842365880088798358939765130879623403740412115944353174034929492783223252557067044379477044603344613537035858241342992619388073563458693183878813623666649665296621802479859613635940531349435569583008517644114494604418019770483133555354634125683108182912292013361193676998876037214107963521603853095472017867077620645204334705954308638928434632736382354573939040298214535904483977649803271365361493485632006092492398924577610848369722370356336962043707008026664724475960176133089917916827413988849844667049910983232767140125567234082199352913730101278905989785243627187195266959852455394133863327296243888708676029566065353270407619550727344822133864441585359583356370331265643015851046459034113882050566487126365901367476233024207684780615508990024208231659231777381401687517682275653705654887217770334750436042642406585123934449339306283578931854054741550767320749670256319188214491058483723638955539314228712608081492205879062578311921428591574592335501980152246664465232095612078519375186978483340079042368711231474203290595616694711191001726573603617350070691332611879351953593686307464419769297630767097611738757878618748036861979560340029052463577980972425320197108110579084824488303176858234215160843359894986109648971269412891114046408804513515016120526130031387188519018836389834665607534027012115497301048183121805347992533713485187479449997272506590077110073932437460918233672326595770605141478995682660510734314209480866692894614068378227430036241873539451458001260025165906935436340634546148797614881354000055398628335997449463374129891857595506608357276485831957927134109686461999328383731155632228479443154620065714271910242222967847206765823567705744518734010833596017303425841646449456282363294257769140065505769022593228097363407833267091693648405054280768638040399336733999936186866021323728145338641588541287320646893091688037080019662596977475681618995613636183216875700827237712632022669503018020779688403988227072706320271125385226788406247011353283980866661584146339257360059472040563184223092042726774746764149867472480369257308994621210453085556046319580949075566254757535648045232958505322860483918726369641709163065957314249840271662743992710357353469427163261438821526941798329790549148643047836024622401828292533171681507707544018748180790004136539981102671446007207727261357957902638221662686470265646742471248034546902408430444939449746261038856843161742168030772229313174964995657982937059488571270370182818647639561534605717184732539527192272448664491943406257299635010919194367852916435267005810682389452040101884471166681922495167949005909364650683559432871739134183944542793849804237446728236254363218812122356413596322849158582718151102389147558364248000571473045572949706370079769151982137335155996665613871166739120747582141868911106492663997032701755423859332177828433437781848188274679116811883975450948986949446419518411171848646068330043573507010531640240581240927026280415134961566507558615039492545462006823803439731422519305044811538697454731528475892900681407582151604258428390248864189785691047915652127684505186299546422363961944949025788937332753997333654966944066298125867007118542542016985720712407032444292565320396233056992324875066461750475488148105047931996456774770292881695490305507137750160317787147779323422836304046358144508916349141683344705105235684435186220697343527940566874888560050066924094224837858850235679695924724223996936592788573392822108748852190701884750359858252339563449170505754896708887170412347967010227640274380805349660827042922374274920463453651409880758159340449401043496613469077065454942120778221621240501393044756154128894746345125687702218225833141116149270178378909713185634523108982984261358575051529913168436514729287341508288917298231946123647927129734089292311635536119820421680099141172636810744172621708047399191097446127518648697283688507545963232056077781273479420416322461195167701559628164373771030597986279084658014728775036682403840988862858191851858701734988981686259233034155101064157891603614147473073706152938485006839186914925333736155221570501581019558336438029802952672222210509375420160222312583103276470490912628595325825627413302379967521757536340482012499547392135716307502187275255495158656194388343686931433759446609762774870595437894152153575417162305085502631522524333086992486604408489866807669807235691979135296443667910051659841257359949147694777668601032692012191842583885198395615841386650983301151005635239460569013184048781373291255022502775272560141268500624708069240047469164124186178383169836777696061593138415042589766654209732123692985049861837882236888301260838840049703997565038550286556615373586447388812528108305071527591808594414855005124548674325623539200287982451349398494778780186516993420994917881838466713885238901107871434458923399254017751235569560955246227391617697909412999980046544087276278530678334554555811082992720619375365939221593694416706394986652554665216549794929599250094616714567421065107589487196413318854140705175471671178818378229146512678537718399359283404658367291738483045615425561352594539221810621181036447856222123811471577540259740512538437108478193455903784144379401791667230170563718543682706398575788128698422792906075892312061766148855790768996363853587280339234190873539718859306451722517699233177275715322951430019328695171140552616839183772639877814662461932178704301730210569334686914384088739327314385027534008301583350474046205775806699259726724747497348059365304698268406859601240479572773176211902601396043979797356061621856840372055051369504723549598752643323830353618897075777260449523868299709310052131525148232438979354857163231420205949861631843779522282343316609047068785679555847016923344680246117031990883476568989034855461187863227416894516196528172047983033475883439332449958531036413112772626429215036632094072614909376625316914847798365856697273988640103503304187116277265250848656920658906724660265908221181749231943696051723475401733810764850696473621848031141209225179713994771989988678254743566431319871726979647247961864665235488768743244486492201116554723983563242188470175508038607009072140413282672899894368515031472170123019195921525602803377851416451909038651612362391448147106967774741875252458930760948205579519376078123451786895052882383868019173164729529409553633016024148569906568131655104372657198279043835118638339196842788878924889311371244551210522626272248741033252423381824949515208785462953354865918057750886315394225814188725743590611187933361074170219979746176887704274857338707485112534413955505291014258017560149402437331140484124235560450424486328815061675545311089937426372822534453407639276034562531796715149196210681482891891973376143636707458503052367502946341447651382154767284730399191601897530101824257181058700680346416497693462500212014042699103157085109822853239302441872768138820262594744742521535361870434292023169562012928234231128925179912106418177140615084420973089160099406280099641013785571740727009222233298891193802413788914925991975243391871113594660817308197119704038050388647699008454975371409634007403456748853079680248487791127208511388493427887747700974646883826162577707438061674228189099240389307025751200673770590644129324773000858378106123741236935014905003875196321635659795574866607836434952040017608974445957089174587216316305993658658357187492237026499528488376383408811923044083456214974242167062442395572068011713473856399798686440396532462243671787187008317712794461467830164831730446468308112588131962077031976574465025496507736337833316195764583138682418726565514510624231227712420948344822009459874273134846861855639879919154351031372109312498111330309835979928228424432960996485274369777052135251884455527358771678787480061400707763524104930470110203016856871127118515370917803570279368656943894969533212265003106723710402540921137522320351550205587244345239639373038461308711228076382478755344278240372517902216877451443867737265435354127383983376465589833827447350531764432419186277461296773963141784078267403884143857654442653082237082809898592076271195377035438485175670213980793770809158801769204950063021124286730102307394058780266142081071635240330732758242024132041205537884893686926343307299271578038964818989462895702600404384531813556608550481698664402097340798485865160442893241676456790089389247673125947597980692988834303001128158538612594743675447539931929613137165242889361475917192743085827931595843746938430097136169797685210284039280085356763547839657972268464149743747372478514820635674663421665971909991755722385118030518614996962557726396156194418546329555496372488535855635195752296709482885822769261666052844944017905315992858603512790823430904604996228718507414150456015809025949950105934262787042081324434394131098850309611923200681218712575464196983926739424271403047671511140826644582550484880962913159613098065685779917077762670246831183867513623214425003090737204629832014187591977111076040875326283482838134185307153313775252548266164042794709955215425934211607098930877852150945811762643952232628461561879520146748703210905767724695473859444233212719180915840454408593810118291723877359746066548880744497518121111612044196191210987664317902106640700922927306195364937031119585403109692895830517378904817216965599505248103659006318451840448199217451676047090059151697808283788507186944540473707040959681427374464039671998454652403356618274178115574183318820988864695333054803716960490120162474090691343128521386034250570536620826818825140446689645959449149963189964612461589168269398052988813232309526069660488170529172360533377651970083425687613246274539218490580176106515188688702604153679489676044954607059037283293119545106774062490906032553068580196095607122228842078714602504328434073810059912077790149762881924499140649421381696587631169145099261222169911261213772093480883655321078063200452861180062252537159825100214052287551308805991826802934948475094718025640991715646751893722738223902829594819193936735211364523627379611046101447853808244930871917374232950097051835387391019136908574964888390609583698452519440485081540243619661694509328287709523078657482400238259779827630925029293402979990458984226971309550250411701281243427907564063866763701450259084509659509332472049456098377315268977117370293092852503976062959465597517236284218328110499698025789298207776231339961042972149363752207732662070048707404640400301124873780398808080430248047036776793803296547773063138196669912410826724221638288930088969422646498675302733542669443758895732265756418792812930063070378295834207500951430885144924059938485607814764572537552388102262124132385961496289487503852295634902466170573109152625517323059486275061963191168013050272778460454180204146217046442885177776796118979914354736909644936931970051721328492512042940566684507772567768444027472596140383865612297004110451940722393339185268836302889352199546061351436480181922930467160503545650227000432942549592073678497068905983308069482088178726191117893141307006679068738692429855549919379513463304657924540795712169800273367102951900626818909679233584789935992500858306631733279566535041600667324486758331285780759336602911742949309353905660145204156827958905288373761883256803446432280332795834502871601911781545690339934629604854161472896831308454048643824913256374274003972495958258828847568475308879668399491657930513076868026522343473165394037805834698391947773536781873569370547046263384992429562021695070861267886656088315153587287150633770654361473264205981397529460648169847430452067934699083137243616236046232871066239771548535580421624845936527945589531562353865230762420148536757618547802278591057459948511144134955865661464522628585258374092378563141166791416836590713549265707313902836727778672660308296021185576497250204262050778314940489614590995547348622633054977646182696477066639003004953883156418284725257647872912287628746104506948608064923828281048099553358699946781023478921214541410253794230889355366770059894059334881644825257823631443876952055777910611312871730852260276564747843541917603807818163171752789040654022637110909983681620601465284305356273798635272996601660875891416528466187794800316787363961541581283719456418846794627558923694524168694579424618768349448855686915469682064448461029068724304196776593961045328307280055209892763492963852140624624809729659942194567819971880134141784469860078809365313686221566296555736892202152868956781413015104293441338250351134768942596988400814101441914102902572039051811208574980442995606622859199311545646898506465076125276972981150028821837887135541903116319835104532155437124942868130888362737571211889445327167356159299308068343758306395493603898234114544654228676839703930080314895582973342742901165226934339426228832996417538768433126424399075241842236881303040145741415646943994071652227496802121144464384545773855220546347691133111861685451355081207233226484186724883198257296923195219592945804381853057255682759196658614437567830060800249584880582902011282878894262632123019467845812132939920034877811376004534972182755117577560151640170904293153192711466049706190568851398122688179351943567943077533293109545070761828934530593203507995614185685080140947486718825540279785548675517082896702733137718745272441401498564944620516929759347830274331028976842645849796139841397743037041741017490362157161312678863404725394161318685897533246222176115971129411899077877136407659408624367434299226487455867535210509320519871345286407716697101168856998850042009113283980434958472326003961704216639286006398293071804223063334840766624889279718664581584134367698314163521120685788475100606655983409375885947403590100447212504229935327869305950208379392754478903762671894147766897527568288433568798490533207736968465208765847599749668485629448310577613125630898741620244471011005681328827161769902431385460435332653376192692859935557768836699831523438240376733383263627622695634357892489339641625076402087421796718424961143634807977531656301348591247219323431778676177709432586895164577513312681776593994561274501188109131381551382332854651035736225760686860085118921960083371826160634790188716317372471216103137163757806247472593623888543447986891868312285826690340071884726576432161837414335960258386255502303650236334052309054156046209690666285102967961803465348640162967735486916424609163740263075840599045101079584294881437776846329411796182664347166241297161475302004058741692090327034310424425379404457199917513005583368468195762919279695970757821306544113319327630295524925694322334291165064291452402170889609837111737562450191371689113903651063662721297056081143082871936369146788080555119315953540592713180058298136270757790737184636110255109386398062221607206872822000843847721271598689517138918367758400519339986579561410102221323648383997819196986453951929735082978399780809696313859193665111642817658735110214951950199224681350416079765766576179041440558187455922665928839698182961770347943816510207163007371410326810538911429126322517539883396867796284875094280331813634448211573180956978047309293301101867038478364954037894920251968245264566525317708427841687542824065228854382016045682910982174345024117385883983135091811009193180847764870369982502752459681945135265869487970972176122013428242405083812365791147087456344995954628341136279864520228160764253342439711781262216986425280827994325284824540929117546757007682687850665915086672981853844485762179531030502957213556624416837589141459294905273530945666441808462043960887238865417418977423773603058083709810462730491341617741540580427126214741707711268262598449173682753175143116993777057052211959459065554633935986440364143666624116327647070158408265758024334145582884834375539916712948692048776600088827470770584761108389726241806360870992766189742277870643037428816249774019225429227751210548472178233595386731882583836029820052300888829270926322210674207858937222894417402846114451284366286215866057692588813164493733829303707272848726573328163924035219835384944826571154025094324425825588570011094140993724005467238505910577679535127185195406698658308518071560038783370918707347844581669343899420380458306569211967723187855358802465756590229195266112010824288871839351088576767456691474179805663870097604081028695019292035843733508265851002330640663929427321718488259185381008610312136770564507623867300109499144264294601919943409026493093391714539820436710510160333330741883973742557422166316892363546413459867470836127946654943892627527703970707460514036683665103530403780226200679757449036794462800420033269202827331943838120775730143548374379241643068521481341212313132123202100589107058040548649328605523149847735688662455142357848733136110297212031552147307381856398080646229284681269217284939741975365371717994707065008976828678657651295918840942190881780094497739799812801250014008320103158750605385020017760668633557219945702584202099637213395543104718144541032255883824594824619837529640404280986242293923336390832899563716878885808253029892090477339821893640822388405655192761707753854289634990596543238630351510365212969277190289213947555053607192909998769008760198551866606243460001119870552553623053908841392109549488025615963889865940654589390790560123476863118826134962652729711233288184376921583631648802915272590390234206452147361677605605685378794835289653223825969810145654739556316599430146890571168894619130616585748634045782317508386121995536474765887763820054417594387042133614221726421087765732356598618485856467114220422090124240466797640671590737426765752328475886308569972248787152045560665180482876529896766587174870498389972298201877739290968226655861241856339615214549763424927084167184792841304047961089496542200942308943062578565788831659751070026856695671194236256188068796343169406420207932527802406964598729095494563883215886173751903899121371548726700732360865448094850666492179583731996271866019224121585096802169273238012642084743345527425740471945485526658433115765197626875822789147353527042929145028243149138786909593233520306243993209612671779857272832470029423339163977313450743991561285827770036840373580526649328918904714543074371191732211399923483522526438045270310941507652081921949425759999964719982558602985070988672755854855323013764010726562725798307337486272397187796524688350235716985678331262570564829997194219400393903082504517335017743447727287106855002519895955099426271642967410966979709392638017832566078907531232617382303735645343185341507008241852253685155487820483031307136961305073484802923986671679960910338713789333461234065406133786763562294789604346262343754400417953813615330517228081320988327225166933764097483965879538665847973066762506083528412395322220044920901730608673612720894200326269310859100008600915775436951154503960669610878561984837313935784176589763368880408748294089714744659719826385399913171689075208619838210088748578554295122982186347958886643172153788469798811902841817076327420576247163507562972587514948933940587882607528041654066227422569970362915557871628027025519772506178675775333572745109443052440127480768764458803691901433103066400767469712287529827395096959612923854690823474899776396149340895978166775738318661599084743418400583343015263253659366609028327712370657631304398593183068612164197912680098297928930384109262953373357923979982988969386144132471343002346872157107918190388947151706625957411939074048055700315069806400249674146087824653766693273392147983985954761571812317534542718512890791484517796523089783404260015718463347769230752361430028141912079424412880997082309845303102430739144492652213703193507000738197543611578068684696375006228694706812919011305183294103140686885732551219158904560158733011807008367833178181165474882318249753581119947008750427717751101999780799756369653206662158554024394139253248165412685511795701050893219838495263241019930710086784156774088603032703215444920060327827842387321303983153436472567630047007750140126009642698373562255618125407439034664261533157368186294016679309294939785228845357021415819696060688975604901345866169873261771796438313306279407261948386917848521635888802615354033413120105701678034690770421831050131993478546365128258738288290606114474971280074443476143782573991375888432275253723531601850026326257791316201459802090404219369750639429415677873904996364200751597188354052700854001186235127279617455636349647828882123598400973280178017738018237145370820006688933984215827403413436478774238990639448733242328141118220921265600828001928666763825408269729960923729749894779701237303201896268952701325919687756927045962660248347221042983464986533937278874056289788958162373734789878080857384798840778287422712624383564476677061930425051232694990919462323098657882311293768435272757785873312012958488318067974556097231607495394704339709086955119108606468965676211556171117328731066441947941882687173394941107367107447020158964478631837586418704030054004616182636254576360106979764786002653403981779179281075968858120551136539178672265701870067526834132885547220105137196941707812743484236164431521821448909828068007991755538083990448183476632028962279422819149566934872427518145711813859084824992906747197216645237251937169685865433199289513134427528426986023624274835726323025060543887601233397975473557222328162373445226179008954512433968060822074716321473487620166228656554342533927171201288032811277656102784757803331809365664585214302609901015265145307357073046193789089027646363368974117167393609150398893480799485432680580641898168988639748779180775292113400147365274378031059138008446124560526442592307608518397987690016185646971226516486795073718263795877767612375244640368311931562755935793976521318603923059498503714438917988704398379190330629338727853659107230577635240548947031179136001358685224323079994154089492057920717515622242768303611018058163315894148233009847456104653304147895447802775823817425267777081573386988260269367232972743032282556764670647795025527027441624352310640982412350041835129503545613647282385187998729031496712363298578675642289961376985714177649894859385029711478577749921908400419530452089822714049551228295054469202507328447323376170701974607645923604915798589758752775763667270724709260523743260157490055177847074293074211229402405882460812302970776670052604573928602698984340608726273196455050138374922288910039284836993133454347129868041779073275270851943530233048431241334907134498143577978228971787995045507483765462176167903714501859590806802236722598365815120568186442400353899579648440462017304585992999614572552938950119659459690984986314256421255996751258915721857216939274944083192362449090666278143814338086973814701908465089996671845007224698629314549315291536635649971385917132335139000731668022787626773749798741419221605894939067207175557524533508631957864742241518901883852819344674820569553358197345347552382064037299573225502730075414461551267823350851761447562249747552876087955349987561430646631886576285044535401457772645575291008349307988720075528645057847866051536098789926745546976406841147937897469865329854132880548775983822227368508646638283659725907550540020563224667665407427363769115391299864847521587735698980719703165346115433080345305930429808162207939244002397591311207134401992552534512416592229828345580990751979403907182751268080538470941522248823333520932932786264552504422882613571419251530837977356755101846963117223192011016221197600826995185713965831443813972351900176176770686789349430548955657759976317707965431763596411404492001320109451399883581890636945703033085438509208298287009363327366460898069187777140880988091992676951172590562256465778241199492980095777023388327652402967988704152392226591169991545569813872724992214634546891554472377850974941768378342204286131063388879280225349763614290963475057851887276716484378950917413889922166449914160697861837278722324841485461683042047346838156399483227242891686826401198752076177855243482738184936166523490598694402299013629248155902699509856579854354811349342416862250551580536269847549551014147913204337594717221487456133098991762199796058827342375421032854940397606149631785982027542157288900376938473315600676373464988875530164920622142464093134923695239233207865345938580832391985802402704977440920265763054910250304025739581784648307505191637487988315958061070190619428721047176260106899565311417338793038784068825586292013078040626415367230392219357749590820673950505723529597962018248717307597702535904674429074602783509779370601862126382276227051610666656502999916547390997476579456625412754669224752657638068457578014940563084127634672516494565119045723347808582248564506368673747088224137642077966421978620098721814254927453810811852271558665341165712254500187158744527426374058138629290064874944037744651679025860267157892959158375770400987314689649265251560451821241466725753006050354218224436085960002409571606440922752618428715527860968492911969746290647777273744708262366932577116362164955988499410432182693759130830709216634629387128334081529238722780302760161097892731601852909467915232607636679028460312951557237855037710077817455929209260636670507459493782383207616247322631383386468543494051204277901085985681324312781422820848724089404859543037527108146608694175282614424083336798660187221881974313402109570248292630705343255684172156026401929799116541590524889975046776219598663558996439093605859282151872187009324120304435592639199351768880303524274252113278202912689477654155243144295093333633650960552429251668035421773392823645515456404850754672304031394801648731517491683111102560730412450649544903896838767854338856377876739647159560542947776681071226594075687929317971216142727005928508504435174736728856757661141014995766864450583587218780414270541103230068191416835919160038946234571277855986503706350804538144180999890205340327248567578631446428474542703430040481300478032013958131997242445054284228604841689251285090055966986523434767954243762055272898745755213448961864329869915538036984329117663250956253951130210250288831340108991232276162745946863757996795254893958813590696176464208403855398868628894601712621087389809519956279351673513081795157293640148252868332778194971846053898849305670602581368359404713367303389458280883645977845408416061135779704006310155534655217655180672484783092837429373866082504502960126449428961334741104970764573459470609954641293723857275441243683722399442272370588190665449800834479581747601457460224871946372983899561337167302876941307066020934231613915829594601522196583042522203984473170603177304528737085033571403000370958455009416909746214428517393281580538669292294461313195128497914981452511949704860907380781434113015848851447693768928700187025032541380894867680770247827525505207658635193096275295369782850208116455010450225296979632899845815413767332384208501048237170657291970456130765379796357829184081805516846610085452093996696826283833522249654460657412431772931660098617918731708360168611883029807993181060059955172125907419943530832834501960406743864155197688100570699717802851896377081818976094195446319796164448544456895207138245702661727707941601327559931034737923838063484488217259961298969252678823219794609916370837571252654537098746275548664584167196521408138972407960552835464998999585209817629531745302624332130570683646803654182804279693708996174708147786223689496436848872862334658716342058521493871357382006076591732297753998863687912447614034919045104449264730462384059108296816085818744930697596005551985239442349990679792133361555997680867297446727686843378303818146853071595271961252883509416069550095162007898975164552305827346014215124937178290571460062543911943103904261651382817485590347746554020749646840234326131788904938512944916185992634984687034073132176042435485230256982566007105313803331038089877254508426704892480890987962497986548070663131618219805760859778043159119841762834531311329673888502066135391001280947550354914381189707747577773901786243914203599440176971984299942233279637667969794039095956768281232534584485476213517979332327895084669551059068787059300594187589115092514090639656871381546683764788597130200394995417760128210298550025933786002924726697389909509395377993623954397418398296303592528798560054587459812405729640655312855694853076421072122991992244944787940637696117485373148601852672037768897401507037290337040221387506485307528542398644139511227002131700596971510119015789272785345120561784981334337648021920392303762625902640132018383949446974605891149955638496725002443680735789338596785601510800622842034406103606435428061958728093037825415791286909381478310360374360865494461552183373051869227045713308187333802624029758326715869193137716495812872980533732254979836611225219396672023581148307552175965256991063489331432556238970332341372779196788236604103782115788555818396596777819800373046238986536473003505814243994877989991619645828676879265497600384050278331321103185960018614463697680911688522729476673777960042410877796374037322965444192832175435578742169553309113813576556906272083137463770017325482174020056803818987224389701263802505037217553542940260576656782134336360039498710349562156147597142823563544131836985871749783296285545094589899998172549387568022665975618332874331186848462408911772139675678791725666739052170392537618373041800892094900069477104407165101239425312076380852426275196588380661765956225455713196939841552851335875419178128853098187940503443609522774162732970641686908762668287188824772656157369809513299938217848101887758650533198976475769937890432568426362284254522639046056950743896036603159490083618196361331173332515872139606828151830135103544707204590221821359193186894233976726498562258831246229339250573954426642612373818784778046446239470280332399484051337057581009663331748384421843608774582536854690174184090863272190620566856381443861733929117536605163891464761513731862725063720555564653630009712681765349468966837561535384309653193464544449487405821223311171652142769059157447699269439057208368605507440608011362811536827394532254319869157256915033141794168565082375911247860517694325389547387490746549517111473935515806945963540417802921488008056233404614782167042527305188203531267357917075231080215363271147184391452200904403058773777400974818105758272808344827892598191043619143112432445494016678459158114608862006578227114855738059223253160222924507421589869576776288213646307364680762170359088524835857676080911910274004360444650308908624497294827981197975508747382968573447556686875040360029102181369446188091842899552347541627405650587175925505100830786566315800579530180119748561983689834864545504860700837123809122492520367305605532230074974624492307943725711288010540596832800888774306837238895948634447075092989881062069310671186408367777166625755136977675331585003449679622502255193592055642583480769842378625102498544705664166915230567352247549826065400600430428777752032371055450201346002604400671032754875102229050798773110018220391324204356847965328440139637300834700076561203168948289497386164443894361763842105899587282795126655451714841762593338339409840793948554259378145703331499341947451155760920901413402035007011006377780654876922486055478508924619443716294381986104110358157390181952883481919648485339960559090783910373321718390150181971776138436468157707126624553589274546408065285055471320075918688319735766605082022888825844987579169503345324243829817145032870594153304393258472572431528656513880070964369915302958890196258165621043306411777101162643277837176507102868990614632160283355484841325678426906035826647960752623044789316331807182985426222857285208068316040246389543329092162210619810472503903355107806226004591500629490433959657778864988425993890343891012838191316941138150966072880195130704548636274639877526188211008309054932150107307515553195063478309500326497773930900720771530778421528727239638779509148672200918827354778048936803919954476476010742355571552598638341411965199915453771675658469099726582572043352724790220758433910957803325938749576461047889454186075757060968995107113671480269836276252506378178924776516842469622249513425442852330762053841827173220294342647505314666325163805867340606721746407752703621664347276124761926009481072987301879179421969620806959622776554173774918787306949344869503944506930613821141258690442185092797950531391186662718786544828729170262472834024038944415133498804153602355491191024838642833431772192749235114386214055813497729579940307521763475544390371032094548026053901571533464588195027263369955744611727173575441179266858168355799629839962592512802443120684718129048423508519414922975792428825938474256681397709984005047009338918427852991092270179932410099929227267285810701396430408889298805287774469674316722149956489137757950407775692913984722990373845373079884331626557402130780115945430174795107783496575051410134403936833691375824343709577997174428020247842558800772780763138902361586468718437740899570918469832452856463039133512820757170284207730995007440460513568944117535803309379034747117335883466932209142363613607965402415307478353599799003963670411671651948281552497356955883150657399656614652868342247148458801663594154144158112162062590655742443509418206493188274472772678900043777820753123268903667037331187833094631944722931416291125672481994178886447592954732736973087257350354151989100286566173767874752456707457265468380432912302645555856111837364507609922891190870680643457092813638613661070227631726537101541202442420254072179445691824806797746849726099188065333694876718993344727586940047787815136701916035334073137569057956957835799708421963508464249556458867410606584164173168427444442888200310634895078926007271139440180754831301283127232361644525298089076065556262513685123481538142480740656005039913773070556328956606828271891490287605272243369663260812407088860292646541024771679990341214744035215859762213183097659028547035296735718173536498820800970782458005790936169643454710546734090924960197720960069300448834087404764038851512299939921713383317838331641763540827329130705496209403155617100891331202917028961015639643060904289560854345557707921796074904481889834297919451061247356776143330103479793400914193401109159472764710160438918388082636921853132174797750868336066049475969649162878064883313259029067867582040738461514544939164381815082484817276156708529971212156907149021611065758811430212891085842989257036830627094523870545224087111307260492597099688457795861218820631577180659220279370292944188896999490499955423982594414139231956756527319257184957700091959821892127606565795869188222125643047690366506394491974401499502144996987764194274765902918812804389480432825141106412869872171556635249936661667334860631101814970833183394414741387986344499759313186226619882387964105411089330592247521775948661488147382363406670722568640708898090833280550380032220643512302741669282563295893273577710684600237615833710409420278598165429463299729905257012577204554371126939744063543985161098659786012293056066128465795888866755237212229684267371829509587928870161860841422887964852094207229351865784803253101602522667087744752038875622913383800897385516576662662499558699187796366616632535852446446251557896454733861165150420415622298691535131524637458488562917675890089582845977541354456391236840766168687796573866099603515573581795194924623879771969000366117336333076217141657704094844953091711677296632749174577673299471294789875042490091471011956423528929348423931306258404095037688945199789375330874864563963777577998876784657430498808317737330675564587333226234996946106015700740813264153306710311608287061608626294311271322268519655161457456495284121688017715719637205899327199207677784287932444622741681629594248225443988195856744206774559625738176103434281864299219251383868051041920717819069425701731041009105812764583700808625267782427360079599620223639825751403659667273500020692460500107049843376894992359389963912543096147039479229361697298411560278613447331698004465216528818141936818565437567884251969638066794721800684980474878902473151882091117090906987571888114710577047346326944118076062408201193341982203987711468684043741531195322175390828878332989845497992544292984431463121149144029945502633693106696091190568808404506817117356853606641905906358369913275771541326209846000668980137842992906088144057819453281548790115717348334154197306392633019959019092387270962685560205907274946710804798403129387154763817546812850767670748891439239317047689319192407724098529517465360216271460423846947913792222606446788993936797005874096124580345516425484006640655378168966743050226346282452378176553864299341755810631677604876206887197582504110231036308794852682582129002474956120826314100694033034767919046490408145806607666370932668876511904266822523071502146914902971043032776895999878465588862122793209553123972456858351000850738180081495515438890110603249115699599792146053916088773070932807410389647440521354754081189304101044528103729566687440930372545902045855309574289268294833418545367132849310440859238431566719564461088254892415555873377396671824807199154359441296402848674251478418646907657060598264331359439625527499922761807329634404261008535176179877273383530271393885180889688891342935917799613387177192949225674262700401589391087310817519200895637629128152272930359596180048074478709006129581295109267604180418105266806518519249359050682058833546942643093945668292528134311065812771281774740388637231699213876053935041530033923353130571087195972487182859260952200264919522772462673372315575817445287532710725567349833790045343568305799648304788533920328601347417279543622655984949520220010274640103291706057186084686513835886146767229591615229439461903294019219374381380721386050246935028713569083390791581572520786710357138853596489067277286725583152772113837365863473006055063799506941930709335203508529193553054324357591951178814964349667525255880640700562553535688780579463894609275493247076988050390989290540220547344471927795466832053939868654612289624704344740671104846626922656797848237770805887909318992313069890981636415544201354069828580688911245802898270284217296081495705235676411188025075833762230502961850831919686408240255594756056815912252884653160606444868689081662427502645222490859674567019157836051844938227577275605786282887473209455837503394779549503596878772572781659606577236345749916730500390488134962287423049681923944598736952186087267358606430560396954202710123206967539503923675294699651396345269330759716468917389644884254376867326023154808762182601701980589936557880269914300979409037740265164897723979236056372206115509153007699525723358839316877643797992395324026448783337637023866315870943495651607936456386426713852811192531865864864906144333943316486268771732847696989807668610486612177233667105261109732759862956219962419432088368371472752231542075149748634273964265422413071097024574273984641460490546668867120631878935599889626401435088009193955770196731893226859727929608842954701030951887843352797233436720262243093218658439105597704963426360225849570785972929605737699917935959601670256922117611221223410130387287812932145009455852023435964048828211618496842498802539778737989000202443153848001184306082885956926351637534143872982735329163289976289726670382541197549434337520111436907560125250611005065732230907709552573939343565926750189329782337060919329827438973504169237427710156804982346450514642137977725230669775972149672914626944634225030344144029051082730358990778164945545551260045553977544931735339738677633650441915305837050800983266480188434369134806526925077313587553393440612403815307894092340608612267075512649820688257522853395747032067386727143178894326967467151478137676101728394881618616566352056002686430492584826177562300910497781124643648168954755904637470981246352205215188135532679883178776895255670957093190245207136886123097213707655367431401669647315355160585604197758777555818874639356554998425347870964107141049606786079556675348150797036220775622471963788988532192445847993479329725191720749574045655882454225328271712715977102480361207925448898753380728815167672962666120328783744035615974921868689149199454552314908390530288829018781069203655470024800321666356610441144730133801377811141313894132628129421452421132400942120065714279313651443926472235676173047441284846248159900014207986867475658848635018884275065979652226197770132458930036262973112572729380405194654330806912291599343180181535256629104235072150105257008882708896024243905574316328101366713727462205993284728305814669586202987797732818272165764225535364767657556707966745029382037976032329843009514718409359586635968951818629774499943152046841803948254859737512954970014585912177443070312841292949263170724493686991539662383948832069070611909047628666983253735771464514173240334038414853538548671246649774290656249988622028322366950284508610242126963629195566101064147221287636051587785370554757948305134441250503240159068814615338359357528383534778294776835715406205263926965149449665793964751038150004345816604935216883711534198530621414502218838356544269493059171621437137410729067027892417879332522716750835488145565320595493555944507424190529046102168077760312595518145112620283061991010800396636497855861427982477295974311738007013570320126973147239250192392540867861954682044970418130875011760348288275986264583949196600005180126283735496751502030752650580335347085486152373948392581160990655861990475242989217293769299356750135425681287423435899165020906598674695457927874535517891314807578658577678325567623796778920037782399678259098056426826703323473461991445069932522050681571263269488317210753779248555206823888814086075652930310009190057444353216441602545700676811831776607034007497602178034181551354693177112442131681184378841487186452590677503608161743695041599947101953665614936832928771192861324597232915007095770770581030386310450194035739276384529899234580063517144504050105613999643660235680235951577293481260774077116691981358569712253024968606332109068318219431398742673108932738646514417418382031641127322961681296447508402875804446845924128294040552765105775124370706208340462886924034555115191521007287204258105507953760527364475830021809217779757206740628166578922600335184362584584133976877487232571524168662818481393753483023922765293837782573514774807975375845774505521632538646470520310776380149286000013527431456627279888455744806217847220896967937176296220104690780114598089094541889303217371081847070484120837920549995921747047554475409357633951900821672149026294484449496460657372889530185959877931288705872165196018054254835663139947802317260308759874138997686639641578072343714979273585836587842828773930018266245231339818321740042315955550943320806000629902124520516004726245398342518249576638037942536857899298013600546467640625237774606016598167078868816184077250657420489466577559234545397791075640702983464980656112001570493676994171664947471576288680363766504776940914982952714884492146246170911498420390928312089680499829647665147297669484635276635040223848969839602027982029418571099302735819568611648310397844758213772938874278317522423478444589328660463938855289410497697478755478120674373556725327381509399007593794444274572084881806625181980525101579048245751432016547323471561749307497847064355093852352689681520525998805317713367380519339204084474767569023278967622263807205122279426017638181018799045947921100867539713227163047351999823578619710165806532682641892707671364063547325782439770146835734407607315032574597487766203462875932333090627883764827384787281736435951849447210290081218411380662820567367697087693108118976884732014173461496631196534204738105215805499779115276389355353483376807247090828852633808533854701784957411561527035787044855726020073583229851452033621029957379500356797383030222101403747238209375264830039370908786737761106617801169511073888025622201490803311010211535651522759420156789141633759681587080801093525237740214061019669577144427043809033048205957185201310425425682225844496433487949417268418290036494288383876181420224317165989964866109305631274423253480556081379334644387567462052909673138282485414843359422146331173951934594159967429110856102717442823748575115846626076779290014571104392379906269664433685543421102545320111901096920359645320943278540372298311559494225544728599402851122377268615440483161817323825621982063465651697456229172257138804757168761814180236354844702387148709451309177741255475024512347621060203721252422040198498225091644990563229380492403181910384881679684682225222814955895574144165712723710418419134387464811629700594966390670083415228703974462366655188567955783244012460406665693122646467024081708887979005634898893573054231874659529731224960374242016353813859031810831966777554991016642832274867047008350136575718770044049262325947073792683555647785069051537016805328664915664156008350484582937181901677873634390580229634819385948201629361619781321525828672569504491168586453774440991502424045806512378263046031507482707824165022611366858919249138718089144331861304165875986873635949440260027416087581621241149653552664022337887322808893866474484446101890676863796960563069897912522661667728385268817502172022606302866459777478247648456784680324376425790025081902124804656343740263517164368711779165673953526342320373518804791975084915201489484783482049167858947132684915552444681097359142795549407196060087654216620246973781052148842819299130939889233877396867962600051453349873762276562543896629562643969662015827593512372084767934461269057571258079766967202111621890311483789974814049076400484463159455583045131910289070018313785785943492356332585124124023614668902171967311822035575514361513043671217748804861353417152039933222096184451851915894741022186649639765004281930339903839593131991776618452778633071899152161525343614676372885771867894780432918820923572185799101305224392138668828725612473340429740123902686034109627393629550649005322060304860574088169658129797291005067905068234354200985869861847919953847569734485865988642489431642421553348542865634797646852011772109970682221534981753012045711636118043209244508893460614372886395785129943900853532901085685462956456523208329652768729106345555322991423402360477395344700574887828599986050573283370758290512107253312284050206126568956258176761952728089653544511104581287737428054706739631574918073434943674092269832365816019051950777929370951194575096630806498693953208806659537297762721233614681853888683978176605143257835130899105228219840102324927139492990616883139321996744594312718330660980417024432691554137956267368794831303564178080298956728573453207226925370970759022074806319651519043852918646420970651426590432481502802859107895432991872798210965356221355070409974632655722706122002873302389729276935423666159709516105327952661058795851797099260465470719182872649273333070102497700071178284272948139227009254063228002315500519076029777218141264340897298443511647682522495792154215414092438664370998837371191184801801334027312706518456291215656822947917883974707292978720009228616045508709566364220074320283628200891728990584166405469440177574571987224631290829277292556929669988111960232065203562134604327352641953554663534083356798248939171469746503608115945544954201002427010072788503960554797834966359834804859906701904492748744968398723023314366162622680247010210741078252733699077577193797298853562243649665607503205120889129047317096215601771302938951601996833057785592258511522159060064159222404327931222903471921273599019196912187223453216840978502497149225815871617614570760915718929837382689112054641115843570952611684707102399922169522778760653883561055858815257906840270046221118417963242977950267906262445592195845962912863923420788332979855648869406640420909664542160704965005601625479280571452992782543290183267965324094361314266901733096784563248768534286205854622050720590695618622207469150472032979132355688151602207662433704036845099961220928740860368315461612317647838381522380372486542117266798867088423134072892791130086895824648515795770132026677839867642717801052483793659561232360819522312766193113352545090787152976367690175584816791783680563750396381441349572460152150937597659401282621143841250735206028140130678934857988806623793689355196054554081197495958072484697107899797153274969568974644767847793985424580290042874276233216834335561766261942574354596859123837270466032061278201172180616852968981365954910150120507561621422202241410618359020419007514696423485621721533005335958154680115468191654891342173556990092370649766232291673625221139464820122327928427390157605894973953918650486388521597884693908747400300791162723066015980372651548241549164694162189713285346620255843452481852101136789475987747468441145981441203429152290870948979060855456850477678832746855802134590000478650227240393053364273707587061029026356045719812154846699449243933932412260822205283956700938064621895468976137815879204748944877162473992357829392297804929957177570045640651055292703637981086262632237030895850260553500543731008652010681822259622211071265287389094575776640728277356033037333961411923320476556678250466746333743516114187792537295881585999518478282117667370882520352183500520327670691084693345923534100395475152308580431779814203831344352384381780882013272236418437855045076808254130135847592080707960333696486433625867800872587766023587483937001755845703474360871687916579101543321217635211980285363298964017655730981431926249429847276443509685917367040402750216044117441305959840251803688764467804002178803017218656360067998014392864078463102263787231841177496782604846444960161968801643320544097330813881619040318621501091946269311233407995788892973440852690910904701026293495868340060987271131407206513036359068613670207313468935244583374446999349508020854562777981895908594841574118250078499690726958475158347037509924471339798255311975505153693663124573516560046790047123953767350916182043341652813230794178931353337353876110426324256962222492405468802596210726496857493699634858075909689928785543736510225293701932848966114386414080036854813705339393019003635218224317881284287738709513902458932552028379648135089791081729667901671627410336356851292877293692774263307460750086494385662502156072595719583067789418289616452965931186860323517400030783716055007420587846217615594846310364672508307032687870913908667008794503824218871562544599808673951077844511034813651309667192758986898574175863269760640462227488824382920401748533833068195361549532997817106135705102933980506740867595098074341096910144784068495625958159988823076479258218693761393411078932273980300771127376721425879557212204223070075497113355277770515494842660777560770033171395815778191953184021072604399624260968678871041125910756251391821696980168477830929948538911690721902948248902448779200300311256456264725597892933283511840692949646148005106473490268072896566894780745335361528755115513027049079690019521491258020702183300472840638709428605846908295034930527155986909875129102131081365201944795131592582099014052024448895078513798799237078721616952442507471983706145036093141462035852227542566077510842650682792829582655446121975642925533505637728470578910589755574694917937773527740369942443107727734216971983300299415020099350631471814287084643770708544242908672181359219139114955221107589429675726855646798625666163477673767406723205040052401729059748067354112591599233685741055406488843898088247226340322295404804451534600421187498420869699177479430448184465835502141305274432636194923919732363210874421312780806446409889663071340311288971441254225736973894636611009465047454574074986696130290414089252679251724457726133961596761513020982444223139914785897074664134246767404005807794003513307790674789794149962577235579401918234213247989529665181764143797793212597068956675145458604368470331597780685652269030346829245645691417350810914928486236698230363659945174632337971960726640973593851902277916384443642053960426618558659892175114072748537235287213011511813531267736233615783816412218497561022729074759696008913255508452180482326449226483448625414502509977968363334769292846494590150186936681222777229055414625773723673998362599727635973921387542199254291629946580417360521551356486395546317203009295524411890243167304862049375305163699163713683058700688620180971096090742716793239036857195659721224198711099189181674734388933199924104824752503106136527539274579468515329625110210806847934998849814927334618990595153810298981112628887511242064175934420255906856553796664671678438793359341899686476742393407279024792836957492623362690479191996878109378301977065036858482332434497136111193978329859303851576500326962687002278605190797924108906289743747675013682967023457314002357154784984984887725608969169858880215436435456270411609508481972662241842879875410590993377089262554519986189564366515308805764961147054697230405590591483650360545166993597005905137492285670770851864665412774543727723450931056645100555306117735276138447880733572271385836500908372465279886517611464960100100604411838578748073378276756308427484221426556015070907378582811039511547822160400113695117026735089230738911060891782488310928152593563878230254328072606481515935084054094493023146068437567985284746569715943414939764048805086943338474588836438769469444656465172125877782318853706612755419172524717749049879698076128762772119665564492549902986409380944451935318307025107789794178587773748482960602299988725899088883602310467643592652099639956194899428519128660701335866916145519632167958316381755327540042151575036736639397793740247224223030398362817677208643025431355017695197434854093539520536260355281702350490665463600034303103875750316491673735671675943640970709275510385248903914034997438730039888057743728912703486333852152208573385928867440892839542904826461587394136986987581339121047743723485017971543391700895725122283057482125878726182652302879995817631692238831360837793462778035295157765244261064273807899106261238960904118584347331152593304250443625919247443175441672238140655429718049311470873327903926990210346674958324973582776380617438109151162873685143681038356633976687186816698550476454223082560788598024281704048016573424483476130614381749836781678743276400912715996409222108035142520578001863618483665709515649970911361099541859521433502304616668299029912522418530815202722543388718441424689744802389864004126107038898450995250506346649573555108938322678927432990208142964275070122966404086845735431612350607878774389779227937917773838528675587481664295968497294470207160930266159788341718980303165420221169782837678757167799797344754920874758636726642390088386288753829177753620199804636116313810538327602444441886621589924121175867178818694764186323473316193246651462209234178986929577743712864619019045926713843918147778724390928173946807971869013550022421404358427328073365322271530927391144494189798886356253523514043147130541962888790465760333714077901298018003529898859116925407017019720746843558773027298035436473852501672054410706898884859510027034864526438930203383486928469711826462704255389398815647330755561167255748562032163074913073175729047397459130375517303872742999723493501156851819976724783484026223099261176192371722061873414062529877581436946372634472468088925466416401373859767433344065644820442677582314979233094810222318257058962269852019495714605277512014810935723476792093639066747299287576723276249449757219649577369490708785764056751476998103678230107064274935869157728928447864409080648626689053150153758857322574560164677013133149354181007473212243488057368319372029511303181436866673094941115003224519183612174561409793377367629916913801455895481398148248093989372705347802892642926940682764262279157959237888380566191489102591048578388910424034839187925191487539605740207194756408186394283648452242104697603642937612669086503089951468950108121927778867022557364501963845237497176881983576353837492335107713846663470982201762299698403794483290011317391521872065222736460836780799682694061889328706629861051877146111030755798450898060491659804817796977834284174797555414163527174857489429227305989250722449935833156520650628724988911870866824934845245600790121445024717226731967557483822541393209743671435154703259776473190472529805908665382492659307368756370242959094736664817309356838641188976634539595684534271494626978068754932659337057223057538244941218522770985956222922568687053776252901014142798642367149040221970295231085736686537130384503930274815942181338123206855371357305019307636850241738421187669201842318076376628099240062646210194458979538781193734026607207999227126406668486185037222348631253278987776716962003971172904128357731205388927207793613625092453564937052576379321176152092920946772317403094180546873610117584101772595977806871584888421536528303349429969074314142272346737347178040151850572405024311660647951771290921069833664505236693562649547117264304845616338328249180897340581416755154697556186829978750198602309433629349258428562581376904256249788003008269913935740004046571993835427828328772730668532816445608708794581115881978520280896880843533662791675814892504548121894840672625162954685234975812975818142179543773787093813135689561476754692635929998154663496776764142787466505594533296403427489904790052812291065585338927453206252105821236043555785925565852453786500614077618447542155882971946430725941773841593162462991194673331213467688761109126140959232207710100612082457478940671826041199563279848746226636542463484732352931661389518620037153587531471021806871736379800845618938017893027808309619853273968608862753712184123588160333444834159618794030309476224893166188723909178739445689067915850881876686724704602792955790725170197255072020005556407385888469654057727390628932335553256921924225807475037485595418905482102200732818020889432389891811212064868358130203568127269149490994204339075974164053383174229019146480855316018309272482718224920043768842068960044300561782204498522475185825541980329459570326166368767278720734492214029040659240087661660319234353585447713489082318961930364701658101973174384785612467341895064223234585326714833975612894374587080604438437218510754474494219171953900477565541294676653644178132040534788088115266450266635946027486339736903253096220636286063980939169225227378151302568969208642217377752415364300837209170178452407428291156904157446960735643484369301034737504712463752500920936090060675245536882311504600448099729494740529354581001999376084880057333490129060563765912883981380769663967484831706397732626618165443220878018213966562116575943532990112913370692678452486003866825696294764108762093128162179319977066025487323194628615180991035270084325926385395156166149373736236502949420725504936924117490774701256325980347192488010920841119407842274221428531966701425813007208591584882295675550748195018146291812033670693267706885721383352395973703794960582897475466378167684534085257219594738697050972859135643009437136484207997149934207445136622603687277754925906274330033492920245935245153150631486765875515739282761940964040630674691044588961093910161341730493450618900107276961018464713565525061572144022608872722891995024950318251658183657554016854401445374117649398684694815718679490263539936181651551381651284755886151413678004342463706234025999356473289504640917728618011972075122102306223894759218108114754354179993913873302432050527422557149171400559380652490963714209896418236489391351274827985056387672417783061174521123443728636884825260213159603696896336024361140343301893422695255515322467032873472774121040255597096623747473082310818363924356339033883464449580696474908308746035522556181950815752762920104031775871342324826978618743626667015407006612635636462196110312453799836630798746550620827743057796395091489463777242075855163627269875703291717971022802460469587791682360646822059094814812308751211516258562158075476554531688919651023218894285413160458583719140563141711217334919290064454960396068474961973165526782640130962059866884106924353330061298912210434186669178631128204615694346017740751709635781400101122620007368788520805491699708229512796177346137684379755848193525561097447635745844664647887980754061993139129885123326538582214494361544446058485697212922302927366325996519399970143592341045515849932687654117965805282891468943927154912359742615444454045277407416683066034044175528721763092363998572325196022629235933983439126556254606321847327358582101792344229491628428730451460215449798990695899601290212080536035785287700190245777092720755819159081917740604483865225112690345201159366304150984612308705199666262221888001319875319692679364713040371578397598888024943816189102418878770096459954117288351444754459646567058046929527712908660046208284415737279895630757411118998404411468536775808697028180605210143617476565417466581660281824523398601457800995667714268607873785640453316105524121919608909977669427346775821990600179303419907474247380299576150364164712480639105306932724970723705284403332648275982424683430981751087472102815730394863874930999377372568230492320487641323733617892586686170818234593437227562401962699722290061324732221902387743348010953749438358290536612760472960761224487913471263149454497936597465613955662804705217282863777182549968857318628304871014222756916849247594911791439670800837761344952666750300636833823346339196229610467932141809623483934435147817082511988869561777294785659263385035895099326385355504658040907350163308875327422358054253904377284064406082799127487401762807085591548698179748910853436326482200755186016570428123986616010092070789067575768084160350781778885102361691604117960050074172022760533550552007668812296813222743883671558429642663236931297252239386667775311373379656654489802225856891451761756762884279948554182286067958082913865103889523266224748110454807483682296983634256396921466615127663579623174445520382724311203438893572549304844818841270344821787488507134313746871711976248976985703447488659879602163401221507042232741193877206001923938256443554829287465301463063925061345886266277826305229662930942014183422098764958907512336618766811924096429025312695359576823116971062290896270507423082473438696235310113675362492508947034352146963083302108239157222332650624530689321117073520366328470807395875002361348134255991310612137264700950959168988593857779280107266958544370209719683932587174852978213046766015954686499856166011304582386523708869266776366154619170035419416568303790400977002156828753660561126305763388814333842554290450402719986688658195282866673943190559085507844321215276610151256504133620249717001070290297213446122094427740613561054371365321518756240706405236347390773799603928768097173785589778487290159289499317078989291891998015021093678336652856946911334878586831505462357447264273998336661195370247850167910198006002995610626571025812856959816282185453232071319354916037815620345631308049384309973877204359868643864126327154854020546856775662705004494849099142780326425894289546031109792307440698060378494204552516852806068128890187378595581213061781133665461712540250335987746229080060655899585421275296484623797726746973699721316213352123524105589272130805411327053982445868076567026172405611159937602340263410285623070942280490196615939493923994058863600408711645076887883025399760206821879231718280038946663853682474798805507229247187045644502279500178607901505919068890539041673666809394186964365900952149124471870371260762216430843823468783936367817590676841389401041059472667974057201414136875556742578080208994405703635745408194058132028997688847350169904627611602394691025642694920020830105097714290538217233947888638126972597859422090480199020730532645481302899417175173934547245062642186489889837299861365012263484838154291540978871249108007845800398955185403383596654336390502652499565120291040602160401825445668683259897229626952038688811853939666366978099206464506940737581612218414190765533067212956079747861176868373456016412232831984484782622638921544091171666017507715214533644635609064277185990186398743055349088418079730154454773848261833608649037649243284559216011881852163463224730517639067684234821209311244997958311608510673213247887784189938155786413426929271190140211252999009469811149823357375300827344556582530333591780399527044861784834432157423382635571892158031508680406983621561050275905882865255598420981815646456371005600994481309402757075380637840326208284689443097134684860510579624444738873070542021761205399282982413999641046398464887564392575408679504684109612963446786387905063847856421122124701528351063627599047967994620773485938527637264134002349196923547254245566558550928803491730339600889626150316176706406500133833094488523153128469303340406106803319434431531986663584038603476767083427614988350189464107978650379981242200092703283212850585219285381237169951810288926131020839188570980604004738930439807858224188318472330674803593821039916667928409013316301985039072618195652353555645198537203221072229157043023398099042983158437272587829421530643058866244144763660002051407927348912716941698056067749217506102609305276799326147391469539777214753034985095260722237506924543885070893541413798471097285941327314853448044185126941113975837576148465069066475470348649297099343811486221270455079024656354240958937605478135488991565737567312072147746301472385435723559156444772602192760081528938455153966006624640742523818758538990373644297514871782104783831276541109666325620050190943658296325141135806009071841695884702402897024362429894473384746062583530437249636116674588980468938473871423267412432767101020662977062879713376431357588996913904993079139992336267714497527030338709778883222218919872737887737240389021210251483555400152621845015201212945980188010886243568434230280595926643167974277835787055225941950729830543826373154750897232945473240897647846083319151941671499043358628098724203188077376027950398285836550958949469248395092245347593359963323572191244876965883061621560831586506926110121721045626117649321966435109553783553638022864518892960345177003488323031799479324909539612347402764675617141869373542194442671591812919178211094458787687714782744054610545886070283992828447317322295521609482640568664324961252769232690912858534356595472511735239489816710863195736604803439252221055435841507445415052370598382785229910920350167217998608204608595364450359784785500400182492081843678492819223900589664443105794329054542363506989036222974545505187959311716448703542675611760250857778094500587473338381382616563096931846016879284544447393599355518334711645939652052381488188097690326985941288001087823560340612427528211455217844904769875886118368198065771470029292301579122729588092545543203772094353435926937683578100231093306358017014992684350273715334823212222488812110707831912927006273772433041002658147680681277896144746685921224279780934488951333190390257160350703318388625400379373751303027415164694852479164844136962068967467507677542747772218386910774793724031141778448292289846972828022265968006356394562092422103575342343427913786658170022741617778242681156895081364716325114448335443728455996916646612094782707194108564518100096404179863915705826643847626621570748530318779531523628174360205841406401280755830194278553588712447422251070070880470516386615820594268115237818785674601952841152732360977806115448371679910311404368713340655109044689765312030964767524764002023709084545667418533428006655785328272406565885641227003616453738981379298505593697475288202663425230471400252895830960034223718020481409196681709831754249286710585535844597176150338348433007910247437574532645628423585843261100013428516834420196029626692275557772963900756041947591939717169916884887359876908374705151847614793808847738521886924733829483549151191454451194082758110833696748782151834826002696136628359445549219216397031576949323356932527859417395894133001194974620193233222026924806092113629939385411729726169041913329708043287780935057926904677106257047627192166460403606336552977816287936707291776831067063874140895030737752078147677356126127922166405744930079799562134848948537414869364450458531177115312896937539466559393991700496987129947325508473368265012446338975642817932169339667908564160428021465519567086324868277559041185837037659956300160366914720468223678777204437139417472832720257493399155751417288444347556741466513477626940361189861299865188536910190639825582919444631301749683986878805826083878277558168954030455559549992382974859914328288629692628132827995976470291054220982120165160132802687239376273371757204300347607653158516371408979948401866640076973836016197325191760448612354833974288658169063232945814507963448627376086694360879216713130674842701164665386691521729897951228509199634688818653147421261875755919677576646352421165819646141526593290407278523221136742965701490426140018085545165286406046319636033668649370573875806514028691524411590928475009417502629542109675391970563037828513151858761305335486831928497909334874805648324549032076734106778764291246587883017461776898133635515995994318876332235093151365043180525201131055220832015250288679327567548740430990044280883363475061568296601272488598767320914323531786567660289123147909086033755478623175832481829927093024323531110745078373336739056183686627550269478611962170404038077247785921130342638962231352274462893016747713013930035591643238259934270308409561199627170533637195535246525883144042336093048003185531323727963023132889743294448295334956608558730815797851257135650864058601197722252713864095311112834401753540430957934919879156612905391305352255557703559555574053376434335772407450498741795147254038188777627952285371606008444393684889427919525055831607774877776473275390981668453273383589403254689564634214561483947970868304565730959785332309144666414432163826102800440583544728539475760239723411228788196412968730913646964924726073374371389181724332333904389576592777300044747631965428952035253125120719308336259224759606460966467731892106908437397034795393372401445449389484753727963614248274214138682292983596271389641854019413094916241519149507199611867825412825488985255551474991611654249325938330099923058724400772194230512308832573425711237689736970036968249234498922081227107107284467130766547076366393327970433573299563123840992417504415449582561150119016494893897406028147278185929839116110314736581979903509461045554709479393668784118957866644510922558100063107420636684626180960532157490556429959612680459756438081514772935712270152121745972874232863679176722888043169007363724980115657338420291330987065648755542284824502536402910967208371653388069798633997465507500379015675916832797048131499021376213135361087132044087972861931228482144386780539196330339213308685664996869952928843821479141336881698809613993066057194377128226526836685088165964181583852052472036723081365611667916981509971258228955058223122131858860933422419733119128057057780112186501317399907657470468859902196660839239358238813719804177532715493857176774642305906022152165440926246942485592076460511658873933337560159029012987894964736394697340256832812890763804589185128263664052919288117252534265810430575038844051830384014641219675029518373807403381560416538575069583542133083185884379731892480912587820535165612101267288818396110078887219593393323948894708566976311320846927536669325111899230858044225028737804914981170395431287158532134588326560943996762471019123906199865336296040919644462874214850098589010708004994518949372982896599662354925793503423720990336473470834188303943962101988181737928020216359626742993461726051920637025174826016603719797075991953578917830527942192390999218344087786608260347171522648038485053019873584685999903596255700010395646055228140785459937171003817815650148570398753332983258964060888385603811958316458340964193279307475720859642914615966657811473770010493739816873437295473242708061309687519689540553778895019188339868808977576519601454571677197703944650671021924874768358516431426845504577470337120810237804754358860289438093964368198272126396353171706063983283257259244437175111629779108902602304022219999894197422479167888784533370920433491786317009343799728264730871729978263924424569141829159230269336651263815836910761469237330166742904445216230023854746356740500023124924414936515695084501501191375367684789026629870589727989181957466183828770811920941662260128247310948083254532775698211629920152108001753486192232735362503525251218839521884838519963582855750157995766111209070816371863713696821383704723493037257209198933797004340523603930790408790433077053570849516611784070600144139189404936609573361659953697610866088264421610730979132353812417283229067714083548134424577857540897591294309521508883471927012829199367929080100134217517749395603051553285790422055125938395370388108755208972642237530450172998782846012568175789544895632551070769790837872890276348608706229794105979122390132463475993887815162379161780445977042875427492317825312622499468802646736378815773713740085148155979794104235892546134719077168398909108978859232157972695091123322151796098813301241729434488923928479281281068163722945881109075871001871681844496077662818305174762171745258818729164410688975019240555778695203676068121590750180574885366827771643383442825376967920252886190790967553308596389274738649085154193576843972692830406347229875956990266157949112287215724947486729810351227904058012893286311225792521589255122835988277835576504734642787722597366116372790004810140718423393286889283220962796601848763203891157147558488853931636954135316096683949037402180947424186609728273737715513724819205651198253387424889432360054562218190519389333006165660411521021270277546216056278057298070904476305468141622071213048512111406639040020144384137216288722523566198364635931046710965108238067714111088478720461480799418834469875639362662671575108916896948485852753021526106234595506885918730414857191204532858047310417636707616390175531795892550265254163657311302697646250888053445662624210678306519308424765386803566974705166350993423443987178099087782095427490890137454347314090998607838316592782135675061621939319971637554332793947452717920982079347016655322321806296088409084738643886999315568385532828664331980284975869238130015723063886517781574001570140692949455626586861347483763044629947124253288949907874341659085577234046728452922137739867906700921716192491052496309103429872566569808386341736935951263533143806099753066055496594404936789752713113764872035675032291132635051001769681490895822945719210799522888394580642111533897138190455655204458988823976808776102729806221847504574064097764632726435432345520517386976580476266166031218715239208631973415170989327299803323116915327748129601759304925258023117913827468065672428977147379860427233466065677583984193423917434324342287149102859561289211372904839120304306126437520009647523779127084471155351572901632239900508274192359074225479816060079492337914653677393675834276058800505542249805139569242775394758320223741990194314262596943439055403821315464004269382064036823125149997620247629926855934753387394576586744402126705824233396551080854772126237850370042706895491955690046095673312244748474607381920379090646668349503559446295914608596969486314918923049288210640374926090422018588510974268093499696862699572616698811392409156948466875704751479322657661936732142011051016194057556757812691891515118792871120229181262407433266556141479821114338038232867581675724241382000958232366081102463815132825645971476182247193973147186394756465756893225568342082206863327198087574616304287437800322848040325511332741134988804029666606558359324013681965066153813140468496052898402396973510354638081625620036658565912613586541656163383579992772922119183032438603105430785193439929842602307854649463755767860316753711154009882613470563597640446923601299074482734704171015641889201790701134747984823875742013126810476923073269498931980309102137751130498489757301057884845836456448613451695160782428844486071923222096723875025245479733761896109773419033088593304331584555048067796120530695957112367379931498184044560958136045734080497425661892780693102761214011757189721033769564488389991690270367328686720199550304201496385134217569463419330750755793807691740201927778540414167038191196747582932927877706787234124541269473543878634785379020992803207443938532857778327840859534321816783709092075775701636510040088019155452355253393207569466124167870954780646595843964319916331296359909154917602367016473875120473192736066671859001090747656976098216031962329509432920930954151117507845272671578446445061838410945041730803566716786927097471862671999123925499204228116513502379521687214457455581217574860956690917036047358119109855821361920931291579977778975085323652986668118583932412806298386008171565326615058799918622257962869487159959728719496976641537221478064799988178613309633874899498613441370499749374270902836368981080631603963111998372275443401764881381278126351702537664455101081926729724462106846581941195491810564295507418539709725714934327948009184225477681102897700374733972029892535525221962128426989053011324166544042433881842324135473634166834026812111225758306646372170974588086039074189047191922355807177888492582080206192452415710544336809179533172146214371123128893019132657106103551379603548953988014133749045882388790893221647594465088649338834691088852181060211534810162458159352088630345799407874219562375969544802482414665360620654670962413065245914504597438103201862839605960567551432657750548327901364505994291818163287457000938433194220938872879617361171411426146153346864998764013898449724564197798059473553914621921230016294215990737904351659629707941673220984943100452573054318559867455631785983179596267068441823517544273750453977843064731227661075667260055795006086060474493241672860696481442573208459173346165510712641342982356076374405175308790564728225401774193290363654863734839267442593762298306209984146533044533411275005570517574732800479178000906570113446816568982515586496767106828220717297471688478769479798817085780119500737576183773893602420150311025365733951816414122332238152459616846329214013311710248527974147567090177982922891022492144923525703337539620109422593101736604775183631262557230464841130960083800172792085621810401564266826522998501893229255320662740315659738769570291555501267464534374484390312014665210372160129443598189085859762283009768636620700249871967018420877936289203503290722542619651616896835472955867032435458207140854262609911482092246035189845875448069215907105035167681241669390191967838203247422565999421325275884934200896490338067234185810157646222559724553840538906339418134619284693742069267218904762130133722310227715686907119522507184172674209594826045328915543483064624626856930518865319385120211643511781564240243447236069987980161035432592057961919126588467580177616179617858049231264342853776251308286718645407014432726770546678762148915376585692080267574173201929090064785521489076819170941144563226764470902267004248977040506038766884516742729224840006451985233358384471918996757052178090740804683588067656294305364922582547581949454339428012705695746701733032071009599173617477930469478434129447383588679741612496651214448567300977582291322700319304193075363433783100933626816113774608328155051281617639134239212907874129726434958670785871821738122797456394348643276108954766759398590476272559946615236954679531566037462305960736651010176000726366844348073901964399367537682217400379908652968698483750213716757899210657669787819224883333394305463117288678029050433711059142281813810807309689802468260988171844152035348972569829417344612534020631611280075366865236898489576298934056972334841641690376054286795480023330123329034772656655194164561268475759618989607593616193119435838945514613856062369821111360636599670831222699815198299896665521027104332964935156813955736902162970653279558257912936991341407233851154637866618730433213948989897332492020419097365457019775202826550931334466516486595359461465009823778458176695086959719943954067971930354364839172022230392011394813939555756938808783277005438616079578787365432417898775918366013614469058267199005758917411434408484047528994329898288189827669461444246486493273688774453504498558425764562213717862935501186714808003901377230000957490607694206187203630663830741920279154325726817542666299302066512985429803127427104107501171043893733632618826919624509206032862068104334002834197109189646940427965830952529073641819069219253159513269252704485049675656221592259462591835849905075599659598850000142925222999889820429001132690194340830832435018720329445135735104436968938738634432194177646052965614029772787437209067522519531786226118332805891614141714516167773724176697847183545817793915099430726028888229422606581283642444893234534951598302042158917487315147057739111801335000505644100026589880459156942729315451662581039355852736180712141835758742147555543738540192497505149013890698477789710937915724477060251403708698103885604127357785515213042830183417858578694385143774604217104944025744366586043631974009984346606894904277268088204712606484522680954522810680354403265859064320620429553534186628776418204682627119302651916680658962348440032327876181141571308110789358190860225949652137000044583339869531108596676364606117015354343928043545934378610537360463380979357363231461354582483440052834544731148778232232147363072202363818958887145474025117375567724087908009407626067654686677847825892853480098077797222735628754858127852295685646070293837406562175631712375514383588073065488733148894441978713337534298861898553345463765262971816496831056685537799591254923389218472359244778448208917435984438482091686101556871296157884366833262081913542613865325381521898313260357051998115263445434347497624968643634407116147798370663921703011926433349199779212253045074058857606427189678787401294672833047706804180758092431084750384671480124650799001479197721957195859397304879923907106480298261750522911939653102330705144398048174778824047825559044373929725539266118387727270726509370649117943872445592616651755149016911126523956981801420512287872764713801771988436809160641595185152766862447148314850909579269190666107856147238183021532642381119440467435423142516090527949412608333514612306759562294362748176559327803099578446148236540147858155818379759372053834337936753874550980482781068563879672894633543471902180750801628065516599287504781333396328867452727687157821847086161101621476893398017519433931861390216483999599536381511860532151848635299024892811512707109440906784280375246562985837946133704213993099773288928481646909995339112498655339457166077888291930820283946067609447856795214290648576890896550919662745407700720701052987527523770315421920852879673889910340280171576896684303607704600791457640348871683867042751712128072442514264742868168233554116731102826254867778604936978644142587395178496062800686757511399957459657346889557610905740814087175421803244443506030765572864176993351395362517024067027607344011185740229289160808450674113640218289652420959664519840607168838816433018987729557214995371547538112414607163620566666823781490772887007673989384658360803914857584160046930896142466391321990204712684086031135241249379031895309712199396938287506555777995340352527535226867312554967679391821775008681067225992539823929029080981621280995755898850340004862371031127644067373474630076484429615374642605529194823771934074287845848221535008928287428386399791578213666538164195050116527170917812996559110874665578773493880522944418606788135196948330566893801093855923881511121332207775901261834747382058004522998278435455705224078012333021670506988438445375075721139111516238827075434449208711449886412709882914636681710150071602715299644229613122280587946713156220845181640701827846714502293294227140584826598461388547057810453487099888871078101293762727696833215735409503626102397271174771937553990377782078786010930064713154897800663277029956620793956570074725822240949984965772635483693955081487158237147649623692617041889275521041427315369468738582298060959685457958396832787121294227293364948144893530778987408221545967855773491436220339914368279430114154998504044263369262738401908892570972952823863284034718769427820290574347971266882379131233261683557639744535407344847076740129249715490415157891951021803401277418119100507204904917829436659613989871886855459994573216525538942108958146730292211878359982660456546174298195851142735201705895484761093321089684633449574587031072201234530802062311051320644886720688283168146943819859224214551868379218591922018254127726322122369135141719888664397890692568760007828144216024725323117855825774890646022486444882866574989155604251639395357335281388777074528898514287924177187817287386658911136855241291570154184903768689689928902557153127977902449525539162377873030290100643563472114032686278990608872188365913766929903925533992766196280476587444551104035848024588390483261492839584299596534997223570463196943670905235888827459401959167622018495325115931349625756751003539392347086673201958507806787767295807226601420917866812515679076730129977074786968498269339452460943761216542016008718590106427403856941217657701223821382622379061713471249490995702384612565976691148313343994791178118388505341649980679676451880526906645430215495709771015454795905450977671166457789553985470786152842065281267300886294309432753516914525722253660026118273969924587751888082629230729399162648580662285806190141190890308042490164644381715133304579146081933636766438445282771054069405711279013995090341536472526484707723516145117407873730857066679168933388977968166495685469678627377783542569039952412711162015017935932987963915397052989067395720440272464030652911215738103727716962287371147559022570309349540224908565816992649483121521523379153199902223110298469222464383567452084523212121912047906515897584148517869919286162767594505983653937754859920436078683954714875618071710492975736915490088322121541859830520770147885124352745084802087768652645249886601474894777120790928814151302509137018425968382350527479792814337313575773127140398821646309335507961551946325076352391676459897462234879858911661610374945200599194136498178920849675517193367979960729498585094670680667814567758881053502926549265054463917513312274752288327041449277633049414175908361518599738134737991204407898821005724808879167766225929558377225771963296971988524060088063713356051284640003413329112221736395491820186808753862819882379699974662402853638895433300944042644524942477841103778627296562222428836143729153811180286798165118451578893943509905172177997796114029909506775566510119384029700821371613426656379734580371233030025969319243130350062142970362244546249129016457564823934973289215050140367970297381687319236950126690619949828970814085193896916653767014424384040267748772061068670736690613629018728433784336702841184376335204474995885370478851143062966808690093973764289018277296868212273076017727471762682724471720583579206186526884729929491832182943150623448273304463878194886538297248349155405464023358639092758593794977854100233226985672834293530301977583880580711250618664006049002632393914360037614679364620145353021338075734153404689414433140401942390532223762756109342546600326795249394149119403332409444977921005389406549731847559697522941164303194083881770664217715560903902283552852725440675162639627498503219441429644978716464372524234410004456717129118249761694752739675135276326409689347678306993753438560446931248420034750487512320403919720014338788211413212240889198449371565630406291944531030870795726195579680689179138115911067594339359974791923478624106618487054951041292718025922899796276893297970785317267457935033650466047985772072355887602238796181051946106970830317440481769886010430267217400507553239556761949679614817384408269538956487536195284155714002484782490707061071782902361666195025157852764703583918958514939507779862871710502736220961110744034736451918069711735173337309116797428503342619120176158389326582463106140096674828465832382789547322909964478108066286245634038405166402383144753693252122804318979245512265562652962361972690993802270040126360478986579325403158458346909485749839430163005308730056334433496532986222533441727099160955736010814834088012767977072421426146382253738166470118685755223180218307858396101520120428811763296607013193186993208380009732930017177571136751721169518949793598866653450492599503086665798180484871607931991495060350085069172064484695419072700114776990545074348248771402150433860840014395559199606317362412867647666232741263619840013073768499969822416264055119541341713241044473779228635250752090701023433610925981491878183453328496926662640362063184027203054767595202928501545106334536193731299593873249443274138109826595438019229188226838927378322068053433940078555108961513491128574281806659514386632446838494810039049850166939671759095383493515251458516418130346865718725560292016264449423662621169509318489153390894559945513744396226657584958311455488570423330668403046693318672416365586750246429429896614020914834365709553354974050230958568589529089283286498519390180459963935338073377221294021981996007329749592387228300230358775321887306443534036859071366587652929332502264154957318956595162172224033218482540747475600870009978632242048696973412437935223599445258824770604553884482987558377974143550574205538742094474555669627648013442241014361557298204743299991078775439418066145514062047629511119221686282889242019327487034721680809324924420223600783014395012652424717932575265013749006707197768135747431307913357509402479419697023319715882849436357849754074847011648764712200548973063276070730467024715450650272210790390444917967891332858253779141209578853441636468467573070287193400459754872950823556385595408159504881779468697794414681888539629702431703805509759498173327196776013749212506532082825000869766825231509222860191650375533365784301280967763645348122584535852190727622998998206540330599014888193743917468847508720005847789025898058974113871378209865951225845550543729444615860315625427798886022899623363652654400793665321065836269430852938091515293666534419087107893746246741754707588087863159938350238717110900887429919964166332182981703606368247418375459454439384226925556193820155272775120078919286748717712144573113904394021301656682366664036242238740718369873556553570268950507761314613477868797506599850195740021220779126863544457849145888023212934063049106419293912532606681416754886604899615680529119826602707636662260214397720081339542842597085297554488497090975553873086343514570487555631628526470798436547134424681059345565618714749729827898904818593063160568724345618117891822457444967976457689727085247878364138070425539741877582767989473013562553020973000871511402471944655369494842253065013427401058024761837082036171508637174590520013123391942017290575684980198683503993029863093377741747223676625440595132690480864324785881975685438546192779788891378064069253139184826129735304209357210597830678032342499031952991327620717768179870561662857001688842918683274374233219261093977744040657948093305985174708311362843861223735111444500021671955862037487995029811131775098357447119739066541522268657034575499642677815883565420005375116344595721772643300128889872638112828630726858029218859763010064060684315431552119222417529404317093966031883958882055210950865265273320541807407793367836166671831813107076165156457438179490838306961087946108696402508507211280378302856176143613209242096741540998227262780484621552463896968724582341395626994768405110330498512048458721204322870997710861078530450005948472127180217285751438625496803747108573362011379289889357177440864945290006184563144356055780192271037212527946109065004532160246610562715364197112323933114315192400287922933298366099551896907778373714327327391048754400196918494293237928195034888377735198990471061989128062214938821619881092792032297660605389337851349859386454805659552399373173641586211237455548500043413507686990713828234386352436597588762448958263650041259281747281271591495341798735728164938011235747142252018630413673922234368384437198072947886445795179833202423245266443662326061231473109257155635427569105615189075849194120576829663412628916050490690389334494660959496077258255185237946803646514843750931653328539268898456031180435993395798219225391648280263252328482689765277140067621220629710871155119822103653383955014191070865115829535521260614333681870872531428860299984752476637091314099224578963475105864136465723653296360519261414742186872372055758483940225023475290285337736166863161070893460366759289571305528538293790044148601146352445743324717999056831177190131998277104793345377439148289038913454751736516833241254790649770390955898398618552999567062996029745359137750585224189086706738152926450500753376436861062385284394837551070029655225302320119726520251433965161801590568842412069195087025298903192608796308713469485773763174547454721944343534185911272916380286033156763276714631606818027840523230363797644351274100064231975444462124893329578543503015472152388733511537145252951898037621628247733745780384805199762784688299518252902719143401280081230552096770677761871914248614113710513337258335733584166315298186159448386336459224309840227301659505070867409333407570970927696361324223355744507790970536833478617914828056223781020840265312495296264626983552370164957475325261437958020626761020413885040992731259550974946745323798775377686563560716374246354384664916813902743018290447741806444822830264992633012289891399443985972497773142163512396804988105306197912846666045379630925182040802531939892291849165200235455678741911508835110780329116642839194073077166413155021505302625637436023155410851580243834995852719555297602434131047914523356447701203694848049540739998128188168001781630803368573169356084427582540961918962849272734874562561523119096822479589179922278951958435227997296677181814713590374268529390757405637789197632885565953381533974300613177038155476298681506233388801190002752956595541616101328277636775035733640477321736331843851422342735283822368427640375646512262971748166249680370381189238350424817722297887309967191473723153200613893438182350565675024953954772486409822112585890368898164254761171182029427916696932132286438397789408589993098162319013686696945696678101054082838200150873048366666430606420829090716685693090908478659448636343530890039151208022872401579781517147613201490583344119525104533896235909360452126709148803357868284377283851600691352838742832607586716852257169067918789881812128109370130331234217723533625110234131053856117269606025206921450116248456220894531546669481200806191149833553481885907769664078042125841972661905903832415713928682952218350980168220290554173677707636735980286883191838120431692045381552596786986830358799684828366234152736782660874720153759984048774802542619070710454089518020623139663939574786135753503958241138705402267351240860214894396076288804444642674513769691042770796067530242899828386197201070169306914591855276665742253432611173290847213750679081044371050260385400897088708313960850483186476601262206091574442707660651510205256824612088507869366584266491611673193264769477922414327131469203943655663237541456889728081539077488454553751451208600416261031310376252396343736163505483477018277151690846650042056819085746629004092881560246063665021926457692368267374953099495839523261087838917818232961276125087238848179987650860281975490600013884328657490657595914640559038039443604113316319091043117018223826804049123207566507804177814782877791867654268112135598337919309827856049481496882819986003767052400329674307792142383594090693453839093804876667937741936654255184116085724612349241860659567911561894689690412436089983833415995173336013702987771759248346836069804383334368346246655502508617337372793799792953897493551946500783966463943061037966785079036177709983027638279459816566046098684728083061172856518731453178050013808088695031544937472472617302860665695203317732932952307496136812173611473626614212937660906814357178036520922232482729852844548443498345475509853806151914616768926626437696878861436096741623920106770697339906438501836243616712101639417175687159735033979697978857374559258458430647164805554702305554653256170930580775670765941454551922807936582580045340587447054838766315567312385681535024068193294703503117567439861794138247573356413246244841616108675401558950993021473553295982211279060741808914471851950646068390087385955001031322649514898911259627964161502002805342874666014534622254917048560848111746104817225626763934799647036999718199703622668952848122626223234817573915856631563233381879002574091795666183601517645438110664490890706447103126277715794954835380778462010809760542127209965640908598263269600170569053999161609935815495182361241948611808509057013953210724599814201924957271206763620856444546232811184521945034870928012284433079938448580859611960995440029222665350857874085076739127835471185033076931759523713412995685659398916230774410560702995856444234425723515774489643144275977440024817802000035451844867638252306899128946111790712042569811176752945901533121970212311500433653593570097726102871116318993336380211023855430683330873296322541903256533089812595062211348226719402207472235655158366235633026499639371458859281846585586167584782521477438350459482854611165668817215311835068488407590107014083393564247263256819653356109159819105153105637555864762718480425075427978622243691258763096293913772343878773937805900419940576828115039113774774068311502206229912532819645472284625440309023290180912388451254162977430931070759240472970764895370965291314156036410138125055108260396773927459156291185100515125789585665685767713340156834961540095173200713985763595768871300721213127344654444310875555946636900436520392357423438352244417823685362540294760882209257153934667338336268635121978778990784960816887013751844226503153242501876534962781108685146569325214949923767104179359607664308065901088381495140620546927348610752797045567765067636225641312384365680895771744947585947060794555152670925834767432392521892531493816754557859341184577265512865793532466562077274644099653406716490498886317570499371075523158521646486006438660442670381633765424569288361940053652002906239558690052332166274965794346968511619909686716097081057792898567233751426606562062137418911934760487512499839287631867920380256661248615627136170684524517465300210581382520441159796178295435587585619711709689712174036902823759728555803578893509352549731673266777898959791410329047988399011227242292569486921085377146070085971057140834742663137753866895494629654792786124453491349968614403854867480423452258886708621813923662155781642753672667200295101432989533005614553927426625372363864019709460325261479055236530394883767620571534974420364696018951399934807425457612594435220813625420099833339544657905979198533282220031684471578717765545955605741454422138298057156585196379255094794784993387702122219244236934705758274904431530433839421298681420197254132462289217219656237552512580733480872411155780205459499328153513655826323366220860887803128246847231688447162938645905952825431843422613709406023653301941859886242880234271450969918994392305591963021770721175988205033715913812444747853878841616896933042924066611911064049568112529236929186676607305608688904951985348718178333109026066058379718409160623225619096559044482977818293750910654971556397741821805113783727965967322522733150195270913467021794827093706247164620231369938985567347295356947606704086468176320423361758645036236592107563955384956721887860949388417123330261178804849823236495865453091168217066228784540819159128046336363046166189061600748486907877731979621719149411108567472385212470056542734312090700268039354548008954347777313773723649177475744462854324383590203085770149373300347703039844350263456891090371337230363936932141348524805512236777291333957116883122948221840701236885727957149223759000772221243510800927539238295123820301733715981007212916807890904731661561309796411145483472809632197466907946332963909121322220566466962933187655374513824185217422621240857519512020305673020679792679711609817915453637142740783796737162506182207710714552593886829065723856737407805902672991963580370383545314160639984185386006318258170259293297818125839706224034358904802507582290192228807500035493958353870001163486277952413157793874825978100627894401145277351409651999828507773038104525037425713143125118942913798725832342401771931745330291536097866249958736795519517468721830321304871600027965808068599975700311466919010414346211574199294806107068192232064974632227522176810931967464167713592017046304575563946261331526039340433941363173666780074935377170133783996680038918039700559260356890212769878052563196585149821787397798019331704345613724559020917569740584736063675455462437861231461346136563742029905942556086513885479161850571837631277910533939581430374509437775376386820349916929484069849302183471394175172118362473732811257293141556176799426412168619507969978258375232432199907212074244231459172862605819914720015304844349989184550878607515273716945257030075924890975970616777995294657531631612613478851854375658746053607689814971860653634398022318314494718869294866119141960210046602676479708197422957200716751918989227181032181689758503890943107672139436974720012799183733560860155073458572285499196245083919379576519842254290229805335385802485371882620891285316695519807887221692684092627307799537149926554393627036763870733651810601552735239077529188216726173989799736381284928784938391055426453802388126260283199949578290298483432766056589704318355213498976455572182637779968803810902135388435262618951730184783494214934891645179515920103104812503751945495390877618738424697429232141807889567074151085784414519088820385337455486591156987154918001280699770262632470691755568375395308509199547076518450744343907026017305008495569580325528423064451894106124235223925079236800968589453440542864379285718644349294726597953363420318020764317828745522475279427713348085170665811345655366638658746867736953136545033859662485405437292236779843426179215702248454812089930181062083133892099507240304287958287543685436953615628507360596753657465643089336222718098007721054695042678900810702856098554482500620512833715007896097781630193884046301193143869297008987132468990828627481652630076339960306165524786010506038178607404196996021551517498944399852943489829758972600013811927638542324488899828366005423256595867655151669462297063031926475579730487504520144626632252112751290278113533889080558495626168065157598430654880982025630403281384976890696910768268212557842094893447829596471881970691634998081085594396929663549647192344557022898494388659176968774071996652363310186755582082936001401308630477609417454074558205976251273566561705138191512894710774147421847173242947799034956767448503697322217699568174875265530398927112785281383662807160550067756411722108067389179665776343315486423569473406117818269706644061501441938787718171797265721373303087304238677358437391244264403556549262361975318767917096784285320538512428743177627030906029682312725611558083714611202918520677175126412800157281410993997378630583974160736701978956234861585826391032255718106549758240025334961289437514759789656526809841292368231640148893146449976475241711488090586814397124116320879173035443503417822320265297432230467078036346048701585303150755691747132890898217270104843139237256391477325380420535243904240235875537266640196886242931623294623227753384613480319683763152978968717282780360615569835952946511123651847050922196394087074926313031494730544309511507699061211061709510544529541699480455447285017868172823849023220922519670326466949460534376404532657707242996431262475177976263747470936683606802400922982698679309447069927613027552551157037965807632934546252764289075603960555565401347682379474664445537995570647740410054520955168184285031733783648988039944186496319337994211350283589018990113930103847745834739721900091733285606118796672688299352887736537394146985936409249736458936628010938492622594141908183003675998556127690014132377955411897418673525700881378167814231340941157904065283723361136865527563520497641047054476715256074631431548688441429410701990557637707584268945398400656153283372290406138385645715056111331033221609044306002155728698774698893548180181001439022089187636946677249631006877458735669247271412215180475892958910401189549286154429796434938096897208616769826241553829609861348898967026050708097392339123222943326912848910443531983693625930193607122606348866536523113585723618286601157888358819239157016143034073217011519277596052621181465009697148690572753716745573898029760737658539499954845813809447410131542277892622772904570343925758279467419755012744986996711151334930184374617431791766498147940608209397285895210489872588741043544628659362363924136718451626713742738309931332662123285566839945774308227432093962341706041918160490871736239944581884707759190194315812129216076131788863183192081072876325080431964370043204005189187931840233134499605182553114925676782970577758366861289485976313985555667960232366761130413497850171749491574090553548570270732190197175278733229220569359556358230843656451510832919072374610494815961056626409580399698878122604385884620610918071687601976494866927349411962345177540557419480194156764036767779854368419069889024643796509052499725319018140023593164068033786736448959688405287347472427740218391436235911725564711756171552202049304082041977692742292956007722244516150583521619402725898962466018408211172718301055224846752897114605911168686832586239238875507936887109394204549237474456400603687675294085993404426979094445262821179252995695720732189187768232738927755556170073952101872526014212770628595008994277869002136886763863933602815359015557675729405187858663991968126503913268311300360519718419388127717274341835792732593557928073246654116797863336250018201777371863893140013324666358073273566312455504379342142928147424892899784590687063506320994130254102840353507033089018329826527550922760365967623367305250360706219750485904114708217103340254919932313589390559252253948602150941380320080536049645066593212351774462592147371353928425751553490362517020296176343928430290593554707486475684332261528341480268504995026522249965513502358438587927543901899025144351229584204470556096321784210704011428151334687787432399556080243742225819433105755801305928659021325361190542894329326085490144012607442306903792138222165897272139360618777332619413439527752252063209275318159228541260431638592025282175325649574599904199627998451977751538794196588185246898360245422353834486250948062389229748428582858106314514472254956294724948382527183569215690851430617205457845419387199828044409605141735027832315001270426197038070249104851975057388101907934679987764606219071846244904625407674962929290960004758839821260543258291443952200773932985814122813542282063881590111637012540315770627264887042325965641365229645326693957843106149762115837715923002842918400056694658954517105048259015043779201917163641111438768853510569012070675974527215847191846778904970156335542235045339598361879656566933133369021567591869086651847023182148442141886291209151135329583652458645291546136553610639627667462966327155084844212209629755984413208171906463831095534030285025887297473897548722598094801035340751679804726949789385430001283092673034450124060782448484670354151001104673573109903794985522648263807731971290719289390532369924145975725885241022704038257082899514444949324560782762946205191239649756304959348529339623949627824377149396458322085272515602460731474746720608328297331932672279262521789360799576875178884422315538062253332513881308287024658444883764304409098784929184001623272001915711889390924298225613997260733645919378971282231939184182383400349038897972986102349954640572934279388550697886061794462475596751104362745765171076516747342421039885309138230694137029521873093106114481369229684275541607130270573169957414114678061341829807588793122492211408187626000436096155580591475113445693785022817757441126366489403139983458071707265817152802936954368027557706128586050404955168699260039798657162043801688587274330093070749888912490649988795682008187562813934363766756208141344874475288689233632653913445091333954545784985548739538792363356294776485133526980241287047302853336304123225815925670152898779596190774938872022386623931701148746739644866104044469456282631312745121038774071720130331431056589321628344930487636942960288420419527143840365765013919776739385651828868290258960330170707997330468218994676723827616123801655472299830438150883926147252934286493061401832144246873090838348443441719712181673413849539471321192603936298120164001231583015273148948420604898269450816648737581806895715438927129205079583558686985347065168342279636331075729512757058453740736988094164155366782181196848853854129900708485736419030356867165844869670434158754994882306114137122492296562951340692698499392951372373978236207516194826771574676446746278909902485940395355323343991871023664933460935058551797139231025665516721302760110700940068537447898112404367981861237412965604805062329279518450901727390518060422902368863274164662749028440976060529960215551971291679708286464791608697961451379106244565118770524813361473684517761174771920761338258876337035074563595288692630475037372707161096864079546296906843516327509137821177142902028623576842405654620807746746015662067122943958008568757040548675726392364167386657841461687702393174705140361910009945365471683640811912711487523993215366037867109691134176205773156546639743724558976201431122232137312393609692149835879915433687631375434089177229433965536720745672671823900272736839318728422992159384703382963016331497934174181925177885461274039268244584860586441719018075388059098925124419934018777974692944897180408695611148052424495255352096788375228845164634770644350533685561624478354443048437144752033655697838730626350854224365653531675976198170844918229182433066953255379787570969265873113965145317290916273216670153956646343746603262889622106830126940087199952652177587200087759535292064269486151835965346312936546207037498175753798348179816718695917646114314157568309243206107920119282293886260439422022408780591096900494989143542018809089750660709537382103084398653547788945116092136094826822259071780236142713096110723929135913518461843454081188791851486576169245317061529088162694939139277732872171449107035942574043936372777698394784189331956279108168103099345295356721898713709909222022480457141739900279551660194442538251906703875279150051969547556313800228867486313107801224671778667322409000216878792143734523329520920904416401741168329622079694815710315758069697166875633850753381815944595626750522647604153819982121043499526337478161416252554660981354275935003591513731294049983874650107799187446634627495597113119138664111686140893054684051958794694212713949809428942038177580652268420654448056516812350825277781811605162496538013466989429463386453435982286287131494755170406677838988708801614996795012148171198969731379850467090702361653218794655578106629663912507799156485430943047434501721579955395350745700618301985395073318683615283603072438367757051458004366127550948405503990812696366113096682335389989505307734613441567763435993509381775502632137587431758425550870939406624362597345593562556346539882334010352150047545995254388845268196160072915999474515475358331420476329915878402160775553644769052822642543050095500392037858868676127328295001664242554658508979956584340160423914420032267455947639817781146215805221932477610065737736169310976613008030861201149371706071922851273053240324559299874022069057554705553281681488346951390772586749362515018695523113412185413574019920614617641674212350438068170202637624885787879585612382653922791916740142100107445128425766203314882022415053153011898984904970953565202780123720945199986048778968539880391404219304419631502184228459612760713622550787991842154978880981190203681930002446831681680534265263342732941415141755291709966207138821486115920881388842294550527278911564925944910557134792802470324908924967947496625329275018375531987243288087060942099116231400649891555864202396449130531820291219133931526920642081545496773722441582697277472400377017923376542212255989851061728967733875058972124675504647299734695686522214031585945757346566320567765654101404399386075050844241498796384102754015196748082185210191163861667882448405345052296311490661341874596360601863107763995787566944121156496401548862961139830787203076238462117200929045827122160118150576512982645789151724584420194102601268916072684853774861203923883092984345229175576876640568244873832435400326837652481285277028454002177639462521033207374586848756698936365891358286508235287046625481063188805287844088614577543100875410575819033312625941268057118906660335760213484688073660623566018958395416149436635984123386780747801139078267092478367752111376388426346084748654307148654340473542276862248957450396395901899750918695865665617086677422200471578869749805436351197609752474714766169192364669142033530154764488447841095872966928721945012627414147582926718407279433680019904722787743002220778982841439146200479376677039958037362035067759886240388028836397810427288834240820735971381809339530726954017611790404298125917994503798825474358277378317715802248098029049573675545090975568656422836473147904740943514709715019464401522011767060962787901924079116673447184828221177076272867650873709936486546297512178547284864261855304650030591700103107361849976537757050384071383259300112846339912370514002366361293640924290110831927296410302794762576617698728307943595139607714815720025894740992271825223550045237832298279810445503561614270429851430715637240274626914017831064221455702096170106211138893884841636421952886766214336051630805924012446015691305122842904575987472730911587769375064569089030276433167199153247411365860874833709612868646726770935063001056259288102053927716416405539531927930172988787558245055883994991644063992968383514628401523556627448385739341356537329044068325839081616681907283544904148522332924240203998511243061123610289287488172445233990832582996176032765741879033234545609465378180078233871304860226055523610098333481886312335545268300059550614532898810928349049752003573723016115680379389220322945623349086082044496707909951945957687795003925171602824669292901237133028209574268662777477897140120346030269272590410580870965999431277392953190388243152242864494272175343980314256083457003748024293057311625465573510673385119307593559757619396503447764830788416743689905505784393511903273932384417433814125054447708462364614859190724003879597902715894291197490085871747645811024540497205031032728014811996621543376122226041507196509739369909284344170286231189507151324989778977459339614899545213256450381109173747863289697174578646025840847247944228785658413866282062280986778060857199132069261505438691589110342194258242792736460761473931436414474006053856968503426765126403393038941238152920737713085706107704293107384567809480492552454429763421635581054896385902071477509336131879048272730749695779943685422926033887989885351351109130602189514700344580821259232668945596942440986986258203353493834454591515004421039219998330315927331395770522738939632354315642603751754959254874599861030072738892964629040580398254202636611482630251479257389280965937753471840139969781747534521178090079672818329711415178351776734847935364870122421679053810600586429714875186891023854172835613520388750663314952949120815943583886435002619910268283974049126414902702041237928614076870329408076639142080119414918681497109641080381889808074475572717095312514761928131314433372110812915325625779168259563319192231431510381239459910177794929400602746644232647669175654307132323719678172183977374648396620334220993622076265035598705657718812967978378487526708863373446414085975376311886726780915227208527966467942523717454723500913737784279903358275340417190229113623270338127425631112373016187012121598993907321386839847163140149322015391718789922350595582246748800939015640632468219539130121447507312344858527095747937997247341281024445706760722173567554555671191269518377086001714751983194694821285561910620236008812382463497816517155027713971756252131981670779494506137314277765440891997892186736274500140200870646238896981466348865238182192291787482904651446031844307462066933330008833674245195679692187025981583258302523484976925171770595966661312090762184499729121978908521698496323645418803167132361789910264163619834625932070166627862253128269561848098047147608958103337134422667084181149029019089489596723233989659487795596506769392663235216563051975273657991907704124477056122786863658821619694796261749475834692287575010852303215261409432127551280784810124708647437549586610191039338672827416122088595352687763067058917128573072739686201167587716259098072008192698762872422531480864479775275879041640848853070467781665978955831777118532640511683789307363749152988576796327277593045241297073098618751852440823413757701960030120280414223366167741562873861107565920755332667004594016113125960645364187580827059009718151157280929363460139465998141911156643143666513168946974364433995847557651477444107254503687272274878516608396786931529712267255821054730094501832471059321643947995557392213238460214606348252497833514723601577421321899825352422130265978264658273491417000834706428342456171463775690735389967700848935041772113786583725685965823297697130286528908865268864217008606016289083109597838614923435931556588382392711181229023548237609929523581820763962915964847997725727323328919542517689449837537798561007236576395097639636969985363767024389184509421777306582598925419772326124816439736276372394241042477154845415278451146790387990129419840358137228897661227136972498106766131493039658105364827379442490694041611946862737815435567410760752265595382871744025808745917279721225089653197213058706687996172360358306016183928104171832535931487292972794497928572214525731424804537996562731365826380210285759155988184831051166991373906592476205191785397778196601206235009994762781938381709801283190767816605725541847826475188556720474042727879864641107364499043642664395821274354653416286143991861576283457511750555040388082890810084246795543947884525477650855315435394391496562756184213482602673378470927214272013736855439296797409713453204277746191155171926784792856131593656427327991004200155531222466549797059340393313321742388852211742437434330319565354545418259165489812670885533010870333917652388251079341577773792145473188046068812195781689423738851868998665131230638722377438569358847061927545495315120187021589943501091731723140860434618555975564858367814356529716321380730344479580304709058814318068236707971641044418074619716464485229228190017720626626869738399681633939529927200600891931455956675334752384615826278195335509338844890786867237386143078735698227234211263547695470763262692357111892840271074101998716854795736186544490336464766357180526722092249122732631219614660715135313650134296058266755075757287185019791397877580144028840877292128755490314075770608707261812878100177785548957136285131481017472144712112680010525955870451906597405306231548081837766901317356274807873879046312305594930503491298788105062003485706485436883383351285396372700843459575070664069706935797468305260552828691310223258420694611028110340292230708162198897809933714463668065958614375859125679647755341775176051047038285205559135613817504833346824188026219378983707658306584379235502800893458605570613556697964340807205908042020474441015755268520184386164601825783885088413641441520822201637797079660794995718109555235800402008908150865113741827409672167023769056140467176396658120760653896070991030569170023996927235018959169444748736630507910040253560511176635715567882370752517718104526339123013412965810059211517425764468954028067010312387111097345220346679092916399816346241123114908778911462596291832627148381657915244421484065551952471421632186644164254299993271220680653507293668981161908019008018395278133325468968702729179874482471650057253759798574601028374616303397334371873259362586051397039185377056894100699160187813524636954583071556211575758939101203212548946887146435303556553001409650150975798885445719398676506418049121298286877495220313148407082313679997433089397198591316256845197413959863885042325824432402126570413839897706775351347471403239047498004938095799759495978870048939910144490227506535207766947037433446319978428053719431719347614253714290832143996996915647025063579531361668351695966501128150527764360906497416001320772470926079458257856986794111846845399215918508672838582165398205134024527816064190423681742172925876447151271717292856749581913538057319987789079676353153789906343192036442156327406853176068771615085560609882190514254867411369777135352430361479014005543898313699558210060260435344733510822857311599388808573401913281256149278947058301203712309917183173639930379631916050313265237599113846367629755988295105203685795643810393553187391884395846250932610350029827936360917604630396675671121984559082075640730591410020856524812868575836910553071021956844769983734170662674229904577981139952717158030504317198033687327717448073439873489497187755906713586357631360413371648990589773299350600489732231369894904792553679339939182115403934839233897520210278915347868223988283763107786120471132383544932270804885699820915614948578876796439332175645148772390763923168747904818151182987523318799546092008730219083002265414679036767791484072963605350583571771115115109928421179210017166078121095277667237936849484032534392759525172033606319294861144646234044747124588393328498947347382096646564679233716659264971162608768105571322859217234969599002547593578956463505315843734301600315884179448625295020450522958526103399018818235036056047308754623843177396064585248748064844321590945100516899818147546780913987179803136213605437375152525948568800549857793332093906502067192644618807557292976659216450066134068851779803937025355940685109631001233058011702855337909618591384808513159956659611073489939894746448512963517887157063916385476584972656381750968496496022249177913539454706906627530815417108965020199433902245061713205567394046247569081084764267461430999703238187208833806191660214260938214471361833084317412176011788179995234052021343086741231817425032553972562578101602186304089327594482347391860504180055218351930272227697382240199580502330532650842480865447541083164158014399556412908681940238450813816232076319623745685787642434717302634963133168650325451174960793883186076938296004591469902214590103144022018965259567906157586826372613961483078215837904685999288285460227849232733789761043550698921521386714453117710370186400509455410893014338483964534897961993837037859392389728009486143191325988321961586056609443401145603797734160569828887034423878620462930753734801011597588930366962918279848935686915674157005914493682422220124181132992964524969817847872051641788650931245907575798203570162527855920848281377538927671927062506251599473569444641410211363221979292680427950784636816255126573073308615897085019308611092690076363217827694775444736189015992733178128829213064715852635657343412751092516485332405392643803986831428294201639715676515633643742499826885246415567212815901237413927757709816880290487260949593348154095237926817767576735429319952699292028528217143812630488189340367122747716175907293887092275315906452939963639211417180010303560719823840804054425389060513676387746235850411765673572960468902092840520868424121923230616348278647977428097388665462702056922189547265827927029355581536000907296669891241283639528139548870295101405170392876546149938233615960552471387577712933302655037183015786091706564148070558064174685300530364673818274760941936506034480245485976771282638158862582538674688631751647793415517351393091500128616025004174471433207914048811778337675043998242942376091078397446093294359148073310708288384982281371618038184316094382318416507479544012555633363668415993875594698892674889785947349553855915990127442735188124457055100799083802826974788311440716798460669859960937428750115420043332012104430903315620205769308269425418870381739979419455452445853881441297177248572617282654461476482385448688606445262360103279348329424425970715161784914716458229942794560790701991821390792735032156133101845044212496268432383335705094459995828498771009633015725785481136906143035574659461904901486468505139647384559580539225702622459447558305942445281926036514337494662143601408756486087940591558128923753217402067833383253347246904211360284594881877395896532555064549838692329277413310842944503072562595828671488690808920487381536710294746958513469063702861018847675164652180612000193257607203990304318461598648774412286744707178248127815870875448297503511599817495327092804391529344325240041761104104944291867371165872355059309786154582308876025367798410964241925939585665943041396980476206347836228531194144422578847099841970032088357627704648988195745319762624606415715936332439930059517541484465112250275281798621467782478314448709780191184213201221907591144352220381935415901315319240567089503531992425201692164700812493215227622900725802034480003977855841232863307381356934906990002954905104092378967990934851518209028467172526109367456868412677433000049653455351884977633712248127718926191984570635992377536110524782716412233622610803410631026922296113788592060633032604275959585183475559704227613429248900794160410318965094431510487791925884977742965618284903085218357183862261565644273443583934185811984851793344419981637867309551598582283957674384159318022603208555417853933319890671239082501805534592168491929426864268450201636505254755770242672820457368589804723286193254169752355006198070628618059354142962531078818692678804949298609229222599220750046587463965406841220341280990562028852388397896510521896483158863105414276290031883563317454018225687011956679469943646767850411668218719022726045866431243035682517227327959999215375739115255839395771298977619464445876920563409858585848263703351796968710900230763160813523895579379265178386991190125102458323907003752853804353760599996368297538056550704029001019075321145313305456866724661074302025691500268134620008140908666142167462972403990104675707309341573533502498594918931207900547109299989299149577673737713634321172511156449747904965009016705588742478930451167316345984122189762927444667564495982892065327333552410310812942448466545667816570917869955233024768682380627279436102005472787880587931299080110540906260213425837115220192842566292519991906372344612232295585097671382274419780962921189550988460051692690675585176698833403642277327100030407783319437554353458431989187845940128752442022469186035085666597463371477283772687417796374938152868787889272493833053049058617418209696393505188770437686474696950335190065521573425794043847628181524477876295873927763776237094303997044464478392194050072714243989175361613978435858210820166559285348721286591535659762999868236283335039512209973900287102368391626364251003739416428523759671410838192677005846054823971858509942398701458207816010678120424944342986236950900429596657499311118824901681850205227502324789632868432093416542208940555836217893069699814390287912120516594320447572019482179832460817916741836245655567381630606805554359669102544091337493152379833699435451489865267865321817175125019125702706044077337301977584338858628236387854389339901564529326686352931884498911593317121690646793881241170045246477707289251167343322571782946942704935869205922215913205246174511401143666763809513617741599337971392475288511490001546458204303546913874212416004804864776320320207451115466215640038882848514193795709572179931161144608718068735944986362414159515178454697039829704055755636988602848747078821159109301026991526884925987081401649423238611365973587638316743743469162116919223471264099232580405788769753880367389007461233494606692501463994793719801168550921503214260747781675153663433018624317271522168320158119373882240657695344241635130298682669897723540728215718265530944385289425369980189822191546187448152035294132380918497449026135929582127759238863022847977942940110905112202027824514458441156047799388632463479906012344527014264011101310748477022283247164879574122804191743697514668494672871527068091369685042462496491122444232409193185372918908357748093353372766133283364505432504511856407370474983475090894520122364862422884850729161325220908848437649949217886722353867422606232849576896703999253631527650330033629833402155129440210976980304105472438662980518562982376720174188145402840474541765204349563647851735747020451678484245709493354878149903585296584894752639299130979422078852267599999747680651913850129830217676488879772450326107478239126801547925439388529045669754651908314122625828718848150228442189012334129297448513412779349524564434225097932246175546866831296649704517838403693197901796316430237700637354397321192398120128625740467362140065860196475967994778863940027946043681907658377267066626774192893189942152171299765574792958073340325925385386536692295780614018448853122393779070948761304759089788692486592253018991292104770954811369637645051737749328387448434405782057275462324231861307349413846298564627493659526434802715163366572811723441650584276679480553402291388618877670335303685027597862817628287281965054559964678186810695467775001440427035936440323480871863645924633116626493875880709365190091440017572183757337632544061156455137658933905968378640859541157506942878190612096226462146687318585106639267318029911660398234070733785023231754957520795302910165951958150934771662449388561889005156404462650545578198998462389834005841657249370838020774093026792751887011248147334513635573138216554250244901792666058046486789369188674411295833416473770797021334228246274297070758287915225698714681534899957924991250646964821850266268501847336335113464452365300623729358844939749858086172955905282480913722105099883171989289384599932614285259914205390958651817646442167660597924968830535440532929736694176370512281375706647856601240078978362131444954650908525262509047819555577053242632798357193490006366610081641958271891465528300023276410387750816899165355273555058688282505769543805773510212633715621074121306535298486047175015508349270718295917536656858344266807386170830860703754536372754708846985059035128925875838259934480439262454655045300653971680286202313055476340277632297767404001235710295807420450927724254171046227481903409837244753441461633049762464149555534164720973224533647297272021196723511773241004322842754780751294010968686186358472843209017291454408433235099947288118774805849569910476807989463885286431706829725559847391343293594157272115581796756452719789467650549345155662709368421052018325786582734293922910958967458734924371937431700063098874524665579854576538459646703014651470201482781590091824441315102021812131540698506333254713331668960618113215195667563910794123563955938395498190780984996983682801623826933996104659915175341159248314458606697409775451596095622808958700710225826973812182503400941516755255616636679470369234132692522233983884657382042475862304201033401594261344248900380762245007273990342666809084891763844598975804657455789192716481729511029847209559057196767184528874772779778150788770449352414779864132416431091491170713151895390658366384214430306443682012262487375864574129358589000345839177061263258421810702722136752617342085447793090272990294116666329305585824034950942334262012628098788274128697772316334887372346127281596449668727463412345765684166986978427750099050818162331941904431041790566116501941976801788221036819923986982968150604351861009738730640770600908663585317563587229233434940169842260660277943619769954418059211826505034347691893357592471052621030023940971669121270021210978783391025011744633677722511111729060977659515707606281448969764373304966698968967881720104442393613620715636517401747061594096788079185619053921867340543466878609400870136840223851205191703026082113829481349581656263720732475156734418306168852573529108678700460303131013572429474125250993110198453650265599604131871861230206906598850081113545671736993408553971655180599623202288582877059525522406869815012671444359046973341979370132768291234289416672572946328433651282101934944277091104305354488063443792063500262067691733871162936055828752795397059169811627771919221994713070599610566966055111013799832729598518403074892320038905703004851490759698201682219931782045534362486752673502910555124479046955263883034902939624642007704929737043646719962625966945473000890013675952678281585529425370165442343734216103175094035826922362010667072671156971728848194538321202160093724002398532173982459512188479713230660710071627254282686639234860882055981138737601917334061023971837632337764517404245444712575138174307528284492904470286378099707102849792145558805036452890759072732207040092256633856479573565768291582852079252963645515195986364603597586778841677138419056393395873206682187098082261343928954979224095628044806494537424539623679927590623761569531903617566944508313320941776812410872928658519911077226219947335195231830638667211650143400443720686648125605369738980725553395114684963342219167343260572165659818655882137971471308768779169631060671351913388903913980840752724277582664962198881752709201976973894838205533627592652637349443790253405374467126144745248141832140226018244882515456335773618233014348480300889739789295002010011016900904823001766856912530812116148206359972567069030969728762168649255404447770569782602585191267030545926672256934550474721666435482731106282516660294737177285419570836660735949768217635582045589120184883135623022730887084911408730423001201069272704758088154659981843466369440828039671282628810520954027497803450557297888109654036688264814983870567825221711203284173343421282745024295400041056017327740237748201871786454839094102875977662003528040395710212058318789122557270080806480913171976389721355317574083197959378147256963957313044027438118760673777515103317076214570887406070580446426337721512342026277676659683633531086888704144297554216009158623404683203898976734990079875807341982887984338500625286743228213515869635512709837744502275133991553510539872068340409552471445016395089509843789174065158038313531857620738787899970293694426005060568413693436037319140506559636052777645969840975744520353409514701249048334716820365958466211739941856542190616632278189148293696218737259092265714797116179117214348915613804475636742088534173041121534256952246441659259023959794281028557397539153031705068402802351221115899914071992368358891519655474665578689167232900455360077451401361271997131234419369283247424539487337339302074613346219208316266189423028342673265251426172844848393124388478932554355900588925552952299504944155949065321007130757397526045748732302851749195759561371478157416141960599546273728160379237798564795765760382087751755640136001436468708437430533470701934526405234919246053832903038052551394213777312432346094297445772262340455363863585349774111446579178078932954058085391480762200297182364080702169861087826918396662094059794174964071755500955167829858964235578922124261604611264704352674582608410336604329270148208125414388487417980844853368597419733958758702718289346578374609565300085289171962909647111520166101857387269058695863983163412622907888076948466427146835972027230156902988408254924346201787028541080132933097058721144116216731590163729197290064378243981265569282415405719181911140635160180880214445592068055886806277718636971589564439700901640917156718575646775099085553489010316808235133838258286045060692892579657663725357258879555140612248578927866028488209845507037186722541552302243523147971997118685537895212228254351232625651856938380193933979240986528628526989798439578618141986350003544506995921957639784782987361808279352167686583980435284151785922040950071704320300911472222314502827545139961058624906587283566707432637123195049027785221543056828182747596522042904222783804747904988544020888890407329506013372496351231275229943951714575618324378479324158442414477170520280342511390698469600366546272816500313921269727375973499614926409352576933867696247907398545477055508546923753681046593252183356000388694134213561696236546235445379593585909389628350328670230356237747034938271188420444724890804910056274621714731257381096068988845537323668928127018218258786804497383797713800035724186553973023720017384801709383839251566991764007934547283611913889476189523465041742115847030439437905849754106112008246942882669243707751192990013943349277719906858949834525533783026184561177443181611205427841428111752439297674750459210179125901216669892970745554377378138094986962088611197760561307015822918260784362949630623225838202539358809341396228316810051430019658059505732519456226896028630895002767162089428721977739704648441759898615406895784835490279814226345272790408587124908889644364449962282776452186233763114776525482366704055501467197605440640573720025318898270712388094528471966154936798238849719138635170662571704611426233796946459612767735087012066963355688536880287639728151202523481817596913895993473956887850275354950264408154073963931430855623958365892037830253003687979925194709651065517343759176419380730815688177855162187045706920087800552976106239627713873268960017704608674894046858974045247665463877726321918938133878012506075174170703879463366139603808060369808524900194263337318009204252032726833275073169620728826103869363103728722524733988340489658251352048548020084442911431868665637817401853156985331907872585515042318400116726742759815563513247702561864716174454333400317061020563190387037614908806438777883803248226495200166874304939967041997893842599095947161460744723272791369490034274131873436785634095512032099065373930975787038851809001572003898792407051984643787265672506858375230840243722624252588497553075311369750286469437542223462532877139788245529973798405783988266928611702252249605634291337224491430856611977233733041197411405715261072634924910393312724037887475132648477292744659978948670116445420006237454401886411711359935360383616126447121999136257943399128596300465624132291992983784706688093375784426324728157596500238407967129222210596424039892107746573900155571285059518025150446631198067413677295746750091975174930704002245411787332034102405440638067373140485382684457763096283790455581339337115700766988691415506073510819001322226118597277631793539909250383577350503187986740778214766322374013029818679950278476580470530621576135333560751546283435181848171789379226573294936126221707859467363885617478056547326905188233906565777885952259957100225507443928868201404195058563624444688885136383706629539777404099762630415848863263286092451475877145362023107550484539622726686353531608906206231502903802234783455702596432536391632659135474973860369721958796468254346397674120415300566810726804829194779675921853526725080656389823826195938174784225623000047867071494537166642357791379149199840961209309216093592108954451275526578095123940990161071817131224315614251858369289039189800609958172797229899038654254384500326323776862728326773989857998534555475704129160734326715147013602760318255447939378345477947368885801397877877082256466650328361762919520566682844340916314677500607151497033303661771227808818764741549863638292208730866743198843675631017726926908817426723575377650649854171121751020056980526550327589190164499847869023950405552090132436147300793037084656641986824334996963526875515014082217611798188458136534857571728786201533405681755733145283516751631323108337025230512853870982239103457253008057516849197851444080911420235313052421717638608272744619271713204599552780134091372514876171683472242495925603044712319104243632130758823798583143946887995750515665944632764643370046254162001988646038858138538002609885783569372163074782945983369113625570615006845759252947792524415196532885443665788162360562431324132688258302197174570682868870173778207082721473282111698593565549324843188041283110810070819215789044510113607544421257721255007315600647047525370513993441425007693074303982815559256662649312112014319558347484011655207475979092537067345812658579077995886806153222023044586859218835230750207208905451355200589593951784034636524974262304399338134493133358958261872776084995796962992765448518954826999311403921559754234897393853079077549668611304599674687491853787910112921517308333188886053507693813224875295412678877820471537795852901319271093460141988400036615389705523027745106605271222522324070381493835517310728704391657402393815125774642994672177469699153121605432426435332216993240133624745340795460805778964978934604358833582574386533020820306522705955376062668901376347226338088577429187115655161124930066766411779598989676638864475012291251486415116533176739596734346700910505096936381020785947892448020665561558368321304658004939583255693360163111311707095471179116006630373990729416198774760838130947855138021810560922630081686732334753139057042349506862921834907114900316727371139010191899472976764627710943544936958712767059334408872702801883790794597067346930778398331583789317828455114686398993820710031045877469459913666896063016479133024533297603230150127843319907728318495954142003494799134184205228427207559185690763002743456654668999551805084047975858500775684216877288807676573718918821001243084471363594860336785241756754230594478371553384045260125337828108696823765958148239670326565725029733016632112681638958486289128852388006963200134459137646319962489535312828210809397335491613429667129850488995990963547376085193091014464697586343261076203289794289474662045671933448704870883948675982913644188219911274480477986077679090506859114723794856762726503495746394775821111670539692585995953079904651929996142279469654317312712648899098245301082407643968308739800944526325082070228488565321628362938893500049926790776227122341054769055355737607562238391759503970730931089639150238999729045190129466254788617606892086337679847348777814423506840409431483627249339960517686873474533581179050337605618228204112712783574747829829516421302629854436420520700753455591497116586766498303493326729637627144777258939947128124932396364297571083683167017187183315011392379029212232611121113380490561636693108975213221829771314339469104776516975536411124235128469241981632574778401015546992919924454411395542867572721675686237955461825086984253077918336999261011514410174846678862687199269245722197135944884413916419040086465244307031299873781487712669729823336680853037418474420185149315282609605524731319642332595251054173483294475406166869223202103801051608255363296140842792237285705240982427258676741378726566174255727635271374773950434842457508606852986622602374456534788045815906170385938113833280448715767843663052022049057380722943171905184170926479031885151156097234982849032839260423487234806253944350248139360858420558707090459753317224387494861493959260935233483402033499440044623841546827590952434874623565438051326063288501097815609989415110811801411421024052953048325804843654479015611160728389990519373041130667603746929641694843017167001668436932203850795306932863209214435961547432249591833016790494447821710064533767098287383908979542857778669006457647707242070756831641321866603963300331648596347775104448878969046283891371528067145697513249810594846059849054894945386154365015679727590123755713975813468188716735073767607096012856756609488077306015046497229770517215327244054525501237662501130748383109162578542134342046350257534280655784440638518627602068247134289113821486070721486712465016747770981648111151431919905306830550073202961694554178913405019460778086109054748098621495500828954170542947374410656043293470579248501505580327430364888814949410391719156319974565789405330055553800063520294011649003266818529726196336107708540460242151059155926831231145032541137462155952860746943359538750842955591764369536275546900723043891789511657422863390088979529796313053775294934220500430516857153118668180091748753586984612267389097241829175753948605089684827063411118001925332611172598215323419866885819311075652428490671151239089633491121698871736506088973426250130391276483679348065060472255714132177547533087537214312778672847630455701772866624787204188485400581441792582110177784176092408100591054943490617266189115003140759706075093196444256865733335048335221425014027981113537637090869399134050920840917879758516377940252166452169952513101202231497105751909877905675370455113763440027159992324873642624490605425808539299528058520585950419146441640644651188033620295764950714508219271529944527866416861082797965619528456435317392526003423266161214873935398494431229898420736923465155951714262081434382906646763578291044834626480500409097522604517158841476876024959872227099345102024651619289779513884636634454095937601313152789699832502385763181858334120561574996826105526332614576572931164851367968770909731491857969516755510062815047502872906034441273986634391068671770958745732682266436520487286449676449984949668447204579653509113507928992975191505040402077377012473043534580398976110815978841088522688801395695501874544370116602599509312007318965833359739489086205911812118039728888189653357731873526180295193356990568057808815300772290660939435402244714777219920809740544179792001178955832319106321095739411330873062101156078600241154023381443921375057770725304065978669379245746605369304695944146087121275707997540510787554288698032866470853717850306589478508121746760483468728783045698615036531234699568794733803133421695445818256344965844642553905663174957086131835084343154072070495344650922017769049572868357504848127916270053675465113361098607576179571601605658534489135714295989768426015559680998605189847602749040706238124358522277617778839034326241553145833642843924671258723455843251621979116563937126264669082248057663593965199450528679664194955094384910777916507247534157392903255798119167379175977473572608379898077696833052738958768435259208769439929375578100253975931902511658559412606229394767177877426701881398319020397323563108974767241506604978824673985995329019585063897587290083730017762022736500780165063218457614669287113835871691602405336437591311467436728759371133677007977974728269286115940001403609500905060169453457381752537343382349601890675603442328311858581983870023824413251554449025691391320707790967289942524306926659461964342172263616966991867790355405750718032297673068233867028657013207139717468421712583698671116454720348119271188420569388099842151616960584929727253264615659034473777458405102466896967091563136587103722424527421313760670847847002518570169643591875927632143781299609288821191968392819971397138221550008361258827434137375667492024850789422110417285068105747270497329651357366763132193802718232200026468258727215130413374718250785770928018782124234565930540718989811928825612626822358329037693672874566343825855147209434990931479770440808714408396456601582443796454617209789492146795878785768236294632577812748675249538188586412004905031561069585480720670845743777759264601685583563717593871579878554547278850995061506017247655828338694237954850482556967397132190641214794389099412150876116664173423174175629136562563230820985008076299309994743954182201646259322277056336668001622906836968837786398395952550354020903242239721102778059368787409516393520685185238387173158397973600607469066068453410467459734852945641910032248455783168961396771830076418696717628718404554881742305458713028268162535809491179230743083421085295383133048232864708850315285785749622086510040345671805376794543616204880343504215237809660974136089630741628423256195175573464807494473280255069655350868371052255276982852982989332251664559379488887877741058545337176227682222877624904826190079041236044606702534104163365234247693777887157742699310590131194815649107427663549701195015026237312444696467896755784505466723038590092054912640537805616672009546348704371471682380393017620931824481014693305596838277862785888309026429711439126693259017374939612948102503135958378362893457637789667040319602061168081123065583157599250818118020646137190482959053709092379337771183908534555407626054121592769301602370678060983656543614753688314485882784983315985270943603550735193283905452228049428566969407488462622188585661204721483647313587217882251818599124272049706525433947400888421980813509007385882521304932191723788529198753418427033405781136551550304863428821094121440223531160940303451385449153550558963858152192215078532215819882348729853029014573134767779665463868563289018746756801884365416620769176361483036644353597520924066483641769700381734582340477608560491602846426552627622601305364447949711169505329182297043256223702230905333950752354702888198153265871244490474679981929479076323955118406275763961102326020438630538612055020278527719295540306737649076205841235490739611526906578332444182968168659204883169003973196070182464615103308339647980175638073747472882992041772508169662119851368146733694503654026683091246492206291207444306220825026895500466460106439943967732766635203756951441026157087089593489224592650246892968689394051112602738702196221965252531553745131136734367795930266572597865748177654467022827762213744049272942895322143614947893409254257166616087685882557065196652405918997463785755942241092820957469296351347782519329233933555193400905034695046722235273209452741913314448885571370563581862513672796972868224743416647427479092553016483354589419284220010043014320955001621711080493358999347427997597736769102563600126011501204043013531909086839792726554896265473029286683698205148308925150732735217929794110847914322412483026440895866270551991367311485030174943272118472104262522013759140779221882503046893967761035296794504777599340544892392021465897995309576594640352123996385064219247294687576046396404540967504367124118586320770121048142224212483199406283974146494753382089689925356882080611809919874122129288157598145893522069733891560453579557742674330795214680914522701221967401891425469359896000496572105087444230623233568306216213366714386353966273785139689098692747469615998998175744179309714651275862967490875149951027322419581187706733834271331524265665368079390128095959669408893158916114929670288111553275886697360594436137157586053603112011228644019219302432788754748976558128326025350876011415976997763583602821036510735988228679225969804887325817956902632874700707630593953267443532892270331087050828627448178619701624736340510504560325903487450983959560019929793909624925043093718909846983613903273575193692304486127171399940230352118237658345307909296490869263669734133526115744684951128308179054629968777781880788149093521892150052429629070127128659890551496166167633452974148237537418275207418523213786695415736797956227176858951307624233260138128522844842649410926059705309926001270603948105471040941281667516269502312552514782499548454307285841558584583416678018628135322321921650632752413788715747569159221048732686638710758047972664573097405289352629389657846996401283193047539453608005490827162807593718062647003221159706220513695413323041251011833342636062261964136605748712511445628104413221876889216090959179577205325038133714634440931632496847132369679489730925871096366863094221723632951660023147155995883920876311756593691003053104957635394262919374791483082145654329143739478866882798931312116783385534565539248687514144421751205488866866884062735021403947243132880185096548865353764672589750641818343354750584788656375253862958259538494694404606843184135777288105164628440668411811249048889850060519905842026674259102074122473708873176795813340832901484230453580003833662809799684175709521790086562431415916423488136955554152969675964212288653416606477258488894580291317869975210771172744457347867707822938163686242909025817521220587013920782333448469828919751594212820652922096854079631732822185426046633957881221951205560341720159969609530076313012052310984038202982996110080513550924201673026883912203936731132952434978198575477724837503989980023185717083993460670689429087441566541416537903337515773883446602831984736699296448862582252611211516848687360568949009380805066038182219072777038890804657378046028923141931510603881354080138492459673089164521701380922640690345668822792627417387865846650902361242323472381383807391155315544328991891319696985657684094154240089124455921872723663623462699595865606115898814862613461883250580268823810038306731675946952685424843326589441742872669537911494957191786588205596290298663847207879158158488893912132927287236717089921533994317748152704973889369254139199092888038493799339930619167402106133334534735065068139795081396756660066397027266876890691379071696218463130388907702003243628835120728995704293235840014439349785820745120006654180489481403616830065041075394089007422143242220242871988751984742302287486773025792405467520486488367734804091714208224087486777535326383588657928635993280377156687675690390066358930833340260968275600966642041830230497231402172585624625618877011493920419855187702160676706607278876601472485211770883268050566029126667630537822345109321039064605221333505122747183277502229987255605693236415731145350596796843685952346741929530891808851475471174827527601141019725359619167768665979361029604941629201224838643935875684487252746057153879148515203036163181666330663142538278070522281325135726484930566377629992677120131268207985052002209120256099353825330252476868325892421288835826529333591989992513239218029637668586336470811653478840375899554807561888334779733681822044501225376504940040921274926928155303090904602601986171448040402265901210764982181279413912547246659647167980875760745023541073782611740098257495067874210254629183184928308458733021386031961143331891484579680180091114828550339647857121651850954191528362666191024417817830825683984523549799352625120214512081335920403310413264087157022501486354493348440848820518375358554033385403216065494628614399985753694367033216377044290713619057001556583855212495431444711368434476493817222459024487593329402953415989374106077263346784339734313866532301041416489659475982315788718200209161485230142529023962293747993482710201284389600249918645341073333961077549988461734243636921622040964574303734190019005410318277432912932943274188184431769628359212097621670758834729685925614469877355546277287519258602937153041038266027189913167944960876320256575939043853490561209900148851406460974731997251412716580363346101553341286327950057643874710194542673206800163406209862002273188860347267095741097037396197894640336856610093774725055919551113241849653353890615049292783043723115452918080931529575404404330259799769349404871382643461138620374859879878475934089395582171476795955830146861646945068089915493854776895421593983741072843117328807625486536539956060929015347169492495080906734737227804044869391903654449902549745545224675846065505921266272371952607852730256610242755175630820187347387658053778024392316578836835173161278818524206541394430309879241673494817570622872786021523324315953625723604032111891179108280012965217634135162802502830267179001971517765081179287177610262964780231210235716647730815540420320427151327259516488920981387257283612622280887343280047808120971909468762494833717786664700182795503147151832823785192187696842743531676133468255797054173405986287823138820999745521575629916384031544527937531300410066038374392182040742569518281433880678069487908203145241346314204662251257846619075140037035569157063776615012331648477326047349477577263527138067587786144120388410373289788143952309681377854537772356343713720536428522415094440403446420692801352725062075007646647473983471839537924000660021713713195034812596111820624450811863143575003824440638612117533092009436995225409594361227571884289281127782962950506158797547486671130752465493335944442409243973636757110993217949800671011163662012061731726513937917827775250131423712395856615253878367319314497710423848688441314350309271153970176849830696129597096133791357388167403954713075721993900140285457468011448830221333311094005707882256986191060940328326439982289534866589467862268368900937028565152465082672426638938340669339423415969427918336518139244513297261558918625600305126271157196606025684185810034017452633855621248140999105868325748092057927778938972403749349611957139777404011212914499950054623561198367950505996214587573346144026989457017121603588800150089349792690305824613196830157538359299969241401494364490563367452701900114166159651730434281774043100046613207214112785459094578329174537099695740666562399123176723611196579979118887959594289839574784329915110515575277796134629174407708900561229509171738599218153647504880494463615123146437363542938697755337768787988345759149686784583024900898399627460254918521634216551346834673337145139231295090924865049995222592665556973288530279557292664603309765150483757630224051576404848577691697850875494712229349733245466063455580491513150110824832911285820046287605294182226900995481540119328477743420425219061113726176716676621232886011758025314934283689721351650973714741127797574589109220994251199687064043035074228091038751171469128581264171007896366518697135836502925330619736698756239695792058291732523356724862249498816371873907185358580563998912134567901261945640791248924217328000935886075723402783758847276801033583788419451087596282502330665831222812335620294874256313281991535231121951493484361608071115551618029129179707539532355126408605630912785083195610459376685014281938481062685109370594118994376767736453477647420741988509741765798310329815970109896046239160005195066981162570861703647618019593502703691084793835524167088370461453535347662319108360896447246187133554291803123656209146015610440210435878525920883467831192144668490887001719440854026950785196682331942052816896820042242576023821258585815790913736456824071835171057808412019469748315311775951281536316709427475997895634211573738569338548398140669219387439330498889772113325042575915827940035300051329030911629722856140402577983346451646638697752474529254608107414271610404928698574829514826772124181283400523763254305343641307702646426400341677336632240063461881047660934746858220102217073455065668149384084347538427402443535996795603268791774794150024135331541130299025915153278620478245883194966354077421170014891040986664343419494770191857666872674182918489734625825977939317071374210929468147035524647024169248109880272529241340730497456325988937956413924706005911803460208889135365986776421777472314941469220938639312101044601560422269830741882263782376589175775126550416106173813683042190661963476198477309037562568589597228249631167489910576472754582327300343464332002781302189052518618856773565806135962189364337706430485550477860505042585339834124942817572066744109702837307056936543497326539981043425972520448687844019453045000850784936721486617499608304653748517158741730135487102508909970609252468586175023813254068963856727766053150269195194972880085064892237666149247880507349092999004302104523786533882420676181893668266374083604923209071138256980916648276175932034406137930556544098176542321539678007522936767805669401059073952361963137207254228894248512152388932340936401481859645663491356628289051261737402260829403602250788289838815312247108589231168492696433678279108057151744039910840911275777379922838096675085416282945716936205902423253641542976794240145197206004420959512665380238493073636307339046883384828446263781009022764026013504708830905673135288489390423025248387058153565103523907295341318086394727351583146546705134633927930206313133476623584692010986240530250380883379142175791335338826097916794794382670119009493067300271954510799861102566888139396436193363010714874346232972057182160773286748903187959606547730075894130610791150421756397743528702369491236962401688866394409639553099933241414196902259873901764400485535084102737170591988117197216854287627898579933815244246033360753320821461719664325983464737170843790549817366136619918124102748387697176784224558359708859700481284794017406324992300433101431212238449918660785854413635958563579978473698475785989356753628915575259930831041504693100596308406326870174908659861317030851187849115453687791574912491117405570375568741123402628620949701534209073007265096754528134780358605342030972723555075082823689654850480277634781595205670418069557589498478047574608064306515935237776122861659674180058656170611596307377401844910169160634300381563743104655779251952057350799375220301560908251733690882626732378082198515757221177409529399010443474258979164099255894120706292622117648748382337829380903408569906668854064661953682153658581674992416351698686041140149349064050625874187308270410900398320497958870546048920588719720329530666274133397625558475697293608587616864313370905928877298456861559066151140822947864771712583217730793235077070085665820119333926058226485616558012153323346500160071923051601279654367445287171084166923920825287827815646233456153283731224856686610248662590801154585490701330510452317769419474941677449706095664206158067000773289485691846813592628364359618470280198268315361820169286872111183557035262874960269408078360028520357233045190531062175600007217201795833565451616590254027367111789131317946179749808015774907321042236984197168571869201226632759744352770330035633755758639244580436927750136446263934492165695246476341469104926398613415834671313513683247189149231369423744022003443078872383511390600045703044512408131110909488347526894892809525606407545161132207511299725697600040514622100191708487594217252848510642687353584357823685071566063154096797282486603075272103710163516611607934838936253044470813341744887306336514480741540627822892036828602049812858742687101722891105501641603900392664305513756899702027858791759815418165865823246288484610682469582022629506398119621103102308917233536413724062692450590017159590554549667794481529269952321610259490136280058634183070193048871939964909797939835142030727622101112064490354029302258461682075985893987034061508498739707986434533774401818912141182889176363090868553123881329726129316029839455657376685177035708464455384137184756977257584576897146616145579496518559019143649429460629527033266045184735070497483470595355148525742685379985083034297406369512003752119417702719990271462384285888746152745486355727991075038987039590624559787609079993537917114975122614959805814394133092375922309448000120758497989890864415686531748820967130948544049016433027303492208337910299435163222217232711613632331425151847288572797723547764968192788165599700705340984037515553053907638376687918574976756935177228072924072069865772188859195003535285650346495823601880132488440338586790174433007804818633032261377025543336030499693249343845702904813492885096789019947252615604026470685358325237691291640631639541918145531264217570754687786133564729801194723724623789805038783533687537778066202145337200488841240255150966237003217668267121406164342124713915633358806840722283610035734067459354606550860966357951031807446508537549300881991211818564299158350384157339436920907301375678160641233045905133073545008392586377597356296604588555609744187713229863002365144758008127556616801049909770887903932783670459395075914456637324641759200827157733582791974015168438994977867460907641377243277078660502921665245198395740925467282828378790130498430076105101033935806048546552597160053853879375764606499229548992569003003301225341257347649375033994400070236897367461255430666716849130465452515333680086304872261614457834172120995529439804162696634812802432730340662080172736905493769088184961212366106480529754741957804269690469394898945265485418336081893664980974990756366785276969613303919567290133925000545477293557017043103787306809833272441813899531097252840911543384179945854856885656314083111937433836956869333788755932746073513581203399371005589885448093370217654766048960361764764470072923603757694249958767869250177114591811796169137132979408692951070968674790839085606434875058732003471606635809679260246720776569545875068990697416733152716064856924393331227351397721939566223645524087172022212985475820862617639162113830477562797788067467050859404372292618888524765752036698592467431004361048027822900156086266523691476634153821496747480430418558027707276869967549976182299716634069140018730069465658982268635943119023035912217060357956026857659900349788411812987534378798929543024130856891073030364830894264062646588391315284724485530791451718651053897321916558634379660789252032589197582472743604259089935030439634567932681540973403417643261635505075194651554862730826434303593778352749859953920879920846326509254037670850728584306327268143883874139958486118109598355490763148430126601526798747194456791746437279537567599070354047221274717303459661107939501668625139627536461071631974209858703538995987512245556430742134596286643920631884161805336873290447542888070407709003210705844903989014887618712930298101975320537588687483530192068404444658412048352671960298545130295357166575245660964773585494409755621541153514386330873386711977305348777330617034986345087176720383908881692051508084308639359765940489062963493975627309965428263346191269689031035588986160759110716747674134681597959864090034142123485312650603803671175549917554771253134722463799443667228742811982533679817361952675609320716380569976454997760556955759613718696083271229502321719170638402621283800671671643626589388034343953495551947590166117600441201554519035784150248150803213508392119197296870141417606090243463100706760592810958212610866997065319224439977593522279838069907806574656101056470531154683628785654514529253544992679339895904243089152717964106264084499391685367300148666666467517574634299104422801729393161234709438638012807253614662054331381491235142386542324511706332092601949943050501782807835545887716002529231030876698870191097305904764332783166512857323877565243138278876460448311038262493545789175296775758609544771025599889432819782788749711955051287967035588594844188604824713970390707387538943127924234395530948277543426909341943697974681038409961198672413300605916165296106600749381142202223349294835760489929936255530013133492872426267147168810816977424884419757713810229063361876831265414571776133147954619562776994381878186927642373259252898134513518057444203150304916413302030234146032018692881932585896063321716869352723629318128950673577717626907046284674480660862870189386127867257712148883866845264397955329847973966335161088432240799431411362527078592200399672137025314817072904122311370124870644910443100228561244608916052356766559620901457840942669287503197968082853877693921564674300504251013575550478095915885483371240806797438229914077503368102177560013110777749775054394261501972519255460720349777482667177251678267374244421239250986586668653091176193985831251862252272361708660187078557747197384433160309080325884500707449645501506470280570342922918517457607399924801501681146744284428313249706808225112333284064313004166943590110407909330869537432373386800637864818580388797391109975397357941136693964309037929800916427806370570065663709870667787916895855894569104472159691537764663661909904623245269771217459273955331775044853197821182584043380601745811372103925153077593527974522100608241371235139855572154510422743430662461156441882705342669578599304183321320646169621659723480931405367062158273877630284935783019219603017405562651455852799558699869692820565248548301020352825817115285921782987129323636281257830098231172608441689147458303325222750124790556273192633419415351001083702846580195847061592707958891680382939458428410515125241422276690919391755989416346263387757780284037811488350920340195954696334952782182211035854348730408826509628347763205501955929091944532230473011525169213829720490634554920215453043176299708670024203093389045783795643355077793024992083130014908706036304255339017117829665415412236158666258592350145727498199659651714927634405409779605190365469560617434080747633539580949927580189212369633261762561339158569383074927615357926705961325294203976642984019372264634399600361774835609867713058887364181492286356901544913869671972950625471845821269838042145162326604478630384543482815777310967529873286699505590746672366376944312600029736372478536767481223669335627853915086500824817951475226318326540498001658631652652159555215819447819712943955463158895239138782012826047592257593884967021070763543898094415589341051586957020962993941004592232548225635616025711665315522103813317814162374799371655612545504140322397983306930472183495713416179256031903718131790631229832648191773729064814483099112209162287660461295873795780305783168589534155987842179158858689599735472206493264300836059805098679474759295951845631300927418732259526777856914383657756601186626471826919305607747708781755592144580027171305548709458397605934097935487996407968608857038481604920409761345768830559413177672394868646093733804623557796166006593866223994366593142608723810198269921438187799255333184992476044702977344505719234425963282147146866639873449527696342338513370138960960095014885174859923085559422431718055794108527958222085267253963101986462736110540454842784119850630159517973248788675636142053777701030631558264398159422199279503454922072981228261232066927022040362780882937457628036276670380971073885994160197764541383222129587216511084454064501826360946076173838223075781660527033856810642280474273403845080831846786291201411984176813569559974670512304697848193565556655245155985706430428811725295238687403505659447461745024289952135277548431259087392598563700863678667863071321826884954625372771263351373162995238679096160137811640338016069493643685460698566169256747511638953389286662508754689626368148833228769727838391952917937625946575197809570914799272786731641775816596639578130352853170087141993230847111084545827764739519494818524863795430362044693345138360754331394378831825067802261446374537634769599475162261272093261356759758117845832871471548567917896643425892491177179851244491019247889955725235211521022471518404131653107504989286493562129744101764859636551114073255150188252127267243674513956387411881957884565413875875595459308199108654842072090949373480937337406385785520937707028848574339402485383260092261572475524892355816667429303008968238608110783413657691387216793008002997536623840502450851443729163431456758506599370002021403903847202240708562601519243858912662443988362454839019513918710431040375071903568086289251195460587240648525096295439028237001163062800553932686944275174265395314943076433941171086993806329485230507140833693224022387787896862219179971349023822818542416293238055516014974792879453783878678203276525443303601272152057978037846711168642727867458139816424530896666353404412282108210664464261538456184548727255584308107538441192970097497283904524263385227630017576357388718232962292862373942650025089393168726333518433018728099441636566225736464018635838115139116749294019326260628980882765289544987661410507183957085078241874920138622735400918728659258096981168690930403273766668730489733397416538859365659916436519407316443143838418875365278361861136512233696460317401746035312902568091904991145606768226205510675448729617049862965581411240191241527038512933884494758891219871160145098026970191304241493860945507493872325473904394246969341241126661404775760412539573585082416341172675340391955922114303703426948991384417363017301558293653448398924210786233237985371561596632563949620905924532725696622142927430606090467621796173636769921553775223833092111332537565150348443798971982277070920435214694218389174382870593950674200866568800481277151670108675815217028414867939258011490941538028555420659384298697789879654711874528794730565822740079767039399980228729045405654781817698102889510878388031537738519061324837713059244223519925532980189589282674284086975833542761179371467690930750974617885356017761948808444542330235859594196976450461951428094137333004491411474984069275082388934613990993296839660840117384882119447590801316473245434899238043974353025355443714831648202409737183278738668537855074441398603806273419931846357991134665686238649866396565626079526490891772322208064202052294052048067889391686814372836808382171090163729965858630162544335280495161342830135800123224566935089336347767563649481326407234313835369333049555785893425659289747762800999656636061649400448108328149610411318530869257976346048225237981337516134897926048050936411106792093456631646050188379623293917647528569910671051811546399483523188592772892736988971729055977899777959851826891799747065466076484646516969725590775374300986416735471361394926251945743963312065138718886167919423220492313086731530182903022817179533915937464597463548791497711080677558050615470115704977779533802705956379771640140929965784411271508795146938072464549473212441161593355036839845351136670760616820371233570999640235310042114067034881990816164398696100392625123574838362044023164418263687693214517177164452888155122442842817630651500528052735237816074779499887206483632976556799420148480565601897355969988513809730918975286762910682339386704346484319855453468822422092699535949525901667288263404549490298197828177229581148367473879191165575085865310257712231342053166239654375211769385858668165916875366720966546167606002205511512036593491331752901208828905361705741021854930607979745396266171015485022630044588173944338517049891988531099301417644506230218279841633645639185078843061695842925541456961451474650385451912771458982526592224447366035584191159220321084811554771037320303147630408700140954783361593780634091002195612208464650233071274335860731007008813265358160703588184624415109508290267253175514703466474827359080493167170265778498195366740527917454747180730536467599407755741805645214918880666185664807433368505102296844427192335393927947897645029146856207230942837735885266379445623951125652816944973165666221773076683504935053417675820700485418166219842296719106371163655475163130212351687059444416797353942000965654148951985731139326811988982061473495368919309344612930979382629901027867468373680373025641409604839494176505745108269618442937415968639904499332384461790895556288224761786363304162464018133550815755116830320397115241507443271190800692646168880432466619728576347733002846359916616726734051722812616403817145985094330377191963034857861719830262028384455040606144406465489243922396304138752447632971645024409461385403235914293896431699363631119465512034866650997212145876128361709585157642516253400950319517708567372833359995099297144960460798532527028628132830149946017874428583710233209008897538234379070142464198012246522629489130658855085581041470655570100867674700051129494252619656374669610370882698484058755384885511975466792985689381356256763244816457496918824570844607364843563927695451601947418678750859629137240513861157125766330134117170583411032545594665475737163659036605067893127864345868805258969285635809638412645841601787116282509144662938603985988518252518022865657296401162317868550320231520647615323738845920238509763701303804770029312390165809554789046932169341923122094399019132115679672873076108900687312427367174601293015017609751036468053793246875225453247142916762586286143501918033371750567575735886161409565871303715480068136063684866572102939179026620537761896079521376515956218824018776249494363940885406460955149599110909025325316812300816520714064147966538519165930098414485064148670123577330365463688281477056027519365167426182837231496146276664521052249150695068532680027133008069730743199506930174249445110604853376327548325108799793920864973517397247062519111388593241181799997332518052907977808490841508785123993011154035577171287368978417222783176457354118920153293899608729261422363299093322204826237245734361229487588511891759303649465706002369429268613069768509035364048414215309148990984216215737380978393185034561024716959797257558669686774913451528489402961892043877440950619466504154949492648977700722608466700681909289449502621590424890250042198761356495223832765858484928337070696209654573285775150698973305154743707578898130441968940768590559296093352883884230979273305118784650249690960204251077246864048575470541498441319567835464871633804196550394405999391227515255774270829983059993480844473619335745190648290693477385516926383326896805433135115456950110863727965698377421945586016784876581041989424467379479131714603616316563989011724455414472240211697293432497523469954036499418161458026877874932983635743834153771099025277019645314543745578264743680109591461922562363726764535969522315783999593416039139949805414206139372914953185576131102625772536652734138148758891782385953112356106620595205361450116099883826384824813190498808322124618857293281716627190594216449494094098307521482001847400353858574957367942567204835596251474355713025659082059715441933390056249162239067219144794942620077382614759496833937747423628676871440378400597641084617503988654819222828714211377039198492324835609405602855063422033273375994128813219569982044562398588766318163502865449443130188975919148274961387023254488639273738319844148564879292510137698539930344241952712185014983667925515927283182650341462206899348328449862423807725355842865561607831186317873839102877441885789533846369430041836370658494117641946849291082371252929776621475483882360208507078522506732054614595817288702281118459503114468316182959820982287165018295881350933793666208396942654013844085163585222223644858470612812011746226080511182557073666719963808004939230169513028798497475279617447264678861884412464601025922923514765289941362369680121641222978556982223437667086721256376109408202480355407192626414601577095467020377266180498660998308594147309256938422074684131223697785577046372642848715903636436832782236258836886574240791218991300043001754468198133535980376103537088561439577248123694317437903942101164113375461980921133865399247260524508410198493309621158639357457318490332228186712900940431946180666513948193196937810098847954443705381483161779920476541237863659366033559047297125314577890573344627432872744495438541521930584567075681508343311010219308764623639111314735907671249280202910070541579662183391640314342519800619278087123278140381362021109359349369322142908013899252301800764402164968239026891904017857117449555497741353220527981702641399264052128238011212643151417563872709146210969633298676232755582162439187494601975038666992832546611882399663305803274377539632204520051119815190212119197662362317434057952605900733899115442186900281696860481452147114726327000908120217673555148415040972523316896304038809654452891485274392967761722444716411594744504984035963842900681389554664582746365380871144503541552984260359307289248132973134065314060206841461009462115154491625615291115652794237590281983450071381539976739139863296707085882141895658985996332543259656899286723635761541274321200190125493688269826219540958504265050215487415586213946312510991547529782065043632756721042791339454288684275757835687493405626919800350822114783690213913036536111393819868772068135975509033696583853711286839551440440085764010988585729947952807813524170671447846177309062659762593933074031554143222434616008415652816105285682272440397244900245829117404347108265126220033384944823126121012855409233230112872111137275058957372989559765651251003235050949025918169292676814928439995160631452646712176643084542897903234301934340099698371813647928391378781187973078579216829293776640261147774899775672114249031936348056374315404380295568483882287376940610537333879543531060147128833514796691402275211722382745184618243781245202093661127300435409387377424534164642835538082887365582249108927065702294950468537151291233841217285891676139846175217340135010950136696283183873862722862228663083833661612472891324422778529801764653427181468379437784360360504907202043551261281663053122530084166621912231713248158587779176407241323943545646553557135709444843436075387287769352679296126059150341847069730319788054904645048102963539219278999659781465259523853891218578723357879656313817973221593415497781096693548746560704455848634537735420167645927135968114640977688669955609840595100226601611596041983716162928522070010676358861346490312815914376966324556612661703705593285179977798112770232420569102671148886382953048340230466341363989037235281058388656798566174973731249356388354463654643878981588792548057246119613413643511793302060701963789074466888241919184789800405759456820302013124840216848698714688796293771719080652292034602943155088884391010884087934831716258056163535265346274610546045446939772928979239788590006218649218180693348584151480205455079712823110391018567746121716420106797292323051645549886337447745642714722229441214376953534665015267336258184068827490731216308655530100004830103095929693864196253149014219726601480742480188118917413641949597507230621190168108745787037714524972677623901113988010834233877915953860475609111995268998606540694029652762898458903277813459906361653763303053066011372645419125359320058818439825731837458493330711936075890703769562406968971263735200161537899502145298777145553011265244439416504179913388741278411850237763925230632711872693279484827440919793999863390763478728366727608567292027679429610282087831993399952365194792221639183382506530307706221600544656098117994860980876022016266840767989221779120361540161512351066327022580355290469272562246143516325686515431524345650957808156446917816029893294530128307774924530150404210171053873054355895468838873120647169341632879265267883304114823014314600778560080596973140653140520212902291130356638271556778462680957590223620099612299655022135002531474632701615864729122208981989166111938151114682552014823455978279562760269970154770093560280079291386834564877355360920625560832984897816689627221887219818930248833603148158168627634465346601723549018101017331873096101664545015558079956631850602713008747843638238899165543892277986125260575762027738609167705862871119777619444737973826293541858807552846049656471553371407404962671755489338276234317741864960741464897996332506530788451533723857807147445435715078177022005989141213612651719961378955329333021325502298044836795751842022499932658604170321924359097962192396019798153197358053464384915664869643675160407680396281394408791422713642824415727354547378063339584331864094946554763349578283073184619587488973464149223061474173238683743581564874235086533958330237321569883384949510661317229013348577645080574600983843048042225842496597895003034051223246815913945184217320435612015379950805985636972362269053510010338326942324946127483116851715314073396479748449988662984128566112139689829557319066186420420847157376659065627890313912902796028996622546549361855646038373414767764687053993533790389672114693757441259191639137511748114514729426167878615528621439429181376701860084297078262931190662101140140969312321206052139891083891845002125622301312785588202903297793264674338024876326580337409744511643919564843157751544481543641370790140930739631821943496191297178213918453203698430958899809809721872086238158115599012462746249460938008508483289605016815004878138211820962313942293091883944262971602215632697308013069674836950126014976449813568232583302296315406431572185824601129139862484839889930638854381666191818778312147769723518295667686593659000442739615923356008968547230768918135396150807154252919116674878197725428655175119754187006891411281109393271188863098446963645118611132861388376831787205724480708402934478720775415705036881936936081401711133299065683562784915128732036723156997868215853498043396103076957618155775215434028784116944321735866550280939489086488100449981486013087366303119368785131878038563896960025470677183190631033432225175151189852013110589848059172432602257081431952561209413058807484845763386125458595864364402313013799901178106391010846278095455638086423693681613193522473735724412541222997781518894281899663242575993424861376453954450090353499652142914446926284338896481486002779405180609759872069206858381270787860257268786212571865751754989644987625704183504483831112526501919565978163109352795708969745742180951573213587266420837588170263182484197991452001063300405299272078232201178292950159890493729556851412530883732889373196949762020805261154907622274820642488922181217273475152164833943159917435643209389256801149390419583024966587796282883453367873483371544755853169357389683706412590236344791159483983054638790030652042275102355888035619356652437697640816594139193717282682786451239761535445122465415072983873203660148956221678923812771460021023578792254551003313180881975336072846056957914826514803076496644999118619097155333373160746762429217088971684376009888492151663207698454281067092331297992233259052450582395424162582446502969750141445318385485933677424613222585572366621647554711168584095022512713330755575699544798167515991426662180287866418295036522027624525303399165216099460950028737967962451590442649221175390836843684868369683156900044596437057381233407246948503342678678835689822108004074963621132274674371881216933997176339306262993679603790653681760762423214135909412376943546471606892764923753695783155395692852578576668381126410296146964060768025787869108751979025006503077018432732336209692819129725022918300078640533658280229433278843720216799461233193181343537826033781512071868712913267968139829629360059573314716096167312202367361694836266914383468807760721245678157359503602201183800247917269262901095366114155452538686890364194848995705564530819145726693754005251000314261600692691177271071459755518049642079863541869448966807352277511509936468251279265587888869288090730624791984454927802143071992196701717364803741007262003727261564152134561104263656447499717016750690559544373823406293273556289181205510760283327012091297085781629088643835837532182271101245283521509796038686056607839583338025937477461344225111311986738184281609921888635748650327998870466774890722611469870664356021336457125227051800486426914573648422833872425605046274752836051612917558811408631167053582111614266656450912780262154844667880933254139367224587746518924147614064786412573354514914645353035377604580096773131012797748484797827138303087351999655996480953632402049581540042529764524137587650631663624005826608799182479051211825711955066698027367355306851406881515928720494282522352488634025030155536853702640685444825319025828339648200892473443122768288041937379741841218743612741867089047456696468351598026197618474785804257816005018299748296116731043675496505058228996612938318970498526961791591514671806090545122976247062070771478156038436728238879999278190088823054300944791258375642224023291550219022706415254487710816584442388420122212389776562912402682033139195527270972462574904149026636669855658689401395483370662027486978351959318684497210704091033409828536762392559854078640955016707299336160951868442064550157991335049090015630146450791419168566715948830681281431100244170151752194032097819612353418497351084124855592463641404515864197902917201406870293038610032314953581754411166710879124598213054705996045470721086975456396201080748519010680201989609717502106994421501849534188537626453799363646625004912875378045090647288871228470431513039114884430469157116573207541409897898039887328380973921935117026683219832079138054106792193021308385544273744165456822661839349199494057578847119443670116218265704164393536516714607958890256971580511399514478913170590367977401572623140148476661261250962064335898261327898956495946300321568122981225397955104663709709262853576564742410976723560791438272270489502080455456580490682225527028810891873340384619365704062202049093224227959081011133352424041950012982988355307990181762372392721951436708565745033764426375672402214710827151147996847919402041124953877062759562852851216582715814896458842135717100403879030601026939901760652218702710361422138356938475505837655636991909590664424312714521681095641256420560626406777080136888944214216275117349094233322153216206455630891713478508429315771346572803356424395240136140115451000881307222113242025817260409270031317998842091153079856476649946229920153942862422559243355402588690744434858202469249266176214347410733509378073650522715928498753538604536432968458069118957210865118042751701695033855465171412313518240714652935509782495332201186699002275956023786976529510132566688715480118564717698531433003849840317270171083230792058842948923377800334830968706588764056961719507500820763476386205433012184190389997726407901572128236297757265275614151063539632614577398657865472551311752509335721280596476059184095601516093978933204052950934754909937503568324122040461746893855742295836178508221536784142640172460489348403382381338143601420776762625849149605726058434708531616377506274291878168915733192268519509062462139593612191991713356501329666910063916221433076511504581377339169682604223936564256871439932045638353025444555118912897693843184015910462048784472833562912366841700234714785197114551245241513640687587393004125168756131563445167803397799073834536973379849804606726305493685254088955537856050354690981907241794609092170212101704557521078763988880085181724512165751026195090898016284001650167848751836628731834726587054403114095339446185062047406590379343891643117081283643358084096632704976436469477660064697483770580082283610625855531222668087218521601447144577007793338911227859365495011911513445415084256079520023271137787804874185884951369824971904730963092833406341439641715020673197893618991994529073684770823012154599551522836330392273548455038940873256397188876699301751210154908444607814168427502068545949764477205417168998277220185637561120922217877592748818774503021898848358511898426585149185111821583643834327234919040038676290728382926792139770093762377536269464125904091882630828620592837221784644503671047664580098260860737623266443679934006337314390515390022122525145845434480048742315784557275213052927573304044125734443404309438994004394278262572603391152548438234201243960867681320394508483281356300417410658659179239402158883883426284939783032715055719970956055759734784270538548459478830979941368331646040576133839445442764686367904237415054909426011593481672829362283602195529729427545236487022595116594621778689721945860354305990218876084567757002819342654964923880094176121106887688182448952705011328921853919767483436534392821982572471903136290920054308830851862155676979962100658663155983407132452737542990706163213573484585261054956452850617331635705671581615760919989371100876366264779825145303674636624953488528308699435981694903916860008755641892241136011617521628155914783611556668456417859768947945727624182615602452464791644930792297953754407184454945945265214784990609034971256427842587422580721652035034626894980222155551792314662007233236551443743117113256530642013958685291465799364721623333994120859551333795271257357982818663306117223564089485187597091669080983304528249032179963720047091469705834131335592874009729130211070274490688234189808647216643419910354926911012756866950222323362657743716266302307800641764749825839404811810355864662644015351270105234580070237023770300124523400049111372670300977433421584250217716671679021142549356653647342984067472014170685426209584853806489457292825019097237330436309486589449323028122425575494930706094506960559628019892406984654417055540968899978570805425472781613983479024819283503917698116981825914496244108386422845441870878887701177468054199001061594708925980158399046928529744216514061402179227361203137827156672233290535711118999060861492342268581734201373583280222041856981836933772907666734696639611487468473363832601226897915612580748269606869006349824347827523883829977766896691682681114668488234876907130995463232642169872855123419353855131192579777642721408860564678322926216459449396628729467521596142943630422994585627354761681465476625836375723679595355565533804766895431423469776539394568853153114584724954620805524041507500967128447392029379657273881965759275425178299299377468721812052805239415666282465731608369160029849338747613932034392049581112263015853920350462233610410603662749730169305608172075454591383305699374074996298598742600145960846948905592703525534748148319285857227526343195160459676739064414272035580168459553556705498329012658800542699917686881035856846602651482302212190079428190073573850522430728448621152726090679171340679004279941974636330599446733732163022193969592945935096274875359993106237096308954050266837873466394071030149329004683177119160679961407983802558101244407435140697918583346058739615281050359888688540007087524961535747060772610196605170237970581394063258612171903650824123327687717737053157180615701414841082586773689896196054894856182217159499186756022693930422597695109429813208388414672191842693867440270182791430460222369016753785143467866277967524416446942403011250772901877648605115165362857224453968437636022744487160928272776055460857417442313401463622654785859084870645098293203445028852554907105121959189772630509342821286925440814531220885628186289044369800334844981010139296788424169336782191523565487591612806924503833132576271721970050050305890005072884370995182105601320779842691595503966279470822151634857799244697060942021461508465545785316857656198080574911480654541806602379001459171380285411778184608112428803669696733218678082347181964319685384326350920834022326638014364024089350739834391472619824387055915414051764853959148109042641422665153404169917862817128258410125891209968791905063772821916604645925682221150855353377822621114235175628975015053641282344685751416057518447981024964342551940121998331930220370787064958847387262122875527311160528878059970493582444838280174004818436888306451718616472521902116047050459280208989928105827596015998461714834932422916524930920151501742228915798780954564080840371312886558483155969855949734634976514830691611814131051468559942403059863900769827657554917787744319472241640809498719673309687047801678207354807490602885615923657193174708398215028996794568879197134935998744273254941822137298209728164743505428021323120018561556894800186639573645263530350026668339492290979002984822542501660289646436561128564757610144007389423215943028868442784381931186056760961639052559478869701732192590359493819768773180916083199955296495598616499584777630759136704297849442099609311264305565411895065784589261783113000319417919310322900062681609719279184727339083804583510542758281244502017659710696935174769813833667740538273660337788453573451329463728058020309549728330146378532674341887405593629630619407016514561543469491965676293636468921475455883308697778469633455921124249098673727538536338750318959094535426740050648388075334421131958429583613540154237862945187810936015066229447891342280914935437478806994203690300969999262551389111809840545980271512654063170411176507726156402446742069577858767945422481635095450784496259969865225360720752327056399511981469373697359117845514483912727628374251563843123798065679339943871109724338405868090824015304178726026325358041959898217348003212611983362466600041012027407063700515894815810863857608939193439984391237756627183184377284403161589518789692937839052049718461944259282376969053704584903932131199307560294996523304490369613519737442709879400930583741809873244597866942671566436280146661358414316300367933934164486953795594611911700901545680163241725158398029042744104902945649555243921303087107748668648301841869470220029662559586542526325602631562325815153444783504624258805394254143052115814191254809422391717057760089892780579415029515886833572176200292652505567956780314412905119377360064921994799442610996194874803754250864464679067664555466886430057984393108990723520069408788060872607635166392074936486490430603822299334857949099224022399733493811593134308260302403191391877058885019446340135381073403346892497320393465757395434425201908406750137461843901787974993449350849304144809686746327687286806940645482884855742961509244236485278617156475605384657570701027918218777028335250900751281027585303718865990454785669000013654038232957649494241964435895993349537628522756120776378290794113148172441046339275584292856713149127438032457705524535332801204503320428884361152798219850801158368081034694921660156359799649477462471047595284366446363056198085963480319812700294190205805506388132823110664208250195775978508869031201889007088143703703533968441656553286623408113414897376193947194858318452398252752022527137533688286795127316790593910856519672357291043390363949763807336968183520052171464361359020085603474574248196078911497320646594615855289709142108351334483186987154656732267534088635742323196333010888394648062055524386661943189060884470657920333144766445172189549079585111680089687351415972492574924067341627507322612503696435364303629102147897056626974893635129011629493488521201476126312257298679967914455211530164851173213912998544766802871043127362591024150667151984942737949490744978790472900196659451394608679446456006287830799404353551440031361973104208827620066703896916446067196920140410095425293431097191549873537354104327257445218488990878390545051293341246447660318446620420774280906014276022732417757886087731072691663211923549657939277154425002909142134076648105779759474172234850037765711962939966810158877361014045218197577162398707255656472234389588457927005724159399135693405325271231041116335565990909898357791489713648118928603962947559241413950089554818146251448717287294039984945979514213945837143659136311581947068299560933568260592846872470273145133540466067226907997084167796401056591700140662517012940374578297715686258339119917937896054132975423981963920626854869977882346038852530011303511353190246649127054262654338214067346577598736036136507320350236240271945702198363161207549561151615571213538846341854562571244780672422999328231920085511668803775253364704354545762861212268923689409263288028197216834805150192961498539042551970030271908164760102538204470396204961484761242203163629648194569786072745544079894200405641909907449155217285743182349242990260255658075776121111263813996894849462126087514233933972343276866470695252410607642141153207378991317765033808507984202733528804224338777548044767589491703221965744929994849139593617844207670293308397550538663884496226318050866538395717528811166524340563294719326971793753261525304977151532317885934086091350295690053356168149870579300383866550007743082912003055924046720708671508269753378146425853691799433864546904335084463351339573661712078007239909872373334882868999561640951559128504148041786489806885724762734056752664146266323713602519965523800060041877937372321789227563715851610791826991585396098843952543801146981236303933573627286089226251002576673817031123205430478787971115647445940135409601524045987933215379999463454030658673805137060528238911884645867378531253123707478461447159020715140679961603071927133216225653048924444764231660612043048501813456866552849857290564324260641649025370161872221140243833626407450084205106185397951028270386221481498384747883466749034320207832625414053653484296894195465416791713283292089723515440805331409817429117458614779143776181424465807955648456471260368567883221805568226935139137316449670938395771263959551492952480497658040888913102501904272030613414880173347255027353242934041373547025323025251597331841868577273183877891445231106126319499900908457464294477163574630366173475198122925974645520307324883713408014939501744805229277602782352006311996162088714871183395943785290883928760098774749741178661105389566346042626283080945496754958520852979614920354785949302342202640172297598055634216527789660698029992035802688062634596045129218033959582297891685738381437810345330556982194139305536898991386221462997082591584339001413103864275190961018346570805505793722607750979033788083810649457634855769344518417107924671236448444150432784525954014562280077616903001853243168206442915687615733398339824771317118951545491679886630568422381612230268038866605199728615505484029752329785768369702970495297061578358844085598777365988026282603311692577123736334613135695204624819046865953176239107576978600840656154362824687128435312864590611820738636919137041977196990579082541252433290286258959192156428608623412810501688881791058555609931192318116252514651566178036712626177390733856458910855798427529595012096738802142632221889011026963858708472537278492117100303000875037068833191934082854050990188414516106089519678362525998912725181327228207588228988484158628140269674962636636082150171127763253710558345965832659735298938326306187066352432555136977605153586550671541308992063709936096659479668764954561975480165177626933713698706338520023395434641535547955674433090448527417228769084759363123163267360055014312204608582669350730751845405191370987969433401089914460907791737232696919493829326839726870227338590972819418369059926668559597399118699059589968757986864856127387312214826605328237932340324805587205513172648587437923473892855121757140215436939224073388106842453963312729380118812765878417794872519341002973345823962857686463263957803659346027785738012635137248485775008286521899945302488621876896798218430526786379713122035430605953765743855773891754044659862333483497778339186401699482342581377806944322095372838095750304008952594702288550327715380443493915417219494464493026530217437551290944285761674432600556268196764012872177677765094430742947388001634653266685031120974885234708608343777201597848756047244407277891623374915908251989076872638805594598950302228192546731612929921935606312880251912807143990106838021043288635349533942327575591883692773731896026641645025175557024006168929114038552686034740417683016638062169001829076107345546894053765453442263273357796700679556996079600834375008454055208430673264426714139929071247468946419800502653182719072720418412133074244698789743664624346099608924942396376833539733251154875181495848564548312060337713940219858726857814900212242127815030513667161786818189273055602122131562164680510837117852175530078241595596260839705983097317652412568196757798686112712134620188300709568729642495487128434314396544291534195606442990818266906052869925529979215020029484528875989142321842602426492777691572011140348744070685155006182915987871416377682713498962492705128751154002877641596554268087917982582444924887787964415694767541401221303335307238276109304254685336338230325480781461358942647611264230173903739120070521467411634391943440421394777397921000499134159954678239406493996598866606094877315629789816384434179384596363540779195173395834314762600840313157699956979158213018928370518457614732762960697571836331726526147328464434962057185573636772541744922973311499440778721861757356850591683381081606010443912091077770704544615795900809043431653049410667635542356514021739307394538881100193175517443315571783689803835352364994005666276730960115647246879856680571785020782690792778678770578428919158851073622425945651089104279142757866369868809739416735187410852268302003392687843054046572246601374328711774889505385184343238355743540068916075165683272640886389968345736008921345745177860761554759379328532353510107512723051790325187379369651254221590663741440317257097457584183001861578187700579425699981706074324812243732341782178567822082178118328516758813158014002694251918700576533219326273244660989141807228904678264554941185770773944633658776750133763405470381503370573178976820659747613054713340003250739901046819682790461804874647914832871564955044092517827710564534003149518479421442354947482958049041764347482304374378778430503812517919281107726624080039527610777653888787933692906688766388654066425124552520500258700834904453921280357758109698208557869954379031764635298635032010041525348868567594671515063361513765779347769920464107085176394497863829373629632114028130494370228601440607372555172924565665406580470406161308040858704670195784216934291649910954873568821090906991626869667582896069907541324933799575087918771032421629079700140439448363984115413007015081143118891675148747213629245035118425117105957514727912313678067296004136789917352010682400886958711785464520775277249753788180926930066763079819715528781153875079310565920770918682451938419676586953428868035254448594763505619958409689032637672762372331792004896065758350492532873740776067107624559975284992995004168524747211187618857575857588520363039479777672705226768495125380005043854839355992422767889369371109284815647381888542728433558747954985327859581893957108840851565034867228698873603622877034909305791018826225067208210748659689239921677769524218640886065714714991850614357279939421458633086173191078069978727787644461174677895547525496084053086563493575426184854262130394478564560950218738006370968531376704794012642839666325226764879179699893496602113577751248161095305360841346619183860763861938453046067129072022242767885055026038492034705187110454542603653290242821463805732382256596369162856645377149837521070406250316288775979534812883358052401477062571313624542730301044897162045655657859359948449222826750118523206369433838438191996523896277343921222064658476393949130555930128856091735797917017265213654221270522628887927159812977872524068361463747540811924666048713907534145132582833472310706539274786656343089611951868445872882847314553031631152120504108689128724083049406633653919832611752676889695762915657770836170199714620076954550595510825374455224904688074800345325128571462443018249552195268444987215355956577535796481459995795492724547611588033754975497974681989962022749781607321730258299833009385337508361014868259881360567275872033842853733969016868170182350533620649649842228748941721385280257213761702304206992432245076926287544703759589567701958683166604130108064759837095111495962970218981713693308924307346934680216254998248260139764424588336565561476812597356553035864895417479708857178029444999205458962461747524714916900741059119604601477655995389038409795187619066267503231571112531995199940803100111000211438978100911017994905722790023610768068682431791064072031948998576515338474508519291537275462771988608839368302372841898412703869431461010664822803691981266460906735163311518976787189342221164227780490045436296526622846784340647148492607459029306375798930040889635703620281779283530162424885052878180526312538198296125453985369622265888004436296161053780031381343354636265225419867086961787160515120501515138429247935979264394087373001117812203493219980395808978993605304181299336807715941246367469686355835460249322521113040939944539720035550141781019558101361484865307371836225345478858978019772658621122710189395707212256715067376672994769014739419146621126626756028713289565187945693441126344025808619076218106328497838090555777876985962356655976920077289336587832506540264762571309005521594158589137072154400577661250866583006319457173904502132826615184724341356827423510026456626507512496208021753499803691655496800058867250658135405976164733945499194424564364454276535775674414284500493413222730536253421977849185143289565885548368161524838008839987881470711558927996058314265620135355256041393906781518070157954669906673863693679183984810874478539069411119652347457279803047099930995314957237851994916596836658937670696823925570729727505513397207176645978168494289216484032877946859197807122799373974677194950189662784390904696064295037758174011107606465006880001412571264292301120106479100968188074474080607244959815366278516265558794308786662455419296056870275037582929300246379492018357037361222431339507505019323772680239226263004632704621819618366001856831966842192640269135619177606725068325778722655645266797639316038503152682234225560977726854355212611093062585195204755646960440318845347386016400489430745712394435388092556627251527176086843489249849916975733151155251367934193803055818293088310018273497359093909238662982587932433133482595478423000914382817818818230456368921358477577881023016470236913320561867560951198959011643923694870890965238312644704638409242949532700713954881646286776266805864062298027783432959650731472178988961404949593232239396247713825019025253995331804424871818602957274743644168859803891306742124320046877927565432619460736443263098375958883553957094665376446670341967675323621435636999452088124031576778054372505354057247523472831369648429196592342079752118619184202111642845533853454378676264031336332726730417644521412004088080507623110441281776090237547466064848024700133256665673601432301470876824543723959528774675437176502765116435133401432836723644641367862755054862227539528151840056778505952701387751023671656688645017274286991834164575921161920850053178209678595422679358321234558809653375293129755961073562642173349020025479504776899078674762915895985912721934620567697189110693319004695369077586967051104425701521209782226375048815530176888972276147193644311379829032784577904401057977103751722688517060982953329776538590423432404878496074123134725301233531108321553318000831991553479443139640149915676362548318626823240598799834531345980553174200475371114586691460549025665080598123425433016216650147742208200389846239542239958796728714479462869796784212247036247102088392659884890177297834695547396988758999709638261897677254411097085025422279999118652942844201802555093603986397419558259724754700450584068931453970401281423763372047639751882536286749090999215784178112891075760722050924618696412211042730386040210706513710380089841344099834705884202228319051219103565531342943447528757903347242487790622186594419934744537787359280061557904926323939491095042058553497171724865707390579832018052519322882005738441432184043362343568837797149375400439627540976979640043648676254101081491154075950666510283339508434435891619752032765853612979871688738649786039588656939859212269144175093707509376323428003071578326050802110457152754367765595573901695577305144911010161037458087757920961300801671419832322260925700344945739177045102539722080308464766197409701206402920485949048667187747115550217348789373120972657562996312655409952858691921980994498156736058122775066927455849660632625881160927667448343513019012856203705790817376047697767042113915599782232460114895111504423189644730680577014139137100898854281552979345974704153749515538536999979414650427484474324345510998220625115515239910793406322401756162595535159161911549461798123132843779980201591491921870929341789730466146048928222445151774219912165248994657500809815482505546877053361606408845874956026431988966172288792332058246032856822734383952435975629573990996472080041093078383169260822130137416311106155744273293963445278781822324381256352617897533474619622549216149501832273969787276481705502498391892666722273210780105181987968369288944232367286217073046466054601583116119401558606949866605441948763664691307061289462893454550274642211304834381311637801019351581581341004538082116394371513457371323045815912603341930432817278483022417996105124938905361838514532344558296797211854101143079570507652196534063123398281967338747388958140872967603006763215401086140139361331895933321420973166325407580416665726519098308933095763663551254202707499683370666657470108701275338725247101159622276059386842612583663956672328167000772779508269386375627942806729997510799409163484410511735983593483909903348185643048949402003384370354552111129227862223262301959186547483284886779402449205103648818139814148413691652855642300594230824908309645252060797519762983725251594160716518599389903174760525743396742248614150526480484952356477520089179779595018941994202332246263514484216209116908308782046363851743660725346782143938299832522638523779785146242205859710863169247289684965255986201581878381180813074974664481281037698835387805901967586817969416094545011592408524484424063183399917110955462843070231267448231230185522895781823524160154610226276475537780276955123998394958867764607513997748669836665285654872980431403151067220588874768997581126063381772752654280388298938974194582413665626281587608901025321101576323570063042876869270452054820573339870315504532628679595021101670723059500695279015519879020563264831981776534389761397195725673440888610476629035985590322304586613044098878896889007133673904256888974117180332128390869946151635885994225587818160383181776249871905425343329286539756134382739392478873818187048073542682152832874829955182373601941991657128329477908750196131992956116955136969951912715148618947004855505687399266226816702354621991744264508993274079681536998861318298630917306145088303521597731989506271904490126436623112924398161026537196639841691630200876356489884911908060294359580774549678947094455011163226092788194036660287158166324512069140762964602633634028723803799563940585934885385970904985401557392450179959366343892619939284042625737748167961273576459048324024133726391968409870893067377942159495559646127118393282083719477019525233686328039883038798499225495643446943225853849815722276116032048004399759364201280229034788779183602221320963880724099606792881016124002590045305334782097194131509120047786373318498541135508250173341705530405752379495452577327936890556586093433935697036546298727734825231811150508700645444347444095489524959026612601312824703800494802811158734691483353678928973039144092473420796981880697815766307558260157183674819422387331024084127351268402813109720589383173551072769804422617299648268935861195778339180743648471138293478730435053028630934148742915287114476229187000806016739989814327603299635676055205246193185633698603994307170647315510860090630165049055349816410996283911244670433129302787496405936848802693888064876218552830570119912039744973300198674630243004165264377458412868973169315140709301401029527229917422146231923196923053439560054615797334614833374866552295070338352263638942907213694086320208168123983918306641331135185994576726161920639421309772366508188791436977254573799216823769786375021675149847851541050432169941545447581140937854312060225759094303871926696990302792361078731333446129392723063590409129512105837042855850576379044213424164894797220474243924515707043369848655900133280575321241333474870429862083899017627015177392862064995910962385902968689302531375941534993004066623337167563903004015208424566980238945959542548756126280222411718322795691091320897080926706573822479408759808993416307747951755756205072124818977837812270117197883247982726011855473624709428562358209305898428383508127582687554522443234266831022809627698790088727627882784990821282179083745020386856242584603753529051781922244293488035738355627977009245822583722011567802799248945585430020282220582479025536830341666614860663272415631336001805103878346516247663922086796835191240065158646570806020608067608366205034826619146560825235798345884527113323075876497260724772507690405916110586888557377325913640310107210934100117651303307603157719263260963604556793483936764450554462498024147652965481587602917049496945165028060002604541298041980855035806435106023542618622748639517772546188433347067969212247839748322031911993169977650803775033770347806048725044122864054065098820887549282300987376975938007539568627824172225528319831765922794855644223541315031752053443505023451172566806718441884668943004466345392321137758900200908809445497133614611941845545689021633957360676177305978128983652970008551187736885248871772174688365647599073000627282272199596078193966486851806932685230639914290147829171724747336627609543998776579700554766485462272267268955291569342641888262330142044031482171777507071946139147615411828503444646567352368404915390091945160176739580213700836736296607266942361162307139315685511446669471901816425093242755769825652876201652626256318113925270674992847731673944427631773975270225219497106783550446223498358878256658134027826734908211407067791489962842983701888256039097143183976378440852849345638696431658857437992688123668803907044249615649099125311070926845315704951057088301052570917027150628023095756178871284250353321764528904743316940212944672727689039434065252465242882235806226951338204032090737650650763104734625094840813177698849035803627530645753963737649868444652039412057693574820889529971657879285300120293007476579817439562888973274154600833235349483774222419370359214391359985034684768975491075980625859360972403945069946271310016042235931606749662823396110131266913327175551747443253839832502449797384560240530015865969312170375549878180726571473396697183851085833764375404645865273018432038138471144045955246056664299508757609326531456179662597379309411655285850469975697671691230269198534572436197752729174627564803783044868996805728309938852348908397424954525961556644624233653399142903847881108100165624332377289667933073394786567410960145640159187708682324480506672020995295044435711287683814963629383933666567539194516949321382947015138695553757202975947896174135483211452073423153253377530281276001659710618375986906674085526795238186930097554901464739510963114395068719384015781166535456363354848912197252645056240210083445030202953082442637773094610859211517484559472183524806458243776083479655453048627138674248510828680467646127132281966330934728088461625266554079462730034869024330300100878540038355491621071588750670191409917952932394447797477833796418656494940483587484327677182997243512166731281137433088210304077148586137709531816246851088818181701832134493024551098145177902492724139643544275839293364593221845342005658308138766763883504410486379517581579021571472345746605519684029057480137708985099792693126739860388943430840463617720105794300973728412358380904909487093434314443940186097906086887353667504147231394650050068645167121506426924509755388862151299068544574573628458434931302706829798783585075444041444290992701365538971702394660671283211745008946643119003385937091429072460022444405064541226567667232064064311490528456802198143948731625532152240475759849693898127438069310616298795382183141537803946824808535182728698812906156207255400004303575898125551830863230687836203005126579700666094693018294243332486997713045362113656713355769943845274859322952312660167161453587514663459534217957677066219413676842610914831773047056262163929223187333770595225291570600557212071630735174299165548246618145845720464794509425384035943689387198550370426024080415973715849391779949149964501600420405878604235562080543355349740429859666078766727068253896480382209232232716757430761275282336366266680746631698998415812223445072697907078371334278634097107094268793677553265656769254566141674097744877578921458617017015231001550427378447216691305042853513613231074142648406822774460044768440546055422547198505733590878357940146264503528471913551138251967227654438365363755624630243674997176789213163654428232823274942318469198699762679069045963097670212453112428367196899650624210635164111609414594475356621956413925907391978686700539607870882258278983267237265627273189421899278280717175729889405101599580969035152762518959699216593158965332060824789992458955782197278479977508196243055276052111086192257903315787248698514435184384958643042474259545110856202305971614879491420764577480806452087347670161270614109573925538349556667157559296467042932409253949814046368202446820201730902066335159573867778050032978358326710460323326771340290993016039721398908854791325639170798103945349939217583504932696867159759446676270558109116146663953584079205141302303871254945177336691696622119535523570317969023120833814301310290020024391351279528052104177912646785367600834937724361401537933623337676105651912457674851561362142569652449282742057497613971714200819301862115739273038761445627722610132606475162695957325473128990108975744554062134587837093704101840365794838147703694144825642658416521519194600059667201431396242091767343987270612895676606733672466306087086152933757376869382495465103912961697191448362355810897094346633333341943923435422463264095791619121537896089195693949143004701142520273097270543377589548962677812904231391266732623610607582107306018348891841105043731817342779627752064192629297183565380644430563682673673670266842033933195711478692885964176301478797850228142654323122158218193166040013743440987459581446810677175430291089245631941440885100776416139854909409632698383460054644089802737179067466321723267170669998392764802280863689791627212292498397071568753561794248940441862467053081603000902195952381409294083774948361319020571097881505891361488959997113850114594833213045156148127582039551256723605126488660485929446883187076637470621274501755066068630438182553989844749283320802237774492159280564351429481053394177295694056596433938586652199049129988537930448323537415909874868501346981480108152647569796862004924303166954140745313037811512774312900695290435434677105833031628040045663414826701658702047000784234608707571228832782373721178570786385680376634991503019336232039151619020754919061565952017380288338209267012213955715072151247506362803103394571382672533314065259513403334765380039036274510645376800579796667988307135017564416819807813898687402991253376452393034342099065037115876125487528737255577714341524152598656663881496997303661203055362141999711054337794531438713540727132196118913143944792224531941919657934940540845392753690187708502992720482542382568334022311582910205438684839143830095738711387594139676729934283508854413210097414621346241620136138314931524717123494584860181549422035938281560471264364679989231108297710690184952107460221929060886091668915267622449044810981139286288951841851135226301748294871818836271873022591949823499198766423538659574845033996829558143123319302535422329958527677324739958999475263988597347415396276161863939541859491891389946343348354202239252829663885174839995377098264888090664633014197955681460425121840914001418718866227039084693473892540763122875499304047904508943782429467346270225850671713616078374822064922765825486652871322975011333646366475217912101234275226562674969529525787012978831934360676370671599279133514977511087515761884629876204465781938747838832419796652440051087978014589132299524622317446630948346174155613513840899739632375178692313674406159868268387159217188419506430984361188113508550153117394357694561568432703882325835396644715487335762100669721441762762052993609754491980514974680431695328887728371073893065020959268035445966785369156364828639161485599591550703535624521848841998728168270711572782354158352465627817072339838599583402589663729477527080726944557333513268801574765326267332901710064521620278672547133834748829912049365011139351216709675755297567341830917137479081976191196486433804704710921020594459179331583727556846209489982582035436881967153489879692871550177231042276258732188554328491456816267579014395612852367642228167310888149698610798398841910575374338132950945284748884483309534790597710813012441386415790499983348453366429821376660608330808779636507871882885233375197215513726508920134611561030941562506241088275033249082003530308961290836642633673868487773163229470674984683544895038031487317475905374468772187629856101162153619621714283376268772756901253168442804015004375671497006669284043029217358984083676838611484965244818086498492251006665956972570350520875524276004396566654795173252996244971965579062934922711753722096601937966569951678804014055223124792365812640879794693613884216583093645619376749062927234677345085597854359859699817718903649591095012898207356181369689913201972626196268340720623089139932091227835499652338260974591872396478719462785041472984062158557325620501430820729911374683674287254989854462963279665002019500557006523044765530785969871131856144178831834231788809953291199487927868066349940562470297456875546946240417073319333857495643485309938488061943963719282122256419618878404725519973692181723069663548005663581634227112397533034476757745116444615968650907095212924878726066368047525111884504882844277491292534836640047015488242755119134473134438600540404389770003025424825733643020269355683569134801961545774514730958860295115207584906124130007038573750655175333155288020099400843785229462821476180835209658253021755146495438877977829954778540833571127429854594819692173556138756759671763133803034005843140805682920919178680484826265584231245257453836877758615990883610619943257397048849753018097927005778523998023864951692364612709278436170342502362035000942850152237521496903409234756946529748333894538448887131353554867274527557988850127275891065274768959877397809232325155578831558228466817369299970531252358477955725445419525140327066268734471722078122666980317412034235233736366726466141515438475327871467828264117592161525753376619660896188807678063460373496945587164655066870938241199573364133997045730454277647367659066278046668108459594062422012776300237879653950763875447429034243201449088621487831003734106950677497133838561163794059071983970646979635693560685900495558173778001354779923282436798905034589534834082983673318318794542035288888413188407911628620610197144280498127553278298144536378120243366713795532597015194460228711786911563780499043948930185715825805375567899599937126930822634954961982286191870314866322482339182597071007635865116509826544207213964777121011441649429462416378727343824195641338633244874794236564443154442756929250665510648686477969560414205994295144803641641025725081431024945128362407251498942594015862673251546015406960370449021122297373597706472479746170832859530463411402509041967055795877921713607240096316115545770861288790942900413999969157697079319980606940547184132409378026189910123184937094708781303854456903228332802047281935277323249215997198770243366433616989363626980573192329357139430437599236424001965677442681237849587475188628734887532714610143371427561826827530470345870707615958690723756736495885198912398655525083545249673166817490441032229194610166186395715930375378148836896576676603288444302382391023670760398783365478949179513680544824397980078858522198850934948527624171198247252809133975105442441028157186379884296869345583085749871497064581257906469831584805295439595808277103048937750569308014228409567329811692827528287400178989000268919298788437093020137791231087511913575076200488830075594767289974170820816463873891231846716429701004772163346387132297213028454174322577859268901671750829964942647923058380362306759767893339615898606350876023701276738143271424236069465002918754815006457011814414805155423952452639598293592584242058990896093986471814172956183241649123486257184679342966744518290775820556336382068487935236851759064364139481845253698525696362812633976617018387911977912384419339650196866875876856801414442265007600607858650901028945686558553366935190494142799763746170847071913777888775644358618812735408452729920803663939130207498939273089838905830376384618489000327001871481503125144769984037075259080720183760755518827965763830955532339268204253514162146718718540760159982983447162940880813483364768981382468517366223068018534294837194684307591032097530645760270615244040592535794326395753541584247925455226817904925182851251566733201565651440158195763167019477190294970865209153092997254874144659701097310544779313159230120845041595312905837561957677906766354431680068986390689065126602837983677153968716688077524094470392511403127965009295227174104410121834494026479292276543291014011058077656275716880164287936210366407209154758249811098307494066058485523384193988365811306151052978524180099788122340082176623326048701300126127030346662342596054948527007821358247401922687963823773177923271916355777842501500233908756021204390472120596960133141530318269905004466435223694076957398582666915322464167735843547925985290766834565321278541124545876973451137363157710320209186867066498210293385516816648434485627554601962735607569940236307070436243145029161780850587605581476872916332893157848203919639707654071735617388594986594892614657198589891432756753188120024447644212974078714508935707447411625462512172146513143141737784177950209480064546702364861371578003291993807418587978760333669129655097154182860079089700200082482470720510724066797654338943829003672767075044278089653461990507049733127553350756771429622507075909489668285433227633118906859652979579319533108094753386622037876134851341474719962475756864009867786118616062650315098704693886778708006873869907229714031361715830069547312254505682811485035130540469023861907696097814315167001629616040480084348049676197043120205287231325992581731569555223996720502282363211344807921439755261508798523729436537319348059070372130944932266390594204570247405781019582281910881844820468932746012602743528534943851956090490038799975097499857563116779557438499446582156690769928727177071551577947861404370743780538964142101333451935292390184174201549980198034955481949738303442314420431364747720296274394238764888670931872954044172256552606373992580196675559679145988300630428018602375382109316532282679442927100657751917936443192957775816118173719490819531433698723895123500786976580703726776943060349209863217001490238394429166696140530993324515140190590756187875686040161979559673113329892736551997179883460518006996306512036062880574843436916836097836566717269102809726520925023734417718519685900820756365307958288353654784504352114363165347912486450099233719786830055796980345522655257044408186157655763465857988887957496908993857324795848063838725899245708445896981086422525828467173963810440804898622346773851928059097920407820741021363594032187400224534814366851432764428056472667384200813950981153765603367396515349001277700540334744816111961063473826513341413598205047593553648143671568301824352485075497515517459930423801211723860489144094365844760334254288958654165453163232094059751823322548769809185783011273971760731631407468043471594310936194751531665170858199884119323933742172826638538582648729485434007057176016946887286067519318182689922863369362387987321512426697053676701911414296162524390685311381264234716020276979594732745269228669852267276038529644978561454848181767189955611469575415171564054950671338049556078643291297997480822539625435263117529468546202987082777019077767929304634601829161475995376718544553632349520033598392342957358905034675434218725788048735475771829777947824918099499246851044451199730588866571409139386700575519447597122608948992974390359087536789259622193839166790521486141729688948700611752265020475543792026908168566369212288271534456648291911827480110087508083855293700105424748468527540798569446899157244153470887655014509757475286639442801420664731783841100996264456998056905678345929852230758914847802146300018808519601722425493981528019386207039598030041541537677745662755901100877067237250381719347431030656802263059461333094957510637499726686260412989336690380752051458440105998409837444077788759011159681884119379853353895573739051251702371369236626670537132971435060186897812056333582023035164188837112181308044400107970834760993830512059916721822055259498983723398056714923478253843566955271559959309255765088488508687353079898671340594032130654774177927563129849050758799671442071629507048292989236830142809924431469547781072847383956341916881692350863845620669845323784375474637990179650203029140629648326509847589929254252851171002151992137200657768713519729098529705069573092823388649667868723140601961449076120440474173337002411861784003016001043667513210373759771646963784865516612385274239028840581717620514415858453236588767694348004289275309271537569425401116803852688641188202526392597136499605622642347645903109336930194665467050812552920923369590680107758217380404431874115429303579674043072080642550817125592741389493039122550607066235809666525396910624746747650635080900695020013394228962849094646358336027463138752919293405399884594809175894035889959063882623030860129897441884759192985533832319958778101492385673798228548321872173297920257039536633972189906653195080160356105507139563377738597826792683448504113042100115771864412974557317768100401231086933570639710281482657811059542922641622680624338989106014380245997183365405171371006662327483472698591156503552178542514001163993846596896515140542035348940046173766734645039187551805683601856755979283933133706550249404700724914497427288477007093115722885392786274628493411998181777736154483845035976862184012415136504011150410750095211431812145235684024847421805343423628224058369095105372185684490336174316949206931617844387518733523321776058962228068166547927941202838571312862886517403400071534442313094498689464290578780189537684010451153923900460759750026815714949192596667399463586966062299910580342312376029248405138426656587819978740241583617776408679218169822601524876955748480211036567079852168568080204811394571222254367251681187433546738290315201305108881153987921193787229021631833215010058038229743646361216670892985065960727134607236050493892220413402063351546920331348494237646052803591462185034445538621695662354539296649636371107340832146896025488721707624715417375287810147981163771661856706741326700536386144248622519236124360244652292266055390281140666198970219710833811724372486965573517014560504830174897251336623897835893217593212045256863900522387833634379772650308339121245557681531709472432509897541683783833705378047303563536597877371643152375232825860750535461228434245512995777969102653596841759008307557118926263493369186157781598805965364963606072548493306591427999095187718156669562321149979868150771463622710818648015420746080102832603974842687921133440938398430406261391241979217070552136420552924829544621173213078138341545171608526737883955544253820505377624029140042221772413193593035435775998991337779451475577666597849953154594790750287361198033356716405137548633397261686099929970203347010503911435133598392964211539208775527946962785785018133761702618617810339795769684720574756153821984851637390609019793705705150218852493351623153327138443074751539408511056446052496506357039410170393831877604004087182898682416277569637277662015375542688771417017535413702619364906805389965399491158558092584237228510140240841389419123840527890385887624995887334359570976659417744292899497248460972093916966312660259502701671623034465996739242375432719772054681948876015881751977106593112391575516364677650071446430997455668902321342446387546094912707658551058890935138724486011765047128805268684562257601463958269421737801733008024752827822308031240734793661248050119391867411656528952363370624307477406726727877322988178345163901746359769592584632006456848204226278911973089314913353539464618683285849700092666175656450213688326200247328813079744179052007984137872692668891377472323174455541085796214224157554161003535380618800517719718835697829774027295849944923026657764356804354690127430206206083932938316732507063248088599969276651520410499173684308215450978779379256610733299713677714529029064042270897519683057682896496771336663679899934518176352838477788478400932077595010070139224179956754790958502071956883643377270523629601597618599307043688786767554169821291147355643312315073109505223565271724235224913513262238937007265471307398594151768035965777711429499957644439598104054975699417638895691327388828370924748932212021862994469006164134072277368681867115350367267966156908276322436398200497431977752113774798009944908504787252499667974294816492441254255584792742337011468939356387341684384800138181164129482252647740109356644705114404061524059906701106044878958352281839015843460197197060614595611462180245242852073613064454549499614218738382258698408992360469452373641043817611348088720881427418515667388142714138071607837651822435171976029693006899493206187460329996311222009136417757375746834530467147852965882360899814076900422982729820841232977960053982017823861799769397778412886325547753463971545359764809706182777371666921400638065703802410855285354365684086396387815975174875880133251460200346656176814080151870324756382866449110042724227164064325027527986192972271427475877273190148050939792042950154711453603020332790280826740839690880570468893663105269407840376523096826679498905994163065286293029311855191769861547447761239326179100020680033680786751406034380392321819614059018900674859027580633073099893146149814198744364205942637929285525310489078505032118199246656268166957578348012309847204552894821119389404242736276724753571911461867152002454323505607319888263832828111403928779608562085953814554766825438487062329616116456036078667532540114041764376150938819669287720551978980037606322615044043962185840644186807409780931395146381301361360470421156099992601509236108115223075020892539483670212156370039619784541934271029178395908645114627389504823819118306988304127495442054207676176433536187370034018150688776241940262845908331028190458197008224759053852338624009303454374832558681175093654726665790777620331272679380108627677995805161021929300071381165781367340491299294725726606017539175281301952241656791792389417045911036878178560889680972343912789142311823778000663407455375021022556733742907566737869562552734426879942703148445973670778900285742250676017311543829692010647463153489610251169632641612640415557716774911493014795342758146096572908335529705795288009036057767530769952444854810713170785729651387753939193679190529962453237591836402267507390781777378092321239595564780577941732488626592903009560142989639916376817082139218329667123931730193316555273160923671097280618114779390758482463930589151638276725397759161651148489892806338502324821972021486530968389012932263264780102073444836883359929761124345969471093108473023268618859926716548736267353395622819868200368832923091015754570988037250326797523424886211326739457949184181936512594037071246470240486141138618576926404842881188564972421571819252672813678367971949335962557052666506747248365213857341199115985717453214725248600117906943179360304620778276050494237803447286146338768624347851641752301563096983264520518642478051370986098587916502425116699865856069956546176601667929855589696924869261084852798230659880901149264886460509475643588900023028137185985020135396283530759620523934252942533627648222095869157473202371966632508276171580619500085359162168143202507712683608588885690373521916836814276074302730915995219782713017122082122667839606314388953003780222415305502653553742979006510865323992465295846608841725406685277231589782337844560909759261840041035284978285561217931751724493264275879409939773183603746263100987568370684735755388593585849753578860251670405250265202761893911521750680718660564341328625198963541245600033666748046497055268126324376518360684194107918411282827259608062015197201340058770392934875815601369251621664227842401040288841228985320730147017793399556410981513443940829224915990447331792087572960682349694007142005266956476077121634108735445071148316435743086754016650217218336889639923751980079533837434975842224431006568570800071228251941389663338392551777997272194532834830105504632979201454142437064541064481302770012730782404560814758038192064220644793818621974333501233571361624567817135593588789979993621461519955162868676935396123634979760877400742932727334602678842368017590194013186447330130353285240100948863810147736835189743707751553050829718773304620989582300997675316870836507315899441035188541456200778415450642149550209634961637211698282981971185824501197595529285759426461082041966433905527437112032316351255476642394160513870124455288909594816865652667511475111057010277122553583899112991483277002679202634989378642766779416507786612556126672647217355154307480984016096877195918720509143719527657555290333600157802039750767209643351953569711146644217959809949556615693850928327848804401287352436732390519076200132989339507480539645063198179084489143370598940905208072656726489206905214448247928945963235218678165991209599190886012929652155687268713110900431226055334225153074746288760245344381381185157901289470198375661978686979695362738092909957783850338553529087200629415013249953194644743078709523685614662243344131142280237130609466055159379412126982271482528609472244443013771689146304108447786399938016567634649315865765774950960064930385946717836464399657189048764728646490688979726607342727590385752417881406974958708233039752055736585842210116774219710060522624116372707031628085044907881087817029533137121344941650793171703842727647412808989751523194056247237988352471784764300545691896429243352026718374701660003527041308775274716216253483237440865739950993966866999542414131980407558253166034834783446540810717290905324892320658853293953816399944653080744164253808018980832547924286083823593679481001007191311383832839126405320028978294846978080434772731930909532827682186247476618393363419752722853339235062578154745374820401212535213245727477280664562091059489715604570657883082048136883816179479436217101654481402328172827249277631317754362883698409701034825940429404318004386367713532487906884987337095171889652928622524793514200001240789186267718281744781174917302420016911507424971756669084828362548734129027213691400823326953252504226363506270908208644784762142077770414008071967170079520545514938870149549060046813121406672130031857053895388967776033589311686011176974546585591950686170507785512015230582798943941607767864651524643777658834425146526392737557611380013642859142534959848793079564600368959984509024983365378164822972580309280717954874672191202191161830121147126522210191679304568282352701932105535686585221094425368413905534294629372326203048973155103223889120565647817497153428888501382976317201003021404109037520303958831842531044583271074728008473944986389297760862386103345111564547812157951597936302941028464774686976092363649539648238452667636442655420308964748174527823894632236261808953623101720420740082367166864356119906237101437939914809732967901289608333342834308825429319364767816278111872964510978752310251902817751187414936645545113022782521691034574908187718631139797206162608920905253413643770635174940772630540709848065717264097604195364760937933870378461194574180565206888168729001151371535394873542488437980925330908886271942457496891608810816114767423814201037755669235491660597616712514516972413940178402259413686121311199243504820199092077192106047503269361861685212166674385878271423516797593207499495465260059387846803944723458530834143923389843714580915061436353523888595471304783516860966501903693498646231654596962068837233862659227647841599332427221509191203971155814759214722608602224738159255043807526571247143088440527960359943450273839762492835688898487107020828694680011212309880526473567971140773006929859505422629991193675643970533477030517769273372600691692518252703044435885800326526329402352582906694647664380834053255940616789080096944480138791400434500145883388737120216525692878475343337287913168344425864505803767985667703762573460998051591928412036486166934802666525253058041499792755124036362775260933135232012903897752486399786635205841057945648984883958768725997633720387574387365664001157713306626636884715042413224692295392080324723800111068145194773932167672450384650230460009842624996410179221023003274645896986343743140163751019654843400994454028824375711269618453947333299430948134022176850341181432602918431283185396304814814114382726937777765086137840561615562219706571175879503815439559680409873093264751017850491921498201579334290833471636748507821542819435061850544094463141256017412253535075980608464798828905520202184687098596264217480139286968307895135960710217253493312497262314911647850069971131928426375080766642705488362750386023522992108298354645991793488235993951189357266781485964738378838189265719862786811024977898667138843940582210860677320972968951451125000704317889130814945518493579615535665659524114642205480248100416980277897542691021291317267098794329920757710210168935885522148579273639790228002450128966337951771479930476368459628366392326261554794115048696338766415995405187602657561501007501099021335051584913596797351982150976778131428106141586138530225425210553276744927919190558696924634310126904698620265784203665928861968642451533696966379113171007674617994591822634262472542614929581642641182462155343455950857740629757502088401527539524967957459873089396875739966710306273438627513860546309070058923716230782969444564985189396305360849554894935857204483845660775592378952561846626436323600720499153264215391167262760214791817523084103336403465654990376851735303874360548245754461140659865839941620679968666102442029302992744920595013036736140364050655448717014225287617615978433751048884226203419410330081270057556273359450834899071111835759978672208965101362962033208343462520618726513071971173778749056680672993495898918291270082382714431125397078412774751811089876568817964141300498675374079334982322206777966011538952966089577391331499485698873400160376875851165957148917444301770873912510708929539728349427434291990161108044510396367338662409125215112166118615566366007202340731313536765777553301831825138100402768236809699894134389668397905560258108395285919850502942622998461494537015227482799981948366264976871821500171106005616437964747302474883109174805928209910911108777174215994959955583381682557724140766138613787241863670033143869248551387832917141203171042406254581589893036251401442226890509078496703930915224900526744849067680202583665207413965569942387282499955013224151678169567826874293184318527584921738625173329978181570195891008673890141931104374004728066264435183407225377138627928938139640194508616140590121565347549465583647080197569837068629352657067637316476909113627771417492163232490803465720962556550217845977686456755462166272832781146307740248959905560117786242583572070655989894215898841674885500616708483088094876873660171128250699909727373941290604086880327530415778344022808849986204139933519118792228546895932117397547448078864283319721480594948439223686568758689135558326780994524278241330248102584369185736906052034394443470526170765584905610864470301647471665379390680421644273663156756581345269602250588014043309363828811181109990725907835541575787400141822859243705072462373010484108350936512202719614325668773838264610062885571151974224399112061714043541229613978674528707408314245879285233888615629626118376162546969459869569688964088673921476406482901410987900366596403118968627984907263184235727254631130073762432395789466647819670428232246242712368529443663948377369655871299203519059954166543296160897358063374297765504431029447235962647422720024313126856110509722659231140889661613549079159124965683103483939495229703221201038939544469402583342761951827873349997327250052813640782169860337097155847814351942701596227745762655433101231646573404309474794596737275071724726970680095444930012783543067233035866894752075937763348537735992663816859806597316844339352238987174336278571980114401209797912930429249511005492506444736736500355469327387130354043330024569041139186169844514852246854335708645290955716721188343186508915352641435901701190073356526709204956035367906624810323140535485338619551498509799807048275047545614110465586370469294378281338037973973308693633327195734316783866561322982737804445057254992704616146667466170006613113198321700897768662277435121845014433713155788135876237551911628718000825527327921579310962797405171550625696582620960133248961536395662559665110464405569630829630196417339297723548526719433507332959815320680959079988496923023259861494546574918457809192284874324420073773542692543399979452961419214441681489242955425115324340468194240986946737338153685410594566882296250287509792979054098109072239143444887829664832496238335435224837201244681019711758559001681700216508817784386844618478904185392477723624694415882504399680922811272996027526193440180733022806388387414223702005313237593681518159957551340933604220238103639207046475448341716377966827194613291843252867190801049779340607382764475064139811910748348660789060892439971495849263969380567432427159136145710009899307232289302880756269758070488928097406827743081279290649947007703311683076441941618716485621000758751135523798579554403694686953616192007139076153093032718821936975299671063100308777135590171732714073711783927160189335688462538305474519403901758929022656412134835366650022046907284266102341149680665101424668163472498654246549455788045263580000164068180647495415293454202373651163730692410012583730375488135647634831897049936203152096869604002318786056809946044701961703590973528064241465339468138952182345045952364014966278936538173269772639716360839966770148036593432942879211674700833237735200834306968242283184571626770881102893401611981020737830022903973378618622321727930927940551057785751162672726446497026667026690727869275102099240159519575650794144043669160798960491053750344075017760561765947143833146021597595359220362202606869836732668940600553876367703765990749789379294151822584582353763077569392925526180589102372664859235306421713896720817109501382002838641183458813601368753880212683682648933528876834682882366721857916369582775689637320383635789903128593716091740093762738226637185108114561537551016389089070973620449515783327005619726741367651723757505892807519873537762671002380277004046825305505054145753047346391813097432884176080744795692191755560587879895356296313857704381671636502687057764803470373965654793906112024384835946191318017663831336287138600744891159911644827595479860669300582063684477984211859163232658524697251601476554688239831656300829495323741947347569674635046671974897985036360908137567462481411559175162295228842195010858028659406097958932334123753443412792920750373317128079381819609254602653142183581766997079140389420495171324531180756403147328991907315455496524805155359822248646708626587435519888638575966386220952657331470894109475023996312987888517389167026613582317737436574474811646505361391474099373493733290266190220783954030657413579363687773023945092186203816035955715525028709892899959615082188527724611628989535048164465863094739292435332956572218687631920727664908684585003261729794324331739067371088113546771014172023858150887890964402573867950074564251492737746184121596110525747822900099457044421711379428176484634183304901135062431742992790873211381447219952004198728641652030237802871402962078476881565510302026720815520413592632613358942091869107043526188993881240735688218039018081963852528059880207531600900957713085090585267596037015986501631913671871173788122714406714591210895895606352468121596849125837154713200573278917916822173305027115418073925730240605351790034905966647717576250303636702679975661483424764120829075001057436520724328307597569799172239250102507439883139357435222929118674336762275001634491695138966044975747250983870352130841978486668788302639067437250231304950662660728705792961921126648511663453835701388627106088325710760533395006979957534861847901017489747706112724031161230659374653964929821392932091868463524433014304745594191153445705056968521334650013308707984568895427038659805138179261567922445069787137173474008934070613600984516379688057105985512134489178505713505181801769599371036677674206647426131394423905365610968430240641515193102717513260888644280130949514928304094266037240059351124018047191047865334609404552786132225501368365365004378997631124655876860417154809112054621582409785278645065342423820097684887597185697457691953020756123733257229360884383801189029544055609543827963219265680570281856050422562290128200947955546703929043586972782304869440428534213893148271973460981785078957606421569847798424838165353740845038215812579588988979380507310487349861233898341201971723312695573145609559183301013093517106658903699271923134079702698280983661858020597610580277237600150751367598218303247041467309510535969184584332445975167779391775789879114371751642216389058388350207572985310134942873652978706461286663201331802672246895115368802244966708773850834617418195889045146625688681587385838359577926203762120951595835000879741183943961960256597582504164699103508699409072745787176109837210802247147007764869388811333752445003085918496282328952779038571556655454068661015441618666007380157868242984713749565487095755708916862856958980965598523421313584406683362149418788190838596205985772376394226426947721069999127050454904632914063199867555980596408280138298312398889096302055661892943522777481535512757818968780546603043163822172684089179451574903122682782263966236954025141389144177031169770734372800500358275878744897460546921864505443295902097728293646860431278344507577747172706619846761352359650900149991457749384016240200408648216420034069093151075643985925710120692563560273584657736986739039589749830422131263264914439554203193152407755990632191068124690323474241158976107239146595066791368858684320678556709573781679380258616900405033823381191959050449721169986128558941118207579603242512907276681846835833936226038715675514383471523795676985642070171816027459159555053357285488247678335509419745507061179931249542632584212403970167079960900378751759838048901597401211091367121463445727600378019906514251720604004395595791498882224439643103537957583158159962222985119306798266012834346688360265003297558131445864013000978507140850729721578068008583170536488089608834547344090451681880992149738244755420807819671032921970867114861821901244787532905422245394374719002467778384652203825516576853763471298727736504406802342075221390582971340813452161865698651675267539146026025755624232920098751712288228140667084802778244146087960992824173853060400258127732555794877133403696982616101390349387085239659092937199830918082749086325758812367317481100539926926455058592355877845743514613105757128272015381394718636205139137194779225965031833160836768898750731696507737037920796004867522317160062449510527122429792952519666152288739438907055509923144044322410454081774066046541081967060454096304624555432633249869168401040503295262611332491667615718539219562344131076797986967129792003923072742520505502516115218159030898189470656736163131222476452330686259703568447292784794566425548311418338355916890996764170635992192160682373583326311987999587840232558774490146962157811889896007566195035690568498233484473343349698431963534735181229994648511745676683748622315172664060395942021836902523460389609962067821841340171336482386242225046820179319593886502835751753809376301155184438275940667530778386866305115148734684813276880760729513169164745114923071887990915703147071758028772362913487934396066486474491967213763666336230034951890546999632315287033647613107700792321002333895331466950193879795348565689555690296415506862445255382606656993065998705369189462898970701276914272184477833460491541801672836868017356243611025534058120728206295279423867383027032628270627869254105592487756351593839982897007465945762254743644376941274568625091802072341988934489748295695753750030296900011190996991406913844907332480719361968938750194553447570776918093572209896932819528749201870795117624133096714370986488772900443334937606505736395632203099808394499383532130910736492017915155380207304972081917076152484170629281707089759443700002451519573215707921236087759136379900265478045398201239152428972722720399707105786490149116047407735892060436385073584128392764773441505176262888534464918213240702952243507622429603040265423176746511813388289140569309756058153187623975126489499898380584917910477622600003051927563268801152274852508380235494293240866486410496394827875595599010934795975802189308960446353880658557301551529343549773089238634807362377380078451430685934191501558579331646319576846264065659959219598870013082382527577148898003987420570151523150655139184384785298547812352079480829599653523659802497677731807038957270524482546590229379115769331217465223254623679753042733716139977296637224795456362179651270767214724432985284664362188359787408837870662042402535222519638752089570952287864887270364903654783889689750614486782795984457351464216176162976822334738139693145120623702874383722168876461118080064628759333558648299689131888872607417329552911048010073044891041376760188086511134955358337341042943150929725055810613613729198654621619377138676635527621064980065775634054308352909469826538416217281633159602550077023101614525229456969520039600302212485183842133332861993629800153324585075268638500977720993773712442588711547947983210004143847633217072904317854812457571603180806104291822922829670438112378045810639093407983303628774502153767167862110603217985057734044787975369733697991334502782633356424040118368162296334804192807428612035885399270864388218653522896920283122189793616573704809378505024858735446322803329668187543372104296329133101839896101153434624057963075468434366871938017965068799837974747942044690212983283940512910093684701738148896053750673008449612397856459575586036096191671420609416313323446571520781071368099869563464395618810047454205622169204916279593904870618521954096806961723922005677166290474282161394666412195284737036241042488329997278341531927095752558459478847583516040981266990173317348462604221797681464302294878174703868768643050328438232313228559923873196415460870966628924641470757104003825876454793852073247214106072205663884511801053907357360578382855519106959401801833162913784426634717825692366079780951494500969893695191509632250648936619591416557087779261991500389824670984093793118929169393468183768393074168732802542568689231388723578548492832055830566653505527607099926320643609151931784599855242724173734482325528904039537723311975054538540953290094424059080116046456142829518066325575716469271399947253054278834682921013044114878223430184296392059143216949567879677927558060518969957116208159174077779904502208622988121085243537499346575525189271591691697616585852134858362671091210966146838062068447006265423506813474899061911158335863080122597360504181943043662357610353307715553293754974575849701922048113088885393249099412275247631788876393394357407705752218406207544261028286396246229185014947578801709662470657328782675263909113059485918031267154125374554302750188144664064263859777781604282904373205060380403985154334031847026649204169584215517796217187943866272218663468513347285703346365997483976844243240495353476799884686621447456855306688434228049416112687924561985837878218721515168185353946325342736163751020316620091680202098675647622197964107758566326086657087512147878878633777309525286591337169369107055504020045484327250933928855461173217982701522341960559295236673506345688818390582932539077936942178207279398155433887225319734922546688438025838576492480902586845513221544229301532042265065170996004812815880560978373390412782849265474621172048539397087221455505655819638231090642209261268067953769214345535643957639810689512879354397909315142961968601164120877868239025320654224897676018630955700030431795139685656456216055202252577583665286748441887534555859349713809296608309424217060449129312776860300771949216399002799099114181314839295738643478732417139758468245052033659892451270193357647139579775501692946976913495841146534360666838918654287147399344660276315260552427350231274787739078149329832316738075539365534901821487443620894622110556406192921995384143466568911506829900797968691829110344261465501347328520471066968709938246329104032744317204007176489969387225987099455239843253490423632739350348521254613658902952259890551718097142145745276550677730220283152318976189477897275120422149560179405138872360320556785913647647304961206797856698881097783163092585806955512453391503769139514688971400592741234329298727329354853240687886185692038499517504862663326074852921914689079468754662993267082938565019541584845685071126582238841313764641721504065436134395065105083356110320980261713588991912867278654421669441607473803292921019760910869635996161476975628196855461011997505677579396549270984539175974225889576857473289509545615191729441481075973181292374167158553068260547345692613632984000379086499054699100136676540096677699235080892415688323838921399403360904247129087416287312922210249458987617873478163899492781295535228253401829279144387597903040931687788439791190757295153236053938241041742590219643936636417952542316033732108398058966314197744132351435388211568232880465139907246921970400707789007656400473823351721332491394730420234877295529415143159862713367681698491789291138413560232173370776130718593916322219328589730293982432806740248388617406706157032729219227194705023676311169999890803984001220466217516091838948621836370780562884155346149844868114907263393023557878868099492172337791729954137489605580783383586221965329880619219075565596812878141772929478134345217188015802344540919348142664157521898864885081310683880206215018006293934936987975650421314094072182586264082580766022308806270667567220992264835442835734290807020074649042157425096784533259405622081418873579700973711669683719035774432832115710207144375290498444394142398228356258368932896614583829911026718836254376263085351070322441745137203041931592786021851390221389654385637391148965716053753663321597533588180726683842135245475411063899981541576782622250596023588380538226535297755541642218211401205833383209809197073427536894539092286003345420323570973658280386241797698250703495486705518169266691765891474989178629593523642675420322469169467050603969120862111453029685750759342383436590690726104296977449485582007210767858068756427375951747619673925747848071226771416904446924555706223570696932278210271720141221355306084562545906975832364839001693450575562737592528882516632743809847036975134486775463024522603166055105871623142412459229480445863280646345862146509015411560908648261397152101669045604315792827343932943937741196456036497485584108499407306455963159289611023623470105943542669524273609560770767453781647753084455495522011837114890474007719199649036196562323520583433942582588956757231972014470936406229588353354995841033195155905551090150150819786686014733791640618050654360867216213345858588595088623600794649772600844236636546866635196176586389947350766616735733303023758468602490660635894171146360973941501479273984464154744333142019855222879961187763393254761336511758734808224760729408592601800871532890072327683949134206325994997426129341104911562135575598508486223054437683032464255251533729060769190836458643094390454329848467494613504217525849629459736354314912850675045433864615041297618117361865597414652203393806751263425011066235410926344878525674690420058889999808001653440173660766836791904532301590238035439125106655600514193358771728514091773669196178085983482815918687792269842243716673530444600114914521697704287067220511176523394547673160245708789865158707351958457383921616829522328519036740204284826634378096233664642230859113789772817260814415997940831398882521133495189003999121739932124142231430731168174667852801573879952995376286622126280545135536091543828790368828985384032087714073139877059171459776393408334453595927533948847800912281905384821480807240678791950567094157479997915426143811759236925222945767690155728882103692190642872050805756189554060096947042979089265139294117323112622719113609661540605408088416511519598013539271859243642631179634863709062588292857079579952378217573222938219027503498847512301512437117054003714675172193336218862398596470945264137146515968060831893995350825544538851410581518621487908059765435195344700654504715264378835094055145621834692009251299826612740225863274730796771635740129963446604610752008575984533196309952701530674497673435392136811056687160322261691256709559175589353168388073089808405008090112837533070831513787268826071289425985970969203497018844859910183677132933927434995936929935909067768169400213788586765257285206380124470340444309460167055042664250943946640256238852819845996664589114013404699722473748369059844749610285306256011737938015499505521520440586214359555070638614396255592776167125802601095727501185940092562357216801294575598106241779395220071033591388369526031626792815318128751025244605979712486102343278148741130156430553973570923607858521241580358082989683001386854846027014731568366785940122723529480158810083827611771492291228911399369518145604097628547646397575813035432828728444123176805155926636708201605113860202403894047305717123553754967328455974918659883207316734359517964119162824381594994901680995338605657979597087096159070414646172433613461856185882050941222348487226071693688996967318536183392614796303564948462869383271062943321252022741781068769218360254095018667038144700891922308252725873297504073679447425663068969588419275950639338699373409968610704918695340445184579359615531509107458682543600348845988512377694513043950298958205771062255650384296208767801957785765418730143106690864681341700532342454822847724710636418056418650863999667181398022762674087872518143835312847209477893619819292405403708944073280403149305933582872304869936973298399672293096606882866497944645232508780144487762335681042464921209466240118008582707382810265179266839922747329588292900438849732842716993825121175152369135587932086971556255995999969114085295089563459729670041444081731992772401539323385894750167311146709179006550941608819954456001058960931270177450763702270977872412319107205088980938591522248163112676901106279593853726952866719403563035133559620697759453663847907299738656473139351605515978695113301014965045523475984224113003158286319744591505497806473957519034720893388238316726341661147607421505107219495789335682189497326023001348119484738404738673366918033583893318546715807352969512832654117000661832414400840735866870752847415189068968934689344939045411049805722620541812824933474598234808391856080039687884965435900285608112791847514362365836167234517891187207282531863568821127417100641823566791982162488486640149911836785754905485346834916801208781615701476618862415852408629497317596427212336239095089729786519428256235628695701943584271813419458604548393411817065317410995944529056989551992575136889521090623554681179804064608233574398603707221774250342943448637282145958065111560845609096258356070671443715067211959881877016640666413285232581719355892452934494478782401865565017532925429954621895773111402892431135796923237347304651847731231083823378496979236741175173156589921065904207727367235629398225370390434819255045901398554447523198451049251468374090631754520195933660950439009490795866684314184236755818896737695862514698533568708699994457917691573723980992219896387290204132975193962972385574055460317018009401769226950546101825325054479165193469753688522368234645778231323029394157504890005902613227157822101242039134987144022749507355810118552995427542854309757022638620231405250112684672359266541104069196163256474277825522765231467364782332700497451106931181565521926453506084950910687418042175642747688438980535606449991375644170968082817293492357646125620315537486267549136871505362418387936425271120947639765205386442554003967028590821788875153552118516190998120147440532219206051040514843695790272772310392708012546676042996205372609745541520815134141145287478434294678011419863088499763742435383356378031138315278047475467049262938142891780202373129482452546693016457872056040907551377399158457585036159782404065900096254052009452066282970908709422654297315340549456725651653338626982975727867114284445751368419132054673617749707216275377756696330699468900442647051093180655173697114683453645567684881345255712950492516260107523442186020301699305586290442598899724408121894422597355720876981152338795390891087946780226567834948982110105762978376673053827090825020611786857213147219773995183826848490250392077884723122967257671474285903221260432407786518166116967204363507083238855724419954172107842211804942683276980095770530305086782978009351396953443894783454331599490710716496929260508669658598569049098938218650470648014059343688391669852202162245929234942452594300266540169123681152438750442729551278830213206530620374531663087152333011313779313334669902722477896727012532253648548127124105908036445694727419705921426401854256541719360247469178609115035183034754813113094894872787140636327970578428344252858381168291673499666145251211713187152800382454290216902625714862223864165079287505711751916504565041271913189082213716877111740917174379658124348992902832347652681853098152227974353381372243791827919394252651847339057394604932740267284807912271442502953117501263331622917934794002914475684539791008382143007125621568239120517241596248422693987622600822179189286570954482612400218158518064750030707921727963136963516943822376077639618255184849987298241771944161067257107707887986020575317407928012852131855651842127131221660794257856841407640238318516437590102213982283621522097194858457136939744590005343219922670272964977882991046572979667335651599921562228943399748757735882260594269392913866254266145653637588002600464984140731058039510077583668420580384139348830936132786807015753490791494816841299754822183739810046044062115074653811890166204052306891566499577270206002525367968517961686266585446661555395460319769511392113295895064950449793771667676460703773583243185898015391326620212212891661726149719585035888249375233949765917368625776463238835095947005162846344967115447058830350242875120703601822059135243786633392768215268168363045562289005144824293113308943302587512225458294827321878474383461486176119794322315202732139879217151885437956608578091109619061698666766306710441310456312669247889968096828723270978034099598280714794254779915141501472942313336855523380204233447019710148129022521164845150567589248491899371343343912865749320777629712320152267214045548830694711242511372591693762492435529686073774773649571463510997235602982171868807615937044397871817113292934122891168432491449179518046137161052405640617085430973875432848834826638615710668684364989952950281581039921727847638881618394500561503066806332858155559241463840127548057697290994797432537657137294516817964801444539858192837336075971876270467081675486544768787249969334244989623147327788635838508667610556128719421023127547606171266840162550962186030205139749608059979446521384987666483505027442599799032486164760669684993922149556710130612225977749446332719629512487396797757182566334104096494047348358499141398812830153122194671645132979381549779096466743111558979774337456685688850178098507997186739348222591618153946816918653617625824705517183535029023875707985543212254023051065468977470043486593011253584905514505224098695221786545235265372961736447723497502686407927014222954468368511649762059154114467458136123663374472555470914185641537059745058737800267782415444074545092127503630478930788279011508712982044031303869754740113926702322477711569936774307014358393965997082544995725217162801308345257683554036670977692489172255491418343197397258073801265883665882420566030012498177994040759616955081162221152488505168795166035622400035123776937586182554635682203849243331496416804033641980107371104176925232236468573721565901397781652775253341547039204901548659056916840729517482032321652882718439941923545300101451905144371291307314681622811484912170657908082052686354425108922374930243695904240804089130709003849093669540961497168632971721746450447802782627152193107250243821787483993626895479017977087030510512459972952626263217035295096024635685964129779008845189248899812471452127388262073854254721238595489664604723822515834850379615438064351620593538136838528606163304500133573922470568738300980548802405002414896409861760400764634399750521037581693264267381795330135662918018169875827442117257835944938072534884031923369486103634089308993927916342454831060657352665400651737920131136511567023185014577410393254838859759716971057852250067326674473333027322918749074978883780920467056160643682196371893270234617609476089344061593270536154355305373193517116466098540579477539415572092819370540191209797874916179703381282857985728118402991237214319392100785292050594737336218340278107875791021712595912528508403801196178612245965392591831514708050195614630152976712197127796070422887648026956927117029608008109446884356519832661983413739419902820518494057665620406164745469029884211693639778484713176651610076679940636894866253503888919563551659227471835612946494812238402913644184943700798505288450511673054120274765769094969423586526577970049903258872558247695491423466091928412790533041605448389316740626662830871707179998987243404874097708160769294993386728151501038298518086467700042842743450483807902435711964857599460549531532132828141020224737354265542486411551150654230902219758068316595318605626393497363709617097586793908598344926207150406825019699320521578817568311529141197627636839514218492078965622074387121192857784705215910490262739814993333209703859081087161419151352490043502085276665778732613260526236232391247626405368333583628755401431096255541896828299325166150563380486070760605502827069896595828863544835895844682216971771843480745778930022079935472573978177175636021923602439061686738573538587948196638234583886703728307203804367423822152520822280073526171219608667930550623611989486160516688248482339331772073154073872623608843104255096166931181457242181530659015357465328961800121054145150679546565158976792557674278807810554563401777333477889614559132359293607242873918331039434736641760580619575393041074525727580809270944134848896457654778400763112749128093468932474395368917165484292544366861731015305705294414308257934740399580344010992926062186989656590092296063450727891088777943108663318239232432592772135460256425235220141528739024874573762000533010979821927337143628651250733072881520802084302591775038437396754613356136585840741594420275551234008686419036158330433815341100640443925453657616227002369480897943526144492459444820722025984658927367967118146135575076937917965498843739452640124907516586148217450304813258216538077236435198378141288823344754149030105307280071341230156582011659419257129950702501044920968540957680884043709257645540997361971824659606474902086335454027297777059241001572431077461827150516220501680930769169726719674409375122612425260861814902738321851954395592593364644629311243465144256363354203975344403878869177068154014256166130409422878516028939922893579920435066695125676394689012664724692887628384215069211666515018288977149907866664844882335864917561183586621646002662083569579868125179197221378817632167375612148994169111544371490843592479402534314811223979170343017645258212366016231389595393144676559141339081615435061494681709029580020353591854073320676220364188660619940846327424861554330977354479639368254682988345385120246988576395471068149386988654103976447821115582448516475018307266929693563125392803892273462868124175175474320290652961955125419187619337056431126531106099721167853121910991510190890771290581773511864009548943001434462255428477700122285478888359140684747153729241578909293398362360924309145748469083399233615827870483203859313110570398273613747597748037661807679965327579390068318998905383634977837950852502848846184517646689611493917056797976929611597166130486507325488157295926737507865450421669394648971622035804888472162580201110386253201113257190837607612768794981607540116080946481732591223095283044033578635352784591704521397236821677503206152976126935905136496469694178419337559660725962123029542315753827823229781246573474697692498350596777510747134457945687654352934617685490996952951025039737007610952034400924845333025097022348745112185691558679307794455815125024223351850678337306994205313458957545553796403003024399009281839816605176888185545899400896378035207129758545303064709691049897217991438264777830187149921340094757777099191532026721740459233802420792595236456668132805523559751814403056786608548575676337475944394576441694690133989906387739579587264103724003054739653663851802402711603375598633242415677781171601830749313601425974126306235104775445810517932196098083981585067927911415233870502899988096374338530972552850672743466690472244799483813395947915967899306311200847269196826359071703513610759437210555794219026461159373717689755399155202159126220915197866326369959014410468727061913494802651756103046352167292886732449125518451368162814730280114964923108401413400462249663384925831707863371840216041711728476322774016915380416911192018928923985663786610596252699362159562615079100430938001730734431657527549255009910884076135489013887070491944975569388151295098780852084370432043868539310794074949006673524897218934949799892785274169730808219411664137943336427638989435918599401627849372013856668118375002182009763882525984171071370938803618495999234249884808582065784175881563786545323120866306350385652733243496044030101126481652190906400822488470024445415983697942266670599565914750015299840360188699407958056586138244431138899080800648168862556506203194745891363144356825108203582389709714046573266290887842403936385841328054743510736711852852726097318781427269318502245827859973782026045109597100153797609412718135116589201702083063520008415786032032004915876951731355749709740425689056404112408010336087284982304389909290955690520834570671883880076175447391195923417368815913516391558370653628751301926827246240359095983940577328937425240708540223110062819425131250885401051194460979830297746174647842979696798435439576030024300953097673251689346508558621607988565204947964122049770497993812361445563204232257297130568265605079112265873291173149606899641894102705431959827146437933217083378264867140941649555999159529594377265976224927309669289861326109638308454657151928627701801796937212930981303854013966615646971583306732525661364747160144794187806761789151357716914050809450344344190182293212453747428129513818578764445625448950242831214792779385450350587785067995070265502604016108168042642593549899364896971650575247606543164822593869753016274162025555830220153096345755279710573074949417531010952792346386265817796875494209132194174568289752969502907796738705187067417972366460013061199241595465049428817686868625597992690945563226235460232226319201578507583127741649152059143278673386353282433490247130473488058298796833259932055379232633060374873833828893145317474086778841884733093920979833368029375221604930526695766570579291072393013510825507659380526782985105409246540625891553528294945208436150078962101503957508123284752817474667673260083705164467773350266336319275010031782601058994385323448614896569095425991139755994162570471335897589931058549842104347772129986126478361940160968261836599593433336038116994952003541068981410300525455730401144607706459127899671941948180021114724651375572905715174867135545454177709477012128186808761085476986204186484560385540159621867126651237279565309232879820071910520693072401726402453115581786116104749478776282023966089840640113344654525718342524141368672985442697625957308526143748495372918929296652748445125234657912871433451228317055161821936400455920582898357484965144160182064388152083594069847071364652444708540796227375444045169685403002429516677558722046565833858497550040277545537483297237468336515775975920090254042940222393491839037451312423051557439282715887156776643031701728544845239777122894013126032959504390202573235503498034371955647170922237736180438024186181271609033406330383217629352061469043496091872945096800838955085687980497881847033137835848755250511633058436391027386175926113397322563446374476385043839540389263057469287598343389572985259964523237170937942334122466685928958984958558068587344522761674375827794327412252958271084822528071566938124835969308681536739582185006228605651425002631755639101691089148379638089674424869346301369022467756757622745495584303875677336208361095238234888778560593872257143031049057950957792146025987946867614976206432881395210041891558488273564204895951979404675715919657677925328161636617170964741317886358527986894354606579406104199490715208902192576685630816469299280308495448504431815759439421529113686274764291971010339578845149612661911322618563270653486249849883296284019066692631282226708396668662895400355131710469438658304539276992097390197666054111671519102077769083897010769593255394867158356874841343964369361721580454510460000841832307163214014474567407478943704684940339369935962084664763748830175179228394792179652711871335975890179222259621531834329328554416729210726267396084323123770442980236253775757900854947875460396821277691607955974518801378061713115384712065528989346145084625845662548801192022100207536897112799971701412081964341182562193530063426712365147935438197907800310066395852790790361405949464119495406144150297696252009845098200517236996014789976962670753545462013448119926944012303086964193674013427770655862482248331184871281633911359950577709578319687822859622773994065951497611456211861846007716557494785466108104324333004392497448751436492174112696082821216198790194444626406442401279657021910784897314847275270906854577672489159853159846866608778761942244346136090256354808102095263829340204017358767323680065077711831724432326308449208379658633963907947571812586259282649718579509037093385695930870674740809533241705388396861027653449830203633402046136569019605392314490788029256097868545545297546507100384086676076057219460056008495360721636514167791814351608681532657267154428663644131104944768112568145916259824599055584368554112582864307924275982816051713828825033529929880952835589707929436124295125070866508700662705525938375139699591603360315044969468741203856724116658810836092589199250165437167157689613132402807812278811842706592007955346237288866991968485247550903694050096622481391329180689454699345172820562019267279495477275094313171567611745883379170330436607235191099416413956360103702743067776539981872181507844618295636075751103122569841430823105634416140417777935986273580605434061770842048499150945446304852716441356088521177045568059153591306074503450118597879072690057069830735552785525791487312698508503845940136945195942938011662651498507517610987334879565601110948343635331571714215617418698308728036183170048327030766752683290701227262011653137063435969033531969078657448965901413829544127929119691859491392662755859554910500425119826686117423742081442754455879206294637525510172915923726876816652497318131551767549073067966585507132789736452077906956876891850458638412674431334958091750674639908815389560188661885636269936089270256100931227517377720524916318482742211079082322538104593384387322340331623794641869890180386682163763059075611903108545297177141039517016390055823122342941889866503665301668402770219761742110968354913151367455128292852852268510806971905570466352886881449159000257566727431671439453340285528610397255349092747220905456607717525392297005728403802455287991257420020661249611917126246383405468036260044828309828369485688966390094457687619830765157636714615297013205808457568473784227430077523321162071159743001048723731689175579569657509057095534957719487930330111451333700980556446565462787440577477791342120638200119307918213738358865531173604482253653632170947972711814203682290224378412906778792157526998804771735276577336352486578891323085003868587932135989647525263273175870926026722049158948990058601071071188620100973181928227779641443396403623289516562221297711826392975214697005468070973838363551785667068510731569121703967588515612861593479626507761252648408544740183248886062536654011836872943609667294850997148777055623436747409306285903310572677999489222403095850498683393345731690570894471478533626327494812745826919238522711413615940833519776288492714946955029991795571154890648039445258187815228114789970348325437168032840819563245255395742168423838405992297220765833453623155073489718539567078294987453574551714639876882485145181965414009787389308180453479588763695650083493328431759120798424006760968909277304383846391228980709257464109420225825927371226878485336074869857939566126398571984874392855230945447950213470150955633765806573165113395832761398452341230114584228283237950904608802241591370696417051171988062491113728391133581651353690460151517579364171591165877127441579500085723226315136638388224717854252722436218758790088841479878162768860482708474092571103407672482880139503547203698138024375236871849875331045871158393649143200666735406086477068248509623088929297965402605487452235768682008617282169119508836630028420458030879780534093689618794942785184337415528394317376490461871297185376328143789930744185081467897620109816629879549658914699865334150819877313113753914597934171671466831944460912723973816301280014092600888098473917112231314527605289296711563828049567762804520068637553371380825408904507206374674030188962993663418212729797179814868064318044378396735878572724356201193859715254121113592718862886521676315756453861129426654907299846231966223897504998405874848011136414879449371107304482333699514077635195072044434751320234602326980310497295676232945918066626543886271279259929161538684413348320569529999814507007099125718834884429754486572389650093557617574678630074440568220432099507864203552049081852681579215571217788263484211979322900116577244948091442533609899340777026452189455056493271363815727471814367197096539348674782244442195300429699298935983649869599141255874432460594510901365753573853438004161176339551839693995374789608160222727352727269044373712331388059307471348085032284463581575076934491316031138793876163136503573468065151041825689852711434784189419591389746275972467109366261349133532431100534727886942549313704531025008321197064711600629472697895379846612981124654540550503506920628866102362009447520720777573616396399487601244990076434709566782031809929700023086384829746698014283204528750336683880163319032064241024859221741528116946549090175150309473029607381724590562034811675099998432454511137035822018240808909460722856305025465308131259264915032256776085014516403194947335433044263161145157807783188721935268119083349713950555560363241047914349589017530510928399978505068421400658679359688935618239823762407047530788731032558851975889993398653240717437888058935947378481533167572622504362127938716731425441813368359849511133731545173383484045692727725743799347374304324581854899475887593972672277186332474912130058958468508451862720655478493530811915088908586229539181945348078018975676213279116530493873540568743714940400147826834475019703665268744534964738145004094069669344168085585850753063891725168891465178705290549696171559597837735009835871540800027948106852316814514282208842706265728131463521514521137708908173009951197915616931925347867318922075282504356204911143164820510636192643560422168502038964163925732272617397130494953069908186958333613317939725061663770370662259605604125331588929025583078239582950127062570682987202346209856808822244186726398067591142428351315643225289701207585073613700427375011200796041151123618924403738985772476017852528747611756532100926907074007584435789620550889247239387949737447819720910462890044333782071899601232175205367786895124416991797212746555806010557957129458710577392043718391969710925228037301142938383942844673457245780705663818933619470226435439461511888904931767372149721381281041193855717904290243917649373486255717821563230250809780576116322271651984697075010812079921830232697333558954097503174559925459198687403940599536595818108818638448362638956748303557469624546399095191017294032222294774128962901636817077418049399792458602149426958688845769370529535558660586196847268404055245514333706772630175682036478311530173600413479386277714113562493984512919388500329177949555127002068629704220722988860916884970699383153723989473521217670977503964989735384125070884964073958409473602095022042637876391508582479106514727753933525856314467676320906412393274983672476202891870592612292373676495679919576798581866627857764541095417465609754742856875321434026540030969114531113939624777012680854290039232394314921850923790271008836139099071498523497819658090001432878322926753794495599030348748724216560952816721740714041438559712108767328262789043268861252996619608878762783582359956221810487693508551500635402618848944443954548943699061568305245082508352765687738064551662580203257969339974745390893743240727155492403710343247070905835304469798588112281644695737987941176234899035466218003434130321355372555798999825413287276045150653121226414289177873792935140153302084894747623283299364115254554541781082170286494503353866879595028949469059335600624118310556050865534126873400722919691957139616820200367160767855643378573330554880752486297746172165438937762041308721411875034176986995630955561414106452734491406360323077973836067614008619482154840479425358936582180192021872374115380738297291048619194731502580135966151515937130723371992115008793542749468411272683193123847037441914965370468148371880021370015922272842544060917187333941882614630435221953088446859638429820914740779529685815143530371740404949146713800886901359156403025396057587309814613751761488986866570529170015477507693624517946959148311356775483820716276999919484661846508819643283458814130411454887807573081865938826644645211840543613377225161936278857560691170162611323778225403257614747040963794332091244730120986200291101597288470786123863965992211995932474992707086219012364687184151704876016008804610878119222453592208384331459390235770021230791743157320928524425520368929282816987930160256345616666482977796411085639460987327724766177304169841521647329570745614911185626627470647919494329927968856686730383030499745018304622538623141282513292610304241475294405299386118331217267578428211800131506674755742295926988022138575066754380823896866584932314923299899767896444052971715653302111464855962375916615816887969437560332512257936959707681658142015304587674424666907453397339179672044090749508207161836906828755901576708470632489380096915264731807275497778591614604767538366000704881044787548043011834654562644860341275813246281817038325653448259883103064983306172113971885726890302196770497712443331355817897132318559281264559662555353998500603019208667609284435419559757635040926245674188419671292846547991959783329881736596358790613761747371483396642312631488615864706668757108430568531865921952773643631387990589132521500793064928606310920455451382770610431383991080878417826297682546878406292054146397851896247550066458692236561142400618067766895556916251950638488260418259996975796355749590726350379479798785177730218388258472121294402633052491563047624957461003955070363960331014236102163598095982519048053318661606940117890627652139791079544289006700270097303455820329007669234566112987853421017416251328569632566693041330967340960062687415751443053474311630558263620099021895596116348265254177577519353326989341221350799958343420753132593058092855600623476205834009854176778381551823735314704053187587648139264886443753182920796645047845664474042953112308155458505566586009811194973378047328148282398479531135522481097314159664151093326493670959437110834643487358470841985734594004558165729775019088778271672057482765687405672410535391010092156292994914685231713767928051865470377811199109348730977726384701373521451993055545742132582092400684263127299288160477922278583016355233313291880240664592996985085340418811627899698684954832776057046532178778742255045288993317917027933422562806305164235488995789511971801725204010018274209289423384887793698506024059844226593147037582000164247560312158032704570783942754072947246815778906756943109096798824864562317222003889191018846811268966256319744443974832948607019767525283431680140510115315285421039045253069884521414218788059633108762014637373070179357414137674772982533767239229306354037033631086159785328092246343202482417616200772896263328203378160945018321719185836828159229647976122996168725195807605465453140274356696541506612768587026361904779653642237923423790184465261554591793300769987780183211773491899059982612307803686214498788783931833760343395547749279407181192831507900849486199491859060450811549562493307640074662469811512260356480502526103050891401517440391861437436335371635183407250799770406177905826502296942667185900010703816178040930154196921464830569226946377998872189219148454990015357603204613295422446315190041018373453093543688536000853651330912689885921208937057272112362368221506215343770864156841234297061119671820934158584213077202764787206110286224664488600840608016071558491420533583173312378568449918765490729274189267608958097489082620472496925800770945500343726694823001386615517884694247313954828207048317329271363989135725939954032954799436492543482716015707924577712646026566108620533630008420024195676222436531658340955859611568566858067154995286833370841469621584316660494444473309482574684549105158969694390815462054396997449640783229686981339056658646091566993526453468757846240917747078415637008122420181784723960325599938925571641384136680382685840948579284185036167420825243206608474710856775486005261128957014400494183409136229318180514071713782614648253058564104118251112960876929294977743782965913378483321589913263251066762438520922898097952887067938742464006425371004564773076911516954983984018872725794924884926734953771538704846812666688084860831067614750127536812633752670086909724568682558238620895824624987320635139774431229994182013233299866128406814870667215937025971402042686846956653816239687187194841018998593514385988498501826006226247803384511624977717332815200275823935029041622023513008652247168756083918766585574982071244984004106483527005738358293224942284222302183706474325622276051904305868351950372342930465834840814079813638453269936101157696630240648456297761951290881943279281675597507111225525001751633457817676694045235592448935686686083886528007556963745992108354047508398837092459769316822281598947128535795211747151738400770336969683058044880456353620222989001844746547876631596718412424163131584552701756046088256767475274350758751804230178120580091192323095458953670110732406898818952547284539848166031827597437615404646874921984782260664881063495130511582514441776223707083659853497985719147492909047889469217165731449889219628541549894346022130443186619602983328407088391296111265998304203246861376127108024253490666834330516660739926155278658518791547972314572887886527955169568183528930139782721461673789847222001457332707984060601024398500414486034791860936190571282308212463295998081986113391864783719594376916133541851927898846740245535511424599634222931090422899037855715468668295317677025633077537795109731675608172548217764343413000815572682387866681207901490459032404837039032928733385530118777972039020140368615329227663699793130599996079899574275513066963970401140824792403933858700541819076736183141355507416395264306243988520308583272902845592493503341216864635772749167697056042408151153550591487078977600255485004161364993419261314161302089399050803100339787519954355406444471975827897113823852427324875104015399965714202223849154143976062612757532942283810671945840663981025084836116858757934490058764138550537968909948058232159983826031635057791777970779351177072478446126182607275925952322486960343758196262326461690186085170210221177305382266124698597195632986113115850448532200570987418316151777961239429522152831682026478825421888912530259714019222837738081509609257622196610806762121632755827990168855612826528159194709742347025677500959695553929244013500152652739199214273040070848406955313073103109389906067368690418365634307790214853625381704070521155167678797025320595989244274159250179559553773708116260383618789423994044127090107333953039189806085701743306520637973968979455246912716408255076543575246164764927650183581254721802686199218668802572746472849541398492366202923474136225917091357276188083738443859485687580019766989614048468465554798716580656670654117665391448754722560547011330459741869000310026804103022651209608287713596387788769653090006675934053152247613138333018776628149193836722972779597701291464661411864862441633007399525315271551641139497625966448459217271073963693362095993685677196525836296829148213369266359577413475491708464872693274623825321761817458811205942823842764667689482525911000011429967181476130363339920249218411931087436897828370184816361047053359583409355225173741616414659704036073824471758450817632945784122661230405366885510245539372751975986667306009931050718083623375803671063613349775723761698506607809352694168661158422160328937709662593439865712274681154778722853427110120425385325675501262580783549558082116512744670327613459230259478926678256971971083918840009325258790714436524734847221305294540525745023224725582621983024569314557810391659401734032995888779896983062676818365874877248408339869212227124674327616147231359060700352787352347880508597029221987405974684871886357435468182712715119438553736580234384904561667519663852394634971745354430767335124426618458773024170377584590964086649542923631524723707287395954570884540491376914836637975311787409858298629882612024695387452748832035558926561846653594486529564875100332834519530878102015484704750676239622684151300755552557412040662267989773726108311672117570317039380374872681175081833030521296413980776415768260535381596722885012167925767263980274863055736370345571841470936994313260831887682303310435468034900290696207893082693838314737171465941372591414787585637110440466947739710953209197400457010281048229605643719360573111370549007359440615645387463915300827641154543845041845677683828151152266141333167173084692886281088378900726228217229104390320320832456742959942170972473317589938779986141828610122241043384047385156257807441705747474187002838474662545718352796616073473350685012688128564116079939758009364268729958529500475798794407167874990783854940863622749486065545321714816398393980810512058939691229033836583024014831394967663810968300381836960482616560404863519242157779987910830449905918848069377361834956393802288899638663678470548326507131573007829362696006941751196687629916401847930068303934125199787672369992185755904585560535371059809393619604388731045662034811035869286276510733228513167196702019785258275896348449219748941137104176735109665369955649695590680507835114253831303063547589768485050055086618546333233717593897507057012029277841141185638217432311264772833559925023279161272742530077849861982770320417700336676348173907551947275138425042005778283207447991448719644710963902315869398244859242556806478639074661256504054138825286276292379378744445887191692325017154854737749124562155241487440795735801398376762209215523142092864863182616359291190615155413239269345055101249542452652802944165181629553827428693386409223680863859246000695484781993827875841406788130498178258826897999667100465404946561336602103675777230377610820201367434710795577094467406925637322796583960875449474223796498118448409396603956646690281620777791623715611654179827006379216022128332208256073381773424247330469007878618010126643032374112587069808944144196133152830876618444422973090394705879295089136286402336977035886881382105909874054947621240266724552481982832576800783347313620069689352509177694657378156812964509151314461162017651147473844003731488232752610150165651223901268943678548706377487976609713925103140525192567258636169158377643725691869791659583380246476809594780104524399094791288597066413108652103532161146767451181205981640710334129591760076403498701736754501506550089757406702103588576094145075197409707225739903930728818032192286501473693147518878942577299874111217734688653782843503953481608270294428498540185190106463497945226324778921990558624445087501068747064795284028551748129061762098588815778215653486645043362236198557200019413029455158011058249416976705315408142314434009683705003138449648103645818812143057184922079638710830507028626349374790180715257089430103125810130497177933933885188314385015675995647184593328062352822822500655970269367737652174086969635434004480829952852824860035848397373204252940833992629481828402920730310492003801027731112623604013057214371915690561309920714360710152904616301689248869969453360855144381848733566075846272884558432578098781715478800788527447158142055669769639283169081028909962531485872684949173366332330149800031091013756106689167935186290297509377243385504307789617399451679521771519944211164943453127299348568212190840904264668809495606689752239592775418232324950135802187504279636618576805775634089839123769152174082647077859632609653118207795768474445728033599628797662877414231781459082583265818529233170968369680036693465314784594478120685833364572478538951914685412077760497151536392247467211938152055260516534414184383836247509852686866113683359714420795163232717618140183763509117681744768336317774944260982181467640494761785818292632626610699210697898303246185949850418502125595502520955830924635686362785762733957278293619018506401674719376584433414888172556745399931249486159595840218869474252667294896224825114256015095441578790205934054289060285587091746563439631957506379068054607683188751266630997433388484934584608418874055819036439269240913655787590776700902011535581425713682447844586444702725545311251430088983844318160139526832672773751804595901170685806199222210723023935183482465695885446344638009463441266684491291033912736119715340048131411097127072277300795000262607138860707240843541656713452112082541462162636898483219483657537582072933832755509045798825336962363841955732716179344229982404995361039284054779265970140740143132572086586229198678522790196529141453515556829286036699931182022044885237610890249272451276322122778578074237950682906949082700900937097003189205772495037651279865967338772307604569056177308182816029155956419184509739833635931151691313891846413994417975578476669045932700323658009286219833669569374902653168802174947544198907945563626697144664713741339422142981104341096265094820711614531801694212321170376243027837255772950149287334137832105641931470836119644610703666474130567762392728913637226708796168968213152313255256983903095297961917541464302805844039245527576078605517071023591310010439458586497997539252064767417970346343136992336944785413400326348326231434188382664744484753678927618626880964664208530731849567621392128834252903263669905843664822016296497986379506190034746567721652903914595575302885171820091950813776222093424912476657935451889846717791548688770127099240206622113028471270660492274174428450452654411824835476874420925230728813851268407665374692488098153627096692142723046338905847022859391125807020502930570722392873758145590806537025005126889302907347558254114957774655818587504807949871898639044128369751115973617911256533175333681933586027775662645990591397840089738540560897448340624123463608587046158162051713850302603652252325989859084136890752319419676475966964121156000104094246969896891903025600253509633789217161533657847008000926533071973002535815602866647451239997911027299894215236799726348733099473826350164743709022183402137091622406004770410015861291109639582861231202901271187664700617399455916422690348692766415328124866467390598445655641310943869223054158819209397009174447013057513178184505564091394410121920005612326209566807576290723942002391257572950905480980930048532968336840488665431724004149113343484057740464848543837849127880578208828653980058749955360124811471889448580443022052607328189362264773279578651248516475433772622780620029736902798610131825200606895937078617879502361791622968143518717699087299123939545801466768243309194153953962502124472612009186668092541959575662042250806843576899960802831287319280788064970625157001579388095617560992847242582728868832436848285068819220347752706110235148596806576890642462148997826845383745150576944345580224554929019577306107723049889347784046201066203955594346506926317259022605612114552367529387982079197812990354038991074533943414780166307737280859586040717553978551521723202953068534148073930216683251308747672592548427734181183438780067213467930695846175980209575542002665153455126026385279320274476333671403537486169766105207667700965825387741763409846570301407419958166705305227380754751597700180588387223159285354822254841445296915957671743650168613720479562682121125509781192209699539401374701004613778231003852776923326389036033117488553728429402662658135893432259237654864715757521785298072269878212501121788063425361781277595166124643097965030690044703891488537417108497014832952642819031076137920776869712520002564238585932568127225783926447851509924024853739205386347409154181783530759195040122431012575250684833659856801025735666857615063742417843588722888415235266339298822507845562919242926998634639715253875753283783903878414784196859240660142417502313783888387195251684939822121594170704466552695048820514711909411166283901225701754843782287792101520941652830067014366333880479544491622571842218573456446220763335085465894718261042852462955998317808531513951000821932974234992905127079237367400069315525018164625830636993913030171491866846041148850418641841125159923766624896713131832442495037417232618883773652786164963384851387925137552631988315939659018087974351709001975714612973444346349262431040328871683855750627556637861901939792594613063468909504280452691079754640132317376161962393175189189695700128310659894761381882642867462945210377055465093334052566835943390402315294961788564925996401618377238505008354790564142999786653845095813182841859255626630653882813477923639197758088391884804709515047742485470472590483106929697406825934939164835401941111186585946870472681597702967563395439352729759937943776994658917074500930688400256665023086504995223683253662606061220372482483489736229442065557760746209290496653349320024649287016293045900496061413568848047308079978217294447611063606332793536728258776319517656686671387403849849352420897743093916990363629705667330173691736096751694778165321752119810437219255809103126571919521501421970117496667749712727854381250813345578061446834373628326549685227030039664747011056782710765643963669015845522493203270559244951939573097923916049396992252493269804973352871193218219100334717914717427070806187840219650411302484585189168420978140106683561183626083687966806440385222314413405524457491255240767279379994856945911884387358387801734374610202831999261418683539571072104328884008502735231850325135668573409377516736777518909149061319397162598825045353385277461070515427915268316074211311960733557064996356461961541621505925972577777151806050666041401881530021507842530972710200299159550246280217239372790288315693482886662843987432923966852372089524974326494770000013069581409474630221612804271532925022306511395736780687810373512938945102739660461302571741969116226119555395797313903524815759614120952238655713387447902835767322285288723145434668455485829862181780443152935649282508964182835180600231963116721003758153487521302658389334214765423555892639046739125111744733903758238417382509540473683717674365060249057483795706215573681618684780309430935611413931369083376511302126486429509076406965332313831672804379350529821036974876821552353432864903419145957870788067432263446414809266023403913399528667697623062773380179942477996441874199221380505113094871939180370299659771584653323431830633781491445066175590636455910378952303412545596693484052140282193792603501262404568788687284124175504552396127269695689255365561050387324958899548043777928966999822304477186416731595526227710024534927683680501699360108124361802986078311010159732893184457147612814808925753781669813071905057769513935840135170585718398863667121801904429995589734699475214161344873799209897719616209777837257237158458594128062219010518518899982375658794816753849532125468145861811037883276964853855160042219665528922603047654372804093640232176082317032674255490072792107677664259376067325250353713428210702043869950200369588464304925145840227736892881634982069685590965395998058795640834056241909993299272738348637382254501213262475537316867782227171950034046429723871848190872606485578742445513069927837103661152602112930944250231645412496595989492600379991182709800092491685008452212811153825720025486496051242950648513105187053976047271198838306862883521130325678712815792839673766126151376786269980730482844311744489443917930141548238110567735213350891610721527175069156563760424367757963482169691645557394439289563625297056198696605467081427943039523800528634186282606519247895956656392224474275776097910222434842586512172012452318428696044984843735878749515096595857865815399839554570187334612256361556794328337915144643390159894202291116150727762633172576635833027520137280028649964366276062007048213661115465958540569118816391682843173961794365757785841722401833685554380775888716058130993986183680669959738708305608010883219976164948491728864079619540936239109662865535847122834744106179851858536495595294655055611784409550758613026131115996056772084040500089625817486800576371204313511799019803461941967129182063924920648939244248464934010917829379457343235943823529624866298345923236302550647534506004023866222576661702406343359094525415989437171568968595202729817975914257665874865091801063353268976164835715267653078022155378595862384803516350928898012493064974298314199373470048200207432586855078083014910428086629139704321543546413779214733275685862452534178563123268024118712801012129827047734308946286160590835280464759401714664321345811908690095151145076347413488976803738021388990916431495013574495728919253320151079674900068574163400086908157799428521073215055415941482275842394414609441107917218842634013115952533520902503487370108155851857183889472942769019090263315430280571752504133960939364891727307273491800127727470771984404796465739230878991513096670954812889553340507750133534886810373976491817079492078363866563848240712789358265888415905922823838552274668095416514649117763261911427164566477217264790661859315539123101613984150759119080786417876240824990182210221678251122142159324705494008979036611571742888359979310320080712178781509984932917051271183002603614251475470398143159572909167027046283460911372928579045094831585481912847587917129749615937502831718875727591249207042106875810593880954104774765120955691084877989675953981656865656270770820895690752425031603478804907207654831202235023279496669034689869602505084947589777972851649326492142579787351439895081577273593831653109167766978374151415097530398993950091311232091594876347434324341975064881138088043519838615371723864315984679515065334253185023441040201059347477131242163820408349113481528212185489967964659561491309803330828690909791833298899409818224205005721737354435583695077154296977769781254505482708668226971472125665684563264794668724942407083472275085101106055038908406371464857370499974372055982416706489861501976004094750257688564279143582894971805789834814342897775573940071522477440437501686571110875412339774990098936527618784563893345816385576996788792984563206157018433209921586278112448981625821223235489795057358383405104427321932442962700662486266448941075690397714422072107415487917095920386082582839852083258066205424078741600931786149093699172129986904902500485302201785255407861126008522868257142422495492902445066145201248824575558098090682627312194167046575161287484604913647686659454017706004452679511026165905257892262857478733514695791623088642844583951665191561577507857767042441086520753485434497544841109693993350921213676998803832789540833416748383964801136431211248864150058899616875667861384685582118484393464477073202720788414011135846000586988385620350726323115535869106217571301077397002973945591270759575048093942193727124511754482705595884943333336529371723235080859734976091009470996340135658946119748663718265662396944983674741740799798127212956218694182436901887230922073101955453984460884519718250244506382759444283884574531218514659654364968598898413167403211997042123243021227225913245300581901028128320155901508029815398049127189112791361288624319258047937711884763660049513266020795872721863234417203448875686146887059217501921974687238742177166434306214898491396447490732286613307490365109807653087114764230276525967693834178441611256736722406964390373708135021545935382746939091555143660592613285724862170817279575834070885463593373980165221215475164541466122220016355760766208284029541375974801127422790787725828038731340616008772353374698209920589580487706416823916013698693591417638652931540161499631441473934132143103156249637524690760852267802602150935958274929367700806008604362420398089823615484722901734807267295863010388760619578654203596527796933249501551921193464231715816488232249804100218705221244143160089462284842537873400959317693085596561774110813516565647835381663814876961111930762233761186575310551677719147891751516664583032871294282258357626376228496227281883423528925945053471154657546384412106496867928962636785082813397576683866164491797386498991459349465138014707913201854807556283119625017556219374595088487382572924835827130898417625281896349544134205803108801495294833376315804712528393835022985674572281231926058050610859726487812629821238048615624220384693513055644683478593264948872979656927538423165597692753915370055342216053423614073004532819794593124219158099123028721093202485400636548069501262183411135719474830587075113449156887623993452353959182870124046832448080986260924647881328769005397178385013764397580569235695111825625596290390271368854265452538713087037681682696257554858970990671881688368151315159538788191139253689286334885115323921812758232908470327911572965018887219640157141134871788177967141068179468446312983323073295375236364791249190972764330386034057712271480909388021246141303989809449531373915139960695301196495987942722480603416456146545666763672419915913947802110818234793304273156634006546018876343450749111261248020871235282090151335270025152407668903491183998840641085261503063355499747226923925191523660195076222211728736168091880018090294564559772307759521874537367037011542301070989138251055584928499630054058523790275261152675681819597274725967192973169836461971354695333642949344886835819412089411436836796742424535810483185353733716452634805610920509512438100028156178161653575525638458376879407752295737230767678008239157526245622682161584799995142825902650665883171398971816912770487826100415026151831880429060097303032194213905354001804987533657796773726985416085044390852035590199767401257007955587669151311495217095410853705084642904437320803326709001899100038959704704214376798069561358695608972305556652793024012403816413560078069758943300721572747473949211580879685771936301052013908713434329433455522241122430000368312898637188354783296011933177260336164766042963610653458800903590695327818923922600124251240500121905846799211787999680779500206740479972607521686527259233248440227199965901465690154939642596504136895087203963685607624565341798692839686888964031121852063556329451777393221448385245817027838665635072902542226670553418538523833184461853746854836233140674134198419029084176273801337545917146252809006636320010256438022597174516819616153431459337334891858001790712034578154701642764630025435354776879079856626580246561550556816706046402913026225956248405049037824745518585359151731674769351019211618951075580693557145363603974636393091723396121771975999967005340488114730242652254729595022598981078384868404786573476691998330738021741929502232272333901947911551422632628545279531000722222113980803285059381019829155361411362100611935796900220925996670708556113539697527495020468622773822617712171609701987832454767238484696807075604046087837374211914434592505028093176480245157635958011714181079148983225743364496659450196829360398533131765204048868406960891132202858863874927783264654551584643487873653629694513331813149107847365701115195889001075563874473576735724593162352700809495216958969515296873036376964408083884639729313492546021859217679847150588258181324066678681360797991246360740245612053263147796901914561703244519779961756824745221956037718688826600333743611217007148254773867344382396269109833418746345413836832855953444563299161233493572428108351215015016413487816241931720590881470454487757009339533144234128895288402766652389550491228635036701292476419141643088203284819527851426638998670827111001327736602016551125148843960178521239587435060003495826256762243528534538324021621651514857804452802306226347543877580080185214330953063468353566995745174666998170219018416355856918549757525055222568129315835631386739495171141452187523124725040980217456684686949456106740368800739325110539453406790053398266908375202563414527035383283877328189688553037713179203539336813817012331665003564958081303891030646350793063369975132877249674725372737131454331699505517488911845570231345383387427674473940117224200117273932993122728855942555686368256385400435479318390443967301184909107080543722714753303568638113737284893501486004724996010223782478683421571963230443249826489008176756799593839096050778419251960422423836762054608762468483895207904623611834353556853910779842094554475439250227650609747210946470390105403115662792739375616799573176084324279864420066543477290619458588322660917542325685926617433246929616988096109695137088517258335382612752754255574982403668718184348448994772747690494531084999169993985217948366955646839752341535562292451886508543045905243830161276048513383531184781722044744681868232348822087967557465520487138651462830014222446568383175449645640173333001908470730122196611964157029827123128955367620822574805181395117452628600614097046164512638225087741882087621974682922470978592229522172966771188961366244622049211181840002244328973506360713080505465195239649271958666902890200082354032865790042853704225705036054910195088208750507029769889078924398875501682793590336704531970011745556879865172686498913246975655614331631357499359746830907624699519879353868450221260776151966819622063801666862178462341410843126363629677459176141882040478498802953643304659215765077602446544920363152313916794963286414273647229910045864705725213512749812517579147599884033016604397610664941344812686018918736843736498586001852577121675143556643386602436002096170670301702714498041582977770276115325142626757834090489581214466825550258192648481131144518015024539957818471368537363304198869726486910584791692949233835700201913488945561181868744647344132844935022850145189340062206605955043408667312676308323898261441154897328387613706977480222538054061327557451660123244314105437009444303028305299349250803782333547183328744859004488490006542730466207799722218393447281504060802598960451914485792316013558172385320371703752860522389895330203050227488523419223254029780306703174056033539612798468217911469727793954254784158030411814640672931336239463099654900907114461465524783956328285318590218106194920504184005705898503584447159670523498397494695843647332660424617336809954148501122124022214510960577800489859388596166788400532758739429774338037415646670680730130316619324170031172751965882354309244895083520319819996822937671899065699459230287759497350100782466829617773091625673842896529744018872102640741994481880121267634129154547895759860846240878135656695187441403944697568771852789574720417814957729936458013439779130516115165329907028039736471966945573729538782072322674502602769890731351330823403860165518759915818974300798823987753236720355802253325760727504121532797294143562325046516181249149193319907630032492671182532917738175563942786154955435056491422321140877634009921264109040916544781966151142411688839191336528917109557960735337852006685886867982251067414268972990856587452071229727448186544361166890718766720627810387670825624635411016522430555476115073219682055934263561088763311424037545586665058153230677381050564110159136550091799810006977357325511050678218221747879128614602898148456901376858853048374957353122257267858264218655927947877605978496592028073691652579435058593620147524588072094320419020114159937843184307323842022606350724736428878056443512393223510217069364306581834699181520665154369290822337878062380638833859945280447716236934853471759112291625888017598920979192290507452877355245765367677428097422900153450201202605967660478917680308663749176679523851693919700728855076399961741804122065523160789464862968086988027057153298972743854692411883306997821842740369676108561712968065270826666812242094250186978610752293269814942598811953347966111037784172201794249168771921321684383906437876962716326248153680882064792444595135647683583306927267347417029540943548429790079970133992475229822881031022987298116808829957524920165694465091816990708792463755478236647277147977186229118548289410036175497474585135308928131201118880975019797338355441872301491298109836313819095352165230955043663125175724224180591859700786330270869357706941758952220313439037604067191380968175644695423259336273184789708775690756804904511655353934486223390370154254483426346690250825884332867174916284157967484872463471573277693557819926078971139674039626713271159494202300099597867256219299991294219459763631451862125748825595199942575670229199631861384309300311159308544338097951200682571905790555227533364132361549607672869302860087896973336783763267550981693327657151893065446244143770981846081079482115312419016080003914430659991706922471676472415827048673304731437769790645612006146062203527446528978349710104610322212343974880963599268423005819736001319254573093318193912472619413519700412934614536212661268488831808773879924513731938789959984071908711511617121048751301012238589019762834246163575620158852656497507311088308672538848550362480448772545155710048152570071438245208186140685395420377717978122804171655454473523691699894216000251510207947171597882629423400681421227421371348703693004779548682674609711257431891075030573043321843146461462247307835515217609239242349237239998162321629135896149811660933196642355646718699899866315076272957888102909370753608600160011857394442225195853669423944725609527160598780930518406894843700998803501403054841989077720680075452872874939659130917441059925492303106058131358509647905072872408467774975249018906158052630463488807020461692631367343335945866789679621172172341349955187693256929741115964835571058290176164833590606787860197812306529511009829451103915967824006227682310763609857244777402759688449644442490541266066494629149777151753646939130629442836039814705993718272000193628440542020610152489683227667093703722984392502384204708976557649850572916848083354552712787131226217059899263129832663295663032708782111430483089993183464386842063106476801346528282796987418840455882566683766746454877166549991575521548163681352005287417910846515043417088557953987626544180241876970391015430368589923988439642945227795746271264080826206531747961599831074889499191084020238962450597959315859844847262330210533645377500560300798018948828122164641342923369325862829231639297684431154278001338276222800824394128264084378313343385671632867272504717437047675016005794222837802077642869931015942871553638056855259857761537577048507487797580469889549213465322023421737888103772745342708109650061772252676129476436607470028025439347086007811130233686812148032910807331244355936066184709805636772019244259423909738176954646814588721861981369085518326507548361664310713460165970317565897223194158964728999922931600684100599851983195659877091852374373661749684549652771474540601994056319648149787877735188595955970143563298621037120994144438460719681968369625121329643183268746542259692892252117607003898962532383914257196109838158573803394926047258772640312096242405058610814687528787858388533072794308839799936335754597520542483120047296166642415368973316108580347018471211245934077578941356640119801216289237567688691584742636609391083213028925999640352139680867868063563660535496369786838476856022836025017379536401340791447392222023684385443894482705364603683231740963503027116932018957790011213123301704759906036109734024764179887428894665040552450016331849628192759823816041407217345109121161976114371474643146373145856907664785103774357351040873159910988117332764722222278605865282118174993161527366694554882025234879886075979106784533586323553733764218945760424102081335775266223977171851769589034487535212614470383327047683374116734966283767116591181107127565405008415311902286452571230335815857277550144916508780604797152601375714619989318820216952053308491905230396173821218255117325583308994252743582427122186012851409980661707496462403460029643064140641135994811143794150814223041068984671642379867564144179815995742044846052390877069801742070720478333547388205908961638544983003411247769243379917788903884487090120067475909151085981402708758586097004001161392262564864822181400052806645526769961976365765942295429091637645168675919301097505869772811088555512190724074708453878036392368469993098448793385525630495507267097348712487575877880162607209544067904229974131238550307326593226371629243996384813909324913886438869646376191793228434177676939747934859799700258260310513287240314414352665230953883773731545666172095573641548969384021622515297689304128595601610634721088757338080364655705898185585684827331710138479524777726025095072405651935063580835288625577741740232466322857743547069639440307253147645273718825143054213676179263337024370417183902157150802612173888681356541533327425917470657535039722538220481249022027364900165525645917924575710581099560400360665271478511159035673381157790724632439511488481538121304629052390030321519717740673993025208167836712406712015699788775037252099334525019288296199208928935753907367606945938208417980187102261207329161782497875344031132260417251973018261889746479336508303041827733979708596318648968744921360729598541044313698248174249226270551011877661602000184242558207720958349809244591698174981836021064631012316162322373948297870245279911532930566688182829609831741531387520088508249469717330741271485407496892239836821094438074939870482561125316303242864892184879609137421374087833360774482218924184354003764582332227451606047903499601010764125350099050175562290231332120425901545678697814782996663881128506159533863049440651101404227447467145133932495559619621391940177009031013637709977255274377292688384369605319987390647279749147755946643205679085870058538291367327289205392656941199175994647610940559255418339336050127129488702310115457485003676758097809632231531930143346487758035467746267821627722150503169796722290022322361929527326616159092929764942319074270365157427050998651453770081032358741269539737352704507728014272965808856167906865292165617445897052633109504655560048420262787466579709110647221247690323309189109261750611446265095605664262271792662310302554408105389612184021825228793763238649345630647582402845629925969129415043353599889288968715042168289066231383171110118840031621198272473137550327178576401505706748922735255500406239710040586066442109449517189851627560491575481692668970109984202567225145673814463696192863451331804950922498999586426592550546333702327957355969613881285794287104648003526897455463933561413132036699617273922630088247301931375216091091348792600933217675669466929552343521548118596044157468817524659274074687788298896474607014469224672700723217366436789781148020506324578137657525553508845840223496359907824888655171472501579027891410065763152467444112431758922680956739865259830035978542407048828802569131990175680833806167946707429663330676470363964318216421543927900682190170173961309850687422388097033321540542270795283968982156488442067053424375662718361548599255033808731841012849346916986356196457547110781449612402255388812480810140371933420473331908379794203148822420909742299738574758235183189466577880196821980431839977385139097671198600619017915871604460313625823679671874851951080061840980945862606577421648720661486609335428192892550655453126033811631841356050628832605170341859210019834740071502084255807528455516211202869293033200348868864216396012840556875584774785572855182528418465252519128148962290457569119786254953110355554390744623329315802345117136051525935431560865736799192225544151694755381144730041450967920221346234383391353276787495542615365055759409383122107306396934316116737852789426253324447844039431522747973403401946148343170513640367393281413384676633301052126991762994600952360436877074076777958290437696758282638348761890051781365979983687812363506440112113862155570224646879290121334445547687164839814644543624352034924352596766408327086517242982614645823339912630716081635582432887172206820084887282011038159802195097021837028496054776492575491313026550257237732609925191474142228077116541028806239385385397057812540437743834404942205335025242163853540493767133887061266855554303766784314890910118898853640295834844399389732406714170088266124028785950543903687516510797555755123451547402544419871161362073992167255991407567164260167675556716058853383958028174724555174537503257655819068364781377492877378224615131958697802137122652120872854468277819980257168678004008725136077446807980506215445900734147338728479633922135817866595371086947917264932699321752926804873985645846871240405232928752980272366323452376372427028593915148939111017894147131751171804370151326919329496505224753069117604027332503215585399927892222846348391603723649823958223267098349971730557866832737673420981606786966294645910861670756368521620577833116070202838245320291475275946917226116843164375016807193676167202041852601045525654279964970430502015399294134928177808580329473659187817134568522069723942148688895635240160014166898426949461544811063470325111697803732142481462824616772835364756869960200343459517153108080283226465512564506947587162348871078912350328433234565252455010929702509663478460814338235126649937170521866568260968119613219586586650197420295445031790208050905150217037506251261521908477458923591758916101949984185692683290951280089123695099001753124323230389759869700764001173949655738175902154998716217962818317910875110705788650750969277572007145046979631365327402078140544482365377707210080509929704778256112282488417856781829341966993291535922605843097432412693300106159842652976899661157003591917365728351697088116136882842481507964053217339849141720053637345856447398924644457972453019571153782542394456690089605966759564555924525871064329933785822411169163167443304877040090125134874374623695587019508378793900895380960911831124400216381909937108058226265226013157429721981587057767233347275093838167042136250489190911505612937875311484827094249690509533923108565953980009366557073057551821276973300663207058675209350246325424990111711610015993651494303606031725842766345430881569425510105536148583729541738268284273755596502063642097366112445665568664571959559835103351982449383339334391688133664685588469872888753581876880775185826298625358093928443018419588955020187444180946385426287087095487933867006109654170703164049561415416854895617991793525031190753330816110534019843705056210293909721565437581705412537117042268726590147528679652170317639299268041938244332744081588003255877985633291800863432437584427415348680880662423188959429916496694875673311710242407251636802157095075627544192578184452488537566869215434041261173820162401756725382766258931868495641121238486307711996366081276623674731852867276527711156721034754621427711695096064754046940429169885429065930836079054329525508306813731932232234517328132543441669633090848263397856694791316328015508413342225196878358497763189864896708420341371867284690193392384915829348169525573382526875488797220345161683296739528869877913194488742952738811618811091904458748551349861288581379773629344808668779484339712001936636065176912501484278348089611883835154481803138038864217510182954334197736003331121527537443430207493084415917800274466154149813927410154009446008820509929527854724706984991639319502865053297527604014033298443512156643020565725104701985902435458968645875719291945474386249605019893451702598326349587090429852597966502219966107092800216660587712786168275056389109429556172394301084983818745569429519435497380884490608441235627474623107043010142770075484854973775163512943795791963447045549715568925542029869356097693313547834459016307290219700828728879006605804958392727810396237379063828701751516938650604902812466056134216862790952597534859172142611771981481547724087076511605278024570316029906437817837783801566910108175811941421561238982366743638503592329041086436625689169928608882507307261511395531963567521795856103615576319295813644110658073735945898643058372047015822026515586230335961257207889565597332110416612866321651869440373921278586868248726035132083424653462680649595569472949800732981462032563673585485342139643430098240658062008085648850110007542204702759189340721066968835935903312462868049564623392758904359050696823308928684368919176458993204472176393380690570190037689427738364075147655480145222780627743239987172673706048886629422726260150721775327689673184870047288251813009788974486172706779544105133825197071164034476869504242248808651597165521040584647278328221087136697356265188468901174852338257630204637409142995960576246847063955823530656380358058014209872871274818492693688736960931347973815116153497324586933009447796626724507765141014437220570224796705968771491785551359232535550618733649961941205389162333798562025308101939511720304314413127298801309437321094297202974567008679427125913974434787117738964477783836525738111436575635869420900898270801316635198302581746726619402824443925520814675729188214500874184110470378052505719441726279705075887245799335614489938513051139368785578183386935631253265007301788814485662080902961815824554169661869549965605673770578137562468857744302387030440643342619149364355048856727696734345071359954759918353166756313557338376893672106816739949922236714768744439782209827932748429653084484673148281170197857936373339497294512675813437858207781901915716088363912997114495478709689179801916847727965867412502276332272593012012279685605327757702387311587718879847304663843970032098241106770293349656770657642751428506706245453225120228856991940732178034392879065391311960154479751763641834706186221110831728370836611228314188443505049267319566369832493888029611965391499569542195698501056822003607431711989181421667026491181492480187807435823131512163244689194345392573109679259986131561088515098076146397211343904718844324514621510811324625543227691265658533711960672743428306218787963542276417868976987617084291203430594872074360495588536253012545073149434121829229079897857163923550652382316044649298798059580108317010413099440213283950701163857126181229788779735895370152108386361573860319978728503167121294039540205870412297143089378038674198293755237565625895265666061823812645649126644708218880827378567106609731856074764013129052883511998879759652650907525900851581120012375344039739746746439471201196661569299686410565554483174399661328582896475339285945416220470654813162174495182368383512681502519727987568904169404633112587838650676395766136625863757471851969594124436453805052904910035985117085632977466884474068097049706774223594435757604933258997101620525057588762992995692349505629108179243709055487007931819640323264220796125104021589849564785470669539851906860122880808556417585413046930991659340679674173957073515606342329948876284075003820314048423546786204564991693682304997241742497912120500295785689071839580314261490600047788193753542506660041770376987153407372129032032934425822662251129078850616728873809845049639757513460784016227950300766537806375408935812114216503389519095197182829174431137281551249508752918932366289509042922727461405966743015260787649708801313826349880632998028597684290482771744291163362286946949958581365714972791313084575010149523095203589574976642568933315453981681813218523544511221690425864845399602807486784236071124228376992882322172368795881799269225046446014421963917889376786187646730739449160965500876943726450873130481429115089422617353930441768425292106104159363180747389218408099524794378054712246577435750844485363609078946145811603285944063412205325052263590106380581947066688862853204940161111767839250851287112742348555828338343484866671510291251673331181630437879623446049201808672705419331428342049088749846315041361164369981336446074503262607527500964290831685269844323179391602821943074801937948746138702462750592011043932359247200084244017983046544436278098888029720571424099066161039740743518851554238164185859207211336962505146166074103158589017328650125772549462933476948797962265087265838727857968459488080463361201146630866584796665275905225976478438734507139499463067179602673959010749626550175727186120085555866053211463508029380671351657230252614426330237919293137971279720792299081245745534896479625299931433578799474339794216119358652154915690274933358553951876347322908818818770205295429687901993275354688619801641716902881518504504569231529975905051369108650687514183259969092376561950857505202441429986275587674653673381856437339639131020711467812033341477512693917165200195137068525229992112184702326773456990146816894896546584674913469222914812521985673879349967884589487151580266584578105987906648324409958534251941991905457260417483568585968964521702198210303016681457944102980533195939473176833514368719649979031140290575171455796296784951205427761966834261191764825594646218469703040641476301760387950947442917249520658384096166267608510772111902245446291406170504714253628861364478948040795672072876459571200461520522135210035925089693175395680829010390803554338623079340774102367317937788716081659310237327097699328759921624076001583190390454031879267180079398739462389666185494371465956193621278076550094474598366400920468537950883437229803515978272124103782673360069252705339437250731161330066636833815081511775625374014052125927313326087053078286746543729190999117747301355135405977882943671041067203198783455258398933336646538295261297928290093946495598845495731123993331632226908812580453489769070373593182873572789286149371893712306280515398621059942227718802694698449855700617980813935028320765756207243328525730562699248874019164193028049569713711717408078539130320894526877999730731597040300385013548484448132162350045858086099018985092269323995592877682483922367567206421971875399975229924983807028430759110155903497707170009558892556806358151519915338894356603271231837257808753269246652830306075704439928017011484985856780178149222211767440520298784748418839486589334971688324600812600563328671717233656795907727816195359998850110006998837116805988715777830428398964673203203906969989457107349196222563287714477958526442800314634045998305929428710645911730860981191147537161840613594927633057625648476913143961830720120491086987543272384253431554012708427294356319476694890751506548718219309393832750491376271723458643835224655558809191867063309276577939760882353728136196925434923115711800464768756174742394783752416876800000852091767117010888196077521769683438067565667935700100430548929920215841520595173078944873973141648731561942419025898850520877611378641542360394542038614088849556620220426831118639294103808982420162126809524728016211845154155765104096268966643636990944575493450717672612450517387294281044409734594069732558261744946438722671276332594238083947021627141051796145288439235603233962583433787843954375205437102659021210576603744576605994157649270520315624971405581159528560155260832677527119205055808289465095215917915355891439088386700819142403705933402150203508392413562809215459542888188676347441752284499467518518579054783235006669310215395207007232651912297449357334366052654438061964597709445185795424526465381195025169769091960233522938486260860837855325499365296165998421115369662039775247112617788659406212761659853268372588420722037569733421263449696855654874240621965494393315901692917963937843644003476267871245395302629560687558397851242111194647797207055774505738593290919401061850135082711958424105643140121959849612601023500186898344628822092460509459451548099802775848282496679008987319288089384463852075037914855861889822999873074848321882819648452362575276490332872685705870218784939982767522019122330619972962469559338289118583050290242315766487680503127345368405322705777353797252327318079336998165605186173966311304483496892909610159981465701452240603645819726183050642398715437525855574789683115129456644630081879578949099994236856022587945976780610743032526648913643467350975477508434401728372594734271364855288686556883818447688444748133926757188196598354701776181317060168904414794820979999815026151307302315809652674733811092775493375851360420535285184058606799549126028527086947759871968446128861447733319714916689274618207616221762067599696399563010488898459732442746609765889149666875639149483683423097941764992448442086141912660374258086420103365319930431817178416950624462321254813565638002151008276072467201662624153401150675165335657215172428773285852008042523841074067813607983201355558575726821018256594256928239183558358406630748766802630228363124514901533415595514265053451711662095642673113425432615419186880965785257824921367659339012111736216674760988730824037022314371808227713685433434674373848727159210997005128236828662234453932034212223059433146650709099597738354775687784998924145213276423381444360141815634590432020941391762933641706573415986821549040859859759483286832583672874258233193543454509575282518241039371739899607258438407559339889695548895430903473975360912053864275982284729505609604946339353737985886521187993281110271128979221626342501955809040285629685361621024932751082130510972814285539137140669562179326724962004142884276053919296741027101402457184599189980692602091446474487038277967520966515345323568354043499400376945058511453881519209934450460097109980092186119391167789205979015776583147049865752923720743645354263398347544650521646857162728225380146119847919706788636747648010407662754173243236964621896525579902903621556003584578145999597385528565175472419584416319383419015705141220574987578919677821892545424402476096738709256882242988278534052565087479671165047910896223574537686160839353993456215232279648208732721379034092405307684937579455233731195711667041590397027981714520967308661263149077950150572811212086677230775298717902703305545891867917031779597744223516529330731469277348598060874036709353576526576762728419339910340823184943638610446271089611595395028239449612121324859197879174579198372493707981011088847011645836306935625192135557416593853637055970284867932532106885329343188613367987876913856363451148678582569730680872863096103629905386824130723836465325624855346259508545274369166470807830499816654663796270201716579693085873653506800497532960383905575145156669916201510139457664584852557273999351115156710171411687464181227024480280352521968104892574200712648594500153829992272494523352891188354422959899513219069313616545012515362498035246225980546814907061877532964135364636923179580076422289391887073755498669964547784940659638569637515001961417304321998417559520329002226878039166483435374703331651758993190759802858723735515412318238363593450014003653882653571125474183707151000653334307985554914597605524484654535903824596152942588042117630411165127758933988401186231437213865248654386004348534013690626127060911436577088152511041940549192881196673062368551046433735478650167241610309175693298012772885290031782145683702603608649394414388143741602459828999322685907125962442643036287939995884450754421696070476150797842758436440232903984048357911045466532229943191678514094132546476662518793248376043508798500844489272978619639778044727068089184681550314341231665046218536406789977802626689109025230550028483339318290568357611863083734514498520598738343325672159168720490154609721109772909025032552868580961104999214591238281036304184468418643634834782452372090951439035284251874109531653425363249276679442788013663092616239188729750098098416120042019717252449093130044804458348497761164723547974692712442241360000741698472523696647703340288908928150059437757444477051582025439388108720404486069472927511014381090765889297638689822948564192301964493470669347621259055610323089058405320403941821526414311485019120262874467362003374583457382747536595982170873111003373719357024549176860679186578719434007104680830427881045266219326515965101627835203785419370874175491984985037292867703057989326072949527185126036091851769625037609015169947221011255576742305487981744152067536903815779520031978173583748981996649046161161519173537072938226928611408444663172895020906182778418788477657247858985156262895620794494841598498982445981416907774454814427552804282263071196442709667812289192751970500206218952458604395334287908148509708980127981511407464315062036916530883802533301371669815431206111438784011038850981739920951676058502258962993507712623855136849079853358759492054566056242788933162197014882879939151286587894059759212239588539497246594290181108943507608478007919857765356342342726279867778703504372482702382180611795069273473714600372180042732493433553006909898242641263812997153911393554517868428706784923118239430220810555088347366720933982307823879252003038723076213694235476570096064248531861296960403886218964471390975296778072677321799931245557790795052621368670325086587048275581126081599251952099439677706126571628147444427580741541054200756089780619887307409319341152622829353883021562659867827442494335283698484638282655351344665610895684585864363396437632396415893893678597957809893177502985880976910049417920146583367409044455883036973963228446508925262690294479998602486755070751300763342244558875095768884340536242975868201813740133601462441400756464364777843871510040487185374712734428390639128374450566207997813308990934334564697713579029251343327166201026137832993482470606685622058493611246273468901809607451875516136836236318112529857609901665427084682368776032744330197397582976646058605874182183779891868469792851623150775888154215891105968794430979127527233910289089746469159648141005524171911873574535293853671187007916819884540264320561539644249914073542337814508349084244338459132859290131710117367423102802500159327143523307337719550390350301695435929884326251543236625748999731340194150023798567704651069869106865931031730468206545747248067653359860627506881640626378298720784342047434690850172684296982565679063609584843493075103281306898644250014316085626514261895964485878480232088986401412924107118075357335091169076120144274229318875811118180024017184572091544766853454862139626483563619010378423914673984861453401474273694293596744802877276585499678360338173379136838904513392014932155234887313011794555094821310343655796868953754911634445005634120666967304782439116543271841921587879202082604323065256683461274116150931505580288952110895032870829886344541419293513198990579061839312340553723751972654701872452137673277916902924046198562697320726389303409101783511640810162728460468863560666152559192889012766325476211450459666580448486513786354562270374802190129684155182239631280782451372987887653040510457826530840624782939128794717682984984362247550076645487937586809513907613996701004084310013276469270620357276201619659011840299921322841702415576295145266376253864107130798174180749528838906951326903859053410453545941433866953863970913424912858562302359378689187465969375998212123732892260803909754159842872614459064049151047925581584363898206431922175493893473390183708524932263176894368232561669658858072343172492437887248937676212752413936881456143897396056360091063727750178233223733522849918914333105897196780607340797466274654610782672472841356403146525880358907669998591131444808340276460119581123960460867633436461031146388769257524633630768651776597769467097613474085097120270335074438454368530964987109347108132512884879524433468129819232279225201931173913516251964120466288330208786069393720881334768179151700765160876481396813100293218084901198393096490874741254095526086748771293904094611479520350071230678970505857355904236429753894211218031535310914899830115253474578916451502194337353322674089040098634891020614650324309914695623406867510446147101238438692147265456486273792204972374809421690381468059622933034241564731415741813524434220827369263441336435642955401628077681027151833096352351911600042623034893516831601085812806903717699719457438119618027495754957243410148593898092648853440992439850784611864580618231748584056123174889419509119770019152856123873700424352526705248392168948443848072924493767442675904801051521633775718977071490314391128149939709308951959453537681427519447455717944251952746672127895473645744344093328448788272843897128703705899139520345516362022402927979542545615982400626049361845392481775639981902027606821211550540562563324944098697809158205052468346512010106608394285751794022786537516668662238342336631652488636614840885156441670961660012062058256725531154290787063188635787479601913531936510019706168851756654891466255736485156476543579373830375466418247609883693678752577362804111097792920655772286105331876358585818547205176693675765208116524840481534731903662452628627790712484085904768731170648510607266477887388420227759393678649473664448748398415169986480476207708881198845312952901200307148365731714819947461764006536664478931380530394256874638492050586457172768711008917539979219155820217490189726320196711138993838598618110934310168486457914934735367964463321974519224723524658546062240276928113399523006157519866050944783249574972001464285512255126172588916498179670234396578003342713145384280068160625645775692406487083061057791027109253315118260547712506564761570289911081629877512318292771242307774251428909923437154898872214548742571439720848451787219873448544336264346118673103585382616543720472487807859457896806938323306500802016772292727472422805570060342456181187194589248469805130334296748643126580260078672920182969655199624443765379799847771062197168796324274153476526865623249265825860543297268188206574575556212466796666067280519602714119001715011126905401317227707948833625251134318271950622813009405518294160636808268809040241193527877519267819403788161068896237468191321465997354744937327623716656284408953372619322426223268078593213010235396401360668559555251396092929350463805133125904194840207312785736967756959936384782053469021458330940253999534094650562066280172471307747824352098583006855441535934539786043583288689278905940334239702410462968124960148148774269836726311939782492375625214102362351612007927742567879907680197383890229767641086135287839365900689916394397615520602408686312626838974023829595564115108987997314177934644779626969331854530510697417263343713607262983548892942384660107213918226731339597078692731649214804786849868307709610777234327881917595049965382891934879945723733553933702420755229986679117563929354659851862907104017214829261581838752781944844498719961450850071331341424143180927316073317273151754053934368217500686032257143239578756663726720565882167213232413815259423168358434050806097655357826837360652722110390497839151474215193734772627776341054505829530027468293071228955119379990654798977930337158674139619064981227741066205577017359753064942237671349770866494339224974105561840701344221740139146125812819959789737458433380687750458145632631291638159276452100278408979610912854389081416972782538851542716562936425449579146071285836338245516263505380102761862487551460423781687850540858245281140904801645299570634286596709943664792481308725763005439123524352808843623453533662958267794733093392797559639224934436312591262687955731102850141558920855685746592219807587304701362407371524506249002670270827210273634854851760033557736583309055777911132763525516302445007880977576761312967884213976770711061892522624765554128344797198172619956141647808647714963909496606614706085785347748124260898543796978055476655134347636030717925904985638727825841267088920571976817864490431227433544260496215767744209677069175360746573016629431503484082206837141717780302291600158926925740109980101865724899439569682476587602900700539813817183611510312881325214028563396336722942913339161588567118773605588539024737824457765862341392518843398293037286773866064549137467238599614415583293791860201803675308575886273925329546706278605321570732974867939402098114322056477310752028010493912970904194994459692082948124346497192324760998225624894951455884276494885461306529670564415401614546067306853821622903087225104332388940489140415383117545722936179569277538128319743902828973524308453369796504815946289548872928088370572211672113064710925545430338008027195716051320783274439510861345267549396706636802524537172701229129397840293575840713200157935592059001919584960852328651187952687752380379911903459137314532874614205412919538594174801450918800663679360490492239068942573994212972617479333179583040237914781952810172480106392997379937064604214187724848921416750397804493817670819523254513506855906855552131965736296992921463970763556550420901088647553870638202119083851527438952696448811521952653689806372246819424809588909391951404884826521828426695896210840974240995349129671555745986123358036969482928343044957435823643816809532752369520202924489076307688908999471187366283164103391891682438726620354218784591356946175390262662502838551435667360110555497185208478630626773057462064257500833835621752873518752231044984013791844672933998370743765800146195085889111612213317436178000329489007788472763370881428460229430868269845104577074898655604976509651885918782775703019740051762881709991354762756254667267154011908141283295044000667064784232840905476365617738021669587280044932985990250191742487476810366035412931544912581327287781808927287774123198929553707318894362163521331885276948617675700787273170184489401382917182834671564367081513162773081564979294601933278601435560654643415085948866200496741261100592919891320327380281669834813240453718047783657569162316322842943895874700863857623231317701148191010602343146702353164221857782759759777308460837269937895479845649237895169483965273861268476546170197802430291226449641591512984185350435468552292349457234463360169132422004488926940144502294615161246190105949919064480219167411439502464935286512455453127698113550710568094780259349633095358177576416724101775326056432873097143006962706871815335583621307683797416296123366546668661131615387118572977209473973057149178006095108324546973223603632982525569569131179684888245981133182958878324138562779820508622915572114391873207220551609969989480796581820813611572521109462521186808649625350050426569469132083251438693237066855357283499915797862317250992543539616135795223684480422411656363297253269080953956396855886655125257412615684254395189688996219757032050110753228856836492810733129812132036646386945899669934559019077745088733170735321578072318933541946065926400890062663239397052883326694938630109917599829492507063949056857622503210104219038603982184801920901923197373239329276924361782759234599653373614765242253187134064786206451105094912771943667845708367674460343790040558694248360935673783819303571418008169015433413042519722064133046074578165717232948789064007187235702468866221547749044504741081381185476708824809011134649060952514666909157543834897852899938518289682818163669066732948708325310345049807721918072293157526426691946828858093676401090548828357303511686266042507899764039836023661437007517559475007562993973267316258657289711720918017245854576518670086772430043370704516875496583300795227378404705617093984339826185569176352023937298948590276170695934272464634195030888931223636824568611898138981388422692574832043830129175120548075251957132361416020924456952340738547700664660861538253726033314097824577997621442797277700506796727752763486032739575848507955777843533717412760459988584650933855880546914704218628380492629029129367839852845131045284058405828790545336962111885043717374210394272193489850166579819463598166687175032709967137215485388513072967799086697148544655027599463519516243198029618422313641279426863574609942809484674146522452169549043213456344176518158459810358498094909508885286823434392435880179035769568183451280093384750417052736770213470975114136070032580749066086337249111457357144347926506905386519599284902635108763483646517407132692003741992421152256164050792021846304383164476432892045555016334033913584813116283449314295155473639779670017483101746774006567571767465049901862716362420489662676833246440471964775123378451545164744577446102609823610027157369197589210334780068421470748377769552163114495702278340547678151005685074983821237862561940760386608979899590149082390650550120989003604074030986633519841009397563962602015658948864312888319225312666803698620022286869391295354226985389087622816532433071290130364202570470921504113731268870197278224029034434690917400513295019507889182483955022417223149451542023659772406761196835232562509730214729237867432966526174710959895149530400340906200514718897220553885409524479723936605992981548431838669706527595413122875506884384785978290221601985384197096374639801181848903026010730455316529160458164491065616664331188261579651531453973138635328924808901731468976822075775055190465464954555391410296032551711581375528914615614076573029513495804995110663493346753919820191260305641882458993826895693759436210579224591968241470172323914023029897920318378841004386381858112337634328658033554387401249356393979600258285876469347751319956624452802911081701734055194561249092506866454655941925856166612313612243063406585830821141967814956162843981733585704684755441850389546885235481135437245924480203561525631656439956813607065776196844688211982983386350064119695754026524342164121390253560440314024431417635388249430156514889692984225942547922884960304826579590106055013593578539029392697575718435940988393197219577546002765077221438774998040648746794843437119707774684923178644504069235758168206901600602184295362046268155011653473348065489241380300689284450735716453941830629632596329676892646878587360456037842681067514952656573728139742844501716277468510208785561144597485420610791233450942168872468029097111755728025222660040588176039865899892155997584431391628708282968784796660078851832885568542659625673945072204370524798086659806133226581643947785261686831927813438339978090986337947765521112003839685746341018963572126735207665898637790258725116355922015377188259526794147292925071439534179157213865894610522738762621900198272870416276443151019861935997753779224685940900889187955786788495009563970248934424126350131116544177499968550147057767943340005091132887357812897198029567845929083151607723347632871415141355943766703430901589905569521676693714662143285836114574166881004481074017437263585775385689323209504474169316521188931775010934554945235806590818929818855022137781618424047185838939262302908165617885838282351995333020983822843685190400677089012754924740678453885823083378648138250391458477905942435510736042015681376563888920061286226124466930021347637698615899915726743396537038355896781043078468526291320921158301403404875772559355479909348068454220134738971118883658015502224285012057648345619266326416594896135259513232274094681340764337670177090848363279406883271836805909395295293974889393214782032468255234054611822763722281248324354945413013316205108139299371746760781983249110263911153693075867944707709817041767289298963111295210655184067098440068708740454108025119372172740358041721793371155247711200092472852119817162773658262986533746369265783069506042841514765190249397574773832434180944344969887110688471048877850162372729377555143563113631500300153812449419849759295212971253035962413849405985520396566611440089833168170433315262431080077479184252655338617017352825686265322848035703314540651973259280176513088361614476186339226355414698729094562422873265779058817208820910767000685271685556087098727285601372427436111212786176504237162043296699382280543640300250453580897899881897085375238828797598466991736140383837000282853896432964852130151596667209186965560646426652898858530443543992464388330253724595965551095899909695306570140828788086490319304568108377595619742564003022631703501021719261583482571365102567171463219514456945393060880853874433871021259422199053875287046792895604068977060561487319622019175981695316909429157467263325425718795233074403707801901351661250130577402622509965761392417068176345871713459463469479211970362516038419284895772768213309253147138792239378074868402439856540659351818870661056637523498791421350997005505455070739770928100047816883374200158316169593697934330690841109167162898182955374105869810472594000267271520576740514860148053251066042331825366015974794893606137199442752381432831773168341294820369519655080804068865282576351641586657146932105334948760377921069432748640107526836393503465336936456074190975966413715705693952623177594758134160997578126321864888862679799607823148804005121108980830457786423475485528695104729925198954255083885615926969292995511158914885914739960418136977436967617391776648531457197564488447093911742557887288874112409120504730813929943401423447856328197429650560430606387788190659150007177696270128801463953951283659788210382397876839549134706430714066683791826647699519392625121540629451603709647176135469289497882132622040240685562731657619736595820738499743764936925141909397791325486886351690107890097260890396286216132429742563820640922763045644353149236531371360297742359820476639146823660477512436277634158172156999705407409899030679742608381768635129631691749857055631920252016200991397681594663410965199758216135768977482863523871377755873140610732636019788777883784038219298676764648142625214772801548822214067204733773773119319123189535061819535186761397115982606814151845681275695334376218678709521491761614038452690604564404454016444778788704349748530051220194040034482720570976672351172225158357520993623171117164711820552346670184112329612534391315924690559175730041630247108865378241891331684568045762051110615372135418724821060281339396670850271431589933679048985721210949774014929373150916393319626440033182900243826407012454702780828071318918328753573484306913934848008115671204703931482946772863049237798770566780619839242776478390555942654954463614700272868043887516473218457612317310592576249875082362943797098611845180607344191247255151259535586782113420808841977167493821840157339699357460329113502080619557375021188229946641467245722984585002859280664059378729065562252440233614525762585140358641727225837177750244385605623481334544630699330814028831459100420006804004224316433786972401813772649634030997201804745075834999185285775253915101235772935962937842604147218908346425152659607211852082269380073320164686308334803596071242467021630158354440251317164011717076754704568687169440575543670419429064002590047518158732420216489991720078626594106957775742515962072685559829766005541753983066878986450456962085910531961237728372350067722318342000671829355117013920896509479507593490415336741376051683872817943530633542306701289091429882594157840786731482179094116573895363297443420110075559827613108644907860618195128154350197634405260374223464655728721137044305333854253140759789809667464427094773772758762338348067532710920098398764588299890610047380422582859362677770632836515901236054387774267366941577062275353058832221627729927672668135187885505345036601322415701426539796568695112480119576303617630203656370783890951244586407334854058389195234544728358901633499189968746484164871560443975192171089688852374707783829189467998193756531072115761100412854954522530449075228467390923242961129666465974643866695373015774670242482917379971443010255431459887777468322251703061068409369480968665691956757931193239092671281061984017661238974418333011536381491314458730317319900684783627220482931116624543227199242231290361282713809714631855795017077660362725995713717686035226292488265998539087191187910051275651310330170456256590229874045642363591415827462786949306813423092435844423436581374886761346617408986965910950023544680918232616571114445578062237801269792028740456131534014509007100855168756026378937037577806213997366248742437383110692806959762764526407733634813513192964980826805496626419612749668754422252766919466074394158937535466723934963310928845504124599781245162692200131278634900258688522646675335626483267510086824454865682562772121724333978242369139069274373168952655896125093181702317550924877620532633849916305144283842398249016907617391599704264264222139262464202109730315806727011141791261616551725871546295050129658661399291147612511034620549268386374867132725284042680014859066456136090082447135270666806611233990175762111675106046432592595868815173913129681102097846192313980631988054208311039844882238164731648062968161238986777470640556057527632066524487829400301691264165437625534714066090370607840281802288749492033023675384740712378309430465980405882342275522567320579285106509087940990701219211302236127431507385620966079737785139418471679768450513482320066747705919209585981443822454172802486161597409778380410419303885970572846351203718460899841630928875304627772236893381738501037287070185894073328261711322976128090737626304387063398536061537638121202741024073314050233980744867318744741202072652477682287724734845182939606561732729454041989328026965569610720172727711788143241796679125245935587835077221820134173177406596807809855261594449706312983538145219069876189602033943222476668808945755048654465424779775373686621890152003068818064986832105514934562973470122168596470120340481075583824902092573145423423707656241489187220611343809084561964618755667587804799430389846766202958686831871662506736371330175613935106897237243062643161419995086973672910877665090707900837658156177676661273984896873285772321050840149367714952860301963423682437621864031147086839493850844796048798096714867837818041088927201480894625530088954261238255986226430038571119179474071416181397417886258513944153725412796925833798199829036642697835041906268824384118315756826394879505307427390854575298070230509545787565759529331196019312833293226892842010157394271557418190462479064168558201147828342313856858635884049798787752916277003480939884309939345181949479963862417564329733218613822444403856502161411488625709310061971901256106709093086124535865422309347345410813972930719176589123373003181117373361805902441778332844181930881377132340131508576709469556754725082160979850863001888679852481396445058380223509417734830536461754068488825239885734342776552221028074429419183060820456602961181706868393444217095531714055748763261101590349990073226874971656677811210380052388616815259661715682254643998784999203911879429485693986622837628889853430702771204296134075794307045222762282934023274319573545546833886582229444716763334928929385370861609443921181553503540122015547758514627151435059415638281280319976013080860467860832798190163663493864326553932340508374499795806391393123076054151274545108437069881729956374269357420370382092982911805612132622775890531260851460734038985967496065995174581638377101215223769045378858551489144688211634862233319125223601777707646205307816469555952974330843685631958730473302788350835868020424186239560907021025004657681837887610214400677886687540800044547630114913998552039145062969442099989217628603489603363338711703056299791528336446166177026617401292976156304457364824533979523230890555184202226583258633069855609359701546012892051851561072046584259135381616546122462799798581595593714676833150349437419094181988887166068973293333941851637361827634402195711122497582670699671985739744939153521360613305819915305005417530866694175988840244107024242010135231739582299916462900926633245119210472226961838142805209308298499200018946866374797342811079043487736687352604329959448400197559077609353865803899716960116131776888141584909901265825016793320083251559849439712202504437004560489372842871331185158491678293687893458615724556513320174852199772750496227207201989037160975858782542438549019053127573195208192189248734725234985841918498599879710160218643778636557718361560056011886561179926857748135278529496245747780945477591730030567921429684912844969224275898693977562011405589318804016284416039480518078733999498251047290433764028897817707704455078927861715013249470896886947605069371865218911770778491731933823170853077714030048816662770978766976288498728869192650077338066217829662261468603683584461612507616435112219808978219163180689230390891263577322611044537739067632742097422372611069346348619321952806620745053494143503111619573486799033332605607948608821566333166444007814827962699278406027305227015989836889384839889146578176242405505450205457582713034745310020462500459882375335145209819130516061904408670568527140156288827565480790993338663899963043448752825802221250572209267356680770560029484400938277610936939398486276946968277743684740382262300135449458749291190913847437546591454477290489140704352457113634890425175660786085065574196958879174338577021477195894779977604275715637451742702086806454547407031786492985267129043492685932625656357760586235861841745312562145472378790881751751454143846297094427833746158233082754234793163805235626966851225263095326511061119293009916960406008778800412671811684310684133089783229296838346718318562436421990255497883768625107942418149922381346644604595806433846527353994357453110694319369324392208263445303676643844699815572569211020124233596883396310693163694634702088491054057551002387388766877475045463427959889787857007316608854561753516091049219542624442383019922434999179168165055700818034461113322223496659579814769760687303762064735858613755418679617233006739359946143365486660574868807489440076546759316696906214298495176144468939326533001912681628420032043840641858013369391856093353201667780196044350489367486258046029153122194759303009144705836170303954938155450480993524168101224368853975047945788292914705102918530171282827631480220873728422746680141513146096582714825169141373055640856320824380013928021289073119804071412448756537975405724690247875696659608878362569720094805512331843292832448151592686292601073704955804120306993871593747789062942400016723989876272083507238846733058832073187049929438867566717093693601509703895817233066621326687056656492145165713630724750281523501474967838876499241070585241221816292213472345640551600468398140222581694863084372261452604941752711488831156320838806593043992863290320741494094382174536622357601710588475035033038303943217787008666191514595200638900554503942625057035573071861619008334597491869612255042486200123635480025198184565528536376873224152657369487613088284516207060531012197783830948069715049683691371498746754904932900288811809106699390528072508042313214100390233473536510049195084028039349104289887924918788960763870837198692684741673597132646371195336478988250353099844800678365396627332282245871255161781507834032699652312683295816476595007785387123904606109034142504960430151409351621315168521234760850765972281279976207842941150342828466018785733376984490201663866211384566892851878138873587069697652749186380179133449378853230910985891944757140502077090661186490942277912633875755241586885262321476635387902092318474029270573117708344782199447841649097369872342299058678743231774663437365005408189120555917876542612437558898308707363252931638764087512806881227697742883826965109138338095859993683471608300281643526418872156238051207835146630460440676908592040597756062049307510739140850395483043281835841015528686186062026897458124081008869260842941928039751813918100377110334459810981719962101846175926987730528509760293192124442119792096030820137313307632948755696088148803230009790142580830708349365329736848963041253056277143620054143355479660196844052777310558344677921435365035973574735424882632050876987793747660794701588370218086099175903417107413387024373023443103586083370144159933355700128031837243061594701623349917549179230143984300823551255955662342774809361838545019697757682652805643261258601313483406628283814317659065820558710673447145105045525430584891213894149518833935108520285221911737948196244589015457663608123920698778726347173386666119403681052011576275448784210649455886148616601434405290087784458677485312450037912482851759240103209738203374162626246900940489810784317688803980533798985155120981939898531744942277294183541261795561518756609788864802664752221538775058717896663228627689459073610839373637185582409467394805495939513938893745530463920484572703365358912887709431912796085766293593638117321215417097271980207470673268921457854351757044951235002115582161315395936682915216306041054793005465247149202544995178274434822053359270575946394756416988120674617410365570518002340161909757135678487857655018318139073367022230306246657469632112980972016522203575160305615353885663995506695774547386255351392629492931762061097417702943121563735038168832895724212943686188686459645095259090569908780435747232487129738795934631369345394556951085548867655483306973821973925708717194403273521401140912637339687009199904075432793111938235368466029818813236969687196522784322816141830622628021551367906231114548746065028006827609870615201870530914238155926662443643503094760650397626638396763141318288649248472553114723786304801363327272500648790006641491244534165567601018178428419036625816439622986239944909160685897315777983464201925495900458086080144665394084277193725437380303334303182243835892846891351485659977008714129763655257484906664462788955781337608092982759926318717568085274226957714382560516751659069808812558637654235748364494588602650309755120536562926884487131136743899238438369655320897028697372068991776031854545830969283896808097780720036361056030067299937613965375456286321728399818832546624626923862190790014083960645374696342503438807318742912731102367896620754838878492439523279279245810067406097334183873773628704450683434177978914855619485937293444201297005500730783203187065303944777013471284762413737661493428515816708050824505747269185618218050118834502631359347190301359569040482449046469869092209580368727498053885443834847014785814693360830951544669430959862733074860938288942584970097033435863105878816930634731416455069687960519415928152671061716431840508869475878180962614378848680453550199833546459907853182014836745946184823882733902863723416614626186659154903293654790206566956997141076323066118450611084284581729472667089530099463561739434715253717221070424338627426883508800780793647078319957551523267245463274178205552441080683811831394467240976308737687484296072263772936213720645920335808699889493104662836485039363299895258848673637625615607109791057776385212730522179376688330491848427563390032212650723793541213369894960246534021134863379835638547417384180581767698194314029894371739772740878619638735490948036591250894511765973133826176913624595110386248538436856252673975778582685839053180858516376207653476644735380265033078207418216013518080982600556811592215009025887782392708691169228313529214763755069620889431285561234059932110282881064714382386424190877211475445126123777438845880106172507453573968967813508307604690919963567358218338338940948194940128966338304991677803758703352949761499982048189313249384443742922064188502003541661621821483341567324310793622132477115007807849559804985169337528216430045247347576545539985402652337158680315207590062160044422553488266239131187106337196456564727940993782998181284587032023561712050378523604914933583749182708854584244960066895631272278341089746738699808314979076543527775269269689270849814095893705667966212930457722023794379520017364348132988540868675990003806717741413094070089448149053877283800762593083257835813330954528612503937824747489213843795081279617071204162962629807370324403484198088813337931000617112713446134061809381384171177147837599822320255562434014556840812542504880144953434024444234368211672571117484820211040913444809767265581790667382510974704511167571417708391118998773150990126529652310339085029651046576769033885101649598823132340013288268509288214754641039320974220245729427615468922090039953230544780368153015773892089485702977655621960151511508778826503034455525629647404838408008804856103670817099521631783988514275367626932485483046043608378412282098926724761403181725712864027585389612010719715214829125853381980815455361628470093436480580118311133622511009786027022974941407745839707809325888349887936855954225568103161410587175379202716802383179806354102046689739566852842216600477960905840497505160513592946519752719306275523120720177299072277250906025588238060310199637425185617518093049729375883555122448101246915405902491463970364913764043460125738983295787181662195456108535499237814150187055573159516143133132551796087216355702809671768139032511138475059292024406610780957134227133734434823763168654973123092217555269459006474363323550676335064743884842200457039091389317173931732449147882280634279146821736445723978711325924286320721966710953327842069775304267414827235532294591014337855261946795144768603982389573127177996041330593224210443090987574537389733998719968115260783797012605894596195982360638255835259915173843186071772806932735024522749592794047858470531376149520439830610748335763285340795674025212898499061451933433522240722783612109954034909374385331509281652715887650977207979101855766524727948399567496486758912297765405619699965938405655895403363598063157354420696122837912884186114568521177202242735186550812146134003336258846226047097293563553510100074684013667360777480404663303511887235704840536660415731852213884755316311214677012570765214145432145660588600527736701907828530205691528912448642224683567011599985999434529373418745112496675265830639698163866935616188559479288487785768362406695776515277089711282333877462873326970950225482412135989511384501114113449430028577853153215456747724083907737775130363546939714239719509364660174071757043490748303729526766142126995728320494360917223804841127839251081925331025645181569350159139354126519325850557912031751258445751355628606609740078860715724060420057272642647512560277756213999536809240123379398865632660102773119604428756821486878710931182546138583964261364651871095758135058881318727653901282222455571905560087136014886085336508499841852398963709244129731543101005603965939367181329192964264661352319394521944885033467358486510667496735954982179729753028155341545229338646408098497367493068270953112126035965214901212158767490421902989068625021430503972373787940988845846755640869897167111741053471452774330838986285835178399946541741718840137898799591489419081347730352146489607100873536712056699999075698830782420577980325736164249154840931997653976350615920205392371971480281787380056984499356581207142235976159088566718797805066750233980703705255577002604206232513758832203822706740156487869333687796572606432995555595746659274136834068691061110894274868243822029819536486849736916292157648814313601953097508022743974999227183956931425942561932722782465756267971806767327712958976962085318069185019368170120812668050839540277211731086337161721722610977128304643048145894721093076878932582826730108352949603395318356105437551127760317874238940479793319549881453943381952728216180201369967397886767083926076410967259981570834618131487673060480433384781971554832993403154656031423930664365737850830071652314429715545391077019780423044653302659978445711145925111787373408876158038572656023213105383191337062793191343076687629700765342397948397911659251001808217908913259348976504465172492095932225653066947098903200746762656262469306954748771680539589067567145791608858690689711291457388212796261933793985740837465171494179832562561239964929594166916122398394557961611501546119338858644700142864873665794156412904378721875155541943709959629247685177800914062987040432158153334131724569367647061198360911438455344254914911718170025078703565844860837604817581970280687843897464037913911994243891273292735241511354365291537708132794693107800152634541702675819391635455417745927727997205783631206012786917756152366653451160068877478213723826708869423340559866531839238718942074700146204172292468307418078749838309865966548600504586958749087274582885140156659329095656173149062745208396921990673890859790076220691872680559535722629690406799691389824194107678158716798528901921599892402389792993295103252355235691554799877520497516092863748568110465510195635080934688353115904327668555179601206904451262121156038256394075870031739707034007508962145797225769986639203354432195034328440243779749132306684155124787877075641643911550498910259129401567624812380398174024159743991088173544307449958977740444459574311482029986253585717353690900712692787374208267121315728443235255347990381871392249842377806786760637271553378998860179657101642133306752249067485623694600012321063097779352686209834862810245798223041243396778928554580619209952388270466384655967479256922766611770577040844597305772873727011068900553074767244870505286287263039102959843736972945563459411375608257008429967865689531768717813370930134907219456471927211113731968818379008206126230641988786358441989094585849469846432296657851711390033662955897485735586136773850240614654643559821920587613957848151118879264707603152791512061861736955354694362398024367567225392316532585453855398021152460477871064538682478354924708335089655185936637104207254183961626948995262462861953520854541126571352078004529502605550116871234653863227396237778112662824906599873406082606334084862412313674875648902444412932816700302423376108390520504534711765695159580982050296902157764753569718453186015864317747236675870258410999074059335533716504229176491956064504500276923131314083104527850120044902605063873119564783366073842507009034609958272714299095550238042082813225260097464810344409567664079439704634995478811254449433343450606603410442595833775856089808449437549017343577039910132986500042897652386858343413094942187596451792124954025352805823201762502954079899575142369385102150185202536046857511780555329179430065705580487794861793362178984119894339915729514746634824410647293573537207734710906316758486626732806834480108272562704803152363265921899871281256019286241835610229739088520610822404941091968072192655952540085473636403750563950677264329497229033776002249435439558385620101299486361781013259366967796291655421462091723457834807862209611171944229564326595994016886761164829554100727966035506012799376814439507067698112864793616113124357391627051780884994249919418953670378509126617288291789824658325354131123543894250729701875256259034037643234497149375449232151444893150295920702441094028444757530519020482231992689863978074807643348985664409941696707904246284745343488130916306156254460584424255414060142618874029772746964160546372232893386496351109271260300013725699338617877704618680001436687957866570378334070394295999056387074231015303428594176333919949873304114086573181433357746505983709839919401416184694206458977245163068852883443390154430670067103216967848477871055850919325562381184726891407259781251564662763451603742037173043479733477073881442010538902630645756079641669030748656185238575859712760831836213997119767423732459720637639036886578228770298074695707838057113562816939180280382889336721185720163077193548385624927335668367732257170165856377494398454236778955721773905896657331990708760055813085365702528870411274244209536851463827430227794490986769411191379063981091952253355549267976070627778980987760957953079403007505200971250251598488359856587578815641813537473935980664256088134179324586125071200557514330304935730095110257761870114626325508636338271861919380895823331821382573942101752105218438461408973538114005765984042491657014695004511009607651934721879361804243638631798231727589722954670039645563889709161388041696313044231876794950419477591843522172506608567634725941120702687568585393933882960702595502014269291593789447674796057332693281080421863452072162338462760357557853940855999594983338581391265278512619430336998309882293016557417358106302770571755325074315380482153343105361794573227858905317514574946475685741011047744065836583268273737993278240807593006242033562164717550790675769852977239888708341061595196366954728320503542385552064541400162920553856704920928932201619250858289435531904282857719899422878822178805866936166185583281602437578552681418956145498251224746993546633594781561644395542537121041094320432649469517444983062790722935793532429395386412373067741228789472542394067556838239059095460601835994799264808586501446960559825192682085772684087443854873431058718131594412897218567496200130644110586112993782889883877935770078366358792854426118364251196652046525118134852900756146817902030629023407628049200462853162718933060287279822348756404109664538386057240362134485503860353039100249895606034770760407338261404904298690180695666034943060489952417365563065396935598091703911082427386736335923313141427577986014840274940245112699717955219897475644020955135923764617021222104832731224256026222156172064051952983835503297019018285189161436449150166075465929085618185040162617194421703919729552158606308864545836328911300101054398753101083855264519760431628100511086679433802304167144401576186442059317182893632304683445773260280063187697468250637560399533183228332056238789351695922488425815195368509898684538092050149324490186055952020675943655534004048158772365856094353975138423866060869152779533905868367032759463856400952640322453576329221507900912385113909126347117789757860021112964879528422465618716309703399414613062651831294275915985247943591582262735201710926849423223453477989680686579852198123799633369523558121708093543730690330649839641358435054111943573953933505796191745772045065775783144323864628356444792619048693772363657692920739968340137604421567726705576328894128474729513924532240935801953098023242033266144089900092656278916213068689924846625217166296030049500366113375670577675891607065883455456705698132570115891101476627931132399906627888106481432244690187159992250254240890586642280023810013675941790345768867378961614630731327689952082836986294471807531354073355902044498040765819091872676292476203736265236432012248491924194561605107432658581522006291349399647931585686865854221352564518975581247742135629974326631484544365502127857877741503448402356835754235671721641874828594690260756926921788419235315591201143298126944823405832910325569775320546094741124919670958618141586216360470858601905177400174087262744999092706196855482083253326220737610847294684201473600423154462370624026869290037335818858004566780874310400900363836120071019639902076684653564657029926036412317543514745448735056036759986436798428879563732513772517735352593576968995561956550049456615654456521069425590815428170966811424811763129228261583335261659327544301433003273643464454223685462619158313674847075369772533885430403834729002045378324989582354218593348782861405551363502692096411492892396303266146973795517889454895810922341100599869451624692948604059440315342777426427670221901703712857855400948376696722690396606053372032519322704640877100818645365368217755371285429346348627628425369945573168244555992907952208778349095170189349937307306051873572298927588689886990754964367328860528309565365148852515967072390993998285423599150900602865415365789489160657278868065141513075074901787524050699955039457243357096501127834420645635668040995228901431222640508657333426753214035614759084439968826741152851322762032138192126335066063084197175172371809202628188086580164370396478545883978203850130657049613192257515512201267666224426764238425409363431228466278577745629476602888780386514494870170403585836622220204618352327385048125315185575927376189059302729795305256128302982511180578703155323244514690214983670774704295313518490568356216642615136641723093838812776399512034821821529464824753748405576655494444367068621619128645971908789185458646692702340470715899411587487254793975904692269260382755959146825519213731843172121643765826100074206669637708646625330998534764902591050560487889091279625003960301857938572574738597437588213691914223520752378973988003137696075999637096330291654366185347914946686854368220836658005917168977585474197380555876930433386989580774754159488039191678944663334254878766680881626981089976040399201547107382996143954864842482651461584550741545631427794712227450934363700791701153235881126236387217916709258552318053084482822578033246773437590792736189998324430446651371566214406648955134213916390152470723709572382685116938329933847828177102641955622089590164304428452962532696990522551060508781767612679558615194230062376222822713008708656365868425194674360314196063005303063666546084946660362457104110112650123013774454152604560536516975831734828910292307459180067033415390779337156749901007245340850225793142385478497956643970972935638661802793348487026688959962300256726131286404891010578903441166065597063741357007381183869315899655575271312286309254314789717901845021721567616594648806398501853517697881247316290790602659043228639893867759841488179589178770311959946971128553846787581779328402819549728061486746578801639139602298052571985216963275966643183808511048341792454283844361624781679171315465271238783773070276782718216573743388520765773655690246013616212161422975880391105516151872567266689923951448116245346888967414454205817450125143807265098213470548997532591766034157850580920093721948038334929184533984845351236649872080539283936051172698961048402076845476436100685603575215715861890044219752958839309142931939615104825761229990015527141588620292868859083506880858479872764594109214171464655953166486717354852167477195515587567026484626258361023136479721125352583190177709470012993087174953949643719887226598834651571954320091540057577830890504274363890018719120575105494311771664530117672520401082555238507975598308447685340771872896583467824586972330235088353927347362147169549796342435986398303776422968130347515344353104491109073366077767772828994004287876033830370203219340957258301860634559086308159961202131617246283213514650523160196662248268320061241104351229101457984187461934602417185471162246245207140042990498618493125934554165881314335860088576638000461191980288931241508022359429283661321255062997396625435718105005851699978423523317567446282155801476659854188806822450487205213787625374412701250257903415159626519788506019481258601853115875768234087531614596417387338393732016731321174220616739491177032325927896391398221966447879619718507826622052153919336307980864658063143026959851083083100943265728032981744627144921420736911002876043012492406267707783876158643065539103204950991874584330720042347257724409995277649847979778877674949143326808126051133632124302560008790976779017211821668541821876442325925616725669236479731266497955336746591089628722025932060469021186429969040023325666754846870651378026787796950790300304501467825186049143582549507991391824672810575116477999549418669737450372608675791943965876020765591732609794064333618607004869713344938569455784586550935206410534727217331699252185906741258697047472146818304513928994361554747818746216092610201793583009391694772674354835222882898291983207015956893275853270585160307776169660604349030718303293356334793460471984007761660794252750006331799858294448536325709762574452075157790660857833971819884409229680230161130661536632907873083537197744556709865423093098213979775404736082047795181627157414852750668895242585706484848255411753379890531804950605750676062181892855705696169354556665252289862548329799635999395728922602478993387427626477176030593298623125879480347024118154322152651898306064630060624152290457463586810712721115780690874010353616023417023626830410789624646747568499650695796872069719793678222452013134566714154355220550743207522845204069103813186836871076469873014948477433049270805629519104225060554369993466470058784238257655317034872572693747575139667036267091513740819219525693231444265880108589010612797175502490343921708275563451201510505599499687560109386465779058209508796682713002301133846518350744973231493963291994682126006736946629293457177489961196236010447208463161005515581267530716620429348903199388171067728224399589417589952271550427329614906603834219038017887270729163478383089699686875555227925278361217207752263577537551989220083611293758855868282485923071470665121985999861904957251906088092173835156849993406667104508235807006130276118603749217397045127210630657231745040803478295045210780763040042890327515971607375308539643758209039331303898401605741593710724094121819806305545911659531710766981070928516974984724128959263876869981772323259254905932303078622082085753006007617727459637533997182413290430840815348307707364764884188379881356376613788359247336505263937601083523693213999388214190483335058871140582094299211721676992902704826976226907049603188782967395014895772375674234536829658945049458440987677911928387740514467715799583862625522708299632983467481334288060232489821001487144369722610500427024271302696398390614419597902532926564980518680997095884689716272421396896324916296247391411206671520592056543155882133870514740588982218905902836238463856881312839998571664427382702733509744669370352798137371567863094333801847581127509303025404120899858435298470724477860055415815127231685955491344379306324780800389846038119397130325685514914586500249291377461428480444430498061629898396457324433804131599763728510054356132637771838037523526124572920902147617026778045293160810319652881281324111226331728660252999726246946120891617360426350282013975779971321821064499873747161158504168759240433140051611710864952831690342728589677166585063190523544583469490669201523383947978918899493300619713512268072140348355575518711331961752389254422390007965191463791122659954679430113643145354076443547445546694048480327888463523196874461931623340601636798328656206683177574398625068055899049912825473705005980657328919370292687342265511949853119595477611310844052724017071388858874237003213558948459780649982377251369698762605725483007899762430977895757247534859350393090449544916599448812382657394438803327236415362734774986618541112814729168247525910880818887942837466499297904519100817595493779516100806602535826219953094722247892170488517008689112136415025320333686083774365039574392923715414715425191116036045225141823059865926952252682429350297580228672701656283459779227530665623767102899487906259187176143126745753990902687551234908588016420137978915104393293356836370641267993371411629826657923447620647574105625207538604403433767044577511355107386267098922586179970864999893123944642055410734761424554909131249200980340798605312903178708431504909901290260302204651978669978038728140169167325125041397488447265377450410384873084010855696487917882561901304716395055028908444341472629541666133930189030611135447071287497686613299150181575479670997142758956961618292710181609775263507451819915393876948179017215628220437854698168139722499529326619510572085030705818108465719626674182656377342244378001425975082729782290479401657139065239457090212806615638509764691921103258991317663178844324568973815117634225042746231907191173292840709479254265170648535038993061700034847287148960566131927807342527922625024597215533580690675287102633861104499542626798435138677447300602757835910878634250202693431895963223297784045433246159187742408281229927257173827489998480358318199943178552017801269166169027170329902663702254805726992719611213755952116790503784639433892363680351845340663594915054659384884310881206903457227775471716408285334863303001886552021936467050128043561319537370137565511536067884020604828479556026247490492562908079375557525280995432605182936068942962391502354788906032972958512995343974399103911238646173483153746186527290513684303554885035108375017959235718756855038923271511497348575834196501095454744625201901922814490471389239334947691271666301046670190664741402357255414861400991235379352051900705407724283374963329603053966327644997294828583964759084119895299844819700480516861696574205150136672989833106337616940179694711520023047158387897654339095657959168638653973345594034303613861031176930989313739452112240967679431273929078977551307665577436614079542828163847497104701462447673805814885051451786507293729322665979115361129175167161512880637660769270783919098460779347810885207442042064344983674965027145532443565094262875568229032789752395451076047673619940315536631419638904819017328391416601832282544344878530025021459557370831491498384068060759970424378094391513428779421683696786624989130391056692670851826803073670259313160596355362940256617618709746428505757963173153201815769741091393478821158516436544779239093016692371159054316912370570595686033178925192732058020794293000289279494604182174339336573668998855015758843089634013275436710214427161807190742376712055351134135112906100786420921741173787961985249936136887636149770523917653456714755057130547238136144795929122895403531288517733880081151271592001877395335649442566016399527257512561069896088043619184466359985362742114931805015717111938286585705957226973631248024174815681148431041958370560707157863784269767207955557970028177021725188256593770338827987493187088152481153258900048398622165372850079240848319046299469332585662438001857867539553842341261104400163525304961431756420273931077538004322711886524992246333497934704187957931647057390995305708620493729109687691034830872220991762433724060500005956397903226085927951466187076288164206342780081553959248273288375270771121197706594817563154713450822637248606328352314558508840159081741618884638909731420885539986021541300086901569621872107135368793609690073545487654548572524929454858051345780607975821730863971071478365049919465565174122662068262265426347233120430720654930910987048212479486359078136827625820835895347365821273327999397730023650060533771650972634142747990864848540122773537602061742366712529789926593718106536028451820341415101986944636534683399699517277405550166078966953641227268916622840245775589476004035502531887411843311034692381107703603244040494718757450287338596415332319776608815456846076683861151042506013954165029068600056051697223726839615370201687952472944004241479883540214702326665011642068929901364410205641105296634137100051673935112458694073782213422559584502988187834394324796035489086341942148828468325857658088718198011038565613343039096065090739463766999167246370330252700078175482702797292030951056739163362273439511724479743413534425070516245884611797312690033583326822172979073302513287503771843594019947251632231118352241919761362355647911142577141168550259606132558210244137617621482120194914173670850468543233520998118940047361063549294972069960925321927572185521376418548509420928077109427766430377462638450881915181889889411007219130830576167194516108746955293597266299468909353832594231619386477111398095294951896955551905552236669886399763168617631422766235903212522469083523134056223367539674764560439827623658470908195088341416309076593185352882689563456406842296152530660357733781341383762245239112617085318383474343905252859608818002761506949381491298750833483748544350596974967794629452456849036290416164970274344785389612145018852370499680072490030852628539961183241429144069906447378700562273784642884240859973509775077918690010247795292911310639468039207764680291603130216917254547189328323968260167650566090720086146198317859430413380745211876823025648374385489081472323234453040738060116789589892196061562095588461879107887955279035533016153929757804659580264276712204532927011044342461045932205584040226952271676788251689207069677994115502527567209914481332449105628898155684657129457873511600910164714433045414082451660094556456585884546045518218237723695440546623120655867865397407540439335655742790399498750298103821532581811709040257886313440040905556616798573657026035406283377217919605678644527496011704313382738026546214934606451636396050753938877156035472575929483558749178687093688168291499704652807480887711147449202751274089902956745521390935141896549720470778875428620301153101397461106425903613327672358687340182150505022703427224539343273875484002156333236509318451479217010695551966565456253948901938213516219920531338137478596447987837539263936258304479639486008675765745221953546785094016368428770187542023197671243767528005001125468020681622048421898112546854492426601098664458080364313630998496397616474289423061072882375826215949095600533125904275839838737433093853789443697663527053559560221356059484673949010391102609400236449138299851248199612688878255317622626462424604079091207531829432067462826128418725015418255263715436633415341673969866230689808796675470216709692188029005845276661640638990058811399737980500783882542783475064241786130652323757147103772937835384006330340637735163415400617520196064925393667963930248159587225249140409588063011621673140587037166325010625931043976766153801231758082690733313573182096767466471859128151070565406176720963223323525078109416029664860802859731935685960377779157800914396330892088729895109205008672401391181844617478660380548315569212724409988160626462749664229851175782165211014889546454944421833384295790783772050023591080260871892214693386228190963763807063239416904371688293780971394059718631862775738578090981603356681310740342655115274637721763066275211810903943272819274293954973531438269114147887510828813077847831049656854025096559344238448436305829616687778902392140005267443194055440655933540088904477053170653047466241992228335555899418675172882423407894131483792650628022411392969930097284815447705025285692389711473564601178503305696472649031585235600407559360526539318083120144778506098782401617968951894407305971735783524894846131265777651249073023649873885261529934352546335470922947590431265664579060012533476937748709821443942296537075281151028961554553905138694836277605343072135944255829052687768437244835639426943991632096028646557276487649250536633558188756496289472263538874531069151525397457825453052070929090633423027777580270066381927713171984510167417127065854569467178132575546971551375620686386034066405084685577237543990175098858159498302329631098080344697561921862591805469210205717654576204954358418852299544776606577027233737381272939049856945252689336864041208658393052430660777074142118220863596883676002222831610934380158178757675695528683444214576601328560026505671212902833494394316802795255449920740447543522950717210299218121879283983057188147804644009403947821892895462804034452952054546355652159235640551009803923921062475105576036805530775198227097965704229819888920087310357303712582307390184986459241336226399558892203541818405906066909812424000934668498823332788847009334546330345864582271811019801375930069222643173539170529237016560534735941726259880110647090046381369354394305564999846466986928296971543486492108090431119342839713228004463851243746260078809055079039326099055112828122377031692799116737363677829571392028888396885729186639263426218148941993408809692878227440127875016536599767692768190485677739593272927334423006733491032066082838709630018641830483441489288970838741595726475869829696048266009753833455313972643916977263746884125429616334295392988619031840118379169791645354732959065708004328183792192804395723497257533847475029852611615877927755987168606710023240491171571795681391175967154755154353964752168884938436556743344106644692365483841366660848325852071524025863042036056967292481593910422501666333123993347069577527428517108442803306236383331104289008347873730992675859275028300446906946254287738866790134239979843120546433336366933353094802213045377300644804705396026262633830777220978993480520128385961909618310196718000771326135289736950862089995053001327849035373835445828055957250286482873717820883552914084189154079129240331450136913400016321005705314534919521480842167074438971951647459593985883833418671323005447135070644156390613305184054258500398915942681957787678529158733527934398287425577544256694407641339929796525451847560512507594359397510057711504700719021126407632219062049810987586857237108338685667390256856987425899386879500977821217673387972066894417966255811072425635003213264256628663467051902205602038184083636599750989673615759780149530407916488695708669464357980575101917188276986192651023971083145899050916625976581620147151669769296820119109578980548823527762280186916183181664060971997169038199750125927654219546487092407240783613241381842864019544398126942432845997331203330754916456977816754565129204993842732877639480725729867503049511034152847070185230199243758676727134343333352735496905222077896065699125760974721890500632940563107684481758401629489094122972981140541428955519349255104208461253199932139699094129204948872964350353218044119576511314079112371718641840101251415848493936904307530991025139886726474107276099309065620513829147281997418363459372572876563114455069324392090272786185719448542023134113773878842527126518937161139145384915548572971928534718188833298194826918188464775818796716811308429641267514179171308051682418178123024891923383523887644355929871674927240224069453178335071992307188209966418956532142753749823013938778991531627555526566681752528832777634906567895426803519238870556611538441634458016800647804690019339037962659141523905562628354232357735799832769945369855463413675875938247088779967179464974968705971670085083445823164083917896464355100234664781060001294169415830578655062565334032746126675661213861421141790920038390928222400330907494928258915378559190298390034173851129573608385338386051741316745259952086712350284054554230049591151521925898906214379052272812487707163664631849750635900971051817885460738606175406218208718957861012862456615270682109620785076430905675827379975594745769453256817041704794178228048934239857369624229554674020367318878987071183718730382958013239139826292799938647512425460530082411037597589160003311086691058907547374508824959433167533802973821423631712039784738607977423951929624398430452336779143821944458713667280383993045423061742068701906578965990261003704694122135407011538607084892086938276329218171034441279675492708392720613187455291083885547907483104362433768157593638696189236407683758381962232058621868138524063497142566247689216656203828015379057214546039744413972937473052929886398548390175883254697617289725308523780115238700599286065647869502694885512995687356515256480837300134919554698521881303046077799703831240674067977122750239984953973407557668602405139200032256652472090849840940130672626148095882405674611498191085667974142645653160398416049431566290417798627491270600869750406819857831165665671244617879432537308991474536438534558326632706084566734366820356560149070223991408856993385116544649047262728817801016320543178135949199577062726022603047401420220519247028643679733076221851900783782063942716187123395495110534453418471110346107285859234038210001399279545240353269303396172957561936202198095869812291839621677203961685496006595455235151332602569357422301802442992560189420538530457372708571676881967844562615305756723399618905262313392053334577096861549007563668836912862009674842903335473743172260994755939419194321341539570254250259501810688846636633256936307722259540560690438671746421744062961701170898891143974530611343626749605589851187225604278710208153245255694001933757669567992335981483442694073005046437905118008255939493113958757192642438457162611982773191354589549410840862234470186315433502882989480956723142362601934760000631569510614516966475809521921250696828190824116248527431167210633939725266856162018408657235139285931450405461687038515684964520196624056266460624740498604397937778316590842169118623214210197282223772499363390785326444881141602346295794257129309211604077944188299097267704969877035739830101607147600630228839753226349684732764111348805753371710992184734175617523953697901923624093003782904628112963043087012749984965204765101682191103287768363245062166377537642402797179052135254551812795645941609666521940473492762528157979848211898102999577865776776414516893232441067301791782385428056102958098323839557046549775020809045339167972450920016146282551919995010716765501122963225556223160892471679835164976906646224550919991113730406829420451059663540872902219404852717885770635854946538649627202536066192414002896889593171472928613297005128284471675141671862976679108887674777011463037415236226771640954183694430006749553153335561173081887874124593938567762139685632814217678561880879704819389247290992987712505914801107051384790205624365967999777651764889460431310347532872098528244460714298359555918653563875837578716843642261467628564751214646537687299619076174650211233915383284063285393175828045718418593711698029561789539647866512351897190172721094255391248418972846527271817038401274782939171238342292729812616374162898082774867544658405507232215055080832460373667061350913896950123443252562426226080411981189037819497898123454949551060683236733699905173430145279986788302956035909817294747884906526602361872114527876917492145620754367826229571911538888347492010625578067204797415687644094899713735103453188573209839052186472309078816975278633148651111665875401160244240921510197849562549486171686695654038847538145660998971237670446278329554850615253252167585250539805565142046355277366923057630033457818142365055510166259954210960549469316411193312591050116342324807594517147039725641265439106879722428540273841958407122887523303735632329871438660858100245114865847065040046092704467665474417970743565063209978670298296210614213714466639502844274082786204679336061121259712676172920092181943852864859555378889203568955458917945934719478254193974452467806119348454088898523924099647400553812161821221328398836591173848168350878681236005840029566674271256295494297836219254101749613939179150942402083989491575888787609153704319078725688143911271136471961296147529437135061879096945377592497988232197641699293179621636358892393693980867671543536692262423752145033879295637406791161089848159183884658459798284275544447179959627313767688085843522161043120128924040614811420898730160175479054526730786986073705196865378470765234677043517323553447826753533850314971915635697717826682132157575491356432733151900279473332122037183538242398797395584657892996362753059364766414814329359718529663360555326467027687424540412895168023915563690674383043942066342402716077569448365927316702959875596699404994788391627555731579512374698592305828567620008797840144643722682103881111836271509162285296122963231243740860982177169965861437351536765546827314050812886409864835230939436710856660722245562766735058702220320322814692815228007878447380779994343393363876601203484802073287431878165638989763579371303568390778570337118606777946669924812858198144735205919657045984749113481821228187816552778890123930504580899829189865853631092403924273886562196730851469418653278429062661274985679720461237660464615935315844531971237657382087436067933370006524985041981379501757688334952898282921844024542995978082529598282520960931320656251348584059487048583517676779129709670769306645554830582119226918089015855150269996783611784783481434094585651407699745980871988710335132626310827232284597602939293379160832478828977432839025404477082591824682278393530208119269984364249709830447769157398517652133594393737497488021457197634681006113609609198005382961105126613258201821753263708383684778108022804002959225636161852889050335131264218418312631543827269164027526774457537868249707789954451289696510579963854205731220959019326193236561920110479132426385192506855856978356927442042929549880381006222816625666848991227425120622509320515548233096081586995949860912572936708992065127502088966219161081879142655488115612233887134922790638074403032028450302956383696807463497385804570807617038089323304489420237470864211740858986118410917511173849386394726197312542686099472837690492579852226853613095440779698880355270175171653190332099460731690942604147413469199102466699978407419927503595167264651889331906907161816880120095389142850378444144826687565181601041729443926475899034365383033434390452347352979125050504504274264711684860308808381987964351183758394255527031647657333297234725663818757063459047169495114936341473665620814934467218107435534602465455433699568349876129987053214243419135288154883332258700373933085076270260600469180031699543323043357906632704802765132216981865727684642221955892262150350924856836661324563750642490904678762386910485046197764123982720412570549737911706114041058825087529413392378831112348476279103359512847512249202204263746733745975774969960713671301663368586686709176036997970379561765670732271176993936897804005047800687390089836380731616471616561888543069133016429130614540785707479893136275392517812560521520550857900626505698536168567013476009130913060435797002028439541447855680679690983292104169498934243411779343250402219490394704839063168155339130188231608115833034575270424217803211749304923947229599850317310763044883698236541008449929712844701198027496499984197425663026986146262063363444459508359480492041843044812614464310175287803754159275895693797352228860130961564386557556440920872860184411481348457996626956068284055368217457754721004866010943088843000166550308052285495010072340816937286475666794528390046235316130965359813627526008204078831258573411402000018485541429926995117087353682965278621156653240568837465605062976638439198821063614053923491300890354770486113643487126212495962700946534397832473887705235193643644652814033535695207276049748009436618180387910242346971300026676623210437498367529400043144385903894021330786119432410416120096030397485538632613009263682871715241389097708437226627814816518334394964645217839656861912443879339951773490289215420170789046187896800213658744314457030091761379185293792492217624018370745464054019514233455261910109629112757752150382717553997156795182353562380330421146387712352653131447889271861718737881389133443256106090624568580743652495805560225662410657178338858296771093801820077927112067158096253178084040481762217522371738516495733614151005262598288937024825371294287163981137107264489576542578920852602288742198360695795574836346877699161209220196311912713870745567196305814738687578306722015044607815732616561816048572876250668537851203745527480107022103358410003272246280005395349786771058881544277836272344896058886000635739491476305706208630005498910938380401946458994348320836086899134217710133079604376208911329071197919079828526588944373489818982534081344985384485345968663714616888395051525545948335457662851069250815995036129738990189126602540103749325095255180180250835913750689681568446639922787649085460060425247589972118986876330079113582524777221598249255485893513977401342390224547701242106598830586591428591349771322089176283422252532346640035334227037019285465065135771668892308971905257327243602240039977609017280306839457754683551073915190802760708668689080135967213162180709342178374559927725368041671254770100494580484372128132548630704793591900932625582013043244209275718767976279015231145363289817252977798243730953724871016468524104518541057040761843585139293129155658464666044891206683029225988632087138447001196632995361850843712859854306450913604057385952583059257274309029441354955874153102677300113308311511511245139994061167252158677857125111497746051571424730696339429251376677871986262169351003368995835898370997942857842631539138551436988547192554692824740969417901118251100950517467782411996232034600255908907905267424693947505329744214537599627861904606742591061342042623965844148277333844178421094641130805950082416786022747264803018137869682742974646944739866757082125713925826836204689082807207217559219090937003048207633931859048879905848653515173992063082291031429647362448382417438904751341778117863984677856936132308265650793703087247593690979721168700632909754532734617175410756624815397404527153613073995953953898728249537417731465495191457529654286179815564604342061932146632571500186401554988700000825595662661233453933492688905837158822623166686102419822073262761536988506448206861617235881952554328521261306120312259615711913915468962511594982347110896508458871419269950324658849037423422542554872297191649652574807605102424966094602599901203061208792930643667762217674472636727112031669833915583820856693889295177851501723358156960217123688624676845032456558377052958869933445046012602505268607017142893216926883021446759122776251428494821906004396013241381859452560969860564802649826321963369754186887264119069304874530703531994155391167818722051521217446480514953364517170687786996828629883766613726891253328513245146840333788738700648771160788448261573573025340935109220395813352941893701727486157817337468519594887944405275654695806946948045226422312232138244864160964404264423072153457084868595157333812120665399213341460029598090402758679389444340730505706411559384888915476343455145076912377078504188088176395092776335413417707451665577901051921210199607870049077320524394980572645329084919337716401906736040877958097223746956184790733297321408323147965423566957733576100314406747908673076537312628025270443421674581575581822932900539739166968912230613852727999364557162633662760909791179830032896002918997687484155803780480514272585865838935305666591234248784428250909824468534828111083637822741322860145489759988228834154815744553115536249652639541757989217892552553269587342337852726544880859004358411016257027140312178392289216958527844985936936696990392097635915795602404005665187359894974656519285606559589096518757318965077239917118607948364793476226960013478730233833600022312185670749505293927091128202851510971213649249306517453230669719329310860093080892205217616941474851695441034146366182550028630218478072397468006365027838884264790866911898713232571766310503289037906789368840270002096726860081487048388151312796800239403849661553744698854837388881190612163184088926295739283277639538482190755813875759811567965279982852335012551155586929147311985860865192531054080694553802747300514519986746868193253968359807173297285134769043983158696101280568622843905728849091702802108014034790053313897635413505070825841251097843077141134344040948665904334451782539225838270991091590695547573109943065513325222169183310338255366530162000954080696728426181519609742154996925999348835642874184476472088589035471803951838851860584220444199194816206978135455749519473557193663257196546678848485179854011199034489555416590028284762741131501386958491120833281979637971395582704306196963717807201247907014778141195393764369727391168576731459607787902737540452956583910399508863634811566975196429489498071342914067027857690082388640769373830971956997455967640603971703497382085027201365769057225244840087754411842730725315396021597634283888735028913034325998887399873561404305916976440371659307505557856786813176933970270546042553470921730810744547654625878468328688715424343469636388523608394176938998534316858200472879124321146410589550070725713153837052726954589389091645142954741066089163524308742212401545699462050076552959827685953125961194840210186669499883851619654910316651226948525015736074072575705824530192634587358600552404870643040422192639316725471768836423671628297997451609068708906608650742263620197700894548112568380167815116474401458766887418307039470860556271517026982438420362411793002281069858517633346552043080542375680972543372609157451120697681085397926018798397128530592004581377865261329821365559132788583630987072404956994367094188988836414626675363506321618598672566787251638658014686871443736376070107947010127595675733876103423519516183473228627867275644419555695491975291732484190384550321352205514629870195412993794972129948295015983809117898373252995257083416547160921812542908345457783251688453080662364475249045439445112366405092573065881318513540849580138340125381260769642535904673417184258285903753849234495534976701997942803442841996538502470120443233970381006377577765714798671676774275987382148236577372560601630863068869588607426315610246980046173493318160952698870602326757831764422288618950585146740471570487205128031716031609219023884110990700143155896327511231796351112516734623127996919786820292409693706600457160668166582687840614222548310904575378929872053953929908186992881811558262836506976597800498571420415089254762301782455756878502013664110887245250187573112636312527439924161021007198924391993911453694021247449346071547312790119110448244478258619136042765406785381686832959572949015331795757276932681226209033179649490534304070853482893204283680832960151776206737245058517566515777363266644653332436457368996440947595714734499851873530267540996593385141791286820575103008170894822424964999241250680669115359388591959608865036253706172573229839036069157447647103361677385647992207045184108487069253890429067936282578729496198875221414348562942574037180187597606597694953647129891087834480571086461019564105632586154213398936337456647362178130875032420389694570625579973104200708150843290458587556460720213234542352289977571571923249502020160478389209248694601675962437556553273523754407816181695953550067986585347409929618443398295282433319527170997962731487014049924729655316794207590683983928728871452786707578672108862232752455852177157146658731344350853619756174428221975724859546753053626531007033357495769812417119829282397537637917018624811327521226533966087644173747603732636057784644140723719382677424883090297762664154893338181983755928825840709254845762548814126599218460588690999551071119919472684044092306142183818590199287633415311992486603482045782409628127241127292773485598224651015314228231133033042730370656609918480667312521410698930762554664534646539030106172329799516380176555750344860284604548311875153101497903442992558456498535601996444933780187337710636330099426197009282916599533133406090307398998256712256394515623231112260138192375754777191437859677449572314315252371221397040303042082202753203454307193462095336458912344755834755137917764819150055675229032812735721084655270085787869927552144174741140541883670743370389329219328742893853637879777136054982353660395953417106654809667342560274198462947063184669894485185687672659814984968119830661313013414654108181772340045292458922475911126240045988483041154268082008840820963440728357546600650838378476130896646202982212750377409561856283971252744461128502665911539313886888629205757359201368231079049688370856601990200878631244429898215918964877328512432236637353850716984166713240609087440878554165073405734274481296000209657352668403626151644765799844982625548057586161250206615903981587977044531560745206419129170319286429574749438722077397114714666159375806082926112077281788566149506222112963915429520602689445694220373344162636169091855345591055159638215765151255302206964581693020443402364197986626227997209789100194273377235718326288827510172296687220995085452846213463485647461478093137689506795144438351829586502620045050665192927192268135391915594254007039118908416912046313314601938764464100076494716784009912829219101879563216443510981424590175967872913943244789282838778212166633047525992482207294196668239992066018905637288885683901605887903702241505433719763052004808780044358434350166039912237731703870205349857681104976376197732075930872545708107652000171566750838608690137627413845523022835474319819735859624244615635262044064615870220816320714719501105697560448756926828464894504819267638825160959816909554071492306027972925982385330486463113585264645777063116992178071049356935164569609724735712118539200452956648473945842509059366089721545862348677758726021036451102549430309928624118053409559418424112140075834079369998326688109891653971819057644807848803399146679552854679756167281589557223913997520901678220569451651000015869726943922756427820472015427632076966593569399681726911885095650742960826162361428455481725843584780518554941275308914575446286785095590122318254820971600149383859616970611452050646284401991999396096040956125426416478566827204955736155472199850560555324538728175701968125633973526601950602256277602058827793852211759964714417321158760988104354817565131608589289908953892315128584615672863152229004204964869279721979607383051757783025484940485365703502865678869056747367627336076822061538527994831405305919237393382344849355764338145529239483824759814438637121459701409282629048926235254761177407198033194053521143471783855264582703737496248867878536215018892415917718681195059323499238168998796601140774269895453879987731635242043892924232226356059241341965139352551892025551194513517639860334269795827444134930956024564015613396870719877414232220486057365080544260919582899984810540342144320027263759956502515512845795434365323187088082002437050987136738410784336482308590833434145753337342906000850129708080401990000061012202746816437260209751599842863414001579219022471416456101319663810885917779654151287189090083949474191020767235971976961848502130318681755487241415440816752133808701737402104508284729762333843277917924133632159357222680945976469659963906009481050511397648043432980555660573314977555054714741011714368930614779036976772955488400979077222206932958971911171896279776534710754784386654413259763169635526851054203132292347036646831779239805418543237729969261233065176434984567046293506167932320617751884093699620246368381242778463246695160142755423436295715128413475784548941652659616824125573725080039062590207218907986822489106492819614325915356012327132503187129364008803198398952324434540931071342342630903521950693276631203756026031034371823566388490396813623678317715208584013677934482799279705984764066899261888767785468866173979433942935408822199570742581814044925887909149459969410237891239734177915976199494622513461289305366946699039559998889222041505983140495618513365582386894560768687799659228231708931783220711049317546700062457871343113306383685420155567066156496342456934429572422674520333186193735596478051329942342986337579049973062915414314290041625212918232433969946517745023820077919402051618721374601167263897695571953852216820287190866492865430396311093754331813331717624942116597596902443945377168098067088337754450972213793287209689616295404489667277924165052478625783761209876320378531450985535393161410582513205494593629725161402839352713447831224809834301868309232859375174828613169396132919774085256133275797013131394639477124878958967986573793678013625031048757669948523842519732904342962774327051932185583421894304673676390586636685399998478907881198444477840790105657611822055520085424104672241104603693605637483400100993573474077266987197358594049186998054354301155194513357059040189551086088580444331001874949135812248109945696204547827306103030671159407119417321598911821477817066358557283019256304591878755601165905226025418572712883873913459264700485473275264934412297844866686605863181075027675937035428371174001583612353272133682959070977931015593846739251192680573750232952480665239520099809343816502936044084152459261858854482680263614805813498715377167128146028227013604392937027680933061506170174262134764128860607850715666359132611215871682655587397876595595842154981695752368738611400096355106878500904138695346154057470889840267621026273005637379094549882850550319570117105836487925310847101100914360545467342854416511642693905454798917180158530296095645551425396212497210718914474019734951767414998239894367309778172867027140867979397987314106802960200359397436732199846641183814246675075971717436748039801282612609229386861808369992947185135598607934656929018994417534310326412187511808601003196273178857328689349482895210019234377748363048086008170154767199808742503046557733948580709631335004794562292378942650897111546459433524642918383634583069334011823227103049388661786972239887465862163261795325970901961407072612580850310308112662787305391542394257475869766933442965501469774779888675222772204511128817103540777158854278958944401169762832443920775643203904839556636663486110464441924914478875159507176707606655072953221708188404275514779061667339346112112946170173824017410591820004114744140021480116133078018058938972846723911944673653932430934029039067370665885751619645359184683765760187915433126042871961014721091355970747345737659670595059787725874990779809353413187951604460103261399182069758158637209192774399359663827360309948735187067432955767645996637398735981174167382439768859700377696040038983834626939717016592129387172634165506090468006088280794473325304450069836370692383044337795945130925534165448552208967590792509637826327909376700901008151482820211777117027506276786909016529834466265270672431731708241432151209157428718643888216566314746048844302827318992696297932339239425505900030673190079528418534524816869917313877068320188883663282262500738783296188741153302572884659628739094017563180244800328980493054776443366606394286052107348492971913106319079815528768300975025563821372115074077502770626404051942860703148490614521421928483386499253539718224669995824070854133158138381097946808989353244272145930643254971829833252204242279380327345510856977637126912446117089483696527647514726961418787460794253850894528665363935462306319219388279255398805606824220392027482751817018218423719268018353523525714684912797352326938324734563700400660811396548427739834360604759203786206470829525413829065561507949893863587311494105052193341074496056994345417022611441002551939493461166067576839378878741417939033847070089217526476370348553053402906183053208979809830059762360105275966071485594215722947511635653088586853372218553108780132018788127375390426798924493416548581157592410424017858466867251856320330388127598091426070973723712496441629726742881367513664811985914308358163750198080645261942668605937790885743822853022912087084177062793702621036813904119312260440631654107395248295478627480583412034157627445399969339078645684648930631880397846423076605058561930610572989755397912481185332538430732096281572854864932458054410478401353971288815342817730531312603685430857750730014865316887999591590919491285773643426864641352311530024018734184336519274560622091807268657365846513090969520491093193665822483877526291971173597962824142792076040691272504259142737479593392511981078539978720408875319853926604856982788545260725041337300102313765041662558407961290020890362442765847377026703329510985454249158800680271190950710948725089817311723607440496138539240291582346458911104866722914434461211629070076112472449714379947351655889656826628154835187804007198783181582149011358739028102804818387576854850921320218733750290639178214379095640101537087941842611476875149633761846185212096588334975520779572030914388234703293445882231664859838270899151647912992381418456888506049729996932961583905455791503271038006756348027381185165347814682417483542975172890261162010890155543711116500120486818123337759677081894992829769808841618418096075102094751995278536757714996757655696269067110705359471133322603923168342321951500997488175578865224381710577641495707148908066482900067039441693103608479777156219737373714376731064302888198621233446389029462586331438482927401084150340827844791171924113335903745083586035453831322440245622664927714752884244082455988247450782876241739850258502268903138238537646806049099532413535145157010491151702748647256999861078538766153305190221293125163208372073863670999512085597490443016672997809932855599922184860212157834047944151047946511511993561504936361949480457417945779621828900338091743539199468747506068772173051357311873546964611672876249570608334228915709863314852462363260787448883939433694519165959378489377892822350148360749379846344276771774852023434812099489871562287170840641269250001844334147257587892130085929557090814174552032250005962519020595388365586344860873861807544605162684860436094094113370499772133328592223738052117308186620478215859645790075617663089390651356267083676988306965337719624583547111938551774254689523563908687626836656581772055972231849671779916940517389376405789467841921245305922682513101581136319526485529353525933797941478508128831591118682931912712355001623251492170363144188619586157515244668819128220508436817115489513692863971445092480988195419808087850845468430942682976794864538576689067492609737958331663420680981898180562269225616641639546093308292514096025225157235322194580087847543844814868150677539077699893613629723942394942799421044265065774757697761033623703472781335835936129186727277267009380633163615526906902161773575033685263611015618133354469391928877863077836175031958592940615676412824980010386998370420187002430706036846253268684115277292228377922773192605828281299384996936757455300878413899364713433699033793753263600915349342818944098953322928068148006154400493037592625881923714264142718580032033315423187562631430868811483524418102998516481907955957632213361780946193369210202579160549856899269610770736044640621257664485005325884259080053181254426826718206161063985491694248973543880065324208875685095353607346482911891218631574674493876881007764870591248486979172178463838812531077485327158341833979801059298813511447366022180070379400896873218067297233152940542926610828126457644123023215928997070592570809064209880469727348670521347770787767924247688376084847900458319792278604080671050422749076602342946567819867906108497959112638589493761260185892024285314692534161317115904351462641919874513023063883419551700501912196159943022351504630176277358251234337025246087051504936278642079434061756091715336332804113216593562044635501382078662255138715460499497275944276223578503715523894066723031038681753128348518238681802961774627219871009570347076600397332541691874486958231123751131758822463489914054080653172868429681517339437170427834156953262808183344983175106440233963591359707315605734907635768876757650529051965946989146917274364324705061075694497867747420448996161889814149033848008083775201400514067524751376689331555810421685370706630137634159351498250716667453724537908816888613656830412253284693733055788292229802322801701630512269432455976004789399886027672086191915929303270989831661257457170528814836435498833692668142474379714819735515031230982440265623909157652055314932108821784436030723333706819368240269057828265280152792356835430345536333601259037982256051956682197836103772739499586773366660299072062026458776934675599301015085037040875404432689087498729703079138319717467350750385642788380727138788627292533607963291740805898409448976150287986485380679590695169209417311593608756269899587700406375375681180304225629307607816278502323716471007520198164580988823105121257996096941797092192831642420692382510109476760589055396782893454877655843043448955200046131098047514519139324774686697857177159172085922881248490966198152647004582468856791912652503280416052493978988812422635731594150836726648216875070158396266370237427729356683152824761349499416744550970523646815609633771668232728547540170367143998490979348450082462784420847451915150008978460619536274189795235431831826042772364078661618797450990375987657986673442418231639435059576906640759444525179525701459038088940403150912448769611513395807608741443782732973165595552383545040918069273646397445994752746539545753123665128917068240532765487053631212808647347982709707536003482464724762133974375019105227854492829116226062995416693807767030317947509986858706469873316734202536083396146978292115149620521961590101161129325261990832520716288938114171476278000401140346877768969713038260093062879165732330741038109103646375643122883137065300188146839675077240247975304866214783144345229661522039407180593607713607007226446538437733842799049095045683030683382663146250881590737736024397775421948255158351860138273944255835860648058225471680387808312190636081796218142553968872555911430125837904382787268009295613075391818921479102745189791307508718027744578284386230360521682134805302151954803800081069863410009361215052443364329993229681253233188086794832866196688155290323926564692507383933199335136750323753710611425010065769125333536625114448538699807181571354322532934955978312572175215208158918809126424095395951270209530168872221127608175873930325654438114432437293008001432909806533124575148447581596834015381474005047902911077917954826892139317484852159082852786903190577700634692946688560394873529329387697615962706515001411111577028678012457993320840041815510521909968083195306787720166376652152687452275667395730516262528591558079245099860341290999636531808635584726208553539797598896924080935213716365245468359584749292983509605466595184797719686347490762012860302444145005790529575315764635022372333575608832223760405406012669108426774571115533062822090269918731962117654560053038594670365360502898451060333592237707068268983956220887148186623077644204552235157832205318002227777244415076819306627878349322213764564070598056754743223588191176252072241259329455691616730475926309014026794964643307389152600688076031050102675088759542969968904515981596233748418109510175284533007768540891687613267286520684219237741496803489794128962454209023335336225721243629009866505858947270840161736858222833413076481042694392384046374542683606055631023530529856143660000310347997201918209018277131362085602630238051517585330131452706911283290904406777778045404267259904582897478444569020190176171878195763125676049784450574755397620813459408020436814114127230327655908663625730472367067721841116386586985533154504499099815765488021666843232220883221013925667588727396294164312034761064760270425520039411954372457769472722375600053985205038518867829490018481951249700968936593185481187079040255309827272090320161873882634058525676302081467614030761821838621557840372885866307042836991740143873905337152900177389064280817001605564465185229175591952806402100217313974708028111904862394758755480081253376456707654509960677144490622764385759124032551618748986157224694386287774663973590251477313320610246250609860850914255225474610012030170772085542018712263341630506300517504312620658046829961723586229890587766217387656184865248051584098529252181959768517662165750712982212552709007540761461407523415725153265476339894504445561605541290631960636710797730386473373111370651779507154167497173941302515281703038927479523318406549151508648341241077019455504534616331362500759593036062448659719354086086703814600938065103111511272815283477570936991016374562088413345311454836355910413072490481475562622918236419471354505451406989773254309528112898984919676080718855588942283382721645194418585973601053265157533092293041130242391948904225119681395411496651740075400809302249697645176032878044171089242120098909800653077172278959713192383906000171434957771619765738358166520629335477243188769117490699749989745417722773230750814392461257738935382728831667417737312349571721999107928244603743983273319532217555974077210100443185295123770497107498426737719214335499115103761665130558508098784211561193551314438962484565395277384615671625938693284165372600924358170378693894785432938391362696576106939110086273686553279123187035704674851109035224689629328776909275648170164275435782224234037217337941039332014810034988378797798117442760583245253429926813278751051142314708268044440771757964087656464900064209819369737643432662913620388872922798579802418131388488826357088362081703476839662894863155594853727875499804148372596774496639292773622719509919192539647907002728807842380245905586409449890429875567817034991635301188644483435218091344791232158872792376595763249005832456765357785603044051571022575562884061837525936360700230763535810975050635251208458221999458896075090116944148574398756796550790752671759380688390820636221202810187340488627976786246829973760546372250664402585691837050621945186850146243903610308514327055403817119192717206670352285543454207576584859298753598317009995231176505130747253504801061186978347231336562356787713107506132775188671756497373218062606549309963225094093405920064532212611443962347405040184457407521247741616029201455434324671692062544395417791858862849392801709764710355274969561937182515759325760970778555224122690318800630563778405469668324706529406327877922650416093832532239882002681564901460099343866799406949680366615349334201897622916789205769160824318403942922038008382182520347568487562134645044253116398660848124915524139476819240331479985590475039799077244895579306816229461894930964233010289743844954875733021313671402423933219081599579110338577143941989082538726954172254277844986219788274341218796259664372893859086603199955456628170969181941906754285001376887588921832645889484770987715739751986623776512754269400996069162743559386446457907005991372814608435829281510765289453957920489209552835018419203013266483978489951321198392855881302766033547579846613202391410697560407551151089156762827160657304181145100195993211461017319029238700378145347127319669253032157508466565621365450472115856162580579588205433993395719010197604009885936146286699775681429286924162954080299318752800209792680965877352313045656376608808327862748663581307172122590249927790362575099265945042977597851186171941908254736094967818029089401317106032183379418470589204647375611226549814888603842981425981885155641038444397780484619292778872548206754349776411135897380301711536462870613953635752209989919444916710969094754562074832825881003112028470062209805820089048816062615869555839169845336721885580181044907023054101412020662216591954613156176687235852426537322426554799816667530522476745972082121973584734271358634812997543455899198038775837818519690708226145875472557887203589100200033479793942233586962696863116304952973519173951646155643763935237033113211274693897706657933560465052198658661353236040721874196362012755989638040870513614565878946667317089368458387597965633206364544835944529319512625153818263748452847076414800819462472052824822092655035928731002031391592609361962567506322078445999234348650100861881059154225837012717233067892072747138656195336333402573718308035338255516757352346602687505416767263024973926033110877798631883106532882497905928452639401615080635330086373360291631170531320723623844697645505999123600932351544593531365044232837618481903260514228174970408633510402800194315599385647508833826503378059246925424323856505822903851816291179081202098870860930140067958146768194355401035736628525122675500376131696706133889121311858548829414288814941570213864094935903036733850776883537311304435448472910639788737656900426174182366043373637228491917636634354217436902691206185637446084421170664744763446597741764298234683461483547669292526544321536984088719262387819351060461222697603522563851969660651947421186231952683221072432252857527991517960556153249319825946725805717712512036869399641830166852134417577493154517489309179541744710788333788984732231700610714257525518142864790282078213991541367892723946863059986942173171974773327288167682954048263707614319957432116250749984748231807856253206394498225577978665681128038797372697224627437062623515438125590935518375406625177025327171277910822839443319994997472928181883143603281925447746871670465225602263107270470205751289761833140753843828466346782784795658847282213477101779854057484606787363415261292781541709008803605341436037362669430535471603259477909708160420860458530909350354435173416908612085564490060568827658984936835592427858047818795445616079333912221494357668840537025876453942528322681624331436581873312301377969120371978820658584833230191042202756708211403081153818074493724094074562286388378968051025991482977456233162103112707790661832545225147211298366012364130581771825334357025727817008151444001706738408218830426697628812148711132551764132669874298885369289013547133962264613654990837834069330421037880435691423893298229109334918406076259364052442922298232167415992624865150127713623784847921167573588456848241313639986669122548995934570381254185986081096416492749715384957676371145530038028586253706751409091453377687955164620791235400418555862921840961078228212750503114148743357833979660108142211549785304783719037774247234217413055415971995076215262484865280978568427068350383385933899297789273802314572734114627658213915862913374803525818670695448755065217107200921329376482969512649422689024228574999593509654898203134006740641530935097587934924595158500532260650319778558809818860674008388454076565608627744178642450354419064533536146231650754242340443345468576612627716364331202395356426584513485205833000386172297812122823715840965954631117101684339504509455345194750382177699094176909521182468423669804954114960952504746273863257502288666414272880455849543289326449642151729010238916244527058973586593592280927162934538575865362009951345999635035185436772650947377080243117868375520815353218176078895310586338992242739431065696675107032172950884791309225268991398729526302477575682234539880730428545204178464557777388970255291082706468253050043131323990395401268556296039820036276983217991113462403368127018355233676033213274027358886558853547923668855236390554502911041330066094930733756266060811547068336102745701794576348575386050875125848695211195367447720434190407040714721669673157375346345413812469295589818176459943349611684989745496004026527587896751666814645148003935993320075113626929855876896576539940247501761871869180941575602455445137581926444473305536376868300518256162338335133964949221953050033230158872205984727666466914148130460034867675292494464732535151977904061835581297751185132341417799771941319324712483599061370136175676156219582733169758342136360813144662754959897456175990153936523208682953054636645000300603533147011107105722085751540561635356766124485840719482246539574899826074217449187036177100003119178626912553925421601688491208552970084511693796326974296462865359279995678808245239866101918054881019770601694274791099971673329954100167898635399041965741068947397308683626380318370615679923267000364102613485829428473909636380438536980163917491414234196723341811377242805910504344783432197848062325490544439096714218093210205988976726750602122116808497600864582495040339460495348127119152837839979348688032636516930713397892287080391078806037371196803299350843709271495100876327484299541559766927555974994792353300841163687810631928149702025766679473271646643299911562030545251993413569443052057263770328559718150680152889428719350810716999393312507254343631711776768522399233793400215397537702565899103978788016649277115050804833861378892582460830615950038114924512612827285803168704393338987855923781846517898368929133570209135909213853986534617988089617834451460114600128668659665866455244065405166133128822898125277808581297539452773015932380661360608334197964893159211335869302332678256160955429380104890921899627404261648298197239054225722235315206859512244028497619490779863444114769825996331561754145235600808908280474827339854391136396134131002772628955650064272163042573076169355857302983512858905695867496933784668398702365819238478813544939796140781168136650544398501701086852460595190946334445222148865308727538869871458733884850830565373689612569122286407058091004854171971400390013656222332944242831620429286700783020575307658641382772648282794089559268704674313925059434846956587151289471808544212996980728803317074487388478785782284827535151128619235790767734392395662973939376451605085663991511297315700132547584118980043617370239748774823701087554200928951290490896268481857873402113649282086341207704933481609542856236581636433572833629936998820070544705595832454166063261992596699583388364992403437486559830796701638130045345998640029187580456853371367919614697994597695567489797557577937311915908247519922754344957421532607465718677991270764767087207182378972817959476613835947778537729103252475486710304322569136998906410836465099553971062220499244178618837664141780455068728757919700585329602065722851510898158188064113449634172565569456778225482799193230951712829263071903047791586311785328069179076652241048948447378409137536122513301317860018443141745168228716002365963414098017372629212670970772255638529838940405081848392590992090127447128093815789297152108608186696596501652036804522401272694774650707293594788567086703346740902159145624055959352318320038724428936742199812151291929484736756614696748919391366373269242035539665416281817274944399510323658039156593304886084603345764720560190984659644699620701595458136305995442190488889535213769565246008252121098967801213138539110789572469931967672179813226852557691621084981484981930110640903400630035885336059669255639818547470177044888404303781613896915794672265324892252454237588388264772440216579109057771249363187218952280991681534413942049531042058540731777327545047229936540032763868437992845947213945267293613783674800469434460606498913130623476636104103300944847249574445672816567200526508990979440647257018672722783961163983962704500941442658564548337038413517288208994870097866424983086205181236783067517531936064935950249643912083967765257301083835682051394142490002343783189068059052629060419310487936513471463540904828913948551779459392657283666019085168343866521658384083245850491130008817997587991313093415887953495091268585432514234800856796503277269031006518183691896134961439758525063178447124755409856771238099719019127623638491913298334250538405357954737538665547053453037417159222206674518420386954511383207134169227666951019998824480996714793325977780010605527063079983399867363612119506783111677324491817497316320016384334117384183051804560811376556371368800007301577710453061357351735016450637576289917995817829247853738463131599422831154582881969015257232735289231791529051401969198224157708138888992943805282494549907984602414137008152130767101569390396960214316821594388738971450219404235289456558470171654176975680793200152727130910162196864098037786665346214549994932897810053779567483765356019585856608532174605893176013508026391735947362734228991943278221693262544505878808158799292746202388088686531561168219321900886312751107495580821037057710196498920910381550943033473485520576571497587053262915289398648559843845481754587240584989798785624482651537343006558757040091551736158237562927148149480109629559404910016718500131471810262801187059851974694416086968876589084526916608982074319560382381219432445602313381236085041817232578665395384924029467513470866414398835140734720941933107979385586953146435711058777833696148370320366911780220485642084161750051675936573492321959734392285191814251937183503728380670348932271453091831286312235163797706067087672600280601053845565872950854286076187499561711949656260726933139377712099403934014454677663624666288424737272349773370251688295966444862078088253182346208521545513605614243478431463348203729321132667977620400826677445551730134219721300418430825758720602364445027473010183158170435784169052757653956794766461921520179215292278576056959244687132516283772031915573119451518884624183205243035893877125785819640397212570446973517121762921886919410801991237683173209713187175169898603235066577283664008716911574727411384320572620486272114819542579611675196537312023537334618691085189515531576520607443954835519334888195789850641809047774552265363453714343272314882545201524703739710530581411307483819335861460573218052299650849914934493592494307049659885409897798114241938883257634869030261572804195164188234489078437218686494555637622450269608764450953424020777851702114850066121265562371863293418669513535896939123157002615792652355799469066706618663163514504935895854466616042796868594234844281169695546033657834660503198756159478505506273841521975981329649598241129351425976805816115281852873849039844249491256136972662372741138574490553869301331969444426791431454547306203417819412823818538783674298716890137417566461115030770957413048176624668878249540058469314283021575472394773201959531228328660275007519114508829111874868389110366258206653317592579490976656751183136771762401479027100764516089760410536332971109423384615252060888014755457199311340470687971246953869203319454421377283859753155646480567720157927994008397620455925156483883101945089081621428692284872772303467730890146686954181220697993148490620907282789086613926198372817460595103172939366207763456380663049390808635766370988757852710073382842962341413300970524645786703335206368818289392092320468630471293137619158252361989516734981722035444917122080411874062249457391903077652000203635488111627094315465334760168086025766324163922291993075690899937087606132529715179459991100528630112918862298233188805133221615225040665202686277379992513032099435577587595671666845430318144311729663311925133202721843844680358311652341873553660065959936480982742245794352264565881050184706004602270443651929544186040044456417882940040010109520053500570688277891178150263269977426902019913267520757475920782335130075646965556417845279944620801946950724249679540296390972772003104615278468009581620514958357869375807365373680861137241689859028840648393087062332998914877867956424750975048139279185431365842178903354912493680955277949943537642486907839122443923352971606543939385592372626495793698868426602853135232340117024502061404536222367801174648045517070490086456436448480952720364816679890896689048286612338414808488669707509446611905440101614514042180649174512324072946536425952683222437215257790818552149564922743226442711589429099998439744308728940622243631917086997492444720911769987681547523456458274482785184326611815297170573980137186964244940179225959918278768445328242796873134525831751419640331159838221005350700492498831277211785460405577164573146152315578837511299010012791554707726429688933592349188110557169670869870490724889688552351552675385602430830342378383060983247613283636315273604356034955509670352848418406744594991130124359728379496468275379410634593829030935908466461509294813606341585983675927933855983689313624415952962071847005152657105958893373994723192544163345829243201930276268113284478831717712095669688834225283471313913760682615141304692554235332810013482952416520263331658963174444385899283562578983017579994040066775034340376527884262446274793681684434919968623587847407788250753781518601164032734916527935590700727777399792351871715917585487490053537514258338746698343429118637303705532178389736352362587989931935297700351870659805780082524358819209544226378613828000947747298198112738395488354639851249775520975327371052910935909026247787247103258615154096435596832484107583520096378535060543361968395320904463729642731003950421331282911019160319859065723441318421786033153858771365224983293271513479067465176992392944943393277995671399071793214802531149517979444517410069170097340687709914381364216275130796542433775435233086335657195406855890128603907950269215699410275334653501995868869906687309292267487737597456629905725132208462632326170779028351470679324837572952653189094212507463551068763325901786216256422077477234684411844800365618313127345517664918063426644991938157219437947302658585855632234704357261706322254285670121145117948069230541173275824949944414282982687104008648746897768420066519105320672458031546398525795357377197445299293546399352052363740857808757274013828919763920823262206089270134398069253937563996629714106334666867203844378244902472124554758288638580794578909592023591563812154722132990725769084736522477945923097663564288071559593966190084611101402742949722841984021654101263579736027088113469211384891363899437570856448993130300084024493177520288828163990274503764615358925973415954772151072292701929097120695317937428952714058522295176292609333605098146758548432558829758939681726634985242350755322607465794934081807601595596672283653279635778178101606560224504925997825779876725136072272800500798778871595087536381125782246629999756506787868428574705261054718792565727555182891000310281128812476327148639483658347036174573919838801803770083354404707173602408642445528455368644262152058366226090177494350380113823577021730574980900011700841824364533178737903570452373682046452334145644389356787410164150840510337614737865681604457656921836265959527447328322287392285768746717334221119484492637131160503486580702061949472133383853838638854932475855245167989576337916476232130172176433599025208675824655359651251534359989698592810770403624346724446297617516980685596006408633909494586358423454565947106896292991223021700499889178294200046873606531945015482425490172866801173520989326835602273638990434544711442172676886142797534939753703878643047839868794579302912340593411774028269291131756134534769575373129566379701648215504399728910177569073439128589967506042633894333738578671360962417431964899688502977930606798201165244315746122826537952690597818688475796556164906546236761376037457425786164040265144271162800635394875220078135239993497559512224751044908298544718156568744934985770325565874942315835680330676275644201414978582824291306196550351581694777737647465422957863843177353743377144156395287454578410237212003288631136544236941564564188780370806305492147248869779884442226181860240544294125947109189660024416501494187631828413565042620320462161864248085031973831487073457449500716767886554914192391333603074757251132242836129360513916649419446298600818268913259194572034570204625352743282174950903483045459787498168435789038308831364432750176359046424713386286156273234693348757190102714386665330101000857628007074113952592107177320899578348898315165707342140518276404931517849556335765714071457421565536929304579368426565635192039384254733178503700687229721245384541005414946845269627442606778208717468267218589377032972303399237708534405679943581288268969354289170775450971550349820542060410692109512971787640543239163984338879786399830543735767915091180359530154812692996090149863720122579347818933394669438470317977139121038181054061442358586693199833033819644771363791443211537197510646703045708754805368805930970339227822255443066306037887374090406285496041470163843994486106679633029047513037410556915304328829342221142467822536725204682586293354404651183357858143722446087629180849441203966237511036637443924231606121725311787088562019983351997356741786781205990930924355564952556265206657909589510885815692212752501845345762180935096983693157111008434586416306341584567618072960830133085007322221457372772531185496232686557697528124900610513372236042224143096686363203625774317484669113453111358475091316403408734995315540677268978496422389236287294197337358791323920787407544091452474044707155469299457471376892882725071121614284865722404446175912078752695455211910836667608615901920477719632727039276673059437345511391925963469437701166713466092421353783499530869329509256794490095187671461181509604175841782364881126294242869674200706981631569644401545056851741719008623476162749715602703475536882287174486867265204150272149299647912847624325208745109908204926877943603952013068767606637766065920816831561136418104444811466599762328804749507875211874639548991807117595610921410584509982136899580293366124929557498327257417232793479275038253639425081689827644162505613275196547179182196930654457898912202792410402310158140832804029638664731561945815107582578181832723152115526926185772926277821290716722212061361820681973412313023660209594189214934824438621615655141653394535480749385006119565843565223620305449043401615394745828737413892375047421978124557583130029503166827991894774365349713259806392678192670141945994629169614155703155964766826764646128854655963517349661603586306128100083705986540663231159066807517125001306557607801071174062241271681658149818841314058164767208147327967067183614042526064953166744318014362071063900465769106568906493419583839909208355525087978463941082225597394568397558014348491653747626058738360586202634441560906283952640692098260470690316118955797232517226649100896527461132179335162770052214075005724073589079792913719891977822216459453119249248958878079033449232247726894153471388089275420541717851805798626687032938043985794900618012449946263049235397618760676706666257291534780535269215125625113094575567982888540796136293738414400896237500193595179262648836500166666361004856208174639648790471065933588156519919551903444857837719203015106607377235592858196506219711416880990228111894838390964777313005247500473491458977294864780287595321124454360892557427462354026073198662789285541349884495459670630587332406321458555459657099545844081180275171942872491560475484771975144515894778308553136561158768823193627741282269926998404299063557780280976886070408005352863344375786793923904416997806000587652381436244233711420864926421135202131430600960727690952654369443276500141373126122952300231555233737836444255242282484568046904259856879176186792614297382027917949992990038103343113033684537305973167039705966443419697300674216068227625008537191858549420706924731439184699736757867980626621388002539997487071014243538109427453486168687074086635864060477903411491492685380454224716823551069880365402108484007266418157768937366160521738278330761470262188559825424971603453145172045730572983127754370753891019653208320179454988145489925450217938808122714381108651098754186822738888357266794894353334433065265435795304646966958660884404998121060909361404309389227696948308799524922420408099076862227096175306545528123163576255040026982189311504423669872592753482071996296265155642404756062218157981790043569250208174839734104874856288458089553476355978133393678190397343425975461501638440533025754716309794861509130501180610443988642675004751833052247697967891969348614806949375929743480989494055483316766116790596513347243386392701885248517856733054543731671031169137105960586044455696165191801482508833198555327670289580581768302136021005606183943010915914745486819804595513969409255154268462769328872571540558192983232018753297034594643737227097426448742307366826011164249899023643131788105868108674066013977133747952148923767009711559270904689597758904071763122278414740896755299706302443098790657462723653525728007611605242772261454725022288777650431713422584898466022308539478011549046032337826659252796871840444244590588693559418161880438015723524003119564669332646487383720597739386463744410813825494486862995424975017384998672269489877045480409223367870737638282174103615529511149446163949101861561596588994405133070350725117362560805390498532328166420981052123809600139827704332218296586272277267979196490883832922516348546693729042775947475287467543473609892948983535891441713454326946477772336988679883151129200853609433454039906288347170151442332232445201680972787469269719435354834992075748555253689257792890678444361791187588541027315277171236897717672058098560073682863832175340462986223812874523446066078792697780920221117237097963187921369422566533637211693971063149788328369783325507146462131729043997934571375034382280268583581305454152104588999354386556833796254104788550294828139573508795940433929440699279012629353509783816623132106027661580498397328089708276887009611765914598218489820465721496327233964024888917480004398102466290313325679276491790525421081420397764654102591862047195035728330859396967147532444985827275092563908817780492969288974096601042195715815033360187436489256185019631055577035490049983723633416840000238708242853862080437278443672439656124429773232972534796038967496947077863330033734042534328723025111954616090375052728439368533975687427559143794573587431000153402407083084110560785281133969045571352320078336318412958281097598008332730782189139239390309408469903222424643566289732875505019315892863825697759777584666669551568240285041325066963075766216975426033044122081650879825715423763353015214424049491938078114453253785434680467365198012052085494071107525147487368067719277881774258245092414916772466133607037264863728518099282906386458653986872255068322615962294855264747902912619405724161171994322425701663005894135191597938908369232327728169352904295845902665810572584801629468804282014528902596705298207586106059527109973588253804496449023755685165219559102968535615024124305212641862106188081169780174517170363684588772889262265626567000141479229940962147370121175267860222349421715072313335584676195474283486133230832277072831400816975823679431560647480302830069455229820166200003695208308008135909120287861121694057222729164633071140077170497357116782658638564827651463089853189417378727588454265411665332626906820018862235959684874063846374983388074227537657457363719681714210238530884812195060053145231230932522444049737522073744745154714758768296984319249383064720563183318484970482967993970701388762870325326342377261993170531752440839445218187649903544327228678289834489831948631750159241291651484460648773070435109708213986028331888588457895960089985319597432808782400640886773187888502485162237121808378870275646357642637896979602723511454034694356023749902311929068860478191723214568427111179863319222090840988228656948376698942184911012222016475226111626202515122264952379857077427339660532107009659783384613588212396041052346137255994205922634971328721507125429650818458277770792704052562612313898381880173850942002106223916562867012569520739700762219376803222364909687566557404566598259227521364104196070492885155051567906681465958381896268269219831233105572591367062674830075992417659757437071123411076844312901136678598984595845420826904312000134385073173182944714760396835097264456398700719130802315861343967073977906973608572852970434100554749810568341382749704132759620682428838605919321384194683534827334281593294950456216118816087911650790502833763687562876753456042762439879663123126372380118018235521795315415434757279139860573567388008753684077345284010619297342994857461270319416313784886594659831287633239803797500599497674291625259377043417949532007297787003800564843577160260522305762624755159298269667083934691668741435304362963491248856575574738508067066167729593340020358211975457326089284198587576242126124960078621752749839122417853913893213421092348619537952907746132251981736754190200916200168243315285138706737174187684786210788823730647903225942294305695760611879311149200856080220254662133572103158398845944839735554637763700247313543692349285615655307298754749643829772429550893587531025036908207919563028315896530322936617064423959640281297350014580579125695909400917213719800270095815992002535042181360047037927076529237254187872208376129227997015975701389252615514379492210035807691915069801947428614700784479694939250769777023505408184195607966122309721551847465647673709698761783606386400668684943991538363931955100520973805986483880710554547141039232789026179322268900025441015447139323427563229334699306787725602256443370201607762644542390662732263317620434766009449212428162623888299070384480773186479621533149877649964323307810070633814476257600625636953594460365570472832396132575526298384780185251609249895419851446804847901445033567244785862589516266927546639620981097941402544004658464380495544761088963871657097736166710892573337831999399649980999008816355549489423944537524026527004815283624334611971058091772822905933683000189212040932827006598481434064700917840968393619278884457609341454867590164152860941272713386499975562123710656849769258905964178280270688321054001230775914715699211347300503275718961173596210408045932441505313300124303023317374831100166511679537046867073929053448279819791298402726568921472771689294802712663685666835462793139449983374564028547224846663147841212484923865446004292579571219482134279196654637788631836744444792780169611957842193504253385214213732143823938547469286304659788188865923109573792736294691581704587801826077610516846559207950263160436750040355304262530892195053735445307133840744405824833778067317662891480515537837562430844269642236485603195432871029438391612685468812591290321819347077794261779853619338166555240520491063152448301090218202995087454414752480739188318162749134793237359165997803417995165943062943449058651995659561093439346283058485961070189173586163495965503603364292729965833310099018685574564103093063811322111630659439185107503343953461343446099779597396777297597636113805061722164466918295145885778215973922328462115863899474700480505465468788435081701463446418169515748924469622029387777843587302341857590159382759400433279560761358879078934872647553206426755235562332165980054470097724540838650892298203999581916015046692604482711648771891517419024788608903985919344037717076544752679521986522156960230392785788577151304170503477099115641381107698033393065760899590623415887597749697406334259236517509543412583726671890825319452510125659033544742173227032269060046851711638496887080011040066174075941473419167150199290682503846252947116166282255632793782997034194302951500591122595079394593669935764541345626300964626091831836737665411592097069371056301062615269473362874711598179129037693262252002010221485689764910255836856110056669591509890357510435318024833372447806514748364291520320360223109541487831742687761669998907849117591726782395132695842875553763402727118878773356395037706481548438195014879381062169741870429972230460264444963282653071765894563177749345177800583547863070284475217149677357549991907024368514163013128879793771704162493893145527106660642696887154587519962225681223783122798853289751132232020876448219731928007014021101265054619130308436247583504144202976494829702120979666346466836072274553889269469317204405348942106511081366424625297329639966992690845858173951664949040673178745559102337703673465538857391775749678128466530763704217019709836176925735550677942555209647377027712595009186223621944092291476574061870573886623307889441771919920471348490600444533489733379938391248277060378588913633935475667535608332235344927658533797398934100825712758550742573748799013455645877264013512897932763647394019686443119777034487535481719645157676524538908516560144908485600743118791490784494288498691559392706130263345764112427605489007804867322137033421058015494388723591646343618804451158105555295637879779233763984083273495109944483436832932333459853210068368038693860014006103757386109731801212457117584751651249469143040064981409510161546955301368562998911136008177919948188141483708310223365551081434044752285727960263716841228800140350915737487742221773347170695819471230414180292458324663707748467340853469214266200825420870646012918782269740425068646822990142032714027481218808563000896197627950112429922731304684612180716383397796996613454084449265612605572045096809406748737402395909502671597710103462790374026383534377071199793587680415571520429129188928526391257244115062087383595021773204654350767195141378436721063745366421611376787488922656052543446181797095912159482757482622739630768346186301620536052891394071722092102880095935777989694298477299267535080537911466118255595970122841637279378189196575565456555950501213920026187325579540446842811275715448052308914219934923891343569697671681464332266222985144602655093919762632779126614769389504613081357417337831432993485671328338431271254388780136880881237759514825227893993840370680461329054766144879590746630496889500073144187370079175135112591119140525998494290361842376586425037086670964618662386905375844609198827231498591700638305049809967592560586283735794005222184851094256157370864430408438309010475397905148810518169770983831293187595015418380692816408951948402228832081449309722507170954765386578018455800088717288482056952465246042362068346094794188262049539721762122902231778613364227439931586103253460388522815550398701781657052213116263257483758147654675092711750511149443103369687956038139740415928622583190432714246466501671864598584223842144008562929686064289952608306217457986979803085690090452111267832766022403545759960416930639212111140965813083925927866495675508016599839217614389864338316308221516933683760431870988273893630530840282066947048257000636870699933614100550124758792315885502979371124920621282366945990473937032493529319011390771607241440727451600875166000297657596113092476323711486150851187163609461381364427627700544572614661246338608743917898298109967496818001215080669688774155043962271260074152095598106653877597546201524485763311455333665235633512403136378875891147844282493175258636170296546806596003645480161729180454190061205815220077255212542348217023737866250141533346139948265419110460898613902525207807465897775222374424139981234982403258661964350094293241740549689289575343418032820347313565289660087509683020789102081178641449613119384245035954629037519451034145777222293359168709537740850456412971852603561706491369235287307771985206192734775725514806172837024412468766225588554073046623914490597815036102051639383182662299183275389946028932306900993663390177650258846275046259985168740656200908825660055685423820404653189956314329158340863411764169131047099940410799785749956352177440946298411862387487554035701119840920076087412525153619296115218892163841226736922955358341774568809165217669593795187767770603593607714420123843809089631209985633738986954389584613546839754833022802622245658586214709725047480397409270969209153873308591815109054559558172862563655806356460149314723185999659396006957046792678306484992761572622204477800432052663746473386557073711919788263985660509009186404876606767871751879962198560850267701280602451806490766163751794980866953534608860842536994483563108283333105186759694511678410561887373839334727825447350056696298889903938214253063239243818459944657653969850926371082554755605159216897186687370402547099225355829702429168161052859067703011829724847540646324924566124446761563592050410453919799383511661616294276473903564396864815280762720956681752935832963257728845824178526107276333316087858188999201264267852921440442487283967824818826842773178623808176474747880263764828467602963665078890186838551324795476871470050646395686800332212813919691619059434239592013800993867526357219354327256898138565032434917154380902744189306056484029974089567521633410395408917320670196805017965891194520964002030205036771742910867297022114236746096573820705744605541214568087433458181610989924750816748832085736912192186540468247775367969029786939457449141528034599648902615802925307957560085701322944754691411948754323564141439255058007723919142662167838227660624869956925970328526863256182839758237509357389453178640025463734885934445876786794480261726669244615301351040327280672872234860649150457013133013587611708445539964962579393824966592972234982578099125965745677469088964586370651550959293954833971522845362274001549104205930141521029064671613131854289370750202958122082804183922655927310910685251603179745206478174368834749130906230993577164271493083675133190706845502557204647718512253700922574962553117011102648108069854214785211287648278061740094354722310151553777882693352981022995594900798153964670541315679358047816188435177921447904906337840286938296752875636286883773909970232373831628372828750852733597525086921150356081434688068986746440924321893883885330968808117027006807205164951614324847663162052493936890666679328790050242325684436834736581824690718811630051670334747410642697188748931657347358259554788843024964108807045800034788967576774070688312186305214503877186624335576035850066261655819906646542060321360690389339049894979216611208142011491001003643461003574548507254338116071342719865848853514579956988744894760604478845366409569029700646665816865729606323851420739967408013469565776344681408666771366841242084894308116406760400186111666311737533123332387475926354489930032745528029118579737483731498887250503580714449924833761874601803343008872352838708932240805881258072433868088784018446009364552469493904010872162638107121179396924287268004227276319154866611024662088295027719258663281259058766044850214295310107070206815183718119131926130692741790797969409767649872491281856082586208750845149799706146607887123778239659145379930841217016438498972965804128371277376749724901323615613921300393134316546040220991886340951631403772610718831816573464930948706660243973050965969845978894132092817014354020239645716005028181271962228549234197292281878734469256352364766264968186011093631845281884381611661276364234865344294214501342166675234027371966905706929508397853759158611856415740604024066536148497998461177187774581524336604679885556270278955238984298180072936215306849042904948968777444183551671443163002335070347522623493797705430594533315721203200388415462029088027386668583583562355457676815048268270940518920434818780277764756820828354661993373970671457916989398096170801808215507869263864772884598475449735275618155811194894027673005494634197100859323191265211029778755702162764634047181829553386838548871514782223092949689653345270573181649013254435169972967284289618485472775036125554519607979749591279691562944842085297430943544596360530289452998321253564497128082744281191619136619469733594501615236923041955317511893988733772725688410521472650261755107100829100452195367949203991658705531546174079436869124114402160530469147304286198898007661930408871241283594523568405153475968297440350527812897553443180860113080870595959216971981749793858530425385396585518782125624673129947774457396406498356631729375974210380662765373053829755064174347196482754435246653355014854307971434765987441751753989016350104095946598563792261894362350032575701092193538641078842295821076278871624927281483545294301013149905767292757125168739626372010444823926721348207295954308573917256560971063656170239269209607113053645554602805510618748431083123356305958612673426770525192595919550356575963467645685290812001055833819949205909547491920252105707653446858343155138317712210017811815418790291171657985528424069654671023251787112196131470662832066849785499559566571625966387328893353684282428195581853525814416093952856510707033302993814877124864313289571101325860241464553395012360793572198061130597873833110984347353243323847747015456519385809764653469547422474152785551620519299289216493814694712697285935132660820844894979671752828764342635973896009044569559951499578061881984618067069261328700775241579545620574243264891789968198533057996211629843998933979738366706102858321399193775140870155018565321256686359441447840819148933975676987341628189171403783657873527080087662793208550451443701906510411119639949232805422077457362511981376522235585848970237889650181162903165335879260953023924878478508104183818498441684529299103619225781045243769552208153059342603387451962172850308176954528655678426754529262073467610168250681367174112927167138753429616879898333070825102180904338459806064113519848879125538817852790007347395586136496141232118165561982034881771270191427926922003922904072045853654974917460816731333516145873245174093431248414236096095502425727120237879514496433059580381908329163225505690411123210389814746375313773617486246376062387976945029404275700533527170760770329150637870598926908496076423649453684101647569837867770890518141432124842526129882383928312649479857150670885494921815803412910489683529038198607547129562293557144039100613345851466398088073013020594295160336340775300463609956544995831666766527202331304780145934237515195960791230995764336744546295822064270141738936575919545038975114627268685818399365667675447394354305329702726320902004005897470523947302209800022932544006978188712374260133103569136565737638661877800642302764604996550802004138919946358076075268866724842894358732593021953274352904601077563337738182868450461569222399686265571512825861681222439707040493309038011271769546470980502246884193602314526020727332875750473313417822265290872178077655511488097455890771573072101973924889209235462084700312828860237238225720271898363708020961297591346265895787965682040077827967763555790948807274142477381525979344409732183366821628907520473181390843383275197230001497425626596032253438845125463395371974489072792786752638552916148284898811595048007405250220757490898698284492863344050825198020906010645147228426543535012054583655953058501758028980003204793684875088328935631498669185793759380244919323806098687855893546503398569376125107327793969792747380691579173256142355758948922867530312745529284243785967271774585693818918759238062919005606366774928609632731911353238755137516809205929111917743599406304013872925769415199338859812883154354701642143740275742160212714637498674477151976314970846450991424638334359114086623169639591835862257255046339884936272983588865597648193254735199956946699602440045521800201040423401536006817161912349992874287534998480446533947133186211591698453992884365233686611305916149565536811374641880573700337638060218669264601885950025261621596744900071454038412842898315574893635148610302874403677298321720136540538695878326391025005210823043671943788998417887644997231812581527562947157248262709398877535652265705871309423911354668663979547938324639340481228071661892608211598470667205010409176123794205602160815046688272022896137233413480418089070178468941214803262310008753291766518191878962106567999172083900830047953360398553436420549679347203712700398886473444549617685927924247876129523359454278208445591405848614294320491313428274378598012454653569537966196141335011944562493390457678395854777844014603732095195093126508175469228507482188394852513886801582318541537007127735740457955681584722212730377538309950750098568918271163256665152323419526562512795332022239807926048510518715906247904122429103645217537724197996094541973137394606518918534717104475733883674066266824978231292794584712349595770206302727382190015829404325756119987870143734597948817427551103932965808674255734029990743559774144668242840824397283219211350733916055722119873398853887007450289656337953069899785978595561378525194499612929614651875014844421674291516920953164560101880227587846229568268258335298368810899465996252845774516608999019986580548192716339485622289672647596537647555604476170426755462589212351333220237291996039927963075038447774614063575106612863499859790777328792465040732560227913742268825647638416772945631772340774061050625606695137974185763620274524578806710993484142131397280128248610793068696774871608590765343302151766932401765885177133091000036137729543804009698960929501936154947826028980986083789060807021431601125228975414635289459118883386122467459161536431137642505046437974128227610722400016739140720674138911850884513761895728875909710774557534948547044282994028845315907147881395340836570702804211296290046347998531335701012674842000482629189546350139471280309508562699740108186991677635033916495370902431589163230664834027304999413135995050072134434544205541568313606842441703093501119463521014261576246398864844944982666063474830351176162838084751709680673715474728834412043431947284366345344253045685071646297152755844344561196342659631214198747923253026764202846117212464865658997766944889101215708453505762210519596188756717182382408960432793977505693905592310447353563463875307555651612092762200565097802076086824637144636805732840290539037409741492925707209723607472999260565762608234739093914547691500192892973653324509519870916717021410064749964961734945770910740003692475422316003881508800275742564034242735170902719989585538472341393045006131114036331950641180876077974262310992394662981093641393172029567954349185356758218380315652987757243592832610370095843808339869677225734829886612456239325940876878473339241510346464195153089301458710706827787211431741356563989146309823111967545841219502803277991247018764561736813022074005171124176251839715065436724104618262333336091700622744893290797606687937215615729016981322968262143017505722619173938039275233386462161682337174193385237147969596421265710734319120518205125436208305705697659831481197359517947538134095683726096979824914309949461937631745690420394493441805936463587107387857783068103557046334650091299711399665754549020480439432354046656456394758752861815356835959445171946446736274695284245541322104740060603997385672505060483985500307836087773004752961195537843687804825019904657300721149766605725017032953077933996340433476214782041412504886128053713133831538181937534213967377645584512039295217496653525238584732915429724244308541488537007606519297565241644115840029305131494620750491679651134755473805352992871584888308586531515801612545367154250162732853539528163469530391050549965835517900892536902738150175096009062654421715316927493386655752219715816741991222896849634998399668795414810311410912438967699056948637678201704719204923327878576018006689941006449764565312753038089243227921212455449069299248063684058769955556648004898625607602932976694270495981492024825956507302723292239779649162172283139447860445775136210495171841608748266632941110501492394527094937787264867733721955959983465987535275028386386622223941433385449818742851425725413433077255364085152375699018413582488065001461678848800034084906515427265444339118824584569957179245311913299963402663728440776141092935953896765431367562255645014920554118684640213717217197701064674552320632836319490332442606033823325546796931015408928060301455777016797578690589999327150384918629102130272628271986562973057309828907558774405941874541732955716885441969597794008195169361204819631631924049101995165444083091690055727856285235428098931036548715433666879571449185341126511944855484400243438602496069135127955438402228196862788276442593598736357372349264596533261051914402985053846852054203623428000570371268026484587976301070610806986818474058717651743698404008759832109485754434761831319503502768611249995043120343778323279270728764411235715507469297898563586175280026012079877638622994445167493754247453730321413273504401946651699150036621314161668097133030684373701754679093930915114858875367318082465945755897833317065507471732567139242758488754168445733915635972860514889471575964976958915801030043161388086687094235821955911631459233283902108045074632981164760951946866615775113668697778474454135906054994527645205090043362204678024100901601493884803043884934495785161437762796392957206014045697943414912708203261091542765174977925814014569622630313493237895105405042533164230441700010245962516655260570487263708663607219345451796690787217533140987067440825792581055022136226643317159773007935363860809901009958852275977832241001076724662611362063321304486150689420937950692677117455902832141854421143843277944887099849124048762261027299268884928116243940156947896470639500070679098545322785977131490876337884649675331899716752323274046552660399729895777880331346113572722175487923689971022135413458282003189232648645120486646060649074065127857445105954460733300672714844338181077625924641612122113550665926161572175697148410715377513442202178570412069359081108991482546138080676745399815529003667034926284388956025225629465246011273958358193232392692959923181517118522055728896443072540046567362987123895734245634015015368214597409713372218245135481528914018118678157924290020855150691445532223263430378021195090254615932018347376464761232041706822537066706654190441624367903418907321790752363178116525014161012742775901446650391762798152054337884913300649764297158841084575802020134668274623911052568613835969538930585210718122424177052447323036428782075177177102885433208982174592570222005895146910150041759264793622352084040856197064063624129398475445562081462898080050525281562157012167501345066112605346998816543476062082642890720630447426687800538097328547889928671040366903199674905463028880435846476806725423729541352639292397017328070845290073734333070855596910040283132604643451491151049027542466913673575528350840343242588346229561340294736537984796443430320581517069854990848895856149890975576335476241921997307545158285642453179322426986397568588678546891344353647753091155400892750855014885696181662579836042243960784230457163557956858899524459855364200044856336360163009322462807686695051719624389879904329212332461935940679407204044068024436293451912481455775245951040814620592823138049583304536401697634955162430793541148097391763035290032780632201696809828621366084607978638215773520891978441595934847004451091930773490990761076603094195236148320199073410164968588333159586865621961035694371620393365174214685396596558779859026991888866350787509048093118213438834133326461712127141084046712969913423846554782146808283143395444749699158797944312930419785425929866878316416209177501484254715453578775690029027349621793448449417416437395894107834523562115430752180861357279712573928415483609644299866369187082738077273828586385197657521177299939158796231875817493607909946734451706696570533121972951699718387687173662202445657019117215143889946188026216122151786698278676413539438130719640189290622543332406624870229592554951322146405196608263079279897190236970017766263543505142410747179891896220244395095526278522537615572165154679966232885724565111942475106227406981382974506813781870526202414465083881296107826922928932431004456603035471562400648328922624256305634160125439265534705875927852218837655961364418379665699083846760782210378143042156154679862658237137343700317658361726130637779507839214986218647186684433662967879984459212715005101086877689877155694350534550112102649212321889779865944646495861888764245867850105139684827329029109754012717921468494980706587665507080754433236337230890181047598693074162791533640584911093130896881210854034062456596274614636294626620890860084915671338294841172660279707520780628236160736235833782837470640965992760139617091982651749190254975771827112481453069377490854430888047483677349786285103244242532107707029261462736783549028044438714687089390606302247215687974983969956807154384230566159024992354524730320277554374821932635182607588766556311197981580242482996029879953766564753305986948397053810356882758178112449934952146361312937736203288890015245715147713959225488177244505007564262363767937517897255282888096668513938923594123488186965655933108532225695889399908500135292542983169779949028028839215704878363647165543806648707058690763599060058042972496159409040711390157269996119648486675836116033842739467023626033703984564921417546297315338997206631740377457806480671355169499453231252047153161138319720124646850182749779444335498751078713034212682467768583738741705723014897851002668752224057072985294759196531017391195275481023848284403927701084612133788393317806380713294726092520569020836927653613690662821636644981611364082959172175035699188830419929320740856225238679273746762156464645090785082732719516360110126246952319291342752961532173146835040512459206967245018812135497551468946561966202488230057558667402107684071810650828793611374876247303173708807026804980338139438016235880073621419688559811772104444574970066043119312031442183956654733709761057871066162120011249751946323523318536735782554949490873457894552794915080150341866899005641802574951466074513726922885777416465117157192640235315696137172459408951485052004575249064380582772074283809978543781463778342692645150817209536284084749228255776683942609620090647665061400115841095953918735168906623834536393970948525504095839768735444705884235662125312932288850673562234887037592930248679544840765667826114926383991446914369778852581330528327093242012457002628197704871059668347603363030103164446352257340353828163116465240465952971488255086158057398966468994580819755288359300260331361281839638203901911513615382574842005263204039782045055054449655429136299293346256489786063726041770232189240482100999331221934779122641611219237539223174483834975368283893084095682044304048139998788713179854446915288035353813713843210066432594798353061604776264802401111195528089160142676676352164029454277621177636750857413823244559764265061368557265049335575266865394760096128650488236777556802435288544535612188971710102842313347833061536565039572570114897094954081502279891154120517098142018821525483323170726240361401243680454751163857281812877754141740455522628290986134192966461875582469247981970553275490969509302990232973845497142240672282483012363772638936359068212965983793917789736956166044972106550380777138116299231616921218512516563644007864165712732974564245329216250632380994957828407250004969329586188732882078996773615657578130233001721714251833676754343346096317493370016808802583096716836017361911320447919378572620461315953690306315042514108677305200313897681118284871461266759165959211194594318073178478780324125186233501961646118820779030477784891163637076012141281826282045010774235549134907862571027878667200632344988275415318759402424984008305591279559959910444045262206640665621182209054909593912636375657440475542125366539037825912097908567623645124716501917145716105418771875226838490727600516714070797848870072037788768174824622404560341050854982396637594626538518425932974842419949637669102452804660636894309990263354437587201567877906614594667960263476345535676205021328779837312001700057118732027461755378956817289462096565013583891696961214946802756980789104123179642348220541593661757282743770818580138576569666958847019035569180300082563976237217829135307855921826991420943726416850733193724695357502510753858454632961581918788369009901214877638355141767225161307844940978708342857985706456223765914784172345006956463320260453607546381185835686438932806365060454523548504631784523956442850940046827008778294518941149147735771660206027096714947870389978391126070240462752477575032705527499170645548343783731666431237590298549886303984623786237268561464471057536276466601140558976753641856914921845277571468172594990344665629824501740790881642613895435281031135478347645220318474522376439738575722597199530196220867854525334612498792834590309404081060030869676422427128250826352346258497922834364112610118939538054581767571847046162441384105319168259350742747869140587886025860129615524552112539416774867309423542590302057458845592512821619474846103436341071699099743704354216722071092047362958746680072544644133654514977858244024944011118476800378865977662906881321753455368224912626763003743005884352363589759835640778800975812996826307877031421333510563212833652435242226822863424794318230846429276034954686827299162513348615243695772716269404135952454160808408917218217597315913491672855426590946809102754803040583211683710903596188112869587398733671434268535515944525479051376562224705903176632203420704171232939805046649107837432705062125447098154919259817223904449225556216504136491546923647423163149156083250665269575436440888389554251618915484625466937857923776916354201266798647477843926812080049077286876775703061417062759758370423372724400146597506137569680836829289368761984451126014973528793408650922245792474349021921496491596042959024427508867534329342654562539012853177002529092083622506551496870575218867545566739899834664344499903024779173242208679816982995475479610049010212710359857956580918897747459113425765358142401956903659069094241533928785585798946590975798966045526171172313185969611687919572043264381054300121541221094146063578542453018998047625975641923089951567522551587369311345327796581885694260405135659473292443163136766266536899226140574309467450318822737126142644245867519152559234963786483002037962398095509217625909967071253598039092711401577074647072198335850208090787244630040723422213384941980456826384712252748054435335199101048033462542283086732578450297761118969378126950747173951550692604021867519388845522675062145321207842450684451511074424153359050805468557774895306202639466424078931242841407126509445208518180231198135216976270780592911794179782107506556679030873045808936961535339844174148376968150259917164636386406152803998205158160798477386389523662616533537486283180172631687288020311670438328686208432317068353582168083691135012950068160182697233678623323935457449239203668795857426540740336059105180936341494153477681107730705083607960207912834303473569814822780971319097312069155685635769702677118728344699568767140631436974713796026028096897350054231881604935576898772413713984453072372641829547559418456788443321170782107670346697279243081791747726099561779383557135494243720289383210427334965107876198425104683012451743910832133688896963326385170102239012739833625908529099765853908010102767626740610982176000020481448608439366151522842622582423465127219861456712678107909604375143480339651403036261269776215567149435696479486863186579065091262666350350574587546834227207197916633258005234967713885879821450965712946850315526083432959866225982188156649668472199003388776556771103860846231819572020148572570314158846435600379821275409923347669402369323865717671277412269711545183842995484372871173323168794899666245497815358189186628794769080804944590494240259136425257735523192496626709382796104318932669933470923091633730663343749081954316500333805409481119490523406013818275906215932926149518018380635786241197753238739671471508712355888015105331614134285898181997204916274192242532924168797797451623785866895770894625155659817193248729115108682566172604508151315614765231494128321088668969801940688805234708771781618528348532006340344435850351609808717625981860453856871186050213620350144649241743892106560259664899701313871858513595779718598934238266186425437095903878835843395440600128661201404588475381172395697300502849146317353399618614372431582893411393621231679342465370285569455396905779689152283427754275601865773499125153980245133678863104821555209336378128449083466036149424631644985668611138045875381636777156329306252763176724142236379013344129736686314161542552895390113125498838428459584300226911038172116767778556945714217736929708808983244612659286885123979364405613393631217965529223051231656867630752786240790189438676384661232105260238820530752303124281319203011774712026797716663836817153073068027314302136293794905731140300631433649180408719868515673834967610462026417770422610250084153489215154303806650599452904970167485292148385222010429246576571272979446507372320216682870246261951495962878308466867827248595834235682713782122442827509206817110309700958600647654556780944323049184631683751294836451589881101480978614434610050484009881463483678443003381555238151891440751428799447505830447395865258974184067384097702225317938644433309279022188386487278252231330343173682825418994041212441209038597028688439197077467392047679237883311595917209471927552762511856184465820434890925865325317044191520326413180301983905317721233517914551795236469267403570710931098822836259703787989896839549666594489342978135843824996222891473738792590682704046662756548589671645470194570281644108958170997094005133326294790410428568521636976330503882246344568845703959632083684296243837962786629052615956358294333012773085329466952768960560861075360070871397753031834451718632881926841234477130717683529823760822736897451652265957200607941552694179345708001254514873684632746945486623573775727859732583906605361304966570734682179146472958291789747724861591034549224740483118119979103887523632184443620678781599604135184427149696399449775414254041473987685303262401088042820112397600517990421946274225798473012706055494583633825511441609879688099537095824089813890992088159110723469033164110821978723510278751155996051073805855740850548429991978379600281396157788391993211204584218596815410783160373469856917844315972611137284698334081625556223212201735017557146450680883066846150697824290056121138461627019323645390444732736362783897166087097333047600451715775034634907842041462097202374803996691967652080293413628545609955971026789276160895642325530035425728502507316809759241064679001312558804261024921083417163436099908560851597398789719400295119204721929044763758654897403821130386409630868507281714733173681550927206048329325739524667008120787758067137205367777259572046278034959861916702460414311136696963480354034012863617062900396667670765142496893214307082855721269776762481046744729052684677368684131733843815778755154096103247552235048300450657624581500816081212555623943979462141147004468549301070009914888732332265166163227510486340028512454262911125035119232378122775784813308529579025720228391125397488764678779655178447409896589503939416615947984004043641485737193882610774611196684399501778655709636915295735933700169343001087995266484511035879969725297613725000931131847838072845699748750844286620305277086950964439781638029127527222992848596389734971267933203150212253657642516938286206354316089823798238189444292158410411487589468059904899993917827123334762831202406636676768003060700846833975497102851977163752669304854258073792988233968699470348270967290618024001497941054252680919013790225587692463820827141874525570105052691732974249034581415215940175332811968084796326738839584539015674352566086240237444623574749296927837447495160194250571253791119259293879640067180138318675777486970243027101134091563247016795769283709449103465348787631899559062059425481349195648610670588608946217741146841596706627016204270293925670044364756469088729761185441242149896745233615375842258823593396682923342876459557888238778700501679170975764412530832947899780647187216626320961787936817472997692135643285676877112914840821064718490630899822783929875335390279960740889154495405414986531613403561004983941693530025256839030787924097611391594100733891768651839519717132738583033512830683447489034006145820619766758608018332714782421404648718278596931939445999956366759040318319591983030099646988478194741587420306965974885704700352613683760695172562886152793752168058189679334854486188197746999175750250765947056536212620189963749481414763828585348973095301754577325404492647227592394994744435981752062133611972634127529006009464506209737537988026964152568254927943802587926722512006799644962747313724886107533436889511575217225617586158661129809412014280916921461572480943002767510979984007416675586411410785217328022335779371052319851802396233087149456716956735629539951700929639546511810312717493703864440495315456062598834406502079533558068038388821588632957648347048335376908481170163912997664704253929193601067209101707675217858811420008967778464294908219362477265061594340897927904363785234647634464486074973009416466295963141602473904966082797735787020662076649176150794520040620708923314224993393923997006615704040467179519026054542263293605711212415322951498064860899569305089375890816729784426540382274666473882993577358431812651075832701472422271914268062323974041765988165988325963198407619226268234810030407735751071149987464004807011890596773436903284936957878116731758647983649677533993459960566824480889557342195032986165532979559152632779727092646142658806477540272833569683223808278862378497051253447015970684260868184516031880469802858703184016167515333528064536459165930529625484639823586125284157241218018570410041564487361660697053612417274886711865542697613360668789975139469017590525364005937355335660863906923639897145290654734023448455406555862936006230446921401137630616323675197928255713364513897680381412312460795775447946321846905418335486101220628983965432530637863358293809614996334848457632856410972180143364743917259641864936587089291578555348682993645614148886928821367831889434063291215727914198565982320299151489250448868364586525552400924460919580560411316940252992801316437138262710946264436617363165490599630669434564829561123273292784706122252159892602685455529195779288314432187358534516694402656030475448306165847794665544467675635926936573152380600478522393100592719716740542873816416493313355550700795360853746692118153585513623383769493456609210638149595351077453751435116431420798482347688670982407172226510875154569185988096169557513275430817320882490180383063129023545221319034152380525239773855228305633188618176479595366714101805460471384470543128786139213597928825023946712307970910689285977084690675586236519502420977303121793067889063593717389802601654087994790320830235032066725959977170943217065365776976973637159959472371315763580043593712233042480463447093374295247427770966537818471067778013207321505085892535275252725363945865586773621618574563610889822094836164995562352874168815354135456293452314043782933802369691091662913378083188278478062900082117625684352186506168218983227288144473547767377891761631297808702293938472944036644323221660585692858636788176697502517183884950621706551400439725437887097515729058425106010260163402481469533412218279514642825405806646332113220406334310828805733139822596696569741666391199569346108879566847670595344620055957940030791032525440958197086953096239343921672116171867808525701596589699590390911420028350596670587798018965323344308701418847574478322371136123640054478570391167914333531958702869148719067218020365576352529367128101396852716221056210138069709593982416025898082574431917946165186238952556807984604563242626314153642148248024311813247698738496676310521857779885788196957846276477206083915839844795823787879417947402696017100322015240027226444689749784664143746825719112396370315754537156679257124709081656374443525409420076307284108519892363548758416827440475880290949981333683349821424719784395269939045669251149489403584284616209567887097640379566919385185274786829981698397942102356178023196843765813746646095792147963747901544300833216814622907805120453889200189663518647528376378926276640764623570974063397018444787161666711699732270565444866168158006937631829531835954476835502497811864165357119145339110223083067000509468794226212523885828811167282596673623521867277847654064294492895980554233555817231903343984138524019407500350885914444102169644345986877611539980452944310036269689170134474094398635399704368406469812669653247331346359201818263396142594052622820614639809907086800646059864031955958394903573028617496768451850497269456986774878604726365055820356966719654436544186314194241443561653647944888213703624133005542295056034157816516455593761982616757362906845970187490943086286505060676624646319775199775456522471883618788459507082061167438054500157603342906442296717922998172175408923120872575550962287525768925429788308774270978058943240221737598226182146070679835319705605269436315451858677962294908720569336645710382940998924516216143384090848593044678062611542501741888186493932642719340185323354621193398892730322350966683393259616696670523627536043989390846527870036447998627413281771833061642643155434490969509384303312977040382041643737978366995551528406341264510537183776186209601085331808161416286549033377253229653161963641375340166970048083362463902523931992534893265456194334213922144346374261851643583528340073207644446583412361848727719006231722182249073316687304189381270650947707805780863956063158418329752198604161197873515662274439828334666748989367394947336044045153904323746043221601289367405946309031829829881120113119986405101275030926264609309387367083461381802278946904847909351045794025455135487239181158680786465040914325957526265891479349982232983605372120200522182427367484961391397413363391336885328138944052579815738191030493669200339937293669328768395078586238271366861390368473544024867014149974108391816210998424827841508539141220937254091739362674900643917703189884872326489831141112828357218392713932214033010537391533833186985310286119758635171214117789268106340579041337484677447845762475940665221879953866927030998551581333331246035891539937068508280851293922965652275306550458676558454387364621194641347273773490830677831169963642266938835295448363101197246836508461548708545537754801932864250551556824913443408599266187098342098647075392908309272876661729087000428765410738544134098019161873586072333594757930748532475964670917963850778598746762981993047114738195859050761371219678056320894262597134316813661015650602866147817620960304632399084324003131319934017432234824399585946895792701676770094960104819736114375689362833771654451636062318038174831271715916424385071974228498116133123232487003962047146376862447427324306554765199485794205512988813987131116224652208621254254761276895840419582857860994639114840738467380536502687120720759009950667547606182004948213230952002198973029260494873950505618696660183365936262583359814450839478154317462768937699007326966826045674420584463361484427917512543258687729380502392087575024903943898400251416488217423463885853333396876112634327652055551757518942901492527727074197989581255335830176701685721458063154878254243056238301919519876245425563788633851635493384515713814529118049960049605205500308782600870481824597125602771198148574994838166296949676790484001904929423579331820917537112567592861195708890668207196380457441321986980500097616411716545416494102796719680765474845813644748277476193531683659042760162009529663167324060226641623728285894508710947714235405338869843208718636141149273966804059519955423229436801088635799987504291956159588007171938320057304210460036122125322633560874250022356493563883161167260509827476960632962863356256822086950011566361273201966144107188432124019510507928229431676004968402529154716103172255864894104085429758536216797637451376113585035977817609616136166620334574154781504811989193601654069188217475178771461641608170933740333580128484542053739367188101600979852712923526275334063433497813062696997917327825795575719437152267312778139974615786221299379295118437888533971820406926920421544862200576504168475254891072234727625122228379221023768696646806661642057232294771614097097314762857095741090741759657075643695675381503519170898474463506465703462127829357826111220507841147394247648088342154474947732043230445506499433389198046045972704395553453557515194668276220547547668472870082098289008063523270491250858857702095969967157941184474375675763780846153406118637775046926080113024096674130238608908955854642292441511210992888275236957005460706009969143769209091845438424650184954518784610850375628626082308674491764975050654534227973993170260264523784157242430808104592807673147460885454830204776996979598762501923256549354355627973637480360105994198497312169344021982388002915124806886805054060342344078033523462690547999554973296259424163691824695003473727070447174691149372234143369954029037674786049442417886776920120900452779795317544802920572114412474112264778593056568444407293124809332474460764945309079027492956136295345736028756749747273016528573461568182064156349657997409355529468748709855054256184228434367011464938607039045469781667359006051181428429267317808244785610041331457435379107375307754004499408110232869616367414549832783175940745811297571706631995291738063909238477740377923116976295805127069791574830427597499845190395436150123387327222147089744887705382409240877284533508143926398575845761132823881474673415672408500138769230916148945311356954639661975226571979259945407560538947359717038898350252287720492512387907103881471853736194282628477073539771259357269251718692230853523431506380348683711137876713746067934011517577643937156892089029485647644181691230858214585720920115689234508235325212495157354280708861749290211522558735846728755517483491276136245170105192792679295617438727150867948869125288120829785929343847353979365627682964774161193688867161666819123504630886861633455367051436547830580021228453041396680413074804655377026969661060873227267272721000712379996314732666352821790987019300965366118301895758367436041792201414447675251015917496561185623933149857104715864133528257951102152696249838231482483067912194209288132867800477989585238042610694531824372353150907056360023727022856559958717011277457468489058171324747701331046352644360210448717381694130176709835629246237328081809496751027328023701540334070388850171274205921283494793281085631922119662006765847486601024080239922162699308350258863532471179226554000477955730786946453969660179974105922385050710652822686592885946931313171991579454654610033269178323013144921559666856954782565993819612835711794598337917669002241951016963628771013667875027195189707946054140000128018799478943314743691888280362627994669516181452732537282885729841419966662485149504310760524625637530766433206582476619225615034241231605156526511935565348289007316037036649815192971737791054522862355626262527256323328794877231825828753046423961871465133569081507663174089502194903618714983688246563548217344331232648941432143923854513932791056204440882289199465164312783087484931891341425116707461640061438785411221533445268283959324949918350083619929077250605566903041014117028264962370551802221749030550450731935956082961470447060213993377613790000194860493231128769971166065007002941009655242755371776240526625379722383607679643760398907330867321795177517778789436812217911711111345766936606431909385198602575444952185893600518164713744244837809988872142613419411309348397831866407977145253307261333345714640433372724843399009747267869086498450514416952633682019539844200780462446305223858686023477302449718498486170223328867869892528976011195898233716043305542556831272854850100818984024650938206630077391613040673649785354441483937132258589344064441561852032713563761635540494117592733063233963800775167346839003002968132886123528234126182927489546683414407607463054016482829356055728913563169357350545256481368049121805268544992914158218012502994517247376123621383269465734172877768838186094594339942111776001425719263792372862184340700888949243172224469254122136597925482692159365512876515487007204398096489644826022257351227268777017861577185378170343906157959125171959713831646818482004723152803888557199208012699209822904390950132343195775168102937996539622613261760759065114145400862902818946169796251145671086806862945076574416319524173491233090008828575516597774850819931400224063101835472014705366105480602438092687177978223169280041128188053140327640233630562716618592408035241585593149643146358012951267022408576702620933133419179369861732074439381743544237623413490791288477954389761331999924490489558269393713557190514671943291479590782631462192364484295434248602342106422006950055274962785984609636665090037550907308147731561324994935248165434215456135710001670632273479191321941337164840526868976265257653464337016676820680441050129512487387216072136710581642487501980771268830801109141088670667592893348736590322749486294071236543999505316973197383538529192130144708088081717334286750777939946580617107093593077649713596857265512826054260911253343326984758652672670803601880121405612525134048738632112071086241646348647475884340459221068063717272465642115392503412052799280862626545132901383986823369310930924727473694644923691631812174641215763330478732682675455600647705232876878511268021373600372401948627701559483472112380283639204410070989594462323171650034795964314504113772856886122195264907805422065814556248321981765386297230912780346422987644734988228298212072892338510352508727967493474277914113898210303906606983486285468136586953104993028770253888625105732244942723559616184631839956663457344497418985210987531125455706321485701671360307699553180630592482788785476185492697558216069703336050972430855566535967855384350202241207331084261552058152629882003470481425092881418194473382347948450183736714443492735829645168146712786590654622965739261131271972189710022551650941844739496671585723790430715978469194552940457869455839487723095382490965093087485121434583636680148862900013341642141418330102665618093633972865630766891348296514589501534957011288734659647270431902515320996982011062438055003645104403796122851881842401152776550048831721006248573003881913486252735182099876009964891911296575672465935439436505290947131363486262517554016018769261821212757221453137633773408333721894370335891111881174188263938364184836936396391685043130813686859059885204890254986792132686135140772724133205288176024729258414990636411521150607945991956494104937776561486132431988420460390173711873432543298693192225431404352365605596390078068196267688278825470366226557912678968755086636521829046138746996123241013830533005282341928537638337434383167915662042210049261808315266657726363156984304906363716990266417255200063149531963497518656458007753259765515958524289715952637456354019882271999130960980875011977015754159650858388688316166191210992067098682707773106203719999875833629120447956299825859647528974919412690580621763614410847189021925254379473330288319377790676809445428250264874907136485298514699757186457224498454292299044893089441463781718998880646254134178732787004615357308599555976780112178773148172052070506536404791850695501071394782163940156509828500083957903063611435483106020149500901001806828722874931340401590378561551694924828263518629696709481566173570271557918602560853677400620844062958215301152577053498011585194998228714264504221980157783076427378097496819443077870961332634695381792026855882837709905231011928036232112587246524706818718120610353389769357253253338710444426434618523182049026638914446110710633811983264897413623148818295125515192335868219879046365096738055026661580129387704670887332843703321587769238050915148188130656226447785035182727268281884201122609065079203242184934823210305795466381818261525594657678280450497074825947123164679755287872453434372107092188305573746134172577982645716724997214153633244429808826035915520723290540490269828031139579333663328018726211077614164334199826182932770703549511896301811106481722395606290606919039879552217507401481376623498202673420795700315055666914009632601355426965387689964213963750040411490959522772514651741981743070039030975659314998888994348584639542426896419119880913920515580066569276966182221014672069378709624182477683817013402445145500718456231820865842536947777446102866790907583367656457924720210333020972341720292323129827281558463323447326394353813974056220567989755555878194640438080705530664340763012168313890005761288306202746069024336809352689383885550436107869715353658171648829102923342581922703600259501093520702093743313784782992560083257484921275769460894423663436742699945752674992305624235076370750263889611851404605735905396604987405195146249321265237634283168278069297663754494695305368344056167228913930492763738037750863829029132600467868541926410344028328777334640604507840663196914906173239856407104264402531832578494289322718014548818308411500671710862764664769643090939095060630329235156037652531413490016754751312340001654478504658561406267691437687118697751789509418207402757827212259121885212547701998780413914556560230729426388048705062272745105542468201609385418678736963851146509649936685446018086085937566847207371160408153103384204199787468242919108771660502057328684505799246216730337061040277045793322033119516139480064027358559928896795126095426578070686448357606128464639232548420103285692944238228762555477524313483097386210030213664097006192119034882832667277412778743609148788921167318625755168315736042680521198842943471504693843750831128310516968776081489352114917777461732264722362048601860989988781950318340949072101563387204280404062200772996541367934196211377284875115878747547255916798633455346798719523130663716038762462660841877292988849229766062049063927933176836700860003566800725639042991478639262055181681078484550970554643185952137334136978202073769530466084919122391086453260301751811212580522362278272909459672803899287998558196483474969777755348678489730441778800203536362946999745469600926137997614262685330306227872700413555206454078689362820597587265777339018613182089744966462563723252779588121005791186844325448555476774849651351533597389097307547111730179450488009540253129692979635129470164054360600966942142354282136114549874019377676405155483754744381470846724035733092903972239836648938704437764442489112080112536307195715756677048707549194763105060380625095815162248154371087056773099096405438401146250663390274471748867797242055306199702684280392676407532564511239778196968722962987065245933343006429471728266345455197689148022134518565267989941447484841190173132394707422073329315415043534292558450169231379552309468973746084270205923905959555723717808500107722043974280022557506916590314473679031466243268599464298028226318029881242842740245400811791102563671968109969594354219592552636591098539733983925236574349281118652000098466832154363262210344061352792097358726106144892287003692328763180143799365386908872433293747832624754296904393102038244580699987601589549434387295131702534117079743366547302061769049644325850816400943111279424217229816647816191309200551249128828773938234257846173933641335662984754842984077302666607396378023330684830245183753479892312372116895205580610706929281333997929702950495108109658811327218178905910517983311001824705450297709738684243921117327840578148900760930764431276183545164668765798242336429706146722468788400526184789171777464076657155315976223462664683966955646054573347441352559022230097950910289173634121048676046338307409456546427763761761984576461108289098498937118125907608048040796763818221020815287555801111938097868083218576688424659150077508730094620719845488584450680859809574219304616731127643219253706505823099475612615408777523506682454000004600575695627470746539789428558102185717419305677179463730977902830303447277625990520761656334703707409328126791812028167216600067838403546941837700911515381619026679564444703630291586727511162513359922427923416891531850300057987318447283208710812873929892998551995407710863106188218125933812333774804177273287209065944290163643616069025316983224983217335669579977112387396553603833219805300645449040758778913492397835165517231002368445917148762340927271839926699403060807096507732508729496901669855135265603857095662630581268070039577207278195412340710630290785871555655641079778759525630349971737628200075363068367133337374371929645464033853791723587595355313534839830083920699791999278020090912702121378003654757996219776421672835363142857442779505486404080526006899982042460585543794051333830273605264477292248317883446632842977221037843865946978438813565718900545991358650125253506816764555173552666920357269077915951578292117154908261637936565639056727414868604453346343375952918363213574033992534839087290497495112490299684973914597339400169090628334010597271550334669036286773289914197356796013349887056097597547378511341975733734390138107689724034155901260026518163594654208029928754065321494984983808734026440422348178807950944738321601010456659327073357366475808689220456049784758949224790636519295248933896102866571989702611322376697847924077532193706891541690535703770862775361409801642968666959791871121836743970878301413737942077500249532958745172293422766785464536976867356409960184501039028690845476991644819832514928187249452603703933523167691198598551524513168745806860658384355224572912224146510208248885223334211559028177097462146990155313599051152628214096885229807186980305517081504371258342615211719555283355932288622650875698096990743055801926980396043851954964858119596753592193679966570844444673883589958720809268550796573825858380123798367333400951655155333645275676282264244662970918776731831296293799819315980550502961215136840198737763718747314856189856176962324659904943073740183274886571669679461732792095821057047760238638461017719708079622014370705302432876852243973557199484441989301664136449355292547133368522749530898659577508539453644250535355347822524491687842465271348697878175579164578839150237451278127305371146583615160688899447647926034369417701655220539715021890414875740701237139514670388490249809443530616001871404527864702067135123923543697554457733450684868162574913420576259085010928274948467375572012270938616723615515679082521435160002011756883012534806810841717445403079747558760183179699431149381035453877929317853165627026929879034627757985737121323373424853399649667073617882960106355490759875938119785454012353277440420992271123876776390150470498959116500831807877448446503191727436059618469247257168572430217443077684636710183243444566665383668291494677068404904336091997107481282186175529942373926014877981263421288746911953893531677761765904846425848640052158104389387570428289534297819399242672809583349332910936195527683157183083972175073226520305463180313964363016376476573280055580546554266709546489290986437580085291805872439435148998598940718448675909736901489151492365674420797914299319152422996577056531449893296133519355358221861381751600705639774436418795354918406611047559621776034111109657127788848101754949841637732006917686572692325064062154241902871789294530922048016138840412091166233142347034841384100843537784616065915171565120989057018799164197267820886237947287108243406957422822078736329959910248538503420465367388381791121105040978478252231048232695378469017042146018061410531820017134239819627311624919937525685735218461015100374443092627300464354045180795105301487306511403400070704130999263085135181942624933047034637381959805020095252560964763646080511612877160290906834609244640672883931811529883022708153750515662422680229370264583080411056029706647806505555672403600377757922225608129768409414502485863005378786394331784815685275469894096337388567262182641928920885354479977469557424658328638767118248090138616860923431007588468315667188546540009846260969696584227805552802636349705893533595285684504380138285082128730523584109130080260044770965305405385407436211318041623178365049987219437503935385310491491132498348766542284631398579368216723117903042591257435533766247386069527533639470139547206082838181991138640007381554640321659641653358878493532744678559412166119710618146180904642373903893090220872563687932469209743592594499431921365329520455256575609751817685431018604325483191153297624879677490406164382351828399458314605132301429572708422337054492059548608180561055590850562867240984375494841035026490127256988760407712879693421350912023339677022807886163162425625371883422281742008344138756599927163284920978520540765313577352348488770383660945475969451042114883641972535142723123463393615287732788441733673669048129548855258998004111885070819843133765953760929310588644285097388218278696816428410283429913903112000946514909646125538294055259664069332262413785007985558447831516398525846050365197698135439962142645143754209656154410319872105749004208383108786381235166950327090872793570461408335734503333398673923061909213113525071766335407017154136343753599546236258088722480314998175670766764215417412750492467459514682476029241506043694311150183288131656620905413500431322779724119758465923963185804248990615845399279042923649492140447782585377582719554199022955915524988908506426655858912044344379647762646057089917548238848169977595565972047581870451764652115849672500021327333806595577028210445874002288122306149270156594191227415924488359495807086276394923437736461468181908891674056983912422369386749591006588858362690440060130013845132774965301770163693277280348485439500952257684813210535999412148270496806175705661315648531047797516387228737656198493041978328745080397664726000512952738541941721900637571490203211859623079279903746251115999278129064535212562248633582450001270266085708146650008347320586853816085419826427024254844479295761754206489712507163205795351289636841838937928659899324690091996153129392863386606215454609177243797826646097799447403493300010344245100402449040030602091678319636196114616405943155956308295989599571237951791705577230731990183115073940420992965943850133897320499437739640502422547876086723089575582704380699456231759782967808076366738315022513324960035528007526009862582945665842826348440264769437188175593292127129155753693447304480261828977973717351021015239418619854273139308007528472725974393531810168933423938564246802143815122603086576594189998041772970520014261255197256860671359620455453651939006931820582032431398713973344741421353253722433482505031193623144303613146445588898041910053789534082473159792223988545089220819939683713071815518062475406460125142274022615252976085192694039441592287408524577778612154138541997596383638476081698184366200069130921404948833494919705610419845373820668446477283085687169527845808603159800218050138882276467455660784845049035862980546508889498110533015655286823189051731848399456562398639302288480159239669094652149185178272384830680542235710350695573382170004783223828945041528086576042272530742855758283801408900215291189913626331814147509095187203095417134160854650202281064742171339601068228108832906758832107938961931780965608974323200225079953772160737940250868337895312181085103200493076816890174241042900398272856510162289951985064069366572191111397944141520289733278937947644339426096144982562311553377361499390502399115061442918646270101930071181471192608311036626726528513838306685545723642730681639007093698776957127933688506379811728160244217027082312531401807656210049100443684872378271072196401090354382061535356672902929327263923404710789192771179493954529556631811218826416973969779913172452361259859849948992711465235382966031310005598481077907350764924146199128906835049532505925205709345434665410995909248509441189541784131753530322336604356400565827186074427967687966243319139332191731360921765575037980424464951883912260277335871888088726976271425740378519094301591595418637720527926382836923664807152142368994865840010232988849065700536764032113218989136429346704200325190250629036778230789805201555267686949428510712488176923180751556332616137129954070081736617969618484451771861934628112183327654379346324607485708859955626521340144270316243511404724547475226561105769905493587634383527016360841346432233922218929163884182887223214249932911918508230163112135247576810506519825227274314640136541801019040526800702350542485628820575702315726147774586641371748902245682131801749860198142156191343723762069850606480388317833678273970314384698976256049981799520416648626724994995610810643495409656719987999970818887925514215434206158908325849698421569572445702226602056944562495155184779878566192304382947436311287041304432413138734700624979673699064046366969926677984957885159643648023277135888893035553816635642561255493685965903061602849122089195211291299323911002591016728913704345254611003497691349226152143350735559287391725097681887338565481768343198721997840510511351736147120550448026450906399504622855882082168783836460859381174713422554345916878155525759613951848562659618753443803527383258717604081479504494119813766511140584043063440392673371075390240999477866208859715860272439997264175530294607264094270547426259084601845623357689008925539725108899001067398522626457978580418879827335070705040636142610007870328443046642581597076198473378850548307461611757139471223955608213938134584996694131107773087164140988115353490285982895773105620100311685792848468844750805617079717217988523309069891022479251799338852427537361449456591769261264377034874748268519907543623320630551453574273134106321949909706392000185615947992714305640454349934422043399143925731430932703470927246005251887926185879595642794966888151742333174672668244118186184701587938720022710117214513054586785516948294909548319393267518101605377627830807019527581993048541940840632076335901948872167399602808934503286950830344592297952051094029518885284789493136201542730373284987639112364225454410725770843212934953706435270995004723922646738439346422138920658576746988660594051468507824088535092277484942518037488182871367176138582439747271874141942739160017408427105414387427700276372485580324472209876144487145584224104566243647830599932137248005695465691656429341182450058625045915192689517895501693539364365005687094107563262925403419914575277059178479588085785196228525227858637097509017386526952929718778342007085705980437451709112732636571112945635297700814181801698480821272652403140667447308131464183922093902749027376658817916120872004160098232575643782655948142729073334862460810078259415721632663174385639966907147772376711569340311526881693386207576651540311317945445190340355318595872786629965669855749533425152248412571318225870489631451163619232416947492902899327376842308498685417627951053377751953151562091656017695306443325738765039989634975897250197166338728455649793481290844799873839247069559158346716345424089911824905029581101181103661459862584385120507180843471017196718311096631291548082971732533157997455737880678011526181728842040121646050727260332411209502301297537478104221978780610052068885779635106654972876911119417479252424784728361235270257468810780113190587940277003591051287235622309194641171954249659327461237455533066895327605509848897881550485523098472088381104399219164268608849532801068996076581058858107482224685401608456847622635919067125751795678810387121186389016545986971354505124468617751246293626504935720609048942470598167984971467010698601335039395146738577686905913769485503979768797469403459894968333450194585592191312747822598692432126129032023833028483994249976558467213608008018577616827167850876736281144826247456337632010687051786528466874866170169006652465306867492527500452005669780457978793588921307064537099783075861587308616664692516142083686317168292413543150248657811007025233901812408236099556277606459507435060902124148452826927492011464897373152170321194274755396063914942209813634550686488421525760044225120200240576480978281055953325510516312274001116556065592590710630585712194348764637747407029198948131457711809140874603637226863985273099270532290451056210631124368703285041722958913702142759571664703291315847623986855681467457273732471097358902077106226129637990502591353244780421191095788857604912157637763130731993396394757259002929167704402367175857285433307801249992539011581523672270705774968245418083196487508706556367613462569743919483536776888989024016292067360774847153671912813952170905181819170416310782611998880294606794413083573994263736289979385205850432899199666591519498550911725923389600104172784656182631318644372291754320633303327457679404021670534606977756067942166211498985817304173179209575436681372878073839719236763521119771754696709217051985298383959000652104680139110150548410856869195966431014009746497249293699702555642010963145393028962439204549780558856119474611474369309327605216953828442928051169721044251581084266329170730331860020876954900448906902184598658519671026808660161494434230071479971268957087450386632583729958887036971540335495713299574900699874988900220547118437824561810608181447924887069663768499085388753817775950975096661675616666664523390734272771595970803526460194254507641683617129138209480303577210128158437260998562035470233949780939962749305324480300599735915340869930979667269058919277920576498697484188533856714129528455576730666538956798944935925210321835786020561916092547078821220756205662584331984020803136600628089441538987397977911713264913618828030991872695077435297830955951773140336150007598431619858585555999123221204908558823668150662110344451764736008905481615311161370606541522388804235917375665275293910988783866585447829832438976650760420931212555080736300548772259590242913456175892007824657261848542311783915526493424588605576361851540040325542152857328311156918884862485881315413681150913286973310703025195782035064142377420712128344845925393576634670842353460939281680726683749797357903618025990513043647215417067062147101932983790346945636583208186090107800136930212304467440368151396767166518088842026313630152186151869862929823659556617608330490248254101307448302962701487871077255320119212799554951311566949910268717505114787360558803233271088676110207476696472057405427996210209496786202214713882060659436809597469044591050938434134300414621164269304620164535446684411481010358133242716133003639525804579354469620159081389960115827766018005868301602506361019933502011112536411132643844506951515476937810302110997903178549508704485995784832535603347983312655343774192430025187222138266798049923823587754428126540380017183901500039605021059698214146212884954290362064772193151952396172611014916060696135469623807166841617048023110249411870180174347660931926338237632931931052091489792225190907577382562424360343417210573069048272166657586812054145644486334162849952619078419468225085008934395791725065962275045759641476120138933843515322643261525591529731812911266993320655011474308457381296939240706182856569470326541537174305596670742736472715407929988943683502843972675722485601400563250980218633555151906425890951106090130753056163962541222595917914180231742040783993594807785438536713978180181450718192684569975200014670699630979093882131414167276528148758498056936558304089872420045669688745215690142712976722067790997624105530426411069365895488726081786975583194008876966715737615640514856879502326194976375440115815153079506397416237369881303193054428861809672051489222442378048806206541582067871592796205492980936155603278137244064395022625071525390247371344079765584486893722260315216155721085690083527271553249576528009146415579473635394374836203306441827271063808377782832180773703522929446971476237082265516172418610946064697039337908364316247486326753109855876810991219017408319100802316457712400195717569337221022438210925928149027645926369990793643668240270452276053781298761952735271078566514992512877642721236257668508167425012663417830528202759863534971128042812041848227182404687259590780770105871188598646915153502374552382024837506033682783117991248224737145203872819959189836692926065497904526485715029229844072622912992502361151059987894750804202118914114306627294420880328840511312753469830772427746775000926999889477620689638159276967314563591218120448856555618294211783796158774726954315151262733960580320178403640828103386163867649861622023039532821883621138161616452890546410321523106316253338424321129227017651721233871885856919369433358229020765406219590310552807039012744652551669924042693385640167601310581103330338546783256811539421222851117906973326954619577218509752241391960943624845210719433890273121358758467239569090520281843898725784180531390332645782509156219850504634328016747929622281342433983680583909871428444626273447102909993243427860172810075660131400079114644950332599515249790562138890279840862248128396672670466926284626333869976480650583826024285478402784707978945304878464309975420608135229417870059155789881544335129830046931300927914463264444712802225278591708898687728197266566224627536544942863272103265685360390155121015229769147359687921672200461353878533491275355947515839621986903798693209914852275681125696016236585090705870181999974987639490644734333424866645417115657519658066083017292467239597285374700058882074805277187627645029921052350910419752507596231403233113258931400353266461255377559847982800993150708408464348484073229933990443672754755405096124829072934273184522799768239756717344020420308078455822321583633764470752268711735821539773692543161402497360776877188805813255701323158439374099014354960311103690663182996180603675896028483769397296862496184716757396751877732390827832160292077819200442720582890250515040381341518473511618815904024245132219907843073991059846426352735710359913158872678903349367959802991640791678228628525848293083685847264217610569741604188439947027528527166729653721412327257219567746100930390488866419115334629935699547349380920905184345794548010358380284130049320725037445817516161221337652493035592499689942996505579287102930571114842990872819487369413929788369986194521513788845209107685486372753026955193736240430664756312341039921369350179035873336776679831125464506058084658988272677898294248581613076313010084037605659621642556689699323679429369107155948671635904455977708535774134783351859958842953944938073992664228086684524276334481846856343839873569413474088334799094471920412730566121068108275201238980811398212438229022491536066250223458603704920023559536221243646190128919208542120547859423134985392072055254271365349971357515630809937293450924381628155448481505188149305326794644512845817220441027956261965135057622567353650234986046716868253605081637394720992247630938029614160640822350659371743737722776436480311203771812672798445159895727973991121966446448565247185192448073153651270281064835616776696813582406216362614790235084129227511847638517841040017607065545632200360733369981237493819044902219240138312327173656470007747123903078207054799006485708999227381353207652692988730570480712762100024012458735702199932472556327353304273072034655460717649449440004924757863599857820882313249295019114508085722853136815959173122696698384736284508305462357579571917737779735628672163676769768698167755021073154838962429148703043457324260048390384269045290969158684793826619528409504703070193428625642630839717172607640596610996897041733021185132752790644286851112027167612956234613414591670422884737051546589137639542379313106223501552566311416199802989822483061153813997628273520803627398159179175776685435910695802783279965677377683733018272737905339238776851801297678075394365297874832849613996240132316608512574744206013624896800718464644128508339517655628924981266617123463630211764653520976412401562597509229131405341661940488878407665300978171633484705432513805815820871651208400491667337250707296939969320360158528209950891648132125815129231745426157138790281411135630903314133269640056189856500231722813271233557888438305761643947671940606631676732644740546124507203057022891339348569420275132364352037244264851840391320329192163698052038209079610487684642661768836395223459023145954710079513110942125774389664724840316727930945017760752920498845632073188467253393888404451050482861909376804373133984649442380773310713557147467309981282471278242649302866850329152465341969288660997150409739317432685638958458639452612741581105514545498504568014285297632350608528436425785964434891842345153495455293396942293703237173720590131060928948147901785707182250554283844358510140981054377517213657940799721767356103268078624770569776132935837380457860968687453679076376776749097712846983006194448726919728263589130217858571591168262525105415240599672158211899813000571028227391889982655930726414934214501913844839945123995359515131498239724074422146385751150151641975897414494111199501751172689861199742521833008536387255150384462220938598417710499357693700735152043342241212884375805919166471832705832223877365645353425764967056087765227105418987863976296126699587245577543766915530399739614820815478939683888442088412442608487575888454771094691841001563296818525088437457162537977593458304700698441378995192317000481210266660584068141448396324507976194804232514011872153878539472478143153752575941814897694369668106171515508301026716114303800796351023375857157305761841415105139374898678604949857612220774912980602676044401103205668159266211758139710289578605382522535927061956589483316540327534655195678188747096452744146740794276351870379016484129391294647307730816498519483945012069868615561949449576696778512292544368760503257075818961274605271675788913964368207351000265163930220798517334221495179116472667498685491879203668026625800915204320041026760996496750425158337580373886145592042317512958313384072582332649707191291962562696370477051422266830259937561309495032829995775472153967677248315906798132341090347260775688976305652190190891323747214201845818906887730916736492313869466834065530178265932355461031419976726196439547021155955003494696144377277529341805974440908499764984907723622600218778993379899026169447418466049304817517782740043659074937456271952960582725346036311046379029171989133925452140164899470140460556726739806410806860311584267889675199986298872149295498977913566178959752712841903470641389606634908368191804622271886098368410872354314587172746018726889078991856877981820886670949914700334862612702624889318006686337072395447794657219600997954045974018675861542141243450689104065198309937023601935721211623124483867066001369637480114141351727847591874047712099244459105444112126425346744591356144841274550824339742271020060354379242315710564618191006056179856622292906682160773638201281356070240028810264439863820772854288512136886563426632118258579339082232296051281759943033910601058149000871260877601167128734658203974699374105899382800058630970969961738664917435423029516565350392018499048570802091380593372643612058490377624055394849703784199740323818634314765750208211392572577749561422174407061961484209105527639351552136370597684194478854403309506972115640050779537281286138191183122997622916205628762908548086249246766804775098187544848719327473580274416838936987297441363542005097460425397422437251868340274803681284911137827196055227001591399840273386812012015379389590943913841388029601921598687269263186432700802484970108915114524931840049498025037200705561075439397166188144045445059580021446321646724615172269801143575529423496298717780250273277759771668598889376043158640180750973300185904086902228259467370026201611629287311831641194576075992811144509136590336135114080399232749074270186220903215630090451708771110247463968648982081850442288956942170644957489448437025338219537646316683610335938221336515528716562651429447955913350911225334767081663476176135261958758427489169192525575122659478219121533876596748894576792183140924125250383374329622923959187991283886483406340785541963718264812772816996439448588832932029603341430622718644161334338219008519189215879801748940577059126671648890039531967450682875406169531461135148177587742160016405715578694639955812792381473771702604697215983934645564627308561852858132383518529608913026794688839553116832703448293734114134723370931069212427141505794210604188404455491825950534813268209191757757479954360809656923643007917441673388430323359674114158119745072708933812424574792660240801426908871378837503838524601639232041857595639321187569442606879891829235638581904894554170065042630777558511924959625797870820005285579205787533687378471704656424989891643281818549921242884835672170792385209852572499411284986111600517557794537269828937908300238688432395347396784776317831910230194792943972893035943410907073780662206351988994858959329062693560229770745764295184238902695874189665207595085344743369806075811916705939893792940430688923589692892229430159432225959521742137591774795954012425863952068805454239277677632535363976249751038288025300754108934170440228650377440958574408390958064622697586667919423896694074472024090443761984723714289904378456405844133115896123512793374642719758792139927402112471890676066221615408167157871516629769200885375587001491639646774877001385385861673098894035025431153807768339209612841710901577971488217625078389787812586859517281136973036277698927338106885348177506527801219923776691323569387405528738175754175175218297469935051016651318694803053379196691981749437997799183864194533117280165452149121394852200839363276122439021765661220593313316105357849502498960525044755757919388443408767754866500301156030981747319968323847291730350343431707585975421559548919814363084780442947943631668625473560427545100805296707272427288586717999307858351302987096081825654956832526368685365591826367674946025034773596551741988858851408445577780129269060117645617992086406278494345673701021333297939245880904121458447406763769736862085185459056828321868713064849930369801630963727124855533574574445668543940917984892851293178972921897454211501406658270842069406984033068147038693924872693372326487214513216266182829389225614521504795502554414560185667028224132437812854735172198056269164475602171817932336850956534126859894441168376884683497946165812555536904528427198437991120460835857000649779074510567721924025474816435466161801999552179470935345163795009590039687418927120881509746607251711208668673207190380909352685508481649829232379353548137089829189454786201159507740796714413083362198835188159659363110014259097202347210724936414387718033349520946684286256016507764439494857986724905382267060800475993366047891402802928998570734718893546099931587924657142542676329539907937592148727011055292282730111547967231525059600167697589290884395746513862871866166109886208119969184876747744500115417195948403035915970522645423403557136240507305821075880125168542954370815072299373550897488273275993142303160604046310780672275748240595660962775391631864496835201381834947509763972130061969106308303129186347073358499442605850606694357931901831439811099688376903124844368953343278391853588981528882698889276245901603888581558106150231274154830248995081210642215711075882807321514403088610061404801732128557706887736887967999798429703331287913181034422867986055719481062891214676115891978443621292143416234951315731546874696798107301981686978876523231649732474483373304552924557038044654238195228981515317788524607509225807275425257664851394768067017926949014461149152979445555928000419855181206586523616159526331347693087938974745735785824537922935525235143004218732947797719377602493815785227247275420071031315953430206731623268438607207508442636241386161670637605877435953904577404200045553561290699728904432414595171677260551867774217979694609077251889145231416848886183922715915300002215476904716126736125655121922363510257423324827025029161154740541809110350214430947379534537343874674368157777730300106459685629113380877202103736127473228305568747924815568732667515613523626897152471335600499371378277826487714142540285305364360656235639531363328506132801682727660773749315449664848022271186945761601613168886329030224586126563243939684460771804210295942825445187377188398411591842760863927443103414044632292820927591083366005459763194932125558880147905123229348795186550689958916634615957216792095575646628169383930171302239283779656960470332226614899824213389025679046425557454371768567853187909835073236257266717100914634109224152679784010875733821467696837861162675622203574437304775086455770148096510110007108807015093713807195092977441728597454980334301220893039811266355063577513598323348912458661954051554386834775213477265788407652350439167164630237746559404406163179197784372440870971448311877607326422520127427707112225964374302354649031378314628020959772530522972229301945014153973306135520212774271318731337481233893087783818373396778679346538114099403536012127509378447507636625006075667741552388544361325233813721406584952281169585855686945174400607832544633209838591358387304282618985996688657792617372165514965859047828333089403067303134451029677191778482285613110416104010877254945498319064544053953090419308310302102103144852770547529599011014258480724995611166092782515322850186409975119902481606295204022649513499481959210513871502123854674429969373791331911882522170956505773286286514499361811043002844573402670402943717061687648811306220043746681801312711967140591196062793216717544393857893393575012473617106768995252574546436254547722767764142494539681736583516756246942811673510951353640653247628395428341996145988967800910915206911314086674658543946358231992053240101095175579237610807103837531526514189670136325746429124534051755358495375546662989606240954452174525432676229038191598439638941616706785427336129751977858569237568192346596726962846239601441487683548592970136211497182390673590614632320090860324504523487198441771435647914057635458079028488180661919251546956304716802134239194232378092972039483042982082039287364381178555371860918469366821624628543085764815675354896691283041347698385761985378367973277422638786733929064108077610159698125682511674606209127946910918285723917144448017821814924653910591776354166767746167289794087734760485388479127974990187647322165288313089092509232738292821729486933044196651324192280994389310289070967883212751999998112915137975699757998476588699085443173137031324844279054125260366681699074681068922036571011589760015487836018250203028668137828929230026960177983741953446341892759577319000996016526841267321133869612142654013144134375358386785114456027663566926519473832731205132456356539861360183979366237689177583558135032253230324263203673635859523504112587969555645381371054641953732009083168411893451412789290595574773294153158664478314779684298111289018172202689752999406624739205006520566054261600915944432092430079650533227147163282800877890722988897303284423023499371352957096185275304202807695188413465922851030170904877671002490864406278491362634500914913902414596626755092795383354072501731745288543418841357159520948075377483753546088834162450366084683774170112244324890751588927364858267455563241043902755128905363659718955771851091857249334351290514854645336832839457901623687509004522119829448439291005166648615159598835604162967228190646275071814322392408820769912476196293411576528449708254302683206282064724948663738176074587734276979754726836136826951654343662345951018255742024577612461837335863135628194814616932005913975568828122208348974156946417355256364697230802279902229328110968692013906180814318609144721340473329411115115083767816708362379568829788082744543379637440920490471365702552270131385348051134785645115440309599318058412351621112348749957802382400072041214811543970123871522086923452805638634915415602816683339261904203213696527031927635014185981278078667377539493777063354216613241441837326917992284800113353510546239910656619616883698655707090448028198118046452869458407786264780928143783132789950790141827489414121536985007545607679479845593392001646497775388741695442536885634316987243983092420951442725815697172937326609166243720304066037566445651880186017439696905192560631841105630220261487215877943262156147158130049394636461170427665327951315331913730087150909419537708228071210092775428623450098940338780377589347399440207639674616671429110247391742662043779372164271621427465130820399969188540308882996688564956540679959451377999339258301390917948342629085427797488826413396320863818325497306412234503467692076997216714693287962153853264820043248341282033804821863129703055641796144352197345593092607377871081011291697554226502715762657738716232133108308127503533788073789979335393040630548469860706497438448094631546191541679596408525009543138621333699686547174663832147498632983617333214468902241576971736829477805473418210232214104786988601666516874941032395165211055215395177657853713062542952999576124425592670662233209347021649052834358576282527852778330110770334161289597952910660989652960816736079994333739873493188654291552224818483477033246719728039728848978950258093951156139445800584038141643661135628868072146287192459156483484851093179085699340475544868186150147418099539905358820155814942531456367304921041413239136153463313138861370944268703246485445213688933007888276614078326414909914232312091586984319784459692854787590588343864215734154299722396799839867398133530260531281879736489056769266096649000920425898077980740122338050801468014421812341888732589787630928654905197883771682364249481872518097430552008531967009238777278774071756486167484002061818772157280869597034728364048537104667932341964617804709129462388329540839604086777418945099326323892218929685103606586730860320685068301803483926932739102653067210139524036982288844552403617173212442156185777120429705905413031108710693841589524199107254464942134815053391227097528537075197484375297581762115473355484156743943660224673887686843876206594983227697374649195020906014544825159396006933836805599326250814985185453209599461575334195868864345845116448760064985770577673105437648858699460920789143766871035497082984050821322414388684148702648377404449410880363944253923494350863771040637045135793541305203949398219414134688642782319406769319823252713467002633374583555171908316195922692269899473286268077782500250714266426799718705925554684021976449686301091863974502302020757289757102917800676953087745211581326763549451941264256921138037814303998293130318866659281134659351746906325247229735434233301546150649499288747292241509906418111284603112469752869631620217101693153179827655948313417364614859811124601199733916541964158266393914279168063433136438340536739039889014845346272295882062755231685362161403845835302854945567313937105236314268799197784347858499630245201554974600113291320689605548851679608858995197435852142152559900216527466308186110822021275218874937987851907759240394188584244284550694352570532716665323337874834099754330716481246223605691625244828282647970426858080383995736323064452860677955420282632747064636074974309490403653671419700123181776126902098415853806514237457581508054263212088160950524556970988599030866352997794194339789236173893299066504879432891970462644033392162181127109534837201498335878573483502025189997097342122784922804958508705678718643559799878338558473587339669327153589087866324417404412497983572253010853634563063545240481670735317363940064598058984775478692686598810786048486503376289968132396372407935431311561245229866278355520229639312579361900763795585686059309924057449315751184345662887438376191090956898709415733626012450481171036805767519767970393912892349448625032087962242866059999605940931965888578764028241804826896286278356120093088177844665064904820176400372091620203751988500479963906118317506110932458839818325066433384681692306902100795155648359510512129422684065665254001154258534981414078313581372440882228537560028645210655900070579363080118900202971371238967843371959529079905738535799915335555421361624016047132096056870866146075533403366001262370832971107782498550555611994426884233070727946419368364070414039010999000335357948272905614361804500547070033381144848894299566685743883149301699341405017235951966847802387290609546953243681712621551378371546986743729138938096941605725636205212231388546545242930962927368730521068391316343027421885529841731368423167196765973845064701655923102451528836711373539471684199676272715787888306723869777541548708616040601962503776938809413737218393843005411283356411065771780464484542832319335891498196245475885716171112852264800418552774009993809820326095864577858953652932786596417573166384691907823176715626695305896583273243824184136396990019802362562385430994386977275161182321081424213504936188556261730878604225998945270229317065522261986980302194704594699081887559628008781798205422771407662338236087629955718527283338403322693134680135508123888325520912905547902907436819662323774023905166140719299338963132407004447458237147258802088764697957977746456814207704686021467515792167556792262382899445575898439159946505035486561557825164897556788562368178274947318234844376723748056551341465181013220436882724201738074923323490530519240827707561718423229068751923939664573308461061429663059544734871244617485474011199513243505356471577398874010751420348767997875705765272527124970500202084268151182551889665413513822954877261034134562637835401873616359459894059080795013563794412669929072606457546860010943181022874773236731018551043708168619145955670324561401941513018735674544490217687123601432425581494464431253969904468793654618738362798353641295978127396852702396846678088848414245762718372476786310237560330776950403361840741536273645277662345343503805892783240125047872271629991142264220058171239174246444228883890344596585026589059365040689400683309020908046625733514769724583932032520791402803707052398121194825311747166885170201952010752124334459955999747190602914082226527717520975977111200415212772412465847080960594815980650533116433822189256971842541721814217307538984614653699413819830513373622871781451383296884655145811193796178143998413520813959232224290696559571061411452489479700550944624353385463125670611598502237714879040659810362474394982727673216251519139341924486765044808119982044749897472751495282412976074148846190579872556542052408444412765752910897197570254763676384339731920816548544860052334086867647734922946989370338062755204920749407004240453851601850604092316414148698320141599227095033572162169153564262715145078011634497586083024503315610063473507293116804917276978624384202371219329417831462958306741371805514602538165189715560184139517630477945350918090754485054181667186315480211284410557068893344934953184093219866098542984326329927653407964715456432947550141216768950593005416987919728388114441683723781740356639293888751207975294308647860050216213159235169338637822571496758603016726617034836637759815898570639943124550327051767260535339981717348003684350286132528346984864425963356444155500027913330003226728296454034917947235698577636259639662622346256770852813499935164374298818353242517668543573348702802861575084052792954457840605258815809366094800686129880634425712010077270778378756966589829723054001651976433454816244274327670393453340094827492037651327101213574811598911969001116069396337605779149963176609978856646487810013994305554002893507959842479488368203485786957051115720313281109952139495884065812488130870236832350333298175829878899281272536150737853047871911677704749452018870716972464512682710203063680685443673704294659247615771156445246852079793458028761643202931870331650049488655363260903039093771946901216166832537353937677729357446013166704532413940615163098896390950453225190050361914065723731717199859111063815772908103506094333852835750661758944304598490904755364900134340680012126741289789195649907931819040232959319315177727029426092277770230720730135391122473577247995895295756969125162751830724481087981121133301335621018887332271133430425355833387047747721652657839225316986543726909485042383189254203235408367950481676618976604842648815537098196253282097647763315682955823914987100776613713589950136957135309595815340413536370441919752492678052250818220941348616471913242520335454671471906225203517612507565751041431298176722492443398551708736321440771838842481353190632694023784347723512056904379460236321969406066770813816087059432709442488526799791831923173570337477088108845738848786719161028832141157223831526657271101563278538261386753670207107083755696554693372884164178848662228507284592072370359607097069523229847944672716155286110282099877430885743682512272712081657426664852506126026562398711573418908401103310362186503175949365842582038119194979745062170638959245252830463045654793631048208275149214589476689069978292026988671704129879528906052570809494485853852256649065156727486897526274968063565610753181941634842977643010506433775462259824804638084809731317424247395424450696375665294100936942013712318955146854126213575423022189399333416878318164481602128457005780859459058736669562399995382097258190336754128771729606501585178217066930716313661699709128667485777138058862977237194037974089246646881810679733903409658153520185653254699153864823917674209765607465823793644377797725935399289842320361987560553695742894150080936102695328032194023508862021137225041089802328701661845144601654908192751163311732823006964752255098986813475879827346617226278380859561414214504253877110612133349175687016758793388357981352958276577219782333340830701816679712986039150352265420940647281330955105656051842725594979744312027284682454154149835886027029069692807456050229191555593389113020045186575519680580934365749082765217849659968074341263970679917307073021192431217208841426444233021888808568457470361543872966570180299563377580537777080196248297256672311778111982443413067832279773937169556760848047771075153144097369302427531385434876386040748423100427411424176253133237751824932825687680288449957094524729623879003901210199104119913967461035189786933889652975976168562918292457836329898344421463322053813446088597649956811347781372440897589531760011939109617251015863153866187967746604641561072787753804673253295721156336251991885460266227677676105121348898369357137998370853930174152724988378530923250133601048135179628757184997120810831529210336475303424500568748814539462895600340562699771735257420905005358717914993813933526876032730157114417039965604403265009028064696096914325013629609847886585429669909198222398526789600879901308976034652178567303842853183336287310287174034126178919979828553961488057018786739612503990241412506493617997718194468238799240704108524031803643556758856053525538758542208934630769654444464228123561717819520821260916658390828933543859739600045983347691379705314046474536267668640378021226265505643127368112082762515391477060406412419686614834218165453276038013081410712207624726972476676409764728222193481367058143048357773182986226844717266676687476284483859566307479047824048686143976826862672145778753363363445858931861797736744783488917008666577577737422273142492290375505323498890149463810674353033038662338710245510110157146831840952721796010485132623300189637593534018592292580952956483997014979359380473294784286699106983957907881931220265792968459963720412019559427547143611175014215415651040685274732248856036709510651523174662080361021794170040494116650597603732715952980431237039905181763529423715147106134036831291703701840035386354117875547399339139725951341603100686725167834750292629430502991291226092611073671200856723638899565018553252439341033814078747998322911791876964655615153653734707462575750479619029192470353093630433208840594115075617770061836333160114851049167287509881516137929335075795950051654368650303058431213262439593827985915681430858251406514368422025924336181847322694905697135965944025802225268593192954358790654504850994434911244803981801443188234904192547612652496605583522464913098371803622124262622680175445262739309933509036103607455062177631368315622492978163739939343353991240270135194470634229929731048565113394172149956246564747005338757980182777074825863673214948076134649607090633610818501552067262980660296916114488503693002148987319156371009565591277591208842926799910062098620558412178221528536039970001073611398671546783658471848950815034410327546439484431420974432493625692258101298324090546676882701085046245153551375324384556158665786221691293486010793648611137425294168475849507969098986398036013936994682993304364264212561046895031119346511401196510366293567105516328757139393772379812714747578843954275768584810892851555226593484542463146204705622880672355055866871315999018950966617790582905093619702455699794000427902401159645409085638244013639936584414505471063008041954011127318606205055265747464286854496719448466148328684063710203604674983370881886301176297000889260910340878382994617227181901425353475610246137040334418553635955598884838125865960291209594888044159884465024947415073128868442436406854043945033899018510916873707434717261016374014138177216390491891713751410696186880274486892420692732039832496467786259651593725775130067817257047116620092376143811265163237552255142105766303375944766689988898456319326287825348346663514903154195458939048918882210106655463174080610896843085560377011874379374212765340746636340613101179856315308917846091659714260741201453676120174719732952681020729514214722748473675628431149057900138278959041746131088664541680416439599958747126856398882914102596669925108776708512189947969057485713638523942851299828537354349428669279774209906592794558186813315440917431780554401681162583339803274031189175200021760893702511140687530000192864017834184167864026715184707012818887817231183151092477411654584400704482070243370722765057297887558718023564613018631362849445674649519525930743757219871941035998475634210888129867724949383493555724354852839299439576701456744875152431137332715977230529150156121395522206932282889267951504645534064010920843571341886358312388818908446533813890203670082598697284723521341461675894018096170174763527551414903254946322144400373996904012334266295789982276823248597259678800319235866259340503954972363634264892716171314496387509100843674140199899844645656465513256504329994715973720284497314551698108694380669213301402629005598082164815704654217645352881579028101752512428739755012797112178346499914236346538010566321398951979987564873661775684740301637065627723232104751201050821987946549626875844266268183926127984684064197604360819730485932435147494633932804391686272561881153871135718944079816312990888749560587717808770261391237546749263983408723401684933576065502817320919446941562039260457118485263234312820127702190573496784410970390921961947529132852007083156779094435992327471542755014390491585475758833691000234647399015831652953095680381990213437767289318923496919928506272564247308539155296799246626648407095210388229808229712431302815831366256876874271827786576879701797898583256391102809011646986776136506802734330419759808683269593525271284665845166357446159362078055943500300850875948502959217226730804903447789142493031381322391359774834967800140080348030999645021984526025946763267226979501742820756866793938499978682842303663097052090393240253703936287611209333127681816929098033736127904796718516569868897390318896160733547470195695475292993629926893197145293536792316645770058302277808414874335636934307449941923584712455689711864942158449353518420393813207543540253619164760451229628763788792953273634479286678386987212546137858908179290820963194762874041550225751976513533638516312272318291013163637209846586751911551816787446148795096724878499414773055924365148967506765382516138359833981340644085201633652808817814118413224909301063954344926429456535127704478843819924598622927728448966181248380366210590607048659646591717017694069027309348485090392925585104222105173355573301137318022405240674097892954150648704070897907106993660843431268189688651459356994517514305261638891371984725492656336306985715477104345551426848797552876254999993567467232375969373915637938990695631510722259559006027015188904150887811909481177036489077022899268750496845164988509715096615805988445455283708964343151604113888924446766197406434684281131207699128420902265233039322546193163519410946694242511990403692660931902675733210604635647193029487322337103044003213814700961878230810138780392974891084518563679440481277959974983023353962965126964724568942922357931661359904080034096544881734817869177083827539928365329717367966953129078315101791222699151983449223042434094220904238219942671826309637145535021748842326294180255861260740261116088093308199205617553070740985123357373570193506450768133261096465954586592734061445230489867451938009377902300830204077167788751952366656592993296154421101825904238883250847385986986783059850007774265049443892039895139532331727446819963230676278747464633748493747493746231185196573582143252948733464297795229121307271764804247116906485655787563995671313134079590316536020234337102610040363157765147547342046841367851735381512440935351518516722216923511550297514858446408294033526066194287781395270437659581560751060110209922438905296272750884898465999993192233230736808722894110717353606520947356741417609647616727889758067224320796030665838703232650422051831776430008111563743569931643254013893567014021120137295610447407994709894620809451588417471972064135632162746221138597224336466539834784445354401239827651656081303031082928994237953345282300907604815867505679360059136705059014270967205411689969595585892655307884530046335183227688866755604852106698187748536569044220722520177813412243680292731737222884871313251385270582333210206679868288188064667623413858008101325224056221573777898742249988333898935185238516205693960083175473523279096188005363274224972493613110567652573452701020896718858303958438557404893460134518828902382178646959087336030917287906365861932010701517286623502362198206766611882831836745912258012525050968305985478126955901999660082554456994920323875786522940787419870981502533412538448551604559373931946749243074052184562238203375247205979366828308435707582953191541715264986143054036755036112810858865111106489882051132360426588032460099522373887500059210257987709863195927172381318602243610044647653682231924123992311295191739437546481975373701450626839045113770602568794726972393626578080375856907613092020861519322404078278564370898943124418391566849025373155013362696019788440638941710228632341429866367995136864844911796841250448708814431963886305411573911335258358277418644240168817070298435901865124452797745051944320818559984105127322678984520623741943668494572360681064338618867932205539758407546554093395213364788967281504119342943509976897839543928663185733439669784360120247263410844124650717259819886915290590108945634368585162389034028687050820546371271794821197181702206079270970700009247580368898544572563106282189292572086222999182560222862410273820735146744206112643906139648021873289560317673652024924983772792070526375803514351237112637530849714739019415024470907732618056726114383283685510245477254174701673909991398288526332592356614122055979530140292704491166754707357179731070058948464049830973481534822630502384282857733151906582161996339933235831867994030989037308045223070498634463548122420582251314751987504662178784665421222003064264971667282145272947950132848211444201241270725897586040560603708078203558502482091764140132586150748207808048659174724497811252019106491571921566224347087065727366965110241280561307598320550647483388162430446658505935096579823908426410718785253389778071664084098190899377627596532013643486701861505811825460347568641160633719567918516147170859512723333347401172646666997776130377200731484178256110945742923949259037362653215631674949460971739042304589989206413454622268497019219817475154256382178728202429215197203153006719769979279682543341611758481513138358067283291226075062840323895588559227946805481432671571970422449240351647197620347829464104639116774556576032225880660600405429083343433102238470817121801605254431881130211723017723736515038648080641541893761902987561781843424498670928211399976471213724484636369898897134515688536323886412000568254120236298373012557201525290411821575943729001586104423487836931327191314483767004154653977087040836496493354242238515905445862781663207658094593352125208805175577305269571014213732838610415237348771555859842313057382074962368310118283181365551552257149619582101525353263723768055819300626431474219463792854610682920906003539426072357105714679109430385500291968710937035061287077763942989867190984302948734310519372029762065930487469672178839667206492354789634091588451824540321081510133089427607928868784366237078463403812143199289813792268310367899161414139526242318052567937193956936210603890607285413095453385756510937705190064254998936023564729722653134655424150209102326379940722193043093701187133951395696589899727936677321261672620159375668367652347323498985026250336761583089424726149848211536251864320251675056568138292685536901323089884915120043789298882138545955424056072056295472292553339679543955641120525547050374110991360516040172595342980945565567559184637247476202323489358541050723524840485897098983925149773410748500328751795840684698686976654286045660193152598391807799338167677491328218495466050468997035568212667582307534419081017164344803384972332913559253220476665643782660532062607084951770358318256179156031587584255351696601621225719997122740096287551532627382936543925833449207109253374979736092360583414748559509641285468939471556704412560091697000490974878726516536680949225607073834899943322574623149868618986594282100373197504449928665309950789924544207991748390153702131985954210773909971802617628527568346823033942097173739097754813553630341165077061777704762303850677077600051307639719302024160795157540170402990208242356000839548571926245873569433387241436353472038085302538274895621794623175557985017438623059921783464615450951253654277966545490794955138857140183666164165033618662065768858742787544428191086461353908923505660784208653898270277773976021718654187036108697591862436141611072988448806291606966940133710669501227334393967700857015417012300419815170779138907048153208959390731180744226447948197651913095153130003535339862709179987134162486916794329963846186300750113642088951445134954821851174776304530566471274201766360733114481647377852399358662759968578777535329151087469076107244989278646087503847910961230423432981195922214916839739131893391115439719911074425316124138133695437943302839316455735951677348660635809728046799645643326753667640052676038913612178547210359519446009168776422406740103698627819402031933603320360684089251930307149763096575478526444294533927198358346176774912390363833037933509738581136059012283502616726259209534621941540014710580395802810600213540531290457180548844715848507069536565823012489836791400587724141972373772903319380888040568150299804355331667401065128439471434464521506536898365970753458043813266905119497407244171847256640639134452212478750869422151344734509289920632151326887397462487461926677377971762500701179811205729302497037173418855049445537594498619227816936820586200979977249946816613361013271589508790358840627241516023867894611655077728347939462464368371739537714470636309426467664814299571402229729826310554358389344592162569124051406531971149044853177149771683481568457881515725798499629718183550660067689397177432036293905999340331989046595949573711101010130972398658095609973277191987592276887995173175414567776015550903279489240354164015617723996644575652285247738495480668411621993422030494542094269075616269017595406419961575455335501906285902264821462895252160206051120240961472566052679372718656725185854198425074359206574752813857843584826991867601310893417800153730789411124650173701889963830370728948219854064014406682255700234134640209579407368139243657835765293874951482048972230916905565312754160247893053384649226847273932749621422803996726647843544307985127271942978456812580374317886009474978324809843404316142438056005350811868225634708291671745919371398497006313559562669127796341907373177425685876204541219524597306172037907940061001871249449606696209626082266204120019309459286154748690443244043717604758945512987758152647902688406400166760290778713268792302624061663275733430051751880604676416010069542720786703051599014745732966224611849077244753525887571631978091828300893105585051696033196538184542922711010853742248689922034595627937581479558516913730366549369059213800375605420957260487150334130443389841115511031648852775516254283420066281442586661112268031077487799408388247482512737309695513930850560987732512143356740542140261511462105896561972684589713653723308579461113407053827340116049323108838209000792832802928331642881429179874661442740091266189794769846874627507644319288302666225121400774827379315596080222160244307355308816157588584152177331668015604207390192641519077857768149799912521547512954909355520013260831870250651668494169897065248818286316245547416596189537946458910564235008819128797881146934865809699515883354776568362319139781724492395006596109552669074944789139657233163567887549309283189858548264769254391552557827392520174486758907371754750904636096435052879147490267451517875918128605469981930030733760175449202727500054843603741758746855704713747650534707862773508838828401939727153261858056886143411549749892957416651052215751829356746143600668748334011488445549340323115877647753909279695247943402919785636250063904441539085977429776752393347814258791488199374328611968337128804761453321942584933055161347200118951883722443433062193466138264912974667797642792313831482661630933476223674347898321335070853561633439080804817860624109569997655376690170095610453244244850826499467581597646670787104955955719472289279789369717075025358878537078125043941072005717416684410735526191640601699763092687432255544130397977681653492031732100890988864831303367512419945918799749789775845867242481965819777553134329122876757703521057708461851297600078653309649224019863618552307472892038030175821392751552792102034410800304317045125590362569495064154162263707950786482511803836923940740691464621037519894953918831206252132331390361408421170956808644802606422953513673016398435045358744573320155860304479944415305567167199539235756825414622403086035122387328709441718948169565350540533275549977252186673079339936463083053706209636147756739305764045146712985527025513106805116525068077761194287350210018894904654000608722062121428016999063820388002216292780365187764154512339536887778002421306454670591077262484804566984815387062265338080459517701685107725644420327957982044613034342741368066061889561602050218585416309417147713937179829050499989714127378769867974573266758147570682197844567396396564171242066727983142333115441665637245834730502634650664686805388647251353762700841629602039135499426461921671292926074759616894289669816665668033533847060638289823071877802256508900319713286676273262987961318020426305865302813045286094835376646222718059876195363454593740899101485072976817696879929578687443112878383985598244707575637631288005503321610725389896708292274677625359133088252162535626116529243371425118510208445573990002663652894729268090414453338850309522373167885434939182059069011440047284618680860478465056634643880678528140621339579045050997035442487612741005365734739517287553755623430417569370827264959606165332028614211274872197309938077087331194101365833568404451008979945104242241611319884380647484739883014616428468966354361285849984147285366244972699164094986160741097253197425846636820524945627333116731101447005704012800557217420528285054893349478733056767481160034687844758781265099007921556922490002801067312295326312981840055643145906940232426580541170289646886600384044319432165768107914832643046798436169390071363029057596618813457916985118668306444665244553645985884218413675955044720212804377051465324484578165161618742427650338470403534552423583122134535374514927710340358079520518649529094204294074710483291040590704008644801859361277658747509756832244273025169906345920130660518427239188151278908275924028111579229397029838931181056707281491015017751244229435556103433883870031579624089772171373678773779817891866436080477238201867880306293954922096732430807507702841512017385179354385906921975367271019310755679117312130538966777305929128803526153707306487799870480643789624130153433063505744821049079936918512190801986582048629342737309466489732486277551565077691346093421497362928251868873733341156044374872387069175683551091398748054075756540772103356485783923823933802679979633240369616761482505039497135002401294887333576298396587369661469245554605783762295549069141039570000304608594981193778589245399253470164250899690529397913406703224904397495169228808766587109114459123964548072113086197217504706816252531175641424722442929139943684803425594654519428242253508316678573195873338128202162115674595011421140012513298542320137553560270600219747248813599299449246166607904998126725914453400579301029989303308341196347185012022672818895075653284022447198151754675357522467985470612710695512626178634643498096468099880875539817193032038229149126699658968601025990030160838719349859993474187189706567798484592192115577756684951765118776671327085175034441241721292762846234626551519281875794034497747837748108367971520580743143976496590902227079702903385395720554034886627059333940212477910697452311399141475453274823706617269027147164802011626854654297150939328523360603010928434941532153010852546719554391738656462018617405570506640982724141157924580116245800971382796155337772086018779403235656710430712188125657501829140351717119088889148173249489776511942326386873324805293724002794580706546069661148675000444543364560193834792261838428195172258591994435425356174176749132826026330189287047999542355169347755879742591318907205518216400043492435760113066795349081524712266426723711555592359997477780879313027767542111747869960635717698099008315352285048953324941413453816801584877120662589775032400922557049853047842734212983184422633315557308121051592509359767091416077210658730677185079201290446224634260151135117331586413639965029950125476159538777957932256554517765107512221414970831769976605600171163598666877659380989744485969664863443959333241239501334854269203164993253578990177839126607471027428964762069641845511385449634539212572854179162167473548017328584326969489172652969398521638652833388989517017327276667621175714014160053438825018575596875564591164334848193408984131221611255728537261017962650606171461130789946248846444815499284518004977845681725238186543456744343818983058996272825232684408574692553095841238856607212151167567024947982058724999607842391275868918965862380602524724054489940283205345533223107926311691935029991764729797619877821798683022257802010857211589111069394091462738850042065625796277255962101005411441400181794813854421118268088372424919781361300125318919061184017207718915465246061916354289797489312882661046827887802128594411165787816160828136678390241700850594455169362070314351510453931615982617646002361011939408641997149690928479601977844684644983678698035288435723344791193081949119059936840229182029069411984358200589455710677244525626330218528766920666366408771598831399823249570331712034151160531191804316800787708998233605016348038030616332906690110990785452930269307762606046456946552553827943860527442476293349786019122646107333339090476425220330129194896195304418137300775446608174149067811553367380663790400440790852477515770995129288566085453415731113540873495623648327958165684762570421470112048925932984307187623830644251059788332789215925876255105243551704393853190185368322223330913549574366255267768284315248425578032908623031901153950125270698864291843830474667830527410512627711424403509682129301056560642198742394873115670692810071640335940023618539586640007314600995982505098431497700300422323974528513074817325546849233881493830810510340775409670479513551505108399259181385031951589195282598105111808334693821062028404314377467253691349570711691057623592002236051091589785056388635471787457402917125212676132696825412355229283225052890978136498068141387216520305092070278824358911150333089269635771423249496227983101651011025915287719278463614035417310833879038163670010731239668962841008367148174401106884606102918575090570501391593631563558888020808227051136546650750364862321052920972549472980923130605184526845031948031283053354152541262450307104558211167413159178226204193108286276767305013180347617954298556856237585985139444580595855902911431312931889679478543697073654718616596461799048975583978161053289576735409265864453914122212641209536489069944478720151349712390425268715256306983868104379974973650375256172588195906367638417016121693718562350551120356954559186045371620752391748260482854294189232975050848852132895520904174393476600576716115381423269910998885177433260229813999137781162592937900585990238121777464637107339167309543957892935276084103279197800763298621609642000210763323062911464582615839971831682296356383254650848454392750361017078002013417253980149503651313774630941404376756503462563861183875966359244405456243413179381538391727578034414983887680930603927257969632211708002273324842115889263466644460345079567877706762376393750876914791954781758330503165275587716081928766576140981764216305150817824009183292477878616212856107619502486072849463129663203747331973054013374457067695480040041008308581006525094886782053536140442488790125765736233863295516476599917664493422851718563130882280589511948251810112246223715375635792259860002021304285402768020421586442079226968461121041792291348596400877500181372057771736722739681175906651286295697734845754475212963155139109419444279198964850653214114970485989414315981351720206164965036266396642672526392744492120664983491186818210343214456393897729818893487177075676479290653630434690657213632427421594524770869028439222663209632780060427278629537762899731610761190473065251589222431228939680544695199490705926458477653311316193501199555154176230826412253846901740775315207136352469437203201064632614551871632670667156405592994371678095358647662730102929533575378935235319035584067214600889478582160103716541982859467525101231311127319751297205744619697709052076464357047424067766449520576473385578475782250964343970717967949647581526089153375387457722203963950249204988518809367701064029441358000395191274176184208272394291520447766892486545643995048384055024448159227694310705307247678100223095198361722350526235166585060919432318503071730016001058706992487561656622024776269186674037779436832500443152950593853678588113318747695377738433730108769036377396361409230922596636079532317338107616099233253938454383676288999837372011781010519054262774819129264401372803926577122814473023633193872254675909010643153801323580227942721980980258957350778507113127426209925320201747603952196726267240967849405151375262604481867076566479358636896588948111959336518232734085104844903965558539395887681532326091042590160139822626467402315157109422542198196336509537780826279115510609325435864900661316993505732791683293859878140567923799964992740468688563797995966729896094955225675886857686623153505563307237536333483538979349088153323524044180166234464560904326397487685479805943424361441847206401176615468217648640847415710551417642088912277114655294868359650377559788943645640354547565612803807056736937824389362610054005201638746654832597045249546797479936874304378848782514863099929341094608566007091569117992422643309129624329311577399112594889375424153980754684774192689006928355758372153033313296947796556814243364080996224505824156971335064701843108426688911394510639608200661433282448785117570177647052787626730098736116224772327958250207856538943615758216848210164094708087669929676585419825073819735286911048366700483180068486806532556930044690025664067195989640489532196699579104257756716039663676983794207177332321120194669046744230236622060762386363355045481927128363317022576559943255899877799056992426609295937589894063382165973337055618620201869008225492508441145861665709799907474732882152388425343120421581289579081693961440898433747718458266802679986419942297424919055011293468188856079740292241589454011936304708843376532729558534630915584880009352818905814627684971565691205226140722588482206637615365299154848415493457825520447016397931072540362829396010592450303603223864581519557330286807929755840049997726812450921473412105798634156489068335872640413142545621822205126742336662714425610976310353267726844944140378172915952409264390526100939072671586378089028695177761638485257655668516165026764918351490612984353831489963633941627193282379722768579979463705193427949565965096741044675331991430245852359979232313522857613991622220396526951744735806024246922335422413612508796497531651501008247572251525785832016861350672674490312409143233125235716509913376699075794804400141113936270208474072395607357210963578287816020933798867605482343532135492236936589845550222628588207428669761196916240368416171121471938008331859121509325278595067595772985843560362890614896047093301711782371944271894444161739966464954369142184719437903039957094045641877289363763381439601263916484067994570472298578803687028523016605212428312245156106838435508426932903201012898364276006502176417537155976271282852552223794867172773150414918038138681888967159383697335138872348988227876296386074875496474963014541748507592161352153758784328087599579421443803395447102248059606028557715722214470208267693629410581120115392723761274773993491340887918260917221687836129044929998361539019647569713374455527066559297364291300947290617518477069369835530126096776865040517212752382618047660059919080114853881125565178969601754342098778580231715660540089443325721415581334160294151428546707617175741575174537818311216116294121536469644849163214646346343045971392750718141661920062976529193999711006047910102029767166914539576362340128249986613578568296831030257822507880917145813182239896585950819229527549169128844692551159530962234746911801795558688995059792980696535848068396953299044481580605643237023241574394278262400319917632121706916986582501881570413154479265337703137985246304781021877885404073022253912489554960341501803543888139515350346081656554303450633568926394861260496630642066784562982850288521864804031605554675984887575530168224541725426052477073137859547373831003518381903271152674412102882648098722234652926768761147028559136682587341469398597611118537235790955400700117944519386425121621293986267976237506637031307684635455087874787843571443676111870634190898410509290195163598415471579469589185719372683210099010344986254861873560003591056124049463192018591682111261465284847748922884982457317073502567399881597785460644660701425612529264085323088003900133498290952396398535082004601730462798779757951109829683314727536300598135530509301476387598159636412222197871340687276739354723862433993244841692989861553806811073724526747692067711384580958669992510817469690981635769005480806646755911605754368472297873385085722816516979701714630451424537610285243940078972744144095381202743975417394089509431472389573529199835731965333142649960361522632904788112157523059062897206912003241251956801846827059835639954276925994929828991484796290035586247090163801458028373280832852565099624011812213113064414598928801985802162859679281338141632158054550963099475835551978411009280389899229200321418080206146200714855580941857037851457470289781057901908935903775394321587415411222549230395066558491836825103513238751893288501018581791267483399493465158251557171128095496722256039552329156020174648711551023719036916929120168617615504939614225599427976419199754766118894700254034940807997369876309027632284321837507053988559066760773267807916407800399561887057384074419251527827647529939746868945258319690447172153417273163198450934437427924763946902841519311114657158389642124423404125270516359469433418145143525240148281946053841873733040260540934294223658702928062203732425552504122186766447812717708114458426882561834408986581760937404008164353095122973674265541265632202512495617895556216764776362074692600031603589160385612295784936767081881974586420514678617814702558630277087529760973894677339733410326988523718136717011348806020918401811982588612639205597576237074089707636283786422253007264594219432013998831510190457034699108358297860988344949802797406770509244595872573384249446207681521041600582166664704289541297169304700515058452742779960184286286162044589615796715710303560009595692911876440160318477308214854073964766730937909997359886053779348099384340128983363351804220542042730199954130093552954945979125372785621254100432671717132210555485916566911766173258719740132841500891625710431343978850653210875373203084546651390516579777384504874322226104122192655498039713889888642968822644823302207955497137398694511677581750157020424934653454688988015975100988263427274409030504664957096000711272152568047496016315040090826529498822799263246340185662974250883572070494313078887766827812043458011655696653571681380906984312053745222220061127710326949737156404746445836345899831351107607400877065063508849453893990430806066576919890716973641383185290574534007574247351067832863934621313431105553005801687849527033028656991102422736737593163368647726620015908407005676390364240235806801659052361894545401613855741243793520035676431805558737657226078407648128482688733534703946228896070354739027592705370343137168934912684540124219160962633605869613618545071547316463579628914328919611526649285714092897915299728576611691847610163561575452185149024015997219644582831284626346311589783523633243213783575050350322896029811691734220656527962477357028715499700030842181986707764834341935630092992829522659375846611173351066739079190097762324813020286793968396565357413014254210113095485202036917097078385052639416052169724816726244993304275363641626529208480472745664204794698644416973470892482207062349801775572488244171702751706823011924927135372494098091182192792520598522021332940207641639527719930934028541073070812284487805466494836223453751372032261364493221769673688588225953317227294379215428940110145799302554739085013679331962547854876022275183796553960227687836826377346560436066715421296703101996018138731028893874168448343188819686479427329544635621073070451961026242007807001445799576164294841710330053719599589947738203858060878613759282979516231330850800733428723727055698933409191827213923894239959286620576656374700307321990417127577326017573670956183388111561358802379060875773594749068054136567478682401007283503333408544783871809635821750332468215201975937384442696919285365689356703958117326350824780991322536264679185040827520424735007307430905898913300358602873647046201610249097366222260898269924142892184150881403466445826180361209481207728985886893673006002610262370995435831551190890476483758627721072910409499649920883305330061022075274912513597160552723289938316635794154581934449711452620011612079528962130854569747367820450598160393805779607626154142945564881563576434169761631043438664812286311223807242466961803878356653991805311205656889958294766002250513698047499582216962056561384597990487779438895077477462792229040731522512502292173648281627328688793490602441005459330683108020992051896199699194482502498428626456178641119377771855989667497856802892984442730752865178955109817221136644871940850417067697247121302574254901865674965370575432647735871930309096840223528087935317715721772084280421559898840060518871405962258065220294477624136829112111149319906550420162784590811065788495064345062411894215699999105035601088798584201101778426360310845302302925334326643868063184290120570099823799895776754154389948769495823966449999043807973391918091450748895122633014175472800659405602622099676738810421813074930023555890416615003434071391936738771110185704319822691118358001169997511465702514998528812014235556547548142502766764866811698569027272687496057049656323499679859417032798649415666641195491094451081357750036141851163219457252256127435532639867515841091449396712696257638798472318450830658356449138099727109701132697120701453982924059728962122450207902740213019055021430322745154305717444864102362521332704749109306448855882672549476469282552883167656103610802158138123036040888204408398381228276598562296648755611727378466550139546835490263221523312555090856595006102985439561139065024931603529684673358235022450750280353887746227552720557373802931189289978836989153471423143001858636647321162137897470385239620984276893320506882395287445733527354226467987227074616262081986813022027453096936742569597801623213253782776450404718487867891697737579610851326125885781634028905505106048496121403807496568944312824542748236760418071685883124448504352983627754883433595827719451927124767874406028854152827476585374282516562095558632626530317612461442001099087060653037730252254870051936356267375607285174526069018094857850529504745908004166334430220321045381619438732260905972836523622836388085107057571347049630087978220574293282575027929372352396401721797626495992476548079934674534990385612007419212465682145537928722070364306523881488973185256368911450531643776233507049560371034038941070584121907157847010154393936349189530337863198759935876581028239108500905011961772578762596123004306466506663666821332363498411366327123891586455916385474394372229003482737588104929527091493008346110394069846200135507785061241583263264441482518096394735228644547856098868835214762856467952475174893487362005161377333740924011043398804876054889706993302481104577409893707478258712947240188941551591448846498673676074877147749695551483144220618415497730227063558349262900820647843372469347139439415420860016370214083646998297299003326995821987885849500264298418946550304407037103685491070365477663851853356507409925080980958699822478191366907925956111537742251338033544519992601575319882601665173670776468106841615661641272817207363733296952769116668609215043731886287197268104520264396302040919972887300508018717949644704386413346064270601956429586764540961292757560487355787156758849521604575737095329350149966895314446701251102428528787985605772222004836138162411567383267604176944777855057592965341296239549869232434515552385174475585905188555283053501478871395834847259869536969734833541263756966747638876387373092127105916981808218414964125539402606003369715599235988396419425971381970276021909935386194581003509368770279235470497906095470222532607429462008056567010505770693243342479413306428336914027819420687965599209154430871604766490978434508249764260794991095144565171057682706243882361017341450553787668140533731826105102452261751279388881728674361630405641654538303941488801158762114009267807934434357499662478250971798404098683784655807320705457148420536489984719999740020685718137068552308642977861323809958805198632542514845230377066041452548040768827395379577486092387982204110190727291288363995321042603892261496811657248575876957625839211298398403215926453691802093490828888646071135217313577315523666029112530230425355540065028936743599530659495288648054902208033249034979009341120172887198280667992116656790428649885745050456022453512687912980290662211463954879328614259010172796762576788208437349622816591130362223025814915819828002444601971245178871670787378237763066699948399853349376356738453908077115308192556801773393696255881851725155120362158035144535717617255000064930131739798049374055745408277582333944489512974634950760890940441464621307622501444039216188148159241443809346546917147818856334553034726035885518581797842536608722640070803422797278691888544562433487508041828315657262086887721926534037294353466107249473554582216762515981250038296548728468146846593318370873741238607084915326823716086394977068754892498015502400645623349566898091459413346043661598856486215435255579236031132217471462827496060876802771900978359237968431152997684211021459074875998639844942913611951784480290764754643200948124218862627653748612693332958295288191591610448079078414038821391731510001816143613046871438799369577734894880888355220781618882175054319453810628871739954676041031814620416812029067031102783189049070113486731575172099213525048321748509222841351896442670913034819061992961212455227686739802666111350939258352642748636711504150646562779159643008384302579701183949230131284296217489501121364475801853163825987684188169129553894183042220824184150179079519993789290135105543803079524839337764563946861200749744293746171829214387194584072487670271079537092332668181194138442278517825382520644493514460111217864562703606437885550081894117504418936815553689480147344132723583482767757231714965246524087746381618626225083492228503660050056843224236449377238143782186424961569094939289952198905300949134344776117660745009984338182940651537516189659463573610496706125007832107361056928054963510069075729788561129739839741426092479767646394525966682053749661271444286170817005553467758053818738265925938709907591096720134024788455041642351133421369217322057551902248222073992983878193919144234638506153374957084674722369138633847754017042802843906753097760013652067628785079901127580465274031552182328819064508823082714783180531803257040617093900622643656031467280116170429551774990492671742594016760337039653844793223697463931727099316009762940301615687050356113534337991626452544774589725214452585667368904273065713558353520376030139989079853291336966635723037443197541998692556697982367789057711646736453431358565197092155401559238609753086547601064072733392614484326011908228242222434662090663003146318057273009122210965646964432942364425125857036076069333750989940772757962437215058452416077609805850161034923971675860786989332586517830569029718818429810812170740100419651605134725860612379901612096696185465655825111814992329913795205031562850441070891622514352402757687781764010200426053704487503133286762578231509231131013911742705280758312916930947897215378791652456995957375466686538714845287359977271871263058126261246155076129713204654821351871439130957949604593406782693260117929610316976908759750354924467177335691655648314002998950092093512348235895536523906726676959024723076744598202955611803941867760356877523770052619299809733503010922372098669535036722617990168554041586317366921812037176872435717293184507406751417777585892440514824466439170514301307465022631896611870113737477709583310062760290068181788661953480330818504552953822206190100695853402164463839530115327109645749436763494399315661585753866482902917353189122880322419331998779218380662829742518668286810749191697575612231085923226055857351143077955757399825312055287655230211319770337435927328845995397208238102680567735381642929892417476513102305632065307890345727646871906264730702604989339343409966069966533887757398829223518565814970292469665213557551183803918482115800375296087734845036543013970449220297737936375600019347900851581361701394338250226519741039554519256295484117875469126578613042979721232445569854183266064630407164667958334328018058973952844086431496513368737495677186937152785209129583055192324669059931182476704402880770018913383265085707674417040508634315389290929504517410069952143041415408982320399524830605955336109205864913358551254960360583996432657325092496888197262900641666892340120739549169202313484448056685919491130977498922666882189917477846635950897451857132993461122287214248591464836357617701849647329780214776180557894576681876634292915412420108605407345394714350202328828905384664682163399804237634221038114730381039360505060378721619403070767246652087746140952858895668382273687537639674046534394637909933564692909015360920061222868110041692733076760119852751530175234025125054711786063634614894649617053805317528178889601435128807043541623678245354752036341625041404126198724193125650338716757288304402148727984321075180494480076284836932076768538695556672297820061358658190754020207979425681538038474334600728897324171206119529714489431709935635083026631116861145350141401071430076884318672417603304229881601154170857812038888407493861342013400541874781295399348190918070443519907190132165403434865575654297674684861171692559632242612573562021291464482962539620132940175208419903428779199943797304564645423257718382164602615264055296044864129911081876261966511996375105913655948383467836149199062350182061141469030907469266414278051114222435166936117650336785383508421525652575568744517772833075766663737774440017356582014914996178565610942541012820685044624468630930487100414009672075318480770130398265047852303099699280596484395362896416427536488492723280429072503684298935650485409501053844616655640956882369925555543374622654463688878243738461854720491962238298281677176760730104073700535592844902941393187098860559026088865192694269902566282354574358058067881277221095426673901595709016315995992074898787982591092235233237831692173137355607894942538662656255329903057749352669987896279862713812990105096784686762759579328189373404448078595317764624977558702615257752466274023832514468821038853544014841537769527872729534500011782960370099404718394384774375820004599458701206410035836666309623382150194727863017218213485362296919479092255540922466775329396185202764072870988922199581024153531505818814589537307601052963313050182776733149155674886540691266309337002497891506349950165633902944278594293036312390151966786209055243928461241532183925246675759919907420419433718007900507863776393965517913927021128712026677737543548222112658907874603255662406693334431078732197555346133634399526729845349303991804624635059434673713899990201291052875614389112247567318424890775631851340832224025855108118184950915471700474344911308084427682583341266295121488130997381579995903590573544325691708462985118359628629954665785560726324617575765936634685552422350509483049363523856109191094913696543721475559062713356788218112792259741449092800870892103831506559435763186162194841966994554706455246267424966281308900219584870789772909101073422684950312595666095117298516155947038160616240503459550888277393840858196763164412108898171770641645563596743056831088353509536987589935504926358537557204290967081313297465288446242696754889279308178715880797238649143518112374615023390283803910071769020462991708104267149685810962809060749147933949907272429553218884558699361718824835205644970360263671804888331293895934719532094280340788517818246901223779866572436013721494605644899536659096374829415788475469914372010799944696027926738582386674607887173363702200718189636187170278150603117537749423604473712902898374796068573156904739560545260975332057225174428518645928171417601514022087545577973109036564893840649562651325906308219704160880931588983479974810499566167583469061199575394198429110739342112791272686467962863339944402771845165769653556654600894492513777742142131063651076092139989918329220755823415101630208653142242585200572317318913809292805797247215644660941804855707802502743679309883744004264262603115384701290634213914082698810571227126126812296061569223640129144356870222296537273391808988485935076299868024435267287727177104788239365154379758008499112683294231018394199048785930938456861646858956857813759127561963396238460794198225253458956982238112826677963975268974222850855073764221156660017953290630933735733686179215462897113507003728633688723180926563858494000988157475763072899292000299171680828565721945703603180202432557784869923753815623756772731060808154614852298871753101635739235675021214314500618204082124990865451944126305198018976135858255407895268514431602226963317470413467734243595273684424042660418251174684446268254641630432776006095820647359014552023780137014851892721012841624956036012824394846987664120480238120244843694824890212170419933080192816436581030882488359986303467182392528939086090218109737890502106860145936629725430625836531766988388475833486923648641530696536665538172662402508921250545767687460684668367543030356974153461660764521662090892902812656006911856929080874794588157593152416400511534871569418735099570910279297442911620206966643898643634929983299649116110543747789589726394363662365950261781996178218144345485376510866209857435351715690949466202749494945814377618731471835029879914300784410795449979621831673317633198878784732029834004901188441931017352102815130900061186910234796753295010999349972342680283576539512535145933304620793403673337098148280234927306141883736276721129733006044405149183287383243529737698613419513577598469080424393090151244980370979463338627207496558953717285888394108279570958124438767942713439417777694416480701824774774099911368117091479613033243498474849014250556873430526040754250374223524001240247826441178979029108384949656952140176412489916535126679012166935238504213103248031408732232202346601997449997644114916366602696940300953969039921917362467731439471776174932918213910655558818926232569289390031157825946762192718746231531490490220701592454412132266662769249815965991123097691038917497584646899033025044733479419744380446401694169414907404471562135244394724562432745154517735587693333996072422018665877012374881210795104262160092662878336999710878714912506720478193392635680011482481834279773233486516416750800216585538507936182738204623908028235291886630675433668155030689826966825697388505131224920372123486623543456687436272503057987314422633530993657819828721638874789170236899670208283299403087582037336813531873788110942489149318853458698827293105309302402280190474541621654529812243930326234881213189128235311367059507336610110347243651701696358783722931669568396248998506513733566681566904551842397251746295792619616672552924356408579730161394392775105523601487735387129216457006577551199741666578101888380709144367451198346837109626170091995166580592222089146460544716026693725255721249755093994230121896505339410724907558453584988316835681591417922761767234335200099783205735930028654265543647286559011054599504306925409990881888373935491198160783862715990022558007726327924036676547918631984532623649547216016059919113741414179135876134457729586550462821800075915522104051672931811001731683852078440839197491973332388791491395907481201170951076238558368975882339489310098068335783367469567394207368104020053864171817766526373130127833378398491350749065137867892151805847854274635947916117861511077543207774476125591114983827968377133214548571910174412648264121165142993186815624210576856227521732053924993781251530007929700917767273041536769366069874310140538333320872994879269853086708311736696226119654228999417120261157004123789692089496247282459015184726143194394164598715554067593311704632434019671734323677008866545694384803144198375582679860446753595119442835490752184280034788851825778297679912746690727318871289299999654635248941846889704773166696479220550220950570148236213930547421802891943990523939112388400897420897067205322492933073963317261713664712642840261243372141603874312980409491614562239412190771013359345353656492043143896943460448370260156060145498523670577219111566522064741693656036026466812347689478533486344847500570945978628835492737753102570790082381625413691849108323134937264757897649441725280551876158595734545224260408904132009439557536913003949901051834795751577877721747567188521532275628755996646473192032944828827213849446739680298745539788401785667132073232910575756641313418065290263977496122032869021680289918892610636639838779451779999939425955852837321564422666206218052125723091658364838445457360632691319474633851610979049083347667041533818966306464348445476002182722673866172937226328434790672875744332880773472306162976530028282159534162766112618920465290121063694117732336072973395581176472804954940379789020392279035921904641183723708401296418339150055365503584703987177551983736142698416639072928308464824484753622976212728103825656848783926865470924184739472688842963328787696124699618146950267234357928408367850589959147004481835796230519818729963937883962384207866317330365302364118061874310252010525595871837344516769146332331066244040021681300508018585727650497857974578254369260791701812249695217140808568372937314421465802452069088115052962057122348952881240122189766978172273004523448907928625547397303113496777002339529381669005219433924943462426144655456663165823875130584474616324027063967421782457735513681551230738602855064408082434798183748050131495701558160401932841711266904290733634604289921712566518867169841269364313911646395172299497313541877863056564856827005000115859887674871842544904837362227289035442740092800070330645084619716567639854526709386638073744999442369028134432060632407710531073147409398515808530538691524082196528948211397714646620136531504547839309092556652246551782303158674199550990611556473909922766765390572955556562059085362527037894305276797086136268549019667340873852640863137162475051552816772610777676087599517133820746131714896691824485661162568367964117067078321272281929424457856438824332767712147843046235782900108278534996652402358165369596452286218338355654379669476773877293400081223907117807822109732959931895624895501221611396782449995619644774963513526923728209713069742712126699736916764205745139631888081936610543841635241970518931017645188890762123897555008004691296775425048668126679960139541952857462512931814975033031924985731454885077969790636155084066377171382969825666306482203167974936140249542749490663096966458285862840632373133109572597962724510741005962416912351695836729035272677621556216011437157288682116107343186399650420822480016627949897637959656747658760531678229628985217729605951820593608894628905320482974637709667185962067505346182155498395677926472068429836649828979100036531518716457316176736728402329218363215276295442389912932469959592611021628056998425913763909707481644554653822918625083123536621944126816656733466129369183300101521930149373101952218933474437590927337286798583422436493683660599934907052488248900920312455015315930871637577087207891165492052676933557533238266001976285698308862326390308253232321538735815354531196239526130309651621316873341808366221757857850508855318739212632140907779746007754696367775572476533171081721212263796533741916870867466778238710290734361630483270750195809798807901094157897088541341106377397135801908651181254958175417142775081870806986750886409009647647629185035292497894200561201912475399068259538481839041603082354838906687537579777011550809219987317246486145628286622337859903802825927350166707048443405220855479123920861472508810903098280455029738127620028460625093995997407468755923011579202297879578963639868228622190519100566772174271309772015741290760631206067933909511403537945003595487249556679416780513636499081985106988558248002737123048312576178275892881045148814223560514388901372434521874582531206143060743075158924248245064729166836323999809292840216616733973642074282565679640388703177299032503051887462238968361253910255724786151638705744045227710240265324039398987583552750745278683451214612198387823994381792820059674859566264678907245511008769338032377159788315999837631880272460259027224919960975987523247983656364391740883340697283233603432383168718320361619764246132075465741897924785020566882587363314803370349184204344114648988106282847246044788693268496084457716069999135844552019792711050920535057369579505122981272150092489222734341749994003706360682817555022843955155605887205739658186043347977254605051801728199696079191922192423210954047866327885332421231181711193080398796985080388691059070749070248522936338282704002660846534596453659967565872606935367904204836552876917399848530079178180343516022102451853677275107437524878961516152848038833156629891559903243564463911482969914059097448636297409285386747288006724107077585845960490446812551016131229332382711079752664249819457741363194960680910263149281734738547463188509960921667075155322789435177557191986720076920861030818341539742529300396687459371723195448591004601108091301372855393108209999775764765942020800450478800108899342339714206877507407308197346446908817676091595686977475327013148847757231744261130233441881317051696426939501689542894719574319952846767064762032375320722925745615346549527635053358754596181373069431636817049579953161146410976866504763554039837696754165830672465402221539051949311454548750611405972873908547171237296069498478844646273582750486946907891800326854365181302947147316194465412243759966230179703809289391252778333843630758944579548779317903701326187542731473046201763030639226588759463337387720527219334703207374190424909536353307367857288480018616374410191501446477654134721105157235951116499987283686791320510130415454846249878761704192217570628577271094883579451511885720305554793546345884297266019808485761922862584232270677650078812762981164793557433327911613259558691815766634740533871818625843977755772456054938390869755101707266774936456268140947167494126368877429428924185319119340036195052213619905611113885379322777414322548624525505928253604666385296731807533497266325658395278100146038495598007427466220969519729819904664558978484967603633681369142818725043488958545285720968474074253343130907911270983683715542017135299315903566360327762109164004471491549830138378685597700888619215625567798575277181357385775749672962564021356553138587118054430638680557706227917006506750938817470040313017859899135190138490394631659226409442201153038755576810586623407427241649671107774995206111506035091463784832499516417175945425393715890754519152266085478320753087469505499539812363574621415699432851022458827397075665577343203110800884334030152449605751001667139235723771267562752793927851080476340465994819511234088919287358105652590892435245053808366111036352278490495039384492544211156241235341385131748725708559653564914727996361030824719072631654019598115320910054621639665990896100730277902195614760809332745185723861188059410196988012291159839500032949591616931850588193048846840836809117174536872257712705877964975109018692132668016393327959556458336154729341934689001413724186750450666457225607009878451403401603354947671251530840370371272137701479819474637388008974454497762548081473136484554203328692722910105243810832432850443163423109152424253157660889805182380813652626964583818497298610156013339039546697632565169757464683677957962944722499497647088207888280386757464122896794695883242577896259475541300025900633034291101312835395227991708299645960568261207253842796856400437184835274817620288592897934959524200167477285377077334952758368783998455324542908943692276708919997962063193948018455686451282842338491536306901237205594938036800875473499005369203826148932269242737013404416519339183617853677849913061337619323338973373202327070724427703513156466256143558622233052391605792143605331333196759120818960025976598783054024925312369501088118168603128462656618392542710194617427219714818678059786209995154871585208678582722771571886138562118261271966043160650730594021142383312118512346646631085325282091786123043096786550000608876615311887800552988313120972116026368406479148186335618765061075957724171788322579780547698230717716916034863338258169820687142373061090033064044746427219342509950825763514858742602340632631604875237306430227962250309617929398217148057635828659177245554017761855273497442160483445170941079566279765472733789957680933707900954621900235854507139457597927627805035567834670362254103723447006796020113010768636638655771978597296609386975515582324871905850888150088071820738198630509539062644435365081715050718634715521390519428533546793753461867266347175341223185676445200626404370119795229794853535397706160297859687097121867606700438775481592907032913346622804804938705473895895285466281260528874491188568198322284559141553645975101973813004219714449438817477243291814149756223700230112862009653872375545751555016825534802967669475900562171246322779585519551461562271930765195653255640735304255439765881902805469672090362630035096875334219215486731537207104629587010207742128251669251928418273931741412840365892745597632316521103368551921708215962319624283426543838122182584813191871645506460486969038340503002746895777795861381149967456373922225286702659180991731190280119363412985985013433156715934507046162657004753897772530225488686421497932462818394100194909914396466697248161860798983508229815347720835732841376036607396853677325954882959512592358781732907870246914216808144134146777708487671702693379347787553927614392255866804604928245915246502535132961247314922465582042201628807975642611258648068862205358475625760263692719624160954441858941334056046235104133084195292419196043414176252263845015691368055007456570135856582849410569728077610858565900280264443786272844521069438194589096880267497005297715685196691218201836726276272623481261766162825783111349516759525325436228030392321229259491910673955613035980335019287108193818568489465930137557186175305187932794977734438601192464615276935371559243161466385841982980124171049663659797561673400474014289220217568757188153206071305329695239736554957844986964254818174763280479037273974592159396823917852658068067807135956629720704186193442241836161181098182481223503898075389279601317233532014995184538915193190587928211771892083988235971177207271519994443022641426210860135990220328044113014241875927981233137971498680387145562634850680115062149791676113742094475894888249760274667905550815200456507373962512583961295718666408884923674838435468423908399973324389963048511233525003881410506289526703666654654685607639647838061985771780455466840958954174267865137600713619697280363952842718872971118132893489095597535581705585118124427461653608728309734563136013332823238281198532164079796305686511103870607084365639174550899794934177831881924304097023091951114629013901775025765137379328510125157078476007436804991145411515000166715294599919715169936113353302643283065491145793433569342153051117242819699256091109173588517247948335580028560880524515669738949259940692769779754128941826079607854014932771675469841913435689756359460414104035075431246469444172291579685879704165209112415447879622045332553300238077031199126699729484777264827278408514763670431701669849974768602892571413608878539540981416519240825669793084129492386588542116218521339415482829943552708072536994474729386408500691394362549084020631240447194763920595038787483582860670573651241060430292821648374812380225945511277276159308465161910140306001025147624491255523830635369299295012885199384926949393403056169849267551169335295635449013485974941663131888074238440711448585724640519057882422542289486395645498222464486465288613146453401232486505684582441065061222802811652895880877306279908314041996708787934861572571090774428976341464999277674569105020652182352142489892309330522523601511191120366102059929497697574721638921980743388306198292783148788881711989511962333445263354720152551490105404938397063740150986956107899604382987954233485283512735609476180777193879861390511435841121866620529849782414125095900394131984005577377788478109718548243556397366277027659406709888547489475930032813889732166510184587595304096149998901923138644062972411418168279602237514702445901655510163275757676174897672014425400177087426526880163288874848992239943230273619489094893607279753172251194460651708618789813806195069312956127602998917482665880012159837240655697084567779735910012831308486605139618385049960313253189536386603799894067878662569475600200890560119027301108799841122927070988183706540390180694761611607162185454128039416217277836127414453605955957058721101144874490517014932490433489498938909798872353658631941564263868715712299772540944273448989186660591133568845709014551006239442864990864800407839719338625095225461301173980007361083553494395651118894429155367205770031817993383847343859665714648459031605237355734646231332299098604859928817013325406023970548410566217291000074574284735877579637140296403386271876492092836620553428607044443886027962529626809556752646596163947323711808709284055658667531354856603270563576846570361844709459910396958304630518571978816908134530747536226397241788040510917436589131912096684703527843367379428568495688510866100627651988536350364006772650172912717604123235393741628478699718904977580659934921517875548776431849354978958660827170037693403307714676431434855045398663559958388716080346347366894263044697043605722215445980025091305438074609678734131493825265940431012619494260961848909249204060524408197109438111443073808818644311778550601852547289009979817420985751414181443903583956716073353747549604418844920192695730140920990235780607813320378582827064652130491539742700762429873255911499561757175465386366401240224391536218506783362505806140705869310243839626433666326547456318078750692775854893304777257927744017079094898668463551458003797621468529789323557890234485795624016044759130146130896118654159018679671635214099156661167305448858706090690729538592949129609092195967644592036005449615032091274701343144704735505860163737886199261530510361874886587696953464093294394588069079555347065540312431917050731972114615421353127612729504763184268188167527687148765204115286688300728451669277479301608690965698491057364804482470220761180405128370263262798153769361708978936401075445834483601649270828437144359097288702844557047565309590762229763642273188013005094512062556717127990824714592531325043990213818276084538184273333354185936656265987949082332980808639557840821845414340573301916857888366593362431868608087007262324456072022219330401718831290109496660504284299749310792964528009883823321551060211727363317687819529348745762831178975415377373877468914314065611139516909196590178067790972776912886214904163307947975950411580309425161013405180892445058657585855416587809419336274110629766797837216608076691346673153918001994775188660751360691988784644450613813737112635580244393170326516877266439579228619765490853339720642356452193573863394314322728821069106595509335696519458774010773803536407036879675151406101018998518269481293407797533895635842931066889673243844380842362652401385094863194492876793909423021425297865921943203325896682543215598449628162143250756459910840716203140488989028160708253341652487249737824027826939298063046957669002207803583934822366554723005116891182913205419452709716689879933026503490148333039925434396201717123258332521123801898287151259965456308247031184826555930418699015742922550094827341348785861868364531732083400355536819686488092732795384406261120631376001227897299393532190986373932592001919950311572039021713744160862180612296941716569519649432302601255004867330479599100629153956402025043132202951539733673488847440604334077653310633478152724730289346298204100574979357169830747107007202680336664341473196683235839585196374856416590507900537943638972809325094695536252465171005908446026030900694661417416401233339043555753913085804768096033753437210787050487258535324101480240537943565994501663865884701096344039420726693312784112911787852471245764664588013172356505698976097727020564243766814586902776770311237427357192384708146014967291622708054456194463824970517511931675195343547908658836568348371326797814160355616730771904973527469863639571664409869875897884637059739440950501707602575183871855582889044921975366110995068160192787576785926820212911213552414214401797373862585789093293855196256306166963925754645744946593803945973325180347448939166472769196830629781183421050568694469352019945939058456423286087836727379904359915731516193639117540717500026325009293758897573878945133749781438724365560448628091818866442484905644246853647777251700529481435000816397262321407419400101557437742467169584157443376267987933808017951009472001236560209302839109869873794562404344998120665616857673710877490451408539937598817960662314937153645906351570774833002512669932767823750129803591092810522829489948697294848151673293582556543481697431981198635653717797786209380328932604529054317347331643972103669370677079038683945331457820491790126831717007365440391806302176283304052718411493260891387372453270319319199298427914703458750659499132029904934107425473359531934727325520327295250275033444127868297604148516745026288752565899999595081560712994342923901867699822094165044503315501874777036465333011370967359907928896243772865300891639198436953648515192885283692807597664749412383591180254061235703964666814597629879006755091034321633503035955763968567149684444808576027994091927737882194273607132682647798476096399002395557883335156660407802190421868128522833648303879465150195012412426045860877093326553119800341173235405862647434698549865329132850593864891840947935447451321084128558193698361902966236480041411913450184301401017049279085868112602101501545530541830854362895101209893803167831050933536873439593175255814933464018085157564996909911840629209497539710583363363644154116443137024809039508423413490087858955973000846795418593908791342927908900567353320567666248873545291539831473845667047729267650654813113600216892844007526208105825775695428946425353548450432093123255365479665370698322015330785998398155393255447700023525861348861970339177936657209739078183222659029272125406280149947637410405266016815871370190182537588513281958661843300141537918194158727875444078477307657673681484746990638998855525170595762006505425256764954068395124094658203658087294119956943719138664235270912421689904915777444912013811669235910815297816786399205584260927000837970805802819823463774862461238796330510199071754943287118390311625762212834222053817115953368379486872729594278058349401606187977895773842375931354761085096465167432120155549932835353296929038579762987606326856812014118561304669446692998192644705415985225773580960785992723482728984356074755064115790524716021394034308145151695725381831948222731719680342459630211077296530421298151967723848956702834827461166755562997640676501565946961861649100083640242105510287087949405637719832497791904923069658350097507839579266464480130827915653953313161038260130539606277316092006792240347928332651274358280849395354363519451650891518472452748827419296961462830804517133018393715571728129435838390063296894730282976641276718773716768861150153431262625256900680394764009993697213583908468182601804669592031327803570540526438994262741803601052178836178050209194902109267850044823122979546893103401013805850080035303532635212946604224519311955740236121695896622408032375939175655011557681590874876029719087854464681626599237101462964754546522263640829689786199410539908969706483592801048975284802470227299601382221371636899807778555186675767862293720101118999792999395531174090605307771852923887402577763279515955411535392249111548619386868073321575740251521438033799665716083701453880803212518126587188534894756524281638270606188751484531240782700947572644484634215150287925062414818209986666323416649184831354752804302026960951394204001956563681443962477753283098263719430204959848170477152257496968617697557208698215708078223968309084026580265947827097603409598864527144309619996324416253279108697856001678464236004601602445116226712804559192049691284835892408420107640652487365699426417678261095845421094312122237809960497082530297356347866021370087001086350080043391098523263090670119450457791732321868475959191377905874135728573219422173519949691081377869340316029925849257374959320420486483240348090640687489164623457649780538752590924354780834946136997566116228612310026408743696106623137441013444136177978006298134993469626018464176593670560353076119244986216756466915032772806688099781124101338483830857970423670062757615651472378377448440073460222682419063887544358845060151487457515024157305573292564104856007324670463846999153699656543205902057417729406131381224306167462356195866445552283290747565944381184817223366665271675399204174199011519706985825633039851026025612053434871876002573551280411378210562264990848526967810738316510115843972718390606168988184105989479020955246743517426324660915314785708354795503319818757984912951583675901958383936371506381055915338554593339689191826902736146084513594583555323362320424984158846541961937476164603775244742128438725590635189152070681288304941854263373236328078663069791722089809992872335915681524244670944086628690931358922689415326291324271445136048771456965913000507285147463739599757266154448256905674235707698759000975166067701102525317432305274465216058639549795519481542725058355155658239765580601600227467655653327516122216237266691016337919166855031274939060203748902910310223188894914949865840377564462541523601200518304099094891379512771367892097009116262420594822974141876561112141327223017007357123200496154742874229887389405216427412041472660072798418065036765163533451815494054671907630426741563089108895111418358671480919022093959461510310765354069358619701681614944503839255823032245664326337459842686705488704824004664597470822051134517761178624405735481256518835075987333690691904819385808995848499478148974295450116746408658136708702780029319554344756210152732785814461326197772689650784028020454246559757741932476256172088529321713817516474520827994858361826310935445744930021834869498534700242733874517945458462291921427034571391063227596327073103879758383187538763410150292660221836085747214478962164221339456607073786419709212266035536495291159321261984612159412879004794138767190993498441172412982096521152537061014956838201030020701278683143245078863933255199735367341708014768707967854009743300866177984076194070553260651292148607868257421360099522830606891871418941810110959732374556098289819922579115169082428825535912953952529747754573369856587268369743463592656119086685412108608163660925179926504283449264729627875012812483492252622935520876506043570020941205959703126364735485786802457359418215740326001583537411256125108844648647257315400286589890367970220069926684939085150258689927204433189997795507143017808086877870769935175601358603776130244643701660310554953809366805834013571263492512096588901883048358531355286358449255150759779724866657454084089074864946244369211082319202417558940145056134794901794073826222530444948799150249924480388962943106505429967583746278856316963117810307574396192721769273633507484697942341400188143694159070576465609685899677874307745446091381668463957338660934277552363917969226737816840992704728850890102289951909354355733386587124524087322979140920754772202468450624292696372473837907782838967462012052025652750811127606016325097574370341731497277709146677543141657200007069925338882684619827150986044750459634584816948322130561162647692492302506708488513326398692004266686032203184427123672666150744010601909936909297584154020160026965094166339158066848158223024498205238187122983289361490412615287591132475431453747218849739633500011463358759133980836472647666276337871046697236770424188362066689415967531947854070722115137576989298726771805948297736119212790061257594269170069383112346083212989079613003825128476228809058096965250370130815505745686718291669229725420733474212064396989389145181021546163842599830614520472841969583528726225990657374421486441184760703958190179041883619494555466042055278302560450805958712394828341660860988953275723316481464376272861240727585179328235352013326290687581659666420867250419869962292016898832780745566104060554032205691857553140158650390292348260737383856158161466257427374966245572036019503239537986657608974349112193026726481852322999143483053133996119338611727928605615513528607245916553191630344706093801539592228544911698971754332275615850168976332075901993342724418742011196097403284214789567319896989343073622375702564934193049412453526963367216885897207239967164617031137055852954958113131462965701971274889815468341228395879908606718114727143081729910252383348674967992515590407487515972813756369156800547589811123211490607204601458143821829912445412363643088283836158053892645461669896530913847024236755449252577083367358424513620072330742383562209576862824274419101517307340242361088006723145279499498935135687245732239481224320646457465235455867797801151784712742494409939880548028577424940540004190209475142072223121451061299494648363595449045389509886134383933268010499082626718258033470821060458064641535151481246268288364119819458626572208843076956799072078752640100900997793613119846466732167434748626083350366572296394726082064094678209618508915153655589756845490726300506983811193081649316289624178950710768250900394034721601762658794026810070061458304224710838640457124886314068181150284110132010316708075199887322416310271437983228195869143091118407065511574913892948461496370233527551429508647463653550097154723947095251588267576073816436625321226550713311622786405378485607915492337792000144271126212542023227028528541205175331942762393623755653743272146914144111041211910397238663712908087149491767163461252244622127041333818331318866929811660878004417705103023441764633794064980409865987085407406318245192715124853338160001961561334444632648509288142667256959796244895148865236440854964061165249762503886377970219961506868847246095205010646926793231910449651292107077900491410762347879382280448707819040960575908516145846384527697119243126663867296570584885840730605099001299717814266408618498446763180693814623559155727077850065376398461113884753113346599083959484231357606685545649943795261150656075153476738525429481746995221887781491933251331857858836778856243159104975618258836568358824152743489155579274456604115371993234412201272374342667499657207833233961162197456831524173501925724639968740131651706101343804169196941582156465616632659856750754823757265159539438729051147687908596404952001570547359737392498166624242113727359964118869132237645609126747830713355308042993708595090010555265739430370210189222693136741715442655368317845054678400626007198044968143992193387751892679872943758552752248407545685862925318094481162398010202263863009371500341677100280461642387655309223846385874896642823411181143007649704623843390478785478897822767335494315342474847789540329196282979130275520356451803429092077214980982091289947464594583392040572036344538870584790983606651129027879431293370102432621844383655732290171155283200993076341911655148419249706833673313930416363523817319372095601465311874336097369512590073453071841149692661379536468141265112054883506533194986599065993877352664813326501154201587506691837315809700482299161893600547376686287724042256820961129754315571955875572589710512132313100806689883649381571100885589495043947082164369269201645603985614012018212804937462948430123316503386443808970198660906965395016698503256960011182040785826031293662368212367765599781542688263933876189951074690544495223005419704812629010824039278730832755905561597773925948973948392695128045078825391592862616942798365367030659961569191149759731291555122330871910928803722434897765721030287115615814483516416002310308554972004870239532396584436167660131240429384098619455811948741738101858446527914753689726822816185654199506841538126815331636658178050011055362555127623163963327408605831181226052038769692265574909284174216665244850416097083913999224825839120183973818373640582591461619402975509101238469493715777890283147429497237322157537402180233137368615597349759713838902498622965858186933705619244569146933100868259897301458039328367701987752935995390206230739438542709687250229334576056447591510346328371854364978334195873472478821844230052614301575298488095422735339515574346888248499003925383411812291617139041345391380317073275233334982252976026364356037460063021449288023214030250946341799580984587687339507869858550005354502121856241701891694359180661051931647017551285329730866420166959329836824574802286680408723587833628646687177761850441514597078439223427914427756459997450719429166537665747251658406345093910728858498108511024077697069080759504024748968623743576293110457531445495524383282940551053097701823068216855054602739527398395206976527604525142374638906324628166480773001701006719801365646186057697003007605659865742529290676791630423098042258796093545612669731870488848089121529031629787737235610258306984794726076658562000280056965934413119391019981820493229542615547393098614795771854727379135820737000924097331129192245831021559389754191223918816057830641564289605426696983610818447655216946921682141584606144584701668084690067189529056619282333210315218931510251697238123246682237963074958675509174599182669807965750524970594543192199026682630129547587261706471168203197508374204770432587060443234571201340425711109292405340629732988322865500060168729239203408104795796959820554806675335563469279739447773679699200425019604815202109385219579925100978802404002900956571912500791698655969147841454640143353477720706857698358854072457081798232590387853104479699182749627008269382952297790766111712580285199072199894886720895182666490938418172538310872724846944616661424461159249700849830995727547400053553330958180411824126895489047306237555384614360165203926074299313038975362805905417224822237036050991431752896106718732790187552488658857371147585608069153976467211368413740630924614851959690376872657870066974637271129110898268863522270125544760378486446836264471426384239648507485007745409491073403413000406218746536564192818213463471291215741227330246733743828755968024237756201389312272060968942904457485499207754924340987604415384838961641571264970273410197001607866338548596846630433889309112966773386119240051337293582224316004921488736843652384634088762396579216321666774265019653280319727439240739792463393872184424537633371023945408807136203081851358506163009456181822129564915020353855577904371406087734560538570793388385750835929523063570254176597259200320532536359460438687201531698740122994125469877982858481080748482706559270897819400712631461115637182297204996959998100089274922361072298485367034090705588075110911801907682938660063538919205445184818390653175628976055312966569160402590403689750744531301227936573888763193841063124748532274108069206555559206100640188574470880565164994839920976084033938638063895773755856177457623083511541512746491615082308757487166967292611131693640087755404265890744306963652242919838195404158898547131016519665447567262987611453583852968217946692873764447264320500929414952579040597587457738058463697229324513830775984807836445303361112857579608774591409035088344142830996779557409963761941948684383469725340859358720356134153046766370383315755047506698025079747012063186053520553012192545466263327781081191095926752870589121299275590091712200094173302955193065825781582002315463865481422191849983930300394950963699474244538136270836221663980779523024815122368569881245416992078353648524515001809584944523010400545288323033735105535766241319898837551102379969939225742913496655072309332204685096092706362618079702916681067745741253007997007482425012904470540621496185768472270833417964964762942523667076480210108526801539350771720959380563408625476398947706102520855826901399534994146463703198023900653978301044069223557236526859623599704199180823066343054636461393787583565194460084870389663375844337613335089962432630746859826920019016816284667220394051364985034819446262796409991710293974581732437534972049049638620174281606286070937010051901773976747674809051794354539542551950025931796143723256080237536507859726028088772792360583343747507422256673798482992687919548732426247919621781821711448588922440066409339683148560937378801230388198260995907118720162260669879205051506412673963659619238022267018552573389739339370302109620946015471469952281681240726192120856124793777772443934830604590303846486177341321142689130719356908680995010097747168350855234954857459482213164200689031159959553796571180875042124866920253636668049358751905363073453521904826539381728712495509928681661589812761973417284616056659948430531107790318795275858419014603766100571234202379297547797089750438606642902266278901682072601754751796790587566016910795527107499801023302599612679931182665643825765910282698766031111257083522716980825793403854621591467343413278148125307081694471427195660462947088334143813527608381312323325019309790104833429841926429928442045878538626286381940491961443192568060187202389642643407903152895891687152180283353765838857880922208083215592419815032070302389542221959028886616007927436303542545031027099865666203846412524767219584920823259719982588603406596421888307205844830008106473503662068883976638048156154802802235504763871308166229300407034418729468243364875573462399741496029380209038927250913060081921818186885454264988524170074290639558259194738020588031201444325534502476165394221257093242912181859584428172352872221454144486364114414800085554981399138382402808415026368563104873602498380462605947116520978988098921571775735767318900652553007842367523728494164557307650072662455236925695102836256400262062374783595357179638854150188024442440817120863318121852758942427475498433852146103186717908167877256150747856142771139412774891558975383782574647886174561422597456217531289114757753047473499175822590268509801660118003308670552914572309876542801891280493049690210117756222241064715180289136658607118184731426030236429359041552497019651583479536951584253101644712511510068379879865494628499025888400509062552722555599566808019368480350220955467566872417800893145719366458378984145507810465881628136313162983535785538708998001806221324959275558866541154847717545133368080282777587246385040150122423017391986451446900509513899471790436376671011227813390673989393182440363848605689044130400957786024333658184098897070661335246340975173988260820503263326547061456454225831347241383848970802183618611967908670565873971941152150021863218281301674145204342644919570962158744225674340654396774455689389380312465067292883978515126161776296877529319882362833849049144664733421096882608884838341716973139935140418297231176898245022435556575117992638235340199801526638033116832912238169839197258541066642366786402345217203704324929940439386614437778089605780914581152231627147013136677391015107175469604255142524683088374880308023915078581054965234085502290040731326071077336476758304285974911514026987142018922791590668337458514528628157812627847709704860042458569562452146490459863747585833375837106063832786497811052075016213792357646610535804223445347308555609648928798105942211676897498381365399937676053702672747338917609662348834991821216198468486545292882766127497393496918295794925298994085537562880581821758516890634302621810922392354482931613740046619658511366614171269213111541843045148288366686896126855472851614475207759434535436679486097273232908879638155094121770502459848322705094303925885118993263162590053001320231550232208730906839593583447389311518676629696211483051615816024987795682078366508290181547230275549906301148088429279936790443609100593515840331819743058198050400245034974638359531333945608880144391735681107456793199526412147905713897811459451677099746532847140387776793282099089264533709667695275005700768254659564299424808273185799532864351304893179001567756132357348709806978948282297050766036782723478770662310166495415079682504552262067473170705741656607945899325119411456065546301078821046807726325575651654181884606057821650812476784221365809670314122144802923520342175619179625324377612517170536352984122582056115593103380982412779039907595486701292218046187600002891939551580455735628464623731125381283612160193460444477916750602369627892589886048279541659089705960891182233979348724017495555275761279556123921499040703938430319800194305792028054797932637125021254797402522195092541752174133898066088979025994058622150035626616424255455284418258220950331981263083187890475839311979723371087589693121891398865366365400152027400035426318955196332172232223608257547457178964435731066958313493186590797478377025957976761540300688592142914741061266271859096224894860444856832665149172045721129487310021104195353790916094261899735000528441951130461380622339722059304571103982997545878573931750930926632129208302468574438796302393457970788479863045257470782691824084431217300108375988633184908130529918873730641961461270189976034221215674410918407304117595942528299793458488295729026295877391386382177201816551425133357275964386905032839600389109433032594612816634774523232513638529353008975573288218563198161168525263403340667306313131503730654655797462350570550097689415055140909537742478032070393783672589994914777564674198288828132598044019259137360462151149695145992243273268099416391258366647730318357692175408333397044800761612965922001299404346556430624463715794842607214830527086559696242585734634677409282871857173768592162080978090717118493536939219688611606173814283932774174213051757750003223142798351246175967562344844551969986089578578337865042668459190181596487966691143399781760952756937868710558598106946232499963186796993120289347455088208198406307391991613358722167774213364488187084587675235053203765272141279719048951375812317996112897837264090277175508561477700482459454332224293188388617553837632422880379805614694836900988271884586102296195276344967921029682970104670845429051611556245835630846760017489792451962553806595157027251087863994092725417153279108099289887280400278380457172076472942613931557013877392278138545106139128987674198328189719311590238874905733857197733584171017529049282977199548454713586832815719831647463760623658540030326637960678974046583813427045271759078774130043099195403223136051419154158287705029360270407910928990719616902386238204856631992168708580876312654674369228016578319925780831998231451058107044587776212929272785109220305162968491892786841434996241335316961252557985547213790820679945769192976314008283720409312506922966845446355738018980144687227384845141087100872782213990330885880311739208897126542742983736138990226614758503265531047152069634053331197619102347667283962431220342392030632331139456919188402438018247667379927226090134404918977337379242286953394622400363916861876130278791176735559046789311390936861539917463533663395718219781094855165759524584672312728627445007254862570071093513740627930552520468777209844599229376425960333875002949798051384833646809707466230133541020070482297458402002757185312375783433555770170862893143510471121661944693766178767161916744269969636160075383594316547051783619314540261762741847383255563174375085877219419068833651372889174606683438831931424412722467892288385271379311529437140457642162742369066296449816745811380744589372910518469035303928071289565301796865215411906569490264764909011353198277470078295999965761266020813386441728909668185464865210430195426364561063454171228205084493243334025250583791076332188755379591080619512871555552349407406846022272672924843525185847948759528093490977862235947617823042377415723293024079009584640940145422142749755110564294332914360210593030528985057865134926360298945431932387173658767860702609731885213372894776449630156686758475788588086133382791453267371182016828956035377537240690383617760764245509784877502155643712576262219107512106198946922694527836224277256484430179634755805060126834444729746561798744239286654859074738369865880793008469998198388967131423483270694350882409752221743758606980826335916945877474776557228803319637235810059221694957956340919222997346957279023540536422267318474777459542134935125854642375932342836220756320195278350580953429970428477146836701480958509017900102194400612384345152548015357061978648055492532117839316028320384046711885933924071356377972170671026573457348439111641604944595073794849437993391141089566990010708196184356579221825323508894131827415508338570909736604118700665856152879807221710850679145127258852916519006365396409392848484539081513670547109809553204838906739783758743386806938506164436654637915067060911769158770149482791502261279848213470475728927720843498501654693082720367763452762656489141906953959985843206268102949090358309670507408647629662072754204232022524853612379043911503177629672866291489500295951365079432497536022683006425823914609139193578591656823868276560946240665518604779771691327453950341648195255908623692563954760082788398864754115149204366697062878165317779203742354943108941765447754126280877003815598181818623398808269443780798749183120688503315094249276809327486947920960805488917851566018120016829126743146416046560102880134636720593093397591668098916712721503020746245423874940018630929682141433707346498139197247750484178678913367008879779588333746527668465400388182132315106596919049031523328754219864198748738792919826295628051487841565521999627447967508800432664300358571650787167181020333504283795876102193017448315155671626301198630338314898183817322880890214511275030513113659792430936035287720915301525027671431816428526335866928897042395640560042178653631395605934283755945786827002938365003363160805649510902658298027307542116925519425734188605470125307922659642691865318188426352220990716866626447502285885618080112097694444201085007460500216422529926297283212238896803045297759056581513793413176436148406754664087415177537492894347827567398250718237793024617770095169648964960422923457704689870551202411135610888156039403223520023996247316587408784356052807974754598168628504052862650074127636734614608204941967237566816673917480131903572295867024024653425269264768385059255786003015099631000843920967946954614191247892019653074153179744568734332842090000419450695376362531957722386327697847670921121602244119429926112375549794291564366404867359044152009250255613647218612673828833677948693300051138096094423594043544130668930605441409550274403006505407616703075131550168613332832654147395387315464346130681536376196444811632766410533308360846822184823771067631368662682431121708093861134686419621318188583334704140189875694217859765172416344339580460751994903993181110601944031306833549967102655032861482927231971564744862444157035576424320497171550293222172606128984697916270270407078134985870058395958171768440214960398791592092606700372764521980552327549108814402866359849099620777339108004487063145389191712839000155650343296223128411325254199837697832728097900926860776507085085245061468047772679041088198592503796746579785603248052238970932239160514351003326093176692053004605754642092006666983785476170281795567867711538504471810629713346730628367121103523571711789704077973122845906298924886860109719944343882903299118655403944480502931284321715290968902026948285375593033431821690293399955866842013167423773578199477935875750394421147230990048726190022340118792592958878858123640508800296964471104728638764096633023651455387021364496376505659398739722673553596023027273201550022270918319368068922617180558915186440804883282019271775747234828300562121169625846820192126196686822694668321524899401516768460460757375387466381483561940955407144014459428262057445355476684681472910191133488158985839352739830821588891537144906220863461808733264000542220188136885292205338851672491093672831407850145129552794182596273253417730718116408533220501422683302769036684085510075473676307242964883629413249292342892372543996334473842573060056318502955146142448185745850908068874356139315249779203820710910441936148655780040412343741906633158235829041660471388079181400373342273933618056659877918372150868061040341807329372907218759124860178975177325817003745559801570537980265194891942335631854335652932027664491218695304866772776298042384576919941279012208005435260585682069647008515886356698174717426601581872099700809416662263500761273000162364010813220947637333299665673017989422795082498480105553701739466371530167972935220628739488697176490578714410847179779221114867014223943547691580011153435566569611433296343422068691988279763187519346875615773216448454470881823859064209110872313521136805042800769696877481046720889177787500547550329895929826156347588542610058423498529869233863833170221165954766189391455933111412162886399544123399908790078896896021898082863659743422390736334798003941510569079804512485083381695696768568378100010807674666103779593922374819343565770103301512373586866772904653001044921238702494024996214741919563172000477452981497383105435600397862643293180258633574615636618329160907784351869273594655180872183510203956246100867515948073106593323612543602324297584633377934529552692927145412328774968472387212021910050816629723485417183513047904256783080379144648042740806686560365673250353084173706381507880504475514737338070492986352003076034207969263704216487595407153574708933644875557953965901510130885049071208478129466308064199877496122862867900513926760101148849735693611051252429071315322939592584934786275422136532598604923435347162479529261152780887780008554911126847619425949651187790087995038805335959981100982810046577086680799891017575961850989060008271229967475879526268518474617291133081120469222182300447077682243294783029071477897436809858717869986306832552284712501225655968318509888478146320346245749588564984838382724750964895990628839416201491064874859290434970655383698690992324008769858926263258426944313264866251922283147888836644880208716613599741751401844155681089834224878584221457352676501180434703487438134119114082112231407672842875471427214617363973192236214357826335675871967242049897898311734164483891358645598856147679121678755075822943842220274435764507992269869861882262928234549307734420829172318879509138748161325467575377473912593305538591549924865359657751448938034288831495737317269831534439456381998638081769299615578454100738589138916194910597326663798269104914019035774840657729606767666714670557072781738839375371970758568610040167590357567833648623984702961867312084046426854834411493852129066234083512743523555258262686032694063323865827012086465078883421388654311326138025493292640188018110988407811700529981923359220515956380010958276921640351871781392408084698619245636184203038304441532711387919078081252933199114740126530225351868726615326447394820807733167116404301056289822036852870221523418152663828747684337159063138934857181678665098189399617491059503846222991060403445290894284639459830984867744225451933855683815639906976504656394250522490726393185882297035890312743137105504484700319032744487615597170539589076309175592927777490857054011572885834082774757301237121471571768718938271984778534019788143494801354547369869195790455818269137646304624457612215117661174706214265399290775576872851460854505443647137441870930546593672889784624857339739500652196149816340067682197074270478111613898734557459496041515842969440714432499739149749944727272665131739178182035138972877145761425255427890788717972415616874490772949954491553575905580426313725556675792554984985646907496764086390699488859619498112867916266132496794116732935016557266677314573811025684365229816170248721220962618155787632672889339393863251831812604750332613771505269424590531847039175939111055948468467832699072440550920281310225054051938135334858222115482901328343257427925459745574876731376203806964557581003004409829054875765967755401662173206372462860737265550365612307828236328188262951206337462822860764515108755837882011075328001106830206202572746005129618728701830593273399944081614961496622497137812561196037636364534962836484798455179782518471711950233373432443361976676555421981325696111446221708090593613080510986207591799977883802577207479547398163586144945808987007041211320136544033695263433606936010630648687928219787835913674803209472701564467721269646211441279985847292177259710554591443793781371783617157235014590678431008611635115998739487417764524955384583103441994681852917414643193468462439532630494582640843753173696185994973265222142606234872582414698736179860117765033351247390056002312444220518134369155694698862739828134491604548124692480159413179626077976918544597998926194898300227914446660180523701968299305625617070973942038482881991946541631022003912080726401669520744075255168758684656526644643519932969837304567193494043593964482372877741470684052771892108046818393782549446460050748052005027677638880969841057188804328705644099823523479543323822843344182067418318619094502474268898650702322510418365674599803848990196305215462801181708586304196937435209970437108279525263658092710914988651761667461300627863381079568276125121258227516463514150532848560934957682274947625826790572191039149164914475379977736076667596766938760264136173812451755803492013043303106697088162639173390489320327651364872769619543825526765249677710124560972731601740473328093719666525251316789790302241446154935835242722285379497063962379523188048741243491962495402012506392167558008250309144436595151650446450765539478287222202434640876026024542785437427873499974174132404056265811915182688773449618815816486986350447127112881505228253882052689376233415884450282517698730233625744694503207143905406083975889779102359988076651388654346362419501302314897322046308053821796138992197246562370870955069601685798912198633904897286040035242917475410291277506941262684856415232106114454532470119039190039398760105854854912826263734441677225533980622618567592693264385848431051885843289416607632565180053528737747292014107929600141341959369520459961140802318386549560472619565046798795106807105623236808749038508372020907651478283501725056363269089374268920545873228627945935305519561818145453466425961567142793937040611253207195261369805875114301919249297960101947804331553250750131396454653712039037432537804574356386851455659112360894048324392311677508210646393296855562899146136084287493849408151193757284242998850997924594945535508214748038564029802066793187912079844828220740276876818112370963700010275674600455762631634368497231914142515137399885954646164093199028274735364797773202733172067432088302951363143616536514664538806759473785697460155955218282577119201231582441840330322661916523261017936009434544579008993974781998963150049738834394423440391646812532160398531319648396773147110943467587840320713106732172654858085461715760642865920247677051144651954558836677150070546706195801667157599491663370885359000632966338480274434487763295062748935933804992281178104947168472690995954622427518552028671899220834735769392303402172398013004352241929347684689002548776605693561608678064130926090619692604866539509070637112986908498132441845161686330439585196627752551888975611145018882496886902915448496828080755131742305433861415471362838779001179166527041803715454126701515806473445057701069735722818197487042997289755785857238794248422647661664911443170502129848807330745484383923520837034774594471435577994512801178842806798242815913069139041707693416195396570963519315757347483308189882961728337095121378272926648216378660976195759802549032445667139485237742617103282608612136147357172318351908489721265197999915833221670906798415618870084164363281868095375426514450871958221410272847952071242729870557169960517548559958987427066496674402572466039675993165036995538481675322853965187353225646832592397761682992713590489710343378679821203222696933953893591149165443321740779538355733099789419339653795296614392436943299480536696073765324109639250782468793430662361887346426769754688606904768701479279132890809647560036015557160448204509508915261511641550649724047542222860777308660935200072272339844056340301522292135355725863321900343277282950933798321685033602427938681907289236208639493514821889869102036711844521670472421023966480273222083017577707953771363603053121208014835740240859876048374697485937415897709228429793778458441982131084419661127544454313670802424635182489885512842298547665803504619332939314054144684065327445590925745621502173127554220722100703814583164997770080173496082455514508254119542795319722686908335610922518711648170800535527455931571874784760645538283502695154209465832247252358168970107986943723800137203254435395892415666242324671590798746342881695460422671836058159867611455676328755915071739645394011120404327861187558868257221278619707149310463657217115849506456182682474480325737491990080484994429035615133594176449345496569174996387599553542246179888211725488627552934320234059016610567339053536666540809559312853511517368334166046997682080235065519838302431638016004308954065668988510140751504734879720941379648842214603439726161247473469748979337045964547943837267444877134926478112044842427215518684063841147836295932888909542105586755349791111780845634221533875878150345840019007851238077690700688719168531004580410691119865389787393549238116303250907986316350187742798870149682446961593382810383801136664145225462289939771918219467760625227501336856385619224147807363673635823708208993312431899877083971843889786616052172973591340358194447923117769055192177528583627699956504887092998472661327041884478554083422477725131595258658650923435476436439943205512358891011235555433366790404722524410696436548970422543530951741247394717716224865121831381697415840775004040699681850066139888579656391037859189515254045041687062552341975273504373822498087314577971766683963671159300140598034553700272720366434519984129027141484699736110175983923436998319958787839973338645364170848590608219731593093895664050694153041875069359645501243554796340522588548365941310665926340967004800018101873230039654583478625897274446420130480794907554856111125471943987965357225750945211912006534628959880489390484568777457673783392572923608643961122399239120802690357266295384524662430713059823961656824175516901162911599272588274539653823375748626855248902525145746047714805772718679232212835735387482259319119191656791565782689905166686580147631683031907197396576984140957357977921218155106066505757621626315603042725213269587267738837369868584972505096107674027336053590077393017225427870733151558798667923051932245610360039790473880745970444568479198768198570742103542010115049542284129169106366275051463945151340067671569468046324058934652856172979726299671070826003087720318393665529910741360888475046296752833677922669556973879555756465493538573900637775932738117136687269762507669583355913362258295970109839486602792820055797324359421612258456185237283305243727794380161189585168965766344931769814979815811549878938825659037264895402352194504795260020273097680725549845521500167101233463378887934353557599517004104706092440402119645897334019492751764256931589025315873286202564828379431488776060986656271633113165677814809453752904082952473396820643013431532283837596032010245824553356546376105458650635399164187035025404876461808320594175243433708691452690409248501333122721348252427407319080719585066230268564429063020241143126654786260104942151491900755718350221158984616303462727529646373129685058334074367221146818479328050506678590490677476921070295054290949539219413861518519104185884999625799282630589696455804089544127519799423860339406487793236849201833401463781495218060440369374752700488769545742670583475675587896345878917153230539439214361623717722873480232826822747186360328490895258420356384340693283814738268071609305164927846337602050451965215260781442675563021781329808949570161407380172012294595526796652070502023352750646908635304800404926282599530010414094895601701814771423821440281790466717315132071117414868759432998930940057759149920982246095912383077423314775855607272772280376562457859147536033428088823735738294531416810137255347795630651985419901677320421252537573802525116489512822511178962856601114006562071901347404188168030953546757034933633798537429428795751552094283640395179441759436911500582040437202162877661513976903478375003997269581478343214950194409367225102644476924616670473102399778706868919671672200354987742852571389172343578527788934756163636045710047031056298314340469325250239022890301436380882835692024799908698491291742828765788001781226512907949504295527379703971242046934365196924184802391022183614705145267226362432896485350086896050333199963084861475928427211433742817123902236520482789080517716382707578777689603550659210009703028090465656776469955472588053778164874022754704631795240672275309703668956401606508870294393578787812009197184231962518919095643233175200790174293439878474942578351901311073015238052324137454248200544695255618259212522762870976435838889290485748854750828140588450225913660916409883793978941364835694003676970253431368130232386373141223069295955313817006988801258802864609223986201199966781485643264534713861689256546598733213999350402513691501014554642112605035791267911836583916117751633950393239715165107283978223975261406661119079259177563294388249194620981578389776768818510535206820385189349764736682472405047450855234632665964664468598542132105953208983089499136384452253099709667443391836291612783076562139162107716244488793895546790777021317207526300078749058433512823035645309280341142862128440196583556177126730772611438509440154141569018533769208815145248381611838532589134031819498529105102950328075580914886610749717631006244374537770021083534628979990409108775079556903410839209472196382304294085308112339369646225728281599722416153259802741265863957229143002657576604499369871887357991747496892722380265812052271211598280881435656553056499873176972533405260852140765929082735113013433864642107631831893731073252370550799519920051019950135155651850529614455637954431327706630146232278511246882925171216528770356080855152109318875694636585646604941253787077950485549827550491556298626175654260011836325435408849146498365489550822185675236462392732064306851100668439667846737419789555313544821590616486998911190878567689948837597919236089966942617729069695582537164939539440167996948117799382918407629027971533737545849005979059704455368599162199279315058281952681304930768716287303470890278331687564509253100954039031447860085717949585006408629119221611867081242339924655731542760057427331463285330667988938138881865423170896097731415247035752415382608594536806282091383820458262930484598316191106296434564419927337452677585546661670628641058468599801210929084941917735308363584925849193065461705356632503115539433346047382922340691839617231913577809243463351060756837300341490373523873576986555064195916352401754378811254504419290254619411465084651927598726385321858682001755453968889395945611347747758454176861351986006477491781741924070569354221689191978320479235410867451942125161464817129825228854503577959518085561358132013392834358865826349334898013315053573767237382430347364103738824470760033435342049043444489966971848450570825988554888634174915704625751994327347444099833945175082285416696913196213976574477401537897856331638788410566945997610202230189960327097796837268473503234350888398748305557654350741710574399411384389485009151875845616829949835536671523741625634999218324412166463092096006887815999570477722666658979887624263492770489866792507353780486882496052513128657828562328704400720655787696589963127009763441628951236899750340401668993360453654635104233279529638029350785740593526152162009773720313968314403726157664136990261892700252604296737691192721410513674455710547546463019346510260689563234564335835309663553655011452604922839189068731374504303120297551230338855447913728431771710924236568224560493164603336812086838029176273684745000050497358685293400420724721036062261885987345796869216261966141170594155306690120955570281375112837895252820177348070843091115149638977485986314485005838152271178134604822943246721728984181756173521301014690667372553286310881164596621958582786248585879958090984934004300866557714701088857614829131779018379335086907940788194551048544867046697833976452078295726423085252416548312668170917456437756127323380220397752803036345810096595508398303805064058274474311746635501400127571455983418503232412204179820361540598909172281804767282156849712424509236155839500862739442316530487909022261073124952478470074948051772261998525664384289130080009865330387468557300048469096506634297715678964368432813994191067735979461215809333047450636424571609177756969619701752543166892641699767797424745984005705501303405856685828160505908974614181590010047147142360863548580150583252884728887962715283351090380635716407057652244735955566779697035358951854075611900739377934738550313454415677466100890703674083901293253346355392997471797719786828089278058722894321175736244488166491357019318980028099095770750431991610914998146958700136443746316533697843861970945600972686793937229122559935317567315757085108873455830116982241529631919418521353154181111873376202045669695860934988911050984645889226232398486264553382849539669991528332822531525074482307663932412584878290046496208983225823330712900085458431302968648065361166655044816148621471350400004660729956103489751032279660994803658557657306877614272752584389155515973397264633122442886908877773094659135480046452428458862068511827684276070536879892164116236714393139002740943523714969036433064590232609608491330128720606354658733132207370957103517776484918978899305299186468228309383660483146964262131865182774424933370769894082470097443058782106286935583952636718053130095756893526517567677738580677173920866194438545437887225005882246524480683524002825485769492014211181607544489604354856743355222708103229479951298436414760005256440044901095598573032519168456786241248957412396302758933892683916771039794486817628977918124116103978547267101576048931085180232000110538594176601824401694189780383027890804755403971026142695236442097970673352124179915729746450979072974780481630876920061812481694189475101177944744545616460032017466403119330896564894558763129022347313581123516422310984467384682849161426368084647768263963127635528287864862119075246213943965782698331381914650364644395851767448282801479037569100459588105478531024581159697898839432565071808738764444243042128423306738853983631706345620218263407652881550573367909609464961149904864084859849827440151182660785008962408734668343593421856047757762357551763183262943880028645870287415599773906725792206452582249530023452882290339773414281920489699726060631769012582130796350020175176498153081525970868769088653590471688919252390340061486224434383244434670018467148697308063483843840446420038355946106388546645432167051475180189998204161313673303118160487102143363986428343908150298826037267472561914053567937651063594685560651696695913482654224027763536979488979535511518698960929227898706892843358467726753579859138118421257536417244735636915758826849899601118468297983820552429705069624803581064208702702745461257938614083758303084221926569010895340329699017696363371462672388103733269202095339233644496368384213822976085542946450392275408108175463817956639768245609059167003245505575208962429208011853180234503413267213870672091224867354071098326535808836261122528422895421723213445029778361038432179220913205702636206013080113767352796433810742598681790346755689354419982118772781747368469944692216849781891477387150507552338029135089802679010459281219200239342502092177818992559628753886101646297689161097568625595314391988863131729097512324243120266130860625318977929679508756241910824099877169780133214253726140517130425970386055186207603979194018462250286584971142114625325009672877088039769379038081072652748405525135005034059820109716787755827707625774672268453636869951104719829453378440572574109555618414966907598024909072362164649517832975445730971702631119680664429653689037587505126584899997188089704141481810556461472134602979236106141304233596206343893016605920097342863094482757626936331949544720684376353658806947611785540372403511589699121676689704371844175230176453740195078253197702861213693964442590754672183441986279632339852422968206874588452984227599855715102118634913212805589847971453674379278625641776757906281995900611274799527792002329582164229820978409034540021208468726915295696424490735438517996056144512352080898513227556479982501191242880437802082279775418636490796089234087707055895004927820129102219134623465952956455052453928091902471971626728299493366922544263517800357973626817185308739748584784608277001129797967886259565835829000582965596042692748249455148805720268128921055924493817164103137156798199141568232762934998207309119223311258223939586446781396739365780182911014433479998821983288571906371410547211043558744771872012462246500536351683940583615264810726971262432702218717196320805227358135612387557085800410956814378062448545535764009238339788212160610967720194969569409237080168876025609138124648892122430953551356996360767590485502644003808453653009858841885087505355210944322908077662132189301912404293029739502154881058663615130611518327257816685086752637916007234081849175647490371277944293135602848162901198172204050066727430802753358694073255590157005811107856426180161292298585379628056444530218851656869680570990722219361024016449453051791695277597720920196112317129545249281460532144466382640764930944785590365058424992533546254588826339780681068579894179775931906971241755841486305567505561270890129709452105940464286032632662325714439305048588800456233867220256295219296065535418136069677115134168303649943866084350890716758568710565397980890028245387709412901242288352339878393077461031846732421266570528849364116864928518555813072934982056116872519145970887916948266491700559854291802970304332626778659717234011144013406999542001982965806872800250288274484332055508349990071026690509871837619303923515745528441814194547528418691231435187274574854177937275204869102646983345228432741157836448787084170141898045481514962270400021199274806027290898735080874205693034933607530057822009307863356707710885332134210053447530747077558069988031070687888928049273285209119742560490493221780441475379497968606504779514394929852968858533953835264695890132518425070653794245456971222478712993459673072862798678798549802606464996533266374890335258949415490740943702270138935496271089892755018029397460876985656326495252867935484063757412300324855052817094051246458945233995407899810739224177954060462109328262924501729284539504012398924894658334212793569425825593385289059748430179096766233783400509976282733943831563053613501991986190780711291201990516556348630380459381177237945592458830413244690243259428607708788788522316934458751305583475138181836358792647368604364756604700997765731829726926545454042677836423608496630090770332056568104589719676603803409371307061394496898531328756533375387087693155875118435418378463195946069846392288484153418529125455769159231656121274822178180982371256547049559261641726526141055731785524642884854077846507934057730694510681207019765238216610457247186978650869109031942096750459838197777997973314581254605237886378483772615608082906146033408359951115127776233363945346031084967709603796635191965848338348398346371071174834162876480268724013709251810916236727058479210848079766248600286105529668766521894725425309778037044010384639372794278239218619707387838385697308154658484691015018307964545465068785729494682666815718263370380419858670735324799075340926307369022561151419782405843908395291649951007882482648948456106675136970724884846858494326781537156591693429013635976492142171273015050073364403327377359849109943741114399843092831460578935247048747319890395747157418972794185919895616390870443272212912720579830254127073618637913461867371905479111511406013704849113231457652124035127636449238080877416245169597433433808866580112072842413492060987637532267040665661474203146678306478394574404494218262423695374539850190762883431398602064623056827675988437403394742321476662897779450591573530259845525239535502677400148238970859710197149622403769064903878935274256139367081714938810028903570538645368942630222096796650992086944914612878967149198792111284548116860910844816457065551832209954931910602101087225889509093082133821998188340442973874806719440594863421784723985583350753528018691684019549311077528484294638399979866343451486600806352868679156240265565051682119745449949483067044649202451875439278694810254666773825389963744599010863458655371407205611154774459146117532693361518514884496529107835650929333558274061348483641234007637517317874962300222646035713946128310757174006147119770421001422136253135237690845458850219951015356373442011819835472813497651748921825067652664914216280751033320880919054474005478695062680151552035385948742059553700630257452455739948358807439680640901936860402556221286856292747152515134596787927969472665635977326782900379849104637524361540497158730534465433360836407857482677846277983236714962112071149176489146408771342909360457713579808031679342692314820261324840019863115983772513716445594093763523202594861475976236501800952498775439893562481059033479121677458606958321741200662565741206518839453297379929001762640038099150140390864323320211382956400509008678714999097081584231466346290490365673227425883987128835016081121336269216408822924730955442843852908769728875060091247530895396402055653358589060000104260660014143669599936615861269947387208354342833005522791241922321223433621154668674187017510117685062570478476932363480576206843621693692807437555944814058056808953048536168221530397032768267958644034127412635834262372359102921274237442163097465044246175844368637021857050340792493715163081661051092924155722736048215925572630129821402937044637569119053282359136010507846216270940194267885495973613733415679031828166427106852339060575065518139638614633306182275724096416191780805612830660900416464102003632718870294085652728808370948884543358381186582298402730337172297714531292240791895331159968076602470276109077327271814888138962938498571949946060565618080356207722975223529386655932753296457544843597446819624338246758978045124087025023620035206797940579056006085958697421330909530832680022898695245377786573098169514554069181949362849314568389537644583453038821631005430213925993994140347372291449914133348657270432307312969120440839900661515872957674760721544248788528910946696564626208355098262056961331329559470816359045341668226287843004082093587298578866460651691796699260927332558677229856809128678805844136492028739831550162647477934095147101923197230150190770402370106429451396227044662907356854735377721263605005092616076609964639928974506800166137672790471491501233958234515528159378149474979564100221628184958890383334876140401355967071337898657038664572087520601463370887120478534507103573266818664247894744647349510248659256152083218074693618700260537352218036195438536694157996328688237865948534761033216355503471390943582037889544719437396495249114012676463547349287988465463159015131269376479931187552514153887748203750139721113849530000127136917431691552440158786306246231063584395092502683734826954614084518659058987754136420026111168016092736272116953318352105381963075020053550053617699256089615240459640455353647431132851535103105117174117139706807363602270886416044389634938137791674894144968708762365845782812283744786792580350789624951235736060379741804607820791943573000636272255540270979647069882351435234418054758459929465439025248936781904025042246307267626544864439169231474577260548808186036569416404490631335122321466599326775939757839067457982578194983811630278447354821681680455623477573827174466792589472903732672865011347304864916817451878151123430948787749572247286390007455455456194157318066219578973583369961834198459100406395460797884492214102281247007860076343653411391736106895080288710019385539060671703546815785966254213846542911542904020729358467466304227517238669745297808003687649997137213157955330620435450752733075664019180903830626356443310982562310544553403699526832217657283476223898090998630362099434674271435038236332289250145143195705492899579229330085575755817079715040195629525735402076472406700801598535823425754313346391153487720288721687718761426034507034293506603397688989570397765422790913102087749783158388761369098908268655092677982036886163959726099338619091269370544916807694499048708433077448973726340846929978947402910998579832105787206082834126323700821694998934825947315433634056661550400959800712107337396103047252859065037934302222153512743482930675138266660941591258336916786134069975727182664650568807555528054320890395792313662484168761962891785425749798096253453213397897704993812850755195830293721014957441580751627879061792349417752618724443835212579075064629657766765724614621893923490484635580156321498692159225499357894991494530955589995069818503298495648723728119538018710585879273415596881600894483233234052293070140798418032967194192840017513506947397587040135990036510482375340864980600093494256982080037446540179723871276366153643388108563252931816878111528884470739853411215107461570009953349023884232295961173089295711316995700962439736469957607028332013136365572768483546744956327535785565392616348036568333306592540944035924463727102939384248592089386044254801103364756377554807108727728782121637793592069322514591719109324362151748214517548056682306993550936067332206489215016627706367673845425600609329733604007563889449342883780420219317150123769164918402554600907880990466527239704419883115366618649607483398293281418015737994068116377274773722317726324713668994765057069703012642683095770682944815873471339495034778470280547151387336063042442466803427344695020674545576749339303456675581766846270752580102413599271076423248984873896221483176534754864728673346587543127120677615907861999508950718329739374543554793858951688683607058770748880938999808396782688215640929208368974659460317472534725517206060032860512979621760016065282763655393528423079773057523848129518354410780251920833633533730262034949160847905326600997322090147467634864200693414116097415036439706552420115363915032682721192629796426373536112090963587205201965583139827444200713873524492376789014391825394291991760386092953552249125138867000916084018386046475054515366003717938115455754950239847724367313569228657315646477935745864274473423818010163277419832328083422327010490597223364495833856009402973349150614983406844519775423114704306848565003384863692535458529763583130009139659497136277616305890941637209440500060481034591193978176100595441941070135804732729110752312899417023597967763452899239493567734383697193155492861774315078110385403261118957693031179460240320075997637954923850070847652057446778341667397920071692614813121438421081334996571433666478058263969284490318061967089711666269543809831546986847337222235880789678283660043940423011936697930061503897675405608197225203976401347927798907278993890832326267186029558081076591911269496369640287492327727408345530155793338948152615677168062432780544343402108813645014428159040174883152246549869385781728363843014344158814191658959937700172551932472148548322906218904454543992514140770373986409778281387301508585432569928179955207156470835533631814221534845938214022011871115595120484566453240123571186453857769514866803972074760127187859500866187760507725949138959278247117219147545357216944452846160401937774670459619641349557337206652599007537850885757662984923094006518839771215098281746591076913190731899146092325441874406756941957765014272176532019454793314363374238578529106466387116355697647825795413269031197840588957860134437675692242304672239957013726728771078998252241525553112142100590148156201835249043782147421835810539276717242986609425111576133796996672777341636305862686732862847255102516746673733119053490363828402719168070647324810420904451629801827965950591282733451255820885958992905768468768620457229692964922977392349087724465313894629978785793623490243518260260005368023521517952774528210506945826408302386400752630074460199432455591544586661951631406303146105967160822675049188693772682981088529929406886814732915585091257147739821221741196907341698191307033077997909953093550246827395262160498162750631205061652742819800261543014263923216462771845795940497050961197300458102761661992289143530167685639378615416926430310183860880735180770162855362373511563629932079738990230742580254057399834820498050002201061742883498129480750815952286427818317212036964362824570505142902385131841855112008392345899237190949427433423058958647052184254784424269671538947060230622754987342789064999673383197153750513067800743563941065879054881599799997082109402719837386878694084805008834137860465658660015039975740341312041061048936610523715514993878333308785621038643951968803966806620924660654123389821357084250373577508397995747077187254843328224738864809821163056406964737178831720556951631715553727193112399002265878127059237252396657525530779017980788265864992508607608944765140559360369357415523286690020530998190422194118135312761755709073658880088555099351400480835600345280739895014341420090713652444378182931666495748660860214893249067895491686518955815060390237995447499131875110228977892234424694948418628190787648176904108561636742029536911420715606095178029005277156069275967693329974128753189668866439694879424544559807301505437295609878632595934437457490255691781154020254597820313419574499781926562432830090277930578907186881093682715266089663790494469075806960579050452662121293992862886069370096686741769438747965029020080473938091734640754135593398462594357717290563678077494085304656687919352905131469535891982567133169605441410201513258331143798543400087880246799521204949663153869889040496758561530337000912766223891578974920043483208351400696458225610550140298863019410282933839947398178595204080581259844666702779052963512169839564177191925810032976384033313856696729147768618010877143471070922407266734463878676697980379892504570131584934460370854246073836931179642846821441151742730509492626280203310127581640033658181146326925236829960887555892198369111597020442953716259683437937137372562254383840773636281589976893819129002774010414777350566095496708302885468971058906437623480474992271579526853488330943642774227339783311747976803067637809011270791801378265964373801717621311833858600793363058341348920319440984416562939966754023509497808847172905827380537412311241342168376894153857367262585791238687841159866299140437653159605562520325905549556626888014864109635101130926547902106652351000302307107767817626323395648012263738249034009085631006287422583158850485680850041753796216545649724478315129443308080178995385576605074355977367423976030520954002409805991394547985588851829697110248313833739355436051916904548752044503366327309676935640748429847429638419378045440531770563354857463488372333776334714811602845149834518697425781908559295240099560081497702006420137088031089371309762010272102544431527234025846026191527710095877858099157212618009523035991147981868971740553695762643697713106496393042635597465690082726082175399326687815861319994252108792721876268786299986919462253844663992141397592476491334389179597508504878483042916164191899440264717703665506086151319523733501235509626479654004969679561433323903057703100527497820073429669860261509023630780465710583096413076432097638129801397991042741791107899538390589491540426895134347567948386436261542647770011143446574456829884073277082281379998348489526159742233618852079164358700503166568165568906023548401161808529714959748397026274649143756449590720179717768594669169003501893083103986958988140144875333530042707654796401650449231819543123263015943505015341986707795107045907196315973075209442299649810231433209251059292501984232865416640842836729319369667294669597389963936087100808134821287692751303996552349484022465779108192521459235662650159514985494847652911511806520933439019629413628218249694118125365132477665960193611512642695076160733810005937572355285717154569053284913876589036800952314757295330434996296918353187490465035913666674631728333408055320128990157516863493711710647313573174027730536390308309557546229986288337253278770500894839557565584340966203114967140893880140503317965610059363722904816918724214058586087672421787329772399438383378761886603745295709973325398186581202243756893588667013681518684441698866444004151659921949028395398921025020340152531009720566842372250418136982158037480975695147075961420836340233975938399035868614309234250306929181613366454672999818333728815495011988008482400773814290061450454004244119304934015985570247947752985736838389634639200260196583080316191650199314343632966039502714402527360096549184724465119495032958054962445589970003490333042210800738895874932355722266822388839528003650105282666073529170669323488619848223120184612731185653033927414933499445450825850245092199408470619472349159995021129809331662747429991564530291995089142731130015395456955906366432394140873302825689720968937984755774327755032252382886242056843034891611811450000302311470749811035563829461253325844343790783947587359537222633907521652082411912444818761152191058555841929453973783427738938441103414915933679182137343716627065880505863610300086790884385041850643109606110292663862628777340547099471392189676267221605745296253728673597410957186526778482901006524779341992952390613928249962644939809612423168964284692361610616868143802876478691419736727785156176178714168816655035272490192132565289955632714054730892419942049775535998244021610065257997398699190236672311302944778728187311689571584742705831229741963758921487419916046487501481742715271845893836507551693179493441863295641575451709516676582826595630922925751439415179728486598126455823106725283279562028574100654141978926135748272815489621870905915694563078411204556065313117194081777092535934814802820352464289223012808889789012489996762089467431786907034596270834282900570831727859316418964658163668051239667900200641367717902352984228140278663836393555614528979619037467735108546294098310043063135041099872716109297779990785757845646208858184642329952379484492403980389112660947056508107776803006920417788180409271602264406600184593644161670210278274439659206245373887566343002438025274496838132103754764744436541204386798949347707630648403342277746725033701191199523112236556562104773745758699583449123159569291693207457922174129531940762678211052716255892606925901539938341794846183867982341284898265101579267891072827454594791823447741155933003477607792635382106312348404047508052585396796874674070805139145207043359911121039373053248523748387038387159028673144103602416789549467060927029490163911693856961969128924258968580367265164775028018924920351779690331593531224160128484886107858232002956640866147580867079638319702541071614650197376770969883266798144722710742404923554575132907878200859538352316020998883470616257442035387158681458215004659798829306998790145265340238490926935459371582258682431852061042418821172713373929642483164678081296103431133805030284071249238706062971185209603691656390638386033443816041154908098711924618802801794338410039353353309573645892617535412468013885436617785690220394535747151143051092964969161164872574200992200722243153659776324999089663538835194469116260795131367368784056192250837925601147248574976751761764247382601026238035105490690073444611313299991939496338597176523485253913003732509431971186468063674598571339621573741057862019485802401689668026842698413327675584436062873871446707171527766398457899469614396302223120939760701230735021652334645606154329928649279559872925421173007801427539338908569845844886706670051426346508831602517177436134388686328518362949849296296233197151421888429158529697975668676995510604927688782800091681373473215334370576872289987840808902602242416306910458946931036159378355368948506232043165174209026100238367065043615666316323407758681797899341494953102812310576543096956267491994136487773958060511945406232582498608877012448668000387597898100970972100322210845764785459569242515000694744123451139858434139522346871578707138028949214686802004036791966554124991408609049623332023835450642422739133347325621906785498945476418429598579775374423844616961333145651037937418606673262709128109486275237569504996346264247102723174631063015523911730782737778641982030596994172488293304191473339923433717068088046920986659921747772539854819867502003479397298136154825085363118071356201956266198286036196763319100079363332019171538740141743169328500388231014963463971520551559051056342998435850534780598835062881090528609070963176697202154833039312242886363995844035266801971565372594327251531750188463070297136950554596638300817384495169404711122793651064690711329576358712407798374091487328998787047311374071858384703244978315693553980996145075138846242846118490736284447228562188926600142233571056522288999349100474315362583645510812320374829390333144892426132806886155762640850254552073169037663750051798686981353508339461398339329868442625417897514054300471295122218885539982353145876439583215334503844857529102487021230212264641670352916598715154631052601138366197804929133599305656937028362406156985518662340039681581841675227471344824485519096813036156276501617628622520736840628347950176654829651635652069188100881997949181112752945372152463938896995454046299921675711516904971487029718722536415133551875708900680363258137602052016970949883834103398760646192084155279529754693485959290377623259393231412395420140330028160061343105421530424827718363998264545884372145634878481827438032902156427563650357188248165992348443472288261025530904317562753554580590454253114749012432850252855205772887857319949869108364175977406415600461455049335870073216207780724663298005243201062157829706790705065463675168678627267933441837218672831230913929306815895455402897625243827005178756087709869273245278866067030260359869272725787990050254290457763340919088777064253661215836304920677949968518825331108333377926999025190494818902851682790029086310941347038215452667617419987771945375720665182972935007425191838018515037758988988491464020405125422990166019164772444891458485397278836204069584872030364173427512471603083149440541670040736971022141736785434486572143925487329899044035922888268640128279034617978857529274081329820657478428165990164382485305010618189095159952422305215982501458873185140707625511653841082760216543203793832934385195606450160791731797639891170085914865529557731809283231651782310941476569475583438590697256675767402974560889891714984310982141291219526219669505497437034943662841433548051495506800973808211905287214903271460584201884858047879447876357447496343150349474340835359602801411397966002457563988630076095405311969787905429395080016604041086477044441686628757980658733662067288116297101568471186765602156812358252193236845282539900722667374121156792441626495678514206936974291236387674924250345448240756170762492702967493265090161041765529619698043217941804480216297961403567165987648239010983567598357103405267145808844236518218503817543326520606869040714289121235614907355682039744761010064390406933924159992911736129861588188937851946417611384255061557024845279660237401419326252444007184813877016232266845534370869876919483962355687529758509933231745233851139571447281312199461346181975453048076222465097171345391093276248657355998637463861713381781942870428825268080619094633544984413571477189382283906789619446706574211188367607546059486264537443416856629410313569517247226058087634509893768743157554500195986825832037216386017561339078494805503265577039795683860671946576163620985080216532337152663499640304509038026419802201309553812443631003894364423456928240758436909704159283422006214190573694268467396894747796592146112140155740092624999403657516624546681479643106931695539069275263836162352531328379967117073327008263500337559169336500844214326052057818974983957485787906305327901946982303691605913541409142050915525410843777441576872922630114562692727167902031540175902094698531751390315732623072598240445949887957958040674646689584417467911195879777108852643081070981743624514475891815624886346839066695640232176252639698812310007729092867805725319234730297204545858518735792779320201504170245665279031052184826676275483060146801604156640623169888415226851061545421313731178412937196007959292538591016339205111282324943211629908106461287606557919349402528096522160098533358363699985407567104167492548012467313077241074940380323127548769654249367715977654101084353401981637165689985424841258136611242496421841118086080794951523702519130376559369574602398184207359151314303108821301923710555844900380846577241371987861857972958805227755144912324095883457250925153831772348846282246216887535909891333952111245376785554043963121583860633349150968928339580723642086524922330173664446973129629794028950448413982630306018545196628823108646526606077115067215502785176223941582658564032686386624918696658733349910566527458968069493509019278571783481551842861756776943469467841038956434647276420248882059489168795247169069324179679557332133599882476102635123686734869428243144341628745782158002691559806977152524737899025316524303160573001778360234547487805552515093140504421400221719763841552396072934193734475333418531266650808078028437602792670129225873879260541673146563886856132719733279406753476263061612475274120481048466193733987480068866494548769090073005756942457802352130876573066483136845801561402221921801473473809112636991878271344959918714294981782347142674500981496086051723347543330965791095389224950001928102965011387283767233867851435310688025712971017563009810748349808018119954711365946035928815076290305320591215956669279299359676389284579690692191583134244017258866816745255484756354130005841278822373444271480475734217564309566836943174240407246013323548451648619274897366232471927043734049768417222132426238907012668671953561657572560095946096487286664884340636226197463019367047307391634887180016208572870426813186511589654787072334702069991124365107600517014465503074074068304455213992409136684381426085653275720463415489739288881892315868432052554192825964137189019047304190256007322526852335141032694303844700752945301576457261115287089786941048296025430654466792182090483665001936463175693704683514878407458160789527669761471605869130543712143906558686865492221305172249700003415303178867681558848289590846761751012775852562610296391068521632390831398915837438033680905718759560141118878100522241994041059370106415975807494462327959226104861655032882293042022636713655183819912760786629491766067348311438678892027793601207299944976608972916317134874444025141649257466867975862673056725364510465707163162889667613902451456118793259775181789022430772872900126840402105943191839121372506785210143540613507643259024343383584154869101197196668429175439818595315387155839169962460447905377000318997126835537909843211761916979515194173666498117464997017864344736217580443735824162344398250083411421139164691738563895027913747674520192771901948531741529641688203884729897896750432819401683905574730498523010853574775328884925937572458386243861051069090555794682139853994508407984233683416693032435727177647655017204674407938804103471357764587088037513176151731284009261797008657216538237058026024268831266854138814121955592838075674447866206035217079879740786600287768873429065944948053825685132451467997672899431372621663686635508142508826764805956869531714059432291873867045078053028604358885560292112680800575453769562050747281990169448758507686289419363690142119352563239108705090272801305656767318131921593764178987084340756419016980241405329741531481225265836823253268520841318159691220531096362727579388557001031441395754433946099403343723268732037820061895574136620299417497601119896466482483108638308802456001412254050817793471068020816657972537136130564840911805881523430666498226255338465137678848577265737324051262115828071751057916445549225839992355640025628846723107685630235956444157812911242938745506305805051601394958600092418177348606675884140284078922445001169935449981380334473249626211589118897418786791306949495886661367904383490141601230267147896683799742407497932857944649005838169707707286204259957909600441292892270816958957370896667286123738468322370082706408437939067870381483220241781642570626516620351332199863178382496725946409664674809622280959702518229868978524926072904809143630295479052839850418589097300911915420155841075777844330073999303628049257020152743117051934226258709054728339347188288207038255427978180474726099984923373718231687934398182673148730237164996857153644125720609091468380361068935654098682098557489162110762458241734596618572585298108394130614183642469286808191955555751277167077214624173888368229270595935666961996902125670026578721797770321636674963868224858219383389188505222889467995869525174445225787750078827199217963594066590807152072379965475150569374124892877974636462583844475868733514211841385642920392285592807843362709113170344328755931811107930649440945415997312979183809185146589879748429099955171871599775257159656112464134332785506666943959958607372952753044399260343397008461578553543452902081151260324369612604394512550345319921512419977275534818792162347013639514695562607075736696521704307101630376994678636253478406341034268883179491525824688406057245560529749613312744353836295880209159657751734880301502455791283340261348862493859586860091041203337129499433376120920779773228959353297156533590993191349856299209466644306580569573633422548896752478767665165699344911638025325980527561232830771819805872479076594109116479112338357342359860761669613297165648623725875130640292679704286094332067820762735735988891226909952995240564446226214129089713881684280914845559186921948239601798718794834630249402094953816404566378562649697742948689469525130726463280156779848113406151914413051591445587212511165269404685686401112121004799039248750203946261125733681345959623947443888712914915411890902866480401408287550479539592567259395212727022737231821977355633846422538050110925682687213124390566626927010234003922873706320516616316326801522834618245999112951311385295549519151502855028112782137067804138290311175813934819531115997012461230897291917628226494831214214132497495177564650825210774011649631240619780852656763317490503162212870068280668793476627309313361493269988693793715241862063461727187629719934138739278986135827441724721502845193476890400454180270226729213562886302417428947767693676207369902088974031865983950799374209112800034361347763884915436144031578510195232228953630168090337580584353982740532677898466844345851895321679406800408638015766003716497872485760692081268023323113316769543426534515547197159172302083858375828390381512512767882292735321928209707326286876320727344106114962014219864245031338865609128552543509989178559656839324764540272818677588040647774621116737967234297234784989719316677571336061017620795229283229657595185013292681946623899852151062165462227376383129799823022077296619495454330480557910105643212469823372372954698447462933395826798180977535800693958632182404189194321565180551333479960489544396303500705594176786379417535524708406940774460854248117631581705871785018354707075047669880550814778580747821137273061563954443513553529952305309300030860874646486185590319663951315688004728970221966451877947763507512733489488987887090661333364481603993348347880089778313179223406942463034895486227711611630006285264744900604093158133372789933592010102208882890616141279038925402638039745540810471877983642900137242063206286312966552736536219899340691267455370294192449885677978211379494559386239088049233137508114488372648997620914949503812312789287386314576441058191811540793173407222435853933186271170545502601149757724797081804893685804235894314210684280247490861308775376072539119604986879991213913160123331771978909096187644310397277821251365493838527502137573530669502284734073873390093112244609091669360423503094558694521428097020779883382072797050922659779613764509046478111733079392647366739018320192019114758424301735559102569766980921231631411194512812327406837659667060904745059860091846262178703075585179756329404316103562032241324282044628820303471643307711718333569969920087968915537913223931505266487823966456419051442349700665205873822218964642374178828836779382193025872575135351257498998872640034761528550927939056221728982240750234065998548146636773308248851356018412220168499999756416494228092125677650093989023875069754046532597600651457492022984061486094111745850738653444305491849391780362195357040291140111347093858978460487152484101591434031204609937257474783898912232293640532164024843485446780466461889438145674844383139055082257993915708184893191340665330704857946669701618036637856036515242814563778014600322003587912389981363808302402009580312605875863684822698222053671530511831146911868888994108031811197291558955879561245979203170631838270031353844874111118561753925872306236248326002760229029393161524369288950451197945027427993508910666508273572398167285638683969297460949617080611327889887808816363040811315831761640064050842873143757086073219337525168301233166311300341560509852997421661927798847855280610371261211507154252958811023016518680644281940383789155347253568156699814887136844682972124399225887111308782646805429767738909069789073444583591392476027487160690554166742749454167745826915166739025177835059953004743356262614906918761999017754090397432037328509666403984338079567924309742962325098554889569968849059440193353351026653219882422238117589517096143026834385796223705116509147398821097923940425898602044081004836695048885645336338671047604477466501000651925624871320041673561415984538870831866526502666073064638364336762446424852643445315247526868148256791189101659910170766592724056918034290346094887247912528519379729322032945840298030977757185019100460083395307225596388945697922036017136903889182806356591757510775188179999760659365306544710129623588595805522730788409101106366269380426332940337829074439880106637753676414744236557962189895122930614264626833049444950107408697372897891905641692653613334366692280411627819212267805351778236976523488188821963640571390213337789530334289807326002689115432500499131792809926280195417366106913829420945934225326448992365972193428838763154387318539835965591253408488002440551544016262402814102606476143540031211390837883848387638560547167237676180134925699280753039314078896672818245613727687443023427485152162013865504623792220225669687491584673450149766798535629382824792891394637971580970764109410039490660841404110418826816974111997872835636499387772074324963946902761320664748226692778482047451036633121657892662970320955230328128242906741771773875188026327635152472549646445332944454664461118221851114970676146533241487131128818496094264253683538323478089175418499724841249510784990909096822010575603477779210976650705825685350118403184716233341936219167857965155119446771189444275354012193610615780192932486728138413926371638088993601625762810865324148855716419047882197948155510526160766093679100438402776194839936394239241320753384977471146507270548356146956014684167644667444904388600953172627692083563182256256382516975048271557655548941506907532368302705487113710861591437869825716817073724919010328841518598944068256015712118460871985357445305265413709454991790828760568331829331708974281216135171473309258371881880174895599305869421768156890647796908422150232754715634652331771616447422246687248139943001498983175156598649335969736492122816188214052169375141932473203012311631439848651863085249789020409058351302864381318587380633411516571559706165887167629807214741912974437444557431865454074747562810446744486291109723719250655593494547435738147272915300898533652700882163478903606904446049892222712410883533679952670069531260003399958116412295150419977466568238182197229838073970243684727027930644161607212575463233515722194999079607225162980454268894679410424264182982532960534168544650163826631212460180527867399054848414229783176185038349246579480564211678373516414215947686943233611057255109666270565334624129136897632085630569895911615578877949274305620123955187296001938686704916289927384766786984720555413411633939588528065478601614802391968412516652373291179674914824864520578160414280453635146297481520252420978314567048989874692671252276067701574750019294979938866684561324455395985166848992405733476007258477033099474540625840782824026300812395032724702306349892813085915692661532569207258691383935638971889917258473577314813133437673444662139377814789087511049867581477938668329884821166949767324788233124169172273797049737118326377629585848998582526462666893685609531766276468349269528141513112118333439877907232206738575057025076785192466253339912777491250684997192997198462822769814587828622465409299412323565465023726698632111988140867263020156416912365401301493777962623244480633475382698415676703490224844113885044254805392853463046785484720361504673921482045921660473433927918775333674523809670275538892247111587198781896646496965007934645886344061254318637547475992632284979383762376984152469398024409186436729551416967128476685972873427450649005762409297234648989709275291758073361768444716705948559084915477405874548863507985210954296095900527916524313833387059880888932245610087808992333612380273473041986597896451750756446357246345354517018210606868049560766818732083965363147394049464849029462431501496138652829894112070872830194817254448323880340645054465329879592614862369619742616205000893327080549945601601842679145156257370471496699667531501264329077760390747088170748461056590119161342462381617347032530563213417584020776254093693375605339557054250903663588188570763377229140692664946899956485210978971825019525637819586049648542117917267355739483868963253642833304615020877981991338379739988519267361575581337946630095305076903448172901265486567703886198542147909135230401274353390406652604491374998992734065450693539509334418243059320538888418943885263309092868506620991981359787555100816760282112474447979487891964901694561262990629159164572587932728509148791987636764879107176933585631539677985244281179056537813845088618178612546746957472390011710717446960034763996114219852061211485676997658624569357073227543321941839268541423467740410807823951782810732478316133806686508537990234935808107037432539137524538809316208340748999109649139414827673977509679919954138362017306806142975939438155272188381312983842573446678287575362403930811710419922639377554654603851719083565354879001269420358985134741498374116784199563176293122256491412845892573467284302014332030289014534569317952027909083660777250419877522642995522109422543112486694515507725046290024647017660341732451704045634216792398075411774980335268096139424065287148380373560618899973688640758748782251743115900712621414208346650875129005152501084189364543112739214862103072084204395995226719731572900152714349243636210293129325080153390022079408722044571452988372657895328877151507297383693154976385085884160387554105980162812836582278669148127364793316009738933084148111183156731831296332468595774151655732363035978786081706465584042889128795388261301414244336054340147836771111137884831259234194041107336319186472683502138926065364506367704280209946370581814139262917404797169404264719036334800734828715180975181325256233648827638394488220618195070946118351236042711697355570162159770774117001240962691380111234627267999863125443751442969112460559836600668762216778396468236755991327644311973094680004401188373538481871787889859937828154071386760204616541286970732057128654729257027137427867579560824910458423935025151566982964505879351090384430221893774373895621980502249419142319541089804157415538008398917878301461780883815667545687602124904882821871759451811026796640041557646427126790086540007103400520619818776750972865136920748350000620432300537893311746456867926604108053361872691808482660606259314169359839135596478525109420638936261460594847820852234395969322838401266453394394572861523097083709941234510363446033662731190996673725904853546609574185292064676402839786351792658824802441068225701674281219060562449490542649631892715657431514911140726063013205658531761227043002557587240497062150446119712135200978787012822097242887964111960500059723401099758824194325735249692318383702008461863325502857481010767437696948958249846934775291242023808012092327403007303751504008592100593006410413322027182624640216488705247479064152954301568634427831613384395229263452440945327399006599731286507611335762657668686224565914407979096355405944178901100723211711893967449330966065106724992392256771724653692759764344091338995544699247892088817063728758229730577443535059900742124255997804339485392861558044983465106845337605362046362301536085552655999401841617367805515774889149008333562661161895325240629203699024884474421847450031666481624249530904717579979256173065399084513186312391690475087219313878060760090748453517879494149457259872115841709065045877681261974895959445616880690691850025606721464123569398013792384779732469474560328831899519775012498880914413566301713248200521609113492255922497902014313177756848947122687238275729518041342913713159275965984069354628431805793864741174847229617328233573135898739926238221930887512052610265964791937296983715850364305556090259135584075351717786594294525098587655684290138079195758525155682264404425193730641638228467903453497601814161176339471000670273404754323089463923550157631910796628210817580255478786848919448701529376589477888840740861278773501432813251982919468103896561190009746254741584690365898592588787677668880898420573948742341131132674375852688959849407153003199491783204155055195515075348930970937451667610158307671098465866368418000118691042410653489865876382584746067331676308638877946517216324686013664392630571708172373349150492253503303699718970227708862012207450439668773946731215403345947702350071040071667393781900937122476641656507826453241036402909365350940730333921606942120348686950101021183967859590299240332196121863757487312071195374522668111520327998377077542210089916537317159362471272690705471648427864591339127103040149394234370608524805779868286070728467709593146080770984575307142473057412628077802594277074683806595017467157469470629055787113759526800349031997521548313846467026669796476151511791855432892199116074980902908210485058842352624711386581702670949121825091971360389332662767847270293305554046504381315578732595002448117095163026253610313994171239039500771531927180305280674088424188411307631332707883827874660384880018454416617405746874779290956932451173957637731035225705289460615842626076951016099560795337871754512362303056147681279187576246344811862719887271376638141008110214479068785709164464335435373135412165917769385058172467044470362658677793313207540490559643206531917015619458709430466156777887015701950873510249636379759976698578009423601530345905773542055114646716332620930433861984851286447526338129678765745750374609814034194254396750154075089994495570408330159193986020037616371462907125820964997421208465927028051360929791749286453034725547295850318265004803106191227451047872330323997097175186933893904814827954572466414274592152402103820999497185994064841117630441530348606784040464764280335488529781372245364385801150542930645504011430995325624508732398131173333810216356615097214671222859059200406798096810295197141036049849946675104408531310185289282304744365876441218527057088523429884140796570906858212121473617471421477001604535151899116817083129057849172703855586914421746979728619868653605776997175588217247865180245551401059390664356879205293425979605855674602607547412041009164499411290565929721481175672923040339296332162732531363858900415640147644478037329388210924290485585698099671741850857429416541083453686429080937015949068788808124586646884512376989897808987384085582872681504758682743211739411916568267349008209023514677402290636004982535260871785458056769777193965868125660098161100415535418304908306508394515441667344577786741136017974539145663574736186600325975145472585227057910000455079069795060118528423269667445986388213605646316589073618155868097921741533454442216350633423557335877905545569504801985704196914125176221126780959916912594195779727072885746945731130677766339643080068741491463468806755867448440570412567901395614883727317577488714201061976459005393241694842408645134322068291032098116955826813045164065875874216165912543415310306100774177703783800291650762510011101458425230937440431012853226212858605470828530422803307114409402545046246261631603361910089115451477776299650880824738953304261204847482947585953852412325068333222765356096610775727303774631288898454030861431850746447552214481292905472461334644062444729576617759074987430618216577441512641253432887071065470842204310571423223438030689887179229803231257146717840562149702609035754948393242728072284288409938517912893016895085816480167656296467807158896507381735694439025959797146518209575538790773513025036679880096978442899618054580605703937509023873439871140245923898162283799917478484080234959127850984428041078902383233517090453043256219063105545180894118113041259198151175138089891532714657116173343712887018838043060218286028568833240058658519161850948489103208021368654107082574217973304862226743024811678167626401560804105462441039641846998991681237556028204621369562874970663413871517043407886174599884095798969651149593696190176550868545440946454736819584293756382236826438048951415421013728108177620051156374633223157498577396946886696557902954609766191722830107689323534209197950121066848729762426891760808755062192566515960430043855444907246303245741153772244191511108632105674956014445059022196927555323970820588732605873391980702580765256329795875115250258678018318040513801155322396757091613363575698653748619076544469183521048364642809560905513988535962870293094007226215554303821194858651293005833290907797572967797840440730158126180145211206084908810303020325683093510888185704225496982585476025788391855723622938678089698377662595119613541492053914918169747941689952593157019376790956919003882855211748970766974167679461032798818701967427019369072567344178865653084718800955328275187794279737086657951682021554768441226585199194909273794384719972057058866894165700347145834483165628818995668958750005591260282894602218768293087026796962898892253009312077722050365270897840880964229612558848685528450150126694582203914146056908305198602168227129332884003525592322947382618448257488131123091582333756920836003619786189784827170904161122910053747610920037095522572059944468563394235991815626915240783962758243933752700962891801004301700581680586599635737677621372744034206762844306515841635320503836612229249720988136644265305294232572889721254223840134815300763529390249271931832628804257633229354512187163294491526067148274708921290638074618097351932489893016213740218535067885672085258423843499835796346914117827927910926567707029726615766066374052316236668959597922675485946351308804752402045425328624643647640740444617951156056428539923392673280486019930943945110494360294335185205272936409188877540571919993449645698762859265082193698339784910738068745652641411281512708184674879039898722067567380552506802842415040084906264252235991533094191884719512471820909673605784846771043170861589059281450484148096250222095199875738089226598318335210040233671258768421853591814476251541555755522708918344631488466908480354180300761624757878471416962700126477116794183877197175995024150919422730214425763626380099882768600599919757695795696587356883709077008166401691547612424377367614300117390227402455870849954250877912045793346471285233518745937358594177556914197570426781789112820162255176168030952471173481274516665272708617577712125776204304490013101429116863457453572902563949625700558159849379512736055662457236170855896450456588152784836436187698981249376535879635882850288705239967482078886610952155847577958175786953573656660155149420710226378194294023204526748979129090876567643676145321899275264773246597227625661434416202532691958883881010469947783362498931749945734419793112101345568245499901127843921213554100083232504140026091323553895068243574099766466998002780159199362183150858988644652592466736047028904655371317667270638883935028073257692411578654194863620417694847010120090857822039716681853629747850106662455457131021434346017824829642384263635070725687704788228589992718012812584825080554326575556500513470035250788742638272728656243738581998921727240799340158162739865106108239799763609417737784078178298494441957928366429329339414481723003874378289452812452195175441474822154613881690099386656205499739704728560195028501862216752700689003666216621481821883950754472877913942503089960602261049863692700903384087813463750561260843412683089572366535942099555095716089605167050007201516621102134361133406782581945996632380164589925364619909647232210836885363532550465059151263582235308688842555499222186906970506104017084428141697807670802678727370119582115357639833068365593926918125838787281052120731022506727175333785371257147496236751180242925559012979029645997858681060789310997475095133073532866673020112888322883972242530157849565128965653376920422048110656871024078577458407484126504901998836011226237925261150023454977582548359490007305915444553389614397079744701139732539408562161703374510337556915023555160552189223565122258165360559171729157880751601895736566321911392814332815485851063586743285544533747941264209137466496549217503137250872729679601224206114341178317249350692528653723315425713904920180766195092683545359719176338920526899542252357590406966283710353013978233727720814990078709277244022003264754722610240846242269238954547914587419844126091321011779905390489021111581832380816488673358867786866792164090399122351051234850598857133593476990027639357263245627923686918944192436086796969709513375427477041340608423440696715732986392483532970560405961996278716346238257279365517683746622151678572297508173175347309518748094893714917869062282855149166283148121743923708960383623160676764307117041558314380023807434802517161579769331192911550992916792634625351988828486509620847819128172790421633914544785592056838491243242890584781576617294381874785641620960863029724412980224060837142099327861907122322333929092132058418661947011488658148901186808285527127437855939330070656790103296490030014029971862641185548527175850026664449329125270490590348630070619486234818755327000502710642687513710133783993288601917165016253347860097533282324812305545050983866989813869399463430829670007122576305879996505430869647617927181427232656214310502371631155441435788121731380902039463650075278651236578459321598176256912941155538068532265470274120535808021729292146301198886706580094306095594261766941515408850185318655312034369727212739819832058806702326784089508692743710219613542990974115785186068235385516852896646408436563531129134175603128894364486297870438748988724828421587149103676903672366949733987333201673417842349615355229157416847276724892055622146286657089293174834703939225983266316139480476696163798545508356438794171128452567883314356896995136190784139251260555779572464477006298569740186891706057270963979821204165636069614739613883658123259644459243285238636675778060078177201363628260776470289449119920377175379392553641754193281212135504361152383089956224117322348196094793326744166103370511419852588432169717735676525845307585218811883829648233150188904275620994040303642729594641864155947444506976778416298684675741173207582427890563681579966962071465032047080125841871359314210097825275169100378972046128704039381389501533935296123122128472685677120058584004222692146751805683670365458959127471975065497562972600318270682784935623707727650800259583424291469671281776429222811487731924780770741075987341983621922167539612659834506887331358063992540864294177691239915185034597925398280205545986223294807396786553551643055998847920653491714700145832397995544084993327110849944437174720936630798833481148786033259702058606613293881393507543031591133535876159836479855334021948853399756888764810461631163309648802815495888961321407174958846115687607886367242684982209820650138338670596457764528046906611725722919170995281040450344888742598554518563653917011757659254850489049524968612417755642162753630288297780280713916594000178683346556689467390894054975570397020270686374831251401255034235985399318348658302271711680886348220596364423315908235672597044521546274385176713480971615649600104674527912218546302494585279827126790224436027824016249352836141405187727641035661258617408632067951934101333558104169605950087221646449699566562708579241260793835095383409088036108242206753362164840689886648238248286327354920251003695946441408757843538187207263357327552683021832833179420400120913908036800804026296499385923020771624704671912536147843199547787072764015280292367355240202486630169155523181834275144087712685015575798764802857098283011749214538315618792788312030059588374145874845466765805031755495601265709666846861640096854042404917332257709412388101474830358156988469840965072779340894657592205932339922639408409885153417460935335740402519538052736840525820378658655664427791084957114181679678423205082513663559164587975423138694985715590737514803987711401948003217616772985678146683489838333843889362489662349154180677377615539062961886740814879881895395214212604534525082729502531992456265261585016678924966675472444994846674745300195983900197480192099763173839781236672485724881269616198993639402955745237107199421194741507628837019451791014752637512480553455751435007590790581047154187138572211131333010706060911260917288758835647762942610897771900951514047364675042825595533444290339265504582022192860135785008250946379933747323540595301696325900170159601721773051983485717678231332721501768798665818770269128890696970800277719738345770450181907393788958814458320595656620484639164378717190945105807434169085998534235637935216361095860781790607143849064759733571850094494969104952892407934833787942488697025571503262851589737447238691862247908074989161018945367523388682117560260367504531394362211034303711920114726705719875680822134758155759889791675915590800462709284594600524133453462861583848747341521323764474525439295964793969957254624689280865727874321255298840773452630365338396578160770882431257644526189545439487915683347729061780030999888131606000162144007289557086322000272366719040564149774867785462732255661418801167877207306066896853356881769350649650058836310348465871731732257724217273331441020326548669039757902821765981114630212487550045038256875129924486946214656492242367107269591455333418591823766730836331655308911574963098692719011247815704612516077007007768564415324915621399557778707593083102607954176934008522015172734870481117476912239964457701990440324811228802662198603807934275752521141023274016598384679314396684761954624894085933337055957308189721162298775277866665028266227275446156451741157819557474841263196052750160921451171656534009261772394507213754246262366150694672295846490650885040512202608804808538025867436088150592024349905105433081773380115313052370966178069121482025763401809118291200678409640177050145926810936307704129761852472098237877418871020288926640415009512311780554956778724867983613755554963623721118602905684708469517146436720180432621528083598767793507894674970313965738503290947226459365282842159355954145716435224159793400389871938177788958755811492094300422459011674130811289884364001536605117818536978199062526399098708542479209268174359999256803020608259315144458969024629600167270127505591248952037097733090253018730134915810475727944190838524356653269548310583741898777363563080798978749636742487186239122905274233728941108966330136898850264922489837313606843463134628649870918779787638313148489953978496936839839814435695630211358659934480802297914654217331667328810997175339261869653400056272555456036353519887735941614288097456775335658176681569445724184634368109348371850779113472369937381143161726423781353135600394431114735306692415809351086154082755947288238507983247215500416828479055053231279689108140494676916092859711949841947649907198214853018458393848393144166661543458502289905070299717380951762173192716158542779002104083773117513131046264947497307075695184018834058227260112817919527194720826682300086563186816053584158237897384866487745305406050239124553789547563635003018607548206181380606574521043929325270580334398190014555147730902654275800099762596189020805241331841696190937445733244710979257504119063842769727395647497963620882875530197080533359415848930427836452245793353966993263916700026942691958874002677669970477528607100527405546978054880440123997387925830386575486337903965156997523169424093759121169160127663192042011207469485464720554704719325163694973194968027177241529847905480197036475295712937491889673694122687155923591841152816066929384494748135840571555418192313630212386339194805603190056863939935583435274848886782082973552192224032873305309853198510442382561082671966760900091639527287168952887184824434113222893962248362890084681481710469223218410603277363327250226707798708854920246566564406808345657547380403507102468165880759889667935838725257286562534007381752251106574863478532566558295837520624776946857479272379690304608198052799360036624275401461102077282002889526301372488404350694280519988037045263834096773888579751451535987778777806952795518408409108031859409615356104885867342939013576728665251039698335788209489467666576476514519236103990906672951823153808532132108537152409779265918845838008950565153556165429707954086161618590056759273325707694265344595533652977348632881105217026779303414482253248863836240855037123416585994400541450043104458800516035471634597291418380032195136875845135603918516052751032985165147401717489693610697448707210775774720516254550882925339624357580644019958353259710466327533974190426223147575885070746207178961599284421986249633658261732729688764570724317290299615046260423527577329180538783058023450852667685279391055180706629430013890386717854967175846013611144820883965014132823438892922919641979249345003916948635784669518309794462111461311735033075111500602072273959115422040115856684901915979408187395046687713107398671182575630098473907034481782084169726486036303246001384965293250777845713250034764805947048666548316294478162100468757926601724407108602392480211092970932588168941697868849713616521976283094420406516456764749468684328073887696817965171924462388355234381803976480760362637248524702094935049507592796795530134865154927107762144361651135745803613297492823788445547312426351079875522879432245094195162737240760810314375615609081910787842688567256823875836145927039130078481035552750594133423363897910339810908120017035354916206921387789685137335580997997822089698458685807560599280276871655956077030274791502647423406875547293456977361804717000468807780787789167172608828784272855327207163574080812140474750688771837781047331002280995454515027430068155467606284277471168438893197197583575131841136225675967281669728532783240724968621440163949994970902042409779879164786853561640637626800444809961545327141728257333030610447796937776361604021811040770786207146940849751201463312382512090936536364040229102461697502446050921832430256746504894809017347405458556711690944690975175063052355577522997325221499504791662894759079279188922341866384136767836236230541055817688204348366876611372705512081711464792084816493745589840426319159212678271963483357110659774881962857515786019712340407455889925018911199794400720463127443214058274457746665956164007302024179348725332053884718410140798368056260677640629702400604620515704635679589705895694165353305913062447025930614105626691070091737320090451870550612697718068542684102519289027191080735940591775620304606680161562050392320852137994978260013998755337000655089952602547663970595757797729235158272624972514707648011415589221687863043141058529543301130480081263328286744147910499233336191898346490561274423437459248667352817166914403560000636184102286499449455869500016066685046153776407299863649415192936408835837478366844299357774270611175208473710018198316463138718878166670091143615921407700649519833531689933956927945285783403533491992637669011603972069125565864056689119803297003103055609940852026189764797295760746993877021090277335197203964496786902219022831833329348237758383616596863197648510605898008607730931227313720623708997699286371966781786531025767103001017807524818145360622467910659654692854228794302422181644564869246010169053247729368204586461359385058135334096410485784777962660855887603363712448082991648510856968345661535835454619304789899210195207103609136899438156577710157783129323993277425955920298449994318777499270439407441923353260817475897595666137945216580992493673721347647093407012390211502101008664039195955194819783660921015615428172599293363163662002844591479364708785292904269310432487313751941869166332151131708780780527166073612727493506891116488764887633914723735903666328859102583104254480808767992774569379140820079977417934673146358485502801267908244692241244594357149914764084572686950846457504094184137714475811005578779292663790943092571258384636820015440644577131345677122279030965053972041939759571111775853999921403013452709048994102044959059453640189171585148638280491134069600691477261812893809280983564129682252909983425996398238680433374111398866675742716403416766868151013376842775694413847117389068619181424533279237836615214126401641527169952489767175782096373299364964319238771676231587175254081942977026139849821887355857734781964821889667353403696864078849906994874849819612313407890245546095200191504099371126269101475583868716466528566903271773386219362803648373218613806122727821961912628189533110127441474277988188870026224563441004196875139897549287412926264500711375677581644079340146565560056566510931950642147808247442067205047416958342825001769130968845330806857575327805839904984000869175922908842087165908687444136033314416215318126996845317259968558352695772543266291833338530839013085399786457032432647553879425915636239213874473119473472817632794247067031179756874505147748191388782680488288886145847092780282978720361513320762774436702133371731566578106724000809769873189981409905592312818652101734881326210789372848363550097281132747253265201536795073003066372651875606107925757506431383391707537813941278038831634482705385237992669688775142489894140021026930674122510343839201572176590407265728178722429057865812914104627243938219118028179813490616897957333880589156256289038987010410319050834586261051933704327100202660380039210571955903509634074534479584426965438717072681289178160292742922571307415509288345985907865622351571188772094434272118076272005626661844768061121215846650121191042132098639641095693602771255060479951530122562784534244950109744064388043705524089896971208872219395042266503746058569657840471932753814554352474869170316906620179421168361200359798494157818939744389251766563576288723533261756219143465428157743906709527732907580559601646624099062244305769522778400528064266253537034853465748632082673922598220244559612500281804363511849724590062695906748227330256232736163736489703554746654181491887592100650635534938828954933898483282897347921899830580674021540103366267323451321543305742767262065110955453220133551705082906686694956670724728278886915798062314379112688000723011719013482060703199893140985715770710405875963682654681877178421099566018743946884607266644842082820182893170901738294474940506487942134879969952732846433220346416100096414787174114032734879551080766133527645426993953928516739764233781204885804614080281387327005903881337729669829654081389231700325734938879694429038300268315205623878545310467484186212280552638496781534751892896903943688328144711996137437271528440170601888910791469207556118476867194921566206318025205240121093712087721545609795540732938427032579316807971118018181448967235506728405571108661771246068538053418407188796107016776221286224742425674226638468842446163032917583140748260142126467918855123717599517076800642637695523265919716947185954787931584355676747991781175356608601612604165636639526792186580480122842698419572114102003484162442369850059275911939148122911026741392562142694868887844031358473846919686649274005824999198920502571897204310161896723944982883664191644798125438032107954348154287213611693752977580312848670032102943316076168060476336483712680623761171922951366135773935315728059974749635446540768802918489949793929617848719208522968888640242666648213398053810655476070677482382104099210458387315855564824257781914569684771434378925982914573786733094748468059030911728556945865332782176080285223551374480676306001458821058329263422549649757689243287295595476527773227763647834535416380791022319973710562969068181908169174397574442974611344812902270188684650579477841905281299196085400723691392515599390073639852710782739981970315334446446889432324926301965426446652334736716812839816452552479947168776734170918006998260600689224119837865317110544435981770329324086038947766847231586344285270647974291085268085738226521927482020285589168772413795061418509125953117339556562359838282851040593146357313599774700431936314007153354282147671936394698567258720657219233040157669782610825782349877546020781588374084411261030880114790720660365656475275096841241895452977076223590333758505640564699382915183403688144057254221697557383889065835933842426307285248848790090704360216193311347423120145461812162002973360859072294904112716584925648967332463578381771809069408983284527737716028551936793202099638145316244602090023113744996725519339077965900845385843946634670659439796426567823463841742638859067397125296513443239186847256336043102124904320212514405862597296798092419111457120565043830267959239063829320170686317630261789777063483262130411169606458898273718268292369456587220822266819652607291961426980059779913877262398917341675245823988379087888108518535318486858283675415124863617756272521000728594495039952538988850244864169884747502694390536582299328289255187242527367829132585118263439089589956970711541323175289043015078850890595232882256180381279989695550982998425922448468795247873449470498288954676185239616118169962207279253014416124821899020815104208467433143350949469301661512735766970091972137963639911220502947380448349409106406297006990036522195992070870471657563451334657313150052533643246989476810686647984112656016123971893880905499929185721356496575808553059935434148821731169872253541733726395392933047131088838659854412647927372320226650785751152665107221675447534749560821220438225124290896588425963069624770088995835681779033429604524102365933925080533876662251423838252390424508784975653973853360369776989537603488490011117224390300777076103966122522280901224972885759298056465603605276745577914491555691390286692225032155396121323898412513439345203054677497356809628236992247742650928795358498784774001261115693057242724098865897099170326102300989770286292549435759927081804781691580571525571643529792040736330439362010344639153910329232187648231652668135333816401433724964123520306659444450085871254706725164744094736480280007709732994100333460529324224756530341144936838443001763705873805922967008609426399334282240658869896268069889668524769189099212203125552853914611142049841038752976483063804717333568327037082141118949404506556606407938312524686539825224688420865969419070805520221838113371527240821508441231603916957767207663647349232529313865452360684755848853500638626912834330510170483394478478029492611061174237228121250211641345784083681925131128807718567270946156083835741913159459772162492910345601580711665048824782561212733102444905234012057574988713333775115383239947542059342683535393268105732878505674236266371558764226501615865066946851062060731620060450904253756090358555405710560320733104524032189100858659446189617958587296178689374884082590156316379338581593528856084564589638217063456322341655490339158220017675553226445754603652360749284473404033681099262554208188036118887538617935990642615295441634703190773895936377918993732054497375826496117281890500184295297758216112332313593310309976843493088427536637661646287917389462712833411639119832773643377409678354947666996072155154991177855238514529074953793051559889947707608917372501195541243339392595986609625578663062528114648974639524475617641028985474717855400610004701979693700827642372669422038790434956077677154608465172628677753461121946281706407040868526686371958173294668009997874634210021885160624386717822212140441827899858400557089982369943147541958606086711762798327323326140981004206076237848524664156810363007854861356719308501541389766720841701154977980868663483794537485809535862676800491343923370647239369477078514807988672513107836227203917465151423246843257894604365101790759466186511432433438580919553018620635835950888559654930196423245275170313275729864167160882602990909314284627211209286499063122452868272624415451514799966926455751229743501847456410168262619724010259214627283740386028499449003262557625666385052414250717559404826222291942245657159304418557257910428915825186479511650340070707769620105653782757830563390947441097607126450257339588679382837911738929255424623218218531375075049887192115271218538519605629615296856269260771704309057463047939847553302218795862229299712133212160863882818216138930140143593791757622087842481505397783200093913401506672718260707590384151383740374809767123263497955810741830933033347904126645854950055244534486491837366833341931103270070804683775382635883896800019580816059906295452324524626437584822208055895057893715605293697894203545940212750969581988936271772102575348251266103476415890157317404763443203373074524941100032355385458871519446547105200660845716833353081288623512256801827499643564860647455897256313637189863237587614648899976533131700149095552216924391161313011612786536332625911504399230294105204238981445564867299828136584505222317748426350605101242847199849972754770734177398243053520855556122256491634666248088481542975012036637150080472047864756744808428001356904912372571201594894297468091176043734152470463025044387428807902737368945104490410690312340879811001786414473515836627947504084785857085455510083390616207573317216299052837555379407973911397907701620608645602486608241284494084150892395886322206318945059574904294054856860601830488711195747459714578850277156278200193831908771340629734230441194148075440988452785815619440017927625697658199093874338900180610471404676049180195880439684869509030039646827247742170867750611359932865504405809562209053047108199709965939563123353575950518585108359282707181651211381928300010598934273767664198960768946369701534901984130924899804449251644328966993821695309832238023283103658029377075334197478920811908203162045769952576789672519798752605117815185534748050891805039241987912400123582023894842025941944581503310347993911758944600665815776701675471637800273276081756742070575955533983332626742369740726095339749965079476573045585202443098016394148987794461196999948734845773352885136257420947594822517822760924555931946169924968153848248015196250594949662665974408846203862474213024242119428369977841163670131881546644164351838252011025243251071535965358967288483757846334830414000314086502627603290018502689531855820982742612721909321132050884942323921374476761977708105972510743015165632180672633123116835399371697223624419381029222067784204831275403288164329259269752046452948895755031453078785185096309978987182889693640297485359340545138699210815317215274134343758347626135743324634005334620693472934822262436339429099250017510644052834303553646023774644053992098084513092301670963600737293375274563482849471031290077434590476508322144061069765148478017542089101155157729770912915434696639886544992348175441145611637855346801486903672664689016889375843187955948318882355840271600802859978382888565198083849301868135222551954669157069091622542460469258453539389388833846031996071178271353496389648027791290295120975476787513390588729636380376663353820195901583143133282745891524795522208067602538085795690869431874055021585446456193073295044584436517689005944287272869149481028002862183103562265347070960483537867219685389311903928324882618494624968212691318861456845869714669012761709049338787034160475587589687474666782379521345846346413374371347871653835502093401113482399840646961721526265476680739222331842121007212509553321713724807067178025152372224507975414945787565676948794017395873112516869543571242331285301191654615202572727740389576603067975232999574703194073605815631846410274083393125322890800081895941369284758190887081347045235042494239377984844473063449413049557667473549570240100879681015320625990147030846888516099327911285066485696512987238620835569642021784970296347004591721226220277712866385199262383838016805544245224575473491798631154918335890818651754808057410057173595822088158391781246790676046721152377782963470808764397361270130036931463876226790856862885249194854933518466863641049804185277535324149723632253684827686407384746581680983869917537496422901353019668625618742358842604504807599590354358611845758558416347611456943819048086289618675356535308617681229405366624904645469655435760023565336281946407009555537618345842425388022315729296540516562605867051815879583877070224627109034970723555148200402001704242637589368356051652792085770916256420118808898971744413640763005534317219995069969485728839487751883458880948541312840991082610897333425015996754052669524779579009002941511319509146574464543668570301820339770408516971099222746488044823901298093527069742097413846309994199091978110166732446551014254488708409474956807405292759214541832559545594933186434841487478569493916031767685325677197295418017817472970424989127371582252556517531810502358148682616517807846018767279890602117517899269195468639851837114602423724344273117471230153600924355046429410938904765115936077916386534950781800495932511465068917387645722512900755191150230245705090588245694643539133097651474843910981681643096544119850554452463919311332730965585868155736524535344480560653999179756882814816269000587545992752359348342637245681371407511967627943897390456586107087626656830310533576216714944010215203268890202721563474246985483321247933242451347924263401915386334748902162752472799207444477393925687847283192581276871185054340005959504711204140917138609182483230283923307268537343474155391465552648822435718106825874983911502676362643440402032106461553513558950860665777653236226099761071449070038143066809680799157667914218574877366089733909267385995386200989967694057482968981560850925995260672660502134867303800883301538116288234143543484677986495826569285540360931906035608135357797863714633979882919260508159485355575193446532464737299365697301480840933484216854569576395006834280662411807483850111079077092546537590363218630355309109183321444051040183873415924791235560549117251894288628842409941643720421099694686004626960926184867152017880753532845100882278329778146313808345837522559970583624439421334609736050667136732957093618543999491519621135569805987679542348622915062185065255880757017349174739058531966922383988724378635105488009475823004406449116906272388215926781317775250984473543711445435583431874871632289219493367929096387474143404260825950846285733126681716597808551418257427963047032091964967370490798022731846465174006182951808781211800901828277842753347164488003388133691576798493556800575146124412934684396660324694854900062223638224467821003406181885927637239216461879946154231462321370816931525397112931659834193739233276365427558950210056472857765702243609764949825050621912445723493730466777500776300427801337426313296502511182516686553123560681506420835480909844776938391621993470180605749014670070895179521027821431608372610877925043001536679792554928168121371327411498884418089163279069031728757844831186199377047782457123878306466817579649521984163367605982430439622357987533020493774739056157966600927502567836742994080756283325215471868655178314864396402658870473683290378058397490051364092794032559693183039340327713242503154337402432063365389057560513086282841610571861596117775139309548252707164466402186193230540209174012695662420448656573741154053695803273123888111733806334191075131210085071496278589132427945436462708116689250575559062362087297578169827467705689387820678966286097198103451178252853343467931157126476353490053175095177920624026620336272358945919678168802769828476405747511876566128375279082135161380030146126784407974846895603704589577343519317075373673775955118420679295533937412093989610636083875029291638045882392485624693338450075259351659088688805112968498084038230701376630160345374885136090151044098865722191821041747166761904132692155676468151533533121966537987442794350094248914322876709779300276255585175271708784461561549676739853261281985153097323057762119007385849990987355303549308547893910647219493417378786510112278297456198179001756876803743110823807606240053737364685273187159685937328150734746643140233722041768576935586712772986066499677925810933379255310150749943652348336660667326947281417672464146959726290948182848770504870469118178708273369267123383627399618330640407828469630894100578038400455689492118046133596168379136231654133950058814608181121871720214566351617307171934845172302711495745006293162753587527170556695381973270614398855551138960233001725548631385531511541037596127434968565570908230501314706182066883511961170243617284413630148224207960949445033744634823114084769471174037678817303692284135847064606346702531666738181808549359903924956268016513613924677493852108910280197282533965681617929091616815653076651617456487992184106530750713842462788171576703995321470688032829003774395867363322721161661211999773550324694796585173873676847165750943459244177784692838435205623712411283554038764864668402309797886670619479892457023978834066268641542996334520934990311681130346967411337106888961765192000424434140075857196346299745564222055944754546572057733094059314208084479706858088508034226161569608577676785820221168390711450980205093336283381696673538248667220491033208718731721762689940392806253240899197721917991369855801190452200518047668126482319239835207019485565425331163139403548829139821065713511114896264805264344554154290342429687799920849442741097694098763916190536538552482811823708834003760801291556612390220049214739794182511067777782358877552210146812654991244121021482510755365263424036566260445419396203301544377675100887117070555946294451352992418397660627374004101635578024773963699742118506942464872620882875441981010558578700300033093292756435207144104793183619311910747840353119034375593520646022162392833594001322111242340528060649464584909933281634102631019965629487648968282732325857746216378791330174740670475946031689226920194849489397739990932593804702774177910012326523377733432067601688829397439167584662808417419673006826757579229038042163193710194352246266385757945034104439492317828587866157716150497766264813196109333401086947321268000182476301734587697732972228016946441352845785020583313766722392173489642666463473475793966686022565347944870418874819140175310926580854012289871633707717859250329633851949110471096114045891579678518759911574134500268211250583542817923513383852518537690740848314275499311082451408434780951869952198474580698438556177950830333485005092976358095679322761942498736313763849330351131886600294185861375093832875234049921093894999430931810966333988893331765374681440512872896519617623915992847510420221185822027765908421473650575820767429795182861641851228821237779166222590913802992663410038854018277916506575967905454951921570822738547253657969607000774387924644304224740937284423270183613677835580135969472181421915336990307105771254758551215274259849487221638614658551718037196826747271728401389469241855889738039090505150550690334573091556980783702094665146047196608612767393921195901362209744397824671573549547685776367936019374125507212188360066386641651867924728262129009563659550569328638746948734590805209516801389442683025571949691072396621602464692839479724559995452657358865173584597740380820661066415123576084113276200612884465813782976771646292180346313315844142332100273818903672008266826060943820996000033332469522236820939436274470450016741084708827066139959639874840435348265594980186702584635115078988841402481598608568324100323036255042030980213760838194621506632673168855094946770134736046483166109541697068395247670386438746642773601172088218636644995285822624630882553022895740816352477026757325818369677841346480920544868030619272373872371536298806511861379552989923176371825011473562662680778971804040271160950692333237825320227844114934682890956921531355427992690512956939544710889569405921960664572333619675537697205382229308651061894938251708384451474442904837733622879543831540881976982742018995483917319072413309908001735580154677260966278830502638065804211516581104195786149746890967303680515079729394813856924314499623275862258761834998143178344142580800546439396612458831390310936579513036814309889587871264718112812433208801705459205701318674822810595565729362438610308589943509765244523486603041679447850276656033587799089844384885262246123494525809501268365203639159216913798333166318485146695262960579899444719620839824940162328084688470972057319070625674564817135206906653792093434359532604546904599746959318076953677895461738364416108606624547795991512266713327461965033022190228326173638477689308335917314023304776900989281773015064855673079322579179084335209950463746897811061945564567374512315012901984445024756361248985968275732653064379004361035746704566093129428527235246741915232276604035452573734037513879299788755006890106608231747380649727941217673120349943472983817423375512013705836667914857698904109514886553932643889767824490412057152355651806263781223240119786467847179834480904607992851403772927343340861098829662783596712597647490549454235568363251551462468759944636112369823264556811016983152994288597519793513217450419658475630886283391349217487391703347636331039313793192851849935458917826209910561405123525603898641344509310579819039789384730268261926752945656532705716831025345673091978276020875924995020548507248486004592811612709203801399475316383040857114642414296467027639073449480011487618318931257355987682542061427784594647227411953263951259839050402096694927650503929617961236613892877782701311454584994461806374649309738485592622161417453301665568844370626440155778645764413741740657572908548950858677169766903539649962253322487669647391082314189799160718323203666929422376217455515469774082652477971061408987799989465691293501833582144541943329741464618859630082609349566796380838502771947123948892290240166198820976219966460731797830122405267859250076716838246667325308755539943885257947308457928661308361024320991122235294188400409538352227408101375669683979879681059664931012369886616488792389276786217686715707697130803297144323595433127165442752576100050000339901892030200257315041873277947712723128417538632609855401199006551902286016037934035927467986443057255744318769869679597520736076558470644377329782261105696715128446520707498128495054088893704221478431657279359565903315201518432761644812130993555195946362043493866839830451324693476117351954300130390105356707040513281197965292037166696672031383568953636930792757163861682852572819088980401981521477480137384586123354717364066191256700209919465601600818705321238103992769966153883552243444188711380089914797747872795514733091416353773430273798320919883553512278540996367162020383015861392584532632683700518099181396608416140680963582158163312878034051570345257153779924914667070835566130892375176943811028712855181519220470053286475421978013589525111679804207829507996712474790998869377667277311692266804998212335411738095385510709797313580866389775099766665174865143212204515341430914535791719722187734302829116387026434159700176410187712295248000905513539499314207213913800090634258354987846118945932861180092406412881146330557358248934295492453926187807438710332380267017559146722234790598016833687248241482285093971649063096439993852284205591749060560573521060287830957867837971276002562007355118177546363324502318302029147270076265404444645419140271282877361530679357133939498362814763106726068784678599189583292699507189709354909706191540424095827131949856632527369129985583782087583640078073724161070925137157276414704379550741357147888002878928819224772050186098632555868964569969745215203177016345738948748183816444208734106245854461024199716944679634901709476994094706748666774218446427979518470709433849126426817887244939015919324604535664453379782792972490309225050146319647177150355151524872403699705297892004995926184206959205727559905647650365401736303417130601770868274977579987628353140743742996112062275951510828033319305446655666986326318436094230275430961611193475038111060305215700849237931196563610919661188922126045392828015236976627701028001651169005864739025078671021855159099102978238273792968866638368118183414464143367224411420809308891042195443250863035793360125676297971961778940913679304433679225046692985056144578213341905046032875869959821385217383344196816207931137177629964164621499250274870122395938149229372375098644826033920281954073938970839740472618419645877050617438017466853308676375440593332227729503884798076221839640711934963430272965991370277165969087305976886596579991439065344128767377786559365180678650669981801238721014611183391661935438972863364057548765757877199776210264967366488637371334829896684261753118148848438288296913292472920043957733896130988234151437049395577400442095908724815708688386241260039631941687066000413780204905442921048920051906227760783921128439624494634731504887995495978468360240844313255702789094413469727594121133692347856285933720000254045593500769988884823135781130711245310616625171093945101872563222265626415532486967117450649407188875392107542105876409875200806591579981224405780467977601395853713442715906700966422429198253324043586618062133237842253318459389688244188181520465767196130193660424676455416232368703860164060720660756773482852312684583795540742597954125579514435843821259683716443850921460655044089663512333433641594180500684239805009221503544966076062294608549657634600483446351445409853765678990736964464560009884576353124040495018404966876670314841805963889157508674895067850222656453141691334929838312378536283561065824546271888863695091756409354119471973216019066200314910843521277052905989094589201592800090549618359300382564465109842491499998198962741100669072318860355987180723214993307933756330889841832028022255606409670035089726508803219284489513890470757672215266041610422076750360442845166825757771536759927394241328435624058833098168415454822091867892495309293556348066751258824220789652515174564454430820190108419151685497766434153248770519722215570308281434472872176980773487487515738595810194928704466568853755464199511236729585609693040709563865203813013739760776390980845772784323813977856329607594911603408131633646507567965859324943451980739418537923126696635393173815186016499518645983878501498260074540550612174771480619216195286515513795915359144278086603353912074876873649372358309126196392858776799999970848336579208164669711310021670906387853268863154755811607246176092735691321262570459937496251273883834356009248392043761280332082369895337750178351778887874123972361352076995177125832130710330825420066338226831933189400835692302912622779955722604297818589886168871611211448885768101949656089051783868483833143666068539869824676781054290657681418541553527138568056296030946822871807713552099471936702442357548036629372878179529958018930826740947840228333346374497475550322964906893879153526684109111374285438760688579528658192682661664154477196719897823477189123764743153890095706236765637692833557177470917213003297747614381994833383736617985050442847389519988518144314003992494932224816009886109995835848176424095321074888724743414476049080483721202369033649894424282062250248442156315849657847600657070947678230732608435185594876944293581210781991153002781801086162481001030400385761767765336389379295254402898912486634448737068476636222009167145471970470120902366734841349237355783380399528696961767978931352898718830163753621701451039460323381259404456864583296907063336859139740885987714329228778353421766178020738590127962046138595160258819794664563707166383270112567782287173411057691330082160002646113747964980742279052420423293550110241406719256880229168389276357053927618050470040370294913532867906774280131822267822037502705938422396604924028664743665617641803776909806161464822678407896094696497038655021497416827319194049649868779171594175406655718755462480671582554424397443921211818379510145911608288232198893304389771536384296624776194429629051196249932872378410214108023326911987418181601250400249215214136778383951505076983067751670814538867789300418443403224852298264120907089098149285207646221877673850382074929707802885146859624454798898171953929572372035951458680455622382953123292929466270286072703299135962129624600229410597551916896754996979099961699320596177982398496682827174915811370124547234571612043057729510047054778955642816452634418852169209241093874793919544744710785155107279706643230019787462803166662996127412887787323917526616044499657952155445714128792207809622139345127348285599738278059581492203366369674296775978954911529161530554931214866239941116208697517095579038388163842365635849906547784817370951459841429216737752292101473551188729611700834855842348704343990270216454986796371221728407159326256907238650984555960482586833566872258108174343844750600667586216098452065987265095649110944249583540957612647117498781487727798961564461957424747436243663654372635942526648070841878594205220054518832049490526066360425339837660149116057175964938370517771276197995054398644688923945426720636111252995203022744009006427382115756709184060917054930023587097762550621408348376326063447112102042808116161080510394723383228782908079879068227362691450390426802733571718132409225376183900736137542729657437983911862028130710677457438277072778220765995387943085008625071064552880347308223516697952312711600248739810601181244968877395075199602386070939507233310529238694136268826603249114768600903862716325036091277095712235701547016377849552682609664874274743868962683515873959916149672121122412705755946817749118981055367419831312196919025974231437279866039475639682515124283131362429439601797667886321027523078976944595278989940973674370554605585502181794419193173153978650271718421029673327449250764827696789446838256637122473075234850754608953684004098389587186556621094750054736479505877241802567095619714634462341318673694242467589021005163374086591131203625821998377275554270620362162619775291684980407744537972083935975073799667755187056086577068929542703817060779327124227196734876336811339532902379632221627303611441993723607150596974798492749285593436887007701411029731342807612355325869917911197403627609150595923090437410454748044696120418205972604653791486637102783075209401807872768852994952246889879698498144603258221996118052386892803367750071268242772687955613450375704170617631325106031549600952570606817059111749504371393898479359711553287282127030106826856282741670357294702856151547090235786193452360605091883829915738637392673728782136092500152655702569655810243468478088866191308651956575831552770442364741046893244025741688477522425745588000911491931331730798957587062771187886140916928988637568152720208305772835212702069206204757411877958266085530464105395436760985127403205170138244491642338419373584643367662705003886602382139075752393950807925147959252123075355450790802802809646021779471787186247241350764111247459060469116547793936406804145912601214063672209530182990864512480314851639909695570768427665604058640978492468243119334022110026182216078671316383209284864898257225111372152742789491155772664338327561511975589661849259101039541183331657495952621129567573927875307065417955773025624614180461092881193986904438987411944158181080361109697347460794399088756665735854895771014489097857684648458510412194407649201567391206738877581060303861807661285222363962086484716992818221845670729493460448375326455803085119552886600246631986558112283599594200242189748197094475140259076570100681828091781810933841880252359397044159099493241699716832094020459059670827394404990453279813946374079731926649385790250482541645671486643762197003165033994878329655714616662309231591174969346828755997463753659581164764654419680596128715774039289531577950718653479909612166608629625658501953095814304310654335089937976906795049144533145055292703356093939878355703314670832687022171122034039566015588505556235569129152275631867793030006443814212982679487275630284821776809787077082320391654613373178438552089550765493917467715578546169141207842181109686923412460837630246095553139345897967610574841300303677289149512865289718060444830265550697580906639043747742008341530567015542159969276900794470596796668159407176456934481526524981310744214063343311243370352940220214626933641122281351572594408965115315363410928079551623136802726295850957077574288722537727438079618904452063048819015124121572045389237370425554635700823525344031134802514238854276853748702533046295914075868951499385478700289511161624360475202193691687994676036879589763909099700830994567955383511113484400700043163985687972680678054503617392712854512021056863800305980752645924137575622653203978381139926175884179609198329589613634438188526104354090899899054394168720398551083774587043108827016980792131764270353583078427317419892462004846677407200464553574479603392881508459807332538620744418777240114163595829428592981733854004275219610457837901335317506218552813537024272862346966329746549154306500385055149601031206040929176619695388590693739617916706053411646894600398384204399458305116269825462601430576325809090907931892266254549886633034096946582172486519122297603448561307440942129213420121258651359589236838284215918549185083084559077871082532262950559474714729200089399806793703946950974779074352332277623200491366068954896321568632764737905096672179159529113933614789460312339259920556845006669685560904030117323986397311437728986074277054941201446372778853661893353086610543364036248457251822406496771465315280477913392206802917935401907129711361846417311272089257649072985549174703642889053230006713822760606078728034625175312925386173709228812673407421244619620208281926040594114961889822895288928279718465091634743299828440191811409376319937054745719473973873114528204804676374123973930625369897417399544215563254572021958004790137341457876665754696829428873963503062488486532146916662431121552007653492188105987387353817780206918533177053022412813622883606427572218973555174226195545228633678026731422078156979153153321132196226460940784672358272134025815129897727520460026755409395102636124390050011137241241800900663997678451689482081512712764080263676638880798592088649286711560141181883645887146122385040465631718373763509352789976516532121627682375271436159869691911064093795370427134243025248748290139086669370744438210782459500257394946568422115498393198290097253806583195848856768234073631828169764074051546216437289015331520802241970882180541601832440045758049476185721247301025558966110167246782695887385223503231572203667301614864003941565825789887601196440836665498040981989512930520609116729834803712715183639694336989135131653890827988837787776721726353125531670546932994858096069351261800166180523850805103317734987050229239393436610284096076764105103019003541073305683681588562308420232007366620783563719142664079938613390317624895177136379374011409444289159291014309626530050635779135480200157168026174575928575881053780539817759789897524272832522399562483995670029821684336111248123723774126635701522262478754696484602330675557894289554407491409260807693791884985866487362612416655321114524684065584899985236637026042551274627087468172657255622713825863548549635591118720852019017213516545096473820435592189494671282876457845422136807998626253399937124406178450185549593132433588105724801587293876245431227635210079056213642258647038496769917584751103202872981637134023681135231931155638194508950825624234644876235600481959231020477212445769520407508498615904537386236330433079100145903426645070761748832031652399836837171386624078639692830952280772585594670661419696051193001207542930182639436212255564191690764819268087114814348948096022099412342459344237962890252863052892067672756913878570487044396920915509039232770190753907128619909576121372187985494190120917145614742552943101124910548618114558932356135524434844167353759957034832266762453083484212548720913864663554896230211266538826606027185038474947441375790825767982343654195327038108209850081315664774341869651416493606891990434293156017913693199350375509641432119331028641074193023418411253594869411544873640333306034595824297684947215282385320268105879110368499297840277581610774461339812944415946988310622368017007614930480752317321364202969209755530496703532289679733661602347484576079756069403501410636389393090139883026621891467593030668770698342119696648410096548276367507119913536547622694466245852567144760245669545079996733527699870753643345112507795431180031703528140386543246977886804977752378784565725842082306232244091370312951066188305898125942608332889037391774675077040301900323360778709431989890530514758101289929890504314422980800960869056550769581936149719009349578686008969641039332416052771712873909222638505629076062113656838754718469276809036740057036533237267736934262740413569282791863898536322209448994010876530716899928958460479622123990835765389929030995189672238881908778612898309678153462170794890748371344213550319201210918389062113759459818136251966174956010207148533854519268467689585281926839486171165574173630524579805200501947645333795911932397142941083256025661406414660201683910755402704740716960537862651600352315322109697398375167742797854719925470397576087312499965913120841034049704643932925357843842181539278679189951747813655472974326230723127583333486782292789016593398751398656190547551633065245833923910770395373574492890430885914897175291255543319053230294161253616521025843760353429555111937283035392508435769604028941622537876662536914783073190430093266632368283557277267782481817915100332108875621463525777484396320204330341437215859873214557085313734187165032335708251219160773359064304020152891184671737592031842186827227167386648520783654529501331415180041328823052114569014724204573819112330817096161312177965672503716927820709734351230033859145836472289278263793654990808833971709414590501988688567138696473193061382638509948604321150296239919898566978430590458306670643194133385772483541891175288984438030853128640483236571961479108777065434823141087373968353969880966538408819465978182196890970392368015252477147078252532523890828015604079236672564222679028706699976715345063129909844725377710685856934219942387357146935550490250751654376474040472722406921773506963359046377123998240386953063146902834258470805736413595173292579054860555089431025034308146412401898782481596919635393879139864680364128404238416352888135659828694898827171409690125879074065115951252023820604942489028348405525320157963585456047398389864126222971420699642124695069425659198342508963378917185994512311174115553630349840286434935850908950511895192344811790425949940101327771948797391103108096257431151536305858700784728860774046796531798326774795969503935978718742674647086971293450096967606965515972494006024690866737999432101447236820617804397955653316288234545306051488255329471329272847219986812587541774615919011459621643057476902453084188754972186912659050111635673044624275751009909318346188561302709517770614745642543479190044149887360894721768817814013826523122248894405000176777113665129792656901426933968359844669746178416246392209494130854100163484589580951840880434691672935738256520405583345179501300153233380825097053109136296916929918665886110576533624700052626389872497229189277084458509737629516696652383034157368583681037182733323503184145372543818492758829289410641702977848876117517463577960252997149903597192731192850816029334744004141766029733822092955308384120670074206481335043907649986433239585752555581183472980194853530434008664804865735530070527180218180541155800215002065913077305247586368510496608685190624002698446983493291239504035025044219204630396713238640253881048090193073554959724475818666743984820261247698961385328664099836134725206827763080412487425564788193786211746267687783335752101549989734941417105973935777337800312720925155680823073046847073015359466672764150036579336094066535921693730405527981543642620735297560039261843276761138822049340108641927999546747500268636877220555208710468614520432850859238295268581641854876464216084864198879481157969833122130244483174172337349387849193353260776570873993153577010727220010960300627813437285245091522096206663642848009062854430676220168539012230827474468434736857357502665605378435178721438046719264157195837417136021796269523446087990638004981529136526432216751809631164758735023040408718940154941936923868195550089251065725098806314512699999411849749727926386219020701798462392804846900477857608652045257937429649310529410697786111850351052083960614011052865965485711933376488798480886328571291708455849127236543252317610717426060068152409474690295141253506926827332980301451957017113603562920766857342097368083021388953279438554245000300646277042470624761958036630304355749078574289276807906812756785118736659999950480466682079578082563894884325914142825199999254273215396380136149815204903682525401217915058828249940661101418257634006799719618897467421056589273699446652486143296883113966161528661893523279618997383502289868500032547158486709239997084756201459952096517478039497009238736631720159932058495130458146527062722901230599097080971982592052795397606929865831731173978679003061484148557920221723020716968483862891855201229232288242743908554701549171710271525933019116433154054419351630594877027770503592455312972403372861443311266880323489486203122634355173154834478271143484459613510113528255084872501617357687654376344505302322321283904274125929107602663477831719268495688806517410797266107320645430186357011994109273015737843648827900700872328452538515037077977267598294911336226443726513559697489623072696484675221521719540203289828203149589257717476110698371040485478659024677441869824542920538654840956865118828215032796759676045650340621933154324578218621380042922718246738866256610687731986776754731766594763749801732786604449223957608222221523275586084259101302695210978878518170806130288570033188664586316655492820582429940730875374192734191758417852808965880673599486252696710462442912519572014682884491632052361323813066076252307789266327954262792119779837426888918751235168894571414522605729811280294841998344811484703096398062964018335785532537422641042280159002172881062847315447061458260535674275958946793461094750446721939078106022134038239924795177341767266658819911312992500149083089520003282688342143062826851610184213076236015990686736891227121658232581104180227384344116359458289269933408224157737445333226155019193408359463600091732203368845930462696530993246742127085991798302949534674892501798438558067487089386819634704422876241332415243590178769067259224134543476539867005974804854080767224163951590357991646409541866796877279317578859568118493751169325653409346162565566015086266393164955059816539429120382919724731654769742396812331553820139473839115237278366600677552145826877869641469603491416510859795042420655565488777353002272912085269706537073313730526293184257045227654423336733242143754496259036663434298701420201442743774769366065835970367280348777495219175935552449240975126996392725674607054854627760653669974189501530675251866565909153614745106595622816886712202457994939729204008132813428896474634236174017484866454228504540099702579304834777938058180855047050071095754209909508982690089101166620573288464444812223655712226109473847172189512009191637125816064406255218697376771437184312878681576334174346270695892511146948352439740465408732061108633858098372246529739423524583413113470302568587914559399519155299943214688815702941371192041959534867392572798972352124658007678657330796702843282245697360269853023195717505015681937969892715547444484638512319552156943284338190006488219689285293055953812581194221931796079691058635930188897813821851082979937317216029009251091693974550296199481267093041767778685452023405838811423240314176218262783567070832791914357954783217470813214147438186376777391446593694533522661939901571189183577526040039404009555373212356475975672761920807936280453874054895537292670852650922546774919127163724284477606964051397390722717664033887192174003454270938355752673391528172008390098721452959589355412602130043079320627095573136682446824639096067628847927207482919219194467256195383745850138657623996272252811333160763084320440495413525261389629765776513169810878361730509168050217735438787553724942474174555778617543067812497927207131532349607115926071636072476063520267460081660271624714527953003515435134155182574957785525994616549698519736720621604118086694384908607780452355027701455765493964725713496091519999159385429394468363381887972780832704081932330295217621633922376861001999493810723248992532950009011948879496503821317398097595156605433133416711126257381359433606337632601368248814449832379830504333775241519489712793199847633781047155058665580289351654510536246780667641480285034724741466231569508664870812034279027829262348631558480716741846648921477450298130776211879107035145007488424999076991442990591020008511013102562474019087018263668327636950841831457246717794834294955638121280044167733954552476956001285715856268567681302797383194818965592045083574879610444721102627919627097311176158438037167622639667893953492361314523514740454864801524818836003820538573216189426477412162590401364803583548104178515994007876142525629739751443294133077388130011324233370079791883120439423601386256329168774370465840298413430655972166884042595127662618847751790235801523139661714895517951931941014923377516534314854170852402264489286745805122186849850028200829704258970511296201479625899949141554843713398886924737864654846997936631009237331504793879088485574815373881359173671511333566234990738205472920479444986842687692387663213943783035517295035070784050246338464078663911327119632196981068232532894405431099218749890725077572100002198931369298983125736575864247704395041721995816777747287112516289952329534224895318527970403278781362387036488659327981407221304447471973115136660371396265204812326987145030084687898490406226326420294003340994191416405508084020115666050104860551884013140260042184422794849184100458668193122773742489841613747710066277848401633782216245914651356964946193205531957214113451754784011855853432597312125223966659353422180039767029084770404858038186804103817731073993896064886369943323725576866049269882797092561136548692585840855847846573410384407893728562908837953538872473759679699381122446613522068857362449493124082022090745357638155114635369287985004949268485449198638724969264251455262724365938907559784639586150861607450302577535036021083029277913635321202055892151996908739253026366594452006270736324050518927006776877603061838123538266400341975193172810519036696014856650004658035674722777579504264927987154207735239199235428693684619704146388459467065817015969701780198211657853826943680439214117936556809888746990501459373643277350430489046688769919536863616348249132263540123757834412478082286177733111357820311313788666845235441220506090365714527505069623349054475663489004839826357423381138189829707256609009381200338361493419519332224648504008663017387932370851534718036464751111179401353794882414220408480554329844263859486206375432222586151836276624440567113965770946021621993590099716427230422885772942221061428478758283291741991805007499956993947484216355512364381693893846077967719646621281977927002882027780534505873190580496853986790239468930726546304694051334939366763569549829026872072169164718771894756605588262515089634120330182562501381716356547336131664148492274896487255270811587430546769469354110560010444347772629908517530250340020495128138071585947999439472531986545284698716135839253978504437168178366022310963631609156068972964271398290951377606309557339414915384259171930199606828693836713082893025449724848442073129624340891161340329594817456124509051167478326734025660728246385615124525967756520178624174180134661708270804647998585069026900900841964539563650480104882507514518795857503456329309036975616545279602157691465531353991063707628435737531512466700322457612100362162546425341463307954451702132228282822700113508691208695713193508099977393285115042211870622199607480046766900456929988445207579808505405371656643024369200614375975375507153746383945195248341309782424598432745030057515739511463725726937302168773772969102290525936700278618465131845066554046412444034013866557470771204259628299508170690906016308805051176798395618036585908596918350201747159952281492565206966249893490225341384535818009346476534691890654632001916146852970288110321539466211534212733565065305304569014816571823174933614374091368014050652335587492741215218794743316663985359571996383864561379131487002635280556662311936908712975103732957962107832362104595034229780961054369016166883371136883093748213950759731454097329466773510853538490985914720424889578520009937180535206042557635421503734306598127436294703855887389869223406116940057805410432726180198296158934626067466594784840824974772735799334961205763684959590206426711595944067709137232445492937613820849219667806081763270705250274445773385736289169498015892608513709012521297585696957017795197815173914953581933305913287301672196857582272344435150629201837120984991022556140793300064580221471879271500539940498761425639807736536368612687016760981675348052691137449988378752506131278795164128425164245239532757634934230209937097710787663980995705967495082218317796597761883035823092506724233879903625370785217319316285089678890226146669826677579005809694325444319552103741530382710189695477395665081606057216557633741472852828092046616246318041106749858672764886281294870669669523148285933393508224830773520073544177501735096669556078362230257674599715497528795945534260020726859855723461271125512286801102651400123616384982923718194254809312287764871542622133780905754079562827993667590106584518691819050090625476174976728893261546718208442257503918236156943203577287808086949821391887657462444704430031234596879142876567903099033335358852417940735944209395503455707360029982686988753672215196475713210295249424710872173240492671123093581594573303769822889837936964014027311200524310216663863556355494412378705388133246057212421186521351534228613585164860841086964743398402308425612125099139032152123919532396028618723115762359370779816415428872949067414156428489147809490434288475087666584910870818156658414954708723185274575865688290033305087588004133102284194325191503893361072969928849289462362268876895309030537511914220990439283366370252474717317396699479799104304505070551856256435730543420313949952754924985969251977404676239376397669427150207128835390279212746313700455238214440762845788944350203611497421571915810085451879869117632272931203694495365899115866111343443853443511758759909449055671187771397916733975997506754258285206378845888071327878024986652536960035127654151387759432402429885426384495443417039476875177045429162032728594700762407748901302879684304369980466480939834052297349364011352178915302216855967193108804595521029499247498831509307957452126219973506439998700391332951764825921738700731819889614168028749556949588153193577575873156515776293001923438418723480719154013737367059048928431234785617237425514111332986371947536233838555713032800462508566515981754152845429702349781307800160525250262058430894073558088809859414523325480071177913117220148952338904165092132264589210534961681888492355320383129559890731344158528002408761358117682617180148132951420924922127242958563398565214466511562823037730168918140916562202497894817258076513492701731870225745107985639751910179347096797141787437586812466391338897850314646683425505761125226580579183127169332156656147262641353870528567117803543768045240621800198515742372281565945058386760521778463222902531077747304861864035877257760632774431398183235590227942618788847992198819854349466746696899113547815757940461202062874319652067846062504122429190581091906601271706266189412404253773904613269069243903884233109177720284307861073520524013454981917725447999552133830784630301003572944877999045457457647879103866468580359646902620549150861236664011586672771181430785815900167018007550338607416240584034898089373688504126742121769113825019768193222776107470987266968923191634945718998743710368759584867020784664628447167817138230245768726629447731106678123804049873002855001158131629597145386734794740896981998512173683949891277953000713983737746030153243196760347094453001578975790978517644665347203336693851957921774685509811250315744166374621828390369142141553258928455520394803250249908854580741419706848316049779153778994990506192075552679640416992522563965140539833719119604069895459869360514280079596031824145302702305430879898606414695683905543277800899772086711047239089519929214153378629047978960373265520573345130134275109054053737369243905525832340747892656960768720043584439401408812750516062393781608902688204885241265646716474223687706642582836642891085748160449313597345968879822074689080643867945164676947945777655012237377596307503720402803099903987981279033424815007590212344512401770606252206412832510258776845434619083169432595608906512732848745699711975106736392590409353521734545147781122239325674710311113936356339104432008929151475092007425857453229165074283936444011549848187984155418455322782897770673131072538740966113622170222395769140554353987510076361768173931335719976425993169913455389036147203025724767679415356064371554650570040065479780815177063788983803499684098338277360959858933968685207456663543372318257229357005633394972172292798658761988126017561078794296111061752825788361371352637591882695716937268982857203521034553281140421592048629710930961338783482262397027870002552281161041022825509688989491416970880525881231380167069918945870986529296614038563027161859301098438813327124054863240805940721226716848803853359237009872504314720494002457624442683074515204962426309097685945794464142185760803558008385431729852111801697514811802734911918670105396906796633285887284116651180041906309553280795742863121517203121925443425520070941463831919433874307272131318328555388823609509596398386364734711513459354967388467954675420187800831908651622092794211294287795552091435611090120379814684715585069091014767025167113068645594717884325604562609335813771707516756734265300464766891478411170394199654276854641696891248954479532082597858337923671654323083812865101420712967666255860253473898993429628743510313154601803601213877346529935685190107330135165559533017988729415898120025993939216873626148925515837988074254644104583929388530262339241037480276669943918367502698096619933729980566406712448370274682410791097760929616877047849942492039364446252806986910002889780199393607071229894574783726740865535747288091123082880651773269414632214647248437216295287839865739582336747134732317880805700956838772126973689779232191756598308171881383759748709965206388130379484031823056548971714792910018249951236669682779067051393955380828016388583645619372441902241222895799693528456615459287912280294899243542121393683887825537328099729004426573321026529978036510662792068591346595721874521785523140632852944290459203834271758153238020020439333540318468200226765354303255467158334614904521986122295855988235269752536447959224337824972329768244495487052328594609536724164326850726344225179044394382076642562640345109491015915315451615740391655073487436830895350817092213006987380587629837456311159802386513666295854816115384514337371908568022111013068870487795861525419958234454854830762984076552233622623110722045088905297443228213746382699344490771592213497800380770189385499934812210215142835283984223320251766305313595965204144651097696578525635697737102077109885436160019594886707482325420373604551344295130331249257392490570514351826865810539508653092237394656607108974937084591958684227578348974653990405869042434888853414546299524280678423967276761052163109835781691273894506609434372968872551300139196935955594664455535774932066996559973967246306448158862779414857073409989103210162365237288808635621639892771300665288162516776127187901861722590364053518883238666319823014916624234657141569507354267566263045430881654300725787221850857824593695512761216007355153714327282765975514218501558199761702080002561808166616582152090841676657240860417709139822583080181704282483712600920525003436990358385016101579260219559833101715138704127129438644401116741309863139779047378238574858509595252591413175808434755595586413606206912486886161783792669056768932853305765122284541746670795376690065836839287752804793835115758968129015661332936518865256449047564608600432306697179404165320149215223042140118758480490933761183296205234722979253096363876324620950231680779072880556806077513666142977550165736992383778759225472646086474817125641430740210580322820129213280732445174289370423272523093721118644785717909675944988975901348861970811909210660040912906379538901298407122225437517697112600942534144996173023004467868725329495049101595798363131448127655272902121061040687166704439407789266123647576186393769631859816377645801467747268346727409049479932005482473324749725322985096118971875392363211078982378386093598238180769886779591754415932866956209129583204598027046753589342735777407405440178483762920580631432027052870643471911050317482607529364311642793228895782461544435085368748324714867303347465314516876355576245915467262325677462242084688593370266035453776122402777615320672560249547085797266092828685104541785528892493546765083944470353580679106461256108440709384592423078022355428863403312642673454244345195748606407447227680992123145068563756417089184246221873864502157556069886810318473615598720247904095161895971537226180600078593946341402187450076419333633459911197597891397975678553467368891505562631275639208577889631265758174039528108927566253077012699475737759007031642390315478811147750855121738328142928703595615838752172032099098671542094281164246285440671037725431548344151831102970354157612988036605452551308749017112524956443772978818625378446855918560191553720913049831871758050639589064673436567813745346810593128960264202796980068781413382846823524229104616441781119605471298488800149003343095316656103585417087189711353723054115289729960257528104349726578565737752521439911391181254436512724457331361513057327214954247012631844488789317432082940602724960958314666312582196231951470333474670533879220206903099666157415501113868733924280053843516985188813271390050313827024663406222991640791743801940517669166718560224568433681514039528673444050266370889913229100752687440121220753572474089019948008060251583005291718348130202330912466454514286832343358828585520745383848880906178401517820747602464329185973666636285452240672049240676917709391447282524229007409943539337365247924354185937550459533923838082800103315881239595725189253516398211699137224314729808407091419275081466387900349138640780827434935037407338526078587318734739151549370964613635645560267366596564653390576389130782676520290931194772378991017225992666247946338187999672649234802325082409902931255751095612977672462126137366347140300015231182691406214465187105928415416916060136402841960593294927217405517821646974594997768058150120888829883246819839920308190153514001531989981687561168381088372040050722202399310730706722419087590502382061560361747440752806694633743833550839391246156763295123130793526835814359622057908859431689125028764871136208472958173360920227349156795191498057024638124580977673475290422075443225406324948680904374941924829013426550139547803638941225696377815488992537384035881338447297157710764850317121026632817471862399718298407587439402108335181028917393098894351226267501283130340357980802425976440507486649437492332503735619418050926631847795593870963197231030722036669793410455376719575347968166637026126447610741407261911241679919221408232449641400387956636286274028901889146209698091313824808925025553178367070777554691425077268122236252570142084790888329430998934220243435322770627728279368796102554999691230757057391048468892508985228219128859379086236683446332572005824762276874089933207306283351500583942731895382944604575864279072771203338333235051883532038288642013385220894352675810741636406023634063626121882624616639397234375698530626510010203808420684933027654742107651795372237780925550469036818987796002732716135767223185064807987653220096097365298076366937425539749172188475016277917301046228729529119148306635658034158633582807840309267144085768322786261645746099397331465877090073449411174601862237088224862318705712962710346126545011053257306829200082895346929527309676729797056009627395700632631528695094076919250876267236374816611581436323880553119197170140576851444137794191072621470513600983585540667524306391935272619766625416170019580967063425311275322114008937552742187768324230387896791120783623897059054134109478900794663937374512121553717846500879919118291866500647695518139971799040572567112159426777635260556529219665141850544366953995381818690048881836039335497377679323916599418774961416833640363587352753830729711796974429964605543809756470316427333347753321628846950928525895975069103803133362340113481490703225295507920386700321240344915094105543087737051503853677692564911618789569008479837543194983515419947319644725465739290489438548648928168045956242510840094419857119529380019196951869752277394805901842847032582398022423322136010088615995166940412262307179411865878561427219316328054570043938275864347496486965084715154409250092552564270232800193059537073112914604710844302361517223640755753929251271211047401218460355439456184473509445242193117811910385658636101992772597496093325291414338441793921001275421941084515259826802257153347360234937831327435520359781528710074388094760724769517521053909859037551418407302088289743598218553576159185252587878930684467393440728437608657591037564494313218509586923725705325069599270174069190201232811462108984653803650114800803201677320216788560254614905476570432275058357112818529111706199253286395752097458714653779509315824258697615661030762054086550309021757974490291635088887226131434976785824475440748926448945879835534287028750382374874835187282405502135219237398625922084881876934505952268851496045503605339081872749927089811185785643590427661103248539660493042792794609463249213565165585846465538955638711150449545248793202379809829383333241346937770225392268384939171096148716356726800708199010126765377131413425511173284159349967540986285344776612047405348137691299643972034710367785284651127071487886746418751557800736819569839382995134764705599662727002371478442578953511360121220238962562907515104939756938529469931471534369299819332722266632444514914593454966173282602437729348761831592168454747377698689607947039120083978225117521810645345782255893442134522837882777688292609689048225636020588318421884160686642937268833747750766546084850093409817065677154128664724598420679171756356787715780449416660940743579671857121618763796386209651139730544615005426045421960425337575250494149455609118749264063738982651390906507345587053077111265486995100981806165938818315707894937535338254884817015940376542456470249223270113066048083477350577444798959752694227020186293340444890610315297619049861850792825833054616491385718118890660385679964801166758468023982194565125850018957348752564426587326000509206873315756464217169476456565466439603453783997154734929894552527488748934691897857256476014570777587462845882055495794214206964085522195566753943400652286935248344443209921145753856466885315310344940654992895658808179893977037571632330520379559310299524405531809762994073980830403140695070539388233185884224708680525936353661283045666515074425457539410288202678856954546798907499135284733208538227450801010294947547671298498799582931658600361082707325558365486508933755551220223679721672180802294160359547183389639643779068964975457451598933507752322052021222488657001638715346074760963237847437785719513936452033918884140227232501855507311391696686195530592884785353433458342022473606226124119064639944861961212897242687689107001530254504637716127769272033446630294071723851717024280634361016901992688888728573976299508036058896876539089928765916925639639982690572166763118533572573819013577014678901708732360276070530548479995051661246558858024846504522273361568626501787581334161080191087628243896982639868398946603934244421775747189038223202385694849378715271146824867364166621039172147889961751049337492856593999091268824634814460724209786511712558546392435926780664484146703082266766316490178594787435855957106256273025125928178201304181455955604117682770935113137960593473873745503828209891861125505931741582918648388613636060071202978648903389362286761172240318841717632539853012190777589492902420957392586257029053425669811588797348722765207945287274829220450502772823739971276172880770195995687562765418910979841037162007246213133327405368504578466645737149350539566032495708802968124319966469289883659044491908058840467713841749144243369794892234324076167274048369451235918544257268435768850304855091942193029663797520488502634470867811178355547591338179626518349266613447157734923440748788519218553848520949534672586446822205773107263278625531514693412583937080351083415469556199404714468913245246851984221179122432277830924079223963626807730085270905547904238573926302577840404081523498183362299334166277683020511630092045111740289472534723409551448036762210791051629643718670895877200312923404861689316696483329873464468091712675043746587056897518291626071600537788160402705209922554552407662256176523434352862924313911656790259143806750237383390251069366033315153414746884118297371146130470639928664985958239503212422706081674498407447495213787411400199488286340747945178418162617291622125816581384739637928517418466597949122804310791645729390642750498680067914220866640992185887761975132672097177894944364397629325080853454113001075984876802067174088912704772433508148481340472184447995595248571376652774262422720870822183614789414839895339860524444147646994626904963197881621029124194318435712253113245430178670298310510826645917286865417451409524470252310028240265543962689598500678834451371349844375975919422444381870395366207874323955523731515132812403882210666195610069763364890092890660463827804392358103435587280896450047057064536977373169391169775893623264656367986802622477151796951683416591110137981805129328388000758120605119115891368630697133833697070297097730539708381037600242683108997401692099715973290103028614889579942999013900097523701461401259969734008623679885194676232178332268793746058979694392435542454879384033428025638482686620815071453236342039112856002123649245699145483537863307816146830300652353695174465409809533103615235478511177385028937959231630493145687868433399326940279291805973740792143215796059060670225904413216362765005165950788427539541874792674798058504940672838052672301765565884657337403643444117453431042138474831431217903799123756107777594418882983338798939218179266216922945103001177812109503008423234371912412873403312811071618087029524855292454335100011450434965072634272922706592780128337863854833443651459541242645891837323236078186613896698388439952820039326887670969555362214408365600618540699181983922461305093298307326031114889391632388780440998582165680122311180238569233889084445675412319685928179279533664955773955896446301533001443891835521960164404239725823738628972082716038411563393137498926098405049570513283687244679149243239207628374863430090992501852368251044269132141515007260457842205590062030775788080791239579901795325342517165865660145465245288435722971071718495426890287639943640140307043636207219465857553487906250804029753997676856204502053462131369560535338961917053938592827714560780433571204419388607970735789235330354769274277136599555567811871714101711381266811355665004143429944896293915009139012457503671679282153920572386245047869066700676996234782435520392742763352403701744777577079378408502053974182547615129467677585331892027696667129433721945685622551576848076825205203256585023582401571126404609263169410133588171552874370692122335307810712469720895499903064146389911024827709803462377710601048529423935800688471802308188643879994689607569004406787522605454909912549242271129007067475397377524258402560587409374946498408025558102650669985487594508222278806325121420362729090808407909034409744314607563794080973347675281643601548923687947453614862377585448341149290053081371152262505606032339864893988760992899619485389262041625436500511896844749763899016360736364678810404650488583075107412530109692918277567166208211365056883036180742682748943839993360685494062741087587326771177992859081948301784340921587054100350967764611812622688396481685572500281143947264728021009366902768484550994119837298260896818091518938774915133844469130607205814789349552720108088011053449834251365140751659643003864505046215049148302197734793302574634053617114133264582259956638796328188841180641776608184536391510546442048939694173612196756760448956035494653718369000041903197697951806424254101894465190460914433356215982374402705495846601974184463121408825593250388388351312248679250914370434689972187469653646088453118537684021446246167826467260296099839694250204974135951641928281341673323144894977814066516362471695163887864868954179058055969383441130980818799068759224617752937614803631900732996342870791546810306068803252124133394835833109380348164772072454355873400834714042643913948221232378771454358108561769080342733368118007465532546503845919359036128870274555545238020204492019680434364671186874674826466347360819388649980885290463856639034707653420249039092582166041969514611749159176271626184196610390265961334965982697448356957839447949597734575200607842100917803786842529986033529622866517838232986299755960332467496031122280858919241298709924252934790110112782488342717638195308180687538192219842598860400188865702383953167677227600693156181146100228961997488861726814896100104424460935762735988120271229560231760451324972298544121880445700367036937404133936750371142148686218366498477060570877479250246265984124263115972146730175070422730794470231435124234334460678935314098361354015627062390511912267966288400048852272012989348173648821327779536842694074770614575943691659989766704746180233463500387239209611317555822879402676471590379913678881631282594372138389750713060960585123345056986154729484542381439987742503386872408420221188366313498908835948968459094567880993978627189099397774715112498711803885733768923024099711353129498702170950412789250929066504934148873467135879375490234633244794196795871477531351095142088657845000830184212825403783057361673160879448324433892070807490989042909959118013563593971547481252478823517892927838564974154672976998445616167664411013325940397104464188629552224856381630863975421340123890863061960302153630619223173187844525922568172162205855550935855881398781549092019092932309197666414499663376768701897675498864411003784039017868475204785507741232717395275605801066384333699431849665485020038323513004991399554412259647844743245759934176601001880814908776354036845974644565923453250669794957175601267558208284522954422683701985052860349975820491822574932990057445283599139552650344657271513438387131542491809011258835630864747406027054807905947291843141620988403992931507307970334896561354020608166687073960018361571689727950234318038922104433803877742913459725738768168666640974717489944349361449822182141008471861728369733140974494046090663540702324172719982810706867163635755229405675388309605484720220002526346676531659227556390913602132454456087372810446295468117570896653237001315261748437247587360410153128655089869312233034613107054392033401189515980287325851574005685369335875221895632901067384194208482372515457630119493935726434931960922923323999224920745057350215556138994653496578633070675170369265005380045226543736125738858786535658996635454276924828117662177015123976571749193320982104865641576529265131051380270041087220329299304834026627382684053347816719815665404339396756936034683320526313953439862150288871693605670400576249768263759689646376752876122495017866782496387968944071209051846680256875102826842431141002236018814009558624041100548404257022312670617556029826214681598934897078593438094047185750843670243418159184471085401845495541249428350852030607005829911695486164943968705726223140416719841711301759678235789877449359416820747291431066377552604596006963901852992736078657195879541133371379349742716719464391892066157334262749863790894436315647038145482354172876204055179175966584355858394311119024490497002498861550571156249298754092045591038196363438717653135682716173129381761201489418874578399327212976330148263170654757188330249053889130851388500123892411805213807602508830474009254210249414336038956987087345774096133577430341488132653154949693348041176490260210698683311718045281245870527219000066686784792263976340305248549479676831268202825765126723084580471932560387073432056583247459278254677474161759301607181674189695785668351128952558626111999637832665488974493805925424608663011618307400135416814602638000201732656165415842565699667405595325711453562500691915547111843643408957363095849025541701860163517915999877526556429117788079628861154327663796733310831464588970653874610879629301766217669356204832303716706147765213238166457295757429445126920611012338517989018997019890363032123460221646608449655955537837036441500281888773527691040044655634379876275979174685457786880373416087453994157111721748361442596390007066217358549901137677249499150076631171058002181214986188491021555770366213346066346819243099147825867458465268304654729307054317905071253215078788549043338849976140535329238169209856266726181227879213756523614059139463448067860129784377178408068326679695982603465547660753706464006508051520146071635166573996670649872655509688477967081160984159676190471813211546128813149280564016434008179202597192186788978611345943045319139309284955032750899155302495688403575644178666880001508294102171702622959415915773918749589897209315876556802594547860801245695034120991976305741990135932494991914429998406325714227447502127421464490685303002502481974959036268436931065343482353139762326845979770373071455554863396996734481111365474430580632578449769642075949365622369518470028684514528991143911930152376328268829180393780091651939997246427488641971127162107693623515379766344263368484645151694264374667771150175331926201227837489413315359269492203020072521930303534575126879326818060763116078829550563186231853048137438145295071811693656756990718853994806940242208576051117753626719299773733967194852128038459167225267093312323644535891889598543425507104934637702761871829679452867872275455436546138411438616070190763802686873016312923337978629420050480187224767065652920925967751543811039546555258926974091863054003860562983906737972343051609681476656889849170929142363708534130006472006412421811918317562856886953669246919864932755844119655814861810170696356075017475304919572834975177841867591278325932628265620321878048505194031705839487343919072704185241711317523675628152914687915357110173834495380617144160164750863288252098047396250481985849141128522739192393887394349501381876935223327458207381992936795228790196097119546229467226714132122063543817867152970371272148817264591311637127883468652036530327198734919788888218020014019047417658623946059824095483271589935129445457506870808706017201616809004276420415061433263338634178579548435379113348639940284676698477664557184726551703795338022160343172709083588735563096155003878039255080540166901221940643502001611331524523122392423454432565275773820711596180074599103584861862776985014989208539529311538503735359130620827672801006547620652111312151508108580178783415771008275263343653258225711447230897130612704307679086828052705613492466716669867089935001652937162395426102653749603903959754096527238492890776125831236475978816137046197459158751770628794298117410665461192152894607777157233483822859883949465532898679872388815002644127472337751331682906988787596798834827873657974585808823848285400561052662909843276136688920484471716653330368073998615269739707173141439792000251105892539262525866846470568888596211091067080162243281632037249723015512801072044374030677591309644880088576089724551562339612844976448981307556319797796659442449960183093812161628141982866044424246021596065988817513147350470165757771044871800100256022967971455880236393718892150485336413240212066337230554258463123858705533811304799352800051831553124321317960582954999885264799693830506216662002582450043617564007017788568292418943358708966139893473148685934090679004251860794666587257306441702454280650454238333467729489913905949225593043950880358557786904910645973857777812399907992147809860297220290888152069618563022231013332318426607247567151896270864970426288140105830010471796291895012885680199250145030027538551594685965773082152873486149766452892838676007682730551490656817610992817730093327018155910809868015086922716838942973284016609866740478262840931272188804854665065521963009287470804345076569396748943445859269581444068377566079804850998640370913850873521758977937945739778070989851174440549778450436300131367879627933867289068451201552545660156816262926234240771533876654868589086337403486800152736978532249952108627589706606379952996281014664576192224664948901682262959497524819180011359984455855765505431341994934574002062312352895353710351473516397001612668215146918326180859574212879423000806006093005109117001444840235676649543601993347159578010900357014670003818523431668084619380385719842806858837546247529837580164619232634364217887745118015479888343729721640390692789252679989529220952585550837286995873195936992435059548110461611372203664725827431775212593581153835128380407455188911043789141745566622511438515031087652403155661697708075018099648173212363544894902583800768565473513537645407199809863446110577199036442540163429695792419928136166401932790034431094236141057835691870148070781806909767241046415980998071900873959642218420247880299826886488155824557880108124260018847972814286557601096955296813572656230390322432689156308105657494044608508429903628282395425641713904276432092269609681476932024769061303270962587344493333474954491966298119394467208128160111087049684367622538025039249656735082157762962262530992925455747809058955869583076272014847254745966670414756908560583944581625429369625950283736768762636007329047669082759941335152575931395697500580552138254845119829206451100174978103987356409674225994333297158577764193135598509518553333738070723377017918385893235412408413869151127230227860411642223445461196418148328067144706061539731965495786852403609665458188364927520284383113930620828523114447749191957402507834044862581264643922771492371802390992186443684088604066974000078197686469575674510874788617992262701715976419256106222853759955084247995005763234941819558352320423706757255577121154089757527757390476963881508678925451587592146705773057519914123118138163651886759403367589174870637629456019297225240623866158987765051089533755172852320828394611607749552195967952551731430464655108004617120638679723219780928486511670372598660972273052259446392919934634510128443960624990537500282483335171898723260578051877272551610957201693170708481127014316157663463253846983208504575915076445214153519610026547279588809473051646358262286863742237425308342016942011090746691126361065890454555813694923487288381161059081147371919182696921551100697793567615932637970964834326430694657671536987113142949395229673249101548008279368055547280705882432809521552294317172576182988060914007695873698485859931364808397941173696537704244587825565515888761794962248846195594444561325471435275165570761321129599371585651621354974958545752243143522686796948240516130738090435248743790138630210713792699056825736301653321099337490658102676665710537121778811526553071484404230255105528767830588039434250116035369606029436366784421022691007313014612951152717079947589412289978304232363970744187826746880332781272115771178181941984127434001175179947336724118173921607010700187260129329883567939455285077511409307756323623688398795130889338900716330332663839904897308611824635710181997565783172859989548596674366765416432685085434576789591579170963705367686310711294776417348116768086073004194140670323962928173102083830667676878922943696789422762127499458792559711313312150686934687432981712812113998596700740702140203443738604140524790020040275878784456625719330727060284199112459660134605339688551577339851869388508415121688412307238411729082162477592810728494215398655843921640248787702406198823800407989780888462577873263017123115518667360312067771830375568743949413704014297120418921668791381489771069836513941464275819262710803323444259538924879360709280412667379736732451873051347822816088834742680708637331117375663762172755545482283974206829817373572548632476521660576615915157291761232382132569764171219489096069010273785905332489617445921732346268831391431181017305402240975246602131313036802657107931591317400056328757472012498317221051744914579245319221896925923487718340210094448764754621298454006472569927745336765294107220825403869218732520399574255270942999137955768712423699640493885070720273907410045925539840261690604508838004049303354382006754808901621685552934230105542923094386340413563880227684655155431335614684620958119412032734238333871895450780490016112275174836457423301631162000369597198170090209770658382350823266308281831013361669355928508383887754179036450357535530333811901585267969435974793029761792922739821070525983316454627338768584174261560763016598735172396506595222813580481402598819487087476434752609728937976051897835193641051525963107764501318074380727967826618450675079376746773606427106115112225583091888029596651615091545561583889551066634638897275201697739538806346705519345008504822677084466353219608212714307668230871801875083313401651403727186943620018632215888270213878286743789212289699434151100718270948168418332282337367705633724533502283353976253843180853824701941341676304441811443455758484686130225843267801825368274208293579662601624601832823999696405700777903682168377406518104994093453010803669114673055646939325867782633011818672651265127049193363463575772978536451950727491438253188214230184026619643560633759853387512605612025897768555010771453077079568018324773715236357152360834739024527249605062961397023318426094778269916877967147724387581334901227233693722010959484384374411142115316887627144833128142682200144678499609541161541687634989010847396350784158318995459629612755593065844083587510351769435591541461504238942238396124830905202772569942219647909553281293409915478887543867464521940719468993543155128704334638405731446332158920089456083994317560570444405999795823691301536336876031923801138749511751407153804493128833135422610178304332801228639435920865640948385014351425480050282999566064853222204732527896242638366398078582938551907973198872315491491841549440463614402003997130091144850082922597188007849331094255774881526537000081292142585475103111633593083931171220781720678830822648564495695578786221429016996186316711545960503771394101971370033222967524024158274939561539027486905879826315166852637642958258420435171512198885490465982828337412676828036525202103338536446024953478197655299931315932390219171824637932735166105649745499202774445840140870495316852208727957803005966887981166755191541714434707266097540832305320601451088117197406675882470523993439037365357764629722764521970435797330967818104733013568594361474554372834825142348087145447794049144697133331819808125623385862094394831416382930538571545885955853643394041494740172987020758344113954771065891477381722512457309302629445365354221111054911324870398848423935919068748450582459846645366023868554476840259557260843246943621838916393184337762484845253038263470548287464808413625832468989327657346558993918610977344976701787206778432283542364871346334476960257866963361827005538261433214048032466802991646825012602529606600398971947797287733430262140125584661095311450898471131329191724268135451689527263748232597762990593983988351152549424480446759149213766375015893939459028157368212903665852812263761504020928406053614993365542383807705688427207210224099442409660166431627447745138485288084912059903132073034514112905268563356022813416200896938983107053736500013086388686504524995673581510420644512546078338299329460473670846338707131632117783979574689769110510715406421834214695630525144982555260127676638940366746812098790449890580646352933929961364501885154465597725208605849441327417988014300946030691000758144337812027500393161719193461581702218504217336102570482790109607762610002612676691570616566934547855990872551759144871550300969148543484789378583555480183505432343258117530006066934881755813998027064945461205055715337599723965754415719453134885807455100422488607786041131459761878808104055855346298301477403208727698886343002158908242250195517976217467566128184473356603196609241504286625786127864287413707323016870881130691676605373246414930147068881341336617442147045649533111438358416121907086247349647943460986332511213693906001626962021345326862938734730953871645021837687190001338375065885168993631208645352858346558212551960774473922831471712120912323501472997437120936965354734291107515652191398155862513857362471391949305512429545240385188785518200981363627172630340284442423597810882401597459388081233051721055007812142637182791997196475736961770389973268391474755115091854483665040584798010091694878374641656948191990870276494218701753055358975385914282948415018792820997665760907514619138096068448509437338904545660123607916250454158019785766418158534917896153844477930838733238919198878285179635899524660497629518234985551074458676348880338497333032534938294574814438202431676424263293027006966789277041094913108712885433891697528201657105411338023772072441569698329339285660605291835825026942254128416064297305822874221302976672515663835475358236373763568861627308189128141283133957738070649460203693559550201150043890251039781896547647498151425008943977195202870069059637573693575393301746294361238036620094022752336860851736636464148260711008712700665698267316065371648663707211134221794532388253887773465965422364822881300229359345709837735684972219479293210084914245543184997179781672882525925500831327016146946656352437307696176783318248597815274780297129864300294628818500804149020856286804220005699095045245387467399079850972742967042868209959823360290020721119436682760112341620628168010914958678996299929152901906172880344837398667383029296285985558085132621858830722975240136617800680407118274721903398055327997457723492601701206527792995487516704874036411482360989576697971769883743624609277963650052831027307343657148747903275370314916792869965235682085793321028687006413066655567489807068253226850083314755146111260125547813417694029543013389642734943792310775469291116933593670613342315572592437948904258244529277623364914521040229266126988598884871505131995788717966177439422851666210547209339880494016896425167474976432039314415054091372470587262217043828701372774425503713849090344792373695214786379848136331985995457252501038345237434275058599137097332539947801664573628269113314055328385397071898749128430947416825329878967400143364447109628579417558331959249503531463555410234569316912742528872528997656177508626844131139378299263221840549988949305294531474004324183509276913640481910659177226790281072463664895799972112421283811617032921213250803818063014093353708443339385525414186607057744353673887796865303462934767961969687804682860991059809784800947213509931544628791581765447156782038359961846088120883432617279171340595581269520636026230335295051663870793931267358788570601760920430795769662323821481364686079352790370793329551073036373423966795438810294394047641994124381622564526790869286957248695431856191799421218291204374245392064897766585614128159740501871399935620063299044859898815711460450335081156955662344775817623539092349772238689944061179370727608452323941636711796337553755899474115589907742531497092995087233659650129566131498775188972771986643062104152053505675316965104344761050029537585201476985602568768498071861527275783413765980294676510707677905443722622971723355311930355273365033241337611822635988061697530457359774751783303566986529757833089792725553295220913172706083122522580515618777812208448404667046996381247932871247731480842648723583330679222661658306077214795566450152317144773526788556889774790495463423040571764046003212384172772631891504740287477148311083473549147402213751716394157297100172035017385599222164638104542162991622984145922531622843673886188652942294314202972093906860962037950004625137414890040286986716328495528201668340205890350063996366997365125101345453630858878963939417209297374537676465189941083412595645905977105573066114043119309834952626143268635944815215164921054771713266541609606661061951503325405996104471590878058554891896245789757778788042735957871319533247797784526106780476671599762388349646321508685608472870616541189232554001153448216176895616003058547316896810358078254954729195271883574423558768166860441382324376481858909907303480020341205512152900262333777690918480873909225238063004190023961907730157212215820867495838371147396572024893762808870490078167443382309973207062720443365488705620882629221933960323759552646180597433091268946642775094817625975836344911144470561440650371009132540969112379227920318634745624908126500678060347989801078805384905494909241953867519199470720428529588334497494403142710915641706732216800234679982865004259199212978039715236912952385467133291379649689294719221966961626256133939812078417057657708683204310329614482186530528255374155384037417257569340930271845720323259340144055294959885934310815512922238126699240206185459936728846310803999939983968909860090220083915029750023566929931813352590393980509644287657389431326378363305673796496611939097197068336407373318413644179478557980293821990950423483957823192043787174877994042016468377066956411975906186355764109836716559217102101401959245044446245205160056028560357835791846768075684546831019841035411544536963808498830184174538534330573654385460489385450144459382764765480421819638566334984284166367421475841612914422526382535284977034830363410078009985599029032967711067049400310384862578966970716505678637977601308616983208430886241480216149659516728896555421954033281525938899409659591477574145966097983856996016166980064558292953757517332523360192967076109389632993558960869704047700126598073825890606655424416834008134558401673917590784054990344401014583903493014283297830463036388445269382895768756131896239450266215321739516820119157275321483538399347231397144014442546441052955585866767846112676120777401955019188502235966701721690178742270104490949348657952535312735159686303838909300780126490735928586259775061260415790764830701941539828970592627865441525954106404094277841973017954932628444857260076278557092410714018714846505516636501903800704698954020507692144073173236628091515308256115893708120132547686752455375345608799228308926289755541671244040539213290183920538761666138643325529829896015602153647877563915288754417438078315565679416396275852664641235860959450238185643057840140818959841637618626516392797001252095650895126461058781318973294437999864143473369712767522994264883974331320221296471861437536260237038518862573797274023284848369185443821663093281511705341879162246003406488109550494458879107814291314729100176317486433929610309110520889328901988617697317736049260709632090522264108997936300432948972217990000310440960142022569142692169115659630807989257229435524724822083662984642948245029927749689083916517306806766202544529310283552080633514677530674418067690257954538095823846375559112571795274675962519268226085628849840901750224260203689228793164380252105892370868407571083761493666765645904150808246878370104666968245301111766065728521887084152325825347953497170917873435789856944577046750274266673104584103539653050423563450213131300970148860007669173291482393235886207076475669617982713607844665973584447354465450602617851998088010613468991644572893876425525045326193267992599353963420533438776014195776435232373135365770433534133432544114577949097852410800147193375025092092787784977075956824900786421338892236069341758671156189599634977344459363788942192520011175854770922410993755111705606938250320307396354832560708828180068434872256568235245165967210003856323584521215641148783831397667772955522712486446331970928963212168153668635542184434193318621398051770379613090110946592343188081337420414140771623263121447635617368236552825380085080208578835876022039408852934616928593164734527978093933186627068435930147577872469882171668333784751298947456028466921126075038878285836588948024735105549833654908497486006112503687260833854895511663659058864830920359221792099067702728372216499074913356245335251006388561448376674578158760249020726042709971304785187778876200421023376982895520133709443780771445464917696354682668867814338827996167946205808109169673164952488728004695076820234219547391419622871497720135210670213096153056087557915438647697280287286951476482664835541346577205955610292158962621071355646103080593511473616948806213560301360093386331900104762849339227514387649747237248468289183291726361379793957459689459742407283110423747212197386427355005948881651921498789216379206966971266733464017632865076386035886832660026909839106101937543636016459654156514258102837042591355306187817427290612902669365580790939265580056572511332898185957782053390270782088381540368725019491259048279649218399101717121311619599100313485660839834171771721325363525212453853478629918660633312982113943155559323412940943981911420545773540484328607047340328942815699664536751772742745137114132098485904485649526230648216942976214893633657813058401051616566807232032374837880187731302025076445979760655587865894950300256591716803034265128800619255901541895916652948172121521550495666666665632621353486704180060157741391748773382492800003564098649257175513036346852571301189108415894163065862542149328816947878556939018691434854102115006620906369176909530253099519695828837521742729665298430658808556915531221720319554864573000835178967955920236118166357003033671371722846173849786370874156316430834398796108177068948185936379781641899630734612371814508328364597590209109171753766479726947880717706886548575098890694725371666563723472361916832038314881362084193718174822845540590016157992724175444880832320032708087359808551199380917969221993981624855857964763180884423507563634392302054007522326826559149432581994277130577362179012260499123198187660689851659222219430379415364760300467908937345192033448163287816832238916047957654057985002771482137534566670561652621262632842160368062886956800366275792597340066741853990485362347527496785866492785210934048799855444939372173757387527889094076851219823202716991181408197862466327375556971320948037257754634346149460517240045747935841736542218083891865756042136153130734434530362724643424405869241999662250112447727498465338944545903898243645777130425959958300848959071454187622650391714897633656684898813183176532489869196271891458651335336001521458003498164056100550309450410199766186940317807937302445305957269902962601288067899395664960907024848606308227774521074833067930972347997514083771626459763608830377382013864600058840116688039207161988602071138539772098103143142281097386020955224634451842957193008479812605938661951239399137933694479739412390092159234380650301676209262943796527148553060291932585773480140611942889551395132647860961364355989212797832995735026223923581438741517766978349977125217091803455992383096042982237765706578062117671368168502828540601839363494771437583994090607918278331802647839667023602082239421926525487117479413979230896572859271376848442142549859308290557020056293643852000662523683403413397807528296873349904376547621901341802889220620770040051931822612304037429286805849239160188952935665769464613936086052315233684155528497040358705362361485363177955037543878689606384427631959521748894375487212233106158825882835084178154479406282134500848650598070627206046771161732339072779410310305220262923147318084654251903142522468350673070960256878517991959404027164103213778222511951101817758792948331116920837493611580820175055717922453966090671889053303981551642341640707317299070441895664623750825628638401801162015550715218050330379290693024272885724206770306584591867402257704562621109264658369041522555993875013163049765268449181841537597133321349257615613489898912127106515157653617085981945944200871144387822259800262457239323575053500339862499039417685715360901831687054371143791896145041400360679316183683320622609492325888664951838220650354565037204839969158255962666082814140759676981077244944712980097898860325821642137839774655939212047482848314433107452836754066207021650285704014819147803148508946678482790706213894411883084674300174022216349962364999072724675543185697857031364237128671444773562633560980997238491183324962431022323163400296118166094918880609172030073968279230687209921513835228442609757952980789983151156390468083500215365310510641670955043448999448274388592191689272178722050369568951177253695491955287636808505906028097933183634120022553410843103064555778794696513508558541156479253410641216051339649323554927661947761670019354279580112125679719023134033302515493421434318604295352060049384470997408403147082923399861526930503771560377012244645141904902900114563274279417903058554791455917850763027757885684725960985012271628996644769625630520115257035798741899031944091834242890405735228388880750852230800122022961009200353016742532992977151264212166972564019413358115604346119170345124595462711490214432485766228208454830968034731408216673022310157259538576962153966761663261342979086763469605454108429804806139192161627277538670761606382691784975258001401420342649035912243304995995422849526137972706647980144272144493530160511401962283439512563724518785364089947494668831212688531114258466265735295099147611142195672892065368232679169653846840857984257255518603526207739883188840402961520290751784497088277194545111678062375945456918271123551003328536674863060468691733169813859152725641573262565995067063468006983210601635357201524463474416544200788412765482386797011242710792259188864149382443899917885323143912155628847485307630174911408245995553485937689068903260787906457862670582351800021208008097107572238870802418853970027322057444358940539956779412703642071626525314720117602921177506007624962940378227868216300155398724426805919250941966654425547934187312993684575091796488647350708373881212963546689439428954029985227264808942606561294347055824310243602103729233257395646062967238189361013256311524849836078645909223880230073044684550087941966089826648662102191757069573974780187625273503352134034096134750368602797526224598153819944697451727647833208715468885735369414256317471772522063078623757943202493050486602858181757579333218379896481787541406544949431276802228575125352499587462877142051587845345879756050589459546262378146807713189578865169602747331690398908201133525880399387617953050951706913870366407780952515748919136648247332976628777583696192435859968896076313580875247788219671370616525209740479479312197776886722852652197306587209582060613105947741653230022576932059630946759972764650646284093077689322214897361644816111298838183408683747760136789767504422004104096478336946665607898023230664517126334372970357209773777055297210745998491414481924492612602898513939218707502681796309885183796270867678674339574079345676710109750295208593917988476448992200953248797275576060599461737336372264576059894326505643529296420114016555895023391259050141288558008127866404454996574315650714997827055832307490392691462836206390464830297486618252290635357989041693693322759141198821229017764812100162090792492496938652886954641347839070050453425567252400239061262545884741243284735565993596532209409745878459831546408886988024220464464726911470369726328008472171969727953340723256188498568761112817112818366312555986422551861143937980286386228235564863876848928446760553647826753984691586618035290382931034151447139562921329687019202823340026970214714535041749644423111924161909452811679619934158618680169777570169838679114439358635451580984557666429826061451442636504533850329635454681032617424738146888964378185310794555449549661223656800441037646992091844207650337747295442416161427628158426356239526765999683595181574868733280259085067618300497222728851688675950693528220470008287816092226428816358458222010231831530410965947262632640690926708914556065533978566642195014753509715965769494131236746634195484056071318505837849393681253075963946883431145901691417261751728084494441990791471875731563693976452579427337131576799501243525373035447085631294823411796052659245387119651966011047520005503209618144890247221983401414712603459863730901076837453974278297234657628257220194331121461015740420843728591997377984957530688187531877445241386387959776420616354709636152071461655224372622286053732484686031545894933320770823785982538890126514540230407786917877583501741073116893323921222356888103777103706103779068196567788533096457729462730321332124305900880943347182089264119093174810695362404079082522306115710038391345470110672452440283222526473450236709122336300781398667330458531417846625375548350368927876032053359656438529608841722035735605992507484034895336632511247397493803146603416339690236844890181289040981852195839965163702641209689789261246613938046370257090459310624033845875067987799047807336147056385953087275312541926180015000101265768732502161641240232803686051305600971638499934430332180984686002212849748538255330982967794709831895153239231167808417784031287861535171308752035851600048219690437515563023584831944421722531846129456830319355226248717488168345838917857797800098793447926272716491291444142767279146127102981904285811827115517285082963289100935607547013162661271352225667192787527989909098896232734261120813448912667046203501527252233712985718477583393760023198419983608305976114082693327182261076150663214596479534171411631458468054522626006689482519782866202776618387702552890086854907784255987438325281383977883463699776859351184143891225367291678319687581671602972330756825420543602155255607812810234174111649721601656901295388705740020347259655558652085690999487111835455875142803281216359180188802348949530654891708981208822779276427684998059137984419713683723304620460629881606811489329823139887004993444483605368238281991985816860361794649759881803826591886193780391361771056725260155889595692777307209637022301241134158239881511353616994725231643166363743634575790572962002733523726359129969894357521509756608121433187323181883033548333637340267570022182086648361558904755101464831922548089449436966691163999579253849407338462045340234375490639368193618508263696363887337176702599703736077218881695400283520654268767532385120119693937510720392742376825030727114322820069592567958545079829643812892220991892384343424568432807501184997635783945548359762426214340822802953045023989318167282725658741411097313229714621141865011328368374487945090272624093499441944637399031215880775963270508928787243026914981119565376405846980352373593740411660248129798066969303428827828746259099001306605781507723489091324296171255516945973273085604135866541700190359396479570293868827635279334876968745553569217763022609010672149603220963914522350246198118633543308062587383035946233727800605457838712207412483893562931998917402424162470878223842023941375607148162476922612259011453782250673599078606130761598490718728635774638202112505417675930595835040978030869025551526696556221829802447841102064530715565484458808632665951126633046040985537489534322239126997065892397551099280661781790763082575931518458293532856082558782573489267530068390111973196962625912849394478978787245662381590830767781165743184449716302965502686520497752807033937727369163201966807344110871599671646751013152256975961881842823826481049216448129431287705473369610234822084081587338981069900632802818198551840373436933883096384513518481064959737046287081813003025884866912388513925363773323097670052487367040147221804160414026170909136037597984264794361886478759906700607234320296613017023036032904975537403902454434782605491604279444506136206050639689139414101108918478055792572719085541723592623869705969757593566885880577687377967277515885171934417580523056948737825850857559672296843956714116073497671812942732285538563227706061215025899850046644700895790486294488961540555531676786329815136929549654159911030623024177347410536223032586027683628075748285002719929409066641777597936730450634486614691777070801104937429810667410751921157350395761580902689177132195837267544700607048177005673915673618260308674139124355792646171903080075076403710300907984981446793032702930035656246417094069593513951368928904491107683096174295495412012754440795104455002649087759523742178698901114003643487923377391714796995589110117988869969283767184701002176783474702054725696482533365319897632283344142380900317742740537265363133971527444644675178147583993723985659721078798360838168363995496859969511846869239406110605176519485044333227619468383980262568824616789185108440519709771217626840813717597137696909254547367317047672873753065698308836782985513039925907691268070158477151743712724379001161223111644002844999893445232568987937540275347431361558985672650761404911330789090601129378278286754100282660344009252548628617058130221865368914771848465532819960073408266331772903327161218243566476521271280012357624736438643591464947287652660484135791676397306347681896055011463880003027600731561350492271687043168469638528078462156821347537197508760995911189450457327907320986951924922014426249800862888246253178665723372332103748136437842718782635085644957734644488886526559079002518161686911247243671126250423929843503988834924213594284742353747737722741887615906927292314468218829543526433552161544403733654606769091137135316896367549939158805018055987050315524260917542382771779327542977111846049965064439401344429064220079509506952583560665278882499320892063759579462858251994010593795545368751746451779961204880432949251324416999309781786525179256529040619102881847813036252426958228241664385355781874503820196768596429076551333342185223812941598518460961888388485009136931938548808719937756621333373821866329606656891492600925020038888811206779508218532275528252070487494033819182253718164872229294350141379682319153102133265660309648527101187467877540505826227608933148865360199365366185667032326917280759593359033807637452615482726914824232562219146632530974674817490869512365369525101710181752944384282782880509177835874747238335122994301606422019646014117335717804264481083683807822329009362564580162160340422779310743794008944757894404067624313226617291188935783450006254593257101606503344894124364346615599151818669785464966932624602347337334879695633485504126191860119167776972695970007117691052050980015636972995618291024894615594080981256399285612872906749639069523759977172688688804201786905038171691821868011023273632707852301109965390447041540811849571431977555071805656183510019164296518661393627713824320214391681105550533037718078887971840986303167053037861784105332518960493395332588988629967172654070315354949041567895605418145014312422031437911959724418315252538616602504874769233861066096336754129407032483975457547114832472929368887386173252597326015316482792602525908738871533731613180367661460551831903227709252297033975820772118985961973199572518804294083951484922655613721306449157362247023016111588877453801504752791748360140534329600080346773829725883856609563556880214071164560087759084241513427877450860899207882221112558099923052398268564322129225695975296335985177739089436897253501239723642306801056317709668970529302998599872016804440352275024607614191199529922936208167182095819916030851963075239220726279809000462244855051453124575325921703943065506149831096784684980374728593843299810890897590234967875564162333351272799833349441064524150139616233541317973632439137689125907313247829744557793294538991117722351562316893361363272635924407729096930320495800026376710430591244417319560126841822199352073752122138432992029696680533082873329398917292700708362417525592970733008832820664031145508413013881224617825840010573254538369404686964074816496649779844508651244783131130898631417818313429406939890965712485728818104134435396837632870065037109725109565184258361168333350536201583109426931979670153771714298063444736381802515654868616032215246414519839505018834829070987369855751083792670980257813057981426654518002010664767781959060084895409023192742797718762324224809759555639321945528603821439499585554881467291647878689375516644608524705231663389787671218922835682923623869491254206743046539521083387849463354366340500644009598037058207246244353508155902717522959537564062245990718424086804601939527223608213461174842701849445305288018691263422916671077332986558610802082438784427529577514537465290273377115553986613089771780368842564396867797450969557055609069418706409791728874217054460476455584885690477422734990827049666457718394079014141424053332069022590791599415197098978833749769061859382703846877534182184485766761902479664880750959877819332930690166817242437156979828929775981382647209735280390847286348576579126322932630813155783690377567973532630036400058573641130852976080150570797746893648415270105842572441637937996483292688639841976890310792710690581385687938047756050106438835202579387085086175185710594793203694848662926715558588569338616316331196698735486416121367171469276663079820679807595820393496192629935861926608732702522838914129781093487868833688947240750412253308005724238953428147774762163513985810215550767832966061402023922440279338269233872855611135917796944097649524680795302956233655402233347621562063125214734746326517151662893427057730046256017178063283638967722766497511845968359724596546462552966595079996727358097078405897084854588482714599319726401799678092557825747049333559837463907856316673358244083581319960144482754435929329436464606169282359984283813194283736356165239522247803476630220930292615963105371613192765840514270578568157276727552787837574710705028620130910545578164920053272055218125925844796471583916299914388187387376802145625218684694444386838377632827970119023270237088442725280447632511738946012644333556033329954653738910834061684249381516340765993512341199517047967452309014294581945285185264562080002833382905354470230337360621440446749518125200429736167568028245866310480256082344835355178120725185682053193140557959497664882768990492993721494269159072030055993349567583185863827031741100808135614657143284348886321796833782840666083754851363847104195125477425893595842742659978108248591639123205180144862915273597638891340618325455936918720699248449742512159540589856076386317909613950886688933112993710344171266935987380502988480814953430314873778183434823730236414553120123489441957308210411590457658909554715641917301089592847971163724393425711992404547132658024937287346876003584659805365681344952706651742889975300085195734172134280861497761708708266365885009063201594000702068633135760401885219738160586682996541837969721372367572775851283847613297539742399900227423299305911952339623269909032473820315053051135959832947674449134424023489532907917817615482713067996873745761137449037950878263565417519112729729788621705741457505488865944994148001575726350772149117614029416926640871110518558574489745167072407836950482273713482074621796672523954558782224970513560752738635537533044862316261356417223554137222261400561720836645980170429093887576893021319932584239189238920688737371661015599243791395266351473889457819944668309232263819110411425957332727257066564822270691983881126915776590460513469258000918017853129395306087154338202725453099231284753168386148932562167508423450790135998621787496867912458667156654154284360365151121975497300250270524247256903167907685144839671372693513085482531799900146955896494912471427387172113505086032766851533797729253111975006507543875051223126390637461407339310383194360689574396459503605355051126324382470636837473027191271963897114265069594725647042994476641750031384253051196752494442758891798635338745166857878570447436955710067726593434906563392550153386914951425238981784386941749823592738506655963986226991565320134051295132479572061280784252392822466391861215252408965119338735546395722779029093259590407945421712895953236373705245820100527895734592649947084835850266786729464384743611509937669649155829623401755312405911208247616840274888723418823547932765142940894001219722042988843548803685894839624336599150800465456522156164156405181523041413183241482837477531671606510133511300941888135337616463857433606871931284961679877308637896752218464612114545282037963468742041147068829088963645541511543543851870024248233554942012833537952394167986700982041848806748285853913242091844756694145557557130165715340137351768217594375605300889090605416956920243255401677406943120927263625595047736987107020796125537280496267138468267488124073000708658715817808281199086074855300024629919425898978077353059290019594673701076990651387747035008314312809371218603122516149367108708012671416909381488383653560367397816158816361399828003380436010472816654670802237123249020634955905179916066152577929065233959169915127938812685547102146476168910352043874328731520493260179013537613028416726384168418134110119495119049161336510856867164966881859430642022115666996372835380573844284332408544386172682428314312781360682710289809461808351448808413762765593353218180226294032697407742844246048286109364331304603764385466384378054024497633283948145483692982321868821317517761842519105394910391876562734224965826873840566041565466378796799839213927210393499870104926779132068838812351803528457339214869603108444180588243006021756780569771318350230305196080286102467874086708971993007152116602892867078986186268071625282412583714987988031163551326379607881508522656050601616264521248664746833928123902517745034493636855152778857644302724603349640771951053391870259808478952307519479632727688050198628864535422206677664909259578758322067354250499498692899035273653019663404959646683683764148095947832961308340055141533956794602503960149383303859069533666505543004129464493768391870363030320590994501157254282770456499117262815740419232939420095671014603518040699146382366099734497232644974680908153943906636961347856873544126992789407575292766407762791693427130235040497163609503254091637733369792462623342192464037440416901003080073398651112571389686465513959711244024710945851856483390148281380244131508471539510619591593980984109907176736568585061208036191932106528116708888314257316017568427494129228599022639841289138107358579181688245479741042035632455026612948507624161259604568260315916951663272745145997078028208240237528513958504277359085240615143533439966617507106798681133920635094824125095802188767179239817172392787959496088754129904578652116559332163010797577984024691187250060855451115454485863191083814350311795015369148442239895305949361160511974774168982954381937825501685856381614138077967857630053360623495559324067935873989939396985136057537255224145080443832886677491264158967718652606844558145115146427036763187651897679493290934058216873027177588582507172915742890391565201725921006404647070867329383000374265469200915554033773494751598463776382568130390005441128960498468147258192601734990571414355036694997705055745848673099264069104685504080754313567932685815164899727845770949965663747816032867483610735222893399815035399234538808539011159878433242517973362610737631182711752440253516734667869715803447449701608148737806340822305797019701904781067727351936521322855141882928191460236093482495175162042430043961619551423135669904413519573300345034446507352095176369448297547248393191144139951271999639441550460869967168295235236397466701214498529555780358288964487716534190424902023888383402134126734327969968031482611424413529773325745626940863309206198996039446046749046007434307361480760631217718476590890813805776019282103413809939114299757580586182921793352185001383648894431710441239126998370981027727475947932573124499490286899484872603112588566101595211229447979783131647596915131436802484432924817916706921662901506116148518164176502438463964166429082271003722442686513930971069275581863259286094890967858198016090226154201522056355310393066053624907062509741234856269778327023281808222625230239800588530433376421719194732965086388167422183404656770423602484593436804385542651161965415391100480302822457029413496898176499417209772260029872379439984282911129207699105989586693795197485017981257148758530337181812115683543464862780423281783068838737752049050733242101301506759585171130750353934810764526212142133537328208795518533407985395181313132722531344771709480231282520167345429564675205230743323933864504374525261122915487972784843309640834635555807498361487894896806210433562563921005587684830291843997063567753931492607393850373022020036187007779735012131751782656641431222847522001956626539044884294243809588104334099812442570669721181519981805746544215961374323442654468969374654211235895904568457298439879484448487368175397212634027654783933870463914439256552016294760433431033753561311476790556321433118313653643683882196703861465103719636994857613752569371253303476895485408553818122955052773742878675214886478097919799193284633434844218312203210500073231961124121398399880525858565583240511915607648426707324901114353039579207001469092778776814532055859547508156509807748368769368341365271756180245355251173482703627287497606659481098916722439927892763848306440859518189933989569814375411320361177814353773641743131478296856544776183661111466087428707546845043482212505326261512141033350340592006879972486473853328940560467707267882968194590174785330534501677530332675749564905025348786923198846755907805084767943027131927895035537595769990805516163450843846623628591110937260970594640669339863035725373264019920157893208582877829631976412799689558485543984386971659258878624829781637130633996773417596203116192784967865379800647864849704767259943573718556899043966315946136085523764300181893837378965176802624900141380682833983234225058812301291813279492904312911680003773489259976298537308054148071132806670936102595654954164800802064694940319343776521995840909040719345421681002423651711444536326697147865624298386669010612519467629259092855137058142259128486717846240241893026578697812614688421972086305279222889228729520933785691069436857414328209102723965038187143549070131045342022646602534886120768935287906044604944750269587546031616112933683714461070699292354885137130886770451772927618917328200986593417349248433288037458954621394203773831953232697953253299365782035098941927825053864830913885072560773418936920464000462669150733710098620640171819252684200532368388992017542838687317689775940772462986658857572735455878921177686473874600330013498287710069579576228034278123054807843151006297326929965323880675453092570598561345632757696685427253357415034583594504673709303954639630424604818648157137154679095068442954260746590282292085197597193844137957324131881081680688621600959301561220164037140250724068054865187860502763672167602224644348882171748244545974935916069764904854489103968211606406524028705168189141335819426034835725163790193067872691341892810247266699310608055051184150437872617350225003557334444475436833243279563533998193163116389746768265794140171348722445538865318888091752698531786350063362237650294999641804953005742268735166862004932618648776084567952238233876497877946268680142980075821739145838482422194473665038292261067282350083077108180253703360372971405841131871013033959714786913354787183700539972500130604562471661861006694739975447444999488934106319518517525570678993895971569037843970179420251154530367854333345853456761175152045083174387458609512853192780787484498990834929810654795247601808693792214691657101968611716171642868390011910883782484596578057629998039740801168672700655880443843371199338536316941703751107888372406781218750171177524412636802586785843063222411527818003193439132968704324814885436596057889084723209557592641018770364019082858878407834205296578829631049864108383052589729816499931850518851393924276187755155695779565095443383474330363886919863373029887064064400260408427017862268229126648089313425194792928611616814946439718311192645544693812024558120179775818467805601769202730336399117163589741966215150625610066171078303462064136817910596552726319092784442117735188156184223212133971089149072877358263780353693055026861043539612582269362168280245442561983812613939324848421610444615095102345343249322112652362599303793631397883023850466339846750655958802781478794285669779972257070257455781568029895489408339290356400741112153371055925906291631485870145172257021699903677542006515390872583311199223616088557125997103549696101072693683889329208131813636166851081694521017149269406852405163376542416016638623308200146892964869297518230647723980448282599580441121931352604818570364649265198924962209026296686490997603399625072657609621348931919470478308000814334924624293145624478177094749265249873035558933487514579934826652489709154141427920737332798088014694998693961817781198643475497412313265040299571138811503040500667704529702293906326590932603359204641898834696127137683977508881389390183057685218431587962727419993448528683644034511754227224152210217435876612873358304034938021062528299995983737626685288164237509505818705665043160297240899258715750696756835549107227879266711902216636940911923152745065511914221428671525908047140358761473833761580598777657681343674446193924202140994288130316341174671137299701943790379792437605834374376622875410086258955777005589852310554024662374854798412035441271601842428702622615710328995661507040465896797159184125891489614692417647285379131864034347361880469079384729584864294162133009930738957598603201484997424722488047854666709212165388234810139535441231414533984802788683297450112141008435039099570813713108108175755073784746233983040300020572347846203087329341888878389893401232033466938346421193286896369967930018763653875698668147701598877531110264098422528788978906677897911484643426684899423536865566306054340798578175026527631607420740765382853933520134534996479161564333597660074510820313669594096378730623945915489279731652522980700135032009564387044589940794207834655959906708852482577021898015723567918072897201515913700885198200090933321496121356713247858143296070474280747588213500693774179943801774248495170333850777286648230340191815870084506388774327625966807299342459567002366657081943791901646765195936578623178476988621640267456572250994105437027020850958965728247664444479223733058392349537768463189851310849071579910033224700615693662780016026241162066249714459881806642367414711063614836930768113467051348048178876206393212077853463037291766576295306109111090537803905214985259465916438450659293242948831997762353245765768383754993303619165563769580771954835007405682166794894528512462529335970432447615049005687250333734984673140057404481903118546936424841350170043152088323046472929692708515220577511080869717479632688644631311998434024583244890895743847266840274359912812029788711104327766931776506137520841346482537437139992216784916631499743657419855944788030768697711311794482543182868103647271685477218845556757615800067986255730245206106758765834819007665520536633261987795272353786433559583712271687972646105767689288302634404244841639542198872081828555825563327908850394702375598762899738000925872275628823648035894544124815584133085418752540073009223237760010528677126197308623738463279988127411770873323980138689792726150052277601962705865392131522914384991883168047575240471314601258728477417270453724934985981159375149865955990372102299037491274635647272418865038870747194154934816422180819973197053745343481184880175207824864251861498715339624493829826183796421522547072860587462375824694234926428430471099136628172256034000061734128471624663752852898677980282032776098571495902836340673460001567894025712667986895307259044811283874458553897659655921929058928274522330346178484645365828315478330684327740980159541044638252932738666492922835732312187919915303273609601020160133941878135480878167498129750900264823696237969716938433828899281215802250041675048610859088467147609357669404193584870405264844202164362282301119310098011033943954456070050707634572981688318201687389860751656425813711706324722419905129071528288051596270108942833103414589211177977101047811589602267947969595102060099997000096149714569117406409480647171942648495696599123422057948247984692746700736722373232328210428245489342875805276143117836226002005142449268481545676807298974140654834214342104057516652099729611928068682564280969781903722529534131480416355023396858498592094155101039208139477450116315410113482725209274903961790970733836316403888990431261132953073440023597899917135792894586518707411816926453153582716964266514094291272137946849231561842481435499772174738666455817142798339986838378901316038801312341610750959407241740564273417281856369478111724384484665347327638204981825685287041487584629174991016833496334288594860595429095692078298548028400307830161371070566793686227525425241802602438202366557118105171211574107614409227669768070605617525615294925449451741717983571260394296665311515042897338205573845086141537134104759009764210342659129240344923290526500636192424566355612226265922240420087240732090400468118073219562263017818991922709109851728373604771035801606505041004786342627254049227827169059123246524473984210907432945040982413163955950483393728723912895697505018874376606758794631965538137132980700683096275561648778488804340874465486220921061790269519684566295967133299333246687092553439493509889114524500341620073656165187241678976329008448421911453333308301616452316287255137602700593424831999991385679070479628150849979346107290228195737553458350179711088042982199191638956784790022115217779552926982799456424745020344694122495008621706050236025713675263475696598084247447444777237189144451003908270849198877482836707384227090737326622476737109409046435704830106890174455188250348071770851439526061132810631551295062869974365123710788542002677316538306522379859282679406981789245085864794887990849544306041020384614162950859533439435385549362390460175442225894915369125306526191195622547825858951755184901691346362662145214858265937158728093005141976739572122718428289655413662442264529881138064478860419831298952836771672226672558441892455513617749620964814073136130096291215394921623096451623135647424915531142772224169450412459630301165664560106294337334537555692378954356618367346252434367901948152601527390333709066628823831526185884829913415892454053801919948489574889705787773938054297269500466697683538138505141748102141199044792026358391454943270863549566160234915343740072818680376745671335210178115229575818385412349211189335045020020254249179605858232568316860410066964001508844155467495097441932189464151005276613604228037757939419539006239789574086920176506053203600521193490044249217006028480619551942985635642384431606462216780087141141329654336686180609930945767152309475512718861667895071231116942059589856946048287998135278349235768658394797834291371132058404798209461099455709158430972028344695460528607593671499388183050217694109142040125323210085366155478951465798825762298101809429284656769989073889666525956697381923806248044361942435134639391068063771716508211974248273443395086938970285848039858158671069119517940198701119386513086485788580098410219860331027946047875881023136088155242468419428515496567943292375617050004825917328108089900719690501793440930692824876227228226062070060763755132111143964296943490159579695513616374402175105729450460001611455547447186220136459028626320939166566694811807473607075360459496528233413624254602136034073884355309176143456774221935576758556697270624282593152010428170536363744393742037561861973682284243817074414163820516392628433099319758103491433350351763344256870926343286321290043944803849047926097478443813596150638273013758275406551761045875433988238738492920775889591783107649683227027704449716119369180684776232716328741529950317592373839172828981797748378745975503713678865232201857430220708002482682773738007444572756452401970562664328962273706138431570152239519430068122896114844759470146330748152916877571593301031682445380816851919353366901786305044620980791120553526599642401211351064133952564097861431933869119356741564213091474603743968749893871718857584659518743913984281809367065113898158616081827483293588357047652387803238863000193793486772327487349988185907720791007826075820130197358599034335863069122570603090555832757471662127492416028429834153472790358591606039199923700442437152739777425395928206913912629331114198050144158817825798652225321754749254636383552673772987558724314221705981202144476391807426293639493533734364711952975338345037424111949987434251825921659492322113138111970700732726162423262830634472672125395172536277473538419810544355452268729820195980908598538052649922270758799356856149209599858243811160112309854988371609709784588353291621429705420365725770511823240826670026439250526171311410555291175980243711802039060182261429312042489876259656056081483109332130422085237456815286936966758907951036660237067045074233525589257036354475787847402521373875395125774282837187662665037381600129654759519293993055484466423934949594153193931224468990492331581132132346513848832283539194506265259105118183144496620715142826404300470498854713371330157067241899281040100536698346821325944785494290263149553854065952003322633615956970506725068528393305474935584097713954352032581927376579849720873102862774158970735136668015766946814157085577251249667184616917891458799348124564621546956752154359223167875534350422119690386949798081082877326318838865842074615674890223303766731532365492310520938595349174076826820668074789692774262090216360878590998007763113207155790268278367151848654445333857481323669531480618017386974130149792037245978959875011831064908289761353562096953273878074714698211653131858550679151401348960578278618189188129543259062909324370948013687926210544803375371530575669780011977792456042809607098982347497463098340850116482362780245059517925630466123598197794378105800087772501264524887763373776936350955477369020332451077884090269836810573939464986925128635447202333181486672147102288903206462579031329674310335612242239196796478260661847443783578914453921603409763433816149361097082398773157111167997717066496054664828287747756344289982782476444601466971911898429961518965687029705604031865229171762433737221785059045353366437998171424733138099772996733485396308023366016513498042491568282465085955746546795848152174153686267726738017038485158367930680955181654296722724357389434430530270889525678951282902972667703698104157158947123664323391664963930405597332591394695732491557022756149219253074007312535199966012428719341470945447201686718442605565584064480055253206647332200570065298597416248270114106015782815837741111300255689233480838766726328731396789821317605375389124467094085676510105769444174316712310807225429637196690050157461895641352144883639233074804410149614097665037675475070920645432262529846652642720541103087094779876035022415389366431774446769172270273184158667885263910342055155797407091198728512579147702105574316247180975253661992661589735485306583874735306474257143574102920117308812231982459217757554565908688987449940172366720853892030802892416455901176047415527784743373696061002572932128085144337350752658359957572593872128795077550287604738500070700442776553550818244920041842469714692107562065163321485448465998413242633668959941265883003266208551721470486541724193815412711555514150520858209810832129840307693537414762989428810006180963919501573801359948176004961640142590639428759400977782085971936913971837790817349263920164975186997725795274631541970690315030667832130113738432752428215476439735435322317597226927176021000587362883043676403532969520544745640693584121195533006514858832782843236938768222083691106038029955894458040583495260963818976557610506089062843089866376137332094015791620945296817683603248116632368755856108815722959272537337322070934003520183927255952996836639107855671755521308330357733877068246478079750072733406793031176821876126557786670224909208884058663525411644647249580736583498967929734942180342772590641251733057853136045264506770183745256937429036274559305030796644036852704997208869049030669177783962806835958114536772811599776538990433762630323919146532028526002709836675015217532627262035731656512538600587878220003740469785009489788281680335788023293811482192565060958416101683801049731139244811077477214181037694892484227363774529968023661118564677516989892557887380534329937638875586307839066538709201720903164672133219700891593924471137634463313480305667762740891374272560528301650204002239428352263326157047443241971367023550746028675011647740676708407472674885737099692645769640611325397329902562966701502248907102565555086326762909720067697926197167093430923676684556036443383308190334492735173057005752772683895169022887145858932631089486224893385109423372853658105995083030948112056478789234309386241733413693898294746292603272550141244448485457113954851691759644967213057079438733635634836879976283228050094334303956297847256220068556698817800498718509322723153707636173454171091451487628693509977568075536337925983116474157273797404876120479375363031583212738139115507921510770293088480813178226680518884278129307246911142762633367490092519097575849274942054737582251156810053616894145849699967140220931191858281138174709443264888058279489169838506830476415814904726002983584471553844104756314100471787430704160516089482814009784377405154279725758686451264789333522298899092949905959910463957436916211506261547167718669976927005022016197299471678286628180517592565469340704861851344353093297845920418305948476472590219003862437033039178292706337306016561703115244428470601561594210196091789352192170934135737168665852171908023523616808869419595029872883850233285714526815870724645572860233727019168313589002063572788174384293380114517020401335429142142325145990481360311841105658029461258225049184418625642452806262441017877872243036554612686028469472597118494065848846082624464548640043961965898618701996131124439539456597148202977291356118842015329237229702571466224075136276913977242151633568395496063023675630003898358575989828845852722830351804164591466804088522996498279958017835810034722138068786116432466641989097416021852242613260931734689683917396025654973392683613899161695474845055325806121639390743218011739818100944840736507241376901915813822778191376468234693332601643283254057876867795178952020366106504972388224232244414046073524852139325683299149279782563867535285388318168520150888813654740191976483982196624484347695154099827284926517848780862925367822828255131208023570037197555581635406226916948954891139069176979199589201302643959293558003901952015786630510139564522666448388058704157878115915587051907877014911895917730354460129673105545470607743966105076819970737266925331863812413553978296300098141834439707950166278863864883107718897357183640207687958745192624664256195014106918672988545948462930097699682068307361886120257594696989813143829526483141924764474976897328629920290662646814451361555598672394064283776714084554762748496543005713588135011387618424163573039133674485912689100712089258101442482607297070661851742521017384168790374410169618702058027549773506227462122939875699362287304825376880177925566368132561190729800931633371107563141156429800227585432796500927240221989072480390687278721767246060815078834614789559150201900197411466369310359676677909132569489219765648041503398950689573782003166180474613265467770697728557705809691275004088547268464413839756370407174603852732607321204168643966605541630331782394348221039386353305413058569588498452697596354087768084371997991398495251957904807876848168155991678013617479818736966479534587476790665359213690935925868852152951035923795515879679649048879489347236385532778065538609513101942512866710680423223720949451395453794182621285475779524128053245098264042288068840969496759071674457960383196004012859438128475513102319155843041091603187271318366435625929842712545596007501643625435696822561194404935483919272383238284479880806030116045618732097316441964981493390724962147355493827022079101288741842794433935728739865969326000763737659957221288664083084807972959470869799428649985131574674759073664810680026811883456845822431409812630062552600911312904822272605250079965978368208074478564499098459997130264779005275972714193557908576413468828582610733836782839837984932984497452125344564462630436670782540510345271157097085090406224199491141492434606854101387547245819992443231319711172903955471717680988677922667314706788682713828917230369862584536521641482447001178297310010222357990625048055830397891410601840156202098292494882854567775842443265402716996929051629747125544035111026487539454550654513280598998834290243775874112109493783244951305955711960583704275674457910393785596345455944660648899348295089712598065926155086291546909688158047329304780517076455841811700197264779324194858626450591664684394984436228484080298327702735715364246609923216011932701283413105746794041167971136723735273475537359110016853444638413818929449137372268566728177751262854784546929224454445035670246497646498265965329010253593698011297791850983490680944819769745639213798678920353490594970020346969801540294625999559829768669851118855620746142906957671337476020644356681986463601930683023183416716417774532645907482392664783742626702337198410134019887914287106459736654779621917803874703225203744562810730967221299508844737780664719109588459511651846623448787134635726762733842440662916514843428462786561739603494347147403037048464713253375331873000363172253505919049531159609748461967351045610942597795728616126773180483589071238180956505643777301360874312616058349068271011142964363767275501278720123279768135980255075126486872108443290891842311348685194898366443823343107070991141613745962749023336472161615380695355193195819433216234254058000047299145191238046427377196018994950882723434420873328686459032767145583438096744958179570102315019267351529332223644263755993762756719417347195576698954679893491027507366229317322458318426856330161304874289911952352890770508719179011940337980595447217563647821923585494518302161642223897756913432067755096497830817105166502834658135953575067057076763343505107376669186124482243681482049772527250562392777033611729379619364711070514505787762573256032251666664403333014036319305325171618958227476791731631822008525236365854152255836768409838127570073472388494143055626078563834316550913952775473545064976015390417021978466347554867739614565799830654331438904995008944528205281102483397286936013334584202696040266312251174094634828542916913015486197465028796098322180399054963913921536827798115571792389738637386508346340395062708634596417379819533174933207550102782673904499741416554153210376663580928782179135615778352644933854980701359126215893121466619201352236245626427999479679517533281882097901350517825415681929108921363199927849198549525106332362981672021280481861507245999261771205205464166492159281598297702581449265503752307652155664361363886097312248630518223561072343109224080772901563063496596445639105510826176919691553555419029127662207557099748918199603297125319837306981993079989484966911974993935249315400715176636190644752173321384536517520997339571028089289514349526859782455534762537577538131096138780886282662864970936989155655359964225233809471789138695514232755745123649641849985214875714338102183808894278251675615118765398695779029001437771173691617080904353550612932842650908438967054517435681857585734171818788521217436882635885614158080994065323111286943868625123704964038429824554832263069727861489489625311965194648737366213223890490607752027515257758919774629611453323039025626111899406869161664241918217366355194594211403498084314585511306182385391895716971969394139551441236553561741656938441864382753017202302925087388343896986894675131583728824267133896141631687358261808162378191519712722907142215178484667112113940721065016248185689227032130581291901978152570700226199750319776588493512180414897353200506120649058288850065688793356709804565876618859902301239520309415443080683382429952077064563115840001448290260541301717202642443579393465510549437884334184990488823012875022354506197161091172283468687983938310599903486932198604158549030668693317807754810928509681809030498272481505312954508833457908637822683908118240698409694183183691900423791590921691701486301446539043684480725231394232104516305118761466736194398948979238570804685574806251527563939086425903388569260804038501373599129458025314265407856378678794090100710040569851279746783171025181834840487354191540295225775494881162182883256404367140112736285482800702726601857161792700291750882390632106101248008277568394935688197744864245131691636229664081972980556012802286683715708248214159150767149633110726775697863374249303449199213999022080996794677883095239712570425881273019914090065004920524112566847650815138027296136407111228576068931993959382231249197175187749358089599663773396302606901769251071859266568042595073710777919372999446901095314736615715326793331619157229848554655385943684946888730853887059624979959458605830671108980091629857050952589537604772840633571779290058162289686381274135113199470461490768797959517010995104731699666400003821496777459915530013726255946240939163893749368326855543102398731456416826155171705543406972104952501288376663541447152416711143153397434418950552262935138006021112306616366812386892852029391191227525723897353950172055079889878987646296622838261957055308653359255196175961648801724746421915897651184493675198357411757087386813911682057012824785210557580082423504135014870466678712298046443250862267603276397734841291031418329464148297190408310910541378765497344817934220893033494254423214742460648382243182483380656773644137859299861611298618276983839168118810590579940203750835318552514244462776979066649990157222168840901315061871709775777864195462434482760322071212006524408909478577339700032224055849252655653984113835893254648095235914093355787273968585272690278065769623808462198680067777898002268218372977658962659350704076860809676475450633936224539000481922024694424216041062253805204795455291873428093559589385903831534785747965796581722518861080410236954261728377412008697071181821399826584084278139165411620233960230548056796173548065851493570366716221380631054451019046659495296905287484431740531369073582511062074413567368644329157618377687547153363423674191767435690307047845387590991467201927947314513748158575001618955396311864088731594724989774777524277016277428025490833941472171139589702176358930048668607162791380995585259350693530871141802842623044321472893154797478462830103917686009563816513834181032948711481997103439827470300675789516350800584302685447642650250113027683543953025980780861185765036391877004369541523093345522014096633100282672386558022325340490945277238460360073910351731582918639425614464791764799578639682128616850319897500233425830289506171786757243559767043877379953676462066604226280998890918761111835213319661004783842525432968735458073538699159983553295074427946382067349068279635890193927153772101109940710889894798064491778707665415583061822005182240452231725097258229341186750352827634636489357049195040836832692279187830278706296266907247414162019288622399859996764814732065383895716119477228570597252965634165141600616052282816576852597811889877675508346047450848485800429656599855994820306413035009679751836335474362081213544912807933929782844894253118129183275548638337301683698585765855588811015349993692187313738654034913187420457279569336640485271904546402765705807763014928563252063336980736601386599352909407601126460391934677783954490051323493820479755584085376830801313745936508787159569362985476803130952643902069952466212769705442349534343080659726080060431081439630112336239900005520990215319337810053871987837784326298044371834439996183800292629950673494362293994673957499025694749782089115619848444625792789140189166004990436175670011880476916176532560798137068272038887851240225198064459176749185059169818524524998479154374262087836347008496734268414418709268891989941277378678402830757157160171970797308384967586474477217681943515815537444509326353217823288529561150639527491962456713726547816700784584886156756726589462218005856731923635433710724048094709979388627392097774718130480047995069864273122451289029539420204878674777640939726395331387286920807978338391786428869410508279154205201912767234828521134667874727351301955868596392024065944440208950978020101533479525501470967818815614851830447478693011824180570765914557019872171491771979048139989284500068838359304667944078461920855724524504836006538999673764896969909641174051558677297841777698418407758182016493145488183706192209553903544516737012050553821526570353882610788362098845059959111159488562959136416115463189006449174926452187486344165068802863292903418875128509754280130568122399908480652598459894016964511211044983682394491769436000397838148125165788624601877706351536500739761660241410009521696416717565060354094260791778762814654190401306613858979763192816210353526182134872856860919409052665096097687478935099962445076564765800046335082895109880886112996460557102639925824507955529630012721875883991148835456755296877579969278784118900114319804216171334371790042783563437225673442769428224283246592691600253204635746114260899482198138460333087904861623873762196031703617141552035354556862743109959367230862356820046011965969095576971726596281476097453821834475418241712227131060601216394373931561845616414429634294192461319653555206528090864162342139884022234461931050591833063427341333507905074953742817196438305560807133598010282544258025196882461622972657342038187779692746240201660957091831924674896689451671495423569098047133992173828489882251560579164613079339190061670609106797117368015148168343480776319564115691019656324948660898547772857853685986032450126965835830559471744338221045882214754187625985362651083762722489053765830661367296441721651811141584755372796738112018892516338415077865144868682261144909075082470302727170856614578903221006080196961341214404492172265213575855845274836813523538483073881274919849295131719983125977666162862735792931755888959598811607135798470715292926995733727092208179483735472158932663636861840182379488215322121871421276000764731491671015258909733618600422588473664154478150220943576815426594906768639002884419410402577033642522073908527233869229222666888700485521451948985593507421937764128933731858168367572899005401483148576053203578150894652238272775581418221482773719832137241477040381768525524646477995182914817650772684592520913904997021493884729103106243006991674869725637739289900346620284604203807450013219190737314088415860472115436323830563829669163330750773649480450505324258377625008220108416530716878167884283652987812040166533470950862554950845241623517174386460783625258267235409017098764701283510708176737644242894372851407738920814251479405064107406319968433620202518150905405252174833233660204514039869014380649712964446491741307170311979151956778689420836386373284252596533043223479232346219183223002301543649748653833861268803162514683600237542465104132158215369903290987134084078868962608493600850877763029855502645276745245200181636276630339499622673332045786781218106515541994973182809920089747273779670923678368197796429042639908490257650004847691732152935997203701569682511362475831635396486326588766965715470375495529202469691872279386560025505173287576856982409095540142955210276327706070467690786173024799320602954724518699644183886603081166438575876297768184489262119589693353309699664798778524952473144972210875248814272030987620266501562886535198836126057948809787183176268959155262958203181605207764426457392642283295217790386157949073643079368468369984284168285630308034304504643491718869810208314856024560190578987788043825123263513125788169141203752630455070578964126241269570363588465026791670853951851999433172811364545381575987168606073739529871695894881867465827012284902929139046228130387291426626288127742149709336374186470078443243723883308926331652048570240381901689961746562711238353513102717317118067972352767569734718506384414920635921240410183608060668133096871357363599587444801236125483572436701002549400296979910672787770418250527235834709363613842659127838491855037791726249998989917189604337424920146901085686583600801420842776428532371150225581839508242846261313186593302488693527422000937652407433110716227838684181800473747858353801105150821521834217528380052062805724825301743427593979320918357235271608018807762382587169081746018048266575643589406005172794873110523378071564534404476388064672374057079033204686420372626386602749307141179810131163943050651545420451913566461688042184771188836525698070861792504389630028298909966073743466541197826740565107818637026940883371286897851878967169047573467562066836410379040867124774982478474345856137789338592994477185385548872927587208267041057910075290160304206765915280906997038609228905788488303672091681119080937699056351799076497153594332793706750433420106784840087575303540712512878173340875447712488536066098933556155657119094714825704390256494878075581214641185329536442821191127532437324602300475707853756673817659212893014581395816658501823245536377720345784403444486890527059971973934912176494694559158366735163036585163927981533988338315329226173444491065138306132772361741126102374305154110477661434489590482658565017534140340555776258220904970376253845130065999676416295418130763893285132749779507810338629458641869873079976327120049211165212475440269125952335963457853619298688686316983678714797648263079336037072266227711728413903259869929872413850425163298987883441434744313161620644818858255008908521785732316854697881241812241289476322225252847461490392832785910090401516929348437912368661591763937340532297886571538030799757972484786194522975398024669425577652375136119104599731533404128230749353558589418308681604233244083302442460086034107201053537696367701702082930246347216758456831592673230727188839129735797280022054015420842184833100799280530412767456254905082606197172440732454395792757180272590585996756229751750970669277431916118491110608934012111592885976639255292529718333660739288235811395824184010563766206365540090135371199365388311569921109148397665568786709248616794785507092045582157115081513356630107952562701721728470879786295339354623789707747085187851748131807200434080376592447247199368498418958535619587948223759157190551345206793981722469097811872059289456715763303813872148580752201744268549519632485063465137230088849377715565174183575387654618215588253570910870267725747518679144281110884427141702675265302221629356642126146166660359125287040226246302389871353219747330006072355086336879425996144316566765509836642870746464225203756891212754210430658979550819966883691097447002059700555120787306835047987160453236363516902122397450486462961244306604197990967680817930880138524813598574477575130800190177594502624800792944764402843837810515457139460170216793273215497372970599716990902090820831350767865476308193272302622091669622762288244325661967982786260894629032977787346545433783078936342603331496083698046935610937197379429811366741893835690268487794551440176914753718115639843675137587911634598368787600664175533393372614795056779163516492753130233284654081544329107543795604317307242491431950738682680547152230395280613269296130684382162813416528395584309385698865264087497696840575935565692632140159946505913548999955017971233872867140553007885876272344091130834204058276683945872076828136540241361135786131367837334139286808261353112921940710177341508626015777183203992830174289256937427809764422449562842980781867127920093730845980759515272486504154541337339351660272861674533988383729309398766289853165424718033350151697524956478019681151816803525970533281552841100292785696081588240854731142187742622776738016337502286331274709228721278595468737988228039166903923890837813832676160906403117240203095859462009430794594346380596788168222456876272918902650293372416997583893306106622276663028531417968577033379244373759933536651242744559017669429742846149315879748518725972103761253454459217485564233102969468370313354707903138686995526886918915432151260961192973539450351620653186026896947829656305629968520989484911882732140445538855831066914676029371202916593814412080128357555945009450950392245941855795454290297561906581911447514371104859088284646972157361475639713475185616867591885293523350404204449968097770067030215957160490061189675113557223334892406602466897065240198577375496636953003841768931800438690571737976108551199307506173600417408427878504534424023627665517833087335351616987187097465684568329808805125969421877051064424797510749655399330468167490881441880301326666004936567185637457536934368237242343358449383473810936695498722682662697941287505004995860141403894760337835460832995117908170586898257496114436551189311522836224896308004055732625547916496116929896389322658192892992004644558474594863590561290392589899273595854715206614657968417186550322211123942371536351206519317811628210796067869275309369924803443629437497710664275252527753600531073899275877865418771402481181870667612946933225127655136737653000123873219866931869990116583461100558084919259056750143399720956848500459085344626914079466950528753292050377182913575114379188721367971836909742571957762971039541390581216429786159914442307371307790469577360235120507301490944249708735870586146290674148375967048870848624259186279082301559846456735730113929532641170770406540883332074692096683632072277169406354659612421723521248433148708012960233998448944765559453176254120005482942495285129889467663590627947020489984033655055186147745378816852509469008141485941193723106715299944427352269955477510981070265671715649327382754222996040961269645220520765136513293778801531345950352507656386657378805796253855984912488663806369027162280092807720055095833682403404118529679655067081031094740944024364127601253427292967573186596752957498229261069508296755930307831869911011420510934110692567877542667338956700668329045175747853602837050211244191471546424147696995024442461523252283889177125674562298428775832616588486313311944598220064176372293955750888839867176552649429555117740570596878508217700122997685411980169878726373315022844200705060574987033625014252568379447704819851883617673318012790858018826227229566116797333295461460750301565523227012345221125858139630961029097182803399006368352876176026532967526897126624736749738386550736058320123037872419218347397904857968791864577158258513595877419467844820760228782396129568212407639124892374516888021653112648023922905659759515421640424216729455762562757873877642565177925235431917454999039024209276777766375050419961846445575655096251292830949369244253875351268353772423967177079221526231879322528754216352514202709104496349971685758427510481679004182994104625585585164204485090127107573811029919948025857267328191815520084971703143008557425186750206835975834508617732528567282074316876141237626564976247873494612318452892423455808396008373942007203655886948075373915007613344929623781154316111120232112294098123721800405627389577198550332937148571599914222510445597031647507442087335215963311169082127184956092589016694203242457858192812208863972004232832290814402720827013196932313914616627536974058637925931679365345123226788745706251171453464694184200534618937073706812827434987849474407106559519338797361504165202671469668183033479441673524729396449635176379843632266848579539424986359648872490722736158969058211366786216305397922532912740044042738949795399236963392378521087216278029721981714888589318990169590897951604682001273853482859862562056446493172263963059729938744757527068220248560424772668697716248549298064296016436208915379339568612787670677626196839888345595182276307338628422430486447679385019083730263275689019995797290695442065738300233724419380065027178522233930278323788897498610078919437648104185002054668102754834717139230026970632774527589583826958545477152825598599921461301195863051761176663314225666153063439441088771138050581328935403050489794205512249221758717675126946876260665214119865607281444632664448232914778377284705171571971540622923009587754338740666686724117331620492112108402473784106527220044482560072391803906281680162425566032390543570434561617721007142892123080838970508379660910961772509853341061644798503223973527875673536080830532221223693752727334576480023889746470445469120809997650278169257749302923048365628978221353436838615035578118700101271037496689486658531243362035390723109405706317231313570382175560203434098832407048043926425254322201262008290953216025979627238295664406211343948252414070281902688803173624446183164590372018879376985474421729343014487025766681868353803619677386361384672892877588575924240818802617642541659670553227083186148106339697047895536302843720100209405132273502704545362119116213709711862086407826705994855344778897623935853434347409900332001979141763889395621746907888999815934429982201022427799211212607263972018848780086726231193062671738170484705371787834005912365821973239646896659518678649890899864746427883259780790983045301094602230951225769264169640563708427895740588541596470227123292721202838996192246159556562438279691928086889022295642269142709375879765466918159028994004933894929799494130068158272801078884555881516049253457667732559745833808437408426291551237309783668952714854795549137117673916399523827151598161807081600312638540533593088839308130673143733738456239033624490626771601615654052617821752562554377504939245729796278044635332626887083393710434267247920247078342796828369491006000433462742734237626748212941132189041164975779283502627562615201403725662842821361179515738412401357591850192233634724435811374706014875243489518318066779911356020689835641388512326486637128113604533201045603975015873565149046678517755965985413618594832344216485079809029635955420405137336703649560867666354520246612106942870631765868516748727107797358281561959138851537038465680802543685361864591314944381538658158453228255967336834525627295828725880341725886257647225176463679776422054485987365203129709958503987467316468948583091082290919892967850642137816850092742816640440246261370010054463866566366686791342982892080685573670981961727521809675972976384996323595511146374918553318859140771324079796202121726072979514474155324035901285316028760173017978031985939434387695156528332234413939510914252892983725994859451105752913940179689297205619419770697142952033513250121429750899329237741203151400986587602229965109862228308038564311571806390395436683154290484888168014267337452024987522065827691295415999088896945050839901249227066681493103435054710580981841581473604008430965232696478657685507883194868228293635670143445750384480840312510984559580880261753773344624854335470564155614313641149452373496922004127146047658941149490961051567983532279746912930112108631524567060212883129993013354271217954794089244740580910625140780180886843009716341124607527056311411791149064656906590974787418037201969873502895423394041495807817692306640464181095369454463105271410629124614243194424920821207132131067392655070868429626178064051637988697374746591972474956503189762334567381233704030923074667567375642513153076588650192751574809696786514818824586250293702020151034776667191641619143191283216537389608532329491454620157573853663086914153671510327821718105549004869135890978194429061834679969796479267331209274723827041086553357215362663630473555005060638717749037144544562210492320823891954076458092657163344047241426301414633994944905393542694228974370593505071115611557633756250466159442551757244805954865097192793220569634214714228872991933816748815019293514661930895968333384803161274661492730919614709627334845538994593390785874413684822030069777254030123673863764118724352308390868191602737880539430148746894616657462841477543182201197365461672421564389887330696691499592096271719054615064451487888449089549905299028773800770082327946448223024024536622342508640575404561143393798038886752819606296509106556727271794072463573300203361423701283351624453201818222861943864059221258583621182095289086943513286781060431494581009750481012210149766242834647432420724879068128600844116211714844660419646318406949679184038568329617629346481950558979202044866813393890525430372910955423154302642759192258651530767338157062729223782609511568860137354849371087406993865051255685941932469690230234260490731013099152506199125942420553698419611759457649074742637866244887276810830782293667676812642457796681563034796430546465997177365096996373161108243790885172175245901688076777362329835438308698733453677002036621938187530024581194284835919014217582391500826689556084025996519000158318210144534510440228075945718264094219145944875084864113745202987302360798262816451087371598482386879919145457872295223525262844730492060396696398163087698747369499948757416401225511132919291425637816083834331774144963916288393171831543944276476636886794462826765001488186858579840979758317658881915418407261557666734287546227597260422598338864648643101298375516658500643874922438989452996214330378068801110505981558880280498294779359099988775514375498115090753382658855794839881482721430151517185901852214303456551167381220018513308261739383737308864995836073710551256700866997126932777024320723970922836661628782480177885576858560079675058865168505113751270385748954476068042044627564374965888998118585745908794003691031811485660355572592259199162071804197838741632532745891751518761500006214034899403783956925626875778133716109052531599034102310980857082964325388824542319238014214601330170541236751930918034178008353246675579272737294903891158086554062552963872839404960691182815898620584314769578524254938952995807282342988247850628579697585584638005940861144947265047901514293386134447751893213341802552637343516856566463424585065403965211617715090801707772573951975586070766340191819725021227532682241440667019964935288795978678280389862457278374033517441906639112533489087235584815983029243862913775631432879393916502814641669683734554935322886514963521779114375805908989679780409193889965698807225389646345532279781958074829746266450720030359698800554627777572520861577165410786443027977264622341301010643534810817168411351198385754459161398396673835277218800317351845863067766714249159104337443672266537688580897159776816861352832943246200482024228836669479610513190246072564258999927329267055178146808704515625528579362376008202688986435563987162966421945367948349101992559070269467071524474088560026978619958047912968954602312330214168643664826622668174487925322568242267378599796832256110569860066393139568553365714164090167842378049850921438987961634094470518420680186783717475169990502068467221483718070578876749153527598383401856801433235946505165917215358882534724730699524077669980436787957876393445424265181665567432609250963637785914909959409466265865409213580236247470107801279563281283950561502206355994038186154697902238889432033685751731462221812901720505459053283855363149706873748268013995424533077181283451385509990155717358639262361751903192816398011225794175326227756300169303870723526954370436444619861671498411285958948680432862082447376607898656444030120850930253136662541440150648929722365352864822449797617836649579552841603285364411235706323145641285166403597033380632022172280603723127476661107125902719342289393844477744686793353169303180540013870666388698171696480374440816057191561768829575402499080103634895172396675006053648759646898230893243462188680186107626551683692730510685420015142968247112160132873210621262650711528114771244425662005214893253395976445331124961075193286882950218488857925519088543311498518160917765722211920838057490378176465959430290837649958299951203830513131836683719836029417702177496121021836588388319539935854629112182101456531577410931595077060174887144647607552217083683684123460058123242029946554174490832161209335422379736043055162199722958876719872415807542891002316498365379944039769174937298028995304551993625538777286984665155587183261316146504807395681395049494956748308802723523340840553037173086217426703370933635242477862359866508495275836692318443467041928038686296525346113885008288599860029493617990355346425884211392344536648932153842115213812548574214283204609078392815065310885667360577430190691677183082562311274969606286831902493824139543530526894621088111054489451299171447035604708380113114736127446348945299565368496478529180286623109158699896365047253323097037424287036424836668340396587867697775575508856504026490822722417847463838962610382615748594664474540648248847552200584462302066994978586954291251967872093329446938226949760409265545027439382495258998078496017796399097518863369917205402980008403993258076835931768784200770180924184697248555729519921291559604201285528809883123531195422799974879298891389268790035368182911473427333525922436129569254848404097264857042342626187159311667122059338919282882653278217277136398815349750654255005615696294935692630357526593852122232837412329877426992158865606133363459794992302835973121557618229692468978055375762782279506868468812382582546642351359725820041691180191245440535699310927119150546307044192123113991437226345332567557379270263871702856154135369925564825547453857270013563450123604516887934607692411335489315416091609363299016386150924390835333160955393523999812981398863007407764600822263436353514374753042543827722780417207367956504903658549501548411283700349632506898697126975584432268109989326001340747685927747385954238565807887023732915547929123559648426855767404887535875418950075851847010117315476189760251966614644907675171164671314712470916795869432420147126600737015723948005727473301504544590786429714820887996244357469764837404748722240557072200883601800475921816427335069089152246966015674243122892500495442040124227515846022023023944486934776410911035411215618219073827771120609396866184952259993263870718246185857666385730951913033124473192677712778824310135737683783102437781115256325954552499095239920774410902863260388352271889660391080131954709485032909667248648268324270716690075299234317066533982955906193886668343259673056146304727880011085167535507672008422881259708765954877446447066066724917421172510969071928741339002846331362017838556735185919730106009896246582549071451417558925149167795099374088344384054288326208842271959571500302109472283152467204947841473193254479651988223802198443961276915418894032553171411276498317702773351671494919250941641485377412053771376371862553081530834304009108625073191131145998198122438181226054526507135224592650629051971978419090260965822170436152995613436071089863575440974474632065326517805393648267564927198745541637206965892765411495030329194235498922824117548477523798420399010129315665103800566658543439080382374345364971725669752039162767351031621467578811852487533758816817368932353238402244538471637394620196859288050193344091514053816621754777800917554144559947791067481791645971042988129942930124348006143143754692213691763730723727442992544725264270888169428376975251089334267924819113310334718360677522382873561651511236755533207537647541684807154150913249404593695602503196610275923985863869223300832734504664322797050579288093794961076282270006709755238259100887752316595767840012315920740710101363001555168296358879541619563126397743977070653919878898341792136783465594672315170129083612996389569320611631916848983205363782556081219385534642901853513637279711223301601744054753251548198554389871548838764803571543080814027307029230976513592989412561559803414635383355700549360787257156126391712059848923507491573295883575302845332076968230260743502957131513975117127064005506313528286894498608157195520434613043345872462242138293581908903812161852790173119828677693720080064282995068671637194564802582277095153342636920755188975203088470518966576712154923960744579200708454222420904805278851719859872056439098865415438098448288846973680410006849105831419920621788280588753906829699611487281053455273697364554679529379356448827779111560544061080378879081646437094734721508901793561467793991866777321671798351548559159928488109763773868117577436048337468184484881506181498652810420129739478502261367308718993022943954942650487049162362321773705491419017592762989889611842266891500966118698789458619960227468331382942354130998752276567684137768838927554513798429793394763249564772574191671516492541521052146327663078607252883783515691039766118148230831884556313058121176716610292667463304055774026917189636280052102216737187299360035015803275478809717988563069486475551028549699319806190005061995264571482047144344354968811344176144999569833530238537134795812103554605500404661583008227000367954373116904572972761467756763705371986957944271923751868281864406536685419323663113348120498818734907287149913749882480904503932271312312898976613877338271864520508824568281888092544590026119602855225672921689329545725722445448513813297525596374512485193754041500595713110349099483404962307414617385736902475826753109074040227394950753064859270201873250294364540689579862505394801280466652044442604874527959674264657987464612901598844076918375706230655221987749448071726729028031467807024323756339002574217218434434227554716879508879699854891156901488697707883107938066848187402618349414121486023163811910072324277181645430894157978964843746019369935209805528650408051997674835267299088565637420573366884442501258909593810422221855142862664742522556767031842437257739233233253308938915251268517851836824219139213549703850995615097232749776296748651282898279238745986982777855117747118994659454042624404047413882731651125145642651278158644388262578940919276853108045924561760423205728567086848321198113770257130836844496657886985925361407700350030920712223220938413544899124013241393641570653695348075482055900737532179451007223574230248211362516582972526956658208793928138602099629791793765451286593243760214725081761294279621487904011962601166696908210895611473055437228590220412363299183477574101747067775458795881330597445634975230450124243177523722051489302635677087290851289261409098432125588023459826380337809443712385310216809341644906687276866511393103518796778243659047578701524231755117778539330181121163695867469805470546296644377517350053991173090973054343354079405215645076598433476859135848865624433704539672021437424236901044736896569223997449550031112431251681110334437035491574095820985333719006010525551948399452518571365785571897298846301447094089988288388855062549038390880237774087763475664681106735097666649407638433142638723705233998763347486141542849642933936200063773903841833549648926986605163185547474701819774546719825598253753243490957790277981713077158980997987022946986316820581787802249508338926759038592534732135767995442950995348825984325427056302015511599116202539076346988580481596488437662282219384770319033454024441915923375248052643974156350853383963669106640871976477841747071992029220446564458470208933372300494726914225917858856979443486521322212894119257628892544353497182441121758769449219934450976705248642475593899585717791212137802463205065493546606775442778632040994651311133903273355703366629260226391892511119554979124028470868052399302774336906010557111205027264116168904279801934905275092730276192513160906384656171156411611735484202510328840955925130277651084728961404367463940086837422089849367596686546860755884526697301867422877981107237600302977780149373839117910818363677808439646092220877915607221802714753599220267318343880657345852013104782598287574949082050972814749165948511243939628873279301337615924071547811242860816374652106122659174045894086675561317255309537628538091922743923944511122539215506885605906166766105019413192023963069885970480318531008075294680949004780942533255682787819242675460063285350257875777071806659580747778971798446122279436066312283024400343433343858344538244918043422122856846183882621637428898720394922693803902669134649250458182384855201866127074310935159232744998922157909576709535229483402004601967631401781280305112384937082123128421088370396232299152935661716412835855128876245482508606773946095867824131095840180388186742614839493169026788961346348230118993596506955918091454923813125249306835833560280609056867348861785307863245301938936090966475187765105079239635990470366761317772673278199042556743557145643739321063543480396866602192630641212596293587035858439539176246634295405126384988656680808166176894245541074570951693769080012907198750022187371796931422283780004282840140573026584476961438907477218641642012109744808978053150356400309139388855554464482845323844485403764722418882596810153581578434578022068753901708299239951724090662203801358674061802011433696974732629036355145701899030659347430785457708831686352170808209877119943932809299022245111933478914891834043087040910721514446982602965257218817098661225652801123649083371211203392687244482900110526546701391718104049780194161855741925726008591496135502965534858292722855445264725008007500988426849727390906043426161014553181298214212612195327310798805781475789054241134936491757894539849112751836785511923339498415222419603999515527460580498614814997585530139795027864227800783783179036462296449729332204121483528436631603389120671436114625029374573799693522215642032177461716191379835580180368203773624035982658633944951807575002569767017269908134508865196665926311657412214395914274104015555421607350746636975795744861640645981873293709875699642808224485543272556261415921697582434342706534456586490127697362898713692542000137975696412067906307578187863935542577405832000603492632180982031095957306970309913458122585109899168189029796172087562770863352531620919470667036718467645313594724117964704621379668539254583821383469497168135942819690059786391174424629631612270267665673881224222482886178283209691061580690977748236597630893683449764629108744701187889722852560482111082401241821142316995342312525048115461961186233203097780246901569510566790428896520027172800340634307572244741797550331892528106930593211367826407993093995072364935138317908195519264304114730535949390779715683516740539429499442989380638853617797623886808241647031181434479824778151984603872166660822112998884033771302303411256358350742306038252658477517626405202500345385747116491085467871922100597618298625962526388897316627281335675650439785556764124494650642391228111683611423978669166864931487757363926747811214716417875439972873095631716358716396581987614093469168657643603970809535587922330293825580865947436625083840657342125747869137446509025423727308264386992013658389263533402539623956613783856677390048459372149592951476060013151297131870350162094915576129290874928910865924897317336149341567600050069868097286101786282923513585156227364590461953628176754825657763067402683281047513367827992920561821358976177309601229937431617148160096056345840082515480712577144447814198010586092580110416565738502939947225261989245227147537081939434020788102334574246887860761276466799110589273618788157101145941750750905124744018205580045763337274432584039774131118222172585291661444446144605956589156422263957812887679382417519475572244571684423341463118792168616774441506669489747938567398800482933632971966047166885868490841591228222612147596132174445126673524131845904787078153707189800651166489498344121012293417303830882581519243973658320075325313636537215979598976412615882185969181722350538062730805866014643198647957895321038868533566712992808419376913029826188069365718954239670795083069828880234742665493287725197053255285836524848952345702361410965310442623563770683157212732036569659075193024294857695867550024732287591451212912974144130758049266918445601433519390763414763647566024096923740797918326677553181127123794043291684070122849986516125307939903541002785565242850136868982189093797507393199866750532370482817604641475439046184770627676105937984894080415636335025789610493927246636126616499138645812578753385094179133551930511949936107168443198284825160389376705453926948831445783489387827805097248227667062370930354745196335958006764643095433255456985273149119264594815730409338734754004848124739545369184685517632301387683319285227277742219529833284068451596209750328729170978803636300627149082185861567188800994892136216113736908519781507145805519488249346342166704938640730560607621163236726630346497738337442927366565209057526738864148332883056028312069928206718098292405452095554594611017960787840120538295891120496100422713881536116601271843568805150209679424742739730427238258493690248655577675870182903705954106762180942348682789524415901959331608706803497066718883174077202286690981383037723488121444293587145909582300078084548714566994920363378900043477799971583621665611170960823067423382499189998666317966845897235935282384187850529748754841353552903072904711429351162623049372157038322096432554971846388649565754560305779995625667761593036382934598459101412099650580120540420457738144317393716140293377721818422877182729789117887307980285709500348919367444906933051352788291592597262965815152539733104238516716116274527618312889994171122121970404902230470310104139049254563904548716477489073337366672173385694328817147228330569337783064973182578703916295247224533029810160938434699439568211140898180538483257901428622161836309124846245882267160266311428974098641264525601713026465562747586216972626645954158964663330434172667252794991388989522023256428654275428058489705226859552213720050803702148140565689196176035161854815083799057334421069671396180115210334580512907130918255804759794528846288266236694132712050103559641569732672715258128678157674850606646911626753202188967457040392270927757966510517672160702980475994285347359061768208684051854249972711136930869055835221136001015650053360441859851542810495545421258700848882743630420990498355871676135694873766519148099624672945433079448293633840357396307017594588790577770964163544363342864793965607841468095786756741785389365040136633460916447088526969031309235095525834240294337692138992351530913529277805282703918628332334308631140879028835303845553981659489402881461524697925534428626241263827073336377240737339366100222545356210323483422336897003811443731644502909598782288865291455620513209567049570124181373646714401431965777411547199065670037025426445465194794286330085013043724668167031424026932607826028246718839818253818309096254505923330715407972047853108918961057530511718607916499840502602507638530730943432917088973929043680451428674747410962107707615594721631803618692470179984300313337871818657169791919585688778627270326755694485582503249124263687843210681933031664686498354234532873948907746625249960429041606617302100035739827434274250014669791940536675421560430550172904815502083848690573169957872447427879171189843718552856863344779120558247605517037062580817615441608509266728176004509233479653289859844540020716993444060992322858563484847949785603622462348411921590996016255266566796130811827956938788604151156592624487420969945074292108382479613804912810642120949782327134220962980569659604613687780188792457518336623347456282120717474983280469502356242507112423828319799686062729402304021467843630525404684184747168116755970181705193658572204013367959553222020278232888674094758139008121300067882209252478882620748214365301604007463213641214578881612689899966714725716027182741108466014903592506347368845112466708382466674871917850663149526140669105942280247977290949527201784615957314078892729841170197120359130014302990614815003610786153205048801417983941894580263771146993071554827049497441691293784811732436768427283473011855791259352577136706001437394890575621489536568555058420810530725439930131180899511851856243263064031718955608919748226848400227919583120204925294725509194098741260274909744301069882417809539828066751542902195781838960771652172244718056632025943591318894148898813920351409330433032695609272858875222383748702947358648141804169873655305164299778718092087299679751666220484235755871137931221026436796171634029934109692399734290758672059684425924789345488964343691451516780420114520906898529886084279020531325465982707519209990607681776745155037036737183879712050359754941273477906450674045320586573465273602244914632888488863046155345047206566270752395415355592565743109715665875667106353425886125253560569075351949397059573525912375420419961820004050615328237309865228619136947728466215552269247266588770618102784202724232929217096460994304059192362625525243496803649680790750846125274095310951220984227241045761942640542685875646521281646979414467426767871330190760891456457536657960018991039372705585817471181857904146926067617782338137571753791714175317278139759550028573185916483351204019527325468336533713319714647185587293608202918651705957165064003250198681860290081691421677138360784637851336109373672212442398179907726380647708427503252288013678083624662585410053373296217847946126188530378355774878161118639477489388138310641862084427631438765579783065832489881660501660246789209216751429257192683425205602296988630385895413311911341415894833078647327788083377354096930501220268621718831604026384287232570525993848355133691500701724869139724521961104605903921182122972147645836522037764256244459707406086080686746008765812522059181950996987091924510983169932647847223108068776931365902346778638402950300245277930066282290650169283316201129335140684016430183851076517623746727834512487792270647384015628061633067658164619842793820693037234007308134662107520987945668927339012234491250790707398978852081970131909925889656095409941915482431653665033685675082633182864879114809247318724154988037979003763087488010972748422810822037392653267457272495267922598918722300846192600281913046554902298402462449884803330403405153353501941887867704119961674434164906137681735931919959146946420675712853357740005662663822382544389292011599833116000837068857973012202748366276593533501225795052878427717964957659050743303169148843876825809631300869872423223814743442958416686348181495325912644299120598091516116371711438621613120282505272692217823095232989304175392855043438817441273846365342578223344538212252906629313070564414484928417959124740418080413949248643312276784282782473146256469344011324262249912064932173757564242243436502588594424766307570504486211346440299063656670028034340451701905967148231735917449563816714583652702313458077143875405207538510729230855523267323112972511479823596323265523315628179148806312473150488085788421419264491702905590544292242194427306733118419775191200449873310333431090727477625745803510140302412153464371226958797080418502021162085925538282305105106487615553057625061449695677876139990542278605214562891818453291339557402737313428993156664472091070777533910698629427391339278195608914517004721350015546350111247221157977387890846940187547372415820453954804216183464539154169785001923720201715450678118195008749594812956214581683603951850486214455218633164123077666977773477030322591656137193575609030188284050221518236504484419104141235795025066625879223519340040084289587712479645669567292481981560340163873794440520680316813858184807901086181415826029134863118863334413424165775567827578200463535663803422560461735347537128864281914939543300685869459439580661497981640278736952822163560780241133372686633077080738021686836583913828582469090025791631549754772598004128996104062463462121783717856074244128697571247211982218230540637478771455588288025012881583615977924660906329016617145265303103297257305153787873235070036753629501586962325654203944826360686190404906004561831443797127923157088984861473069607904127180302700936519313650067439692154124448404413737736150981502210659221963252285926005416379900795705508763851997647463841584240542161739937473535195699454099346285787569585179410826426418550238301257648544492712526796435744966304275614154048744224860276346085543142956980569679193398648850312823727563330889975318827580462120517034059991857014323507455639325557043551707773263884558617858529951796627028991532439192882041331659037901939599777689335074312563273601982888151338107347368782411998087802161144607069230189177577063548943183118175725514361817127400389242129889791856243307933883725982574330134669394097607275507154304096677983098539779442659751509568417803492203189022597615871397314859443737533008135704868420756600005893439135263703367577371379064330300375179581059871267938605483745271518909754660175722535667328152369489219543280496567138853648119817775949925216584657977969925716161876669440877300527271964449484128602137426966672171040924078846732114622454696788285678613907990355119258273045936822840953000850889394909350451050799788360593347473629713886692559426719659110877091201202325260644372276310949154082020157322459679891690825651567409690956714344867406337151370931064339748223306533275887838988722706667020410705336406362093777654020032203565362700305522578355154753009426983157906471852329365908568129585396476353275723235277694218067891218807670721280164259460678065298836762340629445189185754267457163437019157512117444136973891447713423931414653882775476062096027365760602974189193798165188057340773856031498337196310274022861809504004135168119907665848066342571177900137970807000907148945776171554223657635264309573208008874450207350859116909427943592084943049870052382782701411573556872941371274653364160708220276941289557001978792299610491046115384898581671170079474366016976038456689316957079932331034934704018480152666821576592216942743238494459777991786495122648619006864494765804431307015617533549445477061740521850583258195733745448247512173554443473482979341731647857889529579214055384456585810766826058958804638420089453344612699070886435737111550240580856695561061202528126242605321425474891435278697955089287769771098536347421936000576345611265741181154240069594746957302471406727467577178313473718371213503146216613746051489470484434327762260795538537491220082584649237862619860718872467230330073730236013245730480968425701718286264612188985994858065163898423071741552325606329336524244612135541249258138819614409955071156296343032901358117070481940420236286418531938725158025329045663266730357549029332753225904836849529713820619002076086306240337024967066759875085554982754278567339232802222353842862911096507837119586923013842854745310162430027510630742547858235267836191617671090835063561227810686658905260830993764999253177058437546247614212663812648243133420663720081136896120325917092755080861874701987088615392537177207322265804449628158358078913910639387524959821533246403219716283793747343758974085793678202653422368516181575143797328534953359326748358268070239110268528633405278728070997680547422796685303411164839133321509983850812872324915631941193882074060854344556921725836847263090444230700649063320432331870702179694218507867383581961851586684375668770201734069650280530213141451553026426677517268692562394436785298195557791974511337663691960338653860680434236178971205374075605352965813643158293013735009818200058643632771790247211329350450327190200442892701225898304505412498776394969654347312790358962012926163934770799541776843304681042520461901115527418321461705863974200697663467875331750930826687508657767265308707079689803402751689392134704207547683826759307718260661467659001111724194312554032375507514608386581424736344799500017339622571985198862437905772100325751977007708080359921325682369614395087461643510810141189300316521579951042519364375065358954536478196851044146465482316828116790200107764968753160876133158735252656259566736482599338208937491887809207277046996137220118183361646682405695243968048407274514642668715794346288218283790451711643347523823323545029757420155894461688692056734219969467468784655194309876548246622647313712180680599686144628237931988644847653316604401125980101506764674520649883475851090340952171899918859772818256163052189216803741658290845393182914391604626883355713188312301415269242306701806426110803354909659839829586094076640292924952113044442285577006158958067168091728922156442608432821230134287709405178187973882311040105609009439933553042015071048103300852607705997717440606179656873150084410724263335257003038514293783303131425074905632239398369966793932793776518745585051674995624555905911838886102549843556315479481407316363678474381598716755548109539289100538825317507029254275156603676813016012200497612493552167965756614613776092207003964196926508283001257360598363428802181628437014965685447186522631679095842033802078839616528033443160595695174463014578905926148004478563231185823136881803501929063926796463630788194960012286896826341980924839104106826747563910122975145831048435851845719905536470182012030584761160568076356510701814204538510924973736231482474857926197897347117558616630431054592533523051840363007101654638100371820450482551504694654741789833165714985019854716813269847226823405729123095226601380431133881779145030184962924511816347369287783152732991784088852647826271263205252719132828181922198629407830311744308003941043586076402563949508305932922292782636662986742076833593646562698193447756348785748071427069467960346479585620906811642500144424477151465296475237879537959565293347349592272196305658489728202698303153213629323715003863251812808970478354140250165021162139612177794516979949735381491104775588030562583510302366409517707703971599158408817124729780088524233680453805998858899072412592224371284772548200108358401098292675056014589145601484018939949047431704345511565028889621134585567344391583942840417060699373282462417844217865779089492980558523549377462346313042251729231973909196098828604258478596705988937565915185235076586828399199845095182774054250755534336499230713975813680393128581901939763967734153134181627396993777857286340412318158661116346606359242079443762474682977708041751821709271289052816332062760724623137718543591682739309402293543918251360251797789349976884222687465863832722274879190285409533320613864235399095541592500508360883544188017455784392021683999557136599330928670743178494373230703715411810483284052606472173946456326971902873831513993164213784341837058917559105288796731395080213541375612404885179997639043088047854608216531280544690517851250657898015705533529177556886642369706185220720268956421708998143413693142180941799968326701913851564521564181486769864825343608517257696232514580863970773003936541858427782584086100313038616059892657492509486732866515833848310010094630960980234671974724464915418611685141540299540399299868025786246157831455070814005786053336678006813261382229528587953021142229648562692983669056298817638516608563506605654256152923147469252934635198248210480184700645879671939134327635496468562973232876103885906383828738370925781971908710732645723203518615515884504052046616018793768795324206793659506829070294334106070085331790496677317433581354124295898267296472103987822211931071447218014695378375969511101608294485713400101102227461573615888027324752993904148977380538119149393984365943905559257066390406458440134502321864711878628455836285091689619679846558509256563699861557669572023118536698415185210382916000688737160483516987016826883598929403766370830553221967274260922787591951724815962322660073556550434983624671364159965574501459083953604342660710089571538215393567236217248177114334645807438171978532152407286943505252376246880119406283017126161387440919166751022385609801672970557278655704831164239595805472290197411952741420251312819852138980885449136910275512117315614558150317375602577557376380263489081345586395943588579079437134322592337574090746396134045279925684844145260760536844201442589409963902355220868900589941037696994362309972555067524601984635543697892923040693923031325303676237276423544019496272789167638275202822875749713376215293399577690587727373103772176264192817042629434964225595977683782781581002860995644079891561826676941146630108388839349224489820699516655289062605418976628712312523023505754347289408046111338150874522318744648540364145431254544303881653434112124010976220724223596476113631594415692979145466262881959566392031459204158616775253442775297144011258928071680160944399243553543786093421625810606394959302953609518072569454535567173936228763214982021730891964268826119211805570225319140105181632902816835951504362286039255227309358098961281520408430736503842104148806311315313237960226272687311679505149977071536777528062050888282457978003891412183897366568689269734072173123698579131934474321851599218082694857551835612905280988437357631836045083220344375471435253769922666116396328256809437739948069217243871838401533606911452944588526316804702860510422792203942699788982837189352218039707414479212579227072727357074600480586122096407673283925782449178902820553216989918801115588936506305356201864154251750146635546462077797893549452787881963367445772967666385258849355237307745597288720272740215859563498364826791229211879067527132799449372620058723159647748582857009276310701565757275266775247151147847934427848144566068096799006937068447400429011085078000364903413663554313954061790908851306279287950950110562295721806393592796157180086255603091941621674450908395951529091048429763522243602544588603486845264194188012946952477695196031011897096413742106484482607923637985355414094378478393702448682183722533962175733582465294011810993134610708592714846944672228284663722312976004353472942557835788013962121380425425987479342836335949083626097321492290205887536068198965723477161144234834459078080623701167664217114400683534582905534743301707548988463550724129405488189435305211240073103488646287781395621295765895131022900906344973471602168350174349645034304903557554957481318316092120351197522737177205700602978584144690114874431231554439381705437943804563717839344156054284713600982952886843631439162697730316181611339945218152180852235820505246382088073414253912339172856984001554146924561661328870058362030678683114328206239237445031943584472016083798619636584330152427972869284992065863362781252768525223427822638405057059600811502458249205951310280934507052718998477467178189799193297305208700043546062010178014161653583849621756406543436195752334433055922465602384614080108970650293874985320458269385102581868726275625812989740029075181541118639937313202086853582880678124838101773114240572756657197034645791400622388430457929355085809474380754258120538382642668682729563202955855977348074826966367403162699339145556935352534156541954794603271607394399900649437379202027403805421457080502039513110683211679900588896000987479664859650550568994909365092575916909796436692246887698845541350053275064319229883640864572967173590988025521444936019187518271829645553060005646089752292102943484058193433912809301243356395974305197706876486606537303896775105492759397132119244745529170823636821444270969264892926493952766128329523684939007277515217886007354475177022067467213362596097164775034548568041009020453947639545871183209037661693382629620767695572834472861354583645244442288983921351561037055536038071371353683259166265763112725847710154849275709300389826466235906452781008063426469133939863057096071948678319652917202207689429349000749218389666034465838601069460000628712545685505978056154832592751593836777301304351627356932456849120798767609720162786187973465748703121811375266334809054903108451185628898843927835900639056453257397699365109259458681137809013528926346970801527858106771901010279935940799286290349913993164869600872220774459329541908430249184694146290775899337648060247993018337118645742016286557940304021167048803798181771058376912622246910030194075986605197462231437804680527020949753848185527716391254527772841284625183158278706125399779388962992368213458937922191058266932734218351822784919196791802304646333018240503950395273727151080019121029857832816021577142225016674792663732986006087473369771477860851383295570927076413112281533588015153175170216537853688804611870692161743742977628822677663949529751098256673586735342294723493451554381522704696989828647903692044848809203666446653605427665318173951837823228821823630802404787817931329856885165919412924069556660673895739016707053178428914756859375629110668338710873242973948547453207358141947227992583510612979548234292730995251313074645220439879052765229920301360634377979892624892035287821119162463306291329844596910120538595417807583591580299671287036664860289679811195652221832621705261056629523812651107618053805284845335361810782341384638734275208829693599000085818537247967704846347459966312145730003113818259471679902218459797629515559921767776003880337545709608199181245412669856906785821758065320430496315343638909821260851767681639382617688363801454880582878952600688394988696979976795368868910525093825638625545653697172690973442188828396968895533103657770144646223276642454392552973243775234932295024229945013510054426782363322742114044113586938558044562455967579238670406967933846030541219365753992058547733602637762671226326600028642869366776221027691423621136576494487347719516647188633389193848863370619925511519906125202285614990343275552125067264345131799377391253492730908112795507496841168896234940676818640240226290246688270975767728413862057653428503236958183376964725837781253984960538313334171860750594173740733850108510432160774385720198236863743728834456481984399875629696718303355227282860106661866572768160033971765499830885267819947900833335166337384555042395813646836041804764899105880552792444933886208889318979584458447893799831087063603236223914827990717090196201736070654918099670530736961498208400915840172278542438715735048312476520503263966872419443283421450721300621185297852520761993996426319146261306810636790037502992522430592192443480293436701280710970453674353189256308163410066852606171631371223834964806613961859823396208016824234758782341223474084300796498751105965963294251643637779350854388944190208378685349208949257191490483407740716871961616782122294077513198488554677507775683076990636987119081635011257435612653793184992945262442126891039918174564728863135039522662161818483913332355440843910750929125003049420120818155537314300870074880893349180694530254185524630606269076468197287125755740516015356462885648171437273359835294737215844399615684413141922391880758359614216770970491369990665541731284120807550589537337409982569357849206546949470135257199895249375401637494023937891507009660208424268177401896394787076207170303295796311709344951866830680002062022860645448128048196784552396307274982483813236466832973461731802467951203788522100327156078212058096478160976975502748583510722619444956322891825244617619405104792361532128810260159173783812787241426877839855766723930335677046475243905498495963010781775294675909559502650126671901476054719516424237313558740060515059056560014017995803083049385953110165471992824879485887028617744633424019811653503322500202761990711050732728252194784892169273265658594422354094445771126434745278105881427448450588382658993702371803820544325629924491836688025428012973284233960551059195991554540578605032097962942751180040015361271969826969123476923369703752030827969177209013902292064471622695612949911707817122981729237519920600282332501076101269894789519764817501465886391770307918268262149467269548151395293233421457631759131244651952524502936959022410625078401417959128737594285085279885056846895228825721552152674077896967818676658657222351953363122059331684819044249478792653896445109355422572813420294273123264226144263288284263247871986904864471838652353506657285922787004372823780400405616782814261231222507259252306979939978058196003640557593903677356665058247882525190323673182867285583476556329658099935866265225452643244344804252090125861685492569404846635824597714948688369387541396332155170407734745165446617032164165485461728673308587629567932779204858787713375623455889783492081713915851919954192403645898937139350059051803548003179903477864373409531025233147098875782060211537063578684547373193372536498123672849454754101869827655863310532428121395059789202533641920581250462092453551839662492747893982037447478739907596181456877846009414775918010156692468784231509066861076953392982519730210140200596152029682803558850036958818309254496053636848434488818296658226112624162022682499500680291622675834920168504082442341322512006873469572399902991585075875154945423366691260090426624980966322491707118128906742425737744136963730588724982813007732846427318294339793778170853022242603785699668859560288639929119419191927628015315462582555895391483063841500470302831917602256355881318385767020726232508074354006362890438065862728953308016087027409682034393508189153797819863607607368523953694838782622809701022014809715607921561950777557716492671391957308954003354737159846430010900401342893763574259066856649609999684958098512464406123140067080380564596353051300042122084980457510782426033927114450178935456341349306774032515541274814770384675741747289261133312948272828970655900614395228473902817456869769306784101070437246581692817524682522623772604472923271736677574355423017226595862378557984705757058980100390371568119966396611432077396647941485968687882874053177738313783541386472165543264637598793381624176074047874522335538099385175082799476236268905633838674748153215380517140581626390754493286738368736835439286680911397696621683305914123337276095072820988944584511366462042026650217818556024275777501237651945684710209605047946898539898001783640726844262641409567704077595541603086602692824151117134266517581261631555090353793385599820759722502294085122482045329447185424348753675510270291101425115516751968894573020238740496894692310427630635535743487682732309529168073076202138920700963302886727412796475674108418254332897689776885585812781510262339102757795608379124959280912697155257286191823587717841174070768198124755996878578834720436252522897313133555336271655961711291256855461854986744923686858896601638578042390471407572396336729899517970875530644271931202653207420086352406915789246859854958126238154066345762994508857283443275327724390517486499592394270250120772084647402443803178948953869233621841975282868772210591931358683648183042257124020742468795819318106633249902501816762983458626256958154744153920809840961290815808792191768489496893516044431356848843313768383064388463395298344111518274003834408610770897751969251812717882880314737324199254389272485390755461614047689738011588459587035981977930633403535971776816841373175660251549917245236151140977114177763816651659967936104550377963250053147587674158162045772532862837313685319256263617457939996780114600768979639625488861604377782823575680614032649311426598786560893696444595307811606592667672237960013808894271256431627253758548291610995673482044707782942747742718888849882909095816207112765741724985099357963094906049181943820390951164204812999470640059497339853315964828201623729621944410362896711069773625859318601254804503824585283754397608236084225877179550421119778412793764363743052846690971717893287301241797712911748992563926681692031977810350999290140562523195791083172514925223943538304099716841010096538951681062776136098777861799385589703998625820932153399153589989924100162620782571781761876205427248344122168862110680764379947733616298789876106666013724090247980739354374729167447736384685938180983027750778031061391745406057776620303087392410679124037168634792055369066106401975614860150684048942210264208643676881841629353533114308455827960247307905812640601603474315969480798336831744885913294298928914576889432046884666820196460619604609179147342190280291109599250476262897573611453681847086196381761590735689196760591016398726534321645082946308410671953137888719933159526560563373271039772638769791484056056521398867573672416470698313976390450361841405673245712427082029066271917522430893551116802837507560095561245184717475960036752937761351770529756466743648659336960887876226930494363566091168143809960600304689675920608833509464356461225399801751557238957634248740737910661779471104724556341809885897462842095322982243933597780246174918646134328828580166693776892530327842812717724602622242268230097571806441984052427708666038127817693755473465300717669689868492815177822411663054475906757657072624091464482413568344898557010540512373531682829090124783336114187933142240613514095249129344535509752656696635022818627809682770632510815699026078350785388722113702606937340773364135052132168100207704814374012722111016363262508256912517619475564734460458684597919075936388751609868450790605408133244337585839656338592389752369036346314290016928494048716207157711587886978247620750965411413041393947386152907535138350034900772635617884114981650643772950853016357796393173195633763539991673705778084520628948917898679174744691400188366299219627160863119152102476940538385740590211824608342549525979245662717300415474194478837515019221084161629131999802873590068156020367706454230877741418025876317029185717616865653984943063488797387534238319508333318981678936231688178273295313692061774223872426003994820762463977862843935175491571047816958490033392634628213700405591263377382043806088752652024012506771713277897727169564771777429174840669245909247195496296056374044306766854772638524688794894176780679727736450886818586303669290096907643371651577018334271345827964937891385679045596095938995018306102355899938005926379515146181158979836409786702584857561408424776761118258024528849464278974249100027153279437120698745593912450926776569179753848581687503973529476232758745719208294818754024004259882104022137179032123278644583009869635774093579667365788945181734851536285748885047584522793545238569755579827529726657498444887646867135077123323481253643853407280323916363004252258860649061270357902233691157423829657632963386152482077737296490052362095502266753001446179453424788434026186242562753095045671783799731616894137821447890241093317218858694469692495618161451481378215114556936050784171879735974502084707502438731459027539648363252151750619280748644442059818826409982999155828228416516482073002110790369894922061634822870120593753845582048346476686653262834563102067263369162637728537233388762205288379822455145620796917881042267134903569586143628652908962204418775303658593386908561997034295731832092041056363829857152478943836331989714871525770732446931246681679346667246886980771335918167611161253554512347310054018112129282737267339563476741784725938269578670666638163820089824709277945281390430960037198734834346246028846634144901661328405911480385513468939743198416220873437615782729412593135476000599363031593855571618757126651297722120984255452309076956695458552288608977633022897485477504186775170788035014715123743594283924775495601779804010849560417416110595676377906420334749265033455913131472791560543383230535159379612364326345121850288707982244660466420703732235076912592505388121914189096768020780687717283343615759624518794155432243880388006939326488301758875503794035691505372159934692232917119734134913803111011788781787491259739912175625283467815456337111089122452354304805818400661846074449990969907730944093669989851480125755419826761030513766017339414030599976128523930447632282462436957168839847089523001584169288191926555678349989004883615211368834914710839716624412192889505367136653881805522257100086573639715320873380769909528244746293982159957497815925400074805942912285394255723908802726129710305770058009995623374775022089054806939052840955865334289466424717672661640492140394073807875021985998277411151740942921569023887838806166968906250131944475762660935301044185337415937293526805133245654138322863205742708346921026230247985481627936795591907098811167610550556812628131238638293454472854485044145277766508184553345730735520146024235713041946384503356295418922444931057077741418945710711029481688097796287197544545479503900898495275849963112632055386762353615984911382783431238667930358977945564124814848466008763022318441156136191721697947501203702959334747165829074957073036666133988726460084978580699704720684714937269710890223286437036030572370428945108726749145342633915317095171457460633929354709862748157298026782033913384850565500912116948054328671273695249511318270413803476216401067817072680386339387806417760197714994597702561894634699825822125462148216291691502357661686411733835234668077341869297814469540070492576887499276404849159005246710244591341836854348603167423157199169358719158552165041373443473535465064715881565081298900317773242684118887241506778364026778897795447587151517612710748680611699128767730270333141572692487436472214283754248294463834728599324599999204590226946336102184976880005820202608384660543545300677038798440784375955929428723903212690498709008057911890689901059895721591743190770409014532241826553017342081315768708690508487284851443306335066835384394340950007663899539472431089312845680498552888702954064496963413894599150651952395084193124554954693329414061277427792138390952450140114317333309051460898530393165248553972166358713191671469106991749105289482294902244765928896012252402716553811011821172577250819174149621955496825584947933094515561929632550950234693265090414357955699073608804194215370083253338720324193376800667244563009910209752066127696467998413121435344995596657463555828491594750927349268539904213723466094126671461818163779338950686471281961772809184715324158453124195587982292242754953178136980039240670560523266720499384984512388307570149312623216342766628462954761710837325343649707689195330473774653511504354647796559005899375189400471162188335844004831864277432381565387282736462070591318695079051881247369320657904719718838862428089631419296375406533812515512126865731517155918933416330220266392804372888285984534076043680062619484708218977265110581459747244902832226960945565558445305234907281160511374382351526728956069625473883513877468952970520965132027021059101226062692583811745015781544485573864396674771606526731774253869323789038958654145516329116864036688438610458357921726194053245115557723098672196179635696739527028560848121934718389129494079267282430508422112354543627568290433974994391220820948973809942325561452190976542298972400273643205251775961969435717220990383040371261224962327126355273145790628084807203591661371872303720252640231260329027579385882708179985584893714774095920497122407724149239539011587956495725823059603584681921955852886328459886295321488019347468318610788879110951262672529374748529825229950467047285501788224905515093313587034629797573903075774475912757010313981220536754390976219925902616445751492721166415917145906821015826811714590912190666346619504530307557738547865203721513766250512908254441375278583495979098260671459702436414453856711135215062309499387621446410176954471956672190974774050190455411352709335610378442499462448931218954271703395256315261317107692879816409356660277877817188064692895644656527799448949837385694600770071226560986291091277281823351280974374646073947203354416192293622252807402581949899943674394225767179421162572685256511333076072533194147335365348452212955794889215575649974097514435129613548276257896003855245671273167589196869132466349039583979904889284363611690945334247117644547920205004349433463661505825442564089293685956432935631968821928225397202673768518097232197821868827086369803538360579275914450970018381299054950984825943167906596353538283294466360534697439713666229786052599338014300379581561761841969838867422108424546762570701316057170486150570229907296159125066530023283217002156892625133725723566813535685975580755921906069371528508084108774525064059312778480664161815190088126760702154371908223006672656106448984726871947731135075061824994845924917851630430003244568220342744365893248212127959804112669975411266261567833731881180987360068590290172870149827679784412538052425689881100340220088674236696239556232734301080560494445296409938065078602742837116472404386971492289903337178212986535963925776034046063502126481627069881796402154270992698000285843585637582450857259232324127635837386054327055412813678515667643613155944705384796546362048324961289437649204929779777610566262035164781150669313930600066190951158787167930340473690099911290678800048108296204412334730530372650200624203973173692122809113067738257320883175202352103577418250367219281381324215462289100018133198509150182013786040689106517015484285959276127756546816585589333820418315917887409567551720564797007009487887312199076014188683025481850888439837280769615772085515831150619821920572409031278843258302989710308171672993451763922143167711875172123722519358854661596606745092576583726295638601878013237201011168278868503046041516180580142287300717803475347567612020764282940207619297555239786217384898807668005362863866521693705316420871690890469037149755046028654521188304782102421143956396096295267696958742753052972460461499259955654146799416352334982019907930882314196498140296648012926886316462481100061861216444253550145851835781158544099261574820586733486127947562217320422679935916332941549171420774072789771692059394865823780557861077651945133106898447671526442099259608390008082750942471484794820711472357658619364206247225153354316613069388911848817509340437367749078547094517314175408983474011052770041393041642714637130721391630819482464420665245255508921222236043392879392348600053212807623480415456305634915822409635421659077390226103677624542830245018783289035182859913850188879074865716294017828696854546354603682712608545506435891730755018035968669008637118248226444043501379327352901033008493865746335714035788344263417530931025109818812969091393528145005716674556395748408279636091352274687138477080763344264467049371623831966509117808708638892378099427362575196684576743327486940403268129507006326227486099965416890779492170550624619738479487941643146343685907091999716489645934218448417580029425271951322597633903968676776465050773061582848377396546463325886231959983694701047479058223856164233861912386478813919338885588705170996983127464156246215529894091928211179959433824180240134963957552957777566855780673084717574016524756426217123042320197481983642268644894363322286865947786954071937831998636696813052074439892563777533527892431446545030151730657667407300740064934383926613233423247314526934311222265791989589683107632133823889728521167204438197179145994086789540667071150704827005407487991312648227290526244206458431202245196328325445694227868580681055891318057590839091523751008978746351654700662672389921658600956498078182339150047922009331454889236925917215038210142569582569608204775848587581330472179162389253701672588990904923124414584290462793597900925948245616640279466842833309529970392056457848975804704419366565129435973066477871849742857785017038823559050888208844764703597150659246998020751317997362710521547394062435104958479809287520403009249663354147152414211700014576028067329271729553318446194730617826509054916047490383187092261499811972789081108658893401011376625991769786731526828823919847080360922803730362017584810468856669953668199555261295955244708890104191306183383565630628760067160283851568369859563019532468954388034989258266224722885984164113701539600246163637257166663243793513972535480383590042667679173880192015307478570027331641521670491439585847974723357657739340712473469646821778273483610037273168827031652194498746561704095271449082920690418257570307913857299615834898109281871956616831605362228945903440447431435474511745128193895245968031247235948823416366525318501431891952277519984829699479025274281399586095251902343701502688440659297340521130964316008732870945568708420592071784402240436913256299629626507169307744765135606855962543424446836233250319465082994056436889525841604296875770422170750828063024449150441399258077300816244818591836885589033057542805106079163436097365921613198052842457906237430505825983295372993862844873681029417466397326060186042228579602039265761566038611952721668378942186411685325459022064701152281581536002107614124972175840403700501854906811286645925656283594081168734840376857779308308150440923215263006844716993765860603236993339225610269327785893950563761830407211155160733122491412216558591625735429370014869852754798326708559939678039394147845644164349078384157225257496480593077619550772946839335748093739983870876074136161069595721680997603497142107454702855581007015243120032598087792260389689226420901101104292319307179894632782757286200458486803879902593854480582173415829490876956356828826503176090426945923873311256316272433235478762653630667461314096544319572942790367122595903688034013485660300694025125512670958135475893452827196648468351763014997653727075034141937619969171930254306895946722473221004925710768378627169731248400804703515603449912369504496457549238229198904433115234516744957205044935831748971627962297681522378830656202151338514010447828436913196722372268111269526021618779056434602799458503949688133516993094659299536172263048651901058683393495080121106152157827727370632022851107020757311360383440040684439383632765859856253124700421409786979937433942830126408408726256519302116547088597549373529268223780232715018667675293163704123639932046876908385540085587120467471770662904357279991712685186414247717310959598699627340875600276754926613412376711414237529756475839334285144265751340411080227944623562775724305824923805121927818568004830751314624483142837004152324069064151853752424671645931331329366486558435573239155004527453147058935395333901098853590282936493956488390099765268884449854801865942819143179830305311549462366468345966998110851350301502073858784792650799667925670345316998693450553238603230050752290047917342800061987226600841850170451463461491903854520480813560684092722581697692462334627979210796274792791672207227503923722392489794056887054393897873068259050730628941038548985433056510201571570657551078844407567716793827234752687570888231516848094419857843780873958015226124227771992940386025407265994806290611961160170038100916070123539654958997764916264590318650479320886098257860221071299181886395078191460475975286568468679367455901882374985525813894912021844605530742235926416832843678414447937876187210966172080564263840152199957356980623536054093240814606918204636804610908264288380475982399125434716161550751773958636913462877866853468758165603963773146594980064217878705972773665257023379674595777400892974755144020840929912821828342788903805990921704756962565304600163308560447378583487320362109986893343197812315677784423353291871086477236173841851059068031494771499096016208734649692724701503864978927021452414594449533106640901180002265343623825980475032684707382757116883527800882190647876217558182668780802136473248720483597350865681138165150283281677945452896990659257468072187488556220510755417621718277594813843630548617929695155778455326038975375687815065602593849628088419044712992075751162762530875657514308171998148001377083411110824564515178242988128992054459966839044934525189881868892482611439783104490432125016293067645540239107458524902805394251330730554060846997596178396539167755777376567061020818060930457474574368788280605515372197768658323145871229198008033491341896931542522225554844544246982256866913721857135555395140928727690894689971182906263875012995450333852850047817029539023833680616697825851131772920233980040971631116973432937076932172025867557782364376952844819312555677358909661600142163331914445192820489562091643452819454763996262864102049304091074342549010128570385723309332109869357389621504185002617124231607915389761519633324035975468577652171753346015887744209344399681482397934452396109397558265909276542320074204171650496092266298960922801547063790447079967450419310740903095171302916362982765172973370296463740842322869644331534590650563852313962138319567476802969823572021379681750946838046258839098842304706181455308503491429496628754833358263563320792689405862158158024476847675933748500911052391000158114572265828889142348653571856492040680402817339157848929160481223679017511392669688023873611049589657172204301280058165281003931927823975593644497311536015168240509793496844775697541616208841462529787838375716820064914388363889104182457079172959998824987466117616141870185789120794808355010472747071053525520199697516117930696593930162412861638674017361782862366473436458643479955875334511031962136711061369938226189093918359184415261599230226200092489185235688312514635817528280054890270273708847537685725680680564698012189484379911103255780639061495184539672587579338770788643939965699386886881326079929616302963770580993750603737139551109633307929703131654288606494951652636677521648954398924149230286289278838263052951936250654887797292562924959742716952014240677940644060732763391749542324429371001475953027153091334405533681640095170658274126840866021486307320189353303975223908936060001789718746828831168437690622530604862049966342935425971278520896771527809142658283984074656433608890233701391578441522574891783938899402081790038481716313215869627025884325873093985246134744244800145176866525098710882112040396846242100482345560132043040902063245465431666975232576876441000492821419797982663011463307659208656280779277345015672334515061895531332663601692944474340094117099447713115120429021756791577975626094485637732055555663193517653185223582689881376377038590887450115885440199447797251458814687179364682243684270109133811901184869808490166526224862947939825976573744343493334935902169536477086856179507680863663893849599274328757890451848580829692206852261786103311469010997894389999772089348318749557462938256860380654467802117617100521047364786275510770078124302720298928551653155396889622399288996685005046899766535323053735011532192519365456090578188685663498184440185110335103023750225671124619699969597192502425547351349412919814940075617738792886963167540811934576491433646181698901564762472008692801820268156057050673519457798361789283896104643308658304947261281968678720865682861035775949756441920022369001531357759627377758621383825202678132613254708465900963223382038772813827496619866915525716279042518092531479775844302218434303953396059208419627464001968649884314679120962103641518808525013885141462338766805278009620383446999962618089129076376287247676233836164136116529920191754327710091981184119222291671759872479055793311181161257138758240941340104605122122577680998575461706233969424364480342340704671815689971123551500670617228642211334550309122190175586893639036082642104694678198702096336278139971220861450305216839123229904163557860793667486862801117337216068974801481000099030819804289542961249106772550211521891712820573000922417117164123410287940805041276628783491609944058228205405004622204301956107469765611555354440079430266819835001180896417261128399773662452921381290376695646958027431660665243130764962292092550176511709865926877082281460314126943738743792986914424025933057625133596248988089326420145741049227508603636886609060238880457461488352154582042529563761241055435613672736072269988278350467822257705568146341255436505148115021315393983451699680735839034957317661932946191732542563438969236896303850562384711218552004059493133502641289755537625355081586189147958295909829948727465273312373389670239526497476510556382190441406843569454286080027544360545998175527339628763253372212879155356778767688990941176258729354825849917470856259603585397843110508347736944723761356301701456373627916320570866972407462482110573656902625879146134805035723282390669450959286408170571358550544767191970776162877391188955983827897775527336628969897549963802699169611050376288156496523472910277019294546112607118522672437003847130303402384052023116639397753385837606619331989921625098874905388554678406269392864065666775148554147521688827146497186284517972411197289382699641508970355441974104750552827139493662265748631042686020448413832941491650570919569817333739374575109006060054376112700437990850348352960555476437039382887400310548343062445835886659274401408257502947651948209981330069195529964390236818791804992059423488473974346459852585053190409929063990894572547246952572668713149664673529769440929485136895574174635249255463886452724574920822254739058684056617634145305012268596840754355481053843461539894311429051823511334369653454549123231548874794168343240448333561223883417901403010113981006546056637543880925469254594030984500292769473977262544182317539097189489110954937456265030429756374842731091872355611192683966581725763753581558580653030054162103771584206043484682878900677525193657117653717931874322042074400143085649949917625420455722032868667522907457212312655411677101797132059054841213889154756238513526064737610269598278801654397484397267812169179677528962542329450841538128266056023910904466748567661459693094417923529287495275822566619413802643701418098788022844614210217447555615943707504749577892584224474356715973517937920161202209575918991461833927176315504243736325164248805867337357799872254058791096311580621283406354669882781726769562137874841549033418828987617548088795071947819347185706679841270936554129324540031212864111441898586503182351697800765630216586450961170610810299147183935008994725681376844648250893030588366324070414689603596110011457617107799454471865713408951165340679708474122406090688073898943917368565914859868561983821659064582903286524626647283935816945629462428306809368761420992358507556760702318358479347777700578281291760909899118090695783360854612944074284140287197567090501532992208071409831029011482260066129044523679460015384405736658975544655397896967447286854933988920483770074423574652774511538211136987755573190596023820881536967577014601197255609522318667273185401444698011040793511968578172785046245788579136450850106329068511871230772006265967112281575705806775901464560501921650698363813033695312965940617250409978571870333422515432844717061371049734781651996347184334658074681629411935011084478845145060291730247365666921028081432688189455693049928466353731452807153235740510792774054972707421456513307768972962741279933424480030649429730418764149538772132431029991616254853931257614870039226855240422828882410951908264619212244700045625964959434816851629525113428555446858950622205080364258626868530182886117324875364712358597954049935271147876784175781887862956332631317056920563754381328270535374081857238549614628469430381947687799075127973170626660925778235471423881026403923349879521875174092954246876516664401112888780391986488931426287805956670568161049676237044509469886711557556913284255263311386503777458994584995977075787563345164704023182407905847649143125008833122339877610705611665444366281107326431534448309081756490198075306491236465158333941916300780662678382097974196801448464815385862046139348618867545609785605842446600425853285325764443426043309154576385327592904667396000666789127336909034992221058749490744173715943986563653762368072373832059534399424581677781951063275018038054656393128233515102415825184497811261258037664540237474641416330876042187762148640052671233754093022109021069642779091172041345956245147724774451828379936652023644269358462834958514386769546179874341828760917618115573344010636372263323607650187644861001351140297093642004223794451946646921341558252205118228504488379282234630465558264698152218119699707148028628189468537039358602072116648115897087849637184597889198955002859622141207776056864838808318459238139033748598486541414719296684585961837854910966608920934814932772768060407886486741097797237275640265670882243512082601441361851853866397395046488924534348942036705881844720630310880769230424597617422897172345810497145707948851264029126557060314718209996843009859943826748741906903332082041158552784173161579549337928056655688608766707460268559712514670513677967438525132777472787438546434583366078680653795077725977360690739170130149806090810306780778378172625715916164489797007049757653224866320793754793703514912561096331804118160160300489449651565278050757305715838911169330334370432689308240814232499136738289997228581301832761190588040284451361313449221260567977989781179199150362560417165472345578311460225717724117647127563459231623844500550542896196169745568706122864039661152372787285148723811819422407132258533437376439338982392908050973040596462117098756044403441899378083348911662451888144233671045948390800535574445052057349739067831618690881580559356006884647000719022188347102362860823077311815032148009531944693737297126688401226609573320661235020066308377621693020825731550108674041950367724001748719997326590656346319700120489385844841121973827586528108045766645446945429478960743134697104580246848317868166154762061328024622136094041035748005276252192150759164430476361738533081304042718759973623338922272089299669923907015610582348664804975829738133215508766370694956136762876881140356528929018802748463202502871332537012176201788163528598712940367824278072944145140534207871549663359490162383175317782443071615427907248877000017061155967076356696348752751937237361234413974654264748570142399771617546497756523111266034307016552581336213222813645275770624126298326786153395413125598733027670257731464468147286309198761224261319431119757950944846689378363589303895001703156147138905485478509783732734374014591882578870678164633506865868546721743663461702738540676112975334724280229823229312283652649390218552797838828843128278133100822490091266400766356733638924307830903682563211206156152366275094669111937320644067984710600233210645460431786442294865297869460621226086182232340601280958593217520872291825776495471583006382064822584310864895361164129628866223556222944389136458807927493730214140454036656462357275236861838502333342073774934567535504209444607677656302716753175190517016061282035168321462011779644295115699243914337937040798132245810424728577431388248260601315527732931982560325120171792447736510446674156058938470231486205368880916438344260718938879648101457198799137861458306687454354431930572707697480605005841185682637714321493888145207431995142029332315005347094233034346441337434855187265184699899211893265551197223427160573217598295361875391275494140365605392365310496616858432216197044450939502278440501007325765050850556974166958593406974056851693576211916264198262567271985279278413664355505552240842861613482397006609068480892194428487841028763388630673840806188404863976822880947056454932009940918009784927369994960237795478462227384255420184812450296271232609267601461222292400967229194247231594506022869796482608312411594065768336704849675814514854406750556041751757454389399587096578477783344540275382954184447266051795834129585390893011995148603210993591697111022686274494842100787742231387731517657306767418381386582194522668946521965591713707781820597207626066384566432937878346949017502638915968670767779303310267713288461742975134165143883501716149350535534367059147263861086393617474622314025423170715619376464287914715361917009444874358289202370848808822709685085880000858721887978518451233516809829696819645905725334652084478667751859722768445628537444819584634947031503057942949772429894242257090396837340265577150799148241390412021561771389371343285329413830907418907990384058204167193937865459639568556420554902125869518538219266152704017572803396269344345986903813972556667010263894665627178369594063716953070962247738978161595332207198904691145333515498499883068996176676345986253567401960073662585721265155995007070996525544244498891794918559386841407407673844714786635685025955553003716023938455945953929844638185282023524400468079822516631301872717985510171609751877878527757111136761269734882229149485706764657352332343109770471979024107690180413422775946637493637550853938320358615484907518837355530679743403480197504240632099458770442424437769525830577914867566875841557254089488026221593111918250481571413027583545964062774652307246797550486945477993529160036227292992948194847483872889589129352570865624587183752562251436919706134978828051312698631738591142207153435831927210332095725544467493090482231649030218439957037259546725992384179442165671086282431989446131991687941569701620721466573190577600765304561806242057125275265143889842152284483640009289219908482530190309892269558864820912314271947496410935176267035313175328656867919875927398746856696103900541411051464683561349634908382185992388136443585318618319686767019842240204001646840940804852071685074443648082285816537057880873400052097206302355970707437533729691001877573371740084684637296119823222807540202312972193697077503845373682665784773631320458060305692554522176570654941871034025042857233919866414155653730159090903723053215159864035176994475309347671605720363505247186365456689490528396161491662167472881836976580394837935075360813153947105944247175108510975384336495774142609465106915748627707380088305618942562503749460390600226681124149166667673750022902201112131748287778574875568206123792151472067235852560878687623010771916947554728581147249639454042044218694816561218739059765501581585584109558781180545716200267822241078534452133721750438935182345422103570529537935018014275702184179394897914234488740271229680595390141179890118276747700766236549790709107509720860001545236504650342829013938841367941482506300361033528659385930961445838252125250716169912790835225473076199409174014895352792074442175006413225058875600123265380465871917971286015722793390497658890122921352387014813505709139979389761070724221397944219357954179000666031170454380082538903493303527079642517002752674437155680091000950178283883120440336745775167463687410748095180387114245628464672439328731435300443648452698150643266745845975365682317915410902359705023433377860584042318381639007322439425941452766712940366717150898179546497357985473257262298361582747244304887227266389623726401570601012672877780685788146514184914662781860227753581317244927765096752766057811313239754704860426942576005761104360480904252623810850573604088834791344924761529227672730047483040723832071511050717529640153267667477789002353913125617860779756169102872689779712440134955962015242615313861944531310396973406163361492675973888608920099318203432759563408692929311389740766832749440913510938850527778256634827926008586357527993539830006761261319019929761462142615727928641646582801953285315265772122756734052015291076770932313460477390972262482958701876411967147596190522857129364613745111038939647784832771879310388853715107427351687703262049197047040530927134996686031111046288991940213080234977786973576385932944287601380409163385369997293441847572359286372214903670757465393403711874035391064646139845080377042970913806767820607421814768485907744393919256942126289197168767369036010730945430105343713676698592095436243167355913153760702606980228639958164145605029637208771238622531409189642405019340467471880677478668540515513143814882816148676438131960206588592288377607280915506900346204347175700091715454483865995353606317623683559054913988696200403778752130952009194568979384059946439198811033407574802121943716158606747370841861608962104221147552193444048107143721920619376706679374887193861226386822057486928884504377241333286443430502569865389290189592784868356384219993514694961017320648083648636595952410456849887981646552043170387423042486971049654499341779744860699847181375233135915135721945655891155246128582961937068892380599574657755460282167711595035666329654207804978740798566030815854113917897198076283045955049128234158651075025550176217679384277967673280801382188893223953226276144185953500562564998037757858032558913719804181864188878668275851946654233443288263260881645650261815960884663970156887137274053149745414021907203391619612111026486512620513271174999877652033030771227535727520791353456952268057154756329846720151139731116927484042581977767068127120714197034072222892335786228955993158702527355291249971075419926698360819130693654820805446818525596838518389063491121772588716656283150995107602642159325580685946268875418678995739619642796939147148300301176134252234800789182313492140533359642869723523228942267549794563874630318876632588215268250644850917067730229751011406845401528600803757485895210693545432274116332286169365641372215025485581130788523669288143542198728467269952624163784979404592717589560012534660655364707953031598807212657910275514590609228186744544893822759060656228384663776076457392663291160846772800025038747366998899892792517295880222698355599978052773140465744817648085184118202898619351485401415520035026494671107866231247771449396642410717303365113951056309734465212231243247138827833150514304938038992772577687851086632880132492852664464319287638376735972414824492327172172937650099472305360347465622690187596327304395586875987242643598412449045482238188382889279927531039657981306939262382516281161053859939911644382658468785224437774763651485373898238346251850540703006193391635317546268783773909923604208954458640470274570740030934090526883458874791382444503413630753457840928691741469180486302599120373163630487622195079732752071437078646626701353336951418092599734117529206098672429058688969059969962295106139720901305439328883240084406292779059423596581135457801305648829599753179194329759179877586729472388355290089231031271369835647239329391594794505200055758989466525507605816479016953751001386397053629610533638651931064164658598064295692559193239319266315965657449449602208854085880134446610247860248965213862819010862313419020192611762972842505883416550468363218515288289396313752346614512633338383739598933089165282286204753022418276430829251999804343735160810769137805483393174218139016029846738924661615898617133160455203021019792437186504994131577330220305414314460459301117734525474304711818031508053190023615005896377754276325731490668855982048141174891481167067525935188248996696982371635356162630097570321656336817226575772752022898103711205704228919619218961781186331965940037316621891326069669979044110546308340933835048870916777907525606909574190541902479478786907760084353301818785915031600389052017986503534033163577944721818944886070158164997462802411653468211215421152920637486276417511679686407216791955657678012401598323682093370718111603709466259117120235659121045912419658493099614072260668047988960812606297691802661229226719316538785260640463064238473940753165523665701259776244082046245847188151044442720352089373607472593756736880157214396493083221386019249296187111894605295436355185831616334191186551969000635925839043258020322138008251210335787680753376388180302356428631032718305833849529860034549430469336701550302341380039811879389856402056579452864288761394624732592246557640106036325786140524053122754654926262716810009827082612188189335109211478419324842152761162333401828981651870936246361018652749731483482934426708647933685819145875596788363524226347668277499105503187642223029832326904064017035231187533177475634302198964409871540492755501683485248244407342943948116226065680504097316474252266737118377377548581313049777134511399268768496831798677816472292649623775673204440819313347696302159934114530479209717606792906544928708848174907593723439673851960606976741807146164556283027376062790148657789386043986488780440681666091468769359432484539997140354414666673076468883312309461959671441330115570145723468700088371886413462502707882608896113043009976708605172264679170342025135475512389632415096322833023755740935103321109555095967806567914701506280557483432922721451835482773880001634257257920363424831518148595784847111278592831278570308130864403742683135289349182556290123035906834501512448904081586716314904256307245187180839648349429876767066378618166484322868219033226322758623400267787640341668371506969459376497215880014612276644997924715540217528302746815794807909025154373149831821786488394408918187036983630741408563950728886510252008251559787393492544551805469974217456621754707078993753297928044778743355860573301153118152423136713460787162098629292985048384314326975047197919590645066985834798353523596387378744332566983677352052884219967137021841046576513692754446329490480005041766204463644149009217954216275611120350733674071288025251900745746533652496097452527645545906508564924743356119731918620166437980199052562688047198201312480526664131382541968211952483247743140529573578437247140151600100086623832556564979697825214555800654215083923188100945251447424642551265061086851674552950613330265084427857501720958477738091752217229024643625123863987895058391864570420592662573499606675975295739219680527677671690695347429728296997597832893910331648038084764376269242648099640314411362811289383584694609596774492875623834349359786442388833549494588898882090467454730286753480878441093459092772884296665824623633321783251164651307815972384810162154826391160281645439735209998083451730714109658313929608148947511767956974793165726673938798046016432247684640047610431044358130848896322031444171708562263810117153283140949434827684424281811493888032993526874527982903477588612486223532991147910181760370697865226125725235334663154330889418257160677642129072111850594892725913940282288459610081615307467099029017914693943266557914351912980679599031727649072791881107511981338433817509991195057367210435976450776243024384941967786040599088138030799712730930402840053213004757495467523900696525113219111507169958211462626711239897995273680586102265369191663838001320437351476527980923589793002394077677777707266730841304955802027101011883535287922295565862517193619703799281139953538008201907223737434245006388400150784345888031730324029546166461448073387168745865803353409634670920443613480236446769301547161448909374090747204270780165630522536938149718546068803583236414378127532325296249743222477800213643115775152456519840605377327218251211224599810559974414245729298150142678978958759293011543248983150841717692914565733655569252382530445484239451260110766775876206458122954207475817067726127858947820183499241044930542596461958477525862712318523232508284847530417510643032955297590100524014841003603621109083341897148096702720008212703408846808472946306366518454197322294355078773670385711973550235157812622341279018462389692165956119240482242736228986856190369275628414959422701061553757076463242999158681565743578091295723975210936989699195143214283163815658660826344241343680488784362078920517913596884034332937183070405389577427943239644013407856344750510696167582942135617747713366350096261771562288827485927845689697985081879032474524004551989537875270927149782997783596147607270171886925679281050454573709357244887989894233157431555027804118126598482608195877532660717345787430564822485596755926773514885798901959044350520343374054707804881388168742191722791280623693009959983513431140985871469564032181601545161895190662222086637532813463628774503426399519439980279874437371856860922245822525850066680628184034437873921405228894658374112871396431859564898275799342620909564758668881751122947416817850367392044554555522613042600665814823654933594609450630856240614049225662687341056377123126763394862306357068744474718405026522030619802417996687162618348929016122047090647054087828968009360286836462221340289367518307632093205425877531578608278497923155606244960357738794967087378600033316685381621287207976114115966282625714102273841726935824006941876918709485679916264477947061328398922071668762876786442216109374912403077731100930839932263612827038867033759619649532023856891650571673810428317892438781357290186807666695877348365448062237071687093274295545481806518276396391409569054571301649626064024105617432271012048415340707911793464215082717261153734257887932688627371075611614499034780718258237222845612976583170428730242820253304133425005490064108010018980667938773663335112477502835950492559392352115449492409360315438299268604299135868718278846037184435505040110760330750275863226059497037043770224620551210092597108833151616198817548121184135305057001726724701202413548428630978080247499358812312873338995420739604779845649571008521076619130569860612362513353207719831052770592561853863732902124911484419810829349349806221439615717843811904720501093522491203219635094042248858337881538811048253962359902452153577377178120080050439768027449565860457332687013750847361556655733892782697342221206944970335939228899315915021551975282225389850131231962287985631291451390863132539639942950606152455476247034558177770388989787632954647642507597817537386302294101909917530069340877327954463991546303249647195077742014559215340993627930848561573301951025113770643891391102007899664922636912183107724233060532886503952237891581553646584014830103427977301321947027710957068554080364476988024325489055403622014707710226388030519032771447378539026901513277750925017321167913409713773210585148965426363206480396113481032040396409732790525784098072893781723419898547129902562792166329306167100447539482909686954734874118793981440827255220360410657787930072463071923649908096106467090946039410385755656354063986624866364104051184784382230691444283707778029799385879677842307786038447442213632348742911219935532394162336801132837878077206330987455217973548851386871918590806542036925091035078345871031508995310170409197975648618878011081387204347350137154143277398422939982957595504062693055535288715328443204303312447376852309811030316192357982838859831821434307895200490030526546944556627906026469446963684571285180660209877413048551501294443768951449204783456193768884264440977082891882125057345302393094608346020363178063710662386676538532321518282766952905483907790165782174144764403075370149947889640290678135906324951067732606249204810599213459372113087146442604240223384728243554476194819588235623278893320661908750626435357074881862250156430242086499058131254636945999487184317933567378131567044771713060423510042600276445459806475164371485619928221502265396742380102172321496425035331285690965214074139825640729143511899907093497128360986886017750407310140026804825135518357477334811080643954237109396551771936527819871146005784014868644350441410463534963536404210798878410868115582252667882241559380347861602995859488423729444179028848254232071097495352220733210890460996670141889584829660730213801241047412378250256120110203059325804412002101988595172955673001911717141307871592652567832176413143452046219041347830313844800075498193831327731005457338670272507114413811246046336549495192130290949394764049247756111851481154463763495244013881217537677556920644323690528011850096551066275556393634399939466239739605685943912767562080719199547763506477213427052249262235860603435551364301097820532166620628489277253137982066710901063421014961402659807509721810749662691261954861610123850497108141195725184768969401657899042475814700184520831660904924534548035497690263816698589584794943265362229235914877525271136843167591276150206781528206563951162171540152873586556632609233873463070146504848930034588707511252692353476407072282115823986569722943275202096126288604303541793530311873370700865862190942336042437243227237399740127635397274885474101764634123458270946155849149255064078267899953336721042419528491775081743736748053846466154029615539555452302100920077967445614581008867491010780195103081358284212745698706697994108959067673052649082011612832974796537218052291946523875214128810877124973676853662531240123452332610031412165380342899046670117669408617154144468646020854665740148376401419515450838796132783802944512480994034770134362987315519366584691229165404720647643953456903570715375804368913484271377982254681316211212607893428675564169147319565392226999330129010537250195894690387893454802432977858164724389008315917289743600529139927923335481394335501035828887780274485364109146831702949700612266393943946391537036008751860149640310302533197029304756862538433711698115856022481918765255911171921454206795762373263921580646796129042649948601184895952707035383149141240294849030539811612733897510565413427549366473093355121391158331175187370768655941975221115770270684089951875969189996923746246793852774660685520637802601118661191814386080369115205263920125354876293987074127488831595435710581278964933098388231983531831069668528985994615873397608007904623563705716567505928355646096919830810023851530189679523935660940858033995064287234654184117904038485924362743065868666778891633923611533660087545706760849429357711997176099271409174173517745165132015889848611418951233077018948516750317243738624527916922040649020666944692474010008883536340612369300058509953195348475066685143712765048444673865189243449793861216488603994395429317047810745608787532082722517132712534001629745542988869089780093575068591871872122517710439179300200417932793905611322441666905288368675702043858005848658262310915787019486228882160625588295418500148027332949547663929697377106419569078345921714972177689511115692167695000543404949864337188433844895558424450517681753833400112796925527308908842251046762337118191750416366665833016668414247805657687947004498593081781696491502768251757537471164684229310618600053336873153005922105958089379781751141566424986632522873600426860600082345093375870438412953283503462783939755376773120406151685892057268459713390957516309815191021414861245876502242766621771195784620618226047681612501979711529264894861953188672267938467639774124374508029282695940244203750072603774872197804595718672609870706203903348806150344359597692409612319863247592457602280053043443549289794961120576232888742318057243756363096840878086808593111116355526085795283739763168817009194116795218121186129993549937347616138828407934162061516818202404106663262468105099831100368564775710134233885098256452065512521645221443976070298080864670778220676508256713790744626958639930365500213619813827123767939568452629657242807437668416648925344406523947508440827903398901647847356528260949430658292418358424276631953519977479017185563422894691466780343820596225653987461149512127937541670305545688889779266446797506085529198913809493222899401873605360140519035611944588609190409325803514302106483501577254877360103424796784408715431263165075827918074774863689565741895943646451617569374245138251775002963819291687268290872174249232690204976006187365196181569531275859434488758933206820834640114150120313214848083645842562304429310403524236021544422631260015511236993860758578179150789107462283158148434163716298243374819587520597347162790777763754825960154494490828438617930188634425560298518614896946390971202344431324905819019219129256018025494335813204836392068287210031166051783949533971740975751073038501987031415308867237585184964567034895383503978729003453863474461181238196820244860092296635677724263288317351723255041024149779289685675324588362740910634315726554094113656156326387372715766894626303499271449291177639276573666420347223017231553804998793125766451528673154553099866824023283372475482637299966871814963131049116608343313271851543984006884168961127017993851086607991555255139141765778773996774905905602973621521569263414618290709307701773782567488935903228301666299149433360277325303342139237944138726134690635874118349726170006280801522344903201382139759706146835364137276728841824023609023538834806666688198098903882639573602286595194843073357034636051663183890790200255631812972382703896917060961412574821807056406654036330373079691788954401413440515249970912629163317356497825598820637603513750084506214239708533670464500712124026686413697307261115143499826500073071586458774627818826663234193559171675269373754584652355041370558086040815436057544822824148422169550974944164682807381502108022558182940246185554488530909954204193387444342675045475541402876716385600475576603295085955837822597816478700506548534489473823637965783094462015270621556834027664339503039983218664068382659335276183134407360335497716037136608006373772505654007394487226776908192054143285184958363467073029305719548622073891333176474709122062929275257324150195577700840182188263532136076009253978645722294989046277983921396800677940179056010097145495636206473933112922805377386649596247908226072222855057176540185130550313291171535035469325182037279540461467623909918516898055522659766005912702496342675282243048376126623175675597980239739862178301706684256308438051107283593902503622160503927649329247226257695105228078502418944492951392876505058603039151452452840539932610477348145683344851915945675488440819072061000830326857799516908191866172118648090562031080354894600532744107690710460910312892359393875972060929224477403949650524486162319511041819078558885494251554772970777445482852885657627246783941260524612462323446896717130941773561369316838439332244003225496896839062079869489386728514925146423647978426043411334907049313351544051097418488425132493204959362748858176966874506245278564724798005667808018580277161376497436740991397998007626316667002349647911146872531299965632740952404871585143229779553536006807678015583221926645153836392334118597834243098494442641294392145959107462221596171745814373799859765557012182307646011663717153768294483800119879023398115321463151713113898637161014947537682438945395393059025529472085125044524078004746908658240437452954418936367214626339264070375048979856518971376457607954065036003994341821199802880567658432884219095151816357029301386518597983179316760224609507956176511626096204568809454518689952767636946740924354710946504416972509236714956869835108821717091743025125552370194794356797056735603248983076124895352354083813564920857896175152203135321548388623645750047238122307868806302699313961916968869555299189485698165182175622201456580389454069040445829161915815939067143715914876653058418704075960117666351286568920958078080307319013482539720767931320101689545974565273795938595400491953978631250114367362427248659086898536366978116139156294619496013291269165302350143162181126408120617881648426618823390278931088602595541840266878091190101475551054303676834332482874253347279135003688337205154480663808526088272323682285360909643882750071338157779887918248708723214506063051355252998511256380775665485935804732802578103151751032621089256522913610789368814624045639848356716670311798295233437297600551251123918393048594108073799462376503321464700182966678641810733325008367082668310248861694160052794766474799125162424795488709679084087881231707250334740663261264530576533323083206780661725849836502625551974516127697536678876686851991767714443617030633985414307048664859024786257186482783088607784506800978221223970146376690401323587725496923898317048745652562915657309114026018016283528157856066115269178231562698282004791354096059103154803235609898744971666505887099804682835077803689782765036332557545306809963001028166448070563756564028357085907101568431408366881457838824346050924592212571960918878447541538529596316485455062977035137700314321902699621150150829118804717686365477160035172404472764165313760939517976769819152354004118077311746289081579671168149711968971179172208457450839177650987412911721216243009988875354858818610889800612081290168721074160805585246569643518326024486932406061911413071729226360913025439946584601019208577482914281929070934031266312310161945918128918402877745252602658000595103927682845716196918089445662576767895679863706071808407000645049358530315431203532733791447637114831511809303239017476425858493066416944269581305247969054202475008981828048290468857793428631883549565753370569580189066690980703691715431487105970396592219965058509490607430156929967539261390690443097889890798661154780771489165401178572913841807225245212750849128689896946791518574529202344937797505894999069753133913386546726951938815203668016738398758268343066762635503016517910910136381548625919563337813842301548879384408839030732373459245985316474286209083998926165940888287297559172918851463900319891208533549755767846837979645496671581501073694374338893675888888911430477946127258876911915075433475841632184813341793569024755974003209736900009604405282037887499233253112546986277513692709529544443120540989677751720179060643847805965316868303322797315593801827310017563569294843265961146725874980718911859103458373112185197015267919556156120327510364174622902490746729647145701296019333096367061187623071046824976549621403051395625611997255095030764782291533827322271532388893712955039487392388015816093536819455176026513639400527939609893131866140818008211842555550266605346316023485880638415927225124972703469328340868491351010316933252303326828962612032061366451736338965994170007947614241956712726105775142883656854602991518985621696298408620953972599236765822312073986768549809515091252782572447319277836672263156752386954940853406345537332165286903652786676708356718933967165208360977489453090930818768824786492202412684311287513641226560958134005623991518631736888816996876298397142485182856301970868059742854022517567341171895430504578067834204928142654509782317623708547050125693346482586044019749139964348359431877676885204264403058338584714142242083997334085946106826267694063986383496320455532804131251511140625505958435213918762602266023146084387111213030596432807015987616202170035095917837967056845133935257551598645389962968466356174800632609111129449863790599573123582058551229849296214452499595606368712197745677807228641610273354691472148821204604369875199600171722843994600337533755169634187559878840372932986144391632904900085913709849053996808527356754581885795281283667096305002874526485381228400003614147949464430345859522598524300083574384560279914427251118295254781537895207878398432895219215000104799702257194163347264923764237527345243130867840458716007191465006811802055628245371488992597560340129731111420029874610753390715844001459134581607349520380893831832352239303948326614698937238203138893047331475882169255590836672998475218927001578084056556434232092370083236706686924520266557268623915392824540615238417221265795644819664332855449373900545350500469025526848918435887413050341945582701946446179836043108540744177438894174947281380594527216322331457761843055431264204352624787711142957061570135738969688760339123525039484750299145343237498033596486032693944925912868258880204015996005559234484565589102923903507005018194284208480728453272014008806544850954359580276681993786550186609286089864598016427399670947019145730608051364381204074115191750970679502811515377336523419127494125970677361949835836888360734226589057699906342791253357027164375267309705487550134117129584891996037998452917396181165986920036198771285339529259927326721815238711196763597994873000897864224185435610294811687454563270900791872191052614739822748064783680802747863530722521563321440283830582821570680984858057233494086675702761970323270239932883154138248963049944836399632276176423058521434490960176734140217442082656128294653877944403053189398933614059443084331366839774666350608403532503648650678180336529752711313564143240601596752967580914701215220222202739802472082462336776611882351717961366633649764412632316292157605426029208391297533974926578625007090470727838706311778828780992742161862267265069448509054162539015472911265875841492308968365126491767392286793440980862108310498092988334298836795702644811408801983810305821118608901796754991171371106952726342473167412990146318943287361748758282139811839425744817195373723254737258779535084443939395054127585184696346295569928045640327351094186464875680761340157893723032594026111554877345659831375703869621303181111231284195822605790165627670042427382281433458717446151457415290009445490528931332109552602076866433164940027730099482072571466918489796381614297733952148242712178085730809128628190059564610133442348447302913562123711791697268770088904456606342070865065527921116365598960670146130877099561294824435228886079117172993796174145534661483078265210732950774761694038244032625370430939623665059024273580022078361174240931040737045693194864887648752419688413695615412810702837366433817693985491852192992915247907848712564192079383719727932653417384011421934946556544698900640213322971063114430866695157487718941219116061236492439488628448082697670615076768029386289342667155532151488610814604221983169034455573987708460161929176019524989611217414480580841143101921745512315106526425873153115133385711852180751202388790360017831723597303910303913156588965363443608005401334377795433476193534993099194857500342868897831817559904593162360438347772889360216292768856731157642187739655459649075431382924117060828987390281464385805852522643449292225391801902195175760849042560945844852193203820790303749033076564010201441611830749993749830960624108271260747127452464362571147609896777911583775954841862933181581065579632337095981870927848176889465971453842066393511616688197173239799967289628739589885303935306777305125871166008704885626451884740834250375064141792188202244366160630327428348463819411108503223662997074015524762100466510534492248091274864208990718550500644936786522596087365125371454413565476030717845455835210660485779363694929229707192448119183878114965352406845493242294170889328481016101666399809049942791204761987921672755034352361955137347630037686558992269771593982352144179362288308415783034839101870090284452049147474572405320889769463740340593948211707932687740350561984179309593864345607972171081956422712550952292530959465122817327777559966699240364375994065837575046521459954740946440226057263752900050294982178299943937089281262447938094808969209429272567563810359980955328471244811213952346671269203071592126755012465668051255620742921653001233976876105903226433386708324628396057171891139860939110913684247819908449519697959312685440387773669500496387626375433492442371147463490545373704978264147678892039438180866630960917622380967384825202972386824975604942726485232199845400286650861160075285736510917940433585400595739398886070896698251280788991978293625534234638413735555974210554680159332989456272024882104205165621294823096434942112415949974832333218841579231678576281187573503720841957525591799263346092673545778633476044919621270623356893499303620284479188346812449958710912410495603123296956829903746025149447212519474740975477118690679699677973578334214158196554776356239616100582365981297730885323797648248905645484171039558585731020680559321126092459406873977854172510803373720114261084783775798818484621281067026863738076298623468719557264824871106963050936795661087644310336669601771708494858327948173605883433457191469282060552151390709625350956999721207777374227067157253562325173353491712435683269996051572620447671865412234967674957099359198527300795962942893164784721026776593229348299977322977986246285077462351048133518863094680179529188150815766940683527991072758966792294577105938714911030412141734397433118629178661837719629418922503592261690004707626115782044531835978997412279109665996476395956048790952291423852962190009289422145351340847341424146332716388693462163172182057390498833501648249924594102364663580624368386489580909090790539914123887755857508354671124591936030016921483482955799711709110908376284390745879446931356125243190433147208343357014431720416070565755315610931588356584970524983187603924244180307430950663966805001838389078911782684368667308949057780729421680788612952301483417107040777672265045123146537958572439827469522892840342830745493368996527808228606268358446356716858813131470685584097411380323139966361778915975382750603559216890877213668414460839716131899163756281189359542109294712147919954989494723614992556226599568649533049665675021248339849034936296419995153963160073812377157405627690267810446212728061277832934916382005584571132847987032082248384514938436764190003981635375034104574180108885493035313459865799011667456909534299239883613587644970757451703143107728367713137243094725784497292283649733395418916103869703350932894203847421608751122723990471059381209617165210280192901676379172428175805443917403778167997445578409647153825392737837672672177018139840064420241357416477010585247261386685177383111464193986645030102241477442528218264786483964518403282007096471419924447428531297970464846651660610185679144311962982342258781319059596662069087122188968492922652645621817971783482480103192307114483989275858778047271275535495473503088903227438752440725350444395311775131137199386181992033547087058265110432849758709736569333189172802165767368514755316007760875106210953872076489255653437600854774310181013397731415461432515968839251281453210031599181148158885242488923432160773876675321960626634744305059496464340297862095171575442114101920311335016293325696464356271808764081291686563626865385398252143305548538849511273652173845636095942419362322106360838350595435491964919118296747287195049946337927927648961980973433845573511403572755948815614330884437784778818132094189494167117861796067843735623369876152703341071307364047410965307391115465384368054441010233086853105432898859681865198367629698193035255795080210421401426065193843094609471434992567479277251250122303201630165585650981961304273715839472373702870583691672058433532437175001538511429513838502722405733971132562794157132416616481811247221756783429892091201771303057765087903616188940522149843844738459324128243474792273873024996422635591412262970320155385080949941340577412289668478291091176796080425527254795447684163904483110515747389896752021626536290627194354893405735119290533043534315639965671484347398188681945049483999008943334904629571581937305901279438245083442820275707522236393160023951435005238572559909369922962390096019495942953224907631443634537729140929151164991966139765686073819926997254668058560239511511240319978045046515481005194341781414484510462982761735461604479629727329204351291037634494471682553556305954903900903956107881446230733743968972552200645643277098986815314104119070470865658487513711077299516727874095535994009148915221680167440238982183835775183820837644748330091440212003170237199126033575621275545209661472411815514971820062387320526261989999472366842881582019890001973532074051596222953492246465226866021719430322113172516023940989436219997865856301903195921897129233740994035434285669044352834709308735795581063586411801000349623331999595211252172255638201555674508710053401093884099649537692744587406121437512808173104567387464744625821027929728469418375903406858816453797600665643353237816278230237440929466159763480778006287205460200543321978001416268389405729916132623414959509241425707573372584109436821075882589096639067430184560628021661853333415838831415808962433786351036112276659730742538566459797197806278040374812915492030103382671810535145386535876340875027647741755467551297856847786495989280250213151740560207513573754001497848866647105682464732950150056006820623686638508251088812044932521925148851704327655433358406641475890640081701511308969750106018984613930608250951499682101937115695886300717960146776427608744944892567659411063699642940332770810985598018659507407891595091219793004426694036621254990489793453435164923700876162590662305907035436043551178269239134464117197723093209496182844089723937196374125727124108768583896829873072176425351904516873269056532654467612111097994135171022230598559609001037653709979487261767039067495608164851432374323844782101990942924033533798277382504999055961798325883967722053045969787830410549055446983991476307894772150125057736656554383452399818216838898667020136774102550770178587636031032815231858379201601083182908920388427336892526711465236313341208965332447768970358255321489100328394796240583346806099827337666541535723531273438903449538458112759034116308227000547478589689230208231950919111940148306892788538856528322769832554362758433904737913329944934688443467960046597016744429274460769045783676904237660475851312948267489729112137494733883433329141747858698520300374897490908603145970210406856139313483479562799332028316349693144262975024428134950684670803994026131286828672699689200276363883868323773131243426389114929851624853705791946188238607979970034985321722396882750834235578358735196569034667487074965875252008417690239160531912878069579821547019984275988564132858783913406477817200544245307024943649202594578480353855752432187304658563038686222880597650390410917368612773294699304036162420805684652587966312376758983432994221905203276838219942101435237944100892238746134751345178772207064403693027277418840882989833345468806762408482396028818878038326125492390762634853164591171820346745125039370535228096395457291602304290721909326594131588034780409959419501506980597938943400364004985138964217684356481418444909380860038322853976768028026339905846873229615158664217253952541841873023650647205911840086469535605889536109151332176935794450052622503500519645653414703128691630163990008688514492605828468771679881823295625747419091412911449244942145105663629155006943811371122622040840484903610667671696327555550328677059773633976444066364021962370838232080354913270526985113942483823580639132264376227846588665369561586087970276337839702016238043726747505422072043210316800973246036738277049614129796732242133030001871134996449245674002807274520045325256219419011710507704768479127143101287804582822856161790351828433671871090841034203931679811780933033075870750038321400277408698654381001051768516968379429300861967127585384955918633340239306111547907313590437334035691316900768177298938120562803090181302609506250704097081957400867030521514352614088708366121166884777486261732756325824455703250731792880140694238869023613468954460820007109863983629495183660456866311932705498779831962405763995302281856161016332882796510547451419022704161356458097708112712595899093216172400358717534401029925698060566234731451436037384514980510737459343742784751221507639547903557070156130420501599856124405698235285376260094346359450884644325827486162264529307098505368698929145259797457018117282777898372014840987962117537972418919297153176869867611918535389144659157719665576347968011924592993764870460010899593447953125278880924531850715492541677097186690143061677135211955844497706033772820424297694170746304077043218880797713275653413932294943222784280304312519237239538991373955264177261037053058673711924168484217986807181511993594229593755828357892792758642214097319943326845966509539758881358932534529807306487696122428962151770347998103405489627817335885784591282807658022359400681421401051482919482605478216443063570538850856935298519704220080837190945326190520619002658088589854675319709101655988403617680614689577485182525984215161242135209030715774510951889025931980734073510817219527851102370399659835453497881084171588302300557875251333006140594445837500709860074642006343232836627565669584713102784996583188258928618638242654387133542375984523766984822913755614785868589072145752880524328041186239124744687772831589518870027200313206820495130805828527008524368333108387033546802186217359302075097686857140542790249711600012602516001312781416664822199557904566315012011375768677013087055810059732957037584116276799966537688208707002822464886483262936103599123073207405074766301020530894096495325904674881731946646731665635915076013382402801185856493005788311617771882704185745144316807605365569364996248698220237432750052574829011605761165415984546424203416958432727048871259379485633488679500751503785286765320592272477240859673494865307308182801019961649228155483534601818208875611997321334528534387661880896147935039232716740635694544111073980557845193845750445335945855511662143704081310379881377854772111683405381882994451476594523651719194317038971663909778600746254577317074487819201468781144011503134230344929240675995064738441058752967224670898030096713885798945388712005178711230415686025993669096182214030701409907538163932067097382369598259170989334894625292342906828793297199821622468738242846796844321560884280194694638305050992836059626737205777659757334211286312353642838803993456399089303121755912429675830022567300199742289104713227046919140070990152842976564708838975145044584016991887836626258947626604425178117564532348395838112899318349821953719496086141062211225839182406451805024338372346526817927205884085695856868761281414554069528122772523849840109275199900430073310883014958096526238916510930038062222956845765936357164217573592462928870902624967915610086707926900289955760628727163781813309083835211601727125710702965610778131405793010547128861128248210110378352070488663121901585809563541384022285619128512079512535318888473469785830584774992939119449517629076218563769006006745488377529412658685388504857697133179275722128200197676145924765749764804406104140370189932573631774092441726685210128689176799355711240736679682785250841907507801970530233292480995317507509301878372660695290324446453106094738569867684904807316885317828812122027403310268583834239527601026784730820549767914989329087251336190497220675887299444622288077068589706120911785147761746327965150666431367568355403721863961095422001935622210480400359279575043302058285577494322354459981694988870161558337895398518138332220934628841290410377679223937300258515858492534662208997588730114655848399120058075643089706471258608992591748527911638033364969679116665436600665637282459729068726930660766016451213936691068585060709451690544192606189473573152319888710799681052683230686521563464766380520093341201623691210207047029448393495052821447684931871911689018664577279486714280810126099331478499515919622846688533567603754437955409018226501213012070263822285957411267710420516792919218129078981840910254743991128767941810406123001883513253635470257634155082413807938776673949277805280754124623720633366485596293211734020893837827640918095937390243718552705753171415923472404694983077401270373424217126109931162419541017720054611064440399382900906089763744406632495296992539647742665361799508321882156228473722898444125002373312934558023303306105523021401224108759579785506340832766890621151048801461652030515648586047692173893193772903271924689690806847667185739620018134620498486812392726231538616683922205315167638312832701833020132056948814206827211199122331643599479926003016774346320532564829980016013833539759894794639407105644957397686770902532682274772171758537974310295556972038136560157173280600887150446393439301991440252702928831168962096028489736137367736956618656590490792156040030227150361249683538540141700398832559091287408726532825048613791896406962839308411710182876305443926365970803065511419441097924763501184327290070988110918896844645800500798398834877991311534252486684059552574265890797278084212122849564030181346212522773594314115954148511004625374823796903205608651716563528769764507866994768404476825083642712916101210107548334579048400886129248606080116706031175347941645203102314088883900001463518889423495933723145458497200957913248669171263917866364448362143681145142123185665231804294977002734452255646846542858253213250951100685719491855542362182631003771437716710442718538517588037390593230276870253177564969451760471442227176110214409863037211365155342835809925797674181765406956786435023898260698263425510423196001859163137695486688752504048258956773004261400763560806440674875827919442073818280596017533337399589673113314452638283897575406016722905932970615709984547118220527362058049470570701838720019182305501309556592846154966895826044157481934435943173013319371605801623278002790881330120842685310001646401346318571312386289508437974052802848197045857121690430950033662690219230418360932089331974464355205122995591942932419522531968194962662980621736598961189285303475032518233516152574997349612261042624952453153531127758256776785174521997753468757717525952762122166322197620519261614289859864294624792598332392534380847918767002228279104210806650568866322476184912525140754217391189863570989766661428634914580035938451510883151727981113523531048614571362010579332766071662879869486659389255180226628279305313810256820492174153562909057990538571545697708724122296907726416511599347119609044593583945808257274332395034560797531433762051054343751987764234100118824617063031579664256279716861749610977837664490931198857632507452055260643036498942701579913479564539794399165072564208980264641206612358370857348992927149279420358594251261120303582710650501825094662684697243495004631915576624456575432521122960375704199243269615542200262326178993327463353568463934171067969800145704069171692376747429927675658256617023091128481329952323033446366910439450223082093646721863817156528795054212509211987217543927163002631283924330947151340360157598962843737792667172913941408487355050343297228922355467241934078350472649159131448434870017849991274603378193631582752692351748015441981423258353665633871008690867537073593836770735255489226431189417841306011367633466143867024735977981249249949599333294548583443971921936241819879498657765370925691921647785294567552840639293769434590040377975752268691740737749216218080261641410779035713652019187871796021326026594131462113305808235058780559450556413929011142427100058666271410504461232068462912664272422611953140438903082111519700938048963326197964943222458781771148863762165772721573597978635341565713306624397625714232777933801671730825749883286539009360361856097476190536264339779433169846484465879837874965773903368653365353690256954509423475070431053860901155762414062993674752683758227323322904736994930802438209373656821711596097211382471373493122732591364740858379383933706531566995920024139893518202232196567573749869519584621040276707370940204040549681799687410298638485929773980142481121092225655791946260285345197811263125106110859076958800350065510477094407071329456278513416823263503103228554272921752577191511639204288702948499163534316618730618889702321416418440588059799347696582173182103832079502470208941042911399314256104433162162888422776908041489488704670887036404057303786986408208292305813919257513767337170032931048212205664195006356403748685226838866533128415980082678436651982895902802149513927447911463266897795630693283248519391478382718832205690477319764080763966767566076273379511132738788430602842695884114911435210058099406524978041941015734942341141246482430357820937102846432056922682103252434955848083587339831118238818609266801557617794769203611713936795528856703340416243611899051951225468859235382431844316902993017834680848769657760440868410039212352271242920752058194461146136104263972877235152161205087409338062055693030068854016914636066255182145998057826258804996190194930467791018635221504916336992607601927152296573269456752879802348393781494865905061759346822439130033479572956232633423786689473082418661489352392728197842149303684032831672846190006698726624615092272498126861686943984578920142769468506193598366842693830276188389668945926457904677066119071165553520959023904918692144686155357403347874989130764763012965294437183423837384954156756726280377003533504922591152547773482139996735324173519717020137993334412165301324722035180840414336054361404703515690849134281685495059825307571531567684592909845749276363541596124711840754972514063986561472986462446830761187529133595694676652177394943618319569577621930927954677165066070959283167099732427195985346281087241519376827990124407804237590933843143632189533980939621164894295314270942003474895536408147881942440760100107789448693770773879131135956284054300708709940589332810368729231805784477440224489184538210738849508311195957533223756059206636660961151139330199840000339621624855283768160925162523261139365487123275719126459356867566317390070101653228616511676276310650114595535653259706350645147649903918084142522507960510001503067697336922602334777415228583308800686202155475910711912793696371521260529928391175445174679400249847020438348336163785816839977797014876401054518745261622957273438773188039775736558850705079175066342282394269159633017092750584180351101758240268026947177195597145651760924979801446145362001029260743516608452121755067312093576792377017823024097789246091078738049024278559742357302806330559634084867432582853574330048569989091744424768367082051833384830239607231425955093341282643317780610847247918752455364532343129898844746862804098246062221629436269452492352697198828265568860494928160316531894932726424510342123012828396792861883893534775863580640913059970165563004760071549400306454192821132076342293972715647717738799962800430235976323907660730066758624726000447277760729520793493673725582985700820217406165221913772057335735142050189902073054110542698500186425157565541368527460783827688828234766194435021985685100987711040525735972251454724002281045101081156918083736634768382906217954514249163856250158557101587666738660857745021260236056186435154811441390829458902038038445231773517078824494252339599565760478058732235225625607047161231040081815345267141672337901743045669525347643420641541859705533667642222286359337661552198641768371789219742382643134195267906580631370457393838630762978367564104911844657313428370865786966129214892491024045642531602213436578473047588248544762375779030282068237552181285978215340733427151010959282351350482309739432965179316675874823522166311516602489417643780889493595395065748130590891724067223707802725014252500660558453053435986895238754910682231143465070293800290311866970415337671848561254071354366711389772759692848023328421973213392562371106651721238371516699544297182674416382653267619423563761878687279874234418301566938039730749517329136066263069367913019513062155388211561155448200895956290667063160588717609263299735891227227101839461227636531158421235354869790869756736925114848766120545772435443126280027381288243317258349485399388764045167870545523850307341362497211128375263724886243083593008772508085117231339571507812687424798595543840613731938543836106649259275540657228796428346598621573444630337725539357163848676748758556391317236640856429916977201729586477636905552151370277374676859188793750244450010187641734006974624613193906280925019119090824601968118850518150172143501147965213708154907122029755418785470280321431692494701457973184603498753790186646053568906297448108863760796412266286870369354603649142353699452171740368536364656015653842185394920781735568946459890976453637600031301585888227558948197856327579334673100910495898126378282879025269548984746963079388773593395081623259897664329776615243965908837226292549587473684387932736917709962180638987171278350598651984342441035898527794356994969388839091563570555624680607650648888875208998227863541970614144726160883469546616583795349459503450731303555404117201578028144402552162198240339847728600748459992227135202001092361544497337736096433811821369642355931818597243613616717585882532303502249850328538344729965359320511060200393476418184696187489263916922540568988622358157380308938525202493669706841577120714831241493056521364677506068380989996292271891248530436932973605066720157906918810870722833707185439859800204702527024150325702860909464552468705386991299252193173765413176256684347076056092774998511941811387672013979565840413348809616255530816622438242723948705667973432413581260831460389916184505279147274434509138221535760089253372747154885800408762270397784492820583672864528024350381275190813150527168917429316696104557207462799439757153125708080309532712653869434369343106648662682022884998245601974672960726670830147179421461472267817128514275254253236986733223252679380818208615862235189421302447327574009768175779392468270850804873384265161298091317333231421201264149327638169109646145273640369402253105501803181363221477516209586218407905428590982769005770219724905029220885225895762457630450077281705334005874155600059783950284523596959926934430638915804985023102643305941914613696737939203331323787377727999177424886210317249190367751290621057560294015893410748480407969266754266138941326770692078870410663360357297408320850041854171448503715894182245644970577968463299017349571944592980985663484450866869729466947105935049931144537428308498458382650392080304776652877900762683265946154548243237121004853920623248804185362428992725505543551926766685586079740426143805233117318208429061880156365138709141885006576079371278147613095284374497412030160656597970762150790759838889137660393285688322951336566366764932098198152110328472552649377929588993374986727873447606586844735274005660959401355453662274741760952666285622462345105284281852794916005047708201468691323797956877799184982652422310068708697981261588378634990514073856950829161426317027402291750415017346265441295445773001808384644303807060232824959611790609884073210404724711352127854042440728398300385928251128159342776121791995393293936487279557490793175717174092819970974541853709271732528142222358792153925801633359361388572444104995200474314036300723401760348917011141810289902487769546876148979645646872342162987961069313172155507606621667867248213642288741293234840671888940465465145380626901231236217161488010752857192483176402462510555582361101324179449673306347989364469947566055552946537127016874814410549380280838182018954450537056722939014830283496150872647293800586235215704554764823361838372195029568971476081408286659292855819287127427611184605596627129949829860307806942128571495773843631704285444137209905764575529296678004450414560236120434244720882283143045766796755583484606729510846894067874666503957815584255650956633257858263860006127257793319785060341992435537906507607605630045353588297304515297364808098899430451132560536432769846823884598412803171954474194823377228328311284079855468426800995684058787529268209787799388202075145695141803489463655447711559450919101020382872838039806509653823330320701173124609119600431330163254481069293033173459934729424219196916531125902278191272338055503084710189694800573437357431337619256157355015609129663990480055249113737874896842665918146687204077752887767195522050194723902902989618303627508329339796203828477307351906961955741995970520088338465683102346654613639628885655261538612363737185525406291092122970394846725837244589424077290470006211009651616141893144535488126679468967844676305591198696822724190536092519052823420214764002163364021712026738844397159826136578152247503998710343260860099476916335485582292492998087436936808894756616079614431142706658439903493226065791817685579455205199862294220594099827434911719251382287869715902629921453751095644459963837500608545580473761129248272417200294679892630035607034484021042675529574905197204800844273978678818205958156955809331848011616759638232516576800169109945290399852826599940557604405818666846647578272621039171435502611337515121208205317543630729612180581188067754416559372509952190596011788871284382722163731170642282036302907708553469267545088493369442050909983213305882585494626535913557710801566501403600341433891012214042777724027220435226092310414658066602665871951780562414556502908883614735689679034019310048234906624416004098952514211607930667118007071072686076881984268636204071017460358035012351679142402175480938354104390169322679631904326538482823131616347182011377655256470891762026791015872240974029765723347538005783330514892530351964426947340503063708161230773722700551989178492596249907169509725242411676673747265445634725825783109273725968289229119844883101876823594300127079369968926513152820588674082572761755555283875643220194160779566765250804090663078560853451825565109614246903310235353428800357426426039780282865937680485625994624192687558277232336329538402191333439506872199615084028224665580706425984695027643864354224220974136605156530808859481844254660173074029317186204697991352603710199786725928762588373020321895164974341937134054512387086425418211927869040782612859739541898337120353607424563861140968748191210013042564423506215536436257981573354500197447409625664070002146900626723327772508011128640784601030937536501468548042317517833448260875238547685191077934870715033755713132167465764046527366285394552877276932319810034693855211525798929021970989847019350317581182843201821359411704229547792196803858973085751910383513406977066025648098499108337108203066302251050652621054825626017119279832861447242425648737732490881745709835794766856061932821671894060910322652292447743714981852889831672667327901575742936563468768049531854669001701200067474840863479458062427906271334900954728167706153624832927708918718360049308491851942377938778787620538627827403103613542773274890798537076501184823693419235995767758319196678207004184051748085412436482924005237656657891755229920091097288502953221181228896689717673721630713678394936362146855316333230156986482330780322831632978607754039429285689912681574250588294154515066176401631801945569447626653966819167001716462731326018264475579436371983349947917561824120480859725405285412464135396529271492122527327396410022640567325594470334545864524463263729481632444841805056486855947548801970103307275676923152053761971802696678802968925796340178990305762125157442583105602510565618641221566844037156841041407476353265929313762741677626188674286675293221031014929643361762626474787912102362670973667059322321762286463793674027884668012834638214716873293110996075411001807386976898541168266583293990801861476376513705864478233786737408046261979638935370279344076522049690045878001309303714520957919513097782260000871512904278129724858061817051046404256924612420009009978892141091525742011651003187354213141841835184167342245873355207858700937945503186966747942714322484339143196527390688756419491187438097787855755147021101847142516690871236325584688247098900660410211222989313504127763216550758261251486740726120587975877328605565230337022862929710072574756879449418141751839863036849471133844663995857242977271611922013853856572162272482558835660069533868902103633813715476096190990164419720615582830592224756200260312471445409148884163924621996397014159750641712213234267052706238886259949945773725701495426067901900332499864543990868641411956541044102790013843131534065547430794912199589422840596114376637532388192413105056965222261468755076580454270824386858043884546514282686312355294324385449787791422585015908027512629978531740733288249184513975337522721905848809186775596955857836471711559199904048868532606684036196769571137824919705499095149647780980086022505022150879605263612730346780905922681986317731019372232722993401592119510973053545755396179447855370153704887030794032952954106844147388066783589552244380159805766586719184821972551447490355487455506830741504616872887172680034448040236897123128890738777901989861067418727167642839273985505756471732864548961444009092892154729189510627016366091612055318052955823794209906427659423204215183044433002453517620186566319444615739544310155762794676722367515737764669486117356791559309182398512128620986051918100999287547184315335040675502644464943775854607766778841178975474967610530193868291061646738794096215639843305878484007731383161974291931828488848224058273287226434106261430793479482466559076172698288491332211776953166226386988154251940375171159733771027097676865975136118580552669607165036036270023104212347252169048093500441102825665556487941599082078933836699636268382538630906590537151104487397459660623666312710245480597326015406086414715208192951604405841113139031637033498846809774269704977771266207977096906126572532066107153500647822618535406439905844811035413018976735385388345808216171785543248933292759716151370937922024309782868803706751876006860047534048244251033767384363126510426269260623816903282455176342472546309086884944698880382916428895410258087973686553762522362784366589061116094818287045242059463121939152849937285135874019997065012686110014609456683719374790939910961614660203430826711185569917240389042228791744386202024722425695019550904331259263344350384744322867477135720616467423276200322113106047474773062924140952487865326992465370155903738962860555034003875206574021648827620657207887564724797231696737463934132303896336877761070395042941219511689608778013605646347477239264188865020693588542579256739262106081690687629152544674627645289440528556460718387704677266508080013966503589898718112694128915233123411449316064043711935571836581903290972549801897577434495050248257406259212266685787382768615666307619850518284915458985061911525204735389806468802833499782020508308316026203215883094409411733637196279484502543804121348705246525253528103754858133249851087566903577743930970898600360740657351504888503916021369066195131510456293556155889890757427713831351473643937372603292599508378991925689558875044866745262759330510928723298486606329068071837736898800890517348808655238015565466143226706724576413907357485218501315361931747214980652370624514795244606925637897889242143953271281695794551136962411216152635461272641718525590279499888277046888553626483051170576861607101627878103269242693582108793862285099837542497090504333783709296998195901482549834795262882209050803418832187519963896388307210397783162881072677276082432903550656301984235083976771624947846430181399020373531764015146294171630375076687973357557989385193255530502386311827592349026692909786212211955299254322115101456224068339173928758949038102942324357669274534295798259451194027222727883106580066866907342292972321499020564860515914305061481714968991257040792581876579695013845106430543991752376224531881606034649921646745694975974271004643632526978266434185555543920163635695885094471139282980609680629880798367296478876501461754922612943464716318101982652919951354322652886094655607377302137405375540263634591541149886276457357278274925102683853862272283625697908687592549395494360084100298426264901191179390036112902453501152204943326127324936610710804673211795200492204847766413090379945943056737837285260613705621698502921683509285860743122604203076889722214567654121876443212339465822970131340640736020199733482191733663220318276056309423762111390852560498874494347154803514252638983505577701830408816556290817288905392745739804368777799950535902159989266323684906502344986890464606508493300109595884969373256477503438367375772391631469935552024986077842308707897456427391150699283219596158589185658561420698568604380873440432098862266911477233392668052460606492896946489206796301027236701525595091403367027108155427268566992360361123763823498661164240124023948128986873390186820197332742497711072512365792996738022209479143071366707590333284857632328662790539308953711295974240071963577733419191751937292866942906049629310936944624774442937088233916094742271324298852914324157028107438088975759693624804668475878966821128607727926607406138330336185278802599218668581614265226301242145782710588566392441764789285273157469276453035577406683838571713955118895751047654649769113770606465875900794632821141546581768110153387282192009712644894792398201625333215316121061664749314962892304139257252105039387112135810717372439435928165195633829594825570955738017299084749344337741611087761225285820625607256144629285900836254632869447745255088700717604453009021825163266301068896657254061584929050413050776139472041868139587080101943375647099843227343568993312848055664986772091423542899089366719193369617184864126668016631413174514161827022132093883528696316647626322844752742204505228882462644922029630484399385334179900969166819340133124871525826887799706690068970339298432569575532071739304480371127387042326857462032687224788188339012946911008081017539960183794484485508697528301666446769036997917237918230496355214079751622700078788920209751042612535810078279648040285063373432564042459651643246436077610606538872486703102586555503929290310889195502252511606230982849349201849277893750079364980487462195104530857765241781233894197119986781036608184231973369922203388652904261767181797606663324572751611269329691717217699053367931316854572744978408354025002384763872936220285491849276255920739100824149705036370872436172587812893097426198807668608746736830663799277665434935729416862023255179436522299621226990363682501797521856848277855140575749483447067140497277687561875336826688288820203989885896492625029767688584451430592418904136836344031931456625236415766095179381221926818632090097243797139978702274824055750876752024111962324359351931572189608875694481843141588522470071973978604231316715265179488154711018076823941112545378973081205611722263577280638406051260010413160464310120047425569868349563426819316517565953263688176484095984757729342606334994547280228062098140164082140727936420064322929507934651474241428798365142013703287346775916571012114506308098359789967008967307244927706935755694391166434885623285919149984366979886173049171431541006679544242148775613492169503104410989684063738099848185081432224310304004257163427278852083981406301462466602759846695052629052220890989731960781364686539043666111831005022312838317982299106532036647732080130084593505420408841461709953143317671816175376639320630968669789970888438823265612807630233493340166685595352833278791635781202425006502136674056346432144576906552177228948826876641304357090086030178964088350654422586765745472802235902590241030982216821911667291950911771259887966028874632544956303467364509757385107996396024845719584382660490379700019384965629640432270731592101837527495535260395511015729865910981543856689606272895438842354051047269291374649271178483743555680954352140968576138622169088893196411895091644202438439288626222762924809517460689759533459823366969726611553966790123256779891237260332031735897068004198774782482448971204983522010789020462328476164202236400934071276727049444423527645106889798194299192390742087185095816910107367754137089458791302355701092538773589526625502461796880199286263141164613995558829885624151799393880674449412027454562191043557572583548776624053598283049765835367323815417454238222046353720490253414666538229671873213458134409916740951689126839005232110618732764956334123450819692680490367043927319820586856851006545172263952668142647757363138217003189818307328615725796442209805079836905909522193009367360739845680896397805151990447605331958382298997709525696765458955154875254337449728880312189706128811853358700910410268496659243171569937194779062146620654609509812389918211367378265377138661618718826631456674384858657337805303731254375938990472572932437002584145302315771558830146818495996150516848054031365388223536879019062768962500847984558746426840535252302322379402064428579024457352435120831048044176952939979018621968586323378678028728924054913350791587176974703104543311637736211027739806806720872312963950243994641101737433646496888531454422701294771089270316926528234414138638810929902517056766399064682115814315456298935802866733471176385673614650171746236053028603049140968828787925727675604328608261204026777457231971233460883202676441482329010992237516902324553948031108393433066821982120253093342511642982289396219574520092185840797456855379839396385674593271968637915860690689144117034163499907338491843781182455669673278816284043852770225046391400653464573330812160711922352483512704125097341157059467950385189890950313644184352632098222587872151375193035837465345426840706443158373141378336877710948200307324692233695769369168554238371690347208799932355905988249956335252866198214808910408258833221208311595368591675379834362763062513946160355202046389970519972851120823701668299148805562582492514230286813945074438337715268059906474515071386265256168021757075864363216164972522021632590510126542083464110306514635925362912967615693057976356201812234415335402421652967887851861178908809654639175230882405336704927238280535232663891447755700980662945703213952395667697183058751497822352895022527011519366252065374292248262257956496155385498548811926548018480932402372917151158998615771810546316900402319014318614918334840768630568337152747081223797741005712292282075075815201287529219085760454439038225730534538922067591789775967341868926229262639641673917575232798879116108842232374039767201932584037383704077859958836804402884752824087707205234054706196240732090925425232827478594183916524701306339743982699971245579465356707403736218194454593330966072186217041381132248973885453263326494090567219307926462021821223149757482632904232472936396223529340989970148934848112731355936489429095148730583623723972848832174616850272900026045496829798386466974813720440904716579775397183022626158981566676804213277794810496840287567355248390850313074009722499819686321650449462128493057743465901715049638115948129809456646237540623428713754713742874537041861313456447115700094473485854001764909946387854938281843656581916614774398238200809900013468773651728137104883381633844618935755523799923116670196732165525599954017343385869719159114135009825916141841314816703049419114400917106203169486120018956900729653048906702527811772192896035671777816824432685728647593678622747045083589582450123365467426467079431166627052108837402743008207320981381783782167077937338631671771169862127094616490298168192363409829169359803131822547018781406853454847945763798425162765700199916194400667648336711282052153310605636002181605209952212524687212857258757222668785023213800120979635341021788826631963840768607240749375621606655893377308677111241233057440873950311349247115982616505121172702522957895613161558836250660653537873182706902432091684952015896833243587460800113597248722017690931219852106235598951921717093526487226995709738988791897353613922654689958077998302555388750209866625708822498462591217482901643904969750380861222426596482752349723886673045490211038311311319265798452290030055112449715940151011974035852022096130819435219905017123881425340597383727453130961023819571026809323315016378946012280565354305143993653990930485968962885844575050785644210338788397784426740281551010091310000792557444678999699494601136074180446366392056575867414942686764370235591370766504538432530813841020597104656774539877609352209716123052806484125609662292089333077597198692033873662992266657419017254322965193487275325612429804587574265994954556842307561580819364407909279539455768081130656940358132470340838410359116840267299283092232569711419022554385659534402094134181741455360632032681678866173161482053105945068214814689153859335314526701066901361519493399611543261758567771162472777070777250129025067284683020710535957678475318745433593324226947271699456567532835910898402706402404897913333306857784421245471010707670086260663583089191801887377523636828947017768297576573910587511208642063379475678224795090670239100839541339861721384883610394238327575128822017075611669908054296974744936039961336733111699166097002278722678705497296320271687183117014223804343963831415670757848601889189626750272249895532588050675356802886647766907359401327679723571330673765143294181147156925789661623474622540835360107832720558403587136621520324484282155331873199562282721103527591216016920807952142343969112193285613777360194801126690367112240560219598985560690398393616228017520005909648127136895894487077757605189392313085519446371079233725422905355199805190131245667063219370332615504159287656886142185822699920687211077643016121903871140523591942120802013470559445846033774343100036594120093930927650511924704300812590242976620831301962876043592425511928425420007482040461443464097153599795430151459384212185753953494713869317464867363606841521545383707488577599061679756481177005271564312529278319169086109473453133347659957659047648545383087285470283966003345049160499994045071588990959938031201516853302137181241747043577344407087916456577642668810447457132937515846847247036976168968943841100580537229401753589070026257087123033245123833897852014961788117536792980081302698684182784755832317570602041220912604746559417688229253170092366906604689023662829681717684496367302052825787610323407810752444044606616453535346413794867171429533407954692113412898731683609997540359108557925542205322346770247535526119677817687827776227212478865879925981288129653255843793304623317486663078250022597582323893656064039943154090033959219229550785447163391249432332958942852277173802772524188416500921986034765403581347344560587033303199990385104030894920076888272732929548992452499782386580385117310872632356944453160882471238960709068602674847333121686567909891147124208116962023340320468481833620838907863765087077748946538955257405680655315763242139143468684866683726770540841363600727488539363319949732465487652899346100617997258902509587179617263736483779075366860252654552515544065347159974893392555005855750907711854050870037438315572156303997086120827389067398269150750520341053588261399762898391187573059636188116655413015414239549078471542468015396141959578076091246178453932622534633341906363076399642344820471333337136640881564758500194096435953392496442200639614972373120077267697628217531553796998141134111864335787459556422422588549037726991211643106019572873922637360075056990885267655258685187606631957260659330183993812687047298944181720724662999557484414797539414189336621389579229832632966975062090358628510777045866955577422817948947898187179400410026157670251443107615679550952381100527020255674753831255133885115036184994677944997251919896685809445253223877097389545993662129553506547893487636837833306330149359671730088634236857374211698091762364486233115718945097509424867429727814661380662920890411747243765258767441427025245188284605536187506880174013337527428300548428592188702651427126097747462534283934883444360745884739690568900631663813349163264639584677569196299944943834644539757146157535620919695477533885035510723867087439726824078800152609718611559919374600689114462919516105073043584177446341584155229037673598148562086671580391977818053766234189075221697688352246107328417696553007601962895573154677586904677539023422458224257263677351574879849767567357029265445749180730702251929799587416729090690139476468780223906546133974941442241972525287881566663121553389404468783334901716569792278650932012072625951229337564913778150599144817557474938085187226152097150464682794703410698620086781805741110546030943616522090953453659847684603251328177947642176046474187392379787603171742231764895073097937204537925689990253395977546420670438228776373347036533869680582850628535094774540087056784023841441134453862395366030656315275765748699320010745583273242479103120306902258352194308929125615387617893979278679154927697032933559603441310354253835179233296215616352266455042884346693894715193359732467041199987051278860336259526283200049546952500129902113249544515785019614172370056330656785795023295436312983000673495334122861394725606743516401902887039198949764165706719824812594739284547069455278789558925788919931410838608089179812274725669299729152066707477151266159985923908187731153252754279633538135145119160395817173909933276253361877686460328801689543945428779160407701686671660019892147030477181100835510338516313505807219576604252038502000126931650379032838511352329644990990882995209728769217964463637626404780409428136253047245363137223187760113730132586757030048380174750244754773807120411465359191384236898336952724513364129145089791302981191997721378594043416684140437597164532545878768768668760330428291435194892720691115888274459712901714556721698591806676664192956526116619470856787549804296837321432474642976003518367132955254336536868385272223262117214349463470657460884800085565418117943492691322993139888664325116870961655575362413645829561571982702027311610509517373152905192907164491627289388394534062976535951060740532024907396690144861774252044330156368395593444901791091257861498437793003052364230575999957304608347733126884895587824260012637539266737224461635742171018611948452699916576153415760470895723404093620402427136118984175538854929831697095842331192210889326146611208136076068779012506780048635083642293648211589254092554316915413418221879802400260817817785792328410338957423192622604809112050328086915717549130343556335117967656718072258898785083406203038517390454255435069287954781514539688949437970092186139236919269354819478749593852985860377854232316621044374188174218595172093613271387948114596747308051055699837263536112001851382222051024257638522691507471965943178293468194339886866250210145072894181799507598311060272189570305125777657307477527827527495138279513580619046825110193246751603062461410443968334709574486561251789764358492521522919519930595968822080937503580726126730868563495267880513226732771071441741024180920098713103912017803291861616858031442678108774489713577045653066447881244010891708199163255499855364402754200419416961006143329191472443271699388711795641855914441220673196281058649654077117109586479207531851708336526122802946528099826266427535320863665467942955028988531317417574410316483546953199862418407110297296264286729078144631300720405057210853748488675321672895321457174108652093010467793166308253595027928774037430821714060129832073112805277717213509850051785433131766845833687978667026722555592248477409481328719840257237271736407335784687405200877723302146882886956968484176362401823889880469344561541141702067054667880824317653484123796507986310228564481397583817682080990278118476454850464774022790754883375368719534862236451369199835492303592840082423065689942754907576863730643530804872261442239642605470672120613095307885978044108006966593847764511363200221866223929551963163783891494670315141519706046710306188192124131208207646323989771972624660293240624368260435557417183547665360198824678097544805861456903162468770433270482039252274908241965580505879333922996466173039229114260235377383824544260696888635978140082764627432861165035804106345183027600731273027659013514565775241143964751023505509240927431339991705255379742762606140102907694976085412589575712618614522767107675799903825141140609981250280431839127324085022657542998540686959236138888756370071956682573595809437453258096571417362158828224859163036871315639431463421660658945813210952761358971215963729078747623015757317655432831469913486472027126009617242199099682787946469409598270811653105643097164126852264142767539379156670070952224337487082243130293333185728963690098298331734454150169236148875814759358704842857919850483755361784915749671267769633793444947035646508106690893855787177596325520222291683314618088563582941224156287023641599472693931080546206536629985275236723283097172524135063068601228796383580829417472608475940183224187035883009219674071834754254656677433193378520303191935254023169034642227562898086114439106866237348098230275649056991589812320636217989529860295770208318923325717001928131604212432975138232531225303405061314780178784588634035941829580222498803076841828134222898621056464316865080212246380516658356841926005417865224415691457957164378987537158087670377774482458190048898097159462308783219949620926338276386986887663703931741811000046479847237709693155871669665191135322629636245877320450033785364993153123486928465196047481321464009834962890885919776796272137288211089053025704825491510748613350440048840841952650136629923528698621699901332541494084746229154474075355263101710547287110765871251074051581126837083708321087668528674226016294073625673189071942949763858625377684872926293677333419359960533809655724199915151779386136273958849873000768798904789918526745680281392534081489610309653653456216124133533584029671456869132425722127424518429620603461697405933626006714801946658274056861590054644271597595405474218272531381927948881665432388543395506783876187534326633723585744721655711819622640404476844264881141001365608633585127633236413509348262751688882938466814525427038268890972463019183980982333897838965335085509571630853086840252745646645815941373757559958526663007732409138521597855505042610731280876992977739275525115812520115720251331564761632985158281936772267231886162640211746641125884335345418577948082494585597487041461337736119964367378234232839607273465354916470200812099932203149140558336416290920343942252364421930363585130561139648811775522901616650712311212524661033002714211915129548480755770665332273664398669933647625077232367007895877717544842972879722845797590304225147173842161446454651663527215557098669223040449589867726217168451402385907159565655057579166285355914439071471995950210729350795651697559415394325045244547447818620326282265638414057326415504087236415997498216523870017737804597820972297565538509628196814951431783553981827334041843146305622339110534178204888535350322576134014348098627575422704494735627614245210407085536709986193722669773516949908035704691357223824534540377439268581043074115895517961672246879168991099050276713357672971812539001050454727959531859521550264599297511820966986551659186163796687758156444188426858697273636512547418608304169947240640004044437273925619429148803390713198973054478207993384851397793106396707234603336059287900702738372171283620710118036779108013887657186860598098625816574659656035085726018664548889070868794252984564840878577363123309483793254473610908343727212502658215826961255596676299091762291128987229038849576202896249590096487403018927837402597121605782493432472464685086718878623338239337493424587964348071548645243501744594406659905178808401944276422429324932930998276702359939282958146194720456670979379492359677615390906453638478180600797657004443461618760019763363739919965405870484469377343052095145938095382939959080577268122608639613812896775443330367567054742013118364315218442704949471545343881991148307746138801565326141944122456997375010167078334189981409442413090933177817140325426972820037203181413135428284346586002183420388400375265112420677573228404302018838585930588162330966879150024090958379609003810887656331870659800113605936671450478176979474977627557988785767948194122363449257383974915888064352481570725183191359540271895934894213050329286462431953478032280229167643895587503658556980046237874797524827555667882914990037250383235617561384533238110142495389040340504833027648207405391256478787673807518875447923544299943478497981359318871702017248306502947753227266354744240189496409206564265355280722465043797074812114746624854807429666116211167129140506148871253202712360679752105372385666488423692460435935802744819060022787939974377283203440576465265949227424531123756757703602484587911735206097517322143200663679744031432503696517302300118628826074448129555802285237518830146660060165956065819037994342497799877307047115805473162706586953429851608396223137010541472014620948611427862453439595471471005257278540917280238507834161008555936035232439212777478240818609257141306023371027188425720200420481194270074933147209006837939248087142156700585773812709939631979305993540861746350214094227837056891612562932558268711636793786394888693409897123181156822867236820592878938386874869798912668205896641606542907306113162707531667766877806476018131056078566650828495590464673025637996243603238929163241442232401947595997935209528899127303235169173558584834380484258091275064929829174346084400068010671742944753081497440927520492646452931956006285313925434249923662168243487743645636517669762908220000453265708749652921516859238005701964500870270882610792630057425164400909295645206424384637973888901566365110421082926859865955705570955113919180049468767303903013121168932502112607183962871652118335694330708944646740205336778682072657177789410896506503594486749712126952316850889995586265938623217496640534098223187077875814702333620622701998302131182167729294358197526257659160158566593172964966696560388128866053483809463673526767878134307435257851440480008062385799762652039530048389173670271073244153720785173637499184820094185197908479831130027444059573140111856905713902748917222262098777326338717148934229532019648284212047672242165758870632501368378869901320189149803175270392287202545496473308882299192428346494999001506031392719551140993697886508815158221093021538491286199197678693824351579808825787927638151612530950001645652694681022011949828046211113635736340955803079473036974912937566264623350290501197819041282220343237812333124515283372298985335602019394870590132647157406888988904496457656742286326905219948571220432799183954468996343076872620028412135750769810540062640189890059755106922729847986892659592689420747013001804647273843489420050773468769244783074413503678118390819146150504492997390793133809513332520163211213835778573204495580361256502118269651652505362481309000957534383620429477462971379194006931914627702389190106708484769397902234550535319287955217357436216210243957829196299256253687031725275388162532261907645799212689258476013368240554813249634202590707207471597735972796995888044200397277109462512230341752043672244206331490311086715022855683898470642068879823062926502428066236079369230959471281645436014819746652595177931318106695086820749954250506859144945020678794111101490883903798245310588627211364859038514563294789513602999834907518985095858957956817341996798658188809671210146806852374065480677455968905255871585888037207726564912473542381270060711017621716407965050607382035871533193676895718857578920532907903641058764283480281730845717830286952731136533293371484702133488872424526811342993043246490575537341832516629087995711612216245469706844473077228273233291906413797569708218297913456400435221590834506372398806133954651079537623771837447115391045725026044524352100120221384803571902309958304922169595403906484432953022201535635305718800485966411177282711339256717083131219659208318701603008865188029174462503463656762267254086694338589291421584377476547290336397436003298101837279908770502247275306060582364565092921027725252946409951296670769535203318889496204596268566411958713675361665617161594250375607798044362114394861047168872468783359473781478310745782629289867406935843234941391154528208506423535412709141293970841604280566285885170139646296391453994392507851337270226435629441380542461296569450317491529122373967659240808063937783872639908769113866515210885755562698244888543958196356143538138269695988396519440596823665655545999284404835915048495854641615900754416426057569042226692024854753970682327211743547440357995637848518129235992787131287878304152067358273032070964210128935944739003212608591132748838356734014693843211781715319099250279533390615043028527006911897200697048321751257676778372712331938106256248196006682095109429689397423786302175501190250061847004743418520800484749259392366984239600081746779660140392512648590300970589341052450002725170510210983930001979805465231234081531177393163070989094581276484233087744337113242244020440964808877162699002614649354990165393397646816929772469720550287007642194032968481312805106641309912023788419021284060587741538804659426748312329364746312367727386356674313128183096590915780403115508144095563471305940456326360501995745083367970338936881334702169113287296095998133444733581433722942937147367967353074158583324595486714344438174346091826583740574517512554342683539490142253665528518773637797978443962184707100690182546290471855067439932123255220448544103728067467276515652408689518869329998252207060783186015450508651214327714206459399116581176563344275617563349342167583778759163433711424644869843921730194341422654397087798090633714771438592886530857085118693771705863331706183221717415498460753334192543762344206321540194788084733526148715400997218296087511755605298644715908794285523209901896331368960580560864602053110914334965286465651354938702232257005731964667134660285343154067485504401703927807695205592114592640017611852280096855014872209723019646014756259311764022765964045891769632537058626846268887085176241391268423757419841281346196243248632205495223505863147443533011336417361546929593291195995095990334972447550012884556175183263264250776893305266775150818229927837242256327956708140893653744362729768117379591416743731645930319333275175372607285063439591440249695499085878677566627813697886041193830454530256593798114899261742236858479123342686536228282473756679582936991842140464799782090674547891647843618079616848514847991026568822791974798813488280803994127876272465373680712350024009305511895109667461911208531970525858060037444604151137305655043654121042262869625628876331154118246218567928861077245757528780993960501073661703840781233041741737049859229438066540569677592305961942587280088336833999771962011835430504950575469424004334857211118053903463119882709758120073846974707268937177931036906378039998350784313204647573907814239804581191820346380363548054858872586720752866468277442770082600550554932209812259053205044042437836325678597826777937255798470055787702339768586731793553309351021010711994529153712460240630256681793974880527490798932178162347220578417455787885898428202696809711120043237655468792509718140472450006177834761994025645121760689609009880177993419226150586940142272081080234689139379517473891196520087443996575915012030136868195161386813345124503012276616433071716501357714867123166454209031810171321506670955188712221528681278339772389633417222148536773527622143970719545019779894935223579930905128424234360974104648601767052325910364243533029534257346902823230657513992241388135437854488849601753644044743554801709841926187527043695479335179952450452499818938245051758513089371411248472550463694050556588492670040478707175565728651755567244713755467237451244430788642098749244702828758706061755772941488737309318737278728598774125373764982982671465836842825915703832790373224861307444876474760691764141558034895206889694123681800297731807302600795679836466757098327480298644814986022778412220722076617547958463098235609805300894435061991819304787496592108306592919410149082887457231698188835653820134943065189632977891247210313500583426869973661811670655473559801447013301459978400717312755820145254344231168239157755484124508671917305142389056080268386288108138406047706893348457988061389003135684477441034094113675119200665782200579575423481803809520684466646928066810267837177001038582011209097266969117939199430554044055884005877286694693667306631182577868912648857630014103183748856348867106744378434463237726082614654010561423658347427376163601181299229850494173059216268442691641901005601789286314520871925210821352013264979805937299855601972472542542936408438116472425923385120175962400866017751053599632226891584328168567161423143354572267878477443962147614176116845003281378447330874062321326203257973414266868908015069923112300280183730890152836748884241883235643159946674506465953688747055970139329717456567600502771723921070618479579190943418975494044139928946778662888800919403688993956548849780678658849536331480968443116742391939372732006110924054715626449690003477578468640004230613407134421559548357635255294216325444405986479233310392208465040471944890685229559590284061328501623015332678862367064713947088403895321921997848184193301039522154630670388195511733768964238522495952693359640681328741883898666142111630539553116242627987882491806438009758007105082369855930743309543215146870977020894973261022813219138777964539485107525917982239059291797292320471187528745909320821765254890056739170104257635974745147280754608881055875168600432576200504036794244513810357881695334364950404172985586216033116397137121239284590467521930522859137255354102581306081702513417714204672057277176349216590787461244369965212800093759504598244043999543743443786070353223706456797414016637965574659490131938171943727974978530944504249616985716847745301340835177390429378505278495293430600106053618613679688145827547881931246712536024251259596595344771844043942172337029072015955996052260867491670366370780710777600678129213753431464719115780385346263323149550108822194333179431557812972893252286639806721111618678138828848027443465859545005592353824622021573434727592929172025870320570577725174857712755867678341652540004512368664820629278799319294266549619906237695320173104520640668249902115599032559348930248149185961563694583833141154724428627529508899667267986833355626020847580502295822428462970514277682839493847719420838003745512259066968042409365580139961396382090247666283526826792847634041452492512809696339313578968484248549337640529816284156867692029820032984658558046691641722527907121211146218130125871501478689187687583049939950848824519750454881354555223039820840718123781731596791236850215743613953064050099068700608482756322841383330490320320009678312004797667184927492261456740610805954293688750315896989376584102319900200377546886682826587518269298080806471924226931903980381695373596084018893493315785575911919346731371726666028946337867933266790439790986649516468774248897588140907315745937733860335300325935008788749895453684761069418979562940050334558271786088855811561089755276826141393737543603569201277045563962351262928451912778261458182284762962927383946357193718958551082068311539736852461684964125521053643964146531546426200360294906615001336407667797024163312258550968093155585667683400560872771375234542727238759102504014616396915240789967468685214224335169743837994301361860647762388874264594603933019232345796182235226021140836295951980982948976265277087658209382132119748500294258264252929759797868108833582422229275760538214768788475876387525655093244394541352220398423253055181593498107710424976195156646227352830965129854078110088086746102674619585062107118974184844505766018161531203613636722500075864462403951742678352229610421604430768687072524178750557491422760270986870504938765313176465081942856506081767801792569105282810059574410139133019412807058571933417225066023125773260296148654593500277748040438771105588755947897374769622676817394478690331141337262912188373037256222221193683614642470676591518309456259949917092650043163041027803444021282753532477847441725398973956800991347654279528048225882399313683474555328211338472323914984513521550833709399981440857148909510085712446216059762568666719530374406287831369547923023104557304714102965656568284883236280659627266118251615220304541866722332206534444131099334756224560640894041139094578035157894534196539355038779124948538523480945957412344987521308780765991171233831806212861877338247330680403088408145842267084624797607393626663968940690770317814397825626395827966652808381197212066269142377102044389346034249460400059839770046616840272478610128372698967035893117536346216436112266096902018773134007997395593222733808293603674469493889001635569498148818650876094436949176561657461852641484034164390408674938299359493356191768783797069089359502318216992694955723097993651020627393550672358495388975932162459237598282368674489062238972513954711807700965525637977064236052408723766932638042575050717053309250073390672189533874890364532730367994259451438924500937210883530215186764684640182609553404717072058337300549612535576737117430153860441806688386839656793490388834939072799245896392464767360255275554826596642359899781591014289216844487798963696041390777421903512371653831872172141239801891189097910516544074785163380978538869547058388929931939272336424107400382570819987354011646582116218490525038290691572435069549926190044772691278633472465445941793400137714072540964385050781298331386040044418517272253897101904430336045941726288032070767189365535744724195960324372798650430768526010155446057290190858310557745209642395310363252262352122025746584518435117726352217018929819486849296342957624326022351903536710252944646238087636027934623398695471151518015235389720807998797030421511736114720503177972499519086884438792612565127800029025354791484975126523513471743768107474230457619477716826542631406554121625233587047647189897560901132864737846978578999462790501303150005154527809418437108877460109488253036724243659634561148349506763615709853657631343339598072354863661212949440337058441979129712532474863753949920163621608169951341300217476953921912615438131377092094569454233549677933462310156719052185631384770731175414578175076866141425333523559823646026165984791321262171093248119320753048876918966665398622378528181737269389080936712519012170296538575906751684573863998107272924466612134383110068190269561853281528904840133864476685411374832492342147228545502043178757890697356240420984605683134400338238157736826972080841822050517822213770934377486967209626918987643574834852089362615699137699648663902332213713516207719957724346860895449194367134853096934003051839684470265117247078418190437852887362028033612735598726710096398698875509000003111793672170961690033050930267730143517852000042032568766775662052426831252973072489405563082913560963844838051007638370890000160874439754004979141204074025571398337347121902894429455263181288237155358185180278213256480214109923223046810816973473125000875777682636935067091650048615635050990038048609056896054526032096934331900738991390944358319271016743617715962782806049422106467075766412497217273334168720826206563009636713907059231370342082875429566845797369118888178895961110695592503449856982436413039778277227259993266536316082007464817431367465300881532616839508686559909351517381962523099299502563440528463168293312293792770272172715847249525774874458129961644250914450755465435496508973568777850281884805848653415116649730355737712114847559326736806730750234351699277272149809409432254240407085564353215632468176016118773734874806814642562687923951660172817179582337968492388690609315371382003454220659188844400096419831850093663602401811884681693502959527756350312234330439631156075472322812386540730294454625454155630746700176847046300024240966722719692020476405453741089184249692721749345245890005595508292763035600002884422908804002578301955384059211027699886287313133082933593533414931021880439104435625057185860592129199796838564229134766081440708371417997688670477665939526294524583956521316837499703875370432906488231251166315226652993397441631847388028096053548839763317630938492101600048587684183540617964477317598576165707678388883284021850570050103886632620814089308636606158888257650807587984492924904656433437668303749898122643639890792529529000794301796106362053256661304149491485075213902018651992467229570892349295602824710980099036675647719412062190937581102393026940266767864087463102178403525044469143883895794725177669742968249131475562777826862873648887108466556110940836463192920139548378690478066966955185669947140963136286777793608092251529076679167459532965210038583733688765626755251703107817210106744387787327167635021930426924663885407641882447456111777560514681101551181483648376841170720311974972162771097344330429852417351191955391937147644487893014647685830511340438494463910531831320854042538735506931963839021382633883970361162127207357274729838672470447900129728182735573979145964855803901329378194078566261915950329180381955276101035546994604178208661464080091272718881211136967516708974566701915447969432064114386456120832474832287722216468890791593956758660702430289983323418838328334240175638470533228094396629020519981563332525259128346572305444162635381521115043311608714121784348388636933760230585655051881190027361279304441832078498530893124341025726442688876132472743600025251780563487238702854143854910175750757924140764399528191332395048797407428678250678768739425234565241345081329497435635894903421953052065116714655700041592510209761805638927214529825358398436601418202215312558517440829190224344483205745812529760323290602514408507771051078606010029015796737999559827568369268175359808937446157362131841032388511146194900411489673786479714034479083393973598043987204054378349190377053437032840654985519908371473676399760168157919186793103267812302446871547899560888809508823395203205566138407180043277718179082677928640015079192345000404215174801094025114167674328761888719500222797658574388700356398402846776413802488815942167905632435426592452847375532860037710646747972157597261646159610649540443629680115345585520037156503351591566212560451057607061045050564453753373521952271277498393496142676063069233577246839982972608030863616028104719905565153491426248004440439942878076291015234722542593833912120165774254099190725588834015803676490320169044102281202894052426218553950986728035669687931496465682666985811672440476666884820578394090092183623008977068573535088465732867110491687902824601620277866636379881231465023259558561571949904479172252264660308593449490172221373232635700175945937757940081835923153049113241888892069827042514438828425105830202245987300697449670820798786932820106431933891985160596736116950990697204009517433134038951054422828672504276277272802135679926177949487551209918145540155469406515598364997677373160618031280364851471820886602310785197703912284834825942996581939630568173863355928369810542139958473327888117152820587096262981647042439668162843369645340989806319506832660840256940568552028025828594368319629034577946554863314344808549058118041690438707755720951670570454709220324907809147770466429442463698684405635580876350135594656741232063852264806406395378927498962068136066530366471941361274661761753036750923130550555563892686020020896613241367582817583279520484770115119082702522659462269192912820948119915085142821387070326377925642643277904576394726772951090519111125912876609886421954874821638925588760506466398946810393690158715759148174700172710305484475925355954065464783739156003256650499027041651416543252492728366223952730220340666546930530883543859608956652325189431213452816893110375737118801182695146654984030473109449217658975540399942999895768864338879968297717812057695185724827940120751378445750626720993931772291878906385797550999368554111153892520369249770507008108903336540809929199933464920230821566167111934399948906351793211999113564654791517409382229121966253208107968007516899526597686237531446198133553927241387310923767860939852277165570956090142830843533098160862357702612241582830945270972529248892041539266710291170527135483226193031063955353123771177429300330747295400144807082855175900666426523375925648200372921639118944859082876962938876757740404373068289513482132750282318501951098462692341307394670619236782789187535965837060574985197332156910538995287049592671899906903200610610246658111922124967265670096117902396424480836951395397352326180470638970581810582404961105204526935229362101335864946491616908268342308220301182724415984380904811272138269396762580973485519251930767192305939371957431007241667399973959367425972312063461480281595608809790861547284609569219674127584855988295087113029726796303769434555541379704333683097957565019124533945256577374585657139488362470427399535588094171774715127337154266948946557069572455042115085087476956516277188247456115949838167963249231797866212242548069736869192147954575412898014198361536671389122845972435992480329361375450612283463804643023663285599434532392428551698470149259339981492426349492182264561384485126218651860372826221742222274085498510645983076031359600935477396253829820429988878160856496342713282219756704369774769270991683459037368847093848897096613403681690131661972619859328485623160191283787270959850902702825865350194949230699812276679603015368736762179664550617368282858525481124998337168779379762769889997751860244129421541417645485243102997163689330020355225253410705626113654372003904986091985032582142465326338862349631861023592793584316346633343279259989169488696895995337691100753558401696385490084765641700840471769242809952007159233062025768144837272270896630902363832887965775168137975256915804790538592347151331689988781238039435775171429195034624882004275034296737077673981454669866804512152743163432685052069941261931951687389812391627075180015997363831247253853873968198904753614234655527727152789239070891935007448345815081084142057113776960352005099800570825192071785908203683036742487890738035300694167075142540800756559996367985278188760734381203560943696450366116391932494392460633375190915112036031515280233861440133911397674854825345791167244436121304978810004479909813702785717114688329998025546251849497240887798069499724160908101465757075930220745144971470205586244794406463471935123663893952258250062444617738096281493325331245092962232168929922856240866265276749361657193947252255882491232687945842334339854782791110319026504327595654524269743425580244339033622987435406953057490135729004368178737461546869652925786073226601726490723567817729026953199035680129176200114540934381475693799968035927244793825588232423784236847114758618498192624983682657730163685583946396877141074942135464801266506465384928022743616244622004709719033849096539110101486393615160469974897927616128803400736132911974857646718053674009688757028991461524401181582109303839046253664619823531703371214518078760449842347492454073760690367179837759162991272036683953130577509793977129106234051120489942839847238376316216164042151907568766638198430337758131575415542895662243810380248950605308882843139758323179118704487613085621186788648189783274963352503253963780659327904080007870827115573131366643402097472039517073116627177174570755075408771041702948704550281243904102829618157846614228548101818771355912805897936826216224041943666795834502191983480208981985690415313909325702116293702164532339061930746698272890480682684161890556817367062894337829615014585505466458599714388351518501314146448174763026575599642468883657561440181855073861281783359198768604561743872891949057526954123939535118218063477564622785438986615343457189067794649734838761781077697550976305266566206959756810701585118778553766883115278495622450529891139346608164737384059894230979643411899561548908926125943351470747490136602576731061460932601521599766288129354500388458975519570315017184809403675694445072363273394855826602795910023543988045917974432630421653854707276599971065215619915114545745909177234308685926115580874620060056545057927585958550859103304480461209143420934015166912168404649530896033611642969781936015378630233008833382379283625636593127259403711291347681023738862666575087967397097804398858307145478230794067972388216650740275401710985379804822678546335271479240960151975828811872064390901699096217319017160086150470959150795544212439265065956495647400893166874924153823161694233760494993777750046925593685469737842749452274329248369084207240695298849494964184102045397700492460447242458827062710742802010515686741659282391179824697220712251062740047782499734550745530234344371103273396884544060085296788457284543798100033394771779993165574517301863274034392505215667469460343582451085286006341217762556415943130354047771084972457483691469353882160672271769357492499160270116092356128917499018335254946631967591151359122085629851070921580543991498263365532243026654028266676070845272563098859632443027978698588222064786413655173040537673812537667361280485196032512645991607557111969192268232592118505009222901365494488750386824913562101997561337532986043740191496645882415338859792110178603005245145310133173084264353699476283185090149119050816877621863610657559542929886974488330869724067728456284655409348028298339836145989219726691105864988077615586283898393343928397220339819752007918903443049895656398561665822283995739894693134404069423008490833302353200080446856738589729972593204799708864930128571787501464917639828281334273920371869081991165319970325008399687019166057090509024541002152744441581563143605817443898467202275088584863437255214957627660196024720171289764765347992285263481814007515125865265650048971417899238377032001180639574562463324935434086308038989951338845230801753223768488250906439535379421160315888652768050421918127345869198892013095360886454772916467062166422775085585306347831464257181347732677300279029629079380864388245788969742884221931194131601172738953050991996345664528963514340241720778909361561350382112539836987150034632554179350052489146210823625107122433065852938519574885686436932764804410846173445864585087894191033904257598268453776683372309473303914405543910120742698959706436653969700015936400456567231643844849786660949852755908941514479820295422268433416160477620815114652540122638565663365499589290436933176247761012288581817170511553082762062698148256037931976813041544574228779756193689269356777374854306849761009883418330301647469153000027217154676011898391847442561074419778966366992673458655777813545628285089309651541861596087316585595310370846791309337268009390047573635429769067041426187750400196101101354924055907966972996975794074928465290988060154327647451707752629816786585514974323918157735729949058399560059899323148143107116893485720935028981500285068737760104100297373705064100560682465509295557276529460651448962863144257107049067141680146007890914976382239472932574348552913069272245566755514867311313055068105231595940702961144990378916632434999439792424563734561443062925908010864055321496825503736199237195435340694943424094943631026142380914143878379671537734807971644989084300117961207981130351754142985207995189596801297271478070725667451624566907051366091720703605045309962604181685089034469165612654152008200844331932177849252516550021152576827861435111842916033525916178712303199060273033092191587932710831644935789494266324816855253974897452104207593220806325951556467604539845365516474216001985410598931795721305177213478856162331116957114471045730056239595443553379473581432715612224023973222837116536774949003025505167082528830375638589807720758948548702600124483299716179847965506404006770839654188612104942080500555996873209819928854013692009724143060768993519887659413346021640969772486314767799938303175211793036924933716631036036595008720428144764505494976594662673935041463921382159722772023225108649400775697453553514232956614990044498842749161596336403273891940680143375424647558812072634886797654163263649275281623414447383105509455415146499758211841201319865162022212944732953790210691487302627643455282301137773179654033974397351486146345196108094535718733665232417827196869014746803497870123498602871025150779287025374503462295445015955448955809013161645644634714789245033105543094209428875968743176591809737204593606317073514846873049625516701385108932152844516646216432559719578813389518736145741547902478831414993606140802539365069713516459397079941235208676722776636094559049305155868731759904239507460645574181575456872949632691885134272933059671801813991272577579002293221198001582199018968934477776886638270541356982918069880373539169006295273974741926691952828194051445999164471989075717707736556394788808941064367595371277029732148765005044083563944287922361106295297834972604240287424592218913329132858530490154440150717166888232869293523668957488927238152686500757614056968414153264618597228667023322437096008692098194508586546793790199842028589371016558304222901069811425252054554209861177818235434808089017507526240264267452061355651997355500337368129302250741885557321361537041502671714973163988033822984664677305996773635883501531550263108262781329028961684352341006683689948559816630695732886750350223648618226785863080807121652109813184252065044996809341892471544864144149681397087484834369180888505129358842157900883736502077806687797962753794036041516259320936020532371967896170755831541291756833429245103744822266372890439576294837649526010664232745789437229619748968287848318141402778643504237503278665267658447093100969757379858285992473239542193427561516316583442652007054924358162648343061520338588089767852702009815354609126351556193761771463130852439312622864949326018795117943625449904159530493169216446167772377952178739755965566490986549926375601767618338326557935531650168778594584725843723750631361793551675023668450905193520217897119525521003245022902543268305572412836033476113433805452363755909678903132078678836779978452120152238247006309615662647840283331631125059115377445089767302748914566406176257752341591059203841864839544223623351903739695527798733767168444857079621700601323492988983727240911717593964298262208794531351494754031224868631678830835446245048945360764731835884387213082739387456394662885846613849485544716888835396772918490000401554628692455534764781172429802648094864837375300624693477191754514666569278278675596090013942386182900209309519291840778397113245354625594844373361798629521678831705858956616679742477434746699200704182722979257584416705186330788363850971791046585138731915320263365467078383920303652429894039232989773457417907665470998017592421974364658740229644426028564859020968493855867554103738579861720656844419404401571443203840726063347415110600644345129143918099915802114499367133786209927390832373149638589400546530924599208993895013414991366283754821608673518772679425673796791220219332221598101331954642595961922818011901154853605409744768220924311933962909733005812398361172426279224258785453824955725918633521156450952656477851467791009423007049594512654147774546747431634602661346424127903205760737283393013061012068191471916351289944990859122504146221502084640192258647405083908330014036850927940632743563718444485930947166263363136827437417875883789092540037836088328198779955638711347966849418050556034221920869316227359374972448349584966262253951653852091866518469481216363223799983287529259404043116831303363162707060002051667941740958526259928859240033582522681387094706164100125391499348407651640402376318571915441000496943213254265943341780857775432331599114899551191313570803866931479852916087084348151936976023738403411357443288399772148031420981695077223951386645358688210116116531157428888047018296285053162385652598563806210375304221577167818178817639057375108618709413709202166750397694881886406244320602980354826188494804472950372103510726407259180091127777536794664047035672163170153772741521096444254035021727063405267058285474850506237511007795478882839070813097235382349627735773689580642358955228453295104200486555890523199120502361421825512725731423162325547132590860140105167351486659894006886935084636307861361158651738826131346182755161253763753589183520628947339029239023061533733924563076382093954287016882287769971704365947714216385012796042032728166416250363281881760072473292944410009063493455071668317346680564237597061602357593103734103592651310269661930574355693747615514187674803729402354339562967382727416185446372821110488646938197000235888695513605462422873173674340478172987388980177986819445561635511630196639852324914979748878094253475593041796605772061846654615257929495762855343002681150359040010471641545681158607839720662394400438792261106017334065294466509448839924824251354095116727961330322269709272036992272659261254217256749612100204764458404580656800430631854818001349680145705121892305266912404491458227702050497445623192370666453669697759227182043059101682407360136503441355942533739637367512037702173490096914880457788430797936506325883771227874273106901192754119475748287496313517964017419357379335617387538488151147979468199632870025628142170808127145890889376374050946165644218481591067005542643027555331413430063147871460119664532078524697189181566768436811467159034048379702114699265059675971416784613598771057173978809415659639324308330326074751820807945866854951962920505053864867613018748385969398803395139780067866717764259194019549345927108023568781450672709018395597538201182552901818770978201320810641471630476225230513091951487404518743626038951381549506017246887863833215498344626858690238392271625817791687243383864540868310156838906113880783852681688079770850587005473571171043185677712761897399406260322886919538015152023883610169426112006447403238656624113911035650338497018351115507149469644770448155998079321112671231903511995549989634170479825500327178287381873374192122288411719706614729824925632860571413501756135360124055891580214625558228271010660173173411149340163504044733232161824498510499267760755428903166495162812022318627692777684597468100127027830436401995721683169636523079050802736900239593940551566748991505072669604209673590563810466928720516947044316281323777933007927521784845398983760148959672267574044978422344541643077975380587174013446087607180098450833746223115638897426394970138826991928110437310855859413195926214049150448024729500012675966840667799963322908593564742474719860346563043605445813697710337523167797627199722152427149067444462372146428268672327886449294455181694212058669903072427983666048614601158206122556867697776126659257623376973524795408012434609666470298897451532447569594038325438041508931045518984905305738865605820532235053470690942700400165744761676019514916380023997646776585961533168178077217068221662887968078306776317688797183438304959281312967594604998227888770876907502049425591826919179912175559557242255649339199692698362245222586323375535610753471554897328659968521125628075801947595912945725711299244960025195501601761063434230738100955374512063689342194040856542840995025993205962704719270999951046069875352219970224921100960773475410599657602090534585208317281687541841168963342007520959655174756405019029306102860812050052655422566134384683423363604983599584960901617781924597082283611753178843004255182732643503238927972800394286445850496882896315554726645951132296558906930628475260674975956867066466621783731678623046119132157613590964654732475410065753871279924675101088556151756221978175918828319747452751367307696492194644518439624068727360003071867266904710538560057858485788568102487031710637739618022988942660674003558364259712977917817732210315943585451166126179978457555625631848374202251955052937048677033132612266808296290860599017523637903186410724249527095349278092857086952667363510187892841475976354898575425779952560426844875940485441841924407726478832107149629596772325600822510774568743375003547099916117959173660844019755900673987097498319261292478840520332571888633563356874181739284498232992722123311237632603254148606885084478338532051809662361210462415205399157045793182242688093465512662411808532365494964940736652651543488138883698314231484420615190026718457241106918125733141343232556628938059640529531990125546280546791258331189799259762242953072847575026080922106837222507606443407426647316898719061180636620513313178409106752829901761828848562086162831286384631583810487380693126254078450902585331476399331087010291890169213190274600215988998522014518256286058330878472937525865882458474382000018062699926284655266947630632092457358756452451509291347783933089300135945371635876209050633740544476205084919729502594920808111325823731329055865971868773302018285144788281806900649682203690430753582087907672742709673186127469797110773451369685122302193193307655242473461670934961824289191163921409477026662251752572538894617149795374374784750272712221255552486482438839276470371669880671746371010551454890928004961764733177545471770880664191614937365124885491998672592921308275079251880293585438457858108032528260261627575114340511011704843090255933591371244170447318078994109484989578273282819764895613890153489468409894372113680754804725233472849179692378475819489616899820674877451172642800707637129329860764790294534773252148306725180829007004927155116550151059399037997169475698212038483027593913666029699078026622593900727132224603039485668814654455527991617079461541579763746564406675880301123036920335784092251604694654464427897467697390567981588329546191952548219696306437245567700988248718072188427717290440633328643931058046104853304582804036794320370838241801976560689578615504601741876715880159737547895644222339363889683375094239685058764019643806935403685154179861653401994197284997985263622415328958823197876604439664448952304747477337270866074907406413900104033177239710130366497499134407069969827867392987222287703709368352528014056917457003262778692004166313171787580366399828158872895083177831927861749164454710159334725239344374624223296710519311586995135330827439191478293594788094033762155508271000347294297816670065115090156012425281844136509360909223628456998922545023737653181900916448189921576297432495865665549607975806735507601593624455912440160157398913724664435115168952414249412785107541512339625762684625578028637027644579222959314977981367689302511706821253877139563878636919649416762559789229423331242873665598598069669135152807759131603332843612982122396255572361987536772299723943670128877165746431625734203697502199111215397360492987993474356559290992917968957956619819651064665447983152086524169733896777117314115025600166413546802472846585528971846503751633614141193603478814844818409361843695922394883781667512271322015811329696874500108506569255607069593231060289196018188145763803119765142770232054430831946303947281082683136401320755354995396676387373861690122449049068835702321034761162481099919765031338812070460002672349068855206797539816447261223537109202835742027161275741016858628108736156328094266198474351509182251207509565667865231450282598034449674682343542165406723877130505244897822225290811243443576941967154537204556363405675120216802708111449785354878107515534342962705092054728525119822572210097577655635619945998259415563462669509871577975299311276854747422120942441161306595224785324730143798914716313221848081653449980140925714653782666899757552339550536576096849935553270341210951045001994115393593246126875070787543117025988889234046361283906102711305309028392330200337745270164775912706997058640236118434827824435653170059027320990895960369887330115230937666399912975575079550247615373431346936193613101702635578380671321325448570084539224581934944875999880261705473218550310024229109706274585395500618261143094566254982845925316560146780622538395936110610798125546283602988176901924919025534896532242509854447578258935309408253791590167851146556482399623848049085527028630102023363582904705836109261531140578455983108148072962406975267393718169581632005062338951697415101643612841669618684739523523851737622926234500376620195189064763105463597298523311639593890217284307348035852535574823595092286623317340893000258892677214569150415338397106145490178268007123508423091194901201695026907206660348023664289027126890916306017968087117864040041958453613319789619705230936580964110307886410582312544232945062111075661735891726732018683217803550584739839895011511445307968595118909891223973578759176883679748955022602158862018964136591946687219714068637631727762218665920282320289331384832040380327757690032872495543190060328468920780078782494855145963438264616931623407210081967165595517774514139325423979439757595278068161632104440480470395465127332273765003075844561382400553419839833431594991111962028999664712603570533188111943779364513748258255831320526388019833787455614075446771777414541894680501812848609925133449439626401594655930476141486578431796056678518634777259553434455139062737264612033506564040583923916502299764820875214737444580431659761547903408962942099692000770133016787551423201529937562155854571655653807375100418710579020128373319297020780748520281540763041050807845456727220454988560115089155126308731706486684470845071721882428016382547401186129526660651877886292056731403244853764297677759236526390538653464732902691924637182796445566442257812819563284875889143170257069657258603621271494588179052243301411317426973010424627041728726500769931972783788910418158095612123679512537758672518548171622529730893059140332669779375601168558913115241189283994431979211383920667117329155287208126741824169612221027540610054411153176085137791512348315519951342995029203889819000240573382959224254945623265670621140048382107939071895383813215485262226427823802518429617729119844387099713288356706627166589740136006479035510658032355626312335117955611902068759654043122005845867036325566128175025530642800840401334462586212956682510801723447389334231338437609980113484959324637416056918793498368900356260944138819064854146473965113901383053290390776795554323780008053630920039159540551266892107535650333037160549042858884267298570344765943911815137352193071822909842497651545153578200251009311551936554308136549428491261830160336623556975322839816457400070001950533235580654647458968938855371579982860024031746718793581136814894792907095122147305795951933142784760035662578462239279868244132640723061777655139646445339866166766915705434830841178499093232181190339616117259449155429451633614660824255317558499189171192494834994271836947817598919619045851056092871014641284294628592076054375283183081835477437164114415811760969604373435159620408865230674422713470482485474632604661608348543200687763702880829053720803620440379540457192267744039994473229568443584252748225382366752658558280316611820746988003329327923563254767080278528887607284959295714111898099830221417142949632487004665428194645701838285909991238609767008368968407774790943084375409342711521363921225030609008370471769226065093889422668828538675215626660044805989122763367088769909244958035095764903550271501090350702162121087747348450396986947361117962807110781684526170060978390748155204957226456584141601746067629768816888194550503984264413426970540815231445006824187470049722109462322053419461216955648185626610622235333394252753925533439750121632984041047172688022324714823049137161644868770155886096707024970218129002631009500648088550863433161248997145389833411985682090206815191708297585575911551981392251286812625615102898137521730008262606604503772014555529881634414255216934889440324025277100362105652840088458923657217080366408129979917859032126109028482812480559468688712356977967136981013471494679568558507099671217882654875638103799541989375592839683398002118178476199898436000760636452058737815304860639538361248228956868198534344474226949519639068296980324687561711897856866766098405379862350071748394334262790290197417228610338022124592808816068902104173607542726607092604053924930102517612207594752088422866070940550049830965428415602955752849902780532628515967109070192987335104252151471302229464077597817074111698833313138708718509029717153499665274514447392813915056393704223504672093246802711882122904807320842351827074195028396895339351603794906760394655419918353114319330273875369097344292679226032444296303150957021862973000154787719741525784109287972396667270380820737111174958034631713386357443439780825414366924273067392849037161292140388547684096993727238351034617431842339929997981729139341213285904357809761540471153093203908556568163816250430565995451655944075055496312707033752243140700605506754052178928086654732341707550346781268089408823002787209363697185879361705135008457083011463088647564586871919735966717953981078026636805690529417361389560554829775874522076198954527719158092675937586611849219295676671034108773357150643762298343452428185482489219472185622423665086752023286804629312170341544630612420738168185014907038379908614244721672992845076171810456652009671839693325204022141879903104444760333082942545615128837460059699569668106550262154532590648695235884995980677761868839789548889312602193154278100864693337581831225018836067844746861662565745712190645100140503538517281410749616478518602576582084115908182521842914945327348644892939664928745426050052471404596590585709499398577041226410872737358298362257767807123083791456166966150936512049126511678458953028945728302158637140803773261967351995034770516553394780726959209695728195226833331344300594067381732147857809094696625943331757918100622666383461579850577823739659438926641169027747563279966235211975567822427885454583120201568611756728950531833637862991761418582509518131354652874091068909277229852912238857808663520135760812296364814450403366182240113355486142804451079954179834145924586177240129697966744463972580123729484445876922040979042216287943241928755237405173925514583468303368975511008913942716837167986305598653367180928838383811609685300480717592205213691463058106582128361610530713387734103734118350817537589966277180147503042833293658866894499571929045579862692665441488434719794696161923358225495778713018916551739937345807800195550293724793847866997791794062193643575393194663313929471047198425647589278388332822366320228522752222459497782184001424136715371831452758264559851729390687124262433181367128060096700147704166142484626797162926411939422461029844688796640472444401776785012965420027872754193543677808483430148900610255359385996287293600175716579742065879786676957197168767191616057363904387638135204428255165150592392000323703591626750472767189957273835517594983262517523024294672784253585982097595234777119171401856640615310129033853940427575460603561196933219416434484441758134880680934667045595221307679515308327911856712217460217987165484232242116844203737504692071226723338388489370184629054818475681041370401484530868203710515717707765221299462663811842331015108791911416471727709106179116414909137910422253125280801630020305063132130540470574222633119436567686242377503405564735695422433112926677564516997367203560081571994187955678299364704861154866263673796514651927786881258332479231231093823998327585123299921740616683847523620120987950370946982570501080356730436066922316534680839659022295137383111090427176677579016730350920674763275859355526870671222302788117402458088870668234863633954338900522549620056194082853831590569936863096973839416969901382847571216046141838250666447511197635107858283998402110493625722326892569700144713963984746923938736993698953140237680319190164414172284329246489852592536972118962823210314878060991041656862963863610986491929739276135999222540634370365559782666482576910365034645719584186853646610638314841587272476809719894970761768123151662973344256716264794219402935043434051808108022481371224734581131219296164781550327963096126085273763572663160396772903921354743454910053889997880909284810949226645442100714372418505331945461640617605967367687948924195838283497766424086919228224822005684466331895084310161058468644511362277302789017011357254708657239313422141818206983744850373147773962581765110135933639126335536336484798455937755695145236129884041257028868649308445438479046696714477124095518062168385053049942064779804814511694129716981060592988916228939364878667422695991081991649462977735771553463175152612960503327549887038663475524895655508517654132395551113020716646622575765340010600386515957822503855487425909768016782784353293514069351798844988388786058750959096012478932017925222207601539377769084122907088317792407322223609206910580717968371942417072217384646488975129253209581825756439677549911315611322635128867923697775595674173857094164045209635127088567289253581227804630139511620234006430784209448760876522167524093621832403357448390632017403071962066458541464860876064577959572548045074163884068828488197820953471056495297976123951268025193669402131176213924734585223944860905748747505086217840839621564334703606341418827603074874652952651126329593537021489302227557776429398057936683896506147019381451337887195331728505731966443448902269240815325896463129837485275434209955281984311490648852627610954179502954845721327762910171214940387611820356176117694959000252048613389204375220215128623329635897352003083588369031587791564896780128140850934017780881270134032144456008896533870707941960820606460342819672245884503957329668465752815879654262579558819107474445489235084253411795342013391621276840830437541687941029092370163268460078817070454827071556620490520939847711063651118957754977387265947665827996610649129980438355856607222183625607244538687332862436221151648061903268472207120771998579572515836874332926053108272297726231623334185012703024530973602471605219483801093769477108215570695392733351908981392708081502381228849594584461771725337463529896122383717582475635330931566746089044319342472259639205530295621924840164145874021128841677983914042267122258601684125184077565836215332457649923705019652982196985592942802672953400818302895366825186217547685888639534589044881947693623290720677827699056034338028690770817891510488239330622083490269230920164233766540380783945580541363992080478823619341633523223662073989844081132242579048625364908604168908283187291923306806585120657039750175527389570754291087462779214984242608832534846404424074977966172015738051015007539780510508852920117173979395529206166393191436688714837886309648464476031468201768094696142004468283878630082013819406567326093402931752005332896195490141449877855761370373229041695233087791738780844615306555108289630199640108724155498985491617545674283580629103577228932192414058527789852937319076072357600135182701459909707659291660637633247536954352904406253233773330524505310108568792309425299620364246174474060284675338180037865385447167068941870496438635609761004061134620287086336059344696064813913330031154142079454320047952268357027102638001979143696372109524961121716824762266202124172937268968145694098320873248469515436463262549481082913572215538493671915089131936298445829997638318092935298502539518999623666599336739278847606482997532758169451129814189893712576502029324370738804418169296020635018369062764553654753179409766828577932629006417371046679768459580379956812415253427465712745142552326771913897211100872872086857067813464963961246339858010929672499536385389973426440376050713229463610169145810522957361999345702204400419119237834439732419483758258541352075224738325291128166852553894037864211624926639642366090374580056976864128038080116973551711613366973517657235727855141624959764678351020364588262011411746384851319701145690004742422479780465940632875690368985346457154134035594038772809088818880999262035935971962677527696924165238625050707512402821019142265730137581570133720427396785082628430872609496884734130955290236109647605603991871289844711795780075241641146425733280434628873523228509742081569694442923867601860388544832083224098918128037907493524154657749548857341281158389276491440234689924449921880027319031259844727579200799436632515115345924661686516658412102973120058063262182787722089609694115462147553529704045236615257804692545043602370504938555970599517954942868466384693885809562349166659640277637529246494326749544994003432394679710040028897439247924049473631235796336551139202597297736929810632310301231847772589291829982278658582868069388049751054985788536947993966930240668598365009295453686967087394824278207523425419865796430732546586847583329132965730537001248874437889659644206283900649925378546517187723678482899876141481515151137715204071883751897792197124953851580169271743631695702805304110881391949349829401759074285849603410647272577035500811747384914179866755655705250549166874102206614199574692737517304755863632054763312326871080236320302039860445681816197243472416926867677481045589417501820130791578887606713010905166334565160025489015418604278685275087707176706698895507146027831337667805188028530752105725385698975420271363838265231812708906200214775981513711135428777703392853034154161366567010370210370919685454459759943457133961871469811174106712209414452591339229798530589092431174460145115366823763559767087780961483287003279569520378385203616590700534199409339152227511289881911560099294920001546314322148064062759807154793134488982472368548320731138074415693511387133675520157910714896446353719609728125684334976982760506749325794979412118965062415937307620930675380476842549596625444028602085162784790195872973963040085933302436273125935038957740408220420772090729740965911040304755637643239993519093006434828974051959296546033969297765771898680319067965648890118818062499054960884799395424773044349652419235021906997267419891401229742714280545880186688676838339129270627000621104607989079879363995128213815095965513159597243200927572105264256427504881404635025820810944421482397445484318302472421485169212937514661916684024238593532951074839583023159675918553007127018520591876806549149470131640623006990287586962648860307121344974780341781588797035667200670983356700001475305375633193723508884343060027905816039591497082322873266616551339448959411574397909050272359520869895744496463780485006040433293537694845446180703209090086689446403300180894803330285779854806114999313179074242864930004715424162247182346551965028892145142111617505950506679903880538563590436215616544171844499425824295202115664606475712893424195608853507018186771116453331415603200196484914660857281292050598149449196801025498415314856578526132605834169600386146609297059905424325871795562834485320870044938328047573831604086310885897640788066660373165821064417341546889074320691873558594629971429994343740984863697652831231735133495174109299442578229783033432900878827180326768680872174754089949338638873634091032406374559541513426116585508368364715438382073788059933123740880120464507679294322159783354490602125754439850870637851192949646150457092369062278595725945003008387940386525092871922368828143209701556125941259571430167606714263432371272056780543977361656454593612938176764082446062691282067307581225329440354254696489649915636721581725667028833761818124644725481598039732680655058111953171203102609478942743466570871028528851050781673064650889996138712865034041282457346911331715555444872429513322734403160428849809783282274303100518060265482186757655754796172481830906857464759344435162994671417551722446466147410298667698250344478231207169942146142890046202126152554047236949297803311129292451325375651160036967149825462576065415242992609628159226436372992004362804902891652558205007934969558698145768675264284920891422493773569260876276112753676092260751726601818448611733268714608876421103222369690709545870532650856691346382884213527972557909557489233119410012171612361353133602578398151043984217515279297887871087823873453681268260402131694175262037247923987297058404700946140378197580424884978816972956128188045094650324601261345499128652750611622711414503361631599912553118957224089717483356102568899432943031726228668095767477175460319030333492317834747802640701411088821253436088535328188902858404241736994300764515377704878828147865428011833390699157980561377908747556699198628429145814223010522534287814830074194768085492608715047812660600387296535883888187579124875682443684324139185820538938603268796105006797965254714323690515056069454007276634635450084367473595333237186342315719250325420911792888108710021413888152389768377533245551610136677150641402428501876061005679157445597132014339945602897406696026195942261543437674134373701211666076056765114417400479398183616136568610373209375481165906582405672983543924736578607457926949083361467408933974433458228359723351927466981982728816939105602245625665545791933891522480036479321197241139682823676517684072974062462981339671054861926715967971049192933007098064744499835367719286597821421723769116868315749613656125825432126655488375323305266108401351507801395562357886430670523498790390338159445978407057218165995085475842360062290831989000565573679164931719373917634359603381050347714409073365928072824122069528297533759402854443400168097399156306027740890660801521868806048089795770879845011738337439490063009338530493941859435033308572607622543676126833569734987875893836387117602923972476806112726140085814477283861101083217296371982396098395214150588012458057653581412086627316543647713792041261726974633577627446253330593760114120300309618910366185886018485442438637186614306603393695663832475480431242822122441484813838413303895621045921199527746701955718480472271083724223789957221549733055427788869539619146141713978782230432717182846163498608238387381541970372918851794507472774723802646324908871383260708559928132115357020681222006993278639329104492285223791732115101285206907621883826870856521315410816168729070115568075876719056432616922161718104472152650338622813354021549715811849151121823931971632942788100083723786019563238433551786472555620063634364993575168854623256143131863065417724511880981367104271798005655899303797672088708873517630193099131032762321022345871379631154116583753648130262332252042445242870994827856802063442276194621909748743533259941744533555900181173160035349347659776846950295694947201790338683705818120404598297078954337641841160248315774752190931359251917220277161301571915677906178086187359953037108127096216899349168150068199915026552589093887413424725334364058987138577547706846997274456212572361945327729419723010374154137993698054009244038330225424556307165192802798934376230843700814312910496147993166762410455873832712865109749850957077187716985831196978503047462466246704723422469223417303887232416014700741226109854412250891014637137297274075392127117897597785245437931162896459840788018479374857647938307508430111610228255145627412484070370823347496355886188500690082657120638840102266538119873263091440691646399758460359487272680496513562605952001292207534605369000497234981262193129401898293848711597796690145570303486822876369761401366697066219642028238516953721037138181892963035613708679786630732776689708016828198813251712358953568362449095290919414321712496917790553408075906964121409332523924019699864754428291587660646524141695612228444308943075164264983086045890634484225621092412501657083416145673835600587311606153338830323043858116610258983585114073462681642190831873664204542175559048145150826635927280011486362824367588038616821429859114030746084732112029468977794152532103647225421041444676007728478702442006043143772859499481612241113477685800665046711784711210236232859592914289620131336337209970070007946995775312025949339883028604714932588713521690046107197129656509065331463529494199614189101194366217305383916636652658367672670665834782699313041827040021425933255602298444529825756218119650936821722679744752178316830011203373811427593435577908603239056200334002777913583281209194303077783861491694919417942021848162823730953176254213066566490885417635327102665081092504027950612662490825548980597718853586478509056869705767449852940073509078147065357283920983679245715704457222551849194230813665098975813472776939621904656716757234910538610755828684982020097625886105466960390994735352434181692307691188668432620620053118589255916454943290550824736463984524385089556956441893683122756782978716426456947744516650307746083137810624331950603316372364744306812434113114727399470725205118336889362829913404035382557885639382130921974041166928971548962659418153527222874938878996340383536410140831589242965122026746818397562800997633140840961917888138018564152487465344684887978875173664873991845419679146211841542276964200906798851534219190150093327803623541070094846145879072962002963166233710062958024653091512306144615860441034333589317955497585424592493670554338390328742512396111628429768713454177344347309988550650084186621492414485555747688019886211359267980472826308920348807766145004605824198667106640375073870371418783068255782914544834486199491545743368717954672607231640407478029244962343113199549373717616363430140725310371780244117241032890143421401837722096259700804432556601501771422026974669999520536548228414432762652968789937919413505553979980846387564035634750201531389561859760242096981346783518151944388473277618997881597966102066833173278702479876808595792372133138441218483130705713046896737194151198389943220209995806470074169196163905678296795428793636075189216485466300894004337397224366445149490595974339699624366198888201448999183027640118739882150513033178346126790002697820436259739615690637890854235050945356709066648120389159260287911711180562961114799110188325439081181342635569060886942539241483029932959778146538299848998327620885937863826516732189579524695227833378468735912935194069784478614573681575754371063251190715575875211615935182066623188672129262616069330441540912871503406618912025186211072797297302609050443465081201151997429891383195807172805038826095862538647582933127797885200812468619995254701438794541489812651407076155478010410727263837902811470194262673116213620536635162143961661966950856950126204748409747322344804052829152167557355479421763591384812698176505301327930668303691468389309201214774017859677972278671575929261939953006747443011695264800914381549072594001376757372084172051427760224157071293148434318327605870022196592366549917381014814036526958949921518433095028181960779960157829704850983139409850755774860551916351369935045588411225966406753309013083105445766133776433892031825406806228858492254792807426466363097261045645810803844099346070903965548292730743178739828453093566401602656896310380131138500802815223095065809746753970693177855039632483617505629616505218713246604017949495726719903784734427691014320675004581820655140176401165097991471219474954240954761291252688656796450066726527955908843065709175788249256962934648781122918949168358421953832906822611628846963689930895399077487087520258245517433535266593705295353273532098649606287678752937178976160680766950736042100266557385918742446594022827141377675488770252534604752177338749148744972769069323021885396101077262690794295980393766456583444097923548934093126710094011250355908872665327091859852730119087851718022270844251634516115851777784320152135241036536971931305307119611758756104877785089009307795772587980266730620303917852374593558612961426898566252945578878919889178163357579133021325890280771336024281602409549084760896619355151505760371097417642375268789757893597388905318090798547241159556925791318327829973648689113054815336776393452067494966490931466873465896066833700434196317329511720590994686132813342571693452875480761336830499744481180734164659196892298897427994812530102850473656492396850512796295508031605548578909569638608834030128231526137170464040198066654107679088783937616050753059760904611342634981560994228121769202146037088346082792624643718432627723136839241603362758218721451797491012312987878931071074469484034441418877846133111415590059630612431796208089192233399473608665375880524746876633352668578519370472484865338646356612874664632883096559932872235086956748120417390286687331209256837666989843012978283857582765575778974877498797228602432579019845862643051280667230367812401799510250162328413172304982285037167867478007802353313706484425518539992136033824732181649648242050094709495814432761983935599789688314225964871790493236073477679927115643364354062430149481770273730159857042300548222918573020232444008922104342699125658345407015621649033190186731386115581363794155580780841670232902644607276121774139659130904189307787321961572089122432618730284236050042319103320178524856515542300714129906021746989442476596521801142066859132287068240679947339624737766909359573909638393145856982217687138403298754934099214710929845464394899709423489810580099699073897475284913651692994790954639809547730233826789950762545915557587111836091782420741467558676448784761145536970138170210724387786864882491552304914340970186410803489864198459711662115983284477819213479219798923523585570981806165839776442228398299989309433936614725311799758316114253447605607091444498830768838035313420902149216150865093040815274384108165142975808970901287917423127780696478447552837529999746592772707776086991931253562147084775186551129983917771912172544432292237388500077415140748545972683661192108570223277662553237452557424116526252697633581187291967075131883884181967547897598786845133324237582822107241061938261341708594172435800156653078131736425517528107313435082079975282543872244491876692767676473438690591637329488124822377335896304583959206512193993144709066454029446424081784153474952017377355935997486618735799228885279429524103289095907927695910140096043675210842950556076961574691511681686835457019511349893381032071530947990374551294862359895055384171834855900210856540561909123658719650552073019245072003844387223759431106432948402947159301551932156857205331948685255623507769955963268222298341660704722216097437177399956471946540444128583135430552631199324887633317129460689934096246400611541627849131400208193691864575703853831689874716099414403849998288692823415763588281584105473845400253437562864708527066179818191605681715574172245000107717403602149088495951911860016937185130272183773258901464586993358843241480162908306897196921510899753308757779506747517028181168148937703536680969846755541893964413614899094573944591737756693892932501151041057417861955997716955153154869960360255625065254766473941612009506435489561930916852687616483762141479286450856381085972556164708224998730652530555148354527490942355398386547386321690335445509635344123900275417854416351629823770956520193563895090299008056251667555442224430237106506164329548002597269279012130699693147005276629137188841712147727651144016903354096186747133900939754266487928343301712250573489951164909158716702114448696754058172662109071285026631146564266114195759029438502128809952358906886578857880353648715724163690637666936540444014447993746045986002242171879444829428741847358979647265760991196919236959244450152209611628506241684317040795816969223650715295020867303803285547782229833390176697677139163979984569663971875482713689907702367394541014438881724636674509397566505399206427515988823248122428475437014484249060568938023191848138559442715687253181856715955824998728001791994794272140031332797995914422288733331294218581563078798179768470855298265614058858998716064264699884571411926490352930777994876097206117444759454792005160918571718235551865660946900498375769858719748225352006901250103047511177007580735761378489272825156853378397905618673065163686071835430679838414840460910180453445815263505679458347692246090835916119324489299182378282574551202236163393935044166379340435425020950671190149737300839109257888525440089210933382444234407988664387115365123883887988573567075584296451661295451785594292002639986285941573305786270492518917487558544139572005610310646915000345973651090783065475509610280456066041768685583143857462972478378878672809214694647423735683077120567250754827150070630947209306342236462350615738418240809048817410629261278547357514916515946618409608510827936476091107556987830141300440273436429632400130550853248693351175613182128612125749224745801605184547119301780491014679387700727418775520744248986403176378487765620809168184538863029650692542051429014232438511923960176985017034591799414621513109264267562407118690226684226590404011822928157100533775388097148904445960531084051925187999998063297444604226892253868297693556064703898572400708820478552337497241914436563104524488003483403253741656289834582032647659747814879965406017140607941380564447980488698967795483697143311585241679136219924422466394437986033391892919213120426028720577731946653766707772001706372831382456439393467419186880670748596963051618126139246077324026198764220081731298673015507353171578107472520812075182076336033060052524444525933707210870702121660341086956777204971650474025522376755730986392941372688673536400872099829477190770130611342497091489373773122066844069267900462508298052682690374370787389390859718892302996889651950407310993228973352587022923669006338910602443920934464731790221041205808068078797592817373240184160722536648712811193710087504203872316700776282410692325635570891217858785379294981274662382964882318327159115376915564326873864652280542182275852312507572640062025560069589257116725534184208121929176944454348493784386832783480987317732042567603208169085050160027743505090236643158886312957711660598072617898843506405713382660902265555943370009320278532134429065266042477019534652184825985828796492693291142571119523464919600225193702600837773417929115409907159720501646060428200764796332447902788726849952825336688256525657722651572294675140770494708959117233175500209100915142800327798969413469299740083221365631504252711677455221739934812778863181042064339535320526922351764805566487625049446085962653128834848754804932615043728243352207473018519823767072189642951270245039541349410438643492701671110599638735121808448780808290265097506572844577623399321301299571407200453384903829858039686958216206042977666495398197053558569518997314705136669589719316227831746971136434750037254186209270536459296747175026264020259376876361056675986888528992053790315553128917896427723100326476332098511200093187560266741230465853080742733779607426493672100422023079294402288583731849300551546247901022695236644567717213384936972605424101419128281649719427322642611535248483534918563007904272774795123026590425273165280124033103375536447424942093922254888047741760384064012798135145820210127182433310038305783743866859018759971905371967744588884918010120691538899394812094248134539456454176319668538136985341590207862234028421002317147882971412031552389110769017176930071735783570074908476905436028287260184390697659938406667433246318655802441246573238456700129582510821975955011615840094265127285754018301200760556289720008536794747377639527489645627699301245506315264369507256238549215026694245720472693255876004184780879088854367091505675989472371407165998165457146264171589890956771087162485940565681995680903988475748754954902823768648135050589620585869007564405895051448699979996425453190539547884013206104298410664439544509044895078712354506764618091035884219653190493423536809795740209898444395654404287197235453142298456438561822639819039534619441765821783522590631025168170505833869293513417015479690084467666977126592785448699657767356885572721823226688083096498726604610538989568469922634104736109313894206941041294225915061467220413806557600354408944185558195894705972504488184742825613615225015454117775268501825643595216674617231818722597029536051292347736245162027915915513143242573323002588103394586651498558772989306597740621227438715102407156032720369969619064369904892747298204149465595366678896598395295874771502112409359413398207489462317122802762144916368521453315451691978181316416480496693110211745700972680128014712007499541607933988410703714871378503536488569172741785819205533337099109385562107010941616924647026885537286639054653122544897944023104557015241198467442905104294426098699358627997813200509420374853372361279242658608616778947591710909113617010809149723678668633215139378783225022190556357750305585744766063381713189398043511517124793599015073058762091253169238862855504563480076876013603613665258887139934424007758957453712865651082995748792035698360192181640936044605829737975155644856398886757974284439883989334306386272580934430060592728519774142972939070391536336866826250736390960594124858448330518067389710121655650556910689959260460903136920704230052571661365814303682361592733305952627425389841111865727067188867984216226375998095499064236470969468391679737768821373625371504003236040084708248815211248741683423633876357008597756093711311115821884775142166133224288349290814497764372832106853780061702339631901575245530657740575137297752706184879154205178047069800216323874414087334092887801023453102420618570251600396385145657992661962667234014128514789580817067688889816210389075583239700672832558604416784405785256251352843273890192679485569394763855416897461692402355893857435169981513626703771057028233991368195977271328932119582210669597962624272588535575095750794092241815047831098307287959586444880005578631227924063473880042411633154266051474557438063426892433292346627557694625291140482952121134444720548354327540621391153239798470203982054301350470221581509254099914535813094003021915100199023498124644878275305568477599293277302306785581363854745963475809605891456001042065640965869550624623397776738732758695193444850851499327667252681847254852502566771894864618773670773089411754530947108885938473771188908019803845902431020278462303638405452724989367400802426723253487104830194069102933206398184562904011385046105387621894594737240149892064957692622619846224049050427151391502734955708697307554769823674913256732383586882574702150588111267950923037656686163843340688189278877124726231822109589057657034775644300173129433081786258507197189575841218774433320458285937310295458220293488715568189868973779922361054613025574218230537117180227355778281097922971791146154435247680738759328130678643634131409210828680671086556769122048729348655801475241689892124482975813846770506693706502707337284588691770821880084926035716341832859328583878287313133156515059369711579924021975197276081163428885826836664955257135688083082159992766486162330962036909050022047010646177437619390619734556147448182235932933426042595685199608817478442184909190193287759973495849261732840282211906017579507549097330588054065889732291870165275946397803295603556203824779615721920057932543187888765169943797673856386359985001293979404508326064138929138699574032387688793875947151877524331051583943170801803710424990966717434188720569645732220416305157503837218180687534072856847223448094619812434979458842695400271980354114389527624603813092696539041775837642508903335332154622126216955542983579717110238822381046320444340345851554691012623960814288097583198963944261662387773055467460549925968624433032865415960063481955913072576877766260108151025004490017115377340896032054774324441756177564003540532429349223481711943178970817238431283436846583477586424441074853745370817719484255543199404579843699639454514177488170825387533417540389662255954711423241519097794114573191829170041331706448732081692178575796626360366136165722384049602142712673702052523622829972196561750776641732956692810871421255347370372176143963226409812932370769240838196915685329317754288995730965209699907954803142403697342514997535990138229251328221361855153317166476972529261445684552839018110900350826912299403466755284701908153221648694906406374750004382659758710327282008057446303782760993598912150332560940975557528407699428179923172463353779639355817967444982809289722625397463932789438497043742284356743783445932771106131977554227965419893483533604746065332610244226781477135037733289119657628568188121828365827660283407127226448286844527130109954622099416498002052618357672089835122680419778783033356970440416996051763810912317861280695863675830473405063883490359250623467985885464548262781676672038605888139846341331317937880603048944376365858481965367205320028880900312915847399691391597660618797526756692981729628445503464182152879793408567208457290510823794259549855004044314392502571057942230916488494916700663971495098061974794411567490872673147342935000651570105971082347851510147173728313553749179415325398112399310162980389115988985840676773464851155161737117729203056083225334305594540730301509200286572475727063481233508359069486655424945654595379080958879708165906926491771251177636507533085402854158925895760540546679568724344094361889968466223673403820872710848689473851198301733184434468223759044183469630199424002467324933408078868554186688872745205006018936420658865830582411125740962976893465773487921709661316752740765389989595994119364050576376621043740338256608977662561820956100393005410858768456186543355193089174904951068395883115102923994133671944882014723382662665842544872230979419605114107667796139366438082695476378888075959951544134526754339134617386848766438133749129360689210400028157985082154610074360820352226006720250206406612479816958526396447297932567411069588881472320027073161366139727263749167380426897604414695002942698422459594214451746808035661512695884589196084257026250830839502506748417786557121563462799223038292389549475566472289806887543117920218681260613073077755218015854988477245130971996911619612545236444422863453338970534022313659534898675289344622975779610569961949222509008817447112932297148766205773854773109438055356565945214892488103592229549692278108413471945395925369422694493797294162346090791921000243006588657200108509029180006397308078938716010618639200716538488216725796376024728755989195980606102740542673933401322346786006067530741671404495897453401579291952229801279282331617732012026544525310394776247222630592931544159813759470438636592808142549852283368610837781876165620799614065645606986886441023346118340167638301285609385015460944995198064958329737720939065439678251742354107958458990249225256608325373125225760771409171937245712831383383168954984666633262123960445451943445044892224459661300382261910937212607495558292427759930949652911287926495562159615300063906497180498751080498571213090119484872434386968804707418402374541439793052876570032661147426009532891618745854955185970076387784886743429350861797211995583903247294051568142390564758012078182038915701873023468763498391001354388854557061714105638643943282123034028629430044686834801664042236593703967091319134203676786776084510865217775455176514375752688741656146306815787954963771265429820175545709538867482708326642335884444588111633844863933714892229755789295288026847208357689017825412934868273080769684835788484183598940055247278534938864345300508637904539934162317388301493672771479630771132421315109169602928842071297302053855551309060727609309388676268826381520012762803944903972743366539819466080696678519441840447237224816856036362738335706107425116601275438690780452883713276390120009919206038149049150354158290333681832770840298842850698439379193216609936703581978439544917036952274082453797691725830560761348941218706341632551473589132268659776304243558766782367554164961409406181338380757006215529118099330747776756786033623368401736409695158617342839401446163676460038932027814337324910231574751465833522713046941863791934843390272480679632368059501674179392920274945912789679509763748291783473359414287213889078694753460184217970407181118788585184881600612386872662524785767106099414143808403363138419237324857410465183826309291441287301103304761174198368044584846215623530320651944384850937313227207904107827810324021435065839656492878975105330982570522070456657936624158636669823658097908791358237767547117360985178281945514916079600196552647387084449411049657309416744505878959383173320439212603885788229107490779627021703484712414452826689424097743855677445172864024012368224730546789716751258895035937805677153594483499594491496698701270298871632412502417399095872739092751953015413631603100351721814122183113821563309176712136631163902456380514326585090532666466428392851837814459524537377077926236078939123685297787141098582382033956732412960313309063953014860561651678519564210757791952527742402673711664758595929528901829595063402577386671529675259440277542978591732205771336199275280617497284458642774959036548533528788732301352303255024905613860154980381918570945657269270393356887624024696641826998317173358131796748234805742467372867746675759266675679308415674027930643828431158601671086835167072163299429732877895513995465925898723501815780739265918113070045235964942280247826573445133156360171208243630193120209876366224482030657250831612516874391304844310406166965481993040720869120945308828914866202256385636461968453285557255980584633484186128445937453669065131886388151703039095118730090440682127381412093365093152402590115884760103020150615030099200076219026963001276508609770818740499908536275861920555253932501646945256247814298037452316417249128032486467082417737157320790515118045039936500950590817148313732544759514928770837786642062873730480190790407708109217570924207517974271191938717273709659539037544099572638038044567942871702645345702524440127740614911530597026801513121235643219133283768512757921896582964028487343960307343205389143197697683239275846398038346121283752354244557116616174499626052132924848391576623570738274021384557244952872887136414883047861018598108052251099522651106654398725386239572666438733051281401786509119100091908142234377267092319272443316389154083380903435672743025472577679859409796273972429352635822184602542382995025890062134578952357719006814785607163999187009668233474861681429662443520380538505600129754761051231765929844915005556576639799017598381065889337515265180603326304246147664616855627656765817277631911620400568049033468481971456300326247179232402501785975418700835321155259276096072505503924252540817199688657156570155641531835074113859127908931027160299523401605102364696742183613119293893631838964572702514872204853831338282448194576428043275565443963643560336718651240304723221730555658426498164979945890428713085509023531382712832579423250101727192363283420789110929987893118171093234669056823330508270817342235963361509348262852963289744291554743457174358887666365755670445554962370163244491438474574428915914304085616821526930320866848983642325504668540417106842618645123134120262124472600728084199851873327718990957610511660866620741959897301773427617547487033683964515873602174020564682002547127906275444277039868532131699193085819397282275292599689181400286895691624795042929406834536787924598928152422368205145611583338110224090185899719510501461679972711003366891863150376864409579840780594387369903314765106101169317052271667000298591860020803121834051410467719622200017977205150613906918664755476425918666127533750554536765309638364776302753353494402172226261704477528449089256700583282174967833655045735087556155410717278724990729153994954179104787803865469935722624389937841961379418726814459538728673385993258750505357940592372201613945341832974297015552126920043920477060968481914501751522175422047795942223435471171350449362451881517139834245532859052091546126445182842477558165602881297943449883391289047671908679688624645821887815382664541994474248276944034267641948845690800180731164355102232504165385472077101803149108840247165541754619402366411302780354105651521814224624880072858005199961526017619950463868353228854872915255772621775315071423459101988645464519536494793408213597857698185428292489562148363774998399713070163904673843059357676977763342848851996535880912646337529669852134161893067650025588306008896072833364684465493001335556331072719394223149584106511531592303913543481504021986027105613412098080632406607513638467997174670303247497373653780628122962823364796715302359476735719929193804812324641616776327447678193337401280876777701801294238327646375794142002469290489229688285052794322001777992156844641864408262237508785404524294171292961638637290114439249111036215855888897820676031550388854446873732184649855467950105038782395140855158468582047776359496188183004059440755323893830665834940482195316211119383711379178416503549980130617659938480344719032554224907458956306687470303763194685332768253821152266094217787828983063785616198135181154370502764958138588187109152204307253660787787048941518996999069013406353860540472106007357652864508743071083196622241188588420341186610849438288799997136540664165166075866471193991656592177510482185702548906157345264426832128459896216057210203941551256838271599715445296773369766491513056734979376095889402310617500020579617460455768180488101934033889373231371249451636683082544777179464908293314992915774089875861104249025323434636259622340729044166439271551067149881769879252676214355536376453343898588434037632637193829431809844905888756230125547989537036060502163432692083320563223770633292177473417374716826879362894346404662222734649935282318391562951365059062473426830740229980554504618459193554403433044188445689057825736540161732318538032987588437682194343931148459906275337078001063903811014723547143329081477782975246149804072304009471710100002933832621566150822631736643501688369055005016123110908581186456684959579651397680612629875013885857080318421638940282178263971083952973992383901984124952168066345871908228466726555355038147695752905479160877773021898187327088038425716189985008776809687322863838157739804002586545276577792777012333687537255375534971445626256230723079843617160246414394325093003096341468169845171912411553782812317925564111427393073702257993397291354641470163513741943469952010041005634977788303528171606693719747854601088074316836139218195597354616434655079350731699558743352943581104775983236109526081890413249363909517709520998797972544915627549847176126255961275007422258888829572516789839134894078594821338614112102361864248423120995025045345968560108633955431558925139690374036128311215027224412734317816069515475949698600148817781288065099709792588632542638022561117668692957883824859114959916804148365603835652923160264101903937557688845611845939734888768242952312553102564350623431736056363099230914982604770349382497085307773451909902858174820996132357940549451976385657416983383436570579273654769032076963109951217341739209293968374227624369668277309793573892615093171129654264540454367744769404336801988047121399713886176242993298744931098700977596329486745052086869845652803828443894330925572904327189176605811136756324451860433357479728970739288599014116882790714057160778252636465419397807395077397577751930354038539807752233557940077859435895681699270881351964581549761489544303196667691995164627259391707514092853535070472995423869977456448721589215577046503483342376276503517587829507550386245624426093772757646673270610912186131812009303587194578031011530354677579344346012613851203353933979232618969981760120788359754543961224334018247426400734774959736716075054450209181287969925189429716784664634972482192608909416886766457835094788513410171078432732545605472875533369095057484200353537504238304572050618169154939361308370984916144945377198711858551447194302292181214672445800198082925039698433403075626814487061011447017470602924395441469074789934674186860571104943282025585443190178410883535515453025627643465624055349142063625257917517570910807087568327954382490880146966683505100547969403085319927849224077842110314611575253207741400576498994221519208946651400365775011602004431792146108621341929287851210299174201558970354536478227641436199668205317228986441675439036074907176064925801609351072475496142678028755601440103170184215134448557030855789456624257287519414966335688541719303092611369971937854309094780090951005705376882633459650737488766662020503231494261103840075852357598273973194395900044811424769531972681797129615666604579690303056527781898022361674666530674159938911077977603530517947073012339201037187739457770149806191112915265456755712073965194094803806741328932727427350205597436582154215505721572186776060698726293943744796517449034260750527055072719440618179428130307391201041053487656609159035598822013109384659195227285805832742407395177358331612202960392536360996843943451056777622664049972474586348299745984624784996494281686193992644667366407479807506629064665581785753294822516406795345043207575825870244007305354343002814699469915825802145547608103137743343447039393228041631815350171325253346191389857269934667060449750499733092233752823720225081168232602343007268957589445152899189356277772096068413522093870155735995253629460395542842702457563522021228247112425484359330846091642631638482985121118262467183131474586294197641851309179160992948511221125689381413216195754769380435229800526496983019162649313644530158125975901982635181863307252901440009044414886511685390747359732706216613271492559451231947485369368593325292614136774774421521132425201606843851412402920733779624066611767256809933652987359257698316237051473110204854236678581496504050117594981172664059301978870143029552258193426288598770549598978206415069631197379949270191625772311379890686905789621697862385700103917341525931544056247746936826465571021917430339569870371093897841446745647739817859624768138845085412945221702783773648169999816615849673154238998638915081826858026805555411650782578473744466342622207057899452220787728086514881501319324837536087179087701864148879294666483194150548367870157601607358427252154278583876201606353611873727464283117371681543515643344122504638244721191686504280575925068803828392537928229902948248475912207531174006318847237958457171503721434734717855643726551911084912671198919246116805783591172020484699051784372952181013807191939374810598112842478187809883728252071262399512333804298619455662191773603625209330423546438603582952671366641902874013201586556912784432670683405416644422593922010907628331850057741871873614763031247422109645154295174781134086750137164046905423941704854072914900608339419216007415699021126207575848041548742217924567791634118712742558942744998405466622337371885614023744096011084123730726224351865045596601691261760598291258953908683910034202046199327656400009968887119046516484450926708450100381307349843566602987844109307459268449920442597282051557986151188497693990539444435475486539616360988359506134382562981218038027965681434541921803871186406973715260689423897707784796030397420816218345881331901141674846117364927982622627459580536153008955129757607871057908961301303875564185889109728466832084406196040041692084507548896349743115819066448302332315097506292436345588853333065584776308037471249997139429763574508002417230060722187099414600821682451702708843407600848774494107201010655403907583832301906926871337336087111916729743654605906963009599192347068004014804563625239537968125896226991203330986305248330252346606572091390938275662409138133656135643408521218941105732285548589598995529491194951080868241519401069195801062556908334458493622140307899392513562931877821127821125667578166032347941282400300912099703147257807979354826889726157566425468817855167241815870389006763517615214566527396254521189724057602377745396576656248192561477477938309181599634835823628269875115073848665896001172695004705583793149722998987529939646053279733732328126888172061397791102472804916550039272096131948136870277088013493522298324493525912443273588996910844270814398634780793130583689392782344247653564126522341591555382352457409201649171187993117658684574648905440808430044169977117498775764774701488110440380903662318891369450025422237584701846289866432242175562759901846133178708782403341771078936213501476168435197188570416213539609228226923085807086481795063639769651392132395340799846588123792928405907540655746981716449133290276567741184589656590697902477429010021508722481538345695675605050435903896076477897754456986300788301732455499061481434009884861249374899202865893315065195881559553503617561599963775493242135888460610244029240901536536199807347558533936918362708004159599136991658955178117368685999106225930972507598470524705563406879440130310255899109136317579457317274812237909582298557265692626238135094529850688905807685164877856084248639449482635322041273043905077837897979230629359150828385210954421294441224750535008950526752361254088187586658465498938565282415396582234267908843758792414919163114733690264963668005568638653519693015384540036170432897578866324635877827551404398861454004116125861348893234479352122893331112921514904173652478242484235514980730853939343746371461013820315792257782705588487748508587566965911505346870194010980385964515351790444478482354230900009648527507819816419496219225023136487719383649932637250967622211211718708469956298771379099203144204321226809498368103591550795313899385686060122718628437600388024267277978771798320060456524231110835420814164588724710584513673202458654923603433510230269211352382759371626816728321863199770537415655970760771160912053501212600843887865441480508096429974322342668012334641758366929545756017660332541826888834313778046961040238873425744929844010340900609116369032548571433608821758522167120653563407595144123160580324538324161059587912489311576123826439572081035284970886016054450698450540863809427052578293062538515129511330095204749763529183812140491105260786008181164548517767662292321647722549838410810259479879393963744845031214329232503137942851733334543650892633724221538745396417666722766139138884103168548095137696854876225842926336970622901818356716432659986653666616312419093518067140842181326769683317671299211350404643787343879468598505788276491293593887232073960462498692467444789259926094065558575116056478976746173920316157825019670501211857011306441036502255081093698114952072094342484131366519511475348183352750369288176479332615544069166664815901597823135132483568738911296415770324742632657305265303711544652262703074048724726075357770021666301204895828897242734163536039659932186825206228913293155407201512057459082914570909150272637393561405167525230301727795956000278848820824857360705474563733534905440649799499606420607016139887557925402612084847309596431085797161908706212316484383779058740849653723025188325490130502795803149536902558017215112538693150947520086238427722592695039084999846072304956753737857543445174974089443041028249105165844808135102574791753996601098608406087893445644372060222164359205205297579029972310131865868806447607964681389899952285124146660336040812427708943958615341876171092122610476093806104912881874573820850335291815287887221465411343387637586482245420547244553975246278381519219634541931111054330050018688092929007919398988956818096610228951836550305139526226313852914198638399847614013360301556134478614160102165331035051056538754561854525031851522363477419019553683475368585263359058007608953622844552104077561053352158467605438687086944801655584366665774912567442517652898389282666011804865531425112736051265966922646318608379681990584236340717173484492991333860059258470359488589026526899835496016956512898306534720468098302195049095458405956338898931787824044500257448453701863561079483898055754611176577123332751215260441522233351999957156600836865875786535250206571448206057371945059084671467640379340188132845140726400748970534088759457869830146100510545221844938213284997623036804935109506921662452238071671491546069697057268153755200256196219537019037412076742001071770240765165281214616664858686350125464606112287441560909581986648819412263772230114712499231805277324166835093980742418822205945888647079984125050635600467091683521042802618449993485267965018195856288019238718536416626331767149719053289865221139877630391050396766797288085142118908963473607049023208024351110326370181274424868495838127266007270611179289080436565368909051382298332037530151200528998213237699509847572137299752144728102769850120283906429976325589218203390693410546238718482879616591111502734147552289165561872258906879403492478246955885525210355527871090300302142882974670222715064345681184541521140899418579347170734271502021155731517601040835144489628927567706178502422473587230052609412986745944145030192079976263126502919055804768665433036138704776307268904566632731543761921975339443850898322409060406561234565201497197087311630049554218216277654290052527649886752857103384145160517077397215350912446299247060480211347379508024386294458598747233910753142373593482573237017203166783637535293492693311687974223595070168805918760544923741750699866171173226955795624262968020959436033940345778587394508727999849010801781244609365380902002591840855735656902603112739709108929530746460213933872800057360409051987588361358532731552249123633415917271180979523866198336663525372299869881676657526201652471299334985011337617555213639108862215508415622648352037146425039783747931806506180917303701921173548659327381544886222589075839587450047088815871347683484277712280473326707870264361325601669631204349002937209007490603965607199028127155081228801898661818612355033162587893286410019005038161274499807890470763354953457413341607585772251342289351708209525737624979420968864354527160348982613270721087964608030928140150590834469024041839520613665593223924146887135477751972730135055795479588307574645298123108550563558948323714276631914761876222180613458855115110140181207299868447390553534649915393326509944087728178851935477485776641132117564060842156662337906926474167971134574242780151807942192068429050661806930116563888079933782575950944967348787533872364267858848934863064008433286995395305779163791890161916818639088862453282450618309181367939477673911687814546522030595747416059874956522755350968462418596788620362570946046502406266414335794967474161027404733852603645222166406637564476192075931450643558156622344398484591300693490501444994169413975911941339253951601561429489509777864881054264224366937685978110823587428954380294415102038655888636982716819324243542358898083141048130103856923111072358723965770482651263556084365164827545185073856650497733779622793820334038986807937260000555997130992347239927268349769396038346195360687666510112278395485034376369276243820138562630841641265199545420434981938049510617244168140925949749062170716926719260178069721077538945290292185510096430597702229951804705036217789250321304129462871507757547584809568203222579115303167206977881525792903717948140041554184023447852009993300933677366881399387438013979589384332994690675660177842848942849623700294481658828014346683933029440081455392912360360208677377573275440812813332169107089582957024469126098518672921252748139032040525076492182444308040549447351661934951684554239471676256223168135316866617513199618912413004734728172656248003187133957089945694185281777171107244540295031137629076647353331661198882177244052724401235112365034955051869231296289134414616249068733947953331053785530810455864600443629674635377780924446569716992460502728140292242818891443052724068480882054513357768709921801986616895884113710295368316485559729975648129891965572518808901262717049941354573723504549534369705447900609326043623542145663086183452127794010163974993496854462615065312504980698195404036898355043125776765503258131519594585531304797444384446074065206862541177022382972769911250665626474060618046498097523295080661102920993569711448029755977363721143952250015011384321629345312921396313998555313154102141498308099847767786066467849512323878459366887620813923428545040471914302843221149491392375561059489540281548573640398114716698911713673237930987469490377687543458260710045228336813017094955642287913014037015802697906109560530371378387790780648931303080314020031263885282830254582569613158630114808638029717587201951823065277844893771890508377967654239880572819696220809167275042529253190222192899563547159739047469235105818658115059243694380944356988120044773058359165127382020787128233048802963464213454729235759109456667514393519795404842363722754896902116716290946729227960319669783536608683693036979803683977176738711361074041523649731959349015479023722459617480256220597253319141345379143189380876079782160652264422828629995354039406399219358397227555614870858950481432812152345111902415066547348039848597093697913932850110360385929622727701569804458916846999759089699913668215487722449716283222514486665160387470382083135101541923172872312334467141376971616661638078896269827390945737766825632002079490306832871739485093470047001233943118854583536801989592598488478306751426894845902409534188905013705015941432613961221123535457564404205039378321259815707198428890645800522384814866651385623519308995891365971710342489858393973861711279277495016119717713659516605201865554657347906144531701134807838911410776416059095711332121346556593864563137506878747543806996594809525493661469264005549640454716231332463755216752923853753764265622462506212681824734466246058624196443288798614465373384048569705026281067806196997590826093495517909702408442896992746410623232896483713217985843471036858295052078094480300374667035895655201284038942721109570344002418525868214135162413930300204558934968190541334179138441914200797247359313484892905298749798187502387333228856909386563351355861158131744691570311097022334149492803167055384483360854811921032425362964639156292227266142449478818445797085136074699745408234131757023683792601333496777496896544099610844850410481189487221748423153020649945641751762830779771256763520814868435154840903711359587683961854534012353382591099772440736601126092745652499160644359408183082783070711262294060762286378350342129918629809419474943427259489009314609067728188204471315629341462174943429157128668921289496394611923982751082990753679689187618954502729257458166994077394799840780278906367723068202584682087372051382476436106842050121563619118670110698889296402186255485925568038734503301810919583670927563040182232264610138586994020174842198279206084334074645360101782013855422807524451221291708839996124138835983651454810153160728047235925782583309200721288729137967982377292079111247794996577271514955682687220743065525332204954283926939689152273350342949825916111042602606064845952819345873531460319539090534230188140831606126640470107339769558395446813013163535655400040542919259571713363839998479465936247430258872326710394331285165311289000090699531993774700990380420641324796747311865731371972420873629988790750101722035989009747402435468849763839027389904382796928202425087817783083648732238647361873928729466487610063525066306691919367528912417487799056483200252273076919535330126317263119059804243266174609967183057870886654916579718882000492242552695077393344353634192235422834969275291895849215202362510311421619987017275922348744919895789754427764810321722021812958637346058968312541152258433130058972831897430240795596181638960086573758760969886069132260776601445507544458428465718628465092550481490994628275326612188659779786738556039624013625631337285093427949665915842906470744552383559515898976683809797912071632100492384588753136309963313505124890214442285396304025422882598057701416775865710021616811451264491373862506231070610098071047607765336919056166199234776826289287612002778056520965239623800911598561876664460508114287254091528061874050902335671827732635572204678804076072566189815768996183315035300287966676825046045806756898468218536794983430915155309891559632325102024422048979788896126047947691675808986751332844690645988420741259586806106366583876954250860538284570107863290389167867286716859217445161104479588553557947373913242340303490695702610784034626004733809181061028065397321564156461164270044557572546178480922925589217504260295961142006399827529062033406759579673944899828508012860965864528673170890499001703619021695077461453955822561452676863577615829522783940825916647467029468446364889497111417892178759083725342712290301091442810735260653166609633798373580863086433993322824791069447944850036665679530266062856925048223448647412829616280740352684370780195292187565351328444336410665339152067306701063391159275541476274323247046457401181152872008663848068782247670921051964422018537146170400728081053440597019238561930054932554320119095277660124964460438570155493263039124417085335140815675280122135524942881156047599795670335031676746559067104755096730087672478139881223727644645688422845652344366061107696511638497369929198545172678188511622939052332139046889935230661247905021930963076870499695596963251885603978419119961863496872075419243995847958840307312666163915353987751498469315349431488383623489983645650587093849174849342409766317168335164283721022957486368756038722063763661617936107780726590101175393950823172629270930492836427307396744849538945045678976219305003121289349477902157658901627542606844181992182441412308448414553506288533057073856474251086727673754173107449150181272351908363711407785198429857723834925625645372218727144679720528180434587661941078669797249036881372299788696163644520185602576755502573623526050261988882974836612331208489803203496952562929866208814404831681315401938238032393224527079566313205724596364724756856309416394220942543386998253602855029945894591615679579934235083415782328701876802040090846140012569602016453225194737544820503535173910555328313048868774038851657662967136972756261211738765878052650649269616934736803424567239887691742338544048427384491618968158324370083761203600832017826904670320680842131385131945789863244763979813081599614956504380949175705408760274702078596902201983061488263618220669919865363466807687892488041163092599635614702205444853440549747683296903204097124640853955676518089294840238331158054162541424409304999784951148265250289662215564660750257671303511071507554262996850156403001121505312903763545843796694215695310852746041520060158326307511042970399569298639441700155600283440785166201505326722165549068921467143095342688493796229344318065122700380884238127839489060414687915179332776215237434204060688239193899837820338820884913516787019817470699132579810137737479400398663365610198435561645886290099143823715198658163478328423646062046075902784953920440209891709174712015783614756721680241343892603919328037334257918471088900635092707174343860207952160773179106620923368079365528438009465052822563436247944465658993101336626769951909818216384125495632979766164556122578681280870593377248029472702639106168237162345233772917153383727932721944434363940014041988302499933542636522587003702391820701580371618723593726204385710162370213947479642143494227808189384044728849531740186274798077041100580805392914668333574178473199103687299546365189547775375161316554009610723139460064212027111245013402120916198429096329106022937464595527838782936321369268635899253394666046541732243670022805797475252747540078816242068908093724391226488854743311583684044844715828447227996166653202105970809005775261333938590344659327931252060618296103505035733490197066787798243717796641935556627080772305115077016846763759703395152756920700689829738303450004312822990000625947054755190635266480551508336703234725742352661918162755533049045263595576632533568120084487135606922046754082549711156968404651451576374130045484930149116250846547024979193172422361742177396015573941555024796595894060995535461803852142104770342031104842759460215905289464993360436889722103129656601799150318783794475404487237926932658075925219649616511479348414412416892677582330612431671543128956455553345840732106706620671447885978222087728824692772500188938333733897951515926628479234905294321892938655009009646494951427643548877962665087470848446765627166963211504417703097022260447785565059224682505238182746518142489578546582323721024680263419310319138976236434126350695177462618736701360027004775400243866386460832203869705325126880945440527731730213255809676037724204529493110612435796105755885572631640945431898788457700780450665511909614254435487717448837056130110322384803212373351872960359981129565793327182334604717362156683236309993138081686911605235913843270956641273741214332769176214801304675444991568922389152680595045532895768515062808978017491665769312203103721771869721064346022510129801653613832536099803826104214346530495072336914607325851509774957854913900624475948524876801899243498698973924614916498957818386846005693033034802932216185933937380164889059811800289782100804502424576832302126388937914300692507394724386336015636948871760297090068827748066610030378499541499460766805770480909120241809499112967961924089341565953472129872191064157220980578561631822876271989726735492699918153908782952206313707262360728687450342908131819835738678536861473394464744598378007002801402364828107251527419379554707389797239756723684355821173546092944365329828758081395081075636049464185675523009722348265482855387778015456810394595169372428793605152833259929613043608970419334501202245608318418518314154599559079245043488755925275246322725589426253551582808557236940348439606115960682478513676910428507077244332231231349597827228692157346343879449388500916744356953117024252050921885758213269465357127285462326437734919619451005779565204928267800846854874209495034440157826807353602966533642245748891977332693369198152711548019812500651063307367327808794435016101034419114438080075407940449092233035657468498815085750714213741093028477239054236150395098841910374944333681865347221404774404941077338435530980994991487881578008889728850815859582930425399587122981016718493809232195290479559639099158041013820381305697134387603870423865282209723059092150113103889417780442646227142148995414426048409523652890362723976594220926350278740806116131425066645433786640654633675106187916879992169436041089568589846153877984903494894159094442689920782152200089830874158588367489109269976602741459872561868814799371038851890966027294014702169708845642723650823280694536529614198106759360312037102777955431832497462907674334646410648496266024622983817699080865669356318983435034873195026002484437037855950626207215852389696225925638970296426835166805432416576089340903914907810276083829236637154367240543349009582879261964611877730918181658007253791015997990921761545063427750270366159978058861431551727260777898308432524686263874597939644484693205794991093219331948407159313626095152618091641176749251084938178496914087938541352946364943289595278133098938627626349606449426953329657223000072729224159935852780580072734909029566438384674629813268348790252168654900902754361544378530845340887962490291966636231297040754903902935235309162973455852628659299446781397076606376310499536771649441599724533902693055468097130852583939449088970155440838252680119016672767634992659498871959713608754542735579842740278283663623346877753629278809537123349756167086200098855118646905076040053984312528211537188841666061516909579068990940888568953355561285655851495922754241691515487070191916446258913290523296709700950306702485010911075897423082805108800310222101726373009374532190496499080596153083285050929477280393827179181201583855416120868600081526189196762709904595811503591250470612458139188141308870639365047795370666532515194380887023890376580100580035515122791407877063114557736716509167819448207552163937001160776733420041538744678460724692403382321529776518776071928417676336186031511071763053460459844459293426661311990700577447216182390382949797151046776116111047534946679693638094860846550903412346369853945139937765634823784297881861541625334383251207969566765063954748682512052150274467733539641013292320972315845298808217165641413466819950151560979596930416505718260530262923232597266600796008422741716063372620045055568605636538127004204490811070686929094261369704176764954053054308264555127437894790144505258332140953334597653906955631875309213269053336220788302316680028416315487627990429127436907157529494085561763149644511157972783582921590018630161580000475341546269936143017203801578902486442248785945404189477193090334122916102620150809351275220072709530974049243318661388020884566008353492090275964593032699575627739781079035142865220935537695349195664055831921032773116550406165639829003722281967070754014214799333800407783608885983559067008274110890494505162327438211755449019804154987853069035236181985884692775541573799804270000177653865856511066270548694917360630770282384964222965850654844062583378964538012722032028531458021946292621948793406086146078797079389237435664329243743325779079512571195278756930548579747730873634102706445683303253000919783975074602915272587439478913627274811779618351150261269659019657754994814329954450468398593019629327908735121132678122456484746583794342490083115183002401851386812693885934374144231322763594980717100519677830623866323013470371845844354916634965228874182442277379453000312884448525767858282543030922101012695056932984984891451540703356148112769498117587764749014329639628027706404096072839480356327442878133958187015006520586482411823338754775471048917786937347822515710175549048315575532948104726003916958305717261394314472378827941704855651734317593756807139137779480975884052386618227656720575208782555228584273585036536175059228632354133796111987704394231166494617221100841659524718191647670303888371808807200445570164311300187052480780011977432567916600216407324647949842631152991818564070659177669871866830018442881140924917385757481469010882613889935312808222098382200055099675066882931843889839178290427231849934822303700293446423653499088746172425248168200433461227596766471980097024388950866709971286499932080558467862754933567355878536222630171939917404449031546603707218201501424475284763621628194646733263904132913015772305747450981994606134396900680480426450785604976177685836990717036822126643052213193004395864113563846768619664624713576592092191734631539867439322640757547375289418305770996716023325158937487781628781515546146151015908938762720799884253989133948910559384040919424303857618393373691969301992389669437760437607284124101194685877577750968648572111474624380723538680664104624588883674984711631445445331681911158296388953566563484829234099618502452533290593302745944845410252242520800039072168311772615537545959494550388071565051276293428587037227489188015366326605613365917066363424142363569379486137383987565823250750640092560265495659955869767073400009388259322051936353308227076295267627818854465883815515299890506874093465669773613501768292753496836295310789829116447231629086808855404740433167695589811235869772688347023122094774557072169358070417266907679559008879855143376043334007004971381247674004417488696453228073763247629919900955293177224058247951763858841837350538846977112472416979043732372915575912563407218835875664251784775441153689881820452511273985512849987177259720398653865078252032162155206924886181638372085986872611731088283729991790172088044636977749068924245967689893383815212355004650874279274405617742643320899122973678292934073396910122887305081681117087126044719373719569164440554954166340587076593183638698635391993811356706570457169065097636924435722759863668062657111363221445588518781195588047365927902817824562289700309204482683774011620700074961066002080291435222404518895488845298074208163223106275552406346182193137472983527285886454087497059067489434234377693879107860344675443015891058104258477458956162228179975010783746115202973959452766261318982673626735799821963418903651955248883676568813865392630863258464289727878544395979327751954540413285669747345214830434269860082824434650065887644726964261637462475463650627801370506452717734169891211935200450291600884709178270732210074429402509805893837038031327029629557648175306039561512775481076652135024701516417399168828282912470456394763030884475562454194717144264641882697510152434566756008618779904010436690709514653480789189153955673165011841615704514258350804989259077445649574265664610963021992632402553873704905416416462582431509522295907186590407259700470881085311337308624394998028414994134162526396254170882961270513634832394783455253301768654393808858992876133529111953961495786991420424427138746851402381733662564440414636591166352119304722374833737079098908708632973133676845733806671983062321879857567948323425609752668532335919082725770194220157718341049831296903144664667078684426761407113423290462998567986975610255935118046197403613961696932081941676612512588507007492884865743812445253451683196887988499738166345305042732429439857832706812805333113632092458973488620177445745597159635790380182565691182235437705264526799569213461320195036877625671381907743259566210165852037039652955948124171297858120413780958751797961231883794596078533737793728422451134767532675628933361533289212962832447837887005412568620346330305620679779351869580324409303064277789314628791636298153373624898653864636072473192077986362998136423776996290536732789194430842975476364039735872569829222384741883721989614922354659875081173062040936978656545706226515714490067418366933068615978781024247741406190159799448199824927886079328730878204431441264051461133141201223782599255628033038451715105066045589583974813853648241743205252501411653168328313800973265936149074607292464633037964230275955364054915920425528329365553270689143342476491208153417239832356117366967888285150073485583623240116497524754931793991201976200473213871809966945675459932413863751787770849538680147974967946988519252910689114291025917599204005447688022689868592565243904460352454406120113622740912336675138722497725267892466822064541964974059592252710401694111734787243052619909915017907029100868676522147412138226622081901883989432734552918132775167273303018993616332335733639465075253099781920611772946276577550019542379754367862985493064459947242630663564255091692989177494584841709782179595729222934871810703186701564827586537730330289873109437845343251049906124117884819081830601488341434496425385939824416502593950839003538033498836975559781236449277832243808398588944568804225569567206539603203738525573844847104199707106313958516220436389691649002334536635975779101008934622448183098428436810894940216747780336709003386629282142437290433465141014767885821345009921023654070510922062992562541451772331766060201920958685155468430080472142388049291372533027168187304876495139003477660116629428751654099967837977868990551903751863475620914523061319794590725047641052019445601202984456503621053951551075304262412709810008552696082845652506067554137999647026168561080724838245190864415413636284792485161710207113928806129476348495850831097880815373492468580389864331641731549762692454438688344201897552758386013484982109632872456790881070183639399932891755006205660594499026989392746199986135314253411095820587340189125639361760918968855245703095051013475764013800907819993815233162115640453092420184653793775087047991029723176987735445120344538435142796681987616381021709365763435772080381927364823647617237356730298617240960492856514562193492389215352149606411141840100044886538235373252385358538820323056023781156204954550692185795199150568570500864675664346346836114849229674175130888603651358459314555213302737315423836995409492471079383708899412286466366724289148794022260926410588512369514293907914839747744352049733326590321319254623651888835173204215582727932173091192359060634223742264102313770220939157638090528830458977439965157228487448456985715267630186101840245414080702343487273008933015431018087381818147041507656430289272580913174984181842271777247285594857199285740745392004148632379641105133395042777251419170211092984493100801157819420218934298812979417009383734141932012633195365280536986774212856953255423267875330846878145516093892327262624943408609243503399938366696693230609779101331231950497060951026471004576041888751590685786561986798458386093339126909541965929482452738892899559436584649297103897341804324502531286411988716974851758121637841069265986985585499798063141039510773377171417521588456336593934202069071559429489302146690607085798410453668802366056292497547145587952329063080889095118730499959590728806834313585264929541191528767227178486807961822327818719423693772557303579574937445377112538582758823247852015265380871040777667427283275842709486648215859183632372480786442382320378560106447151688318536689821679036361620243359622132047659644062463824135141128406353014477283255906447423061549853106557401129830694824759651658153407907119854222420257138003128782280664388950300423335193027373431013672685564094571006026424657733240836052900113679271302602376465325492650463874904275638941254144636810617355593700039751586196295994207777634239362180047507654713403441361776133236514037916167432608298422102383171891336327536884669498036123922990385104971837932027543504504370300615042607262951196934201547736497039071728118251601033446580577526766211771424660020401662009685350432181726309220212880097270518366523256083324598151575225626677217538586702530459646935736600566079489579753301933057592238377701753974532958166555212902516896978621097285976329546876034149113406159559795937665171378054617021028514549508166726252790922431464414349707658018749330489041772087528800779140987581245372382959055224885483252689323132020187730919950948918404808015013210997069969792004716237605156828815155882843947129379288721115504595290137685525898640938719723230259143773559703810556681759075887732838699185020821048564213960236676469961984093788940321982992786047821479412722647889963490790185012423085032019246594064658851718851560251673512476882382709996072980468850968896047710931508855744805185858548589279956550386197844670411241480622694287702267789355321552697590985399236775577334013714598076391458474869785879218987426810194843368001475753206646911008494753366975125975909091172612996466216800377130688904608888989294616746068934195575581280178082677516706081635674573921602801120982391041089574280127774800576121234369135034887458252002105694674739246519986797823201698585632603897106772483653816573909841260514920643315120020838315256309126405589355366207406148439316529263892689237854899937446885670539419433801739648970447375487958874792049990756220788318530924474749319089692528579340474234631641489356050577027906378949719384035292576289316339550227852828141196913469411514688265630811227870305072675550951990260292717148481033612974966869238930152332542764545014219355385684632306036165851954078195502713909096216174063041503339020742726085015733443964937791928645470101297416168482796861209637406639753461446966225560743490378848164570394000604496839437619698674672024320630796059052074486460406188351628433838875034707003744897389110265227364486263659939266543017994514592304707843862678269014635823559522522644077346742463445474687408091297695836201834802100524918308384314528456892205464602173862850920125167202835993049122685985184546445138995285746599466321897239350919647439438039585751952898223040814292262781275707218247858155587356792261909073295809453080854692262047648175447692723762663549506348137317741930592046367643775489587698892224253030819670960537773465565822989308100678154366728430208932324888611763162992211413912405062039861757749571781326845004445671386805434053946948918227957150950786836649275999944565811706224837127268998214224969663120195099520698446840252375570270522380383223499566484022801595938509052298888528788297867941954257653629705372777723432371830757079619038587431886066441687401323485757198750208198747856180978677695410522086266350827662653332142518930931988126630743616824323124626567355824341379174714640622975191349016361091197896337438457523872355061626490397978877063994840749619594181283577638677139539453292403418021951382162220415839183559999085859742097450688189305981827202147405610675400122805258598699859101075652193331248224655909164886681183645345750829552289550660115674430886541899380777198385605695607735808626422725112067794681347626710642356177633217093683576965235502080900223014004877476453414990149334027998957806167061264352946838686876663862821195967811454568315648607569805771844324066656072307869841630547822645262156848881380278905450696539321349753011617858644877628008630515368671777588053644947059889846544032111690943267395574413291495262778810280059970453003725118761983736925899609202721313701769448571538539276870778016396822396645552122527865591800845643867411604686960696135079482968470601782945143132060553745881074667750899726474281012453025342405875123526496576439467126169856037650103806461461254469069598150389152579594716158158751765326389850202551718957742442368007078076582744644155709812917429652889468515139730076048410758265094418088962514476271396341091015464788405371022579143298230973124367927741533072808048197529809439429695464408603908691135681452013622560499865623907912546913571710727701651474960285296563468153143694470489656945016032636092765525653624467466128052695641647395434329937272069166600178412737105996743343245507443500324399986878257441996662177143532504945983532889715529634475180282988001070059340311883068717242410599523945057226144326966841726045594524993393087610192016644432788356655654222503835048865850586287787749724613302632057041695323850102162595863639915005802782118038976490383948515016904977989726556345702902588310614288275479703723440334461261698922640895881284969182654090827549812212639480407342434148419992142430641750380251773610027449959853155213480292555333918260508444951659737337319407456023134677917039466835538594229845999489579525138842541325171923782123629196588519747941040537898824579120427693540350016030549615461710394423834090912821132274740241577416425822051401233399272028973252761926731376862312616080435380714375173624691327663144123334412515464703414069946785323714463305357451326523657990053307905368931732600980470437495174519330399824226514318181037086332519523485089119732380305883849924676501317169180604241946841300903682845499873751135139369820033064784365371844020035723246567377810275670236474156982549729928388195320000611837057405760916615356573363032028157464251724476246502400326962062048269401121789423812731061328783244208759378666614969317396692545165327262946238157263004664771174730886825724275994003740950055364969015124345492905119523062045762348239820705740144781389759971113948346468717509739797688517613013182830860075378065356835919698124891012560670904507936887270948285211097466485693686498784029003826401492565936395565543645010256024299683138633319180008942914212740233810275450161231671669309079705383668521132765196805768491918925686652115609545457903767562043645747857651855602941874618029097388837380608436265556353536221632500224620274671353692748508290925308987313502651181750389495340594703881748057377698117647334598901524640601713749908035878027698495065037867113217011820028216301125550810700746023969736914494511498513694849980020594962340346043752009501785250364673432941209201746645607995655989374079487314974915677109534209943753327247369330539249757029875716272977809653520968838231594888184750888485974843742345986176043266526992367925524618607060014928764352300675244964961049843133773523525017729547706813884210217813303970842447746744268892692051476214608496138024521717808636655074932307321975623374484767146069689453331268399729169642089341148838360346964718844415890741922642422496466271160952960693470147050814025741896931186076963863489940864810607450473494477592732199887041366211578828414279852690669879909544095854182626214479604817457882704417303673688225573487581480171443917752434088206533122466550517218541784666920571754621270451510245663529052449943312567960436626930321908637093190851368098726505050612212069718846690455422231841815110427716984209149838313092803912740727799589451082708898451275708876688250152400441265275980231227633623817973337034380104519582552417596736372654226097403433990786072525888816014758593753980564887792027550961002739573341508755155161489680480189361770020467899936039220028437494012043762199756232640835748627550034846364527742368753398797654294516244285481171322843120107668117572032922577958851446975018007542390566237291320677393037047766005999967936343508765974630790003875903233093376819142390902847873699962382455343905951615857546442638639169135694314705768200687653935586817423018321347474615618904390128778830703485057066992715677047043718772980857642938386923196512902614912444786817515222021941203587481079727304282001136249897971135608050590687210820270014501244728849653919964631385152342129229960255266868084437082150956805816843322379868755477529894757664066589914962244750501561816443023745367814098687660479097848708959260301427382555505992935670696882308455157697233115216997282570534042872946957104794107076923817657385466225367138255200558274377363710405469152252807293298106667991638443414167303687506679130086745968852536862237506841665515408417915248867449444179102866091003748728114169960658147645954648443095741500112357365949387699394951412730942294709870303155660120259175653845315919879126188506141971442157437629049541595742999814197798319119603569174528404721117878139718589459085909588553768923954629657891577392864344808734344795713901103955684258999845365899233065078535915746669214138328357567780695903811232257429488675493851849153501020848226783888396398930452301895855708812656846152951280044846639172756658606879866898758030922078841324894295169697568893410562259314852785745410729092792843642577984581276225460425297128525814644449855487303555577125132490489532394914212425608961491260628218068016393147547920094505862892846861276994983054402532699161484958808234523551269006115459428682289647468800004473216999046607268430738749379133131976428416577999873479597886372457849197413868826588900582563333613941835447764159352127867643451299933635009809086122064292146035414343295330719753084846000485490504567550680716707594185432287997561970787582690014678885361621809577031823668349927742240888319297224053161493497988190899240002441672446255979124226997085857558662766396025207553365102176906106909620636248233548894451189136933784610286849172971118165507116680389206702980675157595536187798654901368776374758904763713936510386552357939653817121338526003424163699626246789668974496093358225264422714933980134499534168738549506142098838397093166535605536688937767324201382022010795994478484474075914951045114353928039580692138514737031685661057554887119609702306104654455103386059120840081584428914063254367067522125082063367474156574704012543836340016934814947598384642342379301236181188307590018521991553309139309086907603044943355083374844560361679271324288883956257929684702637916613081619169918012007572368574815743967308077525343557139931892767607875644285184102555920306688022643897846100919377663420220239648940877761238238878801017547728152101214994429103436431241829474497592234519462924082369901923342066201972946748569233476424976006585818437860322308615037151017006532845282881140028871728401307195585208062814700891846159103336717195167307754374737465017657775025675751027834901281146853042401392007007094399404523289440308300244828871648650733998172996569239571195894068791655438736453807586858812653763215136798884871174074641868166827332347678751813078405046514154700783233020371276401389991738895993175834897579274876645338824349820726420086185339469392245084224261718297899244655003906087854897915862086629561452745010475714025367526992915749512773743515521995125976395121680747602271743292550793450119467287108851346528254805852394345487060965898304327122932897755695346376902135972904975084263295235260847765603167844420133362553033097656504657425883373270997965088944851707603280379354482495740744944153240240978299671288475699219620723757808797206322069228790366773039161662455620404396793305851952719937886720604557734358915442457609574099257442473257559481977744660261248030288907943386484792753037787327424712692657485701180989530367085858087206688564215231916858246121264304015995802706580977332802055186573076791711300978956656133903217022239848317712846392565735364172543173637336045622057212813191544421610140483422845168545718491848521707550869453864013433767949331432719659083519537620536707747243781548320157948362870599406073710166542567901214061029761077333669501040841109876349037694862804189469033342717107718381042636299030450954339928827218092835998814886317107481386270134255915888304967281640097313609281821149131265551306897442772105224164273539497033852735934425549288865160876478267359671484724917904898132242726684187530958882778316290137128273429426446133461594505610476149856641625825513746550920127193995932419483114586344655368513422108470918175563323403199975739260014502665014236038982071526764213204746795529545683849886558160434756715521552767640826916571428237856415751415500242686173742459076244448328017059458612860346073085564251932627945378755177890301700857992898551358636200732121703094885055608654796215838430666707020153531953039003858270419810977376471669178849199781187540246158174622469125572125920382479348054755294200695131623511008020808758161226187410818082263537017299888690662667985832705505642236654914651035215977450105516214893897453109155942428876174155388623874739780266363873540752074879259593890787688546532693020498197085105125044554645315371431685864583550472815782618825602482903817617219658964997403315090220509706476150172868961254244129402957558762015986935192462227464758459491337799187502640388898661185930434186412017431312066430575478308407335557907951327181066323575183894915718870562348291364017401486542145652482236011371438231498383349969136315418247535274417482576679705981369577345013925916524254474652974501426830125553924906314789943221849155097429484762300115107205817277579857775487166065987778687602770749982640133953331350844346809588438089127231788826341104916055524310394568243710664468982778796768776804675496934940834864260235199828030846993574983642179695946043518966335064752414659482708995289764655940611899439107007154117138961713280066082190725215664512378510788130408104882445202855232302725545885328075673328607023369207118573064023996058829771322073647866997581669816921030139425095761809207741216083728155859724150323299587728737059368395194077525391875210722331289690908097078908223415745500781634879102212599151989822727291882570739703736734966210186859528578876178981996932750255562878690352697789508178672310246720095302740304111354701123219751881058830523698443182651796833061688646625701283843529692295071385849808438112737227644038914556253613323049098842023204360389875884964351089827119950229187257496419960181235661648554381383731521690805471623126736043215730747715900486481500794694789128458244127348830693945918854074398231464661803931725660496725665213969451607753953022058781585709502528750348051607988305779227979416429237269090845391557188571876678150142636932957705603631236551493564831983054515505365559552428285839288221714727094314056059451048300942340699873196035083428580280569344910113774644937233223780212866115775087687759370560460041173052287108647168079724260336418680805085204726990337488755523202241638075717193733182796782270296494519991290954186198916417311512698427649287222021162442308239977185171665913625408120000600185878333095407723286407960572085970183907560963175748564928345562020830828124804098794301790213753977123155241383471595163858696924896630504362413316215479522127373096279596838005229032792444891030058371439061062121450695257343259696830080974466978870954443485804742153249901742516556193532803852772529158334903827815249774166292772364488646617784018227851704598229287522195645154112931974400648707541700528311634678971058931113747191726683540437355894212285441601288871779867269569918987322318275067324900794766582290850572621577104970439758734396111687030448780375124537201879492437813914205517396286797594479359600884034635165261549696661612303011864591048470289066109290113284878279964162457362522329760495269767200054211333647964269285341714245340866495045453969906933509422326116711660376792746959506472038407257769701703221273253350082636365291287505337677592928954215635135851969389242161917034858786961757604925723400177386847413106366561933354422522111837868429828849119072900763093329072929022772622869707398577836167421500938281740574442749972899891155757958221018991873003006999304074065982179730138806567261130828877615283615108162859211781200425933154968013669702143358274435766251576294657284298481540594203030632396483851372232960313614739092578576520112333758662165607540162107640268491720423876582435775849299758027252229550856134933160816577396975252278931153290322981955107591479211409994226775432044521169594179442224756734778887978951448387252028276018823099235483378936357136855144338036977723430103782868414936381547401462802560393773199130608475268643889876147380995621485134375902547412213215191868615943774055363545249975624211964593553248560573275295741314750831905253093000267005076708834945279182332381916449539443553324822541447217743878731331781140820815969414277136838947682754617740773171021566610241349945797086488323867378473764224699500068853722520356835954024880541428255270505208380487053130210096522400345087994521051428086376360024643414935533421140233420297480593559334791760861142540396955753978692495485878358737535811845667593706864169067111785926614140853148625163565422429785017027372802656767509803453912840242260236051372549855023449645311329914786100671256405375809048219559768031008489461720732875520846939646444144218096490885269262525112818614839150390088451331478435581522256394208050032818839415517406341424321418523546118959573739764659622831658953063756585480551230139662787478665585835460173482638204474597192100567349508363698574462450223067447213175972037473363530938523289292589754286130950454158912368081074438042230220240735848075536152741116671282978096337479406393364038092134413595470617617933525107679399980827271041297402970617104942623091913377864496012427774647933177938869812681716311915130087649362806864521104503927544466230963298737598467966694944649980308159140496430590198394476344263614825524435047695716345800408197682698577895185396923834237669176211437158851961609617130977910857716062765402521416493923967004831275723985174698907937559252704974785944640041853856689623103444854654030399984255373147479778201620723275426536006724751009679408402979943917434988276680303656463292253027763903309601295494128619422954741277844834451027679899130517919202346601945282341721553860628763598381258827686282357002665883922870737631842565674217755621377998522669524099867201937040882370019524256352259816821511821526783606642358728498890680750512238264645259351677526950200356684433514113360924275409304049711261954772155378580457228173033290706576973648183367229721701330768903591931153860139934677303193654820189098399851988867497159803013775054331987915348216224000854872709981590029544941642582800547217720711712496901409480291896002347571908832788189878930879748718612588988212710948916103995168074646175911530916144445983087591115623992294176939115807868420262241324653262674348398236141744744565153964649913611313864905772942202285243196502935822681648441827071592831144911130030354344484337933195124176948925391403052736711258896329053632197265499699580658564084249479856072191894356083929372582173375054495420027295102129467943264449645996950349059466498217063245148629950685255586490728068211561966621328799579125276693485143162542830608493487647445386060193273707169846056264885608596949553070541521655507059137900974384936798950292297648070993567706689527501490426838076084186200519824321961636909187768749557909792356230363450667831237813931710543152654579541036547320443499393842900044668587994118332096716469912705379443718858090311095704092010714721713254055187242080945899095107188407559474264650312539188521687526562041192410621542346932294201630702420788617759689592112106639576554843752120380511631283497358927411496262123399796710853911990635723620316077839916004844178192605931269672888641330077459880683233912497323308953424274310603355504043168981167603772491989899346214030133972458254216369795220475839727266130222189076719078558358096954433699230203191296140512483493270696473162720956784080397683271552849603928167016064477645397997201746973147873018050968451679773145528617411977020841948041143797182275112152366867800110168121062593880987109856045173882527548686193586512778163269130998168738693856176973725445024351846517070597921667699044630326886580322735760622893122290424844003961016300727004182064830492054452396789544933792349836406338032298680703008946329670720474460508089769515743623624313994528249290490459255473310757933164141610415136171721385355264939525399102075137283652996123649395005175998601277115756785353586970176278699603831083909557712933237720942005029156694902467981832319974742187592792525736724279522616680581169050088653683805360900785092112217077749252246574428882806365910905671126095323657933750481324000187912393769754727838165504800836870679540360644155295656949934090046429764466604335823471058573068809108775104961468451744175850760588820343700557749818988626751906372415557763241202998727156950512383546603687912744908515447182478891573053855930772543229893395036640902953785397767061402252216967478061486639074487602303688114555255060333565407281327636548206292377066066183016278961388304213758214589408581261320761366511582999788773565937440301783847141682482600051443151944548851937755238729365124007238812921232538012809414223331624550959813077502869837863434441603318669209243427481480182818308674692460275223667491095925257408640549395504761329898441189681599478997530188015891604445906554645476139620729266224115924664936573035664407520514786574623920390449617151859409486289639074976997273176851709340675779103517534224421615726572783139772571491757452971974832262959237199630630378404314151524107977969073594500685935361267954225468555844582601912117258346913844204013130629396751221566042066746123641126590539550319550115194472176815989946693802145173086165391139805576505759361885713353733180251373574576702017722047783925535176667152634894155005942631823679333367547536188676832025514349715874973111441769147039938379828877237524771610493283792254695963101589660054121285538867066689374667372161324342026563447449754814396892593840694098609760217327880888344767584376661682401681366264580410718888510813789364623437035211277257796925589188924077373586713282856024695610204953046595361482002921825751949279567522200824352055326133773935336004705316869896517840191193887931142795387583285125684519274998766567306897206842679118381468263446716188213744700588016668248750739411466386931875725783302635678987199959362897198317615904477822106821076287266006435484434928089046569869216263566670086114067229620221809267072118782655390647935979034382615181098221313776716248265887632498395168987315161502730216338578311160093967132232086132745724084089042270980929512530696100570518844972643822200210533366821838632015089837943822255156567136915463364360282424352644447645060071052490084022344065228257117737628004636892395891110046484327236555122804192068683676865286869727427976742311449780902238314179008591931912718951366973587019036658900680651362131935265642026350960879401020719654735671255325191892098176334801406420521529544646756334250521180577500606451108727555577913784608690479028904605971895618782038621604757532824181071554431612155417372730703480568052699243111970261629905022670082603162630412189864492485506704378386541930841632198609335723682094921265804302626690419630879437946458387330570970528150662944815033227482958197709427761902042024366969848227614868951568630481154823129059579866677988089105338203296005279693100550627213723796841689320692405989494772145206410958195156250406575494236548567150178977557096613348158968788446894693553578909661139986453876952056855932659352315379045516150988751121889492774292079820801936570005560016106071698050798382508743321544565617755073161463292594684026772123900251478831555563256395239564566946541796081512041331617317901643402532649833358379686894468285865158944538005294032900383954319265342253400235403012630106337715918487377768126596882399687660672809337433754911297778658570909809258122118258524998890604948813339068993533458089761221152178030992433935342748148564313546541068052843052114436544964811527175044794800587074249646576351314224614857618637373180316835905755703357762224313176517930273803823561389671343789515277543114775348021468755906913544804943147968128460435335809923413167727870828223409049159652352132993436087440251369018257459542217435908769937472901335236498090550108331090795447808691562109780130605324516214984157606915638766644735836031565172907876267486198479599568693681653625949099238227202676993955406419572810269117859989914733768035166079669943120205270085533664034983208428146686258499252504688814021118351917322733447084197266396331752908723880390779530727145466473430887830652165251567373779285874636066322527420263484579938005704199321390533384419809408156877558866278948060405580991070984004777633292486770196260872364661959993200454205331545510264444768073333134635684041074139676062957120265939057310628503019331843875055467567430656186637656865358213493272961269865219476181915463831308363537138948735455087909132548348279905046394275362770584222706248661164844578213296025055025765944160375579616523272728364536435172514560688926480271226958606232279435488828438968930352791607128328828940109160263224422975771314325840879633989469132636417679375015022893480164812499028827432382356330259715221074014065086835844091285456821569487426959115988617322642565684057594175727964981052835992075925672303121000460585278235462844378056596828923368176788715002823908953801604539384947138535684991382272386290317382720953734057012218696649166890359869898487690486440874152003337941923524284603665514703386126656352524324309055044220900426080296473670240187135626077819289568668367822097092053189728452786890716539297814356185932248172991867799839831604772159104000288420940091462477006798856847533700752266675601232770069568136636298308594346654575502777458775634768252141606975953934214581582802301630791951022782414711810528164460586982692681802972053038192639043865751065215988350782760622488566726173471421971228676133134746312576607276601470542012880820390198410059240188741659999760237706751337888232186945553364338587342328890384472680149231781146833736629403410177063293026235136973436143862244462475167259323480440773237994584577738585879145843471502126827577078098361332308643719043133532190879074478416371102358095147493139456747479271753187201854222469352938356994287074228250260516742984189456622959549346575853877046150258367219119792969517887574024062501998219293357397227150318289747992027070170787577435092280171970118315245551941668441038686811044076784473812713440532919180159193548594934055247688300169437662622897095102951641481754446996542451142824045099613450809982202853699155387001760698045952408484939828596983306742668733944874566876368512634739192613395228688827063528715407633552184674523658480153473022436185110417810682053083682892937123591083046921628459314766863961366925046258186509680854439814879855812896317162190774796680776525933277795687896081245674025300789247343477170287047668399974664555820699598867637654915656048758652294448564780712524205137876882006337927804458905997589298466285848079408746546447872492089116433278739870453650878272040121436740926555328150169653806012639762888772446539986271455100346468858300573757534308984924825595005654848630000085212307502995556104845814937821404951159341772141189915612740169720236501969241735690477003243967056689549527540577259327021912266180596062489178063432254654393593797389820883538822972989526780239294138379973616354382551533720395204071931257017530410702316842728777727228806511789513750478073235493950974073893910779825199415218396136946943033505069416525808777823434205500044367976381622734547403205926343444761637643730984245565522445493058199713313733888076562273509430091361855004976864600247274544245130294805798061555765004589471817040483005196438141132664875596588902752881741954826497684548021734413293891722662290181788954872907665733513707619402768346148778730007646555379588123809073266268850668247050100314428908793691530952386428538328610492836014861674092445653102326553967328395031516501482178037073955592753229512224596549046996593761265371221637552523032131355359279195800472789608106836784828402553260088407446213440511521473851792912429685173580029555051398207885303295935107317613499490225106415332365899763499491069875846921795490278287130869263789830886802230391191507662433775403358697306426625374103176236174438947361443131416577752705159683815384223008737761835432120682621334718166971301362489698902761602629174389074441122678263656587654493997430706665612865912777553589435774693786404561816298880779585339469561921717505356757661541983477112533277746677087014395324590900943586801742608002593873276979961002309404798551047384964036852424657251386291297359307490674259126252269184145791715234011459075388477899145475969154748065357490917836092290469049054551514584879190457003732348866085981404640049476434318741320229312625508730312849293481213995261142003405200819850867401515366601338059579464592592678262690266012969141252043716237516611119601513666641897327924041284579297135329057262531938792248138152323384744867584628218053965818449052433909377026811498585913310947501890486246102059646086561236817695996097176687094866237357401834143372347305363342895080023008910043854701818026974773632204872322846924183744895003173822788137753785304277428092557169753437712814344780415623059980826286134275627177145679460098616371048583601274029355870441201582067874708577969177940726966740125076175105576952475374296971444874097345928391498983637022878875763165530865267469806625604993325071513193975453071026303666131618082346971582243930414834501696379941164575195761741088703832799105803844863072926237597638132098859516834781636804731565702650699604498836716729133642838757956261565687958446382850422061942655465713082730148228925878166106779333882064306821904561704363852635544579278758908210556691623649777904949452381799700800831568603490767669777349728550938434037694738744666297587756212268308143890351098841415253588596895875189044886508869159355193038621444834262864523500468913642797168493596707373707369107086420042634993652517714038693524811932335344899253495773456822420026140394009761612393132753902077556031738932982036369199015938827911432144596837432172973629237112527497733181205359260536263290714022793282351619517885117937227735167384653233219175847527764562080135113467822684512519022080525315215838604655315200299450207173878156407386726757172000254983716615521680557433149336699245704293008556001806082540248775477584785907773769692063957001372534109204812274619626736293122970638714589813870688460596102575013862717053167782785345798285673494016792085791902408408184986725109790689312074126654356508695150364913874517720904301640861120383151164454822625050706967206528420946519914197784935407562659240662292427189921622958472670122631845697337543726037642730639969400948337615014882567653534958154727559952057796029677002389681657224603182000214586600479011800310463681922515277105431812991949902588008613043283358497595133708053349794668955175946636047713609332994227795254948130367059780475061534205528816267990524594054492989654880500609295691391580978647114753105490999838833567582465501261893619007868391374041732328326661484362556155403839112397090817875555955128812491360869857496181353233623956982132314989768138854436368553342707755977543074466650245493994014715678294693248728788274881894699768315053913925353900233085375406372667072805297894027377772556572804384539234363545014770318321792948921799425833194589852809838280677710834942591870052227359309695726057046547746313344265807306755098740327456340780382144810328028320000156291787909455848465200099894981485998942250258391321507249249885037881520999592874701352646647889207170259518923609065851465908657576961222573011102132811525443098843003356331721967030598656142503140469110610028559943464238850756044906990861352652935281982719284324849133395474463728515069993034820046224190273164977213577712975392782686279356113088961552082781652600916163976757818500503273270493600178608189264204934042330565191511781301480499803474047321616285732283623136497731290374299755156173371257303690642040106074768793176139299931377947494698361750700755153949212830965398100666098395641789278826243438347174347063623728183845765530688383623577629454759575115291978360937986507558468422839403915901284751789827390103524493577508885244430999422336205698190680045176764646732904773305078818624638691090137382951530665442803945586643869826083790430946352339909685648128744060832338929358931328438259487055344561852122144625434277051952055313666810782152065252895132511169164235283578159967288266518934959046145559118894624741416588493213395308961261077728956059913352004019620593342038065770624343946765250104766073752148785800046425858523904507096149430425244874326417691887200222379351319379591301394125031898451380173921704670579732468025284475492308461361622239237709968600483558396221114981673204283708733095695310631776482934689806911952667566317354660868520862079596649742686191123752903388473822183122385907288350166438873929929092005107070162023799150738690276877601592158028245807201097498052996834157020438810019610413964989032670968678400914584688656468646107056917720334551958874407151052466407114047398566956095273036012310581892384943302654120954596551509600656740511941296619309580669555173694231649586582831943562947054738962295381191863772642213950396845219901781377246685381034181975423353643971226723134665789447203647215802343630177603719046042503893314781915181725888260610868047777115844758005091138860693899459507760489379366777313507499889058639490927231270175689491639915125665398833445896720317100273499185280909097028491634631769873068337967515341563832385277011078555785379761082379183367609404543996036140274861724214874741902233773413121928449560015435952456817228887892797408086260911895342746598268422139183700673084012166593391847400352098647520793386067124296276368702069180016186358542339338976963306927561697625373230488584867344310220432205636287740440764276459183792790835496710238379650434225488500956112172147502560882210744692230570733277761915198168580477567795817105412289673330406493656715282330066279667759815054778910842804148204795854460094872657356454041316994516044168359985572609731023367106859258641678138968163497057322803429970234553741086367480013803995243488600973175335889291116946407378315252451957114158286212292028066126995319801978458040341315611015421573604624546657162559365313678447297953871654643725499597242960143779846635560919464308033719545219800162225876374953340092078057181319733062573216616094224575727844268358713213272341107153109283934665173906525340224905841559951924509840824127604633116853875519259432849618132523449086324083493478331318370236473729365670451211237985964920771043794230980014442809254127307690320347134692154206531937190491720920342343168990751163202131477176341974985631174832145094098789274803007179131328876156948711131422728271949768633790973215294536194759000977011746521211358368901034481696290409405851653161542414160699880945676737602363644241293331222980920774323126500326204545639792026453031568092787815457025420120403974400066498778135943929549218971189901444177054673431501813360237091890663025861813421385167061845032175886660255936863508422379294219282683537173887239083058561285766178592597207919322482092711037070872909758937865284746167866663349612822223252760216113816918440122020436960546491793777714407192225162357992398077571736563138875621876186799222087615815131141620718683020326777738312946911561008944186381275768737703552044967995593917384296111199513763750784199470160368807186769475813126889572222274791386886701069634359715531171374854178690618932613830314919925642103984503982026113104048389032655314920267026553693042701169631664605238017328441933550532106415120853578609139765554561670549551359262429622458067677774603287176433515134710289869197364250340576393001112089359722542695226529758891185463994006910525585658390054235583534909110499584452074733118859437398538654869654435556925627941750034270219653886261483931167358737729028864999357859877688219808668703707150404843327556931854374256298846388674402618244500071156207627535134731762046490854298778783981789604027677767567539303022012832587592120553645580212801293760664796408150238903932559398454792798285416380508240271604549950309171974892268840587835851043341921878964240430813312588220064558374700897333996365178813202122550154951347107656431851352319984768942214042916466968644555414357499975306081813366924819548458581976978277899164300259897148963401378458091062931236802415086973289875123119557373211004567755823397374684841760052918063746837807113098125084241033318695153819989527262954353856759495570966893753579912040191360085505939486668055659125475232844020666457385988221016378219339732869297062330572475295029715948971964356962349565210770770251495643236541455665641099612342434929079155864422954730368047943893736991693638077159589131451396715504337694452722802039557868678977304036684785967336808015222773531374507220368169248565139732141530767450796134020020457830580965053856049458065690778569783198575012062446128225628235263368843368996099958612907665871300484826849614118290882558254511987031925900326597481700683524363789424588682925197629434639641569709960072417348717616708273032321640160022213292010375703248734086086810414455036528541641063940343230246809281706707416653577218478428865436315601069759896952403708577215026842951279982357943875524988941150990172627661287683741357116959611902338343881838296224616180184964856978574836249960876717993932577272507613248424386632397288215421551757495933039201921132085440767584628725096629686282491362471280680851542138051954324659672127786750910689085733969360105896047046844367432701436922463822416556669619122883773868763916937520582963003818831331605765576354796554111121470641243632575417528357335974938794373731783412305831424830567533374148336852361419429156040498469349305060514911966454839878256559796401756367177574797283562829349241421201284487693550811976639782668778678371181872122641690898954438186031705070768182344344761744820878208271544594755436536199079362681057566595385544646098665090649357510502192818287900596298404414479181449962047170468986565033500483863852094659358321706114738135876897769523616961153862725180470372922439223836019706453377665873442445485455834566072102568024843441824067447714260915866148477341097728494436338527104657781357943601879201417572801108747095935437931567101493092935453841847118355973678712801875043246476050373606763948152144986189986364443001193586152022177376941335405716854049092545413686124312599134624489176958183904968099805186769415094461834746029548761318625839399461472318122163268309320890257411692875908188089713871346745382939604456501007507799462326073317675720654902079526681484801834803540146306083680740942008789894485235334255991191794873199908321914822554639424576498574611134294694615558513292531395317716236985533022009290449332319808337836290372579349963929978663365325305022675607737971254975389742722517570651887678314098594832446916816119025265013289289694239500270042149196516403622073774871933804508098322512100158291251158628049826733246553296983704000929802362242905002482984258083768338632675793790163128506737586022539751766803731905865506798045442154111795167069952036128507893347810637938088719167034914213723509717006447218446304783627303342451429572939224470013422509881326062138477322701253735103961008877730382649054806096327409371359723689423642702174982035669876673237181912383616763662185969614696918446242483087194524929133222616406603226646027040273918247873526982527915656325630183207636038935186462754205913675690082859845266587168347248965506244215200100247182657750846424717331047724264450440226848082092491303849474067919158587338675034438908305521515145465559604227229734016440897396515673001508647523322094621868675454534342009109221370622720668783874591817082328973372624095414893371528509740336723369063668576576625687879782137590327012060823906587671458714793348690599440015186182743659029712179227789984033271295132458385386426139343978057703488688708549457039189643203883936901111647493063804871085617740602585309236255515928654276523271888191908019737537722598954446712103555145509624740754369997720856926489090144073439499940795226973629024004362733274311791829902241220680472169739080938353984219323076545355346514987117517782067423137230123377429712644118754829427077875517176130622721371276034034616447418575623898277484937640915902878389758454635502352355797655476678765651086916804197730878499156525679389287206227471072373186396813173607811457580825597908553530973601289339418558704049075831147716178851055053169622208801327374358615736520077896818389610823038950424876671029843926098741798805325547998478711624631374778825252934173062481486514313160583456268885169473175465904265964902618016224585242347926068847867974233344114517087806087445973483880350176330276987653104269570758872345543168968884954692104632903184893691389680203068389167476151125438072948642466569625274154854869802212902117061649927845156321905477601338358249717123799233128720543992699280261655565511953734945656070384595644388168574346302158006278604285531398817961869347925241766093944482703657265371931692806632455428210285324164122559845410666587653200026113095945476060207542397254654556710968191053694392383216534469447451696583865046801402570307182788430729444074860008295944229416238841530208531711540518198208903930227162943898021530501232809052307167570837838993339728511083761888446666186386997609098164138071341057222155081445033295108714373287656213995854940566536849649199884149331538405366930660081147978958848752851124613057019119732241459661918646906255580917685979868714487582922785740685767619150121981056319372117023705936241022989827965423155018500132592545706785459173369173629091245546532058779326791113373841514494952609369326910979568484478382850344575130661689642970601757596798919264419175913882189440274716604575651406024085556889894684815933766511013996753013766668972632950322746557981144383781270961074942537276316375536907454782248733869428509555227876127719188634658937425562203793436728773346483130561269413572664484473248423489332499354207081894405316777163684242170336366269917158571316060027668242346291384202074498961046851949582693930510829538568525961211479290035094274729982905076227560077962551589625075480045843238733076755757866733597669009322376292792242707827619491041692446283345039580266232310992444752896295356810632660483310364448963712577197396142758825143819120017191796911271906018034807113297346653399246856421311193587803403152533527123316311174870569268573581010324447789063800022456107084237928486678986522431454130335974713429287547781716739526660887089063641659392748505389953667008225712554181106423267343612460537008281099265748420056361965447727538784414501129213314814837157384517238089445341459307290692278331922345033459630970614591737013151220998392788485793658168955899649551923050659892769505544351067179475615023060734784018627847453482655271208862086078830413957392695692755156162332909861002871323925078702521989881216161364218784826013731664992598727237227143550388698491270555736335083007110995005212006826159663547996094303416983054139309189275929536098448856122295059039680440118012959976177211085334464930305683270635611608081510021459226439692780586891109152634584907096901338418127185510951173633344347265759289907480513926112632428484390682979370171281155092068500047970134422080202378713585660277878418846401080205307435562675181412779132807511232681520294177036590194743846831354731203185222422649567215835252481439739710907857313204646963070888788824229027663000863448480004521428580743168586702983141017253161358053332591252359563121764576855133652795952560644336896467495194425670002163032686681903718717461360653831898346925404574120203102269901930200497505214994920646600159260805314408395508200646928136193806742209124743989629458692283926935254719332621430735697413455472359868128074518083258952221245576234746223313078610557524587611026720241963157771121602022860229797170505335229324544438145365711774901939518889741290876440322829113720400530822146579309101944849847895346383525752927374314783548404647552504801944506920561523127295014394523258793179717197186641389999855744654026013201635764528482848061403408357871335960073350804244321037020879613701007977613702287484855954343478432231640962226924079780301921407016572248592828533563880308483208496465002499921443008727148823403443228069386228715042071626798454271375285217900311923252023778769555362165261691126045888317535091310862500411315404647959758015790261992756095877230852540088840205500824998759401188438269731285947862518798753332595288377525998587281510513684998297853122346544241247851180802353355563738248628966647049408837551479796857956802935754424949882390355936812304383563872636573802542517201103327635723457087089308740996672638257450169708894433612017942170490813666684696416719125609737669913111734455946951207337399783659461521334847533989048798257584859627838418268598401781760508550425653484417534329310948743526791277148402984790966164598030988144390624023389487731655968737306938933909643603018935341925127425609599268448934467537078363932187563580361361490445615810311053230319281692272413343334870732847133453575127480198812097950387942307579302294416394662691018117884050482464256103193454086300640387543551332117284474230388031706977934681940391300504599273096755775490639929794503200519207160039854116177979402232271690880456800743866566051501464411463445072229475675014808272136060983602038943714541707365769503653951411794996481470987739405543216956041943652262901823923606782555089579308916867464482935962148146325209502280933235401848143393540749891832756909805547682191776787661350676085120035502624380111978742147442913192037307676280264295690483677861204972255351211933416135233289779354388228806485980101427787565111957020500169966105632758819286594479015823626305382158045129466981379433357342615589841531586275723818327408593639765595196314484859093264610506162976067843840847045731932304452710252319540635866531386921251467730059157599466667031780219365942138302309202350504477464861688291505457111494762628503006068216007771083732673255416765539337499643325311378292850297627183780822150704057440259522324702915427576018943266120833130842308027342408131581420795784784862828743794676714847989351457910888546933654140169455637601710666841914517370581929869159384267757500715752332327287132464187092930847638875460668449127496027661447450460347110405264464345302985003986058256809302711227341959540048444864647884436704044221648749815728320441699952313296470423155287465494135720699584638461562786034724631021715501128192746762563373947534123812298018491274251353696207076171613331340097885395468624561817723950964970510941853491957450376063991901338741117120719696678427105607654431374458743966558112541962376870986793736397479769147195018305906589121261843606315859563652813424720699355087601372529409286461329637607366118922831293629145199551258712223808471658994762386259702901942983395669704171960016470826667709689218528837688985761940231492136242661646312886831989009143540987097530422996397484338178091824947631249371979944436268161843532367609222711771053568827314275889535894579724386064593008210757585371603680355385489431332152054046221145596052877075261407723574533321136742897477613285961298144589018593275543071432565484998045096785783736319241341797725164511110821808835359688224046155676940080758229131439662632010229100207620049538519759108552744260000300754536132348880501647712086144235652442605403778840572066636083167665489287137696906919182574098110565473040870171875222178784133578593857311437852836157089537710972086384224360761566160568952804451641022824882537820989977275759781578516043155063010713263897322778246257291636125595904710378525322593138124382195399827956411791570777142660939591794700817826039509416956845409316313805842364740264101804842367746438513285203842906923017120441199514067830571745922322689497715087123431564334061657759014723458410281884731674285083550323626120297212179699071799354400228098421035644086699274680225681472424175596167484545393878342989262818920590662301085515888853099322685884590516597641506029337976589247304688651519348449099169694231276665572543297533233644585925383365936251554407045882047693596861925655031625613596825951689432268674842979691215586788116445930106782352774432347661341011328051597846875773298340899839743926174684311243237602156671199088948114690826401623002936727155945210628038929746244699288947548294215083414909801445579523596285194221137619452193343694599004549228293845432281913212919818929298790527815378065629530356033611839941311441721418845435060603642490513313916056379460974221253775202634809564843020621975297251449543772563286881359292581438501004994654219314319066082029400897817789402545404425639795815048223139474232411535208654886099405698751934588445078508500898271845364001056222529996407947538244256836908242281371423424885986549319546512189247384959375228132757996611121375272329210322623427869600124411805613793730305620529396245060700299140322644796126603839819807771711009150340581962779856339739851013431765380143269290027589049830097398113215511522845404337792053800368529070831970419438090166191912283944115804235677295032392366293005192737007766557454371310833684395581014530516846679164016812551662394079091735254111349512702559078202808686847967477751655612007972483997628309943755909257398037973637575683794001355586189415882503837014697744873364357283976240809690630556792253129464305666963929284396394291882067282036684250133903902040494510677412683061623511092670262133019420895196902327491806397265745487844937802641900878202529799372883394973032888744373164288938313687633809986473675685883295169925420661447008624673748566621847757226024464223506332873417713113622713560210590628018968505830871713961841767220913789922944687411794197771388698274267166391986860529572632331068740165658658000364393443357680633488265152149585118038347287530419454135133846272019755204481305129389548932458865485018229216761662885369861848112034910399508167155680466651153490935931584731927595584939923647359736875306277268872298407104258366365153741972939374891825490372682659126326495537764051219932210360344986587463321422109646482315661471091574928307592999935374396357473072804065911048912412136039532596573918705043724369200613513789586317693527205626416890726920059817568016492270281966577429087229296125705409207118131785192604718112225184159454388828736924847837014150425069436964562489804683210066777557481712236553245604312304975234861981677673924007147504960835360664152856588699022768873449302654044498390406583090449905570075261916620801210377305410054369466594467905513995423217366886422645113226598068682222140661066197504981383120620633304577795293468009680486441557908878448659333755223642127684074200355644183289480919045805507859036790946581333625820416777306445936113179654920538375509092998590174523223575577408068892469395338940861312318317056051590479298421483911527198617555986690189004528549245524612934950731361058843723310434274531257716471064711132050433536983334178461212177183806067096236561333263112576930036254736471599702583254669992748607581329686954786302464004862747429925952833967347169741147471176604793869927454930342979130783729844388438109193236826935893377243799406185610840667479919781504500637578779586191684447728810589561754808922872269074566247536240327048165011163204565564024251168128781358450154327332736699696071419484145559217561912252351228813761328009319105038765384636171365448554435998593778433252702981136484586741082382395602146779272005751587434326218385187773085502414350836418962624804616751408345548039591862245723848850162092313368395425411923953107293909868790159918269903241931037667910734164691348985129262880256045981605768411802119751778967681031263420111376873336226247584956589770272604618344100267311033445244267120001120659737923517828126648845183840580734493488788124875082359535517346802092497496964097665773866900183516845026231590693332712628246929845417223019453750081362510469782364000130473205082871819488788557084684121143929806306532142785538413797820875804086151618193903985011090081065396320551077433625446647627418014581635198538748648665277444333585706935045692799805669805642955374699265281605631666127647992076392865819866510008357290841654014960571399382009036205461380058722048733836376254971509405513547050939810554763239948478443669558233299173772358615586404021062646693043516123979351601444926508709225351488603667520216370823291491381978498753193195553149761244383578463500261392550344073785412023921272128734646487834072502010910653117427097867235723302215443258862735760377781245702301384614012971129997169802244827465548336210050448036962778843853418707093199714100592828020373456605328576915274733715380306014936651967403418761704261844325391757628217324239365351782419821499305938655206340209675618861671297258112258809941489220780196358139615659461866009568977282744949852583807193549920270000541047935705668153613041438402914630601845097295888521317493250260768298516032905342026424111804111811424202900550926878603002993892844291243523963430000355053709004301419975595446113416053043347984706368065875293959827852669432081727093295194604964446741622472797504701620269608668713426114414060417855423245360885425472414372216650279592821013209026175432379527496706173154572490287140864026772647364930531845462836961098679529520958146465701316848424361380934008192595502001190640760169799148467145319247890075872318683044000717653822882385396122059273092223543375892140161819367538492475824944210022247229520751419138216127394690724987564486375289754798285716949262434216072849816501290647521630313151922661249396858620955346001238728960972882193433936864977314784183880543909506467528283565638108087096742072376486830835187077558088612918552319326835262397450427568067829557235216609760494405798132888446409348155533039241765150774662509434525405730261094111488750438230504189326306102278166863919030924380342688784467646043784559364976915679703631262345626076834080986160056205993118717176289440616885257609989879149665212078580547425047211424707624313328600932800392965291003546660340644209946708517590755911361788547118598624032230794434003929614002732134516360188750238012046650427221402785644469418556130621427854533438991964920374109043487480124386205480098525598415464185707953568960045276234889416540649331817680262759004323433284845178653751187638976191734374323922527588255548105749076668249104215108377381296140007320058939201266943241493347935969675848870040683103481437906411331805247974630902745901090047751580360888241485319604563222928726629190083566506197243196026567392240013538410631002797059097866021574190635131462443935136009223268044326741918374091750418927570705401586851229744173878896987819264310236392686055526978494105327151497133749167351701501158304811004177412737632192013319299553743064602167519919623752075001375674264838852015547868789266985448938328411502610676686701368655780909268582182543555896838311274079237586849579674058219566112346236883453272654298319261488723405294076455365625151803478562419689834576012049349708788553522719220150451053613029881131925317984765973262232051966879602725305884309177240109703488162042324520754169373257914919572245440110252613657295148663608220142251337886564524717018806680736510627701076827714308870041035811773763820853189042568687929648818420430206590176602881393113361917913938655460527306618900483043357314752785126455658888047886638389485870050250399293817254179243469623057939229701797391122627213650304930603220692747467428923285361406309674726262467162072879705805900678000309817802510110850847481789877804965076130734529283524200652370866918124896041347272323523773405762250124630163061309310973133681654161363742188467518321625319644661924991831644298131742100956321075901829509052783040855456604630012115040267643243119476854283908770496211411445184726664900903172219913321069212978842299891297461027561507519848907680555485649252970280240552167874276801863302350284150093177828586789907121624008763865756946765523453927248806012613574911168174419016158379883618481801710407445425983207554346523733360657937786915371666642242298881164828759560106491293254172367631761581411408616058617075635762181226762175668534471181242960001313156158177243703939848266579829199610369331149284670088253680129986022180502553858092970676395743000975197904339742031051843307375074911383192820704792379777277403158009343915655682902514419481536660164092326041912295326488993548588630985242123993855545693894684685605837665926071952835069968187240367150874891161637756419965387340779852556531092883698080442129046543502930264524916063446450224070594850724608108889788322336645187932442246245564764114886345885751531721662937485631431433226274863675213790108468583478694943786169190361789080853162065122932722853155328988604024055839613313947144845571181580513770929842984202341610446621224881671439352320941352290695474549943362772770308347561540213796770165948836356886228904989572316149979561372221097672857286909750128510698677365752587437059406493563282479690681496586497170927846729203470627124559770852487481364046933563929388966330544718768558157115483237878535618162901804113548408411268827197747543246982942657231361047322296258118135353828153792483708801697444309149659517593723119706393256652974273813242886794266497782525372783543791432791597422308188256802436703826924891834118130776843902850244948883648223335310928098595888016449499993362416505566720510800325727943048248755579176128058359087110292965340389970333242846033855959025843299497500343308283928044214050304238168936195098508384633924148674127922643981445285701824817785282668890180032731692892248554439025787861729607803849814066150269063601604310221902941293633783390884339496911874008164223850816822613984519744225935998974072302761165050866800747828203687073481069789060946344069812165582817479766802014185358958933610975295127915335424653713060199228368021572226758548848566290162323164970279357127234106891038364406399915733175742467796224429186313877819932464286287027015208746985416501784953285007614644265207119100912098267736169189732511289986315831837447633620296209515537550913757539981086391928637165151920139192050959427074535083768843208592317047948565504076710976301635601886457118999450613698640328889122445104191160034840510666882564992514542194426106783581110839048892921127756970061321810758949396001537068526984375235389398631361865762724940769876878118976513836171793923031069433759012034121992346386736762029107242165466112563662375668574851520617522720865040707644542826108249254619478678477606894990645804344575378028461611773719489758059779297471497921909905838126150697084294706743709438930268244491766151538169172911514368033678770976447700236649609806924567107874660521705168084000119546791808829539780413384726963259851711420355780782102239805235442544267930169551155708598521203739714345615667765283216711990456506580102156225701185986968087986106087605826551037742010371295304415435916746574707968268742570323204211980160636841174148321938958522252208619321844091133297646663085613100512386449910195135449342510734728696897728041380689848246732282730835265552204738592649221263349636532956267651920002522710669789104940765832581866444833424987759867445567908611311043492046453894437516756053431608850157331574695653770318108917507293045598515901963538943697913310113042921433139414155777764171737824330653902756284897333635672745902678793498507951735947881633568162246304512987527198413496642657391826149202380340897023247019081401364073255980378157226370922790547930818233534301410383108498813417829548320490965047059301727968226538951285018444011959242638194006691762197307262765941321286216196981046624321360204362831900121675543641602567987660154986834282648726860125526767538020977766460879988514478929749086640745137642890168577902984774666644445995925251489947386066602742582600494116599743691753244503493374722926529462417314501913061730385718291948835254477270588545114012107159365717400789753331098069299309299729860046438638076353109108807055565050551100770696979039238615024324200790321973614416167048870819481223227890227983528211181670068536641133061154384606137369700988378220246647958412544457367073690131227552273211681404484600712394845321635481109213852779590181348825342260927083112811517906582494604163673871031878120689693356859917743201650181034128296408351166336460606930685593696266933878558090329242837675798784601411156574900604915837301682277933642700405902434836276901809353856844159940735099773191824120669822728542252368414496594954814970122944579055350972685609142306802096731822240602992871755467925705341934304903005866820573762347518599425416994896460745642724411068541723411675138373324406089631135376780146669438637127140504718786887161698419518009536123583242037190032894560607682291676940264603294485177860871470754891404757441767583799185148173301128853179079810989964125658707172824300123406904194542822031747351274140299430123285313766249388305149106713262963815560814040197302333015160169699009145572303352343954081590408988918401489181477725160906443023144229889950383255730350024826128062300523566857781063309659486342675076825880790320723555840145449224063397578626691484896030471779958560707634789993807866915274728921691910719064774131973158069114375452520456677379555485786478403266694060357367380276427126711528764897671376331026856749693761471341024696340575201688631182171113060402275890226127237718282412310854135578007873895480940338863242595031451577888493994986782905526429538486330140830676863532483307263147996424129296543584306492646249133610056866385887385093008116407959000880690730099807723477551565821601084341939789075241164882950257331581380623710760010485108878954394591993514910769623278433194046610071576976019812251456348783662964051443793750316591975381605505786689423846975458391692244120951877324869618170345593597670646985112768550854519099949848171427123566636891052840266358844570853176916918120097078902269757522905332130358649673123556586845173324558349372386564415678076760726365082464093628348851428184852552484258691159584490133972121512566834950820911420406238749776265052079638067694104146818145932587927331313210392368244692486025349638450358151690854831368933372248265507661053514451950764054597418894417307337466672471785373499678280065187695766262528583106874351347590762745245569028272935740928759585653558632660920401909269073409482178411461376059143489366029911537293312158173122490957801014855735296950711800747809249033166208501862415535728122669018140192793573675885013201012078033776517996545269552705206804891201850907779464579702755197302026638095486475627896345518108489604023872003364130494596062061107673784771446437941336137669855534712739471400930175218859299691328358944157901648115692226086950376057613334434487088951665168560741203906335201921787691953094239902362935230623158152644547306987145822907844811189115309335608550331074861793968535826104740346343798160428804940560938452706373826223428919923302624666270297511927222004386434227372463375388769147076909296375412366012437438107346543224278706505532547697096066811594519988704436920637090108711871699620183462872531168580894430971200267921983243918553283656200198367806272049060240163782987377964538566589976961735030178082027979391522822471328584852684056045478458009328842244503842088245949315011404800439053360841156772113598338541561493371234028497061702252838024003415170572993763795312661028129086135428635609308103257892751619326302748721892552532929442463301353881185388060132962376400335543258733603824825040926361150487493856655968579213407255683982925519235575524747781674310372714930535313772457045340886614677092988015631228982675692249327930255621622277584251105890216658140712566149855461935616929028674435102608153242683152198274294148953212212808301103674262712496358455920781540839479793867974463978551758847648125249116585924030046286786378361560307921034753345213205650721267096451074767001649345969882374098708534889900626170286130879593161177106372365612286424928799048077627733795511302945132530640458168320457862562677868498835283726453008848475839920771449696873897230740436509662621355256673619450724379073416054712725918147170075657193251505934539436344037657534671509717313199749415629577284650941054715055476007046133055747671523035523781548598586224329805575246531373568325456072369779240712775508073639179057112157157348377823800716931211183136934482783770654920063879886382555675996307772613860830833206290023389881363110445087714947830723826377837897594400746087366156542098403371910917628068855655898768599032264118356344662435155780640087277312229338084225083124888163989256990689205066829688825771680236122357274435529291393660519314647817127207436232054317902307700409758253041503171640180944382846071316298308588558944661583417435262899813812108030523107245708982969821028500864242974688027656082282723790794659687376079761561124124350236736186909329199301342118752346492097748048210955971716711910174844136460045308672580834255652813791473969821060079074044898127441596055116657759439440833814700821263111568401687801396886053238256813964696274065404350341667340594114858660797702597921755174367462760772193243667326916919568461862399607788710609633959948347312671775597693642558367597999702823368115886543757758762560292821084704650712739926285078094519062238157347725141737179680595624433957781763165680335544954807233946945464677321398570604954802459494461714787598158495661628270264142408181920419749125805354023600537678060460924352285175918867795341961594168143839166163044617171788996097729556781969537266848300231299809329309289185635488019677448923148488977400354240779581878324934069026688352751445038963713987064966239335749062278904764397659673456002543643626047155495547734155918477700366267347234485346931112978565833873493565820480671223604353529803193246509098324966660475821473798664268135905724732568504126234047052582795079175481691216315150912096934880428182645484655648658764399185411952426413978097212433968684018321652323969808203287945377690261686444623298905903567378371404310752658492573690013976583412323106051897289929838983380167663521510372403933462296873340570452783060022734028994624243877322346363739871178524102343131169102971035785907063453935166337689058003440351641033042565340083990253973537200233745878578235160973610251669162530620881288298103431431989827825332491051052031367046685788126131512455001814278411541760029234034923398036964162310904723950400632544432557736764133894544405185170587171288692134692232145636407355268982901831377905915670039828844386649753602417858976758873404598336703251739685258103270449553991548730252868315824187337542382444558481456245712357195212754237658688973741407465966259647066316151117213777258615998326015033435440817345402191294123582187339413808897548026442374464362517256684875602753271732847151180643809688158357479202185834453514922685482685813685010220820248505106874389419906326881368334929360425139876388606451491963641222287672214072302442593425262291443986233912018713051056383290860048246716532808742937726017293738645789577404313429457905574165865458636017834897300001079312777972340849880219444183538620774036767475297429488371524511367882358526515330767387788780230324445752420628616180934616267936598737960634424690846124290192376148213385915682982374342528454699543044656002371853348168129822337947748845248471165461699920032118227264053578307439728135159843780578274458767815817787853689516551579013002998949966411967892194767135207899423324849720725288781539974083465687986269831788464260725903483018941564113653120490259519453084583723641808567604342842713094238903577834957360191398751723982614208342993968687037407702562034045666299930870758430730172207898542792544133844911284416387275615988145799758452259391123832826141830490728342610023175554359971988841556067945558088451105920780385336939921850097544529694052361835070068820117665224312587280233842077191739063044863233819752254103035342109628328309322647503989418471617369372621772131040923154403070375607747727583669054309418380452456649384129239556473673324700923145425552843632223578053511827187625977173276198926390714956601811229304898995023568190460230161933210524552067491741271287598059368447323256727742586215798250398006876557619791109119407965310143200723659737316277313247611034011255755602642861486869623071393167618183252988516299472649697991247264641121840096013533129289465754538859830970113739969162224078209333016605156647590989961067577278157109396010893407536793480708192606228712559404423853534297868510093490375680260262115271118071181770093758202124773632980526209266222760012051332489780311364232335955997675051328339170038774798986503356814161906138820582735414279303296134964363573899345455500706868269547222375356581928297801802282479273297188303468430234593883285129302844953637339910251567146251941984445428377630267904706259441510866155291301306725695319300691754948272114188270134998705462317517185264945439815230495622695509885728567565255043818558014263107674114864690531298306470333009255317436457165080634110903815117130859130918024863267534109045884535671234658796091637765731159661030124870142394426514801905554871534338416974712143353227178321312353938124854845370408388728644293845391052630008026725228652334174343241892100454843217156343717185580272876293260603195453001571226134748453449048817133371142368903043163223541912030000041685630511405582276170566454955849122235226242503550721848807309822145824952665668063681546674468249614490717000097642992082456604262869703575644541810985894492723616963877293073925813325461676976179554406036908216210714206553245789166225034731900459526052048376388422488218091484837325070747211191446206208487365625103431864932682569474284220709833550942453845306218095059568163029746461538071804096338020889912879199617524364326731796900520926145707583191467913180667189135792153274137267811308290615200285502232477092307060089771444591072331404201345923216657584726146144166691520375549055883736608610066462750233119735981737585524019551057986289554175842130270123325651419144082045871514510441674041027996715074871259017872931130239321875026888179581707916189732284027318154391724775198500244785404919598623832564060628387359623959501249245013922449738679270847629662817958013770018139370421716026715608124116098268753080670173623056188853739150210553636045844718469651143074124195188721031634043231887740964388212173595153508837851930128610497796071469188700171051516942787432583602402282972738097762226968138061453311842203882178427607640544886116630009045106953130168124020896851480867854894332912721175265157738652687021433032777722716878999493085362638894944172085698492359331346059146868108836636919332784999498324784815950093235300458084173641707747294527121486716460026654589803956717200026162591096519826719333890912875463133566795299316658996238038886694747895213120987989754896565751130467964703166466756603810480751750783804059218233818197072189546726962982217304259888028367883104285094956692415262402526734231192786554132331172378665942663727382112397668417510302127837311335857013995948371343395562156069282803542685609880033358686609064780761653279559545071390012503058074055260212346340114871738477845401677381458201824774635235458401381864254382082573040198071222983801007522139270778791457570324985169207272995747745393130461446341682874709134318297230729256310783997050677886757925630082143528157600818335385261360379462600527354792238630369486281995493813712318433598971208657675360426124851998806782806748547618536854200420362258313778547684664166870411052575232550109312477508139869868078584137404071655997599812786293687902361631476794220618584953811817851695276586269720183707695474374527868772672061316036005360124438828955918252788078480734162638663518841959058329100349144638937238913052822215877506626663294919934786650177581339805302088097814318209105889685708218898964274060196008975670765649280843925247086715054148049128614436568312320629426679922085506673394033371767060356490324450580028108741054675072578070180253145162206610787090978304553220371381362886224276752619019156329918844406698462190360472506047167279313063308084636734798825969151328463932653234680436078874980876806081428245731545452107880967502253624073881618643975504128818720377817646604306364581862850705387914869293646975916783418816749080730852301387934533369433274637925888625157793233925353593304746815905589469783097342961448630795721007043316067045961912802811880729734321731438915797435381544010070292666709354910650468240939293270737391206514844844770946837605974837911166148336552128283225720993968730266740015421588352375347314608063818662907812615349690934121559864548701312965105663623994549823149963655259922288908634446194194733575862000901479530383073988603442247686298353840884451191746522323899388984024699131520882115716018335520878197537583044663409161250338354645348238014400637448492468971675795211918189193859261448734013632106421874975933235203446926760997523939438477149825957766988322840160870620920456307957446379098322257424547566061476907187305130689151500154863392404713965648074111934394430409784743076974059248483950209382521533792594826581823720048539338676199263036940111068688170340399994501071012048176527363010976024761065705394685239420964450939954105554622511216846720464960378971126575439648805674694379028380486664781692975217541658866065476151781576810353705604983826877973423748186057829425030159211367110172658438140170335233126770877136342386422361145332375943181010304513252735637392681786083259293173235027815067027840504267106693144814489767194101092223207614357370897592080062465811648958179813488097409372492036305494848672092691614782207625103733819756465054346021859751712940475494998484535361614433712434348083749420492645844674312831594551305415533892631524274527733719653551281347497235032712566514498537208966442990292427753296681044240853581155591540805129355122051404452290489096738155935522901161784881611625275389280509689451011864807760236756790841136032579234353189502048471781215610350036540246184969567505009604154289852832215045373838608133955051502879707959249874429680575622484091072418867819830217716246850126093545909574603430718668565098346162268678771750714238681575029445686604577625096839858109021876424164490946606360721359316199602004277738487243091433492477367339151015952105584779651028435720810571440789407388684210281899180266391469444583846300683138628051190810313637616059238555514235134874371153147555250486354117320887441671751815598385496560028503611268027104327740253835443787362596526962461839388324737778165968484939209154820092319836021558884577798367673964910444782024028148856016425963120036007857725132193887616479336794699078025728218716477257021697210048280869256331719808191768858751868329826319833860439480476280195174118574039466936110424671929451420842170671654660166609674330827525027274494461728152911075304290853775777792735359914521583172953201630275841441360406942022179839881944337690012798359111955341524645607016213409528793078272543153476430666725566338142140271923632898183284250884826981235337859743234784147845935173293684975815875010100695382060384938890278623488137225121580867355853728632258101231872168088225627580484126041899672679783929791215309605393506193636268109225285509257509392799082616425973938278730502878995790676449064173391696061278209779314922628462016997988967922140665466218723362842353043710855266161547981329599032290700546057072664930331953722099234153755156312101635920604784877106541085976986715673601054760531480871303798209593307248654356474832460830509151821101966946011263558676875044799412226208976967407637358249448494302979912177963610596911925708813513857675478100291526321197338336574174435324290609912366091540745141794158139695391742786571186437126196166020571188018624248258580359952555040735732380292027778981897964005897089645658173450521837802340038971575341337184187602408446080149884742219582972236391896066636779279718026172071659137156801644187684992925273550314573045860963692457518397312859751950293078300553089210725058643928378639559465561481543404416228183643235947940944673950191025562545963566449286900142467862832986564058292151793695520352384259455358223648641583077655398917061482281656913341454362748923212724892788172136112333756785070071498802870504795986188547451274799963071683787946840535527131501520562628542812319129297421080667073592021175154331126787973555962922370020192367193817662443777960806647647511277077928296174114830824723297216084968597057219042561167042279206790318127766011371967290100167208313169006077785464146162743646189086642486550999881708513431037213834528745625636747298018715281478206308251667617876297912401564515354080337057647906354888704535760786975906724986051544008786100647026774252561373663437358213208329503017052323638555653856277771305949023799474382121474240859998351585009390843599335594663179270217413461606747629977484511201625768997711042010702553843269220557219228893883614585894731766770372075480190257829542437597874496662904701892391294179066798515584745750670078470874933081348696927617130753269598811407380780445948193502740451115067495059830404040637867980514070543693947881320918035990718073938619367310313070586370484642933560184826421578435362755784497504478165458000640568260775769908870925864876343323022814631041650556231481535790865076195896809021781213293177908314535395876492241847837112678163636706262666606660897612616864064750423903046266613301493733142329513904448521916329887619831195383042929264440475361426159933780651929822727085617749717761331542845997365960705969269502597113267363909304679266474020622514039896897736349610268874483986044372846012131763817418515887911566760872293669742914077793065834617812779148824624659321875388836645481079941275348264482820321372414766333264553566290828645362346607148080068210271690660698803704754365017619581138484938355850638702205570953891204522016202677087203420775759589719264250207987210462657147144207039458083473794527395205174460408970672684428624752735310545720334622862303059432026313583532022774247871943153222081167510243534895401235269355014300680690106112170031000947209294626998318622408826814848034728425804447469021554515225988198697524995815502123310628023358610608167117424249566713984022798437023672962559541680762837385662754298077988286525385680515592915716847231284694152889938003134772199285867306232760828091519737106443198819657672117537396656569859752189227838768239078816613952731577488899147224378699379372653332789559249053665011996397489634453217458716340650319823118771794354528629477080560674984104221477545050824985967824624668878205480025352474362270751046097312597170023039832964488126286940699441422242882704164118494627303362099863657156379571647359993005484091259455102737298678614395029315477793100714301635739610947683811513640415132070435548443575645249990127239127918916814528644257434433584018023487796854584051079950062325573036668809897777565163793798850381975206640506112342733134693882860059354542987377608020690494259524342802792507628658724001639965562154173004228003750079937552679432037774091564846589911153977615315707817074462376868213642415499681044389654627957839887017983957121105739582170371826655905190970449245315079408580649592165802877919593062071729611837538937583378442650806003161945892741378730280015129485787774238042357375532049554702337345700953576073585195337721346341203835653258940433072403709473472930318538575238916189826356598007796497898303132128393689441002595285776782248019835256916652504300692354754111817273077134989676326781203597908632617619702256132914272920817250758942524755671148687820083068876082816209276730613334719029255642257421064688508878973046756405751614139224909291837706996981025002587541384487236033161591557837336007239502869385588351690936865774063169863844379213015762672844531767560269289581854947324309158715505655988819961087779825998421039037123623972871975513657766282315353092299457631639546668961528326111693906360779228881447910721834831260810735904646614567693111343243981549399143054879246823504828658917782714738696164289872027856766395375312670935791236495098332223764995920318909844717709692410516845226524904670990643889979387799791227295665035180459521736533429656741229781090704150671854896158440288551167836194413942216014884142392093154235188506652152029487099808100025494014321594842648978643152734741377640462749981763364923314022436246825709648679179988233941849360402829611689151806601229175888659623964157509930643777165121669306961637631985914364075344424768881461816053478408602123627147113604419572459551581160667118760829718123456886087214683226225276121422049256098917174864063304257599356771773860135382636589231766402373242837267630266958429878473436127792227606233262997684843788517154521159282731050673274031836624080540716222313656415479545933862999184738872588492743247539630807435419524842104613786461195175994690370788953347699954242218291241944049082685611659163532382890606510723144164867898596762895962292027427879535372600928330132066347895186005049995603945394880946528360579904256354176918914561687757410462423340250920885007017238455450876136234365394367506465715833314403281394758389681355103759805524957563464701474049959309282817209260531097602539981218920062201697571811169909322492808262042602378799974180467000703546342460007441460849560854189113073314624841357824045592768895457850354347974751902626824185881693111796130573031097272304301373580598768918749805500850888381271664422795021501723268099938498484780332343862177003455087399531138175908715989283405630590827064979579458428469367127965439476377661214875818594916892844209179476082260183953512168808531212816138529885786616615493572638247350368953812134994315739742006284204569782583362552728692784148375068254433352475258588439434614100458919564539472434057509036682849569912637298020364359402155359676833249402581813152225253082374571689352610793514974119531441257203172440014462265342016707737124269308921904561274256410529733303363262834740520426132729674426496072955963852051739822259735851979806435550433123501732619699720765278094360900694615932123055375506597803567310563469714828332618878954478498882071907586163038586183371565072768048562391027044691919384055219274549104522159463713625626452915562364132242411589862289521520572540651991256321103884085097180741671318395371214124225615531758585503559881702470518436106430810785966979451727492171253208012083900435361673298842737078435701896296452222782956239129557340838562442268329923165271994148439078176571203733155224820322350041546795509939165942987674301199579645730657549962403444315411855514302312948972593396131565948053670862135858397933758605052122115480526639236695494564138159140447942368085909731330099362141194774480724464503375737981627771619731287686304161900721059119649840833341786953877617804963575201509989613109912397578037210590800850656374611410108806130682069493978749476382416578863955722716282494321042164189964813687293701153934960871501534970570242858602582628499894559449490725441186632960952661413800667759203693342600941810764719316701379248396236107479361561159380287273441354689291837825570900932438633701107383919681855876859426540953245177946715678130636871840316215083580744672596789099805039553700387101926134664856149018648336453279436014761431050260823367104117881956543148978018471483173716195671182715720235052651518340176403969102472754381027179669181903002601568391449386535150011517666205048810147672128255773958734522746052606787796391265605921232492049879785951934616023016476871606199657638950342976626049240142654687653506976397086373788806204652409273625562114045207426609579433697838922006988248961014880223430831195234069545909133551351804200026535695713694947085178459977499622234644770653645364102516469141436022686397719416623869174199049885600217827975534901832643876994378461370467609813517913508881819666899456798853772876023172385490612016814820631326009859668242026440331981635708216444964122393114482763735681957689555226628330349419895501664769347591303706155254660492778138029689245883734067910530663360810099961829945105709828015581581616352575010750149390777478952982757830016812700136376454255670830291677215672420402385656413962592218547955572960723669851973864726691675180742234371744629783059733935171382951777324171426171602363268011621471466784924279173009624568065990285911190274825783177614249021984312592065864135475347718524986527334420164031909187368612710144012247249684559390613474517885050265835783009960131276505975086593105465575143111286663005211113818896559841315058485887843220981206085724738859873756948450761701773056484502603988271518518262973354902973443134167401080470404839134823185304843398317058963409382924339831205123506036038227500051642275944577207737591617976142930866545482589570381946357100288666692164340187405480002209700070938884761909467876933422849595803848335044923592481328244083614913444935737700472813408420198266037179243998094979166043552093512977474866276062309647638666932161089749051673415669996581278404283317206437118022759426736891054122864231150114252055375665915102715119234641258359240712207667813608245571919682707772955741218770878675306128063137421047343918482658483727702002606345602059589073079709613651206362171970215531242196970786988125971409510961332635003988600884532372732115170573717949650937387374237059481322888365816929168165668633463791541656456466256791947110630382111258520728596264720268645263135637636037020045600458800548185598149078311285874532347740699034230773017127223696040403439004082200106624627510152836851404690638549952635494351470201174362435343314148137858209010850108377481833193283561757489474775424858643248971886281851176586575626871408514159386364912463264974729094881277825189040432358262000307869309823608664707655729596512716002820078920811786971262424485234137398077462388028785654649747379891479435351821922735376513878718100574244040105755611598410366087986360993139684969711663424710700111338897295187785343122834026509322304512085069790984606813533370605798062022163125218668579463001590752152440192499837183330931914672973783556372756260079410751654245181348387500873797621878827609914179354230305135714526130903587143826784105540628367775393300877504727480694111751424167356431432033544288081643545963467462928004503282889980256111804868053644444999425193116071460994948804504882984207746646777968385920719315930020932794512723453459182265991967951258536912137816362938944216803573331984393324156374258906002669111702830182239932102081383219956866302454833845854767393557336986566924731597870987180427920290012956876950420465980847999746238244643689566775718542235099766709385691798496178309775493987497461322824939415473575273758987299303748002595700980395507137001643513052130948195020864808050054157162890315818329482034616816774260097391110768987479623579012955546343859047408041306303088065139078249204471752624617104022471549573962781789365439057567797497278611944985595693048064051711387933284029773512545199900949190415238002465905178174846338461887860344419161199013503237880958812839739394725193955765169055669839764021690382270138151601053568727136842140715017586937978682622051638829791734203765459802127101506797550691648827660839516961996513311305977760337279758669506034300677905692150966616222793676951078436172085539447462663828586203417449165038803297299557830022364581215046887417184639969858472505937574323906402205600901638767109233411165422030413349979388677848980420216612555050425715182943891348562679447096111509031908465032234280790361084621644885516709591783000617172546676557073894017154670013559048075576088365183655738685539040902438495592312151919018385270241496992178157247055012443972540913354866850645969837384805179311253504480982247701998600196079624144054914751413961898157737050039470529285824834376362826546696929169494717835024364815351594707741643030875452141428052834277509263562446990584705186503588882263110107742856428383788384397071714043174314076039217262274567103638234802897102019630215638524806157387067038043679014585158318065085766490553593481099415573843447740668373857095523177754688031473750375694926547533715755239173781149166150029305140184921759487931896460334343039952192036459805731174732777526585882351449747649306134011835400359746228616240259860197374774492225607448610564063563188953343841236462121565666495032752217397246310966320117648264475491534514318386772507953426550583094836982289639107753966638832232227973767534827173446329332877340737838150505156550308838576933907106068408976961584810771245987901144713210713473041930884382679638541519998706365604729247544435643960935354592420957653917985814552444217439886982220521400348360938093197034840248616997323246467042498197942655052108735145397670437488195801386993694462314128926626260377610230985982354059282570774786756231635954735190756937644594667768698376369297145044187882930462933503247172558734167105678062932718541923509745112190431474251433070697859068101315942109881163530721287917310385606556905714679308475254203515731714205005468078551184198087977945552160218461496373021352647560591866222472331658559897688887359014757745191491012760961728471193598446037925181801254496278663719681369894184316741115712908843474311905002082742106312266077126745340583559990592332808934796370137857927046286568374478248091566129094759524056786143592339117496746518077629046214148776420565365282962272730588140243059250407858888421395477909332811038777479010168736900789347440404309480774338692242516334104936093410412611198315405871219183911940225495533471219621225946798693310877942237617255189874848190891330949975745998748645753526185939406926065936462598033694813121082956635742634404559161433666543946039271640684175034865654415761834540101547420630364293417547532047329399098335240652608613890983436695493426116963309536168929151617354951562979213741676007336442752288619736252927614974485252064633145327290265211633067627281786687282155892244019914196192411995757141443574965025405508342104394563653389834408406370331544810812366737468416838643036273735946868842532023573604390920887134554465524926592209279418984373462672411044914275404402131450993007559710532108366182070850507220887717786351500903868582978124884606182983116867644389590644912706353277256516238146707600654477857716708104999333597094341544176232489693243947573174132641104995802295983335279852052746170608169096136623404780253478681244348525693072089804818556970091224192524000762689499973875131791727223356222042127541000291059439715708661255442367106818130200009860551355549967680961709191001278096633511088110507074134060430954746859402960468743896754477945244886252903722527787204324686822698783171183092307088950020022374604738917126693200225645245467454703483348874334235365291093363172426985955697496360443249436677727877750114754887328031610558236940952669503233552965342254782194279522594945648628011240829826911013997898353633175267827781349704954564562838047510173263156617384403783149109810295990585738229634147866235189175590457547317807602767656798963864906877618563666297331845628022738624188536451905663941374119849059740188290572322667427665869708747523241258172355218496580675526158384553748139376728907111131370771677564290310009313328808594585705398740999913444598001085652096586689490110988836361123761331320175466213112553726219223453255073537361727487010064827308216547795982221589893489193252990890841317714709981830327079993248527424951849254059548769583020789533139183242938464041855684053853602321415346553980323761997675040352517426429049914040193011477410650322759365523884112157017600986914608933072188202715270889913049173411627306924781146411186267652854084808008324486232173497816241313029414607539837515286201225207463330087369230014021377194289798622013375220044462953872842341373035498598440038566532802422502038384868990635112332383253507986427552836386149518893217862281372369965714386238776419426251500362750415093971468413965901569390279200088634236235365269179091380549091444924273564492238794735979376360171240740007122933467603929885931516738459083101244005106102761028664406548033815546020581549337277766391101243141091949805605526210702421387626215532409129501296001903444653709245035102636377847092892556264787221921193883250737066063887826995625764850312646005839301625645676484390459402111053855992796204988050194338347514458570274671096937810906292454552207052269492421449181595744785448512164246315964649392730038075671125853559263627276675211213343913829696930222820157180567397065525242054164074003666444257011315904136154646730165774530533289490957992994310525616575548682442643624852542628526019616183114997117257790693608400365108678850995673200517020339120663921886165317019957368601884977722680070617511963350271209272496840824938226108445845718408948313227101602181451593814441198906681186099127240024650844088193959267010091785585002878964934205499596617114349663244120033483881571248768569895687017911754230321179584534649365551530615124618902793692754342191878680052638878834543879027875323906709373097671333115254752883539727810293449487490497478158492042541171393133426009054359330051149314529257776262433733304605437775024555081469307673682397740671270419064182839069612699370179185650746371920310468972464963105922305058800458912091173700988408859575353077436417574169768551267983247778830601262492004789681140207732998398466281311993810039632363889929719758107929133564381749018809245301317299606444993622303025893125697379940152223438120865418325500878462882502283287690313950191868360919005669500297947238723870170410009739433266759026117246629125123762522258650328685621991291677819462036322747969065583320253795089527208527321753775573653412641662199401483669059011173242893796947769088460672241761875200194425761265606815787252000612155846135089376257254365775405066656174361029789402592191583721137611851331484810939257340475389840497417432631698594755054109192812030395222451320652226926856163287088228838680003353631650041559792422797344568349934419372655421526888142798305346417305941541338615297626148502678585120203176802945099009345168868399936962633668091502706355355200946812254448240062671454434712833156531858165336205294078318774365281985538172520402636129043752799960353173202076421956792471820771812584964790791188843344769347626682951940308223989724869511862653660270298807871830231788216344622292374425902091007300463068409371218578638813856416285005234073836206044054747742066508776836630415396001362500573238977289973252395289580962532313959738919349558669336781767612532589283135563016141527336928710594325222673261789031524167405079021758838303697546468486008511118779744024135809600134964847932300721883622740193702658586537274569054095663693242236041860304618054677611952338757514786027570746075990718550095685081784432657085578175715250820378710996037626525307098830701003574126548813936742821633717172577024519668293198536706553121822478627717543324593446785712131709914562073865905201512455513006380223533320474266421071318609734646026418254474371142776390853328858552271190545609954748041413388587823048236469416744542893632817897402247996698339108533846617506652946639657863721743381449151097730007428982395496921824716166626663424101891574693243872871910167304946211448854704533746739315828871257621306348895235582121479110506546426776750695619533141223318029189021700505133541015969775302144430644706663867204315871076351183153362243365587515645625320700771924147490510241696371639490372555745679260819515607523032146428314924950697415244283885063337241780912446463198896581271074108952800710841562914707577901035799157914123130451433311293767189498213947298614584547983414241273228280400844914825865793451150590141281638879143573610156666431293082263343556988487961098256839605771533996412082517833211565732883068266316807503480177422493716742051451786873586320430074387658352859908402698909619447915598397003065904216843224527748209029491137903530626426809554475346542168717822159954682710565972383260281425037438918000912958937865980766499178686123148820216486894623564781385074917916729721149254144439781393653923193776425556930749815905142946921884281067392746148242087302540954156575455510823526831799621113657914524047233943189655885302344424561785665394374598289385905657518109450650318607371320152644619634777467420106279369323845675252165361675265728130097313780065894294688374228837668717510431373769206182584189394841939198177431379401538446037725962161036278587095238711654915605407034670747392362740655860098523262739730417331462771741141731469948293039370643242973124505999834743375755835387938325832622295293794566831022640200122042131884962184702400134756813645551490320304373085264474600987359094833336420174022198171858656214812189394055078262746625787770088969495395205955071244311795057106554231259179372991877758030735826414202420597808147736546768890057171224974911371578412709618277510805394197203105184319584668666493459638909779618034688599990338003833330652108139413433313717570524095831695595849495889978114865322282123362453417114064991546477273113296901049025043331415928342429356239069609154250826582139145677163412704183142852084542178652947068054405711336667305416999858101015640770957937365933878348375395797880125539212846208405317800365442103434495661693997617491825848852133534974269553086571775671333335259796532981770313366073171927233444825686283858361557788234856502893193329867493221485244309916539865491653548264343192689628247725340268871573406349820780931285895328173793667925427121558412234528926571322887257835771111919129679127585778114734214519317943769961761108589422200261245497136145008394093766340530645901342384838248881517773763413506839273182681402155802078599984412968350868373381705873112097239681029768540750065333748359421663034062486784776172123852906303542477226819452761642872456534455238522010972985194430966868420472285980959972993348568314766778548856818733347594324759617284285265170309730757817650276052552625399313112820837371321064494209499386729306689324166849102246797712353574750081503507188486870551740990835723455613134568164771475275857117309239871498767794050883170108599959295835217537659303630962376963488467730284578364221876803439976037721203086846871684552590116106952768487467415360209638890262197443094793562730747255044940846210290538879925253348059698474628128465478101289585683293405263373441696526809321520058807244619722323716792784122265768054091234942310666058181173615859060758771779423859837732440681435410556847125790712795026057882569037296397406714473990407089900399459438693344579867474345283141671349737778168376032565616912910433805691330096068823217045616084228207248315455868559435221420741385885235354868486102910316918401828980346917129879091233406784462138823850712862291603313616849165466229966959345124274821295757853405276410601038891034505893750554543711916717777509948771833114222102066790098249664547733380059209416961181637420363118319943682204611724828370170254276688816544322639461463991168452147679602458823814639658648551280496702786067635683118038744612326650842791428751970121474797857654737617058850266718625274233786628319806664736599520365587633596680016866742914800227039908919965840787777989635867847961823282784858139989809821420709687031527350331840526325268099725403307987011153438082827867429299984917347537065696508232257382940019242575522768106173732047703707117232230833126254554363532575147124820224315711180677772772284588151960525234310538512231295639493448528521460958291075340229038793636266354992740542577754762793610014164702787777599544144885218738697635603871852521110008414385623765184230369007872426614527395646205712579312036181074443927154766198755528153896730326421695628078915321358202964394399931291354071836124272299101861817047516666471822651771604617094708124347106583251092237988948835269810536743171938696626396651332614321772719602506211666838697660844465038479498561226180434240555033333017907822887241447893641869425325587194569023325912122047532280632738363022548472595016042177891595609190516038250272470160136661731263857225720477033497640340853562503029501562330779555649470090532476669400439245169775101047163156416850819889340381113609458351388978452987391797866060076172075001929087594253292336877595728634844952438060962051549296733682163789921808448557866362469490965759850334231364884256595942652692582965206922642501372924521963166664731236361897576964015606902289783419065085860154608062064846063278703492138859012547414809732427548269710182775745451058606716046939505726742484771427251978188628399547358078605390119681446350578429638918314131887666177132597096311012580660025717107170202773306318983894520311449543700517463742283894174057792480395989813378462213224227782347196452074779766923593461391278507810918660312858049728686628925245833521437080747273277138428645045149271847142592358518184971089990709056545078594830235461036891375366285143672211889125368415740064722809343283792392481479901738554148588372693041599494504937491260681187630100385293483758592912641200510698751841021324710832923718989751419230620229635019211198851609900195026193174719282356522765317793529896057175257049951542117494163526753565314762182705621055155406664374411411434656939550954550391120415924898217380200747665520504949141727213545215648083147119536876203210661490081436857051773283343980853163773114377886047371015525373413610606740525154963031608070894756943087853929571507658671309303658051098406921295251806655953231340791040507376342312055668261692883749402465589537771582533661636902074575277619295913918195834087180128923969484911302355205507314274125644152748205660325357292523613616806068310422693539034231834857705535464018959371116932919572190010169060011164448793265480386058384519900407432572848637533126633848153922177429102212967730606582170903640208669520313942896699678939063518634540691241155241799795513170849709785741978890516797282520492494632810538001341988564188661606971350535759161507649265385533037636220219846273562260565236923305403909785411298938888860760265661977510170354520105905558425201098792737580554018375803769497262745688597768465292763355676794097226870940033904008144568957322918048990344506312758098862845528498813394024518346017033885584673797060619597844732329473857262068450737084942760452007168267488984023002536140159387221224138284931204886125883519661373216583530282014773682805311381276429058110386064679634831799150620517830436127985190770067994138943248531440335787898482194608483509639535231396058964832111231774899857682802566917841724824195434063780342561733910442306326977271224987620931250614393776240910691978037914276498273433040690029664031596414833051779404439099511108152460264809744793945739177512171429370481159444262815134114780222722621789968129588629225536109551679747187972502483919810450379281052926311343678529369515121370847405578703310389503975279045330714886478253055877530508469957326202860895364710401043071828010407075997586062725110823949123900166907238342402638343746373842966337912139540703655500059999813069054411872931712979540672562128385134879730876882134194914014370378754299316749540389816687545005191868779370227239200937253983729585013322491613092110920397117808195539357521942469110678096657346573990073093767978028928942533493704574666752450911875980005470605010794473481386114023132275276047577982780341595053349038614861296712787053402501325168531865235158761131960312492445356074972956923775181197578478528918376537736236498371625351584104484207414562054719329452613002410501684800742995328229654246544208526913221447495222672174104418958061896129962129213050006934220855073615536425187729230007784769678919942980708522937594621934606038464227106910507366890685057107868258995895707903168982103208943429584544749354508945872679572707442915988592982387653591229645218260708985357761686287641206429062364969837405981573491707689146512091083428071597791358953194337004824060498301181694003532798668459540818204106541016730542103236172514035561673176423739326372704422445338948775276412603189435033793420560905949909389600408219709358456506727982532518329768373446147477790886083567276531710406640477734537636725933616217621781702161863383000619917670507374295006938568982865910746714869703500138861777750711109767135133279745608108177041404792630833277596661504355845717343849935259133812298143766265405172668299374605208785396637449499004649094101579088121606860552095702309521724165272926892698929615747733981883456616313105433698774488851930654500805562434261188937977012753544315036165533334838182642372963379263129671073598349541725416268900787693729908490685762930114436422964924329239777324406107760942038657196570125622000858008826412102857842344048188724651336420831520134685747737153776540933011605077159335145947865684353852320238519116110254926473081345059366198781148163076434281252486592296701425121502540019112829802971955139278533751568822345781147569755729709220374351412156062256866987246715408239026503518581403782974272931936197899209111495084099282810648158435299700040664127002873640951283989874471793819873750508546308547842822581318179735300169954527335178402490754695129677746934118042676242193450154960965603188815974964320054820422257439808263053835586562460069563285440141624319686532021529426215287745336259798299354441546961857525499644556592980005217186771352512512182582919150585076117418454947547095364000088679080008003857617866319993818366367314054755938283541688256138394119378552267333671672729708852850676651376024422614683534191539337768633959117336998200949103468924447614028268592174356524762780595255118038527502495965820192121581110367337655033536820376681747855622186938882172565483988121520003108960872508516475556666184841714864853209853651714359221969544477811251964742994287666653414890683987872616233496576337474851258842197480884021908944407176892438533966412240309674455935151331895937080214661688784220824166426847225701225853519888595534217668466529905324016839218790467900475017365039163504549670233708600451426804599059175950756749672425049021044557680315967594322424531161943652767931060530990547669243181002952985409188336591029047529197767479175557803411251469075865862030062466326602923368686034277994572496083985184651254647542705918558809809861919543507623946964234824099262339725386330308733249489876535184336060775306986763112977535348245719346383643620239193224641129388382288851116520170140027743727185738461773743374070298329000056108468186267905293002716833560879897925147211800994473420068298374576937599689622862174085644047353534599320156069502020799228172831515774691619868404317072011132323575604757859238332198396758144863693458244608229358749631898364131809384627343836580946707362619590316632294612200724707244679209028358228905101080836434558020841979332201013077902819400643431919085234321298971309014407128480874769096376005260558459771171757732998444349941548902198623753862738155443465031570025698237409086274307960306462851981979498837921642212994237875686184717623717731838015243396755462314271383423155457654569642660786445736731956045533106373723652921118982195167847648493043528716250706170723702101985281263953872894321452003438902724089736264778349929178539757358041206847598589936280467334806555190690606339285002359115376933307939718852154332750104496032156104380446112579681201585802693570385507024970520079495559978450446887901351672791491592043179780265767768187361866164271237295459740156900270769308655950351308851155125013425899698287451971820331497614979644216199060035559285423687390125423916783123735840913354671210367437735280576384152595057720330932448454285068952940833377150702297461847342604264592828666657594827376804627332169826460097212300451178378726463167937016153421423285159536885534114278012536793448901018416004742033307970093731517752460949995816569559309840785232305386889440179426005623408992334972907224490400880198594182760986143788095450609435083833807224809221277443902975092822689894031174747958388228143698905685095728634482934625797532309192604209801403313526261477858718053664162200319936389304499583110841538630115976277310308486744509334091593608338499694190446130509009827426301394149102940654792681245096360524792968164844000146233052055645970963943362266765272894494317050166193671031100156320512255993864712699537615843555853259713220954121442703489145790936631701613576467935803786120934171960511866697495105038905858877779300735139077786144850558476457730518874120302026951107941579403373076088854936739711841996865444476947209531603654553141225388120804194267588886762552620575242820038315229073669989345613770277683336522727067698252671822523118754617568581168625571827364249457606735731624265971255662073468238888760274736163879871476449589982178919131215999875389683516209912681480773946292760509391494313583720850830405637481298231696170106187740768493593885803255847413735041184608939496975155005410330600693584185920314041478798335218884804127762672903373997195921453670763008997726842576711455066903946488390870076424468863142367310754891783315688785620159152376948131959291102521205201469221214376656412121301399945945735094859115386027136749395019800220323038245085673506711115897328531104953269962873662217155065617222456557351334200632001437218689730921171176209135442612346219533383997308312109278562654970817353726607333202817000536562104569458071231920022665186799273724236936210752317095814256277773655122496716335280965717623173019876373931634805808185524542726535447959806375259152566316954615520108318173877349045827617542880758506732551994081087987783261795831621926578962212077079168920368034298522005313566669344451758886353026175015361000622540430307356199535884393898038658038181910515577689983638222838622175151310643175088029666982067060017013054152579541148338009980643598560870113079804196223342397202541491279512178778678637163518962567353370284289330861675446013755082450954421045601874190768121645502279492261618979274242120957577001595595858183510943968173990916303829361553829429419517549430102261480027668485004944673438179666387622822503330752765541161867380547062555152637458736287718303037515737344255626484775516552588542358876264717223566759582535315228336930252077080554717606813236984328521230610167403181684681674829679756737556922186487504306812153721419684412605888615477388086084185524268673421829981175700390478229775233390839802966352406932900229178125480404975823692685793450855016736637654454542427815836760730282399073643841537267161969132853876551615543349524194526054155002315092641008726492298311208419687977943354258085082208700965601098469278405828059230962093861619524690082486951114571638199480926791468271610786599669408774771437181148702906590636718987084741341663110654384723675858792523388479790571217053492142199261557174457059868224061372954405242218062277266712664677945355841414685100643168587371774900086106619885392740478142240234514583409634084723470423873421035419698812950800301120224771739092667523536102129155973793876056759095626895422067868960472247608436929010910290368860162991714016235281298426258229415361507408549917820501545915634105151633020470271595074365314037880440035109691857099510960436809237702590306965570648466309222004166227728269369563035206165866487591894792501102170328471662859906370485034178725268292735391096131874213075811547510606060350885104851775517570959131226747679948767056546762154840550710261619248674356483619908864663073058790616656712081921728642161619237574355422890330834496860854269400580577747490126925878217269315839560930863453800329651207929164239527623154163478041716315552913413920903207291549518713148626455231022390107899642646292602428041120195610490151110432692040736564022549838433271913920511238741197823068649468580199442705789938813243298867660424886469999789110759389460012948973408607086177637217080521473261789947368234225342773397095523602243809324669471050810615093960023793368996737412330289209793428348513040127540131221448124531841473997947994669083366082687009104503704501913883552569947936047610953209658642350934649443906696620876942119807298517541913508893442376795499781427509381236678019168518276576243847058717637799687017139880469718739085908049999278605870042208174735456034618188605654964848526826452756828053414697574859424749916573311491752420872142366917840886329275579792785872626640092883749800581761921225942513178960546791453206920389912035163060029184845358567670131308678688026816905336415052648745550677798355635863416304310912689943619885270482375954431252966667614353627396883902344363325212560099179994281829286670091126460844470372861728985810327235521612297222511924759875006834287738067419699447987807182542368841063626089026244166776789316616964648977761425608295424967661855040754289370579089786861757328389974172325488997072719784067359953313364436291679124244901542889305425527749979205413900001360170244888477044018577377473746748120985510502574119222120570993440815576331538761084707625780040037808645439150521355838348496797039518904022376104157403572119559875132311995413704379295278308957744923439929012020754325813106325696581157492120741415001096246232911147485257352906564130890551198947210060318396810615985073940141672507519531276471733569350026038844722564160141070462908707373213425862885979031690812030310414844140547028964453848271433657388651759600102598709771171245190984741332278077114660809188339052417798437884258169397558155898155483840340612282681060510008175408755698981350352308758482793172268779351287635243923008437708380713497712957423328611142929226188592619014495536951415786315425556971952460317944077804535912943393254403510063066791497170470779721706049663106278522352691781608855400683533473358407431187012503527240269581928608657290923512772744456517440557823633689625248827655165466949094704464789764388171507379485103472203247113003351322547543668472241047744467816098480784914590683111785427145123851150188303070342896044946927452676706559183007596338395597860435428442964754634664473210148447414112031787491046987683805340173377578435552648301046401479840393392711675185195408902077071684237854680691264394651111988807078734831511060916351920552299965387218553505091196776592596686159576831016063218854995433525696467877042749384728639417877096304564327442009989378586082872869955114600175117777126653761900621132429175652481868258266300134727565118871009256974287464071531867020928192984749510151689185063414797536505475310438211184832315391441836355430893510802356253436017119110051924321582188861107280687605695719723827459191111109752608429963693702417529132570019569746537187511198832334496977126347779320889621778302145894143943002991775957253596844361095158384386536171958777640250849017481865637765593982094054502078661790444009976427778834722464302966801789915889742041445011024634926119412149253482946050148287083764818333498850720996094436649011865462204567240245300709478670758525283229127584864494315202469607785011486760653999032261381904103731417587363655807654560875650259929119828931992009350513541228496901861676737130020536357238542773654966715290367803037103191880019069516532198874215342798665851080170564399163646801408245387338171832387815440620195037812063859342252217307712614970074503005602819969627679030966672224588043135170929445259011254747218571183638215880696887617837494393534242742100734844601703173487699087527477176423864628915459108926526121897279225495754435660672525545341241426426432788107186773248271393473119456928696598190067327350008117887653089393193605477896008466897521389266686512981720587953233726454382452943539023483701758157809377114297408951886161279287410294936805906453505050865566861727705501245717198381754076996138938149498414172931260131963012735345118598938431594791900477181448381701316560818185602016307184573437451012021461099070352815476602418771251846041466930121856327191785820321479660425396041220220395423364909889604014294582706156958271100224947520033658059822760528901448813787293925250024621187504734897159404328603683344821747941824372425932213432202602693154947863071179554219846622532454556098859469727509821312562753411229299225619809758845037815910762827612844862558992115083276733742030629408581750643761478334791151089085244405998946331405078870324477128951037472426500665451259905742983052634742083991840436050595554282461863248221932390024189530014198302581927825678472950972686342441795442059607041165767489352681784324138581192912079358894240155298498171495774369728268399530997435712762169965023060659527146543696493144162846121587026593523331810560185614631491536532273409621949205286407273178429273915377869395790279605936231652686197074217044447392798112645913076457497047879580365894019486562280632501230969067280940704652291352488860179994753009140557847082666824862306004540833975817676497172866523581998605183580795866319157908333258987616846931932233681011327926598567239670601469011598037076144161055757538900007259616009390957488394626264376212906460298113000334537290924516431656976801828020116844515547815852408339073717639635639161351061159732691714728187414031930340573431636269783475731095433643468481360417502617725003931541853333170252344934907027720674656794451154234003339010694678732876946840184496837652367937132746222118072304001061063056024333664679455276428770568117633987984851488680120722029230070467978344384655031877639641278790838682381541891633478605803651462768663584372399383449243402338315754099194930450211979833241991921191439511049625410645623292231332121215024479465606703259951782644753314774154942474949817888486045766087990371696793767984273762325688621620843556643258394423474791069511175818342235992830224255331676898762036726817522430219225537300691643118134841836227812625089285528670740421648727401709313823653003495008434325645608892356778116981647974038805147573156481535371205907212995944138161165223844920986054152883365058367305970437708554485845146543153314351040616741014257156237606360787741179832147868249082957463380236767805749533082706355132538587706508289800806597324269980180041773263402952165099553619704689159475631161715036812555884197904721847832519760617751998635434341499000188612995271640547430554593072482381340857507155697373617542423541427736180844442252599959366287365892903433555329671088702503173819499966800290170019663991714903827783373406420426152333718007732362387937545292288584894146924525347133528205550492756006583378106885619749177143917461177893733952786540580277469181394674570011870579176757144374734287295617566882641695470447963973308853670022855161748303382401742818341107019197747656601171432167817904091750447298093715334503984902836298369712566599306353943360317072625644450135678000434640935723975865307242634997507276708558442984975247916718637423247626091906437752624883696582168235415144882290405921006465994066141491345112952242735317259552022969700898868017908194408164369940408071215594169964982986823146018730475701409211718843989423536259522827721101994593863943478666916937389042773010634261041130891676176950200164858719961762452338345693609519177381380969618251187918574289075131846497512570189523760750865723483158152972413199956970793964773430498036242735687264452445315201416485960956329947881209520218281840984734803803977001552281677610414005441284669632769314130478959500164497522814445221728690618108349006259646699106976737189760292974465382328492208068460063318754205830357000279115001796876362901623635275426152160143677236498174475151290051395139203797835749906744526825123949148113326547287499579538659480207352224419310525154956184893865150808527053937398104852351833485061749962441718597189882538295645394823651874361178632117001706106283270593461221216877939762514408289402055463679637914468045674890744342638943124227472164662174317020092178097822396198301728170630265628129440101279647298833105427560580399957968172521107770111570888135216064340464460225788993017288267193294917993874639049403001511981624566740050097022887763569563872870573395289737384353213559171718660426769168870491642961738821829098442741080947645089122043190275617842330955541782252914567901031066455994503215950753332812632540326380846353060526654949477206052723557179522748496402895698913868469227971600981409326764999278684051617835105573549499239445086571974914985579458690821688921391270197228141848272802957662006072438560260926737598856796555017925926397276810088153202459497841407695194755329512182880877443977852591186361948981930363664535797440209020546329983508511866905188742735161510460436219926935084655327791166780070617918096039117427180529195286549530112267160708728396425918338068222686147619840838521483312762696174308093017234478897752108048562710638064728053730823212294950660299753464124109527980978347205948111038962020854926362701052611186124833888815051654115634331110034392544541288368418390644695773418340037011643021222192072875926055908435033344038632446031538610444211220601701743811687515162865988290418874214951992731095800877427051575450986802863684003666043980298961276674605229039260886153289299908933342885988087941117676992170401593335103806836335533655199574585921323469409170239981613163263393971640664186340078931128192026342849375207326629587631518208243071479302295154956854084111369789430977208489718634257443908118526634497343955511596016527942922448630831047550174625089065006086090065062285399714848612575126290794116070517838735921791044013902344535540083411922893204434663923303745162966842540505177208145112946182004174547677829347125997599669984352225058570792880936530623735292671001799097940572720426664521311939027381964606646905240150112858246012503283072332978176582395584885103182272991036165658197382195826178032347109192921588696526519156448493941482397672111768255525433871709400086585690161127724930046271186598519291926295737166323239157286888926888379664516221790601601344624342131864695042708560093865320063614958933749152188443093627597868104618689249291230460115509777796256602466506839611176202800801397742607776264683778204975587749632833053331576813738872068445899785781331557810930311645415084173660277434367047936194035781521539887487577994852809626363765455270368341282275722517994831677518712243588785782625168534522465033634394338846585292211147977386644768898982095576475671656644707569090441412722502903105227095888884118421353866821902709253078855096731774525424909950127017549555493636070971143639877621205165415705667305934143590429854828237404697437577141461545430136666493016994498466162027521942860077135264731345094037147862891638612637463823497270320315223903718119495530356752328673336243247790614207208291312338309208674330064442580641575046592823230132711228590531547771834971766575752381098702062327238808553656167336083891702693841855867390264135404791100056666816391336207391336292236004433737265881558198838830656180578495495658486742929710807068074032162435910453264429379061545639833813348385387637684053835164479058898747780418092344368445201108074892359381368471019494719522008904123051691334825403287908304038094521560978677960453070417031629236928976233142807047421865495047487938695808699207529525028365731760584213499692597456992727320723299439403643398477547270259945064292602269753763419919907318460807047955317378132399655472329465269586333317935029003013354368963163510748553557020566401284297901094534387878580792261760427874282542522190435996500263804153448388913181293999716598188705389661684939089698540266540328510470434622981957433344715478148757844333712062539784905009021709305356304630171519027208974722518377216726500553691950890239095188409234220209754442134020613241022068863313578619462129689224655504291311495109503591660389750538666208212984015095275872686894451231478181406451843322383700420527945332857308471840110236123312062514955636216421252653479550522773603984541485747635884940417477660957574179574152261018675925853265567532468175952729071086107077670677162479234923201066926327992576163779011674038836816461048490957742576349406885528242156939157499209627727889683767142325754141470451547108431862175680518476252684323215366050970488610339654169950274645568386272068186043161493950319530386582239159754853625789297992636962021186383800046719615781841659526853509440336863721124853966129642061980012939585593935922547292647282763814900090200025499117064064698808021492902421060682325735459233169902174776880819426554638630028781823483285484746225261384900914375450896217916637679849390453440734739994571325907187818051747455427318954887197329133322614892060012088984796761816226118496421043833170031789974320416873752904994484866563807301536608850825793130705438508298198170703458215769643190303972163514268503179766846440391410409940770467358033922863729826132523117048121753863811880455774345000900091111935146904198649558761965295937250930049802078324844460313487793205751404606723411434346459487026989775363133415394774677442327523678927906180022785355092618078802456333189085731746916120352965683492859861898342020466067066173798445086810124800150856241117473599956915274657477278176705673348219160632704497532676863495572319975434964594227826205714825629835097923060705820131176625388150984636290444101482942216810329007358340666877794509187779899161746935681707551678014109475304907435008071857073967840379818631562297504355178489542819054766949149143974530188988475403909343483126232773173919268350880267266316472036776930234561872474828723832100326582644504048041035558910683576716688064765829874799763646471016808756749243116448029517135893763015723143470072055734788720714054116228409321596548316204273555526393824358790708286586285468017039544916725695895501836745374983822333035209836814069939437727314550829585132953156526525456115940969099001724154112890653863504691555143859480084441336743876643758718650189822704540839271074052653293757342151198829694376232578059145446931109437680445271338087495625797067558942496970155748168737480162869115955340822039897535833440148651430957322766413908988658403811892362218321068301852740011975340962242926109752806807901722669959436438403489623055492696061554792896241919275152474934481365855082739124242580916540043886722650096284550030970397840461588575422116637274196595806047651942990400301689432649624019085909873980630044267996883981671218059285008412352470726545096776669117467829026341217668461942107855772794654211811442193328473974626347434216913885884913433810291456264843407028335775968542723112219691407308344783977107956884893792989812381835191326786010946342001783002381148464917419225231178443105212467420844478552278857568040360640778193650042945933899269105578165123056816545893454116703832794447221030444799866740577380643961946524762474449752411668384918670038457156538323835656113171069871471502264082482086791854332460922361707892282820694217115794876761020197054582435502883512810452322893416872666275795641539055371696421488570652633722404844887823950759478821415018340969891372418223219820971744962296624813962808397555103384755991667732902760751570558850624562935348625070297677824850642526739725697367591127786095904977050711651685605022452531216527613411023088246742991368116861854386056075826175975725575002572769005642762839810907955055760532228520666526825473121772330491108163885477741333945664776573490446965101403268243800865982571877544433138831762616453291073195361168232178318190652031846969598232015148119187678793384605434583868731752644014691176058232593571496711315550339293900994876020741221108887903839495219174128759290092061309255294839496030615883163057844352753377427414670292994811172784415206486036371284987101887800965569284232616589874538686609293524497620945187719537855917634058346189468162465160216920412847968648524842424964217042690825115154621792664428798008933681262390525742571628749572852251426783512105998212901496119955672243825532113391496973265985054939735576790135097342423198023843158757561865366074109930754063506053203099308701380057698893359696369654371494283492876662391628605267754726357120474019342908530528949994810389818388554108800113269398338669248667866757684854736644972064271010586129123470977132107697923678435577952261983881665705932738031124640590103666843243634656290263182244726523000416395916440372098348993582149812133968571537811671474842622714227658940027950840496360455383539162126151604840411874162119861737013508678475357440876710370385857457325322374285309403477314405897253089514693588478627329920796422574098174007284190430031530312177910363269509478842925141283379372488781179559534115587762908559251697424458921971103561875433416756151956958011354975530191863667137252402051257274913015291838940147340004170322982549426925944353412580952867297091340020833310630596272717361038079421053065192675873762815875960432024272191707177737186353129620725346668714095036424870724267573530646228925911118857665889602994548882142565630668869190207824441012915974886689887976671145784564262482774693608978534624224438641291516837849137272007606306888837968335617193832849104743138437413593144976400904493753874080743878052779118589384941675383733798204152275851054247222272269570989139709886486154157466486180710851676825155030406296824456620680775669319507313958713668444893688286045126434522003671737661003384267751143586024891039537215143889236463568928154239586707833698861683774646476558193654695420842370032468949842808367021137997775132001691325330502047534148410418380188961721529748404564365398181701675513383775540167956852418569144340348646791337921511522832720591505313088646661669382724584865357982642532142604835941595950673694971480134856666245239756205548739240251036264350647623634320678731278955071318380104138945778425507442826322073418769179208006341587203208962775500243717871217064488110638795212981506421025678971682286137195275643517187100196781689878871024143703303596869599000525611459906998099148588313877265884836883029030748469726797794617462188179227634223511136989989096753074322580196161602267612578208168832525921647954638221288592841536223093393899860573556781163757460794124969266746623244142225783254436878547349941701766276957323398186573393988337856873119735854208595674762151213135257719988959793299896481294619574126462558570792883728756591606436519165613307506149797914860620504358064518878584175713224445805762698064746319888258808170509922257793143342159367304144831708411822895956228924788814543424241666750209466027954585265648017326780465217775393345304485158388175530691908672944154160039284223455842494816441619589323989128713253639314488879958708293001246014526015724219344065305351427297568723022405893236691101646000349249066933564639163757721227069178105690868413440192159391105497222576987045436299582553782141252989362905030874123533809550943002202104307406088980112952278197128354543776367252668630565448546773582714504558343807124450830108183394658891904732875505329734529493773224336751529842087979861287585225411581020241686050750665133827142311131436335523325367736591218794835465258903876608008828527049019648446801026310161212617270782114250031722639567379799938765066396477049899884965879143846172416400157066432234994878712232031864810379849585269246648608188158856558758135336289341005839683511027200600725786104408991831737417506982878568547157314801861299622961033151189230914804667865438426777392851360486369943550945631627864413301733266409192409125654540508369517444676537750564172883730303674021525407479185298537227772247415945210800376706859858269419683661223868550909652167656696345855559551214813030829747859777415060363392050255969724716498071207173762964900213277946735984532973283067919533749436767628383228934728407012333263176623786959962090506928009062979303300729784459199401491584642964365046171870268884516780742117979716514032976856671740532938925013817689783466279678294301719099785559310673701532657276722233159025390175710453426711202608391977118404621030399901223839064232968587624888678354102404379700836426297226083743987317626052298087808308324004476168039233295799935675988513780132617486079701049925026440960265218193891675181318686653018125755225370941939706320117841466591427119686809686729589058547268355512018074249402070998425540699910861855379613925499427308521200746935202033551988413622259247571113904855124499200761782313273780760458695596322725347603437629060790628804550916370081371326200685613453622846235993039245267037625077619823122550748808340534529399726698887471511407043541419423837524148405287853914991451642838773672464854926477633892210135079972753015084227285488274516310145485558871842367151474149442001293194176969564321972652946948772173260848223926439695400510046230296892596462593394672074480278540671930883677839641122567572399403652762709274634988791092501997112932936440814213471970159554083253853828142084030090194159600569118561620208186250740429950025209333388489563312386731102396100125843393923549544060158555511572183532850079722721791083781571260695542511670044522763463302094705844600003403044157043727014309631801891525348770599194701959841212958361796140456162870437685588597405863341936727282039072946178545691427641099217670678320843299796285164199590598300531442383940012279138755255653621528719449627727566070116126440824696521459270701563586688620519569855617704121235679430874499587234200284714461495596652697023587360064736580310901998649825796063822067463618696905345483495717575252513927066864690775921483554155604584312430976743011836606599624822968249481248781805167866833908277072963567620119599912961227532265336022746878114599340880683155123691193252632796870468372418827794657785595607453457937230690385348284939539755667226559325359192367808183356760412961924639996017357481461530791783763879431774973856217324791879506358915670825447007099178579131634430456362210288201052544210565547442964045171325797691698144354639214468572318313319312139253547208416778918404949073865999884309545052799608337980128825439418924430327734053256242660636444520773648712339909359895334238261619445814326207204536282366424214915790286930765417765435670884137261226761558350747180212255033807243890112355095702058536917843254613711273425734617779880446952965149827945919506001732000981879714021115274847261260517450033272205955970552435892879664333889061111347120247605831429802046522846366284346731564886407084652811898211389122920058689467111178358316151463814958030098108038383766684397836717493284358074238602396229598930350227801166970767633908679105801486112899879854737776379753419487237619022551555178996736617799046642196908813610123376493165809988789716049264416181603326687520997531012427571068227054359074943114938495150984687475014514282506183832455665778135200066478192890798360856822737350022808263013040283931098048371794082165779351512480175968350872196400368142611500302671991325710870586555189099108458040581433992638554024553680524644928126161509977139478717372343523310642039177945649678653566239384460930921689929299896407066285853394314970655267537348935047237340426683419960023757617114473560245367882554419653886105966845041421887206895021180550521166603488445448000998006468048580913207722090169347321819248228656624199724365429994485603850447206584660408378577617587106702195910518292106206215758483768922767759218157270107814515421210263537780687237935090074265569872570463876088645848517713558865764065588767437040495338416212773631839745510526729224919176974946114713528333340262510458488831358727799115053096278560210825290996663537304806287377144400690416879920831010618298434889514240285362818244957660569704331391641344229247070841467313430381187518178329168244097338017258857081065898780171921741258860347944718189772930271893001291966183027883879963125615654355679427566683435910035305893167080202894899653318515261339939322030434970934304220341113688100130335742721525413358499703575220625530882520937146947230869836140796555368791874961791841393361733585169068290495928856476769271723890792094453898474379906547936320453982392522058146440472882448681133104367781250096567410226947007657557484651820605915443238303545803348850444743457635908468756501087073001291946311644043732895121659692132854341520625000117718582163493790132715623608692727990717361600291058644600484681646806300275082303076899029316931952586310016143605557921175230400289525153520550256326063818909296321286668217871006168985917964763658186579339507326350378739800266751868145128579336997819248563603591100495707772555546759538375804383226187948361335382374949634222822092221187574931148330704804756974270477265664167173012484332290297176453043266255655035902016909882362473650616889908770486880653555322949337310517671507404814598545681689983267550426168671138789979273696112441080496116460130057884702361472359065078403410197326257491266878992795982117938093896822595626190234027939262720956935596987917234950925335925644909492928603610556042595527446446592351533242556376028198279644752374230854043480579868784879301987460397990891691566703460500880241039289583965776368197286263442569941216598794594249221829625916246341819770824200252296097067258560929696344900645065408807264302984146371501776872272288209429027763865232723989470861912370826385235684032003768144202968673058659139594386838386361853759332996099085993734489462825497714807609584750265399234120992710777824810272034773007556219266844014839744078442133141950558263012158543261244914449878613820346813764417304319659858232363499695998680587346045222644370574155780160200902752208001194368127582780099482317435268418089769938526894795864535431516726077059268859781864196390778430705960114206829808842607967079934369312337733941686966619367410089758115518562099488616829506229983925463199399247730946942609377110424888571262966292707544541738899984293145752844166026811308327048145460726881309825084256447882852775600341153387355487013391458569664144096484004728152411355638078820728451923803575628601747610828734137748088773779439753990597304405064936807540159863653557909091956375929509614087056062372350119668141986085101308649107875931450461490859210015741836836414182889362861357273508761779307724205184472488350793843483588131916539009455823516114997552611521241864136702731600558557528087805700307855588465430535451852491447197157931637874094291836584969451546063928087305320369203529135395413517099471335162111681007506270927540242663104579712180690538448336411791706430362181044939280869479031038892886878656469545764821026779337116042372303182422120814171474215245339958094505385252304053839384299089887094973458193459995981304507110064835407055159021812504025741060526794212649680870902790927507195774136816616634837290178065108626985531833237035402946899476081665886932139661267772570724183988183956463329349731842808366204729022095262159746987822614079526965618689741856204138434001425506537201014125191171552505971308219567890445566096575649481924755451702344523569024815609848700992348717011908644322411211139029222471704973687774014631488577294420171303897469715240283847558480069777410112227175844258808366268864423590375284365646914130743344623446546310458635776575643285493674976182335935420856202102146699931299310840514826463310225867116222340771825189817865194842756046537129011333682521564066448889800435607746713113474642274984367460342011267366360215155426221492807487157624554915604225142205400711983886714712178056899869328414170484551084572076311246410528566727868033177583676573728811742939552424671660054205279505695484055450350705731949143400243552047577811344462921513340214730959140682427504773215592804960395015519465698522847129685484827119462707248763465426110492488869495429681490378290196272963484195670189545825186027290162963280683798011311029151761046439759167064928184042803646416301285134051650543566500576170856774072907072396032515705651767446022105120664483474276023068262946016713328309715350095394046951455213677089337365384711125872690704022617286488069748367956471860534278364137693927239962641203845520498885812554943925788266272750495237437205353534400221490496356599728302190325600351872112124003512992330984237296761159643998322279182211687786078543627240934474088774975979866571474053709963774343711033650095001600693313881254530552528646539473119338422229847779021031765219427757201754924128189873566539268683879955503373374903083331521430130064045910109201786013173011835819017643392550862072950726577537889270691441074554711246726458161131848955210762279207941797923829244972795277027906942100700993930402317970000286840664675858454918899817926077204088709083112326894014931597946637873269985286139965930047219179832179328592712700169735966238490788318462628782066254776287527691978734276281581169127791879764765164587030185243550631179152339901850984446749719429908429748840060851437383305182742811334357096769615560398124634563566380659481708283435164432579548972609425381964470212788277445604943189057344255517260946142543744098508573267803345884447260646387166573029562469463821171890956775016241024049818710021270617266782403981627926586331309921774480441617886020331325463622657015538073874506078746798638484896800305588814882868706170681186211939149878904555697752905810818143061388811876632211682143554856473359160649654701301428172741167417378711224254093174616343318458971821385392606514382257085854448945881753003652526019966230355901204843370452058883467606424929058981725091372252258198857985373621983242054909731016701572356864696152301526329879343562037814783884814491972423852823950978860262919975476825775301468646899131386306695986817474859563658882306293673395254774821391553333322510604201526938796870527941012450132128641122891851525699519852257217496758186342196988952729057021430918903519004418711754143272560904948730885655914874993629370706910304510733764165297801647618085314491998744862115556672822246344461008387081770001724657131031631516778701161454844685303651299736323093933783856429740547230752623942492820628126447191599731345291814403555094017779885306526930316893914223613490413830468041671940576768740673247746571492450881426691215982429015534867174140605140297841085143886482833714203441545401818337355242096948254480472154824459034119582048858312930983695120289020655073825786510849238936812173144684621796766297457906121692810952217919660259931120238025027995804259916052570753652791804063135165919941745922186234902747288450139671186390500891998081399910243803050951385020214104435995541265051525081656734757202816329275963133030454315373801821950989261475096626963053840348705472593253396404620359329273494820016285317494601862171476322536177072960380961376370872100711986287021018237508348016589006809209479504332106773394383973816397860660428502832083013052343699143998984450575663603692424887979160619323139513225402829267807669513117364243866464518644769076505330588821431290202251732339125063872700094034484496662526682097021388798577170324527695481199110547614141993826134438454015834250397973379024669889462372910821848693265622654208793306139789284499131442967771854495952216159315668825585505027875041605616284279267582814905730242830216043884210308524114139340588207919854438673765206749401708343722179657415914816310991774184528722801287576564905755364396900594262385395387381546023025848058209246279238407196627058185195913869035336671201590128301305755444037166903970673028195596400304659282857262020718761798609462443897323682046474748237678541721475593886992511463409973087689338453803542848507758092831175635553474387259438774832358527911606279140032636284808831328551293472537793764354707388383789446628989195655318874084198504319495676287098698570369305724301040687080183464161716163904265250090005220733995204200075965924746855437066583397245922297328619006691767509279337734441700686222566268621261283779410563760154039379841551375769250762784358442532239232863415745313043054336593962832862567348640838678051898703546086905906950974434846480522979581435854432522322024650997749943862630756918356305693919998003830844075871071367472279471666050563538246709965702633367437796397060370416416585060222428648979213354197901451220941425231645520956772920998191615788149870150283792874755070734123419553460850038635739909269718092283510364413156408053822876387959821468124867174577247539774512186206808173140801250820367134331714748024839362675526407824927598235710512172459750967470243035418853082765937094809232833070769324639655781300469489759159434974006303389846925656206715365384863311305238944672630333198223239487484520344884532316018777896672502136010033820323768398897473009835584021173283511062525569202098812124093754099224526863413181345721023121187196231673722707059273274904865440130048694887150142603134158230009838047284922327827386326159678028614245787081732421318938511437730716849180300157529488031880634594673394037770486528178717479000049705197081883976168100543223681893395454830116488237921342190375801383824851897755059393744157960769366216184315802200387727547613747846528164592339119971550390148842286739302877971449752661514463897650418529627908444499326022778445768073364373574586517671840515343107060690503230800446398985887318885327778581035656188413341826829779391981357629984356940003338601607845206575891602700092198487635438293471443816229915679535962710963153676590036329535080191281249104453511452883875767552842273623187499412596341646881946640110443454579150502301991658616716793596157621818806228353034659369674223238493371709029907480752741999878806982127320260871955879610540929069000605950506237017372889840324691477186640353765914633622637439094674554999076731748408404235777287975578354420346378778677231270347237659154669168675684506376526117162414408571324998581825942346032729785973685659619933746739878592453956458386585655390654086035916300958848173218236502786384933352610740893157048067300717006023081275993183523923802965341218404337053114276813776475547880841485948104931629355804549091039183104933615385500847706528597350048176299981581492839871291350662466815862754641216476729878409596208970649309634418058817232240629384581305609407439554691856730500893004975592397254204570923684556210662908145755738979682549210862964080124579534772761783843946437724443206837217812257404560259146699908842527859230540974829443423743230495149818095054815337302706429342994005522453093637178853254729048351303630934668325642885925358510518697379071084034522033636773527409248252676275374601370578717474362654383986789509628609147568364842220208840354307988690072303150265107020684280703010446784837898321960014368927347384141974124778363262123398716871286869725714062332325421125308200111318679905004802482679084443363675870121659757932353283187811342049579890022848300881653433660046524044013752948614677441638884395030657100400312939303832760086489665457910018082919614157505649707156581600656011606413757912428982354140895585969132046885958549956718931218963654016747872583086332961185663294134734710009336155716176895509568025592253847493303129001500191682394185789898657663153518009054353239565730159718513878156111150900123380576598468964472606191520914817105657404586052208126518723293565276117607196072751970177573206241971153798914997960940286000783878666207046707589186968248994098356611339508863557026496397195291946280573280294454680056949551929235776536543343153804665127533010738363763202572831323832749651709150799764846933914710763333030014487394631977985436352488090111861093592371874672630437261435241309075620536538915811393713467015018599974865574048570684619143859077125747060231135544626521713030916720152834942139621105615887175033178860674547402206182724409342999485618312951613047744816424954932866421012021157980068711868413938239152426869239774058600042405889864162257745134263385840519505628928585152706593137329572316272407502385815864035604763278294544782607814034248860800039896301459885785916287682976651307185616405237545403790633773618077933429450260451692082384222618697179685670419420549408496365991475891752013910661101798160845743722821253088782604493628789164375610360448173298088447862214369908678182096163809542602811519503361120118583264110704205300898001912597815917996750167688783444467631562477791590462355582155658270373745836241654242416884427987755434403742818592281758184633185810131661067180081356926510072774306998465974186536809983334939007762165905910639156744253398102890887058214683040088181341638276118801270421548387392800704398058136281045337472004092861263966667128702445821583003128959625825544600849600271787347866543693811678405658649729255319331467652981111162620180648272318842640445684637202912914101559946048318301577454399080789623564466152660986668272008682092454906869109435001255130401065864654067983064090802409119452162353305092178555451543596405977792391880067309801933690784187271157394592486071362348610088595878405843235520135854505533755617583596115283134730963422067448976057624445579425235843566274147469297098662520813116541292052053267395661241058304784249874020473683683679727329805025741781239474365411712881686194641636947750889577127948301753794327984947301677960003761558043529884143134875262212483789994614099187117163901094652119956959280095008325113727303766686716079841375813811345140144188918485674391619596516817081563276464507903633416942627411585778593132807752401484312054591230959378979715008335608568815371339918511478313020961879965814331815854356322939356409108526904462927184318270137468429380970211929539599024205351947700401021508899542701757761133741986824871718044787649148648902239648718657103226153985259117451185817734888236662007750208965305210855529367963503939223417428655363964519247359453713852970980290740273518008299567472932478514061507507231359991391577232823419464194769617614855950891034287404417156288748793704150093160231935429385613620160054446417809757881341823705464555122105138424442332864272374692426675367768134805142983875620451726852041199150004138519949271734839636926618392307876209377522259795959191416127359740692667457697666699685827208473422475414326621814541189865678545024702859487653703690383353668455834334986356680379241982450825519016736605406300822823167898658447386553918166138697000343719448277036391301804788212021337899312841909789061418839376756250431189098358614612181653941628261868691589072369268625832913062793438582426729311942737588772549843106627977939339322092500911059145444148146507989745632776243429138563140207621977341795031316265183212679710735409642227445190966753103966909753745740455885089890724189760242259174862120393273602434432536245844989518940429336091360240001365599043644652405631829113857005405703438276438086632968505412067516317320939389123351237386501852767768258758464690446879804275305958313162176588467387092554832548751099135519820055373317171331333498107944114471932847321937394919043651740567287174451014516312829211121206938782936831161105546160860211705840897316835500232110616729733024595258234810850171684474261244671723553133607641979925343566907243217214349265949228447670114704987632454733989109832807623475550778130128575462357299763803129022254810783655344924606330300309751040349057817423208286776112138127333031311810012002775177909862065562431080716190805858360058166962512078878257343879952240027775446800713398442572404964596748537331740984830710835560964786791875418044967364686776542851547913191316234438577554253171721291387148369777313751844319653250498098975085148244967239455977589150503468446821257539867660821596882948631162069328777544455766020832216438394469731861126828507041297152198299870323228136782597682667332883110983583687021784703371998691603202105767457480400056124039001282842314875884664283225070803304725036223733832989613444888202211933251609391318360928368653342907621874314394066719402201495746702903120168818918919530795352370739026177911751764190723322256592282401610490091430499027569638536828650139567541582199415726459995283441627692233834403402309775260328252004782825241244550798743538477552445520488747600304911771930846806404952942884518593867011022048912467696005188024016395828922693905397276081971664823506326528156518399902562834616281756930509005977497062475709203457575610419196485604943093860871672395535337501487590159002402181029794244930869737749696594845959801339510429109233390272645403482777415938720960615444632926066086128859525426803580420742629135762373252617368982517814012842926787247004049866947416356543292857555456750525461422230448061130093377820381684019904101608379095564878879865943065469997251825046486826182264310150240270644234594496585929094496986068494723275781290160708012528369564532846745161621999351601479466893803524102178648414458334103800776174054753675967770396809928052932049582014570700618187019738098150172807090265210306518910265667164797411178794414584050077758882944480471926077937170541472269439289620134188465201123673866464250262520440452223353295668994244870436076724956554928644854340031054450369469032868037062376820888152086974221688891616911564213071373772924801060898250474326236247842057953493322860371766557427999248191860086820542827046253152320548203513438502742567677889330136987326396048843158311487729628769652936149687896590510989228204113366476151258379792371316099261333416507589894728980893589780854825843167698370870013854390533884209324014321639316617128018336146255220254420988870409302254804416211339486257254605554179143616340428044568780285388037778278909341225772582010396377362698672723227569384830837562420929890154840581586727024658585659555106600211695066743357105185568040078515947721091394775038213052799178601674344336123560190711425138764601209688500835412010599676407398971180394796743143599620259153721177074890785940372897631523758454930597190148386740141508277195005646735240938337906352204384571682554541595080529051804645793044316924605564597315444220202975673767150157664785774559589853293875040563871926281821732505118752045300561743621777975828059171208438816670354416114851461888659216317146700059614201333729446019481866037032023090381842814168268544639003195904061366458142556232516881271266204107799260514017141548621588607033453372853028772769086893009105403827353604889428740000974551868653434452718040098388944263234200748816288933241027520296004708907398270112894270856226687857917532289084141586829657291656631756291379158978478811282358605793273581284166613432631699107933158467892519891202032582795965572794138582082820982200228282790945029677094946901463377272507506823011773428466924374011243580226155194972725677168845910936737854199952278885415159219803691802176601235329986164671908840532809288116493187602385957668057164244399536111468827024826036835892672429210294371878409412944400842148871111895605042206560181418060563249674830797222839351862487612334198520239738765295935226350141015019923574221018756388845229715975870384668684177084208478785202125628228736161995334342123448915377744826661083095698224717087667968601702941901050259949881086727752465490335670503838689861327386077335809121998909501118072995836506865186514994270809369024767899853836010448798780467956897703726328580205978645925140015428846179114674566685393314791146578065458138442566840770773726039759811433378204705680980783891451736393149649671708965146786077572810481131483897419879555571898712249182418993603164344655404564373466298394116283247895068650272503486899982226663095963183929847400839548124122947254922911942520533059291038183364008135367424240528890591674584092045966680760686799189968560619531347796526362726771162511371537231059027838085878740829326285546800049698050314472277648999577824814458855944330938860617300305601074879334320691127313109290209716938190254871739414350293478127668728461772844970162257072819981992147285049277580871479817533249071072163759464576591466470464183790406226534770544407233777365925719264629104500287874430703538066616718621343864070325897419520940008094912501753875357276619123190639092523175155176636526237959505895182959525307751508682597633594155837771617892015981368427057751333083730589169399316662637705193394794568089128779037665640483194293776212220120513586708476684035046993397903493579632702606977620436267749553762220550446537110949958908833903237262045194316918467523026118091924450860710058766270010321648792034983733003546514382224850277048296090744929712811268989184295456897350719339354837081881031687740817410182704188016821967815033184475174439756969161698174253811847780649864165684904946367610011179552010214699718351244185427961847381399312330626507829027401108585153354981775190399411833126875437867326767883388181163636783487726628748895658824181527924723421022985935772362294012961413765095318984674468786399776866914673028010386013763074152144237409824897775209421291493577137688336007189350598769424031669104569031872990577258994615331481934266992526689632064193891219308328326895159496202198002918297809152720486223474058821049380625787211891861926624063465442436550770851881783724651286784359193336767294663170151203446365105737592677593461203629958588510276931372550483874326254661631170077517183658542263257775210131126686682177692956463073881556548285210994842736980123776666782798122706050615446907717469882368241755521766002830699880672239815528805734829703421412338009378274494424829457786113755790540215478712392066223726316583397740614848371179981913287478073760816644393536342518127524542675684415012815395532260813861320601010165330827654815986495890634887615675720993404509946750787126510308166276508318312297475263393212134470953256748898456438509452612018258393370458218618929790414692076482015325237346324263584779125477919183500821127393987958874124992273790716750379840846626297181532948292633896836129788809120448064103897137051309563791526077768673465960002151258978172122867836214399909366812006746325116172128184201844418308818022250016819731092897625327429035682759172722081198560210323400838491112144197300736430458540275943799833607062216748002470712346096204304759212439864417802760340265299198930393837829115548128545131516077070436975420670607210912079500496142842313238342691145268109612640183436000500754872311709806095958392689343116912022162774487007221934530453522907038332575050838309885738249948435454567265704058358718023541936579155473379729697276235416542090393728950986249932548345652991643794538996740977230917483528284709370697391273184697310084372676864268960993783800253378142991488522214885956079418235396948094440009739191939224880554495684701579029910868940215696548289240741858751742844024780187751916358881853340340274587031413327225900908942592693086519557461625603601894355146355092789699610602559695605955128312518329972025735760647758838222778755886253142347293289176751628798082447240717757479727635071725390282633296650133257255306394490531242213596104691074486506903934379771949401043126460247009349406702258196912622643999496838612565179632196360157549191800996714834160453033336366402587707837928694315909692732862997698357374780315453931029722410544478686993305101672710026071644731639289075004213450979578471383099356081750002355125501823088154543756700635210870311119326327874793911116321629914626576341844245944466649276312463212075389799884943974355860509758379416791233092914198835685516812678676815990765520484379632535217372564714102260492225871275061112803441386710774952094783655044533381674174151077539831439947728218213403793625538301367486962354828631557553389035441214765959921296236432651413140439834874808957662866814194134938994814869961061382622025928956260114598104241443737729653024462390126713010420241740408822942812668498087657277509592397614047361819311751442171723258893815360037370820313561344624103662014355234098897661862146997165975866015319494267563986359208067113966593378002276990730432776797923231581451586151776367185647629690618633254837514758088867832227362190053055405600381237864602427542916693324262700668553681766630384470362777803253557156764639983574690893669098599799325004607704307792383106108319284111094211599200548902091614430649958118086807062771779855156489851395609992000749610720944447157840749189145490022343090381667961165156202017133624415769110642880137956179304999036457144228107927470524601826965957654075407054120637400794890585260750249345824274962449658150410285245158860558252453829586133402527461748706819150463265624782251548719525587681904183227412986029004153475906684726492904253389036964923111322687511719244742031893233225674171766825574605814443977921164557006500414349089654615690891541336440268310601902289412671614937758660557584494585829204742532699731787582213156803748690798514945153409135508712862054975332894136548532903333600231203583661703967833204184471219420267908071278577023842561525622726998560575909307333409586335296024055882392648012545620430612901122915812399830101369396908472100082647979712799507964910958882278581349282633146642954838684047348058144272100236468289869669547439891164994795797531946940927410321370047260857135792388256189516561607672149846515490853194508542364196823821372171825034072035816230304759102647507631110475906247062356066998664199286987328458353064078878601051573031122019552103551417574834639148169290994240409484255772682242489236012112030406588565143007342101213345931542559763402558933471991905692708651206651467217787830493768107321668225397914299143092724646026133339674395870933225452499803188837761320568043418348005833310584146685936943023892552720521370151623270032152661187084415161484989849650721822858185528588089811839084073893299783270139499867383182333774276781054061500378824275550056320846631593972222712325109067268528234038080206916460498799315116626686535682183607428630494125257691483987334488421892773585178367822853911423266262761410384337590624976074218306012894570217874665020359164262877601003465834057231930772822611598016577925331372629040413243272705851660720951026217390700324315480742722632868577637995959957976604084412433790803340762516008149570278183169918589823667761778374356521607620725594493598094665463558554941937230806067413363129193808858963776109024770737948501335323817936038101124448601001342540580959048488930292069067574923334734147263339194739271092156244655188101314464388721902080628821646859495330015633872487118786656580085789255921264997905502121475765261517287807799870648240086762257945121256522904551277944458174126629644540406332987177172325415458345999100738323905386844835343483142537388870137388589413828622774821004893896850492698097288363336381497996959268623225761453818978075575707826808935200670866349603091525005508972128567238701941397723775159689699103265603601252638214465937025561650086490806743186611938777818917437346292707655839031790613353941595918737197149911356550150438244426975096073787782021386503801104789297226667132519076314870645950778461070627891532825437229639778579572525403130438859715295294626183151623578950870765382054054646372144186469243568878799203690038710622507069675964056218486892253541267161897693328733221468596363006871570141296544256234627260710035481238191734739199276716204287672825275652719225452756750393191379049888062032815678477605019884528739803981751344652542490622495395057338829159577729866561787547924125391025733071432722710782576152495759992322118298386008136747094090576981527719472607136923358773777180850784808405512814741082806506355357828594242076096796007944975126894261627463384376208081450435062313023540334892794722169526431255981802415769690510547347096282672348541473168883787344090965007088936314710260654440561618140262927487742537439137125695624887112956544916736342034249512115830131673844765823222720170224720010208420250818588287923070185514882088528946353792932919315110171282922173679318686634585236960234301710103647852615262417158650953248925441845866758277390276727886903818619884534365850669012589821130898460252936937916836970101230006551097201260442654251012246472604682230613265321878048122422592638299701536199359553302221562660810100093994578440191387521534479533189178649411119610024878289247596644704947087216931208868533897549793934774963597018169687354065985183048350337680803789814874305717271684356620173315920989163459108699299884287667103673939379117983198789904428168881534228614588769063453767392839709249047742010249994572326409308441233687493708826727056078766516977122017586239203090475406554960582472484147571421475114111830832195867452450336892861037475123619940166110825132676784658314016550877473513504474589058611396645485247146591961224666813460279035682919230606547252345117491680186871018276667859210122122472716938889221103490332323815685350408125766194236776728151233353507991922041837152312206014746471582886800520663056942496522539295348957371005556755854974250602232168165383926777765180346185135480021276014161895720640366996615689744244693270689689542340791711351089178363041863235968891230437954312065886716469761601163345489246072878334522300341115088831895660722075880934692592651795166178006220580353359162584997611684129252925997929624323040381376094853962142697255776409995549757197015630330422993312661420668824842325148447520622709277526042737380997709592668485087382095660574517938916295124115916114871799503032086325093013999762770299501972693227678624898033185362315135169073623944625265282090853587520943947431639824425452724594115393175146283917958364102029782421125803441848564092479737075779510832531360671669377128587689657112025762615939920546954583180982813420501849298272777628196426467529362660626664635905467002226541773466410081288609877050611712652934347227085723979223282231602187618500125841217473619677346619044781982738038746357291981976706285882787416572078131575408497891239859589399409881322530652983509615565504494507320397675128645113915341781032812036580903562312044263623840446130219600140787863777817243228099185195181273778331366963341373133389047471827852459260568032186571964501594575555945963897140054469909155519441531623462391405217955340981814406870005839788372939149147829724240675013755865724389273014247900687976501010197118256861958800406500641752510596025503778886422444721687732356856735377790680366587854117260610473433620932283423819265760028751054170729053594815820769194024099745861376691251018679219440370793837160497667565146882077807166406817180693936145950836562765845310103665702586702959236217583984644974436119658487307759720199636790900811246443879460085336049298299894750036001972693289285937109283333837094184368769357898784391400176956808091713344381943143686457793582326679373585958356377822323235303699358047548531983685709869327730868390327738880493618627372256751094053001965151113153526947739577078834460059523433604098399167866959279788251734037404682453379112730020649530313676382014767008938393344548612449882060319263559949659497763149727004170998356546903818555065900949155044389064943620222136054846009609326221238108861524909611228268066005396466093007353145423859630103948014641341800900382579180631190337851936694697217122738246629164800950359439050648081658907655602171355914751217090669219177363931950000535049201996713589515494682768013904234023494340258314356849842522367621952873906174559803742649474091556589974874473794792752594174265729285907716390321911605811998343612060604847119924858963246608795776250026497661767292021111121387902125979379783003939151552515609761080838577804074252988384350536460485891443274351982247860212181674982243056423815202539097249896014471392697390858746384868912424236050939677891332649410880273573800690176001875119592727697784410032786248143774969445094235890261265345043131405217314115196002565802096527543059536349862860181247116562064693149224657464571583861648764476485494015167328090532549856424670305705688441099463434580099366403114842877925050058759150094438964068031004797494894004173828024743351696509122364194984470630360151270904539884366688664723835274775012356740627873702218059684444466284696976281218550413406785323400506354757843833382404190845224797096317374445616680090332188405279113133633731741166678134707111465052440701378098293191564414663589644849968603448233388831371286907479879466550604168079468976197069913278608582434475959463048539689795852419656999966838934516286956369060871562761027017621734447311849358641307151030085517964762234010790435966948676285194896130692734234315459197600247455625047422092407064758826888718661608106199985603810047482557310037245115406435683957240485677823569340092050304581195758968020893817923777539707878993317873001497099454577854030108235772535303937338646955083778645331733064015794474840506678897853155703115628689385047769619176037603375484454078125185285430641090357737112127955857511257714196326282161790448532774842370998018924382936599559989201832487987371408281314829750733512048039483161350351912143881661742865921916716160533310159974181341572092362192854937535494542078434833668147743430576130842167034563246581754214097198879926928270203020247644203857888379259472232936124700177931912328744833294891301036276285216001513041852627991530857630913667678925788173874545590640582755009526707605180644987445352716273661163161920187507391278317614573846003447836533830474647035738429479275709698031357645220145973599546856977437009772392013921841159741504210495619027914435501732272255488905516167224601014041502873330931117531437610172370881104970466974431189939414800982721162065667264005798754707631655481729450569552789087393585186229253084800002007329744149951850144075993994223488356323946488562531966761546779176105856197275791030324752746164490360979102067582927697064164445480069922108296809499799579517916515450543044589754126134772619662561237636988042683103588104202021145184170953745433410929497629489682600364738072292689216626173390350853525249909515730095161262199912781265924028819148589893768589918868111072784092623114738214857953939501872499924575420480041737237055227209048741630446031747706949534118255948428653663034878740353306878566435398408319017095264341584427921832942456164027669865770510048246938315875954057031229841318575905750161622795109720733479570277998824699842359506548114837923675514531008915493901515973783815491206653063056369516493459755139865109553148233083990306271695292063923562409104401309563440047142882275102334006199651388128061127103899879103671085418774297877457007924734448481276075387266059884407013422962995581561161187661768732625639927484029131177802770278344461739733251476442330431806719333918131842508035230727695774553632767944083267723516749998183734620682966342728519829034779864167215088017339472227021363949918569525286148832124758499714141567612094497947543319186745454503538463007567717002068261223418342484712786796837814365989244757585326413567073761917867185410993601111713400043145187523242460274111636862722345913287859465494177361189436510696018427490110063401742992008300736988305485373702438817680506858662190527993692359785751715273830252056574676023594358503105813145493307699556988749810759220591281266489905461341060809464300322149157914220071934513560824570183500654048161335104363249849865685575601655769138209960235807514686931475934327319461231737206522663187701919934971050170982877881781879720450637467541188808322250821052335165266990201836820179349152919273627062938741215780349752622337492549155537353028120400034628975271203741128014142727665494146925109990576971964081132142610188167737413254959097641257957731503315106530032734733792226128672776774660871659005525644331681488181315386055672714981096070813807766577983707925247935184730683857154737833637442998327063357505825836241838747563670360823689582115366235515136106471790793163309706587455543244357105530635276997159097883168053811811442538582729181005912931018319180371523913054378104792041712184570852695490790637132409171037925381995711117668763451922071589576345155459455180478407510803674388466660038202688438386491685270455945548609344558717135742454840133593041687655517247933918298583341658345798081552825390195113709434121449252409506201122343518737019251292520734116222589556588336189391385438187733831889766538345197351681715925501405862475080930724905624413605341644026055077210339033389544486588748096757936849238635596984422165369896727995595496210972258082401478051013501654364185388016938298722719754359152238657128084248737615275794419343373959065342645071789740279103531638114920959958847694111687254937544588398794053742645343157849267328067491261393359603314648236271752725729573458582191573500672245567055134051257725048487767088288267238452845222230677757340184471844145346138706562195553466207107563236177065885698320663946765474512184846790399565140640657186526894824305858042262076714382113599716575216278952756555091318423140638502014344076533705300003324444153416104838080616569399051634553578787796619412054128557451004507893468579509354340694148507749879432169701487830735652341055799152443931735594724807362967792987800931596414624960923431699490525557597512306574195674337067603693939427963807148756354135994301847412068503424188901578478173058726470103396123746782925622521285020473609911416576092482355810751282507957828900510551385946181658955240801366300120098923114605164020520543426841411681776288300798797772986410191254470282723025566921981626604436265859533334394992425153444851859468853112282804110647856377881301277582837790741133612471664249566208914113261455306845963433315647856992988976651639130272035167366189259126856083228754914287812451284848516639040731748817199721382614470373585041534175780928890831123349861879464195540219472131327251353049188456206981708135110228512168855443468119587251884002860128150375381831903643086418647908645454475656792598538812478345646241387766997544831760201918111793246528267070788054136541658285777711710877177033494293310795247287508335033749303790412363293254079032541865499987523689359745056629707031573751970515731840297606114108345576170437619182753121929332202430836405775049694627987643971143270158165953098761594753588191481520151773780231930539878733511682294699025495177071968006564807495975885299985742936112933768266822140335800898940194362164234410104356461407792877510120682570863924260102068995995829709297632167277824389033171118110441077500985384223619994710260632522902186638189639693402227906811931843154542874250643159732363874868291185542912117033377157097972210558154682606371846126431968371289591550471371721654511353060557411367027709447563056756443526939736107552746969278437518675764135291134946486398362332605911350222333530003999001283066634669734821593722790764539791396185402255541717465177340083722212618508391350676301721657901718163386036811723180782237517513107413177211602496428930253077186044226788503087548468371411137686321851464013362506344304817454029059654179955247873534680748246164036465004383344143298573035400721387506937705328582466235093778060762728377143583769283430786276747509391501083441625761717721392881518910039721594406788278051367283768543292596622476359512366824665585411053407540222605054121473472717354633221151540352389680085734341552136989912397095777214900465092245941668156953145180381992816831648509122867089961689268124274875855548660712943395038818797849910677480565096708902998094823473349788653987208668481660628221896994465049332802907390384065019339656802636201415935157419938256919194653153735786861465781281057098768760573908645292887191902649512955376634672879748186505211835713760144637269755662663973896406450481822616039389816045691343711818986248090364237062067412348868531922822413946135878207669153850391696341934419831865292697816542773485793181425470823279184329105348262542262857436243692912180133934873167399396673230950409033402433069554386776842891903262650697691348540952021373895361036008341554457380336669438562011542592453987734146472147274440918595069350588186631517893322228961387224491914513891334572694452832478489745346695262026597325014951186611564795557149021518715085467413570019837120390330135438747278927086764625522282117775660011272591429044771248170600071692295615168195484604026028786578644665692839559896946282394167326389240335543158613722139990339840776382459981898627682820656177815780636888688588444669057700983872481942385856193079448899955004919581136851835659833420087856459810707686394379154883173162978681682935723573082034298209631655966787309280600979357550717887113124263204814133517451667770533474820294883198393076138556044765481642621894160402530940938561705859234206804869513277891549331206918716949725398259252062065202396446809614727196136259130660853595335853343460526506706122470701556094822231293729858573527207225457833763806855907197391527436008202576515757649834433766631788828424681677251039930089863917854314138582733403183735515011357708929839941941355314900583363844188188696827716674901032666440511033558256881634559702674162219005152341865275821450813047416057580429748378251308780000616491248885605107670082717957608089509470687299147815121724876200370550909022378136222298739755180993749855121812993914466509330498028445629942063580956017002218672035215144538547746047305166282115559524164148525969950112465851154085290630369424728936112597531603030161677177486091583812865111730780137668120582073831590366890800773226273622710583381945774384570317811623462826585308691182032953383584580698161518543630019934949585600988683909611268172736351268601804397960429828273841789727448327700335964609904432519446120307354011028844529082260819878964648045509636848069783768445775626417864817077867955660874592710368824412578446701636645025937971451307990619028549959685664912158982668802185201799552822110967969533540639360260923600520487423955925793648759608305176091430604464868997511055937920144165191158139437731243725124711681497061477705309902472740140995256161758623580079874174681450789460620680972207801242937523160094062140067459064471520045773437371962739259148176371959810304773528013865297427008855170458018431785453418361919067585033226928929623246980846441430716357850164395879973633383206057960291775393740873875353868335625763557572252765983082035080921302732424976772459105331892369390317543827563900626843686767846113621997858049143873350815836173739982085767386287686836911457895250111282712535093485303316383843647183061281405641876798679610000130898753634754278601053875394693496790059100825887752067625332170393884407252277631625903790203878208476871249249584381675107280926319841040412474804827309595367698074255159087122603607988325929888639946742115679507822489855983161771219391702510888951359790958646490490882850764364132217026896113541235088694761177386054207473505201875187354167227914657990178898535629784185426390662087333048892665912399672440048983397422186056181044617048817321124887212559579366806378447068579007438726529650636195342500132580783712698581687519474860258543180635250596772158674467251864769854817476389187391485211061040422323410410240004019546978373413797469264816005930301002468613439557892156568702996850088598192000639477080820216048671395167359887388046733025902537866155584819377335617524012611228911767206124188682726999382994425733346581310109250824759751912619131807407621044372064309034588187141161743592382670366601510058577352489852181900231248355365807246988688324742423934534535602188511643500759433518105106544097721334148098314766350502642920691694441470337122056842288563793676570867472953408454751965438469705859612753902522869313108676968170456238446353275348372652015510000386524405973462121754659687395659159567922595312620170125328368244967564520608947637878376769916971781081559287412466497683059995388719038737317006555417441637633587484371740759754906300028876125012336771373698792902719886849685289952095924880070602220237649505651359824666592780307858789096073561925884441576343540711296913259094401009186407557721848290698579267548759418709525766240140508022418363623246250123451883359369840149132668516085543531648093965232810792435362493766140884112763214416561503705998493978406614221180760379727737682551428792566423016811337226263875028496826066071627188976302200374713415166626675434857010336778496377797420714614071605911266919774817315927590326726385257624149605140787666736812484399405533407310227005708277616837566092232426060103838051914013633235202502713482663335337001309216876189855333685917778001147392293724976139714896997706112626362212351998452021515872361427014482095880692557192785920898439961187327675171330436391982489327627768301390754292823823873573576086329423189655825546724042968491550216111937007645117845039416825983454181113474670266024164910651715605918427550747295981049601513967826872841950951035937947008968800174719126937711020779773656605528457445458179096186238135808349321362946495825188322899228208876093362387521632694662216618718268777198963622815058698780270139830387783818026882181096714212945636479837497475218832313531983278218513877937510869015913371094601524327214865331026971069152698027045747618982090494521587376896937845091790711386231723571515514701968132613529998741171973386439301743911142559638836575774297309416607691465678240404989577881028042061259246083769483012003369918668874983563459325654416412051587452204691480279836488126620601410465947000336540359618413238329369677286844302427258398343692336853183410145849643217161967608542121290105428200059357772878190362267722652788218516963375441710414413874444619424451258228838509336115477233982089514002464552456803956562554780187976843497999508572091124538200978227775493857643771999601633912872886434131320350939306830510267454491317460772214073188627626741692649562605291201892184785080120890084602877258474903858570161872446610396806267853260817825995209796989881280826559834316060783981033158166543393764757290448133283213514342183563704701560019640656139372858779055709814954106999394209046086765388678762533520794421741416747570295921578909645547909125640341200200550753750850132619598442746464925853307119247891256192588131232739610715799027332322233339064799300433172732108221476232456562155259940334407259264535824780749944992740426588160576651360939459278835917599947330863421903443152626123147165326181694475501160795022311231968428386543891505802783616260801203854867411634134772145340906739628307372203575139593739169818230976582852005857395621078378576332069021661067078738148369169987196291785642975824543225325743119179957983045637060406021139607884083587777815421331150520499068089794263099458940409695020125715204027486064911321073477141512193469786038195178980381397868526403511291598397833091740678639805051187234142987618616031281382700562132117380975342214940251868300176940368549546808779741285438068938618169293167703822739824837295942840565895421895601268549125364004346058542860166469540595393089970953595191011030694287659604349815603908055777255322483921396250107031714986769418051044539253272220619885257547300885290026289236936196962086660359470816483248441245974969201825066115383617023586547015541225079840046026402003989951561000861354709854531700979787900419814485021022885871543615226558677382022825575632411971590842818020150084638779215357477933415740475380265058895763532159841477142884667920041233978489578703788766826052070413906266361837831195049355591164353798767956968182810860012869167173064479440300364825644722359675301959808242039467533782672062409787690259811319175920190157099969731317268558036111117418504750011110354462438897070806212651668799284577583269489187663983998261733911328544364027833786104607728437084258139888650846315270588047519824548943065433416759866515544784993784497969095144620483869416083929116658284933004254628010722733403462076975931248224160024133872595525589663995074216348678303918601204657052827749140102816828965481057817764023560572209254458061854849484081056981727079175274079235035125898633253170780088985280177297944979182690751601342506152653075112966112518432491354082356854198320344402281760659595473833169225241492855101650979866378342886661743318973126354775542522123124662143596853501184679534392813036670580662193645303928517134530410922773936337702521024441262733703257446221948480786343660251427150543140261971641058810551619593101474399737872975782124658890846275271146352019151410921069511147519791482447912556679957936523703369213431224423775679202379588402091304879133093415638224939745282821530542967341197863836623957292517980024513013914519927729168166935794335725201733452946187813106979600664794792429854087144148952061327550803379931768017011902363609316696931650624069251763813285498576124560805942136606161546973393733658905206055033756343776811852599311899357032458036210714743107850538952381832657336138320698032426186158959305660599723205081167358797865422943423731231849302926850986732884496243428513390432634996454227210922495249781942467308078293631371316638754414547401399001540647680211541023134235147158441308271186782099967889273415764611698539075912794863675923749801240343346892590954957796708732351817016438185349488672534780073187119145778495247559173473983320782346040119033383560496563559385087250034029762929522719390659160728596470377266737254942257436129077594763803075776323098364278868795349879278679222179392807007135675733536225379057858000977863743577902778509485850076788607954481120161480524147188621376970252478004686297101353261239659296195655779669488234938333652916359587917792327770198926103794837368690726774277802821786894915407708471045678629959423593995937209633502819951581466252140315912354642038764007492019313763593136838608585494621939316453332421347371608186966023084359696509750902824604309503031462808479129189849053879570084763646180556843398347105337608238514486106360013769968862302028693559960480284029904885193725250608410793983886297039586582755724825483631201188343823959225417688570244988847381159802927937856315979642722120443388503154690109375173823305982904400943900834419408200645776764465631187373980945401305080515416777950998684723146124027650923028392764486446339304226120224675556699891711260402707503121488410563448437781307593935610760897595378446220151901182729021659207003010053341190076262601824831362398720037405501589658761051859004045166656055666194200992325246591290885000362967962038316419605405046034366373875494646931049880972058860335732316136483647073366439815818125984322989151991959516307879605915781873491317952517680033770882808976773590811165847902286174062973637741092646631806901100493518673701623181881615588294676430224677881636683358432950734824949952482387501228738765075882349073161040541725387768966171065990831268029324428069994011526869591528541679514324022565196573606629381655705058562017879790206762196734845160541048706015936172492524323364303035504608771031383346892826125037204487421918490377228841246327225368834133473109376302971302793112809605624989465674605291227002708992692607673210098790937171211417735837719760374123198115628590054198388236122624628429461455053711579315073504224617785255500409590194063476745823740810000465744971759363449347041585997214440890359175616153942809490126279794653752785450665034093744598591568944820942163220240840030909005715950519283880770445027044457436713823943329989022042523817221421245734413717456229643799806683700292202813541375814263247890066824011948598299226118599055679366005898551481336774864665976302204895237560774597642797833426752535606587838208928140119731674212264073431611128602164652157416227901506569517264749094082728474779762554426236821192297011257977420052181487185951476640420650551654304499821383408062267910702949412569762935728675192533185584320310698452748231014516865216552548537927922171167912539436699789636588633961747807876899485750569575204661090659301652165694698847289547376112395562819525838747217630022082300217520775439924032392832055857955602943779717331914768352191793658886606397413361608496805342266243921230493946383227763056820737376263185611771841608058645176632130623403143927247116489958245235240598990891255793127652739958839335953492377964243040232059501668214077696749449325007501926955447686813657966411076009947867660475390498460137518469181002311430939453449645356163903248841985379593590195933571125009901977017045330086982600003776431167371043127343675039930182252440988744707137778827774807230768686701946139277877886147912551493956838603922135294126900233799866755444429873397323366038381578190184117377083370274598970672787390224799857661148369895904536074396936042644640331759462582565012738507207551251266893460703235708642490172884815416888480091693484588423729399311072048658296959315916668390268269136765547486666552802898377903137823385135927740284789884372978927933019419195620538804428608264816494302390959373287129539349215975523122455300382108404262258984474627016614230845114362142132892174264507365159075792270410388049619286405551960564116610361332471307081996010101585854116427881963681680965300271273082879710924352122515924471113171841011415934954392038519268856634678259609635629623572805802502331389187399589045930423780013192026738392111718832601275799397259708019107470199202468081061367212283293729978453090147536244310177822013800309114240843170818161161259538182971354065849247522933318283772330440647684712336552319496347581933441403431207286226396786423378973919950803039312339392764268082949503222769414092553208273636700245031543394890766426167628269534761598714037237711756129449436937154108770444529982766470564401500684172099240446764366158224030177536027632293660193192945751783773833664651481261898738059996733112152779966775164260768275070253893791235286877918242090836529100598961181630693291236160345503467175561577770949363538984166706488557686235845170282015553328695471318772229373067474814325527075361591827183627061244038485357678862769087026110155254933821336639367860758748218637341876361099645274322216595203647566013017673763410347080215508911820611814916834542913167878706349841370105112893671186490681414289285985389218169492798443058902877620811134864436782825990275135179846012693726108988042545438960824169459910666773591830203225850092753067199223758368340423928613523834221229306734055028525617857342821840102535073474612749360156237682099825969976128835249705407622478353548870037566978783150379252307967359975863201075098354343355148113267521982638261977781897909320769698277981639083750617877898791994850827886770991583638693872435065199328235516486920051693086901628055120435597142644275269602747506621263300009290565467421529966516817617639060663408361753333223864184010438775635031444535017404254305997482111313119142948902523062602837417666273870540587680992327309588316331222270577467739027191186179697664319412742474348547899522680951430812458068819979585646605308171276675824801451735322405819826109975183874354169973983865693605410492415319533978602878192392809823580515041656165902329836539412028107373486629357864537025578431768460984750476519964817932672727763998580060915917183249099618649025820087979285158244047866549705239768494298288392359634824964280291535006728045440467446292570034187190177464449509380943299075684854718098763274491440391711848126638925518632381956452073668155096809271293091388133711921422159465410400499422054609827752067071173385583648838187498906828411138719254870717776251834517592844483190076688704092649547196852464531321107114098797611557714129451652934941421614269012608124030272517408274032994519682059828876291252234963086848293765757737807015632038238350529078438787181861498799066195221525648711258752252305949926362299545905461425064686730008856303148232636112153229103592802855119730710540909860846612050169261735103369622358105074374686673210796140614880699338122245178443071694986412064959156540613412170929088740218825400204745694725332095186307035608192874088429865464541306244670350308671116208974472856901290511847175871165788908637373408548612670261172269187085269402137274418766482178915790707742077145035291094363431365732243328574978353194781764075820800689521950892462283520610541678864754744922714942533502097418919475265254357116004344457599295335641289428605162022138916256577988270265342113141845431589901827423556314140093335604384455270163345869737140960591347228056865881115746981848250565258313695552897346201257850446385834221618881336548769313456397671060236709849315585274752847916022682720282469664597774570105286806119706199539046274489233072926503153233256011456036348916079810200508103842849906063306379596696917107921102188247645538293436958925362951205127126006281232211352939202842995017369839337991078121106044998305371825285324758000729127181436440764976526621569984308399529635677908166066950684957318373574490625130757445992380877154917529673782768085826937196143987042497563440796453417092865311770203288963583621313662660079024986134207967424549480331266448842126449360625138620391397122143146584708919954803133667743840237939463228986034856933338318926047914740895534048828153286044869554819279486382406650234905806042189946281136572926024032178906122162592206479082438703778364947094511949069071394841086013912236905548834920076365847132697004922671699835655634387730959868489838088258892034182935010882777711368482931679223182184978027621292540981662438922135692583520089729416421157379067881568347077755054021277322466371782157780455365307217772280368520566661245233523188859148435144795276717209375270853259772673930141860400970380004546268873258581219006319941899408076847936299240839196242967328522360194344314636340913290472645099311291029770101910565215617188174046808802826966523277997620696375282495711519620839136082316343385973030268750081688669917711309848295066641338611859439114457825521747400938118009120886049127614285885596660760746888324104890287296476798300807822595915743735026939316905041807084230865578783862005552020457640207673970384016636560595358315378771650054125073512510198572636733210864859472616733624023968940309068664970940754400802144322944143137646451550466564684033684225601918467575053575764464598324077046633873385714881554599476318663898764928144862084969476314940891023813688997513727131255327397548877039151584271155556707015578113855324359584827543226654256022600225259611668952633248741275973777158360501892023320731446872707153509675212083173128218208553264863442716153932468427285492185650560607985259582775187196216542260774709666835811632931179722635179330016247881321281269240726940000780710434932624204146539100009931534188981504904713459600667152597957106163894393936419404155395924409629346322604941974826673435725364498993380334208684698717397956170354343238380497965887332637788632595388815285508036182826596817756976556065671840862014323753380433040720020984421292636611077316336061280610178625116067891358949919034507804271449410867832987407414405610609640368284292842284560258071539428690987715187942460359383601310756854417463812031666776499629727958183123544080076821388658487858982303391159279786602938498004009733730479045123985723518888746389338914739631771304822010984442559748263517045200117005582367335978190112047330227620789102080481659365107875600569359316068386195901935114756958752452315012738243871954022385760287752859793110346758853860307867682313275277246253379704648763982514844440379789388137583865288117911076458026662068385286743418750005013798102896377984549319724057878105243443113893988276850710577693499686957359085864752580219636984396583691159168000652170518126180876567098796757758282092609574289026456105440358108782854330138538831700831413719962295009470869624532258890093793978055383049891961589270491835918446844900886478438140682851477834416271536351629642428726367920699668548864455161970450605453518668619232406094145125744897232951293687064486244758211748961559187800268007893574453565608909293018728317661312573358168991847990159696355330873363121358779960596600870059218603405479747837593757222686477113062735943908873327723545648014156198428677417539863944759274332032523492264824966646756624065721961581677256922333385656293015432681037598645973583127631939892485948853067153929362675655413043837439961696159420019630486546632480012554564194035398079164094899127492983187510177503670263978697192021966128047880554971376034496568355538337437613468995923032232953203031106112059297762967871037991607840028743937812588227465882667125160336484497815002444370247607962052573261566691655655712262047709550125937451097843639030394644815486480821537044589220421322582416908467570838211641825055123107970006558610576325707741410552168762048086152875675218961143173446164834155344745644413623658470438357569982427368136489750242035047211713350483974730695505503336895069668344662062702375680796313967926699237938250143228815867721351937641745261444581828499360364034929505666328438333091485813896023649994430226817107893031291130838232895357256299953482069407119016387869618629596003497364090870683318841105017906850108080355473388037340517690471540015565679604348254087380490059858928041692874982358398331033912424318979459606882461418025555063791201828512078503468167341074131501817539879052069319235451588148613804564329941469916384889109466935269417000602636101500359263602089811354966409069678423418012880310403569963756961215431494536384849805916633970442754561185340792192385708660252279292879281769416769731550431028006266118391598850236518954537278071875498529428857882680628086171550116118574660934173187080210601964135587675499106464421747178525325637580829935915113316136263972493723559167754493440120244432029355921340727175815305718552528103915026529448768915085445618153943829233787937012879750919998398880171056165863130674162430554283298483872405107299184899967525102581035305366407476351820239555814013487844128069030647824669866801329645536532933768254428894362817575900032314396398726597195804865136074353315598466786704017182785145788868011124356891726027035209694683825137961797362611212471894459357305930165914697675734191015954804102613707398245918783685231120806902685115032646071928610223972691956940426655067927553739630303632351127172746821924910940651954329792122789306270369037922721675364537086625800310329392806008392850202511742792427900964403007247403077336047696792645164073293747702682021908798726737738989920703710017803053938547870064097365539673318398843032134706061765712767138838010792325859838201471729820525181388758898035954660963367843364593918042898361123642125966017365396932728320486451328115119271963514092680942429150037326896476463147801263977064294447238827962381367750833926909654048713232768399924054327314742692835754069893523257977197207971502880360702773560250234491237492329779227226483925992409175242176113507420372384650256998314277507026100065101657558765041248150288326545470405936852800408426326108444240593906394165310578771880911336456612701313791219412017719569118774526782835186301349861130733602032897830737310595860460222675786848173634474322895037023722309642904573728736579353489509476841682724833648610047035762224567599072642828726056223922072516023494854022604941689134774261123163764098315847894533069530392914330514678903273822254169412285338430031981613535764896921292342372575020543333879301700687255402926490933796736750834982727727814134783038030703705625268504224860444794124121850893784368480422965524759437128106479202290867091691138780204206188026895399022108406677839228996342824766737039327317214026129950698075764745449337509623538125885056115811505214161707495666111848415779993270083399271217432129943563378061513977134681578280960648430817131729937439124337516066991353341686502954604896540678801710751592948965406520401229623473820421334796228155187127465714454433342970380093567068863065790468525520720277263678792689506781373894544407487286200522539324227505273991768860761782033155376052591121739939250315131425521408738018332878933717271675318502254049117149797686908716274938782906944608973805906697753347918386697516673173972270985926914510381860654613481490980922750020548046032677277095733635022323535949898486581974526764428927007842482933825527824884161058770077275660259420515082053889791158025186716292406938676153688367650056635792441686612913947999799511929196492124719490714998859407297610705354878245279489530083382256883727314637285819700974752364349582309220208255459105040436501446193068026939401983102457219116819642856661214610240295334792913805547430812247536590494388727914932620438977426352358225071075021966274487280373611477590169559819809456044832815048477139733565298964486699447821406452438495717335901397621401916688802176813419949231801493818884827316960900237984559673320010358449023605840696345929880246441010220398847147532721064163611943047209870666814867744800047323446618474559994774705967072092690117131374074338998695066477585524191288424049784639505862299187562026772039108118658697345306287882610541963674104265738074474030889581634881663570378758125836865168696781607618358099450305479285975171674350293116699397739846234745537501026162157649251423046209800851880823080260794167440827038531142117467756057722147992830823414441580804938564223652869850423404675588691002779384036684967255080780414580152342106147013324493340842595146698238702573221661114892402050542432364556073391600910091993499305429518072368609333174728027043741887791150791070201599411243802496438915648485008712777623048407041754432386413997657180232578640098569558972036852071556480566236391167140226040039541651312508364908662765503183792181079748990357598266571108340248324050056103752207940112749160949662811301981986571308363863401550844730541478153476232464433140583893912422131341941205670920296514164451633800867038767657880981273692595478388063487490391512802487671407010609189759104423550973272691611002470668722254595407377701161941497543684141011993969197094534386543714615684406227661154559201281043245428956516596595728495391478939830324765640494638391059217771252731571446930723090024938273350475701353160362560950667226530576254585183523786287488573738698020172589063398997587606121151439919278983566225954904911787438876679810145838030146637240492215442121638103086540509907959263239940541337025690941212424334489914835607031969327410561860887335899380948383547970366446426023948405258598197351854403283583549632174254033308254584629525750477001369682018596920954996128997660555566675300642154492900246554346262129344921651284755455074660744477748689327578891141114666286100242864188891269459740170639113882337520794577389180362635762285496775660128783223573344781151417440894416440785443689089005365433259065655846437063448068391842082101840479994895773643143157350194093222967917375493391985227317143761731156930825802586988475701513105799462898450893199051268505014009993475569424577962595289169467679817160996813575584345757931767425081297011262098234715377829187213801324270642298648206896390890963534595042426030794312491259468569565283447982869576909054980492253431372276047270173651200996253073137428072085611596409950508048667076237886416014261992408974382935064350893111248920791213382410822712294597244536390896110597798477958111191800436457139108565889916983520856423204323651370595683775339274951139707438775132780355367178000383733079968798585551036324833934326307941890136337318923577040574688590852219550130541522322693694463513189860788257799043378038777619198505385289613569138605887575014740783526321079743840564356317023888182336692823589040982200493983124193342100412397463642187554178030035713829992457741110343427867637949204395985467824749952842762389971138379723780229345685504453072823308853021308072299613521774342795471381786575137945476029185608230945656913871117522168407017175556619967633282243081545757488968804599731656069899745716889706601494675137805326639257294080673665273379179321294640810098415155435308752463676690591197121093313217723661552331688913472051606516741807666861524808537273927604568274695565517826891934483402940341256046526205960556375523733629469402463818162297231644221628625541672566853838946609975957768322630932787450786101327537914634478251698246198643459334358514307439939550614798920596825045882509981014082620734400502467170237159069634288042954702816039658957340282678793860055026430687620976109028542724611848519433892212487779985899178715745805887496798934958280268254542495262958905093438963169169477082278586597421694309003334650329671998540121614467750619714100526135502257250840159436255131839347616903709063266400611651797985128558473359632151752296510247350401229042674358960981923703823374742609840862930561448231397379047891646510576462610692661639759531590676320706147633099764109817806091613226491046349050223713219643913987825003406833568510098670501138001391646542842877794300856880893248493605832734247377325546788222256660976937508499948011527908119666826046969720024507001022754032294362742528696291171811056706394640572180532064081081633423970388832043121466224937193756861232145509133572156357183423136144809311922042446552156531116390451088414831936625013764966047550257196396540689367537540067092964742543651910574707529449761168839011823697762109091353536665473715916296299310356504558860548414217376591434688786298800780007571218918974173155898594492692143231919215143902421029372279792072451282060760487696374569716430133016252080404488474207588389764755678170769839074142406185516748213506566021156209551138762502958369519916107291292624202302734817245231656518418187985881460310237298781369715275717377789498265351887567723243690737856618966032328152402735664091289518274402249923733562898925417898784425357215349417625035017261416382654245464233068839222755156024538029774113673620460586018920539463466046014573312184936788039300118058121972334088407282635111629911547877261986666039013044423721822479389757453906269511516273728705212152195889744189017163027632015610538937429768387170585513914320359409612363134928129277441555020112881307152477300850542592423629512674474047743669500181216134880874384295112930706825296118505877190271007274699827352494543200581605151579507163887173888169467178200928431224767202823769750614675195306543803859154968573473988649464381486680462006064728636160789632277202075570463096896170090711456098802095234307255306575568699037356103762165517667696481136977835490669099206537498431545282036182377145315600933890014089383928014887113578169388628967300910845165128945377765885067791300291055063883372109901318135926439926485413667974852313848221972589040915900268121120612926191678988989709102001642210769017747957983161696925362339330972791798334257296593346758869338123701628327061335148718511094440982678613342514870005737227493056593543391144438211200315351553961755086638231883939913622473409447913993844109910195037333748970472479425054330068294479022480439936039347257031618136353335968189437717330175196202816186220377311636145680925991843142287889467106685579254776776651971234769551950636764091912147495977524203320045548180114206182275156427822516274195420221283674173743545325575530888623995155559817035547924324332749736110470897964757852828156833618524335677586416409921384615548913689990293577545956187113244945284163259574839113147824247649632369956964158552410426424349912942165646419386851194407255636010477053249549281524853106977308810371186778557955909567086936328067509987908924006158384714098167184892469908818397657563758934453491627170343388046714933862212893644447750549449627593843469519729538710547544062120120770997998554697407444867307141841826997869918130805951865194877821392846659635264923959064251609197482506438726758460413527112197663490819924479604481464187948076597132095062615582285506938452639527260196692830832811484038579602430693705801518640536160702068491254808968930903856106636788995595326447107877116902963961665130482056500075698112400329902883939352354796604989657504903924831777555135406321532459770098466348403278084919910293803156258692681621167546982441616666259124160331550073613384064412105514002095325259770235706195125910977519829953449543502546296869081627179377062329633809105869917687382063784551802918799823993528590325163366374531973173288213272307316256365390315937921107811110517542359159133027297563907451467849167069402952014802249868898871489788601449105586820456992944105099413237612469503301516421748726850627377779055282975993501543987660110657489852168499793282775122844738572498762734788124325160605373927677579361058465238633204538229084814856564688811969324003129660514379567176972159940359818541221226787326608468285054673274413148068610622930518824458208713986111361827926750643780890571016394290363754501297890094709476072067778064321296181503515864332485577788001659830046989545927865692530033329088613467921305542387100126491412553877518203250128572039747331962894434113826974575133318426837121147369210194024402289687715706536871875477460179150111081509316875317404384823017035644262613575621065376198380825621794909129145861316503978058806749746213268483226915739155790452473232678612285903995762313212997623553153975974912623015451528038229679313098618180475803664369994145845058230677369105066329584429606391896411182139703866369315643200588648171498603525696748840087308137636515881868831036026298203635381977753649586417211671804054339313719694483101569762351982289108951399985324525565509124865558933981381387889450181212474399027969123810061472204666873559347049120675977523424037555717623156005814448956701614158167679335662693613900450977565186661331414847653415147119294279438014631283543470241143295050217299410449868618924311521774801285567052045776922028646442098423691238078956871376962768203244279802708190513727316824183969406478193835511663350710458205251809050134544943346289673195511717673892291716486344728017746242776394656383561220458380579850640404502843142375765992622701901650205275546770776071076058655056713115817390245341647067757219752407689599912455908945311624214892861919135325043605077597565719039758167926290541983048381051811300468290140149947553128315072127537057644308817209831328648826006950053124124139184634038008248543482754039085413388787794310239801771354221175752737982136253796251589066097658590678084546014244180737722241378482321241720290564408686698717641541827773991940501400772368764282884523528467218705544818273171567089911433339522215679432806326893173597927667173366604921714089571108710826082847945040025529319657996024094119454375523155422268665132034826099082970892795783477811136612742793108326475809650408591709058125821909864069373279493760303445762464459900649081275904657336665009097045378066106515467553664933338956940285474635015414133029226528174787458974591358304524688907775978412270374758006934692621259808514677565163426360707827495971536050018068313832039445493965668381479171147495044085798447798610229160110303599167789127576295382970470299847381015463121768305950256295727752953993869385343660078825254683533304926580791754915201078228214602559933863224178657386129778208324678822094621893174088729300884367284171264210488964237253762856286563677286287439916364390957656120975818228170487556783733742414102346886598698756022681140123027691274476478988722886885620858518504884996649399801800777950569979786624188964208012474668931241063825662098766646761784408148916085915516325902544822033458193775006842034734631233786174323028533273709129883591243042661022793037434863938567158811074087952198741134766744636979180925791207848580867163554349939974850782821816948168064550947338493154848905572838400553701980407923503237979109754919993143186706089874227914338158025102592262054570771513594817043998941616541773768300095321174804519313891342666747909671235798839207934541101372545306599232338467317452525368223452973449883815231271222909534151386703232868155296406765408258856221208520155330322411824191992570936638630093115204320694910491242322320422010596989512635478669527039849392156290020604471567707581523939264152009013432572613064736863199389657889700253377586060233462860791903760338315030373121054710308652223179471505548497244005745530011137088573691959582533633622941234386443654639515109906154583346107236595220241535250827375194309428554514286684733327980405150855348829029767445691423881588330802502432955715288634724436329660030251845160202200648968725857600168107539500244528590805748483386344084340976516752140219992699893524158539917870137365806219849989689407654537893649822210489600384108480075921506500936660698940407377231263265254259934704815746102945345138367562221549259184676667741886241324439691498785777157733886229160533899417473779046354203499935715725400687420056765077355354037464350056451232904776668373182730756196315939257629826713335429351373026387551493418557656483796982544937949444970523492791487232126509445268551819989195074517235331608542732733299956590803989285092737783458157565761731423293658651770418166271323643129183254286654245702695747425500634437541547684542526994704134103401350775218551220690396558895296024712607415078858529856911339504733289513358904953777981484053841204221215496399326902294383813588344159843280314303130193032721401990462876271664622652179165922283296678459191577421641186375644709208555801249481542084633829557399461911474850522782200062331070190299470650124638571085761316007974033053549309834373242746273027426935810925424436492994990357856962270265393263747344761914003477733851725935373727637956160034613388069560688429639525324558058281897612963575993675870934771793567832515615317672441537790572354705948861019523278250427445009052524686467641953186408137433099036857762603109295412161660410509080730254368847525654969763504972974495462244978662592457470995661502482528798311222102238112090882446498915391674000968491490350530645799062030897235925484318776203305556415221702860462407037253293415974327379995077166350368467975963395047356996790054559185521889462626686980940021579980002481030431211312853918110500275255681117318815958374461648939349850739450003759204166578315186326705240220458080432880220325304376572478845069449338942507405243980625704959286986330619693977546312788366938901422511270065753693780440721218114144056972369918505812695428733988331158229918384914601477395213470890191591137389037783835020184773375087393062288091730335036758671240270386594199510827809629437457950268421473598445938716055479570991252368258272116922835344961136718495947642694087022596434892014750976029293245921745179086621259127784637035763201090194106137622470837810395394490065479622718944894259690571327465747844215633576633302431823870437958261338200003049734061451963479308665324300850327874714118336504159523734120056615203893236423384782107279037499783692757181899659660050765902239291646231993330373581684721664598662503441125878328669416266048748107049968178474135791210423107481339157921162441063121370339534641361821524558527790595929294331874331903410684861956579135869906872753469592471883870777059440933054595410965524037450663471071623415693097121327910882613972442317038235149314945447472527084744577540282410001876241914696519559305798897622453749008745353742135051288049427865933502889760537272453780296009296792080410066184205491508891618110655016722863729383055785102278490614167960228610508044383407964452952636614252277264619663956947888114986252032588417976263147994671154312951307927007222571283677556040212747477489358367991565337834834965358059013960299625396751431876199915764824080922732247210483045527010865980870508043717209727980244723413495758324786555623290157346397426724166233555372063520166040989216498296715836887054186310489743591824228414116509610641430900949815403580684487823718407418154225215661841355769081755257657493918893018069486612095398965842524682945158557811454525475271346148555229576350640184434841070438212937351852045471739644173408880005887098322359782295469331450225371171290954064521021294651292336960236363316180809294893912202293948265882594160134286725525688984949722388983749162045101375420927252097385726097534965300660943815107593932260636298603416689896577700395449001993673206352420924173206231704394807659947645561377585603305349650888629878606256748430015559795003535141120718341412564196589861366556551890658598170567696369628735603964584330243609290688663698862575740095285895096941827458232709268602268759367437746575522227872157592517140409698386989328335462312450445456282639659688170558984518379100446115997532412585374653360048265018923342113442260662364950350332950892501848443274982004124036328964387205544104729015947481521332254946421288653244940868034354792607079855622961111089461567992016187046610959754727004824626908062986035126936414634399333000669531570445066703708475423889020055169062776120200614427719980758614328004379499594113212308863789254595403055328533206086420375476320234638710848397846710023445941196315775640357003254800163954349592098650953660916505199878451792097455249913719337253707002108178662105471255762862046527456144614194067263929033601891992946216045195272040138975989502157006574882987319122914109462327857643911652779149404527509850257955518390085412318193719900828262857288260102506143165609291423486695231728738331039759798093488140618978929389545610416499906582106397807719236249673064670992921933109596735040792537551171307150124521647008702500960871741958385584253311776083395478430840512800142806033404435172994270710545899166511862683889857634797191729204746179453085409453740936129489694973251560452680751448966521172281912287166211340811324507362466158809637794495181227303794100058374672279003741372264405162868754178130703017776388419971066539233230765588400570186976503821046780838092399737767724344861072722135661276734733237438689784884854188552337185486707206032281738271321856918898643976823125430031668233516972768354002679766958633566330564655185373368814826753580682732833376397857046756561971145296696260144152183006791310465206711846514891769573306161807932946700256105192098069454055051948273829213753423468213091466809663117880497378034651456073399865868682735099686460129689071907640771857163313503887626650010117196983832988669089309701419895298129371770786533870736487448411617978374949058641395129085807423323624367494612927708029914509404579889512762744767607587028995507570550828323012654415414243889037746143803250492291361497906196045340469834994881903559873129483402370267962644189144906161076609100660701872114947941024345712579887619038522145508109769162992431081502697335766855933167102607816445917341811938705200373317431673550426310608249898090851443472321113378748225658374618598868988850225582985113372076267208181514623295577258202141323617263963640595527758959206220097913311646377813495575635351061343951194291416497412810976056723275963904181854256569405664018178782984057109758689593151211086466401179442190441981927760160700436572121894720565304264379709341372271220856667136448712311399967183367545625589831857463149332517175706227853093576393710894433111675472015389179621654660246378141045107422459745298632353168534392287969890762778571265660887096459067299929212838945298037886340279816118867450773821221784662202026275572694621103091592910011497062923969437807514798194724861450675463192457157946384695940175863958345145763175460888312449674472104596463094416752462322223088159816382793250654636181693931303017558315830333106293494926990636672149014803079852659317361615372627922497358179814600421488918212241028516397001806368277964188947539752300998958792075367542268746296280162315859938496246189050613982026845738847784672109547137736479967062707227622195705061175940165439338025555773948296195510172135659875911796423519423624321563769701121310237152445742643659655553088398691158818738057409311154832093350615255261765165550133412831118541605329602279927439462637585197760033053952247821854921899560976626875393270646090467556204588627327960757724182276648098765813517227380712511985248176893105764004726747983814175341896023670404812274599843733500202830669276711257511017316319317462262548823229110403324948527655147351073022375844399395381141856944358614035021922013658583081911546812783964611175891319258606703580305602894646453765805182327021163587321642052532497261874787061458259707402808460250200591573999448983883042540076897438851793643352432809883332689416018911614846405841282427957725924999783753855868073950964251859253757109510911113596105322098262015208140912932396347553582260227089182140158915136539574751700824639300707363937933884318400715256784218149769330058385404419848458516401207089073701603321178412223647585376724455415365576153180737218748090117933021634534590972725614484691317321264127099367108987902876096075078255026093543897079151706127387133245442868767191537446886220184900377308868908634387776419377637303577595275528284088155455472186459750023121157878038458650138911604312020500835130748105759867640422381539167998670674984951037738303710699816056764500337040525646331871209593791711896246148944039863930885355140770668722114179677420674467854255719792284969762992017281532060225536088832257172405935786602456158540777864556794714318987345838793953658987063227763614552778606249298481083705850188971487207110369004800808837683104151893659503842205214990438219639011608126975021004036124293911253771043781752248477337689985739229551592090961290224527074079392793787980411890435633841007276883155961544388407250015375927296892358938826269098876654512608944926376404515345497842520370453645042838813002055952891679953455045931392072504743774574233281530461356923086127323848029668178842573578693871379633808465484192087733626936107604052512822383370352716548264650390693793216072299255330118713316459328535496238535164720589502910722280157511306214757359554250381574353425645179964025471277133807275321993789337594145794731156769423745454783589464161535934197361987562922461467991758993265562492409066335847252022215628779964164911642715856188250939004175311453515972927828891721167289753472809939547309211802164239021718422114503131231865908562411312932928376100274936443186296648282375964236405284804192878079472828354419606825270966286221186962971524377926988647133554281387571749622217399740190998856837377529997545349526438576376917285884625420634180765935242423073354601679535928198700756778654180479937932347635166693061322911802812960169079394542651828814419312071233881395631092240730172297494062893579081736984532220617680186689713735070585216666623660967781329410565269599527668860539534896145682037411018604469529785812511924048678421042470667886947640863310974574137130105266814254894374965987951015947247451245634264035217159224642085890833281280202064497332823161226157869112427268318547490520234926001541216635997817818092971778259541034418936401758466606304358061912919249805154654553751851172984925231243847181608377323706517632576490301900184656440076540140600596372725980244212328508117580384660094311320421640897697204034184194043673498623322922697241970658400856267264510382446604053198133048142587386425352611652606259710804892855032314984431403994576899412890603363799634982431608460153757293499559709169048483451682693204417946603671063785105462218295853756673148690558683201111442028868542308685991295846149493442992903556006421948152097015116271542450013001491007541967054563696967699168284269201843814227491367331585326825218888790915753141196766303082203090970463047586938420518676311727115361919619349003727530578011513702209575573967361020089810328017484141834684051865565329606777450755498845850035549052673599309554324074361138495529811692246217890669302460907830298687979059683535421746358419584152317444747753173448687202125152143852519343555748607734894597677682963436874789171748951781310524125498767632705795085221957018239723484494002415369784743497662226720056869572363331949911810602231430320836833805330458610302416607488247809700903462421745921496394481284518101075019119679003112980960889035445875971868781147673812122723525960732958396228069603243756676551512339169626614082438091161726764941506456504678250169843492985303567256556390705628394177184289992546214273278605414986681921701330123915327224341725182681906515559231183545301817683929187325395135250889483639785661385985212650699320896823524816152586008487476573758695765129893599990911303423389024877400067959074213022946312927897441827769060947515040620085550531630621137324198072320248791240814789412177400811264664414416214942761288903913353983528733915734245661240816648065118723400854635151318674063004858618890193251140018936515175797752939037524584395195779334352328747580832283684876249484303743338245839516760747578105390493408990068132257627495345522000987724274494083290961099476333618105858241898479655102077253618632223766780499503877123917877807746020953948460319349241689581619934705910771541666600021167695993027701071288142243740147684550317933405998729441622259464000830495276053740461018376718522478710439939839098043750243808568995868425558232266605650986519059970348313161344685364321425866649286185822606409447361857310237945637828996683460608997504190618269974861333588497172237232766398107205414397321908804218112000458798375303575020417014801985046377637419344107413460262910935274276595416188088549114440802605901123130552334748031820095837028873490073211274131098281740943856480992948143966885664957754741869240409835309312886110597251438781747352794078065868199179349248391316449644146481502465557308364304358429963070380577694852725080770634982179395333530807533905973561704217401596312733598759193933974387351563024662271135940757848555856667252009899365687465850117661449205106184265776970107755993671237937352898763870053982166359800078742344885271201588590136522528025732282919228903211035635762774547886831657237937366617856768175724705611783241493175011818167673209432629617690856003928023392409801901975365224880779366074309742287837079584885848911978714466546720326808777023874073102479080244540712030163923790114749152044651740897943398034426180020640446956073105683487024057882646555741128899022252626613631850121320284248117185581610986369330062447498478723066699342729313766961645342886085091134903846371324226668003690602821888018682239956226503081018709647987580891445892151839281611848627248999700533093404277063675759767826134331195100160159404213303478242645548061275833535223259862730924993113649211798801238022102134817274593386440516000129764971435081793206290643170114835738872701023778081398163249793309312608426915815553892944519310601431662616159862251399733079929974365847266641762520528359462417322448041576577804691516291728857011368916309733113235307974478580201411001311143561985506099807585178783180228515959451555212279489115818546094636817052882854356150050398844082991025931159231824221648775310539433344565638731715780592061604936642509485221487651036727005553348656965895965816551218342137342745602022443971688816124112589689193273745166158349005043199844412673422178742538282209824704006862064058303114381015294355582574182345406491838232492169377027213464879630972215222568795479029788435708314739985959754141048645671882277394369427893268261579666689816391061485746282741052667838625657489355709622942772435911035819758980309680844497019689728989531981943596607280654319403617079372734125713529417962545965800326643296767532315364470466195286427757057800713357878986466796171607127511259581753062336921351943927862399152714845818273824130168771238528124544151010110325150695084237734521408211043708065717816578281370974322683850275453747686253862847140596593689787751726454984589811539219686127228881255896905080907916520582193449222604800720753263948742128885301990185673286699382267775088479249479949233210491501690732992857355575416274869030979044658907243692813386579465536608774274458717512725470014487664657996248891273198468577347408591797316605404617000482815281078863481939542691163776665567279609436905809318515174737075485496379180997133712599907277525863494890356874467437862762133026486251726168833685737789334046221272165759522548498052875740124233522522190811869435921814079655499561700127095905660293485116971952847188622626954441730929469181611513714091888104862071851638872825904861370678497476089689887552181629179522655460456028408851304203344992694502425089662259032389322632076119332075098734493338778178675479418989723919623181404987472009135612901268356678829252121488685048264316079099840264345491341937274833877707000271138501315995676521764449547999324495022091612796196984367536468096072868125440499170789812902099953656430417284093780510574740562882591196801939788712452296036911563322937570711959402988210581824666151715802088910826149137177678147140017196708077903077058224687944892484320676456105597800906986546163423005973491537651229841920398843116427411240808959463267123449446914966961320922215799481914992774954274623239831877893133670422328063528492246061119666431913651791239380734262009507815522302730250741228857138112790720027566217898415904690488263139456737513847540283264701775781355678248048320894147867516589875017555173509379927994812992096316312604129282411301489628492084051055252805811678221057866067204178241732552113021909033642555976568335734670061876539558843979907269380105726582482875659732173580690408300746604473832324669025286077860930860658963654347956782832276739649135270494417340948081110540936909666155183638113328952099441439233527344512584045398912259947098568953433505940092323851089757248472553285027590400156876343176289906140085791458745312513441534586160073284050630542042081244486259541979392709342590364042291896474200766643125001434381244135229042716600917818222972682095427536713703840188987702974872945048757911250924538165365321185418711768074406331426655580151601218168074576954840628204143095030790227243533547483172896314432054341997683728095403453959321901711325924798163788544487038361801650635243572998886265279630528529335391870091729674374752902799848319831604873825686859982487366508338785002294392122012496471112910354261500777572560823763081073588625793825501374494861862799951233548020456229528807316629902783223142726502889392466073418459985757459289466177771922702524532954362581037455274557279224809721760460905634843833398029848798457427747023702368187745050327664214611605788682028088053280404679914162463438528757649970598702165493907728951478724238013637201911195140908701089565875961884696540723400283951941335592135721340667546397573082712621821427451115341644544748909150038928630873273061414219786972624599766513872339175262972032472091850525594922823281610180909577791468864781487260059402507966930651645657017955863644901089325150405791945863477111255475634337396219980684157772210254594415325761275895476186578159158857447414033364736376256716862295369567710767740591078929459072413554733709592463708005731067061573250452441336961052653560000894001928586814573029824184110262462475730750403588231253021829923906486959842332702357637272300318241806294493292516528977551544553474939749248931044102527116191016493959601856965796157705877793509547672375575293236065520087840437366468790331613308561186029503581730455814753814110125616229952426767880675906448798348253707138985644809342564847432375565089377590061442488707284495088279183599671921253754780225108068679273111177709421915527476597565698036161891228911838422452723993006403876586443209659978013568406131240820319836016261933489494234199462054936457730233932852560068582631847345319083850922737910087169287266378675224581849034749973253890730018775316551238565708135306521666884113383977939553349192888621010044733010183776972151804259434953956503004230550090779553545078605376823990463178088005422664389570955315987147253179164622278861886965679529763973877407070054279063801028339806127305755301633721430115131909994478319804557940027040076762892718814736148861263471712884234281993556773453039363740684666979369502643946057174806671914691446825002621187511393353760669023401220762915059305464032009353182071328523382531377448637922421284227958352126694844900729771794598124823623300372830875607526152859164300088843179431825364016497625650312671298572120780156465206100703679973692619701992485038464805694374873367855696414254502719088930461377132432152551981445168680693001119900863069641524001361974230541739654954980177514854310996052767973451953429001155975714697454081773155178235588888722134691243612552947130040723983962042911611436230295046917052248071893883004083769184953620891393340072654469107432319087979048985174888042996484128219599842410484447948096585839544057784130998971586033394128776981071614352078874682423355919541819858803619969687921411029747883989294345170826900362371241685289412896524420177407959633361570259194879499768166383775454964657320871516836971975361005684797911752882829924137355965516106411840188594310128605551937626972636015932828949397460619678233667706199270702697741054807047731362649606393262360717275813367355915250507509150759131901733265808157124752225228098812503771165517721782650255155542391422996586466436016046824375501089122341176032788064935671366091197125903407932517307701662747719694907691064782952896933619841361624324783653609246305848749064990963064225214353441138606117814331501079162043370729435892550394220956309644011790407163885736738968301544758889496126067887418098795036779910352949613036731155917997777610697733106699717914885528400847434479700695006041490073406419143864498204748699840995958980988453711528600418521285632908449680080710819836809410810957952992696943713109138792437700634257219004531959939125629961756620608996825510009947447538337408543971540634109275379577090429143798615088846935466537114683458411292498521710955919343935566307071189737806749327416447767414334158441818121015638795216994607516599745850268136783455651583363831817662091538499052376478143689026642579084122841613322922646648694388845867660247807993809598045719349961156814224547363442482844796809934617205150708324068874227109963217570685321731571015532222766849438081479978698613129783557037606525644558468894455079759481659647037184963551102420408028115320207913008093474433390795975375996497828024710259043990387908122958093755615567069692100897331145491448560016220253165495163560926113064669258055606488407260496169266915235013252895461497472678396544410467439211795821111283311404825412541346917848617516775521268074833419441390458681456446382198605212802773386594772515462104048029746121041528219707885711301858731969806575483760899317612367731651469670186085540201356368000000254815858508516489104942125138337384504043456334986904790895561006716988742454581918809060706237005241868591057017605992787193747764140701965391900581416854375154527767509833854500109368620441554657487371949298716046088430311129127148843578633035606359584239408320189324683126956555452244922668724107884558082795203160591522655687742479301229864734049307664262756164956783087854386588170675782178041592060231599205030600882289891340240872724203110814150888135884686328134185575512302425540166049090494214756508743163512889821136998860473867644741821444244857490454604751257392171989763788767522871703215627249042137265164197564573810810576855505451649051961086589900831779846630775140362515403090119095884778510029500885842090120258527247128454330230971027164931293923036533521960761200630399944428933689578596075296193941421854105441745517249511849592094953374513875417599616145926978655697117422074584123856067126157401906028323395687983572715625725751710446446215215853212080630669996404241969364153934451662064000792878310868692105271936282589586377885801088188753585361968337650446424161323714067368255181736186002474247101938832743033870335344534781542019825359934780210704269114826743653674229672081063223418925912128911625654090973853815388853690365367175385311428599101322362887632565631095749527388944723810803723853268164077083808327671803474213945856449259599239868234459267782832789080526229864686421718920298867244800471348811934061924755501781451561482292978231138386285460063920558286569227526528186415830617992630548106186879004148955391449192820061127191912942013854898640334887336650124426685410802884917689365655836328069522946939202301560784263673158813082216124710987917372924977060982465427969218821215672139245995725702821699396661316885968805436475184869107005811797860958246521057173652997717557340562126837928342873019873576979834699231911039833401281273421196456998131927502831943388388261551871335017508239564291665102376727192834622200954204247069247091132780532299494851775473611499927624540119047627216336574586702673523106274058647387430909447996623373994019244397846658348998707965683040804465411874469757222496741972264959580156241142306087316410193143968561859273033372881639734431198253954325624667432691305093202706393498030403247502715126972749408108537135614677094691815333879014179874213961376600484443854830745489784476305316341529208293928251737746078936487199428339788066626558655778968831648943460926060693298791018046465497306151792397006491798374394666866073972390128072751694343541262766794450352501819867576301997886736595309972722201738684238684278136341932807955219850137943798049842808314808434136103427379081082648987764044292794473313853766461607534478096359689079711742935683337023917592864958001564183394884304354678092078104308319524163453115981387054894358967881020652772751733662497263576465501290779360289982885881227580491725872383403569280197466614202818230612395332626244104831331951772865065077305258156436912030425912785746086249546155233156852931032690688625156890994425986460994874212735940214412690666639738155092439173146735092849300260649032997714610959393961298773291639977244078826644504465679874470987512033266482567782348315297548843442159184910640376914880192810723927870228155589213816174664666952044710047760072847705725574393413772539016729867728490909358303005862627693737312716743730158144482759573005509126516475940452559671150171739939318296169666616210054005670189788241781885804206975256696392083040828992280966500761058092528681935736490245987990498918488828315552384220802497677709442983483668064360494170358755880702149596398796044024787358181270210280830086576221812852341247185396713156933548119168082671933046112580004310662943943895952152296959538337281614927505553246272325163148902367507691033229122042482334921675347835549309991945190752356861358412882278847086318222552762649533373488634483798879709871617221896074943543596898810952213797129946409107768082428948505750546870123938205954128926691932625094803813280106583544264247412010551695013193174387164612539723946477012132303430871362919595089356311331610335355631211214882119488938626643927653071881105877344286377747399655277790086684293634443858857593941980133473255412494075878323092977071256139511530576756382531288929079733360677692969847539554130841140780778514189223885810074860663865298776508368798691457861248676263814776876503434572009512483134846105325945699864831278493839044588225077290721234144741632661160407380002396764330353725810985605735414315233250926729711375236540091452455285517419993366514052586614092434055643510937006715994431733380490562599117467954388313388957209921925061961885838818759762823051369847639060470922950460579768657868335197125861171692869477772999732064392263333214069389356867122368809811199039895097816276756070618716844050192715752859194313702254422923478932435765586637421809580345860556372035848176613304901801142976141129723742903473728878309254527724356551707578666948878048553397238526929069360157195637885070481282574413046030554929698780040068471410481333065584928616027042342319798689164626092619604934421522752202854147195130358277347090336866890793281406327146335661305876536167764194679560283716896210976551819537951424496910913741427597705379170411115434114846522709150099511429498321862675965969883901264237458889086353570653495938861925490446677121848431968021221414709746311219091956507589049371384788505751430359556740887058136044177118610045006313520511129957892612724410393574732776035268179458428437696681501954863732007494052140826411144904217137992419530768421691872897096862528406138820094131659096888953820738318227484294579046584478172455239646694901758138000592585028797980609131444233816984736282268102048247823509926408680722869211621069369277145994102660119114960020357577936534006709399691201402506950148427474029354050468123951746404608190195410523962169510935079194162354144833356936824721139323302254755137342394005893639922973912669105051373498821226511260632588277912980558106998295551823776734999779367911463798872402401833119670951803635238220786324211193706358637001397078105356123316290931225049467656008237871674678939057633807076428301586315870598214767095132594584289215538251968759262331102315005700855019183185400996541295050423214965207130526880017680382369149990878114651965667698796920655473545200483425561385120842150656937882593056366098239598498457091445750497961582822319010772321513456683877102450313624156129887984820508119772132329133695969191987093721605635933759412668615718973801157564240396417648417753456659746391169501697640509931780664497078378405058621581851454368127567296726875231147862638954902905520650839729687397360858164243642559228242271087697574599577018249082722664276860445270787083489478584936887455176180050000653181405777330999468148704716894777422348502876678290585826276125858564392694222626088242870075591860548567281330800720433978350037670624901436119207761657314442058949719985584821101980325828550061885790524385322357310451393408124275171165178449136525490282749504934978115214136223601365600902226695265063766375755921147973445076678826508145624315301781792165924697912535161476020054029074833896126251480923586298034603596718578273548831382487772500629412849541447193305107148172964421866726164571736378532685779628456987609704679311359145846522142658885064606778416150866999345814095092777924413654025545569132824051309395385279411882010180411220629828278071233308210646270859515246800391235000484841097407988947529637292861858899686603878856250344383739405813743650592666457295090658311626498320047857295113342075622704411766751178471804787579925300149417667732698473827753153425680681407260686998408253771620973584824016071907013751669188366647181925322730356943362689562971709948277196078625463206477635568132677364019706739849624062889300362329608038068061010734375424999380217904433941620870516014546847335515609201716235300824420290888779093544981116763355244378021919766318086252435225969224593348865190377417073364668145085160997934613020826483035807210465692590294747540342844700836265999838099508500370559990891554531815205396018060419479624447378218185249493874283573485841658978442008037224395396619416053536119856762742331863338615565075002947389070004101599976616488623334988096882987595263971505415008089579410693918986092471175262766775115693401583530478722652928358916178800413742004797430367909522423207317538903938580100943129702608174198529748434913069191970965135572865518693225577789229300540082500824555168741919768243539520371340084448359560988352083296143517643038947973114773537905209480630320358232586576454557261724001250592038331884072853015014352140038956317301381757865344025221131205031316711081926961730036141978280384075491335536301218886116888136850665094958065579615401533407122676820206604407305511096652650961639979175372351611502776852837242252236630110671443699815750498758009326441104713190808308357049198592490161544898642953807048259104086542136354308116061386025286972810577225789379618929959453261148777821126227157578215965101977991989567715740382095550126132083783101624891773426288844259016386603180015552040847845302304496153543481016810324877195296489164015318349037051987489835418104428377171859129409615565002258983960333759555400067079690381236416900579121400579312488934306544433484430938247825306713922649879157471838312241701195952936294895862612858442146642679727760236902332305163564397508267602225611655809897077455843073048128541705533595720443320692244212629232315647586131919761544899469048947994842633689992115735497471884123760942674040722126710743302560937250832151905851069198257056271769806938330480708015922508702306350180448735955670044224092578377492962394610028675866087227208486353536309079520554183819734376651420808618344039754283886343338527376095657322603430384220317836014626992525785836072589993017435697727078367620535391117641638588420181042323999621825371704310136283211152998604685368688087507270306969066379288748334998499767532207653108346967370904843963847164710551698243792362893797140369439999390824458488267942779832418948232764656460637828645084079872715958795845002324212547844374245918605405411943901192362879669341118530868955336955593697144246156393233051779033740023242183015800933335251170103642348792447114971238203322562970405795293081036512307879353357749789683816099840204157687797160793218691768264194263827491814308312727582632117059658214273384827576092954273998822607313355333788279711840746126110657573231695335388255897079175610214857333754733528124195785450619388022265970098872683283780347999107766930277513614043588267753201774315115074701255490605027738064852209238349934416614656151489052065207709815727180889535143140978527738681862706848113838821105454498000193588748696117125180554920417146885378822973095883901739176268061785705635200331621853923753687380592520353225121240571540652469119460366960441268288904461492103737501820720625603418879102703816630196244476770070338905272450855659064923676747359105798910357645758025714676423983288553477578640512849628506020813314920743102970818106046992155947270852641051409030627487991422932393473193333745816542258335813308489280549193504905783581653014387918859264934205279865020489691539763510686337880835058811093908011127036929361514374182967946913135913408062838018488246277209029364391724955821267990926601268537819363032371426913936158470111453766988753993099239944012996070884549569105471372297991941177895706841030506776697510946806082558141873899368623885487517111190514112303174689431643524252672497492648576207435620191573605840312963127832180065455642796371764288148055575043910041582135871272021734103591775008709246519569309498881674159422881757271106301014320646163875683834180028389321916327379932002835299856767452023822090349028863095163478709427590304706241979479969437724298967251427588799273007868203990917906593496362328314459416392734088322145776917237632999172845519575383440196879115329022392349581012926475262487761705751403324150539236470429854805893130217469256771262225080017350096740695424916418910791885697265123295177429327221486305146251461976136667046763459269343998518161858761786604365119272303771720848809549617481998617640921410750019718604170473227638376025242974241247579320115847073076029473570125648619971467685135543066628217560237892130844629874655750402653531683376786967042000223085264814002229899082664527991871516104252596669467751105711834701588009512090389521475752844508459139671642629432304120353618263917638073408347682989398080710783146831917702330239036388400637603214917174644998014644149330701918099991320673308353708486384720267248752331248481440166007823719145093010810692959601112886385576355154105873890842386269814300544085699531353177804339227533215464657518021757282106783325739864180483751889056710027576734118679103958794045524832843750922464045696027186530478709415455346939773599445379645780315629440892443797252383477782394520518943221410832244451712845496893998827183552316928247610307339987136215264420502869680328999561257825440757807853965693673849096232454448972361357330005824211830760246526472258059412421751706436164917938969810888460955723950873879987197396278464165580300020616788235760308613064580924707716148105214389553852037268410808216475594285089214231690398382216542140560827979819886550972409188905390507823999671866087755044337354003546136685770457511611325098350570784591283697245949597559970631548538780316774393877047692009218911834798212403515724071146777227402363349733316221391868429833808955616468053646290935629649406825157865257446431321488216555786855792968886778743088169200501075795218970034297700426331452575611095567699866178126249941439722293133189951824341570124980082084291123808246454575986686024536244465902217248780382730647781581586786487803307315630884289665539234135650612174034357162445258225273645338170782999383646926032141209153060935299992616301072896686870575798685581094359764293657281409678783457201863419114402727487372890057857849739460731647573933082848041376310747270787716427405955803466330855396635944240320762696558107081565364226438770988205247826344512932282356994939692452230393173642762329557195454193170247556922125342122288434130948226047685932944999891824819689587452912879429093881025438752363071631205476063231251075303676942028431022002882122067294080769338172565015791723843189936936913790187351312841673453606322689421610290471877991910239249245657683552245479219307229018838653978183623274563113591897338980405972897133585330046888505076121638405797948120476411673166733674927903266834306705567720051891980417615088207228721221340722408395929788002063253920243669603248159014868667982382588595931273492749371402551078811683526977154677115543032094282348555627538450572365940037653085189031527676184822910858658127202208288725986005093555335438777630884179964978989566812191134751757644289368988434627245392547518197010911230065693258701114289361596212489435911658532294307879439690210560824439511456262600798888900308561212626504462732422800060985603811244479617088494719076420485888710722278137868845578451974098635338981801869764600896682296846067503491007419323275174469826751742618683589076772738422070754819778116988825780772703934358652820714327354019642016385721337969965513873848132101714569759075665936070558236872797865502334479701112065342498711816971277758693398567541891774125544921445223414806314394478890315363969646231603980358869514786728470973410612877298584587731907445165171246305721525590173110160316837393784195345113112315631807416318707058405647385166220971674504730056587955399450922453416104142241040302517155654350699657886004685422566749491483434826515960193182556107104722232985280799487412080927694949503686594268249478087930482394133102998958315424448420709607754845376281292173144502105145655929645594854837822667581539735625723440258826685113831888386793972359093902763420391548221402134230351220977297505820158690209192728483557900951792524256049095967951445806081655978195476440972202816313459489866567927463515992574338872461442811691925076281596355433257402068573904028386184631328929987562245034602985011803361282703487434527699570552966694725599875075372978069265767585272720490545151313584812261365490657099504039071108599374398779609180086109881113456802746392008509635617194193103883908347621449546337564290343352970382782258139313184692210806834738119177961257812417468899198076566171201273041098983789807138837921149939721640582251953427030530213237498601787863440256864731415568775486661844983612709004982304639655068605991241796149873227223372836245664078942061665694684924432040780369223933106650376102975003529487949640603976191780010332720135764382958890546785612437934898793903114393460511634555011508967700673980173413645063726729482757892047839139667487014338505157559716267363362608463925516497675582319377559020357133131365584778283004267906660358323432275558154144096023424666870035161928589187319125664431088056596334703379975501891056930537274342882757468317190320633059334711716588619643216574727394621264576613604387183985757397600931950197024147386359451464396288569730719350188338709701436703322969314454284146221950584260174718975256176875798421256809921447685008959475544645861429856942515930362069094956438949766876991874189443574776450716135235954590571661860100468542442534199660816751144582890925070552529745551046720001225095435333489419436484451060685501963240561664606804838882888856526369343216389955788983993659099042956984501853886104335639705226227892091931378296181934462833257459626536807441953825011470358484596607155776485905195624802260545896854342133067023362603452495013433073902217506076747792024900085402061061785716791970272600086518440064954704207926265064881304916092511516416406134738982868876936347161258017041608242763923485275309947459404546211892377073896794425660337915561903362225327513824761701311958056705019662592634277334472893257585697221399031559739249811112673961952188135060691798374951044489985877856851954595537142527427943465343686198541289420143792369712430287474834903371335958300525657636750216640918620043080357269950515590587517395758208691681091800081844951388063449465267807284427522871069446944924982942360841736214824048526744296326978971447880446604360239216966541614181884774365884345045972355725621106601334189577165825446094726696340965451449539736923346076076095486495743200516554195929721769919431995900768729431612055798896179171383445573790939492945468148025726882814550706958006128937069718713438388756365939778467367329520454682110435623895038893375714218829617797992960575834142913657306178475469112570806009648905907235109300979441973583216302214660729722255611800853577586492141430928328731316492637576037218009124774458395862257113324132833151198722046141146228495310836662695534335463917038689140226395554524604265338860567704390008152620978125754412506994096068953283771740803946387901704661849389271853089135726452288409419022520367321971734098809639965643561541836554414116974963028020577637539105267136195757225013161369095219471792046986513820528099321937474123633337335296092730560952093933622888663067318240712394617828544826270852970857643311609614269021409529916431735714296264151888753223980726229045589854225250316738480457778310585417712187216197012985738725981503648491988188783029157386021406927677795657164655899501486103610911898554915790447162179481305595467477307407563442017754334786216630666123426681876193441496586083695662216202985664977669215698159700108473516508749888388132451818286170206602002422750556457198334117549816194529722494509087796974774267830574557299729244890428361645318318667403091117456979858659155405819937064722238216650880834120720630076737779960518040343570570013531942544299504625690092818878721833369696776747989225321387666480493913137437752563809369537612756348604584324191576828820285685920246840455303344180781484211624133927691144027209816123006640927603533824889231829630965993714365085896720483201976308763686822000355764966982696700184938099247617320041918937819741163832282356100080061159939543496114789238089390510545018848872548003520172212173718240745571966505446264485211246795585861768303114866093240256565666225572269199804783240066890237879960442409376788177642838739674233727738735582372854674764411723045339534965423165281541614845892959889341185671948841517295652454802419955849673736133640344017895149450539951392711102552758936746740450970323833458091525991013485831243972505571905708593659187088113576443084421458173455495486069285695704992806050070132327622442699158139225481560556292748080016134977056033570411612778711317688575608126244058929182804859607988210493216675479066703017190340450912437488144033700073424433972199449108473781047819830057142125893632310068585942830658478053779964542135460867973935328341378994401036849145305866445899555234666668281924247527664738811260501069950746965926245598674326368988446722455517269169213317027337952142757619631708843791302356037323285334838294672596455555837762488189571770520142588376374724526729772364408587333788438775099788665881956831701027234977476160805176652611609224931342782676993178739132682321302542503020452470708004540313769583465484916225292389101474488505416936268611310059678767446116442555250348147672218242316050088634980203220084520323931428336660205131058957559131000412458363847017637061696119525493411702688427300321709793349678178079116382756760797813881839144204864140575418113123145056310226821912366011427851401914619132298608907578987951909660421616485987142995277002695357695970240231250992425993317571613294134787959007515757765155608042248105222411778484448618371948696219328532511805535224932323552209677017480880990681858648173414086490020455617729125567695989072606312530469183130747089323121719422386700318558549539575083615526835027776843058963028539076759079355893098756155301454491823040654014883829263980893647410913228611421242195788881761664667879171706964618979191547831731028344225458822179352233647053658261634191923319110663929652059837280235713347799569221445592449720694690126295627323757927768589301208247231589392726235681948556851704780258607751248605996183195548387659118300057284775501195145958796139678256278791184931611622595794902323761403630225423240712204743567172872305353539678389274147107167959158067857237675766920909731527010119013564218744275003816159330316842637059021334442868762822753125081653034820282681531722262835393921897256947561325921165205731780104482226817376757182603557573030920972064585533140403804854390779314610081562527102297936120886093905096972180806433125457074593735661731847031993016156569164583783120469077960742183229950701929699636716710398916808573780402189148066323889956204036315062746446506334903385871528347284208616396456606574390982727783460023103488111820147316045474263699782590218640452831966083313635856697965522835322671862387944804882711623349375109580981729234209130464963410322214775862959803452545404188094099630341178393791568190092300053165992654437219646881845336703563089030296128203076954599060524998563629511694200108918509262095383126427103953274058398114344674834913043556873278316961813951147892825118215806274420839106456470155932981173771582309033828779259608727932576119927633731468465180318801023394963369503406890683815995718911165442714866483608585642387002337530088629888120801827127289558977076091217082336753605741594529551772707542233239245415210067990950782606078391934225351448565885897359100538463629050815777252527328751921624605725313160658725677739803106851042144520930717324704798527220867610858424399210354478539641014516811370894187022888908006835712919158018505558698736441756099394858215998041642368875487971002586870504715412813714759572287204892661880039067590007902962835113985670933001358743140035389048745658489948372838475788533551823265979460392087529009519538407675222188551518698299728208744711501458486283343523911058190328983083344926788208760933283193864849614336234975167560302375613474720342228706307933347633526006273142263885984964210695638027011275583760670460378444351865144367656422139659607890499064294649659291923014497633120227715471518364599414857113569866474118678221190568703671234663531310242711538808271094251388746838370085515727973685804873249691648027921023657141280105934222040886729162578093912665654503136062377017115229961789076839254826825769478308991731397818710904594143769833990954644847972280520386357139291002369145920026871170832017511763454167169387996780014591119165824533154259793752996836316737429472665398229040029273494693155629213415697169320640229214515114928137788182502332161410945198821351306971270424823088405932588741651493337230659126007114922200373061057081657388899561373289587731534366851863127860624194279438146532786443052897441627196184363402163513624490536756988998073663873778313924406578117472789645044805097323155714131182551592678829736386011925949764775671864994749655020233908539454369391112482189078637185936202770750856614245405006540033298539614435479477306556483807630310065205185309898360350252323765140028916036447656142693347568275980235242679205710294310245771861826293162606885056402314806179700016556009571895204186540923361415148307812778849836417341413574525305386501042257607420238525069641370368635012126820074462066990600786101977999669604001210648703006739634324142145504031358237034809546993707764982006051646656124394404209380184205224894289544187257987231695189544495059135681340547089979256006427616443218767195717813444106552303257861845981430152546574842125207009942407983543020580723185634200031965876501816120926185951538822798694334808177755741361927986927900239447630590679159073558628356580304996155122754145054546765870555756016007431617098081176512278459546244745479118992201364203474481375675191546033535969320199651971903090491048107880100185331202518803868544462558299393996687856118668340421841799118239709741710688279511008035821379779071424524995865863953935035409371841355695394562718319431601086197518539014232299030134660813649033023143683065928744000954640793798809250759889411752466342850943384845306007336379260826877261972120110480434738435833782424257325676864284965890464148509815935111300864672610836273068859559784142163390869487221390293166382700028818828175990685095754440475657211903363650015688721406163769539327269718075235076163073948847120544836561822818450762532479915953123586804599864910313955409705502507222158371773886696811724820937990583898940493539259146312918284334934297502287317041210459606668194822562104045320953394087807633322629591630646729053212015720228396340048634258444830263936684417650633805022517507438089061651622879019889126604917608342602432813285764242731878090018521078781214586967565726293513927123503803182731651392422235276660498536012812946196055096206282602696172504590017541842825299705112519171634670612389846575197625120529830674757345665718288052607937613240851017164551863728026591327993799528328675895474503426055202596082229820133944411428275359543546122927939821757667486337663592059959324419511604603893237997340735626447467642409124338959132266121948084350340770338513741302366036964412247797465175658959192508201397287565985238250066880329590815505113111916403914955849477435355099454782319411214493805960701387352754377782194495304450981790147718490853345807352303396266158912664315336892665657826293280601510795726216517248950894478311590105978493864755524117941320360568113132698238569896706820883015590098526614874082592262636467659858709388121186986979847047419957737739319882320825443386533324398422552087763280372714914917784163232447956134439535239975066213566214923201646355967639052979381659478195220645660387097954850545498043603088625953768767932361432996992295358084125880023074006252443688258420146809164225467027051636942541755046299345909440008522422904212115679517065188456383279662803866513120659070287879846848083818126688125390247341608604140365380850933354382948927878738225846588711841610321141050379894653002976091908797075426622517775228605490458949770191985250380932182064401447744338573200493145305491116191521893175864209919591158776616575724578322339731105363625318930851783331864698586977154527048982743342775172294868968453544666113508827984976750149248513966579304110423143754028725056116340267123413318389399318297341380534188451187126206341503515088494548293660274616142002070329462533995318469475962408332070596528051185305919300808736168144197138046241154548114448780910128597350692430274468864381839618303307610546772601269859371357272628892905261554071364545177961565365790242531474859968534666609411885174491207918316344677933416385545693930568280696198161894213268273631984509911148463476197482749304458767535169512774753455306594833753448939270889823681728933165055174983332626152175681889025012340966793024000468080320328514462692818492503922206992600472349802476576152380485344246530973443622972025629207634422561549566968661057866979914544348813752610690237737109503449745732067548060866699756081260590105104657694274853878285713334160554853443778657699360970861982508374119269349385160666874289933101672101367099864804096465801201401267800527225061144694620000752123741796337520470673910467698889351266714455859354636763257977706785821591053256798446664003618041847912501624675100680614546606023124891444403019085270642601711774368153437360361284888244985679028815341949035407885109994996746623734688314673567475116733705834958438793716788703369914884056704634166527884152190775093861557815865219716434882622165729975831592353848336806073735500865202485540246568682993983788334501295088602992179916697503271943478660646738094193583180965445716630989241564415975183656037831555113957851920240711341829395450925927195843976833747893224974815220669001876873447853430679817609727647825854591862669238370654269500700274047033625598620238651414947074736070092912337319592339755542308035683369935139346508279718149443162298169263621009108910949028436368233990830956886830996346395880579290370368365259290177368079843085827741060874307147524988874058997494285194124506255168067869362717628878743314926897689652204980919892454674679903578694977566052685382763349702840921551449555917115909219110920802500726945250663086123855849088513353925866716529965843997547003049378144156672377181020369544324368703180439509179672063929035997030793219379140203700640341628735667815808333092792588743811309505450348295693010565444985905161967255511567365591547441975906551111477519388266132862134956041616151031824025298193689736372391596779667319343928752979657664264166965644727757807513415447080483397547185819609239778681868764555536313376670090609362493393890353222735189565482670682202123394970563789154563446024223722242509318754776763103208738197389204893493419238579197072258536958481661673745392993467719500207623616037814096035598094205282396311767987815603393264538211420444991157308396337073507287433578583264672392950860576786061769088387002392174789419949516180478643290636789195187249046708649146868758576888076628867140115170981402192597793711448646901374208928914315270810329915961777124561357239534917237428966561325135934571086795320958483733719093360181375210523289448441915428496935765139366160041289221207512950013294040675690180052742241777718721636947503528861989598452858738854156134157149444975238822492694987682567145061488771276377475466521055545122976670969002889869672907978098791591077228007043363304244379590574304109830617756933374410717731708540549425574637577979651010522455040334022822018268881607062035167042080994613434300246534046159575244871978853840987552621503100919673496794447064086567157774953298924748293696035036939640168770814859813435930437514520528633909718720775160906835120183417367274255398536991121669347144483858485238317185963069243702826386922256858616319514680049908451912540355514228329217560775838178457074739006319163587510542903955136957839470245009118712877017261449256379364194991856826696598706423676256591488449618880241299846984279119487679920719094793589379364992027056457784405584722441582035480164290870891411518241769899750152680670934351314007394513369470956910299342478208153316263739405695507458370040699655089483698425310120718771008454478619877703032155168750789236030965561017592253190437445186716952999542313955562616019264716008794142367129369301211275304679918548265192786907000454795554879218466862133339978742098784982882659542591247793614356376855194144800897861489602983539295842738866751803780208183636757571273872519935754754958327292241839350316938586930807608538372300682880038269373036199862527009281640167406444751445185733061496779444810116506397040213544925051146325514237655113473700373814751678086234492401480261412028870771835320119329807811534896323127035894254285017995961847934375532768448462285782131165363105817859160887033891456319556693864376032367748792414392683024763095476525836960882214597040614585812587847264347541572886004658979146778567703131426307380342596752332045295993985525247803914165161822346061924213908847953756866038687352030328819564854777402945956481343733885123815298280860849389307079369200394240735271525051350867266872212757184919069995093139977172200115823244010245698691210089061293452197807732466729658257209276906585758567682071938634621714876448421977883099466888713000928274462231353773336486261419162639443469042042767938228320741414913563639631285021452682042646905163901207874452928245418810964439232209252525009822897000611281600647183950755348469528787868834742555082049954109641148195031177701171228399714398346592603477119998602137376655410438092712559120100330532345233481494960590916572337303035073223935596480673742772887251097597968698691092322374816990361971132948228973753837341510091381266589068577907330221968379191371104444896712524530354738242430495717548357260110377069530572849919734335155364277428100114695799510840647569465176586619164137831469421610790819309524089228117287030872012786523905653493527528409783424752465185735757914594187908279757952557228721963118825353734616985195093434976141365268018887814129155418948568826150807658330230444196911502281978053719664199818969469759474550972764999092984541891509813879277461123029212830585886876798382520013122878997095309805290056372261835111306162564538528420697918780693198549142700728223817542097805723371857715761497845165991504181167469289548067419943546829539527170158428347344543751762608014755880070193141677268368178417405566904185877169888518474597404973465059951466675207149970929621892722734892513655716555924410081414823106112754641103791058787959293654053919626834502344137363827936755235095429423931859553701343724778749019434637837266738767761564544164181217676804732771607052655190086934820777340378716433255099693905003202383876028810112953635694225669433247206609322505174923790055144969907040576046196268030297343713921947867886156779705740170210447982910970826995915319250525051442378178847800655264069270383709541894776325660831999994448347772436995833656636958833009149207887008365055271305953354010745273914718413355007532095859645920736747424588541348872025082956916969842224599501979121342376007500033443086444234660765241619618378239591025004424146517584140174716918911094459048694321884254906911828155172764601796499258114872307320279078545308631614030909901178356964966825222454240105497917954904292794555223096004581780733250472846726232839435861085840479540053652711205931617460733590297455305456095221546186237387266758961798782529940108898234026326274392289894924804123815730606690927691191272257538832728495296728625936961147591515714663963632608635148224835509601663707200234251921487997472408736702918644806021053805526000410812054206351437891886273000093605825542698713945150024697230932294566391707588683824063436661084317520886247657837557656452201388008736622740929050343423998530805940112275780246575125813077364782268149096672107312208889713597833538205697559725252138355429369687161371897736567532951473851749572457892552366386737479895589959010333011778303839442046491225650867140926340165573041494243194370998306785684650732203584605681694899174737357934959403845361848681175295187760407521748949942552280373810579852977831450971973696606232085241582418820720878750293930170889292503090460718024957775076506740168784127127358387520188166550928596367779420160513928073576249325057077944959836418113678570397021249174475277902353491717889806383921376803426242430286194882027558466730018715303825977605900524028723329135624729047565726748326426938457574367445372016802037379201585022775208372698716064512956783299273553869686867489635371963126851941870812536623731919587478067978981384190595559302095421466801639816580852701353935466743367870016013530106206203778770115118721259619436244415120168415780460218304051726593253469216628180300934626178663417367625375683390084463863438338814521447336796642345856741149825507384800336311213961749521756700337464473604838506711232891508813719275245173959272576755999365667318632404884942172591833274720410010374443679266669702453131567793495844505215359284832503227073457500221053993474148801041663034948091258637575400375201951855820011396546582715526537751503829339693457933698156923917259692783552879927204764290838796111407853098212779008479052118162239421922549963350943884734662707228753590533729602339438384985190371306761243563105157100569632421998530500922768337407007690143707921506817648353938164006260192509483709818774898395259799044929756597254224039770716247584849514623473579216669159077197228544683188320177726206940026788417013237433201202550123763715961537428205423034833491048609022326594059711362080446482991506378964244469836488406927821363670803053696880153248798081992579005415507928387821383855001761445048819960375712391240346091742626704945632842206497895956990373965638892801934846724996366942353606055152706932444819542709320809544852369686460553381106827184032140209457076765526435717612092760374300651914709792735373498724218829805675082252406360847717024602666021200602535826837068219641965575115722922192460649477450096849642247897063501337210070951808049420173902798044979899047246706107590860143986375799902511979256793342981946086630662189036565812551914922324320619026648032440449364615033616768191192322822601914469619239730473029616789849988686669313768177743371681081692075853865161080081176457366750595814851618733024249399188640931256899570434376500761508231811111293269924491692119280733000349976600038721730013694225355211265311544840472456232727019993323945033587324362657693407310623247431263754931041119925544967348172050760655165196621634649355349112945282162094958376048700855099804432857119972526870263161111448295132750809262521820989388767888053130337887990315581340697812019151677624202555546557541130838948419977281794556748299113526999051268631136464123096381870204590882323893415901806852826199095449815591225260074275869830988969546382742594503168873985267978855206385997629929309540679294979303568999268691506430309787861223493795177203916848923546766072470929860064940264915518248821700556710509188719277620402701785547973789196597051693937310560607924771736741574656233434948531756255762189280267826057729865577857686658550179901793619014242157702531776054093267398728697253874565261812457620988914599741868287522023285832410211811236915403750884690514237881803520095009011353680414946020498826089055280393156405026739957603994850963814746487753436611762408139916180711440683914231042786595740184836551097283883745709259504593247055553153443412739362672527666976901816538583614207518647497392457147662157546714439415237106529074493492082986895702192552186711612552458154330646478153682921615914096305658019477839813139817192531145273239051282980820079396103926027623595574726985018757922188880356154389002720718004674861367503000748669578241033664074846030848187151862338897792710707378719472617485297112030675832141319574635745626660273213637910001286666478415475139219413814405657105196008970926192796688771149583062413491124369680629704702140948167764585771324056096856564048194288884820196957530985111065482366181485478772127553291623911703626567873029901001187071928617568068355405647179847001345966648909111157052961943054569997551912799377527101221186110508325651046033327736451319746079556801910597348187150440620816617033864996740534621476249500104690975782993880337183111233692668572146519794566169211503361105911444167460620219957721494051599626838014816582072447006649849874981416584220768062224910112620396955513436696114456416112091750172726215083756169750554853691339375264336354873812353613782133349222873768979791628580368161384322590970236469610498402971466445492055056865771368029255890910966995108233651228973404764895879963861875780494985286212987578342393498010011568259266261666235417590511458838395368554026006548970831460823750047679900180895030653234051881493361177790682175847609989350739883634223522751688076581291997083264055501705442410860693876603776563849780862271974701078203612782408013271240590282376320465750965525153299698489080729540147826419091960308809804753037597102957425190096167009557441518711012781992233323080863974596951020390208447303942943178946573778577249533835645298032243461633145545274291298228388661462239699835047312786350706368453292208089852967088641304885530636989348651661209500496165080437513805330558650736575019302833492048601179723588948373776041879875429803742667561836496460287058530052359281444397667681800878512675627367506363327055580309062898939618917860413236389263772701477397217694749981414314720168592972567269085116483719841658516169258758124730244142358277791126077591513221182261463831240796337369502697924638421379559876089832043730309387714538546452810181163830490461978312507257276374025649849023551320650312613021372183296106678035099853290922696005496130628279531160065528032185016272608081177816833952066129354545590710746008533723252242318453063376286504554059730405850572720054629745338712290859565785392886590042764323206550571589270858101769783805534712523617326402975932660937193999366891493215257752238988546101837963038159268553076367144904861004338688496055275324045867768724846079652062460598455024163644172897777459122078092564343420898297207146460668079052216476219740623339358463107147252724679990044198962703343972598733723405359337614806744239793964930544654996271731700859420380843349061874240357832620648879411838521768761578023006568689984658552036921971584503531020031301738685388712972283851476563627312213161786742642425157170165256181913561992870087050565690297618072273067755765343413123849673338733213685267554385271301481751650057687074184386744243650322876435480026695102389473060792680969542631732441797395617177636757008857672253589767773011767961809371069499271377822066444392100454332733966422002802304257152828746650300605802092923595319894898370993038233867225972102785497160090437265469205663728433273635997965461001581548645522040182835656349966988511782856503882546885046058324986987277649386142711321795466262111711337204877644902287456679792796295677007859218988175237277748698257092584313030532756506618996170002935598559412412439220824143759966580401370303259818252754804396645893084425142533766170658669799990276831164508806406660401703375521916798995901451323538218189682966273026645008642902728658982775517220865718128827967554392012827239774935394147753947042921450822204894279323206485616902440825792511839647239798416749252117218209137065642138048455657057568220838865751813597032296768742208656059192351249047365938970694770712387987033062547120790441667991629271424571090972380622710404294717674537428312515778058209382222878844670071324058595398002526394519283069220236805050809549714503937371133934211299268979311662201788530713066530261004899501306928770511600917421098531487068344926243667131400644322826889741853698586583235194194014009450349722981935085500642954006828595566998405098861571445675248770513432181454447274489225546196569144117455704019053702646374434204662055925807883145044223644083195046021786476699562688534877184070823804579035646586459111544519222386188500345892944238378672787650373225631264382588827936722961758098147968543075838213406783130252319555728246749824081339559627001878258492244800841603722570265567882484911925214718850875444398660623595552651833844044671048545623057319618717705047953889684758123828522955958254448832733486921945660785200112781779536040580005061184321091978848491957793269700444493556084966316691067252572943627760078199993957474716055313511527482568614906794494336249124758906587117798886805748092015125456030541735599629837172634990239309794964673142660040396557851393941446110412365328139190135867212462615240772725300407779102387836569986650196955573263138670085217369562372372466675235909394572226620585475520189237248856923995655872889237587598089413738259742106481246421412268062211732002623383733376909508877774621011220270335065934889804106737111169289309348109508756667867183288712130697707877972238266291232087407255002028319730953925941147546647333686077795435509128426515980066085803537611345277760587494248224083636851408401399178323959898421086759830604660745077046744356354781037459914601891128465526418095627667411007644093753619199782122647316263515566894054063952436998024307938118057811390134513811120061785112811717462522160634709745910406428000170092762798656254496061736960167964734000401105908056924674912752668929586797972841855590378475628651056218510338043698481463228625249523543355393745265695897096655934974227947282538777479951823449013350834361164564200578039313237428448786884789465598226329988634184899181983492844475932671014801607902451714580541380138066235838156715032010339026381504498166521414904250127121345181117337538955638005146535818821103727243782489468284503072018865270314194267805539443476449541975444555994374200600106026251748367665288645146087337475776543552218277884472916949314943205640563324577481801620542615921917848737195426512795471344487786220006224952510984527070204093804665153140492569335707077555644404193282462315570943884444442352843179792630416518171862251162091936829849514353935327204828945629628507122534831423828317852770914690381770892947387902489011567092031946224030684526949537270790376961284233945204669077821203014079681761037775771511060409410096195297761490878941158083677734111122596725176307649070940275429415879482191288877402569966845668461440773313315851343611933234183118305100065800687524869387435011811209973868300309905950271899846019166871612826986615101461423803958095485356904008009384658274344039473370075946335883358312353358884064503915213229072665264903435276611303528986572392758396971190031372047730765408414833684679304048360933260159142207880080235030563633221910302623708164712158772321990176016687747536720761226196329015168893191815265897282551624771786247678968547826830824408765212333175298587413763403607609021097237222636276967421185359915154763779208276196385905554266475804213871671744759918792705256739582218020444753450017639831433229706342570542883636179265980238163322950853357759418910274555672510588375791720189375871844219776647230011529727573758392066578482177039060174157705072197196580711335592885972793928754199138811390724363766675447226502600583491646177110398302617055780535527725042016326090658507998277821585272136717584786075573268050927377686533013672704272003346623507786659086525241230403807822259660023623245865038081773154720807696423845668612757050938658872477059779302967283074643322018446003027098173998757524433851321722455512291368279639956235651146281484003057903029348849465331411335071373231160343239674784837172113082546691467189134038314497101458477277217074261538810686522349286736104824278605283370053080467283577164132455853937562669989482044645038776351804577345104890329016288882747666947094772730636370549267786563262427085193034931986614174714374490181964881760862978964675134166224014386450527230983440516401949899767632168423323037118341838854668935610750919255792975024643182489149436613699740847722292284638073870882301564553494503087319160775568668290029484896940585804802406800912946304003017146728942512998911122911135565166176807683006101815511388908325655770388018345032732726112439627402581698246559859652616768582165703583658238487286289141300694373780509451323697236154721504793297262177631050385087517039571642199584451626545155425824571283670930196721593650221297200709953844655464160068843050583182225985881550604959553903365489740462396922980952742794055193244790607253148419305613112644640317293580046072151294101910381633604374663121473016429447335761741809955397106031599862613155950893606217237693018582564093926193850334151211667363284802515582386676004535042485014841515170647080989367130487300452336745099100242387700878949688565904491364110145087142299753710720686161960311290792694087090618465304694693883808324512941053210129546030323292575473341662701430640340679152813494018674303383727024533697425291006289259926177466950026718370247576416759516857524162782648347648092570918208835915621465055273193283427443628879541377124254452269196800355561679208985222111416650046484332639514967718143331841017225455009445162110846660254210572996725084286915505622453055901055172977268054407938907005183790919570982212063132188346995914467131154972440063705343871407720708820779813622585305169427365565687665136596799148177518553576826208202427550389193346933052800971838925092157208435679766262265968989203356913804456008188325956151037959758760110330807004932034612756206577687366506754089776992505514234325079625517589352490256422655128267224154896450450406298603671597356691313385227579322430308539688688810421447880070281452119339614827103445712986875263183674630924189868805740691174761557079264477450364147892353005363443685684438285109204140650249300095405831417468109208419269815353439930000829846199388903208957182212523323019505968407850063134010215036779721514312249995350678129455332139492665762530579037285623027472796142947819657443666076426547986200811575460207154186567859059644624573946450204458276916802451654015542446247939515925721032914971442995955361203041126944780822529781738750720305898926420158195603033422114342553761734397705372088512652800313653470889250066723246102657080382440274759645496723808994639150564756189884620343771406875085164822560183705749143196194588134640954236124684904970613455021887400242981390832452649025322561391695329048307275153965105571174076591499952725830700293390906306326406306258511418527992252382787440846618869426996433793719815923324872239232891084321174473364080789930564166984160840418006724717580508836285713964306035855977099327340931912105163655327883536299392385642507359960868521395846901609431576204227428793008004580018393156435721530968910871059891369757297243573779298793535149014976403396339479245030686078484770901274670975959233320729993206640335858822295612278913294064208033923688313502027840458375562886726512028947568500093049993927986980214443350357945567382064015244664856977236168701926934576308459691906579486319442704785730734954890441689833459726880117189191913327539299564042159799329224261251996609409257141368922518888415789389956010960609426553479640126279616853705808177285057515622274201035920072550935405919410572636695971575563203689191397859363099179070245395530961303963602543104650767795520327034233635349788082909521097749279730722613539983753080883376175431914067973861725292503146124087564738981253671435482186843155849464676641186889977065100753980598700393076972734697972682354125731675305966865146864551578681223421678301219381533761011761337891833005624473348692634962383601453933384515051457464379323015394382678239202694676983154706636797479474657411440738393274073570306429246943571474011517076261883943993603706210697636897437951159886378664577557689976110616893892900952930154598300053546176717316733750918040814277949264918294405216702668290386012589164321698614223548702355930044299424211120079555590979391931966999085007743504237420365866469388389744086460619457926534175343664250867957676491701233845374925325617822135164032723037266612116271637187414151361402917321758704969291634082099686825939788665669959396802515182690399264875783230180313568811132752003468842076916817234654866485485493248889054185915509948544948928889474197494463162339361309394097312702933699562244988501513031170149322913704033035910021692201878426392873752977035982164848966353829704264651882400730191689157184903688893591942630007984905251313093332549201238800107810414119023075987887097335563476786876802801248595878768240820832331866036897693510346436014282166526009085655433284499520936378535612355657034350161704443819306805907790528513363936837667934377099044270698044531936254539202599626719225822055697776032532412343710915723437695910699252405290068380470601022849138952014352339809656152650795092233363473365598018211355464489853829522098373051823398593599748642575623835307835860621980159268698125972326380155512326677905252823294802091127014327721672834332878076413497595260443094736948535889026280254853094042887967636934399956377193330741718819194977723067755531472488829385172598515572045340568539437386354157627211392404710830205590268317049898689642140020121334398645627338092566239240574669445068151156716717961742493003263780814424512238531914565683564084795459442954518702851193856195025711058251785731603689818217444115657058188421302768718076896697117353285332888756161828572949562989027779970324565202891433163894284837173956280041551348853976995206383497083212371699305868900791625757634076885771832319154498212652153912575969161989293921978171296495929645971241344855342179387110050480336111669321494393480328762986237638503739063431062419716400859349870807024175784569297746839929123692207977487914567322088965688420485182308269294901034271504772725448382256576171149569689372837737374855395618675641341072261395349376218717272294765043126982229601979896102461908603461371820811575559837443646206613024712024184535547202181286431364089132083180740302445836509646761135712836811884523359719278017930594800460194379685204677416649814961772368253544721957902585338442536501027525941462814800919931646882938867969330680983594333508722166206349761598167251604599024841167765832238391717900797273488955366881681032577558057600927181439244972516101201582336329951022673465940801865407496153520643735290693241859586255621429994760622273310619834072077811533689448852936012823158910452672406688115444218017851158345745006566272038265811650354385066727927958671429818144479934688322743641951409896983412460371708411337701680873505397561740758507934923646623233357551528720763767516977377368546008848999984219252396331790072554274147436260136265657401060649355469259132293729142894300808033843484360511999771342032477706510483009538861571988458226918695353739832653654584982189365267786893125894445918994095411656512281704961592464687215003508619558363915812363975526163919336434153244968371398878367515135856195320729084695017272498374597858599218955423110154800773198230207653168708076577742117905023500351637597509905905604509212217200269903740180939733143854161825133082766800282573209031798955888892627012027836452621442932078074874242865491421674171445838682313248159207690856979279327864486685171795070151715332198483898714723795247792040707596083726275105772178144600788564337984130548773578945735941878279149541917738527408340303751154345039206227854479166981778666013699552731436254201501990235532997843522369787535651134910229230145951071560571605478444128249238877655986273107197564429601793889080107771774527501881611444258964503393357780079177698699771369928020869588186637121637789375795516607242428629178793712886011150833201121962650754003809289956814930390148910402557855915490501354055626857841780091325629820371999723034835063227327616780625851240694606120116271515417744103354365847589893187503541133105264177351911870151438644586441524770083012489069761521849266110571585792295892021884169260309055209429091238900721662806691489435742343138933079252426621632598016620426223019900178081644575980986010477012496105464581406061299392577182943157615595641046993999379676821284610485116254111056330694166563068814154559522672059026873691660513297371981192355371582905061339130141171399864466798990769082439823931248545693338182565988993793746610782100558412736609412034331133149199074055751707773210007984262454385410596467988758455811046266090743343106946775176347497005020713838108319401011667591794289518301390232050217267422073537567063192018816876343352830044140496913152868630134692273765476582719092460364606644142000660724510419326685480714427990402148400854989750982618524087778060123458586356082117013686545201783012208478135043983882308341863784473656790398699659117794589197496131138037367340693583548390893677829402739968638163348179717628427215920219821365472017891542203328094013797796527483314966409825353752440144287198250439177655500255263151672918915818453981459921686037145543033851540211714018187251973744579249500339994647853667244251095759838327587841807817420844440773471101011212700514105598753865922973620106799538228240222785770437354692340644803970890847314785956832774005638526580206401792360621031347263953831960559336884360832256102974654000877966012202920478957869554486186139596115210561202535399721847090047191761490289461188414245699432524817285545010006095463075291778903401949821238447502624002321474021198657153616548967723869369670655611638081636214275661989068916071904020242578393915840113683448158602765876985622340939407297418649824189587774810563411398807206754683232545314290771474197494747008826953171917076850333998117510245895783132462555217657173238602837515547823018983153343615053097740635868810243827134240172268241643735302931888032314664897801405294422963082808875250316339547802468870253437542069008865384807989480069077366504823356684768850600046661274979874024283729522123511876934844287083601189122193505426269976175542030340742749068642348222838764200349999705147658778438893488001723792243071738180914486998584478817357290820804463578005841119424549332413994034850809732664032117477309459825787554129980332503067736177492581103659690205618744725590027229384564401005565761943796429647426284530346579553248191853564708510351589586490550496718261338641442689451929974949913554277430472277496637513043977088617100919037005064738919024915481521526713890765744972902683166057691103230169542651165491920971499930486535614325657932749687975089516351370006582615906265132800035595235595065428211274375675379518884219897174719811125267340049283262764368147350994587423539260897599265786389999483686306858942277496196070570779709535067504508618558150438012884856093642215136979077188202794218309071437318527201094226678256965257334212958008916396690691542138417561825794135208636124426146763495327970356912695216667516163785425938839464790493524199906825439781029613625025283162602721782470237967817273693396213807945766209705146543584450656691409515870961125125277262966206927020086030790334285570387997936980564163913872884413403404065340314373889860768378836989279477291098239310318123187670038662769644979858284063982220333538827570305968739897835188595124413190859531919969257239425778983934833706132199588306024243833342386402738972727412841142159034788307048579121472884213100362645820388746157568528656716931224293938086776070589795524881981578200024526843485301634334711363420305335653911238859066903375078647520196997551393004090867209159483595129707532920945538518247006255138205938004210690491187954848980341602003555356760633410224478900573723527304834399433053277943724272097941105227906032619863607752346978792784519406575945583710712061257902678451604189309667486794274046045868170789448481435197146778245226070014695192684902785643994872586058296936092548147558757396412504876603578251221544246934667436421162213420927773133977366557774839855531231143985313829008578665970590589008827514296585354234206346690859604997315296484825439744333307652131091210935015884019580235492086421365735844754184592769717733380353362262877263592210551029714504397617192462881515083886240315072267065433013113878006704604549034586080766116281013343063154356792118895586181884680775477792305995184418301195243914031769674097832858609137028124551970896312001640307540867332563595876468623233267113434441888607205304725062746627858396939452731890925507188021215505144811027772412470708733613900940375208784926598230443015744936988503927912693517645157680138698018547887501957842322309290229251779884720653021908993276093871867663763603956268035709043002424388270118179982352574408771167164086227513740925908893322760721216581895301208870434421846611585209461266858209379334016177529394765083919021880428561788723307885096705229463741120447605779397422933483560130998942265824271886923032013319103077842716433718733975877434846294034000246897722938328033601583743427414086422897557305019231808253788825832001015197808929583933506669356768330588374819282347696364447682554874687519793918809482801070575875547079052591662514987975896507167051849825659385202946473578143393887846605636649013490307236112741384746099720716393492750359060530114357233271528585893693113618649872509263751597768618057622212433520308561649970483716816377348960402021814203336367766266031792575948250313940411716105192756242261610078055459909219851148113852926042497904729456648913596449162547177258736463431379612945734430309502587952408225593430932611113227872072313642511122566588729493109008291371182097281632707678087986936241191479283040514760258977424523901066211484544870157603470557981480615653911782458925520174017972157583868240121211720378742541242958877700516842146548038165448966791643331684874708513481744204463935742938944989530107539274603522197378612792502179877861746302114269639118657233705686679615800118206778048332284439408347494730174611502527480200090623854623052634126007246512104969539080202257553758871317223362019332910300763746281080132676599136072353985284663005996271703600211429472058968772166210753580802922713276156366105859281548098942887112314540309973486914665977656322906723501110277050538281192221080554573598856971893463031995238548301891791916008046104959385067640901003201891191007799897367178562636962343530685556981374807427573766895408202318506598026728317623787762085981096177480766614005418273200014723373265709067282986346949815984675311756325569380308608214625238495721684721383296474086763117501275074095927950450207629962716417767549897811181763984951531440487821424827362101220160231855347435777435067647859460112033909069277711749232972535735027120618978215069299638524540760118706494341157229131970395190435497823755392042479749189585637939703566459066022910481378074721031420020191615630255899230897918078976705586077794445234276040045244115674847025194070398298965463929668372358133964265418785595962224561267586123809439893067512592383053666953399169550602185749946265722891744685300327151048554045557423006194839744494200736618004072563655085356529747045550328033584797731554538242550854586453569351862922551075436165548817189640990233058616933565337616304214434214502821317080623922109502296699705271519673953105668301191783122370755106249681963006211787997146534236830956086783540538773699083966252439051995555582944665739732076070796629973629960115642616412057456501290367913682628242943261350297030495026183810451412857513573661974186559315965868090409054422181603599833673131056494274157838839141335208428127059401526554820110851394893631676954757993492625029896791803229418826241568480153714776041103390267698815480918879585385809198926234279373290596618734047237514092472143999435463982043743151024487497557117214990652158979722638513350938267708098906208409582466790630980176089591670963604959391195221988813796249291453788820971034773733630089583044763849924827677049901616483832571599558823108054025665673190050120647352590986690933393078044264758255088818549335505786025985162083310149006626173007760588526189052911854091642642276873699033683807183943258736075413700558852150798318211390895841260642943819521047930199574886586541983510956157598960478692777570467520271931291066530271499023062443010827446966182854336324386824072764011310840178996258146737202982063140042003122780879776486053799380009678675849381395322086616420160802482668107471789008586631925560442452159971723955063042174611190321205591325858658833851174475005813020159193181781396401689920603451604437246849638105714123835278097889691885468112690031804370567353575659458997880131400091930017805649918769585559281458757326274937932351126291389483204104558865901259599619119576151714483487780377734694669473317201156723271134537737939334323130244924891301375614210532878191673032998429145285597169042106643065989007314296274997970356987017673438483209868564010379839719256594449523063008722258403188202057950107195944504343725896676249435134201980708059224006484236219966231362172099916365495481462260853585678437790939706464554683902767329991131939346015194794422935983018990589459715706743111143730301033773350835159054793045100952278482227102460151197519725446156331981407252846421289642580931491960894832053623874307712321723482535925308512932790110940611039773568444738429969089416661314189625425070345975392962758655815784276787014698445200150321553444602718207910806038737421128009462918590405335145879257582718939606418761839952146021490860082135975119321036668308226733257518946685539435636981436615014560645566517580841077945298150835657921447845916775693236659041233320817856171112116351904416859696949890185272248468250852938152084037985773384646309680219171228414964701868903123819312748817389688061857824548215219953510721683100655227677149132677991655205130753074518865296349134308418125233072006651913705697697544721840887538006259434886166338524602099283996257900288156051513758361492052650628164886290338549702792009833928098881878691629507856109111511678484711240602974964050536331536328884992929201460574076580462732834947968437984741714077393826336874324574651283280315163065691371091288600617024859019233082943474020124141864132204182816395396903098206139888986723208166369483713824629662370868741698756570126039710245209548350042599186694434147295093330170051934859041686185624409465352344573544885177857628159870183674267426091329068208563462009341502092682302084484157677700719122872683926157259286197905707099632284552070428231427743760639161719966768309571183045069868915100753199983665509720883512496253730931986172778455394831485238612849264290974789381278917188335264259946651570715993006290589428272049807617205648809488132101650127137592013743045062175963917442182752496145087478575668822193148108289471394549163812220940766096427801905438310794125629821710160885155278882109444391905170505336866581911003321818899410443528596098288124335676378635416078894074002274472689436407124290241963420113220730379161459714958579801554249747175367617908140475153887884423397665454073909421680280159951803717273540238907785651982356601686573505532412474534241881230247638569810191556752289349730429933969473350057999439617970808228853111205922569322244142390557550732328133213240551718238852793988548505871408101745866353942166119712657891323316807737306022279813465877526106833075808667599780470868220892393808720163885654210268136793085981749053607105258455275888390636911162652373372095705218246101985218203701993862181319186025339272821352767976322950784855658460067782896842629876149081795509750530828928558184777751241791118281326922604548169089206425993660071564083568637934406087410677015647966259406513520159086100365133363033698519840708096328700038104251150911932031708749565601937594379168203897034388255735308045381582448087494878304768387587483683799778984314989615308246618870901379173164929999481534662190503788928065792139962070514550662914286053396634687896663786996902384426099223652191994854459858902417482906951319868328434730786356015891544919432432567898432203251528232259117333636968432769615429707032495722803701311155366390408412170983821575359996214762031127936817644306717525887726649342869361564302184597492050859961447833521303032654645128376784755763028184830206027614033407372472127559372702770272237533196961800002468775326130620669087490039959507175073122722274307415585949281190184839656699343253433453662016458086782707240952672338201652277240176064970636559739649232284271230615067499841167950904728398106062640657561544421332442841693941077813772711358258994869882504325727802380684030440326684005394835695369542346113885444613970986214663824028920037432339026101242136254066915097965461788452891233975619312059891735450002957515122007900461537185505269994138455428731873931331106287242008811637138458880924029288692194150441939098875643532551930060693502452290481623492188569893399175340508324901119822254221870890349449255076678530277956205721266137640566997987976332698043192761042249033945608261907523919304595640292128034350921651714281486914346206312108260591720712165845109636377370628494051033572924796961741494595806660763088480325188827312329078901345486478050404712521396660706454678538049095107029506861538479117166312938922122141718304590833181487312389286665318976493249238948724303483586407808726798653880963624712803411964305654963079470795775787614787925356304592614520912245103550184858703190044682306067953447055773502949448249287962998414116937437031669697299234924667552693423347203081460958863990432235166100630063326873038500575101605056969016910184859542848420070181606915125046698228915365253507865559293241670391919040948149710068005868499835716861733079408953485473921890947448125591379421420769597794850321030725623478117069225045483843768023379140624609382382164216432797777900505863754204327845508148818176639733289155797988093741244569461066027994872742066395636049130450813638399325621571480501538414973456309303865386076691700327607752557826650899753509498215785504229297898379943648290841901230707007257607228933585125809539896635829375657310713861888786252851764406981717372557395954692678042155569487074982346751378077728674395688668668128183681258350541260515225620215178811477815519771785645968934404605066531364231078897092928002417722468834588263691396552590303400338749767773370697448853635778398774659146702418419892932828125077588599543066476253265996613622417555504698245006577419634465432227485470014426469896103709221025720804639579031028476777915534352573372098598965251129674097263128869592444612979182572125731238814171505523417157231145243592522609115663359057579417285921894883660286764512166553080521208013555411550563834190282823749706443313530036022086485590159745980504206270294169393178132327282419990442154245920630176740984861093501885397277267548607732978088773919015723882009445863988691229837792025572071716834022650914033615576888487214684922570295947404401148677831322224906433116496174254423649309877278848822877413685993674579482664613951438925185434986297752498319496206441600179277388463949585530453788274641513738099090297712085085259600310349079252690690718141095440375222803895509141116476684155344744545854705797616730840400147274989793155913259578990324634355475727775410742617431672211251789904915826841923639640498445708263448006507858050651938289420487997249314379331823565991602073893531287693879811720866058735213653819532005058764294595454437427994882414325281644685265732203203529300902832382066219420221585357248831426576100627165588698147132864674714478739656656046471897366830729740134680799732709278486806722349221902872931045423595875587151734217229453775519479611502762948550105014941928221285308578969218722246734604974139840752889826266692601759358335789061209363392465465605011919374008323211695088953924789583625978556804442054803499223203339427170380626024102731478866887770081315733010094875268555901321133894232265819486731703525045785393537849837317815863531776060270775032233520200753447428591506306522960255798522709241578994464537223339610204929791229063693811873297479748989739851709073203174761725705661450223147295523413656648737778659418800463309077369114645371420763080298202035893184944090245007125227817946196556600650081283870336277757867901121374079035579234375294251105413323061572607152197437273576307736903397926536783260464064677545425328549430596141696369193814134882716048423998252999315141207231381548644864080397198784601238971518191335078581279565509254472959227192516120163243030818904913802466728418328764940747885733197486577172050606056147160133499610732713613049902005743366974196394694121165551412081850933435128096656302869476801492133509085515834044955468169640212430145065909022331233612079183828496771510049241598749778567911504630462489626967577877433953901415018882089761142875143549912030638199676017498387452614048821584479878485333044411061532686655098049441586254439579297841050871449843852799521825192591964768750862064537124312392498616930306764674511087798391871972707137532513658050674001045311197516883701745614941248767720932411343703478863258203199021788652978294114594733464484484680776958126861719787421024797976759741805433432193705452505693501874700276630858803494139698499711816530256483411416245935040794158866013058586397447279230918554796210884620991897714829733909892273364342558150786583030954426484668598047504288565587516113322099435051854525734413573574304521296061459618981929665061606404548513618263749400227310804845003980175153639805239113176227837698730415126584984729696748717512814587815915587694543369696993065501747116230932358938032113022089778518676442977044059169384285053787746471598307651426929549203763100014650016163527346673325713763419339283169935568120052503381924050692489186464508232514680286403247092175953613966809657108569050014419517357636115710839476911121509959137015010563206892448585668379948755219027558610856150522806266705658298694335952317170602941288589362229181776269792907212176478177912853705534491931775239296638200758904437253990173432688559735710608000161601331892231859329900839828815895088553900510342491885427643072965192451985278676247699786779427525963267228954637151385530154155771249535862430361302583077667619405477186929723138800553395685992320928530002357691913665304334981341640903613785237603072217993361600108091679266138299691699796949187800154716979368241134442907818726364481199453870122346661812108580621701517786555822658873830774686756329729244263538031422456689214040149954000696030057136528711542207130627847077987544394581435906136342720965830040574411276605395214191137964862698150072528645485948937625999482036536336923829288682401135065414797077802633239341255135489729606729514500591407782120948894670014735099939847522991042302878464610476534220267307071042826082288965754486303357019489352450875244067682513409993903425942926717728513001730224391586345197694445623229509314369374569445849917498085408380820189678490399737448557440024770863035918166452278579817999662814629441109080718400458184740275569447295783339022602909038744787004068690077870444222181237280081922284238768356300589118134294456359759282338223193062405600702496912682831782595627828588280809051677157091946770649842468413914459857343496268663035983266976432830771545820156179167477288096084251711446458051799101869717147311993155385674926004806300248564200186885645180522806544796210921329157516688252953818836021922253881123559721180599015615807794933524436474796236044165070829913905246288562622399952406984564636737543355008408501322670559950186196336871166430748393609484123253036309374581377038337270490073653510024079737490790979068539355820222024499492957798832977537513443935288727222767099550416062633658015345094111073567915369296014408874928955215058197562248559220057801463036710367189084687344693072885759369731716198633330676537909095672603800323863193861199325399244028379402324839888663685555319222929352041897482946188200629044252285054226399365359434069841950158888602098460583721931429826066968879327370667108288741279399573919193429613532771590255945699618441331169490962472896623487431432487741747052583019133782662358108119427065456189551218793573062522716988205754314882416871051587520954800694487113331590603499393915754172134030336251451021617850448841118053654653131814857262277427705769392845786186286891049462562403611563629944637398510983540217647520557206905486418163844001305414685367516921556303212438066549772378627512465285324131054456486906390879000838643960974204312691627359784597873286410009403197624307297872313208633552554667634432940272504390182896691274227550697772783365720229955681947024711228008748229401501210278046075703188854663204244070419089005225163664467358574313709683808499003419593191087611001044762423445456206419952227005721985565277682181912943436449711631755055727315437238801641359170624137014388738213234316677274995272151552253636503488380510837925614778281681824934253216554015498810813061258792736456480625224214350115302405558635107811831714513324998144042871377389466624072298628718905738870164330238439126480974427383106222796775174251531125464274256635392745271523042836403238261841382046317586815005321238407917033515852803942548577818155236454753183835150972235882868028769776469026862314174574664482967510458993225245764398551044120398680832796741877544993548451081799693139160074690493101105448036348233725496340503968705422952643809230050847792949266821320010065570473871470821443031378934293806702206199615560989227402144385764534026685942011552707165261135250815170128095216487176209412584424233444937552103872599094325587698029055239780491316760795990163273850032597064451107249725189515022177391927578848196608890034244866188842373505445479573290370786562052725310438432197644881544609563924224205228396688878796699968626719413802861012332994231446382574275201935365128405009865873401182281203808096647685392622187371403010852850469663986812381919639696193890190611240690450422084133538503597210427323728733800077186537979042158108265813017375923393249527216900102677135912177344926283116633223906856832473215439909125917695349821891373341841018287725305985974897671709709213108907308951533096874539841501299309526646873926882307626292470188029931647752243685939502169299411626773457389237729615841821386280450799164000139033314036312386982109142970100886746513961990878648596592612539261700628850836997784409377041272633242538490250907461219063232397227950643777892724500681945481414913098523546472899764893305599219432300492919259646866395328559900134923495690561587782594234103235411215597936388628759063989094477258673327604438941216718953957149485822119805437478029769629304089212819873297228225853506746721239068780488582112917020584515156236158249996484546305941149777009685972499467863689390879028911513252884396803206076513185081386003435643721022159022968617174352795749274290927356126038084325823960428327867829794331268083250938308296805706628357484116523928543208434164411178998805900629955486734182073326021328321002702690901038508202080176339469733985593806893825259112623775265053489276438091125641347376242742364494950641276609714885887423402812691085841644383111322648369399680718204039228579067541633156575563301994521569805817152623472635681276650310970639918753807584355541828199536775899566817487823492356518318958822283769364988192073391663999449058122207768955914059026308795485261112144476017311774912696599649358947340809562870838379588348222153336614689363061542631216500186497195405157745575428705602019916094037395680989415970323425678549879068648179978899126991561903300983945859642099453020888961407013639969963306704436395097074038537438492871672977008245754273311614952801074521054005305656927215034497467197912799119222896128810560343804163347270970345467500955173849772210828854383124300782126527204583624606521004896935298413558348914019205070592580003305832635804031192602232255462192042183014169205519226398670547567316923733530046797654177294859406760719054010167601941459851945668992081749480125801426125921132622966854025277886359898446445029384168560063285649384365231415521286276959954141490412058789431693050535032954390436011219231532784788084988114438947221199916589126799735111152847442764173688941258902088508987656958221255182477998821604494579543654282141950770222991307200814719501035840047900940543297113226757410924727993175135192039650194550169095989494612865029018057974627441404304522186622548198061658111364337758884053598262730348182151839890995226927362610238906098445517609678920019272678752877779313455627057077630666630787652412614071089230887543639416704256808428891730061511595252408007986026931349950729455360386850769263821435638839468408283434553310359506455736663153793539367387274938364484229145566249127309260368956150348338742560068169409088052265847810010193220711014945931302105823269319143013992841182443173045093780945047356753237151725811419689637238514872750917627499406243060545982842728633895661527070077029977798833181499264446067038264102032072889373007735530295600014206385423182306113690934447372136139512674371893045726958407736096690930212139367196606078737847681616895347208958773868027278929214182245848451049789473032706648790352850592508621569056290518762769582820544761712646822191030312293769225727191591926852643346066298543206548246270947761405501897621845520631408291029380055520354121503664005712561108742770325509502049773808126246422132055983681680225804080143497165878827080452239968584997629698393307849452281484780171669843983185105340668599047681323581004904484099526847314071362223956473967548734165499109072519277212757544689601915942424438274536942548816877342539756866245034193223632571868464411100027432811379493430770715568336016971449585553245034159997863842560605657301583329123645902652965246649146790937274916941886041441466613753366095154754742264991908094345680534634091927206638783205965970475442687674486160891083415794494910708118636585638299622929034777204664659767542834092411431893911487994057639073141274991651005710078803020608527683880516990552581182898306288847557000837318043452867620990458799320667144110543255298595863170275690683342466414602047601377100847278553060552599370583359930448173615601074562800766570157156324456910242278412273218157213776406111774685006514050927858576848343469936421279679900172366768497794849320744754456622007993482515746212060607864588212252928517325979169437488225471312113540614398231466447114231388103294074563480099051702951128173898681584193965869899982635142677417464456822630112624076683200739802283026797685334133753836135129921620659302828429313025717418332182791172335332689605698424488006730309647666376481685294646221337011230016066702207014264718279125144503203286988840162707731984201508042887360744533678877574248342604104596803333040948081511792951236546388058452793089761063598747321640586838387400571245303889661416386086757448371897678946854089168258442440626255202996260811484646953918199128142275537193442880574636077204981106973659750814287756777090558269066521611787987871541461946181252339516322591403396552464396498138544181172664328701809893275433683901061568927200339814304100553473697897587574775056371225899947317298877876929440397125147870413932955704744500721753733591483593949636320266146324428948794496793677974000135622525501788732975705885773102800737160282826911101679042257892473226806675355422713290853310853276654638445292099956706064291903567741850926418205844692455652595859282119134174626653745659994580409986536403907370130361147474762899578913708471723245655693584645626902307773941499169319922700716966881981783959237269027352941124261271111496542243677113313001770918316848872298632659878838751918824781797248692456137775480990400273727209439367294314472317683765969541840211729537541260653945749901114407352891576046951264557607886461645106805881361757785453578798678827255288410458201437141841781485034300102524212601686743563256930687897270250991022262847738150705942507383185127037601726712494630036381190975744600611195562227954795660736268102588384231547530484601887597949236046538405540878344520809703730511668389775947863731194381914150927931940915673578380937262215845668213063977913488078178013308203894643297983070692760668079119196992884228284063093898763684323278433513267460954118973133050434785567993047129802532873877500572899026056331525641560884018764870209879745359073793168240707435031758622000029345916141069213450069231709046322576946758073685532281359487660363619064929693396855962073436474688170281863840730491599357659229750533196641698966144675548855592092459950519108027932462339416065090410655948915015653230877295183322910066348236167789362582718895425394936362731406264861593578750822477447406849339789029156545537823840011758627268252665668637770057056336558694665364366039730500236638178131511508344455569566104112430545588647576834110179964631994233699480060142816456353865192081286926062441235115851687838536378918260195882615222253413739825708848158715333879487566708344951905863583709202803587316178646016541276772871770065472639630170720728077295480654505761936385240905104477550942590246590251739501733532763153698041267539301009241301949488234717963904632813472543014991742635477179216759618561091033037806595972620040069311388008466257449409472265243013772072924197638565245426197671599885350476135670556519278951353700125126191905625218843359468753048808148096936652834500435003413571289052144456451147672557690465295216946609953162489045796159856062100638002057642561694588883915900336338271541997183664364248947543110885437377692148883213644272246943989578599714054092084009191441300781881973257448716018257806463451914578812119690538409107401356143653888348231247384413369433965803836522628186722440049204976658296624769601897380861554521270877676689048769081722291261936196454234199042898572499916636932793952875446040583748400156101943127766210396760673305217380406441511765906686904439124726564227487137507548295437965019088555638594887624540873643633945723747941443157125305919924030722362029607890099356845688139983363944583633068292610108340777083927103944370433012507533488859771345981835725228762575910077343986547698198214736411778268227503316538714249048852613601597355768290420489130718008827169309673044128938676161915679456935650016686464657717610168380020241752900911380437776753038175346965307737904767625613863734924234372246953002874712404452347316224684020125834006978484551161181046627558291014524163003233068342616462552530383643821557812909222334877042094249384951122107184541715788973212145434017068640531684886274748926056749171280948424158996287181196697966541635440576145387788429681128380170235619251627954213746220241385573324685394506026880334095180896766230859101762282796338898140237296444276553777086881494265586567511658048077574790046190650585466050096396096238319480526978081063500270944558704311998590038919449504907103508046796416528822212866522820965717770728601391692316792604725125879936040667599834798672255385837023197186438132551614312964114018975320132663739952715253328014742375289268309599710176372147302210335494597447032516694124533641095314105724411424292686985241456837473238324677493683912401625368462574164072335267032253365845188714329347781742308247516173733794654137216376552515241106610787392792080911454467429685000573753801658411997066423355254940641297459061652628421898170601131747538424829898214067219932255444099506058826395169549121849469794046586523208338352885466256820941512665621789235054492145657239154071294357031836808572631645304454978638751918792959085865416228058997014666475599964447589081764137743655662283819454363218870463649941420008808094241867114498780912781563816161526163351108274461592326325742145289857300790867641104739055099110464221701562127270057745976161466092245448033779706085520840871275512305716817766079288999793044337965864896157108298110600275123765604738872977625624044462962679168800520094511607934301511466604927305924692598843168017055715560769238252017322242882043300089664031654660288943273523061810345905732131058094906769060017639103052839735987724662512432858438748149323080650680155583041746409286733152477817113440637443833402123898596281290762030275026947945556141047085097657192424478499384594663868118738754798287282570753354625159648170704519361832053159076062017764760747005180854123629292676130681169413116428552321777283439114938162250490417508841430734697836934452810882152486141240872156721456829944806287847386307458203947148171972303695289413784338580695945311301829576812909383740414114978934918528177150350754258500597852652022361548114395990183078702787732122079422698048959610047563243998215390409213787395146287085615887829198351205257579052763870757173600237097473049177462735628689963668007616330121414510952499012041364117276080077298583355661158652744487750206435349716929842986793829640249858473965422362771798099122420289056777303316678886313108003034493402940411368591124024038933023868882614127355729665319229422060041747830254666335077944178362544266262746456611801832469428347889839729315951318829090352190492081685132024968498339679831619810779894695831865255327574229933395052338295511278789402188023154884163525835197688301721788066721854553357448324207884549984798714574938493696067416871678286697657536222242890453994736926235691897911422855232649486192264887186733408785352594239135143822671434591057488982576733370584442549577749934711683303386717158700126509197883793190833674833314977851478733432052563281326089712962189899549163748463663549135726626995614362501473748037760501490034214935076268066324447603967970678027368918256856041216719078755304878694781257150766434143736839241175096271039060401683109802627983174792756213156631201116251409682843476459698337227389627795767451566525730710281296622562378807103443256406381653261408028650879964975428098248172214821242078653337720418260060656501734918055209640319412067803202482290184722127273070423053278110661060663495192933987861416840727141339000402893605077533105579708497232981532038755762436499357191511720595680852954797493271690392122808150898691363837218655878233062606987910860389624711737555450472330091082337033898360651686430546953605345938507301742500589882983484278966068125017362295162419735359494390045562140711294424441300954154038139335896313598367849184633415990762220280359972023606657721870653153310369941099036354909987052760434202837069198378369545653619665161127298274042365074278695701172410456316205329630862261116264878135215037332850589955460742520270632712255649627768008966854330755422204899385428928409673317408638235246721656950916712885742999251453514330256409753802870568704826415597630512150999834036736560983870689948165335851851297256126953178314338842306692378688437186335181772200429637232598889261413480078878998877615301344594926158723560510824776732293601477624926587067779249628304766342594318898327679207600397674977431637217149133232346567575414384710753135031240788104601271516789817002289480017569871101601238730226469639747447135859963861935187812429383383708210636040065847108507858550388129416268102983276922673165594077931286454443052042250441658846601437158440652231005952935613584165272480740714495426944344398987659411138568247458341247487526810324202195460425508236266362494503641108581640442407339368465984070197549576527726687997921723320899465624422339638939051049215065728287729335939305309368515167932654101560802792543122069250976457990962137882945498674779927498093694217096375699506303888400006870843657985430160982552033634489037980227370846556620682296129500745960124358946328653627202727920514564762916409672535491490262767936153006654903114947735495481106300933838743396574872571607938288476453800580959972214804587874013162327552554120756753192047115624858704087199219889909500876753902231050576872821200311154210889191562380133414947465299176865202285003581205558006285242560091483107661566673225272110199920697024130595890957432733271062745759214594923835011860852793506193275768894090863053835265377190309962980757765240270744088452538638163283456517873783295843450524787919485831683845663940504763851414699644142478785444709505186425820229468533418192784810944457927482241292798473032074854718654155874780189652035968413018148546300148007515763233255971821242729494650712541186144271029910264878896387175908911141034195454005198128835709074483411515548112274449463194965278992185058184090307186377788724527543234515915561813639749066820188763347317312960760989737750886267626736220662034554997333499212438544631933489657360634120266182165982849222849175022251164214775274206796217571678097079366971681178367202935317899101866942619849780639780729086308394353915435216556710771683867767687037179777819004172680314409066725996771437789502069462182202943468738428892152214528946972336991937805547979339541012308764803375653585298565182640484556449616275438477584481001291019507257863762042370958912690778958869103938837687157973731363279777116665731262248036132502024879308442613943548213678757040253154130109751933851489634923662422182686731997597913721632592994670729798037013674078495462384302363903422711636618571708699067518728628740559490051215780760055953932649176366766507675633150779980397963758794477890060195012765819294574962656387847050955894239699787081080322222094261941681323410133329451044911771855888589386802671270347526387594576839897834970488100899533639382006752048968699246693038413926583033329070238826226497526210451936567774460912457464893063720047808618756081797519701311321198895306635143087394329228910111570626903475906418296261320693192436353162779933531038979000902489264683553292865495495045237176418722712156324986500844050888523910088159261444644110244071279710390995904490867509316552705937805916736318482592600949299142808187101980920996937988728000136696128251744433529102882008290175856957315254468528942122731094776581347330976170228238813071310734255781239647509437446383854889360805471873221621954090663970352011499902577623579982435742342605146835338812967942903957614279244706960160999894604749261666840668338841593175225304032027786544764804856939478567921282362134188340110163062050332775800786008906240232124892255538365464081058231628013652429254681821069669582387995247555423503097855463402686972832933372571996871888987993248340086352274990667165044803782601944351093280838239397088296693320819229227974299964131899599579005645132350170696338438938702917149490629687967000620582530381660915104698664888400385817219290294674621387244325395320333866882699810903081395006072236080044152491992614126067230346712412565823195081470583400032223979275745448381054342462339193904807339769833084393606877151358900592775366827193432995329263780706202714732031269278893282016451916200570635421108196213174613802749954199201545441613690152172275215549794344020034303458646382220562157668934580878888066895269354701937786121847758024230929348829211986714713655516432710441865434466493729708922152061003709988978965113638343546861359575971092370503110134937422561537574066279858912473153948972537173134820495788795714529321188815842876757728032756268338713796213686658861526344410740058585395796507007987806815917273245414789944851855594884392674585816938279711939180221474647217205566975160417565421278064485379806737075864554852051310857422458937581662368884871736186482108898469688085881950124408839476082352047950036621432872706267395389404672108586180270943155675395769858437565212156491450745281919262360416647401740615800154733847250412049805119452757386542895565759896544597764729118288394908309436100682674967330461085346935729748689902018217656009307896724803931842754726471120302119848673819709980710726457217159509186203330021999414484678123305613692621040333542112736843434330221515177179605393669670437800786920955354330454503136101213278041870762592655227294433444937882175640036184611705697287103425967714499353450874054264824885226905459754960969574881395147861941406030095412648547557395260159640864398971557836509950550531916796185603490009919845205436066307101968830758799987001184292156346156944252867026001293469582543793079883041045183007046861589808868258324480075109582166232183647693413901830308753264300130309719463927313669588528300151040457012134224415360159151609103836377614069131002810320092044283409142240786033167653322895157750328618707139772837116658974053530044619403450156315802805451560811257546137291054559122876996167118685531541239651187969211477548437481700277221056964876570938047498633563810657162968984941454529116365797734471143601572517004074543676777235718720483331240623778625237591765656504022604190569376426365666208897162455573805239332965282872571933718345483113489876735290406293737467519807180465954695682322186144854421502026984920072630329559030222512849564444950859654619855668278778699372906643347797611897579865339386887131735554885553104010358968475520512956123661895621476294803688068191269092906633346709277633869468084031289820933869392285238748344578689196227010180553277478972953868751821836764850692302797419078616421960211725320921598519903914503364035170164311640483016031233002221030280889999035194812427864126769065789926835757839081706711882315919272526647661623829581547304811485106566581346908432286562254672301538754551329447581611082123280789411089796104556841181590926538288772650147708467990780018070506778432419500038273244198370490796506652402857452506864063211860391424478877102616441608599080928398677703008757606313708716960111189338894347038207154757382125523621472619882489618572513257233517651170357695492850638910339854032101394749908213576954683339481501464288006675907522385381554661127512698766710902790010620235644322476036514855442484091196794389348306288948624941320820825998487649511552058913929863951863123295860619883022545079074469818165889772583355751404279416243047778168982894797582210271659560323406952582530417175952101257242329978181579620340652200334165294065769380703240984516550883321390462492871397092421957855430688432936887103573203778448540134862164558708202967788237268113550505939309353464916537998568016799990983002156946700118340361625025811267013741026017858315541719346935915207410943899341318333676318051291134670526409594971825615748103310809173949209157714217471416238502629220600797340883402197029144558064359782415010335443492969365780425388759347172873676268512458770198724120418245317025653938300026163321242794270185440099610496723700288723168114958549792411285239220718348101572178538896846069665357092364006347933398479354834606577044107599096359766718355890662613014315491801792678342930006463931665944460915282372731964889000060772153544777945352516725011286056881117627263403183489611319072358206430795442558642062926696474445299361613702098322786971389956841813641881510940422259353652477252722216717682669173760184973901320162058926845590686049108162203664829940749541949774713729010091674575460700177020519011755805252432162005823616262253338218666017693956619928509583738919085564617756229766567035115193068166434827490021544855474867629616463513586703891068422870478709730627914440940928761360528313007762783702574549883441163706015473879854948293097916770412966394425092031358411739830682636562692696345009611795631738241591187311568144986519583218835941405524991076372277239838643497786341290670635595221779094637928903863548000391677307335319293187174639272297493169244813836688284511935578026071225072211554980177575043524475482661833947004463931779819974947762814543009126492929250748248843052269553406831123759593562393914427257984641015723154552136393451310465866843622433281574106015821209397263942756969522773312515863644990307091054670172389251723767053608753189148870619343331841711267005852904240038703837385452502137580131367511578870162903228122824093323131991347498570386907328529479342011069038277877444534005004011269050831857331210580845898301222950828931356020204918424244777796797855993923956959484691369273194314882788074820341440142240894391990140136780489130183146117611733085518224293131074005174204099023535859061532867118315343941238639230011072005853525616743829514643447834231611969288588285354572386791532406302342311769725096851684751395305586265393263746407677026392448590289654073934111778404890385970926636190001261637353304278430779333920748970619689851176777074399524781394373196900209334353457508665691266591666346455310916245231660147548919044038996985840835971237557166935947927163838503939813355066980769328482235180802059116620069446274607611822420927025084486192693388657699252261373652131777976975452475189490445589786997025826978176995395372635527811069325788047622876706605996891952997078383968754017788501454623976718234107072194641710222898654419211010973291136785881685031858357870274401237161033843647910891900828173018078059334710851657694742170760241820112508976024786955216114814333551282976182087733388592808656954282957298194555529326889107473252047713964760226919496181197698284330278688181773094991065094409895457538606681816280894970199238035409671768910456063815828958215642537454820962444918238532367757628146782439423219482624242594879599919744138892325945396480454487939683806958499730035497372530375382992716433454442672187763716794254999603630729187111112927912022283882203331398703719384249275780135422221717246370741409670178934900561702601091887727841786928409312901977405654459243039336846233027169264355883379966048525345094370494254488957230083108605703741867170468590949630094742205071752949958076213855174861404838527532739243198177809650963797332428196174922248149949561974288948242049836712260645343580020758887078820411360711141528945413664793242301419273679300347922162541972855228847817277639572234625390951532054465262195943272867205525507849643650146168536332008660818364307547760818131270429291838929314854829251215118016385115331005963175052595262383886706679716104221403806077872592276750394886932114031442858991705973487887743058276262856941438688576938246384113859906648428171905968311308949851267315662455875595544842685341999469857801192863525972778159197269073206512717371782423128960312117520666890818223897546236274390375538658935331495464018914648209744407768262067720462350962332956999707145639299486168426789919320211250000149232282663688770360874149677116558160282283755155884687928063779770768447477987833503788927510317348482118866735558957242507718997204252413415255538292408841757534402126583672321384474572474263658109343674882275236260631662423391779616135038543949634507351040926179025492790234968998308512139458773455257965299619542151448119168048711622817184341016902358283692821997304609570253506765915199477096023284522704727148760930964474152788592743468850130778872694706230057892384039688127362306239529830294226685674115898065750785332579421546362462149347268543571707689599029221741399925014673493405671096094753354046861233748842662790508486356746613664771021830841283861967524165048659806161584506035560448756910557838773276350821614490818497685585257560701592953845339554081633871615744036285264376530872642969641207330088640863930604315730740573840043967978027851948624460687952851946988299778369076081527751176303131639077610931324587154079387113389385275093674455426864889770162597254125798676946637248250240992421466724520019725841807702239074737848200458491009344239646515514474887231636803463234356334681353649631885295386575384078877874517490165191191712035634374700279637503611661616238596765836484585608109974681316320546868345948834664755680480475469826510041205318463671183649465022076816682861624722868001319283222376052594977916360282398161973969353591437290814046445959304125696749301651686256290376208911368839719068239591809030063437065604111541730481085866421361319578423375087363671520344495563200421510463707224842775874072914622486591215347948736144379488806809598531758337202632865854745792612840830797533945477577504506907267713876180678960747382652725224395444542985629377543854087952994747680957158566211037344210704021868546020603775696282084059396496376549722403569899434952837275880549167390705731927964722070474898330448083127849100045555818424234995943369978493685563139508351193746934639941725837842315374309178562917931421599982535239450762497078930855197192676348821876647968654038922566128016120203413324521629179362529190756449509220012835286008244160653240356598138210787584653381596667395576863867010708703064779426958063722784912089413972942544938126310782997355608978038868651652086496991740425318479767959618625768988748301747579750517443926626920172561116844070322303089136024328472978561487636008445763098147622258360561212256849158548850357479741323141310830662188352373050414211848302173488820688266597878419789508623955899473030193694215202227194035958637803475390819793633495779721097159375518598811443611864690008396039091627360888934144395075769355248116955068024611857703658314628487997219508424280910418076438185132707606314857859130010805549506962902361838426961977822554634161920966970867044041188585194649832768773813281878986896772203884062071328717696475116128943927976120939783466409446873748245781482419791971587110532542852457098558375939248179691470281550710068710687317457973807497242093712886089031529388820257513811576546044278456318064871108570570386668946211860369268703940913257599226974133573294612437262160805406268838487650366773125140714886977175214769114244447211811582778802743401566555446615197173657932051887038606598218190768391514773937740393619005448573008001499798759097937397906131084035907180446158234654990579429961127742555373180688777194974124227971859482578038833024351313197995962836699531720933047150267098340945463392461540529930180014713632417568528634390878124011604594879547500375390289244948556489820771054687819740767327400636126513692927323825408398998365231529349209050811619974637652705157063275843839413286163711847523660396352016950549737486940258919366293604532921165628799249455648297658304107742003635573510324830597538208809379762899347262750108748619572521451261066694397770339185012886148187752155169472613345453401678552880072976933973987183160475054275350922023892795169178850442500499434248726159826318455706903630555135024783205628741203548477532464375070751990852040820661030595943619251869482977376609627662007707160662464924996880793877900242397393909257683570150590825745793400896716773420662545491502496757700510911455280377573614074122609269975340039944832679345334356714526941656190277447452592542700252774627069999869022587994755062728289178121744938416210200985967444786725062985933186475480385846580806633913156333643962370418446724008917187654410428155129604960881187716894463796034105552240744565376123484306295089851663444653483695768407250971719314410539832183578409216428658885657086193561768775124935791438404891729150116656249955246412739520781201612858522310383637892741849750976618298452153641487514563974263551695271325047719740631922443410034163117219550110872898012387910997658336834801522917714545201641684894933906714920190944581931872212226943833374699118394062744690828681535136011287024824977166137193190910103461153698480789107974019218076839365417505094792840883434716654477486583896978045041500250911999573564205921722831278258858601620716059253510440178307686028270607500459295745668454557987952954444036477443961817042344357737439644782911533688788601624744342072028846624366527651148406324480138317422336930481763739075362982386739572067386125197027706156508389260552237391538363171867616218618686973030359934908560897806849598828205206059060120806145905335890798144774183839650931929420472338028012337552254126947816763227936565137687046171918003613011898588477130247883942140060211454141177885230078115977697204826886537910657711613257682580437917475482748989160351074335266395181740786274410312593728763237144081822054684383075738774167629508122963241149142690816883585736125378317129365287871077318541829101608217935473726026613024150656376824110975728695706908812529708317444238646513209844810647288671294513837400853806612318915928797624442656805835410681883466478838460966861364240083881271785298060986352859015200106814469641794644859072190469954952142018237609936217717210561846179861577666955836161508885493705927899023112224099950417680623160347890659524696499067036357087185340835685070559623276009137129091187758435613790298804161187004250051767139699062011534104634868157872301434982758079223169428269568516882849236891817354597529613530392917094670666685682736263732323803846875609140079588975450772027311181306341314896267152775339979627823087925382888275943391885135583771203963754273482709376033336767002901299857461494422371616773609318058581927876446857514503265506396741090665834944312412246032270272280689755088736376355773962838955377559870767976887773610159320432595734631403925205309649516723388397869162959125282114928059296503017652156147609696236250027241261425494196134949204812828957085675054801671787040253724555975355912766050562830644962966285817095994575501498792981128604905215878850570996453153975366391878106195421940485634106585343353879284995658801213109240806805404310542890667463240808645523770134703637863719189679833880264307970086572629475664172692652625251806428643755188637264259484138785899344914857096626314819735899223629381263301795444484467067919836255994204119499249054221122390514050456342081097590085655966665581744051292686492161206205014325817996956561163605779754269042783075098865799683778851802225992215064069562481585821542836400708560838448726980454139233882440465858362186854090944033084529815779569010240030871598643668569089792316231037828168317858355232982150361306105536967008991084663014165845286259169220153000511747772889464895675126457984617480409795846179033566093971777556570852804217674032610409521890058510392790911999868095592038617223057475773033353861214681186130170874342391480775802317029513435377639140863212143740799585454466033030146310621016885663124894663235403509394342601054301098037208039524537260401492928753567819329120894677920954783655575442160136760211862264173792820163437713312260429715041748748276404118673274858519635669541377983898539719930136885984157684932312478064389587993244704472765948143947003436816697163792438976507833278066637102987246638044289163012102141994369472205836304475627617083687475370238849705544985035041020315252726917035024200527758505913657165254268147374983760084902383452423623972262812129572416893804668371908258135909208011020119121266114724759405636551601205574287548087427329051484127144371438795840004738781293177515042580749848910037704533807018330095015457182345951487092112442212881951517500377868101398763479377325226270870432216276751176747489747307121752928653568231693070976445599850123216460448426087458948576037975842121394637880544838916830799354396336519657511988954096471841389502136995089519063903661707931777949415742801176942671172013722162889081007208693150473064071777813331723590638511834330767410737041571011627471621682667516343560776184028806571882313504697754628040566060769044617883506284424774732380131675579847319662278316704552319277396218191248132707764602658422956257607167338293982529632906110581394036758169201758952297719088255171515397866205606745439165850978392303884790515274381981809630673195131957345311302786729683248640999633691074444876854076892634602435922193430210321018544294130450172333059992141479288812829896564446583242977591661230007894352527760365105550970104631116092857173074321563514158638538843486305278181843216261354771702112737309545259535354150848360366653699350799231205463586380264289539020751935475490607178632189929959636077910717491163104153671522280486126965045789682334360458335826930511296294818060601514109608842159206273053190049083760136153094313642768269450397453010399343521735465654842387398095400848830961910827244248822810187816195797258327604821618755521804694291672605073939812079007613477887743640043326653746001791399146145754625441903874703419905441180279609002983436709946890862044417849935789414801379194865764772525366122095197739443291320600945864178654680602258031346154904147516241149143799778655023561560169105531710599457417110670944615695553982561580419699482957710024413448914917668399391441354545649355838465313578885693086660370465275920436428356103074257577570963918505733494325324161624793853375472351108912028287832982489957614476019555611612058639727109208233912262413733149731995385337861723560519430866240925586356852679008604033565327697474608702754449717459382842848275553375152718426842584477048089043581073447386460586503431524442351788270298714848178508855091160197482649633724145697680210535172923707056737762718010931735780517280869146764886024673160022625717615696029215942206054432173989664093271587273107549963345122440650071516716841211398045028927426338520468006811816759741528561164160900700983068503109389261270511776872392028727280268737994902672164399036765221669519295480220161150426192299050897341220230591097374219798713735552428194970382703130222813983487393178143874583817857221747934271187671316055843493647928125700824939775112917264318777829323432434964481414846054843706390991766038249624116642099758053555917637099097681156970202610041922311398493172157757567286153515824332707304354918485443587461898763083412764968578415793225203781587062828332713276263926136180103382147497186469539979772058505855780827248837421777852418675798604081440966957404890658643954103630809096586513358242962095433503815761113196338311139036253131595994031987085282314628392419197342701824197650147123703085468063159214942319111015205371755263542356960097682250921698577278293828720981487588969483204917827174418502726248653871372841394092076534915734507496290075790692758768762809303503029374932210641295736571259550593231515024308007406864857108279937412330282414572938103835377430208844466767281061754508986438812812869860414893420197431426932753777301371021636880345422681026050216374912750697196696911524143875379260939724649833375816732984483280766252852808047644880599958651305481916544056461290281795116298446384077645999551287818753843490181675826236695861461497067510631993374216726983848840398935454728500525993910937334303888058718925995215036250855323277914765700739870637228758542787426788102375280110607649669799257433151884266408443800196244176504272660228620862976531340746808392635949300235089964791952263221833958653960469550062279830046507703003780739781268273535995014780387133659704875252102746887846033631088840727804717951896726156756930483277525677030597014237626156360617339785365804445859795398305093160427365851321386366186649627373310115759031275869718026341643284133697936080721331454314256651358427351416115329731214672525524229496373133834111500968219045234333195683347464384261098771248448474992654498647398684212724636220133468770656866207245999146376205750049910107096571128895217704855056789432981797852831658207612042339410857296357163252229678605293369875092774474345440690755027130316955625943481366928085112594427156550510331400964406968540336623286665008885593790316955681466250001127148714297772716995811919184989331202723438586326866903716555506283721593828869343270658010528921583626146201636351731996976429626170977194944760996800275421724252825606755985340732317290661696776980814906784744399716920347385604014598966863299388375269592143969555407418241813752748411198969433577795526660085575935657519279573839563323659074516829115571378936345076816497012633255132668457212511570447751782557286274401570603996658799715835483383967044345223153841928224042740015055864730531294451672282783733340764699002490165863024849055144397883809392143641610808457868923010782516591105081860470466037778197061413581693939758096619700147809583190537304712421900104620369385892815487060122436221339701297392359220170372316748829991053626149073054666251468730610755794395419768788831537934633065366053796434434782389808754781082582237047501789469993491072178072518401214932582244829480179334655308634811199664055472343363308133658157503070862165589245576194451114510851674565006308468654383275309667862557991556195639652567013221559362949970304402637154260491604081900978594278412900532710173597614906073636677396347026475328328062923655286748454909780007711701718147614933360958403385366317675282815886791222069563454790853956457165657543766765553022008244289739175140596493558583578268552487874111696577109989300542908142852925023399927846183029596028170101187235485093783578759738282832227024354909034561458631769596803767616429829749016422608655535738804244856617929549921072463840284174045992364541928268873251644392320883802947576245724673482279489408288147456327139344236975343751433085808604442336913604981968324811916681317550627290929930928376866137804910725346529017646287328140109981935527122665779410120533043340526800080651209432235020723217765593988283372237841890139099235228847321303466456117351885573835170787414338297922565094021172924936709247169823764031754561850831206101150782729986282128394490859852354144093275222444820657048450657736243995648969231652358741349257380301151098993993140729455781061109148503559479441440339500112535173968826282465327475502248339409984743985682746777905281195927303289106088122271989212320507494442484640530040236044506721453781834592209246755448671481226383640688378867028237275870236039231477627109000173459528434536709743922445505373192799749553800455182465418774301147148680516352911281499358578669785197645063664113675288074293041433818609454194326250491279664682986334065752046324954401883008776239510083182426360632313281152241273862402110414830264692277854472582179052031950394072112689337191435322753344941698972696929422218928715981003946911570309579069530993491860176513115550014562502525159025492143365893554769411442529169167127928089944000526677815542635994422453474591526181824497232596734021622551714485891484068784772338727295350966021652960773581349657164137231995994153577584827490741179285219582279379361205121049155058805790640471184181807500635839156762165394174557202229047318838614259072964434797236163687968914550066836158186018912407392741199029134540671826681173899525301629487045909946144922330831141787414217667491778512894507564614322045761978266785268739607581357319239401773528882419201985716132526348790096027447936078155658906856456857164313911355308574692547615781375892876300348242967580733176951053260651520126519863666123180634594170510917758205327728509899468810377589878037350173642612936857817299574503965670723807622311772705253107886097654175055238692815070073297867527296418417215317872407532568025223094360223658520790621553889119365974433122949784554673112335252083879510939934547112538172008473157591582074603963138249034338697496344298250078015363691096733417258897704552353410463277500862897376001684409095716418704871365295206532312625011801747256169840939611036756274305912594634287439398850716179503156330103705096011595776153951762107046342193773679405741189188099208117581220247268458642886343722176461232845045483461291962190981035883626002678726911713480978508169664275500814092456275893980755897618319038079565385252622518553029671471885905015193005248771752144102529310006039901545267624288040889172350128905371450452063958945228777252723657260492271887635082803537194768683158503409863992820775255413254017795700962606396886884610122685025528523010818830234791560025401219316036991519794885049313170620722457071423621852032357645731002843296776462731180872674387870815439785583231755806099124705761780664541649521844055564645786927530325764623013369628726009962182894866948525627456373097086794912296747228640180677377340605824379796398919117880138778567328556058337998729644876653407573116555104114942394699949239945232444048225381087076888641537746637992361622814960434763262862423370679688330556548260745211377868491440046232229393010533828201946358787810781461959746918280066472083923898953627362363553161077771016621611997300909395847687667895722041426275528824036649813283856326879384959826586578544923371639520969205972006585355596235648571012028942859903913391296097669431387518921662697975575872193544761396372182953520290469772138671740982899581094879395550440010782140455139835529176211752977293190285016066936404453117873145694317608760312772841965486122665151068194266291785632744969379280534649586276097296789239700704976411017627784804415014657141115190571018165448413054945378937753557741457020731416497619000271756313396986618680846533024675610754573599981119069982891480074437700345593560928893802615542620939857044961266312125794480713016581553855046579410732221794800356451571551049021131789670223682227752784851342921226355803661553254653344681318459394082435981375257296202734760257053184341895989635337035248271587456986471445518604070979370479947770432002161010084606700832309128431630039239680572921529358068621990312666650976851803286209236162013972519649747871982551652436324643227725572791054796878884474986570268341747003131758201917705092489960611260064195255204145162313262031478806383980769190365236927532435108247998100088254594849775461118163010021354902977556067856262266320485478384718017728432520873134353898336483994923081983876770665903295524933771239024093690728245145376374164117791971907238901859044543424055560457097190335658655185502001836151311879368017432273359099212722077268823184406820905750814517861436591684050660609736877190696523655423491649007763679502149216424815482604330105128722128815240757585205851323295365125953949733049013706652028338488476082621718028964733804761562707231030578278300235345335446265431469244585723457763741796064992186919100906830378074615327658690891641646583093445724509472919265760895629118517698111608326617514484730633135286915817855907619804208326815165633155486246939810048130028323884651479071439854037240269905101912542418018435706045969306856416221152927056483147681761905305850917301964814426098205897332134517476790838699722066577661917878317886839806728026493424750055596074802769960576305210631377853818885135067259012821571120460608712423260184784766784332749020313765600741133716924095006315285824913841779645405321449848930365859877629790049629100330494958968915882642355089436503086893939618660193996228374245648906801263537981819160742415370174471646549799582480148167564438018251218335574164996839901003568504447136877963834407731891215768977538206812999375991511313334171514549816705489082808781882154458838542318714189612957454393823806459805939005099268959510656615467158112447247542584764243716277072793378813260872238822709797250307556852055951871427203913522939135194893589162640436615374494593241769360262669676647423039128504593815011803331634565554186929658769762256731324056642276224248266290315022399209712165694935993502854891387170264501957926506041595454471038667952526447401922019027407007615441975881396519778549939559448208408529691121628244815500902697944854553946390151405669691234461426400134370401232141930023483826874469192256263892405449194680031814052621889467219462149300753429147342498717095778954162292146488335184207438821743951394500419473561534993814730485439795879150799465385210579846777214169930103564461273484726269886750910392219945179999456681226286535741213440249256102308636677439775011529420811157695113871700178767501402108958690237430503032847305828275366809247294010748581949067496339812052836514158040815859159827401761613766987672986481508569858428731036553740213111671795707106765037097298114718716480047790017126010293134026555892026738246550266897655762175630548950847377652484744666717451813757244952547019104897811186886386478696206334958961195992109507639426493364848906993354481763252585854705786425172700815989923747795156634339009416269568646069026364657131376098879519673026797568175140311444541766203179581292850722388239450038372884908062968729732757358277790973782310521668133604219547587331492111950152587708243133385686259562192470878587865522472816475539014205754395523579415653411940273647522191400872922649308258250020717565363546760307752500050541754053384927683521891772442030929878608227596631923659871193673123229491992224831118836544097337991738999121542676343276597915948425067194717354845792434472225915915277377463702479138497835899702150019345347958417151171063959017940153265272728497459448593122735941944992007824667482817297986480644844329131683058390268892050140570242665546997845308788786131071185681448088582755027222320313561962489616385521100118567689164111257512241710679789841730121186400408909221369229645737532624812667176934093024160360965682655399639906911451687844144874786348661867127251727801096239430221375174142008729415033368803701173641487257449335215962496532282257645912882459232029710646559376446327210599150832331872094145157173496201335511560161169815464743715216951790014260386527015536136356339939792639010704477473876892539355816450589946270547784861371586642994897327601795745144028201854785570629630875903963142820368345060460470075662524908637197803193659517705090052216194801085794835830471427609962360800262803540534134139122580606282908961202857521449984505066289384905458676651724007535308064840463768497431106361648525286544164838268138051705097995076149184238645571734140748592381740632059347000246373961853811929570179285809048017267271715612071670006091462496820531630459407298977311128907639063801712658884304781536536716048254789219628997489626578225044855684829987247023372903083185416417780632805956189545992046432940482595284143429962692946642089677388399021012388090145206175706479832848422659479393986549515118697464195150758681962254799576486757498947444106925208134168354014448132923615022903671921133726660079626826932911218238796129311314273675854208126211520342467150148847304004474972435156377484991420066065925633535492606344032584818320681387724045895904353233602629775111820786778016911199906826208785245606850650796928070662138472495219731086082559746159817986891526077610685958235113672471897618431632883405248557538779888620640906825505611240370482071854576232621198202014834938416961566680145495174300660428261849848371436099100564572701997078828083107758325338366472782695509417936984224252480136138241143330749814675240565103790809847608128045574877969426336956717060636067922913878757780987176582614348435298049394478712852005672374924311859330476501957400699112163182517580021042757999017408288034105935426155378715966647076187374764893502567256488358451391605277857208183792353287903335432320497641438993724661985023841166818940570170623604619640663355185309206414402653966997696680513383778134516958805193008092673454172417126920217890925448338200149085463756471369399217938006853540377304404736058780264111207928434190122540416351872271923811967245274252677855408534438347421535319659545770586032786246852542841740681652372697540463616732256241722067636566461243851498225845497113444661320800542782501791735408026836092955032714222060386113117060347842686200177323960431650838234902851920719515561454553149666556696400801516093591635483927724066179889601380826041400229430765199407358991339792286466621553220975136428178841872966775263319914640280933770996634311154965933602985566082038439595462328388244389415906496523978927878491515097800156715560470374575744366190811056710626275833754736142480835209521974930089673967378118114153863232881727655763799040549306490810038080396919499936951183897435671828101829007289258071789854374507322893288057537574444624088853407634619033381765348086977196867212551866700702117695256421011689718815998881177695208951915267815427198948875631298574321798415762925531487452907493263362534859541369385067984178335063544087850000303861690514387526941926612001312003090938683672644093665210991326573491738407296277943207585282573598133184977680391526379276591544324549154564963084922708699983443586522836742774492769924040916521618756304090040608282367445965599674457358849398480480216955020954126373473016541470098406671136885288613393232448034647908505221588005976535799835144631819292892868659535825978628078985151596082890725884702030554137181045361936783624421061020737447507920975864016769774954235340404913683559237174206152788957479702701259426690162822888889482666703441719925862070926849755123534443350820779634221230542645516560224430729263390364350157618428714982303031601254327612639890083343242416288872707320569251310742617819484910799743240023313981875051072674879112826163545226333793360864761061228454966009902420214483205812465608597104778909222125964202332688108508309310665026975732867246603694874671074780628728570164134030998819831500364164835285978350624284040132920418615104162561016892199284999768304668695307532102234064878886318120216518316227994349725560528107616254593065746636182960337765827671839055083782802574842648367618346947364110073737993091455624600347212265223060902456664860429191982830011721062352556544506491710860568704239781409678673718607457499896461048013646097132239925744143557951552659662686775516011796325847950676855503344054254095722499592490854015558641346206130245079090350766348304627103807790458966504464951080258616144106744329083504558520695534585643310676026945857484500033077663837264048095577600628811665062201799944559107274328617046581703885898160716435589694465249505608265040661805708743496995450047953311157114687400232331810155150472091307642572878084193508748980480888744811131923837614690760604688416847928955969128353091189532426093436284769795047394334892475693844714503783659350467211188154482565655274133445646931740990517239344531604459745418960132933918708436348159287831930103706085800632942098137922326707253518574243733992004089246702729292319796272466023652049221621671666342177347149355578995992747805005723195305905723207288999973397011297529496607313493609521874520670078011166870966756634924492014579669998266118335513731692721418166001580663527743241405900802882929026800260108356619541060826575722462479674180264150265223923638062612086703620465434709903761601541622958641811791061118185410987697792673148509351646777164852299580746330672735705980085060818122238993996332835177587688025918121596787406854819902634159123432661857368246076200572856458084362390352680677988082534358964250554842972102857580671094650995896603077751907822765909890911247189921582905982159604428201169651545130368245291161849304178931941011839291422119404090012613720230851884934927555201250835613065711949593389311631353162153152172098558752379303110288270885669189061681408471300576667661776707968908720807690790994972816632349177785444052059786587443285379083514877517819770220328052080349821806970342957583409455832269061212583688586123955963624320945495278390672492710308622055278851139528479751924464734585656696637583319407522725524047166135985237768455637403285993767167618958730745231782180220605017827436946138655229016568420437282292375493486433044106020448835390280838413728979755509384968250850145540260626876417707905011166745507725916768194077274081453734395820278669164127140414183462689435987730149287845329344625145004130564077855005694097706928811041154115072260676067185460438687030375494168376068060184676179573079160563223574611764430620197809694561895779161211745140957425658275707256894239984548840543192941613778639814450125560447024027785111071625588975721278370028307256608093006024744567240149094630729202419485757301781966846857720526024919224423155793837844211679504378298827621376021353385529272835807477460556617064247405376070956487902172678584223141026004071132280369820453902282712711594465343518418512649943241581327884726681280447145763318260740288458722110364076211819280644419888908372268936667480437758240768604166443889146653000510720725178181032511045355633615738366270605612102082420315582574996697822424147999116493343517491469670517443615366058625842208841921338069884517857332509295888746938683747835323069327151086923637318694822730679109508435135469016077382065901965750779750086504630499456502426202067475689425836576171631746396855873488261237063323399177050893138049579633724199644550384781528722848632713033737356366755692643589964356458980418746772767800111036101838173789728142161011385577391852366755936581227160707482998676171594830488633392570001471658571518875411235823833725965421477721051442810761130161947428192050423270350293593548553522645738908628159558592564644153238061681806305885660173228282885971386991573050643359872084521292737412419207995933503194719491934668031433342663317636624448067926064912814845300512768069495996585742819785796635387295900245354010209710862381312920763706636957281275390212678638095893253893364255525528554150453530340117465135561925844506793107579946443324437264341893887727673771134662234596916683384023325817166405000051618095980473155906960095531726283809758632277815627201132227399478957020780434663185461118872552253305317503434622040288036870888169370165514892044727678799498534603933194836934878082435323984484324194186383072874120164244379580818295358843935219886341489736828747249779808682059756239984129755530530326070273036241722557726493381892332322212727181437159693236599453765380980300562035301289088873055455107139213058590166548924135156538254674466319434667761592390699088163191077755409183309052752944099569714868706254649060801139137669137271253068815133255999067427116644850768202211160882849766570441943817476938598249037287545715206511171521461011754587076969789101519295487694165955356500401323274815122137163955711483763026404536165257353972511076282000672362241680229499436159966190438952029000684966836075990768260169481788980639942016582727189672652857464360921513541559370528717543234232142615012181481877516806070843890293068976093542213722563879037609039523834232899344813688758877204610851078020165050726086150934632695942285970769385583734434237073757461475920009404418703970087172341589467854688462968559053291799700815762097861278049764903726951519656985039721026877635900233488406288467047632414668004815715917848810233174232500222893327789948202444324502467100901477222059972299725243460249066645676470069922481214970080189856716371538297347739435780413419696372835188295822682882271822982435467604619408185091885389727635184077663669131684143324154282294419158420716334191790269697963366366507234757139633384795906360340417199667265695942905382163852520406642815363925070488279099020201322892315091216766965305528661847182452363596393671131422780576847774974446860893338384674241383053369498218904486886378389085798267843645898774517883913363085141940283582179096615338133487509549740075767456018035998678113278174827323905411204349495000582367325691423482653610518457934996400038722814204082347281527647636693944044138587051757324089555503938102609784458872829718130881171404826467401786843541624958436630650660210447558279388398390998006774578143553513094155375178311854052729168140198962352254679618514568253314547370405372719690334332726874703404947506253495459870585702410221951513386228618200546539118301485628455797910968089521235698647253887852373384201516697645561429809834401042065070770446476652693190955784730726178704752409203519166770791857307616129374440758425214240869700327329743132588154804985167790607850576988111969059547049600325056406027003659601275745031490146378869377117628022690665121415081597259166260271203992710405229559913859225381957058071521283227529183998893426740720523259828279047303710086443960112478397802874624844170469282079304560412354076330227256034418834408414160724912666342574640893992106175824817896199265313069321960985393741413871868367207751390565040628871477610202927946723944101687190635362559106270470932308490452228427815814524700885830884546693366864048675998488704582622071042362208958501658543125296209702978438085582669777794868163484425692663749616678209453521842685042720356963341924218241730378516617834140079113965646249508299738396973328763676019723945672659138286259312759315973751823454624836619881760601643049180251897969982711689738783324072981234454127846449052980111104189820317243320213416898502882988130543408434736802939958008899310103885786414786502809957038694121798613340395777005913880507289659864612367300992089284419287551929817559786890984070693327079036595764052228827172961371478375842822867032161831893928949943130753656100832681440420378505291997824815313995215248645978718173470217178409488331806327361515834284514053368139355857723767637787482766972706120303157087033386706082861864317953187795633442553147518895169217781358752145962287908174077031681146705919205714526225406834426158729582342921298344838065196562772101905705770972664102002360193233040670038853400700787859522858189570590394538793278070595266886450086095095197555919167701846577201230589305969769520097855272188608625589914209967530809269293858137764941475087313995682751356471209500977978755655456992424781362638047666917088603833704145735460230199239361479623520478734895840493263615930531158362271286954390089977368018088445881335093519586121761230119347214768974361809872015035928381222946921876480091840281062934437053856834898038957422590605206212075507862962227327893413811258187844867324763617322140826942511468665095624915728654826471224740091845698949611735091480582530667072361271269309947938019299194164213763297086800271458873400796925624153193289655770659282412512088461968767418239870537090090331114573533983579012118031655156112421021019528612351623647572710446941621036445942187895472632267633015320013828127977319098402649488651483672114189157911994888683978551796112735446682894138795539177017024839833468790854868640960586123533423247653645651417551007147492360034128052552817888650177804425650511492160009469823613385419505875700542641586796676937803870462308651662141137215039825975099255629587416706580738044684480839990148434005880487618976501114929051627025636842444397872981528971604705499726612429687999574979553603856806494772088994599472772900437827801764036455693671862749932014118417520060056730578637176566050944801547190392178123155541318402315905644285064740011509948793530455428569455166827146785793072230260329405678484162766389567859669226213132555064287430003043963294752099918853929275751897774160987956896407620151888711746685550947232336621044389790932031685188001299324650373535216490786506214098281192101951376277647287050399190340211013521408009065369863347650591608589746281529190971027279795036301250897195686838151369451957671335542917595929346301259548564148897583717841787363717166734817354820741955653455272366005347407360692344500684726609094982837634122947982092546939004915592554271026368985646353653450046464920475848499243231333515135208268179251259852739369170416133986361209829064290533749060740911272635448073324775597802601142640857253878479102795823079439501246211719360834268051911005185681353383724009688442210957012132324833430635744965051391208295039287337163316265801177255941024790800362471341001672918009945996627661010842020327648561157704649535934634630732176429510472677182300072734730572433616718687949221224714763910813743061597460908905274208829535471186822742844742511230185796031068942236838212652108195215904491986284940643933552459880094411463681723706415724758800973023788048125602442320621769862352387739831786445078444052802929873263916457175947204030300790458013684162603957770782985530845942972542777046423869777312457684445148298051513761049515539973041238422062067527372889714971159542170497304919228135288912521868245666539393779464955005886080948305560287474570564050208078551406223886132015628065210560981741426038354706194304970765984037856003485942977284202173547934730604256856428396209889176139549946006485842665606307809208870078310016830956954501809412836143585715908236267186016525067059711015435149372033101908581871129712953868330770719068502415573514216197259100618979903436948956934649583024044326379189596238508536257669698559627270623426905604760208808463169947932125386327271327286691141419484270772234186902140891583781408853980634799595481491924976898121504777689181762872760912536505600716316110262293885524873690880119385276114111023208891039145423954545610455998959467387436322438353092277512396180254355147198740466388860137824585517763938741673081162365685049385499868589117704241656393252428910515112873037555481320935701390317573317106547488741368808532196015060650577238652029511825652610728447746899941460040553044851818029393709992184619177121494611366783994863350926600868735608119560935068706718230809128877474341611713605188769885762280459926549606592006220576009860667022858489273407450361680245574468441134730491432432195077960289307970663755930512254817544608134861850964284929368141868293122019936327727878134635719816655896293764094561362782950111234227776116684851776740611730765864455617438508290920665770917602078094335470279136937629066497876056079381234378344949980543379465443972382660311203102821065575896107879109558269580679827490309153244219111357371796705385470780163915858080796638141064018408898664336873727693044374189668876198583286517731307106603517177742173707894585364233425938564287262963860218998253264378316816954110426649996153367814357862556171632055744761572572265726513059626972720813409648899736247800556581252364256330191144732353364095938855406930854366585774566675338583621517837219344659414246543207361250186937786026557881040676188155741952663289362696187567432722662095848830450751634075309740767716964577064301021006755262333957520315546247797777167005988046856666384344110222486318932646831290256634342134799454557702615708620868905349974247636001415903844394412998933635405767043456491537129672218537723993556278554852024867837801378826047325972055339510653097039497055728972261061598721368225203890718450047673848231941561215147418052952268413566060284272965648651006070846183745303684006088528684046016349085762510578264999389746955430608086438953096328729576935732032493807543843670871453503608544967475257396865624647089428192245410537505874995236897406988242384086246531960059238646091804577459415673338747823973640242784779396859394620919915085165008564803547091325353908644405096914869713103488056956799021011971366436615876079378966446073135476672250917593179403300695937339508418052087499915476709017806646152309229759497847303514459105347414830835719383898449318478557831709359589115478207286569400114470637916922880678047869600598358605503005078280450060571975849839129914404257470980388436285301342735769043194923855354452190068827654295139177429908471886753790763265291326318259394686536688383413957735926042208924960651819372757766019188607034287675859222099515531328696116067123368958867179135731692975520524840304567529948117621172867902364296859251404120704178064230414950908425950633740672295556650648676715794733978245866183034683613138422475622249291865942852072225835362950774464065480108634493555984133736318946930866880083623629975162808019386873893555063918723720310595621501045879206267324756862882741575521226871513773893238597636652746262182020382486533898768395941367251874615550314548557256156804528452526898946682205036304580677062416132418671946896424203485922790350743018893708812305593415341414299932876999169600498643573528709670142807612077644484021332865266079400734025830607036450602899738152886890216536360126236992977291431218824339754741744198681155603718524841369259936325340646333305076912535274507608790244876925220641607031789283524428667899244949679157056851448777250486453328681953537885070490318139577142425763302023969229531013156455694141963414458449583244845460956124723964353206091911297074675766968037367198618278448205236168521038154241275525359138473070108511369390834220197864381409098512574486699048677780178142195266385722161740377653171302774628051241439295596839115900852625491390930560857069239116614265679289541002522179318282930468920982049244309557673289139975693458678077319177539973960917266053532697372168309648833270166209139896959477259147145524592023742090713362450437477055888255581673940294985796818955625504110373937308873040919746013241507754539432502168380428572887215056481189830408132813208190484181630516367418221310938476335437305552151102736697574533398493976189805463660145824204745901453600385470327347587781080334105695494122203432419491043727452658988252258105562344303114484137386264065044012115118395252862296195117921731345987511873873122778100746745537442199961749003108840619953420291767458918009335797114699257840107027677241213119292374147501253871003519272438948108626881232912798439584440183207726188416709337696545679185357385067307064453645066906540621775537561374165302648321614221935892865078681866308590405316257450025188973504064336082939386682271582709034348527758234398162969521419979671788742220749757222285885315203633744905217580813589262800600518705534101669816531192030171093415421646571510275925662385699934782235449580931278358313711205754768346547798856462585824590169913033351525996496176224898549393798214536592821666784647578129551826895625853759300124618938598167632404488442477152591512846880738234818717463968585894690605590739407745628023251748950360812680717766482332341181610079102169748342421724135009793082063022290933869220579686029614029806593724101130849428254838297187688025019618955834334646553834130508951618573578901644875714665855321245064460376390075379979871396194086448820206667041599413615486096567188727514473969351772893086446364568313625991174292032174548006267368755887419738566925383249813364455622638443369596328895691996258031589061273650321187531924202931426456869186735021289596935967577617989157753468131744856731318668358137517639967127631401808156106732003324871843982185849587568152676589200131596016406599685166992713034773110129437826002398106367805044704514025170843154441022151881115937344506677353261346417811703785498324176300650988957525444209053653012013433684158856088944026201990189904414558167632584991233261318258463557811241246196237026419467568471629485210224407293125970992348054405638503418837672571641326964531073949603290159262424467398354704718755523046371630315003684432489895891655393932913246851719785104469481757431474961714510013420066097783429309620618062247072255478560231929457851394759992167950862094325142439981688401785286032864587482418324659374998330822938663849272387347489957074176028648182943283588630606231129618598086068970605006333709422172901009491895369750509270630889263451734077694146250235405767238853708460646323854728766765296242058057580423025497251303455043709271142544136138079174826994522297500810832654053073484112104516964274698030652616344637513985883783046840108984039312192291684318086710987178906310348466447023024531985884732143177231800065326302126280330861216422434418391370059308483089169358235833211708249160990206092439515312118613382865875141963257313603032005958987982262880513038862244767452782275454717822744976632160863084852265213074680815243722160139685926954312702847231512516351656439172545904106836901628348783028714749324668733106323035091906219796771610619916408156464466517599566074786999588510578889670072835238634541028022108995810574724930183276027072669891293975296272732684691162399880911977938627274562036404922819796657124417375744218364272472102885931200242128350431986514193258033141308448344061646830510239320148588832194984846666028725937654979788535187811117311623027187974926522082420796864819720940599727929647971754516632667814682666847352091476232908021097158058397609155475095894139623469425163580581480516935149434655464478327875583613442349423916030382683536079808494587806994540657178588093940716985400484635101633732026953381062034436677592226549858908844564021635952685699409444651812533508157260549404692331959603401979336065278281127158137147937102767005561979653771362707293183533493189672411798537860386221585949639023163781342459485329584996694338897267093833515501305942701712210899192880514384339630523266827981251492029686167429282664056837406361793215537252154865814644453599235117535705465594326844735607826154146730357730360277597952652606894281654662484763841613199815978932769947072831003432136118777354890990106179179257956166847652415170768352971182385587648727379338020998836533801938249064086307004214131573622910506175826846908459018635369032512430450868129235954648205206783500286149780726528084601534353585823989690414578495332474029088041878226395115053553836326367633734680750794006356713236101883730154954604646780370973738753821929521249783674140642428536018595859360039471838039032661450900068503892110904170596752065559552223675699215218358199688511540813504105295702849502211314560522901256738574350005023153430342725632002280153417157528739179800253474032699701090289302893237449659226145148886186602654964932718157258603808525546453525689270566937905277706965613881014910661621256937662679695575992119347832515087631682302160450704167452686668187499776788894958851104844153739714247732133717724391680585261544585306955018122705032070005777175374875588606766960005330438915169067693790886831578695843404054239520741031722562455899017066356064033068528393368955468234077324864149565820127208513779223139087345035310403941375994211583539144789689746973960623284426534550322626612629706069550307557387710730242850261073926598927353005245620485168049031493634510829773327207537959288808678294300445081258187075902538479911450766261543098171337184586951293126545202851216667322059949193999512084322542657812686228689715489747765775479230858500469188591052055196875264502469822627310834821190434298579173940655220964382669390418690687057505523257375959247779137676548267493672978169630022708516631271892803593981581451270041083211313972232103117771687787714990310400906536403262483266909770476284564932479633976963019845232136422066577382456929874174325589288671778817933886026135069343944136499850885304928561986641094071604051272896684472147849572462348065965361745369662364383484967128459729635624845803266379556458589581859765832643258248381320231055801022631325786247014060166633840407293275854582683665037718276025559931179503042828072834717768957759141970287844462333677911758172773271364617535021087017309048790457554914828252959214356376524777065617247788433621979583233052650684858568169301620842293257196053327239316513575992546811648723954348851693858641091935728800430879659596056076121654135681698533957189129930276406433538324574058120450637169774681833611360379113002519059846161474394211695860062350839728635616890014475957911070963567404766440611803912201962501138629217358954480139237090483497084995792052957800574684167892508770768422873948937373364898800691086197901033648009036264183130152223443847181745724022517345413415553260315678947587169265369701522764211167079165477498000503941819077526450500719981461619359496126128647221664833003598013119312814701791844258316602151853308291207573686971433877095716910214007318235315403750915540425398267950034669099242493647526300991270169522857510894333242516396692339079241532467810579460293730935828816156537575524290259860774447364588960098805372647873196852447491960208874800485400330677512674870269180820568285717076631672865017368856778508164035076588997557882449576911207588547962480859789760027515971361129460006297850862270746683003807220767102654858563745515534275747517796675610678488530810453062815563328062316241173499994268110081439039144116425895671356636448352536918357498663100838745615387040208951340905888648490188911797245760047213763104263017529660990810807723909912928147230939275034460209728710850867100647406607903365743850127899445656439550685059550857164178976250635890259080617903313237247806862990384961238878870295978200336408636265967204526565014924055110141730764551450197954885060014876232717963518147340190059355388956448713835893157340237054857908397604573293503168932800116461237271329246730728966650687680146232273490142929055456521838522390378396565710818978396660575401506969717612345121483117740973787485484185900722480842471726345028831069965733383095780970749817929729820007023647066611475546365807851427307210392525127224512416186954417336206803165657555986104911756410758794335864423011813577710529163857468090487750074080618569909765831848937046063522780793805605556253660740833193402059845652508766349308777289790467233963253167784698414038353044727981292401240709708112809665000131856016175485522920283547128908010323657580102228369634376573081849633495218964784261842044153787935926542152391745489664359969340264945235965175606838703518780942702114275019592777580914408837549049559735436498652152997076950957882760585169630061094405625903292704038479151955026224806750420512500274319826938723681005782098233377168769146042014860605535388150794832349785708883856601184466518654555117601106482692315429790023041064975318805538958820353840888718963480355610060750481181656191622523851491520626911377057440747724837315130936501925735834595518284185415461135462711137292436451033876988260195367749705650226487562283130601966173663498230875425475639165971674630423504336061418272018184138583375859700789201225224664306165701830116537535739651378936944851123484225053589484914743293143917670655307245197834414488522045203917468108435262549067319809713533003447958883632569175488948711567513239026530798713908975337077661477574882211045054032445187879064712698194265781015876846706936067223708490813664993391892617856179663596568806258197549457029372563298110968422246254343075907909601492660673945973613184913806146189680732512413090257343417704103236797237452291785334111634176912991938824525048639808937490468099887923848757350843683235385741586095110893004010617776729397665035242886662783970324746672280432499070819223173898288667326050080909372781631323719059993221958384413407659714718759669272775743345057073100311020725641449855572065238629222760976612063313974677199650413952170135800564981920244293247042668634327990733850487098085763748942300029361601240256367796093999842551472429772580179966618541700104214303091948183490459363281748345864843625201628915532596568715518130113739311241038926318119320815028030374774540186569516541509858411685174189981524381169851400396879719836953629791492624352270009800598444433530307246711418415537656379071989741032960934810148729931140397894328109860758626194071994565013066347145202190405659531460452637184206736499025818583757563803537103041539927157391244350463969861956076329242269216573746690361734752840891908527835342268332566692049689020636761483536070143702599693698812202303307162215079100020115213776644270531329673441788909103577733181989794310559778551033813709840041605011951720032786178150519974207727984635124823669744657843783602003233434410657159660444788825639232659696487190490875635550423930193820651183909443014838617444656974923385387254651509067047219805245617924047599977698044020119626414553857628488982730942922915254101657341335731111417305738159595396970228877190629028710054118566438654864770858756496138232244424062519166502088404608157636696171534298309438730243569786849262537355261155321951612664915512167687889019613474218984447090375214859484074541467154859843811405252889768998694012618593889184289294764783688926526404833455642315522457602977206963253259888255365325353129159340926205114531189875392569514029296884757745461253715440394211987281270720522169574640413557329398042352507520398224192330636172759720145974935452801273987019859559799903542085828235545729432706384576854427167508477886158033734065973919784092803790772882229701323296881677103425889579747058962656986011148173739226446513241752153687103960901795383842718867270190492486158062585922345555274437626390664926410277861253021956887933501528325987885468080572726601556942947560635521670132435377956587163214842015572045344131901549150703069853740808250624010818881282969495263380798859308679072994072156202927106538724115666036073617783627527294217621136392739718110480669716440274472116908877388862104068589010805434654803675750168637866416807864897350161699191020989899178742512438045248898376099952402550206475936985787676730906158953806647477765279952396554262857349069318540830743875451293437626798247913780394653648828631500252908981908077685872509390283456793388689566077440131439420139818702964463233486765301825612479143096266210065327911141113208990799251856281969298267952994942524140633180493275630974259217505109953058232482061630237888606337553800360767695664770205408072386044485013503889787765985884559762331674388559060761068293702099673706414062656288964771981456269129337430072940705172104646959687516742989712842780248623034874564874679417197826598654893627280355893974539403953663698405168891043807719687566258002952388943251494247538373184630100941578925169893450027007508548107902560360260629005913856603168038582473597609021706730309923726264940553035576402498656181586880280682591299070343908317947527662336505670152016130212187891471508459824992301755966063145032801176913688908319673791420723283729996116251637988753227968590214860256831103740473950856580402634853563952458703264236871672084774023402152468967627744918900130267800131550734801175605969801431801571436294116823546476658003243586156469202275030461204957395362814183194882682587523999564091461936395378477677162424002993969545904591502288037423924687178627697756369770529018219289590284884389456513216941352415499698356974424055798272986349698503175513687129863301339234924459034798407417189889353003600517020594727510790918151196033266064378834425542900735582082226961113613656925554506476122994013832359358930062071117182041301302374262886061794989691969369685679720754220506550826951055157759496823085274283028756179304603974731364318777465931665946507525284367694518508628991766987459817771138465793989051275254816044989637387332591986759213738059968922683834707830572297213438695880428401088774182803803520798046267274681488800258027730305166302271004130168710654426573450941267151306315331016860631349294569038380355620566904824113313286148927219231829059611537083196897576522534644781241366346968456323344131419652541620440536117498605685190540340452570457856830334587471580708751250865901998324093187673639207053224879093434208800156275006566870888652536868432970059667645228955923461179390860302145574791498281536102599340994353101064700894995312236556902256856924539203328765447046231258107658256653735397378429221841737352089078902010048595588545804559412173489478640563876883455774143024652559509694466743457345331236324590760673279972488176996082212910068687861328267897857506406662553602111194343179451536737590400555989647205059173291989924050079110557877567333567288153106550812612594677584075544281153749153845818025647617394253341202760300232955554675506284028724506566765108087110064690653973647812070274879400206195557775951480936583708985180091608336595282351408124385872690795481659703411374071896470933720110681495953696454715087515642792722340008821795041336175198768622609531675617397016789004534004985325383141698424752526987744391613136143497016261793578674377442630710811982527093739185681272262054803972674785581242457141477743922558492755406301121531268809416767851313650649600886301512136394985380495938859859700422273226515532356814752196478570650198134996600048320303915745305816097227672837688429540597568734524672484940191588216081020885142076104191211198712895743760479780855920581595969030332336713474385408424628469026621236802115778744519799953228730549483660796351029721620976886044297938849037287578658662208919617429926247358840513143594494847582717918548644068025855142684466084944788642119638356420555752228950813590765147535281060700807089814921976614106851753535429414492733520046660874752593732531508984173195298664279651612017573998146186253992182666254950718028989638625875313103422258612800014069918535556618422156225422787622695850129431726616911160894592004227405609920724135635273568607498879319704778117584670168830698053974535188439480174637291718312722964432597919780371067005468143585950920342963639600931188586842642130228323659883180025365470204768963711564754906136734629006855579916297930014878823323874237997780900229279843352032766980450832631687760249231270298687238209679237260571557096417893623185136428669539685037714524374946257539992650232278723663485326568984416092330161044546269464345720372919142480753110648799901779606371303668486684728628012507017410920762512985200251768438039456497068240277558221500912175195939800827138091127214482769652494774652929832138810017764736851678145606066485943299513977908696731942156032655187853007646724386828251217793953759901807726564889291413449256904546525580739413113086654941250761595995010052396221328729838474970114185331550951859464389023471701469846155425839375266630281934841511295475217171379175486810476269427465245815126258192994943883736430837902712876921236808942843682606377607001353352334348615298222208821767164943635230864788010517693537919394580911770623953467233818216223940865451274668305676706826664656751857508672440722852749493439134341935693486143840479345107562588754063465006324444272947058491250709980561369692525583596667429519746549361907059635302451502795256723422192001863030334386995199663672064262914670158049750292554372417152537348033324312134942444997255443301420207777843347330829095688604920059579896367729989058154701533699020328591368944498685646839368736783905467930931988535588635970078666119888222436058423545666777327839910371774945544396370759723941343784442883165683538695640457111420090322840024552855929865777500369396118195616822432135067058764504949282902341440686807419628427641425479207620014323872033415386127532215284413859926429687359475800125694919026077543019284631627226687761168722757963496285850100604801333726070506854364311839035033889955495240140083909903657318820997269495550079157088093453116609079137323249693450297872723658556643329751512247133712534159795008095488907766070871060131030890744900928497705126817200696123469344837337361925818857533591950714854610007745439663469290746089755702298920815810730134278780283877354239027407623846690943476233717143328848316039609854183185859212129841724139554567387514890924930156838486258982178353361996672423103597040983482804204203127965094714597897418353394432376387752988881391371716125223663771359295546680923252383992176820301280338268953581594088139864657902757951975921971859884766318305587629297195416813624282543154116833005278966119411976627802866629750720543891327734082993419761797037022209068903993400252587355177489804861782946903411658590606788085822375569367624490316867588974529423624177057949108411733958817642404133239900121945673911704769667702574658318988047212284996322021761686037021672576564889356675481544957676190039983001092098010460278720898629964139307725253659787265778039246561129434169060517177733983657210374579951492119832871584773349912340030092775804558402328829654191731833617854667497781067913192578017218152675049363139279956272126873604069347883483791181398584252366047977784990701821617797365620725453367455897885911327506059760679700713058341348533234050868834618228459968199801530250845167542531965387156652108924967677996535829743548998536960561504433222920173885377092656058587718708460280291335261581994238007135312551006716981505680647997004680221455400917694067803872389805766641294096061439827920416289624561976877240635328768876516776510718245053335667064176433232563115495483589228425904523135379112258181952798484484059765779050159762510960344790355875309968073329913620481972591572125534289564033185383316953741384158813655557907401864128395980625198400964128155416728120116977819434435829355113592769897832059732122442491559290490244431864078326982351061309654130984797450977686937492555219935187180277060079965153005785127368338986484377530404198393279968496760949702092154844453923693380638550610062586221008576578899403346327178001150437002078419098309362066282069138278742213630360180938169576294527930106371106789282248081596582156837165355370660649210199302509904567754032137853121513906057072706886684764117029516949087998277573997467896078468404246147540169648075420369498663454986155122320065652877014710219235833931111670571143308557135988810261392023602142775029995943970324579633302556012203722280223494834444513669350132261150891463359652598220704000654449710971886810753404598081349691603145536804696367360237335809694744515288699910420083170547399501004791248602270924602428040250158748329538406440282343065153113700322982851981664942514208962075684854823257587654311681436844901874959784889902544278431697063828542159417910744009204573481122912525735724273551032732463430995783997476164934639177983278575664725267299919776723166668242598188500047991484166307960286023888731533940758820629006245434277986189692956090231992640039811811496173404996786428317769352386884320596182036575785108469046038044080093740081249902500326924597799281499443510630377127788653757178131502206747899662598182347990198599942692730440871527584085396170517532557538291994095833098862985598311481434316428975043112164313784783793291075398460317104525365008203715532739355722963836375310262045389828195631152006197517478178393836309832880188229085237483638635387009879324035194219198878026838998458869161614430255185853743439276014035186818987247593335472695247738397348195173680548774629147618255826963218429923231379523753303710955536644844209604179746531646774154228733211373381102476478428535567491406708480141631936409017956245675079045856229116000702892989075388817187453325054055473477278592173501385667450061206856660690674831018904999546770858866829744767076025698035803119735444187748867727077216836638484941364316434872803674341004360738941093274136814783804778395554214286652718167647661359649712215700964475445213820965843103615514769083148914817457739527112540736375210586481903503548165557528207547173923659522270599002795876355530761316744627943401188919529048057710693714235099446314021722824256088356422844356816344934424506578541288130348515467163293681312954760242919951872258178358601387203948436914400831239894281874454517330249702465097103030316148220397824786698638506568540176276895961554859213535554114273778983628513727548065018426941128868565577723408591265897466498168064626746205716866630000675424336799081754372836643251688605731593626640471396897473276661434466203122906600196821195539078113443323977958356167430153999661577095497199319240157803453457828566064785268578427672697636335355251570228105801171777960848351067980192481842016851084594563646601073916583182234413488669277611257402395272821684379112519096879984562605485937905321422946433689424042744333522901417946268168707686965532059330553400007873433244829389212117998198202229975035531632283284164305382967575775560264715500541316988527151238657739800933802943731597148524149810506944077743380890964781377989185392652375675825024810254114664669481828217781266971586471239106122140939809232313432558739457844828178069867595408991636170494391447053173933813134742636266269173833546424005295046718699774378858503332115977642357618882634409319456353801290691155582647584863596972701345816392936396029824154232147997390679933457618365061509121943057140681269863980152560167688803094306701841738357185503833876461395085701157622353587382382226893497540870600540293904278662404763403142221027404373338808350282522969762555635146190211530760288931364694392109564635324023269549763902209358645968477933963016860687301309307909122305084129453924072527926462221944837174266940641887207453946525812059424254233991139563955231948290387254725988874833913454728525830950238093436181980890373642900739444325354231344297784709830335413312580462586240595755335796797739233579656528400267038238557095436616058915461452256933899812897688705345777620088890791469245304562293187930243874241203422784730335595716769422611013531489503131916544489535050802285640990369244004572154540990510110768447117263279294985757017407033721562453495725366157398326447487259283995694573696950592921721570502357736126077711674510768775369948803979274786927041599964468639069598182079603423704049457254952742377511495097869160501937255413859847459426091856840027826232970397727346928529729167939361726562489457844339865411075084197526634914184021407728801510840821560458463265561154969735423625700509003970005842816595910540904978792407886143087375061492968615172159344729161362595833191324871242794075948170015691006045637863943331910922740291759758916431764834080629133591915236465434090013607787340445108274898906358468971758436976986113899373265577279143590005092724256108787878398391932579333758254597182173499706573528079973342084154106166494003732230651296588011326264292839281293717974483991577772664694506239676381122140021317719502693823273155220863134429275786191520764392389261822000119967788460007175877133891964500832633243297768820037381379643521691696142635761698878943930807624786701066371000842794171399486148375412285834583737365173573462727583867524642230786315406008101698442353515736842448434535376424548849389545295556748932391773086802938033389963527173017270745091532349393895681110985310791734147166023906423874274500310244707335394001743502386109697198306092840557277832097096170905282955813958190853702145559500481554119555449617956308546424896156099587904141547006957281202230390006103055128830130477130986435027017114370257323645047201235637279888168870422384653542437285140373661143842026343637487377841227667067097438553940327394778452738199371613385137410569462242614500823664542302074821869729770805115112189266303206104671712950251708281194927221138160056405922138327758259495853895244639726580326137613745432511694203674431979937552321755000271734077082624416193432348640885803271179679681063802150535357617336622311749865836068348046839825914200075782102825408725203160537513359744773535186461083278730852792131040927290890901000694862306114653186614279283454082513667891801100750669152335110852479654942965364136486222305651753701767622688161842666021170557585978478273057525107605951500022309881368157935114353272408977373106882945173227522675139938125143672104343311288358945531909974995107466397344674183139974080961401990825631551228648141658901929617159070195902007047034696997132196072846539308937890224475741821681626121676141394155821653741083849268704298349459514002054178559471835754105802259570220462238404041557580904508188873848179646804705052723040221490574257490163883072444766300931113193328172947919189274054578846302271162917959306999202615236324299284914457674732317373549794819789244986190653614202829176342053410935740076079252587244446929993545800907979836884722834601307204165239116653960226437529051268591112777563646886603866371007238920808030880590870573075695476695004489765684243842064848561991021183893532915276315709724912626440021460149408458246844732507984900828438095718961566991857061736385870047458152685867999806027961400358306759123053406591041347010957455248967597824967937615811225737480049156828432905184154939181590568262804689814098128948500209729239379805110448178458974425859403068917742263946229422630065187157915584752497316418823981242434676100503164453157746614669119277459528416658845470580872359688083165384695384474156726063664857712739765997007158462899524822632537623101171868781045990422637317046239358458143946585078592013775530906735144499004629941745450514952185990740632027116944076280379728181612042754114355386770499352368822736343551765635015917591179998990789985440776191658310316350367643417630813602845641199350342706611230877850932101011554317550767255400958255448813294683360401294993175940773249530426039413982133688952573499176889788837494858431274727287632142547570730669074258803469688930590980278571970135216637847956196139031720464742349753794834119580568406723091550849239422151201981086876203491591617307424811027901399116846415377609115698047184505331400541025183603159344056991967448474567511643789214817250679307136049799213669680527861530203084716611665430747335876312025749128156219224455599405144877003987572504317395489099210236270912158230573308913926193179549914392268301538815813187514696636806684952316769416734344236648207903464435135332627579589089573036031627292591855519139373285359647024882500061788096298602750315743960321338965719672249177939015632360385245285543704594955658192352090735883065121500113537479117140354885674677514541346263409788494567254053983183190510076931593778653912478262002361009211067489156026926226996623011535290739305723673558632904036346708922112033543816230055484908259632639595339846359756703272302401667716094600683512898233048881310508660489298545382843719048973266704564922202297133715658405851372058127997176879691187314129468943328177029395498414529041082919280494968365226511110351188553531618873550554496423038869722942932384298040369929911875367912895179417287628406415765662896632050909057334448459513387307959745087129373936738501345138345538465515672730864070386331389770922813795644145215142167918303308659861625015573438237234279981199393139210901297819252650981039026204295517634530926491981252117187733051072545481599476410523729215511998039794562224554459154867291637401375239917087642629023229401689603194030606683568364059191434153339061294486712607986950890887324236838317212322552582447029564539894303494559505928352782599948095687681761419842488118689918090788187593518002877613194012108359621189576649995482752602719513979728411637652409384778332679468700225293253473196317991377079287123424527205545606532905047002325370138693058339386207846507694535224518810174085120405057393451795445675526972961138202549212512822945148154135413137568876891826261637008076473668373898882399491000651942385825887795590339085130140174089365175632083509701493189637825152518482816484727862567616371669089873714790879570524851233911055643954956790765035351427950708986449625319844479713428817866544021058273261100604814898150881184177933329746110475020368393348022673303483902804460754272875704769503451292605661493837849926895420727985915483621547402701126425372175981581617826152573063768747505848181161497571013224328399111231249771893894891786685673273005569456342437501362261846728907111500421866277225349759563397006997454026051726146258003550479728015548805986794989492202675281333515091177663614900545794012628635000456086903967216287312412373588853013274978261167233244853380571233230676643496343352253764757285288600066151308084255219390988662659928195539914611788996965814622187420078287277755307192683582271891557754433968199712057444873487892179849880061985795519308007174697191098364891024308492376721260946299492135933422569166731748570796123913575889027891117497820059186306664975782722756603143836390402719527391625322720176398576900478077286962816549321309232763993641610178246017929018776178353937006523241605973210261823329416234398470214452585185277675871747138708639216474784614557951845251898824242759210706008815803566250936987478697818767462178108983405680844175925527167166305185003509478562622082381578156652833900100008458821370096213157269375710054641679366334909942417221570932165273847854662036955872550468432599043179571396711676689399036007054023987977378309653019960185455180186973109241062097795776276830595948130272207080053918119382588308080612759575018639641536730960915341445404622849457831687645358977794778500071620498064300721720004820322545657036488242644278544844000559213599726987541206954459353064061822339422897656394115286069305774714931531080762594272968404443633923116920190807100122015896571114744081891342237932888640158078511341203765499471739903189114217887334658507340285805389639236310897056151967423834031915513000871014956287692228168869461493685538872080048989535016920141872249965510945629168502400505020987114413094318765049616415795427455584019903943010286712353071661736087549549205819820567198439378897670748440539774838444116281457695608992843390825396138699644972046492108269443927859112310758905524030793133118167163813869614280037319886624953079118202376424947385515795544162966315469619105050664076041426297292173285118958061910446271073902358807569581635509331803258102711970685665650494789707399833358813915683754467160582011675797512987280639172356276596416123218750426299372001493427514059835063916641604132342693908971130049133796343748751919413363589333222687753015586267511032845280435211200557355397148039622048543823668780589424437646063172923750028803980662899108947708535694086134169755179959231533707970476418575374594010223783505387478352035995982024641256236409830393995788905964494660950629878919703608497905859604736814886432474203654919178583158749365861509875859271979889152864433570714873880406599692807084451151017185321370382181013300028585905041096343971279015341109979912106067850077457885505491438385197958731873607703764682475848857506443907621078233841679502339025161075276385174837877219957219230772003755497744218468672561049849667392164482702505597014709651546870797516261727709920489531351073254283915321452499450242708311124063658177727356634146225380758314150684441177697827542311004695887834888591807998029470762958303243825092429207192081777697900544470787111806595557691090567794810575431957288728534126511416812622610690941188089627178280435385347588668210450453615161461077451017108370815874191679453254980710681403661232421026321470093038502129756677576235148283195089837888892471880960606301700520177402029988092125596936769961794521112666170697799021798771899919824189012418170808176519448067155832329348120513553793834344659269720184889102800645405971370752652670938454060367800728728802339155090498731077854343302451615799013196834247798177718940513668722426930025882822506237876285978028800916078180100300661679386588733232547634752260786822424249266170530922841811423267661336937060877774086137997393857499097800520039478531140239062478859491039722319367302733574901115279737307403006319462970719813372036661783628813147353454106516309207496148171385327262632459382256919066913396298416474339989109408257697441722725321615035027345227419017984514510081111208872652358940441331334090065098075291543459782977036515822991685993243621018396416799683896155038274444294911652373143023822593450096887576895122316673212261815376023883264454514728785858690640951092051830680444795394622211159081999500926203941784203388500254869523019190232342271959156963073656862369830463370842243169329811390712099865710317491860582367851302092035315214022950924471748289004759999339444635467576410874465214963139903594749130670037818382403847651537166332470445966072462649152016448354112622400131210192165420331438735190669231641523559887082353727131815313332050367175194754469846937489592431682505187400411303782907585883308278499511510787520004059904784834655340590930019704060065578808368392594069710504602028901166885935382701511257695660346638219951213032309711456112218825819572536045835525109910783213201107673562497327630409208789861698934337770459725666866346573836302810932468714752354326485498411657659042716666952321717362202875035974126824995092799505363353371452213337147978160164338182126753481654448651010562197027133934234018672366857259603301874894392906764870186956100493779340799029286294818177702818979002202557681416263821652247660726987099488192517091725930103253799249050101279408966666560124456888451118235787481249111095820346468003652632323685557716806576872382264131771227009532325046427935559576627422516096488745268802624565567594166809937866049986911036064210993225557279084486774985417847179735986948607167205864497995866166367549262952778841933634708029758172708429600971151387387244794814666748229129557741143240214910049219784578869295560524307794002115547879680256373994138101004285330425384302664411565735752346393330978640367350407786977370423145774731175916510356442615787125904697295620872549906640732488599847113228468926213568219563242204486559864138682820850897158302134848923228641127528849645709756178595932434375669667192354134989904383980165125621561708353405526172715215764392617158279498142412857618159462448826198882954916577535716607256305397398365100291456740328128417834040223901619762297594575989889071210204407459886208303993850580768437590419425978482087713221710266681291438660226525214966877621476892666424908900004450311969423284126372096781162255046477118656460261149269211530253633144405973729148197555288876581008805487776069379794989647563144847515969487708432553789318586561462688631143940426906717672725070804658565540556525441252880557002988171832775821022922676137304082767459298143083283772989674781523602961476814323750038475761057059804726358038213646704521742859873022980969010190408427985207637617930024243340870464230114849619012718259277442441107755652634330369289946799310189127604262378081220744168177237056878834317847829923873987808975898606185673009214937905873901400355357045993695985150651496812414815512897003096991010149522828698861807115576932048641899892666549286226269208153534257707792455162304511248046680471108544400859190949007876860110343399087594172593609536355283037838010104718716626168401808823049827044419827688831493824887100771597807094566341382003858269242000190731631512426391503083745399576851502587863558354418565400500493202141473677256206394561030519201198869409313177470018007294918648223551619587457568520496021732262170756407981031811089317737701254525058822830784102710581820870116203335778431851809663641768325911277543280957538282284157769048784478978253561952450498036756692050212613985748950411370062807746866212921647745476100527451198312744244958074797051313820898953826480473816737512733308745619196180579755815503209881114846993730642111434133788772504381633370825111887494233663962796059964932287772066169170968813602341412226934600211697605291860420210076882545597522446579207875440104236147691602344199659191218383981327316716640497165921213329976388387905387909186884350971762371190480013527785173419985114952836160576948621560125961915103793516109054090770315755839306220937998811589575645847020388974119164879470185313857724391896599211731734537078068793296331321582054369192484848997094707166653038587582910402516737862382388849053807160855564290625670981605445424980514937722149448118806476287249388821550173480140375624104698087160836179803147072669649429697932552318504438492816924215239502148059129092340548330705202159539222823149791214781102879995085240967398683391407340255531203983679296334921268389758233009740198935976821239438282483023772650331611852553912203075085761855316891684208722211153861305173899662145516860875231193138004593394388072932558748470097121127789789551142913264519523304369030212987890681668713306453133176588168204678849235340196627014653284494721631516252563603099777518471051267937025292467492733449918173640137599711869464611423912731117010699046330750637747921146072196740874775647573279019861165833333846255986191263731717434250603549017124141597033108633625738714685147173678897907284757054016081968017020220602844162627503894329419229958420971559874764121020216634231965102168231275102262290984549388014679991665061107064172212445371352406688113572292031983617185236743592973904620269721094681315016484484945990387942923277310563497297959236850366141822627355456529056319770115350870082106061613180663173348591446542785541209027905925829531472822951035142569609271215032704320333539565789023246536400206789365694565589822364430280129367550727693261007055101781174805111391146978416014885920702800909732042484875718651711346252733235674713390861290319133976234197558040229606663183826902813579916231089255858562342098699678621261468128621234708519287975954898865556797985129414193217974145302494735757947338200574156914089094169531305780027385277347509611801101481764282775931547019163574086254662132733945590778568644752238266323441547565276333079780818762309064051899193599886908708646304079541771577108150820438693407136394646142760563568799193993138855010700931599963950563742926072403666484575032648302986690441742615484077542259459644434040134853286845636753670663420140459796425167403491660894251456251063728733425979942210708186979643039796415253731149264906139748789495524949893082032525666920431139278975849514914113201628716466327120105423602561636874746400086597639543602116880172307800954152090301901721014169089935804381108258163354057942391369999075477047855512220220670290842970686798470886420334068142453259098524492011150394936329807181162981582458465713276890762394543413557520746527601249156022052015791025709949495992291160492458479012422267542350935415153569438392457128234007005730551430390324268851398309680445256571980290899444931106566593245334277566810152388747691927848637502741804597889287722772630539216019186611372493705687072014735524936169547109746035361155032440583602036947207897156226578923928325271428472279620358703068250018324839076669568039482180207997530852416978327310722025664588200147510793430891196550236085182413083164403004097070610138320524098552871414519915276849201614855318329111935483505571012601574851414609374565402324355807409616699947230050511402242930532382734656599933482531187667834830265679768568902643944672347559372087492534214675112123419529836773359142951464430046567513581521281151660481781139091964478050155898514261720144666195302000530578307498747205197108780736895887660870741666495968856657145297732261937286528477512902667635417631894176651067473139513191670535785721624778218507805944973868429534202506054286001564991817163060650378803723877292607448331304885206760523360995208742267536614735767205430998176708272291089771566468340184483533506175053296515153442044339932120093234631369561627996692202826432112491227111548651978566083822134381239116355997008799929970334483797730282228993768413975284629426947791923671749621794209718150828132676323768442007355243763000877537255030782493811970366743259123541596713315951111483791440540720690736173188735905699710064305369933376212337208852038563250959975520483030830721351328637901653966638222354142673890784717867946585246106880373155816795684375345207014191725429634140467670287930735941938426156051060025522099795862639574370162355590313129763805804971203677143444679212295663625547282330948308360286927601589529937973153793814666487416082032637515691867694407668574288101068245127896098884858961138814063682649246414251954290765135587273723185256862759946675620348366598567518097495558133649828295536506164573701305158248072169894867835659320312355032808079066015447673534963877698629484401200462188299043931249553776255976657245462144330922621807820307204645003143333609057701705563037139015907922147833222536277854269079001202079565802047689517633404583707156205702206282364344005702402415448262083968663103506943213324339301895155990704407426718165463983824533502984911165348231546901992810526275891055733593115644381303743275264491701977416877611116428321000543093973824795402599357745130217040633866332985686952009414110233639389626529838914543775476742274524851460568473192383370633193910270323852299340955541017753860517199675431007645205218029207957496643485286605732727751293535733667356413479092897257943105380085332919386336196108060959478073568194894861354076333089259104656707808035320643873420327327770743072345812524664069782393165879606091737974975443294275601562604519535069038335201314450411759613456560109816888188322463022997334327047617655498691109443740522968423630205340024690406428893805484873905447029334681687720296717220502570184386698848276638730907975446962260024487329570245107859707089642979072051948439120284492065949565109331108842534486625994675164521790625831335602388931252876848972476004030030256708134539890029340343910997109543998368806584413900229712573574392344910042491971578865098277042400576004811054673436537342352034825610958097504035715754879622545243805740478396828366435574699580283898147383747491759668760996490681336434778580258036536489365492266715024496224842047086585227767415914150467257357752397713920087763051010523438065554805156173444874662614003057267002492807880928273598228602810526259415234826123408751941609841560000053196216955742595620374874710849892449038211160766990661891702279515971608064851379648951788164840990693052873390050219571997432455485054167863010734786878403679811617332086137667187200223260468961967934520678421014832636502935549463581141026165100225608717577588919008015024607803166283431178822848603253624536549229226185128847911384303491951412978367648474273424292696338104533948903120694514556907320013739782011523809107485622988409997524269367398517755094193444013664763846606253523677381310976698357716119488203027810874107361282271013154096757956184689783528981934109439623479785075511699862230695055194551289743591692447756276341863321085699137151160731224510860569109343450536775962181232301998644884792508468355666454626867756116747003683887547148728085456080014408838228637422242112015098723269916732181882531456196190137171157006086776627201838231901960856560694445107878013128945909567571300653606686880945736459435218125181327821398121068378975287613520262717117572462647449248042472200276134285657322981894119693852955341044697958184794402258140165324125170829703451448254101165873922561450827707395565874382858674364117580339301736455859905372742079740002032989808928387343062071512203614423087605646487108886364917428486865645359111012180891804185933696667577576160989144526076683380470076890177117053688553397896047697649369372346101532918954202947810014144220074664230151440555042058444551890980789902078283742955823234242274032002167224327296934977781330992633707017272404720054665537784619336601627230451793639306382182673817036452558737495671538022222115036790885990686095564723284647585213749120300543791835085167256820782777042155300892853897948543219333804578476302405676942088261362978163686515018243497075703967744716587862470963130575281654050568125812740866605703748811947507026004569244634377762949187739939323465898265698940572054983279728389250925365811137597137893711812781403242522583485823321958657815111047018273497098357791234558379779585995798167965782678010710277336955912480832822091312189615311374436454859114649083525355900442412068444863158383072798121631707168667168521624489009471322273708849032611389693106794587473075525444870348836859784569229026828568075575998392266435764282804184965191245198390717869256045858311089712470961340840637024828486195664172877012659075435824683721343250130256442477334011971568972686594928662945290289896090513858542857080377999364767284103201997618184333714839931926751350676952360475343457986297795850026605955392514358999259550575067949308629640765579128457956150778584931072352205550904678508284786303943211488819302775568779280534700838231836688809080157719483898260513773601551208500561863174467628566713505491070028323195883226791280459999270485027129274040919351606174652293579690303499441049674344315610328373861892926772980800573227419136342569186195231934800020137276754784833231165470480308318766498275112671882198272761253918936778440925724562354990755568299990306464010010553585710238024757440260985414210092052480841080330141493142831906267710133638835456710081891660388999586572378833558036113949652103056646588033998374377065063786325403517208055018082270033257279559685295054679630810505530808552728597451102133902484979259137976824712470613423516998641222210176003011514059801054855450764358537755026383651629793922315353652102505774250897040766508362228549725575546264103411941919620161407249688114352153557889733847040534881135928335293315698035770243730377080007575422177533170515726022096662447014940829037191836770706559057581562187727843534729123951294611580815100500198621646613670245338730187303629239845056890739897503117422367962165226173403795151563653652018552420675857020705566819655516143787291105802078580936211797924263114931574795502990367211317515352123782900350376446717218321852883540462863051173832946062220152364692601671126539842762870078737091414542555847277873454477114645083319184714783757772629032061581036866701431494802681437297527547310813486774248056404678098364147991727230404855366470976833969749077106403253640264592298633396869110875021819199265916934101776323845606484121191599006806819261006509006332193167109076398652422500277050087396112550298516238828067092664590207552166987015966833271507800378033394601930861214607078780030871765860637204116511802473366565016430576306337515170075752138814174224083999196058377427265228526217043844636304585749798545796172694912746961422078114037322977596759270624583441934146997999204306742652944858138222238887012543332789613444752211931150381411139286344438963369624040003156511922268285710405123443398891678079769529812307183438227823495660947977845253114334738079900351501588536531334310861147606415389127068955994126916302532747912896787076843699866067143566064493899193906939541451145758272678011624802833967774356083232756828648958313787487452746657023893989366410327373663631484616007846572097828847692897037279539581770995318306419476068879524209194097663351533376234319542515763821919386411194725150861029082007438307696862276720353491492261291966076269240274184043343226767390836720523381408920685787434579118533554111742115631146223151002810867761576698788065646629473527298742180848709020653943308566605440484527546059268798048260568022670775292104636290344682508799088044616854395249978389754900379362397350172287829280810659703626344531879311636165385772190629068298379332540303136858400631294785902212833340051652407020556098918845559308432919107981161051476398815293496336513806391564851424390609901181724636327399100158753998808695681677848342392982473343353828143798439559735825620984197961759656096896687595886958644134430471619599013603267195126555316975509591738587289310881177961826440747463195987457324664681385398749730424363913128032342419787772099063281016085047166444820919184983251129906934043599705386565735563869742284704388268281651422569798571464336100485212779831060719663857075764642620216183915574210295762769350124488538129066427129895004442522323028431780581121970677192911050226882125545975144808799472785192410161178801269783071847904869253859911049906750704263808078283036467390996915728905546512613209896257677326372578119240294734664486976698888337923081587043582535515309800528863734007225645180451786272154491814523087856200499630436617052982024568482507419126767099275303509558972916546066607682623598607872597158670662355167624107740506060435957308033802941031866275678545790505422371947363641255164547682304135341986678148483072491336489557741492588011681323441519506981566079639217165893849512340463766616359296740928964837114098330344872958872989541945370698578783713478194174765078309723328020388819710798051498946047700852877216196871908535900010819204693313728878371747479957483913189266223298868541622740077216431390224217264540159035243188714127400899462544121563026875727540301533533772506609033013254334050601911300185115826470980497113918522438226294636254498317405059430028561108686339835819381321277841300533993067708280068166394506005308807010564703050120903111375662308934636307925584287371718745098598996168100826947673423979308476356042836459112409204371272715258451841306266631823015382950699284950099547095194127502694918310174471223034718472833858856669172903577212780601444548084811221361056249204511684781232098773115619012312235322270270967666555746977577761101262433878437296367563454006288718936763210616128560396835260607267776458316274908572818297808921228344300233056958166104796889592399780495752558741052010969335235097198313638829923502903957491092369094862638206105371032857351576912252084089923141151118805472649962784240381245051879182236027936503126905845952580192081385029646587583644642990043740803941103797054611640957929357254307180755442400345664653094721648842648966383872940658599496662004173531518356921213516136682442246742578640243574544488662058892610783562837378491212828393731949959224895282308491613878191164802065155433288739353759443578044694364676361395140616500564711434639749955150031300638559510437753175855075636752585159365866219190906862536376678256456491880499753244840893152044714131273079060583460707804273158135959954230490930071384566516493110466724026676890510017724832519032306114353727553053165925581968857971709407209990587915495889215945390573495359869298668886481484419312831574114859619685040538042689280866841331046146561878666576647213411563845415240629735528779498297248558846437507856547693976699217869996166396144974119467363742940933500747155628102137291929897519933882304530925964859698252981231115096241757794887625472397323243509126769069631506872971323527032767014164112085604382505325908685111211547139019164762554528695555456303824929352701256259070531017668033371616081758307152051360766114679812888356987202653324785189816319281529097401506934119964855184577397107497408455077541987421172318648572213184285979582564336909035845834629031772805492412774949077402109416397898325320020363635481381218912234022549689839237433197544735825394409387808823946688722124121666511289549040215094164564070604187862317825736293844761578512778545212045088843008428191682213663246188341188883218781826602181896953746271635375189093577012238736073591290096155761231934215057527108540389811178303340071149684363431293028640685867665347678036926931510984679710677301038525868383956841334025514476661442740013038904211366310511068620755829873282111081359784680105343285338993314912053139359079841209041682854389615240682143959248527829028401967842743499256342974528825424703589081289449766791531848909214126627907566344638231039267023351170520266744664581413615767314526150870413009635985408939546086993494490075433068274721443620310729850118643796584003537330085401400408514203616203721791046910532144885832302619680739829570007650188701634323915201590852915107213982806181324453151360070197391047607776258836654551082035800916174870815423309869321694810044114517646749810303237194635867212168769687914701442961801533720721973161089948138583236439304829751878760093041874661940810913844804956690949568265921924159793287183503404154616308918847264371212296152249246883115177513905089647998718410226077466204145374804976907033655606064032775716176141130980524495925030369005753274642113034151721138044947650114545012675412751050129712004827840532787155257724263636256488598996521266372078878700736389417268868045168995897997375910701306665939755884295196311485030489306595962084377265584630513281960592784219593673494302210265040399904228351261988846619537500154315290769786950320956799413302851257993415846394415516664414197414927959409299935987930590089617338430312771968237182608873158690499532836552459332721210359685282142987501336031557757791330251248574724601938475925182541426496955255499171331254599291834095959526625687547224065949229101734152579608504970469884377567790798368854914361871022020272069111678845442060205635264901831896092787166407323651518691010339895661921872873536769799796755747950247614277192420363288131617185363520931384248594431336849312325620291221700033320285372396436235109107203298363628206429513234066335748521779746980007046048956179564470695271484693797450553497866432196971670374190011924083943684217693339822122948603105728594430815563949798232169278476547260809189741268221308743853430297667088785439277644679342419355941355056279696970987930542779649003354970255088580763989334627246351851641694163914150318558497198866168309921675926414114589967499714284277970976059785476141512055573901789468318518228715334164832242127528828126788479202150662458309078129093288954570172777634824083248190157536107028688664140930619699887720964428168283930063864806047198147541655245471536812998730183868025028529463491078126814327173568549474338366563603699801929025336886368370121713204382991737027403057655191848481232391536143589094895653281100092023730153056263931267367979762963706436043980880263227402779156212917639231574551457421289358151953213344013105623153224855139498117896624176025847613356824737329298312703024102470674888187346406356625365678253294449938975982839032469951932283701192437170711606637404478415330176614126548300175811793282833960183439559109280017647727411841550929917433641075027226354626089978829575885238287303579177667458703384260234162253602188077983699698023340102788399989242832668450721232516089064506190275724071930268920611506107047910173167551743301804285749298632847427913137721967874534284010276385355588213049839360155469603977076132945073314304355851389633783598441885874936354422177953800147242371714714928078491537839681488122189774182663833056616471891083743271039402392656291061901140066516654224488095311530048355434007134231168252761403249590036250962842088042733948543461887170982704665445443631204591873919758086289684344975345707710905205233712617372819615693658781560765323605620349065757979866858562422256643563314931421662565205910210144606828349453272113565198944065767586456049197590248940386358044701613638167005052038974639916806405066913785015131868955923107332249858939649413196403524804962416639724875789481129991657251456533227103403690727935607978778916186329627704434229734742941853174505845998392743376441750499072215857422063163317712522184692767547813834557244429103550390724537089659774419429457067924221115535220938688460847688693122458852359627964615108477776391931175350270836688140422348529515792776504489097307041560947267720075152614833728135578122696801243061912459947419341095538268380666032774061059904844501509759149802074039520068409562808691601743421150525486309402524521490290228476830631002733488542905653598187184956529836435029893811664128738068900498445811555670785681888570795907208949135521870298984918645781597498754134544422185304770954717319423124690516423370938645721232203345287495864683414062307351340507438900071636011943821887753109309162333201815814439662901741015974549952039885975658637824971720468808947032109190689835944989622878424005070261105988136717472030105575081186873973734906185273711041050989183104651575865768825800219822691386159037717012099362463052031816332414059966107718032279953212785770936447951962139926419241739889587232449521152041444006561785092290000938138488913408805091601758199949400610793933423097528532720420314030530871014075335659471192593471091125592632113391391835168393018460407719045231240755194879873618503880612364628627281015528196237212743206980014854059921872703091951042058286477171873227295721986840203261214803153492067403115675714374303353224775468773266215979952324259336279595997893216689483062577409234091255374227203530199245862753718736029277235597129401831145677811739603176346760013522939955243971513630633104591662712848205336741546927976489060342721169668297267614965941784665987452624595981468229953259076456629653948860990060908306086587917751615424417855927106951317887924433372582687942644897024603516998942919480884127206166909622823600194326997720114963450290577597790461350414514264863464461708201367846817452566909192966379678936078172038834522692409871316381010923880206616018108766043848445490140437525178152605376573097787562300255610593068582784426127110586577684465711413617057345292815992941892181634462709157132782838502452243211500590838138920092896229558086291196782178485381135766556163792803030682500983467704372404079012233274181801801101569793600638742505698408549675897409766974598017354561546570580637177809842964117109859000056316011603097237523360432781919115149979575572866577240984620739812163575750098614592732588287557720802218025416017361155007409130349579230981749346451488978014979427249215938752927311469934377590367628804654051051561986473300597984109330478842069814378640312190972390662414578485794704887381480423912228345626549069809233559677917763492248145269495154440414267448595558981480124027609651974146459851518582842087919092078491971362203976621904406266795549480461078221149002873169024827197847711905143243953559920455046212850738398800051525594241237292135177190276091439302323928728337027374610448602242964392762502231728094057121729640784064754695718154607950870501642144418863655690908513285900717519395715759542939654091863097064679044372135048709232328565414635803697814595067312759488830312209320228408759643174399757529151634957126608430979911386270055485780258687222226920448540861751020409570461233446105297063277833444051975485664655526398437076337101828768409150117984989803577842955593414742641479981465014027426221022183047704621985772319913071091792634145148003228548303785748195411917091824994349459731716949216547441405843785022093167913528763779296996998403110233477019333898695357585770029117038182611112974174701640794843569023168103855070226977287231582414685070505307205113206014741454483851739881852960359449340805365421014118697564502264547043083997490670650494043854087550482459254799427970410728714335070893598760304193289380732103579598455069150512659142973793862174562747636322051656976679244366285266284676692221011955328269967030826461890667443338037469862191442949374822933229764253350846941919148448529265197007639859396273563263461778566431127390438100633189648912774331820594324914090790867499913487355585436489349475888612448641572922287348152559028296813648360742989364024355903326497860442454464669240758831725449167976174154550831479664752755009469169867347447367922371046408803619638123180535143155161853226525925483473357942031415930654636026263733648833255011807809347763033249375320636996971004947610473544675362014322107759245518777098544770940808731488257683776330057216995603937557353252233290900551711324971320717607095100501701084781695020156692488143862310816449421123284239484489230652131720379383339706771728696762287416788404301361097774376396020740629604707380509234104795978036908691823865481804352111420345739755444676439897567621512620203769544706806315480156005930660331630228181196964916938029173421703116692088983448872482724677665330763586931058965171353143990350197075757260836770731095413165032761570414908430942980057111723080956128682515138565962619735335529664273875952670722934497746618405148269361558460049396185272215589697420284764047085960096510538533893076485227951648038642953738011972921428344518241940045917749109545976610850376841061374513234981241115174666697077457967520315119498005841212116335653753359607390954361227436234802132067901488756282283698880272510020799672975116898846236749740091966683627409136817803249401901050705594640661415801893423419144287580913168920639861231275358372953790621582669269933978533504535793482556359745084891185247352629698022065779043484003816509635267218694955493091110484882541038549251174364423180046076309289110408979649568314977994932618891389500469326009958159550852181929586982900552213620372378830509026334712332661520175409564613790033353534366498125563943525868117956589927450379114378158984894407196733368154888985641899778374968082396652123728695819076731260016435846852537185238480287179122072698801365210294456273397468945428331429124173458005561811231778946638679316689545321059919747625465262780780212014741060816782959909851296621265246809688906896971062174334272381171405677504756142350205586615618877134760894728837214268610330942183965585416567141352381925457548688305413900570669294480059140178111163067641725930016517417478608096483570540123673450639021038158956197232536303041102037715496946923096813236897892797218141854629973896622683450046932799423532788783412270008776077182599946073935037839976552964156748960992007342739908096705705717682441885527726267798165378152888415745083190726368840195132200968327938467672591727326836445455958835395658200998556334828814998618892131249890869074200608468565442177919050307034910602954803738383644453072320583869752261393353794422090770813631162947772516262841453886989636197213325424991088898530220304557264580590678435403603165618075229561274462389534415612864096899140734039232569599779585639395001078876243032691716903374419026895986889126994764055944927004300627465380924097415561302120401208988681606398458442267119289915214422742786204450561529044889251410063639965346421321775068536973889724375048987282802740270493511583064388182003601815583108068757289598693492811515720004668643467921061440064720472276851734204153726062706747467923950489857782471899165785661312889904847416819368530974974121369121392406280000076973877025344056849158154456292275054807429136149515548459831601351183514352547478287682480842290845326244612073897371403317442410380578684188307913064937298635622902082301226503357044048708678430256841158560163096451558000872818407482086276964765951452506088118911301518938119859924685391910898832130141701227992728430306435631353161514562094252730965199985381619516127190857446846891563702944163008125062245058483374596326629459112232839399911139644492673208033187501913274573779090652583249156240547393043681457619324941952126531766984193639691950710059438454078551258028892978076850840161540139747128203729287305019710817700781496203863857144529584442456999762552116400485339554019401848642966932492748821839061448343096180997303550849048480615657225889397904177647424766202878586346050665494216928206328056647817127366201679743547834466700338905477271448080408566952574658382608648933809833160870129804614351049519905147982670249824690516170695717010196321602452111082483969134982657661350384457745844356142196679831193487096633877272252881090723854690582476408315110997650292786402805452189784615319669964517781738709060214201345580745882009095490153689435702220053314909275245258446639941887169503089707253403794933095478750494911788519239009213576448490010835945370635104821887956475492135002132328401385105855099042847576675905566697931457407831265361944949821960488743539516735952537771027359629650359113571899529947988268134983023881096587535492640166553758854121814256409842195025323921527395919310602631549207977072842279763982892293945703855246359607484013384600309180376329852647631002088437095155604278897182145113165438306871041737539778660682678580864869914498699826523459806037533357234598242466450885355203853352219149900699250820665056255756555468934778438842800236993284160249598474340318094975443065745993201334242460033870801980734945482280586481755289382570623714042760907010511459622580244905296776952751387619488431340173935153884768865719394534706253058932609266557690338246871561683389243504309670719899003904202482709319877861470091507370224751891485117540372690947604324957635322096346097010151549577464098715903728266311458455152537989347363058362029952355951207001445902059007341797785305374788507201659007092058251598531589803639833266929741443416267222124312300414903717589999125023291178647605437241126796638068732560556082087570941947641727600508206092402457745805354238126669493657643274730022566848218051878362050859627115766004190513652213816463407277747020586129889462433014897094460012587762712818616235225079972009146284385501936322556463343250456077298435693688558047953926196645419912802494383706435121887120876275687926552355153914001193466046492785864075228789883361077657336179709153203156846091197250319467030933703789360163535722696159287810729187563420029921925296338600298316986871648743781217807258899907603429640580559739448176814239782098315525524741440638967104108054821535477431869234841447963775260289586998286064656202311478625258278991110355143820688681225084290684137811434370066055149116362338007522022383809082189012485995895909821133031221536677820776264232457145864420975730138716969243654447530374174332905387953837304601817913704412408300540614952494215498284909295560298690269268099239059250132503364235304344365219364790415950348405653625830500534173253311480669630790097947646111758505080661223063318307744814976742884573441648342681468859047721858892685917254373360553326339877840393042035266051664763412566403412041037501897094864165845300513136162643739276908772880100776216512393419957996692173863530623018043293574584276330760733355123580890705829548516889185397568050727641800253863992758382558833768763211495733174198717399301269255865417669258675160489519887362152392139907449456590642179921087925976375089318338145108132522201471390771432710228146262572896595932297646172879042352582773913077645181314195646915562942412839051133053301005033115364563028536103693168066977755355721721882097335498567202993041169954937677859628264797464665575638752617227022485425328510251478102936638549142133223881056396398421813387470409363908703054825797144745990140310667463970647632463422729325023366182375870847933420060135871341151658536081076079299167649768905270467282351111630786782140212224760500686634167835289102287936844670876824544917733697847007450850406881580481830349506262064477534684782422465129932683371695699255529093790200843738370015501410276696250521445298462678417798468144896780731354901235575298954801430726101614384915464042349664835971951360824193597617376918380871779469660739134163090791683272189532219023687020138672050472772285742212771700901045749484487958262379185112587091510812978043066745723716299644407390819716643273707855570228321811898733460799328511072268943098795823429173219480375394114943550345760428445301778926995328566932992012220435353113386660158573892893357947158349708585263542200926289219683009046005130546079573642696465492462625868229309567172297498153368072867551519094882564178408751879918766888292170368568437961092839158665699526329196155816930008706643952091219076922043407011808957556742544196611023615603276653325800928032332971120134864013278887739995460435251965945145818980455203523676283845615077890910887602925377610546211948579272191114262116935502716740916067249083043123110411653504716637433731621947063752707351990696447828324035262042894547076494637110067352876108981242769973961318377628850137964618876651165553560682713334893591428563979835201646954724045162013245731383051863714191817130002249002143414362319360872463729249444168236493783844975829447290129636164598751201810203096326320139309393195696062327449238790033524682095316410468586334774820517729463839376533834997341347056281067796782576525346583344070617369293316097509013570494564127264675074486840947149591219902896851195077500797684223758547480753143266774036922375564617532876000198422020953196806063535006087143402143172440258234680898102922259849980390527988981479954912645709318152233945799168660528137071393536685526050657325245787003591908640858738837573546126658760100803842919973271473422248033073288715947994533657013614808934609187591582570680947967584806255674234968858517734512349530106422988080458112449489933364605908184440952224954462513055746708654551834166244999956380244105204223821227064519338975364078612753562430056622796772291130498382647312130249596630986484701517610229069476052206525406413763152696276162757884219636692474833391103057983957761810559034899094851720163402260424794549981745965591952427388108870204666085167387736261298199485425624140309126408176641282756102316542709303442693575988581054379282733136858962168740557008217405085192107970579327921179118891202211281331240829270152695805359263503759280717559090099868118640410469993049762714928175060550276325944027810026764040993587954884350705540640777285387239039878785188698989359206463115969194387675147160296189029477172357097132455988464491436290420117553182636546605991704446564354204380399926008719331493517215604080835091395800956834619161341380084841874880745847822714340832640778286328607417622793320928654277759126429142660210874577539268160255839355477914283849394892609502315123150269750524507279248091304024566917773853535276344447729911325790317273113159407022812259707128856108058211485219352210313921197922581325472873461314479907990669139557021221281115152689575454150479288722324822880045477741474846462516866631407887509823304779313930761387591935314297999693469653253129210328934584312572524374977929152854419362393292375521508594938871171388842615271351001377731080389474222758250034576353503698389176723547893028164490542635752256762337807604832293490278029812008691874886824063832100793173534454896727252158822325286671325020173371726953994553081038532523861069660636553806433846360561336162556470918458960020740301251884849141011717727909872299556384555349393083567571223785654564589927910429567613358773209426613655970942559552672575339206271929796723913354458819743510152734236045903386534194114352976200511700092757924819719118864208912105518900836267830736771503133626263107993905744693234919983714994241122558253450998890313933610141342920530623376417571478390218409751229531302660150253630626822053522719303844038134245259007748037344294159617325008179740118523616452301250602502730338645205946316059097367870820726607571356177640282382338279172237547007531784910000548629344658277657628363232809263029359605552067054154726334477779696244081225743816715253556751366874233604547046418149443031676730477649742609567581100943829893242914194785520715149919560524687449236967758106487235388132992531698021454148684713633806257789016559051691584607569148297647737133927414950060972294584919227506807617994372271616744174528446176819472564152179218415908589534562797026189904108653268088811691657028550344212037000634586629919310517851222448990645096990166368233159542632891310985774703475912520060846892768630575122942127012120518645074466916615497137832747835183387993981527454475724207807657573099253690681670401380668414698788708216469833671955776659669393297118986208699589859783944028536383638304447676483585798560195606886422507512741308431027598336092656441827561444556858719933001612084642631390667021385051396067131733778326721277406467926238481468840682032508636126848955690303670251202769222684728015240040414156685415277140290554692636254376938849316116657544016358921675306478738681100403559066187397196999729263436846213850867117039009629891889134381375051419780733367259350634865052340357517407394108912543203566447552791109712587470387940219620447876554458529217002427597917697391758602176346568661267503334998016442879833905066618039393998635289244430909831822125386434775024754061606609135919938767781274389889422915562520664292443627990352185221408246352215448648630353124390802924583619941444955638119919464737112168347940202376069902485701175387440651169061134389718118105385774159563231211552635791628309121954604457929832416403008137711870190857969495697818502319021373131372266427669851054828776688416778463680858213930815650616047800650256225846814006780539747612454804510103727506380611283625954307795373424211774585853834497659906653530448612636058990132594674970732576684928411533074326903822792252078822236847579295413378641988551402451159203686528518089918921465984654900163672418506072129961181073204373315287132459317820620755695404877892637092384721595976996553795245847772929445576100024967470015220214855128340066944618398016913488412131335012815993676670870293312627183189993133222641984226231272995104016326979343552277404932488901560031128826139230418063093567030282340847103010675163769283734495576304838061672380286144414187230143990246904020275438007123929952479433622289480173681361765897265412242474365251640057002767878794643876040063571670425597520885111696065085247507505759212627769109801574892852561923367149754258800991038473273170039317261682423008085123334290682600487026378886877669970115161714850719912092718287731252764105569271599625274710334511801748890301948735211671993647572170718603158799673678250265020069366675090986610900705073060465096848703897261426045691961310139848160348426061473474393225876830403699335696772787954466341952909297527615820182074836774349875169678457609123327971461151852981995933317165210439834648963843637090986892999924128025928022789855789832144571668308348713783211082564551856513302225476300988552389986240325655886934568115230249966314460877432612013482716974486663885157053296577157044352378017874569447815044437342846209266545602554142003816596137902861688819174320262852954667485294386362751613404609792891391321390683968827629625336847835510987496916234403013158218194857829658987713403842659677210363011433545303223844767794572720845202384041832160157105862923035078470781733596650345897859298798051856735978338631751608920244538692242640932848005368262584823407162301286572467033215330456961054586285637091582237606075096964119865967372725839086740612909330337596440960701281335152532389113874373453855689164214053506254634744230840387208705395854731388681549999779337023633167679056545344370969714055004547469898461267082459348900834248022581267416398295478448156459423325596793278902130589752636611804988522381821463174299878201778776204190125227539127610392854210850298182780585646179991361926323907192154877287507630542211071719769857514546088438308520609568633286883843191659168224844292364804739044034834535305909581119263768998431800850949600438241618231891618883655116745788594970668020963606546737627002069920874959873668723967365203802970198037554206671659986337276114474297342229297152597018535718533347839713336219560486374690486189423368147046426120819641835840544181127759548148934623673755685364632256408320911298789397629445136877713174973395309450391214272015773930318300791946803787960297258293110041832545059814406827127055510186313234636512132762669383273772981742176889528150373669308348492080499283547929383393262446393023178380305037734116948558650638866292568960380477288833547298536987627582047781091317823286373925821755213569423657106515672748134974293499222541501384685575108020037536726206744729137186043480276215577670006767000339937311770428128277951611891672612876866509019389037110384608218006257151732272064746640860386001580157519402003138778160626016211237870374678203560234183410171583802167712606320342301134892345171384048908913531748439258169643141858487271163738825771109027115006292412144340486228273537685696683134631764612028342155063021692336878856417167313437605992645109316835330566447758092632394827326775503721504548823147045221550377704780688950047952357211604258051514212214493117370231905727786087098712009313085493887476939600905235735954091607851673523619153926825284375429635616166645401733330135246870902502624836934107236689931595700091914879140972313742301454334355334217565124570860580122628359294714964079015776178431686880174357848147268374979428648474091217738890968999081439683194632714658339043599093198472693575113709991284370701743291962733997665977145226345143007283698483377873102960272555904495157535143833401186322258041857984195723826652051813690734271187986421769518615746689340437296762047928440474159798237012436764963293914906094037503476787534598595069922017837280333631918562964198957404410641407512740653511159002522681499413681606970185058159313814201825082790689868270799735035507137773971602590156375187114431367416101945175838939459736064647038885893177379643396024136107447731318042236433687997735409074717325640279187765252172336855194673185890386588420452651228230528217402779642382597430134227222157806838695984961154457014445429729301570127430264868274545898979712794876613269893157116431711730378223625989271324218308312826441751230121091170029396786781715026065952616235727317422434742545611960105958908364995189339767334036290576301996077433160551698493960988061732705741798328823510780818437357443132036195762084678953019478922103171213856229814503223905121975161248132708554593519107743352222880142994692533723103232754229745559958013048253287677032578197062926670401324784865914457994044673172512408219623499961543961010329234817554454872181136821693970562940172505425139563811927268906494228268579405935869480607827177603981215455901637574045006105267621742212694029080534825961234248179620343023722174612857612739567498163840068635367670041726591354878625935627651719736556877765379969499981635861527946098816774009588632163501826439479986271491016237352720414037627770945594264065321214757575792624638557352609138747490168703192224617141315486700765801770659659062833118577551976597742707255021521228207149599078056234084922783430218688209574844735793885211274966195284424885839898832571037920309525391333997858585314810641300310282093455851179893201339388687757507373859498923889786859434406059226008748435767004049123112775857813882708985071183869122561587256537344855857321969474583314086014908296831685953527102865822091071046835922875840995961392398263404417285750964211363420644685430499965641929105736424985576653679091505055527510907759387248211882436895508134669119703247954487900821146476622582186201020952642065091101087933151800192586175031311035710336429345569359843017714297865030034157067541538697792120469038522357759090501373612111282043779658760753000180903115329214034142737945671996123852660277527019539054540004329981052898405192538283723358601328059103866840004617852204783297408436533337658551898374401210744297601417668874794753562436795494062956996598635679866109743790976096911829102556961057422847676655327363635907554580261589970769989217554960945806745369815527310838228687665934123878317392469656111021698658106192863256315087309126515924590586445041884273174953206598344785529342678303721962365241504938492322922204761633323419686139300222899601290201346555089538281746547970483593127318130782689613520713155032566688105452875754725369172098595485537965538144882944600498971843989464896051003362534888939272559090176103629697293452203088628346691537212113849033401682247132291885242447267694137099831744941000350058352022032245596263028866821021762261748040305343365836701878175886876992415416385558813718209920181428781565313719537889899611830864276407924608585999367624160005820169991525108088580448514414967637832757318925395297521236530713826431898221856287891429696253782536255607466564941427284715176287677309825818179083343721095039813622903771865999835684086867727276626309315840863434046234520697320700329286743713743639979714586972684184281442436389291270557338580428752104611191618195869169861428606457005104601361767849141456149867103992348538320416309090954330131175239445994572821803467134360628438281007512149087630696624562283225393838560589897629846389395418693228845954250666582592553091624643517550830332564355664406578483425964948233216381461033269545085740919464277081275481611227816081405436955923496392093660593373659868031265606013833453638176497257541438449422219266116364999093088941005087694658381925652972769921786170875545281956417184520734115017330912069181266813525293651807898639271501748615024065232873919995412370409217479378235098399869650232510272012990779338496292472926390135415045925327642881514359892370661916164060046686293576841192188540324716147623930560851669778458471715211888755110593007733480022631801633192493639590803814006122643799086576526551736918666883580595665132623424654871857397232749193403970708325160619450069561955183056169719271473854713678109190937380195930348321979305721285459231771798932537218438988929369341758209535484259826942529318389399758736024805351346972115660893425478930092480712390431787781436482391864474143976396503434556772656846107501025436070410374065778781334677734972749043574670115363834954226847044430699760047910913039106814043539500483168808407025461463792354824922786170589029803317286363489702590725942541835987475571291774536366388093717714436901873112013513984140264140703199377440449349189349663511161472513777479204986104574863474288919729640772076832676093395541734153695730693217460383260105486972780025934893503171015711870371491782593210073974388827377003694563157969534045567824535027721876823090225033300594310005883661395698346475910599163084923965274657319638284413176669557944869882122466534824218053901069612549682626018240532585301407358365881417457582098248594162336881682693398752126743637785441303738767134852884859826107339950809952103491716101755062158130849611840794609001816661308275203957385756806571886603519987578035782624577486209693252313366258531345633591113276523377455169582034484114220520534506330333511652377131388787462649303360780911598841668529160530370728596886315600235182677800528297700792902453365124522121065029599353996051863192697390195570132569888942378643503751284794769753213081688034916368838827568594699231031207906490651601655451564508717973630085091603553123054734892771627918441982287128457050104533617602156198033527175723818421908124777014955118169911090921198023274885223708013041417012898752767481541890428483124224418440517130442952104104644606848268062780880800550329256682961285300578972253238169706759602576544517520073608354409547531605522199154143683088094608492651110226998302273298707546358402818115507848913961750240017648664118748906815628970720129727571374079378987053795176450848239969974667319649589414356823062697397123817263659775177629430114083654931975930827529890467482909296674699245344512524412606369746591136639368199480578163578617160097646602279069543614207043993677758134405129943496149981687885917356976744645833393091664085709242358709696008396322732671101653265029609753086017270650513362841568294855894783167699623435760607484240639796422725245462130443495486545748058286681238565851523230775405083949310318101205924850672824286652082365928999871300185059062401762221768274005408668036535121634310619828276527964210520881277024564883714508715673641895489100862272724884550500118160695696708493770718408984887985865478429773053471695189440079823524805897626249747647905665948845096386996195796070405932755472149498758547647208888873988914178249390384749014860146624146998395443685164193801024129933902158470063110122468676914279479954909218412299890262263740523987414787186470235393542885196595059164267460123725733033563394173568910045287035572153927283795462518448523706117090869985143574441736290963113431652851505135387553934775379347857693698206064697207195933846879302438510184601061297892407553779139179913499336080999289719596559960513619890577375056862888854173656563564334407188545860569265287515415537864773304442979054261476500528598008750601015821381424683007516086231385402189688984040502339110263786335287927442638965242774652620536182305886655238680233980387443130639325668115006820573615616585580148651968616574779259578258179195963815297301521036068525141922516880963654741273313424077503226221312699301980837505627151271172866749193711160891709998376421136892937559925240702931953208505456628783016603335814334331578282541175774711244266989677535257996724999146423276063099499355020366880015458404173026367439374702965308558245668377892364603835750519941128866265852701997346143391508968635203064773203891249027447183301257492998817820437273490648710133927011015417806923482265876405939752398188294247863648472004019689320536101761508357000721796436325308751955454475778845353140757033660778109327801231103479186118655435831801595763900671384507457908434742100262638148201414465013161372478029456598119000933667329403235360509451224661188804034843456291752973813669864167455227206080596831498150567686669019305442066446440865486083215882176754550501501207747924866909782348052482074587438255858305877910139942389773310834292106481015706455620085257405064265465863055578484089715401005309532306472527999159509338461166262820357905682174632783590689828617165475335851680342583411149990501578141141549791240872724630956042074998422478202057645589423271110241864129508454255070679255003889384077624660391413527683669579388856402893960825470410399019432189143833996156012874379810077269406107169346536285955615323919718126741348880249875396477089204322652972407162132378130679653111780296302920530214398540030839861862849447265870233269730089256010974945728669661852254816271040000719678403433695865964502279457280029899403560650550842793685137032445422370759592265605868065429850309256436640805503847563366855442999760761033337626157061843113207844722079435249070299134393777525123994803438771865210386250875122339914518783445442273263241827504168203758410208819098769705587658984096358790394957456651390270629191935611724647141140515950550444312646957302171505843084846169798736227300050332508800275181688418872308654260453683468224307233691776447200382191165978514476551744883976735297807062013904851962586018122504929933015977862637336946024637789659926691153994584921633772946206661708408303405300185854790428646483923187262062813680564718107085552483636872043077966100394860318058837220592609994236934556062131555237394977321363285604637824839292750803768636709607959841856756896640949393228043015559614425217030978561048311380517580338861638638359809750909585861416334568541950408345652781717250141236357929398298320595466017516222358689252312328293379308583859127099291900604822201900602448077359412719661882112363552201704156538622354786422253784932569660725000131077454161304353633374690769407205172773367413508138514768436571728448673184479318840094890273871717350880278783278411557164211017910560686457280927283679855309307470239408500573720967930503568979367117889554754181943526084357319941082306082538726350894787372095616314234976609919283647392356076875123473252805467674735706544433532880956750830896358443281279349719132805443489149417880145731356031843224068207942219239795414059180865484609739307496483927630054763007162277990260619812673192012935928705291303714723943300478010178086324894169919791953600940653356746441365989691681973807139139725876341932161856447509228761683832798297289438988908855961440370129301688724094792618114304233510656703751872767840117481793503756090311900069110786180335918777727751133772463845060021693437971237761443789916948212889956321183625421473930595668342320986520400185453096115535417475238062596463435885584631217746946085200157583526654354384053137597252591817827047153194802400892851255846329442983786405166616534226810217827465486733495909734555650086757224404158308141190848389208545294977390105159907931050475284022014094877255044761622493359612787950622905455493919907609139230676419104872988141824214738955930929407486261874805049185547063158029292006334084404974525256038212024078373884941539664271583661167675421073850795771867186101703801991892534036178752496028916330115860341481564717208825113071356394331026670346591388274079227292525984669718196285915559450582647436125083248111105844733329281912033515183269610259563517561198776075376002605772853340582611852117151659714176522860907975197510835204542613710938620990392503993146922620129859558749151023427478243427140770035506516254853099669487376992031993127086823293416387554763297217530541613011794289682032483226975319127930470104546144582766785898906687306174094038184745407979548810389641988851720999396927622575104641843066028732110870058967913993247973783189833168227902380803946666759910653852842670905768272694925155241016606431071654755795736041557732348500799241034266920165858690903854807529884691023753660309984416285960392174777544960721606516429529249058408052759319689825652042747273052344683750598308245081850454831137317071399476714478916919799797990679204862650195287117055753654721783620055264867754232121713534536534918382631964920916309408212097982401916158578349926929190562830473493976390008865857187517658716750765706902428583084217575453617664260526188823010644648128778221398264547553060751656730416688231047006697175878809012661537807170917773651736498885943357939069110673920926951935643275795646516362011091319775246911698413551012919033469825152917070736039728646179919512980500399545981864684563747446991287043489678327330503734632589217655582221778088061490681624627396573584026890639807146586061392462540831495832504247300471740155850653515722358661235326773580450089860582364987753916066404900561693285322953774083709986186114381178680990603730677032869704660205455894373790077632092315323506783944730980524615479053818416836595610142087183128783666655320390382224304058687254273453935366485913095275712816349188283165174984906807982592714915404627495101855485549760237465222136733968688049739552011163743031694536448299133829792846146492548735569878086994271466493236129916260420212087204272193590056870598228074370285637921515602300507314333837608677314001376021338294482513199127557665145055506738685821733528967611900977572341081734014286358377909429428695823215301006110606644601461386946438248752299285408026643820958546943335814517469826888178376381432267594128530292051407562024831145238059315178164895938774014739566220292745437034425921646813392296015686586226585087279032606888257381552909616619499039803118726839140158257014156488252947813754455665632757852650460015765561830025770916120562077231864953689891373765739490546679203615350542102467673345713930824174005284270009057293671942744417075760246233983613162808722828948374486359927335368613798427829692827759539022907916995845735653710654399407013333283565168857999391060273039474329117608386847286334895981808857247093707410972611732717604558903264870932880127695099714024910861146283148475687678749100190092525935237048169762906850609277118517278302333858579321652154442901283511769434580672553903901397673703098279582053635415915794121680299558079956488755908248973128483934632165081823135602491225799121044369405900510633563144986940160916870298066001633694615453848514549073011023675139586626522034884062962690718212647876044086124153545366928173735199991344960359172119559431221336601835362327430985682354136656121176648365811196104131183656970002709683746587123625544785254807868699022042411430557831442379892496148407635830861837699087471023168982213393766622168886038422722720548705939787526865183083321128981226522187041893014819057163084830317394475598091378849855853440265452996341262168616346576449428787889869550799414731460888488706370327330776472934851673366986212311330413177843906336532843017435766427960864160427722401738315572568329455952229870089992903410836492422236551985980316540412120597436083996191948014197790397943603635163945006167803922961604320528303200098172290336316754439538066417433006231388835661878672740498234226614217959526511228812400913420569332356002432509453786274219595233925368699384523535512850244176473889389353357616436246565951613300745202058759491659076360218841060518670506038107309163362692764428392802782627751633274621099493309286101925596183153774245590382344718800211507691670592343769789700125827268645951055060943010234552555864496269642323928030584528026336241259014876366609632099667855654940676985335784777542707553433553374863440610940029250994374390665244179013313254897654397865058854269071264874521806221896699905955488118789881986994775300104514590326507952506044368608615875378896976306791477870586409101872178146092190184883902330761385424482630207759762487281341815400253672058529440949231498199312454366973035025492541996380282909364600235980562225804591113532144112774391016417523498869697562744952599013500923989109924007756363522491434124883714560411106999035739769556065102987581815333324696391551593313346293018226553126088652794438177860487786207525680620911570327002594505569778715226337693598196282547668823621946137455276000794798992574936064502612165681100454283820236935650280842599214491896464153368798425198387222959636561967935654278011366811788420464004721686920506553599620376837398617399719066152931054360032753595268615269048809797269239815925972481975557800227139023974239112861750003954764742063535358065181974494844264495579549609828488405185591757227689925086579241982241155344968385092255382359153776272930118147632799175407345481172499319215392446082550023183300660903135283581678667779028497826593230404311909468307638097659318508135208965935958377213466353073425350476912043277208349129061824230531568213540543426927989206901787143885198068710199088388824640553825671101585260914188918873744326621987762204970591668938790737522167968387371144334381877209973306681015734887295152660014706024890887323680034126346895476802610292945352887565097598075196653129226361780486261807859360856935401122900030020340576093458323461871086594221371921156747718738955669815370535427322826693047419702754140387316194576783032426385082814987117817381794499320141947580328358846381964341114166144070273335208885237985881386844614127459916229769679339742480244963430769920627309047795086511926296245288273365270816346695857866674278170372163902423241669024369615676678297663688626584404957450956385586011991057668028952164868663157460650492756080653056402841566173145748666260318322521892728950673490048662484608807494261341202002565560272960873956511357052567340246729603027305158259811547331896873539198715025577826921531177826246628315942565054862939367251022051522766457691993388230052865508409195930312753330093378548395225629490136522188762913173231081860671159204511187165823243726363554185655964772070101502753412196525814861510421502601795540595643185481618239581966082121075101860665320369621509051282273077302998744723554525562598363175819378842932861362954472995412640193588874143366022832668028347425032429140550349050256790890924793974951330357098030125022539135324960880751460434947291526794994256909538368722808469455273716612206617657903493131695795249788084192808784195690002093649931103347298119144747264510874357356511454250140256659187184010765976817892230336025407122660457484071024335517270130450809322898204946560560893410340226455991774911729929210378891845132041356701264970819809883410307854878285009343766863474708962612749415863327087084791742827161543352154200374685300474102800811604326502114503168167848679994924940964952254941963762422376196329210505381891890595832773729661213125580821831637390618271443109312037276444308057226644124629643182709489543985777349176769617156936162916016891733809899123050620238115179898207517612715381136895091499272910875431082973087655689331967159606315710444649172923678346790912926675912783390988200136979259210455074061043483083096527765328948631002271848888286038268739923698559232389859597448080537183614071781588914162826789058058232278452803654451178654429138490736164901917181115671149516425221508962587352365988378890427603434330282454324955279578452138087279464958188193369275889660165423602830040176248342539902278096506796806280484907712333219609754841631202612829043993413154883720910412100687702292325808047578284797096955678843517410461873262207446747027974000185269359291371903863837732104204744836054212593948665947074696720307919289877209052331023205211021780193370463018178248561285753816878426332914338061457866734647050126948668916939421990976107423515091814494684183828475803385593841865498087292341232043663057606049550938959325309156153301062864153697356103697300428331799322864095473489974691679842440909312860782400509176766362394575578684703587608784900579267681041827471439207765652795216023780230538694535819350781051638241824830430510242267011311287204671375952424441616588586757164087596663751829794318408992655804852847519044136668236775555393164659454172434835793552373774300898440331152813315834164801161603154225987366986501086622960581921133581941870798095374051410933571977979070086891556656691906379194175455254519510042416349168886983458401918633341521242404032256184171069873642173039654988118417076838237341187331573326331581792245208178362486208623773264838302903149489947488270179837379821944087817384790210172569214751780533263176708928932919232204210454080344493173818327121884198676320376973911547287111926310376063693649879904705295458998147198212780587961925361488758506337673823617410135245843099997217319765060855923269090197516701654979367767468865789830096159335243696656309709044319740491741489991115345692451474587500568013932064275271896576463353487026413601012777862229352617496640742634822194750160675381897457097507706170489704402508734656356352337498971890292087058587446358636107956058817352188390313495453984783065916083517730673285120032226239818020769471702956420542926625556355418624851779785176193432198105640955423562573845233451053745738188740374211460688342198266351281040007291247027974633866773181806973261111343466818694155437895435783466577726717357853832752164144514107068390933778266691221988590173307707422276777778347255664140806902085398258383329516587859787701999517982284784685003252808085147749561863156413727782879039070654889549458817855328446121263464530438934089176808454827549197500524278515856365099457522859175857098549955335418568352170780820263552814231606628647990012704538005221321624906672199358685255380350780713599619699055700590388518204960011689907267571806041654122340149591662717365822543028048396074024345290231469146701794339977312354797489920400551671902171106474989011547804159038036532461909602415300770040229506766145398205850508694805392562680897394366387698676088536534294725481965224118943569048165567462140696332552456938330984756076879602564371130362556149724522561800458003540794126290276398822281819633691820180594817168974382703429732717626126378976034827292619467048816165040800313884645961361602730494699661781068652989168949422478118915411748997464047276215848646906190408864938046269761462157756333766139761445508665266791184629194885591820301642403392864577449108137787264662773667665642804304550114191980408049105077891498654122551836235349745795387917061050249897011458034407647632153828174999679454774287870891169992770566001283903260476986647375355917733085324275041874995668155078792858696666588842154286739449177591135663057481044006215311567911296473813012661635531332043639720232102796824995673740865067500611991429077497954920405393453130711576696559433799784695747716801591158892343254925575909480008447103361405298157473446936792696761905891504857106841046691810132118763981053586465445629781474616109302008328326537394776392419102314143629827267908792189258457898814486172707684440994128782894313023561355684373814016899322850589731856805261409444511639441468853703309883630411693631008095201481136977249823101452471010207495255663928581735250653976816749871250592785452722061292570992344568234027090327338285009102314652589281299456826659801408063666863603827670526707555091892797933181695658250206420213989761865493148534624782225049509229998875964898198358221473654339884945995317494552879676988228397998279033950648336421265682412985131149999406963145038052445797793848571250821943832186275195355481301532861379115918553907822006528980317592337961029717430582580232461672816012246880058282607182255811020713344128892491251884250447170064167733276565803898442744020881436365868196909970036691343662780484770962149282708910975597269657641972429948144041622473812800402797309534293358875611014065132340360104859933014355669419246779481554916548326327519769900368971225169532355980491894242860574120134240156630825964586987994586207836819477419190860194448089108589951812903191515663440812698019610748289471876812107765766311434083055684230459470744758208757857723234846315722180046787181546278572462319438958187325396324195124443087462658547501607000066008975904663716128438449638433037857543162472277538461787436095088014827949813313274680680533200408615688654854828903918667241944365278701723867170751576857895973191172026635751128503564344423433389840380373188577946917922318387833952395966311103688873752435925900915678037634455840838365041905071059357760029955900211607533010384141416306701176258548938056104215668145473378572505688235671376212863579877326675931335575072139929855146621407404676871838912382267820485562117532841586760104056887884223258177753739774047602180240469981155781716514574008025243710073919053374695103244164314858750124948849319176712375014721890169225263720002707936304862216297305319534846500794885379159994353211115468760461667358964418944888836836368745424928712754633715607160939529724184386983471161660839370160220807343943054493993668261162705121221748743838891832448683459499576409607103849979941001673273422471422440725440181571385604968513371745621990973744807237789098773368143179821276849335726578014318831486517217063821576069464039404619852830713328324626567531716825788366013119210274119588430486691610489072116258194090215771221311771350511414447267650741675707530418394737996365405564870778158252042506274374095016486269562578357548828253946701111624325526855434393895909014643657186794848325277715469555723609740893657016814174890558633954658190490564670461579358155660226723864245416967032529098383861343070410768608050800363570049070296817842241411738890977422717468612689560033959799302960901614392307382904049083205028276198069639099566999916831475618305578650179847722901579803288156637080048278705140193506026267678103945608699626702850089253760389080175835335136609664484888460681204135575902545085391383200970212407385742809576467628468858249870688490121978607243517594693162897636767329484509039665155522235498270273667697022825452099303524763383030934321576494447077579331340635791972139594773931398818171132357057037965647607132467627716017777551405846465322329322989869074787130290832421665132956630365025540849469276337789070287864613817063603785303544490147959852913220659881906500617435440680832133939752500513205826957281130737360048034497648308716108475836798302683629737783936249451214974493695716756311937271507696181743920135105246925636553627332369728112260634771633490836088079524278393056062159231142722292563346193624095636603945407610867651272916320071020587402364370331211172158279728972439948706493394159695478662811444168014851772288719651753573749913787346068914600072441597090936167893075504614353312263541614524397635257776005002949484462979570378633946412684709078702594423905329204320757607427432070564694394981727486510474470947094551456111451542310769093167985903533366305009577050353524899490081840801644553213152133172414296068708529243823801213583129671863468429462873962295472321031035359100194020207178245519926403250878749968568503790129288157734159486647217040870441419252144748418405527626238173062975095125207615636467155191169952105261759415971682977889119133069514512191478445671770085337440944477687086807784082875041685872252857819695110247247474408540682859886547010510917795125407253940517160079859259898623225369962506070057313927361020984268335562899970706093281288131439592714084488205469776806818433309300534865870484434431678992926914861879437446601567097321952595610324942881446796457469606837266967511603603199006499148472361353211003357121913631954426355865510954659993071119849447311735244738448936616057816472439973624343208962384371116674558407844521221178046146548476923368533049050235881328934641055042992773132378878136485693423920837013651075418337623839161530636928251880052013581354491786021469054502042954653151240658382255188067480109214313370783267403875191667091329075661216980627758516936549097037780271901625398608643577099713401453118062407806089309753717659123147650822937300943837656047442386559211597842976972020408041319979586007846274512051181542610897089246205223225829447268548970257159955930988575049361281292522759339260869034804513556215150342760985032715810420035996980391996869197117094189845888574744064991470774014199639254679112401473381875665183249059498856819372711527415579243103263647014973924879858575902184007218600445832629609051184962749518642306616277175922474130766686510075726862602782839508394736044885166725761138484645877319023181977620013864574433089318236534457298843940095538857710617963868732059213479188300642532790741712335252970982548339588819818119447311753581285543473722793398744647449626435917326248531830356783022483823670139441468885234819365137579683696273490544309061140504053967176945291727265785534826546564420237835101572301322431519208924277126936092392284005650175061455499016640537003433762115265015307782287768077690761370708742666010216905918772513914904959151943019300191222455111501368193381477218989057977830459941214405545738981116034578165189235427876720265200689020585839955888289497047446314798027128355536097422800303490877808115605070099437660330093905213289804586659413696814807493926747294963322558522697242920277518479274140545011942246310185385823629941226786669969006555037632503142436379689099343138009592844071056426430785955797628267391137507850679723870077419462385922405621337350013260185955262459645054378731624585578174351658828372786262435248724433491333709202360731054143232037334352455497195459975197968071081886569884732865674208344383219575919678417296938945949519018697413315667999521654907106004781816051518413770944896563562307792847899032130278762114517707600247136113618434340048768223462911135715525294304316841692044683223192291780975792014868592343554901967944525795762135000994281403292828651484736099796235408835676410388619273467024032638046754603610609595276567847825488596811520074266605712264793358857615369750965227505183849161682831258957393330597679942094183598444424253473957064731176995117868265571454682979660711900128658908382781186883464531002998707948450975496465282974047745142705982630792634768271249185279103167702615082152033780437397912118584998602204198733050426771421986638458293784480251060586788358753505944890377023725224599654542408549242284333421274124204433027953933712575288702108100834107152886664675344824874156098158409266923662752496995292158105480740762538471686865935713640742060062937706863557166458678643095266646412687356063784065349944137963967954454806299567889099212423733937932449315514632998926211230720243066911536474798345949970867438436795316961898722794533810881320677218874535350524614309623189876179333863608259328658240991136664901486534927717115667165599067292892552841422848077304616656596043057043568903592267873439972754865074020433674463098214069180680024935672084390889864188291420188487528524580025639430685506474262036474801765613185159852416215080919302002515573314995509300541532899621069734421860819174752954922875347132427642215654895607600228002519662848538564202848240979494793993340988036384500601972157821159837965558501752875855825340106762660395536927550270435783386238849876561185806614009973651682935473186875487081430273727247206574452379487941785065231903678734080511814087769608477617774600780932617617106128265006129472241030991037564504920952783044101065078667648592082175394774845641737781397105682455905176563419040379847994172248873661342927323330582506579418660734202454122826301625125666975569353571004941372873551978374702548841211997153450675284525322177291087755713551009962095430854831506996347728900560075387474939024834611921801846997134783544288527280309634251827884949479274576530276938727881507239290250458565897465692668766564051969418500843127595504290721860949024025548078957831880197317426243509782718201471454698273815759926983540064703871398102020335836905987613534784488209978836796057433256077137457027647229877872117079404029952958935556020720009731585278831858705659522687527362743121306913315617085074750102798961992807736757740714738226868186275164844808360273541206041759000129073134725960160088652787552271413942955855882801497405134851191157280115712353367097571289577642906651129973890064608795488734296150793875253352567722555569563516587132002979476071227223384087753964900264249385099197671518481450296963452775021045795543622305024248981471919916939239615421319604102607743279457054068033857486046791563014117552538441552848869497751845225205105154523734092749772309481515833591760830226367158149114457688914355330657782853688132918489123152643636386961119650430748387255097793726965929727995053725941051335078241337681389015441522997166426525959752972942970566895375898607433179540191551605747965939338153792899047517343216436488048624443328208353436334762453735964067119629952155889336101721527383109212145734267490723764156586531095569250202895291853632751163485361938310745951588135967924968805503068756572810229612704841374326386449440961358029645861212034991807881256160574905571204753256025737900695820935538597057842967179857127589442850872953091025536293201365118734253094289094117627370212076320777254494013134210221101393041953954115745309918262074253167507010967975457042332086729045934523243897305737187495777782815964282068593484976764348357951208628093550238327822521774714123331203312787200114555373438202926963394242118594030609657603112480424676533280484053866666235055148585807696369286463627611857556549725411657461671826160351497970558724643172259241594855880057791448888099014820272980315218494797055087599316209245256214515307787787362896836780129468416996074156429530745623296665186660705522277682482235705884440507933180902428351878950641314849546832434019022227441007300576693899781628794996214154612813396197185508047206826803791268451418328007585482224054702849314817507816905098211372829660715773146969694384506744409582399930484329257223819189885292118013085319930614724193521364157070354411627972216566259069594770021554882617976066773944262846880884550308456472821612643652893969510862780071540454407792526083213805841003331729452218948924763878571395116819398664328691551633036787254217952607773954872920616192853625593300233074543780642912983774107792770926131316664175538804253709050583861417978154983251653385827873098977229005920728133269549238628057869181817748393645755766463884775097377682915669065128772485333492267859679216765138410681304659557949403917318234196177201433947168667521520246922942422842657040246199150527739673769726223678921432295441692957002565168019658730652074962026466700438706930100480884978460965578381549923655257604116091787826459175561128482152995501107644439875300600755631472439065253246275648604824564388771389689601387644074246760629761340551267407122167925573971282913560629410614228047668351249929656421831660041940730034906120785278190404381945390768149968489661453581731480978366902628398481737174308584966522615192595075739654074501815155425899425328877437232310865564043631675792147566186678142528522609097672695681108778871898760386156599020819045421964135366526372289535857867803763298380019570169912431808843657033501412570420335693978277240642334357174566758182012277691643760325373845884786351051879237402826437593724471038731495626262087645270649840001863352040997796123411322271178631236583149784479858174508102399578940900712102101040290266520859328509134310986643210815395115163607511635798411885116671779347551021552465451391462956432250816339995766221825761083841021869092385434292996018075451730414423789062818341909055973321963300805216438643041736396436005180199004787163685729978467553509252629957990347413471111072868008615565853607667583745481454013750495501919614178231332885971160964526592195076563236032381086496998135400182305427007327270388360678126723817208909866389558148882703818223290058893055842566694195378467203664850945739090228595653963970644618661230164139862142301805098887826017157037167789323148404020606093568265623407017113053167301657445411064183104703327668912021842811059068900432055884027396449081050404872766141237701239543486911581531543930471518365458866834945345479252541301205360346685535564581401497160541862281341176050832496523008606985791191931416548922977224423382317502134877888276891633375700554444680418922691372289826986645479021276866820621560248029389769613250427796163344383972913432924721401163164446618657254087533390065652205193377715981902069145993573670707757782633471561547944700703446027201566373352943203758247898434635952296598423546493180015723218159173291289881345083426558592829465143467158118357761251980251814376637214535044446254022246925132538718708933880052807573642426462694808767977809362751724658617395807652310734220004975447872940658515991994321903785752938686105373027235574363012761206706173090223825354755611250526085343907769440439624653635988414733007224649824461627400167591386628264466311453563536418909124251600080393752215586585090245657116546538015276516783666040964242417457867714061088355498687661245903202819378998534727483156868906240530978107136585404746677734160272646549454647788450147662425971359642319807906209405227432951791246432407218936770437067358947089728976647333671303645773118412969447014319199514032919033201212964835125497845309829682683167234470552330945663551806849275295273378664799177204707356745257817694939929188768940049278509831714215998625931457958896077773137113888729716468019363090170526956862461720023545464804155937652027473904739024999935774145683103327138943594700686541035237675717445296291509569195266062177302519409330856915300966052560109554677417120046350365114754866747510127063220947272117506078403226283461572940748146835484281714899471248428362888021489031254813412611069579270715953952145647379406936058556217086895660599523379139586832934122508151629407538525936220160364050032882661386045358790433162833149484861410115578578683443862328532564344218563894012894858823525471694649113498356845152839335611782107801517417163658350592281132409095485715180964611812374845984178982234534868242584362503167335347074295794065093335941116812832105892718350987775103921773330377628926645415870730082942207195166623714860953567718864813829847138081218156258458253935130655088746803910237914702291810103279809646470062095286643909392421573441208213002759313969618728746139302743876979959145694192295222463987207415546243848489461747557036295903080357431065513210412061231461647075214931238573095355787888086309219414004635874122855132171436690751566861947176717128151153406058400295990124511993496861736547675417907372658665150345033056326372117635828252863128350471167928891489292493980382843025997503051375966835460535239771831253124110816538269726023226210029948949417343728758030582357169811109791180973456964972237123466905942033419812103656708422986410515269395433159210232933769614498173301562370202418771843053941588729009478161508545146369224645686149114068514184650242839087670232122209908270227698878124462266056829476943567301181430530738442358623828994856828125492841923243721214588136883112373732052913718335292220055439614334799885930115061392638563665425068648852554901355208863313723793418100609768304065817161372020116699697245855679085746445314211798878548425343862490345326431346916527998260335877275425459931390659497292439008416895985332332445044717667298905957502306868834444412223216058006750563618034113634619473138799259743219312955566665268910862616510883316009046498117466335538390456604484318274033892369473286554148939782536955519971524765149074808889116195038693122350312645209499280370291708599370907386922638622663164587867692163831671315005196807061039119945393824490213535276432331814380087519264868566353353185273647862429162441308870789477238635480533350222543608144055108029334487223895937997181704798203626628284664153345212834673237763228279000216984001811172991288200965524733913599921953003274593698790687999226941958495310140610897863646741339636270190448065500832153540036817201265322835132318941849080087848638520906962085477633551605552064440704524758648248267739290310739703288203871977500256200224550320709475704059815893473137423030138528913431158794941161922279924866624417131970599266695424350876251405935753090819504350684228096796017390977800393630521259761841740298578560318599749533485773316383801080517160572363105620939670354889772103207997650352507309781150733598953260066070394142144662752575355128138191157389870032459898915588054167091219089287628914731633394780291911198770591821251218786332025495404439785593634812511463686103921899870052513323011449548165197610139740079181842469638991821555205624121763328143394039421984566930874900861506827348705469643171742663146077684988244549566071979618471954786184674883392338549870007100741019190837103150167454166282812295946558770709167844944669328317952603724795522176986558617397946356740690722356604023512458408461954141108667527137978249049025886924398446014694372982466767442299343154779968553014869056076948814841601548920236966973755360662229362266885896200656674659447511123885773188456426221372502254781184595024590954832056430750559169372249896674275836360618828399532121353965424428413898738504045867157897639713491685823615758549480759551781671845061675157690908489312093382472929781066823224548547173196664080863193233036825576518282273185401034541719301487781400290991230324612045416596158181009370703820233630549152176334904247764409598054115536297018520593286737617155001806755018271651347128812414970154099830913834271781592784456616041923938825780795072798449338849279859867760604862631659099368731193878807563332282282600022100477830935940363504426102305358379083924406641719084434533330759410362858589362842904317192298275295111592981955148736201288675651881946335401076719231009722819404353148920181741071671797203146001807303981658818290365024710879565406656476755874121910075745250978751774664654160360486252203807830780576127187916885777873401655670656445934647713073398914316089093158504838371417073518710385971983699004905929292417180830177604222781076070888201957760696541403006038716858732102388745911495307588888373858874161281332343429534179096038156633246082492514124612094784932533210805711234220934370363220290250647612222800340057876889691697388712038473075173077318555079136240591984582518341942271560481527888267993362771591028824033156613607827360980889689953202641018465766305688946221756956645922663320789153761558889954863261689670759224816481194242877392611035493154462399976746424241251896226640556692703683677292944828948516079705149230053114374212855282658940931304859638586196950683997562492834005963279641599839818365220173847129986952403863681794209467345839170165511316017396092050626509776197188278542388919711502109259305578239684502126687192475885808017955973001362540760882287882439027607569950060701256098960768219986303080327884273193786577456924749093193174073432294854625912016189539599719665762179032591400990744964895522961820820631473686472484935257614776645035735743000823829347405049742714696969107589888376457747547548318212541457399977432360823119704197804714204569956334681985875571652232215050396465344293491490949944063156110842576881623137870787783987497898899418758003442664574826818670886401887446888708288754876114638923623254651467644273764045469934660487013543217350077253903398307975949198114656150970920587940769711764704868899854553440208447061281544488144023862594409378295462299154144391675638457491091626964758757682118185749076991145599415119828991894798483314025378204303012960947585020939285020363040174044124604920498386943384078125585990076873076421349117654788660857507539684648547325794319447493249688455959450959751824533400515911748487164046692757405443230378982260220388893090112412585471286263723831685815330018602830953619326976726934384109584229015941454491858568006295830636822572126103615684717617322958396490768106457544901855165161963729076131981828821649389044970322549660541241108471142076925714887997365890153528109585136420411220150995521582964463695976712763061573987064870566695653252640568255407986995839392904898177393276938559963877899596920571212793871813996590599656824483457777217289874879975034524622166009890786020588638407563166957092209348261592331086881330170132798649651325780201585130824970675400886563653433014084498944883517331567023095870803036280138300891172664976526345379807253129497086996251684303951277253967648022541539758110250766828862796953809549260396580774496654691808813932122599062244155830490089633362741745612845700393947184581502709024734666523938801057064655481666657578588679308594327138878735586534953816074252733360171472674963443579360084550361818124139729353054512589404993836427770839020996110291779323524743395985149796500453363647060178100099048315874538481133885173672403926922031090851489413366285014470877372183992490092154962689638058949296120242549283690944009018891380787815661681238512827919170683606935185447419193391084336300943135433922937462036986184275719590038530037462444007463752169364617394436743219391863691617556285700709701802343332208247732292213698457722740104282327725357866618295473514598865057130509393488472307700385219136571827959349929141894331417312042994044382796085691981016857248279013086838169548266448166889514467648775354414408851776128917650830167018976419456042702214962013757997801551969195449679146527172641578247567165319837456612321391947278938832838618798048298669232336310999999033934470486269265837912923541256924436657636530144978609145635246692252325199458650219127562857476844127826172101983830550489134645443848137863186174022401794201850670786128781809572916320808160474285824876449698008387507734768031984877115970139403801510541158715202075814885058906578212961535541751761736077616643198690142534769928947282702228378209042761532724915259183041580823887193050872565206049643559816503141585774391336453009170831419171650082126648107932053533003159685055160317228392486699046595120396020694423641732276419114430335402773836187199933478959157254107656458121065233659164140051598670874055807853025244438428699941204007066606653475032981044231856739204665469452490222775338330225674844837966570895859007091727968942139829488150294000331966933305785683370271250642754083771845445780326672494828710583487901247339581862262978834459910398714733964939986292308421863348877680102705333329697156628873220645684806587980703031129098837090976478383494202785152675938392078302261545262560221343693738151398745328915271648608182261406041869892115931389729117384941082728115454453014262072497734762592742063921611507654007301185472198383779180025421557020799748292946437935124442930188006057146151402321866848712811456458634064186343055636481693582985925256463318016977815714611079200948451346094932897414638528879680665703759808424620173715313001309082412211389526758418177373539859067026061027082120656806733469223326262963773399439215500330377657270277788670326174439200580706084738375993094116804481300326903383067178007785331846783065295211870660185277301801178273049560526659921541067361738111602468791028971563316652901202967245831580717411688785101858100126064810963478895590101206759578886719653907306209562613962637145241950600766551564285301786223846306368362439753087654107040009412269896294824547353508915204993487120889718777107296668113032081965330094812327019355636521173583555087647444112735425945166346443430327326720259157570527219134273140968195021543515135837739565922833143933931704623529378355398469770833184129252254028962670214141126965470415835673977728702420576444474025189272235835718567316861051628567277057306726751765244900571413555521786704092356286306009478128854763556329759720416867355572487305641441257639844144407355442555968628879145527555002328955622532794916198685437157229628260680935517551043541812680338245943657007763490900678181519132859827169037500956324982041880554318896025267298012054656080109723915573032817541637323403162643291847008214440642473326925802470418373514163148083038339531246285293311528104769597112847543296866538794253873311096110387659442333289948457078785682166261708830390839899443407565350648903521551260420948606942623272054950834925965033157952167606557980251281406946070397035332282135208413954378264852929342097832810612404081615084897620614964450124532642767385009316965962630783434268656438897330764062140883175247283289514414057461535958546420967736757420609252342660994919071239555050127914990252435949754845813378928119776299604849842533417649066592105533636931847005934933189053212362888007690044300122608617200806773776190419317210048443985345875068477446462397302931863109088459683760403525487675824360546059348250256381233352883665899633420149818236294773212654068300414568114983027777510473532427055566957470388084838118994685255270390573080095414260572830198568622912124111899847574281782303344366822050703383808383816128586935227142693800775409557525288572297217594043983370984740476264075855105533542244726298760048127606044956496697087933825178245743868179684474719137705521491751196400367072458683362421848802963817701154586045928782054961229893471504557711968630198969201741968000796109594356581012921340240943156428021403781965216371004950775189158716355965406180822045046136422880842837014170354751008273623661914747922926968594810252609922901958678508392707281093829919912977542293091922329828876654841891992087867639024817758823311809744874094876481045762008292704793614252603504012995076409186598014929488785668522348071768304183477366175515124414349403226649657633095149419992552063584630681369710204960237110888741646905365270213559289499797990176065617183782501334845942530409414963689824311568380710958644333630308612914377013632354411021549315300647069202042999823472298865424992067182808124213920678301086466225867745097444308566418327930878755683381282511917741751546151473143139144829179765081165094103408508659226462901439277572462351448636304499560390391849427766808623252384644595342470314793692770457038755389906163227345631251406307644213436994570671219400157457285949438785556815849333811408912613631559017850076482465529466108576540020632442396478561841823245339357291567353589853905427648288412081191829851592072813347287200611017652660063011824786270383362575923708344846270626514138734059882971654099939693472525331857313426387406668100802796833039183931959771213295162121846248106027672255516811388232742888733616867880465297743833930858877069506074580555138898756018165780379076485573283054902606861807186756494448486723834818929619558361490190254763495268171621174661855886992983662052285830197503634757569727809099187193797052614648614838750672009919123663158689394312452284636947793972898203177191960311573749225886620781277517106606950044964599095577423752107437859207957113718086995038573525556259828916794677792451535835975510082936027863946738634585116980741051800500372772679255626252364663907468049823131176227278304601412094279311516057828023030684602345835198112843207414630802301572359544106644561785180810611818427922755486669870121349286901858199634831948352635885637580325360336365591271734166385703015551421631638304931060144261310569627582769774339905041476434176898511413248160119555749832070533914726099896783244476586851460690250527788163006149711172241194435843390882443156792236343061180414969694313319916380827679244519930394934180871337946104816234283155493869554913098789723811530245749159457277344902098905061463754268514568866945530056412139688313199060289326931149198349721823096096726278229234842059292203067732257767901444959443262623509906656184259038020318393143690715959494634413413260132032422182321770911557820715531056943891087481149077670270550281904924852402889369439393169583700313323408756600960622795243481195079890794580848295297317955549943782137270290299304337325671323566078178857582010409189387066164178519264311072644443604122620458832562377808724130311812402573530931014210901714645580888733189818033824320048215232838682515974538111133856415531725567467298598590262426874041876069996900546910680323157000365673860031312662650215941799892712532562896299902926742472804679752337491614865160789437669440768511196875242040287778713943281869974371130142588051768701172756041993692911354709867186534405675090884136016239280809494974016278077636765279576270293421967052948338696214262224658403583188303708445119783388738137039959658318147278634696438730221925430656390363717158603675538925355318126454446192086154063379204571327353067577336571255774988256907516239244230091076537475763360052390291078107913882001991464985196381038340398585327285358567154285885616624050690413881482948263023447570520449261086211538786283205151014959759932399976745588025921929307476381739143849688754856060375570434907796660799652948948459424538065353035698463433000705748278531380063775890447186901329101275820870378821453626949979646942338762279921589954008763346229398219011202889327343529576936701258467788124217962079350927310765261112660651809458985209468560683971588811556254650027757845129539837961090049957413958291680748837041620748925780150912831821797701527435992158132359352235306731940602897795566866361507228797442777986556761409201614962909750619532267513006637571274968956123706167596779846505818145372542814140630128679378261640514783318194686381214437371734760028124608267445801729331278797542779497215718075556291893156250716495599938800665821955663284363997706785563435024990726890436673357497605660903133305289198610265540439402821272399080399474668123103962581152925893648146267577255017202529565047968695989608776547369768720309965911672997000797576588117151595588918735416151993693205836471422087442848275740929382708493264793312409242451172361817517988096077288209793499398289713225102687352960458342986194408299743232837723096733342784920662357683448696210040199499138515507788954656956759376070069633541909737334173613788967470642860811516617172620749768344280889388293177179276701028635461141218424100023160570062896115137031163227805454249425255307784833303937120591045614532199652887912027365386365389138761826464727957110144555314858611583615486633610920305000055252823336882634351779806977406436812182394309838501115864084013396891050532815094500267273141362419362529869987783897889713127819207750127130543390472761756491718935326346423194313135031755153965600041469562291653516575707534461014361503509137949742159370485651242280717516179920571185864872498333445181035729099482918121672839305863002331969763051851040829603117345648102013181053251378380519777608194506200209907657857896879326714036972691545781022754265086844572974600302441272557667707046994029983933438462621534322512694339024538760660360055614010940234410165728874143701076406138557197937598711232265852702712844071396370727549933992231904143906906319366868024169596049333953714682729948509534350543228466159002556219644222532416892673538295116969599949739017681966028769696547864489919439609691054185496956139080126843261056344549097928250936906507135161411736344131687559756723729579314803143913793861216960872007831440880923694776791143846603431413742382966865808904953708314773719842251687927357491353838663307945796010801004709570298755208739979436806991313242123771825804355627314379544129213495339562097756765742793927770286054332801978963515527853285303865315791662471148159902346190335979981839341873538060238516542914465412483457638627613506715657508354086221805331005355867984910499402343297751523800509551266428207718391660992756332124394368340958722134930691508248440281284983730402314950572354861997606021107681718415570996446354651839895143845509764604069998735044770963513055866537733334874117129400910014980983671156605061376908434624490407727418682757546301235618698514036844061895122435407686531157085019847800424516060020328348281006774720383243589915389058892658112154175523186261996604492528687568895533362566600916869369645019371174590116731266736497904774125123088221012133199008170253736911702313383231360283498008405468962150365755192201901561357416234009861547212320141731984543873661392956989362121738111179437284682972703368382288500711275641414111022426436562253156674018747222272187736940518480676284229152765163964647631134289957606645455999020962457567948596977973523069724184032807048302819297559456076595479130057445921089299578384442844205728649969254313723606786185610748835435303324772583190059349313693855590829882178926623308367146536956690259453544634183169475838818748966135894774835265660882066398008932557489508340998460712735356248090834635753561190101948795261682924146883968544115555646704053399185522245288457928660271891801670496823740326257407247351596440604243822993097950082895710755587215565000188811954590736674613421066544886948404928212767762078407974031839744341622360752000220789382888674017337585316631846761124769975981269966975281844800548332714691153057424161422246351226345250651428359884266552088653871496319152955128490193972735679426489497528779756229854244098206955559983240658987391233562954893536232253432124065140991095794778954503661783778126793430169430352493411169925952240698026216045716652793081950446044714583844782044861751511707521647778496280626705516640867838734826196651808187328217000735803463547225552909649692364832347189255329491098669757786298072895885507718765289964311218739511687099185357029084248037803517940085542604490095178764722671753838414332239109876591361076927878429275704028356669454173208386285681966022368860386749471922128980011917329531670361685208052621981524105504279636340310284206903317342842189243656968066286993890628232737120814601144688906006992153150065289849161623611463535369565722718098997200275106157809236896659620255321491141845835603656666617901615248185586579560386608603243683390175027682969781439132547407904412079784384180473796875167592792515932113834620294680343816295827217867234239047954702496672960730352020853779936479953131861135165254466313715845286094758991916106459193815508507069374142850616078016028080547418736385067734667577168700100558131471584674492938756261659315510689289456141967789052354726806860235359388092779367738357923679578833220422255853328207238481989459900373696441539661082485508805702025779903007607424473985655670160384110627561211802798054561980733071105994274590501596856350077257473591245668045856294403027223827434114199746410868242401696286264183029852888340799786009325010066621097281868407048117126954854511206931671353848843268612882306630533162592841168120797554972913908708552118483608990266390520649848016862733381102092618674922906030756948258426261396882091135557447148680623238325469541836085112275115668975697803688734542921772608789826293858495563400680608710453462284390156039691521911957263719703272516075696541935801903078253678417197659835194939319175976055485405231697901932620729951238894279881321306484790913440053965037438651819451360444346979789568747128834246996442086125058472502699764411462236766495565599041798002506161402964057136803181584913956448945817231070965570671963952496654218207571725395105676015463393949187390491038802596152799040191243476468565631116350652826782376643007127024963122743830401331393808461543862376148671241481078848537311384632411755103305905887315745315495411889513344745188443544223465232578415713761005735353681105644113873459556247082427805993813730692935480844028392942672107599907866265698725628015593595100532429908981611097332672677593067922934135119721074119114981189262746445632860614339332659670299949900057271814145186776561020504097776711959948071603477189716083774684913834263570353987700550621505140007496455102582016061556219729237906193280221127178502804656282429627828771610653726044322595735664204549710649744506769905482533661718230544055656295042501504434258744562430216591353205190639320241928794177685100301824488412432300379207669897677079991773066112656307803290229792995807516251740479395079171163085645193120349106694647109033878434969226268368441785422520451984486329254181693117124211725564923266084036694914022579579798177904854975840720043959122499181895684199982504606812295907561299576574239463506561189182377439524891613117664037237110968266528306835818784947622727633983076712702178412109939553522945045116853955770253291956336152433821018901742643242187903793594018902945799368991252469031728248870804582369606990277800929058053488193310891339188908337915307818818600320963959753979183774246701608887846022300331781391322836732819738549216445966845983948087270944276959900319269562924715753974622725931338223387365728475553646508163511408350346657953240011346634544289232030727293550007154324537602022141405289496824285293602666996271574847811392530837091443890570857830721653257641718941484913289163966631377267129324204493881472065138038734067363718935855359581356887924252435529222973307539078846807720520101351441294067159560448242831162028925899049933402536856873804201950987512755391315532187900203988571427920825199807298637264373050174646801817324727201916927977016077817659588272797749784582895735823841209132794040782193591526870841280371058348642056624953721432060932335675451059947240168118534954833041194161871036634132640024183119344901903132151102568861275218737071296985948512638728367616670834217798955247279693227986936826023143201759540879168328414752091118287689280322565997928413140655691751783017288181293806319469407867997391938011455725391049538525893306547520349922208821952298086990197094309289347195247454264121300713244674157934535548753533423639983352026476112340652528763680872045193892821125938180191932825268071083542975876780344460704822801110559979511828671358035804679883344703367574542811771025480360131033263775439540407096384893627484893384450659903380307502909040880638108870872564217349068500016903672510108519582889265958247654910580348672376976295615978264628360706948127827870157181504985239996566660107328321144298922337169613706085851997754652702719894614035119840633655030660819380645914390265874172586204156753092653921733913572050626242287185205300564374206830012467257354714022618862023541244941487505719494462723420432114234945015737107886247504583475438141772631296635264444732574391296629537789955974922134836102125061246377663856790174687345417961386490744476508237271446962207853917114843512000493259659453795339695880669045302369142953161001317252387523033216747804301598046632122182751546773154275144968176699817202864656088637434632562783238402315491192224651574983506036581504810295714072082406394831518322982106290402587419066625001837519019678443232345641984733080651532813526247868686443228864100124307614793166321102135680011261100344454607268085912017960393365302127617125511505303584748966222081271644214868183850958358516909400397565353276264430583081944694501148126679097880326746836979931350096119366220501469338960350579602976303133752505232822753893733768604771546725779231251888204264884353158785766608763480613964276890238481408953127636953129003572475132230493312008084663490765008321619821622527560035440570288056429980406625578341673633874042283124987039667849160992208785581426162985241813041924599459589072259603245287627756238183793809987266222851359339290246984318614307707390932798987680431956246292795323693139810915370122934010448333298577582993002651744742326487914284354270588072515628739676133207512280837343024535326602578994837497562706435481004335312374260134605011109600679779333855672641655756025867610308653142455804212493394137863731628595374395067090865918513427058609638507340468318018303974497741583726410201078098217353369301670221984309484533021904742871455667759614511600978053312498767111680323042209090051690221971787956926334075221618363108568483617117192329062612682764944001557935699392780124210106602091335938802873723788633193811262686263835501728693524134790587444913046749945227697985510344666283213292930729885238509498780722404577570251994233128440645919003237576181335397950243700080661491489572684643210795918023395519927955319645312108084244960763540771099308009562984033714337837747848296427541193128148109658341379870830522086718746791125201109474711133965614231768977189910747827724938134360643979794496085378516301066540403520949895104654848064972538270216375856907475624469264899069486564021408936196167941891359019809115626091687017282419605408024441409354211096973488798899449078459991141975381976087371858681081103489889468583608234916015882532264507972560024277897906792488418660222801858430778475882452139968828835881156536489103990257739555634681680101864545076249901027120100308740169410401596665386247500048138307945865952726004102321308881420740360819238454559426295708118637674356083803606923224597682978529697253762557257191546711438875408903527893600058197449075928555859439874520284073187224154597870701660440371543646629273575470439715551421285257332409661152614668143738562607505685878004983666639043083050371022910017630282858099860839239424925445252815961597943621425843442575792893651753117959877054271351814667745046743868623634371547883181481452912253022829839879942110229817425392592898268490111189164465894726161724510970033785219584815291496962953338079104922974474358398345697502497437257886349109494558000564588607417984484761504814731160742425480649850193817401579721692028936203635233221015823649043748487955682518022978781091720632969116778453241438717238595662383444194267343196404100530959484062448430359340476159609388992028072636191728236545971500132840661129070142081042895721967328862685086137330241392421188609804911412631709739727654774607162758468825550038067609931291002249478594083364043497447397606318864711692321305169066398838894607507044330068293105946471239882865180257392546829650525189267140721396077575152531337532434621934656440727335213403284204598827257868824906917154504142427306975485995872574669160603224351172388523367873424047051037365968864408916029439294724049718405449266564840383193950198028899173408582023289342956176333846676236040891985730556601009227018302372087772328221209801790918326659794873028866095557919348994309587336311098046853407219576358674613052243293755622976819358943074927480646303808484388485388267385103534921087461983490342494305832221977347879799879141715444762263275913646237667908869905059415201262823352148543293975989846674401604693987506149672297097169608856696377192315606831300743848507914982552438349202208935197477518216787914203585912164731609478458446166354864083428563588786534099402759999818467518479502912157934145289025012262255359072950378480203249692257579482133358719998546901604581539352325934636391699582214703193414123873133245984603905583489319516784632220666439300448883676427623747745450665335961486416817336433635782132507081395542894551718210879206729037884344388948398147347182900019040300826079601023625225067404354191316617861707714593168872845768892583053182384895484232019491490300421160328469110862055741427297630400290631071515193607828924720382206431136871288893749932518419770466072131373861138470150095732705920660308313290267167795006072913670875938438495097211514485090949404617032141046026194891225004115435895986428994474902822122424828519700563703902266372236686652459757618953789855885219354109201912480686340315072146259081688914792515677975666263716172687909352459640085018125134813042734303235276340975381497388270026973498032428487462539749214059758310349060540806498213948053306986831361052120678178679262354466164487820821906351404394791864419661628659982276502064564991468444122322797983798099319941561158554948578234607239127751405615274259745585706038013829724796115257573866384413545442572563871413897858680893530053629048117989686540615381023067780421499002559511562566511022466888388184150005600848487487077340347266305572267319051068800549198953332964383810136917858554429707390449217793243070788670024480089394972375738233554822571719936490447924537716462696656409359605173028995690690556309246742718315809057432493854498418309467776896208301520284585234310335138918575648011860168408048951903566758575499827778951716160850545879336769414513240566890795809015692257256699513937378432069995809152653408272948320586684045859628539595879867442267029275701161113873549097702183260352784193058777868277222037652069064487411258987967450819039110334340355801974397913256698296437064876055415967742912617721961916139130955756923789343314442145546441223796827901814442279646749276919201052050087106335613176269026768880762597763290580635755918318641924121135115049637143288488493239084618508818748059909182248288058847320116414578156414555545909031071175257709836922843899249115344980106274813763806643486056189974901129006331426271262738020823786320560710579074843141873760022817099689487049793359902429067314272966678275352804855383185789349224802641521332971692787705855282358267535860597817489885032235362322633027141532091179616418485841759948563143697508384574398152812310612245711235703212225530359673916227698723153967900619200269876038339520685173161811873419711501556099679895103412355360013193233786302658884573960692131519757665903821688512842439327582952708284687961375568029142934863557948843215705900149940833965431924211277392857265837034697659696271241182350415226254168015464608193182162402159953755272948431030241192579183393817805787229884478221642264726524970941084799909998780237687294128412701560457872253372758391256759600929512033706558266181466689072788069648515012311207704964441458710343459330083774015158973148153994742902673562661430508806166877761597863072434735617156024871098338083961888175939739768049601002796505519640840571941628002475211725620535496816919694742549318566654984111919519731996872209311852413321323221289999827540218265787531133412459738527098607824751480017655666009649459337540679144230072216013478582851308589262606096196687838390889004169443130615311033594391958181000563964698916808947108915100543826195384185742102480872496949236158793232720372521067103696985652401574997353806791176640188261151043479646222388427442743644590836936220298025234067812281354473966527476227051621286568210562809300266218883797451436689970007030491303215728690536905360835120178310820490871027069178006260896168714908859659557705375939182563826584940308491305806341675674672989938077507918125901281357059664678615085113026937938449268391940956568895542154023827622272391558455831387382986319690137703177136226286598048535460323424527499008382829854786128972298750437661565327486026319322519546080706566427752984005653529542398175634183974651830429899160810373728285558798042399461050882518719337642371039358775105878148594941899581393149384717848554754157385804118174325220821531340121783349255710871225280880118236292122405129267792830626281211075696073706904797045653132501139268798638501943369411773001738110550336957167220871864587300098542990164944486817170006638803216735011185749113996710616956902354706093456287807107228176647988759076430003401097434520062383523227516071997970771029733762077449504716786092800175138910596538285983727537112614954691981051765511669138410997072351304480121329367557344111768312709080390012085597381349500560871477574678067357719256416766379165114900520061903924545399628472526247271967621642570336751459468364360660747943205429770002680033314618353290818414917906354969013580502753210033190759853558414706742866521843712593679065805558605252846297803842568580883637509687319793166380892583509933180674200209311793263742631232339624394931504176211621122365790214041033756568066970187679778181991165783790146237152041007199462578826409052511267693428880141479147792655121234118086247414625814464204379399582513140443668768085211229686503852140247718989988586496639690899336169078498023230597222477776861795721925266230342618833440574687208777141553900916787708875176775364610696922775272286391657941892272152322095666804898654062466862665730607464085179779171119323976708523360871254827628012910255136189456873208339937595268660202556377189704239668763906612251780725130125154736175455372204608040050001578985022626650578630628500115552512772650520066177063925150465645905687490777718682566672808667025717496286450248512581000209259642951224787895480723228341210998012829915594997488488802394478388563005483487337058401651843895411825121083100169874683567029340660124429250678784514807189037675105085968609153098292786963162149107499211236936617181285718164164160990656125106680964103484927609213743681575152137372285111741569591454210063498722488836448977726896236284604325538066802900429585613500771074222901131216606687064257897929344459628377776413713735810900449520732679488790569943941469621129888931803678136249559975578294703445667217041359152514781261630155466371359882080255800388732811129296794161087206314774518936823904690116830756706215530702392004123302073231518620801033022941301991644203938169399087816507194790817012935769115905199383108607527363918341435147155937841243907252703066469453996577523168765951582943966045788521369636022171048080209744387280941727651914681305138291298962894961348285215610679983859031705172107641572516422682137765071760569304529489270615147133668143070022051628073750792177432266203107326796647316048783202911742260066944176974249763804944162995571872697906329879796290026422010930539139347791870865542072343140628765609855401976980304351456923120349892255588232665212191856660721478658984971079569057710599166297338621154250483824863884910809118857204295414690819103051411969782972217516859583207647975167276628517812532731118290906046652325163454950132983379509583518793965102002092693870673633563041393152435715950081485953262786465454157291467524363192379911360049894200381865021339336615280485111485076237648910356868397997748035654434201162468724017363048313100299665088899747508686092176558788296033634967202381080989441199902180177174407726301215343478435507499963067767533300289007348953399119276602499204986718564641571436370020115649533552752746559514574045648112726785196422056949080633071833204600900940621886830999951227865561098867583726964894054786398592447132983302962598327961979475746800177960054037367481421578348273737096612260533808300869806808038741519168149659265569599733961960720816297983307498062519113070658884248066446933017532539236531132899312825988420700406042796573808738813844684313087669782176380087762974836080722956367838305504383022208911007569214697123800132340922938157598516248552186014832548293636849939672810067624241990627500249312807537170616776545827276152036475271673093210869595665931023447751091393549345330864156238964813880039425884037638425606483159544853382910345327542922679616102458607918691121350693489257544568489646770481656277888122653411182821342789254886851013070770500801279541959185497180382980630204073305899470366788023752221572937602911840719558288120159273484748433425866219790402523386709080646721409659737934901753252479174060365843206524503123653493231733058940532293732950089794227524557297230009537624662955938914928773654192130102687330612826441945182777378017272648103592243735788502026711824191061782176920204884391436549761779568814300503332703415116254679814778150699642417072055217586312133921028826615810596089554797479563085315871523945025299195412417019369889643889260104678419951658591010057377482678052806884279866392312818494739341444664272971552152561040134777416624790652892286066257023081179148940313612777623907965905454533452379252323506215253528931516448688662762308633092996122511141764015550742641084044893791544448539980475773405295175758411217855568822845089383529838843836553666291313620630827851432072774381655932038287287648992778285663870030009508037616518390318366921754549021298264043376541814678767232836118838350875661538256851839430087962236275453546509691433789577593669101641238849902346226337899074092640839050023050152786438757513378555738304101555921202720121657359591134017954330943478689093384143122745734878497262365852844700070156977142283133367157939029944849659256468769212367409400883695870866451507578396373600191561789663813708956208245906956230353903229716945296107431917962062021503448439963856069956225639127704184428357500939377450023913564543000796319186490750458137594179406044820082550881641559284522842672791447298708169436012874820883676254073995768570265282002193479040142702566949053223934863417638131147574295374727954130918592771452384011203205518998873489020506166399493278907670852621442848687417078240353561264894073630151344346835182184373226384085686520531158886043272631131635883248989041235084253416490204407037347820304413434792419184552813248584967014137479333732904248580715990704176440560842578390975195604954732906227343285791649620854487688095623445788453695527207567875435414617784212701255557161750935695017408128748844113220246854485812055699616203012004377146564134055730352997677804821257633551792680513328139004756499578404785488046554953370293416511050071983935856505528132162498258490641915666002893168573255617503740162155263467626695179855143734117577491787879166684477467656395783858032310042123309113680618613106454400296095547105757147874309415315916721681884181747701540456090196557326273082391219664219454787130228646660927129499039234572573584219710659574347376807387598351620837819497035154931061378514010835887612614332496112484785392904419962373102897349565607740001767218962047588956198218189215953609073028968746111303892473599015337681988871497848212478370111742173766890281958165643361580198688282963210194044641783747975553575198476808380099933515852222906936741873019634923560564217860431664367502541452333733292680779840185634382799234695075453610105505208461847794682879123257528947932265490999618997255365691487447148335224538452615746693375059983454686188185420678910450002515124304798431022273226457815401126392661378421882857109240872228579445953830668112390470034022664124324749203246613412958493350474252603419248983394226191395255740721909742158642845761803400833855920168012969454378916834131140330450330693170951683769954962738058465288769149358872510166152858761408364186019821114813546716913874479032747897554931359072722424532611405572406970876397358931651836885375725322635239698709403729231379688647366069979657212868461620572847277948565399549607519355597071718663985121267519158742922081202118901504915465132342831768283268509720203968918619045101844990939890946202222301619473551264529243568133042290294805607046079590533411302410731933763988373068477563449353369239628043466902074025033458041265910909272758942975693904800449499836872647847958539840172585469344539637973149149177567594468364352092026726811994669182490155495116972690731868480328494722585640456536374223158023280999828180391996994188859043505467686130596717820868944027652108841400764421355641772974824390712021806023071165301904186141859305401261498573174595132251511882867634239032878154074723246322694943408039462072864197437170939268888318231550880896370555600631024005088231922269435823029648859206589275840984791320353220927973485520878654292359592546363836238733807549087605882557390745920074657523669395051296332317851755311865628637384907896524359283200473368425065525294061007150238218814362719529503220353296052743075767101621877224494309726945683886973768144464686168412443988978227255975892013897059496596269311422674924969112342629824374612852345293248049707168051190337392455142687300001767291209914687656772126221664046778226207069156953241270035522920005328377352770188360829121113145691168002293820889293254744094476711401108191255618657790180607116411944037238046779175975220845807333596507597853286986440038270702000736109318075917227981406132781269237571562204839182267812417108697417143921193470485324138914627152218795426179941167380427348922543820049953342555328428717736930676210783541129135892259798043865339759157177586967734710728809384286625432454391179769512918771026172728307370852031372833943914333793832537569815016550097747390307686986234444196884416880679656600013886975695809058948253472587752602896032268947237969901140513252618315687025802056138864319655564634322173495073339632894966102222614462594083843506336095826234181189139968796601433848932769154918011714080010108951924888851955669022377477440422147311986482644670065296581187663629262086178411986200461457855152656206730938475228202484225580435383633266236837490949358451408654701520365914696782035454602832982962963215762707692719492322426431236687026857413472364223952364776203212140205590019272301629564278094671353785249219063390036072887594137147813005544805261025222578600395099889140542658302139194115025116259640149853023270477245866504760613600439849863551271465356284857511066132143503284895159064920817359685673450900053318177631380975166804254262143490960020201337820157186788807275997688101589820533681428479579089898175988461791961089569700189074157510735248417648417256055869386552173923800425020526387493366307941076574496272226545669912007640192826931103761857649455859073314377733285746423059331083256053579653064836851919262471040723315241085029896103696456173774773059956867251606853838634825030123856590419545317061131308878478122244043803032503826202911382039264437780102638655642940946804504618589709815900086693724206476528908897666796260033579720275964785424412282618026076775926007773758246798719878996149922168113554441443073603494448819748452820642429546851864331185504258678079953768225381508932873455780178720038118291553410906868310059182774526162656594611222601477286766701517578945633857702115911569198893673857016845263587483853042792615798243146587697822678730450005245686207976876986951509805397573571090700157990915540835278563164202959135896263613551003780399986586592144262978442065984679504463957215109513335198504421163963362171609892169472894322587670576576492754346351401610792800559796939711163779212351309369381077577498830124666231199234726230553886744925841174639557979030444478819374996089830686281705948493911144775675582323127675325827288778565431587319311504658505421015004052434100026296043892379610962605948990503142445627247555325601130729055753543562033288398081158246094541658939346297519996196210466075609593575203315576174864415869984756794097172246552812009956686540613317333165818616782834101757630757053447530955989271644739558845736709195379109261967112167033000579136677908465185406990371729399128068193080024136897595456529802212234991591476666704340464806334657986645471881782438352698696683775938865429282297669490434383473719577423778169437020802269918183924162469799028153799844247705589933537274642051861227714913718774980932008048139009335172684639005480887087555966749588592323566758710313872141366952145842261855755147828257218231769844587730461000147373080168395126547123014770607086192125942739454747696980974848927472590618785049369845629477475666142771294015946210857831879790132026594818537788578589183292672377547213161607017272995473733574342211398045975395859603056983932279072156277998589435221456545274127430630566954937183856239471069558627108374465885015333952105453966702102018444863433074410229613542999713070253178712745946869307560608060076979503071130692755226065152488707633223274860618301358468970843113222672237712866563369126041715078673197791567113619599102128667388381180643187784709402308646262413085953369319708429936097857191750933252636037903887741099848368536235937248612232634034850872030503083637925525284295963808564955562736340458595215232694726995440126132521195624015024361920356397801454111600250489498231910087365814737281195472236692455007101240950956488291300419291697965693151363175064767418216973864456993907678222852743708763618271959317213948682437415934900885673527124754519177465140129092109207319007810164144617263289184660455232753053392636794282224359474212961436181938502005352146784802231025094600805284936597108819348728986486657040639506471049380817689003363282609049327863039587159744508938757718130290478781463359313875411170993878539113900355844988649794228898410314848575085047266255669422095964678991545684574295942749848313913410249138804479913746094124421660638825567896717235284713180101447010327084039607583003384647507777122608307938508244967545997304275310749882071036905055104093749515865616428455726903093523185463021916721453983015292424298672563051821860925200412142697002257517042632632428101637169615111959848143875750859246736174754704674533939143375926298802385549521840773935407906035657665659910738751814633477520202551086772284166689024292487291007998080934483071129145715287794175153284264327054562510806377349096430514631126621052205220866265269146138390225160985250084398273931003362872276608848556129090411672896303523194645832349551940097916674682966787562450967400693633926286312895723107745716349981533187398858972646191295091799875885501497490278425745901278399091749305587870840526127630466994374924968074205842441456553561572111544238156430322827739314342323724916460407389296919991714135440217875086027970992160507171356534094588100101360725002650638858104884466772378304596005831056905789895666594981464781677332517145453028804172719981762446127911077851719053215580340905815141407063123070055171880650199458802800551987665516404950401720547922136488453942180093282633039178718084693934876406183385900394639405402922282376236418429801353949331921727134867615014838168123704202695495819546300367335223305430710130925371333554995092037168076184257163312182411657778656712300410185860209965455704451283550234582787665202972094151293439139760579938914870614150384040436108910647900192145353514003458309503814506608171485671354974139054661317604223489237214824514725320448547070675589043573955230156282803261738252119030222938520011780312471020210269473416883095250585335879433553377767667983198292391379078475580563220810351617281113059753092614755158298099231530343518160192756702655542446715476980652661640718484182014171003103163581621140685444998097901165346947813103920275264279810465575571588022214881509430762924895380784720879200330238092395243033175020433300398176689988904402064636558279480128318781958809166106156882169497944348247866850518717943306029805124441749058680431993875908055401861143822977236249683440792502300811196710107025743875229857327923017544751627647058052503188420256761509607914319934232869307709513283968746870494672036091778820741933732053022174193816783882755712468126240220212640395447554875834802128161382727077092962836850889707346627787214212785906249435685121590577039208770247624941511638703577219667768955604743986450545944297438625129525543452866885037625546178688471249959408664295469948761391886492150865490610829232222952616463542233926442188216416732833234264291055775497139704902667223192540684253441508812454537661104192703718570327776475552148327727150742147992144115360280354994224282429272826498437279338996426044907538120126028623535482387219656670489596723564640142055932014426006733417508005546131135066562775893126189739539094903498489869250434520317336940868079385997161142289270385748084839540123916946252812691687976616622348716700523560543247738097753093372582055495587978771397605980918055310879599914663920545269254608566882968117434462706308354145756784525004584705155720745913477894936673155638526654432709624761586343233015268472141879842994597142195011297736399143827176081350755497707616670485489542589072190500608194991756548697261129640027313337283529535164509013784269565628717664364070185393689729896123748284830682157023202912190432498102251668604674347798571338017045829830769754296549994339797737406088933219854067070309709949926355187076281367421918518896405041941803728195291772887463871472192368182228485427532774101732067105411095640695055876542129537577542895425030143988747435285937909857968042278648482579172440359358109406556558882801744337332401651932612600351994885975926582702059820785387848539042619593891188312440257807603703608345041470986939277581632164604681797066778099460185742566667558135305329472005814462019760522137105985976058563440117144874985276096074754974845488624680603869368607867337785674654503712751168440645876858928366417844060600388367719181414571234112110894867105534188085356793517314778426673399266646471716193076510798803132727813290415615272518900132975607608481485406004694205958196780444848088331762382700307512747532881908996169074505708768048548820468061330316838215761755563099561689145559504224756576458099165688019651019683205586029638943490490574599611217432599986269851557948681235942424124289647742062357345185017397853565621862474883022154873206886930653863778103537954119513558781216174718011534425599034029666571810116571913177861711341254535285460266563239991592312114651967441037910873633078740060685290611156787604371432248370704471092848633560826833995665874995281860236530236481536345302593477789036873423436972641331967531851426791158398921555704912620436244884347548054240867268261317308043444541843868354835655845595501856409911247127623436921493676806499566591281507481512922912956152214545086401714593350835613634290650560388443874176265731627790250560833749320785150408163722369026932782833062414134854469547713372256402222494008618582868935315126239420965270421575297964605052186818448807537061067058544523610076959610227872072706242537345930188698308523707354900942375966990777900568615042730148184350775142970810350969759216821404621392052611730435770930100993491862546271647299280651244909153174781193322087294006289873915930246651040703136576239735012794751420890562697680216612195309579526542340399120634446820575220723390155023797836124069026451502114214868358126402952591261135137813124104586394367556179553301248454883462582684294266208950847619842890885946536938726673797550075519561038024327926607249362433553252535276766267434840236775953837035251169121655121573207045049729781392030116592734564509077890937450427874535741535472075020121410041492279675194960776924944730215887060200256848481883130245269586054767749738467011693019538660591494409747595991890433821942659957360328650177401573727021487974138748843513112608931151110933111585563538323490170571480104003265541823939083098737546675261527183857573233099202666184613752183030851434227403762195849059363941975406127879662626989090434531427804081722985847373073871995258298549180959531202465927111171246029268308604080272463515759299227387215514485364142198814796584435756933103407046131748244779589258002598445103954967500200544634157528334816668649069448230327791462079362937833999704439528665226295085644460014878393081343957658815996612189998070445884424469872931576282255462329975067364058962857744373875847218663871466609720511608936692375125077610395260971841213425943717043103231225940797445737054008109362778321329108777598830947785887248920347263155233266932109297116119445398152434643194906496372535311008185367423787677815658189134921907532575196898865352404459107530935410947050555391780846155342646004873719926374266570399699843204579803702598659946978578768884187416346668449417886089056508715282699038152270661523791055882633401241112106752252312805495600058213203890519804580728625478678970516145583224413190605006543600867548626291513391156656853590475559469794970516071579949030717021177556763514349416030626653647447488009033033613922051596686748946981931713596799157542270359410644799559724609888634334168109745813841544398585393069691802989860943396659179331601993110986107249431827621101132095093233839153447342957549917333454752993141473522279571241145560203443069001090553366261668256235408902855029202327977159414771023214036344310168171459680001965481760130189333291341915222444330110117183391801393860847119952495714367480642455465339864114324124594860199744314300282522239943289994154807266870111413431082236498401152036260826072304339783009030527673367361464185203039162797955790128992051436232117107972389614627479068485145380853468037027427323281897402708724623908648873571737459643273966227950567906951651133133913743582969231887982765773755213160319753662627459149913004310074140900279685967783915892452586797918521411544153770551780809148027224812802697907034155880753428227651193896286165432074126356013252361206289993832757583100022662665085689651856952257068757338877199383010242679467321753917769301662045695660973048832206999151411925608842886226833179072544814308965179623373568503148195252612442028603715100228060001427470710234405378373162605015589355423856395068175695844410709186000745447901696936236378623068658212325663610961937417884764287340120093927735072379252926897021343305640550795760814571228322476690254445315283346347538360510805082767430051222397127417035374748283963216933197101381540232568018874815985085274239298339974919284488572939633550606675962679988245817862674745093226951771458540792101817159882604929952788414709743047217069333284353863462832858001802654237117042547184386365047514208633125764516127622764397408469824635851230356714888131291254859259155881692364294932388692944438745089728604027100702454268105131706876459454956059117550152207343633695680851659422232376829839290299833500655276091533099655947784336647975462956306302481745881838110344654427864627878516854329942154760245815076142266436779853757329567851384384758734277072295178618511034871173644378025611888651472888249978007425834942896610618765770106541524078505677533138719905894412740454565615581238763175202550335080249498523887418187335837412035298365884546793475566108011686379472043340424890491965849441955447833862155115818283553747201264669810369547533985726347011517693088688715689571949992151800129294014864211002137358265429215128359209860785085421815664228821304916014236984618831464817813178561504428105534833291260593213855071199306394993229821585865985562054244761289807261555157125951907937746723267962229328719033077727705591687067103175739910848909991717540967101418452475100369300776189420415826679856889770429540371778700450754174141563483741644023104937955687239112862987017956880432476376128058827695052151975094653068360526219963208594806863707618726303137896287975024627206808556541149941163298873276035566872901792319037354952431083736023364463004697950429769715708364643154506709601364192609098923408387193613841525935107634961254070598752325641314535414973251212341174918951502780497748884803660084377525875242545420411091845379127577426125966348790533400928296458615973592331315452855525255481733816949053143849930925461262020139297439870731205482409106710875449895451843353045096822505930508073865654512470700602116232050389265968572552319504883370605697644681744108040555133447099285386872279993863867819965609564432823009674998565287761945619434597034994310548189138858757343650803205986895180465541149384291120735924178289811462520202589605605539544765296821353715801001856629346600849567633492447897882831493121595902594762862128652907798560641668555924671427182812451759140171545621205933663710625782158248489704029656104275271505541420576746368447798360768162255038018596284802355051358118926156810912116873985484775317198117611109203047860177263560957767794519109967817532162839210960849511826717568648527648576116855891152200150999817019349636062657427391491642287278293944559419919928928089616901900072012504359997745085134867457693704711188874138776597680826543658907638304472768884048779971204025277325159855009220669987106738471128186013884277663792291028512629762836446914008810930549257776293104065700307737956208757456260892858546620633708682112289757392815592830377848271608410414434874627259289480600916608602798751855259147974517907438657837364655115743647946905913645962881161661926173793232216474932965953738185604596841590045771758916032020316058299107726645354316231144123898723484602483770032343759216457422787785634965101426433692297841442955154265536576968962704511814315996959641902500760631366026443645429037664256079975914494111900453382208934328788855158415229464590871286984972029601590195394117342068678562704014638789192481505471406510917972404322204769221867814386518273329842456285190101279050115718002452170014586876144931499941118550692342282816427631698119680084654381776333161192716635884772333580265678555218318922325464973003004728311038738097195527207112157654343537769984616283631607356627459020738131904253473450290937597785407231163216000864938298800539759275670013307510442330168298031203536414744804636662033060827292789934392431789299363528737721543562538288707173914966567609440919778299050776757721353204126205790427749358642699781717245190318391045697543042841739013093084134661076082601094378525499352899628446097851798285556028664549149196555216058499585233102722869775480339242643724324960203322766135496027986581914067921884997742106161699835207664988138245441836467880099476910663340041997933992261461062981481462716728253171706901538267951195529398736682074490990627751899976893815054943801385107873398035911758551078517099857209395743725166243424245456237673410021347998571367315089513173138814442131339428477127667041986527218035238204889402229174040392182061661066891513871819192876225161947289004503256961107106698327161444622876593416297787055612410103075656181200507807614457187283831448386065774302107142993781364225013958382432155624539218963727165426024527764200559829550447798180677338049597063206492918106795578702447353463105085606530331042304795985648905051119808640313775184220664094323350303386912814680535244191252213679464296554884619023333288368197168853847889682808753388799504863051441600861183714471280792725047783376356917066365978817577444339049662019460460694504264164780545926280074787439382733430902283507483668939306319958042072032449412210652350696857942915965700727716141471157257479255650312683102565276568923908807482731144101460407929656464437527043568990113901983580073572856661193145922139926661172203563857588206865049429370984874146185929213770985817786479493474037574670739099567568126208705963421560956562339662947990646194858785243024544111878530837300262128232824391501651247174967840640951933765518854483073729642344538858519355783047490845915109158106139235771393408106384185630183120925942358826079480689140410411913920653310817434464434921047783283780765163234535637925493907472676872264705578974829878011220829021263941439112583943290204515642168921901576214073112660991576067175734712225141973268660178394179060638058630411762638905657125175487945285549970923575119672366157587846500115397135915763414390766024026230229236324600218801055204247577301917240253540952853819420113134472965643590038389134817564383759886409213747065164884499461539991929065230246147449135208483455537381314456209272240382754319756950829332183970326428184204750747775905105297754319001858431161109010299438682002064751341394737480166836828715327477850222214562135043011594729682969158440360904170156652709298223193685692637088983263488166657150656599769336296587527978281599059912840217918518538233366465348617996019066709083352511538696982339166773222009931199399997702771356633672592603852142127522975513767299823089100968673727418488235311796609322202567705048091805358189368223919870877097062014016445899444454698469760351027158831048998490794716576309636377725550264822793673380493124925246544848654285813506147706748393231158267542307428869446229674951273909029465598063268534746453285665212799487288549552485051102093563317454763742114519331431301952497673599684756179425506219689451939074044940982305003512990473329319676625951999656513004325225478414730988122700947748482721508592688666086249523328209502043871450483995713422080065930104483845164805881337872490611910317181816921846473402506375484643941083930511006213189159245178911479136859281431993550871014104826424587761532520483206672616177467450678372607090946145997457335654050530311817927597178303565975913601564259353233050400998866852450704038152167731431084469286519188734160077057990676620500609486043673642731967135969403065039087332513829658281782655031827678922459927839736438671843045435632416031942317376654365277065629380193738469417743131743286106289962464150625168191190365176604478267491296043665274367496799441581591534989077417392609264015906747359362431077773532469657389276816247488460527195489213009526466167881312997539633113814366708722228898094823806537818354380100882062202145605623649737811317197449851798872764621165857452914517178666701055390311200086661339816570486749512004251711096219213233383443737846322777232721424531083147666135977854123003056135978713475613245478102220021194223771098334678364525081463387256619977700285238105211312651074175480675725674090213973770617478583915303687746454686013160242247781745850063880513808951893009858618295535849040661452752342030578925059267418344239826828979839005209476758034098597184006159236127649649835583295466088366924870250497649211718990726047733878619596832798108099224554080609046499107628722694281161990575277061474291322857683505860044188461934908336312808679602696766500251438459557674390521858083332447129388914985356816483168344316057161047599057890113320755283958952231256257093254401494224542856795749266576137499580713481517364994475676971856292575568880242382646352561320015813881950579938232912960447851234919693247599965551072136039236120686919591709968990265628966869010933656545893651003637200564858536808125834271067262723215643324886048718369244151637348130781761949459327550193226241485713812611480162742482941084974105985765488544362102631146949428132270728324280109598531117140603642682097105960555800024278813066959710141171471826842233555134951120452897522667701847916155932296614149050094820159245817144230296126327767179776814360142681908650835536939427273065746831097501435601853334140814150932152216700102187557486260414271990646512546393528052965380395741292940243052114625637551498835164090375957338340635161884849111040215141686527839156578803085428536575208879210819535086525276369591993323236676342206301596720718007471951012975844288306677619066810251280628769097199376055976291357619597091920010241716351416443363741744196360673957378578420247781919104873222133362576048970743650719320095911383878527304381706786630252726345104530951325361990392200355884940464915723721371173045103158215984738504999442677671816419551618006358043761026923956219729047033310091366438910590514592903498772276471083018877299224728948778295994704216012197899886616222579694631441614968320839488342650788552083074532547770286622477692427720052944554795298823099226366447842492741285356750837027852996495432776795089098327699657437949806930138720660233757369957864380619906495937434067000494746563125238418419950026964107558203010199121406195042474516250207970368075499255675176305108422772894475647395144533685746867357064607144096083762383000742901812416820188060207377980519042875130080400313915253622726970943920092631204604486739077435775102547736447655070204101417974366210101328816601918894855004617262556141065425377301209935572689312682774230777592184257710515016014263476646182016404704147678275636084243271602321395848738899968003243945071058293448295606137718446125374152352147635052150932825782738858040490316836463664964240367991531063060891397221570557153510834901778747937150219244981174010219655748882036260896886382828143778909119700327595136323757435292817890362790235721347948244799042050580330081079902948996707409303754338075475014463339699359729276821372633479356108916637972607800673475891833203654322042418860767283521716050874759505945013666442928681248958879365356368632888388148901906439302340807154467230703003338611120622294814534623843442710428446847169397203998731409260898444064291348377462579416625932559916336480881237265528473038530870319790387579508133420084777720935772725706992705424113109311825704708245506972648076585694637375658596458348737966117085367709319620139386693317629612923909454092863747664682817375364591066751775410958316045892032565329571612151160693523752139032443877729192991856362847699623845505451086577687161658717779697093669483997818021057257721637981376090620999260646813298963236057028511823577702436141490179373357620913087177159050158476034064732465447939362158256281070067910488553529446503275459575113470684401135313510793501937028069319644400192018009268415077022774074645151008275332483598268709639698185079172837630731187596561638966558971310256249449301759062253711899444108343509053860492005333685866569817510429182842271165993004699653787679345800395594494889914789622222666379770482735036890219178626007484305609423308525198941930393030231693088594567709101015040815403312696251337611762956023447725404085848492401247617720009161777720436962885559415100671112752696923565806272022489885034910466935177551740661918943149142144346272928110785846127237569852808373043462805112833337743343333492408378810194721717447647458154786295289556769706122052239868532161371350795388972843306924837031862712927183209622138063297548718072226971025898911059060998607472437124180448841007124229779498128598866495337975638363659480269499564982663308384415015919916674996791646958405549536618184063563100601816031387353499673256761467388022533157022088500098847374075311041994533557404767479709012296962139307200155840359306043299660260532877361398302858100270028014527313852912749537214450039305353283501946877984407831627226154583843987780849717741894985304581188544569181864957596385762714603301062322489353611835291049847340658556136135289410954834905751180314861893088137029167371363760343038967246541079335798827124737280272361092968138246945243313288721884954850060473910298545608310632061340034360572015757973973168975340292711449406595748932641517053296573083009251568439532147699547988889981569924384630457573272755793866755689845637025832868118235468532188986348902159576652539777806403017066117096255608389789125497596589670021424981814685076156698093869717493498291426117757112312667770059544883557296793885869383284816414391922329655603195296240151367298286120402632655194295660884887511809753741301224274911860378604499106757063190190288968637718764904898323681225052496140974519084473425339193339063760573216082621450279682452735871639769163288391563038011457345787839426439752090133863130286825118328478790161149742065029853220121084003451447480690032305801527829278481134590898432349363258084423915890466312444281952780307056748470633687883919678038522234392887666099061630694496632535048828388828259561212754710959445111558369104904264209968928064917264030108408860091497083340069417574556874578104231273271712893497985875687051238813794497917778143614724298671573482049867217705932703571826578524296430032321460576051255709939871001653643837832678770421523414837149802912718170031787552273474143958740337614901117495840161102671819347988366390321269542893315746874395993496686697532469640660780829765700247983583580845484398197793971901784563539277748836139940552389169832621562922244807850364812409367134698315617377976819180426384111944091860050990307460220715976230092342512418201170742457675327891352625051583034855816838181185981454614589727292637802651524096121493572374245891069021686377834977843731530454214546514187785487712702390599983575303176656285258923681867027992509572925309933971816338017522912350127387723640710614182623469951928194040032701596165184057346874274448933941992703540481749225360995802913661096846120634989564837721002923397821142149169854460576967429884320098657905957427201540913809471712138951213694983085541946187052199111665416305216411514381122044565869504979356619283547029866526439046022779772093700940070801152935963340105509852718606699155341750989456401805989796690347118009949669127446322420377414474635273009102966158011508713338630852864611190271696364506965132767246690790545388623022041154264821246745134366141886363045565850944946367896179213982198811985037852284564601596805520940052271088664172577157183081663285880880837831270601154241966457947313436945704423950195503368549052405393775301502797717717941760453365372489627492951486324378752579629018639482959661395113126699787809115724459861412512043608387226261109512658899569235452449089930240134279419174033129937144987745937667332139872124778260792503152781126198969621430862161273528844854206714481725184669528435402231670207577527770624407030162325781896271045149440374794068965577734178708336585043942898014185590616337462734530537340483865743513704731575364854211415830407353754689719366757845002312633183599348612405738328656537472581150077013813744797941735403698058280036204875856005047513776078245842880470972132395881862417670535460184257946862631698049327610246496467201856498906192174368660391607480332746199873745521775817605577909797545495401089881364407012474296383034121018004594146843569031770205370945528941800230859702429729130222779978846625032956834265851289470983665552060122009020110917199253063230113092028140275821487843855339423899279790406104217025019423051165211718522980793239413674042257877227276374581843040294552167294441983507797909599699523565869353785171906141749558236406432207119326998776304943991931380114674462258021119503728697605195737182370258091297526049993606207408036670050007949337231469664676048842006418045383419004953382288720722841544451358070037639795943383316418433848175025194839385195486974400745441347166290431725059802761245105776412147008735132404683552209347493586844702192566507868736035985592513832266150713043515324353858134522407906686882624413043320977771239971612290146948353067661187865332379497105545078153137403120110838865828413938145815830143754412483501064508661301724689037244077617293466443574281286851427252664921132245785481551594681282207730086182797496809211677827424188931923252951746313458364036918372357359737461158958360519360735880164520998082707019442602145772978345839388254422513908651321304875079497060901462579397001567232688280510053481219414266145946715312547171355462913865811674355964974575278224253882552598554525037974234050582234495458175929861002590508911320992096224483539232699312498759497230020963107991580574499653990116187591384741750463579396796182579173127835259338323752421656409048950722495106657572081199995245317950098965409107720763981252304738836340985900363317596150645563992639056086499397404613052441652701184597311270752250449703613380921439337829785787038194567060175474722756042756421312480884839528766565033297834362432100640810195308142534727329979670107507531351778511698854195031900125271565617102078414730296060676692477115577218525731496710828984646501726899857995919359537729706752306580268485285261873631064560723092010997957362195011875535713734537167428744433870754953447147278801452865533070015773482472204627776135869162923971839057764337094884539232027535952710371596566400012596323581021765842772037950930603992464881272955903890214393890021635472058799375134299329673398708725703350321135389672237591529290108666316276213840739022650918093238492817604570180003143211162534264079177536656562188906272501037087965849930004009078413271157640155291478177163248302743311213408358316092380188023909406510000506022467066753338286420490410935548451847717904049763522478344844595289925836408751764732894844444575678396145011134442318331339439194652947988646605410966975586403026195245753114297161377413983854901563724127741685697889748416964045413146991608705440416823921679339700849894410637222179043769811388224142402796093294305893552558939970061215678489859493334131920647506580713004889856129734347478945465071773083209336393194048471019607078961247144239094295970044859405258486608749749729472967768962588725338059417573793148137438039829636311143303220952535661176815614807551207481580878366514023095355768204710286040531349697216702470603382785813254649834815529083349461644337509894358234657090399596306578031831942315815575780156749841133090344110260167685555618446187356989471278031241809813166464103413767652952925139289198290044138782899341000262556246476866868874866418526734528274411814839943562489646006158418013239499983613215120954961173309364770707058113795814049536235276045998729624094000383595114805420178030366314642874414007130964358103560767976785145845759146559993424315068186388719221296768355693370084884211845066989422708155332685301220359325793706580408871818495448214282896148019356307953436313677186982081472356200698990960367330046998804091523090865182060667952509648109292087444538520732342235434953732703174952862624942867311631373246017634114688515966336995569207712535957996362953348826312615648936071357320020290409513997803223117187340591411116635990935274723040294574137709941558584415072838199522640410206979880302144385248866368082461058043018340589443518585141183771704495658427828331809735099241232612310938865994451149393020611069925358138358061262739499649788864919753770738070866041507184053929528067203052831526659446984923548048527214888847781664672940161580680525161761933398820795174483107011728784485548765731459159515495772745265212611772087211292827021592280549257106396094788124657916227251997505348300699790773015678371472866993273241222763029920792647424817137631563920100217129285368123388660172097217950730514477837443780506656879848737435941036356985180003622392579350154727965280113961998448834238701773005592626013545580651933373902842188102074012523266265431782230704468889850338920980033400190739645942770272366975436944568440234699663063091237016115107390054636570012740025378539783260992734849224630173488495361272697990297729803031180184965141933347229868263286051003723819464365135712105072524596219942179244838737931096060273114174103563098370316164701045292558882181130713396422083289791613822797243860307774852299889361487973085479974980748169474954688067775097423812165602301416978442235232263500083262018024243530267405713788774266403170701908790269436062905128579522689391699205894949168328008186603998618696909007428137334565700386489920373541918815540580337264298731189769915369221699727253747629165685449314950556184311838519869348887990824236644959664503310587326677541930155525986150056179567037470608881873276022561988708093817121168232246778930368808244573537404658719970328627945844819182712962053789436130404268152748359375016229734243454222435547672255461398924847892256115363476915369667011518547472032954318561680290790709007239262297394469763148606316679890789294956758978855563521234335629684713623781175016651009757637359496127024333108440501271073618482439757663862758013215950002401810575021595609058331402804085362298314708587824927702391104149296356408131122892121613408679742735836615429988896816080136145199822616270173538622925813205020123127797657640801967573758087832858681970063804995362393919896851766965346665048002613593743220249817153550830786004120392530312960138403279935926377200353187771332731960625391488446318930265068714904084859343514876320911023457156789204393386458545772772496378069183180060652803759591926271686667583677336422695235863954032427704900693118668614413245018836798781222892178159022242021121053592976948597370855896618655329204967620686056177270015609443461944127147842392802946768704171104871298555358512353282139230537048853206289804561098543797498486640223214866335110980674085664489415165539283875724158100717370174830223847779920440636788121642262250446528382217301291451982542186180469733900984573516602692683914278661684179082089429661558452886095573964413815085928685420483781556424427842583724662103533292732730400392320621140157109825316397653581604259557910541787302610282107690757577059292220068163328692836249652978430106853386784458917353313587072334340296847316808849634495224420779458485672088531994353601174068746525709003144458177000045747680344634920420950814002762416656401880488294757727505759041233529970924831960274196208483998647263779864033709390574426204145179179379444575213481088503488079667855848809544289000443825042717463990665498068533078301687618155048657850636685447860542630282706887712607964948767709244732866581740584000485553626710504660762668540031247565961337670418579200055443336502882306669691876738120157950800932665467477276092244314905790543505991138921277579320120797386246894395044437440548055376151282036656522346886043278496899895704185416709684307738034995006444371209090649984711773631931146122424468510839913020968674716482831001704683971699378270065877005239691319714304909377542355188766529157113549564168606934489561506847352119579658407621369253100761201627195372562297395777132669965510690112609967451808691914855602969143715383018501209808887849862478996243392257521535026168527624507866191171302761727570452802856572320272030279037316417641663506543192555749888501696180162734164973934622003516328246324187303004835186656034585805892676350101476386590088601538887530001340137799053802623674347934816820128487879906870731597716015439866240237516125786343466072012561899375122901193168666898487059411960257926797135252643900809271130652320358302228512759140734924282151026185510384838408427531947442151776953393533986226992385019165858136662469947206984430274720886754871117974412245264168451314922192005544537978555554113240501022615056271035354369892029549979028681094118851150980752169584349503226614360737587245808767820989380953125372432849789082091218288918349082279662759958170143907352720133211864469953491558072859123349259206693526288004963629464108043184299652236970633021277908585984655787675912867712999944286702019229375296837747357110627640865333551626569082163064088316125420138874986918379201919100501104463421539662380426288020866685893346880446821836342656760008979608102668601555808166920093789657142172234668454593449839493695773226958981114640472757172863031948210507772428413109594756096771319291037920629556810099733757013695239379924031639701600138902868172405251083593368317941383536884727984489310685566154412502001226176758467441732110810535542482829429576197055097767045625706387317044093295526048334003441405057244558048749931755353307110191464918905239756600365058969323074492662822588296138421874530871014592978221150196392477244400605146099329147240015871728820504894325873297047563512178665225413016395779205861826329163655370388794635914753839930145952198668722556823138894335795708622460250054307276827565607643151021805384908740120481794906546799145963117441841173033217305902280676590870090721600087680619557684856510951922076292138712651820857357170486993014162718873120590157749725234089646428927381666787228445317262167144638328601893656671763645569743965663334744292593050392283273823710635900090617970952355270836660525328421993094024332411803694236579595347625283287645445546983980176995217563500074168012747010335174112547404098606334614285273319567536508868501311544992160914561978339250650935484885367901671234849650397414644248457677726648250248065506664158487092614398288368247962321251074790701773594483651784641303928591022469799237241448477021378841588207272315708000171128974315014143157315615635618659272502336754891554303935303924191577151480563915816629974523650216174301467995003795706249834376480029375587772541678083699151444796920979735529919325452408627688748759711142532860103002885872863294246049553022477423319251575419945785718965193446236090676416187778149330024159585756430687902402655406512848101067621773599066085805228166179101654374568425883575911221324855789422063073470973875112067702241533974927645215747441685899791927716651811708665396751383998562369296943011733329604480293786854187216560478764517180868143911773814075487037023010541977547075889257746170925958537497624258965487896610956596041326300960851192456871642728806528140517100591599702014943785112057050540992069085118215442838048745659552928391359675645086722651780353304518743895549331516510342062941945568656981369869791978675917798089694676812662463966408345797012070219618098070373979133603461848614374698984670529052966996663754797763163113177497414084145463468292052857888371085950104146748108878715232129987332916324219701255997270890819216141490619467008463965542648213878499356727994525132417284426148551856610033395731489329596938667249697318798848373607541652506607066961112919267483370194717332615071146416271646761253427051647484408338466745916824714077561299367398075559807968138938447397094040618665630454114417142690032625527686045359053647959852556976526426949087055548057010385892052880228517655777209476177001169525681044448789079268154120796378006183745519610531585811337904081659928511161631678302845066939215461784463085237714802466698920817633562485701346469609199506612834331597610062401574719433555259853256610795332557654501638369969835575570871958561565604823707865934477800779616358799541491094563870507601759533999206770166019954878767119851035190319598178066769726407023844837296326110102838684071088784876254508619895430172969012637941786757357293478744931316132005059696479910655065060804122209322167141686828496628529120127063772160381720293527299700842946095843410708788239303839259965584836910577914405008440369740792783722753309988140356825161374770778007275463273069324436945389456463744307128881400334572583055485299429191518700148383377662817032018914688426726464319449061201042478580347077435623946245093494021774355211190917599045636144443591243705109803645847526701073933959791929000366197654577819157214654515287567585348360642406122358322000441161373219010290013708346753853210017122768760338837698349775464199256451355726284419218481331311865824815053923059747947683799343451817620398789044217846749929046517356957574523461619999483332862313070297602946926063471768269835323325445648021007037541988391962455089903477511469417021006817655769173099742060411765892081240902939061865750491004510519104015162060071613218123657609102937010795832019060975663626498951409534635131330821396428921903471198542279689753254019215289319414647132570625080036754189133229880191331781160146664434257476211651367957376157952935561572091155655823973965258251809883377025574673738676225994675495195442151060563434067763176973238522911175718211938362948283072505788467924784316455344694945832521363314272694153599402541244106532651459962731190667108697973805787629444561612949763441037962210023582131005209678620761250173017591142392224127672889369552700613906596434030420123779465015774250214885643185269688037751431776205083041063894116938828618767245694804558889762586769581246290732678275445967578155629794117365900291517529542449038958420386370159712331215900127923213647099894789758764046210300993095851419924564066924381958373376052871542561825055486609275524605010131270510785095092784936973265998853898165014901204166219685423990919148891454661752454059464491462318206869963241515913704919341864996172820711876441709107672213341588777833984098773977660287183870301658000911386335355655015953941917388215366206749924581665675440840598574543584324669265344108636198119830250552918964126291803152094017191419802343026371455524709779862638937200619497798963346327168998810691596834519362203053787479681455077228694296095203864684414102964641049350017097103148843017170117699777823197075795032487549022672212370713382619828975324616994381151744339609244524023356186913054227780514667304429158597281538575958552631694232995868320878682055041878763182596703018018450363392958130945930280873456390760768073047338958797921099224590908189087612002425444557978933349443118643404324939921020227189502570172880582563710066234126557598863110177089443259067110486515030613757863254567817472884554444389225397064589938809549554756161830811772162129471288766767570035983136560870100636311500700600092225036923495006205183869817946734384379321044584975844602180578182038840133599952859455731339171275257708135698231418049539861098124262802576703621980144336749457571215921448186641887648972354880150336650261842135500755547495371362421027434791176989586205644709875142675822199782080933148199800176357311114180080189002759979912727201961950074331498013881721924050644216471853601734215654213289349905791365433046599385895932144219019194841036428359851507197424563276276073563474922905115560110201306331118784817626658681743784514783112818318332644710537054637479880195681616682445297007907307871358199966205014639748164958343021345766576624488371526572516802211239515789304940590268596357664555475112093524100548837183011342670010659651706153482571089605675430145570468894450676079787937488221649903886953873841866982440281919217327112037007770325598936184938125832870557719837250016016303332646557652981515933233376043178344360769084056492277852524529121045524692767547357636922521280755259557278192670629428532412946779308604791301183127371019308764650427560983338753267899295820414371150092867343605296912442169593422119562604447001549923876653795976155982988485739030282611798841662422102624946739399071939411654683527655101975957350129065003887987366215100745234592339993703443064376048156530433338930014571509318329638990714212516247419549364035116445450336039600312358324414095944506287488074865071176990574019441937647222262849361450050455235790473795755372020234491588085428660063189767634471467396530448551748239140266310386412756064356453088083350860036439584347117501464225504739893157045339734090348455026559682377628512505343473641573729940320743955971429610014016722696450553032203456746760104438149619509249859714387611608945049343001932749918786417940563404889854786056876989974305797545224223493726019320561055962446618916254796941940690773431777251529634365985492581660053413157569025006715169810408412866850664610877801499687263963718606179887768770962481240607381711845155546840554660285534649902278460429924414989756784709800968855238581531619795716534522623783421802081570765821898305610897315740424892633846730169913237375659960922277603834748506427487554272761331676632747792818850346362290168717870322894067191770776090139996472463888396651480094241398381534086149382204265436226532721260721154977408345392110935009046137508353803000516809878609515111059545433828341085412048334138957369137722275689124515298454224504494984258270665018605200299678578325427812844571269502320970029701981638883849679942209471540196288227518645609544083606641367870714289093133715658988651131355448013280301320288359498802308844423084417343132174990373530292612054521905327570044365609984750333063467115460950240592262791840557033912343264307259262831715291321753121951398347988975440337433565958749985494492635788152658176207656713516310969314443508924615651952641126560246535463448983861301524783595209428352170979315570088174391685995630439580850645292698810268526005300735723685890648775182160587048780999200797594665427733606353003604604572828431077452020146629638805865606509766843437311223016675670283453903276164590185976099288124870502990140149272216212865038119945469364617144658347682156703182378922941337392873879431948597603263748525718335191397667033212459006418710203529298074742821144709997219595960805705103180595121410193658317733825984242804859036189560813487179492375885568331995629994463579459638874568124929081976867945194498341638736515589363219131189112116978132093659670696029901187493601773385214002493979177359500729261557583681611683764207383252575025304015361216625255973302693294829105574797408180273648984532628298998983565886213454774114618047841073113647762511220619292329287783133166770914126697181622484950262847002468751095812654265129011981307383240500351587954961818635874130382223609938070685941570924569536450621332166871625560909429379429624939087576387711869812880759346205614631208309854067171795149593405135818569941816563656184939844226733540125583598207334738290621708914725342992050854320689216195690888849083832072166074129911434203829801200336530372885258006909016264872769297835596735683691853385110942539075100000084206031413642948779373314792171445841297205441033259768599723507673226458211695483825001695989639014049775187382451812804140405716453091914092473896446593763629053002604174028540905192990978446432235187262821115494431737977963663933497597436295982364700155341242221888547437484339130860248089658291953824470028827622865723994867106118781533406096270202659945452011263296986744511535288605622019639327289307900602610235007661323533285154445292674123597759966877165697157482667959559808411696803965351361136215295753881867838927591214861428214251622764029663982950612314857496332300212577372420218686681722153743780804267291041348654781604701403771117595991684443207331886257434460601953690588593587067139347882743697047411420481177470547698466739211465327178608281622838152262697238248281458341579054110300859168645999807537616088463495486291279680660476472127965110027687755295514562163087238885855752575681577163545391136766450069146506506866344867681707967002561352309259683867890283688049926739488297302029757056832674623201154531607236199644844278691930868790146380081850444052996210072710707977671712647235115349777534858133560411757772489277418010285250303706462083651263506948572462650323070342152672887195808777180384986428648575750355016059073955919681862822597100453570373209776491525353971518404725883836293449426043232636133259983769136430937298223630875017447529640805855424076671345852470484602230284885786862097773790586599208702417802428831805524132017278664872012463428092427360527974219265770167033245419152736599097372151624473477622483752910313888912419573644987653792354600952417775898210033502369883121119267925857242399075222070118442504244682540900743150434956586201074639536002933765622927890155462653454289161565008137041174163701601287171848908052815704080377619789739670261806504554008858533165408899139755529614662606366700572234448727626653433040619374424054813321997344507005887377155370098313939993746164318829333266720199190918889299913292409090756071517909083648710814656929551663351177227246206705418524283920710743580979686069615547339092021073310710713230622787910770102070645639737456736565625194932172982065302304059244494575969020603905637658208954717573729271173821121198126023977876867694796112088628509396231850171629219025416024499958804674266421808147152145843009664346057295718118457906470672513969874066046238564134606797350159537025946070923811836289605323883828870182635950919616024702991460558544050580978694402677937026743026058079250383839398044828554472154867452229112540881863651471357443960950973446568744412309483865389416889129465494442209087653673928657004661362845558560861735648767995481760211957907467202437285298884639447338328131617158563182596740729422272272813572788526027572032219327250647976788054911088302483107694664778339042140608983253821092714488930856160115807741180900612530877633332207806914595936839678058092236081826714129157032223070503315551192724578521451529353766669692284009142233662485318194928236964210079000402432275125323274472047863876034888655410323974845753337519909855033246738922434011366123017617206410818390442719968786244020002775292941438984535176272063163184811808466854621630088126793386499954344387923827803953261173396658702168803428558515861556877746895166871311034293148243472403172314427367265320034053787007336152604945980856503121643947212755058592815615208135974216008818813380319573390823290416880118994912628374662280683731042661364695829244838991035398302242332078448650258749237429234553305512026605283740846587688326006339639885675029753009975102230520599648551124690451987587764098230101103765435925726371505449682806523679845658956892066879201429318875863005993017789120154451697090742919825245697604364569868586725662175406497763014619250540231393985819384730048875773369546361809133649436553911237944325863833877266259012793078717471462258094582927880006935552755598312815375011545689736795303854923760012388143287198386800961241580146666030037852181862869141228719883714037879391271081726891558281548188601322551691121420789975831279993238006751333196454684209682585332669110392148383500074780515354774003098497959701413868304348344293569237617561849818994867893235210600022607797651802983617014584924435922105560206189523691192044990995435590480308463145316693152952886651907737539458027100802141217880707151842882961837929997414111418577736079923116991174894180456578590838166512148304314532401128093662154637572580486534379703407434039075747300442164482375412962667028776541076300923676150674869932495222832300504803433994031813150458982520877673645966812092951069154693802632823987398392317266343691331258188059576584189865505757795697219351293306690647932911736303984215098054929235724194163226993161935645959572674798982238082849642076567293610445643237318682908671570809332490115903845977565637730036500453517631233988366141615282317820980385933158711307546511764623671049047702548395203196808741955985890807767251393075021110845414054825068302201349936533906023478484103237884049684407689029186352095400914296474795177499225207257865530030584528245036057431340100618838240485390647261667599717476783649187519559187955769112467154463231121256630667171276388014836101836211481750162018775448182684997530882554014520396785887103975304157734486559554932963503660418541815398706095558432156100925421818966383899168935258816914607686760864973461871957007935052512401864069934973179333802483159152596441124226085914898832156248190758325764112671811895620926425872437829233709922595519345944554311872142471209292145902538714202887242867056776076901879022554877379070696872149682004670200793765334401910941137940907453754590223424432357993273344637223197463018583237254127923211389367990590218810486666086688097417701261157980191315319843073792703522458312544640774019082249740060134146749846080633008721481461308668146901382222083632624917775380015821602341713956766132557972304900530241700134416421608779535702747246527209498822072078844138109944952546327850624662241493049187713046798799829428338018956718676661242185864955312709723452987395188797345067733533208435202257976800498159738276486359951606579706077657496224285199773491050633292332597901044099196685392770035953456385496281376207384304412829714137947214244510908691321289547128849050200971717917813585416236883392487453021317009922145968722112088792839790337451327831404127608168828812998423971642964258235006863740959811828542250420440671351860447450339797071258887883821171932627474954408209389943010128938875375259663130333646591665837803439759148488450224111065121826979317533366488524172546650546641302983596695610370115946515201399585714413749660427633159877624036904817179233694356756026248043308286135159648921665437384295117914503508992773296247409768453966169801892002564572890962919949045702731003557577761615483685508770342846170128446145360930700228927352014985967870414581503714503118332743639581979054368650268087328304631487066090280690337830049785084108729082224477736829086314659692553132942604511094707432793520494526015756490549551681208437548217395768900797972334411887477058762750185957366942538388460067124505099104479688216918947697953194858154181040311814716948182441914296784669168295608230845174852774404532694365891780814147256019234050835581265365661248930288068584537445156648105877479309981789300775423360124288574455228178774938840896347223616149963711632728240720144543004235794816511222766262988465028122881093741941746696343655286532748248616247843864188202208632466041606844069998351989252413439196720157538300150930354161039017599340895802117885018042880464525141436179276476243235767538500766541873487391902683529133677054015398286237030352765088449641046540180421759384773137105785955477850847739617237546262697153686578501410179286959414578693305726734766503079049248027415066498364206103785454526973495766774109125628911003962623100564096594719978226133176484836073592735710964296668123020917880888935938408892738232270613729231198357762984497421552848254990275111705725175256173969519910963053012321523337652785306717795104946743320343219818193919898776896946857769927401699139168394868694361983808088008864358052394050396865826367583889318736684921741755887304886885209107329385667646582617121113673137840664006988264446373811497307301748424172905717651323927793689350729730013092647760324397598447855139391882600449578599905411511948036205773354751940888800278581680741248000391489900138511572741526087067338164812760518656467185009593019956677550140309368063503631250119536593348096478830741483147178891573596540890914329989344880003417460870789991507458986786571496560094127882052063352300347024231986942369067335183554953333739465879136423540338080942780558172230232228333604413871419922074038834661030239904659240306519080191251706560681831808363951986754152284230082344683382336586570713841038818876935072291490052337001482767902454140786549986632956224094856673564429974999868819414705484683198728805450952854322518388804940901555555661470312999213853738620644760632944615065664432806254040013327830126850849456471293094793147442205394195107597801650444475415808128294915005609033380014539447611129046629589066629235412404085850688990110497794940060417293128821789055337778870857548583383946552318052159551817561868154208440374300494694854171157300722330277975624759279645680699301233501940341668129338486420981468523264279593225280287565553423629142780307231136470130312912965731726935820559504504774711335477637167076193435783292829121928719158746020244219084243906513168596426589033931779076156818110122511201594003086527398816723720103728483853331946973562089723278905494578897068610433536035747735686897473533315267757167658763927410460640319834069738155391301327004833885806558988581114007048895786493086045738036816838629064649667174066237531817984090600059012326581451907278776566330372403877786827634065228786668013002189844553353164731453923239766943186084013673999938039111757896864557914173010739545309180338653098399301001196791528570270973767340518322553145939109245633546873765730261665971430004659111018045170422831959070090815190640249075458082592697046232881830157126147433809744920420119878824908969772909125994436389664698194020437529134866001176327073895080657588509354120890874234718035411583465695390625618241085317888364969819175719228869768927568528230831980045800267847138819826810841445180446885470429470255975379301198167407978951590367664807741031583755550552283598096443673428839866817537964663093047400770530678128579320733949466461685987076020193661294383118977340157862414223270753235195335991509376123697783015974029556201390702896083333104355903802735012019676054484181722680797367699985696047106553728578934899122557568359868239371490731932180528341671929663584473131966452740861988634005803366801727803027593683787873930755494594730608367363613282137305604150086224957285768880508118067654559588157368984099126278521855373897595116583117624353107439629910666104243694234953682228551378561371847690234990331182438743325372558841299391862671782771256526268220819507943982923159712300654857972632613858003618500330818595095234948650394204609444582508133451131546427174995487920645839340471350102997154129215119875138454700691596627979963094644350097173662909956008275061163015127188525398929211582908326657567008789485988342672888874814356584453712686829804104194051781009879588486589322986027615136734453468515842384948083365230904641267839758586671034990316925978423816068769738294060440948077985571920536808742190937681711032115350591722608269099779139889940788051071967076171090638540925175883266292649034378024779387023875033137238542825948954416130934559374225207088188893733124717627330639122872901681183839693868214705436650329204229511895605090150016729082613880502551846374445358276406380266201879263974202372313747520676410487419890980920301697974403926325389079968800906865877807022441475678307172051375007382149854404308386868970554650963539214324526161009774752059552757077471238500532239252921934366959036355880787550122194520812105696519906159487870356610703577664137537859396384596249581584566079209788405280784227416505339128704615433714916223742220376701224229015649716025259493700896270996132152012575623965653859544000806095060658138161061876188581654482443833263174251065773816861135623449936223315786042408040250805542375684763451882553409289914618740222939981727475869934507444877418282235441962813079971834824739203623204606850182348948874858022857423211860838772298445536146810544805152173018560119482271223824015630564189949201086404338110335768867739225405007109151238400304509772145444476976489450529217258784372743345981411034132472305209515207471192701041244678617048534358587393327156760255281604210828145367690620141316994281028503480162067053818058755475973875006212109553887311698963259058221738076678165698248516059609343832925526526347517424141480757952872519314629266337101352636551898496141103165950606044365862688887818968892608492741649892990253467701536829053602573590180802114298237365919941058487470296595339034153789230680885034004241889539158820107054545146644091882608254051055387164694915752593406972399642607041897733152391741228575988743049456022772978441491999260365658690868020500830374017085953337954734290697568098247629204497260070459689933036620053026078494742188366197369697177009171617105481113745628265472151423808899172816961396504540963753790436425425122266417479996365643701213884445854005002817772494777735945181192534114478478201206950081909617179591474032761417285948611540278658565300092916408191483858266933936214399840385035139858531301987080724406433373960531102436478525755746078198747222129370308849818449598864059143591138396520389390002892530034611723122060339244063692956659942774526584297940901181262766953709251999621961077691478995914226566492145353205189217478495489893589283063206370458841516844035394087840704434015536377894995498888359282454416165424144089928680096236698818498165788770211739134987276759168038743914115214169608178558444267670451850865295960466994915014270594625803137143584038895791300472591805146900679794481012268583310263994727209648827244278068878130095982715190622517422438906408508506167244484173804950939603441168908803824987768091495380732277057440020813326288078560592272849238928592239019151213333676580319658224424448767726957473961068363544591029835570999437253424680204841381256635583165027296316435721371490967314482611427873592434415596209235159736049830391161055341797069506711062414610074709015851880574144405672578302286725564305669092959666098849128152372244331861536791806194109723810313460109010144171799328645018743847918036434473718562306340800077293190249522050994842135409862798418582882956605390956852970329807344105467420456002651458245928400544754566262446614138884780870369287424797622330227750391406722502210070706060550518182004556497676063764914113461873059114560970637947345831212464366180454244420462701703293008827094971832738030154797451592894334176386958951349794018981726966252505656089752236146978425855740119274084321473400841337080995694200961368930722551848541537615494181267615451487316902257457188196013028098365207572896090528434711583712870116311658036952746800868890953573475560303725409370191276765249414372302505911735585673532345568928369656328767740888249727824795462733264720094938096118347909909383967360739811999234387964739961827296369781358266066701044429923166160900973757191092648521033057031649800922691306523926589171896197355990428766527394362676643619565227580125622418860656153382586025495369176556221135936958084497572815089841152506058256643379910074078249585724332611978778589697367388270798877577004502678040276673642061695138811112174008170613148506345637152492947576932553539123676862809950520328518628208020921917653936977536733764535434258886691494639070652159578880701962371716624875115633479210379120769753896770426737321073625434947379699627569348840305655485063373090627370350522973524873832484020204430238310632752974934708674589532085756775676776104049500332504056431930183719818939383438497220974905961887583068187253532282464121421011523011286967664272430848407995190272641632092432650558202123645908516136747675721257088434773577712036549481852240240087620856354617496842168873774905741033152390819837216674614232661497291620849011779698788444796296977566828274151269334210112822245969130042091679329333647054311972051627653128055081276501785025266329322453857324159676802510911201648597529135082586208841198613075255433122382617817540406647338339957586962364290857187524356211387074668745777353533480637711415282087296047565530980064632666980265313152452451562373633682280466490510765228996933964994629462559013264838631796980130490126614600567022043430046387612194737449766523070431411692476141002609380481301309850794932533635671206413749603507392985697095887168279289763186746246504570316028356712266375912099543042952974406802680525132383732103989313916839659634480159096768270921795065001115527872572775904639176164278897230257469197531111869365572444826274137397039985844398432015478816246936877798461154947366175556734842654598021893258282630303018502587463242787143871417163039689982782801456803962061744416552138324992983476627175937043510922896914928347192608936840806292369690348373820052984014971470112593804832977485569266788828355992101021940827333572123103278742876842514765299794663037830467926992910905780413640011633643788210169135155661962792202405607170148216822351796042007262323406741373000171912967843839608245192101460627221925562876938256279803447472907817982512538719492550745355986117794583707511678704716848949597141258820492768089903520619840509133958239258308687529871637273384674602184010641994091720381175317600532078815478642881704434938776629552020518791736182096440645285868358230426014743422146805425172723947439808722984724530937860689148231705883256602697888421187405263670308038864885437933657468922822673461129865463228211842108113162173128815251930669143013570181978904778853641083708484398688464493393666208171127445165002547394318645624652994711285509450679069810775283341158018093501015889753510979890803248772789806834596438753732720595668138896647949321962295158270471452966887228489800060054981626708777837461093561302637778007072824016403925947112814141035944972224670391229505403964884605331800840404728859892931442542031419347281003931296586358238490004227744304971897272413804947198361944302007955637349012661746585703159096356050541488840051553340261573862509395630609158558150731886184306606003148568304786579152636364870450681554489791709317836676703152957213940034380543921963161982591744672142521256594689588196367237686371569191410560729234296991752158818835179483548225624751250683719759540766552763693001186658711382256035890992700742181506036205149027964142164868685132603065763500377873505149667532434624394348437203435957226868996108356893026917388857674324864579807921659208350550917798597401378378466055607861988020503633024250413637062817112639033805284738415595464127822856010743190375937490099975517701662246382287910175403713363760417692905674047233466873283844227228591419164866085719500965837587272415279307293354429510658545362753492984023841548507371616251197239459356493421013509068878907417548496240303762587968270342810258718185739732641536042002516675331701736554160967445516855453535770147187484263676269811161933804456735998265773528446146827733343940474591284142775978049790105341030142771387215950105010885976814655128572864916199841826480713206182925040309470264262755308703872122129357303453502623373254359848069304698160076283741869913331548355235602554419981148035357322596199458015564796065157125591366355478852134024403193092139657413151494618540260864726415934202577304328965645753148303949990053759003213753595472851594918017216927535106791557571896714481325707680772748985785509909434004543554851937012275634580557134321484963296747719141395084359135405396020120568529416817513248578554064163586488993978424672508877005220765600060711284239401758776845036631930925345070762218717828572516738165188855257315472263528489220508330960366603516460807584520782846480157420377543435306576625307597741598652730687497198836547561979432675703913623929856004892187462980997539372271976080784285626343324816396024808600672600986966608214362817310787160911715581023809263051563702102261911093766017412255070362593109214045329258185742640628331002197713736491043553723551426076904219688696739857559469217956691748932004880353715396095324370843732021508406632038717255095976062076859015151124077153425045847582082506421734327290049336488722827821279783827314339948478021291890526299042891426491694560763315546893168669630230751013014446834160674375087558577535141710229429743700355204220897133550514482353164666451414585029323928334480951590774109296367724960233979754446492858423741502875144718590986875374406684003994343713861046498243688689996850908054105983495114948411003484622605888554620562102955907316264866932215455959240591467651527118921552787638716009244858922333892947050489208670363374721876168219975335806256070181251120841665854287664267515364508174560515318231148015899847226400501993957261989051073083250264932681835972432256252585458534286088245986090331792268475589570688515363635905372940122240889166584977235167903260165729080157962866142379906486574223403052850918343513836853797587787020582293677502917636767085584767674478067477869902277224638409653145063558176917393921062004845360470789823501517207771810683891753509496018527693191001312392808026040370126326627927357707985340976887343761440456187059827488229410902996129027983302512167885134010566256574946318849961027042604492303812875173061784445999186384532183478791876600791708447127442295981934400176640326474337631556991223179197866666979191721718643387205223437042371714141596922355066146286131654953922482878935507111499688427811750883269727627605826368586586193267827530203523262113533654782920704495050194563686938634940413397285807781201639162251108560555802672804395426879816483653040098203168099818959248265512968673223061339842034252702206076110572548863427703945090761568563358694128910358397086891300317792257164469273318166853611116597104868845070730902927862735982316002491490419885427819930784046056271854480088553468134084468937269168418238107270076983798551057692899182560341242134908228108713110042781315296838048310901322916715829042566023402908887568975838435304088975708381256508007459139526930597934704503125826658097521497159327996706389079024997484989005610944573963248335137411303215349582206654524223715789632913378881773077623717058577186340898665803545632522397988527234239423197308629752576465189294928150534574208646421703870174642554529168429335035161595919527367988489767254671532815252435439668051462823156848867222147318264012224685136526537905366188170524794150508383222916811840413541532776886162970901453146290620710044472509888360351448298795439430347262430193082301161608336073019777798549696072778382403974920767464285573949488843511690454695667584785614003788332555594893518001318304666881291250434593478858894422411142623783036172961924568808022704585705487170812305123805093359305854319584980191529057686569912052982972059466700475015858625268709094187908916225380857067394474114782991518505907407039218541320747837273522790026717995212045692148530132371653581042581292719834888276203841906387409646258273451895226877960310334780266901386620847996611161507808269249590107579685482559803573735793910557968954197938924589485649902782032030164249820358240415194816853029090243636065306399530915632672694984556711808391442981436053857924950284513037898143833167113662643385621150093109453561282431079538131798362793488500421642953163448662363470673861369209135926833560535467565436811321111610043778812547977800607027708031710350544210767453527853427829948203661730362920115194188338470251190362587068466447956708153358600696311928294379629153460118335901461835351785441905530523487502193923722326810412344866428404959182107394953090430725873440606582966600036496149172466673215887227213809692063223272351601504521065311754495434608090983313499967101366715306394197780881674677146652543396370749838883419657654490017886791704539476133749229225467130930455539118823155147939333040558919571408764232948110735349876420216625998763464580332021668241634018957868502239286426356199778343502958787036332446482126931922878720483094101473247139886859555078186750423714351728714759912369169005068251728716738731050937528534031017301509264427754270379125496090641614497404459767292367977055041217252690594778256690759709229413563847902826977025911863906216480589637327489123530066056149598779781011142303921994240158287445910601608302262312206304663187485281365328464412231818680319463686887855772933296147468282190037605812372315964696615869957052573404609997216618865578448346802100593518160466438130527887467480935304843115473942882050057780045270414313561782645420665357050964353655119459642300325657816480035579983960742466403701829535654624472413413880473448130749964540497460318203131412139202309195189457325405346068911929184417373339534601499476205462138700256126858626435294561105452569990226037990352789479542377685352586596573242574782026384471912969067749834465206452717917639627832662857594751155380941363866570463679209107412989178705809950632773661599760877054274143592873263856024867085812941187488410622661423584950632107583734676248106072370873790384603654231020852096952519092652380786368066061857625694663496253555071143311520566390925831128519607869729504848805753078999328250936286902632774678855204872721444139080145810237530955357478213033820729507817840684438534918284159658912580372238159804232101564900296668171080450334867143402868223369135362101274420273601579553766405352867696302916390030443858612832485057346516878946144840065190704347189577427059664140052228907598049862861775924272016711346988277559852325827770580898305018637647397935581674494414170898447822661059358862197772438683082570819455715351821755292645692343414583702678121243295816905869313836787178417714960940385900087100408534443158462925784598850974293535399547094694816363244498137363461978011340521706665627998023024128798571544246093542443082213559797030910949354233210692871359893462039454176432572927127680605311583069695122040153552575148699876402135717528213974009631721080775775608496271991292242475313284327499744325408710529030203081303487601183399134771561797199024880783866213272667537129562143336593318187846688134342837252149216585661687838525465705701900663575066461524754640817879844050459181118678880807062491089507422749716003091764598607192915142443499843391834009204536491606177665368217636887271107413604763602088917118706066769610687011224240508963077583130991542367737948877336472020718199771421741783582767452919628680354080126518679065673680868796452824621857795400544530520456820543524617412063300080802232192161121221053221919054088037972512346821618466515460857131141082807354624153984551190223112010114459356707375883058272750203920201439882232582932392584128622838575883813767434322162760675243492375457115642036989634069803076347129886590805055895162777432764070954646860608890802307650036093419657412012053593160767372289978145163553620047615625931524038923066229161419310582424845435613084304840923652055198155975789639931228988953539146463820649464433860235552007048254150537723550538534858826980382451272814370881815677103462328601805294773377995784091533553984331916962388585415417305631001766087966503350747204246792887418002168250575155778673784719362387133575232242816063459533198126921755864571472251584471729102352746771237370650782985505114321553636001697194479297277987505188350157811786233444746978437059313048163351651157875956722323591313157171880311139832189545768391218918200497287796698290721055751625114005994271109576758289801628478827233038635367295831707611061959475743567642523985733620594138342444975836608922467783785039574183016257279236102530348270728361183599971600081462823382906966142760006360700860676613565438501999552997176570903030003707166360121189231988545428490435076782476455494302133928223230408977789756152307500129433955762528956962129722688412216118091185446511267219026514581586129567022221579189705851648588972325487219881902864994494453137106759765107959904839570285606435562626109410656497345814420528075630046165432050911826731516646503653910452130097740159145978674832908150045170954119544745800929392721226841243142218561662728105783253855951786364106217620681164012716693714174813875355503851290618057726113362718005828828482568903638267470751468665750498023651389089868204735411226595335536292183642903651060296401122466658132244836324812927618108347167722181435842723770362108362735683597404018377327309519628151787961400636621004031094819620068197850311608109636184383338345447341115838013585638076053148311964614456879984410958003013701264447249999575662176979041631273396782825123365587090862145392426147822975272050997245139252007535859593004457944260774757641620527628781492662435828975159872563337624099588497695172558174625282751409262399602476564164876922786970894551439264885995935184439563513953258316451139436206657008322336667654188201292869570319317555823050146375205981088659339791292892472343414786683824145507669669018529415287508685668369562058116947475806587582563783043244951795842939665929431786850124188092173390140860133397292988597955972947590548470823079984448381926331134023284250984628031532898202882823159161467252012165547411427989140446131487789383113554377901491838053365634625493934743741628998714060101017158322077366338885241849661801339857285570029668921512497480555274510673832322875535274927068713034957353647849887392894540326099380785580073898074618776963174534700875214308819942528958906939818711706058505566985176640261329614743077585559620096841048973346455529159754683798950060725352376453521124065582082888149009980990969578051212186935104462297948685350940698321143852036090944932960756426227379544580400585444730341963480665472452370239822446365850948383144968755648411190710129259466305629161523952696998392663638549323902207327267427766437334905646505466199736640591150335736158258526079861512072275952281314487013331137161986877907792483668104047492036858940307787052825853999773675005819312539412036268059021490926287856432557582165964150550676551098721952779162461764518200861315228560177473873099444663445970848580069444509815785638292112514387294614701889384314505628303041425578779271240714268578444669099282024392252044501433212408122765141800050560065806507877260670450004632045706139450284207837579659479752882225677376203166903182188102155967293858395746298600832195831703379170996089246059564071797935936229805378797115661049134856737773444996641572575236531129378682312004913665500229502692597847935576073699999094401545382147821356360355964197098797879194329165992029818248032433527319496926834839905509830750442678922893698522794216985561693030001181043334252482641131752364670633111759581123894488778735149483970036322895696003870978444200889768746772434282841257269796316671230953880248298969068205885445150744990729907252116950099585645660614207698736389254966734502950127792677521166397488317565102472146858875584623199011583775000471296877198442771750881386619352938488054004957548593682528855972800652752339826425792146885954270414694026211882869696712892747208910890880158049241372128443570487128124233091750286298140848746762532968648936034893140777514846102528057404722920223623391556518333629870642358271485406502673985454462400275690643285301554025218358247549948432703291683041215319284614720605236959156381826078399278037881950126422452266458617960222833214145464165205862946141773453529080597182280478166521859548062110674677968842299865079918637925415750690235050613977192480974423480944518113448450505944183261556036838162795725639275550643809574611526171750221593920241575166406939832971118378465446147242211132045358280232726020856529958493323863392624817049607229385883903625413988691335411309609751267236721221040607937586005562164305241567213538771019597654840563003561841674737862697843743521334611276886680529404719138874973767927239200271895572350372446568810036849276306695804542595842065593932922842474227389312581354802197181201375331153740861892421674122467108000953270128214505462106938121598871424883798213492286953451655544536955134473848252237228185382159646171622017482487762833098213691805131950258587756909333212304329258846026321444931441233321426798882567934752273250220271022583896188856279242037861409141980662597816269113960334353964818963729153880843783334760165385714954596762708233648105326808395072891963963871231133653755484899655385112814719194406915353788483050540371657315408910460009287925063470574151990632479416684916882202175512676920121929479032948645590113800537033521413629726836606068733359997025102759374754089980165895509104384197864934009047745554576494507407757860965143991657171702826018723200412219770384143137886074813078340923621650173945547513156604823583001974785427828471077879257238669220192459918482229976700491159303080135708541298790062308521570519434773780857247066587472423711306109305264631866442072551426572639110153015103868506909032739074973932345762013563311243482781793624256256117857957470809657405524130045598971055762898212720726143133635700850872556814839927094330836015835294436080135852801024870396845448851823638206281171465117759933254303036547681886619853937331649236706708511579276162323391371919770025269615402350029699963187623806147508525099077402288394358348140991213458723127521473249429851007454713064486478846899309226880305290473148984503098586669528818312803464718466527595401137468825951415499271324419275963399983936954349569526677371149742718134160550294741424717720575668552190710982602143989076523362421226025115745737691515276268583169117052559380461868647988619805539166576048725552384332281738662182754327279384920018857049904143230800664400895755688648327634329647580509123810161129645081970673248437711193972571120165841922456318942405965271406865800165005800088967094198966467801350677174997497374514160164671842411160462496618615629420384679234924628062820859763176630903142502383510824934287798860136757843937247751906042801559149925690035654910525261148746138704958640702382940383645165819551631115952371938319134339758472073904653694121036995817816343118929408694627399232043855778728209831135780268876087181662270896715382264195365346675663566323655105094050215568113527035059212213373923925433577901088269899648047315502572964878668425541318128382266376480314267643019260785495779831537008193078408980764839250002206076529531040062524201761169595132846862092675490786555053963624109111383298294828249919697600713396754563754511056321802664536069534510027934380117498090643251317152175604167537995617899817127232428540872322548859852606171439275231048323022035635459537027314234543185753854299012997780619310749423752235241514291920834072918222313778721770785958026437772210235689902475617546454421256258009002141316224996854337655679462724741272947717694837771088930076390162945069329001782209766810475503474779996841608271162731748054651590114306117873389472308530022772588249758266985953327758342071718911783541314379875122101197183478976805340557830754290999592957038751133092510739003001961208047663652547380633093328498019209615495214705932894944728577038691401233133694104904575130785852677549019336375618148378612304499136985496749240783622815331363437782239566196507281416528346702328815871894436290856486129004251656356646590962674080500384014214525409364484986538163157649272720284074065100902758250601105743040682706655976214022129636403340463936448993113872029488089570823763722174968375643521901334536962398754176342710816817966139167086810035663890750648095164609546812251032591182184004641244642609180361775431779023496277698216292292779679400922068172226146629499507202934791522408535552140022236944201127951994604740139793524876699103036256951692864762797814851676816131803910621389536679262606934316141931989753496502387018174487220271466931641871715105932592118951922268477796491881565636268259164217632245878925296519445873529297467643020025605617377859354656741554629963863450985983494526093147781957199158737034898002053368783507634725826121020823269609730910582169256502473444208886297534102380933465799846254863320962878632739125522610495796805943191580781552593236381456613102089865898586807177853457577543448101568455959224288349649690962102139771141240737261947909162447408516086579103211377983286657200911080105033195390484822612189530276430057364530592937567036873610602288220148475287655007669558643985104012765749691649504957886337157464044897674956108340796394133495394934356468331479977599182334138932237256649212252894439588294145100170745374614283612052976641740177042812782916647366975224250427772870739757483962262713919630499292384660749024017745727739485873833942039492523988924831893763928142209436795090413536514562066031001053239778240320397907197325932474950669406168622988286596016888451278192012984262212898768553417027498335254895038123405413451990931940912840136295252557865860732616818729500010712348284427723158401029447469294059222550454879956970733504105385344457948660123857520917706509325006872477774802333078345431219529726288159847532772042897264441069049957166739510693719397730347169492625711434817121196839556152367115435735799459257005642848386201392735220422145209023548401993806810340091820018325056780762777845310495628710502052488861720488908060018650548789789844442815417167947802137890167595809355604974357437411037027744719499762132776339628952630447386692826235366879682350172882468826974057602798397579592366054134351394710425687433587363738601168172099752769072123641478945532014486741377417780159890986661754941298011770547761822945194642311920601891821018996527694499148024475252852067761169104203564652376950164002162772967346940804777694108511221341413016105033151180258328666071968523724356469797140207587792254993050865807420399740830466259612719935486483418365605346263763036799570522419568347608040510442194249768242629260906931762008002618324773114516645259637925236639113286017642492136310158724771548242893275316779113808605111313548133175354016374595339982886363755992492337924731544665536956303832373387295092783286997264390111248859745620266941524573589695443789265734995849141288828200796611545985040484264211466633815041897410627866913283918480016962991180181547694459590376997708801755007329682793024512765325159974984361434339256372434702528394803495675923824654978623349250317475148784776400850237411260910939733861745269917420833286830696905800315047833979659054217200926037399984241470760936788870434528647156052268770662454015198376911724054369557288626452969434202506022606669345888822068155488258521998438746266834606610353320492394367434365502597909504378403152937546163177517428362923386716957527102966467035718542512059780299152438748426731058134675982716422072149217425540938498569841493358259414166878808002455592116646251153194427090496407018052844364609272209956418093551945532449031859793558744215056868046184230752342930321298174395035843899159394582685629533325382356628773925572155982810452195864660351794874672500653396992394975492911581058476085323234635633294936952467388139587283718774872394906702566889988881107737696218933982920039979545433340283075374258756588594533537782866018955054851359958566503549204696219673797400046019315966098843397142591233285698506593212568455574436207892958763649198218874265202422146123911723711223179302891209289002646214151647863731486250997030570739312411183148336798915012419104379456935310902521920927518130485951136277750783654394103064988332339834394011630185898142288163244873970953285085309759493045652480607205427120168743740186210002718706048985902774949329876782223246384413268600205347833787394701095359598981839163288834579726834396401051106343401847248381405992224420854320294646738111516944600408121484445632890111003738560883713750729707501420295341924315826947513084695615166184891179989408214621927074385679288078457724413992369311856680251091195962869300539105409543687056954051892540189539359480744910048901874507480112241556901912358765531375215171657390587750913734212369022396362925083926742052811011377083909736758480766535557887971457712814943368050684470995089510264022974458577845743775097908968883763216323910156785204929709004215675117317525597285962132624586570424242891357312065965003550605068011975211611569380906363075989935744208993359117720883284252650832753476029538341351812035679200116499003677632667276781469719174538439000380901490524638406662278096058151847344277141055789887492870827933810104529158413122263791295546574198394359047820006102930030226766926193236830226457552659071664930690211509045970355124347200603703892625478902322152101938612452257563688584390942144227216971400257856933321525058954709522387724523906083035661615620621696678776129871541611812520822552646272783321696636199428080673229427625101725856036681797279107402052858031527522529074167455887431062258143153960924581901828449807830846264677151899275048934813997395568440158696844090325738189487227935938436555247878696178247901416214014114315988269219663877907784016280398110849601536503698863526784339591414199606527841537913254829684327479238428731802446989689895330577099256297851217705287103426603158668677360257302068190291376169642466826244889741624421947760251523730223211187601791591487347871061763918839099338822507498949448527759082856305933517781368396894609341749507545791575996738759507766314382351657987217549072622178716569643662274722182723713643957788625978336520974692757565832988162353115128334918729269059002250599527833007347222638710848317442596145827437632021307459559281390823194305264610826090680801380679886398631562980528358378776205550144045800802099047913446887273574877814056756878108124214595456547778298817635137659897953890558037687803334601852188278832231103713353366786002124218250465724773941837606140730210135740688258630270405756668277357642804751557502616383346495126072750497086708468238883969863824061393439705507474336719579589650884218773715992858824023720806874322814427231317726442520836713471843809521193405274959343850032251221906411844915981117611134835276606598973539484628675090111157848649416766352106515651412863719728444171529107230800349260084982865552963716530295549233764956460912218583411362685557904998216107036295113807460733011962023268711599456203192597166549042009801771474628708465558334829483568186578057872015349951198366642946985954804550264798192730125276891590254251089994026101355420562504761081761768303619972448983534360760285416535391856450646537349185431075332238577099627217229021835881758558930799342009626422350531204003797986417228633843828650537767707277021389734500997011096156322653445524226491573542840442602674364279727557837821284645628102020361807992739449930517650509264859255100331919522597549842598138196807663722388936987564114675613506364406834451263377197297827588882814914846428087923788781672176198950398831342080571286675111988304897602802079710186339659610978193346892264694532265430819649209935518808083565988819292673513994539346579591022008713554545255502277381080077483648761415829730606058175903746934747343907507547075504801863641606735720429759599055420655073735088944603155880718745644021396577081697010809835162807442907890341580593651432629163473571983330986449109603577908849343791218921397959992078876648593850804050136663178223391315095009596700414913672045560484131490023737315313785689895335073038116859942578966574034685010818257554643518445112552678404886360298868679209407328202954154351097476469305937896423821658113486579249987842624869697621066632393208314400121133497093409337461225758180476224403330750922980259842786697060824926621990919930461586935842284668627021764468333694188117386823664665269363579467000615470765824789179591508727802211820817612855559902443908707072765570835831564686796156714566471656125957796914187378515726171787144462643851100711031180091527262055484641332485383856794848179028295054770560005342231707768032826275089647605974321050321317066349182820961898628945963406903223045146833681523660231592679012964752046629308806798569635793049041718180467067775026027435168910440959786663754300809650370230926258405065471007402327484922353748067231801612431350927443919296991143344502052320148541955406499251365291664452093908799771527465227112792747366251875642331830992898431119945399188532011752766162195639634846722287589152982122491182272143077413243952430436482042734891662807472113976768804024345825603205833750227116066277007018718695819693357709953638159962709009651802516939440537238113582720453386388883964176935685556623895822430484769736374583105038819423408818909156875930948399080657151481845054257719196608402070445038118900652857443998219324266286132752984306157910321798504791199611491777945283849302638965152477668163217805688275714743821053960472719767850436803611909298066038054680374559789340732244260972787054359283409332799184002775546437491219123835255690435637802539182615642301677378571373206233299732058359239402992274971317580630763174934645493959554333418086371647087970875372834580299006561162736254433189393120518320075299744820321805320167444395722423728865843030995090774068649772727698690429573406294748306960393280152365414797279944504708976513407289929477789519832766822405596504169073679921468148522697937458630957519227892839973822716791637875116789446258344655933724067700399670560921450232206218501477960059723414839890640804905508678318145146583424478558469095778282106331807697715473529155267972067245636744266789108372549956805495922328383897572679601085380245618771003853354480813178430824598051396868544526602036635855316092854416001855787298333987019407246916886237254725981661993221410969483908784887422619584544815526820679684748985489412091699875646386091221439087927790834817150167624425806623082174076765928542307633274440697437076736217004970373721296347887029057518641618778794333962764223752841338184231905643036256810152267783625814040519326315317170200103824251894488976880242564026785858611708305218560249162252353547432732952883008396561436396127768861115232221372183521038311472275624631702515110239532432828881022794435207926854133293368043033457170907927694941440044476876730904919557877492792485925180941747859882869776877770599611363295084967863038523844888106774164294572412543830625905586661993494083231989061620419969813826520482810560365484295624280627957875134807822917203105459381831897383630618005282875692929165766017120582701036718071912914450444404945318443096515841851731559138260198707526231488552576912141450335299661464853323584367752849828983886217029844981312651518695162768810636502653914121474412362259230306093094833903834002743256865549488310810755865275668448623411857074361793469337522519265177428648780297449616345328410564963071527083518473115770997369452687607311187501449684418901710687689949279480208044942824442443160238221195412418441311141005677483308733617228177337012317769628549820239109286288151436161331578884268298394346099522493501417030999116342475039057528973285432821663984098270621662317422877208565797173827731727532336563407187592016551343040318004077613122382423946159642176144709464677630981767395100448790226289542999660233864255007725776677999993042265776094061251509348356849677980463523289235591096052140141284097559926576835522380768920877964151811963279534318594005412973200513806225200195866628311695620045941876023653652323032126926168428206639318142060312813450533426776483219044173669636489432591420407515612497805989451140682905037094802476509367831342382527877274443226988454080108642470799574758054042841055369269934227281508249297454022899592990028336084822378519675882766383388735005007099849318029610017870315544766816076934346951732632118291844233394028206330691790121820007825734924993967604590589006863109432798762810461037524701838107502728940129916404705187080849526708530590163034447952141674224530407775610474289431395364292624328542175876637044484611776912487369652273909274435862634170879649826319391367072129700279236911248801039775478980989468539396750854194301791429410582762031374804263971256417245989146964448437150619431027973385456111379143059689317969196895356278434541918678740780908496985857250896407608257733453985416264373696308212053484636811349088817563860208300135174866421261814722779678212265282231823572298891361189429055094618377288950635787806301406327577247370592842918188407694346343464844707862401523788213560089408923250030269805547280625305918904759803607538213924814072912818939303270989505548658617818784958805280520159601367653440036187726539645603328527990530125072151385189699685641617600270261278195640574940463685221389418319198337298681385971661152911737892731033482400954972401840454038087196306763471586778085895403666322211603748668428692950332953007116989314341115329077797060048365394838237868950814669043704339836919590889749520988703127543493055767935537482171539164186157550140339677200122215511984727064550426635964024785073793270914339273622341566683354131751155431470473316430308231747713101127818536438428421121781239137928355150935277221955813742128450328008644240642603464976921785513286928237264660897223245374524363147071023375323208086700559716354442917854669637187703511459448645560043639285667669373706137034881838315025428347377875230268870082982330955074460993902487139591667988243554574762986602558010172258469373750702149421292069432415145618512409968467653093462885299127705919638342117654037982502951411246907005525140398300923451188597276852531292467036891306468330432298232168745832965776155677792457953047433011455344904651052597396100100819065330203967681429758096257698303503734700539111852208758833821748944876969403277364264253496238192976695033088575183695913736886104519447232297112468336694374026350209538328151327359675769720619202043058292120521193126461921789400142754262170019068777481181193910414395347471432557017545092639726088156621170079809052143424777294927407380590912713091918124439200162013412777241133255602684641298825394632662158313009587892836329694137562097707798791758237854635194781973054169367855453558871625459572553792866756973705338783331166733336526340972196356488223051149061468853708517680175922551369496351207810761100399235980712681241185868998182319524595899452044021627799533356765707229320597055734034801609726615233537728252169564315214668639421520382007918391054458108462958202232930836617015316030109522629432292463195024177228947733752469599956451646132430758181726245031971977034857927028096262335342132844385244501692016487227975605996249116388270043839799727533082709579674186480325580735667385196673083056094208510318359881929595782247124188759712518732703066486982708617307173866126238876212182509825111665250682396945138163932240270878697120432395812586223791967798401586223001669231402537947756960584135568995969298583417016358586296163312548797010344787198827552944031048259561702434369568452491591214670540148046135086609200767194722895684929060365841148712392426350754100642741875971983574919558669285082627223903881735203941302928229267070695085305694660853334398020308501272593718275308641596716911834025925690381220777112349920325836936364278546326009160982440141987895286601429128521393123741659821221425124868914018227891755503706765441579450928185058609365601902131772103408737586938474961238222362643215611497779924129826963276253975665406800686704784993451399770586401003122353086446707011362571697381841699162140115602905149707579107311398365840100284579930453221034895276635391210564374179347055240012302783739582125703782880278812246310876483425786597598778297902907150404347915442573216410281879944715999541786764755571550964221312219908167618703167860230392664738597541646819118963733357323796910702585573924530795834208995941291492619225902996035006709502442453263561668879089435936519503229741291614777054136104471937629218306514385394035547135843686633558825708163636988561526997118883841819700074998220565296206451452645349840787997520759694651286358196063752881649899310101337152572449834010451760763633701962280463514284579781545890272594611700697047439736149600289780800193231412234651249867752906203667443131241764744183452784083751500600691095136277637905049149583288229107988430808642806521083624384281335099156242000287900245833188881979988823264582377017300030926728910714023428158878671560787881014469309074274254886948739979001222863020976645464857250452905615196985239360483796143777519307056029540731627270597662960348685708440795131018339821090361321294500808690235223615251076328083151765448996391241108302384517800614175326271350362880210618631610279236151603744902086421068942126197407881846587948250203188468464198457021985949843384936546753985122266912328627038178537463284201994385828924633532763355775912600465607534800213486704799083063086477813765293166741388993145118379650259218711290900372866578592024819892890623667229026780271644577437405754140631412064325617996439717372994116793998973966464170608111630144123743519651242811911331431368951627137984302080748348080600900751737061165908653486974258731528635072294242298554217426313670406471307754791939778263269683001172953340886196125877445695999000871446974063793859510358114638881533065651718505284220221163536616611874985371911357627732610717387771666357135606603866292118525064586682566895922863967219693213500353002485616963337792271634506375339394384202853693704433852319652511183639151369223504241779269798628592772295553926861251560413788869665667039017231342436010890123917869292220942304789514615306293480947729004731279934084265290052831846383764787000929781319194344492019380134950608641880891109299878094867282570818343095131156393076113951685525523353338262720246782971002227662453461552734241993387339281664037703781324520580922137229942150968714305296838297843077120583088211779539132801740175938058251953251749030037431026451244152162972846513609572469000257465471070945567068444352238668258093271315222058194424516948330733840589266229609767228393048589115616261549202683102650457826656654648507941877488647196311109045416927222378972803247282906438268671235411134666291129375655104171669454694487954346268065424727870722548755872471104782294871228875975394401641462693102564270814449533701484221989377948998989453637225617974631329187513483627541691837050427755245732798435612092761458829514414602628977228913073799882856488395918788271196243411220368246072485050795015674208322037668626875557801497962044497500307364755386862256711580818797519384080653713156700032818536105416324035471767412221080311515728311284177315304961371557197844102646966564832496390342938623743858209351883515327937917435444803895049054850739328344341057248859350814917456451612307204262075354798040062653998049422861399351124617794889260253798399474570251814544473387495159956917991951957657043667029673545846182611694383982050841483456630566954033482603429300548364611156311648863459195941871087388226293948739303257861219895412561025676688815277470397811415012295928039888572793027562437855579109978461686882318453612167144292749737682208690596709259955820156220287054387219578968840244819636086898677882572243524697486899642613373017147070304843285556803173387632968776374356742116384544891669423531321340691471494585874890591690540307606454287698730363206255420122253035960625574409970096018210032734711903344378722090269427361365572557813640509017688695480369030586677115324442650272362461128830778766047220337063017416180610652668216965306218925844882148849595526940383671128047749241791709370349946948257430213570609269025412725688213400039836496784506941791342594633760776167079375725874423628749953017252438888235127897074939857630752463281873195463456321479775127452866377038798211216169709795799745879517721343613139907521842997836726759809992952975149999824816766082814373268433781420164008081802310796228656978407124015613403983632630646322927249501665717895328051659357679287017848967046842059155501400973939895032342580725196882251717126418421853671775259760696124070340986534252506596033463678138673523546698419007536656781225018766977239681926768352140464962667098381634179151314987587904273850629866719183490413490064064504857924308375767164110397405747408797460329915855514475841724096059230605646481300971974436405613362937557755696124864216228831270693340649240579278182940406461878650433787677660062449028047714396269026831044491744673501008643917013699555555935674278546406836398318889500988039290041524785056993726223480366890159612779813600883600219045988662937602982497161232509732383100591674538281321245690285135850255993402477026914464329037966007408315112691647146113805414042824199797103711062118411242108700878024669047508691811954591324228612577875678202912254847102542678715599714513848856066924448947151608662517179842404416541374138407787727802511192905032500091167814692984449859281021216755511563425574336757646636764798700781741706066322575363564407505080941010220051704064786200856401385337930117106557753164055475357688955630059696087717155756669273548018473196765856622770182542889700251499277260701887294150573615783258293243398680721481438982572523933192136598288948571761515230157416825449189931346923572454184651205255506959039592476627637045613935633263859362169210298422929916377949964294809455794089849535774223260056702046774185880105661880886236809196179934609757008744191704062927473126610592270988102500142794601801311002099225195578951902956638119638968963333179982348432087544893716084265383732061868581615593189339335458087460653570924964365287550671196534842917219233323512096639071281034941171889648220365530547257231642321037880493709517354121338689739131030031366278236091552905641812546065564180645931079754892181519841809901698522018608942489522200001583260230747127532863126161601032823874679286779302551596887774899198218297588003902221932014318367276888300105603440309158415373270794406141599727746604953755201960873623041874505722419222002836257343516797794452025612047780598559797494549512113892445169899520858696159981308516856749995225863804630418309243652828381046473602955926541462018096853548902811411539347415914471264858251637738289228221060498477102646959488824334575969534213557281318782321099710047245547596050726219202263657217931120874946530180945890329024779235889782678676532030758233549021162003907096350277065443460833860260511011773162486387927794865372453779036307285924844594343295759971477881939030794804076927564353038197032715387357944532390084914895883436269199062784558718940280193532473654498262833802357435816099468612953610611191105754492227284364543434741160550552850110890574197556508799337926061117985801266040207530145344718877227827492994989294163885936244583067731393895212718135160547594165801335270545142868410229636566554287015267518389636542689170497461294681647867190963537402661582212846587531210865748949607963648057166981077934666616111786056505286510608202599497701867436962956986969633549095870143743765396441831485282548101855352093005246710504454595944721239730726982866414467698034236767849459363516377649341277682891656785495391657975533705494222786048189924975148157235786634319671828084551002377028389311261443476127987114822822805427914952421742363457651171094097662970128797434767510338185758843674034514296724174021444786845832847751522217790519731906871076018226995534952334570477627570138503144240209848739597646855895722508652860426605862560496750430838627610945737899990348693659215225074260739016483477598806939840515653640001110004340791536332959254111834434688793348356683672220830044245579001838425285548654564636654846405957878079958077126891312140874242020627189430430360294421126228084663608188184074231938868943466837353248841635398820481651817477140742383412508617497772844895896044132557796528646592816905180003955053651457633413408185679844383814093589438636794055918800558329212681255142409129426654978298129729401811792969136887214047717413637093744639837035690716164498166146536385292606647085851911886552449775272006927612619618506491041415785232935341242147550070760904062676912117179261796652105835224087412044721310075269466625938396251788379325323235952551323493701958639402361312682392482595104405310504865604833022800518002020860461536319560488056426995599949650950378823293842180769951038110636064639966072069095729955344969076914387809814722800477823661300841332911811666775704821640079936641957900436802837507051540850542701444009755759730607473478691536224896995139441977306382720177274974955895720591090326119038167615269384647182948446989996202634930419617432330163497016369368251285002947297197580270542452362046814543232571578932421270298364539066119652785806392756735575017934482592803004164092085893516995626530985785477117215791048110640864118147179630486127297193253227908153762640664324847309335164057995657635711216619885310676050305803936509592409156755034574542547775380460231923986882393132151133867730328270149212659597636174553440106852909053664015880675085078752128113537580104132500449933008146947050775139024864996123888507984467069457047173649927489676991982894689181807388613925674036628290063849846575866612331178930570957098497505974201712976627756042809673002473234541273993039423077030383940825825629294030699902539150560456560740914679610756327879227074446323268974181953965853729975342441943950205541632391815768190155637798249313778799487317648630438950245817780629888138904089712419340250775715390675290612703220088357523928608461943855774543349911848792535117726164507770873602878205326106837374099819315269036111523697464153254084414654930557533202726695139829917013598263645551645722072700187026358328919840549430812817499502953887827872347972667891293573477353586096807970844625076334865698556233031034136818496090178072879125081113223913844967654298903873008543817989112572063049473046266942738504491440082916149825666411657244986299821177236602921410989569758830452574260608223472505959888212841857277292488585793917187880769060074589588532181252728979357884054004444196432040726081128275331858627971838547246450467412539316478179531012320980665166789462693040407419320347603802720834544557350711356157470837388187350359982512640894568332684657369778424679663437078321416825515833702757910004739020941449801108771749455922074530065354917433146886016948754881360674283796194405162458059005921600404444473568613275787061766353578762153515359652650720162616119051771771329678240717963609266981142703239978593685740299825249359677665773547845225038577566725653257602801224939036520376557239498986387468815484042084648981306461907408408422310576514249212566622422538073825774629622321605249196804384676023074562776320527907281357496393950675570275711868599496809772498918183725226267368606059086158006857524861086127377517885737887160226832906702597816870518697717876125876616203136060282518518850970402513701606775299011992357569435598435184515430669883410771413863916605509725489225075667620370859300631626826551058793161755639298809043442401619326267777518799713920089012651396947265118141153568685905837579802690214224241115768317081792784987530123326465543684864861519985790065993737442089507416169973631645949635176709071376033208795309383777940375206864568750843144456103022150744052285864067170670269075939338476261331616781833899198679289173425024396372694489974307119974121414763551240507225393959633963367944316066445574475447707066037515053562481872348397540099750074008888531696572931573597286628275778404084692475799360992591779995391764379888226089757147380709553468195371834332842675014677901667745590118435092328014213638067774920593475314923480721076321148567331224787801929855433941674782602434674134359886726408958703238345733063022389679528833635819547839480377476213096145748174190530038669035009010719089510181738279460636382277525580296191811751997093086657764515551138695733974533733399935772466044064170190444313989204477795881619199928702946678399520760371502059463098299600720472969836130052785539364682220717667906471666666750002237792251355892428117346735582782908912976317163106319104660653090608135102006292129381348244932127151144172069992708374639432160286465334917416308187205238193743577731584901877619441838864755328268195336593064146016683035365233181444582903518595147730537212806259503261425771446569644953109613559315609216009376022281264198801480168893753064608640310181272142688009237689631444041755366059944797633955811916664859702199539421299958215883505100603858060765038496507241204818361645213591059485262781115612588423027555682387708480099391977572378751588065644846961450970023863461672703107827606060266653635538258783540650793391211894514608583120473799011723685074983207710364154322396534688623418577728493568546746738633247641053956330320131704679957016334012263052175857850795245376654485621059996695584965503345357285407148205991093069874661808950821085058524006445655804621319042828919229396876922269625270761249247369303134925452000898608844753490308807739689606222711175255049592864521537486967113714017661222188413621477021722450853749884761068930381790306271965192753688064164820297938794191767756725748158568740794145836538098842072206467507116754569215021596810991147354600926904931097004478696754007440909290650622494716834863007996457036574137110407384658005931238356431564734533357089002849165203276840984707683089246295872145139758798288677232822772990449385062196891582224346391619529639716965239102845173365098373967671881144773215287085784035221244830456446921481040487685724521614152345646847718214261739686948243667000399037740442672352432805938499876328430191518317121175265558558595413330591175592331402581402865806864193601140802098927080148799370726709846550180697041302990231583305626061417528126879585795703866537903956631222930293269275476675736578708885820570080960127143902765581150511641690390428611499054116991759020134739164874462302793380593308788515684078194432532825288928699975318866505128188161092791964621532847848991644777413514124952843401506379438914774377595260130846107064994199136792002984856054046785866894108975140035655404233127357183268132126867244563151755466653713075195635142571056367234208010840760218781856092687984269935417731563393338381552262574884832754787701211666696063360042190650131408028312068897396134278386743349369951570547976701953798554975611470422770007114591449824655218254587059915183956611944459386158364290051327702269197112594047244922494604868280589739534739430428148153406983789782563338569965609018702729415056750439976528920191117569156492180016279599826178575499545154943800006623457890109169304996996903710874730036562070620529817091338937041498453126977997332956888739937055235449475887031188275805198478841633774612556506388770138120478582225050827021481357067962567103925549381135800958754327828019743427023947136994610356724734395860678211642753864308137630064633415984583615126944191096829681259076620959432216987915508204401828129363819946915285116971391767037763447311661792501552322140170245300628409996009889376219654501955485777984601205149817305282120817305816775844115617260770908517827061875921696853937566453424254858746705867457031387786945218128859051069147289172017127094868529244846622772034380356153510311681294692544624914917821521865180815482775863959685824032724913358231468969071066956555514042541843160018242400445248261390391298965516779679169736396488157412883376357966511704354208847425666050769687631262760921155495172255356150916396373919810640293217459299947955381139797472228599082426886544572333109047255412863928059049260714610004165873411848142452032574248025424668696168927156063225858486495124169819848520316485692464368506698332266903799795510484234256069580108848992405033857920851919660141478167708921344232318191549841857640458009345201285664148148408315281701644750261615447025818770299140572009221206955065266776540945932873852424220478480165350630379651683164749296709140576822843235167777336529799326773883131593153434092752006994114611307775274338244030472861698790031340426476433827493858911378855222338606901910217428030093806397301704524799925210810313831000995953611014518920920513761412835239998952919047313961650536657696456540266711182764031455683460706063705828447766162640505167755577567478402283400603382987665770233788450007053067417100249019445170991729371621863591838506851744695410215979402938504561871291250026471896183466982676072914227323221398127923625626550367098595920416273799685889392692952831157441511594290727313839311779891341164450338057105193269306570325538616755768288039393207779658191372767859579370573656120768178892497727154841052354864395903148858002347320607978523395109295889500861603605697528814517055084126483028665289311670072639364366171419167041666267953963025127878083280799172112266206744530278321527365305001284609671488372651880512980159933216762102314816023519354826088380332734466701552955843786823723008877171742792721979477833565528446328188803715075880966642464344568796803613423736147165825494624230491241658092174970235452256806403572001158839641781162244312014863686237265176182200096090672204967067536133908462093359204861694312072571411927784400517017672885358248516649230255121098312562161287277574383422826479829117996890978646273692825587264621926728023870052566514911952208746231566394833311210084978656289032357027817508904736199385831765997220203874343607653079755826083452803554831532389861063621998073907339759874280770686747727874967731198308579596803908216867999216340016930230593418480362666464268383637141645259690801606895602186495046172016339404505497247507137074635675208665520681058611012477709387115979600597833774052094863293233254160471753077309131685497478849931157436411209268282599951471362292865203868312929157751479350400257601666112391786673058557918983876010848486599983779715687414677086144580627393847090564286330062562397423025850206999920050627186344938338737799348709348869042404387179135645513433452842577014359987140711723777451299518958378090649964760581775461886694081646413205254816727677565694476128710773666723611307051317416675815001158756131954802677526839967236849891014342190121579756830292893036225544523652434200490624985439146319683805188398796147002655348818251104293451626120162543003284638648855513452478915165017363477854595400823130962626945736017178158768964083866874655758720436410466174169047823346534076946081520440890190622770019816422905367399804511702598556962259837638411799678584488196324793843030815761190606595331243305883267431574718814527069367642480881333225471148044006490681951435282562108825050327918708486953329714824895470642449343674403457411914465464757201082344127743423339189774822163931047714727051711384456670441959893610097825277579320649624228190308030032188778247387708337340619316289824894138159631460562769146936703874581068292294650351181302585728637401236045754841854131003938158366557408815259244532560204904077091724481570984051087874707026169006203053536976543410706589946097128569657571581332400400393784899495919114168337219822459859868017312455903212264751762830131883075848124055964399536958557564812633618782190981319501972711784323580923219338301160189502083856906854726822438845457417573142028413645767283060257998700832072770403309851569742182290894482394799295409093426839089055966093210949574082592994129346036823631047340026642733729454884830448398413994376183054518754378236404260470855777660654617042177530293864525792376569961432519492857814164164944267939382320991177958913597187677371288660099597932629866056894699844180220754022444972934246499028018332665548118784352539992917730336131398825357248689095698733518237975072956444340478920954231626633223007949061378566772511508517889689545197346061730473427378355970320394752937059235765368611929451602865915892261104447077642768380303173601631425797514075021052357118097976007601675626839914286498352733667889619904428726892056266680137269557351384758563039732501732788096499877063987690178157307604716094530877386716580758991183653244973576639827508959279480166849122338134004754408756369749428270761120943013817790434401810978620309820240451834609892849336077978046681382654977942675232508671814509770881339137370129341532232482491335433359209569455096774545214714343232329696927471673623526523756719476631744087979641739846681623486071790648163377886662831488285128581161260296941258371403028952286101011755835914330297243701085008369840826120126349409572074349751026526745632801997246226885133887633001482200320608968574892153431773760568318047161199307773742494237247143040502070400954567720374076227352241315081906619734106551976266266782045498492941599345267993804120719566333251631205855027430402782859101830358360689605924758293977812828071240913910829630392506006417819123107183318904134373555793610982637761628250234627458663887279339463190561513496251113605619049254660487611985266426411129523574488716455566855185471899944423730436199762321311125578538145601214387737120056965547023370211399254719997193432427419648733553615365695271925624963970857412634484024761425953450575085703038749552244945813415202562474192436668661186354740912801437899877770427600750166264339678518580497342713309325340805913614710523258084240982625218262776656984129294801590609266712206063416599702619087459957015324643820995720460913744376379075284127768994025152195241026176677839887610113728446822550698509487216483465189268111222464692407308374727418285023365692463331855844258730022950520432961747105684428412167420054356569251466365664270203643041593940139836928233126131557744409121700750165023009436321627217855963906733289595043703550444457579440444965075630747598110007975496368241846721518076864723701366808296281085779899372466771897346254123461072711918127941974434947709585840435975715688567466132055298704921637189845620525349555511254619709964780522124607686724761554593707856614635559292655982761250118447976633714446448472607307773613817176266707888162863255521637305066858250913129801901911522772780514082824412841647158847159977487866460303513887697232088979544056996118489218388831931747889794697627732639458539609085961419827706750081171530956828731244092880851317684744518404856193518477137148499438849607062431219588925765194661529481839592689772591459560731129472549381906192685048325611336394409813918809581812414055045116832798433301839993110741166386460086336752113521003308884451164884239610069053117825849397901086763268052689749656259888148997733353840324995775648595394897990774617956876811475971692525703184731936157133655180779901353048043131778607447920312756650912492498088396049657631608535865724288551521515026902974046242619066804682938200926978861009765969002474135959210803852214926111778055167538413078033255600720532046811236846378262028271970609925145485586679093634854625171517348483422304908576179199182549855404734198613837874108960480979313429009595589868070376099761504899307303973490669108314947940092372025790470735890357312910549322994506189162009678543368239296815023094531933947685325981857054089316748950289310014988448960695169100502365921395819058317176140426340221477957090377829650617037203521399517230747416335171313104710875277792266398125296447850097951955265010959539821534153314936939673243610596296184124554774909744462583855678546476050557554223085725800480053959623233627732157890782846020608211003458188590350442048466914271148581704054520203374499114623799113712984522162411180439817853086527523832052597885650511707319600890596166310073837873885494567585880365530944842572158969117308595497830752009559704634696652208606226179164368687134743454783326310642837203994090249319551152799197968217662335752665248415551695641630158891792253389499244856732902669884426743183488884051608102585539022493924719458107735425367807800368899189965123219092548808059008974608743663889581484989159555230175554192400032063187477827359619146569185581668139422946927419458475796374099206705150544392666245481498490259760105268996306144403572137964785365520617517246757279198849416541475524066418827256805038602131809538209438942872642095278902113230691797593938992538708856686592535406982435449040043605083927824076792658894063347638807192967487415483091850695581306646795442887164378228043882735369044753394910292990404292238425774093789276184688851668771673741179256330411672819325084633201396628751290225781759365084258512811784547488125966265997373413172004434269841105789453818777749068116612178474046515420683488008191635255283807606330688895925099911589385548969256456821012654922906695328543713461925502189237907863659535496855443036412011683883624032450217747420175841183466252543334992287654276438164930785594981793476541780926970534608259868066247320001352156251581021673311061115317073485243163696837754061826505944786637585315350823409986850934272848432074082461454276365760956116717537630847673180928964774241927074754041591834413690415958359155814500411691525274810392933729912391517609450550443272241260996058232853196425124200840407837460104495111740942929280747245086741149545650848008826200505744236174057772961860473643273976738917013451886087910920853433298564672211302513592052786091235882415848328547159584612605828819812297308050318650381862876330385360092182463874498182940429119538301133173837486402351405689936066233478845994255347227167367809785406682376437571947100049512352906169071588768158581272436522188662667215143095688250226155192426541007634153263871933855936388517649852251854810797562623468019559719159233268223068738629340331226594809054790017417552331660966485737494769165162727651361870017396909280588774409506576424361194765491869151523413453687202029958646466617626149543715909187596640716189112423635150995414034917412925649599535289075127273635951796322855082401873280621112857737301648129099225849825185861937303874073898815955995277196026310837209379624706205829182597972115055399455378220014122798756594963207879429041318479073546078004596977174879547487896337689817296553864726747830260949373895351020838933786982435970898716575652862199264012194930037501954725518865274800856163752660499903482929833510952450114244730426602958808183783162414660507220661971751558398773006528090568676355474707033221993137324110770990874603996100389072521181893599954423757247894009830669846807857891092963306325281520493770261619282560246432966820745724260571957554842234462700905474412775764182929065487961163743210054998623190701277134212754105793282871996898239761415051006330362494918594641899806242101182963239322479536799108073888247956843164492510091686977846865805502836681318016610387493817624984214175919308410316290824180267284679179611113016820343419467538983983990419238101073279152132541296123833114465104578975150055434613521383800107663891619314145980926216834432182551794280316179526524972571992993831572244845046676060404439983762654607010771327814384069779802340050993746224003981552825126535874974950443603672870398389210387026419058680283195863511483417835435590767145839025906555417743563615264176201393146478770170232395353191199639667491971678728887327598833742420755976417308722768370993577780369652865970730720058107927389366484416742596903822233775085235185912977628678858991880398911156477228154419682483559960255667541185321010833424837823780261178534762230277232907600025391193107781904688337630393903743990510000686392456731731959004689542838882098074037844255989411046777376980879499949403961077418288038295607265222420536592610925931555467936843090627347272162156131707116330405957374046060858677279638441335715445939134685245552966923840428211824107797416785491098599486551451868800782100105431924380296011404875205597899082141846792807461859085091223742480745952454474676742099990273844591382750590662238374564772968565537286025383257358116485448335863596117742732148145129689695945148383771463629626505376946672088097063425216052127564483998190025375250525054291415693351291957774573072570034422653319864439815856927758855778082945502072253159013346046541842167539899326309680957755837573353925855738888532409679995671053319345953140987142927150495357069961905606046552400007833193989731840898384832550674689313199263828191620786338244894857038313889465522888969075967602928874697394246813637463977740258847735955255784816350712755730902236674717039690365433330674670737082011163100604830205335357915769402856191706006631320117858389519146146032039592858367936060000540964649227609314309260699546460423101647825665394770645456432471643890843390036523349604411880752921723897008375282946206812273360428426627949432539116633209845460100399427783831983892748967625089156435388512185609776137095520868251558912007307779585069906952184728782094541754765555423628146972515234527219969393666414848883544414823311350851542293854372671091853624293845659417721299849915881060011542845856928823012775633576659497209590536017315912450421794797055644897824542796844939882407052782819769070177362337729912309771352911946846302641564949979504182310984248620432747914951930600009471628905182985741904975373138983974249799483056600859644428305907256423195470530322265488795463463110700672150769744148388308275342324705300461973613838029144296489755089763785212099700749624741167999144743672404059822730194046051587020763902782805681947271416617980855728581101824707579526917134011819415228929587094221114060051230239935861287894256000289986180492891231666451524346793532620611193578209602467525274932489916554137246995061565869238301236349583512648902531413873461869495044513356461423555033452168019019190568479972204068176926945655586333558713619006639641457639759261829908131152890037251582866122932995973893181772129704470657363574226435517174583813897819701420820417290233200119131797357537710598544934505554692411918528040023934447956357612970059013156399176608297641685722264858506940212647402613088077449004297263551669998655678069580218583013768136947124312456121872097718038271768469216093456954483954544324079622994729991145144325826016068399721432801691280680055204030251116837683936826837617726695901741590455612448916408590486907267142821448474695289743186042396998861032220012020532639625888779050274257212903672473613398996148394646308439121836366225066219466564141284406715336772422665024511615819058769781533141214459598362767086511222552689069007735296807382309249168036307543473262829783206940987176070432564187610091596173193977047158471378560823647118222409554445673534408233775047385997230964648540521184611921103491314199310293986432384283489977188306034106058745014434847230454453186835744242802137780467284411687463763504587422268096560197841007457925309151387529630774744924735572296400653231412162685122900520442704265858553664475818398747187653486338116995071076477509246608850433652217427262546524313916187318297734288134389671711871808525042973834475741536555977830156411176025117279332886854038333619643350035815408891458188768117134248108489120451185061433358079247841347590480261270495293820844038607008427633907858369882636857171370845713254454493151295597858597961337672927462010141234981988655168601073775009794352428313907848701788118049428526813213575598438081162773529917888480505506525481901788299409947900423051141460090364666715952801828449594435570731746803128125187267654293786805133012363792759834962062812837915822242994951382968586314235183456612911614912797564553356820671379068558411816142802212732808434133303214674870508267500687853606685970341173887993868056040247058804792292843592215102977183017293171012425349610518031226306847321494817019923980982473869587942836221434459825724597111497504446852974643180597007371006850549222503532686182173118018509033722922033073191467722740026469475134371173739734964556233345933883645823416431572184902087352261024340280096465785835447484228312267500234182527558277204804068672122834714851115529893588039359007478861688562282168226297067393924873663156653245345102880455880456226015682815659691718414566601667404640663131689732284019782182361386853375497880784619270080400722577247707835081200967626067229256106310946808851102542593029235919673907026976648693214306714259828845787251003593817920838822019975725292749231703746286044215298497914909453814929633434213887950128494805966046113069171992641140793764986740900219745616187090684997088137520775579325204108364121564591741432316251698157904903395428250813827331111676152878539316079381104147434829548939337116476308389596028223872075469440926370654299327924523503261640766995711702140608087446956934148876068216706827912351339096629215065203737591753921904549932565214880609500024331761172219862996359584867396558179104236907880239805207384733456864927485559253115035648569770083085817920535633602430084766891733015105945777254835915138355552936478328755562073196987156167870731200941183615754279504074974999934423576606734467271613921537244306759419150673871502071867506293507388465420331712868055814156073038311843895377469003876311704038937413598475689709040329818206068186177869897586604898417436474880432779333137832141068582373170774532861894731847565107555687437129301120035457919042166474027021028026421462426334978258870074475460278622398827104600691345153915106331199252947637371339213445059500285635205304912140898464940017649026478131022752396019960802789017491079981357822189237418505437200148346425823913898114519406146911284963658901149265679349929599445103465277036704823083544970813113684115662586912404539750552649126928171534912243461055883229818616568739626990952639564550263775002009170680356178129169529027131554378030093685505962239240245787186687426587925613328786410478138027352242346376677893099369291078815490205058411532416611141688385841277516349004951781492191407068371991650432052643200965789763314699470493437640307655712559995888966570033857018755939975184305141447037470249465699000791890076109556933147244545045651895675222042552110619113113891553380570310145457543154996603796499986164973854182143943525019997422020998821357841317818757528116336827849647550111861403656382560189579284355979847876940875282515991924507257448198479718958146047872299436539898131122689948319490106695228654629773863126999718155154263142300924078314303385935250843631804564300230319970616305626926108418617670725868388763961760964172430325786260810149059748253250879197452569429162457545324912866474625380838739412243394533611481031096903333812650973589949427388655056006984328193686151134569047175165954969163707993966345600138095010216294157797665129425960697806802658634126693970819814263926445122430144530376263134252727395847542900862714569048044481732504727638875956782640526788698822086916496464963007114858253756601702257958695610489406503323845333100667570999103240747809365070157511441445277642921214463550015923764862832090827443710235545125010929855467138947404698433788972510118939050037468997727945582113447954951681850918756961333047395180759471991831603069271521952987978703197474140933301321727101181129781261545234774356547241634084110808870790068000289023440875979089086184534578851809135973989018755172258437491980949672487594516812440806292037795057255933015658818304016706159261015233066744252443931715764463457724273811189106722427091460190692049797507729659558230625233810910817097114567257822777460979885596834554405772208665690285417678317944355269827198733122306063664610743885344307102821221762940079873540382583762674034585004072655936633514437735462530504851022114266393797330747420129158378644387405472437899051596330305076729878365337698223337921750769848814058060563186826269764519168644429497403145434072706115525713220046318226299953642118314833959565255348691185481084652695608015635413335738519950785026173395764022667074324419681389467639018344696409313034795787844450503408087380258698226660839929414599200766531147540608970065910481330677583238535022191068153211896435064521439606550784751486282731003175737184774948306261620436572652200547923522476818427336808853267149294542150367615056704965297982678880221740449742818182837891967422197851142834677853169896865122837279521112885773108580949195256109909262073785866327196275818652679493773387733848622405671790828184361407702676334404633171565807137894651553216485438828602232042481929786329166168901926031253083163815478557214641001106529494151775274196804380950417909689520300091804170605536848564743420493100624450319813518005028114144640911398003569921660929114170677469628807105275870852853579314311239350085647195454664590363725183031084298046401074860084460352950267879040732171629050021649971536199746600936979777896839887906229497047528625442269295298099363279377162897065497535996983661980331203098280293261422193428585291228621549174230747782881546381781475845999883513366122145317384024969512282066720260715364333660567516773769353432393679058470821270824004187514578809268940825037505213002853470067529762889602264629645124631597936052516988451213190926830472000943468773042274185295480482428217046481960965263599547930829060062330589383107338255341909282915643500995260143833116195737028726193916941829251081078602547542111522844489320415745808033041006402654259168425819351496574042366665240296233152321023999151425285677712577841098736811989931038949350101487352475555590141973529700907515542426732373790140728150047015869697900852235854839647588081551263000217090872105990378963326524732668531589373757671468016126359670752254003497146188730998994714284837781735463434978445576433165385308886988217449314861780757335055569567071256886250681477712317334573350785890082800481354827173687984859749444363931647449979937844601542131495330275185192606764394859241472989804018040970050751702674383068808963773292154256203662184315249295952963049365830469526548316993483623165576952332442453621756974059586994223120889986728697248446852934933049352618487455080395937857293747240964318708915939469658117371956011370046570331843500479867472282919013538389834239924615533491732107021813489348609397739602827603600699021802389990958939781931228496471458891523681466103701269020753472399453274019373516103092095446451575822342467204093169291424531803670998715445317282004364761895004252318350325517526831315466009393985728895269684552113972050024154264323840845591896127356197616455762098899612718683878694107495143263077072458166563054292237573350605946773224229372398426704958720476002229925359362874666474833514644543870188824199803678484928641885499319541205328710037697514424659950291747245301658844295847967567870531977278008789587109947890343316288270655848149492434640171085220420600765255976289612074159736244391303217552067159842636450555440312225983290535232009156046278145067527792583982996754797640758310597712714501051779895517850730272589326234197669378403617047638730023546351652757683509814046243284312867725832619801914124468321722940232415725031732382413787488039718363170080550327155349539402825805314437002767034384058238290600426694955181053270341176479330725733447520986054984030577230860830362846697401821058554188380315909400162968545123334940902660615027755829852583279613909106063040465466631044110257032368979608766920855827887869928807639016862238299646181701710282475695060512975385539513304559916370633291069569665744380182672605200374836642821611322376493728565344861949068842888183665401145212406283776524044436243690918260776294722274477028998431727638655309560392168413393517174026893824228175553667231863032788353276335192229537921173031561663792568411785427476434783842457059069950802093140941867752762563453690176227356129695718440660489155642514486656118831793424119528310868026941992424040561676153958264957439418214210357220572213071282911849352574578433769074601518198137739407717063015009615311529805629186080168327933639140623336609542097843114027861853624409584962454837809355584361997579510589257850181459542055986718932731383266489859570377536911359448074226250488571102490504339376052871777841859199113803991945955664714678446758376053745197294065483523626404917678194992995634738020162768047838864987165359240229607712800274397812989390780577293673127803661187104498295876913099968815091760308054437055558564660377774373559917384909761758941508678744066128733005263017703536064321276562347506785070643430477061745219290999682065502803468246107327700473321698533219252896039421944179654050698530717252694681188601493701513780419129855578124111361175320708224407807323130595074258068851886295220673368521770274938150467571822945989067680999387366254519475887725279405016547982820207930142429780300469003345275557077326158596084793535533585728551567785467502792461082973241808370562917678410476848291998293820276651738739618678446719972654322645501871723133478478032659047876290656471973152218446810292298161331095243308633767761367425551358842790310082321209755601366984011114828803374749721235097890167347749206707786675147769792587107647932115972315250130884615743911620534522755717588567397317822067177171297779724066626882938537103741842054102065329686375679645573480529719759663969599572239613734792152255973589824305161801691487850689659208900238168673793794906658225984214506336206348060418304646967206033043691537210821117949493437574129195713211150217181098384250084505900027169890757015937807319344823947823148577127010383580064503315652983056786310459538526172456289660428107440557443187074337193809074229947414600218071749275033328114448068116314790860607636735693928149285741623185423622012147375366610988344965250537273701400354099370818291207654103080727750794336512630875016455445069064977352917470433485211715992819967220253597692846916687139230740881836298686538506370651289849487138121284962007177031423412799788091944947089011531705344333210024195599560289995081797357683527923007518802956804086867373694747189030361181524704018573099812736321926209366193426041145900276445020468260557434585860452571698050221842647990455051424664544061698226414781095550493443525519781215680185678851821679373851565467638939099238374508328995185408537693538520123314049079811983887865993916551451095049237215814485097712182388506422548789918500086266295347591584788935904767844972474664601003608859412264519088481537827600623099197727369855028635099240439581736439541692085774934919646055102743250721541330055910153058504995654040571862312904613770154358203567594082442176357146836730116794758113917675418186647915045030150844335432117231334424615523901988002850553340317790114058783258058811703510984813563643056118471343749590759245424542681037687555647503975161535607086383564109558357752897382582834415357560265699283616705307605593893633200258525120350873872701485975938907027762794853469771272213006257637631641824002196680993002896850138626362981947775084892620345406960846964970808129067052462191725558108531557089665700785184200012626246348521000450539382053374010129658174945168821593150080191865554369638027345771636631620529957623605873960909622416641248631049328368048708348867973780639687065454269015616188496452166852529115031579659195938496031102128120320932969894405474840739908154089332936473097114938307855817438722764539804855398725572888452064932987181760767005931293379116615124163392548067544622446850508331370962036325162474977454186067315706888239416940413697732345298483403712382651886891631125032024080231175366896065215307328258942118227896947068523115498961204220355215379601186956415793979365098431206015536461961788186477328813976057634927205510332239080472109235809030599520857927479091388176435618850188780016492942197409581801495358182450878766717550048931597516940604842276013536591362937837633005727562685081543696041460809312641376169011207141156612875125770808452885728817508653322325291761660965455955940864070961562489510250139458045814589830892517418866626425129463342425896745704903320423975668371104097963716305200439561523016768461737914581669060511085627992434540634810494310533757712813043534158945595517899705078860932303438607500338664885823475279264909112432972129730909705572900682327577442115579050957366772788943357559316189529377388694130496415538825791012229182146202150435525865017091560384316312905023449198811342416719106699830081624627972674881529873166973300620053078879976410593760197777459827908959383222361214337023040856978254574247328516893106124178055632840324466833160015080664220800677135070474981176927692888641052015351329086090875219495508332703870213372344742553545854445776369263883716762190830475274684982283592752289990660500430447604015698758515853661952474493799848982494123848805845450019589115088854467979510358092474603485567325980856774475351131093995223507710015480376478186720183357268977438346531815502294320294563742984668804175882884042052315416821404635380520266179639562084929214662675270687831965928783839710933110566816284149363584955184989592400954434608664494017393768085961088823280012502552451839673562785494043242651148621434781154456567123317165756115540855679083974087454418959426171955957208913105670673122968304297292662394998512323169152193172585143933182279405775555689097386396338824426741810142531169584187629596070894182502529753778036122940832585064112416995960256664546852929501223177106128663660735083157027539234444293176584656779115505553809341161416274683056133367401779895566675327663502698214348094621555090686959781594207358152998311694361053978079577974854041256102472755619369455689308128976156659895090063834343427919910306534257549875184684596759808929325472933149559231406775766330527928639434966287551502190723594155758844789694104942242979089420322321848785280076442364771968385932469781183921918189469020783812804802929188109925223051449690659377587070665855867222977822944385386714650975720275108905628232177246024205221913032461608580753760296192198270620058309329074353094604627808433832713810634702736881457422978438536921914206017972529309012324694091104561233664229026033818636683126907277613212401639304877542649647452996005607237791234506953879409581169842270420679033153009730889218326567271123075291315405191533086708842887062588669492372652453461972898397887710459273719757267654591563785652843635955371688029776543045122043270664315747560405259835550311764384717690620724834708292146628588325512363182223659369456019119166622155181188351032260011192540196133126622198511232692184311247899944956176561135036225467053210603119307874939985638087245879632463707851739830302536051895830133690962407177877266423005224849025235332780482910579254653373345170748914786749196619970668543245289906630408910380237799584907611732157451109204099767969683030618332904289685213061736081097988134953507776333803367649919330743188367193317376381622115039621242916326830277157973271576035674972687068258675645878007777504792973534819278983474849016769939759650761783231660090101545595476834759219174773771831786381028999075386331957605022767336858426262058642779149534513297000264822995305895705141659033322590620441035460841257464899866625286935980465636047056393276388291747157565050226040848959685148491408027277164556582522044456094293658011955175275922135492835496536417106719848610315017400507377540677492458879710900627142102909580450523470435193657202103881077660396699262187235284548815982923286950746523149807422547217286252708827895428746169955742313094653690353220117066901732929441536359785268030024294633424373823437722070128095283737636847844870446224011449678989092275819775940440482973159719687306478446087878938976487237799748941053922708833752897151721389226284072529068410522290882095664425000546892736826386744590021193427711939937604922330941632721143498807130149652832143988663123365173324016009750671978525271741367683371343282538476452170462603623287525766371072799425666265681452248849179369567201760328435039893699165496184404391750373987639389063380898409324784928013438555324963303717602867717956362958897907773114637436264816262763918757221399038194010140572877995151123518521092825772324121067370373496273810867397655090533576012450667332639891150389303172631317324267938079018602314251978871193143163587219441712563283500815447806497552419892034675580172929717208215522896847572998126384693128949622396803599621175005332155798754718069550192108640284643427895131230929228464218122314506293121718517909474249560542938376726405111520643506062353824288191481362736734476401539214295596252621629142740493732530435264282043608971581592412035864453085245775685427926094693403189525810613726173704797652653971568339683823057144575138771969019160486498698085426594436437552204390214225587171539668365459947817066221629220569062299124567246797308653136082462421236249957827665115195503509313402210421907901826221511083053729519597120530746033705906542468949056534814372055738455741900049112909544100376544510993422125613610619121424586992698897239780836988229017376875535505971698715645358489623868021241103753871769270749512771725299499749331709369278481724638619459497099531620058614289046619276953243339169194469706417559074559383858631854514531530591074159179242447546865248560812058332328080707348584086530363054925754318708360239354599385163265876305544887509489429518166303860992686805988000063290173000200010447953055455061496736886763464097964234787130955453164299191364075715725273813718265003187686083167655096258453645232129797256441013531915565211873878309150473380820175403471059603853615923886731551541901165948733456781065702829627365823632235063588991292006287425373993021500577805390997406957714948800734865585951814250368914910670771471950177541250515908342144500047589313308498028114667272590699432943601409080045952701148301920185887954724166643090217195668880805420198949237341899360508154871058828959530633022489764471726145554067359764474504351596193004976600962263895513242790647773603463057215249668896240698273283728505193736601671642224670871213263170012110347449927154060940186671230396174256016802013699097698792056230232871006106242941534856414804832961031428211778235832671020571647977553166971243003281519879788383602881292141427657587358233429906093461681628925038016998190289612235034258627636699109054911220879403077030302102069342810779545037204660336299582582371127411533151861319581972515667651027765698185893662630108915624661100927100803906087883692322434555829908685809046145524519193584978731118290828888722031513986874584412675617101086331168355869202102369901216686560543568791404037696983850913347187349501277637734649386846541821963230192076491491271781782115579134456534814353168955305567417957858895893353849320623237619518971496809473200018051054227143980140986351411529461859455829474697303076761002139528751295772802640652970045422947400169277943420607256509067056676470205533075596892187306053614842065770497622215614954253510451704198952517622210460678126224667323116054260934400210801134556820119670289236400331601419905026166709942233747890348204268091301867692379047773646082231675906308045796358031384259243203979658635740291278969625032273561916754808513205053422997387272523648346486065295551803392067569262300522078766561781013204929686452788369960234885042195732631750711026426771399301811906256958530642849727975842160123406166912468102133843618079180284601454787972741093385188075669814135232146511040137622836183893419876882523991375346434629369122673412175263146275596338161972949470005100717383216103379851547536996396726069794436967263438383921637529565197712908600011568628668895464974285655294408460166169958885136874525474402767830585979632068858454798225658178175625694638720346959833618502042703428747275684915336990077410447909524845896150902932451554992475107522303776503851577197386656778161856673500158676123009029342540559996734519376286094152553638281813913792973969237057483183933800009425798899930083697890848877339563738510407792073986728364999213428012471353146962823677207048989757501660057459732304067958916997685319933337962963572108296288949351156442548340684536366560779009669567981782705673536914353512333237203705022417276634656952941401886653211183665526331118464048513592034193210161296554762898320430602833288557870435329090707243714787846205553234354520088141209643457334790454972910721724957926300566027463014034841388913083659233316720249160550748032048378371535629637299036147301431789391630782632981790633155762869530886074133651941715099481433765658670337866964396114219679719024000566320256635495261120558082647047262340350206897065971573287887827351643852171952001907792773559596642205685047231050646355465685988817460323541003141450572865876594003932242911848219029150899347473485107330784699744496638804255234856767086040300223863059120097523900718207656686073983626574484442354457457859738726235192701835251632280156201217381311167829572591846332182736746042554585094675924807170883092919144107921820552336987996994248774696764385588258173429290367696620635960023120192091100360227764152109991580348185769235421991746583288875385249417292696763774285523295941535198105058431216729876119775772084496385269224900289379444840532061248803340673616465794328391320959039765358687035538918645205556313202890418649251683805980319772234933283814061613898693298802735091590996476761535727900082360445392219429280689119469066299285204250508397489244475731146968038971884228379809346647656249674285141640777841114504142852700604281495541778988106882482977881710930780874827004080662656416036990329570418603880882587965024064556871841382990509834153799742351515692038738136366778446224255091392527150224374359917495670316647778980135179934919104264379781857178183079430873617003210240038290721588722865192438098488284572527450208791963817715393069831267494145968649697286936435683807962484051611916937021936061181211055783003645997679666952846419527855245367765168521264833884026454326470653999572133394372201606120685861055265831644617163563067245404076212499810246922715241410104891337453129173121358901122017547026982900712054074108962445384117560650481200378009246405070341437226487854874777077357576615377359464233097504819244062333507214084249514995467434223633264900598839910806682089509535181619549760475487549470933417137220129383526504044608036291779527245383610548762877279850955006914940720282872603567202457573624739876497765361381395158286436468305935042424543828428540825560332205849845134231135292065911528485529602336994206258186705807823236618159698372462857640788386337244904398911967100282233405035770390916756178819381757394087825998811739643827271402415188349093744745621949978197054695673151304260893957950687076690701406334415101412731534479173686984982475082098025299536370256485203546671639856184424611336407235018372401095073308635030420954086417395446072901557909077252064113938669347749412362806244925814320202415592034721687041991147248426993666271588730863236829566162697626018493201369600743369485938630466272828599189422708251398410545907171938359732119377956548581605230809854195112704278273345460732384418168325682738525640054700262684496094350095306842145589114080333338201850827167554671377309531891622342337650903106165179846429231967762220792362985087836304725590132061682262158090071073250588045202175405443718573473245705144876880364316929140659640704552228503734653200315758759342763027288916841368754050456963229686514886446608373708351251334999122975099348348148777254924500878923480640431889756934559820618639950848174389210961662469033717316613508471664571369414610315049612512097168500660527576197049940537718163202797331063857473234979587314593850879112554396118110335160509754869663810572879767955959437662679411703569797552027733481355525260706464334668237905065863445089324465289464344374833899689133786765155664607215748881446182937693935170196382115763720507408039809270524215301099033131293155200432984645364267816103326086878208666448495654433149573646130040778644998755380904276521296640718257641696732037411331627665612575190901273686094906816960521509431214793837856166721040015206356455430902650505688999410174117067420337645318977084289451175057846715968971844119678889706716039583066215886896797864302768823963067417361582027927856744693028445339556413612366325617455763637485202144266955165237252724370205544229167103026985308496345306930727811446944460312141810363152030825161091924738156547697552677825476758727440516989405195237135555519220760209745177172622682941059617228661445278050561778026011742384094925048693144517982605616879144440136854970268130675981338815423068487115671866244476273598627443548830489108576704835649464072678028268841565579501676956399653972698769905492678940469267053636243873044204450566387578691014496746916960437401135425038304138456907229219961692994109029180124828010568417138968173130162659069913595752807431455428470114735773579200379462838399155911827192324105189032139024762324110250389935393343475782679650641950340942857706667176926445555212722990309531927388136816617013149545392476576821563113137765903881375925629837846249611988360610264620121745542562319438360446872784480897988471931650020850311187898263980685449024557434633799105220721816416099751507775836903322085638237776333857757303529828674238931074094823754012358187027818647946038955882351749438199403878318429555491687885646786655820956213186851318106623504351683384637567187713965630961104374626710019972054079870174463770334775927213463279974466243186690829703682331788679099980102109308465744415138781600243371999714745770922810444486630359151402855416440620403753271111575620205968509167678112683557522839941335158660425182092195768851729727363677421010671630562884414522898204283053768859875332632899595715397082207007285095191187485148469119498982428494049199457898585045831942946758621254362682828877842251024470601377473139622042500298239292315524096583532083953032713920190579533725911692713164054619915566712041294342583744365261935475182762561228463218210927728882357337205997959327195944822333446714460605882612019360253305286647352041051886248663388632309932296080149442176930975682647511382696965260058386881464422848600378238590331252078621247156846628510136803570447403425019227276583048154536807828659857395493194567856611251630482724791618442452813839230525055331731371612348465043998933731260253416441304476600246244970621817030363679369453419139667765076201848153702982472133589349478048579589846119968101879464146542293054526480530220453978624441197068637403938133724170339926189957810690078250245381331029566088876471981530585821048901500671637578755555382620845837695238950591672853140526614089985530895763819818307895343644375505908414641918909754852646621880061476418050275148328580031190980287653044106258706225272174845591440023918733048224287616995307156510445822419638285741736002631932992414761963550029705310551524487948666150806035430544814865293864497994633045955642284364622141585377353942163896218443583771461216593603871001458602463892456701044306609668634651972365988444139696533001275066649592499420853733217381097691569454026970791783898927375127134801316111193696449683146685788893382692386504133975070201649897184410913424085004582919677172853383906745040515348409067674121424359019192330188589634491913190430477457360395140884587875529032704068526543594140895004779411405388760066468513227457193650040631808185554259657740494734687648557187233275173649849436378923038221162215745494966083969246850673679448743657697212679245961920211641322111808483365311043050817939860654472342595010083593149501161078556094698639674115154887651055019916948429332348688713743547888331128419255940784569445175014238611973977323474753892300782713318749476604209906425390693934811713409247373666463073997418152980857335550989461815288732346277740250228153783950270849998324697231457468475754882265847879318102104646967321203918421612736288358372944993731063067215627690276076881058936447188999378977930515596550976042479663175823959712109849609640025621381164992364429809072255977007868133940370168521271678358086564886635182543382354463168226786232241370939114371718495502058969825271128940519625682468981159645856219201121280863349073557519975414933491252206284554737802157720776984434675311022776202667212575431794637885440122293474816159713891835973329849011838412434607477307301418660588176846292745589742406771511529231476037014741203429498253995294779919371642735031779388014797962877168997039803985702588921046055655599219498154848834257329809826801546695595934047264869385230119231828084677527091192285856383589059589225168880625343458857539406522950129023079817430339376179669047849570280393840311288046429644470402635198697845288767192628944922657793618274569624681531730052990180880314077870547301556079961399667349730526232697897946958063641371556919367412440002622296318592553135151031886554045226116548732571017316263221837773603801301954846290337486823578496922337977050667102502949088163304248610231890872275614569824367282591540472520438565882504089389705913680131560133065921683504201565293174984509998148981400962944810445751353529718998367488592226545282543592159257545173864645218374918980570464897010447367958007312959523159000253001861026904808454469367596961210788111367516472937936766344642361200927718616752869585442365676533275176039508833648153915016923310252177195492394845806595095632982381341582145296456482917759816045214771413319595410552335627456264036081597440678862075953187789675106223980754946084390115300128157906389100842239049332038314620178836651878945780667909918735271820329455133346310372090531607978632221729345168391566410701286762821496818524868110727942686810698712565051032899069159808779451155195440304423892875054571914639652924829812133954843373478637155339068285283321277800623620086450070055193138504444329995927948311981385514955155309221220966285792861759115876560088330060113049371553668127924634319039960003847453931539421438797070830973808384217522739883412412477564596162880923678094584448330674621617323010014772401935152143093162957628855850924383589522799295166610537124437187676351144139060948198274128173400801169610732486655761380495242503993011413181606175793280061808194199755476087607864934030080985454522518907303658343871984368789863150231743734351784665134306575370395637595356838780002450158969660175493831354730259767755814277445519375154885812255739683365044010332976678619811102670300417645767204682983146753386608801350545881281212741033224746386072587813529922930169718112027002100211782162570399920651114347933948354274391525108010832072158478352579538596316514347472602350013248759195105728680148287818165517558517539591459360434733068978035249573265817077961629821644403832928539577368114549101950708362637194702110010276859912160320723768139377777275151434994329872139340943073982479887376551633459794102080348007086502651472319484532856479250203960953523538456030271131890450293524595134491189546794576077456422942216284513625310585617695905929817769789154003571032584571958982014058442973044379221957639950554935787140248617452770805413327570512503013987398003348012833384939610799628892709788980095192484260930357183564445759353920199341972437448253453355467934786065196892050968099828320362669059493373714890498292948534899440243201059378059045374863858630033430704172440853718416553404107724069137913325323513088517622560150930216559668116748249245623435279742379818902467567732271437281532768106580401276428233433261444805356855825545186313213309249549753369604951502018755665504613589828942920635722470556550276347697482843359924512967609392481377205919449514951635628365992676667779188150268496667479831390317499743541874704442846689167000190508251188527555912376103936686283701608881017775283676075515257318994495917413411778409485249468443293926753561932823749512102809936489605301451799918960643223414638600315177117069454812876753483798023502871961179552323693241084561970123132083253408088784967460076831221085264888994419736431827820704220647607587347674756061568866552932571506683512871938587679997406352440552030158876053078613995603186029290077710403621579308809073437584292466843701887818471117856133029708188990697847138635460489540606015387008553240262589142945080592348646901305397255135498719396652093485885204949000619816374285633257514791963237158217664555363507650939699841100641310443265229775222920029163065335463067801357648787399636220739322649015508756093602089441292813579942995914373285651665433549124049586867024205191524307281615530970794152021572009585994775442053681436688258077811644643969297966268477635314731549261622603398031666794540569559595676570916451212530090702664760174084555521638256955961101512328789912472612995405858670182401104216909286517498901099522291788717080062250701546342759247214865364734921099386489063664902800175211948276290799145759397425858349676550894738260016164310718807248653495662787888412851597890636185153118534724643310877986641456922013110528466950452285969588019788053093203393786360189811986382886671153815248281927853001291614071066694942121043726983017422469085136469205033472483509199638566005490943084771859006701866939607008846526312473013957332777142072646659787875547239978225288471741813940396881869452666106032921131357320995775154671693024526391900348024031642734175784644708280752712952846380764519637029113488872294200796948835365849881965016842507259278955423555276767790142417642378658704623556645929934783953498554431916125021396953153969796256620874920300180524582829689131563547951268640919506886818261997425407758578961218220849879954788151776464137342038683428185026948190485550709321065726782661738841897386969546128539034341176351765575558630506883944503490749746316757398853554431165795763641671873767131276527939745840809279182781089231426901303858174829882368195584556176589039417077134776288441044478646043418925309374148601059894590462638271045715822604772423382689379933797366986971813766048579460438568144250547465402341074926069796312409660054963961357570620250563281722742270681247994048219871228323801124502981988842336749631138376651828660029019073104813804509643997174109654276365496848625792556724187331052659355393810828933635839684073480652578166422231897403844788822811130350985400610354079548205452174044494770834676693658894267577349253431258701433530069055322525126466904023280498119843330692858155791636520898789403724142532939505941506506752922950566015270204148897700338435391307768586560406361993880735866680820789555339749397987831755581407560740285827855567147395378663494430104141894621150527662311807501335007403722076647771152739726278037404701805494783916584913962067493919028713225589096123342039834501980616269865278618316933582660162329498017318098764400606391471627991914345493931676484780466246454466565924304979420535289471494217693572052775334240507454989954589557128439052038922265727423252857665639235602309719657085678146085103693616077375006038334881600377233163867815474310662372678000969121368220385746180758233518220083094640102423902339824729780517874099250429860863100691999431384061450477950004711217207176056097568095041406776429703829532155342247165522650056955477050891501093833386932924728327006302458911712177848298169618237454591394593260685978239434406323747195959292801494164353541945224186432780009175729203116179199617018164562484889092867589173603371543529895700567599466290185203936595477772713348400035503246929715461086175095730291255648751094813669051743012433963976387043766995994654294636244024081903147633886917847447994608128652463652298612168315855792995547158524910421921112006649527153575282082632472787011741911852448078050223028765017504649383461480704877876028135306011050341247756739812174057815174518855000680008599586948810615510365008559423390125718585300535237417787970100699546996136112303952763323705659249032181465512415467283036145652231787541926356007919543698069190968305464096127679657329809589184111809747080572415999267633185180359627187529905422062754012166365365800464066824428513635083208986968747482721417616881403915022634659190343804201947204884544797637990256982765003999206057285815654834991061608074096223457678746970996191069745090632295124789330540650004137405723765056796140876849545987786776645565963592029806863035861136530410846632301067955669095212529139794079077234996186427710252995014155346230130892106947885241585261000871836903163993074468004857763181386283418402189093743087350385184680066705925091963584867363966641782356380149997749674379716432798136111900907971509208792800431635780345436077409848879169190264496687918643134401835412349439930899472577091725580206159263372204304801030191057969237471400959977555588388412843958404923400959000410882538921489130981645216445223313647088429612394013797456265709037124511997621836804695216564674439775220559654931472786474208861030578631978057026608385779470166046653981000456614163616473367883626919891041191880401378632489266262515124103884272817492654568090485777126765870557045114735815986808494745682372031033032941948998718996675730189570244376734727219964287773405601505983305749114736048517134444161557864263213964275999951170767052010173504437049753830759112082709426741551283741738341219509579299601063263494106637798344380549502438098886731020229019266294578003963462996410870580596397209850313892424283854020787607844493761711111934317934153906891302861835682893205326625438861943068133456792950511278814700045838021414827857471225814483495364037022834140460444947422978476062527510853897032491515588109192766754343605399934037776240330088997395876830569660310143469031286661735623681876394641145148124724690806335940379126265864248231876029736539626324740409392248400445137629726732971090154243676699644060430773749699708349780416093154461323479829101147734429348539765343767413185492838320987990073567911182779449238301357308415237064611816047225887830528253850556547981747385942568718721987059544629125002030389911330689562184730500967429347082527648496460239186992390171504045168118494377506603878459952032855523770871513305203569679759905574362540336824994204562664565797029933272367600362941482242964073663458445312400825929381499438347362701879981249178826203958530506825611852658616960905616380817845068444907780205198716447992507791701754570636766965941667967716801773374628072722355373282625005643646906909074425755184775542211816758930970444588634527546746694804533224841485159594978028783112112606315094056913035247680309874324977933339924106466653648451009907822841583563004305608641653123848769081711240943580252646913852296959783873287092227729165676818548739114757953839243050327546383932929625321848231047218646278299864280540801842742428274644511540945567515448639249642230473765829512704836340639271361781731459911712183663671319791578628675393148660984252660128998000583909160396966854058575492657855723317265681779650771577399358267912999154481104303433949580480015510591415259278736861373557488192666522611259699291464818844816671534018482225611899144391291892538776440062532760331111105152215942921727702309928496243952502312385473183323022327826312632328828180237584350706344981522520660967513419079470708220661813764545531995869667043942166843524357667156766235857321705982692433361573197143862599484801150862842222013063646317415735903150775550603669215223865656628864462657303971951146391326561228951917994237822554136456159859419614429912338091584413734348696471161649523276979981096968486304824062198887186691893709825025887165912476636269606737281486739787861706438620605017101830343071103430053812725410287953868776559778916165912064711058675614751578469378143316911707209589695650161336665827974820595872738471039227468230468597338261218894905042263387575501702381629428110501936654912852585944443259885738468308572539337237148940109152860936114859113044946742618109004162126570721939590194738074685416575296504639833932744847929080730875244340637209229809551342664779969978813838734423175278583158023469566246002431406779643970569594800794021901213509993112666863444606210489831335724914726050887259443801133886619575280145219354621294014075811135333036956204822698493079495062682923296269189827517670567691108487708693178927859862642085156495683495885846161500176289410351984517975167452715334659627363649245404779650604312225960112207870844459242453496395792992728765558997722644177073428837834555373371362073952753969131619556395956556538450421159670495160867798375469518910339171268506306604086479688956054585318267679298180187094506563818682269390918909221755510137064876836660386032215859197578101847613713330264594371906067419865979520236657906755464474359599754377019868336593066197696938628166056385678820063146552042371218364299616609461766493109257367170797457662739681409802922041044107923477396027812845870126491031848025622868153505422602187248812680434646714318098247753968583984355330291289132668854516577038302881040766708750273385866032054606389633855548441564561410260062774476609793110774649265797020151816644351318514440621845991514178870430305654308223955769787082249386779188716023194147725771002743568712053095230345326796853452937320162204351882581208444022093912381226436247617624179216739575409237381294302034028318389545028947190882986607170142939940709160722593903374167533060240393107457823060463741727672758021303132465890338154625346626944466577162920006522341578654566376221759950333490767263047084820017831078729398956234216806262603164055793104119917375897931599166395931203749653087220058245459341942436423850769907365989904320009621055607030939475993155878321329379078836310460953370410236023867134919013779921158982847472684128515538127153723926854232191055920884409831856000782876009332128653769706599804590187146811725433148702863692527093546512638276170227651662709659735228594328150244538850476120609067192142782113283392132073977468051254963391854220770179249857674476753404030402464493804705078203110326616680298865635492544569326744529106392722755939876357536630173212617057038558385367568087618933248437255307184050049421866911318722036101210796566254287422086835002848725088010709121757257236778619065743194474406128546141527903925855862695598200627898301985747500781460477622451432224064926755076611835136470592791310471647957344606722384029473034038464260199326940250341341781452090815165793296507855033477906442131713467750231406526062517211126432593374952077948020235060493480280165869918429048574572483787774171210680534011908271399593965044743957746312358755969502694013990608014692537931671233629344589864867238149187263515344863647881555175146121372414567951169847589288310118162515832432347732266292640026973824227171179307992853639569357812552401036047055255123562137666934255992578745770524355214642288742085398403183268497129919924770629539974186250898877710505683022078247629819980645660420828093494186782755789707644402602865505755644324361898503750961466206242397867419733954654380225675427462659979543082857285312779239744633819170673478133097490392267315049988046978247031145482022627064022497746040724334109089233034592539644589241311878094339745343937750863059508477605413796951583682012517989433843781042416818371446250348726455456875367977991499066271149476520288320968403466424270830166265755687149163708492503909031277567130816059830297188735351725269838120963009557590069290547178204105347023972968722049562755775424279109491463946230768392406555364011094407084334862590115798600661305248958195039757927478908183514019653067980387346907067480916909934342401494497579778430139776975086746235546708372794150621611191235816092667158244859586682878056890476353394090911992536287745528527657124674293197480785699934899110797764511963279679072347760540027727680027478438034400442206353134422544588034063879641412286714057426494840171124489349478836497623383073232521009690258753834903408825149060886094659576008155430730623694516239530754898015317702471667946368448165004031641495494129979376062721781512880419048073950057061720459843458057713399363325895661722827045518014486366667804841067162669353060078628122126588570166244113345004465181747667203336390513609828392441323008305923621632163664707882657026818929028735940166681377871922617922876624747415965615584790541842705387918308725489479140684987700540657486924602234014680264424459064087067330336269540989159010888164842332835995837922508828700687036117377684256184587967704048012874351083592820920994689089336254305612575060450558650734521842268880948908531827611091447698254330081248489650779225379770761771016382782168526494496761587166448975072372243244657071127022040284381617378848664991244090696127555026142088306494600886024822472968412139973652456644067078997925153695770843116748068652478568462126170545412375224729279885076434867758679690352507124534341824069870895565147581728950298218317073817934691480012823033071758958001996366881017371990170167351939158207863821144543038338789709011439800690988930059251680163528235977956076058608472564079275374990320136904706505847548096913507539909759646544715962010156264218748610802405786332126725975308597521400584902298365178267667756834506739787833279057498510186509689239276011380133765390075366056914920292209641467996888167492593319808503662487718605818124730459021103504692241368136184900297593161309663047257957091909028576517996912024372468870969023061056653479552094722515600895223720556264671894130299931394873072196461443030565588720541870528999381297452006681630064860598333091462509549248772085847603167483220987291225483971731426351369773065289707937735633968960584751742486816912878985188462125502017303435390738247117919945257620056956872341527946153841231040591666284539850125408061309505423567120003197091522147006630039677200247464261505724559884567599536006885244029980913744131258363191324588027160366536279028946442811404500237701340229782848171047278667838316598569784914577487580617900877495722944311996130105090981392563951391045459336398971608434639868950864005258044103883800307714796396730991015068647601710768416359753973060923790929394134640533815749790301262867551497130187460881720336331932417248308969785743882336249669748508546752762607261260620161734763412578235778622489921816809545683078920812856483483902699832821431462470933883003089114320704411918430131720626275811029929508180141159288836033182157750663125147759835399708004594129671225031332631433554417818559790174306131655379844139398261467599104734570610703908317459353973685908082931202787925252542345582746611462430871869048279428393642750409632359170779670963499078636170081899778945239321861470962715982463779788675369224027007168955889899369199205549667139768344126363924993640505138274836344861722326009969946775687354429729558660660126051722754279933545641935712288447723764488598672966294085091854382292079748444236973186272633736519006384402834693988087450973083165015817711558646444128871785811834643505027193243871865883237574118038591059725691300167234139423415214537701136712853127368597318385564918818112207155981950379574636038975647388757298934090842645650584253413720416058753127542688977954393141102231494676168135123527082578666981782119715877786060938853076335343265820732922408516327718140740334963487928724629826073670857814599502292564582839704720534579780501811975655608943888925060663487621263853279469872927589858870115592979916734496850480060251644959516121840441828629785443612818953181097286882329143453081572955605803418096219804214954956886365953836177877016866185002087299861670933309970120113109758459169722466537052563553888076821187436276792344633041701137887821208651811664974361774628397729496925460856089664764955045612375255453960198277641548427593439300045854903290362552686879212007802845904905002695644062511044612063222586504757449680685335309937606358140062254568646318805129432461510176629768026280887180232584135855871861747687626694767653811810426134409602579579173116455704852991770875602130425768616317081656868287331305108890171571285836055709887767022827064184474235334105746961219290891621768062429978082989606334547958879460683624644125260689201025482287372026684932024357680980437627365034776838522599454742665768029539267862508164342668381513029575609005992840558427124194854699089090096623649264930397402943753146653954054618462669151188307883831327489497935984832998613775402759933664732406689087460087107210668167838561822933865058175943650754422279385939965279703174800736968907070693695503611467450038480205244074819470185841054417780700824127270932874701833487085311047346311258497434241334362579517334034975629479342432689728497795097735932227766635502485549990360637384664355958859779053984030089454008292890022694207357119490790819406875420198409391212574028375966009210853722370319855387680941237955928628758761872505472332537189435264544733820136534083849676350279407143911459882616235351753842296072290408396068046118023063036890045135587714442983374469933233290023303203049448271771030844468709531387307486867814496859779605781837125447463409325972466400254611051392845760697621563484010594336825322461703867752928693904107521311229330269264784537429694166914243656112215553700656813198381458584150296361902731194412924872370651413239177593491181957797159686269332980723417341624855948285441710072904091792126605049270698208583530542944158683881815445666389016649925035523441149028973817566981675921019757699220757502889286018444455826520742031954230324424100520922515622381303835028888432423050508349263926229340895645643422586649298890378524123909415743377015249849462169750331341594979553122505499934682666102466106886637591202434189064546304341406936495975671133548870372078367178611295142339258644351749597556408524601110501293665113666433916530143784964712881602936884407602453474255389683474960811154949865069339160621539566682600027546601582413871908243199370994474905879933885374523489843459483641397322132587149251520763247463149522546869515546389886141190687133632142803007471381851158399620402124622692029347830479785390411777233571908264665062518740606596043359864492292932355494303975860434104008614212947661336931553235561726260466383984756388950194855504488043788891959010554213682381794376006677572838386208974217256633864322720180038644507962561521384465105575693922770073571357686576716773181730667391345115426494144106273431820483334795206270707742169093776560593995468687130389269013229199114804446119310654044203623086849087111050442646458523272731180731521635253274729999922650920571661362776165570804869070886633899205625756891172071724248559966091823434095437983526503670750942489118600604916891504244078206369582155641336504043030117454373528231552611855452821625574131881060208113954398086398546118954390447208175323537006260710467560628515269730934097394555168957558419381921642702014096709215019790535733474346658923182738493960934099736611402923252400508083215007390778479535336104707176942023183768402293895579181107001176006627013842307648067814899077182420067331906598861899137864704709588612111746764542604895259020667504908460200101125287394479251276510746249425400402255972891865241808905932999847827433229852517576153640639587891600797562029110999522102280662983057941639570200672306078349310275186905117278562188936126132969381416418055174056519706000755492288488696708589855633166830888000408709809851254073975380079726550292847919861369601541479426894665042348389464651823630209345324358116923775043831870115711084929928171125496717874998771606434847377474892710511951489139790231246049178196417377199955096435761419895809012842051202759549997237727129358291678876335815007887666217108966372986220594496833837694390430468320090466211439500158867865282153878270393487669713983741006730495422392568903315790490371328590440602265539708806620192754491569390787987635779969369202805308737903164706076745901457402145503698749472422084048505407927893715085854976694014677122202647999716291287094562250021602632303985879562828819253488972155333815377707696083350937235507600773355061268817692352932398690530622165482316299142253193173113122094886015434668934052075648200654463725624513980339151046730060688445863176223965363356040509155390248752445123484285502837874385262590902632550856204881632669164255581441766296309305615095396974770469198014438817471603462842138504322377056571743091140193889476521191337675815012261393518753704576177628235111630841608820697501902173357005145025732474885299886757322487672008069412072710790489744882831390901880899971590440587764031638581762838152983130648665648671189139073052139776705508353901150148036600308345089737431387934971060014175765627711270187456925727488696624174996906423240926676580643371543275161758570795126714775766698946077876397702768473513550841828714290843736644765653387389743980353025668517890222867146530468248537388303071626117901668124165639163831788448813661998415661706637592049730883703218371205734991993102664272400046287939059716278189022314285213601701021373864350555666203264211223390722570870548763965587405167453661836549911125606897512908199503739498598806298336152995342543072162896332552720838332841218898472168385489346890035354552374711878021673510997745185507288838148720484975019884901298779699668517945052938119170145215857393777230262874146569741862096482160891427477973143308117824383156054379784044853558882105247683990673575895124689958010162069295864429294859789505762450414320846394769528131118888385260507300588534486501605135625933228877580299969782613438013935671293986426615895264367526257292836473460684646623393944503730310418421295264592329769571388760898632404680102112330492179595287063822600152964996575955857105201139052118233909353807590385807703539209983960261804965246203154993932561811299906185599825631982507730625551986449345783712825144566629907879759008199116553302013633903613527867040962537794803592947587891442649354280913828567649242966219392412240387539683046813725094708772662817185662511322778313249738344646755363924773202426100535361003663883223613040718530128682741694971601734188242044732048092085857234790540281165060127482575198016834549877106376347688313520493868927877665892204450310382922933017332213838194139649649632044639409844201264274594884210940499658595440887092492518078689913852280645557742549446649931768359429708944847347318575928598574151901916072161085497577903069605623468735013429585399995244678479434255277971402098556118213361225269850598020308706059710605982646656076247530548360635471665877735796877245856349163466176950517146449132627595670133153074004253724286233136696391584748375044878245292920126100130263702284244682698709580845261790213559548656523293444779359432531688811131155467035742974394714131163694678755333572776765391059898345360905200344177924383434161301085935853825690883769136117822152417471391736108337211991117612958931567424239697202054659640497016415366433572824938548394825112336231710772586071335146235392697668906504866246634469840880159116505148855805089690959911405150409302367758065861376959342254928529527149928631421185200836012182268756573157263172721684006441715480183167489951225636156380138838677198738245634517553153513953960631503605445118567035126555637837514650481003575011612386706873819026826663558800841720076611692969253538736572321292164588037748892808841292586643310957286590979258497237545178105938566839727801347387650288510123723836680202524531604689399819666143211378560030804353718979478016218783476414224879607360817026987312586982627273389046463558821105644319447427160026047725443874036368032485858218168396753209433748599298206703667640218352901833777412037204181263788131522426152531989859800271602144087484235200829470517316061940599109084881793496407970982149179644022965314366397058059364550335759444708526676566599721155147560984667251463749512032871329485607319243637246160626595463232683446939734880920164158532076600062664380612954110845219030765699814295824057908433949020794452491262091533822419015526668492770504813501240286960787281995752511171426597661968525633300034821916358550261493770920675781720108427750353411020743582555640298360280130865758840492695342200084628758258328034947494337875540195761394165150844660699715239330933443273269311227529167326531426866509985151551228838070026033028749431451841904895848495898624952966581801520271691555867872766760057983563210124770961908752575493637626672410870381603965802253885739067908101148566599429557943292809091485648709074319287853370659450209720337952106927896905645789461587628135427162992234224763606616588107850545196262602908376080282053681354044505568205386799386263204782761488720167480796340696634229069775458427879458058076261070542368523639132922887475976375976362017222179333165782304435644511710788712170165476240678039443023731982095343413380631704856736628528376803854182978531382225272083342924009108145565094222092288607208736198601957086408657430231653721337507930474892043379134708942840323625090990698958202022071205051220508070945966078138281705974935345894240838942123994388822134873751007640198810108076951840258247018469981112399491105701006572408116105824193040693202149524401821985664293963396871290816877657681847801292232589072772868705735385058525697939447370190294820863162560815070812127074925479907853876514389735595165784108412256819921046350243629712146743212713719820114944407008434266242729675254163230860417895362571692927990600144277951615245217161500163975818446505176424388860211000216851651311247391279780244551503861357433666209230105695195549930224754478485346650566451573097993797079197460393898902492061660412119266298637030389188418688786446259821175690726945028171530447197137087747036195281922705119063588156905813349097091029128598188403982482446775790827732773658517515184557520187066507544106677593058368438028688230186325407354172008938032642561384930344016995424279055539375188779235212624298342117999107744332050733671827016922090950469649680404023905907066429846891574223043783268536537474410307571863063659351621973427787227574900902941850881936727031368795123835002469138388388525999805309029721906062267286886388816279982315542668428924017420503262736684417755317766613861528858931725605553299410101729138999941737522519059176953549821950570545518066200803622677179030764588936433592187641070919639591632001594353259977060913381115158251013651015545131473493085907706251239624669588779982529118067044767855556671964656272461467643025204273771911252992647183613943784424005919532412189631102527129745182089421374732651828402475726008808913801294558703111987841121589945515364148848256619814734572657349453164962993014962949282167615172371013113035158472678438587953401923781691168660575954529369294862860119703230870476320956985551056978629471409558431825377134026097881918629586830695669695486762482695766328653057003631669346113596661624932999222460676159494610256283233311112386295269732230970091810727195309091983066658043709586508099877398872421113661482431544288762692381742296224511748124690645962556932951736332892583612876992104218000500931135022796104376479967952775199343370214823173295647100668070514098473700794967198763911589396733504778897505272939719910516829781273409956109687807740531050929555147562249411325446621608925685395961694605754290986130739086472388184255782552298282073067006978368305458933728712922588661661178924094652297207557690173394159589585910043047127724524670968503806886003144503194467633089282217453653027551267680952712835103577225017783638097990635481179499624354638634826659023535473317344735700317838708014185664550012408638420165830020541304566867624636587201500538692188860013657121085623308423088479859768069594042232802215707025272671261314014240813509346119126644668263183623646285637451678768169432296769900423953131413797790319421259362624492280240364919055232121429933029839324549172085700241645580332446709630675148574657040166309823917467963784594735116759823786827417290893976203307585924783306762443093764493597205402720303755468919522306669890547365729175700656424308763152178538092238487249555534803074842539404978074932937615081922206489840679579646572036718535681512556798083746824711058408511692369801823626320256414538585514985360064021910886931474662648577918145272277229291943793196365322254937269818086977110395533093874988562373850487356920896033691536557345951146451700648324006722344507058635295203256342038573350706430578601944125951568968383780847315848236708673625970258073494165492671907074810759178243835303329971230837710217610624658805272600471816876174046021905668350903914853806562087618415262529490909030945857901806843498759260578428555626051021809463131812712769874002704485749381146247246675521539342167941513938105084121414228748615755221970476003131376578910104515047485314285072019994036834109494574880382890556317339972851751102632648713546361312082250757381601701728722646904969036789320283517716859440535015064411800886256805662756032654646308546567799322702378065516451349556873944710140621343162898585014657535128384782659972270989310362576022969967733410133765776074659481946770365110042782545010973686353105310111489877637401602710897436245746118574219709638947542926259775072076241989532898960036161954176982145089219538991635483959934474254014475964461654581264753096612625243067848263448272212122274427565443080414070007555656323037489674157610418801938048195398439988341842560235023352119897006068191347834198442642473232598182974168612075106172979553286564160383263653562416232595620828458226357845988102422591055323005641615455037058176488221726752329645003211158848231052156627740087212543469560255872799661662696258397897598426111871841608731253571415930518856118904926005987624255385450403020078957603962018379481698896489445659873462422152665618625088436643963046816888552360614314614990488791590612295265235440111862635390814882392007604118940053840519650844927866666199024809100758206462052967441842350190466005028992356191084665262103181483485380880691218038107491805182606175777600484124366526682288072182705419593038883199009574789752982363927453791821083787280044686222226038929188204445397792124789559318813298097907092408535098981330434814677463558639653134061854296050174320332028835736014652624126136102807368664434557774033430090158497735615445693349646833529732838629734471729095061036196154717749307085275089203981477471646115489914526717124274767170435930267653563725244981309740707376581030566469643354564916674337057662531266376462769884350568082478977804133430006223606873999725220127962994019255293207459736781020482650029244815686034509254695950510389353338902058157542556436507582793629692020061807690587277314597378030921026389446522315390999063749841781805330822781314385618496000074682745265016409523167700955388977657962666402350493798751473500286874300691674830723984679719909028645935371195643830795670627084802789451319751715718511471473967268115302407064961383792273162297950726180742591479205628308276626709561753178071775782448674035089651766392795723276409756237588302162271403249634813857729170227004572422259607458516743576238502899995915689305814412601609513991225199021016124264956054130486489286595289970248471298920996196324837346872759125473674681039740860440973215442286550169084731076790601314611148670653285807508470683691216108577029099325760212979989670065889720889924371259644552415467996601143917557210340382466818473691734229465398940783074260958635823741646736447496514886051164747684001101238132883127882048240570439121981263623738753032533490392953621160949511286176566287983206796944819178843171757196023624142356048275507598214218613029712899808313106764745127973275482972016419691067396319038918531060880949534757361075460879277434366645631413515529123662640569935379778370047249119690715537763330576933841480302084341582031240908859842003677343144819806475617503899726310704078387806870460664941342060178565573075524329456544896477184606374573434747713835801569301239475923813018025766573226356946298819607196708299118120386000811906758298728551023943062627130232669238581176153190490810596804751816009685971494018515409485047060062758156737485255498944136315024888822421500144896493063892931665629542416309710692285957424106639940800122785522248696204528359779933318027141304420189997608752107443483656594101325944277852928980956211980927420904060859114187017277283144166429565996388631671826533663514834784377221085603684949006940477378943782314510416100646014895930602948776541410135900548665359830506461839798387723378678797623862434407262129427513751824106834632599361033888632055959016747757044654422015994542409186030325237008380994060136304548005923919290273648913110362429377542435286600627738912455149842480917722821711438377711406838248800658304971355090911931174513536011712726903023561495383855884761804283295135537221885929420508631914820411782022892164584546484317794984169887343648054978761902103960575601481418695514245456503182256974114943520526963612150030671209646285149934650508148073434854762636782365991054115962673484303557786641404846154798266661063794629613859170453275546179378957119977323027547573841304904547385500248408480724109505148045206542051011022901399061408477565986957925268905070737223730441734131736227194501965374971071642721283521014324182766144094474336825972613227718864654378625983099321427130178286853451530212130279052567515903782818162478598411989298437107840040851643037925084578045163957509239688601859568199088912932864127752921137582652031041039616808159066327246505004744676117913929343878520715326394149141262184745952291103082178871009821345772013159963867689058797663494542128743250156591017188727134591909770145961337061535673210962449510878305944351802855649996332270604656415027897262184298829102768882557252399770496856787467090153257887667219736583065622268539565677187459029546546076031443489076249560085079027356282188058671881451266150934851888202528321904515901465233509360465924623918638804253983153549468817666132910753098122869665282880690821318364420699325062159212567414404014450894874384596133730482143264530862122987587341834657199007240388977078461089111469622031149807591976724208035566534527119693734600180018061121215876108581492629335426956252823818037580096929129924291915449589723936106527444670676024907152663317030661602414943237905514409339663030833619591386961861207891456195502108000451439216255409991845083845099053992087831746344304060290801529248359646088116773777818268654104943950185776293232084482759782961853682632329982420560990188602261385195697952457137729384129758937412154973631781415577117618403656079772434610221218298663197198978994895395043741047015553167068830651439517550265890328133671292143917112267370040453193447568445767656073658134617976045382262737363731833623847480702663929202236136113202154300087634733544173148829410856838478055627787701221938980294468561945956869758873078657022931242862555611563889554322466191707986372517948873224086359390371901986805790505657085490607172470423125205594921340187911312894867526525131040667360668348897653609711573454304378654923326389109032423241226847710524631527495883718356179049527402685147845771832739184487839117142167526625039956024071590278606408330387050108583090068380487593193877860272645726379148807840023629584407570847329104727325152607636184665753523808397037546239340788075400669408364845416885761158282891612528027295308060575240899967359955667338780360235533705398472873662807893682449270136379481560740428254928542477524486408212446265444466139223922837323249683962845150038191846632633357971450941188156234132444339006470894855811305757791635165165130322181143460427928959253502326401004837444644090340277267348322336675030440983848737702667797613293810313280885014099814191989334288043714673969510197897614820966296129547395793952547546452346891531027964464435899642656601847972993377463779558473643958673599134983500043680606743822215160081381068785681111180222768596163395197984037682968457432324425406057490887342498067821941686523848250696648238184712222401343142238936433456349862763175955901997003015460869749109496289402309179102471697191201966443766175965527389136579098784135535455365565100019546029383374299714589641155882173785338851839845792807393888919689991589605978101531206547921228129923642149100539368009220908887781139817449363674151370856432987040158203838266188782885371793639921440938331094929615773935489176096660996126134925888234912985444763150032177399156601589973133997818042197837968517218359319489554604287998187250616912403837215013782175132144063842901924082702708452637217748038674693474368482664333003154241703905160769054831634337780168399890720694004641077127884327127671276141417091272495047993150012996940330776188010117564863177823378149349606537153387830708811357177276772454141982811853861162285157978767143072476943083010369664690776674951297853296971002671892604693209050091405202377223986680873090338482835572992226733028951255799898784614377941028899557659265387671126010212326329994942061742344142855058469449039979076845765805154243244859798567946233016052354152743681776701049950728395004917054543083449610515168503114747342945186508953396496566400883113859629391650310519117846344628752002483758343453859771190185570222807527396338592805879138552408946843475720989244010344989037196553626999579820792636952683285477969061780974316072422883783880665949468606025639323146422121145583088413329634498584604228580150895148155582480265166050040956764039872960891081527044741254490420240090099444930617276364997399861406539469363602383511380386196536453585322481863207812553839533184699406345538288805488956676924989167189435711138653177443919556622244953682258682749547700167063103656765817272936480902004161932055226919029374377568002246012669916549530146956016915628380267686661475454149320581863694085427372128469839104118448549820044754302851914709031941141794274465247241597242233424454459257462982357894345625220641146161221271229957676976799433384265521042999587168312485573931071868840951876256732867491482819687644581188640039776387135605855689597623441200620724958821002715754932553914185742891574940978617641543073856839058168294770622081178874157163532942657688556808199208655382261693830525501010673792007732136586247238703305037517348847041597867753669605790029965654377634996964288001168646415451033604660090058135215615280678557226475574555913838102213555500842456612662962872944234158399388964614972858956002817396819542224855268117668666659729549740007128231491275177017882743988523738844007533016185324180137267885582682719061245535198482183821844538029066409996098016407825729853569498517252753649936440130340436062616469346790624645005023493700138380785896744440781272630029225833016080928123194696267987005783982037926418202388054783378862841168292928656524726507291299595184178923534902840831139714234985896235328598519067434449491019280953663603430621587049150608664294569730082913418335063984477121463348202045528023368343870572005273661661307659763280735072654336015395450754214331374587568191827334708815137272149790251771696659183851229505490800901719373337165393523000127712359248444176748052715859768758923082688444523343010852007523517568623517681105708517008253539395733782959798647426724630120068722401373400310606129866119946908684069715057566682726396159928856349136170059863645769549493464684999321208833696420625436453329572118184032776462290086984600975006394788224750598406744205246722290802832057636226827543396348712740279196198151899026173469332509326934463298895422234199891208077392280749685865478984521284685820797641187638898992741041675646375220780706600574271172924896976093455787647719793070835360576554501514895465858841141866783609683104014926525354154579756337843605482372042934110909976389297830610456104898515680218596760491424157077431503017338622181916008853200566422068647016178886991635092078970363382555339656703492115376727698011649430117086622813433200724270348925422627331241786578943543009633792405832138227392899996918555685610253125011117640856697938900043727874882681856048161964324860112996116742021351762268166132915221708287194067957726342062875469356824394088372968248944746663296921279388409386432777463864564327965607178374977290077290347776598632741183806342975486359331956127371433452711397210985734703759997241545944128527619856737542407400174038664452688984920194030842776705048705951963847145903225803250738841054343876620467640116398507070263467234889764651007784606338531485230661162316597690053880075030037976831854857015455549106166691013327623862407855297291292689739551582818522634100663340582723179682008425258901709450689779093593192817666100933846669594810069129475899140157269501296106819290145834910825881355219502105837218945353492868596998208304259073319955557865109835560724016315044051939850118910462982588093894529783733592653492306933285689915634104049126797052797425234184871431405725230623025342014035863294134736180436311823959060918663203786172733284945945825388443298845359040776074950259461298169932251668155384953992048987091616291925650650521437088616077053082439187058001708247888158380481121562144031800396940248212442006387969459590878160848984707973365889520032650928330483961496108977345356785312077206769771075958572736432923535782548453819474176833022782782434595215264053059260227734749836574304106212038783940528979307429368856356784973361740201545068305325077877791821516435799690701945051292689647401997811657838229883475897303349581740363687696872711848330869793656601531726624375011969910703500950899048462311252358880703679227343206947655410360120362683334840054525915273347103744672830980159428661417699324948059020172285302380934903229335768311573290943913220993744382403460389627722386686715047827048332522974177911264975532383340341925518782023543902088885875351589444177604856642165258024261676920707983111106645466848670399697545382333489299049946944822682653317465237985001824319940751545343670696490317114768597283697491904827827456687528911303000869901300076034538351850301692152508994466575628982956893900577973197942013552268691096684802819095723069515362884537575779415568816461831482822953282033122398232804412202306694208530880771468007398744629626103215872037935094068246497738474349242460816085236410883768684622975768499975411576633220138900575345440850935371376449829232238237515461306942941258714277260967886255097794346368106606147357058804850939493209192876980514771071029889240462463940095097220157153458351185767825226204058237903899131280250323717383423485426281870716476430668096540980564898366424594205562365612614739680083390773585346580475909800741972415966918793649707457710263990436119300377848627041481768018256130531759198164271285523563567243466102740220753577571126172957534965403396298081358590403374720586299530392563289970912734933459129392339765334092673296354651681468007719300607459299304943822790863963520807004865893937017274071198387736593030599091816394533732136784306405672510907052159768664131346113898046834853748169846438337476674551674267503715928858865012022400215292033332041662060182045932282166447243702775944567063519244963945209962314453815871482626311133056224236502732706103483087658148004310782373474942914142925994290485380529634895930136790937387350418347138962859167606362513678129030704177295921562445918765551785931004230204805552000426970768373337608202252964445452633940412160985317768668385417789896780057884568044001554977366477392820944512257336488694134917924395251983685190353088592955714682305300475684207517567520228864565954766892150945053700634067297639956047110625338501951936405082562603067186937197149901194388479285038061503216449886249940922703201305136777827218045430259199297510748951552096908432852090613993009670685516939817144449756004200487932737330985340838161367605604804283455990438482977265388943496741332597194934890036224692902563381040472755754687650797888832255809733852334882599603799996836258626390249454038675909247900572700651070443036286539765761239405884832070660738259711087129263109847175801864228072541908430606032579024682820179250262744174410466063550263871252632288832232329339875584236996299392549257100383903050434710918002520739058204767030756806723832089755670918457524550499185895189832592110952114922185748194143294018583970572906278152579117040855481909809081308199360554986902574497839754987603123281867818814712681269430850786927957840297380239376469379787479162068733014236414377120521476496695146629713687913331933206636886986792584735849365795080801892398779919298343280975453454253816523375844029546541826073573607759391031066409929178482980864126721288374038030269010968637673289961230532569242172859135324506516798748763215083114980025623361071715025993084049206606116474328640378999332405993180600012996691157984914850606173019212592215203109843389304444879667971829078754554526563224700518758011157888614741781557641933436732121592444659955360350812643413111792763677381743594201040235143404985862270080725927748672826993361329782349325774175541576851980280199161430043062908341287154406199198721761980864379664869264333066318312951366808564354661745985209017137233993045648492457005660572073177507523674769605666356959561808295270453855081863653373325310751057218517552545546604504458935252210509685984892485081472533227519788762093496870700146147891614330778870038218463391342862032385650257173501712966346522319182813487189283597686182754698889686720607535981677020082192006000164679428058614756189540498301157315838939268682586548595163788764803445741867139445387090267917888460206010451972354401430477957646097961320044449988600030921271433836667923327010692778523965081352854456125177011706689869595255236193000112469593027054687317109561754644540604420685901257915006251636634983054631224447738538744033632445500070453028593105261899072872532213205187370951945668996422043489634849239391877112047989561527921204918252856305022002733594188216401868156901858850231378903231398900696677391641678951966831227116602289073538698455169784059401481317798385046420197475033175519716052892250297420599989600328775877692725814666151504183708296049911057608166521484417409604965253476228120469255008222197587268685501818918488086694580025344482014986645614219355652430636607826639713969478273727513481596550272609507965964858277113483326423950417934713372999848797296377908755567698975327995103137315461877196912856942336777271749671111157756865451900500728200210645431771755034483059371550066627893527167348835877813444316595629142359019331754791481343132752865916659013994979861942327367139577048715284686039316568088276339739175025407165254890821771621371787804636857849749075204871771393882552572220027927127255347048404211906501707576020806634482208742962601001147484161303530253027564732786320455908415519642202149087951596122300492674442890003340449883396432710934283734843322970439041210741821707169797748209399622303080032343721308862453174043232053713735931079875159866794689966066419995343456189943249428895847221669855676487446308761158935949637846178955719855189078303665139459795168655174212162346531746094640879169440981224203500248560514969864354775376064182812138259511952781703008838741620597761539349115297174695479307044387585362221373735512643780844585619050721717707190197938748127779271697302353773149719201056106738474549498259687228673333900123914451597795741572865860744666184517332894367461045564499536638616229225432104771143502655627194130720149478025451676271174645810048739941502674454846157708683024996227048387545010272307086081338390339597960621384134844124055096265902527318340232312020772239330701676320078123520961311082238564520860805388847262240789103142021650407011606995793008324252026724725373282573958597775233608572557648536374823717371237198918166392181805435155155688266864315463731003633876971236945590272074424881012609364214773159614901527220131257533275243367464018070349172557474013162359698994224951964172946865059711214549778216216638878348346102539421002663612394776643506363783246103216598716213927360112197566058404732651110128667612498714365842070312441373964135209984272994164113076168838261049453113839085520248165594674811425501494813417624152291344811736000965814724309004906025898847861002713480409989439668854857498472990123411124656426637853771066382991725878837192341302667628176458543212210321762116023635380576077637358488749460856524239783642698039136916413451386864373604217930282726540007165764141688081445460428897414473707862906693186445079115293480689546339360168936346149043027104614243086156331195625101836714240878622021037431174720714536962075502864019120716935429696543025487749030958607770164029402550668970691029423802088359243983343606099252831774855059142772995537289414448999623864356492460121431176514405882945539463232086086166734553493433310318897759269905970131763897701741728620785434312986434838573746520018582733140766433974042715715146238479819422229848495599816058927272947796682658480047864052463354094916783919717869089883467304818003558788835927994017939585044412119769559679202585435234212029366964509722759467914031443636005174712744174456061072330533215157808154763904598291260528858579686439484040829161810489657438632641209682376183277245159992608796111532423859406009484710833314679103854263830669634212964220779688474173594525065164457299692491740592896284982960205469766788881779939096227690512898592757581240618908488231127688764888010840938203437609282392562141552908597407830641595546192380595386356009788495011141178875890609060380674889993278554782772062315961172426301350353715845568354130710324638042677785935926191230561081978374754859065191393553000447629812685647933318355915740188047197491032425040191422661736612129054171012989854580270490544165579893655314974876669404296397608708737075277179782548183204676376364358550245096750928587746709289671456720656251427650514667121923660620484860799443898147675924293723920784539526078441820256922324919141700024076743515127212440507483364543033750427610567843330829991523533769503466297592739103661312261106647282705904338806446303388119177817451949171013921389302564408493837832091250187184601938844033007338845624384661794935283093602147205187724828811943448530758579054306278323868316077053913140296130006435171145465532868597976694280724450001380501303198497277625907377897451624725696266470938056694796104741209497868497773048930356566679018174559162795960530684820178189322692330346141672042099484385481428786473306106428851698697796628154052337621636098140270141029553098501174938632945419466582435364480793507932727815710824709362129309718028171934380594486097638255336055491535728905150487280891912178370004167069644692752268812651120417651390784633505204981492364438305814639814782759260612603348689584916979986357738378935032595301747312787598607509612325447126559433795465176817472258763290787250062063661599148863407744772559733005259738908379911803788479128603134933998540739568257698071729681749361756369904848056583667871571017047395300290939118696889974503280439253150815659570366028507582916132840710757470744671371281941938082171827403765797101182868366957504273252816480182251266123847401355969607639905905272241001793304089388399046126703398371258247005980978184798220198499440655358274796524411709704602518405231173786927781233041538534423731892850676529439802425493850005229994798608386657924077756091911760373583886397965427602094794811294891597914836342339592189017144961179852198393375074402804041908344873843323356294651774121242564110706931031245096199517454211736466116390334435058829724101415983293840202096991443612559389778174696817420542665042697474867328992241912995885171786950672489935824954414273048263223819084526704665491834238422650990086684261840265289548683207161992981750081729164793634559135579193102098559039323276006856749482578911395883726018754812660386291802079972148946307803322600336255189186539406042859795237331443138136118013790650186417736825115837651145897034084737880328594803860992293817244951588783504302242606141949371823255738468775436458501350256539291535620260120189396866884239669820705128970441168005204017393464121619647912427911818817531097206991266121302250056736472068744875059436937286896118983658125400930632571894227965140294805029395422182668174483512539052188113261867991105009319895144674436228223501096505853151892154442173526243968159269247289875534918673526982709072331794345701220846644557726919879708555267439392614254973261830948872487232647135113053836337106783281684102408902609175305272129622692905834591508623726652074068688463609245112006205804186229176341069273951045573488999107498922996246853054470155512884954553928819496292640033929540142598350675355250155322932908174200931354747767315920426026145895741640354752711904095635556193175757739107454881289874296559609525953684547888872229737869153003189767400717904286376034555034800804922874723489339001788093718734568427606332407181255269252220855584876193216325826620227154570108269579088722790369465418167406315017954714622883594591993284653861289983891570220129692995648772813272857720102936463977413003206578509187854355297762668247935275270072789533600303315739978552604065305590668587872740377891554847115651855464958080036860527425294994088856284236094874108581289138799408869911183532599120659837746884552562844695558465220429399506493102450839391237927598009399879720581609087071865899030674038106395486872669841875343368338221474772727835150190659650070743034237617973990171307431993318147249735430842676220698687003253248653075855415671479400337182107794912888069207700485864350040655046439195943986615286755309780032128036567944372065130003916233941479564816427383798015812286250691961913924453441099958918841776028293178550511373573658171349661739036845008797955750193312933388070475880573679188822635221886190163784262186488338062918624213154923263199172139751066359809373979610185864177065832398696055662536643392278078059821436932775280634699511008551784818343642067698380997919510375032461145309496083210847276583371884403124775786407077216466014820345791467169658275790309361759687459377436936664160115758804701546794300916472242162178393103102509942718095532432199943755182642329885336558874309695437612975281008819480879713709366084871647435062055380204843320126547020814162144609336476826782627158710466812152166841322855823973522430579785132618381741824764864505867196919415566283184811123679240189328682533494684415180346355883782971679954628619894789915817564891606727877842797464853930570639258302278526794353492038534840421119695273615784779603925320215526978044542662723429200112739393576573033505249855034251887193512254709498597650079167909422777383629241871989562910583545203526455007561247666499353075629614156073030405016392194133455272432268655577260831523345018067637111222962860128389649017381666506055280169289132835170884849792035851683556625291354569086239811768342732696189792364775939497021875016109002281195431811599209410126648965215829881944184297620953490744433061719569626082895751219066112064952405834573301871636712101179691374387006237445416424906378373139506294851781274984506557878593706081505557042296966533108883933881822064919426365211084634688765670008925833493103150790881116975940903382594002384554203936890410049779373565155766677759776143582172889995841074492956281182072109924774457707623040800942180430209607506476224630230631763235120106865485099216182339980563571734476662636595183339258310886621622947498744783910852825297821745097408864735943819862442024235202877467676838205857933891024428630019094150863972200088279770927894941609839608696194366131363216634624634682565688731648575997519436185503629836589331961527140980435504436598232808789072100829131180482564368385386114481409733803815214779640947964798450197534134233741784406229847154460016435899907256617565365546077153585869280857589894772212088941779207771535135674153043142056167675971706940253198007422015734218182872673875596470791394749990590925505285147284959693157505291393596979093220919805723490000432203453992059982529489394734346317295811509406518088689049554296557438241585561598151138376614725905816303016815772627548351554725866678772858777447281248462106484016481887436898927131649842923979141582630267530726867914250805049723034961860263571965441757797111761617116518694901645996432319394958677039913017398016419794726815871253803886369311501802632752531327650968374066741493381824449220265174606730831830794524016447714659776993732696566019259121915656094740061003014004335572078976771265910322466464195196949803575276936497873805037391985407531216903377579279887750240273186301107936177215402310715459773327435357346778645607858900755577837793086749119692599517917068922354286777797774459618586613033014055046245151626854756419175136934575672548303036600377181909424298348286021905187327503320638619057442629931886008551624757144480424684008208367131099289427899923278380818979509036104448797650343298356498585265507652870189482509785853184318982728101832215928694152769477297418468358079974825111205971416028533779169574297694932614256153778278203921443542847011244547858217940732550914565236653402215134842160794489997039277110020005167395905143621206434379962940466646826154951408420013403749192707044221581204828724899862086622550161992654089052309967008652947519607319778620518186973701721625760730097552282442656098886045134838744530178747034659239011308771004893652504774556138934566861590760604322343815825755050106049360430455506295490129792630072717939374636884984884917664678936268923377969245553464734619663711134677282487222799171840853635359599847427965865861797592030808823431841962807753017256393948736928170782788146193866756501112310257200169313938086023014419356956549975837901475069449923099651816602174609031888788910626956512857203686914079529319357021299182002526345829190070797946798917520973528805631396184115708285370070298911325148684246077168884725480381994115748829464392502867766902932965743249997515334535991336037313501164989352962046315526579301586291735350897041264578053000683129720132606893288128215613765176735654052209533477990804653317481860107860028670192868343758485821417383146890940304481041831361547576424879136146956481389428800586603004253597944200642510292362538254856941376210727906561715201209433082267474054310025911652327000078853744164404223102256344219360166394721826815818923324690408958279360131650132017473809094123128506743443300937168547182796515399563564315825063393565316154199404968260376269380594177721961166710421307217692656521080450556471045130718540256275436760870362101379362602019503211248332250785411936476409434361261251916364541838827676642895559250523973670851115137325085734919244962903188476237371513989431054167296851819656144978669244457566015724212957774847106602930625091969565131471705486006136364074163947650026963906275222030464657724225458207682924909205589564341949914728216354309232822284565284332378379761641508813636179880983301189558684861468406323807903185284875095872228862641828351860524003637046423821603519809462388677448611668706453794682191473806863065112655991989186672535214846136278628123364406049462222723598025492203109215026986680848085252248432594454022105894222234691178846130128512106298977871142239649056775135263114184588483213850415134609939269784014852912664462824728557950603818489197165947999137302544719031341282025060818942887925535238311918575796026788352590727610205050815382502548913738970349859799949535236660612883026506102227507331606733261117171194866695868326322795785054903445497591519191406766699358485462401431541291527848101127690993017230893092536617476302692399739141471131827856568549616820963907726386921249366406684380253043699847551810289921916426304387980508282815544007229992720672877132827580785222016640891161662648367176817697414874308946894928648622644093522252678567465620979824015385276586626868280523724957530656336973880665908425405452945942466863292270111934361694431813155080275342527242634723954815372711380153577170120026896529488074998827943209341255794569544308854559315667037170705495064254549705982752249634113271569249238489013975715578073076226471226947763829854655580635432548656247099455174742414658697896780655769446929561779121321875994768065674677283048984324476933815653034671534471203039558644435382751981853294291596177748874183091762919411056977246781791378198851061525632895123329423707590328640218389798321910754829111243160821188503382983619434992790724318613209920683063146391590061847757028344697592968110135258233281946681206140909020962956144344814206240423362495242872824881314210829934474574973606124843643605766605171514230579884289359072071126798838101623762093874860432818228872808594171590514751247555952873386348991583686470027982845078040067002183592939775072374626111365431471762329634939362088077003296700295063430554399176391466836676104034705763612521493739634035476971747710136324609842697439242894458824833169342275860150285448841442588780799713405022095507476207377980451610011444327222807411276708993970530459901221754209046279912284260175984651313002060777580628438301591969709644838825653309855661725334255935217643380610823327080813279728367853355522849698076913712990537429365356759041221865055034707282497389265785562797044098615993331878284245081439626556667861488731980458668029440173235863528060524968210043508673754068234048257799426232617343732324504576669534834443402474467368222529566687032752447145211945881635612054963064008722823783943154343693475383355534528873205161765980100085729649452212948006442967081688231498155379534586028406869852122169156671412582497827170226090426581050970106437532604997325138401336128721126751170473391660462572077530085809538039722303161917247953471103709047403210855182344446793928147776980837247472869940015739354533049164493925652540758017030470701171459735801863595832707970529544271888805929369296635096518182054214059357344869305291675227187594346160389888150144518952733878984263271630769132116638094426866336290374425102279181769185640566854042807097495157191468440291065764405129420822260930389306278158705135430991428175990170020670481646803646890005106067138122630452653214072192037030058979972009421902799945788768909077218828491021790825972145715582419327189391126877080490235199152897898309228950890416181378889108182063727586637920306765489184785032798761985769818454719465155360141703753850970476327233758902630694110169017904989224446884875037148341085134877881342981467928084180831280928871843052028467480088060337220338665444337811907359019158667888111663731296635187672027959648666181516611329266623241842100524060472419428757292383408453146359527606916789534693544761251223949263110235386151703759202050850201970868664862031007397756831358990296505934230400437863857996809943886564474910110019169351906380131539366436057668674287729690293777349224288898670360438232087909401668621419375596166763724825705445272913445762323955467117140140355012937139569608515426153696866364360599576000435203237150570969717356150932141116445280671388598139618337098995256396237037398653644108003169271366101938627171116377820792988360299606008332754039295858195154369294763582327045971383794095908037950985266828828317982306028674278874281235289574617657578251826824833307935125987887264237401556544189839713523914246115625835667708242141938026368336546247441594231249770042380362591026416019899395096324454419900166969483476878608526875190302437278017399119253646194487557378533724713737276561552450848698191648441386162111349732688002792931678510866179406981300012759439563166427912178386053848231382269664935565512377924702980677009243331476381947722904581504000862481666580499019468689832258426411518788510200433101386467964800020485136369681972346945646691474053896916222501818517101285932907032774946950856016274547835747039364487206829652468403425825905196974322494110645835297709280238742652866144315471320288994994496040874915779529689227165153457414922881360317820523330835102125463183767957887290254681641953743041692658750425811970646761081432896327489983044252442375206143041025358636656615619930668551059260111214029252507197614858712890304347918226068316581307969618456197376921081361043678102096665473169307081325065466003600358748963208182945968761923407691760704964335346450254419055724439381902064324553781179555515156455445345904345568868978413316063462823639229135570725404456336912570598270558539734902722337085781924357661001765907610318902080066013350224256961019468603997237733489239059979803893191192488286813378936489840511561624232443391107643538116770674910693596381636356557706510118074820451926044543613313770207909018718882540397578326316199332793459719611762598238064102968183862471018785491982098255751826706862055038104346985415125403667202559859223842949654533247613357314431030787596707914411773864092887880933750766744546531194767720740177275098418148370739126076928659875326944407225923040957838357177649285715626136093343769695737683323083941393239532862251283276011993002371765474515590144387983588161458870988838960788268849690106358055102207875932658406946537371005508622212115069963814442930144526215992428442193838505039119446727538682177243231082314441977998993378057311101040647666449634652301701688946747565349159265517616546379577879314028746179703998325097072764296798339289319203310492165916849164360254009361876668136000107891860453108216049352261076025116394281753456757388228682863104575364702389604808985906112152378035170222842432259114560408744520438760948377285703425988903732476887387662923716064731368940446919474025891237084409089077885465844212493107909823670766361628439196702123229356580313909049542047059102356080886747981487348581221142643429803525226292947721494711030865296108327991503795581014776731185390036863101537965190654697521998476361989317163983072379947654529048888615526115760223960779713623220274202738071570092054742617234859179252579886138564220712019420347403182656144639482596454786058994320273760639834849047496442325516039247451422735961369218614108223875493351974242513293187073939681465182501035183744661360767380659574912235345267458822144949821274595724793397055546354308448066551357724486474311768604968283748759680021440796006163659194775743573041286205407958531674492784066597371661630304503235393948167576454714286849155457398124905617087922625752462612471713354611418879759254377066107536344087244266134542970102749579585289238838957806170615345348738055633953385837555341578417166030726236061501378939611670930925943574585539619803607783129927061539327697761678842603076929388161789375221668014868600493500152790044500115348054857180580288262842910947241048155955329596411114782936622042929213309518960281150384221678754328412868026288310736609822181884855197924894716245504686500699793672922612558624136518969440175121801289578531379279218916923216392570572318627689710268453576557397088125486765374332199784527102173995736034499666150012683388395377447585243522724321940438580605494100316930837348484030398123267335593167481296724884279423946247870943344102189260974083808059754087944630360059897368514023287894994486951157413195379878465099061851910361532144168149136110650854168861046676106940122603984526857234687584725305864710641685350713437887276306915466254544916450237594513937169472188809693505788934319303050155677228159201649608737215456918012601828084570419947854430932214410537027356571082704993647919916517841758922102935946564692324285437280360176343492578946921161465504722472882685766300320020772437852962260017351315376347642803253640018557446865999737348711240112625937680758805210123456578005871765587854407338641955349549778796984910074765013984749827871825560265477180511106297182598012507092029991636146491786010545660067686669550570902968521314402338210915231878213582338196209673595262701534132216423628662879345515521673821948308169299957838782837407706322259398533448657789139533267978984951879233421119404820885345266487071677107410679018189051268196162077952727793939725009456869386049103241416818305806679673955951696327192828579604414003409602954311956422980498225258844382279771376880170430545724560823380477795916816883383340919405462955748779374494112819379984746874997273186146329064206950782499379990846211809064332106813724878026651313008207614453410174923230288282316854450765394451836544506217056915616192780709307164900552773692300746094213030137365594982749529836948439709207411433201855099841332494507646653614065702722777898793845915197805107895324213223853605733103227490342743355926745829747279885203018368317620082832734715973602080274469014213634825468273143045616766055735522863870828819582345852557652904181776542819200648990761040724315937997343975155747530902047248330768475994884125276163039423170573430329191586588956488451946751313215113669176370664716965021559691069846373566708570679514644770961331256893634965051075241471998238966942088666793799227036997871588357529071354953006239093312602722659720527618967100103485201594957251782664664261754360154576240880445718121290598759264386143223087219150210939064317481736115563470523560100911678686778100997655119146292478812432183987894866427652760493294367843799873392787273837513724352557302626916567599332931156121380640546057224156018864265484776360529711010173922323193779810458492642151222872832670684395972086341918525211186135963015535687804345749113463610087954338081453978103116998402324903177322970529202195620589569264500228531670367453273055673761072287840655648468583719598299944762826459122107930753508661228891759500510399629078441018690845236890569209501316755059973346667063971594498324195023153544741874087446868215110402085512495435124453061996705438368348430954113922620576980327074289398997275792897987853327576276724222876138701115671636360341926818212055192956209963512992867841891957434964060850186192241959334038316905193096860714664640571433842698073206353628717223659735097772987841605884718248617867039634684335900562135648024448623374960666126327327752499971738499861285989675738320275478605580649776388156700157234969298386686735156734142126914640133695887452409611280607344893038889632110098811293219826824791208945425194358722398513742961454858492733730884418781331876493654270417201476938909360226713673685944943903589614417091288966983643470435185734749599094703750995076588546409893512981107002281189230633047267259546481724256337472915763143597961697825634641495165442469937011434908206915853429183246812188885816343824452580221649922042900296595277877508190775185636098839453767620091182962451968437460306406093651748109332656296525819171467577720574102671188557125312932710965174363937419055186678733844686123948218657764513107042483412421969471090071355821559018773684265367692335633425766044744954166523767188633047314014175496355305903401841215084709040176673061836368384211001420005726773367211394019663951968253807251837140516121720395476424202334496524176963444568696721518088010416964499433770376626807597326435871094987421429413223650704653398251291021093443702547394169148536104907161563753266771592185903374452433052915846696248310686260462094329778948631943893711171203846600074530420377892895711287581995924861724628868922323090413411441754395354829200115646944361548196140263396890949079219137045952763361584378701512005189167601920086928714142858499076417807821641614743656955643709025732190941699140699449658755023158586756165238337582272158162335941883301743417972594923115267358022543439881255871045866323614518622993842329232775105377760339489561783046517736478343351401722004864295947338013933757892705010973278315728914722348704159947866191660468434003387348189666363270862039779436040156544009782488495493439004614318055393335358169321801604713125595566007527749607608880706045769195576490777905510983591702221304581906852604768543902093368964307459783577065202843580635224000528158064187805833177398640257698734641972005308099865948996668757320152713483029070091030544229630476854445834136194208830333205058961721899309397910445328191562996935174749477310888407111572639991289061405034813135111536762732216980067199502048340010913943510242740855678545730801394727003534181199277306999473013808500536881963886694067556845445313254394718414641423614084175747340114131294484958782080691839700822508268255158763810974709051569908047459395613968753748781523864210575092622832965241972631171785632492795783602048851572001202130906777896620092109265013071095077051514101632912644746831656967324651871053634419234243290837696378456558372682043427490609827893253607040191349008208119892998035568307809314426044047136268474212005049112059521858368104995944024751243666028740380205710690799428139561678502820584768602937589420814401894271485264514762011928005798737361041980546551137113948137815016362627117811424546368702322148587902766462934068755677028278721240380597959148034645132733513702457557274624806347973459083572803734223620922861692817457934354348710654305463844904598873408100109805926192765367514783571369522780414688035843247334770133916625148825944458585472115696177566651422449753615126239214298664268952720617208685692730469800727923299673413340647502955826313208476590923086318449449229376729990587117161771120794121423674776699409530254022590236397217701305199322902560773080960086128605154773430818196512596289056906596294408763332509621655567839164151702902660146342351778235841591067527132082767459021180284288131686431078495951462795629855099748976078327976062631435813513721135516724234043059220229022431254659199499099444439619267322737347579159244431993291034162603106863712166299985514969419985770713665502226717612017179363584738366201556968391450525927645725331072044947122515203680565237976465561359639797319059778415339662005959221004624486828958844731953778571501024283365191612588334647276676048632069339933601510827709046583599558074616134164186856296266033333815432000394845575027352283963102851859978309758688997309928592195694015765209150403550262511089207574572455111765138598815318864456147200569823498474990943205199812218651181554319487978943283118304711132298491095104051728876247894665414199069583343199346483507901744505366657577804707475508528303154979006784716603565749547541279460544884276283059725864548274945195760899438337633424688789046291326156186180735820390422719236698542774561992004776122177003139816315134722436166912139116146585060261129558955757843403112685649809947815240018012726824358401614916574928509592106920560971138658722700732404918941865710470106132569668876138777232938978719032422497519536907766041639302132726551752826658808444833777048180507391377651145048396599570872768461297040801437031349203545646678981819413540098439158552412431977964310685753447141694317983297322244621227396776365151380411270805551983850591723588045082261576911936242905371610660033884887607953423695543612214778440020494005448982036100210033490225022572049570341535149882080213024805636610522759400815117578424405612251124781592403678459683796825763502962931970720494338453678325653146195566218794501428412582632183296601062712987383274194355731055935118767092483760370240582980951001119568120851921433117458492282285971430119024923459775418150619866025048609087840147608707717489327655972463218537147528129662153259622786963078782302968375489758973082049158565766831097083492512420294721351831091964088397903972344953838608425026566993603208494540912160761047703534987006891773183396068656020252928513324272661739526065370254037359316932693193367131982193574702848596845152250312194073134600039255799971613942392756655713763792418462811795511946161852092569001940320996485699907299647348598391900996593998938080536747431366367757339006923466451895762597370540188769117115536606020499819643390713971400733307262916817544738010571951051225819858919187506914604557538868469471565465147705017240404816257059699185672901654399326559825915287153736878920613266051821318263125309944521708688659356066792975381589413659700029636914162244710968006536846591734586932780501446324296319988202710765356101436657391013484493901980037084091745031436791590680072239035897151014593360894670153758291284262674474791122976854254016844409193130915746438050426660365256932612618492227511205970855241770584885228143537297599346338777451262772300259946371836060682333180274300105497356303640614155055729245987332095921830526871957971478009674017927819638785056632742957038675031919025073150071279809637583823685031517775340802775204246784351921837246403790295023908441247912688775917609367001464477503567237961805312027192326969318564880317732707838632533303910209637279596246755917575499097084795265997840564081792889260668309891481525415659060083067520548639985774686760801297360921958904857908267724879899985679152101230601203438152823097940546341530459546498394569530305499081110717451395630033244799602221866502693172029047508829027170809017610827657083864098067784384613320632380206740646491352548253838139242161715566358828418220372600796904217972552343437951509811418755873147979587386263563716475265659066889781130771711671285019395290423766176380185719616105779296089460329416853327916204938350883421514097269041072725777663624214483758460290878734235960717956448283456825695370400389296325762990612362193845030384122918227406050306078001565776907885272868406610556095656237206645101967761163255428655951225458310778916131336087102279138804092122317985107701279274622683555825752361063430999711882623750317586392407136850220926921469067440272876981804308565574544493900673534276339898580630381341507279943201046231550167377880408139349235368399214482958440916132388729555469148014713967560310539430418914784132825519502147036939564728688359708903005417624852261978722496145029568119198891539206527303248952661308481099108503104680909254254532780160191771340346753497335492289460721599944154511803875167727256909161410380828525206685718708755720625620693880835181494831349853900706364873574557041383967320121177992734574171617662298548241828755700688031846452594561598052255534574538890232654701339484057953572066401755301442191214643157231162098381075168743713998544017530088048117371112257370923607137869041756820602369271725948025331541512464579813965734773924637079095273309828233022160516216451728688601530959709929489686946832113413165347492430527367554879643071608058301748641996389684905998117862210059149473832967754482201971009506997735279778414918180158399378884416550462499302670726716411024526735510851071499602944057973625944409136719183233193112713326016743969284724751256158571951773621334472721508690102910932814435538398469985937690179515729219287469709501167572085813734224260187317595562257370654979529546006589288347306692460887203336963160323324308529549490642487900091731622152425323497424103418274522914645537093161852772988430829400079438350642161191985790660645163865547883468013309885178068967389367173605537603931569124354436466245468489613893481194754786110770202279243627373631868094131485878855893688873488340606449483578801233404095591185362222718951083129421131642672477130267621940102159691455916128992136477642120500987272854434817515451413492889043135378384418823234983941764936443882615332393801874622905051660425082620359956724907154384337088015986815348848480678846380098731074639423353904926713930177621623131235887458364176699732508554977197700455590882679412285063103440071267803270253617682138422783477316502691779683747207110474139996433900120610657814027060146825383996105393394839039476763500249915242079461274888446123188877851735357453930562776971152928148856599508762827053086978799608045940716366577862786473305140362548730017332527667703339511739073741254473587360161898375044791673976352032747879315209318218699624538581647101176149358594182127961236798889819187191901964915076825142515193346468962087130580416017784888259819125206319028302034799724672144733414267742083547165065344289402227584117888597286088865405095080901165874380945425828143864189944995197352035239921857243237961887496682159483493767431511506848428431202982685029017850556326955634906604605798802647095439083612604219450243095537296583719077711670994775282002850148425422679248622397502884524735129627228754144724370553779048379522193714523878826642559429472099964070205069703550117351700883362898016240011322541420322335132645080741819901709532220287127728781656752802857395249581427920138941377574572958209114591198999098332587371676216605334126427300783734666553002279482480788171882138346994786145181577831517129964316387962414788705262157901240357244237584303901456836486803772379220561083149092475635260051989227546333896595529212154678137771624472028414378178107039846616205811430270169410084233647758945557037969406643500986380690459793797803335003058803106347418545647239804174089037443002778101074054763728078197478509282927050634150425007140551585157955299354145299343532389818754136569983763086340674612617026356414451241671911824212238636341414068019709924016152730504562085546815348580457720060832059686440662971050284290039679133090012644890922102641208588413195315747870393684281708280983180721992526880809081517465470008415354357306393439398414439773788567601012104448297963940898896162262562525033391737545390360234646079515092934058532748646332665690573580813168813797855984279019660355256535412788242614528352784479650884678515309384911554196343988254631017758408506742223365537787503221148458633109460883233627357676025361361611599365673535900868006384885545696279698595513127268715720499116259500461590033896535359221410095440295868692516946103568382862050485794880112501300207683109791128880441796707664170071556095978683312723948963261438865361687567989266602807227582287101274485164327314505318385233234832862370097325452270369357081655555559722832951156266398231922404718693731844032954601544946921711776978149337674142402491047645426037137348406687404498420729942718636033067473661704930605705944762217615065867668866208903797641243979526377585626694661987974172854996333798301308986738250258378020524740072700385312466754453503166574732279675741102674011719637635530099472963516684624023523068519040899322488289143043960961961272708749708912476846065080016793991285191765101962520978932251857460299143383935564323388470610774127134718396500072395375051848985883074175536291485963997288058459169113982860258787088021300854883107903958262907179964753402684006832869124502028811632138281492160046763510560911612922423899530796863309922817602263729759963495746592673293414863915096123086642519693059407462468629013370583618501044259200106239316357093446553999886262919986586834414227768794360644465583609522217223874310497897250524123597393458567653694487064744400525628254526672841450585152063171058587754458121345910184193420271174403540405033564343681047782763585227592592073762688441263738142155241457491990154199176617643484262459651546857808119833332325899755848311167557316319559710220805489696240489917018756961503885623947673656665966341259677101102089838961919913034788340882137076339322782328865391249161071744067389016676760175187585726012360936992031181203238746818037779826323623641936256241392245005530639861275879895400358800948799973465432986778755079450541581326683022573958160518988038544779229985560912474258029319422033373891536525665426766540769206529750031861030351802180504241463932929291570296594089510817295290162552887369371448183630511045404527868282971841697271932776647960301745150099586287927629492066785048658169384640394754228397354088516013832230089612789255372231768099855988986816401689133543178902749281242518527768859508418581969287452876704540182986889111155346194286324654269300439703153484438286737699019915038026701266132416024351683839890697561028744346942472100308908320668421781172597953246051981555841201783487506854847051270194696591974742191203854907850748137749507510359534851164990126988779600416944471712291841628078691925601632826373768216006388696138288649624871475080521772200968920263030505889401200175713615020924009266218713676430356379978908172697655386346589261595989253649700913208667463232239549871124018493850613732445777579235702987565250291278047291822951922081666031072582615038393512011809833299458829162196093764135064494846313320351413343583805929938624186023930796216957199655880162248281862544649882470822588284472497728803461039074793454479008908020926768765084983694659497261075966755353233474453220633429398880452665412413890175370653624221698883873340062450019966037682106100264724071555828537757609813951095650061258620144794800409156568077692247164059677245430363892378216521043816331113071466735330280282651507051177870017647302664847171155323963295422018900598599012232024457021950550973493081491368793588953691826421514097573176567764081720554464850643899611634887241992867978436076773720518617872491866864810135578072681690673807834559281314745782278158813897505415645256566120680420484939517791870460854924916548585699007257318288013059060179369534262658145333630314125556273911760152111124004066750195276820279517765632437393706314743644384621915246852336831978397809632285052225720551858072075699651035462891007103063109079720408009632673070817577484944120493406042592686887756142260707951624265520636944669515539682718923402972026619956470273431854022591787839384731677011675795123696019594825884671886954186378095709328667961943039873468354964828536324406278251511989681227951145278291881166349667684078218035594901874715487793681374218693763393022791280310663421638499355895127727118853072145138906797343156264827808941813843355463584083370476097074507583470080730376412836509841272042700205417480449813493712107568093450707897790982215635758566020930973269394703031512284942914010881687103655333015660676269429057527768170315498118803456248601195794025858225049647602640051154171227917487259786153417611808921603353889128958096062703207771760073981025642247697583009769542024133534636082073879910641997507008295863840504858217922047569077110529795734982220994190234441426402269175296229309856488403106528698259924996972329414287469208559812500245655332086279752549729010619855184299008875812548406769631101042261598169024970951081737985207174074728974835999399380124674390003042962254223564068435213040433699391104202591009759290312411394751044082119896278954086401405566595947581598021847346230312444787385393388039373486355087612732210531989263119192722182814060810197888155555706016967175522518066139560675726260462701758931321583715545390626174020553187907272840807840727039754150202916929910353979951686609561338440526779048386063555284103596200344771009170280697400204511351573266116552116644369264393163355379830765803960606401411728262288192043120887443183151107383574468704033436355190560118227893047067823785586926064541680785985254288203537442470530928387796500899275587700884711958888092567704091329231616089915932694739934784949727799519177790500248552510885669242750559531223565938564046580548172958311825274296079742672731386559824405755292831800583592420792352796808389471884084658185321085568793699338203726193180598522205964925745364146367856836468290342238435818714257707594034151165834492727347993055752660068894697380125135363546065234584505903398519964358731012587269347238864982589916519466412657331487562027431022910115543789816372507290198005615086084280702253154019755981924314559430802666818462622593845189915627549830655947980994911259010744372019366810519691755160727925515951177965958582954981998673206896043831115038480881001341833576174973876113100929543334761689853434950181420927938575639996674875563092125198170706035452983136280503397862086736358082654873198399163425232431259646278452265852758419361271672631434200168659009080749468326452447169776156467423052570005761757317307120872010382054691950270469635311582591573624438903842769755013322380703774277886911504530202956383985344854660210791505296348851828904627651997475412503032856089564429070144784368537116674781295495204108512919192232423763661506447962200932966179458262807946735358037343147887364801309780993999551480160426373223182442741537355690499010755922259841365668310008479461748692324378881959192770603386830600171554436387786154484379290803093352503735484971993316451367638687720421680582583350556424816465028127747145157470960414332990849820667541965763625094383263029273589861330513041562340563347584948762244880235087981919506216317416789788172087259264699920939748275499744138114482266435745010581243260266446907255141774719304858466705741775325449049833399734317399928012729128237167510507086957579370111383527430840131490534176310692321449762999934675900378834953395148323324166018894831761461168312604968192241112588327648489920536939886830353022491262190081901148672764642502119341862395760568118685938326356108878003795836708731182893086216409847358587645288675269058717946333944826044874644923326803588971548796359269979461576795849681068933842275394658167461475110968997167636436673651975569075193593355632870047544198660570058203086623247519501329283570440015440933297243043295073497226092154532684641933671682415792342915019539549529597089257284129608712689566597799595000249261949450162162776699026224934205865979907509096752062841231150358326145098007470148597715498253007015941332014309902765476651964645383245314082694353043120835798420771453869832630375860077766521461489773071473872826553246270295629423406503478179187127953714484577062654098122059471807933303768858376331933754674569104804319121396745511840847139159531922370802637840718727796975071958635472380567364827727664666450395635326662775618398119893682705901835424222165703228579872224676206467728351927760867984129781470779386019153657345180182561743594500910773223636678804658199834728041161991847858060726148701039568229179185407061634147790584455101001983430422274711280808692858757600657041882769209416740876893050711683906383356696155679696746340685761741145866959153102699996602424211463954868021250639998813046631854381486683913275338945131716262859596809738549746539293099457936634835569329971504691449049496023937438181158392182784477144822116325364593653532058374501293395919099135767319985355581530793567683188450078029777584329717962645179404731514259571527964471055010363513591680640753034632041529381532122225714039103983824233404504441098018697032892609249286674251377034932842724939002207034004494112925616439494473302948452955673367093672853546708646731360781993440243975231112220150137045995336244525459480773302135739126300846355585138876408201340867453785199487779003880836200922110284470434392795241616734242845429206527527110318950221824759976520614681478042100879839949262689841132011847965614419620308415666314088859638406167450774112121342982837305147958048719137513897043163152707476002401947554112017100589055327439710622998900859166965521566500529374231253848995336802349663070089155844687791484395332117866348296401236731420028501224438353087006963173355339192547662161501141640643507671193816069762298343303769771323405747264585727916432077108380680158039281200033236649493839250670094227721771535013201931953263048940341521816802635473906327283449150327314052885001496802120844408023082788408190284651066608316864430437615699345746686738118326857221695484849576176286651400863409646257631354898208315463622557099148520702831408249455825303314491040524897526686451846974093954200438558092681675155158413690762535178533174619838032048876479188099784616732555168547560610547802378852713920358512602775923009391084195455967031036357294710555731810012610291826309361960805799205464699604221411119927753877283028228464235990648928732611999078296883265745093501730997473543367074007014009009886840346373109742739617834731851464714112753311467606051737309627266734657144099244812657533999547570283437721599398552482270035537931334518928835482306154908671685063941729894055408294686135848270190099201547435730186794959794589031418440272825829212529224240980579888859672303377830479936851093450233513012533714459485080103157425573339204810874573766861954259593879951054563964031114926789787185686577954525592919643041785026490001271356189286583081205481965167084649796823673554935095041550099694655033319414101061327805206825205122419238884854346478561896291137271390312095568432600065785390137603681611241588088352698942924878524512942573814289511313804124017681827231301719599685640164083139635506691152367000108675219834723603854923438930031889368509963608890120863710511629903378690101027677339786553839757635088217439431414096751359839752129283372679172317022468208740015020096391178284927943067150371486857815640839442262152090710064386720397429210770563206100000712106255394722115092087138055378791353797678620770968384491958056448847393696365556892810130455942251264360334090879679623348865285055807175176882120560915449232596203186861056347350217022338520196383602181308135519014006817109242889011890439086758792019995575618788876841274894435515110281124018760993686710134872964904618740145531112687969296791147333554095907444733280894213739612004386891201386257580147881431615843377349294837082408984457520869243296530093131877538317375139974267128725026277214934009851679090649763997599356880084880995811652022243501591226800859268154542943577527066418965874349076167567680299783106373344213698221921159164987166667910675891576633151562763702197888977713698127819508889017008796249354326337646126143026779417232827709638158051665565714500011749483026247802353632666294446079682097548417890921011118815269682264373114774080756428025745218394815378148477796339809924575774466126304428245027896676146458252495929863991300424289342871885671141167570572796980245455056990428449096864173429062491986437956455738734207346823290581871220877187088343241871797405536889611380579961174741985254076943908265196700102805373626686716976779879758220327244344024868624519352127051815709674976733911041675114297439425398696893990382190172864278431708665159417523549640191767832034228300527718456765697459058325701573810975187408842023708332822260268311476714191533154531290392964819437286199400166660512914527236288664022747647473611624680114793221632165656263168570107568254011523230724102103495984203991364261251595235197933322986825501718815675959552311803084823047674137471323890486831470419259968694673846705916760965492645199692553397524597783513357941553328013837301286263018826944983829355423161445272120893261603637135548753405928690281816884895831414090958413440745741979319643300505831012626877976712008055661469796477031407684994669114882867499999156013993621920828534903613295407935192680159896759858389739307243933294520561180101568903167079716767932128963412197817507895502095208757737152689271634096733814874445469977967880641706881581107798534389482009626462540986102943396421556257438888163116594825962099694558527269161136990282323303338977492598552460107802201006528243073092846839783716490447772130814414015022143549836058642278828578368457480520069785896690715618603592102448704205849019222815306003290287925911845826311723235956359446366182742667770100288667803310088235514656340890468073226688763920951784028433908754553965302150773338553802564689724915343080669179676026540662155890440049618194838967848829816251695283567364660569759520959938793799506843030807419996906638309848563366300653252742476818012493193254248784625526081774102907271779894653811492904966132476283067374623896708493708299780363754876247166290489602344017873996939104848643160601130377830847563429002709621507348709884458325417832753247187052777347267463802888770992098507344088284660722630960531835313514370672435029700345018597363596359924029382276688881068713996836452798588345047423538703842157349937728617661010581524529548536048630942932715441155984858184875930996469987898905257500866490231269080139137100967250360996658621770189693378559210140597229791871542733471099724597460369080048432211404428849377689766508049948117079247101576361820659962793092160987671998161528221338452957308196535445475028340021143125788257524950075890148513472215850706537151078010198487965384657448840147331408395474937893163812961068043929056139907599781921379775669646471811317821090886585100518306896948712195108042069332329858959417339072678196290499979324572133190659143700412466635088711655182668427119487960801008813294964893669798113833727176546426667651358594739207175330773633314616815776747132890443056769710843602176949478670880469127130982744833823393001131375279418052965333240863835198916678908489552071038061125382768067236162897297132041801270990304380399829490159818615512042839971694972286299402075384543701393104535183583544020112986505948124952759117067730772940609883253846378725126211769919308674666134191112402509799652035353887568905292716483398833058667676294749735858828887207367147359370866576222987775134212055367853925568142730183333968659133106356939288436250208867698260276293198805903007537508943158781071109065871979047887081392749016263791674774485406906014802427164252234676554869235217768450211592911102392993424427020080800136039331646524287327654074102642373300857471278191302003103019062166699016310583999259870817041691002204568336180569002293945402296771786074099220881427180459482209504969022741506441116830377183479185734043163691543199345715998932715228061514435057279962561460478664920679839310442220240427707046400580806356710470271253433443155698469846973614726398730377481605769568346513414984642724509295275709143312522814025422666320510495983999178068404909120737754966531767898961903195404508930752836320341403543803149127222416606654393175941829156667137771526662074312635941197331660184511346061303592917507841028012432225509648801495986626453846514173075529390550610857916521732052372893317079447510021272132429979604770761372266348078455427654029504302730678894812659097427554818903967823461529941284036903336751123875024527649418358615365401010870726860414494278437794042434797166542502160057087267744925797162251974292880187802718518929031055456890389405015886941762779660404864247767227569550721408364821198180923693473581126195245267906770409338139050779840705568328725692222423846724093004220564959768717735021866625527147171523533761077812439262229359137489117765859867703556353679117172070831542682210842590066611272418516715057884350415473970465295198631999283569141766584114285175770538426283434314250326608782514206167652590167890944712012042648182241260818129666149731300050892056943479396799478414213819090513104680503284510572144073300021066036354619604201918388869600878936767680503455049857187331773939337989668364634341605661499878652022260564084574227439299440019820646558350680210431301230477657719351735957765310254936971011033682607885994518244107437733683911074817358390674697311330618357383767165179050814726024576374239034246547207507167594335823100840213567905543158546413723944862369399590808539993799499660025704561658643825618871738023583618569127913184758328099258869029320599606115874733977701343292815664107666159503291263850854389015418712450510597587157272601097887991943581744716134606315936740607650148527161239674106001671025002454668781270833864525679924533355961605396041011564973272336875121164330823520944530581526165323559515990766585842957730888215785317121732223004390116520422232620866789458566585126421201506747203265140387221718010925897546397777824454598774695041875424140488849810653809530445882053402518547945756175147579736162263178778766125478406942158148530615533972929012235792975962461904297331163153243698613081826857474844519364807452454791219503555080671541302389321934753934501919690619504526074687329500915810932977137435941425109032522406661674412407400586258088345303413234651055275228843309763422548331198685145855463534683981840267628505620021417874688401042118074431881771268087259936322781372068934931424045881018552966891699338053520198526891598180755480173529581546127170463980640758013736440350379403559913213640317313509890852548576612595522589012569356154355484430888919336556094655429418083921675357550706440583081759824775301675306143782781457002443821043002356979183232833030075884983161788485599516851610651696922001613992610795716936641358837516824352707684239094800659967069449117034995993194420383799914568881507374370669501221337520891814713238159329021377489798818729059228617738576744795605358648715673553266030092981400030743932136336573132124855085736306040170694028957648494964533110441099301141679895298865143676364702456490173346080296923050166333193786016689723121723220695720350847955787171500728233616750752123362603423025402237236127685221312180630165334332219288835365357860350889216671045608901461612169420775283814699661585483246298013806254075364942817024882857688128308067478577211065251849333057099285903728068249128289914150763968094463649098364501731523001266722836815579418283101471522729184873341125856051258637332386155451177899741851701893500575506105356591540279401538941230728897165596745079207816492154214088557981168237603119776192492166080455565329978711130599188872130126941980805489565439125366561420608931486616809744523993594188161772692722238535028798209392953524703123212977555147720114695803998412003833519050130614166723705266136056588881216592417244950624775176032569861590893994054529472418169375032383649520671977294315554608888227263426545085941192688983475419764336805907292634895040148043253725649037472620876742017606729361388213479878047769510568462268649425046749813391220630937508472398448151505479308143036055451473719574759316623609102786707083404293565514248795783093542041196182072140987851969823930872507016743953809715837408438448910227836388178504276248173080995642898879032507011481041561157836272437119715604480327611903714741931162739663973487906769371933668764771152909386153998141412321711914750631309015855690864824999313522582311035230706804713413573392987532780601674000337400200383660872699615584005882218871292148078267747045134446190800327940560449000988542470615195999350969293887774071031480824079195510519474908265564997561883084262405925416093496406915326536464147761996120493108911803228936551010195915461373741371653529037628960753594244411081246574665752024261997429523946418274235855539070642701485034453958869688973663018971952610676851310301229400894487275557662780961966158298181733226775962135138434825212714101531619931688637318208143855751800042721300257864127852294275743793824945329659901336377635335872268238386506579230065897825795317797888760287414335436039348769595625730632990878795260938081980301274777581907961001445424579299207883100731228243689016490713171299017900655709719631143515711224219833044951618339745674361614804422992443116262431114441028072245767294700509180499915899689550494241614056270181333609887307328603020513790919431916814125084654461754472081061630696649471525458005164223000161640831757194650255039971515866205232552880578472775465143801906115349100518554682961799248797819676031033769679065622219706849434440278085875094240124589491752911704434760639452874319038155978306544643600616470617641956338226487320626454194727965685126487369805620807652668887097018094142510300118255338951922043670369448995065902185365266228057227065185309020473202398373071150957756789302207345402893155753011862023561175510373884816702832805095352936639772008698278753426621295798794959032287357021398676261702882880763037959006569049769355545533300398711664127575227045257127532480357885430945539645616934950831436696929176175465555066410193054505431097954179823186619460412864836310084656507222162413444734968134099991764427596164543971516582106612340588200476463144591049449374882062706358284078642591285152133174992656395402706959290750286582090247135101831872619530841128743889836293942656828416724692844416352005175563130745359166350044937303820470387384686148677012777956106130351696947138453104580377408195881956053312652465210546223495605800807624558406745806242239035672717227141049431029291711194845254261499917222099157370306643569868957812969302663134646146642551995773524426336895448872393910642297087002437820883965311749456193953340007374203407475664139761239828879646971161039612087784641746313943641818538010304816926072018738599180069035671269057117883547838515661004718910605272548715168646151775617588964676600928022045575446770722589203400226245151371972054817362671130225180825788807098651148162305244578487582504160687566756739618301174145672568482348698120894421817565022647890685851827103785305362301019681652144806886594380900012440846475548274106669267140678445991629642053937712853393023355940557961074814375504055888671982023546969567868415817275823234288355679237703509520922968053186600484041941361722339443883867437900927610815237506001136090930381940179279842752350362168486270866031332636267121959621697562834659291883074021251495401088179038426191552611242073829469566261254471340409352443445468968704597501027145923091509120480324934076270603904876565860407414187636934308904888628847246719466161425522378721955503729407755732208980537420290429137734622979107175702691371339734149696603481169864828486389719359071355205078663592280102741556923239102793711743355609424402307478575179874752199893684982258647622194211627294912539869204297832726984824340785884443568700728776400944516990342529889100396334484716897527619862294460621961147706903978384317618821140905517393883023023518678812434086268691853469369318485532742047273072469035704361699766286960154119036872635686280588222829710169614016401764482487822132237200033750362193237914488432097810846322377543425808148320021122328125188905281143537024744865846621769035357170830732422343374808213224373192769927736698739314418453206847015306979335496578931085245979448089930813498200317683720815651167909840590816732389191944113974294791153959909115817118238067631566232170037006042728183963193703436611891939827754606964192083371592755273084411174436482892199193478128529708658420195989159906853879013640659514135564270868208604764848588775005274884253330103622821809540075073732541141946921330696842343448766974535542903253113971524810841794693105832833730533431413410524344184138365697723624483347810889081597382581644664792001689124275286399991545546173361992807038670316645922966623136119638570103881270422849769705529002148226756426374934516198704907051845083895106643851063009050458665864672713013508803012169148151893901409851979954118858571934666288002679439935465561417877634553794319102906237389988534040742838356330319306301155190823186689446529939509963126599033248560374409104299764353589650365968472013585150790768079285875190388334529286161663759345006716160392558051978745357382045703469507057836860197122715104748496560814176760022899269688783846064153816654442133577827805731778747402789399709013346184810021961503241698324472350990338964665863301525484500819308950180376299170524168950152892225409763484518529795797729324036161973845736086236036087730544008008707187922696126620544984771510060187528565659249768882008033705465090950678485149502873305181824914237580762657149519148440144074540750310094194986775020845079027993866766008458278029729540711373702849671945989925753948966434014780329709817836643202962791359780490245190458801604437553657669286061760669728684417112284272403521093403385344533274748797962491563824877848580858647101651850478046205949095945284362530183481510579346255527963784825735578523929156794052879399680398984776936413737063664332038249046319756525158848983734301033714401816333076281501813697798854995934344489943969370383927099057204802294414126505289952425637542905578424838357503520599967094832706004298094836261803302000200761325407333422423108133396867609444101380141335165542422383448610505902127775174628781390419183845656847828430404006939679006742443503679678249653157484979345184624362557990865271425816927623138583000100914716660418973070172592021994827065178003052691489389398093858484849087771591144018478243498083621786944728881740038383744391148394973269053462708238874526194116925290365280096165731380444572342198184244212095944582226424647811321749045848840816933087987936223014421360057577941403292374798662904682825084109712792697040419137278420080583345763708460588577148702910033902328689772334374777005883422964539626742597265866426220356948070165277734371822711382342074775172282810459697494552364814967531904925618854437853259073435039521759624096588806893595285415005501857824579178858727702832865588928837596307584754132475031608961339600354297480510234045881651965410469186783240227450271612789592879909144446427170956410985820457723747236067883413554318419351393628464101158848596851048612704241113673223386976716190446485077575251444907513153778287960984741757005058682156719715730229760970808698332455635130642368195481513595639019275155426800538923060291938519785339720792623630813510553464402283901950434321874469815986282675289272481915688073331965371511838091126567036807227918211727194199166233235063056805707923578534011787741178751424034597200879679322217178348838649422738440050831746507042329357629844245717286871839107514428777963535825647192901468526507260920708463660244273857912370417771007704364474991696419271314031248308923829865695697930657236951346025319630316213984357488397606225546428895323411792914074626178805143747911038828527065637164139443270369038583803444075771970204152445544603491227557481896285445869492131756986062363285440648934152026696001171352913243921597729231485408447351172016523436481097041599362113955356998925383923671151272233508085844148042974636663457149516594733486909065974550908458015213157576907542778122069858575133026623436811946430972762486295646556956105274293738157250025838594981123936186011295360606026201160731772587129484842468161514976637809165843273125814604587132803263693928174689385047892068543714387421571261690066314323397241919834169725586068117836780663268411544505419951735137090364295586552317676834168103730152347922821297533781755179742008618759429292961804718213957208359453532880289749369949594224648702738832347836113152863368342201783571432041799772407818960938280734087301339301605579404089159934346694353133172210077176356351021133983381944692504999253389817146930232684753404284115050686598993703867373317878262676455937411125893137818465663352454630153413978279256630060062510742156239408025750800517301140158226745220783853964355933007947001684663167115714599757914987685382412224434152391861646025264025348674376588674897873948463795974961210318419259908602582010922698083240615803058497078010418473503592805269426647418493315580631197551597268465384206317378434665676222646077844604206572191427806214713206130029474810855293527434258760194145064856138089323914565464680448216599252944723919730617163411014096349117872987342677574723694206019611711242934575787952091890327278747628818681056822554465912292208145780571105805429639840536333489803349274471239325427317197942258724314841704681827197218945032299316391260336025336975429832299658532810704363511957074056332981170494297272253752923834959869254182994617888016606447158384085426633944464215855263596728261254020800058209699232061819859443452784595383577625260624898266338135247421979084782455878401344338250719764606839787262837224495933889582259085561846946358580949541625256478236162243719725746966859219796896493040374117429664774706546883026489760267594791328829131413118799277718136745164927851291744048905605935559643028806651361386433031399940860497887716479044715335649910816379577273917570135643494566404831587612579621454045548464972941074489907803659449768700135430673979812526413690139850376689671743203194710037735507862553011306737751535184975725468662974976301807220616334668972496060366998443218891549343123848729128965137654219249976484742469346429886132992056523511019532979224044317974115618851087737454976669860653482153640910444773257445530592247591397907206923317817088394829025806398941944296240746170185653574146776118075601723541856060033164732703242360314735467851034330947558534715212144057063201675669955250870453563248987341828886274054321310831442174781437240122569866948035381368973768774157246954043787125448224204084112513539314025104475464428678028562562867302311158086768716375213510577028283391060126633387951726337737779381025490255717255757891032469313191825959246538363969501211087543242992773485509877268147668414366321127437856961375843338962054141414233346253838001204035056329490356067103419730467661280066313693304984971773203344025289987491996332773556028283940892028904481031986218337622404924434568940508222585279845927763144020564458433179637736457249838329508416604911135198291104625892767263298193034920049948455695495189754461291269420947550827904753875601128378455601225150967616907778606554418556103839937938740608679593808981932860226681143182044733202555096878152012955532851759700193853536400753831143487355295482788477306802304836318124596455032181309846623269164169583021713740002870698458096472521200924525016616217463207433174572293135172550168955557121486220626661755392772173346875888068983223814965907402557805118078902170289487465720683506469802611245664768327811974284118659615996107885441049465417311854405499031085434808319741028761169487840490721133252013416417446661680027333116293827489058711643302066103604330097727265348069777525700089558105495265735857674281712597374201573013079164363986293881529017076882377911739748779426750280213843488252792439347895917096663757221825896076277726367995835823349753685159082136855569205566384811544353635903284922791435414724092765489788480109021472364255931517033367128244760298797440356196808932595948901913902901896527577045251721433504506393889922716836575563301790334877817667213085794974456768469992872596113895734098172959090709473167205120512250497127745694048541001111885177851478090993880293719492773690121927778976486260063858002538618375422302919138583461610259104463404101570950301746609149799773423730324071507507532275544539745124869811268478301110477373868237271811763449875505131017926599461388559564900935206001414329318551268619175630398096663051450382044856397807370206042924617743871383230523598999986508903807874295423382395521055088504160078120669692353101859297819516385173660608742113286855274345446267149741759043756220744106347850706130475338650033533168126398111323652271412000918973556475932521183485369231518804964143450434552434264627166133137939251676873053351981791113478086699805372301702683852868987397203254196147176948287274028685408625442919676839492302170735912566063638381863701123496157811430777637213224579635988978531534276957968326201560680849165156676086695474785086733490055326994961324856110693874238307847476450852593656481454895875446882297496237954146782360249709094240203501770835358001010555609461703912484305597562905910814173279695251685926331562394329483942515530305037649476162471486368227430470472147760055052374146864211483575509042233029625715117369661474187520913873819551107986430386087588673821472579427787508034146827989041506434148793315863081749518801289527427683655045815254344372594825269037108592449044640274453746930569090514902504022744294974725413860526279138387414625607188844755598096093823656553872562310349029558207602832301053804827302486374354502912248317011669942475999113558657527669008035666144068265844854141742608643847775603000346303673599162291630796016863578107108914301023581804884788589800733842217322582953829284631087309561457440041367313679707130472772212387273556086220678850840756049288445122524147155988662788261384361219587017973186606210280373787889443181997874946666348277860397207752700718113509785577360632271160399411562449839879065499224188494653777805789000493131783852455677881722283802658425361162831757837934924076439202773903767668130975443474937535370357353226603740178049661658995144617875325060320369078251596979359924939633274570260713175842828909118703003688996345697639297888733899710536044843693813343387988115907504631108738466424057212992095227994691103015068533714965379775963131534057318578237333110275333289325934074334412461607434439050753300939712342940749815516219424182232278798962794427689826206295377876800868152117389851312191375018353113721734211842647194531659745189028612445275345663514254489004196714211198115855833567686924468358600981525761984204261557058193299086207117379673407004841601463131843420185619486338426587161661378181835251827713472262112955765240819270022678596286152310601028557967363164800119118385165971781410263632291170290361426507678075673415084768353085444858415594776932249326041373147771984003839887807538061540877084143298735044494082750729581088179728322571249735971091806627318705230568914452340935330116273446659143217822595821547000489618720945128762884881421678040514454123413934956485661586669625627717346820253434852083508453360676468469905737292402258638846012782549803028264273736963110247205056142519773061541956071362436060446656413012988326945848357526180563897717630860201761027019365595598944737713578987535512102630077864125642628356329067376656597140174374147848222711656193328928587009429194015809185227812527392171972600504872268177069431873326559014731979393691264190756021622108608769772611185399341882499209140685271977316466780048330924932227883766821845678839104085537144904457796138524701439083820801481038095712125790437396274906015249332853527352003501760991894198201993358036961178271844329735321767385614693896174402965654846227973254583107266973305298687982667593913656779185565165300673060984370468238487861633347811713470494034638271142437761846745169314557492099189927169692218428595842181452131114874466389026061921579803948325685051504002275172420377799451271555464309789787463425007890873502768149464140179624751732211164696917564128807629284350475068443969842072382430682418768875186355061642308059526442544668314832875250147647999735572507755057066840912307191537797672187619701312724483100051218257933072893382597594490965224804101652672861035257186676220914379687431976486412175886851394548865711223544767469648891384212870443498845778643814232109418069850563565096236515444593427644507482754696879633034464005926934339609157450463838486865255402593581913313450398869052892195959459240601566725645230262197421248094046873443094540731196702887292148117823042857308204679709255734837105262778940782352166053952028720266572802035306730903432098279838072634560374813542884213455520326652888724178968186439936698532782275097446667766331707050254311449191177013356817013409183298011285352920558946291773289424169227692643565443653192650881049904300868919637830759943503683097481624204930241265219809119789795409684205065425481560454068872510590954330341923483470570965465396785118435027940598473775980050448339004815158516258673720084071450581687480627235625565322197722502360624213593780762154324794145608989662237922978657463816202579323026156245259879729450691541705996790260778635833783133675120207144107427658575664871514204935432854759839816413191395354617482186932938396270423295629406233258903001326501756944827575207775554065195192684619870098425387699690689567374719038964242604914159328887806972851665267575756467753580470197455244167129428830733681978488553862734707065317412691105923065991473388515543505443149888345175918200367011738659941083445175955645231910092949730332436425781103658637199695135532220289810564106446445564432463365009104881715528095324999245434466397148913744899044136635177972846761768773633944355447601326731743658702580470008435289426933172052979202845258279703519097672256486464598748285691387622296163317421873500747881388701236801528329519163273693577838495609345426162014934476243069049681648522932102636506511662095464242579703705793755361075482514821444496881911949490708925063994406478694152834068013183633721981324030277857318614568200992162226715420346305479638221825616654932513499736214708539142775852043272551920658770727499672751591462019366784015918875888777214971295990919020873150354300159630599180303384885822923453500241958309659229282360561003138357164442085099391102723182255994929689721585759949397152501942224073933842794744097707421266108345704934724513704809074252818239550533115773948674758183071583474400999717135060972041367720463929388687806977914279891547251239502899031322099140362733131928289382307648083320820242566977200587832518468700113700934461366009268793889793649185267127456135200812838454313779692951903829576567839774690333461704883812189234572580758739437590124960193994718428594030850906580595458250504082730524723589797319670094844168414422800201029637945209113813126916279605631758616374898051744547092449848799286261285249664827007626359545721709651308349254139796942970208842491280254285984146279513325134924507216142479294377285856968833731868582641254751039791125388103781038553616334938978376361332668590183708377647193148871908415940431451423600740335945499492424827359301749351660504730784343776453010905952967086313470464342897277960693394543913114298305863501453219639561808787020947545464465747670334627940577100506694703391627415324646257276892124022850033364238451028704276331049927011271171833645175064838673962230509826610614945954222106801032551823275313311679554426379148662827202517795099799278226849933867436191969260165174292023808334535655369449960001988182991603126807190622726486903624659089652217405108951021304244874159932070621681780533070190958190986938334338166975961357364508610340053559561803926397981731138067733711525944877182445077345254578733782580519806265032566967044477230311480177663446735078024765010230115293906033695862516205520527964569394547385036784056524573061074368204090784678269843749880675298976767018557665671666784871274479974091980781362465432139683459822550599114313430616528431897108287831723248574258370026247544212441789088611056357538080784958536414031268025650035285341061758181364938194079308917463777900218720272595643113350172941859271296586380794779220877723056933759343523935411711631194553470644536533645685803214069778732380947945389260196543259612617511400282322670230963838392617340366448834326745223527251367581589499471265456873193223438992011953259761393835708777722946656388571203125465170535757215678745857181033811966013620641015448588131123190953569142551420654953252079798382853996149180729139321550676711686390792268562445984117673055055793104124379499795477547927583129099638988519219756153742592691912160887884315932483776939009726701513662997168474494398754228647975882745774012030171615767264562992320988232087352570452673442756304391901276609889656006884607438474614663446718054825145891637509154300039943613878958189128437972544907361573812140091907229174896024122501109806282187678871239938860904333128016123320999479408359429382908986924778354007525173370617070512432450442792750905716935448107110923983340108453782167176973391935255486781298162822251897376025596087195214873557442951743032501658453430083147950591534679015288771583213171924224299144838056680470014590314543338894726847704606925508609454776482657619016561375985739730638074621192697346112670055749712065517343717828793052705310402454721523008596458223126921281364816147907936035119898947330982856607512286072953272726609284865145270488912055399736330587025752097477247580460705546144064939353172466412946275036141803135030183990572631220896822095361803909760336502089482060584056420606684518585655171021260781503423377770562780299359614954409383024168158972529323011438033397364609871236379130396120276532313094153480386860973020620490591331660643637292836442658608837043793171681260189522860068369976337743108447738299888668248100056289963000536050913694482292968475577950594518670299447222390838898784652758868226633975041834290508617091708403360464371416526211379844635908102433451385188682428710952539516360403448727866863489795720755031847856357769268431857058655785990443129650839451888924029386511500256299302577190824167641217109972381357666256432567243093562584832524554927182164911445937234552732216114002663525506195851091070351606560494558085093508601390668073829908186369040992139610813118902736012375917505437372933779599251944795872410643910560918102743218544629149277424362325805712463095860460670741719932366335144540462885612085206161583976416745337806349071402731341095237583794214361345645191646340752350189065516547324670849806370474304493227383241804809851034766117090291563033137430612122744737483920914393601065201431717627538536477166724139488712814822988325091596648168951728993414805661603441761070769159324923510882028767234233039048190588307410064057531319381952510647327772428344282254291450113921202683776961093212206569131291971237515631105619699469431859506676574151032341136642763809886187710932169837331385636777516613927980309709226661224112234047151525012731642373625642490020984981413150374111668804151051864391712746468646615353895145466310780709536508109154445197889167037972856410942373201146282975038053639188344245282338016290058210874692836700175092696820225392690616334412437178815830063768184423785766963516497835839475201017675702693945698580143689439116646671363490405751835983608868080134924244066207350177979196682860942275585550221908472927337247955472684802602111321922291028209130577162519878446280863052180167584742363325798983702686682778224518614117611113630588947985270228729949517207984927461579845946980234521894082257411901418742983486904661300024383213903943077267240067627490033698580781617036215193753959486533743166055097135538815837423319581613053842792777462689589357813307829528683634604319734676168103714468136605234561574243451162399989351920035195283472964182680317509781094880852306204559822726019835635223172419846784537053700136723615845925402436996471812128856116237225704976909410145568779007481648730588156448489641904058671719469218792000981580012497911740143988245817236791081698855113925655425743466454166698071851587980686348933284679856541788877492701300495499658253153344375021090149876859471873080951491061088533157861584649009934950681600853322718768627863525488099047028002250122004126748092133790166831111547762400728740956241982206275859061077805563691686352155597017549276551058927676614308099933783989524367157524837889896145791246694202572636097913912771406360012451692785503208969333244077938855824711457817907425021202728204627297469276852646969734319168116362629490441435860353580817457548429079465240750449126864787184593292886639668798055703937895199994042829900726152482874758874252977424696649940896475308631251166945409834277380794249071990854404582054661127986842723332629985123037922644087397941410927256777252394054932053958718639621320800384433890604724955036457246654772647507012794664933272233112400209056136507631873542518046915016616815545514710982153494151367137881855700369476543189415215309524905381697793308811581288545357175806840366070603065947253412858687375981523785958028396601951484334578617908172801328513440991139104209600931576516711764116228589467882496346105158152977101035517712549356204087523523378746383430056122098662900386797659566166735264598707095858607119007778134718508865363857431862633133581251173773050325129977044899465384054273818391843044232471593832283878896162826274246937765600776567367952599003757568458855364404778857704410392733577818787009583935226461537751067937299401707082528943133690240619327581390255966263596997494341028194966631187744983862355814948185681587351876625452178302151791826022286908872643906789408322822624806122656374441321399623544287792171306772504605914241753378268263217213487585752662745473388221868672811672973469863134882746066479934873459523126170995361406745420618174371994016595123050934508965078335060432717241213448678554569473579167911384244550546845710126851638702265791191909090352618690304905364850775865937824486897021501266449218135412881695899050571716363316822340948152894661107613215902554943649111961356052004460740654988830966460523531242070624196028258182478120529101613719032607385238420482153935832204340230242708279025705774166823649231965539369180901968456539818566080853998388142154803885227110927874991615909681944893890468144820333116754022868862004442846167922645470124289528728245607738586552416585000330208182838627299266017432557107245563520570730407883441713031154430987378543684237384293801164942936751835171460363269403300331718013033331290960341636925249499986368635602710073200241915118654360352042109871380119378486850021590417290696120487455681071722125995263700952939487614994554705889949404957839962793722113905275662364560107664465905418164307775862431040805242357464725899146524548603005259808963403440484255978801515891646657979197564469133945138282351702351859857148210913848159268129577711954550212616854832731735864664727952524930912099647559487292700539615532929551275611565049096484415824862817346577038079629042266003469603021593621508389284456823373234501668586033021725473234523247619370041772871194199433880465406380406060006898923471087581467807337339698489653053833101620239826961568440549046171843519129620382721240444026542123664202363071454506236100426720795021034784528772796653663214251577026535093276106690825777818116137464572406260307393236944544561882339803207673444297990233858175041483794340308185439048756509189773855504911155396489959730694250212497196912744120825380297662179643890812987677547624296552149305537657284190551578140131445057280211000824102702198115640659971094566356980901416437025477823403162025278090786880805360213549186615857357153228035460593393763727241806146039867898280086940137386921245449388185063335824505882986381633256334302805837374875826631083218478908915107608645441121414780191689661010524883364683617689945981459556906555783533274675607273255428568000733327212671535145598745259282110664140293350749937620186641511321774268496233172984174076450871788629984106404021824799012497895311365641883438270378953988162290643840368746335370333609288906623345824057868610923232293135296251353313628448000524027949800250286463952454210968493275510833626897613532410147202771401861905076507016450538623283243812574511084373451763651529165479369200029528827379046405491034048958607555212711541995389147526851691846671772568829639490455939918264110519504942289471127282010865069039285816068311016452410698463614543497421993932218247563008351272374771127201671271799541124111763142970142289925998139227471202896879988417016709368282301909989775996379733597038991717748427023951817068648073409358336842462111716752844325926944442319718764715967964674420138735830648301989645736488614232072088077360540514732339380259047135021893904089812088820850147947935395298239882257566131928027081854252405502778834363543138603987320742416510842566664295328508078595113374961248172098122234048431186295266107816792429657394256688681458457086388572093712093746625302727116175955819237635186156266334218639427545614107225542666156742008002351363858552024623284303073961365103849311883520508838003208850015463016254583550016450749424019535931519197423052600297958405351679233372065474942384180348161076382387604810406102429110339964721677479280106528356395066061163276054521473560099031845588422628713761676321601231221440599514424333799487742395458776018486663720323927725324473604285965887334237667207235110553381815206669222337240213450628331272858432013505593543733301249978374734587711436082701370858267008996928077905586463519906146407426493631548962929082313874746828234139371519521686777250623476493975274298475007483328638711745383481689966535114531779918625413537721497112712648545140123831219771240488219368966385291760046043498475006343253061080306906739131499702543668032881901308438007491747659488967318650811006111337836933771866582335566342297787365896543626479244758752501449488225865442639309865621844138410525788564185317763125117608549279392731777792086163551537181723652492449112023746948974448933394921576804380890364420117594343364933516341569981695180289072106278908910883052887731683668752273588306504443533863968597141381026495192343292607067368659782715042112043855023662703155489445174015441784033193388609446639661731941321864790188930245099391978337521578901129275854708454726828136067978859167603113172200414756153138888660110413106176796502312515988598041270790383665421323852327159273946409286565858230546057214383621980212618937765273211246121728189330118354551316842717533010758841632087243068369227136726936157375650696083572063128151566407754815138715132678997986927175778946084547691308268103880109165526312307736895958588608960670305113736809365738252467288649312751990974070684044427582076666772566010879400520071543519034560450534675671709648793203469041499857452170863748828722906097683829495376499330642738597143310479394368300621748629387788917203537861791780722559951787262631454012711603828988051207064655142045911242703621897823966239522527834122907866764934336711644851732425673119761077533340450511125174137861500854760158970449474421623334604956773512922891784724189462797841416390828793083634809860713178359490383480146096106260609642365928915505383467347377008501013237260328305219586530369004739696832936887254233453652628101962589687296517539320715265059560009035391764868058328916706791155205744397255082360266963032369385515211815791986743460081896430390018004000962121893328735044396584754834214020466730356182774777345212606069183614589012904293039560063521550713367513130213662318995612407629770700455692655810011963120995658649368030935584273127649719450044496056707730142174544950272968251843023421836354376369321954744041478432239635386448643031525541787633399718442764052850056001431833422111415716406008810501048894896722263578945495116975440611804108474127532211714286275385382523963683889328353852860285761190651666009325317737240137522590196378949369419511052018233805277798002066234213340147576114002688875842488254551123613301464295106586384351178944531364806154981542619234239459118336779393391985282833806562840987058494577730916311018763533976997552485165496281856465652643887763742948055333397052810566663986321827503511674631842072762212207151532610523129255190053072808170504902269714752596249382746608865743118299439573032658907427956430546783144315452290074073436330189841889388541395811695729586705503152856751658413342748784587268849749119926720525455293165842165217384742707706937343831475361176471963593521114596984158718389222476801660952297263452405752389766722740291858964166116529933876681491723788090282575880795479333017858953226618518653200294166905876041339647737718336288771770602661597094194785524375330199650366246688793896803109655029961233804493113695948333001872781349253011927795365858022537063048363178742642212393340486616560956363346075268620013188709087690416595442511601867176167089424280455133310281934396303005111432940760242721773171193226112334237997075044580801078306668317338710517973757588525627420547211351448911299008467060478709427364071363192478422426330377053811284246816090973715870692300067989588058074888791188095441375604255240112587074242005706522560620669916694013544588115696807369480984541969244347793602776549429508494396371621863820900946303249264851562331175248097142943335699980124794197465637521521279149314382947382356655078839475695666077733216251578261459605026417801723440017047240104573195777218345611929694808503459494464992134071746971420188828499686744630681669934149633371283147263341794102445226786256449527221296820295317604753717158049576260819207769940649822096657270676837364858959817867015210771377520267541208090962084587375587902079720713484983214008988330504874015338926125488508062546385260628568480833689486447055776456739151898127836975361182079443323538793402663777206319029238571903687772287723772240127914129299289052058300588832390485007925607339219251570883973841678618137285306615467468780118043885695843402546801009533170090360582222057964469932621941525520719928429383603533258468771727799319699570320447891731164947572024783192916987700262708689663413201294894768285816140489475445961780331139957657706034397617419329164696032922640893581228904323549237718946282304747303596221782230789033520559306453733870249039706797677056885936574356446159893049639246840677056328496038035773322424381765328626460161010431834985202599793763966069614744062259755518207327721278640720207312471308532102780708971980635733303089480536408158039605551836734425864546648835446420618049507162135317391963745120975581729520795261230226076313970602774717980842807782971482197537510137887095743632722080084050136551764231175866796722866178333279934888641248693821758683884635234640505843556394995071624856238933506798636755909162770126218673071689561654923743748872597090620114674880324059012360796056206081660958331567033817352569762960682455130408245430353386371074678615595212976657158556316016133190750963870855850852030859195261943784759155233978816325114014518355394501379916679462126198972352685238676082481200986957643521004472120985566766059044614035581426057781030577532065310871881727875785044925544539308106722730190097261800798883242739921279481842857386522369398314342624647852451515764934241544870340718121620133834213559588971618642159056098850640566382899156667368490266793732779740926669348251915705508868372844988741312580072571397841626454716768213096267293228201058296918869666319376599050352388538267656665533506776314924894480457214971833024411888694412795771307875232948368337097095233025569455054678368057552632858728971105483227446500212427551576171078426166785214585321455796640655267277914310300180648213910188497046494239773927236256520520897488298084556236681901305729603566647595273344398763639626207993460990713862945022954016567900257027188574144377729708438897936447009221595046474627747943288668902779903686673949586322368510262168451366209544380501348138848100513259187120256285739238154871300709768905023623316253116833700304340907845196965663242596208878814113028899110289875947054167988356912786806701627757574286780941401630794420200027619630559328250538493946005841463663232386831770029893198629015760328260619889314695586327444959065969737530906711785345303767071138134371669631810415704615279717382730900829883216052703752099392860155185958258595530113780523609226416329857358326182899476405324110948140882924969911688454491959866814572564102499641421056284707859191300164437771859246142966520563040336782392658013310318363306068208437954915161231330069693295942644279884382935938504938303915588542213430794909806776920711539576196525150931020041562492974285473374291723753747674835722012883097135900740487912874145308196357890207144380245283604941575932382011817418657244201797248686235964583244801673968800565535838508416170147634549581550772740031671089484727836007469868904018675577135922211986876903671147661120434492811031050460129292730533200361126265821750930911776254419871242106271071802737511057211328056318787928135662638652197970749216144471795719955258480387056087451535295605002482572803189605628484376974053169073604840812449591250946731227797401632102811781469328100055267771119495136003543108623358351770627990156958879451942186683961640914843863124477415517288273877157802652361123339039845536448147014019336603669637582652287455119277220151938986815949264105170218135092623959915000318314699203047598820266471510614769208127192170731347645045249675416836176225889012816105262045220885853436354446998437226009037001934323374687286521344148313012759531732495156147114758361095423444156919890994037042156592308667585630265860101666895002218862329718886373266633460069584862207666725557772179388011535478851778097130144310505038807855601018125413019701689551620459653875739453075747482849637313633426224183649161510863046809361398591649791109827096335504400661417657233129714504176837329140668698796169803490670066512990118108444384795710438723256444890983015705247856194215259657323452878034089395988034924460180341375796383175671717156236002286028335574857056682402133049807175585876932002749218419701497264772550719719237610414506882036033448657488886179176841600018041046688317184654511492239243029085677991649350956591780307340830753998182604403671552397376118842420755084099882325416977273498195307790509447219952256142750577492125360735308939572659453917369693291460429983871912480466791276802580612305451091078840330823267743390927853836289065626130225773455122675922765642877949682686167340144316404522375408195596651469769664547902471993968065665864049908058687903890929885358818602657921269039345599926967563062971037931239114841397825164353638668099713513356786714056854167500646623226405597234242470270554563850561800930996805126922511405038564756458655909767254192663846798543411325007644520181195262201425132170151436302266175749979458127639744900482842314771388250308894303590063447819579133617862421422177811596373878240408805873477697127033172070507375344023261516735081725023412027899209860004922613588462754175065045577912463485065713096919453430460977452121633070468394576402401477369404128978141580068692926081149631782807685576509529089283945486492367074090734769505899213618365616758359145905811649569323392458162505529380789763137771571452041772449532980754803282267885523320225399746214193645337852964729449158314388122182011430754236034397301484433202992447110539234882443682342446357733476526327182643578029070439580149161221029510580015962302449957377169955091243248551134589999973782346075562842756875879639561225477272343603702055428260164620731907365726789920484547030964150122268306762094362098904553847744233901014497383647712082669179383250737991221558116243215902356848615827428038601851250761695962585409593756506440424469084810778834766431586352688286876480058493767073578772054057704189179666300788655721712029202042910181067942697181194671229422389203636140502948477051671994753608520668687730436734319679672210284099218825162776096245819364543831125618659320562501106021401917015981975122229269689091514041872330120422958428973285196568123566995387052002620206675556766894709127676057256666815975703583093846136159839973218148340566294358825153942519167119570717614993515088836151989956981599118454679100684185333052590353006964296420420579698416368865808357188992699635331438961945849804797684130286454621847461060618344996273230919829671066302990736341705033490170780091573922338217654410573826580036210744687907780880763444740875021604295068838011948263446007282753940185478691938779787019914576335451888658408580484191831985028144830489151555557089755965191077565940962762253737945664293334007718733540822182938633979167628351585729888201261759097467679568596883955461175565149635953987877893428952003133895924783915971252871050235558059671517139535770320334678342464913180947953337131739431373546278864126149969633324502984326951031574500219989762269663494161754226883639163864389059809524072299779676220546286415861100353963452003837164077431300652459984013961435937583822215122935590416692827927755238394480168242279344925695324353847599556475796555987029167475358688123896082851688488090392425197327583150457181524136259787601157434492989801767739299197036594280165278255603332596638837520548805436588538494875047559057246012042384490963229988232683703465145423597039227443023485689623043822008676730443263952802350795540253859753916130990685684867140675981102305177318132806716155072375888501955978348784509691077950778804027084855320547835687658635456702655361870943009632621776503860000015771088116488281680083925429705938211967125247039191385523918480630542782926973766979489082607406769312391323735485659057846875746917179812527733089097987523168867320987400322279802650692754266348984281536664633955270528762360241741713550170504188025322789637767027117466965379940971414759408739900585524125511011546857013470155833808159355855263257501688334450036209995651887746712410249307134931654791567383231945930418956108455531845851899540998409322918483507947627335752121156605416374590905788729768481593735340513126144652066161057134693765847592902820436411143246378782480066320174070989095702137092376178377890387198548163352327307123927291281609818211472022339766620861943252697051609759530332348293322430958904103968370150940566450453806576521245313135953050885111206281409010857039063087225639454017525496151853618570951145543689982378041285803992839414866176873417264865673269109728057620188427404527696253741639273315374986253712520101654624079786208569084967451381906535008581041813564374175247336078424996712371925627540281511284375765257314904391041658077171448630837582157604624161253421413534696424755855708786807033238470335615428168196056527002927290318292058871911562043880986200856779736405504776795318798245935596868170332477502049347202291561691128981591526311122840932496495172974380938010829299372770402699312638079898477471023668507243364304824505938667033559836673961936702936310919213588015513451938943568459043842382540653347165727592388886216422239229596382372815868991455485738679525404685031377088058567937743993937688432582294692846955009195977711365249367451113707511730972373145108360812732500877838001875573988209369281418723058384183810658041348222074514116693256729910517568516053421354483693081577857973293199333066403151083230155144197478648662782393868497031003662885618962972293212111725890662162758866417527335539023576682771525414689248315344398536205494024113787130670009943203945454881092154955376558627129104844442988131098411744056727121880125975960584986146219076415729768968012303948863701022438107829165878490428764572121983097829071908027753116514303867449661631931493370756166826252793218780159485393708099974447161667272153368133421994825011638170981752729296749661929042964572244294819987150395144531396017241944120789392863942126225758270423483024959121459629333824339235544901114900738138662253764518145391142488119673921282598198818757592424727500901655911783161625608181948264139233287531310046836445089149404347342036132189484717811121224606520873324208570293203706755358423074303621081129752968798157926823197772426840281523017740110046247651674286441900080494313953065952220443326014872889742235431457193547143795552000776036031282306901425169960343696631786387740077080679115834860492092653543863184279585362681906141181010333315988158616609167078178663507991281579364039548316399201972834676753262217136445128787404538244678865866697692584127615553698227497888106034711273860789868720117886785021098383963767173829808581539692256252420309729348296436537921558723240422485717891123037405308045471943010935984414373803939382920694335734964726777657095796863643116317917387098380522988516715016125704661238128217915192509004761948809771331500012446592335112242263757551782609764920650034155854901886389950098317664912580004379377865359993318792030189542146964848499511190822251625059167801107947368229912235381175036289440320366434048357429678197569788213779420047987667867434056690989380038505241561517680197294520891546047325486751838739540682267964688915227749958327406381979902356788768071275558328114142879731271581560830632469500070988613371801152996123074626419536259764316268323688457999262218690622574917706338371012096805466910345689197474223060636664812363862912006466238331485925460190368370394239082327057658571684205443277963755948859050492286621702727998325570078930735951099919012997992704188917680462745705153533231109922409070203540173640820318888697365693098434116793740239954090392562199861405696700995663207010156445907581486683165893864657616190966423383218295379162144910268381834813685283074982603913755807243937695132318216103984765285755357650280783138896897185502860985618134729764209506685824201792009526821456806393332127557124436020103163712079516837498240996351330243007187637408811741223701530669029371048967003081285013510691898681015672243432746029432663805452522321194102262494152554241339974007275451967343000641596811113233659259830584189675424518213951954801829528212706478050500189594431635599215990214917127506738813125789840949187829096102260835406375530107206140400949817224365350623060263232608621661512743514554792468028902500512242978102913223629064467293715624013420577635398638274899145314854333043504111333993227155798609423718144547347913103420433619665445887667184574589181317648317820688373698901645725307175252140463432998471314020104254972491879912548794730943828578007993926209731944752116697618625267213133988554207399570608126683098113514696158344670025530598819744807364780783394760054510080505305410928135340366902378718330757077495111539730936540010297053248704411463671670054332917128127076734900381742980366905705100591829615816552278338092149499480571892000795130314349781374534065981406528783366314834374591224092863698644861769597889480178209409550423508103344296414826594412743368284817738779526566182464460218420909646716181432246489139093942944983043717488785375361350779771704275450699045623151594495773189815276551711101757585488010601132600392726706980149573394540941618110307778301925357738124338661295689386107594900192300837165937476410737158011307115731523447588664447734382701521378472677488856966511875992472446386035173574519874826394783027809842728533972135053772277162373641334143202588623041437677716415076095388012456173785490532682859322436643475523655889043365006972988722807857592636259831584938033519107690875422411731156402019743382449444455141400614611060741378146092007165371162338790351070018529325828044939769947767002479430284096912582203876259240121085202179697089426853174139459973247978598658231825578420674775731130169462271749411773233008834514765869670529449778382467665773682578176726039145730467155733907170843717576938019647451741399440564708112399626500113783990423743679990514655047493546667853318770570115456316948946595872741910671702675825534007683872818002697453873353650062676931007481432088889812378258233286058107314923478032534624382433569573426454694706308176213308869238413275295384658441398178800618929356266070147239930212695793964020602574264457668435234875556183012169857178950238699516369452076049163675188884127928992233873008429079154456330569821204151901940200336776032637557466330070087856237637144328664650489096507105503229923510112080149606970093189934627047294027734935584391670060063438023160175156872049424769991462142735280829097187800335845187036193668098316929235691670843038580788912428042016761753342036622032235792812402668747320416150959740628354696845752331661495101706927231670745363773275043006852209211896869159870795382721993194354744689222964986830546821553827298620679713766940248980083427184009728697920780812059729006516370817288735043794471826984893337943738824139244829529294238723950620363404975926805546415963064411287763004559622869089724389401339748765069818407644468320225613542259248031434079272989696147234031506849301716257757764776394097598689375304728746175817990563820848927014180444539916017635588022890673611862699523353522840458681589888467632649813721295770032037777404231197509181942497300614930703815470506022297200039791534499993237271523951263731324346847772660745016081055132328617031326259007013486762532724226972344538441060865163358762088640706638268141115380729212504037962739363681996297798406592156962321310276858205958421610351501725884945636195989772423200942991516011211147894751801081237218811464956489558717026306890097151261487855736929131397445642575100079865963984993477300210476378103354299603347418289116328229415751568431820421387934889727281208238920268693143489159248430405744893114528919672595965052417765188255700155965669502499168384900393003668622868955042525674833670627907743958595439758449214768732379225012794697584726178172173245514407837660360276990603719864439836409138057016076204193082400922744131860942064072577278241234028797418076913886917632086372183497212013104025016534996695026102736639606526269850156427166982667792718603968667777357567105962857607494924002806905367550272290310628776101904894699647934411039590356617342563390865790993893833546308918616445553841815861524483963310836544201441288079405763985043365747737939324803381618287355169906228382771999022379263620604507940444763134364959576609953394598423598500798702545303045297932823754557139321602487131340650104172044114920028441017352956965904101321277931891871947064770992952416547842108072727607832084844543304564612319210536370613133432572830870758932600894318786736038909025525363211647887863914662951251063170687096629400242104327630708263362697246295266079475179395517739837075978915073040725504221339354969700588061034779135347775501914900651204808512612434673582998016751277875410261191820834422828450050767197534952448410613024472758920360547483441827121399822222713267603092154124939791370941036335958646462101518433413538836404602079406395454718248485006069651290322897144584205213141357746423842222743997970954207398690976568636832896380208546005946179389867487380770032559306162274249723230947554664507866466362989897455455665726301623953740841727535977221213468519194018925079053148272491957658344571832362639483114533698874895468539985341639097705874313251475935979182105928724091751267369418736433153499519191174292554820697965996605696426077244302085128994452234505384392635129807947808803155641864377179758564903714534809037105676026137708731366193329379161692893018266881458135659451364857900955533189541558214505734009951692663540395374803404373696416440998498568518469751146446441790203343887135398013980073602440447957435270462628065455124931026079984909641838127559107406220829062128611979103058549395496066416617215310924022278003992647799509731611627610058405669038839086647602655415555242873023399321216461861427014688308464925219307240599549730153817131160315494459657126044648951650447264592236784667825052261420442378222075188819441073612107106759453810157872447766096584196956029944528928806720339603697797225913022369500890827768880223926563238451191113816535928110648096944254832802897032958793878283358723644350019232028034533290361176316508999356100155453676918728212300450097189945648526335876205030894328048382333178437801242568596741748125364803961867312428480122247687655382989291980370418600757500192357306239665440241736642105279751192986835965594131860240101689525305176652963980795260973253843609657605770730413995384772833687182510559944180471669204637044433145977295185283868366979614493109238670846152670235318526356168341023250003679577919681505190205287469234044481722752466116799769496565785613366754452599302956684721190991842516249364007289456853097127093327520518685168186043326634268229984392888078070431350201718808106370260401737053054706433543838115445858447166063542957013501584356913443946749415071838135984259255770083955227681808128643528702978060244545566553017409625097969709774578260105913999683100874907706424223451376722718353815229388876065846001075699964355535321285474995703419832053339206520144481770342062421622818732910042764005314571932086906815166281208437388604580071551520897252599134453152259758392783897770632847092944996773234724422842400303210428996466415493812414769478597086655657547328719043096176841449595583203916584436064812319956863586992107399258300696668478923232673755596474331404703946467721161611951884185727717656772132136575139566615463512166612379773751757407832751133286895671879195943517719897778614025978379493967979495215930056738115343733000369453591292919796375661025611001959502679289525132563745669514384985711839591548999999782792575804596435183246622047071300380781737335173050017013563942967469609659209206092968687341005724352513256045360834669915530360892231665408180953704931504917782420612433668642388638445798104177904504639687840368432529096840324094435087243734980171190972154446341395021385347050151072871860883706734959503513948587985193644302468445451315891896702580074027067530341607541485854654217418160588369594380128795907422376347562883913439586153557020479231982761653986197810448297992703749915793074137150517606504652721673030484814404270300681363386953098720395215750042998517308981623107857449313383432672270891098355822193790937676350973100402665658789036707311332390342939483626685075651030286670340851676919135494311397396582199947060512038272853258204287716522009248752345504577256791502171134500171440971146431655596829261084105937319634578016275465949617561661985305199388360173473161421345608268871307127670992477203123881101390522285002761809154067489417852153943346783119344019704627811723745899601733793795766574236091065961603034406083419555888062478574756280353399491124585957554293295745602244775356392140089819294635619435662832469593984615983385017665428134396419688781373521018964325775122415087705916444397069796247804184232656173585927629910256232857082994985607235561362337148727185049386257491058592330710525613719996539889874985015423499958833653392269919613645454602719656258660757082354878002434511154449925254279780956716807106153864696285593450261825179979458801920005273957399769189910322572480023697335678817449758966702825039411057955612253943476523997129742904719258686772264973315541055461877913901027314796055655679612551488513736700636787770246208275470605049677060831158840291027136718069901637260242857795480058208503153109033962078027492693826227668669191195911296471514411032135421364234327324738907767369207828546704556593830905546643543205566501306195622856421561681982039549009679184384164349851798754436791372814222170875011771786563980507993753500468283978691310456596245867655717981463451294813995009623914055335417937330112231890080873773778992561156415569554687051332968266495223465046391473520317397885094034333753910968401717407882341879279126352517717458487335242040956687845251909794080129831969396591632614220083767780479208829560184031282313266922354783321719702270814172198637305230984156839685779880562003913095025935429139075861409787116414727031694823811238538576758104387677556721901461180012516253673788287906827322523461786292604180297958079652504725916102282820653235825340203112170715986794845226059719268524163283745438914903205226803890703377810879223406272410822997443975296225389250518155697287648100481843836172649943787134505681345670712020308192774567131939580550582005827703297226871033090249784658548677984173881354232554815060728320966989295450373978154374325229417776607776553289027769998285962976266071273479231044135581682202398061185507724461945227355883188502591562893140011483365437065975022412589259281731932377757904753886990423627075311302829427110778407215183341146622371254179745489644154467581950597270730686373220390063286182433847533704150368920298626457416212743969633327137516611165673256794622762159403441217113006789450514907939297726389170143651830971157441596391587739200396860718786796358986902146992174098511602688524261691167207220174679769311311728948019774946624039017461005453230917107216897241463505581959809042073201779442927528279779790598156863422358845727234970940762265252130239814366857303698883013192418228568815711911756218186140144614039350003195487824639311031819585745696792133128219184330392879636773888400914009174593758173749785979202082427653945170128552695874224878616922283616273244214521572197431809154056808071817252001005160786276422058521489796910778169077339109392391978914598320824059977907258600945927491034134950406223078854904940332575375679730770688695159669239515671953205301996710480975389195076187729962356800483670296492820929688249034859829100467708072420582426021744365122517041476397895904046196397667578968425354367414295600957087719548399543665044069786615893205886878337529841561869717102408405879372657266148294299256454450909373980450960467339199618134216400163820022863753314452751523799881641665790249701090200272302669893608988184610022135659660994106629213216103635279503316951035093931039707420275556343308416951447638925787615105832047380342117923357806246563823606290490749209068996489837083049551360628715700015815387990924300539929157003943342136629679515115779091433751527528248285571807040493470815779656560020449164278575876312577927599255191900911769700118422136197285912296274904071691753003986183638849588155675055933408987781154394964267416921814813913105482109779958579114931032056137951520413867686530161798418359674183450281832554829768759898078905130396914411041389782825341625414661641352186255801965586018565739592430046329309026153524172556986049759274370025868549241847918404712398835033256259922178730064553685169291213868366199768266629563739391467252708042405659953261980513994416734264304227875896465472155886480441219314130069320168759380312781557323819043765622197822565898418835992807911304280091673693214179819127446754131693757093556574059759113195134494102519636509263688715185865488931127272467404229282575848793317348691727431120957512963765211544458718672080686420945491309125160380287107833720597504080241811233208369743847329200063962519450018850337144400462502464594412530897723001072738550360008663071984318142262874632673190659421196255094537989404893061499698465511415371305176216570105295581470206312169953755304301136527608252822566874810395267202777494512736680858126391302711210718433184008657693988921736391888393435743821655200860896777391494832969580703402696965456697663586671124060582271791428108237302593752995756289557453821112084359637641926281795479408696549526665458875644466523829546889831851881678073309221599782443910836155009653686127219005122532324642986314279948661257995054617251250153187130962604291124968475410324947257200395689753134526406621506887724306677437731274722179791321865939578910460283595475966932177754276627124168151667692015248058783272858516619018141471047222540024179485051411046757488680837889179583195955099487150821884190325257424120963097743432561312091894580986686275253903674016702318220260073786992496695007288928624370250792597278345608533349719906777123065578047595233851875094587743457267937397641500271080493271116280496164486124866289659828221025289015988950767260581083610830004690899635193374786574959287560079735488373670388702142577852759974919207003183576506471016718413451768743952479992013716342472966971469020196461003554219146698157476077621999973928217220308756596204248790334981944879745574801014271120360341255005925006768584211889610306413807227957412579755027843950809920655093316762282421843523349490103412486245334535854052806259568496769674445043846592519833516876162667277305532650123636975306859510312707641245149178935018556834513787935924980330431603292621000814066752393674676619316911228203834336853304963349904170060050861530801250941319116868958388538376697101963094648649671786308473129451265373804003888366481335816258749565831943890451030233724807051357383600363576941192212126836024403496789328355018851513754878174332179102446054546725350929050358322279444820305476452287695698668226096281325997501373587926062613970965226476471548443005041872153578890111435997889576306874415362955979468266354553402768686465315333524271641099904844710209087212827870252314679998934286204236210121908171273342769811708253202702058502456662766515373470214169181093898865730377384869185812817177536711121800756274865485452751194655606670289362148194548611952011951673970975940822910166074267244354131030638770439564347159077042620787130813196595459217780394310615325084304008270769755087382322052031011664914450146330143631605829833507851834834749835402104612452211674210920941911313909082234578140502853652278067505708220026139412868304108089452374510533064282306439220249117646362644810747505436267535389408480400977362489306836435630111537675877289142531035032538069114306522509066177801488288558196785979796538713777102729881451156105297537998724798025561645445969598043951977575016399938761993391001362344387517786535448906569699055989883115610439422467600362204606533039347564747510407705512854220062925724001482079378407584511148957254944177767273694670760235621217249647081148545945730197892933285462101550205832073310631100508335774094914656588995144299674324204318795276389935704621054047621365648774455844010362613250382856028839921902964131330721527508673859789496212622549562714774046546911563606884972453574070106630108908458072772076424273208249631575172389067942865734590714616510445616615213788277439881196389959749160586432748501428615634400652910853864891080003305960552069891793114620044812586256208213892548154134947055002262136642426829644813971527898420963949819081778706641438266331596399566207303013937964247564180497614858596005537263376922278568360734586388084584443620982625308048839332170908472888642876708371277239517867166436118151629233246558300242105042951419020746807926769126939715136174941409671761658866113504441498345641068376888027208146078874498898743223295968638581759951851239690187202204886594159497047130877305038735158235607873294235590907708951823690911739708219361345158409813664452464945954491738294774740641851060909962583278350376368304544708342425290371110737802509137861427699179772108668288127626364463154743345523686668137697331615471220781231425603379073427168890315394548756663404422353328384977161723615487783333140981857189813205459257136580670742475782956690963396814086610306227602516296705393656760633341044586440578009018910181027383162232886489017619649881250226075867416363391540778867539564975045560866830071403986833642912524732539146967115345535782371207472142184396983828030215256721446486141962297688333061575055987108552581575628527454555378635875604805903853030198448158008375116365529802905594933202116298086938919317913911596141021021029569014029020912095091854999847967783219760888310909247996248874457791629120493723243243988098102259434566294625946913073872770249568568808696154796165843194603332311244253895941958457969322401069971872928890991478321702245825140516768987298174021537169828756520948517256599638893270136451627904276423531371414042392156467199087952976888169420927626061166540823508571743811574199038580181112145448862914839804626552190770643089204489993657789000464102201566175858302185055225048357523416612671975438829638106147449954898529309643065636448604455352383051858568768392707555310676743056703627992952867193602211226372995481663494033127670076980235833333338714742679421030430241517553280177832256970713048294115352959638050274944560679092510231486127226318408796620999385448786509891378939284901263258478460105942768752445262487012524311120773873176952416931977409688718608898966072965683100928413965113302351523140564344716290843179658626771591705760621551055903961253604990379160076054247807375750354148017497588198892492057836050743261224828637761371161187532448503050206671747148486309551527644695817203122866853671406667026691571915682352926905436415050256293772751828856884144900367429367544010552757625544326237776523981128296100624818545523095269180678186541925726023525994791899486666300433587675636386070526344087441232324884329525358774690731819559917690707691685631214600491687755491942056849599543478976842214792974392799264567712865425333945096649471664975105910350839803459319626943809454810296444773096959756211276866387262992526260043383054717336829227255743292401384853299399749847616971702623429891860601174536161157114603030331527001369211390499451009229204946723632847154137454043292246216363270015676668593095426125292161467868794630314902162899793084718682415303812413031201016297529338544996015193896795217114338938949364990852238076772614931493982506110092867462359391006450253976387753678131722692231484056983678890691341586761997441057539301532232186757959444484870564174849559427982303794817391880715854621809712893739363661122399907404035045438897500081462333084040716481988740136886613192352111395653320600728285337790001223929382911595415009139124529902578406921495394813356113640466297191693280834630059871437606850929761823572863405106698750449584126709391898675337127158755905797820666541174953070840115795317813184866358368927860607186283327732910839437891639785619481809037857371163043076689137672563171282440229120951111340125512986525408036040513546446314967335580725116498875157408350313865489247646236378003122997192157998025312084209061350597030633665976876073184244073287739290712357813159663253287901112711467244590436910237232766690234202724674010751700506326783322802068612238724881581120855911615627137688488481689642912552981684666327966752063325910770500790735069336525084755170191652989451378245029255282915403034999245019932678383289697167855568628446152448959712387371700004157545161217465405598391715708903157403184554176793729622953867016097333818025724791753294980177574670812846061551290024431612879174813235214776781199875067008206268877709569743631967902083642750128724173318509634740948115895667199117207971360813195953848660882073437862794577789361293924180117914926405994932695386814463803882287078349783210593895517354536310735642588877841449604392808473231647532025198945363981315307618096667767908353378028076684522281438672789164221954522880229171175551114803883685359178506123832642074841530634360205913980819592290463065312629111161773375681528616414355718275481781440742267868634626317870478048572544205978710822689063196135712963280790980351031981780073225144781629676147226616747664293030518936395616589176274586338370540393838016115215704328013223494789516982774100497351789961589371902261158232414769665226904709988120781828403323657262621308974376584029338788302463025250960417556930826906205212064549243139162131019591327774943130678382077742370549548663726360612013011721878449448674286725678082802379368206963759156566609986132670758643420794309247579843853062289524912121795792412583614245477250893719822622677094935955205973802064166804080584857240134329552288612392516996276922552177472158788816602251172917857294267424329101758317232312273699381054907489439166446622928042590244943433520678583608637696699696746086652610481868317502806767662920466559148908456118279258870901961631167172991945572057171299030182757463777004910402133533858428516245516588732415019776149323160687939014913153618773090334751697957229029590090154555219383739317749873909434223104771065404404218922160645465563468064910020571640559031324408774059196829558092097121845533631570468118738759925842480469399389729441865030363174147148122007551262040041272465535432977394689730071944744558263619738193947027084652332026706100760584332933598054569808631157549404444779348550334003862766137524265745627669602416759154768758136493547900220397989564961647603995982275805530762022183965902211711359458091655980257425277748657313261138438901032631910319205569377010203399259447638486401211170891061166043109666843490804639394612792546358105414039891715479515467036799025654232598625120845984126608249373866143726250378848657608056903254281080633831189873721958854259147938151064644334884687202064234386278049112731523328595345506088099045557548759959913501194799024031840061030223393058770308506242070560105667456488488336733798779886794436123675702315048231266190242613202295145180777531612348037820354857293983191213635948726566649571977773681903320229758260891742457511978263672452403749700216850697815657208475713451416989036881568841163196105787779730646771128109248451064215704558283422125871434619632258730829330228758295359495133786690540747942723758734152279772930808413405559092651135660848193070643222671183213348807499805811097743391109152839086723056057559928198581281719550970874493852260359217310563596835670150804856737742307601188128239610337966971551016140055132878607582257091846399578780211837824414156376850358087570312744558931648485566255626076144719975225681734915840989636281365494467286671094282790315506015660579122701433128525024346504242191556567806689186668087468724701873449361671016563959683137437166986473172447719813913794141951402945784293611547951400556483914009149776057350869432990317689662855307354262754566856786306857657208697911547837210696406143025074004152796483220400576809064348496846290410046920954203796064368694182314176822836075688973401692951422956066703427508499348992525995113792470427579608195163219615660991840029263539768483174175265742390586176212887317381266579076813975911774557588344642933600686256105288694158513904919207122606649661916512671880139249792980935879102178540356647524604364523423222748099873307928775763467699722793802145267587189858862087748525679604963071384630669146445356232133280784862069768804233334658602112646148468904165520174636001943543415631133073204489387815949687186226505759079726385135540362854874297735416040517705491884610808095836297872542208103181360596513147229910088510566016460721280499213292485789576257599648509055982008376124603217352338327172924664762309652846399125235437588101589280246581742350718408954444079976738733174189422299502566007138987361667516349101693567326179520406183604266567428191041247843431159232416231086607408822850234969735113493687518916663709417921375809723470180843791320429678880423110907496539642398947186265705510554770989141205280328775467006349621523687013769518031039210069534651513601281654690313577519679828048830547559778336581168400238400259679451242418883269867042988122048870777272724424827378669092408457438064552564970559392996127669907443427575169268114227651272311226869808349353656532119023455503616394776088498502373380120426413150047383470242470216075938551355849607574447190882040536834793795600260413839775408523837189071121033755308446764519823437862175512559308686290515166344085649394383893385375942710056397286745852149339690883303309222852487611960915977717203952699867615128314371296544732657440910724470441751976054778397972972094907565509609819914645646591376671905078059193208665443607554523040522425817208564767598208034798457377119166472262931590226132103642222171343736785909184207320191080340462472945696352144004996141666926778473219477197017907536309791884912040319223400314805644425461220389383653884869715928907091706378245179272664737732115116209992630758004444659291445879032774047791330167772261898969760080403449172403092894068507571258266364108517958966458533030683343904987467204179517033767412064798341972034211099998045869144797717219741544712285556711092622674847570671889053077578759346770090144564709861041906037776158755268318449335348996471263491622711233448171772039763125578584670961552028385463155438860822593751930155135472944056455348476877959344416336958917265408202162202884739473436880971479418195560669892054410117304290894582295565182454594221168196610013764080328939361429059163085144188923359208282028921045193932828875628593441038103195220716707212989664891346739821210945373386033160568707962380451407344545723015954869351954391090915182447944823752137924903559013261457943766178189433486143171734324940532395596194734093668065943587841878439402628083856357244108951226857908558772754713995536768867644333271427963075120833510179372379260205458140780964292209505731051359878957149419956846840742205856424416537804850145973022474416500467881155212121645252901487590701630652879395815988125415356369649566901651711526248113319761101595160714120954438838498377059016228756294689565532798784984837125498653329673721215040582490848011544672353058564480198997341926478392933264303069696926500896336256925607547061784124111003385383360495490725830587607925546884486180266546951670918617057030549400100868509418569515310094150998368955029420425517496252636868393700575675984357632894890851790104573300212371040604573612803560412600955630734309819114826097548741491298457543858854356241724294110601583983967720738504233617749263290827650401058522473190463779019737519761884439485810048193527333096762898055905429317683142581492894025263931557327567468046471943202473633868067277001534756830733688006881063334083330136020684572127826706893492555296976482547880182455656806689528174122841401164424816958195635055032935684887971433822759913039507661878962783726991297956425353823488798903596000252896157228067755974468749252518597573042033720589837831740618333525886600729435089690309848914685378736120957308561641670210585714126496610415598137413640232309713103816389121674981477624729528529635488832466713526763545018062826989858474734105128202275929256924742305056555693996594426435244819613869945875835803176989591110978175009089855988543065329070049858417198305024404593529249016630698563730191078248279724073900138310415037608671788354092385916984291115013265926792348376998835018137937847797905730362495437414131372615451516726984588860697609458413243739182270742755514727058757290180480291917323281152222162569315590331984873024814220012101051181320741193223993538426822286827821478534271054801171861394818257190950428526382079025250283663295634960480860111275027299271597153768758062477767683876700962345062945477487063382953302263932634687798546272339676947565026284108184319812570631582113283653722076925821693119860912144261181961208802289237556832054320985964956203548868646126623922477682440354581657051811625717269029486666553556286282226674359996788150045912218904842296185166120282441478358452183455722034714820805768559638202100561941923347791127019818231525647380029808770195803578164619539891354655229360839193994992159986810497242205029633806043351237515322932568946083514094418363599083424997633645953709220633646470579943765737054936659495984980268312556291833209726789615250092878358920164865148455885745882019479188536689357566105520954147228835672562830638631941531589894166642836857670714385368328477242014495512087423036431540708421689055984573963213077680693574510336198238395480183236568072439901359144494765079085889602365099412913569824853709054066022952972268392708948254696680683312913796654877570673930415713407280505769635300055894533335518187703567529118098917194297743793136814309734316821054337100672570893887047061038537402096526429618754121911445333140246247041291700064532087569328008305988437550199669058056748117725937559230921109172770871147135353808170625175392781739707480943617881988624571946238236817162184502081077935499288230578317185104117305136985462010402905251778923666035153351761922014917835465746319716490438089958584933425005233459256545105424790102473979367737385587970525871505733256461676303032543775189921412578416301935464105376586810685486846353270416366099586065211669526433584794118404013848714765894924291591710423513134787178513157880228711535604027406680086618577434272778225983290816984675789797943532074283470564003249549482672411844195826721496315898167830421501378864226072746135706550517154143941132551754315841721939178266092977409069411549994783220333891741115786493993543908056663801078766623748809358317479559673526535835230800793469233368978933433847647901451842553173768756880488827726013761779624545687020184364942342179960367741994319638352916704323193083560500876217793002497487365863314859676443545546967777223722118010490845536998272029429822098552146203705947893466362525048955746206012122768127775598069542621679568996076280329630150673117198053231870673568669833248795390220071560204283590862744260802357405714725385566153841578486716741701461719462571518800833233295329430184236480219918055442168704898266808597490118834943100282765275786161340795131190410982937582060157102109423835641344246968913799828591150859692606954293272274089268484115478888493103766616784657968820674735345915545461857549484819766863139448045549443747398820500402483016573816897878434771657329544455648975104025168569535571695703399122223232629574364233785009228060903449057628597711500066822876091822777209626829556325710507959131358257494253957881664578979514043979059772424623017980622668304167399818774354855887962894445373758197161044925514925622223514100575080614479510886447798339237467465433949161973645800469533554193560869247928269498651953905619095263787322586716013128582165020263393941244493753394699501443244004833245648334913287746707466990612089635917437060306412637060436531211308350089955485835615478512674534197023806505109257286655167356244484860901669998145443518548354315972473465036798818642783159997214275090423511473088326722363516454627571850640301892852922065667268915386301987954480118190739330578957679938548071604245188053170534116905722842737567459421492910178135060850419235555546111311363521966248442413123712342524111803117792872430647691262103807339026816319878908256745954034313473914999947247686203537408705248094979631339184414124641735072473198678243668193493622078677991258467512254195857423940851953650845983967470089800679692328166227187557657634810726827319171922640076262453576841323411982436002895438502218173917211215688367863496264006566572241958202712163742774352989503189538875588891963044187084622107696712495906439937218501085634341178290700985627368950918356801524048315422129962450346920934317294415216459362737409088296802051059954003063968822620526553353111292720028915381878877184512245184085110914218432702629155626060237806672707300335783303504576359169522357312454032666842479633162009708617565108602255762190617555228397110559774969929994344196641808577138515174466334738843123199563217421726551611336066737842766613026551607566442264909408734260455516962997795234175809246535461694501964695370898303749749717838934949063671008674671368356206559641210320182537409703537348181455619043395450738164766873901567629628497493482836708074339022819354794982032741613044397048677814272381356566698903665550325939582630328257945997518884579048337782824937159472515658812227280571799484972567987069166393793096201170677634711009825259663679480447177376450421017412115163251923459163033060422591062918860019768936561692572687609369882353040117729308586486067303658042511077115197359302669401784089034331736569824755207138153991322101630275577924776035491205847073903791869440573695117605234772621544418004188814063536239579363348009077774960555175502397349696175664591041323687655374353870604219305883581992387209370098971519571143301922032610465232106774107904791220521891739554016520263926386102779976617577640502163784163147282812282391619060742365709131537126067589013414924998691229356930993955906191753180929007906960218772299571813494873243993947411336520052338040176881561124842970014358377920189704959027177404168416358552401037211134331408868597456625350672008901506043891234150006132065822004933878044624230931231785280207738381491406605229214129860662351982901035263914813381128250476459783190986294305463559814706589666332496245362039563595891388060170410884050252133651347261499247649245305980151097313708318265758811003952129131649604917861616653742232207791186077900492961159629096773684700394250182801294862779071134296048448407700820644360021259106065401610144216708859188519181822824072027900207282091165379767560889906931254982992280267210683467604075589767531049196947042362244044750739997186926387909780451384954185372706558157081859583526506588925468774565472065865618839875269910365935182140024634117892402190639929048616877221030960849112559485659894037348161708904237115458488227097935348596886715387696410800752379056019376739479214961200237009340075307072676020165199856945937950778471562075550747448892859935068075435317634869400309873061288810329675371987366383155962786041987381337329850546744486993094057391268991893965622659268254050464893518294629136429501577608722107433206548362769205375146771949548687035342178297563649702431569542074814866960576367033122958498277988559737786642331366266272467278278000137253094598847855557530087674016437220491880771211462887142388245666594947633475585192519267106251650942166246732517612537269486652325621665150033789049585951684106613290157689718923874849628809964040512517523114538925754629391911785608012658722969033463570313633836934799898120253704184483801490864049674272869115720006541413907282554724356250131478530427011751775990945977194998386856632227336040827770171688187242870805739351819572782860151495309045824494056082152611647202346573361497079416835047460303404936337419219250318163080708287085396738247721964220756723721403904353613847031953147310144273507714313358578182444033415234941369619915800586245825875692518567421528746515802654457656737151086729388954155044113280612383514290123812825499552167953861766013457166279156625470754310240911473487881458852817069203469433335078824858061219279091570462500330538457014715599987472994831492216922323819006258224858293752197143224255656191945114089237367283826220504368111054240542815133850291386149940371954103135419764913812971789332345215101437867669366059110520361579324570010707067566390038749513236196748058579782660985501539764813822769304533781454148185261553765844156630038899560592351117847419763522604773475874253610842415197735441732108982763070283066672355774620497532592611488710990536554942457154212147739319910354213762173353354842449948017110279939747944957934716520227948008481064281538903327779233540533319472944006130499615520879638219126672296074921034506320882027523938467905569313607647210067431507146753957202528011608424756040511570373008758944538406230210296743793294199566083363926004757525787294805901796070867892259286962705603893921649543187962449347778278272917355245400512544675261079562075782093602716177333401245939462625843711395155829955916497454214657528792922418044617008628579423666721667096622891012354406795990022345910485184676073909686018143725268193766015069239809391937836488179953219300767581436740794729087193169104405931839186313077157266983254159805965362294155601381913239156918619463950622711983536025957592182400106273625283287625378558004908537039134860264331166850873705299801824909513970827422806581517114126300862550876561354755647776738509303526195649689144437483455276395185162152288013459455037657037324169391415492099158102298029117357562514311033350125410961290002507765084779763705405437689934245335987671250111045608220245356018022995324613002200594381120211922582587321113391956548067352842128607312617533153985867624992288655457141218606965318563462806987642413961420277487075036670931269696837617483868100897855151978077380298451516998465136975345846996598166140075513198997323111756069151805722497476515329982695961806593245117766890109719224992706560931110813653752774903455339193315652713995452774690725666416341424508933624338481840558580422744089221110470307187476026072199360317724675523744127426361730824854111851274987492398249152409481192496182014889386282928686238506454174713615811663527860162441893488521988868602128156606630761208690563811859608675561741516230377635568473215298127082795534948844862324366163835782888979189329669892365252728997808934032115338290094735453332218493267167818347652343740725509687430519110294490087375163579454598828284003539196443297838146682446765259824529168536332210046350120718050648220426637417228663169286796419663614412551914086027707118769277787068657018289078801430484198434727196340671439810538599103202266079709315447890503924863525282508817970974563690219581213713147066902154095167952633226076573554461132861701142104589660119910394502236854407441873493155231982274660346360168403943598263372514127414381541550350072624698513664167275072833465196272080280903119601961317832527833142277314734359874929936311695674897458211249679095849696159002843881107118294962772375808192475572959796147661527053163287943640711201176036397217782247556392767268391961454465946003285191706806331282932201468145896748148125351500105668678618190480806358043690222522930730358832917446264288796170271013956500426218644280587292676939279032293681868830134810794649610998308159035048611400834746291144892431172986442034068205614631004508677367015504160522671378871483314070260312655664746095744806887449747751047060399374979282694417480050417748794890065504589982486816085265570762222747613404693507836815837336502192426999584345999360835483387768086360674954009751590273915948273594161999411616176282486394708878529423377769143702689916658514512604821298526347826813378609766909926149427869432984214471232877265250496849479849653275592810745245648536916946323790932510090413598788976955685663238549606351654419223431500008664668631845297897673490087421818449547192574454672695801967251964546825971788436894018350488007369966250479404789039213360428876178917801154908486103406273906233392939391527861454043056298582850047256780911344772222732815794966202393225853157617708856867476741858911384279579357802891750806478407690758042380933917891521435077315239542018137654908390379948988271184505730366092192981991718748392772520967527711105183184322634539929162507870821042309733288264304749009790234623554376173248657025964501076221050497245959283226010604526895716528961776389174719809298515045487877369402695398739422644933302531302741452887569863440964195569561694293324075667961640202532247478790516519759447526424572595033670487089901740848422050946480373366085972425709893042245792068635341345755620759455669747652694447250571144611904089816146661486378109836335137677779592498546188171892055436761205833251386200558952954696358464904520572626521845927207383886543830319537214780190631603484522597378041896499957473543029798477260391829144840660330206552131390989567791981729136371630247373538687476100665040197226013357336896672778712471691923947431575587345054364436162490207437522390078055927269705043030510874207744380414934613927434792560409451744605948621342115218704715080590736322528225384482681847797532517442406678427515510227033941913897806948518642800724599240003396634704152187388501708240224721081186809687242361330438536899131742442285614567185734848239463300725645178659412583828676907233091357217749113510264938588823443236839474331211552603352240457617918897135217447598220699269788260607070511773044787496988250120274054305733214616590734342903426150265874286114034987909609998734020922194603198097025785718011912779087806778087162846754644393084658014230473975107963509577302634754573062815672875662690486995502687609300453390176265153245291625931415133678747008944012417561717585114010763329126725218089752918569083608393905385036343967888063217256907581837097931313498621132321197097827461292539110089132911292214052071694808465677287158644970444762004387651586130088428061744644686684876926895586024131582149729409718118071658319461027962397977048302066205810267510328280547404513966500934035498604018257275639185362804102137504698678356273107230384425813029307527503645645606675782749722299557221985324201783944982390434598103856074075504871388555893716773565745594780646070543741703798903462315971848754488804245823237309977784402942841724943440289936626354032952116660916894779637617511971873021195964410993027511743166691628055949672087390545296418036362936647386952823280598619234656474163436651018656838742842635416184047616329554983388500389481136159571662281469727180464627150424827092523525969192843983335796504262849570436378875147759878504312615789982161266388543459618858432170446181193644161135247176056173398983537610801144720590058094071822898406232801668366415650111483357493877060414072732443573030715377073802377858274862753078044653017783519735793143943364509563542770816928739958439216120693569797169782981959130626679686786883092712871456567669090823516384976123931305457883491141381719969906702826055745681781427100443891756345593808680279093690596173773291921752240325591428960910017165040268498856853193897814172864426069416974478882801167057054511527089416498124513699633026521928280818933084744792636749592218105447203644534737068424164645374822182932637950604274792656172380594410933338988063879102347562743991432839161834788765880707028057896291065186408926484884972854837496044073665235051576632613643256819908807052199981385280973709826044923223139464022175615275375513938731800823747767483999969468404953831683948358325164406743185176530740970613636221032832846111202970659589755787733585093699504892356048307740988824301720180039811695752458406159861808820467085725692140757581601406289945613153706959509500320215933658385299261428901891273709919237321255087277891644501804181588978326956448045851168773971257527871771549550193542472063235066709861825996526654845261979286068383235494226973031250642822554501417016913308326616948667553732983872785975398386023081170567184398502465193591985638541321072948360476112471413434199865658303878606454505902539377324694527785814920911466321115580084668188282879551309531741276536684042869603647947233178266796372701906522757752787751387819941875773290349561208624721050909749742600536498326788207523005940821358084705006014362284310542232450118144429299536078984331822353238905452756099935969925433294686330301502161762657121460592819974960298936759649745966117808278898818572449663602410074469070303810767994618727995247637799121834767566175242737431514730908541514356551989770029552103165998514555031238589773615343619188844502341186154494912737449892641093946275395249922545592602368167141441235150600038557649350332657996001607212828599591085598214436235276303142123030871893305556986091417443982565483552212852691802427843958693697721771210560998948001543149988867109366783439907496407662239392057040332674786771935403216940221034935817915187943962911848199202171740567419946719627874837535204097205408771675065829236688620140186579589181606089590090409676438722166013154546684474191131064921995144655031545389497287235635737184622229112817541887826464468143571338619937702567260529725250083861616007475900084146094944073491319475662322609317657801932726651364238639483363603420486112570353742195003365698269548912519641412000657153124910102463851123177665253307599473072237117824320905768331155326355444851588452471748468708657970032094152952455034210001964312334165937553008656052495464614653710577841603952379173330927167284006286271922241551969372253683781392548894893459313044254124701506701740434446568220370125777021574240265994270872543993186443113995349504626495675795752182909620329270485597461522537303736169467884164115967532379704155912817177807717968502026751008307219361690575291193603132695019118629427849801774841215704061503300234606950943979620089444083794721580575433489751573070117707466806319367218452054456585150049753394312530248945593285340702464105248388491654873365114921944405255531830584991179016286957957914749217814266722329971650209745436923008550033876108986643462926030778484357015635707037787037965055113109301688830582446280512011432552873469492813971197376125336346499036730045268409925781994775893493109451664148032448827667163670135647199982350953593134400771707270298111500892352085071538614457005798942214391406085502237958804288213722143629598428701271132343598091214364255341970600350036658205029203498355763083299096831930922907708297443798776748488139550130172905563368225627561736845556224408144422846893691645726246690357283486075990209655448588399926169065294963015452629936400473562109404230165315926770268496928713323296170555745870524052323061935304935652882368990501442199209124493501896120049878574040435643860287210967090636233050278575865170435140915458118566733658161860103793908620377678664761909327499952015233013550276420947084770542204203859484687123738326787188721660881483959893520740392396672677854289330101265125125411884389545379417097229672278047658087183856457247585358320768294925728644378090559513735053701644164551441506827551166203125545825698164750262237957216945859369732428524510814440300967199711102337853022165404966619853550971418346002547452757401261628205621790038218529053276513903503256996743668378236873402919428553513659911177613233344397733729348456970241503536072958956565861065330921837393531890558126248910422716783311589796624776918071233612452815635063447416324569746129255952177466669380524961366273055446554220755561479211479661807847020773258316181897378942873581204200716063198562774101441566628839109443324953648682900674765004660249825153663452877170808338660044814545996884458695577205203473547990904253289232760877792331279534161383323750486238478146374508439486252130839826362378098470934223038607281142834295495689913834209528350299252628237861035908237796513379378737742172034580438140301073772783640922403361705406173420453352068078575447242148217675053599379277826742956916914944355988931553181078067391431773546301821055595356953501715761989599737562889224407842714821802800873426580086085318506672057698073758786659269355384228928894759851854374457691892956554859330064253987000562853325518303920018184583014271757921560089767953282431478063023948510929526416856856484295486171142228706192706538449507025219437808019595414464682841262259075617540038451716721268678553214992355597440914639990959715041510106465101153056330121212871743545565743533793168907576303038095462708565219410851741579692291173781051261554113307819622026642286136106950267337412823554250901834366154617852831496261418278445281093024025683752199627386359287624801417827051470292454344938363313783075789404342053609398581776108285100749544311387940138297575987732711696931312142482664976047434253899259047593222114568666469762870297016555399812850452068364342557619627612283402239462159817176944171087504180579628388337547574983891942021345308845126885898630468120774255239144589633968313811932536444118970514703630316657970352306894475267437529862027942453470577021377040113997828767441516646808535890839484933272432472740207052932651070369891282762583978080108888086043229919668058063719769396332672751043487266071282125886689547718517376526826381848808316885838300638884513192997354743036945508227230873614610964532939073545254349937389861284143230678611630142201872488367684670723757388485699251367110046840358012065000273794051388255152225378806543690171806951128972430921225191641968358142106576704134846787122733018389240473153808623895904260013575055943677980925408009793836122749635181963510396649657137424728806182516721995114340147110162989440974309179008802392778161222803694796289159470911309525347413839101359942966534042724701656385205188286490966986379855763042013479511788475072860827877136132429197060725167540602604811004539855614898199897988113283293204556517351449684850078821720633920016792838422812584213221801582968622515556260979983193524189788284411102084620087626451433194415731819871561785363483432462275465328255987397634565748574102847439311206837173604293078362448300156286974444246534414265268857516148002429780076586011707081427477481394030344891244264889167642764304428918040925897215617247108019450534428871421265243662792947038833561564976531919802495482658138521961429269682506472982960585515460151585742216910431013098132730274839680594788573645528804369382011986690016578432890547064447779764924552867657069255518182463660354646775109146837069874332458899982078384734449531736614943992293599062577349799245102643562463339747976428238682092973995579212340558891943174589021184483871808699699767650269005509945304647727767596732275980278739042286175000193733024296436340470226798798708534822159340804898100847487312476592083230256482379776033577120097212061727012735760433431295273192060287422299355298261039815529121188432178532141667963652414460246353274213304500726610644890981840733928064429966731521109078962492685671952300400110649165543607809761692085432070139925998563637750303468140125559335694704072303791954807323115353404904897404196428572766597713799806172667936188239204098400156441684625269790847310948593317721721127024483464726188700618856307296856443732067969104788458763634222714183202361894277684689981550818497849545459455988169498203114458077713806372016159610894344322649237399826816358470804459579876756046985878021056044211524759008455503738220352029155096815560065861658036797679215585170938041388560797384292799841096325015821533934036890231896541886095369597833529563649777687988692904346568083239581813517589706069609106284194709983677459894788517397713892310791677808956537603621203035071732955451758491080794536948910864112536692220473410165595212286021158856542158865768119720359498578700870819381634537656264406028103929130750156803474207803546287375724802476560653078643105297824496100361413561611845224843163085041610011785499698525448742645567281043329305813347034640440544141574404559714179256331017710900594351782356277906357380651666743096543262946275052401405769010097409335072063436106551010558447201208409863769758821990271532098734459286898491431105212677223547696882531716374711091389764581615937159033483000919594592402419767219962006727452072640178745717298370914059124411529110545367292374355402221041590026737318516901764962932584762869668509286903922831866864664007131171127301641795298228173221527145303863396040128289830457149234584886404905389481780147347710071163980574895310272605911076801558414141435098974810137115446733102385782368255486322842294055726842724884338281743153600468591177167255762597182803124869431083095170979213361435212446139309328278189854845355773231717585301543951592927003555693484008702486236350036996207956346311279068593855949608857155747807632175626741430642959469432331006796965667916228672167984278796073476306717698958940230791709449161204775976604536253003175210643993079647688091129391128928409733639686875505111302595348471801970053952924697322496603669990169199246238769361433159434536667405137381737305311040841209157881208659207701133897885295092248296494273313235495096905797195738586306420054880776718193576367891230748448128279678835493782161697842181698433970471588469656523529769462642489090187560942633717283752722498936152945032634058378198390353657334221554400008623004848468114083910286469658599797765984789293846856974904158190532627697840035191995696437673386874490109858994182817406915687335511447796701434771147706253706451051798183546797379485649437411655755399065976682451847634859999846523919136226377376585277155446231957308183231086536861357226600984849984758383664499184174997911232043462848878261809493587881437077925928204294183903069582623094712117809428072770150745650835308350257858268469031089334357575179193453909421410978840511203814584708371476962142166427230918677052710476977041348973031741372895394848799201855648898790451130340910472379055240383142472405049812184565850073514997213941596304294384793592800317709925213079243430507519621259786354422760056958529382183049214335905631748361774073454705823132241514439548249578420291447490397690527528011181228364549450283735807348600693103105501170218932159023883795106977223023089393826305098907341976459607781837432657886396040299781166045607135360560325624325905900625748266661877930130870480043777122573502092285927342160077159567439980411978996647579431612655600362889797117498736679849875389931417949966275273732044680271721278969832271830599972221221790345470980223351675188758590989810311661937297790622372786918829932906312097213570546401149051152027770319383015626810519600379224053704025283268298344120605049807130475259145621958977578326894494554563281926342291641117082336327808444318950842994727902166671632434737818476586718898174673205358958073705948074806450334713307561623874612642312761668415934933992768736544279380886056777058389561629226023403442915810877249568659721752655834438455811792057063910869561483728814218981268178119508781391950100937352132761261660716743131300160322814597122504861811584649087487063603863548162665650902298332252433301220209580080874348893117892798290845160877858133008563841302325237177980652286975365397865428814456784255715025947973452488168948088298176690926931130628842057345529382058905340898403912927193807005285574107308178168691707102955993461765240755301137229113261526262468351968803496991358496563550257777087803575501638090108052138337159122477781345538779789594867236979618951522707066483008805337449013944945976916280838453069000077416038410764754714411486260162712468783360706309630726552715846786829438173270929597361356432342858554545470292191834558282340939033442625486014976297237588232595801660161980019289044694803222144885281770235164215734969357069935072444297892177112512118114876668447308406600206134406382958710197490974480906805087018010352179875515302647899393565924918152953823658126772846097134016165352773058705758719963495330931270092210580913520932968781650827610014110492159289548023328809798767664098824641525119002431930892471438217707214110317000708409978610863244889590581452251662241751244417243689987496162936263551309277040996896986454685599362249810460119012527237716756189689474728250818544569039021378716398630412624542630048065238791591331783403223308600913912998332601340348128520535128820195235265714891888099113244234067148724655341155110857775509911578311414100719349068360282249916401099289501344507964535271676665147569941980064695992644636447006297132363956457312748284637592218240390659113534339868993886470284015748245306007299137586443003192621923023813933275735477656962595397876948377494472111655555741983120640607721809780773835719204810295106090433428431888255801962213558153950881734052418472315189376901047493152975761449530553042158778692463750866038756058918766427076926714494753461333025409993972380602352015142407767642033633949882584446456755478955865131460024612328819910242684915932226479617890059900877069698307858631989565849532052792796120496626535273744852361051696200121255134565076002123644393074608082789823827995895653543594029335335378966285898663931735120208633876757717591663130068769336883938218803588916490628962328506696440653534876558711251438627200022497077600696301100420662720764139711284558485404888542208471752154367498496646890184733720595006440308657262838158390442666784628505962928568657147587625974593467449671445575380613755955325556828215672492275958071941738942808481233244327783962047832007922756604959501457017218168376264419078555539790724524556262967403993242522506018621994788864855296131691733849535906085405694929573762286019726732730553745197049277248658054140891034554108899978095032169892566613814718179329065180968347283378191007232261163869492182170668972947839758933776833213490651886700909115240280604692257279423494745952604439888344330641000661205703836877187591652425956264210079684828703244364189289836108044998350581400347117485884876007236785420366554235511819944055731582804847982390979157075774584656117220188528578532058893660571526809909403733915225485172809644965311788887945934748399180531488736756361561791651971115797165094551528356856097135552966395378581971556050289199954650540302957877561963394932031554355013767723052602158421139565896824870107336561859782131833866016240574148010922589476856605186947199249596100645597228454010666163949733171017142939346893064593141562635636748167435277859188417066238086847710577756353927714694755541279300965383463289219926725892826499014935978969360109299848746458891179934946401466246455327676559563951331496840428128023225311044557668905269331122516129305640255050285751372451628754855903679938206132440662540889922186765700789689664827208026513671823359551089747770511686657136557468592961628453928423970430644088826407095250225626629586320591452043505362276896189960041674658322537059376592003809759170690668680879675216106211111126402526310506112367155368518117912478806474660067260296975491743626606523489427370714759156205825145866468879761658305331331547176517179346151404058723463984220176793301905619004890025620787665229451224790038912907134911655841576254659694902697878341794029775750039751463057333520671063761108121417728119724990239518109300653509025102401236092725247008758990348833863864323788121388796420256855199436746328922526756728224085163922307918098816698659222739893657355892803296252497154248933114336195086757010055143065571279928571604233711980702993542056229639357841249112168014633190091944934432332053635944476088275930077699817319809938552579009821885327538054148097529087988027283862080525860106535632537807101068923654522750827055352821895182810922762173124008571028638273706149331847106684144704449182974138529617248290967466154543528243796815793733371225486656448928252350444316965706200934662593265750366635602890266967256326718321228720253704354339638389181560530203309712700510314171444278193410761345487010651713568049604972422093436658841197249502741116578466739601752942947234085441140142421188975951916647379877663135783439690881102574279950448563833052964700782053882426484607794338734378226295140231772546089408747479400902315530814558169975832356122956948873377145496108297732852755053669631689948625271006538382479396637214530509733554389311301457689231814546470543136741182521219643909776475418656245826724392977527006691283059550478765725346857938281188796355588255300407169741643883463501182223480105465068438115886444685466382678055592649484379941367159637526006951818612831688110547441170308277194054269365083475429057524105421655231508608608140419574496354427912704827520792671399964970141789583138404836585653242964747541882766587957554221108537518203192011290401067063927015807207520101349459832654442802107845713268718388520334796446317848004976647639194035461818434208794361430912866007864335664512846899274686831009272849993771388779002150108528745385766960814104219327378157598903446046673349946946575538029814550536066448204808964830750218546241118947481961605958556450012202684283703153151642875586205252815768570910556953362142850863670652534951052841328326329768250288765866222417197250248902745776562284311645524350670889925797721040353804922395660309885117492653960817161364352895678074945111388848336193659030010316330138116866204281556853205593038995100914179109195957237747774161064982110577049731297567611146467196914868955941228956898055432297655265548091069939969369732024230991747610499296573529053425211801488882771735265660598987107247172009584556869553773289044334941431046952790332668731482713732621601131002893707905217282223154276985843942614490564501350760195755728166071933582011030909527668310687835970470002665656339609255293296223013766699693914278760315431313507100204328112347458690197480956860249993472519124846770147557352692427819483810286259150585709185972166471380708198268946582513346298295983194457591608441327579641533226992386243203559247132165266057461260909091940971936811486126255549333354050406293830532145255007054213579484153712252036406563184702603523092341897442095374492951897119106550478750363541309490951732368573311226194930153671867515264438074460991733768351748962928802790506697822882476791961087979490919386581075524782896277459282373450529409646345883564505833478449391803502921447724566121382235546572409915586966875830304768594549886366157619697133105093328057143622602367578921465660671958160161601860985245064070516624043495623145611997278552596649621288101551758997345018204884592425020624242972522284957199786632677925235897115281885372758251055202251756630318735496359822901508280432611108076031233304450267822341131485020741915506201912628065876862533467144620881651368494679443380858742911794418489635101485902769821700595434124906944888461046124062411861659872143758282990468204494551350407123704629339058355195667362970034784609355898970875032008323731001758820718841721838208463678617144421939380900288970588651507951990137450413030309021580885764555500773749307598732844776823535233474740609264941657683663444066424403036473343739900397128796466550124914596048172147729608978429259748766289522165739323468457975333863797229990895837477533332269021444142537118572408436824277567943352915131351616871667561810584282475140682150170010629778715135680881108167492891589245862117319498327685927956144439418290436611663308605667279752889528173118255881940915626503946478706620550069640651053741723237831288869679393646870988144515533965805653420517059505076199171733406109788732933832502100814799923647999982662248844610975444331633498805667252690774181989082296255131225331651275890338391525879767875952176251219285921715649881765143112969995616308530845561420171672164715634077995615476917782306159873679036596273095944579609887684335051790897607970722584862523577608310364521827896898592733884658991344659030989315319562393004080346645686299735412521287548365138654008287995262344773669652347605056622495400597189102244040818564257382901710834362955587176918247600417606048608907558069490680612145388013823647719734906703064066350646718600072988096643872065830234888788054695469122429444526020380465930130543072253979776412112309949550443173919700746579303061361729755583663420953961430602364302230033693820111801056586638354535530865229500369380489922862159229712396857697010339873131663880139848638254433916133025920228701122188958129201507839387675659604161964288610375125628704298424787420893005663327231733432563559519794277298393685738266586258178510907831988467667775763898883264678117131283014910146041516254082323304140162923412917576728462730368561995642603688654700117661070135149519977322019455879918265776241995371167515528698811835397603987958193876845283567332801135216910757388246737772111570420943935607125479325230531620522322561911438360407203199594934060896271585456625556417116806051625605829051296269954986951476661574639650571979929147916148195682711927613651429461448427690230918724836250356027664688010645052951591239018614515262083398156112000659059680231385322915751654238016017545249393596965999885116561561273504233906935170261052473937909934916555159626217369740822730273697496012429789584622168992414782533211921629204235965598040467821604170025738668974198752614657879235018867537434684123560312820727199241546922076956347696397065446993956135082070013318118265665122298968577636066714128147543010210196763618781066594699428483170547219396262666434637017026393993457125286118475098292351682330058245743619063683267619540108522875697126099640555623323529905906467063861256538590912668147417572543620587074213698763358473967192072428128948362946858747227870432156408741928375393648325837095052813681719630892086033982508182611742298761799872696978696868756057354147196721576387301859947041492638809435631480114281247757849962011208015716588124535719410138423262225850053069391632894856613316120412475013128685084173271785544502613819037213724691721158116212523768805990739500626346444663471235046190377301665947449734710480090892173910768229867546041388779933193336152121730900438896445065079680355202972144846564950414285260412919662156946944211932187600745735422344705621453082119796315988478900925113148742635654001352508335265261760278214837405167552013293278180432188394938270894015728834614545804017588279440950620986938503471361396837517218011481703025674729827712059916118139005343851873498201542649622513731079609945791228092144517951631743388224119353404048875202985477029530688849430511304995306978537549367871062926463286669751167421608958860435332208860238428503085712460121493461762897657130872937361895755698148869442905650781867455725237640974539339231249028720811092604303121198045327214250041186918593065917935952235543514492426595964548621144457845267770880994783499090093359050374393745739641826109577734723879237900561917051321339825695601218062024531958259873020202669412975193839723730792074658964968611701451849455930820666845183006102887333800273524622477477865921706096943340202431700712828494222610623064053838872725990090458806318876205511769754689308011408612226014340568792756294006121506275232856648494168734696263942976811603814998289134494086736095643063445540335735914005552672659213511247227679292197825482278816308831316672832523707724845201498245865318092792718579733213932154346000365063326452715354579425920812393016782893933183849094751910022996828343628777480785913310672192394849157042471817982070787285790524074092881308185011870720490317650872313380719124317052614536447337285873757553379251943095513640114249005891109949996865999962719153345135808660809314217486317681552552572889845158635021015367572090531494748639034532836379488718140052948925106691777869129377834575363926094242643951556550351733125259801223581503316848078380674181972757852437013923230868578861508331756359897393049404738411448236731841534310404638883593160603074178843327751862415383953815563355849674709466904793090135548258006844146613545746176084576848575114692082125522477157231165323459146070492843870570945858129495985435502473621423806446689780680115624602133654974641633436402556366528974617904955986592088923544987877440652724049120748498394232586101589211966001234454044755666735996312079664827147320377123243026191137779448644679081150546403563756125935555144639863746803668612456022140847823050096271621401832778226411979791342376227711012756357480079017654723355793034532574059739022830387633576124816552653910824323706099202692379768283937391468573427668536355039969509819022213817220095018497455317968463295979104540457629248808328057110610288172162077445413108668548375353798257660957761285233700692705858527214537353399315753582401308911800699099109556246677664004651293481766261599430872271013921371681066094328532943514122208227848235588233594350151472236220004211082239491598243713988106041649219064242136109607372448629668078343240105848461556921281630315249740857017566925412542386539934273746001053073801963150579268154154162749842818033380384826809148957593162093411121403294921295852710790102623289597451444234739298372914234755710686535624489810653507228592659376106101076053447942533319418597840248014284354702957705056698830105444567660739174539363570629213932156682706148792978943154775520015561397277269367256337566313083126133464955088003410700946371982538418562698968422550259553943609614957477592202852965093966596015697580113075066909849608396461420939785503745685328151695289653471024488246905598431024485845783687262410103132786269442558785749259359719183795792715516384417481265474326509339563357303012428223697265228988971958472712917499542694368282412239690283532554099763857419951258291426407694678899625217261032269268393488013934724697810399302884124178366009145860340700242390813811523824029140908161409248321119184124095984076042509533098989047231002075302832133155262430743760681819721888598616148253800155265130788091886682614137995806137797022971207713989718464419009095250181072301777452075721892492532614930915999508032971101804691008939126242379118048019072447502642803832360970155931449219100004904770085146105026537011421166023127428268976392764456158585218257550707081087707578240364345669066086773127216759112861061658393283366205599392905763062053633766024372235412007309504418795483301747451473530360962114261796494362292273487834090213144580548212638547180867930609359222470787845285848410055046119099657119393546980688847748693695342075067540212557440182084586416997016732397569017214389555508581596573853545098801043647400031203903370528456126675343281696177974415383909980229265208861610558763633147475639232648777509427573240626975527429120490152621820865331914802752642152698467058018415225786172007092987138789706001326421120356015877792162703247868834238131408341734977977770450822182682326673088799652058577574885665849830509928800821787433460856904968919483467486322058725553041733352005021500837696910325816242770864911399553410640484735844276069747392195804119467089714992535273149237258798136149121905940453861574649995806304192407356858247873610362364143633230063103844174652015766662124445925946258124097584708839975329507171846879414093684403185064110011384192434285629145526913698825823248037519142105259995636230247297876138172659511187730872991217752230927321618930876132181663860034267501032588633751207496060111384945292218549412550204222124496058745095516202800008246065675469061053345129844705177878588756539031107614301693044997620314404451259095581435964369878802907124888027148570428813778756429285776383742416539042297781576306510831248528547839198766929302325879604873689592058439431365898517680727801572613417274115586378043390047930075046793553609669371633793280499733272846804615718359068503876491771023555728160451068521534197947012591710537081706580364315630605416537160222298233672595054730520067823339188333837561138728951343188452959132409082136858614880547251640502165977817848743536963422482342149363068564013960801887695265031288577798106020996854353693477172146907452248721639952969058421536528117309464200444607008375865837088627984972760285426875296705693098531502826857918680778679978934099960678511377352899174144726437793084862919706364434788320134127528428715650325025637734488749398386965253199517806189027035432889420970789387182838337450682938097436249226660458284223394707465614971803931889752693413324262605092320175363790969768815755886536904127089063236457074521945403167419490977291649681538412524728106091445397471694435468818682781423800356505893977644205694795453493686194666870097965909782559253992659343559658618334613984780233080032283379456579173591191233563472574286812608194317533551072716216936073265263835954057680341942039463439253549557903006715882909141508633609276905070030422684704727705392311331156722920221464956408626812286607374229379120276173624497121432438673916759774426581768952242256851406378365093094157789311282214709526590171521638701996127374663392952874280955455012092306044208175185996329608180298133626996297942076677230304522196596094179748210168493038333632828841671442093577806844624795266387746614485601604929790254212055166615487913747899650523416199039598337999523026089854620347957028992442215892050151936998480118995703996765121244635268398471546198401461845508031198198567247674919793543173476273415429851277754388894003297109102450796315954652369875776899656611077962617534100353304348509871988656293961138866990763986089997685857169562383348667044674436547870313303661508535493438118660904706587116465461335914047713315826062087892545495563909622218715884697041803606401108754099151088151332293098190539403584358706370029823063992623312674867822418194864202069000837889167780503548634759438566330544368415773368294378141777448450594910269863312448582025439955260769413246318393629334023455272218135326391980715554652876557266896879069129184248532306918667737291866744884950716829653426876975113507996664120492501790600443180168234302121835939892821074815126862130844344622783138128921726817015643743510560380263846522841426765694837681705692475319153745010830236845755780220014681407819743215369874987682431294997755010906954863378353892515575406610065474105229592979833379924281363228191049121329040070842476479444578788942459812981335644793017430919643548164844623780453720476050486857757341702173148287950236774059277082075183610059635429903254453035599234396749988458489272112470457459011992114673688483795322602587474355725664239632786160806709584952671922977863648634833624435033361523416452586416988015392233233135582365353753111536260681641056536091852444597480511182808834510204893606169717635563297194944649208465419683968045760425446334244604606066754127437230731352735336437362002359497445660650271074587699096485108014478955425946403075332666031510806643871077599070230680822115587488915250647635292132126457429958674606005584858235485886320518023436500922351464110367836895866342191202578618279447522327881164279608046834963489119893262494746990098857868467421025506013588107878638970271351280076456811516315985860829460069425019703940588446108936882403213164601166503025797576009476399252021413541701056406184524064499406975860043763798754108069744818663492863696299956177882311905178597460816117147443618330040702849068394844074458733317946313023668225693837537794795736566037444589036243830170173021498603152981846698517960648245469747446649367034274920156973185098495684938616556776569884814235640161176943653210097233597203118384430275243861384307550638431427106112620222429023687640440530959165138060020057171454037160770821984083569767129899702132851342393253549169309658426873661961435774599977553120663379093297851445264339387316378063013497133227788196262958485797449672524370764099826462367130776473908293765391094812800437368195378810336118998691304869027526216892029879849157523902782165629185633647369823179391777687123041754122457096067546846773030088692880479419571586601193116178707132393999138051337145482110378966625689254962721044827159060667980133192993244522668013627082659951147598643682959985937000279490709476092018086201196784731072438771527310554841992016649927578380724523260625539194899094187550720447324671331883582213990525617154926782937838155082618487105565374068734626586916618198232848226495474269042876710517241008722953125344233764789016293510595359353236042109886915299334813735209206638807260673187669116876531930315856883394727300635042891186249851082694144711675362295138539677568150226034809247042346711314517524099106910343615391809032163517667297582402175497681338981298053482311607360929123454510033404645940791240423942293080809630284863912903490517300763771646716091474066898309100315757382438519361458898653377372490687557227492372436614819711973285088783714580512651058540677083763354017055969540430225351163011868822727821872660098416953610476578128205887623705542132938754717166369477532646236149641054098029356166494735414017094588270372637444037843610557539244842615456744743150463671515242009452781903779183269250905400928008204089846466240081209757891961537611704779451142632397172045388199522809541730320422757411839849394609114856905495527482464416937704587505949749859613439301844368422193371642924654665621350232786461499517234206719292957180278086044302516547262366350070159962044878784038679761480408543194590326728785282012370245190905698235249371929138233194085289073633689781722836522465692002129158458482711524604764283343712937910300363162950790562910124965707071057936518501163401502536023273647218721777880650074885251462417505253829302872862944633141883784447002949985690105468209105321796200413754869324162738829901756540430745502796363729756219083984179100727286536628746765046740821458144479343793397936572116419640911995169853754256883271212152953507388635575542654769789638399567891676952575152351942947499565775126943349434145831079692297784663701627485764423679500542265121475385918043253155315721751269995842654165641991380159932593200722790388244232412237241309878068581009047498111204538027787272356327513197508380894239243175094354303071447849836159111184634285897801782244482655768336016337873015775288047279653467921851757149514192630898216352182542455690542150181630478910182674121757788389203157716326823700217279219026862763665607180166994543707020407556975408786116431817137783896604249317993091550436830366893230586835629371888402054088356662400278223907012098465408951521303062030972810587385220858595663917791654886815839150102623959741576882174843000688730817946617893806010187629619840716279374713909530459514941050780531759815352545880908831554397617015014944467511239237489103772567379959898657367387044433768987923534365629927787374523387586057382799765059675478771787191469879505525624198092914248358703609198889365769762664567037894991842230089196949396038557509829609180615712850984088029732802260862217132225493866339646710002170667945741564954004815181263443798937610673872630421597609048519678247503351857096038490973628724937516105128132537074406929938059761504226753851182698247789385153379180197414392685362405193970172804409463254210962496658326458479816680133669467513882737489908969659442884014360032072545087419735913018449545060888871208341248731747882382285546484142007873336722769324387282381766287253986853210118028095600317611377788863504803358053258135490485541697431385969209208973586431211000977844145924294710035961478595176808876591389885421408395121509799053340481996613836619854749889088186556179298362233901122797570745524483987593092951147082720893987616524556067991703519875784847384079653834458461107149549114285097143724912174168471675026591283750444789527253369769174769541207574242852524629229694815561550755586515744726705493601486979828767312507814699173240242170848670194244979374548913424563712144417230813786454058846734172543238594421472857455988007763556075018903060523338690548799490104412087946431860034534940404159169308773083250167945443191038986993288907378482834652089864121630846627331341833361190112474010842293300951605635779650129009092727614072082137206779983375140236497720840063416069276631485608399657495978908402261666066176076386196061418051607912993896866647062014378958984891149190154602343979548309252362073077665460715908582371413464071811683024146172741876050423165628358097336522734081913181076613269017082626771811509412612606156282089759363643481322652512799765942989851381696838570661341939089730640283200046560599698591800026423008399974083145649660708113949820418936905655819763966865439264265993728412521041554157299067141876903105621115149343614502948170606430263548504303915918732464596243926657349134727232267938555475056271357610988903122023495903124793813127259334364465978588689787486237632831474656578419472124603024135867078752451348200678833669920928829337543319211107682644159834707989469861510162390509308042453074430594292669015534763428888669803603528696151436937291552567806772701670154370498688457066661896153066454013795466516658598307533999819643205638874580867354914481033369969773493925692114067102198497121033793869284505675975178803600409604018109099064012093792583826909392285848896185565795965547712901237936802966724206468905133236403993193609636661330877375249550033781183386010075354398640680803061152718212787264749185000598355131474036707732842736981727957065998870122715459914147221171206632831535240354699704558558933915073624372914901056440498323118046662454128931327688719688946557681338047449051116898001703076729228355768576623504785355276693414026492504383244348418429561345970002472811528817118073794544744345523571400450216211936480129159010026542622691961378378791257279424868999698601494736470829766058426324815284843418725927137417849989526072271002543144970443139713277629779830354968542149539283060631955592980575344128812340405440670485920781020359516989399409221947735477765390196478205735541475457235458475788790331548202813023230379501348004557075778195702889658683517770325862894958554625382466693103586681541467733205643393150976390390371269840733898924335183688175670640135405775249896605958154643247688614680517096602261000577178925209249505028555851726075591166363342533654336287440152537547946535838594099487996771696578914170185723267772915209096542368122869246291559968716580476009540564798762790366835069150042330619237342840718120343134719465419695052666520060730134764317331948651731955095372765563893931463454297820764191508151550465798301274530320494255479704597037013864639625826454857585517413344717114319634135966956838544838014624889634512705622194515844866702111685845479070981140179545837956833151162355675920355492873073634545989322422981406537835837239935468907581044234192719378150427914981316603988454015684940908248007818906073594246587274477060467644286848343498067822745550618846420167884840348420009682459007281114742856517196331580467553148463975941354603543336020932248507617144558378206915831685687186111114523874587343842639428063347508072983715154605793948218363557526520463766403478440512060698617003979278224646510085092652229151735745490855587768163202682856456653271321588177631583377738299594624821206513486897554232345119884710828481809478682583156424217493071029081295377481977231002860801827158615577063662198656415676347861271303567584607369262860461000295940575369636567522942955540231667401814044715972869676952998939025862147566988835054300287654724903948270429601053210179096343983168125354776285153713510850414323678365626886037745005498057049629847334581209336708180173514145234206589521873662392224090493278279805989279235831876641236617229612543045196068778944235029409427370177887682270002233110307533020850057007681204362518577605541917653902799678883408799800412018925424033822365376642655663792831684786926950584950306575621154296497788830216400698910622625740292226453967784261311181621404467576587667705809859307662404536387164741666670108680437213630882728635111215692562000835257999347098086282134095361135364687221733227055232166122037900268514461273782162923195845641324516074207069001439828220501426137136836200962230074935384621016292831617580957718574168293653368420911454594022656431922523929186233519646340520490585990881607490795188168822683563180972043846149746304209383272738847606047151638179313934663801535380007428722114142064343970516471295985492927657934155766001813818732854526887114116841308015634420206545996274546297247026416774918476979517863232733746409791092215863783416171662516924187715177834813704095688036926575340140855267185705732891179086573721145536217148349313633061885067721404790566816647169204094107834106683720056339420968701226723852910910384043355241462737520996493595259491332005357551454430190181683322134986393056599241901145039423910856273892237752461152446705437256417553660311103966867219118625141789981260980767366313655847634215060584968397308591217311342572985238732221678114351522844733099126793948648278393231562345909202492366486407905991300086177338672471583156194190861028491122551275157145897820642636414031968122780084203105794593346403879816404543053030982466450261279441214365959153900731733825095945750967976940739382704115184039344048075550022209166351172442789872907736797168320591688565079315810774193154709212646219466499087187885800444175022517059915999733979337507128917444516999987855103700773956123794972861711067092029307154804181147925136701097286343235903928946722052731460981714111847625865598031161838282200093278501435383879121814970886833090028394297784205332589527927224763790395358891198538376840828130429681032927955137756108270276683025717178897803517985006218178402823854214300522876894228120048451612257293416058462986065697135542364955457841278026971241555197224698941405151903967372835681566872643487455493938268419418425317115265438515124497947263200769260802242852420353604250176407945672994547299593550762578703536668791870071843972582735042153429890648758679187191251498327302191891539905279662072300931564851440737085181390937537541568192572004118277642276128794535742660433203289508386203142767059287406811090541431574217868628790666393440664733668868549940853268302850709580315848991253630390630169954623990628985100498082615164924320224478784685607960248243137185319909639563122285917225393253376599119689476203672280962285976359162042623906324007580829961777558364503865982097208811577419757194045547781129950951112624102910545640429488944208803439222311670112832501409980189363500863191208161371377362730491764270642577907986804060696963163389665538536015339208438629285065198942981716805471227700151088846232278962052469887839370414135995632852733780517156017025652972380215877599594404995959263481207948965843200962553989674371562622375351258772177085208383095490655945591747643657419151610807373499366468710596428199190490305759307911196094721076744596781676913956113329125547270870532813492928435095113755659900064346562144441506684474702747555863104306530968498549161924387812885392949377685912005988460603113240601488836618253286280388853993995570020753778963627432625864033693028930734039195345390075141490795206657066234219740067408572722335291252864947120537031533156425212704173016571141692620188782505145358321796523156001618810279913345676116554184466191413419823893015588613409451944493990104079924171837591964124117465737547878449572672893290377226474602120441094046021069399292132459259423918510471372078851463186297847674563328415460269967120164195608169789205103985076957838131475138200966786967670593625920120475102479677927700400821628588238775770331496421689314530113131186283358464194950421176749041451937950372831209500163404416030796462757669013052986779508266008240880814999716484225383665108805154624881730955317168743439377730785705873423567696842498081623690051676731611300955031391637885895549764696269111420646928897082116110481959305790878278634597434271019330128503570796817823565386673511420676753355143946437644613013838754539910225929938037966076571131157332344448421472276140060500189904549572773922923907767692650439232861293274376682067962041032208683299988051738896270008606611610465095620189198688052518199641052122140395639552770044388123823359154973620601760519661240000040555030812649512402970298575706226432986597826872305676609998203893510141008966906086292700449549952727074996714991394463502770938695230425264128145480379932125906457517902484210172666657276640129915275253725032119248732892194606542702351973406272891743367125012709909609978045543602257039361812045010809854480053470716522125772745774766202669454179619054928102094584919066827369400552900133328260436111446218343034152052066082977621457083715986121311144933536359178738425261036674483982858324062486336566676857212185853494567895714468459179106036728595787223347386660716697092566883831112846044599919045180311129770807666852768395344658746298289987528287806152194596731643790801422879964430454128128590885073945624618020559649656814618266576378530713732959638008549471382760750703771871633145007881434911142402453200602975660439232808788499946010541051171549359243739795715510365996534797002164784776023796972627358192639669607109689525485094191731745361338462805956968534637948273331761828959068505056393334202902401765409988271301236922525311970605090910349369192328128726259094977892435054155306982932311545033587395263319178225462712770356279580486768598039714279158811237274267719904500445088950331613959520628842840208546666859849003325950561495356211457097005063319612874018459996139346359847177005586827660714823966818795589026086429562536737747409345457195602422985294765750117204727885184373601274215223226629931076291781656284080838244705205563125929612436347165535443252956342778882192582705015555052890239443610498935287450857317208018146633929234542992248221645379377252622232560706100370881190273759042147718672187080841421511473776518537320988952137745239089103218880386645878994611081633890002525870674031188192475197875814077971227406307163205778034464226253445766245242193984144018381008502445568929634107973597360224739418952051799428323861518944438549424229592380100980067855574337772252274306762906892850021482440535044420324930814477588515131310115050214072926207448018482792744473801972451058987586933321081257127331721920875676484367199850961199573142807476810381324564280720069899490355397324262994675442124920090423986895220334998616065708594936452702630356577537703422906045822634336313978522378810533437993344780809388433769884344660764803008019351488710629166817769521417751178491839549901731192539478629106917358384054433597345469677498142140908512761645602703770952270037458799573258325116597293821330339907753220410260079891403479873865983432266776655609075972181613379956529706167676342029936109641047943226212052212112401108187630924568256230362145957077062501585550156688132750464558756964126680071662441759087204207011197112717147093742822851311143925101065450469179325777387717560389398209141708729760843067094689567778733287086275908639992722872434921096410792338257057809136837843282662773881226420340218269001220879451174235046928902409764172393403118547397193055486161571029932721741789418161188832459180955810507286967251991343766410880774613762559670409148683482319973547171385068391405542761657396185957181171033387534573197032664120647681478054770922092161925047703107225480181034494663767004858159176861582027794204972255387432262741536151874513426435410132864369671898481039676160682421000930550930402487501820642547392047084678268073820937287625100189330943935940818392969528476439943488137647466512856676934326032474298230355134539436072852969275079641079995367038466402549648664700663030034040302248304035515240649737531052293732747469201853272317170215443831045329300499139465308529833999845866374956168145613450747464298255489591664595655143359009933006851817037382178730365919119228938869421637070740214446593193392977310009420482037469054452221385007755733551801598285774639288382543395723905053057682570859218877574686930453862024684486217100470559856322781541946115443912813227303062538091071787217497628927849936989561538500383281487305220737385186275967835099211696182742498677287725920899644513338490059302609840222754931005252824700347177539378334144783106014729129415599540372334804982933944200521170231913723012701006597737726498388048154016632354499327296795174950112213889232617826627219084474145461235295618669204496374126452506648059685595479844237802643180532413138084554428071892565690139609187020098900300127205246938043918442308322583290912498878809428175159715144405984412810966258131269155913210527390372667848913160117060895075492774085642337036344753865868369877866043999437954502642935118607587545641776990567981726782042513395470352425506713901227623683074113988451153689607864031662940533690078409484750103919733956500716046721604924546407350444928286653384946568681828523732256892043507464797336720490257799777732157471912248646036171318990995835310564564954197292213646477880579302557831863166413519807538286029318075346309035278141175585701528292788841324765308130220427547384113287367197258822698832806713577672404988116553300270070041324989848559690163164546012927527769367366615680399569632923914054587898550637558597047111409491588240911837163221838559119992632771664116672550837789172893696737335985226338086514265586341440100729988238578436355760028078437293699556407701321779624778157248078251883041557341139358458430919235837376863533175449430969726586865646030133467155058355708267138269807489596896235798073087528454112408932719529280879510957672617318249646829543707882428813141541845377521526910478218168385847911098230070150207696618205064565675230042054018529875828459324907351177427618659993636661673660592601223387003332383157129407786250641819292475724355443656755261963711773621443783232151122639798247297951487606386116552928654135281944955938551997375596749615152360959392311325046753392342195137144328962267530384427247649301305402764755756506155604505024882947374265371880504239657216446448006559555854801245042444834488360576620679285036856169319845383197368629620427303103590781260078885786467723373532521050026855744979135368394929650131908183384664064049366616107583661209038068948317600654555407362177463055603167075636309182289413393595368798662146836654155821077657398014253976174966746259517742858380134390989890520962938152635738425241007769939100607397650479413433394254575680495635821249880956471469526924717506036509236760641915542206275280643314921142626774189404282668778481708818207927627343411302241010474252104755942794004645416860428730964458555680129316981343952634345339071753466054173702127948389094910464206922331450882818823205902920909824622265944332982577342145327094746106598477344166363667116574379418579505588091757020994155035291520874324216308681470086352235545027648264433163579949914124812405673351456598421923573016625367417198405254662851546920794616557139902541290176745599452284366749750222626644547516689213365806906797684038915248614488224304617833024091320687813755567413477040224818929366690548812226245460936951042861744897385243652698609182587145974255339226845716710818506534626544818181106392658257801254770047466836141698887880575612776753406489490883136050039500789425945018303441803300987132311347417521531726095975276667622856706370125128102037198651351511452172577968804529093996686127461136451171724565856463055103245494555720032458295184260780272578446539805044172566105224043041787925401319855413217484522266812024362055756053462074892336107786166840738235452023919786755124756334309676799139250913176973596111623450005880178213897480657757812884235592345353548317125364768720734505002912954744579933695983696348949143665106215498539668567306101041275421284821601326860970736209709420524760476891589209524402845938246439159380639164068485357937160795524789883511439831994538806812848589798262049860568269858315395066164715490930586683541928961293883674498115974715942547677509973044880374231109525273921097233206926166813509601925855276143308174838095068697942005143388208198021602187915797160628932070734436381870155630278803538970538589825508741265859374612084442959176297050444421186978352064658285220064498946042467088542819378856618978912891930795379271492738742605528032175168597479737597946364738374733543591008307284430605981249324435216201721415401840226727655923294869994379843768999478085021923961943823450314928316730483642548032195131536645091740684577767321212443596273271203160880061998449664203065284708344326211178637249648946277771127768049365191323178457778027900505889642954828877215669579163262327418028050604191899706987274081203099780427143192272204730182441052163489011580373597297759734978438107902057707382319716294293461619784868497439776009751467294061934039083449628748369647934379287026077716033939360314676207357883194147913127643332756676866366232859729824289079605727828446997243220489382579171821613557024671241948661003832806974060868855505835748826512809611752065704736210447057328411519378641729773805653909858664400480395669218427782397344483687011810899053438329165106932302628188507365683326633584272179521525180268279605578022478134338842575121153754449361805061295337794589476884637675685039594729003125030235409313762552018119615099183753114022907313063102292669856725129650152127729481586522084180690831185216710474762459208033755806221776410214414349146983813571251089291159603086137220401974790521911692581999331760268605796703904281080760218289220595932930163503997056831174089563338076295681117132813041741891730410386849460638214671639395935101043034106648534417692616602507533744378579761020030474395286482512212598901789691189143945485432270103086638879242497667106049676990017583278230264414145212198570791967860726835302536676055200124210945345831325946124330733053062044252994146143239089668770592721181012739044353565017519536088053670622056378223410440269245520270947769178968498455538994631073065457810049151752630638267543191128284370064796309288684897130756254956447224613702241980797399057006013763046318693810596685522190382305157508031950242696911187034054716735530581344676781388544372497562918496858584689855005163168950917336290602681306579852992376576869189808661661454726583315280160591744871127002660443747978447423970912115679102853853671378832637440707971825823120763397035746367077614599249696804172740585899337305684111885835906077217003005787968478974137952963758597208261488593768369345685241618480096300909203924435498712540436106279552366556652358772649709561339616080662562416271462371752729439922340398153333183911401886794750403852084860538290854731808416241122419388478769298967873003818242446498866261421260883939582477592712162055693720540415877006085661297939109627254798047433690706177272905487448697448133705067393927120665708975753522126444700135293119151922105134540852198172279112457577440426404270884005559087415784090769452133855258788604386324412629859307306988190679990938916025759373908514555806457961869022946462640294071658364632140880752307110644267985297960554174654851475767263119293582394270414521900207999545405889311096665838537196111993792262522087544234704907208122297764793444835337633122286316673090828767207294781004941852928173297809266975345240848722356861730863200562031482818957214274875301929284827956552092324534480468191690156238660552513418140254238501381077481670875901771774180844500284633549372703430282478978683231185399120690682427604920123768038675459450063116513026383639320031989166625674161549680798434758517724927476414099520462871043225646549836692418894693317820680512986955724049323341763913310047253347378625816828477710687641522245659896947959591538801993339706430600116799722918934697701858560762417994592794730911468517185257453706673609704121521386862132814601904264469786408972096985014770440956649580608267877690713909772224773733763834474189738152169309577555662414156448431125773860701856772768033292859221464604031932209235925330458005548711036563364056039350337923731335483381054237494800157975410280076713859508742848651236058133857503220540200072436646616726104632502620818660381451579341349056282594030655811369238521078423190423910225449609697860992686760327050392396394046081093423429939943952878357862007062349306719570966190839783455520886297264359540007359335010689743709890650493759493337947194226358629857833175653806326351130465648979006719733562785954318997101241862180161395926406344972301955960660104984858895704057424570187314162481025182441424488347693738928749842477814206422721117389627300404247805307831171946688303131903560113510572985931587645283926820680735963445011392038842817722302595502175092035948391377757948103192659495745208845956401961554147293946343047664963852278497168427389249016486126328200976203778484360180905614946886473416532320091959091191057166221234615166787711439427768264081726243820407487767665208961238432523336738424400404131889772899019181817027816762488163874801100942588800854913533943868568523331364993632468149307472560490687531851924678530979765173859684443410948347712474682172207203119168965779467532297184895173852526307566094571754649336321570181858219531602382044609598987758356709882871093113408105440424499980500891257458699165141396264401603797627357578056418099833101073625698419810954872151685447310447896163161428584789514296058760278749581322019713191283305134238991753673266420582863131865348576237060406696689015425630456998006863661618474400220065086351826360053563055303732913473813371548966004352973400738442985211513495957841135248201407428688443973979896381309333246374126014624009055194685657007060761220003215539182498139744452276127464091321373982664034632825794591185977243074744499607494196408831806366777198019121313706208167095594425366176657745561895278244731879122614871459035897373886415081904908114028709430277820167806612962313121677644169656225334942851826814469052651185981843398881222484918943403886643318150880211284104263672678027597203219393228130797565806042178697624117256782226276474719547512413177092884853983261001468410883467606818222808880217845133987611774451346937148769874603052851814908087467032229053658117109475800865606928293441069614848036736146811580343957618928572851279580112452985674005702751440075904823008173645439695376900157776918147082142708399357695717318191172238898699982024778579444690906692689786722945206494780594749478281784735226731704349776759386544840419762063715587065417959146172313797756855364125391040855985466941237498660752308564651987605399368490075498161746740833875736905127665308253114751014246216847579862351040879375144661601395731709850540591494534007361219052574915626102007583283385334387830049094989990032092500241914715015051995584970817597163195563489118859754243515505745195492434735309282649722485670824425834184410545856338956037540746980772277788979511143274863065005478502183760313198404286839936704710435731299604107795873984830334897168904873762536846845136842213980836206448441754333874075800333894687566749011097813544318496847981471990821416638131746317954588136039263675976853287924225297997232490722021959508093189205768448412330972292538713646155148798572850240976564602201226999207949598128731412841617799062475210883655345184047999007866586724084434752706775943034863344409553403840211064141899831664924160157638171883102860816600454703644881008088929379392885339058305746603619714023277731643511802827781125980072209771260358871237794132973921221382725660763059928525143689658008570120063642759217400314792048151293030928960808245419609939798553608970189321291762550004156131748427641940858117146984852796220905110929564227194419871763035957700910703271130977715497214957378219906952781862165518852398103861104264458706875958361679684848706653570540820250251043069346280821575071340397268563080617739059699256649966996009472385314554799641712232772675445641641420633288573435590368745935293918044924564989120294784135318836341091834012944912955062409812552607723851291382436104756079477418663798632146348873695464217512076639728155984173774325170664504334383339010746501190562682894127781590991207747671751340766230181976772167847417268973685599945522241454273965272851183961111130674613391775845375193072380033721989899736526535311085273403688707894589583160965578628028379258464123111944244647991693530596069717172989908322467487319436059890653735754902793527078862146459178175037451564441352357558065243200450689047905601621362645475132919121160620235606545168556131113856056293143133012320279645365772028952780545120995199423363040162616010174605057595248096451605207186540625981492813485635981199681128683706081812784706192341890762224847025423208359248756015292680030023039288835568924973403060534774386268280436030929299646103729257474598237653265877595963443914813658014277071131887740570478330791121493867227019925086253801598548546066027106544764999115001726543258047282483191434610041033868109159868205871093097483781402275111220350669825710250926395106607702580475937554085811645166318550127190448420206881947835937315716298933565457969575266314734630149349197183711188755423524834112724109929878541501612373076901396963841853672928985436170713699308293879000351724039659398979751918266154165477635270839750220437688453267675244030507400573923868431833064901743804648064938355703701419800461471370776732550766832430464515087848780592297944933069619274158678593964874581640738552657250120656062002646713213030602341917811352379368342282016481976696501076171592256354216547779820190095375301519528949720852422717089147126197569058403772259695879491832750078907287702918427048796328798636794792511551504983474073973701677139844201908592191229545653599338944920859110448367471213621467751814847257188340799881525464405329905041265163895303130939392670798741478718088321809953649872165452079558254187547600859424628615388642019087413916557173870319669843471596709408534094792569857587186469412244432168009548882437928778162487426196824797724886970961841321888859215633805954196307387929105715399218767776314524051461130484863843107852396015554979319629734827634591088082748848979497945895397112107125636969000998155422521987561301062606172687971504769075511678428961300478330958471333462651892626412390836269110394717585376469890736105114953023523565227156086149010704211918293255071471591971957009018411110472503291317775679388460941147540168687413221360188477599715757151478242834760584311975430492784321928139808366808199165932021855967723743760209210569364929526668582606871002086782369091339808413199048496951486059874305597347122267361450976450123101395195562988542782720970081886221696987967017968668175709824165656804876474370643052312989459779137264969671230480724568998219207649065509059481451235518334701809736626628734389845232691969910463949327209968712284764004996731008162221753463117519746872206484420343456030054544530585622112691769246331962064708437804575993368522463847599107163567772171174213348916875166232940763434769855255288765320290681296178796177924884486433907981167434886879993788442940051445184195459802087728365200325252133964231075234428335963625063196912604858776754253794709847937683325347400302489655804814936568265057701816728847485654100231805821314694862651722640112347898760466171858968098816680008962561634653880775717361979891332056517183161088377091724704676800706654943283175055693454317454878625234855260427856479210536275773605643169362465875240700226673424314102765903663392303114279329609219256990298212053814546039338820530527489876492460612175162287674623066991354180050391607671300143473493569136434667612864440445005898070429233461064878187159867213557925647176600108360368115928304302096712573263445380019556734873845241507826471888950377961605455295325235397930494338201647105935897072389375313540531506259389823068513526661684765555066119154654543006342276272796067564391819851438659902952285217332956387214307051379089454984092049272381420898926160213329860285589719015984049158351396050092000572914795607820996476302314835967390641277193604402281314422351241771022228313256068120782082269188834164873198586285802563334794951034322720185872468271891081205516619198209592739674578251435335177904157314114857668526802902707580687646662931210024253254789044636622055825966249987632619935282849924511616787823595704107932929539521194325941345632008017949979974045830662549913692767158005603085380299190101587845298699466635774700952036897154606802097177443080747127808837851855479015749262295338063001376070311948543080873695355932344618102051209847651533191098591625598575770281183240512491338377631773267204014495318418344164857380899036152812718410752163449938588737367082035032607978908580011921936972083332338038917244970118954029518389241342808993750415340459556220820824148870284174516178854949717845130670698828792298146280107073016553342908334198318248800457078924902351983864482737425872505367945750543895311302499467866808152680116879581776086940670761604501559989049846596994695557917835670675885961990483949675860919771751321120349779226128826722531318807926468126487791261718945730424331304603264038001008025496567642134150717794774796846736811372457891222622752433897378776251216448348208341690301730328022377454723024124534809881882187358843385209606787356460397624223011852744017893676170691037937439434422520075854085198496440254157938430195734108306164170932541171739804124024699711953639917983296024881012404474765456357120777888236929999414003130921871104771355930698283203514075801360404169921669385198675158514241837709494795248989344859590546738427481711422952186265812083791266978545559777407656076166600778147199668764354563318937986110901516508928272304877851873962267810698219081043662951124777395762371278447856778402252615900441377256781036681654767265665865740096900182584690880010150027180545348253403094760145376631245757823112897552286696669930864192761561114223905601565191713776590829422511095695906081343550947226430977353817745568293313701089434381893457319937527178199381903814348944786366388236672629924607503583455240363156063439308913014542193231578709376777634583949532726079460350872020749316091255650870808793006068467878136139665173561597203930678785362350784065614638889584163025473818872237010894801772101440463515804127320953009392674285306089802673776759149777140588837138671084231047479225257967976847723543687146839408186378916876926540415471063818681670628853214462619013025582919186866692961240288352096044944897096859509219549152433734424908882877324718181797603834467801443949095911538449877968993119425593285660599519001517930365695496895883903775283409086227905746955900375786835448129248849422927148211874887788586374070013768821149258472100402937337073194157417784982693372102025174161605123215351389868759204270028756819256570437136546364890507750967743098016987034206632687000655475107486504425461138000581308019692352218242900717460256691323502657753404252943242262811251696451323524599192638545485418361818326516147743919953214002651812363395334957119517090520404368202912046133644994029474268091201375592392289079321913252879976101933911426904136149826434274505006171053511023086021351721745222896960464249790694417348486985802305264927021078080976980252729784258950869035087890992682942774824029482334184531024367187182889210435215763233955423562976145876201289699805520993202003313821389343516864308179089019829647950721797352171252805415928310410354638030604435707486389527518234466506696583785447377849080296450071613154281044545391390850319152445763339118380716187111992568251209256121628962038215985686918421940555921601477637778177084766823533039297307362732429919770380739486110455545390938725444366021513762782473610641880183906994827919578670992970774059617804624060850911793686793820248339734337957782597741160009828841373113888681173434854929200638177003993821294304814860204027245101420173126482564007339667682723739801929246266157138715713811800812051558968454490959950352472534120353901893792538783928864537307294272285128744742306133268792765452646424973837013383668433135377492945452901477193894452924824995753211971070449114005114082619724605542646768910227067608587728845234926312119591383628339119151874414985358261123419245812466895633205902203255825193735434893304931414903671705173028341459000659590477705848789471070254882212052243852175293748426983250674036969330077909796346566923177161224975661999096634501823374117684368668333841869912651863749543182621346628745881753605609900358214398374411185835331148508423275564582339104396688524422391732547755463021039673727306347818794028450820351423319651320461415515908631792343666344471395193807893024442966140790269512808790526790807538904944842876454618625508546067576085310421490837496989528553279445026560928480769914016802743187718989425143113889619449292020497694399128172656039626519857050245233301870388884524861360524601150635740699074254183438704947729688180946190534343679980252975808860375338154607436643724213387377551660210372909433352234723806669489772017575317868781938891797469458431798322372698721126082295489162023829023601916639063039608818618615095445184209020466369507922313690967120340924262196234994369800092724614986787424787313471325166451524377968557898897229646053854184757794574613612600884083914890815432839878697319359008627231536921919492761391469220753429319019466125831382714217843474884948453859770810259353291092232486279076724037374141456414792137751720114036734390003920421724708035593269859869375387017566599584723204174632518556854319934447419700533984114341166832570437266629689312988203223101094325915657523004329325803149235977213826906302704048283281738184733369015680377700756729359289879290107678332709697697344125042886643837690175685431078690490662323733673016649718697259018593609200780735070013580502136405116449563579463846396649175231660714389322672989083201244817299699537883000365694954660659826920706362558129747937872673868252325296148510915526435182662147928286447815947272472213706092543713841651746496977159784088783045108051710069350018598102806877084223811107131286857390835917286280517218007906277856065676644777697646543035227714879014436487166438239459056708859955486210431052486319247798330265968095071244903172512901862022147366758992476444396252082662553035773073483459103273112461117378399375315008360345861570759224871001127884406220553828680062570771277776515167974617089378512160195991878345358397493696880056785417331050924251238243233526552848085366577585580593623766169598238901814099996693426902048463957333004585582092272869310146858803943608898957797645153645042178004417880671288474055572327645515003630988844149309404350894251756634307544832805386043046501574044625069698322891067530032121004709487388607001997387777736808687559947521008776688728633217189723657544238838854860888977057020128302968517440124168068827326091057236134209616139906186856358054942371892769411638966036648384644764189751154906396445674650446017187921484853220267218578763773732176674803754897010729811326815705506892874211524321593633159378847530982017789416236965884750271765817816645186223532808444435875290347568646057204559194439652571298609206581551524526531779574104463222224897222628526578218831413700696466625631439347631471568290179747786625532767313951152493291786993653639580394355960253266068104838724926843504104749900099463800184977763498240180052473865647121789978879974766933980548485111775297014867622866250019826747137957145429400341367667776677310850744429511576329151768435792764473625584139500189100442945697527962476535648062476982819718232724624994354768423784767829803748415662135102670525495734000152925239704888544678716127470116719724335842861986494686067002114278365988991977144354998090929546287751013412301531435127159547950752012128506622607890983803388943588679412063978978728753774700109973400962667557423813995553682800583827867393235526382717274992505434934294713159899557407619060394142483261997542566786341612253511603001822038222219412131585951910048048971791326434161778859735538791262088238056320645408948244734376890783808828458744705261180586536848701061204085502305843692493926121874711835900926765959707838148868087479684667790025158950739504876660064773536526534758083912422326840779438524331254864273346219627246078618861248469390666206655364858744035483606993558461426125702792665339675119212122957586567000823620140039321350557021658740079290181549530330212387611124657909688761557340842988852215825088689557231837336566415204080214679313804241186552658076605828547831723764171431386078425528690211072075525316878541237561653293226592471738842096588802176290320106727816725614243147848927093683621176259514077173609845211282242065446266038924289719603214432335950591708127379497507487200065198467523238582037472166480231837379406423586795077986107321049081272728581321566084955189692283294986171626941667265060973213193588551860660675364073778584014860529564686446642072317806927728874093889499379362254075264799535572781564084504580930382868542243367923253607281823442090367878447489348609551814235833457849155360038366656269296159380406847174564547799832525822940955203676137705037540121154985990764608216818189044673991259597394349402768745651294391278194861169276584781307190207528492832649344399412267246717914171643375818404847069619165769168517328594100089990945765234451393089277573436317216513553913874355523253594948082514909078435368129110991488175809968971177658649297118552647919794871201457855936257991022241533120748150811036054907638258899939945296328114315272882719142701274310517746489047443279559273755734129731930435102953038348102298334894501995317555195888832998126880485971446842440784031232580424742561122890592000759278896960622043551742695110304099713183691912626610351535150419130358484120021431013186953546180385842859877211223665223897478184907033178232871614662098370221607347441536017756087443018400734627133947771959367109429101962863632107679088925929613361616576733855963732689300551622438196776680197674404477664386604485881250718752109067498373493677334146383345785911538338042761493108709417175151521970204960093719934716357122072176397068876986690250408968191602458487986293364733835177879423046356360108747891473937713129838656944488592605547760141432913680488100806801713735938439591105207126287476734951669124763870164042907329465054593922407020958080826641138201652881583374867042203471612066556796675374068221028245826232789741226748848148831303289046386945249760606045238846944922984296123533099761210008915743263763851409843494171925421442699541483823947064933317210389921646378159159624406626647187956898712541296920199080511542209296018674064636281741887592129783976965441496120913261595318543172016691994715729935345230389457545045475108508768906780429637094948682598080520013621791400407076671916962908479473391477499477262390716890025771250812854196050147719312040582775539519238298387943201516456426005433032367684282476528651662950337029146651105866623996147477312068708522417630828273865461828762741075324405876827440006263307223196514650322445651004046571384544113230109310250314022905127907425885977102030408403162532903760686376895765530070881180760930062334549087466365747427347363770380535207899839332854480830082686290164542992152727131697729311053662686684562061315806871020271329187127494174469998491620531987626019508543375616306550501189964066209037588540823990118742434719223829789775955853713032082972440004207678080909613847887001100497313912128049538749477487410992908648298794476606527044883880390109595324947948916310360809957574904796593312227844222419871139465620125382449712320496828577513484712470789717368336192772734485394030534489714194588424734068330200551727907373850244759654197630446360082496817818125437402822535743057583857504153286409454176450577261595894086210067191183030727727283255332225349123080448722252590710746910729498868016065053298527102265623883752682767559806377881146087605782687649037673658644875670991727475583973818318456622014566110445537043621061960975056288466948375964398064672232637379716436979735632474121435961581753447400253411662311024890129074914952880702526515870031291335894122620699113824867319939148531935954358251403332566200294599910031776992696955889178513856602907755637979115680775405308864102249915338309435014779569781879475131585346008849129857152245486235240569740811789397756639418370835023950492279203762779210571017070558419929137227292584962396620192632323708073224522592516891318554101596316607126895975051815682463953758475805748072852654042528887646231119987709692692066818091625129648738416283519502960013899920798114708694779336482903095068963136983942088153951689353430688450619288482483220073361133361289548199171534357477290897153006101112562659552466070113405207564882156386912961418527297226499244437763318513313988120719328947309300160936649027103970893556455167489587847065960217832190047145458647697595567921601992861965282390664035051136040070273007261394144023309854746498280654029549963344985559266762767274728415239724075473301147731453605334466461116641586886785588069181028624941716190821595402845413602811893389402664733634941932707085509890317563964497571655439938792423821243706749346518316500540280445021438637387557851706401662454018826315881735405091616829004017763649710919546965890981681330163235004660252461427827120311799877600915072281632073912644432177256341296339317293471872534834714217604552443411078233952139640658597148177548636635738272165914283767656293106244379521930043356303901825488096925885439529498209601782798396194936362934393874745624923064594804261189931336609494863603457588714065573303147607253909439122913942883825883261084365167508564383290751140215241870797954163340890101797266605591852051972358900668483181434542197697003469588468268039231019253589119005221864610930303229305565700271199988320652943036819236468640934130297179473929639946595115714275818445640648092403692319479188230826907914239912017974869253330807866629718937380556299278926393819707929640431000189281644089094393466576812309310839280708293428575454570035828256540735733035913943773245884188073161031063863575957540927465187578573783707970131617390939495059950976488056979936522833499595505325428479195543114400888363277557054810631668129178270631072719829222951666669253951060939297222202091383150847282121022449946428642990329871557257537553567826331988967825567200069152454508624362341075661996851879489919958326399958004989672046435614581379524922201923785073433551205007288761386730312136599570186749153851687124195096781975989024798117778255953851831389070128269716280935708950519430211880624608639646199114950309273018028539024441266902831689819565729029047651113019632823982888769362140836850218002356710086251407773489538393982711032641956870530987499212777033594638820401143265010747371949415811995727502129286270679752422217731459968887211956109457460221267443891619314945962448169915766861346709792078165059728456845884029791451559766125715079613270789657853337003438047131971832802573236306362078806284759710648401915684786269307843631900048199038551865914138563702897739624719517121557338261990472529814863557201185500694274533029052648362473737099461638863506250470886123865020082784012844220588684660812666672603116316343647940204088315955371992239146545736096482910208403374431508540374902854133521755054872883848310815846248336633832886813848582945483242708874553589707183222204937965976333416089752397482221852605513693779101312376592777222858827238349496158373235366179788070420585194348793226849849398194445602323086799596430330982420712132893142269484833499086444400178119502139035738566732472335578130282607707238751820823621145899521564200204413967249623133923820802277407985620267817888575901708971295495900350095673905988051417197697330127113612467997183386469083559377195863280401485827567439440214817018145631165427395450974387165721067296731584615564157972466880994502618271854807212419294691282750243208506697547279580193181770101684138509507339312171968085878489439414693407934643005075475735933814037092481727966011431632593412727730263857859317767499941271883091795954800436110406563934532211513524780330346197701303621937065172748970979210139387879879097104328486537905181388631806561113928013253735282058847521426081876391010152035955844658660660704974831719435916469240342183754985244069816487594625824508483054788959788960462060568430868953420399459696811039098477256661161244298190798395650617078600647080577362739106740747794782896409358290586035937198506469054640622984277682463978324388652748700032254661141832220043451610035671562372893184360244763058893688615010300036591080115299114674868597036129790941769150280122956004653026652527940716447961416363320770688730523844817686738268265188729749731684910863942549212383687559979294688435700647529304762185224218140935887964647672172559516610752314978222710585934276176515731161341493989784501522405803210586806257258464001406075751293941953845009985134633677974740603078591210336831743537899275143217100909961041899280541887440462890789222428338426835920054802585308208938830632777936231657989370337576011332861709489847250556699149130740193820416242755881708622740194993710739252298626878865240276093488420395409349397444006149435271216148063258893304694242118662019011809044046700604266745532928044864562119030165344803214434526704013464445658546535871858237371601179656357902452385018285681396113028796894134210591948012827830824096811130637822458650267883618492930785077681175792750489787467042971084264298500792531418778451541706514340806452906892193359146869842875061449694632323422820779382762625862278087636575588128316310500264546935977188327000539522748942895920945003431725220863346892879582609064899813613652826563288030560767684700095169966402412302559974890887196439602764561520135186382442682101520709444668620269039117273404254325278865859258431129076854888949178808966609388357766583767863525604959703793704610149835693208618443058179590639512268817386974023900465110614132444246652868058887775378085678332333841170764806082031335264697529996518251305913982541737644585375266576125692635192060703982735489291434487246834996426545323059267389026941665167794520412006032608052074238254635557721968199050629023190410415377421896257246817924484323361238688437189451985923182096001462062173647288054567783265868458987296181933240900587536681010851494426792704313329837772399609445838089122711050950584838927638648587117342722778231532708112718514080230607465965674048941391939233535103129900277100703210003352738911798381258059507416763016404321937183805423954576403665283122529961919503111014790969337477827648254408835442998001160797113613864537249488529213494524081590626657543987609515251508398831586152407518861404382923684186101228522495970271391446268386609545612727660131853450502509058539518265790925527380600645443101036999224322851529413471653374514791383303581933890321212988132556032573759142840312420061255314492034111717980227022443313971466931628883100697276992866868354603242655667485721684562544750509324671293786925875759297511027839477640729187958186513446227522508389027314467076477932018393109260133391853701221416306607972726048134217638063901283753640608309852642595298427439718889296441661398443350104246001736374312664681684411510872027963195033563973378257928792604061728222462953495032268913764079528408161834003561934857604229536638906596691456456628238518568959251674985251443253297455725866863462581176384465540738286445424751140395833489994466505245974044109698408697105494805019645198527369444776408481809988050159224277062390525046164517965220879693661983436100014703458555898168114193087269782800041076954433121335664172552516487655662785004472559142912218922695531888949204255799988356128809211736822448682638830130144206721872847458682751943424248425515160614205767353912002551159234994178302998428894725892104831367623654873147997675748517276534629792871061733311081525057496881671240070922221487140345198638541492695493919211793566490716055675402946645483387635632263244832217820679996541424156219649372982022337126597706872386638127785470116219309500722154808443326464360140658564472885979291054730211612777840713993064271438901891328170640408911375799714246138360146072617100662580187524882587077099713726274124821462737679410046565351548757400426076924206685705960672270236758525306017081691252208802350111466819930735257101463427489694191912019085029011869656217934296936259821499697385305933188761711034993085363212119819893702113182859671227679795137014608592488857790853968321377494417792140101268776396562081065408830144084999378239662540475766793612787033452969800177605249343316917515611118199746593065843150472223372933728818500661964564266546163026212754085332759843983521708206761094392417105967865214853572437068603309540406253534250520894228304312143971325421183088438283548835663357195575249689724323498874024593492260458845880597659201404560527807505351918692330668566050532431869580673322886518813629747843587420208601487667581946788736038990183562632030566675868844541785894559855570243554880557115648348928420407355771268140699611974413968232366295277180212434987180741154797515723616910366864585777726833959982864608911747501537475677275964022502208170248255143636068314839198744904291602361470566219305106399569796047532529621038701195038814794884086142930514433557312626537683636010791407984246633695740662158044228803291767666737006583440851815648112256592529046986498865648843286218761555503617459227156942684371271212909585030497859277673181677108655781847421849747496484867114190694104946167864072922642629242862407374755720816155540347927464148202181091858510813269273088551536330446735068807422408197090838490698305169084112968732651052059072137238159216195088502198074301188541968076379919257794428651686978035498018242147201039958146759256867052951496001074261620664448822642904611727183861005986609324275437697789901584943582970958435890800647381114466828327960251134718081166822489114556425583038650217900328908194017167890144703702200567613902160847369519174087990980843954734800841437418962157571407323888022259322493907840168236198241518076528283069804088043124303953532549933074347803953931189320724856549118186271432571978206769194537080090549092784131263620417105889491725654374673848912688740164228226489651258518679021014763477200275119745410994118143399909181386143658437293665235015252178316299000235344014197892199204280902971407340476539610593906524816054245583063524069295232702520332024818919742623909642799294974195014367353933988266465727913494683470130797105357841147884784573612515498873907601382110821794589373663728752213559579489956273231783858703299808961261282102808233469843451946744105562861196540385352951542770908323242477549345719826472140426547237115591804958168935513497577043864724863895944043950739277549675435416314574667978764767570242680574951298270918624593783723257318181102325805598410677129977739626230082471551424924785464515934913535769097618430729964677401678981938639234680653877064586750087762372929056055551593227381948743146723232929415727887909239112642065350409953978980211122639547469910500844370232643567675051020638593385369800410291102149947045110670116804866221028243712220585193802730171493566475695604120373104980431463734027992693865491498057738090968668614438463033821796199535166804667429228106629893954521624029455667918172271487056953252921156548816421927949507615325879879220712293617036859266843480605039484121960529585938237616992351441754459324299642700966344355505542738496583148678930093917728430969636374211475367670090450310469596605459335166887949158836417722271484647401943676753840787145223792225164136359663142905593863915178207292739686899411722852206734877672443681084496130533398244882713366305710061870823189511083841028531911638120634709414197037755075412849427956128821866216195490829957579973448977418021822102894522701967097552910159996874270694304256180259032128310546032796067299699661166045376992984934855611004874870473498083282491108050195526174326347211874145340056808435500725339795741880491389575688703256037972434418232783366233000105130170409300325688845240413809120895270088078637817374854792263396313408875292434589837198895618869781172597004807960747139873301150164303569748025183148411316164523380124451976301656698315555532519197486229181806958383765586916510210438433544324696903595461876251953776274936922653592673082072530369898087729048712461121489907782902340132607712307580276984980905724368927003786708590752902147593078488282981718543096148099498918198566895303861536513044970977160997180501386448009253420731909916184287967571407077381724951549317920328609968502475387542637587162065591594144267321923062944254615720949414968871211021206182550187355594918337325805762149127947255815648260838125771060242040977080727074212337701907846434831778998361432777863359282433889601877970425725425480495426646813989340063591141054551756742682355564206574966808696754394421021736186296994274449741246343611051980384766179042773045983042863169907655116033858455026029135436412513483098143991024078062899030742653177917163875851322052648089175367445570134217171944182461895428633879970135180801911306442375901173185372089559106805378265073545574481017123253203245423050593345875742945220717337599265576984762088150290521120824911184815051497192484700196424313521638443056339148248018143410626908228952813840315933782645116636605249316978799361219130978831973223681968339061106921500309598680660736998193295233428014936353113434735481718451315870938450234685882465917569542675851659645306952048095606005200579148968589490605910531225702351741365310407625758240973622643827142828232751492433810227900831639389573185449805983774632965493591331796081478278731456689420550693583226869642992419868280946698909068293469453663941028818503603960412084356178967730754787907646152595239529077881090778341857317343582845302094337434458747202369656930867455326025102698867170896515408421915780976179723875410286926257335213960746805508924781122473652338436518850990098913373780133464210921727971497236804508931141861240041459759136121577579130888338173655668330368482694941209930717830653996090908384176654372474970350119917271678376001289181145460895200098528608546789062256332628028799834656112916893594870365427882154754580635180588041520891019006741562818977147616408001397064511195086236028948064156292702293850815813048522925287031243257055946489920531163933506768759923174236044285558907547051385230989907004163629590724071754170190323935790127931611231538030336920901001311236489982857738486678393908690630817507941287369370733059074203099218698069237204931048065727904641744389863124569008293095579667630028275982463271732417197988003486437568316365128455377017252382784323534080214123223584971841512317611732569108808035318631329925976688999902883719042465140655206217359751995201645280434239035255150965188086230979407803982996119273720451991447429651460183349200538812344745274736688632332899040758130157061413997024042042032953182442407520629536246699048720954807216056016740069393912836766413140655787329452125232890552992906045483221043640210288738744847340973191500615437216126275980502817262434818114404259033760671394160176429099097844514541685519198400923850847061183531119270756087815302851105551488900573159399380286986047990904217288650309678042653049959383864581663626406010592857836373065265639150503495866392111143613517705223590360809460770013943104703560165962322204332473012682696695698836525496951395417571783022056573268773388153961156298039715435635747075276022787170111066766737241997704233891565634279439290370854811781910699620724324653955807254628234719543909930209617825439095772547121899362359721724859483544262315140994367296669390414119442624378354832217389004744568105024909285761336418561909450347195721725698033753461436130988728491891677586345670364278993061211237398541760790052276135336739768430129042321454922404114004851897417561325477950942858635320006257918857450111914170201413229019475669200916442263643855875204278762426268288913610798525593674619033176645251868749593409826116603401552498276622568269186555843310782654823735317451872103364067793986758868176136102108363159323424301454829376185750683260408637270961519060776719260091604006791162962252752676005454254676614641227666783962294545567517109857523793288787656257885650007059494756217665100015269874714246071694813799462359871115460796091933927934864694437475924080232594115327376445845600495023660882022152452552473496211851357051649600517866378339042905319418771537052402057864779229876954647033629803229002622416398605057456815688524294977754742370073185568729192932744221308677869327247419296808172947068856159356293033321038094119496864145934055243298446132558177135558468237930911645137222323181115540286406098781147566144878218172978893870340427058700107576840120825332497305922416303044415799320589368230556093553255344521641731071181546644992933664479756270101990255853437816971719008298294154953507383388978291377735994644392261767045037130072021216435668736102351771745934102481432799680223263164386162686812909522465438711002434734907305803557471352015221110094263082334287525040203231052381184337763015361769190209538727587323657029720306513152346741770745468731119284352248930303673160993082575662681823937837729828438531217431705294930456882130845037252989461156667819960930126240019464555276848085013127882477545960049169516155679734741550920085796832128552775981902129723189218204918357474491241340373331297270468209426781892116728005433763788075299193773745727330287035122811687559890112868130307659528047932208530834153461579319685509795648138844706154004781372055245365187157968002110203843535982481539643163355798878191751315418794003710046777488316253925598040577652302420149878055358718182939345218599350973116347409793645777982742316267605406060142718512682821695873382263407311080788353408783581949679515149017308448441399985739094100401993236052948058310768945488886101335142917597588406935434705783961919448229597784515250594947208635513146550174463798222253384165934045595034808398426184050281445763501872445733526626737517232765459720625198323811138081603068205098783897001961232201340751383750173359704475877444083947352646235990564113878258455358457799949164408010102958886037286135599916898023729798304506624850898409789259370109165780612897097206325389238797533716856959813742547362083098192245573247103437987444028998428274653082234218244650112241684706974143432232045665197911378221614363406078690057560163131455185036654203062113378148583135579390498151713467043914192751562761542158849286432774443221912135741980001087172469020930541841466240391479143371415804905425574621055068376165086739569245134330502177501315239231942730045822067642611299689321744324501420088302281121660908418309877643800723985570910183230689500975717237160437716403073416112826960424029952042078631426124003568369457607592487374851318895296521369341534666232143680692426280556686125642692004281438836784976165438671218542957948426057898771882004657322007183647410704339093561860764761245913444770267817818906763316899467458012062127645464461488923255557599730192577412184936784703663821937239625891080415526333036764818340370791735395461338232799005284943868639993033015441932169943095230051423768187252741754773896876793526012070706537734057892218000293003292381000134213843014459095055451604065598812132718682405247016143219010442136830236829024427866770766825388429353499540370764747542045253148232086799085298047747488328164300417656625306031105673179109227032625143274829127031297484246771465005636036464447059886848667852581672401027272380050834825112574862427535882015566312918496994351233980013803775005542034645842182657011960993968179924340600520017500730642110168517585933748545002678160832507599145454020408694169066636726723517607038425313221940284249718335130977751604089480164325613040303966254357887053253107021434621007700109744079511856686041188861531131975327919322733950311838666441001223720236756547590311271706468100827875411559828201278207530390477180214016741357473774418115905623383692258826257910050679189426551544219399370731653064959812704264378805574935688627966228407107618372761660125364129403372609647226080100199274876274246636570229462044556805248174870170182024170710730993637000400741447682375826255094804553081406782082692405093388625631786094041547349261753700857885014148356187765064433039707153321581984819144163805271004482576068425778912995511756593876906075445507763702318479437384445508777020602110157730781011699146464451487120677820374136533614796708277293670355838607846280175807500233037014941599684192920488186804188590226583786680906956197331434478153264652917655331198148865519706214934321970192873474776801079409509405737326561372357262586833372070317443495724826279583879545409784359686527124685640020304417625578497613934718232660458591674248331969722915706951872489036419761405291877395152631240043090198291196658766549918457368597437311895710674736166434401684448632724119591074887999499834106144972477069641740964948901447610519845169999078522872909903006344828498733765980194063383418495079694357971398142146746254663047111702448785618149830555210884351039264647829947460421302581728531879024842191707312871880872523559397927136161095180920497781342637185105253542034021303013877324609449447873128440342838411197752737141354590921746105530424252785515919150231108521535729224024558838952191858000024106315362960899561213609700690348379507394250546375571776007269568294104653827019049856253917679596942735595714425336538182842025363493427897511786510620021620913896929726563410970332554860308644670561184810658685372200824970792300093396274215191103595788685438374553769337634412079935393736902080532749732651103372931623200845744078882698778212770642821668303454414431906117825324221210465630311764949122810447487347298937368501417196552575213593777711240894900922360146321553230289620154314957986066817273600419013821567307657997315302350438307559389244325011500494902736223863932752370534204860526503710553485804610750265101545188673703776764464528887770092603732077115292664126166843540388029703842873546073183503607243544566565431474463004114284175125352328486910133105625169921573100508066051298807339522231572940408080542217759696162401053183727142692329111630795495503860161389013115509258453990895666636630277117476312161113838021685147406029329999825036375823127181060374101659817139786760741644492213986189373078945448547173120163398292654402188153346864039282808485878622502865868671492939362691963523496165657766267214493343192434593966520925625025922881819183589190762564069722279666808973727760553904270732926025752854250209821381870953344919757485457297763672793916015621231361403314655303317200831632920771792788319384088791622557280742415080234852911800199976296284531056153924526955313145195294591865901175429652005093573601059282906240567638863677039863503619220769723490947276682660746362054929309819756745180789340065615763438052104181426360541398655105033948420551379847451721151956409671890075607235173229619155535523673976809272337884988332787896330591575025978520803041426699627308283760267711467878950479052545284300855190119624239459995343508833467225404471902808497164300082585155985885940791795542494442864940509712023735775828478591960719518777947352269771702899233660924024784106110114834824839527634472995362550102520206896007628149422360109823698983976761413294263015398847166875201795139362779077359006038169534393951146675143670878429436288760578115882936230226163967782615149731950032851276914261374382035354598871604041833570144209171558818334371051398135880995040104338435601381685403118087118405749390674656686126243920634629703800646738020511988345769077944740031018980620912905105273395022223704277955695446497403279237714850120442232759763963042810329113922602297952373882007967309838217576387602341290265045582517203206587170936328401681064038278429022508930102534460412469513223358748052785907180857314865629417462117517943833105490831566100683044780763027242568978199597682895492858025930853604433290088701145625604979373147768792355036563929053707167826998576350203127127671280946885872007245559501712138998956331417487537762635360140206368382527700018697092662107344659413100392068355915191939013843589037886216428350141707513201982435765409732638425651425135658552582817420914623062261868999803896498409230468196058671200568914529241486435088842634095183086918249411595514523691112252046845890514789094364882230014918562129109999058185152566381317754198949450063648394420294396661669584447443662968827504136589558225081234106741200241032493576533944259999378223997125203677165227612296474107958717030732489541839995480553384970278707160891624448833383006968316260449558382505499963832006547167545052758068427695186054130398783692661810285364635864180328780175306056674714008169895681550086442056931288853676276098101139883688794443171930219316828225527041778709914240744217318583496977243663803676937025752644640509458255789906673016444073289998234301249647536027740632118404832789943554027514841813037747878022943332918993034032223103186213160014643384684897783583542514688166658846786972486698309361891070619193520768791489869897207806354007719932143525799716440159612245249846537476690810320756578648840902348408577726601381322959500917531496655046638137366698859255485597358379339795888237555730893178424228983148636395975400596354454949633159213620365705011636468798973977321511974099927559405156191277205815498264974547095817436288269545566262574437722582745035914037262297235617932887118100024045997900665875501475606185029632811502482909077490350457520712696802854028635948352092372412717182262138195401512391705566297004962769334115369813327404569200639539458371385116107420119787887265308585489408365861639437681943038407204206530722785788566487582904970036266745682988825927328277615386150536078473019481888352678887013925427472153359550015422771439383592253981848265916134866004698189407734357852142974364987390271648462203966732116066366206562816437351068999904754925650772401084780818146476983790481441354875505191548512622585341782298705030392767371715350842944951434939102448197528958335674599093540020065176021792776123446426001119661396839638287027364158970224329783932604792983789888165017095597162639420180658743462037354865083604838766195929541084685419061837201093057462156186030645543564208590527480739286690224532495296396763007106985563315331156043768154717154952149866511418890750278889163781417646002135462795901339806880616398879732035278552022595553614141171571463737194071516358800346314026635996910707056772311108134195808139311960364483440237651589925356577645166529084679288032281181231494209127093046773186313626518089869518896190491202220684826855396706268385055942916664668916344795884395394379284674827295022408417747870279313939354514065711344296402693505565685398885335727228521214564593423950062538610013603599795038900655443372480704403825348611451713348518816827376281741923863085487890231442025533365058947793257901786537354991100811953393162165075247097202153261682636291766531546667255122816391609164980108033650438510296884994327540652276633159214644594751837989502881351369609183515441181609983339485435454225407535723897264952277039378191957150178354923962625078480135851139992282868834889546271969441118365323983929652002818573376086830347894071980321836275177725971629573779874552652237797304287075541454210446782821518678740835462107077197027186569532742091351399343611089530424416687232162505420749840491379555877664823723504896646824214479389649975849183721135493878579672901490097576577399719956668758890907966550328182536131003562720779748091086671735727601966327811450282892492328736292775129044994117774145417463122429476133909128839349163143635250713391564812081405698608761313887001886599342581525462201091383436997576685646855210970132336582499532028759002480705454655041885004879109683418862880719886271075947313778247209128211771395401014911305130962052321573907836245656043567920107690281912078237250661484283991775400037320518797020244898098656339624708070852724397987739636209532513208005400240143496207893449023541552075678631188558779404554263400661074122661562120985324418931316041020265670403428972731734617213064443635332334346114600306122529912361721156206216748744399199798447460490592493290841384154405580245187099736023018278075392825383285963249336450680675346564896186480601574353719319930853394880019236153601951291375123907776857301082453744449789649806440384094141883074735050185206259513662621005030216681710879744514236739515184121125347492056426676701148832821077182454886720763204943060865338064456184522365652427420271162447052796413796119178592774214010238803421559991057064546585319802886508009232171632035237380872501077806151940033198467564715289428361453016008901369897804755052785358664497558496909723920649222111466549299463632547352958472574674834627170447674556401801219284971163260466977636485313318902980900825836373222853789195246339524100060635604269246284358031104226029583849036430699774342509737751277908531738206769576898857290343594824799044180439560485086975816507749041396345561029188846021952385601197320310506879251714689505046568978509934852610847304938812260964919703596838910207634399605622152351254511649563957434211338025672155855210255657786633833148286012109773560340010069042646520134409681518265461857711589529400482805972624459320414995109931507596611498193709906395571166295614463437436503372889292315752860886585109322676192522167545459953562091327461554662757514294237106118440565631161097164319315816377265809269576641013900564457444454234149506251498416923636070321398700836823145549791552039134484507481573932129512049189224203022861507496350808523635599655520465534024371512390553896736002731183480130721246261004003250769017628329861933473150216420417407827774826014430679245952654423205271104916757046300520729195315247647289898062518028602639826310052368561301811868098009581031790441390404657099904948218165507483713328423467740805586430371621553905755671918388108726135837725548351921810968670612215575742689580852313742420832825616785925500245756237842785552994533741959323105840767254099185594595227793316070105049706409802134367780293305050895044427061626568809266568393535921643241258864119643327523805779777979145559616383971810629753984232938910703428946924084617547823504529914188016213994751305032930229954704836556088004869382640450008912065022601132386292618054041075650121097022784427363333120221601216530820518442322287771209803537952973537246826219190721278545429842631552174173492937814265721390389709818139441251662393666244133405705765941972019260834780206601308718715761265787527492056193233324073008012879977840904236415400879765049239797267887532506519391500736218072312585670399675899904808114338778667384605879368114781150002603150633624662288949182159559069106173622169245782530701762314114184757735163701986105127552333737836329238421062261128035266814659375499389723028197557717688165560670071141294023310574846406059023099895785474560963584030754055975699696106379842065562789414290858794322477305447167584938716477159216808681106384953885466294786015774255867736209750118161090164109351269326101919293127271613340491796324476567931245893349085661176802485619687153974887236716026163271496804120765188536251755166462352327250294988291054296420120134652464814946040584222932041314298823768849034636099287361912443229231994985607261541315482183096283913802560346241507900513952708581297632543955262923830864888755297421014688556904585806247806029442687379801541090113288427602644000541493320141878162473009321693969743269340505683097150864316930117457887775385671846067120537781034556803402817760559218801303506438520091130148403312673316734852801207087780456699723187614039681238380880860031732250356093060396140662536865214232467115468326029332035056978538320411773375321612300679848358107439984651927574815614169533258764065835903214127377025003406430205627585299188674743233076119551381215566011905870621574852987276960735215839568594751818358163643779314965998422958494762763183755017162073682045560778215754410838014684370078597868154212477326536161686008744000079613925329878583339661881217775529388919806271783384135443295260018809485441345346770784850191210453212531416075404825320844283653979080859399791535183150142323160380109757249478537066099431516912078816662787449904074264554282162452873403540757149212371488242148183603983142442826610051463950873627191289208187143968705967019184994053842648659483263249002739366640959744257946533518885537928646196881641386638140368103866194843574679275839342337158909806149181122042472517849057228398276730089917009639781870368324821749195704845234445434758844429310924656695311992143377794041795353621744790722067155433366483134112573387889951924892344671288331872748780003979429192912547122479992047482796330608429223990464300039549682963372720460769759629505378438340998734213779605410042353823420980317434169799578948783124422467641392545440941337276886140940020483840999843680418183069902601671367813935149580371211157598992254617615785887026595577713031390735875679155183210992802120860184469450265368282279968976089761611272850536233883417760986920794111931892149209818869176985444375692826742929888356076831596574017991336630671139092756002423517820129026610578025818605392955026805357035922222581109097259215683992459011374426356107301181407831000218695642957125307556627131091099473174761118056185260440038457893982051244895580961755300842452239501550095831380296012428375763064987633360157704590719993971188384060343361424671200070838765904716838571947272166570449285301995637294987928535877537143105061217244822060709369147326388945380035598504261365821936093783197797623851416277923935445749960587296707781107241261234656518804650101529503797328620813821085113787539789039623504823429018028633442522525377061270855277612171938830063729347681168467442915266748122161297460697270331258359453733919235274243361482400058499819133333606771157588685864711631403217929324054998977828968502513870503273462192050595254349279788521308286439141571594067792170239684080478615923388282491382759079444749897619384067663936968358272441382815059637748190212961833152157247482526948835160631071732246597806593365777866023552499502879244242645309521905814972092529382808318727188914792286351735509513340873864597588646909809979727009729418574118696844654797626192076683288486424585428648741361585050882056404586525378521856376943532175199891558637122760351200496839083872095972631548136193049464823185005445345015669805942010645471512486061888901035675049472557106333460270870969456653027552763164207680310039268839981732450536340396534229619522490603136250991024601013773169786372493323305161018123163329062497991830284803851146193799531656843321573264812227555208503974236039474879656972145266281315242970479561237138894326988844861097494337885798258494477237234396081942665557446708105189486649806662190049137817127974469609478758594177350115421812083275515237700884198362305479328445330674769763086286901125422056799781729976790767534148888969768765760962904901161934814704482569952148408650396000755885068696712816729067168439441842391548412341480554468568572003975694431795902671875781590976216477587004131307655013963244011808231418678123348924452930026980625913057597701150379015604839374153409819338233599012376628334378848753081365495486458461638369833659548294510883448491744499316939937156864573047731382723698991637072770249585076901677031817021004423275645647699258877270070696244868104429527043752866735631382645683704744768324284661596351165143068777559217049885511747123340265900233565762536759205845385921387040603235841063948976589189084132293592247473867382142895368807107471223518565340504145720786959551258848447492641570211702884744629616563061786158182856126407307522466296286673236376479563225967320764441152087187110653239274131002739269036831322849119524855656711741008093837915710714806832617175293914318249987973625586299809944654168543175647128699528241019963544991316046179684527856303621033703339931348550083170988877228904622442130289518593189216005483956059848669524721225141315065388506877737795532857555483148967013678718538120084494286318456828219506860471545370223112814156846701275094598099166976452117568614270991553336594952223858567759058725250783672928756518314713655488470060174162768065619797866482768948442441345539782434939651876698454815500382310642748980361361530889362568412160375274673210180918601873689819223674219935599905395773556477077649968321052928340301237419046463007765874284958745676197976519395490861889752662389542141922813265989257109025219091038803220152769798152627875871513588063533053951066084955138196443474797428194977128365313753992834333627469031974534242970556564931834654850908547427072941240723540931385963361351747988887900837972784675200811529487360519448043445135444044737405889899050372170660610383501331138077805160480598761861020154346853179275631260629838717426265734696410065408650052977085479077556845681577061154235663249163003884694506047136923087415609355005273612062153581531836252984282469225007614519165718567561996673364245989686915506060078582805713220534559728969478289969315038453189125969060045766263020253519817623174418248428419881918146839705132056729455030371439733306701896724391285752871048944662280389754832900601609162179123697104907047687216292907061976043230764207808389417169557095431675664437117537644874922056415067950724225112316534322500461450241222547249048555574017488508756661207267682327840979993357596886963683560478906078338264025695234441700361905200988853121241725968569340983752007888878825240116797451478365925077551085293638203361474275381932398445525392891093453490519282810233296017130844626536675177832765641077744361060520590943872457031210936577968380893458358435544549191715311262819566653178903100256996975887878163226713959355199122768203765993295033559517118874080688680791884347738123310245807162490440306368146866532961500109826634903309224196850620638079367777897444065866262506637480471261760114240207417990017591822669554099319502234272903299572028406459011453891942547655100525573855899048454086738013538768145901969687445066100835890308002311522901317734587287338638546042158816152122324831811357894020309198787084695854339707877311384793056233977656967210814430512593848189163072822891816754920618308586310763004009439643160924414321618133976852356568418105625928750130752312871048300711587713563716804974437216978111917480644973164519436689248953312889401442616740144003443684811545807745717601840267222790820456330350597743998961477308875871246224204050026794522268523214557106596758699369729633040269536133010671028303415318716222397366858017325364332611491782555887719716526995110715222395155268736295378994164952199474847468866710246209710606402673412183561816954450039878638815696104594181523125024531870560213176156318627977561014287698029366727074190297487648194311491296652608937056401275217637999830305734131655252501722106271489615378448626405255355918951294217054765786236651498761238305883007101261632310217932271969484639794795834869443473792367314743543911963363221550119653198170673665120665299214452441310237087698979579864367607397395955908747194975676867790809254202871476653685651490287047319095966411355337400538592933259960724774605596527386199828916852248821304772241494825145131092344149767110463932348607947695568151228513461309230427708772967420458146827458914883137858916104986008111438090919572018816330017505543403617037635857034550354719528102474455606300322033696528959431521214933050321010188678328793048150568514704636421928937101658018005173854362407757696503459943716884525466289159163876689212649280675256120535400936766582171843152679243674519793912032105300766257163128849386346179466932974199553219278785271472569241103763807641882380357213719093802486481193482553146959608890852203170476117247376007185621227535603142649880680578319475069230820656371619998647454129953561036046273534486675112938836679196639303310996392801954023070296622259880436580163846486796328305714933252411723825375104856680984324087721669133475117675590866460850187296217917095391175740951276879157511503066734159674614546701350279632056981320511573694213436885881444315739693798999900894354180344929396645706596449088733958449681245270939253971050744336107338397430639445934652514130009386265106325909345983885786262206014033711581225845352752091903092368693243009048833536929955414562723872726025737938642924857037767037100932375664025803967523334424385473044496224640408248726495917078159781912652791351861195282724087353202413093935280659236562615084856586507044898941548219158641103493538076241755617540280426177720321917961921904180322801355787342858190420131389907255296733507245240814121855113333881499003371596247832092850942459953077013413162048984106928682636883056527761837369780217641799596566750239840177221339623183630596103959995371384839315804556286573579277319957870029373981006282939284132586689629982100391359414672463171994001341414790008694093505216266003635952429062584159253085144553157999146059158339002087284423121308905160876545411257905390638895175803960777694013571851464938762104095945171803712159516139735486627687981862778305906643227487988592829687920183574790474895623897336831062183626398914389679949433258096249213579957322248086574737580441295748696358073455375399972120995499696591411250043250783979079540084394341945702513432498835682478873245163842214776264658358064339272210500458846273254957604971769447666056411266734672228301713865506305829711247572108257866834109355272438274504544862901209795708518583138911842123607579052258963230264321641070819610712573586197216604791829156614579543255150896206398409457750300816110412843382205420088065369781625987431428521589455180989617624488008207819118928562310385329416125645183337500661669473297492797264578727778871454398982644519385557490985473957548994836626081648452771135788624382181824988825025953653318636349007825833220031213370589307968441211569675102140711701792381670027186268362100554442824774429218589121114904280614223284839898261886053681308888991872093577074482419088964321853091678890765275124072366073918218688652568212194470186005084101491770866328079809049057859979028528405196350207016577038433044315625571493825377766726710511453621938485188990449597677841311939393810277272100899186255930548810953979459452071006679860014268447939332759345449589919293697122957372391581760193313150726490939804975462488024546414314228003823947344013419041497254132778475343737502300537447768382063712177548889373531686146398704556524606299694999638877915184132428157728096094844480098464264874319724123678608179093213410378755835520416686640958002696706989345056991182648665470903760014358026350000324169816066226139551877516074664682509439570649032789813293390640222754888669506977685764394323031060555898735385098186380347174410638876699333698308165905512013374808894066812163856609348627446669004737878787737934736249209393639833783416165777013572580114062018975273027561265266894513963751954842386877369468453431872758324212299788674702399917941261243894132781986226854475399551171040608102766695220100639925989446228875791711790156668498975878012179264768220992090019596550558482346392716687167296241107780050586781546222604573880042557847640660612342716813156425984259390135469252948891556259046227650621728639063592939477798750278191735728556383557483967745405851485814470138407128268940459387248132958758236567060549032985227382414166096920672895490387639648343236494347085096185018088571982471520271504774471959667633397427265005027283172602509778655394860659870839201308134976363540923462073307764666228090785727197641551861058056707398180067917196783601586403388265383086080524106615707357779926659592270143443149789429354543013153961716195088688503586084334647195539522984633168019793282173754092537167318700807951758187668557592340837137265415914009253954330610800472543030242301753596841013779530105167878018369121847186459229266452142064347232625466749830619967977685737781639934329067718338882939378013981578167704210550929811568940229752160726510124764381317089574454236406173796282804003007880475152498870043538867790960936066245398799611569629349099819391500263682404803064394786438435118899551849859527520495804298433126918984075458797989228160704102097264914137629161099838320574267514948203616104757041291384760345411749510649332818288043535903342992620634535665260465247081117680481043532896119759602320595772191197494192363825461118360977243826526187515042647929751086372862485286379316706172406876775066683484625900869549920353413576188785038540716015353922625478619800923772485422972277966473693846368811508589118703157983174978586040500327201763403352252931735697764858511430822379515273119197223788686729677487132940239344023939385839559812710819613419717632736710800547701946509636367382008442808892308514033601132634880549927183524547179313616416141217998576210820190610089947636154396179265105113486047066482410686458891865373045466834401920249868095366349276884784290886063283768547136182698482300856203103499502532294588392527339337436547882058884825369614229297240194169629278819976472468467243283267967037222160659425891606356612495260321592455843288884929126783852754878497032617550950623657972769266454399306091915857257596106430078701631758228886649423693889135990344346224830699656056974264959014399524182835548192712402519411216326886237982147655147531290336268752042158910686630145025330928971927343317356826072691264914918082952915923111470719211858913163378014066227102920491243602991849280296456425933695619520982489574084124792940036462797223731828419871043076682122802406837903641558897523872160527939155374784870253749213476538203782321108463626442078207498391451381949923080041882345120612065432701642287101685714091930129209063923279240743907471773447605582890197049846132220644663025463618916733973146005026908722219207646095922926508180140742535672473475774949499675319577494247846187204731772637475507493165623182363255478606840332167507875389783780690130586454971666006610794428519900400219736107823208409618412306421329669039636477679082964280580794281701550783379872919334532914914301398409407557357847564596291536739235943862188735077855316797577923407879060247459825668900440547127976271347227409506850853464607024474883020900348928499447390668367780072503519123891090583077894202818868838261684840848087425914967331681311408023248639572824494311570589148593374748608710443748904859402435008904724594953860472077492317887004826916676818830623997436299172353997136335761413125945511386409424866944457589924435482997253249361952556639209801560743279861113502170334199561284520314339346792434978539674996496444152411916213217681824295276273098187739361642215479793539729644091218479931589626973022294940823078222493268144030230490784643407006235400943356075899683135152219922520013590643049145319504704283210768369087380763892409039084472488631592462762947726730500933084020814121127389006137889849706041437952556186808773649289576995862698330621169297627983852366394451311884080634372935902639904211901638079612709151015079205638930856484188568244198305036984401111851534532723280468284120121029491555141208871978558939510736646632577041783121441455246821032825008023383017264818747643944317465101510691877927706770659062842226927980012179701307003179568022108851489825147603699178264160382155735311047500685153658222520455669646467830512608526996089448722482436508337753485264354875610128917461648854396195438635264026442862344953232536510022751071082172323933819299527503438505262386841757995125580256224466766473727416714735177324397335040661989946752928841719401587964409330790232537729185076308702801031732694758090401033431948138661491306856005450525043757579423911994551917206371967429164189123142923620057814970077039894634108336296999064739862210437891723059145755919699968315164024263774926487062376095690243097644211214959160637765913045531573079613807386451728961583196054663651091017566501866047175158852048246014036015590491736041130501806488896147005128146962844994981860745596903100546704530131460963855766309840659182968810511097569601221792115944548351259343068928970318981072361267353622978938155991595531397363887656271981728147952767837702387042687400035342023170154835716305862280620076723896210088235586965226769894180026618055410611489814768267587735054577088987349878841530044137697530839661861066472387501640025721636678450250117464536106002561824057864793078672012811848900498305922045159224702938348843465236304412550894417201994575234972124227333101541784413737228543665698326179225078625781960866303428163761079524997225384474375569398943155198772160697756477815917646561864019194443146007474168748661332064645431651228818718725867457369912232706007681287272141949124243038844488532877040269787017095929407196656266124880547571213759564352520472993738784315874347394514961277045495498397443495933647911367691859528175989819185061362095779222113528166040946365745093370241974020390421300370632098959333362056992118749588914547533358485444574495755650643753250424667368512686899745819519456701765979738285085426167093107286117618379682395491490162115534683575692561139501935115065939891706973653648802669780182608033220470256514224969463621703198499794744288226103908197195327690694530448405740358174083334288583146593353276925790672707879421320387944135364506158094478901226290671443551576230218836707967401129787714947575012721260004113731310258965657956591777448795973405528336231307306346692017897829507393538045932423317793946677762933783608461252831061207605260184274426847293257997041166035253252679111135154603822062273110174697472106739442794874191492739465772661401110716837514948968574846702494097399507650169199308983924725557010038509806959824274022261458256526213486371561909105946562594396648941814739709561686764503637576026486928624957839043655912331018907762503054208154991530605785092476453728829819196274827499917473888379430821927997229411804937616511436238186903657630976988747449614520240660854427761666638937197083982760935031468489700943702758696971896108143969673249411180995967970668807701618253642037100490512272698503008948064502272561736029254180364684183936191375462022944164247534631524797883366164557931445580715301474456290308897091970452229039544102505637008928973675353909398748765579542675010406834919249704279013325909368250398014887812051952940172867798872102316432501783768303182635398361288121862197174127323637825693010693604858937670446344473886760838417427169412613327409310159741564164521222340815421175692985348624474312141804072845448364142290442209219623563883621964760474903773308975970501736075135255962407571840868768008048482625217156997367787216456294180305045182782611495098892796905700875828812127367577315580501772415277308816097359368642726116712117545687905285391414160854682622787830928153974460831341698116638279260236254888362122190671513762161085856419204867630133272969168923404154969881770941000981872927014680162120435136520275633779239395743765640144345691025913754357243202466318178633123924600133946972861580572057206863457776542252483126717528673733693947745220188450102299880240510192240591109596829481214049960554732509278559854478720639913025073251345768861999555377159257304754346359021311367810972626260864519902512944207512771777499933970736201305925370202336407014462326412726062291020990615853843255602206427900944787414571038037142068186326189321361732256158414106769651369362863214595789144490515568143324592529239042398167930901939291967798496428156174817846062593443385211156622885951145337241449934426157046457518085024047621939814295881389213494196627750281393789426093332232057031980592787335727110979306063600507385198440624282178452583761750509848364247920969427901247283573050798917684771029495660637730246062350563498052066748086441229266143084256214561558935889767358815882136298711962575964723063296020126699429624510067683367980989042764290153804691384977628001572212816552710939410568330299036426123404388239621413582083112620011883513052926196884709683269527026904968198604739872746094293850284889104416885504863675878145035660502070274103719881677618973263660180703991818208394375744099930774525922702402566735295501110593631077679969217960525903250807837591849885564267528254179107125129417130357555389081485069696520411440227497602694045300797595252531619052591754016932928776694232760332777238384147756643781882540559188375216683239184320924827554735797250970076102232683186433603878350145279334643890589567739598861642431526684252338357024948711786155193650357242168740424231503372709980286610140280219396172684563045420585009071631233625757748580436859057487143427107923094012529442914254494704338361580143327684156497481018137064246089021021863692079539166486525165677774418087283693105129282501750507250623685902259310441770255056870906331172418636587933574506073849038933933901206098939605056696348878175172109466284866497919866770311965155825121306077531868463203713682553563095466176562585631751625024781525496154367654593758437766768271736148426086773283955389459804236464166270118167711708953025502656536340008293713635445338496510435013386069069834147353528816624695348314078595713728627828366242574597837354579744959196660071062808116388439991537265530884475712305766055284551134285644142722661548051518568545312264206069487519351972842152060664330292100957558262981582846323963380789953615758230600083120034050539262162045732930999167017690160274309215562508843526142467507814641366484736370232905776071534955131955919138104881357097744138813374064644654233014429768446915965547729342506296728364437578547493987205821678365108385893821193606702724902232937186680912675911884756905799905792920150228968076916315454604520894321210430134522126014141074066279391643762784899368618835015048115316491911936108562824810315746223233115756334933266459185811303815038609784284685855845414192988602004503139177252229807493077362134793810241973532981118817609936222369804598360137245184808673962266671292894750617906380926014940163027798346227566629439946032955718318118918119426139690177144574271163838620720833533145893329169668283732971274278930570635595363709539474670235874097998208847079942128372197018473214883283949371351294194008924344060664213915980782715537133898527647805117781108961352882186094971449295736465271909881277173860146722650177748237153383407590489811397023066412801671364291835914672382617023125458090808016394855687792958371284375625174321582051100082374584805988473784905174527366042676119276059917930225466603878750583294429696713262594252567736294289865525249930736586310017318861106782647892750643098163500978502594427002060534208574403220740399150842157653665678743290745910056180097041856735519466449125344436758228181132004598387850049717748780328626931557101318940884124902116535246211659945936467123021967664164784533896686975582245692384977561527870040856967081352583105145424937646018328016966230793816600983990887549729274355395431017715735468651051088620057367148149498174708213739422591441219592708930374559808178692329275657371033093024163431271214044533585855827019534391734130086907411782970863564717237996597634723548649405730380257877102417867100601274070239856031249481303410683528121070478393706151314240161249430777178397339202188576381934526319117520133186550699244308944730201907217186250729671160227314678936502396770333376661443253656125266449817063311451367310202738795396033256238155441409670103592156241187746688961451840119648054060940722354905975062660488152093813415677816102829857535422306374993143842914785747424854274864141559170734193744744039910272015838080835036746423464027654674357472294550910153849250471667349912664339851577410623226828466316208208324163848899483141019461793381241811920911081014081207438703183394839623612805419569401947907684955294992907019301581042934103605610976003931134879337881479796976487938656358657455537863760675838048106058431172860011926721261875657807631476443479532080300993282911968022629594523198725780740384488307905363252872058441499319604358093482212049350466080229510296584592786699159487702108241103038860978402917935654277797638371762664343122376041870350614861064227033288545575155898284163435127903658115076992380132118080079924737460940822641300923722684124369507322472658845104705092553054355374523337507800046112904790517535682384383712121555556698317098190921920442872292675677215251154294486688736591973011772422101598366268377617578030163935920903018600526567846728931327788150446947865884825930992874949714524384090124358668488085930471042391580753828253314489061829530279386710541975680702886406376227751516690870533035956024747827680436113028849819310090341035873988952279072025959171583865635288535217993635470099194521952567978919381752390184153257739333247689276446610994415371992001847641960551590136012067716534138247825355233948724670532409612218970496969197022508674845402812683739881803339377665715011197275791977638404016878779472287363680484304350253204455822551431398628465379529722774918556459302729479896268605389129425442239655689947376654355336991684022669264756454213945267347629651284658035708396168633375922019295127416973386485552640229576355938920466834024354350416924719579394329703296861870818653621268617547579744788392926259532392640486765587077059243798807282897676958641802529422622037694987447644373129297336335148483822990549521508172370791379861897833718172268552712326782195238392061207620401026718458577734838189748702012743488474198708899678187349147375754596420243076258822171601318913815522391853890626953462097400263275482487462078629293400419962924996099515040257992779025406961588955457225623961550210778684218442666203417594188815610651732041422517785313933827774647601597616509156518612362139633304853950460492829552002117414338057258302724242727833234282403396660876175796740749361799395351110281268776819525983941416625115754988272274764314745443225434092022141272163242069802789048621549110853566279542896048714606824539231438546852632460863804871642649656891370541242864383329629596878618261699377729924957445501430145918432191260597861169053583154490459974128436679469092409003012526368065759714167517533496557717812563109600075956098581376331746888830180408220225000105731368241183615871589967801869745629079839277596399842728410481159998135592999104459565613143568695365575027153026231220458222368597709170268849814330366338465305810077831066362156604874195714965387254262108103326228398136032574141963868976831198283032054904227179250853929176477767609676060483562806605493788413678614621482599399936692358189662178625037075862225882848460427903746556235544186767575349955773124641553777084559529334509489569812587208550338477358033994018473154874685707203658089985227507569951324443396485053262166781679190041587170747801019179999078927998516890074674206240661284442186614160043787012962797066737898498248389064334282453259815894608825233253234879027266087877755632781999603261184162744828012460401996969333802245450199105555864829565498988126407686128909985483082800097889939824394678124772062763003837938187501440914044498402532072221635690729458766451385951711303745922453051249750599225875045245047052172089691738640993893379158456867308845011986007824081032487715941001340749758354308156441363651882800880759966469884905453345423996331115353271664210852387239290695344748508061021101871596103596953949325409457923582843685638913101607160951352952318928494762624460333680347317569516803174796857165885071738963572459947515246552375354261123958662753804217481904904644287705178680595866873132276962411422136054600822774333185353097363269548878820964361155037788825642242404862712658079566382066189834800843944018129248032719680210637090660297717759045143485857790318689122739057754040084965480987815613295905946844884746132016387457380346030168991872970940088923256956183680527469191613504158920320623955014790205851608569320290345302648174050290510531401039500550220624319108993441931315640306873950012191495934511719303372980154556840433750607025973161745813096658901960501242223285925113069769218713979335017869051385300183305448830828015304787586135685171414875198333205660724331756995355563064068732113172955505676436869827858140251841082513692088775950623526316801732417475357665947174379837108718373219993567590200714793844192978044571954824864702842419351679526689488286254055305115765067071732583149692860572119625799938643504170423174371792558122237143061560644406343544358690889313581193976562484151574401905307280381014415376299221925479241190435061754473723955005166893429208109416561159617727792977347516815503979850647506612879052069029543657835238256292435628658373273012149004571011404312955456934939322504290811709226583597791132360387928244955761120346380111416340800554838132434732331124718711182206607160885848685902702047416062093402054761047548305850869117474762513156609160797935994028302293255944562479381317958780760445559796729198488732081278050913071011104142388865768796793749160524215735777663534248290453487161159393007067157654174915851227870808608438699750084853883368978704461048114486009478221071518157103737343960221924436837845784609005295695753297996246184457990756213613426270890380343605195462049795890113052787423419085944893847678886269601312756524329158253272914373010536377679762092904787472548954670627283531689039112598808903819228461333725641714748892138471775856621706927392243841373841434615800405848547737793134109449696876627073148425693354438507251516060763135971900676135463242097814421903669930230565237884070850681890871959993527181045935399427763431248373317076583021078348084282915599115235353102596831831897567476336667526939317059728289035433396191953861933892356611366351304161366854105387140378235010221600050838897061254025065823825071674194822835533928852613916435376390542140187564576213309496449333022092582271823300308774124386192661440112828843893933531353120634265295511866348009277410166757800982033970799996920213053387741148083166129790225313181021608422802936620408691611684765469614727476278922589165071083508102988750134819342453310632595731592319364147297177025764995653355641232255970579060082164581635875434102537266126603733954382029630686644571828927644854940028734242560054620551538098241280790560880961286979107994212571990849362512646673783485440651104624709030159877935640858705690120837751425309822566738025800283254421805363987829444595166440685021379559262893626923180184868859242617441254548909446525123281212362217898876350898609159245929687496765668850866317100661806652782859385146222233453118139004839700139496741199590440693484089685503657432693382363713588954705600050496913675049140051999683478625975210720192022049572657747976614597749710452706780563618506488847078426052757770231652250544473712942223171277150447706410930637309008232850696288003449941781036712695162857570184031714920178035073485311022865369350679888584157869962775412636426407473839287642724081342991913701836306586214218108916703153509107185604496633542293349277825368616910705436648139620503307051488827486887765956712435127403088177410805294645688287501181045045679504063312874579374617721565479600751300455009335776088278924839529729383903579000493248490527332663051457791857746596382619834117191636262545980045914616738391504711259804505548116026741375552502759946254052721131820037207424887224476070534819581386175593373929380369748433452572877881789501747320812509211053844609032607266252782067602429676845044950367454173382116347662498839486307339166762267888160478911613209554025625651213290610759891521762064878268698651548975743308316953348290400748440488124318606196536371500401647370034211635809570093250362732161713176263192675049043371983616844133703190800122386654433184788169530195094274889755228534191583786246235606914287442871771613345214609679367803766114487165090616493883650187342372815699694583660364649348004148748073685891087929537025064359166677225902103715084928259692950872839554067354720154884812017933099645412941729282032308966054002435454215643788018298653454746638386661060285959717110336718574880551066511780133947787327361852847643323160320569473248112589552103092569123006054684128983912275778725736910306362862654333041723271833501828339420702033147870879763434589059549592763223172961508604506364020604716684188729733529571396007759801509432716699671035677480694378221703127840096823669364542218106116811304508429852977774193258911079291603845761225465182862156284771357415482739917566120187679421062110327780575603154362491559246563913549973798178465629632748537565467872693620979300898731434206372358868662439330413744192306002077451861054301474391394805687952066807012419794658011808175790587427336639646157110106565876023220623576178631614626531315647532719385531449822405607487101966083592472204010925334186712293009466477725061185821763517369035778639260892803553075550408028437111260192412672834659947575619839509509597989345223128236803570802869709136058517390221930287607653907941200830992070742493996756295406232850929925985617853370578329715588907048012088505215545717772379510863059765263152996551276720645270067473154760754434665274686922565687212132297281406995339047454131111440147984825215582569253927282246744101056314409210785232600438361285826233501516086268331231652281681772818629037823016898450710258812365473231061361786802199714498034744723211348070215332300020600906428015687364634236738038741926947579680443721887739908445051726768328608205698250583010641325166190505479649716776043991589741774524691857332380952258835820778117055502819493115981140872486040283533542553674105250763951446961351917583149093571673231035821578827503222484940280268939640803075622833688149615850180575100843104843750965392820429773315439298353542720000420206143798966496529900282254208933637317887800189129813837604427042833506449973017764241475684085866955302620062295518367890805183466358827724536740886740919659121818598222888825403469201558324950979946716572039439763033309245238846930115152227334690837472444881233060743563358804327984867786306584293482080342588730371836745886799301531331657661532637726651136785237170771961412359698318690366755818148676251129319903971722160749284505662005909543528314332736119568911070179623053143715010346950964088316589326422693541002740123663267136883247888816479607198269834359151541907534886034201436328015985849183738989731683059453518558545841864304768251116936633264885616238027609474657096931214687644089966667668252555052812646329851090040777242218682140051158210097782064241059469810013154920154986816708994702436038747829125683302681590483771237258923686994419377886595649504522226009047432973826172607853093334752588920816939824381523936718997984846378198707597341093598572126695878144336590576480998917072837625789291834004577852207575310136383150567775998763367715714356847597008106165226225978640274018078032313779199884224882214930715012170997062653800451233835348551383379253850860061220692392135953992039730531119386677272638662624933428531305329777433684783653969222943624240539157192164794994525902197609284905461755639458437968822283257170048975622136037750999636349503545241977935629919748583186894704711297293613405612427951828817593513021650509284312126896414051229350042000139750726038964096358823659204172485989272632146731302677068988568437877259630014635772715486422275591406734642095692924446134191861470289148012422360350695096567753937696682370646351664340532207865697878807681174836732383466097458935804035393850835486546838310723355689593994612573732224772466421835760196002168395195869382489206413902495130143196713895428743427297325951866343319135989152030644972454476805224778612586065983449817744497174902443504046503554481979082352727660343360965691773988664271341675356051029975890206700138358328353889002767040103851485720106274295574871502724380532449067055748700768520488488754152220974561776531885002002284137364691367653155876888864285354842577562297745389238611710589929949493706654405005298353601933692108510635376540264874606051475365938999997408067467736488488303422060315669303444002649049104830103500123708665336683067277961882737757006004820645840510590458929310876737246133116774904007881309140744776054964883930249983137967002812421254340333517540704788802529771526328614754520907796076139424444599147253993280424240784770461824032387716697932669971687199006445594740325523124653853972727056138443079932777749489660190864731513310400486528637732691161997955253228265909101929489116679560651628524028958447252862613769662944139729606407465316098631272835717736522855208466497001220785785565141101928187143149343291632130990007458389312539403169352158093548485347078774038578602136744716396887192436058097214779119575811882990682250274394105090283137064706011608154376679624037919766272763638755399747087877255018050876745276758072507821204172808723782687993590349717576101160681890013854942199018519003250868617674934645722981673453877977884888746893483970847682292413345533682221072705082252115063064571694903287848317660539833373822598417243914582457302824095695908844096802348139547299175569015807364330500260282082254981433745478455180785022174091548391441730791507470081275836871063268193533972412014864745645389924805636128608497230493310593389448788187303264701247376043885009827576333102392633127912211607115316223886910199104162405435231843445051287688448153287291616935545261923225201999845798916150681008949467568899119245916046471418432103886840261457952315457848510160192841976082353148024517592212597182804244461022309460153467715089635329095255220636736739749500421559249921220098776635374573347651770579638681464875204095950394087742611841826211010059711006333058767024445394204997070335305266765073524221415536118167783222304345794125112880177241636559582494839400580614178565816078037900083837659706128441736840803808715751066039914844759360199156488407751645981287086713329552140539756128783533962328922854407089693539683590365468814728382871466228755068607761615160960902083103163532896886154454740070944520919456504607188299806194933629516307814115006293557971922475970986843216153417513846828130460451566873258680230367438315225468114527131689451212977174410523091095268309774431778850226016488700030787869914783888764479826416343681132459174965364801441276787294448131899824047599660245198978199616986481224055109184149148868522550433304441828121911835856990232966955826066209443893862649271652489629462458118388490764033847801379482293246992452921315907653546642869691454742514115215800898679068045324628932591019594742326753416481676832798622845418767169796806999943178774952373662155331169577847370031168985099791266526448896960647794123445136554563969661271462087656172402847036220852281221928698031894659381414174991809815185602160705223882873818460033879928952466611991268025636580411158972890245857380282067457646869472543164099717750844889418761532528601602166218932517908932436177583913241867614754259054438823427724368249368539461590001093380186399007444509783299899030593099664900474864363618875958967504385946120724949705832308833415212613542929746827057645702379000674545003201022735946346393754521964988362400965389222474511713114753914952251080666407220477910999237182483825475648549425182532245736561041556407774490409601381993738638240464898961937554461566405601523166204908208764057568790639298971135147188594687380707180067747413442376110788256850215652560915151323365476939462806548984096946230345968620201185520660822305787334245846134858277644760027606319918060581638602058054994140721887186810914740804999410060111791244634232309635303526650033778525420441725746549218043122455947283377238661474294459868357457106347769238075584394944752100940345688569266938434229375678046773434035314735950079010399595454264646636759002221136815922295077989506420073726912263361222626710297208358640817487334732751579977003741575614371785984483782184836573179162576519908052714800993074963780876133928400930605722820440901948356272815772158447251321517955236435167252047787237603032089471808797511231226494954488419555789541803694350770806025878262606359852147901943704815154782835187885001378537747546128117502354061372496673255246386072857254692475682197495627178433622684474005015186172222078791510383262154088688726486966117499836931220985389014491745082753234716442995395024551554654310400649702949745877945017791229061963211353706234259397683646691117165101653575626015762054939364836427094612605071982404375605097601920889662706520375418765965830236537571877629809055248034185613515862884750194443895597427941121451927166137302334853617107710113713182652435738447307921056806762659805759599649533759279391379124640708352406643209605730450904083400756842210293599522664595683489819954184063870249121838450299454663902643759488445351393737887707439236830683744396380230433378232382987830331183693897031286358086072414545558137635270000045264971491763811827988332602430184307286062641372367338413379042834871528085538884471600453451159206173260230852714531959719749007059718861647181059286054334453136201160439517551442293107724874333513254922877390406163623934532970100297234666781423773509250380270685036858111040959680386755913776367033511359772079970906606158165829171975253826347201222648517089043221520794482993929189607998103140060259974226891940277431282261364035325170894531892140536296666447468307529780785248584228281338432182151525681381517879277930723915089553830976581434852508660307790054269254907013247781963541343813860859773734524129147600606227680485674858584349965857510415256602628080798546439386752580416102597138053146602883195393498533347996987336287736821652898559619943163226401663695697907222949399379587345013561082210216911765620999567913485699659116808940625455884023249857155751054261091305072596077967194611234853825782694810064633472535036512962332618830258342338711950264964171650016324920959450888108160206303826089738031756758613805375204129913795851749388002608387667174187941661648318659460672492533680506464978492298876917773571773361469045468900237331456330593135525843719206487958089017567391110777151189332336757693184208855075964138155594109629603702094853071770126872707896007408738517972086522107701853250151371793159990874455270995694858126232055342650500900406900998298815649908945951356100021753629132763534901055651316014913194354925659129529160106497812585694742943528178016011720969557406980857386783964713781081843533783255236836104803915546172739416348912079787727836483988278446526047663397968651498123485323505737556437732114716377715273412546761961524870189037654347587220855169819353824363926418384408678558903911366051162759598503700638946166184710198121302477919545555448289610565860051891540152526639200767272716625185289289431402127832333848421837249005291379699985438117172585757367818061141681952283607592756490524069995735066667253531796458742979831053852828878328412111245874790434976787321550456979870213466619442669785747997244004836655209227987098990250866015410643394065067846572749957048832433785520815709342229883256836331342495674796926758809069294320873249085826101639344194571163339158474191933019241840461861426927421386714214037321692411974227069532759764348722866538901341427598636564861461098640280664988532191225037979513525687117307035417543679686956284114447959701898161757540270592245202986170164900167242391865069108932443403640312431175940795019898567708610416815776518581199020013685899288152094188932128588393165798772988123475260378093264027153092529663976457543052291185797140549198674307714642007870434212868373766187814023412785706506799897434267323971438943613179640509102219223880301798290916257266346653328323440561514259035509303308115099062018249628233143291537801245589037941665042185733667792785602650928938301654708552226090723526324846774075773165650970604251428231915905749854701727476860396070456638507752422658567768786056263105229264249625444078266575564909095854432824142036247489647655144131640863685161406869930445993206030092437589891034150382148390247389053679506505124843285439900039891324095030259027265894094238717849031947151198071914712230168769725465308405610650395150836584872938900903228644242596254813965226385696838250726510226116279154031236370049598450229496310114158209022841217002940489671822262940860016962566096488813555430471413547332333596581440555817982816494395601629938803978923381004022349420201911237561134594816862273618030564724258394035197470136147804846644670283818289968052559536096922640118597443398417524261397643389767971670480671287382591310460972846646571151957427800550860910109434691861763928250690898619182615200270426952284197924103217960731555307080342587330626378282639994278875544830724760711571775753594558229859107091841253998330225679063404130166085128390643246030793362944278967382370929130467597436002441443149294663382456403151856485605039138548318139964129762899783139352613906777858966327992481121558252532785017918350751175921677786830602113351401259171422290105036911201870472591942620304412647601203899169205933632511352814672742315634286038540244174181231614905463813699872221303423407965736565138641201820563526804166461693237456782289421550973655105599679249795794025683779361900086782792153122426501295618875328954630252266249563216582144689208149857533341492653251316428469553122779735984727952946935173918944941368585965841444319039849264538411752263394608764482027777757988655110220882862742111780173359039185859188309458738716148786448414530404010015941159329956719833009040168611900729675021772180673959811677647356752396723357554201842588075767178621436211835594198566391906360497943147498936232099464190628661901534021191960393722676580730401814728084388750378861344530592482064927419404719127735705962728764341689674673659996323114646008313152133527823694032920205618806117358755799414239223000275572425663278629575900903096104132711166960492763115724663405172879634381055526736342323198418751982591584528720820483647742036185387324188401745525380310817261314536123338559983413860906957697346882536937002355792570892716933866108361594710638835110106747942806843480879017174559452951215669044005249165874732081472548108601637664909047240103520656860884510166770223826850531409340807291961934690485861349776718966943138963832049968945752241341811400780304649883614615576678755620197283518244532122661641580733856284484964603893562118813213932558318599635978655938399217040194800084441076821509145304229687020135597960805965064204043233781665577506162878080285858261062688146849459809089002271265433035535277806687158702033660920075010794194759230262024170840756709408658417982471645215414205355097767180722050535205469827916787263313201046495541504882952140123327916165933128903851921644348754858108121426586678251114113402039102058013385920283902164994342700480385228487119753567801937388850591850093681844490877436930440426023243837072978700569685400614721845594299286517215016566035172074008783229466074226097690158277506435400152866929749062618244541884535019748860223143057949470538071345234216625505517159459476881955172021104515436395634833822017540571304897302050481584612057080096921607576824865322975818659871776784988426224404089701372192942216581924650358716004638411036130033849990911432926405858211634843400189889087098394251543905147786234832566902298896291357944057399447569871770842020578315722715343588117273610575551197073590065343713149766606600181865134451788755820949341909857544355475744680249465638121167170906432851492251052047831125918642042350078694782977947120781990984382930928579427093478530641436426907072393791081456600568291048431774691548081656034835186933744090661634416175736059695628451554518063522191435906254192181166797667405666348995849394337491772833991879366779201282224269326412445062614279134949238975300574782508727974009891100326430807674064021733688146556287991381435144226865016936329889867130064985693218579436682282109582224965440805152593738957450152317319494253996359632194673298505105611255178699314623672453865223132702363112157723374025243795053532891749113728797599652396180497464096440346535279205684194003204904291331959088453947463326791807338888743151130127253895253575015658827892560924536566056813173327551952956361174655103589172321958168700084583549780448320775675728492854489865453542434006505379076418551619704419619114926978680004801084282895536171521632292893470955569024995401415470218465251883951709823679306527926953834955340365167482612559623623216087039649614214482429886291433990086209615996790661463884393622143292712259220449460477518711170347751150095650958889372639848151897233674398121060241198901444104811098658383177028172854595958604449134375431608997493997086134874227460657237188588648674438428351694370857754565581763519280990595480544538366458757200945953199178459482326032438496432135848837642927486981468168955562893687736972967424829532574519235500974462044013303500169295892767556855245420208178536848958124083732379911557769751399325827642937856290089139564007881198392146488525951135165887237774289293878557650217820294105193252815237259820388542464634875428957163439230654500454126145888416453896896499234276110159386684244320003024065445557802092550238534116328618536500094826663575888931907331542719736003529172176428592026858893642149487603108425630586610827600763771740574141930434351564248549730293329407653586717212727022154657251511378328005443718705442932394500008159746507408779376729483405558997454976821750879798607869662401847296747913309836939381910546682568333046674725625464181398408561501887698327451919473447468181784212969491981181832512448226439375173130564007581630952826862807356532492968947714136295362851364256446642198125069923983649399533621849532029504265024851663906844367721811587972400751546068146177593902283650505738491580456335068958075778527974887780982835861438798367762024977199433901494466764937745781459409588381429950011972752268130529329935953242764676318962609196458557322956948137270044552120915244418459573911612616374058660858276923265935317004504708911860650242754226700420167454901601931645846225209129168083715570312906570288978819916023531396615339769777395147154894679666751646270447713700968875001557506060928369360008002859340702981395940849327928935583411783702931373404281167232932346337442750987751590069561915003701142799629090088244676166004472930380309928508857063737444693055864345708016574902595544845212150537313688986779273672465628889519251516839705271322146577710646104403701536423790139931443213397933313671566792915463442717212281828740389802135899884880228227753338894190320039217486568457538196850504795350178243286201974688334753040268944896481271777065282703174503851126657254203322671971112089601860704201233546722233519885110397248948913149020237502341694258464178328610097981511093163832705981764257428467320858594982445846688230852584892356093356919624533453124165073172247279586217778417181782580858072137030448617100767809595633909463190778110753742417630274574226297102843651681862723765468614893661963659528372446712516673634963676470356195473063950195921660742685124625180520041840387893199507851953893900034130929963006890651527037501905995918940792331356558528623222875106863307679853335416860775986476388920230085765758325944398416663768297934379724739520716883888685042011410871786900412944819645251054968276065081494099500232447655531569764678610348548131292630986053405756439514695604675661647030410406857122621113335414355815498751918106657735954595326683059549416062948024569636972079947004002361448120470481997616123403129737139922323328977961650316711603753434447737258906949563476514621041484961501660442090250630013726283963965645450627143372435479506040910259401642183893788188650169559288947238059735695335553380845830615990483429121193954993113803092208876366442939369224521735233689869581358851197191878133320489846900483521394305887932462589067174631060122610729808038632094981846388609676438472339882541614824692796527405421580242899261184017907300275502539078822201617792434141205995958559209981206639992291538711056799899193174265286453736406207466186379418778315845699882184847913052878523132406808031029301987252173150935376793045756615896120818721802529763191129985942485061777215033176827150625278429326476846265129242177447197272210052478401298227763559780904799608517324296868408207888343142933971709515609380925640904266760130162755864949034431952970471722872933385155708709426994078618501731644412090277858247822294029073407485777790769349080321265979437015504621503105100882405258132373296964212069256348086512613326375523729971075575077061946566195938840055922143210891220978178161148197175320037020257757885830065457599755152329867713598500833949057594238015996097283048576417126483507287920164122757503638052193943277349218752530308251826468047245721625570357689031351789385079986691234720804717010106197542810743943480579493041455780769879140858854512760611511132320916820669871427916909010113652580626529094385692954823110418359855240326458118949641560331403230938720664760977711229165717505996465044108893629577947969618510945216967552449273868695146624871561834194963246478749766067489944420506688692973279991363661228958618497206061551996525176681143922461694969975649321995373329444806837109312453231854217590830521970186104980160424847517856915637429103059114015979224989461929634034958499094238762928781121994182866138705429625432651177826095342853443832290349109816563992726212519889169260280861538772898956072325512442128146979931940983973841799060757873315442453056958264893382633384804608134279180322073778207185905198225073953194548547457139953126453660693770989257815857931292490747526205969312171680169390604640296324428860597830404888622026126467013956077257923782284814465788301216401678452320253867027946802150757404359128857498152099557530038985719296373127871079145606672895793635042157085021446806791036798910456472362716307281176002719456829785020839350720742039222175532417960505366897386190767478463035553843714624080804227310491642188662458667670606882542666045532751254049003348827031571684097399343095733469470752400971429417090591607375098953997626547133145981193526543461470907967206731870399713004027713628768889933624703616240581384867055481763105090066618825054298520925305463358492663578191187087206809926584838467769426423882631461407105150071939725567989775600154365913291956057785301884428248860901918847347828692904204505773195563119211537896266126897890753918425897966421510142863713220306889509990275861972855290897804677719410332284450486148491614871823705814276550707923196048771879513619902818647331498176277154690931946492688627696565662766344600683662366464121830498396130755456816313327471878223439029380026415564103740608914302736044994811698654233792878777127656488356028802675454285773859800188467338861649415513911827062645382136055645047942426398729362247435901797224773574275634621810591137433607018926573417487613798538966241929818269996208181374092148776026669795561366100324090258872166930216066126905363142505788349842189020306893278330383915890233131001034602433551212915855723581830664589530861030533994972357854497099250413385306819621126633654403614173625302667309891336919116286719767145794071469583558103801719656172433435969301978308212608130727342252425839067757278408059525573193346768215160548528321252663914781290938665189227906852554156901368403009758782919525260030154334243577036168815245601241974643822036171170870947256105199507176876769585859043171779902928187181158380190800592223951593869089972783338532820014123928296851412524547564388618176374815866685787771575585291023816137939149676534775885022297690993987022131404841205511654686762620896941801795481441035161305801797038736452839560176541646286783287311799716030576583497231105445953896889750795864233733724335446152678865834594685448713786236382837117567379917396033039217141519705047304659450265519918396519220571345316811894169535060075527282116587966684068157396957161094570188106082318278183405082570128476319325131441475037205429574107736584121676610038904431872549922830794978145336186412459605434649900796074222445092554374725550240310017056320699598102102085676961809641783827020761985849868864134012226991037335197237717571397557704209510145914137502828331807874860550890695546099556467155604756461557850271449075470790508510983498265937996265664791283730101442817999467926387492867183265228988592821984729791425243685203158864209282163617482980014638504196403368372829869920902413294207013518096896767755040339930495222614832937380874497095324762568794403508782218675794499918914608461991814570162999060678800849855159645540452733345921850114771354705093048267410345376178084786747577487328750766913704524599872401308848809525128428095017779499152302003083040310356763374167811392508583491021660928882390848890679940009973085777932986236258779228673509970456633532623656538619147272700504015311859790812318979135015046032151616963960475567984935574971533528911194125869835113796927560258809119363100748792240559581651325379540822528353026574331299918386571398013553038698522588067265356927917792543441105922993339029133176371892714476044592881954745990902667935913716721428623450723115655006837041653027178765672395041297668438241238425341902077415176309453218591685099734610537073182444884793048303271063236053079618048969458001693439751528901459374612881792991178843344085398440787205120923665032498654383621651137682991327698147418178147187992419467124994182555790334076351234448584076240477699168386798302868021601328592823039029771487813461322486857071998306825591979944946892429146812089287283295566799252541307739292181618453782449456719897888359666801486818040448559211734461283506652575836253670253829108453005948507940725499114354204692185006771745976992979471891634527170946513881123532907983726668304252432202405774898139543176889162047363847213909722984885996908367071056566586164695453548682869131847422563735310329994506426272106143704331624183667359358316538139719690015793569110966459996616911715197118832503398487066340479725830290463172297242055784210297027943667281789999720528519769162905856028355769321529569298257302748183029058226625217553119152395849583439498760385019096372454307984798419283582205825524121536524493099255223280492560651497300542159587602908161306518417496930387986879682335702102250332437739910308285032159518476261319879704653436897560659352215635649324707544935679812307760537127783447741493570549408435553028873631858094912827739549416471841969459596049700089944788966101596145340998381369684845904743482157673493568323221089209776775493540851111798014920353896010132489961827951757720396636910883889583682020718222053860926676929960817300263236187452455260960517989290191471682474929740783187260451636797409785454496711848859760827842869895789422750975342137764657159266036719024712323340311656170482104592296379087963674909779853562671683318823896340695015984855804462743383950431982211305155243283889756716348555487700696387302674538452682265080443355399144511483631340025259189169880935287371525234771499635148151161227542282105577583736245725477130976152443842158162748354104698205451488544785216338993200530066346997610778327153540857564388161673614442045392449834523643324569274515672551866617641870477359328347925492509307187302089871075368491484241181400273601064503835973356092080463143849913025830403672514396504241651956667247293338146725105759198078017339345296980475452186264526715994157666105600305541522552436713751153885131534740917807769354933226033712397570178346909097777997013865507747628138341699585257982042097180470557789049153266606104310284337017770125097992768516451780521012978630568138252519765371168981058553146710834477704692504494694254145246075260100201961960051014404953682576476334647677006497765750286035855026099825244694452667670277830594574777275796138233093975348387425529583166004228615083299755438946075745132749580339902722266046035931309442444373837416255566203584819831265351260444376055694288552038154991079228101768836646095248365421796852876923180741584531103330186791423985927041856815130964010605519940989334244196916492331092317391904056858266491190514024202445029658008228356844570862602967122035083987490219967196590256766438832169329400030307838103397454062853930496235478819702925792602221354597060534091047320318261610840689904690551404604293304086708949273102019160017245096546096890546408214761361823064056950058072575301593462433992968387707475915626419323461426553414219045799000796138308899016552996105668206758611150757053637134280615982988531796321463099401702636874021092543284581945836541440067519539478102811560308845658483095549064237780896554569556201824801057582107761189873534969629808673337211387258429347167549175347834716384367935396136029560469488634563487141093494320586190298970978814978228656636735860351986401763901415345864175650969293741221386984051621005363566896463725168610411477310411671521936442757564105823560424032171951866325977325957709616818094040713856527191379002934741104662755870894750094068252921315127570168971744914262013116942917045977300506695402339612708924041384228779854493062256936441729844035541900711382764630401655656586840534692620642363260158831174972439840811228785839198619645179836788927055932011457932565859700556441615822477368096244508145141437649048970225277053564453050814284819395233082517603144990198255448589158142194198329180667339239394680190787485888289473607368701136979390784445684922097320891723599756247737970687163436718009623235903112934349073036131632831093535145230881415405617314356455171143279369968631773580961183104983375495263967402708742685736919686922738180548410380968447916108679208798346156638007732882585247478362828848960181727711666923789519435313302418435793446665117652403948904048432711032464178465576732524505376401979479863868048085984659484202628524509363860559607112427081212642498606589572277335712326789162188069695151431613685260904743310874072028145160519461560914488911003353625940904962088687375480572712400427371845725259244810778065003765466620376074408969014612964102181170705451265337014053053124401236191235849486930678345848983461933059495319191748238517173342809633356682169585008407767608519960396874138496981267563188762161711183248762803078884245621809963880131789337038138178753860048102335748639418176434665558010621782374231374149818481064717516612161570264427131499091405115092532590800136934888410261797985147449031025404995375300234722540562691095613572294492342037445660999387592103945300932319529337303025316285687846979683060082594371758789562803939476077158140987915829887157565196538312945253065766675957818544306632766842627897404876983468348824542165425996643921977264096271950088215235208031703826577797298042387018449792150937599580422954089784705653149475155427601853364070227841533779388030864001852601543058385874800775225216696627356896709106965557663222002059764596575232755905245377758317178371231780782064788642855312485347603190630591225584583970365842503669488258725218442745880316664417924774242872262102504787248350270278340362583565020927635947079532707079812369307443203674731385593617797458667265898330651276193857567167257382328927223153954914918378704348291401714252869436163430838237107605164100794549449399412067967496470103351501915664444161802856769516703960065879036338107112755639772394082001017058531649264879762394845714100786338772655990302323082136537316267966297045823863203104804013279820792244247795967396706984344858881264546871143793047132381444851086153626451704881292848471386509458386152366168507131453017083270825585841301274217616096803565678243221738879412943010599180306958925252756551978755995329679308131177967346110723245260325715619198743243172424565003137345159163808542404806507062733445529675171809032127941141021981652748263900163819478887033453672069197607775676157931521202470530254789855411103196050122714798795993319147054539891914889990900567520173801550478476136642498270040927351978969269141949165015645198255849220352149344785428986247277177297850101950927226097736494219719677328523081099289669774373437746840045858263540171895735657476468561162763385320439724116168005291523544695247647117686596941776302256867000495247999976839792361409189513574964223760965843404322961411522690493327202593263929058396948143543859199462204886143597090637982303275006065881973970335199827869714878880145854976710575763631641068306250635174355970937419264623647431834303396880900689416787533480793504991205322484125986468576826813794418771744078603601352295360576477383416652540689192531383257022266417077238464471605088593885427183913360004285623456160028167001831649344539773167690676716816181707379922386419073906230248264469686468305539517648359720805026938339228419099644021634412449932481039316471645868918337674037235920013154320760981406462628001272302394112490056850517568861412144057104046076415948532490175361396080322082550708541473925901251792050832178591191823612434750171482670014147240280995848438274470336620295611232166796879055228336383946531605182710666767418039097877216708997311281063153782749176998484082505730203837581347861510200335999039231067333208525419110486210792802692521301880474914764769318280248073337629003049313784134751310044525885670425833365482986437318828950310328677198548750586821015537902066959213050130314225499725842793885226527856729120219670028605365195828367143447227192969943310161835784920544278818939913967487485555770097115611122590158748021677751886063870840642941895804216923945355419209853311113740866210739517513253561865171084022266046000583432772509130065145721929299343736827853134033500701266826997593107943803136809621818344105188163868349719380180953870677072264286050344557212363418818094116122423419477093678704499043608172499943450176417192489180199947038142147167002450044954415503067012387021337445652096705629997650297519133810624467794351150632929780615961006243901839743036191702675547169344349763165649568365536971898807344808767178178725241295134029190076541533201997977724169878688992733762309682996201819677761262985112101690764503755809723178267908085869716477072975305016774787565361399143950120650311112058357055211718291258615337025742524819856320987775291117694524795160462254661367685290635842098102405340968135774412212999313032322771392356775281280593898230632720695935672980148608587812670007771365211233332748199465263904305418375992637735519578470488740680993442602932066608079639302696072831341686271215972695743809847301105807167124843809714803612032641439584210164936253091318046580472691888325254464927449846956516743300288592051756400962726314600444753831132008833120217493695625623725505116593012994312150379604378196911464146532996757775476042507644676605218466917082396684667791628308482772033024001517595519169361557655136094733246047015912060027450557950188832503905858211267378673534806394805072890483468349301309297707098369170574445180808974994063538268489614125459737260673046358649836266323905364495745881444495255400280532623883319960177475453002917232642316527912971914940647835198955084452296647210559419223296300871047897967106413688779369416073423560503773759714575153191523411718513329344743651575298472599634883369998655669852255532146127198978008662895127939662128491268023743576650985342269424053757091035671855104615390852212301703362289575276587346583385559168036633875930181558377220784484795298041814135573972006889581840129644469769084501957882668811040398571283343687773816292990728444928443184915828316437984119447177881781841286608141327888266762815455690147905927244007857145051199321665932063503781568385704869655407701098282573010283214177606213917274085353508617369405064459056815369194986835340027256444152369808799430147869899844050107265244046926603550989972113683058646850181878441297992456913444722274578153553638266653035468477622251981079962923257750936481120204937192521911882271193078345779544366218069294526878685209710867484073285303911234668027407080447063747417258932897054323051465283880287902379901066652925807615766346067086968328670183190048099701468159425113588295957262187496311627858384467864786229753815592716465182224570576667496447709279653614272925048557454360376510330133532683660124864941190152218203479745889128814504814365947455685612272172772825060799974337028644353301855408386162500736924157451447561704419768601162713196454367916220921591447764065000416358979184271359078553676179381206758472169601001912187310877865045373708785794344956034414570422413499269067660825916830993495200113152530189059020213469351634980071392674884642521276621450112077644243770836451765727602524594110511238847540250878012123113865699622578995338590151830682895755441146779274087029510902316700762956344680513607947023648436852795388002343258336407015028480243461134159627219583111362669187486410412271287599965380745731171444504453240255880068118805597040755982778816680695546888486408522522495796536442402821674811037357783160355045405164357129761566723814551101515224618099486306122654319927362771373683686022167142373739776145057963081122630176059261574561485441480645813425419368757775117989056507730243288044766342528981259133435620627870590934028090496569903333978154102169262005047606297762163946484149838895675425699203273186094957141454695238993495100108256067441370719978081160447361033307102634744235160618297234456396165778177231951149550358494238717271632112232014492301071587492580292849349493918745693592761393430289698546228844688448761119299426901448339903481669656050431182126524507505469560294235519115323405958000326912355639960395605791834103771851652053635833575577488654364390839968974684368617640224503975908039671075916430000528684540677817026971636839025048091429637487802222485404468196307262462582289203738901475140540648449281804034251402741176261742938146223083855919688457883058703741224850957585978690655997433665973560413936679026575138534572221115855700216399131452615588531386907727666472548719286620809657599846735524743416076999480649111697932270175762331538358260851300911665024911620472220550786848461581804232973722236444154473495376669241329628240175938080503173826693399790613095865943504126121546017600822477584983292075557224257282272177239295725561056292947288584334615647417264994467783547850533576731222473229620453737141925300884915704815478927046960966692461780711606449985492267605176053168327204252373053993281626213382703727247113766834812650543740427997026010884983020051060404912141144666528303338220298554584135484906786228843469023169247661383934412151968515286186298176798149935792694618839431434624173270279116934884079106751219302776363572390642343922381403155061817425247421126340955374813005333480642479456572100704831927867818998116618051726532295280396497736602459822027241377525412342227511748076546929246100483877840203101698685317264169700437251267838116807915116023741460846600711097370950071154679120392970787329395084458125791379336841824301126098940159888210760645746723544331149165106407960939116434541128765633128333844969079011396947017319847854398692947398208551361555798874463787248364127973726660135557012032632432866160071064372308949941320171614910697035320456055504662720588601950628338940957090472927240342292499068690348734059114851769130957692059108332955456791093623278254675620786830478311915594649653144322112844376253378927376536122710468239724014609736430269697483943538771372741940624847770651135529764206680695203199624046056120064282505160608590830827229510254231821937803479957970647245767595628569216548608563859073476408134868779287038276537882404825237071240583178977930307065565906819155989983526361907771678030078868878962269178776227476840822223690594255965596362948119095043304221337151663144879030621004490757845843826124549533945677503430480180640971649009025149785912809501272960895504741171662817856804147417556816895230923396333933879979870386625594300156277556761116219605573247623054833911019447267390447543237102495783858220677094622740498702065905610275409273669449269651021690230416409990445202484052932009331174385548696585832745817058998618447750483191772261769447781184862965379394325519150554347178472067752615600205941410229020875924407351184897072411354270513427468262066447884582738240295017297119405444321480907897551975273121722848792021942560776514650084310512393496934556211183017922339618292791031646433924616852263133021740603958158744188208251081956251184467488515160938551195654826179732726155632503300977914194694790351747598633593229586931242251227521553937059556810453507804737524771521969086194525578606652223758217002203361288045207395987271526250309022022795861454237612445438039443207620404675565428868534841724106080784605559242507755945075961911109571451361991724740772971123903533960361052761489402558985911652605447132767395023958830411372986136814086079833721585097545862644818930734124927212786189721304534821641794335134436354778126180201737664279035574652889579858562617757015392109167076049127178974060240994213483572104195802634594272737086652563438932643892766194186504316067166674275315054358979790837994495164675130113747829592401501405698909405451805022826201056157208713457537659657485962510926422732314495319594460928119951923116938320066702159042473734723685847809060076079032291855765498064388688506351346396451370849235836759029511812802920093692137603208181472008461977460937139808316210327090021773563188271826980012247816722096522404949643080362346650863157758821421911873808920765747889980509934286456201162200442827429588646340337940195887617279595427215597338262471258558170275846143153401025642953723942813290841701604571796677702961376019316453265437552367139928657133294236503278698119898178920083645513579452230801462598833695498982792868673604442417592482753154439619705032870961548139701065553598363144374339714630968784048311114908730948623103099472046387358979794601858767992836425681618446963936535461389370881725506474506965553450277672570375251782869527163581751292001590780331016682285650236150866546566630360027977500949560609895509775461433075532982010008333155593001265950320073101631283407206746805807227667634182719673508450495605249373785186015150310448518945957271943515262510485281615366875983517304969615766941415235224163430019134250102499443832266786777360712572209741841321184212870028449940432505877483888827854943987369321866186962487465283392686670212351482823422899627184929422237420470705198627014433241076155998065580933307981226155649897099680019640040197950928967975733196259581681751009594498331870656404291272087043511814939991568919733463345035297422550764474399993210674128540886700544464576643514584533474762931950438465051337861552429411541879491106163431975556803731994165267704369472341325233089298671991479851280769737818420723813931806276058959548080885024116885439295203542331378529928898132302205979374984940557921755933883497311281481862744944291798267081212155501782481479910573247842405538220446202587250639862779094159951843168517131664787987057318067674324174545170390924209918407724773715081818207833832694991103563308891129940088321732646612072557599273476259203229452887450147253587680339918359557295416373027214379970262978120189721496559921091917732490582632561404310425226269330386310615273915739570736752443066701341163299660191781969514586601836648775547148308749023346209909674515231947523614043870287355660974188994519059754751413313939964578422887785174564464646952668731739916204160351491234369537818265243918455862658882603858771696608491657478961977156894434835920339968209249808718345312131426250064824579215332213272014211669060663439647756580275494135531506215637354518161760781163462086082988641623763022521149878258275623354178777034131009455720802892433681094179310484886304367800819864425356539781419069595831011922538830847454935657471954862558694520032297855965517913877961188647880440996880229862112777261563816868331507921241153922699134746136796969411029843689155209082720214168308486774682241470416161393620242523754011765411148388305191472192571742048526677402336028245225020035028137799853311941207168193088053158986277956973764087324589483073182879480094516733525545590173311030791795901238224355435408764042565606850349923903665094743609373271182675110965629986265330863287943256991160657905905284132889513808667086662232779174329699830676280305203247070131647497816961232281624525155014233559296467287568811340939237126858563231611859784782401518017318035130764242340092625133365704168261144834873748663782764476582942842917732315255072304297267309050216431516218289667520914200383738602712812783896307001842845063596713550096139150848538474405667705062530270202650477856523213620281182657277148701179450039257581721660863930697854120393627921106376847342264720790390059627930239887653483077443249753955621268215955263753722686583048201874634548768215435668502513061966410926242038679003436657124104780629754437905570018578084165925039694948566872411545430501176462888144164191426256002147838918238658027830292257559192640092916046812849820406554278552192935200407870408336161843529735099819119095682936940676449184156695858950139364402404133956321454505400347483692978694432585850077907456163995947255625786347267524431819208500026777519688842378789888639218248288576431073958329456766794046287886793939983461508564022392696183568091116487221121684878494007124668206908247606092979093379997932454611622726576403116484045912792302802006640529388824601805723133042906119710367942883018401903752904372915155383185023639157200447941142105997577148358187847288685803351238501073035267051913531869849436660800136051610228036897667636155813256784980428827159454686208251974985310769858590766793801330834839929321993296001813342349829727687236067946862393965181855518178787947898999052298457074005837770074644776568146731549112576679044402957195059192740754942565266237697997575220553106333779670791586962003230759369316535541337881346653934844128632851634233993810915415825336886270300059051629841823024858161156990141464394369434092098385328925595169493536908273921082385567881659771108747302649488819081226793539144522770597566873790766462058931569043647169931682218231875945317814317783068471722753185517085796077993872654062875274357970294182121005145249936940106447384194314883891736977658647616897030937719485060145400558932423888941187293259598516132558398365732223191337329918882162400030736182807618477111917018236753280606858679510445657894094741501942922759057165295566988465475633073441398995350090470160474153972757404451219983864721882949563802566191987072329236984967775969197486256034723030546904172437924970150369544294829726873496386922459413997173762616549986911615730206686594140862443605893969144060309316128156986147823439018152786930119080180198065092799043492785233841961683197085629277546104546037775438116075087886558527830581318360517835835235077230769197447806600121161761581830775303464098676704332984505757155055712604330230150316631964723511988192460922336540852971244346090989817521144392327852192569671253655952685115496382958476037366111075016615322865553316934306132031763975795830073661816385043070311256098492372395584468929864474013642983865166467251962668907999207591500670056186456630043263355865807948324209058421492255961808643848218365375834589608773667598510436692377542977321789442882323894256774820814340509442184454746735347042949588149915533251049769927034462665352040994044640579237201828680726877670355088865763083695917936919419274459405734215790698058215910032138406379382021383864638594486344759185257433230736355698529360466626701704089635433987996618043032136704457268916469116220826406478702645924170212290023132238074645527139797376228952401751756664317620115831761059717498184604229699621501842478270187552567837259608874023986387845071400235474258398146044593926653379588571601670224734553049872851220651336875050132496637715657571189611961611728217114820935968989139214880490054169424695412380393796269383110140648485404193006088920133853568924074985511417193743770178179615280576598700515182502087570699369074022731029745076190517164675433003199265022923868048772503266591972146464701352681174037889444610204582824680881701210165721002394999685242006172770512470359722660601985971574750811684280421977671608778933251891269949064077588254974340145395809766137164057461436195036993463287723038626731499064303364336501800030901483067406109927910252323046055797583342851672932017261389102393727415070364767982535316816523614116800118326488871779418846649705494308071561307008716956520828489695066045787984822214237724309865510680323828042268643225810509100028574585447572455576243602535777703770298486816256329689057630843806941546574700609628530183371515327192454975992319434919999845184628978601295492679929874979771153524896397241535100286193875506902709719804000282685463414105085482033723147542050309797963420937068633673979874303207881575242188763316094539723776526579326938593416465990548701927819922429428337224379294304769171478264795348776474077065280097003079134283175705256689599119116802279629787374680735562712512139973234710294848285441184550279796138075389787838899878392053446866352242926669106061360462055568706774557157590130147990935122130120151756794686861625395101074850615435478104730353100985230065797039025973913409909846870902113823374018165655757258478154164654269441977694658580648308984823312943489597843754785571142245181471526489987412668639483706654271746872917702289362344672185614088716709914737406107967990881804619270870594334351894378113047445515525455172697527627216253307711205718128683705470345483771791402906108277066754156945719234703985426742525563720552473780483852851271090988136103886227216841134915390435115892945149636273609420653770354379510184248238168495382324456525130538143633020303649554474930945675827809647970510752454344934963603858279552296106229017320025942042331682688403896103888528967199629979142522165065802574697039338349506077598416050464406504553169552780145360462415423921680450112715236872210324628723475315400345591322086885353959266527512481456151860493396981407874848434333328833428112587646882494206731724834576655933299062743718534160243515771646503125879076642039381380921487606110233965978497798123745731910016108498355811643212931521919440394934184869119552032039474131452405586171624466558536403959009645860030744887460523954704281764948117554272134812202308720227318402168451272931639472679565954455719208728002258056813457741198533089074841205843073884546068245663126291246324927651756163208724665876025792233317621067287919186090817201005362355618334878213856254237059862175433831448351615469430713632149859755040640858717220906511577488960109246816338674043162038528183625736045520680094874067326080029725740427793039037502182252879621747499244494629183572136683342104884130390417321643621651453867699606735382623821032222964799369996672933998415628702592677124628759101401927543159521281500430064342451755680445473420761567677309918148207724757788437685625426068684063805205932321167620827577620191526077858675664567319473997016958466504559622475889071681452970975214690176641936509445758156579931894404690599414427578301658024507599538906689515979726991607520023737842292365834989432465602799076621887749116526160678479305958573056466549826197733047400779661317543613041072698400446024225737829926448606630402582984085220658442060494850241551459559775904803078660068973992245032132815039354965258807260072958852389763339976908217727122975103541730202637513477719976893150953065807928727803851289847948578033620058486924102055342763403019394081607110796839503451722778330696737904059269736675945425270573043244953942579546111057732675785034518801764592594271076394118353203468815175624712840656276129153792236695490063909572663334399027037252203705274941674859752527116425694566161889922788782792375071770628995640606774028792563066754340199726814864731352159085533060116557858562185798355985143185491652579462771112953641626790190890274740730613461733512552098305718896325671943491915730649895905908694660806222642271344574307874373808141326287040959453005195881726610712486924045522194517014135088194423185029313700215416662306348369997128668602782586716158846694789421435120753641860463091123559553468936557153778161010195450109516838642506425532556431020514423574030063275483774729928825603819726803916729808788012726371743182814958261534861305511529937511186869417145884483716166199924955375662163271288352711977993244582924821459831838012156767513877738483776454321329397969219533069156505033978306112451360683365866293197857095230269165923993456241930618681436837971095044009361027621914261274387097896618773242037097998423877874351046426604027745976401788538514457053888751486923319030864093277762886996784691876117339082943789698997516950239483594739390601374662199851850121755594878937481308617144000760815727786648821268076725872829902902390105456498434474950584709974090655308281823833132164523512880436837812683106635371038653967906131735484408555512935333238418143639272013856598747329510604509527839472433159288865357657492652475587092802216303374713612789076989503540736004992505517515550853018876932450910135967032108840314053256228518769755489309184163347310072236548734982568275163704171229189961891437917165500648935941803025811984671129129264972726991842920390749160267947700578342339489708580574758178757970032055622242909694028657618119412720166755351821239907569907935579818277616660825121423141989417033755706787709458712695132609065500892650531338089162266800366962145936586507563657451339977811093411423422630839772225219052453340898840008878529440665038910223751531491777791448862504995533557911394264621836417601294438944060842161787403773035164613569934348627751145875888852906951104509123137894046737931005664874782037454563172695522409201729523674460699084349206951738609629661950411108578089840125988102169477387801421403466545306205011193616596386172885505473061839758897713327072684053018308883759194831085396491856582355902281789639096217432163571758758292736599777377796443430187284841348191391094782283888053899984942607266885627579119017653647770218954976929359947186831614611353919415654285208427844313379845178051872755448278360818587201295340431461122100814216968748573630715187030509682560206705496891493715050629720854910214669002983572065676449847064297945351596830036961309286069986189293508078949901894656097373278062185980952411322046047034482600874296687490190825101033501918642987502070092410822811507857912167656257519824390783622139876828671116328957224300671678168568629541033323005084254098027869272403813424297343915597226629065435403620104823179150795887615795798853842779855286888617665645601777297887950325743301989527528039768018812804411382879184625928374138036999697387505623471386480618973802689669339723116607461916522735303645957478971357952500024803516726654661788793465197993250810387958686341121712336845829495790384571971977379797498617629175669072839943294780217186607494270895246898998114263682846476531507932554879387155274506925379566737667246323421271876886864675673732032765885905002644016114718845277167411231810161603215216903719646358337812159660538252141097634722321440703832074150702462957686052021179871140300532897983151403093767959694253649111892675044707914152321406662331572553135977587144589424642633557429365453806230074531363016410074426272982489518620035777629994495696575362428073909755283227809894367808546445137536585238346493879501408743301589524045496877055567350710014206215932626177152389940188251873296304097565120532970149866456097350388867424404827363608389912504913482233342166588785468917794430893773596352972834389151805881791211503292946592636870283865406630586692127543550793578411800281021775588327657766248286839958200936115300235161889268590061585881039131544797212655037896241565274147537816048530444793598204531875338585539429500332198694156298157400561494363287429437245693939654539114199009552797846266513158700475852350567269995207523526641483199265281340817509927372352146913919268938902864148052093899005726147170249228971033331716818040119202531747633213495855240589645413566040704655669068812478038104986747556452888414608051896834011093344401847465464874135367657221292680194579216923317583728095640022560781435093075763781487808261592379344793132511161401711979335659405467623328181289929219580597089498685796374324579860081959555146613991151756649639362474078995949047281142665706895730914134967177382565327917486118254437315420139593993802649923751961800524968105249674497739095964201359579251686984635056683480161411686808688023468993040667384578265211179698901950049827318454807619628622834442742170159984626701175553587901481511442707579990753403276121677944246442923845775537944083329409044720485917502913805453208949900522316625231595864839089519397741823386963626648074622508699936998459779695179099754680443715842941968878536876723341102448095346036194871392950658293714782400756284610740512642668936959111946943443393583253196887754571010489542769108038862374897661137467123575689497504015640429826540249190431937173894028616067700697344519573131685628958283819078090484156936150818387239899886457124301239585147360140805459515846552652335081304512660386785679881352222423947678684248382906139170589928630601757951018349010734004788717322218123884529218391608790964030036055899886555301238105950737090797066836625859477985673019281648124709884869637557065014949958754314524344811390190666584784172555945744259395622706370585992017893744903016955825941183414965432971581444513348715603284231349484590840099946838852562631370794011382261894186348521386897992986925124610748998353772319805889168049005798042884873108660644890701518762157412342744297509142492437654449384396759453450217149323870972169411652024415667829340924888500381663029622750481394094795242811790189589391467613841182473832456093669202069586571159676338226761142944721965286314220571850123984798919583621586950443248781855206063625096117875078264885319791346719797030131154858810935414449551024800812515929090891321535037582701930752909326582809114579433356410355571737038189906341416087389606110059050368512204437747353444705867533181291500167932500742200531918793777170397100457723795283253193336025369088496596348284045427499386134355006921757930400971354935100614792246375214533763660522121503451685624270087024577862092872373846855589684457553341080152027645964070056455701463477780934015328759657797372235702779025389137636898885061439836600811875664139043022631951841997080727869788993110598104201087971895091377841170399295534766103351871067593440980902310959413023535695946740106745233104265629563801775805639277149298903459068943891706035469193720820421882540840647851424259968493498855198246392821612006193901061836029236784615104913055013079634955518936375761178370088567031312994684920389471911443483131843206883518145452497823110621904497742196948044269351860852264374001891557154281314241107244281747375781391150268470703683562523585464342757519879607633815107102026602820506811888454712566766221519856097647789823974507150074181693005746837299917067426796221652461021884597330665591754320132717760723710221754589236291533133348885091447314472028026952262713643226588498963401607190782439066104828709150341859489592997782633794060973762975628379667382757847169512252141805799393952245563608261824468163815650691468640243990931960531201829945954726100303881167370952171069371055232301852066596479978694439356491167397863356186838502585274185673995222866585915755742250928188796689840097566864950404563022550064395582138708932454934757637433611476565352485635265961265985990051003262994859049585857064690293752918479023389254601721913846368380537629059340113576913498936206953655382478623158655584752350144215813642024530816299179408528680787598123074114479799564833424348826425586978739056374423223380759843320462146915983798383446542833952835297153436362211664212220787369960255175835293125040745912618970139036449237269721536790228765411201410969842096699315953031779618650834043592652179445770818856470948276379643559535869137741503392811129919031655428912418876086985263570141108432082598330886561896606468138762731441992899711738233523483926777371611529449204388118860690155813339230777746685812254563862365366661351065342659556031052113055146799366563483972400995642803755530896526866633378934822701042386651693596353026372013048762898151833045801576260136309922241419604417450110703982530700728320774578170835572707906567186401789276510749549100691518164045675609440237591415126784928091413869064426337232937673849209406567185394912649373080505457920488955181776644180761540751266560959324460148927544937369935219512996820978089024110803777319347673234463123708338542474669695289764712642150648631186831653035169367628312663808284188598095865620018970656814818002757464228057904005390169105192831496768257656944702831265472969387864943231112331739841043017746706097402227572468610075846013317676102359226380141028059509161467430474136805438790558071799258163696724225453365627941746379033490466331230329896699052029718027367939288609086418798865480121270877121942678321613260120327640888450731720396134706275693090901510229822246224754168071391548173344998741467859313358387491849796501538049146635943315466246347794759875493887640453218859275877662740149767043045713931634113132255356202515348952813516281411415094068958721376830358459358634229696784260505256210430604861538403829600049742698639483422119995322232429835534692718317242061493529014019578611879568141921696476279350563867286307905903467522939646740339547395887264755161432446120841796663227601783297850370981313377655820234736605806071115536310673089539229024241166175437561347278694672403331574465591042975031949351836765699750399784823473521328391408397334894821266670743774390457905273556225082513485618220363841152537083472699444128153309174899079312305080370632239910353301549089937917228787583705305245360239313931027285557580467984550989371693037905867794839487686867810881084693694533354612583344656755306924727180868064719387058012755864153779403198966094220894494424643178324307309841128435893472833041482671322144196427130416729068550091060503915666769011692034819474663156530325907365036611839603331299565541339280785640301817700898159514712904472390876683967806103092951430582541602793316782236756735387802220858263604009492966055769605082237609816937950858541726799248479241309679933472999654151017450657252941867434085112301451903136941583587030657857778652608933376672597252636990659350718881851758283104310343012084880769993110205018978475211740683661697961268099682474488740404468195012839084423888581402164505205927153076504949621943298591750381896675208416721897395491640255784827341037382750350401407216943059932634863309685952448780545907199494998295027335665281474409980438581098869325090367743270823666771671538356853148215770009905690529839440544315503918057615463388987201680186957618100003352426707361624022756768707310762646133906776370423789459497262786315158535706701287405507503256258867110358909467008046124235968017595411626277239471826939326326050039189416897399936834961680561870665052229228778166511049435301086995976950275344574903663072716544446129015876369260053144265712545790132568215471184669915917315698066506511049367842537763972227853691412636289702901293765290489985962763236915965787736977664388408072289519875922915206460853000826316597396174685899267609485747119375463839522649057721064143122072460963676402899385953498250393503552340455280311472247340159961147877644373983503654985775404779873745634091322068636308439762842107702584995375717656903831851688257258076214637786642489527710090037547893224680593102342263311169164705574248972557824201458719280819328106818748079624643035948178841193072600503202402402677623671896748010738360665662881673070167959630701439534386246394025008977695179087521041688662368551442234108751149985163034346441616550165805304443646593371954152456792927436225298555835869769500313443981204050894479903755984264064500232364703685953612957636810299710878208230796881710468450968665164855216598280778538376504589728615237911418644565438555436628112940685732483943223376797591337212714561365501858511260280614281881557650417152632932799044519372712842429753322540754282744577312186993829821013242086091110868789302531464391035118384648000032711339436260219184053667883401978469546122661857919419401886969252543460450414321606709347428878569510855813728788835736883955116867546811865344857840800263998433259375416792231194043825004095157154351181051035000687552423357699450803420921287495562104503305345357864299241963440758067484334734787466288843127539475279967189810003391888034095345397412498084970419439753682692679270020821330553276421340557396549226365501514306533351262579668308252730950819783938431751712132820539338446907764967300105565638924076149247756597289729118162768389448003493003945069491872008821098894436363299269163523872601883637356711119674002642552980488712951091410763837748897576955408135278521885423083179701266616682076136204732085373430739325124463771839964666824638261450038013272422737893033681505318365414703886973759115582219969158709857212809764513962217494214067090865859775551116861640192928525705349931270109367660839715691475137627989205032467251878798096239012535666192819625984626291349002919390210969024061822772014907136432819289086840267086234584944967822550279228512297855616940264037875014427367568435130091338091067595430813119039974857311430256605172605678037236898081143983421417894664477362414917537088513052712635275545164620672851481913447849371648353408515365732269938086031254144064828192683361998447754198122056712185783039061043157987609558566505899682862882033752454974501962352239264371725386492847121745351886817837079630647957401961352056828749624036761351110436497311965213049224068126452499091079883224527696659000741608034579354712495639219957724842788717306666328573857451275596462121944953840347905721311159649602083086308608877025392390184659767894096776458366810976100385425686112603830298664248900895147033001820834015383968198461323810652615644822068323326703040425358498918157581639149468659119749164757409629026737228519353989782756216083806184507031746411941375740740458182398942020452251880851648788851376406837158472444657345799651846839470720583346886621222814953100559296347943805187563085472569913954596661681218112784189931047401748057305063885723217635471313020971616965449881595320766948647428596060495884058796318799312919269163021263199011081217891003060111537070333903042429247787760679326237176631900496247777880865759820245342502050263902477004193663421868201645091789239576927366099430750992690037979801795856057746369916176011513371644229791750532172196998064642740892663317465737238231690074569239090666424203881171931667666599293599576044291957729379406092382810609078750551228294476852383131686136532689514755228206957278979597520629141297040859438475653222932272603401440305014501843646678539725846924615444249447543236706137476954911924465260604415912067141151479364882559079540342220517736115506481454223612803004370136504472020397748807756005341127224338685101495130015356849241065391469778213917347764340838008228483193763547821177681429673967282837523277102302596906286272791507656341922141722952526550026321200962197611876306706677497374505009911613406348057450262972722500098397405469773878096190291710896749183802801055447448810256305910623715925723016108881243210464155575760395100269269397592485859770425224790433841973445703561256117637449574849106719906663257072231422790102898386106207171132237968248442159049683599131970622292690395382263028775834530944263115195340473074875399941188499208133563902006120369270255763724940175793950741911009281737059367511920532247912331589719721586826165100356577847582485709368422507476955785726621118185436204350521897280311383193516312709939823813587696878403878287903431207833096936362431480967998185111555860461603485577441577421470758724753081034372113578236378187183895318875245465869498700713346224444966932451104049869186836200961221853952577353881805056223447319448401156707336427490598811476730237507055920254546730017385866136128385769614617621962823497848326186276095427123549635667658282831470584710413489482872354594839916536468499639511874503579829296943020378259550333193398224924706968580471286716218435415448739745718273917410642137956311566600868138799273683550013308217436597156826875450981742049582429377728372253853695340941324977982858501211790235007293222064920707303974074002278132116942745780397098494031035659793632269848337226432564529721121368602644932386037883191079409038440245556439650211324083461581708814477886649486651136352555163651731807607966928202495646903591334415524255050400849281905999259897845098037148259936649308852519370505038051906479381607195237874806689165852907550993031819833437346446688654145057972384458909862393508537291568022777202338693776940520853007653982289272653958241884043718303764777560360857953094184471750432907226660719152749724714261848668053515140609932037065803486772873301582228741821683267461135165431008470739895418260365480025568331010122506802010801421106140935423376691919168051851043904580502203279519550477423666621496629907291044525169166456459367821681100360205409786929848190187013692474981847205219658963685850249660193018928201842313009066662769323409827558738665485370838591457583972489089347946004360269817937570970044051017105997839423319939918772637838057122442860628092843615043988293855241080212372137355350188274205524456236846462179288375419972689029418316203438312635758929606389435912169822944829216144608866040497823681616505166753196755455001575128553684246498007881797398785982731105192678415858108430904781398386154970667400108512305950108898011485625789490499129419615046662208250499674340672603354329020643802999943240300761336422965118031349519324371266888893837611840814330842448141207287463432194805600526650888489146302056646782399618729854916471926073351086092652877871710137842292959979917285217422735019462108210993753879797417655939304281445130830375522086264168981786588549128939555045186169242177642453225991744592743382717091763670332803207932488852635141566403966461103168211830628818322259816173024385144267666859992172480115784864457802019965199976756287294389883204964777599411052834448797671861953477422577033828924293781915530807280176503440804020663368059144097229539965153270232511671297111906505890453535911042897612808556956549702097450629583138978273360329191042096643324804250718903632418714348001116909925302625902068272836269808184725924458117342824969963817158992097546960282521388599280409447929162458520466534195656434072271766415644664115024281844551571706928904703155884570026308229267235012376077632139405645035040429042281714152940621393166370874193393930857947212679426057956584901561344954181446432865511408656540197514359899310492637328939205208744196856159530594103304066545478840696589106001120688764219669539537949284438351874962242383930645580042782712307125744587854412664934456637223718369821921820702889120491601271606844001371758721757844390272720616770580424329373292234116579778039021075856736925755937825401899782892267890599498799205227951341159536904219507352155007457530119672218824521458686003545478512670508187008210641287383757375742258413683080674834588199092353625641583691392651500411755360283688990223373641439609932905453756846372353472822516771015527847801957390525699832464733868799944885952959008479778650866418793204741052587091480721801786285760197649704510797402112296243419975522699934441818662803284695405509935922823432876919003143011847369054749161565967475252974321822117560776680506624264909119936754953459188549142641675909567149472187876468979947006672723912257258182989664235735453388426946523454609759298991815125836371720119159672775523852253789298514923739064292510505330641467510753251962857215660958474967070149444196581525832714148400049195647428429831792285331760517709548755237996127314983355943613576310414678237955126451946420830752042143506458620510921244113779812029458307518256544567633306382939153714027645514745370001006169042767246025375336990901079856095951033816913334394433058247226914192834431951442576111756939575677019826722654574862237706986727105564626816483540781992240684485810267851453236227658553044891994120824272857127145559411275817705523427778673998995896580008817820162553827687232101703300551392346993924183458191813971912304677158795434371150991412129774326839082154655521127490043261686491133985350895362204535328476688480195687245563289502486087380781927686209938246510943855326904172423755905353167361009975603554252743769006630704809150197296273944709499162638138601832486415617720288488778528027886770943060214056354157778601073300321330234102301775494092976069758031019737536870837355017305122665403380101042440385319999481145800413921398041741663773076369150589661162670375294874276050351055529114967490487178199552427572500359215076637466941406962221776746082825915181074181418514527780479874192182530111389014490014173734024257970295293382003762259458747348390506523636497379480333032556272496783863282415050701692064240743803528871608226357195389351230703762907890752202032991578602066232965521003362793718412758386294718897298782840525986631253756924155658680687761267715303104782637754799069561891145547137397817558094873436465592677790592817078424310583270659550629551363044145340406994645176701973201805159117727612037818151015135028274039754683495466893215853880394713353837329155286006124974456827050341112611320645426475697268072321481698846907241294277086242758906607475712731803105070579190098753456700943839255891906708881092449359506548629494070018508590158895809331179449634703310324410739490848369041530832188131346258158370231670409828767234196513055619535615892487137914703372966783635964872111665499535443671398472408685263241708665157444536510842204230913113543681646165448438811425795978884828142689740250060060951048794014065107387805704396740968920567676520490434025892967861112515962612500518406567857699552704433679597853123708212025005430119485328020235401809591680548518538661093630600173058604844572939100878269434694397518433448556181927739439244007144301271776312014667605990046289699426504911587449090397252415955962314015533676494501852764874372313108880498586008399157072256989017821061586617051738812998690114583913375043859361413620560908073263051609533392605141013272844614436825451779427869427764581207224886193210660463119098915993096561913722021196226268080133198226214507591754570728013573021443018973610729547505788962082369960578589057260259248039205389609910620031415050412820408572745563056559634760869166887216584431916005455626856294124288807372602299499648585978596734617818555467799076283408284280519849206371274511303314161820503373480067055642319160277571435768913812729736412948241428148056961331123094335079911250500812197170594426870081928020249009558110483355637379642972160741751023244112924341785519621864087773945152332166790237149054462635949175641097852725758020899947271836146122259285152447759156283982749964050577520514473274864042165558174694763789255258113752708126393760894638324476682107423493758917830424766179203651309316536340194311844298244053394433163298048925713995138602464588225518962170479562072882317211773313643807053203373802357783271938199038478309531364328959892599406717498408692630419014260176319178961710664510259178733323559731110810441280355776635290151099097547653193228903158279644783039420277719292635236770523522061737329270495980588667140564501638063079328099249918577729054692624513275210993265688750288081447542962449611377817801612327225188293735873520207642896937848661152626010869844997095467735092830234659321180920539859117519397644975223005803475538417380220900879532121483082567432702676583071831582815550075832501895084165979759823618377646516746995218107765551921033916203942121860930209860457613751699599153776483693087952294518457207265001660366629422999834414013225634287028586600931302279857920140071727484185114711141689913668223612583768913603488941362951363754678650233664237397211027940565790712026696766307472957164456130868546298755081737471824424921780256071600784205278248410782616230547454810250455523150073360535436321003301196279106996105354434286390040271771142243627867327618446937689817068330620508511998861265930925334598771349704778739190601691197821647934309323026597674999173949019023410594973033170067822075949890621335244509524685599870709750044253072869181328463148363875135115639818634895698313890846339362967211555932854284302994482220301941191538521508712041804898016556958486283032029416346277407371190299249779338848763403053962083584483964994649424784394038471971833929939570985105013564048431858349713467848520762198295263065886486146713122905580280114111848498356412888297844143309362962927367494945917693829009658144233079029967120407179849318316062073026012095849406228820570570767624263011325850466431422261772857345080786375568495057646195976633349747166350124405677003087834800008833361633183842214637857401044943833584489932917842646262495004072885890775144519028541861040114835347949043812060367893982724673626904560823619765750186100315774821195864124499914588010557087033125232548708399812014931916711814732682354603965271982035733558672571222332011103291976682016460662085514437633403161296836129567247288621490672950658507804961352544832557796768219882875204702062184929601274429906669850650375461532382346364327430816114608573565314717967943572589332548312796699203741867747743758734368372911588669689614004526395924547406897964563506002053838203103754002295164853854724849591670765679876528284231846956923276115242197609240588537381862490465766405518127635433809352403972185938746489607268676310038019272114734382921936233307655912635269913343983870802737586674274264658857138132589567093043725312914436888380522236502605709410812650142710182562239537243757994667451566043492491317459847248363907262883506069442985146304063197044834323372815285793842853697863112398174863297192565510863647147849368932028314113063866153198699242236271847937886693711384543963786996657152801614295882731606202706164182695972652285575067346103736127760894812707872075744404024959303427933448677869283477878978448541698251101263752828646089754480173086945619292229535872434829660185292781318879110289744823870558902339353080360281951956196150223484310453919512587666315142351305492807802480716908178188620467259892811449806225455096281730372799945956783558166082939941594340495264196766802204165127482008533762369394552534988174337877807729364195180279638367167438085717618400190943786094060735289431100032387061173093830375457816709226290016854650777694475705396532936115773889219269308250065830907006158754072096499310651178066948251548015414277983943330735865036566948194433413615825839956520618797133219385810449708773374010428847404925838129403632024291216770370920363514852409563455102982728621849134640946609280802840377801840301743928215623393478428407826944498921813871673181401485299361270367201972824866737306735869916221450901195355403703257378395701071535657962872300452194145622126626711058557651667698507322329939996768132390941565347049974289012423630552167936669920521434648374763656389840156933955980200006343863258854650578075376130581731668373115844383858186509237274969241270648251876071728248069939795696817765009410785516977055997336686152893102118716350934754446654813342544949429103390288028927446014609117578323071572040968050284901596541011955792135992629039083161376408115733908540642672821665009971046829338455655215180121589246860296737513777511746571265158816038344554158579326078309982718191050313996256144348414956097617639065595643377095420547965099178260265056391024503540668372566689388593184381194140580364536981197023293803348484883741107130751530279791133811155279402037715921043085308791765578143343515745871850771247866885922034930519654885958321156752486988850421540509537127881534426549231536412036681553040282968197138766059331866323279831665867929279521280736145215573505967414869178802494414141253408917416865502679037757549046691715681537820967106323151807136333663682915214108213975164102028902557431931536389243423087983432785012431028548464344129234820662550912469388225077596907307310695786309092899675732646816975116066861452093976021555071628574409373160211197752440594427317530096352444165750520537685289675668414578779149668323373328817133138645536825696920303988462290808565524318220936404414074832570627114427108509332199336847022926526321313932775535418947663740215246234756736359971440561391083581336893250490482760165936835271392506119849766866431855961572876858263622081347914223734491001124936428106902232083486286145460108080608274380906811569180366481621904981536031726194652188018815636032875344649279648521279209290188018857155947030702535166774007768237247876409214091031830717167687620601643994302217990033752156640963329545202567105785833056113411944537357101246718313336748043457860790934765632250738752504081450770049799773666515218279617522721488813426495593478577125507252419882703829035389992574912383670801715712882334209029102254443785438455841737445386024437004502606414675192326489801972206242166693249376328104866251898782060722486819922534892144449723520829160498804868415788449534883405767375840892220151133822603901460260002364822329290549740287939624520312355108163203674419497926391237501349054549176903109044727777441092349297514319393655722998884421563044361813664218532781953323929688203944988596030760880821185429500607116728884300856408011032486221838660335804620044098054349607822338991948540202454276214817582470941053834427691739190132444330610652707283089627588622386304468108290517984049554282990780358439581013358476112828638655497563975700801906471390842535237433405297713003890624993195435654940347269910995080349868937365308732303468647079439011453309568214292575839505470713658524983452251638308249310279800439992813262124432211158397807152100446985342403946359711425786467420087490733506283988163990144161999731654446374000455757246976084043673956139201406478610775220619255451808485253223548668766669545053636111534145989663334009401901883975233042352974741791822096603920982902530167667417757187847551666052398225475911829647737507127426300440584711487417575216876696497857520951739676781847618526154877049579162734434186465131619558091972514347187647427604436243024550008221905418223044281330880913554685372340068191168597136869687896427697529349242289089594153796961054873589639903924616591876440186829178976848295254254714664995723414356659087366934730511630926988286356232978433312983601429948766621164938212099916416944557478520245834821098320436688139621871559110830103763152394265321342997471479170536287297852444769398174112337641576223424504740939739959932804016164989725537717888019768716283593935297953615065232717357852267160920536021236732601799900020124695510187379561339734743891074032447645027112809985059624651885642804639781414849131269746099114662873962987500850415656445319752802123379555965302480289320220580612930161636282903020185912851374359014211864745595977303603477955475104576065123766530320374227158011876839953766165064719739745969420349593871674877769996500665727041529388152828495287997824109547702608526849832082423983134493958422607343084620924374140653334251155792693605919213490749964269256386203879883527172469128269033174856249023519058245288663385156879082913178055803942774736145141492934754180005156360266640320834587793885747034537332341813396723626912098085253794961362841807887189503040872767540717249413525165886082418704434914070784996830781326471684687561691960107111681693614754711959315086897630330567370437290545573505233011702311928332004674991150680475966816803580822571280288825915058070649501878768641169158888425114387065324496286566287898573699827058451860941713837023934568292633061158907251085101160868280111755357239154454994344660423049966875113211937462036376771396257532799802513260464000765346022888270291699892666162035602467447723699405234401806779021539272074700888384610620927810941847749331875627169714073187934181774424360060871800190508990109808709894735393008648660121818158716038880643675608773898006206169259308079125121556969825794399130703519972726013350127014013669853660375000242722715139677714157247923155296532959316167557859194744699518208375733812956074622455770176707600165478274471796296308407141094218076300185712839134809235850628214639570484412188336497414208344689436236221628825677456851509848559268237996901857168030211775174212318593527714830952901470790089850084587102916592232991653125549952401328033608347184594911736135507718748392755879615874598717304558043311381067627553971287429476158004780718115429266266900296509542623565432079670406557010591545084677524710619369730162063870011858386162479073039699215008871925442544026147337761976675648128874762774593831100533454845455167396747403364418934862608118323823325495833509868827197168142635031630082244558893201299405344250225723003307537154752702050394140250167408297249486150261643590075725189829714151857511745904551963163965912280921229874877704344340713820556320145008192511319624459252072447237761622406522745292761870741985466839766331836248474456514639917492879963781811878999125350500296359017698305511015030250142015742910624198484003158542768632234451884638066967763987141679246302996640785397121781208707545077975391730816699757082251839054613493015727620475199723773700319752282576335581562872908227938004693093284847966697247028641696925344009461862362345306435417089158605642326163700465835623471630011943340543378621242620075839582114350519752020363259878829136781237482578504864182525914105843924744014869087780851325686246049152102219276579068726848714482294562944527332091299508341940944876329709305515259013113063533559679622641085088934293461451991801862284558383786827240902096662925270673532397939941802903431056702987125030589281077542136479169480048582488218328391338700100335311405468434089897209815913565686050883601155436797048835263774254585313631052357391928083570343304762557874372596920667399988761895033994536628641523828066139478888664838869530378186876474001552056009201548333405348735536939692201346064066300757420701195751786384760138431959438186745438052297293099227338305763463187367821927998642949258937739396814428455650452371758372676830251196441912987807100560616741229578997908990601421365781950374385906747953524953140144536170173727947295953956188216124920411410569697398220470131179479681009117087452762382443932422029345429604225387551653689542822117541267453029536221610233790458771066674217672229591627603073631242774589207138347166974616129739294261942873689850030236306209496108721983323744327233141216616110111402453523139647450072689365192887478692954003201017509179658316443674264841080220032506186079771406785872396252378328870527429847164500377292137022671410325360766812763083504102145799631126963614455316088996007393523722712319156167492336579569452920368274592352611127548912679811141354748178764308848479436499656523980201564180215153530884988369850861976197567801549405193580726001477259838118370948957725615787082620051781269311308803703138206218970010479381112702934281558166402481413013746301116211880933560515201541725787748442155970369939067396465569615065869396643261362854211409613411829620297918575785871401166695889054460319389329018772388590548228658181780864413514072950710366831215526487502811990452995728882945975737070445083265111871244896075122954091033115166365057329666227483315032336218441008940744199963865250448496906726110432619798749714009292817143389890143416578679692553327865960359244859867616543654159264212142650607780989149129198436723110095640485756715202300612834902974951459256264230793770611837069607037120646352257672914748768677589822323365331801413763402100426290163541004961294040057106896261003678995471843773183240768307325992936158097120116209146079632510522442071443108983456556039574961758223440766200299066472710895011165670006892656830386402576240603527626753504477921649776090981899380670546948041387338118273655983899922841122734951028936386281682770069424938014382161115009262167310852753082295340270013242280389871917681891903486212893833535990490707634649743905310216332321193310219833928731551803897093932366709415850006255603094021681191804662089183550635809489489361645343591011255739028006322885182470655429415015259253158065867487922595774905255065274040430494767910416484241478945263119578546639478539239911006837403934976688861267494929781045569836996523426763015702204094978269364577606758859597973313244286120801600303400442154163698911777284312289690765060064049448123038090470974301169832573379036922180464900868759581502609714443372666315095060248646305855650775394168559215903128370179599471037982128985731194041828568705508135214957371941005592536401231492770153386617072692709543402167201919483253554593189451230284591303680877778467414307508362754421095559691479872347316509216061769274744999322758999460391827350052048503282551776985382477045386261278308202254428263334501439621766875047725430281495671988117016198505949359978907669852642520546138670445343872684575822510315864600839234613220697471930092765208735262906255948888990385788154165996867092862394674183829205301193679961614531888865779578381167745387621376539842141354051700676183095320884652214862372806617763174833153992050728087480988754638497559095428932669911385949794135573765671070974279049348966571277738673968676779974588378166352924984064617760195150118770271292777386168882219356690712937105011095369920821143702973266689256204753868985426529814901264870694827981700111638853135068221532731973825269407485926042321596074214169105846937578598585983795467285980467561766586256708671902585855241358401611091223214002299623615135152198758287894157849993160038873880927503273475205666193107836183594705982950705788671733894863830894666783141719894127155103003876475043334466270620947920812058597850576985110571817988238357163982870539071914739979271937668288221896127027378992055635021452419992219871985927354267811408620808610333553951347562609697891083882093573213775607169182493920181999275903466823314317004370054713090002515652330432761938743027256634155923322499834674420732096936140198617489619884490646485066182223788585539416839508127307376009977151303158692249541730583127373318325522660526232577739720784714449189952303090726002063330208144767172853348065072760502318141708567835387262253758383603135089035065983213929784186014987232496305671986939971615514346404248203506083435570397680549141658672807135543897317201550668201783165143228132206178015366521933200054137669528784843367326841103132322458334411353772197211385771673585067077888866454583889065372584674425757898091851185071923098508561072039026431711129118762092257706347555463231073652572051211431562417310177183699724458492396601129121814563656852540101919902605283506707759272033220314200403205764941553618091029027560604137199978163802985798816293615545574472778302440269799157151835325021389222856343841410025859260622974690197046361891431160824015108081609517778318380017591710453998712739148691955932056383558568875366174361077584267884428822818938992360374572427320936475668626596565775616558110371842727804571378318145757117600353967020461969807115919303053724839394120881624624238883539602748609059705534333306576166050573383220823869533315763856583741935345961486861947829615390821636056325534141735341960011067129577051749927703217733481863196572061905738978961814988341429479466719708855886710949231696121575177597060358593908606751640931691682541318494498072632373050895560649362195455788618059477101024114016877572070574307989211444962295286478125991843405547333225004897962070993064849875644218503155415748512632092673376372660069217556353900030858163165454888114026552551243641972951152127676843756828601921975107956108763604961385904587066540696869251489873865306570834220349821653082012841927485917489420992152963558497665174229853783992554364958286316333108059110796213409120776609326078483685361204856428729193226866440905984222431715266545307248172143398664160834754144696707243726174904262763702896430422022095036291679291766467002267169822634789708397320746249095915787006037400498035449279028273601809102274679663883354654642617234657132322605471782597765520731841883985933813687356877042883699942892755160867257466448500725217975135587166462812123146147746590230204019747200471721094765771078804266462570079213768417341762561992739641597642926401683328345677475366356811142067598863260273697959556610555608867168702187166430987231828198544247362566370311003389893395701624348149230806861696778438906859179303388921581565315189923931939843252098752365335500996808794086140615408314757128334603823513663316849458995797286251949955716225421045494838278606907395556661373335449123176281354900181988052933975256426001497202689530723091529694172877255623976035793850518056828003063478287086523451428342525312861010354272160690758177673671378073140847835557901033553187484601627889686801297758157694077816718300706216154221690632595160617877808665117949283934007191108552032691941524915588692178976905002288111105678651572404848982454267348620764541615576107361832648653005340129080441878929222403770501463998025087207188885407549264939451756767312508310716748653137776517933707872979089480564359786901423102850268794446532194950069026949403303247045840114070173041135300400076224078719541136013333573842466157924246185959202145175565885869262977435486093541548429542696418792420253661323115592817240759636602545175042406571300298639218915072566449931715624584511675695475076406181823512088496048955072549571607372616086389230571010648256841385932626810182257063500084577118005714694297044595099968391628057595051444788720018072949022476364130802794418237749190423363359572573347006473640461043002976570441696712154985738812728469822490464501745002765772573922016822952326328444093827679043152306206136187156220479878055709312923762216773717472540342998815618327907339378072606208770335619675152036126785909026574615437481636548990898950240783438345370988185508679849080123576155641647229743927442891956343738344646599037485949258523845191590046601204579621583681408890456421443242770697358747523975906015809440553816811930949288908423721360878679121622557369410760148327779452962927946564507762792719521873222694922206915146721111084923962848137150558510005697466786071927519243383032053842971181457396052111611382623534961531975192564081234198096371296016400886263444765627341713623975438320249100245049508275457650287618741110557446213446747375986713026818836614219507240028188931104104836205512835850157390998985422290058740854447552667449310143863694001082211736403892764485757237189193295414823900200023334165963115469759347566734502182964507152368152471031425230484716334746367470051107197858759901820978830217229293759629717582204340880516623194788444062436117690164446826835729519993708680265630277041873234551046916366202394988502047105398678271646275055451017462982766641861440566239323847257727112468513828884215101538231139138032389527795822628108414610792962450864911123029963961812293053775815446699768956293692394168221715241245151505040269456477523612795912167092039774566177742656693300879084857800138979316516473587686783544447171336533770263144918640438446989044488758394728457606687730802657893120860454863145673863956257519430757596430232124159346092035130161025616705617630771838936006885561340835031193002586728310253787865325620888815559787889003210818423011814215682216476010052014160898605614157797776913322565191677571062147164812188786979763329935781440988355215734075939758953366321948744134281992326751083109542347542248685066947523259001696380186017398061066374948165415115061458790058538427893337643412271143923291170529905544776179196086504735487570555292566120050031517039701157684156279572497125947664919301764477420148445673627783291163766203899963383556566798730136255580391268450032214007594468319411023165672376924513765908787391932127625278757969840532670031922555174441767380263157535861554299551699306971618388230184149690891487299958020039616644238513079358035289006420990208881262030351601929659086888217547132860235579730391814058966958496330110759851037542544841004959856031900026642935562524552159964280985181996038392929316410844271500656985016211168628641914505345081661721255879983751382114360323551100219983035445328117578749239188329246437294249137257384420836012210099911972380186592004605992366493804318997888882324411558709753218948025410572349495959407674394256053457008466465454572547490137957895304637746926071352117981789651997311587120767921454314467027976206178564291030897759368590132664496358507873120328943077516024423251511734151961495843173431609115382407296566366867016129748421079624719377132245725909791948468955136839684715385768150180064993775168600119242003123671872200874411498222271059963590891078964571586040713963550918512906507194678408879595596934072310738727842113654700722931109936516906128029454493433364885554473113898663547307537893184283640307135913832693802063318124322597753390349620524797584864704101977804838584831769807506692459199938301823170613893476728429947279610297963710559423182074893574579406162563596130888738067272593103491170433348604262339339551657841725407780099659929153434434839449150813081127950447866348168408660194756093791846705241011870277447567017924050478680431676235741635591089758441458646280818286171564094673409564543608415095442392229441675500635627905543592536738961156022955560686210065583074907016374477842007381571550909224038977961419579749812004881326324654479885797438000019516043165343361172453497819624436400472724779820848660787112627739495108036076622654095681712331356877154733411628414502259038391954135348048390711651163199929570738636690629454830529004810545964055708810963073388015627936246274287102317127917734468524253469351633533958377126987480591145033542007820903943786245741203670809775893729471152742944666895517109196537750322649512247878635102893556426551401516149754767597303695888416354487251922935626847519824932555962601998816566466064276502260059735318324132822293652750403898947364715392356126756980384207843587582193348339223498384810002766795058091958881800704194187530881739052880324286151711729653013119395613866100102801930087474427142379767136852457456284777526183993229574074709255950120770927459522299220240132965124123880057311467987255027449353345625209131356650942742057400094396599706004436295376240818194521458632050489852902933482575010025599492315159145563848307250484791146103276010351956144362049644343449657892390688567047554950062268639592473719198382190038127677571875584372687681295720026027706359395447684326547212679735490507597209889787687164184752740409230199157027660821676609547590923108516970252867516692035972078753361449087369536478696942871254047910474641127373665081128072670900033453791382109316281588660443926353649036538346060755948900840349973333886266592902137309092223169987725667695060940199171758498008785259731186114186857455876944554786181634282292767159770784875993730746914103986839761278006600485866323543337738820090436746329335582660859896200363109534038190193019539174767652949975132615780413776980574427241157800585449910290111382770413861869665080871408265579466615482469046967055112054282437627139012317425055855180770821242227565070103962395765297787852802808178073245786677743482957742995322749249012640720581141839697990129610996633577297596195022018417327942896503249689658519640669459622065048861379169904202451757787657068519268268815620859755947302651584177149282833921991739849143518736120012653888940688998919557189795538032459962527488121358090924052025751263502790685174225636911648407320765974419393615245974655370793118698112473423066712416527089098334342305560138957476228273292670165490667142618381964527312727729722483269416127579135166250840840218788571955650149769324262838923136605800525900548872486254333517555970977787294770777402524902995838513718998496840163769426601501075198313233782131292744206457376486528283314143898063750460156459269445910501928467614729596815564659913006592957206375124798961924885332949930716343653631549305259964127899794677806013786988999874781467262233528873396687060597355434982903315355191927286629220681567048361961023064990047049490425048969266572490837712941357401253497351205231440477622828219291899491615693908710994939287883834722523678336322783832123416011021589762939356400539097876469835627740760470135856120670814136421280486331760667785187478828215570745760402644565165143648256591924948452339800801363586269388846455947362517086192319619145100010965706388524121617668715472848305913017414528542892956521883498220057187685899818867734271447930807598710681079080417734585820297068518537354751450575922776572650924537343362468476990841128340209850203633710883730643031897909321136453175585985120517658312465766448949448106461024139313344874123077962901167093829764042510216805247681222730152911137532987423577328115607552981206529283312515344775680997788344243389112808960563130891660106631885765373829900406040942315524385073464689382946588580187192403313792846370471347911182032974519984482614225539995599921680956002649215112002084644268129503197913640501091497784343053162448296450147514579016733885394741572726083548673376149796481412753316943393535490179391174656572135589947937472543762031898282598463208243971332947340348331877663266059797983010013686401627055981229420009403785011627736367368604908604856459444695496239002863152488108022516914099586173007954700037244220869708665129556780254446844252490902362887523121265013624078814968140726893407654181799014836288973274811447293907281626937613587957000000852132227353213889986330869183916586309214981088387113608036402060617683975524248781166492296813129289539187508196858222130206313795490833033651456777593436218020922109823027695651345342002760914419663686755369479032019717863524998937183616805894630734608514047336355564918284281822791417908220758432314255492887829468469315907214188595117750688591678312027233593637055108525712508884428740491209861988851652000277585476967809292820825472438368897420238051316682440844139652750052612313877786989051066501024508128096268874059397914558576968480323604077757026378070662978792413881631622977950164320258420241622006663961278563673896552311680096614143174082893480262046056276445142199453258529878790962147377050058459771125548897744046426713357506196067917014398716125850212427954208848312605620203040016872945039882074589404843012074185951675338610158583773942320522687530237256224095255229821813487567996690196892175475950625029340624688108302965205524328153762896707027457756889952919541833857232941833637145838048309621296834744283312716898427524545717771446244702100695688576068177418270772262748632007438283317467702462044992856970006468226596892738197324541913689324070701676996126808129198512397894864366511981454334876125601086032928689805722803195866423448617430767236418053720957621534340036834321825022716397599600722377112257914235904331462774374279676328622375364582773258994702989507028013896983532752320300415832588882227968280950485948927273875764951559997956069457322482766640730263786610933957151147231711441783062313665765659280421170308789832543810516364791449520445806310512106341663118928808458794269750484128183822612131387146006656572413739940719498215720225325946038619813491373813651376381957949840691371023943369663614010673321042274195484814153318374784984058485587436524636623245958169726581912383262564233489730034618790979575583724197533493065056040738496581269252153362303973618809647658407218664256862634305338066201569985803280000022705621566838247364097193444988292117910235679890588257890955362892946671289172560651553606175836349826975591444659842000056242749193547128400434957607085789154558598050982433525201247634501405668682043493291532188315857145126337630013794630635936523001286672157032880028830052641795526792173398211974810420182675585860817224652409791972524313212763520833994278518413436160097844435363356053787559169292304938092602197749596850375265274220717279438719053814684675708869735249201169890446185548201932879536512501870942934757167997696058868781063961780702876898071696155456297633243135048019465233997299795700893586974153547259152260361607013742413555956909811145089585179220408496712694643375536139743903639306511372430095996917136374555371301898657520275017860263337942605135676240078456927208422019682251634873373217789348830551283708549479603689271005990389040473378873273112800912689471804630733573674345679589078621755437772199044898843905171419647132744516233728522452810646768566936128845563109462531655788615418168487157820827505409936751145390927610016384204283851797700542909564565804348755095124498669374178460033744169319898689551554394398131063279971937314469074863627456952352197184810462848719038958445013738682605981759801704042235035052764740969166910347635896317571406978999804298791920130041610972646259598406679221058795769512109208845478762493981354457569065705078465954214981223067857246062553564920047439292190625347636943599931299352669628694383020073563813104631725787857749887909811109285383695872898921072651130628637602354578587039262001859000100617865100408762066330025352302085162612033175392562698618371622244018349629976241290908328643111419034060255419479785425185074622709150626123680784261479202104103536192643841396275434524385393210036401988692578561515162635842409645923862872952462879994631714225312515145791109329036163903633067410186057342038037364595042044615072200076661791617120807044397911229085154735671497702689888606109063354492608930445381892530896537251035473925876315942575462695118633637976025810889696527172221119250497085632319920202153851657355142203131545057525321510592271898529673590591862224488759769844416880524909024893203962797093029541375949138233188401721276199477989104640086251319610482347425970791710329125909948408266406903165303394436854520554953477286560130872892060086230435611483111182082809650748102818284542123868444826217970871665752844101344073948250885489416632389682693352585045850962261405274096875863941204805130953861077084849867833745783023287576901709236996869207662646054298208605178801142887222484886775940340608100123758334491480189153113202516692789931746867194187520286438512084023385750040510817640621024695548475496088570155055223176779854905876356308622616288890980438098093293177947145810798593043970586688510732567572929686821092116086246728315660847531550686508572704616650395858926301289386314482705893946151889008765198545687942399582526074661043452700690257074889671365044922489810401371924610709791565865956346863073897135894034560019723538380496018067216444510484484214893335601596175386832525115241423786355922094405350779078898196216024367129860217336202854831358595009222482974309453201587487866505029501451240812944707893926648233833953969149433919435745123791626596198267931823250040772453736277123968572601850834602991644595911312888385466526226143083167271180226437331881367355692086452990957726340311704857230170927024021723570888885698167671966334418232836196825170743114073577024492642826053201430307677025102753936316864326095133427994566337596373380760408107436712545827394813780875422031087203043305709001104341963086092887274872878873214937242008010606594947086123212916535419534380112704978412979632463603669076146070791184011057299335254109742037539973194581462150167088461909226363030421715767597274831474146078038624174031895988831484190635131136412848066414932992643160616186649858973565699488695897875892151310005701103458530292800559826344728957563906396699399643220050451293864653408096993099563616475433754379949954011111302236525624012592740879261856885400304541067970010341665816953843785730888092643838005109367418048659948326960869010190115734182996833298485822336716501623211212607786815732960432405252442185372157538601100754081191052745235929750127086473762294593171061936590126781125020931634353825492802857397252755593937133128669118141056422453527519240187804615350811478305167718786625532381095759599016323619657024387185311140993980263002996214511817162900127987618542076569384232176796860317589827871529109896771328551931459342324047733975304461081234625611157443766352614902514114199361377279949530574363183114651202883943089849734049409405130657233946880988746939691849257948432701765723355758342694814080813564992037416390289844583903382882977773745680556364007472875224088218559921468729226949804356334925659712945800233945181350441246934543937469944752802704509326641693304474526929683502389755453221791206789973384596901489500349200364081341329079714810173922166934505831117210364656396852218312841937943795506835727299215310967978609141182956230542675251205463860222066304727919188405130301107200354874790948785496637003533049256747936952529104355066422140997120798836937717685496721569356595609208737884692929072861833834800962422362872104400934320857451445690329526995686294335080498758727456690830110409307409096378250245939439215973491105669423520671241648243386108746754659953704748574813484644806630794620035668495312913430267642624253206559073323969258802929778127753784062612088533687539528687045987031078447404053269187242557431767436684219026215654309006387397421538530426824696899039830549069094380008543442955952118828049325405265658025516910609543537812655607853049878804868682800055668264009665615167877494280765181284239455651841644099044317485178999280464053095516937504186859130848334189522912072127052685612324216160744235470228156056009839103095352551211168818096037376027650202346611711290439609721597105450005726833895330769256386713748813815032395629398973879001933127942973284593207880269396827238095938996008901889901360001300540779386604250860601857052353759623200754301003352906212359106075215972701284934377466816856671105437506924768713098163245320384950423595280922231603530544248489785077487164857922995913197611067595341134736327437282477095804068968532443731944660052578551992673667823793629581144674969859530882114005548219230864346086595333521635140544147037368390514592977849449541331213942203444185551426392646280088186913389513461128464501161663260869121164053835126044948584547626083463835789157751653629388662285118779330177265573526410583173322510327180621134285028356865202786354875796511706181416546117325674820430293552878456830744881315076372544858148951109600972645758717333561402861393702518530351530865418600307170269130122686049395743188733711142993170994619892004327060588683899782163298624614629143459350515640446743598213996459993379399474874340398380968116107358360586882878464922848779962130143189353995069789366421165429540401813852123204148991593059617223210720060782938057572208354786847108865193970057826859381120859443280493603136676237215773829095681072545050480222460971513689209337905017930421243917992612952074272343551137408579150489688750990601719084138685070471289764260161257234539819303987213579125806242262193228065128951669164055003679453398771493582200089760728322493714712720929688671750167884422340684346518927333903262005240974212492449067598722199469077267676114333420796981738524959143795260174470648880692429603189551651133647637005734001013528986630052682777379346041625199268900359221419298645467414479993289050708031793161137972113949322660966770912715923316330503241878495825716776561509181353858140056508263223755943382783138712093892133060424386840082214229081036005906975985518392130664792945407740768896008368241421540314648987283580166057580467352159081519837863949832250098066506323890154075476365432764311261946348699086617972387378082987308708346152489065768497698945932179951139311537246603618968781831978117578817246623196212810592429958230157586536546490289288542704596058357697624183882892670656469458755343491736290213115931412281996333001943292538578318816567458919296803041478844101778714092554126755269894286250651276958805307278343375238449596419375633147419322627128158958305923686403209590616904834216497194874154957932501056225921419805855118124384424176449810691827366593691079196058839948312416500423535800297042701099732642678861066248734130715073755800707594987712334773103273906121996037807184054829509042204426514552309046636452237298445262758375961792217070352704221116910926914397803059421099803966366285588082657792627150139185151187547014933189411776251825401697451618387312889209916657621800836665157563269587152480872329207614252145429278136898931851621845700586020325254561271493055555554090730242765124241125520572794863212504240338992205176105071809920238413108110142020810414391959250464878614596490823477985076627754914502163360338721194921006721442659474445504254174927284361798673557452641485464954231181776209890789443474496800588542691374588386758015036684378160880981053880599802908383184199849797996782490510680079073881331676359856081187200221692526780522595959227220653671420935534534156307068217330454724993994914634256367726541403297479575168161823400113333661796428590005618232955413565775643168263107050094928285173180335704128780223873601836478682463152642373563249985975004489820969462601421990683337033086871665206459344983703623549903329030672578856596985351175213473379999257241424675427306037161052167659670363820551923400858997261097353902790838421936194776540169442467184067496292513236480729938505944918577903341371724225815808638869665122450468007625179330628708486536658974594514254468226609699310595474369905198706719096571655955727396330191635372803065872381243470319400335867052160208039548349556295634934161772781262756497175972431202143113437516014305702046667554326973417535926530942199787320751108188670109234159188057247766744283046114454982250426005766294167988879701402508045524582901592017568491601492100064887608656696489986425575425530357208531220459302266046278197351940065054205128484907169640332594462606803034406976139064343463478752563550693791246655785965969372765699570989024872775449429559701850631703063010629080039288158173686283990388675492902890823894112260915459339425986706194269654289545247933134185535702154988332115084462367517439710693987083276431845362987825582393396088255911188436125866850355706584729782441915574267136769298324336813479766655847341658396875542431334546810004610848599944937730998230693863837448837417493519485763125938253236424616498860852739255604426740470274802933777758555199829715037353019512210348489424818053275206869523629283484548092121955764348152572203151499109174690281122415419082841782798043801966968598714780757331134602289735465505977111542066551799545198109030840395228424282493783536699669521301177138368196564056843181065987516808384177871788650460890160356702860163861726521100067079027730383493270882783827643779210390670471136031501649491358942956936446387201777755964006331405289576910665064272073631323121248689081619937427209592142555686036539931274207025850345955150394040191586291394836582576529371763326252110228078564122101167483972082873469026324181931223081279388768956229233970825655039567789198857521790488710198110945011641429549775717614937164884560917329126645397045208814664248182032650134126711949348414771676123975072809479155267055562028293055019855317672909822212997576110509748737650683454171106620496721735694925663420285952606955193041962709442767004436772292869064123004695533342322289552789220213915712026731127730953003225713987928863892846680815320591807562716196489869701343884825936046664290807151597477490102321317985945319811737465876534242754066072753578300563997150331707187054540711796010409470734384306461416093613334870839310245262138781941639843859759961900310240192848025455573896925360933490374015821396446439655482672741121808537245218928161895350422913157357112725347297616854363656130116728135127739218382759694291905206527918303409796745237007302366597156747969085763284265320826207240275423705790296333559251821476975877367548882801474328728629324039298284543825349212250805320570244294796942215990176583271781906241750953657818205973811137950150239583769586580280075502620635857853892312362829463773859413943651234594183007541357260833771653522857641317033358075786076479926557405469659326406094225450697936304028413285642842510997339755908830685917840571593657175517507731902021909608109737698627717877127113612878016208556747377242710600018740230146762887647544814393597395432497242760086960655916918607125562778174041995234167050491821064827489030481462419971080636262481068368133516025310812493011485529263315000986305158811047425404729968761613280685639445588053350912187735432732559861102314362701178461649569716137924553504750771790389381975828118986606503627252156365977887024941657925111329139456496373071483841600375342731522667268986892335377381385527156319958133235853023032927832605132001809947266831818187034727458095367047135283508707479854280168911580169093785471778477947341340707927644032896804773384368105018364420586436833372964454757828114479858803388561145070800157809440188869918622896084016584468527293495624540799758717511892108964438494002165313436070029706336064632521544771049097332096830559323246584006980538080119922626424915153202351329366007469437689601488628104908827948309615093591119106880451351070758045532257770765813928360656176798979106448415663591161407308711915757507107507887029407933361926186722185543139053711248974790891335739148148082423276385129411279702152446556857983887961724272850101557731519788076174860990929169454299198591404627107677255753428907119220869144279666579397076592357622295336386829724285039251561440414658168809173578190900372463905234367121353378853536000458526775094291721401184012187605544931966709904366903577777270689749764318850621596949342772971719516897985731229024005222868897171884694991995958330473007352407774552957609227880374296950099757783682465723918848361281991491401626492311899697172785139601301406379007061491393361800843597354310243832350156118670351100429526969384495718019000823515187321033568832222446234015653417845010722628103568897161027171909422290310531745529806815148401653928760898036289376383259443210283234932860000364651399704433899242939510174634878793317236344689946715434025286751434057238586107946784688082860925582022601176373242105120664887476872961995132635840647526579981847130309722055752931571137667069233275381980141059338730243221903876391742285399203390751788807813882085155876217253425601053070037148424358808147739862152235485983935774787455500142203704171134573398071869638107437414181712387010424678128072928162547675384499115809143591732824113356505014959529439781910447711474563554889459959031466261934819387306348117772014874312572989995585916214240103402074604679715564159746142422479477821106613582249509625795126785650501390585711186179318703431808264455797124335046959258808586884519394584157053975659200241768273090951543308689540196706776489339985936235820989676524268819725706579289554379060775635653876666864874003370196079368411506374809299952927806826824857900102061187753111994276243326251818784254570492165660301112406275774846138786631647599264390477006268925277368549139910078917726917839737087118465142966523699576274028951206415409512433873489202799433314301054437902686161163540243511928392622936934164922360499349269651612273985958546756166537975169104825526590630811251505311634792190337281170128948086808694524814561105387759977754249122113002614146170066238324384542723789428185774357623483095628945282659763430371040026683567127189845721389342586793455797944587627674762365478329248532888482718698043388416747243692575840519282594577770524562180723073716318258006667693417299831078561659863497025475559574919940217492789598922204187056875936673449042634579692903236114136938734703193548554630807377441650468791075839647454990371525433737607500318016705035338660744083022066392135056357063158342729267831030714470051498727113505425698046831641470086979963535897497798535342090599508571787074166155937498895081646304889476318368991074205837342824551671955046040711164315255560156430588782243458254124801507496215119921748346383505894882868681838283737762852527578124661731702937486297480677142431901496826250137073337185442607403457801988973532143200941698249797985123516930692798500034292640999298105616178633930991390240610252805810323425170578081060378642441731903583955801105309407761992974676559176269340048187278912933560665174879234764975974846610697581118831358375033638561710545916881627542480974395269280826234637094905390707058202242233260078516772522271696723168724549300431633392783930185471017540291411646563470836250178201838639701615461221397083768000507858597640404782736764476668115292259664950750677838539816574060210305425149336640936953194273095631853708471927698164485315895245371227712434185093526845776388018040530342753404895808230805076286912401540534098938848707873506149256542591524366234081642423293794258871606860204572229306285757587039169877165435007645853219556716466418220440244507807287010210971741532584155143074430172034393883089119228546524996480081017639356200336754087325848032266514723600670003092823545538263354313601724626262158694114807601471083921435957982002386754575336999665193587081358944250080703421815363648927945474099510893775099910138057794161570574544043018003328026310720931365811997671420196418524841700252093449673080355921659336219205137098351336435921461800399093398528601564753597705122058557820869423711302898826627662394226495113163070580575305636309707301839926112404934901554782427179696328710797372392276619814685429687072880101558218046535000347205751965859568288113520303570315944074605762302194198586797202651483353380960976833836450455493496048089457884955302493270330615970845023597760164208478271581423298487611504880955656794660614822732926928676189969942342920408808140789904403797052183884998145854785911346850179721858825803763626227359877447638479168463705013341970822716616586831239123819384231030544677778295179091732619699427121686520729309202082451097359305728764093692554605078383317050051384677386427448531429499929413653966946255121654630058508806193108970542851343894009589506931460684458229293510924751417129145633732246501400851364139118076313844394695804049602573465406154268529543173870245504867149614744087431502300993337862901137208369170847194226609275499526732825782324317033646244080685461702486831533231579445841825649254743292002500636172034752013993635913459753078236526063785185562996560211021158697291171979222982172820348004743500235192069811958879950338957114861732510189976798732602598597077435697698921691319519791808674275120946344741824471342670283415792290316660785946083714922947470953060710461459788707122197177712967778159055063783623113003652992921378686548723041191131172977778494667398645359088546584186583246695479489177822454418236819573646073597260300958315961822808743790477591766276975079675476739669173664216469673049844907260171040445109849563333614346328746416000592067149919785501572356564503712913369642158613195104454290186612200134056425955528544165257884235440412241597686920542989828547757694760452758669610964174756112349111915759369540835930195990109436893977376175918510701458595329904228103048944404456937463809776223727368739573287894390558472361059054798408301521709011097919712567150965823573430690291761501592970860551207893862403656364119449594813173835421039281363435625250097675081210089270868377373246619397952213079120594396387060547601406130223431426046229077857046711657204768171608428430754887563835586880975544638980270325662101777412272662841007995187346299782442442649854999547900022692837847887992232358583860661982690960568354504491601445885403229957220396221406549489823735085842369706315638258142332879308684573575476283367808849590589815827567609664987464264659020211867089316761225209003380865962184170334965045115117537990103580834112971685158450596125965010041679108580214560265416144588574710698674322339687803288930112940253039917358258889825576188079166739550436432530357814545154732907687396951187024247127744372106663697804191214937417274465144248278066994715697198098488978882707497493506129352631138149516798128779901322802195256783229010213536922684958818246869232404694555860826833366207420363768023604712163100006931286601245232293696177164010923489128187159876086922970227617606402934741255298698910814721938366756094224927850398813755732561887782591354794498427214030896170972027320217394382904435729055743128252891053417852785520022270135530285892705540281502788291190795604818581032842120767018322624041657231113538141663959114480883129267475935384247841206007675984367129775506849595611385785071536776110846442958213268024858681012349040057990938351773383293236092001963543462227818042635163398968799083274936862590787622296959437883117055567780469135886035989619730843964448495302751227149063666616335717909756115289349421599570823539201292202511864558744348591973485779691863643986997325578076389385878613976029647011904315258069047020499850505316999626265259401132202386937486026348269526131493623890458667678491828528733331262063766046277471830057466595618463664307797075680379696494525711810305529208522175064293824353671574981901700026077493955205836974090795982743343152233105292925656647894876845587055578442765239558017010920292495887026536298147688605259064298296306614267040885158150611428553184527501958090339263823604359413729756483269951035390459009074322647761038992660221316162978043795276054014146426329589913544101271977539725432566766018754083261062053734928808129734162827629780565728382126125241929312929341120391344995048562882589739732765879537977547898689781363769614079623738461022727325593475870473505657695870150940026682981765802320439767627047669489998976997869148445004214993628565518506642337703301920461559066444347133724861459711234177839658370453577482997914011424634024257636228197365461232351778072278973160056588210644447798842174076747881172844911017965017739932747959815902091269639994394344155411255406287918939939039215042932862434064715759296467519549726851835274632111027628540069292543526865172008199487593385675100451310668290883647128511544922764886012403676457367491913979451592878843648344778152637429210165031123008648651171947177737590825441516069737854571264361592134340501304973909079487720336210887893648541039444393929633873233167627118671012233715393522235013002841367476033383628744499199317437850172121816891688743135097434071170299935265773002477949318032895248396405095121961162744891227373638587887186800123709331417515488067242104511011914162381437387416305939741220261973544204191571082272741259542527487565204350001290032713336425613433022213935010397766409004657035864600284147014565279479722457540291780014619641167885092315135346673293831291965762966448857760668801725547846023937529414840415822626450748469745729966664214355166225563597531639797750204147023270460671476083061303657438360885221229642140665155786874109745818244152707586788401316748630853927009035644104608519703919388151107941628753743801247792375445491604172637375601640403667445893695049521981680256127350760404362020795805314073157611811873992214625068017975682978474710987432668559402768860548950585809508261995993623342807878084478208887147312253207668146869723960518627066683066325239416545823521363486709474446510518404272514940676390795940896372018233477585678356849279217194387651385137226545252422187138287233131009236321936111674379763261852869095926388924774457175755851646596855388957990777166600034497444495263589422814370086034679729828883523476454979635143711944480109475841055959867700507947415668600574142273792305318188019175824768159627332447186141313355958693289982605204431063534329503418252275440485459561265443069587871699253304296968695611553037447025898548520025809170378335861044267121587039316209116473152426516699743026806477304635029899801647667595020247110050739879876380215575459319636506608081580574266023290248223903895644758169056940916630251317340321583977061300715398489866432304189228136475754364545530442927110044704073439860435149379098754862079524122752114703895810465295370163361679332332720715823700174276997259390813692225882946113915552350595494498287532471536555820389239790108147677943522889025401679529762736141176060958092269657865841612666815722967512689385262603858502552231901033179010455529955311257616536933447453998940400533984902115312459972548404691064404605032227098844334156693027130953959411026044570114429145470467302591987094391560765036927263001252947797645363296957706398144369464025561964191290073487235475510968778838077655882258471969212220908974732647945922763990619899826799571988382920254554693355787182071002311653478681137074221194780880866597335312052316588052676776628160235657225873970917435753799668969509847820216684557699677391570373251116909833554858102063334652123912054524250295792152313738825517590770377984881544297655602604885021932626550331844715732461579300366473027453123768923804804910462840119979475286647321018527119244065180617085128331097579717463533247953742402707633565388972428730192699201809469984913701832245209189200981086416619776494031894819292297549022066622265818035820261344459429493318009832119673605710139613617911099431168071754077631373124854519232679997449896280182328284950489001116286550600141729373079444619185418063270083373466001172241113467691558405051985540364403959173070888707574015401554426227782285987971746574931276100946064798595404386342503462533150504073866218461578672960348363127024842974480117107517004057015613633802299484210760630934608055699173848999118989361527438846283736555251332573693898735443799055484669355111075619033061082024703216580981948234445723063401208857808800767360574910204246193330987991687849044055567768016670699271928168306910004146831290137146205205567224502746348701785171019999323244023094020364497328512478974480752540015125700185941187120359461281903533334296517560126981442003147504759286410383937357136360238658152773596450610366043965593288484941541122905397043354464261862109379098053821556828977102883923334084797791365696518132798048435297466690464007091426838759102791064811928283018385741106170818682708237185306516798719163095095027838507459659132658185190329909355590800361543948741945788543235548259713705126792386648673217778052719557414689790527076882851452321862858073710864047415878501909153999976380942643024406947871714430606188153860821020507663018875143053511571958375010305150899636388542985543020031500514556720725222155640328797975690967927518563917000034438335043485093455330822022782841725673615340260728378045916502801320551354753112404205084672770608922458385744794486894814013914686349448586383951137574645683256513622197784659592008810380834837704781238633359174216130827248612660405698226317151346777106473034550223575626359084541046469221207800384977031773848106834461649359505184763317047749139605367010646715545361561328855535514204125015818116458036202031921725668721370740474120602032191440155526356501960999686124686238368511987584702291383591455352489310081479193378647327558002765051744220526786918555750738240854916319182815632775466786667330073752865153186446528652234529110210113065711842867660386389827912469815925110471148223834787923888570815806739901746880262544980093469384009953775389702876548878094326874578991726777731052858286022610486960200581055143359437051679999117730017611375345737581750267088963097344728389968710158641479141264192436081375528127764636528939224740751074114942467334495152172760945461128325907094271574015911209272103877835676794495370082895206211969288540312066620002782625435582552903104196616368897135432070432810541245652957561672866094960843081855267213875854332879222710650119692486775109084165867581569705237012884544100320453722540803945736048206512622660993307877907456924183260885597702324970271342956506080897979918453435686934467090054171563119207978496713885144208464496468878192496929594116627243058480730223428983630718507539233946501670822324940905093373409968893572671469413712190030681634025335638389096015648312777616230740320413342381220199230612378277160516061896107054368769903888379936338906013104936565888349910661457092466528510295960886578857536708707314786964580530538787220935904163100147289714862480055461856762693842500662155654904031083583771743685351953831517924853138131214070908115490130410987106618156827613327116980320707350900520408817202203081678909604845572685850591543432778677261220731574618953018962840280704288885368778301000292417435589060007724697692790950730319888981853467408294408810845236059988816458599058253272431801011971543407205611917831877402431985037551291511656953037571847402685694748564618499193836346204288098303004183541803596208133812826166029738354147986129394164767226518339615898348602703339562705815321514395931005801304293474314837998349961841510238195945388058049019321705810604078753936352406011743703618476849077364010277013915045685737216245683500534841929607885128406412723989106920358345403965077808141907753228598757258700700321233608120409523827902095285966425436646232208240365335139467282293524947296317222817096764184856693492365400107588893893705045469297809868249544594705497908578279763637214030312410113768597653318021734940697597784627920812234578046288413915313825142617276400182749815085164309362801251875873189632021960252572596629081330767960562855945802612713923551608485419129628718867908907519488862776408374353934109043975396845132902449095725046224129480478210574454382926161364445946622489112226034399338551081419949905842544645522430885282464535956479244809351200316212054317960984555947679095543225513010368416036814262564877963312558341472330219265154967556181241385584949506122799710392385130619516411276359705188111978259778955893985492603711037001238276295583135217628329340415531423126650893874064948860827871684142354934198013778853410282171299768712960371730518712323655730552014308029449357646682698392344408874601908542487752362376085711780163779574023286221051963261575884886259690539141452796404734195648403002814938494478871843713322444927215325834431603387109519432524882739853747422771508181161147889338546931587064097337062310919063844427266156414350060259781272616918371137250840941387428707519826551613789719518097012458761544492727119792751436731542440916283099902258225049061972363430754290908918648025117246625376747170820865364721487361670422321727199924704553174247246399729948180070701259821851895525064342056614081297150777229707701756500090644800162431488331027648310699591688704036429516919150576496438528852462141644462102786948956727313944047978380317321713596508065512924720209183877773496764881054640008860490307923308434992823521411676867342724688529278138119499837035914446490944894943119170056390138264760219312087644680080140166306420304642521602902813038897235854532158574593289313241561379328674102729822823962285541454419411502879121206976860554635964586402459325205390062764384505776415966571071275869615227764945772389818685205466656344087239275148004930332300527265510809446720367608003013545369415705794242272472726330675379831034981435742010106041165571860018860504921111462335006718400882638588084536344115654638092346549230554392813474556505371907317051227315687609623213471460417206259560797098483448806576724927220141523219216141525661272509578737613840890234132608383276096930910871822029754343204901504080708339743451019980078371009066065357611082800335014917181916971325909307450102222342078142722653781286534598724546751113447634799136212273095041315684764500520938557954263263206302183983052749662991622244061112688788764049732844581725792662047418267096475382292080308284826150606555692542421764050115811123437107039090839849895863077863475526343022086666788406216335373901793916454612552543655168460708949559031853509572762829273368742609854135335805396579267146214573588225466121700943413905746651686720696613690303848145986423266743518191071200456622846168314794224942638346610812626184717478912592710044773223079476926531738743300131196009050944695570742115952294949969057961891182777707469935698510652567774686711251792456180759166038292464771400725009037036257973478891722773716192084930236437880207998242732619543783066026999383787867508337727759913886816156952625359884602372018725163461957462610869914660752170924508468400130023863272592394400812827887166173819099478549693407587647930441454345523615204095901560599814815212972607479289467565485413128566181558620106854195151026420899169909925823282116355446874782675704739060492033416094554204393576394207878037737055389000563641925310815047906720869721208434741130256749514173896217021762635130756636662348103773783685421330591245988493162026577251354634378398855908892282875495961927481347922630868645203548389579227194353545158452409663194106309821932142871923365665851962569183340428411811869982681546842270087184576025719225715991014282486404461137113636518478948670075144165150993416721201380278173668348563751461394066013779876446697739830294024042525804406321442667974819020738412917241801263151158936053534434230981556666472392554093776440302210031599068137732463591585557145872475794869177493267848081335573159899462790416922246255256114463385928725253999920469520946070668776193659792271486597055008126706236004267233008268333451985547433075520954308420450291108044861966580025216898977191327216443560900560474234960095269611713459413758572686322366850577614054202731942567040942487199618457428123289662577047814754542515825449514589043409204773182138346906014881102083213858355568965718221482380604639687851511280632041092390121945119268051867969042586710711281948608027019364458271256605834227356673693084529284075282726864259606984368368150189259399295025217633459223974446926149063020025818483307742972513916112066578329572340529241270901842431816773648894539489315021063154722485361690808431569247388106548678192183562060501271922393354099553522274393600094398735078889224730135927173269227293058362427626165397879125949106236163513471522519022564557735549836648930356507589292113504924759885332164580738904764212654113502194469132555043286810407838926372928085020818245986489785266412113166116954821204007115965640457829330009828209433039788184533547583501008226218551061284045563870569574237293025864379027579694456599056415529361827344735034513037349940245967474599610611039437681027253659301682080997101262227603320953413745282056640911262814861822847798866171627862984680802187299912483958905980743135759793153769830343540150974594904625357345725673223523226347874796224134071630292754345687215704052788018714011668214201407860571899109616027898095554662218025804216070987917725933602031628413969339851242527439500920483751866783694648947239659972704933202390918024512207945578306128210553197329370542699459982578659977642287564506674264414061794038242832857122218503859113262325519456102201483559027625716665881300420394447672762528738233092712743658123108962470449273638160127778707240309698070733201571668860298695439547170481352378810243954905044408406249825780766751654280829179649509474801246512129616696636890347864250909186067234544439645625574929354989296625864466233245322283359532689513090755439416549589400398778448167893140665264504246332338243420112920385069746139534061706251959863531545571231079770409625779452760650754345258110258566574639780249485489600672110933389983242307327404781434164938752388712846788605919163329359204381280829212725183737809664265515763810868859751782692251677140484172462224476987342875629083799423249919163932125372964081959533839103301646810518255635811956501212720963648043731861985241747633315749089167840987796961370095112297109208706992193303168221695701902853699791964237736033913048948723186699154250922837347820892767990906898573438337315731421057073911254630644434112305618400720495888472600493100715549679809060801831832933012908578910237725025757702669401085741720145472344661368921259271690838938354869975889126825583915442337192321528750427826341666115219350728992158334540058083692782980840326820163449876440722949202287367051433395330026297986783956464910283426962407448131142802929673963265768860802626460787498081707151872293899489340340468121877038273267433915998250141459659680409942440633200886463928079433473698585735761232808469068216709691164467427394456970886323702968039680548587764677012964597000413323697179768505656389031347227317763593345528089915721935594084692825158538236709103014497221661782043426734243574933864831557264585662535160888202691015819259037062331752191660504211180872089991190774738441285349982717184565765538664071179092386152487839108506192527920929918442477623899042363653463368085708063516901159373807812806782220600430729671000010136715603158093633304150736804966968673551048013569427280955095160379042559174424033971549203359810067940301376023684179182375332857001360096258443339656362191235467273048499801602701267691190259741605914671535883534052638142889322016051530916377317833418272196531244178909511939957364370464944278417059471912267856905272192092522135253060741605338825666921150306177401742615053973585113101274077470403911125292394078207345467057003223449574326136037808913710571787003487595190481295154964102114322678617434898641056006712981253480153336078888466801262055475463173468752296106514836891617787634000217568561062623774528085870557521488482601913653886483771209209421373608433378684308064138894065306521968401578899738323657204061223954157690092372523381050885835575075674062174445953657547757897437965189227219093043499494382072879246532644153020634779326196940105745256009442144076748470728067815812499320708784479161756161935161324535838487262227974055493567740848396940020916794253334732015101274414396341467432651557724008512412698460261635519652856909428056063138266417537448587421939769431296991286176515847598515903770157766904428578832859228035069069593931702702844095369871799678954387002039534312372496838460015369839231236161378666653698808333777751697296700709318186885213639115149477225354706002697663527025329312710902158026467995097154307155890144545147757059837375123540694133843118797159888284371329440386675604555006826729669478406466278504183213434333437138579714159752799306705152974388432554982313184784247329052808894802065280755845972907287375781160689593255503593192385202115602831172963088890351264866712217671385842747234160594477964109811935213605616906413749460673155778375200381036419261479499646237107626538897828433536000161305677446675752770110602655800275540453021247683833572429247274901277433751880019569394427128573656668371620611427133515514813630289477551538795072401286779186417829273795260821199187330258135373614518283277926413312559237331112997340032709861048751829418708976840777019839614091726713639523998522028819106522075485478607898858767919544684433463905479351895622347577401915862221164119650655538575305361823823638488312701835773026541980342473050420708156357691541973151588857866534842695353971848663484505637167651636904492104512076893386794213014902954819714584148338330236939348115611377223458436819309086508983734909498877633504050083136645697445503567075774110441421894908463468127604636841465850065603961040771584199480400275090015058225677392015999730062683366090636013868733026116668320492863154160968329741764007923011833925217169954345475871440329963097029918186933637034512897243651811758391716069189574098886107961302890999623585255772336372289745368128125055733617202718738349424061353972774410839971752104364295807178041096628507333172362605262425471347982167767240008659850684727041167391355865595956258988998309502457943461560408136182642936114886542695059162506542671314955575446339763927519111004855559632510949850623125225134949339371997482713330113503062786507226516173040308679015924264121535594121236341431259180310562683401577066657379028822472225346582126866889659076870230185383777859243298949241580036324294918683221220668462477880018120515088557623079394439414479938849652622130063965609562409621909108679684955160835260260533309317254098931109922732300941451298399370862028397531356769326864423004474724764002132883173060336736923684927023366245951140617765622572336659605411342474095924618561216361910437872342324441759156107554750596121559144307255784160555451578040993477683769942587402828149519225030281033635819896127667417953123965790416547108836133437976073706590965237633549822589141029047624123039404289510132136195103438381952588160833907657467272871052913207502527592006610344690228779453251880366844422386753672758262981534313096443543693344251482794752352122078587065231038010473518134967465570171936050793546639544340415525156386152862158201528333625506190966202189930571636006886172008109305142329363288834177126172548104397109860925436581686085437022246714389487193308664505733519571234945067354757015011445584820636933120591050073622874860107655906648863729425855220136453792924722710784393005371943483714298251684174790438375290225818374403992542740579270630498251050430996821348881968841707430672426645235049702386940397056284742018631009142718621340432427024054758244165711889437773170758970984983559881482825812159130446671652106535099979864028912229457211777349532387917069094832255745703673730716538262246021388664663322593290566676853764213213094762125414773326945535643061653109959212661497442076290494143479990598059353241573051844995677820644823803707173604532933618605154358406942534419216729046595869478167584244251129703359884352600991380880016133049642333471761081311838198619544746800090186113918688604403966920260767623504770345632848244514055591771211641892645308675637511253913626218950777239502823112494900654324684167689203110590427377956648044566138618394327530911787102443126268420223354429510925826565232952866792247450705549029584787726061076744548034397499419116176656902548914013668074914321895852527496358053534274622811910952144182441659753091063467559627701278684634879886875871187029835450884583610778608725428513351990786016357124070533114375772990521978949280719640618555944708352643558633843810773263479572771024108398269581476700772633994937712990756926886203132217877958685527317876179006200072593740258663669210526035704812166023537543954703419899853942486874266585692832193376597764569740247021732384792960906183433399659614796937571500002682076227475154527445210296746302397411783569948078454933227859157984855083867503271387154017072819954732938051346759219244369319130758395751446190930884570914645594715146431201580161225928304625039384164101715495181190208067271871948382670393650919072629897534499001623487324074217377127065367441015358946984834302406392363095947476187611632492719175502680103594501698557527213874946308940827858353848619792136112721963547115210961355089053588426330239049192157885247735907986841445500769740154538554114355332164413342867504191268386352901690491546179034810974161587518584166217546820060008555668428404159390342037637309568049688484585357963208191642517067690359094856828862520115077255054058973819940419640794088400321117964782086729526421090948523155510621462603670640386981779689291474814378840257142244044743882677966457465685328447479539168877711786365074631952208958441627136350474108496789102541066583606089501409900695008212695577142926926735072737085413818152987721620373730904115167498775981553075707621718030757896004256720330742452176789824118259190790318763819081484364834651343877578918016483015363997673464850825629536285428551023686814518231681075839531241164291635194446327599937425573901161695906523230801111974897385909354456945290804084591357112283681715354446811429269795599242005721858627660762286672129123972175460198330388922070103244465000994226009991372747120900891230950464271434025637526400306867011313477118874879153869946969160198942832104464948531608006890698974352937318966674689683892122257767145868351179290023006552877777339608927401354477262340080442965293874975798677854214381134058408584628987958996367481481071125072200605423868215027354105794050078514812924104921491708481323102961469735335524981149771961307318753897334217111000348740586112740106800211714742814976531089716471698164087999496188970710039866042060713762386238706861188185587741821993440653833098460022609468160768635173145240357163152617608504109159775169469771456345995592103063931838239378744991260118931534675984808438919583908072614465878239514105171813523127839462598335267372318515379069033196065699902215792165555947179257396612778433063969706431734186033603916408641127647557198977763685342383965113273501530232722003135726284276892902358315479794784298996083534792080686985512056948600808271900825095406423684803994471248187235406277622302099205379532329426846046915263365145205557647534982638126271137200309663065211560640490585366373787969583179092715295591488255336298653709032963899664598192449064281494401244791796936214226004055697850632495408419784397848589743079181054927334964808810691339738361370452324680834273812383316242204674547881788553840823649735377504563838362299822177335785036732034401536854245024557078428831192842661177050570224771531460568599216280739864701498233259443536033440113608373529353774825323304393858296589252788473869176302177791336079070024310592580809424789319260235489165296144369124659430986130621240204050199620164136669432791335041946679818634430410197365691139784243104416866595810877381682424423103232805347522938668063997012062904904078635441046954811423539505439953412072872853338773509974373925949580526895872426645045391594140551173716369404334281133418710489816669579233811442356917527268607334418273504194247118614072392779794705331283069832365014778899162538692317470520945397909657638370347397063853696899494272744630939434794789369963486596464650820341667889734268127073820941317392148995518555812500159327219074319457753220185186731654853653791427566645497914418795925570911946716914087193344718868566437020719592513007448565389562501300608760127577721786159556474897857982234933574574444514970566920824170694506846126878187686687978172407807932686370157382626988538752466912389317765050622967830190403507757857554327164797832742601187729853788577123609193086865642485312261525590978181890222026056282277920149368821195930085371748775522917926934759699807244110759016163574952254155436005542437502542426854839143236219907952858415405736686176385114557332842009927927569210237329163176547050891495479009776648908984245479649719642863969496731593366747911176830784900502523817527985866206042062630918736610843098739270504393613376159097979407275623161513103360597120670605138591679054154452248757275393754467652252570930467314985778465950012906532246766397695322689431923177111943261923264549905628135112415541754268562009867400229942510596278818181597395406494593699710949754538640754783618063163599380783604193029715009205177888980188414469138471697129731935315838738533288838875728306485820994550548014766069685942024379527031872120083988781193257094111605879611648352088069440246523834583840015468650529607384690191399094675831549066886441139862681865443068699616121637883208719202769034857384817789643486902403229021324071929722680466419165343974416602036898297564815282002558742652329996535661219861291301659834507785556395823679261089533631329869882352461739531949233662232749520477121019704879099596551007390388647841496751720234028575514713187139486992462853777212348290169262061243124214965569487414756338559162108326801172892571305951231512021349394641137143196563642943605283447437997570411554557766504414519088604379150053896094669932922706228354479244845383092574414332292994185330101277397316722431209988193200973906973817362019708082455560851438873741342308632452592551408013460194744324597493822078810399316697611186294188642592487004080213436044833909656893051146524920567150218519580307284913171741218113299029976634767056070997890206716016679771377514713454557146205774593541171294435471667053553212003670037521387314919397356375875647258420734949641206222014991639793296737735476675464635546038615380829337349398065217946207375604010154819350590748398239726927634242037173474691614401775654773034130453599119503815821384136111019782847527973970374022089650055968926504220711191700530763543384946005383922342000688602755063798589045300119418681666935146923752004831608213040945572823880963658634635941069212161279609709953947550318554954180822012084888247316395120840107391180744501791801054334069394844480965419034158995588314997789460562003527217319277590323371967136786041698530264483551574400921251108921579767876356996362713517262933755135301764354924452507436359535792011103264476947472621775825588890595146874060507859301611676334719149719512641886048288261807888574207297456162776505223740975913126029602677302232857994038840453435293777192242992838005614522069402546473749882781606183395396649166137477174751965089435514778450431882326168496381675010726337556378899181310017348551647343678978832119697276582378174693509142298572441052841188749210723334921196718220459633463076512991253230748795549723163405240797511937050747059721158327026897132811575428717510654639258814899851343627935412764867643020779692806646200987663169871547923419799916973979160840764230617947030437530574210647435844243854571861658504830257409416127434876996301336107808187570346750192259959291711999410192461584279921040197028644446030615929658846315472907713239970682419835557787601113270654577835956948719548441825064042369941519968151801190900482105767958767361976829652821710135737043675681405384938840939108521420277900311076925337050274026154308079913451879236220168328160734040772508336804083114421845847334099445389807880689359289112687103376692980434136106529126639258197203957712000548019247742878356778712163750087254517966256746647433921935310685409734576598944833596319667963186128763867244546431267920314719246366252568658359285829939418668278884041612348578177844140748463291555353702547675818438918136653256557820464768555240316932983265927790980213712894806445394088522865271286420766192080779998011402503628946660317355556966774001384992896462117587909056065797159460525445722821060517214456091830473060199631127612784511816912294552802774414530029937087934095957819965190101152464506717903587971564625434212245351094409424233309730919672080415344406955721584604004258721699735686752076797482692367688860522439982284623630094983756919766448007876576752347745031171380876337695259965326977168300619156658401992346696121402895096296133841083084128084638714712385841390275390660898131325824557501463403489994593611924937056953977353850504342859502537673113861362354173277409643570658800659326843963870202487701342873143738006919308301115489369063694617704585854938075551511289972277279020930781592704804185046446812212246451320052092824571978306293833467972936301268394835088475141224663619191921416930786096665783151331341478622383867034447078801923819916192732741645065715083218650606327530849759449394029534336970030611673930444274566149800264995015230060441452243435098735911506823679210888814973219823630227964009314825907826873524832627729852477829803777298915556837711171921439165452257054645317608191057291356234347467731348953671115538371656935869045535814350355379157322273486659413922745107716944902879776921528808959185739652003476971238000218206865161140988593761616123025449871188036420745717649305054583654433582095071155727688875403471768848266320025830451683507902186211112482296393803397124140863821968292784746821156657813472176161838290308001561206305197647251709792482855446632729193013107652284707823238330925195363282329090938282924446521522654678776883809869947176891121491351626136924482278232938066539329964914290092990149299027347970173607165942565452273821029462405283403319753902262826911549765360066843202278733722772060196246332866269846516069441417586154559409682301160553111221652334275215443798463027816932165838036615384286704150530789233663285708941192461803057150920688366598258489036707068815223504694930875381793521738115926790152072498121472661124049825019640007612142389639796812773728289534664778358733832720153519506396799716374959150282761434576109388650897760898840826455109403491639124563968259330125634945293636507280989367957675695991600610875058913761964132342063646479791935505305418941323320703125759231139329097932977136135087335944855240647808095314784350355222558880165396510915827311604794818037179210911397426391112583650478946734934417711984764856593638604706915518809874110128041341105068668491466254713585623733947621326189948637412681359794706801964954788322045783751580781586482348044839651902641842247319840657139003476648408398900288086326362662737933015158976848854948220712194981076560186764768155421674055210352087664089729754751654497903843907717717371912955476716967084863765933813367730236959122915366805112096883034430649948673027425922614761001852050074452391097595330670546858881618440407092755454625654471804565305656210308187544018172838349376901675463469254441922706265829050117032639699792614459083519792336672779353778461364519257995343871086060296367943056829362718638211256084845333198187422315948946989659597588490356310810079961329575352202525108707535848689419942650310678820800295927490488288362315595454815579523179423602161125668302110314959001019081272670143688917011249018170381727950664672005692096782024316674749528361001626558773999348503370493656615074232908807862487381506771353646941626924785294139194825077256761723227089527631659079622901973348525456453938077808691719834090121892282025522814098689043348669402576173189960395168383664959577122591205228063028816169014921317123720498630839881541476318827532996311533664581824566068966369844297248882058828293682459942450497013945427798810136412815630286103358451383264309396165649845164110373075394569373338745658681074278288782154912791563086661210904996235996743456702683711922565000871144154474451130030924231581063610298873456503298376765049459887583461113269164453831301380271264354135079105664031941404049946769964228206874657065673387687761927353995189251253204049363530087995041002226789075616115966982457196726994763788966473916830292854501243173069316198221340860941683940968643880929827748449619397771431767001872798289660130997246446309241199253889516844215577487082839291746079907039990850964023197493245838422331577953822115484896531847193827363946359187397535893096451537138225968709119942505973571295738971479708422369566527487720372706158751325877376046199702256892456301666788421667780058520369804939421288925320038484722039243235257976321944863940209282015589885459700946147095477530551495064552886899719163824812227420057093207345469336344961941986522084663130222119857110178467315631937283607805804988155850471024420825127679756418838866708221050041357033754112348091089747502351032462731942892561782585504874764659773294292158475290462813655604662838765878883757045110709031468280451001460800060231282328332655019872370595869954295838578893016593077373747736993652001274661765635929525209498818400422334482969608406066163987406244226776514757014020823645668796956963789225059185783331163692230763702846765349165484164092611904134266465232858909600531393468923584143539890582480659228101087971730411544640728673967956953286261716728299655964061430984094228490380293307374286348033944181800564560557822630236016036679052311979608309733470207706582188241884201256335032128347255601235323270164437898575658480641386621204746787687871804352066166353519491559289646791118874292403053279897890173500268146664772206710844837187431041066984193544143240091210654115865427343807434199871708983503907061648553561858656759114500686454572728372442304035773876466069963666971290096291274811544534561141476234431706311390981021655099339275740307375070304087214386110970729500386344026635701101530583429136974954027411591901521670559800385705466523343137468655852095382591972333731778328733457685577126652858532753823397112722030071943547676478309710843043617148925339093849129647046148173559524361761970277777564831780900420181387180749650909487478237476567034778395722088908260681514386090245536578209092442979674708044448396137476464521935692184949466377497952318309221073415776238334771853878246002475339063691123391483116725469386761751199573957112174399987876614433093520984429752218025812800201814112633860705119575392290821353044304981990296155874798688661782777959056337603219991010022011682310981030985824859248840681280055637169360006375805330996185997801374954028610900485239898193690336228950420171055461051517478522942703464050766494085784668966513632415438068787117982376777662819992553743465933977477560155771768985808213873483874161037477471348447060850382930895928704157026661493589838805075044089457730503160165823437102963118016465516695152570706278397572492703396341383453732595258489463216269093327919512407583842600492513781010312126892656837798971581614608127297177930776922735709967397594556838849409817933263772275571341496924666463181507424593547484102055220805836813164429673859068622462098250264492336353425872898111381593115613904762266618030210629483365448031005864111062308388817584568831022060878147836153649159259034379996510227963153081640784399018844441609516154947403354311035601633325479077980060598069249776843280066944891067038683840984645522928205420646056364176473058943398416302382225233986792909601288168672846814938549404955455610665355740456278765104582623035331065077456111852842314650373859462602220768409370334724985399808359649197474952097887157755102583209300167366827190587092806917845572578982032201536751146258925629285786469811050386252159907203280180916073297781131445765885375396272696971582067855412629514624778252641710719598162881670241625623158270478072900254142177361926938159882450334082950614366106851643720110680728905690188617570287912385226856781485304193881799333192385085703118217681318479752812907627410776262525510498439795399007523001797335668159204655355434678187983258977513582432808099038874761112849830815176871360986370946274566069341665109556126737677344845893900010884332056909240291547734068648564855791326409502220237937677562776529173872728179116457872088482633010365245555325803060967910657396972541889188234767658042366652825715578301661232191696400276964958390786075308932255570033477916454750843332775141094721011154552711154699707727998735467501302651821772001097000406626808014755531957666997788149900983100584016032386924660848426908311487005748444606632997272448464376670374686652170274841148062556559493910915945888768966342618514995356916682681918694221791932406659397386857194032220907642329102581202820305851943389079558916802281946274414005409540270577161545771915361341890013429793999457644468029946608471400749293078312712151711884963053730125615820225928531548897111337370960507211704310105538317869098181266812352797106562236993927299844132105276220601633909307076141556685734891502198046611470784398874816487412068325500780964786365975063270647465150305001342469925979347514374249675497262365796667505999170355675835910674066447130828000563127186403085268258097357863071164394503437784402912406949068335230038873869844298128529592881081383258180787466087372052423424413775708398228048630004441599793287533123049049519450791786010117016461562571612499110082758208951547115087225261559061945815811888642144661327791982955425888535712717278924797964607821016356968481854437786737703038739624719957118519372628510688807047380565129088978975326292414152765413644285464811415946993333240102382645047217747640867923277263508481796918952310361961078479022251337700504794377387564553056824282176510230595766752600719285023917421039757038140782636384855488475041803599057046079982271226063955323631851148269444646151868285958876148896260079010257664046003868946124492180600583175258214296051326963323708026281300195658622412966006907843859059915892446274766202442982817338079593376931960541562457641437355350473710862468794769463783443243788128233208221679785964001248909874385392698578226401017053621910341227244229923704912890732442691614624140552162555738424752485222001458733177926829151802488485781575401242186330533448717730208813576367438592229670705028064608550573717542380078082383683250053811084855730129970899017706054958164002511661256966137529656781323914163819808398241698921321543657730045780844727490050431835428710977581002456241025147741762730397078017288638737431019456319220909887800296960353106446210217320844733673270402814322532762011870947074429383077063628436093319562868643846230035455783693186329012668394983457871433188639240638262990187011091396612529785258884280192432259610410542197944844066170817219297135042073212090042072654202452553530230867108253809292538441267401936365207962729678778167608556808367551120724164626549779315625965639849890369805077966032461944477626928566241262884858554412109558677945965487794377153190184562029154056604850663208699166806430973325245442790704870593274644207969960527587513851180200005763750132704964194875779804112111267105879906666356724022725165500607490194847544953037025447523640417590461278891104072657157748027281394574865767943973481842951493845287362080512204428960493898447922022406052747667680224677691315792731083753281925640578030994735753629268678000792950201984250516035855693043939363416832603577185674948474220022639628702184710902801656773841526513292681549489336457204961688533653022344674553979192238977325190745570157918168230354655975781518749922198225696205367692189558715935032131807057687483026444813932304739263510357611075584350383119095196761622080282733182580800773777093012850248600298422054791981786669152694720260257854412024143843274404103318223988197423032219075633217319206560212190944263447721538207373334370958904147536520233596754264339627136599786273350130141592895226960902486230309755441511232168502445404025676017740447431620387155399461946308530056821781070631542785821470961690879289205339438629314562873390921836367311880514801082189460507782627174881894458160907880655549156701694309211739792059671806225214090803178154625326935258866217438797597375265853164146907014654248305915112457367627331464965550121215777532790254988982616394436855462128313563962893854316582311973088186728690360871400515361496755612041357002496154277120299753312970120300087068263345538604358211467056760876457775401831159716699749195818165014369832759425054786871002846402041085555530230642627035607144550178973175430970338209085738074661448256649588327157341215331355823320713178039459567672558241608621339704340076141325208610922970738851617500989482716596907878268019816005048037089349059634247895976183192042830920214077195252216544371700146833325468763857220701835724818511056357088871355225231957954843274113687160575916435085688826700227771823608501555210172165372719786136399652451575004529501403289216316920848841440513842536779669652871700844207051216554052136606275098647651555495121707825791587594625232338347908122636422199437590143316578483047741037593660001754999126035065293532904135616772095021069759059103665656252866289724126348760259198228529830759456854464073226665307396330186340713391120968339823585536573914858630164379604883723432994339093526261494537442820647013988986844992728138157891195437942345913692358408037496028550040412966344125137268478541222992555127068133751256637180447578068690852804260404978616610959049066711788278206416303322950757267019408614032656755719037763136264402090867872971878931447933853365518354681895614154000319403839375637914636630805023283665155776873202914279659331387216261127197187995388239561941737791921833348328029510827648612356990714999565401943316404979862497225869068199499886487596210147142389518570418973438291200620913228707721679293166232315190350897445192304353868221538951665376620199958396793029220745391669142043732430444554092802466397689061990619241329388369209616238118584823717795252484552666802932979634532020648505308926191095737428721138592745885144765215956607701522708850646945254523178280798541126869854490911607137526559769943244686717715905862422285640141895593490262867600876860012552385866951072528619025958523268646148150106620121312044226797896052724959945572128318073223126035775746719029563548794921925365573071631491811784604686240918299409502882689654789286051730694118354202516913594071261472799797679180957940955813096629748433765608827890002323285281944817019181962966880560763415828291211805744157049723249272208384895699192454839112383843959061195255325043247221087293090453841188309630625868475826348052401101538188531417856285664513739584467932222530134306939408536529221948280501845899787388681023047135631084392790164931456584995209025001573899201556153525966499860114727773507266649930556945671987770212219793468145423868760695673773349116521024912670122291005503596737382842795399664181374977584882675278626607681595900401017465272801681328032690220887307011245125059656510789478886409667724455564128812401518120530502501410190939784252540506014736161923353102186832022458117184977725330641728082608603331791280296029375835329708454018507984500371435641971156323764265206104443580316858388047297779757544854799239241110371213561846508131550224165700577104835269600241846933658395231932892144673598012142112038181098429897910287669905795507681256912536488479086455120455566059930776378517373256947681945082998349830630643679719226543730401576746573064878353270156983707627401772332540543870696586426173273434494210478356858741147185624036492384167931540980556403557050937908937197441482992646771856908666655832990763155427278178084741473758233642614452624605230186107217884151857847123372577317876453029104491186382730214737179077912518928909499089259369362230948368882709989246102076069230347864254514769585377118601961387731869252548498123841958822814084937921805359929451197778721081050416791698991669409558377265437650559907736562866106021337306821181297988519168066110284597729794543768505769012778175868104815214014136966866292085737300168271283474453611580828492375454722832896901709244526120403775070334371179077588185981155371780031033337486777734487036656975803166491383507094711576449177757624121642863189733223086922708866322409179184724205481763292958646501974001673519175342501892164456252325113295963492701265053546130803454232299133802593652293877958042764903564551092614348846471367446447138122170424889076870888754278695159298699555463306543263041746667440924245838729043874240975506825794190741557484954838529267455107794993761079796860973853484146666935129471688469590785110107482977603967281334978966591975177233124835859782478811447209779869333714352373359833999582771091716692531172144146823868558153266174253726652037338472115681962760463009589320710736268006896538648912693971877330249627815303842751574300783218811131980129004691976458232616893957897578178097590872581036870739584003952857726405311559344610578587622434613853695621384032743003528354153663099991657618724200405573377181086901833753105108334523325959433588479184657894725748137937392876367456733740119627246584563952885241370263547318039130224868258418577386019952585017196301250968001493338328158309800082097021506166831085294524476736849929272907531756899716933419300411591883158430352786810100384412355724990860574160291532528769123034463822875068326304958188258614644965138178567430788895095110498924758137815743109729381953967251274767218948140162851129528231573907842346607766978255804990178094733915040092923559982885623574541897930448747570814646849741191832604835018857657191401764641218534374579257877643157722766588571450626140043496949626256929821446368595692697134547996226706890592507246443221233337911781545170912779287412805792657734965200667661034907298432310212546487752478782254933023531961872905347034059946996557161655602580245358527597194853006292810971521131362493332742093025788145860782901021384303908611605978312438487989738288669036603975777108777566405355259637658671434820413060187170082913727557938569867478065218752812369237227149862260608901064206648346426490846588054555334238255829093304880777494018215278565591013348446277013050091997059417145206748571763295509441021917935748510430240764573899453920997821014063626158522254457236363293028277759820247371298692474611907270257504290524188212062964202962767269549881281665140754273128432059810958776817284618079599601571313527566737427849313115600910258633150975359099506730375208230849514308351246400408451922010383409340167671600180687241888846170202213131702300340824733107036371303942147769039906902094787225338496502766853013394788641855843187276847333628946823370640201408708798090667921256242404268883176621766640863298736566150230202750748656758629372186703430597933752732810288206867273518762144811198369949136479342110704730945257547728219900382146157288902112383481412541657150515678377313369107315335514406470813760173862638782189745069384153507464719325953182031086240081029664146471123471802769310040879580055883956580917091282279728234234510779448972277576520367078229737812415401194199744297056787915094495603311706176462938951337800096460959940083590216309905223143759898057271814663085645503353871001979869391117671136059135248117255065454990682422451533178512448642422252816682173844818703817641285053339657481483845403638371075134262741705735382351280884383211210745856008649901486506450284301747036026823370251786707995819440790472800503409536000070594598525227451816072200720954916500435525416538246622927588752861849296030453343006167749660128324318671461799094697039093338630921778287717946754746771213252282242748947706220373193374832251169632727947077889450670693837506935517704359278452295674966299845494233371373870526141891117687144909200118686111370853199471655746404818881339149116230446144895529429866289244328587074580822801921883862113173635126025876344245320292339239312097604430930428104263582492734346071397582817879498813443318540363100892738270175374024634800206742563484311406776079897740244715127067715634398918916980874696446769866947918252484977425264144154160422187169796692016178980456381873831901500669230334781461957312689782769983074563620041702549676532850466629366498200247615888729794621501365010824289321880506699600184386976507997317609098954737249621908914223706452327582989064088978450811048983089279670546585570112728013433333982077670462343047373029871495099658489658782075774630352966336503557535820754755866917702283967371663694677291942498787122907987689192714360141732153327690983174767018311367520049590179804922633574690224030630776315015672644691075528050714521384819555541201337976718178610466739665506269970844526218618735185136155095509992475973748094286297872466564839958057250733281908269353313198362419833631398125080930702029290099879159938939450536084972510946191299595235527698499297089078181789896110864941519637114093038711266606374085125310767217175233526002685787630237660480548316635994382305170288631271995123479381600500226984516422841909685583159766437477649533599630820855703802860524085981492344386779442798130360540476693703463112958452102980317256383582203373073140538081927213315090073316023468383606660646298380109368432644950460410289850351848854558096575553077509866171529861355499754974771102733334164157850437037263452493523650810460133695333931955764585569232085656629172766147926006661532827383234308184460469042460299287411801396327615594680293905714479689398061541324306911603441728459991244517334026281800646646392454226841295240835278537695611898746229087170136018493278838748523044293870781475620186350521514681316548200424049856859373954109610264215025095032486024624503168572745056535632518075970319595356267406316467711618912117787103291567187726350653397579373815710992035804076577637047803752564370173500673823096524459062335208782114041981421857896003821063713028944146265192931172746831137014430935056135370646266327353903523216507078462726068617731454905589092886147409831925536366886827196386384562863391909754741487535073585946010931678777772284816055856297015224552788422935257357259386373598653161413156607713255171814324358815216945655510876835787931268501126722533823102694123491995954424887933420258029056281067232145072288600413545275593497708337082948796705702990994026305016318626846427768741800605742658121606092351339690601853449836169941496673145141143094364647214481522616329498343597806644210682061609587480407081665039753299665436011115139076132116183488112138341389018921246625418794568149968940616048110868393430800979496184730699366141794866756443926245284485154967498424976281302857009531807281161651576935524267250463203948578917904053376182219322125934858941519678018346642945320683522517166812347440695250756198027469204235207367664694441336453612904220316835216654417525902672504276955074513647385468526157477602617534744734148099811495751448722876443091968609288059415647740479995319100752643035238613582861745552954165223183870168980161871152471023964846531641552558978062260783363973164578328177849011954166532819001963976648117355750785341474958535823607241045557968336082789954795526251611554826024869333561399320118728404776945095396216194591234103383216321477138825649700243541077219046579710936087072378241701326547890121697817071974104243550765078201219740477953787712554953620225378870175866331953209141669443166111942379928562068275473080736476417456446182789028965497638000106257198773163668019957799951828166785329817368053972697098321115371027596999102988560482898002502133544651622969917382094429500665053599056914349035557071475911539768567319401987191711933481888311922389012971711095051542858226479855118971088296571688716300838399606222158727613623519368496955675511839715662138517735767542594303809639546762787718042906888274627349283079607691774701134758857524916898957271372126090021589643367420568294705904906991249338091961072563336614129035858982504123493845532658560569591179609742036956927825336436438582764136068819967139810253530947640922784103249937555209265272251590852328581797354215339904120790228389768594677046066893418300656101704393762847380060931571643359964556627960568749897239536436149498354117346258109715167049572911688435467311795017213120661611157419382740055027026681876081713824408465136320546383801121440277468008297438673316443584964931151432266762615651753725253448378809109904745083394720914436547418811191491059056478618367506680542743551746945639373133300185557189001032869956379662935288826574872412636143826195653591663992227067988069310945845325599873901948119777581697476575414474673827481480555539621449137569799529430410295064666080623282569679204131680177776198362384575709714065016801824766989699477550966095327908071743444787961088019182633783104130155899936413756057407070922498711649026307537605636031378338594890502881139594123781193456673588132966146015622669615266546433443443629333005923755898490601672137577215480289628506261163173381532231747592544947764713248382023624368115977494786737491229926905097518699019417310850419913983761880652701448045270375087479478992006565697279987336508220434461969946060847516929742455427481812113123978004946092796477456032576052112431742932488725525879680649161187308529132103736262375920095021394408781488316078632912412738268204144111019379917069864429902013701663078747056637662871681491140029554520218571917479236025360663005892435013268483051957726702549226425459191884089823464775989222238846444995581642934422371791258405692972760553816731395521100885158389441944907987217562637908222076905018633379059737578368824063106268888157181337877757388524417889240365344041302367215750204123277354233714770830912247565431985114119133507196681572797120401061739216202184108119388609811225677449285834020893498465690494428888467279395094452932663052575155702547762458283604105006147818365738904384570620057458490902339765970067652227147354735548119483354236876761089428309372359557888057748652051211809227403945978932969016805467312305532226020776149495303106410472636971791922990995493847352753527234869834027272301173402879589892739198139562708165237691129519801883393089106912194691314310412320032588804692897826414586557298255012379654972762831871780591655679509201180030564424388419550476843634910051589040569969970803981398478814563678306190873275249675384425420238939919117856654833560964461448436379575048133720115797315148773604029950790742761796035181226956694325039911984536651890374252633314126222169436812783655025169031949665643731871503379031364126685757953709682036934424225142185919709468135628725362670884384215944547414165469391914329114323693624355050900610865087286771376338370740293002529937865552698872925631896244541844092144334462160760177593885181860252684160480261001179718368834924809134410149685059484861211290673855520656646482189823696078905774848296426212544594615660220998010289822288834383891805079874908610123267838018977548678289147017013584548029868717223264178611993501441098871528813879935285668052550410850519715079437491868199432152577518251227064561000379700178306077678538048348093988748545268594781695603095600395049647959018795947920709396606170821352106209604102069652927979877872172674855635193230116881351768563035774991923619838059351983432707495550034035425011264258258079313919360749907988552626210565392906152077180603684943837530955953653367019893510676505452971121648214008300918545443977484733707051311434753270453530617077866070175990356708594957876631805144355308093207000848985609608803149698570817158937042257010382279252776676677483367472902049130369527021652530285871772960742581955901689589833248682204472516940476523017695059360040137413464853419490529463396075544125931647038149820675734021382824760287839105151605235734839875866472124730382315296362070892826861547965297485094603988178259451174106218012033391094255968903767012176405474064157782968605889677112954710165630744198011074056556783105514398895461076167155717522301581485275453006868584275039194434921489661043017940846771230284479792623216381027849047153177406552110441093089782859787205901284520332546349226120807865979947878629539824125460580740949565013515916182081741188409085968656439495139490902548039329223391343153450044525237667305723363769042555417595589850608359030468312475382274783155090000096577209597843454697749894633428223537961435012129482172343424780234422188463183850432818133475142444126947742666284623702170793143982761072602789800926040864815131615748860912442008375029646009297670057103515467326365058235644343024716347153412078393052113514531934319180158995873103390782152873782517721405998610051549801324419049530474558136930756970103063602245299485515027779005713539285078296883245062983016837022135180218506288698765920752351653756039910982963049984328336612450970419937633185280893642827186234362831011815266808075227817269600273518234460559886852446350259982096621528511547154589885998312417916107978609272690832419974378201994595539270092491131159136679761072419669070422279969330124224713757589474127365787498485275781708797125615460577554923378630398757987867380307925365011679998843043715562320682779306827409511454330022006541335859179629821266071948514462049871974564777597495605355090891490124799219366840424455193890634120424059463231585408556158644810265270881981748165921234399908606035952085064032169055631659366135117027244850261327682651387807411265875628438337067249576846645281584592960005860641664083454354277826462301964802450883206485890096665380734015052045679452471961873835770679740494436795181836686592843126348398461134168044443596536533256645219151421407271936650971952699296363219354943606721968636705890567429258299305705320484371538343909329848405082237950538927550601742973022459305960420633467326530604570315844139202996990875723047732332854909714371561438221378849424328489826028889182704213616527808738817854139567317122541208116068696865135348637245547975259450112286644746939065564353427510914145960213532554935474621984020373671147725719064722696554862838735826806257404879225094795327972313401915026922675657841308286616605969486446093253756872338919452966961663893584535289276202765978735328238401461097773255511547894310165475225106809030101442690764252052650630641049049667289313915361722309422397717960249429078492854621304135745161813655760957845505108955562216801617832562867221916826266645833649094997246820106593551007914380405095100989367280861086337196172281884943100484521560649314170723806695280118893438382628861733720417687579623008567425428101141459429499229062115062949492798260510911805697595351412179307257930652211692980635732579970975013083565645566319431295175657311236057237543499884156057025335844136073161111401677595122537228528080012267984456259867172230701040631287244383826770614468929189751222928263065778539785443253008393034661519322531240060431284125655741247753811180606814289464483289021757983872107642733819652676185424967893034124614933392327851027821214701455231577807529621034979287314400198913649553529568048740779579658410043330721301812506985019951541962492114234469578119422072918705777989624903667349288052250696473670280167600273988769875309655797823995867740430846020496210722924181859589136294369944855221207061799498331847637390089889730703327574629535070415136445125252387015988621108006429458579551678454965040909734712176261513269049940057357452719608013929920874291447245879701976381773806671886569611686560800846928892885160838331044794644670962910886188678340603954563264985702137863984590128983105106477491077962002304314686379179325347910913264476874951954933559625487415783087230960524728372153068601277911180040166295906786788675087178833301242646486996201382802460585287785367865348061708026848976997137194126562382285068230075233930628986209784953162901912592674015221010672434870752395009953096279092657174173266208147259504844425328253628307814688861473806723585817528680667879103802436302435671850482876469339255761283814640392741158518135846094944978150197920837298677621335415795542062350116326086917850914008886163018225935802544480520113362332690025784281400700460546488936990167051011170078613831648315375274312108623187401288813354953925199098928860991401045858554115934448896137072671280518460359151367801959647762443910893064726144391162991200141270971460158137926187366884949197102681825314012443963244213694518370290513585229419683631351136344676080556691239221246307314702571731902604589732047273424465022850003281418562332893660580728086607751446066384533828768051396394438029622848558545665699642270070085297654492857842300227445551039226180553326768583666596952806491914950046364262534038960215512787621520991046548733721283664792622930791192472597407058931130079745693040573213294294835867872528033014186485683452512963977593811494878033072210823545213360119737535219664338827845052234948352179894143291899414428661519906841845421969131566297988570805388769602853169298318074097167231597423704230436321020794600484317453958227363458123582808471496916583177791250940509629801887046944557959498269347115055624631699837079183165032478898472098596119174539774298633385888292238411722256551336032032596955887330865932968457385411577931813484139573578099824360834123661115289065101174564501430031950584716295808268576352255410127501822283019231891481012713019160683016931162418049220310554810701082107109719576210163260687662131748548089039556178160533412707935077871167214911065230444486198359640653433161659209099627230021340482946806625953522992673909342185862095607535616934641051879698202311546171212276886624284547950700961809082712643218975660259046836005467737309406856839111240603013280147298217891318579756026407948839469169002735026671872879802993719504400967560219002462121251795690571657245939081420104533270068504694157940253385499692009997063669463983419137481962550773640369973178016561983129094840275779604815128738269262466176845164672101894792792282504458625326053165111872124887216929323684716902823627601916907522191466069054287267547294002550093981917661960301058502307105245914310500016438341583738346794858453741702731917761509826277014751617283428298730782784348362775553994143682728393150719811489041452631808277585006147637390830347486830232004189455353305790705920814882567490894321887364300153041489908942207131540488665645622738388758260876236746113884141408614849594469934858591834144323757192405345698891689950211623394169704135038664487768158052462092129827330057841076689078080437790853552484438467258426015907990140680026281993960048926529282286646914178747094273736051773422512619959795051836188496565601647524903248907028856745071177673470816195664350065352805359617621041703079741941043427612644767606987673614365828263961938928489175103358191371575676469972496105157436588890392967615733090981158170342173664360141924482389891765086681242839679786449287972728889679307027807351995447982449569457057101366435952480141891538792712397625647537797688050719973814829497828099901049775340467163782809750144273486828961372789677683450573509659373666199607353648515935840877949864673548763523456056902350451383232000601412697510620569419996980837774734231032227421646055278911381861962855768176480727885638655467820104163838679547167006772065792934502228799706540336870091976584771832035492347223453286995824315028060800701583197441535189137989095590424366414197361689322822875988571525577303498137634990642962372396999795924653093666835800438066185586461789178944836282080734454851895330408901620640890471785179052465119004324974077591184970313547699865950918862172106068420316077915758702361533370055395719897993641486486677236265542956096874921963222941578683997169302995504070690190441247421898908785338345084428902776187510360533765711222130452875376395124037558323195102370666576139345432725159364355528246743697065658985279075569592093575735993531787599321566681710091759357366278988868618209723954137656546492787614229378197550711151579625264736813556369786501173628438574209255411912988558047661481743888556677787615047033551655954839331127982446738399866727487978443388464961634295861293523610799712637148284705993068823583981572566422252916961164130770322271571371103918849140259158962055777740075022988903249409599727279699307343540540239592640477273626866325614135635986421573496314935605685422246480994423848544400539372285855318274206031689474383388259549563913912209786533884699356432482344668770461805686103396712114183987175507597154573179531417405753217287163576947417674649159713427236466167873935390564653596820421857346481483696134338624082426564321652878621317548994421635587989318717633947870241149941582001227520768020219467783432659275077860346329732875433966276186960082521157945321943292019649047902574815990342399932103041834708803801666180495332654366350991767939338600866834531306855365752659022935926804004631352671518416903975158479724236246980633541573836610815783350982713445882434552420497490928591167356557200718602573686207107815776131366264710318921140465576903416517127607916137344658545112721484690986001963425441501653193322652944678492979496192472621999905509512139165443802888153309556531272632347930732566363719581846645460144503630247447441481914797318944389804480306939179699388326719915497655862370529755169114556623933352150993414036741134533829985382915446286685144979478885386955785595195399600128288749541173770806492102183635970955324200876174217928914433005645213913979729930873730907565021117516061520290157914970180702620004160694385076082433289169504811934260058490523594635816765904558838686509537702781134416122202912369539578844562575560711189559639219889156799756696124740253230192664649763172606376660154887010679507738366431381574609138137382676911183636400256012662184252286873359488078857552176895282238267779283574964383015354320919232588216467097454951655429992662359995985791136832210954970671500551598119689207926896039877632217499152979826284033770114014862652795453740457668987809166924727784344600873821060069780247151951316174044126305005908095654995388007345790020768323600115312981333322618241543121787391054699609596138684168260923071247593011983876342892489104845876576317280359936463707088677999998390347539987646035769581662897916718690453960037335813408466376084377401714730583515092511305528592129393347634354539161036765958531234485251785697043495621864842851689955370956815840784632977975275520673907325897360143898308928826790643646525556794819962813999864369468809757895511383647294385956213985027037872107044099858282626497783801848453389921676148684925286050588231387871604484576510344748254410040788247780064493181357730011573004344658376688252547748343420624581105565062403154633128825272470011597004077937709563671483233149064700640148913134839269296269423223706264160199421777676348324340387183849773674894403791740406511933046032814931447644457494318530473662207195148699447265387209966961122910844637104375732796027697644820833400641426770753125091678397420460056403013457879183078698136348450598614700780602843865655838971241271225134872634103171983641614493175841459166199889231952381347564785140890453752466248865975424062656507556306362104121734311003802292828927404677343058210688960205981681201179033385607661255979721032274853057573870920683272122480176035519412505750421750905695304945293299440879246494800041759946821019651637932729029287621139195191666543024366877231081963214365668834381556530042824722616792038267611844405684410625771932695556469429208723045868766381252368564945437574169721251839001392260128281570465731717816847389021442934751354125632762036632495285202326228932269502045830076231870978643193843959577397191451216837962227386705068103748847052563453375176191833352498513658227964716125483388960914610412811689155869503210520306543310364915772452831238198916034278273966034860063783473593811360915923941309907133512633619255224484303770761096987011018885814889113296747935876256959043094922498726179709462118622593185252408954216935660450355967608342410324717851405194948877973880464624997685967195117558458168067548361494286412525319445464741213470049560658036858067776803753026875252630735950979780238863615374797615708240629966709233336419520061724407721878253883062541313247641921925292998075896927456760803218056635217443131662815889515794600738821680843789503563164955230998477568314387551874058215403776955834087881577471549314872534322731409240931265701481296749079353162261697686703061259971498742468039555402612853898500284439812857194596796591975526850070508664239422586244500749058514561112251574001866223169110774779399951733573546045093114959161506814385086010432918843016211100957943493536146685326436392033795357162186390039497883300079384601235003078941234640874933281815460430194230589095223538123524239085686029424391356409928173966743050791033134726162427026472910666862728338874969033870858328209610910573569495224925988043403735371696294661360887026475370373804654932793657625402094544963156524926423526005869755883222353918661223224494771728989572819357713906339469898871986288230471160177546649073305714227136490692728995325037842979655435873069574055924128173843534469212932515268473238567415476935068739479125675496540371001271207180800879729075443124131341014191099278750792041139167262011094177956245962727906676717769016461606269570754537267806200748987673475656097811308265928660671383692103780692599807029448226401844664852661066665563864142414047339874485019500570820156848128608722801734249347009717710778413408354415650332040474842052380416124958583576212669056671032739844676369148529874767556698277847870246850206543597667770257879627072636687444604122851608094283891174737724210257863152877379927093463348631572479798485279959661748850412634723949971359378397344547845476160761246304062457641608208525964195788877641600594830205122379230311559056968008019836368217979481004222291666860359147964422029214810993545256578576879133738431935949104067241098247926215758593503344977510438956531854952053844114834070858397122879583273683302644169594651446446082550016366302031205717493215889718078697121695567031988629890549507342030373862485455443039199110441502388880282304898688457961142163540456653155655308633444386293565735763921672692343131578422792373105941333308905875014336738769535748313278998795174854416812197083016403496816154726599406898467552262509356606132017624999638610650523939452467379149406577555928054456934086882612299703656483443011901803506053389087106664683736760858040448704228100704656442612074495652423855647193253565427590188469650990657106453834778570844148661308565649677915405552508396738146217861087291383442157106481016926429739128155049752070762769222664975293420230683170859510651409294821659842322690472824618403857724107131881853946106177835234701006880757261040036407992868969806744651928629878013923517611430670137109266676464180720517442232092958945330836388910378252799967088254766655712564770717766729115548823975803380511268559124070485148647257971555583389825488450549674302432051182746940227278746855922625584790996325317535860650293657725373944542831863458471568841546896554533598208817404677643718280011732665748801766200494596422611151808517609630463037528457211833361304581559440991088186892717218685498894262917955747819588706356754069137179197534071580548419008404631477823607085542091801179034831498736223964484304197840337241374940767658551110035384872403649064367269269509509409567381940808830097424230839824448390750076604263302315749128089170214698272999980788374486674476154000430404620384359194280397189422789678803041029263579418562177496067587865483677593417128943631187634547009366017697455082526586167738439031908469963071236800989307556159238693987040356837401648308361681733648810583286395848663350463958518681105356406589226003081917352398111495089276094023494133835435683904946385322767318139137083450916256442840543448541471136203149068616655240948322560485023426526246145941901132585124629922642318394574517920550563431317176175917476931589255319552051502617990128702289061268159427515924705871260873918183299516754751546706152793595068561934271704662321919909178474098052543718028908010199423632906112765833969557932464348513466757908214191544545875312744273358282999635929121626199830426466670168103224418968340943350718035300034156027667821048767001627748687474581422559900597144207364698226629094661295900420110346874733772723561989883751729086131777999682391913991328438868950529846718764233357282429060591110095994894151072024074566552649137845859166271646941038303876082231618435720113128197291704996323283889481420840328655833996330952513950851908582171817366766477335215852848374138205236438703786198068688529152079839167174875004992557294248117388308013198792758172867293548799712898680292761309392289958485549288437336473939284329051384321488180888232817591261432177970069042932511373085625078110007650318558565445569122942515927456955119098181242826600922337685768439172072100180746138046142857590310616734312939053925382994653098977038348790706893202624659183295896671343871394272186481169630859217735164305964983308867789217708662819368515562404224123240611859478950536799473647453212983373653405073606508545402208292481420509298330924476836841712196182210819202181826973417128645759783338966805507963792325182762376472306849809068859226361941973423945869841774164253260749594763359505228062646318754590824511606800816040488872398464198959571425567636366538322700629445089550893320773955035572057964286970492029701270324971864946416833656506490245000767907522518062048503027163716410080356678655872867552399395767473965258712929542320444622433639293581012603177953359850561186329484560933786769782135896562031485654864194887820199815982298104565609917830781823972827995677746876799469036228564719558889484634299561798091661871123358614906258232534806791681120927695478644575319753712775878120558749684025750839120504091358903720722422447549646012415240221242347803054263277204522975043679035832519099916966333185198778859454936936274509440139846528479905065218952770194405495662185597168214623724277130436431827062417136243000794469286707479810992185103507327584497269697557523524230829483282663328944212904449515206648481237756484071526464810722556375104322245352980518843134357312269119613251650301640842835432454273258388746549030161250840214355046887469721536130236702195573163202170843968506137599840143410843490479553660935471946763449898096879792533111456976408116428258518824413708942007545994010318067175461061610210182521099165774368208825592634715321677638308222665606898202459977575839496006101156355648701448745608284962877801046124130581199914335007103778864567142559170005259469451628827625417400919421349134753136285094964523716424884290410661472331662731311475635897772955605195336287144167744613771279374108304919210985196744359820995786867454432038490901730132386729876162442697862413628382748415958702707036598581879983916278880686263968365795934264392731015448925160234205958922942353652469631457833499923357109260400955905959857453752694938879952323967354733874529422589739065696901291197694202199881543900824587248404114289622113798918905079828243207973112822086977791985285421001767644962321489483746049260882095577385468044435536139219445100489759125367272835657333847234655846872301727026974265179318152676413733614325222781735685279637790292899113091123335046368858945672128394539604107743921907067239556598009453353638417817554386348294594525537983999128937662348505085722862738498100398610568859806954155336747420967974797501192004029619386637982359934325572247406182910675898784795673358886676471696413513991282154250598181743551141437358286555054161913902661316342185260021430205404313437506294004617198515988523478346795506678107612355580562830779500415111736164179044338535512200885504589885722554049525928641663108215172595879110933066434031925711308581916481898479301109288806959100226029440677285428218201748928128572738525909555009197051503655030704802709166294824234525783230729093156374701806070325626602386079723261042868067408296927186364201677626461099243564161607858303025054667458579791127388559106392768533228833989055074560073040704387686228851141851760734690437324945672392525320352183719658816802959016535170527070623600791832865975841020228158623525592252159057885574949885285089009026130181281980603492456396612326270521151405028060508956523971042234649267535734791219636476881730799290260747043050848347482832934080094479353625860201458708093001026796499643283025475243023512591304270313309132584818068956241714155423803665786191873341118632271456056954728873927625383503386339387020418646344275511121796583973437803769398084052838130824689404442090415882106061601233904301198218013494964879543233634398994498606246454251983556753347081565868786283560023886340794642694215546943407383673716915561562868379140381241296865194872924440079533307178519198616116258975144939135441719793241383291089674579235316999558529576240786106461758319153775038340678144769570135717692766211965914232104699081315377827681358078920866445278905876849815885615820167741897282713979325181763441655283240212525879314200657892107943634847069017785803036586456170548249353136721003823118873565164561477357612740293295398367782050240345718694297200690440285040852106605805703709948994282158783383546455450476223996938236691118366390992967069025411116961799911435853085870064013136705042917322571340424478933509824578398720231878818516289342421922216581152694327223340333853967854420670997303797344013260891018454423725124832117098066472123908163850713169962110601813040201385486254543282360230487682541095146833434789779301533341621917371949017221772632139338080361838663261430897111280840594073176042113853002196466305577767225450718680552476411528231331229671319191183294353521884707778043744802006546590909623028525973227700366149743977522355064792794059249724836131770369429998933281971780668246656939615602103127533628292929374275474384489614549462028073445267479958557155958059436108736054746024856642722385985846538598669061904766821167272057985964394992966129369794750088772014918563349739769215996460656406898930374903302821461844247083569841460557373669481541700673635337210434127165738984345599132048604145555709049607110614404992672876414902786565740079305733274526491138454761734437832531452960807609748642087760654341917109166961999591446199129315763034771191292550575947195533297147085952940355985811024859652720933306961466464435638851905694867531703499499092367064640361044803685027460427182091358208714408947792045044713644686194956317425627226518079679982720821402268704906408408368214687528901270422589423445267612099295743512103565394567691314127236509457281914058357820304526499873511956979017143204924225865358431215338540012447297876763192654179641532563277478011881288350546116974686819508609799154434284293838068212275711201674134870101408827686523955361469792354645394799450818578985662847296636487878931609906461157967720361036785481353325292263788393958312182172566293740191008140458998812622984713995065078612953826124835723877954533983628558630826172015784413182259690934430330999111115903927407399847147929279987582997559485260649972789007763927616389737947453391459085993566315036990147246290243120629621302614484660807500904320223896875652401077809412448238398675716353111337079405938693722029352919950778727351948850138270905661693444332871005585143351503258384292295899006166631584440983163328144430566684906388418610959865338101382835161536614855897763633848331612186493277418492872457122829179734284519262518130174235112575629779189329684832400992925524170738176169421918216677759432786894730646945171878432701990322238165903197960841457395366321086707861746147014021159017344082064994081526743161092312478381553216032280331097938541139204165342601311388796920301417505051198200324937077428913266325100227211846591247074379254159074484308190153264555900746508479763147795125445613676814638637884016645129232554383085234994870541432659157635679477300885238037943875205108247123194254240450664947089883123540882482835332531930912949895286346621472495588543993330241566085071844861524813706051824973156330193585894839064172242620852564707822572359850922594445701731726368242973168411768741338738022610138639268188157844523164557160058369975529862979940311497481209996977881247710356719871616989564914760134608375491248958359490708289720341376229308949213854431785173260794463132266481785301055484506668764125737622143547118162324276418162980920762573930658836957445428503034386364391093767655982772304694527777790273057687144087538701809870518697141419802626999839956158585060447572189521926810852886450555030157794265789640008866273080133050071694961094909816660242479160733140180376699646747618520870635261182865602709022854179785293058082642142725797448627621597680605651035935315634163576136051120647334326224403364516661475439794594674035314894832104186493745087747350025831146247333617357687249458676555956522368386363720641724903650007695776596147732449919744405075347618116794449078093780350499785249506635077370739060057013153733279090978917611076852982599645605333312146054487156276373200332398267712674011262950811470637176475969354859691584046265285528445938073003458450087052023139526171932764776030366627923783211341707521001170323533052395314399518105281230650744176328333243125581419157138099536888639579084537444682948377979565684806613761336953820390020284604380906966877067357962608829779695678057199065970531049553179547563360163987304814505579611297749769484377223102673564759004942620832533678351349699103073811890171098029077646470815611206261885327365730663303460160424594417590475375097705807112078872074598938350386607310381847569450120803813692657774942342955920706568742281597575859342399785123720043710525794159302514692029089089789288112826222374298618676083346202473606621971570944517877084387768075897565605151661651908711196783461035883614529128379565531564761893409155773544160236413215502656365554180579653608014634011023968681030650037031659899640334832970359704050939131809957190483588381582833395259933565919140324237620161369801584121938318499329716386544389400117874988264800402860430158325029779159932414529154507377520514009412268966900185535672921945515864185453726169124431783876709935623970555728951304227224727326900516676618910481724349693240745382903943560630843662727538022326795919223582047125194779527095195162948380865783840502943834496996772960573398267984482193730831243715750850212756324972432701778989862550440116755839315984600896181901378444711504814500724699262134477333384564229435936166437322645970496854911066153596932010204315755944274304089010580402028091603077372928400559883345379904461607946424360404952103955463054316719537955671030975234554918962878357429653495255764382985138331879021356477075541832866843568778573345662944379144246112980869160878365779523178321611984541289541390559442594608902887534805961817467953879500067057122969273268546752498474751392854921871813597400296518809543654659053052030736434401250260555594501488138052051578735671547792055521204698325096337334446775793484752115065213101693460355032612235999874338415852950199078477892637928894634569079265611255567366401909456528008834708463936808320941658604308233018306232568267541615211182743015904754557983164853206022592264645035241812255313548800493158105668326245364996501491060683732238422487951172341839205490606625517121470052966081550608752054039594898896533335472023618884572141328294829131866958679148315616281723664895047000781668771168430448910487085098979085863896405526324006828502765788448957099637077725001592066004326477801778158782532488304000081530470536881756999001032512132300727566812039616681637081692756835672340695278448912453259639711705109585967678986047760787809731809140945439221932318952289821148113861684254151238148633984272243594188704140136510260732555880173541025695219346959508629907642402883767436295409447793672034156758624832493550434143437519701981231924689699709727788688083383890631141023513274476886319073349022244753120252787116645995811477344399967336666927368668628281093323315084134516727743359687262066326192487278349662088318397609766283349826178008911369103742834870482920354829213868398784293122664250629464132954432092633123789120835878527810566808194176675592125196653083827008152253612649817469015458989230579971931393320292486154037857135496383213582846508888194168664635673960927119401722298033554933564991294892699771838511263583859613365980338753737000896056938135859046537638268268221390595970444900894364789475023899676330833056573886162213849716503115112080820084045284697031238486436030141131236533333146807200340416285710436951406500482793663188872481257640980358826671127297610961239955578782228689043758345075013814140680336063707228222591961386663138990842994481129265087815022415553310416033814318327101676724520406922393817939889584376628021012151644147899711745034424742204831002709882693722714981058013826010919969258121120622508699639091937747671049638573567705620895305045837105970073558050414968123761949906066341971787616434171914705433486932944819964488107356304916868920299493286631732576478625142174033439955019641296621715667293738636659836533270181759017256377370860508038547733718469079168253018898666597256717343018607131626139078186955795144730929745738008996187056275795383916324166947813461938155681914666837879851341395422558250711957753964526487635782743716001441321156821627124314857816356722245761121819447989798051213078402356336940041263488960440265388714648556780087069008994483449205130057879811825516926190376773141675189356331856368574113175674290865628539541455442893104296111701396874102196385328646030007133428165612624317300345879781011547550096055958926636249871788863432994283256012884652783851378152044049457698133793321697676015751861063491128469031296485880298702695661257542062412586201449903591453618554534059697081228879516479920462804245090180369184840450800861770941328879593359728420673347776450276146078476008988646477878340845816825936038899957145812858893542054408591426695952862352290750660954900835338551492040033035667727001454021532450844945261472295713291909652313132033618215928145462310782461765814237475349146259030022113955873167589737824047485864135560801112387301261157055381046388550330171095015022070910723547595226317559921040338125616960002881826703873389281584024180357107438479594881058894889669291085184099562221470832691572102613717137502666614803887965508506629558789127358769873439671782712100306971466698158187275692480151665692388474186600259530343884964680401673389620840840815811220876354639516712735500417722964032671714519262111791799807706953659534350012515259027661521654385502461265993705859091376840992012279684344070370062822582270010031951175208030207303941166996898370893753364473144086143046087545150419141209140070442773219862992303398232746486293944136345032450742079855310651890759743054615335855470069328829250981328248196579932499778195532369110380213373023440629242015587126103683324661320313710514146161391628246757871710068963918042692342365538926593209270867597337393847764847239561016700139895437603639535799574992515670933020890239329105467938523119233670900020280336402536467143256604386095812005149499672448238243797555935059102426728564070460674887899907177050397315756574730272306423630418001207897928004700846716721201638836196387011510205967401799943383698522436101240661408664562986924174739362761148562867544507575667546391375236268281742543795016271218114421134277790596877241592347905835679377077114288144047182000058083098095105637862047217795043214205236245108543825376695604608182354646957375480846142289949804361636484898734101678615526901104697591587833714862355607877072827239467591754436422622815216179656432516722113102185635418749642355885524134886256823877679751280634497808021938980268241959728597989170138873328167756076080750088260508363906617712700701026579054462553164311682785993600094985906639202427725446690484070816577570159623613678994758550552498601321836308771811686401462401363966853089779389735457051937203304106467454992780670730041009628552750092454376431212896781939582581528309576466974868197050893478133066918498363743289881409554917354980124433373765332496483992351180447724092943867420301828494061115864180211047027632524865929469402754303499392542671699512494001961215078512610601489130862879938067498785481521196659094555345359496756880301529891721603299846248000128914157472147075201880940242409459021879792262290730320193239595264078830787787611067880929298127752197932584960044594840702532203824898185105547445287636167438618421698381717405057940352360304747310196324370700197365757561790498797047748268586885435397707630395033133961052655163942873912181157010436038144307068673339493233536729190791369121471572729217966984481828273425196001210451513169659462932503409211136811800663296335325579075980336090268567541760169116139079329466698848055923865803794011754314741271677243992186073048112008561845940114163999674099499141451703220196631475198804092016059118309053242155492779523716156846863386898545878573713133605510623039313276168708499688058080031665186606473343837282302961555482257965299777437807094306436104884698883787145928986215292749032877322862596307644132736612314750393158984998148068726772094561688044609145319646826076066514317116859001999484686856254930256765115210578042422485399714332374420937423029937858349774420964822607802985150740391338178557837536885787310843553623975282663050319813139300486577984950553898878532408438218395294338804737057834798287611691189078048488195350585614030095194234374405328139412302682051309837901519398434796348672811766992946174358719471036662317668497266133213898170384682513682456934852677327298714405268350742270210771467967847402210070328474965200705807415500300727492539059914440587127465688703198442671019594899786789703125381717028956725281643595753909451775969471138463667445604402266925308592770992048115082839383763291908669282905086151641209861945036199168818507755448954587811485856846832087164609327172926235354884496833621025742251815182782765050456659388905271701051899854757291843848874196282726494000073432472757424067153278977790371971279059946967046362928408910647809746570236079710558322081194317585595725234445777555037532469398586209825125118295027996157501598408670299561357132827364716763564727985359941829684176880681448760854087068252063588752446762892279869162594679499942124636421844488154101236490201869237790344463868314132649888060609313351910495068838231401911711053402100141242274276021779841667109170028497874170759242031130690126058915410723960878024377415971370478496867827316901457439366267435928622982360412318357121923433986685477569057114228438087167194016043079696740530744058863205382458812245717819164244335496756743260521073238388116815209135223883092151677603789982353959474111374348376066248154514917115372103626526984270908649767488297291641772907717081887082861219585951400767562918549892513371423380674075073084164298955124840866851388042543198289863884636233988015685640215896285140775992167733014556198181064731088275912450809453459193329362849949476410328585881577960487516527410972148381544772099583072904326985838542437883078857150282890098458012308683390407147451870379197913090937098084281010567259706423356047504400897594841538249397962482810629846165195800017161920203997432170737053049873873794769678124071195645639307962354278462744356940742716152301978608817052921277223459798123483730850564752129047853916794586516356197977837112476346286328690323671015854551796039223879334382629578003250271602832792852254973264694585658921897889352963563249791077983756364525511027794274647392366910423152994330041723024391791142937804559251946608036206857768632051658428886581506386445199594378638884367928957810693678790356244852414636039251618517213214256500412843510058135958613635038915720705312750700365175858240283101840471938125576275227504245501733992782034896320437094513281734281784146674243131544537426001380992274087515611132065034748792106917812954051069785563490517586087151252631029477337051923105990666483517689215625644723915855921510385201587866776914329402403611902731102816561012973718199726013300039211109984433795033841159982231520576476898455630839120711082928213734223405916432789014864112811417292968960923109281650686479249240160261701864646046571165092396738052007582121712310158298174860676414853535229682833011398639123398462791816485510651055850008586893228215393196651404391074763971903253541009050938554468854557994723227956849751063180882525248427927294048644019546496176271201909400399417681335576818966346925571973319807944869177695585168691050064960718166954898023486861050717349651437137061033381544741509984223614565859238952120874364557691616272001642692907050636053003833534922585940550351564336563665022233821636505215138871471962396075931818065463050519445714773056541265224608980973874631395376101076801346372112397917166393794330731146043179301550878319033868205382470788908671466097342037110052868074642910255871446965639617090891595389273585709963845338848409295077603458099487658077876382977338466910161984024815717504932763439461607977361062786502990479885238578934394115130237522815323252267402893915856122253370066395349702448360229276785739714654141637484154399941366757988458345754818038255423258589338691640225707851146284927317339722850467352736841716917932573779976387457361319302105785488726966184673491600404071056384322426709659829921198663377379005775032688944144751859518350863795445345529992243277827547776003662043688931289164813653090680859273668938755859700121607110110549354889894942961265831032536849149674635727773416940850430977668446374444978542970514963555239475765612438587257386546830287576650747619534846806055720947932914189004306043518825368514236691340677583623572053431478034858606842281277453582437639640006600542029717513572429155676573455209957022756829840722219989571911448409729964005826982509941861977732471574976339445256717718334070567794517257606316928384427717278103308638808352687264049476011642268615442914780107082436466688341508273558673972655836077678294000906044534207039883080700531990128935256777262472558689796831108271833977801857019581541681845351504332184818130673279139571802623687740930907588078140339271124609548903467728986460616788197652269999924009569120372203674750237102153782444991244641950465701183787994568097844835965698298711480802665546641529551495562536859803513863911217280090459274844947917526071999356193491794285283490630634248975648345277710773490518903760424757758378526614638616506950193359599842263850136173733500405028282488811822571990467573312892013761789776120932070740771337544999762792466396337669285640466048115272850362531602410688757948014161991461920907078926097128223884434068932482034957070180492101416797474413476376427353210809942402105047861648745597527091186042823009590310895951817393448823033803843044366734082560813082064488027079999564074603771146132913351114556704599455467958330049313848088027881158265397654701789784731447538657567054572648682194875432092315873258368296140890211302912261289986789345471489514219169596819795153089508699346254332438272103325993487268920639285807051822987610729085834488100056724843277096758365281393485401252422508904166957766784894366937238381794594638237516084109316098070705985712348946669605999681869204461397608545016162487616471146530238880424471664853733930929166537804353135048959146069513339598104024185443412255702657583495363317443555185783028160996315923744958426172057573006577471192237398624103448651703091824290557887153924660927288284225827428733239825996644805623482958155802437584100599835729700014564990896019830137814969679594822785034048079255791499897585015922664150922567241849794598266008501072715690654113898341009803612568451213759168335460778766576949964397798278846562731233555612636303736097513590225444802996781645699585118827187931461710596917784783160941409675306031475777068327276368534994283412860936130429607134487887066934551823044142779599079097493718771418183954928975017432122358653056082237438812641392108320141429083432307838207223104502327461738317886101783840634106905066215625554102166212933138454030416049464419951062373863197250367586756682771716673387613828941778149149557114379589112331930289230532654374292967151185410156566164372025766142618283188433193667805573569300451083922936798961968835682214367393158532157642366618907283268462597513796688484430988520763453163049235556472813273836655845824053744559359830521446229013125846269306794240475315634192989057284430749927493382395996641589879828891603310580558075641411860245197058968590936231260560623578694044939038932571705095505093853231108017257317357743427218802725581157936623185858849563912974967160917413990062243744774822159769375223543612548469669129918469245666202142099766092163570634869511258254250359745946837153397573226925522266304851276610058649711806138636234119251217221568051942313781025257754056205616546284529152318548846355146512254684505400265425857854140961414171975473559904602732961982634725182659971079236067635117306914946002726785724256291455243668132186478881019150806273661052919429426988328745705492761345275726699642610347097931186946823588711579158821420899040390936338547867917951381568794615254284379194400159115321856786523560383406428282779664059403298456431786281927177750303254711953459684690655704997474794358468101790063430358146270591394955099933437194674993013791164106431534503861222238989229485414115264889968131172172659416410778185452698036879274320235301382796519816382353188499648172570689123908955085129497520631424022400801651410608311221190993159158224838208628827895100774954177740363442297385879392302032650790483752942906537821100289480923532263574259122045037105021034510289040710498697767592111611692597463227765205386767818348259404989501870441061853101123363177794313073039945714846414209514832824382513597987472273722832675087665428257105706444423949029032416477472926752360195554216713278138156520317451890578095081251632277987240408590906021234645721213351426179779421218646962173056586671875910219263139101236653774974080609084303328116756096299617790689768871635514306269393008253465220159394535367021532046745817243306232139647089451686951988744803286080801262323837992365336668264705082117756156611188762683677976663895192008347500221802939446530691369516714878191601813386343112525633772531199061215920965956519076565156095852644823667251992346919138521275649893983843450902190570519460320689562210942290807539523345097454195671473599956941815865792047663193585629289029943775372361735544257388020889262988202815894525588292448767293071660613607672860886406962310101512570395311701118758557106855440936334524439779950144577817834586804326873037615270271513333692023564584899731455831253098665845181260530038442169220603753428202232697715947104113785802958914457081538312445005533973749273467021783528484659037719994345672803911865039833960612112862646158215168567408090631913469684955068094773448798433261018196245998308279512521940986665733437968769496835567856888710189706868701738633488005442655681550775915801800978984421576222270318048743504855787151937662321064134164593724576286442401939011427973756786868439021564346777703948267966214505700599805493194022783071948371434399354616859644496214068065951223731149912424461132301482884604091384239333315104374769600070387531327522977304410588517149634664578214994812451521476870862296689052816101798549358417801975652492883704814683550448817019046157222924924727811574625229350114908546158049588743190337239164197645163852980805177821488544093601527490221892556934516594681568462922832806338159901969223953257981544645557362009995546305687200870908175757976901468150131031774687001127716440682686973941729286775278446751571807866530578749353810147323711582833565325085595549839531115886335302829580742373698474086316293676807465731490752153033039041276507591999177457580146378671114382398936313641288488773240477196395274125605005306932571297623135668806053294843369541915701736336014836594520747245990284746935062044934016960591514852436142145933014730755424067205858108092387694645107287147401749354082456294912692512836331184582763511167365310152457573151181074146360681023539346568566306511492697009111668397686385673650114498092281997501005727101975903406682227426716897687101324578177743225316282032270189029101119113842693574355329309912618847387606827782319125640043060303799419658980351518995860208720428373142563707524317229798840139179946042851046015843863987944426926903181088014549634550943622418757940471054001898510363210999722038222223105931910786341196670640296299309393178527286194955829026166093319322122014767918580578844389338372114458828803846096775650492454240482785681214856981714462743748676945538334681334061697548828186870911905502142105549327853084885116446876173170959629448286273667349962604531018954872545877529489251442932143469277386264811883112588966441597200905840812181107211552310871922653657842914568363083527963911721061019297727490039910656940768818187795663586816750772752224671794650668765567560477136001355471904612427331233097015553993530547577504293669006085625358487328309750931980740822427959045169032824352437932143726658079505332454120092874012800019433086590814643916150236582031210586180194491896018992198871381644899775306726635689325967812237301760249936164213737271085499316126833227391211614177463008365370717002812120266974122947030321602790869758762325523349897715333854966186022988480703293507499325965822848884573290540078669033010424726411641800287345702908398471162111719117143443270102617208526824128630320461215172934581480275449542117115467725563557778927379557935117885745909549054023654954612341518194721187769621815456010754102825111380388641495816433042608814167556653765745289529460666907891360406688300798668768498435163851531822407093342884199923588819286962295171557482518822993764810534962902978194167200766547534529579497734267940159994753163696099596247494253107440383705134505605472176858244140096717129096861418555962383013834136819104534874390048241935881775146100571178999025237446483929928088698298227316808581526122463580215342758363933031085391571397597083888795639314347731158168860786274856993576810219707209357894665318691486101023376299567293550654850629445487248281195334237935491746366920631025267343312082923027654771197765848387525769535224346724473905515839020434314242502961465749468643849600524369069995305844905914805724382936284334924528659092593507496085496158979670089812819254946803510759333032279232626911295678101486960925605920841033741836820158128484580975386156228968352917001009447833257792600246981610708327095758850245831161175576684973848501589142318679726494061818082738246992438428945697157673003434665700727064212455746797912870821212356256342100052020018875598105394764195051346054598136304051568324703641138449758619752772377820065736773167397446999463440391471414642048468182692129417747877208908351015399425599349968537479517204338387293427788110350282887929652263866582356941742647196747205211024454160377765539377413607745313462174300111179692137150359109283591082903305972861237275396140849643344556921665755309940699932991570765521717835024650484463063135667520401119951290518760697514939913661957993868513128703069485340209650183956235843272965318943502521217928433241479874256009548243586810326151565353919733594713420520272494446109673737587214652819030752943551934004482756658984476680872317383732353073857488809278160090517015056714445369528786566497486939513141669722560940973436205167025012608540633190608176930899706475552204450248951500921019826423122244839011182758125007367097359693678643028609580532852443848748200412984303123650349753747323292127699558217203867587788511624139094864088305926730235306646532062295278340087628613893354508902394662927922299150727032183254248534673172319192987983665712893693616174193847126961828620041899151317369292202194550398828783941331466821741937097963801505623073733176419216596934611581467469893864273241222822593541730681431066328167344374999264918417108400267318406319886223290029322662845490561066626245126614095142393625925605924712411693606504802002547929834902513729946906422269877014101684296095901554171052470948471368105645310598495135667309861917482762222983634064030617057155672729314598722220870471152940311299876305703983903375686052641864852110258106369524281450051038794923198824520607385048595415823186305074470363675797329837251341510879801188020853136215211491855707839952601193240380816906305995591196213655875316278786237332307876053150975721759798595465351734417579291185594033321943003078839401547642257007488324905835839927690818527123606733154966814570014538314688695503650326043141531466290633015837141315782850413095003603107391522470779573698271285354609447864972818043414618949661539781877355355710468992549354159635438188957230387715275609668150129069382526119166221859940217936034581157271526500328320992083659572944478071881590296134178863570923217895185667431561347633636413611960387743133665814389383377509483542107747123266314418894989497316887258740728204921725356700948706297672314435640678315307300697327854434813375620696480468164231164160298105781756179994284544727534478785665071982037666387590442528316769471143080575557886532091069858461751740837388257025715219517012262569451689056507841334316623601395068959955589139197695840792067535825978294403743025883585912738534504584844871337589394378610926514053526514423377717027021848082874060685691546297522703374742787710146688906371404764782559943319821389551494709952015295840931785770469936099544712285932757507770898516324200269055471524559361471364791585946916526701914388612133682915804079131640579562964621629109537739097408381808224095948232794125287553472715812378910077835066354589213096472735687572121222064922410473156119981309006152284208783890492195107967020481566970374257400378135526978862083415173415773488511949261128837165051273183686380957136548924204170355314096692692053154752705633514724256462601689177529013989428443119622040003096387857856900829943738139132972529649533076547711937640571227625610067581800525644994520377962617572357874497516455564195297113502746850005881108603313190904121323857767401980371689170824900817025467844652318793549982718729621187470582296258521017278283499439257558074574943042911199093392948042954299190461074333271093770386515575185905319457858089216445670091756352466608789681990985436150285709766727479625610063689514800925467541321063699525527671543986079189331014653664833609144364285049101192534762781326183579623065059897221603122601822780740871866722614146361229263359809525844114073536150532784536627205333714228172247887690604436197433945012208486304036142046842279405733864703431091936394933643341566167213211550497844827540862209286995417548164690555819823415355533572817813489182781783177393922825696017241238466122976814477616776799138091341988894861532157856686684994674342507589976021276505209700281057073215321846494874504184953603404213076953360439230873565950302272613199431678505912914938690776913673799242487571901477948054027169549272963999696078474961690106749937173627754518344338333161659619810785754649538877497619527310266362366037044230490305091651976772011018940899894258559285096023885171355493877538333840752020505127728133897840194400925909356972690027940699939378713979013569149162703974141402138570187316884740588798460493232676567192158547405256445308056584996258592596595787073478747505795405965662985614531210800628060146355412790935912581008160423061642330197778313550869500372469915905975242393652192260487865057713698607357407595049196179663810027150528493850169922612113418653586766357617221174809496246787544099951049846740842189606775402808404203249436383714256938734295471971740273819278116461364140658345463651836785080131787969913317106389307342226837731447570962227757891408583624173716570905591737936876150999961994631270988209071216531456530938789769564513071515127237017723256703798863029765675664990264376115153047035128541935329147099285714031913165845479320358374405980192302870838775429113278351546146938155201567193023443756964579324446607936599855660734726901740610170599501331226290310771355363182333455335181612426348422119081488332052890079216389793008978981597176024722308362498320536364938933542660674365713906387569310193858802462021893583066213520543001153614256893288412891020646694955793177757309127945267837616306897929253434579290219854081580105291096610383021265640585618801292966424988855789446046828184245354191037276901371453634143536510502557209787676777451923901383600890277403615463663163746127364141105189510266776913489905356871928156973592566000990659015435220292881565002482025211778699984676436750268429536177376484502232854416273784486525166379746910266582483903086830535875956107351098547722676739146293312030199496266681504294170007662774286715099451983361876535538664706190644337824526763047045135776604405715350307261407551096824167366266713071395769901064888112769087825847528849049713188399013266847348105645770731231424656701740686242394761637473388029849441764940191853552967746706295656827263022088589685591274851725293151053934831457085602903684745290132877642362501472287876057355193432041844692507747261459447922896204745169726384620947470563040015587176790503386448372526877253626457185093809019797383206362921542738820230482525906743527871281625146678469105873851909190550279042585942274967710105897667670914926966843693207422187884943567135323206650072715756588078097839532930931623950656958296088361031410574850995105542321301412742342889190052980796161505317865179389064647115036055512488777142730424482484132031164892688079761342904470054748034404621642758033766831842580967193807728116867897292820307061430448527119663469268385882125305194204787316282423473355159371869576226859474758703746244666844590198256756723894638678847003012154544983151450399850888655081028680781021724409629201690482953966097279542422122665521567481173358679282023788786251578630210228778530625516272568126103355808519141053468543137501278744361696615390523190309656995622700064057750701942332121579369186312222221717339259526712292575693316557822408911712082916368679622528284267312688072880158759734291916147116556193440702789385135470837336352290744748095017840000933230440202879549180595026251141631528489367203548943890383588802103742711539933517158072424617636857338207227179646302989252275175772480891353232235342349992665983871147093219270303724426049645003047848821177771752176812146025739645359051301930829505840502198073751649204986858112464286094633110688341076001777604641596187700280981873203547263642967424335315888192718199426674598165060823935687509638838952216666015136418867055304855528767448456551208376282115742810711172389884679261345382515322693080315034674148094113081992353604838531630172798169096016138098226912233703005812951368940692002733603106333066107892895563521978956043024145094678717998822692436518877676650535725082046744569455073912033775567763901723624890009567155066534964335695182094502016031080197260311215701331316101039371526377571902895386219329659095971992981241700510097785949665674955707529791526431644434099745774996170255005216921745105633748729653673043301178233570679251530575735346235864354415980075534530878085576824088460843608773502918087879544668849860717450580091970339799450833136811923792510579019686508381483807825432366550320695642515568214798791670650031554547221470877333826032156020340751589493864058231379143575485267123502983054155925722026116685736502484111087249442442023626326280310870781049690281047572393659131215785844693474412143437183477578447494603840899284064053133510628717009076169638219018288229914831670602223263985823286728447987453559116226057639811684490727092275223185620490239092424604384610315346112258234667926946628411854006484490453911086534997620432367693995477648976059640860709744415817558358701388711010856855401070606601791605788179851791703719977701337579669589459281738866049389874323174308132135889333677490937015850913922926793008162276784821750092981353399106475714434584657884252662366611539798171987816815934759417220010633595660608929774752940019784381208280546742167310431319370241280565591551957311116769955112504770570577287182910075153341786447010245794679158738991597597011895237845714835283863817076480127663877377725859353723913591221836258454590394316016691382873476971187889192469437463735097248750474464605619786507347412347218457380661410560765990584853098740749803603428314820914075565290675135000451788005782522740289784056019249222216990756023153316177795031835304537431306581705068327387733142446081552047148663270601374441307553636111233720453776716794708568077348369465139506825831682477509261778003449394108553661541980223871504117257593799285743560943750489638825383070433470363289150242952932788468116451856453932138415955837633388617077779757659973009532444835745782974215874695700572548435169000385044072035473302160598772544242969803606849295407671762763331538269815735823972467666342524057793704298818586099481997013589751555346953694089283094678584673757276955351035005585901988600924364051550328738545561892785444520651331683897893561253956912211193716663112289032311577971079080101962614740788840563232687747464827881980144378987776546124546424267314834987559845013699714372230784733465306558462158357365836311101354120095312140419575563362177355379285591411357431069658188799166379888965180032201809265259530257149489548595127015541443718955281578507631436759070479602283136132733075769037230289155159928893604631756237783211055871836587417195691821811551296644879420236091417942872493707296870941993447899550711686246646504303526100631866473995719024237585714199324778585249605278027859059030833606373586710098078318654638332876560251129868028595686418713736415120382977430285451325023976178807907438980169306984675943182682428720885323738241405599025699193341617887391255123625732591840522835888244407593928834765395635438838578660197830467220040830824865026609879719001306123137718783062961498758618370569023305002783656213873075804440163261251587884943194628163951199312559216523179606940014467292591218515675289695713087087167167362219334741892388577166088466470759181086262323738799610497552604871381197241206672071173362069458993408604378025893126146399465781947423582952415254851852222875691554842214077749318437521614979929870585369130394914669390190654693938549965245319901892500295378492297984206718508537871505427063479117002545922283557445718518130979470469841516984536552434642741097155862289046358286128775105024641134280419685560309828187594036294515835942622410358365824740418689949669596389998091135794469899090010668625582857214097494670558413161334588543934650522960960856272329938396476978384975524826005092720618548650603283229583907289970596062842776402524147161929908015991984386606482494705688446431366744039544822988476587823740555690728443259864114591541242290193810136920259162503372763181272072059229345173069471813612295177416159431534548429614645144906205019261730546314867964811175001913798937922818747289589473088567668979967623982135215913108522411087717991899899483653185018110066967271873523154582248094427826473125550638268421255126021033280518902349098220573527663536053959559484268413429123529666292147664862414827547305311521255646900686436881555031476819324856269799575307609155173781845381891155659813124687490051226616076660823571778818900359287182817032613212393596534924247994301287189865257354467363198100365547799260584404466391632524017172087392926158084373944831240887656415496016054080199211771898792917480011317471770507615524125250909854453141609640943994595461171181356622535832637278351982644415016221769897754014397284525926671832948940686352033088474062086678613359038237082538632894025922280939540944442121948101390397903614163471282403318740706514462355316338676202030183957843853632035525127838851935737244390672745339458987622976192668205360119581948095357419840151881661136375200795997158231869389875361385728208041865069131468175922737576060198447847144715345376700881261012627039968208384089106967155322134174132850753848687931491100759519649670062078100608219132281263336918262101354776230446191912653256846812392738478216383865130631606028587595355269705210842376898940396939954029512759785220690171187302828069170556395319606514034929858731903680949603282797202256012454197278000361724631046967534318712223297403853713191028001704837766458183991104553455413944495956850356485222811325674925319586465183607224142252956176888498417955724710104674877669822727340428688542761243619583877020022020274089004253271090554610336582441262626726175317000334287267807727303657430817001621873476450691000664966677814578083621439523962606202137100860289806159389171686694204291455329983147720084828743962364090733787156262853938574411502198085796790153897150737365635676858208658891427229569623635594042589803635581970222218103469383422042491552626709363891870509980048255227039417932892245063598786136491804343286104438028711638876914242385850513141754128448204608391748254887811356596439181549712377142417505247209359602346017085498463343541177862655888245548200844025778816621120749449601265944886588924476965997074780082530959855372530171897871196852273293001905107142339896932210699398082037046709652943849960010181061373722736962220963945991716668560728746287117377452186859640876806112146112896151256973162252172477179373982286271317665025658320135917748549432787876316582495973766351954971527482268538511606239853213031526650670970580876179723824480893143460155412754041437580255915393140061799866581429753315151984372776295677618198712635246202632373960126012251572210624728150927574346658775317745501919175226042590662163355291638112712626868461655294423279259972924231181078567983926785112145529325999477204024494436891037548928214413853742574309624009701410440060097361417614680030704194656489498721616695230857449461879270845370319601712461761745559880123464596693857231731340895227288823645733429989726111160678906403219509384233805815727559557293804604226289121809739754558217512959593425477462277938546525760838385735683436687154927592127494385563794187819045291383344717609461901953590530528486736885131853015130060228228713222826009225143664643099933217662149804369413354784565574689158156059037179755540678318618833196989335201163197187177632785505407119619307283425836803568980551649213163943254267553308181100111601994324061828327887697497237332601749968981603659935956000647967510985433987511503895666543807852973826439679213345163027490350981914566333669814306330422102443499056132632313830856952289357634672028761550923362723305424427557807308391057887109019589495625834182879607453017311987008893996686135822111885848663598964889396981583477829277506409054916720567018472224631250724110398188255025150384191914754060427607303783664593626461469488376572776158050798525061024851433557416901428057782163259060067935070830473173906132618354144795466009576596461810428446898488415863249350475570012228195468705544353814443681260680540266544465713537391086354430715743513716519316035820388165816842543853872655782861121529803397877817380985414496559110678501611684024665066307212950382371601089680085192168818677578606547160851504978204160491693292112210437683290355337488248269947676728876441390362153806891076536979403903843942066834413736166945168059275657063502957756838260429643613622065612063149758057892149379531152974023948666777630699482013630320318070454345139098132908833381683137031486440253976423181357435089849904475880672802107260520769554279671217686571265927376351367408214092002293885642502418589423379955826293878000158672648481069921353543326663716471802494461776354439482497684390130706799640782859414027655739995462978701298229522321677186269984523800620853501022417259613285710254303195487238159361120577273823421327402611018287271824187157614059643314478373618284377032502468872223362569988087215574100395869097006933313526023300460904739050249651293957499457731399903936295162870765784238810962097644623257070903638062552938949582585072120209837636808153320876284117295617192057002465878136741862093389288633659134548626234670400556570724880090014232462470099409305995112878770821199027297414797535569030860965730055862628777933985738206298373062593234463239984628492005916271387064433905438614271568996678438413363939938779276150868481958750094695370008699315482790890909092055625260716156665269524645473318777889512515088146246653582357659977250330010822331132205258918182491001619497066626909655304295280568245902346242592849210578314168747422018261284909120897063423219121124305443616098206610612000370101088362236577181992995355817394728158324262063282833701179359517233799597064802127144608128443818820114042207529539052289277242433810573206852244948129536283682156803613007572305608675655234989499000028140648345743813354415072278041553900321219791177725975474325451843685385005027374433165189905387625115086210195499389068131763755732093850641108989438443230388665683907687171917684313364701904202020328846980820867354523446204056680205014872538262042370846205734139406983842550889995685394321727215101133391668928176617019664998035163034976251639872681082730468903627122460048710710196865653698602825055775346759032354230367789988903846789899677755883217640743348495426302647148698609876343310420768751185402689022185077614417164930523686339250857692281917761241515918953910194616043749683467610292698287473586962300145163888040969424811595525299092282808493652214636032179104888258367647669503527250121708501175000288865302521984620595896687054298666938829083823166564626163509562993364007186472567531866794701242344531392581793354756104292155378445689775537558003374425550647303396657591940258062432850913832534782201485340763650083885787465358778259079403449145796377459617230538893956724783821433931064339588297005833523789982539943730752105810945371516569326663466540695403519067403772118595482178878685321628621842539670744902954971670870568144923685393208601678622970361672399317467869744771753208231086468133132918758179985404216666308706250611065543702658519425830383173375063592973061834768548272154576153058165322721707638117924610671383516492530763026975368269345424494576737424794168743400274155654146967843648613309835136397790076298294983498152077023387823855011397002506417738949790505916827430716205918325818107314187308155709958805112918427760425624631368499535892158947670276063453450536948438935510446499366233384765487450269173863751290275543833332437577388346354206875664850615787495463000070310403007067609771624785010113974863278181327180283519239652052529247488839995252841612022730272397124299668052243110672330405521674091862489805564023620561332908321501879512122274439442138528241254297814596717492987973792713382420817315938290251054121743637621181524811746293762544827830325309363887078975158006215191931268174567573959078450535220699745310971046761249841595121630985935982266182349964965677813756539211556594548049673877617558330979311051023716775997244048825961532900175675085169264767625460916991977469409251920711331406401994052524301489953882191846655451452704744861965189400629262461008824697261624159578548814749744695037508324864355911408314420638467491153794584254805394168777665047974602150137992977661878528755570820966626020224932074487623683550285571698921105671125323505645493624483751140824373612851752582971593356020718480022317364400801442763747682892878571874896089311795567299972401811295082884685945194093557258717134503319907334237504893512506744380527346285327086650622637351558059251751067107935248190382771001653170756888870297838338433493878142766167580995040450180487623384101336935575141898986782176178673283950387329883141650302322180978903712037956962116047942642911105214286460022048930593313717275828108296614469116244401065786558805479882469740249555593845066768023723224679093097771719424437481396509290370165740163428561998335995896520772000985501160510905791158318035251334590827835484592781241997267996370837371749318684136029187243823704167772022950015686773392343124305778397720516622676655615345514980969310600398863155523409848170194620003039873525842552671579918441247556624147111204314441319423607158587336870804949923983658619164559513673563372028894616253217664317780837871629449699629236418806398120083453834621850521706645344101935448629642826622811849020028299993135579342557379551689733477060585946241518093293376866184874863720409563240771782801074634093459677332922897310981032964210571410997451196298664268214157354479255655171241413942370651898033972340430579521622901464276156092815434663869189855036170119505694949149619893822857142119744581203102794612201747779048137185787693281306314251030321025364343123289708390173251740643868211418700193792063050621499550877025006690022779548133058281043730752557812960828079085262780980763259616213909498875118926114436538891245722149694920330094683636719445159041400391742197183201626780438052420390183827056321996438994776604011613514621799648745651339967477873493412170999246070149725131092854024833911679211194981554971808062648963542618273980185072109933848070186827180756700987761983970245328499094544701662628104826700712979350665502816317721096344160020618107747910132507704227154238679647880193007775224313004427266618446222742100418541110834770654049797101279294134740550584855451939453050420966758636482829787299078770856886242446740669662118947814774460069259508800727174912298234492567756196897810075477089720073073832811771267512997184249596538208356007530407901148446393975853462482038604270905389881620921970026080502867971358922759245339772012461577705551557756814558134215469857805039273016881251515406057418142871109839020065742755830613068265614882068786328866981679089990623518902443694857520717849079285663690983475707777101397382478424324237602720132236797510926080548802265600271545916640281514180219951318667517045718203091951326734824538209636330943176891537967706281146470096575627826239245218663665109388906439801744489864301560624247138097178199038989629636595350202547140671816577387644607551695007091573102316660615132262607218264731054973720236622658095636017863745218140073810444420278310426673632984612410304840040499857076001398178069741753239836214403463814053067746344847099418562905376116926765134797639380657077747795558855123270994634875544887118662643244511742496524731805205252406593903207025796690477961709251743448261922173110869793185410231020540341380817001075636061004626626062868190393821087596214164893558643640917100851677650779366478350766130040195097259319169780425404903749977483868499354886069978089871663646924675871196763661680779810212303622721449300073882005085091993067612248289720511510156761764849172757193875863520142972403284300332342569849808685913100780598528378776448750384778206764754047954323556987953714599539034500812166877450730848689133352121584644582101871539402189989245902629357264315739909393267919224609977711666883633222211945064861717601458524132020112911635810591062372133616059948539900346657532113861859019086813918145699604879864297739734034488056880067091271967679333885021322256810126488458328065380549577220491387515031721082959196973878285671427145767276319420659741916091034672323084103579513850858773116543035549210524884840000916807303170445157005022918237360963039502942409463135071155063361983613376772526126828934328834100659877953020336556357837324749058590962650828490994793076986333845837592804932532589886089446580728635380796995274468690703112854688562467126386254721121256258428408917760824742510372597106975748002347365034152409044749697269106216681981575363469539705473969084739206737822819943492090860293118196676222823512087806438560023810650363566332329512157410676801946912848899995935411126010410202789803848276211764889778273634509603248759580740461050396966798682617186650154129520048028095127308109375582257661958724753082492565130799622355975459070395914187556617121905296361323185252545343952740620525156851242167732812942845752626242355532821536542655978205809057653266952389491481365012357548789239999731495939489768054459040711165320365577247497132963217072962087169179105651196688595383699026142098342390651644804785104033692258690944855697135823321802127612270626380823357412980558002523079526156612634471120388334588406242196825310981264400879083513431120176212131104739966147874294613027908091619769576870489088387445119117231873669542587350285898042036377809214552349628300882464761200001110971000232773861160934612822028218614354012197280945584713524312763307643244638851405597480916676888400749149922392723241781973293825253949881130849881335398504384337256845145049752417928762038739262441531718899438474355407486580710594076752857345974091060478078758545894597792971687458529758447504971255334196959369358883364501120495787556836102936361757174525692817420078706786395971742187329539934914008235166672328008748827987385568727343958631682963258143573495678807533985095643983209785923351463175468479782546708434122459749987663285130336450274582054593060897196283194599084076126917899562469089345415432954737144977330659580411931052450101372892072137216210619472036444187474305341717985081982425534076915031061390660785085076009187827583072442994246597629653545221649940282523417096107222532243693800420676213190979732043360352912383931134953243930272571898178456191274969500434419448010154756395185372902773402318204039676812296043282157682943860039162701085942758858328774843658574489577536704472649653901048637994106930462283004916684690766427974720880619858273790054933192044958681413055429600920211503801007139851253080716755545577513028009248662752755555392669763160247201760836542384296879963343719899831628900258277837744099347582955910841082596138714064303007461188828384638862038678022453916002660563368810128406801796176741968086883891754687258294037722850521148029931582446822992682640980266260498231559233247482147746733781774115435610769871300801857019539974360027701336845793955039602770605535291892856181384844232008654652056646207100091872037145794774367499437138573492823964878599583250022733653461830574040503675710763691016983748674081318570426050689283796900484098526322668724095543523879143697325604259076493542469784551723416986568626145231113936408226786543370837148983274266111481101024479295292671951111646122186816363797836563346041515142513097142667624743366291062504463485487424334129252892190016081397172160254677105749277560367901695293425609641281510945805272775383624086705052501140441737349596562996601960149209044885022900996026443495880237816247829132437034174702184599794515555388872187629560439399424366082013484099772258940284681901043178621782190716176475526817588858291583748573597365791386745111033027590682955378834967942782751031371572728470815200486850738435432453034423252247764062339371199220454921564046785162823216537063761228336114526021376384053099691807690908587699928588825588295666855997087526816040873524464092370685273512638545851521401206904932437820113030282547486904723013299393789056645503045104012587236572115661383778842625064409256188391647632163955610400850166799107988032030132852200131959238910859220167022896523646251980158059984902057028616074609290806840466534506070513327658654346820420613465958155774174994569211263897973301180396811329489325100791151844072979394304271406222044654390573912884659577114889255630652308160458604500410853897108330422857746090524868922700631596306105917255855790461821618293699197689167592510935626784776911342780635613022930586918228782188806440192837219021369807320023858297990792527455589584671601467664639387522241124214123734655959284275167051747455315716341715937772380413129319180531864152563120079768904630192997790105898859806659514678145787090394995302144597942564481418064984327954812731697475897214613179809344606892980651897534225754455082982432308540596216464521195091485712377069191297747482478134261193099336775768813715095721858826107679963335663671407031595849407229416163363973247151653545736494804664684741476778215762912259520371973465132360581199263290676180920636379637477921928826393417108493528267057151891490046169827743694793272824256636935557217892421280122132839295899070356945369657171364266785745260150519930726853414190131937591077538607595928331645618803544127072985644321839142848647512176565175007990544242291565720279558583228730299005123646414306589991631910134565319403258286136311913234413587176013376848931193217867255874962546781961734067528756940535450084152472919199224541385017872813512289488305073461973445944927940524207534962447458353647484636811947735266877823844322428592439048799485088839793138018762686760984413861707423810026745756241696277959340846524110590268841483224556453018557148923754046050263669636047402231746216845648552516256758137231742398464620875984624436957397740820311451717240704559777586129396784564717186170769770524881445644600257811917345289720893638683020277663449626969673365256343933093024131655937552417339258620607888091667683500708621638211253380389576061827939557805555254096293541782910363920802528124332172090328293240706814680227982783872869293603669050602831143581797792559856872026500779299206545806316174713558289331720771312786075839426176836994448712948592992834121974397806998536321847607991483478700941357857765485565923189584624269831596007258429402948476841506371036873553316100392804228349111191521145969343171972453314756430189796371824988109175695536867489806727080926456926980725752325085459237191434106465512073433141270213027915576873999930250721787103148248880092031895804062586403629493787546442642272766674646536263203884750085052095143860903300260652644152163275092965984876771755566925411142860718437199526734831244970711473203896309937290077864737681596942865717110657940268472222832966867883837453041861631999537860172730859626889259076354619968131568415132064891644234751317529401639968232844533399499604878841177129461075608849011251210963571859227385640809889853020252656345805883928272569739926177869219767697382741680803012816020353253499040920922346111226622311229024922730575018338753423135892163297452013637926373592198365511217309488841033005835141339486288939447277710509850478461515179710288158353114738101174697785135668817720351967558932650765292765756606881693642212785240220827270478362463376107731563516950633721765405959327422119254161794922750518858769060488758297589757001398063135494059712787030138387127332973204765682265929107932716888222620315705859624132595343848957376389677199707401812816110117120535747061386509379594967972277448295168493860006553581673716367476982090039824987062169365496671139870901994679121539813715368821046787236700159765844706832118624250004009917034283280890482604281616484677260622840526627002103059745499667894769275035202949061789947848592427442303993651110498272779391765122261630295756790894201601516907630852744780610087309533934361772708401121196823615839861013544233827796201192675591782964582994153559951457218490115592289777877957917662536749414387247596462462913523302903824212844906727316011652319355041120167028680324417393309654258796501991814450607740854504976935377783838163713731426034059316137789962775221420273077231594866377388688118633286367849590393913839228971507611270222904645071219269345859413588501315481223015657018381834347328542575235717662333287024118204029863909135203553092703145440051821434771938044229550895162536021271798410823968252190374839640891079244212229970124677637666171325868702025715122563563728303144980336250192806076576500568296232000338899349994131309305609200500752961913359812559079960090503890984862654112628724415468788265072535310508563436844851030900546451525146221479077127430424360584094895445066665697346453910108659524423598289535575113379367778458296124905710963538790706079661015259524670307060919394965068775357805260575405331709922603917953481657564102420409290816897416698387387223400687641111050172830111058858621795036756134942949077573405904889974842058791480911772338434976383248526239820170497470397153180003984079691378681146390767292894198725314779431502496703782517105224024579762949409273312321819563781708186502754606972697615917399172947398204985329923852191858538426597538021855220230527448710562412844706898975843945431842374403218551163753719944189829337911328367326723753448688794643894005356576557499333848454134875067643189209672684008074178914575681788526053477086923523244566280698570620192847887640804305116186796036928767744236754848598735715203170306851169605158290992010305695054038695914355124161789097167128967191619270619873243420523150562685201737493350639385822033503170974772548402917483413058941418519972958046604063216671193368385864442536254313797514032150734403944304540335886798595885643254313395281459202591956635681680801331201792677895673593865178442713108631614173186618457701989559273175762153159174181423174562926012308558348793197146619766764400118657654459652749085121106511535806088521439205412484633151809533424090926970604698257647951240137633470150760958643005808537531691367477732679917833640901947093760587170167524876689145403397931716599581238829146623984233526040148379121351117362952828476396930566156019783479612293933809306751530879345646524083467629311507116602532720528322414052024724568290507498330231801702507852391423994376749200019057433762213840656138428663005239945066755641714692760442486651420555057398122579977839279764425230570923064096863771556799372613478059620180454969094468852843975952920275388253278642777904103192887560383314411627458123071202509470478060956294792650187997571785148142488432124779406777360279873767521590114458105644888883214842745532416998849180709163657683650941124959286950162341003602217060765622847892026370506242765000390264199196865880069743902294298476509945234270273431339177911489138234142152994063192979456380586960036627561175045051733961072750387876897987794829859401246715642917631152224085264440974105808668820063764467440311006429748292591998239842257672281579651617129281213910407782439948775846368503073894002446892720656784725351100778970970784849959499492080122626598409366014868259231510777484024090818697488806665546135884888221792626409048538760411919575266033397964260844507282659879037121287013721618055550497333564326493599902805318559348248856513125507610522908074532975373745587492267631046754695195753674052934704350848056960655720085348327770738752550806854158319968388624007881350215659515912416693887997954576474571101832220185597235290050808548405057504804226438327673996459559786642580441140890094641965744438757108021417543831154839589331934628249871284326576523736513887869145311226235675171199114613058647294616145650097259429854511929640841716927223865591485484365820172424568407647814632660511290611578443926003819491088441190875089086510875514186899892067958621097262332604387153108529809953165082450543720493037905953025439387631286991042383061202631114917813051920141935386869192063153904152952425684816245156193309857709035878594296097965300623396845608514829140812386532411891594819492231180520576640927949612913960161229029061501972616851113966053584853381091407406797163468648215150720463361059809692661093068823732593825247628353563577814480916507468224395481675461798615145192483035514331240641919624962911833184528100455825398768581999122343703128190334699135687625578141379286579010561959304187238849684628851547249824006633477086326848205178751929349634996779017449980788494423091144529170537365389666127273617815313401041589041645971910899989999564799899981232352317197852711333968195666076648597111697538440860303326021902431834689047717424482071055066697025111478336912880421125069486692147746310194520336862939954260417614629534793906554282578768083041061630168030969840579627754255495682983972467750038679492173195570899376987741812264401818946217934263942329162180895123701718983641361185678905906614595521725593456392230740637039512394113834371670715684471635656508251974584395550585951406997103801216567100370656754844062976177943568130112833001910059288889404070408269774101999839098697647879566700692687287868264111359185217181256221138880008967507072934734958754679638856520100793046179019573425142070957264579995580409239400975079020592031070633071317596705930259041326868405495956986893621560032242319477140675440967289910165032697603560515230225122575721369317499161767549427105768457710135357991335870684577249093570997735813636467359536145617466022306399117728877471066739904434659865289980747817083224429251238556216325630520271034657407781020744023796062508259138913060793027467503807134014071009083556932662129677065181998747310759898700046419979673198767562509731773842771214682845832154043425379372606014143956535436949752641262188695106009678335291445826093787966339209743622716265167594244632474476218322862957674588020920193856899893089846107316831184960669537034952783351614283397665789855348064843842641780782958629911979016766114218913947815111356152124008335764845580567870498233553893051252750995891376434994875883526458779942294427046825358276122243881792673380805639297318087721099550253123520979542968420099161946871953618920649135468513930269697318418419499355516268815703562575300567316999055224214280408605794525192090736177890117032691543068263017158103608353317583936589048525916433013231164346063982559428309329223255614738567989161011370762304273259088781812895766179531994842557820617738759301427997237806788296008725232175980197775066533610425976595268663538523339694878825594373937924910518496874761630280437649010419664790616081563630829978401887307108164356720790690874646564811827872128741473876325055180887163102875397985906476568302798766070223215419524488766778246561269876964029027518233479486580416677177824375931011573519306748384674153332489548017828346489366694711881908716487982750093277055380051542658758093838309651803228469588911318499056065875200379283762443890838085433394495698358166510345554767585359315057300615684336662806764138782652336178788701025236309005539121570258599210847768175417160963163710210117100862946438904597429713280538578722808561150962927052377445447599971986540183457554555414802810243781157136429848849563395360041324967737073213189985086869099851453387234290992923330333132840519998978665477392353948817904574130013668504854315435938282535842327939918290894620137010951348867203689898121666053905848176181834773386429594102505914625603591645299214321616121612290670698742888464522618399733816960317526097903401229820130850777319844974936690645728004085955969393453243986500436061322350298579503463187974207878448744472948434510079461190024051640566194045295259550615304698323771142749791650993464970820346984090467604715620187581910244997495348450141537326703035238893043429832482909815209028183652100014994517811487258124687584635411347999745779598964610918108839967025610542150021662189919810849808817767734519917205674046798261707902022596305581642422753192079104246118528959695279666064781102525886870959842188460824619474245384311258452453356907230214822930682809780371248827003108809260966699515917597341866960686395204146478947122343362171993309877436707592186664568885701020001220856907656060836973636605461713587545111341606904674773235252181489085847206264721357661846597646195730431955377302199412262979981584804996342960160826947666925615560256205285575803767395247433386559310762570758740234165787007412065196500656589987474675141496774331707278262544497860551772358544924247506074948429978601755172680447246074147351333484738338215553016338697367364240928739216535492658895473671148962499035156250629260849808328747082210696409606448075508580927976630269617277184754834159733350816764696778676824228060495723123558465028000341889058332480733543832229536775217730744542279682672666313508637386029534484354942363702081778921168116393212814260092229771633900536604337427219888375547804955554187210796514384238104955672668805241521009654368068736897914286632086593921994293593726603310150101040044823770082755595563446101990193180106869290170615979192868292343428390816944220215722979006409278890899341806372943450874173459612352796910362395735986286695263256920823674090810680177512366660452049477481459741690229110119104159390231347132371186804100209324779748087112247101689383788431218870660282723064656782005525508694698518020930123779004646609122893425038784590907649473204665188364053224824868985006302539937208670796675208331471785252478856874843006077149557517542079669953049192567935232434268608794145034955779366165001828426282839180219085958387376065690267949618733002348165933384894460847658509713085058190564267650803241787849735731284210501517666667688938541494440974929573463481320330675599985103639728773138542580621703771473822309052987995633745200709391156870615129150689878217279119121684935069314101705200773235001761441799496575435146308827559018497075552119364784505458963369281112965809847461849238299479366426872202616734575193614993896940791299470986492637012954272205348133945777502165173918950921807561856530444600070086246272570889622939762169520264423618444476545183778966441330034892146869475813612007538885234437371940618108482670705707491629539772835667483150005192710040595961367942062205978731684364175187211424866928230348510575724172082817141218491809284834527111737107454021416523287904724963026763815178529046341197038759367353245411120595907729981591380103846711206577001041609191695337193333089454239049449913895944689507169117753002168642044069596236953941126744269042170235809203352433358261413916757798546838598141371057913192968450831558369120048883086121132089975039955472529089619069575315652454395067327605524968426216900593014937495786226202793513154723897516634762284345871642432667302292298671322532406055688167025452616241742897012887402760979635351102556095047392416725548026940295011035092973704494692203566619922939589646616595348138955112533942703187278465350002190641426148453755516437821711490063119867759122884824012642763790066993794908036328698859291097403533674811112069641489187753037913159546773211395274398109883584432668864156946353744770031255990215227014778010087171546690977689291516852132522334588131958499603230956224856710609792012586910370433103508945563205399099708022500951919767448212621129085189926777162811230187243549269540518489830447450866189027591391387107008056064570350290085719839053601696659608627076776991284185971838263633739680973997845454616705621901613516134243952321381614697956364776338629047537127433436563408211617544471609023273073962016153546409030076554496157735580566117149984077171727264482104295425129383034892059416811912540087482575019524669730968630601719910463701284174534595115680404329586827561075196483566229174832056092434361489677680839158764702773820722064819841576451210056701155930003984146103964107924233072114897057196366307346892716434870801708619122945711405852784568841325515965377187662631466206564684760747243745451503227809206389191169114069127634925060131920880271704911031009118088282890695028955428593812949036579186787393989442962369206061196605486725196152867815082919639949615276184196940616966020042495055494591614397451687802686119572314867233586744622323359292376842682257994179287259233511755961891202055179725078472813908953070821763974767146616654588603032416140357502587709796175806295854376799979614583454028325444483260270304096639359349924123164586426538966541454810010204170629353724944796572517460933932044494252720280947221341485099967385858116781908177458426666213837798558420818528838359323222924433341295900933539318634695256493068256900923673290903890522930853671344379555254467965485694613389862025524345377870517205008555169688048607742159606117971336861256137351176836856730446277540568689610511223419192812412551503180695975204422410448844152374241292538510174256663920929140571874198071554543604087888519513239574844669660603831519504872221613298094698342763321500702646086008205726757770445309079904757906813474277141842362549151831058074307451970644102431759697804808232701920629514604361170381002055030065710219734852353909288936435424507513450943526194761414951160835640476621738363085873512476557748435160072779989062103586766885806102918011334414652524076098299732391554625312600659496426052563538831224268440187590031358860076832688829930407503706498197125549546366926906234652508472943330458913365467020405180992332132190479516167900133673015793651848489175820255954084437503919659354717014215697745197380995414286877327839627896285684247191017242350633578774952410670933796108536027085851094802633229537678405003530677017633263699204105485784088788075896691987497499532014024637786600038057723359526340665266299299231909196388066417312964704993329489702701633759065890991585548676634503256197828884823035489532241441384293042917552191255815681941538167040448839559676342635379822751978314341674891114341803779130781989537832701962388107697451625716848254941745648666733155797656371271281483359071549160702333693017543741508247411620182891089241306968818348279248072805782860957133156551263728520744538892753383830855683583919367728465815539297115600168565596621812294895913034033360171865485217673654378471147284774223578442106612879491475731963910711630228645439617625937943233300845498702685938390451552467856258537581061081322902485020214968601958279966942253579333074188656768984208268579836138091288676760977203808232122776978777552422465389064588110200874802068937017045341240524503501436251822993333387774500860906249521069727919600118765831677434540734816101024704811750912909341043462044577607907363362935195036970903177442151200698560453516710675331372165348358485662259840249000663040330967191651013743316274279028039353320380752255752136900627855886004802176170532147009261089480695395565084663896993274146255612027280080008424454689924297167822188528832001299271630340027063950713550231536059403504989936550913038840190388908525214994697628895538241254762008647658712462173660265128114291382173526323959227908438965224628298165361705842414843030715526156684977285336158779279347363897768492617157115932953409911186108847888544692037123622836556570103637645929981798939500782043017830875343627124142382028647345803203514475379838629311138132503112335918669186949473226856779280487954734616112590604884464112724504912519943946648794417170756104605717254396659590291855938926712969009159900390745128278505716817942165124523651629120308697097741281949467656986063417304534018686204075168134912379494512245283106722813799353314768898428787982301075957527399662347088062731035921375661070034113647159523335238373287237296908424965835671192976585940667878804597934314309363245515425201543174388487484664363561498055013551534707208610841522212281905936723926210691413516878759306603314048924496009893774557099312644620657607675342388760278347455028085356489667549012052867645749651793768480521765608477450798240220990620067324874801829239956153957756074161189144930429512106892668744793148902248535685950866466954913184272162823300441820546795216946651456910122005902109251282745269918506589065489160147638984204776692565316736425760090670065557406666187253454025623974001625057914442004066199911689745346123491838613015343420448276770669304086348848772812763542411411371300004401246068425480240463055311286229095574456903796944142149429138256590720133801594753317515061080620302412171289558866851652184034639292837744153477697073451602395321034366629968478527192770503103696260708412799225117370996109988401213721454924097109505231436639732928566749440138213739326860137492311581442394361085947048530220989112464895128549905025117930810204058753967849007549334662784812480639977899586834317850951198693995990248455320402549919761106790464093867806491759999910527266680550043395273327437194058123635962775714107845072215654770451432988749763648013668862802977780144105574143183169506639615509920990087996286871898890737223007444448603268816171787163721693630218738383236128963341655351279751608379138985478883302334950733091759483323179218532444065540010171824430101871796143985556835287186552794824849488211068271109219109624414014656828583134808538618226265775587209137448428682746018474448935693554887117903103786514053008543409453468758419158208053256262562098018910232556585214305294523283085496211496483801481029194057940585296224293179560704838884429344230257513226006161953798583608020066833965693557059594687278445512125822297486702251892873856585297032270489537372085124383091678717515496962950707949677151951179664303371698343783808696930842847674999241143886382775441903076231995454259431771117667821437408856420206349563793606876098315203933543167529265092587724884643828901251956413813055384560247370271906335564901789723944071674208353610798867639502275039300713045598155746206970705800302566179347506093664370357641080252651638253246467178831337521625105051595815862594888019289745615627634149495342067899766098692046667003526675885160470778749416690658553688524976610364664143784221794151622080300182818609786020253662111952335190770149830204661305680382698953689868725147893126247102866525105481866182584081245319323429804809905511665358908638935386967523728367542355164588281900907977304463818091719155674710214033261858383078885389546877882586908950776560699485428685554757905037475638912246374803695862106192564771571457036936963849427390712387400304005817635680566699364193731226988927912728830760133965044951107531286672159883192005468787765183033600953938442509173012552150044352102019744448406835547552324206918131915006909048021031430120098650486703308538631093027436411966635261255150251600579744211660016919936555307121268951682900375835901568188559710977149216771315994907249108639023803282637849488418715038393029407840700156134941173711664210496773881631193263895336922996799002927281765197906115560859149696103179362366344464198938489650949258719577097798955317666394213980340319888323940114504153855871286695364444268595943711183232381244668908592412760909107532422625052187467271896143424228479661064020885192434759121681118980131325801078959606294391239316383260608916355800707565407784897085962831006506787152548964598285607917305988286190915448812223138813218464900879821594427724614234010720916498657790332141531252902745706190402699929503126890427370625752692519671734649805042821452758979480648595210380121631231111002567001746864270078277031150728760471435860329408203736071784783595576633629752358388547326564944195710245882252531710925011932091543603408479483957827260643132238168076064121463456185566686290138595312841920151796921127635202380800280432329319058899635414350344727396147176039589806558098476506633527485302589761965106347273342124645142371567387102206629535592398324278418477469436931400618228354699500025784550785012902737519921684927559051429792303582633329192380808417219792478426296327780267434047414529852433199746402715021658847300003746101207728024381736599936025944198957301124195512752059393777707586547509812828160655788822867315565305638617582668524720612141508351700358074328659255262176714836986837176286168739760931816366652892235677526065696533004768983687616561629517599299714048220769631932180407603322949296110477914250316192661872314624820946026988571787560555811997738412035115875035779588759433604520391552643424983711800921695049397072692069599359226532847866603556142510539288296389545711757256698580187466392702942266321537039022844606792199707291096529634927941301000311453232148913718243441422674298696004539073032933724649021373413274943679929703415419315626778361537686144097926745653953402750842832897403798542952515600279244018730156373350585621749381824561375783021704737106472575000505207721422999033742371824212763082415005685141500750675239851335176782522047215709524743161356591905247352782244489740477722628132221451442487034938379798915545120118604100445630716397565143596611570399443214269626542284937703587308094215479252961868196663127875685375747655407342085584061626034348702278608583831309187329089639772665503168900283603903753637264521513289183898594069658003487956799506676582103408827140430430589390043087340294624095484394149905904224208403967388607167612680295059262460647072942031002642248159449630790172938200181707229703732308600106332845350651556299918809093266782954919173038740878371652723612588104688204806510657205859945964978294653922850836707025804151704316413981043785983921008811886112006619463402158592867447465807340876094494276767737627567656463427977928986680975445081771924385392908392488458583817265826070609446768198826317816759423773370563158694408573346270005272779464905961106251946470580457883547250626383484118258406130274297441877938971039276409692324384186539396443874775234077884200481960928065818228867373904700864710396792435927863279912024371113494899206238794998293313225037513392118303852252429081648265642237472901510293147743949402620266934718655829664538869352225582508647312086300080671331908434396478870759364035117333547757794541066538258333656810108982148280871444734798425644193058200935879132072861958689649324656935898714610782584619901263599450852474123185505757344928667444876771483601897462299346078994618405241154432336053337808041835935261611914683986658315009284694449776678470827229419346355846288110014634795098167310245391309375297461008327932208122592024990855524556687895701945798668221844354790113137212696667295745491294841349493812922877147664466508707990970461971180601782185179525191583210795641490987798287383293724463951573110801020308108954773464956381603661906989113679553881067666805397899505452092037210763625178798611326770232526844333008440919893806360536890998488067884065752363586342009298070763415260303834496464479435510741894069634972094898167194400938535104390817868705040377379804890991443879378651349959498833968327010182829216025667578189934796251663104464676340703571809040725840492423278165764701949189633390726392558284807176943984950484860475491433616334439745292761387785878370920876178690711768808081208557835058875243112228159475295049404818916442329497442281461112290436964320223631997749355978719137441887640194300040416704977320330884538242617657284709723645225298409496164973842299116131142831213059366310503595501682381057912804923418951035195371911201173844487838582037274322377304286155899653592771825429039543857997170914146706409341461284472074670938142709734363840867905289876452310600253514766803759672724184498504483280239493771272194639748981252968388109634815727875819693702663868724186444189612894716718507513231354555189501640423439430115450755407149021389335847159497794035798712874033885771989873491972938225149030780905782052732295956774748729609254857650140845000044523033821482167408020064498823928008230345243999941106782271255082507302500704016331422622471049578143540674273291418209670760739666101587701214617701794438354400442048510512056106075851073245901577958256412565206053210840888159066630621514295981225516102069061926573265714556395851283186832499405587451121098068714839956737427555529863904588677059686887557208781363395849670194033353642763128299524810250952556871443053705427877712033344027792235324538308095002379115381961710857490204171661746662771513994291379233477971424083898590518692065340370698871153764276649530659928407353115091470978793369213318992737412049079980258706770570354574592580862337223091440969293205326229612166563365156596380250668964599693775158073016388064955905103060512141724407782562616653334903426587579890707486635155834384972915961975056657494475927843871092402417578972667353515830411873944408601163710415282519389362331517648113103829093661410845662518380520794102852322982496124122003749904144647047249355380572435138803168056983038190921823182004127576213149407443796687140514379796092075721831098247716769704214128134748240695186850771782547745663212825838220576935397875248126171699589924648490076721445242372090839413939975609541224849762130057841036952703389045007252462274010823254124585837383371511297625892665822919646907248350171544218578758431348147557732568335006129625354004255257591583406023466938231564444804705226140836374155521299322579221688501554222865431534008194400705183046901030880948350408612568850028158470653768537945330341843223555700639918805171064770288977348593326371027478015723801785996197575265998379290100458054752851495904108694659749592904414970780746074016472520816028808199558705222801375441314140760307327056694286218012167113748997449422197866341629782169687817147012889216260885829505347335558194272341078077921695809913564906685596283892712621094993997973886442714403816633854464318169947548453232927257401852691366070944639723475103510539013960927122269216157857456808249905248531329116523948477445218376855566932394155788498820969150698152655739132849232486583563404348756471708665342880940268815975960081929469988390880245822441251852024011919872083600749091383523697032775259176958784345724390718912058513297265693125340866114348006320429638223671900151131643423018506699690102843339958427279344599774085838104498000669957723958049916646205622901375162934456477348512620113514607071270975423002250827210201913090379763628932026333610261179799229424823995399974731502084908143311246224884078446519658858603829269094539696163349037858003139386162694484575148752809595001189809957915807200044529886615959811519816495656129176452670601866312903084303553039438037447812826412581941128857933765341574423277330043694933007385672533844612635153463682208499788121608193487848880890052116793154521070235047162438798671512145199021191439673787789315726894099833594943627452817031251074066797683772257623619766230967276364489543393394091496599937433768127583771557036785472118794695063862449371378028208608367396495238425704793192349561345360146835622709321793056709649743599721419246491414455796688681286108133867814057818049154921630191200331305345283053608861476344279950862524110414571127222287610737028525900611136282124797782870080288152141675678553466426192557391502821056751468266668446932778188054058352637817995113360439840640655977229015426620126901783996444331765157076042582179671956175249486644341935752822415809926810311524343109809975698360673060890655127052696798722949613111630956909710841676446281701796672174932217874624259285165077470090101596144329238851217675841561268798846108011530536589820980997108984908768779022772122171780839548676983248980866361510618596250019424595356711507579134778055153140378965544693169383993282650572017995755311189479530200578787852822879733016348288249421711112486025183773565871350403430042507253696048762713158262958295675855140651722561250910283284679996774358175785766351416788141300296929408690486153088518180120278948406789519032957316729948397697488564894472325707916590997680461525540893234551872877380060652857048816769323162065133210999303920417125563652162886003414971450291541556417731941866777999567087987674167623091949586058773513396885553391120233781365797823124590306338389052755233669250246529890230724695724192261316467925324044660426893576328207326017630985701509495088786246682083417866750734207975542963035877470509847598674935803290743312968996284377085289539719449545462986700379082129455867289321560879353652950180884347405734581558203314843289667938572981828794592740113003562032696177167708965065692547256239127151709132295544208814879259506717415270520901682803018352967503605493695614323115603678886008193312542275257092519605886135280508457436433325338473269959121127256169155304798223431726429974700021404035749727169064388548615103162377833110052845000755908465273075183848566977559302175612959420583104045151967311421238617145097436849960782436449520872696965490452860167277375795783990771895228313156993666501827165691439196405557749141792537976076168514659922074826229098345169036897914010949110354924600157021643967959925884374401439982846491202067909705049796534304843695405482067457404148848624144222708992612059489902746285583675260231144378339143535373882826018846063832440702962186256174030603859598112024348445339481036332288019905202381056268806465738851683533369003475739060082076054261538328903424451039739992182600276757414297600415400038320013154942746166321758652389037805590211653703538957338049536348103471552376586361519252659145485848566686924123904833215893917612417673728591116947137253474712667230474382479593371330924357909649687622751615330888147633478202856221063128417387778303631938151819412186610846882390982446169865062624563076144451115951152690781025686994400643250817256827368786687049732455043664436143769338775179112520308877495448572780103133270126004475465504880227805810687410281313212147732404550748284317627225256172546912047981002525731386458965311921852029700009476942429125843411251041542165122253504118524890726004094031769694347031313512731083983420167519309637273044929210942291008121476758878649417897405896452804960537126875005760471004275516844320290738045987480519319023273969272803089663413896950989892330645150578158447818678100303675830011981355531800511388179410205989601985955521298205397745460283291778021701244085714125564394687093550345570952134703261148394212545927503478308664936078008886049162030917825524168784285439339575595274589673669567185813322445110865332634711937011209508366853090201089590286033222893420437903990437855770683288373981508425777126442249462506569254125684818204005980947416376154649832009293669250337059659926340098795350104747283646498616333957203573724729544200762545975016762430561448379147862594701034526180630695531090188180255645241366829279090569645064013388797890163635811224777036482577295999346810141745028242442517909399725006503895399632691372204503505393056315285824236364244749302059536143369593099943102411811512561740050063747275239884338921466562226010592529021753092565940252446690545858715821746885529023718572625818579504083740277883506440504325331473110968437588245866295662870096850306277212217631958906903097571928193617322439335587258431063277229388724327404543225471479369669075138002492349385290879510497640480439176103615355647542342787234432155150484779422796194530047515650340798040347906424580524759678997046733932563390961740461822324222364443539060628519324371541544894088570399670868813531454633263548230130785000704148315374550578027770786474792269281746646382171126144669799647069761786957352115725260561246667458065873018313399537897847501363244207722140969352823676197277981412402761935673283792668919407485391139181853465116490121238503619250409706011523297379982101558035277742775516153469549137945300293430593565924441625630104269536944985098554212450012633128042006625997450327178467085804139844210223906427723988285869874650600221805139855807643631519832689004558910471526824995898465996754988714196840276859758855351539740699148644944016309819355332270309478001407797280706530288885988143754996285643070777567750980612968501621721868024095200762293576262501864128026241341294414913762417755350970362429433026177774490002870989833185412702526832516802676033108324625504492999504429777180218156321146997377045311815315283700917076427625740914096241266821642441687602928124654376057356144767837023206598801555847997191571510887689088405783771594635654174091571070726500698961210879637737354635950452588704873547216511056872173624578157010323133750932375427162470138187241857618559433693490000089605240462430106753754743485772794735533755246178849976574690223573328066582111834167128907168109385379490816742961471358972351091389152822690943201733708129822690437556475217807347278671310013659474152790696073023301242413760127534550538167442613104648619691172023579429954435531989161265458999094254969664340064672727951047515592234350900925174187101287568805338831918478308252414661009615610181432646357840741217618104686621227656984823548071197407041945449350932370599960533013969057675036376323142851357861871370998853516696419082359507732373033378090369534755875564193499019903305947236452359634550300259967379393253377548693071156998603900245022532070853854327097823617896137909181013608614615331955790140648422461318631122067600177474124691356409256403412405337822525077076135466814931086761084408752402322177277432153139255445262636209202061661968223908810749389964502392914713322326810795912179324266022189558019456739430456546518260796250537067505890750227276227492802421146241155367324592311707087156044379676732598868548592435596639846067130858317392281888597524549405818134160598933825212005543605486859864141999258376736287787498100370735244496593334550125277976784996385525681921689533230425709071218252788780886111083841760118068650466213586618502245641268718940314408207599709667477213447475456506885022398196791276399189632523724382136346384542345485237948484732360040394217361070939109725078450791481366718276348743276261345871490475052448416815071040167648944609992379721181661050033015184910198441072310309004165736679927849574179727716282742590097431908265583633043518417545156515117653023016715982052191806102417611141206394766807300299521980321444705074624686095970927184882514398755526454386498969021123929253263837264700164341475188570459033684754830542281379839402571689850544993608287626869049203079873848953537042597029579112649714085252828185703767411881514950197939539615872440807529763539278823268826311087072270793944432494211187537261282499390157161339921590485522171157384870655498192666428114147871929294031756787884896024326149435517911324731058364790334679304738410323915920111758673703178623410305935649822355221893092848503020930791034168534609178453804593687570650854896822142060684015614446089483717269323956513369182038988264492301780852485971456504812214309824723876509770087325244190292573801261148118982023666812682414434475052439344363726405876064052233655907158874997148870709179803137522143597637061100455711345164531844898974286864879162632509773639384368637905888162421164645635125891558700068677144333891206810735253820287943665569281789642465122917803258546417677581761286502131568316353804493179827446823200534705058687106534015853332500143981404162018747417276113340782463633105675611529886532754939687644081521051516534528705287506277028106160188271974156817482590163546747227502437374103213902951622934319649393349261974090339165913434418056883954190101354596422443484704107301475501900667897621697980032430512321748358034937157947350387125114326223369311563989379910263009996445903783931634057637268682613379848986970991628241116069804664919400646238213792643809416552962606265762417710058473212723249053739377177235138070788577192133019902658694393727118854658610250661987097619403336270744371410121737779050189208123505037667868832177150264700125143509620619337031534932855276346394760600579158738050790860311530867068211356725676606007021976606616028809717934127321763139893471280545850134606559356384307763411434537255895823683903083366631508256021961029758713670342769041634485332009338817794168460466720323655811597790036925229588620966063416731855479037732808548641956985288697316437289237115590096308110795589591456150532852580821345568048076243233685743972553466100066754305467436716419643900048541947977428186816390720590164593868937012573134290551337004475399050758563417873810786527540142126191386149041002424524820204488662480283899495162598132396012454660192303583769186405684150819723151102768445911371512077547468141037794287386467239659145667588763576041093077201720648017706754244046796012443066657308285607083914932354048352325593424512325867821222911449196325637609938537456079269698510556023809218695100014021577155633530946346686759810581267605582354318211903863372176276947194194385834897757532105361904855691607562040432556282300359152380057631794366441572113137642495328914791153945257062107554989506009977544051579810477111025952123603683687217074166791307097432482558450975555493832922958499312630319229545715808988126390100164653441034099464127018496986310138621021629512427343635453171945031091132067916654516147995319850646123719957052827306677380569617604127779220427986394267723585390274414509299679870402359134920493360343229449213706871324180937172865059746951633250521307801634982085979907807131923557719170832815219049075274775090739558986140228583379882806461944826163694480748667402809126489729831281934912017568821124555442257534266745113815156145102824331944030877586649791706218430724747616887330928150547428013301330803090814852596827294794236290864719499792672660864699495018488689489183934633962495297774916671096448852448045891942101413185324287040498859355552452663061470893437382577257770652134459416633346878293671342166303179580709701777617930203369392482896443832204853461343799084923497874177739552978538131199612283650395065231238481402778441547907861077759678383053813989239264403103867701940390686458991064319553731017110027380966530961877811499034382588543125066977317534053180958348324364896523780611346843364514269281939385249083260296930601454290381388579590148477888403425783661917088574626402516439028896957381738013852490168257371384461307549119375615718970426392646986499836865082513472516697815064505476282388020011760610189079202371883320410058007625669244560865514560679030682483391898908150703928319905538754329664061912114122268343012379127383000653535935268821460410639574162175253780129167984726711687743877002250172575116682133203916603708465583489374229577384474160077020324239323450229142879288799886987803079456612961589171955337116882971182758078702799452865597703234409031329374469885604402465823926313704027345051319560083488652891200336815646761649899343597280091148535661274876292871145171116922934964124791925917329835312602035431413481367327454568748420965627950869410710515745873342120838708451606015304977084667618602060416548369337258072791457076550786736033501974577290043823295469007771350888340058590881180531374791947933392375019692380013018176256233061131747208154923053726405391712103661094163120796464655222633420150559808720414942914480831030836559819000721212120794528106213655852091414962712689866418349011781369940589073135146846656289696753429581880039717490884566377568981723233028989877317631759701457632455338993366645094424528482157714915822074803602576319534658200887608146366070493311194843507376490172634095150596587784521500064050563778063404763909030732520922049851539173044655024142138241564354010679452326894296839529771203308971967637202375810458777684561648592026386256660208761827387106506905636888971402600185736611177355350582361166814137181004211558431751245979652668062663514483473801152527826041599137821488146956054290998429428293963353341031510076277657118927920774607471116955825811280498082689825154936935455981446276728029118762956689392733901638241550307327432011867329285499953570806234910162645049446783558195380353696859764917135500767567314423564805871475298302665853985202265212251539224821451577319282278411149782208964016239017054244887772251177747232907139748570422820323453775881443946056546660397009964714604726938166735145424896734780186053133132828569237646639756692094474369302048101855037997299035412532093676224384556655705096920045631086813360812813013720552521811459197005523112093042165744301130110121276396105652937521977347744036711855553839048602617531960654711135260962313745103142653074058299277018218216284082115302471351858006004683788193564092990496919002066701853075374248617365659669709747765827068455336402768942525055446768154376157928834883967790420247767211014088757496690812114535970704471923843456368464485315787858512458064761605052967948335490857904373211795407361469687420406423564669182743139152659881400886636032340363965997124178860229659234034537530926830318498425092730332950449462021511334325822335192844138360837422013350199683652008911163100993213227211781787634943234446213038534520502128036227429891682069543796122028372497753136162058064027450379093934467477223764840252078531848961372760047089290998777767543875911021220031065722882999155511263741437411238097919294983772678700189478137274453479956986187458854678310941260746916937158636315888746462919296892261150604024020567614409555014812857532726275106953161098519786750113334249583023745597134870673390969581522909723388262964962429874947868274638736629776794053866785306314772436107236082829817410338708828862608130553261666222656625134043560922417782974516343729089388177841776461744847194627225533477018117973706382992459056662088659005499027717799905703679023759271969222840642318316756833978292468462852476083710531838443061757173717485930729854806431321942291246318010363516686913070431530666171049431497653519344686123295913308959940426884376725758087296641650228930353772354189823073391578162157959365040468839611234293273321485910060472300775384677048429881558466342936473537326017294775392668014303558800188005897792536996373225215194012079598872582958845986015180934684464405696518170927905126840430021678772419924743881337168862508630976982070541802092383424997044164172656585142846779946925408666108265291581750810167704818860487008953584187668280663900450941774311492527959917703570556371388774474412934052929594969237033095630993957681523237727091953763395218647533824423420317165120833957042318237035832970472596560319052678357279584190711475820946286034364826286937349952743453793826370167779669753120585570554460771553242120037163998850128454483094185170395633434663453731874006897404766049853209862731290159469462243107642165677353076959266236088057148546369499321246291300386572546707708163750044397761596301920974439124893143808309156564336061758368395366701567972699689380801449138207436849451459653537073928755075978290837081959698376183929538182876483854392861094679938393482200913436963079632573025477177213564973439424100911324331835839857131141298751489709333891014409042753447251190277717654522088287142608474056361701870896333305420884229754629825157543737554119704011885919794841666500766994179895216854917230765213880904924401928566058281951077240690806100600747208509877001074344867808408714775172122194013553711789433775826425895953469198263468920560853080912036439483878021672919731502021442216957680075596310135521185494074145916206689455470377677154523985772007288876487547830337410439792341841054347587524885324227001222897425153713790220370612639431352587485839844206933782954961711631882247888247119073939022720236071120529489345524643612633254284162991771361289243373244698829733066528700735899029797606764186890768121887585576600428178265486673894484190617122701880749276031758634509936015926930144291062970324914581106812022987341229135146348112018835047088568791597159745022465669657365555282987032969489714284322119933646312965858173255349339396251732568374343384870298721221388046339598030024634916912595258076014757782132301600706196630243875400187542473876684296580777430346399847484228624412157799508681930231213765421442785625570462578153105531110500047598489817109551213675100201464952364492286735304676651044188476073786478434415361215213983143580853434921060271329728446951871332694732531920869959429416378614255464762119056824576426210647274819620478745521818573911198962044136494840467593474245444970685004466081178780865719310097448112435642071202112982494034609820499487267358974207002822092214950153761126010591673823087394182118977638781396182090792653436484648683970902432735265738901891257758249410198869966803848127918507452033868120978262450444481743757716773447038549348846454336123013420104657178145889534863099091902232765898446047104774460716988628843569036703512198985135702676440453334116840373178882060125043385469279620003476834596080706439617344730073057251621445891926334789289396373765796499983208030204124276311567675197408050032177937758298923248497143510619548773155869209567190012576302470798938462763659350222558492670668302673153116285497133954502213193926019358524511924768323467131720901314694082648216279036854797956323708235021792701258686253099004307829259590221507472197150171514082974063306973978432076359250158987323984254158343216376465439015853113081171564907829915302166095267950915761931036159250657130019592676212333308900403344692136401491924917458681689016089453308587014581377463705353385152149500046546427941432972071418622505077508554547790841778048989953797565171148437995265384812105013224471972028295016600645767845635911495812932154482205542943009869466184315961574430954075333077587607476764794325105357554563215095372191051720941006310467073053391086667399997956843438663000711520739639374014836797018706040205233725577030262417801259722184177024049794172298887501209246633259474780891623596737537222364506961965722027306672910223983859361330381806914037105711091585947519852860182007142461454066458437170217789053965216673264184372941780575095544507804268642883036196024917125775840230150366037193812930885493295705556099743232132344191895767753984971286766911689843990318054623191218181910108809452805344386505953509531521983362668177077832980045736068909722239877007318746629589024929569011809436283914591661114022124700261422349327715607130936726446834183341161132164188819482412776874106639543516877500604086025876772237634518974830162065943742279386914501656047947504267390951035635912797176084868385209717697372952378775548448828298707761605899270642954792224591533211174615694410738903720174227780216218100817494956899753798512839819052310710833549851831855728285511046823527006386745497610992361926637120668961116296436125021298456446857247573513382176219391539193176844889679023122408779626055864470774404280705276383520928942711135382648968015775638169732666725264100394380905073597242151161218945180181657708681951480340127350712575058223297734325518691547350267072924661228502664333846449921328490948783689719662982355077449272827137615067896635506343722714218727595112016526629450810139870515062433229685000258546699743073519415770457880790888732151272525907716885330060210246606498106857507596615960917594538727135983151006781426133019308063108980177429245419824435695891218276692305245261718067501320204853636153524836778883288686539903767203918712482693052848820293869791330476046517107550078398259720125460462282462329995279042148859458336409978088693199494711709603544702710486294534025915522784182800633812760010105938373311472780644335118485933051910375113299949695758285905874459249479385383552968389052649116299088665362561221226746049492315070362973960247641592492157619319756358950883161769328613485582036896124992135944976395125498416479716622674757026816274360721611665716615286880867313440936905196323098512826568711694430812407204922147646440862866423976373728942348246440403561183348908491133335686151791848855075999065517424517478359221863563801311950118321451804557273931159826612470559171476268173845567242218070316092599486487977657777015648158399245765154901930573799562795514327057046020215416360234463359958135342974888845866309496801358639936154191491575241376078988250509585455257051533085707887206948586567600505816468444913675782299136847859589258197899811652125517514820612427636345565514907736459969997284005577139277969274670723477809939838928145156897928081468865259985601263704364505114553785757753389219159759361747673312639775957271556467093989930676206650234287828950643304515647234642289049730186034553654036056282207702122925729578565680923093545425215451498355636422845280312829102360590659059010665561821961402396264250241694114216733004609358162094731030270436676443558214984640027063058249223751780945167354806040296870793394950398097225989700355120159332790735588265297817077212783106251991361057070367498415051842641896106116393672896074136669456612713433785381327170177792672918178277698414582347110835767424201510892681710814934672670566062261510533194609831077047141703640879840295736464173057919021028112600223751132179505801584078173789259727381315562840306947830290990544900984938294346762799192052822910455297362289471099152052071360001105999251478604082203897490533325944850168956051678835726548131843964756405668599376454725427605667185883669926598496738257268073692022518727039988542834031469966503568110490120804615419682560856667942312884252764909426953400538003989153585343409393746085385257400060045670154097360560656285669601438990021916243988433317809212154370032838584201248882481952588219816509605867076246872894667842479167294888729585587087571836788733396435587642497598826590133278843078441292135145742506703717791476647920715043612162737427773032712565372646171927889082317782515487945933584203708890121692851051952971811138772088852779843660469003669939066982085196492397989147406732939171485808278590212874266100355849222011296613034490771601801033647420500292028988859877794468304674969838085524517799098371612746795531632869187146020933375308689514663628074796657266030270823010681570587168833156694341921176226919678880679360899298659409035706950078245017077481602107385117161671173468122136200610023447086824764969586171754054446220120267480708005938961686656448558510646493626824330849115927187516457015740762210932563986374820646989919668429408470574899781985840499735393057511663386669799986270890777734358960019065134292023179381435698788817799822597957860176979284076394350572850983302375479330618112781685796908283027101905355212458489253704740137699787461771780304292403954705808519488425788105663079001329623962420378799738513331375450660992796033403097058871183244301871982099012727778412762575968860314968345219294572257064316620296836456324199598206314782081664487731000641104861883390659815135864272717646814082993228416599062363488251052265502166354420089981002004701950570137266340006909304068039106125088945914574832617879342981295840785927887416734576889986209838951792317157363237630469938932117511356174832149039403906555105902512544336311389228614555304449339009249941697681819663566502585270914657539858094398076142839272739560028142162978352877066939957560694717258777792887755704890658653276230238202148818107177254991698514894508332790022316796121577193759147965491884410020868143301833664210506780012475046969574378656893935601689538510561950554599739940256628656240629443920312114728798322956987844037284982906876376755342901993393243310390933348115364502070975645416332319555997281645188835339059058084916947348774404939436510756202640020046894682982031749371150772469132331544730156710526933703684768527120863105032616436615454671234318513035324617713912299242374677923274128270450134056366339448092880704881986475833505895460159692940407704148856618534275681995897566722558292053162082518753235627219050743719452022613293978151933091889843284405077423206949975041504977377529133650884056694634781894701127774736597941779927210817693555858824053307006495313049890685699369437560895468133728136212607486676023395882623710567762133328244832013181086947869872821660522135713259396246284548642295427358142922160360688525988051744607742381795040135136263509955435854304886297082715622489818136573530951905256393106390253560545326810429939886077863615355919314273815001480867919867105746674847459608781707520081528055319408591827119072144024774596269755623348633453276067738484370268173055051928475197860154786387900982262693884484701683349507893131768522383230486094099769709012224596154691918533897561351135036922479689424021034287520388867624594414056016976099461010191431168895350522955289896571597988281074981321248808717411800800406072940203408827303121032345815568865130145118785049226520529842717566382382140043407837308334237863258494673036331545329704390205259005101811192702855008296870898697829903273400338162814404397567619959590835892963849260067375458710426372184579105718986608320285552467448323012242520619776084073672290609970549559025551202914299336594777854646073152488560224841963328998164900921811289897398586688460067924794732728538567781626602337580599320784588633441639766587980178500835561406632905563720470306780309215452113563787080842292477855955748479668930107714278528409478626052650687862037533339172969500748256961284974944360216424832010250213520372092978639201301874064874209994358641179081721233435456267968343123323277181663615568448618114622064792466639615339505921361331021507731483172840008044826913449507239696048885752110790603629668943129829054730879929424936775240811768969353077207466940812655099759295161393290772232166265636233726116944256096620062958220598367406106021248439005649653527820011540072695124142863554575836134625929485780562972766829664853319455672491429491684631772032731883972764075160086167220144121917239695781012023046714419207343893729817281996978367302732797405686323521992121112387108439762566155798856720811157865612133494538542359572085129475226956087266240910689301805095381884613155678636827488437612582790836957549202668645963948419201774843556295476126277231060842966856865629500371258131218349173850833297147716104171358832290927475622029366754778064164063796796814362548599973803328097149407236679624622119727583832706460872755915423992362379081149907514146212526981428036694130562782582784723129998446237243104647687217286631432163107363472263531874275666849471195109138575522617310058042230410125312240107305288088836338811995934123617453577866062480299490235149837750010208160042409272098137182834469792301401388735518770100067979981410619465107098531759213258747370149088505184334460660331060244639495466593756537641423263716956947050315063389724825271652444516819329139694033030099241183018971849797529563679263998099221704140070936700972446714529803099855503503193068032375996407068222305040126721212592312188637397096689196544192485986853669661482678006815617648612413478693699768934075148152857031389252952654178055518274188050487319066995131534049778889455858152644658412715090341650411344561727369717751334710640848223924895216811817906637823881201560128848097114597715130875806090497475517273174176242034043131230680757497553786561241879474198734984829772615679465686669654462324743354423657538908942209573752928161186373166549959195071162578042553842265793956917575980954204536292927564719586352740506660766427775091468488909682427339447421796561162370888867829338289566326575144257556470988056730650507271494527831624285399406961460584557506309754667231401097530094251825818320284071334150388519884854655828154882060640037683980551748167447803443931560361345308470893721053697541441115090793918454909516854795667955177617667642812617248620517669811345645716859040328401167342952624420674481220899501582216843613533282930473648492927716934705614450685203528545322108975825296144139390869284909813139700916240094039408999974064791854941050964864790264800234183190839430941144006033280044417139408752233852379311177038532549949711909520875402225837243033443338802668961275164921228869732997111354804155467372898825474239332659139148127480952120618557742556756395818799297046688828612215377384131161176755907209399480344016914381632026926795468893724523061572215338688473278937734987323204512967345179844170583722192382643124300100869944764818632395084084955919413728385706204004062633452999576642065822177457314824465741089351606042435102658616752410283444716327814125075463523212927744246012781706797839906684662374439930500357515902203439157339390108344115304433196606118363850247124050930464733470981618414684935934704650099359667642020919366203804184123093036114130939634667207466686960821604833738139509577601774211494849310566121415917060088439338173514181825979816015725609654672336633565281018331626641174887277788253044814171848723259147919174036737232129009920797794384779539943913863188153372194621335584955078317681935134474354358085847552103478906546777085144696613138371114773017305987596081666533845273352904603362474985002821630268785102962682193965682402806038144059202132289114711648775206764460880222271073934516139987426810185270148451737096158557129213554540671748649229376304872457721855922708908213445932323956564092307953586669516852543599230380310930918159849938973512377393229341852235669414102504955175928673289519721274835449864306112335667331180409364056542113042427294372010196252642832254246140203672509906143859771591576493901213104929567838799538453471126240858868794448187306883001793138485659775395164823761289725388113486628977318433907421177103235292650223869499343126584546573223453713449254895897491854206141779311978349902277417176585105212372254789788619620369907432121755393233531428538496305759276367325268193836268030549078621863744748710113260104174557684708117504976230729603780298002540421522658153353308518959221379637686262866299653221170293327176906752393424093834281868313098856633294580442154004994093237587994399551242784311465424992729559774489781464962336113386608825001632274599875938667619701750978148676587117066206396723809766987616371842944391772885879590498444130733140839918386027516623758683252895037617341549768391052512797382899733915800274772778260632788645416748056169761744367179773241115847747821023367006614168076714767408682614892436343756030466105351612977880397275739966268165673230500552514733467009239976224941951927920746519221655910717693301575452710551641343224454332867618572188291132564185069410363497879602715822367703130891937510457389213720593393198574031531728676310956071124067482408135985935574170654747200360312615765917439476642406567386330374711796477424244500283567373839429866905109505104786059065181493774477854068768348354086522351861995053264304585885657621487746293464118199323291117924856450885607495444327825301781764380650638576819269689397317673938350846673899109381523875369502673512382253412570146227683894429197212357758423820794113577772142227799236570133877726979488442759303339565264753483904355785302410552219202004824561489105361710215418624091280905623778489883418078980110445360327406940888040954580592035602393699858231447916113327326858059889988298770716693189458932079570134297514141637739773053807575002615789656541433846898841286951022852811513734033408236304607720770616546901820288143930281855653334118034017548965587902798790159193925804585775776975100556175995476166018366760846136219891467097340561653586809831768170472007588697116343575465537569749156318525050046900531938496418235646436588212328403723016156598132505099950398848533869332277719865130979509518211465633539347603409996516196906327015448382788286504422157003222998729272357184871954871234782902760343298025480487303537592660672657508148059626539497901435983196709821784124600562529218334734297945632539668708629748596890591059274806815889073834696767516663356550809783710663875762620640898123087683498110574049853130738483893281497791465974265717473112175796378597844433482148953314277834938528027337237211921533781977830526354047592082180780180253066007416128380304633573585217042841475443365402109392036540647498139318140611256291171191109559593741785204283351088147785021134274067445010781184394459697862099750776632491221086200893217599481025227100285406014602688911005895020699765949086066648287193525640287303979760603604897384522094308302473530764042289696915168299219023225847342020012240259809650302592100368385258496759007352088791268106968253419873643583899565713075051442203937048384735055306966955536053973345654957786909954388246640986429730566514196045506871700845303541201164790546700186484420931526102151485081189302570122539562548237461893265910178907644104613413421486540684299676361899455054995398535498127788010896853524524537038262240358520885493053325340465501013919507180175724677214248053948617861573192057475417226036066412778204902257986108393193369282426838113460175523086596473398558050676376649784398963714455267512097499206322036346653347800269517191216770221325471065388693664399986011634667094516063626326566718711307356019324070627196773509097458464185184663818635235912079055264478149459262547832468332228096276730909589901419984765481306600296974167430454839371035624780004797779348979749820514198878461457910951915362527249257926685173871458515162123378656816432321923609767260408897998589146582255258179903423633459617149809466421676669584964125365693957200314003153907770776682227026457231249752143004885714484034265474019468268261729681297232497823748931226139816273963628233635464963482147583039169670243353907476560910656882653542574994274299806169632484449419712540340272853633474063197022806088378934888677016983988078347490486596084857669713538152756653537596501739896673906671478887225087460789659989288084560038075236014240698281380636299255222194097463818029717879145587073457115746044162096278981958902030366713351393350455570263142672406495604630622770421045859345045707478277276098602572045006664554578355053326828646511495426813043859273962679529517230000031608826399146670263362458911071635585126102544017676357381327787722288604029119878775904364100555260389852739133337202755645783479801892574802131102386121316620198280498822953356170532664010940449315173807855209957662997773391475129284829545048845407507257142190936882470516347819577666321642450502282881365638369318769934670559946705328925868912620761089114386905602064474506612924807266474004492504579315834335687452055271007805365773771667608006493955440901855754412148859178046062147866821606341775150272164254856863085669754466241954990089335367748300824173177889492749970736306057328369607766545074668375612752071539943964737515877433111222730674938179246698198982553611634848813429689367374840841833043887194157437245404740046767531844459208259611478724490156553699600450968881778730557329994444181478598906994113851580583777937973584631296474465749671589980917141909350265425087064364971324174179868902913800699628217727664171648193831661275015819700840301684205227264378098056175174020972965264774393049147025339781461056431221288726362094437055605231455800374528983183923322369652332301207972471507533956665882037178918442308977098379560399260688127612260725367655009027787996354566074819073628653218020090966133993875100987560215261469079609014231897627148831105137945711924686339444736726406913168101875261514003468654347401719667506216918755664518493519173385371225407047618603529266382639833383389854268827413553560094349747283226916110882707054614318649046437898467246705378425698308689141420026424964269887845041617512569344597432554344017837731794163184023826505897803124177124476367170441037974013964725884310269426893258346190849396107443668427259458789271282750616443913576558473837647258660201774858046673393152942935384777480900320654262356482197246755488336666417286789962138836712051975073180345884458978801927762938279697057214608066700245058796205537154985676263604699685527631825917684535267850623593182135583168011918297510915734323966661419524221706409373522250332215205272918647345983563262599569864331222813383809241057633948311045048762010378129790511017319949673998771508398033296584536225185694522653374838197438762526869720081433442603234946362355444666741051692683429526137546838076736110054980983809239059042003733512549410621101926384153799059097563481072614174442036155474633810900657038396497171825079428399606808934476102384405415210809697946351605384403186897251822319731382690750887782259066780923522217591610525560575123397446916130450810960376979268049304532188125634401258635226885856491765263827485512226065099936374956056890253635516017356446479422085048750274473245893078285362230685304989565715323988728222434636798959477116927516091046429673275705683435483872976554931045391994522521462561471668032380322472403548322244789986521612138393668282164084887144722881079689705664549627552665532842711389513305179965448680821375281323212053234144065015403191813511036104275891968165511286824180537366426028353750317435384941793569026508176143106480047049588000873210058769444691358542061516431571243938133713411456327187199180026601683224621890567247930611883214062744803634412205502800784435857877414841240067918780917281753323831478041022347367231841455106269633247411728815225273044532166640344437992504721483741304000176653237205800840110725820920171778065385934900475739334881867679260010564616706077343335404715721760233672145984474544851996984611288958127541524742169156195203337249782800282516656317643348308058715088851626803505050900460468280459251509783353178736638807596573516912287857103292271774895602047343307106689462400358040780682643959800032826400718634207789443024814609770582012242306332699200055520448562946543730346251991651915556675499650695238854994276834146955842868346313967604438234277714399094143404495628695601135634892480493594935870983819980896916526396898607578044158878117042683237336437471020132046072526580379925528231246522311463654782536743854111839870233953763934697458417242013078970838944718899453364711707749945942061810072224726601535790023347732339657774916884680325247184697983993908822001663883142292503843471008617303539936209888400416076716463412495007710496780426376976875459627816112693412829515124470088118582700739632851006133473098835428584492450771854041353028552373426509954688019543682898441494071672046063204544449847315558424837617666370693724889313907586375863675561044063697858114746362195958313673324824895847879154216410214519642455886885727395436824850792896973082071333256399474923593715373571766253847246252846220031049437793318528774214369985387920750689751756090806609287950066608126971353842393722409400995249122440354295707037795811261752226601553193289016723769780650337582039889269440481314266012542789714526374132856376803597316031522919670789004037151602324735669940179798551577373198541663356396707908398141434177208838026867621876530455313863553089867656617974729769958537198666690624658952202421835562747377836085447595919085514656258281758572447304622308471613742408151225199337908719039672032964131697592408906538366874550918799984042863717429063501963685253331253099924031768289686683580334577271265091897230221147832410064983618837940557719679878138941274945978274192875080101036061016460475155650231049461269642725684487736203207987788995207740591678931996702578737876351587584588046095261750903483306733796897585479158641638622667825005408419332907064528996733039192539344919911304284728475072807999005328597003834107243620061604035825497318006236100566411667305251217613175229495553128963510869679863517987779364784467257816033814232687283920414076971512630840213966707651107284840237774720509929964331698728120494344867112779885242305753455555654170996493008557299848067617204744051251262407697528930030175980408853033408760181749205543019775196638578291968247244580065570258548530999329561056546304011180253517063217437174533840160250418622276032813980695820994478919576784904527667676029682170532711133274914427488568808694446039546407790574206711910728927968959327961597463756361962524090350697727580995477815093201837741400980791550221529381488153112120556530747998477463680619946151801938224539314800876600048083928995291169132413066336850200143315429773919644417814414865344627338474501165242682109344738168947021654279107903859739064357361528595032074228526729124830694420359716325971033773976184081250071878451379811927247149591030351800236430151479596653408311789401588735341264716435795517094052378113658801118725974622909496467818132127042616207629294635659244173464553432200078756933740406675302975695796391159865696278078606675834567269298627608511314195451253957056560278399375415311665788440261059821938690034663570669688252521802935134518555068870240811285765391240390617003300297668465357314740793385592740966424223407544683634159399390522645212162379826047703725460800347303787142716655039985726853167827896367440406979921321141386629031908930343641102468108290700243080863759012058413866361863366012226465409995616915300848469591344913623200479945286993083642990871550229301103881401879938281309488237449592484782783962327821699668110670384403603238052565644760328750437359223541635574650308771836316560259311549447842873272418947690404674433413568716462254220235440032729151273115712788241799806294405920889179671788883976978461087273065985676642810528452386662071715595202589201641911247773412088555181471069675621716413504464583074987572028087929406962262022225423173801634892552814064678633948903723734181920335632945965730451192490213643290844194577581833654546349955396606101976390500273603228201175478239160628171031456952927015281533258140472188098725843669139763564596042136893684217378912335843768288498051108555257121714020951225512619246590918920302446309940972287803202893488115021684722287306230777472379152036318916025474573792067111387434378738448218628678717294261538871096352664601259667480589653149583332305470185763429130842585408320047273136666996821589208305821879366559797830598924000292090523368241494138719423408975613581543669452134829593148831257786778381860745699563999352538273708629903406950289835419014045711464292130303178461326845526775003882754248243766070464584042053018144314636228893213467128309041222167793861755688770706586117842061006630942631520156371838118749276005020473860812530269076459354641842247352569628103490392722727800968166958279768150208365573924718214335188460516475081570011858604024806196012684802205232502503429908089666568661151004720018179077660170264418823051534177379408166828815319563020674718491638724257040885530886035070473855643392443783460822525547567104198469061784748347178701253408456913916793184052337087342251528756296452331457714611682951842381829958324508910377884037290285180589373762997268889058519526148970551799212030144829372466004884643050336284237688208243085144161653208031559359046142079454381514148109425964193730713550710760796301925588240726435776976402040817996314312752139052748825140914567792863453420222246161814310925385330029126703637912267988609945545054121837778216103178452810765168205166262794908157890752928738373625207335240536024874441673124006527614652749123142289593713527924916688637057982330681726636473529624024017407300444622916912864339817804581997106209898342897715537388748530311158813211325170620507136668281127065088350186079886514030122454591443543868026201500362243208487630180838621532153065358835917802676075118753738271927672505532319382897130066818364695463010393577425701878057362742078246186766150400007645641907360286803355897958296296877984646317139548817522116556781988230493666783951719096975661948907964759819949779519808969570764440570111394384545367649316238874015205974650163323314402580521926274036071446110217285902253926420531235092254482736490959371920841123823005928683363440313304249632711387830583018802209809375726560262829617597840160379468519005083856643405697826766919205165693099257181780107885263615498214266708693336354019678796941987834169233582246018927458847852816208640642289839088506697704874608182360099949736224356202149137439811785309619909909720541853739079701041023132008413396271810326868723411323153307839648269182868718463770841473868523205438479123405982739491062424765939871307629777663704980840104563078166832716122150131213815268990842804933835387354987303650314929037273250959726717940929534283112245075914090278250321484282668503769680662337386377347905835729531352328069042216863384622653497061979846100922239688634983856895953744994196791501600519400198844029077494135720873473489409071258616261527739468765238184100310578085530089814465878047654165015532666911074061416194029640400026930876407492474334483059570115838279421468824817477119849288396401110665919910981959260295271194132903454947267654249650788470858119958572111468770224152892523614698248807860290059481860352804107786381962783387189346501834936496080316998283237431215392123452746680082119865513046554689748088998047790884667348029559998360324231031275131126642687325919833731492589305485242285816288809047447143347574337213536550620651119785618979800361455798709824929271326215058782427129100443774603702730062049529508629471255712358845384878743160825473901858190803103439878934558439509734034209805272195781493961118828449795097551198488308629970816079564795176570003241227470019483096253029713032587020355472760397646430033685495189755742893097721731067378830024266098059625797628798466856706618760591609458226317761856183467260518847710203729625809835776708658700032478302283899173224861335280416893179438449008694782709430042593099454747670514951122068595354535430839860991619864171321967549566337661397724269695468792770618906202022071112664337970988744298214120742387893787435314494271702197328336994111342303623621148283823554935420336578062500719313730963162471189004997362447752035410455300095250971954742379160419975720881097944713999931435322274237211279108245950259002577336976758264661693946941696362388132024252732357500677979826598123655437418901545262243270672320166446633401722618698010768407676883215180909446690890262095939132052020997371608688236206004743956056259532662420590089921087979995929602133105547721504187631152906308298247060630555859915031119122947164998147777489564742798912680366139210064896283887531699304102435656703828315026514006813180642935648655855164490986345923947600367989455432254537084416464570988788279395636652403686310900936842573278616002680619617118131092634027504645924781915108293072618586800568952651195633203697515150862999631393075349967304572272236265258249078262559759172987301040477186322102729570907766216948280403768143979403172772334643181501472819240349262625625898414890457928284298941832827091408262997146727278925032736120468269399849415492756382153121351264180217946000129093866344179035467724381154149432080019573472044133068421052847523773121677398810215206232434684772307071539341587415086066778602481129632648953726636335802575601692421179548930621712949733305722581211788864192998747282210944596522108025560054640954800179600857908512220206241661478931027223006762231233242162611141757262234918203321434814075768770718191370055422208662461332368538547559013489745137030126041299878470817264345126414094876160574288584523292491367587825296706934765396336106666557514980494292246811129094587656696419353552500676780669164675087777199733102325439578690051970727884190061161924601853935190524272722825373154776824763875033011541061593357629104681827216850673707802905034167719343347939643291925904860951235107463725010919452591455297830137158540288876893703027829487247545078346410067888186913278804514866933938316539063825111183934631361815885081298897000488173590388258792561831264133076895530959687402922383146217427656799039480716671395273268431399964630342804155009969544019221770912378244397470463081664080960744129790708523960948685026139431436584336570726246019241531134291330541805513841917477659793395317795134229739813957593805959360746127550646472027707791124206420136923538822559619130220588465109845826787456352167824568809678298723064589288550842563461436322402141822737415769837909057771546662607398610554206192295898251207256226692763431609889098284514505306124541412653326829277562752265814336340518472372594029006670649836320219552775598623217659556209279957558906665924078527186171019651754126385211692465089461049109174400400142599755896085526668617822471620933651136707116843660605105993298088901995974229230318802692557774547703273514694417497140537688362185934403737858515816950266581971233558822451116152481385121145307341439314242549143056133490237866529559855208620708971478218733623874988191868329953682088311122436567335888479320274953111363526493157613758644234831640639477692125230963563196713315511239064919323364002023528515024179717390962731898133773288703834160598430603963518479167548513514964488579454523049976594398735401140551961152451716111186725113912106792896451923000142696675873447551343171867126015025462159038269236849260821490944093872216440691643696620164744478736699980321821136208903039009875886651445165808428455707863554015130036500972369071347786895613001241808898372629351326498955585465589815478111688435249574201092231669750754122473576222320972669637884714741913848478316841323893734787101628349431282633963300780251599025187530515220946265381304417498488293287426370966940935058489984653892636980406260378050776090787706016966141061780344608611078231222716180152694911493178434819499145741995581399895644564716475372575331538492424980468773847692457424706638900277460781141004075295186430361303189107292597803071038329882145872282028103370937022876347360735895632508529130125834002688646296113632879852987887857008374443718890660845826214036086342406682692003970214220400307016776120890546998315875952048169083010750821779492735486240638283796258326956174023952577183470089380311778741515126030875909402009502536568633029632310984392681465197158188817721181611855041860663674350647267166061891556582032973828154758823374428794556621423502356264877980026484722935494080497264884474523482106830902800618858991052402425939356188745660294057920909427025304707863556822058226741674398311587515842116934871660379411013191616583317515552306787253624314209120471748881051103999067997379134395482014647349630598217830210443139580041187996331573781418132217632565043070610107337165019226960670951164794139652105373598331576943991469550697400282183779049829027896363495291169203810614798962350238915916489399362502908606010859858966955971712366829734330897757298987558208096701107353489785602728954648959784520518979079413408496617766772555251942822447613175683476071585300750766032588087265342117288095807883457874884697755992745408942918379608120970403095242467501306268188605876920084138323448203823056384116195225957414409399374523168147217491040687649521785756214484085139989279627152407295517566361433599472955653937398442839440231542139337321207111317301788209323099758072178128448129120154985653745709030868381090220236107698057127330386896116313968168897892659524764276942336662701136918078896322113563799823541045952342501720435952094297783616652373830674016091801412782874101209223644139398304209601998389455410892933722525096943825575067612769302014027220345081935859197488032366151683608485164477466935862375419862435885525048229364047309142019095315492468274428077261010104041128491096245105206513060012798634845691006912049771271599012436309725122590529889292973390202225800436972728878319571469524045572580509916229636665257836307581922933377141153268111804351069116936213281931608572318574500981624880234382437329728865949129211028826417416600969143562251182538809266683551582908422496914934969225910323462202139418113289279578964387371731886897723940830854003502583820897551830992686510952460620413952269591982069533845061470924873988762461415327414698654081876772292242593601008209668008544889676517215940677654606955536047532561362773344804389571591007062775290240752097274508587601078208333515314792843897650700956532439221220756288099308226898102343219899075122586952922835670848017268884215108602104438873637086504268026378837148191413480650265019093175374072636080237868443504498202506343499342263028031569926899674073828877594199703720451550134423494566940753392960274711276313374506937381494980771389217099716746791777668721239913312825340105809238085585402002645411395652725160036666249143279638314659662923618873080426920580118796942259842101885182493824696025398793960849443915628185215633772028903928441420157844802329205161509396090656013680148241250750182450038236930858047951707153255625378963940126155347830837728438794887449625917554460186663179212799576328609148449817738660514110234606074782048926409071815435007300631714019423406094858933120753854841000172996901425133463198180819181324758690956689254874274063873435357988633560740904544746909028200114235374896618954148598313712784348292915437784025549398506102115022386644694863847052423362970952833546889848642501709764926258804896861868502282438882478290046002103167682923952853549898934272954798165869543183616047581088552390247522037934387484754970701249843411681463822528149082806147777804804756540409024361181219627746426358499391165237411712855730703890798777151521030578427551965744397180995518359160502098599657512044823958401509509252425823294609572057384803702723464493069976139442871974911907458865720201874121829091029777451301120406181206922826829057715784726343733513031840664093038905790411404627079214723353532940645621373623979709029813403474116313397565973597757261829751724485748675711052123487059481768517307915074349874350368253518355492287750343761178187924219808981136455332337856588311586079081093724470267611007390918781660647402789512628149986370427631846440559544052665360775456766360565760284355757657403456916261253117231439954459444479537276940067127499827406985777706995794913703622325233934420613179393371933936117502130766320376627223692837757517049132847444366507802460160592875920850572320583582272595483377150134929972036499977234076047683115785063463813682372888884277510273010529682794841837030658570225266960031506403976968251024722257398047418587568509310910579099914928155275414504516688809505295595541019050869428232549037959589793691210340198703784841256605981077200166414344477750306987487582140473144038060045528077673009052014066138556677523539740398625904859581790212089545804955456343437535271425009675788577646259447765293775679286880308149661296998056903030678173136761020574291146895938512121012925244253649954036470468265053952853680492638086000868757598829473141291369201978197089787122184600408584747305100582583712701720804607127495519854384022666133426192458781992625823918240428115794611936060361439063805167530434202095163765243705744958634154889782390005121719007660215140599909592923551856460699177178050354429238891975487041662510013957654823574992846592595798368005855658417051743170538134992008822675054930632338039946971665645756941008518611288039408696311780657883015042810694808125583848091908963123878104234055889118185699847341620141495471709846513470511757941631257255072744981752583550469594450289323816559545216720297646720438220296689614625050560441468281860246726290057770537331784782283514821195170876892387493141420537219908300423849897979020271280507039768791352003288357142344134136675912257436735708000881666729111083602912249435880164188339485290970648703127165243713899572172438516350329812032624405441005997102400689448821154921660656135643077938744352159646236574046031346446404495831534050429961228785962350992472649228165164399817818156277727086831909519398267398069291742446763674510172466668073237317333993607315895179000915149470313136102485358136255357544799127116683986328943094709176889774318326328819777838145081548190913716910921381820478958757705255031684562577942772146701565856695285229241386017608891832706462403852738766352005128281826468501370812896187872923679519942111538167416577041836162305685510885163509858197267458587145770448848527413913823692498301442327575890231818022795529370954425041804309645526314957051662166607316479279726823594884932856916091615077022626699090609380177976551089454389241199951653735749275848907007192587483429635511777754342097388590788352649489413028962004596821847284173860185877993934272981607611891503968984168821619484228050318570409084854957730300201784290984180896395875879545633608082517471120128643187701606082920655966268136275728478265580620311940327776991903309384016573427123961531561845796938994910566338498023746470866086959765524923779688073324115350361633316997735943667348561587420090197313124960480083924262375800262688302143959065698844608871617974020115354756889297248903929908741589959175621792413835408673803062614394560402377099380493581350671257722065549813515400532033895920020664723378199632035853935869207319351097798603860637189089776721978279464199613675398421188673868106299002332515566810836811542835798761810474062562828433636784487437872603863760802553815297091843713983645517835371790473170981529499459416374837843450062305466320201320885753708806452327518567535917706498160623513610547675354034067010294358514395627556004203242781892095757223968730537195545288438645284395983207406623618847221278741798399034633736430234131506487077404591681718988477445928119293083904620745867491850020031626173711590320132051647822023940549092491176651854715219432143599539491788478338268237033974320351242697465084495610782340432775903987133248127675592928029803298326093271884094771615341807936825501910868597738436554925105038622621579234113207953248913264969315912188434158058114819546234835935187425825561685109423657668171579758800964330027512643437776284362799299695992355628155517718970797654696502309180230307089063772076431145720706462668256236121674165464139844921447205871448605648865593615568249990371582973899798511283301868217772636680886607480261747603284966560511589373807563542721179349663347150093454984121162756423301092887426579565102983801263592186945387471858257343669237408101967222925367544546509605934127654774302180909525900591411940297839215353524657647075713578310720416548013013839136603511513263027995516223408171165086402234249055739194279097288874550892707452872701508782583372820306466369883081687412055164168472643402429940156740923189639833276674498888850365682134846544073116974400795264719226887464616308475125037315262963560781996076271260798103253762609961301813292322946907089103943662334027117511843448584153105748963530851387595458948874939141605012413776542498101560338805675108582876886391168872609221703281492729243381414955316051466827921054433720824838183047574792935731789961668196431709102887425785685893596462694989491665082714250617485011074689700074764022379805341816032455917288325645375728746330216382221464548040817698149209294656286454730773445825430964949634845410490766528508269655459884849710429869536084841622090977656767039262979336862145376452119173162796089046286629146369384292148421147852895760721593162031178384368272056354671766211846528254417625766476589545797716732106567145229226247413201151676049528285445605744260253925532936903559942633699048073292262455137049492101433170576578830506473996593994351752133129253304066224665478977360122860757334552672668677749215324182370792631790470295611578846359906653152223808296595758370890688823070802942191261864183364613102241608083640229445325638780498732208201169408242827775635869281654259949774499357102564048293607570019283238196527183373208910273722082374243785997978651564814393790518698463040661860676355986402453604393562708755354776588204180621861862075249074281700543211390839650742206388419550336625167307976046588560065793031126875271919578620283859648151177012700636438581530695052823975720706635554887028442236214073184500137209542777772887771200860445651498306060765177142557541305459881346771962356839241129342758981319863598947606779550055517905324475943032458675028260530011318507887653529453485337924805252572909364182032756893982623403415519103872512309385858670857974011396388996266259985506202769464876897526037771073120043640799345913315599141731360012567099412128242426905692251716667001344047682036496940736394584542171461713169995144676985048944572627992102364872154933209784743818516063247736690787387048755324254880280157203491108328489175672990440621553657142431399664315533899364402737407867334304705259828542171235923272597507979904317520418778258267930807792483175450772292369510164892719214086898846052178199772287925845508583839574751845231959534142453307908311783888524775781109746015962778158904360804739019362349599543764063891780396500627346658871438676105393829238991391916063348162479638476498109842994428222308363694795677076489255344977992244036692354777364359412481994140966348418982130854724601444394220318387405584551226516709137795502678637926583634583859816795655560472660558718854444212266986095833991915280347915432265592943726359243067200468460976558853756255820805698185523263355308112674991481454500909157876885293422915169126293396529617735977575746619965576367748641903157164619572603153317399094355451821655592058188116061108858516039265518623515675595953991278598491572014847937887148435655305819524071981523040372903984335345041332991120574008945560313492284172113673652271532552389077510413578052059790662746280939572531243591055308203648105709331244838737989958018638289871730018824513038817751920743193116411036514598218859328490583152485149092853649315495030842288315117039407244520472376424939622653316762783347172907984779899351431730691721543937304314721105367637919205973596465139769741721092967732124042535890608856300255005075525122659948530355420869513183646644687970070497927714228883222097943281792498631219932924000639658143537185226981330425805016373555057371166021317211300162308609590688521232854244722517067608475117428144859977578332692579067430059891626344528530190851681226179936642545193547502434301466180435788575236511232503269592907636191251103130266486693192897654958869169579036287391857141519280987690495419605169056460442041190587537019586419690767589237370547251142220476653424546006073120214992994745698995407539812324634334045263931284014601929606351120973359066338918893384056561387783004360217753294997188444324314816610571860803507977172117416299122600275086418050273241892765981393916584348688861345369148620114147811906542885241899674716082502989271449352208372682524648438469941354551674525310379657073391639716325113337241554085745336213478514196521222713225443575671669080069669709580567861786539054091980358345226075406139664668899245954228769484231983334477197487269639610508270105344180295173779445434310155180107719929779609420403166411016500469155878137025771979394720652754489133175926780624061623080444643241394638984803003749329781012441809238999781177607955218897688081333349863888712955405468975819916663867925354339809952037982618950308152870720042649748059926395435179621841590925131089737388331126784398403252767366093287455578376521410744964982203621539034423777153973070609726493032013583776408523036326741744484873835024268044435023233775247371078087918665444705183958298012029400849629901982734073883214395252045277210004270920066575378531408322626415688297857906800033424932669784444551013053659424148537928747133665256242215515707603337231816090307447030167685246106467966576109943594052778211213476256886803440888535863986118690687922791315904638264839698864655708281869471274158388662527676203602152977615043534804276201227442660405604504926941628681970548339535293547957237511495295393641233856334710723176015674908755950800568555305133514631799996192102674134434645675903086013079548391403568652629967233857964631976322828260379029318563341236691497817338613957218442541603336028095953408154340385107187300759387161012125279627992486473560022062055479561129887015864125999153272335101338202010717355004401782466969868443572598492888587986881249705380067742233508313210620799487413321135802870130158104519924120160063013359193712655139711593533040626693924946099186354393282635866783188346444018959840846331751988115812865664930614279005707820553814518426295815545868469140979384083538173254984928923804705239059034264998912641566584193755663422646431254421382404816129502732026885860959872880559172282074664400550800281515534947237719902961998591421833592790654405969149170110283928587878697354795053723219436083086795011178433046492616716858022468508192121890935400531102264947199105019928227430715095284528727548205759310870768072082410875037279601471695701074207091969227637533637496974797851792153900614179579695543634886453603323267709458484846946671191114517735344616962348466305262969838072969612622921472543140017702343696573898057059077460243865648940443498735943951207444884162853493156531366063367089495867189266450998950272619704535798270460016316889251743372519057703648091694827070261988637381040536807949648178995573946751282732687500465710688706801683420165594940666415896448666328134349024134960529708907214939571752552446103696262346410357674712984175938829876738593457321597357853298946728320371356298514284720376902228698067046134905742507431609469990264079704621360303906541264551206634102908749072606099226022356608742527288678995203074959542655231947083350616486471985177712505251053042967928935432316808871283233997128584303510412474474441674799389606102544000858977061847883843170068636526774920403094570466010780192934911160341685497880188109221998945442109225292432019339646207192770651791935428515633795299665425597869654211314426229026968061258370426143614757895664714552156781987441056542496101877811509795548996714190204443021693552018603961100282787666283587273841552700824510604662915953407221727274906971533347909273916195765394579715692426961470451772827527238675720611958217509022522612454478202398915517785216008232155289026695928152655752277741054705297997407703173699724958952453410407919018393231714437383656247112557799530688035984652328941227390774479663786299869955096477945558150338897094189648909421131809121730900875034184525745030806710886096543668497328971143131838698095364821088118681120947610556751341606108469156450496173344719847044059342714077536374690801277975682017438571480567519001021703532016619772972383393463157780398407698372293232367066881946357882048908625003187456091834556985365423587171746140955531252888028600763197324666111170891558378518931012074296623944817341972735360062892600143057647892617754305227577234016090819806766745471872252740053687167054593745820421338647291282537123181985933769805242058256431918692366297907387939600531947581868655412420531906191921697645283552249650356736006920334515923695758721207467288471676009177568150663527489766044976936515241043658544816537927443206785259227045802323638569800126204453146262929356001690304870063033513570399826528600926116687216004938577744103673969371628226341075699963813817501911527378287257491160252174645462553936059172779671046571200621807958987122286944191579572755708722156911394638874867491861382303503717450467508312824337164975775981991602074181905451172704960743423369634097874958741856858956775960862100350164516941072771362804362076759031278817266554212071170078513158664019961286409250542968275204195374639891891647545413231907637409113169834258498815420555606588034615084004108266492049490692840511097303719485279345186651912543224540375103024555737932241858961354705439567572534838804985675020818190847008377203515867747081838751853237360068699745752211639591406760964780269533718735792505825290651413305086476224537180478223178986036613745515431698608393386419243016463243540709250907166224728582422846972323937448571317657665212035636835715741663636691360812514736233341326902319240235543135693600279414207957670339175346775585849055307298813969746262336727489596633265412872802313690084520256915991858469908835664831864825164274897448623082079303679642723741668661806506892244203685948723468576692953537602258323671536491077295949597254273006818755001293504248947319861940765147026369324299423326704706422487654485924558082437008954473551591300644033795233501463138191878376101643921453910225285159766443457005678387383411256164009762829444239581630257975895260765407094772855484044691989893064449710416743939542520734590938982753938743330818015617947660892347955395458898211870105138066152282509887251014798949316229539289185176626503294603187445180716937735785239536487579920215875985345033014985160143482987903994779377984634852376269794742642366902662424540229361399777742878498239685354893956906144816563563158573306622614818769413404961653195317515781041624736152128661393815328670781815719174606961107403245746384656488732179116815212563210027774946513337003856884509274158984960644909539995646426783662382637263630664348547348502124190171367868673351826859703609877994246019644632857126182699040562430646494404193899554362408422777953514709540571766883468641756410721211108738363606118529237508996425699514807234422672179560463206805429825759588222901840184104706868871814481984065141762649980265665174120346068163575380771666435986775075022133034812640883887445442830583171510783067342875558610605721505004385718873757853010123821927972018289405399979109374777097040427798327430411855885152927268319736687675307841296706016512183887443355336581223118265451142785945137780274790225547621278476381217672853160610845172295753250400210877709844489202922258817318287087496906729732701667420765757652989140026622593078199693313541083329372290495796033415887165761189220072637161683597330735767196673112045519980922806867276098545657156931902492201916445055013948036323319057454086651375255727564379003568388375174186817130499780752313281135993123164385553995925330826718210283079449663311051393851358903628437798053290853144405648919909490438410116700579051080634791377525290663916060371609672585286307007272495375737399574762989402955293347944527681688594407639203799772307897912054993538071518756819211507749380528534080131071293340413821064409023050304380206375201333228711169082995448412133370726666688580675964962177946183541764337727284713343237716105094917422105714083748298261048611373903783667563753231864365023262746911161897332606278961669360488146546800761445395678076486953664061434815204154319855089943501358728660147786381544009694199578686914428950175406572849896425401290941996477425312594746725534379163565485697976113649495302283990712852735501179774870430479397051324778943404831834585645124569436637129214993328066678276583448458061763376547526153892690192238321457099545830746106806624382995176977777586282673143573727481679332712469988645879885408997700476070850418951444795397637766358582892262099426857528557324386425206814038888043968257612967869399604957586351942947807058906617540522326513593930363603108173498860024837276562955351858088714126755328817458625812524997457630135290999967607872924426091148349840529640056429367367956863327062052665263052206227646849441963363084768153087546200625292855496437484494225539354216594306681786628710291477028078453817552150928621893405759635418614274308271472780052974692704882815734457362473963147650472223197744089399692705816305835686570516105705129981601781456995744312507786954409501722237324998548306164545467707489761953771902858260992927786068894498014985144372508672556895480611290643563997826536297885165855905715234654922636395467722813594333701301348829986868982258269962687564746229603206669151395763711661586059430917929219423050825994217558652619761886337510754325265166116879547424925435098097159924299742223624637507091967844524702178376540602548208564193664484099588098620905436283479614787520615532547767787995065859535372687376694341508364868464892296319111237791204732174412662610630503316760758236071243749814342389354959946969738014183697481768394322274395022793928211219003967215777608096369928104286222929255232903973020800048607507383495258562983366617862234097099577217328533415341230990659832446919949635332987232867958080255073118809895358853623540984107308672708737449622567500606827127080743526790744598540559557486766001594219621414277082514148609883200703851315067613662637401637163361469765468770230581614703903402183971957480624989454420796801330862733194812805269078275255742785787497868257209600748047557032890055732285390676701002925553909162906669623327760867133746629686212439398058139660937418444320817074382518005764112521114943296819764886170076668502869021606605700132141479603541026260652884764049728579319780705868071979610944162488071349954720545599235450603649177741857416511797387270847726258268668219252295240320233184952930612308592758241308815518339967515015097754374718151343729599694783038808271867302163023100886226893511682047579970871049289645871114670222269623773892458549775600780399077421657683976711825794262446402204108277929956657991871790299927793993156203809275831314122935210123176854056046925374168333717044426947186534746138401720248351602684712612234864791401605238356515370187727030760090496217162394135240130849047231340218963254409497680410833366085476414148661603869496113082201432497925708252651791274766558043889171281880609025273780006850529221069066552754592939276881111508547117589636713958031588289645077646655255722581400726939377561298088798692164454938195126369573252002600414116465983345626684049966650977067981211195245783707689026245241410103866800521265823300612656050815050550779814688767430071485340638401527559666071238499769538072518373070010379047817715826451665030884238759807272896764135707910223267391326064791207401921833766435928899512244051188153882314652969744887782087946507136503279295803884530917823028219055152751382415737530991228929602131337239156345801986362513868420380842638090541834013089665069578325858503127676884331009847209471872306272228910541713437817312252879543802079055835761673465280106920991745218899791630786427180272058404996321869031615374315504889035704583539101816672514019681470645594291689451584142133237805865330845525406590242263983055012868659302076443270933004227826407484199710874114425013787578676093421009505892063208496307251290691396175441749376807121157683425456480961495488457195506582451584996388478950530153396680526450258345386546891125417102359034845210832479057651896538366952552431234916793285651893200821078262644231644124832958784763856919267169725965432940595731696684501256334080389902821146086134118055656606007536347819376575027639657908005837704192138715582684120736459444050738602957803335306334469296032692842462247649393548554843350530692085580226386901504780288386761687131432591213062847847736748071895394577525919745072562574262864105023235212304583858476568659776146882754858759929501689403063815932029731567269499204928650742662298464519337763290193315862577163515465731456931316067472925794269064670322829609386981901742185903682700511990533273459877224878191941278059834598602307397608846174739374671941780782931176413162180104858805528173929727297802478649560076352116980733701491876927616869964661010776140931989236930223473370355201993547923769927175988330743582281423919511782166004887399462942592133319811637305801485865687614199125128712703585615278982086645291685634186093301473504642364132356792958005997632629039390072988776934676177619899992691620011221774597690979221270217233505018724363969666725741059142693375051363940271918882049941819561429920788535784736456376048755893911687889338422279625178401964714596530037599778757207461355235854869565932243061419590900049220130780194892769960893055260612686040316104975383856314151605373339770418047789076555794775875519931395519818232017183218890843168080421231836912908401283769284160066404904484964981036199143025247450706921993098222508073665445383728368345332422850479291109053975345849367977669801279125280060973692963690776658033296954450182865186352923677675531218548406564304033679011583036097908118327966393796646092163547471589453325612579064642760549736445441993201179226224092917088261374443310265141844488796663294986191032003591287283846184283878780301392124941885118520716576513424375737771898162541894899889090506445356003318957128243156820830845240668831387731156324531976893420341267735012238716543145465427116669745569787077222070741465000002791353663805500906985596706002586731869061402431376964180677498136760677204250307576847070297269858391883106916515564225286774052464325048879161696550198435060235281645877611433721155916902852690875022710067267372425885177453328433347730696171583475114109208200053198945641011970007174567646679426247805124426294415807940094294353851158202565257193188870168445105511519818001682549395583885742887516538403298967880482058338716471868006567074180520143166415154419912456219220352610460882972162491602846325066463443853046877806253566447553713810568858325454716937868322384638955231130248810267975957231416724475721106192003680317262058673160075251720245314508065233125785346347435691253109742546523289417000235145654599822456460058476524752871105125839024362799341358484744288258325171815028583217984907772351816561903316424394423945650039024445221739416094077591153652054463798739321443103076752996200595209168400907306251236316871480059616922996094322423385937318402696558447754711447713590942114838811760696532627089039648831242970934612414722037678631513998616805148937770662790310775188213664539500801398675098809681193906478941848255779857980516379462540500568471603974352601750620307560698345503488157530167886098334112137136600502208983912428963625113385822192828412047551871763020364073848695720305588530060012094114037475685901269219618569096141159363433519524810610949710874725228303215092043202335444732187001582651821705327243179913377209660714846322247317800654812790505202424660376025676317068287461313005224603845734007550054649665371755571405370299133194863071632393293020464314544602631805540285329816983909078546469525217781721820243722034511614716483403500890481212680139649433746586863781543263570864294238285171334276114959074470457815294008016903896319831082946863594386981534374203254081327192502795036493195684035508699556644831705783432232800837519556238989568321682502941259161135497801887079528788335413150330884653497972082079896265223879410718707788046967317593338048798211876474485535964638500479077391840271487867969378956012798272046804020773615305939914355585550969561394844070051866359979544483274837264961790457813207111417176702263723372999999799013552548533085717024173816175381740108786158771971951912410913967387452954681000717049661799711394060844901016486584549917372541006357078316501920560215366323989483473513853977371249218555890746436221233987335708339293400585959357045486665816145041808100040994043570726129455890651269809456320802481643701930574891990973798556630904963386530077700928591548878646882071484315476521030301858921413288203134407536178217285310728173933338641678276367459723646910284973633535222072308277198485175194336085518770237782319134193395986384059561992474360194650513094687141287973591505985720616933337004919388766348055396292809906581776130887405157440084131849465043166575807662609267385853694015777414339946135693618030611402955832480573274458223072447320516168509735146220119446600833335696308350093832144016777152828173722420973780390301838249438067637491655232243545668718362477631896827553387308110528405034757537196829852052936282447006949799380718271267047026715122264628335536312579239500114138946385488830669484514393648768649877132462644918746436813481862441098731291128682068026275815384808639245228475077071344550389042492123017657471416312632972159794679260825719318516579834655166947293504613998087814334959277382095160519130803226219186351965327300456482505897680030679426252523242152206550023543870822589232369345584184845508049044409457633689537518729806500312014126899538978950967206862675238813479813127469754355203102099837571233080062657821248494808083269519590973987746220910163808946567354577140655475924250282778081124484108616688295713245155362607515634824862889889165868382624193561201957885251334935010953847186494822802510607930019720959731950260620336527733331471033117002177118637235782756343657968608873540924032734286713786177202635497290377709324015040540795467460283458956501205062544880061548007209044836811189920977561575058901126729319896154528351598975640789405565886452058764524907641464543082988104760935367476228436440759957863737041873367260237264579804287251035282472483299282387456626645073447674752980527927284680686875078597181847512261552488648155075948099556441012197012273543201038925157660059315122077205211675240521751631078133151987570517956181241547700929220385087313408846876819380222996445355105119091595995226653303146806287037509425019649269417333958945290153141463834854776174909912857963839460042051209212398778522682866442486185542202402265415395448712999838792911364943775947025198151753740308741626367211041527464128952258932820610847713992722786514650930058351472958673479150927887229497017857971795364620570292602258436604218043479480256082386804865558669954057946241507913678522919618488327551386869987473871796596472229598859008385872586929501617383241056972199995515590244320562761377767004918117453607330689618933122503244268729010223635587635774473307017650448411621089983112347161793390445424604090773325288351279730953429697323660250007436470229207716381360673380574042508948138016131004991098990626086755490914357870569364800819555996262726113190154061939527711357222734228507100796514853524186297693280154027786459033053707696096606695440842673783765765734385740935588059165849858780489553906351340303397717235808778194078070009564424215745914191747613559962153214966535089374151285984223789936395335148734634043048031389617193773009225828433689613337069689034228118190987655672744400203378392054771331486720261826749695972961595738928673916489255461207855728252380713573150384903822788998820061161348555743783201963843575919521170592593678052185381395557695684203216409294467595279850932327170370083802326317456229158356267095605959306383963417022142488552658895124027438695828199889455680015644186546249919144364489477859933547573846907214331475075406776044188915612324998287651160976762471443836351363744200673904333703569198308137889258687208042377812350835148094855783174520212540258681688017252708503877966385188723050541527379356301069655897719024631431529234043060395021725276442237296949535405590239688613236119059967809916212306374237763609483236691794109997737889425882896778248890641608594042962137427801362122671006956077197471737602374487292979276088651900600002101714312054656367473152882830937579549028006792521997861076526185968074514090467424058214230793955536580731483575209274918113596862975216417921006759654057116555497072655056991700194368589681660514689000210407649728737841419921840397779286436779659224514165375094497429231348070735423541988238817512986493737555505144431236756371125295127518913723527125398740401566580370843176713427702997318028171423393116271470154826691051016152515899037670785681506538680298509994006147685418548158110821409882869483386190746524115015549968042970119922027906638041078164430506320883152218221551153336962524653626887391217033428171511153547639975745359351647460920245014882972566812183128418325699531620466138462450815557627771163136256194268554121198592228547181246687640477031637494211893296850538248459842770024787516366765429695895033657153649022751923787342525589152241152404635655351489193372742616374307293449768115030390098180870478756358201927145181204793358700255051455024217899317805552885067770058440584583301882019675944229042561310118367608019958704052306163380405680580848825145861114956267243372030139691741924810137730470881357743625138468832392202459512594343309254477432555819781183355388045656943106992633246646479505323593038397164054041136414835315995109687796220540381539044579522881892040659823313621247872874551124780557371109890885728920849758255121311604605240798557809164840273411261966919903962771557518942885201555080093917581504746435213900828452271759308659060677859597318217952987892137241745773833529522000376067178669369658800588986722858879140805461823442357395228091446281304554799516564410387596691507343375287450896709681072510909098312118659574397601449267898929581201321143204704361932961303879143934047800681285868792655632386478408783725437382769131274670068389885036203671496194463527721266215293533659750118165482933235545597398930654751625997044474498888709801950543745099541008150287491350528172665727041572689023647614442566732931228579843856973007727810677915780249563172272437009532127403230315773849488015393621442759986821743404456509391329113516647738361887171221291642819417222697638466344401316373705817570777544279705710615958038795760126226828431961827704349351736017701413128649629190647148590789863929876512612706383964174790643934207695601964967604842814308247192747351755688733585233272426132500875211263059703982707150412438000663655928984480067793168330873975036775884134989901321867601021817874487712709073317348310740583915625574338593712422578574769157604625716731521691909364345561303408957652823293533948369198402476816283924214875947941709136482469035798717237743671091131120045253516542044200720034418359736998749273520706970391856380435514316396538852908199280482551042462662005424478413900387917595130802617715240787587678119268127496099380476396216527382550840673365691295960672324157912155383286007283018221780036446218378911781651811657536369874598443725522243750060054293073078774839519150440061447106407582749490862608848162717799954745993533210632323570775082937365634075362317134159117586877562183395531043150686109724813472239124499649975168425046980732854854064469127767614005040258538739428147873555948368904709091017829998570602210431841007205354450228690365569299388775586909165755258238984037548684401260343268630721311292781356532844878024947471196290503165245734964150364497536237873064930350195806620122639355242834498268786496347615895563515654058122273117760869437104776105298887863123063991376575232443349390744584143714850524397988189661964495470618864948233761429154444733761925014984933729426057424317291843021111659588752808324399967113663435013849711279495001924449061862214512080028049896015362928133910428514059630633372190082185341066954453602337016999769855607744187440707413618667508945554334123521254949488512774327934177727498078871369808265936626064381161774322810237157927541484586467606949186168087936260012406544981621405448230849918755241364004419750520761045636603074433585268277921767225535172704277438510501520761980490301012537319928466706493198722218418263970610990281275349350100776033033797503137894565170627617519459936325380850186380208948051334151284040894089394996882331817703096263751578055389831682656781837964995775880289406139943751526142769874493973545977745588321460343469453319722119113769518777424935203584569877528644509740315710384576364696342029275884843609003244510436368088854687110593224126456797545193954761577316421176366604303396855209427753932784115743950886966841404372826050923351373156834342266294553155617584497316744180195783570399937017141223192909460341218344459441851142085017250281911209123907896290380717240927175022373977492079168152595326510196059587024547081192844690562756452981920524487638102389384299882045626460546317864242419952526450653472182066579374213464182270695879809479470320730477666698775287255685147242098215099724108134395107879610174186564081333726047688660163370588714289433501193852674110956523907473105279996578771454613382566574707108896031275866369672066416583635275224673721978166902299199667223809633612134287136423381916519707676382417517175490208743222873881318180728824578732524717422388690098506982933306050753784163144931709960622742119405642856369064246490667111242052498415603433152593359554982827062574873555022942161074060156489125082839152340606585941497317065195559165437736925715909478370848160243027458918528269345192330315349239453742929891168140515340605798704641955050577246027152123082602456551452996894072480929397307957636232205430292884253486680867647390758636970123187530012119355652661234971709713244228880554875644697634228840380018980538495571388476843784395548896484014891457644089898809334246462042808356229496422744526619139969924568766712439083421555567174299242849223336360022947046944980741413643600100332924509623006851916656917414470188676959247477599279795476703441916869666667330689519899006695526150167844167701886487058937693292058816857645525218514662338296752482945365150682325264131751334037392975692633528593476267718066714490291116117558539211353533097052071300814749749795800656410254213404959470049653339775559521698369982606886479844502761090347616011654094679541522502344131395038628582717336146117982913007465809355582070514739331225738557238699176638253479517108811792404820519668333216651311306836254470213948897547587190074999593663314216222722308175672118850616069327969659789041390072340243596298619222980246631971643063509236023568216826256441038709953744278800434634456719921903884154904408717976622555425303379682519580737527766201625168073259367074844182401775630281796362974741009073198591850809442557933660959739866466964842101951084683334590315096893493497361311920785469316670115505955373123629424526091598924873696578699923883799109202187892423146667958624019520513473376060244237123758627616526415211608870470508409760560921411589115346022135536184074131470545015960239193146793735690371512486432845810508730966605262281278900549629911732914930384013210006948811027726683088545325391981747423911335223369690127047154725631857531996025435643713813344786026121490814066596554540801683140605771852241654305886091103858990666794343274779528286654990429388417118196624806349026725470182728775824076782516935856821895895846894381960902151329677853648387317092245379557333675406186063919731568625824818237205635740023694938960069234288481696176099844018690553306777355910256443421335942581097576064982671183865242335467601073127642639981502426323492104927991068044348254413152011450791521718221922533510602167294782681238372568115802451389177502254862961874499260940291479328733101834200836131354448047375584811824145375580315243630848777782970835676379494593023682380832170667351789019011229404908991211764381267378104164364710752674842850615955282808569791037484323183449188229925052919493705624280420234898777776123610444638855713384761900424432379064371191315456614132106084201096977602447258404963827390986365952905863773340546616698164866684352736122625908397345717325724944143889299109915871823833619078330988768295276489979764929658150544697254605485638957659447193509346264665793621797885109948114847848796633765125678870867244786629856114913934391115030903861971467575556987088024277138211427021991994444963778048520363916665555389023428299849461142841708204656979743079431998896952406868015406316185415052442910581120953208013569718432392795426360117467152120404317706536831157700527489535673377751111175084977437791355781686819142717669522757194762381547461604996752201864956009693759584667794268129768402271186548563018019521992578257480793968012042116020362232068498701977665188728993518572592790088629264921389794075828439104930161881241244700500676979313128295085302512997405153608527880781643989109767078791154938188301013514719590421955680108676161149026029878032121761212617300986610691147104702818483698290825194060725262636540326225614409999152850201991517060555894053647104522484414603009733882371078277526855205142794450135362773468141038615726914881785524561082037964071670282934469869939236885055544531230667861427855664300915474769452564762999148498373169957278995969955723349914224607382068201614702032838850270937015234254837730853183828755748696104475280328742038455250532466570527033250159109931852063541895588874626727780384481835415643744794869617381581660174044120935796164651675279196216006366233492202374068745720011681765795644582627184876087938628346165884312724327698394616190659511737076038351058019209927972890358586944929231324187454559722136939414564783122926459816581829650080256658381717293580317869687507201651699108901898640317941735923753306963379993138063691497744433364343964847597039444717756545702518406237038112823792518244832854888857537163868677995899558253801593581825039362708072213500749513012035743737634582096476899481414004907141883709623483973030556497963334095394430269439261153532856686956670011992977589636755065749087384399355436028720790711725603240627539394586387708227773080924227313455633597914996423708211931040807076213136044984696690843247150175587253606443972959855826952883637640739365258724287192301791290854654805586909601660468256593003945408517639350451747732733458853694856873952180744910389086581489179128909013409820876517957459528661520743801846014890796576890361829108267473920556743356641548107627468765944689452743999284271403526393373465971704296499308906416380193777999750637685731313386808098940571366827861420141506999982515451464465143309899893410598259504617698632704773884085225649655179063070961121467543083657141499375668237651212294050530120803472112305528267878064531243233706842245016320427178184607379463981603665560794687705427311828533460774906277779582255660202286151682411480466447800035059411318294300757429363077042075988345486686498658472952375994737128799317700851393331878942101638208392087253514307375285269389249220082948655046271215340988386272060901697794118110430652124841400604427168778799817435823283525541620000602751310373605128200168302368416334090377527879124413951515159571418491115311443832640979472743587797324782984174174383366994896029590275520208485390140315530746622838506929729688598591641127279754680422811794671862804917999345282289750350774201567814962551376574701554230635253158826883982729700459066467462559843786133788524424608829673422510758298765805079353767640469821046642833863439066834455226810354613831960624431843182255786985635509135591394104371284002269617793086947175925669005477775805069202683803429116315231724256529435383370428563994288283820142186668378273764662348373538944849845796969311098151828563605171823187725689480562983329145594600857571845664145531091421704397395476326657136506872710832610812201500905423415081564185197492868874256887404332997585296298598935324735140016602389777981048407714590150169873062581060256923923415477171980208441130609553197575346768013900059994735315480892863231527769284876627824936938289197137042035000759737256423121484017162966010217502104303455577575238385081845853069336895917824616490321656566021598474697276486201364409895031490907172826780758646962031281893867336095824135242858656575366396999726001266741566724292169467515750742070669930885305514019527146261790996152232879502898447875697220645289550346301274018427784739778535101538025017332507707020400216080676857985180897590293374192848341789071249820752668940953670806921040468127937299605642437742468523556949622580533527322162458422772508302700562934386626858810431475344431683256888499772458742372628203454874203527486545938480778002521940099234302582083973579527264194028759956950040195531056858711859455563565380124442800783783084828860362665044968563661795180846403089980642311478610439304184197142912652387905385358656247197949555687953339330412448944506900499759341016257185531319589298187128749921418089461177369554585449859453373414021403382455027786696539419869845363349061059796372068483189047745133678061762659997031259445366786990609529021138479521747684797902220210027920255351374027361392937899931837064980500775266874567377389428407866259735822249832802062193386725396830822250758120389706274723013850111283946471731979408776961419274334768699874574988309370287404999591925414599515574368572900055486341053427103384900164560485258725914047386951205680261165817553967318170609130862839065847113240488552319055302460683002960410260196366555825915132949533063769103794468473403974867875838893324962679684292395907294541602262255579726970964998021793494823827593063954257901439926565973438329418444798837414939926388381393752643810935128096965565520188756157179471016664163870342540823021087992300478754127982264031707157298026316506950548444711294735972249805674927239011767404839518162857103758715656905134318772365209873965676681281720088701752589085325949096272175069659314970559193187712015461008199198765455387756907926446366313643440151829064943292325274517843573688033598441643202748838142745811189122678408926940103826341559054727745268467303135283710973163776445668848573229595178275029254569596840034980115907278886435002530533137397205733135011622897905975451864999380786298416208393442943494010188527560644743316030796447934029753057603012546003982594056826204323819965397408504069093408353669755219940874957019925496430745028126383520046661433801985678162811601387836375111470083480391680010896697679087524568964497996954928757066013753672673112980446668496939649683650996580943407749662457085025896192459928867361819523880363501998268392917504323691652505047793344104874582271542085902406033130346563833628674810231380030186325969882356883524747430728125854083965714397836067014528687537484628690620633793037532863151458449881649272148950166932782180978997773563445116264633130402546562658629226172182728191924805854629074878251347693685187445949580505425154482543340831094173002683189336687653285631419853721534703166901905584840921983160218503729973860151307478398153295799749149144498729276291484387321408818421130515396466364205178082613226881825146089436125279966880693845281277820596855501847387661230313498534576990545716248034069323421955574152435284705893308861848923982089806017558751633388317489883353592396719248856014853055735881787411651115926020962615586692919020464003560573440267856907440537367053010113950358995480145067363882488908969415129571005866281635689374902953750620589197001682718460191031013863433360489046565260610992009698628721475206798859634568648461724357834234923355110327663076777835574916754001954381493478113419365522433726239571894150303369198208963155641661084541238708934102526527727099380742613948719115793140992481654168986193804900466987894371550677882678746635259348167424472957249375971306767309526162080975255780914136291036213939817613798355915225179698065698681848212486231798368998194389745067248826610174387218298944229204176200191626668230694438360818093748266639511144253900823382813484429527502139970573129308348730159419776496220376281079220986457056800939623508747091730260032592948263431824607053496469167011139853089687473715417209096874991945349534126129630582597224143888383325240051048457128533404729822163888842860372799690932828188296249616484735034461090048540049011661074336980681870033038296394760766149148943097284761642568034577613102873918420573534255486364838960421757417952926051880863799162645460058128969248443901886410552488541794384484559544539958965571148174212703651496252905620770509264255468245920010165744556516991524510188891796856077199572833905885601578969779319217394052201614376301471065240647588740858923088787317891326748810432271223840059644140669464477871446798875126971640917889537445892967263662468355978908675215447036859849400239906683834993684952568289424755683775028789018959959106313623601142390084738207880084466554190927018675384682725841898179368596471613446709887349100066879531847758518085617637626324314458635627189198947007553685565390511166656720068454236596404625038698713142543276716125432037007427725247287821094005757768623610516349147314184765734674218546539601440571053977954529342263970674388087592412661648066273135515615122414371272549492815881427879187250866926979379195572375752784977214702760762371024596864535533122215777225658034983755711467923974197454329803730158022879760949326518066234010808398752972764981349951941619886052559941232241504763101596818434035114015053004642656149587518258336154280538715128763786610674843346132990571061236687383803124563843253555768628872428145512247978614724280505351129139611105007830740658049668687013255893932554994498254223315660340586371696622919737490430086840742718763420970700890923289232521856649521401806409252673891732126100790087880623087995436555744319775107574805719545249304983884839407608146358635275977713209755273830233521778175374841607601358988125816438672606386358870010683929850662946781106566585948352935139087241668189039795100900836619056446434694925398195074403807831373395679278161933636180711526486466341041345149798942378089977266733698826110828746658287756433070142014753990238480921672960169481237482355438231205986628156581237175710366956923146160646405958932276113587122943277034744657639547576431820867243858439590020010009433730134331599468916111752828786709672443758323015469405645247426354150438327182248915105142687449872897333712019059915971217490892367701888448000683905260472957134475038835876423333036792986733230649957742383529585610121146982671578255005347858827952891048749601720118955960917765023818778151600505042401126350091442622261367777615066532369320718406029551675198515236293371607410756480533928391915978297040769719701159051638030917583609127363769870189412088807042564125269771733771108508287126405775880241401100161907733464434336280668423599243342736842850275282297258090702685665482563475816499882886859574384846275054971981658776635299017267218300732246325479182450410779976893410510591075138259046891271226162563489116617479640166346398684889228184194675959253766414592031726485620233004747826466029290459096966241918483297051330907215672038114835377663063965152756465859135029309867546211009248431663486412488343271415777968860166529705193947454798964157185515485586739565431735258480797079112779701185206211376168561130645322432734203792934256776198636109877770679567051159292760793721307101600981608901068739952200470367615714817875072289422208810843734042102145012176438010215713588523381572571386901217367790068999001603187176633347358394700893316250388993770171375634376274295328294639725460744331735150937112351647039432822692043824909711515588798309489891388894776607895527314663867446494969629264179050410039812543817936072661660593184853433009076472151377164209093525203483161923841127799464171453602114827734544958778131202621658333138738620872235100199196383887791620787269114212956449749036994288757284849774597471972675936694986512713042462799870948004030201979835678132529304992878899105145991182305042758990105351508928770920348734416809435167717313043949646029039706779297766675709448971659863614972770312121136655015133883230054184230296007000846554226148773047730791468686177831049996372340696501232900203765587315728745396863979674005761903469734357304392433681480458220235133688540900074839789077968995658771119824689441742003973654483049531018598485559368711432348046363204125579331315132279259070391881099948177273914534916394524677470484809585596708186986005142398375583365532578023228266184355707919870847216623246612583784833342829394074550945265397657891337681125553285740686850716984937946135829468874506162546089463080099210854531685923563263456285022525656528643347627795431859828826548774223321643188406828161268777185521505854781538507028973805558147867492574366979705934048101477225238959077129974737736214813203231882650744676002083036982996738830079729972134027494342369669417198177466555487325283237901302000909028697079065959428660170532326823877683036768553699928140230734693097551616734530606389417629152471745160145728239532994384883868069139233100332032390852439686605800589616507111373694512721768926878442975652544166129861757965289537474519707355133608509279558116060816291915104490683833827592892227111317384114322943669034200193779552767751872208718974390194932663231237959676362375506721575010112310215140995551461275704813917545378291683301011179422663130305027831857603037009646917546703210156160393112230376758285588866108508005307132265707233595309478707746366984858449773463540643386904744308181557410999187866729392079090411378013855425226770174358613452674681452377700744694900773555595070368354375979988815404672243735034807312089435239543516309278426576794022557246569516959912589609926768806045957424685439812336486102960391493195204362368988684159219681624735961895732649297786982529151710730750526811536785794700039485416186972041835332574342731973609497114522164878766322405892411437929933648174733787350610593523365877184691170107817235672082797121470116270522763769454908102262911703179429112048063110575082600293258181184808905153298034032242584236327906904528076934343340856537015162162108704648846763455210970863241810096088456574503400754701839889336061445841073468902685563238270901643558766196128724756661930936218563674324045711583958016743531645011170259010486835545792593530284573284788628113556065918420477850136982385508145863550334134913244749410894024197615097391693050840265799274221452166678397656815001344664418266377275129516534857381506816955190374112154742098991178812472329856797612379022902162458523913037305531256375701206927231676086845169087610995825580286457116582645834355334933042632230857409879339173840772629334174909304308257331147230820712448734749514001481656757421795124265606993384864153721957275672019893780604502749207970057945328310116307852866734856560084532450108516809528965820887148022222638739358335901469736124081264806821579382982137282183421631331300491263476456636645292291333915343174399720328838687883077159008068569502731036560253242837995962169231638871965533232765349840588553490217999486378161359938941050597838349505767156153054883286752946163741205130946889589098043253543168798737847510578328245636242816028868980355363930198964292185001776971665014445925047033092352146642659170438540084170936846584726733027866174980230598594331256063934101376225492169741260237492585547575544334221742862356419434737063009822324809379716163074240857216739850976869310347722161981623056711815861970366096052791439529770346863862896658195280485475852290343174478593400190408823387858347186494393511268331959662950163319659951607730060726532536013057868875933777970471765695438448342885598697881152685089967771129111320361328575317509591151259683939855402846077613407826186098017268858982174277003388230248731369875679749981081582066460357522632354928112129734614502883292401885300223331835213281425805227524130211111363219652015212975652623326352723711945134662468710792425389928654524971906730101339747581083251341651681959706112368152864136730435731327622461622674215883134654795712110019549888575078405159445167326988330464436667812237273849788329001031092495041788650151043142791564772313006598059596647906944867407679607780018503491371765332519702333030548152256892818477619878945818169174978787389615724162020181970542007361994485708057068550221772196653478367408887888177155394788826149983880024993550426893374440486632852131450836957431666373510604911775017748513798502580135857252510379074710021714003513855045636115681252628579822749913867815545412440445949852823498300323296016002158282353761186998986693156448401670919278588067072721398947855236077395369499136227510709568155780277737248851047008732635291315203998643648766085134312055589013512717420366643719080587747374961876471521316362564197768103820217376852617474137124966071505165095465918571263072399298735635194720011276389886622940028439620520074693409257470907461025579024676104955233347988520603567479427853009288069970481539751150966183392566358167858687250135998234421197421548315936611749870063468921667560726054108021742062012455446842788313228788691450759273509538626480867749794440770944662229942260206011334320512148991449957870060365481983379887189455312093433509038433496913035482432067329717003029854450944506169071657419036186934183704524356524838687197949789311983762327491126867493938225407262757696558696657424923431552332555538081923401480331871147217474086761885629564405820001982400702023896578718368084727957028098691871081875206830718179619320934144891256027138720263997221719341086369841578663650759578790028457886455083035552481009866300343689507064364440014065137396843844666892407269501600993500673799405019922809591741944670898265295125360487023185774489887332529975638024027851915273349182053481456924730005576995682478855913651128031391794654358868912979021825913658792214365403602450461128667769873002720458555785046978228210274252986405440207797231353237128734041830724834552309194032834064519113141082760485055941253437223761608378309322139678604455587601918913219136784088150732155650402172988502561595365651370444721135400435462380454519850581453607031005571082456108803647133020599482072985775022768908327064512706537649396054633143647112257183780069255028859051337607141682162959336178609869063754691795574916430032767409844164261820212466456477844326564001836423794763347785394130115463874454254115946856744960177136199441203869611812914251328393919907399184576203388821650736076602807635036198069217790272538166571590981238060749839398556418531702687300382704693080874492726260375290132606537629339838250741353930912580597930019846869451548043181155641617016007414083269259776973397620094502112495014252877748944409359095061526262040805955368988358789921838228929863726167188346765722137427499295683283310952623766442570362934849799602612272842899087817788050274115043937772879481506064293526027789021312865178429951094260498257733809856360757711626034087487882837545802346800115495343270587012867076377275557416434883323566508854806286433123535367282244159472347569470301801799105618744686740914837219119100180405647733603621271174080684718102095752371099297054793379571794557290671010520662892572052166276548864530749853571816198123599322593840023043482264387321854011702210322839232746468218587718829035813004341554183881550842774367310675544858172523626493658740254086621806560356936703874861247229923067959859367473194275033678945575600578250911738104857457667704399774302189649421094415415972223141710536831891612589814358174519156172170768930822254623774029382457564874113038218464948576431754684363522528485570446946765170481884253232618574726147311334261570621868236086665810301316513794801422034564830574948076601093646856119904871555472672231713230907570407982326323504008797427544967953540968582383785977705575254793174875323782123978199318221500313209323349183683773784510855832063907873511477707326774980842468075225957096615877688270944477724831397349965009891171672688372008027197648042237331625270706090010995699715964404057044848358964666559013666292430859436894011222112534236854761513059701561845174014792790410967636249717434302986549593121876042970365839518835394358840361650920980006030090495969616894033852691371492308479966794318428587686804429401367879138417502157926555786741267149444470870657959094637151452155404961591482529033613328354511138651450587856833752414396680393043913336094366301477619480282216133681934210155705654736983483482730284535225746120270006325842967746139966178008905333175181758320219071583098357573760097000704546541570673365928867096492668237611040286306277431265877182980041931287727485717213924001617257961298956125673076986126924244911053772698761327910547983562337560903553159465393212306856737501329867026925999807177806835821424111563812552928346870662913018663870268103899843658013463533755669862181007016559773776465650348804629353612180683647311489579986928519069067594748323723997956448768752259833120280980318817391579004601114584584026039855548852628126819389487899092499729118682288569189745943349284492392587832598557203844350590935448468997751242676404633845479214728853680903568061327508628129117076980577591650050852557191530409393152244381960337816857040696275574003867479730264483106859099028751421308290773387794226645599764027419457258106899847566744121143160788115546042849637082349774296212698626013742814912567296075074170810304270078719888387656510897890183403905256415583726394687113043674133708970125340747976085317168763713517558414776582870358376264120696495254151744295839055853683267413940899621556190197858343708082408848054340604273705334186764751938036518667581846895335212320915905849796049938437020391702742796051467507028898701328593714525532331352993442425531595140762722916510022342229890201535010794052279609362854256863692907178861236059091170972663703352111267216878185334181007924509437453838447428517065025077671833536481903981806868124563664136197365050342167721469612877391079036463168718449068027211287481951763771386718062731907636230696004213723954423399215819016179936215762858188614804364819590096822399318985106714513621083828276630847753878641013549052186478553781712361573003063069917196063306708110909267106411160621739820207606312963716379625253133023657527279580294249996963459184920050463754315907744878265500350871764286728777263654232881024055204860615376381782919125920498561572325691180621827107339530139273354181282403647083472540886618482871378274590346380245013299764911709126702136484413338634827251447135566444180484733936385371908567296391325635125845396538058358329517087073435446771372146682600414025431293954173414272113764377425481378839874722659277731311751572065844787022529469557816715278252510585817195468987284432206931706702730705193874005229319622719642572356836154385999712516286592710573320232056263081531073962905304035714752524499845995537932166836968305953688734512363942774850818379357964276744293240692194335546995195363135557795188979932129567235390680204289475506739506718728297352975262736082228701806295747392882366402172510595906407902686323585732272818673855230091480995308452198749145170840302832476411127726767094800441325553924983794514855585993300045877103156075557086272324752218240206041539685869002450788636605676180430800844654000467024393136544042582760806501352365311740995045255229750392126232647481861024528699864302646119251815620305954703725612596747608077248011500958009479527329292310323126702346366198603305828137144279751527274459937260931756914106957783496770765459380364786819856083846097473112690123859085408965568435082950844831244868882307582807876178204155167900186336284992760275751450582903203738271400928171576407749034210584675732887160682359509093053415401707936156599487107837853584954532765414719838284691534263088690786821463872123254876186338513874294494970823561579346403124545796231784236998055962712582736762174811603408442010394944688110856025981218476244215005496594300819351196691517057682605580830876787983704429292446701668198993747777898104377926414338309808650527457173414400357962791544210999693895584243599510727235697666596035777996413506370804821075549017564528540167041583735070228051523913140336020609086851815965507626144112368738829549233523590727240373195436476643268595504584140238630358874580345771314660041055570889323047300251390637841615816191483668226800288778429518412787023111391543227792244640863559166458513068933139868380303763079942645344590571487406200143154348988277877313236812534806360687150990923114417573186958201112088901519017425519290227682307280374959431375396740945719439547886447410405471927799354331168248132456419777778752024955750794286126658476803402958890505263973884433614207883270871259486984393836601914450541651045161856751826164291012473528176755720956037457984321311350187779803461086244603625057618404995185253724494017613144057317784419491800280544927342743867042783230203433070060381787842350307744323941844104829675367285529169028603165591914430740564146890177525994314224447462830817030051808881552197272671493934977186476856490047398798816220458756888621108576302309829394471541361045940839908218117052806729951429497258776540338014742213833115817694393491706345607765682127232893703656993200394689540988688662672496695421228709751947517263280397141676147198754079162545473216504760000873864332406082534673456931411315900556307100393941318150783653215882337994794505651825393904270884527814994000462519369696285942653885564686565549002452658242929723063327836245773691912777788258984956014948134513981971144302789320559299651608583193488336152638056822541060114751374758256580472165861560285319796680017895982646267066832769589409617054215651243247958132973249148360810444830927722627577792610526486436946176013077147149663606948935464561806091087175990998708864097835830776520810683713081058018259017003998923620510814468223564320715131609999926520809268244198880748636176721038537631700386985405487303104967427581506141487948331574827012202023540077045884056694945454382202169457180579779133232591067341396743552577434978644506462366507239333095452725877903281630975949603247204398201844976354255759249021308104759214587642731722834389644015010678548971100885079659093577221807906213270164421402846256819980243403649161857052846660492471805689835453541651316591982368573237210680473128225491373904337751309358119621702003742730918214560511437887445536580441724049211012472340318381047797758799677959036068309887488743974490457292826685617843175768245086158761004053289206014338124797974996206846911985801891559920365319269650082761067475170731412419750367597472676418916743991030123435122468820483767224670256167267662410060496130678198626637976565982771338970916610038339285859451687727117575584581888284899359232720239234971987455248235276034119220506824776266195191061817879047253208114571469279433101832702843343349106249696124551181822371203137667775506206097342899677160009674166644131328175483554182496220960328083329724775026096225149860634189201633071039667691310381516686932982415749951763847048929555551158861797311703184939906421561243156306316983461620353670416535615258943503700466933222100997967728991319827236443133999191483265505152030708418892326610835473366811195350705857756368110055338897731054019397402363143218225380374937196857423880576868168374423510384966006038571817613595292545931710436948014390225554766955671668969764110342913684812605681084284885076637434118608416103854200045555221634411655503024780071754231313647984881129730253569360327145815385661511719784342065564699071582429835483663726197539768847022704564249959495062251766617081460602668946183261217550546227506937875483085050748395196065339167919635243199113710367443814731875587568189946254183779269467400971754500941005240407534986332257592589409637641286371973848486559104614779828323767513037781897501495861850844404497503486552736446443815770995664530251645112435628353346392936994602758893863302900826551181247134109618373372774742674529344009504652453924503423104328399525538771376597011845016726067774904617194315032658133938177646954453552168986768827978461140485755889298906557604865960694092479550630594960477184467381469624599870679501269848705554063595537140279229956093100092456430361137053072782299282206198700879739755630618324360001928578766113538719768287142318708578603028775431777282639789137658860948273055159114717616727781429365838082519624921506935440255912444380515269605633166530953257791079169626513708301327721186170379480213968624756284576670702046222415036450671476777929508876219564923668288713219161213686284314660890202956953366847648693454102120097244843865398617476445295104072123029861493191710841240305600346944378894328821934465661601127364080560068637591817122576116259800145541737454680954829184663530539031948042287740436360017042406528184455792629016020954225373198687700376689617732669693436789372779235355940768334614529127984738129365453746800481385335541752115831034646382693050622727040270542795650620503163057171148294769140900261540430719042666968708611430322578641368092532201568438299229437562482082235580831085855206723622576895124173377940190495357109581211665599501187191580133631979999556708581486519458675743395967686124962983755043302505886066071137968585073691945072858016572390332949201558894928935118769088772042276314017792186830022788543233746045274603405173075890571206886356844513031472495132817714103660771785205458676580540062061324133493295518002795092748889481390632084885255120034767414972896155563133535979890767243333236857177664179845374294116631189341436562096309815518311222467653067598990122775765344836847521353933007015817234828979951697197866132564884065393244866863446690877651585042494720859255993329538231359706381170041382329064988539576705840557405872710241778009560148496741735048490368461477429064047794255646510615159569669700764160232551600763384326115187142603602845664866932182253142020896331438792583467606382258817743917775943237799607738617859323220961075491319692966648905288102726236863410522729823516353179463654580775657019696399720031273588157129797139108339501062339170158455686465697041507917295553315808768505000897789814941226110416844160893151064651619783333352138065857150244442137930941070076824580972762029112872821154372690952918319585686041894449706248331286738304201366583547338632320710916558706078762151090561336107559634697461891187518621185275699965848102714640289496128374984898551768325610429775434100249321124240957240793076679665680709145582498530978711668260379438195266047094699582277945519703938575556290321967991247918908914650100259935709498746406772182773486216580462453784594240407555376506038017556401247572932883340108967677095017908542246245033775445194833743445288890978637274237320874717769582411033667918390713364672524668866879487516134019805261755794005231558026532645145727795124161358279576066660455451317354834000779567962649176116450884911818884970617796068021097188526221883389649754944175002089358250564163669754064295390647271886952258760595518674251567842014713856915144729585451957863987302551047323973368167471381564230444483416221235362372454936485650396857641988165226561381931443742533085389742164583850928105326126975728324480650897912251252627903583575960829870906562631799759692476900763731694419560678350035567315918066366344484942499360906365859119101196074283839601398728251970246043432568693828490311725635332695444290774694304021103299430034140471400713128017391305867355687962414678523516291832902506947020571527858574471206678540087195778199120061357573121579465741537854483280422750903178091627762177905170000294179904498568320841857837902270053495673426960478479427491711957409973052124264984478206740777892403327845953682413278519352110268422431661950835095727399925808431342488670202661351459039575236135799169774604571786892659864072521006519999845134642958699204398357655445635616639848528245389584528289836655038091939408644549063655782501251419597932082375919957010054113838594632324762579348124772558201185410390955089214625507963008684357857035544452083117448058576279069760572320797747710601938558690832277383593339964518356521136597261780517317472015638148505604036426716135583846266021239551726343678482192561366058854827507850867751462375132223399685973546469912756020391463383230117193840530328936634176553496282631460465171960225298386215629019275114307522355971314648880044643241882592494151113965071067582735892871695264681196460984397187287720270033343617870669205608870207292397950496506516869576869772726824422582356547844087011275217856441876189028172076288635071232088963041290214673677159500881926811881081805340023119179106666748455855446041854036829031079515192171296642582170900782971421608780826931201936783644879793735967347678007370273184797045568551789379913192931889071559760440892941566929380539729832070896074317445268846191664308596238712527694570292344055069069685397023168716158415197493469094315081333577872104691936445709618344944132426281337834662269624192343216182198759210121149258561414776328400343138903806087796928877950344662126042739774856703611546568585474421746782597281303002846722596571498555192045198938804076146463868999054375375744738058484395942862572462916649430274174883132928169106463163655150255671601229865236016003826828815714439491774878131507653799471726435370422767955300867596994830870659462981138260099284179558109961924057569911046450609256476703456577809512908193480301733865735300254652642824016926880754679588795310416320833421282734289356656736386641508906083264900447982737732803857673535714881105441970384758140986580033141779798810340589763931204589228921437847093018785168832892078085724991748514765524319459558780623575365043084463670290667428391493687543696033727104351169176912815287001205548593528093682340756682960920360112014821460129807402116535010778595685661472456650347164994239286279215549490516939923015639850296400032392116337827471439179409481224045630853009316380042726102228689119341753052855007185419364396020589361137793054787601382118799626155412442718099500020684104670510478344865934031460991338315105669619537989252399025012109838273953687753482717988560469072278017138320639691065293482497569438881449074608591143023317320557461568764358294600152204468725843757162163914465785003010412182496478306145994083129216023140052005159617830674211887620297437030905307453846680230942010060431169424065713697777148500129260659304631021928661956997708015613350618054268991647715608215214063359409143838647901092346689025639562027853752554129856590335335411106378586865304220295264681957273075338582363208696932589185231900254606453755858813740875168268064149916530184592684386831691211838586358885974844410535151305049806677270077296407302401970840838305020933558074734314311023636221893246491486309016652735676066730887322883229706342198317369046634589895420579879619065526936750678097763380559381230650504303407319131669828970466952550770235675782719723688775773537138261479946640402904018777058360754177897958312110702533041414304716688027263973134107257233551937194252073790554909963448315338402411371939521556462086969872683425305185562945614994006008744716531578950693148257104940077999707003426935331512836872334412613858989163880036302133726748781556307454133166367178810120965664339298477846545998660993636914312959559054415343651451296068620133126147320020221015652306952300967639277945853148214674140358434490329201495963058179951497426824543084485361252633789298309811209493686963157387739228178217703884883040163767688138205968139373107245477205780553977036339607707431658914717188751253121435631947175166641222073174428264255182833729191734066926290350035629394660497527087737088198937756152000162512679268019606665162355146855582894180595859254373249002689571731857836647533660658849253868507790860373062988480610281569615197082597334386032319704347852204478799856282600046650403975555933585646300957610870023516140618446039948283192250670315142599345754630782113239385460025497430479391218962567586504573377418199062279944115007077369619501340870494982649771123131126653276392354635387731013316664119954078962269902195000716203342912431382770258434279090277833160583428613262769979293888039135642484636371163177133023748314487534513179030675929012509705374415937324173138764994815735775454272483364190708725617310818607960935183459356594718081778325002248782256792362074288870622632857012539498179324000159733067385569533298737795708891711014825794563384137063897387479147527022118938865783799073961722387255018042010369868487148112976433527041884070065543603964633999202498070593811225317230609679804671589889203910998257608934949830489833016774526794063877880134847485764840845435511563052415987320084064388994889886899017764719567422630571155834449881578099853422436125431048966867828189745806073778573055104489086499595150374533040577161008392560905972921267471113549074671241557223167389816228381205594900641722324668359192843213474804799957170540569716968523186715428212146898699310227624138199627554881017272058334988405426814060902447651254091889722150167106329637541616623770255292773359449355985260434062676346590807536554918686427946930491753421403156450855058953327486744198421578029281003164239640160735601075332625556891847694964939273116579813167247394190340941045061648302466456542141871111142426370864679176803302477879757261520292067800039626203221716655237155018697048297734377902052535876947533356515017280858561424213975365918965998426273337897755183617365656381671034506040036931914770125184224544476742318139151706502444921324611271347032229033391110742933219554482328639332024055461370260491937387710980829644220004670171592699879781751966074778296259069518464232264161809655782113493115563775348755071340368116008390248350293351908103671788837917466342650838981641070182241008172606426766576975705758131525077077661732196224279644387348662699912058858401191853577960823284584144655209946235850069226170105447403154476552686228734629186632601819645503131668819528904140538530583152422181152318823605289119895732207633472300709887539037673457298016548524042964577499178276903512395147129125593640859289429050127355578545429560729352940754212669851063283757066869325423332815751847764153879596010709095159324819983289162805289570257330895263356598748021988939873631948025797285039581489460645447258308035305734697078852107022918378052269090364042172001174127101444434308110704887791959841377283520543115060335733961712237543786875127890806753962441662528336396265667027552415233075383104312740405363157115472384338372767241455444930143225206498215748249314967040344755753541645225599379365689718327865941482185984612037953154627663640713226362116818390377033994442539891556310765294223304759863917129499814380931568004464730637845911614086233877206890307748371275985582657274749249917760992524685944126111599411545232715042118449876602349438945175687267902139550624770439579156547902100612622582303782933520182704143897916382638318671501611436252418700400367065412848161159646973465128658288276162437610231471427009555281652466586994435769633580420687753559175611943504978380172513571780391174993547095050926654880212688638803263888205928469824668138205102011014297652249026444921913836283249905014476016503679980166563525093650603793849468664946846305897657767106622916187805675594605595646868608183426116731699195033527410774047603623778249965590431209656965404413832352630937279828893357115129729575463566371912581730887613900965973566869978890310289632515809061614157579301516764310578320200638452645282882067212588050105076007369719975751861809100445810395706884419663731964420241607047597887278486997331636433829204691409177518951869130290475033324080917183625265312397912983052080513284645785632434676995209248211230564767371166885911297667395205043551610619081352491706194246705531147937105064205789862459022824329015118341316046012250770651575352015209787555643914524177994009891309019688947764965882615400455117423487913745290222882240085725936409657853057060648592152312718200052095156609094224884767006228006828211939274684622957031331199988676873809386234821443843519649357873596484232084658592894332858081038130164388511083710720215299526589373799320526898201057570985096989467451570462015545089601033500524205823034678185253137218439947782884077720624099411055439420448457799528017433701295058387737006536722356141144669288784940612177712496914261328917946515368814872108586370566907475401695345849463747976910362523628338021938689440661500397746600104182803913904392018159804361524665130266852402362470690335855406837352516321887853358642821237983242970473335973341210835018064619176919471049941318002232096140324984489926853260090790032015928062063104431063697018438206262406883251031476509969570036007246988069527548912173819097178344295707109985163331953986380007789040897691503940637494198558089808660595271102770608234291247246920089693125944178228437344999597232821092029945532931307177226075659186290979571602345965286146183372514270746293580256968872904845279438275189418419597822496029766305285366950410931182153959374997323012203399515852508353915900401035863020339695843609641506455365071277662182021618786255365830829177787143423384220993544644025206741181219061033755521512271359264006407138076986185550162944248895883201324906537878582136725683699424644349788978692030232445746953291057041510080898449808345336439813980086689009577092416337786624237716464279004950915658487394039831980981716139551554420829157330489872325257355253781024221038917169931555301561206055742987792011389707386314312550826095065497366602615255421283273618838453524124992836757927336332622048988597020159858618140265139195781091751705522736465192005016924365531835146219959682058669835575728244584199885256133956098883792313350606390120038292584227355149672541234767929525713687200959590024171577473351189052643029211742103387356319614689289985718161223711421562376526897228240521969962073168933736355619746990354749260801295030500171510409117765150874458996348165667696991858781324944017781259742750248175712323031797906731305218808735246030558443663906109738381827829440399791971455572749134952676346484760874984337749175898984879971762598716051925320762379370337115183725871656872914435068794033296010168049053669558742734544252721409489524611768050965933544436552905216987578726893895127353008606369055323133257015610671187541992662208205454772850046314862129548671831214453927378841505094277890703735829074913849499059563719549013526542975943321820958163511840646514888700552328953530832409248813961416453541245672500339232874159735966764959971093062104041519867428111461773949372104674394129278361859086737834557428647878321717873839744351340511324908956868392199459835187474944939880472115753688329489302071022969024625085881125896720549503391842136448075443767192516042942631734085603808313533030655545213395654492516384265619353229679045370489350839630098649364963855785720903721962084840419509501916965611059910889445102200282559433073623237966083208771422494018938058210670384598489759994345916338027162629275732657759795377556938488827271258740373901767891738910468951959417438863501758283443961941355810466485409043196591464587013055850569488575558305263262372628113325254712446768249419959629409434669661068292434599339687608608964648959436404678041392553910054324144860232369690958324882142991943194408566317526204919183636538506241083133445137299199020943895253478437076514792197289947241120376153724390612767158577323756343022412973325712596281981938026488144240669838567552286813130481288865895253286772624028208082721723386720090922975284371537552420118555472418453304944563414198506405680675257692926213152320006263575645173674655602346944826164076562948698874439879925980601453082229152937754286257500006621306995835752123962239711224073321171146405557653633032020368404037400961202429700799046742837824531200548427074425790848773029422749055523007657571241559710939400153903987576740622797527117764979088277991222737414530970145350227202593346024298662933871442757543940943028925214531776200912162183168226686035478597382404702378216794956759105593367415112840375327884218604406869854053050402768793245829820116597507802447056424007948357736543207625816875554718063585207428355129144556887025286538957817318685931615225235522853823951894198010962892385919149843917228405539234170208341603303455045384288576928057979744398060687937009240755304503547381259854352428194071892727962211931723138430235695735014420595883124609426524353845232672116856892948321371601645327612158250193233528910755384106039671336378663538433875129124332823974768782198421287146068933456811108736072056819016664158833239029492340736651801715830377364197124747663761911553748933958231346293900749492547629208956922674734559361642819754609930901242128571046500475877828410699043999563744596111205439419439466652406794081913163245762872415796021629819473425858628011876149152860062551851923232923429824766165658275478308017685589453179577248790833700505544747857857896728063154666729247572782491252529064312644027583671062777158222870183706199043980020773253804459775865198919364479112855965194836579248346913870436853473250140627460857304647366045234876617833970622824065877850939361034649597704363044171746945823844506833561486584206842225844190317861819143893176005925915797982416478615208611728853805991704490887645038162959426490758463564872658260933255961937796021706129179401681743358026650513924051076428781705408116079880774121857623662591073845911069615491573016367282438511497245698150259101953813641572690029045736284716096386015359962744958306118697945114530865346456619379414366077143272332065046267424320786120922848493664886526481062988728100657720534624030666432391988341733166905287334316233524671261886219409258752236243210980463501942562103157292148053305277028048539996270167564130834414372931509991992710158180779463821721659277836805869843619478514979178977200450493951255316701572610031270054286151181265832677769799561811321874581072090251388519462570709322169451957344057806430385378785464198572491036506679492246441125273607059597416638036921077563718211454568084454917137666463644941880148184836963707137236527892704791861240600382931348372091738218236389418696088301154789532673142789018060792873463286330129784646884129362074777855487386610814233207562792285036558799556907074608960578792076654412113997279641755066577801160970495522992506906361705929654602047890243536654379142200133617223551043136759597387614701485345487489244511939556000259880543115351877559299743390634685554446309342314230414403486694107530226433580199907706447872705991483053221620012623676409899450197303393767222302137076259190676633862617180659439826360868280479823201913849823559379769472021312140152344305195545863654613084837336578122404878629958961840830804274919752494813659324833115153376460875745617682098004649484479035025772446230812273593642698923803161544586528997071041850576016917490682235353427714961642405154458210000226117728209192119903900101335268850715229942992027768383476245609081337309449041286435845497064033075473124923632881692210493049524196307725433539724204109396904115010666120819703629308957853670005827739584232160118550761698235511427634408508611601855322069660729650747725779757389234510373401472939257574678214122141278476448998396989144517135280726423778720816277032177126155231679551968277637136781939340958045116569159753197317015570884448016833929020541583312555104095982147424969833062930820115696443764338665124980085094278209990135009303839188524488504762033377516106278132944018549045166672490089057528685237718371769379800179357242000302657605944150478789012407866516695885872834361113153777299703995606869827862261609467772985433548729271367149208543204858005701435963497164323687802380507236089399686441729483171822958220927126645084111108729273288061305522571555445703714586859541856747205631087846752456154038332624960194163916378579317350622639804372975017542045585961089455273097489012914091352638249010064263009441479483466539110420812762635102993529608999985148802726564708129176694839848313405437335065167550721948124232772998037317301302162968336924499209763857709646660166213478442300707082265793511329510840068741276166870662870952813401599868081252330972829642754247999893264171868266936698080293686210375233101904583677110478797495648782446364955115887952722412463576163642467040954318287275795460266363311925062593883712899568122549759873947066974753955415098196899073259740771679813521078617540827162763079977439030784280322581878180368198059479366135095142050017197425142337322188531204971949345981096502119434824245355969514035279923996326987603124297484057623277019861003769853383117825584563857182366370400283147353495111247660702558718018488858768283474075892119515255881961754967518797125805658681997378288885783086970764977335071527336656226791431063427499321335778050630128021825765771919909421384984587795037075505617197069088200139598864720990318424361853239186172367023246634163778781588234596700862179748774386887974471383327965697193436469214015725018662478849970614532456684103659213141119232826590584065340888939247160667529367995343124829460766334682943122041658458369026998047849030963708250875852500277413149683714202551207013029562131450378812915829605162581055536936567745327047781027750230039888244704394357868286869299332942290903121097164953608319320751949074694257556058541819311974283034511345610002927404644922030181021406513978953460599217389640260724706766281529817418558340637344723720746522234334260321258020209884511073124993537812937732197787377298610279673561999945357109382807421481020964522326555411937607501742078131586189354751341973096665412449697643842831195129296192231389532037762555988151357276721959794955416715291670425307302507312135685026739885434119741178497034069698656466327647768836724667484131888617361287108038237929549901436650067357663369361851572224788360957436570817999986089984302978836011170614823540051682950613029346059416926490216496689407159605846635501454044455476445816331157464923785281250867178803022572027945140991782358434969154381822108177651149675965779445938668791715575360671159144598635941198786400622968943661953360452427567778144580574734406552208156484518901873860597072807760248582395786254984799885152801444304585461143006725580898736817378235792626462383126244283996365013633347544223187097148622958882394286287218948689882525590534503782461995949090169134595016411595891695189887988853999361771772397002214861847659763497314238768353354410935315364875612139607180166555952649186670633904162710741272473253923890409416941697342762651451842314316475236246256444522066474749843676376958032737337279496029097001607910945552919153727782684630033807680401221158529658487999592736434428250590992178563283884458045879421921664874198218669076620170395834650610819325359743751684900672465388219455221436672627156038468979585498225701673921285208446360508308333233295113912708309962744812881715211364027777705834532708021536602628749127442617375848204794079596065323381633123023739047207735471691333221876066021549309034588114276905062404081216612771537887078009464972955482060406453635383141065875950262139702996861760830813601686871009011243249617004122109078709894405808593166578109823239395593019600839913093786513151762110802284173040387648700482200231836937435248040851167896643108152282775307355821495921844057272875445316960913545542940179027408418600128221719990565512549778908547148372245849702257211951682494793732206677441915908164185009323493993517440971428586339082856825276703665869206866290812954352140071539088948867355158276099714298861268847330382009587883885578346907078017311169909284402408646079821741619663101330446284458849825930480292091882276586096464687395203878277498253008671834167959169731933579951612863637190154678750877795758691697316012806066557769437953093204867497027413195262355585280991804117708268547107724629685179330272526684500506896620986857138799117078467484497552946048284526066789694434235367366959982832375789519651991951758815095739794157796802776973180733342608789281407631248865045664234564069974618337206246600142536953362039066273562791916227385060755210010794492041597528223826939348232517201828584244391705032008007944447103218534250571368545742689061608903808126595536212618345851864856472503771448405472223194226315233202181719922528931368358723752918889912029506061404268313721004747886648081332659143229938884369591980887896678271919657894608131649819640017123378308979410441427550110439961027604683720780261909690062346512175420233931705160042012123980333755630384784772171340202579027549305421093348642319807637424294689527553889686681840839037152549575587406187782271638462644276832123930152174185041697801734174879563018161528343780990531825378269526132683088444951452286141141648084388696811970724433901617301130574206019905662847316088168309685063938943681049031973222170280399490986896611074484265395440216020839422218775891439955802966061718456508898528909777531518626316817951029851917120601967184579847354890093714251086151575179281345245934574615891056124463966845244479949467964286913808409854981958264800856162871247695034013869357558430761756872943699078335515694535627933310648337159072108872404683283494962909568540241002022390417318347704393526457367083950695393618642095731470394906867014297569061272062844141205410098450146726442877180661246315816460042136799100639924791293962885054576142568413408235068039024378496516849981106338822474177267105384031095929177560253556501563001309347872227578540679496745878962617682761393278834912675605238695369929662690171339079379770406830099543860314015794212657186478625735529314810819915640279515161551198962549539047155103535981502401453189116189196969019287730712721924010631922092057427565023614569345405506425967663813975269002052314039436319155569167148258089797377319290040607246631448869992164703538106647800201350367640832898232298074036691294077607020262843760948332888780117464827902002176115503255614170948769317708394497839854550647957447994726359513511125509104251309302016524854408263262743427408442056094219308097829843178799954064070527531265666790541916586233363692162749470436377220044479767043265890569309952430270326501365939757003178590750560475908860093563233993626190245390214704205996982373605578136011791244949091028008428829577160705813420187549185298354510390063156843560438999723014544920917641490495180139464647652998565001803811234669364438639218201698360136579075189810418415251065053510245246747359827089094124914954826541912108965947265641706499166992623327109662035151522022801974142629875006888490721760865105849314421463354446694188034898403185791883629227845911007217606221596482560431711178332418195918420582584040864576552859829247841708232713561087575583436704518294597514321514481385331854278541338350793085490835232714899120444412833303362959859291637820011701912674807206413403879180216203979670167043949123114472829911195097176684051946554086836516864448284573536094674333834474473680556197926845819436449748884175078158848175409333944953884974958772909740041173738198013282340273557707458881422525534102500085052547239784466254249001656263143206126250524102007118534832271413962751092796877425464420488734070453339300006019243393058958680457254981642710057779115062815957134855670508200694583459052537573578960052995750022008418335179018985029463545151858749814991371007741214834481936037986186555887739109526289540476688087217245767172706169915913242871774833620224222271754917897227975841370429325788144044076159080549296174809418710677155891382798857210034036121942659009986152609548715665892714005661712053222744810483647527474873661144553489679470687592884084360397743494239045790614650164967199072654075463249371935177526001411968377593196294688589640079388730915145283992291983832656661594869459944601055132170605184850542278967534077411909823043531497590884501201484929270293379550972204845165984394910860703895530318804170779588004651961724003937061209429285867137725324912951034950928214461398833860502749181241899112841097635595945250092412443143959086629161272377746236659741238271126585583962464463604833858317451491217697417253375189424683281311889782912830817102403491591292655447973639036426273014841340014288992196000462426402868779334071413734537244169902674934862479050045126783944391337447515036131255518685409921282415128649507365158085087640249012012477162300798406758250589369342601167479799939980396514938167872380954272382068218300304078972682562310851607970882349746322557928307379970392339273984708065715380500982730246088603830428701197033209167980876728304534249382312457183502531649317119607208724467776789739906301468256045047845546345967300579978640813355862447938356691835838288102740654582030541937343754185578167637092006911415697045515787892082504713741521581344630861649351633544298347666008267221938918440939840001663727246219475626643521862117096829780954000312413054771521532213989015316082825447533396800841230484579415669603235556422187913028398587008096994555492357465349163620532676426379869475886844403027377217854551516591192783248345818516564280638326503491790838592232399962560376984714525063869784306140142033624090881578493836365055051720166116042850441717202455341857138608608905893615772677725194358845303140778801043584782527903972262579396074613049119153417563936677658568680469599020183106260292780841126403401773552126644953162307456795947621442542359812906266009716899319491378996209962248367728630452974415418603017582926126857896831285207754650267954742261715439979443019801209854113760007131126841916872397810072448373409970886527462292679700563375248996639706074475698829118700062183882154509583456249328993029273647787073127598724309883608194562364806267918975074635717912013623207075973961804691458289655340680352700641638826669508584607806332816381033581521384727491186995579587434843156390457131460613782459497268317115251615946891034568959682959859215362363944971890523589953087558626147546310673899719862723504204907100848510188469711611356230205623708620383111337759680203829612680038856093697753960209972111942857836400875638201351589271688817020395835426273635884282629241101506814155612199257640447439612398206963199297573034382513863274438621301050241949519395068301104027091490927920896218627379090889736815794673378499430497368735475562421083956077285257201051535318078688841696867671914398589621966117046972444090203649134749101323217527091053208373239870451872244648881061928496825349356898782902454691880839089240006982463611887992459213009079613865964631055811685056239273152448328442052594950820783561234197777715019204141323345191099655227133086060360430225396460044688605015298621216782523062286175663201709990562926954742921881032364098609464481428186116966708595995557355903544830535132385832211460693795212640107756511843251030042953586651494540612014995153023011691329252801323727406681000404170758880893112254728031942119689981703864323150131646862048497578440394145681597245499107046523543084780515263498635723537296334433413341032590096464416893807169700613301947792147986900950675361792768678266543028520534956208971935489588733067975943228131511534986329399409567325060767630215327879481838185454724347572660461899012082048243217239281224132659043640406534034226013736363412147712198286382637747668472234299805173155461953441546568387322121799296696373686391828620117282152087460766873245602712296802950020628619316037654478144625612779748183508475460193213858805215230711796009977859784602434137056503887688937767126906199530566851059926922539470586304661678008887412975227875544548184512514299471997911349925178437986046137097516712744176987314142945990336711141267258713553073626417752827972848571137811692325699307977865988950571506947351407852308517681883242097612319849840108525088145960314176449786751871204340611952973346303103340671216290600442571732771623389149293900397079782166328788380806629906451739129440004650928149799227991283981332814535759186783046675908549924858051942340848928590694853174889940076211563567759177668714786388047097708886092908902227503903201305528433477516310321252769253129792703116278129599995447171171324840207414943050929884876690686944993586601701441172784319071094553462854076375174268301840706974520322949904926256966128210817245213305360580872997003110681834153458503156977918751087609423830170784503419286533275014279340573670794395060039305367452719652398590368175666487758338349086364020743055148414835108101440796163995328583082493532757093301612425750926960291759435533153578835616460924806949730382606848435843315856912544179770649287543731481357833947300919786236919825978271253364326727304471541496974243573684770633860267918955768052861357702315664179594746137193600575863127122905853194503335344786605190752647022249769083772420924077821263151651778955647817757017750727100332064273947715630285967462855822492955325063928172642851058348454075817585768305292983374919904656888001038157365067700111398049812454676289965118642348548819426703333910626653075224904896146241626243441493703651939962178647819120246277073276674041500907794925272658647127609497251622235689644949186686734319572530002023814334077245041678224096177682375953189134581566016862290815107744991499163506621337252910137195453318711688236119712270785298233528948457148615888278636483541390885705016805824790742217279328411617402631420458969168555981949858060346379438297194334554047620586241611859951969793389701045781134805814976250219737699146436030144563248690133158689988025983687649252511960235079920197674824803686912234167765913874312739333134023723621013280588942118548289360473017973458337510257405807231168947862342583817822762534132687463615447483411221373548789342534409604396315406470896588608109852408936263819531640528031659627550083160920083968869469396276929061643598949920119962767539230745146272884005782146497238652475915888967338017191407852192927231072820111367322120649850897099407725127476363061185241154110552580227259033707997563737296755032917028969761944099230250765828003206170356228564593964111756753470580057473715215547374231098085240090462648291923099900094439795174523724921470070860629835037856635170265092015829378403611011280899799288763714499748409287900023705780716012568362303394907761203972504391751414453660714424082857906211574487558874222553536296901319525677299118343820888594142791138004691509825203350113714646734602983089679536679561731262338163996951149929911856306464414010955943443240054434418048374639688837327840241451248033217961501293441304301501010906150980187908640933961325259884867046821635388035420198285387927487660432221694643918710888229824830171884704419438832740309995742311254931765252422382484903874317444598726509110340905757265228054266701142091885521867084655003961048087463863903360193075621737730233882286106101358187157298638393751782907700206644615571254369799927927597062584440948238483287103255832970986451959530355348426276270698834045849519940009627437697233905093013289911180784758973743245601551974728568503211269757990240075884775106659574813676034244519114752250745259549341713024489908390852320318792119496194887611121447456666218474667050392961471364572265551124988414695285401303095272050942466905899399737553503764723917872846319795730212404959609115980365387991565919241891319017130746603692253415098359748424456398637701517598122351740961627119520351237785152043524482262010726616552648307389890205804523618740100698495801429322075081464510648723115975482307712225010990272252456887952051794775729045089133284858863028241658582705697798243009643092617395429158791460733423396827626527086882289291642603207580747581170079297527551376684716950989921447980349372368525474351419777814818556480845885247572798235963836601384726860315985172002206839401046241994054652201874299445046267530393737959928805765742483633205574601436250119456138085225573557272212605443873311160924755935922640719329818107464204378509662714831735806965376100966119116681810216484608942052825212550623262455207102623723258035667209001333583556579355127208291142301521550559363115844365932085870236365346813172982022893030347742075775786314767302399805803861133665236410024078756043094657489439647203116308675173494247712057027025420184348586059112035441479402137438436702919256965973305557579482253536970542440681068287950371806689627801093882567653728423997298439379950290323515778124598388382904911688501699363723390211466779947817941876204184067571394328614239498346647189015983421954708995418529395162705543145171970803645481395248056002508167402448547705545084152870288363662131601699588650096190984135024228158110477292434913016561280440800022690071003824787422598482310008774940906464922531011562312404366441453079573611318826367137511989276669650469373346609056245710793639719444045143356630498144448905148204015511191381079952132760974114599804778074064912757247878487693244420796737214221060035662861537318147611591377890407645454465018979006208181578763806316420032308320888391784365458018733759041990342806104149977083926307282363431239489400201452926606665123361984249408717396447958296346716569499103282600503801557546451719870295854856268922133149958877719323711392558153849779034058998510738259447414913511337313142778870329316379680256901716014999828400343609654415023073045581446849734403977790571259936634702538505823983987627698970272882803655786895916694980851057966435443038575251572461295336482198280241814253289972961303422473532863701459595177653730785444812620932511183745686328873680060848848848945975499609482152925038826130172798693231458133636167400883042797280089076327617066622272321234882275238697023464047276820051002077281183460956926263715039491117534577531140968062152095081641482279768062961826684996031689958536421199917408803752490963139230279916533403996948370989367607955856897273504200383432113764184454898176570530105845278587978470962068624724627037617897098423167277861245816906157357590468930148924888027114924756528392786897579851890838022984695407908046784024726649330951507503049349656820351570242024024564940524311796407070255598953381581906245900541923504559615536081752593676236512341431161999682611331588005572846468182745740217715756347460878009427565804842565624327502882799826915233551716940305932041141809116950954929462985415675650011284326811499720077249475107552518476957678419900338425932907488336095741098034289970369123965017517844740341390644240099628507072911775564181669170903691840190377698171112597075821214969911362383344055860773201838616925030935002108681028957136805585692772567782861899559139752825376131254911851642645225243132097538563034588822129375342789531422606347102419141594839688787887358019486488485213820740663591708705573318517168161251735447068162299904956374005674387336151783331714613172545590995178055270703799397996297094648873760219825858068263540279883284566620047657134742443362574503647949647980463127217502955554923136315527861555191566049702355814554276621422703925046009631269182508362855092773891223759764946810398440054811306168444251563629625967057089795677411879314359940369419302777025903083671126406187326426253087338679869161491880615151215368240511261180879424070340077343708439082455742354826819724130374712501539818763901521260245520091527077284625176412871353039147083336301466860514524830721580865651617721715309229164819715121353197626433559563526753657032082337184838872285471221301030033713753378281890216121352123579608793075176355869202893801162962456864835498330249455928333351198989018950696096762267919874629952158922572597356724643456001432858033747677915059404645221440543296686246967047133084168770539006921982741303896564438751649444748467157456882839269880602386319398041023622047836977715191132150241978751707994086857379735417743920578522770152396319491050751888505376690403421692073071680702984516694173453776677701173420534852463473545454388112646531311986562829195462635696684906757052440022816732103493091192726381025112825760593212758441131863260983505717398878018496287801149801878211197878942453901193431987503095734358916168470226923876654874866596908172972527447924579648098579333450324496574555263339611035453947735706563065245596735359535299612930784754061550831808417547156913827714687513511711897116977020008905569346933188343151370181363900147677152636218456881919308418382047769025651382235844476067818486499391882200195560785194174375618151708603865623819031949373529870933595721224832250473971978972444985803904331674642045721165622656676836948887255941900396617210939974067158507297474369477226655638983059620512748055540171746771828319866400766418192020841732889310333025384820475855988154804452234652676056234821783862423456449470340389094588752441255048764945522734490388984181567798031989061612252635569573317833116990159409623465948630026090405735800130930168626173956107749162107486904551763452788391445699539752893066164546975547860623548869160721836012185988719854723850648264180436305874832151771210917273836792576180840096494722373861036823777627274795092751729470417375173234306513275764568336858047907725312202553185675901275562357369820835820579396352437158117935700863434364731196395414882824226617226917628622783211480900686944119233070840719146623845733462154775632916599598872877645046245605236360860765869419347683325608182649509536558414752120224321504707346732555530046698438923347575127854180742888144102791024726803825227469917456387110211965779645907013007333123291400266410407069282165904426045261976042634917170386896448210543360209681345701764189274823197541601075524180669380192932584402210264718291881517438740718010739860208280189940010221563237383929794928346906503447465213063164283748709851325732370653449827662657645797034040795999498470479007407419704986780523259967304278484057798218644631506434802732890776490796152447832127554403309326698266329770792982505522266436477600329277920855182288165040074161190714742694127308364183963804350861692013361573237830741603256007080254865765924148822067847457264917544723065195076431860870383488177999759757853903393274681182344595525541464693426886438511914987776582333813683649966442059324439859819662268765307777403530187793357757035799253937769905085756797526408774252897227145712585014846112009925252566986161611554075784895342816980692653113843244918096148441710313902730053889811002257364846142527200966163636928164191525090995272170472105741782732490929157011041325741724738344928568130454729054225704272835736419276035697579036200193456269491823796428597988127604824695066695912943096773817129699719880996059171330291320580922464168560507591846055639073576051920220733493542614720488551542458688756861052798572474177120820695807905040522195346172008372298154087825343875831776917452774291987973621633355589916786527925433627427669873833472197587512556437182450868957178873302124680818701082382204051938757203677854494491988637042117181919459442532730318008769476117409548798764225514776344549384519336757284949571259055175705783936348423772947816275859762875826484564987525408989551246155203513847621433545149517214787784464935778986338762968359734088929742086525894861095476764650715038091539424001110174905858699578017655302318397415633338891888771972602785117894011273749657033472100331987395362069127011385927335289988470126299454489502698046824313905779308323378555062976805674464757474692148623656060091820965549132683738428820055262995465333898939566883942151540557505582422181979535305302227933691010306082600430351721766018048184912739999019251264351546862672629491641939033211522272093887672303098034406281020954239228574602065433483580883451087732019711428653541426641223045219922190259124147121928685313772408841273950913320378978333890884402036516727466621473177396622153887069397836781841357807502516200405929768460892450563748308289576087104138883846370479727296682889935877623553257652700920490459885684961935673397891778393384490724244615315199461054371682005769952935716338356570304408363511832163123909466778677136658857125102679574348564023762854484464355057788897054167523109103287024233985755925754231945373045140370576436921906597989020010266298119285266115239560377325367360480830211448483715749073881036411485213724823969834595048660376873596823559234828387963297869854664734988131082003903280742153022518526568629084754611887564310854217901764478394477305144297607082811680120282697721446839457287258000132249696639942098279045022621115565660326474199230649502606608221288762059497908592389776088427941712779162001660508324602838753476209101721592571399825253023534825646418712396289353322335321769343638283376408666302905225992509876023068849039764890967216520033097678943823803828276554257559954260482015937067361214046578830409984697764601320605399624170152203146285614376936658072034877108297971096925874807705760457749340988063253548966387739725841363499254691229950614885245673250474111210580839723550139529430355078863338914080464104865436443897114613991483040670294741934578249830537615789644601545456535882358668053825144484353481079280208399230471796230636429695106878627405420092933180621433074744971683520919817014492529188262565666147831047744312980390959735670605208515690226556504677154893401326673291134841746574486388018806040514341986950156318606110224993806815209673994306396745172755139587425070405173956066929908423289163756549234653915962096268139699185269291994536405050256943151243426696576677078457071037900650389824390622165104838719461027962115967774213926787134517350308171270163744905299170235381602851358703677837484752439474677385447422106944228653625698557539291562281617153288906640222272567936101008440753326804660598596269096710189787071277024686857201313298905633251552085550712059410833744377614037132628417771737500148872200148067234047542441861333928859064054349595809807838764458924150715863193685520689947897767520173162349507131020296754209462862656727555453277880420834524293695019737227073225420570677778792163465813565048883833963132461665637671259126977716613731746281603280556314660720455595758989910883618275768807814452099417300900879553747762547301984061755506432588347403434625305412144370669164497200758646730030240623652723689481275087480702554898785211669669319817231514638425719015549879356362168999112025569200506400139125861056113631954973879878735472013864054806494509232838871902277715785923335160300649013719831597850302076286592398565862736448607502450313202524650073858807685800573311367076960966619941050487092402480187294789489671536555101111707313922118458391101449186679390522240491990030045728481463946079485458753186201794085742696697714104013841137100631424196122667405313609857191200273528506222178965989197405603282189379733231185202354592169482215075020851025056992771509098236985595001654585040359723191197392873045640647209254646795812481897771731651242340734504945044312075165630321822710086617549765985120357675923959202617966818959416954999783199723736186402886697002522609649079732533195575414894089239324455204396686493766480284257875532369715812781775121683463893112554194531759370616312662217237376411938457899985111930799219927838648090525903128505657980632020893028541318393264286248517997109549210395742023171168514082512887190262649831857602516375913766646034174022455164967619743061124780178191348496156418484471518615633012599743416665905640618396108682533522564714608628951978497009949697314859384485392221220530144100434582828361136389542534979792037195147738560763401813313719121753369902018307490934131243629790159942856273423363916423067574284057912792289646313819876227089585502112517243371717549776382708802987857777747632917426979862456847187534422963428641815028292823631900027730427578309174854576384029105479617636363089326917338582862981336272943169863938056717697779490163898466909226601805828891395243780230294792091800350637346974640891480467987576419679162617006935886093305414587142253723600129761943208044813335744784476454500140414227421637331643087877836475912385878615978044397187103893341029929299776899663475437176533900158485271934278935601807316451360367137209318682931961938885782131195558793497201223324421894692547924791271782292733229776455778440615467098833719344827841465687428047128697769299576128106955717868517251015183010190856920804459594157682538765593466332898687597797001144261148310199267117739954606567970316897165021352395333116020637058600023069095166284627152217664646073839067203582915669323434081880970803989702338029160147954522224924988973222740609560654499436510013533388848667317566284798116864341465338062911856612987079798394943554624703413588042254684961654605822243308043412395863234355158821221354473002234235057594085558491723240030745714356961252649457344534582735348989010787473315561709000378856615818341621817120128294075102226504734779461795276870265420342750553695779385465112614141748232673690039158291090471833047896039074374318702994330340234922997085710429788398167153219196258022938182076111161703010579691126176997928488412413116363343186765100830540743778184257046930339514712267883396180677889230995116276825563281224931613886916308310119671659747122484075031202639713179056805665657447900775520315266459878522213250096994382818187711249001350635588613756947847526786555493313158905289271372803215980796121351739679460979977715657901734040173925306436110329686808039157104217843427300985969313401966852964055922050404603446890080367119282147449173181279640925718188501354338067412347299359394823443432767220983181027361250078413155785838602952500349479506074483586359403726291959111589583944860777885252673454492527021646304880499313980072100314649718194950756349367355850731705049153848257255587796885048232565545332843547033490480803545756172141348077394326108744616082019431609429206948717430126667579313360577350450461994726625317365899311748994775448482954898370525567038819088993704896181449391774113012658210289440268567232729234133193926798687549007444216216391736233800088689028529306195161063554975259296193744636172672828760686168463967184040380463391095901749673097875497207328053872045057080963402252555709448788528345208781373006451176896011150014449213278810723179903868320610462037203345898724476794009230704873740465206503629010836798672566934866137825880330950428142938335172625830427826223983322193103662599177568424736698548047022881105546507460489047219978062533243170080401553694774833435849868549373337416876357111731881217517443293092731427540570316997180003480672015937519044741745391051953261734142229667990542193243896064319268597769036759000983991396508935494924047151610041556242269375696079543657244862205067057003993068022078575146202841735230551849789767049261729771429503520016581815086402510470157528187644532375527741357450767718350592344334204288983360103670661646536192057510776949480896469089466296110737566591698587375382236308273085559706938993998244049095577994767812787428672348929640515594812330056469903074626010854060330911658914924664100173076496512628017452079433400334193333520902910074195670950411061002653302444048906971852864513765231959298166002327244725264831324456817021945627247646768485794122083703913311540514753920718901849677994179297887350301081365178982452706095119475467583666259260010710520342251987269495939978531319122464710461345332960351076123702198054278265459597030592533996534643739638977404591151627251432628590533773933220365487369073333946341751732162418693242611196552962109655485638701580526465382281324643140744705604108447481082631907651656693295030717691622662025591547308472880760263758057892550603138571395301748868908313125807581709207627134644277741059379659267783629446150522551205440949740584769922236014429586481659371089388409890712829768911880559104880144928728529419973798528704743562178356474936023233777524234866035859419625354793199374665426067520426983822432211242612869022486656939883656690205726958074051566752729512520078123607146154147122984993263828431708503719975048752848731708572653317808370548572177371685751073413104287860344064339781383592454794061799772091137228420856580103611719669488171506873332138066722170834601454760572666910655786388161208950849524212192552937368307568373288689495971815317305747739166408560248476735503058075501344532672741875266631569402673048482843426167807977377306170248681328746059803331862913547902637247499649307860082607447416046454420032802535987867289055947553491040444698157184395254669454538299095923612209467102855062664566154612952640631940089493166742660267939594869905212367045553066194526734984454393617030100700655918670696318449011201240090465944836402303064333318815476642302458362266511825817086353113323075451644982540008841868733362541966578651525040128448599481983558027844860146728183559860838888152675054169574756229121381469446954496894635239691741179636527322080933517113152541583246636451857761678237966194364099237652514513598795043462142579881210155226335982433596475953712118981086619019793389923382337120523829800959818821164805465877186942533737580795667540075218366382633561159141012355736481185682425776947155300407103155215328280054734034838870205919529039226987937371073287475401152326475810977313005753123721146019432479913432106502933711979994105128851605808970432626161783228982090846649341512764384174884061080324932592240460794040588869668038789555468889693638895803112421530771350033082617124957552634124188057992572634521729504329140572790458924837851236600860150105597807269861194103288631499537394188661417267111429803345774189563153640099495084220261964384561240382459445612401977694645084799323581427099545146864590450511068775961182752252501403195536415047626448701788460707486905269640720553670767100478291883895173011151547774753912585794211718341885577866381975243521922135283176678328129481213719779753060414599699275460042255468091912789383682989301950094232611431468640827056409344845441141073410637085442538186740422238308468402839018626360452968713554648399379244873906306625714662381721959580098580130540782304102450196362161296142401749652950617792989101194285739594057155628764104328651223188199519164508547992272861158689513377806226132186682558104275507696666312197591645808201857566607227782149398469356826259921775224711365900813823225569363270395945419727572547080242387861431457011682831702987300506158389207287322824327689111945311662963688531783390503031254897034484441680920212125868934552528867943332620047672027353119732190288541012730669865551262833859215947014400278428879559037631731812877721467877702438211416421414859647652774509829925322861554901559191745741747867199069716295652537418823755681497943656028353292849126735077200040931525260687051904418757761545189085086699380153406201712284158548434052043357404198763947144084661025901373970533488508910249701695786206136979188726693056896931267838573679530281320612163170609493792518646068557291170198902734201571195708409542650364475753578559375435596392454696392300949435821876795846035670638894712217105595819806184853946005052243577728025551740458701245520367460865142343211838812836290485759835709089849649629374425195208491474693498662592762044381558016426375706139577419574614379097702855688295380707745645834791473879857038908359199923140459809669651597758954382506826381878007937196954084576348087638692143428714517738749188234768863549793155968482430061633690066643763602094389445756840251185024502094287262043220280384042214616143107164484267453074230391223837705509438210803043716103416107635191516908981437442111236907740002336363333782578827949736065384280431381478367350899946386566118120086378748359322373772716940447308876837342646766791332616109927597764965717509519146776012239210802684622888161880658011479097134343166265066621049456955549395808947023767516398913383867679811323358181754567188908859860356302048231753533350596749249272602392639063551024386339716303628907888579640686284721198294459052289844941477194458574375355577031185431036667381723490432630740126984783471802542202362174802242466306387459849938559627169160814965078712571111519887347068625900314279629925801419610451825286992395586259626063971637527914537729234217758521725278106994505792072442098811047110638906730820793249764139467367299171945897783384224780763508483860074287889855522977230736878139230485783349005810498329655058187785545891237915002065218354172350239065700923731004888030439142996405063164775279172017798869615905314530776607242293756291778197027628981493397739570679042605589671345964440038868705883672902045279784265282795187311555323920773345404001429283968230527144078692177631164461149104020094196110380344820339567162571825533631969217813440855230330858749820116864132824309483417879275779913392429132656554266489298940015619997111324749956097927810174003518149592413680515884567349958742302236243799657537204154429131230627210961906997192176752904690638994616767611057522249837147798106831534073541642529724798229982967569778239713458909396319176135122164167433626945040212502352412924774572286638072222310502227218239877724999456475323118961602829624303219746731103097287077321781595204362870315445171440496917061424589626108514695894111615844701577441495780146111190529795427772719512704707506547451802769885402943087694774195765798097017458735300934420684252698575728052988255154148537177195594974710962030836734872743365964379638509725906564310750137581101460162096094473218443008668614869189626220011502162832453597076202277438184554897067143874654020581015784390811840074474421971862487817567822274879688672315386676353363507867199338957230690738667570186169514293930465887699155337411359818387441358045685639461787128086814458962300535982131465660578314451014923214197268371814690601725958471782838300802531514745164796097885307822594915045401086435051671648706018869986634955175350541188531468204718494916780095313499553472254572443087311928154592881343341665815665033782643691892153822725379391912312986451313692100751533110070098347344414614335124094523635276613738188336253167979579947904051486127302516264004731924376658576308471335538067772593793973621039849227271059381592659246736870008946473890112575841949275467180114509153561984303027623734078629686763881085533428832299451093489473087747436226286797350467328791793847459797032171385428522148689832665280285273949770345809318049168821142709299190627963952512970932482082193751695424090954799158705961229053105655456762201877473071375146110013848631972800279087213685393804494080185481938124622436378169740228114101653653320617376986217728642476510907469510420190345671622348179865773726791929282286835736336969093257924599136735637477050255837228279500546887811691458506837119072886650685377177113761535732501133147777811812152999278170827197229087798664720165600620408800314510118088894898319078759691202087563866773528729254007062191680456789552631236894478672975853084818639847235484623353341741649696090426687206066747579402359966762708110526699241979183631794942011471614355358565095196651960089291721360273644041689775206486725427664504911978957703386089346057742876543681188347853774453929500107318117907066602052386537317132676576441266322230430374354635826369479556539120699405690933074046987490970011206268455428443508169540328770645022193960834711212578817003451590045798128915760976292718122569712922858309113830820162621634448986876232119624484933185140310485044816544189753077367019382582448849467905337679736278705134264995069253781227590305872746887759544790126109815106233362239222834727358235064094079550138807513837364971109511397041106923180822685346474238643550234675873519543150448982154268785263841880229731648573777579164021463293903735467247201396345148406026867249247332505259366184642454681458473903101463006479231517585335540854185753843780702660746479664233634176294156273472375875659580629218036468437136665330873806615347475861701049903710082470930710006009547669596698476276582108821748124205510847525038361282918863111599546253013185420614375562561688944823039370728511448389808364777865242596599947242117681856643770673645320029448712251177580674162478344776604585106111230310079795454761492045510945875094445611637504692303382016072444623384491352095378441280250012328123521920383310313147477291784070274484972438609418279560972631511832250410771297208517562980565467528209979856360047632609766017083888185306341273034633915401020491074256729774500764151415350566692736631554968567414690380204443795470104885465762701630462494528629389780901792294055086654617638594895768822000483341757039076469773693838549008646108553617359829365399682020258706376010775533511415846064762218296841237108405324243140558713694928299958523814555904535120042609952532489693171428507175851411003460408593127619104384901173477021904645637495178721873381910166001943787559723180187201712786628844227962746867296066587965537855593348508956512329090768595589412441969785281610866202843033641005578066237816754938496246540061397030413661642853120517574419795945906374552607118467913465771499759651492692805620214285483789421432291440769085466811877983914850371094363431664130480532539249894271465601378872633624938957623024998114704775351407772129758506028835777612240003181095634175584347484559252892760821016382040712615281535808828505204388096589710651228636056277516602473450993056498303381924692450235888444049397051207981346791406514647509130320362491387336717896802056447696403148627598536671293012134288343448383476161197152679986681709280171239146100340569159106732478038313092483711805394412376374826477921510099592697151702775548298783772844590305558269113745693467151649071766333393487450053044286380277512358847268666229847341905112009405781616659203301872137325780433946737293722718372095789951230702767316547145122552390256422255972582653155045522825718972675849977740658745437709275451094478429613383271450685914390456877845579928207750469937935087237049579455063804386952389298219049347359861459111501666386411947435296207176033102800562798122867079731227324565365504719701230328691676354455574541807430412110057067736773979875960982210825117396642282637167560138495415705720830805011824982896713403520755229651471204915174360221940931971538408799641008473132628283728083528781304120040408132879792016222312352417897842935823513511256926270453577490833327883547488442719561435985608698012914349825216067302614930563106386091469759101515843035445141487310073765217127115933001652292953057430735521350218144457149202030243035074106337441659777370013734272983534231992436145105541066573233259562635681869293368191371734785720855847499858960737506228784329166316151994985392082144044393902983248602650760649616478548397617487236093318347067056163704368300838908125670089155431407242844457088109135070720119894265301193406233894134050039061794235061526265366029933496014219662970033289748202240831962396845026199307954764337503388673226964879554220206619432700971092674118157772822596036491965803842159618922434552883834179126654400333215820757948987783153869440603531822087257208383059531394753907247175328635884488510308185026412066332475071451456483394135516567713931653663074114159874915597106685659121232097024209182225954088358570508596214472758390565493152976213230667756787955595848024059626289371811486928519885901341955070639899919905741235009046439002812951206449492548635913532532993834638572404414477438344609469016984919580696125689657546593634815702417019904913048756040960154637899298234858875456570364403289367482933471741192649563224871470988692019801116096775223662236813292225592785221411648792761789892232047103903780808647288359697498451918748644435919467750798979456819725491652412450903689690531388464840963133910367965600691691365218557835601453461969722243740912124763351881040508906123361968648228858687396759510087632192900912742050656978274723000012267534539480330989449981689925239220157753099946210766807549802069599858214266751755325438367066144940138908496285392080678096240931216099462551282689561864369074513408152200212592655524128113252656859497229278421565817431562433236792987012346591871474128271605911126485977575314456735095214310029817350734520286837328862765473086777138348936127405638422498276440379775466657399337808385573142218221999043764627744433591963718552236026146648640388345886406865316909354715588417211331715267541503939282793610321849227104620527171407685809927252437545020462271925233721343371993251264156732880858310048485501239015775391492378253111851365385216987340603159244348181997972392043009859407292943357675208621778797868417176122871032849852074231108637749690546596499227802480962159974195724092380078898458815800917449942963706620186342949332260054050596109939493810755839944440526078976809824278328536436847779770972307486689406530835346017221699464949632077692196789909487649511874928553588571959087574609821825229111180414660343541757996142428602605404374882872238621630210747614098253379784928602455233724509297129597200892031020681411380279622552044458235454418750591982619256424886222712953231118508400210527076674176903686491687805488626850484703756328465524407852013257734427168763661203473973521387614610171712008257290716188903705274312534881441187176878255020495540673251024780666838407790209970853736786800855137938943105892171654760183454202914072852124573895727818166069837724889762212370062725164132988718669808723013018765997248431374265791634267194802111743856681439479975505992622653992027282878402994818933105781952726424167591190693635938407881516596844094200354265862537453230495636996869131332220425944629876906700122305578596209225423437525561775605187060074367245922185521435290037243051984516129893067659627733556331716889476873792263243789648110256151831311232769081975287230439810952037168294147662142730708518594096574912769634641585919963590985948221381355189890841569849940146629036873855509853596422873533956302297078161072601034184907123345911501215085678619127208423540505493624301667228922531536683965788099372595051844522210156205334391420534751847450070018496436913486231430267934091943995290960223044412048424116063505713821566284917595696479052483621281758538549070170416017033781942130672309107958671015480993757896340514639037514642089746560138979191572617457310710224612662246417210990662801222754880956265404271328263636471199700280722381340454691854361050500182085432099608944831189628537678916797719381501368464835928514580904209240300505886917955972981387448305459757024927044192400288175249088274981357864355403636149721110697045076649022554107311858359045166150815028825210571525112577878207737124299982898904714042287801514105303829360593840540808168623652372712935930671764878426399758744709531214958351202277741696902701176138678565473939965535153724086950613389265209173555048488366631250635633731560053603295732435604078593412673588665061252722408902064613114592599777971931774894251035899322856397919778985402994947219555844038875641593994665567297151016709653327445721131960864283435828526706760155722864895023155292984060645540289651485401117478752824565465461439690664176800266276703179645696616519973683653317549410237441803718011815080672663838917694139217562495931397389748601709493737625146636443886044591789654791794433463811346780501266883618324182876209180665720414446454909680379576529121498376852717764016923584313174969255434646106938951620887133108999064404673640466662390823441697208732792723605407552112295608272287767708331882175221793422618141979134232071701303738091169613387242389936803271278840246089407577100737308682841084847903299146031722638548998677294391516080145942607514689211006569925522776052468894040802381356494458749208878570791133090751262393614645406254182181023889775372808743283560832066098506766912627841191711003489005137649645427525522492835319550008894892595530201755554961541107393218857367021307702635277820577108429865708498661507671527176536616558016186888403303150734459693890045534990562366791959452376491927054701530808800904120492092822185329520704722073459635716957667365667541820838773510114158435189141705312367418347583171414573679599618745582319408222980125952950851679609971991967294583804825976750476638980661862054295139126458908717808403645600834953667713266310020528228530041670210362333064129234214180970260869306836182095990783928167371296450515283189655833626806885946609041290248767630061395627626332014579416468588452628706080819699969654419724714125111189054114624796564416982045398848679855708214723789010100696123071891977953558038556702155403329078955368384985963955873415465594779658494522042557469284017740655613296948585334679344289619523766150314676753410309819194550327443761448170163309526295237208286670840847647980735831683166861201947571501876583839468722404729304199482858564171186496536184315525265568208824515385092815429574304829037767633237953280822081135277329930214471176918058461717502484333558244009668511255210058412096503010347834883538591137292369565790528341294156585583525343833396761031190328049042750873761002499514738087181246228011398658479484407981233581695911025136225434588617324051810391165445368961772468443032898924375633959569097922081893531764503363439641265750876744455832856178695085152027937552883549577666450042725152540259989454595103618549934828859480460425936911917524349134617554229694302315253583928209113827594249774012212587676421036268346242053730378669858462824809302448860236378497504625563006604761375631852920406945941062432801996212178374937903961934160675443978089159094643058169434154574812260514020957683210056068446227231640808155429274480766629784990888370597553789021841416699051979645794644708199396904583788604308761098882597248831279438231393196427047916585711455394470392112222830569161233099200106855977402425699504329630989480726273004184270476781924666433013737681265635452527001502323449205035872207157747349401357750312107799478540271640809426807247453027873270615206865179757480346131240336894134725343424247440746248827905124262421677129223118738830249890985328095960759661011797669559378028675462160377903564513601763708814875433949915750169968085001986325409099771903385377701237530481125698798996137494693095546597754823847222546439775692204363156658549945027902556796335288708541737079110421725034445159851002349932816575719493194629266927778097194547928379502565449382086745966751498496756145782271354668704846541236711071383112916406008037292144754676643714288735523790833553675672639429901051918786305806988325327547224166835012468806162829151117122046360746679690220841431527508270592433172532090631770327560568968812358073147461630174400954130335928056201864486689152426903901911787396338846342858646873275988777936675813040722861413592302509065421671891915009378727049620458364521733425122540585928241353103371277185379384750734267904656154719356509545014325994876799538305379689593631925286606196573134007156781867748667410861801677317075132159314390854907659136680958969800080086022496064959347578775752967284190511332006243336755736115767374987816708634961463381716696327234598571984380224429417070364096879862936059771934084737070762208231574467058844472515463584440048449291391350852707527209209616157732614830768439620614460296627258709567892285209540083504541940002312510768607042575143705762912492334889661981484562266723325958040734438035555806441828161349685701928306884575124033899421487827264911342477416461614364580338136829408380014377308424902777008911815310139124059450866189811340917626895866782012555616999389401288198111738921599044212724523023510512452343784918602395640895981636943996366140589553011867346960121996941851190523698098365111027350671885472227108266577038323212507501896546792359990048946762445615968732604314917825028856701810022075187492354423488251173607913869582983475051729206925305395017313109131431489744284669179529064895209908132850761106967655244758154053153187177033776109197664603481441070383444209269265230591568492526880979079557341699817666993086055535934517569924219055571817270353387417148529431263062868650171076778368697158424178210139635161403544352781611647141405480810753472817803228206568230107496699370419423758329485924286508602703782193353990176356271880883156572110741804150260119997725315757817921210638748888758945834082220655504025560313150385337167381702842566906075371410619924244519695208208934575965912882916949377126399613777225140025126973756001710670440924111734172197030189280827912061802405954318389829561652848462355424119369091967438550195552580588117449411926211560349410480363703786816129409064045313379179705965111091625681953180209381233814969129422509734771032198606210029867719617237215834015294444424916125416060758720339180343654325804897217463924958243514856029961906383787639450719105539843446474971910919213300701635933047243094091161518527500183620487255378940760683637030066781604689069669140609512294582690947621343384885406106383616368101547529735988033677887857668974192596810721947632535146374608783240639140289965199617518030986682467016596563761018355727688419675932018327339299783320113507003211899717694928668577897774835507878591586972670491382632731955002195720861438782189376388872930312449823444916024474045634796843448411544310931878613832939562225863316812376800116386328853268827457196467999705033364165424637159155361728289299634045715588229995745518535664895899494614556755479569125923063339723249451667772967264117276048015667058351327107150428018440859589692699012770540810661524659841956355735443410332362625138887052472181313399382756592257802146531456594763345838273006211952816759961034315525500297966624550373472715786407316034033941969037569413259243890557990560611154725768076693686918660260238554171980425735082706534318778828173717848936359965529970618654215056682904558459483660983594759692247206889828009734197877840447791584755006496763267324359067590385113040812012981024427247896255059928520240065169416596865875852350886384325019127868892523248116260556294713743365459176594618998998205706060522665684421308299161358014765050931022248717664256814444890467588227988029499758482587496718935947911541713794054139780303749791339695809943178789536387614499355727736339748586812686107313103053851014521073339444934830098439160084942110851057550947753712899038650177035039568322663498837162171053261275897335505088329839331081772759462166012673450304233382112285529765738763976114160683554271127401661339417727974434426664640512931441763101121674913952792385269747920573616697604650148969591604920309787916436335964789881092182288041930927756045700591710894583051583696397247993145108713794292531615123135417152288330659217853156167517463027643966494123573827983199557093723096740340249147402111224542195733807829823556292850104813781810673584630076643795370224039233059127016352918005973029665561529616521357224460636882844235193204414147085573378307311590264720446232170994714212605851634325601432551741094653643135358649317741786457637848058616108865392870604183291096903226778513932525722413605964834637080190273725367231469604820728342118855791200764963886161437711513334532354696077556555628970022190007711821060827789642519603597008894427528258082536103308769805373390358795463576707778513917008040028503888641193959603459087903590473050911831901710887964208675376944016742134632160259059841839807798372673445585112491857070938821107124129675052903460440653208685699505392563627175370355930785467316461847874760425588669294033221314402934207194502802055816229494551048717012190041032913404689767460604143456449382016477925073441993109233214282537435303845403971866591712888362489284509590652653520961346202470157366936418857468554925082980014713845178928112037666390388961396231322986757731234328458990520393564992070242573204317004519993054031829426536669738204359558402910840541534377794597208312556679258483322078624999575515992731540842372482910609930847379163229853348681694487703886073717750277543151187602354351208295442007115831820672394385798910130995273701028751014190841063151337380831850585027714799603267767841784941008753077238111054462018498999908692691750595381719868733050655300561228007104527158372903889255799371370127133320952197074564134775784433635525638129320810054198530159095024049427098280767065962705850329767602807250698326102782823705327751000031403464947871194207303923058528594877344117367100951777307558074333603606401496318146075277176593202197126030049492371835247359120764570146367922848535645423379765284984197972725817738098584858025386833279180488016944126670698902856949617199146731823910740152301769707347818116279101210498524501525245565943459107207029354158392166911455518840482431844980405846459118966953979742425837391283680014364180125736241802379798050764074089364425711429625205606506727404614343590588561050475827780430059135849517951912700670041609494541837946484234271574528877129463664010147340003918336269014499048656994119876424657873594866525981528283028610517058598990275527348442952877362691980169862965993460751590232012167541610965467446491864497969547632603112673510152350250328901551296960768313642119254348699550583292855528627918773757790933054805410742711970359524337836587087223985629030878868523386391720199899992723639177791192956592197630117781771122520457134144027856043245494418548042734266923882900900816286304799123946845662585285153457622533809467910890291978402554891884296650106796285846548476785846131053651553386568859530653601124538701561702618960348749182646129891407780053914497060203481849037030061141704429784414049185754956431202313310764312201611231427756418638948535666115164611864001743414170060491593692742036796421339317418594423407789946064687824953782250052771997354616393760102594582572416083923647776571566692498541150687620474045601175262646877029698371194804837870612990531677565791625869491643000169173718275512336231898398417150385552322824807279036460869941529545840102355331423345309017580861228888968332434119061927362621600127388229153628215242434889570007601723545301784203374440632483368305649887297113562319957519875636565972656260410741886964621631786904037324324236914024331079105208990762623573890499211332766237743140720663359947751908108943863772609654333750415494753907092926575815290451589020829810432712592605226186826625335257431537751620211189351663278154806462362288930249001380322831551276331662458936039013753483429147288789293591004433358378689754605161627643594691340730610573834274673723540355026766066345965653918512708390138112976901796961977511132041119853206067500202327597331255673894621794473160470701782950025263567916703519593809115917859179848846932509415016066454464167122951833266153041112965495827701723357399320736991113571361063516947655405360569436011206197524008829095716804170476798761694790176247409243024905760481247246192399582843547512614369705803897535297302918602100781975039554663715360462779364150281619230896651477308071955182084415741217571565988515583667994976931291066583643700429982264054201273825338085584108778340472795898598766412994030768834173149634661306176625148858062412941259545387528978054046326398067732604466228193183908012065437207848839252619184656664875504538253301828008748102643761317127379572740625236259105061636829759254478086403398313247740756599755318362475569204872527001547890533740067379858766081455725845917986385529914415261068261202046707302147705282619540092019553351665701206823375632984553537297001232408067265024916256726850641987778512566541790853324752346216741134060498318495839747498054302673096127377619534335184414842764709424651378234533386929758350919186482500247395313229644057100195936664970468000219099769008292591781306212848243351535262282109091640157404970027097068928468434663827908438809305244938024940873017359937819194674833081432151364832662478916551037162561505510184489793769807193860149232601665784210970356347915013978032637929688465122742081325550471379432166236745718098415036929050362652990711673905958665640273231264696582197731413850926972932973443476792975086770938621757125890865197003152309341640585328818754797721491245305328577471241719326389880861708356402692961310548933450043886578398529225075720807277052658039135181155615658145116340479128615612713444591048489934051656976808571970692346587073931327820773104541413809779237284284843901438757719800472841680427100344038296200947271802437945309872521041695969620815356538024274776698592462747491296864301424178650065828028188486420761298156230592577425816121697217946976285497113074684786080014238296519829339462282773048602473508129038253660558362318342009716861511524138186335424775306894680675921030402987251241686517438302092234030229997311309522366676039129730083561744822037001086533479577499381983514581302514650101944936261417023026108999489912344810797251531479865555721676295785403141345065262631176509874396381071311357944444650771531191417078419584936295761966381495394266150412207358686512211709582122475097147453893140679372437374222010577535241120633969066556524172911022743519535957041553751315160373197038827176492350823171050189128008116255752766356061737422459281917324195502836293299626030174132603626674013561803594073875064938900492027221833391489144674493029889354739702475036622287564043506197427716381710337947454189679965609556078523523043719090684724832719616056716020367119203148975302337225193098137810308502633826768411662908849071843414881870273583830661491799807739382237536747165421012303310075458406868608586224649352982250255008249506960335241598786592305240744109263051445369068981244442743530335322239322914525286892453258884445493150127122060241714859264460643368200342535445877133506255332009265332101878463649502028645764979940274951857180770552762656775716184760515531668255252594965179997040859130504122958566193086817829398894584617427114493652885577829581875415562440014475033999457018550956204830193058710590741703649095273380963490255491959915984587837029248723586012666912624390415825008411048630307124147406189215299680191254668951919117610120856447322132983935862718236913640471625982210995516403363929437608386587161757138188681496983066824424012779022236565307497630342424020532536802716703289395529807175066176648118011195240206149111280953259328026310280176713648637977089705550026708838429816280107290198098517363099106922718583526270198688753914494605658438786880917115379474914436719168429520180803521974597407176124352422521179381933813649072473042631266814607083005868823280531120860429000661803945802751215832760685747027430232103979886966239824140230696851150570032721479060064042389030802104855205115264550678419395754392323928815351544676068907504045248376696932339341908765451031055235558699346044670923299751786426538582598284023602390789138570807441603470245044293921903528416933981184632815940767036612352836711976689129006480613379017410994146755504353665497890721219917278369579953377167368586937176570328230245284014829863179750110413039269345124255572137689076039400411883567147886393175361948142996879629588528722863304073388725677087346693681141935406271552436508259749024179544055149033350750271622895133905243211418411514991867807142467006480825663823485357051189259342530438887216546589496631524288819437376054461039807425918385373525926739625134296196837977276882271893761703912708994814915964099081958786831315565917409709267313312906537700912891565390175821155369850696445269385738776115092813813158779273459086431968738333267158151771401777087436639403923479511706268434087863956254765313458147493322583795056656464557126969280022212280739548522077935910881907860436456046867585686854659304442045745126032361438830748506870271206422696491794742728817162214061355259353782939168902523285321897094706158407480573226117187074929188472620444887445458989828215590600187070589347784310051294493634055849638252662030254862135623648877252401597588917484857020890165283955423983562153130200176003246303483112472231431322800461654814645401426189564902286290220933094957582852879503608914746290996231287414848531807859946743813021374330092301804986076650924440798485167667698815546175037944028330988941144005149564553034971522386669966317081843419683212776090379082992314256832585126405693197364529620167195306784981261210819058365442609409384073865418506596848180025901559491314338223784058326535431584730658235820054200690850497365906886061698691773002551574737128530234842141718255358549911623776257563815642068308877303707371259704381307283466398586439133555578580003073632585557297706041121948871903114188663157534099495419332666623223181812783197119185179141221521710718351763261527419260935821866851797688976005560811145056040892850402008798021482203678409856175743674265212893497056749376721044853682679900321482409418647277808952770850711088723398411940553825047431404388666021383172472368972717480383828457288503658818373250691641782019754042036458467728080863503293101293019697093602049414685862800290693191324282511888994101166635577912091546527525203372362217353918308807399998459941167960086081665832104941029841829598888762133916849375953770421113129261372225902083802117759221395480956345959273525461957466515713492427212315402956003251618722273013921242442903682606047780362490509951644101703086390702354129801456045720214547017936549505251449458981725459032610301139885205329475801757747207483323674640819132528906280850568025239855826218406653494710900140458690851905863614258311731155901916984910711072980435472970479694038202562606471592170514156618260363088353388344569405959534426845026051268957409972075592421058227562570066981310867810732564278641264696460935044180053563033426097587151985677122444956662083017659661185066120401871304596856985455956576937366563192868729052390811631813231712934119609407671925847937430092675468687763590728037451745434768926648423247848979873295039426998178055533659816876596273081728729532246007717543304849877842930341250923380917151222999142187363214038930926947298081036653387190755578767841112734432278236314523928132913194183177438008209366144013346969513043200005461987026949585575389794027127373787205125478746352904145350461787002156681846743773379188073922256164946298171473525689539889722767239603259789901011102978585956945739070314828740160599340007502390959304933881828957825396341811225558597046604093408107546774928489958010443545729610714038621381636181903364461129422430265942681328722558665213795265346214072308781499624008656538896525650835355592012603117943869898985424514565226806472285453942901896693874114196793167540087313793703164070887889705478626386743088907963389565141827642310211059534272206956647123847166916135136866410001492574308524074799588610965972252200471538198739113338087556523904288805695844510314154411593312345521921682758830099765235474169752600639106011685258541305876604385953917196671287182378172139753117474732780893927361830075662355433098720851468893436328308898295289220739264589888857217057493586106922734298394539389207190105613115267028400688579786419272868270893840567397082214495766032437332318196158127486107910757548975289944316183419023840541073929926067678859629726051623263390936558756680005053136423566727367953457366926175226773402673472028758731742712463926303436535337425363474524465063337945988332670072876884192421036652114263654293640451074342120397315037433584269874111858808191196962803905003915392566256550073226321188453048078044763003284604911487399747078423124102468533402891980885676135823150443392384968415279051375362446676449038255836033062034981488061263037857489246003258439229844477726841581165871541273203806096125659289696611275606650571666602755738372309979363399399785682163460221206073731038998372674468502820496526326457935140985633011450214101024719592843128081943589560581436254465383997032046868626208097301352401322659670836488154246299969675818204437739788069475398792033876277471650287831715607503604975693030122170950277000185520746404410135199140142146290683517884304403359970459649572584244439077351017111340711659667234188348645664977404740035318681717742790434134450302307305645085348592487693254083745129108064228384511872936398027594727438700581810624449248297790565667036868454916062431943447994544709200759218888938455840855088333541566701373887273307295561988936089725011088365044496865697283393397093652088812969135337343575713398779110181969647236527604629489144312957275478286796336329632472365457812824031035360198441426600240925173147312391210362449598063879174275303197773145654126661035478538929809231276955293327558862811280972280509445475602334097181629651890364588318533225041662089082914016552380963507024334041843485616091695202261828415085679899007814894884454951552136836177849662651500903010096456017365584782862621676863671615443572953059136239296645228265704058972618966132335537252809293736244596634456703114247295149890074715419544553886195762910308698698674687158641313078852502863673542971263470799029276779956198999956353095489587007262476186297347446433510356576556306797103042023690084321774909314032591743179056499283810898651886526015115062956911600449694380716091246793971823509578280782754305507917741207363845242209895502159024983969969158433756688563074095346734309037719678394708848561900292242680697191607753762460888715069571754464901342181077707753242445163626685125670527218338372486113359781446075508454681153983605677532396665827755401264376909737637584186345221149846045096601188871899817568284240059944068810680027207202242705048150046815361916853001405494559711282272594027154024017880099621045109004618033955922959191303065250438778807906061039710606149642740958631164041894958425771326655911313588529264813809912360155386264640844668497821087809473311684660343486054707707406182815037200840283986272891131322110326330757823549513152157219089841036422544064220049304132200110509389052326327313269959434805899902379234391528810321857458220421045792244501526656436639951196675836285439875981815272383879670004006046282730397892570506268624024020270470368634485764829105055220435221021801766889387314699264750215620989763729877404101995456348913985951716137887429485352402317262058405452581123609053849697774398583473820051506473069947700247844539313979466439001755803459899370824711776029975214664775441276242336896646601450216656525601033516853483586489580885209423344073452492881768598665823834205990706802935298361922619346088636635097469919053400528691772665467170059767905568971276244985951805286035692735265568498364039617253859219920499145962674631861678893630332878186031424836419911746348262584385949986307356381482322782084093796542269492410793404700448108434895667145181561694843119595347312163288422810189554446234886956099649695288723003040973209905802743999500154912996435018635446329034112795466722226412182093920291266738123933606715579008134519857452708410594824273103526188671502236832078698790575134236765654168979807806254167255411877686699455779349322306013914733217006382218922771282958200980069854659290510884920332713313876066692976383312200060089813337940520989154144510435036785401257865002994514413567925363852600480224049060873814462000422414677437095310000666375485021858261978084462375847295794161339922922152591622000560209775398350707950137988149526414290362613376298173980137236802704528011549397652740252306840377959373025163905474092987148923580849405496931668973848992801853981354076754611568625721656761325505199282797186601678906657189397388596136772302998686137852917432791798685894714578236257050437530626678165185321769640773632263060689504375609197382152157641166521779440029625065140380196204291053926014881219069777363651971096887353004733261199408713645609622347829757860846567200275341759753068204351360956355356528996086125117201258967767892201940999147331427208336742306514369692610231331882227179451787655537757456599968305883183919909186961689805981163719154621381568564602125659029139093786324371160470776306704593824973256530886389460525934844883872270979867689752687540819504088080955952297861944679725701067759038066191067747853423219012945481696101492589855513229613724930108632937212847966906857472706532611738470340211254590229225013862384350618329061472814940608795698117568657252667006702680755565704905692886584976766434609563429919303628204840128714531650190903801993510248320515279809596331812248619603081107899839775669271329502675682930098951401609184182373945930760076606193025946858691603042684425441100224710143224756559504931248977877081749400656597264307243925762675652162044225619789750946402546289698205331740005792027304555431930953973799578210980862968738089336243791201910478153288202144751417184776727475587558039125456816564279897199631581128501975605008075030577614674562405675681707696804647551234620961110766355003745360971560919860065069816577719163529943139392519897624486878195832082777748983307754375184219280519793240000427890089469090600920598571150363509460431321427833796253759495753742233936894860884755948946586440842077905663391638644403113409110446368991253527845689936928383379637914941762703042585082471338605649798636927858412319625691892718585939350372087033867220947773116740022667098754310150130094648567679272441446162258890065765819436986117479502787338380683928009491430476878755517985671905916218258073558324118231929977384873013519710862918827178265981721100692159425911544060167044951660403675706396293567771706277178601267449133630058008585651811772335164297479853376399259380071062986831874888772099773827317061756976671170593050180665801506049599193505286178140999863664967676210796177698911669264750871012925469067235596998880354368584764090240537203937869249398695131686002802371728162811720915917100172748395773147486613321763708929752155950038844678065917959532852771773974023104673334017534107488875800112953477272056248431560516568546477479536987682977402719663021127996955346229635619433910196832748464812771263821183793605133593501331138244421936895714101079798809138470318121399471137255116814083620294103663893531714548528260541260616634799600622400650197476205192536616756263757404371297686798982690743554389039726357623265868676516943794673402477773144463177624467585126279051821232856400795502545493651099289906932427432793693885972604160692603859400911255004957313445111939843245366210964280444642650423384218764496070723158926726428743320022027874660150069960359994731215803207442526435554834130351229858161605213064466905929948732620433896283250149751009156758518162939002361993517436287457536798137591785863128865082841691564998802915087497387440675061040998951322616174960297508322404110079420902745291625366177653320761225788653495416462844411818048473726974709826078065898455992739380626761334218867787724097999518551217824647838472049017106849838117130564796262150948288472586181747764690498777845834778271241743100158917436757230318629787783030232164640652483167862895700973206266135349022188390028665979090797844822677166655404540017323477794646891179556168013909895915736171383607626645754709957216180404143558555535778251887553997924485346060313065970599052424220843600922704939880891310990669245368018505386593914472870173254562149082190609813735294568680165540694595247277160692065637954316831294827675478283221907900793578394189708258047132880058162133033336468929602542546838846721443840728575209170427251326374157483514217924854070211752265930010555274150587774726849118866699533100930400599195877554370299483261226530053612835231638551015210075174576921516141255350866105864774898304736135074534261543884071225507306843413514575841460034706544441271744599315164146104492235562755759354551483142933506082578230046089909139075252066406367210747656468270818619375287882508593729996248406431388575202852010126165039958666707168093477196445134449932955481129476850998692938425394106373622660929456999465638108118560471076428106067465113720522460540435015105324950485470000887956451603356040945138591527786235734416151539670945240500390907978713438113182497180963385427582644723113003734551504952597495875479066552576423742686989830497155292457955230597824979179886316380597871389346889123254266228208918874559141411952016885165626072341271359225208356900658553293885462381434160961626554445390557695835108228565908342546278728235490954293623120563489948259188524607030429315873612808032772260775042819789011650559521582470672523311282595614470402536583613443155030017803809861547358729345749001748513757920830856606173705445736447998907294343492393370213533518928083078818166118594966798951907247698147044400048847656580869569546140399038418944635604820060548534347703738556512271054412641135895262845193090711071801445198238635773420856621010700327285636845634306031524133066473080280224819326758937855916280647295631392492344894292813056198531197161953172277687129010111219530669542779525856064006210044768733443257043967809579071824341001138044937799632741594625905145292513566769581101719063546943493113799035325635929903386796688922895745983150816067709069275508059928301269508552943531211698725627003668460696606064221887521371767698857994073392728064771518134863047201896883188304789189477393198918940707234182967004833655864666672807354428340352358945161793362919247094252265335690196561140224149771647521231169224292147695086706315517469041088228590281649693926324495413821459528143104257947980100743504585117250235486928015731733705140956335855242332381323864158769044787703106088673211327891484359709682185176500402679728546894840636152812326291049885218604125654993506130080927180491740659242537805997730106521586776463852862674102565349038311908798674101287670894558801018732300736262648984639205705564869408513428420881242598708989534068253745471254791833890460134404138063709116450681506639262890175940482072003059044483958339917885321600513857444674619685356285347725253615484520642722230594925871323014798331309540191620429090625170116383607491905583365457260287630884218015591309682856039960067386220751883603711014914299202638034298520295010751937015999769271615850825106827069845192235168368575395388736226213035413012383062581562824712961049924569907414218102328723720233519017108614576466077989209454910575308149583060529808410824506532885509504351234140557409781521953267096221401895468992412182315713628160027540756376566922052442912923927262790262991221669056641731917650722300008413165368847252797055413074747515884890806308303899251377596894521587079947504670011877954813847943253173854670204947063789745080120182067787501566231110967467174334599372911804247216948468897602264640192371306414007263527496976158051520775904117914165062919852957403093889476053767641943122768479059169253943704847089607619437622013880064948481553437078052786926981149015872315818439611829010520791851833927862489766064698404398248357299352704673977055543137884683157575724656170604222640941484713943935758236170751063051352728511777033815255124484808058664945779409630447022077937373144162070584533002938337075668834426572816263445826057679685173752765229149269436210824613825577299034896924586565474099738215606744227501488269307449255993990832788595644781841590647548271191389999651877240629681035365900944834424202924202506580344567537438662204043193330526979880077223244779337337838207304827459701054352993311534827516801810824442579455470037003715018971045358523531885411864005090614621052422442578775377027574911630023715786860261464775053042595579701074278583118320584350489109142194106189980895661755998566267453779809333465447994652836044379293745708726468740308921211556586804366106609699350284429924955301890455345020809733572742787965901305068690769158254741586252098197944000569570643615086684384615870296655470022466539010271927026241766750673366960358080802836632561581924225774308940125481347676590210658282745525862819802694360284579298505707423989892303653000853493894781126756638388363368043636981652968913270128523997249424741462778550854159692645463031207610142280811207828149740163701231631467074733422472811870028297582488005226369397515818135988889313610193287968263572847832926740386678328039821234539122699022101345746331114365779953534459479505293051662742686333506523097622744780166149983011850135001251203979432959794250607638636460018121443142704308836495424586874850713982161703641077754702952223948826793131232878896721914195997602864563754906017082277914933965778487174453028588413344707064932391357270600857301912126289748728066781783262389499589950434112724201130890764252199864500119774359100247879485566798668677494298328319653021461148566498057429017894354338878006240853373911315203509309626645571672548332943154925278908526024937780627330964772720151974791394972518302286480059512092943948264473761817948886278133854600163669885735166917864629655266054363398625454679257864557152785889933944039284762414931783122155612597794796382312528341996456163554579054404428813548390890615467939408683494991717148489463330448263328889158015557248816884342478731034235136685836689944992498713252150856177681786900256238800566743480928285956311859063586992582182681498748470166354498501299521829978240560318086052750314561975140656392119019450887778976282592222726920421844528135550247789790628817452556711785171385133440557522784105681294490275610266638950032655534365136116251565901758366382417482085239772011161739146138245386570301890985868686010041551485810804017535834613671508412463464827164231723700579603948727304475915034492922015754004197772220632695145475821201901750633504790276584227327472922082731444237267201106137366441001473393404077880808247206400624214608294316154727023368920536384060544548428193509674135259860505039562036013257128175104469836317283060529644158470482514307910159386545525579799952874570144166064442217471467995016845676488151802563211246546354959340882035889015741076133788465630613873628084774768483521393425545022415447867232731791533363759619458127982023101264544250100875635827730711676394432358071946301199586054946654576844021916805513827882908388156043302142399120713703059146191414157923745398538227378097721197162968929143282733004390708129269087375427488245642483461093895041519304276805654345844661512441284858802415274250180920384179796968915130533160683578382319216807023930206952357640929226804864078229369393303476117881090934329931648742805474051130189356644784428596718138791036414339262153132705851242654204347291209879349395456796545602390526591186381689219056887202146969569661449679956111661637568289164467620906768245497710269042019315049373624376652648496290588570278029377292999617029060395109224061651275281076425240872695564356583801799716919719367322494842014285902455139787296350402656994151063478049030121975432910483268731241649745151784557033576599962092152507812159439581014324508896769402883857912655705703543876809889680854477276237943331176733173800375862999191474452637907954566348090564299038500651100409597670147892755176763389771914344920549582701592535231574402469747988427570395546218943559419794221275723523741552342926972331882323364764628973049018978366186630761905409420637544809573930376053870994722658025131175396213092742827327844388476740414078655438890789281641230780264318712006114371871549422532786666502171855293333108537914492384169873831410259798597546832554702273673108332293144863371157424953998500593650000611050299113196656623199098785274389319337143622561821317032177381626332595220541170686270955934928425652251415867225209200955780696351874652239445525757944809764315975886252597204534429142910889907455276345502653313584584458676618213908900832436260507529272590840312968675253418639812943934751192684082221968174056262887421063566497420712857674754215345112501910534262917316910128669923898912975163483380700606529830038706398161203160750408507071670699105393809556695983559737127063533507606654154421963420058580309092921548993669954733480644758247760778865188376951376486677007095563973727024499463922645772030018339745762609627366676200160325146539797765835504641694338471846486717989109055335558136550156662073516925310413780994822457300228969584430015268392745788303831337965310225553936563555482047058294670959294297629675523809324847297670713061417083256039617381002520233146667004228748951146070663582371560173973208779585963653697155601285245226169886541723325009308247722608169800902250948169977080877158213905774926462350881702113132086677105234069288284616834944807649944471175722240827392524499469677970853210479414300039805990613239332987799300431095332750156467732580714128895751302079871538853494457759002742557634314021416073616495410978356004759148480645179479741566541747008101352143695068949981344616157982315940138569413973088909890006385942273739207479560442896590720137409769081634172690224688016920019873719567037526869605645414482797377687806788793564717629958344367416349647769226028630155003416700363468982003237173962924459965480516041419633023972334032276735398858990963849783761387396609167365338967172355389681161515802860341175293142182102966771399302761593573276658328492913829266924473521425119480259420617032720495832194476217987413221221718542247000452107988040460429838443795385690449210272520343125056621842488196458413271026444952864356068633580936306424752118171506017587414891854603614285494399932688372650051780573867328742503260050467423123924312596265876210447379372899241206278503433792274651000548459114544678064629201608367142660319656158229133020250760172520678694737341714820778140195220679178795997333892099529035590051548231506108226299994733403805205443317410950294913960139747495838106436294220149199871335650209916161266383219126403863628870115229171164157646945925664354299728294292109159701894029114256184655383570927774775900906606974344287663975569028698589400743038302415944639248675475371904934784645140305952643474904033794682388001265756683826832328473771106855417212023457429760786584683340278097758612454059128194324365056020087883069569267125929950562383267200922400843982018837588136497566412927919406228627833060584712258028823607795275773506027120804420115869196519036922056384188840680190111608116570352721029816809849742462893926210187622790930498298136589548944478128132518386766401202114963565651111449718300779893372926359356546947260030152576290537710638602526512531275796553825192752399327453348922502216306588998776385875169262612318513969954347891860203144210432516513721763838761629657113629396435116074785206344106731523967738090665734981998928412037934021817196782105841233793751322452031733230393082716877601445462620130730692958067540934862216030256031837571331055605543002971889383390447311108003897242074498789043484689326905186484657147938491689801672474822653823029895986655789015617111473517964482007265016559473920922568988756753878402977720011365234634662960518595116334143633055897225827287317021588132658955507968626632351137464267162146024383299501065188926955329649900960254796050196594627370748315078555079669332170138048238018041957403092319586662677732322551731265006860031576311334863626601722231914598605408809374184117010275403343077508061133990253733890957628624339751423705932152586707377620502070872119189778433621948850438517984460211391189599627903363411599038357473821309917772458919318844875558495954987207518234142063919153197292060364256512798889603035580820317132043555309811488681191194510986504628993563613495539596697844616353655449556785583316876099360032075821345676802607817916881228748705542869923292701202639273315431646153497582530769860136336752483486019905146225840436110757371151346770179527875214480697657937596037999375102902401139375422182843044327474089143295695896473491493485824371698009667354435801162321123612667068118681255757396351843702946494672438021158205142574881960271654310043262769598986463292800052123199691121522274792037499181509610324474876768109129310497454825552987622621793048401828905959150615221165503021702501985698094791355408862239648564719353967618484396223445804420768383806637936880420973519160931366769565275295973052487159508976324163557097096218133565440295149841283020982767604177073361392985536573848569637387856572397278787879667150687574412449127667703241519159894007499914920621583224663870628336536127456787735337569192294208123499863104188056359329540450313575156655447634901594051416782842092272339867027496366056837945491585529371684656433144366053329096338032111757118771057564932633134652117875026184130433397571248280927407008398061479956338270036503931318221022326122304916600663607590660452624738120770930101900044287818789376553465339488095278746394688856204526255200145498001383261332044277773967062689619770343179043907152663483746239796302281734452867797371021225976708228171168179374757163823347380660197447017232484584327456870235582088089548647422583628993174007711217644393463627437696336782964791575385462636569057940497995490606279316371603833091976286245229097481183465652198709601988368658657025427515708088357574146492247929964265586512306335120571431915162139461422354024152705044612620424014720938574137103892394503965538896998902742136529783004957254648052544514983024729012366865462692530668253407825018581251067891057026453568264777148389127865641334337051945913278020785415641023327524693662054242795959106832206263983090939252604619113646235843710850441536218692979700700567755075640250079653169842592881806264252550689382851503894708188275587963800780861798173059658212561119013272416886926172505929631585524609344355863845814976266118082227835399513544926551074659599243078911583808964501247617815266618971115320059036529825459554992192713311469771995797952703011679959289872458061104936966814441989500843381074314102595082732008359111318875632937537501150282873365212195136758078565157946269971745529591275965266400994527323164105875927769429862918703192974460763781828259429437731987801142823772608903817161517305213187533966256558141684030994534928811392072687500262180470543963346483703738066951664859038453601056786110867180646264760685003089790855225223033883767910717897903735048124018511111740849210632307198523188838061809728486539317290140197439884005377298798203142206410329957447265094819105864190516972882316301992382064094573230804478794304652839737526413797186257837452147336670338936729907129150806488192824117634680469035466279854209824314643427793805658311701852036645181481472368974779059822275018047088414041379998587158129488781135387388343292631553756291050527934456839538984730160682441278082376770991811984341869318680977963377999864360815512579526850413575840580424626780760306019569929518282216520466003836852837555680405107424531947887185150450889168041378631006353753429902152626222329822483237418211891102908670026413321967995270389593430072808651687005135541141107292400553066247163056482799727087866224857584712604400066533076222552187081857502316190334980253170760632307807301150000869251814398447289354890187945977242658175747705934613979834475975538337256761292654201501968211266062228533556933783938598834961695139768788484859913090107116380343219076311695933359308529211177370722299575885944403802903997303649299880444928709895523091251275515663149559326626622326113621939416231696655787365954670141490885216306645109548671966730364242068433895157957655801718664081259797537872086342518182409137546692363708577393945777166537390891803937747064583494553078147767371038663879150627946412925345147365155212818404404297717985540490099186467588750914499990630421116897138306972407500333311267613518672488001821324060822956009566831086618128248823073690632003239062432209987460911471166218046859774715338585255314515763078702473548217576825220407578774211046010300553526134185356823563152052971790521418418493914234054728460300789064269290504944322777059599215319071307230047929628699074083358513870710412076085345687716279724534886687920208926326915882100117852307908641023072089997892612515727321020008675947656456242315948086826760316580869068508645532558411340382948619312935791499650445295559966962547599309596230392154731064755518263714748210996329228807703008843252648593203416291471599954755954790696184670755294455379123217051562388464168353724189005479802400791263142516813525326582919700849493462173903040085976361619086496329193662951386053059065994877082076827575763072718959819568228153576719635322799029318234363599574991549366558496859475625913970892506214166473396995682677359466304940234274223596163138309034510253182286392960114252533746121646799101782374406686988839802550913416641513295592192665870770006822435458597558151523262434323797912631797870916984117011339779527931985876386732405735184687675269335816539607875810222453171975403591368151474985954055498274103315234081557501493487384683880594758308087701188278438658136188614619240891183758933851556569041620836972744847201438440002056336529625015819987608395091736370034640644748623740381382080231539026476686284633468632835059702549637540336165742069681005392190996671231819888516307724699002459373370585547400743694930208157310246921831360764647079897967976916919678662176642676056530309552643519743282549120355436079105881914545645098437450078383324945553899601747767772864028955705900354221591399229055228281102685634743417025533417526724471388605537800407856712570509283521888397602456279803746373576277417241578845754812482146112598394682742395113424151788878490768244927598856579284595226300259053370591521613769041010386474171122368191031583182768656549861217514108021099315480190481095372865271791686362862424016666016093379854899911106203087673067119199498375997658223591889710173783363612130024400589798480231814003762837651190151516276134702292361959506261886843098820709750936035295099122731437164858991159051335042341882215466434792719763932288339345385513347966047444489104034527278189134149046465360093627747606295674497299100359326135239808984239686129931456080010153092018999555821560680077064940694479065681777294935081994125273329454602882664024754686720150141899722804569838433159119671493027734576930245136025568291289452672113412226781135346668965544673513274081483568973265626616774216045186518118514134197026271023067174889372631618238948336747984584171540976047886000615259650430977097798358681174102930940464883334730170496978097033291676927021963818160714433413342679218260284423109327888543117901634292622689094557224742673569210197579805994358101890799851997613589280854717095686230253852743421659596193391404926745306767164884424000807640514216347518275900539372244321593301674775460649422621830789245381379330508942688018393844432235053229677939397728370528092041016681911237187481506459096645158822638546905281931807867421063432883421651777449051926070602911915392197135698548432841887664004894662384260591072331366144993174214932168930304521347742889207488690828927453425929968451321694428125809628978675632330910824007786709970710677955522209903276842906147556959251304806514082546580951288721260103111787289008553420848767444993596232336992986761159061662443499212342000189668213569168901378985645106758109927237429803896305244473194989584595947203194129170337468209646207905575907315638043184838446288260686596691185817617804545855138528512197675925493916385814274350601789998299857757151503308195597387383284218278265920943498338416637035048001990334199479133511001919159803574689533854514134629538610738829378159595080156095815549035352246044887229850081763027455724310460954559745849603539333546822290824600583802540727735720453175908749809655605509029528519368226045758184577265154366335663660103764949307767248011301747663088861768546196823990884486894804193432227502527010231238898827026831201347987657717986201225254535843894522258932032620972937839842165051105492838678965772323482439795835318269820585214149066916097652320904878984343912308439947916712196497629667364096737851195233629926035582614382927540218699900924939694322597396986000390633282536615688462711373561299114719027708706710108268247948615993578502501151429896719645849452844962968684986898424119373755556353632422627215091930697772361720035945217750150308131199496484688825979440070436607576780744616213748021232369222027558829625089126497780112463099268916551261216860105194892838024086555932705105190963217977759170598669692352690307309613536866534415495059612092101459570917901821429887906357578984727182662713908613086675191226443721952844520327096730882460679964699879454723942132629160115100183903960589674821506736427813998068484962001830633136384837629749441318706292414923427078460965892822221687377517967441803070609712432225041566728188169405363997592560334948424524974078809908116551742300489150503528416569832173819933763232646989057789221866790263052885814770972704274414935152272801808993903413737384384582728368157304854745978841712671055108132157327486642421659521853433504486853275971469323851944032353104934197121768296514070257148580447848682828416804304251900021675958722450323071513161033645836475343935757643486628530704053202473974771316863052777376176644062319035601306385775159035493103784146119906143721008705724843925039852386680493070781721962181662198787926107352092174828511393999580390836591248598595788900075301068267253434878343507596021197076910510922882786427011971389591250805288650472874702284952889148737624971225395610755136655261341333525987240673697507340912915564893563526741941799218668557959291114458664798215487574370721070429323721324713764994364417554593371899477025170890302027204749139082655075333200962536757983306412649233215817242502011026564481939192941138332124668936596739321191718775635943947709178477513061966030397714153238067150110536782247320212272713069150829057917327111558564800276317883876256117604251502233386853707547250877467857690295139404310261866460117334894931182338169352602284087849821652776688904032015443908229658769907985973089670443706678973347407294586801708915175735219316189358336450992351207255512266700743097078160639852876348338795322456886445629284194562136817415908889870685874363990848487611252118969739119079734857249100251200630051363523220696190666472782041436234694593147639257044717977670190754949651250979194442196108228731122111498416916914114513583128861178983773569048731363092124160649642752750135310165640469954086445915788683993958434150030503748879902767509679105033390466372619502802654302624707380576817388439951052591778386728118339045627286259810267041958824071280311165957421492033651068382165655628690103387352271213203161139542771296875342794742576023641609390492411471931751973165263744521283740033191466059413069013436775653187064036969144122564026260047441081906841459381393513261352070625225908320945978164994709981116691989518264407814075677979803277824500652918601481366856569392210330857658587539487900902340454591437317782475349753456935164337209892572693471558694494560678306107878170541667164433667872668893100818330657787794594384763762140926833993893602590267171658054198851432687760961798154020569005946856614294056789753315687191168926166980574763191099131656564837022031298127783638825440630108477737408053886826190296274393406665415321128446832085357665331280463046884113813679175688172755552394010114997727577907049281005963443797461609020085695859284090039449484006002296882023052591798332419508021777049942629302268668597189231952569598485654028504825604114300561270283933864106425176885226616929033329759096767310949582958065785626432843885353006496651520432879354054771837322241153666347403662879156868846847714737336526248320478182490417161030082920564323996748578680403909055577851106444656038005698951976967817753835614872564643023205578006271821408640372956214181703804301439774941275498288908773782378850428405856310656932305746131106563707802424724199359373487815198151948120918421901214717288007125441895603099423406967090633539943826170069102533024851941352106184622687514315561310656185539376775312671662198737905025927134427359454815725179202517203054621843508391960709246788900724639119072941909465862315600768930498679030542421726004173821346790955115076738782190638459911834289060179025758714348824851309336432011960521838071651265731000805979944819101846566291736200547746516321328311674425185715377657279466688775723413073703233333453113183727330820513305739303857929280991288750707049717399326918562571268182223754352689808809998987798127289288778333613602297221487162422480009625586596374329717811060054759617169781194585723251552480531607959003118965290316600845154693701498036604352877795531042116722676957353861622738107467530926554223832174804352727403861438178851224538012453748258950532130979113170379703875200840523143973114364285613923141224911920033090828962608590036299534835476445434030273799931587170306093875158674154305504627140407096157243417402336016144721010753180934960536451040765537955996874315709537368292785933333811519945397848882176953320198290328368142824191449448105122839133621580226946181486012045242060424041860611057638307876285401471725200919343793005810459422814327543563205994696388388300550684835751951604744986629805871501118155367230824698220666065152053426440883621076692538812949381045207103512058420183109248333758215370124902615087641835010880970836644714700338324244338881480562484576238385419171965196551674454003470309815769375293040989047627799739999163807046325042933040354420292245998687292892339462186836913899860459275574552089988661955268382794260324073048625175716540026081106527811992542710066545190668569396263728786254232044168997558114440277970080524693922495806186716840859966849107853151020918611511452577851808838066797714788599337897493866113478335916814119766544706186564048892346050460584295347208327012213799916708259171030632615842674369753730060540378600170660842145851442088424786109561950628741338768105830903104121860391217594864197779131728216187745246567554031904809566652348072569985067134309819242903463651395190091144641845554013047563868882817300813441275623943477392571331757979470686650759587066170202047320909581042046597708745628726043142713769294223568281923777770839869481174427388307723298221332100237883993121780586680970187906061326635700663108482440707590556987115300519020921946864230851907165336802912563951737957749267698199824993837606713102858431724498627347369658329153950146170887678769557602806900537479987233707784761903258696439186250880377707082990103588136469714649642164807768075697262185707018441050061956593233329669057205416120284853179659365128126992334782978039056695613430815034704678527214731754498733399740978790656499012253651270351079037010904763690856913803875392228395156163239973751522657317260308526605655373833032748541259692060154318514126932349598102551844140239303525654139282329375141838829348198830004356024935546351978333987387693920488384229163986549701520038069492469190882890151424485803402916691280349718157291719508099084609592605095091342900058616396231363917346569943211512665575063918876351186014726536109008199603472004420357789924405510460327220632426008596217520044117715420991374139619312450163761034914663053119876760090390324473447199997013666046536564691094027236176944957535437685066181096784473692717117448277220705755059178252046512679214790725720256323913713593034021033660843002851196209546417848718630407355151791938431088978919081408698980439732505429756469585817135948320027598545056954714441299519091090128881536059761913551855176821985282763414176528335094734914549727220471103552354226983187475639403833787339614093237673261134689391420116352039854703323475957725051649618872531779028666197458087494561920739138390951392808101563521025575084218365277853362040843650691559308178415919422060427062733830486891581248364788794561441724701222757058397381025673811203895413310915748172797939571220657118431162576417248770517082205110478816359897909472002564158569953075286598213441918065789182615703861709608444420122617171323949721636606420225595385154983058436952358878927630025486461158289055350124565241046987341435064771484677919511657139087475780299689125112650586390782609960157897784433049888113831696407302855124827582521683400887166863400024161758938731298555744976730877753922269452106992485593195139641049456699912767845298518999224066351502398652916679978050335093446953467331654797450704152071892771190141933350205255326704683491501721116408412416712635869019389022654465920949711036176330330240440642741245291065157773559659634444185834220699709851740204874055779844981204899697020277873871377677979884915938367217820045888734374314020261491198276070023836803589547917390280576882870852644770481694788169152337413892858932859720221894116947004334240072238062470905442967660480560501755289542146089442817743621102351461851036553378371152460720367217294732869484714620452047759773853439670581747456144183045733797015324150246508836696472277543982888340910416617592432052967464744801075607332640120185368778680728539592437438036716654518977002367431859860566825381682719249894519645779803793735011948104707673026567145929870783772152127867023832347519309034664506833990946548960905873864807654099099144866075945289401358211767484792788124339118328178698011556619163842990121288270847293080304402977272016188345861952180833023988879971801244790877691489792093680246179230781379314326055006481085093964022074491487489136990860725088773075259568671292118651357818226083818639996645577003509632970193313844896444967560243026218589032993723884640436616813867372153108717028796447879228336193452075149020088409250118573638088248977343389704263553576153240303622277058216840955888498603905269231165578532624896071011940897570002577741212407807813538251916083845539046554850151165789263567043707654683570455105295568086658730053166775799018079117420525270364758046317244593906495658978763935713745764183742184527262430287161896149745540312830032516596489727829063831527832185826135267375618310550840374169125883122272363204928498895075324679460546499526773691847315890535178420303420483779640799183013622895653474433982554592316995108839559316522605185021990279681028793388552372738840503379058310863567053163610283762965910713879396885142612695134297674974319744805416070593169929705326441298841077408701488962205790462003175955218306654016007327417986843024137391262885460648514734745980979783040684864899289799903144265488201719941103354934257675805990971762246023166770772471219048588274286234264836974921812384005209692450864375546414082324727926951810594767906674291836334543260647947157318844985567966915557195272521341430400064817539032504120023557263170636045110578909538518598389701419521223230626130603076729616052024547379046760150395532494206069380476824900474065060487585411636820169239348290270985856056957705292716002770472204958740458993437554706742315134149864837109269444209310077694328481360040232147923068509328585452703161900336570220878547437598349610917876340066051150410675241908293965406463513221161321962764887318540150488346784112548285270552794133774809675675962006081604690996201512779204887736434539622770329596066118914373585709173613719170701408951245420784965051664622318228694815963112262529628767037837810420372727436530706310249029883414926713828816827556303939794090963665758638975508430312709954814136213599096000367245021667626970637985446408595492228578969371981171646994932691531286262538942628734348169909477295932994128123707773807151184831740788225604665901519823312922069203702455749765519327906330685668827537157692367171997555193237488554780285163771963367257902516878439291326508316409585326912607454117700723072812718216100231862658511432059343379836749264822527988691428909830642865519066635110332314619742111154495068842127562935681853134761332908588508041189468545334991117955256813487320562952942924739977420028191202614985331017270173200523447052203128641460559223699027534604314320240929697552826254361951503075891137389727429601275946489196416625186405550017377438667031678293635363450393276788619894950193928809247019388755972353842535887224170783883738773837131218901507744594621759583089406665755193485468463081649491877945442813901926987010348537720730497945930865491802284562905777614136835055709444836094916717792065188491855327445747929419460239903233417987542932623061784705390595586422830735888744109800012018476568367125215072037956667983057006733174427289120351651026489666392889582097383968047341064554340175010457887154336850609161065163020762931672738168125525504345029409970652781763141627281209083007086925586854469179427438996447113402985278117409198781200103789886879297117968427208645535727738029580468905597875031861776684603832882700769182821036780326616866948864695653952948967928001808008879972713413891550504658155758197033366151800543418986239231681290896670485718787180227102417395839793080611796903798636090704283813511071307950158619407413334688658446177125882301805890328644773168973366674661477709684146998819243693480634532612616894679064198807913254569160459493780003599256931631187163638557207321713311371677311437602365450992480238506830141404033482505428984293497376666497220318045237611821715782284618652769618040076494709070078386709646090343103699814005404250001545055522775780710457820115032948338500459642229716070745344838206935628976744142784450621502426030585475742927264739775973580556622521983537136647918223456168801522385578898806211785271961715298362581550431249292736991461269063200180031619282819647067451623208200222285959504593918172547946973731273832206913414228091569395142192973107245719698289208668424390491935608228525096440101323300477335509549001906075780326232713200425117760970820558253241499833520563153605847355052537559692838735583358295638279720047106760056587014974324073183659832163063097071612464549459230106348406662770497966512707183796049052775217299000825399249925122211504544399032701363601952454069709893576642150983930110053289294333329041605813128773824032995148811768526163518559088176383150737509756924501466402338179544703302447331904947793093931432180665892056941015233413077749030510245722413224119083876469836293984639145319978298209235680977662020384717441115977007679541986445184078216101226176229026973725322858328644687505648690208052001674696969935317225701542693699187173835410004443677293903487481930057014379765583371716638431387667124565262375511480799726747645857293102269070083854449813643579124952357743984702101077262879597788330506886185712873819830188113713691757327115660627447689700111373336416566876160523323518518623906654775098665705243447133223607754405526377080338255509023402679148498006736878856437347040607438755751045014511928095646987468369490783973602056183691409966824372426604558000147842044481905556619484053941533992967444823187891978963777334481671876792674911591647976333288557054876008981918802345373836455969144028205770545062094608898969120762859840011854917079803071637640793538245783883645934195053931551162430698479998535871596577423428770302703967196465474149027034580443053750838053258397328787347231708392977700441193352223852935904626593365176430182426390421639693803069027711817670515403260838678376678741256727170786850245144988939146318667765847718474358364818888523537979201946950586814253813009218248823679409433578362273201196934430470708444097425604216715131881407098011058722314538825530886768666108605498331224700251330023518131922652145058518490878009688693834811922952969129678045199938059345244909780690850486075623461696918387937783424242997243755683180471900147216943159796854526319504979673932101523128525399564275675651181462777409635863296899433618209595047135437500790584384890268995410287071037695015635762324037210993104021726036830817195281876905130198828801775935220915049149642899971725611804330738647485324699354590418482642224195236570995730242560142764294879963117780872532691584428350167727930853264582192739627806263535015906097215679155289172507864069347379870250704348021252766325150697118026619842862579075374494854029484427859039080855838527593397466161397573660102977875098905999313945038031000608384232980144415949031224379930457949718517124347554013258320785174926492115915249826576766716644382519748854425893581794817123742325572104205275649132490211983480184867212525321186752846029090049356770161870825686588813857830220460224829936498993435937790416822049768420792817511431140184485239024590406492066744465127351734925195986476069075351809735454554810913214853165279113330728625475905856713795616411485790479173294537466681305504667575617370312149053544503740508454639244671905315976436840415824876956298584260619307667269518331482453413798117216343040345299059018553882615801234913585029279407198210399142979081774344129119671874990388755658032035932138671006091560022048646742330781022367060327111580615231304403556105211441345823429046933283618569123260407214481559107658836106907769224757179790518481242156791752571818504346138891510791774778898066960106242790430124594639787975595447354424917463017204390171871173123919106736864261290672264236224180626993066019718769252444243451722362860796090122017318639668994143898788932156916617550173673935714206901150490158227519370718020419770317217525207904195705574372213592266677338569542800271900596309386423603220179771281929248939939976090217931817324656875765649781821237703356764109639156965078750848722049702453014764577688442995199445453100100199754647697867573048057359900712444030166663890618421819033833479649640917773182236318410910519033938444262908587958938300071062138564848333507833188992551414262428509511223722433652433385107731449709144956711436196586768505084356136127844455752335468972811164356024433014405267364295878915268730226403584578122560192429098979729132899179455738677399172513061892916782065833288391061198246821301429361911464338802200686029566499956224692020924771591626551690824826466959322990927397260924772670576122306366858444440405917676230100708541918512987823410837024636045024321759990378906273413443336083855214068583510695512660329524363319739207502920642188261483716676775730701269058814071758623468209831317648914885169172591598450376694625171751857660013717740537908620999128706751619418028394207103783696509256281073852301179027084441215236923186927162725579827006189676350899749691903530733322259895050010875183908608211322920018620657265527842756668701576367513169092350280607520033348366371721434977185460286271919234704922397261463159877490609619461355853401519629302213663063451067458455278733261534654893937412076193030524169833382642147319354773305501276211347742407811164005839189916584246828370485349253156219824339613684570912370285812927437831268076998200933314949116152187739710300196041242308751818551758975707255099680155301698974225057137604119732993191205545804423764041720981555180946289708022632605218977793804917775136688333469885210705434445371964829681543597034106939572815824465450823858910230100239403988307178001781487220720100386565450469942395292197616066239062734581763240891321817292711373860266556534850671915396099757607939017201230796135092052440213725297227180785091135331326121897528963357177775273217139085658365066986492251268938778626928812298431357008508869043908383025306410895768044204274412625894867930800826929021182732439459303882224938770380391686118956497315810534587530506726908614350566314260511842405274242772940310602992678591870755746765324726678908956840401724288174853934778285535901053621941315557982564752418587411100917476637039461850385375604908504807786873605720969678424718957266861169008664530483807173805050740733881673185489719326360146930993065347777720642125797321259189927631477868478850674416823817646560037175344571277656502415657008644372164826482183686712121514614511531596425412469664996686770131125036547828302187649365611369046395797629073615827238952825585916067777206858159193763518990967952993080333682609298762250754741050857638881197763920253488699992658609471402139507490234519666142867996380244119345109209202191540766387855714492766959274076223924833749817944354212262288871261537306290804618518586439884752109468987292383183150958823999711485390276751805703518998042001704287204510580595581538750333772879766677942224975252760751853170114222373148306320832836073736055209631393906439809201895636461039566774647366733910947887393255524587282825773022049494769331326953720013322208576499433542419232290680280257371971388535752179788986249966469224389873478005416253070148737322732549607775832494082487152993798824595904252136930369540123455985270949157110967516720954863725588866451736098756309225984780576360330236184024115108201718172851940023036986188345491742046606136147007070170713338862117892782840411187601737078626948648596461413817560959165690249275304193979747108392864670132709174345722712087641949964353605123152332435851999680513271593908519808934305569895669374947881991091794092001036025698829333854392018720796345602105090656649026288274570017767215450336672912838516066085471299182072464643089248903762579362590696362639554727422395935655306057370085248566756684441743778553783184497310677328183433520516120122686900353994165404761335401418552389716237966906349666583391281942385586569416935429586956254101588214102446413673162820934353114045636527831972868376679581932668714459906571393259841084268120827697445509438955388290551311712025260959416446332990827778335799119020016892057634801088428996279342615160848171490295531070277253511978632931101087236403294271786807486333803421762314977210298725425458294719025139003392536006749172423273223719637073442069440679492506970085115350896389290172299271645076897950562402470836076591352023041759491093690931065742549178592514841064039600706344543067347861565732157750239352085160781248584148405626727105318874259092399239565476149586738804540934785467778228516784435016229620743795455855195119188890297637674414649686880043884249431519548018143712306903018720330927106130859974551923934430133141917965373938069652402256691245836658559169753962586549180534840633380953303459426551812232665009465476157450890262037879690226214748662323012369082192926976027310103190086667071487471514378438043509767421864233184366708499968855453778773830111397345342767720964038885261799584083185393172160187358456243438579655492859365620966919875551807944163355846092922842073380352267734816615639790720555375872063091320424942772957270054291583973139340606248917708243916044208486822500882487532938817572888582987489190980340107672995730119703278575045945117037339142934231662846806842649853282405427681614231286002651660203356194033606683026541640424088646349238467931085816573732896600220488241086260760013156203333397963935663483799179559745507467150052923831218648797461514587650660414577198290814923156357686358594631672254443032466259246592369388663342141855840494356057802381807172943508690208622079754398818688206345787686891176638740045093107738789119659094523794412275742592095666415539033940424300270219911474868564339542371369230289115017684200532250985720893817772794787021885172597097246396450263893171087584737884623898666887265193838495877879289406530938611479225323131548182618610592342739528942859299106777244730461306997815401419437889314010343048099687386166488521185506670547391268558234459817921363901625314431115541084875771002317018623810971829721822384298908369211684630627553024098209845341466004169216977304833281287419462423412481263954457390555254055789895441562752454898565266208690354559854565096582849997393296646989814301730636893036083776542415183725779599373203869253287910708900763045598108152919076498333666902333932229730556629577435863783822777109644019041044097268076494006621915005738973246829833044244094696393142011079993108274962226285745330032720949809565652095693764145885147562870748192039591654438912225725633133766143161901975056937470141629102512446015404301838173636430427873964604160759928855657792665920163762851139985756052048892893354947240938086639111932362960921650788103759307930022316199414175998847862906876568046031563678113444386224616341638531318082525684886600144067836929278764188397380928776477356313207510440939609420314033063867204212658824865107963327036250327112077835625129629777802861062001307467489898482909066434223764772654106414146292817548255564260062742450864830322087313763599912290055242887853402518779055472866912420581257986461559494395153665692352167996898956903356612879741515629897502620190237155464925320350216926348811761739151472073372094913208373664112676530687298852202369337491645654857921573296437771674981210476565641068195031763638200835000293886068968321015864485185918552722729207131319661632826117916821943044989354995674751582533307425527015424287396921231299509520066147632013693014956102162001684540714063309327019730008777347702320093773285656500795321637687147410580595936271093510913148459420799385466606935815862480577922943181649712296489506294839977437291161544618801117078767511956276926279433632735218450928638553123018024447411876358538100515933149697174502287790412056284324360308571949728937565391759543484579557867948703331539591613019102791122142334090862575855794669787277478346976269778405197817412840722609545345561235153048532154467156382306367866206758209278694235487454700313779541927816660388736723998786297021979334744557726964756971977531560181559940056900319129689824053978344385144687310257129010619266028591071722738378537023934827208234572389749917939996184130135612585332752897269284029575859600329845909332111244094692769098919837409443433832760497579552463806307549965313377431975188696894747893035264986233226404590735555687285583528171270596006697758041826510977504703609157468550369223145442156937254330886311751004036709288144647806432454096190867653604450472660897770284108286537812583667364825696693042136439136518237190024117968590419489362257070942990571165260793804804725739483440414828199493868428812319366702642222001440243362717167869780058059930699652560150325570219082878058386477740884352761607439047948048132401454801952513460359278469029844796001086213499633824252965226505277648639855127906631172528079065632678504473890232121009354023922605083265692573395105305199083436231329296829004569978720195079455099166599793949743962139071848955374169685580864873701415589789378040378569445741870256612956166661092338906406874606250358208923088336520873415726895224083219741083159481214295238114845378092943215215550955656656586235463083229147583633102703456006071437500987743372145590473067580508064381810278971325504113308513519120955190815819340524017337862411823946467127407597996716222375840946817232520264145045977448290283996974230346403381057023015368597257381858103176183682529350542102438385574124584996681460375904418558904075823533384598293457252125053631574797594182008977510585902351422673168327684780261710303470663675669288260778926282184043762077213167220944834774763276402260485497143978747957961350186166163703751941082940584548252604323396988643636013946662190042675443380240206685432765571966487086430674282614935866922570376924748231033150126982060257384389169131352455492027930468962131406793523228619965304608182555782007819958353964791646992112548315589926419050282897404542261792348995842268595433929444773193594124599967046176347490781055521153913593824324900423676638785580242259034427444927611000258793053922910459120519626932470319468912177507142452890097022185105086248519455310903251023561886971795855949987049867165787121901678494087321763220424915685820841271651262331105047172333779497978405526778010245296306011863352791055762108121468720298774066956775558886743244679423580502298845723309500641945420628377850238685565318245025859031413174858208737446016591580237237912517518453835885731135485089623519515016228608328704796079371076942761808013426239363467133601074174670783410317148684953726964396118664813140006773231300810406797510379935927068570012825824242219929988615170950366067960099609379738935937885761532538669010826029004771664871031424607408579839491025602456055569781598712962506805686054986351815709144152848469917045112054701862450672442610024806300688906928868264204328895583539628957942751744051310781349144774089518034620017506839866396314381270807368132884062414050787535994487315996499172392027680229830106602022017768391388775564407002234850819000786448696618659594614967139493023473977668846432514028144377040763514933055822917568321862344312858717556995215085452937727535786126459716596396992538603185754690479140222936553067846105719362086251650127627363453095735200100497882908171479808317918937547007440502082772584030844512869660118428737363434706503227766557423437290027653077354774636694251063938204104097791049526605170317414872644769784674502237995236688049515513123963608721517083395499152159696959838387076416648593315212598565509346164442989610886411488386266697097554240769478475278503782360219235828150185378122809808996203708652504078701842667920999722461149512474355522106286490718206463979514151337571189946067684795321709962559042923699878798463642474666260549399075298963772155630688181128210064689589701992664040393739182288700381015000266924958353437527835041499275278297399084582744710480516207626120139591363530338601443556408502972371653600639943156695128192813654646952886886833479120147425161213394410728232975160467687473115236554817364598130243646256718133077060534935280852786191601479467661453733656844977895407437037823924150254940105119852121361583876263044236066510090430845120943659123686171071241472372759217870879700879310425674753063492439683894137435569443117124974982872252580974301266110846166701663342261834988596683509417663064234381873220821521778597229247415040110279905416586051511267987644763929309839913620314351754403637486663322607932172295672714331630149344218635441144867830135557902993267687760953169648263154393747357568066026557361975420175859871802196556497689418501129939848187270331669411250249769274070118116194536573062732176236458463126840115677578901087386077339117116406302628231960975090938667108933819067670601747667668739146681132334715246639660891723091965473111116140591936266432119923673224375745258366667601500270441781060186721670186911700769192803152548595687562556864549670341864399807090544052010894208252558403203106386016234689765184589319647905323564906661227940911281713889782246794284059776129106384849137759930075269236093212739002869182014832908960289256261609633576445030681222786270336995136719792011268882732876158418143783132849188616048563102198650527405604186148026488322273015157610442079475247015497717998603593827519269148190563248561860654477300684373526756378080631179601394429533549402582143586520435947721218609858274878433573383409570918468616739784941330141924032876695863200568733450133961026440788242747957053770299726409957971932716114104675730755426764420606551365346972495141780745032877147008102013793395356083820489658787995725018358373714843878800408672750746166354864514404614760064419754479551198529391264750888315925189848588737013931972118104559752950285777674950998092510122692188088902342334272252933013080870403237624166447578673123233688395677475098657173051436103636985808071316580277574886547500682121836612129154605300502002818694192847952438423080528808080032693586196658653562747804963912762800915077218063407597965833668272017773430619396431972950617730231764242461288787141702035504967112095369964542772253067878675666505659704714363613902195538958733391325701847047804277427268665006860761993770304299941749263920034501006602729127228880928143497782824235828656999856973529250249238951443527313054463431975833510180162160530027673579331601944718075813304853777241454363963326284001316637259677488521258517173460230881837618705258910902056399622059069904934441945863966974587255347437728052594766098230240696005052892180336112550433612305943202022366562786984557367033737392678397787901374673884828157880699841488773238265948486496452565487781550350451288991920381959561233987081930782471303527047504349532093448805425555334308970485439142794795771496024567938633597852514894602455729106122552287411102809849592399727599228140055125484293667209408395664971594808180524286336428428367704223569559764264057160846258052479772822615974812625869572486646916424629522139920093643985871135259069607446128529587335306040569273988627889807755314724871300155563286892872205584978272664520330105645644176344618837733849546521032552515072308569929409059133876540371031924939423110416167464717246509030255701889298428213838230388827859986207811149072928269086612554841212171726470690006310136389641594983058648342747194640412874249510280782587250803393283996527005291760326987467195966235515477559279054594130217816327307309368079088398500030185243250112056068719773327274180869862978718339853334997983611763246259182652876330787935544653870359866370557511773658252917319810693841012165816841774578869858452153202766750248264086672167912980700851060937716636697689230799335383476847834869451900923368966748865841742288553659829952185002252916023235366412573351912614499052758512786294598694284247827322392351481595185789401113092533123321203495814279120250456070717997785935506596540165455195694346738242387388588999355303227020068337697900527561863570361895311699427451281094980934125673677978117886209290864224946837104909171858349736845456091286547725344040424685737442943940125607718213799088888285580223621544415694824396931523691158960771546294142477490582525927409501042850149466261701948231609426130829490716021777283656989548831140323752584346791251189967454559887569648517999379124094895923376220643532114879995469008344149330737642411493455420945321982262193649771070010651534561986091058530364773521202094277430129587414396597214983089596610449327627990201186568036690332430040001886946814015271275596714441407635559494748233983440308825246923369428839681348338328253277684808559642516781860559684850175940448488557073938626844170764026214598664030452521171575271459939847835117941641554440583063285683369885160892845409463069481094605887006980935642072045850509892240240188213487874931776356039186836911105692452137724796653625821204447593253554617474053571356440730209730050602563535424175189806981467932330537013803116683298890599732442307856046009987369311306815589740209711022543350286389443211997539194529888668526204216118396880545647354004255052481246915193528661884058196573652229696259041646431085269684231743704494003895989731247418140630063816470050673967621621339345894086825352180364691840839256946252660338970697201011195306293781610208358649549856085787335170266304884846212352045110547494682946589284277433664241845678039918820524109564836428805507455318420497506017778774691583342672826272764642379999148633718784824362669880001279771511655309248105687923618489497792568832662679381032465352993360011588468114648854744585488831585878098437516558850801810765017249487679377153574395479074510968965408239554819799679897918112787992875816731110583794659737831482656270807532638850369570952488775071446603960993628573894027477564611275586201827903406252646691981070654157387347806535167315157625643327245174005572164565632048315676641257622311709348522603866068957710253536490232756509245371557765864641712108402193608593072952806226754142661257107947768874962965481697241058029816496856946228186053989732157702329655688055791168245241713036705510965991497611038122326652336803213510549308724405618620644153573251503547206494687606476402597695291001061149890710262404931872075863762629546244940358323670157857580876855027248037524945103886810717512460786722857476295948239046453630521776206271104389598703212295774021612460316879578439017526830272145589072690658189002494897906391242601317009553521107569338814645291680752643964800295892009210236348824788323649844478018355713066467159162807558039894120362259198272346008963586560029854979148695502810561225832833775546809655710370918526407510191628453934003468289160507772280586136078443022663341370296402459042195469921562645205072023451683438022649072759155573936499088458502904911997544313075279782241805019987368185436332947862990833086494579947143510134640425916784439519074936904157546284249032606468509398756956013655848670318261139941627837557014222854815047345230583566484288756460670464634011516933332785925284666412474620010185295025319673640145311285835708165536852497594820462346473022284667059714084353245062736948915027900609022389015740347835344495181359630523139574934441667610701876766813829894135316309207907104607200867090513299109704236803339294192049909021552294152659570461718787764284755131577601746518622634924726642534921130282501062314721014993510250656765811178521849001115101427900657076792475523984514085040875749903409541507426225737927646958101474577512341245733270898216283517265677036127886922273610559957515947891333198284502309684210664806790668920332441206438697448968475830277601461389098293679291088367393735040271582841273850656419875644806545957727301089255327808139801952522728542924879776409550993983958300124441410456374847058270991520963418328927760575996362692521045805885172297931374893678042993122521050053339815307647465412499085857478413507055010143543856842146719803060152574341386455097248082861725376102505263219442310530824942765596358998877781929943206488509383636322530036110929982155588657729336278020445892485754172743823420683979057889186941874098130861537238464376911231676979757054265938069242337423153474911319996893954710264327777088701308197491250114009263413621465582436685663731169415249267422895626320250092923128026145397310708410836781410934438804184943066294476070026337107550513317085857117067075433844618981376072775097812465203410155449455558948839011522652645324131505122426575431792041853044720321525555274225789923140071439920920937527950680150018974202871515132178220239771128185012247251228351909158644986026186508276760059297923445413517548283549814456540187783368921445878859441839177158136576634532550623604192004923870229663809672135128548340696504878052092536436369090285766327724663020023324812286187357001989902722400893712449964916474761419161062015866865736921607896715643067591764094893718976848861490067323595077049982556507257143633094841203592976789805747411546708210265002668817386422315444712842875333951888042845649720966777622228664778499661507836466921271099749724518838175572728393593117706706255416322420451628635741079207133172624948322691644989526463686304032258238000753195463226028810501757011678856723597945039283062541861646069897449860413744418427215268745976227344649681794062095659391674317184076901530503079365268101643134623700900306325033161098937500676422790305731440470874203844998668126942148129898308818919026316405888774691483494831460743638473109627049067594215833931408782291850056033094997311373622239456242643815867007144290486706913373421790069599133035674066735695521728924375920739705955221680911716774348834745082255909255057929783192666739876853882389029094832158102374771812528193363267825367648719055980566090869988856389713680343971819505067142600643743393386259365811644493022812531758898650873631570627036264851469449955643455045916383431503131329273618595981199567625352826759367990729665825050516467010452446504125846600833592976731786109989572681025228150642669616631886902349289726789309581605034221812707904131822648599669318850755735059026177969687234195615988908265498319144690344247808621695106909761487036839299038972984858128824263765549433480752395922798234108541623007750900263918343994839348420205801932531699735430043212332221019440914914595112610106865054034079299675336005395470694489876521454501182977821839953257725279272684459186228105594310614510265872427351707945887122784063580100774976609592122909693164663201895964173424794461252201917354856307112343126041013070634317592342842331172031773229435594610523738706352795351326409946585029620169773670927345752410643703926420474822371039773468017813332118977595710603278693159591696508744601169206670167093938499428282463094846433009663704152544678530340020218257660781980548889808661885597901245611779119726804485088071963552092836358738938892402762515366782980746056222486838934071388898296321286017631482389618434997970466604421343697113167505788204183139727043982480569000280051945210325796197284754714044702831176075947375532522730698853944992290628523634984436772999144504784582419649803680473132446608078246286761332187785072574162724519212760020539099426236004557130617372486895115169835517672882437844249634545706683992169220255576211017887532879425833567802993708266908530431338490694134899255951561819392519217035864176201980659722851020154317013948207114759694375841656237311305560530566975744447061482699367393482029654136898632097331847342827473817056207664927938675933586937504310412426925967185262214517930112478276095138986996164994186654405720042527054645140672300810318817654246701985513546101851431530921458690959259123361284983849408398524318325854973488901326562631280623687018171061909341492975963815001841762793399264098685829882730119398009472274463561850425146551852579502720278488000447742724515923326795656799258519994181270068293958393126417772057585590445785629346394154624028325877638875985887137800214581832953245180047068962885291454114184138171909846848088209323221084943525531425196915665179956270122631255325581095792197260528665755850532575416840048485353281544684960347489767755209441151516391628668677841566522710645236742435813293655699499395848178799121024656827956419261576910869057200273304264431360937524595285206258572295882053235508326266943173457830783828796660539584150184997972158984578297784242320329200295698881041650747397958825645381989411312256853786219110831970916833649615094086787641473286844059153870987449137952208331014206156863412720046647067140645615380548432768281409379984348946071128824810207064425146070413101164682289588332799684316860841028505674251325653872461339425259953651720214363893662654245135166394513617628663435251572266304493738494952942612696758344175375101921474930371788951009215322531131636355033134809512165475169395157867610460914593107164452707207845199766418326298182411007749231435492188926406799418689591520727960253867328675206168036429234286054281905162076557733547226703855513380507039805177641499866337755827120312292443272556637707023682075347936670348606794417445275111323253386424723687303197616413572305192406547541010237297085141746944165380152140028536899830250695331789422456648730337559095544986145222960880832749822286748534758132912793095312724095718171921889309117945719922769223798245443715378851841377271021904390099698409123367182028649050364830469823882288779890337097103991475466509068218542214322928323961078639750295707432798484631377061501929817093046601208959123490610591705500520579034798157292783064729657469239062803156732329390881194243246696303161331643079657861913180269127551102354052060977836588397452886764349496142728235502867060620358286279495643169930601344673343554586481268288629591633759088381943674678115505438565550082632806231471463436275689884657715259624172964018631975125612029614744570229036693790226184383202177322934195391320872813633860086633037110164451496235800879519634900674000137735474514699169143300255200373528631071019686548391809455028318491753807616081694184576681667960875167961577650224286980132993175293976060682785562186717300287341336940853710039094754238281869254279111832635488980091840934797323661469115188739019000404235955708824865658809391256489485778327264778846056993132533018998187329724874208436747978260355426633326079823201627008676579849220810109881780280741711469994820858251572696905862481577583450487810463155155812604266109303224797391541749369324473221751542497741752921479652045742083784751535221257294152290011651747875010746425755283877345611714240015749451896974015421683191331990378675772168019732308051614486978426731441759431084873794294517016492031108242741454775687097844149578996948208561933439706316225953453647247501643500342208071083467037046181519852395916398827790552835452786114326224963816319354550399944350344568845532807392418149093106971940260662591872639591908449703211224954944056542467108463710492076890753844522827527062929524328202468965164327339297513328303363240119743751453097008671652538362933906805520340671401627200825396446313332483828362638398171441151500384439048312584649089323233982711611039643399350923479062942557582273871259510720102988573118159023363485667006499595664041035355776059205015155036159823072330367533655823272795240330908233109474059574297645884776688365705108700948457135016488313458831072751990942990941614233219411683306025866757041570576076742992456314801727471067820535954605996622624286287388680269907347966150789369862748872399437937314961468421964019072746655013853728353879794530120345723278722812589200681480289261727071046807014091105935438366356305453161495470823319459641626984762838316715188324355376964074984331996866851143325762633624451556686573659807392692636965684393404869275389590911535599930802091730518096197427874149131352954911663084768357285891971858068140883313009440371490243595574648178381021044938997652996086365314878394088056834969183653383728136380705531822099097102158227620894318400757318150931547852016811286862863691476497732514759350886155471369157711208084238434969445460124578958730152241617638487719657393739835563199060029612614358415773929508185420004374334920461708956393979524977270938141451961307222087614113183422461591708214562045836325749590009848750360108254385750283448089334533960882655836731599154460390534537112100095602598920208134122678735971249891553123940389719202548786076535019671591150454682032787581162399592331909372881540262041173418982589852280000910261201355610435117130273142290602590384889880832588700891344622412398479126150284379592335190038656146710903084972685177352550929274553234413469606204866674425838138583901192066781335719454495174793942449293884237132653114708039139608309948875126206340634523609336070615227272144720676054549753830541803013133023780495444942634075704979268002810087832944613489070578897593642241048714418512994264887622647131284331670406442349145593849791630688325254367140336968910469464891298346115908576779550123287338537674905287941424114735768469203887173399785229779421817179149017768087633002942230389697623245193679737410585348073601108630249592863076935760130753519785800986005378078379570254516021430284449994395030134386233866059633865351499406811499967301776180788214113633695529500768841065478730159146050848730000878759272954646704799533351513890190219572544833586530690234529018166473407156511688975774391340936292319023857428506750897984191252238480217981581484189436022329362868043331664893167797433269729876440075819422090945017260203197085816997704951757441336691448292125956501033614494702251322747281473424967369856040878132913443684742563688867320080393921913528481865750782827479039208917986298150573353363796807396936361594191477271383059274616283614537632766889619272022230578888159108513406197520045338345077301341268061152358288661526763857022780624526025269494590382395289513489258488817686381524433300563578367004766379010667328422477099430708644035820020104401611763601320430143027191251058771809974285593313989665401231104239524029207565228431350414345872175856634169922317346534591824999340363996108294072265031329346132768165641083998955813391960248417888937455826336237879392054743213243130158095453625296256409969285599876361072150055580339167328580596075045342643717441939290084663670930454536352129810649309591259329435371033887025426556813540524696279193341192291999382652637118602643590926667615874906874414463943580002582118377664405789208206081158523667889652054738017660006457572210906372308330090963858357649412195899684828288556544685065664430325293358111787702463781288360366608975767073053885860919690559564216138659570429296235422722702106513339621703365177306491047097433535717928533437491483738889677093959662598908507835721571388604690182865134961528173830359966410742500152013310848708267006954438508975932146969263180536513501692164044749034954030934860468269534832537889424261244344186711059396444501634155968722311471395126042474269388967224621040554592717080171933970387928659434351071209311739800298342493991257577144787606383849142658583996414219982412244902631907084933329536353177446995425182851380531098869460092226313571190705052001324522494167903630042283874876915650106945669087675124131553042491466561371879175903832785445501783414352248069781958193213995203613726893519584592039168840961991494735369385097770144507273913593161689255167425459748913121878580199434959750143825607031266961261624913207065722717828485757527366507028205801484368681516220628104739442070980314769925698731402628367772662864982845489637507737620771530008926031555670227559927601346960178035519219526802462677161930706572399320079893611811007246848809198564544057683333673023716419123877926699723824542211765223006286016582352744874914577917137895717183233312595054699048336389277929348328800076744692870824903526869360496068984979128394992242877145891733789788648549084611199470206030662878367610695594111907808858692981529944361152168918369199405183361128816165361301064419653519179563418669257311790662171367078303670506678236903363636083099572501716740631023646528173023640726161937118828472516180278834479836305287314199330203725708045140575844417123223579676961528037356005285778540741132778226436702257994369554898599460879163365875785625532859482905119485837994273574443856203465621522261420578542238519884578398213747570257761704816972706813385720554830594387345349736839129349128251809405079144680986311358632620287832808854248905168599435279542997719092948190995965958255703374162272318423285939361210677307880831652442438166067599748567223236707305149343137420197034546587704089571580793044477779588355347050250609971716509494269640636521644872164010364352902236331374177560860408485800928508315819862488047902251735318805589481730673815714307454780965512359974596201268097188154985994844447837961874912882602230845757685211708770159418395085641248119852928540616508099771408178001853131490352033414639026866242301526781927393515427740884918534112502437399894374756377601406231628875838930283178303082641322799769432866176276783920173331986535871673850680560190143582711810069753175480190120122979295024225439886442810313186790354836765993618778386932915142948263859761672785317677606960248059302141278020026759065090247629113513489260752492788250641246684329327458600936351467492399202746134471601761513861863491517522227667767413652832799558194929698755760698645585842197530915159385607071879816477998084958761182947331684470564914945798014293900601135051544971358971108578412459222224998201652168625697245938901274458418486264143100564783990416667990880103068043771796149669192272550183086734566587333574323217487910244764103248600150813076433077030129702727449078125892827309992321127477691133923639011205799036316794034844019429815730382089796351095584843739760725288521511246159845084110609223459401389424919745159822924669998672703386218163715907585742649654170863747315177974888752779912501219147790939921004083366927342865460478714732152220903105495184057230989545913470491556728704537957234998869541861492043179302537664245233605935842380709016226332156155822597710059122212576868375372504463690789301665363201196477092461409100542976883177609531184939785735910602716808067674357837390417037714195968942353127391716419424127065915559909890219883509636132830005957493463176303000394270744762052949806920940293062277588014160430749961259415561674698582380936925659833391568962993827410564460212775346615999493491321293174799365246771494916032926478434410735647369465742000008542385847016463756178639372532323586740727175563431658406495416867430044993611404733917372173013254301475455093142976361170875775026476167129785833644881393044811647734124701036084026656194708888710630534745184799971058028005125646664687400688476768057738211716034151159251482696271874356336021989730544675479766216003015750835871254707119056847206937082827648699986670343475306322565076518325793900546393959055201276831101633138645338824194955721744233411263751664556873483003168191743942397390588448723450804877014088496866653903891557030627337639978329447878006975984420563051867822317352638207978387016763975082592971522732805120456778275209980842216306628814168898682987887091451883989698463233442548182462517583871974298680618015999874061656940424142536188088698943388775429148156720781640127453219157855130874587407919438270635619550414212941961383888712988093930061231621804620552371481896804199011989578415613163727172543535469886072335649679309192788386055674865472978929002666504690361374573724503503098579716120796301870496556208571775770294702829447034875497004554375856916318643110401230844719627073896335001223543016739777763793065574117369244917345458453889543753958169904247890984234412713850075903483850432067039937185033551691390754236033658844015987463974794660103907240222032976779346660006868540472908896095179483832740129691155036001660309003509921315963130468072899293382774685450082341853855354181689663205736987968722812153164282339867279896459314517150709741029657897719682846206159755204600202055833524702685811980613108439396016199516391874549059557760428786930843391861717505855456241344900131571740443126801952920146725516480098232237091946867432256721845229865409008220175379718040402838987075159898416807200883066551180857161595506002278760903120757045256992836205284008208225015536503790608724733114578598344748104772582933410488531909422508082655429750682306191265903971674740989817318052188792631275463485558362979954704582276307448375146495994298644748097001768355973696877498048414900313778868923890154779723841509182582928166928551685778839581103654603024851328225277321489811137720699225024216780760202984664401939719358683728154527827682710193171483808808209435121136592529105234744267382737095894923140769910310791907628118666658252214627205857673701555637560389859366898418579367148813544669081054250459481768320607601560673765468237734902356136744461915837844003380978795204902627888577377226915378001978174334560398745523938737723745998590640933458473852233318723464895432166025504483417156148485695998435013086780704786705406749763082228338345285758798911137624878446725811209343100750377934337424493881531546598700647277892678453513650568323073221841945861508689149976909226624694679604406159271431958488345043285816070708689679459363236590297629785868873864564450672779085142415264510161528493358798050522422510779970270596758952120621953470285484434797870987048499139193492175221711037785829690946481360927408896246949648152760658395467816423259907381039885912215756678831879835519096224027397108903232571254976306735171019125645239991294680699799644202838386958468723261378945765227402567645702980498875644667567783556804329398361291525212852916937324267275656210628063718924198864570085717906030945703670884045155283246117427970283221828266425397382028347424704648118901690801573619118383854006069500513997415780601955965516429963419831372985521304368442486885729605066916707612608809067413045871017076957158804203097078887866719784696280333577225443819280106949758406791235051715990432763052022243236731050155188734583865415942207295459358216104400982197473383200135369600308478862322932618851196632988005981944684823389051712258219998066886077562217470176687821997455410616962709614461924717723487623888621999527034023235599694141909055132201277508711950826639298633797305282394115483079172612908280198273742753005520872025378775957226358858283609712411091049313224692882407404361012616402311473292868876352964124695271884213871852038050914164136522299423250226741409149830187744720014160591815209579697920396304194716505795238288692081928152769063832766208626389892375872450441719400501935422123852583918655625698586225154842572485592398786157389504902109066132517105021291100124410493792546771506821722752987199833298097271767261810737078457139414181513074602388497292075480616788426208391972410418170218499557879772942385264610814869313742608368445563594982739762371044586148616039415508853297330089450253910497134176275064372410453185016261634817532398651472369433081043294664903304769206398098104401019822626989639455990891386076391863169539381447211011640524571781161244684565593758451676125205806910739021347380112995740290980697588814180867254239440391281738114727685764904955881383090412304149397254349772696585220086167584310919102980956008220436532341095266850533271560492490769927420225735555410408915485834964635800388146053633697379183803977431729816819286453217802921255956385363696196691012509786642207543415412194527921594725136204452971336992416155246500559147060306127558483879845004547533917024803944508980755523454505698142302071229869925321596521865125752884050684472859517165266694604329696698966227708698625962368795532431966510193417233894851754959194527684697470154043078099489069472262820249115827776313715434727626772271187177829718101279371263859349872277148955018374552560217492196507424463222958844055746759770397873035379393422994497021540021920524188198790321392307098580050742141479607332982573119099476927559261046146150299376295078288653964286214718999036868391708662729474187402198184629296076264037863024253940118193696495028058560302780614198375222621289907262990023018466803351690645500465072787919799196915894877388429022241222385652573234083598227096394326985100071216766431926135252442237029506236070667948978008207269245742149588006021912264794210608659899193234413791727706373094723788184953431339066006261449777513211328497633990665003918922843261269925643546191911275763589632059686153408652282257809773341663530224835721711245418297830542888463857132207189731848648884792680782049952674813568356984856519340814943701198830692208009532186761493035253619127403810451839567600392569533358913511478621438246991055927945738991120589213727339172263630001932112398800114342558098042625660814617055559281010435620625872554556954976040379484050410509086951206930450398489264638844659777435192878264402306374825761357644043145468775076850507357176505790563459169354349185517415945760410017782785117543618725867992824088119053469725456254355940405936955230458529072994080468668024154986555083841504551602163144714601049596204142972799407429159996738235824295854963120084675273707137511776028641044273428296887083683915767274780295055727903992668983966933002319875287426396127411629283358697960991705758956320980002260168548669859261695917059310608357313216648586149953164613463881239536488028333041634170642387257556958178156468331713601965650539746636468132246452860948101885506430630459599996818303009482083207160088627610467950651831091023043610553045250310948612303791575840840664529398381032529698442161779384209105795575175890130810090209356144967524606324976033883576610015811727160166118293870133250424584757406550590563812654786008451409878661570710105586201230960330087555746458804686969736894738411838234543797422862083596666477805779444537889170249200923948633585080719291871788019401273622212544762576461331425982900293179580222537706114545151582189734092232091549083359509402462360173226973506559006434507450698923098915113608411882605326600926614472483594230664358058863957475590768020042100240539160191541267779217279517346166809601788253592097708691450582587917431037362662061170378599934299548209575351046085459912388971710322687005380687614267852225584901762525248205011544111315642136129611121679179858307611353026024731576671902870611685481714803820291681624570227361012372614591846857160362826564072539299938060144962881463814626245839817208112395130348900755653947488381999918164701421251019543805756884324467922634218325369557594628750984200309997271672317298663223184767099902255170583018426963938360409029475319344558315715753751504549236601500921350540963021613901879609341057931274330262982303347201198318380188891096061469768134002505488106622529722248309531100562117441338868545326034513812091760575137331946212757820103568552695211938883313443558848787202397008662875979888654880252008839238013777879840740563587394511562447018246788829476823959627893997808202070581589404167752733191192785576352860511628618589912316624626291064104130244246087971334376557024764396453560959067466912471383108061346227567449153786594757324556015895076096417595130316756354435275158685383473889803712600838511430346812968277893567159390122657355429047961581338315780589199768163066065077595952104734629035598194842255732730078001558425278112467506118820702560712927340619114956537839488379103898864928574957225342011706045855994401773599915349979997454192657908044336537938582987925145135243428457879212973940679741273878099997345225013646798748533539475375997589020495168570048847100748452760623404544597559221548052117889830294893295140536093627831857541779903209504674703955197826487307649569833817917359216249822689075834160923327853603655022704273384400245364221484277917107120041077100104745328245010633452424053980159462843820268279479816804949996598132265066352879881311807867698984733746626146630698115914438498726815003319757131867910446711447980003330000034198728051784244842593471426898937027416261038273589301810669891396387717596003637712717673687924160164321340697208478825719889784261286883995650312615054986160826108394934602480086192381697779142324282653114633612903935669520195609087470195037432671059823566986064325480407247787410704427391342533795932777570857426922254186299047242894603356085404640701520512987040871228400073947398149924635967002836778319020756806125777961799013071293757052952733759362036227077652147550124408230576352943078972419203254824355821194761916900932119348109851326119522691169208887457994498635442808525224224634530081379090560296590648345239401258520967513920292726447160399609816570258297575182354740838001446624352941846310564596588070122093709318938793517593917713191712016488347658210546499880601954590534885480190011127280266502835234654102937559484847645792321173677330510144549488871541919886894602279240552298583044956856657869341532916659399298100810595197480618249259066621347412635559237065194338863269736631089689718636970409106785958924881988221135315704272640064120343381821899888706507353376689801271769634502667834472270000424104677930857700348035299501524552003346524219010637460602147731520142003335824263871282311078596626799624102840437737682259366007794831471398607537711720775754381621540679692609230900868537010071606079436910888888800122764844050468285164928733323183363081784529533995980329684975717251891971335167272219326403246808227537331820065452067055866287848620843038585500068438214105381367071830359633553846403538708795288137152326139107006690851966943325633670733278673496990982391047381379937958881954783895397709250492598798810227865283779944432261377091248951367092333765835756542130012681959823053297265812093303990736406950123454560171170501699815159334765980832905718584767694486750807199358778138129481249889272474128566027252761374196845137522032274428102439698786908381327325416929108292702293312308147558613808240205782756531044270992101704304131256921152954886234208899658786220053217152010064461387906077859496850433517995287597865462117523192520217633753547123813865428728646357013927682111146295803246201706174701569395334892133599041404363346409256873105300719497996868160976298754717197705855408170715659391586979528244506446268713720044584327556763086149370173641058342811572929690995104143312187536425630670343659776587954545525765896479310278661012465096298282371818093767628529984231915551967793109239322643816965991148973844064696101442688752894641674373131862157236191035927810713349177920616792266554286708695285931057985618625074855241417449645140212265441985658537058955349298545006662920215049980096154694697912411999683486251543321812543881344311264934125754162927468687190067256803793813323168375488827222889196529748665567209893585188076661530503979410519310606732793640153790589059138418708024296503019418512144232693240377369820921064156967503564805693785631653589114506810872589617712416942769509958787117368817853146752698711462725763962834746142573515946856939465477181268301610648032135370638785090523567353161497556804082923277340749759092190756388154647232884054839592062879780526856858659867518438494481823059805101911927315343337132156064612538599827977851010087997809550730157117450000423622981451837664299504783245240544360730248280135749726847952311134468154124450482777455298454337196195611249518043532647208377230348345811997495797249085682281463557761965907737835593835213149311140894510061468521815999537314692398962565705708545024475892429295614606031200206164546023770819281890135679022903261412766536567407948796709913535671697104701127420899486449773818135969030812216040423764141657009714922658516776605041483871413111462588217527431388267071594816789716082871285983576421206413193303250639291632817411782731408483454277015584024294164422306988021979693453469351846838046657379203994796672833744129021687381461670777689907836602487439371831807620645026043292420544947047744081998503525105723158418670119345006087551390067523530156745517803540419540882054339115952238316264133276503473343715737240202252948050440870031614436709301640913675542630202590234942407908408791102806839755922749036465552050059022948671973541466147420926596826841331908378264309880336313207267934913375419999965457200252262012357542019726207434055778944277208196002007502782246591792614769258091643768893223009516048721721141345730917290262595586735040092949270758330825694921169757262631730093576426301673642875823983102558998568773070947349224741733350614244161819993831437969621545917820179036073530658294805053207867615721189332595746713086270236765049325169181397784611097476522315730971404326646752984097766001999355855135787841266023878937438343812169839399775217414318941844479529713616038980516769313758695838009767928254214142463874415632061175078216722708174659624346307983611529124066885767315518950691095568223571936919194425148243880071149002606803244634044190739753205701683032291259741304455287694746514993589697729875454699778701019536900580768272492094848701439661539108249476811231495512214835328270099444828575440641949425577437065578081697991068002573375296985692431978409716127535485371865913943840531984802658420368925465303560358332958208603396991120819283055192424651968915815416213667053710885689782614924750140118100894895357783656194183864439353910886368184115792794148692438058851227833757697200497362938909738872488303038558475952536755543713789578790753263041252160356004897104279418774165438142182587546508257115864100683210171916759801873508234249397597198258471778753257076553441553026053866904945471422062338611209985206399486455706095336195031385067383495268729985741784764461452979251853021588034784953913780817791985234846179604441779414173984389016418820009297450856410054663024281881736796997831284475876586156255443675140947751699629288344202372218503494621433924627173961253104889107901925051213930541378584401312648055291137738581481864318100605823735120347171358898138682755807668386223966407460860239250233888091846535246006555112572169321685597451327510213723555403293469132670716537815907718311591802626242248627050004231173141946868964461574409717879154800931023306360479999975758555258714243283315690552453737667549637152912241972965478721999751570299955031239279137627949346484083032393951948196445606277330190949711745575808701570632870190165424099277598351848933428358438551289792222477079972374665390381760740312619964882106778676439930600090067743059130241393303979409925780449027468640109740479149195183180979269119616891408052464156452383446406686197342340577750306939216441991822442772651879562648722029557011162216004808463166975006489467672708804508542157731375138992753179131201704488102693003130075280435005081144395862031537363836184117087977890850096660302149799953326763567603951900078228277745256088003568774896883433658601658148999586044908716308293749369839454664004147425287536228311647641100958596346003255283467419725369048781339022491069129080995790662358104065237042970315059129471456401775132756200383239281416553647433836606414553280535575437155637553135706342051341161352889152699029609524668297979073916226495893832142007752552326463221741183781292808904958731207668426105116694067656041656407127563728181268070742194234584250035692624842548190075836370868506296216572199301373690000543139625439752678511003543737260626997783152521482196194634772507991035714076405641087701741524801791310950090706830518411930944886721111384294942913443262751694708827727575748888574217878402491684351591127120041299115327080161386024031383981312032212633601413362834169879208247122718929568304383010028403549232139402654273104146844724156813769443789949899497209554450419170530833803370801817881717373733394341143588078163564150288221568214972365184945350797784073105903019131966173541354990772630522724843553476893951235193266963999927793923924647705721845087212292741681673016842111547854896323820696329405749656056882358772031022114630133915032772213655942274378219634666712462758739195507061674579072683630529291062278190892647937998671276430062770805789222826733473825129442009995887856248246209410809477599639580147219600815557812604802274466988104684137887296232433797232111856079167684967404837676929108103546741397139671588618081635079507430507468140814772470910508217560804603094863002057998384136461912624551181295224881791127562211204667554794660556243460285549460663524617913684851809030488757081250753341678139705360432306206991607267105176701142829901162749673314791911536616687755802524493518570949186145325247897085183380326428264090047990410236408190936858086315265514302095884383534685908200727805791215873839696199363880728137117499496154779029889309116111111279800170578190533153174166472785722497749628540797081131892857624377975645812370890077304233158347223100120484697435155053624052330475505440163727662613002183024227720805798589346187760172178315441054997026280674023550661028313458283862337659719525284624784656454115772528285050153265520696484470485402246591683256029212454534286601862184555481191642434087821547944465166336995790123110684695066292985065896159331605410482508445474646286039587967629754880096331238598303567053121801944939831437988105446943407258773663311038330927216239086191575983378881359572337897627193170830849706590095137949737428903450927120764296063911964836905276687520075545531777313618938253421094735521151535742203199539609627023095267381530661976679812932618348379486960201072342239938302783251351035482746629522653492933401682568248074021187555834433752209847347819024407966606993355850258254882132378646610415622889859785925732581134403235253634567058953921138541752748497215770886367862789943587334701717143940658019338251760628456632232741428143811119868009229994915124313585950403834855403096744600970382452261656777897448616433317472084753477440541428504448038506822684893572975986544229656430143156785570059916239670441950913809653624765760116182193372125895657446446000041260660422328444938938364892243846971174590665230159802636131948376760094260886168168673240933809638238111797153495262738894086456158724947384696540932881939328693554833424139454075731116216623444920761407533433656010309121328959323616344990023604464239601472935381022338736620721729286580794655353646283781303832012963265834822574694699996478612285207427529364004035600641630751980509088849266693846876761167814510910988318483595271962989569960752713500213298232546853738835282597566051284010363172645507262614705896931896123776888461121938410487125187668160731791357367346872980389987298604285084660568766506854056432945717361610752076008027069911954337496648989839964991020928528065912568992793526863442880449730794708395008656535232781387628156582725119597514383881542229824689116673310501024143293338107405013725114217880860988819442012424245101130268451342379575907669602025296776772991333301511402620092035460173979943125074410507653238763774695336685305476519203616749868457469399055016393279718934088921926183877661653923346270330858264459223710351939322289895103766261248452326512708800976434578937780995480569544895399583607777248710458787841330441998947163577121256742583168976389130313687631489251430792845818958428063815825791052899254899539626415945110412345405528035721106761371549721552342073207128613558874257060972839521868045482251962736361192591937086510438939146650418624667157366047387468117021264582512842947388697687254323785903242534334211086906098558097504113787243077928199300984456149359565804792446895080220625390500858064230164856147182059437741217928241075538682138737566580372195814904479213864855244580171440769306037092697156900135503160717883172154948902115786285645636896523037082869384203662828750143753765634837127104085574190609567179966131138068123523726123776572917160507291851427844039090566826508411654739111647412145294120394985711639269015027159294431028854472948389824415784732051100638616962259988166970626937989200720808993346424228533022823788454127367804552643138736604293121774398157307905983396945379604411212978673960806961198136984537264023949939048926337825688004993453851586505474294484850185969659924400223641397619524238442491641803110702998043899796122639926081152580826873121063960646787265652589266832336447015620296563023031426188732591588815828875225102622667696889402590075645834365208365878991335932684421309132030278462267688197406599543560781044524083457008231392791832959473853188023350348365453071509165610290166003612237226683347989686438739407698810136654032474320140607410747084151519549585805644825672800590592118639441973610236863017833674883504193745441520551617542665855601948539168211696381397345616517213397475428397577896757485733228619237697397813838876117945996509532999662263509855758114133480258928000046747024471168799467417546764231530382441776707288943167481404957414043996641497265944817229633273155779650025107922749226344611026441481673087697535555770725198270741732793314849769104971718064787812044647174017934355414685772885943141877991516839396044808207155435247658478957852735940303109378419790257942555507202473046409096507437469572383231075186260739595874615847112855373650274747269409789216581852306425796623466319479465131553627157492668201848036341474707816852572943153427895364885025513118041035307388613611502388912695871355940302711939228829833412204633016211600392914682176471203172321184355140596480428623271757525910268860638369284716898481830586949287910225135772532360372946764747671581364106070207804519959956618033352701144687169647661278862661842136402254478558414977625786664911479324693709072090553010738674221449770687169549812272937760189117197793734359870214808479408700391269855209088325968159610756311813697653091922009651720269418902309429117739171517210784632348678842593060976434490772411513785386068470011154766978188980412376463917867101604931334698600475831913616308347635453150978025581738969653080010302518599956390130328490349062806575659205046547265826248585284952009060413925302761388151313618557747371023920446408969266212535134222038147201965369615422368399458007134862710902056644347810906706958726285821928915212120291897269493877532788697977999982948176542085633103875324863392556764444240355290712128357757256944842500522450554367183836826414668133745352115552889541772095292088759482305679401128326407340180430006089562177007019282882833633533940427142790250948713565985558072571083004354129533368420081927020463206579007703667252920525378969983794358502331581974326543140723782680256526201822586853969326968867871961985691684167872877053891956152790884606662201779814527686393793043487610511197080932083351167094723665188878493631199916326390808348111718726879242408167967957310054361839688314443445623660801651895368409413559562944701433150548268589816649376667229953091146229953705566594609987545400600205845548702080177708370916863733928153601603585737887129910106197636917425354705663036717511519252392830325154759587116115422485615622298435879692236237479556371591234236964145527850674673332555306509510327610824879482753846238570749747364318139094540935487045960811780555570868232622690931279968165513752925117621776873011203313884920785764873547678243029491881856520795412232705682295755021055577640210652856811010593373763285727190879470971948510217624559940860032167111310687429174447056939237946774654681286957086764592674160614796877813637962591345679875155954871870589235476840455955275088973482563540692692100831301352508052491004339141597569178585234043007880374504586769716080443022342349330714427519967264935296282760653453248358740288227400170856785423252485962609353200952436391527899021083391267403607975132686188512877512739474200260675641669942359837324094058128337743247706020271276317481039507226181242539253469195795498649738602772394606469847472086146397164938562194544569976543867379101826785052220988109308284147265580653953663805859088921589327367284521575002606331758369957874764711393361031728894409897748991459013308079928220322030922919894269274209762678249626121522092879290509787750368329243756392987913350652469389679108713761657429801742416795138725974632091922553610080552512676538416936585735045518312922542350068345379805180771526274163453262864346832123599207097384865470325832418143801949780421361217293853759697867449492284811265439201896051569625937632057243805866547278477328440592051041572359850047155706843683685776513160591925222904909658174120096106321196770272792773821433760458418003960488798386634216267849383048507894750108548555299429010132397602597365076284506329525797454074800029250839861157018822744475750622865452198733288709325950396134074660485283943277197703949843652543776698749650251234306353818022644230869832755242732470339173593905896204235921298789859098267924482601047667028861663814496842674310033336607818472008982754366387653567775899923877182041549911929996508856283962930799626964262205331779379478015118794374590913940893251258836225549636018282690028167922686035414828976491496585774908072105900300572269310830986430419152942099051807155990186307409011675449072864219568101963505630062905317563805504337443933084706749074806555404080142450623686582673846653892473931460478341938571833996131649200404409338888903958177938884964879708554396943938612590095456076264552514287958809151170482931154226424307641216497155067680563870561513613090900777878309498186295562491346229452138033147861229114421615670266457205673140944397122205744643901715701126162707020033587750413556192738172275390395214286518587213772569015428809629021634555691869079490641039257732828545551042152861463670572818942559773556068664643520564057916497843311845343089310636513772355952389593739740805963519131092314623358702372970847762827475427517283919460439591047603639738361563476254153850543721350727463364029308900388611056584507900018557200058923260573986574836960709697381746043312602652850433374373439689357184599228241140699770173488852161050974104299783152209704716041453029849458694628461783518236626607289773714999787540298316249470429693307296961741345613790969792039770573840969328901609077616682199795514881176043733997101920137988527771675727304084928852521870271818290147103653667171073493011361897482255005938100320622778378542045821087556311758846504316845269189609381512539627456496425962697698951671345735829976326578674218110951779322111214263714426323802630931764811781038934789079865251993254756504592388052509513678517738086852380987318633797974440522270536173796480993101799153189373096309110196301098137220878022614299065545503284332633047491368370802294748134716195204656987106045080354370968596052122892126438146161466604316870269711911477654960935518975672170999788031421705064985795562761987480073635084228833585148000817364737686599788557374437507735566429557207213688388991751397974031591079971155282703156959430881644003791661047052895783499105716994948719364629841057277814382474080633909085718349196239842704607672887878999387235192225434302469026883317229708182515765046623430754409052448787130042907612488318501459252751373850688061992255836081860388041441140839554493801255892146120470364073536135279868559709337205634784336048767081226528859529494638194611613198165079003696294160880472654641116102889721612690833011392927365971801680422843132335109335644884120390863631862522424000007432196255258661379989467528016989656568904174690812340827521008751499045212107562113150719484526035051962458248565835120791548261175846827946587368351400762969701933158001698953057701174668395717380453259896008998093496153380706927741736270087587358938380788225313502148867593942944523233738361271621570399357023146735850877923737065680712231843534399417582498026794249791814019826634240513824359729291105343648221748411599514522544345869793127052752927882679039527640178171343451976635982295520250704468503975082603117566392095440528117909326363328363903017755617157748088096254408269992595515177385087467953350929785255292421952634164115854695699340905194921184702977060494879446673989314190766993596440120637827714445041429168770930159588529156912784469978343040989719517841811595133109745008995200529503637056031813852893552927077151142479450589852634283044499547426709831744679069046672447071857217686870555722397743180570569564010252893194962530323118214226411561965989316009281739585408667566611316391401872114722503047735401087627428684583813310458061708465548282118151565227724931772882248845067466249054107361085339222655051281886831298898046205156126000306215976437740174310842475105649881816889469068375411751937048714249970945878134569413861630522722678146211743261701499369180007460783155953568103017484571264426619872103544063066852727513405501288113174903179951154022719097552233243808388053775595038716841998818551189707594801705593585841122910338633976692683821378978688754820974015887208489167783026401219315619568799677760991154344375287093020943106799849391826323783299334748208739786063527311999987344004459949191794858329144461190924291287530306090936710778462986722975794132401460049896170773661006464815014440749488570189190330242785248171047986111105478936190673256659834599076580321581811940795113233776968835748190686725702090638506580492811294369425621666188598870885527609421528257428197851839834513324311113792107544189829446482287823185444890722911479095092143660436701107440978129897299346022053255795057970693674464950422549946993231428331722136079644391236979609026176348190479388680357553368467236619739605472237624274850919692556427352591562235116440085789204312050292753365696592935659319417442617129814459614178764563506705668872082686797409013420237510928259067230237171362939717919806809682417794004593048559328035630441762556535304002294451176830987077754815602042585024586333807158480250714932694223310852198340919708596460749470428696093638456523076653058676921948406218963227678724323379692710026794118780846106962249128636059036472896257876564055559667838586567890734621340447910411452568643037633824668539185777983519242672468682442401215753628845002079695494330571631081021364648546816475762132112163555039593988517597325719331436062660558137018235625661822298161159946225416494407672921747454442725896548056496150861088592873464576541213682471912455149936034603007933133386845706190173124111775055361228777007103782396746750808335300921369525091033798874440542257434948079028612341594733082158263466424948845051991723823645876175861548804825800076789688624347590181843024790653709800393546545846168499383339764386122578023781672625363845233437088824679940943151457605079219759990514758952056471564898288106519628260269785431341552780155796536943573880063497311963754676007644420971156799760298662716304719544570060886257596681136610340568097404599077067526167963292982601915970450866501294275217239437937430600252684189704018776237688406742219036977747364476818096889507838471295692361337080847853265615227253586671050298740610442699709270101649698677364898809992728767411140566345119586975310664647413241427296968197148023439074071551117869192778580557345511512465622622836709922587015111848218079678280820525086183152360930092181643567231286559465756117812708143042661278832023446035189080879473027340148398637851448988514230188572215043159347085017735309618926549189658118128554685350213644195427631179106813217541980739574126783371701616737799685452684485573013036320210641944658268471685745973795207740883904638745242738722028583020473606103611480636999253648863951798183542626044430773065133750535014632795258461646488995554057496535951814245010814530734592626626606758129006436246018507479928514682899496966800248824709211562467237353884707208326705484583652868352617518781977336043669364976841415976935886943637764023164440115075533093861785928461216923783187125016849420737016126107072341970005742116718927868294330298516251108447018751991763661393782393689788499602900972666061864107864428888038733267335671928868023261032839625172783852833688653797197834166327394921405203755502221381942574966028122031770897245683008561683062116493846991924749607662195934622512408655997228803558893248376058552955466356288137582746487334871246128551875183552006712725303055331553843913010847753044945024176100431375736280788161939219490925006909345983271911385342260249461950154697989456890601103801511878727938367153690655187450645002586996896777297129028850111095857777524593984003292919977745502425542867890882729553636652864465660898016734857786277772634371868355025146203989456963451344874406856139428661074194701819965587171765809816583722525367264879246431267649976371637343993897560258629599249775634004030917864940547761122801067845608657003484186646251348447121198228961404261359097720450132528385550849799609116572658278524133763380053123300127795114664482920086456702057081706194117101561747413525229213447191692315439416450526061896041378584405185803204459603709408363025737512812413714424641473118333636692927804691604878590283097367267083052919094503944841047387881839921046251536068437456439951780383705992569517793350663446263341361038598463047734297067731992382889142309984623289349083011144376734932703833631493478211660590939679199595760624800947950890330025417513285364312953502927383703064569315520126865678977792013445331849829441653341972320384578532836196435717408800876836597996774161652760618332897393052699952719050964288844832972210536799417979261942819711100516873978830114717358826500967154386949139415880091053393681699801291831534075065667205208508009010085815451004814689342406238397498877311851889608281073323214669679576704444082741913658710833624695535958311876533959901136470097453760541223465356270436534271319093028557015184477116088475443952662179456076313059952534459902384571771899652527259875107060190697910207803878136417564277233170507749411794558150941287945512649953725382487131159339808653806729559414648838124400490367004020977618795379375751796843242528288274257355678486446048331580140952335070746273869941578438425844606073826846423700479845188093191659080658495215113289860018481630214160562350102793051100185496324880421521064149418250322961086103275405438850295869751569411215095558278605113214825515170144995904625995733678164756112261823691468658157942375136150312092235235846959918076940642121116139060730638369690000857972860503720001777259857595893653628561490989403341665214654329315185972197657866570113888664241971838738554905501109643453307370108572836307632037346303641790948180102594118071154148923918080628443899291292766910271522812605543413726509184570307792099471373625471745141536367078273654764533943570361124173237103878747775475065460228383857679292331751777947540990611238105522544141177132392003321214158687333154901688550836337378958307860383026953539622580248302778525596824996720134194076688255620062759000113077709517580498150035719601565722883420462137799568077138433281071876072474987072511289116693197990425589634709772144842639158098683877082282957899294598483066817577938107651700168421016797142312183707848413058970330037317916380241555066404418184111390590272100721130853657682983174728053595764281155471865990064416450423948903925251167190359962747261326367902017524524013263221837905070857531842377624391972781098607485262870911403807443175095540391425906518463832055843883440187833190844229545643820799383112014995729395694449215830248448032730961654488977836563735428837555464765769598496456039435455082543322751070242313141575781207171914592781084255552370313866304973542255550827264648213736767379651543571537698517040387620705831016662573261291322549100610501037215092367469748048615696930681773036670338680754799741768172388628775829931223058786403480578965667773437252111801599328910604716250535191475799630713062687562944996329829175933293062788267735461498748312568446712574705712376999614471443802767138905906427024321131596197992805012247543105465607627531635939384576858689672753552856785150306947796774757329738807590829566152484571698324022835756639062900027655935384770968678177013413822199996326201250056832472834048088592201348308948271409903779381030719611671312393215749502952254587075037074760034205485228645163886034648583788105296399331503427646142684997970904209206405792872633481488453790368010113978255240628204448115528767708724870145706797361190845754287551272029905066044404302449767906637565484208269484936355128097098534961190755236051175623108764582062163631423059050117520480269752104819058578900034889063357005272967702264581270356519029868437640010495247773102720281360958463445241896893526591744631469627152365109913336488627025881853634681328181895550100230356705096895805930825013877593868339959880733962801847542030293531614477094401608756649042827276096452326737702756646005209292778898550876935201826105962202329042336552282782818967731097438254668779759613224624523673970578143410913745199104190145692748416097487973534469520704499678449717324274756534254785356071828608763313608377647070559539836797183636531238450658124345992109826480742422673611848948723082636694590551254081068371568981721316199029952747127680108330455951107331505562608731132079780308278798492802143299708178843452345230463842697669569959979883693314256687846538382895194778420478236928577971942624097176141603508868431305274560582344282869816873924805433706386828502429419812214194802268328635759577788989861031064915566163204566582764310233601623708523947352109534566505189110764277281626988564634160759561106447166280528644978271653379738687824143818354115935443238263043573548261108205378568396104152407646309879488547625329348728750041463265041036154878031606839913640908356305585433550266073865204424312965996474568918044808099497339207354881768525075353191541266644379898379910971672839677913208512885833111379377142800100655850395285822385001841865161498796599042347125247558576979247609660240815183648343423205851336086815978877944646200521207407618203626576724662757205127523988415590397981979687582278001461730428812585059016773341881244375464007343581527014518285807918793707748924347587344520350005824859037767991895603555410230134105129730082823609559422753745202980543326806764088327251057580038028373398717545616915922281590029870448377223213055425907829471001919912866421097851179189281795893802075938951881011481493947348708354435366150452411865106325367576697189075274062351565675886268940522463468291653774848187314553894485727691964432275142421918915419949666721211821455833908203956000530117875939843311166472716089368836448425891559132806726518567627708274434263778631574307962152574028324827589786134012927404702967506526710599258012996021081973613002885155325174723567054308246268081313867147831043264223670269073352246539205484800722796452941598549612963141201565673678246483292632431952339745470858260043380594690919058318935936488569977944107667194152001069157124443333246343239303453557533085864176505254461087079422287740965953372129317098297613108761603315809194084075955143821218816176521913095284560282742593426883381762448369322333345976468862647205249033248930428187601042682722602039677788336721302292524856063852022092538080096877663731057612301128009018877646742234956338570226413205024120796829460181580626390004713611395880251589728495143732288975134357144027137469324387844820150637234837352145655626545864799286721779715359794585963146322993221763483440913762911252663332283997545575058008360095315221407916219289527554063259728065861740499410679231830268505992591753434211469615124559996108013462033803676013469316815390275663006284814892530482860384261362258017869139223767429942741737944426447785186383666978831770139536834841913293683699225007728661717622656384918719627776212930434365609428432712640420129865971936881296497021129023331951309773766146938614924521203805665112190465157566394636997755491367965411466030764759471990923171074757518704832906989559615080572390873580718931476347010682466575317116982407764564515388468059982590419024497963263877507116410553566757557378081591435064463285734784801019306177631684331995726305114092432352991675948170295548579464998250699230940848837070373620239216049764813051213724319482626816550797840502302262350795875805573501022918646357037963657419940231255182199632955670577985056395531232834320168855790208723242084802938093816230497613788722159301490442318520319857622143080602380994478691741487660020905441477013043156078222839625980944812670750757695275875860958087994801047471158542893123456599944017188493682631417135914461880123459733484066093556651776641364969011462938142921203273920878985972113598050770774403863863209065065376829191380830614682786858826991503552677997993687950697835108810897657735532276716382335830343341162182275901230554438688888015742462808580661498440533069887177818139950453156235454578101102385567874322074739273981684125029846671434646731092368918925375421232615617181734383625462458442910115744977393836085806020095000322542560674666483751242193290100611281648889695559807800997288245049049227207439356095145228450837350656778063588795720790190682097579074681388027559375627271593231824384123272664563770309043951852526652446450926413789927561762968331579837775538428703798873435687236815147903769018796833297856306636395567201954707224094783131819039904594137318774446187170608059942298269648195247426300409336431477455544275480111137407262517942277529999647984873125774934054919948635578697911586701800856523915540339407938848568428232823739676494051327657034717810005070208910810296291045408616268561929100071812905134268462269692435717887620692097669773597114923834683840434239507290151376502418267329442947733927159443389657270387271379649876005215314035230235299635519900882848593351558648571235133449720153764379370956480074334638522117846978499799902359815499529733299063353423374966534413199279392174629394086338904088694250907229852076788999718544206394117508805888523781120037799338299221413759553433485955148195060452027652938316756993256721721081185312103399902215515118581853367541622191876149108822358340562064429767136022185536287435774810493121081252951128546792405326864703017467927580333730885458899493123644494352664384138342243953355998983131364676180526603740092700592644060256133980428800400361090523784103044104067770812828024211876153384289570783858159758077253830010835084404592776921497082464609928146166977511742275973260314364806938341717751970651411371677041760370712543618017201464690791714300099142845408600501129482419601603351281995740139102437597335252585943283150618788605942242655500186163310802799255169849104019797369640017706938332475451576256059153613701111994957661055661838359602347822335834468451498781547621958727705185930195866699964289784028552528373478946563639983416518702394461553865561836101334305178294674727766104269723200225807319025259760755910733374694049913840467258496808371205843179886194974986217669041522779132357180476055469522215229023073137847753615420018656573141257379768707042892275128119069634447411077723343914371932124859135010763064034927194833236330470824682317711294646863975050760725695003986354758435349164989268179510326241887848991744255183965682512826194123009165481192858782656454803434942463389327146996290745816239519353843891702208588880761326053796395946926680686919881133145871669057289871896179855405196378941278707612235043348208270329666931801787715621068775854242577307555038765629048889519895101296623659751446707938166988030875667152344755222964780410067148156702380396482040633630068635276226271946794572512312204606193511761096344273868955489588520646795645703054362389363624182194958917793805127357079067084843826712632416767122524251934788948439737296306902017483184595402847871937898907283692133204861372486718413545741431213483198783097242051361587198060472873228269015627063080644267476143082397813135763186019681674730200185072204690403079993934033011598014195851708995763532470000542745296110947699864266713103859024132084628821304238399358722211741775593405646174703138563394458769120086074859419721704592681531262827923742920506385008857180648720074401156490004213210495159185801014023106190389533038698755810648755502607474197582051340640573802128463005915238831899254747194781043463502082869851273002662886420085239474944555330687638587939186762892631430443365948816847875163686284138376219646000242205614875363282852959548720460162497576534772652523637735584638747116760572629301160717717942963946533642732129273388070442788083497593173348373304544649861541396471438234036679120965289908409646765118463279753673177226791556693290828640639619158944429521578585726537751307385809071487777103236491549734831357232997354331249463945066992161172479057902685146593734588918094619787349689845830409322570591438292490834372582823173443725732072072027654698458295482319172555337250975661554867294881126990524156044538620892587889420242979887609879667083514416582774901615950923089116181054429017864706716457772237751528198198151081550761980419708321397731238684567007552396103236486664992487906791788549891519140033457553696496967331077908065908740000434139141233520608067759444860344627036378945418461825268335422427893099911256453776872678451007690017125734263587625021920251074960763814083131896660468918382463684112319884185284786299567682636332829823766755792276225277998386751316834860337327724753003861580551126374014695912847298540175436841206119438047814989573469472446308958619015057335281521393353594483506448094076604528233697394114555072766992296337231354228643523874327959351730929590708798888779537011600964490659523713079018291833401961254893045560127362534776436462314016128281604587684955941347159010825380030305952748430963932205295323277757178918092651305253484223644510076959956499119803072572871462694073816522113935422054718181305477243905241732167798552612832091851734811489927841567362564626678480259060674460059541155379644095079694390133634736483599527628758641863022208079237239098742531051248390065728154119814477998756453378322554562649032753337376922311027819108554246054997815049830310741859418198225914092855224845374341871402092043194555790157337265612199497144636529867625997550846887484023464908609911022592614693004295293266902379517352529507307721337783152138262451278987525193679440773820664599423994582675405629183278431339005024328415326018291966291363730042678913486569452583107774960426321131159668273220816028732783399385108192345319189517499493676839863382165867173994440630669236329745622261787492647231004945952687905888352717393790882276469061665784658771863419858998203881012728483104929195204625135075873522496743594325528947017747774909268518103029700605964971646930222125955778957220699502275211293788026230813139056067291466014792029263908498830829619126633107258389308689222053999640832931761424087468738426731312619140605651352820067295790411379427823607232744094407395719646809065363836419629272045116713629230655478643866555914597599868972507570554998777572148502059258199833366330530694027755618890183992704729861305647667510861551246274302624969141602323683967537658464739111189240214143774859921322706641198717638126498325216956957023731932249470184402222763990544417589891673160122512141907579230017200901261813965709270458473518345027435853039629003371719711567429905093675392618112440439640170746263535873351679663750987589525286202803256797036138987796545884948065434490300340486374788462881748435714651795369269301580710828237235754992427934650496614148818785571184785349099925597270337013595252806173220638786187647459674945622340248768289193484191426561659710010591853330663450590098656625814050867717578031476800469495231791244294975516717330194890654062133908417384898633483212310191836379109005444037576898077335009624346786820778289459646358093072373771475837268914619020988716915745669355782984708393206586643155982809202528568320845133513516169156461676484391527212014001598068536016398263293344067951621993131104679933511360294140519936709384772837568841578381120787861240747647989121457347425600499566157918267228362837243048096054215914304376111130836757525167152166275002746603084130697398807616128420653085121262583084719651153533669330498161105241416437712525611279011029564221861414053420036557274342156029739664409349967089698464861085604286523963623259274620504370442586050685768551711152396471067576906587352825982942172711263123986738479709954170256707524751791044876203775201587156886157148511066694789494491175550955289609746404277740859277535213398912905235946980332040385502957327751721866488904654159312290257507358953268090225537930628873164166327806505947094854698308623309134927678283608138161261673087920989343128379420327680160939087876296476908736591121301385098148117895378589103418537502623565914857733833608043126411146913125151775267999689915691674164692613318684310200906605223026877702462867468600817569635597405244174269648296732641572858401524319433975235748243445555727520414485619349910391447188535211991043391698603932181735197952663076495352998950059228067739419466797935487522359434648479612313176825783884130948391782841298230677498785469796699946353245433927530727617128777605374374627861807842170027740703963845464701038279372103499516257742113724832471218709746682027934672939561511903275128836367683399341116731517144348086151411444730835219696250497574760725574256038282132739217584300489829877441129841599073015701646577655336294502452491582206802010424882903850667897788266670399906439486464220695792077376572648740179766130448577424388640386691290425577646056138362796983896527775203411597825549905721997427236944898911857768839801944697582688721259516373542081946821314797333320560630209815644477851806584645456693941441788593849191072547245519923104604208395449793062207139611693320422520149308164375101920063566651043684842436337562171774305326347482807454644722787475396324267094449726908263518779390980538450841381975770373547614184901456153766631332714837966254280335317320455253054184991027201101912687414045264894216813506547932452338140257546259624297800202465505238823936696608661432804666304791989023650293974809902244397763137979682046090251258998556419753946530450935770617707459360764627363509770032226070032440111731684953140547359067783448705406751551914009782073596121326593348416974844630866079134548789921914728574377852451937593054602350397730220354515313451355674189672460331425449681754710174858481573922779439702278657998633208634067237486206553613165865400283604467217856302123040771321128870886267838721452780785252069338688346327630152903489232689594339792664746776858708193022298878249190692154881038471858894517487993011399727667039489340810320438429752074494462460723972981926575376997320538703489780266426099680049195410434619811992091888454544562049909898672761688004359708208098129712431680405409543640765688098972812826324410036722611524219860430964775731534076607572677904965881753252443462405513524245445353310950274338493163919944057408450007641773223945148852895880443797770850018642445224632309589214983264405108451099613940795204833645481015624082884068121195372409136541165149241375945147540402341234446129389092613822421194421703649215323637219740868983897429517086346267545191161505198409378961170945252837498371157612619302255781847420583695146001093966036405187750519668374313777517005683654528796595997924961706024623274264661366146582785081976945555893433216585772549900623347024457743302946844114544938354840085614368081580318672813707375316409979401232327171326105993555643547771724580656106049547958526059520473687608286041965234784605217666120497769599562073131178390567817941690370856459532343058320760742967074799604215605557345277723027038480162117688270696018925064588219706459066935563010462556004529153616414059740716569900027037313501311408306876730384793458172216001252364731142659630527627012082324279410510687785992863210867241431780734503054726053393168623961914652143997749384661141020029396863754230142695317623935116083543443506474718021751739864670469598247109731363796466821168612402857836298779799627209710240323716704368840337922296526686643009691823880415989927389396906245969454575979256318157716901984982676338036225106230327755809145284958635549670565300093248392291316474972934398499356199620589990629647808649244709277274895425343118302597586502638383904200111965015522619990778975450417964240687907060417001063899339106446059866089615602716416748000396815414496982344863280014528493038300269248533774417301560087378221571082922161836477115029042708510071953440397046902059202838492775391619976828983979380681787882390642182717063175343923219828405922452427947129014200516893845877381637761005820179106177586790551257522604433555017164523317684841060625315388831469365314035174573411789528815849435869628702959851427727719448732490691722916797713702651724122719396697501211909090069835232294658461010603750305154708378022675926211273571417750407449027680277071268271869781059385046467440756414266329571100886365522641305477540958297089976809873087340120227288777655239240623345250118237510633162808180031831081982070722654815265495428125047983585550742299885177104132637545939202314681241764445800899229000260414737422652864024280785337810060779905305539285713987704154772732952355658498778953053583027711378499687617758938045405635161525819845711609755596756959357704644839124885238940767928045993108760168093074409745232703935271938194172312043498238682992129019181043561635848435103672815343323633295459792070279335837447866101530044654018601793582791234809177229402330439616096045570651353028519952740606213890042525969191028568095463170936614658642420699532689111513523272895468448402892666115791276287892871756826079329591851682141611768975572953197906861599921375227299553936701033839032338454269815785289060335939686562250275371633663299087342564978585635543955429308607278276580245599810612842067329109973756751036594526383670930503939050543069655736811447084936566255476171743354015048926491751768410060153041323076356353950157748128936353901165219771072622646494328933047966973600469090452265918724132810468779298678432030204866443102394480433041066979276794173718064334148976104776222340150762331628810856166910939398992380746620714930375275059377435789150189654508779085264388595417639834751830741222767701182741343335244061569180844908984827149789803865139468622691204537578092249479386241884469163447899398690343475737399674239946045348490269649072065606604952517187280375824370405519941869977598155739478404525611964647922008167312949769897378304996854553686073519900371840770654082525826215678986366861500031461123054030826882155312968731887062192132978087030807763919925313154731033355014292294584947633606270600328327913365183200383049809101086693491654702137294559858114124146838321453938526394550846745213071011718205060808933602728060189768755876319962137872211986561597507271230214059901918999200648164680011993491149128073450597796622595528254925854850873752765400566550344742762746656770048278961516970056049675522001095849919911974119592830908847594666978203252525553532237805257938805581475201529638940644234412911135912348017297811651979721134099737963517993184702405514991672618052103552573116942506856023343738695983150907579387524695699022922392422534734831681827764652498617370829515209552318966632222858474048787493525122315144310196079033329125036451003504299747337076971312327965627294979201447273305428544257159148712507664357379379617511858654827071170735640242398031784591823131823982626076953079370320686460325341893157675644954295145121319112373891851229171838812772229396167118355921907045226089160882277795693259673429072480126791247181526001623780067033143718831119078592252913642548198357381829409981343426353342047123968172527754607813672671191351131886761040051776386328796031456491697622725301345012768304468894284751011396525572774365739551485309052498787951018885854385215292064095618188499495446363347509301439094228930856491019480001191596048302580661242781640844020077661483189372350817518595632684593734070937248090328918793748877503523586556346709860449273387270921571741489255833404225144122210022120065171807240511688121356601252608723408514608450084467618603994735530362532007853575857020766818191572816137522372322816808418793475477026982405512356892605941995161782948590170595061893851460806557794527343802898777501897193555889484846916627233799632981595146557155306197112069865942301518408433682295079464547177477807658705774281201934495690425922905976671289275183719750651794835678076743850044243662598493536868827341892735432403632679965178296905475538145722987951871670783039450891828222744343752770863516098213879241842170712844750810511522046465490777953374117683438158746434769919321017687148204621432168532109046057363571789368252529420179055236346746705457941546218885572275420546224348820889568611741307051107254502852193516328890088950115468060411089363532627083774598664070521717668851234460800745533018098166165036582263349114861399844946988706467466824703131644929766859032052736619810283343302049527480037346484168366535655338225191484081482477877234028728193522940307828461334290197326262686765228627943074898019643455495039339597636720303766400058480420662542451500615408385767431556838087676650027183157865478521979082771090923548706670327434399143524708654085408220033993998294585481201450866415919697169821939210105033980483097421028090412447067896782760789386160930233725443291387528718070160669090207287601407602597001601278294806841336450754591539286018719403816491770247356887983025995134149484201052574565147601091184573101270406946108376835877257848279619335939282969649045477001324542910757378595522665536747411785909243816620106330784271307994949124459206662160377787251598214163023451382395920779139342697413947861206135129768476133786202406683874504050457349874361170908162883097659525231992394900330457560361688920263040515153504629776596802320876051340633978510965142062962207684396030301286177962028745283060520252477361228554335917382373976447270299452486216354758099204911101650883516936591919835758963234467469387622355303568495995369596635284724316826132982161435588876721649451576685949798289040736178767958713303889060238289631483479223130193849118183431687634088665086950056554641526131081380561077138531278192832329561228327497173992834317806841769916780720801346732920455924394774796270014565884254986249546058863394813172360163254852667310238467092504690705808007435408066742717855041373602305939710965874776178565048919081328788929103855243029575708572247135157661466728913667911218003659522443088637581286427685511961746744764982953360575402347134555099574539790701161012639733498829608988140493088547775214997429394566937936006168908178410686043004573670638164517837970766697051849679303004927106624457987536980707180783360703846864019104158160975001951400721344043585902925259138730166089063635267881592736970493317372449348227001617858885818295177483118258968448740052232747890149221339822973100117598386926959694029962285932097157749374372337096252629471806307928255459005819807289840375920342117204600253929745563697152663841793498645599690981626355969049234665343972226952112884438119416843362888921056279790895829783823208518990957674496145503809835905642491188072300137501998364971176446074255691171100633881230007471029773728306640142864344950050921557264468844516073830596722006274369852720896547250994479067643401796383860321550050268297218016432511837895361888351290783858345261464138909296173015412393201721953611116972393453032478307873945685886175091791093485027281037459774956542170001723797598184040799014915852060022526088408751848819635938682536493317961954960669978488715188187724423188048108110502098125131509405108331970619212772749393622365251689569536409765292464684978024056449017317777796527166299655331069220808431489356007794335392204309760487185502207298569267092096407498830203344034787655431300792637646030325700769163451186272397960794428588468807501909849122407565310365732302545217129923792503267257228608871183432903619287139714691428405586116056711678972515582812720192124776495780157380571058964628747022780979504949908485480742851050886679953195179139681734431766985019486912728494473699794594725179556391200277906163186206519994073412195516306315308915381030867121797202737029028593174913450234564653479197729349394715296676988158629767624593525038961565809001978337094755112622367207908824862518033363005159609716579434798776270252769726643538620873702782042232981292119357799519506611618063926073091044350103087473596707093281029374570532519294056789922945953404991158025460898498796760357744722968452740782809100461579559776641410547170088587829888931839975793524155393609450408346015525863126316656505629289535515942294573456866150590169656338847843313241847554564821989414500189185695308590991004471845961190676499650737489115753223648481478775874457003162670649141132801275496617595512398828077841145337026790555932882410105670869215273201208856887123771662411446710095396213123730914360036307076068826065137199759277873327627465039941268154244635350918377275964504277491498005206737363084645872936312903445679080846171456549379133263829295862003563218045215736400331251796109832430843473805309423072501525789502682711406887999117847527761057505221044988907848588017329613563122686627799354342117371904122114313686792976990333668906350209894783064040763458253742702654772573702314141119655518366412683856563655890594494984593513168810930610054182109915078827847949359734779971881891982588024965386501349021488359820656473995232073775645919370545848871075263972499570716547170134016336444207757054428759688137560691441034082130408512026706358256523659542104158733838140211732204621984670832368188693378569138187193099016677977691077399690077353682453046181500229272849002091447460856715500658108449823087650929426061420902284155257648448508929384909634073511433509417432289334226086372806886841128900183220713094654942656402775704407654641353193076250259411473777443629831986524778956004173535808979317515392016049714845275313392178887048452932579373384800778218890961225260821965194007172101778739003779074337297555155074811512891777936148553394995618949934564002077186254717280781476646462189055230227998010483470714930728042438725301369743922480414026318639156914466989252061795607371515872080098894317811809329377454297440142330572448857976359903456858751745090225646120935431691657872020127793579033386516351797914254324360974941927259833165843559109985752385045066644669407031286792662259073767538323350944783075315312755494821559396244485704363121353503162635004623234255604030148239499154798715879486349916743955550628775303973122652180733097745075677099412339229145832604871163807731889462543064012053627798933983098545967343466912048951898886459034681214226485500355893687607148611966876723325932762815832159442628817991816072513072459131739217695633389045981375014187758524200088428315874074748307764829191418881761944485664211395267966582583334663059259543318516614143727397368962448912661601546633732111102198438162853361714743646477245868622072966558105626624028943721449617195275722450400017866418286706223570501378525006422980390178579094692505618959093394227609798104490188307847543418098202752611978487665891194961850024017201433376254684246368932206987673182484878461060465895126218788249300854946380784024993171546461295806439571169495991297310781903715098989781441457150118399145063612892541648917231837106010390686657519473434230691622666390037715352051981250165918397358491674181555586032033483884174429835511644682802474590703423900869229265726188445861358827374319139187846874906229992924253523902335774271859753939873461391847855073012102506794366760130677373535265756049063099105494063279559209972841704392454710572215926848086776543289293856506814461792070817627106592786649231879683159812651382955947205794311457009478798278118968346695640316067079733342203137642069150142880414991454295584639275539050041144638649406253344866204931367910536818982314204712903341022149415293844144693101107037368245924551249535552560093131866590484236115285018956812076206306427543704153977704689594131347207664330314784093272891458449474718988760738974745122176766094787822506251958350180195582366409704373155047697472325794703565273737256817882437725244572223377600387313140504442348514216945632863895423439087378117076852659384239025919754623701426287851628698292016218721918920287178047335545206904277888512597050666597783802321384593463698181495954223801886353482048719493453497872600052951472607728029377428389137175756226877125603215658618708682704198167065258712391772094919925272670002343500238593080076750312684986021413427912884695304292796861763260530275916753839682244358673521154104518615465065233568740410924620698985005799964230275230468087946371049927810479888944099983996087818422747465122792800275342278560658707088371649587242890048977289710771253640267344242005799507560106935595900291218942863212051875384288964132819678954343299519557587981370874642652240623158669151204014119474667467908049866040391977201843443091083137394622882925817447061515013386186715538407415715096498196684785662349699501952841434283383697615645214854232316897974731140846564015096159954813187860756211336204235667974645719465538692249851836752767619998365318594756022103267492633134731299569771351724038236069867862026521385059242430960464962231472521854866968210565532449395648136891115848337988109085073299624192761151346995326009738947572418813241123714419090524122560023757879041870027658718990580263104535290458639913712768065920356286767370686937268121484684015571013534876803991370103436474918178400338394817695002080247890654434268563857788329738539969797975829278618750445031354601560080877701936089780133318161912140061675797531422241042777744494289197065580776023235196792984183296278083930177310143019493157178400410924743265616164519146192238448263462688740125450811286035808079696693841857698627576745874417001657995355783494940744725419355467308705389694699871241767351909805559277571790909792004937460307720044944997134321882349278778132118540603630048071717582208885329349282697639291621804086013462539860325820814376407878306143622626653444027010693976159188831943597690056290153811838112925616915197833450408372091990006184885909743932975388122402038737020952685568603773067861758848055534812921558732082982047784543088395894172914477047193031923508362534483250748621997538661197314899305688957790583651805190127564136404470201516132728831608881192035318063601428340744531107130181727488191787532024332157370710577724719953100015783245993593365056491013557265893808706094608894562615807355894133450103664032555562817354734315923708724876387037528559719822534240181870928607538148111737093427548939674088461480049440405419557052580030169396890258311857115585362546533736489228233916501349818421399296238071905837351595165898421715470634019831239339995139513874874619193983578193775711921024137985520927686767137353590168604516192360176775538744471497707718133668379143567410485670075457275092417838925870265649774302338912428659138095957330032732359208886419689423580735253564431721118372556442876241796184655497387396290335507485700975804083700264169613484487936089857989303012025681581256154074953668378385134709226957320745062512974128006020771633804360850835195061363826659772629010578566692472493932491905608021081463607001011705199070780935984212169687699941585049879683525306244954158466142257925519877058844014891246472359252861112727778012066387595097631814639143348978623991743801577225881354774840553799961823407184779813407308022950520246924025727674373811338488366458298194208139089796051603558732319617883732322387519657220674576370203003185571434840284948816897977959764706604507775130419545622614122330899189492213853171422481660809341107473670846716406192237604315781125292061697761948678562930332122459482164696923464458011523700669892352228246831532295264337869190266132978051864362748223686606142379400304727860831725642355074121480855400771471207147394200277949344193898744144290139501337814220559736237647021336434429799671550329349029490753534756935235670602720368617510677147868183883051039789391271417113922671496989290244147635214590145020880297476518093795750859518435532096888092370813025869543010564686310717970304842855056748689515349649574708836089119208953344831074953963710176716799247392033650087942063628265446494658624502229059331480230977415427012999198432042223005452546015369647307113919987177957784570838629617881921731889088299452910919774831008717565825258771483084858517728223420758994644669946645529112762074826698836035340401802544887454751433181768893167396781147689910941841322422754609890115573602181287671797948438402740053135732384599670692358601909804159516421771933704025854323749395367983991737623114644475305358469189534865915074810700778295796482563190534326361871668511064300556391443442330710615369064061941073834403499570226008563441560666181317265126906498111073440207447943847591449291349824720390979610412147836325377712300952919944181316177807324373305844353918543419560288035022220036479018938146498569884457519101329893791452311528092121597636954427685891885720069673273211273715230793218227195890118368727566981594584518751626613245568686653729128187120517261904468169175853318402551153424807766520185930559080763564639994121017018263240750290853414737226580286340121118121004603681143502058982485762422894208440572464780207812324341816649390008831257375604747934877594404719950962831052728477996071040430488964235966153431361441194439177066587596704382807136546185813169431146552316964290813716288920758185448194375137590121510233190911275792599816160302722954404219144480937356764681565641940563654011210673036273285382595628948776237267693025578318211449026231294450080760561756506276125247936511017559290102239602096332165689256164835749247037310182211506577980274122054729060399994704845086524236570113591876522798849810673667852677031416125179669413634960961089097369521132935805900707111680171473711303813671473596372238100399209905841586905232325090312381508151545017058979591048002600898467281853455822772163934856038381563843170722558968860932932579695804804175238588438859119323619857052941192612199802522538802604351160802223888642376150952944669622767537916534815466809345286799748983521502991324799549316721316699068189411648346438297761647793812390353497550133303371282157287941481010792376626770878318709219802263395245427457497235454409351611399764067845213059310396614158644841759696733774038607438340187588099975910564878610910742332197678418242726904778894658886041083942208268498882836606458394166536670903637431387494126692683268038726984749190543861550886225340947342044528431877497066573913791022216572010669591041338578730487807886072326424449641499006380221620787950257146378229450771427640316915977351512871115950856675116524466549948515981203153829011056200889849952296832091108880974941752612933106342693301299097293745706257595317375939303334115523038691048184168114947993400753061858179690983326115454333004483664073783021460589592768849538076669726627897059848171557273936384825103914400515041937355814494312489701483945008849079175179253078803369243284713124483470227323846199885489670019554766410382411197180339363505142431625351740264370019813404553567653718598011996132482159175072484367455491396897405615847606220615664618379169266907458338288046549924499448833043269353163584673851439901710460163615015467075275232136010592062701506329631834792999399138904873683415390523832058569965635212875150985488905363790793848732241826083703327164405037333061542681010569208646976459248950943752162790463005625105646095799764077975128909065122574771838530081108119368138240890221080663383317789875678569765771140250259873642117403040654607071918173917283349622532577632321872584209678081547707640455894018234035426134002428678413588253481375126565472453771490305391994164182406891776647086069294939242890749978740365275373465622341423708457921465233294652791813161117886647704166066226080020633342198135754611592945930749713289298961188917798165563518219799324567014255852626838576842116972407502104719224382409999358232888474273123989252693237071471590952371570399278655744126566842470686899607405558131631886954962806748986496887036532465288453927403937169677635015032674983810992124492149235392637315093297009653709483214462903332664386415492405075938998568549192163463747038759372437375628195807673075606937087882405864416690860506075575552512811384298151025776484082330693815124941485617029780142138410963833890217103314694867785876011484458459597277622557385451377093382081152691929076431888449583655967710769382036113317331293127277658592748881942916807346338596385779649485568106929790434448756633162258261903965883556190900259921138033324108477257644310572961298997243951449836682276739352978653179649753702847525749329808535659913012614897669711882687510113473569732630959750151789391773580167558311349411404589986173815493362873370818411465288293285060022409134032082887231841541177526251394254595263074717530360254957965489371110640295408703435683730432535239062359901566890938788011564832141685689770264203625950023612873211326103607189309592915455068236978603279953801544293149973273930914963790131123349714469528475057862805683489135442390196617863603314722857371344933819472055509359661588223582886186585471301431490594578166873600200648379760055193235020040953401475776733558007966968313707545965746676081596225592937201190242369890811496112265211734215957523336293134685982526629099960351393268765569244473960058790672860034843781903622294588624475254493909536806982556625538260419542074583391729882994227853160478649165109343231591995616417567752189951283272791172687134523693498817409649862627498156695181306977039695311581502105065063653905992928563913292581954698590550750653165049103173517153853083156760272737834114462938831470105413752807756016394692695282033690328555017672133982974585203541631040122161321127537561524357121895971268879579122446530339764459218784640400571382510452112817677587604602657142018178480096731676008346934565101671057293171163489343396229863206497522419048432454271761585482229002616897425105260550154527473825791807511864459664836364789904201334464664358731412836554195155343937668173077188909051892421644264194445245596361329758271228369397084041054684956261849232784137495888230644606139136792342633400132495188262575877837080302942549991501168119401684841837945943031468008085923895578501217794135164585651374443015738089135998163340112176619493036330440275026944545870222315109620830729283081623264717664621682647168476072619944044538005010304611301825215721241299602163977082764942286334456147067431106895404661865378552387925432051855359233495311137164814551940907195878175725732473222833777561019023669783928395441598951491278672800283931478911434056568841088782930282700799618223452443128252702900695783261708335943699246946553206195657458795390479586486719380577374226156658277312802975291677907705434971061852303717883973071678174936685916645736931498864602886172756673426956753244861225687220862984947019980465389498980648661321766724021124871305569284233002317224484741449825749039917336377241143863824384067463974774136659621423142309470305712489085621757248316620712903876321150222548479991756242082940167043011050891682250991802429808289116315905511156810772936722682092561361051304879913559737400706329264823738007077336268421099336807045543541073701736637339521522517591779719687396452383437133245501227726947371950834723992449751187307017637372197456914146917393380272397125432081633448937057067404173812417953075746622586190690085087959036873765734602615919303204448019235212532172316972635262685284405599541236820696674146020775179804982052146293012111620924075799023260721659616490197728492941752235836537065264074728501937072922051825197243046523099921239346109876450281742202007231885306941463899626867358381759460158651113714640446358619542163894138100945494291084147852858663191708972991427259957410091643555584437180741707408931751138028507536257507991011655919842436676136202682119269853243704448755355774000215492508413212856771719831647747569047974659909228328910160827504443026944357288981863985148520083704949794301293762443927775568738346510688837738754009328739645831964407730227739271776616437619373200490671293451274535685560287980844564393652675714197161919199805269298506461073135710259411571190697512878339995829439189185353222235396532138886202413046170091856161426265121351570737849805823778164912748108275755663607088229404320913039736731577310869256402339612148544865200108287557348338848189831072894032428084942806467231977135709454741459046351647602696304868523270872930782538710445982527830986488659619316714083317208190465077494594733318867148947231585474088206865257078837356000405168102327273430049778676239743631839271117685915839052262166551303949641825055176338314216478933792300297771940589067930608022934343770777522133860085659891601230778876371991549340249008128680075529846101789106285487167917656076169205665017756058876191357176326903957757747647599279540817221730709443071662874491719392982584173945072523544521375671104930952350663179338703163219342974543434151234166217512779159584758781115756164544580884809711393188215296648664862773157984327927374991461952503073801668815600102514543958247993216291421063472776295334361738076842338041533130055025481108468155277211139581669740888557872888098201612622735953005064367838276679114840359243161298705960141569206459618246895402539401931564848633655033249094771127605910483665245510520817072992793097951007552924371500103502973997615678382609915072692610361637580215190265045868597307978805659721612961140489300253096695245657879056940216614398977423206172662189767562952531341324888467516664274109008345417491086738941486381516673950634969787243931965246380547495886174029874229515552850390277018715417122485931620792652812943270310991222303339566269125259839789229794168330354189600137678175622332525953783657590226963236851892003501349534987165154371146406596205363798766658706778581235821278623901237161799045457197387463133931151143576636908298294250537252323441173918218401242542117810309674406047561598485099200819904793218542636060208588489633350619847951717197398271215424780744151625617563185383276765329344244035148186673976849377083458736471407914167694697698419572036513729115846412309052123346170581672375266005542275492570558395648321889761538550307664251038350917812600786199890796244064447488643125695481666715501526240333563413806096543292088668366332650870016488568323080511983328566361138476709242516186502412934016677022273354129580795591476955762916449529091706697978751648209609364571836677898759500673511310936931239345222410050305869146432687322502411648754733604777655163754151033481511778570251546841245130763605766717451964804277259924571168529023491452119447684939536494740303601950409344058308177961142976724010474343153289018194803645843740078781269428937967331088532559831102075795562496767802186435861150931516337729475895381848540551613383695704534994980801149285100163347220659751314879452739221475389876140278613813163442557511264439060695593355109910282854784594265304748332341044671173750287002506002071598774212703156621393029426142185036928677430507704219299323710251698156982412480299169416038874698001381488981933983427251927881534334811353117082059059994636709751715673893069874759031999567776146038055902009692841207126707198142446911066946268940235140373390517855487437404917159680544875929450750514781304018532895135122121868662316542611223060402934868748256843668945465210686870825303521734048111369721496922043675990265542921258239550477808654274838511760609324572489687259190175728537767702853438793185898344091719132057657346455256060605165050095667113574957343955362603872942034089384666810701223237310164665696477657989321022219036663236655581207944895297335153359184892954739957131550312165386003502823768056135771005337806843918986578468439956127184312942183191705216763863973626973436975618183100254185756242601076521516597042852684232057131989722572501575059444293437125897796186911717751700885638358016051668091618775496004406261094478971621836012957429002217292417926522979819144737539468952865947252570550195253265724209762238732699667613256862080572580349890255070217141191862181098858586819531784773724267693260705057711969282965421118101055047292810933777756238154752315403702762992728695780306106846958556023934847411818548783405296272481555053188209153363717328149644952759375212441817600819210426628161088906594702298808153600087847588131880969621753167472796264950658528377249652644839209880234195592924621574507980165795014240094346896641372299944972034769296171748627738576564766662692467618680216489324048494559745782296779418395232813372955858197372653698388142737711008108297130646387884303844961021686057244183479078918365125954072554932824362882957872856199926791086362596151111903024968156192421333906644656658189435425278008326827978078659956667113180066596983958309101297547467046133238952164980191380943733523126942580017970295634383284182311789366951621314107851354700852662320687791913473443956520697709712234677086714836013702779920384523824844516899456370128202632286330917714191816988294403074524125762742054292850959014118062708360738506439954738345973703251041913290040086090294798409075030517720260485173824753911558157005908479388651259263452948532299013174185727982824598282707148559485629415385110448717260667600890488410379028784899607231312832514622905099066977139464818130087120534486218437295972247369220843624011481088310934000891835626428067894235489405632624908754546726104667316747458096085501684616291558136357658228641491092906371969801831866589271969854502296491707957504323785154119077721080680273658765125820816741880521782228068895321378480206770007971829980344565831194026707761919867113384182785423671222524061435010168955323487196725300710306847754899586737332915757517758155175115155163238198853984163981239991613432886419257419231233622241307148827574852182655104928787257835295616442662308459223187226841155172774703178093943188595959939254347804544300544350411304012582251414911890749276591994430589098624244907056472983801810418193317200339090916621532004217687408225592276830075372854044233379503572297533705081675583615580373850719886565869628392675067718685915399768403688620936705818669778722461966874792510988583710239339901527602692700294801327991008505896263557491857320489709741596161684130505891536708504077509446218252835622764061519537362052337692619411096547180338323023526480811748621330882276325206100628083834531961730049873309238852017655213361127584156289755908265095511759283494669567678513793309869605970643069351794613502547867084918245923892949560265915250050211187519857140071635663744298744092036955062243501246391589951412048733677040607838756618836915916203194360874673521515272862275233917400446917088308618632067663100218651012540118223637472380629928185894564452680197484288893838277671473357458790340080844908532434483914019860350199653854086490047753480147109226180762467523829452982888072263716936521812690830438736228485791198358551384719076229316183071029143160977147099571269084302570870077874955326202286067189430300700550729208293496862657319779296425179857685536217766617705626746033624755559886631751943900570250965079612951507868718587633220071015506434633988986347721119162004892936587449172253840683330929129307854237708075915679554042108048968831510900257884191989955860701459207778683130933951155901974018190426721718683225822102242928009497058573688864171183637308874777717499377947751472662184684912815956706639202660952093033607763712567871193409865963547105269592061539453762941400328893937866090438171080398662019802357638089954674906159779434118676709254769660930296458321400688615808998063181914526514488002879133368087100557058867134902329501458493378229774893625130243579476509263423969196867417943370848452514905582533982244668671757681350886477386428134392092292632607150735587344423569978410212041877964486400664844420122429620570154512296726703639354574992347436756377768521557367062390265925330833176557118540035653820953992942877370789108990866220999554958186856466001065123785714073121906174081864302301936746597915596123906203425274290223487208871583803291335237594425663082458764574447086427054803221706092588710228807541747002377424372987422539150308110027454229880672214025250688752315188186235648895976041412141396523957992860618669872743114960821352111027794038518238573801672705660382668929840681069395053632709176416217263956182291532883700083221520514295071154615348134585406844374828817486875960789031919489256052262933728939665289100568524646790555438173886806091089493388295539412145337874225049617095335049335060393526308709749213922811424904288795413169065892970240260381746048190976417695733710046543405481985800454741203871237357808258599126473484900406115467447274412985163172091446478754627867403604385867372759092695673993988658423279291186065929099173529909055588685175657148130321835562191092561858902648591961854037482642522322515579756676394637016922746268123801735548481804682657119505964655743930896303988967153200556018825096018935689926942724459587682475222420721689639100009501406444124042796039240898426940335172831556599518258688044806738831682326597696253421744940574676389668419808138795812838740517036497824977567747225344900259179541050802342428315505019270560557486384949837561429452974558869671954036885103420860181868032749906092934354536624911633765885680029003141825019724775475865438742413346753824628273076327993765837261329645667958562378208581482318399050258025213890878527776467174127497619178712721356317828353680306862236393642024413793746867681973294130866239696019609522210108778435926482035600763194155332629977408375973618451357777787273699209596919335289309255692392192555459745312303004121226752703557564697701881499269777140536417128472318523546967980680256338530191984786906680231920491930057286350592849910163048174619066782504487664034859411216234142073201554778962763830152941984007545886238738561346208516993886040720712646272761690950297752943992307368765556364624337417527466092225841681526643098419328760383901125311789546558275999681179460525406560562297409174602729782430305788688849136297172484412085894492468754324817090674755569590785199689591209746298648507982770980040846607112692295843856008925478495050553265178857272751008928305494431334649115745283963955357310727418378119884120107446815894676928899344199383741124057684982650169539072299663788610302632216289444619750589001540447507036190412000713106753519409513117706693864923495281826635187321054612195973042316745167402381624425093125022713302368069296130630275245138453133836368823860830620274938904848849052855816844802762029219872294035961747253282229748916726045168612041819289132251510080609541834798775160018600330620484620047446781216795002616850651515930176395608613317291421702313815012778715658651338501799247973747506692221143151004790379882359764587200417985834440294996561762727568095726433295192346728886160934315104683943773155725706107307372575711046538954446129876531482160014080872556798209352103782168982668289162368232180899111491215780818444474288215585594976809194842218894052459677609416642083591963949220138310929077476828870278789164413385804519241014609394997173542645868719922265098074524606841786502054989302760361932720261295740696041741954233686871128316757491079434476214895581092651378148707610175931401549376282180219468616955248969675062205252369035437498823772390247701207881376797480141286154042906141470836345547235763293083046816763536007541028135178121904427895570009555841548497805595346709424869025686128361963106859057629782187369340237240173946259238426538476191187499191029791654117853676468440304803867126484787234915219524817956879977722838482916243667456144966045515836093950576382176342879887702506468873307360338211353718615560177683796489977510305632747543358650558179585375167620695479731516665664109177721631769602897557449911722806912664994970441661900733948525575478768946741068534032899681389602939293968805287339686171767095209533147634077777967913589371307813905671219376554451444808874607988223192346315565917906456162303821151474004835688176443775054637253025616248174703308654807253955955772978602257187006104777463598883418128368491391679048731972254119071183237376953566330447879050720436403365146117686148300967384256431533369003919163600500447885724981183958605400979172660841569904717020148915178858980169424152047305297813183385770394444514793126915311122516647881005882464500336890130341174734996166186531507763850625390714232667618530511203377518428343830531207351235384507201675142064614177549116182762344574229833293037541460230535125822833493187918357539923603759849389627817318825221792981779640474221973270419644043329411358270741848927932737237617228636863156961595947050507784763324446373365708544043425257794911879826334348715229556277068749256715820450128195211281423899391647364508259445720419329820955651601143289698969436322722984372541642356117611170201244471733791720648468995842574446315087976716801039161792878634824920341403107349597261488963173652385958564026513795029502115174138765570309864202092061079187384687976799745343847451402329184631835762625612599734913626881646020313230482474661767210137992034342035579576350704183460034788901692366608501158672893489515924574991189715074311076905723139928655288787635342414958603161671942020827502791413145132075220488645139888165112624509789781490143158522356034146721532857738562461360266407629969360144506949525411087258454918985629897776073568690994258311719580013870414418059797524968362534515320875150906590782732285251391503391784680528528738876043223472830153633862817984078776763772432618170393938494130378270662930345092355618263551232652929532766924973010436234147985359141285996545380547105692222242635552480761526383976800974728711969458310764213528001317730516029720895356944932426278905196465865067380833522741262768387763022751000467728513874737082376061205935101756621693812517670464607563075986803692696758190211425201627291229585723467724036845723696840559633824896034440413500210913168103695034037886556355207575060969781832996255369291896857596814185065575986484973988020284287190670572769160138991027472684099745420810426302188778002052062359656146480918616703357885292912764249794214843529402983960141341054491059658878297398742737106753648347573773956696845156856644170798824143943141285386206100118958015934069380431926798069012566079017868029929878467585412971757027326966080025706383459583121412547986430318351961106125961818285411653430170001893402252550623658871615452981214937302866341470205636460504977461336040420151422058804853991401564288734372486578219572782882157198592320809741850992491958570661459473537065572603229459790449158160807230014499002479233420530648702439279317419035399196049920112049660792126100699870779966064694412101408836165021945895535270399056127545706095987836725109538711091769981365958228759432243788448926174717568283965513411424050765433123915246327395061389068121093623173385772211499160531158599346417215462270894353630711889632290311987402206177567700210030053774447111963694194304783959007127185033780500007642186247418441513973859475343296840086263645113493998733268333665447309904821007285781886046887995596788218346627705653356579918649684045251947276151968912661591243736567806046688137613756267766782550318430276917558042728108265854712819122151547075026781211805084603879478606767020132221716728247817469363276953415602507772513688535452134528050443742200068094237960052774731980100532982242245709389806708910548246510371543299249544762775795549017093758201678265413468420893520293713192067909308943316229596762948275991651206197428667577366137963945777679617530210566755684045671090488247473055959238605117589412060315175383069399254018086476063320295317377997230110087783323428195137132679873892294662398399526152705965809677645385823736563356766872832095127728050088297879660761946057082296299420789923150683523812214184495340328629032360822005186582192235703314046783078481593107561425974107130459235174247578634445969983162322294368244979737141914134049324186454037205414237542765183018833349119596508912101608326136104120913628541247543981748626231001827781694960728179556827967465493747991361883663229918136711639453575482613870692521999901292472564776953665682358217939555828679604146487540593285804052518330752279195561605636754974160985142559904621786255919662476539520955795694565963859102475979868924210238294730856229024913503758216087481222087011819622804839681213491114260180281159978710290303925322159580023493159786767593943718686180479792622018214839335468424390634376398409807617760755678067271432760364182383177797107459666799367584235613334960027347419132721206032281741304745935141590217411013612164750155923317654045664379548595345776704870370376012304796186771683341659724611088795898631398205266579211916871546410456254065895764326987972277608146595341722659180042772061168819481626658302126889088121797154248494191970996418874882742387255790478964745631497876178469055770697361186375446674960504253999647078935040996032795671375742055546910232916609830302600744867100081459264380460112485154417905156434927813326055714591440773672486626099103595788691074952303866712084193138968026499176191903742396697596648282934987510696460460026404978461159536783915771469379106613524914904842435036764350172766249337858666865201723659937481412848588684496097228922479632108968248950749577184980233643396202393309351008813956761149493575871798337572403933818437960539939684507562541776215877649527231349260175475784807275781174794830239118883610007727363752409028258543918097206479867624435315420835641817374190173281292035516326517583926366615813157517351846375661774152256405772754028486648634031321621332612506607911692755316842488011930170439243226534191417690224503283180583974525207511435199386234006738055889401014061239342999638814969605835011938217457852185422585864642244082491469399745606527076811976844623812877191511923177198981612715077016205593341707799566907367662260587825302399765189693205001957672537494072501764366637981268840806469362654914422346784120972912694990645340027999450717969023178842301689321455878277376125622384982430106684819375927043927101419641134794047827793425412938914687272898909066435496734998662613507505571699180597105504090670732332298370846327513262544864110793919446001426443721820983926916993931214700422709039823031729370139177418320891463591465074918817773097883286053076343995508574972332676933801950365167299479103758885792490621581566089457993024792828545601411459590093968667511981152359538603667531822719167237725364361831993648656447502374188474099158746280302286045011257273663138164048624476677759828156648145556351952314229483298949473903099714601012852678285809468560439976155882269011622211208346555957572659490937275689933375568299280900898756401592106938576631486001462519087702731652954248255448366383902100115297130001660921417313663884025469215252350132169148907086091993877544820321490447263878642963556576990877597576569123725378221211722852298238536826535495729964411956710074759666656492350923070893402634513224579516226401481697004510852572289573553015468308232093061710086086407062602340300327231649386481509449240821171342766292572882818849310099805851846058583500331535236142581131563536345563329489348201591898501614741183248478023101661143953637200340518652164971926264721943383999255305699149954881721216141607153390353677230358221069496120793328754244021256407842727142349979119272156658193099728663476349135948449735434098270222541679720853932124754376988945685475439359606034162531934770587035992004542538022855936276568684083142272611459685937740904986228610255227915294326709718224773452885004089372265623651898874951103495717205498198461870196598430841007141629117905825088792640027097749653019598086182019689073721454722882705302782433839097208529986619089419005412144412864002280733058732708895365701867591679241265989032909297237817485233776952056840585922326897992327222848336792231127300421155454924903198386797259543067265558886648041789949410488255530981853559032751886452905766314363046704445534227890464535647839336754353813115858642123200307583196808203402873713483021712743417855516290950888021678378862104966333889260630334270345495060547932172213846535940769658416447403904798204121303760481976155462889090533282114578921175215284311653513937475927925999402313789439761283279504725455765749710676596815574038667596491614298381406523055321952145010693591506822475409985984239907841241342160443350185094265778653933140309075345927388463579306498839969177195642893909852788413830664958165775601166525354280842714119003507155744607690599394067764115804234469411983229283845556863878359976045984620327562388833174970628765782460856144028659326849332240792496622825053233081698443306037034538247087414969836654203353366634369575572842554488682540841528565415179271803539233989575373459466254781081957324156724148976370499638088786354842102753870072867490162684531635370951310754937117536473580270327810391752132298926760571603151405520115532708998044705120587894499985313929509259130099586489884291422954140739075089093205086187299562948774666047540365124219111089251381109334364919748533072275587549083860628686020251143781419746770218252475319448505655530272177951165006451759481578894478942024243254803850147760929901904884439083096349024829867910252128735820147265997487593983282017896163032522502094715332935295774783732778055197427851074760731520435864640826254784055265358685219568852129699074508497780584672394106353466064731391122045489288668087353506528414990447565788098765509957868418459325206272811784863493974293364813903927577971984988791487557783587943715027257644018919722736849964441771187246889749439071608426802794370172766616538639712482982420591456100105285038758593215380580317079756860508495457650818451799678018599843087286866245740829553854656011551315990131455272478379637161395266299304424702205683454965065495577613070241895698857582180733384622042563247743891255361173406914601943154288489307755807344148580919847829311227227880942550378547287244900868873523751594074815855673429750818215064373418556190683863219214222817571176723256167317744438044932382045110820253510884012346281458519631533346386729463242621341355672931285757995199751156674937269744397847379551450687748573964488881264247993228599048096879233025631909870859734560710635771817120123899537979570060226706004967102227233536875110030992133634915549574097673457652436842354663165794061992788496347740029610314017129614283000395290186015189884365076528896605802465022547527089681270291261291919493256198582634313840675546359958514140299031113511921607860702737851380473081451697258839066738564235798870257386673086559945238618163251577302157357982151912314047924205350376146589484376568282799469118923698649253015910990336568464747074594558695862621397435633464334362408030267395173737787539749658256650634941954614001283365838385896601725632719509616060752840174856670732673264726289260326792404066625629640679648130731538886845363065950203342464508324318688883909690837484781262221630132021983597252989204256100970289092436408826154166563319660611871588191574277215723955096958728463384701053374662616434214542053161364099101760773332068526744540884998205400131036157999335685239467990143968870486248086448568720510916099192061317122042711023008235309130178355408401480840568407033756921742999210598033727383288282819309061925517936612627955740787415314864249085146342353382744089879661860809002064512106170433309670064166453188049487329820719437778259293028710195299100538207689847992833612218299887044558218814620363515856177394000964886185089492726991865397475671644773412342401284691848889005041023733243130320356330396220374260478286380904511274345541513898433731611654866046828179691053938248397807816379438856025962875277862384813925442254138517050971996400347384707750020012511590547821291046424233525637190614830493489318233714862783705212194413904745899967106441955183790810367204670612321353792245457699737379468563353008701737479362001715110706296494781823551627055836676185017228329072565239334258684314392507876380417960536029489187126050754400017056555750775136506183747771600877634604452949759301786977823974499309431016770112548668607759635643159178124325456637314203538960490627343712712856262009596236424380262137042443848506933862508105639866120350580586405837398756052444093946723347401617223437459600183328186673519306318168502073607415175400116911550959879433091192269754245155904534720183510174830048941970951623789307121705071505587366937653271688300325697178816738433754611369667429134593116248966781751250382179372702955766098231113370346790926977712859855347095974729286314778664786998852332637231071515960359897694119722118822704251812079179742008872162075009141431934490295399604920528413241288549540758060459490998363074085429097532229392461007384531980256986244689511060778505362259309410087741586400322704124332751277197302249120423179115334762942914875064738971834758724920970457414450861845440254034301789059413649864350416085367996024517803503878731675325977618094885794001963256699850971503385063527496787921033293353363731135859020510346545766274835954181015986475518129644009614135921245644413463394093245936092886958575416276578262890648008553710847586565285138037948225527395891262758586882789309436774090211278619520242410492849120582485362184560711322344841232525999071432231457196708655368836446082448414300986959855779575858215232521309581128480218024824147263230622833970665663160471219543884429673322733701379712669780513287566300697250671299514841846072088702099652241232984059778058480867527935498924522125644778424342924862514506980229167704918013130553648917451412660089857964073012851674911616727290621641085170476070489848480777390870109416599850612004264786858365894638774289724174019310943301042455454886435773987696685008694737021429437754451567485665051161697622278673063125345682883437819621587732375231173173073108959232177461756335357755545387791929846477953657647631987815178276703966983081981807357466324046197469478261489255164578921142059452085103957566225846914101942066415467924638053217662583246918258448234529053644028866314555829049639145404077827934685763260792102100006698223893455522708312847262959902181443262621541135521373908433911799881504333944721937037811033336901786303775880475379645977315406746988043275544485465291433706597452795259925048566609127576292923127153477231117174839912748460702160443430622502788079989282677287723010450117855535473241935891026743040150889960264415428992340179378507405624780944337507620806375687295684686503358269644774716630407433860052613921257528064692798600879098540217951662589696415214470659113203666264474919457101686969984148184874156336511726194886734467720489254121635701493546477849769037452251189494959957832150963844763149982191866463002404797341293933815987635388628460361781215150882220392924469827989383573723679327620879026979764240436660921523429331500984283316224013968050980859589581406548326326382840060316378695690278195601078223560918586824650663807670209253357043093469954109831902542549502895132355217136226781541030824504943320147107764144691170268712672849246771963332678365838348352364954760856649119018629015808992009096650856043952183680049791266309164500439040352356088905098940585996716867498081986730529053938184780496742719170499204177941757615641222689255009551457002689522687619889194158675255262932969533076715416348440227775871279538088382305746530195465370336470128109349916030951193439163338714380686981947648391851388458706266908768446724180529128616638403127181749644165869645815081476440519748777056261860181669250900894835222458272324936229548668669717903037325122967311267708143818057658197480164851876403949501992132302790297343776478835034334283856274462594677627962151450564097480626451071256576572403533051765524482953781961339257682874404161273361312774025547350804763151766311220653759933064864708504306539848766844386455018514038870222931718703780566540088187657102080396940407405960434429743968732320253958806956362390244327846600829109863076131471098673916131760029814464251758577227709441396364312267285169449246644444190489567574149008996045330981134734101883439500963000498220664511866789826541037904690619295673009536372301068752777813130323843654045300567685190371480134342576572314500550486642799510265526006678002178264244581979238949248058428214183679602058616163075210959616279734622107320974007190238459337950814431986155332987673159444359253555954486617934222836894323892864895861855522522256884617779647827063762790191372957863815819894395072642243999145293749342485827993790317714006741035416127155487154811080053312907046000172861019785685518707766546840744027943060572763443500827921224629095660162231620451345939215246887805233443320975679631638495672094727459064299188523472262199216695535360495882478202971862118763041658181896341208121807284502991735912588208713114638465498226338087173528649442074847620803133366418974496575910212054562579647315701691734840422580999405364670195091484591003072019384246112142480352363732205470713405382851991858508752411875744511550295089805422414785279035249704831423997701200934173448175423295648204501638707031836397095826483044789859452106071650990350120803196248885357761424101657078862812455351445971121921290667233639081265511613821597375599124644312790498201157890323168176490398752463432692416484423521336168857256129981701588574850071385845129446437087688197577441707061958359097059436408408569568076352795881325051980878716730297975608568470312642129904495941599844490982844441087795715571624774151725267688592369902558554308568834128561491727291250441873991612394812719311391567040642156579493293112878787574954572106008990669415421788007551111125870836807422209975968342998334330296690939378136990901940789397862848105783555194206342623961796651583716309473133721053793031335957841203855715007364247271324923280158050027294363254351283829111410391971264152272718348742463077308923827151788971768464766116680419037793302615226654323056846609845147663860161736783280162248504010285552455895288365028486998296721575610331819831904935859112681559187930992882555763452729575214533879830206860172314151243887465603342490705570394673092380896837502662673813232262329173838956808549834077231793370602038961479015369829954005870672961034296385537879314256533621415776596488882145421762289165859807076015816339737269551666769549659764438430031673746069158697242718106936597213974498245435769759798390120422859884825464811182733957464226940434174001786415003769511569698792978695260201099246202968518638905959960246422695145345496992707732399825235935452101258398019034359665170953058700814749515493129265356110224078645801298001907294156977648043405833589599150442599980614821654520649111149946881459019667949023366290058410426708472268626288132027427059704325177836406897234681891311796916981590531869487870598565964537033796838164789410811628623964986764278569301540759902307055542442429731475892193684031648177850396877699511750668248441953107341210911665005071956964232417450529218593944367162732709780589516838889847701912661289523152515072303820494291539427312268230417720263729344102379124549740664489525489831822312795344833315482892759589777310699116502533568339101505646675443882756228977454197904909390814838993426620524182220969601166605098060387420009022292477485808303119346638982544755908447246642857998121772330020717973959743621029735976004723191938246835889426898066318461563704175197219532552342093174708785566018639566817448793092547581223354176127320323067355100786522307141405969374498254571450856350944212700023324973651953041728911718461775490335836658172674266670656612371491048734561763356892375613963796508079192787931261298062743111717192439087192719066087680080710937457770110729806740810813498219311355530273183404286529734789005212258807181934995803295733824424372950705792212718215600594698456639012921976316587360563481629063183907344372258389639514892850230736477204311749457168365775215914763398727821741832918104573375494519758406039324781285905410803234297643672486582414191003346807463331003522931207059029760139930555714313902050919064411496998847754027977109695467065297363289261920173344517767238080684164333868844211237735162303361438116890111467314166660997519382995565770105090404448853947781239311442862047262462657165807220374478598116463448457098259690427366085266500424018358248576287769687610688285446723624875869406113286561133761726872447529195603059678338694443695452460807028209042938417458857286468766984075253671119006629366263183095879733755187013445905747985650164439680565362760197657415099902237547651000328356455485090790582558995855444257892894515417241688532274910644337631455434640945955603302446533109821697358932204404130121624574012777835557793526600784817369647749937842527047337501322334630400669634445496811814646840357089689268207446196565402631266587852034076269528044536700994479115536730657801226000804627047090402101715133447774911050335533493359465733243770135024718989346465980144598337713388605361834390302883597851685941041451407634405994285658498863512277317048923281263656185063002193034294936211746882423750346814936084828716834427701907033474318143490577765866495471344965452163267721943969110527001484987750132805177157162466832851101259786514749587687963553601563193278959007926240489128260073171368052596502666954380156936302065801859341880291118401540763490467089151726729267077283810375975905563131985023433276055689528069412257077761926457240887220754664698935831841668031424443019177297343989263037279878078135853381451187624252765357900303539451489065047653695230916017702751592431267012957919773804505514797024076141739354836955596677030503908629587362309435526807095529954754085124522462882714379669499477250643575299562833851134127510852658957842084504541495580486371296112977396618862608343937777786897649156121661275867113679299975644166534896737445024726888268491131216696481399266210018805078415676729482154907939912003294723939179436777289465036935527510396570427156897669513023950432998807789752723237385639991693382706805694398164425229933248505475957402591483164874531366899839110392644222287580967489135318881223392810175846779154137922042022879869902501800139802646454242247569694502876829125315872633695920694316975545401044246820913322370350264852507710916197887787724261004096823773347933524180235009509813518318053737443242749819405545659988091681828259834856528660163837515474337654394329149649402142790029575542853978429069623339035465524592110236020511842672209989336057084333779768361514734027632195031687501747412140326124526758202269807991832282814473358431799427287695327032555128751693612397881922945428057311323018641632626446984011076425370023773888240712964891415317212667640107101110103729050546912111027525391409795471061075953918047137722537402700207541707257157143992294870992560025510786516052624786651306825851313775015012702705232649849629122188065059877906534599922129311456597007939395904499333860219235318207171388340961451515142942619936875457599629214215828310548408330832838502404208231033159069043669742512433958281981589986842232422467014890233848900796741369974016203161654926787866389472435217747833828209887703785913370347612477720281749621734437420625288346822109471511204523326298819800565937827407598604742174932195536841716157728664475503985512555195497325680821844005400285422724541622954529034904180028179388432338686603316838957951192344227799466865400794036627195279222447144692160541258390364709569114747933150369165803773048020198179751317882224586107721999260027873472813564204977857568727634240982691286326841724769883457948805338090353297419221099560042913963482620114323646271782045522259464451314679084576164386445729971745049682922144483850882980137101305328141234674432833800678808596308439071824799019592611526918208325459851987400651011650393510916751526419345795954584711028472460432847688927355203887576073804056906439354078837332055435978765605287096068835350690167841383404231861619349988417983910336439685269978434867198228638814717348413199574813150687940507300048228640775412536648382663276166803196061930102660116474441102934556650366552879716131673412286587640041394582131910669867504786453473689968753960133649292904206243325760399028281773705655077572780314962585849266497532283695735173756728162585510649281091485783368159816541190916820046917606836450388900615768077221718350303167314945462864217922972259836026622588057188888780961540132069784130323300826938369337970849434147950253629253835883393663530650273502042994221851565549106415287376060636037774200136843261491055297597622033085120082115392677066733609039730561533648392408690363723041500870183590579008592621125209856036632293326462723649226673586449589466996836847348449011685387790276432588571518747078672595097872857279126701591045292089361571852743988968593435142910755368982554060979267929345451562899698865765557835132465764628687863930227367357220238376065484070382952546961422787903367942890267645372958689764667795015161988185625989733934158696230206863790787793607160739561568001905948691345070351592185952604839661173454685563001208393305303527225874781231849331331207132137191166014724961960388540042223483764248309226700468101487485781420022885064017546911009898816075391007442118893141604317564525641775901119559449871567716936231967914532559089903062494647794535710754148900627739831612037858063510985899172858806553698110571409276170649762968709365555653318878745397111402709309554555725357363606196293615129733930368204357130714857149236574835895347322499740278883804509442494131916179991219164062201588466901710225058844260100066555117328161058301539364181788218648921038997890234863443540681566455801751327169757065880242315599372994895151266867909212134462664452058414436779851137741723246376700324918606141149538004460843921720754515140645880983489630313849645184763708486616673636904092840784870000638797756599257527061414540371533474087404768428477686328198700391887758793512520810137391479656337636465585931809799491672619312970427570557946599681662520122562954628799800107380072891957122565355663030383944773835875622981356257357592847553244568140575380547064156795367713806637007738130259963947195330058007019415570582606646929043158345115525983170845239427232253759532992773416059937161551436117358650745627816921252647162159339516958313787610224084240800495235167180450767335635050671556673103586910806518683575290634941489184673559524010167886817151389495209409472323876540782459555559923465895966504408816849360742398654701470589108138216399533422450034357467872171279634246075921975980011393056223144674225534150848037139043143258077943243169144780666404450686030460260703480668612241578916081250489479893373127295088656922235953112650782717293196347020729578216097851475998743857435001709098530767359828981961903233147428674748529090321807967912516997230312708712014630086256206830775700498692451657476122551969203416064152905711767393883589413283761475697456950261058138225317234203184743190661216309656753499920205700851164111887346997137551878348157754054041375860004468030716861942195798000050630394328304204661580780908211740393782510341352398703743448551545794714665585449990154828105198949367033954195533607719540892841211446369021021519315295001319015643800383994560600050589953145251701308804000548552699714405400615686081999955744145801129926870249832267057834099095594520877761409672271509202662642432202117625519692215247404305030339219273562746679800343295704325638426436995120231312545787048469542078734637529511765414353682149629235148820906229606823991680308962731200860090161852932350458003874858535524140267651493695239751559370966843685223917693643678454376217190519410257542356235450399994979941924694737209164537945498817512294118754321580849491862636259796281368750066620586452608376956613551731900198779792625777965777904908786408589020080987136618556130048977826288499061928908225675939178096091302316373506493292522495793524677097329478624076894711643524600385770069771542259402939972102967502806113995706749680750472916919425877316622076538527561355151315221527538203563888387994553839792685879255645467640038168350128704817367974042341129905546053161253419223269633276775865835813495521280567399937771832805588479574930105736428157459501629180958021479082661889598752412739583034668120180472719558611798518436698234610352975089644164060443451694743790926406795468599888332324152873616472975789836643635247265395205806588417104444253584253997387342822106865082534492899627922831060122558658474206130371470363086349113588742844521748685759771764852685685118421389818986532518814317564855596321138088295411441573949763546343980856371242909615563732939411101988788322143843836697461481684813926050758981659506331085484162657789341962328883195220363363017264928854732467902420263645480140618329085816665044753973406712406918638557879161564891185985101023669820745464043171383879981453710172462725379733062734187075787340468873878851526127744674593541063450807459977516925034565891596971405107498211367906571093765095266363682425142349012657480407807205087482908240470335720528793758801904806214752554098008753858699263355366165962986409550918295801068318059368213572098981590468711976342139846398295197179058378553205887384740203152670273188677276554444127049937918391298288963541815245261955964510616785734599336145430276597671942563111666249235462920343170052984476768844363521589488353245077204299018100823461701956640425285783441975717753768136176427312400002738589321397551743281546275582685670118989935837551001867434345600058770452007547265039750931009000699130376673984265477804182591407037384424867916097310655540909335397887080437302507725722779503350501739931762377850816898458385203035850528205055844462813529929481642330138444448745726783879777191269504761429182929498660187324300154444590254603672202954722410356426687892884287924513051943197674872082719057522249614315078480829633305245544192272272282609413198072411097330841587566779302197533267100419695138597558633955731258976444223981254206746236126521846891166514853508845128464916116159380862514249767672126100456148842154873715156111634562366290497985941097905063130924627350932639706230562922765005689825140683167065382844082957611008266720870675991612803500751386646782231400954943216276007191195779191331023758130142963666091487126655092833410565907050731507650708818020641476438379185706103006292397926447100084117795911508326027517480669420464323914994157317134904416080790382664519560507069633264087710841295476841421700391228359890518032859162105382066061666922067432017887755053625896008725400034548867749074463558126185616678294840273060986779502378530018439243197587232056910815839250009879000592397545765652299743740744910265398144898817049028249436100038423356522412571713643851995074016411373751114312058622921674139974977325586742490258207085030721459124251119851863607026636112454366153832000928296680532862012416159023875247559726162848753231630350855140824568723697849843014505313996042181454590695302326087491927520014288986392397956025566268927318157832456081252248365153570613641722716135790188402844971965335730174209552240480119974941066008300001773663014997150107742774160845973312462033959341012303861131330867152290713961148131518611668337542393217896492454622297063194175501340893719627396625464572670586695484406768282186288756777631566638778455587068337184392545396444727256889855428087524510342196776311722911872396676523750409130180855285721725175175483755269043646811556259114925662055410497132612809750227476591988180442400983792527832837887725382258278885146981375540678288292123038359127485697700546518816846861377973069614978696618148022217685556112586087793588916775459215110798756277295901068603598305523288203402732548579196935046629876303084600303125439915057843259083255975271439004292797543255694582842947677854000557568128299984753257031784495232975885783787453708427309514175241123937964026262694902231487542799075181468297288353462471058472629799212445289263333339957845912311564485504842071579948049755535058866179153554976731811301292341170703131447078316613403157760127670084413261623303653613199854378699892641675939770366041404975450532798997604701697459688940397307756322517686068532230008353122750510929912125527908093086440763417360083711409086511789949634124353200153022420548754493305233844583757545223329137059135372358940408651443884444919146226160736163141726876396262743197607545427532990239425317953192348927351474000218192241374188509234200478411221063221631049517959659400408980074339079341975914494124357348568314773354126291847262627070457364027038732802930295933930270533244067232230516508458038362623813333198901452776081829581289560815225175925420909105353903520773251825581848329216924054365096256614951444539450109269183659388570231169015468271688045857146438301331442929862171613330278494382127962268899682517690677226987369705959276899507209746326879745335933206543879602065678470332384629383323373795280564970876134716643360720767866366860198375019150004955346128397409295953919530603667023257849134376335492945786523872920169471962409295567677128182746595546364993144659385553483193392947516784510162915123316531536309647760212249255625486727762066486161581770500942746486953959754349868479928234901168379654034850482600273298211675527407317319435548685187226308785811040169851279772380080159596425404655804716208008845056474181971131144513994940716662680435047774646298586971305975607458784212716263987945566824011400985019570908913052768184339534008108954470421741996529193703619976225014118795710581644726355233984058296957212088003644576498603559536082578600410174751832312503035989293853941939498156810205596283656174942563186138122826845467964146569868759522518356127155002844801951721983173830010838950482845006439267215626656137227031552900949172210236730787819819551390938152484281087289005119060266596406995373496823742842473472466962981050172733254621624666348551418434305966164209938148485043425454326982496564115979721413922570248913510538482288574575898065755557672831048810025860984827609611935382429150791676368153542956859154485277359356051665905408258942589523899821376164548599703128143689130331499273282719733505551926025912946227573456132526946171372209457716238434840035765176687047869723010032618201743871118782751295382253422151945298068914153611927644542645904065083131270071254600999419266597902198211311289333369744111058415691655178258477993985356409841467255032317984822839948553010095809787782977209764664498612962499596412229169648242868548609752228081805916546861693192552013373785146161009546353607253566309163503536535479244350832016301349525493135728684239776480996139729357888860858413982701749864148747479013127816870988146624405010055506017117905010740317096136742728721653747643146035512016697833365115742373604947254587255141210890701588183767890352706622348497088981007883428851764251145361649537794486591818957086219822275401543030711782951266883327088167710789845860131683782961214180115800950825980785992360241266919564450096522580624409720237360007111131208162290292670242073398205830606501345351773744247069732122567657914867866709327833442591796955073694346719271286961740695891861172867963658033731100408659910344410229477910041836249494992505429526070846814387034560278190068310094859752622030422392164039152838139378162646541995388706493576919158157687435447346189332663244759868323181741952620706499615180138213529727629242287742870841815302843626276975075896648916971409923119610464961615797006147236834963130071002812790412176974795409426921414699804492390165003268346482289969337542211898289268079685906832487177524061998331659534547207731868664967547348130447779819954026540172754805925806451848367786593594589497337414165142359579207844508666904262608085814587524034109772548023095977451352976439500203864170330591014189614015503254209919583489711366379479589144994880179161893777086067335337968548934316374747109253823596856822338060595019306540260885287930862686203484798268331061845862215208658725336603442977772064923277458074597873631616484594390594096272831493963952801877282904545623765247353950298148758250061795295813368900779486220977325683549097801245052995033661488445756162973955709121877355303665016958498000666153591667288694379470716989578804071629455349748190871261203142513734291960985337063136996325224930842198533622653400498331453639117127657573435131638268473843930810433960365774838047140512995829709980637473361572910273308062345636748169323614240138158485928856369931929979293377000662040807554070991522060411244409965810382844777299596854054231475625946394276225211645522972811623121924535571754261808458975673525493295867477066638568957487779638332241527367807448736321765240772780165931348157549432164705409006760590435287838115640712893701663418614482235134433759587465273749068839954836092785704183345297179270293281858943940734783125689400332684911264269522591344631663768929331634705614331946740182931456290827706675627336952078806069303170567252172314816706839909956134945471327587163450702608322630012766498988295462273743588815067818433450676185048361266001692657619527316924900581785152173755821594094216313821441304270738105779975428891479011393214657997125418719527982987020724284423391747531150141605893045125047843632007433688689857205568105485083542011878734920666056725857766602617050051090545953990288924324027824581847645069467625264028066985321136106613419125869363971219680656254309842938613939522248907578204772852825028490484803261807258408367013382820815842546757122660346791267377225805466175354068568254688748246520779912572752465387795203615988439909194684570170367075661566907012262854506302404901554059059796687468949498898287123079677211451313111910046743531952726592174359252237599399691425249448041250426703309385425836898819895843998153136663300354027849491322962096759028868312382734498105342884419792186667626658911702114257613273790193478326624005040422527722262116827738440213146380380547817911808551045100510694690254328289670120125796466670940455367282018070746854314960261977600275390390073390594979494370810261004277896693628052195980921007272282898360839592484389226840379622651433042557303628155333497233192159714802360365314298992715233993555420811399881495449850857487113760934338471174263543611458254191246597503798745099679241167340569356610699815359498744128786734953927592266442993295415931846817234887323803156501338487143411232500421638936103678941583907122233497079352525702048196520271161807546252750227216119918451989656665094171299382472227336530140109699611599633205372953724825669914046208268846231638269512764443074023091465398242978149721515208918312818212413135029794729776021591853713752172121318966957939164851305886783695497508337794731534916921490288384963278410435669998123752927118174359997595823152526117606701009613995067345977495979715707718436296187438583468595793910310926318389594986364306062392153884636448815852087640757403616924821206759682381878527534234496084375746791608269639222971690703900684594411608343697409673942540867060507528671589338054264854374789242026768494804430284923135395255345339872353891915208731966253216445301026928678614572081289319689816048590006188459100515297227424599256538310547219267702965922720552785672390331773580632000352432915865347900271491419165035222792872717466300237981987135369964174923649567806759676239543104447974972365408145985359047789907187565887323949510110855668398881482570414412211461188062927579925624177866515088405467904443206615746942676848483046980702160346555207152834777506282660463768428950536515883206152763330437458095005176098204483750558857845527032574124635454863517610785069554973423037688695341391372502254741247195501138334515014177995571895021031197157779082350811299430188192413830899493407430465309254514250412668649774751414823287976901739762281304094584558016549233271017837384381742003747535889815427376092238147572086919462147706588888938887275600001760606238617957167146532154129043965957335966552911841042881595929551769927808533829482673604934310043490769674708150901346653968388291158937682795060487791790626563930912869878507007583647158157086848353880123213483726956353600054407853523335634537847186216085646653393035660353921627939130227417392845671927681730423830206367479769583143771219132469557511227516450784111517992387609851395106668435178861904428959969819759239499599239130849070440003417150021395433435943413016137504066121172759501639483947387723637031003961075910477364304424031510116876805073171591807426270686432788338255904028214863193920709766124941417134235142424218994769099227580456693330667502783230288302114657544870383072391244644053247505314385126941978517743828561219889310329308427635645474850532966616689898051487588924659511430140959651860925249410625261805873288921688273107212796758558913812902665964814854544027081931295768605419082225127863209130295391845962620080544009405373898088532693756185781414723642993311700034036187047544527388618746316889971767983167971017652289444477186986979538554096140468598611293554117107883395321568579825173595398781428121965422741851029853485274782110155752774005735510257193673444657794082190563335206490441894713077971731923307061825947553634971869153490251861021713764383669229812101680168979131866663392262200001707781428907228183301379337789810273395703414209024666515847083139022021109095453145168419968956148642473084402828168035408819382593596088378513260501177915493310270408424292886943292392654138955443189698441747199808471753442932676032759364087688825488943335713247354868549798045151922989611265103381018576615998218388184276191490412331437981266307649478283943086009049789518679583306936805410886623999718464475765527034582235437817738773777395805531489451743474643346304594582039903121859702070356256421763011677044649868674304195685280610919485703971464755716848071440976925429431659373457455573198453430094329923660662454362785704545510994307895766669443865265353017056835813226123432894434469716405143046441034234390168904098959729626886877129360985066149839168498004218625830276900366761814682925745060075440433053865757592064833062442575672140043567218110216267803872801059433334733564188481810776166189700192292256767449535286809231647310950006281728586112968244720519352716902034511477710097493310798492372515794483442750342534167399852989095661401136910400127240163416146966891144252355202814121734187437515709611023103920484817524140693458571830122424971321075081574463962437974603953547098871208650163079749827223682920358511176369369684078259483867279500049076267834004618108333920495536884522452439694763235754457253474414185291277189392014516527435302542912641676627461965078259200945346223920934479900668351146440508467593556431093922570837135092060903867492930951210130452869306905860076256770771465303723267892707587823099776979393706616932097480222573898926941606161190126248222614392229546189832779011757861836879452863319476885618885849662290910814425071706548689620889902836555043602877313581294063927576278016273642758502486267593962623584169294352820630233587423271535929220866843353472421949520701117329235250123296874551465083876248028074386681901824299866156294080089335790016490175241737199180391689043905967302706373989261537103723198761202950476357286541836647464866119647198838194570785345891223990070506644800410274521855105421783146184294267899141215627870917176794036274803419998185952602498083821619711139598699772811028486491778443458659976157958085953566034337194876364965735461972357717471156419587539591181603884731573798680894735808347149306918330169908437491662092098743834194778025397556198178205839348483463463711348387494967264598227655295128611659924447999170901246072860815942392286141697584496988891987054961785819422396389374171539252304611996123564530057516641234256758788129374408479632831609956516354585276906561976048704777170511659975002923319533463626575526926881285487914238679162819362703819836748991726006457279673125747354805279131883465466748870078374553196416419871332949304189905907004941340128461644439492892699591847608420841606234167631124603455872913115023100059449987195419619381030873150102713702715579004906852084631677323985056975868699494432887871018496774521557812890032002506842117284520719552435884807396998361213214240101959659649986006496678456836247624902237088721483486079500440538154877270773493786481753831778357220771987762007433893293850387469961029660206080748766273032922314090074244072571279312955238423255582728063727024235293907615342299129612504248889469283945272864689535741995373087536855834564192044253665428997310056843422426060772920540157437614685727595248102409065687919694525542771217864325245175437052055783185866952466257235701609516262652014224615152077286704447973305861062715860221439285471648721262838913876737445347783892731894092775254315329450185278360301141179618643145311324793934866218015332690406386780162214480318533873095214877475902464676125362343471737985417840159217907015701697700518707267322557238119229158479189839972866179094352204159206081271629430447592252539122388358100282670811324317155848356113618840196905021744937988434517369728473373748387349812782305711099365853933180786081440665768114264336156321169282548389991724403945436611314323437457163642848735482812695277614626949552539835638430357694660508712054919741569471911836949579425117123695839398578687688495644732743467030934685934429860432714546750040896144326262548377493117918725004266350794501963840360531837900059109822327775673081790542429612763075343608246002669122203693712169949474795696330236336716060359740843519838262038653362631247234402596999355056406925669216420226859756850665994596654095190412562796519463260237901587918714684830352656310630734037937681829039244278578965212281518032732524826736552723452684681343811388298903615502484300923173164662716900008554914726924359339706199642594669390984426446516934244681307015347895217426939212387631642088347321923227245297412595651461942190424980270208970523889677144138039945043248271114764371486100034653410157015614192723976233963709566706570713253022790706032936138864372502479198485937678353345876633405906226819134901975758306573121994310287669238470242225869821849226579256991892292338446694551761216882876839716998763065988509051770184481695017300292865975189818103902753513418538015921315081362526789569035372764910936900554400334278917775600390430345631382844281715020425958525184188896616786759986899079466347034611169294544211754286107236337029224396373291716031477308807040337662440595855750378391648411698807302113259484109391307626866109321529709265640075709073432052818227962189735831927391054965523505530140000787706754368967774654227551126002424233652262406285754285952820001761692619555440414628866949672597781032628210245535042536186152878681752516540077766492615765473491078345236555049003740415380194721330677641077490717235819286692797531062944946926350517568361405038380591605351815453775473440828313237011937283182779847016250989426929860559303051564215784410457500417176024618989985567227746335937519537657146075890878670907992954731138204971953844214148293526422729256398227201820342403312654494192265555639522327866552720367310151696801057426629501754125911230822883575480348391206799005163401262507427586745208683624365076147647408143444549141783170881127023060068021600652703491737278313130830669683324831298218129787631818805245712685087976860820549574197272906832485100173559262065518417346603978516455647464965434905325046159632560498533309279194674809903832220978306196238318594170118688881364733472021322078001426504619758458280376792166053487706356565721663512815694053362150742530755912889049300751025915096737121378268227824245139135704821581588507300786081309452658154515812061393932948234576073808953784494005794990455638564156778044067785418366938826289102874291746542087496247738343273705158261851970795318437686934332217584426518883813013937843629594256689892640996981124092161917438313647126966850081917914239417854032589309129772042343465562351867901305033189095840888975316384602618483040452057281672536008380365161142379909481894779069670213169400493181562694839353113202242987122219181654244643572309072494293330682103803504164906872425765257280677277567338912825094214464725621892729754057972642426735563137281864148723000483977222100144340151776065758816471219614766643214026259218899537117566818093215768844587546346602677621425692511062919838555250655163959410693791731809243554722067697162961791578579292682912235666820164806747887266525494192173273442308725315762720197234884681782276166848273107751036056381542173908187494735963018529522486965041167173788855383712725463447961356969495632987687994581244569124244201139283200537489126525256206593899290567785174163565357600156435921446220175414888114833610168451080291024650540954881852826158244708964439330289026110029901256680570345923555251991230322316064874805422728319043156723281590299877312385224172590194225771525893986072406457423995271179891557666516753834613246349392667025492485438395209281424812234292378486223553822531163859480661586901810521580034754019683181879822160658849434180723272200259447419686922664008485947218141706302087911797110219446613405180515242046931250231464228070376254830158192232835763862364398154235045493525449724468530852910536378004544326019253213022492101086899419451120439554484739223182171870928229303308382444214347430598496873042682012584884033235772172174176835265876053656672359258864525074681290060792819632434991662416260353831798172142503342407439941417979954707698953001026764171827128361944625623053705453439905478485668970238858659425895875704207590997523106266458731220230286865441590577055619573304872239076240666126532221092042158857891728549099119032293647679420459399332054243327416026518411277693683458950890266601900839180980449499284003170426926465375150535785730311482734688255944037504376988319176299730904293197740019971765685273230743746249363720406474904728635975837698895916345506766080827930717498883733016851348335547687862120547466416671622926200917081250188051872779619587287270974623706797812903782819721862730808342981377173940986696064464480429100238132238505985045392806543219896986818145673615903796566165512191257348065083374158897082647508438792139720468479718580417025615849300846252817198924743575602699322183481334518423777291925180885795900908058709157856843207731577432182391592000981500243976998928329577025989629015025594977912549646590123507151418105209357112397992244036347883960732482918329425705082280048516539939473698571057232149617067499389319745629380657338900293784907193708783173807696962497312802870655179862807315651324851432106794739211155386086939661123131111400309414942338803464396076039018656505166274960800670705072981143342610112851835191298860237269078187850302129971597070497812526670191935800565207573297664677698777056160740953095340281800493278005943272433006540006896849344769358015604873996963565177887883794228714248800252040228836534443197559275713169050262706454293269955889662164977534874663294054071829201662428227654514549897337118516556705775536148407074322705372688289707255456445789818152154274909462996899567748415368786340995932851554525495037772472324006950749951717903015776765988189527568955645035568609419111266461515792861733663212950056366225025244272154476109401408081758748353079172510092707140444073942835892062264284662957719879924787620400414359362934648810820022220100044608672339364181502897044688076406866281049610772031317978231940698369246895984152625499684547734711675030684555928577649253413867286723394982472131831480329995298081425701473282165203648187493198942922241948951224253804026145385397646331142053445352165805539572075483949567887386172165208579703523370732678475869939418143508641410238871327619234888653293321730898667361025040878678646432687057741568064564834310826307327776075847459621802027470372870800001043756282254480332677368133297583742589523863501367772682107067932997884642890457467564210037336925444559187203118126460406064521694828952504244761305446442661615381096376280602331948333319904714646636093601335299174889793564809164421489539136086803279924661590963645571363681348901705225279663678120378140986306594357961656793216580012541684875446850912115866572513113690475467929663403467039994344882445250724874555012425573216153586524825144745591497333195889590888107508414704840270219065446879484160718744058712019943254375153714465797466689625570574163739971813751201210635929321615170566562408502385458414069238894469873607068354071463486942242301696694272734335800731762062246583191689886989195194415412352720144822524032444166483553181689061827521157348693213034016939302980163742543255275420961417722441270051738527221672293196580688607925442517150831883058539808096063020137724320528098539283136155352392364796579116210477136313671964956235504566135533054771906747168577437174074034128053908776215669039615904583015857985445401778412061248018205067812325686792781104443800516193445537793182762523656886906621138680872667716782009904343508704010409744640379614453946742661689017243296331111430806233978985446329011223054897244638809503194298737828624622609345379510187408656138578950653892949938231788958292367586108273015700671119166862657463398956086418903064758935324234502794367087480020071523772417556902800023312779772576528206674847940067891884961605850951720797913258977297264918103711635697917547573509106274164895948115098117050612531844416731318097177609289575761218676638103763294501872119566270073150023675449593755985424720250267352939845391552471345798175923555232570503216945034401929296222237339379161979774969369324237173085810945268362211809068347875568763821072608984358766625139808323462061601903873706126706345963013322561426512713331485730080638600901504590630633209561234724516083628543699629002248485604146728288873286574006997143226517574970526869113106043741401830015861853433783217720432026926183541812180087897761658854194107735218321041380560484561306095835995288071849382083822314926074780633228646846408293135911892710528898866386339319809466725037215807989853485947722176562689845384930911117149150756739727844885591506577628553975302796371150996472938868524153264818489816809789469096262911957938500574307081270871222358689876298635903882419657012395456340477028331063028746860750439478129765657425563500219390889542237021548507287966296819302619721598389219612249448846950795451476250280727130645711641247445394641577817823437564466683057681449533471734313513428044251534674797648585216455398283892648890292955780033242354825614835659276878272102376215047124394401216804136290761998306476336402152295917733585184584539349192523630977830239305775417759482914119323393806862991478235215958099838425047564138368143996097197444445749317960311259552187820280384792282106941230615813627305922113189842675128905232236884644980986072289483328162698985918174253358877804824662366004659005975256617440141358713232143072489680269820525040374384991589208509574509210353261782348843169982501987900481254810022106706029503064218509377561012427920015789595316066839527954014141071544510785545872992036340703717644783730161614649063799500906605544651054770985911548809093519625478607926555690419986578914288451160298803985947350336135792541601261271250235144882893633056199713062998684105277612037081171591507744577163604495436188828221983032309413397577773913426270046145992345702006964536708062547122814979181937955627745358964645718636576764561200930050981385519094240353336821198629687337861622018954419351963415197889254899988277372100060282767903948071886767839095372722709812429366098886964549954002385344174708120546476719193532420935590529955397719871916921854107562606052012958456758310799079259062696519102918419572123000228437825278746249454466040103336877877581166758862474372418394023604757859833426520653894880792636440627087518861762924386183754708054757411497642967394944743775201587867416231996684492880266515809718552042418844716005666329666968620140254764879908183846249440610917570321320872713110465177754182866073390809924630967306170250309808489178303951161994899134617264642656346457883504057053490395417214657730140482115201811320989732974147177617837641382240921519831173034153105058504173123364644979913097908645842932926689001623656362329845025838146717786144077838535560160882955209413984720641397764517984341002705703227010590649044576770393511142188010986215806505550408691422283662905074262450214522020527915224050830653722824953981792529227191832975644117412813225277582752863354044233552405989026966739946984222410204414463185455036750981642700182321986925330756095829702471589261276247914747864078203206234269470804513349516414662338724732762652879637142002511475697910351054582381809568428091322206686735601528703415317425351089871670752450909589918213732519184165024176818288121115038341304734716576253152157186542811109139351189114065352723944876085740290113744554157881393361465770877279600891870018647083253366765627254686538392281218726302094918114930717262022024856072017557547436367433780499527570266595821805543831716002750013499561215230086938390829660651953987927095637827595050896026169965324175900935139256442142847108629902312884121109673617917096384669974580486488870448699852435439727821910905244230395059611270870283681725767008360106784354678317551935987315426109330950447609605508243658033104934333919770760487296433884691807519335841933753393125046017042204457749626000874542167430340314205757465013327882357736298774063046980676318287552406163303391354366256092875908810088832278562842873714441875428174036799587554898006863574923078343038775473739548692892556243304791723202667560450796240628929733208117183960154567437818708734385106941740406029720004331701954769485625605361373489467358234676236395373437219707745804041282478541551070907457618762093535005543473020753706148382663416945921361452858572942525503293158302892118012498520785800768211057457685995620996122961171207593089446878429173034900112059078190550346442738281979311176994778775926672174518777949510407360923389976418765185665221636693020349422026545597981706676937501572610417064717920368405794040775406436575248047627466634918413874074057333246738807235323281173083052570468028880441710417186781758711686445222836359803321188869283261962316583605914180708865378252396736339666555685912644475650016887835984890058298061125143319387477303493126720491919216439274075726636808401167870142884112936142944113242018432546774471733611091239595062721635772503435820623453277432889487462822820348565551007562607820445276062493877802877798729126656371846181197745348206562181982103917362005038432077104708164761676422730244342056768585507917571105460587559738666258276756186962074585618556334068963419511867664165644484093501346550744733587956752504820866210188032500173922729125695402239258471784054283783233244283497866089924799501702569224506034205742015289459150710177976704281691109891503604656843511924732282496478828887207349107111732549385331833620866632892814592485391259522842518323317809208886502136642200565939882670393591600331225555288552334447342087375770031043816745792958284541358473939351316784359002026044497185334367839857743480351458815148820895532355267208658498890504586192799650146810862596685652698333778307093387209296971202121434104546944662544889387222826128589137985379337537735983838761023650026617248160719128494442367219042764885392534672708601627468423174517634705952642229585628857649165887701366358739441801980081754114820816694892631883986546470912874654697102090563801845817305589342298645799092826370739269737523669303208033413011566620902191388297546715850351835707746210061297389403666005085842632094826092762096691780020390843249098550650237908247138036076489101987628869128608439725558831978623406092071480238231222022901901602064007016302414763740231657195712976935593227645788534224530187834624345935837337359686387183312122629056571541318433469083660970161662681612936714331347800674223484722604276817194521961079794016286064780785117785541786402863666874343506629583779314262337988670906735561759089446388211662164733126680399106076083763548277973224404040567011168867788742199757198564465511583270810629636593477679531689970967955057888917657412873831308182686790846015070485077338125654101583919806662030785034078266290195576227773704022973934629363102076884928656789470614101823651286480478395978386874737868975270483983398756998086805105837209923933021508844758058594353454984133010970843893444797409034951026151637597918521237182380595161984391018738085275803854747623187258478722133624958065430936919854245952607455045121380838455508459036334670772281918145617872676792420324420375853543891820540121436703205649936320182196895456969851451416835685694111675693229616615211695832869424002021355282039466801093096922356461548560629495901534993805587095198742369290892418266023818720852476418336466479614147040467318351339589682656060569384587551658412972090680869321748101665047276571634983370257996429721127128790009489471023522481228172768966100585876241273002066220676666117572664365389541985224688996246915148638048288174006635838776888826485669780762180198279134517384010815413153335355092749021459906690900920959763237472491543811565243424841789752757237527622662654904450952409326290921186470976808710483017356599450654104289289475498906454086371317945706855826620187931046426205581933830545893175962353220689606792985658937026883443283618431778129890332813061351449351854431506985646155770262362284526591637073632841306593250977845095001010981971267874353388308493050346759873459389856710447616977613195404474619470862660722056771146593494009578531764534591158399598914619705027936703219765014803158447725069496037815189823567432334290113699603944015019969145980766216901210135598346313326287577740548828207561827713932550468592914776442411715995972438509475944568996841134690579904884884044811638064514399159926906061057768480772991647991295812205678845366712256095375464203939465351771700665555197182261776270105688571334980043352664914629253459209044283435029818253967670676106811251401603427885502370901274462385792188891294882844124946050555159126973255589859075864714649420828950748406433147301806720937289051542291271088971631206019303412539007560764537068502406700908246951248509558656957184262880095388570080326139474195887459395685725292464578704351601149948000798080468972026401986764253446319690760789609374369921156059052755755380314111256746012725327855054308316795763278282656913690208106425732513261486607871886412237254835560152557446580385251251132963050844349613719069199376822132433812653828780368775350175641611699481686738144699493704324462580613657289943946417670120018509449908439783649964619735017216688428670194560089919660930627228929098051532728116686496295064620268879786268089397543454219114677459692009869155608947792817354692241862153373724395994643570660766345309429768833776158267722651977804219719025189670907676462762261196305607638137767070061051719923377798822535687766702646420034831647413188819823594429969567284805812558357211014186288147394382273098786384327740711623247239694622314279517851923506185086512021349098685219817845171544642910792305918424888044762449362730504929686886942466635970031846063133873498719492863240233060574427828648547426709606906421016547770760134999488840540328454496439571519196513033676109768206760868256021068992102397430925099667058463899710286776575309041162205213918890773850310955565180668027804009752243293614617457821526461232137748145042636403007630329778602496811428411253133224292417478878977464704893969754218795179314960938113686478714225095763948959305709464782805487010026255108075287798728758055911322195952512271223908443392984126189583552511054984091921875229419183621739118499348613438451605391224027895467522685984462006354049684775305105629496411057361279642707014121956310952439016670782495438255066543485196551272467060688669402899440179154707330159733064755024225228337536603628592054907224551104613743294412121992736481525117068454062438099453785041880589874817693390753880137703116935230075312509072014440990052751688313780789381863245980189611723482263624048440847156598555360966493670319463026588331383840537363126352501326931472997418095376736991043343925540763199800010697253834612704763058710217688343030667225516113573521103360525287104391085740591589398640583900339205943732673215350148456589974561270121564001827340813406542958475168729421057594262532541389750484178240397438832388273152485783140836059163797575711953688837008700447165707808457495793124987516211763128317495777070958446537778569464293070703130669217107362549454958137038885151179577620209849194888334637437306459770437026561588484699699726541589278685659535909553544519549729407108603130753228193010850588465952462663785498217485073675845432755180763133674356200544392973375531195437816776017577008579514236293472332626008129282926377326607571631240947908052514671382948456057520453962845754650181255664036129518103371733656910498202886551713099922112886794408902381779194633324284000104734579371689806192208867560423785313275960946501364391201610988158571656980992478638083747047710561278905802099731687173788183115773667429200693625370395941805345097288392924276079920255998572138394421271611279713872270044027044762746842919683308262796693998731256527159687611385925891665750476990754741006448812959437123989324885037410111607954301949423220055089916130189898308452284965726073070783524574425133606630538231035573062308833530446720531978493352288117372417747051822616024501465888077998551594981651417520423250171381462581952282377164924527429346536796622175508980261865254928147237106892040154822668885911072627872130578109381149691781717940658233228444835660276151013510699097624806137077072329585512533348293438009665215767190225623351148313509558723490833756608464309773067959088233937549361659573920311112933633932477944408338489687099861347225800834687636611475699240106038100519260229442601279030505942376294956842078796229855637240244234583593730706416328955102102762595654270641001962220018254728279327899071404444140419441107331041241283550491219207559922039226496833975588169024991080841148656288004488795110800941383545953379274523837241474741425229521772459045922612569029139712835916696492006507077954240313848558411110026525425347508553372210834225192337986730618001082686174186014410308411679964510344212819934015094602644949937060757007919477580787825939720005579584161376589063189479441284228247158750899004524001141121188517746492832321365080240241374059231263473637505401483723891762905040055846442554214351200349271779598751818434946727071972239453586846259772133361366937716808360897466648055027896620129034667008221509931576601539480702903897124354817273120970570203728722762573257685193795743324265853152144220172652432797964344576245369521268552951644243239663907952907235271091846824798391652690442507091808411805277263522626532914869731476371951833890309496853506828344430889440257793222511165713505117794913812624122949039158296242605873523265890131406715793540359634462388046387880734255129318274562739387790655354571170038582808165998548228504854376851488811141906934254179750358516885420689461440362397563867461653335549560446161847094936024120452664745720266985548532099563583907685379277042132519148943882792866480357444417033535592013677365026923563094778566756703347965524693258771730750322257466599813056421317402598384116880789290569146403744333276304847803892104614986764322861619297354407477516094722904310007969434834779496717391940106623462264335711346321256479465533065743777305363460413267168656778708354292097923083817310347363448401683359535604337160400457645778550413387169999761333708376051907268520787439551406325798965728973852843616130241543447540720357993968265625695189559338370382613751109902509705351489567400412609073985855171886727501157683988957017970772032759786887118770774273334418874414304896514046680542691155880827257390522311758575197308153968686398918329664757189030921110135704905842079960634032292111076711759434765868167282530798261246334557269693907854976110249786178680902255493098591499089165720905802054545333214596731128092199993397176479765648245187381771615280606431070045544537522205559339871967988062915748196642268809328199919118480271896892684620181191044303210764402261391477708972646674539989425257254294844073472782168178750134698626360372954539425072888753264415447883586705811637339759100851782788618800226462507002780571049745690405161523018499831629283448979711484943984822588575616236062189195601958851506468030932229733287719000967176321105277305742212582273789272236290496101184513257057443919294610433092957595584087484207884781232097514180712918349724901961422412591138037337330947980160284155147952772455586704680511935887207454239705104367265234420041967332279113018549935734716651927892532224180413110922569699546099119569638294510554856590805300514685638594683023351612789800345571744736918235235272571645359960228673173351752595608228304953659362178351420620947872595034033456787900036453702023810342344236022541188407046827099573210459898403267558248755285727618768397542855554680889032879863672863405608736987140449686458935506702552241519938517849542237154936234863897969670164461839599659840137734341486768493436704740980896197149755231373617143128955016453458467204291621543072906982928653306487802054137834069663930127554609836670363777492486859309626145374394197482373313159040307254283778280366414908651644653835279321684357461834894171618108635555423390988763614433816914369266710355644671210334080166814946073861359990695583803956494307026278113928670475873284479370330082171316600750941060060025717438977065459902195297766999701362599922694476234183296305351468221032513188642517322077653366853289481153228667698577979825667996035368905566147302356018332247889558404703406278177150158990009898558947986676286242304951774006575844137449516593894832464754548075778846813930262534753853289138297986234196126694286610905703082007425286774994478033782534211818528930887859485930521444336920331200130204039428831899818325016692663430230489686547897100380525629098885379947427529389192043702260727772062334275636289586678630821948051163477096382844049672429944526298826957801509831639092843612401851558499445338497083787602111296648080692060279175543993520132405960360923542960409380229174084993732450709587740452893827483538771144983780171556392600634077582014017416599077777402194448073358398382316306884296001412218503630630290201771650240186714181254633579876547756562953510662451182288412842598366961602225290215792985959554385341090698723108542174222591084698182118921249898344139377517381701983447737776679612384793960412430763616833476921968493962147140946185364475876420232723968611737255731697995962656954111059622195667130074129205497433037199422568990622971343420415048859865147721242929597516593044196569996457787262131135953666040841661137208482686603037339860472832943422665098544613267959820820012102301998209108434222948308394575745935267412519250768811427458976076751378864547140666348301380214903499240723789864713094949693495757252058948113164472394408837097937037689332238584189439350363671998103026046672483866044455210123730223069620575508759714059270161799863413621226968095150020199347633772395204339246213588088675542040627204024727276046661143877809514308731862857198339852424014617945046056218390144018392486599104638450284696467345320116491179990901520368003449107715170718772801933573625924465418984687816256821701537574695883800034992873098928563963798672124217512721868640900384871990369731022493905938434042170315843457660683278502422892158713022246848377764053484335047913439821448234838748834977693276103111396502134748178065100264768305745965412486693959346328580339993585061376053606964026935961293690883129853336901899986367081734338853947075935773050948513665468120714098825174137002266701089999472574908781831753792877235983071839023495871947867523611647113843636685988912978565813022556473549688060437920036007627006161518330948333199144217206375750085047659203832001659107048860924899352706402389797173334962444595060067292419799701789945738480551206301026337159455534089105645710242356653849718331488065672070739685272472010027399792431732180850183990531509403017785136429276012943567214882981656769442009416482646132176123774490813233236214616739756933879244334592169551062896527655761003060942338018319594130908910286887884967041464569726683849216280306914508738629100079287438144531966003144872135395070508919348575759211699127023186811350553699958306947531336496479830148147369059091659869180104000732517757723287258630260514029354122718193853358717646916209008015489688020471732440154603034621180075756390912462045247244440536103636742685608787774024903746350715015928945954723641468854446837786404236158592462249143327642081475048357009732573575963871964124473294639084673887708107143284380331120742082495076271201224722296885752760023663163659905729826824960834555597390131438578466213685044224489641683222207065366977556666692616301762162130658207505604915336464027744127468517128094023123966497261678167735561560336098655749393201114204472177849613596039508878584648055720867135165260278379629345765177005682977891193221468278527619367297106322671214810372841422349632616723525079980605536213052277009112784263003300080714453054980591267638290213903313096661165391279873715867334132096806570622361829479438077498505589377462938405269330253164364311897777618383503319832236079924997373461876499582214392096210364129237121826379997577999887191194916457045672244770813983683121083614647253501777563367113996481273778629508991200135653116162469801263331347061217576383362548101583711861744939807285181463151006846064098386939464167611083350435430663319451010253142721559494103882034928919895444607133709091621459182248717076333146641627230826704589952727453265202040810493174763261923061789947602537838340286637240615901021522947349682424307452631728905039318642036732229955201075236833063087162963277355964982686941937187858434470554642781420882979557793475931570165588094915332887854898985117033578833738439280779224798371688864515456393070357180072547317852985484579750995923445395347575949466591539152165095701754591931544506934826014836587008078464626809670356456689559802159046618181726731494024482771783520393098948558212529124324875545915527937103089215832964657197015773771818862410999604836479661460120877461722511705696809896628880147306887617072092733929501956639595524914798039098309119562084795044335162121566250379295005376998615395811828641324484270939623003007796866488740081372045395688133083198667207198093167863263974507838102093652378679577748948824114776570362370059355741792374820331407553356092594227923034081869682125315753453572746736146198760225900745920503320350622166179676557173553071621522715615166873618700664376959328953703720070048985106317587875631731744879103420128260446975345679554702097809439181346842660892306995132116834999696739079958240960042274653851993503630391571831489149878811263224149209658762507653248538552800363034159916058095977110523583958612103687953860477427366704993491567385700264793455812456108241486918404582175267546077332888091875738185192088763282594119081192461269649684516773520863943387434876323268167022303127720214420705333903735381572548129916621060832343121251081480420301402498657637571091508763963917126896438523687877051916204581561950008460092290618094729557104592318225842012978986394474062166483886877656822051602263865070624628134917348120816080654238265218214933276257754108840943977235969740877960826333673762815098246866925102995819344896285713053748288435478431556024560502808768775371067780208843259646373055914838113935847816896544540319523066043914657324433977468889372949240154674135704815307923975684316754222166264572623032343853686057266404948734496130466877545920514039775247998423326989177302052958338296506068045891646676720383482839035955159332149064533253096036780008074625612878502941555345495133588720167921850232949324116243587271646701274470210864876595268179792657359558790655370196304450105362199763036985606427059152884187176875747825400854056300227933774853631932642076223188229133296600722791863122460251660481485993456724870560067762198619796916661007019213755949090971681634183744020512269211644884215613173200940486189788811257816360505364204648932037032949635020715695822723486219149795002533001421284867149974410592089192993437129164460485020014608169524786073399769718191337801866448511556521498617678831954233605959106212344004972302290192023545319924570186732242328361296984836336177023746818302496366785243829196343828570355846716603573708517391128202196606573002068811696407118354894732469891002937758948671565990171565479820179611543697932209409097047898783887093342059905700220343400834826523674215098761666333116143651288381501005392747851267047774795768891177618207494936770498006422664224083421318667117338538610813082461591403507034980157573758457300848988462405676948091118088496383309074295130657090361954030848321803787089842762925142220649226982386122330061290051264861840604006129154207038951399116724698111949515397970850252992909033952631392073638932185405135461227284829120225007902777588270317690848021063325503466252893094294328951183904508741464856536202991296343971870891532221185214330217212856633449518524902685722283391050226195122960848812767534108840732463731660840757248194756166940749908004705560017800290405871987663049270129954009781022247447595945740695754918564510514798169183019116025146696173812390597412096289579443546643867321193857079979977135282254361533624442459930752254671350199518599157495529800522513739468922969037097529887038073489305614569340265354924113877428010131035300492722656226322284944596950261820647871993823489898412511268588864852470504550507645805507868564587224705099446662207571133149966669319181430509731246612336344315665467274042578829290734062525142039304680793809906831715480907054100312249924848908299505768760726223716648395372230963151138533111390194422011419391566553859901756968926735643556525079788623950165137359452902111833089145356025663148540112221763463995812674871633576348432953236680311032796972949744974298480451433435144242933450490754704176565676676330773975403484883778202665987790805504643457939144891374251939100593958729120489825136391334616779471415813670888959816193854570680841996615956820929757852995911953925332990364499959379027649743757278510155321852403097544847969388111799062697144762009643792237252274852557549216517384659577409735018328146969850618059864326471295015580749763736632317597546916763122870946904458458864784955070023001803272241033533586545844302762806284620755591613537741131455305713040374566708025636914666738267484955444787793718501133788095706397777201123887473116132697419183765067530675684517774367932974844380569146170546284159936998284332490661159512386456456639746454739579476391229162122708214317357232319041290625793476077202359771868987316142532377751405283491610005953039321568776565300499595909496426605199323033232182511956225312365076809852967881396664658849273754573927342764977845379759812808176652078670087252802709502921373468380539374278527212646673961595448033924584097273014268642246132828815484937854808949691571196425800059803537168874569654702997995592300064230607196751419188529493721214341436035133521453552625355272369938290458399033454918938414463193124889951505102739373966089153651186791604347320521743577682050535438944455956540667444177772258505643689002095906339949856922064237485412768168411047580568922633537021037532937176826524839372323536580127722612917353435686118394919784886851007755919663365091420219913903655135252028864981961207200184088832401723656702839768301932109669951986605561547720761656697862917999247126379515510229587284347158677379149506039594813206808340928386330067233597294596343436054587004042382567016438961557464919117472319043839665506014172205788441950455266333768318526223029348428989173317770940968851711276086483057809995302523112271219057356941305178593482330764060337906483536978335309581397533348835323819039655653456806984049626734226848382408150367167918645244635549556398802929743486587867694203011479250740373646824307700991345702202120268364453162813712896266957135900449044449631748070343311941603396866358468564621582075780082658022702741028108305571038627072052094853565942190289535266927967730312241365157343547583903881315529784123721486394556870697110360926639817861008293293873971026054018781424929329361147643483732131167284373935167973967103500840920211868216781987869298784096512367109936980619347385129704646774581144799666865962855375085444887193463737448526299031538441896987664737612545563493449282415011990434544150016883304425608416211346397774493148752014112494275054828911707323235317800466395939151543865071729241689195693637768436225889490534244609816615106266156856656567518895573748756872324871236663869996786399343080011130111867168986305395633421909714272252951450069208801455389706629532451144436644558199000310674617828835786401173877098836428473275879105158382424531881388290671075200652409573621575982796946806048205919623564419104999032234968113175944016001319467983443321779987559816145952274440322330866133116644353322240367882967538107424141305841299455071655261362989988204506676390417782452412599269673824219562055759117882515778437910518957248469555391460782927843804533803074067520673005291959549299554047117890686823945467548959427831580541276805204825858243225569967766221807580377157851651357444118054526006067062057168444229808571183316947856455556257215410740558855950046175175691647278462069869852250680671911674917935098978704953005088304723093369316269258176666928672468787593726858480591216255349678779103118814993081434462494420840246016419685162045375732431368204789973354045933116835042902051286914776735228117202033495150222595303452069190587032934966893069315946255268901755919852397389007455976086004038387601049678713460463676422377326236454711513117946792746926070107753626376480680389503507653823299727363693008819494536407954831147304373192241272389799227245816953837993291941574406518166496693386526716466306826306408404526400481353054254036906912223437268514901705597384491896540223963455982548399459117732708046271520896251196845595786590308445808238275706760791476157876063467133081129704898045629911852898167314183749998038644038723615267858859001508812494384896632068326462245784254661386436742289144976623845129337782509462840378185112339558072781815813313583850110860535212206936199997637454518520446054772308330679725806985774966775731211133161939492163701362647163092521646384829203933132927878458488391342684493076416818675996343187137404431554608684873827238609176136052557411315065764069687717632698507859208438591813815023192048745647866745172978003253245019168310975345038981290241163489896819772858882852892465350648857625806449122858696570489692804898545610646098907910508266661981668561203445589723598942921642968751837371803514489157938931666612001730472563258460671302280008829613719593040146001739594511815824416238928347880148261741109864494094675184080188914528648371659849027242582433036378009055935162981669142240261194670639738413673506598366538909953849827731388868153830599032684121194385714574145408810221648235545412446130244049677524447121367493755621735901330429665887558383311125180698645072511122925083479317230011185750050279104850171940727248580220570605096971195680858825568830753385714790664750952000350312290417155885007180855158075998226861612328921396940615050110163705521898209867124047825857919482257595968167496152253150496811256791209714735824887393450073445002899540007293193578622181937216175334277740671754343544563161862274018707343155956625781518860593625289503249823881339586531400384334204705594304755166840637793264862689389332571161135717642948513390242880649262228529270694094218682953718558235004807016321896744276120475496311257276886578448148769552284747350826997747600050694978791521325276816411574049147793898923641160999167543451210286794676901129412137671450353186673986999298008497246942996767172180438285148972994301689051186326724257942972930313916612373624397623166192299856295405777652769268460451970208946011748024628469661682555048304392543815619757409966485300282207390300118782680215374689309140728840869526032869130788930528340519603622231771258016892674866928360369351437414399541424555963110786130429157517882896677366190432471415266144237917628244961405407109925459682811116846754292031986905275047486746055210467206320932024011462289966498540173712409954886362840746164730947843652623715847464896615988728588628703953020708684893779994414652663503497287607074112829590159673977940941750716977288183727279274891290609745888008844625612664801910885405376315337031096640092086147588898082200178725210014117980836164279755176128986466836237101748061933884069804947849185226058789207785218233882925925381809474660912151457132763956220816381536597412368296817591120481862626820460421924233621889186419989994566886012271663287455972764762712506409423698060675187045308749202119982660299757514357099339458601922427510670159128005869929930640579564547918508679666800249304145546077900656337489048408554732295596423476363443681583352736849342879405108015238819960720570952411990343707157819041772454890115324709242069697983678105800520619137672456773555494353440567004728279211223686130457853839116605627151579024695608300864560730907178033326620273261520078701884523441314787621481224055885052856358479065423271134482839370392495479391680458450938213678477833477646567851505674805612767263053581359338388088447442626610181709659167320067638427917405875363478904886358612330007117029642370140649818244214290870172918691339002483794471835594529670760869418079321036220641911262392211323872449089558160559312254100726749862693327301321086196665745870493817082187635128600282484517451808681224393625544543274907032097741633608581713358960431422947370469499811215931648921518158654616519715406641987069236496401515635013242082098549834009872610544332148501027525073757947939306839681214814852476396076658080325785798372102891368818546636195700731642591274530881097459729549780480823600804320134215119887360102582456688173537176181973827605234390568813178677248148135806474626411928109175271694686891145455297749121735906687667186746991852280756936578115914084358477281200413999869688860010630682658165854554736938159822734513082935599551168208989462725284181224098719176106987580144654434572272760416994177445284923089977911541715926150804172318421029575017472405392671899110772634078864874617347945937300700628812542648450636779210975490026131611647616407130528848972729907779333560561502764321658835424535097925051252979485215044099253671678616266735123461536438345653772637948242323720293353554150378099905398213772752727006187528972315152251521999659551881930238880812908737675126302934400561992983519978838469134172546826449115449633981960951313937450242776755183379113174594933727201060749965546466636100315386464764555780064604200155280158750166140308819426515965618255884154060503469692403994431426401944088805547943998336799960819281657675867911384183150670541249924261985842447853235197348218915083273339116159354198839773381901121010771514536784341894625689759747673090369451787461233387652098587601963823637509836850728751879079891131978231238586267410591115432334233848907845849022069894300056023051285730811952459862162761912242565653796054516480931488655781549118453315915860230900785724656129784621072784391296487072894932409380171171810142967999088547618831493091104179382879989339439648521509469474250692804358021447832000400911107601693865901044220035099182508752907438981802285117014692305138057611139911924987260986512182993058703697952806850270966502138562171119343507403716254572011821085222807227431945164231896402452806170950478175307691205824402745580616682401528311863887356726514478276729914466010060833886306186042008918486309913900750623932074126182646302369305995386433693898675945838971036305261283468041313900382518397017785473951196302983799581450501583059182857620467241002903678857144616407133819412507517209871243145109385004001700063837429501527539426131377683645697342381453914980584539029025686658706563862005865383949632378680200497301227030168171291476822075256184924599720506074264020469487775906399766096379662932756426284750038379988634446009899266899424129113743901440407644933823006164843564714086587080718068372107855392502204028585994159117877065069227649846750796276338531419846492150107876269837403759089828657816170872299475108379623250166848284158974645990540773793127356835152451110034634754635727795338941757082452362065866525888337959558247291710097460416162817389590543033532938612009282282957168111184218586847077611481743581053106926571449329302451117006812079381423424613450021222771696397347739570201675942461857152963193003714917473868196762102576839188423338133908744243744165029843736743030471098320266249943013685152882689954315458401383872074769789474453168191826618965732425530130567673287409804452550089997585030686551662561056741064430681487883515342981412572392977221307669167460079076030125928756505516842451499038482557686305958274719846843322046950722826749468604878266130740345597346526764472168707248247642594212225320047585102267574567787935164554360188695879559878256433355045327465491341451421262511334810691296612420437884578839289172846766909623106604434277232363552418134706955462170170061840921077532719606461027310073316270691615434530745372452658453446596450811239581377407383811488337474512926547679041178301361463619378860815644234316310858842903215991174916317327597383496312631623082034768523335991759371616961722160053826066489656610695092890514407135962620048787387124663060763358109331232171164012124367560235700563234694097802829650749465303049006603836807476087958120038430170678818821228695357365723084857053487530991022257415604443285161834844638692214818155892410389332909469947569904594923573894234292061301328349775623144372622811127151830243470036215509172826656240314180547843552786920329010730039526344864164107842450500499701532839728179585459871798062880781400633534174682046610212645479183674859118660102031957946151864064628168212684772254639477193583763691460249770255442421106686326726154599560051888068591559200937295843269372482822485312076777584735445477799728111965934259114287356108271863508040217684323835050126092841560668584264581853381927572307669361483038392066315304782463008962903061878656842936887869011738405191565207849360105570834065084298175026504869223463019297723923123867659131176916253373753955281881249736385295388024405212004401291378623079110403852159235930208037327762653919061658343228489696637638553381395142909020679337584942702753052122761724080149732178505263207343485128027608473593354724095008662230564880234812188640760412345871184264107582153364435377224973711799102860916483867987117910690839012864034663988443466184933370395397550291701569385940632728253840499442373269752823596297360192904046751158284636165157512475544406780082638555519085590029204236491951234424155366180370866864855145148071436910495756160255299904881746009922655778578527875237888918349025695746945987873700723091941972087386068477357363913798788355102523249679720453022651147404265120678786220073326638126381874253314191307522669623944226322356675874563762492003663299796037426468970353912481390463817598660122141965566439299618729985779696925588669329953269561441798923190827902225247909027813905054358518610005414405457150091470502126240373137145931404345215965764037464592672399635233457734652297866023021199297977485822041182629490476966571565912499270728799442261167187834741356608331029062038581563569239930890934373925150231147074522666027558578989422603487580238322186163605250087268027628851320772424676510146595877029549518042307370762187136263064404742619118715634200348216129351700893931110911126353814936086015487462308570144150759636770169809627887130522080781622146521704717064142103963758086708583497877161780131338410991519545552323650841886896449587969522121141508437352422041243864545388059084049078347077694144513363634171767626306630696990654995764868415636186842454039491405319923538348709631447196616972627865946904757216182345707385209562387670202220558771266168342465184638781100945751710137068479117914686270973533906957624278702496533737888730913472395372031168808549437981486671635220873622049337226465796198042651128594737305260681062251392241737887885205775118711958114449537221841264930502561542223032439154596273749889896886386281408073920554553371236363506398772738370770182784356390988168842753575810330680804522750927783037571809539583417426546764940345821601473432369621507533017859664329131844894562080884646467428747237257819971684785417783675291151688237916760315410281351044126004658240279130664079604442410081500817165949281362776289664212132886304056705310006451446958912213068882301891538638651154974896710618403541292603954671891687583469960676180565693032228436487595407803264153905788681492467147711128790423119069237368903715227157905833835150619777031838985267086537766222788763922992879246381266326920367772657889508221211606978035284442822445770981126707217402553784260562722334055960905386835780732883464532548360991307037668190670089236364779967461349872573502394586523444906250407050209752110341807915011244393737765627744188770394549797718480457796682731716062951223377498312330303379680000965455978630765243644276491041498884937195939538197862299083606785463238745515922661299462650898532318887890280264320130578794266616294883619100200969544685578950443538651977026439044738447395320543510960211089901965491724772744823086724860198092775132924158387464791252035862935102873008302867248862912556295277259568254038711511629937839124824224473284104357413524448495680502223714523516861072022726757630975065559155471957292490193067441920647086708490971420837517324907112090296376017830298930476815054208962375734162492316471741612408808615418780400348490843065252175285561681101396654197337398724443887016800499195205249608343241358597431345231663237908610802209670069445433931181381744154439031920435999794232591894383411939707100233430738036744117806859234612729998727626364254105195985147086843952054539145404189479806461356528393515594454535865776667165305196619947032154570562566895851896884006388168139745200537590584291824393938488357356326723563508632688382056206036766588770313881855246511800207188019834246427321552220331116594086922324960376355210177307878678616923941181057732196969755065941482037509346511159723203458665052872111430934446040261524974873520424858589348840207207543905199719440893889369548381006966045930971515334409883692784909416177630461449980500012906936956863186486635150118045770543592060219537546589985492858239302850729338412444652721959493363063754296131135415143695688060776285765367438460367936757854504386068087625369089254174590401747213748091687310864006114520517231533762178379816852099466147022807635790160838820113186318362093828296943707511548230091917436088358993549351982814551999310509156118458646221956175256949783218180542817645658568129852611402597278813207452724152356105759987268106936443574673297244843777571134620800977126748397057232436842368778059781829007497315819264220264839454534680739231536652891272566499436588120312232075568839091185383743907821102476736960956596822665532441936218269470335629725717620835179491177248602552069571166344931742847359465826435067444255005682975951155150977286443228231651150432675503439713717130506171059108634686819715405105463569326527381288672597609150093137274087497675340062346568427293408743838722501041563834813639058421266359765717949339200042966941194204357406697336119228696193377386920058880101508745771453165743797860579545234922554681337935649351084140174446656503180694182088030718030430533464337765784733215702818112795256784169066612350713209296457741260912857562525139897016435674371186753280367219460744870757203609956965346095552832037409790794707567348625931288630548285223893396147567469661347937021556801578898167161656067174045775964398862467620055402789389308093145593028421959949546480004194863278656634339015043072745688304466222678059118332334910223554172464234995242662730658368379349372709352261910155682229076389926831989258045282394621313377868938967784322390059704390250864310262519135840664077275193946171506826450069692855461565402864582758551734576806470955905264134407390500702052227216781714781817617875238496633419246595432621615819727045200060310245723354870911576283294361880326406270464843869855730981255719419686473490659914450553416803079779795978891783446126297776789580586920292220386590143445344844530690138604064275101940104510053522086028104993980383549070975522989036003094764431703996197212563805095057180347185082873991832533737520630973333485751470860020862338084838161065471435053896788116714859195973728164829393696122828806363394726061489831062058633577196530142816175395727344482637735085824709911405872693728879514093626018234492782304751806857435754625478465937204570878264635059242315425982898395601283360642698479391443294713547876916468097991049294366672872109876952420324771938968888087595763387449558394468806445440927858232907162373242571066988462038861771058170881754025768579856919875015851060088168778286851731577106941459539437691642453720535547067604559766581307005885609643984905887192055851172420965755561310478348896846502348313405520879559001932199442066167157257167684956734308409511210282423357150083889507322844999394786007407992035279943095563206920570082718158361621954997356311413080958671705122429890709317395911651821460001970887780053930912753753133800954152305335179239568242593308980424140388150826960838581477490201919030296730418962270988401474311836280981060443199790661884956390019407001345191398445824640648574902231243086359454399393028003331912346240967962151095307615058071391577763019341226973691892873217225861177369123078394011198750560357794542355806923312910000884129863356089112159291805338517747382856182690817795499558754757384415456551685867888597871683664476484558166545803576390851760558324265445193903382164113437012930139244882270868597036877377429632528171057638180658469606802154844466071687978464409864602412399757226936262681677244618666747888371004219111674949067338785517323029993476635327927451792241138932317695295700144288676233008223000891844881004382145695039261943876098346883711871973240481237739276666838148404306705944307959810917973810532066419333939000357102637388529788363265169923446891689482020344271678788187803251685538181858948582871640966072019406593984775278771539660727687058835144121201342524853154713717082943243958174301305315485032282588599398286982169814998634129967035085728977280367217203711387322692432619099084130334326605274069467051515484318509395434672983905098481323636031233726252925273692548820405864091578985204324471819817492969830925076316572781152688959093791994783256174654999001235521304917750970202818238232877819001432349695435629405979095288144424581468523244464976344638384388324122242571774093369465233082398927425832841159045794983552755224479359759624037268506390994545972144708165688449261973687392702510146496641304802722679838416310362323358675920868862205045505403794403255933586334923544745044602508081711149287410833322777523803350500132338026234968408639009104877375334990170112342407304647292841797437309497451586756307441281815492031508123493453302544141992216940506860099522485842102990703137581566779347896722067802994857345980312373000750470479265711257484956609988896862822669283267957361640644814861006598115013889429216313569387174898123818594318857333880994091193796896223277277789163347401736732822920815734456455792641167701867971995399955359716271881814807488477600145125117349471948963419070761082519593009058063983873487174868846411549134737382679867599823003249902794382244051911563501526729965850467440601146627392186590358679772509438795930192999148588650864342453627020328775223652970033469215859469603827749125524022637003805438976498813034892456939774001281335739345857780475875108764477634151238049091581209641436239585985775180251122588651438088012012730537485358495012220636923189923504123343511712500155193639243900473574174158774792084023483192475867577347803652300401871370288034559494748975054989777817826646024477102613126441617342718913917622741465944274335592506653787520637511539246469937055532539619945148297150083182285721235700370199096895569608930565198738758503097859335250466385874388607423207099495638577946859628666214763771168296182602939536934265366587931593834246682435568491248504021499030481199360276309098139877853315298971544460730499802474571904750037641882634279213152432089907684208022197316506490395030954974338244532942879313168540902660749389841761006658177691107830552453560546856238720230203755604706345427733068057535319864369166350958928655371582191254215662925830610415255598609045705871573319095432469684119763591696711775314206894248941209424305317575419415014969596219502043504549688078490856168592754045777311201627880200090830822718664196023741782153319961190682107072064522238307733573748934650121392369946236111517431695292903358258987561715794941055024906119628295073075471693950964103086043166711800368402399519295231371436250749029365137572322398321552455180964792986519764532522077403672265952023055035853706632381656223325756403256804960952174408861291599811842575396263647047961721608910399961179626953909531732155309886267122443561783370988135039484196856853535358879304472509671431411041103200880372682745280398025049129196351403368183603925801411567193656234143360462303419285390231965289832796817512788289614597119566605359849467253882869557835562118194774039932246333875049521160532090480027153132804146842291227326390653277787460611397737971745629480751535737035741669536885718151953720882939533964116075835267535510105514382800883647263838967533132122457501457515339639264893519661886651379442077614611309360147558853994969576076672921447879903780882218790426066998866088078133253158634887152280646537742076633210613363266132155166565754069485928960624471710725382986674314749375838673182840162951321110341505386933404769829440621153748029907377974497637809903480649903995893161812223587850927598947167111553472758908588183969499469892168304493885659933636870731048231925009197877086775000768333197330937077715729211441791823120520214143618209504000495509243378709185201658006262334479332673299202188943211029409240401657877162464814563824561787903508204254682563797074537619935975438433083217581369123215168392496534569975419929356859373719163543813858166447939709900049591623297633516379444081591051651038102517878266896508946747080738110995996604291853047303251585680736547947916078075515906350324380922751374154536628445363066915560954268988958077511229226154515805443647323572832988402304966857557262525667072428390370492320516928924029525767240030972877906601166915684223561473525203612488021649660175628446329359943247140762711168915178469002361369103847000775220394179949136100604003159341951710835968636911030950292230734651070692280133310770211146611548599988689734923288777461358044500111935294202837699443296282080150590702915101920915058103734539956510746324544032601760710367150305799671500270196180625125470478123400160992214209983913216224985590445703823339843394818919472122611665242143852836429375905980545113057361818825203463191172068116799328500289928838644826400120339978966163716964260095940700700093724497462918576963245423523560499108814619516626582539866049457547644281375645199066193316311901165096143577434252463111802849177719356260908822361833539972771816466449251542672078601222134888257619709678181867888445716883212175283650399352918887034670612627982075995053988292909107719171424765473250317850944224233329652361080481763240674092664770299066115350514611970196999776131224026809267060011737053351278712648991247899002391287388142889589787863186471703259370183593044990104293824713732726895867450067680288107358907561644030665172881101842033495877326440836856711872312752819988863721026895517898081307328351693691453189025451071681940279557106223619610633236989524320422165823746727361554165854761918056755442889701129451958518003978465738580453766192351676407967747227474451355218999226569008906911017355553216920309001690812736093388110322091552667580670836536676061709947230200734182335122394091469144642325278431961860534570719151474808744193929967481421013726633440194104230388314450324012383502271472262944629418372843279823366628157371487391862114119747670346701473186215126132180128309257492685787640635404324912071245758124799617061619816520989917072292272092075314906004847701495227561846613986819858781152856586487273268270299363356090013099670107068063757542789061221035817181506612600596616044419329056059945987315139739157463231284060352610054255570761937741330246919124583743979120570027385631690759678784267906170743953385974417813429169871298292330605723480527101318903776209045676734624078376937412269873828211896130970698190923168686403342167338553680474431262518525752387655654660007799490733922537901302991494696291558999440322089846428272752700216997513363646366667501622387979571060757129414405313817049578064581682081884324167270910339664092870994407467617923937183321297651873906673037558351530525796935116035010511546403239769749653807491068380438510602474332960399736651326275592991870363694915751531070707265110536889959650810907204097422729828651809427421349934720494666126260462527589890297089647614385436929954913454517527874066493478084801765629241483994248780212561262565550910334574091234512900070463490806622016860702300904704191790257123255579612310251457346096491647546852791733653662979703063938673174946052288204704187316237680632486960073488313613894419412821415745654242205493038457037623243057851527966669947083498603393443231031881696109076650858846212519968972177100855652122292159571157176325765206478560231941130364062746907251618002741294202082345686706936011274886908669442555316943956353177278886097878280231699621174783174647105687111219679835631141483987828350573255339427655817533737260978150898867520543826813077008739262819429431016169041517039956744329299325845628811209142957317951782975943940674942728899246534978479536549476456143916248397913324156936196664181970923176460073099801089131076920586046560483757914230575040984805915393535536601178379232513387342522039888106125072646100539413377326606746205264736327532391393124287423611233372284426612390779142618857670622162823346727846915430691480828193008068848993346694744642666853342456281438352646477721747012385216227383708109262424469273199772036325811781144935693937879888340889061561263567218916015046367774977855237068742035003189702602864014102963265771447539614212910459435735834374241215977059985562526336141438352636130716484802487349335643760220986063949554058738446388348354811244435752006091185184215819081737067767032237214679455913624790782627452694395462649635025108705944521547587567026553758248426930288361664124560398456158492963062353561378896238811575827637673650078981442848971204095591222944774437930259790592475269981422416667005792884570641328035332616586877738556136559653583993644494442865467560714887211588561434039063820067938769680348055229830830455920980390574445780319873476793991293526943437700141838447903907703500985934828212121061308901066901608662595551874498240754009119140406230532208092868503151485014571640691300721032752889401159941740974422152977112368553341879129893122901097710574824565161664009729435316608526432705520273111103053459322303179973865091069934505095884183002487350608242748167159069468008765447297831811990229012680032334329483274861989047617086240287204195171138592793276889052332023396248325809962324671918977366724719908159917330093590584401514506849978483919453235735704143189899185409280740594397689722986261251689442059092858686867517561768548674281189581929486624180376400314688383565008626748088063566231007249289179104921568609655772818091281516743229924915909080014678678057517028799678733501263817344446470099981399032467466814846175438923254593741319647214114945889775346404697815626819704330761659331552667340419146412975648098051825338860682131252895237077990427106006745028553230854572638808366631865149183223939601082869690976686589751477232953298939688271205274697535725226340308951674966662241200341134989428063728182287371270000638449941288988574236334693024074791008505347652641548263031530866775880405897823220974419232069655249895798346454989813387835180228939545768210109785675067798568457341298084391301375580776015938493196372842711773504131557742062288130991627614599579479361712373535890519978553172903871485759984104451284823419028093108918565222384618821023182496860903049691517452131147290620387990394842727539119594327416904224977854749428566254564025134064896929843548289972964292145288647732448130098961109152786237306392232018054381832959299060290229338361596797851936931705349823138167024869935818808154546477624163179252949598542257926753042876608985986028183379109375368521071404308987208335747721859041713318778744333489897476605422471717590531608535772963946505952990481881493404808685694753120173729484830921312373860413732384349979277990865204620368424195463151682662084264350627537330774348971590658967458968023141396368219147498213774742130286498877272849664904221057167863547604128754014005985758503652745844697007185036397095200776885312521578410163481411561784060524391265701781441975883950312476127976202297987356045901059501189356232231596725001916824740925787440602720280665169329193783552011607100405730197684787905834664511128947141693168365394877311877271300447418745551653458372431767472803034313756690267457229048356863564758491290932850980799716886918751624320488042504787682670846456841675974936238524190826089076859199377731078986491456801644193400222682896718535505490786828781817429958287666090471819631963407549821143066448336013721706090414730584338920370378087957985836727212760915464908719868172730467118026227770470061421007367277159654913956350066663139720980577298124139147750059562655853836507379653701529109421849252594025434690409577354680223754888254767449308727893947195084336205735242061147953124546638225366457575039702355692026900347961462809636099428300956198691244123652583435709892937743529251521759730538046136332326812083990706797558933911831393575967641425956944761086429602549993125748263294244591307276433435912681866364536083160276933002632733853443073874692757919218211825398013795626367055716943925687095470491597955662582436498978222796253057813261079162695041360973175454133671386819218165330048167950429096482531901765341936830149813065576868762119956518772185219500058606019972018070169219341830995281136099071736693554997040694262406277063151550685723833375379131946244907531506055947126327305523623237272680436025188825763603497827383904940294573625843448450482627897649043036879025941176644842974169069240010949563391941243987051410983733807829219560022192667121926941695072481218768154179692188765745719098312592031961581225007959769390354363351556549648406866463641202896455390136122660458658850559957694168271113756900790477150233271415460993104326716957482853918181607635259863136008693694620107607727708213099463136884534301286051782497222791092378232554390041172951612527132452539816411245798301645195463508782870478640882532583798853756624691942518898946554882558666651160690652699088176433192571673537519635302540808506809939738053926329584271768565413297073849793803010796457718904228242944968508302752337453351608090255336678530883511474940398777649816724945640685657933423615612455183165563796932279868150681368421952726302704753205053196182893239019940800763653781740572926300862309325228474478971257944321196105509145136915068969809639266931162385361599428275845378249203203127077211010223236272405878536575858538110913985891723465678730365544854296949279381894838373796190165460035324658614431901426626597271612701307813819945195316926558258221994728974108588068746734665754966353772301497976677243908845610387543117966380336200889859400989274805262067885468344682652832563194073282830542579906738128737475746545875997394702303609483786406547317479668214129061222217621188498832242270757101730356953757660069355123474974882821554828383529014983108226457956572786092402693603537759967949108877810097223264192123276802157971149568048508076986449445066443937834631791747833042169817353815400415515711418222420785662682712049560291783103047323480601968587722821831832428798855367264160228562820361039988907208555933524265926950750938373051405200985544766336016913815756555959159887839628784288050996615305344944635919014406227652055787363814456492253302869673766020250442477152309410648727383006230583439068988970168857699475868945021778092792534292993251171841904822796724864896134270509146235352228448639423608430497856619105115122825769424120752738975622194202732010242174447512257053677301355921953939519807167054646231684400086533917731090028204578438441060122716742784504915535216305388736229436580327294740838681119543166112183637815222757655444475878525709043143430793339831154952524049490931173438066266968694945589414707467533111906965563432500986291378090237857234685601283088375376783399141807128398033440981531947663718677634774247855395799438890101690717381955913090244778709043649132575337958962548521928358602931179408644302359869826066174126079166959213296145807654769111470190675896977533072218527612535279326057006218064625172332583475157877314042880075785663463179412064789934045435008220708203836981456281346790979775467545755185251417794243551011682589326951303431206858000836892367322953462100253560386677612721263778636032657683865789891793790077103011640539067172078823939299068217498389107495861202942440614075514606108032155682654024687519126461989274553275450948510642505785941785598144094180126601736720641759352723454867390924606616696814530593620409429618238661407526857128731149835335994844519890946370656610497083626225976850700490358213611587631279399357893111602948810543570847339774625466574648935621367339615287601066941406785603275273822559823734425493633677419895475199659704720211338637920576119809520631661133003192031500692798493145463455550906775729922190890122844993793162442044213018127126906817795017133024175454473714721226683792261310421651640615916917792083717294061939914873314910608327742070117727694572973325319572245152368961996135321178647149434489686905042632454376321821714464123732025373786439886005172003206007487028824830223468899650542928973331839289496633067202498979835939826743451792465503693963029691881477704562818118384035640439556823689298883494259081930890485638805377487735306419134068401982704770118288399101849625757434427481400969800411290343507695316416441266200162125411101196774022155757318840927676584586727976239690363444284679691107670365175286308162343870535214500202825282316110424816927472380415534983273519955973990775572043786816749423660945920549354757415672345408909520457309995202027965167297864527203351637423700422243742882319528069558455183304026199746670245870468330820606077074242694728776187859100126168854631674122770080934489641425196046479527160322820901309397787706762950868913352475918361745814246717066883438961162222505588291583690870965880153657953057506681204351403234604797887468891264504227177131339986370866919072652633406343255765653459690931326186726583116875784480587093052848125284390021624939587023592730197693899597304249878476490976361487922395554137584262838614005741498946631241345440467219997429797056511950052637395113235557317331334466033290747410964057122722465866604565764108663440328472954734872633848175473380856076755957529269689876253915304390360425047031689938711044858923827475319566098895717733170118429575120677185726039469010176607336741509569729105449556994294296750705463655501974933335576707977733667964782834458857951666352514003312380546318547675182245407589607050481567834131159114117917715064688436694186437918294589161086288249561811069058673521837559988827328343448624891761555806205594183795920055041285200488825312218587346429367255064038145205466694711489398373843547049256206953397680707200268444518927994417338929491557485720422830896273463106900999442369024119942011062540333415693568216140468324483967027269011066967539086129329305800104922854379970796475801325138500781303114044625995257430527382251625414842001083667330202669680745457207483660646294701985065087776575251367268275402204817825658104243802500306108845505864137838627326407808938515667578932252927541816474907768012124067767640692140711348860203103521711728940118655597386023167270984931610516952850064039939241850637795715627842213049471909825906740744756479560897638978436878059335120285767886254708109366928567723408883780252975281251642253250641827987953539977376000788407037703706489290105397782377098654239512313098871213662253086247363649121093417550763152252418968868511911214920814911558256002778175122399660023471333495720651544950574504837785644273296930026085713976732180210448117146613089259839683951862042732707307880924583490659193922872596013502096907328513115458149079525948861441962387520866054300675346250580190288756763885734758986353078957192566170183390837044081486938973443261029497011375009072185387086670230751428105763848274726131804237502301811854220883808614964712955520487006986019286108368067416840202363111014601753780122204790306104545912774537122043286434996866253495445670770449037863110570789404377074004494931214376639545756615793685196345954523990320535937444276548189545969060439251131990026818542629482610677528790621507072524546944911298838471277345523200574683003161681558607258122873880594101773018115608511858290108058324072364863728204626755688521035685206526844530473409659613769331605448187421857524988950906811305627179713702861909366495034610880595020690151307701120491548170684495890846949803579103673459086145989081612807345970947867870367638321505013319882528784291740015831029842561477833360705944581412890309692085195948404608937901129851922380353422516091041861327293610786537378582823130681468052758643543829571894986808379633335021270026194424599484265873897233320369610022437298991075675448549693802439914008632244936886831242771070721785554145639395430548351422944769787705361587394514361803061807110649056732764716166382186067208944729214245380212487543551635471592188740675915156487436087261284340420263920436089086152209894708878578046738269523092745163034782512729778581248390156459089829142841337117169997219642359779284199670417963309049952089896626620441232565590333524505824391033616370259391242235124457444149425044026335694714270593006315910208884164354644001607827563083877300889180103397948719074615784175227529083545470479791389397440890536675193719528385167427385949925306955372976569439661928673613741548506165516646399604044049999985905165360131290612084106486299886715911871120385983249862615538421386656867705622980738756888715457480583196784068756499082250254256204550929542700869859720143851566756564270083144499806169383668082874058412881317820291697155593509678272206975606192622679747005618464481543245305530781471852181286698020823660271991373409504871760501972993877731710062227857611257706590548649793670928428675520249576440230432209694994950657697057897445841041256595790779373234722391379066392271643547338332552206356467118173931557122638797060158733281500996541627542630365808593450747457129542656855175843391279625410975132056406227403781884864181292465490933044690603538516463996141279511178564403189998825324171189914316943685125540560968282962382960118600923971202876779652678007027889754906850452506487758067911494042158178310158702249625890218056316929701867762892105197392717809032182215957063760998519720041128366177059858128703425440443659866488215820970696733834682802188543075785000911886476761440815472557083622424728172764346879885047880898011532689689159048668581544606897752947727390915800410642952252699828223897454148561968923387018600414476346860606763117908367082485560122947400777274739406487196292027428067817568143921791840262826293227485874948429452316889443851139685355186007454123311927586569787157458086992533567220163365528334289332973659023149557600938072204834250938821607649875447683487543393712527383718017668210204368216917947735545490748663181166771074662247460320466744083784187023031686531361375123953802719636331201663743881065930372554062332469097083631381461584731797739853396415064142727483307863491945419387009284073717192191209241682139801376351147335068058505768038911669830545962078828490576972357775921017028648861222088362241977028757416857060428922209056132849826221769107437393669165983111759244867743734057562368296681234013198969992699072663882629057831515673103078118262039203871390337428186150336714025720144671055009080176092076239355185053440161553292806924990862085961938002917644980807756858579184157043905615617659228283262422250942283847393941333389330069688936964570438385324197796085576147190481016937323793880234718215277606808331855731378443611820880578651104691424659618261744932970094948142603721373973932448043590537987990447790532369893100630083757353780037662661947570837268051458737283188926212356584701964847459190776581572576533312057688367330731935967046155148748142330482631745945592532849254654446248238110494501415102052147888439026020612431789179737470835021817598087194705040416122720473957997426523851620532195772085938120519586156363877826315135338843588913693652274544926530754898789732664499564389446682796457835309933767731709209325990620153423932080110333480316417557492351747231447153438171651883106188917980254280635980316466103073979029870233292120453368874843850264674838816244694456402285594173161572723320912742052697705524410801469117281936141549718775996939301806162036524450674867328495809705088866968988474315471549601210247257227590951772647978779489528625507518289526851244502820980056508733542403149981177598514646125952321040967951681243578459709327412122759763081644884475566930219286611011597592473703632158704329031113060793524487955094700505542403415552224844954390939271307728359715848049643760582589481076262895929289805190672238468193793839065674938387493476698745790091150554389040183942953512772235519800767064822661377159952182735305801499048273627723329437915822381999464462548793028891531834920834546347209699612978956884264984252284135118802622309573546567449375973056946699267535646607416312510402547937401346370871275069764282124899901036083458024136140991328638562603845779348569514976359394609557535052342704739383241827013780264457227608366921129687951398581889857593279079619706796148436726745591158936447802936858049632635643971931877026107027584660866499435453393266704440586544575471501050901796391566310527045399619708970186252481316782492235696619315707634047548823326382341730447282141409482835081725005427532233012207774335620017024036971652626418505488676756752560354228728085859852763562674804716565684535591335927060955886918312541256805232686085327016645291478906733977396057848301338399450280199356376084606496143930935338820237003271496619505555118121905381222857964792865557857801357574422063299770437507917665672809719180432739571026851707632413692441196052704212461398147458822910517322561506262314884436300676193642748430305995059461583109290174835967260427169189832603602655589843909082040973717290805765642947199118286725866973196965531899813171025794651523559543379855459594335259673898120434476396688064559225023457077789370655795950916701443748738291031961800465534668919342913353525984076483871070346179851873023255061217400126952942037851727367247934987589932735235247793124809430990609246256507128507135841850018689007788263725405103031631446596076641771187423747869939936203548681787825418487569487778783533760232854606000564193408996283692216701189350862566251944843216584289090334248982641248755317602866612480062724690086597620663180488190139957033491704912629410769881547214680694947984699088156949576447388023999892351531197737686098269435592340407773570467459808210184903555949737768377249099285288339463205601604730127226648476872890144782185852649822513373030222271199843012349783627891431030761063552447073402889027927821058350564186660016468485087897651452542480216174672428617557101792432154162384075929590759812300681830365840801764296566239325074256801454194065189962638789473147862861617454076390927251051501670209753973050496523783923424293466538685486371171402417128877999025688059903418801456542902722875557684522627794554772236914298064046030219408621961182876617779927405274301082139509862999812105353490973999660314924067061361073679113316610312436550330773928221954089271795741030898440497260117698660198344295159995545503098464229497065664202985043809763479345636597003081615605183235118798551514153154267595482128119322752832658598007932099239127130023355980655657496163005979697800736252928736218550798971955351634905303577428434859882203535115357718512376146252973540288429522149725169850525107106828255676184813629334025537490130155323678648534212546412235233684674103720985563660631889923355484279973839075912774337842925543005728187392919823637573183298944088448530540382119054772032795689575630773971791538823280878525064706711905094697116760491160503191718278093878700816475263486219295735849742886162935623024261198901399138854004969302291638579513985818419760202653462195062886792147745536165568058099198366234979115535835720485676032581206030652433973350158585588145682329715946995835617418062693164050982775595844387668948170997415714611954559266570992664100340209738354704607698623631026442961044467050394720057327155107845994515625564792639566613947336095388593813554790337370927832126398507377407316638430124681596116238534559695009571959736208312706044885029012513976577460982268885353076777727962369506962116074356882883130561546617896341208500217455008265608038588636994269262749924387270011250364789086370919501276285907279608939712807640563004277420143897723494346511245680115106789839436953805765134343066837214412696359167202067458986713915741880591378982620189140424114718024529342180925403646835300074629906721932208303230557624649258501622999632302346933166916555193654537983950819676043593471184372437312256783970833369166727520760250417927784396659443522516110741090446938593277713513496414621559137114320346296083725285778040391579128459802587161285813720511471094170129629759076049841739084291919171797499053030119994837567228632575415394708992324188486421526265155300541368500721100004155297599315229081326203198215505634202953850923372192662321231376003433388328833853642155349001373761529878028072262207143722126312908804265163676991358994452080539446149430186303069517415714693773252650300572265649478156873005293616176189726770031340366467768191650096388130537614513741073926079990166422897240262802756889543903139177196282724195578497949322004111303812063728409734085907631649785947888408434592611565972704824902018427891862843155643483715953436413010016549433257224227509164058997447405959075771365513603062749926501612265992148315605309636751333419998246691239846739615553686672813459159561828280923381300321692336456359951246737861064590558544951819015055451741663910730733182215200519126411159833302522649690539736468115389846779110036904686879778847719747724094940839639911323778578508749603920908834421169101721869813731355010672340225619978128620700968256614237447809749535651861938766667518462579795825750263153628667375476718813381493861913159047617942581297790576232359136900788986045004713778595962601682379148489469989131550673344681052229315456420052699815956451425341087005986651212214367189131235016827679836938448437933640022007533739870287042770575761703091334993297943601718279250100380051965595254469741770677723085407160224471321762711138387359948507084580769772986833314529089397407233743646507553797168373075615147813203044670182367150972487885004205549043311467682859612603391169656990931122498229636044607940624071135922439429724749767340784378688277155035109808711979932224185606630096335410264205756005281073217090703924525328915933977252494075740782593451758870503781441382720725207005696571489085779811346113599736811034809151053415679305339921026688897948476048895052126380935077294499641976365750163796566777359711839747534241800086850772626642534065799136736314007065295847498565172255141302977317412713907880083386348822773549479039365627358932542626989007260236913115233820344874557750847267785525149707696741390187111679533510559026350983343141156806537198595281485849815839143698587384447515237300658852039044617652574317199334226026282055898023759041485719817350273799302568600833507034031978593211420805594041407781033537560220941425736941231836614501017416709986378028397483716591682417206880172085875387762756051463884667255109033366076938046513257363008420141368976646293746384712855683806472516308595653996537819134281486198187420982422332433030122275694553830219539291824627013861283749626716861697307999532143838517479298327010106797033187803628473644755294550450146040470951983874966575852074939766675100813299970996307589511319339740722955542439737929808143732368198738424368897188600808869319728641534191606950649184079466664934304418935601969517117813446226419238562733671504065828596878871202398195089209010973679979376938218025673139533459093447677831260001173095577502634417811992864013166520717670527984816061613967138858945797025356467649561011717965656884091843272006060915237462246245776114520715433008756661505592450735931130971968680886386844094542381305252624565500216677005183872732055914126074143150963828226159872696258297719411036845409840920630686228622594852503806558538159775873310144852458056786342678943380676385902307647110690115692999976817165715440269011095338050332653978004294338872081886049223554825903220351067057981616287177945160550491008472956742889914335372950131157014050433130221921913346706815957985286288209635798591230428225203764418359890238970776751909761255582439403519204454027852560300560847375981046330305150839634235467409892500706584765344241416591630387142829498508878307008348276901141484879933736546424837719720287356388166812803153450012267125489696353688615175561160305549042237190695575527247250047240807440290167811397736542210322349716687028078055312875168932052877035894514709848721876546934509227985214115391583448105816657746539156891386512047774129301996383835652116959943377095678700072415472451154412184385629390084777522553219354585798144732278289934451538759696259469697248925470679514016453099338338748067481371475645372696410281854544629571857751474409710774895666823256540188248128054373296502820671116668085198863085480658593496047284512156426333217216549562165808989813588646785074145041124375324002353452029505164104384883114005104946546255783361634228096069375282577841824790672037672513281258088702937564472537003230209233736055437110823399766446709031131065336917604489631284988464650360775200187023201825967651568388589204432196089318720273610637846401031123573543541427570984134808768331472846908738007228953488402413218315799270692907254731922217434195951514761337855955064450720613897266037486761035018670540965916412813100438447499184457857033544379169849764446473637441159773659729082555741285411714939907728095723815700704742023851156332536763261552843194830619861148696383061849658379931720863938992098033906224987702588970203272338269746899849745590130802764316928637167613122480816441216982160882445621046508725710317610269981201829074905669733927948157695500616548139732286058418790057659210311755277641130905489037035577795261573273280180560703506346869886030463314099585266717116914093192668575620297321014597440807528350847871811101436024587580314961070955688852157188898700786749002959033660071203035644453501247898997210665265048433074448930653606187778701109937077020290149090221197766819157924028345505545720332363334722061519212061174630656841188907833897850074938627330406312226397416478729948644970012955747952582211842179680779375746812246804279891303617083490421692800524592300683536414717136162790944208850207168135008212617845706909466190839911366013023387108745920055573782932157069546306354915557577893038400933596259217477194756988966187994804093249722258564819451043305095984709651010339697008755370355851547199606724225685350500146000584691805637265984488776440307142239290578340880426474926264417236517666706838616288986328111248285914905069231451109809031315767414549872294503828633268922650539136528203638138803387488818585336221662293539854070591247693494824536879925323425631413568666368882197905058296929529819678369279717978518804268107047126637747527426326512839642790135546024103118792446778436804461899231255778962578894558418475752531261628068600284245529424023096718156991717284895132112412940792725348652241488890814781436789636654779868889822100575684372837070193126451825130267937465374668551862361019642600648250980082619924207498560765837500451179310820732931998024798167961160233185276676491395577804128349511935820668457539887090456953837640561475489972626380400263333902434058333179834764845361833968358097861209639174735967742915147785145972078168961507017632797235333892392344701883535693879949578810245699934876481247736618318319735856932967698848620026966132778905665446516355679443284080319605795716440864779560859382001831271459448571643305420296998764999941963691118823557808564665075371150213224763098428155483320406544892930963605001940390935941326857421254514514771069735636802414784933170113173682673176361576726993183620122891523877329365091653048429320757727996148680950333995366416595922278113173550259644166887884690519686645159520125618223850563203499539461492503936138050743494487539251375393385854323932200131036350680964800448913848956135787246541603484307776320118126665691946935876117404362709767991479671257937973199092973761400045694734535609016691205351895595114574705045286121826762335473701546718056471465766434025937732673569584197983179812459921101092731305745960729560961662711117958993414697028563643704230571622038604925596459991969940870072658790474562108569165698558448914729956075680018278829142808903511389674882940567356706250759944562525715613041463376442898459323618059030147468300665846134692062928399681541126656957077819324472772811108933758072895238765923082250202140460077824470443106014180804359837819932362816957579882332423273238323461247877568642891038397441588261550616106420731677369258553806046311253888316389477074494232088329839908723969017419568638412046758503604327976807199932286154879489837271273023055693801625385037827862604388492353928804516875470817398074389734609698624254006855246757168019644894982834238474511719175024446191697492561668054777751154656725727413925091417734774568741935672336728737406653593195234937469399915530861001354938852546249650161906754044384201351783080708460236763453684564905325346401656429011547274805077482397322967475394068121698340990251298969160846676043384044151510513547612543246003760447499652953103348921703758421568744864585636614151239899028690943287690545427732486799392445899573196777114473523999577179916023902044892380447489363341494288995338925151692803862690140502842639984633137529006125813815807671550052821676870728610978931657748249278572019645403512712463032868769983689137820598114701448945658216831911664702238619689427563524240277024578866571067754277547734428290988391845633091248889094956278576940526437646087336555866384650579439593295138829432969237921234162543665042301824148983682470699069144287361627018005137634531397962350403958640396877245945804759968630904691353806736315406962672583349550475977326615327405007412523387448701528710824033388645833263907590300178488846473382117044506132569610746050525222882998967441601856237555998968837537431497589087462094010271519746225904556980038068209167492179877659567776106017703423209739940842476396922766769803572174111598428790427820781435173573176975669067010601551431174587920205447479142733122957354792113379484033181152254250691260005823105406227686395434766145971479267587790278423657288685938963161513926078556057054693401070037786441257225360362592207557365427933507397361832837988515331258722167429633948744159301832816056499760367781723852120959322350681494739010034529881043315198851100193658871925456480932293203443948208717593170371520726947372937193796618712009244881606862603417008964755566208176551834201932671228055121117477655863871750808279031411076280762483022572065705294934381615974121096017615494707502528317424367888740874032491459914212335136679443833075078480345754404940064262258498394942823034838395782664877597652417408737035799305101639240415169701301343430653653008380014723586881261396312099819530134505124066293843852440441430057873123370269352793084203768436268447518174726705831337139594366440786582077792905562995797223507650063110844837441000544554398574819135438505766257557460747248316810339293053198588935053126393755539415237101588217301708373212913337969880070079406947123299295902617694901411478659077573329517091498885252887646029228647596144957395705067282935871033803512348943167372815655284306792010249206690340200454696745770985140701804397776951556550457508659593151896200118723677766894627006735710661081538532144381520482364472265953274582450591862935664453671862453259828870551960451144094840227598386489979978136415789434521375582244943737852070200975173065927906524267759669226772014195847674612858330168173532946442622914928467173036364480155352016271466604383473493840452658956163119993556511996656309254208334177260773628487624645095067582721628854975763796530909148315893778593964020300152996098928550147493290723705515218319563954196134513288471816093236091694068161051414784601099074192696290107281140746407449262470980244119685690988139569897396433477525558810962197970693778814501035687534240460581936485879562015124505028142534596000078732326835750882782380778641039069857032173326196370960877579767248919954156421812697517572340263974725156433043322625368962536817234180436136767756525613238619582607240371012746307158782992515988803169420491429024999581487978933032366707132980281868875824068468237114162121959531511862283425260236210204791511619459614387673810200626744088673711568824823933946846963333158687419048178625017778589837671831571961754239604571321926641760978996509144097019638478197525705039299246592094120537513066264423738805390171755507696089458223939549983750930426123318421864571717032530024263002300922715343475566587676078787681281941979226481607733486249647304065349885661935939327051251688353550695937375853448775730926352984147668550802420971013180369539552891491529920807815082799849366887575260369032226682832644526934743219814165120097486869375358132718232554664595251518236476869147459125814124110613484654475105706211022933167683139350192849771049549782034337519027500334972121763997498622071321580406974878094302356233326385457483926944026447824573480406074936495179241779287819795003117430503466413348436350599042405278988772153398188652347508637308557980311589255310335806148842463532016240156210764848652443574399574919648274243938983405035259522837504797038775215585038894680854255438500656345215184043016422988050353011347200699601483169537430204078466298578876276176666714137506420623565785093527588486406243717134773221700919593611987254640219720014654359101166747468040024010660865804630901383238251188152160359205502241778349122318788119923818697677711302308444582788288896029364933770860065377473857511154894844459356739177096963811760348565488040150110779332887582103006920815779801531583596210443842371180664777692002371549844172636488915069249691763166112259520530931097683119180649687105902656490176393175576952326742687319878474703761391961841357235899454273096333742389936815935428012574941710176469955018944076072416163661593970598908419549532536613504027789945653287476345477836486604928627827654146771751562243807048881314360713919795831423886181187939662220306252892982544368837830395011164623342296512525327840594514815786197555187590139287508827054875624291442527543980290531091301225158143212807875603505707082346656646146413533095286070156247540791624250690097077836332257761376346300500745873031340408319123796274948116201270279743277881178415904060929697364751528387616908998141592495073180912261863813917663690590498747753404331814946840224068369781514276787974028817736919276004874371800096339227604839979166937786326336950370261034636215305156160137031818409212440776429171292290104387282615309043794036430654899332245264998492525585954358930506026615327844075737388570980580414672355772048141795797368018334228139640399805530166376858334747318774560583256374236495250123677148279568058700940115100067109752217263485038742166506392747775796788539729227401414855044563133598013103995725210651357018037830686271043911300140441181308060466081599559784173337648309742283004181842971171430522784279634360150374762475236071657779762334827003142638969773990648372845464303294603815557623619694447685549037943206006683878235389233244511062235787980666780198983664142592877030052058278167443177759517143064131761187947890105352667078689095319473498877676924417835876985776737105029924064218443188089462396211485031922925091019814781491430147415736442162578427842639708841618039758569638360174782180067854089608092988498207515948495757328732733365687805932938399433876202062409873026349411905638051103241562601390869193399329474659543995914282706240864808247576120995906465822272783012126666953429587308003778198550702638480494951964732886695363763957593507765195117326943568769463583228868473907207540329966799233772732647806112146101440418448109497260575454825921320606820769651394319776249312433795149862769880509867758970669077479561195020513168530130985810469747729808870422696501719699321531651255308230542652661736515903324883826785304299540143112731083140328861462769709467913142430203365697413900528101379206697892805119828305336910293877368077490259610136921857772158085383912855300266087333865166174418989662049780729553742783610989672518506945711512367058968497867721605113962968532746015364873459955162041478386090807766373211516335885208219796349705467372072740803039991533107490220446447499978398354949105426736490405399885212243924557469195983576886055682483911294729307309975847266033544370655297539121680495877108883310404064868868904045296856563167478084188773900688455835933940047604104649194860281697773362783231210414331008340694471123888782837309043798738076956130051705626581095846545890176830709842528844494453323188765716279866570598414910581166776302713908404511589245416170102403594320940291061198442889426505308514482522098267090891510937888032720018221868534288501914542206255542522166995849861316475658802157082157735452248355681596337613195130938645155899702880524198108393865840957823839916001284883854775638812073189604429877983427762794237159819731132928593480569899372441734806043511487324104392486994750628619770239821653914260335114615901437565963554560024770499688939925591459797608539305530634992540518398035601489753984705423197859412174583405445903103734135628452068613103966064879944202783419479062583224919244492297822215556926289450656131763307844200296844947992237296731061176513217983277058281786600241747117397570560709291239013274153617166428639488571274811355303805335404296642984773457961265967833217150508353899396920155628587623936538061157713439996646830735870615020042031807042038930725863661239849058231032587908698516613934038113869955119214169007215510168613086597445343574570110659202341438126781967430836152349143283357668111837570454459376803446773853653521810006321809847218791168981842841243978229119300848076212391868334126992993400712175370789633832389737325679465759931018841921086796083869906583863207141190352000451985615135742310766029532987592094677051233193865629781725141372657937158094262064160950741966732840354717055006207834976370337396691480009195583190176143602198365734281720619643476839860571010729219441443162804038847119724524259980117359298239573786513713390198796813168834111084583000647790851328473748830451452967422596449291921506461982418352193522717561792429018788205958098100812669550978932498121658599311002382194280598746825385015958413703658201083524291444641869689816989738160259011382445344155092607334802215393149901872523813525234152821159808068848234392783275863313168351079912945286168492917249357718532544882071498504752340437650933342372722915361366812842487884025722052471405442930276969443623266343152085671792254948530322446791265938570476177860820632723154960567879866984404948637206968341300211297777085697275271559684805975804772542153074779367976691604915864719953912168160544750490740452182426674738568213065404087059053175246453439645311157716811550498642488888054421691233964591990924034359066355680416178987114945283305290517183968284394723308859134442050364546915489205763046691339320876681616549244806066207598350348487603108351509691342025570267110402882177720362371416173755337302967708729312761015060713319452186729220521288613041386731052672860286820899800242290453952023889549140352888166668320812061798537942234841310337332698284490083942684148709493697224688766075514109079343975046839469327723836736131708408514006133083409777630079552689757637830285982506809745922059813196433752676413958529399228988301479428552053777964414405565986381048057568949976049535656069359415082117541774010970547329120133663358503953858581395724419352324735227171201544830028773725102338507700590283161946478234524377517267029561965371317484646299790663635313966754848637816366190498751667597648828986437413487091862109001727563259851286302975929629343250356914723511037901010959218599839504259380804973323173449919678090731022141804086535418031513511734883529453902403366183280013229874136495742284871625939480220099876198754102281689502633516315908497916266253451502930089495314257648265028914817955337613354854530161729978827470725545230427349879008359938269694144484984748380216376037031977503017996163633558718872370580679439427719701532390760629190766727466843403575927202584446762077893006689711505762649611439164227312106867031044197813551456455252072344573894982461567710128545122037379292980921982534354432676986956038723445257364931858706749016504480961442348129986095014517705372905146380089878975145422441222770655468586787683078079743588894124426165279823173303048110147747148898408936549016545952305286109041167317366113747679640079647790337374445951641765284494529298435654257112485167739465118057030464785296492536039988466032439562825238519297424639631974822777229176521055949236150417524547396366685293051771921025604746819540310903726991207088434979561720749552030327902779913890728500614061117101887350818564612123922483403327060430960468015866846049001939974118415630129220689549781286633003503040184433215755842756919847420913209117051062503124471906882956516356982567039101261254910229024198696796872455394815208746640606049378834463001383106801085792434448449324919495788224361681791126953485183334013719765065250478372519492166486717792202772286237128499895529552709684791070812469926112858999889080017502448943902433593976720291323551854515722673136953868021367632115454469449033961112393367748721833950533412659447960769698309847610991509657018087099965676975635135537358999453240140446618466315785189872749056815137264458336681173367011074072748143469629681597939088578897708287518946543703987276490582317616090461594820101419949904654355524230035781799542033445665264787603774677162019682212406740308844378701290737202097187971295957710506616668912458103624217284498342121099880899202676008453532735578906151539015693009108450952554467224488402650918166323180976124491808494004706762014016113201856770209384664417086239560742514835421338788740014112463822862257440658201105553160543084899574359392293932281891185084470967729473048529191589570491083239637273079707812803431143431799955596984876235222170366817207724100969437448482717033070218148151800186203215263311084193823249605872584270415768463201918439797662871727963658128626324619187473435006436833108644155392374530158527080018857802867268079035044701557630526481239986768160223306091757588489813684769439964318711594327084375783455170695880069686015291133728994319423828470448133458040696839882878231431006117954978863497466527569509139628781613856107103820188623830973297342494469861626976252400212408828139024068343863802595440627202519481526650696500368641288065558964321354094496702933209643744066883332131391566458103976416914481363476831280594686806477662003410761269995157900134028152838974135191743591900761296038202343943575138386961968338288974522899170514723376978158389814509608753119268436907287205259048363539677824390197473324481938768526285451231728669374265123527132826788632033229404296151777901622680673165783948660275828867847872142391752030205979878133072430922216718139064372095611785489842670964764824788359952269234817570859011279232359133330665810627177778114268880010034469864841492362578757042915651301136518982763819955554537467300362833128656332584175067095107579151980593927128709052833872001865888751717534545995518508642107546946486059255389926686840045025610508660183522498501316152203772111710592164528446738725463180635598553030501912645863676340550350613466011743272367356792461961323348407050322563963673345266589827030900150709214369352424418479051642307576905580115811757525712651238155052976884958580057585805587194789703548397299469653815814110641525289700964979297516472256993871790734979471362916231918879072648253511634653998481886677106168354060695302006294575641859595399553670362724076987808643388753634052559659375617612570637788157192168110089259212650374310810531028578579641936543063628528403726283579511964088262914334564641202425307745966463297819583238746306070124139574976858652678050414846963702898479613787070220102866715574512036145975393280219612673656162245860095734283909486046442083271673325640141159663719385227051653917667798463720126996219066964368240628235831941685336316031210823989039602926225894419811432993820510632551634057292623333878677359910421707190723840910484466787933361665976137408879202172575302251618148027241250532945012267887668831546390783289390452001053853650993708866679376846643946193180296285468415080541587860125191782070654698944436677153859151843590078097365098717647514330190703374295050003293356277695247194440545567829251084004309500545595030376219321294677654821366174078734752854378834034889740680165304626983519854951105697561132681393727243878183491228908831745439945314063092361210319315026598460579106235660243518329950278086859987668421629712946640972103698951102688671347590419715759490179075229907027397836239730066780780169379454167059024222539735142401387419178599266985036020089237119898090140555314713450768401648480879847929493662887269400822351800472348284155415312210706216169875941592342660944037714840991531462831701608295427218758487991949452524027714225738668303762321435263401682133736756582586097868883874990036072428863439211776596257019527040594047409196987242547723198501157196562113345150648412191960455139455614790879543661913025797452466904859626022766499754404281132966625693476637590112353010557949566098677793937779263273232783905195229368558706857599122432476795242576159473900806413187269452552820353487879957170448027334700951992295178684119428771585600692474047133350051139323075785799016942756365930456380583488602895580372458359072423328794212869580908392697821197055809336023844641553141310358053584676658086073600403411295921556524557433458613483483694928885034282438886632291989997585876802159619498502674023150762814845318454937643902245909236989587178121924898551424401613268063706538883906179414916237575500570193229736685147914291993182336484029941811999929756374140916877164601731310751617774703890827164936138241475956813805203732137505031558549406344766962586164910024163901404357699190564401353020839626896968908415085924088705883511498715063673066048591396294907376043531757790411297739766804526796442671684340776414468373479810338822804111769148076449989237579146067652408116365991079188125404025698351586744455062705454875301518888826246494586248766805900863832196756431834070896338594092977856901279705071021960171075438236218906156935320215128496521445979789660428997047125039085416792984237765911410668103870357909637435591422708145574915700174142518392425407100125948360940794257134838023450305507923348234698511574876575827511343185811519427041956748131056056139038433471034097851364821667986836586481378260443537705336677171522855027823180314451730347237870496303950397720709517357905746962470847413410767823939540085472624249889464059379143849819805419495242202446439528813465173769879966919540905748127063241564218353267817417523980307128392169264044387399724207506032464742308420321963912483140663194238703529430230734903005301242607562598478288817810671273216518327349521740548136797379069047256363904062651466764906317704565198974375017872354633422040974180194692405278956917349786120025725390495594706208232084659238202408781954109288467205062073960611676694440089720457323189625874098645604600851350819750332748354047257641567469568614680693109584803854559982237101082692815949110261969719732628303979233934745658711966813268424033607885104415965520176355986903187064416359264085481334917698435816857365985564786631989117287149231790124968231998522244542906161429390651225659445085257262995220248537195679720293508301940028316490521361800558378040760576572910575038789520583117479263504802853736052020058355691589533348749688991704504530752828548523053442501966807035568761025768749965879769305115921451327266792938752323216194156180634560273999417824918975604401379778264302643744756989161872852396996176047921192839238789276076460058633535264782129034781873441509649877538396093234847170105323145547548033420461007017961646965114373672878522897935835552968094209535093994392560999949886739008394687857337290453053047299869061894094685007370217008989594955375235134917557913009809987219637816527815671051499425270693921500348145757731798195165911462705915796276076305675123428118356412047723304169648163502835541802773725469432203314781205001794163862935360271190633374130501288233128196050830390936243849956895739819177028804926520867794165575084869003115064761835153527478456942888152762868213869589555299789398464777011951999416821479329917569898108597133271307599246351243606469738930873823645658329042751843623436965534900363225461565464633371179954069049009272387452376259261608221928934745667707594184095986162903282604993259413858438436463046572825867261822709064836523039256957377252949680207588441010671476171397137056542343381715615733995848307699023767393190887396616080898332825224413615797804282790482799378801926291603454719438998161858007750881037293746994017730891090898536065058826966659482661765171494288026904653650108834827841169558702949938914543636254081185166916748220294491913843175458505751104236397536536859615207887712566224236791414854969597029271137849629091384177964072950276653877965980315849508052053149686613657910915907048705085249856325551167987151426831543875065123531480622171414618720144349090847044672959898887823942431471986200406050657791473576787495831663094675229546857129853331476920545165448878050908002544651046336544913131161241321626858016187874503834162847063207620797358344458191719008380055872605329261736924899538246425340954702488399157194276839526166332714084953431264647707220601447075593332954299832398364302909574149883252881447950397911358624503138334142850951619171984483194639925546727894825001204297725372933591451924054032551783094326220903540405526976753457094066108912715239585039707773489496263341925619473170295140161271065641209098854188248084892607066338091690213925192785452970520948535665559829390626680467441591431168721028351413767031956855206407609528147645680169008434628783014596258791805842289560631644488141478801738776522675214287379578232105494062588572231347544011919498873374829642884747467922796762550256324231686690238282262507780033776109107881698356397694924236041300026345479532930810478740074675996794525712723847989904789470741795515511415896203324170362999871936543583791150039272725964404102249487702808886111772670646068392143020081533456137456438360323992102245462249463336116850745169222317027042360603936912703009630946456758701421070245453377483451095133598426161485478900281336302852102206367782998428787899404181443676812938847795001010348908619999771385768898805699683225749707180363384138751617002357507288873142343398883709706369514804463315699813112104065483137022124797429441808687049736703454015854203334276525005407392530383674656731523531584234581453277389326546273060852703376019890864904103927699758757339875398792032702428192097661959653883222591153707692242071889462541253962228846643243496627173025161915934776367326025110453901334713465036432661855691318670423839156107405807444181148562927651355943974210455898560848723021477394097869445984134388965232761044061989885622297516680231926598219278748935311792099608699387533787425876587722994608916530858992749811801552627317315108506001251015414707303966200139884617039311912253999549470268025149625631189621628051608746611737815968612939634368725746901869941047379629373356345595314489645710904190638476210638114065832948575763060776403835455228198712483316029885050485314820315962160638289216050658580913542648172038265486775169009944006775199098961222123953578069402647188197025102632506988527880895917665325851103579339207499039456343153572291469774814742836463927483406310045697888891293086299671328052038988647040776650380742434911250441546112946082767070150365665830878243037085581332881797578561209706002672689214268440193098571368546969162783560847383893167713212827277703600709902724985144496787380543984641293623776208627744228071167757009917637524271546042443467635890049740959119851536605975496784498817497340293459623404905122378454249609836991906715682877647775974689172822630528199272540234776162161058473806563136974726490403997742720974805906476932437678952623503521937434900226780864290414940511362286286225006051239387584079735934229499618319906764267632427654309883985931121458928741154105971914790788544602517832310804481010985935090123148799177626484141098916719165624133723202759422638537114763343346160101375845658475509657651101006935734303963473725991883380678141538291772301246051840315834532593870743816695113078008153691046982000952369006450716530761711201579311649357937441926993429311936653560411895422293350772169130159630844424793753728780050625302079910742791841268616933884120196930566359195318211818146972645147464973524081670904396328662397265387007779221702219131101428124012427564796580222717412055611599842217640594614228789381977035695302651382027223256622040592686723161361009351844003022329061363707971570150045802332665713391818802268868918850745299724118136310096088997541436441993739852352911787432511666806441984587466111232479380357382508931718875553175834241425948290548210207816899077488693698390429813984648635501058342818986716720871706692630450600990427709495592096788485080561631222815351501403353755105000052492112102800313077383407339600777402083600025973415637254598819460111874270882393584030760624029838076650606707760035290368851025498467377187542096825751130247697334558190651572069872976542079452531156288781202597411614327620000860616185925828868884199378057775163233425582496184155238791512420823902301775217522226212561093941984400926849098627730694666616179065422274530606934406258518100918302560688371095009708903652950677473811343208297653436966310227093353032049506445742763166893579891505493432183093232485471715426110030745223910112540607966672008914602690961494213230404731151136926924491056274346961625698971960827539734734483462325027477567962791117289879421050133224090713721252760513730559515960915178813128341060184899216467402156284776773149167499240712892684725954096680195304623900184814429188132403694360227247962599962696177719290947527867945925200796218593103947569381033936755838828817054220141794254256207968054569953768431025458855541387639888462261008314460091592283185662265074292075679540150603908559092576644743757907909948152418914478974711936512419551505377208661147552756194120207782415717465779613476602481286321611737396527819795413136049536360642266055129836007664299637427196327117630070542363075234360603492514831531205730701476196222211489244383728524072236226140366955373616969746643231388933058994620847718111345447573869633527835364336731867354974609106669655830413335838428361621307827228755295647210687506827584776401016137401998939692313952131581869843164922458808486251545120855836232829082137474849079521497212753706465682578024941057878901458962254886139069001440117235898958012906534463941705288435177967606003228485785519323949325732512444760228386494227588178971855727680952050181070469642337030915432301588286930026677828649639981838305781306532432284727770573974287344149807340174988938613263477109071044311176948543784397843310529794725497534477023004332346915814914806611712686725458140909670837480870456120564864042614518221983724695518912187434726479311802403565068196772683752782357132383292262890605513061616508648702999225664627059481195509839312032062749239166706079100383254536378770379237812351740022490389659708254664255500468735720807574347496478066678933301260056813971318102055040567467172901664705029971643007654663192656269088952251283594357258289209550644038487532142503498893844328635107467821721770506507972051152852618357919361281398916868153710200250401241294631099352870173769752116897595820210080336246208558761401962705949656428192421963304441841148537380423136518043452227962857705770428713966175114307915177516850357030778647318612936736311290070807244389486540344212696908367539636689520155975135013288214356844457923945674059760180445164274220995325076140881416552798135118608399359263936303150500418608695855419838197917358091635747474242571692466911431540102977671453803163626979709793185706832645537386617702139231715351971380135907154221452387735722765849903530468990764442889729031764812622631558727435979326807347528238376837291833681061401381880123785918395230289908519350178547506157932221540012449123293065170610569668788227014925243325979320074383873264669936858544038072536290658056734688209616278441378827549671370339336543992066402756543726390500578911269321594411869502891693523545283082105654285830749284221848963712996652610886397654511349338008921763114946002505760688519743143114813699459603119776335375832391098485808121372476299033397999312386928586402696576670465814536257272706824115000300362077062644202719657865292244381293671876767979862392436264632689403402320699060204730620395618352388678060661352410808137237532084169471784704545729048952576312079759883898354034464250791656134267529732650954678780467757823301308885399551193024501921777812846978452845564200352363905208906431266462215099481605637066566532170237398095077970035490543958439513097365593326561781009623841001548513583727654647799394769359841030468718426939273704189894220413749210183537720512916661113713534868607932682913920211767684546029758569872891735047554652285829262634525944676898284063213553218726397083058430034697925484966049595137518507716241276889370073756177928651427651536394810527401307091093080539404032079865890445102442006598532358226060038514707052751109558095754951426002854751384820007167606212559104724939177518088831909889705216722349700141387307284072933961513917203368392425353059220605410482729956621054708977184443703903669144030424760461378258162885269721646849931494447127020118773317784626284537117751576278769092823943526432030319389067121802729779831245038676044540853371674280729743885636050995704931919654484527372423131769239228929379123133535491867109246317533663827784733940283022595279842671404939998400561067138423672600101362594268061907225139094715793243938059821690211450008410946199053489913909770368530780367670401348125245837146054316828461978532180092190833362908855880708749416269531119758901238345426579655649467260649415075168225647337303339862025231084497884816302187575863212185136646586247298783588085542940195689359927183913847602671514001974659407969565500476095980057091945604575369149887876345717377851673016759501372005268886454664691862550580869131461371489571768515788581559399298170299633395136149284691786585960733355004836866155572688419978705261233195647801728116661372620151885048220671931151081384767144569089431450097244404015606300373051808134194198476836479464559493170421545514029757062547796434909946453048929923809670273952900762229931224712077847146772060509880338298505432261616150751890074442296699283575384048461738930813239039643416272472094526087602586106319127625239499952787528680183433249347904621254043863391780966521247163611929924254394677778671662083299003830874399291917475054404983843210997831050890732506254119006570689842800995876779782001521199977339828092142449322047582221660740140243054897037438490612112954566631382120632960097348085418174824907877917425497781637383173435979977245757718478944192070541563806050349408483870479663984169829382554928802380866314460823143249916250461772552622162327755115419806272739996322265715008503469719786372933348289993103412711270308366052696734016796503895714809704065827589392724022540704440849600353154201402327548042369377941426388818852804952364126192970676531353184760525385938057590888425872779724618138426091472068921888576960922886356192280074571960223359629613460943794021534348119629511525849739877349919356797044782015507867446835716313895293060574653783317776591373052312455989807268855375716990202405287128910141262316974463257383869325203341601804797907014387052051440673335029583206350939786723570434188105288397655451829427129160237463106406156783415778515810865607310290402807316106159906312577843486036700309611937072469460418060236143648163950413533101442478086353407779878949727738392727900466696843292481679515485833979621322546277587548799730142181243750928307173316595305642205617580892905405065656007404563213965556040073446542869947340478641210261438232316746015916474051902281349541799838263127189980011120344794474212016032159899687767020196803493912537309479449149432027043592373060757183346770538727085506794745684658656334454165614641393400938118622432309928430204545910231960419351932666318212869813977365219137500195887337862248786787790436661415212382070817689394690335250042212420985492609696225104540120930279471932906863702162415904705024600047628109503361738066636161796838401700730038031264620229186550377322002118940295036993308303838395636557266709203808028194284181967848836467360744389524234550181859762813477542413528372345651490350821099073227062284429457601267152584712208747816783902496850157382971772754458734972863237663645885517301042789671385469118995054128985541092006696156710444188560186506763079473198682309932123301058791739990094627869581551344693313301803497925414447504063056895317308601911996152216056422237254695045466004236659868316264904008857786582395524857334031624349545550739777757543446184230704242777724435890314193777285694065162852442956147172733370804661375091167238506141923143649246930284434149414880757370273141457304621093899579194538897506182542745923472666055450198766749603246326403860186688051058710831124447803438797589381327365408472576989136382006264040607485812830375652033570795525816819172881141497768659838992712509259370051091434080554790528949935005252236992360747764489492575514773112251405911842241777499409115983465108200510887696658125682088249133137727996719085991616842149790063626155102606291382585449906168363908865782521020656144763215627415892243688617833314215003912680124974311591161518718442945316862885175464485083063323367284126368835779989615247268780258831324271302268416495556915819363399246822146751149673189968004549407602464623623658424205299485540602018911808588561792417031908059926647037600241158626428594861917848850482108405414399859807110547228237924539436909223586800594688402208213530734077905740431067205036803717045644717920968298016923796446949011736758843433733400305261613995489655707417296214089338295500568694610480545258503829135756070626609382386090623346883228310955214383680065518041136095882620649965165092549866618834694015223971723510124539120446582142485304421805955170607386519985334736874845327477798520728413290013806035792286804463910007024308788390667418848640713029822320220108491879323416527522533156130969632798312264753849674968387742010721545204261085559920818227170929796636435394398324284046697418837678901170915337040290345241627962312705556467155283704624611170960176190284783229129134574367234600649347015349685597848216003419705625125408576172789137370512215251214697422014774498716034254178393574336909966902723459567237032952406365181712976753422648306203001958086944356483103914620210470892214151378235726182197611495250066979465508868356225865563508845439592319183407338738912676970858864431501322146284710265480771468904211803760597418233962523058723579513433752423988093234900948170415119497970426630574992751714717945619711693828498832028829571384443495635134024564218174818526923982077093756886233692950168868505267721400877455454913581519811810992792635584454010574260087032008232922072821679978515319043952858613991039814216814665077078755593721462855864609585024852722121247004697866179503135576206379985885175324015641457684983234880509167348670452419726284298644364513202099153620892784640884180180858274878206271899904406255643275878513595135095635467936554297020493786774608116404211556807817713370216010746357639925494988445255548048011409821222336970545972489065428468864635640776727787461399098611893579964507067246341693790692682804479212763226292092049405897433449443004661410803022034143285620846074773549566651187174515062753101913143489499146702095550601972217109537261703678502165047721314819552721333808140456805455424309464055733515065964290042719626991148489142993861636138947718723852075754806480652744376445856808805511407349354892640127536087018166109415911455207158188272175486743955478580543518546001290026829069479545539986144253901214339118387726074829545294614576224700892266392035982149910799697561191776927813927343832181329910125737286216223781792535705910493483225664685603589175731131105486525613702216956657825029531301686831637522059271676548615856459841348854009839739085198778418549223366396018433217693428967758394380778823553911447433413234645211353093284701147964445464893218170872595205147435704448135109778073398837915235337444725031867051556396637694261912859638716072454918194649159561548073054750222871742391882525672175764837349922567524912115324315981042851514487357091162316606193474436158735109742220371062829924879981978423573705743816266778030831307805289691997296520513829937824361779799800846114341895166147156064445826928071264310336897179633225374411199740841894565764217704586242435793115653170582722880415640649715408105987123036936636387858289740358506419588901475684052502884749622229257355943517236813964999337780166577688082736002022746090140656396527937788058106836111723236335124572931117851520731097062187664065415009082237661177920605164488612953673641607749358721155220435125591766346033715218503849860517818579514463995516209648538946312091334609892009463394921895280479961295483755077510004981504454633854709814208176917730039610598052226931077911889382776939167683671523549931258442766588444160088316903761658390294763116149121225225935945353118907665114348771028213680589871177898589993615191883730585527364319736273882502698447308313479334163121935488690292538232984765221515349426126095953207305360625003706865703236211556975576608842926767535496619719405511360159800235480333635739473486185445968392395227655108935290901880812346344687145857831595302312711293965243663088833195906553764737210151624195439980221984854564677357813850279414007635708291328066762494771383557770581534003924362432986824760135842824518767825643533650778284824727972124556322389133318949055730790693493898456454986642155617868635696732855600983489613077670613912685900548601791858811137059168248117448788076213938104459052593965757251315705629764927916607289059111921824617267530321582743035068970503330078916507306900576438052379078562463328188489085576265728226376056758804776924868880346477779181949866819856650250030762230985248982667325136509400645506158390573118131185057888604066165036790242798858317862902400081928895627096002374289103854959408898143263385744518165696161528403956843831512274203335836778742596474744947417241456482590485904532168766979521883896760973656115332097708801151324339347177003426423149737334383211722905400304449468631681308876574280004585529338921887261893106416880212745067038077325765731076542563027826588916867220543060403779320265828588277726627838569959122770213615951211055531399412654514322750799336851721732913711404705226128016741108520377674565365199057928769777853786805742661208842640100086189151585059316535065518465494944841349027782874822425998694386579005551658332862335429791257249113147258449981896600706782709213545106041019768078684575541522979938542648987489859476243693192490077544758716467041026877589320903861531940921176759134722133280197190103282296830288804755346009822130722698189973382691979255640409050718135058263874951666015599051258365125904279089176523622904589430881970656444342737270832917586903867619495862731190766110610199273022882767923288586924117039609904363192358613583201646420237675742005595699049882624866187289579656288427856528028743896132206227263431213896083776491693474895511960317807914026918427461244129564038180350578582515021377922295020611746463501258808223754096076226745906621964643791328684230835702767152352213407597688067170435887094033743049564017575578455195035193838443716695675762234304691995185324360002346336554339672639290457432514825810430676118644723989322060688290430813506629526059524830365560655526897976795035785935181563225308968587098159870686686512497258236819968726871489848517718599779170947757644300820295852501446833708011620775937904202668838167508674903704974785187480837206175650013776055864555129806655854034936720285532532193015113789512216587451334387096051425874426524725195283342942681655233481142589737993067555919449437703791728703377992695174787894683417977609021466519043644989396176556160108674805317554276724893991571346103132793036119044156177251174226532325575729441906634674894661678357159159644453137958148005520375242129305556880644682183695835529077954487559576702156857201906333571662798663427579260649719506097700010005874253960513059818355588409620263671640255672820782268086535172069525070554801592625546500454257460467598404501384906624602650261214506704231231821632210407662166403316299216874654857603003279184474860171414477198434150978857333931701188967417732188488954299251363436879937397304268333099129091748075174369913116503645725722723941875764056455416721578281528811291709790389051381318968099342859563896830051839647883866100030134703790864738207371377744951137218838570450567931521131922324744169257604403671825044783078167450114555291923374865370592135288748414722945912028783946590579369619268648177860712356208318189381554888971247905017003103888292228728649740699028854755850816557079621151098268911696908565280528303401738496539932617902708767399779936640505404033197118590793533976084295307235617427803619202611936030769858588055160278721011253073334083223465547065881082023249175861435374469220956419993830549712240949298063509242789964197818746413364313946020207054141712888243844356404513455440550942756721698011566733690771160609697267110574730521935412356368163537752439023945340307976870471755049752466148616000492459781510990120874369854526125996977547877959092114883202766970689243463155446640064291384654467170602673537440344597959303060305031795914782827670946671665801096401709313368528486276844576676806705834941040235924132595288898342682677392752099023376579928411397218148380270641067107850367845999423327541114873032674065203008404140432206104268236813193193135836581143898743977480591943220606462331143642607348481225070306840534204915142311199732342407961921283170231885795430968434288361912473365121523875132305210910178285811810513416855889722736246500391815647560064796837405157007901812892573757617513764080977153962830898931749038109284786790552157369264844168966591475303043806141753439095716689747254635629447618407633716700876591762878589092204683627923005884703075601634253240080386208215188596691015766893747165054285612643973084426261730547743692632646843611843658582761615120598914766369405670312948809319671483126204024721066849243955680425665737277537951122739984722772766878255046681562297004735900182673868522932999418826908083646863688360183746160766635341386282165835831934410829824984945473570065226754691336732536430562449352341035397763496888827839109156431260524909580082881133944347064879374140322697760931070988050948983557267186967047805937639810608084828743896765400598510483974716800848315737580518704392117502621319490782892057541852689704320185108145435089462904698830449537655612522597959117538157542324504372418344297141666154666413815428980837138123231442144002651341578195109392391437190617921670070662206649926963909642253487392517500799273133177585394255484043039670161549815500862536281711748825778089181960215303148743431402656684975657960223506962571280292570340197077435437749858657418555250262766072028939257202128638188625486344860901147574623096532594043003744062495035204251279041916100101698760544716294260239184905421485042973398249657064636546203817684894823734484061013203442453576003231115045981411627504972898156478700869390292166088860913976139647716885520478278880352829271569382015608358084146141081448674973449281787110667076101302999815546146268257328037454864609441267100723019210468832764132406250481707316726064914199920583837608276253349405669174365363826452790047088272090562534334688828358256198324385419968773153929708326858699088526254511656565328252305178060210058404514034316005523989612410545941093446049278405203990113138677261265906754362780498086871924384536997112888041921588394705561035754290598266901383820128972874814708153392228904231905140372337379327392160131857972858798949215524909573163884213715409135089173172979616363481718873626107050202000058809340557966944099503207358483892824484302252011234308340556595406603539525698602858737238328710773162308240312608354517124711223359710402322398179570426381764759765192077808466049135762915907642224189684940829684060939047391736101586906712589145521655364129442444933090243168071173255273817433143426252973068406888872226041157002922197659805094960222260423888777771448028229544188687404840694684431947619933287484530675873482191406501016766038585145870251894321613102846508472658484824558261139000012400519689230406164985274030601307801291522523365934598287486688210156967208709355107368029144118223093044638910789653438335055251222308631744011534888132732841544588780446811721449122038815306984210803317230444746573836491895067535024559436722294777059762664928282203193347929133575203441233816115587336654469211050296720298055172274632087069957548052417099035284410862187752270531351086087457131588339795980734015879013911281094035551272908570567494624026672579510710101821092511257024397738331743462111724920865348113194248135163260124138346142674509784155678971102782059866961943293947917532207515459429573984551363568458330865420357683995628800664521452543095791927355806437540501192567514500202969072859106455052378002064646947213350338605941978599598728456628380765847021031876277543581736014481850250330639915569809288044868185772483127040927825566633970826986659812403525338108771851346139925164635215519336140923103060329570511555334631503214529754675138804570896654718976763729714185482464404752297054835601255612794952815227079126984987616128889042341369025321070198329750703036975812098580195483327796214135265950727678285180129183410494754879577464302074826119794809815457984192697452715842837875832166452364957114015644747635767604735402055247993622446566132281617417329209489694587480453249924751232025492939298290266325419492856954474828649986679802159968896665235420369994249911697656326118114632846989166072294967898341876466758314169482335957935007689192918959295717874089895375357234251116925541793232368102494671052355550093442034563945818642910562502244359235420377980438226501667990668933297179613887881907400570999410169182741443057426496905270722867452485129220285938815095034914591460304571242807008324699513794536934454834711600966984803205670059781125729461572365110146691603370969399882903899569554281002843512987480149055103150154971598660711398881280645632393036779786184253600689500854123189903506437814647977691873301580734225735993720848477856527396439254664993248246513110954402742047675908476545356965810986816785619080041668569326299115528340913538654264154798223387649238023657913274908975735764423030774678421580581740120047241627127707463964768427750629848707578835434780561597718807038296209381603668907040779019327788293110247135942461310642087978340327892476107751685260305693623005223940342101426933409683442135748294873155157931876654590457532455851948778497564553803809875918394715380713985298076299026757784803423868528293307738199451468778149909079556284051796593452429480947900173004893297266030620951930023746075112521446609488360616292182458564096276007314665194664072039023424075890940205604191274020183418958761361495939263830770196255265674168645699324892559610208410448328361063655250309103984598218048429298450556418467532380464746626358292688826397015975551091962509654112965108259710582371109443878013093269043863032403717755780838237281349587029444229746647374907704799240378659124164715852807857423128228214731948816908409458894812874804157454309689442390045851344816073301420905571089498514621286744453362370761251800887734550315528478455517674100348733668031599279590652533646900006136076503481086589013236604380572520894382479769117815056443274744117286923864642069904805839536898390642608318931879397958579212894687519231316473104738614781930358940046201711015123557425795640617012517612554015461099714966667782739526798345744482000059088075931962204252522212031628252628966818989279745908947758779115564113722110703184223376647568298583138313673298768477556493712213292950837468169613435114011439975836681865275309586943547222437933074229837642156976530713903027603604074083450662533843076810531409429827296389393030878502267891604897527798869374168626887919455622106229101008236478826518538923954926646044156058620199595700453033293387135373396395679442366078823211911004100844584342958643360694531255099225538605181700700717858197231183008468078598292285473953054359596519131558904999866520030323733334399096923252248029990148019077155770172347427738980685017214713858704870597266451347573125590738492243505035418724973539130613066931986758007560909183945502169371469317856836490931329085696188714177280618395415215670619253251995634558827363455527874840896073843490843472965826748009075907956782800296995668035494245864412066294297287732432549278698810855342172698122151592654605957352874612170962307633789955580186341692774089723351412130137914894550872700705429960826232567148706743023141122713556473461413489528547946277809841901827423414822656241316402198403748926987583250986185590493169141608399766959063670059336666540119672536642174994798436191785850688367670398016114958618096343055669203631085768298076429864915676069360595863375089691475533633731100352873485542381538593678091476672476295814399222693878475192843609076542904509299044546973544803409165850763648011534546993712184370341366696613800793859257277699576295963700344947177347464891819762471391224495140602319372190797576559857912740388377276413860063861365303315543659950404304834586586337072016423965769958322955901257353415910944556681833774846102614341746849604292371047992709720798687839991836983306447850524146318508283971090805445279928375884464832824287972354085771033539913571266025938284747832405159402294310737915214562282396771422771346068235714374156159771410031229634507375074085399016168662637540691123268320722333091043232116212469324914331249462303572484725339343263215932497958426969184222239567313829303216070446239075239675416610379332749670933799400671343989316220555545254529484261742815640326569650302533540966630383210697804901398489774043613506065850058525383669979138096194365727976334045022521193046733296561824159593946127909539615996357624447674862833230286476143490926600005532260263527818558827917608054484591905522279076572415501288780802301697516413114601561525968856220874047961779329347108715912367169520291546439388753183041501972267075418215436587653533337690787105213937904623319813665588367699010023272339876845904875447447372408137413192668442297993995148294980591319423390501041646661568737949105462939309658592616512238570137188723426146962851636945277430366536890538924661951476692942285722693665732545654499712513308057115236435519098526252303228297583500283866623572103238873657147025161997519617467168771771524554608536327095795894690805680449411233043229287844790744047958782172371804493611946077506119472649564336845618623048872525064568137413194012288263439551834378494497237985623810349362457812584055319746347019641745984272699857801159028986723988732411749810220974387500255735283779311903550145339786051964137986712500338358541117457704358391950446964299973373389732796658103433705057923330475659376811382849793095279899078159906130214901310119559859017768858039037965725724364322137083398270856036520469804319396721943386937705862115333307172248093214729933885832410411597381527039409197571947424824361560633642779258845065263863909277166900565183345785742119920176484333669449744661997329286645375343570897337244033205617113425180546281286930293508970439898887992478795120906706942316808650097877406915204168122502436353852638798695460278954051209415407253304731178404889090951402348915093885639197635601723460424305114931275917104353142007157691788962996683929098675303358489544596126035995904372799972360544225779830612349682786444973955340714418199581996401069752213163563278586824296621542017871187360755448171897759303980387616615898984942305592631744573172066991244114470456761377032627157489119296643026583531013913465864425486468586929869054689905149271041573136811719562555611688172050309982894016159095454484080195015124983649439735254273432955242123424584875132924163522043312574675575231840455894296575681574564463200276452723420235331190263290407805512465905187441932693625916593537825282848089175077138432815979035185386546928961489178793670173900552450676643867051482477812602823391488036168269832693295378762097576214397516751583789641314401008103813308159963663712890441943796646248280233042880821911194467481571589386550145167836978989662327040719818877879748831319257896501401192299470253468484125662341463005682585104635209252778203390298694524943951502336245796954838785907335435303644861950979683956840410425327558757859565202874318071866601650241992002024744563279942325855783136301651947534971896681916983908377787629411214774721460910680500423782614830763138175185594178394210685282801470973837689486611448451425395152851754597402156998674757752234062195918024595473816685561906509262639746786131821502637730620030471898824559517746935745980862762823617382042411481438888586911137471192827350004054023954996939369988649382697765568403263440054337279157593885503040356728905577100680077302773104646707294550178543054891578158031682157007342151716928085968402090190902092130878759262291628438021148436892692758514908443090617513965339012403069723360642595544818349248839578512738505014916121100623051054218137669917793727749634017036992126348034104061594225396643128478478972928751359296677124173749574922506571659470695864231289257622025938634712396586169703221481317496662513672849618196602410692495920223074938806957417439926499867713786036515904030072966653416948091501984289750889885148147649492821486308766260870447272741261120832241308179989354384723987048874227837709685691576565607437773316217372649994931720762671752972765029930863760576600368160900897366172410923649266206558404983168607222129803852419823802639833043544752640515947582894440778694670190649150999002620958884071583350425893463789624331947933501414831579848358042910539669074633802787111430276843695054003614107210328556226983103520318856495101163636498982463586517889105565112771025659684436584361644041684984456636583071507450497594917550056433664420474430267090357511252437169414985807877317978789919234191631315139772849036597098977050454806742091545985120115368571141678363217581965473214726835700233296334716437348304136311442848497810139632344956658866047149710338510048879101273864563664191161971024953009675846330048533657485464639342524309133139417064269215073475655792623832835535180563830645911737904823706741853423484632784460475449820414626992589398120279727388944475683174019556368814175676328263412961331944384109846657604377045576710348204856193766674832068236389748930145511503769058455986273951423373284646483186712842690686782462938609023104691895299064376404420356960047813233752583411705432291703817940148791410124065830224087110983579590344015815252754955218221007022831684776627942454386163794318060592615657845732129423832087405603712297311896002423495882804633487828083039170124862051626480040300838059329750606314936000503485647247822865165480925760449144721192087900994071782410778342068485351811365883217180849590113426195713446619955584217208194504540257207842860581824346554634106815112720206292794877118811026822324835052759259617626840484725251093882581768089171030061901917266472441479601692277863507378314675001603941640525256089230059082695943127472214114632623422904892105139103688142299364524492249208471154523737803350379734496481849663534904957229901453225986855590617656366316118853410394110646244815336989537874106631039424831843549175203957356180701890483400644498907544866879911152387801395421958005533640656750663909632841984415480329960384402763406187702600340163829403879502221820926427833395172372189777827105158713326159612367618216375377482855824167283817031062361133767078658790338249004981342318606099788265327819061700511431788794212213463134275838238846738119278602438272381551913926948439243758068977922759801359170372253951792914286995282959924809436797568422476744455317044130035166524235799559596760901669508228410333798815453058613333208858969133282021331470776965329895463240024573934764435768978903514573562565965291262318992331849279141254203257020820058350612449396277241922525115374147943254068473879662237037341545385463236102680253985125698317121391753597403328537374602775984295794457501549388616386600336085601957127527832567907707294187848737932224273474318517354906249712707465728533509442890562218118284441622445381643902168895808028104473930599179336945847568901307638114396845201773124522327701496906161587181558629520722309189146946179512771454893472539524781040237329697507296922919829739627537277888185605713964445865801141738797334932409656244908343452307233035281054448871662390900322486169719198209192109745233502980300381068699233723137521250092866243492981414070760446090993936126994454361281969195840827535509396174134457529062521989468430799763715620678565009003611670820617305418671917044579683278606825780861716449602797797442191101120196590145805159982460993057904249584144199598667319831420232973978632659627266117275694115595152380155894937667674556477336164407677748221743772802593418255566139177008873123275957579274850139323543661589014671245200043095028834866673126304192818093968895299505500025342536861159932326201067355829908386579527798457006240202360358092473028241586946702058371387995706530676194280171303799230722821422066298459166517698787143149685640140010665010921489119168441606297327246368343305412347565339652430256636688741760371559881253091747988813333597147050692805223958213194711906946047259720339770109738740259979288788905754333465125986398045491703831385089756637113288901521728708271820412596767295076651346547234604386399221255091033287164494576563721582522498539916546742047168325427674164670001254977421965646062851119761762477037675361028694096467178502428277661126382527501438050748216529673057729197678107341539816829708676939304327577779368715862880174805819568381298135396051170101000770880902630887125075247939711568966564315931041844290123878661465920607630856389319275254408980096368641748864002096903715071855019898648743902600790160991860621081181056000108688483044391562295706914708335185863861223524868635861056922908126219525050217458934954052849611283912585651675897678212911287437930754622119116815736949534023382016220340411734863561223243004503631934668687540166185811540625330666421798034355808898163423382569958717055156687103221161389786693831896130655765760284922552258055142860114986533530746050477632099649790232575394473637529614235641235777450974996450450461086228965704828180429430761664289229763904444299613178403268856981373375989720136524839606598626993112245028117436105385251825482142172045720941283331445249183456442145524464499627701630003906366477461914187977377531143705558897175181909882353893802407206410438794545764108632045829837734131887875618663921733303561619340760321599678588824385414200086369445444053905993969690735912521428650147862839129578239540014517186288437697784543474632143435952616243986010417779967298785039685921846749527876633361935134370739225966777988911600415284821660081197060552103310502301476112662177404739311345805974864192395865842991557120913899651156134446483759221831089562821771860747240129481395932115133894063413704742284740331094878528419862808167991884711990112196544970876226346495279095060423413895065983967204308655830276905266765861069359379657778930407748732968028073780603923938371356832308183115965047554826044879726890840794044020708122360822877999695990407807680701190290019784674291550812840912223130175015552716285962169462733073168619097753728317325081067043095240170382287102604136697771032401860656479167814944498667180997092543167147322852425866462174781333550069077503432617333053455301633898827689544907860106395646539024859717588937643245346532809508401317054764036506699184812702943709158182183161066271664588484227040387287299228541703643586767396123647930808161555301957263133747985138057237369241252448350411671114047156089818927575578788944862326295167135870319539235930944372217275613555936391957730881627572690471229193460175733516685967959434217204930096949492207460657533328901585593963446068815627043185580754220667931077612007483587698749357224605627202930969648356656282894761989358713961645638557334364170835672128029520854236851487914879888226846174017744131367562661556424044567960026791947739974345663936285239570733391312640233823535182278355146538112969952051111465338452019902938661190295537415934728185929881976022931280066486277591195422870042991709099556353490351584733263801061434346162306727817681014310859808433687621533862599186033771577852930303094834514665487054708748578749940157631569919808089233643164648709018268534294755950044309095279965628259465278140783062813533431655231771998878891944916919932139428117269572249957399344246848316160714025099353543589767769689439294955658463800064819302776993389401475374815563755389666921203246382430399334239192980889849862493341710725326258381239446361123788012143761636848391753270521778592516006245528843252962072411166308023156145862881626902586911852810804567526112990601987734144160538614040968177082691268236954216238564103332961946649494129651321362127387591073292651035319571182510774328175077447631615643897007109418930222670056660158741491052364701907301657479575392264020837445863328770090626344060171134428952376520268104095193091864850574889766351441592444275350691702776881273005716693065883035460809428143481671296984428098715284145680892423578840794376635975282990592089354619552041039132554006215838238923913943929224293433240778760688449294906064010817642576283458313353572569790729834949532663868492748124965436124728847465768242068547156213624882218944025725150827554757276947029606839886793464311443577808386306307783036245276818584730554820028939667652758425365009242592164468800052429619761536524735118698047757902953466560343435706441692475307691215755085305189569668145253299579969451383331285096526025058020228640723752248855371132873977852292990086847915275899401171609409378122469702733629493217056185052330298436041555083980170174634598905944967947729261074037556262818811320173613718935930346052362837700531559159318926485004451151412169280146932163247527269788289024186708407038805846121652192629716258002163708521132752675712328601906992047534794314833044669981868628989771263715722682630778523902787406713520802380754562706886078789383845674866603192114689582709595888002311961486515936005536724314856565586822688013368562712269913669465023737547844048827460224199288323178659046354913288675780251610676969350539052458950058987545293938951192594996977431364233459500012825868949259666021171291883849434359867776004214909867664131911671115818905297405599203820053058853916398858899389254281213868281975875901813026716321382548953969910692872370742737255140972217388004897221028893887415372719790387823687284496730961445219215982365314578516779324113048141293023427190185961753569333890260291292893714701126508724710648493514325687020310968884857554583254676132002763889502489183394543807639207653636739760709163311260815643494100842014324169203193319329017411521677651356964607474336447755239568926313647607263536803722721398814220659652292493407844580206888953689376718845332389766697294578750694834909756718703657932908164488476442223106173965773838224641140184594518111806796467103265501485330458338849034205496617600805235568871144214157726564648678258719841153891943812692047425535184123871519724467353532937705747250767446495583700828278043601293482698955124161657238417532818344123262191652514268030929200418375422126346236709487662715299705326375712183939336068413503909506160051824822005497943176306257824724005010376167337856971568860545504341301936795809536725125928684039671516985894754289402396049044034944804874343997950203087154676202122875112695418679484578154152805091585541914512346129314516096394312588621700494027922742783382292231428730234282705514916053947826711822337584871591605084189676303302674342008716487082566872662692591704785184211726609635868693866124270426897678276906810309029151981972326593893867650247173012806395719387052781264978117460621220433159743419732479993323436073781486050541769333878278018857365485920538746966627699965856436902367604098495546263797100352795837670541584000328765636230370422642692387782639251612343699303863054936982541961255602392335761304174294971219469231416261233712702067390117385254934082482823702735212353773192195878093858822799001483349661706408024281464550991629859449747800308322792069648416139209649512644941996200453820048018317590268774004957276658226537514593471823232817758290504800630920568095804016901858442592075031510170828855959151240571437319738229383698416746169047948440699864384012387189648632000694027758888108144130969100165940449316426929064601328242185030573023146466827397034137335618527169522206120104824849709657533059096226796747092417318648563965613393711097167698931865187734459681315499554672951101082010750248651767572483965482789282069982065265737458814315830091371635377517543149184356551665870520721262915515297062255954609840348138214516661413666068357991257977027257664311833591766145958639377932532635725848258951940012554145529839365992830192455386029723517777079124927361874836595367273433182297288832737944335276718344818834872713663977310609412509473890219746356842724764360184509875701466595146402741918811129520476657019817612624944108479553522347184152436218730505588960465138875202331931332506146845151702699781773997045736356977954080254490270292814163547517754622691363962967759456387221240527183220700587819522225995513839434470201707532692230837158751816008549806048147514294835459533473406507775508978872961970084400076567257959688378817855650261774078455179445849660177001392279790247050397718969617478480421739471470438546504575167333673037112924627411407036843125320041369170563443295987116644354164049040683205886060411292509032312008220038644062383858567763261635422515750727543020575396784932192323495870898224880791634324409564307044240983823977604388450856281450454116955340633872323845489092010753787503816870056403089569082594530302711193486481529450063252410998924362171654521738437130026375077830496940539834842896825892665761307718861422109592666192705574938248876505358707274385481616214431081717021937582122255922198624684331233740132583198841281311629966303275878541136249390222428578794913589068748556780015463788060894069007897469996239202773616445764565128664386530899174556330682495737219899518964685899036915542691176946722091233328292052721960540550064789202637143773709611351503223767847466490247037310642110297585273849979640699475645821561359785320575038022245157508289823248047535186301330815455327563372061958400700745378823239884622533377749557488829229726421841685619209506586476437554392926534303195329797487629667610913579367231848765195893443891060369556374103847029446848759418617085096255700179580552456907530965423581598006442970497174287522062277086878194764653471336573251102011405642439341971476921380361689912049319373751817712101061929818238436005215792015402867628339010315969422120393151046791114954320144611775182604749351012337338612851400794089285769012459697123680303702697014451713881511206544684205519991810558670121358494781990837208456472241047559452371224782609921618511316399980803011972648128753263425056045690569496474147149883042604848322535223007221608765839455745793127384597052895622367746841039707384104927898124488962220512307699456034662151173496456186751911829085183571919945675912776830594193093217794736075359087575370288168745751546692564789167967634211320649162298666433884079407424611191170276029380247500279799785301333094081383272544655507693884585330630506252720123067717764703353355512555833287827922378077374611859180459856360448092380266112301164518518199236221083113067621461520874559367279096133627013896204686463393808658886577141843878418876716816781791557724649254707374462438593057032203060519833646928000383756424154212675401516431675179200052903435832528295862979083876925260187491721555877281059594411326770928036008146619831408976948851440541832589060347362997814929221870719133792400016193059860817437442346195310724065237480715393907769346317425892355817748704330943933619005117547866131930835727156496578585849797343791475274405027814671519866664551270503496102613574210495825456575209853285563676906238819031896571346902792039534194044419149340152327774392374730578228639401112901707901552521125211177612349429443668786238830976126317309840357514308825325541309018009580286414021054135464253400513175706091423970472726048157272214957573182918461379584899777930668716296191415161584453518334952677278754129502664647541269031173574006580804713771868655572498715709891371501668378415041312061986702489696607478576088094861745987720987462965807027570168328548520056444290678866854094693885754445066551317847044101457747258951427413184964725871873453046283685182879599322193823584355968319355987200705868824362449952545847670570330182678554611377792597160960450967548821640449284223436523876916276698367257215145740021698085346904854829285697630890724967312848509201316456424160299309138359723107965086308592291042551035787145381143248578522346626428657631787438782006216604822276183838150199836085838328461225042931393282288970166113397939141019399324127219459537474118136892135109101618018197342008564174322437209119136562227815733334492196208785209849364897065245996795097502683692863813061315772690682329647330812294311994388149171039596535385099469944405597058603667194097802048703141605543968915853724521337488543579272848577471103998373811328070709567062353047113500322586424933303864452857013652033655820423880058658465094804146660878878761448906389260049088073422073547075821314032068146978477767903905809229646450249473732868508478806330970953049290597965347428992792525619950397150590133651507588765052354400617189157893528781722433483217456646894873955672086100556795333084772445581953551662478240172824869013744058604213572769444795094389596983480024380320409280578476546661529071641971777708582798496847363310980316867267370285913742540765542096278366485682227191405888266814073837319895892031683314123987647551611636059678948780894572601673822541783807328727126290414520096318775370422164590125791990547510089185172340026488244066854011471539987319311995733489630825577957915769417446232748436025966846254698503185656151573461877428040046411460721992885874729428441963625313822126877860652976217623581524470629965364639522135203864623657088201612049490019037629263262769336637291462519013349132135066764123208830800743450834642310678414353635213604163845453261305705692258638108028170672202840202078865507714307938932766708478952448730565862492611749257116593991331459029635979456172512242494027488925374739076596137226100688773522774470839637940040930238960044806522611830981950911516136396728209498611936761356678721663632392202409577429774651777276721495481545790627113351397407287373306769917395769650054243021696130224734514255336316342888200386015788528866355835160183846674642946723837377375113147464205329633026796645671607367671995170983106164785113508356040184744947422307141962786327529928177640246211323707767001463607410726487982215918495826449870005372612375352065727746729352241302700122701933590884323150689697559733326258552152154083394006549167549963999957310183082639411700100298849981291441100487045108568382942383028883517292852767588746861423417685541328896297092311492662960795278854803138658665343412246178910695085417851940147310680120811002691512950694647151997386313059450407382299078332473596397869072712301220714990221675667083492833513312844835402270406496523117468919621875052639815057309447357018526812283985646102321197473456561102512603607126070364766990957040741810096843788549061977015647519551257254855996753681512041933237764552974149300589566129119487649649537258614392330887620505189262814127498840363495448002194946878774249672107205459424479222288098575395863617671219890706466830294649566840877511391510589442895403131382602782952037399985708775556728812226981298035112969553548876507927217184059499996577810413442433044752686198381279385108727082484221428460975510403379269261567499969898662085234736036706681863180336381014651663810553693729085444287606155461523722498035001482376784974387109108663338761847371399407822465089822392290162540419474015420988094458283299349196498967083027951563460679500211440158929136095450929595230239946297351348652018397046129446259449986366683680726456797734684808955691319683567529632188329312903832280470465310823718104729493214466818281701617255806322096825155947207603011864229190469986181661143390296790907527510596684058720449170933076047055904510824045017892342508777785155226109527663496422953257859132192517426694831207678171300095560611477983226236645214949526949037181568148339818214889657750204523006465953796358234258838992860026336884408243815358988473663681812587211717285482084729644572206721492770283927019927626431478540155585689352961072588934068273928829326442442030081428035604261051767413913646118368878105522805934236578540962556244784854179501916632069704796315540731750719534303872696050179081179017660696644707796993838810878133735370816018765759209319873611421192273564493193999404778658056487141977050445183939317863486126758948014563184066770555408977829018546886940691175939858649049215141757472949263112503598684146797399685112259554816477987848020181306604735788152648194659191385979790450290633751707263950033138311366087320992689720714327666515307876295493928260676850857143065809641618195257176002578588802955918555546458319374020141678135869970317531147701652865951827537500973067461570759292761980918388093877018905404145699939253812254961793192928087864948173727192208315442981832159535474634948677282557447709087990831191244375784077922285075303042306745371717020830585884549861676875905594620276816230821024837348466090030486866782755974736676143973461922310753179369486637312363416905693152189181911091584480844213975833483940045248547058968651337883904117383083346016858866332210656390305913395258616186123204145368410180805566295429155582802751482005064257278112682872265720712885995101155284587439456176554993357260900079548006953529594468077823204004737411695173994384121619838065152701215098265834436592410102033170275391705811228581923711729633970058656539677514843020250699706157618973820174708283206000252169576046445235491492469774936299232459094261408800993664646220537740877802771235374495358717822949753418200841529635652227223104836425699617595085537252890866142561180377389356831172151669834549800511298240025575639257600489191831541180653683639037470981809526546891361960797789163346245115852579933180957696651003504026283766184492602302976633876447052540214378137240495802597136329476512663591920413639043970551464591332260742745726927684330814844728462120319545129951544474268450464628842331430948763204633075462998278357076287009152166264369732453255531020352011804210525768806750235170143696494883845325683390419815657491141995158498459169853947525558516459904396402277233139205708189707936359090219449429133153338691373184894528032661479050930500076762425150663618401667112350700015647913472157261023954608334953991930323618646204722646141460824184374494053634105407880203307675306802733996971744363901251639400816040020032648402995098223304189755079485395459407331021578785212445908947277753348059022804715100403665072312547038622739656763982394800158324742186920118979272667162980523680487333408294037695365661037194176851691851272561596953968996926644565968888103508187119183062348413382128211462618767601771294088680127699692398510792746442334922139446869208597006147516621365854418999929723719499170159385491415370674541286250222888745413990289952663503668831469388852235885793096968591986830310431238166032945327236731030319717162399588835848712254144290619276334126871849641301526673579823489155892007658671703457816148415207183192539554108175190193312765210590120409665718974275557528194603853867068050986602948243041643376015008983845670434504799492069242317520048904194769394933298366025096307683838737841729180044329438790726758741109427649493089456434856862027074749075781397303490708925480843982253652005478785404832131896437298683545255225056135779298055889401448653882424362409081266202987440007126989554824695649347776226003674985481454870804023648762226643798353351168933650692238658413938377552567862679050340041077602025258075398882492806305151627787064969080051053505125064533936782649690203666916781697120394441932837417894241281665677654641892968128217582710450822240432516317902504405601263450217570994727887086031418301469337067396924660785155987268383501831951905772825051926353814438441153056795835021743548496482837639455308641484918518335570746016161250491348626455110706411617834641632678820323753228576027567372811912729438662763335032880306959395058344152624062778645496147698791099923662593835686186522344032693389003434521403391273421788101211980547239766977292695578554716925354712560749369137847767903926556303961971057647691957177095105487974929054360930069037667164299461143642497093831969556435856113108708020136320558753680270711824810691500570664943627442628114177905933047803549047772779945891121518321672036242102818128466801238721053883200577154634552693353920963715628540055805385457840973313062452505678534638960384618141868491879973466949691879718501033684301939263795091043991963181519397737031715576492568028752126931224027530227670830580328845732322148665255482753214275207231808530929426157298305132106811886949788747676631951477477524343347020385870971700383589305413571109882089723332423675045915137658069072726663754830181002732910392006647289110859262912607399257585289652119596370132008251845732952522915052812502763443249553705554226097538863089433903843195831893796509230860214184170497473774946143736671579277107429778514139845839695886900715070799559154195579934974845349897179935492935768470647665804535127317096454522698074829850439173966811190531148214658471886863336373268714409131288490915273883493410446182117496515004635937087852838348291284840317118631675281237320516074522936605481054532717272216698550068731187455158209091410574236878501214675480379416945673264482710712925668184770304687019904049052627963937942851251343357059673328863567926114290787583833231074995620114851378986250074719113135925695188162968016717061488089490082741670815381376253074575423762406886198940077412333737384144644274369058560315672503791346580803453059251658452163628117474502669858748450622165328163120536204054267371827257296690521290699798350370913877634302824513509720485275209846315885276030628161529040124590505531214633669734558754836104501832508803572076998506743058980348644348199861435096847498921818466048035690861693759545117710633282715134292844858694194728882202970561011505461973438440847904256542201523025846276927972268121276600570434075828311684831941113116796833403262982996192107508398769967182108837137281885631668238110952289837785178639019031981815099731508450227028547908864735246816936355784389856780472356507412261117171879996908387712707863971616071066011990938254919023080716776824260401601079783702608531764081172267566142874382471042192155731055573862304278756468508704771690630397657098102867937119393793509783886136714477431954450328950638429527589847284448764878861248499597526441941226592922761060186502146539326276783302316336198853774956714756252694548826622443172809929677450072816941784233141654770401799983309154452283587209196801684435053852237562730475087789276233205220002263519193046118843718875418181098694150468866952175876551718865419670285184991808834664884637402984308872650550165963799525631235315483964363684055775508716320085145017757321335647803904984480484905828117280517172289871185771199224352234728158058110503086109111823431688206785273883425100023353707631439460960880201995451314566630900902818246518851661965206403450325071742721936605430774575866592528214604023035576244159449511344131527017156905166319825240468986600500068675978802986822041950055414940260806547186750902519054771635027848168820279943156916635960150693498796980779017005134961850609679307506833916105691779706672213188404440540906807068312538759299149874713111920264842286620402156615641356714465389688106721991387182658295816231384392794635467455007175695450837327885110682278109648502114515857806013753325207055009010821182524927630461228881640126177532350592947003004163468046104491055435949408649421716133055608364225399335221308897381258326461593603581231334352665854886321000079113643957792116047327488564974540778539084303339693385956014176883883964818625450766521720430965555000828424142209094958199753062825416887557853633261901905355689164582222386880149342866957737853264481457379316740691169302833176777523174150570092962079146765820002804033116644599175074660397374164653966606121715411568021481477024898239437121051540178358947113511478066211432662987869543018975872516730925065779596787425355502596187970176733867631588954886594807357517777412302536595524286374052580529108793387545676371968997005497394128773754506606491572639778382225681743464987618138700032871305989270682140138023925004209971755153443468066211877517143462274223246179098787880372373424048778450374681565729096722291134409996283622915503513098930529203648117287260567629866050864693101903470055383746091102169391863249260313190804656592758776671750835308610339763061079753695312107997950673314588485404329267346976116627723697437502261066229126341257726013509863669018918448245101797765510230568926205315767776500307811643998077574378620352109802554212783785976739571160774953557569166210940683146222486661739770033896519878866803546098938347980817765948691978139055997096614567434305482638845770459356133431441592406612754200243973279222806811442168956744274430456750278456846497183576501465320110494591200917844115234035179524906912337030030599396226939369438167871531097211624170033359530782374561427644636693336175661408033863462323982351518795847560505861469524679268581507664569228704674101109053733705951028760386258937276115083577149130873385908358663142684387292231114747541958128326707727761477299599237675701965681311491691451855702171632681238128876387277563756275645916858973795491163177396565214738846217984821052796267158351053966514996402677691579748253871684095687420039649891330254447891193742352442075884573916047049654309431669494759019878513829267812862132611172019020486832648559339610562730212280691134491470114778302365421863471519749934220235458325156177266448164387403363490150753412601376584679909225095496699775461210536135264180089690727550317686049133765427891230386188398680577954404376955097820416681271239727798714588827109533898970799011716344692378867040389172987631721461377409061977312915426570150239386758211531574048427741077659244932947442758574267349080902565868727761708161791905672179326983211163148406477567816000152123874512284137121364517431041712488526041867550894657614597493022767080967368548000805518676422496410198054094488953204578601226933140713275361817400089389904232161550226617342371517854362849180909533114491985681189555116793394212529801345921186609474524992345265060328847624910197326546701981073162529439502306440776172988485384575397177737246257206723432487393780310954026412029326371151519802483548793813565955604659834363000550879168920582567063177984026997001992045969704427208961366805279890315874779288288410961771548834014178946791967419305610473890786607173661816065081431833417016167580117443603398568368035268048043676920283783780713400562803447061312277105503596693479067621384895415914878311307924963418764880000451485532261978229957384302517001910762271298942373318146333147192199317459234982362985604406342164396600513287850542694676612724710550925855462326878295483858192421717990762205327411960486687682710177096573695608200751936508999117996536584530005370474578292683704193435253607152026661187649587373615097087895472133836481031060380542097295207674953694470729576624304885575606024056335764894473639577959339797875907945911563623834352185895512638053098889871524310486556341456894132171101085461432255628084282144429844542340212766846766310695552099676362316835653253068062501404495371700178979457968246553351688852315365963552775363480297884949149526174099812409158672564069184407172294221599056734349975349622595752176131304001329948595779095001391297435332964084611926231016841445626392965825709217154332524105737010845444336437072900371823569222514210592818618420985877225935269763120365378555822488305994886634362702845272438787654426940048037520716459875051286982393464475977188984009183363796029346576958956396862467684001620766348324895871604939584954620307950524892183635866277428284192529178499269669908935929658425609871947316051319546353495469760549663446776761596079494138577286546544804974943570619763502830586032621828371315377546828215524159856028908369463886717400023558652464625567649820958434738611688894512040761956470514457429167888337030415905097221143925725470874097159838534013386570647251518924153065515842414371829388953698956112632845638625168575156476907061431250401130483394967504864355111612249230698081921046426949698876482113751568831778833623865068480380646405495470903423811996133552927301551769395652831274866856984903918415837263309453975387591146420726888359413106591273097442334231004724952354443032798503465855627393167615880900668614110867294982169366418400667336428614661159433913339815228695565369327824373078786773336406582167674771515575353867850596311543341095963314846586592222655354775712533648682788544610787936408154682530982262747838599348748658405442372162179948222496371122706246928442991980917253939738592137536983366608362881594268459090428436353286607116363561966222256274860235064772441900457212697157067611809295447663877773279106613105900512081437878079805858242216155841427039162919238018064211545392162981602239233202782663613903603269206424377707113159097780596124383181220762445353483519526650460468176404556942677977329007822541519993447142878326847153657124634553303619190526244988254020875489398695646724727874852536622271983950329796812421438950333120313472702396858921600149170913111218676047135238342357330456768393316560200671546788538861439075474043667205572106625291602437529892919062975169073853283720253660094658009101714873490421165477516328837037981275066682596057662078951049222962168128639602379351477672513040338272616966282851448581102714792293724959550339318941748481643683014533097371143652045466806867691006827259043153436525295192442563650344670412512353414954125198356171635323401986684052977514825840523305111690213977939473667347405046573517177120893587364254544503126798734655233052689252797039196419968047452027646884040728365284444167187840994977637253958162971999751966248848450636895415866636366422117516645547957487267526071676895530329172016659267120654435530741856475619345494180122979312144833014077150540429654886877393719842736121541390036752587126979307943866969425907235784494811322071312888875762715609534493365350943573786467918183871745704738885963635790234605992302473352244408676019258629091871273582423551737117116728812041661881071523186864742097699914683080297021587186953952309610738916160981608797296521354345927292569923321287788305058701961900932075774488591528018465389363247055431969044795324321162280400378024007588819136341683865396460303288592890647878367263498132550506540430069804637605320351337043685846770757738768062029723006465275840235578633861661484276635470859216557590997470428626071704012943497565159555376605085744485693826883697159578760011948775532855737707042304217228137062949131462532113287008365879976464502217586674893450584640041562940045288109093688808562668930002349293517937309902359661654300511656514138001628917226384891776470231550630503489004521049153526755366218226549789917632332315315188972337964096178534451171470471755087850833329599309417780977549719872965150955700461261298807162553351011864847368964226185209179475807958387351510805705538843586555954532736008623001434351867804512127778224355653379321637075653986474618733421998079541649714934772955293722680188954662378636503876141242033711079815776180991600729645738026696608991996499804086132998553869703530542995767451914760337201224708498325377858616896815036609718827607150721011393172256840382519952405687577216828995089639830273294311278125764992475547998938646387994026152938919870550900063046710679549555053313458820973737834971017453312289869786434474905012291177922303627814748309644877076450745457409527937605356070163864158265288703874247489408556991680948805517697825019466078171641018332480295242280540541606288356544740609940940669154259792180083408755014974553593326242530814431177740724041054126126546213013954255282193261333758177265504391730320784884022143149095956555941708498094845471817363201805438542874173255569767768175530547006923702402211924960260936980149435411621212444226978183365811645157883842698474876662428005870957358628344706005681753117010282447124188242667740478853890634754724134905765008113623935954141098099372385048231015274490489856025691396380000373940960936711179754039878185659471250989984322183982964099374665997669095317137031235464036650842052899721330258177839310446453169994372619665582537291064014115500714039851975228121597936254594925718880665870724705804507022197116111481910302960323298611761987880263819303162584462990294816706868893548134827524770137296330090487628259855910535819936868057760137305239241638259102187726526662031036825363547317875261825009356288285866730815633233466908300885368385059901364560554776444904966329026031312511216865949444004385539021642330334946473617883176114921260772101141879053377468620765879585677615969195465972452171486924519621265110844013940875651575736561853395133663286847334352999921519489032989918773616130760869380454366672172207059996329969030435138259854901043026291447806660550290893904346356255916410396360501275420229914639141150254702894422711810841232281383036203666952626029854811662214057238928421298096393534699237749208239517128685481438589617049276689289319831353746185323127878775675813323036166648261832792827164500734648557306067284762308097007418226115383301861963578688587219078230121405131030046890958482053750174084715471418862732796091642307926996082976498961976704659941118090668400786894200758885490426907523784510675389742429697213518455344966507539694093885769431505863076468681178022246533881800707832606134356785884729205826667101222742289020714080611503295916921536432014154996173087660621697641234707347385459240696706526428147716966400703115763258494871305227918904588753728953382447477171468290107944738048572488066835273122875138682465681514691105381651199194957495115154162344812431016948811929378457538870165591728076350800518845753133237202261455512382207599324131721051659452519010350167801308391646194290547844654312102322247911592744506954153507362020006474497497921868156543636466109178055810985128375324707000514273382877765842562918917031273251293853834622929584923722326138008795948900900811103705040502950194846482381925547560548856758858705550701057911356335901962779384218326301169132126237452560152304816076805931013888346385931117924950686609364913103999745245625670544035298886471744730197255076110043144033743314567154019300403942383308012916781428532521813564948986016376004069069527923594904987700948076616526027401856993028441441039520371420897421530933343549941100007690579542263292802136681969867844581606009567203623671098186162598642749787020775210921736813808962862232081902427675962811290388298259862484759670593740294672430788449336070661028571641498857926633348421925220327528760878576882243823647684999893578012803979137766261925728635278349394954785758666053054494538540330055069138569423851519731574346596385096702152848328490145999029237720907638587749653773858285503262834454934918906738642723185021556106200122185795124105317712235239002487371630585906243128626473424377202100089145160306704814850259018845206978378183942292207593726580264524469481839830818483123802120781361347269999834265903395997665122362247373145673837414134642986154831098568346785004316961391958519340029748720651123349510033788214252794070937301404875878156937610415491986572533331617320045717513546077539409412038942701999098233633002157589575888958762508558464712971657353583218673486256859635833606600866487413463381396951673832943923227157772484796165987943164010246645119109025120393270924821264063136957459177136667761494129105444142767963910982501267824889047968347715492449648817191073202937119794412389358761890739833638294121090758739864080319614110259305385235957444612199589816072232843219235442634993221761847145473948648881553765857012200266356977556746145842415145018105278861737631375194117514449952469476377709641601204994606436089867554399565400110306535845581870336635818992864292621852091747534733099085998793557202443246022916581198180048773774668008016591401561293505396871915087128053748429887815623868716841832772308270460265724559512096796682528138681064870472976901742933575861053428611447561023828118893566094639014245213288730543464332772392639797270574268881749139732260854924107879837253875405089636265325903389984531374259186121491934240686757715847012873701597271937352951569312295910097729993211107923132186113599964645835802520830867104639760787290470409941216191226265366314929017040423193312134370555156135194778292496021004648464619517769212080303701509044683812682227141313632465895440141774423171069364503788976422115957911633966868002237044057411859360659452628354585813246904468760688715492499672914132307157273481379831908781218133181124964322848441307171480920030050065571417473273814616033759074714066105921823238668487598102226636687689148735891452238111810225297037153775930325639477180303497311835311567048663030095997488859157634509490566364805318751714987889610388543913171785644061133780724796964982537538842145660108537408048639148465591123217377998649338415863472260057520781841737800002028972462688678011316006359316869379578748359998894585281212366434733015392111829398469160227110898819783344075369600792196343408936281238291010934742788722563573167603737614631552242554059755600097840017902295675928143057680703068311653220012567828958103193449604040866391478610604787212167950237526641467170670159180798140296856186204471260375744367748143994714813139123770903425426443495683961320125288303168682172269242657600728717814198341678186969285361966827699596863752973622345252427154911160940397162126116714577870074035804988027614736985237644717281530002180348414829757634836519059623991391904021927776505088690168795416562954922332582288077313389136624943301294243632504241726567845888826589751658976685408462601252337890310496805347322818858204973484668202399453270426353332736721753871294007815742701736289984542946936844494320410873313777276699749388076735255322184486556921655249935254955931469681078627913761787242657667396973908018466869247092230877609902895163984001091929086554498064964601526814449994636516158291578385976503624975747793102281493207984320334586358275744325533405996921925380824702809929803829626242689007976780117183580490021779128339149505590915353819568939762298749388562130950033230631431926862308399319078265992196929968795074955857489104035417682298309378233972620378022852656347770591711790487141234585233503105946494713697596220875066957351812051072055973946174298288384603680952115423450630810344505176157998450667349710989875692679011896683229976782354880948048227136628554116368421834882077705744302768650245106069552869872868087423868912371820985971423880174765567581558038194117236577854466056728267114339739796646713740330011458230772576492637613183297152803935970085558071407350358348318289754123582166514457542959808548109972872535146731444308667923804491161428864077915131398989959875015788554475076971525669318947613288794141529673715253189176179270329974162896318627212038981100563507718487555908655974806516530462849450889117945317921077412782794756511541258917244245563486081910319991009656073569440978742067063115806341218280593663624843052022940624048727037648738019354851970289753384044122337035656824307839324504062925486854200346772320901864668641332269946845735768403372527211558512613938165875115306633607367379811738275216715620650960404051877309455202514765465140417761989048301967705319434670813747551496945115834238075695214230141159908660013877563883364674852051585409472448484151353034590917080694931796963691377817770061004081639450525026350205561072952261926207049741115218461328769277368261117625134415177330997093581596845454166521483036054009856745618054055642864464364190481188379716474552138212832615921113855838200754792834182794136498977801534138021917899794137830297215675832296339028684621072993514276058281480114302384445537442589350137130307238865659042576280301517046154884451477163532258171712846141605188887372582078590989358803456805847785876515333413177492826625745452697423220843394594064012328865972086261363869131672296378011194120764073998121558570349037967850474328378606831300167863637494256716210534047113468233828545895034064285906937187029619965346822410878315989965839808936072133478350825646829923642786014222049221862104834581537784728465979046466706875323395320548823233397309852903822151280193318645949203725833781107510979543015569890783462974990061823718665083409472653922122985499645033561852200567084493176560836558981821184221105734959420151127474430585746829094413278845268467218902069256829397515040410105220254010211475468669219171031151754946863846867506157840171037660410466418197035140090733114012323989001140081974606785063873673929644224554338375523116495488706087666905192167285663787003945209073418217192230103289066454163154404981189973712678321152230580129802162580204605653717761914304369093672811347733494086999005847757599446398835291789765141521636421102548853117147270149560581784957410837045399438075235125923377709532722380658577390878150435614712270595714378487992678800256156981465609786125689297697391492062130826992884018285734921765515991687932847274408315815162180091380077495850935172328855141322932950784457470699153207899110332636718562334418148480286323372040817877107493531330757802064972435460071713455768552449404734385762696339480922092159016181724463730635244740127089976971035572343276469375386130269559066764115068181503536036753923458150541629748486831701607454747406212008277326616365566038011669397458979167956701710610612042026760417206821823407738802498796689089237565278295840077054812897731127958226138512640205253026279265021459874299404512134426314256850123177478780723528075739178321835571624685347804816552581490140387196185887942129299183616962320206995235832592675117994438965479235618727540937045665718814314098866821118731212002034082229467869631445369639670835231816916446575329593282833018869728552439978684007182981237650901530478899464006702064065097842227051533478446600768436929854901964703942228624752582445490578783822434610336626063318841951511449684921846040587785796711302311149832702278580944262711508940993494176566733301951494079956891436848310481340533739699589740992894888061937589035153529943981844198642452402603761032214058746419462235519182561556482127026348143940571122190912056299346561695382481035910224711772770290885886200432119622959849301425885107874072808500274386596975018451592699854735824816237716691841685475681791902166944173857728172197568962591207680422843962496369992246965334127770210274248151942984160626815665085743383503557920244582205603797182498260692161292381582221048713494964974277276389642832474781219755203963517218357328531799370809610840504620220081090654986586750270951903195996555873726693985692211591379416144620590240988034769965538576868750353499257622526747414499583945842674007843405418650709981854310696758177671306534392201669148638740718071347155603402884026440619710563338156837013062774798536553753678296059390538431145437201128872836020893117891952881381140320449919439583396440837180371263341556606589687451682959599771051429320303843468398938953827271771971345134232798538269347635527965125714721113446873379741608651281543224019845132734158072972548114418818716412647938419830754983601481457375308887620508387975081763059655017163485431760804003211892159668065781853481187160568423710245812721716523245116833610957624127613341558658934284814859580986496668605351484473727747857527443643117210176692884495465448910882034879159482740979212900275257744538642967980878306994307077037129274940234038595413862140607669733953096709255009246487905888476933413073274611942120273674796363785750429943488241028629498737412925950036318544355042060185735750904310313219489943626212133631159573800389639383084035010923623628440027202263577731025143021739474711474382417638295475075338614884035080857797877078167584151989742917766815751646623659105564083361933067462034451771372511689586451057711509650676572680562713520752093159543105669393154484413681476383943758253125381707551148417326464871997206754364503533653167180995714022536413459880589585846782874103062214536405694052525122082228338637930773612226313643164964529136325841062920426857701611557740436351792896384562637464262229617224262455943692829079771684296277361231834870612107050748750073951273846696748300443198661853026685538302642385236517908699067695633814309908558864401831955850298698797970565331820670537686878780300572995564454089984873969505873961932956095129418819343319678482808030412523348096176175983967432826784162060503530222748115476620307994588286851767082539693686086086290943265622933704036729536596964046566888070369780362864594464779256012294252024408912323173631338538703927177821001779221811269247683014044574916576525785985527258313061930081948172463186922736526021452298975003872756908322699666887324184872370614875740233816276075475835769714196336594503986984666354204441148700290110307261801647491350041042350728578998074422376754383937415731260380820020335519684653500367358109839727081881904727200561530716171835599463017613381769070518026043861702018272944836215068237519028813886805974323239979799510366255186725492943095515209355808583420971488694956650580184065232018919127754283433600204618265601652763972368623974759453748227562990892315472461743808425721303906811828539340244141809428142373374601028857441653054878032959160239308806841163869927723329364880741119628040296937546725320494997227218393691973427465948348903129532877366292937913589178197762514662360465332047983166957872427897905280801352716944747544684219510794723708856745237016960803978344436517728379181250141475239101066769921250708989409724043467096645904885350588637687898847917050436988870006975478844578136412471119113774587830652736750688692567972571608890791297785606312212322790320806349209669932288055033824718905119070517794375952656463517011542193174261686718355115929268114624355113104792418865979232640987200597167981548671059658012423475648150383532903272511868632010580744453572848936519292635663741952289634839064086184521136018900491563345931404891515681150712887047689144787425793037578213297532852005848357064658246363366637089741768209970750858431767599940290522406092435169681113554968708072086133454964604472823329039807512660745476605421244040188479634922931843915973921448255898787787406223619264563581999564858053374186927290111250673823476655428837694478929191355497611945655730718976296535119183332635786352143189362221805867192115771180103531150834385946027575018641495120207972277504520998595493060218987645795515157222595850578969298708369789772986282604887712960924916645408933563278134421857011675278666137633044109373464503273436490895510017880509290993394428383462822843799084919073381144909625803148524693796575938433312309115392111946452359331974531475043924103290224809326633353624734540273099893123633859691655405374895746861262576356285735083478724967649129909131297105825161938379692255625336968192691112610908543487431721921709539287313112450034992193011051885541474910337899982084100518655021021015133382443756468271722496305176164454294650200333328766719079598410466537623130102624086174889177261903079714479473429933198465798260306932587095002853722059954459038715060648838620420097558837173229262036911110291372290531663077525446785835919124253637212520709416268913859893327508093746013542724309258908083308104893154086945594604732050832984174846342195250988322893620178492842946044173636846375182849003733659044871774846709170958988810392620194917505472617101413125197422807448863321835465219676219297003483655476196522309082288859527484772511189498604427307801812160650691988847477227983985167860760968084200882183442816606356706243870268268207297749536085303479520845333926402821360215678960706312284403884980161296474816422786651832039614412023657194438076593953495596060161799186979129973532209966290911665654405535310460981249587201009216369863950521299071457905540575955746640351079776407995246233916028427345826012318196843894363267961691456566652720656879450001771403800349150711619171941235563407614001370875748219883062266159633757023100144669037820041767828244086522572582256648860937830367149892914150751545693940986999443780561318013936986399401192601652431067048807399640647886968858403770935586254830610973512777900999623367657924600627055529388462761739184711979220822704362655192818382934632953436235375423610043291554511608696547658651400083140267033764153392844234807502234819116964780193362948719074612542874538645357374552120384703100202396922897714215707113658924381372082731356446905660730426052296403703079343657993216938578346057520735497106948495143353272427974415036878091158106475324267010261251942530294319792141699969385147558414413621101233039928302073723887905744525008580426116208501058351126910946991486801145359513145805879369752531238323475096056452941830803419120340115802750727204373837486383203100757334439035417756367354433363524538741905757772993200221048627679338617250815150349513861420860524616965620294805151012595705272511790423419578592151806753060741155372629714742142816495850391184661496484710722579228217095582730854354751884896305511849760236771725113190553832599005447370142808755549991086871208140027478506963492160702495551546236729288254257443075231126480237422040483172384282951602208471116784805027640558192362890341153355846388950442752966042841152430516352007479312495607109323007248024876899530149324728563143701748855468709632482843558824306343493199251792767323833995390749008170800500806237939483772367635614225980480247089781939462327031771975355517828558441341159587063275638429133378665007264406492554701692517687326357433823321570968417501433711508714235647816435053941778387558170745712552459184359886116459039663634462564939261312363664513519127072354927849814467012429275404936151668404737167221056332514221794763263992593917099438577118426070077469268914851139568046776348999707672099323103040078542702283444867036399771489182095133953900878235836467960198235250219729206729037252934691536111691379711985724172056455969819982247593538538038487362428159021693836102672077055443244028491592652714168049517624256983348082753110921903486610907088407049066008817713299183645625177605056351337899799296033040717164235269772284883166311448343371120345547506451940415044338298391423703658536426885487591769695873406265255161908334006645980405402469934030984304581471729164511941692209247607086710115083098228619380227304165746575459811724228832284038038466368063258401833464665313744711094303891914719926139145505153036677180067351948981079157576721955993302418386342609648442494761912829688804387028896702262529449837051629648943691307033000969295142772184688037171037850798517849097142820531868959541566906119002251472502403615842689988606633264505749832238032925263688698592782606096635694177651278234280211397332309290106989528673244069614933996597421469718094034870374144394969626676502759820545185932318819429014724032244377610062042098580834570917719572017240570233317946786937702175901177339933523532594615767947687623047590466708745217531496192929460783321979073968914680678083431415705172958158524197473784116782909291315227533349805571173919475763850280685750041888623244560788310384867714419231398187886890352487292177744350522719784674651270833837103914779242874841020180886156803411270415973962761971711976683315919414642596924105577753590143229773454955054282311562895250168171097187882155195311338585313321456125878326932503060145590301521783587625745303494319660470009579478822055984710696689457807372472384738808965806551071690884472842417588261120178056330642209737311829560587475021960652241851270221224524758905906026623173816041209401819518394961736583228236995482681908014704977434904677788136904662353862215120059647944533252760618313175950188569672204654999766761750552544987455065563376302564954149201888838705844200630070024636241476306944220288857969057852515984714873207723754930050266169120345025535159702392709807161524188199352342221941062922584032942174190381573260056396250841240222276931842680860373535997132113971577608470005085345098736904454032148224288138871902542811854079542341758385797206548097494960207010557202459279384871715927593221824888093669631065968327393739987783223753435282865989974544030280989199607918183826477756777026622033157367029121465909800191242049592805342542817521746421410583577730278451543916630759853804769744017721952009888766735335707960216031962226600808648554896236375762756456113275935231197385797153561444897086519404157756534327295147863676724302713274750162192837391085742353664691053246634130647837419949581692149967465554178935721904695220877969337732145398762553685943766126866223663114264065355940254153598113627347766917643355047013321812918202619762256872210652281799065508831377042993869858889226769198072436337765834888074154655856258664146192699575536889217605227678805555580637486579204793492169684661120677844667320479016763488320347711607676038396889598903305476373699518391574577518082567679404023288620891151776900068077095991382621846752061477693955764690002564796883008777364008402312134645556198969968086612384310663515104794039377983441107325162317580685557987387456772290771391357822631790140809250338830636673223460174511639466694473960729228493565688512436465167253594644130852728227735327011243752720484773142795773583110577570853678506067223750048425735070912434354566435959580844018353790193824958743074629529547917011191425531657131806339752261984352251504228152327555616758167129127246975968494569666466808428109028261176791140515842645491568324150767496089576723444355629518622383696761040573445195147627358255457811021735480537843301390682152841005098656638454024407866355072006463956004546932205179064366457531682599506228231163715589218440436848189343644459237763001906238152484233972506055135645092627770064149791750900455902062047116167369037696426507728519956877946699093557362598324654439641848888989239476066209778621348109010264512188607465226393251995543920851190191370464765583100712128532082347964871566006849580651985485922963696440324739729478348293097226722618399678925905467852337482433750710727443928983624170354229080659358031588553740916911005102791885120689952834354546838940141653806001875626865864720548779012376660464383954855246274884815399147614676205802443809350370646525651201456958283588963723978999804557196090684009754186198940132917092082671165443534796682461463999578840665475334789558908224967891139227182482172699465420091139523209248543503409423982914430524110143040105580722387490684620828536037223764700139852384938133548964888009621319609743320681345998116789440215879719522520842437416079924478873815711391799918504425853042904437580177272033031935978297363393472342363105561792983567897397335200733073243381443244042562312682700996092300138863923082433418259885652848339765275138445464235888831396966680593089603654366711615591319684348608014077954209274033647478246689177073003621144091851674157448815593511647082176392787874211540214720065867474199752973482195930182913093721796498374040360605691808797898565313910799574547853270707916903364963559249540525944379706289837221829602672899249867969661157896351705884984471768039962038011023886558952863841589715183214243725223811878425165613474061723444303548793562262226949202352172534414713443832912761486649449669263570156214936027564209202565253959657895743201306287309556978341582410788766893520579135043504355140572007751702963393831032024895083416424121051827761358825663638878466992514377155964871629306726297456417480757361225109445259003526731774609535916557000448515951440354674706743841289199676931466311139282577537167096452517334616674596413562633355722398904263364587639339049224823299392018549147432196764978627519208866040813217215285000002431498606300457223186508021446822314239685288189327493331329805116670667419487825365205869507925801608741765043509258647535019140992240548844013978540978483587357252141991162025419093413201554952318378088893721862979023898268318193948118316646155036001479773509003939325024993374470011131987899901077159245673055580905318684484858974725842934627065957392430697654774719333980646631727281249248497450686553763126245978803353754997950269798782886331806491792372881453433855562912410367563552612637597792339446100053092400117579031798724412584125355832693685055263634300627885319937106735471832014506960255418586996136525542287050934207479390057776494876647679398405478049386088217567964967602212621289275976135021370317058300242285835131963407638281462428745832471571373496052359560910881558716797608065631445198579688837378003622818755362435039496026684094139014118688310455688798257628661467848512867752236877210480515169820983122407550600227468428409490607523284569103709781618910344600705648133885933686433076325089780174917784538516958413620734623112325473770567948939065216601822336468129178938535560713638117101840953257770613989373944795532301807607436681471675420210155614339845416506243537962054591993113310508704931759546543219569394014697695735890729120238963408268203368280303155132344628288906816182413963165601793867162266148185498677253182321083325139190545658112034981540320754910120964189019630618801017199227781186911633759645983838554815148100496243747823668090016845065053816864874078242701668636036868108719567659381941110359600261602231365969009405473939155326633916939336674073710183434904083656300142439392357674456438814906507270900558471188153707721690076466379768191767375289048860622700223392509167085002961279048594709208823281393844193492996934004240188616966515824179437503466314515379250885196708685732614479799890998466409679009604352504627071678709255554952715773499166367103338912558468936685735461433495701399987242790553389896966564050565688248238390472724762693688409661835920912645277850406591896502266800659272878719378986681872770672069466888047465356669121239830876269333167601902389730471463084446470243846407495235551121997494110685236272769846641986647017814391754048499889433998124849039318039181167650334425883053423500036892747902583331141214443443262764275852615215512837646524105332376460566316685016246664277256856106506784833385044751397468211307192488757674217170442237786721938593479674467734846875341519415680212045794251881064950534864012402602064335309994257576420929606715955112285842923383802181122816212401000670765614238787171452644505228935624104927905183447410860386686032626636347829976824346375844173756256651487767518464422981497966703763824811384999382917698502813878498424370374870253815402299300318722256996616580283154903852846806702074778966959752753745935767533000444319362567444163530339406857164814648654210596532652581252861277801288969159186723133732615460815509405961047741256737444332857618636474808883701991294070993429342842112976243840773624319275006897643645027397376266048716038038434120820513959208233280249544130426063765520012672615724020492898295949648450557686397444002760790477145246431021641457408029343752523123010138279294482257884875524548830715664097091218317575334061412522563398725521166671396365768691155510371860342099851598985521259543790912278085880817809809676766052505264531338926585803455041849121303822552334365523137001820541728311637748645984086724190134348551460933016388899546528557200748572310290606501442303373834982931785067732921456001858670462272965126442352879535536781965856317703553454601030790202171569523385608818996888276796022340724942799003231063805366324676604158422094594868512718933152022528777541599300437472602758354145074925843445530189652713305893340126596604239023536756585388829249883355649433459654542646496935111327622283727201614621150943957911006948570894365582350054415808421447613862009106140921923123566057712114715759045346093520450206863131244392181611822534031930830866327024883066601331313073335922200523964442642186060544251799188253492018447539726916649979855879020426780008280912700588168877951848065859974110153698594776149025147145566445329787904024143822297516839606076236511640456782050648205719902732696144273869390372874068818068979602955203580756048838839613730622890036791272300473944656143543806110629428113084447321823732023938562953629063047303556595384364565101252165921031121464137777938270367279134592195624055322704328307907977504968709418553832602146518152348865087951583818409454820115811717282221006997526253151699586857310861820039010789262241643354636161709041106813624938820297181819091105585765304569006218333310555275001785443448249558001287652879348533544524251058431192586619507980308458654359673191661426274166335029586536458998369018577969889915085681570852632195877242764023071318240254553773703853343763374977767704112484589576867267749088121543356882554377738775649482542952567469688542882484385680589896637823046730650798130365864530191931633448362450700907601685070382060123882442267773281958348511585273453266230594718637201167595081065231807613290623529526625195438352088652497870846645054852698822619499231332217104960064828019354304823769977451888093068008337552902013252814964803391377745234564772937542716930738407305233273984589454122360863081814617756607357011296177655848068811622817208585070757092805061120845949650571291476885748934379357810294049276579768237984816365808614171128249205022628492575512758355164448579903214238412431088637164517433858280198194621450359671595520036213649791971992761252462651329539167868966088556175513586945790253563031288376694825791728241244798595470744984387298702514014501437020893784119860772437363936767857798003048290991072431644100058056280431514953720619445086674193852102846614312667015209356580877412935255988500054965140228626818676464399240817362343227182680640407409728828781361079855356930236745542947003159953486623183749039721221858850480855769096340358062493193181685931825694709107545755496897627374706605298659748616943359466522110974513951527620067758877622107748022699784787166467980250614832470259089946657563778774474246663327781866083191707504316832748643954890495462317465462009326134622833307963037308630027992404520467438171415011743557326636680853796904227489947404385386009308586665136419923595768597210906473976402482870942074885395877555213522182847123090156568572651387378846206979694333495361847604789529090535937636065530716618518019263281353369943798116225283476636704933637302792203772474349806839916151642516229687362665283079932704053642232158668659108147023288476501613833119018192985245083399212408862673514478876234800675726253017309681577085397157646780026219644012749605738862829178315519349865721081668964215510695519039530921641281956194569055781739337057589449718736559671355842012053022445840744596607790353007975727138643229531322874077832187430775655679790325606701785507792787137213616485570108266999625627459895072335216320373753194249767036789575149113703621725287108310023380663515535173177800722096166227546985095363149384290903473878586139700754959970044920013087955933830887538265782521386370446226148644504161187016046410008125519381074312105288034472124728060025933140447936912790003576938081296883237539090781121148736762239656827415243822459861813180247744610121164473083688989729169821657552079493126077928358043935871491108959599913116432519402000461258993677876488232241731875426600417252328550830001442933112191879858222696941242809549760105769527507716667725241617819395932580737286533046369874147827525982783305511416698307035383322803366546479646909381889342336444714017564737218016514416240685837354423482642541134489044965258299085819795048397609423566628996664564381825786093842347107324749983375908015026597506637632437475419484701589661482338804802036880147478288770456198683222324732378199704093555743185082900657475262899837670264585592419363987452149669063108493916013151852237467278298669370490619726317261976914879461978291821373465937228743604937889654196160110981139734523035750516022790086410919716012758878078610662237245998813506512844900922772637441047257232654636976255141665210495025138456739345200912724459522647507430898814841998233360305621270971239689941879068416584729774519881253634248952857759082877252027711782961611727583471381483840084763978149738710781078772561406919917697623118133938382193900037365039256281703197389631339856755926700792665070950296167594761890387532924692241915190892770319718119869868883373509663708537154214820169015544947188253665664719993920373380719954955076119279455124980083899275348823451277703285959899936462280287454046045130886148648212163279811158893858676658895905609730577820071940629167063887785640843751681539687666566902171503599108081749178816068898234726518697012998791616202331385747434713420351794068998540778875777766402400027878787769613072452520690896541559164501570628998305761701086862725455833891430029511137805063689762455027352651190039300816998284616317390063852174892392751552658063708411629359076092211280121232745438017952803166902623856503202296756674013480988852815081885429944924081920728155148598869845141598399335538774211068376066889665165461784947322820535632097609671428584281126090361721772257125206763825923171037359799954768070302545412057003886320390250973334277940202216841901309873889523152800413607184448757804763407063253927747744935992540579565841307832668864247072589555966796964742299363740571346224291773389034008412732719072798304822737218278290589645027471579935714172720872956213314496716541974605966661467874316197672137263626701251725395786369633815277814348020458122564082325545142174525238048211573193194617379649660404342046952194645480318304430598898067645625484454931969745666008172821210350758143981719653071026029533371299649776228796175965143297123914503492375091258152890834640757796308429018151358166964794319445098590196764452005530633135822295904176060638905391906054447155092467809401374332338913477640536064374184094813286481910613246863168388890763103951592145526788031197607848897736659013680965514282065500523580961322935988544506632600807817623735905344120853295101667034171864394690872580264718523815862381364260722757782150390115939577971180913558914208794988102781800967986371798028255475435181273554916427203125809339791217567635108346622098027753539766405835377875325355517893081748691910736820712354512889673333549294419107310647938143420833459379972932609074105856905071076304871074033118651087841043447343520566518335602456679271604732384044036739834104812901522020361135116992594301205432498160639582123998617661313798750916061127499321369791939285854453808067972161676148905434686678153442155046894622321766842240491408492799818679874740683882782099251633142522107018959032845952589111666413077042847820364459325581624856937813860948957280698846779837037530328446622892077372991839505636381088304953956004908989724225721024778957298183915121940774776834805396111554308420348075962854952919057389307234795716208677120168861787357904349729765129388852915212693888210857342369082040249244697664138930059721896685144906420480188416531813380091831444152650477063631203567581748684499943033409827523070352790552918003169684905482594663748667541441709514269105351883040295676383188260581038752326736282696787692271443618086873115608473728923350325030237790496408038329903123852593047965651365498836984285092963946730838014718487474278361727892092687462763513266416088348555398458185029447836091934491770378274609560941069994971126865690816008835354672353582884929599990004799715582924502126456015511008790452633087172175500062175994051425857816347836506778104813509679035485003789600511069117638107432024861623479163946135379412625740175835592622167025052145905223170142758647266196564559729113643389486662718954616744708370213475483455905310583455759279490134753185821905163379939320027577509593006534121753023535095995416097012865456799305908311186983617512088719942412768587454062825352934126266809589014836636109528438211610026066625438777274408630168944784201414826119029939913244283709357490814233865183620873381589273945589141041165859046822666376382936966983922508831966592579983119652637164490166803465258578068706198869362168962476997970467795292984148948315368463977906046577619230573036890517667856273291151014440898654526411852631896521281044924317273732044413317348534746375863806715622131222325593734979691324549413211976851333510872182828686923252952954725519171809507856576426567110482229849210320395813431223723396032169419148660343845884044257968770269356246172470283159495101676324875442816877978689229650800208383170923048705654176233015792923479862836419373792833228250144651036927912192838271618888367802968368151573990735603907602824043299508078348853956944418399496753295365248089964825040292173946716647079041762022662040608334228064999978525263668451331967634675380837631081746942648196509273685715364616957966601207613267673879493819551081698102523195254939528333761183579590796055252548518342291143822236869900742410218737507348892067606300732962263977751753382004763815138121923210302362204641700994758782944367912961434459895507916382776005241190859655495242436892052321134493674525332640626078958716590841853548676363223254613268222007438154899809466384207110384065546421466763126266381462650970435063746157705788510207850430332107825226908113527089782344534452961996011942231459785394235071414729302600528562684168334957365558479396297651960063330494327672055593769595539168706055803946119192696174616425012568997012375040449525845431543141276346951236425126480610638145200740767747717896585830004765576820455892837180313532657590007244907062161673644592419000206329693341102308065453314341456927162399342824315695841345289838646670781055731299069192531855502621526263498392182817673774485856437486622015145207509830858312613635190226586002971450344787134358077311904289772417122851910447355458831266267460879775016101965095793462542480233241531052107810364400667818112846404784796217792557364269071053920100467163870885040417220326697513969178075182028726584226428219594141454521717010346536623868261080740685574228383757691184376028115071135863593478724758579418596401980757011320345591212599059244536153487908021501556636431859102515780434431541888646413268352985668030689072387307346317033773096889024472279438054490102825923430902672460666394412624432374860396875522713804421809701654814305802648132109922615406944287313219739111655365185235011414828345383708796475449645317097132782393124632102517515201719330124018618071173020870291976321340310682762352233902695523854322966076192232493921299677480587929103472042937006766123536625359096417113649580881863987186634561443965805631392029512715694200396070123581614221956354574314345739627622113468083655908603834249239943705981269984627698575854939381450066582345799176325307148565245735507223649923463205717520044812595951899072131499518929752422875691123640797610427972898608837710138922815567994800521272123483319398017643054305470140039040198522974605072317169999008786907843220125964641126089855453991941864659833867607548332074594313466795828401270050001345147712466990114296558007753488550792986009263136555793325034596200229987410399101223669152099840377348018134324101842581972768816766204648505667504762864811272415583470165110071994892435950498754726272034899586919953815108540714363594904111433323598541581656176712536915413459484605855891373471705447375423590416763347234355110927570782045826050767443126984460810059373928952213307645471473100334376559881863210822433348820562161373526677402312069505125148243020126285375542932714643814366821759628005225457331059707609730454589451342279842279046614278399210285199331733720331649511545421034125599939842407301933723431115277856734745357923214217225923983644904084131952590061769695842281137221030261141245528332179775869230487356709874266445699103753160973048146523793196690075672693595689130007219713310491692554967949358128631414193991444775558691023560913992746940985330845070198130853483561994618994627891965972724076502155102672232112098441841302153364904172706898139826880196936128441554306138751835858156826003365139807400854743478945130346157126315716460990005840903015561335102597136301207620838508641491304616407855455128602070065310251752673113058250030692297901094052667842210104475200432906734736732535433186432207854726748066336688518185799062682067886134629234913828461157313168353294356763412832912106377488190122367060764103751932375382019979897586071545940721449240038203329015483099466223935837881461933794061724921566258690134376417359784297845381223237754156962695397415441104190022927282612126652571622323498439771560988705987667528737019184485761071634803769346473197462415021607006488731349797270096024519272356214539973237611929387313237207721055480708023528325476523778998526762393139547610191678366807296437286314364248592978142688755052198948975646553251515005776095095909710001947331031772074040353020253668085182006197901548980223387695874429460729989015511174893515732631360671955923922242653341035726505667024521904699113473726491971514932910280034204166080862077386992512616462003636511814851696333107283855997896765983796897969176467950278887190450216651733422569083711331002492694140770988820796348357876711813454594857112646566884603351572819159907881974245347448561619407778961163175191339280754783653886281425163077111401702393097627078197958182906627949119865513997186922330809257236921436293083510691360976684589453424484277168088374265173220995923009933585060617276690032649683577389721513862798582221592265597310954696690364955599656168750311461090568396147321465813452624753952012866643616106596645057510516293065257989039568388136028140179004562777485490159573661178139567905066925798059506910023606890568335997909746899163691912143089119201767861204119947423032245620871480457568305043739264200943937022451771398778661146634531634485307656715563497556869029017524140442204466150379251551363493658799601927623165297935327288776730047632529794679734564156073702856936749289696717375868736823135682501284902422978415260711465143239726613456842518744766970777425591395833808204615637962879398852380084428608704260919911322115753353859931257162600745461005379879692280688239988041997150407055414335240877879174692324202219604212675487657135796904188668664570568323455270035665562008168089197454372766785017618110443887731288479718967064044519369738550721634635004862411554351114892034469736077735396603092865443639401689963937893655144721015359512770242142570037347591311950668549979452147265876366458910601889243127993216896902284695004448046729115227072873278765999822462860206209998984518918351418365441477885003263698501627637983015600911291973789137270119179099826863861506706950954786104041371369164903975808915974431839170785421327924426930921041215037373503490562503090395938434430126884957162683482466291578681543256092638886605916902232731937046798803157409217841219290450836799676209252513270625506123184113377106789579753738103123245977475604259519186325809708975119118101770622464502205043641807925188517838539576167070996084539656580366234436000055326213303185777697259209473110025012688227239357662637964574545596330615851442055835717095481055679597546418095518594752582283279984750046705458304019883164712325377203188825250272487707429134232587874662199496904816371010582047287701247753552320533122678814081595093504226546389530551389330400040842200621425054476712206603384970525838657497602441135330288044405770134314493485229088376867370208870917160281282993788337110388478329872464499449109782799439418280632271061881101411576661207784820574875499275782612805563896170499663693273824188929177964426506295685945858204695957891713373604904438023604328595209070744514724344829794572495794368673001888110803272308109416240057329570313535603169822481258209878030862588863955322453945459051452154740036651773494474712691420328318608477644469912212073686824613473869630100977930332391971084580184544699500509229308173184264593296352452648073787980489675485284414805998047113262039624310878740422829866902934755854009982579484312574246530877464178213432015067101219577683625857531998044461668304499692981598319054349353672891997610085685999538845695160487855059151044374747519214800154166150464464344751805345252663529590321639752736871395839920860648907098666475738044008175109323426036652036730190645680154716607257322397736413390368270700015906159829208902874831948947133639877170736054555964250732555394605311852577688394088199539585274918700535874149757755405665068868076472072722254473002722172050427940735887578829655114470949178286930817816357948108258653572118101005495202642214244885476723864642081231923072761746584496372064462834122086327638815899040800520331185678231679817762309644015581405667898078037668250853778282780044945128186912786979199288560806609588729503749825590165083128908354140203517826817966597569010448773106894449702922772595082686550106591601560868066676345463764587579939445284686093081474822110642495763573031637549729354513378733402873698080077758813347720999103703402392759344439725630463857906081099252746084244868996940591323460538435250258480933292224737313351133489044444400716994418557184521587353300899941161007655011326577979282743933542844043388746805990994761292253810492806410027948225121342599017754305157613877445211669928540874754514286511007190262615844285237310454380642373854685120037950782633484630867248063287965367726326264114459951204773383636927037451445285433360159671836122161412822800048517364087822725692638207820410148386694227537453698700464016960989823941865898494285653353662930206674249210808473776922564856761561229243589514739398735519041469693164026945966209501557909311862851183607708762922517128132079719228971577495332732723880733836992766602917210496069865010546674759324771778594570908908328675398675451467517943222109163075551218698274853874160772081308707463509745002478232623477133175804199008435361925925524755772606736250987424870571274507715098326893489995656945489224152713654865639483800549907984392147918120112469903178819725246448592313698879061827148047115541168814881379050752794966332558911604935028901110277336753340114356257859798091752124309376897948210650832224141363552234885081826382640039165186187525164408511364324919977987551446087330471054539143918452371109988741740872241826278047857421567566303486504465578975004437260317662290069084702707611044511838883819186369377034366111639619536980591864551545927942094309818422487176017069972380473926173656021731840079397091680596344250834333613707168924008008029763831716884009615976991175202382536508052351882310498584799089383059750867516964956815330625454358401627960576989411532777689610598422265296536417691384184490477202526963152570321759777767514935481077609299328600541375518842620608130623154268098146807762304541235217479001316973493631602629903492472948800878806538682755273421420119048324046409304893116989614400709439827382619389035544494321447419232694234570982501254646508507447601128869261656146488950004658854441115122000475245253690668163663633259234586083241082447746795683422122722107313230209256145113096262564964592533500889425536233168112388267686013691146845057561814001362535274235831419394062500418244003807388852534251805049220670438612184538094800510591580720438059982476929634746166906116613661925148444900112072736851877095805460167312970774536081658012018431056195316009766718931418822124694162246820168985807290771639739344971643329682448981389173406495755170607276782583688622578006667511048550717666727633136455063003227785226452523688471306904711305982469403437605805940410428746594208259405731167483354845490370514329322710985623423816177918154153082104291092199324721555479633000951068865092326153925622520371603079556234691115075227948805119121481706456468360464537154894380928410991646962740154191397256540084666205870534117574181447029454617837516599015452204384621753199251886527294616621863195954143087959844882681381949929060217626904969624114513222862837854509106037263519480398329767820719690347998957074219746449809723937271150831958283883557502887246614936029707351425617580686162654365625885271815752751919313314504618778523996331586374916080719355311392730115175202284548622115137347111059101413007947979764777734326172017655242062528436102556619912347474040679288700988159616309504233963552009381460720567803079180255253623540821400046482869620841299011975863283602811368246207939394350094330257162129315843865124544300672509170357074548916349565656917434294760896182952670739489089961586502912009733891720002966470949708597687860383583160593674824734235957324356718935359027518362322168605062348945688045161729354415905784523984619242124802916480700397627813738616465332380687285304752201665911137264263358777780600124447670876071174320839364604436443464407248569860309995024825205589595652821874691248215067682107412734603637471596262936392227651855211527976799993225772915573889266436032207476978166966437527621685012272038097361529429883336445863930077877700705302181565671572116898608535400483718843768084594272343669892027334658037778119743436494201295425300393336056118421459829372573440284262840168127836493635676621064647929407517189849745617764502630221772798504062932712349538775022558846886234074958665441789670507472669453001948786233657528456518825519433037135959868757542432989500686528048821123473252900872038183616564911686803318056598126930160326926238627199297668491605575958724202691658088726934690938426700346548159448217636837777564753050714323979846169249651013307421878311469862380427622135917333290679658652379101792600255763503453710285320313738883314116798752096839017579421189431904221717920974316642140930493535144278620972738726583660159372096324701217745899651884376233286725623897260025528387266631193000678831584754349766018881919211664505851141602239467418916984824789075444989644130733352067937853833744810371471551894091118294453131036196052939760279725289299284489902061682817410297042557821239659635207014060796242429218215481456718321670937196439353485162069276139101553017247619080997711772633313303299524340328026035873419980568227605111768070992947494261154022440625928196085992247924948993807772596825730437146157532135529347999905280492916456332765828436180176446580478422707315801251092164626079222526004460068073433462758390542179371596030242763427045114327250644943911352673208399756178425456008347710606717915264985644012678724419967807592400960467450330568177403961428766425778726483016006035036901188762897860790433902878578841450231046331076314328530520121115559134599876402211775843909562923979761539296734599417801750243551187860468690419810704202034956949274649052883459336694752618592100844827589845952820499311847195734115481513277801646315971629313716932572463290764362241241775092415334542293317637669774005984005797856796567605104047785814648246624365222803650882249303493176704428731412174141985078487658894378506818369879835459847486438527038110142478623911588362356157620930691453047452677262676203759889017624725564564864777626364060124953298299508558182856154341697953973651411343020521854208289576426016688142502221536003066512537277682311985858913580061492815853964648718994405289925388924325529716217578587563249771964026394876575853488909186965125693118472613568612979621105941347597144191753443222124595447058795802771942687564357647060431985245177753856398998166489483204797395028481106786027956420504511151115212037623567682116975813692882487972891361296050596917735480431864908111731534135643231235234520326487941789640191116327261855851946962065563797027817351316379499123631521577251285993760126193750719172527237376388102937828753648587920716089172099044009996208122964073367376356424065540881183147294285422238319039261030565145423753824583270554520644613375056986183816055458216063217743609028630836593049392602179067785437628854039410570954454011296470684522937110487465669117300977293136658936939804416805671962065303444273456303364827287655867616301918900036771816267684645241228111309790149853422888324198871256560013945337895106159837410064817421480879348317099416909319932867010334367457635722092079956075053665649235990492807223612158756487918952039318868210522651113841298122225713150048594619801575710220642039889785265590263784803911665428434078983923599684988038210824900690629482075348873283608001780997983764019427447521767037662410229939045277784368536595353891769045102406586415949876392434442743730914964680326105053086808913411610756126266656627489946710319181822653923241050744828409701766713857633833568551229261397735613404486663870357748134836128404792180043070081047912720266580914722881080385275975896092575818237324697018345004052155789646400959698045206762498146288359776766281961917695169563296040741472803095379251507367023447853546276995090154618530541051650517548699918434390002242486717513508346107318922307405349820387807174491295082737771202765545540654259246928738237665747484983400639022140046790792176388108245969141170353002074583595796663909520863729221953027724226734233265334484902757355717850961943904943696857044210866334741043125870701485368417377423772540232284392050958881233395775220792205557769216778241456585235495605484268740582409028718964575015297859144085098258646621610401769964721745234234878470318490780876936527245263576008699402115213638916434260443009862378030896449929069538493070884735312531890584008504582777193866306363129644304514038741936670132826312296251111987843362323626151613200348823649234530684968638564372601340599884873764107407661865754851895540352856474208342278230467800855564415536938616586561830849570454950722873477889726563325326115024487627086212862337250147766800615821403396233873832799322490908317867555393966533694034654228182752530000883553295482840283190164180017440127941684675640608257647186198694036285109360709686948478562490799108224493477021245490021940290563103502323193166049529573444685363494361682247469473779135215588827539845554411871916373296272042349369571569976654687621800556788844028769951342987491166863123725729631699157642003252310678150180802915419868994102112073305834333831858505238951449919672238317432892237162987655067311965580476505828763978714168863510867655781031496540473947707681887896822458508039465540488100852677822747883567442611199095130109277502218806703441115794620336007067823063272816838914102269493684994087688764651591559910339251443245036519002214957562690902670828555072096311666791264695312379893420592684231997855363037907535140433331374561505889518506177432834774968202168675466646894213856794676237923185961138515612920134075947816509411126148025073545514275784318554702134680955447935007314582972131237808515312114376312541113079517543673336180230063467586155444189339594271738758990454627938766995552025875798188298822509751201326150199919547934104197256797217474121547189628928246767093007114379664696261921100601954050315227113908481615793703668732510671638406035351047025669168154725740040262248859380187213158487008657970849191652387332605925039810039487026460196097843250366865165463820110106797046845154174138144307134774828241130856210388242745009613787181228954717996208199868707473528395027677440128718004831602081314279232710059980831339578379321949831855448612411932058086845440013509761986004747098181573167893058692718663971232555982262860343127535310051873677501153909895586089193619692922443815142314792659053890791447309114307686382335508477923483233257577342152442401123044176218916487813425219287929816439966124360123489294352305450844946895049758424558873520207559406981043106873677878576590107682676757913343201918776721445707699684376562712224559135538137812487307203768779940241643984647503380501053756236900324846029387402546783719268193640077802229707227589494732738631539435416707812992754968449366547484370074619171798001400007211171490228984856123238785029336858584866913052772095217971546126043675171437261626474399917006322117062751746328020775755144617042849066523218232920675834277850720826239515486768268899473639520055241613143197388198030988599159903217509361523454915693239892905771356852188250700789605042801984960817302382669541525593447601825830268532359100052528618926600307870469225153845886725052101451939119693494693797214965464676215882292860789500558458234834484220412272953609013279828259153761204442248993652274609027591443238427234168173444313521602936590128605351340016987178525409855569562343008301224533416920881125235922599869527280243434274284125566270200488606116143262750815359004301481333859537175203316597648117781348135531649535278733854401548783675502509474350099693305843706013883167225685263636832553380957600390953993960466935720220515915605105745111381435128070644317512338421551201418796355568472270431693887956290393603826141252314464967071680360247186181898276262069052730311867238432239052927390993506510222282684009179025259204864029751547593875468948664212827950919211511444202681527825335036274782246075321126667646158705491639240231202311456157868230908849659441993798316339416670937349085290293496149711772061081629998570599109164883679902189659279931993200572449352827517867987172492944186611744667857711526611331001112619755824182504900601915959493160657080030873767726889759636653800707911899281884157809632244005382905439463553818822463946102135005522330048205269852407773749197448297159222859448959462459178683688004984877495192269367910855160892950734215131325681957216222495740563270194022769838771904784214915669149293671015730796184545078150025407991591906462462229146847677329387854767798393287238974452157939519988473897380719605697876326465402113368723297764112552342939230632629701750872095344413926420867999563541244896816188504112543272871021678015650909265314727725682277805867280327203869105852409331733149077394877785935247009555400446336525945784821743166953991076851533722324461122000594182845598222667956325234170921862604653929659901358729278642052031131730992436776226796027174278045792164255299929093980116354029640101775451463453926841337629143590298591651830836704620813453196797419039098071741619351404514833293678000910278436787325819426948850339959234130704908869910999439346966818078977277398696437552669073148055962477789156772273260672188728954175333575292373030898025216061254827825326501717930082499594922467818314439668884580460162651105396715251934846322224723310625014578105987665591764857542602727104390633445404178013435712385945128349843875733476996528773772405249282124794481225389970745028640427555857851993758078465707383954164138598370649560570808549514988775838055387900288162750441114097814735126482839901677439439584144557190132435072951130755879214996797822181827154369326478501535902191329781007586757435827918767064646416720075477134597933782970694869446817548234063528672665108090854753858199452464465598138432623289356542718090794107648735293206046686414975709241904587888923752520029733409017659551233770944677116024889031215340311569566404310754245210714480300713414205864336429588668506432945057912491569260038832164528315644335914469617424754480778127408599810286627244700513310785822508629515206744910355244258248843762403495100281589434791647075339088430336246994049645989559852512614751660637250087539810099406358155779956873071187778700140464501754402958511441878966453694292103041966592643001952459411911903755694076800875851911073196594902184017632579506871439835741923024621286803539047476127200550597707345793119773642441081000585834676797183850463679817146493719765793673498074351977457185062052151392351574262132085405820054349636870415494087136712194399945881612366234453301480100203101392181734478568437042930162313132700456458914216764840825136757655702010067281167737039883446625096617824825076686453832761933916318184677597971402841843356522633426569929457754604936207726113804620320027198327685463765376178882673642135731389390731522976466240467563755874727692681116045573040678384544729798003617920943279368852257102755250337737718748419677681547931429759152481050932280848855034879373175388220822480800567778463563215479819939480380765745174295180159868408010066232158354966076743257131411839570539910450725364022494869174203582348930753364102785944982475858716073073734290383558759677620698513830121307042494336781979590141841655154467375540684169983006066098948227960028126945461202104355954640817993805866304866852498154616972907869777222113491955392788337272260844546359031691074533516727154148665663716897424006985932520894161622069900725879297900060082388287516855052099040869842544845736608306192224426749832533702520826005301023871410020500160325919149722415492303965235384208165302514940739923404353252385969233199101028049958562562576157680147043206829686524628800067926292908223091756647248167223207328228413736869070829295014266180321434417581487813375385764051975992003058013372694531160720548714165127719336622679147758160305423752892221510593825896222489053471994679813658130800030873688594559120638388115842673230584547390930300384611622084522045452694591464731499023952575084044281609881100098780586560379398067801274969332867133746949937831708991839829467494757436143166475034958875890386569494660029416506414697340186453706546186726389788228119231350267915411624708482761679914129948857426387283757440246864483197804696118523336090208401738863407104678143534392294646080240755395303441486990269095431692762351602753392017349652252714624799601394190469925811112110908126291837104230772805134576243282930906855238591071149347850059150901437276424864772276766250260553570248716135828295470715000541512528895876672782013621307411735904749117320516756248931457503282456270953624872897760198268254575610981992174246024813293228638048486213849566491449093864169734424215509878318088328888357225534909669270520904567311289351946763435325322817902084140614319196338297324610454932171565120069873919294294548883645430574448458728885315520597207170587025641518966249859060814188281831521442175142649641375483806593289249046340808083634835548504028542711814412739202703869751898465677346604127396451811398627419066544824757019687855018730039592177856399315976010482898966129997333582267902606317300587763362627758644197476655962843376838621132214388819301826350909840170934446103029191858301009914169506440071129257339896147152194827862521994503220334444165268294964062810077635992152926433300744465804473699225552605224251521076931269782526436211382181881380987339762620228266646006863074813884147107783531243685657000685052700334321887388832062808360577813281420861101292991472203912375260973706183506205796275020779254806886215622201137716626253604074645546093544125756400436432410561191902638485846918377246177354737786995943025195561224541796631497724930752023531213559159194442087249280785461489868279234094688970558350505546445541503150482361624325423649248501485374847988370352452100785663436086478086115298729333604397677978277172135005955462454251102548287471839532334497373074633977698172653467824688605924399060682360883055840250277866045054693279445423735124926917406816353427702135051735705224407122171082836364992578200273185592025520679741203282725412332055262038686329108950869775623117832796212581643442328488652575199123643518674283780649405099716930387917353936834549472262045607966752099664640667444710946025669471092401145702644286099766448198300671473190494334193757163806817744244059463412385608397443989362629782049886163273746407476786170338035010378482349236750521736835289246164104334696495432345583683640977907727785664317267683584662679601624501025174230394891110116936814307746030466310120195201683968626822853617459340308553080198294197395368517214277982430307966047975285086413462464557220771002789198898508158387983172820592217481403769369152526547135853409100672593837087780839600012697668036733116969208572968594073613752921023355835662217480078879919211359830235570507902555468047112901094726843657653582271674664301818823194761022245320485596468473932549470489274778472858836212710883607682688402357706943190094246534069795268644447250158808705469805174575119772255046555391761773649489449667286671249524382928049722717457628076711816757592448197628985804565765893512994969723474358648640605635114360660598992869744277155657335566865337552338432630545035583496440938934680422362572167969251076484751654724040206631269223233631456786337973054792231190439302962076454033438465133983566315198365552891559048004918147634189015994106327528220524807928449311771420233319520163730404170770294513706660984100296699037023508743950964125823741637745949090087708986579417504371114336469003252583436040708460197913528472469093061542439343086473508802896235596804241014693468540013810122933687543934213206147182069204823909498753631663674420437158824817130077284755495708964010229978646340033093374355373649211360706551135432992119350150198848057948606220317581874347704392384140486761880730374303248914861609762593421159178732543380974560931704258407796608695174131224338394582500715674782984940770519806904124784036747707335108576123868977654243300735744773238413852492873304362566298619863873419570229339138734261429901653456987683617201136778012797728999652373682150240730194426292712495082377484707152478159135447844397994167474429266512842457228624437794834913192591319182507904462419902439553498763269180953922625838944856565760063764525157744081651722568071011812003743362411790883497919109683433937118713561346977229055291317736483145551635541421804210015562815042613807542335574994301293057200068922721859529373790917324758187137129531316405559123688533821862636386405506925108317107864626784620035949114612503094510805788361496675103422308363694838674603841464718490768259019930960476018226985588380793345410907629795064962669849802166424053614156790762042025752108208099607389951831771900370012623616509500405680496184772872627633452961393463822162583929892426075578038361198977773959443529496688556657495251775929037862288686894428015273910517816873677968197903024150523208799265779030935346082082337548963362029727614304567777392068024750678716006671356411501184411705455707112983168208510697849345072654665522036148860576439106660283713695074108356832555502116061247563754871664415815552240172921153925884893993677962728575444056845927156047632562727521566869927631055916885512706688341981593203478788825511464407218151500962044139162633716818473615294859469366039832743777868496716803915143536581824254323338455877603748696272789451694974080159151665912530294496174593636172870770540287766015240124175390430471190457986866652591660320944402872321448065590394098155833924062858724358961291419963533984050083485108348662218444276711364446611603680004245609087130210176459945704991124904242670426564884612030691658883093598356659721672959355412069757159665398390487035219480170556297967672724431423904291806924373660787162689861572774303095981353875679002080231726985793818390585565804319681329901804501149896291785582173854895089116275444474270159743004025263279405155415746565571668416246027299038124826764123199352401286534646955255734280416631553010145150644698269699130675097573348887561104900506724487537512732974582449348252620909877671224076040747570325973816698421761942110739394307571857084010514566013288077893650624505452448832208891345043000661484685909693550884863304474980896354182017032277758801046129423146521577009060355599227967968169015548105687573358589824940732288853019796975263116689040003943684331132904887902390694744120230989567574476479751457807961030839508811747199637734679180231853710963762620206927637814689723352370265436472647990603967117252677808372541420980662868306287179978191543749171585610381574802254557614502282269917010156600419591060231535879867633089492096717834062593029031620533584603140622846297132136781341464307733724850552500495357301966290784005758126810937081748539626534098429059935137002203505257959982657357348192611386406637599990208526729205533210329024545396427332459070261262933245250677747458122685217720785473167783928095534713231993815086944622166656827831779330805003944308526157696137065884323467537916249165688744392896255612516182086989455770451416401274666667419129853922602355920093325151545447827976233946749466631865187050254815794021481278240099544255381365987049390065486701713202891099577364145240416684100388740768022108806070488570170407020065414550327045364995778589941113024945198845456686065857285496943673996111880854264456644379682022609254533242973968401977531230076921637553181228026026157274614274227440550203350196037770149102992003686364199938172395436840239121752921925224623155063875808694911836483499858736882546172242781802616724750550105418680022893161722623034406197270379016608640209598435678545415917680371245446716537743179328233700758470826688496749091308829948850205590143097589244550206080727140178133724330207313589055606122856545499230649276864156600880216510937827581066323070593944426424867906633712707854279603037745943056843231220904263304648027909844134363115489161778815235402673397606074366817640738441876124822489449353889756332263013425659781317424401138028491088275164819043519147633217719068558312154136484066746963290504075096411072462076144747891178716060366693068732236899263125352102517405876618946005855062157974286525343379455394216799040489310988379283554706432948679845198175047898143936263935058231921838282794794816576148420271389892675505003975713165640948172770967877730924122695127186531712842953145099598316065102989872860053430891295146822268444764115085915500494224673782194720904538296472689632105323216101946868114148069259993219172264227813605830298437202817846030683372117185055311844846720059863241111651248025618313676186920226479480330633502282779484202881005065764983295884819681702199852076840298361186775713480659471198498131320226268312731138329983721170325129969595253850035921996007985006012209668723847885253666216303130985114895553940738946387835621675265693934459486123019667742056188404056477341114680970848439665978814168935962143897499963447470655744774725568243995779169387446237085449618732837152087880605202158494058669153693818259826141474583023373206823505850535087971862055284847415943777421395961596538023179821139761876148968626439885542304800425243015487850913757332459215463112634825160178581083419157150511201482005848864428113733443712057182752018737075177858155734224750692461906162036163856209843629262903933749880306504272774231458851179357132486485960903838678858791750713578502595587264039574287208250989285316374459583285181205076512287373445367703696519331957521842239391047166860283630205559041034516569968415786701324185837123931721233615024675497054779532343156299046706831728939990394178469007737345135329236626394820862962717128534667205868379298495980453151689899757836830908287351733166389908472524710882385182428297807401556313139463899507017236803836859843194112241159172374672668279442334989729202979885429883490585889944415126364987848496236268189999060172758159860721433410692830300016986273760630935788382429207703683371542027374698923421042979153133793760990208665323205692110623668643765313658641179838390042043142279697534977065617123604580009312465884157037299274576112133472801336376348869506994969523302213737779650466289934476297834909230270180057660369248311147778580060236766441188556622109421102195541753012429023231025923445356209446721799079857863959347992303134707527388590409933154728221763826148668994251997855682763284561752997642781174174510639375363438592053704288829814370518735779749676336868723544061043871007634729263957025355380007211266379738582974720566556739595421421533129652462632599074425337470626324712863584817417182162854248512326160929181294768712909811137553961995879087713045481288813760310233117753221920655004794409497768487217556443939429999838304221761760470062451024753723202827661928411148408631487113440911764567639949502086220457970424425601488209747812154831366289761756124256038943739734095999429436113282559457726704241734215213065099718199553131677245951972873854331738278797513534611310950409397654776680221106153077096804657193976227074155373206411007874398373195991108410459118324452263011686696889707439007440948223999419088484086687652154465004982699973403359652986614953497774463727095439200284873955628112262652781116802403351945189804766040637331858117762519581491118086362724669623905969795854649408021611517052066879782357522387276329066905125852457697227701405437607616293014287215157927033871642764648202212588093239832409714781748964963153168309335707932072376107568761395068172385411610330736638089054200306603136522744029935851753900627927027381695107197965926021184799392975272727307062955003197218334354903065105670397809617578150628725569922830258804669908675576063999111606372703225714115696679600021260422422161432896742194536650628032967352345938461716040519691715933371346727132497053280718045457415705102764582790082783593454432805865191767896755154650275864595138598730258071766972082927485360854739435360061548417178192394206173138667327154650474930803345560028765232602249721052043008714252988219111379842451654683560665142958516984920187716343502585139965258438926388783503778878147000226672395829858788936722425023168798586280595235702689490193252097253539131541863076471942890458152772835062541686778170930323582004191494359119146124055767918987401361321846325205832434133364059664536480757198676883795977776579267792185138602602764898507887321895957107466965791804789013378294314092626283439772042234260947381061029159596221346009535898556483983550550709639155277784942000519067077360165024797125192623044587017516446767069099187218641084975900004253458363338199545404768391610035383166121917622490452292472360775085635205579362316226758831436847435656811635370407722624842352506801184849998501749228477420497507195083188642706997940013218528456951948231116541692776985919090143462041574302923877353934673068380262197210554340461672962000939666967527832649722880187478907660216310713121668362443218036316151453055383652784901864773526611540935927236953085132253975012531277847516057965123227426842046028358579106196589573403268764769374503233650220640343284476356925100306176864213498450466787632514751537922682364006151835539120695930395854851010219702250134032873556642283579406776811057606567202150470126139457142122293291459855467880731307534735183891770506445458166224958358763239594195380513721625012529799520637502250393514508820962933940250660227640795432964513740497416305073404713969860967616154982874361250632768618766806209591992897553727289784189446284858632777188538450525234200590115398018855294065040620006554313685184985209462164043280212439470636884581855118165116782098768267941059386909777450939126801895492286162145385804999615520817839119079570881292929808136606388256759330440894127646736936755451594463479370032582558536495013585705929869472650383631510957764075325368719850500361071503524569504492845751385351950564486578018099116897067548855460752461061287254031050209903015797206949820583581244690178239557858624328853282336612683305861730249245233828972786716583782425473275834675821395031208238590525130497457154963859134542786879503959312054153642706876750558913664194016681593935248873980882569221214424902222424558821973654625226654995900746612375024071826321198740378767520904616731176046837620228375940177782658940506669325399596422370632087715836007422917765608241998764605697387530632944823849193843534566053446876692498144274185124391601515568396968990984008258497363090072682317249815592633835207254392358535145773105079635087633531114320180227977237257307690712340246124911905869750913816803342888485880005782853711531426683333690656348819606540222778729754563216032820101651739687727008610274710732314425767621591509231853116028028292319670500782587462183952918116693926942264567111195912265681473044133278161053268891001502513722201387680161007769939062955410011601254528602914416348045225632646462937038100468464613068956957048814352993395014615902990331986323474808772872500333256219610067750761839676116776653665058104051445519743138487369420605888903103890815415248080584533711887690133728353616595654160216661195016670678474537873363626781538814531185022960844072878484665284183886522994916692215831417086359643022105527510591301116703006030746411545651243044952645570963858066737824383283721678878323048977619118670122490845296540475319759314010732428156940621911135453416660292828111528878332571175499973455719676565721303989927653554679551993765501451741789570939139006812789894854015586236005863321887555183446334358405193964092545314132136129652307206644298764035911762846657465899309642263287715646045034466650887667990594605215178167999071361099584480840593473897457764488027961848228126058570282190908639267388030386586997192482528481757415003366572650904785466839677909685953554721477409320637431494181352605113850808437520703121031535591716430542191835704515987179730036160888440154852173339462653819906333687690772877704397183075908880234447837795154078043482071071496265989801075165735928030195632385664978610548272629238129294631375185529908426813539422982216594873861476895655575246899634522890030820093819381079346529841893557047867308065478059381033455559626531391308646858385386590999477162943913878269417299076054196770488695887992368555131705965675073986417372525020069217651822807782955637471515481366956460049843800000946941003674242170554947946827346536820190044815815009488518940915927815061290265423651948922734362656006716298153643530835746772560207365292435164273112713858424196349501085894441203200138056658538488477527859790557693758488351942379607230308582195074130815684535018707740030434401056734106479895982655708580667912098722306321876954873663381775157223833034071151461080607246457510531501667931590966594276625797833844838953669528428951845888342421363568888451551190879883713821255500097803015408466791674717077546515261858938526544991140059231699928845083765750253377636161629381409061789488102992778429974385441321808125437367419821991539234258967172081341363477716901766949805835716171826546327128664209779465158291463270724584878111065990980192963841016617386922231112479610257397233180424304141179921350837037991847183534413034285230491665120404844838391492042993448326122067860699420715775670737664423583653456273350720623856222757628991801421121076351809761805566176906812130248799055903309669840345724095496005451948379141242742729397739900264979958692556047824689085233899412677593393646977514275029833246251658839459022648485206393794910310499021595411254595236618859846734573161626173767822551475093609225476769857845732486762872444267582029577387457745009433828081245455943927358280130507958035653714602948894543764941663690834795282392728254301087214906200815726111522380445582523001536541432204680122743551184037735036100083629108311084518782209664470844939522327761355015860994782307969863679056408709991547184631595897838165932649952765075673534933580864087616890474827271498739610977324764728312064479476152894646754472089805886675442124104251332037694336089303207491022992828876775983322257971106925322643097102415098088333939395803132473622415786424262844155179960061036649167857660003240470565921207762011970985992979864215573239178840411616870659298243308813053684249158041256663562570329420378720516973597855644784955834733267232403445617134979831593485504866084991018972552580196875925538996170695610374150192891725683005115449188913857062484964349811182711691510239273835326383471226740660842031405100420444877188957058608946477553427372638606672579037968246828375495810681384360165181660964157624201699057450801916278952437747885589966374499513979897627166911008793263604620035312006386388438734936450080145523284204347262066424875904743916407145815703776494580647010123179458789609363056370976388564099687160963736347159493006109014535632263442791492372849794988378174296740839099279963533453701782465474441123375298446844297244810782716438292873173689577122481958540659159391563481424569579327583750065130892632017385169277253464259667094257274349672080819818771471638668716457982754222017496659015657560204107493981811919334967180847488461501829042476452314465236984979295690230691197960735318011331163556974004513998012144086088469107956702302228898654599123016270046817439188327141665539511076900570255822480696751219241069109722011430284712576243778889899659262834936102633927922244775979022068980055004469016506083040254735151805745274922589007952669015840157485943458001263805513489862154247648484317906539977910055345562886616088742194280494091611185629070496977584671272350301745352492700042996347022365450216647476043693952263163305521798364289638594218846880325463845917002029576318441767856485150412494940647270273506888189310272894232500384268991233678737846013848165899235004588628794051794484407665687149155405486815304348825355800489134670664141465255226681495169949426263121393289122666849345692581811783609207275240646788642376475713418567509788441219862721130828150594987637065463092831043084037715156296336190697795423099468970301824920010802813474728220904650730920797900077223538728727261126345397687838486125607386894917933087396863800770771736636621409191103097269214838831939408759394906223874578635378096680164076787393109825895915498492983264573390457492723088328393433114839020040682778630530227360045090261976968050973003500450695754571037446967573748575107777613270448863576639312660327719979767287467385096232056694030950702087282441760324972933349326183228383469713059546572171619983672738345411466490325907892896715709929726168237743288939404820266947385003462295304477694799912989130754400902896375121194838396570685555479221518660589161258075947766748512334289161014477242877015227848444216971695041050738335833901388781202808560907088647714445698668120746108740921844673216521942482536061287632188024350704129565870248061869923765016487108936317349453284629680041377734336913262579594127351530354223215854893444121425411997934362176963861507697347680351689178912456734000178799861293574878468848916801587885214817153288017389832623504661359297852744955467145775069369137357596754832554538480773588899993777429218501887471932407650629312790257378405744891865551881372558262248842206043882985169739699021897933558550232716581003151468387850564054462117534778498545636543771280257953952664528382357421788036416530132775774576439296455326599225797498112687157558912586067705510690565778939098818706328161362185093345676534632414000909306057088356398639679008424149117861502831627935559049971304589863554337954220021994916201917702527515944436143367970465461386573658368074447491501039513470208335705108660641677923056225720777259077871510220061671558298875309059769626735207962396514552365600842039675551993947126826253687283979630656183801407012715845774712687316939042670145999720377998920753050581192085403250275089645083805012427678257499154595037994091127569583772966962722746072064739946588115312742343189647305776157919555126385840156925040845799575449515868717112298799027587786352180783691103297315287585884164084898181470710023654482614885121362740175252729696140184003397206652392373889680681305581788830751876768665461183663453795426525882452957748185000173719348382830912072667000164897714922234309626581806642378263154505516654290983851597294597396635027412359577317192081787472585482567730744600988806975982203543419016593622201298013618717378771209825614833980962341798666640988938900071830189028555937742167750987376098212975320861762121955169816143194767545907236657693577650472569224638155119263011961534277979669150234197230886093594478447019895615265709776875346033779435690019859323936654929351443439059961068356135356268801463708534795303902628460057546595094891370233208932384109025309484861328211628572327697377935797166736767040132937545704978138147895297440414978256664861518936108066882788099066534002472244776135135351607768025100464904773532810720858512548785226642411074503901849466441759484501420518957595753163860793761633644264668585990536761829624327574208667417630350760916568443246768110795538442988382679518452059658662966500523792234321726509053163210708530365234740645087984423848354466806837758654753837356728668455493507399421304357473624863427915518416880231751831257867836030137418479094161379330997642183719554261512239569656448347562898894737970451437650884653124033577504768580594970237290934620882124593726484839851790003399486011392740743079531936837015043496174476693266088553786134172490501877548954466937979740037598736830487316773087852161406308931886540245613316484076376936405601465927257572626232417032073117620536454760785589719357324113846308516886415452487227210867545352413295044500405738353263014294046307451089777847196007835746169932406435847115640572932173397815241659657874655428854684202893087152976143886424186064323427949315409240592507951907528704191914428147826161146837004469902854220137649420243383876815598277255056989905076798166507447223641158871500763936344685499524912426356556650920468373470813902298018799210406281661994571785404533866414371471402113370149246270378736699892882180831815335917601924146771789481356886442565882165396103580335754099744256857612283986904067178526397186936597945717096444680641335108430315140559316876859720117941811899597865034267409898068337280229302869764978060392848191928115044083100934081458279055668379808156512799412759997602972378013887178908303584515701177529885160326941653983747778410473377703587832097986839299736333897079994240677929536997028509810758334870170828703778747923654508783151126932305106224971903956348654635406011753067217629301422686250954601538675763772314432516407630189208984272280328293226172951245342934940154460915475508311243559745298789015820315956548136569059868936342202074518238550792154641574485369046935977684386302708268477878809116992563089252232432618646440391274423406485561188848673257749278648238926298306286191896402184841294421825840749355907266994868760855200971549824207038403521987883519349085790557498803145106077568498400835904590091038400026394373271491640960786429387263565085136732743162080151044828278099396093930795969099673419598984783513370449890286513340659273951455817604207178076251262569921931653876834663085673781400921975759336083203757602843683523687439781150979762673058340112171196131172352252185251535343039484568925369426734381608495461447851837111750338997301839439109867526783525124217220324964052069105641074330207678171024137291366213604612821463208959914469899468129726484752667590001469941995119607813920946839001840548320725017464563022714470282330838199817701945987112727195566092573987081959491612059557184636885733566492628702854428282274148417513659469823869412477948139789250748982175517833682678807360118341191050439483984317922189486255297357524572287512039373214234523588105867334166262858487231618929095416036299776386025306463781182849386562609056044385651770007168666247609457984268359158912586910465951156671725139630290341381428924278927753089915811756261974289828943494135419040068096017775364116065674441501876682357530726150411743629963208689404561096430835663560728675754063499978806669586469799557955141022873713801704806131467258936493757312115988326799154382935485054494720380172670943462746906819357364823093185855418150632173175190662273937547496878379093340123985045649221667598021962903267078654085239580341623617027751717724793160557157004292811409328780618736400683980972734037079084885271564356600905386572351627289058938351347203647413207336209792559549745745753896424198287456861783605514044152350031366376660586420543695979008496854908399801261696796812055325631345782504940375019635716186121122790522233148563273643538496402523551209678950211281707342082086253887980794329665648303102070932325268060637078063365719165612210133271520420277430606393566466155235698600605082152763328793291647544278285623847147483457968892704062918075299594084952056342692884749435098876631622591252613038125894335290073825826958802990024346152961311913683303223252444613011367100356777340200978626761775411240293459235817638049950848112838397532927973667356829448937035787919555123605485063944153415814591016018136946373673184602289667035456336747317735328604822143652046653138880116748724134685042512750026737953238991685594086557510286272755816556016718175245351818791282851928955861167378759899084903851572966143153786310842977340648283564423889502161289696091841108719357878561987943582498344750869933846835930032318387020849587449503167731862600912973496231513671037824311914284743070669453020353966127430446187105443514309809898055382037655363364452857824944420242646517606103322499789322165554624838244328428604117142974171638717759600753697633231513112802178428571232640579554680602123158505273553026135243007206404740996031212084954347925841533775992826878202894464322217245857255983810868776086249572949794645957780486894401400095457943134773274247768417054349323385160542772418432914126716795544544749504029736418414618722150954972327604081529681285634466384459169273117681233338423351438685941854132943738959022766242184707028383493885794618006393060563893275756947690605108956866758385943138993591251050022239915541848245493880575541237303873280048731447095953933457269738445183270378857366208130111196405848156597662555145502010258669670363879603807414023907987001029817020646041815375737894517050159540896918470565687391797004842241746506074947486762865636283178808342703630185262168539532998974096891075056528480865735781945844325540199993026978993607391171430166044601082001063750979029041324190272209731321434578415378928052590913458321141916721425111129318923513538898398947290585508713551244060124917890519598080629929707784158115689625659128937236675463832129584003348341848728096282482717438436408527868089624810198870527337950206759898642444358915091831083802080884028347032623180253756922716210834716747477638596516933809933635490662185409474697851230098058528266176262574366984103202479510658130717966307495951581410890141150757211796009072102738236792448229817635558058922914851917045778589807172199000356900627403974160167655973049325012059922660834822441895077013416399908623348340170971085372830645952261718042537417302346072761934449576306393025726348034305964669122835983779417521742312193431866737990194975492022094125008560124963710106474753099143603449355973409319870946933137922090702593892053019563345682258371144833696153807333568899309131317848203521575750777278878098335852168992502033764072779494858515105570750396093873297030855246936520795478991912908846177625517247637048923915130208613561852743156185836269881938506197983630242507791504665730007777202903827375869278600351010597228576609111610595759464574783751325322997283681189920489241512196186871097633654736481729374734243536521340621259571541853565311433212784081700537677864657465551566028546777998197171973490636347745872609937410181702665676667525683178129635459627214488061307255955958356466832323337007885590538035991651827467616954499329020172179657367487295015425240552268665591492122865570880050891010217580994286027413677726974341426114343445320947391944567407799275990254731237594943643309838923912739552675914311535632174710547352112855692885196650447465016541736367430931004621807858770889090820071514434082327245511212341859683987743201041292254527914437091084206680673494183251359394740253449365693678312117576513080342800533330400961147461661416174838693802156320314548406590371844362029408452517948784453009902513446958091897065224876889244883485925651241985648319403350472004103029026314071315863441289891646784894421037507970722388125146759064914209276221262565290367777336508523158277089477939014760172345741425772383028473277990157344089772584382326339694523171780074593596760274747805312064253327620916077071910081506394707040327178086216053459491890169447574133310755916469760047628472909410052249005759401619605476751344868234752353295286969551858694229983304798427139350418352427093636522441494047193183689763317675162137619299176478680169154540167934502245604571554021126282022369102610847478884770069766712075353717655691839723939953821919466818337005874696618300274008890876411777696277106235008117709029745486289042047791724467095722468039266245785500071114855704513311400348637625618592169397916656108210920699807532018042088710859544777130156934239019901602848943057975652082908521168146259142531060301365792440964019466194445680289897404440770812782903284148916048575579676600360824519664818786719293614113439885849588026361418609388667790927561099855657937656610702528247092912361982772501047225925018933789370963928395589749031246220870570210153362710921284570749781708550564395462578277649319563632510423268600705463008990121251842390356582518237912875453337495369298551563310550182330171132105598690275941578707135222238072787584624574817268558458346729224521249183747795872526491389516323217308441198728353717172876347406141816008614665171381793668755471816295078676118971659702679136029861431624437637680923437107261101235718861636341408863959377306238370432410581945003709058473607296987694383093020974873274675682429963185956046522074156262511913686350266465829555209957754738866525676165935311941171605318329453492596110447653078949183261401905596767109868974023004592948741603356562383799626939013700943103797447655987511616584676780148888769951200207285002025071935168301806586767920175876717134153917850168835404347544368624818673497283440445354023331367012029671192280794087515607564166778253634576566712384926472729015195951547657022349300892741771188432907897163000408913694521845311773223630849935627677506320746038836293329787151051552521517875918354326762162271908894549688825719541020058985710414088132933727944203779648165179405899650157754982285600810918584289404635283086551402163277797444474850752374383760868024700940431037440039505402761810632760052519311712947875343035623196374575573657494256168741276758257724157459972597917273753218945212238414750240244731407063708643013038741592520996066894086406901854748418106092908103050458345590759845522266410068906242231474194147159051704681560468227843523878065876123914009633669274715069665951879440460860631171302673727937767103595074949384350395442314001457785138968150636398689126382657370506814302624343997069503879283617969064648561600574191468462993455166729130901754970665541138869518873078482944416897586506473690825998876953173126895887385659981306907003053692788681012418493552655969914201547249635389931772804342231943069099151499557660284272901675545153749632536280030296845821801121193739405072551889371864186560921435120758169927125549573235114933955630379483005077027209846260052291650471388584490360359089959701457417200026679198661166716869278384181503426639011002883037991793683073659198101804176144515991610822797610293006371993904720448469540829175035206497533028877310731894377069548208787585606135869407587607223638831906236146468536504773067575534845650611345964203359245815143813658863542316834931758356390388925628455888653078561267168081834770995706854542993744428655260668402406009088162212480628608674187372578652681067351476131897938684323563994346265099563387229670174608405848026235700309346071708204736439041882354397636678805097295641118508852310902455151895607622730356880755653541889147281475399819498634521224206412792294349140148967810026552805556503179436685464820066085791988990287330120282454976009975952905393021606941063030367834889509052107143386026265618190910023074881924328220229900324041066465170045095070877079033980861954440662498508384488167827913927576553762680664123089097831287818715597658214470406910752141484252752685764284815091801580256403965301973020978821969163140447612615293849695390283038868899520011226249866100552265761486815996396387788822527180590933312487073932200361974163146471104294746469838706679839904068054143336395022866505077442967901918445096238263741242134541080687035202007255096996776995441395803075347482014090563322568144060962984449542069847532687012263728397947457090101892413832879018256049111124937772740330589208136740309085687922346274125549839108066417991154287747337702159175742529366259430617441422268374908975590268137342174146025828986240999172198086651080202844604450218844925334714372039539455456868981630315408508319267302242158109944901977857048741296092139661680982726374636038231606589597703364412771033713932612481464476811494944880249364497320945676489066651746086357656101001280011855264756141188827651262725100450589795980584893575836405410841172332248361932506555901736727089956411453541118885375214640446497624840702158025058852902180484773720927212839449964791071707709582670502999121955315935228167569046273516774168983296162192211805840028369311058572580100528124706120060347618849394727709115549751912208174100819224983808815839520429280728866236631481410500568720508338400719676566676827465014931525948132249260497636627993424867030820270256864608753102998540385525180620570126427125634470889282913353305767063932363395048836085818788194040291053384145963758314953857042974560364325413657529154528953903818287191412299746178235545274257676351340629914831988635240158621001549931429616747713389196703809255163084324481993090770475763731782585906130376116132560966548777029746697531987993571760259040881471455191057609428180081633853325660681985717100900985143867580872075893532925123943937606323975762095821484400748049998272799495653473657965456369705648991125261119822150714189554410296841050175787864225396188278245673431810892203253487445855805068829789077258400565800808023880207479492074803936990620500576275827196702306446603212205372015361692453628042411807667297802068195232414331026504849407182150904789802027220033828768383195782979151080089035596989477453283020181483428848855821196545803147401957146818060910250361206018019715314810107134051431797481359017365886685827241213491808899313780580857024298006721388052048830696403460973346519141535715691646115772248202790478301113460691687237729957865835208477813942364302097894028044790710760789685293818110656913560901238820054866262167557773290379355114022649643892993748777964787971809819192890604750222856096276799128902931200920088323533994779727176460351234151697528449461524443281823668460930368799745934790184218271272701238942620337553770828478233836440692081167505113900114932300638911174243667000059099213136484911713535715667734471822986060681319524283254497069226771224897198004055047161838630273253956397958305575785420023222125607988024122424726742780583012277590619498246190721169435966226625652799934257486243047284412198552154621265016088657668023184362765377409673000552358257928472846247823883194119471069475211866990914653147377458922978523474044801663748082111389602490048696163001401223056606967113184948790518565857656341989705685780557758905675296376802352881981827468652426881962012152572469789985841336465850729028817746500157031250803876163012833417721919449253865076266055899773456977377583314356389856783247179163237498446336125387705174204700147970997745471763612953262719606215047183017714746964732697635683743483916216947521462636452316194894539396050232257908960654394586698274283122712006210918615606505007804031147347738687922917144415372114264657336321316485923911920968877642544396286699248906878230858999358046869883383777282810541090147301320259774411475058325808891907588196300839210663609050892466384060588010531626711004432954821148751827529049415815954679599455493384394985980778838263885950891561333747258791538300474251485853336124353227222316851687385204802382321074198246103920811871469803233803717335382964643202494460514350443018866015712704468956822181633608223541845623949933190661894685944216660509963203839211038947777782928445046015650640785115627341553977888577340553147089579003055656915548314309659860216021905091184981138506516497951840544581846905006281932971239982321546186032779162037571089004594168211983926496545087470482636573061823193693322019133743948051923715977093209727564685083299937071835699972708972624296997920568336403365665967798877036747458309675109512774787442138258694226040008215899487487231552602262400220326539428595986291548579339996095777432824578597703975897490811822138899832559652101660669399705164724024490459943604519592279609783013690158016381502542075968790771035790147547580729866501520723528702486487042144300119523786736312899137180854076159305509514646325437169821720767701195712216914995146732348550369478513113363444957090290561230382773855359826931636111410289781607322587241410477466133943176834823865949762767708023387880317221745892100266746434191543971933182154422421244282931579426350438183280447634962254549565270179625228553585269556337643434502945260253033502801715902886237252192755433918282936584614267738881222071976795832932884289454796023637923389704269889115173764086036310273481627016485360335773877000268714617275949454266239503863087203233062409413916142707820067990933391407823216650682986603477887805874763061132868656123480043756499342257547679712152015044875768198743439138393942250702086837096565822877749243806485297703687690231550226630194602803969657481556106771506258677906476605935629345280547071304022022970211140724069791241117874346735177930680077558544311605155089733691498326058741907182920365924740954608443243401070665912378787831824674470746441112166851108829427526171934816425909492780717692090064341207950935986644886216970001596574073722804735359152082918948583212872815703838624578786555476661170147721557835834141555156831189204467909795905432130551906615418546893031769001910103073695791862640794203490343410367820665337271291636559962759414025181747828229509435616443595246647444691564031493669335656811735089096941681820931625645325075172624298954968367279421115198974454312758668731266727450441040842717858896610099993578869355177736495509881436750099022566398001928806230119154460449541170070369461305572863912473897782710407288116239372326659631108205478165930958556572404351424698222085945710489834466595245450945108765142908245325960025666881482949691475506311812427165806184454804074060314025809708475826162277862023986655061681266811474035837864947225975424634995302801509103791006291524996664431761897084156335079700973519387150397507260879764114335108864868686883371336458208803084700889803654529383084828918186452441022495176138814872224533568121291313159150688922169445660287389725893146748187729130819929494432092170251433627959111537459646806544734183404364089040508156897196606486850254356327358360669884363764296571898432265305696157614299691392980271306292079109263770724300061070241669574885822832856977668360967615621768745511535502815588007588653756024134288073487183532230955170187435714807873687656382684227239397781127990712456565708411054387155959063293558468885634477076828198086411304994850213469307894359026952881422992526293970626133735754758699236507499367418720764239276961827555180157790072094792565956818195712630296167715595776838560168152946153260677274653410499175083843423605139207489694358683884936975112003805115478092231772379972829965944900669723600213629067968860010102034094801318074862641842203897317731140664879820998046957873893325585103704999592618114662197383561092534278005954368614031828085965675399824717605128064696738902586350873979535006439719111098573502614187851885480965159409026845448575301323713347341829734394266567284857277606650480276545351599401710245628554697385261898291730009133531072026427467815333767161362790661768612964587821492915520273594486196427453658419059361437886858343053992572149557084507011890641297846537526274762423504576622274129003902425538742885954928659780547100775474187711653466419261593472450271172359680744194435802252821293969244948905522509736947282464269908253913973444116584753168547110771957100013630893816050154662798851875388707275166335945116198465044715584937860765556878303502598011089363700257058420241365738823402440955883669726555734218462215333720331737115578161819589034912360796101947344282596209421036415768463448481553759211703317998816447574869174153063350642852664994443368055863987939342548151850455052942447386961428784063461470241115210989251694849780143713141943892330919870037231662309638218985999612978989104611383242798842749223600128809453253257924430077975062814847315907308249494632543905347258059245553266939377491176750297304758390587631459825429830226303172022219907425498512599039897657684711926649786949555684551919830953983644066451022298191767518734274675393795390272707272991144512303858645878162892023499002807807128403557199306415246343717709429261620487873227379816495972889073375976551932422053208218947990863556476116044003836377568620241034747213351433080913334827736268015448883038604744024254532227952082865146612067081167724911201614485057137057028619936697564245543110522331085796101823813561553162799619646966285975441591985840445383619910016100829699308970876566822419193207009701991401287722834197519279795021350131687767631863056583616985694546683784765724044070677321126857102708339689477887389894356839046279233649100439689373406025082741276723038356685477814855440497915023486680781189240208395751838408012258954589078322948589401387613876526110315242092467987960595677499520301438214030129914646297845863371436950094687253426982468467572959328329102426204162379632440462193791952278017360669201977223825037819544153185605640518906975434859505028391050365855691630145674382680411576464583003723333205644861196690309577611414285286932743493284923405367351416593626788013328469570845533452427823850444972931966747410190849350551196800054430985264687759574836698464417184361024448729597267253891134554582818544252554453888309136797664409526639565986863421218897991024819475689468889399189528978856873789460556037092540365766075085022360571257184886330795786239661204035522306861822533599004384496607047714407647289067227490558987080976717505004589273930966755993465634485929172149070997291162723996612841945652361243212979544863728394042922778616069636595926053199428618700302280053656167641476997999069869319448972786859255087295569606506621788473521266538987177691786211080056752679182082554920552927485069424523221700936765974431591203403727138300215687306519424289549776163930468735280383070771786029605206816240482729841417787190317094213985629128324194504099305635643928409883266177223710023917275631064277313642298803169009364417991952612506122410408059325557948719970951569738308533844637772694416332979195342230953846497160580634830370929506874093156511158845043592772667451229176660674075070136332929495012752660697004989876299683974696653335757009509054399386052018701360342775523029922968747838748632858023234643486656148805758266840727125149786570866503403612841924943762702936756858885368152582241074250620896256147444462689629508763834065340593958570807627693457637698439771628857267999189633016553467954730624549610583445598632423494205938489468242637950808189425051106344788472008760702109215240110513525585151469242192867191790270775032766535566116980422405065571970592776785933377956812279658475266421215423826071650132844915375477802331876905679697132183925771579496461442651429214443527595023975679781977035494140200503713168956846133030491120317620855094342863516686345100678117430062559286050213500491860618299257753943787454121719515048418470145061528391226488348204311908097176338665267031069429496197005040981399244206038244746974157733847371126496639765670115746662418807449485489686872602229040443954765990285276003282897106068286601594089476268846550106683769297306352490498501848791447223659117267686235996079258146877202361744860845228221612696192066941920119615142892814628656642072963124009676989444247245894301099490189137540075594938144093380306989898991238543978049108562537941566699366046009100430451523114354509103557478088826615942962613961203362463040095220145742533304711411201232006087430714107972620505771595343577191477509884543826166480003133420294132684920661317549642882880652590958652582115137043697567215254902892519223770535322167606861944574327051167491859911471220651788427388662753410051119862787687724130261058593359992612894311410711321683426155337621463896488458351486253122104395255167020668463185160589897439603314199222735510058827960790475732913294777203400480928713184993775631471825152589627060952773235817272768601921797684478044778103401240697429046227323014036449860079263349204945837773646233763510098630539835285728665264683252630872444617765823692821966176213675622167800571509197028148796768163973365446252156191515559050663902549550133640503944343834445814120516262769124774625448279938297442361746911826732758006778565355980066949160727128372990515814358339128527823656222224490897709358031201831621810171417309676503219814517227318403394905382423423982370037639005451703745117997538423968791199754578419274380139689409609022190409994783436171067631510656977158198384643983315822240328155952679063303764931951276200130122065215403185136382649378477977872319436621558211868495167644881637448879167714185551123158809984926310493289533624831281074072796919543444656286712639294799153251762912405102391193641241759308695518120762822846057220185436709234244616416146367199910704378902502875821863693555237611857063637245951931491221641903747274512071982878557436697492066603286799433982907903068277410166179940778470965482411598791564750406621136529517327164174738422497561123710469905329275597101674544236527362818966298808304282864116897961646477860402996593868106210059508908851607762904303336910181176477260560126234924964078292624355410639977985680758780213208721562159302851528404254036596219845690320673334518317921505492803161544832986587378791418759039613236668116075886005093238992759617370556426999163137594344999178171221610617294371586646976258266359210715789837273061916785177335879806206566013663506515990439861239385322159611891365760221528825906541196197968052829944603099410453623607756595099905426597113596514697900696445446325129948112567533128681801801501876405495000009229717595952455988243178759865527646758123543240462070582436707141518490633121479132725701275819764187605054704520604779081650326081778951221110129947314020082276057787371925835611391952840572801168636982996313267366397838736366564011785352424819448992606562385559293313794988919199206372853768320493331882724482977284908286717800267350336276694835038434468268706712042425955738501294209972178700604505013792788528691830450438912705599893776251124435598409062029381608193633149082763668366922839935497739266529358049202950528755607693045367915186080927708256949787199068299042239665344725804009635336052098250661319791249122557250571973305091490829654593583790062065104816954012135777542635715114055848357676421069365888944446173269690187081851159797218836057945292552053859257880135474747017884122345805066796980227198804465162595296085397762238427570458033217250287252329391647361012998385889254733214824920480361035458424170175139930364678517221781194252273170386119126293179048688668978053326742266446021737069333189942353368341684573469273121811863605889656709492920241102409625654533613755381573266462331150232340723837279448130430929601878392976368392580433984207958763347796303366329494364133055099985318522788671028131097456167126945798601047036820738719382503421110722004821594821135088118500014764182148996022560963628712620179942657428451625899712157052732808117632605608638916547722617406998356714489741208705212106881052901934460575108237370765805344085397626740136923931229553469031678644983169910619873211313670826534822698883892289167261340197140882542387761689689587118080013147059544892158190947974847252169936689234996614028692853958409417890483382890668181901032493110107927526485548057846006920345536435515766605991912310138796924245898706126785414938898020538057212909934170040841449683192905436379686815504701708921204258561624636048285863942721405207268945540091361382607317812002480477343832402456946410698508413187971853555908549092593736474560261239424467923897381704907859157056643055816394652499994538163820761527842249666823448803446416842921552192273505124385867374813509089140500744305857478319242713429238441469476138455311430593408584860698854702068497072937544551272582072976270373971388299254371773984420555084376372196604007431178777846141671576105611079681196552328380164947887759684514255025182627015310457635391513243340131371847755629405537592384621610969923329750350914368830033023885187583627543021830869523616908597188832743689133600451525103845348502455570112235028783794323192881926980072492061870586964318827319408759032662363127420472715160773942168486773216914091440649961985408406460214337196937167868576692537640538981899611007406641575423478947663504448169611567409152637189130813663320929259973848128458746907323341329256226156537006255503560575168058621580703374158558358019538652551620338505258403901810063607471390916800387441738675139703978201302641828589767035499946667250053383920053603654979265102855004470536222380244670262476198289569976598737441121498862040945598480863351526568427520641876186774837421644375275287743321470631494499539816193809768310593040140367446999441079124368630296502137683767964359590864726843185166929528287916303039988066220962723399879208266497282220669923460997440534069399029014161790097620073025927876393531306912597895093996226149604957543097719746541810946567998441550193639215079779743950798551519916950955022413673157674345075565994156098771606035071076221837608767500255141467926302471266275803406619672620864936040071726030853741181146023481937370325501920888026406193570939844157800294620955364584961696528751137303781664243644780781835314569756713545295603453459304309270366493625456138974478427733445522659425828287975016449287636315271083081630296113040270609276228029964782217448565144856972090002558901173800271722562078753186668897501117000619731677441457295016722803607692695311427100718208100814501495550010736418644347770812224701684190298501384503239833780152675405978833185529205822061695309095986847549963210602245659670059901874251366272393350153004952324087886895914984579406881487404892050554589499155721904557454999344754166336320893245902005513890697699965667405573059327901880910023219242049755577160019557631607886703161819159257120950464820676720178295328475296879327864247379416868242256368143551506265792520783129513482695910208917653113644582896342155712704435157595999848644837027205427583036370226594730088883190295763985144883010294352598801497908128771752979513414509467730463181175424471850438930265523971487085821761245520110867531185166594697896843440616072323853464771424616522984591600070416533558231138567899011333813582867328147203943958669895506344816704612791708722849081114138931676984565851322269795251697508644453488190494034428880194563921601047628837008498714715070048600447709523928665231324586346475715445901312035429932247487178619724313786516493478289763419071152566115082894465992984338134477520381753191709967096760844100818151420501440515167090194354410530051369969705171516936629769023231854169529750148197540223996488783515108238515937366983499968783478006866468842013372257416195440245105411725294054813510692995727787490661826119228063532023226002762093212469168297016990552158281767412571389167449077269670143775707937746774859157077486299665773706639029835450000773322754333574466530047886359990181957376998807095955516631949957189919409339419872605910799352382930063549301702031779602767732971067239235363133936016843241920494681085813090741477074354385765478645216949843440865402574734234051276041107152572383604187355087501619243286230882589127615505881966168239556903941574847226377619545004867416537195235356713020580439083246812151002412859805336601095869056023258405959206121194186436032744687136980242765868989855108126631820310290758360187278933448372718101133428565809003507590377881202311254200784118816274993626874838612989490869615444967060883816468955637765704463510549362464895917949754959962785875378169765300891700623866501952371677185526867635295579292300700637068197047335651554111793354490824734907477215147266189722766619090744925160001628051602715048262925931033151136741075265434595840285813318709282892829364384941065761135913728585233726061126900060149604602344372320630041457708583804570268453094167625335856977088149096240446128188061241626904953219587214845953862995989301143760575086064865204482577384425363194638575120472474002584627919845768533353353279289343711993023264836601946221943864633604893155107979732822939208753511729263379486861865877849862958888590841148585058653626085502551384315139151945403699030509463656953140738471859717833378140790309222776306304303576700013620062677465712937636433857027780626957430476040265263291432814254929935630475959369749643152224615824186185018483239483543212129251962827541775694572714813870815752015853742073140763715658562902077321304030498809161715470553688382977906270744241991665076087510721167860556596252406555845489148582153200073832145526545767472302520180072292221421046805299730373368691895715859662660152522450235500971801621666814210440173674690544964530792431354141668487208551495760085402034717326898836058341019039524374621252960453236907728960965633531006026823388975294722824674449911489089604583886348856279334897690256598806862643762952152491004512898639696728121337285187946683511942463085069173872966465135725519180459118077689255698417087182380387259798212266215745380053460764766418580782532546352790716881037631380434213261068341738599892060340264615942162876029872635313235916830622522240544271922531555850794865002886483170909797307845074547820756539785232282899134682408185025899679438758639899328271332460228844018796279148628194357035986778243639999051308079849696582838572812176405793208212496184413025237895056823004394251669452869772480053284157059827768291818032885985101402448024729494942004010849208482323038191107695528799920942917017819296760741215525365130703201496552404353984199393232179814140549354116700587458954802701101259492363235904163790036687750049252403029810919285056213583149142649097707828771849445299117802799410867765973819225091982140776042695789814901128025268889008011189049878333563603670829843489349687342173321224450368615158976215067935123572738814631898133767612784442184598718176476144037880351704978924102246507572876111110233335693875985305865850716548857991962200960748214663306738275518424654264627351423621397192946999502885738948449871855901019161663286133104022088912402388842114413508969167825181586791598743793920050229430249784108381418773916207872090504690340100835218531516357047929563153247575263523207155005229086401402306181659797907749932724823696910524726787472710371496253195166405059068408150270602394526343934244039808779576147374297624284474630264746155404619167299414407856298220824776598493832418250482530147810701281932389127650306864144693988046872210024183329495569653091361674513549571861674717899894173996416080777960455150312031134514221922783870339700773854229080283117470738282665278957712307836729876683008690425507295123286128700044477736427990498298888864198136294258304559072675509554418201237370889975455293552529194134346197268139753701170314783966848627719635032950375481787509797541305652216665467314775211858568973267149470727244446009136112998604881762745763453402609381269056936097625720231299787048539885907817858222166522101659982663178621336571279398263695077456889769734156167851355477031610551880830729971871278627394578191962388413939347772025555357191214805844635304577977765672096543468238056952660996162001052222569414725600089970726932305160988169259027242798323582049146225021830830518826326338045314124490089182277302407790190338359028719366107532734987492968681446818592741026812640635667376908102196022492199382939409952026559768708853025865785605598508162400117618190584470351129312882152595168979562481021020995146882656080016706494491295412619606818776259414320941091187787679005119570030285496084504382179960985119544647781873702626086608281252721150895624201469179845160564495645602125160144032815839113970704465229398290238682247688129836502681168724246920656204614489884154190066051730064705967388881433374490032379057770640984878088104021919524139700732649933957610938056474479027540740792206336147533464976470665478767963402107529827331525374882821028916197696362424428490943031949771970032338273322772911219410360497571793894481887869705505480776896945869941764514812270400320483420346937252379542794281442653406770590115449640177466627715133486182966831036992487605110302012681765340607492250365475890190303636304688767569720850862310493990142735784184118489449647826530180074997942687686920076418250348635660835612409630734728886157642805038307061902961608584101777430778801006934834192616471690795383250732114572071209070233445350714484993134613991432178105601505488847854002549336468875934092196746762316236410235282884661766019527663959880799034886695725725823994056021179590239927216991441224125427054555928087025640529589014584510679428109970742682969217819217011473427191839825843625782161529877813092446663568350562700325113104140511842704286855933294740041593313737802010218778102295548958741256291414715393360638470493434469141141267730130153874172346605346562553214199998863618138531323182037728364222365270501027983212917129602930751445589963468555588279562083619519091885053660113913158545482739006065617672313311121974850327620289064747799083938221630773165218963324734030042537600183393508241437079107951748152094620307494180552225168277367235378050718952037480215689605171452257271956333500117810543690281819664852916428309259189857024139506999595841208925695862764182384332356096003862520970865984234976636451785554068098445954085213508134382564452755412056315596246609397633770362350461434272768065172560628738930426737047868896558585963837554142009548777029673559376144199891951782287709027741872644374011589361234176601441377264534603504586818325431845973593363237782579079849862258958415181679915398932203728458189693146381613532677059492244256937988749977830384691990887327277249343728384787585761540855703194551385986161936401237013303541488613536809809435070538182108273446407920946815056883639401689408197849370272947714862083404008626697132502846764572658643104656055980947261915825091010116974696468176552455532570490148619401591446412186056971010214698311426083256162808695072543184634931274907945960129122093069853992768263906599515266991403621174916125682249449671078398652644907246555113663437812529280053989592431265225834126451141518358255855541720022244887432234932588316114720363830362117691193704642788610456450450042692293895726249714995411035925595933830289873967026846310163208371299497797635370431221759186736402259071537546605415673419435842177918165540205648879852912005994915599160464592505741797894016448889505456671674208821962617059940455575224499651142474594351558349118544874180899005276411298258070346994522903133226045256077390338973269562985848400278075126945460519392339348614939869226937346469505722052582355569137961810647935015385936378543101643768044442041152424574507436587531702499184591934563833989685379723320470494584145725319877312517545845484542934394137003734736291365519080261252088567180036376083575999184404716012074806095859451250427782525461733382104398247407644235060610724577278500830955054498425959198687061515893483762852945231160431854391324428577328303330792455709479633040875601123814844980023238914357369937084568068433473789780740603551888959360575318664356155988143548731577472673026962403797897582707593183694837456944523049346535847015297970014816774223651015354071095354792586767782479046257514214905609448571970542677959325789286779754996821735678011261667971753625702974315769334348976654715079952468263187502007111244707498158660001910238825493808496892741284596396494601909141249632747394942511694621004767815714136192274538821488009222195217123374102256840243006608510958859937023442037431923378258372996442438340685221496005165211701115153141452943382275743517763195987006926304959769993613412892730029163873375341144897304517531122811302349222409006861726219595319456035040909237472220426066444741469875129591476372306374867664413253731610831930663605804762469453209603491091228887107181382521004467814609591411503935480375918756146810772927216240533824095772554371881207783416318044043725197903850798891254447217389948465367454077756568017620334336382409577974210520296409595175762352028176431794137040650701295455930805511607979531523018785293052562808192955863548760514598897727552801861386055051433139953736867918199823642425067184477443153917641641307072577666118418962976692298015484035052719862372296860256631715573506232107443804850305244284607087494888879499997057933346563610743993069989153230756067609798988862147234253385248816282175801460481311965504510239528312702969663179890640613335359777791335044037937676921934560068884780533699129542727096187485595738483166642236121005873934644421561832593825873351347758958644393606094101364356364979337874267621774137893016816659499058096355584254284573768494135730140090672446726410336293969070605319244023731897309813344567620864324047605563620618001266287075430170348976473284367787792452642890402681390454481000495350400986059895259211473273964015544012244334753060614153762320007096546358168508210195985884560706151019655319842918683596263689649524904097887790084009858619365024133561249237764916764671043332546265806622230820378798556001828294321384396770932753300608900380957630947611842657634911684665467704502438861642735221370723985626415126279143737913042669129859801777812220003636311840022744963158625611217603236639824408599020404079517636828246903544543686955556874936110330063522490963274956231320511939675226413872791077500098001792310896101373360430529972197869223171903905783271185674859621478513984015390467063428044692744023261508878695989733185774847063843069409055126257394722247144135705938561676886501188780656555333663454612704360734588041329548518270024641394351220801273311981492343614489668214307113699825907237022776755509203868184283365656988158908650115434059150376164623444936766266540849610022194545342877639303048898870013793995930540698294918164018718517193627726042638448865298653177465247147260761448432241649489070409848968622420783118242939585844944297031967193491798917498154355031670225367198618591636062049420689798781263760750165560658709203812925040742835079738440958497959224261461390751742243962790354951999374257013032849926843647499003817178510033897715897856234596251673215200831457286545032030518279897638237032746330715593493238646036228661225877870970501880913603159956354565209271464110259213358082074202742166828636808195045054063665956610385147024229455429074933249959988425354830302483125598065589349103290800024317043154436694197948921591022230530323847093296819291574213473909849741025885076369201386215280336426041720898374536379278348731005875181117624194673945424848248463877851404052251889951887794570318637786182716380498531542196296404305921786878793504412134390881520334063778614336246282002215725206342522382484834483285975656354122149419783170154420014337207531080348263932454896219599872496471261511108112223251868278972245898302376029428629161929892579480368646453465331022956485613492242505009081183210845378005399519268214364098183739212151685492692272743636407979251918752436553626454651613390758575838716113997728553923091834983176873850591899817873718392877046596443557582027755311587330638925720277882479397547390403536370514645449904589896750714010560767275243433442948326882880843758085254411626236292509757778263056310696771031391859839970517097965847933360703159824303425497778621828513418784769981177614827700609117213644247526306713429227060541888257846284797579245435806792105964569680950893700851860455985596575347442031155612781397464605221918423939495314823350659901844883205926795263190088377686033448365848947730814326118767617195701598656279965905261889687682872103494648926646539204377240959376582094846161913134358723450589432584888668673657559532761760495949818219585926072484244072295811444134489226646049399496737263606511325070792139449755055505189802286746701202478346195941228363286349888505140989578844200496989793744430348591271940768761411599324910688359624534130059668497449339116855158504886761165742042720851099935605836641700214277489826093724778453411871135909131837617674033935660619166806310268782526878227783077231426206734153788585097579476582977846247176660990271218527400180049840479846677334629906051750712340344113107642805610246072468290161404561267376675977105729525762304562147648498415679800084711583857836898152798197922159413788325627259167811028959682520565489872877046206461728998048860473760505037070287534770953435116621975170084650605895200814863845245062758789616550635762955120746434872275715354688136970647920370241649448203327034836062891790869418469122942044678686834552987495835268259432614911168073428138990732390798905414262588461759170854611489912795575704198891500688575904212320926897451951315298738448036094316742604010036327595426863861881544927517076760470057775019074421498698372508624162041078434134376190379774112852670151885800307852871905180714849586370360033725594522930808888427418976967068515316178914343981404270055266810723466216601509807312752530266153403179090676410354504710522696319276345226977414406298413676292282102559924914821720016891540979424479480178349942114067537136442512245246081811279748931956786493836833482353186614904816928210589059210163739703622272330203008073689087144640170970668446624042129610884048492543704289992527469434713984342701595602903978003955514593680865472205358059204037647068682089087974182904125574519115611795271944531675942915750165911931588015529670279773484314844669007051490325088706681792854676319389223067544686261866939910395173371013883706562513123474154253833494707590268081334066828074246060535605478805343255608212820415722364583899036039955149416423724051875634712034906609291321805656210847342466136615898944807571397678865407463158204627250575031391608826171977202859323214575846206292620906845484729843017288403177588598494966845413037766310570267612478419702976815705982471765441115721779488208708627642609631275788028374441091339789474168399259752171100561270736236732038494534744217522930596411731072204238943792908609815232871396279188131343525278586400234659138856193618675012847587043720032978416567425474947746624662729777371130454617503132743675692417289438481472442494398910064200655679891783653872345824762945785582287229130032251394020831276054403038422295132579803138888516957828412903225322524882861969055836611964878249706677857484542388290125928554748983045678971000816656896394321613888795289232065715268613881534034797974985292848400419662160679454311433439609056802627888942571535745395321206435080535210727310355450584385786467515669472338494656335705743770210112477696498748669183845388659135707007741056796124276739877900364242372486077379876635535780379639562739642002989761500906244968979572905030011462831426862408048684195458028503248891455135572133606909592535317621127074672846559892161945804924830420719945315606476394089762931104353651203320388965241929832722662502044643782693692739323706030755977396255723403807972654959878117998580567906059234091260042687682315635429870292527814237407307447051649503202112403016918889311967943689594063486642254197024323644361208040928729384530037420458299815898824624435831106011199101597071006761239543851363904485898261470767851180999750679952287275625720939112026094234631197171469360147144630141854514525832254091334088129052328447547668186480741314017177664021108881433515596904458902404093301938582501119917333718815638039359221554195868028778877335310111338795598451780576894855344096478495394134399594217924742696314878148230909265058288727212068500156285151943126841406968325145456944468479154928905660300363667527290176229077048671634646736114576201143257204942028258322115256025456341336691334584337660287412105303420935484259870719889750646245779362880928353675509975820100044612658573208873227986939293971803744997571554833894107413098081306506121544860793739773129377828735240408874915294504576355021500332377616093396322311542540148210014710370299277224048005959941207388318366581777986771745574541185277407244525345909162812128824762812662862090132760684538123974915693680878456386755505217027254053314215445491028551112195666501783748112860250714402699068876734969137588683182256475451203965356380302065416512446012647315716319189484652696329187499914950879768469374902020786538665502451538957572229101883482655364319031129322545435554789369668387831595029771114254532993061935572930174545729131806290776145626594510904527441000071263332394304364935984980285461479743076379805646353675129552213186612482100927489007794743657609606228023974069499323902521600984916450003202719850684022675966902289398028758345453576510927607160027972436955978221132982337837890816396569089506796086816486439383619611560581885761014013492894812859434463858741829462752741426848587939633603989548196664958584047282740115655452356936959959415631424357470410098773934113330549255783841164092428394448206501254082025793569325985330463688840322061280331459262154099990017666048395938167152923042551118555225611666887987022741215056192683473310613598137697730076116839178950324517422505514559948826791042571231537650477863138498101880614310125060868088889376600156132899737990638531568146015899865518286987463466577576130831481782639811205732859341039890105175556337493906700751108565522290160850037944380334733473232153465624753462168552136891176903785959774899566553953978752553747190876877156236071804187334810336078538963508165308994450360746315573635603615444915186586193734854945514192506099398864199162663471552274290689934551166470323013651740343563274879048727948576326658215282029413921164950169952169996404005994622667495236131490112398003319654977590150415508543746784057784687369772005528293597514468901442416475918768539290793151489835369382916620867709665738917353711098432087476830519727443123253265071056943606190678785478968203819978103409426571907270601581517488027471459635847216669723241912820706186364270787830631193730013544576764408017028920601777461937758430920900692637607859222999510227891443088133521898541802914793714422767314493400817303269274719692602227108420483362395215285624076556551421708970030214911541457870164963927333935384444723597863937427843076547261495819788328036733426968201518266023389097154323542938333950987333621654864164332498406824443190991976369840274328408979379761528143636482585386111069741744632822470534289809181897762768645187051019587166900882410601261172755626116751323809342285816344518726111847781085758485726669871968116009319045451810333338374825871485743808261687214107022654428623732158967041291261836416832039094966741544137338243522173208579786698039007122476391582475012827453516294740928273403003248482705575127704130451011474451080929926970715880267757650779814905188185165222269662129844218975289564160161781034651109539494956191191546691924410242351898828346859715921310098167322146988255958124390116913185634283492926805550712225911527939608941255044282558112409163073290910975147681893673842200882166519218118207422278142061909936690570330157811422360086585341085382937514233537827264463403221234354241185674658479346758077452340673866717939486143943536966578950458324445794791807391585165653417042087984329481614413015246547948185011507510795785118367264984208137475802156447368181121097341724315815958261199339697066002735859995404943224326898046253412618771596115341952763011072522396082438746838193651303482098555293835702371422005205549116042848807756218786519913730063503927226821369167418460447946621179954311100524927490583373765446472868603767444976619686635980160838713907865042260756702228659023582126937690797142935249483900057701825783744335129498133423172556796491594305259227668496777818514882158495214929773255572944952061525995531325430283357366559879484395605355012757067606375318437489283814510248394051978840427201409608481034908227216366815686123116788986201192866522521813147664739282427510871230244552355057318916328324859843858281825828818978123138502701851640295035026561522570831469155691091197604300130215367389612064530082693833550664534616210046057421806824356780256460625158061768208435966313871764114259098553290106752981450007172130470012599822929904432844473516648064640610075024878399782444605443052261474474960303912513274145850714115781506000713442965057141169863267844230251576387241798635631931511735698016498869459810228177851862780948353952351036956632693754238292625516002295281925214210493168999154514027713464331510124392373316306174517416301875922290834172029212435263359177820443775345320444824203264535460435621015767647596001005833239624194410951929976601689151948781585893852911370688296858988203204342212807985959708086119615745690670007088392142307184320726030805291936849535467328435802147489516594824273780816602582143570109137142196914459498070014157319426020900242108912186184276137079946964184062979237861648744783515817908501449212636719848122057568521156671325589013910561980195607931463021007325054539429222621970907179841109044479216943207859483737647950246169032234404926142526943812159902298713796557026258629064256309175729514345159277574115486415667653326269462681623756815272492493666345749829008650825834318341504866169383125394476357352422759304206968277443074965743011201498717912149204131390498515431358324133494796851725492762081264138982824386371801003035691723127491712434270995052800983387967139548806619825246754442817783291236541580892097385105411579896418996721990860587127792535978470416159618570041146899607347737521491912064305456710272152111806908862770557118753698726255448402845623814722308791228363631233244129711077755094168212487515642838788457621602895181468628466975444601760200837549847440223122370860986295489738886295775098065419644673548409487075364048626927317897363568286226844648750443486615058888482176231235320194849719897291231046623024547725774764997054395912273927763860632489195532755311718567075207407786860147587501687063574714665922098169258152643751868627400824971482442986746022848353501044221700599651430803455313745723176851732309863500650157815063009381731168519393774387924798332888487939694028353768886476756579810896110115018263371731006264553625837470169650286913395836363351957561646457417457657231788926397545395390564506837141171165948220191136598322181360808792977455591469960528267042640831741323742556140619683338480653832536816273595165660492586717361652153263118004136108003459461051211092125765078127786745572954964124589662294663520401161556041496342128917028705206942654757854758347581527354400375158066434180731191598996163730155318708854634230991072194294697501540489784781990351216347967649735193183093492134203753484039103762964395389068137773276800178308848454321895531931790297770441481506161507336784854317740777792041998377981064965884777743290567698628108190507011994230324744932281217667125691016192817210950220962245539832379967845600787281521760833534866138035745933306524362911472530941408402017889921750634860661194704040629094462215815941629684989262105487421350384669818329342258696590934465791144197829269405617077431474722679453384228993777033431269830830377737903070240276737918693713630207880980753589627916326073340393408091965865633728053897373095754787146541841060085593179724722996100826524265895847124996981035374539747835426647520176992886492128867159900756999761269760646587057154949132506366713247519492437973786506935845540375824496777740560392684998852603761505096359682520778538876337510822417271889350508348460350486441652879013106338406497515132126183641619717552193493300671184693633151891018625326079490661322246822620775805787405226704375083954982606052799065995823319958360733807268204773236074775038306310975124224472004219361203576258123609738626111194913886297889017231895052843949163573713413257867475523547373828621932122016032765512652405782205565827726597788764175591183168233464476094133953154217143566878659037821842439681940811269241874393524378539775125133177056671143879915757667208962999240810805504074912943142027611281233687283545288503993232350901912556009562293698448895329120012072737870508881636197944327409576503229457871470872111285574596131964097117232579194941770589719390098910676689899253209405796931939135448247380506409278797319074349343457423199246586015426908780746065750758755087128227122856636211090215447802305397147556771064730171534644324928674956232745381764328749432457556421462326896570782540995781333588425891233375512282102400646255526391045787564034869611277143248149718544793107307761220643803308881148043649598927737014108027045520342908815561865656059215062913051777469567544629611957740806544733832725383906067003559124485678339447116248124851439953204755249441871981785901753032626951501462224838717135325910051035955362753132395665755736921490200182364575724581941736120732580647426088737337230193067583602368530748922265825549911872122726845507085872669474586661289688034660573023031128549951254798689094888522709882943029981196674471074614929573643845520747886920574101151057245161390072394812710637592444415811711295383921640766040445829656672430862414509556281809430757536815698290384197523733736883221680370453795741276331741854692252034968425561997487322945800481947388849896804917126024830590976503779739849427623540116667293580033385088401455823198599870417243716350231480055032618632361786087535589772681986178785322322535816944067567129218355971749753139504314424850124157526492235807289111107415126945310586606694803410309751741048560521610464947386395186593377962437730426027353142633901669777611054533332547807241948471395910420851315161233058770818132713136817528559565291413339653512295895404627476555513556067073255851892350550378586116142694015784538742069042394225630516086834388432398142371118597521428941822455916405401993582575446188345971404051452938204381288748567338914293983686350986586413267870408118165108532373881392886553336295646695054864267277814309295022460906085092556428651266871558319556932350223844265548981993934987013707881967176839720462466660116864341089563763141325934264660468281626546355264972445907385074387143899503344244022060072660350907525042618730014231538360782930492183101077568142375214039019137944517496062325290676928333622267690509317894540067882452370467922924161905127336891975814579848699888973829512286156604195807526065196391831419525835420114623985169095814092151551058250303679397233346210978742870673880059165229680647570582418561160444593809383557305166325910839374726274430956960502017174848646361287140203548710794732745351832822524473304082253620696011455392220608949054279958004372942468907360616286572407052273010245318116197646693919485938298127026291849990953266624732329614918544106010776147184384002357503851771934222301294951846547109324484535806299916665176938603282492035695079251968354126521468972293164650145970901973172832414931575739271174107447653168062631631196200541700752257787074861329487690191779717908039224347903419600219755291973857514001269004469019993024899721406462267889413926272355300903263051157155114679396570384567918374548388020691630756247160387418284031032815356226272383423104982278688024211828092599804273753229615546227869020240163163112007136013174027439539231123536487883598226879168111574055733742410946132513083278788220190805479625493222455896730922017720430763317800119476406413103525691684504542540253462982526659220480128216346845378567590533154515895785761208987559879397361543368231931697021425923234111946946871821936360293435714569123810298280310571646273469755459968701814491298186327464446154574190116102800086231803839730892224923007649656386261282103509632286098038397703921900792379816213801688201377528457129122352738673490196019707735548546727379786483961324118015858643021668424627334704547639018635679064047125340251681590972775509001516521785563509096109502965326804149867789794917898340836050115616061605862870499694836358782022554119898766349823051537502683571805851733069413714866259586996437661858206568654010433141800936694382357247152973511945203407263888858823794738488035839040566796850790134481923539451914403933109005066393698043243594505948323018410717589513756824370022798444309726878250657823850393799730391235808734086835776802128149260870800958823372982190867634917384383329434880001359958417996974959697397234200498559709170944908311625445270444349798258914764722780571645988251673003602945242504153142762068814561259751131361064325621120422251519700367432966678965013821042324439474351364028897585694891498471097350422770936762287694227545276448627806229631194652010692231188937752874656415781667582943974514274906445887626876701369720849308036286024776469241067680463850121490004110357374396042189421012954524250552678849752959125615323067937970779698231838311657369119347176371782796904442993396767228030738641303930401641997383658597016029473697243802198857340915934421759968472988829613830961554543299036145143392541594534922065371949850101699475345839629387067097958972576281032837794957676407450091866146354768369382283114381089678610994238378428035474809419571421581120579316819187483653252417879306251545247597792851615322553338859314357699734857733339669879825349702645373761775405710569086951129745625000903851595754089402283522269946897856866794799942961988191993532897816738684747625010905785275414306071910945848761981275440057830125122867621734772207427837436875966804915109154906283064668286684403642302924577386465135816677514379664378232661720819309118367481901203170901086358311360929926547064741729706196856574637241347921882295711103387095942152086639222707028206366266231499213171364450416097489870042364168952614360529840370227869848022217705736616611722470944283642104665147409439348040664696686406621879822069014597895551830589212099625296653170802158197308070004586611810136030434868945663212000875026056204031636485474755073875361211309860485763635709798351864377988240674168634567847570655557737758700499088012731348310527520339814111557543328795532939832295914912090140033324938767387120641843676617263431783825535567797920328567992012859345770459884874619263058536043275938021616681726111772868434386123072940171209654518624625316964036220178009253299484635244772789741161537693918071672686903033815357458942182188079095527462643063825320364044311449515787061079428763417358494280275338369997534737459287948805624076335442045902319413919497697843374148415304908682971761470502562475819709109347265150416771678272307112381058359924284950541496858422454547876778497412529141290329391859386694664570089535739792753151259182760369873794944135954349992366346644377304840459236799896535215892880423566225084176553906661221992466090547618723717730482848708209674416746413138667789215768475697390153253969117775364251817714250043710512165536363126956470965781101954205368682789981311385855855721136924398868532680038656594346288859055190750141689742520090996109866493082321336522772633733305249517965001131059028428353663725438143848604770334782353398667535856942423944193744261292843109264329133541738259377036282384977737179680299052737978416337816581113465925052952351370908374667858900359079515876088363666955550917791002306510288481112294162121572416758696233337243977901735959871299759193364127997058194653955592350169041315055671099071401394756200022760687831317895328595814157759582171552686761660537210374161142174143536516058765738968484459893116830969726165018240617192970274616236148639018071992345878843154281017604265136062762796928838257830468559485928780777519587077901788695303026253637270812097179819976702215991247575566381853887879878834419313129986644454643141123355886568330507447323496297406844162819028120373177591414876275542196736886246069111481686892637901459451646838764937979155900128050297761901593424406253969321472254142063599145630295690628268948956322708147101687457618420998680458830889188381404747803187196958863480801049709103262604083028390670075090966469454994252420058215471806232797935248181922068629813704226899806589323474194752189027236952485739101734036543991123063331703591397804278244512928340180461926260750808615057450545542195806787993907450894309061849587447089302653594908554204602414696427364820102421209335853684973150402258332450541836435223004948827986149291336311076615171467236086244708725542530277325078989308624288528221658192087883542278855025097142296485876015602617204422404358696710694319557464615511198573528817432588873349690386118748615404657756272759187249467150583518862933806849161595473966098811114708671747877121218518539403959940088124906861709014192028587259792455425908226565493354822790555806960314036155757730872034835412956057703949797168052288936852597685671836028435719178248562680020933173400558174953449343096891089773821678049850631202662681981806965052155083204342765843166518413360847260846323478946062408062518662278693515299908005101347645435941460997029249451128590430496420245645696892890116348777073870411065728967617478239998566379902925692134926762384476543941044779319978141582714180844467904064445243889011558070252730789058037546018282024438106348688243345060057823916709808692102588993361628210255308494511885971924531014104500628069118378814292677189936800351889354982205382585210474486085971035303129952868820324268555359214234100767816008649651365826111743266576214491767816621622723457206656185424337857206698307856603219345134641720341577185566025158730502846770666718565355883040343970182064147209093054509657254265057666027407487099216495939860239009331276387654406949931639565759802166166116375003473464609894035236167128717555135312382430512130916450862366071088390477850114548587372569994477943767221695152859022821963244740518924950854465474231268531628917568393167302639130155544849267362030741141306890949114890285538002276023510767788327877109506486744000998405139266168472869829438904525805414591207326696624831596553512357684708367631509954452415541075124634842773278242303538122338192666395069507516010708948231043818924891336208973542255693910480377950025858146654053086623226893435729158704586221907076669680333165655701065754854839332439807527129989549238241474831152643104663606814648946514146342083815327809936925541863403680703698869191482469397658249812100497761523746036768014901479116704723571161411799813783120824656885219313434651090238687974097656389496270996146196017748254735442440842049254168485042755122592169862383723590893233842578761977336408654319596399644223706185861509540661962089394731379487584742054631026949698371741743322391881687239595606680676029040096415515443415948458135542254181489647350145832505006521509288195491254971593619133541266946044519254067893599769147729224804491114071735951561745677566353370550837741618703518557998467561956120189867327361575566392913092929232834554619767531799744058539871211316069885145179276200466802078476418583199227405685877957855160363821984572339881592909486508686759381522526462648374169913143618839616593274310062607863885334207863288723814949410865211208763841462654681720967279836741866842831821255525735647276474274928371598182556750907497352256720861486954783915462452328418771195191685914375623008009176132291312858614588370540914896079370496752235559227267137443293475415628357195114555239088212643405902131719270845858528046941278597021431551085001516191778890467562576484933868769229181466188250571793272197506471992536364822413795608558656575355092144822947578258725607757039501844666937663064382533487316503988727464498834172007611558383920232602305535672332757452348688079752155222819025023532767429152928332716380552163696805740396658380328996033694787970547652289515751399851122174784139362753698714465578302703488466618392507045186641212915931205896135824219589339953906509832333621650608905392143807552258859096911172004913557841186932626271763096609336183310329379486085684444062474758523597815545982762285332785155716039421303141978287049798150893291556083084860362446667845751264690219339080921915428999092514187312315111043225761534014954091397851690056853356301895275732662368640940426851458650313331462589581204926517498672409004842719632182157437588086288688943262093182938307220448613642785700821308910060697581528354454450996029357202939786890049241569943296048230287169663837435323634583350833157716449111971287490747816762177203407404367910498022717102609307334891073252360844674611653004887750855540967149607664477061629590799853416060688575452999583840073465828878750755478254667604712644377333723860520931769532162150669623150563399069117375576830505067044016262015332102314252810593005575399308241534105729318451098685525083957179202110380875312567924351209919171505309506256795328559905378834233423861885753264992409027797316363675767071026518028150408001058301476079650834451242610917300076020491942846512389671386416155410374946121543010020282396858424176783503974505223313090511416246567472626604226666042788429635836262650555366860660326728259142738288226918231163031234601100941456668868039895229788350127654523036025066312203625838728861009246993297539379074886513535275689703090794004911861994868729646980263766775114871740502285867558757309471832224058152310582422876263401804355121872373427641609218390806036583839840288125769002792585296166639447163125600055920987104929762376018148061853870928695396246225036118230823529485148822169461447437129708446998430998130526905226274993206838746210661738237520275748783420470582779294683363239691885127797048795753398708546451997252169445605902857949139008833618308029895079376714705595497420872601812285863295612098590856157238201709664736051263146449845507112906893320153408740585694313171750072181968596715396703563859507900991106386476003108756503761294524680100057580254664842021748786552612781425603411352184929548825184393242027414658798758522120275536857428700263894877221663264039165937481497551887051225929499418680607014778550192023087664124974194658303894866906689948121224682842870887475882841032307471537369890627218621601419784246243622308673134432297711686083441395557627977870777620313606021822399970032928226951006451852631036607880827078783076261047422484332915278971448079752472172647061428641307818133595435053141066987425245001568992441069325113074242945946819078297702341505424313019465725250633485739548555382740691947395524158536486268878836332578223548360651311891009437082162107376868560514086506196308952819434667670906937680663314559686630948038350873051334996415878616560782083855771302028698865828446905100029931763365545349980427996336164954155786272570452109618923956193314888986033422617728089589637016364716067345363983461877572303412225556893581184079010143619100871056401201934800486242635278499589096691814959105891102222286911666141549839926516969607178565321090147193799673251950156582100066987720851872088824452315712149796859894968052987434544186386493700409358574371022169848222760803381945237857402017831701307958489794741324399432871322676807895355193423092258222828222112407042846220808507599718715187061980014621880171588098710808346557224810893134056314607120936818312823688622919875342278277117190668553907365771768755243290952248694497089335686661180413199139660471365694634898025135169166025647353063868216391908003992349319166701837873992793050220842401747046753742870843806330626856371908601040875832334899479966490433512235400972666167236059788329442542397752063510470856120657405577969499789047529448007341294978310109432330155378033921496587294167939563083412078239126109925574926250710311273788392430806309167478734867219741095017800394870348139822449465584631639131205391449616029796652332136282074278168715990432442723383536302699269395935340090442351476923330647496696698589915377776971404525913883066183531561679979676242741166508136723151872842810690393076694572433090976900236618961111881152375329254629633704447121198762665688544752827274069704446280161596668046730731506409190209847844457406427827549479968947697505975262472975637797219993648484030281272762672176853264776351855505603532548165083819150940778699227385927984093048658177786544749081048908940324172642585557556485436424214058801557756267788829377952364527168159628597804200344107594320161308587699812919228627958942151907721491949856067947216826853761199349167857817430558505243329770287448465256326562077483703163576813400842681036372316918924667030125121762799010822621427844898817864160357531241360017320522237069514476603054154039929657483390700660481557040239546759663565665117997097551218054224260421854903805914968263292514316115704826271196733025001468973059494114734722704629384447821412644896773148539042267051217555954241864291127627875704355251046906091555852344688940747404500013892492897218100812277388454010622587896067922881982621042397240917939641784025688016232174236264152030482272725578465485889913960615084179432073395817908704178807570837524510556717867290590398775835241948192558564696282110029133182223509998014665738599470257236327111324178313037359303253118188533362335967920661933880404442297429191681359858619592346275169005690070945303938861601453666055407788945800928561863801667967327060115596225076065168957149945941819174232985640369520168083981436613634138272775193375969865036429906410546382324441892017810797397911309065342226812650568861801408699588011500041644088099804456142412870292813862880447078082603153863429424672072541024492183076096129347954476668990566683017505919666999835938808526953766898253320400591073693401990058605784590970272967150631652334168618458417703751432942498327389633958429627733306771195685784704413407458743858902094858205792521472878994132943907324652968486697028528615119553016919760907570032732470708169628084410299804336895783093274526437742008686802727738966562956250452255921783139049553326676346491819750860653759802933373839102837908120534103145582280056449565808266836606565815775191673954519992351926240602467075794727803736857620661551786785058267630871405504952092779568388456976002131226587586958635021554644709151565916496648910705365611398132445121708206583624644771600080467373354713442704527600949507172669852772535395436987319596068122485359214602777596742087447123350272399262025902672837443452971296890389064837608878610263308945849327120342504653854715334977975047494695363147688878601724997710274352202110819873487587247014320495604333044229368716037225653565324028802966152676639060297037892598872521871251848058138663195058270772570571089522679624423184716925594416182313121507224644404475633800569835421155701002638464285773533166258085524225298842466971800744432790684305246460881274781157119707190327701712715782403327966128514392819541347943745783342835764457330439931541028837759448590755761070964221988145997391238854055022912881158121498891547891856065953703769221913433850824999304509909093026791419019383830701254930395843367809216655310928897123309292082521470236108117823320550067695472059508853643576886371591985795063961596439161019358578443549703277498667010534236217770175011484469455835854420407722993247454644107811864548887251335232866330591110811580447614854548402981392571735884024595738752291768401621313270400609501272825275315676309647382662880705380293238915279364706915409688383331313428370707588754917137594710762516675380701205362161261102990473964773209163470801705579785274735375886488266411144697296296683957829112052423954770187489473917904792153696478978372938243170808655089519816534262704354434682764538342136312462161227233782744828623432945980731522882810274515152540426204378354717327381983568729037602861710591589612596255312862703013057411937703694119382977591675992038702291139975729930154692984454416914910943467680556541803227524115891218864820577231008811305894470430506636436465020065648499500339917090695505132531197737873134354090278342383476920495457849100808510951343445561968402954521102833048827740605054360944351907766890944578733774563413140109638144826607167862214005786803162193411580275032355335076089302241146085687455648078882570039989773022271962964871664757816262245299013734407784510157214307097342029264682897827647172868590115340004255969734284573531888686948283390318776210074600025472534091677286253720176911387519816950057450253774740302858010310711773099358179078913434983254858898103321187878804158722809040507841828560058827714347357959511939519829848236572048161182294181110722601084277269907467297590679169331156640960119270791945537820828157029110541770825602262179105608645862220319045712916593362484998745247456000505047266207587623408943120306892589346952270485455262711703520034703730073120343354932051503614491958109865419147850162414045341252520261064381490242860968115438726109492051761136857158115705532787091305854645503704518301263970472489963425390593738847269339184991766612568280378058408556277839454896414394463465048560640657245971720345261085427523866144985604413708688572573719699346152968170125635108664802762961044912988249423982587325126794235349833106708822393591254005489937071609049677290714215021515261453205709697384181495312258319028863587911362499309740906946908526819335785286114066308488800953692109332354160114660850590086538275054687681347232276133410828540853916788207093669993297391799511241301826324350515648903746612294719367589265458745224357486591105947418196930469510935626590936243125202874286804709526575969009359899198745090237983160430090982600454003432576133240060073117100036607281373475637690734055841420537003701310458491294964098750642610114360801323014322726976753266503740826351312403940373920742485767608460336427688422663287292650100659904091204814289493311757909828237617486353847099768177937803347499104968801106413063248681742005736385328387801440750539040073281143047064841741245430010610938738419212985540039100391574696126221982665897246981410132516351239910836171158669576540798405701892855389149613341548019731875778264452269264444494544034323033853471551063602247167113743013782728483603770722073968393525887113526265758202964935044127813717848212279899915448864648452515270035234134665096903510477582033556777368303671831491899705927018666067320483485354559161686556791278336238022987553944870630581404333536558537583993787103535620305838947458733435580101258570270822054194754053172678285482820963163087830094160255022720315898717741502124597125080947054456346756079915744818207081918604360119850770961469872648989709307827611998267165156361750443715690635219494669776591588506136956994086244930380032665862008559591835852180902300257266858327490657169786156345579671277882439704797906044491103153972149258749484649609616904800281371084930739671086291429481280608692257024527503779481988898109174384045205831099124219243205246539606688408780639935435367117236394017391934337341579075850529142032456088603510215703288826773035015818434727002327159845329351578469333095771378438702631204541678470905938780473154267879119427008320833165286534745745619748068199253607675737802601666701006913716737005835955017976650506448035989013416089324362364873125516223338104584908786474370725257620653596213428952099074421664792154393780965723607861540399033320646721616116611577242891790732461410074572789473501066910208967315081385641619874616679177767755879821931507304505283412113461029331295926862223999791497415750693488621690982402319278216994032667039790298727953655066830459943539331689123179165805921614435485251682489836965234827741338893182735416370948840283187076040506368510641918638309472614092791867557937300061366800544254566428394161325715245669616734392604030987620369918599688025288330265015827351917606073402457600474068150135352692378658608105992837441774648587756010080722365543686122792360054955173313051737561945365723821277552156837638045390349060549161836574269943106923482114031878507375421327570345399189746921072853206198767482508228502940503344099965988797101844463340670738532315439627428570382434119979029823488132868798374332870197904825206624406228001990070342322850294601323038446781432628950374022820942007175067648074259374069017902620346341917055148019934308663823411297640854401477891456273906471681623451620451626244367764844354681237798688487811974193381687636248571859025045837332024501597149099274810122846945756097966794597565041075888532612437013773481452522462917514562489001248794692494005913145646257012639991598178230760431109662055773910711744970056107533702119444636461413380221239356288488479950005463617426139934494211337157438234404084056453534501671632043054327599340887139700848636505803273280883606541655388126962360518546136564837976387190486856981671408624611966976045626685683006920897889664150421823671974628459040678386943315060183686201548046610024656250388631277451561851449435084954263983008924892705543564833217642748320806872310013574465272111861601091524984625755179644056688282822320517995006418351161664508017898284929098656812459234232618753826543340146027539658231312606593372177290998276899454355526605209245662616986709307566135635337624727090626903974423504724695387035015471173696924951694256894859809253027972628664332478325611949228645399181611777310958508523093050816770887016323323556979261244944729217344992953519046784260533607811014950714731681750865775190668538785424269739285733356602219553471277254741292017428333064961613244308142637100348936311134768714450230586337532158248040153280687792271413801344841509676127883216330506844337964578931068559971916199677031355347612295513169544398148637031936614535113754925169131414048030360643548130184352543837941179423950971465983545014264822463897137973583504565135099996389715876759101313699639412846282978433564948846977587685108673718618178990574121652104824888047210193402798281007418746948184314652108226562749658145248916276272447448162334362351061359748998280091992340446720684349602709991679815398862232486971538626472417156955697314432719474701918294110519233963277203280112258698835098510176487298345920184599287796077247543953069993477469552906963887372009826262834532517283969732856018370322388372717496756740695906652260758922879379991996586918371829842866200517967305815471326903040022351122807479537371588996735770204247596628218588204218059419720480482113568292597187074117974748577602716424301564226657128732676615240974283460901894090867687602265362809142700851306452967507528805363482868537101983174780251155046160958486276607336900555361605237569043740196567608536895175349044541278555134710858055688245012535106010492010021864476518428806194952155782468815763531140444386730735058380925500821737036218771120335712580077950126611612132937215521648081389369543588010821553232774051396577744369323220040891471917455570038637767948838258758526620656431499546014542743861741537314173229474481848800748480232479751292968674345249117460246640728627608513657499814026369600786476342008485644341934108217945387031249819378493359173717949479408078834289938695808119436163246360024762476170958891535154337977548051673645142920801824477644559095826549159874417092727749160608321431096093102253363144288995500471771306831472048352617678474336572403689613366468213444593362934005971696966925651959701957215265129578390443721985361998493023207459554983013850765502991516660490092553474689250114540154082684492842900059594166803425576750148734870693887120345742259656121915074891545498511758411950649903528513673212316150539550143662858205788324130478648481254329576644808206007496936456961308296700684121389731254934238543127241101056246894261649330557078687542987519243933786192655188863660801053846290097230431443337184792534342437752147170825515538015390925580770290006454503968268926220021561419492317956729459005843089739296376758073166670995852231409724360818686123111599260390081378471243627102362543607950282336993403930680154624373929253713060842706164108259873224327111270183852166582056427117399928894313851520903469962428733420390783516672939343394193383811162253055399944313146764706604383446438830363798113872783460491325012450415837137887909569160255033627029895340614102705931850746944386464897145867919665624672874283642361759196108124039694446884829850674838373102500237334886990133391795120319082516718286048843077394781374591256516878803086133180499822426569651138877230553803974249202553453245546324474345750724280116674961528600464061356092660612353355315683361535393084572501010744185077480997736209856150387655328301950011890866396551166754623260256106496824528744356307039350452274920355228269360623854746465677894656358373576973864294658590913386749072804558716298426220109207787004070753511637511609255960375674577979488056615170708579351326790355928726581878442085889106126882568006101446209772347592997719733375619340700103664324425888271455390608835854490403438314160264029542288541998544906553410220651593195807311758072147157688482600647259210310679454648464789973358865582460164588507063914530176257877984824804265005311313016571524317132086087450727715206879762754726021622639225408346127618143517821562196310395606786352090549834955441560379294670984569227472096951989389382457670752034084794155605379736400140667812515439646943325692854747652834161733971780082861198580831006469276095022724577697932704763567243064508486451231080261480668139805882589732976381439724187936816621189698943261279280818293268392760789208469335110201942466159468411129105468061155168081971782584584643160936564041037896593563013463742342635011832219941703443582079187353607070753538385834750038560841515764241463066463998527198655687213752244268109644421602129254323402284903216288116955384154992799563441081240403895429996792261874743271946135558981786263089508288774554058768618644617297504999298446224462568712840989882658576592162195937798608782592264021616326538373409576517202297178493174871079788162079250595535878824588420034324434035872957143956989420911295786663466072385295560191361795229657000825463452229274191666250657769585989074026135091838290627781933504926462566552600800996806552747058015628589057130355832295312528444584332513215287918668846931719291224862595587627845348034637467145040712547406755991907563895055867730973669423791140371662365863503880458059605760207212283608616159762040723397796560798254088312905233941997050544383638236879702021202994487926356050629388863327379112408596773562687038926341955957686594811263140702080675020592430833903710503233399676278289487892814066848611641570960136462788058749763370987498070710822192106850618700177756806812922291713673673774812355224833861741546309947902743419510771802280748198778038060344193205064895692488900479916862760853039766437438140252341297068541801688854405735380326194293948657214235615208150370497332433604489444037372000026974187111090131936186088937942057504965054437370433483279084436893428910745217834893195895327471700391112016537970313595074665380227371271123493819943083455302128234657951429509138219900033412218489166555827643935847867957118338384701517832689043854982785811590529079788007931022174924773085126474961425713139562958771218266256894037098491872225845254394728528476396092004261652006367667692451961230260913089933597038947237184255361793530232366589422602729577530507272450105326195679340417851609767645664751367122676370155421189466302846834814337018485441145255165965607526845369276653753777460719848575281086450384584429231361646519904258680388133296450723646654260627202052849533241826687385059470066768707447944589962673149203957908365047909635092492383857268627750778675554739871691353451516256072159651477654040451149077289771243787720620262117955040288357155941648101348410912584752239052886073561531748850803145540140098993387775374138801147328834690810751172951200807306514670279983756095701950780522234776985005466423636427734371553504414410738370259550000431652517445085441600392505925481733686629950194580703348153176154270510005326259238971650050148000152324907183142422591541747924232308301100134673620544182433207869216218970082729000451779372336762063248731320558184871809527996942213804272198092239994044457670666562285189144405272719928359529160528934678648331936155266517113581191304286843791855588155748024954609073670811746529946130742122133345354381715765420988617051768323503094120626357519068017381181101311224899394672866269920486911512799330006483306946942548753814108612677189785298030565883655499372008639929657918294214877518722396585214035313376813006461026945921932018260494624189220659574957482751614816658313394268423576697227601520243400706614969170097137886441893695649868466969164433946242258685318794355538093072828498879313514023691376865603563154598712598704608345030599104936542637682036733519452688704545211762031348913479154170901796049573820528962562581044078520795630460362762267697857896656540603203775572691534729688344284721485919642397725354036680032430089748827487073093652729362282660391317104055187656174085972180598481043274893737581529671199780188036908988675628694424456677869057930398214020487712407293042506924992868658637542700090983468774363070391817639733842242605761870468388083615385267114319593262050040316566548579238433243520098673815712976552304714159405917393799576564413059880978808478318286479903172913443978105548700099940906223761312326495141365287567055818262644571577757592332502275528997586008673594684206202986813048251045930121638541758026491956048953342134946144913438984329050394683634409716520560098901903967110513086529768715367070397676181156358460759294066621165117163287579451710248823447070495497225149893637992283426526233025181094689511310437535870639195474075098095397113466944030589593940664578448979279615833117326244706504869218407140504023412584571801654291861860573279018291640085969081459415295572164228909278973671017834600591733015854348488816092504971308601025788509667918527094411815072520883810958495249798373882314867933199610514519209219039191924880825185002048180563802508788856655769718628623527886264995889553355159597212802384522545739372984113120092640876753634775875468627485865143872421688194896556146690024711254118830145661870867016783372490172610962765172086221520867876950183147173739741146527199000028617161994958470722120349869426481410220552655145906979782522924094792810759783375321370412587862371366230362196437053657812258741637804888162787016184058600520864116127123506605803632866537548156395381670611449054109106977787441847481094602671759698948274156409842619645573997074332906221927909393738716393624045007295684691258032483859714895379456078742031188863562330433070370773623628270616350063414756225366378181422400598533385118309889714295339584596770308128726424947565299584859947043301869356834449283246940523753714267920627777004758143330844329689377056071348184799522327644318524690139894038253232250723153659521946184073499167750403171113710249935971101129150315529131948831069281828205158116829323534437988102037177971468656201606077374940586101074939484498416456038866055861308740436000922832529022438219932170288979954994566801414754615977419648974432507219702593023594091337078211571321052766891894540068890771948087336190573828197155303179437054293642407534892842298639299521859091494775158633778673425636640593452584988466146365256835956191854321004444862072269252709193189160992826049918950491285757736660421358152183671403105643104935324255232840440093085705517638454311572158099900686352741612219660377883093349680598241958655069211634000806648356834496396670742683710323910110904949518445887424072430136219769061663913509662642995762232619027080359900636436436473798464936626773124286491915702179996017563326852126932428518902798020158230637329485768888870048945326110636976450733149130055660523181497900674453280035969316094509915447262539352028031377527497070468382987062993489786686055334496725140269787718874306999626509373528323893928539350692819354434147469059980360307894666264583699624863080694410813263333864046217388719721353848937449303795572381758816448452235735568785623491788229567247119992923185347069260229841949290900977396988253306796220938420134475331156195805925341382898485855531678231200491987336657310302662105308424081118920683854511048839665962565112180957135841102817497958971424886234674700410466411868537504942863839298650888719512492563664159586803959509875412282766836531148648548825439597658075178359789420748165647711888640450343524248752786817632801472471092336407505406321558586443881864660801656042858589703985048346552536932327490180864392119993999208188778980389759067125812941195724907438687048327216388870766835294202763175657288901665581521641880610052482837899548078732588469803599413491342055190162471063212356579518634012481151572507142919013631401481596927234712148414982854830947002468081187709116386521740541773433814459297172667028144986694153642544890035061221911031047920445510131818847219771910887467661399883876315598482012750392323389746126664875443487992291647670318162238746068451969808835574172125555676438285171080826934618723979755100644464895773774431238912556526344315309699474277119379792311810218127214700332737105119725271924277394888634968815593064476129491297033565678807660087788743920234207559370118652816204131291149281850592617573391543588525210589923652967448384283353551699960067399324031735910866218999522239187746728738493569046855823101043548044142485724062000129463199523974409982862582887832405510858381241060883701031201411968709655006271252039615761066026240394107295380807427952190804404239685264132391861786863370245364619752795998796970222691829042208558097500870473175127160105379382129858209982994735021963455932440201788081352644794137219064441587532658020923954267336154669002610334594058008275719937532023317311339983206933990522461865715348072555400387084593147150256828693392386175719877739440958331422849757102632948409115184846778623060676923638885718720388771699207506885021404748944175821662929239651399925011244666405374897108950286683007136154804980482039506503662803068154565454832844792364872715438479142528359811996147694300495758282522935329146488102089084066950812457186730319586202892607594782761281756573300583480214133311425487668691360592406297501778296510363535768199058899088015227926915912438324873623911145066547132956756903602462205511441991629741855806526657561741102819150762594406884746214617536897932266122535856901588240596532181959105975408981579547953274219456703848403294533305108708299617555843385861231135277614721413029242359115126261432489400895871205870071126657997571402871572257392171606578789872642805904336364512106190576565689330570077817420560627826624565337974336293459262506780014253707460672186413832239792430744899209580428700290982827448774846470074300146471658722196939347794944511533627582304257409924447802420068575191299854139036509641984889369489991597634874146360861409456255888335766266092481473122964639828240555774236682403648460019514666052651253562160663219210425719544630438543860467746713437325946082540623618193879806580238154098574448915609986684880393151869208939667470501809348253320233250963816195740232384699910294663141523386587013998140678451139774352331749835580317484796040504941496068560542946029448284445490319370531464115806858776036046782594508417594545849949886554107025322637055587329378106009689538207716896146342081639984174205519649386628987620245501488207376035897345989975312616933775733453372193459582220199825862700246140401750394561241732929072124870174765680289531842037712740504914146524737608294074340399726910173749463869697909486564671950378592847692936349334505755746714242841224961198495866940444252472215749459463396675729413875972587870477207113361784107338391846577017473523627869530309438366056242501583921596852380930227408181039956470705432195580939691897257579985324150354131598902731824785267124342170906389118398932819566395527048282748669551028713616519746349129455512464542904136090243839518806610714539367307260250504513286767065714629458327579225076090555402420494875716710255136676604881925216426608752407534350977044680824865291973632598190180449541451358524165256225428817573621444240189409062232510482548721855789187705645922401783143087505736505170712856231672937581804037672614407378554582611433603179757941711973450934296766990293428052067216550295831741626371800429134321011496591811698862336039885725627735370426826886569645508553422668420626718563178103450979996327568006070081506665903476617674044673043801086542211753620270366743516011715893606600429121117984380829785904444787908220052131653973219494412235849876285770044401667982045487035683646771351459995202934985719352123394304676831544425552764420633985278343156217702452625028409700833944621806687614112027096778738430957033364030817261413828738234510659654960033597896909115290959269248340806188631326427581722154909266246040415218295496520834353701110868371968462576986885749545907367378569293181093250663632184517921186611408503267319057189585163409707410020085709487879593728100596928093401367891220373667021818783087563429268341116032384701693597785947318203936484299953093926017903421988572300759319656471105624492278076732246237838824130301393847355871525894211046561349809144819931076878231725733816089104380757990925110206313595292110477314960155154758584483818206839892222958629058720420152699915968758947781559652879718858827936900022791885101525157634783877849337262886175063084896015774594675223520056883635215409279144290985438369528920655213832549153143731939808464182232901698827783146863643258891534886077157037684027106120841427390213771848330982581383631529331395399618786097970887029971821306504674836849124657663293694585396582947020353949102074536748271748842343428325877515181844057675391861915301290201418534376666498898560867156342256496211321144897587011351638599766106550498271285720285642248419654018884500824944672476181210071633130010692926170763073730224708376951002696302216785158416391425705132637656541405166760161216084740125021100791576304304875757462210265490090460799091291302958854054543055807209206053314110084825805303432535173023026580424806428121542468483348575492458110632810281180425406521391867592741096683130873408546590426809014509760988883152781619826548119583186185428492157242540780062295511238424185522326232349170710351582014929539915528501817122387000309271966460956797345803941330195642352950705424010799981448087634058122581671269633644181588540059420299488422118192161062940737284717350128197282792679057566714076950627532669808757465337027542421792475208700485921271078884924977889233085360835887429364803689657332603472720537901095152078238987583168868076473009594474216417538813590957853067711419015642160577587695148771186560593636463394119229592074464419290748548072928478073965998619540605695843301976783353933682114238772692299931555792809891336314370021451516982921899358248915486031044192413677652308281025474650526079572816803157282905619141359264880257942977480432607341731983411509156074337690066084396148001901135013169512218682949293163429278333799963732790545733301591013953846786554486971693188025262537471359439155976570380800023870114659233323418737056752268343710346357043885735984969419216319299612420387930507609684074606560340708725825008823777000980039684360008795921817577730179739158603936925859178584497883656941579734128142884663290932414258686575662988032347418462828739060973441389941678183350752022705528572838638120436238715497469419283352067961911598642789916638994059238870260038996514794061720106881147672678537467523251671828781757939135712259394908959815253470553249747811334098085885578667681075226046620828246451111805918162726676400638337945433783897061656620741361656606845348102114861114692973145665427330122368390645728014430606163414404687782805208672219988327855360558702066845185388115919117388555269698459906876911750243498437824294877458275771773120489327728198846550663006345691781954599178080504375500869834109321772882299690915636560012398200515089917920447987759360472828722433131138603941982360320566316197882351575054802260496551832916834538459936723522363608215627922443290191018828443621385338664157871528553124473321588476250623956941187759033425858522724614130586273116876868031383756938492501424332845517564166232128122107415404456271730312679227558171266077721429309508249590723590172576181469651929191169889387639229862298480113281169325048177501039754586526135001967584565902664245960619949698619728342630175747028664735638488805839694142061801181973952968011689739043748007511193682939288809135574650999317853188957526697611419251746953152459915342918676554599759548962667809980647453391325374251927644828874520329222717263363838463639128576147587018688774669315689111539421705116590141279298143828231989140341687329578954256354756676418437560996044400607830522821637052339470708539575620989906741827495758050026481838687737169779291193511778532940027811318156565594282918184911129096051797993504911566336267335639800110863071017662029036146938964598115784557897318874237623058712180519136440426408212520416936976179520949926297429546497933911408452750745797183045718435423740079882467878887042339758527348947497828614075651301054658411347104150958965556353727988208676694843331508007332906124973042092955129070601894807641269757073210572784820145326141746465133809132142750104282619618341199031184833317823198968002936432539554813803493962491257261032032841672310827564102479597593266386925164047463810189833088278825791026857432958427768642780617495911872294578685141784938400989671678931550282200754159572695802013376434776090154689783302999157929270431006278897685717235593540510521994087788057515391129249950610982112478562431196059235251728364812994118242401135663912339682319615354147205699436894424880100170031766364896468116899920958787270953770993539918821833513289933358825298234535951503383205965875535321263994564868206811282461216628495152422028065879841731283045852813785536151520513178250486515725905702655442982068500551333138258151006142910713422832023821893087054684184432182133302768043936527766308651680611331378932905680706261043529336773060700602213995509636313996442627435124447217511740961872383625661009481827545629100352617799730978001030595113555264038850275827676370195915998877629665441205412422844767941829631102799970406362268329498216735901130904928640650996677320570175615984315475744638846676387061284569086424803242463342865606605832088371160056649869083118653838136719240199869126119280335567329357626546473534213782460420647077722829567961654841774506434395899583695785365951951588228294488289285591030688156736797736295246568718149820843566075558531567909159784492447333696715101182630120261688995905692492024156361813039192324579466446747404684203995298632177858183766949264203641784245150908438735258616211453271378673962801515224274122370408963076823899596593761254918649034838831478998423475627837947972861774150405132419558873836945274443344532954411981462862829626175737350189488718104789881727966288695211416658498891301024528302638719380117511144179199763260091952058272742934671496727574276821765614804584454533994895256571846370040260264950670519880776040739451738185781323592867152367426546245888399811341097856058730084827881959623821570763017727121931701084618221531708559896521896893389065889896136507940551592659799901254950010054861191281165003708836973606389414161986017107915058041572622689450924988021111172832977665283370998491913830082305776737345485333293057159788801194865823112427129864040762350309627056534109216723945474819408379752504372584674360002190867590554319115591834059051493136190100975776194719691017292444600067640308661219770728098890097990383299521376454047691226592083952748588659879980962548362794716863080732514823634299621564175158668517841992892600344243503932613357192226440426282030073262022755439090295704159229894849287190123876527384840495572994791752737054060458586776229368800237105891415752137276649713210618976875073622002602483770214586682534896735873119800161136127344671652556023128262504732141534073019304513332801171234873247523651424351571363903073216516991587916600866300323140078707113396064719594403465055415470618902180884571289743144742001201478103649189432555641324074259264014585912731292807041103358026309989698333528400979307269521452766082927986803505700501551822371511060054732763127758453044404927352048016773457864054025548227352014783946334313159078083164819530668159547013239894663501245342846308872413410735040486396706763947218680239481571307114376522629974073873053400568642848600433894579452705412863255945210363831482466481952898966564941136025392754545274313513232569350018117525630325834851636400373968029767853026502406937643267267118618968774987021436556480668584426939663399887990588383480375292761769545376912917544915964381633851239784230500179911471161163017782969823723070254820272485670456234454951677940731461345485294457120803303495000093689309627601656460688451919050284585312292341546890695864132504619448257040582819327801183762361486760942311893020987330803583181380635737772922701262272465772135870077105588934559052562606197648722288408760365551054071448461175153935473971217198534234021586509268949980573671920592726611221626562066403895353305980757063110695249416685300975050388675556888443399470054651871905365560996651254308306168723004975228952184756873998833404483797658736309874488931486266562574779955391396633500544764424798770577344856624500109506641265663839027201228542159050921883976702013825244121869369775247315567162968634339663818444994162438744953388961447761420269442600859581524099242322818709281755282159664102621797962520301778129576209159978551941664526637028773642361973439452750989394795243857125293396686773076987848264818274995296261901874215597550825950723110315782517949281794228774828285611071913950704577688994613048805095592527765732067675613244137917442567898696389269877726656341428407230744036701597436730662285513060886091969964910866115681888426437881201173722664311932509381832349426566718062626640891058763785214180188020154372665184816328368601948388580273462004852568786898655977695334534128791421956739263384465659006900537854449713751868187056048095193086008626546075504940846426022131149183538554272987429573805065363754988045921916282697542758535883193712112358745607372524690441574009590654524835561739121245769834659853870009519739500606307084700961117571655323146666833654011988770272934258432751184388666931465215474100879702129189943060801662118450766835990375362543902164525045904291693338297833701999716252087155609061773400765969229404242632071891809965930709760846427928072425513889386658695446980378506728488274671307603824007519711321306563978905597343176513706992387696686777665348155170535073572064218340782665650631954501238461081544525924684342749880090991439988170719238548911864551720851601209054622482573194764680373779750700798351443375677829941965361091719398192584237748389789537782076670226177789688837235221680180420745192919094977191640337488960880493489498085497040319668740757755920337637167947739046947853941251377288872083287990123509542768952308545325393665319525981293747518093636124567638421604431885566693246402281372612194256428046942000476762780102786057749246712897484013390377437793051316774385236395061077607346982790085492884067337297792851261345801692971099041986826295258889360520617340189761948158072770400563790929063018226487466175727467184634598865321619736002584389363081190241930701713526135954421293299738114181043809432511990546450436839192252315486291074461160755988828254704164973204271760825010254522227961304218260573155626088476362315161191895874560597028259200324448596511524590202022962842800629141291005695088302435946137613921457740098103826251921611835929175648659332824313321820221637226081040332784884649241260995303647174699151860931063611651622449884037709065616632396758985048624551335138474018996644339451181742199621582743610395669339744601144146415151766711058477239835210261309907508340187776863901376859949475908898291605235236320599767438282025938623589501951001236039740195997480613072300991394659384662255477524676578974246774065412041964043300718889559731500757917361444518492513291849959136460019781006684763337322337447046788476503088072583760517744815349316377126724664852736056217527550899586661525147912064808147782645805297781793988921257507646718630952295335350621217755312001142070940087835533574501244118080816835638005288989059676816565517820005244096363149757243172284889817751359764616190686575362051261899265954784310429591316735099545529447330305707897076736928805662929604371790408732793474624361165567263977829644846454286959609455832514266779114074852763086463547098686960706108289352438412404900769839716122103733207187954432778593427873492518530635766935251700541165119070377927395872282836426794733138225320964307121186005159500999594166292063470910007550265480233912172610638817421342939403697606770739556485965326055523883902324730696457225266318288217647444599878114545086220328622016766238203922619989339608934783688226294837149695479849833480487363072198885598203275852122541275361671757550163965148675648763615089206787086231484952318217332597894974153545986329979486089859212299455491720830469558966035171208611709632755539753006319431252972305763684623597353443467903999013788528513267672381768972145860795599292913025717373435562074168665420684368388471859524731658279089722666958006989654860864263350357167739736658644352689444224160782022583580779934015289640256122571403527797873479527855775246902688547603096036736029841246029570649784426137629533705947494636233349305442107172278258048498771678828232065081696713512261105890742121581572781328588354490129736636695298184869603660094211099523001721724534403969756075449707596611028174086622072128485473332437294563323854084435440029292163134532618841905571252196424077658059375611331628684162695257949805489332257039357207710008134609045707755862949266377760583361838614063402145604686747458893053795558109577182739808817954942418523570670055546353464426369353606788315138042344469641841657753063523598596651210730255897679581653078850786795972016959757957366445382953136588966668550627481815219936963904449352275384164525293972749881781422685645589665666466000012570069702005748984368796874757531388899726481693375926750926974672860688598082768687328792374654207592517762589108023140221821084440675834420317364024134298556387234015804507102500795357975454544613469794422081239960352988413310679372644757102756091351135134224819571901508791550602576334234277757533543654659525187837191805235689984930649340510646851155007841442820046507200654228248090103168654809560403438763400978201264749028508104619472254556137889244441097827201583310730349557255338199201057633680516239589567210483666660870900402659392440371705193006915193841591687948790643678560571186296421420228403537538990741356034517943205426309283007935992854058175493577002191829062748633872048661929261637709252484318875595974999532818657117077153264307786980911310870848847566865644894133383575427850083010348542199289083737189791615146745318756205285970101613974162848667990471679756196133163870417826263135275410199352632761573233603139440586610873123744510879746075576666174754298438779911806089366860818326135784945686668978291770002337540622949042580604907744187655790137522292736872363246873749995092461796971761603353304276578850468765829920443731860232328878820386773377856982109297894316089635632738088153219905669674451168060527334216580987273795381725355723945028553434271641522319958522350220500322540457428875320152053618570531210495426783119290595701486709507705616982482001716745566859971747491003933886806091130762504727176414816236207682175530497906983598291906480095987435511094669767139773920467146727886227574624161183125271517934498507439668314170299832058243276377661885075503953715403465759271318478116663653265894437976166662063221359890548160164724668534999150004548901632539336419842079733369418580142306080675247279019459962259700561027579238804670855044044003817975409721404657101157868430265657743486543513217966416684701354832281295059101555265549298497192285006685762400241476215709981542041676593685710678494304660722944347627176333488248920141660688954087334903095283177172957871058401301926241048115608445514823024941269927999897375073327099432536681994534149334166190106218440860682457788771105383407307097077770788073046449145163714792251632838402860866854016138095993617754436940100281568880136127058775567054471614057659988770177824494748906664953348433054805450945562138324010182942731522026280811721346085138054557629732793148750886087736537371062292521599721380145290829504986217337491230913179876216357281917195873274226269391606337810724273481975578105881032979059449863546342788185795010924652130360929910304984431011624393553602948962320643604516822986382379604628513012130860484801283965461395090535421783970234013291312273260650523642190660801497748665317968093213408989435299430435715623611686244899271151373765914827022750180793239996280662601525263463485605110995635433694848578000906922391326320351872742425944298283190029981723391104660138570075306328881877376456911520049555226721168200506329929865467132910025527811503189139595331919071777226732324024927841286378414029865582177139432170025786922769157480763636196455598761817343997354647082232531730898500036679536374235535747385148408916274093630082940232137244605719625563367265112430290459799296874928711289596349994494531439961089771161536482022115142765679581248313025650314037448979358188250160462610544932304592910641697831047895013844811782976501361900499930054119554163586622503149481523042816756104536814060121882774133034669678326474107137979435852692838331338090430210006415491970440832268139981744817956067458817439765440653049010113175823105352057244759740684846603744489347015394753923502764175437180560720910355374509789881054717326954308477020374671289845987924312361110614343857856524489998412918787664873008983168205699351208937450785115189462631129362766029527703615497494434430965106838573237318616389594467686110356199578861348267800958901046254851326267715666035041400100505648923427608501033347159294476987133314047573786656883888288317353288498532095264173363902815243240162541418528976569493389089235707331444892295537181407903830418852493168251770922115168482358624968110837207727081178094859901218033855162586055455017025636731036930190408264485913580661644540571624776197401289988272544534316103806880950906197377975443660551892710752468124822943529388716684349649112562712969485370874122840275857049459967423944845176191039384781309791109064606041286741631309534848600928898838639384731819576235418424259358719558562748525021071071590759384604184237586318611863190391296060779702341756263748604134818153246940799561798153848307485077570989665362242870312142271061791996940970970851509785277193163934011993641460264735048494819748591150794217305739889387810143919470035923594978415212597248894810831023209258031091182032194918404312877796942271954819703107564213635959904655716447611705944677143051010859472831615642638956260392671428395198742441560378046595546541523890858316978735870167332354585556432905418981860888474485377792195454117156602161941495699361099754281981282725397384042097034936591419453887671046483256705129884601121224063691627436358132574584332420338744505276639831613974896835885909119073530153043221457737249823419704975617601888906456051559785122874487533787614957785889871164924540913383403707966876686684218173336700098493014672626007944370253902798070102127967963159276004660439236091411276755347228517243031632402196425137051204821302046451991709419846764568811597978611879340665078130431586358265011886675524424244197337015731039646115259394224013191167136019521749619814737594728783614270341329387644175999204131037204727478442669115447586807046711398843455510867863037567351279050967599505917890857096263291172735277811106077897202501647501137209961633849401557777865711620160810547155353312029508471528464404303450608595203033860095550288576215486498394418403700126828018606416012265553472503604011876708122825809636361800753931396746263448820973481687108838009471017930280563716351525587102531349085870355943820016373055353763481010994218939139912047123472227237547401406746483523348671547552793661498988734608030686591980463431922801384895141745755512711541223193729014604084157269179088375711254231599887806625635973443077413331221522033507803779452267275243773876239577126127086309075807630728500827439595046489789404767225668808535587846321812510017535609110209572903149828104952036109427913292202033248327618251422415335699737758189677505442737820771510468160754797150913346966720206969251725472686935110866571606631553150829619785611714848582513176094218333795417116819393875432884460026046806853995560866635140034243352088647212156719183356296694032196018915051109762295266679132652031707636798144929609053418799520552767332768553944477147930547993559002476322784438111683190673588307065804965669751385586613435050765561099296643371648950367123031845663797332286238185958855064400683305065473739175472138264786926948717592632480000628086274831735421288244615878903248980284175160544018113903284390288291487269771363106201586118165662239947662459936409049673915376254975648067838975763630267649128044656920275048865093755883488821346425366492077936385345107221176742835942347896229532363233493910759873411386191293148975310416969246426679723899912297876076291038294433515641752686610845087105963588125607476942653882014988947105519307364366692172718089860466980360758924525985229764336376586835313585924088534277344023204449441910904781649077758613962663375047913298848600843019807410771365229493563743421066285660409231780265919558820873150317545090446884365393156528535861208646506375701074610917757860702173492348659293193158289122816334464331940315302671996413440435865260809014180404234299664614724214432953928307220015482634147958384849604660939042675956130249759292222559994866703876659047045458906313813041248578157057379191029508066723846190550994036729022870163269919179625185599445648715455533015538090764861350361838439220711243845126095881099021014943422651331475744368035788729077801706793913158681240343481065293968264319115566688956717909456368506431219899411694468852697975165578251267476434132358802317686682427751351866375205983228227926709195934538534634045439308473057242409710195773882288019205076489892969127336110125034863845429931682471722426111439173630639134118743099138485268729851097369544258534320448874037209475619572778577955320175489280913983791178708298589571945515355659652801416113379090945661415417964017036709397682158525883080721306907614610143038583936711834023251687061249397032056606333806186848085946450309944278252198463733300976554830304000677376086129602789215913741431212449050402316519917856176474023677628179135266861827665527413719502968512547160656994117748849806092729342354484649527782663260248965677754996920487908822433052082957897134377581696851297517396343885280749101153390435906198369922061856319809078125494826582795148167449295838746648099276849577988187546877384076075113984298270417647165116017065749629916796870356665983401229231984580905894148709173727509460994664953279539528841143098354689445515831777665609561201741220327475110171195672462225203783324502441932039737664353126898468547174865662784529618209321413018233371634422970009904787231907740733439713212098977560703599568804993167033716212774116952603376967036801615933639369893049349416265900266008258706115293557894341237004971396352649516281555178703662435566972186935093739157727396619990158372166273717026057161585721025024864963224898618292686639452071726967411757801242326288370313258068471997406094932151647379718419716389345908683162742915980927297813602623007222438504922375529173091638022021249744917990795403950317744813134777395111454995091829211841956280539592855819538949997764524844489873782696923381861816969578505427221795573340901838257441713757265501089324255262826343696933897513090869044197559984140859366132044865374323238891198064155890840540062782287158911758107063284865503057311016620858000005052227898433369499141020033009283580073888526207392340545866114018884488813494579433001440217143673579994577089833332326218737491602183221434732120172184745604881855477675850274860113554293363421275357259173584132154737718178057052233574395203196234161479149141004044803693692549361499737578609832627211805712351898632674670881477051907858057888522524120305413627151648520170533751544906263313850059868472656308971661001798450591338988799429521561259120438117703526494628210474474146433582416113485446025422842142313309284565370968341229716662093226865301753375699049800349043692811236705461217604333671476187884135871402281572568236291178205746377499844987641062119377457293269907803144173841048894215197447048681532975912901539943954463529065248029651519883246461518763936746561201160266335525662079564204722974418420917080997945075664844383057017426567346697658300990110956856299622454284122178950952927963748370627657855893594816966296376614663377220748543165913822034399830078036698955167125058836178130133223853250273055648974634662052627972042418619664843463828894047427482776046399381399248900630517064262870300727165052184957871314589794651595130733816871977371519899953745329728534652765896356051815998959179379155459101080865530631186530644300517079431054829646514554395392870113215730387484534680052735554694926880067729858998163815608587547411605022892753043995547643299419697319431896354295654584552156459240615928070143804378184778119847099587329648671814257786576250914497335254007643700463486677914960890399366071753216835492432382921901744615122146290385524794911691766287913218635775094526421616919351819097345759350404443430380107694179496175347867737636664779690265966857908385915831182246405508431758664430830417518350122629279216792969480678774293742692550352391215828087022539452478952122765399383364587289207845477609811872532451547029999699802298367962925750472992707446889547852328907167856393656159647942900447218646709351874931222003666525731618543168635347176863204846070324354695452596550519070047965364175173334739446861887381655938190614141888513612173682176564529757159633307424055571887268686038213898487192722902711018694845289777026393784500523729438633095360624642009111018295517547829795674043266331660946767572940080547567452537109406692425041833831759370337368058263242781339090079501331551711296860276187431177445902130470692250154206095239438675719446654207998432181105170800770435106843144298818599144081023038025461275885855226513345706114582903343579004742626759826136460670357523013141525848718912178596571989310504239467305113987541097389895335056920561441402845024899875871058508940672832610017136891320141979526585664600052596008860306259391424091718394697837608453694777479782651623479507502770575993193394690206603776439999883473964205759237641534042866420750346465821978492324477144866819063504411718030136671207517159588007617814729583351276243510481201453540020256833523412223902619996770202701020299230774610885176543753663265972526751142387869104871619747019328756938646326020383342357135451204154209302607221830848095830699276566167722399428001954204918764699910130297391330480127446637878161253109237555061224672278192156057702726040439099813368238020957959326770553198927470938364132989380221950090528854190837810927540800344685784483701762668998111020735963850546106215391741851367995100937719157453351952912270022924370736195626798167332769313469399484843765781951332014066849500374564906673899806501229526424737205446314749601162193772090647554352409155043149872294908806128935564268749580826305958861881930227829552358193197736653873843074903622032492480558814533408489686982988710638180351598829748738048144631769884623149132328407034692250370741359427315152684989023459964496103899898657503921895216541416890127808487416198444933132268821162305439994129875951641039933873659171408445519838012460174168749102463516928791110835291218759624813882823137914554414326096203509012007100415694503465691682405957965926322027347078781305269509937586782688510393718103549133643131331466826568982250568364349858234286089493143169351067159755811178802478909584406765209540953068062106133655310837406597116422097050613228709902102927772482904916274418329312826139328091150616076352812700835675809861891156661441473235106614787358179702838535450590269016923524178919982254414375307162114347417111000922555760572384642199471112077659517920347499905623801168429186397095829763698669570149071135500293711456101466383147967326056891013027612107624890399433801758297722635457734846881562680847107239184690490438553630059625392639869822030156806323703011377496853346906395930531135670024295044283630556868769051570991642106066917117120160488941026380931590634809984534913043032267605718678552037440107713911123599106009391834949814076871080746962778852637962770224221451215450085598659311651337961372179806253285337244833581659503239707196497986528526354869794744465353009850742478281528703019569896252598583824159569759713176934891603647847336220365201120871271021466060411572551359588044016237664040172187553338302502221678433302851235294017904669368753305210967137225716702305581284692287385661855867640292464655139948333325210541627306289876123792801069105412957638100163740392284808377824900357255278018648952448033184088341937647947242594731516710724940464280209865393327797480035715664470119430984725670397284800864781498482106971411663041813281222266296710540624779693594808050591225702636533173777241324491799925184532290082212157108486704858483166148970749512639828979124399507257440914429176028137325777072396824829592303620689447168626569691232574480784129804013780874785343270687080856291311104300777032532807118139114167211561030508157326098932558418189048177437088167638750565855752419051231019198687823477376597862226076176319689625689896917479985273731490928537265542320968655914032030437339731472750087179383933644312560810608718906630859591570140036780033070755020234217118368999241098026389009401648921209185267152850125395071777568964512489745916919772030344094226649706480248620942350864199931198244592638174304888211054416254247359202699484929971231767039324517176031661036238202495797271580446926258439842793471051906091054408698656856038114411234460428555171220243063089051432584227081691890846884964578429028945765860619745733619372014828689462115399465599371439751659569356521248796167610132890010124861217245643845394316588121026742670666963477654141251761207823499030293935875452052069562841831084638726325143426397653930921289091859362531822036755601666920978736881780186723080529103034738175872410483039505618071646981917267815863438595577222602413845065450652323222376632008881671675872305635700647305762189632654843249988029351052227137289430693801029735771643725727078922214858254504624194059867477644418572687639781230687336637456130325200287353851406678947106233982198175191188034645721781812689549679889922272344706605062092542784664186796357642576156131182342167588264801896865439037462285596664313459089603347422982676554097202396125031123172007084054742245156852009030194464727469683443777313678044903881643821410306199791700602785313902655130846739171854913088454793151001284748124413825384409023656759143278411721709030543911776203009208104231681851422641823205171953308907230032727684210092521634399702195225105607323402780542505236878498220489374300926140413499264976163482208694713058057263297706754788662567273547500878027217813773362463628786785256348583400100924249181617360000516166021126128255961470392851275807023890358407755156229124535388864875737377985687525968031674124896948338747082427586844008745936529839550095260953807634791626942257743642120564968628398323495162024099640322958591099987731418857370679431846714807024384490351001384451086109081490437248964078825252057003693927079908929049024141786681144416632474831070703670488982342135893655087055145721576650450891062794641162754258395287355860433736076181061587793185655496106082887067155688048033211551184969684035643160481802173559777605640931878768406519984167080550346608484489416503297328002878025356695525857873012064465634471612338715106189743129513998768947112872673113347628536023672301238468626617416162045257262961747635014888604474153886083450748462879510732781538890144004563792278367748575830733677314003098053639192762221433729466175618607955754641497468496122771727783376707615792069561045762452090559774938118345926140404251728076311519274097664170583345156650134350842694210263631630595956364649285847391934852181968478541806883153664879074592623969240946336063372388911157254096021659231404784259318299601120998685771188446627376409194546823243759705692515501999746141851353149797416827144570792830647403860501886871938477959126923961587833788810591902735599040352279131967282260700677768137936350532368294566346536317291530006079651655989415750061398000803492634766157965619438272010204187037401435791303076148025996225097297623875154794349393829965550541731273259281371800652309068553971837031517054501933488982015105369556431051266012582564001671125453975298873151173334901558379702592784725906720835347358232518922982162013434427593731301930968052464033546514691366920634007440581785032393917453693511365201444916462906336239531134067276108787032433331333365095663016612735576056348526180507993410268455885609583731289020128488582484930380860457311870971195473623443225317536767004739310410407506547586679594424627999336348806697177264020494731480707075428477253166108231476173630123018169423744502070970907679317568403249691941695755092563279051677798463035335488541039500154457213054775469252428114727866913273216860457912263770823837933788220373049933392757956521527212055382524991838193494864599015329864670595879616942393260524384783317917150106790554046212583038974467204206533042687908106223614136070966222964434594699816494087497638684222131631341069773275405746610878283922663999153521784119763079361780778488795846163231056846687452937428185392157531231180941073190936508668847322034402494458840785817180917935258681418595310021660958003339831793003232191512247618257007724695202431286980302256165049495464481236034562200839982243381723314356615619299582955467699205128464608320023952119351218399394229195094454256468130438016901856071969042661723844233539311092542257821765071189408866106667625401959256018451348224158750143197875169967427146747939012443273779961370245978866294868701584377034683889360979532687816758471718623768556692226106172471303579295368462190763226329865903741840880825150726858701332273589004531448425226633147056655570845887020142045259312628133069130022782849140079642247298252773461092866630377501878123763146362361622146961362675332209979580617536588684024851463576623257230191002727936736160745055482707157678001431247618282030117602046262029126184044724381773775983800253505294015298373792100156848842128959386318894188604874613461038918168608121423338243384898394775434029329995906153033992529479372217929104842050758531002044271422863601392514599150545979757220009878839347479603682391328268191885151002153551412415526175565140701632896438964845338899344734908432605096774513771181722667656754159638855027619883599545865964162830830109475674969740189212576553243857576216095936376032816046645224042714438537107645707854377995507881546459656573030847892580276514426508753806912882542815021873352225622939521000288944537360144473976657489217866815863668939498663151446694914459597377451662574958667621666843227986147141922154847686861951904564032568338494660827854297089905371282664687717080612784645107861274869947570771219159756155242447122581966985454699664754121984748081597869445363119070044715276083334361261720660244827260133099537540013829417558765304055716875308369687128887475191402764872240057988394956959730642480963027996768567808500100294177415244418676989178278811443391781791420695437504690472272024622994051492866427451745053693899365706912173326934348267164719103485856242205501911982969988420420988215400899704747539835971024690535181831488591574430716313019791037840835570388821834553021722299268007327286739738823143654782205473342392235628541248448349269019216893241549940452008211701921027761564577485309727246664160204520316258845723552814720421680709684322132283372849970983761413069743887366272674431841612464869931087367939698047330810794712961938677310084780731495341822478994005180696287810490748031398542340323600298395932105771677337310086987314079330555524709548767352219356132861311115301456004727232736008167553959271928671914192959323757629274826464717402458915925353534727818681870144153753198551684739331146546436652883878218891257557430052150910493547994298524432554032524080632715348969371003528719050661008006338903550095935689729931307881418280040374696605730190702144467816484609314333006715187437149971964312520284381255944433908902289794292505190878587708639946599280577979825908551741140553130261166974347765186922249015697269142505185412541295321211979911931110142002731359940242212355841301847892737664509130374905638403214322898449465086220087487628717962824401457961857429314869216930060648391734484043009029323174603419313159281501548650289914646790430404740813450622369394098274600248911408232970740876669338666775023053310526721104860448067857384143574771339374073521481000009637856210140879181212465114609530008087469906451391170621264564881294772991901906294346753497325593569745504625701789704518510283845310473815971733758952060855978378869036484944971919894463401068653155803882698449666116735860850465762179325132961008147284995166844849387833679665889890877006752296301164916423281547007258716038880573919760878733697163353501434261164767700222591842666415717857227720047641815135909950204995036770817045029638939951718229902924484888958936174435058952251941569581862960329808756174756214799373047014718098398027600064334598049684138963574307887923330957498792696424114814447070476500481432766072145699431407880081176765077949915416861006389404826031435070224273971458160978676000292493288681219871243100792639438439066459431062026346588882527742313752785064546081113824270083884187444047747341878575397609989494024358989652339423834653383234246838057884575347916638408600112952062887610659701277028530631806788956161985979020806535203524186256847085796018926865590136113656085304312450632852743641981242454564937774875960107460431982196425296053935574375289671870376021132907625011215732886454477263314278350292271364200464500269313435516557112527404167189427278337542311754962103076342075356307730764471121440080038748044126743672429133919034140864730175630909611753803740766540911540941976929627120002621143439549419340856831362744805467692922215467104234094907815690696558756306315825319974313825744354215225399839234773907205904482166633174712215661794316037141671336434533382502853374542879654478739638049716721674066935421769550110441259354830213059891795349985069574389531368871234141387695550264155700151790280595358125431259420763452605965776130464345912090704360465992415825785736160681943998238133144575366347596152736329969107084899204549854538656696118364289007047544130794103856145209052940695747765584305810037139927236424902289828894126019053706181282910242191964680779614181837634124543805743048895103818038646097837336781367186004098261505266018803035554722596926781718305374909319324612593377363471787521564855028744504852041878561891284411346688101448752342191664757808768064723522005747453795887440188076121253667173844676297603516845363978879358869798947021057509318457514628438484571548236384767457398477476249058579068720465287273555116185249101277732722664382996649089379150016842775085873658735450119083858532405563416564721728412158091898382689241054611763798788291172387679637537049511906592806009995368931609497840920354543198969845197284136110118382332084718373865023335871574914285364126294604516642967760063295828269453047093411192641634311582802235139360336855508432642471411423623583460129477087382741618473560458149948371503322119711525485805738336208732353992556140982119434945340667847588660494331505690922950562135643713394082456126771617057594124937495161914833597018647329173074310077326226795784877000329308590839221392975474748087249815350233445648126420751371107522707095000154384058472713413533350882221116078769607080738485967347352291452504153311881814718219312388304699501441435664135962532585654287511857482999581269647820356944422641967116342727640604874640280307907836415550298921262507900031936942744096241173318373471866763790829843292274348221217934603784134478057528511368144794062668931876811432258315612698067711604262008281684986894955946553416182833893956433941254716708099603216097878993150060948713452684225240327474982999842091484980884982900542267153535106082428990616913055951654527296393134773550616024911020442335783604247718588170537797615207324495447940981288834268455613145370287730962695330205145863496467280116873302126501917672784225904493921287685176173142871931720928761955208181503133986728184208895138359938348582437540087321364722188832543573747068988489086520224117760416006984847929081270907552496245207203334103880427338549704269556165939916848954896563600325020268206805644214967219392368631706364306075316009979261641929488305914230826498277536655482233960941187204494200872195508634106302867775748828726605797743882361477729803672724376835344847415862317837555464516889753025353254737041297816619013601833493423009739021197269366829919720816135464810738708693073790857223733832820965811820940575934334923126225162633598045332871285494157912727040985206675689260168721751444902097099707954875055740595786076521130040432751631851946844148385123634953453756621971951883301231142099565888643224283989236620056123091271326513878414561632620288005861087685655208729226476957013194632803772680362490215849364064062479461732267919148588637728274271590013663284793833794924342254146884013319972218520225819227838156228050152891243808272585826327214039163942028204867396981109297923492066392015019650494711464639523406268684519728800511222498178831864380798229600088761463733636225843647136726606564836505056474733036741584688156746451699988445560854204801985113758984084905423040571197706050356084121162264406901222648818552809118844770190037729019680929625206982660656963437122570820969277334174313746225976062554813622968565818610309691186408390853639358648948776031864042717066235665919253520378696827271836422812228079217705874264032780750304890277921153754193783835738293587672103223757181612566690612487355549759989501074270447745206409078215448993894483243381981084878293545670037421825665525684339480910425246340357629593589730138102160098851910893590682239205640769735608308317158565854032349792133364734550798020951290400872935726716135356650404567873754099119927347411670149876195982491388547042880570451033004867278565768821763961199537793966829678424801247076332728984897742430117096693196298665145759449843767212628627282873157757101404608395565886763981718442022769427618760535671353727668717842014344345118550705307150692201345872891782978063380073798136180896657888522580301916947499787874011910665903194898215434897119047901906070146189987659533505871136454790177799551016786294255476201939182856545712282988067326723968633962862405623514992258950066005126067528133746790287764067074069766649604473062821049883218210831360291153123897438853713291512144387537368627560902629561898925047774568126058621691863748968422605890294377344779660973467009960657698747890531849352499978276677345743180041942108006464224815217520866032217075959826155810370545399578380388255249528374088536275849381207679196871650219100948626147871255796296276022899000504495671449649105493353433619296939876574032905912874819158962656724432316678260376345191233728882884856348744199783281896397939553537905687883279197639702689544897214577819028361125188826812346649196367073763175651406851436635821388009787110163999366035279052952393272511964457288443071996559691188716508861407231482282354833622755557748969305293374789466902492277265571923550924503317409982443196131953150838266306866702844030669857164140325399443338598453162153148987804271388418642202045071826654249586276815535769496914251844938404812466112575211016880070365656580875224970699498286432010445271176154764505411127636057280843334545055347124287193439246521897943979836487042852111088485633200668495338280345056259205560345948897948079949805643712218004024361282109461441936056066505509956271358691811682821356098532131614726594278326959681070801285309541697828048431056894038629948497697633647173481350649166835279590817724281740424821653415868408458646688869107957450868248191635447241422057440398281410250951217538990016381964154029991891870606678458528634080634647289653544051241158594946103528127028764240124456030883015859669790533629544550815607184684054839382507928051342533408341902815426397610024722917470229371287876435811627410425592863341492417535739617901803942202750989145125179009480381423368283997217605894151877706359178007982220525814860876814347558045902638822295836599727143356335568244327158912769503651234087280564814959450781181638655284694719691669821823180407520819893019692240522361006059193760591633525554025307691876588674951897184051869012076108076671967108112051890259255408039108916835443322541153991680680315535755597632888827437872347025093513215977926696879749717167602391651266034003521265617862138731066041146330264358091943109371489185884717247714404408976002482923925772851015501064740588983930729946320197085226206276673780459157526991857016235704827814049955176981125320031890732959004559215293939169212562746645283828227421763317745856161439534919632630592262954606520201415570320578816481443680122381279698503227167260019995971873672628751977742699685568299834904586421504370783478178408023278707734490904013991393203195044340758764860721393117699344341418161793050741207577255631194087877990498796357633337322255509596436887185389159358736408789268765826841038418044011980220556496978896165559058519401150648565974678426085941476812044337397634746994602957222468242683615440452798674949308593951989346063524903653859596708843457770937786618189643934541695963472403871598014007912114759853801709672271711881631004775254998709235323352593207514121897128845200418247319568145869925866737522608908301716176813233907376235061654649622146014097894088841973501814401757789978272881517412252097081032105345801373709478143229940450136767346419462856632935988444675982196189301218266290613491738954936459106646275593551954867620912216212803701770197227500671736709216611006730403368932351989726164838424949879918911531710946060604551798866633835245834005197077318473530111748605541150588380968568406384770562981522143803737051755125746226124227117006093168322481662712602957646256806771834246185323201639886261305342712811850504648258338023567354961684109107838265287694906772834462843600543295067961602626700628334843135781094892245121812696734761579958735381744729055705711864549956746236934602730168416821059505117960774243159457589437366921255690654469836085807297925121639631795072560573495134107708426159834938578450571511769943903046656663449163708758211194725542105034043164281483670847585798315873109471984571455224301338062094048223551169019683077705539327169370214447702352530146243214714142023420776108160607492245084924589112709159604850258915661753615137532216639633503736826135112994828658117094245706473963707504313961364974873011620488178319722049690783869694536104473854253473612103109943858143065304409613938710086935320604697335366923324756260967717183293977573798820739563562071922384645259838645405045824631077498650919538200653352752194385551626897002605239869437792310906958563641520228991991429871150241608311788006913871720787504391046022864913235212340108209964387145235062785248225736505516834887491526628238376005958454475347079348837884675473627117125922660491732559844362345872732457412670180627606289900559696843417279089568492675482348174009393152596960940406837392247230405669954534867360301946361122939763370670577706364897113833622134245307636955939275917228551221446165882370351191770990467320269207990638669633216058901154933476785905662604594496234753662365488529326365019056774229534437210561266254352569141817679631298236830106273949026484352695032496315640788317439475222319252088764952443101021114180688590257636327918642981450133945362352375670270377522033329484009338811644863831205813535196387930906153866728474703562905082862319046064435906152116329755924418755023340769433028101364944399752872895548277448314316943955555843187793997172400766659367520555076066323079839758328162880705691277787649028542588254814862681270223445055040166669306073495505975045553132809769794746846223251208425147311189960980921665527086844478221706725681356864563009148361790534609663189020783769971214978287259340002460420176545379278556293350560831938705402638329257830873935624749728797747501169388059518341967084775028304073362005290259109186529423443488051285773761884733071975209363490395669118761386359351819454843326990755757593581287589241379243086690131591989513698967010633684080380356604522503262760781309235343858228605373337573998369018487791988472265289434503271824571612156157913820505640140219409722164306044530338601501570846186667879958333524379740525262186833684179461200134048363538332691288823320596963311695386079464506705196610834957307507168743063708426605901424436058873536078682930119823851656762266061666690546804726301085295326669764091248418927713372150015239216421840310148513451809167765905824624758220636198578730245141462109217862989190297432294310617075328352082323473112171941932153814863351008170410994119546403435364023673347167670023850526388021248260179621471106494102883519624031306560588144375383150195503457532536308357653002801374992413814011634832646176738453204253283911802514529236398130394173332154324739905891305629749742111324870299687428082485873390621505377426332780436229893008505588030696486092261473869406900331745688214979845310374420436952171773278869098863211563553992506753025574281437637314220793209914942134265812045862845329496475999510217969882960239113549547767752977290225275717929444565528821256575484632327394076000652803400069012371418556121421447130619348983081339544014483068141248519572132201892352017911023400890915041315634149134331579758555172426080611832272113145445531178090459536423375220656511564614258723832438237972223912927879294613466247252962433659293663808763884802746744844194217915305046442886710042705139482012985633086007474791783161813034532952232386879630534383051175346529783025666761053471675328677251244604841100869525037520516753586637241623799998817853348039712191704657352638454634775759063759030079801538591443703280272366545890624527535595951625611733214265539490224115089453147202116831267525797341729267513992521211281692112355276216749735143559793709151497485109579184123603844088990708953250449880312114127857126429796739355988667729406677218565774558866907161239596971285581587373737218155775564232332357939183527363844664588188400573857386096180091757718314353682722624729657401120514736309025847955393474288018748510637580176759742675940687527713525744384718557135701210407036987650362926439458918671323086023383269185154698081803210055616801289188597099732942825035719800887369468762477517076217251505080057130609175209875583250955307960272107018437898666209850221818040604218716105982249620416037838062727462539016121018379640608822663349883771340961511491066334700253582898473201616994373096029021629809764923831620685534757693254333383873644428028519565432925140483673865369848535522940804875060921520965424151990906518061246422265347482655254916230899599280926988296869000352474669184762172256114279938705295836199836976785729323232349016725430825549085835078352199008104604211407431262886410987751141006004855761659840981304253926976820806856623091305634645977524516521003893628700842930406255714787362457761344323278916592693817143124953368324960663963296849716300777178210837559933681179371705379801645227351371895824877584295927758192524634125169628547529074204557255576044065998846244212380890420491075684113619577728824431374054485929582964328166668851160067639656323564339866707911472023357133296840209996895300474810534817892966111377923126549566109705747120808414308144415098529067108035531430335641650376845260608891832465297676508564218294896317206710043612953547343223922245790865694839316561003167818626760030756798379353105778367035071605689117581262794515316012336935608325772441553362657053625915141896029430038466285872577999497291442583365480123579061012958747486946567326861221740690582985879896403180745775625175867905022681665488526147317209733519170698279375868203297699030034032515295514655585437665886169368402723085039303295048815285440375052031158625478373667166837328708588156073189905633041375845245850976229417964210788808582083732381767193512149994601646043509123426140943224029779291207590309014436436958074669323274800357004097375491187950414545342109453998050777518941899822078913533364537190331351021034443889946707930532580938134691326255542858660739341035906428824993595052393880456893475471759762869072978408298778008579221736930303028364212471545818976517867926693840154566124860941787421467509893525965529757552019848934477832098670467856506096984641391458044366695236158393788012819450476412513964370810266757895995692465732228156304392925462628472875305862069320689732683390561349356668903523842872249320308643387962873883726731080416904778825532485839766828222723684374234506839599358008610702941588459746564359548747732025523669675274656442357946524873516138194491426864135395558472945196836990336410888295373845444801038266117714436489304387235030011476952969682182545953022618069205314462271144000329384043862964319899339574719648705302455836081103960989547992751694269389925789993189111392875165808967104961207740811344801715414602441321916179520112685158356418361378828293218211600241591510709012722660994337946984025858863424410493700009011913722727932917930976038366546184515185486537447120115234795601327848510162743484735386534134201391068366911862884011360419174944164619836593905655090288207936837485501438215893400563959361533999842797134000074712756424427098401768012405440777314412351436979662987741261213607788056889132088367782213493118365135068646875105057175774550254423828697150862332527017664581320050613173981280512995947767287423363459227786725150600931343740941098700280809246469274872532217037798246641477032162388577945990364551285507892747290867846668956720253769111655645495917313971878673072741050143427101912146223670876858793508556621675624271235712491194193599918833957986228022847177884095492712419876077573651867651428998102408299372297107368709559806992778153852620845032907402064622609768140670471404152589637831384636891462488955358319505116957471838863074503168887127380141298033597847815918729576770128514766061353964623070492974337322295427960318028920455277352776888244578272785931304117828180242272438522007019682593285042723293702262274929966064378554769903386180538345500293232022760365488542032800460257433582756325937333524419737345525924920912425503340841270145390714287400821713588173455054475903584773590297254717808273115227154388099703905486505417316014618054522467488953942640314492161329139286172506272141395216126345382167863903332102017305960591896678796611321306618946895999237667460810019037400598719780886595676498847524309824317313337913926079376564991634309965461413588727151919800867608845057730384035389754946553689127770043366406152858495023476119471760141789427004704447291585799936249247350768650385770446812874605232295004705295700584409172740867874425703717021236525767264594161996593304110557056178737819673081001682584932795489956109887828603585955671092409661313122561892338178721206752887652940731144096099018636465587132337025623913273724210067897856841848830491774536876688948325615443476910113931698538608130626839936602931060568445647833175546400778830055684787132088226134530336613927529136260876375440389433164333749644037047017257568474314333428172406607878376806128199650115742089001571481210630311931717611811057670312357189592148138337669797324831568781379363573471431253784529857499844800087322203248457703785928158024781932357195154340708145695419104504578315603759453779116065887749764548833703601719486295877218460752136802415558874193730739684002981071598923765297391173277608956651878301107580072485968743345470600857791756000751075890276727008479219692923941951434479272012152274051745268264244568283322259036071299211962074730461685150197654477119885424420999502828298838017555900546514340110013573163035783936295162965965609041180988868077878671817073475749361242036887344912194266955533369259696087406455762164315578846843680907719264332903509644450289190868980577233185803648915457754951347447337282099661265462657819468275826965324339065090876217641671197529431070338333345830064243540327657989401258247609173381553121029142720094709188762657936132360295327428926826191086645592009226315027069280839660894872214192985284579153773296679038440665774490307698945812148950454064302296720237140795830124244982346530751824893734957742167271992057149343143274980311920856099873572960232599758533521588716894277628320212070949491795916137737408783145240862806047455491218972863551106279357828055111649497070823729963908944835185072357320369071578349663680123470807359022140501794743214565839025782304157461229667789491038030741854272162364180461655081095040243418060377857855433866341941338428855250072787315296621035853848636607023625254648592595938979138659993407014424290043763587114680627069084716718097523682966816011507748403941935810259044426383745542774486427135660514609646412447861217061496694337063770959444939719801914748015210961471088664655059899159893222830900816340070387580856745624850005782725303443521068691944392146472004156045303212489822274470097094353464449352845144541775796125785618507917544998828313779193386048641387326327500336939164011238128113359818535525017928199653465456344632431520992182629295744002547562315197651802936103066442086825332699662886347267330257643273484058038386763142217774889005981208142847783675405832746426909276149591084121602902720949034876117631411406705869884330311681474742109568944842914228902807489967305822552801307813923893024516727431439588829027259129836728588620459058101218265389429159767128970084483368329021191236359208213942696740430974791129294182433012194961948174372201403114225941672731682109186548087989643914279870475976639195627377790197148372677266266602786475054694199581356571026720453945309623471139043276746822841159943745267964454795267739687532031612297699150062686774357925315584282080531799627611469922028710335320622381519280225794958087293044892711066651734883627800345256982271429235506761692092543961629823271930216498180667025500034249931478281935286352302810147252593507094458517855568007143278821225710597070452122898158605215676511579074741876491305575508333325252659333201217212406971230979911157438342053434260924365967131776241632676790331963557867049479303775442051401660564257525876956535908310654784656411772808626581550463792788875118113400280566900013695662437870680342307595409879972508986120440321400825532911051203737110278708619266974926411491708798407464734641254562375259576597899345738824748333313651519639643798079170512077889637418125934779904695526352816082128297924520907298565105760011513337640946393886605473261257653449182235005568151967251790655249018335622956961289326308579941188760538980989306753485457630339326591088583986403624024087919443761701441250146460289973463238845006916495667162507616857027887572210186856084919838485219412611849923207325276745267650978601693634788982934900458139554992428525301720864631711755348046840364891247206677831548099459487558075406745778096809165225873102285185456960715010097848814667024111835881147644651506771114704399560515713175601233866368757889718203130556447845028761875059061675274416699959059090007964680717814541189665180415691132402589715254419020909172802561182728822821718006704205962241003816835437105698147580371487402671160897095000702693613496009240991764488319796500413229078563953428092902856363451980998956172020161260696528679116976265524737995130200358407364845467506746984221277684707633665715747750623953636792369059524076663942750367744700947045074215220925360031619316847116534265331805036874389198886140685265689734556790679764949499012709716452125762540758274636047614538393104918822852228668566691398029601856522401801250260709829093724434898328277466192024063871475282344872533372011045336223042011318267457902379791489421923432703256160173026746124932889766417920163522536029452834020909238358690801169179693077800897094652931764470142409509625065534368388925627591220676384948014154420682054842127478310857598795731212612030824218607230506440725359786349967362309834041631566018589461631814448042033045940770567929837492868788130070882400214228181163036771706581246692481655435566042684413084998294670637467960385089094081140421507370800041122473568807682563115218427480544691164104644910723443889274933126112505823616226871929508418029734673664629084289146556070198186872644153078934313965316475887443748965461672523717220117111575464936014138538677673225621536521023980967284275940770370699089169494981461096850204443236878064449265152293279569586179058575447512931335433903879809674319110328184864952340334620432323502093604235141012053741728564228598828384247469683736844464113394644918636374104854360230557275813177777622705230839226963085458379098298836209593822198360585275492718413361530807728464853819575152136912830022444573638898164357984831605101042967797209322393741452617881590621415888702904977229937750945506183654156855582262865710092953934848484196552320610131228787681569136955256329473893857661237974848110738559985816088882852673257922628223362254919704119580243017284568158710222547438776836982620798162371456374004947179710364701341843554472400532346708121555658226778921135943892962648469116543489357105957160695838078746082896754671490714354673015261642285129651647840312064662773563262308724479031152986550340228834939121718112197392523478062048744441330755401950818976123198004428627684062827773396483703756756508916270423843635164997562541251372847283629545070145787438821479199213504876497716788030720990570537306401424351143590595237760608227168164378627628400887561518255988834312866858310163907896456029438312214898138200234526350735019934847257020968162868358788960699492229667793670716129121629978383997755223007860576785091608281329462536859539809798347473175186401931582557305927142031317005681300065813295981726517313635457856451806273913644495606587261292754978292940668371675219293583162445792996866508294823452485547664763186380250326856483247503094749199650790723843736672969757996487259237032641191277264093672239241278771466737197903106234568958306235831412534036655293547705187366361884840994088069271680521832913490920593012991752215682444090021136345768217288027914224161009131863944204787759331368332816906805445234219713674171128736759598047398708640462328529431027839150681275051227267494221168180216672399048750505994022905898438043814330608775434948124742868579338617273628754496215864692480046426936839873428134382631534944859324382807098529855084226931233419523857352575984365175749087811848950040360779252655956259231229519844810048585180100669031613440998227165661997872542353573214421267635828450330368687484819395492962995053086880840597588701771450785069525140894148220399928306675241090524075665804422225390139848060687927421731588980609667251519710245376214806221983732278402410675462342246093421135156780683438498867089099443240461793248078910464898471552243294543095832238414866830815520622827948933147023917183888222451761671824666352027721757314754656741704312957712792238142843330273787709547575455770285488775346162937203056125491201321607293253769371792101309989134187717210897074104946683231206787057895899674891417539135998181615553908947504887794205362540216517895326050073070445716338807864759693798756762432256331705083107162092550132939741324469639784141437905473348377628228551619261059632083565654210587987170298522393948597466062774383200781679838249423234144805907014473003907162405560145263827502067400726575558717438558477258981839534513895929038050706475748655993143762064112149059854563506786525092331182975475917222554637241581321631820602432954043486019638521728454606594822525399273795733052834604170611031120502305580352557649647590624114203904307932468458688149938645423201162759248004831017743979385559285297399853718187838750119757820477164835652000247351376951661375624408951583419037567574140306698033099315098822716721686855394735713474692915371062793943971828631784877847368061337303619919191804622061439389013069503821119135216283577901345444327912750163865288760714935587714813115972459416137846252041825396026260123735106022956173149858999361727965972504886845402186603210999195696802364944783808053967098199264122241768850637969159118259947736732640780038029158789349525246908326992701976293605318421476626965695285388312409773639711386463733329233333727700727818746065522747668695568258880433992416718302968865080182881858045121530258042646670213217701034979538882479443284996834285999883362609751013788986687860455168039045147217541874608312297655610920284779376445327331977521043164936000426700746836885829554823591286746772567590452322780208609557187860538294755564343675099728535929570699544741450183337075804782058328605242454934760533062229077689926956434578526728179166830962431020837142126142371137402619092918796633433656291721823384222729413435151023281456050124952972130093919978621237033104833361545635738265141568863252150199600327872334910304040090707038665624394237856190708021567000908386209072873944765463060508161668302432809889908077167786954638716642719979472065542222616570062505648861974414207437995991617412041536900271643527918498820657716348286377924325610351471233248449237813206786880122607457157932742896140592157481437213602986506071157815782567164636106106039281370355121283722056222676531227455592596688189447264688438763158881028111893930100864994646657399355129073439420556561293326577949117908909308620866952381174610858309243522126253937645028917968081569474350571798636819716768518184945162797012100554581519574292213207744489429646522446759548578728390934403746046258066097413489664635711576936787249444460645130395069252059076104728695093247894244394484172084535517140691096921604456668673787273263695986009418183546946677412926030862013985106643809609080125545819517154713052656336717567596137262288691855570760617774056341196849439632977935185108549336505003975449635600794283792397765360586595953418338505914804028491120845973545748664691929856105242450254216904292790283714745169207121189154260573153741013241623932972238227239073191097768786354991974310599307878790817898177112761399033062210644194513098119859533156188996964597858090458550132166630676921619928791440325466223682422882139395078371652817351717926174519037277847889374601681663329083683465768933199151833128358652200096569794836341823260088890957016556320747138554495651528328233913660241870729486321661078753328768937619675680947365178364018175238631076110141284075635256874044254658754868858962336591891452549443462770155774803790904014863231034773084618859728224548159858272545804308219744989567794468866867188731885578045373395953274696178122723510281094953104918737783885847935132860538942691770804975769869316246086643782472098911784667994270112751201509125405276367354054993741595910215868912578240530468898148609754787375505895801834821573223230119155307864807212411420172343679966793279360514179228276896326950031757940915808646853051159757035929111818627920139491068370310311919509370001861037377062242398536429305273805008021877281697823448866007384574709411148334603635085841580048674268277570724750391860141737921933858711793590391058457617181204223644823777484084194394700099222870641666644181989822305967250354682233703353802139293885588698849308203513359334861833418281067230808450383592120083312358906458643757965572159558846634047621313523360300920715733358338940593873014329180907973886379587073897564351066343754243687001193752263452294871371299941559690570328875561543356242675650746187173955067485116176776469480037075244119154580852170877651278335638813447356516866952102792194417781305042290066981250829175322000774108146780538261284347272421401974832384076457260350992679298900404851112355913307130028585122018266261481367362285577177692476987931875225576770224393833952419496897839581729805271569658522480442497481987643719801778014312992599019877782202463961370569952092667168003915301347607786857943415861540649520172229887657924183011556626955650492030563420312267436655352971445127788811106068923042828113091235486104014999660465837877998990092754374230103041379159744656876479695312725432075778213447075897192386017174797612705798640671490657105707258911730829826909505724465708767654084949659822907849407287465853906115625801141484378140118215887513044088677295258476058446344131198680351609614453039184520119735360407214757704040716637723405571534843664003823042720133868146492849719664357528089128871323085143439105546841563853596845344220596586534007693540089865651474885479133306681516685682376722108332696200071503744762693961759934876475450212286107527337607441314256399217335051744490703447282538046728122820874168950469822358652772437215721504906553709138176357247639936105319095761744198092728523001886942990870291524453916475160258937873806139188741506975375926438349754464259832815602988573723223388587115375816772354395605672280453949511981010925853737542424940590646861673428979290293616887407091760310429896392687834623995994863911983934121356431760225560591679281697474303208783871451353343337938221063387487244758312391578747896663337523217402065811531978184513423950354626116669953992241152071066802951244204671162366409585181949282917028332530321547132609196019147437697187111409603541240918630226131813388668538627222797112812138378678300201191919054116389547891168050475637277835860446411562126287696978701589413230236732855991387977664646449985081838777136619893379771680303816525762860054854735878973369474789561817414798378756663524573220708884550443065413872239743861121843438700827004787284118041503590537224813706517102247788140308325139509579328571450871578858415333326031178873619944285195613560333222072116767843234318070070022034466704024180546064007076454295447969225210404873250095136780497513367337547580026552129635318447922738087471689840767553120480035376408305678604835036736047359962734711964108597367505448850395693255158087439908415470234903565633404069995807574462363877042869142024585198110804790562927441027799813630493914367610521660629232445540084565316397150685600503586362479582225624889163290114325250714126996041414178905664196891857580460860690182395480654517637884035167659307967507331002555750849939429715046156892931934747264565899770914983523862053073799519701507468708167086623161982412288027463554426896322576472304816818149608127559562799664265665652204435715297030203011814747627902527777916899342670402055887035423462298635531195411438042744167593074228021101013420097145002783464852507301288637320370186097599847537017783103840054963174919248271985200744453023058832246430546830436699489933149082624784679201297725927664362632520174857312618339422965724916080397347934775033157221928284794709138587075337650517733571631383911432802395722327026416172286430258412826257092469132732473576460031012855269245576461888914486803507898064460486573925084654117229483843575559058860757075651213028661674417469861431906203870058206608640493155176389537636938179212687749440628132379959467765956590450343765374917886309778843054395894481470968950283665066499479011179673022307805721401943793938164387666736460519400414532681237838077794677998658738342678378267040673202884200959110902320784835790073017236809192269686042105834424144119353531558324511552729792058617764525374694402528594171679935693834390834848581394189201288745175907665501828942848732874739179837561216192785805682715057724627685535015845826836277130942490189108185565342931856953955174585657711303602252583016487265782467115635866535379646169582297636177751610645670175299731759246227301737614702432506288585160486615946923519270330138035327781231602034195828678538960959757546820940339405687049703374188272078161775207908547110765606774452173094148515771591752819729510724659371017679493365446451793357345117291563209623831988010301762590644535076912857880500792566040980534426055881032198170153913793668185445354913646450775201601512710404545799475060540144980185097856283613063119343959896542794704878213757870137578398028193344822523809233830534063873123482828801802988562904936181447698520920887022879111526172501132375417095922104969546039744140986742862384387789338648986285401064994008069210542379321084285970886154072104529611797169266142509499580672116806118988734965172640921525972970178545811808739401326670112635750405543914984150422810825250360895899816586493594409631913638019690364523113080371488517948857591212405208110404979338907019085130206042751727117148984299079367083779228738364871309131216830858301009851951256079542644362320989756191199119576641735338930279740055229299152519373934610029754448435445856288033621367095289772348466201064374643872211569523964900104386857482509502221172842949875623200698288297925578886258939702869237697991190120300452120530081502043740989759863205137823202130992864296646823156528739982451792893660126164746456267158263136664685430213204205213235900953236432654530549780015354493593553500300833988946392379540604508347855321235794339380072029212392520402339727819181951520950247090568495668822068724147239485722850504910064759882822794987789225526724545866182558733506564433706200736525350236129786146990700916917342721265506053057436791486449936603368670296503949689504981893830103371163430691831147201155078241110328228861924220398868349839836603683016920765627437427090776950970331043808568876219902316126058933403516762569000280455333825623985740259574710164946910688657286131951504152182529396384026190145229908236033796111907317078744587698357329289778603523298252415781809019705275524030340220878244257044532450345037541839096012753959467655629008110309594654742797600874075403440471422163479114702412203330924572326394776089082613330170271583783452894952846051063794249318146111142092357796933033552022862759276441290681493087347083371922932696716237998740078851138859678119464879605426475637057094867577632269638902564736966691976512108619606613708309630558046975605117994787695343271348466729260363287926803591707242141924395997901320269813824386444117367555660877106231821588734901463030424166973002545132143191199724827101565644033391523931255774159626181174110501336330244891673819167503484384508764099275449459827382916342357982779816818903598923135593786643898747233727533694980923957312723313087244628770056274720384683734661227022456701821482317184275038574428930458969476183998385562403073551486999491244696060113387364767402208047996087292591041894743041772190386006149005567280068779490470512174211820869871700454286182306718561938782341690895015561611032102395289662979767659850443432788533331695494665193137437934237340150806108137335817581305406029215590489770992646559325770703852705447056731373220450844449146051102592462167071053159168070506034423060441460780011297611950856731764219816574410054494954141941957285528742474486604809275445600012163943375758115363250466205096597019648858930371199548549332783318909897857215506879168057163380543014313849863571758761981710561118479980209990195834440766154587931246670052415594293702024924315135837503099693777033498063664381082971710806792293513807758152384563277094416798746109025317746761367713295066446826268471122739620357111785509192455626271800875088766108864575903008433776679928660533588335126346578319331608584898000054218979701970743507654389932230881117608407453232413786916584794661217859837567825627771438362943882923028479687457970697581930948550405415012511383740457840207933302188801347379505315034704899522228629358524127432485065571519214725541062522780939811102080939946264633856647058273812916569576448343559793973806075702802687049339085239618765491958078081204046211385969329568901334433829109569827689369483060363803215603876338200242391008029173538201340265090471843693796398872014250816804824055346732550523216057269728365004180533820042253704839624828462494250161431083463017032232676077923855968207892775268389096333382656769358139188320941893789981440076204270042098544466535105373771463934086490736461185757372413395100452990403103316043286581801487223344791610744423985058053499173360318667309581776552045691454034107368255574437607520079086666855444589173785484719556085840565362301079375311520994033204268213016508804612588912972437047367827545429623827216427098115556948668537100736221281933700022589731961263667755798921289245298445605971634403167627505020021741698230808631259983574485706174917130491176128821908106845548956368443126759104506812979996319056849964564795881387599106079178465032080069020111631575893236474435849414261207474669371108201131413003928899321247900083658198577865727131509155496149731677454205898079493360526218632876155692388838527542473353370102851435345908207629075166585901289279817420128638041239014471495358437998386974624516253924612313285555487452093368155506159108049551526811260653641318733929137187141829562400278570643876719413347371915640239910919858982238760409992125960162972495269000037901454416025124737143372566313755757439578611974918213429018468394993412750367007269001191574285119320977711959844059653569482304070422700225241866941033913874860000337196953079380106462845914056624422381450568316738310852817790693079561197027042419003591150014035483754016236280634222635244527308820849706079388651706429464115926198457822959277940933806985992011319230090323487834905015553836488994142704007425746968192590569985190489670111204056105395172032684531578421188572218203868491263515829899772649791629270219534904186509391782720235170793548898789149832560360839748865769660092965885707254123933873575318772394525810062781990129419689733897268892202918007619305709342396341161158755247980919792947970138633000923792546691085732643978299905165965530893975792085367703828666493514599924125796010803551032711537010478786932417543000866077289618064253804723113072763081002067549768531857253621687759823471529839922959280939668235243636287181525504059079201478713674706179470096543325125537300648562381299531668265336461091164966805687600625118053453937920959916735279875976194492173385551906922741549128134630789313107931929860481491909730583664455536298228174767867058209832415612704450243559405967048424118296433035189528336479048826816929175084891197583780256711525703183783910138763329437303677253833455953703584100987271790571455447276562385857319907422494050549955708634688958272541322117091386692184776032194333664677736876710193660451546187582079609019026342135890381484689213841194939606222976388651286616771924084091842758198078129876605245620642721352112057979342316746917582636993587699397904650473658726543692710289502002663390623412849738167637128932957018127021262273770219758710251039749256510033674846963699409557395313716829796684699960202193757311792983191203648536982315955876918829023204478519380296649926808738394941893690936578730156250400822646380489007691762156537936588555064341952448255446901709270745796186617272983326898246181429279592573258187004352695515292947683107889729304885960149652559438128367713811035605557356464065934325315067257598535381628493228767054340919199019171007047921508062384997127405859243569810671725741492667613258905983502816533366490349806943820969119055753150121601551257470943251523150290426559847804631336763444429299113760932803032959639121048518974770070389629645307907767565495534860994263566985591476509761617394807421827484234324332327746847146197988289703782188404831621667728275200494991319676903953363895886444403342280858925257652176706693528316236394145177567573331096309931631143614945984243187654289232565186292387848366267627095860561025452067045355969143958828897023525588679495922274691149081498845182770893798201256854858156629884804567266043860801596439135744871081939179210571965967558918033456918082024885877137513659915314177704252631197406458850706299581291293622888741191056254273274856848674603424578817672102302671268940562799177978285094165034406266573454361899168859678121230036488447371574204691117719476704920943813483514698257043570743652248622139896638433475301452942307836319929302270607755023644169111421862940093539631379947099632345672025749918619569909498105346730216616026607498306959477551172714070376861893677416290970563592368595189067359385961114681516402080598354588593875532483128890044616129692247117121951963538064308873798700365013251729576283874405644776297851518253192004652449862945438963381510351530051088600696834044884757944519319069781574211936915112232362651825009204319141383518605032122258426387432535760249034520825612508129524019092313929754215762507889873701784846076075172342384315473174815271175360063815214329079116294502065629830694263076488741943255918137574258924639740136468225319967895408281217590887671548089066521418424188176287218053148368380897290421280595293672121072157929744703782389608406655875393260567688421291558373120308559088716136762881614311586218317934142401468440321701659600868365797449227847140738817167613603188015191964150207446806365719219930308104108273193074424985647763569684291397056794784092851389225971410369999798937704258164533925339835436929718066997184669318657443070500250726455865475130215429121445255289942563209517967753135533991610967134318075555022993314555101516285132614379017895459510451758038660285837292489561562839650562514674245050286774406631000193166413253025305956458780271387342268281135396636641695421135168807811026012272534675302926557893873481395564612044935599052531368968900191397895771070483585531714181314752835268635660883058503086798307428268861842174458632474858031184516207366400583876613316403066606706453213043106562219881900525191179562187564558141202158796626056085753758483455803440180919238497291948163904615307071384825837874025049388271909976925293680424586587012181258951491357725885202290783828777010359436991203924842314060238574942613369513742043639612464966890477340478254936721452128095912825504718533911922390210312592170447505305121887817278186450848014964007097589861393286552864108333247868085964690534338665261304877633862162635687450934727951440381108131274773330560968574395483173413826187403855517606294582855291853169005836896053008122209674672558055373698242408241441688977015939558669787601182599569945927120241287715614041800421144922595475855158439011316957597745015045334984204278347986186415587098828639060150696828181185262491374185158687205350168248476270555208190964164068996828170904143243213097221948309165575145856664150361976639847256455607408026717562791657422741338093392158842149421500657421716404429429639835195598655056835978389005068848976026578965799784719522906086567024443244801280446353921546984986063305319318646405136393140289925678763815501368717588806654502241235125344598830794237331349188179947788282935714986909560950510096977761401863202456950388892859701305954883251239683519260085376137981767209124132254665125083973196298941722964695696342032679171433993666829636334681584295450989302527016643802843884750519688845523428184705267298064178386084130816719304974062568788224564804446140086149849408651944881928389607348929064710169060978570548927429989798717337753841534414960843993180254696720708854339072289481941448911917103935145266575852812970672408561720644337902643953215999884782042705896243377353724561366539161008793312321308790057781661969560250889085315331134193014095750248194084564122729709214407390043222197794870511717994504099089242017127449106357232914507381421017016863564254020911260222292145986094881212717811606993446285908534306928249141793199172726401855918051166814966471870898022285174747162615383879271550909606449071997576192342244487805419960000776547912112787652096855244302095025321904275755865146148452720756834146418755828125857696850329919765878783708851248098076411983077636633610296307632363894889159200154572037958913284564193428537895419389479506444897447697649841035384271062673094693536057453623480784364918556237328063536740390557213050969810028493822785805694370796568963238770029455409145914844680275865593244077920286630294119547144321108529662429557123369752890285377048341570601465829132516436971782755749126015006887171153463842259734338270532644896767785465773146383909537972042826773874040597513165710760297738628933467336372639656960266660100569240407653158073190770491069322509451275989416557212278849397268178179397233265763386874251471550268477157232132185439660136247564754019495279255561466545321243082697824508229513032087317347715592792256042429708367554726584336555060873885261732370724518432285568992814018125226826762970467067709778380822046183824184822552125226374368737208377076013439801458405200263995296519063172750423369686753195122922525635794103923891364494648028322330689195143260281154887928852977096265330428066936332773199981796001725129689849145566888917972713190198852813041048088425961612085622597285353190157921689505334201935629587307214393171505401957986374294545338060984498797836122187668404439160140835543705290282969701928641707105171666615460357633740225537308879543282518706491832229092006700578779560879180645901164848845131088072385777189510883018975173490113676315024051515531278792063437249068294106983206909471577649098285501375051752103386780718721849754305511717762101445765687405368806722784534633815945321378902715803084980509484827359594362566932046635032245857222806315841634519455695450043190608212694379265869916245675805936988431943126079955673444199832256586149026214398845852487232453126834506813403881377571108007038738605454094246606480624797999086527444780863885563436091635858169170166542594685970531581293978730635004374621716365146053305085636470749696375102841788855620527221973291232023708446532262458599919814850471174499001195032092862038260044565494869731463708617674500621454128465242266521141461112617972423800425702854617526601797649662777237875104392911447351437656226910106259200482668599318967196575416050961797303681721735560645617011713792102221156941576018854130266066498925977704621991452302313628980842516560830994820933734125057623300401386655682043569998385527630753120882783251935158357913470332193533706526440004849974824010839568492999971696595754029833889354844065491593858177419651062001828998135121205367163723397823832929567678086484737097664337966752739088066438065902317252559872453143736990134082633117457050135819038430376417383586357681587518843367220346960111718886791847909084417685058313608074217682006493658091230263478063440963491605751507043520690337874424006115084261894900453105031802461074421263267319965899265860684637462378182437132752430824106250823475173403341346983132284184238059222452394138868329608976983454397124978289984358126319715578380746594641818679571304761637258145432880644772940289745289308546111866914632948033768317409200036932233946333969451399745150307446766880680369631700402906429685663346790491849381169839092235341471971480952713622716034216239996953924673724524389521410036281004911914261411085583613983823924297380371450563847297646840919506759390633271044127671074964254146184550023659223669856972922134070545566919491612188370943961010726823696562187442128209228752725490132173317916568547582266989337523954912207034930152116363278118793166827559687731130632085639248103000006167614613195175452117326191055069230931427724116270334733086014437529491190221365230657027897108652661586574346585732031742539953546838006684123333091311126082303870958433384000002923518835403046429374769752792519234583105858149192583040064895492971263442569491523331670104997518307759277789862896956731625421181887337240646550354629647310128269787621082655092120321488577872404623718522360061216746783336995631557282838618279813428799262577838189817986075992396107544437607781213392233599703962949294524836284716060199879146434061702390750352391646191289481749063901764723858675536173117832995119310275176329634389954276016532517827329578166757857693770088618979920460697583215934162783322260644447015653996328780460666658391255035336295349098782178430450204482234086813571986144019266432422538395548931591240195011805423664961943686767552500249667461196073616911729827047625938557042200114783471460260759505105054431019004741121016879091176224126309939670222654617257653500420857808648503302392121387279572054566864699851649492908633049806327040670592454459716676679753228506521621597130635549878569349900532802969713480476910238682946783593816610877119336499378039745347725099050154343516421696246607985536530062285248084333480505418913227932262895954034374221918912006215959561287702771446035852308388064218415964596604434558377853043406159103863456563037531850851496680786467211541049697936193772136156876146047419768642295873946223655619124335955220922184829751134874456417382027913816007429850161635888157424312633250258953067117490488573205728311546313648893395431057356043652129169002227108790373608796869501814341491746850866061673951888440535777932937123565622640531474081325364088398299408457059361481297651467654186510659669012955742383108094234071088540883418188749573704440856173011789088952970024910984050950928545136137496734381428121387006231945151827324222208086048423038455278271900276170672831193482684037539185195254695665203813257127640821300835134809537354768765937356177855352737486774792742300160960650736971167559924123381648096929959360999994687061134874688497740353415187698943364691243012568162723822882235265217166293157792356646131221214408459210704391622453046739817096836964136605621790078221587737587957983383610030388137761339140492118136961789228215618941327320060047176324621319674234431659510096100763194798163216447383013139472652731090266442216478627093439195402872593903402665780834725508382971546721242382554583266505223701901781306323470676181912160242515817865655605469051693514724977650228052347449553679488053521323868757820432362704553523834237783233161978406628495725304338485556615633727653383777500950348044977789521067664862776093020054573227368565450073420508613217698094133142026616951080833871122444974356478465820573536144022547603527409170090705926479176103722747462745403502027629034322095273473427306500040834328311423317251648331996373479731393819919296808745708608124102369575482077552025683390515201557824459580056582435739800133334811611774563222359623739518815871952235832280719981236426132716452853198153492655159268963603114351231525939729152773763602842756684444458549566322137914758456011285709332250341637018125063193121164769574976071145060318827013721052255435990578384213745186387330729222409007801817844020314641016739239968592744207883808551797724883302019951221413048875936194052151009280010448052114275504227266131076221241509097774117328352285589107542775265999664645156652999907785442772816287572312718147336324957337683887028259303968295498677101373530396269001428821774058877327328174036503682037668767374861661561833266647125894136429932282352171225454542884770282898162868751089419007412280124484168377432613529145521615494191724766307693344804002701440067904990908939635400530359389572322886359786651812384939290134258722717560186788016133075943045631821732947984689505151994527596443482280229638514105779238440402381123312426081030380771231962873092081991393074057597647312095757522010738406032206438525225022292784838440793282770159455933961643290017730219255984985862540751875552046590904001913413432542534136127786257951272108340586289076091355332888692369153341084676667660105462318677882135854119859335420279858787402140858601618182271769314378457988474459373552871678823384722279239465537821746672944571351961817015621240350759441933135196892133498631216763311793642193814164645661355672570759398614435624771310172541384839271965221200424022939249070192886922763988478517060622078905333640625043750545668787676747634881372621531235922500879391831764008830345297901995741061858703485130926903909738978939164180066985692545842761458224868782007164056972805579215235726222995483996926551661398342909105929451840699967881231061183359440073041247515903709665961455327995006727370571524658738429546023216771905236939381947097464666871866552408675976643387712806735881998105735264264203686577311631508694783485267424977878847969167500479713242627107998766120589224642438704236634349397292088565441471500064297426405737043666839330216610468685442961931607553872732966720387184955011232696320107819154037041051496186739976063730089278337276093498888200759418714850917929164663951018296822103259284898091034858419029185447909504195715047473181628465001562752817535059621312226822292639262049267054825632247055407988963107667918104948123176596513111371654772767835896092494629647633744532921100247811712826718505774313385943547362260677165666083827827856014575140212311735946829791838456835182076530260856904862955085081142200599803410339405713821425652144923984810376961358297699119507418914708734071000286497377887425316463745027818523748195914456666583865894063913782238603920606952221975084233993050991150344171770000722051495554114811943426528709410751605989180586915148021168881599916649723738260206308002569365263108138771852873151364742866051201222736815893335711648505005540232695452628312112312681474895545222025607647358623343068994262134416364779070820569696523570776603439596462510366111008633088970187188301072504223974563490616037698569029164209337231453827410455886633994111229465383124696568261465625418232367279721238828840424558399576181181113361213016519945805114128142094399993614735933393660956454422100002572074511922905277381629692066154337557748459016231164672963373148800552808859028748973400013141255372187068502998347636265442482871123718500047722013790134100811801282960845632659172651916925149926489131766477764364294746446484229182603064553008853438902362455477900665982927872575917734929824409201207364475715803682943589029153741149668727509558689906186603346898557430025796762435924822777588330092330832677393487118890762408752344914024070380721831591272418129304819303379708964845560639931283041827664847502999280316159426584196472978141587041531794037551911458922827641403678278559794902628535768963542477611846539756519220421302309543130858682277168346051911885002177076644731438771729590078630165755077197791381130428019164633990876835881006436031082448456428553717124515957146446017285077516633479519173692093408478120646220372667138499035515879776426618503828824345295420931077562918709940374690350761289795345081426134030303414028388242881636526871256824759566152653632308433410001967917194347547914643804485976186129819239710580186766024068013641249748432982615149889960790726825887841589503639764031184380167676323618127959100405694157047655680640568705750944770448732013564349805192726867710366576506256200854684812861685962292925928769678284495211614762709979537530687235854775598140668896776145696424891107368065053039015547140547835854556758021146004649662685753485934737005810902304899693763906303595839090942993557377262174578921542401901491974872225748528152295071457247213590920945191477320686141176869395793464318793803409146964428664500183146457075407183058118598995358270990737502958948234867668672636304047392546969336170562622846540932371574435937414903844271110385762401787612200977686919849023217950979461055630778975259527264029632366278747620251054107763282208626808497723675093692264072737284980446029082067560604520021027410321845382040513548285079015670900357121759055099311959396317149151935425499236560208621398027318344413469748405358569496392927180756487560192945567661792861901865814532922827397294963983158747935074287819267414752713394018033517569888017834881383329803541324799375510988080164806934314985903918440441042946943298867429469401098615108141781313239359145146693200251742201356317855636591471787546141972328484915804520551272188352558459321431543279201991384189510655378213531183985221259063293179145108112407853506813669325086846951616134682255852120594635685055269919477667808825069412795824571874624481471489047943302512770866006181936441794714282662499404270170992280805764083359544596978152572623552007373315849703143894017503682809908261580593483629017020271353835764582261161165016830338653752028886714702227292804834736053032473237191367937350342771700588834222901157507378899895196484390926378713107975125312076197846770689168304984965913799441729573618710913362377738758191804956165634294633472150527222690661180715039671050852354157437552893327097162654685156688107851021241419730526250400560693460131047278707074713266486728110691316142654373785140001384627465038244790401729952263243364676281899440337061476358786790090562314244147120573801471516993481511022327202822963048561613458639159858282640024633399884419084402010296183943056182282531354214976669220548029563342960657520121317238704299377766207334594126566647858074697291224105816502798569748076914629498599092572457618213257680834639432191064953843168771459754359399140538787159322671503036981082144817778110203980374786509349555925599600766829292494209331885516759131788214008370457762179838238998969361904312769400906844648097661827750583284629142825539195098009157088143819503190508514684448590735038969040384179106871206115572543616369465371200442589806820643867081395751269267823184775674100090242773263233163070714807214371766647072875075041377482906362299468634277256077695337617072660143329267352150239176799917342541777358722130967203321046589390822201863113429637225762552251755061117857796274473796144228688805997381185951220958024440720423085835645427752419466191458770840106016011851504566254035750495204775928109310131255768809226174358741327171114266086745059955169878044158489007994962735303189973672696793128096958530815945517279798453456838196253768631352874829516633197758260691972645548502082740637374797135766733421179802698294107656607368180173427507914700270277046512776954897357619394362029899699070835750899811304162996892938279882753750194518786880644934422133582742844767359353129563452063479514230117711246083578601419882320749431301901378679325659981801960487642391120409055941390156404707867246126739860075408941645503196693241239299176755260637285505906304482495702016726093992195307595173530455000549908083440233326753278279983050897373142956823257511960058347054688534202113843634006308471904138938649935810010563159115354787488526507645207432807888176525198449115176816239418660341756829945995634784858927885315739996549451196971711139637508336771548553058776749086809665324308471546894536447233350718143745517685902441805438027722842682678670573437167795699530698863540548273214304168266031436068629071486918192826672107754650366797222643525575829177950446676709934151623425630995403313597554231372482944301420964829966809288864914123999535563037683269641136252163252412913571372437990398451221263759085663433380613757472356648407242431828438410088778946940262796125234709042095722001866933847687979772798289280603003387289381005676248491584956165487484482922865681528402885271293887341135322723270726100143717919564838056887383526918405404765145569722796585556550041864586430281550214732861266464017603845600854854949473784257885274716214022737489631354307605012955244754723673939707908098876064732233056277078176554954398852087165269361053235645625528060834329978099229826755957767118965030970242458672845908213528599590107576538772337401697891351837161967223630912766402802210936461886676982028482859736201992102647430629705750961256537681600228944269319961906574901742535472029234087585225324967560117037567156499854114803244644136279958919322423091751885121103847288025861755258173320709411493765053067476693620914807094219479700053137045149529248925862465059195548348202990857623332465249227458852900380969750828569220893465969109059639883510717212881162720470506293085901673169114613350341045286518279310243884458551089147468946490382857772592927425763844426550626495554282447464819593690098148839346830100043119371834586352702231548602654189692708069048677556519750324344794748346765458677570479486401846353258960943839568825811931970495244824639405941891423875770403504420856416967120301579563767834882178546252875779751067938959835116177820520585571874940128834927883126097448595349177450897813956093344515563232355354524589758993631610461780102835949256038790614863162203792277409159678603499112192371770849302522498219138975520273532459338724608575844965440396362824742524300414203206931437248078731970937292873981942108033741621384613535468855411203152705835371417485544134474750053859807147146632367443997321928237111811066083117796811781655343025829200351338206121199148866368187210302913432735995597732720151638637370864683060647869556989769506900221412637419991107027460719969782230983643116863374521623555241031697900497179932003133828575889007495992597137228915806643754981961519676671191950750193361832749906663477347541764878168294035195997270195530016942516747711430309306056864454000323742976658903075109115575938354823774115971186415857854102349184471783593685991620867700166447349931451992171814485929276901264205209110596622882020030520812409759141185879201193329295598295667791548430828046445170605094475375651307342638880126955990095168133152621912069316034252927755704509814606454630334026408761437524699325002372185152892643294013183906385659975096041476264435531737679227074502046801782282090570937601080428782841499461880520494091044047083023946496951415819560066740158841035356424347283205781741968426784802503182175240507806234272998113544024681577598556892593655170818605894640859886018545894227539954174842174869824568947134624240398528661590709606510592821612589315687355306619365078754530756859552020971870443803205259745370215940498124286721080927424396851437889131834749638724727525753396052834390924630529686969784763253613384386374953649609631168646567482006201703074309125632870955196245559131895229674396496883653223670594471666550203556284372602973219502218550300806093430235861153793018569634842770933696701647342869749028610824921317174806195458722424649122215339301529862892065121009608013826861937896365801112398151201076519772573827814675621291405306979033311424733107590092158143922870046841849201033653087110484071808701297236881608882248030786664721464282342922890298795466682213570341083975454739251918787411585142966642413572116954496132457023622525168358288003993152126216200966888572965920209889282927266423737901213557226330056815379384089280642633472823431728021598790619327888483744189767111141764710873789148185560543796393467964030201537105980655825475803606957719243261350145534679443243889581123498072093149235432891191729253915384123515481584809257039964606101741795559822050265630269762960070912676131074572078300816342526011355958965286390280897007013924220501137765412355065641480494297924580209843764388627809270043322216448629114021482860892805281862056792647809281074399436552230569083911602633977573891346206159290979341513238233124931875159722539292779401749553084113738718427100639934210825842054473715527240984187601667500538624230654339879452708995184402441901861322037271496537901545570286063534515290235186631629937689208577623626025612746073699160915667517035331498840389915479815590540292588054984655548549071918181669320629526267769269347945372230750413595842503024145287429351581077793071262128895799013478300475509099590193326229095448166238965903034802872001416255090491787853621251499792900681943404372037742521917682382750346008079548699674732234494080770322884150389069783465699132085060949427253703075864640659273339230430500740793822327465405032324826001352920457657418759538498022985671246531642159684392662925071595070886912811995805146417457671047095472997159203102082395313018847523544166442404519867858834547408889629930905443427434324689127299962856032738734321971688990816121163619511162109139092078192754152038078460127433328074446575806290261721404676141489253224100556276044334585062807158996346497253933986288367853189479612897197608501122054068579123556304674362341822763768994692414410527659666273083260987627206044301220346671122680078801357672769918088849655252414799994881195916894473180617343739563520179965001350455298984771914163039469757786731698664727587979596961541795736014014926802199073576670791940631226617679427303542313199211370646572576189460464100658865637344248020024131264080392404163743813478327315702015789957254199899006183706540414060156071022499287279235655644406180182101453310952886724877154646888915857266459874355487302380503355345760315344258643628271086324362354111338988729954817538503670852152026641582220496194379799482481540246540081927433744319201411021818608514913645621092406434287943085987382059819881250678069282651182173418399332020177040212228676202388443460031530176338872565598882364652703174837138537450848081999040287349464311337061335426978268690045384033816965621946479318221234701947619927304127144182174871288468231041049349499059135721522006951219975256588023846465418337126152787114577822411651037364119727485436187051067750966814916308362986951960808089293073328490391802517845851961727063439237558551520684897208855811478165570972939808483909227959109677311045427665357316290243710685744887930867805251781753522459424221108811350196666209848119276617323957000575228009330401364188203738900386388079934810150133670549071785502256984546326864739233339439007383252791280133748525324488920949462187030755707131220088540424313248844633441632187583926779689839408474426641476349855591443296273267474015028620164767140610415562022945044111880422474425500057805569493247342117334723004243146888621407424243170053549189745411021456853082648230704663448682532582370998443299272116783952542040200049544568702517547868160513082581132695016869224373569228386389501466958479855840701371487237870059836811002729802865937553164586297474001159980749243351793138143707411325839709124309545663673107323721775643363683303593503564777383612608894529115813135954559656152566282532717079307037995447174506493501174832721379834385280233387124494514918476563834686563981026850041048868488670856205174461044243148518396978557955432264196542088007943702274781888510100241853527143813269171567883832986522267831619789530660503057578106323187058142427027179965447287580694080695359559256869351430340018627749325099892691768058754193523042803576782425265187227327894622021147508557537319097910634562633910861830781757374957666738398177880112349257725815262114704267312395373853072286969624899749726759785941690559711893555039238272571948142785329775206687402987563426203212566415442944845154539951409035138737722988589227351619946644373190493413494915766533753088071324825646210300130925774808402268292188245288250920045341651647817747262511794386372961786207315953970240850553897757572090261275348457798363373219810920815503732239519561344197694862523136145702669427506318760437234303127770098182056819046241704981266519517696236558664655677409177099758223991636324279001917457179827628674604587425318553283910888057138116580729134474397395830054687245332127094685320396919427851730346283385051956098100203773961402991503165200771382581202830183273484748290066042462216736783200356666999447168944155229102723354433022212588652253321315394834599768054473722996182650836260215830364840714095161729452723034730174303453534977473241215408515690220045082853451957021404810648606157185434502650380634711325940954350790178794672482323596699472969136327684703906908195840784269737216186825277519541009585834393889695197243783146864140104273196234255984985762871480627104005711581792790692095784164820599897244837887503777638637379188655929994526793119431276988471578857020633128026007475403072834940860640230979956362738873168652027130431346710233092287275464591794891638604594301586189402162128249132915034657636040305503268679693370676429392053369218251528584477945617499892836117111403752845345574950945564422233679446739160678684353508634374504430949339190574053856547674034792045452381219012080140192892310145643283643080208899553293436207555151436557803907684272517023408676742335901596629250145925335919466038538408833264092273828138040862106526406184704713529601415921011461163367540934642916944672012550284138763653912183182016294681661245945228529047736750773603330269576129287865383344097407340407854181677006907445944901588025043236396307959227633939673041097375246936283041774271332224314532056503744445198779590683082843196945274728878617933570195701343417007662993743230373869707392458712740740293437413133935583235232759140812152711262326429626412729069423210581946951556212539274241963477937329683281870947372168265943337787566849083642874908029739795798231735243782901317648536276893417462923666270297097982182968640666794684859200323607518646930663358886874996007412205015685189384739711654373068170613757662263846108415309260057476818940265744238554421102676981487823194079986585453520655877357404525774343419393758744154039297264944238521525115522446300441061229146200721002285217885406901817066465584046060843147425132355717014938525497875743964672497328182786608860344493149197057275748945904844193689594203722233537694748654099636928873758400157658173205328307235718337620144864248054485812273257722279515988918049406449452212893575967418800938747289999547812400903745092398428304333984243776200606680197520195296639234466082820855523193449451964597979167319812027226517274868572372584031875824049095633891588395946619171466084305018307860817038193373712616713026857883738082358789457258231039311728565956899873549728748986240233453488602127071832314722432694362421707333041263110106102433308198690476129324163553150644554695364443461702568940575576992346585670042276145083762297556892473199443352917704205162102468719455005603781654855732102391067531782115392347256460858350308086644647187264474856134311465767614105445375907952038335248452288862023678377282453152513336595757607497582867893423005886748912322143230951805346365201731945930201324345966374416986038425589908257354261528486647766224288057686535376819377910188730460969687072947481684637011135287376510084672305680318950773906892279840900087085957720145720497294264446776034070266547343925848252774627912372327585168364925583417810068260701647443669838298422869821021397988002024034428503597001007564903974896917503342295498847934971200607502980922340685511476558387252598555479436744345498494774706359170612507334274829010852585059858369529116998207492279129623555522729469458082111964479579997130998614249052469889245123395448304601179987496789431212429299998540171023519274437200245579118118048768484155251944825132204878032216230099820994838375863135422309746641737782127668168444020976557416299114247148714365200178008519655677791469289182839092311400418933830880494684906555190236336377148541718974883554869243977315473838179350651791986508613102332597865158786060233973985070157138184466619074898334082927977289797476766745637628367546185393153641301692476031276840636070484962714309908308025434238303354774520442098298821146594161039645959855209058101588756821559386725802525359626016750707895117117648604491845473999525012989890501768615356281057223255812135298309849784373306027057530936027221345166937092024525784473198001326714641192385469449505471209179525648900488376065593687081075324907064156117053930389409032272931598074415326994692426107605367796141324286081626155088198350576362689531946195331275648812252727106343268401657939106235941032205947700575981439124793495341963631703826066712020604551839369565571326660018593689158982808718103159221278377700491143595001111993022110459460552042976670798383749568551113092514715626224168968058017972747035746572488568855496362692918690980158839903395741859760368434496141185568011641352573751108763315004867304107374082647051143746602998800209482458368115723291503746102404147681020790877536510655384861161318230427263390153310232385470872333364825235720959458269101217620783753574099783366341518606203700771647660912368641886231871802749314946004046524848760824974048254519741949035864552829416127858965346882972367950482009708714575271632570175261122636688683646276125383354900627253401293495100031941192562169667748871396958855613945950800777758527719400646590608074053299082629290532497110163475963837424248910006466642719052032420828596572421107944443463828296686502944860298848469648751662514449487173164392985225088266660891295158078836810360843175792602832243085664467302797398362792457733372636119269604785056631455625510077993485836096396821297852156708307544336783110354834050280792316047070477142311696565858745839888631036811861729043064910531252636050834323148881439584955368514446396545623671710318508450250946771075481911095091099941226004924494251817932789364514510871455339204277533020783538452802704743710490964891613936177871908851913497424963641869713320336252577199869471462213539849239282060955941806070491953455151607261015029046164170205747519832529170868962423697892230667670000916260486802751365444929763344935093235479003225300892930895073406014746306555878463411206840500779516049898076815025904652640518669447306248032466766676012472021509589498861598987704489259205046108377536565319948050974648643034400794563088796381508184853469515463050251771639916885081683408637207040974122997129691556204326859091499864973276060749987663521086886092549708594771415391243550746310136388435245076846480334716877242942133997502998167572562138918548954300852600015935281214427709295450967483649808681509428995422369216427900642761362392019682743577352430530899556776746454760517099531411188758298161598465199505474551032703216949092064220691867284894190381702946591575831874998684303964726362628455137317286519933509169366015668688843745326472392357991555803272287767203957335169851650207590647785695404034048006919117031949208553975326139928393204653887840331990281195714911795282846774413417509079072647078767415552177287305629713596746116133889793044840929049763161919585642153724655311239238530110470009854023555959313386071345478252490516560816578182197921829138868931346519641762887447849872575360366840577261171576015854003247678663831055172127976812773262249175087360910931741083457901904596060955241761491315914877071437944537053646994081644685036998688727378841806784738185041413405188263338340537834189542142671963131789162998040913580665351798033644485301724853126954821184343117958970526269331333889738679344119712377507597294532634258623473814275030634614366524753790172225688176044939163942492964782242467110606504764291811882638163746327597670272145756392672730703204584504637889943316211243878948069142283411845887676440652984299288266475391237080950066172720616037757698467055352538239610128113393036799843784121434818018697177661388660186210149148765307959760461821209167931190046866287339855409794394236842092969293530234307659080654096776991804454051538932028304695103921631774587068223477709742711182633299168650854325205161591742872366694416046610497668295451462810777909618400001956216941863842079456635765811964040496006118853159221507832563325424203687215523315192764889798687240807866507957112282158311259421703009094099762913042525000517264082418448253134074648278417980717579181781426136601378353901316718217407492876199806727516463961133712010731773423734080372651030441548931731025539842391414272786492387611325448310627929564407993486873261773869332696618571588336573747000821495252973048188879031140526789832588030440234950826231902539353337930454678422063328306164314134050442472288028700816478843741731484306486489395393411335780238974423281105294907273463677410742385710316968624267898884902322133663302889909409325914334413835421918695667740956910195154144531074377078951684863360682530379151284160246419181417841395288560299302890376777413859986741989884685597716338127360481651759514374057327488885006306452348062155560130543629072895023219053807885878383733308369900236924630277467369286035768832770324447669292796069076723968394903946535042871863029603628185344010928951112777273241856387521367157928990183894506632850544345180737437491538953326695089108237431078962762104391757886424670665495202637498147589644606121132959611652688841824158977353507885000091744001019079402674642048386863375841241761361550743071033557761624701227407283181297713195068037599681368242679517635589273495273806856176962613831108815326501079088908908383362302529742993470177578714938121289399380733884218010187185312343037090534998248207320670879096806884693153089943838592568602577640150816047489786386470360906197210724255069261942565516685846295581314013021680172667564689974230120902544796266738309189698857741443957375428318698118217939898436068058667425452901071170046099924090703242014937608681785513749708846976855953098227014343396423080192204872024644831346955948913012305927875110921562972405236987120345249193315303181682651524277593982151362440430005336887176717693990170095295680127151428811635801619371902608316999753740023813890483287615843948384334758095806265157648353517783366599598776938185445752507742075905632474318842340504903558740482851676442281893635275547163464196070217139381364177126800345792958720728483659279142560427444073633376140808223916976028274531622600544954923589794325762111522879509567461164229666943068067273545212101163189967437694809699081022469085963781161507323453638818360515203745551357257393050933484565046566890935627495265444898147686958945554245427853046103943451364703754773078557765400435471985984103163161017858885855976093520305576557668290987991185423748142735571723263081846546443541034033992322005321654506056098743416715943006845013585867769004956918496739518744023082943334875060374494694411491768864714894621974486214624044806022973083408665565217594936995907257851714994963394458960033677434676826928722531231143076043465179697292609793423888411164197916403239810121168359511440305902876069310021779740040384092418619461928346748420368984633248324343306720026981916000249682931817506701272538000452805370693500353356690460292269900874512569562235521924490829897914355606193574737899649549313579774136928354672414984241084314494126070720978964640415138342010827870250231958150852166685046260731979693788146620737696579790057171069399765203888814461257508221059966478972153055491497002022549760027860212690188147093296642053966716852839909343672546250396884261808146168420187110961314434946681930090555067670701774659035061721142056143426963679005741523453569329817228376937813387279809092161377807097070668171263575540156972030685391170889830731742774464621587823119497806609316812730984958554963972935358684218053154760422097542996915672786143057148850430767652713830140898639863929620065885289900176380011454531573505321172237625581085730788915741659559442089862824007262099448074352293811643578942702175756337205780909546565885365174803561412132781585905028509955303592710663028860852063173623210663586387334356761435401621649785943295263543040216354899455049149732088580968952068593745597105447289100199310821166429239690102289230287083234280900127520988082816476962170789989564632645313210934161109342596416108810789440492930717703366876638562194235425968533522770601914259861506149709978885566900377808906833383055572242521225989113987863074744629866974404329353931683248065294232655766651303220263294818237465139173329578901730645416118690291241586371806849225690019262766995441812348084318142632379648450313803716977004199140811153724986876890265483405923063649056336534472616834500460379931468006311262470147257516407028091958899183664604267294633482411930333447394793226642643634886092621234215569786950920960197205127080197872130930912903581424264238574821703887194129229003880530279185589589361692086298702753200611481284461319041451561591691512785709708650443750346581593351603958352494565101181703916832555141099062026793839357910909084629536587702188254149685661906646743858040627224662415115873699534535483606520347615280317431800814699398822768331975445342903216977353448076898210003589595140769667854546826529533048302217719181680939000382500732024285767713199847454430282046835447644482089421856019050767110181727569578080882279357135422919574010218662309900078729885754938464250183170494170746311823193736005448161910419903403317344661848420351198149967308534276997038299814738499175252316331555162766662523119293392059480729554759182536781205418476843534364797010779964286191457082017085437277895637311802126283184556421792382205522096843204052363029677840486028985310202147331895925717882395596931485180009919127826398133774132398562185196118307887286823359456113539132065557549244229542396328501406959690918051624191435406748933057027483860658517454347154625925653037485852112734072693601067955856986839758160330699093255578962909139934343272759038769259504118544806374987995478847507146257485529867027268038241807899718262856424720765715344992941066968995441803245292246249952792271263932109492868682253145889396626237670843064192223748845709273315607053490285063844010847539227496159080685877322108101395958844178280447631890027802821069079517194443343784725931403965933431771082199951782862479642571106142783152076168668487701052081427978659803514567877789699634841152044962082169610220949169538648211141765190028938486793298866884787887540641662895585902827462693589989271481990874193944320407539880975492379532470824575757391025188311097550645708461476630540776839095146656213625371958079105739340193518255547062112921805818268480541178773539684222059432295412303420671923797368368284569041761311784219088685039337977160680182986109285805742694999102104352323764756150144222606494671132012964271259275933096913876660940614834339250819050706939930555141208421732740859265055076788368707514577710910008257888905832333968601974387768371065754412833532145412837534516193177374468689180967077921339379790058166808613731214355253012325544815119744513105398165204510482764608593168834269848773710696108519634923513656130510207318286267204495826415606038721631259966789076039532064033872233417377450455404587125257836348022976565694815529474713209483536710402925122742968042228132875050321687029730029560777293332223041852927158159529912774462178692856183809285352924925430798147042968704483346402419668212327016381895322080195747821020499555410326304953418060406606505169374201718194470359634689799251282883450472938657466825300285985898724152487714975128638782516094338925678688935305656012638555194145306906887277026683028871078426355900650907065826512289080123891530607768408842135978688869021977357805253670485045076212058064662146477226455411481807592132712341548593528757695030028017777762120296187430733842818828520223778949678082524289463548754640303476796321870490218518570961210460974828404062223995986172959385179329623289767436582426591579308033776032641982202426947949266721800236641246268022494687197496274745672098991508787248279879591915266786157377661293059415257422519170182369559937378007379102347382846731741786903882049365747158055647984691090148437301475000844297693157930098353543466136973739434115795430572788003533257920306888339188813534128692856931720533726214082398840265872894000345742446298889358179439940041067376767962999818628600588677214981070618348574556741135148783306092456698735935213390773476417488951737947366802058475044533506688121648914418791799899689335747335548728697153362695518082307147479685566928898141577640439535468718465122565689309878775858985998587683101536957482131224822397534087161149923990773152545791831547423289423393853042636354638250417366056811278178060975336445021758463348588037647543997851957365366788982472561548475055048107059531665510883027497477555382417579131333734595765238005959603516145318648921765204934937774508810659050585485801964724818329593896938684291487314730755972293729124744489484668830606701230627824415612856182968052272921720049091894138006250847925284016192963960991960723913127964365795906722585031444334794993399425315929857915582097700674469137555442642908791992546837808869284170625745004784236108340179342143851497540258611731095205946033087962004867467618553103798581496611997679311082224303938954316796630410037412113964418107864101625281010172931592450796133538931727132670647281042852292040314299226025906365111509656454180321320483109486185195959005438929331722600218041328875370142007830718760859623181356453352594742693087388063140062798759195387321595891158859884128930606943767421349257007867515832087545438257446868744748317191643899974484067554407636178745017932760691674132530818722844731218814263924899917140436175695807183991192488734520059531880852463306268491539200417434885805317543782596280903231136793041291878305466843867904191787424482451484261922975671236194673503634559856177394928957684242305715178690220902473991429591839604482327639060984197895631671896790759292109405372939521092160445123797333810851507134405764153656211689151522495215914211258752593409084795515445017910605115818345315270378001054308268156211330270157536673331636529716638824783514433527904029076435099175053353927235813888527869681629078568171642230167620083324126995975485649051121694271554588160588652493284957499539727980681391520389419197584266670832265018136117976013107478785353943598595963549310829492600296587686059516270575166982148329251717814979295723888591118234486177469330378048548024402416849199565826134865779223702369434378536042305837460710804712483822305038515666821728489733462507065557440763720065042150818875548174005107897098539368870513851999725297307620267609606192445720906083048365578274863956234462262786462175004640391515146085438275146205658035837052828525467871473099291756559340530286043880766614718145677121640835304196298201282647528186477635719395377190173299421779069409533113022352488325917636863811072184318105621865728675569565107739899890087595388072622203159044186017941491509628899009712702918315030851007752386307447390840847149610509650647822707162889512256282998343980761719363325692065504107748763840467076999647608658907707056278963300393741533722168525184346168630593568622648256832806044708036091942681930236518354081727876264981803493944009942124030755326787159365245387980160955619562016048736871425509365509861927082433081426612863010707731212179547074744840109988325342651951196171092230142343623968367588392363027398836221915284589726880041832735877206502463585698119305610410436857486808468240476501050143431976196659201916195908709240383435238233356597474351235185778028052226693080881997487990423792309810860588301695153303597454105379180514906372621606718112977534756996207320319532557537463306430166300103303171494242018146830767607475056480268902549329991660245185637988482384404669765280068768894776300720680006625629131223557140604741225194458723381484421832452106908604910268109595875964028671870622903229453622268194927724636313591269662485600353471087016230280932604226868433641704703098201440617499173808467885462762924685073677228059474644811894032747718038559017328397110433477278732419570587018661552599804729447201303662973566095298767026574160035800395312311450321336849729920944688023143736911768618878224164133066313105272958446356103700733160919815072224246023130528979324189358077214733475011399452627943759369806993565688384940775969356115810294355193094532236951545982485228196519888156871002466935884525439948883608756713225017467885942909743023731560287470150892869614335174280480164443136440888036616692283875954272536295502651922641393501650228786626833581934314770444445768884207196555778071770776764963738061910496284246574944330018086854921428745739197319263832867859278344926812585779836685982041345354461713054363764729594977185219766705387223273235883656465582063818900354087651142566165206883942227059191485419218523538131135124327772561241228294998823287666116925186193146241011366483206845072511739194682782150622749906850620268136298930123372488517542183797927098305331834395716970415795749549695975302304824293814213963595796236296596795400950236236064400892306227142473264257332428316977862507834066580145734991429983319582392158795015045592842631206757846512371340474395435622477295724129372103204174993203217440151158570550948930380681630089820806296103126722763961695287198542593689089278278015454105934960825359881103736204826209390542212542160652578690669131070907160625981282885659631512570534673195823913590907874752519739642889305120424617265444640682293402414424478399729612000796882644910437803069530080330463325954293870414174136927110146796788439704255844045772570420988682411339127905097586212706514205434994571620624678373117363435542917702991564901157718373163560432474058762076094264789786905789488167326665373601600936572258504364633495233940124685677012220744253700974783412077278080441539196808669488275442660506332015129622323579219987391279687304707452898542748204871963794611246115296997871183712864841165663901104464029168039251115212442513713563910348038346984815209504375144539915764848757952665289901365692463264577277667099445635644518477831071854384317255993231550459228750742417456916479210386044995709838504061750709611789949309887315845273744299957008887822460692486730148888693450746410274401145700548489734845739132005391650929989804963754067408432824894690544195684609102051863223595845602295438045737047589650461913277348330975138778398789152352905400000447282794408377891214085352696529799774393444328430953343052004275341324612778241630167633654059029338746761594680963204759280608642496701240721848379603770921704312907573089049653076086824507688611025598032339136762527995706395151743484688508445507479746306726912568396340196370952414730570750339259596007135008964501336689303681855239586920218085203427034325146299167127417084862800726311650704775077941387136012782623684719803511880026078660433696271560884982327459639313786581733996203408979265388482003455613585442856412704389006951246797710502575505052526216862711724490177471429890201487066945731541415133075849127426748249576236091920560913157214083120358878541443971801520713201916757567770616805843796952057239115958672244045550278008916471321379067169114776149462717764970097716629785805570965001118494818443344842292023336360219836034980756891358857504800548608310980564869035650951754661500166433151190967201689506958186631836122164025192008861660091941065549232148266318496783996062328224171839842912460242544301360848702647961327878690505994595116375260045700292279692450977865484925766051112972774774961478690446419223234482826735679665655992345279967380772315413884414380085724845810665780411323526275791334456811343209405623045231459031782991708339809666952843087022613126819813411534992187176022691150090403486179202608379425620845195469670785372498989612999154383181031476474348521391242003688209441065570899042860391546597638105632590970738200608916007048547953137987137830743012877762514059236140615295884953742158404492962918371485007288511652515230512173965538910766433002487166692163932387316372467762908122346979548128860036246873848030060877812167445672133164359386728536046293318030123351497871132429403656697596553158677910170780315008730908775497836809478009117640831377833658403781314581479783303125700014609543410436625683491459661376434556498242915524287400033859961394167055127947002494376661306678799587353537205632587624676133630219896227825299226965635734261031303071122449704589172501541255554503241736817485509947892056535213188167630280426801513034852855639299379832229012014357543962245483110195990635042701117172688089575588237402970913393323622062384021579952433886515699962300277033992096183230760995910199341831767615955842823865686520378415947935981520055769626497187438104611044983024942090448094181082204844207405180951611463772995945751055767801095010081252635663097237964959293888978849524306888964226903766240839595713637454815047271146465089894406682955666344242751577708731241485712441410840349056947451578291254489758389625507458599606530004640655855339472494429278890806906675191979640812382792503963444670658841890913449151268460875414649043508181340364899628615744788213397703478678556542033794218866972433343245432146990920387170791246018961942338827653545265626630479565948777137931585745741990322214058394416047785995464360162293828382588171438288846999832070965043027321528031525858273919202657960728711875732931249846089970982009712062813820233385959881077024218601791803663182214442841288594363974524576782551035564508888381826862682593560366330767008839421281327047268679355699057152829617971559019200840242457759928295265661039228160692191033355295232552550174033993039324539762826702749345713854299483546466112530781157043216178303819561872869310371186598403162081299600576010437048156503758558932258904561542375791773724817674865728120190423186748352811651275076918551833340392484250336415591296493806130688862709205019947148013671781879532315896376354518382532889533070731131042951042070779507336153828798131589871561900508216127625171910063223354713012470090797854657012085768640555614214142543635446159642826084053015336972523943562542465830070046099918159370699191119333667401044817721944753717386635689087867805466651818464337414766163317281253241083481678315881653040103581496348225407949897188423164207593786521274015768252419451888597338084270015500483437505165566694616305806696215631547877997866880237148188605290887804445967239836223186684010710378949033746093303418818084209704551882299230603270603244829830349116978552741715395174201995659235756983134639849627664155429600508263015372553911766744072758697167073339779480988370261821504866264306050782836449394967410133532361829564870255910726792098112385804806702679083918051688792002632027558312511998752063138008735103378454544817336589863479234505570734480809903315968273366922460076068437283803489000747774281133208667404146474450070294925782659182613252369888214771535578991998084189008806755214433368600437655848766143577067037776922058857668072966785521989919216665269192721011776643878831346193687062875959122145720893321418765025588808710379817796170951798107384867545306429555569866513073299060897218243074011480765784934656155430512378369635377620864909057712396984380954993099459844229217891851387585928403026270680393203710963557190696844735145248806447893230205122051927162392325048182129581739646690352079599781711383149957986532392885614472618876969551550706105441813437137962950880924319150658758938776673365091044500243943309468499373960814529669536191686025851742043716186903122108046313965500240944879905224230074012971878169523619609013245119306889215499646717286302558203428378291928486849895731299101782083122327420949903314590734245480242006646454265882922919382795196356893550656957439359866284808326442616552675863629264750572816580619977964406885672628269957848532087736971482011494650685638953992905471222679449954783720290396624383452211623964235458929030053913784633649125864333659527780708845601538771442149324473107657362549435596181319510440650025335471573458069607355773402193782393985033734209728446731002692705412252300438664140312837994009661844456255539597493408828141269444148845800523596913239801738185740062550148710407939609215958500867914464152561857814019282111478097160732107925120897499748347737077093340227233112665745052554721785966318595310158035074835307222664998560252217819053652433287871207581593864325615649688266037486217516514186745484250109679681633606480567634131735335012175241587027962985558948363913395048794194210512261223637470431419729407275498319218415003251562846643518213858175217842742689755290653120139925593662620073133930738620973622079772509271484964030849120243446725005294338226680685699608065750286620875539635821396964221970833171765868061482340552356243419563854438118423225314441471575459919027589884666356148329107844209614193577058844427441667865887959559910112217322506045530348445139364530892315286988212452720912820156138100692005399064750171695579409034723177553054673907226301032471945321024161974089923252215327389852526731220538974008265850394191565595659234959226281566256206149535985261060864117880848620382546414932347437096840213033744318404639731776005102443248672645906638830641934840550653811771395873578670940699828734218395526197156140940358296191093599628676123305174995241619705739255756496356689197877404965969081486131631229292932017055071301116946487805938722169674952692755712314546027944764234882911366286129016525057970019774590207978920145920505574006067806086673993347829658940563199482432347322234432164205019602989222430405974948496968260048919505633192341522390170202428411594170429968378677129720068469772384072730627836486880651345677870301127040645565816756374443191495264107053841177925426817090300834191234597819973307479638361660930299313209802969206115388078486156857674020936017539708649236857083797195432223329716290369728798202537215172922530296247341813135394067720273472341599334883761779476347452235998041382304374270267793961061617528548613121672624728122623275390115156117163732755312395033670422103415253705342307879058967487190243347650885279491684504269012354926020009161886301095156083744762603463259088981217008753562061711631470832819098863648028583441834945600169162171121509461371030639255039048587701910410414631031012448467641563733692298871080071361648513987640339861252854072794395704313084674831348501065046146437054583947620611306069011319499052273330805968578060730272187801088621142930004040984426690092243784722389558190813074325693032663252330282270968528772552525085711411330444972717019196466598181522287514333200949548840979208187503530284535198284071593615586977763148833782728582824086739023988460888440095074312635377839427477868110604318487275104231781807310813745799906981339177854792491725925089190669075728137576637331408693428235490698331747009836862196307600851022907976258305384295095086407498605919270888353686120887980438984305032723869636307641333371883373700955788506186139858814745101337953403263640117055788482272443232909385348094378916754621595050675102566362154970813060387506724444533366755802667796583813976914148747651951160093330430886765411314500821836771512498347268151189955641702370798169197467535629569194667588667979641502895301284815523569599812026675015338742117728876765344404141233861033610896213457238059730989606632689975408427903302199481180813330044914289811559982791179763871839025987531424117637285736575766095870670672101140471115119884754929927457615886682270620376159406329743119576336044999091533601579654535303556480235668199635723288365348099012005273833544634401974302609814283882809331340161236605225573601077026674585778758556036920186268682797406320478269742166322739571612433930250819769565110773748520873479857387936589309469042024835720552747050447635964905867432923128402537075348736245898559929552745266160919631064246167470249487727245797499185383573120530653775421106659180605483645091426212789911624106798278882925441635156350252934506427070616029407021858085009531717459506877284758540901406333931437487970334364101869061673522092718036635593497778745698776948932569157154285961954661912055976448063397979714543468679208277007931569544302326875896579907889650970219716968175646015866690013437025726028431296731694616830590093041063552444845444945166857203397307776539408623181181818262133631542510385999596219684972308846261021155243007694717194132397488240195196605450719369252217258955641937412772648774832852637352631849734699862162657238991786432052437701724654822767124299587138339453039317809143845822931980246339571853329307759125701972341548252781502694114559055294978726695305551211206503838438022950291172981776500469361748783342276765100091093875200130919697561401168506355212244047704994482774144230361495557617485168176765693136586188014560741540634247229417385773045661662103979274189199224959257970389361216063840260270446814105935432501590680842711886042380120175764777515410696125931414588010069261665830186472706202200843078567832712873393233604183719074121171213950540453847990047475844343797181924797965867436113503464137165802468418317031789657600595104527962091887605530698970460359066312977703757823340582274213556722690565130910425203509736916235225852598737763505332836803511507126984419947026628003620165460243537133582445363000093837360179436964264687425513431188699746205173710926868444039896872236662502953823854497178593762931512248088879096859319103889713567899354917045648337407262040642046413179213430937362702532803005492715863929747601727987941764655388934254250095525161642209086352851223034530120223276353436972365187286281015666593451967342171787732305198226797598286337480675862641645579319223865765098622956549672711587621259230639204893848576682758152945997710455860203550663747463114034886181405885447200813735211712066697361985822744832245616596215582157798682375180544307880355679766356812881656337166083183483307044363639584422072406829488905197254324070639818748963811150746879909618436942310581630909389671404833098076439367002894397804516899149451036940612829652927311236065043533513904391882748886546679775393145020805782656805322354159244344117851828049799904700119102838178892417882799327201483747826624120056458049087047974229843670071410962078709802748238182521211796759693786146259552537625022579920927937849554401485457597486247980523844477386216485971458653496442175717614184092866667845187469747324343046524815942659191459279508410352113889611222284884485049915740844894495218474413043948559167336394383254482320258575328134746589755178491602363426308749373935460461967024935575063392377983503650426143295691844580129436394415842854236911296691160619617543501399005234097983403223078551754145183991499758606771018419720428170285136972486640933830257000070497007380931461588109177636079264063393790548404105607480348355276089005878446452686730012618352773026733706088298362594042745239576139986256855662911087005778560506921465356073850291963453982741832655325737273625403759718332831478173783315130095273294288265387599970316366354837604808211993977652170362957859708240341672597567392771129781689703772181312205370686879891933384213435200317726665830199212853505788976344084776384528064501791069473087244594010212932314045784859931633490507169733816126175198760357735875686443029006912109163274186233321203351647485216340855862798318872381655852131316502353313398304722237699103931615854428373802790579173271292461153781724952782896428073483327338276368404852517132389808758172778914391709419421273135727185600887915431086778362207676356857312203097244161899901608630587285499241436222977503543309599235875080539078964295788025717643208276947071355114153811889144118218679316093733197156961075430425893286197488654069301474266284851252173969643390154814833024193543023657805722952990674610798841173174690837149994741281940628639669009954215643431652367181593224460866776362460096257117295196772016148047110160207240345616640782288090622992016898517078428916993764028429265464602287719933077717573241309493541373963004873325401196868349062922586472041869536042935003198558366319555954729662572148679801034963810239484489266691254571273826265085563948169493752348312920376575716269873018806428576976174695531620917266510280462569684204534043998874989184363723503653169220074708947237928901897854560650346958075016662943827320450646116019691905349139582484192743709311091877486386279214795655169648952460201645513839161392391252610895306402171420829783216383684915053369839181645505080048528834504406076637712488460122940165596569750000552510583040727090792812588894993846554005762590034726291748919467569726186624046922371981492124204586661490920016416774380600273221174170603271841897856422144968513300536438726690725249813840419139974859031803313092297620560303540424126386689304151452752254006789554429701316780514458661995907762976003949924705549886889101735318956190427889484251956912326290980876823540107260316899687609789806182981078962866915182166464262086574387940957435766279823728139134392034904370731269020679774927659602379214222163642467126396180864416001413990707637377899122208102565577317412375768820095535430953481336321468643265267919895415895281182748849713556400699549406973968781019495838111431126562477287200811533171765996861178292063141203606083175047486536593873237454315851931739230790077622324506122664294473956601422545778209335861772361556341087096439193915161565478530377430833358577636583054951690004184645252418222454326402832914604578401003789039500232017004131629065874250673947511180746524206714179241042226604256450009265268590127488326656918822613652535620357473497970077057106731029186778570040226828123147030666863498285220107935446832749466469384324848210766635685069332078953106045924420759662279907124989992967400507167489001330862898966033837714909081483999947431425421747259361797675738964720055758656029695701761358413109640744691868760247783185390151601248919755310397450113749039175206987876669641311987783741701498989455135496700503641392579177420788245827721240238162660883087370412406181060870980098409764361925377377522047593766592961400872860073316347126897352732952952958566774754561104191544428059035743299340062225005881309601560316343791828978581408506541602113254213215839444103558934757266404268019619200196789652720770576821063202483330478946257134825001315795252226273303571410963393089576560231924817583592283512295920211651401387708963123757628364835324286683210745116879327716088838141220252090544020484334672321680666660404226761661774570358166985861434772054050651779383311869166370744546993440086191769618886412825627911608799127720654952669054813327248020734097262581569645986139056674227502007184758161201922717978268727098561818816442220628312006213782020006560708792579397035700632312311699699935870257150608924111398416115439054938198377692541656687578542987274070857705481570786963857805531337246964788267411854787711093366833272417752001544728708083248366594952486142428372904861279775588767334620995419430347228975435961587656576005948695474581261355005613461760151168184324331077691852652735750889597862194295217904189537774452141235260827875298076698809944048896722502841537413700020728589973141170551570681830508516441914871849087647747709744270319504044424453885724619020890301442790977912775744417719439365665187254536245454283865163885323100998103129447360371503590414359505826962230147193962262008268222075978477043439332428822356319401644834300094811063324048308740687611562415274499327039149019548813577877911143487195867482612131528508638401135367102630587522899357701383047171184593261665255109444680086312241340957890799870275168297119002864064492209005077790770413254299623000566925750295839033461542074656791389146802895618900464126318232454071951902668962628832992688910053667313025835750605566931363125452263177096555637524694413466847097462786358058868461588429833701521915039483984415618977495734835644136295533866078843736196669546745927135512576569589141102510955408412416687976720106977122300695934378519411508406696804889156310259065361068079824379804255825064008697284501668002772914651326174814898033310481280758007195058164609361514800617082067481691423487445860770483198523448036588980766669731946945882299852104456701005287224095366043593860181830561904778507430920414653699629010453654336794024920538597285890203081398453685229464731623857884981852654152935551823497592900761494089377507271359882303050032126113460262283103562432919182198248975222003260317930799163442004179286801108835903621144243838723217407326118568296382669570495260000276168401022628664580741768117482706899977649251544161129885334629390729965647618934535170488152057644426377902300086570266152328380558766156926162379097603621006289860133666658411068004555734792453144787239796764795322893722071155013362403018700676687317281422986981748045660279390332813066301917083664720799908354179461365513220948260860194140595550225068338029331769028282710535007457194400997634691597230995809261146745918630354324934419395207725131335675855114780495807751655028774304592193999665935933062265944620870130145190586817367202501246017474156812844075971215443063786539275518060095222478775301613395089292747287980152684077088636132342377987058762552868166711781619463012909952285172989112910174938179516401132162329935556988115525928776710957721018110852084482540193879168989331511271584172125731882394545170650214303261697879885154163679684831572190425785345339877710181503896242914306614901750795959159122960330540511084398718426263591669063160269229487239542148538958682656901665565948660285873220733977487669909678719755434732013618556128050474553799610637540083347294656267862002977583538430644692087899138608029365215109872247664828417857022533520954239274304123592912053672839088101451756982474900854933145668639310429760039787049993377047371341210384991147283881226845180805318123868662190414246197824499355869721899887403497591335781746625087623822957746493549705012271528330546578912615809373100461112071646063253996946652019814961440944594916678309913697303508319135643733596963862200646473350068970013798806715526676601965307929864963779673876070092379021507421566125759601946837131608698386630304337503560598653605324795694328597557331012724566105116368966251411056588719066135872639896195587351697079796169853043259941886822486516361920335511345432478753800249885164569196807801659099858695806751270285952046183559413498047450415228014468266970236998595769926144544078256175842116865842053398019277243785747795815145500412221434086058622168509931235250129926214447697362336471818513404856508216605956427452632700508272721349540835154988278263149796661133699790465020769824263930995122608292065565014605909497419421261856503812655116255366334868178583694957786963929380498099339899188064230075359006251496851726520410260703811344777567932753320103516613506744194701421039835376990926103758858917977074937811299714813492685262737050628496184594492351227723575828817312528631831381840535308531343256315024879965289491546987731205131950671748417092942584617085174790117089610269335181207896842058140824837178898325907030502085971523805790808048937828568907823747953700928494301837007353084915318322498145125476913283220918699344699803132006637291834991530526196203104040177598788708300037249557346261007788483949565946774210366932041230627666784481485854129827109946428973410398814523686772176492065552500144834659804380716735743988326247645368576728541802326296621637899342453669706253811647230503458996997964752256417252892297061386841641457103956355617016841948074247885489245013272636889581736091240048342870459551635226915718975293143136958555425836575584560877979999233575594132435314143275218556700186383675617297742182924118552914389789870445690298781145161942937730921770172984814360610164519523646958333888230228667376176637687340691332065986517256107285888090936284053817973571717219919980802040678057350143120213359809001500621415975717033420589281709129235785543405413787300512985777414889214502637491190263529719850282314463772347677326301917746768859011991329921355527351678513995476868944797377038064401372714028978495243644412367305817429111829127974184274090558616794380668752881736479261675879609314838099399583881265794242763506932034112964063226995164163620491519111859188641291654268679687797274176459275421401098238737617631509300121922991259845266856217956250027647957114539600296674893950146529431869021686890659893315509180116676548528814831876269607683705988827455122675217127214568878835068340672567468808647163868571219899210945168100011001126189895228068352574883362108703698440283745316314332231972716257657541882189211371318890745594762322965678069342584685959522953380019434795167480601572000173894736062814478355058798283517974472012835980465331765869292400184496615119276082592037724048769275437886925133852217835618246277921318225910396704326847878565115841516639812430305405395077774831576067447082893323800318786912253128103929585850695329219751689250794002059614532963950566037879688408988063439007982842784728625150929551555817268383705361835123183048372839845312140853197276485731797927049071308585647624808796603876761856730859632602527912595219538623172651554555581778534690209664737434660580739345118473115952815018685746561478169381987888784224995501217059790182706769940453410330719131043037904152488188094875230183032038350035487933361261822131928601690002627516753629812680846430729731841152593090989434723043751765201132769467301624867936154166689389232305978790576922157372948237792566427275629325609803866775368971968973524489374676912696859794976216316548683097833914084461301252967128450630041288845255439185509025278315733200662049888371578088553236517661476110073742884398383530734174975608787376312661412113014254144368771784873997410941591031172977651073244290216036695933139015017778317319256343248000154640429735623639031804011988750666001839673712199378223907436815091478321524645206109680913505510628869407384841272715791537491620367190453323277610600403123498532166567163491306206359159006927665095728516593731434144448394385506392697168425372361490961410067220627117126961850952489205434857678187439907972970728449007010937568720615857107216427401426876010855355329841629126606024524527990922196957851375759124363012487728460607447174299760955500914165427159744100177352283319892757432461840478828782865099191571074039622731134142761088019738524041028978254547116510442596995033708798109780558912397488832309551656182383610637290178085630881191696523453100283487969083883131677621890612921861148770276087095771373416002444437086146385966579718537140442246560388277720113636132236656798062341824695497481312786190056476148055419229915240895530586219588147599114156604996198464933345314152941075948867469871604995005918094414880861867682712351894772183420552167710965982675057279578297868853678193388293013610589010950747705743212229748253746349595324912427665253099121592779630417559776307524661796265552913428785777328886318058815033747313633922588291286479143144029632303847160277052733337480310901004145663996834838058497625920626829020802632893190977989196558740534414018142844407064075166909387137145543482968998806009942869283414799877927179030693412881957081875410981203939586873101561620847134744534779904258279190759117741618747341733531884680857196047732353941184103774555002089687922368867820523068540940300767644868233193681799255665050841742852078611794815155544357852518346003688792742203448601650541087875913533254109889520490161827460456634963533988680995341339882614646473854235029546517962831938356378230352890589372669848632104049100278876781103979353780286913015230423451442340204692365575436258007342302202354945535811818400967122066253875313851223828119238157552846745864021407862434132452586900422846624841139880903769907765309266142555820438168776389743711914774020867745885032473358770728147141627967086699300733195087395151723343789306742517503731299344351358572343690119439490334995889789235745706364866900286107790746921253531902734455401385547587097463853736659407095675721918615318386088537070168955765986516178977776878167433595612734496256351462546781800610710791478370607651898992661469636800272399388475867402131444104469943455531461822561811544486365245348419062512379042373047852417259099189356603759640149309726396876553417037290129703577200574777171189040341423976941957600304906779700801485956395086479475349564300718358276761015302302317691228388000424431459693962216949241197189413209697976381707118928450225826848615817926097024860266163571451940533561316369330245840705395156309480817221424199376573485939977623763943110562333253993637059469649230470770231972255146430981883661181455322138932248839703686925409462394619223827996591500838560734171951093198763022065417914239559012341160397556610603628095601389350475256269244552223618619320506595324137274647173775956335671894720887224562740970632186786992511875649568855444618399601977498001679435282505886223437845106124092909717554549556730528141616215602088593822049854795925033558571671315151102661452419625341389137522363374399311358018081530764737539762648173439752992654251664725288851422928962110519577215732862646801187599173744355403152842114920518814818286814955018112343211617882879967564339399796207869274927127119059114609606458812279078134612633006921425663046677550450458953521395777114693272803928953074474045859356189575055354155913222720437773301993981318870828342150067971644237674514389125724055778598728775987993317965305360537516350589676726231212895636151263006460668594096730999097177765672840946835407328990604982584120439654013791717186380626506560794168053854205074675569545935592157650366910368179445325417721932587730729610326843893365016868120545372094788700651119910898810975448031672099460274148426904188928483729236131756111781174393264541097816067861262229530816208113480322344291782153322161366160305826401469853946921993751853750159448318175341396125592902558265314487782111958107762229750541887379469263981489913974977485050079364370072936889385204512568896052834457982466694411966644090661609640957642146997120875322683808403180972892692746036363737711306740642245032985691777331390578386175999770153464861940521015320965564963172057917635165097319440367990520229158676924991801638149280813579572043350078700924760436380294069301689860403766190972904653569320265451136238761017397238892652122627030345455105291935672722302943936786135547108181895230624087778052529347691522590403158377888399679016837007954027885036944782257422514781546586079599452468984400254638389493677873942638967328919300782153067719869524778217041141419798470764611653544361518689513471900468888949580006075671651827874552329317482382456518457892514648614133642014166592984287881942534467660549124450928554329924101414163926951723243235224002298327761940671687548126371375399391776104126256099438260813488870104365540184038120637667197379747773164215937499431005351612716669640353932382672227842832730742661782271143602670952816114319112837130543163307740431531908462255004806731274357983376923634560499915832294069163693932962264668423274558949083845294318074037284998725667878030608338896728283213098999242021314679513126892159452491826363294317391191619366878276331129539395721568966988796159531898606334375023715644568492945226737710717574033991175757969076763948835837805603483137926732161064569350945853039106548066835297222576213725256622327488780828468027478246239040539308567590096008939607596925148040049135476291002555272065957706368433757809768371118476480299977737620674266981008227397875627962113611244210826843205946740543033135650766947104758108870825918277062978188132191061666200453524939513325319405372369080889364725780136944661434189626445147987301347101512175563505941363687021506608446949064448752983944998576966451307926105290123076798392563848677392587698007871298491119511034129729025211191185979396472925720887636240863718343899028051578261225978505881234165992680988463332697009061265045178246589964882923198299051573669790523827101111438518647850821783195407604743175119914571155274131188444461317667840123331008849545605149743034702804954983339840806445456140163321304081715302846703717814060101056742579769404503402508064827104598651980534326700764065091255341283503780697397975923650772311138740027280661552947567257618873598958290482733339504019633740756277685852924397741984096553367432088996037569817757684528863007373820964557385182358682099020255791331839766301314435011657356393225992268831700764058310295824008126040327555728878585058982198515629966267163911462247566284092535541187010108208012679038561348280062404309374788450963358758653581340857968624919848974016009403692924357344862203346145230084157143852326893590170818287262527550495127602365062032323877519975515621386300368620432861256362551142843501303136768248376001292104627308373773348772707573443553291428312997422747969839846832097753498235113139794918701439573925475094861370098188039593247674897684312763508761372576486924128620186022997693868799717052519147843876624933018944776953265084874949679630630080411165410249972853445984483853593919334726934453024517494405073183219301368044282341555671583885608671673711065977022039961177287188726482541760805635523322125971848496878660223327277528386016773174509426823097651189261361474614609300219538945823368214604907116989940682406664240250217334423424817700084628065072975700798487784859986528954436418628324457117729430173731243690656248620710521498386802132489149917849057979946908825679695697161747508252982928249827954388519260746704055302236875333996075809590886415062193159112769613362385569142326114903267624134331159030383566832466879035591664301369747898737547745064256695074826653595337759221897899847842764322699049688251421502772146680482879629854435098911309462535905972151765890679748575225294288836223555808516669943036403944552076095910887593003595976039087863540040234056607567030791806360407527471048864995200075568259491249019993165917412805139375027820378301662050445695570716754967834877517496292721519776007586977986112157614171283829176427884891100964049920321431961661295111317723608718271565490306915383587028075259591757216327623817473138896831259206753926549680580911455713227718760096217860746657070013267985542381928159390202775609503824729156271781514789146023578672009835098884558414169263476182352999948283416413296475691100153866823933934133068164078674844733160077758714513097418351328796404768848852795926793219572853858528261531182273732874235094569568390745815497478418031441358639277102752132119852603712257201948384262947289480927542019746758170687972599320474848521423358423879291022545655848280322768948600159159292256849027716577694904945575676570186929524535614416805189467379762869870615904055898362086722387202117023925151865566306372649748450485360705495054142051388260593023075262650334743399870012520859462696804018113724841112290461883534180044701606032362697209282578883686446627988438182645597063379578046577317027665003492655770570158099021294013327816467418602500558637406208255527087045163168081145781577259559738059925589817597920655201987295781859446960027619728679205867247053889037830289496759484097269325166868868238899927375292112268240217345452126593755667388938495818487368200604587906324060004715776007492422376994418475122717589188039030101734268828077762725732158127761550641564127180922401410624648523650260401324312061475004083730054344528722269263952044601847166945744957197761718628450420686098818994157130743553752224125156906350764673271438201959822205883789662643418552109534120502366409748315179456635969324825167304121248267234002194725114810083870196905396801155421439091704291244746587943776088218759793701243301301825031163521822645272800131849118478356170295349892478484543258193226792496909209980473713505856287774647139093354123199269459503150899756736485266126161775359672271781111097290068636151395233253207057054054499189016895312775931668640535853815913002278834677159674666698657750244435359073996113799963346914396048950669490075226095041161998230860155838503020936623066852527689166117872214708094699464957107735361340262517193052912484399654094007662769078368027313310392011508888460482007000795886948697648237472526683486677537534886077005005521089113776390657588362143725881249096776437157988714194801068883188257928432922171994313635198623166817581466880457828204547573129082460424519220148599254744091558030752665838101570797805566842049913193852487839701819022354680712608915256239031326202258701979569672293113419672248417125823214859552191784524582225597003409099699459027581830969763165591718096372728032017943410496884463658799232540827073272011487996655528149388458352112922244306489481456566414491463410964503748707323195078911081403363426382815765414948625578396523176017531129546305068534393276929800518561242292724682314241336516041664566578191566086352849987791583106072894920840200061859066011601421916508197809921923730029017234176183506539126837256120077415525140692342652357735616757014732966933459711199344786052592879765796458429895354559066077495098765755047566638201403862125743932074487877973258586386014664915020679990580898787396597586964568306842840031970437539941989206870601868232992652193218795803217595930310254042238164477159193929669316209906269567126544357610639250139776696017670724250835949431264627501602263704502693186757715410728050081059815159660273648721589990860638676536857130377085315226468767327961162398471583865541048386718869782407957613476323659663959997717141983048593321535528301050864302232494102728495602086921177254517376414377976843501307437706148069522525787654848355174631095736257635737876029671398593327801978794542078739897193746159871576530201751640114864665495922590131070186407416184376044228701375003881469313886303112709078967857333632739705745751678605956131761518162491669384367673892921261297119282230303718775589242382786622908963028661246274497077626516336280326629050283654556877245683900313243839991791967472440462477646242631395997086798874555275040613790950264826520259500384266329344212693319113437951747289319594141588799986875290617251101317335483997644365408588646451845777973007179385022408128989723136007809266944144125852669391741141985762864969797332735084357614872964984617191478453137845501626318294072502952925596526418627350306078242247337521469879640523975233570006802276783978346559076785295352031738842584852084490262958398689831202861942611899626814791473774125713000890567413201184259297620263683721553569182432723317740549585743484187793903707282525025772509930648503023431756270864040890689837658835381568012703211392696084397453695977953867260964485528627736572372644277292176325260119877919771716656034013007524883453088015931455849574601298797531954126004533181991136018596363886656083265363212521125269456224006450107928707354349170135804647492629913036245160721374476000786252134977050522190069992692224047461186454522738252716112840011677806938761714370233563465437067796339331311411669246562769399123351286394958255835111912672328797298282066272752026214215920687641767136960927144435946206176905220485681532161638824551026773520707435309192897658531598586859786783451018634734269548570895928015335279412671744401425270836359795380677468785315148814052609946171935772335233600762312867879827980122564519447113118679575280618000746023665493606647986527207500703268881939148352999204827229359311536012333130165775624376352636846164191572371982899233149919661870597602831812070620777364962558059481139395718590820495632371385086733539988143023057651946677952627348913409475932736730281346899781948433020859315220934728309607354509744929573259302695283773530664021094229886530944660779037719245723560393158696150896339306150608274774260422306814153682104032638439834413914264581426686676294414248999651142506542578034574152003331922944984029232468990667957173457862559838503795790117464279763632544747139828882246665530047035344470828066430469580533378646116556909640879362308723676393181392482899154287893321867522163622467712935920239087447120438867296362640499272779812518162527742498516055212368519511281817152725724811681237202240684643099580465244429486603657256373482378791901196967687617827299713261173495312860722584824128062218136185470896971929330265920929734494797619121225468924895736294144563982010650217935415173443239648870611797863445156007220218618539414926391983886045065373654032770771421011634538754187758513357336937775737992248115954936190457937160556903084675790021781532192753677371390200208476491834241616551856643941235564497530224716844268472031519418157659024872636361756409542842771132599180955140263970352816261197326140193478995635860685769466137258647508048323418047557556358103561246197517792953193694132007085873568060354837842127076783320109349089145011879848139972966967092393391291807855811777192832182146677325722953414151100020900319128902944140206182670995617014290303210476139677082699248781452635940519174446011964401531914157644470314497198763633874002641940767501864625104167036320652816151201922392031242763489605033924326220795462719312991715354213056254992250920175748089734044327898052488782866343556362615045669705457976316099561573689426196385152608182128376486589824205814625699171318389494543485201415489069571173698211385797501709247118253235318107944716911329919549178937826982877755511413825985745150355610145799243002279178006021961933592969412775600123552156773867095348844368877000994076375501929489674147884633324827695010550601492121476508373197089845710957067418533277710968679640717204600757470491592294679476674732056816631146758702607042895999180243590250326992340683634548580073956234757188582065368229249138738452965087104794927951998668263574809573666217771878747430644812662090046612268603116324223406636508269688567040143825835176635432672958467018015003056404761501510982116780856385875213727992957077230246768556613355600533861177071456849320934478732927371519714467071309008401384850313224039142206185822378672275727230477370493521765243420560011937025999197974075325961911719032817581210068459791718454895899642154356699505916972569902382022754573714985611566702136509497056648336969548210527575168006418915806903082782778738517663002824667816117958191199831830954817583704003429305927476899289616280004528215017997287049869116436988259327731726060135083317537985687453624796854524259051639190813880137513157797178654244798326641310261296053622007852951627889258691438536417962636797597372558770991163974674260824392582499303967302814235741684458067875746356046798396887388694329042809425339746435737261888336326733014054854534205866598023626759975668110015343471042530324405502823374534208316239612609889531174970356108291022877850684296634292421642243977986762760716549610608658136607381757155322410543121570437004360115424801075117933231849738980895215075091988918950600580737206491983029096588970526015190719820899339815840607664625939296402947656275058248525752242916054185099893095024336565152685192257610649583627750445417457072014784751666228743269694784569406951972575048909877824865901927488242777892874727321344155379113749816775086696189153732677784106433073134189258547139037217153742921033555983831442405961402661521983372851193793897898072073040202631658563535530783807405932742522147805087843324163298050854905708070412251664368724373543359892663920572969627659645055571603805399531724738822183737525631132522303200228152996493421288673417349959455842316503906970310341947984513402221015655242739115117896281132120564551799865510744365228340163843872862084314042787696930339920353612996151002038619553329166462344534777703490365773013559485001936562754984301098761965122519932530329453747257255629561489572011497280436117267962505327639321071911576677808350724009413123623561986143648037543016241353352414133337414407531856828141573627081323804231690148662768904861992870821674002664058733152280702039747573161636724880678522065946518497871472033725750948808217267544382270301112602199942828394699073057414044431741649460987315071304784758084950177986269070144246804036664409395544578342512751575833984723460543680541687510413115418079498808733415165707639861215373484652679104483691503840192152573635854135230272445570635550308878375516824732296813602225258281884255009988633289027177722595320408465370357045890802691969021103975910881615923019938710511077767353025901920834397336936134735819313088385104860326382021153898535342307727662238014570640441287528691129683437955825555038763996804522865644860593675908231127709534554411614939474630539431562057201558042389728837457140273945401913372253776915514855406819544933261469560024341399803526279408221944171892203869440597626213320076803523671640151663937686957090860762208942937999546978265010602088001653950987578494484613619294766273442713794564663957111543706055900282930141511001606503951724212103246031507167879044731459566154741794109891178112749882018533020537884685231133647100396054444923563656036342409416761275630063909945824577913729565978456646026670539861841997306660488799872818490836030367786638958151555951581146227991782641735047942858636845271930855777414305293158667919561914167660549166846436733315004747256903702891276014218916165357715140824534078705346462145173560333028178948004504202900811863963834050772993911795385256923907677279784849127520850152992615190013366920810040746200397425394211531245585825711495070135568779432366880487875810154927420219208810977080179966548151253994099394190600658990198836309157307259026350822947412211461504260410446082609064192070385552114701190674749393044023837703029335547483417076465669981470242182937815783644894622102102422814714536503297114314511232924404211221950541604014354460512283346916129720322803799926475391626686605200430523795857869382359237686921436241119386507995394679522066780065808374581876802678600762047033945223390354362848460592969646645977424282315935866756628908503385658389563714577997907971881814740949761066521413367186600717746872069040456767244901058875630573535676273764949827588508407516456749416753035076944159380894152088014719224881656407451571112697756340470864754845954793275703710254662503595668075594196159913595298299907206893638815165424327002912678149613557315583876065607767282352705802040023454578182805482854259592781953834845462349366267972798470441951935372517639372762233394822080888445267677741213379377604275650044751355509069311066244128405802529184854726979668118860836356154807668046279549234873955270105120416248896460796405836611358625928625901173176388092339618990541632499640622197684539299803111032080678022136766404343230792455595748067670361406090559080171691889728421074272517700479090558928898767932468983677669897117462222364385796827576097988999230783254442415686096665635679182659203858693112017136677342113095919299211588614336518303316447833639814407329489851327403378785149257484139593191477228055852181707093958702191374390315192567838475770411159985423818450438341334316392597578005254168138263960388484911897889833593703001230626806090973848102770381072090444273475396664514637149088915090262181117081726297222631246825979430209484384194540866013733364813855732179976832087429224351600943761844889268268263254253896623915010189535921166382805884610247083286919395305471770282128648280060411530864320984241620379873582290122363992464141098791542707130690739432399185508025196878216731249866892882240649107121058266253132740844414934266880665465169241357264255526128091457928914607537177357381214413766347215506467083993611045983557079391611382151279862454180538347591158309743467115213399997089021092826679379925857033875098548013620558015482226443486974064920072651502594964104685920276122590919974522084250396804776899685831507918859908257525847615895126769689200618469588955517264463057730545936450717231989524980513944983751449743440119227561118081277993686900630005001627902184829973850378411938418704239901059004111331794291374142748810314441624338949277996221758339541243138225656208045514658465323582040350313998392623755099372570789767486937954685669533504325119602901384108806901957717817196868648272113330773939821360118769885923543701904601282400201698883087905698658937869828108133141399520123302030880642124910927521042141504064437027597098794725911634962641376615229452935314886600728210806651671694495775370083981090710232732373814829213314339738582579894388963009326410159225424455890704220702009211512009815716228429565388384534200031991371274303150875359477705814411240502318046752739359747591325153331266828823833872877258950870003207042642857048703208205031286802638775477977530910864665638820019308790719391606385179974307556135205250075768004646849144967411115833924202067741271028763151636557408305035791148975241540534765327079676460723346780591382412589789890667318284813370575970881387388714451877208369936063603441019597408877546071379510548023595691426178536690000729229481368022489284503354922941869514898218842161006516460853127031858619858793296441594010968941127574903144001135284376842742585878925032599365951768655184352609550687938153070259428958267974295297947891301341447865287265922460651143068993820657279472761889152115789884300739089836974708975347208338571954592876251490458508069738386304386718174230050609204525158595226602682398284649590163144212948555970554759672421416232534716859293498613330143651652763794605663128875378666373246654683630862178406413953142636121208102078087998498131257322016690070179552152173899455114084476570531028673523192669979314375080905285600631355745056438208634029922021219466712360249460787025950365959625333703271521978122038854833916117070511402756315208329361207592169898103779191442427728421750015138781137237008898552958984640195090276448815965794458242450106285668264061146357511643970976182085665798183069179502982063547745052862328357774105508837746618278484943838852111483340332140834964040088572928160860850848661182763218357273352336811959120599967954122946839996278340538689027779709364837587217752720945958100634653437994490285541377586501279875205017481249501812750662558664497422481487623262840082381474953237149518410875173337513581743059327115438978538229018368678610584909429311395329864071738079308510242832017540248552440493382351978305621353119695902714141190131991797999281180990305575312855341082679151624078207958274900919782116736543140686682245506989304035686466587040922760435970262238819282677240683435337118473626108297097778969758182157934373858485480313699264040314651707032277569366935107731148117852115860499903908442071884220612357039663640013697871851108591572409534298226260744458731241176547366543013879029361598459849370977428002574965297196962318232124896434980999939943490475491868230805676423497281426021550217779755551543762343107235439749383107957028961443793959968631638550274933777209805628481323036307984897016693417382013188260708407805204820177927998380384389973099969338990631859736890493234567073649350398257039388636400543406871189772768002627090466392731200902850007368806624053359152608015287907743306071953252360479940778138354029738298456051174918830807119752614544739927617486809665687261614530207253124455158437806696356075454952605509831474173544010548822342985914794186997579328190343276109469104252031377164854297224705824021211785695121712085147505974542664515765401123990034093427038919598306511974120734154908926167522218910009967924551171305779835260935369231602968855872824042760792489774554716644554975908258428176396367981358843286247286607898422115547840521054138417056005595770946743428016759083262519113880946436231638843199847130889147451623904719060639923502337306073450590061642296284666554128324815513646131975000843854033473349132124342464066202230347201536430810656801571465633293147131038587737121070534952535557095916237608243160997607870499789762118801812557836019660672996623265869999158182496692652321101170861262571496886115042859783100507869636296944830511488806279368680719851556505572754674915124329945128167903627387715027777600436093528607447001689876754997404867231763153359826435935616434873669226745652082000882122145217202175446502066145744211851008831649244764461448148961958769285430950083200232640092082364734866734957440464450309367960478806301006051994551498544944687563165340276983581646831842447025964350075900437905124657280233518225635707476068629489520984337707125652260979308227190621860649881024426188692549721896317493475152667729312120456782899314624155353482558876840648675187065755832674783020181182432092128141782302715836063775358102684264912261446231467581362256412192975138288086208127852435693705130224018083879240008404624190945675407286220865341828674028318449943081587285454877587347384602352980201110966893883735001507730999622604576079201203947572118631939777251165618505029417075136002104084108570281638527535627796044937239891338833353190632964684333484648353779037208276866524691334454378868687743749454819642098429446532995369237963519275122210746888255736688155951172053086155787579717242572944193443060603136647963823525794147040037336713179954086847744737956539701881180016980555847198371508867554612552299801933830169415389447244133660637846760996215806083600581763315907498607991103915940161904681726689542001644750413969018336774037567296698264603938953702571110076430375573993737534356727931810027040458267377391168282340375550092782801205812699484555908075001608908501594139953290562819212919170813657649603535617700628440126589576693016564141514823217454603372436132108198676562318974175297699527974313987500662545912391226884075620239176459816222452305783603345160962113235255852172314245551143345790108276187831115216964547939067091439117061110527980409311384559509702471569403478968479339785821207247195287342236633961109310071255916183395618003985874403826263655890015481027527837511225821732038841307369146263297282987300880267423063351780454189978239073086410665840336062442722095098202315226174326169409120021038503827544126644304496233375022084695746465377975999620032118967211361975194106635969812176641570308010129028537670265007041192133345819353730306603119126439848848806578357771827661528897273969682256628009553828374554647711367098087059946865299995663718758632565570136373379267313619991618116232727957372830083527173984246671093140339713907026129063563319966945179395007480896262961289629041627075892176823322407532779616692813990858434578118912936018619659365227981795387299316558828325363178952369016507932869996314101851125228553115886145926878921430168531931745884511979100450938263781137868997094677879893524149583388712164185395928208796113571574512491033755339658747543919311139510835030843743522904806628629198063999486250144614147280938642165909689530366939613910953309296597478642798011131438402501539186977032189088849691551790678091685876702620560657924142250673160914746907658499930457563119166970128143110155509884907369061049573807115460683006892079949938964110579449325428776330822281521334990057857132092071692808885128991021761732874562548889355012942521258670689359257089392679072356910084120446767891660736161030196336176535140899948151756697095302000148391782483464601912597057218014510621042889307579340120153757958077772065130747619673276765712954147295988250034573986685256382750780859966839303701903581635623175276235473404074801158886475184994243922971501904371894997532156327572668237805207070288503379183803279335921305335307747850599853179378899909137791970253147501465138246007041777767862326443887071164263270927657542384409717892973720548722781481266514569345873289566588665937543540066436897891666517081346291763705163837235428860246241840204106579112531134315336729022024895767968029590719881580192492220698463845402050625321414518253187298767534073534055125394636476605922018017371555319102381342370909795520478813750217167228350592606072599175231749367137699681116053640895704206511913023805795018791660449031165619967531545862280035705223253835167689538384207501459765439821643833302743727839546367033490175441632768706800163496320026372525515277363126022355527473861024232727462936219386196561240474762109262415503272299869371489707006503707221868458619742880261957075873189457136330332731558677123499881616169465577761753589957207845673386596448069783490498682643568131729973591874474800194902216286784090786303233292755079525746563586348427260636152582091074061038092534885393926537761524172325576770978755133179565510162702916660067915513696948306203237134395855168148711082931474909917893994068309616135305066795582080742771535653144099396146678461309145149392180882568336638025256048926687292748330995424955565560991164871827453259497384053315401691189379698363913979634554416714001809739082074823043278611976323229063285836055092894416905052122877040098000165168934046996855344230443482658409124420342240989242833555725295939531942824813910162396301764498620812807094572373489753441598550499021082321854411458689648045001307592320369882227337742296088205433729738518220258522199615926061638516536594676820275086285548954821650047287275239826877359226433595736760950628802174038491798595733909572168323005899701682483161055694973118530547398936450223456194510883659313726782327307938082920812177829916894234040830820108628961861126082342856406587820252281691222024034671283081503141479506473525076086405310588209291122548467314452055261459852805568726723455954920081611563617339348329103172426622117590458324750907835860430233756666635068318076813008550436333656418100049305869575819188699651746178730303007013178487636240730194436799887637829652932390945003161062721181354643244849453749487109397060990575091149928295761710586046845310806259763263376047130937279258150212631999088464989038164384570795668252994573040896705356665850259949002693839371901922187186782532011903053556479127326145157975857220352362236591381761329169571387037662056897149145220661378663105504532739446435587717036465507145068741488150252655609329951200209695378012732068591216221251466155848733747624529215965514095101540717137663457185876833379026717612574019063437758546673177728147427626375464190201044522167020783012309523106322489022753086231813689120900296662362122848929586734818758700943735592990303657741194691598288021410660824563120556446592721798111958983405672791581992548002879609163572403450642457167920463276333239217995144200013011008458907713760743418512899855990310189489047814069642176987754446580263346889438693789705389525309441250697010135832466850177304644845637969828417502620293679010251419035439770644224055525222048576950914821111238651785765079386972848218528756662773279177716398187945562926046011549047768495521693562061195162305356196473681258379396842161616790999042507233519052407999272403854395907436526054542599231619913080075487191105850394464685558672165102784341463498517661432296509310141897670645172075580816756979549941672010098091860643902487709473031196326353861725815786702005934269637585708954006360894587314698924796939250655199550114837893215224397446778730311580898989925498545024567251237218296607243394669600732616461924361317792469510304758212502324398055741777006501121536615096829740740357009858057005565013586323870184233403589429655576159141780052312506962381648133395774005750668397748470973229938071615620594194244674484941087675882565202660409275520169472712653209268019272158044651119013398827136196238940086308500838666107833576062692039443364099496338113606583042167161730429298342605277361313274956073589228160933848887670379515222262536384686617795412144022671395921146541898887095653729877564110253295984026100321742902281164955586081601146191464485005338091629048693316276893706928257911241631507994363336996701137663295154136514277532630596110050534365934052114945406151171045213582818473821572171869566825291160142364798453431438774846799185484833702735796787494685991564530504379315791624504508348349872250913792229232006901602442634027885940136075819173728091743958231846743223873174264104888949584048483821513558278038103062650225920175841888036283275285375385559893660599443109161811642688196114063349304605161305448364397583996923232088422620747622428896214284178201491233650326394057355531878735044789966001058706801877919252536990159449820204131216085274314148986553551666638850122467719593054137951551341760744421817781573194713864966411118495944848977589393705662938920143426669361173278595600800036460349424849870939070339699085634863464225997561102662919443109643021562539243976933289989093840215409433282484132024335430867963622065882823680559689855221795424784873551087485433943794050368142098664306331277825601993055627064651806994935688197398438428953984762728255993260468642821662801479455984944399495414250329534144386064941258908705877037760266247890611453888907886399989707431540579041329569884916674364815035695446747179600719893954157957169352333815607448326442638303262762680634433192845563552641410142230955158665824503585604852659084362628305815045088328191902728824577263335885468865634161160900099266366501117166954225518276483331794039031840521072670421186747995212006132510976795095434535513226102109418018984448854958481913478479782315246253530519903369518444931226085114414502011008306941211371266136581676414542266955639645706907604236154144256885276342234893113552475019831860121849661450977247801095683268314321373381015984244177292305545603529270459199910497961723252392663962608728892029797227238541003464111932011300517200154925454970186558158949374880916364209452346988475700041871425348579772575395475630218588566483580130241002783862434840437266460845892874584361308196581578872699407656608406202209010970590738295580582199559598597105803521103943499314682501746062625225477779723366477541674689997675490216927298922242955166220486609924551335251187012192639835026346011141437747376690469948336921620292008555562921703291527154626240524973432153090179690145464786416321162664937207777884052063306246618166793973518650531847053574794547662419871723004504073973871956681199881407692191149938192944266062417107360716118721049699719700611846532018299217562106130091555648346303535870756546028649824755102459162906777055901297616396820627482410480536630256648673021922005998390846987595200495193666375531990909797979884737992655277474810085269867542475565920602224700470619975061203952073931822802484853789405516802274109454550783827931767155724238384157218711379949761138347595981214553730768723335206755773428681355792391177910481607206456640394518472522229300903978390261829792923315033550337658144980058697904147440343053978561129084937590131400528285778633191908071588323022093850876158901717720807162634017956949966061896964373862354628432520655464479964186207978341556226572919522597500046064632513168630133428468529006762597970090653021631286818659949102538245302237834517086739960090926909211044728396751653945877315137181685515575999530570411636998058032141165422215865695974795624695986213402163210217091844535111081360373460278485076133806435466986735113540716941607462185128206930382165627977645513098238980552106048687205501787512361236498419966107271156588436097803001376379529455196053357504272516432020835484040093522749149887970547666610406415813001566158761338581197246431967049537759748572069333215982557742834150521093284378052871745360176649430166769034738075407600118312329587710213213232389327003585711662504579241948075984575687518969372583987667867391761154511115061819306689821084709117884812179056829645218111789763077378592909942818535210266908926545113052466403451523044190966506228380736886821815388336769772962731140225076199840457912676892271603354130246653835702339702787176311361070674435870351066958900359387261321360254766831119311580268866780007002832573121787617026046296292053923365069165753126176576967732072897229490291588104421616450973318345453596206618923716640295219129886812469874273706814627404031994341782045115340363598310932517679919239382985413892627911654361932031690848830136140665233135174466652611306928857829272313208890830668071127085804246141223295280313983813396208896674873256275478890652366635580896675233268720904291389914739880589544276590157498158831618729193679720206790920999877316184882273985412228356557970751097854485774668058595636784793050697926865564764872697511952821468345086094044838829452826741702510268907403085588955407055522832461667533193970832652435086967348992738228040684392081663239525744941371381318852935917532424371250284268327913959818475845576160055475911972019994877092460077461775429483874707684074575199650664046451771607047681743631131000808323457344331388405649066790328418551800286752952421501198833955022772678433312592470035325462756906038598913345750805475347134706231862275345687932343213204550260023670343136274618847727640736946505707771656129959569102482270794549064642227101357196946494355851559063449868110247199850583059147924096988225714290562608315140272751248122398864541658087674918673303099374711998484537431166211426242838405847522291097364958417083135032330431437370340712477597455846369534891408419289191846498272944831841005067512003426839362211686379013926456380078694223214340621146651608628422185546890468293940515951769762358337812344262834313905252734950041747385462960884812295127630780156192303668769164734493375726214717050602608048006696889348980667421074326174848922723823584047550493714009471261787403068723214460664395774855514117720061048753538752442151599248613392773366289054112266731123985586915636094243451688549188717193694412814332690886119481803069964383257371249623926287382331475391469743746466921574938952208854535445377110747684139506831562220939729594836774017850637429590219807058984368487842258657067461095911990513953536728892383166279904938529617349626973878218232263383720418455412688965208372655517663743422639428023567676165183646558602996541010466203095450457141227336654411427651069438670779131013029399712498424846326260515336579330272649278386106428135348762142294890039037016099201141313408240556513609929432584221687983558198317650558096924902802940835018040891355563826578812477575418643185255663975503069172933092244904891085968641170648985611835936948074495533262219515298861846454868092470165886497748448456881282239487001441130795323955047021192908505041489265528866042441822818711699037423481091515744567252889361464027027361419030720932967338372623526556708418874426763901618203946805455426629709044110362311995361827558040447499551806645201372198883148137609426433709013701370101853481130392368144170553211453125777398678242547878760011702120930812874945430148312332732497865459737491090647958354642188643727970087975643512353963615241780169185073820398484820726268556241265820224815187797318632738093973409060831156130293341955874416803436407048631005741418781714331621586436586009052553841750160416918108932820359839785363256014135359089613603115916958239552421468165377963499144163671324183464516134229537659967359564130144207488763420994630990970944058348358482090738888773911257989833642480339835725742701583778177796391951762847785038570909753468153401849224201637636335107405199913040970908265934854941620124813359144335478729802537796982837510387128820216268149595983716152531288102013570939886461318049570121419983557574498708270456368411971791507073173444661103449376153156381278424737372065737858666625606628382346503734490161541654802969954121821433634525267972716416227670043116662690056029667197600877564186809532899530185900592182600592638669963891934895346895284927493068553065602245235984164121966215865439720398617369256710101876699011932251767664358609479287383066563499854628767889543631983253241763914504476991531648156928487639609733067184174454989775780043019361734696609191435453643842480667296567163714484585408633397581182891296613335464468934887021381342099210497825336288517257830884012753614430876586149547884594220654821192303043271835717804326533339144334569075255703856565258930319016757293100475076700416875400837350734671684185265189213921622578929359962426033409167587888939434927294776261019762335686489262594716073179684971858387669743654597324774552791255700131246956909562938805661498722056191072338599095650121109568602791510472190053747108126448666400010865450976634812236060696622972680401975648575282542679857366074302314640124397551918591375811669479257390980150609691065266780997409661426332061614474991434369788814377112020888504892381394976391918688218481229111112912500609197815787649582498820131529902884552964150138887060331889377757466753507836059170918261228254901914316839992399552588177095200961150956443684172920340079272354614229550746963991559768259161027944156055396201706726249547787893211678285506523246316453463542770787068053701940139921626409983771875339070661288661681962862672160997782587871778657652835612738152039119805196005404894838657337883661035956711060548406343504903912810877714780461580309920979408247489663854619935254059343516577717501494564241118707202644618572567414461076403285797739279560767343736094407139336589280318504884234747946640957786098889382814358179320672686797421597600667228751257933321880620564146353489782310452345125488638381343234054388386560159878737422638465669238712678618187418930221375470973172748510064708503391158969400355078353285488208991021441709389702416690327435749120772168807125108672746635639543515822977390668616358841909920758061027871716917786644033653238728674856384132393887153452943233664956711958168718439767461154623233949087440764457179452911902025247483534500528027346556396089707836737324405668005844485926480964652809129841565206960454754992473784550742628014243895051824334120759514174554294670639554337640599191940766554919361796001626953747024550340439171298963885241840278516543693453542158251247456615694789092407298759299748831757081839241613595052528894735720344485579256029018070133098780371595938098621542262410801651447025694548763931512625719500873555981276532292961264161852834119859932282491135089806517109793244012141498518205373016792168028877050936209038640576028268216085092216381599301825633392154743562949826864375179560337131532206334305361845772070940500651883494504695948333255774835104935296907670080829532407522185262875925555789955616964525327102750956818519050171427933612652904820566918567977446915964456237001269648430004727958309011394761217660344650378307091335979916744384176286408643494283274739317966721063999281867429128356421080720768470171523742187234823750247914561032881407155918717530294543083826112614584944885925729961029281822081907821670063736388753078669265096431716182488267648663656504216339197025109267855841062113055156741017636032858882331608593083407091815248565055011426302216887240698302167402452560922337943156835855373433537176190153219653841847057428850202128118111314724159348532128832726094155314910253266165444603281510945233615459373121194553551826003775321901009116154526478493339123249630806040611650291843042947112165241879567182038088982758436414115602827571132653106516212620587064618603290982619014468138975646729215530870484974744665273702676164005973992979388220234181380911702409994221401163821331036980368149349179572108210628581542278677607270367940682282442534741476871577348475991236307157044797722292545040667386822204936477764058364446851246263771445842501610460909281102763187150019266043204271617617792484554056694105924703202230434435535254516971924158845283128539161592676556248710077834548389790869677020198447274760177303710915272152557804533614113209700672086961505463215935389021026801346507751834037725876397997163408902303228872026548921684367495138266654806307848775391505177175592217891661712212750542757093775550998939080617180131273657101073539696175449988644534106678471043668451841121360742197211671098833723184864517918250948282462483310880794077178394447703178032269527837864748399327483334790209806827135513803099498669767889162943704725206094946153780709972657655079330020645800093225019771569187434157395485785250646548901904529576383569166385348937569797637159437843493875019172533976351474245399409593433683299085593754974262270016005782159172129904502170009109874556881045859946125893339100240671861485805802503768947174935804911673571782912789203109129291358072609471216656772146048000456553158656506736355641525037314103875724229648436629794790962257793293077722892244492538459920330670992983091937146737198872785095857425266819534430029516215428358993047656780003369799299557502800299436214280452319407830946286547032136595178766190115121786535898694497866107884919795121620968073205720828857981245481628780122807139170319660555746321989161137181329340064844842120735079943638631233877786343384899710306533593119650656821411771446512270243267321551608293707188741123153285364245481975465514154664169770962992849426200572186987512452003400456663350389508674453839100448095661898344153989641559353583082728647582002947974986689013843188759171156875964299256344138475061054552793245822910210183708641927673596249520083273443065172851893381074524016962531030092482841602713279921971832124644007813233536162996037993700868262008700109355213617427108480239185327498051265481645099694533924844311989969713058978789052414343129117261160963704124837280932189999958628444050816146640491880932390841398046664302350356894482545867551077004764658552467917590610794875212530001724233027783544855586933018901884984612195497218152824305694491054912949639393869156354065318105225671403433409800983274030306180909825315681002479561731899231490482175527574869766452169682189281897484827929289271359085583600647600067794333629520091291506885553986300015845882532464216646099573225365731664226035463134965291432931474710447758808115940297088272993663478540754534156416916586301287538688099198224278333965899349010157142761444090251837691903972408584827315897671465572522455662033245953795376060204003751163608862045505744811964467543461785113146504843976616945242283844553456084501438582159530453792747433478678945027605054567779295439513334078807211143911801335893934653278118792373059992268199190008371826555660566261559483007078349194429179470653363297732056557568814125109317437393678425750828696115921584894536532788307942173223835676856107966222254707865471120736328274196376954247670403808986010835078257727575431566566760526791286447945251535507302917506375371480235394357807790490525264700496897982211326151834409667920915773241784526240916600674430875521728215558781892811919641042205037539279968171982157743470303349632649337184849387616596023111462783725109801778542067209096086892449650729487409525483679723560044934780277008066466110841981060481055946843968842769062158558586245558345917132878738616435670771365247188520292120567533325147804404598491870837970489283192375956284629654970036754720103872514634015417534742416913848833776071392469629978746254206703773996838891929521675804329493839178248791680305406275979419234179927834175761737207207021677091710599429796692043203984255839645971235173515416215732770191745141902789266908966749508371519426860262359359622044452930169376420073810396947167229701308687953675746767209514207082398904116001256612836552891685866371533961641098487144379511166119895005003302153552518102587294233781812179138979188240830957196196597448505485391712303108665050881773275339417762203363738923367175147543211898289525310451453236514535034511521858707612155982475120888537371600656606129718320484583647191975836855410271648343581226368979888317549839006197928698814512716934483775997724756194270575539029451168698521571958338582873789405065573015120467353581203602881041831701514716732098646895032865337060411789523007181466692988252023835700695212010462783263772127957081278097433643362001025908896171876881699578392325178319485052846634758571925593970401875502312351911051050024437897924645303925398103562471658265980475252026206700634806101314694924853656249647261466023514449598876533314582140177870016180203790890870542161616998436743098534116904127395868573685326988343968336574429233044835097266684244555942601301576203403344547144583743664825339975667077961677659855459698672186011943528606727345200303002023855970237853589704212835900905891871519505703754099408827788285058701033334991106212011515217520568587724429432616330177465783613827913244187090968598910299258265964351486737011849908343190111846110403227483238651638223998029789968838562065904962696815723821077592181162281361068638374599345188558837016420887691586235563942463483123611465157355858043793227294927091976845999162135397986262177655442743453968711260308693983124863252194974694991684624961558229752771987385737407778803710065397923169859739550411964598207238669119855911688087821415032877668372484548754932288246377444489190874612318780241859664163877243528372355396635592882162498568416265725734061984922819080686940835517376502331129984168720847379840397065389150351608786039480100246166338968355227859352060196372812587538502265187062534365107888222577511709344868971952596064267656491613056364355662253182994152307319498023027100427929667514983139597040053934222820377536188101594569410507827368343625429610216247436804676652096654114560277696510833528531356023566507026372522302706417208678045065099455277794810988255338278594714663145790681185754484593039066619653358118680983467858331421926917719672117845941003694212943845250649591319065294094927825467101599046853179845216448516016959029384081952382821342900014508465376133600868410791324072229792752834304277698707659334125556158208554701405693376774801599066651519323693218369658958873549300331168768717339381677162348541631318306508394367423026244119873457520927051136507566928940343096060083607725099521602525346153020078310545301975420777599167236820703490069452165217355295065054377770537588951161272497676965557915038993756269409513288115636059216866172353669203813685654327171562678107265840469125147036417128893798837977409820976373135977471959820571875140868286527863223773607020573057322821066186197231907090362144413016745889350905532314343670169437378586020881913395225329580424030523659552625634107222563194383397344395298091015567197288775820287676676310454251005474735094037460061088664436989773988867716723723651119353301168052945036575054354877700909182630943751748348920760300700712070362336302117744186525631476761847976807618265295973493271894723866438393095428921122403443497495481650806776247771360876697899592828230749256978423144355804108351041197114694607712178914198200580178094396775181843858182187877531787671452494806324282683758678573556464810645842922918793662831368578432791076653240996773766650107275297549758679950033145232644966249095320504258903514222035563779094946133243478701103122479446563082957085513818270635105000339750208589325834869994672676703660116993526623467586219739185487696932376427104959687109177533119385511158450935176811621475637608283351403241260309877969689851665806679336752354514352102084825653747979556596047080257180789767806375779367709298486608130463008541540968192290174024887125432951922954083878648401010957972369468178468079300329553207277514160431944717490412675681027329787493462928383995496276771808712080662447071751940528094166088371659488561665497645710694706460173424607086803936118206143296724724217991194389998363013918787400146606501483664199306936803995680484436610196215071897847786627092775586570441878179567212438517140755424062467975917605858778167679121508147437933783189313729814950321739088142231726257720793201381633759578590367713219721843323217174302485337432658441475482133006784808977135521362529528701550837019900394862057144924501760253965073089298803451246149768619692615027669340786186310804718092713602981874144703420842928729270568105696832914856473712231096824182701242252891295151229031485660820185313912472943290592234312961259834621077763916907402645444384458141819740822908301377827174978550894326337761561758844373772779922063736604143944643234204395500503998481095510596394444477391412090432871126366575322922438653998208372489160636038067367932372832712013915728014266770540035262468645545362370506589478145420986720417299995810312714288580936642568289487248006039183416024232322735187805227342233785287731235525864973045819657582530586694006572164539496552805602956082235980790433420341526831684321715898620471099417461024251341277643237424045525971951962977969327076083712651100399106209984099826890428605802217731538127416014414415545617679068565731976915648862394631345320865400561625839071190702839106747546688710892580091967362639753482656741136647832964673618835409565897109184461680432506199185632472812047611134954643188821870122648559030365381132926055064279828049611788261954256797347934469758681408342956254981434325537209353990258672132368416893427824237637767149380113401261761074514382947181746278954690527457934207325229842780930164108944665444060136592306099895921528746637486309548788818019704793666353977881884229974376978918031806563023893118083239853611165889141425919744974302510746491508074777243014823695996786837235985949105701824879148753665439516004321320248791047240929403023626054163600105994331762167240931605430249493777432488600681734669644291721088115635020781068787839950695714396649461346529231596642608856743216526240242999529234011495094129083748172529256645388330519557880139174252660879621103333595374255817873123228305925979977852261392426711102300179516949723176701628064741224913386281154964962674623596112118437803851563099988608012672080244435831045181672243577823621835692211227555659120336241792748407631462152672670327589332102919633732240294907340911525248039310726137702012531060434175931250674808571623224772257287849158875380613865840857478682722960134381763506105122653636166419791215677169189276346756545664198239453568886469080274718963939658697939055278664484506692222504154478327036301521895276069688771074456604666668503987330858938875181005022626788722118030155876664238786732079731820455939635353152967522540389637100792931579605985550351801285107768715320719045335240409452701255652222925400648549508619281425639714757425349134409459924219405553662755165215349543791613245399051419827138493086861993187269745127538538479884860977519265533120796150597118160932298753734242595256113433462146455537093302883447947489539906216110806840788057001603847901904020919790224139898267755855257680184624226055720843966318720795700237081363552286160807627231486237761242161155628752644846935298646359221114751813602810528972561549100248457247250312085148390921768081834885106700645464011866007804120451057799924511236247642596308654714200481328892825474660120013517104037081671370173097795830773396980686163559907269542452714844630619875146814955227266489669118899108522399848907627881878106056448276928252198258753040761524500848346654292447012657275025248784941675981116000324849156152943737484145154378005392093173015621392736099446267114271678679997279373186280102431913276236888933999100226384184324056205465446948814143509687700935196052319817022026349546092053326936399327798511359816302885652374070061939487773261501726555208372273321329238651209069821749573683517713640648442595030417492297421206102422130406038540083480097713678063555383581068914085287709555279634575515105997775549381694052441372320061392485910718892253315152294933212834769369433002871876083452996378510948597637180480455308441357786064016251724033487854857566658485113876456028838542234043821574174153191047951375938786565730166746696316640165543745752431759420330998188965715277556442516306521824732355082874495069598349041344163770293089861560328114666214248191928264850701774389008984406655592373204145014957202095628443698125085987034232661369692944377342570723104223162362756704385671074591249154681381083604577517237097939518973204190301578840180989500364413385869980610011468280785280065402211505808331009946329830764832236295891979142931303788593357417555639205313921550371154546129020190363810841836917584357563087042745817358040160350575647662976602761658273126015861999907327079797636610745151690936896709926124893734331256544016783630217564414874858193553784570458952305310392872251872303021337013678239864881443267739622888666800667056267678256047975794063830970424667201613343113685593817600376657280790157226020554032955837921427062018353908922434617353558833309067170884764643794937156359650362540492490374795184676988032940854748822199583541696159184262505295347028793797616187426463642769476569817426848078505420360958555351175707975985977086741526032286069535688316466072227965340077108129922145733234563121565557056634640584025805326689564187682642032254700785799668794795042674139613011916028584624499159482809051828841410416608011102936393230251517584123913841668526985753214390504723786852441879420295506812204987372187669636757300072304467765036452287323935138284764963567062014704820891184250032663753680976505616703081131080418664344101863123789975654500321592948260828895050720548639236868104868824280505441581579030993905562542690543070906644419508597093133049222063626611365884868128144649525595861908136313197024732994946201463038196407514870452541574670011409513824322141031789010409730795309989317217262535066049600446771852637729427016462164318481329292241815883729208857629114690404470247994844858916803056934957300034694466560722447869948753511421260293993945213183256472221292585962132803006722496574571987075361403351650194028968038388985278327077838521789020279109373047785966095282642884296795979657902133254323549960136155867548882602280187192970293302606102586868068310584192617872769713789952892918396690119667958240824890469965589706618748173230079009582902756056665764103232079224462551976861526721326343431268054436625542947551403650208890093655873518258792573863874485047415595139422432439547614898231168391599274310801299846968419336082595560990268252963983486730041287630865660275433214091753983424016210175023768003366865433759727666258313716801707310578021016187005866155077612997035141026122449477523774688083547095816851464147777731910327940794127641005218250943743962436839323546737490816342820626191857779730497203941762135072671785433506349155233184763626717927400672048606154032950984425888264782098718683540208007076585760098676570961932742172030397291836523310430382505161136196244902692699208827969129410649119326069721178180363115168728329374240352503929275250989424264590853641283092946130779980401653198320295005236224325212087975135313633805797850354748050467750878522391833301490819375882494912220172366808972984843303080574754355889364448981824603564060290396519962309493780725756008660307794875842934572996345555513298778437991197220068462327642710579382430521965931245832630281730676375273147446280452117972818662159179319913789474700429303035884152262074640447763275351626051048113380492558506492184333793844937967610194365378843083483855784620071389924722351545024502982355328401103508706716001567452030855757231569586747797823169710039395273404960681647600873203425081925014602780009209560535120822304981106436149222271915133282434248405721818191520155478449411053616527470515357741538250581741717751018949813581077300319665511035919164908334615542130646940466619684970481687742226931364731976215881334482925338773562258098463458312146729454983031802084066714855073680155445815327272866550025916290588558436139698243568566036226891932151259346607923103632339609634589353628652237641886105181151939502271029719340410524327709424827257930174973961375644511840283221390979982685647741795889617306596430041067424398951733813435113759561340076537806377821639575213644021561609330515759416545662618647202355161103098519745517469167528539387556492386220060239677736983178208317408603271335047736639099855293551595361131965040229667690630344815207120190181610631970155802436799584259572227977737308845333715006326655204168941348887953228350519633756518761365851955905115732315764838169850615314867653246380860167526052917016719941490422665543828934677597535659176869887047532429427844684369067559403621803644427749735896711108866775313766528038865159823492868867287082744891769218152433653349541209964444700265508636619305083552934669004656672760061859098769129100192742215158811347034318286216862982109087451387044867776151511728101470503461744209933707149875631193248395667173257754414015016590853598430487242294899216614679384220874715774953698203502778726573506535512179955249202394099962785044610537518742103409184894038690921642437021880418437083051855766241360492070946628719318523648395303562168330088462859425538796063326317954310407638236294871606423162202028452758741742241625990293535058966416753808754660413730776480494357228113196258370545906202064741522601247310800280275233527393677259168553344180958604266930101669136085452174746830548875976017511089745121291143673758869145684521081374480322618419346645899857385155379548908279550485795778848059457468654945362659974804130821930355314915464352086463808640135994508251308369089427403858530100109357031166361575720753153216432279225445852152987707254418417580971726208287803515605195812586695441125824033453673302514055514723835021120864672139275769108870017256793315708218125403106061540942288114439504780123662116746298990132352599201225404159887834920968725487596954355653188472162889300262239335298468084956619041546475234760159804246829456104840757075707423496991176233191120730390506074672129154279822837153223106801961568595134018718945434068344235449657219702947532569265113886746346001628259796175813248077469686619920681903021900549120223869334821377954106119016932910692375927872194806826918950773176188472832936108391195527318368115262260517016158171115998589334605609556695757774544653323081992873219218537850543001789361417378000890430985821520958185199368303126495556528269932274671460068377376381501398747739709411764424535668313826535539183965849127790856309126341913015310975806993826172705657867091772554823111250427825143048593903055045438777375949378585017829209962016302615277766319121676389151422523170547761336215810118227990608868599152911145250791555972384814833878120142735272139624741876485583420515363621698957681649433628778696152373435883902766416092844667991740935554220846349901455553584095371143134487137181535088552901098645312081785242151580402736120933405163087028288005475684642692840598746315764805537808483187362101153661755802899750188646435846456127216389023545192570715690743115516766645882128710859603201503301955934919741203290643023683931641978263381075575599725563165127434003468738011698239590451307731879477943490444301029527224547910294172325177211020763530577067552052416172171406014333221260215475044270416770553473086955188948919582650868374175521271381021521779917327463456452025676032787327206046174270099307009271381068711558178065462253939967357554175061031577332473372833601252860441105201287426703805647355553610203227047389333814329785045787940189189966356654378834424259727123322714935592207487809168184186371016570664115268892026038848651364384937264304580958750268161692373976123389631153761009228068981645645988363264780563907089823078344759539648600941602042271391323754349837309192324633715668815973997747148265213142207201624362941622764036577752073992931669747486963928604347415457455991979994266337792831896854528663109463403960265068066038364425764533649098183590200415417800856336289031910443807363984708768060725743308077158630456499228948249230446799429512828989241107831393954960379499339050519784583394335399549474367880161619716792544830293936221862839780375807204022535734593736194700372520078874856838734935175638978778136283693656424866831258178293209609639748760850462265852576802760113987270243212551790195044070327814497797486078630248639154537861893473571828742416207773495841107588754368704294362957631428145348257207220795781768031344848007005897388412808537656550333619963112357697235353165477934619783789373151823559819525531070296062949486592237815019012549290237043586079103874496610316444446018409140647351914022474552922732844145860360748512502169965558806686902361727517832376847982068617409121303089972812278876615306461837451859984802599506852210435732901010438656043843373983288078034253753491499155057544498284714052766832414090054120198621455026369798391722218570701693588700825369398246068317716887059200422696709398662407299965493871981119215090440341817064385705744330088737689050215419418900188977396166085121081461575643373307718708691783391132247317174932957360993994894395343152663528255746120589259848287675788498085249546774558543372672802382001149415393870076138234876379306547705511925989477119080884983079243161496244501400365403662196873994558783359735859386883947159294835349083749991457703705034925802884969390190748186952175303200307588276156226045760166824663765430851098619546861605968265175664318028977763146354337132143816035115700252144256272852644906094176888997056625131759758463861769276488291885299611253074375451859177630576199498098971102980979840750478519119724782041755237277492941006557408056133610980314291225180769626305333318362161587864360629395958837711900722327173508762404523578568771650466622409013214074548370281452964276670367169518769776387009507433981397706753846940774179283195705109605090934794181957549377651865473620771239351731939078000483620741895794228127878764717180940663466762088357589443547618033433495607019385552237663118763073142308651253166867284230787178953581367068990185169317209979251772442199613913857362107388250370530812652784236699649591158297524230235151417490883334587002029768837414899212090061713401043236894351137382862532640319616263097057229755182530036843965013803511275363653653610210197298008847652544585572107851060949508199348043495038496712392644890021904900661354080023911656243229549000353845059790987588145603822685206406227916123626699568725939502654073419256035790746725661995489974768864974181966616039604061709077623057058252037261546491902865071459264551577913793393029880608688940932395864311526866206108489703690882485086059512871136427043750833567737934074592471087641690031662527070167339528079907945062140687789523025167831982101280397192230163113544623463335501901876628421041608508377452207987308058807690602355181843123463010484275907218300229243920246167471149349615611455104481730705680938432808015516531111792397881272586752214846972832617813786983879304134471062336772680074446807990324391131146353741913314201466157237879850842824647509987147503271794617283758894565102745514168358106724751381030818874414288124088920350719880637992090323221008305075021487997386820245545586192522581848417251397632797521697392701180939797542214181995985516770066062043213047898848615637857060399807932212479436032340414869755464305627733943694022582676851959764426713189974295084019085848308264374585981282479121676180521126095867924058803768016390621653111575240590283138384699610903092058031881517853522096310895439982414165047010766687131392790223026005454257970636528455989263440509890165843141155151243826352304780269486295799681222597265368283275210771931247383325699482777126596504632942871717008931439272794579687867720930051971057203109244787084584568626054470204611642730011655623482673597304506666587759133353978253513769323170074266954925514427350546348300500360888622294360311621987094332219814060722686420664639083419928400239451767337161858268639722625452247618798965288620559387748440688267633140308510959581817472253278262483534923444522248925049956718235001183191940464409642896569609528623901626178643771340646538303486165338973203948225153550142350229109815012114151108463381766345860272860017645615542360125726352486624024234538699109824309492359072507895086224837387466149265747094957024874637308649838088997123055506851860910389950741284308079113967756383269629838594911955851288639775265174744309988869802048869640709735358888780228034722657981145270029014062036250703132920791317513853190275317959966593336256468563578945123141434891082296246511064665152786621797036849244069088166410750757437444958376661733256029638459559951061998759586696378975060800801093439018368587467244143669933044775009166420177018875869227897964772311636574748371656207442798243191429662118240390797719011321516860594326400837714485030623676086858528465166887730298072318369282763512246828940165047191885291849368974437175281140101346825435222596558982849020595110711381763232374887073882943392897713000311186405510475788063971632800992345761058221119559372471534651485349412079193861916907649527333654043763693808403490064835747982668857384210599285993280844595440995566713059394409613171618636041238416158251362908097884380314400982430809630616173378616854170409474040027770876440447858492900743292434700739472806300645179681969362277275142455636810381317178684044443633545779387158182342503289705372218385860111309689569282968239859416030323909942920804150700024775878105420518839399536397596756628122403314723247798048637768889681738768673740057376980384792871738727677893130341567486971561360961271429542883323510113707583704482264845412532985414281227203047523746302848540049656061893072444604666314210870346506924933476532806778306563208384155319263293903697877753658273542808582497021693957810943401985937654953072490302698566668370951911428498236068621809810803796681541544595507239893741721465318774309180425141831087142442869552310714896656483375949219473023719753982028912213172740677445688059646600270462185765468320941447103204057913412805809186094466414198566737191871307399228759398467514609977566485898994046969391281626451369415696688139601193743121863738736933591726652613744768586742378577401096071817917013195481872535312407006117014490364067864850388307001325093593482094464034267048698070191960393920316261438953750358906648113835409184181391553191048516100825653083635148971670651303799049994492052763656279033095567665779703957020347866709501354165189605140849139057044958679640930414183057852841281262668691654769604577627863563549922855746511288994952683256084569334771617798922435931176300774567894516813902859966154217758583764958367154562238580779221914651618914603053745152170027022712542248067228582530268271100316232062040439827982604364424136301720752836232037942048296477322149748787666698149152678098402921601573768872454679961073058772489509303937982419748524716424894151437955608653816817673679928844360855942082006623193541809976747959286329780613321040442841962560026965638958730243139688018000115959318884579589297025126792454070978504680479076358342108025882609656798013292680001448628430385545136700313992631763037397350107484893528897679073699504351927544753973912631274265526003040111940946922350460263367954656794988289472501104495904426412734964453765427481277843668499206007422028880972060164204058338951668915084927607619093563080162411494195636760871979956548275670834378228231774686056679761903227845595771414927842192429680613448678278259887310849181825133117358001301257434523057731210642221970246625916220475065298146766210848029386182796047023940146003888228936886527209882107451256984856791777954248592089435130940395975634664738127897116801839442413966983218876642212648670415200371740260086557663603304601315041700367945662114185852066777278721643578812806191553199639394995533240352778398116667830983574700992762500187780186336454089236832348609463621244172976084033050128103993767325254945728854076406222016169536864594180145395725560832559880385279712032754533383900808843315810116529786039551334095537071820779032520161328229220945377518715234916072304262960743404694271984130864085781063962964013243081434507271443053793432812990038142925423528996469029310404584818168497824436528479936299262642057472241649692484411055516636391004893199286653161844086156794555270952670250664022647236824369948184082200398225280243100850610616403247906434084532243760270043525022227415192559472356643314647522029014907693734267556604310373977731836121364886430671928363734140363161927147560850259961217610857960250461081801855197319648109611031235836821114694163272195436260360599695500055541665630452476112738495806958908413041258533476774454339744033433142221650374211377559466990081171503664061597802187012043909670725127581392435383883414505537322186467859772895806002787569840884370730937957934758984889968704087980690826881759985211334515083275155244598808379145912099840456360940370740026462268096714608875965608323783101941797375895618332034989993177246522147327932835276584247230947763218933218972579533983334107212464806168213258964024377582638959489265132154295818578668437933312079101342510330604062388034436043720265471642511101683565799929462641251882370881449800840445321641179612698517797757303065000269742645139206601123742523760103480185700934265258410315479056549696446536725208398442420725357326306839139385980349598784136733386013763335386096832188300112589654256911893936392219994417206662211877538308941691657540085147661210420745263011393967645253810917346192440011742325212194172922498625564633791313982259412308748869958649899825482304183784438108026783986352715554909929866768868446280599644741610421500050004931335175423022877276345229788739442217557530307794175666452673586033569479159195606165845903245648531879501868505194230222447020039389692590426309448973077970536756816018024306991744785102679485498277509538166217650190651321887673815829522093991421175166284491590889892282977922593093163556616633050079827012562949257859278013198872189284317073095980017560626370658624212148926757915546614367726706600747162738173775388705526305361840348020800439671329480264485096391262402816528138878702254394823533132104740817220267856392623707673378252244746196493092020730764258849015021204371875359104409204071818854562958085701804777072632315236285120019462047741691591254030610815100804017672928292680141380750580733179201649961571891894980605638356913795994465647430342427168356570241980047054817996827674020518354818974323062165651151900657569867862437872343381229057232941365309024442993270002751649554775319533591126853871395744704324187179882065776290665848395927312856061509041743364152882044636552943567278153498848127763007217634110581696511962173983300424318756272802163644019931660155616796249834040045591293114509346669274030572414472807891390966448828309599580934276253386023879908791863066870748689000841493737686835531750616389831506479618225060542811556382969750739406249211110967992062403220516755793002052969335884613795849247578950097740816500353709005197624918021117346972310955236134369171797875229740415878363698062091955074559652283581608750320530966203359782310634577373934134618975411943712975738610783600175655592855271796928732238360553996152664560204636490750679983660548961966012288698864751534615789046321590745246851377456546195040908293459738398018898678427443555409812865270311514395029340664063475094897197471838558933972429684212256364365931004895790728811744410093562908613759451197296237681711401277491520187222119327801176563448558992770037605465783493947268008368691267637292635272196841318036590308393529895207601555009246613964395322302939630435030973775000187486234158721821748599832511212380206118874140607175942767423954131490956116574002237115697955813986206711173244650473583803422421733382410786034893257095843355113782992616951433130615811188173640985846674712361885230436259321067337535802531311889202145157023111019582907342615660015633969901925800607939342607519913841404653424503679539485610422727623047563023365217609286721568518149794415403534504028556760595895406399695417320375557332085976672610868877049537669552194811097113224270018585908597995340968836692698501386294292323230272677221072376729354789353132326356736168384420552739976557786670456203680576078353671957470862060080036017733313523067795576536989664252147451227439626853413802944163765505230534362888435992856062612535572265571416262278715383387769882531240605901451962556058397931078826134375868907826037885906043282520071953342815194370596951547504289880226907654799218381670454845310743242655354952457942985675306931962809447203670438685899790944923954781891010552859049394439539496305309801120778378570704143765349509524973504426308527394516401375475576124008433215987896910807789008731071539764768652121041376774533673616646899588195391100493069443970806950612899222175821003514138611897386221871567814328355344237287371392302690070484899634197566234404121792145219552237697820950400479705870753252886748221984828062195049366611428231687722398177048838372785290239894037463749146633919663540016524740628237088419900794441051499396108572902149666554302088364352916055557230586549280957506067526759833217862909756696411310920973195048864409820737932241163385663932653444560678732344294701498683313269187432620766723328552706729013692873945585587467880628902892871653778270949774791937303256258562869061363514520715583651757629946567149900242249263305017976801279456163633088412088579632335186754941819949004777106333416869583801776267972207021487368427938579935424688585592297618806764311617681499452377044288053452066654891206226469622628077287782874447459559204338542676596829936938532792556364813159394947658414001984333673888198451196339126120748700118759767564417139284902715871693881179477811325355734308755270044801680781713876093229491728408367392398458293033769569309705407544635914802293425650889350838043119325086119894148398031594074650723686759783648738144949370423033077699738021536317123764471331269814191389004411746300042449882893913611052193613423557887243277989890332127886896519540802118554318903078239738463563300189834424355220013847068599049407129699889365427537899460179848722407397995733055914663715273265368820400121233082430042517264262964058393737123120291571928036048383772012237045773653069727663804508682894112101428815388412248836446741880274709917906146913335044465076475720876558889953150434564911030818061896877653326943426096427422603962665387895629141202389546159053038912030288182056052083273690338850352407674616315843750429838083433005548988234532413431953785226850161810648251318741891600666667706806203025141881494767077623433433038388939789852014776176993900605404918442807731624167583760154573409188908954336075013061666893261255301117176517280143942591074907525889912388902409484897100135251932102075485460703780001751944566518309038911769024884763731125274025678745944436761191000322113699317243576439838840673122069411920250109256490396596555368902255198650691255943557732794792290897646101629107250150764182766663251230650989087118658417829908541373165576463117553788662070291300903450555105574685232882330218490037336708229302427000526235765783449444331936857845810817672263062661236404386321981307893204904548879545403253759622348805322534096036229319939263559015004864305373220208330105065737445721238636268378514575718019479300144038128801937157601033950990905574852118947435372145247914752000980170930999891682668689637917474626076763065971084829556499031281479398341177088211047162067609042403021538677355566748287618400300874621405006723685927426241121299021620652873968509666990924224388625187804775318666983111129422267322672708101041304807121088354864751055815828345121562749737908104260552905393824515115235814042915028662666590238306026701600363764000842575442143642388389337698484218768718071985220420424358631174941027370234871281536627601366656306108365213147744789119890538757188264645485660496277422093262307030911950769359562940964377216018647228032946311692506204256981583058380621975902772053094684507451728609162862094948092063912106638157730488553887519324767505951443531740274899654975291872253351427195952557205505268677553114364366206743879125427440078051131170781436654609652843952622782203833923917210102442294184631066873886238129327292395800559994852962036152639484051171812507571947126826894834304971186160990051482989192555166167336006275994834071669211984199105355150043404947066660666443062921722314646507831054517401970478381527020067850756388706018564776160843696415623259375565564077981509538855466275217716476873568887816598579022992360902910134727789380871488186718244083291606629827204336719780721517357177936078126755803574204305132524820261441581610277687315312885204188750370337928686565173562459068096437628135960734616956414881381121615501455494980864078378175090518105919477722275546908096374324906005173004313359169971034175983532177702448748398924390798456408127124835349882475227813528497410029958846191334574943900125170542074553603633100744642601466158972978421659990092419331450878093667957554885115685123415942391947431670411523844601888558736204359397633395191865611588534676212291616448058650847349421857056975789854289701947972230407269447791934198195176832188748412227199816587020172699112628444770147321659572295186991812039905020881738470208538400140323158893699932932820716355275339799454659941782802688898632562765338318750728905051501075690910402232053731265135680075082964166195782198009856579616280807461040216802220410430699085445685526210349208398684003148788456822259047007110755007894087252429314187838030640796672621391004502470349909715996556540375060248953045793234181625164176899578923229226082609352226686015885224485810349562533116188093914144134632335082001596231025493481195372247358021682790841504118780818550673195879430423937207027819980832421662591931487240275348475587350723728686041256411304637878359928640426504287792408064686061943795286555718204565231952822742986572025566984211871202687156523961436968144401240878109092950490528508125776890355025917543726738601066074760158869165612271445187036004092001739935698179850711198624149505555112347656101710256768010947892959014603877329395239275980371883158921493358508960901789812013399936889171550718454654772035703467897517794304966247199721995253241847120016279451295527432508475332829566709003463292477462243171194027285558622246317964758339447769526020461582568878637553191920813515392677906440404937747464636893167495726464308902412444879635016847305430264008076428480610942100333149850320183351465400315557920133272972982996302092483903225030110717180804028462531339520392265222845273521789532389979817128509495349513000506315175472470396345316960631989649005835078781566605981741074203195209758608915692888557057193151023934298423447128434194359473992606320730928148412079440094148331229374388202970472739627708234512318423697310511451980380814063037909546785727874606820162958427671814948947599330070916523711595665290570315897494001483413642509409824972804159204770682912786984491041324065564668952693660592391351184131902272197174304571865998284560307753126482122757608669859910378370291651713700070239939472591585134918794996288706170684167909559056621642774741855833715551131858087213480631605234246145098864088576715357309636899647425321565923500574334501004035345314929293349109061250695301034815007946103533060387415913520720529525542875946416466446487958321291156351986986810763388925696251147212131482694170669371901589825158483606344822136246995319550699710462219370540679096738750406834675550759008785072202803940482758562474647691339699503901513346249687517887274050337297847405114964381340898005759287057178039221232326683659425389596147961950561332556897685477949317591543200357140215706776876719450966584686566948149593461115596362527579313235283591669807596774171127922522225163996881569683403531755009346643771948782380039375696582340625517117348964459670097351132417634218462148089656423868939651487585738373924874393034704894927229951532305112631640542642516508625309664645231543511537013312204021978945509529274863909965167119318027875338429466861936005182574948329966993920866205158209019972509428219564282664575167207784665280211506663630124567691312687320070817828242117213522825226679943512146808852235716455988578544544989951111367273879909683073585981760543782825412238001829447874134592308910181191074737135602955316134433096819266921402674583936545789550887804339235386971876659178666912119918634462311243690433961487495018986262466414551184835917331313135593975634408901075614424461402117911823248346420093869633639571340912831751586169726260366717275471344622744462774125065694321133362160624508159305767183558061881337858931490987233560362738692860422104977355212827218954666427415441282524661579078088608145621726156058374522814762971679972760509792203886757233187165672155096495271288939755582686545611430055422885285250704050028927220692257289729162884846986409226612025680989745701589508856035258054352966254388718303115702834900443758762754895281060964586661712294638964476464358525346605943619290691386396128418873890882275494733895509700556630883631784958101985164681337058068862408399850601847888335305028872019554809213152600936795371094186827408413165057068819305522400447501039374756265608233567785868804987957799669968459539500911088596156500968747314369661143011673002888600068892193527301797758389179173696385017514898518209464169668466930593892898939113417249965723115192191858132724479103575426490453684262707972534708168174542980614707821822032492095838605224141677173069494205729197744773594012712295893158004117400514487803089999698406569459706757301425410314457555824645275172368866530060886277366512327165284192291024808881736468505234705800856982076709729784859898321482801646635521247153398158841791182524976526044546433208985601477656375740460600819020507122770397138443105446287879912007377813106557212711668338298827022374522333446931090948018721852919315718082754616217994315617901077680330084527179692426561152292103313340939486198870066902170529731134698530225870438115217709576102046922343368726059840317766654206936116279256557681071948797993929410885856856924101545254689206892356655092922904744707242513255299935254307441640505044124090432373194964912940677740633667179233821077638291587753822792642856300372763176498539345282442983316451159209227737662157845807046519738609826436905804936518973505095614696930544267406954620555472333781672030875804609504946205096960959879748714685151602148569891546303055261470706065683004295719754839157175500487911490552330571706626206858441947186115374074559155638333004459708409659172386378500852942536625142471952921388104627367013997345766548574702066834421874967472105676726590503612097804540165451826029852094693076593791553279498547313950431710473854080360753889592624086215155710720460219522156426792329091926274478966224416689364246378988149395250333958381768084227076091778293254622273264737990758098901863602653743286895355025681439582385125333673971969290147117722859717730091092740062936870344578958923821255587973405032969831761401256564990181390082188246841332324893087886004645931664404132540082377104837728997653996688904901666568556770071285848870477380571343261208481758987080573774678379749544505719384784671130997048617546707528447020462454484219064211626722385710172535662307897972597136758294719193187917955079598855133296866014739257007981597862243709524678406724444207881908460642050001197613665725653853909642621819368718025939365356933563044942615458409593165267728606158804251325012512423542751600823406153504511727476220903871373343408410902364546694656909367506987089925335383837135372423973953421870984114784553010644018277779428308591664397673529702030603198016390037340398305235218123220599528357112938162411331125379000893312561218695068387316609121416396647752542525321310883055763577495908906439730632323060778135579873687884697082749386250473609147509703240043615677671777533517568514848659695215432752480786542923751379346731327689367171242841240845725108782352078826203136143651117271256574239005387595595976257058916550072625439997411798584452073220716916943842968867346476678834723532967628358126397849168000745116532996854872442157398259666550148040923284294722478466592083387027625020190539875134093465950694596972992805357921482452972582651163040120634136010341530547338946002900400635623118140538965444631398200308510302238947006664311401169076602978984020325270315984666833164587106943440551000532705624549394141697505788773537375249096520943761338928569519553513861899752502733888187745960775787739101427215181812382788713644721857871574181340520247401705981877578630475719851099291912178996386417365019431546782579124775040024155685148957172867726821307106930366553152472562709341424058177970239416082625132043741661619134938588003643080710586766758673307146461718315001020727696733362237731361839740826242054089429928871707567411194652018465700284895332358263778701183990225945347580211772911584197917419172689821465102871667748314877363028814757134595971712092809287367820658637462428004319141073417233398084264800569920169672004401475750658501668823524626593205386477132143904798691388027624481664324473692823512798517977880341081155298284537112752602854109495841231011359264333613159705969944042361293768317200523272720600968239213256104192914046582133969388881786295827622053216904246748942100143377431660194668077665151440897686392145880887163281935497020600757474064311040249453577942656597357451661815031113258266519320729711833673193896462491724334453380061763293477861129897712275158046621284908267837032024705471147040886260583914834392613477363827082883045252426829898865684049792179338478334679987699320538648442152629878427756395365124304817840804808432979886728537219171907140257683728065369046637304844585933058514308800626707260741420486763502850875813027083721790655408289657173404320846278021338871686455873551355640898418792736706631615365832123900581633873566177503311901765119415556339950762643879877641469172203462653488528123605683048243109934955499183115040562341692058097616185340509401098058651888527823223722954346134336906341421303431254790049989213663932770344276720844809626055673919802924386961036404885259792678659942172554017275730575832887028749082733795917100125631282648917308100196889516047150625682057736044292816037205978555612727112018735733772860157359550510532482854026677815672174579809506815925708051780161130663018148033096370391847283404969874050622692386033439918748910660975212679166971700233904913403721447139279150057539608918339592434030184676468432036725214107640234298819835274914779790534493817991032364755075157438626230642824349614531527944325011998978140443701931637008412005043752916778668357518066944660520758361860874479963347583250907778459214166628108961691093311041318761888746847559670429344840766934761333136238158775022298452774502424342924403889538508596016045163243389176485483701764905486870313053915321416578011142178330542711676901318822874660938741698901805426614991750709295919735310480169494887865552740794756806033025446985970602535409211261549998105845431858457188727032134079998987901391912594715690527938864320575942172349520821032161747886067812098558851499101949883726526189502835743359773959987534734683868114661393204806627134810937236795873137507381031257680513887518314427659779235803942908908286907298169692039321547328381374373738692729828533949468083372102323291354322061095990130386376346392764208604407935723293405597289739666728713158923662205488973941742357349766161101065945311317655368403806185688369442650034046629889294034525425460151187213842076134234909486638418149963162705413178786289729516214057297913088720495210169152123184702910136618025271618456571653843281553009250634688573088079214314416768111904567285869779748852118251353614167658836670219816287021608504220634054418507127317559997679762701229813913198237562291042647498728557238288373269096346450330393993442612879658622766066771441953716644926677347589080137371667285717386673919575200022229297238235612485137670242713931617800532029387847350627972351544001023962926004977744356101460247139128143738909884992075264853206267747717105403459695975065133546525395260398203737981057678861137137748792165188911155072350081139410962711845703022507061397160437494951044293099039768173550044083901489077016464523661774108036656038495295178319629287664029973637321401160353097329698104799609226787630983202866462303171064703135651634764043719373431313102850149324675239568270223363908289496031726573221083521611003403914893981175175163668167939035096642647853297175308106210570826246012449613827923701087083469084791182975631976488603378473680728863024329329556480815495197851475552843755314170386070846742246525499986249951830742674376134075606345314331808896641076323968672675548212269863005148335712032236904659524430988764584778292334422672847909808507444929909634079657647764419356310534109591116116509610292285157814921597550403107031832392811766994814947181328962475133012455064572288795919204967096273124150235058595718898813872744253244094217133439305341769819082719981826605596681424558828371479963390685905972735134003294185985506091135073320547811017712195687285540970569229711412520693154633734224147306375812721088116195493684246930922039043782857882796242926602640739300468101529623589255857350724748373181272915627877742189854695994921308694523686663564662859220203673338293522682654071900137976839141501029816233304549126509567858006319016099957656784527448267621722694603155461951084856396387968111246131864546834388447049774082783919751990217066898839214283961396354920164333930834365010676470927999769616990383393377115044333854735298410870060487011058545738300202420380689360738411714555283994862517731277032529982578941680800169026846374454430230296966576372864468256025341376271742627724539152841243965985989549309238261932777133675493414221110821322170272854723222159550305803605651720476122080474314785495701171846266279386896268718575138333858308781355593102258687900737519949604920139232278967655398230195254214773524075886525986534450714335466628036433619634300875539390533195485343738385390265677899771129897224946710159730554260200865961281919919236133591035161820508069610077762109677266895570833640225699212629018945544021004690169263504385979980931215571145882965852343037370837839326823485585307717559253907169081151958403275044064450753389417156073534084987215267421231967187097716150221662308020792363973214542787402141009755258282746758339487043478223344100645020715859608314406505632075083115305078061072170391517544034730183010807919975889409808757817893698513291204702915657058809239339471170705496828865461394404423029857688065853560524350707836427908160951720273437067242244164468375421140514191600659451274977656122205446461821477901606452410235896046823809220427881062671650858934131129727717208699668785348144220213984047136011940684962846098134324845591727826980470747550062998171324919734433281209269947061246597202615971495372653564346696777179483746157125210405742838257765768009685884931934023072007472067217959968082536796864856233622062446123798144075201195171685025271647739670720721080759025031500376129795895467157753541440371094716538073237608830173836019261754777957286473731336418381460739918461757172834742755894469075954702814669273455200031945453434450670794244954899895224101823724072276245122356737970833157870074549301726137220938010793004835509978056867386267453024973217333114657782035138974079719842018661208509097342589533569034283580098600513683128875264940123936410102511049454265300169185115469303856957756817699980700643412833640983653501759383851665333258621049255791713116956127881984088591671694126019624753692416687870657065661281345602885969065139589202656322540760187446981357910588551475136888213487179796726528503217952274368272994400462815137079232276490608444348596355329180944469678368758314663921387209550618558135595809295848395126250535487662992515875038157993326560785551697940008163117664546830190988116602356332014843998958549160173614151252759228896587388122931232490946166389611102339790235554275796315694059749783953920594515615528930813919292186864064979170961789029536251496995368888191660809489420941261969480370001683591537184621412127456440883920402643581381640486301969522337411227629428842162980445182294996915004743389995417396834177502821625680470449904960505254153876102451037304514012276069490478178990424484352809076718103797898501857941671585571930680731877531412535599650897538244108089962333001064461077519873410160081040228969425892250888242400629076231786138873002328853045835248934061754482763592432468436474312140938356507555546468397250304231594855094318738591566137637409854294736332977333628920341074668113110701343562272620815438382936856931049972665667227047269551856714904268168866178183886234615387691979525424076822649099103574320271641254672996584017647281804994853784214288500295438871875793865304179594110648460753512544395045396546901658885131767251957884868054164541649878487606957573192437541796488962961018061056669185446021770261083616103672397448040899880936646582680729521789002727014331671285298861601567849233064853894036513054377460664822558122137434174473806535367454206515667298827695519684748576241950953107601750758934948114642898851625288890098209222917118097579087959684614366959123526021482485430365287145440267733724937016741892554504667829306922765483310118213077562443583857042506310073698837863558241444565739804763966773387461228796924149835497383175041228145834376552381717384049837869456130171261642572526287773818458311390640158899982326146193985393090853578851224556933057522756188227883115319540204910672143110937389983603379293570991195055364008792396120931124800376652693483116743535647530708188828158535364935319656768229269496122926866472777279699811517601506357155996504301914691324368348777416773955918827612965092635114875261885814170514157567591916972635533590133069984674508962656989123950914179857380226018050203981197573079085762969613070713027954013611977700401799404494181340349683979047005679423606357825971837056308913140193688252596652535092411862326902281499748880140735026369729341528761216787942727350232559811417942869834341490110880681811722317913751009244074532634511114804141629504049670162912957662411091089130230023287027178906019057931691105826069655237221049845946575793956513673543548472289731773374684728210828261827105089916152229423834002693800515327917158286458665297609992135341770501661327219535499012338049983191413502756361258961340490982289637159087185490418039411888785875400640969743855004773661786535302759333335381122507628168441459213465999860220640421927585826433592283747882551402935415116441321221472880978834602717736377448892276756983851428287723615672813738419902762571207878415597221698457768062205223706127109254669276931967466974060998927184413764886187188592310733517578680428034414758492644203288075664733695643786527530240610899998239367873452721269148589534531745290184694659091112745149053336831626126700424942691597949918461199859426835343911802449588580759861245264444660349275197929143011523481172016005421730591823874756294428581712444200792449176140418099699701927527450015714296524428953176862890942652963287357881078237042260009883184700633204229744217027020040565328811541904609832289469455072387039942629654388530992952099913234769611531461442061155080369281037148830107005221174859518696585910041698391330035571939081717965197265624965924341195871305185277729857781279701145301726610906115670557061043153950700057397669346643445100668756701418102186610841158902303370469678851039084142719905792683098445132188957137402795558427854990569296458382827885769324201948344314120514854067279626686689123392368092057046590175983617744677625549523713633141868641304282129160363491807420948150114744822319208162935683605036103615348952324455809642520373155559427643249720536034583374485919324119712701186156080346230282558816250448641765182965949139652380738315138500062633578492592375092363082168039872343674078633979757053197482256474077414103878360492933441299145668670568042067665834995725658116134935167674537975597637172817394929616830426542749492496094095832337584278755509230069093472544424992006294392777182221167739591992494403110217715152763139810979400028155278049666458731660756498476392859427651282364513772740764376788312480026701431704326774060878541714794896711426170443816895050094867716757433210778270551110450952337944417470888319967257790678791257702138659735377979923836128530256119500263024091219377212716143545422617961437054188207226518879176648565797290994930538165889937017711025646129146684355477185594871633534375595297160349927158039337732404549651112171784439731362643857374105297012422927506370351470125880886179325691903720121537251333647182327052032025177637205241820907801068766701656315845617274583522131038422559030685880225779686293402093341154716155283874507027512834080662270870344626069321995410759112027182917306435882198772435768977381117041825866177459669631224402965574393552907724632393086067174715173105335044411886299055680376104745235550061917574524107318006327242136295568095233493585546342886842625914053684291904703034437764270370713089850000198026812038162009989475798282831868443475903424026395497325923623863809469691556986465663825640009276510150905625839354493184328341989407482887498119103349969842176855221940134553978328198901867141055257285832720547612269004694094383975799803781581798327644794925951210257587929965538739307743904835919846235559216358691375446360033437594005099637037399206604170616187444263542876256448574328808859364491323612958644832787475148292373866947453186979396128385029070339995858872683846232109547802191840689268228678274558375105902367252803071539996859392353438337189119919414110797977839836648930013268530673148934735725354777860087661097498194094578908863803180716981841160660958556406934328569232248265055005125222149014416898252774109001158100509370401833264507583776336642889171900932874391155428101563914189770453172436426164025881626063996648567228103655582457397985119498072065090754979876850927143031150705693125515966633628514019611448023751798042525267944356967813327532079240030203904469449197474967417635106461416903115017118800114951226271680825444513308857553292756193570339933006689719470137129050794055033170051541564202761637411729650264022610885972392397808593232409331445972902240732578531399268588457710565354664459341944723639484748263677849498397934227235714842761643153932359298011183243184479370533209117611211908385017701772943202011954728586485649325525279571335451510352992471200495414061070702099394158270121809405276358200103863039745364328321827785041278345092775400489734985381220034660528895453594089925884301341712790081667588568157651839519204718994168090011051155207534775458366077763434153695503335436039619501743319914378123383183198323348566102207096911218874195863087252780093984359075187131648549555129120870210232258688016851145272308974174275407566030967264601437616526574778813873704855103615201740467459702707800045589077200587901642793809776679158970412039046876414176967083869679878349707939333805684219697690009223746652341258535528509103341763956423885018916379029603991763813266179676739848438078423164971460035712868254313459148071948706555560156386577339760101075547368509378713677303339063012109754554882741533368233876058921797792046965973509396334721935871297515412051983915459851043863570239661234698024639726683644304224762634749198970557294060884059909346570688899397991518715087487518939611567618518941275557700638215597775510431527215656777639075166725704176580740987279703014828036425929677398320217246398061479534775396620677879074224611801853178461087002488570338828004490271127667193192714634978084653962869708651860330327816562493826259916671560959439122750678444827455793376584533631914354788890204411972990127262686220439135585824218170785195336561882866684442063471101575191549591591444985885315904463570743233037027272633525613061179412331088874813130114659246019363448822653506650229828827545939585845852345865969375286256234412703715834488906530184167826749675091679979662871587309755078628956913104322766026900517371111030572472155011694053746752427202784441636868711270765437232225040041036207484688140752515216733716707264715416701128837240386626890131192628571999047698739404254406309969128836673806181632407076756915666527448857047342902183588255833650007971715714909643187420474104295623074745237996136351466813378751731749969111208180986097726064713991879294256464994365447689316993767850174141739161027130186558467104852996765556854283709108248008764601071812496173214481951530267776860253347749680093759375076491031388847377012038518826431988122029014896758368206361684877132778868951908128009392599160956011272657175381378156978346125586748801681726602152578024531323286835081911825977949026681403935887496268638084282181392507129489291405889746673551511107396800160279210268931540062678708532261827688223367363153248342642977256412028079326159002597028031681603065149426940886677100398836587615464130589973597221533898666089927526930049029819999056312160722895328954414743530455117564388491235745629369344865664741556857223136203490053191646069231062857410776261835279059159571609923147529569923862192416514842720676905480715466173479375512055370449693146249798322301866320369168904049417545076656019017828254072268962396719873787252864794468871063796798039801470427575950338901722397294094727219660617800143594467017074823705191217528039010708167797592277271770187618917205003227017631672032601131558624028730388076555261411486476649744911660103146382912345737795253112644343763393580277296428735519558339841001142315575847277352501024411621450989590045268557626528202413938944673036125535498191077363889579803734616367937753144535847276039929120383594418066755502215690872319960685143214379966198306963833640186709041295638094121122573594067571740649110754109024362002714074340663877013347521188876598443712251125035146902357535491674807870213549683669862836778455121140894278370913940404664466865329529828183750040411167106550320309788136499717617073465797872337396755879217108019928958380455564156579594703967595518594299391820795652056859092979845326556283042387724491706431202434948762879311157588121446721951985077776743060539662013587808026886673975498094893084046294292120193302717474460094658320939592314135504959257023656487475279251425735926982714297653675004375621847421925496616105032369368904401643290606922686137012301840073025929660666357562291148709853269170876965911139604722835446190564076850237087159367228536936423292929293390214955420884070878105462834942942210135299887690816023254150892354067978074705579299085960531908049080828796734310437874312987806028456943446821418913041687377347055419567354783748038962492939395840236822202537913247083448153704341249323603701060821258392840618369949087072359308566072425487162648622017093640999140734194825387560910131802186723159661202614926956149547139020776356526851805492666935547680421415606542672643666243651982853373078467808137548766201502210901681759999731647721308915159826089204022628552305411697198675400713486510597804905799250569010282195127088565923580656207369055054494448330786598002821036364781222234494504997262053535677606838410186672285971755483814747971814030543894815391141094921385230998014184158749132678369708762882703438957853819093217093516911768782984464878034347767183432432485071673399606896470605918289068772111251671909329774865860762591851748374499742564797876012107334604440512158105093791779700209934906144094053770825199889111127425621989628241439602727195325613301508153161019385707917026027212771391842776861996618783435352771496907922414722311696687754881217731159755980893972840100207129492975982882503083779207296993715309155088982563942238628409864701087125303243874733284033593446987347071858967703599924313741958886005146153036093168844239240803031344852012571355161454160912645545783823461847605998365112899194223068068459839526932530342263403337764577318431290112744850052023690316618506427181752764831129792158157339662640486192981854797780711012330898843035434244300271945341040146257534584027005271027525048811761490448674695251594486966340126734333983753770718328717615181748602248971666640966050751784841666640057491297816046968586442346602385357852010552432496668482734945089098370355384070733382435530740361338709185640947205110217749592924695296991553800116363930080704118023930485134773924073677490567856982607427189873116773253987808870983029274544794061741933670233527035376780295612468494766400410237819096898881884484325806265305186292551119502805634899334414995290090732119922812734734976794992621669092745246949006313438474827663044050625106689527558937621106076792502236319445069769884071705641931343421725949887225970876606105994166435565631385887096672258284725348328095864672869746797144305785921098500500144815434556639902639348055924610622742123331702280386925223626646929545239339333239440864085808616003509190254234071260378127416425802105575175297894564364061646250504948790703647434171592046099954550116900127545525381140792231403766844951466920068162188391564743285472920974026624698193279977791495302376319483422277969251070961366207716202312430104203833467692190919381209319813609176373866671004847112632318499965164610264669163709553982025720675560068832410147424156302027275614263074028198372525151646161062197141576881523150631410764934521913233476204623445918245026731728235736922946062317284301137448305649841971931589496767928576825944736736813330251785814093729082794827489669129395469193749065527477435440311071312680874045125730353266594825715628424854571236452549976178925201014717043657766492389265415516012221170831579957690556228230001899401540071080881097883297769030150747382505586903221238602394245885732252262364593465470849239686527863624315938378377908715771728933614532106414589692867407733710428172979493968892641121645073011846470646306835384901853623688936008854731025486381957545571655727520448833895821610567453688900912369613657175314991099246914299196097524306293836059140817723558772338456782012817749063638165041217237088354627185302362163129014276845193214975039070756664803303732009838509626569364359412998860390486961421776583162252421386709341633149335023427709367353389440872214178725538085077537506115764414481389780875751524085032556951959455404701497293529772726961628938778022318212850844162185649758282879264032769241589124368227494052867761827856390599602884039547161958892426995126646216622177500857848391773681149782877656826880557337403009902079544140664543239097082074750591046045789099628098457541176302689389900051398027003735675454610229474693057109043065695817011898988181129329499113966380221703452437015290972757600564870519797570590867044443034678914484020257227546249108507014909084123346723852993339619959398421243491375866049785027144034013606002563148082051079438329154550429696377426411973141572810610875404719598277870983760378701086055034621595974591785029762096680837541429372930006380115021775839745156252275433999378036352503020922559391874879629539789109862576012004563238049678508381263243392352200813179200076419468250814457999329481284048592200385007896159872519094535639134995296645807104556892204593602628243473756512314576487422229742136408242487884607404266779473050652651796512840637950307934760755254502934663580300168045260772492545521944807118754644527346477500150161892482295963151272489204148805452231457944495919930892896052459895757822327205659919403767451294700549937036470456166069097652344887491948876685433154622305083344035932217422469979950057830502970558387621942760464726096469906983705415698849007538613521305307542390832855635836098607595188170147704695399405895767274636569264435144246493842716166682387429552087057012273503250128650449187071786636656352232589218829413783777077239399484994997603846913239582505773449876168982434592533955909628998515069032612637945971552668167498922264428570556317566069823202644577689374003500263063513772727818128078688931565714153250216491121421004910545618708263551082705123074469437045046208286167720780996442995236137508109006125723002945513929406876953837825889347962213990497530731637314198583432915912777928721162325587438428579344956073053672317958101966970943506221117040168684362169236125667783470776085127040866545599261561177411228921330745654986576123172944393651448242519006803060693360620113094467621289363942200049093916058101955721976538680941169864204478830913593230248992919376945098493662158887690976104831634846781350378801943644222415893163710928293653613996031819505680210215147864563251435336715280383883714692974433249083608098457185193593938412943907191076840156702969670862663533712099066554046345232585235034340283920926063810396230381132425222175675233862132767864825578050208151977434818843096254070520752490260757331635464244101187644747385565395576494844752502749004516361988337169749660646632562510759474090882834552765633282151966314810381329698362659878932934299099897203915864038363265452824629911525135499830601214114550381842868809542390682621461885830399422618681886333956979662796941406651066237236818427574648078784192538549653009458010789173798767948388558008800506015245759411035082981188793762370583855138349680333392783640074868629132235811029996457311424817959925896765125926332880456847593344534370287077088028353286269970192447117626913847629598855574898430583736393132706493412173431598753461755883645811624784717537600846392933005878832253869068020765534313309788748590302313300807970582935413609705761081585270372906837024652768092920469545549964267915819942433732719815609422382333567700594295540517588659785175359993610801183797982437132110636872558461889855137259492818832478351021117016390857033869723895369395135233980541262986136078696436776280370837515689561479805712640592565333439090761072077312728861952049166062278740198934387564499357524590083908731108433626047669057103293596362684248747737104308791560251967085998731744577318503461768621081426455252452764186766037331365505306647455024417289042633035143523095525192661020605822342159011879950933789116008809348919849269399522683640966193660912705339963378369746507901145191338685949746867688453907006183272577438131966249867437880708483652738296400332962131724314681151399140269927005648242856890264756847745804385383204610696087909008783399616286477268377570630251399868662996538006328711221525741134692519278584765100172681331063941181580615639058883498616265385173830817358859630655807775251248039900970064860887903318991341111018143151941821333258997281123936603986853150754842786869234585985490370378894964286294996824928805657291524478951037808285624911410610882858644702262665188291864900138622539750460081293572321500045533939917015592501767946889646781263282831517714198091105558751632670831423751392943127454166067879032647839024212845834808297096711671418505862608131072148411656274560471369746398438107453935081183869982394123786560983181584035644714403922979225666607894340673427322401137175921089731763247502514229353815604122074526144228605463944121238052193707884925740442213653966924020295287298187920904960488555469358097380520175012799412123357014148973109163917110803739286539704790497636482530185965804493181951467249956252110940685626243341656153060966916691692851447382924456746539334266151291554028018362202116183884973832532458407633766314708888055758201362791688179613994509413669608864936831351979493718876328723793502788353695519351804305878005341931802300364281420104420232958601397287391196795184727301232010926087394883466516030744271744303257161280090305228928505767320160822241099288821312982512410678275137947811954549181693426853625986674316690170503668544054227214958698649343663407202047527456506389580943971171479436170218203909705868577849148460220106860958289601887542366485165955079309865655196077963093380060899945678064096600985271772094294496314830584473317551042363089263974911776932831865558818252811124397025867025951589082740899319639037315730672773400952482665255183186999513391631521712728109686221480876909526440972538837390470857978935464224030280653373752632346693461382123132816927022480176046646593414646701503774737963573756014371521818650144083386565639858129898231962787913467398382124148462180262677014914353529055304532724972629674152807779308265284779417399237943497518726566464443344400600555638012630159304904865015138755160428024233373141896879460941784201898859991842251945738953253587864050605027256817808397881291544895133159093836769592655339784343317788687042196994188469497561214671540770444011936108462242827118899420253130007880203432490168942226320936078397894311960178390331839483908793553770167362924140252566456566367556173950619169657538948854626152259312392181986028000880188363350284873082961745283976264960192438321681465599243966455207034913785597734618369832454625883790657811608620322646057082963587732514093010655428814461588219028506594284167409372717729125940176922492226270056142367359103329665970774213272569756292423259718351204064155182639578328993309649182648052859929223031714585678134396337937827052971456933087319373321752227931329142846176876533542957608470032340574593786599744545910127217849866350377578871360033410117521582703249572366844374518200233199603200346163729361249629302571710713207910786010384883415464302983027045334041758247417917742554549406758958736068443156504570444026968702108267127043478977716858829232768455713243346852737152861227091977353214686701526836396329395688545926975712038169042625743904085791776593564767674984313170013946867348888834957739144193952029883186499944366092935355498555782159629734966817799744594286208035081975768901208095955347225117181343440509067778020205705472692461749838693486675081523070961457464729669587683308787568842648117582714130804893508394365848571271089687929636455236696829487845220465006716615316387302309300077290592761866200062291332065984208382653739366598456834879621820239370433228809792951103864087048419064704582761731376421342749120870596289219458521120640545888101759463945548812140325883793338038219391768208430193584238209073659785675529933676643016109615053792998125322097673016717522371766600965520976799319788270500453405083776878478511883960201034275548310899149241958715732221920212678430832937391259022628153563759003286056393932576578317017141012987388645588440707515098366755764036961970746992060275390865610653168532689122647209259961228812600746741174224121380463200237490829714353376456406001878910618054151306637268136554244664952168328927393077022145331677308350753128490029787588788890060372070650067445648060416942842147245198805447225630754675202286961472525740149548932034899737230976011055705627761651845525932101726703517179480030777304456679148047341395656106097945686018677868378158982207345836053420274336889035832164759709351928049119240846360811985439786444028197857225766946672214763654094878249081730884091676861711772492713286755414217551826735797712681409706820550889408953042881093480553145923870550218338204280524945061175704609214867605434127853916629041577435715172660873181993053545883516905840330336081446722920434839504572321237980741496579585317249656463068569550311998183367947940183277244378510427375333287598106615883742098787430121709776211294961030761638224102626494590530107649854595680956838398546234723643174941793773815432771255580095307641833049811305472208568463247739582946408288480572729550260212554071234154568330657585818106247148975337535455873309087011636297868756530486464844403328790460146487992632926578743917858508061000110161083032726856486714796536653419304590660194478430712167228126987870184244857320597730624524787166515666245366834431797524045625834728593732466656238567978007031143432102643286537634682968003379150538088248970344894171710632617475174784055477330626675076482976074726628480622455675335772942890458124357809785867538219547323199269406543955422887525590332798395812241070701074567430501959876976738816565647671743034635450271418584845733798439633299995839429962526650255030348299694816296546692364786656210682231132380560211203334326209535869743732046083225281042264865555650324711456407665194270112791966476519318057727297157310397577228120296827433328094071672111813293781857361295941638375404778424263073338746649878351457431824722282843470957230633329060057259721316528156654959991993016105261181592123620861800094828615345526766914140672349678416885837019988083046053981506284709188145330529547809864802911205712845848049220263881045706253116291662001071856857837043509458697080158918936399234025532161200273827475394529140491634039758067504846449621538079198157727349782942677816729262606447664097371521650515808306839702628318962893555353220361906636884991240289914397378716769545908448324709290697478486179137250919062396507103035805386165604286966130202159909621046011242742699365332902643424395485091039591112411097640039834872529984105613651003212087338539925426480983907202848674258361871644495885017537920998840376502383137920106000887530710971923376665631290215663483025850290174607039481676667344720450438822314186667924278708362145720818629698330549758577281182739283419296314860515753614611323233248993317250856163492228849260920116439600536806161088974727354614642598716437508442599111736996802626567419507733934345356316226365947141788727410020241698246122394711915651351009736130711943742226626402156112446030078675349460835281863124449448349699800294931851154157205596990975623993082197840216405806324824211724990211504119743632022132552566219179863630258766985355680981707596814814812346284939301333719563286148087924969132524492166807217058671454676681849766055281137770218109796717305190664515253227934914140291969638242608551455778385597772924833106484620030401445306116415432128970102385795882820314164869179720386799281569558519128195801155625117627389846042896376838006130130854347567836039963538714942055042266412979567526771790192117786442998591233398483456640072989828324580952645754394550168933070726085380010516874697698324423026282832421747831498931046516268380821005788606016894801132851146625209131070146584894200604109128606570692057359786151097282766963671638786861525616490402057998266012410155657079124515706224891155305481085175044799787579217745989803091534640716004856081439006641274000159296944228562730493310226312485793324832807659656100381504977013324819735208032600666150625683980701139849184050151498956519652149611310534318433355551668779710356620631664434694101253922143727245313860998420797027779786506804764369463275928883692558839561397642189778443205416276330333641445955059406079994951284994400931639087079986775989342215124547548884183212687699422462021439239168866977088938445793670888522798334018446690216383115420917124306895729088437202512594256689211645441463903334374709010790738730268974154514302380910663116136911273293573499862080850156242471602278435362174214946194974517575452383876930564673328312986317178175858158563810981421290590689475371839744318840466197193484433611766102616862234323134052131566617291133706186871004330701150111420889693111394354272814749711886083165937891343093108512195859601116132253412924060625711259413889313162692199189094632245188740851438021359305231734167505439942023661201133355615170436029117447099219238923475298232078476170627877266953825319728433508268004257669416107304173093933775819919179343313953362835055423658146079673059436655604428800518614285767832716754688992979554403957854014089911209792198763585208532854995233276555365439049873421527137615084341252978857824769756872891872214993873700279008884354679881785806423641248432038652452066626100457813075833829873097644926230548421735664257138642219420830715044411956203691846440986407820742630606805706846216144521848498125543400307663300609790776859079292762797258244553473089206443165914134854163536732251194007384259721576072691698154952815682375818092633291757829167780969289704354447402652788662673160869902369254357847228497841684043553977985744324151503017179822584077370824390034697927283751585260772223058063190516212993737959577941699129296413465114070562983460344213332871748909742313804786327080665598298628705432844196414363871730602404666746056521615639731446502768287970204972436578850514377640698994039214958075554350261370917549878737385786503947785159276765537398543394481672554044378516898639425088223593003101366958556924729721971322673084553982645058093163612882149001082860801931987013168334618824386024876094403573835840963053436510101314282284004203058189628059290326401618881860965955605161640223728970914153694111327277443983674814347791354752826046752575287002661697490555555750955696346767359712082197201325707993427317602936564966664807852818535043311160151610075051602080967769597231200516379831722413245663571970238381764456981785922280822217110514290508342783152163606477822462294602591432154671954218989577151159899476270003125993693153870757939904870617343385884567432283761893485754587479871835625576600098568737503159531933352582939898235626716690043724661793626943118357006449012304143794188292056754628644239534766079997811312766432167592070094510239287783728700042823359750195286052449411091746126925697572302029193430756842343482497548053298760455886161837195237987653424401158904036331549957268191055633706523795660138984036596234537873095684259297987185661198020537066141527238386259962606382915888494591544508061006301251946481918559187378779897429219881354243016701717541110064804306537759690253623858325373802711605694384975129750011897297689617396484777647446881294599837630646763981476784574224338676054314752084407313982975295781419533102063834495800940238005654204919696035738279215849513206713964133723590199645459956227198648361319575107523555034449532000225592717907093732358065636458457644857026881571569485526616917326485707946918457804776192002645301458551160156376715392483031081810613275923843457247977881900667127692178792299367990788707415398782112407594783348645688948767840318857891139275379312407803522488775113611583229662870059174406445496987422095579549455721618759845323329514081401296070864950011222152698617618918910744060872973602533973884331472698169568919781657336954745986092219510048069086857659697531117492857780310763414180890147011334518035422983816828106899239265759382918768429577934997319934409058206153858379419944959150847403280437273009833030436203110317732298905320713685590966310396613346713818250039377671181881355196865246435823404764938616340746309432833840498965972212307775643397585147040051667733924708492094505181377631435307026496307501035299395201111234841397060212157517839016212506409253781428386361498691448154097740701058658830008453485546993393761088851837122292268643714261256007021277322633495901299445249779422582567333089611071235388569807958585142906384782928228478340821454981898355109005796529452352133464540369871837234554890706227500534543169724404474337151352311612930332101081712750380765412554273698079646595498983479281648725208533347813740203036315513312657262134534764266445071412863310449936007257073011852596116357466205498483666658028574429977878837647263772163422453046735458830252235696036264299292149841032110113883673938411326976350633742053757094310531722083015683312922315177084983151668068022555108639297882926385576427722345944800795883726319855406435228577489959212989537112458829549553486784433048491023687982678578584718366606335404642810482650423329926808585987135483978078652017071396326299467641176415605890762492543032583944259625176277129958734341413297937201989261788112379520253080303208257568568982737399984187081708266720171339664660898295365798597906770704866795038157605456331501798498312246910903640636320609804569676821963259572597523116554392018312171345445786672151380984590283053849587309503282420089441691788594023784512696120759828606825029305610757055096301488630475822132742387348642702766416147020750042090363677119456576531937883189565489879810418233388206687928018283143729565131006309734911373036492933719787725829450524460333695475288941549587123567415369031819864287899692828974177550022051011483637569827099780753744194140402822414469915499322301935699611844293230441160994199198690854165894041327540968791944847926165232856781433171099315906225591571830894989605390111469411233863455067131482612495498806124133711365562740046336892448061459781832624684927642050619340083906849211157315389535924232211683942792593830121448131745372021192647780738192018748735937084397467688633724223690945153520514845961427816178802036278533870186130213673556453165866872655921824261651395774891167013255166457599027781231199323340672579390226817428120172046272857545957451591197541480359930458217526929997958916712871858788152385847372739919633211145260130117415503032330572864322795818548001204380955682784223463951241266704191837930512596080006039044917792278470560172713069538261477100667052786503491891490927287798054274729727842350428192192599082511500371781750300116206876800031653546141105361355245892410755387960082051243030266590875146935753382762576482541216281686643061644844740014465201234557282132202383337881649003875139679962391077782266725173031016662231462305712424395691511670078072728541273368357410076633930253098053748392561953785661466366055542484787095710423678399453807277080276703845578194577117285102140986250095013876469722115132336217658711715368102873603714273797381543318017432462045516259879962504820091475282100959395453734466206954849864349532227854550035575899469250801272039530015203870693655830696263472223161812573752585652217499192248682314123788035872187230664375614824959563716544456225016825667046325312397472592023544743436781928922298005752509764615333152776872050866124003022389082505205340229951386676698488682720639428386036307537899342200748964910909029773648009472950865176492474926810494205834260923529129721051504101316190739622231212084005522747640062247276872184569320319936994161019311712231591503528520308141620793787978937509615864994147226441984955157708526715548754377444957390816341232655206163737954202158780317397206007190642196507843194375273063124903714048842476026996094698303589791849954804744383353431269689778382087043527971952727295728418984878430721726368209116810240558554148207222648807120069074146175720683450906157854264665864376830912070235004627698230044395870003336995085500554720317330745926678582072113148275755294368945374643447047495091672298288542730309474329425625598213683937869114415401954902432935875517844343186794831776050813368071097365918103799557662981149208278880621095318309464130921551575954779658093876260257799284647885149338422501498208016991374102780370488073304355271907834640247195895835765004321784028172387398928114545471431909225959205112193960660358117225248093920662943367973553700103155828547074501121499447221381685971444642140377335172149867215752248016476375186750752830772492425698274908636757520111887341038150280058436934906738099632241276956486389697699097484073097817501577437872950294289325673929267890133030119721095528839080105060897866134630617362450442218249551489787221089286807408662790428471788531965145302719355447625831941572166102509994502687625046631683187824071899451854707909239674880393410767029530991761688558601672828246626975126231222855825282468224769136794114437844818738290999807718587345344661767435981622445426940487401636289112192556292259301875036000386527296290612387745780552282287722544669772064247189908226637763709254272412705440022533764867604582325828288709240843528446052486667470182360001177698131821493383266137536206390585510762670788094406441020219063050968835699832673968452497690947617491991778095416568462790162704157194872777352017977093432004984362020217262019463141061446350628304447060036367357052190141687683947760852759713760433941957951203579870033296342312278685902441131834013098798904649182514040909098371406652901892561491615759647713034079334317823086469178517164173258233394896157011736892529911690970328444733904723949843553017489569686356380671903565651027413532682397980288007930601182932297444171438601528449199322828216092780729120095416863339649368980409883856868522542316716494902064876520150806503277477016624809547168178829119359578272412480544353411958988972061090685556146664625079524767421086308558271464975388551193806931856345193399976028050263800533785733457056747837807795523605262429908234915362365939904190427119501479176977608321680569718910409867924737945822902565563228564038858588288662933131241830812245503762991289106932407650878179515331814530072360773647051313549086570654078628275105951296739432828947890286535038412074606026209751392011444290636645058047860081915638250054810584174025364887628540916883237361706385034524604517139736960542399985818535927397011597051697378459907865002856139346839969031499645767625117071656744385398224406110664864867256366299230497696143934235787487925739644563830339924676181483741927903003457583108970557369288616019237772691534560417044610595616490902812908784672085449489227792108514552350104210215473910603051941311581203809719873843414301016073123410493891597883328926781696645579369246779920601840006661783627633593994374726030781053181374605523985034369096820283709191251171181872789583408222223046481766727783718331014823288315047660266109962284790825458114342377673248978020284414752515568287117061860860287043137732303837850910595980908705156544744094293661954729851233955222838468169060938780560367519756098719035903772327903848246803763736440779984557232476647251798603281253871889830564536535787284093846860372604984047177246045294539242306544861365251797565760484573505772277727626592871144727135621247057629728209498302972569202458578658889207855803149975365535775274264537766708827840949589686823801591225951371368130420271822516503306848815244793964901689861242743791764044226510987498874475472456058087322936833291447490512274757470419103782194753774665620699054642233270615289896448111402121386888165769308936187652873638922731728849955699661642488266641103990872686211076002667344438708185682390200947222997158532533453075582190094979448079157207219946314781864718394784755066612970962485792736180829728491266468652067287261978115694896482961144990950574865857219329186326263041195573172247283932282291058289743383590879187247481359366453772623447995065428102849063809194388228365487443604207313975892422284578707158165179141515913342875865952832527124689968143047647019757030387011646839299564099166100200258678183429310102135325549138918581020584492684494506566913181583693827239917925211880188936992941563641174797937144680756807093987790690346089416658067458781736059226944486625941969865509762328576510306074975897227840795756074787212516123406418474970110933393130788780740336925934942644301986192114796123156589500716915907480200228909646070532482710308978759074660164403847695143640340591597138839380526348781792993680950367872871784446939699536807846205332258072913062097148569316478362505756893611378879024238038005626577847362594641851752561830117679011263393244537418662904743966385915688788890695465863626691053786312110860939696897026162466196340933550876236505613086307757613783221223654716355895039591851223164897077567177307939689382933218263680514497609551770637440043405924279288484778690413232736652427864033092881993984700411362487901241233456440598286047498374264382164337660974375329062425081349840102895188770341064560299054051163094562349969342093699879957722556997685490016323502104888775495360605067040826099742853382536785023405288842680581362091788847897240205029129353810357530163119166142933469094866350453951852492248069801475434511330798667197881349722504634402839274479633723765245135343355206567783109897373842788782648720599137824258794416441606184588506458599817874178487467132868792571782438924631744005943311545350208984329742394480476243094036711789628892855229510522259558321702718930391263873318835551596038492449048113809626007517453004624345167600780777382443332614088619711752822951092781161654726781631018750678511226793269830241394222772074210460170317886505271850831395729313796858319738847932353495134175613172748616741349443492624731145517891548403872339382590932516323334166549309501811250958077779067834235292922497833513791665241820471030502426969398416151294830774541009933844944926821946512439432581600235835221824075116016600526096988499771635335804026696829317146373416654449559306084734549516320812211952781482163010639455829962596420156439390969647257835702633763666884322505607576623231883281951660505311943393807811557607293880209444041375532099927843852863021526437442563699014194098544886158659912569459241986907008507185283622647590304813801221550337289984961531229751237912760031332895132867206511822558576007003157983542906282897438508158219407340193943923930985395629326529165804352100423790462903939077943320463654013349201168891533191435746542261655416952946162223395264801559432346254379361788298176429214168098063869913241613883753509491380877530684822647331166817447745480047986532305430107144806536023524121910507882740523260548199236400287939687047502366348384239588619989093141704948011302875086111111338481809214830846515384715622318286822618823244435512116657427640493769287113479526444049652137120370731799103945933134832559133336682115682405761635777520593735584694607727274580485374650871316670592039558997571557303523692637079426676246615615290174543282616836285855657139399529699137359483565997777753309263999202419918087145346298169142329955084303108361610454825601735264942372318285022111625408922461535136100588297544565850045251620224506778224302849695241800219619240997582890888537881068772064036272846996796618980885524408793567812513627780719542113130537216301147645547490128144485937840518317817806668003469066516163625815976220938420322852844634059549440919295464232423846776627518733337236235910549943720151216568666418510974800423536565710632920521467707386291936348519794420173355309650898830696909649515615720899492556324793609068550131382260629833570752012579426368732173876793299105608824195847214622810446858271271764910964365577819320864242960355204765658502123020957984123185766536111673787680303813268633486405647864288687045152724887707883525054242813998860207420888618928854131385842268295330591606213364660597119791993522189038165321297782316121423596266240262353126935222941117511266380053208702418992161755365191148885533689712263141535253238635578269071724552975820172957687841006353849225089837819127208095533815466029028004933581261102681377426791878202300947987864212771097097514927026880067913820452128025779325221018448775716922784358192036495727674105707654834324860850728576071527335092743093285975520337540906444668303663316921271726810498091481997345870212915028383937419309140504280773317744575669340360032048613232288148521158345536664493507315347857346752096635241935946265501656585527505238256111828259484592737048792201319504871528109743306806231653817823524638978493710355473286923016502856005707055806657463310661666510421572738994029832063192165136136804065841734390562916090621503654771374668324503477114537300999434438305737678079347031513463691388781497130343817926069653004938634640776991027005568463226725286029825455254914876095403485163840768718245642774698401967176395897392036567930694500777176711918817073227766269896925686363206986290345877563047641507583206455641456195566744263620770370656512151993035813383122083899049056870187481281649200929414789327292739422173878104584513300887242968483409054088154461780478495210934979038608048465719639108977353142257987958710965325002962000925513668360927236267504313040530968162745965632990243726157856326711039995408925329991564468372927177159101345515682802207982234290298621077714845921191374179329694514858131825619400657831341402642168067455753936251415109280821692149409357492706370727739629689787211150388887759365495891252326761234357428979807522778305293625467193938832259697609499681962272651121609192348082985186129328327413342323331943676460175220991056507216664214751548907355377076840090780787826228833969076770112322654302112704595225571979771390945856004059742582438297478181801208206157177729303286954192197765525320584164695467380993663936765223754394669765639941755067493663312616484467453570675589426748127912006309039350227110589290413011930370277233711920731070081797700414585969808112552185421316045225148485885709172504317846991638314700094530647742600904253983384352568199093373288524608149509626421961859240715756105120649126078336036187378581779309330944128348656531495164279410877498770664556966036717986663885744024167633002053875563286448363838448037126145308550831163046897092787731953296425022775592632078258172714714032326278911134336114942592647701145578800441565999990420387769580476324024465555359998128742368267068746849429300936637850952595783973751631882591990188082861511920148253332092832462425971572475252289389355423619400928421124814078103353284375917891466485590593175464842719806434920196789589233518657927135445123000473205638873165633885183816954361936151217599285238752948395550228625686117007542294169784500632857793867086243733048499976292028043998393027141132007421240504829377837122625528970754050445552369176464131275219785304267369955827337439573707119403856695319280585462760824250384172797364724373012763440754444262677373493338358289296517968054002050648359192090511534400463856640549077925045002034312966882317192771462550223369557293890064939581151310856966878669033395007573205231045804038251753300948163777502519809535407174763973672973022811598009612607361046564407025326246817058753765627959337298767493127282436703490474524280936534992332009548548721283624574017376158185705952556645102703474314987526812107720971169262946982320686200093481215420735995409251179916043513967861623477251828747601323424281026241591686094255688567613872136913214668406392018458592619865336840231675962254600603592519221654799847505598045895115135418184934677419941869310542250255011940077079095836345292198652204332229814715367051108179151294925429039650520612271473973102135821223238314097994877041595378436112750531911539350565310154221456884127287296129107108993087968978094960297769571374429429455303635107259297572995797393288129190251981509505438125890883031929018799480801233297982623807975575814750819882327703151798907470954570812439885896808130623496816511561879396801561487530702323039587283165820324989303142104214010133540868344858355853158172929372686350280928762417711223984113993614075014234826656141398754372964116465472885301746898832240180653481936309767618897099436254735315696907112760720343230018285340702353333047047894527449470356903841937741333980168105333991116397145060079912006464781927122088604473886059554921092032462627758625274360015960407331725538777651741970369155937271485952828301459923120388700888580430265982350323658797682463884482841592787374211044892497838770594882155568720148099795948046523956856042981738359028938125600056879489886757974749744835034174117901355186096155886372063794056964047504628389724653895535402125618713011226034681309704901537092761082947777597520158048559567933656347751404843251711466847462697116417103669265008668109119082796567591686189706333054482194899964705979003423168059954802477711992284001709457952022090040779588931422933422174564540334659040724114778540992182761240367267404586086051008681833732881710911420590924963101759470470000553404485848458850803200640856877428154658716598217852333534155823240774106770071883462099876049790309501197462882618839594642219294717637290686397418203034254946495222726118916562777497876216525098231498215145055669599043353682304780691487164391057028795680486324781619589179116624906421909872993391327296371879218229769689607409672445514156958625112505554752571242038906700141470093919568486866400043248272631792544060981009028840892717568413871447648165447506804910578367351834236273472871922390870548709796701476095253379317248207294457038042806005323427099588010634659427387951111511521057605627440226260494701998658970479946822973183011266321644550892965684212551154314571952717573465125587582566315155500349103290107733513360111583787322781170804035176272397229971276664959308837403467974833101422689948484997173612301831033419805671732207665793854493731345739796768340934912824306993150966124361711184165459614625372056570221461799819410649027601940358806852550552307163051036394088245333126815430454763804659039608810670283848637102640965530537721569554429394549480806126240527747007581635726684447585068046839276414694269032095650767948266745689047508193394617920369784411524879532374230907519660841883732561437427118001963870294240647304148501404081227255319968517947151427608758514996046396837318008975208448901219211186731439249884077266991102516908904617166011791719011493273238921394068564498403758726088210111469275536557024225980640264236594020774260511774292966774972120865635179562337883161409242761332557228719506688157437418586595873567792639468770157677158201547938971706006230412120053552724513255446435199351047193112158507972696217851921709652994203631083532747146487243116335815282655619571838539420959768496244336591993051578185942563821696079141456971779350980055648992788988804715404878478849459667651528908882027515175621630534540732265100416044733408827560655738199832212580962209070236769362936735442988252797520198781712047736003712536798337349871773143239001609270731309133447600710008138031389788410828385879868795615490106756502434542120333689688978125267469895964691941113966770387032483960540574814884396784148779113075414433879867751345810886600516987634916269338420336222276186059318736108892377876585944398273298351677156267217087783951963141484387006227351630473785420699597205289180350225840506111524967341175431583639824149105387567934979456039676419575515282026263162287388244945660505863948960218748420974529035705210419126386193414655397395889630827936050240896286393369191106662894295161582388436494982293878652604664481541048525650198287075277727983954627640138781296445325536465672002697283858542477817184750336720939676777783933125142974847495296837030043030134613806066739172214690314538075128003292903077087736418677686618601453857578167226329437544855016434958724214023362856187834262470893443128097387705281775985274659109544544062196376169321490536580998628367252481701063548076315502434977180172947255644492337582153362662936638419164592515892745045582284577476293012891160771008640492970404546157424707729112424545434932481355957788491568454151741269735627199428924430615800934886610601783443135659772293179176002255947220559003439234098314604814838002257327826102402665721796233492909131720807498149634709239591353237327744601594575987840599605234965608272238196909385489870535628974069264156870847678414212483042002463681296834875290916858905915325373521447730858043728205596357666112970428793138638020485355651617762186369680842224964291594642744846278411670396898344830985156208125372806768333867435694836507617562919172561560218068348537814702615920130664137715555245444970578305269945255665438240967038752753373781659881154745142955005793024867048456262535495591184632193425892501857765689289786422871253122590050271624276346359355313318919753477023897806895815091741153879604089925519386737637499601699811453045998112598057600711029784974744053935897644416297320976922516999898343338776657170071692614791349698904600472765589683864561995203863255789116824969051339002338904051726222756864456710151145139668033629208683796932728818544597142416270187008189151481505100303530218316309870059104795077257940784867924501594238971269641536873103174988553494376338914602787129982593521649830827753263392978645497805772938099339346939238162126512286040188075387187580310224339648672055116889173789930043163240149634872088888864041842624964551720085221018238959968573102391731197132896475540499862789417301284345954504178973036001666885246467833078694354743589248660305061821141826428088811337228668421207648872169170327202074004067578444590308559830420197149728153425076999462097175965015341011351789143934144690796590924153269502247917909740556238433148860297155103975422331488695740902578740023081381106064527569596506365739923551499941735413861160049530736008862719495749216087090314136867392816084100462642818405454791201280244845359652197989920866443425713599412259799140651807282161399117532700218531162396414287238519420379484265762418894338120265431065118075638668000818520699167759611802452487688729704046144492550333608556909863169675328317399227395347818699878223504290939403067408289767611940217398724567481580720529189332269809331681200821382105407175537559509499133743800678424350510571367201320539593105354126862155960557122335701971173380736953964347730973835974312261969950778902295146716320117724109774252642468715891975875900592515995277223471429632980899713523342883410547327713169183062496286676042565287414436586132371226018425429379504595077340082664707343946462564573068109271348240674038872748350991628881255975976839228349488356737002545639634912262934435037900270651860484192888583427900264156971926763057273734939015136649933458748498620001045101353615115873406149851680035124021230052421832841475027561832667319400192328010979556093081594201984105019706839912744416626872234784873033576635443536698588522468957251587628252637513083634337522058602154496618688579035725738893514550703437090094085206937072368613915307669411108342380079049948877636560336630740065068128596960514186659641515533903182986486955682434456332878251142181070419801128681874088372271414533113294208411829446131364712098300737985314474353521154487780594579576472618997880332082505745974842060196537744661995953408852589782415449435161985901392050968215820141313039242950714000937107157844706784327819916107013384779890379587832388949877840849574187164393327064480175377889007311679961289012752813882466977414670328556801910263958717956354666744733287800103935836738268773101799723330805450483096970954589785373787933792442546890130375878840739019930522365538131529874406286624834133167489136942803399247077745903231809646131262947155923996791825491851895256763991695519173668120235914822655634676305480892575245397760732986806738799771603560883205695530225958705483493854672503578123454595781750801040314326885735102888417150902959236923641220993540933999529425490717520534432659960412102220763458817623590159027494271279596275353333722434859646289738441584181855502528755484802455725022448136258775982652225699754853048746379417035245714087365466753665161360652122242684428180892865295378768911635722001977325477914675289843192699106720531981833051941301896088126932652867074171521255696756504685113540308912523930486343523576036082879424150544819620558364086902724853839726960382915499515648497888274205990288121826529463703299460166575525716960524555571286263766360360920670687894554324342462798654163930489949373784079477308290602345758116272379612184699103325712391101276321006067559017084810019541353004563703303696181835484519304896959997304839024235352029169241528253414859470509190548608131887742106588730610085932682707661444812163857674224337797821862568345406342959499138387375080180890917650599903947218375791138312936780603533625653360489844918372707065604854881149772294519448235491480659248047671586173427325758786123620955494754350953134208613818049065340969860838084025712363372696602859904424382145635571354935846415684441178260710741777831590335957733270914071115141517603353029077315815322171970932828826965765163035317308724827296203422317971536107711893800373592320419622421779103303933343792790923535401139053207348690515935751681920498187848379725296404939985059538481362140247959114082115762334893515121584375827262190475417830571886487793756057711907883037318374473616825014645173116324158328560925960605946710213769110561244867694182118792476056391471129091269194695464914249077740405141018321976914424454565905991751963546818164619625187011408895202038541429017214794603837975528674474744715378699172124847558868491830659634852132675449885468165862474594460493868810235455510582116576799288271127764375460801926909070177437784778818620973601553685552437437338447328515095157405676454312478433908350341219697047870177702753153814656105707108875612890137485478021994073283899592932478818862070550949947691505010774878794347257145084242428402693582413766742469075745723127596621737726035580942629854879000747671948232369627082178784626393304220558027021919290546868253548127576955177988219644228736693377762562148650816663789301254432100144776107259647174776810776377970631212586820331196010806613159989875651005267164592207144591518922184843811556497081168887765522897210852036906440510025953279588762578308720852156081944436033131643396551679119396186209767047445375301876931898172384756871949868648081117914201666126179342741410768608067010985898329357050286836220189935263136715220317549987425074487681324822759346439236500157210609547957140588042462493805802547372149399144199426228921377237834670765874237527947744446823845041897537072546021411142792832491793432414848628022736281659102058591920017464643853423063899246445344492199606776676668815767058903399850443398519159284023285118676367140189036612793124669648982644168605119011949312674323802928738150725117114946917991487905845849664973324315875261516214364594112055834654204624883245222919102866606458499405779934633705703208482639202514155669958009389907811321775477126798539194145299174478022841198278254822168734808879220622390427415922083270134853966857666470668852787844554001932450765622540221067546444940435006906157203808724033894379102259990674013110993782816933658276562842775646124352284538864957621512084068773129668091946638615012320081602544948552670585409125841479849179353715598533707120992237378994293514357799843616084076888433840929597368973822396412646012191801151674711610042692646082110215544078303151337958759951665417135861621903965207896691775546905211020407266896359610253656899982509155561039549974376901104000016102157094918113941461692467724421761201467918862916174515002900712848730034615581985617135911292814953926894085282681621440229564377207443523004746554554180213601859598957550356011102036099255990656690987557455500173513240824333059321120477295318064802955917993226636161785593305822566160364900184900780568375772853124616721221241966132258986155151377097038606885715583758077966539490827403208298746291918305651625223208845977945977542745271285138707062014620523208923875858985334807865490988104394092778681589044695558890357297399528915414079131759867425394009869294617381294218561326758552533124982352435985728325137261347258772423526504396610039638841193650765402878116552807416329793731376383176495472090844329422477659104665183658992551752686862423530673683510391430494049126294198497446971274672010381469292644343161171620289889905575567879398169886759891760193031341263192757608205299411920913336135650660598376394721194793119860772571691947973190232064524552552397032332070189656755020803905250920086819427360336866020892674565074093811704894213573336393823568370837506895948914137296328569854285099003485014967166258920983355355238640307545361072418657654272320077901695690370618105997862092105977336008797894707638183498106135293611322080329486279249040084719562952874745193145500939867333553721364911040832431631738723308970047557866642911820834581027695263618729545451500016634106102236935357863230034348835069968323124104813019685428248157918693355530855664857939043339853976644604565330979550823925678418855067639503763626401109746540598104216127961378402122260465552757828691518288921976251614827953333996862200603162590849122001890331244220267354547059770028031779216503237188669754686858949597134705629174013437993412288285839855247464349683689308265043420237473653513613417977226809742946339754063098564565760308511843942759735395206500984649220171336256223903596648755090529977063818102993055527603890750297994476431621702807230249680915275743483161248011111393241136904185580366270196626447524808432102617128949272745973406948546478923595055054975602689511794375332493353942493699403891392486745530425634617979151155650869011181038298493284637661208605556267352872029670227408376780845363285004933296237724366727401410464854512240340025013884220077432942035665210708415113225808839713212734681747390166862453778312971821208192814204380392507417194914279858165949754591685669999623351064358814689090721550159971841290107807240132610319952310467176726165893833349888439954079879502121794623450517816948242096733569211967095158654937340098201630066054350605360697778585613251692095168167304536230132692402769511991076614129270925979053156571699011411213088959843871213044165460828492664757404205931193881869516884431229402427696717613891326349784678160314004371606445011422690609613006419401378923858431289178076798096422006082303435413437913576493926854870717044172761538560951962691450826958507953956369442492005145655623410431890191964933662416433839285531163052614779117040756815115746130304919794900012656313279313128760061751197846863546167857788375392092882592592860138703037776590142816835606899938207061023872435198435940660888393851909025426145429747544317552711363607970242218718527168598435304791014725192527535344235570080593976377180751439257901520604517661345841790003299176134374248115078526074864841304187897205904693755474325419309355155143804472346224641537812884445126882950206915517087257979867183661909132745173126691486866344846474771927973706014331759493796375826341126818485610881321567798686352961598659227593710085692036625579519561407707044693919953295944485699958059055615642127493114405690868035570181687304707942605017965776810145714161361869212901811003267119626315866898888399160356846501338549413490640718521069478932531174475587165948455279688786003483298270932126536506433901012753894319316526871174006826157876286786031594661589222764507974718580804602384283772370406770106168945964514277608636184437057146506689862941819059206975036199109874907076692622655873301485097850802822851359998253161593445453134970677644103806849047208518072562572599360426589038006100243875145843297361032316811938720280999993621458395866285164964000960423126892519640135113050200732790595470704117273158301655416382039098621408297354900774861904044336946443702588911939976515232966456618860139515855579238329898908865639693063703805830861235991345809499877109073267798979875837923137811753781704321770596456633095068203692627214183780590005679687525355228343904442523313137504541991843104677972836172767373742339559771193183153504942106060609428600656596422221672924684938394882066008386631279752342327664359268789193776806975013482078888892952721486797630092656006548004185936121693347269973791093014952870504738904083763904354090767554610080958737609203024764476687884060749864723281413956494228401641915125797645332092414484196574119769125377493033117002309469390061648028282519930113140835059848818880841330636699516281242075331857613612742622942111016646174965120612676076381716765778739610818678674543686326460032663210498539370797020001676519256951175368101884568185887613212970319484540751495693394974191953936373735898911996699281414782169261988154006580337613277767850446985344560346420673452966733693308204498168249225153276967015780439219371028545777203409346622240543215705333228473038176926148663704326421116808074961033244806181004149334664473193448392002216458823228336030136813738896920164647884049063037126255433237802026247680727227712624072851969018197147975940174869366163307733104569921915907799084218495749321649939458355601570108410118106002314734504571256256054619262786650678904818847889137019949719665301648116622914396816431157266785418432342299507872419594523864713863171450275995397041046860815261354086942655674753312392664199136564579892037608778542617281197390323433498652971555366097275715158821231555282728490377553183961202931666653234555200191086897205042791713501688016608974942980418365245872210228488322643005783404053527774183355800438875866989049632387650272293439053924576504579411341916314609297600439629143116297804901316368593952133831017652475654547291647222713291336810629785979727824405112863835837528244522329748887313314235345546170324275432628557631064393704640754108926540805646827619567215966883931850149494962300744085631736937958648780188515849196613370299685987983197653259585373903127455645823845673216647980099409653326195350960726946587934840940130423433053868693910499957388057379045010540316973988683160347877151495607625986514572660353795375759248531534119828217076398616431311529731779175453022400913150657539258112757619157700652066251342122917733359441984684832039267616393772714291000575223673804811204246153879611641051214800046796244036209170346232071000129731349959759910698349752160274664475229042140269706664385569147304656164936493587675402626519109039046985720964629962875039129651266912591582725457710545113834348295378186929921423278590466746032230616759992999191635413494979789527905230459526184325380509424359130763932694178376768106766178603464256622611549180938718825525803687721173307891872630482256274862916441645952663937848381191715952236445741555543388387025805008637758406010893032999261406136466250971179403650369485946003158799685725905135109101566261593520187422721112964471620909328785808562756222541438574799848952683542689781766062319040089098627399589228581982118820601663874072107736195519371309185244222002620600110737689390122584817865543251049797351867063619705929534699202223635424624023226016037151401646362679133060776642422311243138626901635901289162374835727912684694468615590006949896312812291936848577439944885731914900577446294586785702152922472100370110022193774334386895202465195978541473371535609231639153473495268470816719027391154696940559568661178214605459739388051430881844587557412625408512759452242848607750029181709406236960778975092087184253702074620450484812164954233781835852112140784151440323547339461461214020161485919372605085198305388412521519866658552816713777037562410222124813514983706481342151289011919213675044074951817713458139898637916377644267934825148880954068543795587388454537473664879056197499653934252991172793482537458217940174549843314370926329358239529027693458516215918933017630088492801713281505237346275023404372449831783969279612729161270122876945963960929166823675263502978229916455510548095334098062109955994060876809116899044341015188955549513100741981257382556069072354105702505730421160066118899874673948099850743818496222878873782302314073949763803086113909029505177127683423176161370223938428790876523655401691678058645715358762865563483784074007155013257066221086944491656115743669772674813471547921537028551668454283446870388024473330761645953004993234721011355755642183651749609629267025820962083610543675206487390187581066731015064541183423326291484895390612445946733423493148083529295446165621834197305528998925568897323594585884654155345408745124215350160969407147913347294610843646077043764278618692789758636354246779426282139218551376258663674829712845747751242921920858327769534131027636322636210584038736924529661429284937310755288964827374281889417842085501258873603952317583092817594533717667979335686466786684465816615697379376119329556793076145166912582450419445949768487769709930826520537387766398614753672584156519803240404455870579315891102727502738935520843650613611821603391297201533928288449774361638686694982997879912743561435927108389848821698391100948506889168557486656328648996449191697467908218706816193050031281770853203088591789825453469469132499840313699529346442468619601436145727194364321303524007280717722239778074439085195277874355833437489627774107380210881639567437580136291467477621133884667621312558473149915673642265441082480395340104090701502664264024061608868119541720440102067089089553903582737282464934935422058857845589280946815179525693520220122800036978133758314391132178055854245449387897881679844250010162849480243043064131977282496475749951296072428405536625022027056981113957448933499495204836293581803104916818497290937414099512397883656315192926475953906770580526306985254041412451434352291510225458671195464199853502095216706509516774688493647277566643363663988055706404464087762899400612348713291203209497661309329059014707863152941265251584989991818431416507613437156537503735178218700599555481171428267004343088915266071661224415701804778086368513842894915090813714334769319253219121086466572965018637954660150283332039796984342897039337911953391081872242194202692758251516180275665919895014684964526329809652306800579504644580188848489624402740090671483437727273982079513381348601848208662182336613443154812979999389759822128462459374530507794400635127948165122445105317696441068705337406934620403514650573917530104712855400687111183698266068497497676881286552774309930050048185634549216390952162470488962397095237185234507180858058248715835651768371681336810659336957825149675384610671509085982987037264043813422764850697528310770311734777270286476909452457360169670375867836868406837046019301471888695211538782043002496699383829773053979400693883694595018054859752803608414002352651631392610409325160768642461269715206270507244491121517983899150200130216999988715568280922875517027211917937020709789727254559590217849722747783062134348517743238081682465623120697109609506466255262641262191909591133601316102291665316908245272177979548795822908617435751188810796256229292382962155251169207679112640886797860101095401637045011770510448326368556926739333611460645504834876425046045020463106494494519722667468277439754882063835612457470350655276931721049987838094895874480242365709542066862949805546116239314620368197095013853802713691753851884073797359089321838747737450525174270509266705258731775476261759170872834469221864736909562361421242043846832995710132886125208499941891081631399362346733243515290035318710340757937758423027585225021021626261838025861507275109896638394617460133780758921697207076977563072122124869121969409226074428279643169198512711806074092171420306143445095258460988898355759295553351832833073317043997837304022624548801505768331074063615173764087343086955538452221086409873802320880080153409391718524128498037916001280226560757773770495251931376285674373133357294045756109969312445381225396829844535463361894850177520030964556764126690848787658387671523804375643051106746304525569352988418314127107107767976673374366115347516274163105390607241265034298915238439100934391368442894321943616949542990527745456957771232906599750526083889183682610356598762271305461238466332998825934877373244349256416588651265281379750339885823141830646175775395135705411344593454125224386840077508996165680618839361415168035395371741093251908881423631001204552943060513517891125380280615959119839932059711977955547220996359466678998797360875189282609185577357288541010873088759591638960629629057485606894136455609201291339793934021797220330971925214472790720812234013571824616617401457672768919232525299729163858075476057542237828743359271329968009626770566087406899158284120199879827232919074085278036656011436464964345862668584281202423135803616869247656111280957849670071478065704436139128710752159564124169322297026121209494763264863797056660743379207521188709059414927741429392950011373304821143383122727568422769442122106018058856504175456995182467741062063545242868258655466600010135134073411870884075012896833723403523233374834558744785531920574091267118942424671479756918283330069708029925794610008891061524566077515504302029524427084118491375761900815915609475573801781053190547968041662800120032135616191467380607563685872551540756130980438447973141523154418969825353751660408623463237539935005637312270398798409212983917348265979598387247051237526483464976399697948991240718480114879053893407617005108693447874321966614796568248033687850956796894186852268144545491622612785950898580137671945233406069782892556636861775000463076724038518930950996456620903263086577603954413729346216089691539252490869173134876468758339761756512877220217379871540299143654069237214995033355612632465295146028774767556275137836787577119327316205158444987463347676005393800050070372207387893959017063735527827539758106773812862311992816042140031982462648562253538812939170839230551386811745807612735690211606667669961206575866653792850906679834441591992121505178009000099068451451660494247665496685638553917514395223926984523768119523550673590191204451547779592628481078609993231019668899813925108111608294448249208715629503130773960056742231745835458603082584812609522136403568123793870832296916663432569479416051976632979430062996818740642252095409936005174822091795024911155208136787075905896661417918650082022081155166558290637386868327309758933538841972728684611168609980547695030755318225051553604566457107737131437049282467315723868589784250551566717888378617439978503974470580692869362143613604643349016819697101680321743832636868131208564200684035244851949487055921208931859079330210809505217997334007003154512414763259705045613094186790081549844826243871071908358990366039415977325495741876126982235839690988199798083766495182717103903265186595733223865050229165228752720500338663716442570549837575876288871881991526403642840494634628341663652383306793068157221833008104267924686567258101758650900849700391534300309254571818334519189256079540885223311930902611341649010110947330288467071332229893463808284819847325404216430907564474528586434216975649458792301203668866244599182953559758437587235905256222150621524768276430806933949157449641807057996524257687470439680477723865427193287268771531324427735926407842950198804627023582290051814239104763924176739440668106164942815523422964976922413920104701004397898767816194009388550983720105527171375043745932097405504265475266564053292272427333538912684717117500915313804601786539251520580137832638071674412765154346317910663511576915122218534094012099848962275207976610941288425321730446785484808048215228428989856354485688376497373345053665554511426714661022824964006020419810363981516352930151543642034584736856742794568399464736069754904787085339152140292754986616977489991001514765055142387223560840884777847602180474839277446392093571067464793221613763732759547582833295913751267721033170880683452977918322626028321389539403812411113312219081912753616513538968074654119013929138284188587437439685788231228274293043251300574583709052360470479161360583075205336721826176574137510905716645091690574738009039133504582572768528625337683906634810612238361580925321675883575545552754345228604229349319647714190054911714812526037398388344514270381351030896033125346222562227968469513528303147332922523052396216842042500325055103023433979354835621889282052241614445973290695109206617368738710976083933863519327355599219482776209790738947278490226767687228597110452037262051233137554668138477456850077398326127832448142996113676501978773782178434015693343561929875110877266945781653038187809583124518667602577205606613326403053052187211702449609953528484610927591945508609936115650701698574587478183218273304772308354030346857984530792151487471717326647097401053220430611919978224493662705602366622167353319891912758444403717112212412488958999043916970947632621015798558073215337987477876552878391587003989999424811964908876952940413946980846198463668667159593619311843680335160572195548214400589148010700486517039127036964222495911238079687761408321761827647443369280221277629827191816313793705184663183424014270631525632097366811862720920374194264309451033869106635239513237028695510939629914139476681314041819002235913233938332146527261275199830652742885847175572738547122663871710658255736388034461175887930864300937730025860386933024734047249104435937071929359864397550731289277610905957120686916134664805974319713046403789959518945399030631752657595130303673213279131341763204068312030254556100164135791300778552497577408193316758688980251208279445320575809443201567653444302611232354744646390359596738915031278290800716357715695644571417581659832624211506938958527232946968744220965771969191004299284037666557415081129132021385012386829214932632852088194804949209223045957470431322283832424479106646188411684000688537485685050106711550791312755091885613189367877286123920218790643788906080290728395966122916339827671358749474288978270893098655619068969209334524718789445721952291620961705586085493635371499103363771901494256666446421133266357210458487541979078753699761200617367455132417168952407585145272835922078997031297196751108561668096553314554270065360163419123578858074396876597942549833116994474557831766208923573609906387078593810613148305031757075038341812933405640755517466000159478267437429076703609616512025637461818814242923011162142623626346443845530282122950861468134661646423061163629341365132839285408208958437158787694532843619080516651813965384709493166842186841577889103391130972287299480410140614651042561578491146550496082158484475033108492665076223466972607446654450861777077455043000039925964291744537732922898418919135483420510010440460522828705094317858967975669923140744369626030074292680863787102661064772252969020936298845024688321225349750563676768838205773494483306026727499861352259316990677158919314087279111219037569087412545001145926111595885785545367402559766555843335112568345385183585277515950854584654786090987855179098573541863448714212375601027042973051486328681222410955352991516542736347128944955080518368816368495648025380068832386339313194784575414924399525603644756084593976157112969712481325440454080664612752212996115946040353292670384457787552490820161450358369720271383803962824096584753202700624032540308754599880385407585420339402574487537914903499500025967037765266061443727924751945091891374433979126803241440407426684017710425635554226666499772539125666851719985591137561469919851960294905630084785119806410890698561034515031482022610947216103093625991999999013798268310555345428137814459746731542780226608918971029549550124995175023627815156794939781595543411264332125942138684255705190859541169955737436411138037917730909575174770069877083422277194361382361655076374180033595599331863800843744410918140816432364619564412596756832275198333800197421653161095840388284429168899069106886517412106582713650832584102545691039525871073626045394331222481636786723753338711719728782960910062017752541106305543533918691302644477125500824744763151636891828071983545343457777035095222507054255507532302144917725613276981918774641201741227706150767937965149920427792094952239844571927888707515761918216904626489508616565537378383132720004009069847525480822035600387914409934799800620247787931323996943540410441558144064682310315570156541170650587466803059473431573097804311735967108114262675721391155380924231406240342904894461649050440031306454060803493560682932480851787473297875872546944960689063783484642337192379839554913498665611079709233886501666702393567862792605844535730627249510758857205286524594669628961523205896794488715024616685381063804710855260761183503712853895161892855111548290532114730210666099867994678422971732704023770148509616508628707671950328733709222176064979390734802940495992506151782006481089618438687830548242058869843506476014101475016696714618659298903300398018819687516652320287367729822010293108474119346557285298718318944594337185342555348398969862686620431966759742752625422602334173891953184809936504051987345568109438125960187949310605901409609822043933809966260451071701057425265665816158802295120584326106687923256178994051656284384145378127654197755128305574804786712546315316737191680823276058869550322081008375547119844860674101475508923581269695878772426729973766302744526561892426938099726234864746570802337076386900915846348057597826443763964518053835130849137899049930824148470257678808788180372164959616272002412554918598115039896402044177656380694780665273307684525543489592070714433715519428858616148905618646955610392975778613716179816963766503629023362063630051967446718020897007450712228311234115053115594735889784022096946280883479358618312645139934395785811081562677539922315276194881929988664659013758831386036851941378939979156055268429832744880389949792547928968184168315227380772706618125092563212268725794059887420804618466755854042335273869444459655116666982201886794221150512448587496083355575795193876744249315678519495391156456705432286688331801783535101567822181419772093489996423848617949265105305262706167888417222716195638340315549362063593437115351513969275719359144099236272675981119825171069421153842114292850878542625266807296632594697241837099485264425947383909352995639588571585888674900652187448382022902299102286317205756529059578939957736241813906387762041609897048811781111427288218805201654096221063508332141094298984717928038709991448923458474825336203497564468790165840195730617449321315672972521594502289759225364983957415841192755329617668417628635352267001594911463336351462422103816446297050607956568113062720419258947211184723933865658143471604745320468348803000989094876512395441928307087234965229836580193484631071622996687908154815528152022365029461128984925600716837888200454524814858621232430183301350096191507743727293088880607998532562105902762981854570546984544971431119141890327727308228968193098523209276250389113696381971979848562046272824055625397059811905852059317100007073114415424010168015715888931722779307589611084638948205657941015102930177412297927784937258684361340114726159010960816133622273013767534399345257287075856009141304580819687827951899306008540070305519649132038465160419011453292176429620750887448077859414133667064571601904143835265521798875495899453768818109961165308881196873869114366321833636829660766359383630441441561200089789720705518319449579673217525975047665593084237603683315427539898339863820125224374803868295319321207936165738367627219864668990811610048334767868611339436244998990194161098926871499858916095050275538550081109547355921522824273847471232087670695167628425474836967068185705883289776250888713294054153498182478125321176924938123941936665950286572357507888269924414369677209992204099523263799563743062605790039600847746537015267648422714280345853188152164076547762448647759681873314128361244895417853369166200690829526393175132845839712190483962764123600510334502570196204538661723702622116034565601798590282672308569855432729202656845320527881456680943326809589291239663415067804553196729285694856824989507616868791475592412045537613350756999353975641762495978074738801524605599474736657350194624935865656562082502290696592042418232381773696090523123573053274125266980302852102525883205239558895430661285506964407035238539677267285300176408372625156956701367850990076786210669760309063815264983103712745540797130879338765180479927342151129397637598305667293587347344551077434418129924455019836433704242777108447059508130502019951689753026437628857953021694106902110986761010568975030255316647328515462559551097418530908048064313250704090800942643042380992505251906883439462200085575573763734010862131759981233117486595620039258379275109681670194818133092697238690003726595698975895533576356254862870212202281760899146220554096903629054426438992462838875695221857816544647138125794380141388891628259362217708992265650238030889305531319416807413382294386801324856301491082949821822593752149862006085139120475422234079247896356164411465367384638255822403976872297074665633306842111988753768054759928190889625101669755942183905505486855978540443566717964282554186834319466899294420997905501194573824553392384970865616544723712629990566476152650027657303834051229178173097184437833678087871767635235747901755032058198937388198644631742679564877702325701694254119087444012358066000909989013865051551154624370121780138032775843552320157292788000703208869235239745873887306893250605582117899572607469257579313304317972102937257214919311873150050641902032239894973913738653959198632450470179549427932524519119544978274529818824565365261058106297680846256316692773834130791164851431207612737348076358507414201910049303875640019916432524823477688771824444359827956438304804238412441491456933106941989810428579159317739960116225089018347821881573540507820173783716955453947311786748476622701128994783481996859814936799765193910000789235672519194732239403215024891105906582230931196663661994416220701876028847784363182738892527101516893700934186314256559989680273108468206645572577218516296389449081081456313826850678013301583120762796847661302763659213056954103416113495222790481278536806331644594054026021519478766998843605697202193239582784164483335223043880414076248377116687491328396993272817852788384930593298710639426125006209457407569208663361562708852197601791698260406321998122715124168032411437706130087477465119475374599414400829205012024755711532368545283461509354796083918286619956309098388108132582381564584716747110986375256921916236329508180940576584709682341174381913959840931893794668075968359230146606257735151152161335703711072889499131196813467196115294810765502333537912293279830454678798521877197356404056128191511163182951436440457322355824179263769991650094321072274141832409652663990637631639528179531821996631911389370107200279356970761879182319604867206085008967281422311975823579805770385259477352371799279214606101883697294027375928694986260564910653833231996823545587803795952635367575070394022771530717974634537431599111682915428854670020476497885861266762403549618987496149761932930121805895143829375311878808359746997737292176772172204422976241923139205889886330559788571143924999942553757955082470376391472246990182213406639931509614715027052317894565598185286088385078855081340583851119679559714904846170508264447362944381925929594927558415460085548958856531245879365258801271926865530020927908252994357659952333028707950764986985059968296145142258973246490053679451729707462682866041053869883757561673135065322668543747733656454912529566166447397571455394088749796510380177818981784766628542279599370229889392377361734824386178445296947004321139634173460771048481771828735683216102541548650164623300330830382722289593619829929125119284742931654779863412681309725311020445620055918648386355983042667224997848995421278917944477008623376102250492303117039025224699121734165486430104423273251210749433805581875661478403868204771120798387907053126697311233886369551101262183836560251614852215741356844652741042292693209422909460693119023109128105223962402916233482683855846858404322956837838536690918905361284763353615902234529551018306715525046365159220451624748991679464081640133178785569705331098575984920093737728095016648057062746968736082694604788182518703897111524954413483599457253945118743812519931540981378071374104023235118614966597542942481017401076853988544865951831537204296590162727035529128212188434565836780827407263372672540568472426860989457908966266074871620849989248645406805904424433552176833532842200786169902867672266486199412774521918631302968479671696431653786736205536068583378518799185447418516828625146803076362770247472360509383217175389640223553832293400411053349869054325055010323186691538435153293049324308309786778296582462005502333531074607554701613714247569552922103395574687341488477634214883415795704301191313464478517113756706927620396250788123724221504557589414168059494261179043467676288371839120436601547029731224909164674516933505386552761195469138092954880000095056098118960192128154192139223370455766555291092018871985193167286847187151647104789085359306716318939227623072527266170948935474383492648806921590395993828087382092238470457319977613988293138255931323076083611967986189083985946751307278369396674518809163319322510370524470311723418419412995247505338557260304484406575568189209477118518478469000751591916839131696564437412917012279187512791772316575067784150107993837678623648994953620642265278149691363848396622964850569553894622082275220675457862478678361476790134635479650698599995388430924958187935609832182644941023368000268914372001961041781412820916428063898887188943374662596906750830066133321326446449775732011805293484248598212055600951278032680162379606386420496285315973828674640329829728911243573875535729002512199074557449296228582343516444754092959614962249086506390177182431270193944600189777245088908974130478101802247874471104406617899397598017741165569851659835305008592883083037074665390411138670609624582791660985087980554959396108144129183940825529421362127201076907470923739283427367214274648796805072408951772071733087405826358165734422734102139823761782853512359802669912374905670461061547430445828174474973341854871048304271404149040019976592178342233911134462905230397816981222628384470380957523974308894653845653413445127485779879012441998721001692499678078912932918485782196688485213919287529516373730554183270707522834952691843435215399520550586156687527472498448581708868021498448968541372254292774461619731964146544688517035015207211164995751350919029642562819066029407472781597457740385173943765197069130822665223651778205491119498866069289769501946042422672526782144746512850631268636795003677146861938152031827146586191670488541819017087107173993854402824361718492526968590809742634828600619340117972532194912254011130069769398612800322811805772519661238746783813429939205316531240871463800915522445186478631043059253265594684490624923257303068884557320295433067403377523372758413635590165582603597433292536345900854776168144256195405013182917691020726772780746694151070756101067629758593476723836028761521434181160968042751205969557883760490804438512795994099921883847852032219873657212179265443669956513036890124895576731076123666888520454964122389509380457356681166221646022671122950243679862001148285889727971279950273961221828621566313236805025212308541984095776714300469057663271088348502338743791875787954864407972897930819290462732666764344342979729356700207207673826233002229219556319071072356454034826118110756510737671632607385244218361002352868418022678685152502830039792241110894924799328368453604727661020469626353812284510526178746490224837333092266278838494386936520350533596069535414041760735855683437738154796279268833146888168004137191443151257860851527386310271300389002357535118815344982502511491284434128997600367607021104177698522017748603616354779223993238501394798346462107277848210313111613255795407233978848602421137448971526967109078277205394043962536876261859345222801169128323011018041964313687740710617849499305760382346012111113105800499561818095574436736926367255584364320718423736118805499890294752275399168657657820652073614284214165182628457085157187217756428805873076486699567325624275339439295837255354152754370327714164434056730667591294523419941947986195171519221411379056189555821108942484665546359237914793262174179105996558614028019212799122965630262215156395414234215123825043356383461669604401407468784727509307555420049906043435219406791343098295008520550951200529506156472988491994082295306039306594364465045827785957609622370652571856481063157603252385295101212048612455899106687626912168797534188699943271024970231593709687775919383754953025108418506667476746760321393461961782742841830755534706615372164583522282636109749557851923176696472270138926670790860250849630061445127350721779042492816843496376344528359555009785978467464628909106383209442835761306569913828176515240582250404565458650937547096525322502637332023497526760557847643232796165378241196744843645075133134762046133513379984926509717990764680694777506207224059621735549584500497717562120592351244037588258390100961592761413247412009736193748328206329222202378535225346521326506803473356652211140650919820016135933899770094992936212326681160211640450837764032657004957696334356745530328197081704003754962206142040255296467357392037993814077785983875242543084448429641912227484938463393761712024085457187197840588501748487874952171287283036259226230087525841605184215887363626141562168884908544779628730239012845659078864129288226380959050559490142125168921904083789539076665386797804452984381321611477929336929791480705123079282513567814594067584636131146102556069987608961067031681254258103705982956160868084959990388238214419331833071717072403774902975652889881490512235255952861592392859160785725880284720540124899117178796126458587654940180329302158197632663815653822581609497158989367474310926533549985820696722403524928823049786552239825622738152890095154573668004192323735851625695415449049733424739771685421018389424056069806935219886065317565989355452770908073878992758498153334924669034077029119713791013490692198410729953897183103896313267381114398958529344533793746728098069694994335793706515787318287718556595393033527134210336538832974439636396707187212305523816945596278224301889691441358286539944692125013551535720383894779957646344012578987049355386879643755021853228389462977965936781687893807908253725121470177119590172968861119402553651780575292114433983681831469226713046926591257552723739779032746797184561053400835081676284865167031374263838797286462575806955821370664536153116170603955855323685427540987233763410295193180714356878139523136657054510641765044283237242949961827896221577009988768980065568603312093396565191611187025078041545401959526121763970550828786498251808326052771986883357823700837576381431791421545511578436970405555150936797516715473959791803019793762346176956646173962073589415394900986830158326119612893822128740053139594954977644226024608431544785671791891937934538317664822971527973544173694821538661506662242815420495764111797509433060653517775146054073427063201216455018636015431146531327509572631090789516476325552570467824503162851272609031527841364708252508689758612886487709649283879137135703286103588733873651840650555190165146732371634449947810249973858995742967312340322743578539581552252856340757382894942317561740511920373724118596441885749902975263295061110597573175734108158896733577650408510695022291718864053642727851154040606914882511532566740061344398537015307680116486064147196169450485338868694171235344348560732753343939144908207359646657177818856078791036028559376801650521088881436970223023042427179968395263349019599883820788562765931465687353180646403893887197628558399915018830338659413083933526685739367469730830852242059815417745728469045208607963299385436459284686381152944024775504690233480923358581733664872476275434231963101596997596914791394389212443049388552963340570222185463633335290534501140906734043888370438605912589826855502958311732106418464924279765153297908875818936970441911906695806806960439574796702011637948002030203129157964733890524028793859715185805477600230198839038202839361716470112093529794041938275243996960060331921407400070539724941214281241525544762850521782679550276209291015954110861505343833856453440212310147781109009464056107974767358441957482677795716415411508812112597910274462294349442013665844776135195348875190020557070378164570824131802911559185788062393458992823061079195303560159893971242446279973351992173890732806513298568742071907661319978833044100866792018379389598654604125137802571831058708327730665018395343747471475919001553245932659608181463196327304713065130354858052764650182057512588046561685970873869314345571726052712126588633216251115676965009839730120202738828869600529284441002629708063226006704522856308575377056863968887352056925795117950241937437868000126515542810136277939199592218489129824062462341333421245372319609414026081001962885486583862778302806178205236600698387534930063519971736918016721976411207004632615377024458499002452175200068610985502723962070563198870308523886581401298368893903971154940813200380101297464620876806242047771308334619431588680468934750851226559078099806377843029744982671637293224838298724641576648918973367515236872775136371884994198120292091625383614973538925940893263076118159588830270053169351556790262021576191417205683435085219333189297893471699269520785533442269332807140749759275545006806771777220712934624383204512685576563462525649682456005656748010472931173027611145307407613193625161058070030659263181785311283712332507081959237947513753814314879375946941247178357238292630587733947872417319101565173829003570891375399828743667448993693992388931750983222727714272395924410411907939059662791950229730187163444930048482182547901985631261351306794267520822468580509333066080691760504821989945663781348647635100505188712061816268316318228902203513697316850700070131357180399284283435766859895246641651859518438316965572144339678394419529323673211808986976875254525935458650662115676149415235009122862537246730130122391254998510134548018425326615194341657820854528288997278246687527569381832259939406585668954020068576470626764302039039565459224866962835684562886769499646044317016558846606799583003951742619088368629702200047168968919839219555047739615926154940130946020532282813540670127012344834602835877261960851952641449190362138749387424054506392354991219661708906138357154871246156103138961589293946947119858511345454135132366768459237907181243144187918224023100613465980849581493253615443141854662796355192919895965467585665458947017698871517432171444379586776096353214228689736982269396776331910048536350784765708406594978029025875925881455222733737550343127758985873352658579682432029049926196743791205391768723807808492524986129964566187811265334858366372866858036072450207529773543273904884750856226882216744658479137842543949225947986137404324977648633863137794998819994244952427537954404401154347316518344590214677198754519464774588527780167125815984947792000272347274750013609420269780828917320546297646605421271603874573024172947415973067273684655151453451397758774249877136723590230375324379149117194073282130510749903352928332427635726926244627760342573069934635679655451350026078323000455892490664538519317368922506220451461197559842224948743911920887095147077933118162434993671000454526988324274303957338110744854497558115488403623697241505870568992766402331510512943216372685763216273225613599161216901564344354573390263004689108721825960837011817416017374723069170838147990035663238373284918056814966884946329123069678428301538050013686377544133380850480546766080603124328317413800531772765486326398607208857585047435414110193180022197383440694082287978231416377844631643815742856524007666346814636233714850707526379532026450428223567193041510190051997997288176376924805647984486002559606919816011153712985642842662770357925814855751133461301441031652530473801854791788882995615725438034340432304139545191166577489348866131778826081970625918138928466812988272854834405267669676314819716889321163594983919006672247151856492887830909398217175469758564272965615579958733881117592954083039898087085434913582131119901189459301829661636757244530687215674870989220779974357864278502153398594553712337296275059833211858229956892963568607762828336020391375730679450074328535874257386489220504162741540430340009971794377154935380590255148642500992898796801088257722648059253840119245994519053208381836765003472317397428667860337490134022393250311651122331012941430272077061326073202114730340604296580500565734085899694439617059194167212557940951658553147208190140943176704213232326888275403086463204445211388735810743361509168090461501872523149633789913944687083867086455980088174830891429403003124750896925191021121684423984461326952745523225744056441268684153129900197149215672058249055398410879495003626223825624393109043277183859584829570267998531399386001372604224667396563322697924572210132564105869905172873129605819772129679788699001290839951261170514470546140279471707670547017804089892171603537930606613737583665242183733780433199610239193395804166968359826308316923004648368784713636611271014752377138026346563084562956237073969904365754789784164182963483372937917934347866469449983981052697825015348962294234687358999843632972854126728821277819428047249734131023926782339619969772473395547190999693511585368796640496307994961635173894362309312117868615616667725327761461347094968974629753040460998058737201457436375811876077605966153541649670672037189032093096765504314722872769177935491492522413515318911605524735067249712199553079499144103496539797344583011286537753886467198102384524222740887240366410274371638482582564810129522115347701394596904550793957405489948210055397888743346033274724954695632252836133635052880525903820818419155783531426340495323468512511745129244497572653160941947730155490550515766362537367245303254679988858361133151631114485543984541685460292010465304198838053839014788683787191520046867513961098988844223696386615830166807415836688584997016358423624719754078442921488723327780644717892334996997488147605966993896398090680278416085737801786224696075946836091807637343652987868085571613854059573887953373934851285339665906195109127981068311877289403098553468651036569808419319007279924436204440128469504075239227874799947140035023064476740469489781045527543534805566047263776780278508362965638215718072449106069061976856485785009173530724639276927451151242121464084748622414289100474925793131508953219809107086437508167255428334142101606980636634194342713616340019255426664864427883442791189660532476417789284465359344306157481134665233396656325792512378430229283683826258422749998917900887742206781610911867673120023215904111504699450455196182039784559511943600853632397262582510101332056766333018479584625735823480702378541961176875030071887120468880783881076191507200810052545461884070644528664626637814252513701096071579327702405511047000580818127601871964606555034372883062589722089222631862469451928601255614387615640223115302944244532748459388286797913323631941554183128897557776183272399832617674394768948084169060415430757059588255498673743294172372547067042128711795761571437296013503150623816532703748890811469628655557875893854480121612940678902016916443371264129950561909473252863502133142176523724163627954927603044673418863242553020822326167923884388093779342835083830254186270846109293936943298741299781661427131902629152649151125422895344640157708097609266794549963876620451695513450951279976825880640046292326939582344143685597442608391971019088591823916509104971039603258508110724579351055295217660652634259480489139838187943403247613207939217876533337028006338219367518956265587201780397000217824560404326710081967835749097388131487183696408899290908498445563657270550057622998335408765187840988554615045986048206365613020450750124236762185364666394457496558355314899684268759114261024554110384324627699443832882136677263513335274763589697657519747642413105615854046904765833493066617428357849693144514783156095486020537103819466145668341984303144431021166010320572496043553395451702634208157776746177537041919733985433264125459242892702316424397650504724862835714580842292892334918308525501204685511744493266317673752010356427642726150331221659549856114292899369209638658988733688930141201182841008614980107717610370407837152123743487823831017453299486967753264697079079436512821488408661099615864790462477805577538383081382726470075467229541106848816290635619914617248975297399844263060162060945484464410371422319327231148935080028344962534130129105883148449256524048620965738785211369816577755204204265671637958038384287480081508258239409198980194110581630825484206983162178731792441668303836934573357375538766571311125583964583063421367244920027669191749931590830115188947227490709767290074385746104176174688389970947093785163913545329698012708440293675919977026948980377042347361979043924260399463437212202592536727922608483059175462296221301248559571408944421347973283743146950381329548166886593824801253726572335188081552141964242608414553933657712623626471022996548403202920310188622280979483557755832983256866665280804147782342816507224981044728132368246749259821703137939428881847810953390528839668954904323141948555353318328717254413579349107124721715507109096428404605421446188250546492438205199435819936338023473683022079390351158587289835519076861172935754352470342103522610151225703285419795451779685991367413414401499170213042627629873569515611493483970720030484972919078120530179329180486710947671145249259123175452979292142011567909306875737051292418247561871085334925462997135909826432314497453253541139531387471931030244017692089105805061661534169107963545232047335279708920842223239734435132420014846326698086505810082582882692188241107074159301080225292650894418529777369738557086159128260856351372629668617276722925120778574509263254930053781668566708831286260792676146212845236623976601232665529976053691381657663736045143900215442001959761886350869824622924280221037038158792982423772630377671935929375920707197734965316323751171801773124548002402734813922882053296288538106379683087475752575058722924190366964348749531151410020322185758438066815389042118580152528653606210841831736916052299360863249936574353884972996100974591294295171127535813815764336218982474319478437705534428399989854933247627755454042483353411052072512649927963294664459541826408722056835803729457085435303954924810311763895952801559058384380287300975525405012546315444385454273961034051233486993027980434583997790892652542134130814439138017162848759356720563938545552061613336803773205345552728864244405869246590498154118220458033701831449708466861427480147574709451757487119784135615593689932656821443858780466163525410580026811457557406135909135137578528865466371218410148892589704323895329507699493932778797370349548890594106003771404818968310965063226554957869497315538221288048847437598789335922753998117733032440541916605559523976576301235775690706155337399152560908077389184900695516298314887792509171010887082159101822044750119911902079117942385567294129145224011679281748318274646508165158597978291412628536276966973622704943391634354603401661519562955485965616439604335961914624668530262595496422709563547152358403495099533193510369186387343937718613469279660465306734385413206918269606960390928850666682122939788203413667012836601553248602136373602199477536862340179784691069472177318083085950027162307212505495637940058472807168620524127775927430526071475608663491507888897254124917015076342768105753058570845373652620831533976103940726432603717385831026234658228391748563085763972869027634852358955682106860157088549678607073885678664034377174709215811354332087669317082720983479906310138788525946211546024145212833157020275623468190785356813987746340997020887383329602628184722127314468554086071187483647922946170477965498991368896386772742867028643980278911093877633072761046309328450999036231797126070496938925836669591031157471179958555295269706555242644752356903726067119618999856301135943697283939987664133012582696433546448462933907761145945319516790267610084232708553119172175629734617914282566101990526924821181315887611904333752406233378953745560888515329115232605870376189420870856524527622391480616200845010618703120572559057241259235146996621250606801843463400388494222985672442880712229278647763111812837400591876558647971081180390037616253997992270791332701404685324734681382471728859075375702673376900958968980632450869842870349004364491054879444577272757436907696451921849289719297332935507896946431369495958706070445619553340526009016847686716629676995640392045490171485151084589031009617093526815772635591196982091617267928875383285163718879373357196096116951097084683265334207313063136222491054862505954197694914246456674359127501762404437725029449520381789345119748362264297494209888525622667647867129759254217104377265195465544322050120679603109404954237833192251800282968963819837695656574725347880691372102919475430563346844586002241764257896484832381875930455679614265498261445302038450342572868972620473739122508765055109598059542653624738841758160850542519518913958161822146362694032269185029440613041195739041733088571689912112690145138083499151074366503880475594819884444991931967054520668271599448342796069679811800146581018589757873819464264243446901938375291461363253529775034757778346334580537515186130776262169439263535938193090524980109621306302874134047760377299460425810519090569140926334770031939285068629474688768220902180405746249768804476788427280045541394503246400988328010073340488239922612119698976950561374296365475644888783466580179384209553998610251938050310832535836781744401515168436492483007074405732635909792355484618856803972678949522200864653826383293789985650495863786411119416685797404526115093230721702069434216306916487497832000410149680783926313705982901207510891082030151947194418374389259786016364696236313128708616750797038780961750571720904735020916784394331449260382333281856283631207847056233907568267396151117630913999049907564972327238276435418694689913838204131417005919603113761283498214352995964218264582525137699827318002625326910295767445037418905533661113559307621675216380374754039331250736700767310947110454106339320182672258181484363170674830223580998360888914324812865045935082971792936323947798413531493295799051222687612357665639989119354827154783897343781670065507242459579091762135645349969872054670976639329486313316129061908976428469512718879891597002139032856876750600192177533798584621685050061018364856547876138212924946779211717670405631222012151379505344820044092254219274297878516050718701524088886202922170252562155847146385661478016572476847188140373231991428617910792100122731570921411472587093069236586704503754270308275043043308997404863817201879105975729097548298603625646877164604636580737175230058803981559119473773735488320819927244458696243615837076261751231826842283921073310649164692443590284772513453519028801661594067903824705723862739486429253452062534231220894955877510865936922040831212845560240872972624503429674653090167298648281675287673102314120061681453166582743630526507660067400985438024940097993332537038495807830787395898511854817967069568966994221494450587291261480360452335048132375838827327021035930269096486401816975593920270030972131661131059659862162161021950825946657067535844968718960011130728075951542178784794993780075125908443287126426585826795098267672853439830023060780860516597417074845119039258342149644646062134182555593739222758616081920687673083031518069645694643525828728586811090804231897668414933644764303894411134095389633815189236817647523467740323498279269601556493237593895925923747258927084349423770077472293628165723207229001856268563339864213732816246737797670554942048130794607566803185099360835024451604194658375969568022365417639142456322936585554071804056225532116553533480921497017771160131818260171537396354088748597765874129873515466302273202654634593747290864109641708924959051947345334273603429754885085230947524690450901492284797558876036215877814721190410087810282206566310894400631542181453462107263244074103844173273113371842588154709133054319093771194402916970457805460933800635822334242538305167461479937876975113392634537943437714710442426118406296341144870483396740325289554641646562575282761720349364437639594804910905836094572679903009872286167710578164742052053592274872428178180977404932635829904731226933534698985434775528432149413824277653248007586074194940172261959417920317639621612355434492682097957884007327682284969891138569889239923466932373858512263948874126156018676985559585218768306797327800073569277233576615649231183853489786365183639279901004141286717415831016361916160135320344215439046391000001794987391818773872099995124331742835843731789967988052948681385544462997024816916046428455496511840779242913819312371298588971616823753118737890066981502062418444392914229032204012697425553048222648407150051184187312875594822525470897332209546011523942405240525728672686123563134100100697515438015283792593857034376845675794594879385510698321853333370781557921583307269016481853905197868192372994342778095817142263332290285121507849968303695796359470781034713526958369537192684021274790263980508670851071723739492626519049969374952983025394950970740095101856957928684276826438057964524916648051554662852807038566320465879945783120742295574398863413682899256895544631298783099205848022611223982168206354051521713126311166143935973826101886257678990399355512242250581327616957711888164234203129075862488088657269893460434424092220446472541862981879951901498822614776963082230551373882764089708971548072528235786312061281120865692021781209785279582725195721388292670983516478303956868893847431636168086710121155014447183217908532597405781147156745274348565560274141675403694949762445689712384120506457237269718730015332454983510155050602693109609136771826395483649525179448694419446986281867508463777114960709405609356006637686140449571301789064571706636357994623394597708513364616624585201711061838508225532193775664851823856925917011742198545414782042407541840617171203289941832676622397443237397626703241054841039600542672438099761226555236666984854841793871617317048981888195574583415574695388141841248331413972943147084503693879609526511482666381408199420613391342214681559350525602912553370833915197725696466476145012017647010539430483854752335016645243823801350023683429942250288845971997897370545469177321884479650946783200278032465341295604564260549813354841994376087893439411677212683198243440090003002129217339195820143589314115989869015669262477495091686356845971851851595296602285329079142701781366601975557633542357646855382710296406156997696064108334571780857600206025516505285118967946983046107962875910153235187912228049398820782094393560619556241200499252127307122792438980743851490730062664447891722946518536045499519869854941469633826438236430394976226483556209810244026908297368725250473523876304880260696221118341949591164928391635004929702549894896965507791071070543594416037733474920608652054699267612563790497105646306083776894361079181381785747564342985234505797633746510596329313707626235823119795005665491123350784547672597314853773034168730926957390171347979673358187197729486083009364115129360564053928163827765909993390147333801331039844490960114577411872306551677457959119612893250924240463510152197592816275886322941372963899934476480346209932445076305792573487933214553360372563419059787350153453672613860676253168813822725534327988142546239969671081257357450038762429790300077260270946765152208946769607431463014673163813859467389459013133372459545404567065386713492322128807260517960808083304645557407973451466483632708413358441081168992379649938472994599705443711987101653035353721837803920434270150676768694490045905808072283568991524746575169890293812144827059396021316173693897551712487196508126235323862996151151827100906919156787096422020551462446391490827924246353418390582398323420825243267478765687990415820779818160132876907685899738719057580092311898223971125785162449868620188142672485037188663035325339603994193184083700240083505440663476552498521581937151481610749956658332804582255221077768473259388297298257363858509642187974497002931516351225989777687327878310350427541970357414558293875182269336238174807728362463193255990671671077840976460430128315897400930570281059882086748833230463356830387360629710782980613263723671408654989365903854287069925258420013095310564551270789516868396076502566404856598538878497306201205602135277106387367346307144486296959380699125269248737912260926882148504640392996155545367078536021665345626797276708489635549290485385276607569774033518948196484739619243218263808733457029190130021646546174904155532730859294242466024729786394581992738354313778219066073089181637847477762916104886347827494377714504235347636463692645865454041461016409318183864724424022676756296615273571790561078572285587313406296825683740468415926703741529159937882177119472823430378476036284418533579804416287840988127096661774705050048594611352042888487119353807723521996951681021631827041041347988942146144761124501640282551393798808480206275276816394363038773461412206603700813223606698411285914868869785119477200032395319990615653857899137891489617447108203154899823341320611497706452991004993507462759736755825082085664218960540156132214828003176698252830255082424956721969492441432547820956975734161156261630261433802228590029252169339210419243277447432196696683484955005975838034073432290542273563010575408668126046426133774872664862361167315197245125618377448984325365233898922322656527423757641792055282450544978901911543068120156189523756561961773167886577233903023612259785564472128707113588973601203128845327056951110260710712554948663835469827871784315264093495811246985404897903131804076210811180322179866525746363239808896411324877896337566882881520947705869807712189654025320470095487746301497197755239124795845162764890751189459478266977026925516078438981548776218798271617032137446039924562613183946233868877411935902439816408515871189577041197918890627650536064670523572004336285512162778643815503258105714714458140994094451059191856457192897928672434880177811813622410679098775769937771749260981509664915995562056363344320504640587939827228040988844185767587623820599630353975173371486032599001649765843844529731555765404568020637955652950639802108378838961182643844017202918530612200440321795528176273762095587810033461320094946553318515189306345646867455056904761150199328236490418688453994408098407679339599394263341820219738943974919515584596271913890159666966400149714816924994769436386273296899063935479465013559348052398567597175518119384034086845415732370465015358226928402424153015976367746850315742102294960011006446813066956901307037715840039407355632394532368277986400594675800822399933130887647840025506508938289611787390478106859305530906636894960217126512779885822870093170897058251680141920290935434556424233623281565210286911006395739229256040976759427027127502041503665854594854951090924283425623866486286435267952328232850116127571194220603725808695715207142490395021099946974671870324618198024555360287297024767197241243870356345453447623900335920955367777537253464660919547566093423133701920005609232520563854236351055257555222349441833104337668817713712178425323223193825677748478473584913731689094575432375644911365431273787880581116625954543505191902881749518774463625356476249992406024054585303839076994265441703388896317801337863717199598274454681723265039925874523702569132454710376529861578532958515549102943365835640961896609595658528690575191189791393362102320752704493878909986528199669520426456305866181553293044663898149772453833305537023981517732780894926550006624525525213628045441845667367275257917738705031464638130057700230628694707756260587285383258512436403492065744800868766218042707941551212476136184799230578169871325835316851119096091526143274325381277506503917508708939753758243014131636593543404153980387993548205578808120912548045928188385669752356999451461582952408097781837700654993960057416347180724411448134855836177492796175134794913828738272264424246350063347967747557956845379836895007618692309065139747160209602582647355569992841599004179731756276499870093568850157047852847479504816030541875091040258304993760913435984121113631163469517635675883440020845089803860089069475511578504023516520726286804096290525912387930374425777765251230952262697988534463076321871321201552563244413250551317618933425328063301028057268570298579061314495910414138663113530793343235166988096482517203416301028362121839318774794718127243366326636091038386641208266003791235810201653485337848832197615887671746189499157365746096337852025213813891591149573302504451126704340816589434028957058261966723087211756507636121385277805671150417177144570360899265350551418238742138300483549039696970742225086629996333093823841640087588839045996412657165268291994551916582491054726045388872813359039444267986101247313516145093386351873096885096569988847670658802822149359551710957478270560724251792196009454055473347087828684945838165714686275212874264639710934168740854271624244354332290796477798264754106172735989800074221053177535201536109266673759127112797782340707180354358251113282759663486928012591120604783911961440414167877534569973695527078471494578409365640771342710784631730626624931450703039519752174871327673112614416604865022407688046260013394551369751448218247440335947030765228052373382565363038581683610456795660804741658544016346269388370687551803317827836711510751411507804839873746360928030082243874133946301463969532943096851376396707956595210484523889222464823470283703797423780621455414081975997348053950083875544196481486585387436121658932689112141677168201620206735051011208238413682563302660240283128991772271792332800702580557495049072762147994717542248979586120286842484370616272636360793418352422601943230582064371561081464915558372484405744524392631174099297367974970111278263877807117087126582541057895168275743850649325653754128191300020899703832731502717597831240609390409500768165247002185574498278829378899401110990369155472061121397062853701265475006927865342338687354883997557814941905965943812421239434575696805685760073626515639250057739084087974704646611601761961399021815850038383331398247833973081169175670573853682305486154331100315652915798223795250704769888781396622420859524035124940355587846257232197107275514941130247944148015996094992689292413520721276240967718447685300828951420621941954387968430608892110484911714703944587846200424628676638619400603725892307520215342978377919380876955831665731717604695766361973410724484122687829819419253674462458628592764264332595246946640177264119461970019372301676767863982503422322650194587577240348853352928389868874372393596641396891184032994216729349550394440080218652995068322280233429244855741571547218744522898564167039724007246749359337114614641015785708563987447511489424029734210785984922261256384025155178024940515317629741552961907886242315669221119816767323342637360211340563948773125702346093504314840275333869052543641692333826025386133650434659439307053507406844653288696972423489758574938813003494743028114702754913294415567554646831695647284303639546640955329307605399115389238612420732675515373542381267248910925933361885564831421043585328393251708654364449915839902698752262210539404490029846810497924072163094892900101386431907520859057941360318976337830042034186669459870614862505120006276952939634138309336843178560193492085884846449716521988174886605602151361649643664160162763722320933948297600956147307929038280794662070647983714792583330951987968583893653163253787907611584252066275535598207686632727942062394157634706090478937102903286871069742894222419599736662374085108786991450507505361319616150569300655727380397613253800201994147264792008715763023904688298957971674159368761070797551787356938407915924447164816375110196624355841183422304062339033802961792690088984607310383480023507651232794977814465466108767737482248677038239746522985819990421389641300364885805152995364974435502861180761136609698781211635366006164163343146963584123770720902747747308974973499202432287942368035628111446182913803821894120320863307252775518276713522169213795645380310151897252374403731817471769671670578200561915210925884656485841412140445288766069239818772404172074629548780005352086744706339204548116563211695069412216644793025615920186972017040785253044967199116564961192570006804619556663472324663027062272211372431335916645719854603069438535246025947916406357090999102723973105599908968282046508663780128667004900821957423620539846362896239538198222045451837198484210224726974274391057984481907107737176648902517683563546989168204269942812356287010407845470204223968409820856437906515130141484662910976717929419748416188296314564020877453069413596612641510770482000039918697322758539642073993849456916312568837688931051327144523206445408491065486810459239816549573247776028479368122596563505636921019645481285582736839715567375055886526302353772918686348026400533564364422877402317923283471402021957320121478481474171460074169569383717889676542085493996492352925625518408603159824302385956543950341386839750363990845877596055451199864720263445915591526333551932917188397566117609019281710277622190842001938356820123072649336530624335966938461963868788713457343090171209695574907462023292547743583640513173813987672745698504340639146746849713516161535563461599404656985074677121424148557436780839703837112174506951199879916984167625668330408906199665198276091453005880911949418840970448039898588006648363549460233373066092672744260994198936168694687067783906616453312580936872831720023745102720160747415100290423679067837081158055079926694748040266173255972619986825072614618110275241569837593852300740515177242841565268388560793339307962497722834521352142207261949480096406628223961897982314190992473058809314284710265481382411273489244250214501995361534224697586820983350988655905721120482179807959739634823597470922888428519559354669502562667533356792705445673333166698778268416887818822797741480698100194721953050813225169309711179052065032935553129061476496370160875877592117583156091827803542562697277844398924077866200029823708479651643724553333296584132957998802299395032814107421661979336803014931516035231878545338106114825546015177059598119258679269823202912603563511917854577469050665210429737599681188895777100941906905407261662879017895528746371498421296500648548283505777974573801395936214269631403405944952515237111199409623564584903186395975830745884743082323437149896508279207529349270812703136704892819855146293004652614269893353331148291637368817801483152166225769266210408403582711539781562724884370314845176023987961709898835525580842760408196850244528416185033583474812145488436856757238061054897598892223611951603517842580942610807772997780229829226558008997889346787857806786479195457056511889015718672224644439505422403327086692871599916014298281816259033374839571682508706867061192855279282631232077460622577140463182502246105335441953380781222422267240336070881350194141821909613051014815181625364092534899506257582135505511664612055773612847183189727663529732424588535745488787718724664041063858428782411940811587297798117686061088246261511080431525205818761386429613611535362037526991580079244363484094443208227021839344664530208197857004042137906905558553782127780573674962780310121541009914303988824379224892478231211936447335153039932094973518107298580259620151196072902184420765299568326509776191483155317926576588432900210787946776056376230675047036494911113363275605809877676294700218028651371102627958275856932118481066873269593310933428401746715724576752055927564958286918771834167794861927215715700620210533590012438380699929243932871139044630322264086572167914792731077905213250392465553617919372956298078297965586795040451963640379391248047644931511292010288615881218707560594230219254808856660318269175459522481309056970106148926507100806602094389321343242750094900119150708957226590664489885561362864999827768897493558187934642906648350067159953187765279613999887829655310494955074185382968163130035336661277874121419798062325325851058656208663518623781775656067052856781057247054984331831326338624258860615113833822464917600788509489268671493128905882489288189106156958068560300923854967440501069174338509737207409857920445717062050262078181292239258031980373694788022349965763298310209387724801324305029002963447532309732722821468209092736193618861399970331515200030983509241097051918104630427151725551889903442167137611895393073579142410355787086645790702534545429744865346764586865570846601609853813063686597512612778673177665131563111356920861085419481376352414123581608572431969744020145305467236132124195676965877557636368252708859012351237134270575363000877933233805781441620766913918153443934577186568093631628922078995941152055657308819175846623502699323558959255539021141004501487462769444353949807496872712715429203412923486471417746734632939915065272041939247612618169546557460647886049646437061849143536266354331866304844929694248088642913031105443672696456520980232513824267014520259315795622308400250814243395788529346338149850473516463485955835656547614058881154962024871773433704425318980740893898444501417607728888513209765437569613384686153365588643699037869693093926961526227365168569963365705653397266731923352166576188251437249383097951529403248548165979255705543367163908629353413737361404955648783604093472499839592507871458382434705852248914211456980858709849123377973201453339608376863094575487812651314355873336324308117020029289546116244378750652455066282932487072287217053850338255750796999857470812727248195556814439688553962918654072730105439205766892458061855406443110533921334208247456293116546352587955704376739895176901910050494544223322622107519673400824808820944411654231904322194263453805546826189772837032576013724355792008337178811537571027838253217006676834565732774164936805501314546639182012916493504770563350319708504887311117860972383343992878562349622650399108416331229562512700505921628439900027125679438548753527314806383338724272676919677048843908234284189202748707587795144354915954096010359821810861512016270340487916858577886163971118149146708471214469541054677012515270298641940863090414955602702816666390865915581468150616136309501696212605780173827574307559546146163589044061915484370748329309472438822350198807106705354754487748469197008933530067476011496980944258442878385772774914028449189468889655230204138938713012629056992515849627440611702511722430203216732735231668275623408604324055019240055872810040707968376733551833163952202728437140227530037422118125721336022264416473607023721370107287110979470427395462305984318020874137270118068543563239367070629917967170058065091691004576182017857584578884704941080165792778850990910134109654858430546519767870292304500681862191331445030395478736505577606615901476180261589275905840883920527936311167668095060398493873238263095703779507632414005779150938144947985324782271002478863124121184857308426634119408344965740592188029221823664747735702333032918613352569122476060072792413537443981128038956665031082730167932589250828675331218624395342390418994575882517485915572001715071199215925319077191971678244133480539520654484132119737592034779021853699185769932109421206357756494870016462551754359792305521219245551364645343757555706050866103385261903354837596007649610293042655937137567833199864903250853281047734562682167766917201982739309942987085830553255130462281005153005092642057369053480199412329421650739077733978012040496584806478920511247459162722028605907684736947327520434715119316994568607459530465518956480856592602322192152997535766351757958372921973354215954317743905860273873453274105353545767017247320287865739801273793364439393118239903689763047579562988762609085583375178152719729598827220280640469995963274406011902015735478511864813995405381354735686373341598363846462322083963366689896820221758878929348157619568231449567134715806185957199042115948781676287253967869455772958448039038105808676567128548945799851499174749833436000848343251702314089259541801309866022121169527167432432508418034812271137425147320238584937602497209943596839839833336278043159816173441729250745906025351495700668265244911879788962065654534379677293349567780790094587209795463842105458342626364465495632317128504826208493795458982533443892596918919490935299309878412565085230942126364026321209001362717301937447556791075433165843187403593515808557302622824091457226756204889566227584834255068291986451142164236436515786595707912405711757812412789044337925758361461177146144688464375383554145546843685849985177234424673719944238924027216858161542381002919279261245649059453288033278627674391832932306827806697710739091480586197040002559063191588290729236132847300812182542880148756009571564421123723300665215384796379777322286133472458757108443910789460152416875050982347027526349983694971963536945667220978285491993475849734953789657557843902525086135365931269517622366895197814466433149975814994006422454212960186363751140558262175387716039866000139410058607988829025985751158984271427855454894615130462484398283270926279696516732740748578443307569085822200342686147265163950718387551689154124999994783331349946354422095780243681649445063354221308926279558748989165215923086509326961052334393409228547016032318639031750142365949437056734472623178994400140693067351127168213019226630665711142970035375210467049845840413826124324743987789108330670787571856199903558645840978749442532827495732854514367604595257477957375762639664175715477344625572612053751041641895306878844864727611888633738117800381884714909542888362215658191381744084427812316605015274008109595598490397537813262109047632714934570097875791266309914593653258143622698667771244491346312912823200738890312840700977423439512446279854858616399070870869143398058310563065587177224183298429709587199989771186424285264365132273358989418414636082979891871438238166291492956524083590238543412225095836649738689257244717716367964915602497290009706561177546029283655105972324595994011184061811216348463840892501795334212673228203664721940281037452174935133852488985692311787441948316893771507587264255061388201273023813957250028803606171587511791358721513108139571250288569066782582222626229730955854944819014379498822674988491049076605435536058462099137193937127942325535891196578306081922057872576277088066286462055478114214160566864992032662132343228249766267825679254509441646860324113263395138577435130561162285801105551115755867497452593683214707465758510948166588681386361481855213059644629565396898272915101680324929122830537211095982697973786770692564286189830389284913290342569051861374589200256241154721943830896683340298827098600369946923379462464274560493028818069220342187299711047770121506573103468042411944178989496694147670384328140188950228756694769957666437435242620702835871071172694366480273165162106150475590361581939800209865322887950420511648374998855774685342025565071717772355167025953382140908810395557860498235613335024755451407090579347881517126354648526240972294476520134709908744579590972612321987869739858221073341876094538428481595362277231884247884520294955048512210651707074928590259731561987536796204240695563559132276972335400180010007150600021201292230284407643152804723965403466822196916279485964704028777284933356086552896828029443513952176089352671571338084885390997501962301451381814498784355503074680476345101423409211683492725809124499369671216703788674024060448894049252582526750473921792389431622091227962447196661039964698745414389940196733336444271459429959300406035511140370204951145983785190172079510533261740260605520864400818601528745527378096804517501728939036116626631172101249263679656356871053053537016876343787859750184077126522016373881112524191117759080253206158169675566769861466829894895620423702356237186943712830129336100404648343238381053531489200049403853470850496962703747512847813371023148177514319150054973404149406055285454158330519707593034470699182760274917807264915555142788405304093992198288210871135851238642310845036833555214902399804424618020958989326943575060649252966698454072609195941258369517207527975377126374176702361320830256092768663588003169796018690206873068243355699431300358184137160140388790383564513387042728926106017216281839789278344828740054597572581940928245844648563869945358473102368240104472630880363688251480288092486152900754060428371733332345686030960482842715684903598494886540200112206643952899762738240776190061378779046462916900974175451876645790854016548122767863207856186499807743528814285094090843240452750597515109363524694714061450322375335909402343996841754043762459311234901136471582125670595159471561278691034843203224121466223699203646120303243609726241030829497976708586911974008664573450838480655268137771014786712522267876493377453887798594869550751094346874212913166290471326149710980877881674639483314155122869700137881776462381988395181744727717241172151122084741185650610157582432429753719305221954283516298470130813468261227031988347822622412511815825834423000370022682834193960807135470508748988184660630957604888793258293135473643359165612494273091020720692604125931073057578092556619373058449156617332252392657033919080726970600782696422571682721664287841338780043066815599029224990668242480744379435801351698185796704206146455432373908785725152033185506425149821522246246868761560179654581559980486918105629054967909535783213441344172053610440850871867680865402542021086025002869330753311615223157398216634201679704180587122313266952249880074970731827001993465275750389571991109329010214705324714862472069605287841807458374179412174131425041285992186891526410727548599165387543175034883049060484720126196993123738395406979138126415913753417113812674827900827122387839536094661606068912123969476479176291292668869220738525207315409292425206747684309271951450997288617453729913486255143321640391495474123003941487375640446590095210383436285162155563568677493775938153047010164967287683154680054252555850084071847359724000760099352932863283640213686296074237164435631089856362883623067927837719028780872608051281652202545840586230642132403512699857580305664810509484708431255998762936502442432523397453193982044960306988614658467823724493291450576710960793761760443834717561246975561101245380917291181530459741358482405471200404008833807865512798381384000901806371981414182194913035742134842451077312777080074161193764636038550785932593871323293944235155071381345165204031665828931199802849462948741467218085660038486209753982140998900404021468432350418031070303028952763511898012514434713869623344929606586736448143234463307181611420777834058147066551976545130647811393609806399486553428154473665440732719884026047740362564597713791785246828068150211828949023668035441310818202098020032421123934393676460311720636349012296319489711488372791540920092815779353146613641793452063590578153085286050228649003547045610705314430601777610026477802612691934666690867579248767616014045436799415116761008358666122755347541160716610256636114142638425827603536146469686286603383384134858581213765912346257868962540112933739709012105840340604756678567868141599528308291078315383770275503321434757646320915246528285677400399597601057162775076424840102265373486637626489132940465272323311886734067884535709941812678041294859671437406868718515538227631269107970727443503928994554639234810444616722143309752112745894179713007953329919888944714657497502051522180561667886882035134717546438650281585295815586804379653583106699214156651584071617729790062778568625778005583375207841202546445951113469103213451672623707439877335351538385324326948835385193774930290147824494936328153108120508375787961618605839467990643380215678759429541036664263769523580196260742595500693169720649820722481110905833225570687434822316930730183033145947790961431235304491023278124799204820843066723395243839043056963886708284653377745527743071399726313801308942066073898783435280494641930748452257373137909992186062309242630543662120205579777119010858794032816166973108933128285812059757695442339913275353365844952458875869281514724419745918470615677199454546437131177555463103595156609270161298414291932468673825844740216061940893633919535843945161772700723825915413448480291979057670536403199352695576164692886411516076320945482472030990009554277518952555915387639707002938367244118913570646347397432128171674916281152270787187857017195972272832393695138695612675987914462522870095466139547369269554545521138798846917814293623430330207376442525038500864774763649466555864368503842796643501801803403274040376768801687542946312514678293095674469296485682155027101866335516205983584407192368544321649277241599943790506661376563093961378701525511611728413574551096316969523340387234968414819474929820323273680698830101602474330027699940221577636024733556914120077400683050853625815120783290726966019376945980769565340697822697906325019446985979563736768255366126050889336717490384728455992364548815054396820055461919158094005640668425147117124688735543893396357096716323946520882224496724525626610862102246739735628490080177446564243461428909959278401405493968565898481336840886574397152583587913777871431131572172632247664009208428199247932750770441061136210234674990547278178339562834960418278365917793195986641225381909849996432309161019804861699755239833946277644195531823580284774360026674596389643603375302882161230394373387934242322968730974591490028959012451588833929659189451837538769620450544277722029986230354309630451954204155018451004391957140594061929790048540926522358681365898270768620187151652572548210416780132068266642642790046626090473375853287834551890127220409890006958902079171760375993078682008248623783435457807229091403223888388166719575275599964042383895890394490062782033505108467136717061936516181457984725387670011501311271972939226896801002806340938446684620850480197208024664110786225107103563085665945471986228627867348619615364032348682760496160030193677705105555164091461521406943832675804975447256325222967136091051876493986139445072887071569889601730093549646987142885530431118008704546730929009173043414557713751170187185956228844934375426978376643127536102769852665561365434542852303873752233755092168448941601681184311367941034556609212452439480189001565226199911806047494718347313005168768046268734994689070297442469594158763148243640712441236832839509990289557282286921225694765559979276864915817338001323543934782930416729707655015096818585126896707048784681023941354555072880748438963768900652993573530652047119754088951809282737512585019869769812537356681911771743438945889261980676295609647335910874738769534913574221383858455112573431486938114128247142086197077528028077106684882478907791836336228949176352889266470910530336506984518663600767196050564251174501656329804254918714496323827956406582317912008945641154519503918917568306569346107538353819056029801224250215058233628352942411146181191997951835569053273183199096321550642370096658143350625650779357338270851536514872681032581393454829940200166444831314240201711676682346746661958497458274289443666129748288503603675028719586266897426151815267139140763402834502081688755362659025371945199304838594995298007566274261311165791921148068859915824375305315300003512707770449876412600953470013801869379805565246199049626312021705071861107309020078679869871915037188926214415944072516598169075516282011477906411684484979087478606177074629852702036467404731214115952853198948053104423985517498450261776861816178684017452156434861730999346051164628960887994800797602650373735915235440580719016606549808364628891084904508191859730564804396729855400474426385868567169744550687419371800807321660086438646898186351114392869327538241599799646365004771585800039690197322123444195829427846462797612895651883813619436449665359659665625552435484173236832985360750748612769950801413768916254927661477791705900536110996016929304652132390644234331001877241569668440363886699320898602919326345673751603559199755620661930315333740887904089992930068489454841272905419783241014311496576467344632417110611598823337321860543782320994095325006493821671016910949873230220783580317217423576611319971310960734187929173346462503074451193218553768617732744358629373911439444064574766075119861252422440847198939985553743197632837389298697388477277400130119363118279574994717166273435521089132156185449459203587326924651217744088893668523344879187771237818399317105553440323288787073480719148139054627671250559741008496108275011916731649691795500662881396781633851142153196162392216219006134697133450050011519402859202804323325378110865549785076891915641197478154776535168855042806130179643979708756218869036521506769351274833283902871097249887773338309240565163793586288914449570454391440020969415438177482729486459187643699365623760441111335348285373471145397753733571612942967574620195475445901184176914352720511140801096444338709841589451169555152510227044061592244030603615825955520764372612131846949968160352933168929945307258652156389669912857862173928824618521544966141242003685218938636657277101782993630740389258910843752987932797144627561952310393155608160837959366064108697092776373853884508619771571575107461185057904255517033557171051216303503707042894723238712462544027761075314191115900912837920688090084335945466529763218500033351620160455893351595478092966670031172403047550601615634037230925817958908575824084670809263122360665671156586109553463349159424893093925379890553521949081591892078715859820393797696759192441764265427644924553144707538403505581955049594534176565849235131532156424944065273415496525874472146161626837710420539544812653915828711235793341446152135985159982147046002458472877814736496025610184944196517190896975294194854867417881914399129681330342827593334712715466114113391721275575542552037528009628110344969603965078710282170468432105206634143597178948466103438678778607424533872019944201572477267791937615495583751966436037226969751755633748933464101598208334537077134946026294553406930558445513449888612148252387276024188787178838676855350783498985504039261055572801244594950381298288875120902016971468574799835280234644319098744827912934021785059471645052699405517190471351422092531939070487085647611770222136418908799231397327672718983548935249872110958392166220131378233266628965111714505821153236494647205899279141982087792689559225652075853815873848779915920537135988405870354612671324775875616156853312876533901584930257786707224048631892541145914623414353652023598648456700705672295511806202481601995554687231257428210114643080625828991256646421572361100522110698588484340998726012147713966227441116247925553914869446573451515546376344182266427020254198945271385485078221008377218887700456409367692837988509479511578096749728964731202649804976712389156430615987492198722032826135736417696968749383807887431095119664431988549702285269965916485947432373498088569705594623360088138648957535027236572043722536434927133819155796636778882508240696789851817547564958602518848658744050391734390762282914943505178100514987609898326936939283928451073729812946531104036091359183153642373188591613640001949445662986823693724330924854880507303109173978864307976621263391281464442950478219068467276603432567376720794252643706031986472805076133847660213380246811411149828009098466052420289330458977443882284043169287876704037470943318092214252592599871726766182499232097770459085147232820969901116589348397808650706874748210609497872744624957589416573172371591179228402531910039730076492706610271272509305930778025633678687229917158224469830526771041723866567236764218807539528257919356275887613664491707542287298574504531223425916839531152107921919490398932415018566143163653912534987002270672886740950066037113131569510290398068553161848753945963528145603609922571652184173497329223198999504829152410654616814803126679261461288613041210914967599634058521838319431018604284452198101421828164630552036150980112345517546028189671643306318640877809888187720077510612474763593567877177263505418119094359554762719681763843607062748871728840631267218821129749029852885981385452218915574210848706180208486967383645515475391292830973911379896286745778664461343421557013424463849841964809523835836991577333987498970325692957586995757860117343230236619328153206566159851050000798605749888328708033505723108851501717834552307788195633335008438287208720734495944235967915611797176652866481703302126202472125932359504235956888341131402049083058971558109518811346932243208653540706984159368342677375182990751155308668232428820593404810587771282993864736711963981050307501437420188239826230184368562564340290756111179836363391631772762242821891285524086927135086653755904707987966559640443738098079244718193174261656563308664122701196473068262722164181053244154011934055085554188935616726680935775442678349061658111287492500975828866726960560212382250572639989150594521970666884234087671905346290408460247891182516956522336988954566785740904860377930423652623506586689668374891802955699597467725411790193618640540533497375461907078708189842128838042951361433536376975241254551670103589945071700309883673666688118549281405025072217660378110537478795742768240046929463629761401538438723062689072483862133374946970901134333630763225830062465958894416764758666924923490270040024618603707862759145442343300259838732589904892307266585086352814625106985529982530688577761568891070272974884980437858562728206509440492704529288415912343951376671772351179755250671333297928136601171561340860200987058947868539867541907509078800602387870725598597837009644006707172464816396185550956586341660321565287472303316613223491349324976737255840902514268460870999158628920598290152156212411343140983693526031108316433561181341537715393071563765098702515337795783581614590806570896139905742610143167747673090576784703269105361259851252384018670907267216726179868915317632220347967724823582887649586953627283286134540081333566689520346527196783957150102196527279891364671085667404227283270571140189887093310289938838662541511398554216434547763695645738812759935135136830929181451922278901711065772230238936538738857100245587711156034247701994878440983558718178328143688589676156929266799546082088778146901254369548464357607145738925550513505172199207685562896961973515487940634949815298771196952500115380378499141924005628988754017359064878431498729767319474413158174885910797802019476593623704742397062475141716651019974350368523602385243985404889725641597816746063003673502609016233529413777964107504464358164393605986107888240592880484178194115738620433738387124078978264391067682202298210244850013030702477981005484976669478450051562989742309102853135983464120425670997436871916540886470856073862060613842379478782440544137990254295859781053801282845620897795122132703641426134687045172219442617735158843063651391871082785600229246477628325767157856243813278543231630087744866605800181666019170859833543165989939572709809989368571503589928512173013522060819532643836418298219366464947886680069959756805140719351083589801841272163298737360113929176415016402562920148053191786061825674267991764923889577850562461650986774955037896407797371628352097134491379683121474354265326147925127066332040403559341752389140162776144874578194808582341212552129374337524165560151372830016568754920644481596553897946604917714927730980157990094768592602865466507105350050434757003883491522965750409638705991076534381643827800317886001953327250180321123922890338786526555631945525858482450232851843291455356272486695892964030266267999734820185904222111392079060188230060767517680801272628125990308017329628453983650215774246222874945942256988010029843328463632521486491746376634640592960176039592535466931925451058713090861615019861786697600126661443598725404406314557210831071548972472750963318116872381759270225035687315753815499676602405482855688363524302342532408802364037568813780034902244457416067838257549620436938418761436900630211492152894759269395974069024558885737270448346537866487572112723165403615487515214014161284357618448499896977715961167209230725204737091901299112132604656031392519468616903065868375092717823636974743456605110651445318408936605103446611319070673234928242741264137919629112616109592323226392151754209045756567163514202178418802350396961501187528472371075954170391448711786610657530360617901047839553733893398764730556836234256470272066789870609612056483744973403374958131302540569210061609821587770896193835273797120652032078661221361919937072936884824114554563552927597928044727886622655587164471305926704431793555222697165868565985104449664999947171197905620667909680912695729909462427902206823981007312376524546062824957671428395017402939093309175414965436931635524803196410508017034709393339420169043471300218357702317389157446741562362796592924492000920897215829702292395727652417925274651327403083688662666861574943929214791997342424851879050319615132776259966070132419068217597773887364934683506257836415491558697906500611418140320324625724750405199025889916285801971910539757308300044073864042487579282202710652127561109564999881852844869944566621758241531417112799328365432185460341418198915574277539355542043566054554771749414862853127315138215451037447374450677742465889833068833696240411241464930067760562888061113004156934723652010185282259122133478543685498291071771512357837505984199865658758419828585772507800915295274476462764956725252379212960331650592292978029873798195582016912021858335496910556118368096483082948800988194475658583290139853143163098417298636271483319780316712903546718140956890218023233688196251856499441293060240383665439976294786450820653914715695994839249087618699060775926797394936318892972914484669140505891634419564593814342930899196496104149852042972582823868404796271565592267842066711912787933431121136259117354436684249119669625969561276535510227301407525830845489273865859629832390987741305482956945984222217909755309743315590765730545770390575972762996561454275483840241105314794400260787457779113466159321636989537106041911923299731697522364652696484393489969803698458242278283323215610760122415753144490001380454848472085944320139694255739288083439389791408863854022637568458212693059755095706420002457427063416204050198996672598125862321535737365193419594791275813405764957604041785946722477095362391522155984949855978390215869950044361200680689070793882082822804775287542478877560906749884790030107517246500121190518574126078834477531606876232856218943332643055014434571775882293774344988834499195684307197160824166498128356160299098141209210352016690906321772425842209170627866442542539677972976617177137342048989738317045857223918697823332257557562853504364793938265389062099804728715271099084551531580562465406599181659172851253324099379168493699747251717086500533878528087134838096405739674287078588016769064698368809971314211221449228515470021414819804768072578097954872333362409211861240960883998618376975587714154420577525654375713701226974192216877896768272650782228099386241064619067683142737616500113283127615803089238288893967779367317586772697335562891866270986006899994586811936638351581733916640378298891016738300351558324815522940496706164963810908443712197343540949864593455453019830023988312328486498284870973240671647116606075715527961792407580085088101148247533992036830006562166560764803470896690643031892815760619408160351265032577455358880355013045307621734794574236282787487644459335695453281566574252003876498551095778769938015786261023963879798572627315574928484531692442940460500053121554116087509258628998510472313441362781618230144773672994214448260214685293947675975964443346708155066237413333144179676694855330081686624281468239776991138330875702947308250480964475459601716118438252685580545341545205541082515634138757890378753043296853222060337724220523253468243057285338365160982080555752227191852994448317426531088526229340802741825100288064092193644256548690843185432932001993474924849970563499583846510383748391377533747390032101538020540038309964207596138880208681780781026493985922269312070562244178430268039188701757194860250693756465834189094879159468978702992456379145696178856351353987170590435461420479100970946571549975717972330234831941315099956832387308459753747975466731710651606126965797769704901310110248641603195964043854206400842783921689671810929196845152062852861839164731348209873404203226017657384139304635363868326089107044463687477285104784412848210497013663756794155425418076888557243772512532992415992580693305220045192648935371065176097550264149309620025395809205383429064930707509454127333542947253874067665821376816964444310862645525142291972285436397912873061438701234657081810702817124813544328692801540148176102176149120999426888003106907565496448664230102824120351569139895577177175238199325175983530825126355129519074675243505516429822374185987480039343536526531227704327311723179834287829209427176973650704824249183620839854112021168555088236894114496549588207043453732035741481872602581222667111858791006322942481129211005121227998418024233938772390012612383137277701794092335087647103962092930922532221014845140947809225207577230664702750672955789997175184852021471847235662181462866221880462467693894914841724541694066293319018805898714877881690593642004792128138306374715642757316379734782089086703218677551761997450165737098981350560783635425226114795579588018176193408750234015567415020054453252385618785120656405463478360261516228882806906995747787077526127202012112860841430787084039901123069772944791550660413752150033287213912717843879454196429258959953497730561173176981016865242488030313439519897468769526837584382681122198458987426370336425169423918845056704062635552212922275252388168487748987220340963544404686085457293432360502562552209959845287838634723009301076701116378347810660011584199435093722641456914473969532300460600746810023462751759462426414434407828172883707575708665439462970746885679441801115946141663277242689410809747007966990716420321661674130917873340300115085799698195171730032974095239236471703811126790639474251818860485291809361324228226418877700714611164905791004596572467405612582745075795702106249814291518160980193232215055990464527295331563593949315456526823417522989158335380907026701390077918709512181605992295990414858033010400039819630760695412180700467020675804048415870795987566685675998389177067583196179563060110499225834814170169054151219385260142742878085547163563961602378833511438462841771626339216578830699028176113656484146621478235239710697186242971410154903740935768386641001647397101578745881747137000720105822316362669531774656989104737492857703112067308451876268918693893437121065037524624330028175788129462119957726547614971285198456597635137699650149493593102859275954024546603230296897798340863216534415754080189652175235864179769146898048143103647860996774341528264317036212574782106593022726398250128507941993413956789399282545083977833226761162650912636367998109319765158023562397314209428856119690883619538037758164495424002846616209018633314193387194467326503299339488608336510676532105383158105178403214687954227343085492691191915127886674963978757742733820631363475393976569858507407142902541342476142886636761280465059754926232919847695365812088691705989833311857283276439117901548303879266203821595819047746269583724332558807162326061315489400437379480291092007685820796566943205210591855127933198077962116168247146635553463362666588191434155729056775968177760734159464593759928426125643457406051988039927323195410476790917254459316164876435145805746172764139032255912024130682013575968739824708570202107257187639965418318086278275812289645032128562913725425272375271128826086198450323847571857706778263327147365683826733060425493128388237269466601097633509853934219654769271381840232679241628321469545327724734179154740499931856255246433690870802131809701030491966187672306007258495650649924877464846314682328884887757000908293893387542867450141042542942162949647889441898543275846876873374622233465372518230932367894173129309535265033978333100388600789519833830114999968392494618846995273183866838423761353014767905963530443991502934700657052421850218468643088096933232614888905858851693127012644729564777733018794189672085071628119715561677761603010623384785871541579775904674620127112275703215614837684986379888010875230643752265687803619358533970408026520781610620111181159880379234145563472048483319938548687094793198702981723290908858953436574814131268790880141005197150784983054177014122422637082242606331018446669096244288196491369401455736098637396738415517734279645010641280759498051118995807322193999244354035753223754932461760213975983729666397352815658395021781313604103072979656300860941703550076437267038092552310649922412593209292880645091166730589992891097570290281820036862428037005450863097764482158755491185941671326794475893569271478886692511711342813661740450507880536042642219181506465338942225873902905757721147732475262320655199375810713383767118795451949477866675239505148308759564867306146427139265458377755638345650194393489707923642622678256062045587639232010635271658693839515592974498961265263950956600246112617405702324367711531966558468750491924511449657516929215592418457675090893326895631043740821281499742899859459948596499152143536232251054026268941819351033025316880674168326023808224557764677063949124059627077885092796080711397597357690449315901577496466227818073981966314029426682858789160387532890805389975623265712686783365983307866577954169594323119358245595761164463841599460321582101293185097232113949757383097628577529247186633169453301741991983791301139525692725813885906794014923551459458031078922197454467210117589344247918109938339952040457135868066584814168400652986844765920778770004675063439938174877274276379630545286060351738030417993949307310762891393033675592167386287650234329301171250521526493046129544839185724249919084529561728734640240511158932853908530471416881773846499232843490900427242802518508153924001510029928818448066042201300483289852734016323780299311968229247100253968644685336688519626684085492646764600458387311555206266765770749808726208696729662052205034221253017301934520310389121870170104699660427977658144828331919668222226632267844700552196507204098676606903902948987723535327720356776209309345473404906748012618438939590505668284799742380964296653024913435096154220546242759352155811066397026769726537165960482989043893405993227629435829450145608382994074646470705331333117190715566624435167859435642439008164964666616292310901467573988345468772386231394538721144009844311624531734001050517879314803147784129839284137382647889327315356410727140351496317585147517387368665994100614070861139395442994794136828185143690380013504053963642380753431196926197432284181604969397057963273947006435823733185202050544577915461153137754603876475723574285690239544386394650321161383700067724459050597095887570151814656294657744457609856292463802949574878660379614848946833469127698243123387304821098074738720892966163568205177922192178859342915221401729117742492687814390946901701472389541714797581106196789986202713583110214267861286025860794949008198086199999761728392100802552431208736913397688893566754101280616616554112276720829015398268694310583350438175938487067893799914693900854699854399878796797677418039530656331780230358167678724180355930778213465053794092057729818820893123125983962892540146197274975842708546871901900956587578888318761769052003831192937275777653997739410059124998215701014590049904001247565152548628537317908764158538964218653402611966574040535754934435156007062057066369233769565594822567928256106859437351097780112705368554642371248641350037354897609593512841982574272723434707925705832371867782074085211196928781762990214123108416014214340053185815625927609738336441796517324081267712558011190492513275935220048186451590933137652518680464034852867442188393237246063941180881722249441265907747688941115038790976733167920471117616323979404239001244587791090264201612325279671125722156111435089369553244376806822944918588294470034954479324490654261622793159731303465844464776741194689894235428329013268243003132843462400959901740503991521741943197269843022415102397253336408298208027886921351838855419959892112764594675814784820192893972691202509478639722862546420399359766797162924702221087968072944765930991410438792875058558230024473700826261892599531448696100456956575508847221178220720494219284128263709238174912882115114805729809302685313853598117765143922778002241199993688617401581973933996353757726386830439594276944918783721906579079641137239763747288536707229483766710498729468253895480535585300904706316410272122508575985745061299216465645211783025384011606328561388317063341570848502370255804792252939645426872318620488401810211345092169875722295234445946426278534702676274303371587263395341455173194208596840198173578672160140038152594608409282650565903625219669587879123000083598142383836050367981815508147667490232026008001700909023929193628465868206564567855667632844904373916341942657830952510493995403879670589773710558726701155694653404529896603382671789057270614263533041006085814503766054357944491046395709793967295230737953760837094552839512668615081546460040961998570808648581164908057168500616356375972009801965485535389338465740029909075219335663772095604618146796691176993678289550336278373147092858978125766141315118391931954793936571459583843499889466052770397133462114547201884615567056457212510524085307661600376514734153357609557684335015093589212478654778528511766345223043212372762451245596290610771984106378192084952135934990349578068294609638879129623636071370868903809333267404357882258042993458395907075893545061524228365833957055209081397710883277633071012719050488818702271301776032481706401328572927543466120557927873789494755095758932410900878429310701987240592410980245597754707641429818721291191111704552448616484712514281942141220786537023033792880797324822722619829484099877211280924584356783064541041955964571822448685588455023717328271572639028858315595052266443480999851819295047512198644414361272029444765615566659411034812358852584596803104849468119075989728093175075267111720001535676383469362064652936287390109341433016860856295906998723810503847596862314674384989441038630090602611389147815690283023551233338856385358036288432566767036446933452267723303516637047606561020558895692597175998661545907307170567856385145025242659166223152396714021691313993544675667732963428692861146003275134118194977011194663685643369324288988603170638319337919529107295931179858008930744985173819766506281466185784594112426737042728383719269963145814264850454305266803183034509842171769614071999369336633676162628044390467897859980505073601909568625639425539665621840814262577787044138057275696182905031982481384909966849969706667968414124522588214245992165423932845399677244432412757296390783045289485286340249371349193397405778835413841550686960020816477620352233245381544184969665529667268937572843674271611576843586651446397205686557082662769800746347254400544692996447691394580231905543111316182720059458435355209495210229682632786728829232741890240816610552842275952858214972142575509598964511794660534436330655905569982581937122774282391664414753171413471090338261215108692749804656199819165892150053263418009451882732946247672050150643025984940884554528748963906198867059248360214817963536746285025052368814210217267167767860967164680210236080220060531551041154649056302320682806389951913762225348660526215830040475064471820102907786691074144121684850587756049020917486666741843254078357397188449883295194926991040359687260922731195688922421650683776002779874841579982170505933890876867788603286193791421549842455913050005445039536585177431622200585270741245539661997794036750277144041111744875022384370028146779732034212277973032886117228718768525872396214956960564891031223372906785868007938815913657743498017451015201714864015270292835795815152030789861963335645970818196556024361385398631000282508834859203086674785507565591841798485501310914845535515565475910262359376570244148529730224449796346873149511549651984482369917412469431385262426110517979037228725597725117135443641501482187593598722968619358720436764107181960035747014394799103683489070943734231897357193487975030663278186281697587773914233150544671221603154500237094903383973097406333624306583899507660599931541887750278764107901299653651053995268828652702011015762977462928965451542366472188958202064165215930825829495953434927108218120889943369897300029499662596623542873540113539847088830204791294577634024251352213550843662639000674772349755211217115947245294081882694563109559433254787399964569627066416943868865395452771286952048503692250286561952259520137142014793885399983987945844582245620609764553991254101214129852203269360981237722465441806215338120553253581017793058997677766118510359579278680401349394469023472236413174334679884948165396294724272089046925740868250314612077899152365373222624612390536995057378858617106152585286909255714916888381576808318324280995770438405684892672729581045342436513143069893950440374606933400597786983987258106408868126103021176748962835025418453340766949165166628352839389900987240859517118152578245799855827031107033962784411625057531605539780540889955932895280854222349197892920505417107258389422882767857356688454430905972651406423963025252454390404631760198309600407136018817137453180936031770702123627077258239319771119194948830981909904701870504672993257809531277684958963784458669710190888162544399754719420431435269672899748010396006177384110167882587283703423013420571552415748096496796764151438526916618400083784743733745290028823770102541754486467920096131004985583374232443982677971694047920348819606817240678267099049840996521675029806941680069872563660811273567650150628197328843893870978272087473414032505202170106864344350752315817436273478125321072812933358755894003510657113866441424441436785127748856830765402686165352131640872131845223539453522813675127723132957670321654509760351160536850057381656740151279129354967149313325804738258206622564810182596381402595080875364740100332880498084664468283047618146460542393428637232140798740258311040769294179063229100248440524927578353376522350056596829837036674152151398605658132854892462278863852600132720938848127448177350655167893528725900361641192582774353485026304914497953984074089233215578386867006760338624152959995701808649904909175444021278725171565344867213856697242950713466745642526359662389885553446700506930667965893993799795732078808643566651651818904227740342299641983079668120201129468166838424054479427055879454578965999026074365168930482892708394406849340964071132541741503756758337459433094281711542430208782355211729235147163325484601355189240718692854521194814525102842012049427065373978118647771521042072460533004717505099993634845738720324484775119698543246225100576730452395888068815964943178377480103998247521880562524174881478394675380033299882933637756396904211530093979725112440702248421454474758956997085288961886667386531881923470840859702908721891662110756282686222403528126625964046662140066623298333931374627798034580456986202011024399805057153281687146676915713363677486117862619605716198800046110083838522674110451890115352126265695355979320647784378815349244922287022023820419047957784374977925773063844714454177646866760486930293967008365135314153857537688679510265996717252764375282318171472476137716838452350862511708038896649631542074494866747565674835761725518750103133093525095263173382117916945222678360441421908913317913688328069677093832400618810106387568595670902154928595469485459437952976696781417103205328150207427519938997668638600625167401152748592410461367599675741774118156206706127853491674120326478187487149286307127331005238153236831634533541863939468696000925735615782708229053456511125841202217269542019677433632284513133861205741745181875092672432834096307345168599285334939615957292466991036519242272306172737220355954416594484618491274248724874328237754165555551662787981155955856507090423386467150114931190250042199364259599738211436931626330569901839626623089860227762701114054425841138859922530951900378220142753886069850924094076438610730260427357798375749375493745707273032992755695342166750860790786725798081200789546995604785618256890339772336075826103192757687008451919728666065599298828483579920730566391948916665558749173573365795251470280076219495894174349368209892614483775074714556331171819981886324338798205377978945882819367366110906304824010420880895749829218873605835737517204685773126638097833017731832736855600495907315947266130694239147377822750259860453863574344607706741404541685126900664466451831731151843447712864942021217541612567055046347301675021277516943813574715790237091027591269917239926567090504550891788387304156276576282783016550959459370390843706076328415667296286714731280784825249499066357236150653699225219957883453983411933392092705164089778901397362740541773625955407339119179049287012215803745064967699409598033562306496077234376413984146780735138256241748356208697748359041245417585858686480086516991855671880784652724304516209450155746634507248528287061325394266534409755290067300047874895382201489164646847655935574315849635134299606010172158159207707433829484297866375463284252376113002194619945987158979876318423361289195693016133038047183404555998141106350575042529347132377522167747595013015491434226618481838895501088005894409759410127819545505689867155456437977165818709022333298190935934188934318536130962817661927326197674123699879423059725025435186290095379593437203637264429357530281393617894491128708878982115753646142968824828087488472748974340928386366979916528379148176770800623494804216949784457658347881926980036885483100574054413495532523898612996501557358125290134397748815698214805610535297567111252875889901426368570142501681469137886749761758391935737829453957656139831220275370991560300183910727239510527728575767946912835462995398307133156936871777188762481166378982270381274706987214977090378432494513221478597495158284433073035756159738031525016571401194623461419237494549343985436209000298901583651231196650934212090604112148280899136706760699313805570788904604494687945561487455049496037870626013885587734038997893917426499944070329670245465590318756529220368682031515524936670989004226796546929441454511835714313090617441944501716355964681430282144282691653161608931052729295921329968030337167997140641944288490814520960439077454202096420204291452414770586115406680437670163157907377613539268950365813649503856198083336867375166768626510799485355743712843848560260021091118410303145472082702470116805927367844661414785103838111426736585774758743905803399419968626928748885558427448682713467432351717335132267705920752904572848022394084675529610614625790829718724981103057394929080575533544827367111694946756278505412953433161122171902271896337730919048318224863181377962305495960554897908270876346988365178040128741866597802022298885133892848436947652794763548055171754771090411350092445354687187238359620663322027272369950277568100428821944610572900570957760752087452438665639074976491183164315362607473567821023274775329193413546878606341854937329054565404179884430933057938501561306547355499689632989457151293212905389266123198074873777934343554058249807303314689381038313137029914644908771142959214036462220901237793375603123822256175963431338878581900299119886578229874144948184712396418851582940310431629686685896110443263583451636822200587846013540096767333430446259148974856510496678581739513515102057765653332709536187309997462526228353931188586220159553819242689384074172062230674869375607309991530762586081396013510696152485365430248591699319686949247891398759750745931648871110543851329502156026638305198508601082220442093925583696016687215129000241775064639266969473136617352123084642032641257705409246792562707735744166809800503262214138283021297604302099636840348188690204249358796946639336335783276789556509731960149905304609002421530459951116470354259172895723310405555320653909023005828054636826287389229373176192022286243363206597606249359666605508479632114247849827063472452798706613068113952061406967067096748512256468898960237485351620428224967536484278714193822953851738336966217763526403125004815692803599246079164854503266498512915440042380926342392757714782417952542751369797933539556661252884766126124577022178552362988635667678957004668202498041222259911544042233125735496348335202952366072063868706017267489984643624325458193291628465559692622650118656030016716553931219563529034266569365669145976500602691387041229513761396828398074361642700071365111080420789010620467438361822930887172875756691999053243586150611319045250688867130531302685710044534328867334479392458659022126732557745198124969323123040426550697786627248885922760580905311440864108635099991122583164592010771566050338746225407791444275566375339431365420048950745513930602465983030093318498917960056829118936206801741821437862976328775598790931856920609416768597748169904672373937772408243134265241975411616086042358579406656488156372137215500526610873677619275527846613091761730497392520082026319657974036135824679191496424843557673988965352945347253807035040140315469633394741020747616317073198556358597633720848392220174239176514313523855971854122963728608680742972374038504473795731937733006922176911000345949430785669574683683896686876158329747976621407552692366671877111850365851328163458889038865297663235431317965931949263493919197047209910609388647064662422207386477455726214694812692400764707715531257115488907527515997931934015821876692642443605005760841427796777907261133418075450331571058430977153790871724462648469164214198282044426702935635451043079242827000222460375397430043071300142640312227930447631489207681942146096382761037517703738865284749136496429264316041299890239135950579999992803361395220856604127392597310524696792136657269866740035799867924502850604412888676523672346131223607438186346611245135506173649141863187032566475937057861814280406635558683828716042375924057705523703762866750436966464302263319217273933088127493577239295008272246859827205291930080610937964013709277253841502023384676908537908720483047119497917580536019990359828345882001376633750984211960649159733397885843483340394089458928073852864235433213993012780153092733855626289603475931358101617955790805808466883394023274294727764064239227500596535502838441178580516099229252194826539740650066992384147089821928737785278900321552096638829171232644318317040631437556950974361226212701197483419549708839819518114942200144478926303771193398012466613716455042953577623133563002108621139277516387051279165430347051732716553990291333204719548544005957711149151000844115476331102193918345609867966426019264855099147131181642167074624793461767528687774174481812567385776017563641286598424624813836002236658136015552977251495330464679402490414732944992604076188651162030373997007763120941394846229051913011534005623521856515869286737975825598745389322338843307295785889782657818122697037346482564316206469707505340479409870680312692589491818998265691704103278534040533028810639431668162034129959891419971729928331364588086750820756710930217819637575845282536832082941078356524858625421015613500414705806714930333198361788986024286557988062948067877591083240059286013361329282641392485291989952543415908060531759723489644270203893307704502722375398096414741546888752747076427130127635160571638923022234125401442600740205234507953158981829226902431003325717562313676208521421170655517468129639168279550351931424618802994392024920621572204875986026648458460596525998155923534557546077536618198131103741263906494824683389766048292424289889999716058109401213845577491599677923983251044206467544538362638117746312750815232036614410036903155859811268001582788833143561462054041564836690365558442232679282252099991496641791618751830295471893523047278646308490668733655986000556233458028390413428822902083687636837273118102056494566185688166178992037354233978349725417162148028446717210849731118357944301660198939266505155850378599550098595635748829303773013562159906547175170863629706116097839287427787144771077064377535293310333412469592382149268521265207806595721965838601107422131294199907198985395569924890415925350875936696619964532057178058226864170124843761473476016576871142831276358458713370617749153530387261073004185136099124244396290422656313528671658956014915678559752873792950086266999685159033954234110958953295058094208482092953112170973858309866400100524714003711254539329574838479594189663897822263527379685889895833021042208909513971994442050024263996434994198909600091701220673055757044153225352788783443482727373742504800010481219280529613063382703167758089815020824607129371958250761593302455799234002134940323548697457773010839313569818681539142457228263125786644492793164763226206115077689059834847030343805918211923657678762109845089654376678430533640501697885652820852468493859198291097176729626259803237611376172627948862765203312618427471302516948190653556407036309482675912612807418469605561931700530013082539368488468733725147106072577868184202800857546031961946501251089540008483670284899447973202858855939745152443627018984853713388249213905731099280969919410159768820922702687252909607178602191631404715240185752051278244849727505031412262108193208874777663591708621258510027218597063098889287877972983228787281161443723499175492297241721759224390015282663650984085704858120408453244399431520196203966966122622483343781232075454344462927812128149211819002750730851991831456354572558712826005973509257913293294959508182166488099835203633996918567186766756603943043052983188956313963788456485069742705365031360795504253123516229397085953484985315591325558722314249185180300266875188866365420931357277561764300286243117967501000306267380029702156023274368812631488331598410369744565777587372928119112405242298962999270201586599323974629977532763575022516397791149538547409281143984831661962742162823394370109397451745633521722111594787177546289983238529467130745890735633707872790940796746373605771401532624665056665858077897917671447040940302678403699686090563608663955560385505555570190931304637703928041705061507876431367799807389219084675432438478082333098966659693562764389247394059970586174677275956752191758661390788208634150630622396815224199708596654777050022430724999675952365769581391195819448379436597501610015238620219824675082081684363184609040920776461185689727886215704944487317999770593808848750137244892006832631191754285037977055329735624540468112178361428075840883697585655928188322627748395012079301042677439560580052032944444374622448565925786187104954626651748391516168222171029675063080684000445643685092146231827759936676659619905292157535448629120866872212818310691541174966062634928887994828778536512866418277489896370236943145300300249441213601430437986617717412318688985198730981958268236312948789440754092753194250850461182196965238413476472011736507911001624542585853743837948535041419159652139023301417398959309375354446422357772753880038449649719109328448395267946494628011224909601287467069186733867022369326802545186438911971343581265868119658522618380861392745378864248414953219042856111438424355009964002184500498468141240489834642227872449407182411097043408506337619293901882288708167346995883847460377683928311874555556533408962776987319383161228042367841915014400940167135654707226439457596043629537313958803001463103434694147996046074840875168077708026596788396281669344134729511644812718342905467523548113235812018308668630078390389279083651471667304951706112594162880137218981639625154963834859742727518244283056292940793479052044986206140856633348172662913297517037354610013423635972700920239480018992279319401773263665082753262574337305331933515129852929011041496166744763349117081261010874174018401805581872769243592008610676195022274176876562938356077967827823565345603587319918461640340135089109659237305215762371738748212366371960197866078764315542945081599773708956883311140178987857860991285443806268107633693087775003121106235738380158598188493369529904344896677748489062105779620319436786611594999056753240530274926358182073252555959437573522418161264695813382884941400733592668232080138875872887992995036834827309422078759421216336579635099240316349714476815038281700921362106153956462466773447153406841549113080575674232698215763379331467750307456005218597144667441017671460740022956808932191314877509138792868810461188926524480037140019179323042429149585273416879725806231567741357523460116043985267494045929805579589402422815765406188502595371838565524438418822107807977966379288084576900175470666912750405205196089128305083826664049888965394317816510993659105763822712977249879343711535610157473734248434921278751308597608254933763330978433725229438600325522320037811705755947570051320024475665248427133830793750588429450431283539584574818975225364013059218792631202923183558122050093979407548494939494616285415221492863657129682792239241469089466688929031973695945953340625886014170942678529789307470859289812300685200538975525316907216162057161669037878080204765535988011151130307892530644562335032589136956253407033068982130792153511628169110318357399684333241531756928592214413874935399486973080619860480299623566729350906857980949981831227430682237863534067454014948068680511823887427189829879528555067035968006537765212422197085164266616062232788409991398103489639332851968083306760521633011307669344465392715202335063107871881477060415238323258260617510679422360967630140305013952970193777628748419578862304450990868188158163529656719601128138042663213272616129931781304447635150274499790094266619830443357819373293482229456963646767897870399607873075607951291047674650126941858763083030657314915391916693470340948344697273906031271847656165072260013744362080332348687692788211313512250812681844745930594547475546842613566651556266905908181902739500313848718613693952049683352512882269450204587880524285020980311532539126490860719223708457659360135098663413611448002105252615131573856482100345659973837024354976886120893675122367876422161269522773263200499836387567231507529219391990587681086661528600107472372476526520647010872464019639427876126695403763383486786002797450174812006230510969993311963829129540155014136966106205908158634970804832715611962910200954101257153381389843689626859832581878153300124790135123775650650957389132941450165378095604873902722179265264627777610099793496559308903758283237316182380227788652352643193530089087785058801515167130499677755357522260785595348923026040361459452413346416480146177555399953464618263818342270780164310994074618748492842799297352941919540394703591266358966634676057948849523505223235627313520698275424955299771611114686084209029693482760629482196805192652427183467153625491364586120290904053227621279254037550190859534463062309701917859525266934971687451816930652651416986470776344651293936193936354642241174983855876788772329357891007953917982641131690920836887494855692172201937955078476593137317192540907253936996870172159841348990074089309522142764422282727046209183997431541171159047487012665765418666326741002604059998796705132338352028990879848906824225435745026260295630591007610288915444617184787858983676089208832525454890212158944202775187591137639857522344700333505103187762727714580392865796218085503221133489408647745536978730502177650432713406914236081962834781097513617506817200144981796747151286766308207826838953439878720529971264671936618926924094749345619340994239029230475686397856094889239892910497707407598900532477192412462040570995203456848623435673542147435042928289044371106451213340665579714917389044505417823113573799001229160597808172304861739671959108852905862728078396690517181031872266389962844546132650493151786848785667766945303177571989447908744479647081326214042385850460022160081639398349462716295446335835079805177339453190294137121130716472308563805029505199120659368745416808945231130373065712628026569458201853277977222119848640732657670495010628572435942849582191984327404105782080516307165659569964022735673066226502348714887318080025878236948590192284058411739529714984297107215399741024754936383441846334324467505321478548550328203533003498699689094737451963008497583103278032996302296937981506182723735086402855959983374866041686770565833131264142407785687821222759431173995741608171747147707489686692178750576022938825234644974653255750866476643158305325921178532263835747310696333739680823488957907284142595083526613100704303703523203346014605017835492725159405423984072874893739351259975846509100562486402564187495278021089873217987912389078830450102371715112400413175729341778662332310992345738094993914584724984670214391047983334694479082562036052483323759178379952006999234613742015662664516777540272317082191663203286481329483863879980055525144482854615908162893872291095504297924946227209033487585503525217611144701189819929793482238581841779924091366400120779541722266274311857750211561966049015090085101940837845740161369218639232107910434256364994879570642128390786408431357998802939813297870821714079207990063097170411010539300547923360132566763691875003413458420258083971434833810441005431525602037041279592728648607282581640641409696820323442289093052411952491352479209173797279979566631437070901965898184142323595452487489924413007846645352980301127984989135794432606132213955083928057798658395086628124155426854546658960158163947292194705481956262928224918163124759531027734985692054649516815568099525799344972968791707750539651125047139818808439315364509498679189224765130425632633267019387408980648468298676995828339839314587473539115189402121564219161860338870861652424975184226004573769142673011962021074830214492391203962130096980574542933035532329759784763034987331775982498474462259349197366974686854070739772557089532781439532174041076526526328751724705822753358829009693650403062942993300742194051973978462139730586460940708986505866539202795183338311264598780080722062631291217036583545383905952468031941876897492023446870990912280904945801510534170012076691615998690834779403338572603127200075535403543917151877198419833293840439043744118912659893284949333947429040790865233006798086078182797051139207279292774547781306611229982831898463382643549332895698059689608708281518899049421750557124048934007669532112785179165861500356177876890823895694498900153270765261224927429856544665861012929478129000091664444892485473518275620765817363544805672683165730705228149640526374693006624508731126304706939223671199144338120386148346128831749187064253238628775559976290592080938848825253770050701155163614407750156184229944614169133361704900848217384977439826793402742995940226011980405646977825211043920407628012248725935772802378781277012949970467591448082489717724470725512336215452904338849875732878748499792409262409704396911921166876064949759255290428892282426765532547963909455094094871857696764631218511548442291420965712680838518960735001217179739769390926348370751884596932413469898578529202329586559346937811778563974794174857735544602083735370101319544754567166023409708662175697092732051064395013432640295116591222138366606624687453562430501011598734472770164327553397146367550500646402647843471760754587497925430275442476547655517336050202157304175365280998261388476688919817161610197917805509720544180209514808544620317083092354199005127115163783118357081187092994618595222551340167306516197736938475883975802573292098438883729551516210212979076980772581974458544039949217970318019803715011614416737513049668293003722006804904117624478707775690730326247603824773959812413489263063525267641517061147265857537645721204474317147431128157234965507380361468345342601173916033995766041577421502154181676882520557664747545008214034813205440062503173018907174833056138400047799377167667825988064599994161518925428553397108863984560111102219823680545269022022952761064145485968225924681557914006103827879213966352547233316903806815938530869070813622768030825614950915314860999564465995518213466697556140550666013126666999047192100600718651478051253162937949861228299708056117691984637907976548367412123305626155561914884477251908574741555838348489707407596660616406706560340095789158219977989745653718852631308308834263926097889489187284060917265000831056597900239849535462443935781187531898410876428522183770385545083753158229844981570533410310542927459057454747053279779039745381305314661453935835881303920099480667410153975667641945492672627151757280967935842453434823377210007143296995571812526312196676606553014329451647423342789601631482427257316987453265774538617395137529494742764133915089275987099527440069431326266902995065875023826261247990084249260067101101039783757823891626426139483535256774453428762552566748894277189897335107487891896675341089761230223794215882950896740055398318629429016459754313542083691908366031651051164932000759138742907571885720885598124948539122345830751848441463431946379482123000012470081797925299730537133309460183006841923388047951055674853804201347420514878788289060075457552627738733066976332671246562762751539153589134326977155089559921326771640933392345121504903678899413060299327708249411186202208761608078487525877448054489113340908132224763430322957932062333433957065658427853087766577473808876736584550568289925823661754193367241031672228473193729218992153491110484927823046651638855065165833785616914892441475124467654002679922513716120309855103197714771207441284181057235391323156484606498616836430219011727675650168509921766384786474087736732987510339554772682130527005414143131173390823015058666034972657369795844948467522072747433708941921150225311181232554340766921418767196078172505408341488519058662648068136863948357904214512853823107923266087326573206188294068895509254796103709475958332221773239190018567940773145477603336615215433307868272973562878710411360163443391752796184307455392862122022339956230317245384027036776583379434542371182095982829844439477435483313828945715037914141858920706230751053261347022005994238588433116113565234754904208167945377820779064547982371060119467811528458054875509361945655090610145984725911299281398571724769875159836949411305356425327982729722410025415334433542743799347560689509174399446974202178957672301945569497220291175156668097457095043453129008252268191249342254858085690477965055156937856502231408032371398534998189911166173492283257167141972901262453454200575030646653120992863324221881528807687386458700955646518246300729063732177527715328825646740936385783765677187961077839145744878295520099541154154062755320940548224631391240462059323567548133431536014153186914575155158278668328536393037352735286216845400917198018784280968564892031705089739639333443164970888458462819002434177485688239626557560688036273559484835204376059700215385764223825056912443542558331994091368352411843107015422870106359769929326440161959944395868849546643377992089295502915408822146350025807498372654223628373898666624787463812639409769704773237640015458600560016467952755996447893697561300907606823485672592825304446738448332408718880221542668049753362111138938521663236896575331261287281357440633891162503935459069839707067495987866054305230783271903108992821707985015563397689373460476844165550332375113283065787705313369180060892314148381564553206685400734679098501143593504854011508320011830677188656444000586589737889347427929760126832739339597280414576020572842085777900188417383354219973344795058439591926988186201559427208985451791048575936197239707286809764378506451996721578148401629240776657920771038863560733605066506538031004800674576916765539217150930193551039514878160809707410384170892308556097092050575759677065111277620634953732633319173852281341279812968397920420505953592200189215272802741062413577859276168110653183607697100041869665192144521418432585316423630462008220970601799744202788325432087836195410004901338283283896154217779061087253429231856924911987027894668247365467361977225912413834702391884129321961538782275855858290816068086063411134109894424885348885092971477450350594001901140207311097037946546954218079033769332458500191069588700966643340993674913174444310257252522624553691652383231624971604615426282022657423307281775310336050813375191758354133576794535000153702040668357061724749948442315789733583289314958897825562120220728092386596529553619730704959090190937474632079353680865005960529403718589511772191613552103058079471121284316694784379562945116134837216963838854419507310270755640875189543587159889225340042303207091608154127275415814809531211784974410643205729338406008611298112547789791740215438180034651316204302351504838707402818668938373180493821213668086857307388667216645282774307109598149498442530337155141765249064020067710053377211950868468735110266665238043613661649363240925767791857599720771662485977021598637619096251125903920470913914074120399300947739492656867986695427711175495988249489139094368349859545142288299231715970577707086280521655542073637437082469938554432439619624505209430087513306346460624000889079522065014505804112912105162281098970810804485509201504580758189858419263347944068547830066079386647184512094942740820707533366151767281765248443936956448175406312248122553226097117284162708248160355837194755720742618416108406397949494065782512006097929798762089774691067951336066230309188705146474231873409877570132950359219087180376064553627835915626667639130119457619024154565298364838371729294481677298346606582635619589842552841667959323585987264867433867402410083514095850034807205821175777688144068624187454449120556506627797233285751910871766158595347402273095579445620290407032515114618359400029824394531234875200972244531082070954427291862189882502463214183878704825186477184921087544351461326288999386181559136127560970261706363248524977453946707480132207077531585755733996873778589215795699449286503062882626709647625895454433491138890704647415953136407306405729778725798656093086220048265890072816746284572536802399051655545577151442980220380352161883565767472978048846394155369723304356306188089053027424111508806008393394770220536754707022312647650921448036889468078826203247112429379484334583640385658390105897549085690038609652636082090048333667592833335316746742366926822897236363903779516485793218271443365782598356135361555042080497301610063070578298762276179779732915969277969541388156391504307295180838520732972401894609765843369331058379020235916662242380482628465668592527473220122149071314659144731600275578901241008082741928291544737817075371824688101027477121786167464536222995636010659035082968431339942453885878192656811990644206218987919329515770057038913629236674774730433349036457958171297305995733049780473861876331082845879090264262908170444789258113782476844427643508647852034804011987011429122805015707712054619992456252324815507746602601315518049308313493623265322985694794400308778932600675316535200106822993653405175467898599330648911745199091210751010065485122960845284178323932389412958833529374582748893027389472816269597471420529359487820049137750982390197710265545430133198994607073892649943748202378625641153466200669866854234877631600759291318852369132941034796844686292002848366741921034134311733469446956169887325686138481028425885264070214512633099381757585485668992845670349379164671558334286920444497653925482379430458670801677617200560374567344877745032398782742346593091393265360578873751422745201064352765270625502378255029447806728406897007578673779146614811133683387639926701481453553702836368726095230432151179205544450687525495617766050803037224622688399598895146437290287281381473435425007694909768720798421105844378811541978038800335228111030370771336143578744534332846924679557135005371405324365802198897229355125359779689386475603649650011325682360996584638149466367595032578047843886664142191142123790771718130283616002371968714221838469236439776560021685602157429413635695516653871228559954968822692252343757514023378258294458212464085838854992521222662890717865082638268968504797365623401612984299776307111448161118832637304052887988696145534833999980205167499228968979718412754369849057968365561772137699618019222159347903197485541239721146050301309826843316872167550914940505493540882795571593177548173278799653798438086052860691986272797555602305281027896210337663344667656574584696620385297329772563757727614126969612685549182731969567002769136525870661466967611435833949800279867993077398805773110685913136441863864752533487467961801813191716468041343739862001500509445005146893768543990192746223267561510169174951605729097786484998616400664575792036530911836304884878696270640834503987113120740710471478916446685247727770291397445188963963696485848543916230764669397445448682051777131887293051928127166568121033565384254732521562605767052786531893011218255071715146730228466404849119168003008276474026577212783371860011047443859012344902407326892425933119248933999801660368322080947450595478207641775658936532130267938229238999421966599484427432113934199916356241964942186420627917419901057520836629223203794223659930646722659787537572332912826810236464704881675178524325964702713551484615738978330580132353845008085144145795719498565084573359552763947477155011339252860029585529532462092174734055029387852336428631926322257897855926844144987186681540026696585503117196035367516129844637735859874036798104682456489039401867208452818434456639278277012803649136091967012918216280387249462394730370847521100856678152490043020849987039516946620143785312279503567276330768653581008202963794570602215541217851666626785860820285221028116610191919023036251597361375262890712695350320196145050132320192028640489929991599666779554872858157104963972834405636088365191008340982219579312103097036211271002959632429419342818680322783782525375703581434548035379608855411675495027300670814851593966816769475117226283972583890256642095252314148574610031235823674095426833645143631735524540649738340140389314929602428759987555195638239111885399964606637273520114417549080579712894292753686105269931428966263640238085940914199172521528448984323394808883649311425479511877202302024868592369965660738739973689840788693360903363927351178352172057416088214661096405666903348542415539481621340651051336952624580240300676894531158284757729066617516357480167777855078937966833629426870800485912796679599390975116955678692113068777673327603250316956515313059679195206105193254949682518285511690122182967365138527030433811233967492396592174177770716051398729576695334453328016484065198107897307637825468039629624788047295858484771554906839970848055435447409754047709170109802793175832871351847274053164676416332520951149565554775665178353822244133268979017962672301249484524945659884017602502931575511593184518517178816788391123675371800775661812803432715959738987306430519917916392301609678774853317586432368563683232992846588953593765460047448358796758890139862562209361103200860033803114813277195116338836910851549033865772329410005381004428737630055948005070437519250475096912979621486117929697708223950259179415817208188750487427196758448587133691947468916001390380668847500707591340208694534431604022969503914422496230859752060713219178114150194091227135103983055387568428268492664774705131367039619850365711336553612684163333288987279398652859631369835232992755981820085108217547579051469871302138388754871115757548509939508551423882930153987507915770759516754023763380144079840543981449459574899812187747211136906398428555908835574106937028033520388405057541555406693869497790191947209568417787031093294235739258472750182331472122063131277905730034840542808396700482069937916559076961589566300355550981387777744369443940290953097910939414275670940228062720110555327101235462960225068291584197989054373786718088103778809641387130611074257887984019577692318075552120418798429510074793458271717322995656670523375539235076652714839997054836616354397596615354786970500315605151880522182892893656906267488025940882574442301742200088111198338809818581670792672969325016229458235674271834382825652352093018612549650853667025463265463988306949293222332572638491670975846253229931366050599350833138655330901104168110737885951046928231039705010543434114753910033368148015648721372541567235253221265870574800939405979412835240886324340686482456712198350838071883958890346495845078121125096496094409791900590380643901442256177599581785445575552041242048652883059218469935653066969999709819133124797439785484039906150438820495168866001618888570758654769444566143563073008794768278479955827381018883290768501499140456287302312386820006516178476768213717957763888483220800108462204130553119413681769868612018780047462466725892881294368638136473227550946729947822594981367636284034418644734475037972842626497250990094073796630957238251070576868352653573889382374819431914519182193549603526552395177019691859378337190538157510314746399468015103341832130498676473394828618948655850208397631112421211575231241257468991165159953151328206406042080365616466657009630391874787792755588692705380785746646762143552139081496866637860613352001399003540649913012119806233707217427077473881582079138831142223246608551999727316245290975837314477215089290740501436800454227878293621697488724897975856789611608271678374320748745886308901495697122501431690484634540644905105464931042524040399364300686053555134726705570929309259984228208738927834649748561610959572338302443684244325505260063104209518473736656591241908776959201186551852113532213321892248228458844722209671564735987772563528047006966840793595339942664169401389144898565824007618532996648924028132984997837447350264065700834097504964984203395080476379543219685345132294284915197494904334676654789630947121696953720357537355312163055623594957599869337776459989863286657207251860103076047366269363860211097413734537473189747808324516005855310436112132855106644276499720622190467454986089642591370501066360589754335564003914202824037324297054611048099156958855524324478124648391162011866954932672435398686989208664020426597762935578906710844880380822479358707519907572082429192933522368698535745472976444134007187608569811533193375477572004375376900504198996969240882074629495289169459786375817877109004267232760080750688831869671657127181009767333817684904731776640870744561827185809471635919284957170775416307512245913042003863669917682371850362140958498105073322391249596925054183969289632456330440871257518248702245029148745319404353798289259018925627402512592430469335208490003246944412508429342690242571628358081753830508040001319945003354871507298399482234142984306502992901445466486000568814242537628700591882182987872016249564904184700793954759315247801213174683299916216154068861145275129836700466798933203845341810826034895773862059608544304843991346597291143178805977725843510492456502245451764710878039586796567074893008414720186891823190639675414890531278062253329609152780462996294953627046091151312317416346711342835535340343730684121474298844776223712854099204133922832856297155174275546333852157744927833864934503118280943115233862044460538860916387344620033725627175057897050141188815042503045453407156220336479278447273207854060508335812512359252086036653916988945874027869958114986475013718415388815100104395126137304735163421846496382332931734601309114764930929334164891277160478394526856096468494155395254759202368516426876302722873076651940131071025643131749890580128814311815553951147334194600725094338372260741507441055812826673651103621371978602327119027086142625381962651287158428302885382892743323268012674312783218438395280189228469905883491161888603279717030011999040117882312607516898276371382160425487507322779609754581745534730126585270216465845667324615056525010073312965911350025169655261581779334801347080961186150351428367859628195934330922341723709066667480187173747627750228461692999973038762923070360872825491327239128705031305326580192204852249052689661910007155906882689131689491075882085152639822014392595471270679268313027111648521721778510977828378892623528792836566036123047497989600032030890624881650121015730983884861896489370770993848132676349353749354755754366041605595624877675831382056284007525631110601351088434725484323710937123388842840172062343988253687107665917025650049098342181727201267265304379554446112836754645531934966271233057207587374234307730667968264612958495321629410539039952824970928544700037232142166219654593188627221438943653673076161519244371081076037219104766298543621471932016181800657519651830526615803165671833059156795965684278368777733278645286244299473731246906143662073122433804091685988798856942821411768328384465412721605199948828457920896244226234658921935180225247634476741319855972193546763176440164958911765487433141218932328253286553393231202705364603594214588678938862444323050016086701074046285478571503913879741637777032518323136603502311737568395555037484979774232402440197835119038294335964143343339587717688569747522989291620319272848338513367803684112345084802122540911976457938293504185164697266522605148156421998460763886909866293080197494281840631402994857271479356206662442160791527460281740064949053135774031368733707495108193007946735480393526460175108777352194283985586009743239131003918990519494817729301350489685482826497656033712168622874442033019456301505387904143768179815883277710656136353200345092117042018873578513925246609095968605173102901387393566863522239460003649845224036082343659097741996885424468008632795202655894916740046053112733469118327225880759714843680112323709697390251377912235638249614309879394540622725839749086280148394428355735639437855214011630354119438455624843162413540012529216128474100722210584650844464559967722845921605000708749118533306032988703890748655767901847155915173155877486503729526151755313724187291739768805402830538036576124136401420397464566621874539592578976527398770337452844012307786727532003827800046843982542964638800561374266071836369209398244004719603770227568084318637518853761738748753346436966571805379612335431048558318767959595230395236898708416025807017756739131897990381317755496003215589774687355873630001564835353526101707924643852604268428188117451645361874297837265247136762325990781114361563856877693732835225008929048177530418225572208353182918762995849795074068753917837131565895100851914052269669385560644059559200934692107433199596137742438280251833007173070538488010924067818888837181523910238646614154098883769633820867847422959200000799980007758254956047301511582366650219260295149399404059472453813111111227389354952541794421325533956813040773262857238189959063028103292818046777139764577072256969323694758578459594885165207033951160393654892241734344623777464067307472269305593421333166413425473918690722501625359058649876320257239171750309163069472479709294456615530040260656706155194235445846615048455664767908888258424831963404313688535279142095710040950144951382176678114195454097995543774789835402978361301464721812569755952767971968476108085987610157962118667446655987208238707661279446709219248658388443578602537992955011369780063630235732125704748284455939362398407545890557310716219368417938448329898202858854832762940679348784991955325571268071470981484232398718511450186521406106195163856290389535170770105595737027835101112995200736355792553921546938515367150566328750106953304263222470440125575997243337287689689843952038690811335954659028751120836282248776353442353808370838520891535763181530079089515961756412892554025009698737904875124459311410211690601967232990347051447279910761547569269145573302791264706711983595954635923582445584727764981960227416669742011152418173415496547898573187349426349594139931659389168357633475937027456272457385379157173097779070586511202898338025537283107402434712230061167123375868810057286469674048544974888462270922923136923633227990339685661998849221149145184357541646642950744331055567346953864534837694109926280758237563005775374769671006681399139912458886027337529366364120082397964742236270068922447153735177449138795264556388393357418056253940320663320627903570156852296415177550122770656301088239452000886554461666001185094853177650649417010698327517835070930445019674965031658860328890172252524677421019222524181174073383526340975145281399976344825868271061572023406628548289604261897678944875179105956384569339814501648645039018954216571614263170799935277717887460650528404401304303094524525883224987645862954042238922572918086384163368441291313936172230780068763512698323977026741562280557952081402512613199464169352179845462041911380707533267530089038009483706789775184001905458105485631420847333473069547570072121034385202447682282947799086143565953417677979053772163160540511228217337102630900852260763074459975246287068070208397349287526628513301879390888929735749523878069298589527676715433681752422248282016897102467189720793522899279051507274020091298850291149688053655060439883607585844498505987521081513278966899235671569056209029428192995150731356279310251920103660491968145648740615486082967789515593721464631677087713220823405736278869854186994124743326614611994499831219688071346702164190781745703995888781192944260243805547254037093705308201405560905673483161610067859786032026754425993082820681543314832484762717139510477649725127592818759836360448583443701402153275390887927601288605112682716938167327508926391470907985136988204521407102099784599080481594155223875564075168624622082066312767437197394069466431694188581301602697400686234661661051885870185578719974822444904477220892675794550751202676383653277224678929543852354126383783424371287081532069280975312766876043810341949766117808654143124982680564597890051938068966852277997739387865441848380223670259269955676404111038752196320170449774045693113019851223760777384292506108055992206524078908383833499417471022348120292642216860453916670913489422315017905998815164109955778198255826518834041292397981581667926197102146458475600123445013901727445021869030984431143237508503619333015315902830811944203562124130552845702265049633397006432650099041488938585294823749230616901150031683515421368823398707488087360480480186676303907520172677617495805325193371012664388206842233839017310283576742257574340183814633439235752141630228530190874283564042639516261518257608535336948523663251069480279662301521923751518476758531689503935555903423494566448318875523584018144396429889922497860349131019992904389477846506701513811300052800087054600760439256938202862892490619648764465511045603521662157068369335880756751318568990681436642248379208375058775574376627005467402080321288460822348677118668582052728703776919135488982811404132675819526231583079149200579361152691887310549790466884743193047425031138833646037453982186242420617101287821379931229783047660207359466816255029308893475643669859381165665002958217671530976264471492108004529710181197416279522106420336648327958477680319974456635312486926979683185175484571663137168721517504593579914869372474480656795121674197263078807714172924548870911084361727974376611646300756955224153305759478689837717933224024548773295394600043964190377470055981151197151374103124034915776692540877710765089178736645500404776678193962905809976756340931989467841716425959793467316158353484886006395403902633563061575085270387380370525044611935383260000390182330676070967254088129490000321272592177879131353612992907150388864811685667768655881219933788195268816152551344625108062536597866709494881945590298844677704501060101555703918105021178075345255143715285109669702053548145043663858989860030121908523975505207652644694830120758519592768660093695322332360708369178577372814803528113388311863539870251760848994252467050027570707356978648394104933603804408384151385572640393074304912206999114152333672154718068335046134394023069069985063084586834181086492608017678777293341383337147430873279711299547945833132865141154442653094845272921878221172518272687672782397333367246115036008519182214362614667040640868102158266064277285192572524956607500207815918426451496325482722810273451758123165730447660007292023433627371106084525926400333993269760542010917448356217280138928987730160565909557770027864498412886301185210323813226619008714805345089239558727991317231964136858100746858501880724935248267271877071233106745504255525487494842335004187788851773870548582436161484165134301623565803467981998793098674642202627967079376571694492516605262719925566126993735643841268416431755890923878657281785012980168354275488974119094483803791980290461636040570543092801801234854803381924806402877694799274824122514407839817377944680501986303426634808323517338537862743438440547599542965504238416275375541239036628019386052559193624761519869866950818183954175470900267014016628124478103619517624166843862979115612054698950551092681263250418031624267028968114166396261590373191637821555172215434361402113332714911402416036445514692794495589472552437019984811612780255562588049310293780088683559658341368750180024241392370187760668454616463935294057669719036635897661836000578184725286957224408534075615972443919755379397828233291208425766746554364427887156719457840639851033135918415603567908791636103906371584467447219136831511996801427478381206382790587641001600573405426994028498848085435943136845850239898874160159725670905917327528363194608548496369795649108603562711203830536040206289972950582779577668063033031302535073588999063067852069741322924353984418872864760209053741184675125839780845317219719306000552921051996437180095256931768592127279462036291849364074639007995744632445900606250325306504212107714328333202406605121927978924477893512514124378969481966675240745752558739581501652522764067668853831227225577822327409579018935620663443355364019256272348206288361122619120818467187328523691282445752842158696194264187205576063223313703607525163991725420312556631927261085753024087221829569524246961824234854144647208397423547456865982616625626074171759544143340323236835370908622291149793085038821667999157415371265083057548629236968960537587380653427823929552879691666929204088531752316879083173913103319405758890692193785936715886212303769637013632287485327040369585291052505850627847279554033311044963180398708752463480078761974891721317206456528623653827299069164936318199780641937246185286978938400497343527183144233624175598647892678569766748199598335896184400071113426746401830392468355303358970551234599650245989045330139502468863135936062178344481515658246603882874687497712055541974786567129997439835930265218079255381745624764593674287379280463895929383845188193880968292115428165642001687092303950662627864353434792810698643443461494806922397296374317183002721308582158780200530701833065555109223854151146567373686140552393397117249103406114323732455788870765016529174051872534867712340995399274553804257279781089421926442186163005431811166050751734015721243920100235874044924497683310448017542246710723115892827228929738123080181482591541093830674772742479282705363320326473291709408746853009441003966627126281988773334026666759608156079887354169792209084530204471784840873256866656686402583304787768946266307871777019780623538845723647491028653833922438921857220426555471960461388184608202492660849442590084866121132012436383176815092625197802684224657118974793228140717920731941896606123220807603806895671125955881953593531021029768498538117370086448359597132271605735931259685327517159312378602263932741529872139648887770054423871510062883890851883326663766453492235529011882036652162199144194692320603078263563467928754695424061275395210911891015000651173840842187939176540959905406015685683764927160985631301880118779595800831609141353799065419307731542836664166993320420854062479565607165583485570532360525706836976753542066180888474554693768407601778201732569154347273078232574708739280337147829820523560618967992345259794464027337901467890927256975611319849922991725499129502819110446693820486112312901755168869803943163646570101304974007552107747334483921727206624053032566535889159692017024922866034495207085726093219456832341974850439814251277693110084124202271154863909004001716633275077761083075711051228883587075248405213379015211880335764979404000838078078937005789770900758780720021272191659106236632045952140198846022791053434196873236313535233213161595100797631275222974682343025877832105486941378650795885522770682477663750272884591863587230401447437487961397639141207024562542057110955851403348023740498902185952714144556956737165551169393609811225275044261006967991057061111939840368376205062134654559412881892428748166304706200674633771488608771882566406378834228183855617800798046729987069441850604737632065550649006539256548237742670382485004445058165866169557168334716608126683629826852176747207410183306502489838050085502857365159474986268271239920938351186178873720236764977515570061136843900533793386281454647938353231967345596396365895607217003147884484308339250016090586061914841370603997127516700822686793339283130372551740315792757139460741320007132172043873221719185645107113082702963161354490356155440491293239575211560707956874341254059273636020764895516387304802455068466527467141519266679753771951686081717596951508056546383573025950563075985890220034016095235005582697703418413317499824497468339647836928290520186576180492924552949956444576923403174385044311295766419088357621665979343996035347416491649572636282502597902030211388988176657914644856850846787717434529740851929411650631611808004632239663965762907433717695279379087615438923104444613804151259690228386125155435797603439923204851738685758674315983018429316765323798906173487457074254797758283802124356360110217926424217964094692500079974016956491612528823766846099913833251513880112529578833474299667090325944371638858952328295005496315898449480988485714511042915843424619495561986212844647654352062884779240726809665494146603419877392482546620307858834617859787165909830498636133766590102738153474361968704986661655096642628665351122314138845152724421131942944555067342020745287911139993403802485435944965753306766108144938967247624311761945523056679374786899230481174404865660118978236260008749700124392913781920427018380347345752763227298507304246481936691734034913873586414415712420834193580460815501307144936952813383578802508374217167745824019970411478130649314462594025939730731170858518786857840798917222859662135967615198859852453574151985655987763037467617843022907303188091549581277973669413969317472329239303091956926388327062351936335166989860899752352035402880284428418123407498620012420397377785770870436079127266226069663031122172623385141437991337637616974808538549149810099308786660353564666958611174270550230976305483939330135121340802793086278893120542240362176272685729844024597630299444184409793694972898528900365488622494438290167788823398949558347156188534298944762291852413683983984269568603984657684725379688105577445217641417949945866033642760531115561875984297936381005754463144414113864331764349658518693541193261883744830549648486480182845120376545634900452105876701453340132499705674037768563159764569832621699327471220600036838016249363152749809501189795562079427338955513049251546368785463730634554946518046018739116991642017289225108316031483880091867243057608303613389811513018187479679675827706735720679417479778194496065174120465593048889709759074257152585731177038575197863745332813561430670605254513188714796661555274274748610027258675902181422938022270053215119067317389027186512560454567096908612794673768690921041459564488408030875975342355889354847511391801900924409698818627926923437678675633627212928738892545197129287352547038070435946519821199533265186863451974121418226435923669256177194782533812101625174759364304870927245105109462881038505658572690508598744942031043625669819699223967795653632331311188951115257915114129594519378225460938190587506172624029460681868834827749112379621056098125128708373892470735756514671485820721373738366374180400785061284850512991892190564158688096175256130780748431117985910973817117313359684837102176152116216799884542629579376954812171950423983377956083849556995243069194873547186232674545908149879020664997507568664901692602849091814073064900687789731120040704957502393158525404727265801729723849274338582837080076927341797718330702328341410856385582458626226658822207178454464939957200134066238376969161700237109664263437768312567487855128303285508745225995250317187922127072642132008659049326148915521984334943714240514898513496568888720256538979655110790173225838607996104973028477898122288421811259957031402932875106888281148226472433950599407593204970111348010647658524900400690147610929708803864978085772085816065603774235855471721894162277679119721222943702750296918057909823130490446778509300970755941017127240625559523117966764631645054763147862577157761020368867700667302916314610701292413071043339707820382138797396420920791690637094067797114607792212577192198420198111100750571963216242143733957768886505411817517014185921901820666279139844836128495909897997009160721852315033112545158800710133221290481344340203391486532819680208378175439969822114969259078341188863840997866879777742056606577178736970306817740170059517625818326602139149233153265830648269044808520353173412234508734624603573547541486038361938268066268642246854457717631842649687264643181043688801872028680382283707051230734964014732561969502242557499962148325220470503040272220862279809318699040547802840146890184015136809955123979928197651183022816942624328487178189203688973404982915111551890871845136284416216697891626016065277887188259653456769563697067471629421052768006804938909767300726294832586327713377541206816537970759039170907490525628754380797082733500523151988679239874148389460930751412693000254778131496117491178037305140308751385604572118530421236823734862945131238347145243013366508592942030395834745087837871579012299216940925096516400003875148150686975208645915769222751206843242242341485054294463894010001801667652932435232114353251614716725049085725152692833429576983670835653199397785085734461008904928035832499824355694456801359727886806689678997749434678517342076659219768597684956943448949027242817066570238103882262550011011638343144647808172210701097879565600162113441679855046903455631119934518586908381570003397298815921616651159116524635453793241810650663411513613505618765440628629753339424122414519487444488803119344197030439369107567002088839298816336393283212866457091860871272383939750382282036392802064802542193898084896427173758831515635716247814323105399078408315707627843418842259538386908772966888937914170619914270516238547630763417365624542045395959399741738385246666600719559991099012373829221668005727318452429566645190722170460374082876303494317319102410868039244692790873212552930597182812110465045788417332001076423613941535698602849461858910767680889429657687049563895664165308292015753142439909296249488907765360167952150257863348904000502418966276979676505740012504489565645851562244437912816724344046065440703274615424671095540810799191968903659833660861498184921548306186418952295173556814589390462576852618603762280058867032401863755654060276881672586979830525861909889954219507104602544269243430363139778841363498997709233944928002378348062538056902137410700437459959694241044554240974477661217681034103853670828229419310240778001831241823642748438624409320534684476910376639379249851695832608192553731482265024226273839489605032767463474354656056192034371869127733885543679510297584003217860601978063107947787630397946902074338189503875446957603082471918720512756488467726104514192146023884358548525612789076336821037642460653350213898913120386351518442986154686389862420489341254112663915175636400246910050107041469073832687023343183616380268975857934491602686238598635323794021169771575426217436777326593198768446095555658091137104052109824487913611259504834637345930725877331985949389166794285575720657249023244008170043575971607507432762443751970396580021132904131036837540927934104842372202740436883446794551863377954070549881164970822915598393393513380475790746949814836300671351697219673448573410790742805810092017392665383997358830595726027942512309502431899361541471534616869444782068601594865605933729708231340676689633235807243598668004084660133059931645487596827921412528224585914077112322835712630537554325731196743045581315526007400623163355978885063403990605502119760395306440820383253480086669888600324291236448688858957834236202761897046488746195919233824704447664415500186421585811007226034437064304002148776227814514482413170936054566237293169604499124529337671118108694291020628016291189638893089192019242486540639149290081597147210969578676155770338522715525467812849295897050927119165665179783254236567707669605641638696951300236143638551139417767645022237347642173727654091731916108910559020405324483377138802237895748602563819181428731267315072353204183547283429649382920975517179119953004554955750727079624402435277756317230804896793542497404155631561991442154589818185715556005666326484844678169796300619993720676515851225259407566438468910514210618329076039548278445668327923627152591996546917291655045109315272840568872320484990892985456756875405634933464441445543312577673076635460075032470186201958612045832760104646448870112040817527851594199069658296881775159764966054360813935893791019641119404575236702151057368342823215653260176966345833433413650700510824201591112340669933958184724432812540082549043456679615966904258968203246349771755524775039811471533830951288797171048735389752587228840338708461279945321044019055531015670423535480021923135436889092942020896829865930911094820284729204635403449052086735339496994736267765225914939421305944271206565961638489202990187769054234908963443931886601884366634370935949242299688242053963165116008747676787379776052327807105655913835034067102157758648983060562763338432113459540937715390720550292694118381278264046470355804899063869617591428967661512099297985520758982426433716822082563978814443230821780856321954848699419436228447839807385957147366595597191297663335200960727026539888503658493842357299111065200903659962477972888889093362148710204835233433815126558767995650970264408537701840737698507033481697085115978805894973264390167825558162867707956257572532207505336455358419402345344307815920041590264441159492523057164121067658882296378778175170944787687977552712926107682285480768291431880556242278066952170257341559417342468609661310608615037056661746185757177367052645716711853087059342711657085985429300451069884266212495846657184521341906437472822347583073197434621621261897229999653380792445759996591196035936721086302693827396565388068525389994863368045960332714124717645261005795007675357536221641407542036242226796071277568779722453111960086748289822731154650624138210626986432179242056576874697209179252015968624813953655041321668303739912212046672562997066743381653230923345257794735749386210512138394313221509333368270712609443782558375675266754466558783089052287354263408229336220945011384698813608409222356332912259395229578480598911288407842925490123613829860374812945653891812503643487301412818583149081510498162249152942963283338533846903741081576654720287408977903047928090065984742580965725228108928100955926594898711736025247898626302394266512044406395703416528691063754481082304925388155867808679978159833674370575196780233344823980537548592284754200165852861447908773071421112025643498423353113444840502995032696337895000050355450893196748960758201905169028858071815705318525527764587933009946742309248520778080376253138605424169630155250918189135509769854812541933451562769990996779395262086220713856229472385545132734426804301091649517158244174234388154749944531068170527460779942705461417318662838179728279979352990987954772190357869640025071289185153094625722210699014141163900647809501706511318105934687078912073149474826156451997108630372428571952483010857324944832744198540078482413447720715721921956112048383272499537704316034838343218013249282277938798029585761957974511941870973301727800291013738245376070693985465914162296126932303541825027774273445572680502091251538961298216841439285413618731119494552324274665460625162751262341543180878192403845091128971176820376652573847718498934506576638539147276347435585343380845828818961700501795039998326532262312031559162481202437799884326906999696680916317661203396779771586114466141581453339151408190980624120369982898858747774925499695211959746558491986574727971968653010875344934333161978988754712486919323810398122437278541594824385233045233566973434292054134223406305781783766181415935776537007790292608596656950162589154796973479962543984439205993402956183449146443589937656211256671048354051259107511175217776885504228988072633408378996548194908860194593453053794938483701164561348988138657119186371216573219033691537967498984648660038773028089359730340081402410228158126573329599908209554456149206793585212283830855208204746841324702550768395579822976152999790689773770916464720719033283904893734015811376853970256622137695133298092984453536998781053595783887294547167427203701988994562675143032142357024124746337885463635821127687620038085390227352217393754635739792906526119342245683314894337228416777861112916481572262981201415654064406174000202503302470543254526242717653107982640400121647221587897101557168521022384413379256662444435324841615243366674039835031303335096634748186734055985770442874791764433091384866901781396671353229879396570576785278976931096597329655399183919246793861930917512224560460061159111889522830153513805509471822152368356792259574700440266487547627240116171433352314331047281589698221154950494615696892483127706934187472446692698635042208152105373961442535263477804796091896812726486158510886595185831283794023639324177152836426458859640505957976382531850480953991196081216916385887054472696426215388805032954103535156265001877822245799079201742694854034865814323143449851902519859370145570795807853971306059640526202779830729920005267193579452908058675731475814823914983507444824883317007065308827679678556383490530973413051918225327762239602571876113068607744634965703699963912895857930464363282893469679978699480930274035018490016363316701469203016905823988445452431463653479023914608942690759384179928302868014011046135103502199038020928209290317673371973195263290801837480883002953853269638877727973791562642553305953200594438709326925944968144792407307688058907215641517662681956401603199698936973585131922055399017114854659695908210117280938371302575577487298519579262270749790435968993118500058847384719676348878036523030728672595245796249870368128337584545240232777933093199124975210987294746966167224109751502326423034902319273160173897293461027499911612434638112227185002911830649363405813672651120213253299388980338585973862074230169939077455849241702048730339757505014911004574373700362343786589469460288696078389159081921442841785851286945311266363508376205858854375630674653444611790261324003134826136433178793683353062039841606136517655910799351927774887883846572147448251797579148234027066051091940171242396661231868362938321517654372879459781262294511624202257254764628329624480523764376682810893678410314613593835398056497102228208435590690340740530274272742679698476836968829984151495178205879412098750577317999710898567622467585018880325391032240828561465533531726282901387343882235274154339614437673842447175480831295300728347577632880650908993321426447712302157802788198873463953094760651692712403746791956704933539450113747760972159780457083390076054670284268579080270086776351927971544124944147512247239739605328043128360665284419992528033295095963840183545264535585239300182613854563493639187006568156826480935759494375208221239538754758742237420280949037682537723282332546277344803017587276927724754050877974754970565884491046947530809220685141039560066108222491651366791498479548451039256261564401683832314001348322572900667767536359622373218804798538553909589975436642307374478182142870961579783514126431232351472893954202039571570681132391694919351709312725676882653300874544076536925257315138313998732146357362469519629926091579093165313853748346988057611083846521907104263107483939170361158065236449020186290226558540927851368056435184687663947652785750953996370455204581923163013860722414185737602349301162148841784892844305544016041224289648716319423844567292626698432373375672428165443686593883977561562976105517486062146426225809048942236870233889027576668476835214702970496922091930557302908259639002462891567331679425046242386351896733392898283390717874798901187784470001316243606494505075706574392716978377703420206002079573113193639802863765185567675913603290986134501584932982668625782303873353410315279797582450687531884493345104172127025217518325185326857594319072754689283585365619922656132282732034178478665599173312514739379252844426442438175711548143952446992364240381363033926646860112369668477624880554791699736202775740076300746532002529811417843616837523944493326976492993042265140951650589442160164616307672163862905712444317029859841171585931466535529613303628789594830592660583528788909464007412642167005549567520478623902003844755769344173483607729879212067543556815673719192771290750605059519470651465122654040326383400332713967273988456640593261989340858643009875619628388028293217538247176646675367679807747784806638173955813861010811263460124859942954281714637463621067788080400841311339955907543706273594239112203139474725587090324148400048980372614078756898287270809487163291469250833725653699657460137258689899363641641825800882262467697891635696550556921575236005096056324716754219434970357550573547728157805526074564893461825223767386848166528170996207082945052328332768443972128708559911169679400986829118991069555795554923507779275294963056846100284179557403181088476689111554584265176575171913309491544132558347298465543710153137663612862306603887463107065233816107057069162667976038834522147546387339333391736127604708198680250317758218854598414505742459729954588066654768585657669936972250292656937027692663218091747632447219000093469165258482549834080738272058164919332748951337207879453293515623128018743361844406908991804610665814977902873707291370182821190205070225824861653654702608162905879663194476397085664580326272719683764285398145516067626438204012166818852176030632880573708335169953564660238817623798286563835929577241673755702184011374957378246894770750692419623626393239877959506978807426807078697112562709220972059331983285061731277844900290013034849929734923489701815145255004105251934413174730970843275693013499879242026283939906452309147830660569422115362925708637334254688179637205425915615147205976046240109010038495198759143744800722423634676747672184747687369846087426150877882501492959805177646764970357465694469453424071171885832802064861331354065648774158496868372746123173920687947794090346289641909235504304261588800757706362625380321068837891766101404570362086857317958188696253990751907888285325583565930414369311120152294583622374972317126403368259193732634312539374227705642830951123747714342845039232331969517571965914447669432012845982210421303593103514040494116811905756898720126824040078192667990778479623211614114635627814576187835424336071038255832876981185129566611581409001648903237966339308750323205582431605931698786019192861626349218105006578351066453212479146012542830671812400962361482146135368554253003234437261156127945900613771563591535661022242743835819724791501676348389131962638571270951671777381196349069290693309300626046938103975936917415302105550706484745129820138340765128441048817780402893202269516286229680263629500037899936573033958016814672898991393264116642945241750991552040977463702587720483793362593997325688031344973917792388576982020000253048313403240577314785749799800548094501502058609885096029107330931146435372047268150772545076913920500294933688885396325905215638806162805826908727973559174055789307896190298671300100742508497424997084695233438557324866588262644229619983065846810424046850821619742277208584794877931327696501277466360432663484215195078323222535729365329337147118158077981676411730564458981550140304609268645067170342015616835240809974348394145983344554089512491564125292791095789191456491979691288754645667853849811814820111504772476126495880673186915708082381030314132247993678515822033173847826415428552742824952301990920056581438515450481369111710818579315804285415154156609432084103585148347101903017504374374418967529648040265925978689055902490624491702533329986776514119817697829763777849656948595638247503910025294855687902347751850023023407391102662282679964622465615588768523953647425982707010955016479334738850600164413979365037598857704641851025034158484852484458267795527513069095093885935793004162319160731110640802898016959938504906078733280546393909086969023576561778028229690410083989029444548743819313891612214851387430748804806417470530702395473181687906468542967592765720530311440252479411972475271164533631659773033451220580700656199496632904353116497720110483035859324811343380279262629348239296273408914541974421270571082190683236211910308553507865855483062632467957556452767009317933504212941604446059559261872923208661846876149244371033571094270768057086262624459257005969015592099579984773768590116249132767938834386572715912984078268306657188555999908021657438699216918068547373101277213194532878640060896364600604665524747764151213491760421140641559118019866672382898152369673488295049529820540368362475730303892296721337510361716458588026411838870875875803000528761578151738979146273683243316011892185189270998454595043349359503996424414270023506374392936511066390357154273598820683507054377948777707578547071393278167252465580377788860918831636926480999541781726755242879116064418090975764162646741946099272530316954284063545059653047153284555664173282572042203883285653256740511135282941143903864882993144884452041740736975678457589594872692525877648556633960618357345173127082749627020539585100565514107375886652884647402839010414786134155371737687087844289478888322774120321886781632928704355850116995095258502868619440882125542760460872761812706625858869412502769574623527246385898775141361768352036132047569063874178700631702805772870561890754174558060544001109314270005429287744854466981058260928031360198767868560108571605450437027323087887839415781316513575867948716853148407716525794215930078990066085030715488335545613997767150836450171696505021130571089731120933159791480000727207092231729154090242500674200713601329579485295897193101308274739013994605717747093904844907700563235275246910472430198888992043079250277076289637775951315941549389606859844699522924750297854556495962548324971451659530282963414609531960119659035140991435129818478315204737649846428251762325165833388882944853235223896804345645997136485094020564075526102504881294698104545500584452745797150124530543904188533577562543299669144378602674563145890209103171791213287532148742472549009056675770035988716280699287129182802338804367438127255021291703395573853156557628835159773286144106423249672295489848614891069604859578619064390595704663810008146969343587625665267720728108728124622683435745966702471708946035962869347709495880284215056241072398768336381278548332898431202393134727141643516989131894169304763246527402910721572034715144390513031510882608041836507247357670484096186546639885497276773359201114706108700374417235508151041447411728733547161920752365826767636229523970785149924922177904875624821953983139350733179020928367164172031678478860954116467650271742930158374192239885865744314830751253004699929079893604509409542120287252509244593861686134556073790386747529732349500777392761705295145824272339487382422437494401332294663458310268417654298257051965584128871548076111393734120996222475459834659542711147105946917770698701605217255126806216885028997608592889328615252212699395194852989533494568319972484458740965345211587950880772156532142196628075549622280721207114778266307212718818948119811709734656035016294271224815694792582105935266223074250050401047593962773025297820662709685681622753430734636373653286825798421134327974688611121975539148955665024016385220849690913753133392358487000723941750777363302522958280619754683004652025039267889654349984268693068113050038650621684976384474108040729589914131868316711378007289453560252526870715982557596243787824169428034425458338262425133418264307566428618258796907146444851444443706221618947561105195188603271000816967684496076968184367845349252784840935896902910537287892713603840802881106262019169136835754759712220613465671374749779503090613082277934890223147991429374917405251305353854901307828682931552527714838190215388441195884130660395075922860786179930098349374359566483257475768793656477821078246027381101801480644360383558276693645429880879350535097381960649875884151044125822513970310949025176021735778086474252587079565457101042996904522674912446715024844442440744652123704486178781397702854837220329134142495736208153107155702132278992266912725581186651502780479377131543225975651664728196677754880180252402382280028231730531767205394368671581073617769093237038653283558492429994479908476431558123155391177875464956089217435787654907335973798997126939879641053068872826050940529010321846382912605125728749609638640670338130940569248964255881597075007965678968656767434240018664714551355491051457071684076852720949874081801900175204512238969806495859117405983028785962663301967902878003537248402581021576946784003664819268693319821918747844860476806861612919133233283149157850386376735008653241288396189959045043101646513432077626746656304558959877790619465448447274492913014126034407917289820454069917339080242524583897856264857559012148051258773267367732289602886407990677251440657390551745892923751750027386796844941498151318012398687693106473379603521847287458338453386197239924608133202118647289821693880593292776154147865738578311882289701272591748754908884261142300329060377292606700740210100132317233092546898749491907395315619721477861736742768292225274544534245066338414187712457169415217697892311114006629736059035293329958550388397170543591992865077824908053858582041528685448235720710501358065408716108792336258475954003775142227493091270477311059796786682354391812404637000250612008262287622071313370295184685961313953385866849089871400539519057885974571836333403705406104971058050817948091820309005145114107965060089504359445751820412270046509513661213035445660446824600124185683309442864251525164714138724949915351040090385299837511440321571041333813827050075798009148924804179385817691289035684374257717536636560888674229699950058498409980349134754970915490624807363539703375496388757821723314004900183659846205840608711954722269162575202688028706908812401314779891125312254506563235700555977367026840049318036945465890071291850382306803362909192735116748357136429396765786988983313488653996757672437028155301789132271179290102324721246302733117819712373754400323375694935418842045703206758692401334958923299597614938257636955436996995752303598131597655306461691084420735122543876363064292966701784777944132935187469723152629226126428784087237121977408331885943141869488083145929858600927880250715197609616426154101042029189205996535483411213717425383848864884946027323926576024045622951727203846818259748831152305341138966162583998158173752030744924413768383384822120308919545574597975451596122491078424377365101994035943622379486677418444286304821158044564653469580640783710961686516991948715019408816881626601760860126512875868405563633585855875280778886369529968562347631159647684607089373788562503827979261416626985374357113446593855278495377924307095807037110376969793301208672298174758164067050058913292884665216233894469591882426865829252290125198308574985739458893037541782728100518138349724315977760106970338922796661320115034951501032681485851250538171756854900189928194760977715571706402396959921472901018849662913800227980673225488624420040692349777516178348912539634103023037623414944901482322676820593841728638790470094757026481093431582407518208919539318619043809735521029549756577104597592194830537664819867192118792008746431128599384988112356756954726317291408798261765555544630366473309656359837941632804048124909815028979591371164875592944744416537185335093465907535923700784639105812338329976889755614933549773229945534918586998082841611373442061838392649498603608568583117087710616443241041164186008993563868450329810945986427669396749676928375838138771331557454025443146871685122758739823915421365420696691077495662839458950452620741462074648212914460172108001015379548707032858317700686950193734412213199870449585812751662204068468672364171487667227241097711665238761481944224379354985590026621769180999136089103922027067911774317961896010927844078925618225025487178142894916529554027325310446547634004578393497387422632549544619493980945103681135838911881432376358210776704378505107990275101629480608462970806297635005529062261795708514282146810710166061560499275191807640310493893000206864015134587292412635557508705493032799906647317285978684593601617483768014785909524908808838337317168450522151478750331641439578765198734904068726556226173972947442678996736417466463710037679532410330807953009482762362381246909295749321792799993062595642184993569327266639778091225251924656627711025483632310707378776221536893740036075593424884524222841926458484277174619816515099768517182999607901134846206140901467636575171263136300141439957997533750595802232929318476351412087291998399735547642759372372513239658404397587056340167639598844184495377178590397468600154117929725638092638204212535977452546822603533195182385661301868498257587278162391914023449746874415039164486326471204820850500738585823723280103511143697508125265541260478730590929621397018881989520268314368655514971217137861671564900311714889362426294106844753019057511950154846917456615758856415518662980268485954457796971191454346701879521429456120176656297774961905503584835245663689987328614940963695917461349937762508628913514031087660938952219652298233380065921091392573613306190580136310274046307480922934926253157781773101345944688670084942329017032265243669053815189033623303726475558750313274966460143645423540020103690647813775647670516587075810857700180452388873898968719785325822031233568582634869627859272025479796694456369420834057615659204684977402181676852298088970686101134589295819100608543178315781404259521524080736867101684489265783243634104076179792684829352083910382712440508623836745269165144587016326192182903510184618165922285487143702814474269073763493640164984574811618548689822724658414427217037077438768910667331590390158698638256609224922291052462428576101491758798457057033095433949640689991688610235331438476647093091699783361859537690971772460720307372004542731668848355588215471808296326331433830134649974861534032409205147345313239894544127644521982496085797291078930967286825897872052162376248199821768884352445398784041472635313509451504774944427428665873138603021494010526553422047628264683628241130868841878002299209118999062483919659020051073080265534460291460234222734588225312388975745958852014068407826028593113400894920675588463812831654999530540052032696565572524745057962070025142590111326844526661977136795655035181030464275814980524648394467880450649819438132086063397773879087348197366574347141174659296067657676053353525028403613673129472533124703884339579936843002514597566853687206469624879103662241730266064722739770013814545030691288100816053937920777150786714319691597065893596898108399027106429460148614869371009830639057062546288549097495250559363666446093130050624005619684364298902541412986490778981452173258679492889199698880989894870299432345243986603269809853300119623570251466530595246196874825896560251962723051760238143969511941561291067502241047801793141027820135371792025521578698469648427194160625795675257456497644568591540670598679323527777890691674544572795124104778110743199674635469558582607350373070207385935522524815893286427927872673915393819104718326297007999529606794698160562476280386855008361799351387807397482433885068793844778762167243869849103504064656711571173906698962854929671610121030299908906244153276486264451578017599635320898390751009297995143128459717956200352788973646108798808658643619771455569272394983868684621209294411869244607568190736280763907387896770963815658815607866522391983106842584868297426556934898764747337991399057888886811157693364565469945758677512452472481449161210926563671168156564698301849862564551673363091537961940473430436161956991890497109345128633117851661614334465681652839843042833748126974542002423282026635148103417801795088634249306778819657031062395166041019323403338952532590770668207284482936070900809038189608775981178500060311968292897708052036531793414810996121743640558750962983745076469754812945922226692179089756791230367698488258384841909606231230083100624308527205335255996798596301696502842678347998809845493552857232280749342712571663663536144676309151295868853517361335649787604409600260853876493274661283789561514774153128020331770986606946271107428541490233849086157813351011690869974990569927664799386751348472820523309812520395446489805106930646473359854912215569522553309083698650672802377819277202464734783749106907886013873465261373067592758076816720073295176913698265634939100146089937926952682671567744330800494553742981036978768207954574525787804790568857678655784368038617280540990838480811239155893306363333334591390666011338078704975818354766187659137678253463339015102878243708044596123888906595546723381868442063042236354437568367363894373250636766790835395685832224103694432352382315799087606979027363323359083163488357974246366563069258852337913470571640278260801753550054232170857466729702558698141237737880671799236762358313804846494867308007263453297076732460032050296582627170579709360161149789004762608844697568354249302845551305837802365958323346153279282483058829867047552890152635605847726832975054303177375895135303630287400065124521545994130767565000268665572931942630108458704444409601533014587374223374215742121548671846687932139800005312061752538895024179401939502857527437934421239127419983414709492162898661460813361608081222138480348448829630675077073752564011336047888486350570212071098123936614394867067451376438495405881563055327239851913826700421440702038095607531523264452584673483698451301851073535429373684754681318677757858845547706070053061357186434270694922336164506046906575473711353265301269379069579097391802285047625725019090939386128672673596705200148779561414999664801685656928391521837209962878121004584498335126070811008819951073015612379948077197909611643100831379794191636475573521334912007466004099523264478671826768500660037875974918347922032820455517396697439218388150880968949270514105378096183264152457389461167201290384953345214278936797105501639538061945619736525679336241096349889484207460043287608605505514991823252975467540462303570647688795175193512472855004590791895671019703294506824514562091235543585563257087840089854524387321902773468412231887437123861588272469734540373065727658948242776874242852700498040300514405032587642802847278514012078068068116779699307987161476076312728727091588586802467414374384160446157831357301977847048586185745709580315212890294248308759563744261126143096519681450529956357368510621961855794211335040399325603257016522955450756883099768268414585943507130627287812629894157080134317212918289947049462406338613226133384429706728767430186345078410104136380172048669448305992692491519048226354507528515863136398771031400265611292342841496433321697759495437175916949074457098770412911775872549646947260458613712869962363968475777641148884594475512137071131081396759067150139933494827444727329376490515595593925580541737714057034466051865159312999081735273530121628448040469409122583413155433625183597254027861646260506605299756461593535964254982360985646957438435753377341868236878242784786629825213593420407963468310205718081955495096278059373130964212656842999439369630207744392460160893721108095235719273621027429839626840989610059590814395179733705878581311652842599356511788047023668040540461243875330685160365606366766159898189479069673457547405956346822700513420318466627427168064624431316177801426701909626347500330932693459578481283701279998485042508250327936946779191751595368121815803495927829737523366418492395231455705984703105414058796783002948052527982051454958325848445134163671472384679026472970776718816213986288433403955438032414833767217122795452102212864633786431068158099113929564989323425393375931851977771228160440219830898530252964958374318789588766765615314063588109114418216595553436009704907789663254059825614013286607355579670024309805890176770599653411831357881178250132649441178248415988885263919014228469374828738658899286010420196028062193531127166658686001932247396478814971191882528636730289368941160270358861185551747252045681631365957426034894090696896119155258583111561777480172345275625715619371438653100623012219998850824882183682403860766615228783969998330032747276005658154617664230831680205007230399723615766430196467673661076636365745712800644487386103750246583229731301271069556504726880461287134457048572218467515265448721872853848967448987905928474748471801383766050340666501043202348778210467929068122589761377060827652448109444744752046862776018472863604317746966932731296493385857648517676381522530538178399569873862630239808934826898504491943249115070385077864789320406537261005612725649947448804565445435532397914632092161380667132156898242323172773340903137833999443426526855614667410573932457224532773147059667149903910826929604420800434124456342649199125865983551465194627741219140844562177529307920288025462086600316051017678881810953426836476943817871950048151655200276908240009243808499752487000938388244456615018568143745596940551154208544180155036187678034266336554365630610914884589522370073096869263229179522176986699180488370513200006833707332240792298961375930842410684861684924388751343059792282749070376921217720184161039753853667822938768321894509430535918100452451691362447312678255470231438369647138509736681285465699756019172539228134613001937442742960403294228048680597733545953491395663185761574714532641664393877596034989681294276824768181451792965648292107702683189602718242974229868088681870006384790502984440090158084552178932382918816617373197075758167189000803615374069256904090347830334630294715735083630964053967297884608726246136420741110201383683407037346884313366049591355784900986510781843424373307380834703767911752741147599509349608364040217836992262811591622511451313938717994543451809579332081521154580206164279179773059387039951480689215993258881332847195620823575371823954783976814136203797818839703088382373561845055681003568199277322559596845185673351188186169538468417530381114276113079837402935170137931028204981478551182488312929136603932329211258245969378728489638724097437213609753191857234924980557652312189482216322849990587305908547893150862572931141097727706027532506832939224954207923551475487574515128905210556717624728150926695246725575752726964143259062697167607599476739802827243407455776115933431518494581260308481755280921274800005484270163065237422944867695020961474780240082491189514732652364230476138068742963618323735818670252081580032748076863196032316916572773003739133975165171194991357413147698119459256088068718572276942761550285800074248032610979166301297519970391446335785627000495109866994674509076912594182089507571678476905387626767101878556082323909825221307066097702286838802311220009938858953467408761988376610674653007381348655952090118536996881347727472249638029365241764314360083549532496865479447848629986029804911175020912321709294750539142730851322349783313976357895030459254529933427697305246814274018069344517763382707883325504927244964852938720692190064052958150008943099176417421614284623522303127701989494998088767713667773314713887356940746415194013862355925980808467361228358331253543846630286193717476453635163695220152856271307811426722786167295388985526997255221796404788383223959077990909173585971813537914622301454534056389027336238472785165683834569021746625566911752337661675607285453975914275176101027308607424320932061924698861882651902388751546135168831482516089875316202525522900895449727169812401118389512919803263641113021494145878846969994932746195182617203012848495160219998502816734017708616318155584324817990220198934342602968444445089890423499934380902268366439631960080893619249188814483308234549623273898541224778922119961878370041260033682950769817100641170031831864768053890783289477926237202153309305283682182009307296487749770238538442417103066922038944599368448548670054374740911758064901379970366853683484610525611323013559358611307935186207825070715723413833048311079360087849959071092497748485002889145444765851966666619954453880163784916494795958445522464774540291370677795605178744662183406170961828695189706146893074909878587289379434013945922794123283773833808336775759285163185112053559163198928373145083502599988342009032496951833868837309535070597791647398645372699611996157115051240197382113186555518499681811870667604586476856646501717173770300425448003488050970342117260808812027242600075461962419231378209535610238667149244080724779563118643166862677893001901036097235529060436346264585859987413059210914136289498892477324364331135094936734271172874361270301141013467578903076560498220630633009592668903978847891018902219485813406220969300123856718919211994039291271953037690971799778974271751208075085251943583174445068777989678495286358340142256037218643365150631587995174638728966537199497606624900857769072744383242164958786785775069024171938929652852729140054280161835832509636449531708445756861765527437443965116645725474857766389117970009769533261003768704981697709364194325261068944740764755152420936479668590106103178833894526729933778422959285020589782677906971954622791666326729781920981858008686481485436993260849297527950763163020329206684728925556013392050290403411936099531324220362734114198367571828693197243667607519763823199497563176668301013717586973121301820656775954846349258760705670642836940926607960863462035671342913581816271553611905620113093667717125549533320115545033498308584238577234640446102968105943162057794134748311118767295255671806286440076046590031958323852522826865516018201243475769267083534868685254921948010542936948565944722681769004350188263928650074857819140837921741459528187712054656172986745870910395477245084276841865579967645820886088967602766779323739727087438956105974944341762894967940568077680317714083171277698931192087211244442338119720912230762664487635651426225777720496234147854039656048672664358523273620094160181584775463339651044954687839339491251139374245693475315174170265649162059237311054504915204030474047182489344880234619061750395554111047924251238866203995345022426928813361381800369144986747914467716371827549744587702395031199063637046554372194609266821136489006533507798331811236396578982170278694219835503407110679343522613155334492864871989909056127727922782663571861155716773831514187650216982945730724794777516882845574586901747801368189367680499120424690317283153012423672076685153162411596228818073157319425802122300271966727406383063616162456302926514765746619601740925818172144257395166562241063062580996305316807872318316025093845199764397771649436957367960973347403437741249128769093242491329871346621874917769043134003888882339185164681581563224644417499870383265342260067175649157259407878523571041501638471016421465810490578571040409231785869061035491456474283001619875049944742254942402516075751398296813851928193132904821843724567457097316989519324940052430982779622553615044066415369855823636446970745789096538434414169152504797813861541497206818611709823288147779935081656872893657357194696897292228998294338001594559997187334227867890174798513934588603075157534756140735559187861586909452255647405160521940388038760900683503253476089758538602542165520284392778720304728474753681327816033316476015797492729252742972507636270135202579200933133034854279556308206897949078938886832531649492880576958308940939502696003142356217942355052425931787978009993660103052256273352177868606995867080836992569014287040980603996763870870622717448506595085519122751919608832448601077798324526385615810163098690877134376685698739910543436737025044479951135066884691634842990743198194480357021488176162295290831948778784825815749262677255530623633113285702669873724159154409192663082516190495742257686860496462509423732466260796808365762139330683947382794495803797945120210305889050243662412503738057436942219799071913722782872217401417699048919337662417884921015320510295107310512180100971188624678548061284890098854052355600115739048195681779290100450332223065369661157956760109341916818236119192688783163574283342491049284343461736567641492310653186003508622384831257351960190182247689622088357276592799587586722604506971251385848379920027442282741037832591298254481309255801559694943644202703902911034196374790636904184394968823865961341564471878678045341558345977315015766933637780462858062890010979078946920834396021750619511188726985222124385845817720013343625788566592401506430135272967731622963272309039701953425231959521285365535485630533266924655656648111927735263308999183821387468750577689750093844095228694026203933224873680988873928598087528304797771858191290692331569485660612932051435981281063650482378458537012748783579209170295804745087490373423586087871725313685706881170710283811871941284201078707339411507281638256190583109162224233219393520671727497865453541439452118266200224769568005531032938018222111725693397444831479751102874497887914554211836649248476857404160568863578777609107582893545814939231965338620615439339148019400268462944026609316442075886536289786297471730557969582002513783989861015058074757309442833858415548836299078691999375807771442066237240355111370033986822722122111246594293281542241279911579034047346873356784735306592283331719566982565616026081281854248347149182058496794410908035292787765114543500644752721197282185309511427916823049365190767448732720368018374391257803774956502805839346058092804935808213733561535022807510023110876269690373302926142435736467368421872612731170907654170585941862333336376674005802372068559336535127731535168894579651916583289560730664684750435194172490831292080003182371913021380504273450614660571229567286273286389528137774301217215196988865216430743876477001138991724436796225093867365322400693866197293922584008583448672812319462861691670152017296412564374548289270126709489938940485291812586810910428342860488357833148716663251738648412320120775738986722932824225846479308847656115423390465784402750121355752865396254902132628268643232569632110144302751902036019862103967047618953681569642895846632580447450426723023005172499549566011175430207906662228580829976411169376779683490184843347267266188943124037369208761208612993641291764146729587680975026828848209812182704373046073713443945903570848164470303674701585232655918119040211581756637113755550599580608785887772689314830691705058458414132864603067274145042189629880242332370384122380246090082106298443776947224135596573840011614759728688064221822517162413649663286266205518915292876736697837016289974709077331896518589946048708609953674519328866667534594754331192128498987496162654959346456075758798110199695213092358976897797801753767111454850955347899210352065614500495801185961644841249392148085022578891339827841691405435824803818614667044154885915113631085119088330061766496101238140670066125530766094487479362874336145937959928839333970923118516874418986109480949494999378696343568264137725895820042206405343594976307225818776409258831914472565192240822425194554334422362322099289330379868843915347480517894982890904902097913925022417828139889260062505723881207001441672980514530278571999059871082103450547759775042988754615602669606149789601087999236172735084667334310424386142320832906189132105868488972312215313071431153506842363230987469467713249664497165008454957854774565793082654641129086075697384772785144921209462520316593759624009906200308599271858518364085691527641719509206853266737706748722596118095365053737113794517892166948274393983067168839361924285059651790215740620020271923224498535340450634440700675783402431924809696288594214877155974529510915311516373902849848694774236775850371432499353573234959766907151491149954532714933808371650997070348373328884335871074483792123985715224692173665906128157803367886930125194650036803869206866459657242525909912092307928247848530886051746064816117551656284494578974763952796428939010990271860144404626356798527911252666698649865721105316015236267639051835972491479891359780201346304456980108574699204012410350648169995044578417701970699286838396903186209172990505371023947629871309517551715468271003433506403171720754647715511072973343703133136040952184531365174566802553604257513014502186097022769086404134996175420699073143294934443222395601541533269595525918248621520530809132754899799786128985269219969509291974864802109459947150963362241262711438472859755352763414191672819455301833175716960513485965943521489580322249699698881119564493918391504107413041123405103490785451068931951801943795044858275892069365306193422832695277749417875250431172866165720352370008941599751715990977387077026976527787443042556902800752775031846898915251122503994175207509022608963339457121656123902699063213299175196640269342671487552807028918558901346817129417151528455858823139718246670903829121067022760410330836007745664111180194289011189908324358429240392530998860292294518320119417940976037761233651205976361140890134555409002120235793975298471287596546324227550404901569049726678667183747595344774375145709443869277171855394641221019346122289696844971043611353163223844972875821800971713481359108636489793265442940156685530789213421078929805014622655326024836376573994346157950076628668209626524351303372217157112040679556855020171527700475597156508780030801025008483503699678024262911672301009207919106902433743626389324830946790379298888348125779477211578161572829155453407976361691866612363650693693991960906748942693614131859802191081133695824732209263847869744043876803208477409337138497244315696455676468124518279739165204399792012228778284700805066576949312145120275260536750966652093672497951837604938012229675512375498507590907378681531875263556915843637755157476383721702719008314166905358705756683048100207392994209354590086447948716442763675512600141975996801976394629924586498592402678386612519207087067272327825674219663022337813833242312958965093436515013313837571801028566541943067944554225925620265353465656310781308548739301363813247130733170529008616670734145654732529876110464071197066813473593462054663625858544743957609654281662114133279609101870595271833447523026879432683284291343232267347137064201525429622178998779340889559845203350580483001132804639744556567173278976989582056394084336462827931692714497478672569141210799446494456469570752857089886427889739120610312002303936884184165391222571369306040763641154497235774857402764581986396266019282951519717176688081971424200781250781124572368003064128438621565129666345236579209453492104745398093118496193705698907782944394365857411020151044672478887243083201851921386540978959473995691309880499465848326039511075030674177739237200295406233622319884211573907023342586639144984935176314001487399320660472838083631258061682504323051063378160878259719462375096251927292263354793039730917970360756375197972854216303052161881388776719517731671451995165912584581054496330744611813321145525300556577697872331197692548520432878034059168697038300384522604760089369344163772660314646396993506480663010799450028472946920151625748929013352625214927823465034955398353741489485759094180718549986368929126162846466737564032663555350076661138116789391140168226012806334007448043011300042587483357609944855042940321120057958163998752225207256261734799190640067061934140337784891008815570436856179142540820332252507291170567797896921275591532984910903004352009102514919829689950376956645275842167684606779462851005594301654008727179117182105479288789625207954156729812600768228825864492273505981786547927617669914190838604980976126955731131395625578165467753776090286297094215389491147944397651625286417251164918551016351005128411019349019047433291043366153589054364339297089567867658627879950831028752983908673281887764872292315811933955487073153117842575075712340430241483396536094130599893788879150778573631808484615942531935415370947681570178944023372175744360383573787035454714049616335653665161950317584952992200641600940991987859227169945800432973582034083542960249044805787668947589446778257688768762558504208187876336210349671381246866884219883732939649181912825158627771486726206945843423858078108397235419924511265594806270084080214757802870753282667525994584145461182880118039502312179738204257000451675327502224397215472986514513250343914670145714826955789883396423474813035544553990467602364214739804789725679815309675893388077455935058582907094626641893792066071673456924632738951033927318340950625160197547451649392266372166269561747286375720990261081164372586301678682662668997754574333729130554365114232408682570134974808361019320193297394618712457938739740621896040777602532054521071830971614652430663548882327291323660670543716800691981770867682463821594394895172982517416609205150330366923515968892451596603909740699290760144123672205765617334086876649755887585850818076476241585455637522520662280151871155508999503286024738853567940791319068284333797635140737667752721588846768539415359704106035080366888698015765461869219111145879611919365931539686917134630553136624987158009524078276716553901906527545112344690225995776911542273527935305070074371292558524821068507352572140528427727136772211323152349064181163321684239963219296071939944235452807635838558212697591524224048727623532936892206335248509199660914406628783062624837890455635517779301794275825800316481262642292560619307422933057002233734458829087709851729253022393859319711195563170160506214636001117299223921015797952939568598027544452069031254724062298536430689846166073479327773020695143058489260091427610860303376488139010281921213685619570990644516061599572830703623687624189572714969013823353285022827970754812800088197717149922696466835900462805606569618919766379105008367362022282103988069163085224563471659068907357447965972604612513815015207207209760410755511469224537503984345209586222558612698638841874976857336767242047628525453072902180142292380240059836297093783018632295301960616789354492954441920706425806321006695965229307793309530916546052618597286029151574288712616065451419613373966735938464729259373266093065874410996250040078236970240978352025764746823427374871973104636656258869976229407741180186259630003895817446782092737308254705388479270462844284256273417274680404805640440816600442470196445567257752582156863098559029811414720733480916857501735892876371563205571659630124623937823989045064801211627949891288299628549263086273529772328446606227425447084576977825536428407469027433321957687514741202510813114288573895603184422552037632997283466664368507887872617099194863927193656783714008054509431082420101944457218033620932198926326968297432198669711947198298781602192470495230867441007281050883171196651594557566582857424265468159348272951132119400480180440387337336450857834185368072435551702615380316729171039444108646635834687983177942387931249849167881359096666451356179928750719724358816120699468427466754892876382508540497112077099390621122513331273604186337227027251459303335175862617278444296202973699312759487921660701367136887501951906794125141506417464467076351959711497710726308025501055936961507538448946850035357161580310615912359426182642548895281325940271253838287191881220242274935069758406506353259836983825809086939638626814536294289045573787029055636899349543625703592980300659106119214534847406615525402332276362911285727445450356918299229206139601587370204802431384023752597139402632694423302869568713083445158349012354691096825676100909895284280465816366169821360653372339902692399894430901481296718486707875159646544731173109295496386870179255475904772216141719967033496770322563251342257299935960323045153125757016688084071884509745404204228830955150725071707533801342650345494904143136937139547163452716070487455362772386824341035885349843337930009634046970837404492801116910933507920900631480785418917834290432985052045026560003163874012791864444554284692220635993328233112221467416302899925796702538777688222661638576648887156236942288567238403013811823078981858812012635317622550158752627411197073458486695851204645252337321745457287965910478832404293713406432504412074682899392296319097292322865742974803832293880690081707906185639983985592557831741686831586621040788359325030579428469312491755205247496922938478297324057091486945471781006430290014764318733378986428990142344017842948586458663172520481220390475603903478676338791481163625562560089042785715765762400214445509646139731463192504971125816052656828194141428609871640759546146418106457039489993970411976198771086299548090209112133858949463674930352027012658708024286524723407031480222761838534659657692916859741473005080753417772462258655855219774750444101463716779655820372867596107227516399686782625322303934114997258963080317055599266423595616695140578199807890972055722200631350315107029638312319555412700501474396011323355166962974361572742586134090678123712509041528480584657431173508379026361895898664904044639681160143885187475337871973965811846618604335656298868987848937219887096790509496897773887895452383473436106774539044659526230052929334268223804430855249023992133198352912223026231359628524714016721005426152298876994843500729685841365816406806323457536867719037614675039545442668283232859142403512394299989396558952887465068136703500554582663549310828285183845736315285678564548359199286087897253892306389455872096979701234820970843743643317518481454949008584732705257878308605180893078142541940488277231304192436137394358256441724204299876585295810072189959318976214232428455701321594337577717627683541093269627523134895101240780060714127892260589507286402128958412250060835833548323450394367295503559850076427732783124451134622329117680960110323100745272546087238528970920127479081157978058497543428247874198132115286488080522495747683135116259159321864488198356856631212678346559967023226613415062190760548048947649304684419631690227877511606867366926279623739235244958885948937817253266989808813360809050886162039877850104084825060181951330027022493940567278540895272603558625269756257059515878204068034679279979902882531915519564701494393903268197511113233946337182390567072183850842617828595540428948756323588169600213526413543877241040695659824552707374566629728004811745620860546731483257743895953257161452255712703799096330754003009104642588587168079872111663128219272023402618326288851788753944461900539281420301261215916538324389882343592007987257328494284691895880389810864847384614798612255234105415023388317405014522468748626360212156867256665663706154032012074907467009733462308308008309980755877927751988636805257520978919937522888864624364009805917680495953155531965522235699929915611199252153211829439766740251387329806052594574592154520222691800659895148709133066051181546261454983291493970552146247116268921004933617456998108011668151450833681927696786066513075112433767162309606509581878063967322765915935210729268425520515243029517157717383506570143446823876522744206798423139378213317325791837012121304497041085729022462129165000840933965914021090651042031052038842162467593363933802134670324109257429789329136535595263480009936446100390719731399890363269500102919554681915030806493920970536183887504789403903934233861798440547386026781630378894285427502045472481786580905993520274478419539040908637993311095473626065337775963826016821280219306709507811793574431683638923162451493563264621327194600328376447883508097207327363805655519590972592694376055893809667433354836872985401782043959347293802182995094384115018786612463808803406788599619585949528112497145840268143671906732777472999468799574848577702532241576937825545449107513596098163448582272484529603163875825240468492035002716127494870682923043420207637576026210022826725901396812904656791431596775416614786944558291256717094520169100167702643369643555321365105570866840020866084052512823515519669818135987582425581120951680620421523319514788167012012585159471241772576460903164978587111367826909675258310011619912609576177471713204864309242670452088845010744337424413535080500196681751646887889439267313923335869060348224160281926669575920766975972050824254507205601637723535907406980986813279366143680506009382791687231360182995512415886285833149333653378453587890523664748337030307187555135418760961934254033428646825044954763670147388954638477267724851852495204100379233648025932562798259630082156779380750393915110433257375646204705498874493398963994453295524980329169174717907170009291675790165486176010239814673826747595371246043703746413454477907937691095926233221446607378345510105663750250767918970324134412979743625903809776435883577576146684893793875368072350856760050227684977186352268160324838953076799533581819151512601885430501616288225701680862589642225680815121587613455648670126112660409278251940920419540259772650445209396670640277113163959004035320571265811008633160904266340581367923589832202650795680939984923402323789606476521779145851056994616522041512664971141657732654987089982721916087721513737110904961061001081850500297844072532869055959508792031469746052000442665289335423550562096700413357139650178408362874339363752507571405609481484015983823423780274870274828089842647081160607445645407074900455940744507382903808310203804501736186538718784409231165229276431102345931617945240203818346480082563223451512619025825757278501810537616801856351917127510356003442665939641918154303390196969944770070777563498587602124178377684689809180531066735388110925936841306016453665938410045204399872028085383462729360160586088214524866814537557106138168174107587322128862016512323830565022720444652401101149119951886183164593461461585913837895200383096861320846598291767306969285860499851634095900987311907067604552056109435917412829435319475477551380120921078405371387475228041213710922781554117334606433057253518130797642695538575907356309460070198203761534922158665464334654448093211060985144581071917080369728355397278833399408273412652734505192745922518036589207365089289417927579793798981542547736159937195977636229807701302191129568867586540347506883312673288408175039222592200374991087833306988302117397600316847383323636039829278515797775042790559836298154931074796088979063321178707273497003599347787847790938614803364705965648404599150678586751168667585326474845506814438812350131557212730029350578301727141167347322122829711387004507533371305958487659824743591200746174524147704704388846336893639561653063323391152662457209412737746069306353324973392653383421802487698446963030613394253377079034198994297004411097911276663168238453549694790831176099671092932953286103851617630339284082356439968346591868903579975764203672026322268725220621257040872597505241145374195674691785807981742891562951609407834177077460624704568138481528590657642320236345960302721198600426016778193125470105885289855383503835383971889481898986507568220434941768677658644859494491633107566576663286584403180898747737394075022272892761833251318266743174527697462680041302311318128521263874032949768474458987184464996390028075181920540780450773623319497667007709788094419289950404128024444295312717472587887683665584883756771679910962389170883403765731775317738187127915798501970797745066427444917213337439477205104141909232185438911171529284253797064446487239204454130361050338365409804479282029262197695779759220484206161920947135644517371082241853968532815135233270681275755813283567847701388546903784789188763753661881601229139065225090480656993551766958204664302903077133413029526463763883199597436182361285864271932579427016960706193448245203399362774959418839189491020157977897400000243564206227334197913636087970213730502022822057501106200717540298085138019529636640597716718657362365703789915964232000574817811618295859842566625536161650040979142277456153390987208436337207165273059896276201725101291346259430192767487316889221157531887301609897099022828908942145594298594423236714408052163841339079319706365204848351289184803516455234377808983459054671025236253871579476881721040797492233495518437131598853724385286870507461345663573347652427335213389250467806996664885377230096548860000041677866012204934732170249085048624452600422881786105349564482185336528343385625879000045645493227876736531503060485122859217111180966205539300576355876150931409783994406885060721299668119099487936633741741831465571192377951371878200654584860066113547670156746896055255284718851594095188477581878763990332260416855792399092127779183584850953082582223547140949546209111156579732998726387331904601221878755777608962218900666925559833701411526630965742435383727034647906892520766761073487055324507301349847387571081200289426184655156768965688206303525076413719481563816452161068703488221420055312529516799019727360346261791505539986912402331101050119383519246966923795373912727831122475621795177387962829521904691855444304983105179852468180461223419737816291443758927685534281222775167398035994022864623694172649254826927099822051700467126734243896929242407242946532241014091669548943397745343960792422679966146404728743712799122244228155061451298872953332204777896397803825883920471500488090983572302289154364958798913369799795728628396849259580076282400604751192565796948274191074461304894355669129292253509316792584110176553988047152284178470427375640424650206822761952444010141683710992254581423128094990610473480068306669491892513467782411632927393218472905708213389846085245209615817157048956321690746367444326107561853632754164125528279712405927030944080240725809443027264908751930670887197973744437909372505594568319182388984727610574415984948771317287063167590027033194457987821388953511960928656989949188777358576112344087004821422955605577610117195905164298127378191726062605795660420956129263168651668703718568382444329330799423193175065710073359768267558671312285523369419089188046458802054237627884640044361484947688698957592748105289509829218206062931995998677380746133298431106047806133493795276648715954322029455946645864273821772489136413691973270979015308704610833641958318395745380351651119795265550022119569871244772601153754313438345804710176253743512898502303567287506039273868624819920960776156533080109964053570734305191989118631582792354101909477931941441586530921849680225371919623926630010314788585543542787749391220434912749328210481620647688374281166203121647685025362118986659960782676220049297488556801184055820151838011423420001470076844719421809627763590426666475159489913613612117209534648275748332182756321772155139527679119402769194354269665581568148317895427979438720587865547561090468339149625661649259709743295462240457011314146976076046791243974013521003754841655293874139718950446839955934791171591515253345337494652926699034670235096399831333657553200676569204484333746213902314520341103632771836322390771343946553268323237718631337271734840109252945573345176872504970772879028749628752117068109476283220285615107329349866309897387777789992489477692035414707176821031575906008412083749363001881708303947158806975761222945375129031849182995504728035579794642902866133532897950003085216860330208955926289244686347207145500779523323345380773646922941363151102150172953188489970906311629387939382822059140595435774297198357348799662582386276947464849383119980791077584911287924077040202419261346070504050326702035858797119808711202326307876957521962634251540533514149377128465833964723758392463802462658040123503743294537802235326457268896181476511013589553607691495517202664605194813823941007777839595495816405871391030737811808946889570769820082569168001006987586578544488740885588332234589017494764421707458608280677298849804297582866485605784919531653278793324790676563267836402515229131056442857962532194746301326394448154965341612902386463452622945606938660821762243543807242637502015152597661643593998200001313674134855030329306866231109605267577284841658132299018937325971264417362217443348819164612303210602219194909285498411389879447680189980700302460638548332453295378607921889109459558154966921537234235083808095605256390014120766287040009486498042482263618433801826329534591819114575775147048046806995132632327476516786306715861573562889049727205019592383701673846355758360814745197701203921955274033071491909981673324836621815927505590913088113841542275985964121427858765580490176057623306301583388524081921368720396752633019392118496737017771814611250410268032791218854820641627419314625847931092323301704488120977455222948141688540126374281626659839465709594137861246351313156958855978526773954096359230445701097820740844428290652419398146261787322812092115334260474855761842705897610043463587203062628946131935837444489671130058156662986820069062301523846601989151098860165234177712181266565759653317924613693595643305213472362732798020080688591748890503853100281954668133015889549708127819072668714796958926283235513622610426616081538603932131603947616314374346305647561076703968453603854008766282858789146310764664194574686341084617217757004017867001538919051162308167448229676383715872114753929168973351192774177841698238416112633954879834825894840493755806352049693406187564463056341783792883997003540055316961002647548091962987689349371352375218857989521943456650268650203164124386051358860705314072246237632622754078708840197029465841579085903964099947403807935995216187987828164935123715281429294685194735452479896907161116509303268425839146231190864803128328168848506722287258838090772453149109069710268452714910952780975362543734295760596322894260311329061761111970447722392095691163928960946055365701228582218438691060244016216800606030212192833657994312986283974272503505835055730316908439263885284973837497967149066925911033320305333192134794230862938675560914294478266306700275802443028765122135151396444862342371256536755029362237479490552375264470845387377157445115612063960480628014543293904571833050039844198944100726699242565799141953905774725041750889614052449375676413283624036996462107076025833128322065214661562589637320070567492970110533003071074320483012356962603732926249490869388194850984898038493119464396905505999078364467579586643127837779600869952738359040075186749292238744725778947530975528729740919850181293871147674457898725262699456196656199294158366064004245285278303899287457802649691292372848566423158391992229460050768335986573836526093317669032537601322855662679004796411896984753417129709938427205308526942102772036850285343466727758607240919757626823333741096196850606785115789994340738445978039634658539462425931216411890318102218284653418570982657967322258682124401888317103398248372842563266166537700848484848615525275775710188025617783079214463867532095001976388226747478219011454150722902068100441157806709327719659052406723989654165817985228456746062893295607276915212842649992652980491128045250871398264296387005520368006731609457023219602003628365247227094425923520072213980935419021234397919802530227087367867950564662549069666265975881971027476678891512443273745386439504695590302617920171196347619446530644393607273653159723147273702471262005843266540525408472144960264031721636112007279060815936751246905754524327316904343744649384627457719652247744118810983437129713498106153540816788221410212412908808909027831699059132634279587720118833527985797580883482985316893332765992962059905167085289278175515546216887573102206571884348254061325261341785022049271706731814551907427313373276638328593484944618356862332913011181955815953026120060067883242546370019393827816425489844995073646576938800211384162621026578319773432157196264530245627588787910426276037244269872980886864826578514691233426854964820400606627824438654004327053469782670632630891266567682361288359094203607505395300016921292851561538767661621587180551109094208429270750358367644105947753358022583644174983444917708453739537736952488556249224114477034872416169581857012864600994004126492653949719412925769099379762247269595280295977576071193910521394831492689493931634686441336575887096507906123319716072407467498605510682584038175566824513588499729422687143749766446648975825160750159224532804774434587587226955309481587966594282490285159134767049486762774478818698123720617982951220218150934694038308214996819162660011297080618469767108189981405363769602771196172710024418926041406595840919742949784729506430278229217421905581315284093975910417674086796164376527450303144664056902057729876649995224215479056665812544785634491647116812005888574423236992498795825828893109556719518599801110186731993870424904812092238376875603325307701697992643318174872298712007189711461537112511248198148344544182397912176646864169066742757647328027065681310249151186909293667633151754560976950329131823070665005688486890971375044745272501053503651688773495575141436161501568410948536747993368944667349987669490478419895977154160516249675296933794675319363684022401217418634812574819267967088363158326446264229349917170846622650411263406908638600014287321361798897560852538294218613403616029392172491568645499004511370104496321876243934342510235793041942624618798780650821679963892459406023078936056520115501046058023300821777556172836272313437645204313772967284390605415307702129553607065170207168813786893760346353904708836045809890076594724021105406437035310646213117398758743700522353526079348764769212368621803683967618140774345546319858717680733243956083093981560294587582002060810956492054883686328909701826584217543785532853533719353839470153886069286498401032221527196731558978892596417832931274178825808672263330610663605829837121726881651825576423548593578901380391940853565783437419615107915577843293065383252038148789645926307186057755174589803685974753525958112989885841685891078788644729862023994986744916016630486281295082241144065157584298240357040266005419457345808268110655054249360013440041494876695256150617094227760909076435579924743271301754007176538619228705684575434573886101888066802329800980424733177177914840003110347912325273364912224624728309164449755660779835842677360228640542910379893799304680823936579277606196128888847364954597420333017093932005869266552785460076407693583668122622863781984235365428853679418319449765853123117431897765072271319364851951559309029551221191702176926748862476102223354394876809040161079073417626680897865791830861111397070011086539629478719921729389432615132411492228721467185099519260855418400234227319279726857986271743916412045883536628153563785170668058969694652148806766172632933814102292317931155228008411119928128927147209765437377863457025501667269729606770683840022670528754584296631639253209194706459663147051075949873355498693994147632797311465210364841330297424956336180847354963498401241328429433552445177402212505158375150788220110806167081472711768157793414819671167189529291100949108213838333096624070562027502768800730113518347079281015060138809431636075813282135811300072910669895990432251058674512135755016601201999795700329026700783086341512021117525796918337754057198728832321409653887233110140605683178729263974427384997484734651926705421462548677072925288970296684298529636512773017596770643765295034890193484167837191119604169085296054645140251375186336362258730907890811052854291545392420439473569635839548455035349184672391024758998243384116258175291551736426999039526573612122278541767498340323983131975201987393630349319880634326895817305715269429956416722161865875417384255335227354722162876707309681756547373898041508069507510842926888258792772071921987229554335926321353673170704009949986161567609886308175192777640253129549971175741161122062454826725867320213342894180993666193042799242857772466124494924221283662754913140740241464687726009567616478617635186507638235915986601089878640751297784762188119483393398692984061943944055359698121438219459828423714333678987919846209839346804013407135064697506352286471738375252047632315066315772590947191477333314271681293597303508860846040340094463752970862125838562578446791628404547684991772521784270671406303740960705257040171045857341877597149836116697074679100938780658064033963648100998362497018286101683533138526048489650159068999540318987440774625361064337716656029095516104763440266316713753199675524221322325147220260727591629040197864253614532918301323787401365834351233154953534485694756184913678481229262269723699329111790247111961055748218106955986390009222839738491738410089981405263276150968938289353008778267119558742159495607578891028856890559248995500262690902160913072331438272743649056286023236952848259239450074463423598425951764823857733528592959998264594645678652244048421820840046067811357351291105901022657685009291837503931363342859251091008169494198374974992244501832726066527075192209616732890014771936439116160290253601004995942569696781406389576695683076949214846493831251481992776340848320747964005268668034527663908503076703761872454026284861757115508924947765884369755921530567126316851174828243773293922970195758041314004417873574220829988109377145389466992895045196596987064795293182134708446456199658256670594033952509622892985092254848194662582654264247751801315965077422563491321865921565022350713801225384721119091162912001945762518710458012852543880720382722236636686827015578234578701841570347321831584288573832874378372117518462756894035079273960231973732588202292606436617559925951138535074694514762853345977713503598771035650891956783236882873460682957360434107627258409836867364509454562579658168368441165789952852764273820379470752201009889292587511579326106273578608445231298823810232693301872263423902268871818807933032572454656586608675535511359922083808337027574122663568023292999257615590407072465844830768971836216419059453564877757892606600738516016210251560904879996973736241024009052454262401941240626158157340334743593983435017644121904579340452559726761180526786516689608175019685063933030777686335540952236212068482857823238282896475312454326260226896180092807314002244837427652445483177543286812878330963149902598302946066931399903632011337070636728821225236947355402796264171232247129138756240004838203923878888771088577718437448865845517055221912256290877815969383722003538077984712858254310699497967795667772284357804179392105768087948497070502253341097118338543535328061014464409503759034949719547929523140327728638604425578333479133057106736925360264772416177268552706380161882355834702393645924772952725003989494095948379736960170760697605431494033539342680196163673389919460960546968901965885200114510990319802005718333341156683725317828652809366234984015681821491850230023005467550715072991452295758953556404865291613690696352758042622502274456635677685043343451321483883968817310117429993137068032518667928551193447911106521916894875993197393443080330013853202379593021677874480087237225064985735166979346256992481903257476365186285779239852759775327553417076204201296635543798701889143113781984876055052815303098781000042550580942564016958620821257309565311421732287583463478457512685680184540207928224534460458353562225652954876617736980518083721713730500303735235521430601677070651859622195578935623245515089015295842149749209059288814091708202295196834523499327769697151686455560366266165202450361105822967306517258261677300442101195668326584358452757909334401844806909200356759173853777073333583765290194743177542547202203635873184322745950299766723274698680668225733288347271379252334260827157024853035186647771259264343965942332714894186646046824080996697919536081685844214862918280963694917419225385105516898896505066684799310483423711383237240391669898476234438928786566523704191636778504507486500226397622548631757436517880412531615011745685750144851971374508059755148346614612798651899122409604204947686087908097091933265148594426904216622205771271763432916972367839692954039507574416652953156696474483042591454061534862496208615934180743643494204567827238810424362654413202934115109777215275230399232100530543663734907176612293289870555314228814901342458470955318236486200247203378628490820386523027831379405924388811304883926204723724323695761927072983510256371490112596780856052996452650304991335297410081890314688665613501567780415629401485444001568795944907248125737131134015656119409556478118845068187530832673659081072191977375341980910937690962756779813348723638529456052229279334737422749510824218408144225696506486706249145535143715901173625264018543327866439900968540932143956236253898881714513143145948260218731573511717536614535375249085190392166754945718511641579950606858529950598453327661628599572355084932560794072886853082430809853969024704902324059430455619775937430496705192054680334508290971465562230989049424575181970443077326117823317567473664132210508534816179698995661560620965407294037075396628996793005742767284085027150833271311147320086318259431304098923070618164178975259512603407124306596407831763290046982472552979137582890729790868424357322956137728025635152761750336683570000600736495881256886297177140318897384234324235545102391214968473122428140524101477170781392799735553432761557567480062179644241098438785310770327656121625295025173015202306270395549786391900607254427872545673365718784140661678880387550164090960155468789985721471881128268403290079425739091837963385468569881638732578174124028019609758104344861065843749340911505249994865187914367765767788520885259455251755365788578174225912263587110551923660036163780779646390813179482714311474179774301115109554181335449916653774734285626199029243723672502957469871523781889067485763548002863324578275090841142291048718623819954143430502936646816114877774856072378908170983330737469989738020994560679769573039793792880990654572690662483966387581535876381174601933030110798637149581970589500746924930128228276252222801827676253953665964324486933688581354172429025800022779149587457617011557100744118552767167985574641012407287217564770495471873415365112025103233576568091608106671738903099895202629861509870084281329403001593158163521234396748273467291487916211676936560301805652809082427918623972804189831425713746310273058305991476849539610292970974821782781491271961237812420491642712325581462113606746160088284958308048470334213416455736810145465458072756523183129781194573233297119377998336345730085083228006194041754178939622370377037809745943649981965516018206056114315308945072505936178852072930562515799649163881963499624447081619572954985879616731407198599503415486473792250962542070410188577348198645353774775624610331952883799234593691050137854558540520372897986985976805259089666613018146445546888113054821525722941055611930431063233530640759827188041344958872059892871498171952648338449093387521679260704428849446244286192926326189378190874197142741757672068971325304606664668809968559217183742587061741522816239268206578345331278461003689085335033132719085298812826894458312431138852666208627027290943889803987783404049413493080747232338046493264524915025473866907983407890066595669680509622040228347322537799058245634664744970794853579820699495933275163167698645806672809377228214505322365475607357001879162393115853295892358259916233651980211665723531123522533947914978719952752991522447362137174678413282315372180480905057432115722474479565074304586632436109377345823473026062865266620212459630245576649641640472483337822159370571708251027296810955657345396933585234620090591756716876404663078115461820518573081075227487423305923441590279879474135698133809318067296377995489613074368503663323213153387790769440757606458799388782116300582416083896513266455637594775882021154730509061128589929811287827406791469213072174342040401261847393535699968375015074294607768663342701122837130821110709891627186894379748950774358407911433929280010675858335232980999838476125978816210889182672677753902299259533247506097998671190769801124079872691434208038486998921251922158541171091432239777915293494383298565337963757065725721195531480724860258920498182508085164534926032213094780950127912569787079080774266744457309011046939111810911122057365170995546183536679965613611117988531024117232922615568115086865073786718358595467634054644638443084862016992952518249094770842431792673441479095448269071950639039848722804791973893157877780198527451211301626566608398909525335438464375792031080003075535149290246784537933965359036052901421402960699387051168601936032577182229036462684792874558963138299840312929264106739584581989135568751406075425549585865167878327247369729483529284233781871730663884648982751749007137931289252069497130175872602381267812503029719568909620066076799497428696834857433253593160003755768504399354827646019802672709361267566333650166902095171696778808478009091940174137604194954438327978898620711218992839081800186577799947693057314372913424512355958572658176293494504837519177544533017076164200577557839227581940529569660197218450917733425324239619231251993841932226237467476476901706105073265621933687449405758711917472383635647785065072750402263270090349753346507933488339925177129332179357627022517764547640009596638024793457246283770215297096312112740681728962495673601819874670107876562210933557333092765373942991533432975250101017204656262536805118579974576522804454498872961146641952338133885118055400995312239268426615196943699049800679718997169529555410477510267729563316581896346604428008568842072983964802047155294967566423005129956469655489737288261195203400598701154095701967803890305564667216125637363268239190014773575314780480601309557869144212772209100596277067581299051136620302821272721551689379805883631137370825673548330918388816222990209005010795693556253027353437675225149570515207386168945783734298662671771869942352705905767503485564758883954834366018572710992307303334277619816731283830388224059938838748779447710396211907947911923165935936647925014771191770761323215904812469595310450244951388405877862167754839164156250039709302306627858258638284958968009343792385215794286090161754336036823444366111519161711071283846557037948853275862248679658928856363542058507390177417462247320386949013533173887531260032000354028512094619228898265397042105504102460559633637813622557677269004290319230180910901445502226213418211250004960272200425223662954373940315653209782383023418673233310082173353664267690195111174481603919508157550611884652629389414715505556088359272335171545502407124030342496848169174806191823393092280024462770668093611120412143892550291724688473111110374763097533450501356224868587714782211497015523759011751440736957077233856743239547527723157006162883144493663601314736287711115572124482162972601779372820841410354508881434667972363079201701248159818469459185561205427616205230283504953334395717490190343092853831207280692143186804036934297973378031587329246451231617021807933285781369708412999858626883756387659967311386975893409127884689112655237188255711304406938379171024641402444864261278164846965295745859513311566474205916717696489162491578986329325581528027633662650986140852403560391073620806607492069299469714466018383506046988282823184377311629859804743236291175168416744540053193940328975227004212274777539865221170816018933226835741606379960244956090518990863376549416197086630025653188661086200364664136297826877088300373785272370998850617258345338121325384324438824894620263771428637004078518033860617516649282711719505460314574640278485104681384770249100668053745141513543339460142037755778797821574791370613208055141711410758193349441357859556104338110028361093163797086563250310940864577255063816310229203748142771242908385946167074152909718925000275144820877283633160922998376426734967635013610328409508608582560320720924434441430344341244377960808646328136326793441017554256341668357835867640205424608048173212312306370535708428902053177858633874489354330113993471104624179659141590273870019842499182994282217940207069427554847768983073694921416886978612850132275049621496411944347125795903010391658519387974885404362212652539877973641557025493224521995972793853645594148628149283972671563182949647188316506147213529825804844870690421881921645218180846033514062448753602071068538973334651022556905400947892043888748406638961916251131595754465270928721359900422008897504893269480110907961741614236388821859465844208938499020194565047611225297933696810558330837807288251300627040515589440853378295506175261552264965093676664030557097395819376216118755804264352708791389991045098254799680370096896310739449043186784565573895830427936206655538388995165186446821695040342745887236876864430166216113740935717081880893473477981726126969242258496163574363193165308199161524664416038806433083862787915033940893777446605492100911159407262950789013354177883226305239094076667836929551260370706507183228244385402552879149325170149532859531153755327789385208262952032604611577335468400920249359883108830453300970692018129151990823993130068925572639262692619194766572882695015732184036848582497275870620098630862821824692268734510108721204300408721450468218406081620577137251737067755811578696981203251465732752470523363391985747207778985964260492078690940126765784176581462324319883263108728608205075267099305177099647763018364378141576773944502863094037245720095859871364667929610922963913116558944196251492405289107416367690735362971616655357913562708780067832884720207333026313662110602266226739231553251088158171855673622045668347803118413310723218588772446227018966823202990925033738409751161662997673907699275998350598599438931435828102555142538985693446433318735450759089368099128895816285501065291353835731026716898207903521259815120064148237139972734103117230438323142604991920500080274200033931336707069428467936010732739585296793871829006754044175541273121781713136862220914633897207586965056067689843375976336974569345309025520305835168485121220622320662619429106399176491856290934148929782073625789837836714684770056159014365272323241961422452031403328343918375239502906359537404262401787926905654358929318345688695813014268212544114812156951519457087804589242449773221909193363681818602117082969757015078063688910747248746917335782004469811120789835274174573874456991601880302652065918095203424161025733279124292643731967255107115139074540143603275638455254260617464479104567250205418169509570314241184731347558099742277918583798175566988454221616980015922347934263004664464759133134761275799022345533233859757306031245246395327552545190242665751716658336748101244657074472485764637718183986132851734080672466731264328751957153270276044114618221378113028287611939636477878660974945404686312284163538467899876361827350742876267676218688737703217461813173234255398420302655451537695024869698713830545764960685082986754788042144712419534716013521258557348354192468844680321871881873675735304665151846433707007760331099894995309561931218156558383723869270562093820364326791228003917892597781299389227116237318336672501418124535749227114860083618323359151447207196517162456710396299034907474071712415126765055957829317758471045370502986217388438480036655223421574963009787845705213224661691303826815411103748320010842373106864864433686053359111097046662055860802261794007323582044066353802055705532131990767996734645987332217055178475999033817214465697841337696883979240511150168766892149106149538327367620225018525020759719683921334289162265124453878342066314540788617271667722871592751362445579910436933924543238055383749311310590095206422091395403783288160715182499918543297834850006858026025218419467116436157623705463790506929549312200992300708246831178736153896043961545391284275159834357468220345610594095415146735453233412368292721891005092427811432852389329041113661888367682065755862865651279921858405986877256032173524207941333477941129978995961731926396850172724918285516907414062793854244125099083376333301712009543596151154121166165787456227985893286094043733092676688472453101408729607663859550336680390747301237845493850913943144709861823731420191473738209921794390986338606111619730329744805463723549525005603740993844389785776654918991037367704545234810929900848266040229374971328553919425384342296461394118054482832792979669764703498828650151887111259148414546796878198140521685167490376746087085802329619300437800345640356717345377960613491390636598382093075436588078410694989641008939536441746358899497413360462622508001215008932564212100848433294514093182618151096348787492416334710329607170028986972153499441406138246391550034658411729750249336409318594196273353927084469296803755154679596191216701160277725859935421572142475557759542297866196639974041501189903755923478996691678938156027938753868652098729981002507741853794760330154549357570547687253206895320086551882149678265147676119308874516669678009872059485013560177345617411942814461314576211575277893461019298023050232440358683420838569156205310127657638868994512171458108280969808285612043941959360620482518006649729626134220758819494394098282028065213113752524232772346686815252137792793639905028100150366351311558599528450289943033025478216827616254386707846656047067476487910915492145795256651615940471699933624301766115740381021313421566499490059684494285668499386208894567645844669740127738140057831927255460130469678298358588148137554460620507951124766403852365136602980974599653044624442272533942125734204361625957139446355561567403258733129503764276891114869054114751986032755997207877459478312433706166166308383487403457827508107721338825410228041998433973292107760365793602545945393211471214033409656357656495826852566791146484871830446608023229310502773909017178616597497144606987421017895258611325104120654892895208251138922555642258896139000999916672561816364747502676625275228827321261797723351736258363106892277354649819309717119531852405462198011041343638432470344283155205425924009060295645101122678332050535516461901239716785302230428899414957626820209278213769260161911611476873337941484486153802384839393876904375699665889446239477884988223655489876672506152779251900850995874270509720746655045508786255330737321434129864775871923019551117002740458244721916187109255380615872295897895797915142322551432962994443634113820617410505703965749572518517604393618140993954730116123761568230473853070320593516542305258648838968110020849907224872846657232923095958502160562321017678166883881143483475745942080486661771894092207683957887994731382698303798866460241834920031040915887453033341276490534100334580028919209267686735797232775911381814885645214103564750194774847964159934498964181888880885124591094855315709736702847950713210293836950247352075386024693242556942671612349675592385314552111620347723133097394560383286437071614332998661829775617330494511170431276719478048009278602639498615031317720488503958158123246329398764091943139323227556057286903172727666460565996630519691104449557357152561656233116198055541232952775555987062877312562928088755458129155527330524891008532079407767656451010341955440489068585841174501604297416906314141190673015800413322942551673630766687648868591355852457195705044801318145033871968147764166840034074406402452605679732991459328062351173994675548756197637701246746183999913259171421600149863162018413576744917541806477733981423068314596374720019975912850963254422993538281064643314206222174773765249650604334531570415827953685709874522910762984229447703719973767725144280963752157177543811846408445173063317083471559205290702645437825867151595483554475373553255999286157541867651059722519311796975457575581396336328425591553122261182293090914725763460774483119755722166826380363263545097212650524886845743237226158995454654591685417793969566624551508308844625305317824294214106412285043960613400239767793640750423561219491845055167421671133839322322068602227996031132201736056103776519464644806899217207571794045060598069013581051060911966040539427945334655315468236883434638106468309781009478519310173155440274415530018534984646102916996828863116600005083529119978111893522661425301090097880685058342746471342916772402892357083160688296963521058404280839687809740461966180264926030661862720339057411667580517749203843922752299126223748944568105845764601529702295390880784690996091883897796803646592764006528129710771539634147904381870538566147892692893175428921031052289984293795328447728957908336917043216609634046605792377807639890476068895294104207783998802256922855698970481669590398267985928866850977854086269158306682950683809612972069836538909123971363999205545747858932878119035291882735577235725823232301889562679705689732284249777094644440304554975355303826490710129928753012619476671652235695231466834084801898622319415628317790465187502287641914817798677299249873250957592897954209981311042215156581599743062686020837147124717597760323683103374181560501686580027995229014071152338159089063408085791214543031572399651752435748426168004941094664164645302193552397941394953284702045424810787457870293992569536794921178679907418402907880554766973843303366076250500004187743990813572495890347833402440610851379434666679084051584310066881561562639461216920057928713600525639241441928862279335585561993922151462543670829924324539457942247039754462201319450989589988389544929361197984839552670844643053298643192600944388689202875089072806252178243554793379146635781050102997390791414861941612783694379447240122104836003269997220027393965591701062239681406767403894265818744119660017783676548630900266211916797147147375612138373138476432184487166482815637708403760222554909018508770168980141101537470172676060303170534548892177673160561834915500269929368377257824950712480997067525737353233304301079860629917069556820980646447763059116170501351437552459273017481620302372085787224580687232701563500194179143784304218031494865782760244466452728793291817781531459008162129256106038011995171269956174625804696242584538214426278069744655532724344925761315279639946127300828871743437616315189295591574682127645151924441159506534018238642815787465421415877569532895731260884056599844418618039343290375808249069594992677889838662786086667201406509033147461433368300842512173229781012542722327789134013044165703069192817655632367876202443784870174275487824130312561405145627520228812057242516832860719318591223087312749604878395115265343760460037303506013166083118100354020580391228180981714782812226460860363313620506655180216732214795514257485244577361471391934843736604594904112594395522285424413393630364127783633319917941030680932293005734535150873414303565177894385193488596601936949981732761088027735559364305213261721878522439138642445479407830577338533242276022068519849672393820528865982509283154443915669016194386211494640231302702498746646823933530915344469854637208558270920299912377078984388987710847542946481024213878749008018477681855180366697600696789897826512031004497093071160925978881950435815258923498107387572552828945437880980535268972784882013149134150564790085563214018173401519832893027863057448033934335543351884737116429387247758945743701448070969166757034060381801909360727352593083432661965042824316619039227898788701402065050276437268632702601016575673096596243219577311664482949404401616604214167309255828369619377554563948647713988882127144624154798776050201621829033297233333315914644069585658173401553126797206256384244547307062930159610287213839566978720978776969519946551846853949026279423287352179494976509427169504604469122765879510523436507519820284365928869366252694627694569276442823447428846541483984913603041226434047141169629739858097830862764213637362211811029331971542170032753577155966314675909507612604931852132890630975517708502121180507894540898389698412118222676799009113329716408158823044036795053959989353917277976976787073549614959876615027932545937763117297936797898821964414403880282221062732047273166766945663397275455884333678648656553436814907003855332456387560706441706522470404038385825177831663563927616155608836819102651768467721447066624375006088644018593583147959632148838028589735283808591257877828968484130976379086972293061536487701613550362283646714637357799338840072740673731261779423002314957651243077228127857464263343271648919510977801050401076143493987037789319000247053137394372428731147841177296789273345122350845737541674564354353689110989292366251333931582082620454182812829841583447619803214884991483726176588204897232135662227994968101087248307436710565380851673668301759582681836219418819593516355308949577162231554663757629031645896051204366340821523125544939197122603420402619468617408173989156748007978816477557496178532513360787183616694391184995567595055029624166861907842603905732314578173144251058878799154171139632344386882435308048544439814579173414395549365147470684813690369570334907913356469377012175307925857353375104383479434099477151574029323058031877060024438859161135481936901448152060246288213103254332861944609008353909571388540475659340434848414905596237123215181665993679064757965792641581896298060034498402156041235558548254854022837204389785906888995572502995450295857327618860783704601980307439956390597451009062804576963149360871926595005959675130642293066215539363326013310895469220461707912757639085226862355350604564519815708874315053995998199254120262866491936862072103313440917680608618704065888517523101632058190744944377244790330428694358197036105267834013458887511862359087561976179550727461934493094977177173167927378266607299565329629396729645208668769822491046197445825803422444651017513556545385440815540641630487031799229567224192047880808481806900374459003297636378342364883237449199060430037495708427235142114092164497694999549328384389105515373606343071811745345332074646965040811016055038837673795740274782499276738290459556099359857548223910712902868666286163879092237910172266330988969790256533008763298121331181988496539495762955971430725167816049365525846840673295421368951716596006932156898914229820579751206583308782867030651906012418640659165173831153943361675098514744347607906560774412302670540206054373261413699744969536849267706770735604972996113351340923941326122982561024789775972482631787891471656522868588794290758221183179631358283209621718936267436545283972828384685325808682110182181327898062131550369643614572835924084173845233623450241548316850433908164507055433967940032158570097818570089983017647971451583752052926824610249989684068194040535166969056508524711585171742871466212043263197797177746688002910151586003682893256869177452782138061620798956467576623366516347290421943020188580078602529680064736269917590668663907637001377359222161616261885700808759540406032358104530439048843593018289525582882087096965696779289530415449483125491170922620058533882893410154014583216800553820764016617300866348552473232652909640755054646754447978304337699170804866242507198561997889103033609407447814172437085397425672621676820167021399080400601403026645556823599470051589700886986846638858699066712853390268486557218271966956537565936377773073023489048628189042006977190879405939027192420457897255055716885277253435514260265380675065124483223498867415700549050627177887597559630390797544603176911299889542124625259581244377096522792935542834591887998744836112432867758969738210300117407554015880610132143068017304312731717051542963327866864834518457152149302099485641042197840918918224863000175017663563823537011834549504835322031800318741270420427465182643322563154249609953125324507390837021035768579090580980913581844195657030458616320668043353058254094048335838402924671434757781850675589888057679182227691650653258835775267295462873023279135404904713800381945539397917664459364584097564503503331836560554526855119629279844337640699333247671494946557442532935092478977832543665839453779919333231478014569907881351724050679051218607032133487899345917847331316582011935583547359956641115181006250684949657239089278073569042217103184894759992918557209200909634048147560436904158711686859370569402802394803654419619577909535157686313634010297869743566510216714474333970163280919354904373656655202235288142488740841064743406870946535828059468327411277834733299932394367362319059386735685253454321842449468993491555245871781649088083539514105331455899960130531172178861401640535416687381241456528300614303259936645093534307725723613327858326986301330033554135998027603709755583345991640040502134145224424557348866055935958748705487510953772153340392677772009397668222193331959448356960525241601038354978300750150429022803431905570129864688580380504858180733126029854761404096812867496059640998973896365258254055373486324727757027025584590257896538611965110793177867346795927192649575520124022054347746366650327058766550224942875699602169901569458013677414742275679600488059074255825435352007430615964281531499086833767791938611654081961897981445487714252190640623101327903308714002828725075643671074615364110163043937563122020517954560835441009901741732825670942478295866678280515291458324353322497573395434108675509363547059760011304679414627619759489985582843013799243271660714619987848337912789563867983945389064147399116221453491471943692364469179679784147865642055393178998294114259849976288404799327035806618248156255750241747247823961856247972443085446897431519867857295522740661373050881037194724120864966213569241500026083438993822122683198931821453219497860579311934795521212954672792009936112985636166107284004504452624480202787857138634734494357186275721965196487849926903344641655524266716227291959161175813987860756564674523245330691881267495705908243030104101092318679417026065449162723451602102097165383345226497619840765777273141629885950549525783062045977561184999252388489462689372383702146951635525402689736025074685446660638611911103597851392755095953111417964955612648691492751080237337571688083463921660696752169695125792856719397589008891135897783361161089859765335027307966485743312241520510365724738851383608895204715049754294661353286218906471547898794611320894254305358010653779533434419411604922636260054109085977875700422343092621737697208018638845904292059480289483877893977705253478435096060753089809639716673824627729571734052429079111845073593875523517953227700554863631589795170123413964438475356365357797854271575340176662287381999874397447411128458260467191546696499300795807998929945860447300940447257034781296340296674108158459279044159153949065731194338306001124212039067434012883757095649059312149562602265849084517988587474607484210917620540318602322171761243859546460081158978238221143852026515091442041839615203476533958828198330841403553104624737478183404838800487086550847834346194480307388371061761227460204105951116136334889234539793132492387075833462300686017367177176312890073924506005989091426440989505293393932299587745942251574516477942427254511311736125975809623743992789000320075357268930164207010755172683298688121963207504802340039130015606075117433106233812562049622148836972050886303102022823649425329524666129992586120073338136382181849591518889941645377458711595025397854150131340504129065720329713573862613658931479545516363408101516093669162428292393509370474017310218577310494124312798514823428851480590699380570482905199830994573924491030769827439607122958974612191520200527523150520649862811620892152425290188297841676658100075130485082333169184409120270017193415062596330016248511161361372571917685131202980953420385481341823612699525349527056251062233084819208075364267251367345807239548145788873486371026068325880783816864664226072616791707938139868073206284885710884625154715599672015234796274773168869704874788309900566227773373269053129194894645706349848113562959708492298306081092805675918556076488736136597427234915886194002477725817913624939321668292993596730712102235828378832500619114552688517525418593790412950082468859491629484114363461760405694343296746216425111990519427848419905177183451052177541856743031048448906719811976935860424767608287184369737509434183048278222493035258742844877178233623861505416576441345938217316391176860873309234942769599726990795550507206212446592685481677484728934085026393494649030923466146314176519133645356357697403947815615591037294254495849993946786591605687393281616555167631821452044645686088872036289754131920160902259243428997267800457521056996545024507144446205398532231417214538668380784491927558297459170412412883165133491328250364607248915579845861215038806737659659880951847232075942277716626173748954773312451577503852378545028294907881652210956689832750563452702478868856587774319392192090585392949184262941690922903056379440117352649279886597372440181831940547765694672414882517825048289510455927938167509103443961108284390847559409119904135687772048369292392427216829766366936227430631816356806917405712650504305354050645144381150043880015308267840571384329255648126223520611041940027351743516540879292857295354295047561294462726090864902761037486216115984112774071752621810924662897268534591954623698751812843205770075516639812582732221130400588927348016297436585850924882279042451659291197553026637481763654120069333625548604443970678456668357158987286904103625981562220772528090347904082228075126008730364962362814396013253124670742836954451541473019108205344307192422668982446519981158259914894985531512547810788181312361900342304196590758461191715943161091192867503505273575798347849433975336437479854637927694143571317669885736455384294245187165650626293221060505071341069755662385607903277659580072202597496726772005558753279859816118572955611264343986691138566630071017866205541991022826809340627423130181323099544580673708729929434837680459408145632910662726779531767738673608643957232745393242757123777659260671071680482330800496973839018846871751215482464217968842221098823509598858047829577356361952908829525837179786661249042312119660289676782614597272877115428377169534904160307761256652992564762549327814467766942596503673342332061859375840653497275345396616055113815425000696932490524578182105725194284836633162361912652420423498084860554157616801438032094690406280736345632893515742543616360580107589659115675493252897171742484127237540566988568316218589658839791358222369799279613040764319978200293938194527521956827573712361640624488499505517519261164406545779175109488350900561462397124935906486038077246553042670651880719357526077528533314142994107070883562849951659538053025653525035450465472209768545046422415871507286401672074715895015000750711013308061209458608773020753238887759093345217813554841256357838985428984462998205431088762188274179613000962755439742297837094175981637817112335193220871624269846694767795616358902879042741060567467194142205178982887213042212638149333266008077141815021575779268028236705345630714360190782690151125906328886437281662795167212280294478816243240561690299429338297806140747235708253794612878041981395305610253834486916488127123661577020690280952764617068454915965475168386322131531534562604695291525987554551475326933658405002290619856682377389256447480348186640355632018815016767815709623111379141287604741218461696839836919725264010526970089786633154459443675922368235293853870811094428147259687687926793892382226606158487903123980169870559733162113309072795672751408284118819073798133051055899208803123864530252829093488000973156296927313877429651983264466533903308296131769806657506495164690159933497565717486447571331996037010294229854838864313063025687564385511656982935061576674469149450038552155840270888251869921684839516014430983456119612450214726763904246470147149623747741207896915066937049235035039760831850919920147254363559640263371724172250083415496477940148200164558126330154785392040535636162536714105747778576331151215061399589271314200152423878478352138433010931315450174153382599065603323908188503243329517469187373271318758280906521247870639249969679375600120388337674184097400969162225793986016499053920105869194064754659165586503319410082974853547411205395757350335701032009589914145553295208018194623660997317856211828581276202373085388639914602253570676332845097411491066768508354447108499202674741561659008774458778337135005057373879671966618129446251971340655322672859237257313300701220945989315520936760091443093539251204011429914724917235925105781733666763662457812149831196048086117758295275175615399649071932066374793947836279401461864556423411027013108888034616353384613196685326669704859532285955715143685915892983330658264864922937630981807344986984228047983805201000879482984523311565085876550406025966546312346322732257955784059654769018280861667579181431273705325021724742101646744755390145826720219228606360172934456389024397123553051089151045488409365515384808742517156027650587503687252943451685769353114137923758849949378636043569425349281868580304846745612529997001941278655073479535756634062194430185939524868008351314479916706889357124680870598227113264457777994989837182817702539462813951060237119940451800626783336347970469603070920598335330824301196058451346650727740132444519112873121284288889069287712038901201794160098421053231705138041269992974611888664555985011285046644009703061319865428964920058803279271420497620387469911617128557644396440957380811984350581481940343585742515120459790612394574636967556903256977300773156587574151745617030283979990389036084917270292630984983935050394141765699856357890468780329191829588253553915514477489882559620010886252228794181045366569891295006949873480186480117562699337784199178525920431931488260348822766934451643693030856716075894945642828109771263037565326111778090510745818448709728939382356771366820849076055104262901641255659534275396587275444057460963583362972214712765816558169345615974608996245052948535756559828790327672477473671264555833736745130821234866396596008284942724530797630944370677761267440550070298170020152099103861986269937717734795472449002100165199830647581956537539802223688566143671785725922212000812218593447437221659468570988644559180512419986712206578958465894216784835044183473237467017711177060193289851244303765159785985297820039629377249442322952416919889308059791775448129307071383190468835763235001916297769842888047987746153914236841890135694359723068158135193394137340695783490231763516200016434903904623554984701222067769973484709286494764895242995141199498664880966558267577756293186661180875372091691448681956556782906561820665040151418883234505067494908913517137685193494163138148191976032183054679450609937632471038424934667100262324602565238120663280490899639653955709503548681477686474625465812497885474442430619233477495498160988605958050939651021222855075908846583044271977297315327833443911618662101848714341822690259401937398376150423663914133214109208793711388915290913552782743959194863040985584461465590282016421747570474850275708079771893951866989902828416767117875523792168092277699850840428723655409955706381537234185939567387092806562207517544783639808202303670840220487899995041084275993683890290523872893147664684332945649204806241972909566685811178661775128889201167940921238116691503867338888357560566212232319752940367898340736905483168593207164376272251881525593230183270728444554022333988902446119193412645483795994551964789812590391610398531209442411593917133518967169301375951823159749330120328990724267977460937812857550336919416170568859835980366001291922483770393241651440388410037026111332136085346479608851476723803119671772331982158600691252203213796863731677436543044389223028594718513674029171887628327926835469427683658000530592076924591026744480801079037018927121699987052230143399160108919176371180226022712627445895994458293820166270640827857715921474770902635930926757852098482208871138859289085487493625635216594308687339197864587088900988712623430799584492848372637814766283986481548907606665304899978019822380167047839562084100873244603232278553418806636421078620742605901369676213731913665122499177640008805631758102964968425422703807747676468934178319854387121181840439797797971270708958081181289299937236421814899444385873438836240647280881722663459537501923719939362838917662283567122737116770829630892635824483220765610230933981022386670964589047428828217973747012019589698632658033172871571528013976380998354265002686090301919065294825977166134122137867812469777896030264225845370100060724966445367055911006935301288257872157038786045924392152351801144976764389281848852914266954646811050268356770179378047673419630904268791092606618428602820757327436633644373817061562159196954912022645894984676056985597981353621949852612932699701573539246447858179055139418837878795576330864385017720160614448807690368186784002287708376460508459187404090151637167920012329156419368037796266337655853839745646240927281083537025285547890487299857215254663084975963312016866529173524067611031892126008750871111545410323791312123257508261832094784355269021683372855726079296998697372885802107588306861609618911053891701741267862095553325143933257870504223199666683361365767678475467604307940004273372678876380219692704495802432005715899572697564695581205148935946642401918406742499121215638010259193435437047772675807079165064114768988104100498731571910891143954962754530921464406164425481784401330622138131068578553932151266491979835737830400321748134515924018713894916379537039917593012062631964207861521191682739810831179834764659996902793526103736519382792090584380391887903116988778490631596868287104207283281829783241424861914728640954065934047728419354285171890256790269470182932273429342845424996135591863176071244263330653443163536210642712732439135250729365803089018132827423387040797118089283286788836529651600628891251125205294322408703861306029955360586842011087169693232406187528429777856974988520023387157483041496734098912410733251720299870047155055671577386842221979051208058326878670629231489670465446426840544305568399652907787166591948295698454892316066009467775001461143921631499495547491990617268266541981893466036530276883483497327131571538027623374107605476904987658270600357835969684737648133480523901785425759764447994921513678822420606961557685167728772595149526464883020187431167611710813055116462393546000461405629003605017033296981408847425636036497286258811770237251491164452292897687785954324234092946310740402318787633264449831100727183689169235236023570018819886771122473266898707321553699543844770809586541296879745443165067440573886031911286794347993590604751726840547838376419772789783036561768493927897770114520427775804096563255860004367376188548600870820282308346584654615550761013997736509256820898289029285941005244059191601094261333149793793915915941950023602423102924464964194410351373754037203120003999776609148780201048417675572165390771113498354322226459960911820702768311083219160539681552757108294074907992254619568159238326863501825020978028099830196762638960116076937793277257690215626294373219410756069232023258582719429968263392148352396261206638180701364593601288330327203074858568731274052262135383417180061050228595270306068633189197252736525039376459724513219214228049831988369180759304836619787808299575734622369715181415975609145927664841608332009896248500546500328191521043235970541197208086940651363472434973680206962343387009501243607495398587636266039703928546100536399065026460923147114623987872934449492503936936664608149216439375862367651797556484766900993674877924158299543661746252276965210000026399163161187586497950124190408179825370437246982254324052353332598422346771620492159190979793957555024960506621341774106821597387829098457702973967428273403418130365134520645644901075208379419802121345805068183461349761877306024874731048802650956861957825989672031413484587465315922145371041471986855949365031661018784700333029813770219320506668345587298064941769950469099960144368573892696669241321120764866281911847814603551364595294979449273388846397828653351559791567187859131951968130087094703147938615072595357502708564511795588236701363304000554727688590428074265772479212360391580419871077800502399990312626294314372861604774962219323448686843902080199760251996771966207411973738289678318318524062457284604355186674703638168993218153051629085623888163949598296008157676548110838496942688105491999056305620145683261873684102916829262361628053432936168647500284536433058281415468528443211649767534496733821137153824790015936520378027241362502433198501253619280552853663911140085225493368376187759840319921438336485268335727512877668916559695489241055765970337967412379519527394258638622029019081686522529765492018742387478404401367209984887636668179958956072235793852216827700271263120383419835160696480712833176758639693066444846697507390800275614580215222541215523873246395030223242185518369290424039922514875487318455176333401741605827348399870671117079900559870444739748030550037565323037650945977284285574531637393276926442521104250973870439763915244135293570231571995648467461094560263284907146649022619414709754219344061878272741386604643527203541248818482762846637017809730480216702872550081656330229673988786441538691904248399604221112767826880999367018100212477246518040608252892750327973225977891392521251800408772450659160486631584143899380805008001552744218807867840921846999270662299082873782521520701118232778019703369714868681528240114164892626228930126313378779819421581800244037866828787439374864185512500452609723687918673273042566863962294308788491918604327081928125231122248005291288061972634630194241460479780103551528848243455364160131728982955251942426026386934326094343038662851817538531552415676026886796209083498344183370912834495864994429399063305992532688686789271586890162344810445347736185264742165640978305683604814023156436427388300486882712046933393726717881474306318229472193657613018845945081142870493345008315086577079697245247531153665743823490465997971463724943237398701708760971723535055877748242415668216557539356389053007295785914522984677667262258462614675635356100192809059250337933405564198236395665200548843228189507417038609775311103068403215067177140540593774438578029869874848983894400037282798565955044888626013908507390593253460181948815582660059887780026953488031780839788190502662085338811609797513541077191031429771587343283260553697017058758991222090091621513947223509922503620704348224446670571230050031796541318211795357606677219480863624412890848264179962969871342288129537035753629127317212040095433882597446314199771657454080408886165656801686358853828258097256517850945611804067078454383168038131942918399711274229082208987399860054043549350549829520238150150796667260421086060940277524235945811597099869064671619822266575625970758723468725887546824359571445910583317503829023496274077212941265428012980885503843023968081942677780616462151776795582524178706662988627511854374567746475377530133427240665872779461732356853046280816528728965916042308281619570393320355769370445090018570842895168149744406157034189300678425241047002223595172527971495621905704355200158956422110156864755434081397897969541052976129862027551023487084547615258713634951335903435286998513809146947123427941075714304374905978141179700579049819618469693714393611665471858716614484825383047217839293024968005463606502780785258643006431138026668567611104246809862043657647319867052079256177986427771461376466743438449549494311240032492470292500106112380393038385495324843937260007614221088800063555956134504773716508615117077102438148611604068371695324048678956977392224158744481160441633018889291970194166149964896088081147059993891528096193714781508600213887150079511815517547158013650317751705549915714149950103870886644219186959212628083815175582877696998244966203193615802361251951550661985369995555425434663022404784295602485846003570464122531734748002838172965252330638077292104403096907696281317432691631652879787749386732766856613235408342771318230293688006748077868667848416756717437467141450106161905163399608279051048014766986964860376717544342428319201771869506374185069954956615464745269409714229837782553236240758526158613574676243569758420113251563277204664435026628362793730101856112003321188907770332771805577276470966070061375264480897376628537813876101410989391249174083471536446996286454478055018118744612860752458629140866330119086272617304623518299885638765047283965573638323683024153031860289637114958309778371708431985028237661441563219005789123541113573805796200630287915633150990015681949767755532511257552402618465271022144350673728278952913493683636438113065134577196144844951428955781609178879062131112100224551824826797717323523878421115322214915811139181518293811155592415227171595735235339199041418621857656828375228589072109876060133940036041543602527062885776270058479602664521302897132283836530041139679001117946131535379586852871112716755454467152354925909310331519248721848394166947250730837276142362372418665453892657426370354758097785706778537475433186013304722900471395508562755300731344371278060496183116792390686257423391627067447940164510417365405948388114682401260163035102673517741477721013439412073405789755660463245333018273042749506495812094148262752624941364525716708220537489794345773827847664998729659484558347574184381309320396869083454205816912272223311000116734483082545955772818564457287401561071171384236128881430298597994585327565585082748128997709686543722042168815424515734535910229947250456320033883395520683391834143777653314494972881218157083402497084712324229829617756409538288663800113367847356972872513952229723841454185391891574341841873135223696596901338431806134637952234275581807417197611885818628609849854876546879371512146041495560953388020193389450550909395614843738943934218324174237873201782748196475257934860746027389056376618557635990852020059831331878436065401906467292657617013527699485940268950305228957872805037571632762198179580718217393293497966769069788909416930124890352107419047782332391015847884545567806739235275039544085298311540169736266992033262551791699065994283317483210205018614979989066047481052650599546267824586169221110286341265994735441916645001010296845330907009232529626421314677186455574716977611682322150177749472893880477852581827054020253823302965113516210939713975816843186995524563947931294512484579873749930798488431690420509141343400520917263988678371967840172722226627765680047896233511885347855106390716609521860670751164086804049682204195899649706233344729217094931915786457979792261174299340511675962427606933742347419803822606636913279290436255568039527926586653202823490563884376128216586357948139481315348669203526957332255446118716735974975970782872599058517674460852355676630875933487551584181668897472033150641033687741378973533465142280240387919847238291537998386222424713719912059594440822738232777723137395988608780526567456159385214936050542927838483792220464993124302158561809215443455062006973518677653700221833005101587331648007453009998437005790961390677792688723139039940420551199648166222284258577511582156192845923219239048020807102526382164258513815927393720401122213282585914205128630402708638981663298221815795705522241182877815679741922310169854487019424374259455807287903229380282913564560975444547987358525864431709967907381728660478404063522621143215618705226447828549287274043151226817821937782072858597773779679413648798972712278351518763312532740253751859515951423029153238803184718536657833284079497513423814853604593243190458989076218966110509402132664009836257652964716611871981401905788400866762239321608473757601286943803258826623385383938295295831309629036364339431014345547328343284862356751462355393221585053150834071742364786774309094003020244967275666325822529992177323256366969230691496922335041746665633172263826563354488133528162231090330302281982614285671203133420152217306927176030613139855803019904405237809872288594632025052354938543496982633471942748976671040142267247377570518004260800160071765933901602442775678489248584922345370185873325323621127869201657183098813330599426430624061669300034382704943535899815850185752093068907284876697738016739413720682536976438090521388688438626887125474273922145807290627172672237770656717691865985372926447714207618612285017189694478140612206667002739240207742195015892187208301032991421616905669839007219540565885900351860478216079242712069523427799836801956465790955177148425064738622010808511051898252122379414380023219408148424537184090342526892036177251883194111868903503817125155490317760064379588239907918700748264838430232880933594078419032427397325370547784079681399372177247403113872386517055554134926323310431253258620526643037063294899445204251635347819212678187963934664011505017882771701344659538090332933214764082891582078288116728376793600789074282560473905266396553704182482882160943080690221335027009104562550401303490596690640788502051278351363832282918140292264259593020380535849789282855017693215797531923542296613058572405299279939144524933238268968675221453521940345484340678906777569483878212923282642931301560383430584531536760314836490113234523659840095407222675291320681143973714773691354556789459904280962968613864634993845308973429924254075258506919877172952467264116290473307724133986102260716861469680722525413228352507590648002313247407849692744452624079299025578184905561817402419713267409289011730176409704080854496823242089361803250502406093174619198041068082290329881961575692925776451091589095142019906350228494656451367130449181188573540677715823438499486390662013510730264262948785362275664559585352910031519288087604959631216328596977195657906071913328471977971881148570386816079371454777142283744407042386925104775630388406694504011185539332033785872244109448077713680626324261872670006525555089601019404866820133821162927069824244870232550967292770027655656681425912729353959187254309932453952725112973318473434512438694605136146674117110537890827953800868635004570035411339031601261960174084524255463666213730755292814851298960770879782249014439535387571697584832288496563361551555046358918804123221497572805360020955934041163985945088364470172349804415037927884905831347925477468937894732435737485590265046684323706629721523191077505035142529362160143724080362985461071791598826106776142681753471875503807854628302341683677268316038538451217687537048897363876873983815547698707026024340807446645366300587428183148314088885640233162314325454196190092194284811925437483808996221117665857852309742973506684469814372925225912841822451814574444937549676908977520462426742745376032462313796115815078915104905471274980810047817783673443019964354400233702518633709470702226792243625403377654836312129495194276975283590301873245866242899444069936899536655788333686457897020706007127948273170686494077907843727400388964901140588313258069696465338682605317348282709562041745541576574689955973768237442501123904194994957309803265164775229713995836923441391432279543658787773210810724263981452892818172308689314749741573263970029065081237428366168527953738335723052155878628467946132219802053121381289328792275061183348657631401653475823493847759686804573430786129487497041876486666908064680406548027454764153711766890721073585991793777561183253405621832283097033041727012946733634454349050735181287486523282601546798997959992201606714675217561167867083211980664408271254937148275605427575905741546918628118949994861001679852739158484918661064061127676719227634448089052665153194191947082957002828994138315832225135164760148101670458791570096368221326499072125160863456661935488649594646837963710760736339029839724676020101303536907858128250541835024547918911891261984604982528673900822575031544821906191838341018464159839252510065178776196079514683608625265623315058788708459381782669890189195676026020656599746054967613991670167385876663352269185338787782992216462325633953821270160296562686188496937573838767950251054273969463918238428011715061037252841152163609017274448748004106758744772844026913300184388536923532298926366614787255373542821589756949759131454188107820248928314985716690271893956622791193917178635633972759395793845848225792262948740817061168095483270717555666672580636409007278597651973720199642850700760723957566331324337664175487922327658290982430891294406215076655290408703501243263360212546415225064617324948528759277876169553577420787782051481104370498558917226988399275135257769499579472072257638914990056072871390871643199327990184012321215890652802510648040648867401416552656357861259162647082067401609476247728917552170108341875582211806352795451051797633443206319003025000811099813996141858119528869493193678038850648970600390986112299278134398413534440189988348609290918916118350213864820256667133421059716036888144059463240849938123663329996659495235769921006656703189726765662529038203212678384864325575427838124631078966146466421279083560848870578504318570073884432744060375438957236635814241257778983755988600686168679119115260707257082993601959091982810913407813158989294703850788256584505671800215298569978729641265598646466534788008030950228923982642074679528406311798717432050126582995630990956832016259104720466529580864425844384186030392590947171980300077756024055110279906611775105936556157018183850796171612752170523397579028766617652913754001454031133069095514719328820236365856129149498389525861031896563310196865957986004492273782964449596007389664326336133578339062899032792484460865327230318267196608844193445597575277980791350718106693300405332693032990286747670517384580825171299447516502037941754384210213331015936658171776488766408197537439866461358066102862295889522641368913100615874968943343583722867678830231917382183856878016737403814373007071323798372430996093268356474619554738404613752482587639111519889579477311713849808237287470595400766189009024298751062124281397832397928955626201502349626888309636610393181070824984107667042637303258872852191452084453030571606104859105375430331193001781261684184885270775676153154823231633585859614203108969180997502182309199684321179804851720980875393426709768049556812156220698288848550628387821735356982968842909372034946494560523791139254840566524941160791450671267288785719459100184349178730823654696776561702287469795381322613617270478566644656482357293066179150230264314203719399763759415643627899996169651364874467673321251216345607743748478084680252083457473105467118985596227999773801858167612594656094992283514499704551764187035965457702265756400622006855299297019699355261933859459624847212206056615278660882908035745753611083145566136365967421165653630859689400138864172966411037581190014693045442514379970163030382538700884852801195825705749427348781701551698769196384702902886096717595042716145493480331756658954479585331076766015110123108669755358803734277921794784768005660736429196186780221685222956750547149723494401438581191001913435957535997275633482403869947438533742857705148727235468134087574166824399271262642021505618107066547799180428581287183522008088058270951514819814389613462150179984361136952013287484933993983040480187175348234029045897245382774608845594761505869866179435599393034859869563206655432476342649399069922476873934120482736814649728881443291375271587684631888721214161006045885099153564043701030154117994766495704871303898959529658359511521207626469352634648219208631053205193562442183568273160567699489267255208652887547498009357746889452412175559449514977618495805303104675299482643592158038955525405913380050628643091457385263812759439159424972385341758033175571779883611066137166010347656249871528433495361499054854657165698652821974981446563969296487011787042377052246130836877088663605989251090375701194405101076099919673527141615732665416039173952535078788907884092229913676849136183041117316903938223078660747591470511444443730710289585318810355066602118742056432242448016950694167264859277459161345229773681334353813821130479052121274048159507870955467004478914224464373488654954669859302571927844204977800485038148107224407504494673349761788901774108128756515018266713296557995724499864198452208788388190222884217959181954027449349136963304484912643004597447193516887662091055429329076961793991391493548245335192522713768766846653040700970025125658812147457192832781743798689097722651159748402827841958948461750596654170724031824660902233430093662390691251451495584398734018842531519152421960467160651629287251185340814420470565431376526605880286702152183547946382837130625891922004029044380307671885564128647042121154447370952938918508272461909825919199796001133342571807936971692952301114227550397115835358579375395123363321638085364524318613193073045677283876881140416179045663634421855516316898606200063713314761947278083755684946289925914468010497386234605815071388747827232386780276659179273727409564913416217104880895190078889207839997052066706992119468947174965046991305558974257947531236570862296559060018670976591250507427058917102340816615385162762463614902253241254256873617430278240213837394152090728706618684250747982985969172031186850573676709351112623791214155594408066318053065957159037211067402299660659925820632531170526038142911115230199324970933650730314828100390166785453917669992540038554507627597700150149881810913338263182754488433959804214546961315510685218021610450197543074216749998283562910263968075590517615758584997166167834391988848490571655452269823419742429601732501579369576077737655951059621497644105507286347296002143681699670581293319415264170702623517509186346303885564716935947341853521340675649066838645832111805459356755898583916584838917761438786824140572270271067418055288633401932885378994704227600003733078875751054480456709219123806429523458501417420198011842375952153095560681084179238297545538907312539337694339744512844121624298931819811594672093612723562118821918343092293910385102893771962353299058879724270790596154771425083892379872036829235971861277058389652151872480679784358020984665304995783231609215966409806912519544017737712033466289825558564358843510190532226828514901900771164683076397839408187730700350939856730900385889361485429391961199646690397719920790278919946808972769318798099177706460239316619045851346506447052326675248520912842718155388294756389392193612973530867244219610823450630130808647487156159886842794102771420394856139620088520754292098272313453876805080721140640675725783843639354690701997020917780164059815752661288805298522081463678711148669273938337229063739356079032423567461908701452419917033844743717021453362038343792293772822329907397033286426178876796683735759768635934003839298507158671334966808966934093058435450577429888853788262373518899497927566116389671518562686214784552325321007475959462221615257312038693309519827582329001126502019178640685830453512245312938095397029362829883832088497818459721120519894059340529870553119047757319651384582838565811542529064970409733901286812044197359195878509240638810614725805830812293564385820472956471341895174345525642235496167123603679476319027668983581224409104584561495349207745878290000615275022083152512104504047202242182078905980989183529925821398584718707115168594558430112595565867215236239042608493266989070020178313025633881321445165138582644801036160363279380230704126581843344571043732565575367988983592801038294589254989874892145634976460276376965651282215092577205795262608823510577607803525458825751249985374082059195016650576066821501919213117859264530920932459211174397509304180609895579820325705578034226409106951519504553436713913430469179888466346203185217053227292253891085817050937924373490116527273702458994420383365338430440144424387641179329979098928487687265062879473464738960455752543309755394683557064133601406866925233993096036561407554057246643542220806299557030673993301482288728804348466452029114286458283281788372588821710894927452580192489783429597926106802815188420228766595227474363146637056383418345665021693270806848752054629482671342483657561470646545262640029770182429102810969449820967196202866479564210870202487002342035719901709466817222615302082772370546452034794295931347693121989872576752008220419040580479077197498789084977401841153793126704384110047723993166551089454733735545368410757769474510312124584648001464641726271275103711346581316483562598700616402810538541063584406045788636796792809053282684979689953313937293131307533229390750209563651137408461552542934375300557296976968317204058629016278297768489203398580436486197893574864037968027853210629739731677159027608612771137440174751883632218792606395786449951768737116206891354172195168392948557902442890144917291486211048309011429121784844022661304794856615901499607998952138320687886627235160565949970952209189453576254930576750841439384469617549087195080057801158900485291832521702216715279970038904243066586257309615370784739417509550466187368418658243768717135063749077539175945403181139095135459399883433150502702821479320715879516859551219153277660904296560096035095916775872271311424152497606597640454958448295969497683309357568693401124149644094222746367345828562724669552920801690754183352565294390398879944741602697760446728767983637244828418940762900474775900306340397227654281169312343399840184885857996229237800588128048312691912767291222994134572181628477053559312025634256240138991989891110180348949034727765856294541038724827638045840666934116602955093550211229095388743972733907856257767659914606533514760443402640695656492551962377612241087259943740646012077519062963857949827363587314002563641790904263757208642422242368946577005678570848484210302473837082354821105532365533626022685422226352346288632565294551902680167021678399362104217149256283088257286317600494377732461429055858123726182617483843082701580228092314489972470732291329440428583379843056698821107638384372578610020169521566380872912561257786258493118637534102190256683855432045172603237734509252564229605739837527144494577035652467788591548158545843638066934221058301538813073903455019702064715248621604129278891172778541549537277934792333722305042705151869934579308575933722667325322127452126022853620795474152701572670864149790749506215234381582089376664486488800772265171024980643892755007224630516175629921699101800091345287433448960297104409714286345429704097675182428672819075339092302572354053216871226852033870534468970556535102163456062062422460359638934612693903456494866568600951331394644281679302782945570347329623045310897501091323531691883084327139870567466401658796969776419349976532713543204723460779306860431803729651005645129658378923705833855142172828310739994713197663581023871523299662145725874967228087707855109958366856230365059276090297686635519731804971892286147344006444987826465995913160357507220985381024178913921602180698739751170212569761575350097552086356452275852697846351616051414558548229049899836664649249423970699974328288647110817673469128488584090123175313263636365456658212274037374155940664247213397590964256353843280407990943586566468075823286905245241733449441935669404361528184657047615817705304951455912159563882275678918376252641426114603813854447572972121100433492428256667828267162457085668178961923571361128515781730949816903881371850810376130415435401640835652192964170018671962889698603809522618256164217162659632576304263634474061290445872809842313742261944950569807944660163202355502719807372350716095653986935279191128225729762846312213324321525365711714582331818290618801627582567051635978310993947402020333550100194094753819492325148563579569990289177458837682840557967099211944490059483106138560556670142148813151935936764765695347977212615930625495527841686880434763879968149654112708985579576071451248422521334419002913890434238643913896945527768617718571845772369388930254534911394645727613516637474878125042578205799234649049091801665468134154365991179620023940612642212664266034812842764737750526872083406073591500647262931377896519770643826195940833097484712145849338306923637704167842410280164763654651626783370273841673630731167544691431647185339989660033042427741850299136234117050700891994052219290500628238198864078799967514786717612703167359258709860330282269777246125936457248633245246422927572434958893861693311886804526748344916050365188604181690372653257696761326057803777846773567005132261087440556147638833186546795818152154881141597429592173169098196589380113868297829292410853999643510344223078064997191466374331626240960782490304016054089142626970054378943426763299838240477337757443600774207488928986798659985276706972070325178905624302942951082292542069332761971474629571459986160920877996054504324006731358064609924619357083357634852681295111118308991519110672120598342512681538084449550860074533901277306858256267904306035340746482506546442079774416527142365030913938981447731405745104742735468484784334896436429982548077711654480394677495206726448360719724867616606734038950135669375067187143478655167664719559977223675508518543304383907451030148177645117923293851645597786366740019655959085547989417178624191190181996152729122733018784498392512054973466380816041818723391302207736005786745754487087340526564319549444923791463246898703950071167724981462646003550576791310628575557308292924696690108916613027459156562511208398602462644458113805292462470293684579879009761586206863964588779818573807598846493003698872711609134907281583085150776944591443564840061998735106287813219172473890889563232166362735061464721243194995735706819676160491471340929802769120395630720436240961650810867647617951691511495643494969197973313551009707795322962471155012342880879847029840890445981517443718748419839030822745217712759379276685832336350902845548281261577419480515296936858442519830116103097799799070413258415518476339478022593038079941576187506349942977439879566529792272934436469085970090552898353237460650882538021539312935193956835631708373079987692843651613592180228902787685352337663653635471567231540537994444680502523384738832007148167004686213086018595988958710463136133842352732833308278199790401978208434109246528670648522633590714700034757454385682420627189128358708951583791483282677632811791430268465977679485448704639277773805498090533452204708288047299093871740955473486288721587571458509546961053116182481211118046861434989550544183989863847395056889515728296075923093927619341780710294701415182511856500779046395562047605672582565923105351048932758437336683855870190411624964480254833278871697880826542532459237880577500321298984344008782244655308027860327670926324753066136648234532107938458913906220106428095456493103230502120120902850117436235768167663555183636863382978538739081826566807410028407806944435638266971112830333669244850399736022515212466456644956359236125681941095662292673342176149762125338896925767100689159593464594046335531021002272557737538984868306434157406248885684338892747060415150316918042371593474273065254338647044196468475695809336606206096805597457147801684290555062623632677312745330522503540988478061216779496673945097424504383073812752244703767030156165477501378643407697174670366131048208232054189487173661904923395368638278312466478133769330548935237913849948043291631876395377656777176649787071623264605490015702698522970410859391172885096678564890002270104327991950016331834622409042093960769949938414538548632408615750711264786718747634043341665740366118912422265756423278434396117558547595070771911139820997438659241126918890501193917580859091516163134807976307159509496447453950486026819571968861295596629799272486279919709863800562962869198907146068703813543423297190365176575208339494977323912687519219480484459352131060253988916361524492156645642146456777751319963707454763852444542445285045944691905157064824857160047262958912575170928372299726589551142168707495383780516162031374036456514661308221370383037673755022861577502901539841392381258363313567621549148777656335831502772672496300407877045818957402912091821414631722726392987228864864113174255118243811129866350811708097280727893993651868424360445639009171058617723355829061037877919359835918056716414479348652602104164857375035590960437798900541961791492968521878945639228565188470083765595146170093612975864609362067178761284175514021384067041571490282991928616092823385005868235126997299225379974222491765030964906624269950279047806825553121758736122247452884341558582499925364990840611191083627517484766852642769346220792260564575067709725057380042744009263661144809016684919642325024385015579710261427791564159471713921052731240184875880551190940034325914778097300990929127741298902348178633109175335156290167699949766474886414890621792858157343743596694872462276431893540839796235022862899008596251099478526401135245446642026847873178893983783980909355745294228525269650860642915657290838157354246204302844690525548792639325678834726358578146508838366841038364377680514643227319446682443957785147047228725242694031889226531359634351630651326072464976979762366427720556957684956117695786652296197270332980464190965739093669687412134745474390376333899876192662962431801703181721526905860052386943756372231303775226488579659470129346684064041533369009894943839683562358055608739610171027654948470482552811991543238653550701337178607224388630756021163218246236049478973266013575635470392116477387635094190765596014965803374327658466184924231721131500726813813090393134210823431663308836464087188865637470646316666711698617036187449656740593581602560230494759193729872122959706890979571376940867593799204687969277038580720981399713749196849274263436772225275859487050499788955657385183209798024268230382401368510216116375522169213284969579548907787030100189866197091232874419502576733974411511865120203809620974765569933565803559773486525096413223081437297402938826943142523063717162180024660410748671764899709495588355236850438615400010747951349795454117554736242249921361234128094145664803150821232956074533439474316989862290226291872863157349555221217959034045273944424686384161524567724590542639285578622875967326505683387667352485145147025013278089333168020633324341478566246776879453471901384721779492761682349808946332637248287429615546175168371283112437937412098963704163183160161109521361712038004205172280991486026008523601527467084381514270687500120134607907413370997133270657137466987006310794624358452707884374680140837120187459967982021411343714164062534868739827955978983374921615262378622284736517401732971449954848818846314997473834873339231815286470259443170268530003394936470229117941282011757323545145266166001451857257044522613844043681247508682011862238809941031535825293569446131634255577948678930788735952671303669668826624161409506972712945769123407540601862989716432812100265154549536239342702314383584993809127946210333949301080359761558753204954356517804406440215825473328291853062562498282226702973057452743018352712740349815425968955522283379731397552977362128509537311015921205172844892042317236478182431084691406447934719859116304057362649893594475200621890351519285534753305615761845178730619772034167823993015140600616496424663336815713671655571430940716338824937497408735155347210046030763823461057769126958161908078686112297737976564598652840702795794056531058090340025359447765579617824075123852715880470300590660494331581847368339563508774019550461880602187542067924007112410052323514892118616919525085950833432305663246923663448480258226997289976255318371478161501984014149473072485329335604136819779242313118126028131911027343466017189235063234688650201231188423627381384876770601655692558235436836722022428555610692655699188488011161561039024368257029523708163098158303083889605870938308762156541926691820996472825097105830497988680868347572768800820560919356316709021589634397327739509627584484407996248083618771507463897185194271077162789708954697855956897933332477219477346336397220693118015531702041247883933711182950254893079068802666996248664455483914987389279108308418391250953461602859696031161380174890764058955467741103312749856830971187295359917710476725486268893345343408416830683584188399624749040228594562394983411215943453074434884882576513382745735590264268707000056692576542821428766685822702294943683202365154709617666197418366356357071317491656395398376782757689312647735796793309764857412595174138328383093530395986500102266703124937907340374080325255873764661947764793399559185205616516644191605140193096945408210426418983184425890148576571846243257885109946770752571781792034400060342093131982759942447668648208070067055010475285042941497577981087637353201150473105198667352855709638097788380517753855287741312775467013176232149468387724484346682320550274500329337402831489619337697622652873374439751753774868193189567606210387697274830822153847634525977302405268844190184509162706524130268977694725193142280114143365683038440119925709027155113592521863621019098821120060467186594008238441471669471347333918122944003589694033619996467215441111787256109006977699123902107588883756627824186637338531639426358259721103880404833075199235875653308815751575536325035537816502501155668701742614868319666961913976090948980191247782685808353503129092074678035698598711990613956741814326861680176866962113529748939072042376256974914752196388581668692173498837173759452675209422926714664807907852306339689192467808918507582288586418806964809249397712983379432858818237648802230729750419927575636575405886007619653142468903536075494200054900243996757559114143735960701695292004282372041104410777688312269693050892031139630657320810145587332839638005049819410476577911254450695800781051476130077311402839029475499774509077377562438276886307903718335608412285949647511822606738513034213572176791102472491690019566159695193250422123640972864010310496940490593754596488258002241218929683719997090806963415089632649097627869294074865640273082927563600677213067119511650164965048549923291704104198900772413339396159640825594843983619605081723522226791625802903998096572364281694630742470742605531239387372804296305636949457403597331224563024607907209876842921478787513909415248791803290465337096649495157583756307097029824346200763454772102064309662012550634680560525462304611970127757634980334959048221186517317875969048446810467494525201697120661230973396048344377609786312426193622570089913204008527045850372293907415246929195290664255987875014557282422832938703568478622885392448661458019664231588698526425505677114668795975334227762049984683470131177034035717621425972927513582932966499374004830024568106791292801780705055586507725319782754189282061232654137214578349365203803168550219958440254858940726503579847507438025914532817393951565100642914890937547389819064521724166320076444117646113202486467841609584387711339641004466449726894738368294643069767445371623610972537544755789766536280595534879979014203946683713633054986784519204330512334162729755209069696393644859399372143048051527649076021278780597429781680091045240763473499574586781647226989762811820308550201468626044928646751562774346166872759115863877607606843678297850430039598756981439787275540118613421738998613126568660629234188604804105277480219208689971210807481638249175461797733872912659642986927350487508147577439983022121935291912492064893559738099871735987863397508056654286694024740766544899702252016907514507143982675125449315725595796904754549284674464158156791000264359014254557822197751472001598094225357001100720512357476896018076281555647794519048908652983263429823123722531734559719802525164486971429895914991446753974327158251141547397123163153181294764708453803512414100132918345392156433666428623377761993466053468893841489679500798406169133889225341175383379118272556571881647410363407830156778048221659375098908294909654568369650589657492473987463633191229995933909558260530562958502595059287512293361316749052745215080344356372253116104284835144483455169987118834127473987943266394569252864053069915167448563209581062265523379210386005633442431365273177738061506510624380041765574213231355852653551413129444488049550928553776098490713221823842977771924192204245979574002570412703635868707653000924211530267458619114833833551595631559650242607363807907291493540016566805591085827177957174529702980960319664891227031361043678320463932981005503845655377679525273691240860428023961330751958066363129949238926740417970880420271446864363030615803311976698597865639258530333717970900979083485727016725950921597710292287931469038895155881998179438497420562757713520871686527639223940748989210863421570778267862532607777035500442811236734298528108230132149000469468072695621960955870901773458180614512505703289701751780703587660547955691974358928838536728677723427974091503345338810412590371844772318634564965310977656380048177772957728756067325781136505826447407008100327099813236320439864900969585765648948283662817634590625285000619765192655166014418195449096576593090858339498356765934005846906454690064780257566511108662200078806613696025743677911413524888708311153716232471222857432955014008572811450678253093578540581066684437617931438397805097870011882521967934725055306268157389755700099123067340956885819171749996889009538267038175469353975468739602551915906126434328873348396265927464124290513965194965270783070378181198502113110978658786162286127343944405408635289568465492679989588673511734540019638384005395218234893752807691705940379546848340992418562762661474690295865565123658106863206191723000136588100619899487621842520999946701702205176655120182912360827507885009432547644889896297340136957549969014785408659547526615426293871230872396989582401295368179802201021316222022304401229367919293349057660739885881512061519593529236838998722756869900897697201037264576308428424539627118841022066891931554510396763215468348170655607076634924636714708231611971571015776075592855569357900201164274150761525977324413000551964700783905725878718799084894427652370566530862858875502302531817774953866670593695009239691574559387689127986359989465785368118361263985067283013991365905467747471920382715981239104328426540112182902016425007916438857225621363359527659373089285656357703681553415228990537264212152561240664300369143781274068144309377470939881160343637881789656064805400636083038880961336228460513210370433898481380693650325694606527967640628066553560017494721360964774401632282976244525775863028473996409481008050001965203036966448638323127054379702407179481613592419155673196981414747139453285756579191871895084330211315662699144763484856087119379904506992394615581187844266455925620884432108347558635084988526630661572666396270233900405309881860261548772976124708236546428346255549001557462091020642201650272799104550459336061710715434514469634711764633230804417491819527520194991598897891835880926445392960874350523563366440654075973201788895955906185098040354536990461644454735954123873065766234328252232572444137618834832517203405453942260248044350275591782706470611112181098409146306145963628420913526094619106921640956527826701663203100906802834051865344067026262287037276823087683992582001334682041865552659334472076262610674653863322521342958887115999107619656239820124553357914172132276776133370177712878157593947264363916436811016355319719785818504653120319630492546921197441681936412800241682838313437649399012310146551235536120276733685036006718479887153120972191444067991593900757855888934578433612413141607448134223225998095950116142517627916484280760990679770003682331642832802334278011624035738896781763130722054519155340644550122329898494817212466533171959093490306206134900120459936443447424135700727090870592875759280352370345214316327566521027103088568806628864173094437408432516553378806995788055576835659837079358784366942831168330352762625993288552772307968732290525585353484867766908465611628882067621071857801501988956600190188484977630912466469608674015255470885378372816419550880384971980947698972332497237104656324031303588195280336960659208508793013174959782879798784667675933628459886068052231681828148453121132212023756996425120410828499161489770579183284039906890181665210409757162407599148820903197058649203716132612845483088041877338699370073337784460372298665581379729864949788353844098131165855892313729970662068020230895867739386456591315411536604832596799679902560999282509884050625039447442941867192051169221582404776131990803572428463077443572113970134653002447213625463256952351187820167723533673839881090258204647236750073034380427825233801015402387526465099013858438470713679938540331841102297548777675594308030624368317580489497542761504961071703334603139337494017511732292274447919680309883744166740097698582222781751616197352003682571499120965568539841413104415681877821348449803675394196300577204957575176360786706110241848636627858796553698908742684662492252380495760261512308996538506948691378821255801476565257664528713006396974309720484351222913953564178067478127826095808728436306648967301542115377145687020142135292927943821060000013339189175902269566013273830501174544467143647204093248730192148285900472247710740738353842868133055609577766239134691694225859422797558367474189993432518444508455228862067375616107377404392176229105113974256504522495556194042216878092967198143898012695996908874448948709202637924022594546104256528159789922400610750763895075405244602438559931334537870294974436066873062780739025452076585964173778010129153687047093455824251534894443878273426063617570655743946914313733254155757978672833866190322752490567800021975943063796232973946157426658028242121535890726065619850551428757442745608525066877741042407657925824371547047967103062393303262261870234630680269453433638832572680811271591243067626639308062291970034258180824166925991225020419972810897703446642589952258964462194125780049896222280700815587523760108526544530639553494406979902532085696375653184222484442195872255992675899874966261131123915485863095240038205857930505382665982005056978990108026893202420714676929966898105575209621624243642805065381962069398286723429536913279547559492443082014511555114843767698370464746628761908394066164000325349231769817746665551734247519971754645026330103738616033161378473949570304069830776963556923359942491723981134543157427171622445225048707842800256037919823814140677892488451796207575342660833425871445476341310554840732776105207248590891261580686842253686591191504005579952054818213642025094494538447614294380644322540720066706160815826511551337230976225574947447726231034801515848607053621153531015584083914962725545968707744175459623990438094604128999912320674397663355586291820532935096074657462241540489442601771733296607070511111698298079554054189850099812430386619367261985758356490781058419342450194548935434203615632480497750496446121670980570156113962717764211703150062134378831289983426153820547796126449668993390811943194471053347288702487039063603783185005363652096600158539691210237791717716658021924586395331539643953129913639512980708244920370619388680641123714258491967340780603070595231836805446269508901453905553431402349094801828489089899645049856143040483383535777316223858423194168091788201047197014206254169284902431054024757415938445432458259350553341571435597279962437397005889722153886179519797095807341773446710104649482030458748752985146220700316329948569483938974140528061075658325269463313443366454367841057650905951139413028821701405031610598280176389804281345575958374682339359646486053855676541025090734543787259369183342471133976576550990038784574670893908656048661767980177215178818362409989035609917674799404375480148246563979368715641611254564612447808961928380881317582814672558665877618606633311112616661219555382747760899906737826822989456990167756058443401321287758464512091447298763775722680009813444421385857808520921950869279323167719462355272375963698569582814716312903075155859775166965622684677388912979945111657803058518570114761009740359905525914381880405781596221884650827924634596920238910735484058515519518099420764722830792500871442452679778190269733523047765691306371506015430544500539163580719654565762362527493893721300637216983913015304050289297462805673879690868673282939729904705462052010879967532128614774969420406473621378499883158868234137557998245684195770280092009663442475915124297330109944658065990304923611539525449448908758530383558597587471621359289381929128061097858333119675723940225840497004826702955121513093817948075542551467450702415755394224960875676563769829167522098949433145294784704164086475189979685611488037493739684329820935195002779070205532717442982247619056312720282775423182436365227884005217543609764986305495629407202130062872045161499064530608438539031589284806303432430032608417963430260583812646403780384122899178410953439685425458662329952982471685827233592407438502162561526355894701457579993717725543037366916907147426714337081167395407454931281017876738952313147471629461213958929424139577403959361170106051291520700981617063386124683871909083944279983187273852084967698293012738023058550384130192965199481821060666934782357466307862353872161565256725193525075247295461486287257560098006424961264133425004347751360563070401379685835156144533005775183830973792248165949722908081289371046686896706749216983565008627108821586639560091620122473501687002797609658257764976872180935968914865094276543940137004308328922719970792356109876503661755866790714733392735124359883649829205572450433531062879112569539117082215396933132518045938946620881031422921782246081050074493864432684284728703385929055393756041334448349776420394649553208368246764193450331385891489761016777861933454219461045757750281777859404269855019395447603889620482099442610608110928005207218531466179186556967275229189507731200239497634330548668670212072921977158081718618329108166109157320366048349579237255617161693918751316779974388560600421558965171834560298275314750095887409880597153533680617926964392377076625240220893102762763503570864323894374103981407685119253418302302999243478661388297379752955106618927799128366267988163611398191672596167129853710027612371179937497164038589590849729586004147165050793862549727233214084244074612485853229869574858852771787894573134137706356658630529874546952621805143842563611182497790227458017746090066811146354100077723472794443440364312715942049993856166103141805950623490761571611977781759443657727741495351364638403762264756868500785524643284013110475487441135160504521661183787665141776152447100454098448238811224443132706743096278701831528282560529599495502537734842448055115791814115818025088844595852472452443458090366263023233915853995865068115301018820669141586981554033631783290000867271559320553917213433710439942276796430519940088203818894127599577409447328693172033406065239670419912510303175036535151753440031786835644619951905649168934855129784421493309730915652452757781619122936307683988272641446179261605498839457715956773297451129035096267759164249793994218255663814437768652066943089939728755515692390020507982989245417281470957893548130766898505562560712645000365854930979684911739764793443910548520191615312167061901099847465373580726552175743571109363175408746118239580001194228377771676080290507590423765164525498492522492928521054538690380647195530096359126483722617145166430331042540828416564709696749698723339879082875081555925507353700798520851096021985660296937771009790564874729604513500534146157386659401643455759776927032873137663289957443570073945887703803029763303689517597189828401357491448975885361132619234587547377403979588933460369035819109582888454327493998089854345629244180921315137000993234762542403728586409172533791721409216151330263718812907873309837497921397057348936175501704952588898870767095781363554798043316990930446319149153704583357161032667833604210377273705442277438000462045913425406389019009934094359125853354209605700334653711051381446618129359901993382935478535271919916227200289357460198233095659648188323599272339195699664131396910932682889170472949386264852481046705649315021937533542680302675235116430211859047961788247749031770998417336643833716804259414593450058566324609403835782399815364449316674581313668371775143598722151848460728690668164337632260834690900665998678735270441935410190233961732113323133101133358919990651384928584132917331705335581949253030099533532022291012779447230522580279304401108199492181147370359594556978447127427369012572834064164347748472066217319223782180494872223936890370935199780721159063383507017830884120090169880182049107754219951579023558480703885850108850736293816688550248804210412791623305610546029085551972925603931561545188732314588582110106220585272677700328873561973976211923623422060399074469901302496282016173446178096334005992107327817465501383752461547608905608922226913611332316815639821734384766673648500474744544598952584646544062870323054853823632916913764621938245034049121673886168297794899632321935534779693082556276673655632749048556764464977925952990024248722545774895810575789620374768229041382305574606026220012099402733147861888293134521278086978198098572084740604429984622505242773350879701294235626755408050773806379283132774743446719508887470007495360490550476902315330760085941121491047043392313228423264447280910586626870827750618976017278848928152011663227432418918593225486133826308095042178313949541240645782673833579311723263983671798229989856783460185235952968934611863891428154430711838059467343320859949611307707437844743800938679687065052511305233776734674204171311503640144394543687172948042968726937529558059459322371698749919347139219881598753081592451834738037818131847419252530269447782347795214360184151300628442624844188019750251079797232654209543097944986187488631949908361941905596366193795573572991708726238167559725091653810726137586933363486630216313125863643613951403805388244386494169181311577161381564467391175608282695105203847388806609815526756260045229756864905250749697774832018320430171506003233189865239843603976265161798187058793392344635006651174440050797859299812654610349968249709575563443330227387714530249675040352101385857047415226287217594597239268988977821045043716384702391422112948015384523028846463934294571499039758027232531822285554318194073697037043291672892375917926807557114845645511052775736577236744134821939702294348452730190340861788051829907931081305520327810533998593683904307466914622993199952821786517424467786222418249819374862156983084507867376583898762577094371788889339950499317663382271678259559114303580862066795128008122137307764751077774831885828100159386635613440547376112173495050439805211482890817543859688494869639566734300193251168667245076028389287129141789470792282744157186243092728615100102068193529446002202275370079317238812515605108415778306591136120498118917640143738572613540959328604380079566311105948182191017307291559224788884498257557478687394479135560532801009056204670850941455446512143639449405195320827549719535866235515760199634236429332970833219500421900429901566983292418321589241638740294697554319311201190097228370860665430747267907248067337584118952241642236404594982734159506733873159704163923286062993991520054674826002645175356289602044612706013697171174330199734099385583415521401147592832011590860840658639868391752095021732033178191922944278136485642467005993771669457142356881521538932797636095651114600576695537785980324594273445397217973953710155661501845554212021973519315473047568628993545076812586134269513122823142054902597136872019390849513825248732707619992467511717645083403811689021880190709047848798889929243215437352745159128615544508491043617285131857645523458398962558423730155683558384776501391664547843123114292171433745671699907394027769520859408411094182617776547946238451084490571426301586081578520473010046145116708967664714939861878966362437713707197728174935754124116782041740126937141716978457891247015519297753533873151002061609036553673561894811058678256560572569044315282111765234195671596322270338114698368661141153313410288171704519712348598056380465841198851723678630375496115321560180393644826088771543901476146688977331220622038474794633497813106862602042456306088215057304541307617994519972717058083917798648097077929455854073386235287457262686082039985155406152060048987721750565695157357453223958279308597033899365462023505099068630121157509094494552327762339924044893290425876742661880401087240681939688049331618455832324362040014553754286856435276938388344724974588605470309298437739088354515038866849292277261789629722912131962721091912515085070303463909490932467735874120747299813797383929654616816196900811229286628691393035948015593844942677721627759913021066969260437317995877220310499008767602313628100847913017692777035170677863328305839051355879296306193120804961034421487660888339515382198228810192076893635025356761947894324721410125320956714366283215565940775516811938398215891289928045856116325584311852947628895271562157304983748855550685198257870958467127743535691746024682356674632327190802602581548437709089592441727711661707009845029427343361979008748894620142462901369153902310916809993101451705912182781631305240347333509631625175298851698878915120578024330202072618649199083949784881432154177505671043146953143122413581551749451809109733057081179503067945312757141950057060002395906712035131513912926909926848784021269875779383472533470848750792361134947074598515214464080437528566283591034465495502434626627498859866220656114583217755281797028042849660986701188362068412516823435991552359351577368794874362643325409713782714662644996222013886846751702657485964368613833364456427229848763149670821330961118657240877420120087670079275248431390510241976826487517874158911827629801531702861239666570118668498292780431769937873101997059696518838108126110140310759342792111127440413424348038995848539687753236917704038102953701863956909844081542733535957928806619988932828128153279323813010936792107224635972550928110258716175206813367986717990547878768305941391947080249718636432212188881473671828657997581124831694569329529274201121582073548774346011873744190529695015522923410714312998914449257519947281695315789808315782625774877785317488416346747122716699777637621310268404819211608917642151993862487749417685973640580474537569360208215517839996477029950683895922534198402897484452546314010440191101824030028804405288459048256116319774460319147270027536920636217830438939670371913374147325356774308217339752490336953651756761579670911876629337721693302101050889724716518045171868897899707389395057211184888358807483663040401851062846856587648555336048365016191608147852921133016781131507328502323214608029350567471953302122132745536803289978968092511269265422398140226954056832005603966544226470340417819748264560835352345583618255317168496333584597840449468462162305811189019757632490883959556350041805036757246816588615123550571487027008809213718223949802529927828926015820071688080303573056956405090029139968685681044924733851263643852205448235178874512419070067632038499231969679925249411973359232515159699725083647620718386046167145794037619169126427195820274448549352694745245080011940579110345285082120271102594365526281436065308288135685434427984277939315041039753389312448740757372686767229130782916498059821166126033961554497012587408546621980415103440386280905621321604847855177075903617864699633316197650683786209950225081582836256066086337092591182675817919681936540187198088962951254884254430800627140471942077573469212413217889934050810962370881739428478666446546625400608176923077669703131754859922112026575849894767484446835711394388714068678935372239493259859802454270467592444296272566937303356119647896484879660129455959802322205145677582673952878894395180043097676025921131153102632783602160745590505891451852167515660364498254307741630910655712768699865203300434354873165509720341311157140102042160065774542531622314475032003638308431178960688271027537495437360196758372427382591580245245769533537721452595046713075986559918079334233877754054333610849860755986838685006868850275800033795568435868779850408361938807865288362051813399373469002834270915107281560254583895564305845646047298657297541419743315855271718818269635999357417200352233109373647057543290575297062317293210393067176747723871766040103294782623867152615598825809953035340921100146354977596985505472739609526504929149633277506988865267731692831726101176883830755911677699875844026451817582421708180205150673083511414709677602288679960494824785829861006955676483404380126696410738259525670050981527995906080575913054032061696712351682203631835246242510221581900562333776287885410563236493102325649655968586499358334482367845325345841223732019565902262614904404184437019057966107889793590055886876956454703205141203227489410274165706862708486467523218669474804481118878878520129897517430674256644908494409046383721033074998413252237195434163226716502258003129837219285452497390739876364407181589569697515870226895669448496491646106442853478328031581742811812129023991605799479744784544982717948747544107341478492519454095696850162382337650451080429996667735740595909956104309441981062912777299818721055645704942780047909528643225712906941680302627649036613226928734059449999981245019845938286008472327596764044854609523807247868583556074706111226878124269119345628608576996525111772460925637893906047653739117558638409367174670708998490993137798603777106871062093198545705506287949899727230225014867988138677283434059143182118243514665027713503538350795825426922084620164246390928233661118620632806403309310781058350979371823624365317754029047583401336637748172132351865005343325937928018277354635742663518435520308583775875467803477704783042557203606144095505189207429988077124348943554472832573295723529100653809947034020107169248634304083689995256088069906818011050232032100558851565005655252093174025916809507687876559877137398488303573167345101347935319511810847570379746854039916130164498777844128823620008182556442296454634073588072040112800683924186553204029625546266779192958095844297149445531760793123473067858862436694235065071429225980990748182062437021348586731612788226861192348416496439776848653232265608082236371308471520681325868000370362470377878264658488259366565303493194071940994146461806281726550238539655009353985682290247995270212536415478865928799484082284478450057683455405898842290863723966492379654864557257019894454750476942384763317367530309479216052811178124051187827147289420487642552758538169205540351471850259405942277538672168804449543608938734287620889895109745075207890882017649847378618210977719342275397993533859585923124930989445156608615666241382305302695405807088388490673426164443331933246626201136278840150119932270446258302887038329914114925275889971974896001069909490990728258871587036396016146942482449471798626995860958455576777122611729471957457091420280681733175067073137461219490810942163414833963545385687167540999225689236414691748911868679630109154680175813285452846331198361944644684977116055450383666987990361386796649124477068015367408339700162820340950880574404924301952915407807383259118309311768844501077284491424593300035843793334685186399583377148809618914059586770448548293483464464372650051759442334325278505058190468671092824281844547702775898403111093038017490663339049556390639758953515624423998913509633661324705608477015085789429528673352973041115756331106560668633080317798295908010545587595845483652334250060361926911440181730642030694973550740659922082562784297772411210090743312725174856408859867357200281044122887443011193843607052266090755650492165491003044614453795666336951645933268961850696106135923154625733487585488802667508010604325452370742734569771258086533420842069765648494568105443822153645589582517059311581919160782666739211340339815405405441161519040446297070861104062179290785537805681762707042323585322289011872536798401045488469817128213073598360925042735170523928444583789048727304764481915463702162473399609527411868509245066638060703119176476087156426276666459347934589673143992463097254056783836292120638390803156769211988004387165976878141523506265100404732737737238855416331101973930210935015020661065936792716745345038541858795969628954651543423331480992674400609009876787105716614549892872885751348758909244790774320794285464070040721532648437124297345440603913827606981683941322089344145862999243759100368295024454714409430569929204231208604787721238229657602344150819389776111719950510449120024302496278932708785542951656383589264288719323805551482139270751209915108090392268780326598824837190181502273511619326191793591089792675702389950433732461026279719242304536291812813524682195028239908330298150262346617330326015568441646861659647787581715257089137718973088926659274730554151346839282013555154357338800308583583852783552597584026332085495893208529240855705792428873442778741690215170521034516982442658035937005702449845963257178110715105751659176826343086205946129087780390436754487105724164984505198460422580195366016156335435606683891611638550929896018268024191684028999625078025236432889373382601141219763090166293900559011766511770155028860242960887256631647280096465278911617577671410919336927970320583568081492626398085397544959255960297332501222787066696890086622068164851658203964503582131270385259512171045880499856404532098843202365494154282652325956422782865397017545160110630527010132563963489175815599924277884278342106672370285496215519710575041745170392757771537331965911870132831665089307018534187047542845222577858153668442451886372513850047353944620670218064561222666282047977070661297923158711519026595727894931689829245299872056633255177634148842129945637739530067680134842227706982223222261791808554986233834502132384585742720059423373141012344494721736060851346692195726391320445373201461483019177540402662227409935831938456368898454867342170093381956771508868672904705977614429097153764525055263183657830058144992325106862265205321652093515525783016453390125767877636548453181977320001899642752666998612242666546455494763861982107788232753815063422674083974119488587386437303990715291783646559410605191074039481909668178678425907471414625190763140865252688096273391173295288071078633553907348835850505534010728303661003672574719920893786730198694422688669295160779649772990114774922976457901909759170928415153813756300128279140846590925459340030293806950351353886042742696640862468278946356289084599188375806058205568817412961045750075917328366695971474610732848550372898063943715068751942187911914183115472696559406498545335192332693184958830254081222301230428437682393101309734534059613027310807147006150855610109043065889947960018772336512837235920321469998943936406525612377444802601796440182448487806876281310802846076023780566148246169682702634723122106036559781071498754611097848210150080575304057260727793204925131457730772953065579846787357016063060253444436548541680030739197441411024293467490135018444582316986771805895769486213869161046382350720940763180610317052163917928038464578653133544237997945741645525251231316033179948001301438353826257566354580612940456555096291933003692393642958212616584363148183350145665498426345010014372802031621371517163699556539994836926635709836796643725035648326361241484554131298282636351363821114500658305502598726487675200126110010440169927757509721984846844766842760006390154550400946602748453373324533971182347762184485374537038830151327320349447754071442873618471081209580914745681358306502127348229872465723523059402439303668461966800831132183599645635387948035908779660263991703008819215486172030933652137643546643885699398112399751534739446145897337025193806896304348786813502230459388701028069651628272334801691364644301729468106993502074051198911555016023225080650006905427139186904770209156591695734207239481519055743762897476826403612579121045519493370415873650801126619128166757027863525857541965902564683159809888509340134806853874596805950876684192953330003858413918021275231782072194806975795692423904217977724802888604006358009680158090391719523289798650138497477593778794787094527104623596896309544256723983855417477374024345022617057534508877133146004699808122164248339104770516384832559702423347838561971239181027831335850313621290142603534601571307565260808648705905875792953014247180630573615097101933612009969174809707905008372945336398046071010026302637140021869293172294702945118235097761481748326867676293387765250759994616647331710973343639929790064049010099500850651077610552185730895686664456858066952469127451872459804106130184279995240359946459715781142716298527308980554889556821171621800161189741628599294657999643715482604381715903891875840961256090782709120278904415393057521285448880562971431087701637279504148418871487610618554199489852108389720173808314371286842109523451686243643120790754739013015020539772485869899727148282850136832168144028463691542400483105102706040569549085107477090496685879887246938276206085121511161373345231968121500333531059250063213718294723187266864334959485367385584424174854255548448230090565732690749015616208268547394615669529087445565408194685783616150801926517790346254175669652557045434288916565766449397266500450315493857090886190384588963896473247853850174174379386773786772692926853291253753830289049203534465358360466293828442581917731092451557864704966033517944655509442033798136107810585932817345608835386244923119785783761517768220856743040745965085186387208429179040769261689070213569629377904241118084853591643359368955554448409118224612928553551605339653077670539939957457164269616515184640841833631777623673708283146806165521387759169930998533894793914445925956664057150135561994238162746313326375471304187732564201112382512552367548482087039072998221278628846566254403556508488239703677306981237891251683911893312266666242351636103801859247824356912890632440505522700501912691908382552832649822800638085015554185507173173098643463228774349985519271698723901620424429240635410717416815394015479821052385498971141197401426960840343476600214439485990839653659196418231493213260430381782459629006467328651148748693660064793426983684404791336454795127335121228153499990049358038085041529843625055192626573613177577217134396840077042286118956457608732653089145412604960453190746509877557648444068865478551829756034939477240832096262495426913680530427433415472484945574161350623324378257985696897772276476528871955131123686917733560578966463235545081656468649824582613577782777928506713204065585533879762413031883206472847201934935511485159588370087447567475298800209673103718219773220991556127993823004552003135134400148079879288903701121234177242176412964404958901902742760695213729795503990684828518086040555686139866627452961763943772533015719260839819837428372798986387384757840357936573388097215630043719548705289469140013829606957698474042905112298399165824959735195956253725506525719951580243421278663238649887234011972032440008386763482848879317027968530337648466557847787968905409525439515908696880809470497501005101164238053064201127884852876711616961202874390723041359226903419266839134319485001421645183511893258108567327346986985673657331629262461742760827661206542991788497565693158685189914464734401813161591744878578588476139635955237943966697738342239254443083851910752122885266734636626775620023315750890704227087559309988428914482427474825652601446901327149768449075532073076698690322732061890534441070905490324954349630010931870826486981382461237599636067708504452296808868762261281136991695871986055095806494528687498774475862728499014130687712407452804203681109215626841471823148655375712409983849495216913087881340245676800978515025972242773460146200526485877154244818969221373464009756554482224818297828719558927465191670930601925367941842511833840559352966180197756768123944177361715058247638517261712503358520191091922692508152682316666199009923745557297548086004948334180621416279719570863161731862916471925341684548165400808775353281036934515992603616782072234395517645729645581076404821531830152408864557887668266461369319890883693460942185212248636019463664769100332232855429123994048982960729361477729385627190147398023101293132983089821399902398864897560699798172083864459299098043067792554199482739337139107493972284067478158091092154779972800194281678139325906086576443650325237493733540224948334860785517645603201296902946799131497938315932734689919593203859888110962828111670219279473127598860198474538969740652007772241320934412075513946857974518826476793873994296140588864682447241680950020127853215140512190899453149201963928939288750385678144927941828120322211704770522286190611931209754002702234233752395072738486727624025899799314546810897836207803801462726669609235376606386841977626655355654939346991013759082809926449900989448195857862315124257595417651142205903566205176570874606795712289682809438851501568291834744923425415054430108137870068857799419919389955176732076392439738212795226724543077718809219877684971524692057241891387438090453154291894619713034120619639756137600645310966674981706537359816541989446080054140417231580674287431633472381265623336077244150881250282085897629030775705451590725874215632618037365714582396152580369052779770725420279468645160011730732026402408910288712359168683511994658232858211085581154735305885244912475617293010646893713946253982170054285482679923560378452192713216315755442412296263878012617565314515734627355227429003936454646330164448014378981025505205695395707191374237907988189748894122939166959181477209005716493985756459533611930043123206809727540095608043455942383384440890048197028672391561130565181622759460456990809378111755733196758374852647294589631751934585409313513575938951494477390334209099325346535253741855193974050347979009397357195312922363506105992109831264927255131244511880002715386912412698028623054809759410554845940085154675526401217793451516509980398935830205809024053847463645996543386271783238281679148480072756860628020300856172688311979210886845668120947859540899116925518046564605322753080328925531118030762421927602774926266155160199640038313366565499541858525875622301667580882976492322844775174194291474961720173693471358392447317329390635077872506023873018676110190111406167920801361150482841075291977867330207224860533545958701693205522398428216688106626992665244750511659328010579627775274424802832101429211191940983959240190808447114032892919042280796666273327456665077784684145722773833382907133376814276499469271157566086185840054476159001478027851211898882793064841936978002126636337570703726926616876728757472803479806072452059689079829101065321476536841181024534486305275419634223479310766415277558192411904936780330913257951155876336426843771564091501705399180565444064459126226914749030577281607029356353982200251949058594293016906523232449428469262310566329965600092840012303534493290853501935903525940785393336654951860631047713485722076071901655288619687366728571882438376712093930431710230319363479189371478145924484522093333902137297299757002116891299186929371175204775383693807779412399726087709811821825504703320714272846695078404125210226098249384989161574353143046434793415924131131992656896163068033326913547756096786263050371040671470308232148050949033828192958203335894788265463030293114368950543974457208550041671703144121853325326430649812341619351914573642901627993234483524502725471948672006064211823418419819008310083356774012461362922434637529393625743024792031876127159678986429541953313581672833527814290286805446818773106841204952498045190743667298456967411644006099591852796339179968208280474742534193492551355889661622557051706101296424270647910047722804272966735723804785152127929431951511818954896071257807386106042850004244168015857012783499236169110480311094347746325451180242540253334481710798673174068981843815896185874167368371251634542404055568430645484428543822252493252276212875851786389564349410987258585349528242845657247019838651567773618612301627534683735398114511250677304011936498126770632890329175442306870775115867539507146269720965479417189645908183886320743957064117142979417239533650657231096733397247302852936712468083597545974441997199957736782440999142895096430842762023432538286001082332796769995567791689415287245720599475394578692045895382063701370661533346708389118617474960380748190523198947674165103141789336514836869953656321632374233533862313931707179003546256845412690184046642810867787192448686159834452250773586780640927074839989361955986047925818253847485042947158738470243655374832216932228347062762881922716446497614990631024758616117557799684647732825863247481239614390410954612233082066941046925523150990569728482303930415107434813201794364098943608519865797762963339381159466706983752760401190727131330722052855332353923792596225282402948556134528749054885150425057093933082404618265777743862390267720129192853165918150881302200907328560049941928563394762399429286142352394251319499698421578962251251393797169546054399199284885591507403564573870565875562542299661750008675970711238489895178941922311627753983630085290520077108905469871171195659176407204734175225818137258773838553193772058564840932506290586730876315756654283949748575953475367186589408275080242949985601709849968673498845528920099649266639725492525519010041527123541567840153346619619355446144528886477411619488838690803978893767653031416392594195240311613673947294309918227819232893303524801845943892915039606277702033552239048793249419843504885270694633444148501623348886214931645127979849858880768297784441628675048399152562759676661553328852434110602859571201170783306145686710811932546348686664069002403954561828512255614722966671294999578979537056211616228387679543547843849541676280030309711913228708140736019699217648281642222881855555951023039882286315009611178894778154874498566234122597414126558953928230587570273881777337086205157314912798437648423646646403244772797506628388365278701207129820191947918729999086158936872963035850261093960758023193552494904078201817943034030552230146957033435644617793105215467172491092300817114832496769857484928191947541633765466557658506766943094024859599448329661522579301198618364721366723816148057920739316384649445197083100838466272606924055757076205947765473340293194916550761357721972105389472402124750041470603104916681792694485082489424504523173944377031222715761721062517763988992425278173417362663610362926234340637097882424164108061371582315789790380328429017822531424132104265019968519633862209116772361370337771429948534645930285499018116424680646770554789063571329284887080343346866924368836264240881202909728080087451443598677092922575296881389424555125626917011630774520454138418177977398477134478666579023614020042128251109779330522069266803757356076913310836917066273182014972185087429603212235332325685197690440412583980658351149708855779921091162941492454553775995377343371703568415834598968078402568917467555316888034959851023768897240986941746311236792486373126863786993107473607395301020804689874434283294836135628051065457038508812607170257172863899188805456077212035676023692312029730186412987116308197354639820498897248468108804715428828026393638329857857504155436218987813967428201777248450635447653461479342513770708193637708354837094930887790834926986420066900228713727729932374773061576595645771465362703521761729837859061126581393617061530676097557083726981193731656916497632975149701431912003739664009260940048910970635543276329519696470250232524124895806065445964140803425648137492944866718860620529588293610938393131075979804605161747185218534942882529130556428110387681001399040752870887027771062366566991335580183818059691073085535046558753539364511414559231847297958301583400557963592991584575799013170877759946903371000453101099598912997487211210687514712302627257246753022401802597670213495688503886234394775995737481214719682073481537157038196443511080228034740272082307978858802433342028049015315218172780439495231357448904981557577353982019697491340156685469932596787437609615278910587812122131778491656736459291675672440491589443177684569211643660101988665060029215183884562710604668000323407516456426475563318993757280716088393812427694235282581150566964250505071018864490775695560118109441799418430063096397823714771642263259515962746703093019636644792012829469473539388846293832080535134350060103529955797489891065711428159125730067295523207603153346686716198556859044365988081056240881941896173501502070803348108253937853618765046163635221733380805550313250760525066770536444318135752952270465183292017460979566302730083644750729633743963235066008495774292693194870284280146185514554827678572451939402424126283085225794419579391783594637318099665192546657885098615285718040479364222663741405359040735545176172233259925096994700349309353016181883144319411334282347271214422174393098712878162754759388279739773261739456737998295170752519420373649490599768402571901689773822428800968132432647361966220241877899246205947198401136365935348538796659970280396349077520752786588904733155621933190572201539877518320242574558294503892237621793524839350839766094779981689346577272315395082266471799902822911391746162787558669623495967901928730365646859593670892618827260952995192414801086327105020494841242733759600519096104866794566081693106496777440166242052277176264341853533592399086136671547685688122899735032483027134205358110123611462353406819374423772260962053550911554740348293665720635813650007947589568086090279798036819970484011315810249376350170670904691091593202936611440466096078164826969941957269023590296227483191109518698826503294118616392958850744744034829392447475738027984065843225784270135673636139317847659128799488829477200529594691681672404896825116540722306840827125222037330071171704444023116165448600692943157542935865005024639612877748191475638408843671229755858025952926222719687889718707588398565141736981859517779708755163373759457674041263115357634240595102299652278141133657888242294900666842193306755286214742051419800126660085300964950771099401482730433493099783436263591782551738679646565485173239097112284844186075277223049538888823673255263728056036083669521488927063656721152329911523513344124612632599252018968427003090083114104240867923007695264007137997486090361272564814905850003734148553973546125377403214945639327148896195732401572931570733931981297163260018594885641550183775913290821205987895588380461683883027860222029611838239066299368295776049611585362037348764254856930198640362102003562805502717669032328688069979967584467649860676000838794480324773429765688909986674781329419676635130606985615788576042776071502421992846797222617772005008985832763369410059593577384232132665560775874403738034864845740728440822574408384126949693034064701795284238236381671781134951021206990949521244660648052171908291630249326905200626808856921170195865697504517411381387795222164217637122766932484000043074258133905223121903254679968081903425859839225939327255636309043043758059745430536568870152899705845816894546008471814226591956552527377762950651260043577208827898168594874968677125872855909044855761529332329550207398658266347174679004725826004674280266436730708196156362533238417512677460545655353327694907896124564562285671120432450546501319537643879001633969944292199483796658100462168303839486962296746136434174162722068720165534046170672134602400639118222259208342045820439012597240419125136768624406993705329491923826988648226057246537255001652416022178396661298329689280400186271612798220333539197015787890965841943088920642064632779806749215104156165519684125469611878223569009672361094088113495864420646624837665429155994664268620727015317171066537292177925674252705865403810126319549655816781051991959056953427920567593052340895852154181962237888529735158478707295289512110603755907789897602610256823537345140682001521278915877201330297832218583371004616430190292701807986594048535929922082301475762286540252383351926532462835555709454020773320864166437983502842601280922747244280794268438940797546081465671414698540382999982705395466516711209555528167823641057247774415302862947255050791439409424498611954952227882285803734251681613759212326007656299556836331315733643542290232906315070129469905041937003289813831669625699259358044584517640578622563861552755883276354003022750906304703823722593841686229254610005091032402989924994673261422508224014008776111938072214634631131190080046171314822816465834716137124073266398326294786111556801548658232605329357865926102742680312090758445589075136379248848332465856873284532440795832877192206795021647929189517191481206805770380484816191082847590519337144521104974909655086882626103714588120495452880555866006885503081046313453929177723861463472598815656558407701393313138570462117633652445833056877296003798794741477428749648404546987983037753464508658151868587768569157745330895766173286884804542903029586838704969696664015334367908340880009457226334767586755597334136396090787612750154045461020587290614394328349382440556172717308642407884652611667758953506886448741862595385987094965656003462266515844874345753228164086291074615488280154550828716601349246527652005880242489701775297479877654575831423764255857156330069813949273203075166827971684155696490897195614195180252103782393537460009927377540329499840795051793248105689835704050314743646555479291553703735669445702572220618216034883123363885899909291529753298328832843099992462008011682193921552983609585123037450726146336935508772419530966295777015237308464521311598652928775480682283234332139596343809543880756998148446487680713557678779794928053422029955873574111559655220357413703598307334228371305759425226750282813226530757404554257034750015094058024637640969822328878310752897221599671919988476436056085922836177659374901162841620763742683737136504064463109377983444627294169751418258234458146238991613648260581349283534461393308159553114398699251446272667447932215765576411824477757864389645555534013826360922463754718894414951097007353539415822647679230082221956007930723926926175436062916328828827619460274275795552811492139816693497263364462434267639681296897280548583173445226193142512524046695436914025788950762466440344441313387560365757987150380001421790297139662256055504132175526332576069013566782449036120019713691379238901312666881476427870879594293654002345789348846138947112322954341892283100034161379223992972543120975540346973140345162637486550454669769091367147326390546890333695670723727038883961914239367546676419734206897975203075330567619419219760681663758084556692226429274775516568607824663163486575340231369457957865548962269548451522686808444568795763248899909995081068485771012265824116679523835043111802912664237704880268526737234754694538591502985013923352493019175361031329335818328000567784018517650660555656900492460225750176963640975986371019442719401262772926348000998013921513373047105271046278791059704971957299900874924948660278432387161193557986336117200707361950565680527042511440852012027015100058940491271791003652127085459993407161426817524011842961195906717831412704018364056470368887596694476820320153845888359717538945526169274331836448184177436310167974275689704777112915810294184893976036595291966437818434527221902902899381935215326106438781810753894893495967950196884617610251704390764945840888389519245534455234332217732496059661252167260290500906480665951725330724567765421583490166685230857901116173017360917083451587256060488110765103076059667441893071488246621787843824798588486488950886198673668303695531456772752373586116907102948804797307861598934921185909655112570520069377451660179140729164123580081691145892659574245063971474034733640572571997436183703670320094200869220457982019484560797636686661098289228044267151344844272142578981770269492721882533268914701272003049938903938842557392889267454240905540554020182597491662745253682499744779910154703609711462021131988613792453085834112908151318145436975088267560248893243818115630832464355177816131266096243056295538217766924303082463616283549468312222072197251840218596487131851716940281216310728087252722626697918905046180712688516459329937594809373844690334314679979325331152086305005131785203602711005389907285183111126959811633141911852903830037177711529757302875788085713778830237035349969812993059625826544353061950498839012250339803290919044247037840879146055279197271372383854017659520095219838199125146952008572603657828828058839303275132897339365237750714156673429387839391188135231080304558646449896048041185975560703800350250966381206265152686175688463695430244358847960166534237510434948033219439607448371447457989378853804166750776693358806855470383781623041302383540156932831618214271289920823945871894872877003503836932358017614052350169192623643352009854127533474696470276476951044916820047386413194571593145647867293370213889448906076109803652489314909804404678831899447375335139495333675472356392355759091193422050505902953264921242955162189544919823704479013061730069458378388592689790131663603369973102640562781380848709206689741008837718313197505275038974225094048276056626851005359366622648373853108577530241797956129391883799756107799360792020992826453623580779370746267452158336409955189646310204184980597957521952001249957669798238985797622581521166085755259283191501986484712014815362590563767919151688835567937211847707831019407223385112745403073597251941178946218566530124367090844012773532075251382269330161056380867123613763754397116793385538134144486070979238410690458639310738049938068778846158744145703106135848402387470773302895565180475798970389765332658513504488354871300436045768844518381896881386070680600701218922351036225173128043372679147449862097720561450619156219564995418462983071487923139242476528082773666421088857180826074536206176067847356725429079774198417748994439342715996543119460105329947703998960304614745278910583304451609188474903703427618709164459042258856909582953977644281215995975882524138267601476578457298633831656891767386631276423230823758650494752168628182974089686486872556610498522134521970323729896720641216339107765772127531348783587418845874522863695813378406709330755862152616790887221217383882114584749668947376344009018646168821802319041419621008548312700530710285450949118400813757468348617279379343939588069480843751029845205425639296886078960611804160751048137662775580483782629728251959555528071089265322991178920759232369998953582282651762436305149621047580098932463262648694004102554832073494138215526286437965823399599593860206823444621525501960539928131971683080977837174687432990113870597290450522806420684230971441991910417674656110233257877022557947195647718826004319842264575891819537458256123451019211595722342935505808886617194339159713328568454869076322586916893457121051312727995162547085227790122546174287418672426616335502703292143036435414072489545129958882398163961034187117924776748233025660232071090076495727173272339976525994312749136456827542904060560812437569689173632607948388485913964501398473423464985708698164477516505955385452302131033075661032864560336156133581297173891036535493476716942987272801572544396987651266727837191826769437357585706072848007636072010215225362869729191389457789051220698600248236181609915309238900678658621195715392532710110599081790135037476405483435791720225294336419931004214646119482175674723578095146068545299789005353118837974180165448366841501950260872624563068081856601636211158600223561060095809219600292845532540687137315597024400558829023518538883817102340665784020145374192798866384043912112914021906018751386826122543472245200063214773803116666982532436370314008635091321297308886750447921050290364607535373815524636983952381579028298854492161684581308057898313107370724138052407788030581209150205356948179391356267173717355631390935030643672182546549871300649616810309785204787304129027342002628586646340697893389882218047191793962063682190927316267536846449383121998029145622158839331655979471563791671987443517530909161647783496745466772807554158582858816082090452585854442607530092929456799856276545542673671768778783198469265465617233320968360573971174708593753141722435368428292872583378772733495572737073034151644128247048564953161622582482942606856174159661371017303516155556627641733255905474482860296233107696098833591819542915940158304340453742784005653411424475372367559602108247935087179249634283371855835504153566110453116881818121998564819990437964459993899581664876761133976294958346353649248445869877690624900299152912404920753418154345904139110072410324649477971919991460961833694341662050426230078470589712759819920293094263659468370957205527040894628083667430992649768799330990859529511471919597469411773942289961331997245164259498578995881441555530068322793839754957275927007499409364715618213868769366351287015707689345705312505564759548863774287632460153472191071954331912896645180042366143272933040593420734330309276342800860316105294259319051298644146983858742254571166540588133026161983510487147261922024010840317683037381685825738510676394634807892122005468501086540804565299201793506844804939476636854037327845329179592718649171694284702382256183153910785818894220306523333072261749914070773482088665919774736128123994730779088916349030734886371563748833459306966857644717051412469665367099361141020784752865051488053516994008162611109441508057063898769223603062436958160571542675296879218586682763028897705477294538161517060713364396647948234925067759716385395412391802039647403443902666658467903119918422376216115524826759331781894926349793658585662168913357868641903136400533541392847024787022930828099468395713936812053273199430517870730843322951364114815270402521153372552049805306333752993773813229605905663344401693064574765645889336993536965798912122412871132706944518251272994195910579183643229086175446189375776649739018835191343693432599158726580956690279695948437611578707522334135349905111873423275172068745445571297254803685120638564608390868630331497306993433059291513828115343243637934122598168774218573591205027941137674624421382620325167195064801117282399528393293756685691391802616325125871437452300770418148372640928348042675421114616006631685255657470091389467691763540546345796524085276212741233742955514858178246634037178954266143187685718375008526022993973756266645318328931490150934756240954063060296079698248487688491979536163981689004546747853880617284646721667488738782037343641955593451620543716444165197152419744414916940614683551866862504539125734576891646083143086271621253143187006901209624350131437651248368231418814843677125690193368362596453606093399624470200046506689015241991875586370598119286417341864352352206202941964828241300945905398401794670643863948121812594273683657480112765079769370590229484203269146564407234837445694824570334206834393188297229534190387345842115258739720548687217790486521076762086619255291150042394412829491343561179643193599630653892615112819384460455091000843973692261308268352046572482365781578282322052864194782237170265231333360227236020836188440457355792093504135803955048458948075227040726273651084994840073868983158322016136776886730910935913617870195975476539537595935229681239996713100530935028767903465956889863855967391150768905162371651627887117779922870584717783847691016211266432291439356723220629189786452362040248684642032865402500370229403408283486086095841125066620430466862895938498651948461719633422640530349576082222195604028426771332879344494191065966911699581068865740688472592183991226235274525752364033520195809498396518783056064337318470773725115168021141450910397679476626102548869975101857604244638824382763491160605243419344127954251038302404783915036264043610530582174854482681467919341671045018600892063419945958898091331453978222409573808789362951052585047597827253396758690533172809949980477134791694561015161723691269216572544757756487158079156794874708860824935353882379597483116761468272954822004691105150988925025520937231829827818590196293173011954964021880213198639856376424561866846486536630712106705613318110543776281193302022445613601022870125331438703511422407540776186856072775461325498529913778542851290610846875035370530084809771476039527639659417091613233183728335969392593947020041435620311716194969697574168640814598363822211595093841577008651933113775049905313821023582064020971019287678710530941663470799141940287058110375770904943956933136394254711417369299104497896170806202684625809785113250002715238351517968981971791457168679550636663369716837544485021868917551143061557414961101943782427803563341623965074566615679744906956283171844440860833876783082221877391077999078029721825166167336126399723056700332481989309903089933329511376716134786860607260118345206843383246369578089933527896574355617254282672606085385085634239662004563472477729087512010194270401250461749022787841799847167370298886329887467996480239903660329960788734637507302952635356404610619490620070875141031831338338817594515289866080085383133795114811720013486901914812295759052246734035280917732969974113528534592811937571676655447973991487928096621587949532888508457934249053214499816647752360305689669363256680849729864273776065890458697492740489549259130185880201654551131633010104471722792715340312557336983283222610919924079712465819258995190268527768248000043692062971207653304289311938194285954142584761198079443952393470820693766602279327708010390428971650816932499596007539574715008305553354728047736703972353925763361526743501420746696001201351139292585780159953098386471902675253554188968873134492004771110560825158639914858532458433142171911652665764921277950448444301888107458752423264806613192273868776560878180410958315123988691679252558904552056833997373514279660197194580853443657949935269830361879334445114115241849440280152966695329267922725717632153372866312536220865092518381823972355680294880954601503341916031683004144694395299561232796042626588997097683567095610208051515198882881229962365206641790833055520753877357974186360848824213514051936816743817736998990418269965589649923269350336712768718216250171297681717503939140764257342398770415372688006587117926099749114107579770727385878819733843926213313235156591950218599411517497697087519580813250179287128481812460533549718033011759163205375155438919118006511809006676626542681037927792745203606501458015822941814386427436083404842083917166715618223782390375034951137583842890579900539512498344065022187432786848479631815339241934703718312599566417342114150974140704246183458031655087907542988037560007586174880324736221007552796528007607287427768587533683984365111371811243418018071284531967224097704817137078796650120370488142546627106542740135262505325847405051731494848714996137836746903045202359222685187345325630608017105106031298494237476969273681464446009413176912775311466301553424682766877138023288775214630386038157706500394838546096608870384576993424654498059884672924324213717579075827722326801085854513675928491290743258922572186900959324377201247507878488889908935753475597153241497266726776128046392899740633901395529873839656986781518834322465601428021869627546310334452617901537003553450143285415186407765960565020414849396175769817627091390990986465192802081607230806112529748897064911507025889729104616737916490711559102483626800948272067202997227738991007860871203192481929829447989548992405484519925356579311753342806490066054435232284698969313850154033282582047103956622757757068982484940500907216734678136230159055102262120127156884215747220740933721824461099967750782060496308257798710343356130098231897612032332188401296936058663488241998499092406597184586669199667738633893983910328791754221991387665589339966301006729007765932351208957965039516341756503123128314249152702867647132947294474505970028119398387187478647674531932108657198176514997871516499396175670743365955428614619437290496990932246449810577903820760311239393067256524385838919637182447687174397864286604066366560441816686795492246903764871305940697188801521238350007420317782201280726779963142152321809589651932750903977814830437380307841159786858542721125672311998603822863471435712096023996154573483234557759037099140538963365850058592157443055349795133519156000143125329488405342550356379650832562875800679905633015401814942680960961806451917275967030444547740708282989760222329051755424344929918509836693776804396197149018029495538359452660074627185093117074196027913171684377630910185442019928815036177800265682346492369837702849422551228893684929518718319813835945132603746630274474924364322657589072017293498393041145529713887252841782347368514540823978206328615907174018413712082292384856115638932306521770337581729066411471916672971318722566525438657238255314376952275378190646115612933166128526688129948598498614967115530030082706241150432922830100231870586873079134023622554641135235402391092388712725264630441750173140184940257959935400898383558629822030154549038509254151469972509124009935686890126522803626229092112047849616205539495220535324545425576438721909069754559917781528532609567806050669257230071353168195373369553202511534305101111686580381579832604106193364286061638364375724619973314226912113757617991305893118194898280499908635430864100380389771446753659130437991495471948400106150757480899905271309197461979418023208673307868505718029249694149340914074058590272062223051592688134441166196374346865562706157201213902210407021308689332714286050418965516298746605069239778939134320405476066662146762615108472945417689381559779912956558527133666299448982640331918665864579825443962973940317503364860188728012679986681634644264581391730034188041681882663567789603923614365069023467280457824035266357037715343446394703126908464493033198011370512136117533912121848024502194355135423736684465121526954826303045962163989132075918244010259818866075852682318666806960013680793254208119512853043329930483778255649375680465247603272789985509101848795740057862594794870402317188102063548435979675289341603698691474404791972844047625551400318079757881562822010018716740045548147939805345683078287174116963586216076920427796131330703568142424614685813386008959250610807575481363295040344614939821873416741014536940898748469957405412199176132369848649101493459188271798968282678629972021513199386482987074039089114780720902014824693217972160933996761425489045248629374896106204471081388229436145955981614406051412056410261299832677183772118894708266609799734707198847950748984191194824749959353444158635687720284517962564432270030297935646151226702261565091904424001193949869664204053024094980452793754053177122561679354819488251251975916803062648831477677111863570185785166244363762108505681280255630347519443060231774472775396677896757914134391626742959782317081379061944812674479423961550975912014551969895699978699381627317222138078945455990251059446576450610319111446310541192460730878650763171343628282243628654077257304303125845569997574055778282693408051586183526253853828699045925944484346175883257485510371630241078432956639562159164164035669111250144576169595199678466659672994821204777766714368174281343387226582881711555083615283784274957874127139895754473659656788101320277567617271720961616978236728505887083936379191721898523979497228851244430882224471204411544589769453379328122601554642055444826037980762216712029385284334149488981199892859909487816265588339197639364325967523166954716387321831359546773266569883923881347170385414622459921855319730820549126436883745947628758172411894658756369409548327934010515303459559451765324529001516692574214782181284998876236855390726102845009563565884521807912333460735233561227052889953100759896396963021337397018632502659956809676362521132880415000774990411519758913157532916090112265939247584212139312339053943799861335104561784771148554577102229769921300973281131607898330128284552046715578686936272871959442230273021155016416339471848306316547220060233112142780977898929717528590023973500905468427855403034737140417780023847503325944303118213206637185106147466829715699315290097118734072967356680689951124673863951435555743610452546643225026655509789224829851090900694139551834763766723821069844462070107917260614553540321527877765425432926000496961156313676944277671256260369094421663326485610761327881447114466001629085879119669970344664164868965106698855426556972155471869043450131663456527007912625975779851590881901089298022017831478867010876264046443109808265133823100181180577441847937151001815714987256840452679717822396045705227494652858277267435381319259959368439838475436430149750348907701056486137076364894000278505570175235295705590684461266818170602565338886663792352103737204204824606283181050932714629744134609631960766719035844989947540299010560240063907465461002030685107613911908972766965329575938133603103907725658508370505862738358110743660905078391568561103546383871678069713788757769522439580110062226783019183260954571693313029771724070127049193812490605677692052047379094977017258685803281215781597179333162275844842061909648160391152509985836197473881940775643930727083119537479192271171987246527736608789794914754090761115661137463857456112866297049183740894017993916102281941022191919206810224849066203482773794798455663103935864906278247686444552105483264743904214289342833602555158494601006246940556380007028799813555350596145271101916063679445839174780540292588252433114667221599062160122370886088909555123334154787685863077921500989384023475855402317560163450694836625532206753548207012720976370615037365916202767262725708021213593355410646899718274496662753112296439804395420084454910023604576488762975559482142670678609268794005070705228725448020310998344558080888756042903176003172183612499037264280480160866074131325209997415321983056754069296345738530592097868866691404274873025457973975524953606268795355059195193211685180925835765321889819686745081378866317174158940358338754766265746086031876008628064332278078010205968130323294128518676680990966768467494739478540098166598103039970092694376061061482102104705404159343176139392396486076214744089609815819953100304691461363016601518061920159244532898596399889302583735293977799828223574078022206736693066132866743260260536156462489898951032004383655050287626243660433163954078531627054926556918653276539144894170962802173658857718746626450609505919990654058817660139837059175566784368588986056809996221577166141054778314133063910425641568852208524786930439667319023295981248635055192679390547511474134065020141701336737551228048320866226685303009143482387506329314757486229698029597369983509863569639082068055008837737971199338276902548489395095148077220360606294814158106883214428062164652755249569739413640894959580936903997618044845484557093165824341289632729734583730039483593892815962789710740441195393351532614592261710426753069237694729720951178782195879291523018996064361059189695528483113003125947563749733725822843276558555193488876960767967684432703278850536222030868695664915126084800876365659932690417157956650374217357698732340951014236184129841722951556391694859838546379691300109824998730094001625776307420355005816450963467919232903383870108470368402407484595361503052684886530515685938182716385970384239903869016095811432641388584520032745479310760357758449043882444436049571919002413824060952708263186632358393623448618358768648457314107422377724593904123331550241152052153426398908149661610611179562759158328530982581026661599823651013794641011193005621080688753443796489746677833503276696474299974229254495705009441645756365492289676842641888099585090017078840304874545329844073865998919618926719623567237999605815557750693613734672914388830946082467845725573749308660706637431833847253651946662388845076763539757653737293136911468350446320264698034256189570806537852649228191065447039168667146417557333585262348312360417074087083485079855943219331470103119070220956772049319874838389522415590618283418465990523542781821908358362344617138708847065925298776172900520512383281685212072065207879032684408044900274023596241758462824635143613078584158397200739227877498857140339735027606163370613663344309925741883079360031228544750584413030315023007711988753800708453742838347620432662383502654156767328773799102554489499215875833325270672831605223479326573819146426240824911296326324513854569094532792569303037735658442072402714045800313663943220354046112520290876524802309885742171869517228762288090838288256384031104398505733229087649645980627033624778247313276262254619616158430586794940581246609082108247086602041765548205166821282199716412340154304880573962042199206247720327275610750290028043529337927305048398881848444488544157116998796901952141755903197272176617381855900850067828747771529491763857970463097960760033951927438416594329510063948096252932360439134707948848352260438209973156080233377743505260827821083007821303379105905254174282134360064080039504373310498279481036127733042996008710322756577912953291857168270707099537624368640058239847447493692844455312952611504674389640302162957829622786565694630300097424264152487885552990448813103888366030520726209698013189366394829981894888483945694288781949965924777393193544771139041689015543037701234076871584748314272076337926768630376341884002432343142834412075752880293348421209944955071198863912554131650212197488465924509996628739526125140898439470902033352234878969940760768145164558515754509677859619928711422099082768001247012550866852413528281609293920865353197796052077485827819389935954403700653236438566913342026981470540771041762191228103949231003770291611651863714051674803375458822281173892691194144766805874934596819733713288022604853220024095320353825860110204284547241756612657124671083910409321038978795774004657963876562756268670086861467137725571445603228704096775769964123949270073797144237281572956744352168729287223839438475056789621345475104784180697661078951116595191065513884813329175291425546582135804663768808541405418534997609946154616705998319431091131292723980836086599747143600799269844176268031459596137420728772111553115043561540423354891308735490135304530710516391236372658484218544295413469119076859375326812243344373143392523847445177113262531082977262121602254753760639665975539796132835764824888990769278250043433972409358738253376532658329734413382838042464744222516122887125757300942317208963632498276275815465113498784160785326615119497786928904622577254390181326291417727128733724176578684640409266288253846158498953531593502648979775682309424106278733263969922445744945553898467788831654992597993222892202212084343594456601452371267452024089836160717356116911865546059423405906078699028849696805892887477094623511794159651500745624946985621041635849756731962693158706796513526184482248825716432981324594655391078782312720744217396118048470198741449540006604856118595244062586582452543950124066789428376637940530439509096500204375094101919877180415421297409813385332792701590989112191779261744795105990366981958352631475021832494214730150467176042687277234525613131886452826705739036799452925912915892988076731337735865978906020377495488032436099688574576118723064816236145303582464907696346862526835259524818362656981961351894636400199807148822011815130523454500129836278051729502133994384888311667179071686970351973594877415549565973457694932023318435682844217743867302181845650704247465096588108007236675623947172986322224149999005461828547641136818521937588903579806715181965768779703148180322619922462009580123363142631825714332701438971094517116046304950754563660762505865672527765569195704533244741328929455256273881869938851295833680627980684852488504246297460306917026579917036235494061248755126047549699883813908595704277504485352297370225649473501572350128303089490012395172163013914186208684136032628374741961046536652121043258969895753871414550406281343341753716877258434357109115493972922576869057832500142019748733379763702778604082619968547373519933492016408621270269326993953661476480532575100626578710673054100303057474975895605700072638664809996727990977941806345618112184750391918476711247271314328840693923487931386292095580646393564331284881430953031571155803382642603155266561484679363724967008347318699363694447172770031985831662771806808610093348267235859113310618582743916735238026964805645426601054923043545279993377324727961526826994168677540112859216613233444117375684678990498446585827392693575925713480792633160111560934079158007585998957567142439754500333830752872480336597932452569341924561888086190507934404017600477964550710110814029405386678043467971542616836490438164874763426439349808218177760849308498023131587428484925813785157705487130968961498228204638103414345426612910145767837740729835731834373342637751263091568336647391582325575894316716842785434381646024029593932917229556901335880498690676097481136988743765153795859390634710917374302079726398940002448819391541421545856670757751662915671602536889549092626564357459310333581691390332982925242854964880239076116854310181484750290656100915924192382001125755419759851248021661842328137842326730274559015822964750351101745176835175350403588998657401296482784495415892710847905355023031902087759209734790516281149262241313144663677815273719120266968711014203231559969531504171700754934475839719438147410932403186062894085549677764976567807475397498098301428278991352595648887273219990755502218203622388444451178908731555898466342737735311838672643048621325404533935609044104153615669057384176437410079166115958285004894507965715248640529276416570137580962741980808017786434490617825184532421424543987866107465443527714823365995503991182047910547410803533090530931174140515178826216181170641472344231020782931728479159821826530302309532409421406739344307602111261426107352092362867751434526759018779556738332825455286365236980680584743136018587235181201160286762897035306701228186204733894719372860196755685614429335662829061223926406611157436706983340808469988099295309370646766597742121093260639377894784795008649079922896987361366157235906383988564342720430840999401179300908557004087377281791413762348311504899634084746894417314630275645833529829262673291967618002816239121714918227077971054677561432172264118436705763320989795207268978963778170700441077573908458509053496761697574413269084568783640167739339562567294588724823729282420441223678854761888636693475059181426420488979383480020646733345394623110253361484219990290088866053961801094207198991822349497794027272080832979451925372911211861605780986145648448765467967713541118998339498534004905304789444170724610243030281800880072899466301511517270734094507780948454028718784220622929405387888035194410439818981202794189822676978340836486262054551085437011808132195442115404522824038565783567025352174413867625478962611073913167491311879154229642592819108613943908378369206573451057070676717628738472440206748977813738641519147713645892503614317695978969687631821612787856921466420423799668590033296798120087101978294095782161656834892587538129720887536271934830353560161316951519014746773025923121509510641528502366884324439417330190585398851991253449886716143976125202456043140272418025192045440139765701487645301162762925606518507445190351466049322084492878549981313621976298925444457929730480390144993996280655120731825711651782566081766868281617311603535180208401183249013525781036223950110803227389694148942673478209592759265301112375236009363178811758843261111218075095665763017041627738402848717637482148847522646439713658425558495311639822220678215354312496069780741108795788837240774518624442260186059988466904759941227654549946313888834556388315781574051463450951950756698663979376114497539575333493900114688916853636489518128305594312272270089878957100491989094760533271866423971231381329756669327793098514371152929003385881402903610612830511903742676980888418166300156627650261644759955941822107186980347836465484816373830433810262574891684419519414519845188360964983522167352369091082894100147757220860176518146798592999279471585104031352895347832497963185460241188243497275229562854544866268786221197417067070842100880576639213370616490688235939337468607143650942705758934586541532390767055802004883691729484995429846933755962565846034647880991174281050250542585510821737486718107650606971770457504309531642476059180054627201725596363711777878717386570146973845005992240341907248915488425475176053813119593073597912913708751965555999849384231539160804022879247638662169823291827063556059756428320052580144725638019584181452772563923951795319123700155293513471423501214640059414244300722115237454753127038529660879450082698073274951003541318842047862417927552581291812223190612374174371390748004919935083359064632505707459826495968569837516688563023522632858892246747683661172669089862251645914817190478705752365718844460678415531742170377369783300448983748908917521739821843886298969937213579656780556228477392565545722591559786155332904092591581848916081866195072910337072787874024376827595981074671916921357871504120271303132038397067097015979367469264790445101033250941941606772000926152438107520001441844721730473117951640151786540926694019324968147624500107405954840037405863720470317678981996181103649622146608539282190484839873203048791330235221465808411306259497954309421253830573163005785820117078885451015366695384395386099083564973620099881635303997562858283142531673207689615683294698109605861342753550390620528153171769862457350221571318419252543319273681613811363233913576614591302221926748516088724016655232103050239552257648105843464684782759304323479543661668582349154638921930322946586557108746915173577769539337330433430775351367633483250076655073034043409126073836811678375777335472364571611933127000142953200078093999182509501142062131167970166782616094688106055546817054920058780708226481148338724378404504014853804098503512969856003161033059124636515533231873106271804071839747664517188431609233687137212541514612404192185526366464090030098412034385990370636807716861959695372272339247768222171552144311411738609607181018309384584177367551098971181326733777616597685916474429866867254839965527900734358946964770309753544861678418979196413124654129987998360093893650285409081260936686902990776976314296589113597788033179547233479509881871026954565985717394456311824188324984588450146832785732369332240732292879275245269703319719654468222689422594487050907529110183934929942118652379898013070756853232215139457691255483076261808345922983709277173487822376360455573606597555636275527781559575187754847877831690242661823355488016340571124943794988172000709315782734645239273254925366134311399276472644356437169621807230581136475304780875273004623015630737174614248929144989615045885229540642790566055059930737440877270698133998215248542687336272028001000407491435162320354982066507433794307217953793741552929270215336775787346292974625637178469451086151319563081863946109826923208746992939146387657653339929804010928843630196085492628604435528639553594761163260188447546105324220512818177435917756088346912640332141259759920715813303218549602193835727985271961069871578912590994114135977398158236554392646215404601352828521789684755799501409319863254529479271011713878430281750059756116553237617982070334770371148756590037450759938970905108902116651819718971131238138139388074231647902446647915100052367854353698536398072822784188714135857806606024460396828675321674537103019560598827793959163734014617726420047329278112396800794782413720248152762905976014212637842212626390912915768410088848877947156853768779026503284723364530097773357406048340191744278111364052407110650266232614387071326050796525560226209131533738598638070026942639573467593127350483202029503510736534519726531676063771696286715342852174467641817128238434775744715498269232801358742687615739679131356256066630678961430353696829435863348633945767114690086278813087851444404300605669174531750930105790492077241229882511559383085922029737530483995482569920155646444380336490642366773595281860855360644297147782613016193733372018795513258683961711354820523140241288249476776611922520820664980373774208046052482979504128374818883791032574105494203031122110404149147139553173388460616796891179599660424647515890731459009233068809547480927567590573610351475436201676526781417547582477899896935847590113506834122596203855607798907196668644024818626664433386868935963381523032771659054803294922791805122986251558171200707085317894259323066649162890519917364851654926117251036197314600272414644843197149511881690788051458115639742848413220426845288988267303458259610834636042958117634776702950630717519232852114441774702766206119936849689606595224782309365440227800642097818553588931324505676391297226187881185061210234977064597529562047836979029469726229496590469313706791748505582661784967472631545802025355525603880719312170535090021453707667887350609011162709682171905624055002129221446984975170091145300414526291926915469092736557925648471710187208645242143673433375325831388273809435448657456630267789032481538121845361706278399585661075643918557182977900743805036288975342323954527745567941044907035092316409110918158895681303332532159377649322338880990046175534393641910418233293742753450877150419329397216451632689532072615202603854893562232631732861217338483328242635813002784251664249796106178012039183416507116231814068400157621072039367457158785136213597741809201481741430758613161913201258179998662429411367799583916263172757616889286150891276267939170868600782395764025064592187515222252012641677574807304909499667921852498351662580317252322999458736298585304936145602432145453820436504015057166244274595788299219154083273950180979513187014174451362033980497887821715426594287702707434070822553086115429958306119532795215497847850956284394626291843683677516335146186050141990969264136308439096753760801532404544086166347685639575636646585727661636122922324011248920199219256873710466665901945932180219526745312965282799942661038113757732144698717025583215214388181538121918402522778176916644403006272084257111598056936566679159204118478671013216145920055976289776337831347794911676392481979696940126675646818563227610211873776636840644706545629419764062399556764585338575650383209946907087413187419490136569058034085875837799710023080924129929434199959591908214358858305175771430863570737295789172478160724389229956890659362502830306121104952126093750622959022669812611059310602625797292447607826366599428423488307374850947449636342124822760713631308294934867695663884905092793658958605695518506292682234727342112473211856236618057506021593145805448892790002051405890026118802551879764979160450698995952697987444669705347384042667043668369797119293168808089587175675845349740201317689093478951174025994541015831343992179591556273414197429247553946342801802052818891209859381725445717798206823827057305959037154785609800814646496714850434840806804382048308645350822663202243309217156510975494667635448447987374706472750662283307773797608582110685737023649689727777879737812971068997469639645692317395335326524344393751377534939723624837061903087813511305357847595160628811587141758963974810353507521438866117126674577667548712209002114863913709488702553919215254266156061070090601778736234686307680031169334498572568564954777112656838299036553987535747441199077485452381559552351000181150859339463963642088441090484737181362982686301099718706705406457489518627270552560539851473812036422563452823387581504577885159811140495616625474329895272167036799391103567117954381073109948022557917793801215665969436696958834778460306933754165073563167064930377772939176821615022407625038540453939348286109766469948383429127239720680339003198876070651197975020189795918830617630390169717465012227691692773901162203881449968579658006291943977983554221135952175038722450443951776911695870047428355291837899993695593459145742775708726996333993995267925257986789732379434095845088719668542244541390867394199107634498900046068721551991598200403042028688777197778156710281251693120627611349157959146276836451978813449767420933829503788036946888884874552656944246063511301574675462227770491557750967150604935356878546858742910516104239664080113867136217194706370015310942416664411012249675954628903736345352112773885177063358310754033970809726746612846057809389789447820368887090998807780015508596937662940108894460513617701606993641267876805836103878006783391828533938826306831453801898174098885640283153421714956021542098213629112282297173168758253322343576778445759715531351135309041187727202485839698509166608501263476808412795314087826803308442906095037906804138412671912406352366467461980604333618841499705656300978447435165529265987822130385158115652145758203253309624206645061386233639019712680234821280776650021351001568669118193030489020970283536492337714702866143052797379486036147863922176638011791241662936474368095077605100468883928492180671307142518403470951423411192677609822801251695036575198681657742581734705121820950311950250925675648238984100206309697012103461911088406998569775882631177370073488833307252227555985469861546791531752138280478023498824865944245942146369371530319738657564801768773515244576303994954109893389712971038497434271565051129413767250095453143260363886090853454444528206151951926156558546133732980151431459305235439221533085529894210381067865743063978424064972966358845684261845514914721208291078924954182748865115642024884990991177415814830867129245782139411177450927046409024433100069028445322544491958629916103640919392128628042157517552744274573519191466872562884530631016550918156804445276859123609673515613936138788372156495563356318601885933896319862486074028538191792077578995882417475913619986306637537098413189548008185215286934475978486979240026489416850048580090371697249591573761065141486659256342383865505927108595482057173929427004051199380774793344269416628820570220001471141595553578653559651488117787460196963238321261595184357868795158968548202970214057621794157465705847951686934572030023416297745398875147911392567074691137799274211184743741013845612564090639564841183860648511769510522563626024273929236523255983997092680728460716151753809077364072617198718133314875083532459826447477075197169390068304743331200408276651497607025508668518099097593462953464911829615362926639317433803627813680380967692044469414015325814346791921995995674016353752694676550595382002579482192801484233924584060211309636879169109465947044481806570089211573473883321183127703680814389220201797385391240892962151763958514183796600192485081899034985941712366170755457663111252271321460375204014276845353323808331967444431974162715278486645155267489505616043606317314626831691914226413568996383823027572920761643583069060333829772994543047166279548084666172247529466064960074907463393104444259325348610546329066221396674942266738646825214831359561257200864710899014575637286496961952868462098070382573329737317827077366762424383824171390471449458050239406639091567692214325156624522092875848806872533565274712640924603827964270904959345391590404184249502648564798237786737961648626039173641412885236089084825637798645296747621966828157858083403902745356883025967069368934613533615499441020992450618860352612836251250268814341483378214924840774719951441395390734229405755123599348625557619943655942918648381994722980900724206333713348694116325690187756285646807729487458619267684496497795099787486511833797027982077422013737998314408082750530293488634963495022588636164503394764496750567928836091829658056256287926713404017847728333415064368590414343511543993957258309358194715100635685928800218579438136453918080825483404906412363089785905621335799181454593921112407013490499985656372056085168385579467392946605660842582037364025514278767429445265700141473820240898669536597157776260701694782095725130367418268970996479056690572438979000239417281841603112063741435295480963385041292480758860483905668236942548184934377248997881331850521880943796453574030042034668928406626065883049768830120733696576690398212539433520917860635690209509850425741520955874909290512182633113004506157841350913195691012971856876482872253868223808306657430985402709245202328100744744276128693685909707872781141531205618551543375824049176611831549060521458502975262104183561575352567188646094650501045170767580661305380623710071446402084036034263688625412646324549981465752668859346008903045877058804438747422390877732802472107369693675569717786396953726197626424136548602688068061100900402093892994850337589490236134779957288983289868405254843995104699588042656672625853916497235236556315902504891422925462791248233765401982792461901917531457912820026717336284312866461017980458495414164817582588009867426002891829121103074140905429182294049169454879835990762460625432960767192483193532392478212277576456945675318429986568424357960337215005729833898310480561178741777749442322846656081515364937386069610242937666837839081900354218526785496116594767802205873830632736550987096094289887853018969100369633985848142988000414645623212808578600909527099465457819684970844646367070831975026566387401996283409092387659720352559692013222504718013105926141408929810455321980387185968370785227993571564601188940559926296654198575965121325243069182884376331279181500627805546686894358054247804885686093500831319255970130795363110925543264796615057580822003499821658770982632658256117177686837065079892187633086216427055534785496351123066081412127330593565416159234271649790477245899631748733648430577054342765256124177990172851496888020909170285707823955448959817941317068699557067615350555927812598322511206324159911853020065862280771087123410866147562867396988793175782225637900209582771260411841364517464834708646979330575672746589984878120354240436725947415366915074137959922909306390870186661047451794381993118899541605020467307980572579891082659946537115293207239171487096300819825485034540478539776696923573018379213571827134212592257560814704309984219148332024326485828746945574621443142488050118658703884108967307153819875134825358147999395628589464103618336227051772746565970714838780046720746446931315310081192123292184848641190433467876275120739042069236233827401249131159189375620064755401874596323824037150892001883343515491244036868371439773818323227125494285527309711621445968839203293009025484944548126469705848337139805026372143065002249665346703223078815470458659208525090196081821927922062234947420516384485906722488157889662435944174915045205800626846683055268371234870944437848581528341427999305223823882376595746831588869947499182000623615289225046811142850059059863510899634994157174894139424616493475710926120533678547996874431967951070710434821443897669406297991244250108629096621917628616034474414396890666758917438620791494122774412979457919640819897243097937542697804139626620863735164355013118071212502044758203577511264395398702644184217385624170621382222428087811022922274192049087391727137307242612255590256218665218737878994150026772143572398474348835721076584458228696492693856658210486317029643359513569679711570254225046578609546762364336103296049193173231038056000187009087892334406219133384934942048444162203838085821789839865916122549617528278935905530342965811569119047624300945965295689529943775349906074022857345293944507507001833264434269927088810995273441770330006153441010811251205294982787580143487129936810976015627146236806465199308470207143446181147061351215279298902959030340028168814148344537024865463398532523549453657954526020392301109281931866286677468280030989994553364180441283423277483922019356711395268739320024121517065062605447450245808782595497573005903756134718946813499767606146227448272122964042441752110621638049992634089323573823003245812005580656583948457221507332977305498933322141225367489112123416749021465345740547208306184016905663898248415710042503746931648441132511565197795039562847397831312683408916770309867375650565662381092923352765160237010597502139849866585785816740647521330082888580370468370591119831309694917828002339343113785547797711175303604054279285368015793123988640743072313851376261635310290914684133145216378193245944393469805035082812105914802137718541241007023482449563258237672485625840853704265544860264439369468214672455464255550093618193917729789525912086952623104630398470331078765886550763231981158697314042891633205983139008125159182847191897668750884951527727385004515274473576772862270412365333884602961838101329687307644397557324234470883366088304019421469077730416971002730297223792773901138009108602816224782306862675366088684238675654888908382588335473499198254875821203478125735219964026870812865674812583711794294729823769149132818552635865424587364901317249485965393464361098165943211093989722325630450622161536847638566914211501114498618040992469167864077331087950121951858182935260565001346038986952364812301128488932569240889080168030133985063653085585851295492797857875735266949122457076765691021634046976970664418276500491932000607890657263993063264069630048259185420271054150166527691192263366759151450424354190505367078451411207391426726199891685227034113606659029278100034088166602252167424436518533622559676762995522584207420176065181293840944227302645858072754606596526006753400450357025773903623156414749250838003916673484588778168354877589228903316872047105956655485249175291384008811174099209866355686983747547554895618388921169461820628920970458144851372524523333127111215739934736031550062184739260271211821047319972317237533259386224857617388573156658063069363254251722775316970943365962629305456217945559973018918486460204271612986349646910356687791880659053316493824106462478993119562890420627357369134278368554951165486759765947127164242686055461648936726767300795925067876377556310600261976554836546552973503289828737147120384481806138743492567555267324612012995480988976994545514111934911857306465844788853859377892009998818676759483442283021793174444757897479490710948785716495382044939258130158900919007213097430793213980018868012930441287654040250078645183796086191715919971861444993633333276457378784037432638088668809188869789673825496358247259736696401820004228939612753481962836985507704378528965672640621125872212308074626517660497697098637112757646964000716315506017252654314862303029430288967475020092750661102881304049989386351197979690277344441815830323261330575314948367442479071149699667874089948986930529040048613272268986721302069767245136308378019410065079246368401242119996577713980420199603275633807036576469898390028033150484066079682410024775137015099706042620680937337133032510200505396839315192662143782070058891529384607863465801188556135108307192150685268422502174799478343927535694436695175502774508668230143623123684796258132560731039607457813852633916392011124324488027373456083571988348062493545210664513755158046517434942155359473105992787144496063366510139083692772334874072071765687182578859105665230174522986289783120128525749126522180106538416109778939357103220540638625231902117083813182325062167852543137504799833178518702018837462890693386239765524141645805071615378673146014751323453817170578353546392513105023443399564065817256210944953329854949294688067152181636977453602666993834084828138519477735165193932495517049486531823240602270165628569961797238590618955097039832106840054277104825197149556565892932390568910740020541253883429129387688478329830844802083112915161557192643418296012366437493422979182608461489489061491528430169932653079370221688645100954947216922502555403065943258782021070081560750867166818067175029108713946871295601437000601860568393234627619555709220389288277833054099249260141324590859833023473683284502274937612233458792006737607525970537846963036122640145097974627451824709274445307000888440012695173220274630483658866035153185077408058922702919445700929469660347951940511772758026090259590451974039277078354505901512224973622482257107394120788752714345510080552635115540393417815786983041704978450053635914500896737435242929306936330739681244465063708604331627873020384110803495131110832469842319358988486701412395896652107791172221658727955690421529331717578600993984302396406676468187557364494007353212705989774467178792562201931131615689648636805500831180641715024210714303564804313164249378376269043874654092503803505704532147504962391295882483636972024108628112183533249327864764514453736886477741019619113689280741655797693969450773695571859777795083914325628033760467889876669412393161628369218012202085466728728715661557185953178923528590804960381995469806527983597467763341389810284220141959072333730837131030282565711927108333830809840589903263156693131194896264981023730517078275687428162234916824211979832509861379945413279861690935794029626803320105568413974010919757282897990313254305164474222313743652533955985178558600185493354473028084034370983714509749278376231734285928029796969115443587185932161860025166312118731700453112483995958633987136828391759600965902100798122116682968432381258380637222439843043451629208998999631716222789987253953936256551925727478201561065404426896594641454199837216021804966177579122626331112998751796477717615248478978699137927891865410866029334822463741600147320863426082594685094217438880507462616301235424225442549359702700517116683955710033721518039156427679346944683333016806909052562039218393656076185772272103147294853146928225518091390452756940339626502747750602582729958471692350663151332576119850409340701305218998435569820964555750084479725107405432290651519246768829682088589212300056686351170632849595187251078922031702543391078981169927958514758632384387806443547230526719409036749338053979430733460881399631433937967629167864263235218981762100104921002653159686662813717254754188675354308894493742494705413458361352495212319920280794825338017852308420072416146700106780714400693693163830254660889516501386243106211231263554814119437968266565558482594727076662857390579351692633175557375663161081042507568630482721358721322666701189503662872056386532153663477308426709433400673729858108932250267549968164162695024741679923185752411888897730312362304800576541328982743663922507347163118786678785454375167256567030065417818183954170849202920558381542738060833351628973011485246117824763492585980946190981018339281713054441511342490959302387439314731261756362979761534332316502587301435184773014838854291889022542047574720216585118325942272116795671777519686489281845824058634661943592677680907165800952063691493167430348129531019146212567551731186152942572457841505093444441900249085339427598958136238429607978670429000667752667315516156588229983421520281294100305999029475848017356192749030878768087541089737611156266054294422510112461692235240437715702201493850195285100814617670560858795671660486390019177809761185384882208178498317961065687978828771315695166432889431769712773169293397297360265480035549088619434301336387988770114175533194588078803856020706134407689224200112840437255095055773444466623798270539691292506653471676434219406975560712096063680306526481025777811880783752176561116484338654506310696585575245939775064582347602124828907934009452821317743427634712904067261810392938532772241423910159588783279721939845720655783138915834352621677997773671530797297691221261238189527508362103137756198573015105610698771941564267879075437763654963317088288443679497395048428299606257519468253751232159344803384465468972703345871957516994124154944220381172259827562793935252272464320078703418804914279479795816398492788123931055985073263500644724698352785022602790350568695660578609170160403289554034055335530734205109564488136087417976628479653010679773605769761681081619353152352711762826211949585495120836108886229050667310345933486589439512378509839828689791469554081482107560873608866819968979112734860418672232755541761411653322707141206048149021842096118725747267635263559997381378586747181639097903658641209462576238897796950947218087421279062997936179510646045389614740061145020767347666860918156952470903661757339303192743351288712749368433607448088448793978011168978047679591657926716831770817068183854689890331277113395361920852719200784723842642801378407569252436454195945310769400132225665844838022782440018529093244491990900570342050633054788332431157626601252218888332693417851018702542364052897418152109571671922551101616075374478865157090070231760362396412559090951079005158677423335013583816131204218213764808775437058515842056711071074644827571536166244326861072548088125099050336498125777753423629538298473268726134313449429823235769397382100752149576434879830150935370281439599136046306487662515497418267082392255998675770698636219786714704361629620226366825618000434447443866709596833054816758630748307917023300898340025955372446232435467300577039084725218607085678443980429677213489437056289544912463882286481058589834131595915189029817982671064400878779065741492642474769967834505484862592315899397545288644159652336933628813543870120821583326883945914783245214276274796605894954098327040658423065090956218064378427061555667263784936001636636409089693955581805050951287782321883025872985668683268468070579512285105459967971870595982268760842003652543525297765960529958815679009233865083137730069587424209529874219550192445132275000150985392937898876024449905845540414911664429816777030043819967493754071883282165460966334473672440406467537427504652180354061714094586853013050872939261244373031729428666431793528575913673552902706986571724515073028079459784591074898243757474232398086415746056102202374256186922155076994750839873354751219263618539088272503449723952388552836984082945720295222890061013102134372598373487742147943701612411137859636801429666133546219514868735532548515211289687122973045290576870477673858564289929956971288531044769049154270313812215843313678680215612982906223862082090278376363451386094031678374526695432094637030530698266446434950844240522426844312531906316709863372416978478121918427478552992651428935863373544038447784758006485050296770552534274175316490373794353379138864871615610618836459367473471466217474992144495587288010453719095676996306205189776913156943387127537917960193891686896870974207270773866311129978604350584637660427784118455989405229657578151661187190813823516479114555776635744553495454048103072876442318831946552817553978918590630838346516707899526305302931413387824131114185514541162221455633236817933849891571444806893329817450609897599535541287053487932328376451150826322769550525361994432056654092338734369481431033165092384676728191928655657322231024743366783771333731957290382980334376212726896591076237569723406558349544708664739592317531777998670852876061167463783137918556385732027250919414263143158407430957948626608228205245657928473484249927351918893084000580425779637286368909213629227450822388911481811966104667299995095090185457422938485498009594418697621132048042318372231348572931435457143287862629117030428309823436264054136008523756455994104422752606175587888091254319379607145602093097407990987715573021391194739114057142854869006084628936158350130038141233523682241837513827298839341403457343640235648686441451723120884922564982910334298130419153517997354445196318391644518583367324338593313472398817301266260285232612301281656889401823700094243080126073154874778664329152686571257383691374652820745599777845747370766781028641412227780858030341227128602826672768970945079305852743200254883922587059587762802764909036603647101880960233619350288062359013930444460242014390384643130256587416851358819373287404838474744602324622556796866384220659985898344561932017019151300001412856783382393011363481031993003622613970365401980670168144437784252412140936615200033670929393829997762123693377693916548066720609711937179359652792364395648207132141347073306966848581543323846138605757277146339633170864958219909770444745916234336165373699072118416708692221013122000730626333007893944283053737726612428741718108012712620588342834518175785587412483056233212202109695973825180976886624862685481810609627856829031728564674717401315482982987268282901977155123303563168408407458538055679129728600721261090137344419089746426500346919454648671441785559308574294333380322704991403123761819707202480233988754912391771061952467852588665607312815733692022819683791238154787811391547113342543064213646161582591324264612896749163007439365952570295559911897974561530207142691390332028274570493470371895223777255508000003042717999947854536612082957793489379035966582064427600984468175629876515904308458909842795166108442104830165071221877213103209421114395214159619466319122161640074368903794293468787393231059376832848001178579434798513349077574387658519520313501203705419775209132671408878900009185444013577881218551771982513201083331279976587178579282733083709821654155965465232593558384324812744366739077269212336420183372490162884311250304581770450890312742954301252655814685471761643833005131243190649326487199710390856620216951650107733067158347642428623000156704188778195363797855553139049947190109829733091408279795608909995622700987110117910896482533591429510388721818908907520355521421667180794940226779061670416748458703674823693583922460615113311797591686583922880975480512576267427959135302645942795586639857474137474562972550129569361256177440968953460419141377537590976949740051593066730650431305443971017431003785971597257801605875153822527539703334209552161014911017670108513482249612827402778519544580328939104475748552313688065712364505503265511458614491778692233948598907825226563326654029604220347345217354537627380224652047621985640411509051872065206496152072811181383479409410758204448954291878036042858715671915401709427727933975652418938358453520027546869749957704500041821141440953029116677581011885631123668108732130768083943185717181132567305196518766031970960327198725474254441980257133666058522046857112272962754787651262485142931316729964269677192602542634699027425015541332929048880344640183059893955694381206185360804033482581547747264371600896959099872468319160145457696469250366615739392980405288719688067428623469598162579133089769741992391235692882261308247450638754172406594558162527714586479618942414099592006258561643025176620249773175334870211576097512467691917203247264452375382230778044610231085074416618084544098488836658372399487100168464069878953273360074103075482616837540067713697436706839819889520555794488529854900525033638511440443137108564624894534004444178106739413254409949089315878213115002749952631930470068218667920231450559405380461880556596763770828845397928869304085115653761569803414923247116865022990515128477643433453285915066144073198291238069240193934988249895585594906075156352392374076205082911651237015824252718172420886491160272019061666068276873738267722907172550902849000814822750687522250020835464705230574061008667271999132342872070269603527943015315314307392994761403566554949097452630700605172139402658349621517645579779176145201503663525811249967470135112481102002709819729504915660281810597231286316635276976223037971315948925601338217780542361870690007310756287930177976216863645040189870173253646292704049507772260729992447355335064089407806374534685651295643077552948716022924571850736497592075803942371924081703753289085729610866471957305108593800608110235292795608081587989604044691536169456548790292351511255384304316795743405124603099546044292975616088115888702361612264233188262369971375341087397388926409557790459122680322182589368609381440267518580736342511851610183664270779237152763265323458857667791244291623782449578179399159699012810394607495520635661764628650981455935327572357087875002451641706143200750048919376343804797646881568174895257211459367052144670487822020726686576613231152834002025523215004001868921698941317267262308046303584394696720943311703086787436755507199579441920497007564220236429060451658601791014463543412987162394920585530287823492175157498521328285295320750692917178820191118565904967072893892289007519255710245268854729475604451839586152626523916047969738776612541651281183021011219786917184100417267098014408051398377010874471322604245275853706000858481558802138365200960711274964950516780584502769803636077594773110968256010951289821068429414133903895114198928654438541853702812535854901124012924213105374260472211452628019671215454617578356922625755123367559810796093840191476836336744668554750095336852572981151175611462455731768589296487191818576380271754704804549798561048392173475822481181699905656481866718984963418998248838790841633775676251829352294917954579101801661005402477741635032213572747910031287075313602720352840062945099299957811001832135692062158724065267284777847302944983608445326682510831050926863206826574309620598306376516547265147284082090599331873053138551236240094878440388828802631088196156996542578441878541584855156252485623533474613075288014137510156615958633914553836274533008533254807389341645040908944744426886939061165325719665356803444516088597467959978882860801287289601168992906726620894793056027498622903491657553456836170659811596079722903153286779085627225276466202144047646553384566854013640925881630238778292223540866007239527461272100398770511995811821870034987564253332063743038450284487791364115779388534871773197351645156739337067397823984418810243203389078027130509682658590749313426808583489984337143175696764498984885074796587534154723774682850866069136762769328051264841084044909819952063803022511831745003677453852828794142742067767616567131506778382679838860662023966523949544641238564593718323281938955814445764386154195201412292986923284685201555657598018514856931302551353731328476559347463214587683094199813901217487068526662887779621507786409948542183476012696398941028066719831625676270360948703304412888254427802250315523002949000367761538736836783371267148454490386918727230438469579425205245910745724013155473596854149029927974725068000998747211334587326219798943313534727744108031061606013555508011860829461859268304553102828897347294966386242813905531221287538525661017352035353645642943601161495057423582013108215827929097929485788598750472226754332870838952115183159548364184239628644869931709556612954833242780995829228941267628479502715910761349613962653219300177162682384268018910331570517980335868192276924095890957788029631727830395459261058339452635307822577823460190502505359396336310856490457222266097155837719461355274327178683481037211749338117250943945559778000825736198491566530647628296941151042445627658669357100550466080832683415799037543560832140944345887500852117504253378971078871830770810599643061194204341867882488168872902282858980553871445445098733362417146962285413671811492531334038024489360036942164149148993184216191553524235852042689086241265692142561599818357732528300262352355061598595753124217516521424960659276300874990315059857578924190775635585001430765147264394442874535174847435377260990224437799873578920657181786157882478492245794208011846770413785750105375791275792412715138150617130652966679541833730954570136186828440261601113715283979412926214317232700002763450587492372139297455665114553738380086435196003642610951092870172727251813599049966524406941567306588771596217100907065027880583333284419840145612846168746367150789407988307716133031085423416455722978377619101996367685752169815069319992060776289549467584638573347613237324657291667146588450682978829025840393834524961236416991116157265716442424921168714465906946095698796981295725968442042411399447521990982680240591510031545235546449341011505264699121541239993610943761008748407279074533851740138894466164911279099256224766297275204310502535810766272695052993004019464854044134134888528328484138615642855884951917639323259214659854157930670621288454003056029256564853509654583970365469920194779622163593507058936873111649128452085952440564948055216032483909791434031437369526299989896642465528299955494813160096052008735446637454530277270947003967448016878275536482423401224929047373614181221368665572464049978414416013727187370081849063132490025580697776359134971914388199893111701337067217407958471332653224909630164565666912559319641480215927666970412965643501281346021062751121397809038504619446805791603757919507186884073080928516778321775682769147385859223469397541800328904317844493607527242277570849587143155220421262060163506129951486447448748245489837094969837789071556630327698029370310499606249857115445152095771654591408287037379424907696590118261453994467048671575902418965946524989822625414325388293485586720524850237819524985881524665325673591023134442490290107795786861971129389205814051170633152734811315411605922547048659617923508870755611342517557011776534916872080909390290332086745266774680047013586886245637898568552189920406747121306504437389225364317495368972692828988595176553551788854108080183667293340017420807298363558367327119079965011908666854034286658091980167010643777508739220754076534801002228183373720121352366319048650740190991801608555823312021839408439463109500080331566765481672143268026908205341299619192353003687082545523644976748700878017504843820158669887207790362456589978913493922485704078831929012607812864632795280037818220163491475757993429256205977585748336032170789861841808138727794165477703579983641807760649555208615641310373697722267830280188430073481270310020260615264448662807557683230366686435550323730221952540913021221141966031192329272030971383346266275304244951114017356164058498733369160618947705207081466591663129847196382981966338879339491052069128310366920089819922855490408685720808139322043919317669519482510201758710738737602345809485925151420217174824303003115959737633110853808397778493250000845053365149456743594967412278303065829446921948985349158765432065992009773664860073944121292882570969929350093727023877789317218930500008183432429559596789368254044361392794007904197903765321801459876400505214288972432125976450677270928551982273310451603467483485862699333594721514290200578914044976874446447506190042539101008728904128228957816390749791300856769379566412583149074551105180005437359313233819609153842890699348870625647011663164780293907983703517339486403873196737852408252318719009859269080406875534155206764062549944085477579045764655436724640017334529714453243244096709357795811461990297772638460571551447229129098740303340940295673122646229389350165457592464553685260242529033923309973319205528305653562657896397097764523556142966996575191562772771360376230743434711173244125945721567848046271763099171532904007836992428643036372397790587344801828016953786373355255299927918951360195196200361566862911102763059561091256043504285899258011485462312128976764236374476260237819544946287998351143877875669727982491419674778971539113067593463797965300812108698884182766103172136773636083018591909553442726124846253735126984910663356141824220160314840599259842066968063641197827703417882326416105443992370872146584101189281908910697829819841447147247905934369737599814910569555610240519963703006114089874267668659634510039767618578270663148582156737769793881569528456599052800225477640469802380745321866449405779818963950555517336386669124494513336821309690513955670405857525536760230385954789229258304483005123660332000445605720052538388264501873918889173044585375335452360337620504407158794565169897698081631275043456476345639647139579076063045090171981487591596402580572911568073047607472088614220697315174800708715540182301039629660680125949108216210146502084015024946590694043480538340845263591337008606883236768205507154849113532962204879409732702667916030210441408877856769708887794592643288726623504951046267515567196101654909513602568090975598498372886348752393144490683285388878611596767963593411934238904078220052277286705165578668160675422750350271034295793193049320537196750489305223906642321458579812314690514970505708710454636623192201811514056598456255071414073302177382092073576668194028382682230586614823037821673452755666186695054805115790399036870562992001437181355213400632725499739042642857614057935799931237257123356569655273428683705345744497219761972620088675612452445831375224557356653073516640484448645331395889749676118653744109686393400378634734381267772315835240190011649826121116284830505127538200595541680522279968480975615543701457835015012359505037784443281053068948596277052955071428456445179489467281020306077893481331191966281438493579484642110417437912493522401776842674053891855908240230655844342406828923644037350271463601093772709610248674556002469541833564372418972054106954373567865415142537803441908987470781941057421795539613678487776319516375474722061151311256396580203097662278411791247167310017244625039914098166997214063792103324031810283209499413600529168044124500749963624193812629172170847909083026762681166915498078638118852754569467364749146966595329394502149964305816944396052491709490502715588718245375833030431080162407849126349056148438242894455216582230958500917886804777035815565794109219794284760812656830893251151441334261441851181748119684542221682037860286523907956896438049889949727228765587542545556463391682618008657339962714356860779635423899719451832662615143408263832904859720909281735445262479021215840697448066117477620494330620857489088190850355935333240691142744091320564164536484239877163697661137402250793171228753388074245453958764045450599115832534992994113508884778079544078368847702844975470492651178612634182998486633152594763104726825871984484072982476591055664093531227106523864366723622123153660659516191427324776466105063518985804102358943760432223995952887675947377452407558693770312594563221141467193346788157561000242477295415709837823601814658674133393831366908934887861965800335960377707760913787352771014476453685492001608184205665021216872655120820876144078603026975352816112837347317463487887285732692514783009829758811604893990303270064173039486803476892598861207769972084824132311669294387264936022023349883792888067563495463511093677525627757058028730721443299575165287617168753128324957197536083772958744430822930547993789739316386982884445104977093077376332351366989196908039435344056036194376459486625711984247764151342505391327702233895581705012775857937059188108925952173332000938494021930123044160683170476086583330060966279029427646680812663592694630066910443470396017442394371990878097688886649682871054121681493146517025588591598728256150257589479927968686723414232453296463521906513492964077932399289738314042290015928514923151361529955603339353591152286317384492401944275251248438247886676184922223792952845179103223738016244794177616987190358067816973265094857993562609504023011970808517210093892910366599256780226884913685683802846594719570479132895111330321219540711500077255259482335813546847128950734824302190888366805937805160130030937751720264547325964092090350495508129157609594134707776847343012359373963902968162998006742952052012753373345511149142528179759532605440790415927040926984629605766272364033229426925879642162247733941210771961818672128790235048325445910733116060859243173294836640714535966519664078325917614940615232440227372722656496816691615675217297037132553983071999085369570516070540767611445649296965361330516484571187690238197598430250729531207208650514266188285601007837191030834051137897630404262941633938091918247610195210736709340325340462324616202416011449405525471528714832741669557773514064290238011292473376468956433860948392082372935405393809645673715358371299738025320775362783458242599767249435595957818816119631637474209143559456026475303866984820528195523550685645709055556941102353203077710689879745952250980429999746102400500736879597768124175885886194072032819469963394889621048176499948918030320376653447818684022697448754591028019925562751487790964190536074029710786420056699649302889796788203783080157585504836633048685446553458911066045427767086123260502694459130539883200273714195594399920720552483437622926248442216330087964895482527906999325064358567133614685064396319104328824203238610800881645461639885839781729313583086842609282076433611148327279038413920788081976214212537923919579404925148856509396663750507595348047742800674749856394283755086587114512606035258710926633161460852826240750371804228222875057049244245597703489114134573863509729110948790788477396774330957786336732044527870012922439806243262397244297776202190584659955188096238222861541473833783278399513070344368997029802376959682614933619384148429647333331164669238304377664537414089239590543453104640276662323064220731941243912906974847342644878756734595576885249065348692435338064603430205537122283657746337595785589176999890842657344169017880764667675605520686220027692684608495102695086329658086861473668407643616084819739362317316526926040963982906935432587181088165144062716965667154999390879523725837152609075908148137502981302816132374776177233754886205020779874683542979660749433792441834895597040843829929704177112668361105352423172741523060822122594252129242426193407089204818391772342678822270662266974867879730525000894284213106264151831255960959154563887761195595543543961036471691531938046024257171953408291458605614871482766918105573240144350120263760602620355090860016846967350866951108810326101445715614333858287851596760659693332311442066388096998028156387807397705392186186161326213163552125751617243607207006709274625372488227994690770597812564902665021665005786770627152705879589847569500410108665154524279818524996355505463618359732718705766340813974035607075258952317687902068167910050451396405098264331028911406077750637431100048027577692794339418051558872403350931124132225619340116281906409873851037674365225004056638613864944576573366592224611345793171795128331318464640639181704880796030733840614357155707637366430254951610812873357394105654428282517824497503132738727509965634148606200030848651268153958172416625742259083592328061158637003883686409576398292763972565254731966857328886723412337513431050042270058806160905713488424479563244831069580042724807562433753049000398947723309736683065131044024658140251625579813258152825002151543004520554377371319740810882684849249295461076408164889404542148200788488691511632272746166703551304598601776387325415050884457714771854910088288212139231546804367953476783911664433316875136919904223885163862789000903066263813218325031037131005888395459573295612337212673441545655658369558561536138930966543293836797097335336530085341298247550120142033888777362791980167033081278162022355309984192344820785278953544471793740656790634101672464490152135948736360075319604689635360930567553640247818050615757742589159739750333948611366519488024853478567277884657365686437629162347295472563859719603487581506068723613926132231036830663401071407063089010097450933547136888539906816974553269557711111528617764386869184084589781389252301425164945545267386712652955691886564122786048074100761186875037597524290958947213725877379177466509876899043729607354844879385342502319152212286405338877266025460253849867769995487885668814658482271228942630974228171674746377779960170663940658841518738996337540973202147171513480441420049985414637330241577280208356932696789290442571421123851759815463614144949330615082058856079998584084099564257162891321667219898098507719502960909453394381523528677316213459318875226777214332378032050424786141862215992583332265739802463305308819013130776105535837863403203508254438091204258553128294221668939439665788965356555631818158923763746555831017486376227746533631268507322070800461946183245962175410308080463936043856341677262604097985767370428434835023771047328167214811149660559623393903147547004837523872082777674236737175179277701505776697993035309481840536348460798909954284424368104565305316051560763278043472525450919345059522113045775490211308004542055471346725256793917724951472379635261960950443650643164587493410816248306868034071259338014731471398288253921576829281039647332414106589223066288866896102160008154132321579400392925761931162576460303940194641679501394325676289721776995984671443143816353592236987545648473610269778181465615208791347721441015868347632485590093182774168788320560972591645094905696775034292845363850787063126973708291974855344322922983548525640696394919959727877608134264024152795111316571075125422160735351960653142392451317551585062199238780524356223575960045949083019425398485515958082602104903377566677320674419872385447004728677592559834937264264295455878589036111241090268840121373454242324167282361443209202850166207327744041119697095354558501130183689597159498575974280628475705013088928561977773152274192324805323218044132929921880628950738779525702647892695048004252972439859747714503835580415602034034281928010673874860170520152237412007170659319695953601355992826205492957355894839060979051547028963294224241186989676993132162310534449885358998415792342880244715134152156483816576361001606731404633357836931243518718241672153804122280037705933121356721429519973553890985623272726429306266104472803924794606182702663567779673132659765059265505949023041147840327844418473071447825911986127097879058649300227283008823381142177918785903837013966574369704529187146465662818155161802904861279564830162375835483740791065156845956744534312054041674019236643698088729091951907343389594431847248005503944038671978499652277757753789320053361257062554269244432407639044783457370034098883732862824532380756344249824418292633098331914572634001348502963441586389317229156912388816772084309729882104199759804846671388319422247300580670989715793136764711944495492582512851381108245835372919376899434024479697294446505640225687142692143504769016533134776025538980355061956058859365878092025880910546804984106349721665633709848658125063785580126430829526311365830443006709569233278518410937525643345437497791606341908801434825822198449465108101794088738883420303379858468006364266489180583738519467757406473623316198049351892232442717038540182265945649810095670761306371505013777032671676733439129798597624301103282557642096618510617108235995307388813447435814342529587395164800764775547198234025631487271512451296908020483440809013282072080785712493745077899007715619152343462840011626351421131790126369840143562952799567575035531957694120426891493701157090849032421636456208068262470411246499277460660639224539824177192875465876441052885965183441525365162070200764119588276155479171691375077398511008764840807885386563066049456866561460373898649800212547039006854533569255415199733339882532803979811725668983565596435555184290322267253204279821322820296509585736124610021144200833038619925837216090138673193268080670485274716738257823074059915487595761605402330223967490991866404081756335135649964341134834838911834572355278795113570350824876429596427274570578758697250403838095131428589269690139490848298284261471534647613194299038634973552632298559028549839684456666056822328040525759587524814367078011542524472094047829115489814771301174109853834880198260275462887760751438039032039201819050222118002982828817485667091031811376984605081236138408262747625551749655131279650246706134708447423920038769530966196910458663740924756202649401408924929377240298261355829794614453655599851968897264348015329217712484536164567202739825310198242858993331829389529868779043778760782914174046498719840330509533865082380520759498266768559559041173972553875844140114592882500063981098492273024697294476625588687798899398727938047305966001584287993895831445526055265488458725028898575005296895987808595026618502046986436950167613841421552892646267325535758078949904230638558530489846135095277539750156468959297572107424202077669399146669720427162636374578907422383863963502071685002979022265020118185390614815343411277061021251386855803896550625765679697820581541199996207334614524120697538825130326308126268595773709791240305733757620829650994852617943285744725360989833659765297157605659336812412186481270520010174795537527477665853763313812555336272080438850325641636806739090355022927447875619626332870575588247750137198285151107141291374792291051039866544617727714438762457606682163823405449024169719064399240453239158574771922226550046656069487046155904245423954327260523384423825054313257580590681126713432561502687332431954515432995502260017561405386641336930868465916417740853144069631242343829138977307179112851877011783369375667559270472514293359551905505576238446048253795031486626648815826521405729968670930980399494064393647706704010232962840923483055166255965335625594092134318366066549847680923232872208140939990283123741628577492159259818111807509108325615484203962646761641831411021820799874238704845215401606217028424883413043419201611066479702064754195645421625181774258169342933373927656535367638938318700750846151576247329154606357792656252751361188067927915388757666490772132547450764582160321296532533103647232773268653232763117011902238671459375072575058688256000581870592750335139389217580034398997054419281658178502724784676098867797389733016530833475608543580451297387669538526589846603627307128381289532234708947497474807769821531668645234885842649220025990647401265672180750979483336324768524767860294866458365680816084579053235000824873062037821416346265579863434137799344664901968441530270207484667532217754816542973765062156844225778103148392763870690647668442202507942056900743723670681394247524183687155159685151560323198001297812575211231373657320437775123027172852485788514834633878535044049928886020400624568497851396551955346557485585065949416668654362549345016044524823524441891393117513482624887881282279879527080289211939654045667132299653730647773403334132481497137965554671171193918180936563221522447544061103863817136015331586735058141800713865267175329682923028910534086345631890816239743212133581644120003325803896224435038773651284820678727326615703671843887734821384110268809681513617298603771160154681786424277050525774987410238317680541160023350783533307857554498647589861728274671052244304770097513959836290575327965054125179179954545326327616948846353436441676084195181475559784485428755091479861482825820744120312752570850133975209527982626758220045377018666713610715434987880600610552048938546010358163049296214512526689195139582200751762911863459586477709747747182829032499670565964434678496013192635636750852686151622478071280783007990065039817251214977607089976495332361733180833067400827422637945508324740347227686071754121020823340638091510125393481913199210295235315072104971109822125228756750058361679205375758843465488046584005134163446247875824896501155708274942900357916879248451600966088407975867645626658513815379706086656555709574958109767992634405773829202006451781419027599843914866447641014444832728493614465431740844620662883728866486116787805936818740664982245629143309358635401290698969364835441086540844755788249470390775449895079043331158520260190327962917237238688199920454483162650640004343224730483720669103609122923987552868353793845623191514711283514275922676913068721201341996121681105608330617725538980071425270735454901554151374721095463495162703569643089840582042593916467840075579269778336340734715937562424846681071822004658348818630930913816247573850260943364647549756500628970418835115963220011637038314753618842192380917496032142589092897620610190141027899445936312358394277533092468390139585793242759236083381645783686208107130122640998674524002720121060145238970291063549706379204839340165569467757028518005076458090519715642988801581837737030623373288372883592583537671197481487878106327062683823731125604891130137760398709382049052684013739935549647896851336873602975412224280740686134415614305189494178273924160448034865195590421444435096215961889395209244189311273459613033607430520161808544140590867627559952743717696076488772515079319680517377451379582572438668627548673211765843113696698947484161707219015826530903021117898735690157173314242891594035008267055114206111971656024980191059280806670504205810120027112335348471585621053805760284849709572857285361972174128563163978900084844475429800571201297239197480776772445527842391433755181440706114700373050648258420781002449031175258603209703081794563276291586661175624808060038974190259927347300137398411211816544047924801725750230576717352962305092642742928795186474239701645838441889833583871960916173619329918755872223159959910491676457576424750404125582749253313611416968880454560289971902480574955788950565182249013131269665349254882570623844079807292676331767919744485577332052926418056131628842019629867765858895851348085953520909682330128753276751408323440152814994832443668381574019218309869118564967466213477177854252311576765050389961383627317465982406323313439204286930021218894630501233462597892326464990234621163019326253797215891983434204985934669923272107457094542208753992633028247541396985040668288822369278443612867246294710678258213391778914120256715255551205663832815416672735788392516344230719074259699570109272438974513512120788823938866750973501487235497043617864784599554459353835436642115910793346547279614176533165292236649314774116416263331310831216449634070849017924813394832864399141852274802316676833846202001444741585793754019049611327200855584085950532930996753962785053319962239508313862485770894297464253090272030891878952412273469221030532513776368097159883706826797505118324315095408485593356414679590303147281782298821826591852350200791586535294006130440437302248543476454817626436896111577898960981149610979151213717865588829801541471234132327119252863906884793910425247493169546855513212259817845182232647321616975221248890674368055216743882792767573117652003765501023931556395746639511935844745337768013086996077498537614628410107925514047828938334946079115380890728786573548103800227071558609477541654151135296214588461753031268877124405612567976520380890310557837158830078513073344389759419224684651226003781956098850474227474893902051689482532579951811291793090438714234923340496851663178295358494374213404733717014194967700951538272392793184380218321928858084815162224754240804029454855882872352532724520571730195732823733895686919830007744248517744189924404704038132932386950273367634090743863715629057263736968045114919697668374821444843567653434599789920978528476774590060564146755903682136535705222159473995566321375205564836019106516291360563924916848727576775762262247812455039997554417586705963357898625757515980195751617301359207752829938302561040198476917112753438433278583529241369372719845504224389456072448297495261305805497795780243556183054105601038771813619125584597909125426400887258767122609847634366247673397831878736652681034186960268429831474493924527476916395794815688191860541047670490729752964710776721546243839080369744667277716365025936331598574634965129959780878286802905030070523133435734598521329951301557798428316532829503702364349724410842036510979905057601083901418208679291997975799951948703161579073585064743782190945426682154275823318763899385214128080105723591014933063201953711373294848466878618853878549238291171680760470095463335340253227480675940709184556599602646517963369513283459617481111261782343826339302223472488397427929104482526375803779783222174205693927074870436320085764321371382534799602423545205613598132390449205700114159413548368681643766435247856268669242047854078668806260647259443722168449951840247685366800463170482982897498088646222514802491644453346764122825336274917686419741849339864403923191267702625121727615603835980124184212015039331617397073068364228862560736654353962626927086494280055399161768887077368331544375602663675639017569409092252971983610854443696073279080245956791172172994592985343140825771377861917857220065058436649432097984197571815912410714008892687320664880346523107687963355474878389625961367463880691082545155550870212319454278650832719424311958068538380515884398781529403887842049027578702971365645668456857371657642205122662194480628548287784905663350349789994931042063465404090696267963262807409843437142657753969222110903649222289594426763998001601261518421150154182347758829744760236753119680676395283984766583901059581421479180734444942049681137710373244930698996015833375512514053527230786187005057707606841298080349654529007798146472087291512177907893125599168459044091214126289575369715524362305245603112978807113247597232368343064920530520159349242388169951015928098022248644297087061780549524549282944216936756806803715149593660821341869866229416983436340595153430662357914600049556729356290267811237583986735506859308286776320909437747404920398801472762002640406711848020506357667855404704967423298170488361964783750446079989059460667954847330680502996365066876760611316222667671372974398812441893853725241454033497895355821388193093105340351345777335155522250793133758339541946228357490654582062353987313520211282976727315004767593424411126142240710405937718228135128884447858814477797740655632020806941662178503601454289157831852660161430538676596513719740458938494160149986012348473443417998592926271020736643751067174435224504767747779915348846346221035866599005723166840396300195017056366073993686074308697959424418863073188081333495075936142799402053346947158492667081540431238988886747561817723669125023022029709403025457374836162783595007125589696930805582289310045294574328113309031592896089555873436799954851458187365811734304388642673564295576702010948200201568144432290957866053074588266654979710496932381964526282009036123731192051071488912681036914919809412406457187710064566761331896791292781542836169254760176227352099569703345536472258811822247470743632134731178986301912685675589402300622751295977544260069639019381195281643416485737425317052458207780265886546264738285249333838794823666370017904964402586035365111913204387987569849423183388861490894584955568629866711056506709295102717436275319617526426440393897240227613772624240658475118114569100981861800333553597372014954063434602801716154172910387954987961903567290533943306859329820660595181934652804299254630669495714347731721337487659718756839006422451930153828859676323006153196274394246762182006788827513840222645323976996448763560940728678771795066765266952083481338941896931075717531904507969175668099702747675242014122677240868002986759095932114789265557440104700377688811694469844559133689104123942787766358240132054234833299557396738416476359016225869441597322873495745222731366925871259690795933278388120520481141556735347973766554054566223284517618114767816449234804455811426845378637602158041511629409755030146429024387279961060820891444638496963634792755579503188065075892842346056345684493291937245772073342379541308579729939922028891044843744102660720400866671233627500616160549523720552345308717130752351309050410029610212549839861576060398757009136602263050853139455684002817244260330071235359145647649070007445305235813611161027469605108744826828463713472012820690595588833758160767891350471278436163854083268375264751044408533717343546088558028481054715622147461152248990582726583208832648584594881119938870905581122849617849443302723976436408967368949481439473001966278033517965678457076154949655491527110375388576443452869974480637220926405541396075461403620940427186038143337922298775042221109056950359988151860851435480588388091235239376011850221891980333660342717534463669396589264831059712487065458158773363017086337397697399732397536649793460551963728928829509078776454165982163947131467738989490737821679224804440491712846049571124048538018079733438299199196147569661429201107099882600407675752974353652670040944107709880731823351640947575210723905246871668303382150870568418034547092196336972515294782358963389957103618573531994848829524560020505864361765335276552134622826868574776260770548414461823987606842069702802888506499744426591046324545109330665449406392936347654621254385608744552557113375313157273776081182302815750370378893080296082572143921346542045010415261116314565141640431394402007309263078931592147334104928459147477638749748900429253291957126765687984448924202289960862197098065704873458063968398265118099400486644484391969843382736094028867208260178647959466871340714577605147766344462335344663997400913230020726580159159041010844276391927253609598763976401363229483664625888935141274709155554413930081396147287995680678984269030055305735263711623012085149613614953993936454259729730568764407510552364396437048574845738098383778478187909670227397722791599740428437645787819813179467986695520542112253105496941023153529105932352921077756196747464096640757957135294286001101223810903982705792356004277322750562814024240300472463235145015553371242553049469178941338062706886263427675054559222331157157731587879522111637670793828501301994050752045362548330668443952173929831058611926145059111110330191490951654060423919625792787757152122474845041544965568306637544411152877511187987375824722384748388130009772090496269304935297012903682827959855490003632862115551133684779206043317717107900627733388053905655795012147352137159318088246796632487863846818525050047470591463600516167403263273286657510125873867031202736353797919080718275517013917167260895419046527469288396846076558054846574748601877428754322006165971077280924518744410649625706306558655940701209267489520245440489236772172322464225515679113432127168042058362487839114709266688227194654988149667474806927271615508517296315932958385132039099738431486240882769247827985568586679417310476936582991331530190952548317777302317805857756763172887934191093979335084306887771506092554919283008116431713685936620040689362376859890196888469935255097579049800898957282391692598914202579531074734566993580104302254474893803284705716818113902784420020302456133912676195900701086890567896394357838091502949116546100585185953736893368778530707395861295114621079870889531999609364722092919471230552893552253644991169506700789154302552214581873701189905175325457352023229047149065855070309155861650690172758398689990047425492688068194548273292690738728364129432147618763436080760932393449321593543100029709846058662840466890257419311833991530980614754107377874222934132108533642472848646119378225108286846485453703819100724054465242036845000050841994432036932311573064345290707443785213554207029863972963323483771310254631204302003334288002336643149228918546891336636023390953918142020083927140350448978383421128927895998905454193754846040605225354682595998025915729912220156563778541260479075472318695158919581948963017562455709913346164595053382405568892891025188676332776267105465156587646866138750415023011743901976147908383329130319310610506341257413867315102403909944424228955559199109986743427514606098879825115835181238219428316914719065727560373259735907173115674179898009825472811299036800028654469832427553194413745716967401112110877862190110262765508114237714171069291312270131534448208804569358342186967245749253940091348185063252116887906280462556978742764689869245977800168409604349704187211421570717680245104377795907990293682166155664739524734646182170271118121034556714110195316129966627854918709047073605183902393460883681737982549047397195771363040748323667288005722365600683118042559938720133648627972112814467459933018120727046556308839663135884323974499116866463076427569392414699781394129468764041761507082972723438862602952870226773388350995833590597523887652577053620600449892176796778085728448955199607644178457052604444773167733866608040759689601274809846166468965445526989558854146656892132032995844594601821588279769829590007895147396975012987418281316625965885640373137636726226035461499067471245143085652742945570455351655315156001673850043315031500573396971000426623444982455158743310743571662725720962871164016177602846324352179221394687561878236256621738634132113631170494157447234626808178805469549509794934256075772663380717218557115478762944609536035844735086076785304861217118643208810037001053882964251367751819857203565099051643184638086099735222658613462393908084364172460087083423200267799890049906522601622883116909573507505278455657372377496497174156734379586575278817789309735506286845020668515151330575892071584296124428365351076354439170193588113387082829261340574310912284490569822374408828175058115803967960805654193870598093548976660438694860043648268856211001362541082113166077226315347549785712596659235536363020944383186892640124176336040767078079642331862314682222997299509212624476346601002330123399890013112810549288664531808827095648616277990652233599597942733246644318302132177260130125119326865066864133659771757812540073796221187843044293272256814145167853365718565692467240753983109045101029315924553849370575393392610337937151510269597289397237040522753944542092385885051693216435060026616413081812670267646457949722576490032472724944729810921916086051412557186566475451061297218413866322195974973057860607176045345236508913673325034951401519975983834228334230493895019900917903416206662960321871124892083240135786156548382951615427902040578030544357988814834032104944448476659993206889698550017613772120547799046190743403354997333489623133451402416531126542511539311804528087300211712002312635170053445500808425462576184737079583695332262491722308330158573909282793103991921803672630827615308001455020514937691268979648664087531062402612887896650890996005035431903981368137842347613663115871650322580367550279164526354160776574338787194177235787612455500539692156265796581322756438044943339201372032995995091869185891919601820404352360272169317721808498104615294784983231433120295054812376241506488721042101298387464255805915968338800811494415897009260835481197791561156001313930509724106337534125284819841053218717432224430737745961057656976037352085976114032586460796240769304088663683083816045084704900693532991617630924285943984910671531109143212980175917771514860876795494528760920663239093254246372624939841985632260932457168636584585338554582033469239513968930600716833650511084824486104622275530026737714207021221709925795597150120753191700569235316682765681226300297054399533395897640198844110834370962591562453450018181877454392037726697145939840640954359071100819558189361401165054097619389570433398705163992385934803135319084523940227076577412240341849715420554965951299888085282887373815404564149695205919753477758364045014299902008175890849985109216907554736857032225851592230327098956891333841605001331233163660074327037926768899385527040478324093506900747174530615795846656794629235924390433515828455325536127129379417487516309359974560621657018436765393726902129865635083289467852251678461376400620674625295914219997611525864339728349255758590277005374905926258542675491676184463542331755208544419321146034192729851711659620269242212305752115709990780307615651548755744258696307828739420069991841888336746364749593706947222303190757178934641624272499012939634172413908854850619918691658684102433673711941499441695586150042757177772241000710375532870176585406983158400207763244077153589916407468333173460002898182944264416702523158590895334687121719873407069262320518213225429261777219529286783526825256191792347239614550885517969411812177442050218599923285317174551164700225999161914053867802379127524107152449381180171657896998879064963395284610187311020190538436007055326388595388243496295963234724446269858008840355178645441145006518004904155499188545647808895313202946845225797921162776569774356613044439640497992593887414427692295192057944166600608500490087885227249123609180865400114766974652805666142996097479624866232924934455999724956347048831211073192583781996877550882778663825712806540240399253243151282104906965333416322218961668801184531208639022961232002087514146756837801925706462276218106167073470959408280282072818574595577022364017716920655022642586587217268510647903312875760745619247794808737897508760977304785221852137115419135661572674836943055219137307244279834736695710001654344482688133716678164166956397166784508612177897562814502871568956657647471850170088214588307172486681804986152279274553392623673159403779350080976416916031850867326300189905366571197415406092363602801926096953889476764554112757394467907286615648320586190778817889223960318564679732136011288713746621539351060086606490918155055526445220364277984078177262310032498812771619281700516940498189126029165340673893968314434266304912998128253642878667053744084964277215780236121064909153659616370292193000819812480370850245609469503683020803477442297570705155835162043959622146512728999934120315801394610696277902986440736737149888014719300735506190827414417693997757867800961653468107552159645507177342993885194943946618552604378938722703695995826548214976142591000133075076188949871274695756246294019960612755923589454781358891740405927937995855406457546489724083303528055407075675485399050706347665317412355167358701792075751848839298175160992857453299181850270238973975220168065728861652887625582613024307676350529811113197004459862590095736054871057878490917066362530894877822081073321755380516272586206809798311541412585295984706829557105975077207344899398216409062197525114805661439230114158234589959526170995007141008739680163662957356641646122435621336375236095279989255273766184815813372107131647076387817820034980454086465831714156345209998605800847252590964002770995573349891890946482720225066623868171690382680625783791190092451845158219402186691835807174361738992343000513579849892258711172867683193318903906977427348467333784077394435974859158145007081226982024532886342251272073976244026091536760285310297827245902085893447231720313306997997141856556402127220614498755600621330667297926495908304543441131538954777140614046470001383686674257771597623474555816798858181054164396506626648390202474163063028773387715147771737465022772721619463620183839720118172310696220277502042125913845842402528823422382701320945193714719553863083517250085130020023168954243965994980194725005401047927726962783532767050487714931707876643252843559821585323678882267463177352832878546060054870090847784950385552580132017773945608473664855137518665246774007627684428877067744214787922128601430978073861992600337316171479208459565598354131761809679528130492070177285894064347749787294392900885163571669591006453352070774798263594141027236187990727488095887286622094141335658287527981640411787402966111184501320661992657089941775692351498234473644876936981704158204934810663012305752677332314104705901438526375884314189216521889117260779448272704186491002341007487013508673661072396114622954873477933132590426018892878252924418539892949454493438795017006038771289310127149191239609978656172147534677744656016354231300262175490635694414610017711966170598255144496689192139392991572956065012557848690178053566459848803222288379052173668443109205175281417391118539880277286619210788074083256106303345452114524843051507249831105693210371589846445924245168658018518801675122652147110139273329218297990331804274234413774725348709271349841676372948222390515052079909201310822373342748871976517429219114569456771401969881147701596609847590469749253685747564745085552901476427404334258616289776125456931226211445482670350460584107115624173818438556789504221910228754691652209851931265550936650299514276385164828218462689807863822038044112369008937640595351419675320135934047702913018660550948778042725649284454591745897353145983589246051946190237614791883138006414397229744223463543594602485450888082415812217527794610100553537089241510518218857856672802954745453264868696151877639513760551357653684121006461551121295078708231692869566193396084275686199569808893804547008576399505868724298437977349788080555809427303424081863253870455683092736142318859012867121301131190452668371576868582625826627829641514090029056114762367413694349660557434359844064512731483957460710257562772269094721969543455994817458784004148336071006394504407679708633071638347084601819083910834222380183422897508188605849677316478058197028287937136152761556341785357207727908052121196502809009281253396383606040577785275224386653657411780868974105389118593006797297252887075974319060793168278338438923121726531448958839597222773616467640166894518627397480909196048688138368007400642746653104320191742170183664552199744363759749201112311312068770867058895359759561867364178137140636967160169328837736700244973234529311798191266694844799535012879641669341028555288186167517042433239390528598252282730674880328324073538889415617311925431383566696461040047270428360177621457303404906513087660722080417927132337169806346524471692251696842595924262680526600010864106403309659754850584414445260856519860761029192228329281616185107793640202263843462415420900682766010760457898170272799043679592016646887748662564673086650973379126468993644401753478970058393558179865760854895121682139108279758687148108123878057551000332857597124881470249819493621077786652716318694842628402105016448335476628452275017313523675789043110227267166359400309589462555111698985701557877063444382590882618245847170192647575765890541020613017118054417213761858630684524812218610567468347336070218074785788622913547956495600931613828933304310951200178998921401525197328293462440014452217381538559048986799820222500524823059057013926804621797304912183931590466305378452259325875316513019013370109849130973434912613457477055216575945681959209916784371356386578611884783479859698302931413910714077861903299970844222082152558641309438129816688009395498135208980564520311899472036963100033658444099683212337783953984951637801121194843081743506653615238532257108117278240749527551407968634383327902293757409822459602579885492782399991681707634104505713619099999575309819123306878308941007709962404387163577407293964108458418554998488573564478347883872098524089285807148640399455691416256153348054382232781868372533910655997117719570956682211358295516655043618324987456894734709648804280632907166979253808529273164858540169920768929181427010343327021626899582900921267450500900287571802860585417139068535247398072731463427795298194957503309451484592025015690853317060937425775642216164961684471547411989589684039377167322804069432859747982137439768277901691352412070197515598775048103597679305061712403060755172836562954698589703831611049714367668259634884229904486669952283304498406311539794128141398469667393934933534898916884109666508889360478238543098700195486268586010975720719885350563107928184204046405695038774211841676638100693907365234176341267912110077124680034121052837782018674423922567104543483696349893917420816824941104030528708278309780603895260068633062327563873970316081166403553365768228076918287396593820410804391244780960584245670529249072558131799769388208830404479303901406732994631096140790980532737295437538368468588986674489648495133837260071787275756879460242201795130240234273479332656134941148975649863436816465162441939083022101338951260089235761391394441767104543587599999506445957295934404601579127885093931647470468818915203041135637061175827725183779379480768759820022566143418329171526205672642731093792036827320400140116599679753508320494033960546416351892725038936873152942205604293832755418488164452612018244274778399838029818517020277441039423947005192805163191445163257979905371982292034185079738066655304712983954710302809056509213748856720642857945742094433475929698427294832053708816744064113596971297412872312295466841148433659226902689145378819484512095066430032010886654642930097614250369568177893195812539586568281254056964989227222160652741023898982619478840643258978714754096750947585656481116407348279285796027282518734910785483929427798186748603204318087564013837601356041238128138366553193686218831782148964960429229764159734292609235363326648484208068120589735521996165398853487408980414651798342865330075686307367817695076675029096188783167261825408381761049327398000293051272117900475221064584598082947339835887143700480930417534174730031711049602925342813327366349476829780928852665687410415821719292503828423512570227710246707487161035111600934329752239361434909148085948544529781215068949213185477001567317649024514587243197890868784006556506340744616132496106609971503349390351814589565636885625635876252375209147766474532224559171672877263231604158664647828400171643109667205042129468325338970986930617016971432044982813172037972866877820322347221153899814854208611814577059985802885550411345552249856431754977841514754361757301809888303084960373823015656443314226018950287460948949833813746940072607152218226345390845720591206585099983860634267639646604423440430341742313847300199507090961833581447490398629223858815215326898475602868369093071094003348225898777068689486418912845840551306603735809555678973905578916781443562311793884179515407582007919560251460933599426296120779836636260870174389550241652853599736393377449738367082507215495133910649083523722697015900050928319355670445508549848557970671056160799967234617935008211457517663140233137075988787766974333088709974370322290782092549429363980747770506126790446518943319596542452468407404299277552902351073092113860988323091375586604719786283091911641185572858180681561861722571017683640333699311051103172004525916543206196980532872595147650453667948069078254920447379561297233736721113403017897718224222044424683856588750840319878691796835587483494015243269292146492888191039474167792285422397373290358616659947611102544872993225967527496210325001579750036060786377098922031819811785697191885174786416397612394766554843692758025211562289697693426192638586093256000143903447269447515453347211642759223706833455400232868065681065722397840637159306811762598397771308603637742542920022346294067957185726772654908696291506025755198887015537806239901480911136948913818290090694789834360941986384790662953184057805581104660804006069543091142205269956494863699631219621405780100483355179250733608332875827391265346872043635116338307897363109806362899512072284513133344670430431865585684548093041824583257129436971378532073033879082283110456608075266816449074529529528813664387540624373127027802569766685688484851877503776970103755651604101372058586793968140585331437751328474513856800601108727206265607295506395147152219752842813622157664306717056684959383332047073102335606296646917683535773894844438643607789257392693511640749448914197007448160993420492194123666034137018124023290485390361167244937471673479038924489751985857359218084281916819060578314767992608862082977425332473138385105488147071355139296389991910095014906037882436503603081246009352759273764779605572154618899992367370522933551127258395936349943157546531817707932565863587753207091016902204088092230747734546941073836941540676999221073031375437521524912014941876847723060285086415120983343852193148141535014569717606087262536839989383288653754130063347410141836668512894175276436347102532819296045687644583472174324460464468494589863717764453592948754076069969948280731912434561568897724305624827802134284464306656489169994703372598133514454633723816474088828320556469158167959298733403550050417922644196974161899612504787474385039029697917273811694230630454689895939548812408159425757102980717454006653662242217649380532285904273770604002681584753625974950402608334199154699700951903793023161074999911655965701765405535963541258875370294825571955757489292858020024793479105537655234518879995874731411047540106612494564826257239481020570851937502140574792329482166158468650871091733192820868633700971405210840582425030825451560379784507226580977708547568558607223905788217338881266400125887201503526656622206983685758192381947757403092151468987987831331843321232863493601551239727715496958794366271403047204978416103955809357742656290965476348094881610947906918087744576899056894597491867287191094547352115758018049820216514029830119985981340782951664812758756261593813034089555285697685410813459375380735223347228490588863034185820600680759367527704835078558388814870009944123206870073548735903877199182558450488481616129737047903239357549169289756656954612904137173224855195376436972716296660669932446864485956157348032830919463491098951545871122069201905270535087047432330092276128012604104001301133978156024396451569358582745655368463073758594792508207308828049320739860575650911086032055791989116649209998572905791689448825357926528041584823617926148120727461551081538527555425470394842715944835343051891441712165658750591814549717092406117717051848148599372727140353297813999663872756184778680180321292789132025503668031745137257467983437380765833051196428889871027121322758245166773802570625232957904023041970068178670725428084788106293560729412586207742859051104826462327143375921171826059722371311830160832913669574676920096322733461444299708462812107393480146844469931067476688612782506972924026227818885922119372941409509653736471104736856511630169098026480331458152138876822018321887271618948432488300181350560616709536060479305012314992154608700508646862198005111259857786026912723633880090962534443037314760934615642493484853289740562030990841167153307134271171806972305434462270887519321509278688139983842469567247765046033398839448049493171418396756374398226476566246615813518779462619884773474935556886253029182210055290118004370791767647935309838636066416940823352462675535379780679491506790894489452967305483723858852448705266281819086316042897859993915610206725833192082851249213550061217599580860256632220530369146543837145800084121369699720509393495056307753577346386887258597040129774932001370205682474025888116615391770237745701535364727793815478430116750590606673920903474110343099111793590763524674677036758664493435975768110745104493797055828664983330847217012576930343419999326629650524758091180263411532206499679324486909411464263894107239382564624531199889404192861610097796303470819157224711112336207218494862391754527374469581566527682263542377070235686969303157079080989995532652161205651967054187852619966255444124235235698958000118120255567748647519683601226395333212317199846000797683181539658967097720337350094025486713234153051931982276997002506598763176904926286338945929679803817270662328442536585558955444348439620509986092476492707839894465298154761361021917546244690419716763388472127005701446509212671956301359563966781951253543723201636892002466664636125650605436323406805849482620548267364795007140460085174405118775163145698680148195661809017113218459963209229727222478282349415367313131649101252524064149565503359552695612809516153272600901024822524784090927925512866697646059031262942738384259598870013830708319320475377224285678606113208480658891533013097606535321987521116278418496936747116371635128596955588128446431534157625097229710125185084983615717415627075636086676979097978655321541324479274645719563160448120963811583611261942173459957962187176372518696125631723520038512416701029695587060271847959824709940793722221956211048092070286299063724255854817796925633344962245938795568467642109676389054272217568332216102807056747861273749156900397986199878608493287607752138223080564731553460069640142549328459780694924529437239038917905595053439435285559792171175608183862819121556761526308448975055845962244065223135339356540008287544603107522842965335067411336937820141759176245084029609363887098454304089754951894387942708744787454221556967474580966582522510474823150024104572769249820543341514288407855408417303848921276520761324134541756338004862162445226951357448024545118308534278999919981527770684568570141091740923381477287432383448367095898568447020354202217087951164827622425739572238691608381689814877901763448239021220298025955158537626943804114221925203319962301028257884172931460279824965287029341686761739011849580116317834594733975479310081381858857030388603520334732561988441222488371391961586898252315163271088310914868890248800729023861756532256509083238982518196344137059839772702490839541832022761551443563355395424002501236961226689389029832948914116011225263197475692261639816874400342437319979754723380453180132420642527340164032092450431406955476342143391220640340447228347256091240105157045745812587331323285550616566061175548245812109291577415239342029368563588423198259658171202964991291115189125666414027555520114163074730962990694109477050191342037214679937272211727702255190959762220221796829538621658597556830526551522459904543012374014631637523461006955125194570612477633460111095719601387697747801973302349682741163849990431906094283507324570054736225445714227666782865824105850673162057810340610325866978312474437366608060685572494302621189176892043324221384778632520988798122887540182315755323404295552435547674198137413602147084426143319804345702742967852757710741311593858755229409426377375723471820397296263234111461536042350209925330890598145836999221857325439090825336869577563440010800089290454841750168092736952885783328759798666100273902454018723461409017353980453781278576870866200457326436720478577734231867940880528734090111044594233893864886139137410108992068275168790056800903858843283363810235711181803841240066218317752053894945772719758213566224368451936555454464258401524750683944321132601709903425593474985460413427475558818747466584453581112100819104767264981728702505752899995682964898785849261147290336666930207457198360883432029772432191929490493926392086268975226643550389188110714748758467504759510821116324427992399732301436702079366248333792498090859813579582238603775046443738408182909139528526465215184473868109859297402535980942724979664511106931893970690490636271848127176573114357375347780866402988390177040606297861533194228738368305624003234716129357920076096495587446247466367575639549440102964054548613940903885679821546715432946054867329647377501951846003535477366960943275848147152540114033301261816816887193921770596727353182673492980217752252353884168063480432500281028519836108595069082366309231100568858473769963150445352726211671071090361257552459864940002694880162087051229197604544443558238441102937894361575069054994506681012846027295467285533111606132412500773226531091657272064924814032143944703668313390095406965959304241855014621927111410350294912651757619980230387029402277921976411535976123782698100759292682400598953747345839796024625083191129390704046983483314222991594000601845031367526267607201876609327340104588684394007908540947898704144889087789679984468507840979603766691701911117774182167226329080864549187597759476134458897046591126060420595286022396290395826908542688335750703088411773383807983595698736005232062557897003908248924108460072069210808926683805234784641934839376605540197880155827753798769644358652192642005666306727826584668864065189003838980751685752981429276918519710739710024496543752246503653369479665767495782788493785685491194241958364473090681415649729075539342814261405449838683001298963317226524345742272720145289162706742300955012481608160368517626746045803873120998975584645760983772762081435608910925956302712166977739870518083726402951646318098166289130599395421140453460340705184429858508411494318430576505721742074330807095620226097583251465229535907037900299620897775922601160122038327181698979807692059774919627933700014553492415783807040124246310359141792554948689986219598453623678843305023735913488890409820610959165891025532036211794835220938179829040781793455986570109509852867735555710008803343298825624023088985361430178202258026441760830555705739165116303721849887609110373465170918842327237727406316740679721960180521817833557650059667807732178474705760029858745328956605307569754631358272046650943110192864267876485908513429349290172169754643939430289595871584486399168569699434286743289374925953248619468237862093933956958093769718913249033703405550330256732439077622316622055190756863997763570356565827747022234157191367649439315629920789395132477324977394117082459836073238112670099689347022213224431810992882450577505462628143931058156496712878986328448241025237859158800451654492386394524651701009098405828240324464784545184699541567725391795801268192109997804482633986928592076905308880177059190968578379693628244464920699975310430980116957262103906190208694695916562281241796443043880223272023015312225385450940242861053809215321486874113523821165148213364455764151641114744672406416922260558197509824424879362874647738239006972128800965218233199730308242219615231956270468235943948596864564867497978412073183137448949635822212168749281833507077657064033683706611444796051878047175249852338319330235042183909011866111781782988300690515119422368394170911644496304687542208199312548924441241722793655011723473043452982696009106167775976044260980468008960749882533969387698690426440366919389470941309718938136198141113046316032539682276199416704897451431125533334138985830003513721021895991825472948911755802837322121746653585643266765130256499633001574826291467110756032594115702081722632074765364230763566665037120583078969374741930525953280559361315936643601704043641807514501421025117768432636545595572078806181985602923078430067737131751346820390112360943877809982023722877836212308088650179357884515621304210552633402783160025933557188112643370800738412604481682179519159130361722699961882158742052438650099629139389927985806763704449585130192370854248407352352267866319747773454378894879031734260341842690112017277919939833228011240822129089809318166182808907436506561369536145699208412194491007310278870433505970139502781264880191647216399116358598756638378045824517527731784086262252574590680073046938676337632084336136602298814074670732798365097885768848729867251869518953331496334610735860579467858211412865250060267495235630287814996386857523252315451357326561382726173570013359043994597021765258785283618006103712955467451993522364919061402232565054128340006660928820120174207001765462529200824312991412556950623985942473304465643824595576438788903809996865481557467191518910649340114241123458676464557283818100445307168560799796399554191794529230444735108170011364103724596353107885071359265189834965868086720231097893396349455880475813454227114335162163736000747495591515475206470472693787685328390301906648969975017330311455381865911812216051244329275367492895258971732322215354481965781970007542497643299405633294741101744419072996583522422162185593565790855660256918799344270908516793021086929555039571230855928586841592108446653513969614203658091467876646973680596889758328854168967900130343263083498016285327878749306697149090000259484606629645496997028731064956412385250600333019270151098934301699861527773049115126952186878926057309191182843693715131440508795892592862618866157219114085853225918713201702549948823783894868374019237193832318472716775145397234918836388361091630533556754157905785621982247580252216199866930423747241594987872782770812933202229670382825296169503675368499699357311294803029170367224077139503323828308515786786543922638639549017934138534104237915153666965025756688448119753558299948645496822187833799080566184851000876052869676954564481529313495040192740929925495227283245255917309735572728641253141415534354551359259292490018192023637363626004257951794035817164651512620237429528223150494320427369701646379394538760386955708875497539815757448903376135420045635966247700788949172533918951179018052726487631849605578554304420468314220048107142536684692282020068476769250048718414196737426295431354341737528220519640757286794987213717753211842348684141608093871953017146751944613892013404405933951237714030612229420300671655424158146570446509605115296076565185682079035210579156114265601739365488658067280840927208493321182498409815387440720237437048452897906657707134072535935105321254381826463701947627905953719108236073853442736155517437048788369041603523452154896009019412279905401413743467796331335702666801000029498269641163036116951934975453614512046398016500317644665046095743637546672784708704776969877488681952601895785207500657401905345235082192139142996118794705289885758829569237184506865711002832410637422879325357895382277429866825850649823328603750179554065214292706096387334734500033332730032711291959425995955316625237045485015893027141915577521917075048765076855126480983908587738514458751590041706338817162926044021195846093646817243171242833591231618868951693262152453244197700076983003480401482568270692571998971429306951004689160690993736359264182908616203802011695685919199929993511173946959975642513400991435763714617693035448951777494314477261698451933101234489685391032910272347824192629028427020094391548614524258898913255328870817798235016054079967826098481480926398121261277952393675429286326228791721166322577007166499927271879860574462971667076309502441989007894210410281089460428131820580437498582660704825377588369679378836020463345841632559085375333352995528878592903468871312008585629938976884940012705157955169156298708873191061475821311661349544240245309150786259919435907643213127771069635267864273611862058519581518647414182654381405508868120321297434236851966895817773852802755033742662719108888111088370680911588609124402565702055320177976401587661299780097235093025691900362568205908910001202662282742479808028152098528872495878660902883973963649885216100858658982966934373416948354244664123735582994119755113766188192097250198568198167820918241640817090157539536105084852945741786137484850373960899755762047302405103680169119149377574562034179145815513658156958002329557692550904644926683027187878297765823763279881024745497900814296142011237068526706933515402214734470137790320205466322323227677875308804145357562868782443919634542532084005511665402015385848777663920132342224170721936581749543983148770042271078460268220453151068161234003142310522701104172469940623972152343599516277204060100911495547099048130656958091674316884307343005927758783364618431946229231416543000042009007945493633968161095478804022265056719262516375532264443668756254181893111896136828719097297115951815780856518708668035996142053051050582341477930003236989312522517679775579371115568478954353403680545683904730048645534360275582709451972287201812723063866902953829118491310355246271183608654890625788244464228280585814463811139692447495861942097211936708069926104801100051808969567601544192911329792854415097706331549136755668315651890841061698187489107010386356753701006497862313454789228578472085982434414789122818627001059826924785032925854714759997769494193431842985495707267344003996427416161869049665536114569743931539213726906784031142375087047331713045568836244504682969536486824230965601906307075317196244345027132058241771414708785154696918978381199567719313163911330959290274869572796835909555301227184136956150686994503473187303153361996671343477014940324683307584156512135840846723753267447196796076642435584334364949821751712459915562823217597549652132937631107208042769586225108241845242584551617911172361157677611307518791037895347867349947134048527882681743365827104910583355659774699625316391654724279268834889771541672143722262609102020874262879428347743291374339524979008641964081863085329258304278099971035608545329881530734375145716904156390619198569219758721887604856975787935467296594566788223693278373550088553030701776926681960934708061399134671223103450522248565766246638586752961259964410442731064073470607198470584952552103060329696930329314861890534211794740676478549914902931611455910773953495162209625909393868683729591342892203823881768360120458934116762121584290641896619675223702523827464520952910402092125523986534436280445058784193519583684555716426797458619199274953217891281932748723848270772189839121922301818590684193167309216558525391992586707532326860793408015941691051654867303296132254137172573644858785638843819465282410177384261452534715801335147887732325527648599786297088342567182009701179124679616256880989075218120658365031737623327370874108862886618485727328022547897518063788563505895870757670188956554653998730059330451879891821606731965502147316961687601999098495322947264287981495935410033486716845100388537924419239118397234926234929319133878456532148193739965889415822686206718570415558174649646236535249811030761371501632379959223798253215091694967129818671193454054037940572849889563480098761147110333166906681154728459028827428166137449116467591554685573417308062096284316896714632893890787667614545496662311978127362918773534105401463675966849792908657982579505776783739721348392158030269908901633922531398474036861739726523667278161716642153602973211807524235254506843647871868405255348057616262611522956451805283405325145316363822687150735737781114604722234950706100883206984746043811732678956618904672073687390542085141316288017769712515231962839222109057936118732442841773222227257518792014671676546765648631677456146633365343060969614122544495148017946759080013333577468153768933010607971196632326997154362020079539637100283689199311900257669483358927476783519486649163135677474477982483489602898803329655494006713719489461112789316436668398305565576817068149631876744018202168210543119073409499463949728149811607014675721072852155263089183965483639403967797595835738358094939140069131766871216004747421571392376542794647605268216589412129619219420156869194273524588223497009250122166669312233461149274083476879889061602416724863286837809428430984405468459459599944711213828862797404153584409896991540820945626965452604737837303584476066441532225473093056005883372566226955579642216928772317828566111446057322562455007551406792417980110395375359410774708373474049874021992178568303947770471201287114903483976020442041622364386566708669322696850187225439310751998972130896480748258351407082135367323054736401370411198961375545015263375766267912413693508261801172464187237445344489683488436342715279948756670498416300248604148971691184745708300842610730914181737431505373808038856920540926692554743201763893754724153252645627536311886071265930684420983631586571849991837592284361459197016904238708553736796357274435745293181599032746398153581318087227045836094744376713603697513079376339414635608092348211656678768758121718886786077711284714673953849131881055515595999505047897987813279002936422967584061140652015984186278730070421167925319014254153753555276443730363606118810471027180286863692848812730565937835358498489239008540833327639790507164310553400256471822290649809586967847033639619779168850417682164163009235364800965504471196296464814438764350097975034627510173526162245837357207534132683880179233117335068040940185593017325256115260116702977811355149486211267345449197135755577522091506729359834773502056450007575014987743297920379653229175156646811411853185027220311718204996774847815188759972236277880426076905546645798795832966413864863103313316927694977510967420301161652737558360171108913619472688843681484725803393494580265444172066900689398754504894700003996331062880128709057871816616142287091726580371664339872079889069854792224810988819064678814812695983702571330006567187852087232833134468283473183402069552518628975357189708764889971071633698995459151129548933001043107022355307563501649634698719200612577657367788382868082410347777872001414067093886991567353010209176763945698187212606546927332781347275486923868268199250842045308657123041755519871868555359961943090958106937204671865844407391582218245206145234389962346996916166346127340266692221979423305133462321518913785350918365801411163273161184363452264093069447118206480945654259112698026933251412443619714750068669992554387938936516898324102673398095033152716883665716935273496096772865631816848738168169222638464861268388031941693858416421128830195656473286324937975220341840494693003320551398410682680784333730456163064756536161389580221926911276132070908087401538788819535031361249158286402478452176535175366340323355232940361487866682095062074593865659093358968837164885401780874079331228240865501440262408395181263885808060826544051142880710437398735703776421716237736381242312266417304611080266059720499726307118213772410868903353011995569777033933367359339431734746093037304749200275046500130358139706545487373551075275989205682030893790980196900521849948444862671580664667376226875569646223093353837693400712644429248707076547307736060571279758114095249727323183368322416077890015296685084902068639085994575229167429493728195290271872756739814552895149551876898441556031538994363930656791069050272619506991787509730392700256544879847002542037541843366730933305980010882360238833480243185731343726717907128865583691624185728940821091702786329000385700948808879933706192782705999699888564280410803004261243664418078639277831527751068806202240906683823844182795080147992013313834834695668283956700770332926244808035259294577899519855364399146197798092943638184680166319202024572889502702683317235894937014588088977216132347018631436265796238905557644668958485236033498092475248236246641869272792018445415410758710819048632533390165675883046290034145694979784759460655653741349131130077718382225919943974833559810452112548312631664680447357373098781102834395256734877800102584362781815996418497455816555861994670613919134774112783380202869619801085757170807767408153606479988384237467714440529141578435203794930944710428853294035733800878768625030181385863061048822246353884642901087961979433556546590421988623924796060573067349677645147022064753794792288906718125700361119628274128684563644300337016721822025448461848853735560173239870091335836618359178969439341976513603623615890077136540384466248680449617984965815585980099163662504585419043929148593544639498608073618406455732369052630270842490774858938759430769250949248739718742922123789026993012977552341796426428670577755151645568339201372517156854919914861430963270158114074183422383416880308101234781113009190498389245267576858637140845257799179239233919090363057952826367766221552136758065305024183767939920909202847068790010874332662825676424499869563834598578036027068966403236553514155966908387207472215905848087838541913068789106918383059789923896288853034990081016379724746982894331688003668213773807109395030441652479382562565839739801206061759064943661700213970843410818695803819481539238437095595303855798259546516623558052508944600498510477568817544853877314073994083806173325803799538424912174753019552365141150870691771712114252306204641214242966010665104206061286939741540092391198520739311092930141158403264183250415512194989537484847459754538557553248635764325511778944591339407377228172817135033341124079893994920654808510244706593031008073620677144704177385355136966998025213037873110556827668954282524380175127424869121215886206423571782763690800326128215591052350016074245835992384271565417290599162557833884359760528901846292561751378421602165497004009233806773162140113987760572017877031657758855958775806756187509882493687084238051063090902489441697751460374089793692740202311976573337631978225347318877912844205313411970279204892326973958484451610115367986368038064830280650074431987355604691054715436539464965426188471636737339997619853984633200996369161629697185996801147634516934168019041961689781731231217769187682851984524015645234113266753144452924797962328062603633285941099119551636576486559603532524306499660158991581112874892852966129807850076260880093894894470521318475430106611629085844572794861770124289829968421779035126772786036530742732998302669177592551015244037704697204321664061825941115537642972903571519984555582932969406824456230116683051568035441830174390856230665344837511830693957704957997239291716875569247770412347827164296805139521463111448467250122605415173572313095674466522184279624943796932197628995692690295131154213896926765240941393941157738763459569444255144360759063922890521132014921074209442288031408065739164337859618340436529309476411097527940072823150299349572608497960408367005538760030781853365362509292565511174516790982906093783183704598449091670740779320385691505796969130433603383329134261517923072592532612207427320148331834758362369934371721391576076227795591541646930062596424107172976281422627089504752053737586909653483082956826862707654033942098951083054327960903127520599489873096707646177627962242265942356585368432402690055466156847213073518692827000134947005786215245499967945350216070822187299674712935832000308223865200112536149523588268588153834787265057835993891404445933553185600088214027176612593446832133754732438036603040869041674535333468104801553701781836522598965797665289690384537524160957188017147096332074492544116692695431615649824979315406734366285697649983877063632157059805671395076435575713177662724713786337974806530431743198275309907663238958953537505035408392393603639145197388077825941137656644465089730566660653539890132641204969302226632723193457441384818428070755719552066431104508502902982498177708498675835252048286115502780231587905892504840930947820987070410493343852566177825208883347358803211841778748245971936696910232861212034024962912860776279027982581601013348212585991899750553165407596700751644076001402923355974618542578208018783580419790565703335549744745059015421484037486875245587286661626852088539883604515874300514880993420194413053280081152214225850613983159666948921781944388357088098199200105451248471704643039765135372630840446046133985084947496613925536154438794010482221049106534891651681476418195181458596420445795052328806856091537861375213808470906350542212819670439281575070264263203161781335553666018848543053397869524606746676840618872033322338798350060633515071177522498140353702562310696640739682368350525462286148019251628482820398113625959830869582695127452902947664091147226652252038690710162165861189644091055538596464534287586524448252610370512502965549801441770756082257026315966875384236054561558693552120188638236185418817942384072477050923463525876071647110724912700153493257589298511284244302690829295536402472990559978497745118388502129429821077288705399248438413761541800371176840838728886594696049907771607939646540302542879545826997599843353291271906092203130880052367237450197801819815862190626488610060468234021965148785038926638353269444968506925325953176504764071950255688866946560950095107508188710566679223552484323196328937579996249803757520216459902902728640901282379572978333028021757988000080276376319435190511091243261072369274813496578749258095188729545383566925324845445029333185891718611166808121300880274150106037048680263618567827500964666104761959157183539897889442013941566673222363228904963259440911169053059869603359721728832088968285331502950929318619335496905189629949692004354677842280259253390966067821804837533774602820837767550218857252955083798366559456011137244297519451072955101162050900228170268304404050792674723785428507614653580636520919242973551739060795797266838681233896711925942059424652338939133368086306979087594620924913483957989281497461945252462440208368239801102105261521844105813826413985433906565986032749250612883491537561648067335534110658628257925402485230774977450108800487997247595589651490354202555087785635107456072378901160230502485876142821301567471891656572353905972875651148436938845923522880599529851528357366092755278216275323853748221882065044873935681159308520048065397870398049353857258898557983105399550412327060033520470960869859203576017747413869263506027994713472584548227966056125182611254328348754909602726309428600436321797960570598018732822545372795064608676636599705296107460781021433700861942701380431982770661325694561220958391587211016263927523270968823738558716468496232119996526705161378853879214755422145469665941717991741206381998337560253958986383002126204328340585956177728360741058407367025599393618402208986244428279656368745486941910104300943461173316295160845663990709878883320993840646068691608294464834476868615910942562233824883543604915868721304292985494788535987350077495640319701103213037275725270199677512623932195880322090880353374791743892431637668894940400816741560918156857121357676956152624069556773997513420750598076291909331087247916748991951208157836223003303628206804483769431298907893811774610698832799401378560132770733470111307556327711806692552478169444261332927024187904682209050360599414411165061037766602148081556813272303025604582962742362915223779392300986885490101332277308526425456142514158828571464598665398463093300735382227333437448551041281549120548014977817732208129198302605674668375687848973799685450974166016068382722208372375850826022251752305009085936858668973411150809364839003268479125209150895951446435519659249833674563828410372836666069486706653749045067497931006998519692492624178153150612815875437326461928777759371875017897246045445772156506569807945377994223905238608928039087944056816600228992018413531054133884940151533196745442899939398447434014994175098108134514975844352806851849923123907412255814298551775228325335900345899661092601777446845314307830566671485852230415360300251154514763479974504614508333197330396263400063293681252569476962499652594920792273240833293133237470429551416229572965638114152277322684132944586861527175580308687505557695841356951062771999968203259275839366242214583060343303096470496034984848031447938602663466529135652355061394000671947503609801137045232862223119740148532493340999563786884818896437072501522481436440146759907140024928371935238937149639645328402295862852338703090760355179604334165445616910162147081720181847391613989895504918476068292418213802760616974107390996024899029878395213439616050043508908039280399143727088860808414892338544287364921842953448438648766007085774678741917971932035388609102946089636340262558594355084022196508157489948563872169716173439064034404836141753985468171961805694329146105083223862740426993978126316302441747065808815643469411226344360529608706634760138083242050870449218715177604741937348655174173974324756304292892953729186875044024029481109799104291919801248929984753934838090708970256696367482862267789193735958119077781677148129457504931050065134231234721616825525130224100518140951231687961205043554618311770579876080107001121423940571578188424640718464288844412918285855466464561572712902279132139720356801989258320711984052966262205584409936895082826909780324290123385038814709675963306151132900329328101200222367690823097985290717952939503734576194518599485678589561092642227869728083445116176818847466693354674348444459186613636087641907183885477945991090651645144668993428453423327037942263309491087594541655854684121004669215159686182734089682906569194356776485292667684597257327018067618753536193691269817461627900872229195588302755052212384164066208884240591298802881939927930076459545406658584173562224638205807225915841559497197030762442784391501891356298429899903705829794189360657868379589963990545104144026683285262390932221956811936100161337919959840996761416888648359099084713551993551306337867715576711038834725448933994896998029307058618580342864263583279429418376964782779906295841758207167561311099096218381482954430421111963758623668562809540192581704688610593069314153240577103984286022777512841176492868283885060313892880477395002095608024912751287369808988444347282845707189033839016667444016687588167630137462535527206013371767377353071135206593368540897802141469893599141829601233051370331946931675249729068144873687680038686695398487942749537646302774966530115968604359979496097389537367834507861172776585506463738864671749943591530295368527461727261036622140773696566862518185074174538841664865776225019832259153573790394442843963785838737284686559984887903767881220630780238285342400565866798768491648928613772635180225546131449243484834509347157909744569755245040976806813412314159552112521287663227845073197454129539682645145642768021277700982866327224888548797970994268290503855100835010663983869140777875623366416392885891114543828908111226346443060630457986300981987172629338481024884430989804985108936189503092138422261200997757563880426629736524176228433754438685375588314622983871572417515888345630318639411558345684704102824581191746480906781840992111649620023602737477008299362635355065224744106090593595031857687181412616445936690338955383401623646381262193693742152349284428184811601961559095434135603577111999901543572243765271622990709619768500732119315952082184681553146668291535717715919534200569279979696548570845363340690378782589560068916002599031562360671178349288002687907860260329223056975851714606567535132843113224287342324359086530597916726215908666556318058585699744985999060725882831825824767042556255719929385120631970028902295240088247443218611004489540329407183819422357379951172090718294012063107920557914043114673261932112735036002577618789787943783554286121532163433682610494646372276172080382574789141407954258638204837616762061514570023243839906617093587287766048441829296474613184288415862751978387449671012396869010426168653425893916017094616194778779041572091733042460497074876861674247570903060585436941960795124036915985338723414251316422058913619505611702414079639069976457279272386351305343026083241727538401307155538727665057373492192442342026467195976519360537016308864137742253770785309624864570095145404478122271596532319666436325331853115592379454861778525630799891895501160449203240609056217889806886320761724192403244639513284812901890513576747689925106576409865341036421957720302972047297937655575228390235393829266526573178152590899084835380957872587990655426067745033738143824566867773519891403212428523881974333231018365865384722501089508826438061362365729536768877519590848685391879301395244505127137267869235989918984680583163561861366517405894581324578943054359681831515950710626288098988693891354278543977091848405261451353257120507058915661270721117247612193690195470693356458553307489269003728998191240978909516075549917716091803625511471187079096421308363507175381572091041234863125458221246108795670373991650224068394014252511676811639011532590187246846728911038594443292519189584786396790526263976818107826612033377091308908187038442057475181613549797587891006924268045261712152092732983967992043598673606269543418497430316993815562023507771772080761610181611840501792045480330921892348408433901386300667058420732292727449994656180765995210219168401681309326063214259393645478667354447187989096914621962523014209990660813664517868741613868968492268364051450466462789669986047037320195142426675690418499969339022909117841301940788089536876872645192968950819051901007808740109162764138563689151988941218575220559190469232937460781362935931232951740351187327966413042995583799318805846413875024277464114654287382921170598597412158688843985655364098942600382994240439199760818204364029557687735754179501446422075107165227343871774625640241780061752323506602052906135361067223348700161830926043319002222301739358278173103954042815004843227759650605104751122271318473797074038520003398154538517989984955470331205235173314150126682167173223566010076419066259614785120692261025029813202992680126229701040051792066729318130984497772214454594394467870989437402677392423160065695396810538557682857664778103701629620922823060117488194908075895641697667034701412908071382142845194654728929082476714524341830424534117251604522811990610230246655066437681594050069037480291924570518229968836356979787226620673422765924548814127197735862888976414746414350301848801850128053048573994268783098254057436495532942717447690348406100466446899882838354058243597774554929169499056852827544571321338775265393301076624210932474126294224031331220039528692156531654503331051163660218134921921108634533810869295129786303907122579345564667273948584848176223789109295555525664461409932072441334246487761131008588345662976274216154935762105252893329374155255378173671969693152752447835073287095746969538367460354928524197384112841705967221845198064439081395135050581945915883944189309027578708182329946607511240575009106868231607918741152794141750196031666297889591527487659091719204405175357927252688926987408431491628105892345528056631257701166036728368871374747754839558508806920044685317153570824635796803462975762477201412671700593997295810734050664075133556439810506316156035931771492488342208829905112305653172292630354926778212237599290832648171972534371895299274557046667039839073276636638553178872961578824008459986569378879551156141467199391966914786357544671308663842392000647713752798322491787820940809750100691790612599535606581869524250820058541527594434449970255253562428084325169060054745264007438887146382306441324729429910087573164825045660115891343523959946282661946433770685669029283231518425698653199743735150156560977233229348868292778812882278835125951561495680452305000265240233248148217820245953485752915713771012282485221753082550199435232608091670906830829230013867600387824159470699319840027259823146660932565604784586294048367283312777640563619428009362237791497774663519852219723097557617689990991842756761167129618418529823437182772056085520567879520284671841714431661240514380142489105868003899437630771770165388110207697411741542018756473386473888785903231051593744502790267425891629586724922867645085363896879422618514215078767825430170949029195806936308659577392351311973323606779208240043754347253290057269970996162469728229608074185928424786690492457572218709218578879603856902647136430114803446640513275085468371959063800383770217467929297910931778940076628919735336620968167775966177724868151333848301095137042258293406390380701855043789899525859392524776568903580321988162938020987021190958013955124339439675677731410080823784076536070475336308166698593001185479274164476680772685903864752889036440334137970360897465473961293414083131665116078069636163513179389192902430069285821550964033116538445398141554575269193187106932718941331819594316735462375140620922839805541493826604444155816999115773280771054823419479927763173990448153495101419426086359647366704182766178335046663058748213447046749920238838895180611983536070397185421513790680505054792507342669680064388140861621751036780453990707619829180458345632711344140544844870411657185076833704770771332257823457151372272936143163723887242266428251812229460083959995032457050472921449596279817638062593873722941305097057225904053430882215755512602013336164716616446134920210196872294688467295505321336967325913811727816346492378576813945239785179713164881236538243972912445956454297938313189103416441867973601634065328581443966948210162312342953110538447364352475372181299933445424347808883826313367532566293165506108159312602021226703939514477662660143403833469618362716347006363380096534593041476190596084829942538370565855674092040019201189993304064601388828186616639226739684912809564032397212493998911292049438154144462394201484325207331870125057174855208173880998258338108362289591102187660606112736372444753609769475600670828485907291535828697384794044440635049168651539264626812245545926104157128353033273538119281790955186222117776992639556168700733329197080569550821607651138713362623036410188167161232481702236865033839967446803849625168097712251008591638220726335823044420359781462720061248070834689929460529985294890802797440728015402113742309112128689149320697505621272646983519215521480551925220274726046118545776036241965385555768886587785000266622858675030168141386178271353128689061075648872611382884022158762661924864012256371008193140930855371536856091490763578363481168313623727972564540820448553495395949507773332847771659357659890688588208013710712854047923448749216963631663604983818200247085498663498464916558639463512100468293933680242620786978774314932774132856269922683165532557287580299142381928994516459541022209400556243280562061226755378992302197465606427542844689334215165376648050887298569396104896267470320402782577521583363243876266448243189131491071386496453441498566721114746335533319270149334270015216476674953251944383804320214227026803381851801283734628137674304424049509872997580738480325785588125118056369887167124780266980633069542485426868103793120028669529709320655587347932466732383522359963644320336772145312105265566976033101006741733278765252469251410410233851205194345673902101879989589009854946955947124557153049391633223420992868714343483406640910798440337722022527604032405757151979396422297543535946745923553184377961852471471124089021201241103517770972963574784162476920515955834300326548265986128372121996909429062102122527917162927554651692155431219196378475308436216426116987351318378068724997172837721039497855944793371633479314251681364542173451674016992932789376575642769507763030690285947692220865047114125146731148560782828346163506544919922607205330622362244260311581899754077106120897471565194790504088872416087549067613807924110242095951507059262920545546800110644735212755138318693972671364517398920050459242921315090838217760649305453570984973621880552932266176814266856527150335715301629951256257785347753750584182654609796258085838230381122757893152171291365621319676194507097639971902879037433254558246699721405341695993222218835824271268101394308142708750274472619608654335651905371810993915625940701754082054205475238042210802619390819518550071283242447073215320429049283283264121345002580766243661062529067591849186218878581177362624105558198331046526714031589126749611812458551548293278332229523877404446236593183947584241680273586782521763581445223932263247464806420390321696838294143661529353206699380523915261922752297573442814374021226555546644083858580991119409937667957792607315552547573784734189490300113577234630498945337460358611560811509865023504513112056258920274480718288261461436222883470546144418630192047262663692300103823352862882143577327824374431326901034846713196301919611601501178375315759020450622631101829033580123108251836855447492070518278894855890008292015412677881811874354251990623944381384054560455848332350583418429968705688310808470215687263539120425886065402518269508530297446305989372131881840503666206854378539649344651984282631738058500453676843397304679254072221964370991058413567273381888740377332963591337021522267817418416880915330691462522999674441481740330872103026578170143595238743422111375695328134012293646927485107904281542330750503068457040482133694109618736551387213779015806955072695221526697321243519309321359092066883671956960152964925515618511772932097597227121887329974163003136292940544208933137786739833503544434747570736487875740264679335335803755828059666961397056882716683844632874827960085630924028553891869751543176649215680933676787605870539106269144977029746829726811739529881057335518828809180394529680485420229345743459162772447812291195761776362803439612758286344254549276990961289002673012043916064474557014900821045310594018916722331712793813502130927452059146737057522042110270913413034982994850370172639252153550814242540155012966596020099350328523159855981798937458104196033570819482951867967742735059119711391203693560192884969241870576932827130134682597229279804849642982190250993609927681934854814729454782150066270979230634078460447999733837129458389615693127075616083404039604644759689775428788814966076704747563202234376220340743128015629856308520125441772337740677684095737940218674028580741892703152736239589124360956794482782686052562675438681606494947756409343212296543039566123752355485834886895781756421997255689471347390236699709378851517550855605453660006525407503481394282191206050715132738012092354010289679006924584306149610009942831016545645085300770657953203256236041035968263110849895558759306779981585635420835737962666881528069184168775682927052521242638554533246696888478836686846292931422866058120678786432632547675672857966581961041485848080234534173570199476038549816072745385152132475656627765465768114033215149177544553490910745461637835312284684859591836884964325941096933966986985978952439493511362894677424612609170299490935121149808642192695938180084103253616470765351686368571867887215908830049725603155923570555067811617400152528320388389322662112280823948588871221712966933862686107820168820734453078049931748911319391261702793219528930747112242624008967887284951971781011993319796840489117635730028052623173374225363292965097836796350604952073262514445357046795819679387558463352039019292210371378892903098600352578078913550278436720220523425974060409542369823958929259457916503388647814694116932958483812704447668492246813139935490698125457690933597499551149866962583723930987227400820613646918017568688325550743189113794104062795724695780856481605803646901228226025302926543902286381082741834865777136821768150349633616458270312029396592478356321388496340060297546380376273469525525837954890676344403625331568175922102235523974558452810715323203685388188539361739877102211996651548388372656333976031398785918041641166211404179378708544753867113421264657323275194667173408135977920160750471419294439556819458824565591037114702935460224494485189941707055815543680108334214567735240157245616077945222600138621689266859618005473900378161317920585653762367792511935215902965779034136449873271905183817805362780218484662039963984884213903910087369271016421062861533273225500007639296442270647621291285077548150088290800422384670855077514309542816943351805313364695014488070942546529578379895148416706736888269335699332332097027335375686433088093191936947765322680743131079782455745905685054361910280506737211373475117837985243646621880145050768298078080142557513036258694393687201520622503954586991500473200193935254446797805399771582061709484525946819407812815684505011839031030588881695467485054971103126581921922960484492059396421436839358395422419835625188064410272585216990311105954313318016383599324094287726396632232479326807135932718685180336703330181855046842285627515160098748939342307897214786994746151176652684308792668521936211483469256658358719145933328419294808627549955519402711330448900922920865444971380970704453606108068900556068518830565456357984444235101715438222481884094176754214577667964361321968409973000365727054575985338850405311341013818996170370315381287823374583089188500217213377506482131058411465454966298374926479429967326312516363294622115668612726699828215401943184389188036945174321975381121649687165811348787764974697434611702552083731340188992238652624755274143066538968267079271212962523398534901283977028810918565902801995625480921347638211101837294206272608615913338908251521488690837409618700139818429512777549154663623827672173262352302330567514676608766631107112568566393507181507505950871854290073803581685648336651065692817926979934125424879386761340113092520200738936016953346714711191516749529274379794693560041592048840966143521914323112014312313919631137930873573440987371209496228752238575666004384433081930844503585747276038900237460084851387352251052568238939791908831551491522663896496504231931521000845243797525947349998240980419893251768146246743386821787039467427446016886586420652299524304047958573561480248119957546817513977408053491823719449633295572208672010673316289601136772944571367958887778724721064552535956605889086709703772481320273850627760618825808498877831507225641855576681093296413168588214953384803248250626997666763476411134817315882637801893965442282115812300865706402413425697712614465594711554931508384293708999330008368265267042922349894612345792639964632179267583958804352281142820268326370157047240509944686162973108123613131150099713592265516356372351056728625196018302893582067826343875910774825183116976509958740504296909587284869992164968078748289871574683064422561203118163734702556908724928885960431969813485936895719840869611394320083323941537504749838514762807984913887981125919380288856444452742574720926037308240950591528442548628852071207273245462864261526171444280809439317102988396127016559677065351973611190653919648186997853599856471381734290174633277342132775525114079284533997839205978558275020490990881034097319803212214293060198487520010822818824808937428757330854275534538414808879843170598661962788050709936573382831865933629665107610970674433213623003995827285537581597757719402848838690835469781688175213070820996192301000380886866916541370901011360974780092645257825911927577908255588276511992482233246323416432873186482125137758187114925325550310968844810229945393106293964149772352906464922102537795532637539668065741531782953859760853891494996399483529197595081940531222624421757278220673051391018101029754117849691232710260195814403570181045883569569934919554007311872205015355094198952889527145152396851387378332512596708090182446796494948647661860125293755797150556721598580774323571855017695912716090645652756547739044478688323786845197701103887897137321340047888460351011198622670084922560211446643082250637540495877044878064239499774472459554886871564383461907087633825553633690160538160287427925621118551937586887368185619835408483406578468171774536387408397326134870257666146843677506229524423362900398579096576805689133903686675247205190600374996492090579161259315618737132843777866605219075342383896786992456795384296616403345013846728896304788275993134351232004999264795829363534116260510887028790251812564875532648770552762513826737501950110273043083486735567579235434793433646131268800155334475679773490184126531015374329847185169574655455028082716808570514481027815153252095178754349450784003713819663835836292325716790064111532270504001411927195478710251126876396838555669357937935323669511131990950386979806010943044495720957980601600598969971358976968331395957378670221315573307756804199905021692288944542673910431094914506275659555609058365610364041528799049768392119224231496876706926566036566593667110730198025006860580944184842768640405064654917883523272765641525142748604231876991185833774645606902472980112193140001959097192060001934071738311479954370091791297576512592174668677296635705186630073478479899490440404197705110207494793248340394888567631247852943903779818889538303169127742386665129406140902393723499102552068826956997368858392293741946571352981048832583946410188386304115627277576014596050212767709165715915805743121014839450239682600232712450724626025000561674325301970495708054908424471396956850773939369300692593747347973049984164289016627300100241008462039312955192354640944773065237781741272087261279034124789342615484590350206445538098391602578064461319519293681146219250898261924924856664117766369767213342153023017127680660045405509357570549153905763822050932931185647550547081449985885189596363494889889351616434774177851047179210532628094483902568766733542184266178621498464422862172772227077007215389788669331871336799888356865466620339757989979006202934482720853844729830963481204023895414278123310000595435246869868158266875482121045122801874999952046891139549467588009181033884971234985347529714952229626242500234163726469714119335743173551093182582488835632739745855684881505038912758444109250091358874090129851576860873172632346747120477277640000824893781437311536889630858750330569933451543358198550355499188468510263053706068938500508612836883837934582302112028993098861293147202125064702295307337057128061838762556924969306683102536604659266504784440770142994615777319981169926691253347015819995604421206880991777093078480113817701496990878633339593416394749662817041399280452033852005872242659759331892903873979945603192056472751852672707267598692619293133416688255183325351291609163487335014634908495839228707477614334530156828161056372959534631333927032905553267171180140017523401652317310829318720166331616912385620419878327722353015169235178826984134278126091385731696875690910178089869819453449092008171475919851981163690716611560714893390549357506368963661574121383163755679785226134629718508303048269200555391421517809769398520612672113998100013140448057583343405585898410764391815518654361956404815823942941772795173361277602090878752192144743312642958267053575798052926198619679527085908575726236031760718017599500996740297381857467782795581193069068133305953174948091663603543149024551544648415247006789266291235248427582928595199001568864285350581693625169470121921709305950747295943680343401724423499744069809263834816505472203671371277317700209132880259818488226829343059073558234108027032417635454991404206922319429888509726067040055515081968876953617631319085096121146913227179190882295266049755659428362613898135566845538598900785798969661283617883878546570774040298519296377053165522686177030142914101316183978080128579930473634522007787854701062312362862941787452185590920933083623221324796039695005806140314012056196814598334410879648051485283862098501834280886312287512994337576839797857018985046542257099073126499453811451648448359970936955762103713008764354222671235993586599847077795741575318918852426231539029940624120111108976928004190156950612698473620151345633965892966358814455640071828945184045736544877253510819087226063425956903474323855272913623360658891611125052151931754257131752776771562922917955919084387079232504988768971948184213505866468026778694253746727431490326489675748807142217421532461841422646639451106896509837848500788332789472919204228142555762822803493961532643405992733995962643315482793587577448230519029370447261029644352725751605472977179076251267183169391464924161904248968741281202920993008069980845765529703189827381452113122147977469261007663164583685723120653550706760517229366153927381569076923418772148094116234448248724764465959415263643265375135737661747294383768729233639500967709253025228486007466693657145940156636802164063192059559385161316921652045313006498753633980389333019563375681552994802894636337887560400246833923228228725725303228117195680108837839388243615007151962671405352792844107970608964775992652538751550977797707152964749479510566156288736354524822719456768314559590587806824931653758577513540731654325366104051962229305619379085996045994946691202203727452877420766486134121884989625538440476131320360089411601037045490974422222134006316608050213223717231905676856761523529231543075854205569695689132158693458777441001890114999984808953434389510970231034201511504051595017384072534350665862369622920879917715626334509453196115012930030369157542962742167020679047229525157328333965030317803449131487762897970177489521625999036891384418887657030457217905403459834502492485720643475565288422379575527485055558499839876246668419631132658860337581257409490203386358502003217282548454071884548973492345444341763230035114694783299018706825884664412804191497595449920513842712763989846129846868113414395363536394133505159166968395340764226782227329383103097328343792317786513936916678376720557287308118933506458700657014303924062831691669693211239386512696146198993560299700485322384641307964452423292963246272105672718587316546276553030887956801369734872649038084297570368716119505288619567159753644147374957519999645489488025677917497654121380487008183522779054390290561812897931869522091788088850699951643996979744665996176791877097459404576540119260614790288480371197700291091091718198455186507904424299932228998159033344007494698597908655727998584570755263158687854257436757966094518191910165417629749528765251753317825852821291860155883181090076582689564607985070205006935927940676855243433639675182556638653100721304345551990011250247730076923568513916504384468297675699751809538949429392370970900548853416720320010704881827253953829025375592049352147358028856865303656172595659705540672919326757070494105976059476294127537082280214751175624400546403096321631549114052953946921410580749454573863473766421547746215539869841650529264171704053676201607590124520258798120533004350164116073495898798391595043269781144182881945147357888583424608710381674234919337925080018548287196952413385045327044973155884155070217172271530393689180573715374744005325957152945418781916081531765402857095290450960771690536921056262909120274332721580331170179196365346591562983633012431933428759480212534494720472136247263657719492061100074672704205065854590632575362106486295055815222070738376027674202046295398231118479398934807069156817057760075132982541928903124175986633495983177309337063149462002026550660595692700308021005720727351179633567310057879395912377714734580917923474466256649642328352002148652987602164238084210746189920813908612954255344575144507324851465445503984122858835613164144902863529281585634356318142427385659557049736669511015021036553956039182362539914205629165350248340390419270894231875850394517043329250534218121892591402720569112748148455922879303166002500898490096868497558575143813854971362885356481809444784833391095938035623650267597106220309097658440495408746238068241905967328145261438307513165038223077320603859631814164252148641130647221536149579660493677436885070503876229074696733585161002509972204392095389384689257073725230491196702344713252243785890079297653393319865241785363832732687246280531980543550196231523751188129537425144549539095338588386712738310705658553590615452098708632850258002155782925939571499227146822985635882388630062282442621381105487914318416110132719441409119240889817667405881062158397281462291799180297799382905862254112583530849305893713456872093890924322017125856315860403051008080163928365999496360495634687302128759577715280707551202311600915523696850798310201782603066971491878935909104664599610448103743250500130858488486843006598457496558895018777183929657235462414083208139248012613838672411605684180551274540970122219190997999925752716373010528454309209950036356012623600745495242938525279420549962623053594683908275672028545828902617232094147909256244043013194816456583262724403574242959450854446333611061403014590947976715991950066377165856864761565556229408520750408894395899828146773307350283423872459684269023814836967163130583711584016696653193513481282948380520345285179521365257948058495838117729967693032703350506238077067885880184343554500378501658132057757459305191277299138153064295304307139389056563536962027091670066357931211001252729535244001621645719654068366439667355774498914373409528042160983092056515607078367645021128089356695275964147487393185735010325855140928363042723837920384953188048303741284187973685466628922846494286424558252743896116554077774215067993648513158111444933225826655889586573479309090756887585661045148923886268743101793770754763639199324220628345691034627380938226490776685916176346642471585949585199642790204001314110968538655904034984593142051206603155128365554697178025784045689463162294974022549855897105575358418871334673791608060100325080151104770897397376537851874466467196770189098873392346159462990399030961731752156422911785557964675398366826187809233111023670974729417423757738347130004140931206818254316073150246660064404490671376868605933600819057805000661209576978134497554111578303264705273422621113445431842701659465265998002392126339065446750531423915151821948127255741661931552650068708656279551685579216743066488399251778161291764409368432180474279538883168808720282953927108652030343240747185732577274954958580551827476396943336360943161578739815260402098918200237409337896528166865634675672379095905231247874728377744692367108223425634751934693537245448451242281838281072038470896648150947580567424727713005088771627463340880691964057463445907492820561172484355728479734788269743620700898457804167564417355040150788745305927862316275219029751696279650508648387841169156256561991754260028001321177596147676383172675809216649459592537918670725645268553130731741365850892670298791416966202551026909175606627544141075823287247155268045794279250040082085910184686362595987136948610086749126079072394738231295406924470947995662461809288649917576924754959553888472101559965964137950218572545764775053357825225952244894558649463860577057075905571551452679515508419686569430734095465081587163045400958732188409262723073109181934856230028027561065772476013632086792179959271237460663911652648302821478823831933633576691405408341286002310361697255362718493767254931939874278512783916938361603024967995235451281129643924577711537621118228158418557029522010691615412451345865241338718780927746698144266066775820428982750882926699655766681176114667076368089319534877176004100720880879835010708010346059621078542577756904082405154574094665093073978816594448505719021002380293677319214515047598342640570932354274717154821898236524975846030093958949417996489228607466171484718280340805384212770878113423375978591340556182705871796172036058870845101354733419895052304503859629336600812731581318501871156631248151724508937427710825096198838908862219770663741374041664064093687979323887813509308583842489829250419273156125195278117093660704599589906351805135588141709892715981291041255179471719304080367278284795779671892899959660191045233877541090135605128505659765348737989593055407359986731789264110330369149826277864695177514034543847199220818212554665249546009187587618917759679703823128092057418910493961849546573110393225267940957298223550520069855413001205948804410083310351433480365064985198875600689065649015566211388283368600537756817595009887481446152827206092430923241176197204183486897027210076392746677423440712323071493132492529939899184313147243635410640090389565569333002073617359510726518033484598603656705422318348606816279005086942582683597819682169576835460284617583916565824154704292433168438123385035836595230907999904038145097920094474247027359600294958731098475491927630907101223614967595884318249942258514904604895473597882196013749622671608627499801721042514890415788213110256745641267894660765057859037399100974753824826902162204515476394966047981557564707768915351135348427443196227771757361408449879731735302061106915886592242101736906854241861517364106803279338117381410863820097746227504688378780597854155378203639810736105455453325454011761231388551436627400024463403756668585819271520473101282728552635514654412865290197735541584683176717193309785388803160385159307243831845481985699665116672008327865183889603124964430112301299126210216978783995680558756431139257614981688123095655977592434816176617932961941904858874419807363754855258584665821229610546016141016415138370341254915407000489104975616814258290432210730035333729219910744280761316703471397958359488015345789560663230874001552815160157348976740826865952356189087528638033766897685929174812684725933827220512552081499372540263009018801181113758407687301295607906702082675925124409554849967467576090124935556170921516652061599437000978269152709881425042875921870463901865710193367716406034767389700423285000682939528538614755575045247541337755407959203305380522371973271973868676148395537161239187466792801892667724395352809020688792963775563158129885680771838596726644378837434035956700131672104625508596679736739723241377529659656126346594656983451199651993469673000627506900810234203541999575681142916461660928242947724819582201074787828590300550311675837644597204946861502063818624873275058276322571976922204463401410151591069856670367180287137926602602920649654444776118091717550672567218641141100220466339597707214809574784364084030606498330199174305376850678666597011732046704419059293736561628078757097308918324190058956944627857782187424782115906105045560131539607455736208687899168554479946020919917481762353017102462726941693520744445572464887965869055914549431389221816241358398321432773762834435079586928272670379672635496340247831271580829382975023236040731650288268867050017511341213053894142838173952207040846205231889064464880153799228970086065280661675199044605918887669143908878749549746107376642674226481316653698495934644765582359323048781573107419821541672920547703108419700761549141205205535870882343448885993546934642492683974814425070064974608270283888371664141242770874473093998878508014669054540786102935159633918850317319475083959891846195048526132942360313201272885570397098279188400049689859576207895209590075174126347125218227904450320370844556473945387225784180853143704256703569959228627172530544553422138231005199487731815920674175017210485049382973692306870801979820265494807111951495322575475207801841407180362900858216320992772076187964119718104248944293435382980447408835351108220122331948876574446651148448407004256930365672194856613827765349204864561684847216255929946009805141240464172960175988112365273307996656027206224521872494186398547131010591367155386557439493840641283064812804215274460830408744561629781255300800207431786225606926979574601132352466361816875196898942034795702344674817637303924986583398270942313672069808861670227732764518731576429754382704047946413623686579978065128692297011839397822480269370322400476056013955594000677923206957564483931725465327351265711550564508682004377023304225212855163765373434845658990989283623611740609371241831633966511881903361811741823912542105381908561218210542758090637656194512341878172287915953002448427761626049836130195147071415476768389642747270527353798726542702185905684034733263766005273455332100069474367423564111933711300552687843114361309692427601283641755327193837370294609929310074836955279889240479522238421092640507614562435429221942106987160982773652879626642734953028046006972462835756370520673391271901054971563310278146653885371706798003213098000533028431077615736327358201466744587586536926081712536792002084055694926711660594010976702374066345636102250575306376991616750107557615771185487415438611899019264547699925739209669961787758197750507114721987329302787894492329485589919595009653885118267986551827546623480354111032906887843002453117271366935157343185350422817018376928978365433497261549537149311135812129821895301898035382796863758738005581934192594244024758098212915074894572867022282189891314626093017475362449404488748476992868928468403512373128913051049788365856179733971929442874155454859718695100696436211553641861932798290931515242633044167306095883190325943810373275485899517119082558183829747425406166857163067378672805806985160143609268566422935396678093603148311198155525870784392309216567722272278967412987129029369079296919613501267671838294097985495901480357041413238789785650354862086335430666756114597227151870315046665436589822722287009608809620827260155570175146429562886296636432562693506249823749091467748499135857119971791564220560695776553890932647350828835945380381016007259967891497625695748837627374439521980577280750979537731603969349601084380088963975829601876365263678106294755041247013335344574520538625899038367233981647538151882349932595793296523795950642178347897196006720324468146268935302457033466148318251516953817372700816288921794009184339291520444965382633680333239792178682598753407297567160702591194614922841104332041819245726676694139184630854726263950339114135827696708973022314368329796240558041604834545824571984384204432128424864347867609242828769717816015080242080459842291428774094294859497554306496183919599705484883222631375297736218751085059772038590525380365897863907487981095250452511594274875485134853134476114987388761941171496437948144719345451295132405978732674142047769247424360126212533469567501560869897521445018859665905116394328567873743158819373004895564600624636771701752007985066974638618866433126986534168006540173573356688730434390524449546676788886614939780001549355200804698550561892457619518920524778125051736307582900725792717086990264804990571371774212441114936438045270713451899862272946200879903640902791216259515650590602657661197694777397701746174225808885550508363078158348181714901192480507483852905465875160511565983459389659150715530057855011075000624092233643877520759772545499803482246469930010046747593887958097306911250938581731247657491007231026486319781486049324813143685376038343075863300893920244146288560125978551834299595184015934338178257451369542408431139262974799312518677722031559315386003317213815129346412217632734264541093623270539577326785184495081144881398174144909611009826327372853319946553550228521044174708578662980320981343651353303755248177512592295242559735200928412303780565552729168677384298545607642992988643006075699696558791756489844086771674507595422198884562030567010747873983783866907926468480945559760002859780651233483852792581715773799881422225930838783753360673244661220683285961454006519255945266760862506689905198523397289434615485508527001235102840279172177783576319849426237207946180998026585191939408151825245422216823488006184479505404705735145218767030122289404807761921385613780794184470219674378134295792027314985416043514052023303448543482630169392862564909052333672034800779699240976015415456611101522746703871153434479171044161712814760435035326465005904665714889246720186865806049842733985807018831165561993969571336396561161745678690629936817026888336743472229546953097469343380835193835544692847005847619843954190428668828765141897546482353877386831539608973016171355231471127145652600091694196999175963318251359722778243010002064446985817969432448896368934575893403443811723393576691541654049489702090217709507037743836129277315031714283138698884948665969191192712288626919713915103855101217087821671654872833017360864636823876902685185237275372504271137149597647740884486045423582738338744338120294077210588574938929314107990090120288898869483513779098738461366202417980279304945007655005160802115575878584149144215007214034912787867824626261650229277801894897159544207472782717287366581936062882894054280578979894815849012667843974602832111744482781705795899851723180822406986367577795143721944784041890739307196736328796057590388096824018843631196488415440521825322428988997744100649429645508382688954631718585386513550931131110846826148018204248438722103400849796156514090708920648695055858288490673210425053703305146317936614713442815553121177171325658745793633008765546632245887963457216674091903443344976526353760917250535222874699924944889264644386794221611550322991166573369237011671929789727317047489996653792415607270498684191781468490035305565175605538473714858759654821976924281929478829065015363358056462643422013619602862053723917083832576187331659846150300398234688447447252902786875750492225701417293631395447595575476783558096375056975608411635999648450736731582411931038689453355158898580499778345223618159507930369251228791620480247311304451266700932767301952164869997835144563137653099865534119183912270510406575028798815852578898076274331094923648756944146666522239978534557258363472950409359580532187188918024378900001558575057442124959139734597482528903281314911413834826053577262540402226608935499811261792670951464945904250306671450578091032363630194349500280842943569544054042051392453487744693326187568778140233080966665046293788180701495909860256841907719763796644819191456759172639212171301592237859532668171789510932930195919223501805540385329991767595609192892578650746516769759002168510254018934323133164331841220690207206325427540720816999959412116628820019635847029071380012994238106594833803827225142848942761243975132659673792053638053556969659042973252516468078041415102626907423487354019593099039817800733803456383570690617312692533570655052810882680610533825746030823710203460332626582150171380940677020503337501314362993125621312003158888026053633010963213259839505512959505512313075835875465852154977978622352809981811465625847112455633411892365731578696377367662048120261747727368484289693478060690096249620983697934609586649687950270888000838630140686325274042468988300755291713311112009252294072719544951832672501277119428653143239739479114479104454312790539308817883330577391070873530361436098169445209496993029287364237500709367253862371838784761905736944878681534785158991408509484413423701409039430612393120243055490198757466469217296094204458659962815602880962707518535192037261234947559086487574379107284437379875741714423293946611770925630417413301454980694756166544193877319762243065505842504466400298793710222769066378201932391913265068275322600999131917382305580805072563501394525498172433082209529404311851406860590823541287265010948542810666803098630738540658711448617067073191338515190455201724612527064294568623367250218929950543793556044604621576404902308985373411976227807715183968617562455881418466030594702287705574161083477890363520815276032884985208845994806832247113610183236388593535153542816891174922127174532605756234141934161778055767201596409724671337465618994719301662434619357322776201081111487920744373333608202707611711112384449901207809736042523485384220472127464141593173859956136382692481181518342761558818262127358869241161976940598690765091553723011339437808491390868181216234956305334697752125474293977823429869082839603478933886390784346528601646085888063431085010109521213107073453839436988448984638971060988615603426650299629363926660448107547221221493110103873045432438571683882106773931526436737533743608019992524205634200025367205240358733227229669738471647909533696282242059713250282010220147233553353515268520838128738263409962633237912252723466271837574871289074605656213719942483191623055347199459953563832495766347402617911444271580349090947318578672670446688351009066845467331760306043037918875327955471157128546506076361309858552385789293357905536021366565505110685435515193857561828359075180813878153556637645270283850695132763141213627615053855445902578365258100092932739855158710656407661245369177120886623243983151088205461528937838912897281289414063882188544963023638838724677453992081806314229023307394894233428564070111326740204359680067084568737556962970111306609132445116329938382840256870090595208284147193211469295615580126321416497725164256827367923729921438805272806594732102383673288269818343715573974704293150676789064637524667468308198011097852736142059867377390064582973991863359975154747122602006163720473567958426487675567064364236868850812301892690627615342798882128441999796872651834783488670638078336923593758497485669790338860073803674857660390114047784618080591957274157518365961189160643691141432767646568025595473007621747212968534412115642904856309505419333006934276076063044853465621680858129835108808895256762947963887681478619379734494403036024083816164945989645861721517790771767330563159224677352828130012676468029643967618442044596183752653640126743384681876181106158980139048737014233478216945142658788964706468536570560460509474705352569389334586195999945396312055925300859832539845103833223409457998178520602437625754902736560531453308599489381466280864434590387559735948294291585403117665977915048597023617177905139023956895506760326760664663411076224406437938134151210460131470053005179794015152958552818799464120573896742677255179749177885074516072392169083524382064366258335211069319253289130445803581865549736966345030836713223372544538053182408073199960263529896429268748510971351579238785791685126875875160087186524912846383419331615929509098522780949893975981788120861827824379051762229951026856228165272458697961520201334738816328086797334500268247053372316523634100731814734435154774942130484736501303570261613972586762663560020125668286970996360913279479402483976850402279699336797555789654783439887340750531425329386087864929620936262705601828181142591979348713480239904340717143731807024889733601926548878821699781673352812689444569539445332063020008943425183981062405347245116793220474577832890021172699132436422030407059912380108032995409081875106125729558315596610440495561728069932985565812154363910832227693641521877618335648949749542212195646763100186961546361191087375468754931052024735687907812290826026805412942151814857483992639971369742693275147515650941163593965567472467213314404352737429651922760431809215136971358854215845611288125790194291355028274065068462529822948275646232464457357734273215167735012030921843914269094484037900062930021838710455281258002760928601576096911237627662957456965855028805521219191110062520996789883819878775071106405752063955859861289184616090911426072504779056195946007513368681671267980190028121441379950238713916323320876596034560861039621296879607877950456723097299244064817320153271307558219716076975934128951676916703176963940200603512311852595091417057714610521028496634292906466542014665650263323380021429072391048794720479748422967910147857151331104560252014673798398876220451780341684949216121000648142993319572999936444557645544805436479488645784559706545730256142158661791147149352580852300916940438819206451746214554622828013856875926800720679205481548706003917193943173099128912084881232963391015641835509928736042299805898428696412680091631765036269171128692947811131525026871551970528889538498595507194856783103229152374052867430699590605194511728855118737052691172492092405631310616652348991693025514156966259973961813346059683379610331867436497389198934525579189667877071180590270229728160861822298731392079997150132299243029964627136734928561840513622334521436348642377099739621843210366419826919692750721893167895919112552154838791163460343775756485749845015917450062742053840383584795815469969927368098355634883359641783288772731598428840836542968220661098475966222545609377935041594116571706615841250908811852647017738793737436244483930053232603278628612115260981113794240901488520049133445693818762612856767650356456491975781650619585763050482299711646249840768213602459015416148203869574349994224350052855123738000938776903061104056467008077364941292361945577971496584750996775184884229105400468731437827488893515821338658960452986055896041245908036219607805479059046946001981443687150797551355459723844219048325261235491642006799494456450507130701011522194942374746508789405458502365060871307514458219950515386610186638693296278630380251990088723002071561209522270548010113221821266355571448972091584436631217411358928431326344910378093934476965547082444321717778860780035203602297088120657010408549908934874353688458973800470444426140783224800688096164834318380363448315429601046886283401871055599892501654235011742494302805948288028191767717666843508531783387905572197116562320837473895989219523661629784964937022315111697123338910290556426059364958760269860858437736000021945089352819603047314057238607598191843208551388906683870952329555529217964001689974195331410606885489931083853658066034274807737679001318443427326726480244769008879275251643954845617618199376826408898316831351597579332621754024117608619695740679014792978337273372792619350299782223250706132036901201176500731756835776034698609147682822357380265262945232859010592643709541146248833250759771401586533716460673428577422306260186930973539106603225955026050678383936487111576970716396460647482089772359340863993719097386017579332519323940163612201188206979676251452294830731779405158287993936217744945862689862741846178458077037627436157533640297650207580893214572841215780954356542866082357355592238988859050571735713686413201788585397880813436942163643603642906383010865880362774561718303587567282568693985943426410272438967795582255342569110660850690714458107788874898857171568237026704995745797213880731460927531443143060461334597958429045127529949883635749046496042479930443177037263386097880039420738155625233085740563630298914412839918572341182658640513888479941568427896199787992051291984175160081693742318626395088427749094759798951169724231775281655083791308050800389800727172196714554581519244950884073120758273350411243446637185445138955976238962068704290010725402574864254049351082953567390739020471681266040797883769559072244670252775384383277392021750728676924523300723245689892948126478002635538770295001324231249380144420595464924468690330095131095322709428334960639211538048173570836970570656692653257508467625390426276593033696537980447846382629271743223341862672203071917161376791843806331495068848804508650172719997775951230530549816394956799249406595175996010925690811312744675212544191054326536245686867078559317558260492616467632975130835997314237880152206812970900966398862122337268804299197526320383861330638731710982276322139232057118481046702751252348915383890374673423029948825418356510466725475278755686229691257780101850719732996585774510143477409027962191788114399980531678006342060098748557197964669414725860007431341666045555374101847144609821096284772312650770370129887810884456039196578997878387839336470395288611204179138394425358959864533435322812861324657959386013290763856974610252334909001186343546274589091148775176753727580627613694400217843781779484362742433274381707101521407185693935672985715906697735198782369602606133489367301624124212410301186997642422913691599399013476108844564898544668466704511858741562482555395407573761091225631844693807992335081273948747897986331781231975194338559335027296028803758508794944289339819296798188042184085641352860771143744677313807248108664625745812038989076342838162980930322426898935973442046964138621911155056167029704000231536488281161586276145740331164274960789962555937884442205860308593545865139816805126369683941171026113195111830928608243630079705129090959437098158312228556316915386033869437419913059483197953790368461034550218806515488136331246630384683863792209550269984004044525171623429067623489918307490034199767099826995484486508239293311133581424446346870735064128544346603277379539136906345343129420614283467991035728223233319249271351362807582032690639954583793314391275670020883006775677119538285419589759556398411994756122508016370169845835651876987940470233431635318067349654417951301569057899193997156379648985510357989790250927932359832618432140077161345687341236703066334723138855645217294138643485959981517094144587278292287448305283951363877769018987357114864958847717019490385328271764403647782706347527008261723903241090791360605320896123931879765960607516915224776791709160749672680237943062065345314920867001392002844507455563383855356974924067189830361695207181873630808042465709980122661783311441699107288229750165316856234739120427754776840802701237007328721937253616107541776910710964164470653438178400054344643002067953332889600135461611027848325522278150001191621212414329627807122955576665223805701697010746835927642244903033112396520983571644764735035135240773223688048394530710662378814439637493758322117654306934115517421269290433234068478852897402588459200662122549256794104213978819306169434013810233791415580120616925092675783457692465567835076958604007220393821404150326258773495298964500320574579691820538284227207472515997058304629136699126445169683474124413895088278959940671654124490374261685822454502075367649805659057022161154887678496294076008076717424032108623844997131284357397687275268080345863594013706135412424187338958101918013468410721255800148261796685483164966007618445829191971571535268546378172077645640245568744896227248205376424519385224320415450135575910772814005493243210882075973055147334711246456189948468159277848865020474556774835875103588683301391551770228540860951249904579419599987237369764675648734671981097504363229815875267418544969063830916376215117590662202257334161979460748283697298956956783904523337206839397744497000492149841883999846829536777492893195521256764091404010934408137622640504104924877311571621894931080551598478396018912851316792466383194887565970296322719067243698183581759524832741442118599641123012498144119077450071191820306642132664086498174898323740802820478259266337743132105766882356653975167753923460761191072857880730692678853648038270770610616490371124629887844284160918133875365003701826756807246596671194437403064734737487056652924403460152569742622989599042703760811371424115488523878796154140991684132490179794420572251548284846186524880135544627849157296720528988242787596114179142072416161262127431035764901120298475007553176708740187054289680429023983028586439170012257960556795656486749783459880171878344182777821704760635258677539720704147879692672899965607392914663369019726154206865146432149321648202223312547431291557778939242843358285381035467732226847154238750086155233873723373117758269186963087293686820235925330918512140186891879163743019495090495373288639607462568618492637904588226386240719030711455141924622024065259653111003161334474334115661183270458405849167936864554612200301717821773008703871020631436808889580825489201961190756426552726373195298766107942103067451420387040136976209355835860268707945041577165309298012521736633950279157185304216278041716652785823426225877009291290791548040700536534176305780067616176326375274970715410673619933972659701480106725824240485925664861554579331634746136336755387788188081409689646741328549774344192599907377977626825775883845955039910309712530819166639770610748753414565879299286780388865070262454193566158656814066299998923404352405133089743198083821893787137524583147881660962452336135365392811836565135755052479026915252139508829494073090598101673656963103870468518010450081295908383362826613677957190440986006518889650858035381347857920205663119758536193460328494233359556384777372509285745435471932696988718128526457290505873494339397194270886880789112200960195249728892062908268009788024435279232947054324185953132802164858018627122895284531128164210786381223969532934257280732897646201054976014036822427937163613153762314359647771786005139689310097698705235907881059366649315530526335833081937439843214615068807859261334148326428974118622689225544907080063826420898395415875376128920335400331805759026093200824855585522537081880390578691584970613351364044712165961835303962371550045531925583129453859630410669665140692207056954418783099365270484348001970366052479944710953005906968361470310130595379686723532587425613813831597272015160639978740855890885177522466350941882544971896995716055194511373574139299572158204184071693440081803301760364734435740601826238542997222550831013470887178442379567417981776137719256587760116651633582934340336700002490842316570774919703694567394969157151968051051318963881639941092707886084994078672091391435374941599956676964072604666828465037482528237164478043420253414904721829289164068147865316369945218351438470385541549313650490885426236684927103097849726422017514587015629656541765022014570953498049621890773275263642429969008865673073934144128667835879615104375550739488910585353446844324008120439783292080081113680207529124530185066888916021738726351326794804745775856057994239131135245331775652424216683387908642022580795054087017382296174186291761984932114416359574854025185847604575287212963486308739618578522742164474826250937948622186254518559836741357272041688090947881346702079709430747883104802511101315623518134401451846734097070854712555422733442530185405076909049858075160937536012576343818851553757561139399348596916572560374863035696333922723727059840366921579473338691672989503588134081772382925508034301381923980016801524968420631619832505866153047703032462177344518266682307177985819450695878185382149815714010206040435491997301873895780801673615512219541977132885057358767912731756918752869182522947873412983033127787500502115114169222820033380455393144543771954772320826108427480514230452414781160423376854121567819753643514886151195326423784670868537039720346861670515314096357772387429409090560759912613221234730385152448479582899435430603997229931930989370316665583805677727760209271709998514833143215421475816182914786698930846976983147645996663829509566312046890698857004511131246521941066472132817229392517752981057669548782021191532083102128937003280942528806996464112413480386412413409226649366911994250286453154937982742007403087339033414677301458547303380894097014843028096578748875481239255210523064136161022092093822194883723023506852210858619473625639609953042992724507804816846557750682599120370921557366156662065299002718694129695864175651348867953804576207501214475353236526685360647964742881828807760146190626222270442383283667736607881142716213352268953922776207581089984767984287580118378841984303956516414040990902131793808837896031986251400793794732934236844439428768546323621206511269720171009301817400286833332414053264155562967927789618694072427739215029582957766704432990921240805579913783376171892775003965277255884065536013689555054344864712599517095460648393986064955607362361574048326359857948284710596860695661525377180647868247118592617675419148651072446889896768104285943194802949221952352822153596094610922225607404033965999285339449753619275108470856532116999124638365591645598508520363275935133639022305081671566698124949230248765689551205939216712438486596021620673813093057593131225158461890338578370619181333833128475508734938156175735617271248503708391173836481659906648353246515231737251168727503357176051901509376938384906960654539362120836884532893695165123116655853480505779447893487024109837276808713649324218633670939127989444721668513717938330233406095510819328222817334637942929681768356965292995217719239702516891657719666764689536923791607547257982835739602422586527036115878977144142998080765098160113162305116444058512172493433190160428862443815965861751013581919988049923775458805294744254303868531987554568526903776190613445923908800019387509437468337568302008671072412831346549156511770013916651294941880901242171841924416101821337679033500211832784889356814376644029817356053600224196011435220196633604233764797431061940373426429399193798797294030574997546550088201723011237547968465623192719589476753422329272251537732328909177373634397881219484484926947480150153934214810986984956683875559613769335646246069769232575514866411993530464010762821052292393742514198902369596124212073615557851129691261032058222960119241154216017106602867360794109027433648326327834686164378848104194661876644864471970247905765631737140759998219887225066222823503140244707384275175946053083340505383976520127675732702376808784560408216647555906620657500099016467288288946677182585084382627217341268862094013696220499390602116132810010557977146750118667914080147800287374904412935609016560721191639080895979316313294120195512504089350527865209120141395247249968487337415006140427589720306944334637704034981019942534562402199898773168411447589444499610939085917408728001601367656236473476228468576765837989763213064758183865725226105733560780599779727707524824909519761073412905283489518290571643175465383010319163412288878880602168882075929778294190700239223403804799386178078457836306242423647105629616750060618196695677279443684480086172289219190842204920067546150726478502957030268816391761260312966575873590273546744820120157874338612447490472447011699106258472487294530749556795645751495416888638120563373910045306639756845540447219044372986247011067978570499949080723664530131387991590594912822556800839448541166286760431546577177735733125092496878635295669109185541039234282123674577093440521866932906025779921179693227681263642751416995482709970750006633315714342835311569232486246011792289664956622499250169295939703268741405884978765436503594084978008762034526684413694316891668716162283053325729922660070129972646707718942542681601416493131675688761910175083145904526929942181001012455681229642112570433052115471072337010554695344735994859348021751680492812301490359567931794990762440879285361176873860333726088668554802066293714642755287867275095725146796355130331011212331231296847524766453848626908319193264355284479036327097840936843986808846453280437064858585926790131642333416019705707436792906881512251964983314360552522609407096852063395070614323671761197109293718293702150008096701936114794558651457448306651546647443982837583240996412639545790803795041407755236111139827194602035514296568156576249432418723864070837796781509470022218480914442119223152277095948905347329694685311598920205437963041135045708178088964869066429945457115857033297437870885651471938708101860549715839905897543340015044910274335845121070390630508314682598514610124962319794415970421955381179629446082468608130171041203148707536798081015939610500691118568845551544212846832590722462886443002668434342986378494591470627651923469339987172390354542564022012022201563168632942319707495113150237320261385615082747108096712300975537560669607963032794975701424004062846076073843772252284649367467226784296503288061540851373517245590302751956200706351771151115499494173964409990234362774798254917906888850732649772527240122049035435061586421304474937285207100169858933522750090046084019383844666418164231252315282859564336209842885753817045442872305538701810877437054916487555297521655224964542129670695804625863438545504401387743095389338030813707521909487384056015248921057672064889060504302913824748995627906962397065177340212500125027063076818341707244877888763460260085441218159097113321500610635599555891984697446037706689649554064749643970260337985685239091124187600007760615061605750854059749620290475992961334766265065294608355177087660840462747463042454015719290755939258773783544953126580301961140397868779906938239487428471261339462400877348290205023391835537437246145946948476505657120616401066983020222970372223264073228985156774872032498775855590976582720093433258364384180869262419815710076404412553219840475355577519030863968927730247197495757187923663780217064984521605463372897950090619777011543235865969421937285146989058781192365198854451533667730189057161144477015086370861674327060263637384330243062412736245165358506588778563202936628714847070310893581908969946091989214611643993453908829577744024440335858352421393088661215426362883084201636732904053285571839074861042883312881820088086206922461415545278081298736383181044894931443678653657551277588467712843198128747850088489233102034788661828841866251033783440455504819275307957733921308987555119459514094364392718035183328173073880306334435706688729254272250614325198954666168535495719875767340801308412275129369137507762528711510495017446039557306706941414070071644180781116009786473920177076006666291872132984521234382166368274356813990162174949474975421659797584358487373952264604035447702608488982982339247422134213180684430181923538706085223391000290866569052455927671106090685143784412695385829916114679902635951520704268732576438331581813172770050510642109963861199567475719657102330067997527769519811120529311339264097858232316001199072385220829221048276175821051153940245183273175477397081534136895125286903585383946407218439258901154858380702316800531476667148481654721399237154138140842698856087960967383761788433705934377447800406098966002345066439942641277108688216942379686128229952521927925932586449782580330777153248266546846234754756567354535165141444965440109066682294078176779496122611638879261357468904105898337858845601650481238081523291625970592575380335166057074954647702341035957016166919369043982921369454874538388814290510902178180888069539393159141070482235133146106063231011808791558652930983210252901714661610133591778765854238828649087762724994040745602380706834152453699120528339816822996626869223089753069160761157319257581151985154274145752647264701640018347232512831317349329583680972823140796812830794142377962635940299727187968423947806835954293475435811695553619353272720105473286691086341294414411657528267631519017991272421490220438406082221103893762678805111274622805885664249131436752637667373018357206999092246547651240560871828533601712218639146955852077487817416391376544549064293782632531501513106188857685040605524668551749977622450572038296407826932019775925011004871721399118302983734801766656385633966095144752469167938980677427370436419576139826768665665584055366284163355798775391053761844887801502696584095890785166409842599934759242621761020312556181124676765779372679120597052236403893749028825065396155740509827198361639429134533854131783813246158682541817605761859816349673151053544300023377891611837791055587087844767760728268366018259571831344058094053625765982479102351763427751363982578040173894496409649058573061841841088245645594577821192224173424913106239762051425948098738581086672803726115043310087251766566886352988685100292149564906252957245782177497646178811141222677157469337408340684477900514447186765049221218425394747550001945820155510939753435226335271983862389693076145000620737649622891304204634846678476383943814659927001729643364340269921483886167620762960551190740913555025634516521615401264128481567020075173960568494753943880569702722092128307850490046686738263771202977000620712694191094774894468166331156255221168616996350734790198588052606816604382011405262723216888992817522604856359552570570022596603456768787741283455494571820491518487040616535915235641926664859680168533444262328837374822024314625710757032266203257513312745008860885051387925918399819411999937774863129463453379684185918487095534596710646362883851810587016600213943021890006506881384690738058101505966969107694359380944503715842151010425289636512125158119373903231702881309204883998851211067093753110133466133557008911186556185436180725358969536912378458558031967723699403020556950168992460650231899265494907755948305151140184489602935334446449377316160236928276395069041889821915371960650823185809251791717632307901623202040204241917465465766221113578171705628439657778714196015292849334373969266114191359702461730618574689800053056967249847906343034281533813910895218668192885828175458660469302282186328155496939950826137843545669302506509605328416830260750685422698786852702306211654821346526072717288319458028499703573384107118961690182980987872924985055293439293446909436640086416530138622948410211837231881377616251114405685204641412087388099845371453138673179898295034217843750372906495863617485017029800655808666699346879878685312148058940992292294360059865957382028469010277178185091978567600745321515670795775339663714363141005617539054751197905225562108940944085023962501896247276952990797955242683784731728372785767945418716290308395369894199750124336415862989125594144685887565424888086305448828406362899635036795692804398625341447416230734726654136368152973084576434539971894882620448948057853757559014701280482103432731850050534502099517827240527795449547414797734835275304788122246410716509105131949696160835723415491982270313977964285691151648110219600481820301740127849754050758418444566874288621645991009964240928836479730327359174938092799597047743485069921182513102257242483788717050372193628640813792190887488209313428105546877024419024080341756534475815399986013901263241018018198039043722852908123942723399862793422171711654672044874827708853494350680759806020559981736145742602891181631511542345923196952027671491928946736239368390218810089479445552010793360096625604787097896911945258727490756087597460825597271351044252862393924905744866870017424736984113883675647833282884993635800359357274262536496892743206450239262404531865562950718930245260182864285065912408113843747599754360672951325134137618266502164297083370253176850452963463063752640950608066878948307539331118920263049216098545324011166622162776983249907528260440277995079305836074236665524742027984734317662345531970749879816817011518926424964203331093711634689426515573685028961102184016490267179149583046463313694509515327414851308913729512190424362927451173263259853992278996026961847782106197565113776288835222092426000232277480316001038573110121095710762544432267686524522823182882181929310449659663045999644517649686866810537146284343238095522630242203810348003542258381460423943130386990198309605534296265445237686448266789175827463700647311047458007967189510831261259673187469890203013413598723176174034940810827582541849793006442840892684124575972630764935382009859158433661173949959009590149615047452238562778983655007584603992854735015350118988562456228888934932122850001578953179612851645627135658834578005342017621796157041683019815567812872784399839059679401088456174461120977626594174029157460842027429430870561776104927873383545024151829124719176944955296514730673998795233070621136628956080764040212704065964429068720457467358820695524624065505947964461676931802269964617137546401537570206240148257181634077081868821120592858995922744248887545487926198466962486954886324866674572266713828272436998850999418777257112468804689433845476894230674621580967577176925453104673927568069568766770738671300265009977532894945358893332966820145056894662044595949189825982088200150361227223131497508676139952319956178399976149663962153248720607809083975183798420125548315873215419599984488686637575100358261617061439108943000537222598000524038910619915326951715855494091315648089618605918582507419834153817956057286190043944346417037562285114913294178837100594963114229339347889071915180969014983859511610972311726289392782554795366604497573590581667315778703098967441453963968131402409947832954576109304693452781320036540556780446487720917131795990671137182100933697659575912642412809630895447802109823552090589930079710938433753030037933342563135134016584053139883646386571361505694752314891125399591735025909425383201623857807382041967270616143631734189939200154350384988367432660990686644294453748642818604395201244264018519397413207070537964829830413649713823685772102737226995621122407327249661513850746757593364520886305458493480286301674753958960319650291731881552515601654692264957121300759863965251830806495810315782349841276807489348044801038317524349150124002524405794325169303272555219675503656961486112237586144845279230040492213721487989525514645609056360062812905557110514210307355941855831767894040666510912718755641506768686270937213196459577934035650001697338326522121648682748807200535780643184762065092712924751056296182353174680165926271854154993364039744364587882916254449766919534288944312863132803148677855286098056171579466794138819129948453983129589923278742450353079469370799356640206857692278126145190818376706417423341257114400756676505288429070879824947593526582817112413974119035378948548139289664935142332840197632857160374513070348282188042473035612969912133859946347676252903547425587669325779883205420305130727280279837294235936657899786999972031037848257648586981530452920546818568539116078065833380077653930800942890425332373195051344006431443455765419772496804996403006586645176515727844398955104132417417798007368270575198248144233473570801922619550800783096395069383205375190919089229083345185224893443236309667193922020928583875945460330566388817428739104963313814003717031338240946197508493150103064907566766308131704358249017009550461402110269394620906167815403042569543956371874390402166377500550357701484092111549276766521143207817784661928006265037027104950373382261036710229187398627702377062718148061544880928703926862409898517633444759651526742043951464874221898009355965516413323455715205987121625641928744117924835228014972903835584961866647352751580834612509439513258171065063292712406567016795600423642439630624168970372808424077256294754660150600879680223402660943261469268640058945262495322254031287576444307516155632165078628763500347223646264092264209690058292939067097794702202215292127784459948144538364806753978224872712744182701515480757116581985917517143523701624808561791133102027272098525516501068379414624996972461507433224317707930818760624363239884503525651419101160197371626922951018442551462049519324806331892042801496730547128826802123128576176301687469600410686522168090700566032691244710024652121753309454853882388374733244785736170598971852648767949457782861332165286672647171938485230522541941584247050009862974007851237802098073111911117700055046900591058828876158621788447926295924483292153785581188825586418559746048883362590737210690746176601162127615146509443240035303305852248024654287710418481516742571217556446222383434001862594026763725122815103108595940296041360568283400116694356717599778243385774976352660919358347411361062935359467871517925743088056575151432119485793751001101165201960383088204706438168402748813801506896625064231705519805861757256730556044867465339044971227787469637325262587947180782850518260201923487930896359973000226723837981777939153391882328876856707087062230770257055797343041651643799493370063210671729396091795135929028925895547392573597758777751023412332881272305714340701922258843940889377676509004129308343993174848946684530309157314118928362123349361845758472584852340455653197045547998780329120164503673485564126447766653742093876553795325422627684464225217079778236786940792575108010466003576245969048410549692108688247744416922152608995172302276230082609428876443093256659112128458378363711514232643345479616917689335056328574803859714587639686517241336862049140903836248824248680058678809412084604946065926175182943352704577154596951411061817899212070039474257636169464947565400812661334993944597615399689638407402289933051993282734620212019419391077333890687783972837303122660009907609349187944625895316922403953741763962715190405620718017750218372681597966984495713775860468279124282620552887726561962829021725279249878291021743057112708581506740795935137916048178824541043634781626310190326508149935960599371973472214694422250235088429730839223874209623224100423446314667045529256039422790942721875750168235016640651081196732400566655552339241085731943070208748910034256706440217473128188894628946672004146670331417331793484958620229769694016349285778738358398586630947555405038495265290995250291650799445306304925963840687533970793807674165921128849309031674740545371051157614470422800152111127278904214014134439415334410219637857580676944785026934256684117444373741118807458798149099178763788874040027654326819846567170990366674762247222443032378250384092739835452701106490993750530049856036836967588476106133700493114885842933765597614886394197409758144258858597469588889591367731198303643640844992615057756894933259131815491655212097226603664267361841914189429718228441901058232617313922772537210664920233446200276939497431782079439123731867180266094088206796429565312224752490012469506799342476878309316143459573828635629149465744908391348908598833979507943055709663966748205917267305678996031442576629675239493886935110806430646745176740874291632367766957343653734738662734090328697673320205058775379983095952604242414154848957859841000014333007599431040832614293356887427634273915211388496486736490808358932575086615478509315871251029071000127424580578865750915511641861012571982797105548415647303210198472557413388671718194054949441903038437414068235923555839212904572818280568917329946659319650658718459697406668345718989283059960463204501756944182846930431137078695513174958811060612742937777555564396691401532635536471666255626211782434490428254762218573060539825368573886791069250590606982481104048159908076634657218666268698672991662631336234798998275184268228202063342719322746930603919533998047394739090908759343251133045890306168286557500550794795606327750217159892119507155382201616589278200736324325708961573869004767366280703369739934581690385629092148832639701165677368785937967566936548666661900684867212928779579968070535371057733001428686728824296026970784241655515349706841564548273295632546670252316893887175997433850900694871109035663182442160252065628742251293421983710595445379557481160058170998342818564029718551960279717851191090723381449638805540634581035378694604356713868007739089666721848572920404381397938905099122063476731353879339688361401314636639311507670412216785804287089715745390143261306900966126936681100207701397181329168759109840338382932662492507480934094864745329072425237950135968711785704091772625553239920473973679129142207472373139252150341960451874727038332627532192439869732970501181732602927971984615427525432105478107759688968405910884004567419449071930681480336607099976073296609042052193472976838166341576347988240107735249456592852406064706540162252997927560903741317165231282608013614622492083508363959862010857597922672678568916793078366117780087850774659257271646599299787486472094344515217245470690487466655002278049212825259982018753675103698249474864367023247634336744469231433229107189449680871112896318636470446805058532950062957663827516014307261425691234205501227469054285260141162600991152329191324983625427828978805947637780383253477543089080263899115139727493794039810910244843443463197876368450803193609373050716570202441898983119525081285453528357264607823391985980785253186441503854978133168501565068584102833663768248982956416942064372654944059240770910338327927602067159028681415934887812365765355896302560403190960919685115718180239390939164799816721424246563830121199551321120997426703722196151533957061640585724981627491807116156546182955487674096502830308635090769600004475409472899756934509938855666240732450167086280538808286465322813211452546910840549719603182411217938090895325552178264877069448133704661527965360420439003921718979509429276956411580107530818382655246037805657618805795309170012145944255933108300535426203344639912232200016146801645236870805521347175459902658893744905490347586725691206998462968054645783859232225119328618922403635653622983942588705733667962779053763262365761514948769864826257571124606991215921852578751542911559699821668844863096845337932763917294750333282986344824977929111528661304664172107348733406941674768416697428403688423031570768567833259051847697752067918899547445317277096497160448823439094953300682457008676113365321619937447120319734164154470230461181463801278459361008223278360451681645414528124738509216173683946345163448091156878533579990218863255818826298656234172370449923216670703356280257602459302432962776901413950544833949521689496906100174960514336218511910661702648629653115747772857158789095350417653791879545795101522707479907050603051539431623555874893902793127779667366935287756254449844411626252917048740878604162104347647967316545546334351105080297984109216643350709266712246136184396883506187745665731524290601930897743350939359736793611743566112138619327986864973374233692294241906395326298273678255199049584559548131222039608788903029925272301756989980783026281786416571756005527344599159698658587550539160431265355385504693038704823001715017226458867554429338034970015725849117970165039712577137972696120063243914844425446022745705528249895710013320164626630678188289050043313653382720144669203935697779778854192929168650022547970760599741962238145783226624869445626452820397252738300463730953386779491651599091716686535456160693131324960495879181598688215173460381075316560776860321895266676395715271292978324701973901964879250644856540989137275879747374646809469700073711159042492500057177646843174365987010156217724694378396041627276523050057969256779425589055109050355507843013538853674010211616659661404021577775664237171908471177035020029316159572234030196187597861938579101929502422550201542800643954535065324719346416056946951748411645731605289814731691352063940442603791996932847195619634043459254791251874730034007105231631206809214907711287610199785796654504431410016905694782535997324836684701495318556342129994777468994746603125547893974925160395432896821522525816765600450727632844202881121086765371976058618761881055536163174807496170372919249233187746834805200596200819302777605327389992775367803124745692888571141622099496957202368834701090751379244479762476814194044018117875249215609345234463117191570089165870585507590155155919224880891132758140181834733292004536775106497331996284239439592607065050033531925636046923018084571986923551715123559263207290714375465925623781106520967857920532875227763329905528250450958059932853415792821142065321219237574326712354497490326591749491807348877221706685138880554295726768395028428692236597341701637544661649197842112762241343377422778961083501779767595150253787407633494579980594473536826494758403709845030131055235964076106657472329839513442359769005712669393632469282008156242348194483284053917903814090913736618385661889203045624725382163485113297984265058378878187277373957151897738698181869096812704700854003689511011992020525157397412519069970843066113870281368661041230465507967311785528798473662156844731953308295632059836834043402611402778681986253575060842865306416386362031850253385891474719077468536714473659930203152880585993714549736201455840286065319067694438740113114974410123984967655410935902684303264198769013384545015769905429938100419529236776841420443975746483086630654749359304685374033263232435809765411930570278343889153839994918601035070475513357645518031210146307829301388356285441911717619271414557426514741109230085884436380661282288207795125697020805823188282814003287553439089753254422556867637919280758909032843565140107701798017689499408784338382143228797718317689174581940269875977358345000722181360650857935522651093594115130144367052396884272888660078188257657696051010950050133271794807206494841633565152996251427001410637978959665381827918960455620762053532218031672923754457047358649258785204920439798785627170930010457061634787167005340150831538965123247255740867151561409724677082418209315497102814451950327639315340480434144710422272403134821775053321921856229319535352441760460768864072116725392802106755047303289335518346943153038335048373355544513126605038908158334329109205708770956012974079300223352896775733273787499187773460849526311727856176782996498042574963493141663938742535726746603676520232090561271921434886624558464355711253226626347691863186509252905937284239678302415805530270984415546873912649277156978914264058990142851013489631103431167742949881971238122787009364213661490674359170823416952985923608152045824203571390271600504046191869323512585529790300798336129820713785860453734447789126584541873152733381793250306839800320301929815134669327371526449087225779569850651707537796606287260325961349967204879793941746766813926445690458272330355640419618766391416326318460696822676665355857309573361230565440231207808050075125251060365723103243642037138257208439992627418873074352831707942621114229710451918033169300330864327647229904383087681630609923214040271599471319407300655005824744345180797746987873424868319664873824706887892195022523523751885953786665274404991353147866160251874399249919272297941792918741713617836078498840264341792362592321030200963160740539657211047075665452389202447577346251166747970655111840227385077777427638153176143959672235121694421614249983414664039907516769407477542000839304620303669530228669927511057768938938200906204614334314101705315203864165395189620905232941172918237067365293885709333200399439631501565527387265280212807260593070128975652784629447632636613471055810000933743401119270886748380693971375782596554400248824682220701251535425642376965415703140961294084474043971969790042929433850232066262048363840654445930515001837455380371909553971832289729941918146577184449637263422347529446618437247389709466165767805870367016513251829981044938363666454617088769013735318832672357444408751000109474287701212908192445926531550198628325861812341019858258317695638013875349701322210971126682970796227880553712077913821273144589871346476377449048492249223866819834378776584279062481170698070395710485411899430877655825798552991146854679409355793063390634372631682702209794414185989164071759375752835336018420498671160087742660394484378621905246546989862797665129407647723733367084131733760181773289608176212252062293183426279816888426898422739463561005037501499637535764675396006058526582885945815017237219229392865007920433692389459260004490128510040268932178345565468358680374873893987196148177583970415321742482304897774078520741242607187337003103756689941437560468551402032648778928569732609940357698127468128818352450947101142567580988125795183472977650517962332555636227541677731741451528392174890064456897484428686837518410717752061492851140005630366515276883279089111779135970028879860955802048386774794093324216551096357683028326583240770561486520283532844843948766315379720414345690617833979134481390741647516673461355859013553281393099311948332312393892991273005708854169418874391789774301270776021051053273487013336141909731878481278318558688640023329303704964398062943368304281568477864041151896082576999274237809087946435272321323182153064998877351723029540874286668945911787380634882673399624704453345421196870881082059582681735345998233529361133463430450542671727467313299754253954979481883750384049393460995655975939631227010968685064684841397453437339527101710937771072627639411091629684425970052593052222133842396094290952899336229323416386040425054356540367128204165189915363603895982650482140837693617689505389461838206276698965116208910976851348006521251602514306493162457084035286087252508345276432183023719470187352729966723768609698776754807017342184844875877573385366755846537136744758537516565343084984955269607265039309541906251544785762566021543996105602343767670961381963036274229882246011603983913754022086234636003675234871645035417120160605352823540245779761286954958176792254570514662506954180802956267346810082596829192345337554109290178928186337615462073438262530630385896607918968416672005784114217102281481796302213719960323554330848905568162568152384649255443676406602609801686637962827861702882487740998690917079744757915420768370142975652596962419088197267554071553358410307702574963511096931724346164801325332997072467424033139021803992700916133821521838355318950041651110521779419082672778227221956018071945074473346948650634901513181348875657143690694659949059151102540383730362508766392551109935188908498186895362302030702368910195527101335598923901395162169359840040537909229729456919015219951221567026946576189942161353345295906693399266827909414984274573977437417756382655149974244027406579408678897871511950411841007750230637388157683832332462264528862459928167972141047709183491019051063347766485451161898458239855659167826012289367087482584662124905210096467173079049349360452493614266726517978060748070994191377072684386094052693237362887900463588520771911398693204296859715540052884398151286625104652375832261692005769361689703948468113566905361297343095421689850890102814937837544754767295551565026024259065110820253731665712883430045891014065772275893004505618931333884059639981902056430575230296201273569264615986198916283938194591463148325977460518864406075235040414304655968177532179291621529315648485833894554070519611999051035102612498642533316730446772166842110918305856157355451140025888686857797193713198142099032433484580349499297752629759131289362223627179197103343475868754674331952926356231929363716906732668939835271723233617417563816058224934883812403562473969147576400102046615228004349911327112701995419604861606606063896441093594483856241082867452464330653073153936525786476931202073716032668914496497119729797555385957828992798474897556964891428537045575160714649280265034190172660219325708223486164260819317326903005448667019145142538953071449118963621970388818604425585364888070181039467513204105141538118795962179492055628849282871550380693197560115957230132701440817602199781331304051526562644688060303739192965582367533773568537263258508422908075678247300802951762429130755820352410083568001334136016875472406234300799771977815101563696318184943533200969054088156023623422705222769674850458952793780136037931484807885815283718401309499892497293008941100637849908188336944429482199970367703738347381530372098320814375799848609048971352257987907704172366873898038848756941926265163934592639001076633787677698906715155700799031184620204406646489766726777751601003623290626407393863205523088462154763721273629445535117480160289867408191795976465278870330327090681847485206921915709761808686421465585926054891411123077835776850064892699943928119903454134659706914311486724698699170157083959350322875953181909834622042423238589823314201643808537850619362475920761480292060239607908464878175334321620548676249235180363943467044195968804526027721419788403001397842199365754754445953720365615569044291941325675338744342196290231918673285943303699354238614832025131916627246534750720225738543020929654663803257797258604927739267867840912898873329264074793620769165498582328456725268919294661368419947467019997861943062167204570417940240594491895555234864057088105873538164982105181373818840900096893134555482029324382762402914392442580144538187315464649157384137048864709294713510338693440579552843629127171009849446456996853960296433225806644786603759539400549181207390608633311418945460245130131439062004755567405821696384208631003536728134284944819970398451721223730825294078757692459099548364863879806705384395031159375145431383481525539254470036807972862157289427795845264105519825531021402527191048669921999834543378942629732157082107941750369508836595692238078097367171300184127051118478056834836926852892012267149533581342880242798389461863668758388232034750404803380243046532208002325232268597023359668681331391419939419127992528162267977991201873743930472245586868605768610445886709371724293046876994599314625079378048363387172744902628361948281455415146021357643531190229258527240973831800527272550227257109502585045986479773930193728512821560849322456150463233408754035382590398078358321721228831414194508637032334029059705465366361954551297343319746969463690583106260443696850845922510565653480193712667997798944517610821824370533982251792810650574911587625479032146487908099381746853643676895786880235726019592617543634071207691492701416854904752355418955302688469532671424020565202460829358290703396955790781566201627717757651848398403941933970457669689331973490525016764875077834957567995424737365144948727719556456942711297359119894010851807180229982637598518915904083891531056733940464863975959058581288199173071915485313544157629370738039895455523807584048544850602631447014095408194234202679784228483774031148033943561861765500313427677315008145151138168728518892601763755522713395618680712970600285205175783548051459769003715163888095011293936207927498737695341898219682874255167943039781822183704287290703625551565192047159761922648856602494858371209017458713429141399803023194327468243016172514197467918174641250185221674322316260593840833755030572186223324749847171290063989514082140072266442932234154954734479516399024168935308123365761939923937384956297711853326029212275804372720034382509961764363280229535220877500764344314571970448321064413319267625931307090936329206375945880703534011977665576483570843764198955811989455569922440706427443708708153932790454247688860622033082106213517353274170987493953861171459691744118022081835028387023016059090788483336500776255038919197550582667170319630176695300398667738629410389693647489431811907809721711840183643556692181132835737997022068609208191939401114682591001094317849733254068252183170786774234528154051610659630188539762481765331682121180233997429555805974292899748941026292084621800538037322203901983211342116647199214062077657208103005905113335065642457206673790100407114786142964888807615180483539504148509650239073390955315284780081002632611986553113488055963393581706176036491214609389981951332155951727159566693171069844562719629762887111186344880209715267690767987352723373091742657355105321431810035134657673783775771171004915412002725836805697250214407033133021083015030989975026471919132542661472964428074265527919803058113161026652884635213482364682105423058244263524280343957235215909958571218156165158603420801187460340199796253192454313655332145619035586209729771480642018386312606655234245029743530227834555391936126088766842026910364425186868555303826717832002703608258290113188547151020139121126059369352789627940544423725506844562468522544500099105154983591546309281844301130791067236098243826172934524612510441538027448139422142667542701886578897670723096807955250555747330740223313285618492860456102112764563782533211304248758472959044331665409714183853798157028929519207538360346168232182081305663143160639195815842494908954398550230221998818929184489359519523104679839556506684348508416455565978493364512970424474656984655042458951834693073815244526955602189369040964727216741670659778765165145803128392555396674687070445256013234599676649285963706054317158104459615438580811559324891609478202291409981736905560066832004485590430361660985357621210561999834258709041193741448193633164761334184939471911569493147496272634116235086691283946149212881437704810250772932087542701528682441315423617536373411903391798435310895459155201268951316585174629784110729492460982896172340936960387743158864266406287764644009727246860572977684709337002982170222310053010141791138591445240843332993300918413422579807140973596654487655175811206581611391456848018608714170507668053415459284338492715860591034333249433887174154946178855041080223576686722826718890050691656690572095858805722285436217143150621872138911119689171841474540647249837674632048694305979851033367981763049862239803689817507779857296764640192128990734423930013437684255670971184175133764256720352039410534581009696898952384790762102262051311123462950730634899484526224195308071726367781191566523377193922117220841779364325399765277928994670697972770311495113893329447703877669628144390210682791811732412451097868923848800638410186935987914037049915753191505575577075496498244000278928064127461851036768289695035965063314436903267739501999603853186102411652483883657356045436064680318583401090814731394827826828461697283222180383095221717103975242129338699820399716248855203745501494914327820067838581874309063421526289538415070238347021115280030110454109115974313609492139861513911531654894710030465349233859057245364970105585268213503163653603373634114852288800487553541318287169238438719984595673433028694423425743332171225695336174376519786320587949989612227662743292694828364783953022737868263255149858633381512706777621828932144624311250477683960787746816630969062237136859062882818861619316129986794258314180714978444500694964406132422222877664100896072043774142103389403354037830370019765695182158291627758413126871350382372408510669173882454743167762869982909562814280176621727288530370712990991578880894189332196690620082476236455424012385729908025439766036984346987779975579746782810666403337713241379349956024551023121380514008055973494534544663750248396649835253260285481345487265993208747821399610042828352692509974458163697930462845769855888014928918624120643875593949210362868071698123459117701938351025007691886017525998282823470667896617147791900544034668357297492347366319741816265611019052726551827769215557378956320614922801598309416423140737357592510529612414951810525085931190414114113634415075933391285446299126210368600091880550740973264535328850331861741546596629150266941318038716017638954627192084065253859483001562481779269218595713082354251050261111246539608786613615178790933366603483173918205877297467297868943464880893526764560861314109500469295948296869462821068701124006323264003138182041187779175306895701095777892960031046483904145458460103036602862420727808415236465745007816715262637428578503798301219289820410303756552640599267002303091020501782009316490715985016105481223975981218459456146574479073682755467579416359535964249878722003985192659870044160733529319505475790130419924705397387130308025520401336146987732743977625975741834116583581310764242229311725455032634177839022029079799339440314377913482392959177481210349577228492783273695545651522417525664623445423891614571925508338927885457101223025236456953296985081825589717801156834812924470630179972532534868721458693391636249675296574650786242320516628730466900573450425122649143982209029815543474733816965377657879879471528702887237466535043751235036780181129844987124732334376443636029815325661343174774198343160964720542037167638581718312701853365281233487456954117380632367301688964302643487016947306755563110060840476064843551153082283648951929339954678266452107088846576831261472772204601191769372218913290738784933616165514428276478611533084685032142715030065455570631682420571886823557438544340280562149973378511872537607076170665824280473513421457984792802053985907941855432089774175464161393197926512727685597740595994133953903490096157945343931426651092996783878019238795038388465258720238551760268300541328638889301398866780232009057415849789400338175827169939627091091919743819813256197241753806811820390158690071506677676333387878879755403479549814102085788875432740412754817498852124686973562915664432081433123378574524030589780605891773475852566836306173090432256521453045423499012868838087809807660354995284092650418088696240800155721196162803482331917721234181945791816282339931722557054444064782829020390589390468119197929303085690529309004088380539264138103371411678946610819610751012107066429119096457470161224402266747099911409751000214204295260128581676375153160554560009442341019181490300355596130339749851092448261029416742175784858589683756223411420705095121883273046723879558880263682815410202510588754799196579671757216717423509797499743341554522446891283521945747393642902207916457888972806135738118308909123030989596728126842033083501923416437586683099156877804587044684024005090683405991448179382187595038183219719112393503386307317538329836517855946882010562527172340945926849659363791526232776792936398776962250281242678802540719691823699985634906824618194149642221363505152579349604561135378066639014051296123589825775028297522470611296941925470426644810988253709091594881913056808222546979160520442688441905688070850481948666495643091836142577317217307338699037910318608716293962870299412071939606874194756428647160778451522664473730127480098990860436805901744237229365734838508141029573033470706942380832982081948506802184828005907468208749779471781855949195729205593778679336597195552109349817703345392059194522217589363780781219479688591539141467773358451341386309195761273549789788165855731736105038336590896745233589350090371164374494473552860158961068591110750130965306967967007576182549998472643949189759693183722878980703399515691438767032475219761630843678875655679521659073708206518457901574027782412104017146752615065945707068066338329724843151298399822906240771854870680518277247345095047769183623281865905764489727857191505240739135106814876042016859697233595074271037564942791187353900493876621304889715783779898163205089303075226859176656225681706831457621279910866037903127887309070694773576914187814842856537704501961785656783101526901515603926816264780460347989994756031330389497116727078777599726755667857719462487770938028285306517047104886467475420927511420230832080774060056583467442974727677722753499612504084071437893100050508772107737116898070845103696127160040052308827377866999861098602706577360997621244721334037443933554090976641888797712571884760316319250818135599384187643631931346668032800435236984058315818998796547726049497631496184943641733893120269912799951201792045624672036687207018710001822736254601336554984573070895174157851141226639726310170258109457384570553053683860608401902614815345276642612671840332033774287106499379777071757264251326884528603822084740543215043354141185624440695038401133123542492757510932812979439432624494651420262673989136124426897826735195176681217489991944974142488869209801938810952009646720796550856436264643484522161290049094066654281374311990362879989262997042597609790702862412707500347762895140589477983252172088494010030675802956420694120799282979456565383141501073535213453425001900077418656168246604932803630926701418105695434935368896942037623233550511794461564738991417942712588109428636443951182853366974510762720442247329929584970716672511420780803008587062970612061583062604353155531347837844284084823386384760584141286598809974094239711582204533247107103077020118103438212212109900226752501078266766264946031912412443970014012712477239113332711207451390731661415752929363969927925276673085697393707422469322634732859593714955120087398830067224152715128535152439866364603286929397365989727893517885124781784189350728654573678115325427378288428647946199739786345886321732210273912285963307930614082959073640257743446636506557999447633515751017161116115885164361432857739445465476833717026648068663021803635465633733646095821470366802839308337694067829399114709907862259007209498957488803701423471485975863414157703905387183469140115517930427692575989893095678139974694999143418009012781044599668585278222018170825865140974582765027633289227006541934870436729830719358594506978577892697392365829162045465219915635007438704370757601832941701506102404619712514087047487910591657324338360138070858752059827364890644008767884060151088619428685194570881670057964712555142335290795217289956015460311538666527578595175642057411464639148446810993278038386975695434492554755222685126402658353552112028479559690660454476506317395872738271308260631970715176162671360925813422393922559770558807535639648781893212730144851821955456694497042633922836995286927833434107983946380356513968686174954702541763906255802967589444576930925223012630790047980354969494357250356027503832575894780880158284611516911552418964660661608073029674384687481401700378634049499904152104956348471655798095426104104909157403510461142909198215284402021238688804650454262007623476309672416635869292840607823210258793595307047989195981238036481253922529071755137086932493201604979142939770812567754256803068434670803862747203944831901205807020588856199862480525646767377208838766815981282988925588029773134963784512514136804788390532745262511378748132293862437100795680405382268040031817075433859195383651767564724719142710231501728822117512966259128964360335557315591759664679108982406091836331819726066917948653789356465721143709685019312039509504513731361368398709745503948337480058178071248397276801845937058356700713485902671964461904440738777617560310885718594874718002929365510909674880934395997506502874401774431731353337211124091093389330858655319181523133589699606569613738567061483288123932791226858269306299417882312783059509116424993232533358601436317412180049727859111878705404603727468004666498520858605993635110368804910714590840588873430803171118036512234857001185937723647136448958849910691703964736343861029129972675345451066611116087186595756885592593085031842702969472670208123140102274488056597460734754055871553171830100633278619986741745340068445354655261260472658412208720165621430134508330246565229449219148026209148218507661804991264958735663903503337423552888691892020944939726235608056213471480163511404922392410260245547640697413146069178166283961961321948647886332580930844648226023668508692849923582172751545891688014378762886452979093238655555420657155277643624621468858241392626670957896483855173017928203786108376726487905948868429738387517138706365871903715611767556127570741840244174324224048663209904111196589335400382614336178421243338414973893185331376546514101727083745547370070441756492162671237946615979799028473152573227826013477659394715642139713377964215673295033214571180927782144384431134356744435089138408218091613404015127759089725537835489312067607584055323195492214950807503550505019123470555681547292384499790579611856070012976174397634396047046716872256196725342479898768220647855654132554947162605568304512242176443853341726521913096553854344492727362813643062150070056414727236622918902844190366637478945441655057171476817489229119504511845796341096313282043276003063551994448978440546730209748065016479636884023430039633163305141925316127661974266650690861525822572701495664805645305085228703771658674327591972619217194800561564418592309929126744782389856402127554840749499882430881953462127537843072731019156757102512271527831149546879944991925861962253417717565894170822803520846334447871774732604303504960642864756486470564880378546709470044454700041977489102661755209346211019330976074979488147491405576330866943361363888979617608750306788259866252909746958986526832199281538852774900126571067023342288543778764961142820918972866691861982444878281550133346225502781688084969729252236349063529217153874120896339321726070672189882890678566474987507046084868324572746014717104726003407273184858320822891775444448168292859700584949713025244944695465788530429662051113548414352833194541302853090168407289106022864903371129960631404684754527091368627216459377394452293244726678139425035259914500599671343687363535036614762436907015430935279620777459767690538720935703260255030958550886076259088070709676796615767864510638358160832535276202522060613847227960312872126888612461786200413821030408185238051076510953818031548098309310683975396647781007204592218527912836842615371671775591091297629345642998793643084590822834455629807811402423542001521561448341244181607729102507196027356018158246733125897328841653493171162362815418884267274323690659022348106909692417701269741779698824605263564529445413657036970769267428134744135643581422892604685349804915362448896704863777817498564263948864131056588712419941099965086721739158044126899613338252781737555360364943990877464951460850844277119606558786726366268914630078140715287191025584485817323350440029091683960981146891694431253008946428301291556124878576263624302500110771447549972425645152130567630322251723046856351597951360193547101715705264545395665318427895841374529908168849686626358814519915245939394497799080374727541495884178969311658791488455418434347135656757491092066690947047507323522916208477744891226781055766828859793256150679458322552357038732534620698481662199056810895111429437058754936527185009419308219418287728749492893979197759632717914800215626500824145804977343723383673948730396356893113660870152237384910407117261900628941812043546473302237170730751588658828756120152938069631350139694921450366290312677626200629286885446122252595235496570842432411348905634036428389154508263869247939608479976986799944677234655543726118423568763877130427313024001922017404937016129517983394421373213245191242602771468896653264230804319441653461806826237546063343518000946227753540229231583077374237473737719523258672803452111087408158551262214971834637498118360333177729150736767125592163483880374573346696876894732597254002314103263926739331553639945210017704556725516372294092072914179433594602138930380125604671683840738293897049715326716776003209577287658592897775109710553391141639875084606020378141262585953362071185370147226529458367099556025493877815780402658778349143542841527375543348212557073450914297265826116619006610098706562778635212540031336164539118072635566769517655478762571304951838748488169369998611468543300330546152002811122355138834014444624758377452379456032522328812473058090419915257865125572011220664572477883541772390118456909986306323249818478062338176871763208857258063307565580445172216294996988226757034086714993033450154876601216370512219895581716934122146460584528996826252572012824863455254657135924018250076994494107067080060488672474521078120600001407996397684262273782441282994784856538652134817268803431577665078497263881178873648013574318690146802666474113599073919804926761908590364041530161950906303284664531381958763472145583309740559563379238670864769565837596388192417996017051218902571737216504924965259401002083429867592416601109080829065475469500777139232762199641186000884042309405347129234754955810182589753240396468921988459169775184442923481102179672677511207229907813782253053403445385345447091988399739987113490398818485108101504182160215039631785968235681631959595766997336955557479706072572497239843769113143542532734982635706494611277129345405902788759015810012642866822951704340369101195155393121119658584440476965143331848941296940773980746922778010273217671446359453860539584902589517739489592449991877481681480554817710587312524319221010761201855983192539610621799868012589752012946478507752619558770350432172490627958789893103491933499289165067087062198250044452140414130323365415054008721251874297986385253191203831287890566186544045019379538867810974905168320522355399314525688879000411428878114408770780487220807211845514601361371421505364516412912874774899124495104560411694937645156686944169824105807461604489340752566389106315410140041176189553920050910614926651311315981227621378803388609436759534230734896241936318070631251128908631124727882754170705925853950604110511363218538044954388065633393666146314062313251743312140133255938513922387180526523044701211090697604670202851494432942811218363341399433409390213788430284547264930148370861043669240747930002117550574370736162992507980481143152309457630777696432269616141943733281989263554961673607986427538547652469106757291189082260369031069163084972268569353407853258449613096150596492210494899138202936969507859870742317175345655807616801715593507764188585091241402054232256576468644236196256223204581413025461622258192595794918466769229357773600466701420002351919865409124472960948554416193417639530061695453063692795271782566121621954666855435638854219496134666013096508573888045964277076448472430130795935166989589158644036305045540495221123960844200901032805359851674178076328899794269091828593782340343911580052723903099265791798042474873221566270661735690895955674175396501950176741017324013328872857255000842779642275547969173820934138528392381532618027992067665781634093573035349817015440938906876816079562936356582159691646453679790507154863350189609981867699510070886558831932977342688933870243518638847904089272732644279372567738512488381805351773807116562138207052769420818950159019804454300809833527651636514074191979671173938798393436279871084155337618204700450964928558602113400489457526118092486898364056973100188382397924359267513836124944555339716345929403913426488968368684419255979241991644666412353855403673932590846644241032421666020320759702995720630396452263201910362556923826671689245426033824857795523590483823544337360393895644703060786108407588886910603959228321211667355433229660430367723315346375232495430190853516839937768873550462100690505266386082142636108417213249271883729781025682129708623098934718979481555205386679350215286419500807773327106105996108741133745365591999830295458006547668102978932127487402502470479660649330598865728941914956818862863623786062396913910729953008850215560113901712184618986605477743429444876154095957888784102870468639602126482685696341198365929760237684349449684680979470591097027607253230192458624958504866529048492655097761926890809443490529509899881981499928949779044855601901367763719822059574623129329379176448570454347105078838402348260521884990699974876063377869283471463418338607850157553596436905604396978878857562531686315315740636970795516812417490784257816176872996624465267928055495397737539666296504824292297226582296656909334575293190027372436710331025490110083609906148585574601016638645536957589401467973543393638678205088671552014447511202628070438292866139779796175586599265710972057321147950250929580673421391633157669200045087008446146897042864095367803563831724108390596461233245937317287997607094130354055945582717801028693792676790788371245983781181063705707893525232624048537176237603434207284387159239215687156610869749724817883673490727273410861184768218202846305346895615502742066703567660600358531548387999513213515589491008527399283257761611062719820028557593748459369535817344448394192618305588375671264837623671563888987306964967044663054882536539686165007573410350812386691085765364810092886444244288145871779686242022743699327621127440624734150967621367990833511648639226617202299734505959729742803451014288606607069363107023842043723033420898830474638284655169316962919653524279524642205529717998032722053724386735316841902444469893496619975414309357085359802908678227957952636788230387538724363301256046501665035757279929467315826094841487135595146422661185547383163108803687391773730458618624620984337734100292641585287230897910306042450547610717479502604594657833349224028825918364874143503304433630031195508254899254371764375452673409326360215833921992522442932272701209898103067375127152734863423906204985842053719100547400908838293093777248786585536937334185136961883194519103459428681153245360218126995319270919005597000334814170230160108590761611742168774538521026663316940568064073749523188454755727947563311617306231616419896968345584411914564901912785575057655069633888930835732306695656020355431044755469987738709150002465803872948741304182653219231860859769547627596540770863582427160788699277772838022069362921632746416601546233031772237156924305039163842674092870487939786542086165817768380679538327817469842052638115190726657684844045425603408006860917741862018723006936353003325188095251782524143925380342361713530434702572554809105618300685451769248965067749875640468993446575167516691427529181717886359122741436337641383031205931274359241480581835676108754291492935409781019191853171870101311398474880150794555083890117006712094267971703568991577713528187431527293605517077487573488712039544454087961371383101130070204845772366154853254891739675494156188990656388864816079312894825918931713397897888268153200527233690392986530961345233440922869563104105677336449979563535446293621817796679703598526681511426506152312542935021766774998602088314309294713465784245894038125519253840360119943059707273285067524962336174282289726367700956675305425658770480607163882392452025296101556884850039794957089815197542874804568489519766275857349752863467980252895751854070282565014813863208565634085848986949211459380027306861865586412406796558095716089748719285331083926308888236167757507287080978337457525444531411865346961234131996517589795833472582364765268887844533721312636550642886201988721273273289118580775840609879319546122172311669416900035373040646172670499289146781200267008385689916959093195419574510321027342275882325219574366149384008103491464154206140324575438546761705851316533508876677540007675439567531872332568898598151123037813374092422606664749866751741447280086622186811729273946972209854778264280557981696160940212280890319431816274997554708160773158519079344371794048925471800930098183642741262730321401003514273725731518146714086072528467912088401184353388000022821390342068187829760174027660437456973694653397875003468465025928605864935055865355610807445838380209681096558254630598582084266196675941847574464072373561871419881013362449458773092660850062589678555643818412872715032913785686704201411586390371062621830956995552450436300225057490098255658083994690926167052722218084925341966119732478238813191971020093679233981373502459067448989959486058387148586268734379138256738824099086829839584572317492777353991177129871907978529032998589574108960309102105586855767644716149312278433035689048519854446545307307874889744280085321335201885698630696681479720119362832556671754266413049004688148111658696671858951624564153244561757435367669859403175433421889748602509234434575051003296201230494027725310259523260399324942079608612371256416675101845700212474880943041774882681347173410061924908833462358854746045489749443179941613599574999621278435598156019649524635952170040126036227811256997388810051950922522203208728092155712483634880969616142170153108237487932178077397975242498016105593244721934315579217961326618924289879171100412907893399807528746849806900438211685230778010532315241287763272522182711736267650793234787892929544009278741657108433282816746498815598130638887826065740006622868067280465976107402102597748635932171108716662911762499251387177731623611771229085539656171153507794133303303407728242190561245066690842832641121447880840500553932144727242124363950873177566085237235168129003597189632327454905140038462240191474575046983984964962324540429212220198921589308351718770639977841042709702880773519396356004820662524157980342069239999750054188672132149276338908768695959962652264691161168898512030031016304631812602859827092351410123491603193914065378817616822109303736959567360557009030667193716699957285252113156502478941700554016696972766413097565702193005801889637006887106819766195181868810014401239896095762690724112355618461478276038426525202134739206065651831674828926208291369033688384168501935253049466523219458276012316483327413774124472266345378490694337233416665815135793884285374509640418975474941367896438959094157474163907392278698347519804116441916063965723749528432867254938327733361807426466426044708963644191051105165503225505106070942086583576819257920429360205136758428940747815243727384342543155686114868774576268457141629500647082589247597836853795637047088356098010648168044407389333865702456128683022074128143042626890805758138642571262143653832939012860204622552739470134406402688925314012704703089285017646961530537578241212792853960424074137738511826228643847087926392769767128795880747295037636598329475840582949861237997273665225082664159378506962172466171307953774088005817423161899262911438850955772058241644307158506541998381097662617762955810035954370452780064406205462267932920779100838715604869571622288145494422424322963942419258649264155653680876481289026539698952753764102776356552698427024651671758929353489004833384995148556823611893416615409485334178212547583527903461961901334768763541474331903465953719801680057337616196420056105661778739350114904355143006456424815192682912477617292247231071536448935897039067567703133732342814875768473074398882727251705944270977527716358763954157005962490617431385028229407212077938085362466456647501526375170228190299003868202246418816447696657211217486893770046357781814416919428951639492620335996492069872404763108770189975366564522166012608731647019202148206091093856561096736340489270288299762418751138589942162938162696886327457873549095877746957318469230801626290772394758582157008384904822244681901968425045309369597557885342414175714019576196908890624869840698798977095724674159779024013340943648961507650075262483890179997175499090335534402068662664916938628244010741890468230186621287499282130312747713943471258947511467547326855801135315046284497297077552632367273040771011859438023422315229453632896869360225623721766321597414275759989310105957394157836379844482636946654490712519082576514733560384951116705566483556932345317607123488503195511483226689219142231652129462599206925635588781106891920844647955793014394186375333076358577795944948217498710259756532044132520822601405771350573500565569528579100006028867389342859174390566009633736154231081023671055413162896476777489352265664334251286790641507552464895252357131873707895538361566818951753847939953543817752800918027540353618844734965246655576583261657344730317975770383905904195514501591437200542368295751597857154903678364036035943119924775235936509638222206325696444803009255216605862804901814766586668715084730606670879604285493124592414765687287262246464956362743853197237191307268176922384615286056415296117320540323065018629964250781378998282533606259862054496640712715945308413543275280903927483421362994485651742525490279435528746887279858374393111623014316645839640041423417424545135969293894699792771726785481517514253062795414235091255221450330922415553678560813555901216426746599583753180101058783272008415703958509955094261416542849093167671819445444966571257709364514637975340823254961733053165748548850805323615873881234733283956668036823365924037747153862354049661232438456334209291703236170045949816322562472704051366196449546080525735620827759697729351395375604748711854461994322989731276239833802318345274348664265307420412895033594377071683286604279567922610049587499601596759742557322166886256754606300829092917825823620131918482377072156901347023387198450232010349898598293459786707921320278699239018886330669490029472786092926812068981439054082815492158675985580548441663261105165871664989537080571034765598787710334776260801801831538041190373390504445726055745524354833165435682486666636112871987793047764055746240937238137488153147786574078019807860931207981289897685613778335968724484801750643181327383661802971591764239488461661334520276223484896560531012793084386825579317974318014684079788284980136860636995094362358312017835766093191779476415683128565134090867867798000317799694673983720997325633768371577038904713618119049557423558973312243330336374430093504738201672056303903261097173539288215059222704160150630966837388884150185075233640451160674150960347891074319462106736167720978822877320170853753566261460817672393149178944970061281311158439700352326898385890615365581360218097160129664578270053956693586282377430913476602279351869330929449809533714775126939262974569198899554089334433499116844125760588857978194549280398703547466564068708940393264879853479625426518384239588873334353934253712713253769067036200286025831925163412596697361106464767394075745823225950218166306740877933874832876758876383162989462862194071140012117216162488184849933539227971386126284491331753770120957644997654391771761550463051981431247728865859513357789853930744970804925062638091930674497055067792839358411006213784296807866836360720757360736306204624221193448558999524744625163608272185976881474893165542440239560946689290095132463890914975214621708584068776516866664138258155429928538507625096057069917597802253502563628741846614685826288861158271294009426215422761498168291428133380534442366191838954315856373842585644532721156049182082228664271145621696305353721568595925962659857267124172065021198288496938997937954967964544676082447166767344825107629436767395505038839908572856090350175678070114646464062648230099670906274938918291015188738438140053112632253078884170397875043520579598495714273803018119772411629864849763464743406966971889078793640525684926758412507074431693029681879173795326286522838798589336134128539635616937233238126674295152419741696749960918788549500325931923153770352230014674109659642142647189050360399634173627287243528989888951748851931135085902304503602089186540025752577228742886850075946181207042675536420925215886039486951076970108900209358232834750932986342805139324127199602504065446621762949006965642571882399748484157440195514101146992251932112174985412002211788208533210289112268519404531582322837896009277256296363926959682484916686460180125371707985843782970614239535315548511485132316662295389186601707333008871081206005423555180327687245071982709206674877465474406929686040901445503371610846141797658321595121270335819405129014583337684950461765841634813323257375571842843746552770803336580466888798964026941119100244319281095114018248638734545748370574708671265309373711677286918459016770240118596493391490542522332359638692784010248631731607409181778334176995038867864110532168049587470489324349613380006945433549406002759244329062913998128495641866637601594619040609285006126612120820637264351257280922093229747624218798188931079160570467658396605866862703447452383174651106308701140457766712890180063442403932492646963041472394832075346845595180604251298589535982860851090427087451018600630047754876010484580363417921009597798959136832629348872595782206244686123713080871540405285835342018402476500945344733285296951383000559570018432537295702839098506567128082204490875726384856074802128426195291758374906862226210790223783752909540501759164067803581439555307862834534049480971057233105466667115505549916931323347120091482027723815953698463894350604663472362915388696561606887523024867854950055745977249585616983110905167820640816001401568601655032405734098092843346255699335272660304273741818947898300020040609969985697461889438087748896578847729850385119961716483933167629557872495936458843117765863926322020545291305553120085654085744930523809348245595279670198056625699296959181929843153240109748408633711552908457468141185143444502321954078869890561734671217184054302677844265939121505922689676950829370939320511543598015069806357899526669868840945277529221289149061993634251991884512309780971462500976331798667206833535588157252978076159276506077048294849808972545040259424437183141224293618772629635903651911213255453232278922232185578514121089739905984403204273964975480113078091756395106773036907779286149935736622672089515143017821810394799944491767241040289808826628817736540804818179405382506195621638804562559948634400143435760693224062117809016023835762532142768411084078096348730449593506431241329694706657377929934417651162736469498224214383857086457191089592381431256279184026985872697795982087738807728119501318198139113227326179405496158380465449613917951166021898006595758050699102236781426702935453433588161060492335675708176273416150621318458417309808442377316282078114392194286504000002657948497456726241255593430664156362958921821337582033095564938943392711277183879166872053142556132705489158662378944953304611982710376536041123008342894916650599025593913962123508060107818127299775666121281145915204165485091533067499491961024993163580810302838588999957236791881406726923690595640857274430094120362974444813176756920769267007108590710002720354410026428768561264604804847904811506363253865490218187726529675904284151614940357962749402290279445027639582121943126888796092705358135574337921348563670692328121973750860189478191637380670488036596224752482988157119591111945195554806278377504333653376453733775672967923797307834345653091178187482530320170618393553639417232396161764313017954451294365265646849506288443198494605551966967489016277340154437370632003307227082814279431559248722035589812214009413000908450369907870367271856005054498067080064718791074064355741024902207753008855008093102924430817345349388795024270702891826221992698367575338674977433956543144554162026357628224591501784486548049905331718248419822959467289821040944606559327224169328209406128862365016414480759036193042742718834291000450396403863977230684247960627933874986674665683501008076071232105869251097794263167234225643333695569907930844466253555890275186660765393068177983781994049472164904595636222823222626704540707649836963747997842436401614381962731563639346691012339372932556579159929916533331362518790381978761301187852544743131407952690121652785102749900223134470138549341936151722279022055482437034305594933583921679377843245885706181099433690777940374562312212717791821430329482101193485195951954409519721152875954406963420779532825823258894170748910374747914094130261458634790853691080825597263577360178460439600216728224401753597307703753720803227871713647574107199250388531334146220907447655842011141029924174134070031634101836474669402025766900312164081074907805164900721812586032976308771697536163300008884947536225703225623015876035699215457848659081808738465911667337020250707341304025627200666027657644678762007718856687122367105311095585027290558201299205577182454893782491408429919245947888977331473894173833975452389591299985066812971976171832951698748155596971997022889061147039556271361656398410169236217893058886335552695809178578893651221293711187915030133689455200038837176880548332711345582678575561076570819032277617331364441149914034689918293785688267217719957154186169043622558905339167386310195981942891395373416555288032982203104886801205446846231536745338814483832191515718435563924828716985788070447084037057574610947066473903912097245724831053977547406674303182263847583896821006050302461562079768269654728863063312141212531590684353190719857948004047463583136240245385020904862515713481298556157638847133794401899779531763621648793019653973526880808865643677671044611383244109863040270779255169092202314721459478784084367872896195910522330310948006046744415841811854464396685551570810352454500417224698114954294085066338254285658464371364720080561087366832402931478617946254261650201026089126568146106204269193267557784289223200286233216251853083591040889425320168137716256707870183860569249089144154016646167664330128030950951466146056420005213571217443902918153714032482645150321879271989083961464289001969412621685892109392493292937047223154677968661075763748303733789782665150342765115616698235580667438645080649638646138554368148142664056626538777810334651758143161363798931132281579638464996305383714322671947742527406199388324045091687990001888676409177760849079053063904066979707688528769816461851590692074583386907402016397039604088741422858561990197148409932346745168736971731007820279222113705466393090429736004973324923364772351448567051995609608937300950221019596999244380984381053307448571582700145864787293258340710408825498730143749234745516423424796208456772028606669123700742933093555792603018441659702823419118125880721447541595385228765495996508112692330742856194151528097206590221968767116411639212577780082590789172182815325489705218232185282971458943319678464631444460499540587894102480012052985301262225158136387253698925089062037215615120300067451751957498302956612293670380112282416493075015395532362052640687753001484447804207849487883272444232669485467197565866481580264286844481877729490858652532285059510365339127045435957675834603316536207639372681473612898338447241522529765291660332659065299156681066865074743082971517166608246017662746964901237179864941817617043956235251114891716416794930936259120872125851975202161918854729256186428771793703652359450609206880212298955809642464797587442639185923860917508367035184113562334237339645906234451174061975319976791677044467266165863476355092073780548053167962279178101278068600969912815643158226771636690713536399293386645168572147967482494373599133769208875670758032331544327610035218285407587844495512395284760792900808447922337603040945684754782674782722487159333073469734034540621577952183549848786481865093684863164605358093784466583089867526103451170452623040853478607505994231418752942649697591978387284852766695530702317292130850614567593833213728755890381678663200470276272636423909089334093244966753463414126995763823486235544523556364375480388805057589150843820950653554263985426077923685321578401992852787202751760220433179598849214704606175171615282929887605087305696339606361496657640968187078043403595810315835928812989990801616541582879689294644773319738741677810813088791470177469226813210913749807387518299165505319262643770930775834955838388890682521823393618446948957009712906577469314620264123525022332570732385405693494979772922203927778846224141632665103366211709388390887249552210621812616772264801325996632622040564639423229109752892422915241219793765240240507661820175104452094791931958187824320909364835060742336319118300832017473756658474628278840579042098067684359138302440467413534462111416507116345102103248034536037167068210506940454453590356467292375166189335473984297907591977603925262261530911445436329689776963975074932062309550556903949087150321460393721340952093619536686901707726968728047617201738556761804593621102109804248203556027083691882263659551818724604012638603460911410726691890561046908715118553466427300763405030362332322862313300170284968312933295626029050430696489426096268055486204254238307602159523099541790231692501814032700836267492581603886057777032338533587921628568269546402463345808693343653541873154718305722498463244132228224694409115174265712539187200112563422498848086182298608094137695472204484250163400381306559433318357141348617998209610245126828221356643480312562033642548917228809129466781116458524292519248276824526154315796855164227001723025914319457533483654977989288161324805837558800203244728355649093186931361008569641024839386061078432943657982767807878031407084542429632124229442177139791260682132052777005657096899618699690114992548837041747633101274628295499582344941321801021524398811188809276957298478973853534903370603837950698670819605881114479176177624976611687570766707755865387844963901402304273596963547505470198867650022906794547319865408968281317773888666340665360494209658511506799854770881147706704128540245185772756912348193832780051422406573272578402721147223625841400876488789821240897869299435311652015375638102776544518082959078565909401162230528412935817894000739364344643584620137011118939448492202400159996928092889986327176492846172444244180967257742718878258175972365033395781329573689328011507392480701932888418592293999652738051315411766678091901822202759393654765899201877388298872782283557350473951887130768629771661729598962535128449215148132977913220932766437962373835774686765897502736442293292210056948926648251936378987435166775196968799821813935608696902439446724813158569378470728236853568766296397665372161834644213884189430852260040232975575322576707051920422087654917586022329878580847709366821918209512068335548919919472279830174410406435433476490277245606931427991264724789450162256752714315925798417936820869641121122518389123956271324329745033689531147040329114032317232070906753979050785850864136710416304071132381480514779978936848531828002776784480732253329717387953913598112954014640716307277571623981712029997960682908620350380528614011993504004084482561874149766796772495308802540261440370938885453884048011301031112784330200330312849785906171019044924875789395520994410015508402007035085909712511688161855253294684510278231907882180244173737686204651394499032769117313419196770691885718347129042681573711027057872923997644758541506537656089853235035585211726980236524865242998050327224483464456504108434638101262156729837318777374895194310473668819936288639662282364690411365659372665607440842164652994433152249259092026413844141247309401510222380204333155870921021760521652667920889041043845123615358680014536286424445160096696977969669824168317792507006686461983596594011584330237215618027089982895837462474786907424445617419250232873383678196279535495966845395508863794620176513852273131724127340194878556546327707568585696345925097203342501091421564599954905966845591653920321191736614615633004475306378486888472068657144669854314586256502402724366822466916181656891081706383004795131090048748602917720147489950658015709238090903465314869301658162790068474931361724050546263517182105359550827128480151037936374232535352317727544980448885266227804634307680049497686430677119305101250335640940927197933135897031236295053400852310443841908652425782631922292411015319946361150092756146094152904975065375488865697714791064978942823848363990776423272345832338967088822197966139413248879643901058483441171717166543862595119975242542080853666615251022092808175246745223507026325757671013396411138193447862729920945507628289567728075500961463624083632249880763072262874597585392784356876078826217012283621330939232517018746676756184389238711292752928490993386729097116611901969958736631357116996342176017587615036982955360282979937160726581281707716559849502953415038429702757533209193699410972217397912297427939651458763465130598578368385876089775627867957927916119862934374639195382327334938860958254156398736621871688627147809665091858205592085781257208996151088482323412402389453787243985959886572807929641322399777902706371434277963795874942940545575096620959144614314717086360138678723252418524866568340539047460075792691384228581171860440679780866351336779208735485465384157826756700080000260030281208756646369157894159919300364686585390238447345954629239861166854764269844497990615249791113656736703500026461094156097870268389454059751883380943065575178933606506664457093144127351865320219323188426050064999493464108494831305540608413139894771287172910574390424785181421386485167416672678572329179581053363347319765926888793855145846116063867624919143592051612967097347294764923121556046310388438139219090585677713039226633504502198284301505182363526603463986216472963858731267224095604919963643560847327781916521059065617636098615268472046010413394200960480712630558735222657090254939725290247022702615925754778530450810833127675956423020002922310084886994444748119941669457372841380528083359961918088931791407970031272895058742032154494000793476478052877831598197163315265224494326283444574067538664490947491700789007877198699554641459410435848380324819897158344165340865640782369016997813583877692713985323886335876912361214031053322490619379940483599467905225944785020169278601394799545325094092142747233562124498477760347288371232056704274768487171723177918961986481802978385131729288428278688497974416206934977109464438475673658689673413313454570041478116074966167505181735921508798084265803953905281710428996755330247458739006802390130775253650248560916090043803225827921149674213618039061769831639188094204946456550795499836663290191631655061539635365010430609556371637885117031165872523174955435257809140664946684588747759127150114917620561856927743407472993934709971137080842907215251489627216597484062791400734475450085208283476734822961258461072039708118892676999299771578644565560218496710459879127109310136886622197855288807702078608581975629426964988446732998152582463849638979366688659669535687262758442059525544600683989569398958503829411922348388539755484698694826819009094993196350279257579189312696637162808729813890218102618639632142379836177962426385271089560998587066860044348952719482576417779347459436897481387550292951679507318304037608402833692560419535193271978236611641976491919141364812973678217146034555605402633114861546687376442262246355441762340706843127519677219558601150404281719640840916862984091913992764548268753634762411748840992287491304646871028431831955844957187226566721162391481533714164535981539564059226843642627077804480360578805938373717913534643145441599319337133438620166878716732050539638882550934583577557834449412182091365262133033271648652573450048315837486276001061336517826066016121397592279912206730080767527227839152773859996393700482739876937319731253323875332276772884747693845248770199094527630850945299630762402322871798097774295005708998654096500842762527188112922937075789629228906022821463552464139515427523608465968005436366511201097118488427683800777151439841734576484584308666966269670109976649027430894548952620990062172808998333937788580004266169290677487659668719406507572598330529591733874687915820412207295592943170348654300671963648115014643128562421614905150879014395560190691915926385645745394162262448959968214918197081460390909480374309525133719201538914555272489518782688969215099152297041668959438288936693846359243150234713155665334040532974191171201794645625466803873295642377152076624720899340566204875012612406072319020796885764346500854210263076866597514545913833331398906855316838818864557017085181036198084611743717663329073714654185052364889692971996497410657182924791309999919935864152553681615137133098564338869830542779198647472081753088104093908532634187305570080925262029343867359372996599085559106733433418725264340331566550745482860512465446835528973375769141391646460712197614755702782386010425346897824704841809431980751240229885902163457603330946084721903818918637775022614743213389860170618163237284801476869079589786825673306892903340434266505255890191753102925626407613558772390397286414979772788243827563089532989723737006589048007360622099532382935772004414658680286163512559495407101716592615523987522555490295018285156823572130796831783472648720132798976226271448839918038421247856689983653418812740410551057607170999416651398400000905973306942517030799869285763077376785349354419264881083676284996103413069145100782240560534152062726276925980911992633017953825045192287161136745397212796887210191103961271530674321624352936339411561839321251954426026121342012407456994525380043436700590512293298589335088235960241108635024658620741468699831470118236968505701962708020592134362635834706079239485672516124166897609051076330199298818248350056728268459201827346724769036336008244156357352645544691260382528094568354419182035338624422834550414582124982036721819346753207726291502537591385967564230763045963633596190410124956163279564456319045654542220727638234896545668264371846610747027667495270841486649751850420565965567098568529600758561909613951513198874487359286813541957191268406147437728299521810100598260120001487143786364325226657484301632624270737268019680049007948590926687833616982640987304831322009916376472542386895520521226663115569857625735297749649861255799347747724711071752146158310456967965064432517114135888069098404151629380337815265794938706548962811260997726415020084754643091076727917240731855283935515667346344495787601377935216560470293225212875742183393879469867476452396516952615708688903362072232323022718415470244042582970557303116730372909830841827431295105616782386276396949098995043695597452094970964654152353967145329845348251409254128700039937865231502264421238527209479861618490298313879481498742187518190424353020838264877694672434266613480092626235983444533703735185350259747922206664714508318990044643508554886224042471592381635484344249842705160817825663352784066280763271660869230927228285592349922550825093371753084253431119406218411106926468839943957678379301103529270571318643992648143223320555964521738182215599609045866545535648366895009186279569155653492022727772065098323010467896905504232036240060609484189082270436018960781560176631897078973041892518609766804439857607320081640448456128521610004359908373478157503031758039545170041203438966918666060656634210682966770124525240376125899258197071921561582802294451063013490060408040547573778199328332485427521924653413066909131001913236157228344873882047743735456262449207869188326751531650324000966460297760848100785600829679753657028027824138271384076929230271526159872686279211371337523036198057685436510646697328440583384770102228845133036025454774978956478777236424140782471412496298257707258961317268380616933532582834251810199727312797630326898951507384934221387596616923387107339480839641313152850348039884481802405635506943383591875847519332257838927543844914999382073529336603244591233323211699778151908569247451754997186781639764276559115198002920474420244526311562096608117787467601736903223475814768232177066685792388045272441084191471150314137463199269339101885264261816350998083972884374006574051672943767026709277070206562709294470282050815885640238758594015256199081722524312463107512069097397384515568828741768708878992089077536696391827248912410395034916939703894295378874256071186932515168608292609285336601060144744318328410180877657097954060407649995717035892619340847342591953407822800802176620543006604603883007603288721572023602324731242080199808275908856641250685919838653095366003020623882098642136118699668447074511501055164557994819635672805543647607115184772871866969412205854570353641109761944283158197333223364601446842610916654988582025801701637652273460436532048848906691394985897863632588139556158223772078760024380287530653159857352862596210593470472759140252728212675573531467135139721483371873518923023037070860632741248536541697441086353786184571602081374434594224391785359237319263537512435825132954862544312802388902770301462973337761651591483805489334685764467069446416511783788385587437308083726187459689750932654710077724681181552281619084584614665975898072700604279248686464529523750318747574145615992121042849816951898844202355808705479778586709961881161173908775378753879777799128766058569780088183182904348788547201145696249582077230179024931401609948949194028999833299520937701774958499343407291408885484368889049232366336723922975108238053122786336415226793545152601546773778052457863271948226808855804364327996521987347922629028863565380933585481369126361823747291923441230973860295107511269949973886642250895287881914784169008791656064621669857026909050080534473175505135018779144568751483347787639306107462684848895665018774155676662227209160845593346787424849177546736293448753480899078619694450669576076698027629953251197689396134069502012900507678012209984755830792092612108393334063114332003643284017158783825576098861846935757371717719927512770335733542931768127664940656440524055935514616911544155462103702251677621369517531192158483302656627569144839929433153432781470913093381682307243128033412634717330349532692893214180867738288636023706381174376522875670631576836005495507273211858349385318632620275412345088193884498290620521616976116414318914434733172260842695877079218658932698513596985620584849894720929156149447387323629912989421530691405225448453230550022809268626853648678627946437951414642232053671569997391455727089851390036716345197347735127373605657280606993481158862521542255719405564727616542543588111839939140651544061847197620006830624257658023740449319147075347957407908333425242432576428018480125851144378881452034306974493304754607793217495043714032584330012853247087937425397923327819576579422614077463216973989402900798396240314878266532236053003646348157216275497833705393393196229789994854492033365160078468684137875641968816648579483881370701984194948962171922370522348002403004400171581526279744711362234895952553424037153661927163076654235858779519999499533137542590274472465276284281198335282929117425791930017416388655907010141278133193552608594438347194879895783124894951496443707889751327088809086346121959843817699100905753414559144258016360198605450761913459182258257272788396898232784770683988577630360586105065972488170698230763341929387041760709579517757344052642986775536244351539083162188789513522812182935875362648298423923981999465244986494663393589333892000098923441714093002236627676583247030699557699345707455794924543976548579319539411063666776245346505399735742598370456840839788353660340696026849932318669322732090975423646698683055194340497437548855809648053686460094672587833474670525235923093473053106020227637379422498031744655847428838476421987789818782751022154408583224722840027801005521528504467533127350525058343264319099702863923102385264451426832499229633293121818292459071265692543809780216610681706758220267524371260403037060612870405875234537129121959657437465720549759629335009875143585746196987407920096609999578086154918964320655993641644213677856606053592850495119580991078658269153553659774715883413609116308837505000833714979096403234284380025721885472298854032731706013134658907078212496113133968817948495015408078529957304464492061376668183460941681864611026852220752094844039617335643993271731738637712577781746289384854537465255200108261288213830121215469831842119393511984447029816793914969918756869159390917398581353504849999792937375186607193224763609414361627893630346296938575226018670789774700791024181659449715824658333084753635656767146749607527485722394753331532481901722287778145891320972877460938622958602519460223999370216511403984558013728841682797048276979102928735134402059221070610712225594044303840311164726374607754659990155849735790313878569472515124547921641419078562909150965989470582701109145521612063185861963965105912749087618421602747508567159497185529094954179204028370431140381280052711864758556299896104432520960542809946290251997452345458049951136035133899645422039221649513330177950219750465116452543107914652929406569594044633490886487817021491985527505969715468448583174378918123800296488429140636417325876434609038343100584956424669557160156501467469151220176816371934106771662289512741376756382975109443308319016335605418436230541264858279563461469477148903876365330377857538517147224642137684119406019979381384744998883991013658584507388977425021374832173655259563949570246800202031760122155292050299411266462340002178673053106156498227617180867905768440764426400186887056438652467062214187133821736763421342447434661383403421100005531378238221677549186333174152134759630751626979574322905293948563762664662940838162280364495086496415355114272109317678337395687269470174205715740521700112846280299791322644360683166736305653755960145864766450980111289950781394162875489028365386124663857730929282338354245974160691289605498989317634081232081455813052581572038303022922955754057452557899300142217535512111495759916798115410532846737002853450177019511261927479463197510197235544479278874118249797241138175817223896550103337217760592967651802104103467399570218366859323361793977161098602146338264895083598956603105037653089231569773336515398526897949221177146180707916592313278766473495052161385333096908014319485981851126419271378394263253041674275491661818458534230537725083057466486923846579876695042033283910339738028033601128251212064494586479139984620824350177550795552102029846866121548495656180338378664613065286299577181457229102151389034239605279334938460324146195196011599592201576900072293897985722146401678365107502739709960611876035093338843002693836990446009122475061712101389294928581175763981449137335758313668835890707644828386777682880752717061138945980050003275114214206929258891847801433194196660618311159554860101294242749572574791607070995845526868585644612379702110826007297999307227743021742196574336411681528477352594325620921024079643617260906372305746012311350233716957349166022215862337557157545733971838738500444106304290642554796666247450604802764821439376015555088671506806533991315667661242904585451496378732980732699756585733660270199046755178963993774576780629665495148952421523978614146602685462653424591158166338656840134059791807395892895456022492011633138700865882181199660291122239716404466411345023760216680035026569985864488123889572475215506142051685093362495243126047105777905438459076354881638347999842216828471716065364362373573835645727475299575411807030274331748288330542332515885619087243173569781791127031795783092571235093943381713085992602324264545880649136367658799605446429416636312708749354395162396332371786163288232348444769118305525909182311290491199105820243807275814013065100002742749553906090822217575653517554794110295583822242026041867496635421732352140528365170183294326170421942658408985419624824439925566032103273473434575156728734147615574947454946683473294653416814431228399046160136683648524019788473180066066380162939512173526428766746044412778964766905447733618682108439178787904576158038582212680332991432330885745680718400171148309955407087067521245439934988350631787614728835384336159675022440106584092954027591949032794122066462647182063340586272542228197868203923459653044661004836853606489702957572088899237945556789754392069147287223722437389555513445598746142119128064688432248990206038059618227712607135993806601257688121391389427033853871494368638569864283936597192813964027795169245913145007403181232400080217055167987560763254508970389941113420212210786660816616842532604100737290936850340668448854929094651474001867513414232299428963700641534681567248164523162692038624111488321533957007217363086741408802729287042588075041120790486851401253130672638380046064967650314503339885246217712490799930578208331265372098090370181218593641119895467627005034874818692652511023296137590231796593829310552356992847194997956269179500961426860744279625579866562305277959435355143464362881132603960904105336253986000142224630005439595932231926127690377788775360755780003217392380515964329255963770521109994552835160159664730111084084499435604809023456893351449821534171423012966020162199591471626344296068492585503524285310226708944086488204696173280297234160835598781414873293337426122724606735022534187013614892910882483025169043316671432361280159998439968554237635875602475502405897972215558521519513396455512969519215563450254070268464658929643747508149161780547275856648792751431140938464756496504557814874882220835111576618208708363748145199902853929465556106977055748531535225797418258622125962218964651737369773371673984673143695108958983403114781980998809854892820731161765346795555757028892986072530162178667014743389264695292871930838918953503140993991593881691578023092177157087891919495890455174402451851200847498564462008717191499000812497324608995341805218657017137879463363929352450563946611784049520041816856935048277303047036800771910302411712852836371357057159191313976692290196381812898356903741835625036215712114724398037648291087674874059484743626751434037683779750030271833243859185631762121249184134048090446303471847703057550259163691354712513235703712150778548240167492265352390832902506453938985180580511154922448315880092591938141927063323522677963141590964677258161503269090042481255778552853256199293995964141002040377061581200072370811093324494228901296478571036821563702032964748211708849210520043958964135203303413556909789022868549585676769303203900964270448932243417889797108957818645077014088091014487345981024798578900474576255039015760507889327402171863179081534997000858570322376277235782923255265198685526484263135149107584229786534715966058652753677116178326739245213647899373804950578102418406613137234015130704396855612906164607168414847359127383436733122904042498801690038181592260154130609998179399105533789227857464204640318169395297573850919524737524539584469639536403153793534438967260247697333592040955210077135063071189733893208488380804216374230534842908751979771378304118048380734260054263345926288636845260070686477591308061319452636902914642645802584136465654642323470510663068199821705295635971438568494662934918728016042719022898249538685998770294189955100371528741990745926869044750749529469798691054597300267907452288516974750524438539123307993512929302697531244081554934745382501374025018919821092801209689471160800864388142940503679340556513467531276228915610587424847616462655549622158307982526576739970448521178934170312265842122101916783287642129965484147234350098509921475333593059947250931489368926039071303636701566723498944840014475180332043245774051297326168226006935832949895154467483953429416756446328364500624686031174873872762893515635290257167600010084773198796306962923256966740594526544614734347905047763781479611849912297844603403740808935405008465082507263556360952478385410357076171172345691995633072491625256168873596507354739840033538016377244716923533642871138119791669087028293703265894455882050418931926333982211408454978098755519339109761169969309219572277268483141047661267981747182335776303092310653799998174552994162591895084622449732382547542165901548549233144503185310028245342179955005249911899372241054004535090648834371110747959814049511563126316085808269678045951715143039254786971912548192593175432492260960472878416529057348077684048772411669566031296935902308383860625378305790759675758107064245759664661934510791040122719378884251213918575342462951675616403274616924880476742795547999857385877780360188690654112744847520254911666458473090231013641615917014963395533124382446114027117262545618614356111023246533261955670289650799976871924565278158930875854027241312112836821355819180808358888073895527448503776951060233992155381511934657086732830424365554296379831134948876781517338418248994563248606565586698427351780604661830345989828633620253388910342540336809140946230153895684374477289259636376986951186775991558942617671769286033255961967103409997511161668287512612556327202553177955406157556475896506339624642115106094280058299910252374584948059104315227708357604422218702903380069563944149710220368124873540316364803676420742421090849114030286692233153487332430408923676697794688974378217025708067423425768097886869018505819537815286273856413710082993853027684570118657223190576531798807520390836476737184867288836525859631497327952380484317020908112825527564041380759233581734849242381314681500884639069157342764153378772386574717049168642079020901230146622021761046965233960871109590033929107514837390138918063103339459248583739539542167686886218722840925875478047300772682586904465986785236107105890380021956434570502142312470534221204459219033398683784091039972594733448540162572987426210425491668713610016865075141966264491824053789767085352591034119784126396661871056752993410183901669801616317646240485292648507548779713453174145513471692032762492229705352546222759101485230195926299470671009374830750008233415926526031329870413586354800466549847836569856721538960883463311118932262375790276218454906997355436070444053309650272555307286009172138401153485732798109275740894464053731589533681653930096311865115903266183730277141413428722948846030357420605016861513355616437516493910095911444475915982041797766699130685617534932396346909757104418152889500691969956245224110731410858089617229350549393637928752097728755900249149697096144374102609828696646752448416193197728818886703332384559384377015896664106005080659761578646259763229648222162408161421469404489392478362035663686510219938803317239540295804442428603841424178604678936478385815988690006959717260257451843581267059427457194337317085230300337693623126261530292407726834289487027094069164262975191914585137548237166894374605988939730107256109377876043004366918311160503991617608297254023032824770989115310763109002746198851420761176249373318362525438066969796446836019239404275799410329225076740967431967970594401958222708274437869998261490108222241014278138743193575928615329523989758077158767005399984203749270477882042437116349749727492533053540060241824395224137040156288676113304830888265557415184171282515703617406143399886182775737423986226233344095210707169895486851311573968508386075413508286566295865927738172621140076001504201217701757827432883634522080875559658599227869533236746969610095631643552022374556697466169605858215405361386590204553814027908354460214048259324688034891175449222493020894563946133701105632968020933661067961638022540877166178441594325825837353784949628535679549529162855975089963470820932739386318778144237004852640760515615909513751816986456881075522934999553832690156970284226328456417092509504961384778769729887133939741249361349074166576906871697911225696383899557401636874737558242827680122383590533360067857621393420003610498751529215298493727930098783387202514911505693265778661949188196681319310791390221976538049804384095840743362466896425001827217056960379534542597229124882322949494671515920571060034409076662542201047143298563624838067386554698364718818771667447686017395496872916585282144893789100802262699615775804200672605405726296188950347358272001397006340632807474163336760033164026813474156286351004796971392846788764875332240672980344875342775340305676662692206013437805996143412152812447433891170940512093385539838596116892040178243875376232608471758753177339601465086632527646879725113927973277870443391287750752145575780222666445817040917984859462870338222417268794703769417664276521831763391388470081382362653751317076054067221018009705491769764884202143574480824485739809665171863742021371111558996183260395505551282016224077199226760520969774675785331413606998512344069402457755778459817956472338802813580360824057267981318936701837707959483842121525660480020804646037810219430675395854446031632522965362601456734724222489515700132851614199644764511719592582645860221230752700527119692226161908087809221859971287007344244913656975633252449401545765532294419266960082234967278068405042210401917590971809748749127259238279385133300891070181101810994413004141232539142477576366428083395169144115334880839355436067727799354705340664133752613819724199980665699184093561587976924660826822641072858429208783280258151851014444612563340138863752862347591275670536539269135666223258284617794080922494079732030704499308627225613718556928413275570597298951337439166055213055781533062803553651774748326930006646161815837255414456663731452126794283850714115430958585917151683704136554792775200787497735708862793881054989161912481431963654022878886348981795794510302744042729998219685923257198335499271729908753338462038776487257464326677755273478575096460687817836295779838115783586826407000484567525593379301361060908569530251015392478270460780703744112957169184087311646561940339597159682448584827168227688988864406050028931895969277209583517333823953930186745896353052107303708940035110304015849827161682277560689444938735572168926405593192472832925173085096206511570040755906394000164073346750337051260695595657522650559552879336761961144689319456556554994103177734941823213544244766329639527773688179921430583833504540432676636615727391016779723348694660066175899117673354610599957357675879402174184165524883070536488281570586025471886182771569724875600892509503533293055361546414278640792977896467325978102371116093617764987472963352752238890126458457024347955867760667325405169507277763360521277308237571309575467475016861010118930814500188011337792703612388621804571269861308633769008603882927291641260624334234844317616231805336862531941717960122361863033093690690823591204236208852825032674772262489021285850167323903752106653166896528953118776734016480408868539052636267210885420493091999124449335891173410449955173460632635304343242059213958867041847547460412599805700201758680141295726042877506941184473417878699055727622540651136828653543231895293289150624005362263799015854953378887676400602987314327403345756405068290339257728425788262970043571086017953282145545251237181537713130771832556221271283620274002504619895362702332272033490255204259072103873044941612471292918945758247708461799559167786872047131829084617965514118095520072513524182308183771577860831098222727046205191302524794373653129841737199497154958164434790457987003590758993734926657628344444100829830973511055265560238260435996156448207304384896589363789425120838356731071565693787687923560290955288996966140883801051775624364545465089262760256932625418021304890791075548269262452362175129593061999284201883783040968615749290926858417120206952644972621696249346017544039223941173221530570237381474849450502822434758320546297293689472276620247625029081944784421054316807364207344556633404559780912182797855022086897664333021699088061688904563274806524714891829668715128954697671034882615737083942009165288697658964979305711803542156531752994350120519553747155246023125998660065269729296800573431094539446668042126873470556512016248868176570407276637289757524005401777337137164869095927930451317521996689405896331961908733107882082992460110809764273828592295110671858688351732590305702427099153198333679080874686716047630657378878458440039405978492344092431084258469114299611922358813322887654643890638463401313521585209667601745531135625821015469457985072886519347807774358904736212374828853663100379277777995487786763409410372132547225865045909022579612462079727010660949260681054139333235863305382461347570508326143946513629796667723474803092920230653649068212793616053170572576619078981149886607765489221190484534694675954896840655696513874890248052458287790118334115887357574690849410163520302986042098680724000935471896648463590912579797868690473172375605634296655241934195913663038695283168533968335053843575143670663013810287229994979023274043625704080796156876945419828495887811865846390666720113147772362907563621722537463570665285261592106419614266056379786023074908673852968168837054977265112785976497577207691252223408731317973758146160388325871381529408404509541404720576886751750170852698689901624021754445000496014000312333227543308626843579669875611343663581732109035044938596300832262895984579381697248453455110490055235485061050982427947493994286778450520565985663494991093187382818361148122902296524043295435846339584315608648594551885512670898362489635495879684057945024227631556906819468042798657625487072313806008075479618226264618128435693331045593525528934915550359812928385794969420281703186464714283531599705448131920647391146961529585883393405145934844516634918868387064810538592018661054068057345417597310888504794859559467508245708659310486441175982276671103979452278373309010443268622874755355074765441545626077220540106080966769680277110814241278897860293913319918118021252011676210184398331854292639829775521878389458337594014014025956994779238159735495573027808812403163504694602025970335674942970491978695628596046041677293554600688786803607463148306222839462292322545332932823106376253807304501472445532366577738889151808211455387478075983988388667241143949738724549466313457880995141650433749996768502601617632511250669110344524347575363365275659633740098550324199391590123279804279083026673777744294392351055482639833291001721822097021725465938854912884070834995556919971627297927970649016162523196777420129902926657037303013869994645999124048347754420073367879099648432961681030587203103155650246625720805468115355953646727984128404574516254826690596398445184437799240053613672741065105039576612807503238331617365943341088530981343525111660913413824460919320203949737278318472943256482705776150814233694715550862110421494437807880420101669651981672934749475495185193155900859045402495848148606774301377279338918778697279838959374397831830222209939049570403982995874162995592810353565118408782153447078629973247495763315220406472016057523105382913625110623789051648077932330793705077405295832016021055120933718079589909357926802520949016628353137499118875182562706097750180163192491998254613577213258304487492938726330386165772031506657491853276343050601690495406077317815519562150670918125608014431767341214150500592591376020817987871526136784714441696554941253112787182916219241415659767321305511914236576118715729386617371884893387605584744533358044426944852575059138423669358526076243710425689127886154796264463117415935875024099997554013898826967396759937359863837220502497565155952351494243268961466884431393866723112623058903920293964160159493231062841330607078488940871645452015690417996474875267955947253699110782297746611797657738874131395089365092100462969139697318672567421130021012182868609030378539115838163485475840838838487391252848017290134708407144029572912968382776708792600830221045975039141428821690128455385565523687961177231725469249697183964737131523801832144347035268858489041434519367267574433028748633262866748773740191038136065226513697517440212053569368630503162951780301014791203731264343814146007229161679210689223826098198800221297858388890765721681994662594081189902843132522494522732998424080989652416096463333969625007221284138381220728692208095236331768028799448771911942413272767341291953343795778015122594667144497454892419333658817312632106981186734308689226347137141810831593954385548507198665050915589849734480269455856827878064745256571803540891459751596229654670211966781325378202454622513621487131303464697470879192124249396786486520839456458662950180937394489455724451431760333396903755773977711640136039245793675269152007076312481722390377899998029226567955864723006794026771175789567510732859933610457024665854600164391825803836427228732740772672896844735432330178088099113985238162202240812913684545800840456429921757536634669894657277348120472008189017687063902082964713168970820834073532971994625587753630698474710641053492957016012386124403512206334514366952471479198940612440517797919634497276873566314928268419922335049041246311788128316302741287956584762653458005640145739152984996851228319511194820528392735311495303426145461309480177186534013222713031078096940091032375128354294507450259598013089147232208094721344330616038004830633314146920863274880544790505324309707119460045589385895544142862506654623968926002327060891689305452426234934820779103849575890987026466288373740468860729295831302418470517662205605782101468968502901501867399221702129152601087706184821924986888762268356821539821777563749155382282743931441474766840303151269351050296397396284629562325568393829852285862992851167432961752883040659810883331310318079038053598415551465669539264754954965020105474560001757612598643698341929829033810724506376081863974862695972800489752886056243954261673245684370187223080786395643144655274731166024819999692291750292468902683729646439600094767328199323814855108293070010249843924565810624673890200257959706239877830850924984706654487878886090742659785258643306589743052402063109684188185242395685513618146050264508811310348026389212960454782055866598551543304229350400211951355826081537194893619928809062702567642066213589058794174977593195743789192943888656107520854281822439312797660102436738536637799143802428985729560708040645140690816681714613342515658012787405138958528166169370653009680908860153250660395273146345551139563160635978048767526877213537675929860184908175709766540284347865925518232304015176959303718996910584083014609886989039213328552684295579373903716801755387200919690453667452731620563679804054832860178146275603405198899059992732904130573116569202431149276619716746427120310776308459567630123704872333180403005829559664988415954483787129882020948380749092811126596562810452923990492796800259458949380107323793351755807735818429654043407111665956032280399515853007671036239471644983184678423094249877514666411332086341922734755498014663839137303438334328500618347103580262924035818087519176828165204163732286049030580633210829266142522898751434714930598722965783175941680409868805534003927311261151605994844031140649500246641146642007264225389549759090322927607731625339173683063359157959412748450995741772179825812761942343559905044608330202389722281927126015510213602389276147608829120918184529052675790712584025281633561778674505669735660929569550121581333306923067533284376033884333402991007520251861954644176661621948180054442888791551439471183528721427040102860140342030976710823540038185836256369929611255067591979807364384798063641914731643778679298439673404324320099785772364846728968897651178122626738352908124567537101596526857442451168663977678750403964821800195463782733895067387774770846658269551026229926039664699996076403349562177669453015879242702157945564470930843459329539179962381757371354883190791949741058213485878449719731611337514849956127045612686858624829205892764568115511790668652849226547192402875670318793284724035326573009795865654011658261189396628327284059772735825362150676606315493512316263076810641191116118586626677082421621862314307931810167473890797588863002624773266518301988689723480856819590902439839364568916970361606158254170465160973211402377032031926992316806248217839742799856651947176414698811627285155322459633571758319555272796567213450618561827316423510907322239257976742752382566921335334653995573143330863922066252648120586037991154747185863271824557403480602355534539279087891634956275931275021064335929079389622604503741519597962902246566198200628552048916757617966728779056952280961753239908025064066674419927739658366602471792454657494672917622294441367098657667435075280190428835727914480895271644605605305987097588295825907227037361211314615326780886499049230963872302179917666767514022942396489537445015963456337104381870596007999070859795112575951488839769947223528812928606253771735989400682998018210321842160324165365790379164364594396798235514284093912370521999532099355502388022998584903791850268935638856834924504422369540881753582409644055586195201762757946067875012870649983043663789298734450570100708025059158292811404001982195107229325628021496353891219811430544854079757754010399487340188422649231938993598347484620685597826733890761687941745838747845639765060856405699240367552017943409253612687212641765010567576749195408008008066640854778024798171820961639229711484072390849319806863194221714094698681896366608348037065607782786803651946652777969761910425910491899505965200539067798617704379114387074207583111561533086631109791515673253937019680502384043070645849330270426298607031324997615305391761010622577289947220800455001024029683725618042973014200247935220470638159950895046349678085953006169177428700706273072587120775906086366253361096841275346181577302038000035556409292171240381392254458251300623443971285072713465977461493308696643881290658445046711881563934843725214736855991930387273027734940874019147632512438997632108613855118726180417294736743645903527413840612534027702745350645758926848502954254266841918244778057956543214028742199669901779252898762795680331411197545576870981646321174801605777336344748378737722176329250305695031551701851666089680773778508857500220077933217780874155735975541151426781943740991939355656061210276493358884040302314411055804800182458925678949951089625290568235887157373103795312984324691073735121565400371214551038065542250354675973829676737929523134855710150067298892449056462226907783789986055888175174911478139586213648590959602520892254907003500082793017026872043295143422464265875509624524147836442010971388008122344848805860571787906311535726982320695664265519055877525964068798432984456127639933103570400483574745546606587115185206066322105742477499810248015672381186272770965603611275744941950111163297221473396431848339503002308310177098545345528144271075971455552710382271808622867823011622454340432384662836238545296520305749813975887133248026265588846337382984694592318827361233508726387186403925875727264664865403505086815885447149999890215525211255110211558942973702473577995506227507652327029475969202234603685245795979040283188312102313331523035862809845314211204750375513078787720547076852958569003165640991409993899769158528181205909765473260827543323333391568026382923740691984860939437274720836033062123753345054990879255441780570130233851899106554328321610505335292446271883657779149671486332444815392619374305436799057906061287869646256217205858984374645883756863152437632353652722923867281338705465871093249798573830510789329542357211919253754955890132599291629877721379514749997527312660608326539949056580175560942166507124575593025817090896630122954761523583282034813722562822457501866538145530835309314180993698215051913503797044726553574231694762920034505281441101893708633519788920491165788263068608673170131774168616396642689190644028344471093121450242947416213748668973616303798334160548687321909004556218604903785934324364846346885614419202584249649332003475932624382985514924116284503350726370313835348866570600254295904205086850772262944529843174960809105166676089691672997995108235758700007122553547706492335599396173655144694185465888447285495942755470389417250487661099737195246194689368422032188419258844544425810708931015712892700730966830034697980040884141507409927640512114005086289963350018913355355169975188201695811460665986028939234638168818706927814036297154753744027632436004722932140571068735739065923744671930976591080842517414152930782424508172636918207782081894624752800791680004991399101222492962738371818686538254037109829916474390518427950361856846488994426422431199560564017054750008725156522530858566187142169135516784440837157972340694681218212133793887452159873007051911256589625793963399514682019855273429138298926064153835391445544259808880351238579225381398113787412278776560924275362975897692899064982882713879648886303965502500349165553270296927258872187756505679378666251587004485014733615167056690476947663241953343599859606371701624751926794176244315620584462394937066097207334946677876368108417335704012583859076938456259830070685994285592300035129679546069077062280464648810623990779559161756785316850695270920035816391796577337149568553531340332863630072059983586482716114359199604930507249152675440449828612680447513202569261634069874269884709734145405908147814002511411120957102384394061265007444608061380558360279097351848708382554296018505374938074417360174831406726929087975483112954030258447661848196080029612548277960805943687668633147790970614756793819748762016623438021392174998189538257107379465848510144177783759435264036043035235912728421111085217699628410337467151307186470854401573552136571164881384970420439510021573787587625253209363252294281277067339937821101525743752914912619622724677177346781459174845961914917351227767079962931458259840672843021998170652801984729796837620324734758733040342857315805669976482469356995471985218121738906216207903935920932842550920726456016051224523655900749617397250343345102556430408706514811896176959446689247313955366978230129078477369641708304190628639855894690531466382254143286603793300796282652965139340841780024673253186576918553848647409148901394164823528325798059158985524328863319058425898346480789085983235298910701533006097158863953861591125663186446820720265627955196636474327518397183518029524161719453851841615922077436942201703614792864630836852136557655181559471132653980870737252532181285748564748539185026545870130596270336244496194285708287427660034973721771416677105607603512677079718131504619728358602129755112682270895500137300968615090669752389580307918021602959467668748640406795202651213162566754731878531514303977752900640770036448909235604558652156060791102468401959503566940400899251507743136468994331307571736376578166036712452975895060986817729512753020697590649803068626467879674722358431447393536102346963789520468520216376674692319608439561310285028375598894594179677648443117000301307377663387338622947394306347240538128776489325550624667537619500888100702068684995454398533726264819775557443470480856632207195412380435577808759859536075387759947922996339659573987338730220905231042066737751144336910988777608234700199138298001025381811156624345483749606566884934448933961812395867125016403809069994745514588418330459743337821368815198021199504111764516328469724121384936523557175010233160572080762667195627256963966914816661132966468151757765639771151174653462061251025625023176362437127894647591745977193973654960219063484457367242415664382662700834161167302941028628996295839098078588831360948930818769281811239810664498789029046241079162273354648801416268871494989287867263646270252433619012949756057244545276378970778778837072389862234848835665179710512756327237804469076957559891502692886514091694754523102029268310993004635693456413099129132842000694693375941604583955765237591464745998883932084133977969356953030534041609504997326357927430090550717926768277390718645940570989787381031641132293918525993069384271548854413993487503118936067330955871777363347659750502473085539677648799363585065096817687634299393128560408823268411234341057975464421448740027858364973660335418649179645974636306047121674447073889321303628482909554567209388754785166684567413918120389249140552877816142176790725487239818970100953780773321574808245596705810439089850390972317362458989739103470246906541450100467800191580469022126697939550172267650268136151180685697340297182411322575881218420426025535234653426279020857698266002364475534406034676258124886899524555250629533921162746256658637963317905445860461773076412086368431734153834208362561479487176092622501119958638675183720766232811930283175227023311547344230758322199648202393590041178283325847942969207566290831059575921516699774019843253246562885959592808935997686010917439898801984601270287016952781124074900187177657634741152948945160984427751536256894270250436077024657195675170275104506375955494346909653993265475498489486598022322420913357983616441202769347589022200727745127084701564729640267124431235614613919668499141948552768585306851566307948395385488348272349178901284477463419028610500769234688331379115025521450404002055073398771528465122528896483236576272145397861649929696968060530704852920060702182217253753794384747104248355993723330396617608617414225572796548883820385170861113966482140064451771219046393331418438012288561300593280092619823375807010770132771073706541137051529840112394607558465835530407455650398616616005314003987896088930403924209876412577250854298332740754286601705613450184901506481317295434206484226208980951352390951382775487029612199670015228637572499893121750833105298128335066697194358982715105094179885193565960985473281241478123225666180196650937344702980500102799955629831728019408000908266319236420737399037412576019322427984551212228734999147294806415407705219295012175951327260607414119062212852788270581052074275291251262285866592294218249101623950904880550833819416530812274285530501032723685234051969932882687836923774458638908964246688828646297298471576498916110952143752811235154649122449990265234693085322459507787668860767994034344797409755494059159935634468840676953815168361703234015510416246929021493844974228299367036576222193501904320357077833783880423460188397465727154312672310269663075341588487047300410169093845311901553669949328449030879723513555597066747955878969214258367150290790777600467118770073734133532159771308643411237922866756085617843917857316226325727585918412770943962162366639160116146600457275912754918243071611022752929993788594681537730950238434556354948727852536768169998240110245311617678260491046430641980114063054874266810289286601351645657304234719935984778172322711121702203305149806895241224462878402770791913324057589123519981946439445921556059698288108911709174878620665885433512182639668928144596514235437842824490961690371982321169445131790517348310922500217521607334126627687710943517885432235794054582369863556811723241107106345836915081524992711150761344993043248286640678646073186714164390581936938064187471853746352658974630654165632147645127053907691940801621063199957807251774102249010643373211632136783377039460749757100698861885246430720757681010400159351043085725908615200208466432367064584550350387650781390220187692937893844017319244941611019455669048998119488480283325597987403973721364445167347286490282693403598026120772525411886524513905769447528111414766015072614678526149558513346434307431891337238237153694016561293419962532064404202837155151239590595180912318010904614230469316170782351785818992361633859126961814823940036786607511752870336589291960948916464430266729853366633767961497879484370943008379975800924105415955036941365998900407936067374434930888495775095339508022512339922495736104907225455394734684073089416699075798672879101376892814514338422271001805424286716803971709332297683733224224100913405289614325555416663780922633362426557415141981003024152665303321032593326673781342568521255476024844454413499347059007488415809635018815868697743688767206723643030151136014433477129927341681310717489043895355598328748233402315739788542826264895952184834114497943059002354048749713363593649425463788125928425177010178767417310221624241552677173120196827294240663294872197460861295679412892245163137918253032611844903909369543523779381102414577970539610978976246317555597863966335880092432469273451765722791138771038365810261104579417933440703663169661850438875277502865034361906531684604380086628244009204304972862523252199642361687178293820257295176734360324705799860542484453627668296772934019459214829512221813919493055440875382445474090534746582094201595220154355509637990889393762143690770624099472851412014766471704461511334132400345604132198461588807611534960064381899060638365993274298473444234378020718882902372053051728796731480553372505348257562296395433435986528586037077711433383945228288074949752870354881179442886429968537721057203354172877810019165704606239766775081831736734054044435403976790919001737027414264888435171901503241559680261649287947103751910205221421727328109880336190669954109658626629095619463834903147082667424076045437411416227382729846191992939015406132556389238207432375896179834885864448494824175370490312554347396971402674945779352865162552522220993061345404617822786342113302922149255705905728976722387265779666935791398164875903293046844120069289868277205532659998422363312206836259371197702182385940003006403107032081237021843588426849786160173594989945379113199075070230985185160397405955704786156933408232362922706937913505384754923064058674310509845481443169016855316904678321418569269624283382811572665783845192542588341773322035031936568386602378971541051125557209841517675218635475618306172498539066173191020369899970755431245399180467205573807247464345551731627965698761190714028054733386347117305448117378870514819595952414309141362936328325657473595480091952725170028120840938226229409051490520759356261479382687081092092384343119742384372945416470340366521667216354059402743125322448538116180678366556013087274423947215950197295680630341866362492778404831259449159891385681964170081806725614818995697797632862432506954413878068488938448677705501572885543927578447811718533870567384687737674756488148743254565225742695620428794762370803878840213279451334700627084387446210798201841120730544747210326366542142057096338738177864558568099392895408951520134071210446021580187135918196807065369454482853102126985509120967488818367355007266782484628192654707490112733447451942239758295728064882395875833353312220107987094392265703973896642906041867720703834762508281652445404536318485262129766810909884196559235106756700970346459490836645772518499204884329691972647597963895554429228447819358079150323267665673336813640643584907682651888375421248093165722885736390386114933728235708563874354010664904310373926781839903332171077651618183978734193313601310653449274607862143504609370721740137119176084929927748332883788268002322224093265327672596421371964768093937620925059845328441998216667448183649602845607191586086479134368802797619775224977586768825003720670111520847200003277661607409819042300551139252248775347688696629083001668749027220062282203111065606411990173496631383363302815797780447852331227909772420889664260557057672186994636689877824478517354858158519221286890517691347587494412531044683092358629253667571393055207138553331450931862574667374320341557200305359771459148040636037059429402607151757634396128348461921679830288239562619775196986384699224494243590490923065859659957140828738318084678981003456022096565870178851530489535724047814368905279736128406154008303192267113851115590153086834653532189972363132005190970527125277582331173511518059073636610090688954323480348456890353812578045859593125160758591460806467291272980841013863400975170378871635303513796587405823336008908640115852906379224696187194673935471585883483537071867420976390823440454309704741373678918447594314248635925737369187322895046327431213038566579176244582083395930381215104428862998559533824982881886261254812848652659398830799047432862094499665134388381404183551344060499898027904857695174633487416334690994570017967705175789008400943171575818419419072330472522423326298063266819268048313414638555165271141212032278202830387215951035543202535729633043604859750668615643742708135011360599930754325944155534877014257087554815412016867820668786601349692291406796034113443779481074847951742103258348390796023824617156132780127324575373931137556375582899087736040635572108034600372716172257849588449833935260866711305485507035555121287732580248565589248795764773392266562012493986720922153147761108509734995570165431051472961718585550065970582083826195825963768393206366657964548948533460798761849828678852472267075032481614387712759222558142982483705081627235977593341034007821923152089072204469893337026345788460940010663581155781211686399606360826756514700401770166811694719649209818191853951865594116581953991168766814725767500274277784047378081037039819149119074013201244801752230977283999290857282153240421225429362664427791771299914638899050033351006849374574349539791223549952161567966990582628008645554743319877411761926221946279156773132599422194744278783104920638470214799073555548872239805373210919612876925384214633269127700814385809256582733921412922133847964633712158169557284736487040336084539380187503731686145095417927041659252734814592599082947448465738425232058814704631302130592342785116293388424154570988791935901072058841472380816104628955118723148277855656021587458271084618939022909897891887904459029488016886384402348480201853978859382600198954562448908017563230150765769333528840505648370637359653507065534683565732640341570825084698004348444936215784951419609862042810158042887861049998309899384067145677957820013763037647587855913802762568172829895284581963796571781780185361328459466384910098846010134995902055049067529425472875299483543163714072903417089112645954710242844527374231641040499186268491773463958350511028764145093488319654312769342980107759497994026987874606669164356603923088727868414913177901960061102386667148157692802862108755216387400629827237524544768115415947881029012738282243783975178817880211747792885227697286140014705529791406836836825461856751799484531453427860103339056842700558216036255143999264952024933651229532543749933901167613521685904960690598770757780375083541491197423755439791750165944428905499234749244108601709907795181018927202131408370457418520791865310542938824929162132581730395573272381778406671766342007176220139404059077538483133521241080604665390538279192865220469229934311646250069855968391706093366106401397443156022884726338472814571556262745820919162272283736681800482262396196749731436380489682926163119594549628599408488202599753773648414819179766425433413303274275800696240056137833229799826271598182538769020567038765044394804771729607720347733916218032686867165330933625819573981988728848340036080891607071934081698281340391705618790695392986959497019291460283864753044942070174056253076167389744443948216267334131257343943358806415364752221725492250545501811414098245928445989191619513858313795686932624645608468883691353163188371055394794556528468859084722446259674884153998611277271767534129365828901051096548039392080885640737266073521299943004886783441137232283615170703670084938191514361105727524935407406754627787370226378407773421531904874000385611360821914856742845584912286953836191787620706765687923143900407992820325853354110386422278118817722051630183397162891665828483486458798862279336552952461900488239694339249670228090550463108495257327049201707535135290794725475094994178055914393340002990668388166939508782392783392020272648891501084484605585519287288932620832714908400592986840478179022750034286432112915908727910467574845545328098997043076961277763759568655155566730875911198692688339652142401604359534353674673355710245631826796554929571619760070634828219867228848562634490488498264181728700119741209355283815406958425796921611530285438537966091223822366606043596630636587752042153282786304821490982893240183402710848780127266491424550008701207329851984150263764154269262766169734449572228178515066731206406424067961607387876074477443715073436056449531110228517843575136386967458824986811909274608322422225736293688885717356469985907977313537670782708111268230056316803202286459368123491430566821472140080005086061982900709594904171078779129686374334540456368503733226608702703070796242132040694205808719749378523412690535944406203588497406964211561148621175072821174454989896209262175551193704705669031716712506928095383341195718295362463366328837046359558131616538174198947519764388117722836318603559287513754023788580840268914844271601718477385622848035352241032047910029836649477867392041901978852926765634779193811703169900986157017769070766198705880225934879744001508836177914757698092190012817037677606789413210513017108533332539169766740768944300774051485148300947516504456063364292041144631788277901458513872064071153989112751197586251162792006718489455704150609812729708539615124909830544276748705142869258313490514422238655218045970956162410206858575402448200603819845688936646433072971020363689563375098821914374106372237776072711847985498832549795905497254277935088527078169562239593830882385748580177423822709145221777950572359950636416785063937339362911893248109674172242347019315484827794975831427135845552248410110415736521971296960599505332452565861558272911698033284448935075838428385740153795532804897227102550414556023900129829210289675683708025561275517198875985262692230198518020097290256970550932417015611977502000278358866233913178830370109234382306992258045586367070009712973777022342165502230331483546564243130617478781249919749188173655751786026704845956504177647285628740931886118834210237675871561040681432670452999299419548870978069884404793250433425649423158794221117323641785974263715335778640748397140537043295816340073223041829292252409139460389778455098747371942525014736583007277578502814862862532669485893471895906613627870621560469061691462943125231229540621783801892510837173784225294765654118145143427914615087064623552264381859207626690943307002797527223235299052876882659854676257964667683877440703149311131526645812985638060735877702133951873244668805205546393726448291755852226686507686382995002605078115646639618945786421469330460165342345906430669731962421154926704205647589973184648486540529320907129194772958174884893462327925009116806524866539591261775986128658301708086886943991518333329876828228904527863653367757567547518326114243141587531524973446622821987769427850671635032161345133177122845352173060589947515141218654009615213085546884698589725356931354653924841148439695100483207899102972645210085434527178948259611000641998200939511449849506550460641797742772089190898662965355459496719878762525585743789223872525831116054935527904631809442795792539379689394445007995564146113654323348392972607019397422167549137568290104494603865388882083487460685990178253158554233719809559900252766821643591044908326809759386269452146842235479113072083259063354270813648325314725119200367866853649160154552177883301320408447301456210214158417179811062760963411655237456773632991752643480391529901771375670214153827270949258296615275713374751975504665203948661642541838630470459193752812430998466747953674284020204041061025757988703877864037809809928596606380773219178201057808938904447594876497964784090327174491812813725935696047892318923388752592641993779562941448407884744384444636120107813768925082036039534372645219900608765907775303322815744530827385145369214995933850693621887841650202906711301362907328714380344930470337473318555336678166936158722028074935592173402913903750474990325388826860364196172970544947427210845783070911208864544165582426214673728085270184872931494539630160939379259786758491594067627124927864131284900809031683170622585388718350574369996053535552096441547867928973782302268036663306633155853645630525287858400149094675780737831231395576132137332954744884543864710157173564576532308673618290980335350520208578915665965879951174561897380063441594382831531550952658829867194929432323846859628958914255366424972152509083733686054560040298995450938115797588094191978779611522621679885905630704125781865449480345297797548378422957628847709442325067317213194974674255169577558874820429169987821342870126284639516780335465484780662378526275403653850435286077228541288302501953038140931177879492358690875383997572373220301160857608766240698311283154912588125663734787369137113515098546777065089739118072584091183013774387813597363626468438174002375484455581304279549613595935182389547390756890213849648206989597708352020986969903159405541885050605431539455511790161494672785763257309944664481987311457271210774433226219610262548686647109534146739418713902805505560768716891029470664767337713869455085252503576390875336692493868757901243451804044475410972956617554784296905633312572389180178185965243484682326811853731790526499872172501404720530238838762420119846640055752796272963117863868487666926556006994404705329154345908906085675015964636290072480597569788023438167085019937954643255196123887647514883968918281646414150758092181469723868359095564945629569728282565883894678252337325342925178258117127119288936947096529772571373982624767628641955861571140126158021397106420473218632335116881119287636357305598098427073193840289551173105383880550631920438344037545622940073447273598034075399144102662379828590274314077367986204350884416789555258691015984244495450344497841155208448820071002283590695306085367352466572025559005784064025050446125921258203565842111442061439643695117878407609575383137996463048611039533873993604904959724210838222494979265836859448586515528338563420528928646623526271514174863922390858003402652345842245199923617268881392975818726288565070075995893839908713079564406160976808882962601840802291689446218945790782645956813990100891611169956833415377352127760535991920493756129530460543823699710733877658748966754029585696733646677993853168535725585019231235764131390700449255028433747000755884089951853144795280737777067611607755278325290639753989191917984286499926538018164485641637804113112964747271120319124620325144509156112706294285189439880646359231593081942047053348417431759696618790583561023909465250178096461993251435233088499317781394345097691786069922230757778934553989069368800412782582741847232809712580928686566408486407777963017140979347723287260487305764233592716726134387495320881338036672653457053949562823731532287072719029303144877952932883398534464418285437350627071977647356375206564013046450389099741197484420581257406574513892897284272873223145248921645103152651322065440271323955465607196265189828151093161347069500972268245681763116542198451173456482105376635190038867929149560086496064738075059088316434733384415982681486557694546749182598330450025808380019561216938642064629940762661143190076305287793320398312864246915816731521205620504316558947219568370199265037053447941831419271886041958424105354425762425870746241391561301685513868168748537988902633835266341315327769087372288261889129228474094813060640392868587235978696076962411671482622667032113636509839095546558944648275362866210461900746887299650776253711853613692735491533277058086902402464707210582019604694517624958077909055424840038110702655601941795629104792144442350992262926442610596658604060745043751473417355944923913163038414480496023551240821412991674374652190867635289008128569248014207372680022313220626865881006213510414926231095057500954734775712033188399200209584943586344638266271789871845921558186319463159434182288040423250981614539571452495728502822539320467683728974982778513727358817946961139311337404554161006673141668661213152655587631013656585842890650072935606116664158910591972401662701065830812569632313736900813863015161026913445691791328127242565813835468669231400861169501581842191572976221176121611139551455885431797695509310306442993250122783717825658286130101837628418318349673307826158466738361235090158300590482697516068803986335512245945781714831486625846975899058362030965513660555811362296679637200107406365579641830950508009909340646809685980868548427286321084610444168021620871305468194945315601358027564270014219654779084215435584726054946425200560245869078381848281333287164349746222567149497384881754975782393775586512065366063586686503945380146861930263295329703290653858855783134470059645003165445077554405204310275988147884604505308531080185152014809765100699310753798301592171682877759325265754149657129340088520120407760738655598596299872283410081662653331805318599832661057656182611543191928193015404909902780388693636637397244464052986769849014905292975569675077551746747154739974169112079335659605892009485951695253147232741043638356890350665217927472070126120058851956773528759124584615397842444005069007578303965164200635986252510973405911899979293177418958568902352520178453706795164271631741448781514155096404776711052814676466201167147656629258530188418675566357413423259409170091204951583127112453992416679140704984527803959464273229532165599212313971286179826571258865263392757529887493045723268209661770078153837017488747440632325233988384859657491239578555953972174448575938202716007456444082821695001167624923250256532887909910391271224149019702088777336084038046730563490842940417006169002480771403634194754112492838194445440899253265644736986803225767163539934412942861178327661070794341561499775540758261671051678853699174734028566536196245100854430518024966179338448810081854563241390983415980279322160348300953493911658645851867161161072221863519406456978685912456361896008554273599313750374877435625598457871647572416120311347247121593085715939297167373396398773159602747235269770570939892206987484928293112774376489481517468726377711198397810982987461612509190639759150159485859684500961239808332954624300178632174753063360472023371074521849886682971395350421480885594908302527056288774988201404731457056502122504177439861815776041251790343900359183501860668267025927759948458621620396679839573128704247271933418921794280018801727447233406691534020477112873516147350620133255138548444277500743541245948582435309991612264212003976008588078706637205134587677765497513820710579915205003763702746337442163047318521202492109715299777131687063631735910372450264585493405032208039478127936977536657657468564199171860417803485615139745505277833500816738794530394717121644068468731377128122495037903605807537972918956795990452005079803659732389145761183827165909339295588949836028209352583955249808183980720787119128946383243981443695887183752509772987465658177527253708263249439166490417304935326622237509340066496189865303787474777397779300104919088757353849360351019903199685358614397390864756753107513546095889552478044553829489277978467579231207800261314225841205826615230698678422868326893898417812162366481999626963594529957402089917535303204011795513604622752625793173968374920806163010516137859169821397356372501632716381196120600978643388616432435868876967179041051427277211115331734669418535672069119244548743180836326258196354475612975358999903884448524523697040094049862301680539716739865300172850056932140134774594300970226005450929890881129384386463488057051712230163454268656524525150735239179821145480455991647732271268917334915734624069360124441897181940882058324001268424994743485210906931081536974979024184396159967607194593702300378407237130581839466704675967693281683498307589965492944984556716575744348862101647352266798296446687816026754559687786876341647302314558933681362307613070026507350999145185435689509952474284823052954695635550757918818579692894509305456338294449855658637865682524274913056145722982381028027024712881135569104086009843278364576683051325027881267259058132351497821334296727136482371919082557842513089404918327236743615195941528735309761723948882375640170107815896257100676886602668982775762658982950371663975138313345301518296661215249548556886490231330432545712351105531642365778600093977769839057884963761421130241431323366476369328052725844367499955895717718649212914608702908588996693639015704670146013744716512158408935142674771008676608606454074905747361230077013035694330221407750519425679885161332696892769093332410835601403007035063823364369603972952091950378118519381010136050322820759069657057988573237601996120763648943340847437210002505479845698654835870689898911263036624265881045729429772644294766610242775744744023453659139287034972288361221265946186957425555542561143979716594159474413676831144080986703192161231700591148639334551972494751589564673058965194350361619524830024694200156314238606097317209921737219124599408197768339172880792538493603433699245545696779574272875491239919527127954914680084934004431519810842079006304484481539159380359931044231634509842364260341176728732106850972150669963272858418169399419167173854807364945720673533454062005601268575525406836182180211582106624047202115974315353450256548197830349062864330691286914999024111712300672290429852195610763564030010756722752171549100420214319599751843978473641755058411669100248270943717736054310255077504266870927169434365146191665394700242456088225853094644783937810494504940101401556961600205512943813679570401288343905851576631660270552687536371971260709289667074965290256438268206743672748951370706469280792134898517448907533756415532366130073448549476216166443279622660024192068239968036941935163580048192078705894676773508372012906115870361344544864919319238571049696153762854172193891219969119335463287146976938886963578635370223341821953202309606885646995221290738432254241321234794396863026163079168926686268968092450813377485430313055028131481675430752476533361319487948491805007501804342985198724198346918208889472744756104872966319075233235257918772291561415450736060637212229156148679425694365194298971056332905095405596039535759619147757260336570236651375173822118606988858274562692003990166608223682037410419246839419684663733134211731748751594480451506446530308066334975664849855791758463532405869847675349715709817453114201333195105956568158629651016714357913278500104716670306437367804374976793919856438000909633387400983646090314740724974512438429139158110764708560193088412505057860166578581309713533605031536372272745415905315971838378540516732492608661895356116767673094989894017591658708470065552845236898114577934747369712870416938138244432743469363155552078521684598027202480120768383366177432564125635728725903699374618508812150126462977277249807838335203405161531325734119348521298754171054754912142033121751437611317103748304387956806488196600134951935867231329473172216412436735998264764768884156750414591727031134991976947684031851113779831628474184171763955082694515186294082124670803096953108109916086514967580820043556525339948809463331210702156935101384741712302725478933744981527149241001304180540615278109235341616811565522400700456789807801438683075986718091411250305559187789589297221451738160683733081046335534703461736848612254854246419475045395541394995447521985496028689653295402131903671161905080473502553686270514710277176884701241304086994804086115409791551127847460524023126466277050907187902065134410975700492842166197051143637960453544702125923777909190952078111703886118107391110896513967127392475374001406466242179035166294586674905006964998436347677586548753859408037044220862502034113953445975940551778085639898400746695128673969179995789414043157587690479538869972093781245737019094607792645821746468840386578671577635090369776309557938015442984799144153375426024956028598087073398626495260726993426387212558525442521990912100994248066777416253021132198091690409399442119220185562977027372700430495882898390646054948556013288727706549879225655611829806851511155379136916282776585247112268323796266067358644511595703541577907079045102058121444809560102173093524232325964823467190615853928834240436072877298771502393971706102387513346939949480746979935039902358246920889315928606539081247167340889787406483239022529613741773804089682335835622044472054749616295472047048426393140541222522211129011319795747655034949976744599023638344536003878924460361266825764773051225079524830687574255259886442272527761755820163147831455825070796036026929044500847029572385704389110279954573879652754218241142593276558649744247519418986331802378749323730398953946628796790536089436902098634365216247216782435437059483978409227889097384666819449029687102411150842183514279587413790543006035459918855739002133132831083335311266223207235192139570607845808588590683019047693870182388457266951400374978207617870092341465695080450879226753387189308453128748056320896258821157907328206644757920629641790754193166453453364251952363359921301365063496782834624849049570277280882592079557912088331896694033617960548238112026416732709369019919075877868952842652351227229875088771554778512180142223383221088696343194807495940742692873276419245517269428368626178455165867292960763325201081854928874064505198555748419132448857650600580871566775500677504559940019213206134827452976439877813218444927427209014461220210974130603056563644009563514082484054975859372120687603578150164457021906303430889387850627750824388727458040120222434775456866740328319206804025151264698197646837398982470698935951840056440826818758459265529540493072551487310097020270847520981486334526659004524654403150224379998938435203990715730938462685758708708358094530791980485134213673201966766924995117528238123242285575100891745019480151512962277687947595895447477447223131848911931148071271310556728688129682952035748356991868771188224535287525639750683619108877168939116350534271758442548285769413264775986584340799714641784698405846162600798658158222819441910082751804692880796355661904697122964893021158686722531093790240724599433170562238772978994334952341913801377471533144150587479860980546198601789375852660687677363885857761220124863190106857799453312075490025174586935015932181583412019445331127208757434889390499858835077337741435104184428240923074699882147982968321384018344820425709496136858803239693801494714555577892309003168236678450503033084939119508026237883132254792982890428722524518421437124764612891804812964256875391332073959856764700276784186461570927471877864964658798596837448490580475239775886069253158602390011763115580290663801964685298039732243357117813797691013825626057427971526920667062137360397873425744466643418455627538228911239954816397479965159524752502133018937057118046668774436352998063207196033667985144036319308623803030774975824154207277954915479470952957238746613926666064631469044886249710566975216209807502235977114307985512690332526643149297695042770208648459617314808283745983362938475201340834638785655356440398209429917375103592424690156596124547966696499671761323079113525077596013003860818751864041437540191771858134884022927104498654511364656689241653339104699371760271990345365491981951531868673247412644749709186981530670880925298487791554547926294451509928228164791448596190546069351417070208373786392343806163727547489372900240101886647422815793145196902020646765707633054496832191101462341477477803994550850595305868066390945057890753027091273355680221607522453735831135757614825927106044422656574615733485454393470310748083282267253819487397766579772194622281746888289506446655342662187470842096132537648200321011449944382676949668939579168885680235409290101600758488592307828842001383645947996271899477581595103096719063082773303692392567509604772102846389327780357271938184349279696776936664401508555509739400956737978677490607261624903154672380895219391600191217798873437985912520098747700603090770105015116630172355992260343789059667124162259010139898125673778403432058405166951087035188361569493918197725451529473107927455013185680471332302132053545995002426427559496779259096128571551377176176078067561058757577163031063690321680038748101837669235895162381523618279242069520451195738195830176050230756396179438812940192756021912114964279344576638965714145427745832527733292261062839159904258801856527721848063494582868337449045244258093226310577152223342127520892325921890004749923571119077979192036179912513092129090320804665916382456869514969228055685407258998913088646719465322481283415435341150490064216608965667574692904619612918458670367955475233404097588101453117841690437078597100247893325319245044472661175555491456149501976576488945140893431989582662903473709411891415499633647658540899821178870344785658424530666015382853975834988087413848400731898206673676596026405211259609169566478090496799313318946647630889591944852454713265249715980268604207771590550264288434381895012216070527575751740575880586307537797926020266517798528947220877637879100059647323105926163641962512206596992886785385231531702568322600121126797147682048848177564846389120588378896897084290449769893624661250299244160359443781213305464855532656350699007512144144445264350618510905965546476191947820623331855817208181930861774903581546354336941224994930407401176152744131992356307405574346913692861467408311571024578097034056878551043635330802621392570077872713393434700776179539315919337151062332499977624894469728729969052077455759960775864053282539135594539829699697519365909023225393292257668740820041160740612957767040506016197260019857730160070584109662669238872931443879771020537277688021866952138829749383570955938125669252514359217290164472723355719936777065512347156675599779056458592055118668678573356157511869742917597180630102330907145305772846864836306467984847601918595006498678763372312090189287310242356958437629586603882827380474237137971985951473970035087542728863318348784624851854054249447512355542392239597259268422246117917378620645019014876306322015962046997964625022729835045794129360852781809066034922098549014832175254621698354486882534255573772983593117240864418574855940624635778464944004905114368873359025874769366674799004313623607668982470490290732880102016271899626175599744331825818917648865374045330708583746434942012181517354663856182776974405393581182858383769456311442708114575630475666608554195225441596693831497399445095015107233977141662247571608793050909129333016167489285312965367986261664373369499135793512671416077466525767926001459769551870799114067099291551557265855030304851940719532013826727663340245400605541377342468170684838196658130511652597352813365203337068936924492156507377658309993000625363409168246081015657002831053719508911242273302228912555175572091331803322288199428440954199952841805368086109862129602129822746756000648305772591236460458421017501454117959202182748637114356614068978080177570035614155360550221436144258938397768761724377881347994935452486658772671333144175675116684509773309971652250881241920598324644815236396345449809208904875702749447636322304585539951769679799029817464882031556409807466944112964099903045804644111644494858470007315752352109139411332177082839453674391210764116414361278910186343254343947136053651073174530755207057311733341652329674838700570311316224021157980285197994691763056355794306160449871189999589949318697541486610423109155935462181089300431580937337470099738517852259398786819199602106140863918268298901125142718999026388985689855585530227518528386519432326285719456064416735149546474187365881371130939371640774480246128943870824895986380537058063145996335826597625494949247320407287743055890321115635352942897632880060740653488623802442214323653904560474771217432603494881459792236712106019909723699362688532016649157474912862097619452245855444766136475810917736360569744881895000649093333990499249283849673151887339817167388116044938472597380565976103437340451551136776036178204217613823349629589317428433950927976355285285567864554993616037527345616635151024511325105281234327248571609527169698321249419372897560532062194079100059115763958816879404357589634272024886650196263719765241147886589841205042581258751043007376349669585401143124820546066681713671775473689597557424242158894595394984496260891440433272164253065604636992793359995688651789371245561342385353020383054758806872339032534319883880160084741659929068781261616613497477719614175522797344245116229931000896163261408319060635196874561330481107023248213205354723502474414917254715832980680847268791214154988498491807488023694275450539036542138579372661549086210129893024950410386331477054482441467083541673358719632035509481460438200893367914868474738600197041140632993609930556891653181511516807895385607571546962751326058973002047023605029937270841285501082761712780941314756570010248237474199135239660521118284434176269298598464325909471442888863911742601656360588469124646377004745944240109494814731605625756288213308356473665325335408375878568787995856954189130158782941351304778049306957473613094727308713603070892573734750081858767135254497751938315797548379809565720512716883682351317566598463138903897049728411570765872300816034502173462913509814848403897610324476117447020944436999708781935795617503844251681361461363821430707906315177650112534844455551399640124558837079090330279077115728848197847653025452418469207288509941769587774046012870648995910042298725178369893049581676102312679407875775293697140941278008616966602300515191991891658897427286286718115657425986818284610163312644498944538628794985244228514946825561475787651962604006549144270907809862095078131415666058379313813468930761484509830646057876153303046012449804941238089062555776398213805345126518177244017417618354764626120240050103559055204472810566865659187917865374858899229472292435546719363530634822190076415705469169400753796012899760693302050532744577210528103761466286926957755592916925489804926550389727200283370007968659671013146810973136070481465129580904201676617152654484825942746029718229689417631826010262228448101921472260314319683024513053936143731760409955054905780337699866140873994002776606132553791790551288660054064094632226985755900458263272270146252326409959666188220421400739739592020217188407595353949284753343124136357067613918773892244851507100639453255740574724579111921227034535169319024099895387652406986661001966476802431532376052626356068276608816064556680987646116110884230200368950941006696067737809617421595650362347071751714633794873520641460091399274926013699043983707738088527310201851348843380074822124279085062774818081530656220313247713749519232844880670490518295154159238995693803029254262550437958065823272959785047854780142129866514824723073014048649810200524766923092056092990036175531386041386667053141891235193759348013240023514266128354253228905069225107826205695525145429430882337849981693586050627839391933434261268219356612731781823570850857675396260803897925995935296332247002789831991699829028759469820166118182378121284276714465723122719515053463569039266171058992724004876899503429226221225349621969143065793663099232552196482683040119832699068319483471163860511164384125153450483609086635408270076561539441585283765552247987046609326151785627272715727537544932931461682364638885536397957074849756710662736464231091405074744256782182542281293802275720359518950653558569758405040318777069465972488354800823065939550951862680367163890093382452417836106368102592067920757423907594585551915417671344065996873437661852691830967403762496000373298309804626982397223566594576144630973007112363520694018033422037940664420322949153894794684484280272804497867933539765250537171288449752062209436109830540556110380276733431237677473132827807375176021233466554846040492075160482327140021813230838350004946994249235108234752433592511915744620564027251271717733350109868206353546233074087192928249806126836163816703652756317133463701708583326599295571088298324011895527650210793566256059533896679703793694032228445511766759754205258780278839726970651599691436861899893775791749104563970087211000206922114454999882282521842543370458993249876647605634018591560725913810237810413952990858572003187780667711531043890153643582242483869295017106077925912927617440043388677228790830551077209630243792184122842205490749416765149033018006886328633449922441711325107374380103097928827622878926784567847236758673840997902839258950770249639791442474545199955899124610688728136774327669205613297779980914792827869146600865945513151638058667239338080761507261166271258136710678454258774847294787271820096419641696356150212458387389651673786738042805441248431950487972973578410664481517913204676459055691861757897918406991039806543642082325818238621072766464446942883281822161973899192226217915859679575852624308873906222440895878686618251404280576824943823768735908652474237035176480202888408301051802367998577592335317697082839695957991725534766081988457049878062448364368469245441214699154357000481146236663153079179458845480180379414741989293840654910770281621952708202277875099077462804431025327298557683805949096190995977433006446058228767429120806686775750295693585923838269309753369365585844793850196121643445523914853275749246153611286994389669686643055325411567596609898857729562886130106255768950985164127834613919617654526612467573329736405778215312799898760719894849828562660579472767800724334890768556869633381626978408761572361724035398300585032650026009563472559011474993876839979507294943599577277722022940109893349388068474767561956357872680530470053311706002360038630938121591044404927288477321206842865214932698415531368414196779892155158942652171691581514154984319825329716708173068223201864041301925862644168525905229493287741834968962832589472880624754144477991930780384285935317546086708952546586487976839342207865225791196835916912060945225974409397841260293767206582907265892321707710345314192226946565261771350560162301517302627986267175598719447224182908453573943388415457030897856522091997610242517540303414675464136811661286247616413452287107233744027364372936105727714707987255590047777209533984220403087761830505674150577372141933294393039401312870554011080056943236614551163247038832896994920856621848269131232992079206206397381981117828008630200987351649409314708739166602020607456921343607533067056598721356659087834739344281997824392229900078193063049771568385818731999659963185529401506299377344516375506584334883050008109595549195366497614451436800076771507281268639277672201641828063570423884986780294417035341979536905537080609047629220763376782036604256223920071456649584025734694943740105189042298626922270087573475936792805903031825979120233832420671155501165160988236260206298314219475481346440541548413827330916960997788387542211934318994113488463033961603166379426716410116970256220784642692868490869763436582532545393566305978643969268648324196532127746067935372742676651477792393663551341852558336752030144623392968589364999622571628821792469777246221694642235071381709325243705062862896127328694454631308376758777742098052409612426417301504957870302215348670661173391911452696588420768208815281098199475210002890503392145573230466521703900595491421668972105587850339744253792514641897309908854833719025152097224097283566172751644632341430942262753672527615509812787507371905245098902868769637727511990084275883615896662923088460022020574261678404852015705943032258775222198338557125675194980900638727189070864002689995836030172407004735532949467088766795647099522178863745685591208248101009746703218068563529571131182776135274603096643788186824687003994080112096501307151927809986948988635079354876686042074510045523541427227752226469456961027339406272533554887759758184126212630045945738825585618536390305134348039797433381779926985913402093496114188184154063750807568813243539142925138241619215303548510936987328483773429598785064893802620337457357473703092339292353469786865036426890204374378843290925900441789115466001150494457953767876015448018326598670189046858643011708459882515127138962557023514815707656534324340330701949416727760384603085024142378225268220972287732252279025850972914510347320948586683284041148960089462368435493491140891672462606181017485784776572445383117434597122705205061814169626926876374866840258097312886609507762853161690258969807692648691726945871671626412697408857489739951258770200097167983685618806547529778006885467874434846486174698675993884976394553019374355857196894592446603820841840860446792933411558996899865707986619479408203882485864436827162720760199089424608990292505162746775512070977552959962582219002257619285856403336109383940077479200497638229567844821072182276381935023101519807508769985834963315629913468507137396789459255616602378070243161006269614168580474748423828296207170167229306558211057444014594835261606788443949013278611000116346912718629451648658419085001292125680969026636380199102273309074037126533519562322814913073148348378408331729284987327972444921961964415123395320492635393752386735202759324260542875934434655934666245527973844990080286289719485142621390441125301957032463337118973716609022375595709013317153005381826094648781395021756965464898089458074512281181088457353978232780627477754480445058876205697524205261484287701639361845040654903747316156622700857934101097681285491151517151037067247546995594223895800855330393151195752521574361280907887176280892105548992779438359810711648977936612766981995969585484397071301340921340263003479768725605823550447926528728011169342942598389971564250469309661701914824111567358511044409533167308682633032762511229940311764640898427286363231076047189389999027640276965757264913220924119418582749198317512171255613383800233307590830996588902975854469291807375119193902831174822975125879955094797549693409257803709558412851587372184548143437676857468665079074990934606266174636172351707718080665627319753306892578651971806873642486841181463452868048539097004189231704404680942317114414482121781137315960966467128339971079800850373155818758987418229693410670192254785251395818490638893208813042185431689769262748893042783244689435936752800960748175433422879801441540862465296945485447049154496279685383005545824285029658930522611978293533786564312528582317015934655251901028791003178819524906446013280713528713117442881526419488906316862317468891525547665500589644740955512820873033442005996246748592942964086266153220389790590899652582830123910468124983946005582572396786468547934365735676568487730970873190404504801613067759165518969457081860879412964323123018861798799563439117865457020613637702307154443227226933069095307841333051042846683136381146460106995018246877465033479966519220716575925521404444499719477992059478209217375652665236212726439571817617368012749395432749922974793533833099030030715045325627619599202899405139885403433672420210919571417453485305908185128786806799829071322516850055987642003012162456913964822841284316225320861045129829253177467096525154638643884442964386235229389596710791290836065737551760948757561520332497894232693146013095378644532546394847801469967493803516810463480682103560122478018293865893588426613951883103163924285949192591782105689131795668532241671710656734716830078745361513323515620458163602304493068485105527374771461326012360895330953229703201514243804145510785507613971497642885632649420479091786208284115924627263352614455890081157072601098946890692240885949678013515620279974340628952158882134260200452597843816110116153914566775516153603972338514172122180192077162544076488898092589871856860155055321860597782651719806465567809983538720429885499327801586945791348043625956183588281152607046615731030327193912041039139526607596595908263011762648493903677656016679651446375230795477752829068376322957664651618581905538356798039801374583349102805497905540330154850985429379348121681397572003397665548883124802307894251247661661590477102850899595304738975157536402048107972793193704537119283892318111648032338669635683950483306339642793727301452375284861244706957061487787128719361021028799585549219005502248035498576173187846395062861937300064025931130388507431930078599278434768748540907112747923636109599554265175681376253762175975926271055373715951124394411004750988445588661709899358406656615977424335187672990413047632369131877469018952866956583190134215887837305105915121693505261852438095395016377579031988342079210553256419240000709212186016358840859905035079338617862946926995407957091681053516998959705835330263190362583702691634459413590564973458406698525374120296735250648742479795773567951983927260644899523601968008322987895856353007599048377202292022389113226369960551279641403213524946425737552513485926314816559322229735778214936539162804294807019190176675721624835518998175138039750655162153513321904144473426559458795491726033155133484056320845339061886192735932004919894973069576025077674697922041447301571784051071151926288452178763283750723331516894810722135329188825085862562709910143651386828134131292039707818292283368476981581640145418523582351204815858985425364986595782708204085250787318981981096717492094782614173074283122689917319297440058411417959712050536015155294380297217367147924122848544195597528037094526915654652251838818843297278369065356416080031288694461330179799011859431757851342758085784595110969965875377942595262117265499286820051332261721065626423793445003299583238114069285099546301482911840708326816622051878494621292464134482959174509015619253096857381851886701161722212479683052785546250576477478358053195726091791065566612856263661992921820818814748502435981943281027589550037243091880040887599087247805121437330495963955598472418270144456792128719995368228980768572357502567009017046514276487049899303302513432853567105308258088050163072110947966748753497482611070646727030464308529135410171706660371345602047505292947586135216061366184652828035016185762041932067189302138241285998911829252577741243267073740514223820622526812390658699657357479197381414799134106154634290481794389079707562208412559777424330581129675647662488470609353874517066020377964356159321422489594885044943198938778932901597197524549284328078781743363300805058057887705361339606900115942138848665728584270656803569125513466335503532250743546461734957912715321634523658619857149650317973130562417007430609726630685385135764796702304238785924608267833278612489418322385189199756425353384065835472479096781461556385032651793177845935094482873428054111235191491296006292818490166692225396507534994397099046568446678492975854953015517860145815427112690880494170304576798853923276556498246706309779337020217342825518313974205310511327417989910973945610494396732334267898796715206506465307521626764237035099089503859697114959829573530405271763579473183488894505853301777961465196612948248820819859319010550290440794473120376685263186308017291753745310035798192250769928288125326537353172910019131002030668283314456784908929907196082086797206053027016489900720675158120318794698684928410079468591770214531227715543820041638493507871409819596926364978502285623986596564403104072525807199449785560652510015614238225385075267130501613101218753129163680324799072945500972635334756190291180869676982128897816101485155521957824379296831783120641690245003039705737233419152054688589701445663850082970678226913365627480348781263460293722979286123916728285874734092466989526042115166306189904854479175901370637149120754565207468858102046158901024315060683170672120945970042240951422082722172571469896017923651313637443128673769734085353775479809791465491575257353995599367905441592181171938116189066356138854495517129810411669682116504837212648783960290753170167445417867494931462855821549740755850003468234444636306818673514291428517897314454914784368171912642506674191349047491237921328125814347433805024942417848460630786483580969974325373935869129900001553022853720723208670708771740506974921741264809055802475316125436251531250948922039634999141830161218255551280590339552980965355409264058744910819082937638126839197024652643902961879369975667705933935165779383507093412068613536104237656045923149510406889383424442159197663252290732438241583249158483271127631679744910417801924999857504481261973447402108788664567857557927053129272137862853390672275813271036452823420539795266110006208280463788204309059366104423293844697019577421930062215835367832464468211411821986351104704192712645253727031306431007854258374491724789306218281346323481193245162255244812802399592096693823063098394572923397044883278470796360318367251755036793132480124701888478316235148419910531920104192697438288777442246158187591721353422950956849957766398209755701986585312150255558744400532770079064347303362106592696330695408090552356536071808722615964054776313152021305202858624241080548079974864746662004275161440449793868559340961428097297384317390510373702081209498291069371376993437342664379042069581914103132092571537419384354890764931020133354665815167168432016615447719346046197823937121784533233380830761258734382942274959329290796217652743691842790633010783759097553344949391040494325304896829310383844806656366009436345282739355233189173218306161919526129729754197470014781652707273418742147110420469037231066507561591472341207845879933697146728359380678864666959936331451231068701753737712093047430981500071151034627230898979790011757516500971424698370331954423652283321500365067342268041500601152364476668918124159267909591201395416694294685863478238304411584706668626513655358921225094436120683906157118393255420616493893442488896741092719306843916146868084547639604901434759287564219174361461443960417392123122650933112252415275190072868413329961476487601760704148737912342611213453830259194687526592180381679062212705622769623637100670151401587169532761776975041301893987342416607735481538660333876548572917706587924337275484253777255894360018447476092800988639746452138566050267364914479955400527339994384768436462802524467054656921070004093063501345600348767938356694492674685654730530056001398633968990055407133973983587527533036604123600868507156525527252698204683587310443414645546335875410057761598813074159412868021310167238547836786969417137313544804741483703719070917578326782457494118535223131209974073982393101168112343960218267162298781256763880540286327754519426473418233461145225290045894498441181164259470975112332011347260769090070631623542240614142747857887719685202816478494903423945894753779936412844780263388991967072426672171077990273162620271070484329579179442990168953478886761039152933667357974892154390039507697094663591754532021915587475488299975122714071986877628812441635972535636281468494659253564524098365954278775064718525170550022937607545296642200044592219293144845022661126893844184489383464823374300066527495455622535289785330718278242012092366820625282817875827108806122622624596310916773435372609306441726566098352329201695334423550656720115301611336250327399696646966155766093654836278531385709570278059292715084372636604480648838742296145438090945177727470622373216123560124189919496356601389652642194455687039742179539105122763522770653304519144452951553897589232575862236176152718016205797308214579950349993945972141314613748933865677440747666220861903357224247360832337121738033769992264589527832229861397046600588263034637222067045873751773686366051909261272419403066122743309636273104357010249300471467156152230189630951546666518545893303982797337453260732029075604867767486336211186066146265981247169823335068793989639814186094002429316758165050445329376418801651732514414673350536849757867796706712271524958250136297358731355560645227719007602304838353576881198014405805844805810070954612419759569361492634236321066127894180027228372374636970586215368166012304187619332532062062480078729483189545756004088358832784182702158305314370215091125464397466123073337811473468607770063240625977140498946646728814389664040452933081853325747307344060846564116364509893074947306670393073650596982452681186934366700118115942407235886725154086366472660978938832941988348399664931557505173047216382267567119144790007867519525937872999368544552596377345965964176237076107622017658433451793506259988033137953316787960895596348279985189817661722619654180101725508392184963803289412496510820124391468411881564815737449934350414464691392970793164897899265629170273186229884577890004026277362600550901301742363490380348611771419752056633553108852372384987566042022868879578137897781290884812669945541969490166113173391249619669541156829834745274637548725727853682426976867145990800355787135785742104135570280622990496874146137698606528401338067216411895342306355955277032633581875094825473049459355693056158141763016178755344096624687254715745321171629884251084266192012194986007419276653973260272756898307411053262766936207408370084151511926280189779656874187032555023254462407440188010438831914572292468041151948648938536661341406026635795812641824728426030687571041954100766263985865244280847008430495067464805739286683662307973527344933975659869008003001720417686790578522375700660499762526313400150734610026825704587393984371900911949500398717995870283773953632192403674655043586905018433829499283246489288591221865480288683772708394866393383135585914445141265377036568528563622049963392194443324003793805262322087106972041328912500526708090307512693978336164956594362636155296079196185064398532261190790398890223481037167066732430502697142834235492829479706122276994250233475250697265898740822579136791996462647224404364519670086461954812663463958312024779204491377297448110639410304569651995645619364188549414538425069959732660602577914689192147840264945021423796029845626013461952754000042994581897789507953547384424596042811151730423218750523919693725518544264977118654388105395139347441740014470277432052202725557944908806547115483631695472113170081697234914984073047293788478811398643000696023699747666247395835212054265552608324158118043100956441414124833479533825505922660368871485814749546996036576051284100045125083736521710272583527482445045289006891380571251153595980126562332598635609524541618387667094914486694589433948499616574364317171149984997941568820305500148543902065495264240013813837907755132424807602513192757436465764683897698812166739288800297006479348257961393566207367444789835874029631072922315373659347731419535213917694782612390889961345641887432764795972850430001784541779331979666344930460925134488266157498071521899597856063266508598159835887641834231928167143830462449421793808233407241475333880215036650067346992258313433712793744802092800027601133130254594710245855330746671146788633933617441827313473155421190024519090806086113796546882843332047586369874023757804752497524061136600477180706706924890009274021936989925351414510990096494201356742891692622238681112229326987453425006262619228505719791895644632040552455360011446363913603032981387350301379168722336447088777797725711998821328338029537265295764146897703183515041060699430043779902258864411594958629228247877040196664364838010440938807224909879342144024862456084747250897379616200957524451897331693438378840594316442347376461345529079979224877632507570366999234343779503106381237605761641821786142103767650735975447671132031493115607557488873379320900152317148926023436247889110130206883093899213135786144860220687929894396030207014690434861958606551392145076001756586582813722319808285777624382152010243253792286390660232372469039288021252622900356711438073839362333673677947290194268331019706036968052643048656084682037679581661047678466970993990712431881828073290101157134824342934728012221153497814231880058228505471382736949323861536192211344039140281659870658372816911130187725544211694397993778627583686457916566909720352575792304558072761468594207697746985537533200048844954636959050165476431838409828311473167993030278922828919235449172544830877066724555248812440758097464906961852253660489796135436726899806731457007511256446744477310500468922884620563532681686877984945887844444440453711216191642667246274498002098543861652501894444933211799651485468606204083741957906697506564305276984592218438202834377436193953019714014493653910262207118046464728449617078352758841625429210388656865377957228331923904560394717731681671934568739672459781391036723775759625057466370365578968609551196953040499674994947808535920369839410673858145793678055053284943582026089902392796591973341709959755255352578870066823250704836050970629869756668835750758472925368528451764455386828404079018092065122110563347235074212551193358138811138021527731082930629237701413943583351292746075580573621536992204623626267736319547411808755803360856056404002835626581519880203001406268603163857826777285973888399791213904022453389817525397293079346868413237938030938093846336140738594157555322514583267663364412476080953666421584621705122267092079134303566134448012483552264876663682959738209078196348045402886036660990109004747468547602855186681495065350237404226594776926318333871423542449872314005626318818479431463085812061073428905290195237822691199554602141411440495540171632748294358856572064081935275621884325135797065200586046589646236129597369637048495551659379915594610632975760869439812095510651250586652762475969572221676354076107954033094942206899579281640284829329913492375574505161595327275529482606295021906216746077957293536330499536881466039180361087482468783635986436325704307408043189366638214762131587085135871081463492533294058608261991840079445597573234870605096169157106787274009725746708005140651134563633162768687924501573144469518094711864354921583850765786276301825468622095196388201751469832839103888117311770685535022899269220148718012970911815649031362472902304083721911752754835823213446067588123540517590965377493865527089441574922644084714234625922925336861111397577359175206552470589248797941074660884569426064176086136179258068906719801836964880553724223188548164129510709116444112931520108603890070743777495104617818611002243332414375625805394311063716536339047523129863147617226028357242894650294493921110341520036450331757155503267294365071461700086608377217786892989341349115371957045837754984021577156459616732715954820235378339846707202646138037202726389254632180511574866111676978907813381735062817092134071908963177259855027234120763184808577589091252108062370096808091501978139610137935995751055664007433672520362757004402615515525274480787720084536730013292379352685969882095343367055822218212472233642970762968497773235993449498148737719807445092352362083530957173121154349133886818450932566969583139452444969544419276262452556093482839441015449763271787383186111855570402372144833841055828126108013172640420840607562473531791046601781924564309306428236432559889908258670640699154195395555741595457015296656793862057421657354428711002044731292188158320203791619918517362005976291678822286456611890225897684296025328670311484102324329819256624703861912883405512582166576246070745258433607810771632484527539056647214712170715981771740701993486820981923155466758045242558359848686195797497054918420549660573152772739353222409128397045655129586417971175577716341215006711256924110586913470118975071929802401738445554375075034503723486658646340832446875220437348296489474551698448925382085748907448700530643030370729808569436981306794964827134980195555871617412218701222851659674074736702501513589575300843866219734341295093268332615255105151901729078936936779641834454220479577968749016318501515508356487999258077008103871111117273680005883046295543630398677602389056726865072775697820636736975533269917982252319604851277945275146790315186436697774428449854020731636272032609079013841461414594757887629709469850828527072228335843363563643762948918444087243901675943470520759270816576154662271812893447771319708387302558008321737405017758233472506332985644086375600238370921637111018798001096543148950713799191425998451701598161693791058226957503894194732998145360658971279790280764951150399407560188093612066687905487380169899866657356638593095523488413125857545446663707082997251301454560045528448834633890668207959945532269531862467401038612970624320192281139818848676272566683981059309717758826943725323071051384989090442248461434330776794620076698914684878784845747218718528028793751918451164429507660787720617073803266760439780048683796862900499267240057790446841947606416462845894886212573313293856329279406217885835459688922028343049785248585835210349366264486040894791924322862848821970196985745101048842673188768208617934816215430478822103983279484442668158220426859865432125531901926145521026147318798609351916343556362475970877231116452818672853558014202020751129324540670871483702195571237949923337537152299992161430520239627955836290400763186574637215445585683662919134132894458835132937294123493022586942272454046430622138554730120226597069904200907533006719171475589112234589200422597890868106645301107767646723996180939793981335991091115477030339170500983169820727299631309476035792839939245078300896609379807662347534729098142365499501555397852218634756485511769828256570965355731583049671576372681092771930826408584687435281729994236294822197929859585865051383272312109318672717431700026568685015546104499796734099734591809020763552731881688698953485123610308142075927375018936998761014193164729012098101129012310509072963421808488698619889550086083156461734285242480515630951205795794840207674815576753231030788925954716284032993383220996770090032611377901755321670783813446944375482830489986975264122422890954514301419666986860633711438557443116216036049386055449113922366782835767434218362723294009626831324672682553478049306518357497604164430278225894579833753912682813091377871526334463713146591514664705605891926386069983901223621219006097262439347360984999952212795431426588412161818160129495448665301327088406459296996022077541485423068047740335703949085356694116716107502521831471959021471596723915077620954171890951774503615123152123686242380558159043189880096905208763230273283773615597767221568207286750717959542019762319825278046897720091937812820755732391053095303515233534400789414915986620123247740561927764578886594991222443622826723656325277338116988854434825877929790890558108568076052967591286792977112823422675015205067926301202804062572099485207736875808071936530673914212247980463273472640197172601999283486906050923008120029406170596346126823808888691337544991581933430321123163557514681550395605196561388619164776048840610049463722425548832592893185612576052799336372636092426083585873803801567715241393107653375950124141829349594163066905409066642469026152901260408244384308114016698966347315988939393571749821649031032289162730778340574183614074712677211665011626804323100955093147861352703849022481115238095970113427620745331900896643751520060292597503321885648077796205196142360637148541709860220344726066321057868889554222342531383275685233914452801643126412506984156459504659270897386299761131108892670483109349146950111055244479329595725504208928913134996819320895977836859316383398858506174879745933186821667284623345833499724454590933228169838153349583567615317617518082150242264345765621428909029616509523365796374756580357738390399966286358020535212305756016885954580949964633110176570665567011304937058303805765180271874769846613442637067474242284085075546991217192954723488056893624014176359288701233600820000833256632277665748890662178720015909605193792584271695141169303435870703747742600486573558566109282385476245381739775951146961092787222537769210718220897607758843393172799451775181975350782317237865389253028953114761210175446367403876624718412874034593648150999015414595207726483801596430318131551675498189217787551266319131336063358185847596094031634828178628977146384553236380194209149268475644609858546370662727352869718757895394100416792166009920103235573539080657012826103119527820698874549124007940633485850032986793563882230234170581607400241284975069958015992124081504092440163026532280984846900103256613204597997898186000302938777620455806432225035156200338782946936396563281056938358190238456028135675860197218145558630474295938034441109058209645292771481085393959375099826808325138144437258656539404065896442067378039194098416515756279296523742403647424546525909523642323648261984578739447128332681035990116831985207617140044410298627205370438397691307552820358333001491847208363971634841230435250366237468231703203861291625761572889114209964460943555303179659939689285324238748977666172903725305596255171369397751977331896745147914955774623571689952490707624233733563767108945906595872528216931777799355153213409119214618865368665123781786219556726183372669460736214538731217836822097317809584889433742062383402220417690905277108984750269315169740405264105078235970296119884684452707507719241299805814860437558516541559266650325513103558430363962886861998057310876711047750433787634189165289262672263232231197035594143616511198832669737851016352642682006384814671805158866509221533603642569818705534663576159390471372795403664447369075514787541955566318056672033023961820577142299205295972600604771826083705662984820795978364312506284571663975255183641598759654968223706934625903877287078651689405966717104812356674085078943651714804297654060220762854964820852268740222319005942286253356928817154750183082141525878019870321472843489286113516333389508277207204066062368385593397377346440348202453669859309246190224143531419248087814674861651127594339171261168196400040086362777999273363965089067695138888155130758809462398812423219910848479510159114194937977075561741862269064682884969865534298680258410355238220884643929098362820020652697187018745152894484983174056079838308110589198149618385984111999182262859860772564682384442434637021645408968977151398087064080153305140122421489609689616171842586127450052819016540530228062803656354883069394172732910750093424427064708020941499619052388778499693320049401704715410727858034675574138295134709581505216691357655542400688522045264675455407809826694434442280694225049604180258166827520633803858453615705730323499018777335604010940441038753767782091217787223002806215633158200906716383149232762253420734751306347260341817291197146558028371188688046618478083870846925653096165812141437602592216024725952469146438821524136029531436633014029626529254216634558888689827183638908921169356625233428627886054165018738530883163974698297709141594995378583657004902382426813791820766976371792813233980251112614945770686949059245625446201023207365601326656896620541614196918891871104230220801217791328014569099107623310701590181726156825781234090161239955265690641339548929701684625560248436402500538243864229364053923463878221953629782826808270287670497164608547391196402399914309938294668729895385514507235605780612044550983652343190074822358497138402068006671100795310759875626367293027893195914345774399289562835441590674422121503047800376194639419204447632629069541828391781337989011742394204821553302186744681583692784512101309313616032322214594400732388319772794707340018863913203502358668586714823520908007736128412867144523382460207564788886021637619391745824916143706234360364013546802944169855195842225752822060701534179083410573587919760935029841799645780041798198423421686350643126960027751288589938300106085548212126801565317598920298729159053238476022079351925860908154457058692457276950832580973881556227125330266414176984048686053257172073816653689834237010134570141911741658406859304281195730054334914531572685616094042232745363821671314948836761600639839505824640094278152272952198043070691022137989709396987013678897850953282000709751288757989484970949522060961429521783233460417698719353120714218161631455673920032154973398782222590073520545579765845184681019287149111988877307197692609910287865010643131834028007852529435580406183920856892240538921911426303944165926326449796419375151391934386109657652926681639219881315430875582193447086190525628354567648222331507275163452151519585678887964657806071421556312180959641852481085564000814288031685766245347145247456925757839278409497528663915220481561029831945124793690458740483295736597602161209363287334942426721461888850448448143156995657648401917871787398468497665303165447775722989170688495893145411927575535913296557375949183410455462356640323601842805697242793883941444794342150001663419192481814435302651402002250579636799461513801084357488230553480805384509980556037230015091965133042985438947727849516595944968846223033033867014705072016672802318960400644988798175468407173899504736219092945313787550682730114057521664466340748261840285913028959636993470458297020632453049449636834925563078887591483748957816268103302413106040248818943108804902640942083577275078613516913349793114906604564826137452460813746325388489190184129237948472566349593294569845188563613616620413593981799108174854060086829372838137017240865472296243916250745714472203918088260161124647870869011348618736724764492144774730139206817757782085822650313355565102171831068596656666598697277264239754885913903836332357319146663600350674331192927318255540720390902696689764136974048394329486090678135343123803016763287680718030984276715600542215471105216325119877216904476600796284022522133036662711073841495736050767288145493717941383767223000081650571032249922025129073683020612225840418015011477719109706727825735226369265994558135830879011980696566742002757938223265712330179064876381060106564823647688621614009109242514442567499536688096784592780624972122612390560806944650319322354569857180131677843505109401976853325418737574171264059257265702602157426889715727081942332575784582988222806557201670846353854312375015194761491902548542059466581401557413421089878138339688520325607550805543622159694238782042319094148353091351759715719678845025765980677754139387812899055164102697359815149718235211644141789384803334031332464567181630615093001637987894573386602766250076695869666024097203532494553278345140900039205062888659550940731963306532152289621499305551316017571177731517257626741895562986465906973093741853983426000274755742703307172845363696554703366890816511659482741203009158485645553979978955675709524069845481381637550490327422970536177502372391624038726540432278225956473681412303894122756263738450253997483933029189009474997591296424389447816442385760574294023352237570961614953023735717355592426013681491636564272255071034224538777480656299444237289848463542091584987045321714662957285270499926863325000008626161620381704113329095444508958749926094119035243765681185840268793003541650160830406524146385233516490138232669826290076300812126055664653180697068934184633703221329783797362992905205442726648939609250694452685620216503046778717930991237215516739236345989249218102531656838317053398864701282420140287495397816124651914666452794760170504997092605372735500623233521359477626540354452589973998450795301059284287481108800527624129567731082434722864682741758203522156875896649847219483398691810482555203211915621527119612390576091565947181095160925919239452627123300307468699821019932583184293132623161215608905385292281925242916632947506081800593997227977656285628521600582878487800618088592557980722598509819473854478509456531260858101568783049294146289787779803974183614585937792090431367667813842542003615932212623317884031935416817077751314204206649690232578806557420104928806867696191861527979320525535042771641614904623394013779080023442680300757256032004917272782351359252307991283449398305320411644242991823384258453986070277033981061441561687538352216101199587532992713602060791828019503403790490666373645471247552869285356038817165833817775994067456072239290701078592711503688544601066435745901122273948817939030187683853285526378600920625140513470325399444330189139242161052081809661642204380552147433408034140091926778235698214065965722303037731989625270530447355251271592179219127780029266821102616139277164063233687181328682082411152495282984431078709941088056113833029843900455410976726087846921892143480670353747064714596202120927979277133512950171001871662000742191794478837435203760393004174924363034145790857665721747229011719638133924605839580303892532899602801628075423075171993488444657863126232909862599178512523180345751199118054571264698403221552527303087251263612505915913039707675127152487483043962157930623506890836548723271555251442972838325504055875207887039607587907854145932509414788397324007229129334292981867192871276255148475800883324922251190670615271944595804369783077082632128334774804641360879574387424843258545067691999398129679752002126511332641453538274545319167165089183722169960323435548270510926240448222378753504262941396482396645293222848034737183661189831540740616298803656934408707297110103087760003081896349829016993717300189823197937439441583293366106818298843058158427483202576826988271222699959106508500471428540694036869421475749122416036983512226474501280628054338392258571033747260770819763602662888622486549093481503859139247629674677388745454645214498931541716277092932641662902455292134398685921249187349206626361489563611254993461918835037044211893196444607493442858018930354947356548226326701295017877176626310117805263481819696098331721508411479566841810675159879973623305816988160050950271165859449304318920852238687248768558810411800593273047653229828994921773525978731678007741438350702557945201116881154300515775802916527195293467429801382515398262560687304868910325172511699194929556868884750902480356348382767321124312606154334726968519461703848204576210650038502196277034236600299209368696690369497617156043968943474385208173763898174972758667624756943929679845480144152933251861062995770928976116761773148806157944397881164418779708210404685253269204832110970708036828945791488700421885914147389041242627323776330496774676280368853296896181629884101207620873802950000635332290288450608414379545142601139032546575830675709109827230327602066929976556050316706671733594870819590158218462123508602584441577283487229753412885233139104649252008809175012593708653385038546923116795619935403120748749588051982529202938716625038322414999537842000414970414521910602938537394784971745096317824492431973044944280356041006243552230981771719521812628795200104584917528512329965211995451314904907758492500645379364694280730790751991218691738016872915934257008748247133012159112107610920987631425593729931962925843981970989346092726025649839306039638671962886146229253091986309420837197160903813619221957702170660249398220725663197395623649608339242805343496091303049855376234453106975961532033361446090712457310194951046892995513269975948503623222597448133431533037829861221742619664160318578196120509116611504224847073945134388870455356348525976321476297097833499520570526232651615604203242911409494764390999161296653035176736354736679045201904379152748755569183687350664572077055027582348493202350141837780479174514819396948710823473527415322099611448796994940219182812360369235072187206516669414272498888342138665865278075918027420371169760492549451027838236804209474306521203767530836167247100809296355766114368442827455790292905879146146115090566422908916230708682996747849282683776586514367489583701152791886505422942544045059002219257753513786112393042625706539310814344151105364263632414585675991162106259841505088411676619519857670925241605876240826045247371706391923184989478950518650151601464777499989837611551356200787871674205387642036079458905266484698084279482228723413888060732183142761512606690957870457824733520891868459740534756540385254577832630276117418863899931653244772776520712643425892730613017934163971818721261378457612900499905989076223370331223870329650813655386576472734734261490332377594611451608813671645196348804878614996910653452932190123041620952278078263826261799122653747291501845508433884367338431412356228625860085995657517348883971765522902447835445394191314624088697182070660404531005925079901742594119713477272965834764015856867269317769741852736458880584341357584749076261355944376801413662122176196879206769516930357962873365130759124310391544900865812882229896121502616417717800000278020870586333042783019642441008321960638432659487638129607840473900513764473588077445820007100323352138839889519970553394544798708398729054642399710748951797460573952638999495045160052879841233342810537347303376305768112808242377762601890960187686746951747677304598218349102686162314924553091703163102980517995783583445397825684459878969624247834940454593578712569637560675313000292853641293755384411091912061209395677235040118961110610701118585968104988187107128949992985663953779899428200156156146169636024952307480502881465827917683867263114294817848236544085106717934659905880336751670226362532669730585552355406189888474728328074958545180386828696613229757876940264811732491493943878326945128589058916941697906896570158583055064008154274806037380283926603728380964617238849850329258008590356121619279569120023614653767479308617373243026136168114033297170890629922160407635309905273578056302982162480283451508332639654581639763346030582649044272454430161901471103563912611988534894027124800876240484802761424222698568171558923249399509766435585037104223636407240123186306929544663549983578874843189040278370338494256600235727355318448819055237587793615423689004655832724175049332836721204270448707210791584798903706706115357380862232283868217107116892651481199107491634630379445897914970541160257287857600396114873924894288378344706968268426729256902191533286807271929303934482167493863745827459023681741839091123496398595345598226192855055606553744441251282005054907027223135552775875805844755500863565785208965678103434137470859960234598754311272021488506603756929616129534561090298328594475739788920758156408114239913292362923257503052985823201403388071818705409429399135863922693221702262714972601251539944539319828887847816345443153339861768375487110170139508680211063680326374682145072428366294076695341104521938767651804847153479898755598104919302712856781569615896449776131990969619900376027305802820710350394961886977023728076603913279092965283392026582484496298217194436153170828452553719278996494117717544586187315453971995913262001948052998543661660193844841061847066670479479701264261081870372166300452959112772740135749823097724504266562731429795472324217648121159116152900424982775219315771837565881574388679612249692228547377097014653592281384063603680000719395931244196896473850697995778571742593897814126228407337137647154621646194312539169225408256029082455356402046969135362881801791720606659352071294167775952012913861708191512631772205637553089944829483301384649218741771436472520306900402385461032823660859219676635426050371483994486280660536331173267550812928420931559914156892588430615717554570122187938286744663774782712709502151876517333652384890865903425977225753917689463775977100834737695448195441628891265288921132529275442484839464122711508065871218204056158663463639986242084609857079348529615651512254176860069213762482410201588078503789175073423606681394510734150288138089634174141854344679161914556401050036232942105618734693150208311120976420756245188445726729067938919009323431845363131914847658880733999394699392033462999902703295992055378481519405306411232929573412514450326394096463767616332747383258791307480286078527030459762155567225101008457268252715787681028391465315961833151948821819168054585177496093124185364611002757214981914295826378660807939819493816930361910526632953219107656012545351960482722438930211818298357267863193701294646151994885698418538274915767875655229650898226611943607554714673189085045137164730567113803446288005072995590497895090798341801462007489903808615696436981418032222685670542067942578311906534392391039148303308674024211129082589572098027805501485387920226982274085346094819287304410268674794983175139771982455884861185212770894199569454219789540214379194651129081542679497525855781625608068352360516377966247094833702600380363237768836967277969827660544381629940012687129986256922426238173363751978917286448769701841658734361892151205135413117950100605487006269556161557225356533831801692951686012820296097467469379957982609000746222175657430190778833594823032709939577402883014313767787556435619246952891367345838539339663910090677755974711523430606390010148640616694047559748629966782250878926317711856642642952889302457703474903502131894448622231331927686018294702581280885569910810662936851047807955572887339810977302090687033426032662731068480900136806600106212223059010335222466980342751431954837645151581603874900506012998939670577604456142029946901054382151243443830653617113932641622200512740095136163367830842727809217781888241008824790829462944336393249920808119651097390880178261717220965035204392287093934704222467518351408351688971908827333988932996437132874469711780251016174446174213445599721805157131502890077929483514854207965250625602445247449620245565166136036587949669535368526034588315173543168331208748160818095348815230308871109143035473429398193674485430076329172121596300052902579463917338400882122073209834768929186654269606531173713201751056532477623831832819368466602500215415263987669873754327849404126180570157186321168740824517041540082789962891586140198659060650694154175473553246851860697004657580725668015376199981996228078125204052221865814079153327528026810419004444670482281948914054978425460765218870048681717154117714522174195634106588679168344826924244047104868037409430465868367395773659900966824858599192738732624158897293945196600569992720532860324193483270628234654304967386039420352363557797514337255076759682806898689629117490071569052637584664155750752531404734230270616881737418942603817838369755460626567261458398855226471800284785789145095375344570037731932028066032716974021383468311201762644330320790016805481570670897874511211192295049699537704821628802598341102134614496584128800151827736823761488216469567480895847689063355983923296980555709911668560642978056396419390919260417269793475325584992098695617026189375171241077430332117970051002564238935379870714967357129852422580011772445991198784746962558086034754032005962275221993387508172010354472235284769651842286976300659895015931094651322067362960637490015531543481909399160021607697053642393371600556824236078792159978311748862081256118093413143504805680065803292697616027120679424173132395262472803053821731578418717995024026095329720777290248227644729825179548746971158072713595962762664138791488757573168002094704225173894124583636832286576293754034202949830378798651351642913639300186266937262773616659897943704649574735233839500187983104044622410217452740139335933564747002112417872026734802059430207361396747636233534337424269136287327102887623294714973735348044881517300005453801275553963242137637462492184063402725553572774611769123594596793195213615460483538629992536783671967669713091617576605411310604613284782015677169831141751688505880402207570432254998572239264031815212761455342270978506117269381661806415307385253126193586041765343639623039974240201098785308738489730155577864902364821948864426468663858155703415185682573320232933775801022234986200396715489441057772213481667648577472331339682291838425589619531794582340577348070219467970886780855959492204262127239710951411378056141755403226700633382869977576708353469693947884294279594171198413050699571116024929870258964726261329321311075177335707480188817229664415419209598059323621029698799799270000878028756477229316530861540609766683262890057693407132432924620335744259475892345343309384607984127250311770053746255357007192781150788057941573734416083851959058525105877154375151733987703583448316942349594962854077404344719629655664098120481146970315517221141761379524807187658310677439445619433052008478194740549171137477388538906155674274298707876871540880397516015601933244312278491079177357682307756253676495517459893792560993646163613861775031958038186652043621191371746594445415735519120039987256301126306435051734001219699858888293015915219307318231702727525646386945054496618500203687556782749773093862433566474316095004958860186447750961976527141149750103500568143754205075097646113371910734366385616386445330618483137976263439860014566936956416302043405445316962817241753406382393203403362132926957160782986289158145842773371265440099732704048512307130054766863127015907502900287162408339035709339201091433793758394080953294720336331929358588502286783068525817682367930394328100494968095226879131854177983424119617549148813753297020980798635566473751922867361183058960585679427384511753978018709927404490440438455023928170629735769184422038095167314777921461813157967501700685773880747529881794189489902698425134001465976107646437110490272464179153199227416162305663273949804797974025456736226408212601159292963659960279429823174413839965880543368001309587252603260926593616535012505640802549386311371681003571788952660260278211633279521989880236842440494428796320034197012096500355104242746553489479623535524560292311086859201976071888402561439603772132138548582444910768747451193590353175126204537001312440155837161421574718486724602894258283909456614928364287149627390436141422350438635145155245718189764966550378821309814563571184993697268502679087196451731230026492155778045746557367268216631411410819252306468571041224807087649497470135275156799848381940390674087792495235024526008451288589688719944800682013357018049131284973598709278816921528240694130155056620268921652460304456807080138329144815048697176314148566975263550166603159122279803562658155750155153449149166159659450040724970763132242351559474761146839604640025436339602102976982946501493186968808603368684975575941038449083334057639778746409273695293415075048727949152894195916621812075158976176981716755578842881929668132808625080789651129206635410573519095252151511925955271126760976500706742092547978045228863951117078357305616271597933926133147919746402173665628938185271215130471346099651894654508397972825389871592664932524209434510133273170313600478620512084999545178638949049184448087749692304553029437559976940445174963137208173498314206203269857254021306038676207744586676783889730366485651542807427807554140648093016052833317530123467834464560596606229200064169462140706730649823632241179212533461609526951021509552897217892523655340441415662689841020189425595692728373156409862067794373860557582673164929700646165458510343724340941816541607863462740039087622276823823776174542815582034790602069552567596185980937287889776323732261996146501152020823756861413037345085653254221108189514102927940833973449391042391225564693291682625755250874820836199299313653442657942706913161486825067173293316215338357452619479678667666257565774245945845198447063228455216542124542570007986692110953154321269387284714222167220152136487161572250807530759064974010858109496841099757372971264316157002400298904853507203607345613040155071003593792014779682248693839253304048075091530158138423993481591670947078950694391069253004546304427697128869409377255752242781692655224003115445509929293647877044080134285043623904739225768058951834488513992695739153469546160660098894517600978005667729867671204000533127005721053416177590983302360302796838108682641718355257997150221823175881210928494239173602837710166682699764758593195267528454179474738239353711593185099675102607431819881263765020959289876340712926320963495902939141858726741854035825779730031122501378568764842401839679996875974331333902337564271346650865865241133667292125171611054424075296274843694016143722377261996161605433222101980027611254140630536586906860129291714675773339117467196403607835394377969248292624511586453163804872141393950359072818815804235268335144410109863927429877119878964628018314401395646957108194056833400035354545776747448522021374800316148576788850535678786805190436544960141548575986888950019862859719311478166027681546749370789049780019128127327421041655024625653375367410642673705532927779249099354230872783034980323043497409547519090919046291204252090387213709065188350001382391910209355684748663590750430078437355141334238443425030075907136686502589363925815753843338964715669205760905859652789871024780503480784836736021600086774474521639114698470912323217151721127637212663439022446076329780318901950862875078739970828208274285596332825999067152723005475119582505770214276007631711752090709710457517036259691688102250173716795605223721356237215373872218623378033764501644288905044381190627910526638129864850940325389661324827549802414720354629533417196126584609644337493779433827960672356386740325521045629510097319177095893835708040855226784916577661673506011733375090573190967431349505345742210684813582694513459172474095878178796402726071589519651937952789953369998084987789795246191120145592259669568622661696102198465962513241225382151827355685233425966416559240458803937604711369189998141224087273812221890670323482982184834980242397817695884954197003047852420402760206930133267563131698934869422527052179420896361886577956514863541609491918321137959356776142200264970659445624271667747420106028268284632843118495595948385259965009897227214179527330096490375251807235895294340356111222596578664000813673933741693143644532766348211730466583622312860330614952407006447250634319293702791146179247156702768698035455181163211140118248367682869771551494038501804331958198353076141602751800014567443214395209742647660697834144038937369618599924229438393980106204968887821635633282797119117947930375874016605317522499345599157606881922157773770239114799562175413782005160230563260389438495952781932716337927711180140707544703128767326600058508751172972938335409660250302520572473519037447362966534590998697461949213287416508131676782411856141335947077079495693135350575443330390066835853589557179057058352025055017262960512491256992346514704632258381282044558618932580665777400814990413590167850547345172757406718983879658372862172844762515801935276510562664196022313276235352114014614506029627151733413950768685904176839958748600723091513756558954352871899113425012022215173757905044011049141018538954934494601636067452889597417143997878350400738849376003481414174755572842534909536078214030591033724560074122721695714748702969516948335056952210155727454792406552424406622177614478349661969686179181454393589675334623666661818946499945315332280284309940483230154778917582348199388671010244102007636372199816720218918005746626040044278959773078920213374434433508768996112445341320308922143310315537515163121868552080515946593410071829646377545721052260056360593040485902472990680116283791650606768705364521343959738247991303709584215422078691466003447465096191674053932919241492624439252574388487231775083048260428912962965901048831359658964105015958170775891188693059767559409572896377013035984243418757247312226948817267541883522552681476382357159080981982743256685992091924020043532337452142474430132690242114253953711019517611185476181296483693408692417463117370530456679999496313931003396180892128519959446749591938202297040872409202827589462651642660883980981847092175825859561349322090357385061251484172064133889810408710401944382824961998584621097993676487007719481429384272652951951764465327239191847572005774064151713980591853636134811098348122789954128557838323228577998654362453054465926810971026181976354189183214814752407737422773810357118059735652457317237401012551804872053465065171703293373638607514225821584875004304630359078235358340604985712503565982653395177013525548665466313436408199016564850280945666360441193904680283299763311448791424746334753367703613924252333465908924417437051847823140283860741059377599386022867209689235026582583527694430418670706791373357330352219547292058141562140493735490153280356500641167476984760018942242706703361979697889662513318539829293104968497375889620295519691391738121041686683793371494744029995657035434679289994982495952395584546258285191028408381234345386001327908835585830563156963554246779463297890508634213158704526767962427101948315630801628433455931392921707128657456322297075592191749670149535511446962056343729224603070347465335581217377023894720658277501721368489880435583338544487222148845590935080729819175420681835737540865941407175134411241501803364509133271464999377183372318210528518839909460240674172241909972385952203458198523721247401442284347184070561077414977429781656739860888778087833496233663032246008279776998146190581775546937113651218651887926455747935245200896754008855534321470721149325519351097713512366655253603534028499717032471960823337643479138835150420297055484618043682944892721246973712021584354407286910779203384902283201083113983658075929051756251285945203071055082100006538822863804277369507722643311504959652307596082707947024723487757744905594366293357758728194786865680124115393333481181657581444727012689759162544771114247847444163895302144779203891029526095836461676084804962348092508523314659023343701688310077198673886296254720662083163950602457400450410961483351979515496700298948082955387098546601288719032316358059984373546417383429945049922587681326650504889173697507176097918407014440994638900388421251812317616517967088646003007676093221458423702390793128665267511817652358355072738675522279031960795802140107301262079852822280930578670070486371307088500526365125286752107062972326328109704263313853503729068319489822356853170378042430398095430877239509781776686867041394481626094911337697652628637697038136216686426181284687453560655134961271183747336462592500066766859287417526002484696026632412959560544679322136755902753407102306644349450923406729302487318364461627280199165507897741542638060515804421587252049125373515315992736851409030475333746650994680637748561445676227356873585883357438635730637790857931644715677142927613341208433292495453346570852572378721770777944128346553216816374103389107691431076844807723226415369555672089907531839920474744728380226492580561980342825498109540293537940140059304925239160942590474607665841185737440248730936931788920251644977722213479108525379721458075874947747273828405307931190266521029028496186986177874906137013483536960091863064585979697767287866157139734326278064015378624668283535189567533708887212177513611606513264848410228779032289573373792415954763316623718400211595460848814259283210013493212089849013860919993177196692110332235017706412862293255779160270044061564945992429736817037681971424505972306797792354152159095012744571846903912206602826519804946420265856687382795502232572930379411848181192359422964654512717067096481777454795049864285281026540128164772299410177954978058588533547281496654316527329577661395208403372482561664640035340030543234656665969816758686771461018211735976382965544572772980500007876853845251094479125038962661715355559530623028183910501811686233625982762596714371733880043687795835714366207867139445430606388528282188503314678911984987677402295360616088955477232459518489069786436796199229863891131308942166093514765161022133277203524625271991252206874174113267928782561434065923599671014187888170179861429275758367337884085960707022400648724776454480280784277812514106391457175075227235951648241498175091383040544127378150114260209122614586512763767206870652761757866045845302453034203859914508253673564841599960832932332274363059229619797648771889461738698751572373352949112266418687387207629081990761100245786221628493342751326722214541129100409413432953199052791254237417062535064904681878652812168257518996082532686165761166024282821494949068018403435113145014037270831823460963438309695164147327834118202614436973136524415230002832809221298016247098635981257650772539456658243703717892307168071125186456966938718693727843525936456310478860258785608401675178440343326911420812903135538632257798351045379628826298595143925186466814993914498301748138339334461461500977932843051557670036472367342286464406524959922146989534954417081301473457620124423954358686731336604353751142040936254323930005296926431541028430964158833351767914313622705611432936941815674931535824642468532295499423462182360059100275303541212206366220018603256502357744543159603724622224785216714109866797592835261369992218968361296408065668665837264980224825118278605194858523993085778169537889052978195400397231818160286011048098050672592057736200937094048224863370915382267056123644338522788115821514322740774915181631314013827942991157130807353583276777013132111756337238166387757997545714929336202650978925322823450000960926179699171085543831770591494661356931145955548533397714568335420487487397436908143973418849432384760608293056029279215693768993177398950579492917588469649301414957709608120604484303153389498801386703181638660363812512212465686232849087529645824137624423804702374670995207012567701925705612379866600034709120072615126369407963511434896859939715425834337321250953812179707999104537470418875699304763502821045649415864509679936763653456323927266807048000105911824068433157282230115056893656718010992756936664980627300638542554249864817868911331163071020747173272598115258684181277463833590373750119445287460278446906155481708160149945525457443706717608881525821577928387054315066292377515981915341224828631205358601741095857761443397716479138296763480716063097597199939827984024796542444315131193260285150797025429447329397310948508518385719843550477264607409265546149194713143924477229866431740163375861477450416137360158588018574565978683071217146454784382587554605092143555839912239520841366089935357679057706351424297430045814542746344079467113160425811282378316528649745378274754919201423174609712810317711691141143732246155429458958217225830327291887227192760964535592001436402373296862788291263550132744995661443382697513918520993218065245642189135143191002881767135846034222158182468598832594839923092991389823763716883058820310602572398483986478787393122674470818811429075116110906158537940637827618470375801575105311233068972880512771138185432078424618731433774086646172552743834821180651261343636571964403927080828272996914788914891371172543088477206408361443468136546333493136409842782493211588838853331396594095876475277731189803970826647188309972968907683332346763463245291154479929762895943607847632546020955540532692720835302382360884823559643809285628178105391437441107934402339967765842671446479903145219542729366740363611375283991094334448096827184862614534972044157354638407623251675817105236619651978796948675274416474196667849446299351066890500898592348885563957379896240282970127791553414351689602695592892640349163114065596940924962119393816543784326113732131384135637266342142894060080191011972913713362472192586788766659664317052185625361678331759661413394108060315025915378106055625860506963152564482994342107258341781730851862400013286257345644468476534458287453426328679977060849481319949971835799656272737072486543826870497147644967966556760135963047686675647042698213240473861027306233133069528800431062812577377538662391278086010248507683357241714454502086982934967160682956596243208572774649008472654278235681011412478561987806351344411010264011015115091617075827623316082596235368349112064766128732665389724535302135377899074904697956645078943343673724275507593672130998761326144634807687805053874132509101376226698452591929008946247412014679898538974689949982981543890820838171559547325157548004700082176328318568776709590553359076415018726124190573734244934879608278392127962516869663293566147392120713441477340127015595467155344311770590755159355423592159309080071400302432127422994832831192843783493523189793751240571358002187037723744921001828336252013285842572719917630244898191337845797869154208829463630333259499517622435723608681075548209652948469221267200858961083119217614692612930708374649882008954833022223978284419361674132893496077326953498293720017504533036584979517118495447486213878666433844462095974817593234870737026005058952620285840331619677680542656400241146256979515911298268524971668535541817533904092355534040113796644588852507596080539702696668388875705270581792385101722140448448343854057990428814204091750723706491360710391428289244345058181285339404153718091486108226341980908627760998048962434850264911801267656639048363739521781056467837111799939657438712858725340518536630537049574660564889496832855881348173929775008150069411701147443280580414174488212532226069192853121582447233682108158215083741503536917414476230840838502984915772925585004214012329858793664762495585414454436341701972150144291337091400932527912421563265708886760276654924153460719778448388250367049290839972211811223112997886361731455474898550459483274180366399183484558360316848169861457711889474442680596960563082897662740078439917441688797159399414707333285539126556847122370060342643698019129726208561952066021294203340448925408026196347273634902035481743107983851262600784903687721224170131107389488234643313710335611959432806825670817445029725184803783102591850639410465117638290953871557993463194559169979374347786986876580029905520081781088153669475659060189521868596551266007570530569537330040435201490488859864004059246912895028269839999896374258324950507004892901108296559762884163514461539612788640903262492294266817449409422562518619369845624135765222115520210017227488400999865804316174561699447454701967588496937250063058101622377613389030955135492454976898662903505304817374001463100088998063749037908078783145070073694163678427840724405167363760989605139684449267913155335957334171972046795023572345578655182644917558298560212433655237244015783366676875554879055976329129430477338996605302784069018103222450740727366020413246302309939156985936417926390329449001555773966741784568273199767484773411439952066706975095816461286208213632767080327740844028879638092211897989711683145522430839151000040795759709739889619370648452752681444963007747258315138258463499285241077475588666007621879507984673029640206396446763676670798427542507373078444389768462726338991680583307630870011117612988729907233612873687034837411663659745840868827101738374077766536137049210959918050363037203675133119627683920612638214077402352436867602045062059300113850334293682622585091863028287315841083282793932794359031854011141116116220236575703226153879421719792821484358797291068252258956644450783618643294618073488382772611232931833909519261958419461089359640066503065100646851457537171162107866335705389603909375161511767816804111428262540421085764094653356874421199550029302872873311057680005905307302012684721696250968129726950998971428600306729442912059954637645158145724658565259932927677123238225228421332458928010082559738661738830953734254873418760072260434987718703582238092475511670904971201642684936657765543323901747541958813216722566864466187653397714998293796885480979313128006708731912531357496078409134985309318626863925203768598012865646310048123702760499858044229361749687353909625420212376225795796743256633852182514856337954970953021885670084294095871611381945040119982610516989788301097844632476485823367000807318103472256870181968568242072525842940278935096176917952540594659095189313454640346323391107644301141914193754879157312629707551097802384188102295227416321462553141571219006614630256447226477491594361152395981422192329447455317263341489717914225253579048363707207589931483081475175167790276384500648261812874281990579037414495524271467047950214487072694650657172525934800201104175950844582543165858534917256467440507193328810984806019670974419871616241326726216860766035692591653665676095824802625054997484156998848524224296242913365002106130058572228935264577550201602854953726044515193565553398836961866800388907735423245727245115403162393807812931059887927785497799764452475696745581004716370824081531502497383929643069045331183863531665682765470632082201465345645715343435136706810037388762678627062280046381227695373820338791953887781560665225952170554342273865634130715644596499698751717187903183296712808517589643622291325769407142395181181671374088307514266306342044608877125430844291298609588764362207249700689307680560232158195948707612189264513289971706118779095285795980605111123296902320706567860525797144152722627425539922741417669324725800148855158163199393860231212261701627023190836851343971994942258007981621967112934449103506320138028939152739735305679152092361175075542823285743887743836025814408567958588530302636316453839652902766679589696205843648653276843603043065647421241428385097116491103631192709553901947449954185855481012853366502757632188888087500546829079246101627735370031565421992902902400030911606886623680090506605570470569490234662332060237171247474914415437055376631268228496397107987386051616057718867818952303491404977202010916505107570841693584565027961836329890502695329386662969340094073279083524283265603046366083349462745467251635441602745323776300460527575734294502149271181557241475311385892984567012799708635972288493907422434514230869497029192476363702114197744673012715333375616441451385612388241573307900938907294170068224368131631318324497894293239116372617889611300520121226293321883071712840996394901181073582796261327594007062922929020281722606378032530483677156928727645485758508742630099550692861117038560632453277258635284041699637746162723673794324830257639827598951722188100642373031969472167565753284581601478906559593522035456924874290045038075502727185560675138807119508549290105185409957563869167922351296055374332862529942661418569795162846000173110432032247191323115956182226518186203402765511400999937637546363253058587162732947439124674836430332093962989560473362841018001931449609045797742174619703434183440671163863150045697453862214903452621432921986859420856087861453231399071535744636429787047560765417039947742016238860476483497054808556466210638354805848941161497868143163338535594277616403820975140454610109716505461515260652849758653988023635989635261856758315817334833823193141417379193386377647228157533663337553503982493203446728515389327299593147964270479375875555925859453501331933732806129095943588608961935158603099327505416234007745746735848566194982944349904805649728750967298177041686054946172749017231675479148116860526736314737191049613049687978560767065709521558775842718652810690121160396572008655211179799043682042959537497992566226733885383882229675396392042832069180675769763266230838213720717075338274334184431539042271521067853831315002772887231177679244821966594621468181977798460337807119936750416503294030714315819231181054977533606411203083286018604221216340663512678281833111366418724385263887008764545636056355951918129921408131145812056355098479470858750421356523643193728319398850940318028833448983700835731581021707595374647672614514325135189018112783938643639522051406995130032155197399516996346678217046469822137645311838373554191650739851543199212968552032873147641549885207178566544831068339706299558399931476771257758963634560606786933161019521514947792597843020856993222133440429155183805917942701418796080736618606341823671453810015453258007394849744270256599415915588609441820285079786006841149761696496339524203189547012241475335127169702390899009932809430607540763644327488192126899283240335391307740529898934276488245945270448025387443355655777673548337527882763876843063334000930021785041122087788924522174259423988007769718288015129955593884852323662196422267886478045354090117478435337530462527987097905322649478421158758348713020889473974300852150520497586708370449689623939091015136796061198575113985838260624802465985068302569360672194357383967772286451948560238905658440905977661107061145782826622997873605493397120229448038038761576414067179794918950529129784439983027068455550436584703421645090271315605908443928276923241683210159420585321109283699510924041059542583600959351085206033765562067314476870721303575543201374353296828005253529648645194343115447102246011683201214118259390922662010371193850361472741334016758981301881161085817525520161161367599118819633431490003676613786377383464192774154211785557966904880091321121850839528989132326352737405566503362958290512744806621590226445351119743414260607054545022563744866487558884739885990452418928764004667568449442777568755862394298205380996336791821587750308381258368601378946953983790226841892488956290896147077640147665131596454842028416745057807839812361960710726328461958812380064695451967020570512584605958502930369516142000003874243082497709867028918624567894476899372532543605929557935098869018832385092988633078190677327380583714905597734674983422354956741668353153078754919416846871290647549923915011213336188404669765538132936093950744389275699652293994390005809403777350067881136706350297033068858417950424780555354996317190193484300948914821923590837439478892547805548251511283529227854733457398548587114387319738403229590962533834510810481506862799789423241634882670081180857196692745501448103878308870698153754480402380919636448848153766446564582367218804560796503295337300547998100194253891614182102190727927104043679901835722010775329317908254603992683673508890945285790727736545206169845049716678931915881568074594342043927066542035431258864729559280146092708407176977889194325233332232734436832241402806886767661055793393433402135143304950335897491058243566995513703698496713065836916716926557854337149330710070325002506866023943442537011316512820596598514247841888992303261265811346293497785158854778541767305034545121002539192794569893472879769637506430099258005222446644136446654999804041139470057217658635514042829869834309607173932069768964021713954566195278030384418088513842664494331442897876176906909362645880197409801434100946705665519792700391399919156497086647284330637947165357099695569686302849647154651845036631235247660255401826194767240399351784333565299392256761620986882008085331258136224449836432367318665610053398759753599942170714497492443712135695054939600281081953187041942269748146999013093389816237110276559615454860616874120723021310334097260002988627380905393132225103157200114884317477782920838638239075585360985915743366656566337992875065950866825532509930074290660195548149360924648689903408853716965275465557417859212217298270620170709381194454228608063474958782544594375034025611840187450451769277922557467234032341101392702615172275762342190484857628604091520720880672209955108100581888284909513565366321673090329310034739010565873037251985478484769779218614923158807390204753855503863989222539372938927225461922582275303082486309301652224910196931172044157723724994894804125775154656957233305257092629840564181949522651239387998328566065983999300981980645796837191668041823637896793341445875736002834382353543942297196355949641857919844703670637688813708819478932498373815196936083256649733456164806430319640532580447991530779674991041653371751151614152865214365016962204416859811542389656117186237488751751654899778949551780990703051824832136666133155441560881724337487242932803288760414729348068729177783735413565155634129543826131157491206213729056506603672415684630447411292560123010585385727956778414378439418119363222740266877205806409337002292353369752907205721671414103997120991986544441747118507080660003947438132392831485904406478936904699557903937314809947713064914488617137915622747701853994044511828375750812111886990632025721307308046877596423014305398954368376507789115611700916160620427800937267491466116115652835229932817911920419826388993259761156740561056786768196589841757763542323773657391666687171808281726277932573910332482291859093808040858033479126349143946876269026551725777211486374723457864857896586256892343575896301196368672772202786463632681326343213681719056234931912733505887571413583117513310508221871462383858884358340512158105657407112059293038338218093673563272730448153908024214633819031024573932687401959329226825467410600423740341689174295788021459658055557082378178830343477093900860303811222267727997279248551743310111016792686506356521772533952059460163801718109944541014498567587939930531760777649375507111439798987391508708450835714171838370122418263733425668510434131914902356639840714484043041776963925480843042836087261965077039972728874086325426630301264934240779917446487845561914603476994068443979212039415762281739437497384570448586140931997743176015695305422752559711908414246038221244098817794105788204385414230616999535423293677645528823137913573514685896391766767648219360965742814287899020371099463718809821464773507958001297873948901892263301630611597800978304180697324253654347468247523817402002449759805775952395650264885178291952665044673741516991775092122338126417025854002220750531262425250431833168020903007142275513696345798293316482602768098519529134066896527473131724879677949335079577925882872172282642886224378438432807129139408273405464368727739957881875333961623155253095788146903269159576677254270277589134233148793672782368307583305851549037114958445113118179654844839287845735560109278754714707139735477667078078602848397706099214948657527507969678960064524604626269341897979594920220485168335130305546375656111295793327860081269345293269397133904388839750781530061290926256534936794988446086367827696171469199273268128164797133435623278058435448300861752568306113756711881119056190333631703004549550312779790216416766787415626599943204931294433926113022241897873249106173775339287715433113516747455406829644765973302776416827553440578064221698937888307916508894499220264757534781662763673031030127667923253614628598061942989947506872091050025392454872182140373176436860494521128768433776689320005356358899179753669465817981846140135223254714438586438431634997936162761622818554251690089618596718430969410288877286746206206406133234561111095399529825166479997996498390103882975579430865863580024699349323974586904123763937368943489619663909153251444668426233182345636489310146594499125319488899963530694743809744680362340189427739122373613487248229728800926350447072079990015617721366027906483273326694451441399019226626628769073559943666932440981181442095650184195961636262031535255198076101071827055974921881782397172498440085275693778559652258749789478373085024697875930241044318214931299556892543929907419707107117158369056087886814741784231208001490844145681393910050852864280481865979580656698444008679095205254685510740010996858264092041229209523293503855096071464987160234496138446379649328242437046247147123221643972585672921599616192360592046805034003272897287381214491780063436341096476670892485502362041677222706635165241846219490068836337535701010106215299136972336976664954395346498583989505231471921247103871037376249791420297112451855936724707236455826707623714887068432054502383350695027902927695785210055134741222868302056472951498732007416729158554526632635467949458458162220013459303895749294656948563451058929853463556046799228528930654884262301117841023653696634456461960865276076952854319351184061222635832154749912171977164696926354567587059058878926436694211643757001107050001695330581698089617932977965709306782661115753011812665441443628133876189438700994468520721194934422527555684673501788254432856190011084010510937833600423107584461569314497380491704384952702712113338428403000344909535152052988191104958786750064476440523053093032162186535151937677079890252731489200499920278382508110716686438394679381055359200864561951935745660128664968722855456732293965614993709421473458974377228120029672874430462507060625744956977459303487814137166783819629306692004699377519076330391939440683938027461206425346759957273553087616725666601122858182110121477467563982335472549219882308462916582121649555704589072755095609544003373717354350910722786838018722208741821582685120224349056386911503090020960541527390270496794378735988578220330520916229113965373875267417893736197356149959416930250082005485337805619579195352274916426539822357440882262843541046276538280639072660189700181466625215154539205269896875056286183045684562704198107343618058338883041972362111006850524766663890468368047939684636136228409593840997720838215882454888986246995193746958877152210184878208187059100564087447866046539879244667155471045181628831557000941114105742209953247985389023238119224368919341946491620769105660091086201090014599059394761205631704144875023131518582315419924604457565781511095106742052615102973137986059181926264902159595694943033601160437275907250055265241354235920797027096676020605979055424893352876983825090177901498810912583390558047767162724367713821642983409130653518615941535765918345505221950748914301366191942116123736641949342635160247232444450909303779612603795540433526808259075927225665973639941610425258729756088935865012784163009926800805110115048661239369551075524175640275295871867278090212999271535062682499054779191435131975338544438926929036353053860531514994874255328157040725416632943097067864599524500921788026350944538487537843597344846469103791618384973525369509484415402725705843454933212522057507115680088234853882850755006021883470414893980776036356183915599930215652116088201391010056960918341680468639468056416354439779848590599600817607433812457692190845685615958484826103885024019938576096772170848867866350460959205441223827733066613015297289873142565664588516936890916428298159738571839873492127116827269601935975967652204580112538955360136051687518716418718400630293221692564920799924484995363673550634313950122704069158481717840839855183093701667167877406804265164789017407563572237158749853078722270177753924613763178020781610086628125474861913589363669652486541278249384015349696952239843363054675646336024375560954857658453398443442427484622424222741382066536632906201760357733357584204731569063894036161889854802942981297443411037425460833002580311743872344242073994003933119055560967106486658490458811997646182503605251566407058445494544302929396342859601139673421741157977832049056021419133734758152334098668141596054054570994389912074508567503057175951732568612949181325823633059171276759381978111244355081298373609817799948353938842261755874046524145796089197979299345611874848452487594530256684213590069996418584191897478767599059269328356096441400582392598747398508544655481571539751652285884620306578507206844020871597777628039645529994696019794281676357614898015113713332606823911153300359432681762232697682604096002118766336219394580052862041726659651067417693518543398838971129145064717366081545628886556925779856073670566829574324241978330814833408866586019150706648348797169044892647934915835436097065238158363513805994770334625239338630500328452056544637623994073706783869982744485986528224695534901205830866011591686566005864800817794054451473616123286514132029439623618199698318408555187220151775244044717943218571719893563111449634981760468571883962922469573277768030106725524403262102306963655266036301139522433786067784832292226229047561552014056890115983544154441910087247204822992314960881621597161535856937407322150832951543236774154134212763993671392648825172630240503595366186385770398216787209279339652645059639688860735456902698792195021943747635148358963756592446704371850761076661708856940855366255482408382739683122656076938846451490482484077137186210185783740458118602193468663042253705189403543178919353726551997278100001524116484405376209808308348184427006958736636985636058617547647594572478848156328885523321047337862205160267645217618269384591405978313551095773270389456775625468772904701316646183044291974106069911518262373645745271985835806872285219824307588400456837468725864754199787057052764221707941404105176499683231334789492597915863632949779627762513003475272612166749994543815171402201569308391692402485844611430000111568596337316652561234047610896229617342574008090589981518525506785684654784239642073698617205468626363337074979184796443474454876763335687623936957048641534366325867086146050326287754662065910339190320469090152400856516173424077976971260957236158626224199056706109309694820501232557834639864040378886274300113463356724946674862094854284103641975217087089467569651963614476314837354115076294587291550665575600971506823065284373009749654096835248402080895343301684964194775762076450109202228248939359121648256653912388929966582359860005550106012917032052661695570132726499876508626104196158796748895472686574190034215045875602669887194793609446029295974101085799441758853976332077528756814462279107967726493705019892717799885195026165385763482943079738523078591150782291559872301745991910383248469358923576800611965160653040339872855505805576851463064969262084490002042842066616197907519026863658425854488746148922776658645232101736732783314206041403907526703123314169543179469486345434702876914892944616340413561126751126462396149357154225492514009213169993657502733950625636958974577918570087516202891520109237227907857934734036609836580021488352476547647816436805274915409389308261926130164254637458975143714522418681429973583874093909335617327563003010696427823776033590315090555976670832931997856914948351407859547683881120762141712667020419125328556155448892294833397490054258590530984042044577861251171590980724642749832377882235528178761062679473076263237564206369154993010774367987006791905930421515857409458173382366464684225194220810381262763354460860734607499359128181984514149157508740400232245075342441198376583790452500297309241569825083278094874541670266959966994143766427634137859990191167574942613208071573935887986395649714503845593813101838544882424655355517194376623904189889605032616796506954389557541501558731981916812628083255996733371941449506360063257565532503480214577933403761122254376354931044523915384445098127161661573053758503973683481046466035734359953036448428263479301662030672005806247290888409320050989157138938210094177420321256372563643431210153312660610336026746816139006667626206190449412041587550572701296386181076116597481018752015165032114816504490682819755873666838702607978524722162003426211889072679437277118589632230159305544824332388925501637736786986568057556434098510766513114227627574198722196212727815956533185804240476151028141110550356379867053417771605125961866533326866792573179156176577464853800220160205624916526243368084074865827464986920549014290693812406198849966605613881083209917379424420087832089168071497840317962719018532617268129613263794699958115661560230168157811157002544226437302136764664688988265888967864247336512477503473975750667339196843596671211559693741551440681219090131583715163938099803359602167713565448551754300882246649174835118707511748259861211101898258298758718804376680804764708017445903977514000431003860307755135451151074113633663189569859421777915482444941541333405794970469474806496892942534372184093830003302596740740516939353021909388078556780185887019767668306099222758744581495845079598223537036702493957810199050649558224363810590506767997503392807199990052746514987934407425885573394351187901260675637660333062413632633218878421396460038882924276025600454793597963652411292909207374046868498888980558100110100046377937482767605627155522705706229209251097009923982778274259140219209540045278103427422302282738017711277934015396684563433854181758826973964210411703186706963212279483893358513754664884205993454020903815585000550088721704578860138167068189446837483954961824765526429407874356368376462904982181901844412808562207225541393463299660709764492069677480703655223378377245907011050116853674428472699672489693726129166677014452545961050513379444325629911351282915683273486296181054857455284438867082903719626702057370218321953849377325971894586028602238520464424938288004025353563549680954312469165704634022840862439927920206859993711919923222832757040932544099449576357300516128005497490715265002642197764031536711290261780674878633422347178723876467784619820959719911083744154417403260081893332662897545037000317683525563188638894083073438139967994193401327043628142553838602072130340151585673061272991253117879161173681680401040882433112536856245342825572268267807647852595137467997788375686035312383672576088887793353752060758712090548585147820000112649522997150878492247702592600967607423338938341250510373695778303453642625603988916363843373278955965699152169522624182417869042990286832692267221298127405217702798841991824046861353799412600470314227098492041760429335716522026472363185281090841996018817963290740588032192249641900437350873092491655616405001738567302832435812391947971393164390619445366649344943009207028541182321272951533237082915900281053724246291147885309888755709020783784853231049911280068568833705101722490235811755391937346169602632377543476257030377627483886877213309302427808571303658726170998986714309969252823066391397977373218040171135332392030995015999695595082315800985031722950610402850048798672325995726029209680414729519054805967767645951026809960266878717361930180986428894165520345782270727485764893758152769505732267859584682141371578247948861724822530404451145747679835190929947466040662421469202386034655633525397792640281426705836405441931207833292874784695609356352457149175326591824508115884234923698443981839260630125527695314483527774459575565817132742238471566766512728980093652967439573742463739822921940380383131817392912053579055501574563531875434221879778135682516155241237135968644920299452169906115867188073398352579104566151045302597868308285510696552847641556518843636675325605052479584374583552342321940362149666083168748499583046973722363832087203919690726742876125633309827202152835117732110410662598325834080837903277183194120170697112535777758829256872022799178500940665851456514282538616067326553963003244416359620751617468991768035004601574119212222105645813670807694215097628573602617963417291018658334441246594181197294044881515925778920345702246411700766003118857654352718440348925790903711654779117870850829027588432891421471641170098511727290328951823229390183362469858745135177098379536096653135636924132111588085034299448635898851386123226099767454728717171181322493697191847807913488782489615542477544243874087073058246427977695185724886280880796441438365889015333580607184848947818422250679626232700761096758190881573388112591464101226618600428618096313644635235121533756473406211600632252666830428904274668651137018202721290267805945896388044244612436544085069716316361152555175657148976332059426863488659281528652443596270162085067138440136003639371229662139798116585796062387984346991341691055518258789404690324310239360043545736644583438284734716392874601143811503028237873733480728851166829307606922048472824330366197289098783035457065378396609955995795520249467585220333940840643125613567011789294888193090709612584913193282275411854559203090700136541642238931318047702932803699191700965969023744084176930640601191200318218645072156834793372367185914344564778132638894519314121157316062942455873836727318906352039146384504661819591911120587996649155571357040076877830311226888727110622606926083430920478048516898861764730019537695476115653052629354280449616075115164551366245996304439469145104873844507578908619299635014756421094473036988735959429667694702702031393443072719129981252467433909073928351696789104916090566981712213215546031233851360408949654490049561544300444532778940018082457931816159453335689639211599964964634853449034170156691197520434872544886276651236782357263538885811563807932370137857566435274422148014720270152922449936923333978036067075232940756996833575066435115522353499952360210927133320618402221307694171945964413070976032013089179439972271104899965944921567213500902427789499135172365656570339879960595717530077852342959628716086423766843337951313648675226804954912921152213835121996981289247063472877281952097505477770620602568757676380929922872582412551172852819666651862718748165666020494187150138332823787966261338051679956766258945430200999333296406395742509744446610742145994663036180713986708950245499731920491866984453766563661234684587105575521480060943738965434974629900014713957008829102621067337444382396479826044331530365917730669506779551614089199283544043759647716571641177819530593623084437519366865590777898349994624756849351981891743408771208793685326985221690617325430092780112212958914795100310909905131309519865906426952894432272348623745454983136678614669163970645161116217827466809318673458674116702913141619518383200788353152688745510396290325203967285164012315031629948498422010163521631651791802404931618655042653761672500004004152067464025684004662364563930668255298106029304822474347102737166041214640601461104000199298814338655393390898693558174301328608269032630595259426816968402696327288475804461302073254553912209579933655050317738916234399735329715311083814898802071008827303520633638076839511354866296092651240328365904281359448665775262277498453938008897874880751426705907553356601693092978069061844408908162792801923963212273043920112093146289927441862266858866018076275386971745647977051512305864285318886563182110791311829495687950664354381078159115563239341680620351383207211920031601047808774390457308026688566782181727588507076542045183150016474357641021457480802956440557006046482203142044960380504274013820155676734023836396054177325266497534972770834145853797056592636044510395548532753679845936189873414626453938362436848274158266068717602787412291481690454930877872759200263683173953320859950664988394326393483196372010944588889642628378473016952416596977421631210102620123267076111011006608978084121200772453172696557636111382204564760788238072833505061164878221132501977431552199858293930209063749614919570735157870975766077827830320456877139774829331511389993783976422892815105533771213823897120104326043637048693360001106591736802236744148806515629757950540107606369119112248907932067591503089862395625274704985334414383479926551098520229127031841109050234016560525663067050550742060343913277020490773468980150704445267593585220056491039263785356330927408393208814425170359918697622435502133168697361878509671211074264211375186782175314457440063159904854386688984819653270657336008004650322242900806215085262986269556485841425481425950292849538884122582960515562110200390651980827194022932237466892175906033344991785892237258916318237636053644300699466881887499672765811948407817441974614202773006484561159003376543362591983929175659333751601171730367167588075847556434284499848851056669035021181224385012609323731089057003201002021248893525067593670759632789102516306600867718834480866697096739466018445981528930614351524018497804756343502655013902072254719020378396275001112902515263929671752491092384355937380901263839117267825900874335736986035693427685117449507205570880014694753339158759272695984546874072830159695712850429420554328322732619161167825414606219670260870753600257450143696936286755786851465030925424184830428191488494732775498902677113554418267188679481031994275639956931299744066956406745365888624555306634575232179118449610676258209252447191088647840049893896184984635042649833651463157079607300463857610361761602007282519980602878702679505223453379581830967725387090881573072619224553105101507705363611601487267161267341047547823111028689083000500390966356159000587513131731862036191010678683462194855049096811974395694585658969881517065131596231749713444803230717322001670347419733502482039838281684403648049879350473787340735702678284879517550606858763918659898727906258938956886232191416289371259876930140657572294447530695022334948772715454400135594910036646404424105084459898263238565132624339332987577048481096789229146106089799821591721791695890130292498205139081355776917558359714018217069434327594639450486218288590611174460265089432620029481577160696486166167287014201775255809116404275475060766893123452803992189924572363781210797142940075989102597692492612964698643767996972580291741397841268580812292326557968406681918546936184074383293046233365028971742699241777783361892892054704038222231663463439635347885077386917575569816216253409616734102071867231384881397039072826698327924142289018998745824049272053402384885397616280557786154830187501075962263322299999636308113085481677306476741086280502754608060600134072999926014887494104295271816917025876513405205503204184018732323001666222620629517409500592253464790624096145829394146450789034230982699809946281671510964197567670202230975729661201489804105162234005400957130229565973491828993069530295935582969030555127692677147736479716253851939003668581851250613089920744398769779111247133228264301882712730225114244783564773671314844766877667926049542150818989850193434093795579201654521159952666715348735909454143148996851898228336630948790667100925162315472330055728962585574861753359922373307506829895633383693905473566091133997016391718684444151188657381243667172896139170885165249682548323670150800373758435862852566323453880429361705662641110138901226518681414542083865155843163635599003333250935522700445332076849185319788191964792774126485754914648023218753740961809862033462452883871503864461102895545856020448278782905034992634917291745172139719948473259412553806985420999082916710506558840216214998465272705168280598857918845676030481556770821576559770472473590472540872774663062591173686766690794208323841242065679213532592473850154526684315556808627463214051389372817553640893810369195843040602421323666112416287807291225258105263414846484688716097071990670561410274633260035398530676170985847795177089465749914591327310387526074042730146855450625861130898995334929550530475689844290633625340242695138449263482631990729799494012998511220832927449161624648310003103227305518677557339457072733480217349921511834931759412051372605023969478809466219553701268468616071272323174808621129431091796764058330409111414890138876894550108544627580269753649089086223003092991526674883256340735338423381884381413709892496873080969929387110619590069177795510976584754820453795438620276400986918044216183707727309189565883699293291381956137842481745588319096144286019943028816368796490043398824584155815235761188950445203726681012427105062782323299212858966317905359863156021017144676632203975402349466853267577831009792475309635759999164205446284013943955732780624671244204284039921164530514698958275723857479349708034246498394725211817203480078437843286978951451546064220846776296730925882222991779297196007670655904060216502224329270354288968153390528225324837027735685665851645065423167413708478197057745324245120634519203194289010007411637109861604164871536098401610263039531820954679934611706000874193530269341709053236725206924699778186880964276959600260643719902293662331345358701084485984280401395180181980738067032369963043760583225560167300550711615493623445740860597983405596508609502931254299157801293591972016592422107429353873393130796667375052091045496287734792404160975300968407325889995204223465151513442147345515513589844543063101891600853787281178231756218141037307285014536669658683502141648772236404604112582199646009995445402784017017174763170996748803492083246149298738660128212796191114413895220782591217739245840548903048483000687157450936532125593198016612387175057979110772016666585627830863629707099746771402265320208562003455991636617055082756758366464975201298393066762467149327784937457831160737855074215594870877525344460609670140709919578672779608784642883518653509420178923689850878238926544876057852099641749355476722762994805428600585958661009181731368246227417024280280004812740800690564358656493518859140787603028757049642576690129860080945422852490449596796198305439080500345015106745088655930012320504536171090691168907074593783292748074563460297693400934431108183523057767609270445173120551553381998304114292375853208674259053753691365807983074970307220491765157918343083692379433506015272787141369096315853262225553506589420733627095301848987266931542282390124108993732218174992239718940982405998602687558791251511835526432319523269432148339697696303044852995761470169243065163134452010531564692544793835819149972273351789020934443354719544569962179131187763482064103579618046291085889365777850873143687673100385457377888756677753184674346187666783085200634781056704002250491704068672984004595318594491820021825616919608656637729651634860745239820802139294527681964817318791056345271740097334223686568228580359586548698142390789417174767733129554385749948101673102244955515993235015770963110685663850451791602941237318659564450746501355723748077410384201102529770379280149143973880420895815528212673038980313477217138282736927326022475522950556265670893355393650602815020364498568999776033208150401644670400637940636035824203549767784450089886219360187636372731002449724893610063675178854014434182626678970895865989497644158279843522291451249982621632200362505562729461338899854181266737434741605103546995496498177249647685804860768309420841137381133253076699609528082330154299586429679303994616465941296972144882428307915954257461123476449512899487485411720991836718437755565301736823430357612176733656351276430937811444495428021021674284247126704691080460429623098109077195224177424875892067377902980858353154710202794759391897114409598751705803092723548249364251516437522757619899613205013906960505230473910609838859844771592448819450591076258200887899036257979434945463782238230036225379705853885053956736419839794682010341657516655471238888785357869080088580691837922878243217467921614817783235436113782437511385497390524826709030847441591107109296474292230619300102713160405784153691385934423754275697676359461954839472280595121036758300103619345004311295172839585050054996422471277073746929276667785710810110716447529135884410448455535752188057996949200789726440800148241384505239613550436078633589976933862055257209508329503315312749443405306243489106376053405395934345000169763009596310635302852083879274273810457752651108005339687840979170368296159087748952682046479819453856716102403624817841249215224824183742846069998850706023383630478173813320533655705554349562987203669267711179511538538546368269321763353462897687764050674247007511500681103057311818069961771027669049479051802312325936254476693956014437014523897286857363788809486579880129461597281320443388554866425353001863715584884947401428239394770530720874707571340228655552669963172850631189225585330564842238841583234365234144559347374384521578717857970159624229666500372714516780373408154493980290899478594883342591423241270755378369696135835578517771017172436984357307168488521460349847535326582522669866446519261944224321713431921682182639877675301617453991446835687946377912648038761456922544612988188775046287215965662900384961183679625003257541907111899489245196028522567949979899041590896469037128997917492761693881252935717070270471193461313550460021516003358535858488321025484820603077595501798122964289023651236744175137070225578556553776722901914312272081671070666231568337935425222128455054691546597153701262277217772540330354148004496239523359918011241403018503345418536550489271355568846046740761818543940544973316673701316488288698366683793743765773930560438955755232388772806843288695139848327542329804392467778250528221548958295909685518560982953444019660267705224222460171103237046483207227359526416128171666769900471051480217951388336218613891599327827450724738990302864729016723929660284211053239518506376129301551789125375510567851739761985858042762088245436928109273609445934323293680871800221663466328684223120755318949910304451471761805181630159250904271882757658276675214143232432589504779971913696644463595452858265541526349634392250659192013362356723521075517840597060800052854474645436768258198252730137682906285118371344171294620501133448249852026321727451909982520200969451688071397943937103495067279843770940635344550843853136976551586769425670159265320667315555415122695244463752937891125151395493898366522415576584834572538962372729333253060680138279071146559628404316180620301644876039014914917414617749787130712179560964083541498230648539351873732396593046752468214286487063430136657785382876960840457768650707780308096117950870795421600649268117981364034282935156987049258462002677670118168331059453239399662579875871826367630280855370001780347071560679478416290907736521572564171229626117213049143641031603837733739060557648945770442884073354381704411186685429566546415502293465846924228096786889719250418589062029446182356523450569135778844859644373280956047501481089706596637459044258027260856261791125463872163783984582237503260645733404306154503291291894505735414616870798974645241673069488323993685529635609315505039735845903815942252009920947143704599539087909965932457404090245522633338957869260259050431533710445189358082956093683997066600322172583074182099735048396087421844312208881627614347592184234513971819918584948087819975186383583887556568665528370819157278156524627437800590237277080209164903036612062452345834911769875685401627320335060413080535065166219047551569732909691484064527031727364489503689181307668247546812833100053178879278588183211867006098297865301815520698032749608206084908738197861892340671207560206327971069261495190685840524778453842623140876663861447229519713258392994311395095270592783569838041904561250337531336416044959621177831129211219051744184180452215429039224969357206692521152871414541911936856861766417272360133768583674535538409732930725797509534451760532161745774262295916250868383845497647640282598314222751047105344172610081232757535284388116357219226561627213943834804250147339423399936434144982691854447027572657061244176964729113372021480421381678846937252033574756126280054561362658787114492547064199231084405575109603075528154954739804180606262580364810465079812042439162096824222158078439794865762110330236387979835794034715466469436799415967483699566774446351912400846928688941745336037342045123996948029424729001567171420101803563582991719076281722948032393048960048436194765537518097052493684380138404757030563744930598098022789529133266785607578162494421630567732203486376006421656967474449449420702320253362625378176992722945285803777942865564764706282454504320198070425731061337046392878903339719446860544142506184206188408333412809283829673442769817221611408241235225863720785943488736794092381387022038155808472249221407475985678171932813614247843262339763691971399576714616986757136553745143983932069135748629865160186960678159330585152651138809413262507269202808080898200845279121275310099628784046122536133735663432422311562752164247159553857904036890710063500034970869154275867071502749460723511677001304714033565721196795757714487906218813523591483747018501558125522512865786242852338342633423796275288807715045349189242690862789828757969544880072809606280545346022366690309605705525570033515667109147367607332569792641645250385368439189831382048477889314990207756059736123214129339307921257335564959693703476206423857501011405247921248764706253133479936286914823802304702497658044006769236544683279630924836102354042234063637085252253925241159818436993180757948865356188857841916091334228863087704302522421539967743272842303082068895254545282901918832296198918015805796783390613175976538324051692859698382756511783535581638258014774967315903194869041697567173584067955645354937500929444581055296971146060746411511491291209811707477307316958546003684245079479959601291305411318589241640329878183305652567504308159907183265480409593092587204648635190185099257125905445368083736102691569977782083428858568603481814661122994006452572840545752433514321556940288200298531494094939658755138728353760662156460941815381291239749976197879324568314994102991624426546019283700661779245017406427498298287870648102470512492582869340793090773678888840779160794189209989209786504019113862242142476946446985035281830074765797051105675846100975996122762535521008792378665440598199487244802486328312893396336300531548618855690724925932257825320396474434480428865825561744070883107996564688048943119329324861972141393837117936030133714809210224201537266401192742868089148582176343343377946831321284925569260289984669973709294440985950016565214757729621464062718189992218427219513286866374755187291577143407781597923103689853924364138492307877934670235462083493192284043068745297850270444498648755571707729236096016659608287936265151266436637671757344495614876596589131830647289987931995639166610469837355211933967951766879620748979821106990699426691368877365221150228667363907382197197971471854361671356018292214021700098262914787710906212248466417487830592838505929938475408461263549800204024869539278609833402063449986353378114815023089091299938165778825187843932831564333221723783799739242558734242000220730142467997039483676549815618554967412407294107963514470062308798707837048692551236861211580392752121035797340973740621648540113638338903851853275128956145737205898265131591368914792682189260002497654993254970975309002002252274813365406007900263337195968629879032064348629040993943942667072047676064480512128619892373872327599737462629094013818422955575705273318915597137155663902224561799525426585246298445364219450350631834205956886245556186846972884644075947730637317923065081756376194526438891945501998686008051812593084894985651186023583228291681039012059698667492381546308725241265023686314096834852969409287039130875141471820435219380893475622948220557994423236412491436992774279966175273286555321186594739390928427560660635664354882990493375005729964615905684286289374103295957833900366937932205942960285389434150316697407916546771044860394762165048150744688638777078294015606310615253963541089426291582085288713221734063074855111136869489129237054441036298587009915445831156447916120218667292352063410619181865578804629525138218610478341889155178671291994013004677614962976351582768497991491882460688964696114083612069073172544516711940031294633280316996725173304321593239748440866916670018469297624478525746476304769374658472270703437516646232738648176019201400912726923275559680875519156512171742641421606426648465329456987511281346639692492263572235710458998576923467731895182965959238119774446550670603886082355378540165794238064251653460367634661098427055156323705743735105920390701733887025356837389268757107977496730370131486327196141404712382148834578226705811487357909210099418577193560553502188977082977521744177941819923569206749992462231171617146176078910611825038926557577319501687028797753730253887918794433123401222398357390673041310280777641411044322497865925190928626604193332514209036926229210075325956600344150443601820099497864995055497745956735267526932364126915841936649072662974885732436815586284476969023962761458345084216626556112712596947122266401245870629455893960028995486730568489040245871789585595601470911761733050771287841236055675163599001048680179822489045507230949367784804972399065733052013431091756025265716763714722415595515468676731488972380100453320621325980958172880181264062125033156652137752767404136191807181660202311103963433008028286539353927431098943402387136611058521334817981669518397317066239790617669097709968493858019944353457413455805119014818196530754771755856578821535287877113943894221107725282354353500884052013507980153743747109468633258711656929613881063850295815401823012330587564850455195180127800248783710175430070636106991367736771918075966208676530586629806937784872883201097190100052087146869703203258127853473654649673831700867110625684977680271260712840460318758303212241381586331017247624799727901700922480378896157631083146521677136962714730792924427988253405134300250829877829575593839386173680546495856537925564011981015009574159859528215359722005534530797772371588512469718557903199343447004153841896512159240336274872449218636552008877079703083292120258419546813802594990805447666532181117275507671638786560436658952100912855099126140446034929664118202592096052698258094138485032983865059916707970520935816442079521379592237463628662274000862177637014023234486106292022843221542337054802219208167449518810928640557017629897345545736260584545512068998664223715890969025290968003887957450365101404693674588796541325379607111148495899277930056349879835014752369497096632556783357367636614919087778743929796314816701196368396636431366407750351008128901261320770995666428720191884373668644646938793074623669315959698818600904564200389833851184238552689795063093691764006649668797068605187953247134947297427495003438048901926429644028402849164481513671606002011051631732031417535955704238738363448235779046927848722917363534671327708064959045391120548267795432209037135054380602068184064452948098225375268635888179207471409327161293129526955584255182790515565907047549498355123720516006693599818353863922407040814693836952194485408152951424940138041413511418776689750141911608486436764832883974028467193105206923659753295022160388963252356849399474425795746706310196224448868499975153701344907766059865354096554492123232242376890958601858197154905564503724215565923534523244928505486675550457321756248648146336460284134786961833005959338125780287525541312426841325091724783836150552382560087138796375885008599434036910022061143714018510722893458500860233801569799249026189001723432242094882723729959371516644178052704167636536969292607041846945236314191450964199453742604104772337404294510706071381448527666934740823922859212341090718219865959819339662114424124346242100012557263829536730622876006024897595644163690543397467950512843201974009130822206833936185128548200492602843001527226413385636522631919610996641091995256013225239386382138226697974392307749323072049946408827573715188180027599896792932344442267507889200282764314314793017969819312485978365926317109148737529841382199587860976323866798599786335932579068409982322224013378379932337967621852763808563461369270172627570664384780934917296406914846047300417381811725738919843576409866091526588457988074529810584626543789208907823553181017174784598887403518933367817797431223585931208724131380995808721098168718962609555989403608518868342086268799196225845066088248512115366472990339400262425595550859584768010520122529958487865052362650430941558806612386333470156883297392721201878494607595752764632729741357573643097091319539610646101346031449588131186251316872609916433923734288151338726832404899063108697886047719173731958551482900571940930662469454897489384287327756750572892314739492890068911072923854679941421688335969806912646515488662237601850112526168859940017515061691803750444909928462844475515514496330106598064824668738389580278536631269409874727808431045348705138593198799418270138299407668044975887647455888597346820240003288767645004544137563898198726100007463950534007187302985373765891089717556413522040970258637733264489598030713627456341606116701892705733778195112341927888722403477699228240962286921105086855768888385941735113516015280993728264470474408053065684852762413657142536385325748840083176889980368152913367374112596099065901382223451948956292931777714246200734033247074534334971288323260065654607749701714665070692889407290113040135749448827834089512728343202998353519360524385270754152114077960219135311332575422086904805290620033216761243049937525678237051935192762130892306396210136583801275607084493026456225552328257976285674306697269251664769317808288972100960298024802370214972420400617568596741446071389977736557398904585195736563225546128337925607270050847446624552120748032777876281388964897899478538895281600638825906837517191952089741179277786434476030770379878107646097939059524835998237286001789519012922548380095213719758687547491472606908329260158304360371271563397421125986129995620513111513681882886620906218444391229365422421961661828919253854499642796377790475882616261023854949137099043760602234273934075929094214121027528649704366554962532209117018039104911461931632406171115351133870644953494660012584467642035831686687831977385170731803788301473392241584070109988621396912481959250883005327662611903760595424534770902236066906159318488146956306295062438479913719100033374585260714738396788180484499640669283244203551926731135763329815931453435242049471730585196967494413354422672899382807004608980594003378211038745763531308041729930171906478678881017746877995190748931709823044857390648225302379618690967040541547951722876677912823374799405189945868782553312718796463713008260509918140653753282204053555240477070032477627823132793740149333041287388583598443230335843627414832758049757221732929318118109409326146188263543078810549927721249937255435405607970137491969454796252199710870462792134408196246653527739557865370391343056696090766964081569129337961767367362370478300646281368042948361813112745716905633592830723875617074381797399679870186137464121327455852486609516890743454528985204640911411452998993502202495652520421814279662934776254476961862029336609735751654569007642215404615929234877556258629243368441248603651437881830354950601040694360967878610616655569014117483355353694227837938437803278954388853441202235521743317510978878669134575352591492009174373317173812140335418787139046349820074948340927315699504716375593893420200614875088966433679767189478490628795281935594227185957975201771008360729736637696141429207962433938785937074230003619631585496084032891130405645106717111081946082238268466156892876292744773701950130331141472990726098690407784843329761790588734140147780189842878821497130410015818560298598436124904760813188617233411878624391295583650245254259540360311708247681740831876643167361232179801902853688085987230555557993618253356679375584600222404107274658889625991451148774431442596051883820771660280661132979548893859568031297263673468094771250512467736943067068257661838014322123470566283091714505406291154375588368286791140392242023984225081556308124138545079857890388452049817450619532790968200301244828751547775382148507924881447131833683393840245742222543531246497861725776013896900739634247396970751925738451914397934236289596749886697553492824782308392390481353859951336619138579820452129049414184787385984776750206810665681315193562276651784728397869796891115282868620124050755064526582564758974066735825865862082821562513038416344360010632119502472955928641334627496706251793022671496281319932123312698017900273677121984868460723349978466402858526532197959068199106980587542473709446235278965374610526268499656714302028509723848039879043775773946789407020067196437019038162684036252906779682667753550604511838668584360073806208023654635615369129555701914012807538234759140336788691737447949987623797339414817399675470999831426323519880990810664431596025408146250543689894489107971278628639284041536892968090569517574610698876719022482214011078694367998205648887250498572055244653463815712420451721701244953049775292856176075169916328726961072257066807927804998082977311636981315176285924329470076382937888849360820084400550565617921353293297594933046211507869165295006473076058097488920668468115811045670605973591584812646607873615931973983063922877137727913045063421679776324474546895360327599127791832178663215219422620411570226404017895379258157862860428909101370181180964105375755901877132361824916134933372261587456903496489528935366039582087061472293756315539000060142925824958934804456525139497593890430345775855292723494338637582999352345367882552763569447349169721387931112820952389610872781405528201657202386792186627015412307461023950723771984794511787834364314770482232845368771668799736050897986940964030400145615055891327555070930458892309932238782209118733720841577059643119881506149946412880142334769630370666692412844388933373221201541948650954059893851569926747798820597265096065797440305812512010027035687006315299877468120665062037327867946191261076558606772267486862288720205815483106357386411660301031826325955080321630066557318125561313836930150185251650034823011844085932069838022004595142306830086267435321171850502616952881738172687043683453903891884632208312874323507357428649675479323153646467413308213791916358116104664781325283307908551970503225319769047420669942985040663280659499736639832873660010041539235854050947739849961528343888847693336280391654491122987324261161363128174112470268816078235462089863528237829660776827763140686036079273466778600736678618370701904688845922596464329034217256578959959869262915393747048004342751174269556061376738958430103014899113854534733841684754888204231671423539534880765270437936096573402721630578113654084050767413409541611005720590588911507513854623713109731927823657453792374425420996826956778389389150513306177635523990962331794449674290225547176424515625821125198927641470664911323084333994617373462599713356401016335555955945033664688651972516222523831195678584098876160759932328532808740245380581677041894307172466876824608577630930474190564715089000293245792962376678393137069652857900490335177640560710713781872290846486819455024377185325258030684264381872410189161513641192062372363412596382774964790497238267936836617790742028912019051429907619028732756818411540583382338864148747516629403508826646436021216720963117505750544573086360180424690817580860473740444195476025496799247155963716717043497970836422505064126718378911234641869085984806869554243519953234670235459464968442915124037630890445807354754168913017682278462800030491148641296295764801371290338194312818674611245141263549094728911082477603307376795995161943070278476219988939125248492034171316474814293718621617195683332603977442525909413061634180553775458357442882896040851925605338276428836737377403403150298773942560434350231354106094520618868121820712290077432865762338642555275591538419928883263750530817618598538052969993432075661527835280349349784906160578229037647511059683498782627107154757817804402997947892275433680518573174139967639991678853900710804064227631798908231516945818496854794639043963682907504990326092045154109298199076897629900188866238567040738645771037928649996528117711089388650490938884615522387722576631237499350206211262809893408694046928904352858793828019343799665214005995419400579078532217648296220184475341242817251327916845446877505035478797188333593336413881446780911295849829964160135186567500039274504024335174692968779905880770694012545213928159792457785101310930044886740068059410544712010816314212894162921623441540469222810492947172538876574991810379733028919149643900126983059308780665295130322864152071608887557087412128876652430128870626834236507267491315233547845710968095436761796030586224239104339647627531367704558201996109190706588811912053743792051130115101666700362055100919766600212910570848060396792840910364062077891599287082453358618570383600061182545596221843013900297839357876192222961757651403915580100176297627098192277496363376733220008695939522169516458849437648064691960389402062014150725081775986465269631685388674393131583745333877905323865400547035373187102666919354765489628465493074169435582595178688321052664556679278100885021586683448921596172669639479182930090864510928834893620559713510358744316576959940025765450697431360132208835849459478938834007372344714032063343123799660279677525607580307723572215657651705858025274445742796425188160730161398871983461104543446838775006767504287002642189710110847943980245181486684597622126528184410952999998681222028250864964473974480586020358122515039985482709043089805567218470724728069555480462606200129031622862919958461441404650489431343651370150983360822303944867469603591753026201550556898147539731803211859485173766540097143288278900605858676509445967067048868642800363817930024455624006287598337515687811444804538732550120187185474295268788758859272064501601812194979355132781471437723155480901027609739738323954554341662018151984897709751677186689860724932945389992448931182885879340977903956128501397309452806904460373070879966087288928424054292780115698298222629944583009506899261747199011152074843129698509068033968654481446503818537857069967252043918478232244619309946314783017472313864112087388653587233189135456310338835209653330233337854795181570467450363006059948485386584643089271347040423716592865723869469011812128333696542849419427912330694819934991710560781721707845406813589557624218387043788597464033531912153385120539703576021924370230933848605933823020260746400183693799172790824923648274353874305596466857379331236439791197000057658762373330028598423480048139972619569319812248841450309277767572655097428572314933161752874395746384412220745291872328147929162581534535772721392048797271429264483184441491191695647638494186242731196374289605493809916149057881828115097907914186101024238531625704327582632297311193638646050290285970806548633373546228739062691755773352671927732022005613192466958328757143056338538381740525555166313932582962441014678970431791486956918869146187410151575552139393561614502878932976691957734829844744342268515885035797866657381343792829724194737768869602719589743547752827584423399961350487571399223899113214191982127151406047708988707459795805247787921078768246818221144573801157331185039040867167819422432626802649081374181933962427921579374512127404458219492600066364596443464712533464012787939477226899362236415039427974469726779454756878306288589345413851956735594936354358074801803462609760317534412158833397483630233122868681723586603192436758014953663579340930178719058732694408653180917615512391861525495224040771923166621908531917784176409984480436854242594468397560564998463612548721795155171091527530163863092805908060727098354395529948658255716663003694455516349837635494065769790077101554299532375909180643286665103166408080903518051131977091700056976288558409451807604150590058622955467016158400708124645888443675581139971961165637699167623983065325185732656256095244734885351868935673388089202632131762924003000439093634441923253372607115390935056744941073882429189030664819078350346358022023522003799041433845445232757874523117550689250274877261670198862381857230031401403693249559054358271981411216177044954835159355173962468227063322938192995876511893070762456144279329528226144638227796054808008203663836336972255532969536951695957275034953345732132686268881215014892522212892238603137458861325219236866403731181678548056792238067881080582007954843580933938869210254756915883899400409274504248456254483486233421582904267691388004548197904005182739975263806598396700199479846876185651361424571832790799464585526746038993863925433170197584827819211284033618942373583802070325970885841470045449099498697124087442070579581781713712348938462455512297038998808178789511719975194567496413955445478293012452518862505472678812055238218754157214113991969463080252092631230707705434742039222230934659136890962529597881511652601905234592150305901270376816030341248594567759983293579109184691849078691072185678871989046238756471488360341987635389640701633240711656111047007164745930672257643443340059706626138306718565101108420837735461550453992116035369069917215945891303513479209445012945405681761093761581549350372871807283286600842202817566365163709519018991044781890060644649379830196174145548517130077816783269844884614365307769774262066418433145836848818477993885327285415242577831076519318610903645151806344933964056948516632438082119627185997014545611611318838535138296542085818935029462161634696901104861677833709060813286549780114882835597069896768030425492429447089941418557853744395186638379936994964724958111269607724143228598941514277096003261592235991171235329507348878076697682792526130034838051426723735755591402098829986402902742442257656786068702596227500495925281498710870683130366003240634405038917808075583473030275509117851069162425603335945834029238353438208930499123548095837025344104791848277039915960325040053194559225835936400454505598444885839576887332749523697750522078253505132339063223741209320309240635663548401885047785311355567985564998566703229583678578738359166273050770542997880124588399151817901979237870391131169048353014554659764181820501578565808882270673931626389680724650038241111062636819929056741776385867444866948651935086245537565968360360496709655281566097020936943743399648342171733248261822712376714371465486707474369221871089133228063843946886229244232736831495711750643461703880759967949051186388344033845840722070553362450967562884838248945274394384359331380776117864171172652369480376784689394610211445017993942944526306257390498305953583520948913319362829558940124368260498779649423116151329858827202926157032524476271476230370360274163364277299598868891089916002851103383516525781759012223786736029222253611157681132587304311468824624249700848896689239009918882893326124891215532578548803163408500115734507536198581947297256805058647068966130584418457050704635460762204167407289327128685532486610028152858193047144874950177240013272534514441020767873327741104528028170499524820902613912458759545466715631138984231772989710573343551970007133164703428568374337241028723136989151499466478205431603714833576125990674245559998441526001433956928036600479865922421132603069473165369026665038644466421262145747511739851892436183350718063958582195212226994163368651802099706064325227270832548225487539709312672581866833418563934622834517253120336281862319650206321522705515794679852557443434855617159805032750546716993656601939739322276986426725341428898670790931718544979157201742123360202065967560531577315490083612600820800905960091519403887922773427224607271474571614560785933374852093555040923136342678568317114666093447513248948166290922906852538516935202788721537164024068873313988119753012086667407464625452071306407260623035727989073464430402133108482381086678372328093408794139549221223798038118578555714068167575470270229660225112880628684238604654367391563980157068564032322244167028663263095464639958458780004311686433738271179318140087716351721082696565772858721317347439090388718242746320039016284192314279402067084918395554366824410986628544672820824550054137056252444797752989959970311006309428625832589959038401874348953766470581727434316077878819772996035230931783640009022082892645611345224013397770120019957297035579439688070742264643343369714494277309084689484132566971362600786445064508533190994296320001939232275749409371648649398816991420664795738031713109853621514451424378198649883902289343413788127469367828188571849939599241420689422899442955993405293881306062846534456010730280015156998498834883268769879368831867998828792256124900951962387274543639725590107646350682922585207656578533272013888493517261814296500609762554795043397829561399623464047671902425074883676598595463440656598991623272374801128305545053600965072753917257592135005053094639127630035449441764269867803136735481993384117299408078604067071138808359854911059885890653900621863283910150606964420187412814626291970920730594527441005153136278782675747745301731177622032601382542552522161203051619565821898389617981393946215626647763957720740146036395106831995777913196711222662810146454879070246200074781009937144150754092739261955261100310790612966256844316601159335195685661827481289055172405224764487548412086308877615883467173333503702398866734533038018688621622187047079380987942813981753504984493677852973961864540252648159090636681402562255670342159218190389962538536943978878136127081049158401497918049916684237864382817499965173635265482008298540840817473289058988075689122824356453505430026353925466203076040087328577164656098973318927905566658955607643693228722060160642188622312667056936945073650834925634949569458465794291728126771771745515053549331478327335954065947141985069968783572252150576267852094714280242760633052365483170817760200420220757417128388468415380952957570189346274441632251507034322587601144095490599239111938374624050835097571123390105099051442495710286726762219680909041061409622508343544157055631892973935474257824220764304075466017248322520665183538552364989849804767361552339715953261838908612371397373588825978184155155506607467606162176984474438365457567472380644868228169804756119753505046883766882999470753985140671027915669671833958681779372491606892225441829609163389211407629967758199228739060245912251685094285760330803468597673173879559662993120000790604116298823203121699859140694569295004866715306845931434540387761635454911324494904427562400503452391764982649012467524013665014882348298119509257307537724425655074064740809969689177498148665369436102250887776637806171864517901145660733696038928214386604792467074551104176254167299334027805742603812672829483859022148954128580912567279995936807212369287226498673460384110342733398895810738286100398471079840409993259296718471809478715661536621645654592298937257277710414992667879008726578637421823449729419616894557591015722571860450875037766611792535314760073705034609834147152165064326327564759968517326334779283864152737440545252224454772549500310900984466404160063169304333867019932342635300742557378610503381275304741910962141495596168365905313919695791644499931862905050484817043122195705263226082223811641708722619790362007476330414490776960773861912229494143792805809350088706767524506627888196806960190292009924563612605310959982841615436880959197091621337063917705112724278563890496715330727818465565557439280168976387385775167317183083152216090867277189242600931319005444794434809841712685975757820043907480022681786496251419237164574043871087511100328623612926799290507789438996883364756760234293444444841382587722834790754816079230946642821492573587039941148161631023109548004341342663135700114631029674047100179787901460349204755949192665953042409136336431060120301263714061471037199217239603010342658518156787761394183148780281659384872577302079569790401621457017717986744715547556629743274580047977515788484880837433978152833293484091196988804314637050557758227344156111889343118069485052717461472150465003799980995917253091060099598899578937550577376398580212185937696721081217717680535536203878432643833432472951845720131295228430464622885770205032749595596910040656984925421607344202249648526803926278306274029309152866173360402146840836506365571397071240217772780425966361261028567713553310491786996327182045927009624589156169440459449728415364100383312412256978146602343638695512182454451662359779309088272750306322307627610266444459222755339490655721893837554838668443584254764599320381050248564292948692206022580502625376694703529832334653075274989578713855689412885723809683418050297248188772997314347495820312692587105043212543447257032438796422995367519683861726972808595180886909486626486815750852621191495606831601997096933823454743186806394642473530557856734759957939451949421422289649270680217722995741575617845905505410945085708166889632289176510078776224086229329517533044643829075676768350335874165301101728121242061766723353961680722455917941003646064288662466712288868582117067070546385562098509584044966682966156339599881314252430944528399332388990128475825130153350660292150951475628235130638462168569827965673056607455019807687653441371182133744514819235540898917615701746315647097992055098921570723158233127107253741515840891745800694836322040962047643892935180343298330871209967243056665857833573001648706080853908575240436407857229156543319504149151434723908491099048981757019129932025496571263490776547861734148549006394040336264717136661829062169241223132432179282771000718191625568344522065009064432440953533145691357690818559753938683046278023286353467509839224417507269011421884407468107090794979966131574280103327637370863389366777739348947927347358700051024931079228606797678470144175950323617776325068144519507164945424490989572279430573170184216861069236698751835789834880656512003487786581567018173982620049901200714200456613401387127420583401938152695043146906164410786508512440048033121081117514966900430619851193665038060000541019682128674383413491394723093287432555849957690598621788590249123290313604496094717801819519738450281082058355192279236110529159188473319745413274875179196168763680776915018018046362759736986723701006989092300540976562725051497355909435410672486321081468346761645725723759679596976944784451798873746937092473382059742896267533812998237924750968664701342249214026056211321223722376517771079795779150721943377998921230181229719010792452923396948899900691427347591372039149371436620585224503116436517223501212837122591924928863097752757863244208729589245358335673495133991632990350700373517070463621434879713607765649467745453575835827780691429494577092445162804457802779117006521769182090229317111420695736333137732212615383705377473396730298509053687458149995652552412476278689786192162618049170545570622251833626599370145478770711755793781522720807825313526551032966187478273673740612201809957587662908925412278695119267305510896998881727754770076421724522464686636076871006466238065414878594527170313119490151080673412637774790343668855707455756204300999545014718748527356094503854687759372699695990384602443502322917540247790129861364031813641889712217815854232216859921139179629435358907116231167279246194884603603107611568139154078661418090683683075041845556901639069007500236627331063424024566581983320997701338980764791545250115639399827727268862061457101462418785007258998018490022035009231934099213011879818025398246897947583978056853969053183913145960585162534107727285400583596318280958799184372787960995302787042239412578918238180590583930968436034450919143216898460259518641959493719237464134563843266224729783451778867127155011508757283835063735902974876360150747981623752695351672361961510974605979650393547247429181231515391624059095997206240446380691639781271861179191924714742175576913446996939230518341113806546520647065755231525826168643070540631126200454538472794483338632764213421114613969265023161676394807688492375749821344889791952962469871265793925136695558634919111872613909392810526303703561316893386420653803261081760284901891034058179767113484612144283738397261448243399412860370716479628489259434178118602562524303233248005313341294233357679578683229553505838874945979223330808918665134033208078620548408834638987742174562078041910598168676846114998875699331501931425877627680956917033656390019467976468070078271082399518219767332996107678807760545987939640768746909545171900322427792422200875480736005941851807768269956602503565737896058834963308335033713836990847569969491529814781968687390833995604561591189531331428847215524537807648311331686098087847709889037452132695518219697061436905258656727517928732415841984210488933469000288522289157954900649221985919863425780747800839481616367867388703567079565133539443942186477387952798927120961075924449471368989204806465096793529726160278813997437072759926190780091915961493712283035931808062721992999026250611113069580498615252034851960427537139984064453034648986724104927727498892640617330753329947275198826025118731847820839789175491833598280562811635879940826107087009671439190379281523492361791133580665133788057393871734857960092117467633828264194597666357604257975884914079051924919352699687098200761730674169947521977061439460019074020471488591255115374712555879604142887917872900994117981379994320415615491955597669512030375946938295804910821611231395057130407095591566550793904875605843213297712749066424029736029299283833193136791442441866506371159806253742682602641757481682288112964975690827651485539057846424128951081126677153902344913192535283460829113625466269106545528869504050745029654196078496873253433322435702776381298574460798031474460484315566233058088192022201832204048138816881684019008722553974037126587407792472379830408682799936716821083952606058763398666676063073952584512754456712866110929841833130529244137267898666001684733949978829338991432391697083103324992429863999176742262469118381967896391540726596291359390884988231449927049098720749564475946390159592309682456854020974499370927380007651599211016783499870011734267514743099694111739051570071119913414273773472629055231463897610162853706626186660267584599286133961205453045258678936536317335620654471152621184537622890163715059195428174473985717853056877850223490178450416231158059362029253226942551381339858748772755532085429619653602069764441563035582717739132830896583552729247924552793709315108512300459132688593244689582885278220052106949674935461210936616103754931159316436156005492716315360742490010285229032301051338577223501923916666168603723088365340755616492560553905906736163374099012822412137850581828761087675982131028420136622652772662221944349982333566445391054030106481380676731684603499699099265670399701133789144082139715669858216230519843030057605210655118886326167888231058277531204399158657940529378250692497606947387980028839355771271268735354589970625726355500084573105769708889020137448355200379122698267757449017900465944706476967734147179509136622850512083569307175066673264889224548006881953312015047284243406720955685382434814614065852781341117873487565960691242102912261087224822868964665120388261683969257129175089508827606590686044327747019333399785535971218578069711942255746716602623524901782783549690387212069952142408929349558356756221720513642627007257537395602976841370664481297604333785619986945488683163300442214280344234115084711763038694335238240195748131102625105125448700243951030209224645868378674169248872320313161555359307191697792265526545696057342566876718106430085852594969770668519740522234602606080043930567351508236395838611587580605198091549224569821880870698406801447157768300869230786600431495748612535895863540548060655065404394985192739900346486745489565330408431077235099890956251325157613729023503212532778609507120374977253959103537831410451424118429293925160695153323239266266818908150115488345027990727157639175956294064930208849656050635995552371722917725513177049351649465096478781218648446218538066512048043254848721301835892695650901900707617320487149437291674819870753391653714152887600851877760953929783432127503158246591281456944328158575747554717913070687464256190237164407417996437081075907185938896077555859706431188610035176482109231882915362844499284293328636789216363328605501423618086682048293277115152218234145222853434789961262833246032082497873415731332096084997487601538815876988634787706741472175348563060636762983663731891290337753722048802551531282818747929572879812141423075880319956195530698571215288848557052833883676370277130955499455573434738540867198715071312775011262350742416235264410594494394473133570220820035515607658930891960170530100930903126464312706192645086726869011290095098268615240317809729069574330258110340902175235187660011536582994471787433418456087715855551029971445698662493136122772634797978613439556022089077030167891275881639671720010401928431906467194558061728187700546563203004161235106345914263056090576994285204580829897618724734818385998899577742343456937309423875217140803261506649272938059613196582912242912407787191572445575220269064912044004957156268276149702945993408219480587178689997868654725105315294979914906873127338073578375200662795003790162398172872231163177221553576001320386893492005325832195429289601493559357852319612983600004627350364589491540026357966054790703780438763128540656342655968303954985534468853177871168486177093254914130392731203936329795398116949035102865780584409914994730475761999493266575771767335135180242161062880942307272475772888137015348357616093464455552490187055621310733209027828724059855131408763816979086749424248832470738201264815644754052085399719646831870571596305989639812850895080611733635347688798728381603282579381813598949275655772885165088914966509227492238771407951080820004275057059695520869221757662102964652729822689938643522480246806387238928366793109674256901885073613393101726188065400401685206962706277668892600108264915052409551157837397310591835714875398329735621596125677140425640103589469062711071198793810418111340648122372347668783629842048433979252297099237529078920985473451999982821263643938104649201587655523269144735954738475728462737377709461608511799658296243597261435782540110643304005934065471427912176354662568534356632185609438945055951333675966081612360537759672483188499011203073209813696310188534150473516067686576318353293852383863221753285416726862743272663894767457910797440195208364606171963835493085558876756206782782536975897792289359749151211420936057027049958230816528491609477338062522967706790020903821937220491842030345889531312034925622467111585811546460477643579434668908446105473633641064175018645859879900859257437206070503699460352952641443492068936946189945712613057232122791651739244829188527434716623493900121079730938575450117530099882074589122173867587286735411184392717775423685695158289391107889117217296254625985592976541610067447293872312011352294263342328097693072279106252569062518984109503576788656141370854330030176355993728151326213146448858806462318765970712240853523379605499584465550730178915952492804283367359724943966483943877693312515659132977785175571256918620003725944702065746081998977257775266754995728291947826069913331654090524750330339089503391119511199145578753232964512333485361024243078807189872071212308596069043379306024417485192549579163254132571173769241879072683200798448296589532438148375729387886348330741487939834828990849382413480711532128989171686828257374509385965455363754962574450601041009993928528264539723941884750145462484955031301847834869681776153939193445268894024983192439599553737254482626054008082633235730339422327725088035646816814244866010210698760394904345888667925891640026812846141172314510459126385694989811921237200678857623696843591471260168252146909383932734610264189796058745205315873161639672620692380664094022518989380599345384745214858977576329610284110511733462537816303633395544868010231092178700978134201587599690331370287693826641298981577493695613833763153344754729924782770812813926081413690504283266312776725755107237885815276712199244600903785306391432201074157524351203858626175795926425506297360965835453634420047979048536352164163001190319462089863685081578692319660533061655038959828593581812493401153955920273518507124053837648033570733723680313453943625227750446618015165278791630303566661158922264257141378444716173672891358880144524439951004389407843719090068979703577061865936407124089805197198137747864849648333163252773172392237699534919907158870111256054182361256193529414627954410981715868527150332942707149313500595803346660460626618252188281278475172821355906517720671797631374883727238186342401329359755569215844328637577717071085612393059652877071019680935966348725495907413719579614462076670025837545894644381720235835879336619932778170570881654870102529497406445289812024097419491358736502946674210630460749548480498597207079078438415329707088413889752771397914517877692832823315324101707272484822609804563431301698585490005306423841580753834748590099368626509627749597548250881765900328595025761684046102265786041014744233326139967652182112540271197830519050063877500975323918568785826779438758358839080012404768961691459704424943807142070450688206279502614231993949541935691595291280238112973510492815940523510271909554173353890055143784949143907376105002624555701948060677261857225375238701963566739977495992490059790412875950064140099942125896849424082822573638598745347205682052819192139648695113026613872962870913118214657912027487463343628156662156108610021311322247738603040717739650130688649121260591324151950039951329231759835944283764187501730065718124437052629732486591174107853617633498501222450877802805589742918566877332289232626316189411852175938403339456512670795242063987931503928240888124974223093593896988159083389887773931735530055041771037850889096673000729356848422596017863277484032271010675146574984535446497125065700114430873418769010852584976626161418260297959601739665174425548921233810013916353605538303080585742956236044604491902472881304505909714611136802078625991205255141877287109196813116630511125438071275200590194086470087151747203305925391935332417506886079648561127394629163926750565307059638535199673990737818496071418682753615381961970563991454962517373002459330895768736269245698254471563257287795420971055306996439184571920452762810638107112933049572460143857750003888247016823353614277399438529852514944848622879613833585661686350561229047854507197198543586916877606191219975060837190014153477617925900289121264608617481677018969083073433221387668417419805424722478022826887383945378308900776377108904019279897538717169470006767933992184307757119092481674671005798418782352070888968874682517853396548263232378409012056627000001545754832581659305260026059509928986669989007577727001317646880508094260471988200785651509837596872149140420761946705770139813023469931086841749053778288648551267078629469002789804536094229083765522206440054950776134928825010789073498587908766131977393896929360838016273265902486771577642328562748310366140973660067176793167735952420212106351343086898931754852331218826484340769967300401139425578581282709389798944664768638254090900004892668469983343056118854454477267516868484136075004644333022322231106987260503736264333933262704061640347725075716081132807608975069488011197005134194521783421324342362204781626150549306785417229053818289346845141811932899470321217088591090835209090520130372763348616055709578427867521384447141516722971519166534877157437845266272764519431339426776200129966199705844650632034132224632230245924313141521770592305844300051486507991006101820619676692330658877947011012177075831605320120799785160334618485662293209512554329159513645994087962013941263880549696445326608294155449857323814028619401781826230830893137829678239317746751430570811844664358995875065284892088330506911577486672927597244157944563457042736781384036366288551924983264909366695273555625437554039830085156720915380959473477061964516669700765909653025541874776927536596268394815832396295136829299558938233081096717330798041844146831128016355608579998225519482342386146207224878015363778056902175922301933224425895084483884845531473190144347494542998113844885022361074067545067133551447261410183510904454463850766286778703696251630427003500399333162210118552977767346491078172775709406397718358991367690301765807616335430461811591274929800957908513733451267178721696885146619279487744412497824826983076064048015347386247499758310265347179904769148978374369014123965051196349935354992483703303326643015380311606175221739752734026195327381969220462046223852102824233993012742392447013361311295994151502159867129092590868630358840454026917246065196141038385401298674082441616162994178988368013763859094338745379960386934440683842352398319169067612733196776064459836110511300027915382083259393959971760570977170788103876996861322560197155334738723496988155037543492616626069213471650157517086535484616528995145120801225796475124970371991176684682105929761452478547023245350923665234469446419312483206075333264979587204354246276737804270649508800172738251880072763607045459366131999906551669470570909263669825262549031062461153527092845224255553967213668551573571528714949927548095637737097361528074937405594156969435965100306662977927433469751464878654538042141598730680754199736396263841305142207610676211412736929537539838405096777061825455134929945778607435980435549684014685118633304457302407274555791694102590754554447859095829021547777222135286202133549718715636953915425689504656737279443777295711609263032509579941109269566130673739710710490680326444952947306827591545829752563250290098330826034030709407548436537126670152127776377476023803842159835744333991194014222521046198537935338132807373136304460519387280938544191797273339193795891791029102894497682472000182828110183337510590190761002567832415892934988749605649028295352088275582010927836486876728925643089401585846095292254650277182302693886425640508609935385923083429787745247561357404424049611974768014454511490354931797627322178527808420147911408508635182571261640186124414447801599595188349319882869905830371202207261829040315240379569447866982620401234948115038337897652576531003741618975550729076948506900549544274283929241477789371937458000459541161302957144757294722225754155239446537677618103099870416319320268781243392167663164589665232787234222416157373402047256520210331844675551102805189504726379891636964015829158407803444410664990675628846414079547541597015377530095188887306095011077380204723218822755575941553250286374833745199561920825471362302203877503799272258220602602839692358945693752893264015692209432641761345461530949079449856614595541224845908294019624905079989842890684923397407147413020832942054090870039728484457537092874566694094935016347233641243129408138682444747585043462720312555064765146804948560392560928120042656497451972534503435456285609110637584500048087678488153693786037126013035565085566315948672427721597124953440633223079235485410829591846484754803268070831780104102977016031412063663081577537235465517401576870626055417465392456007982821461797528153243536865214691867327220949190601205337720124995176842274282356005350158895680072255248695723530220381325154840961257577770219388783459937556878395941508459344920647208624089778521043986037768870458039980997538158999712820467126165326725206942558471320189120769955355956470291955332184030377507377346450976703325818019889256862925694410480935289657766843392830815284584855825366951443853533860831012678459168706568516434664867155197434150247018604810282556244163845010607021741493297562090601264809965782963598793061631977624198426427346669167919483388916323583153748212054984960669659549121083417648089911018040837191816943761649259191552771795608357663128336202179829137367488995776148657558004442603255303763391894046852092205180863622945048348067835292933368736516907580205197617882188647078390817596771147408528489384019269400778060883732881721495811382376458475147197214467231050977685521862408722361693964197536922200217337922272046836021099014900059431187541986860601649489759583295542732738853028885892875288430974496618187617495661953434879296548711113904188194850505915706676153185275215384612419130568334804745981183277401034181355244361811765211844508415207056811539024738064764879047321478747840380602799289078332740620566547308199043922447769872325706470270924967892797681193313672322099661950221985178614402955812361669598486672941652965601466741444701115045119467763510309191833908221929826579886099348868397972702681396312934715588293378710818032250718476243343553569770381145856171679089122658516001559558476544496130710479932602773258448607817772410887907297123223792428235632903581678763315889566539745453483295942680666096177924281976930537513784860640500267534714579033733988680299700404286663597144274187644311349586288080607139387315687730769019734748723936096386009958504206291869316141874397920120779769966145812594460157176625224778211020297107918583478352256544398264725655591294169850772986332491766179815376386855493188496249538053662663174393964934295282431749355274026656072776537236433797739694684158616415341414696103944252848041744291958446901329475063894181711082426463003218764026181521442166891269959935003783688186315842944269469425455804156281996324092817064308868918223454299978904925773150590890947193208887711678283856640338836949879016022601984228479259630938153198114340777772738183158064021224137104040315425824605793310914824895271879043311516146879328544990098874745865506214353861864509357968570824097151545293844399831088796016778683241208587152337119766613199543613802703096106324679193581831719979970331067266615642500123631005830396657077740480683269152519749245382160425043578595938078299210248779673803546153806573914944012803147763398087053957996134578603000232303850675438475962992351336307123156645323140725062640271456570615390084803226999056935169486677265976092123378209131196407434191173278169717384154442580605416691174023130627800945521840301391182401213790991534568226503578687581287765208354161283645689850545092783326580379396072691309294886314910091134033160370890141378435622942214710654711271558281138120158266553282622684785634534198803165365497440821954397946562056098037389742417856992054955557334713149953332970718093734598271380228979974442740930007161714892115602082890629981800326552392606100315716369874742195118236501468967141506999875558368710903442904528701352357563018941086050475186892656649457464979092161429217298653045412631094354038617203694764411988879863787314453727810020047108765900603626867293494882329774329363980221174382378847273576000595684192850805284636075456745715154561550837666618375846749114433600024577958007648768087532367446411906540376677699677262536666030070637087236489420459865459326665870839408810250688609036485035976271572082058479450847617095095705234647490083583928750421743519367335305697471871168183497739808342989259932702547077330800617853334329767017161795750197819203217245951791827260773276776737437580138178379010521373224635043358371745725391920278572417677091605453211433436587236770461219757833383696508317840855448446986549940749846624491985001183024177611120232411325711160380967123808106313328590908475076889093248715492827824559525573293178785298453382948963678453474298257519999652653260425618514357695156464353409332602084746693494902799787797989924902978995190839478664886327565005724576395295832450279801070724489508847290031714881713533019823559494284031020100138991875915433194201481957545238995191643638813861552580941330303664530568260317872709616933387927733335726599888634764056314703756732552583718886174510761250939254246443054124822464723675168275666168851471400951067571362349067113453513403802573585721089612727751049499164096426135535228882150013066869073159483038235014140642705714540407081234303768895532109198499654187549485183944537869605392055186072415564382452579271692425404854947274547169887641275035255489833431828038090956082178520238062038550090726018222834222131411362050692893041464672379567564240938191629438057749764244157170361343579518374965437094217196355103613760672363318826259632622798324365235320580821033891507250463629275551555251992218103179385544030019352472531121461768709731386125846076613939705205022802561662926579320890077119953952351028790971338133111686144325789871722263966550486485544865621978756481487329238623555175283481563539466554205626779283138031644610905068659663801375300763933263055123415200068118911581351265310201642211998639896055492269999242730242537495555984722500748023835168555687417194727288346411741716312383771496891465139385375970283986739385786563570199199603754235187146111469767375070031487904941953974101174242478072628445918783957675489304049307752577250792142531671157317407258651954361917192264374593297581901883883531762526376616093868837984872887806242801503985236519818739828747263014464295699235406004320107423834810483114960842247691041572989287241221049267753310557243759526570846238419300369977498675919150292048543136225116593048228238895846967466089864726533704913392244851537829757702425425559681473327273335082882245586803692564560486723540256849101630741057954682111672958289822443261887426470495965285263469782154379198070848250197091341218776418569415563806002281946668214448911613759505421040892532101930779436338110806514981897868475066729549013842759847438907823598502128477157744399894362437408105630362105280279123899347744678697953077837348135593121645804022414883650082556317166141119846146330445934717678549519000827247301754322067649028503239200871125166571121292708451909183313625369756729200531068622344687908296877524494460660010095760124890597075109839130408802448553732250402148841042491909996517044953002936948281374117528501237319083961145460729787069423507027451623244774182580221164456593022504410026818425996465105851930302861504229917813174967534650338481983700849621423834350938012292194412072169180802097638989584037516521151046602515380367818259040822922749565186970330619305844805069406379698924761824886701317417728566220198962311722349201172399737474535753592926460644751624435466062896065400669240196505497634875072064230042772471712520779124994705397170481362610671613689488761829895038427641639528451994408453188693264907618746092321013165142968302173963414887978208519156461126665174199918973277107488261672991348197623944841217567746961209663182514079868032625260650844264884101996771688006706834742060146817967695819859328508743405412296297954158663611169084990503062309940297232128282876197636861084488573535237964486438673467954218695129106852375669749403294347476563214530635781884715729094556005079016301748491287076263671897780790696151364762846054396951957059927737743649844211908584396226538765160439509192159989859568357527855916205202260280753674982955620037781136191475160408690894754574883285320753445501633031511307641633380394987532387877408184490447402764161440647986710751751628823442768591779078687457638625119008944724968733748393227863734636305227025997695807572460564833216390776740177838956157605569225614097646162795865033508172127925097026667944802883126693489773780923443386724842046729584997164987095306980128095406672955848814687389403061160469865433566354983645156296808186533691799310454803646375942866437685617417760070922067444064591038279427064868735485549319704449836623859137204394551313107033409984318083630514697545400269765746746709931000051876024624536911080107866090316736658990612609546558458001387133329879115360834982831824905737388033794597402786842587244620748826368088590520777353557754714565386623575538241399333426583240516193295759852916965198827438911536621694598941058748499711990350174596909727474383227124519474560773268916367623441698005352431249571358791755699836416647287729947796898749409877431116781550802671963610688472448018514841339442837399808300224128843664030077512838037432725328288560362257669999702230672908120344568453151092748877348628380965821069378352603288948526688108935257063806061077119068647761204731650540680490811675871949429483370112865405974739124546944715523410040946879002780472307951931090249348814274328233001130144364006983191820547336556813869363483962578221435429543898739222980861456762089629104606804132295549346888635417525725866587482721712931352695214654698913620189357790260359003398321644713082636999880959646108864943013779263701495251598810387305098582955709816309563829893809369078378766293059054988896260302780994591037555351662006057985823318594487363358239595416409993915059813111113902561935511781942758810535436805495400084750204434553813117132759848378159638968257061411263874837984033873375068899789286443484799521205395871283368858556080195459829572342817132100731475965321398444882469572375358496059741762204522564381657442919765917007651499830137860841407775189139537638504600182061936474296778975072846504840896889096751354810230659994630530960684216743815573996097255822089780766852678419138796998873724945735909878043781149741292905843705039681895002829499952291142138152765885432344713298719984599268921073077064276221236790998943675065434849933709237971268478529087628256992011228361999202125274958227031369537506514595574044680609212206720112437307801733307880738520169512770785115183447655028233418538205445402730614646355122567109629231276959719063635687349196969841188481494617141021600719897181563487508075178275048888463671049125031531681397158477589980676446676391788807746568431570039837837411444147822044165253001567096981507567671085547322932358948777540725822356050631100251209683122337160396864515189042983869484238209262141998878551748081888115150670366784001187211630799625920675049513893470862881548252911873479897398905489576102237286669052643658110743441532658126580559690771221801751299615657440794748674210061670608844796828769176805134830486134184455169553129688970149382015315399798463241862434557638236863106810680951406818832593865003947248304322435836259989368604956416534293475612550817272101480778515668801434539327572380487749709405297908999287844869891854862223119778729194676867636986397556847513386913770476479143370983087359888014576607686635953047431899184815519900835112620317287530745051483151248672307911265239819559515713368104941714388224084558255710622209914596393744034523483936168798187957113842075195777161300281627848532722688667529117778330847459509972782242683994285562314562123377787195407973478154945866764500377667493225330013530366146067683288227346107687626603214394098940257864766710912130658504777742741746603731468902898921708058982747673878901688969464667675228286492193459553680299895152087803528390834832813926520836937800503257591584908969105197003592364614974542218092801633556521584603789186701560356383456225139603500534305238316547449662023857606977675456407795352297118442837782164420203484017416648001059037659624370728538717054773486344289038904643818343369145651502790327158625345398849139485061675023658869461179249373607923909816032737549518762132708810081470423644289430558767347983644897078592549125997713358905365421621121230441762069345950139702666891382428538829783538486091276271075273012748635485104631525034262341757710151035343587656353875171908230469584768678843362324335454231079155148659262253662820097033193294949888833451313992730351065000838467586295189056526680625957274829825656154672814182059008587870124364485426389020632483991787713597129601530363591507495929705813572351376617098633880919917991551179489177846761376522635597297584574004643595634807198679147895659977174063391719682009120100514657166988485179257040926646101993813507024707731229507382728549593263695301011325609095758604737579549482115141618602673495859962454542827109287336658092420353551209268649386867178650915092012869575979440627312659604681781965254536071471254463512387524056973049359234160214754208945354724006338117721461965176078383201249152071499240553546336947345347957175416412231563233462898636914271241096863775922705111139848511819481898822175980085860369670912020730200063146501472858486750167546608221716612396940841412552215874932242575537762820103666134953442699379173525933378600213588806780569439669708650415434845498407056033094495241349500749304858301044501447871569684733177745908822392301916997987562627424496521625795588410919799873978903239161348885428845676093573927338238367471980723201159516767560831497542785590911087051130584227838592944163914250284483654912914129532718704610940754699238025969375763078729887880669474812266842425522014749446616597856855671830089315592683376630798290782171466375303099450981088288314186575841428540049107777605892555869711276631945266394314936816286765453754536553720514264601854030066439843364110455562193135458619033108666999372614990125920064895571906211374431207179031026801121570652115329446465697694132642213990230384306735094985239722356166639238817630902465530270321380904927823787599419836176259518763379279685805094903859625452116990691843500331228786930884000229940616461762545092800423435645439835600982383606617913633508050894225402502745187959115025789661435942906336083754480355577676856455272136321285995843336119635353657148283854542576515207565270577191902154280630993740573972469797855197267043069074298864762453604043217104067022863369855176916018868143449688366826979109009357994610107885086916238505017250644149380226383113371725676860949093513126562150949267380132924039845323590370120024125798511842999006993461834956640125477555017691877711126872244462440964342535619698778995676376584003484578673548988979991738750672529488363674810898355962800326581022113014426714047549399708721052919870811092597326138468609297751354911710068053995342797990014693563271575379481716502825569095035962500042869511897795090808705002518610986687939947733480016721605644941762889714854154311742738161031561104063269952789243539000135474416861350305728694955750235183895266839304162747548494525515679628784508953905766559228016482969259595533389648296764864690434194137280729190863359248838733213218369504956941891604378183367668397745460471224983828937808846285895940202440039026989583054820049863179277954745682432729311409507188537908676150914003897064093035052395746927674789547389997208778461721427489509387544528526384295186055458109721211850215561571035929811618386299607966485289513754965343882393258719577422200971186379496093125581616461161800825326553007344514962466160028560126883598642601800868952313863002543380252666228036036411284525547733761261928298075491967423339776171547686357440963750123829270086474690532522415813648458115350413447570003841590826214874287061048635612415232553254506938320604465993699510979761180727992816807957113329655233522944946932693009878331736638964835091540770177888740472167618330294669104186484686960950957654302963066196644825694371560159119573738908041348987751350360444161339382280915362715877105169116982374997406089788729276896879731905646416133353375143592931197234897766311772290092689387377557726859280463003425810685198658530798787492025109479242752179271890087967333722871470155007567693488933141472700282246459538480397468151973700800092797110309626896646138265095038447613566421098739794547671296705950125066060712233512049336885912614137749560340468620586628744229005568839853905565840579965387912666227621791426319725877826044770235478754651309460472345997923740516814486430110938969418872479285851554732687458418297368529758422998067237287975056359763441113147354310709485303688369476472219231968797042157748837351402645984172209360540164819953926673813238608619165693266531806807001676564569871486568400131865397434722370117080275559588021122459313895887127448811697675470335231958598881276390825260109330221745852723383969694418628116978819653250534886033541298534495445077154912976362652673442683242805456519915419151525721949550806863577587040805123018131152253316496094614307709869962826241515184956810807982789246138834873124487486615084510512148829844667308962221435966039056741637005121050921616808656412694115486175574848692433533487337804423660089190673351875069398382767804766186189139648569070200539087197286799998781893668940110983220000778524253748199942070711479461812710849544818692958136605862754546661606240293698042062286471419544219393392977762270652746243822084084303910868820348197575423534887931719991144076182013260895545927096663333022531774690774002586644076879919495952538063616432207431261526099321515505768099342296188353556660099588551843566604797507831496151830435380995297996310272436609794479112386162622968457491195949417733164262670714016304857606219409255532905503287828438666255676391851264740891090509223673771278757163517776459021290950038267493105095065919686735633168989639322024208035438457240723820605784034615384684897437674949323851803981226952366623233493300784959610754039024678054170342700325776674775641911165456776040450342492860446544283176938162242679190585130775782955412748468880355716341539962327041560506389182657705795202373148532742519860978939083152458530694063962464110691279499487875760816250482575072426905875490148934010003775239325642674170674193098888535381821208530204168499616420376433946374279743361924208576177461653120579443574647096308387038103547299723653083805518389943360988972515806736036856608861883849629212536869849897126174981641949983977721046512472108703983610325802431557080466517257454662260488701955146030876753597671871144434201379883464609497730962930700565281856832189780112360507602939305157240983521735989616505052281310920300388782700136641522154141986720123857422140288044919146031509303285607400627673402219194644702760118568254714497334185018245635522668172060427259268157329150016486187808565372646406847240645600590093932243551433206354365785302692711176667412566075823034603563675385335477759293345539539796835146379505252295938435288324640688873720721325080612364062533090264436638331178334893795213455858472964637166130455895196210269297403402721411057631549201210609633737714874623007316535997807614414077420035591640123056134780356864204952138713827464803279818543227615260144592281506104742171159819268620087130961923289485340024445414769312683568966428967292240507751010846913942868417562431493278372549596464218848781326353423379584544689831494585020258062504952897841205239738663973266429892504488207605945391002437687166543190967661671289945907207878983458852781341672531203287208204781251191629587900187501502723221159624989816615948916314999103111761182671753320105758422990721396619706169737656344819397740474924827749167506760932200469497343102240464413799276375306115928031674371431272673982547360873897464728283005049649578913137074350573759017989217626472313236112982953488344001195652871679559389961200591760438332215792576639976971045141940302349007010621073044052543835295538631007635879580273636947247511221398797432943859504332837122316615028558133263128002967852114435950050571691984346703506470526922783532814118577807916629142666159130745186819625110283716672053465692256753889148312871246455903946321192684191023494655354721681317491849086751998224102421981277254272106574932207439291085524470241635428525249731739089519482697917076890013435887546376205529242060819851353501040951676966562319682531919538106791889101458727745978397795743546272141780337816957978651236451012346413727284188009107515179666695694426014771394531327083207492992376293510157900530212608923244889399210059362870447215714443879822141536306005554131410337626997964791467094563365137571194524765767328793229678944477440079304448476671155507823817657784233314298985529687850341157614514007070773514412675677457773038671055890011574741986027566216028628118507030666193407447696624532973351651217176893995713209272207392271137040511695075583338980929419395623598224807409498017311224458690859793589049654663638962202797902943050793100588453383138294798595478776154895568720290199237686743763599620626457709346055376988509776924872369603533242550524650514753587711374034836878597969011261316776510166760903220003682761583820659057299200367560759894236052146797898171433241099882981908459068222351800269360279355903884330095125441973782223592059737555029266941434724868490613620874305911971882963955432280276085103288789407931141526656120397491561898347564518817227099069899977347685492831989891853729885987225291573651905619148193174598262180517990710805921797975831175893063056088808484694513169485947038694272487666561527035458389283477431129193938997271126524929016386412985408544672233294124068718948343087584121842561789591121241725471079802376567300134389859442278236313945188899797376143331099284752637142644600302070239256374183337958038921284583040766856303445711636510434949772789430277689107303469835164657230131139031175213890543981316317417223731826202149430874129790517696691260375253778860612242853305077503373698118037012512923062856723237653522672141860005354401494237049122019476030356807076918404925988789043672572893256353760928027673471201437305845235978806749988895283167978968812296082976115817682409001546637617739331096134444987746551595642039669400019619566370106486327881004101336569779607112772375567110084755267289282529426654134201460705626842846964781389841935456199461795806253620965036103964329974091764508484594173698747763531335400939624547495181342236968623473170224339449456544729808363330327050327509910782221999876065310547417324802593197381550453631332437210900797054457699798024296698955316806121825296998700069301536254109750315839477579536437420635534412031787945728308227041346547438755419685568161437472156168714028975882903289239093301813578316387606576145154310041625789811887721222820559350851625492698700868575852245647205865351029145275110055910379373104410493604274041778142108102288906276983498697875317538193485758709396107523376162889032709053890385757578559266463348017234150854460171687497991187868402132805013587267495121903299633343969009718409877962818878681818370936254850779829528096280055265201764217837054815708264700191199161152499724527232551960486105346013479548918112965439060655281122042451663768918606591960194831518014811015496549454509176687106640190163711728876335981355714600159106879405638579848404699163967083101013777903915895844294601316984065878286801446729218854821426759706311382052016928787177645508543331079904749889871240150750600542217833711562237524652276237359117973009512341768269780438650640604458840671571415726512324084498347452947634749644023249369863707799825664553080778184467174060393860905798213038734249451306595586086418392714312079397797624851756014277947249363115172167399702955147712242921899828580910375239709395536316937167607009721405157978280590216491155207102965502695213468855644173839419663550161224837570590206770562640153580253456629401265162406724181483182662845160047824423873319883085917637290195398676567738561624869933292738759552651561846834303417409922945026980034043552808822869096641416922132647951379921718227532423179622074807766998217516144546587833524582496419540561506637538554494188710872742050290077436288969449829039083164218513745389384134565135191073555520630192463095574550072064098415686260945126759429776121251682011264292491207641131967661209134885780436197792678518924720559066045045224819020146584854408566028327701710031522281518750203287766296779662810497327858043828958079206633081183992073822382338399339207107544441273103579218882643562295661364230589087860168605062833048366366798126097268116366938091587797936852906831996737902526289504984730714893914998577088747286987090471561341852914737454980481935081802511201380361766565556833943427941971133593536820500725148613844471087507486277349511224737788190593267896874733875803625115271048464660043753741391862616464404813414180989900929450837063791997688779748123856232939546898342052835889244548320692844320737394516760790808056974005876605484936243413532835114941585305437327931584211305778519177933033754426068197840772556788419555874336641730546652231015271821769885251405581085952269445485807289839902963768206029751677750474210184223924912366355519176957829461500793031703150417087218836326344637821854653133869636968884963787370147275241355425457706750614639612601240562000939184246292206033327392207895144109322108270799474162652610524276094454957416322009816573615452065337474821029414862488918135490866608567603012512507666930328762419998746529777912597378873983095233264750420602544034639048423356524928810043338657892098627720925729561547956090712337646092541786643422702285851489527493882372300845376405291734927952697154891921489900105388642964547921125120537415984126757508659228301126881715079324595574382356130995703293735295375421930408741740299439218281124990421546870005576310189181707561612088532161368029078836468238230750466865064339741591585888223199443961725783437432014444104368856456523223879610032879443452758202676157795589918025297886069480823008878923079879646559454582195031147701568056245764908870464647168754477663568072812740821419064531255825852873386571683683707396249969376088611822733289018957315031442985573538154822210178330444274786999739423116184863158528640009352819638133200802953237784693798907839785580226221914700120042494666735691713757552307600193188811481572775943752568652096969582353511575427046175601129547110684749701901624049400168613639756906646654964282953235354991137723763132802747381457114050814773576147862159426115514148802034140726700362538979677563529242382274851611631898378973356177636907945425730036916950277938406983926395358483578731139696856223756028783760681866045187066838316798176123602990056274844301353417384709714089624134119941761396787279845932132760782864427500840180324892929222141506575271462398231037423491816429871630086387660892944821848233652479344900131293828371879246628177957984823807542014633620427194142348495673401641289806575470828657599476089889038018342148908814508460648519681157928436340043875205805029086365120088165519673858025548464986750030275060384229943065807127340066628927497470151000948380889227548890745480266734040355087266098763775462076887595636255146902977063778385883011910426414103179291022455109876790754848810322693383172048362096411239146959091621609545287978785349945311093904567382102123042945509671965968061568349436014678463034737336401219873560913498677156730163771046965511171404179147325686633372169184510453535149363518522203696840110941100319038165617056712744729074320541406884961947680992747468406294060048313995485460126160310332044197886942862381562123077761762485398695111107763267022517514408156245764712374112857095871549367814249864328294553833711151918690123741596702068237119081427841758317634463073745375807859736671698686159239408083407556232393821583131154398618602003167693970581405826331165874380371804773738332398257359633183724980591163350029400589086834433657782512676054315099101624546063098043394184094132426494591330487407996174217896436908536388769016932400642715647616168476660154357651245354890198395005121667485188180565807942277893822724504604614080379483287355566848038834584168516649623405317171571106790321571208712763038530177219238091052422859050205802309567253022811852865318109932323851135906801347748892844340350825214169372713672537458320487055224595906975149267808915375737401410238079892348203025871669842775630577583562886529753097248658406890460493083218441773906329011855307905564597558209858132746678011986413087614322803888591544694709845701889945047950391849710851255439956629236577936791670711709482111528906617821077022603965152306030032872599051844183323004093977328661386501195674667177250187879763051036643576629489287945067619157424830558166995443642546118569162353820987049068822181803997635041504136663022699987649388591083245816788224161365160364834679420301607235230554736388166006730793972242331148566683958753023584875787783986552113188755833192305021728259101653776900980088501966186955513740021302501214355832762596473602322760464794477807196761172090750921040203968295094969778272080877258924505204954850309620884487437323371930416632173579652892764637445146781776534766914848038951314062338336216856274500809601071836439927241010485326001105811627973664477118681446037733383246351758425704712975381980911515163787844721056646676111606277766890549344535010055472106447498982091777634336619862587749676822211191592210568374783654667823143079581576122694315542006507506633208676881584912492175405027681973708460870562709396969067038017196329312045752106861572848849792631433569099868948060647694902041533104383990829227540705796278578882342109624328379123621937130247192106081328507557649675762740079164304446526427658635934368836032140858196338784021002584850564604930157481318854402890457370387014941025096713545420771945889986596126600963217530067467151311242787957399903409162396091538318381110957170550204717908877241509653213832830632351994124750907350133997953452628196803146069817309448130000298053078484539986684849034829035426430555007294566507278584412757945187262369538088730603876286095460559053610758904495237996308211389319371591273582639837543830269798773308893613060104254425363748573491052078829375009549260448854823618468462478751354436048078530563785959041557777634665678395715932674060286235630342946360321673748245963749950051894484606125971586502548099099075863762527574699781640063177611360239867389360499809262028531401631127176013299089508647877904423674650193585839369638941881978916082748552922772717635706708491544882261869897195879827905535723743910353426130341957769211172855745954931808530267745569733399665619037308445774136595458263178189363138912728099806073173391241287142883021102073005816620591406119872383908482226280799934608510998246184383601485733116318978817773839079010589472863907352782253875502947400635914720317238124310780358002084682783202979516292212742347136903780679572433940935222095961415852251563612358396342705457835326545954480917465449898238311892199468162812810756818732226054613909814810990335887672196267290472397321805014762569716278514444248802574644347098190041620309773409542602562274940477063584752034582101902245469215716091118018759538087976881886880859279897690308549753886354601677175852904433201080671871769018652766619265584808227718826466578521933080293326477194228021565951836264151709155241518341667403255634065497795967415541019031117521645336680942375585211835686271772723888229289011433864181852155052014073099177271834749692838178386618153008418072637272933204555262087221858154198716153617650384944568235538988857612079802780840332690080621616976192137392164745355020680819878298532175616855798545971552073569221137015222322088946024629472013368029683444988787554174536732345749366043457489818117100105475876408255849569409580424739254396853020422034006921054140395331622873576434227760261363444041075648858215523467127713427259887164075284863911927230953419916875608145863512142231519664012675976095659409270374188636119927049474487177052366404824424367129271708285323042182168553121393082726033572207115804688757192463243585309018618218381903757427035322550241153938863863280838791967699191852406814343534084444239301468135657787983900337557192804410855512849784252772637085793552247019256102193694633679096490328517056285674330002124792882106762030185617840368566303228849289557532179144208624870150058512358786742238161405177884148657638100305355832062772863998966725604131831227617066543684072293194856477653678347301097825474880206537588518829204381824934249195911651091944324785567396908192788964859058161835590240872968916837599020430296703208616021480890570514537831122555638778303632216343484409175580287871745175669819567780964544060189929871503990816599822549376483398034023178347624450789895632267081455106976711749247654422018801192845442305042968156386252057285507660098785516469808483518691291783293001809197519627804403669114102501523607715675707546543229226782488246093895753642660569657384637092954849476369217722952396083487134355630968540370938740186815184674990259856959216513096903394274886743048541524181355682447743899425842280020163395856011482333112778575204226202751029294375414711726451544536236907028510778126038588423516854799724811980539965095988841037998926244290764894819537578669251275323454288217085157614104577320536348250987039846557019320589859474185799746112299480320166228895099381817586462797025661043121771055808864230147838975020941397400624776602659275603217187272822628488997588761971371227304878304977770759871064905938795888442615615368880514201749174483496855957781964890537740711635408559039804994196616835338379820408585727151344021673477327475465116914335018456199783077701174215180244870377517223228312842915151354556185418440192758625940941936275347173118921765652613491872527813758845936395456995043027200299446946656642891925078775955505436422112006594082937743465645112123711910587843828105664203955744114941482593010185464368109718979908415717444989708718463327586584745885310257641953502455400707858149603874112143350059382610239685705651495351891955381096613517120608190749641002433604522918922191035155434195048390221707339981961369333102698095283827847236456668176631339811397167016307119512200421095941436538431994932335126648866385922570057076408868375572645051674635324264720468804295826082046598949800931875642461247624301356261891305600710434433360139979081913467168361050332156580559539545739177647757180743898277428295090316570704555452125410404757643872534480508880907669459424970019100583713773527726875494606436636374201397453403998539601000334394526810724109625810948727655393008418177409625065325101061941243748441920518648350915432323330020012239521148223047307696040430816707778051858710730163711973066093911276358050097584877879841584411429739403833971112763734917867231342072298185014653410637274661653469753172856447671887552404657842897664747792963929255312412336755313896758775494229622270004959764801474413139151882337636764950176761444751802117322018992258002409114102946571886631606961534478886793799222316201296587253594569687889735984761761459676586087336158978042591664100575400340434722505440355764287697613860852947085757454898979415874450278960585566367983161161934987191350124667576796704766463518594934612016441022168040372843409935095310417376836196802011824162235614584644724596531202029635959913164018832650659208907304750844275610509508003347465860371840704271537732300754543614068397043332128650174672908421718188148434775690748914678075733919604646938069969881543185371471289777041800203364624488989750492006866672789544045228152587417100855188579670631131003653770880228671858429801410615614873096629647380750911426974967905940483564335253631214609450982608849160902392380543679285395991610349707520073164155066259220812390183142855405383501256985596076238259634064089163973343840746863594111416818319896220155294464802770452787274701205939140612364656895878025553312937072150722560583585596926314670436314482534278593395952948169273264523738722811266656699614944219376436877141440847497084079949327987355201573620974093592629731792559840764098328909171889253273173977858483189405639570798557619825438103311810037240045566353621508586699108894418285457948147670963188770378501602574557263066783254462469178883996856993778628177041808895684960355741061823797228301408290198611681884794886709736909060494131792421094106577249226206052834865275232712006551839245573978757286683751187746089831280033590893068640080881215988178720130911922213888555793244564905414919211376282487330605637011007719767066945942875078595279882381180317033496000480109737295723434646611740530553173378740066464158916659246637352264725131880192277645724842042723263046041186094704574250762815427426429430644397645089285821070144092322138062718580209968319827464456064586809114347586506806151817057427143774152952683727392121642445080973495635091124423714613782510829342888518071361921256806094176715247878231939105419472042115105443936969118634664506696305284414704924262092087918807976061700599753020077630941045487971499495856562360402643309747644960576619956957936466941261497346734805001716035350246509301570037307034465225518536402231300239388187893229305250777552033374744364368091861482119896518082340271238263014545517267092714615381420777987626212948186682159932958848480154094854103750251897915323902277792741535753037193183965264388838970694043580339301093718290787440450372911121778385907581107843417952976435203319573931945248531303017658041528386613316093665836936260475163804075045306885364063451399865301882051998142150659688826168216641381512022459557465430123553755091255608518317373444075781431286644140160479516408212686022709792563955572611129376934470903422064137739558046949139775023622653230210482613455970595290357442890501263419494390868744128945428994941099761497142419670777143872485003851052116971464387156766690850137795233198283739771952639863268820324263860447477477353582144402137669103418729303218398053689526988657586960952313941001646038234778413169745651360059294007890356472329385274398098972055953186469118606382038685570562061773366893691487626330735947898332224688586754132408946516107111150905067600678268056068684786291898594977810899798046879707870523119288946055562535757418033742904846804050151193719073963978880109028561884234893297012997793797622392605743273087618090316459698331534800073988973098262797665420848423052177931007590407771733217020803950574601549732547689722407098371442632609736331355588765293031498482638525799745891512462747172212955321874997143811732624994718937763495460105026224879505168649104080528934071964549785684155827431493207362942271480477265937739547300926428941508887534606485703473872693223878995515776497628372296423191539632353004829106799680174914216533095074921748477143867504665004656457201023487609667943951807046309653383583026451853341914277097994679468633806433690183942956438310858629262440219770285355586495024281803092825052258360798430541359469465322969419718627347785307568056450835673031565695000655406446278543505402178326516646033431838418493505227044289421800961867728908592653457508136316805139578667754066792772868115333707477243876589184422986341151100496808549783452108766789153703175681300575675377159522191408464652855528287707823227950305952739779295518264394913384041960075411229923141764966767966090927496801225946580865241182465151801686760792415935525212277450081976623159495767451266849007949189233973764735879593101609581580479291916103611120712378684746527744317404817350335786937600011265102760725182076801380871456848167687877838248677311393513462785712856312715856264077396551265827908815259396529721395872926064391016404875912869744099263404140492354654144191667051544302016321802074952502545613708373885059700391037203089443523429527560270980568423009905769888972004376540825579031505614260133906089966149795514728090810048749449002840297617886775040577521413610837142397552732871862115441369994638968259165370931426046704861435758534841354488788224282521428854336526226364445609548333753862764157799236598845748309872876422966954890666902990450926960351442613720907074624081297662309507090134515415787534816556390084922507016506201682678683563430914844533138815541292719404719160508104119425020985392298719537382524099298979614388126091805217521158328376149470486866670438243847362572991856466039797458919823822095979921869541166033547942322778931071767164551158301602898997887238965813186798054488508748048453137857290618272097533577786149910115649533522663951452045662135522231986848779154637873298653677286819377996284769464675460318722945775924678833701557368275947221538416859785623617214840289185098226297138709032710019614258188326024046274452816688322525388646768566796342132822841401226605420360962788766031403853039374623515551374642250770672138135498155190841647529008810245289076305602247004559837382447536205801646111720875485227327771681421694105663823148969368525543816523895031407938872064600063688487931858227328638304028473723584114374791464991599027032975761735979509281250323180340636273350624434953358070294894326052020781864108023225448997250387589887957020767235455011175693399051233680945651248095799565281007113109458047362791957920832524823163043947601784755007070519114156090772072968339867376334161260365533795032969028614142165145203686038023122705633307186532326272213466121958630066528416415594254385813940020181711024884860931673238376617178990409840494151984913229124756652785328012483565382056802603805255663210232738045330571325460348598537371552885487690234191903827624026646019929587542955890429982230119037054517829950217173372732219136678436009838513285882376658886508372064244186025968251032048005162641762579388299809777232700484167802921969399950968818654363572006693449307254670999831673128922140754636025426323668392989479319486915536733940058082050818259001624051020246795127024437207765014286439519270855119045905154915153235418882517892435421956905291019219212942865334700465033392726888543528544148188368488170650781903880835838432417956758633122565079213520112795821144160729859216850905227139748224452542564589542288554375734738403202935559022076486174155647814286361361633095580113029175793504214901303222027327751442590425852025369631805624884217732526745573803274683961329779936572504834724971234906981233377235842326699286102021135517854112009583784901602371244239883600633572274443010504325672866844679069758841667094229641919576753195765689024519356100391662430642510138922961681426934721180624839717899447441950973652268138027701058860058096251499206394135352955988468524228703613714791370565988527401085764327647259598570607928837380285946263289692136188350086134911337112706387025620162761887612652605454838104191847428552068757060720577108750708892951338979184975639601032158865117440510039728528839159286395867630561278205414908003043073547413488759870910914903950246027965085677537830322037947650232448210861994226070952187874184918753022831591074911078513973050063962730009309961743844802934297517554340953892350339648135959324263513227651108748490160620517215119034982627442005315942305280651453898269734921118231202832945777639668213993989059649327138419613652492023240213237247980439430427665999900360840694779891122265883982426028667311041216838830248628197975999633188573743235174183278319004619448956497881465193060322383726512721943973609890087054887383968902538421989053577976709979375956307535409795660106950909899819483504624187259068934706027265983862903652392111236486692710701206321172740080562125179825692086441172611330811261129554761921758052102980990208977320986759686585668849403729154037598614820336387505948278120159420083914706517995491022023803578231863808717275038154947606354876580279306200989814061691956140518363242105135746084753020234003277607231033992915233002877234983183341025937794410584289042286492990525792037658224313448888229494468256956688085018062146061117874500470450954123856427776411422854801096755496175888199388822388270838209794614669152673474206395395529505540742476174992919122522109067461251144818831685317840098058211852380855533984660738403356554115303160676915275867248280354568826912626041753042901982472230104763826559008878856709492704423654736658903639405641217070999522649327742038923024402113432303905449154794320859073812837635761447401152793482540303604492815873441781545655529110159760755613355995297056351264524702374763834551234286793921151374831255419179200567696339359954006439693335325096949979142650510799461320695765009745664946039286550867088600409996010461151740245279129328097705285111114901703876677249275036686149601586417504878306466032076958940409659037900970903665465973521047135127468023876146104568431318242498920134176699928677899968201023169144359046693572300324855089389122145967769983990433891118198736057195912477745487072228350490963640575253328263619963273500820351367763228995492684529476059476267432419606801039290340632355397011083032029433689318063726405814028936864920983278953841198344152158750748817251470137181496405559556847800325903907741442128488723415264106062256216557595665725805823531364532842095344048615846471931415913842051335747462789362979719402262826436758163943592082067533960323299792028681175053918675485410286957296205965456359823594894772785584034121091030808961423817145273460285223038350773915411090500742667903591846255675900490005674247741778193242373510094657586111883261941243605206367651207247581598827003221790209833756577630577218490934809570057780233838430106925175106042646723168523910947108884823520992311489156664571718583703167960936861400328399531791519267613615065569273258239778276958728298851378519410236185963754786155938552748836440112589536684548411576623779274921282035223760048142579616962550616494270766549724212053928568869160340196671373160191255581355172405687982341878432188427406532781323933313271478577372048333351467519646659595730016933668081605722836847220258151518564746610352213735213553938832123348055708592203920672268610997596441994513194076947429483580106247602242029573378344807855098561206197475589085717443301735053606721532028586142456745374565124684630682583347399271530817367050519904453134257997809306749171491604317575890415473961990309238515715710941213481655462528602149141519138653821873223149318739621157225052078689738600226991415124450430673673408397817262451220034428689379486121776621168162249486581289634537077996743937191335578054072646296369203952638844553449921597072600643425468531582542007273208951183391708016231249108901528660909443212731911374444768008759856775560344997665436681897212770208569100785533917794376950080679243550914903884613124053824345384347639914962495725533405174648000364929380965147340035540538279244191932730235050221856668607788503042648538452164750900028228882345696993970809534969592806442482461272705802630795176011756897175004445968462113305945845354055799168919589980524705468026701782035959097752844154027790320793851075693776054958821598264891848551788464267590644606925584971499674693122741751361850415978114674203867415162126007728281877330647135933832679722241470334641256731073575188861956471829398756950093791797698985535881688898239970548104852655162683485958476691742142719012024894750482610791931715138353458786253503354130229153724873977950777078707556701566227854376259721665598850452059100231761474647540244038827166602366746007315332605750167574020008728129476762016071775065266472186031326817423732006968116000779328723117818841123759065818554414146583398241074237387869200151941516406130970381664973805889575936063432260717155134401688093450494226647614857117136905129627655666430901285658545837300768138823807442506953287066300604108272153857231739659698545374086496536736779406438583247464187722426204226542794477119879634826444163336052759486466148930070160645412033936626489508100381390869748928245633737820168341231342057852620537488839244486678958555739142438641102648095958502136068664237040304495860588316673698334315250936689219078843900839602330545057579899938263495876274527859164297407898446368669004194280990951974063480741761866508885958294837860889163646378510635297750487402330967391075028480417377097033770925008876858113748903472102101595122716467371352218328656624950356949243176797290206929563736379684682854193178929614037129607338141816672085168056185777168888857606930573844407181735452953881309389970369494017223600094258325980695722950081807750805659624758011756129753193603329419240433448339605661592404220558950060374694055212794335152850248297104134098857758015226705104516078990378610136986803424803578660256901043656391391052512706341510436426867715279802830177106725828658784901958460953532748687300863403438067964047147566006901928164814834140040393490922760031558095518035361420565048562414253274426785072412642963412343981722069618446019247568030110487752427104827167353374393409166333155261107070086762217136504729493030124443759847529838596471466635846968516189142469185660888253975823569261732659750501731518635260941219397653940118277771915011024587407189391049162008765313380083995296742641109489386350692168109692921100974454631795328819919669016908943062719898466809472756680110464467686900878508455197270644455347778823551189157039082713259308561389582589613073822771027941010624325196660262350822347000701228190953132954129484674836619418653427075284197544199461364213722089201345407114005368324832626491076908484846041516130798000070337329367787828990810551902714927291451453307765905909380063620918317185291005144161724010816035022360581122568859335307537997804377533296061243297465243672226811932978051887295762819511529644271024611668224955394882754479708910641103276920411541787089740182372880564858905977418951872269851473889825955911343769113990654416538196022414618819272523562739908206214052682320686736689812369109414414504571017476261649259280431376067213813384760042800315438897329129021425616065082346371399587508935983447145608626934156994921841606450337457750400231353428066467028518291343887282057043701361657692043811825914292845896348996467610428698646872977939262305184071220523181396868460743185759099106511166774133384697938819192497154701012140195471867563460968984108585079920487674495676997935658526240343950577992568621349356694453088405207432045124892242848543840007362836972786883534107891771797298783365281520755862962031393764747672470217108148955074906816335194198257269008080755063444833091596203908283640208141179312396153339510907822867270380830458617653309761470633674705310354704744396488964544641959080975225361959480505888974704214987561972131855899543162014666928254152928216114332431125341627245576243117413060472530827285829365524197480251771604145936951563299599623418618169831405131770107546969778838405847056231235101391639988950863339259726366877295068365065308823587069988121669506830655692608914840607455028660562232599342761344018715559476696060949329059815046729668838950401820400640101585066752018417763349694466136422723912672554257917263175546582024307564291961326463252451582120378315970447653549437992861630486305722112355632486439992529762660299130146291745875684455383029923375533084586107883748190438400238850129429007320035659829612524983458033078986232601342128119314641623616347677866337060576551594079037123612992390827635155272899403620014239639640578127322259902506273319112199382002784339164120615652921816980073112955682530790541628667491389006657670455180313892679210958057633288105600245893860528006864849161721226140017926380538275582494622446862610185018695226525372207832715068583649714850806806478181212882183376082821225804748281729610051787286844698765475467762650706692861917629039632407203804496589739954195480712883997973063674253121397267828080760966745876568201793132129603106903486921346278492090369854456312287831541495877372523543430001277118029503282701410721996354331883114014640075133150962946383894997007556649892619080939786410556506306829414480486383548350030115464309119368394894219423705325937298726301526259254264314937348965964714397341293305705738587199529079949602425757419566273812948318702342827508838633969440444413304352930882996121100021071713137135782137687879713128383745965875580088410081984841876311979423388177044109451590353875581791217035741697040041398980385995613613154560014803696646172129394553057345618399422125168924379008528820524124927126410717494616648236387044852586473524093425177461590788264681134410909680294836141730652296014949591665133232689490231112427067857765014149559272918275329014171445853196501582715975726198701920177125409251246790969976783765774076458698743827455960743592035560143847750117971246353429374774266688815984818337683275317548542118310742453632666941690187910998868760613595537364582751172383694264421361921427828952517391919858066145307348805153030456180628202022275369218259575420462882528654555967509725802076318885967180604375242981821544084681697222648955006858577477839633353605750209468230090551154094567317259270761676157520892923822291882523015187022145877448612029004464876682705428221817298818128446451448429229280416132958441937035347344924821180283702250421778369302931590151978855988108625015591332370522039742827813359011225919868798176745075402662178840700665605311156601877179376910051175273499932287687950228872390367074079086315787068660588483249073344966034215901191613117773329710953650485523354653982114536477023765078655404680679928138957517381462917676539053622294842975153524217083325623147688706759067934965626182245968559890349080758602079867669283918696151878126083632354840318414890238906909620875647999101382950319448795750761387428792588924178150885144090252521730865592467431154857984140085800244452612609985886945122184551907470515510456540595515125316788822492642842532692313437614401509112022766293616791147978218438028708041602699784499744639110792896306573011351930980154235601529353870421663686973275228125560677871516097909588641819371399401684270173387392616372983648730796940873397392647251602158604352231828224464319053539379149399700168517238720900982733489040023211076579065398583690950302375336918456718329595082940063231899343585583487778573774750104420372230401523163726155149065603399606800649589955782329285661921258806355706883130961807919076021177074743533200795238734907306142279447859727559706887268696055364597664495416260594054466400907797106462702248978573580805622773834912877926874170449918583088465623133781269129922771038259219900065932464574454716979227269846100490824095807226644654954252144583400350073947769468695962125525615280026998288308145019175579227835310113479573780075524339678815069420026207875711619759095699053554723961654950979022787753037206667302624989315955983347597019089373612979620172221877210715181095020944617648129610124617392277648449400932275881111007278534593649357371827496921187121542922280241496366791798808332167605763536530989917928788326854349560359577592310141388047512562561585443377407863941933539064266243191997259695942791100908510499510252608732927950862589651758775025035821371228807514798265280279239409579042814230935383524823318458136676638737626299768493260195456718320852190896539532819592728266490931659876655984797600025411941522712874539788191557852958084107671329324437026947605719579158604589973475855879416808615358283908216839702933287900946974548891174062743538475383377577163762737432217846768428956306224279446681700374700705175842204181525368744569147321540195151094566124256257201992341772659376426217683965746816305332772937505637490479494358944920732765292874379637508984815449393295100125447028211866396917509481045874697755859247293659406097126344755841148401316300876400234907351430491762263491015520168571312918295722826964501393988618799906477591951684005388496833441777276640474196799067522634349682478977286359541295654207430523047052530647387586363108562835467000750725368548998832926710552256156596401173694577358440144857879480020188876006088502824074771049986265115100542269397145912614001298492392025708389177818410376182124335372188220907147282601651276891057825779656128220831795109968239786813093547362192266577519660180168364987996887795177826881452112960688086439166863269984733144803394098497097101010824744938992714025077461663564426529497312273907696353859501134848445246970354740023297596867603235801557356114586719270833436513666032095776785232208471795582513104948219358522355738305338623897311135635750506523485796918028341974948463496656390080023887390609408320572253663605215266014654305150014287668047840254011886361766403288501230580014649728097004587744690385338566080436570659514788756621377960288833767525215121356993935223016802721247360489504744172605147666538931932956738253486930686181683309574036470409230828764109345585923991198558307898203221030204039670271665728200428660373706108509769685888060197906521475126839931470461034494388906241386959559348794469591134516746570460505500134606374011184499194624949793726856549721221538750921737964847144661508586893737544945004118738914578586044206615340353258405214793208149836567987357674484421661584477699351656536902256306093641323654361266057132977262259963893764940388583522013414897097996351951082622194892507101571101257965622675936773765780073108005906883868765742808897945307370580530484752196316954108830085200200873131718473586709118904211843620784419280177341119534009300691597156562586632474836323514625026721874389243386243411227281398658314309784970891747937790199952392674390184545235235444374334897474457657206482588569432949534862595458414444482238573576175774307216256569297904082806143000474947862214651070206613589373342187921017767126402251957685798335562304456747032228496839906746034871173136554267040470706422336000125324873283653051297809973203894743142449092665033511201076117493502072356907259070241474080925679491725995727193117139711613388305337485590599141760553726102861194871332223228049569605717081855421087762142425508120505948863797802178991914712238211596876345877799102916366301515314715860145225240319838560383156642657574967858634589806298482130722460849114775740024136388128873603260270664677888399091375954122226690522945511476122341825244394335406884125245200611020040843129210891833358289908032734156459628966958957174240054213161597848921674231685994702896566434330218503104442636657792557671626350171002611553283318643984726298818820000876039139725300133680048889028261961886651086009174421847841314383082677133051215787845610374744953460719968065114463574075917495776812856642894034542001536470855722571016896209220967959609399089835943953821080614055150993643988887853299894832406948428978396397386122720516922985731266284593125232642169070639884639963242030533798843139854430659006468856480470331701341469159994030389606836537528077331921600427109913191348005005162310323883408784718319923733030003823458222898402783098959008489420013039097468149380312578385258945016747327005042132085467474813002063588032645505934411816613550175105381794284043808657729217551823307186404155821917459441800676015382525203438363476616843466659067684400540937144143378776921431568820228756086196266559299916092404583186881513232954668072296272937985225900530106822807282008128977898615294389906201704794663988205632255537489740629428290921732591479554942421903942459393941761919303885080338308794661403430423274590898591024603854607244380197510124180413898823312860864338026158666923787017907973569827198071749662195245399178892860558605783545124871134978683623132541809222237906129060378043289503303760024702518151294001010855838520572537707946884020911974957503237115497709975638621535712485119697637171255602699100347981731215555754066658536300869517109162716755651548867626516723881751664582152823286319750901713136947671750150582345218301113865236998804389523188204894327137902797233296402571832113465418275020111868681531194504572713848264031221181088201544790133137140417911031702084101109517810500186375682150481666642002265855793505671619871765109291805022743593878822283590430801845983961742827762491978565902516213794268073590484986659532297951347046452482890086202603914789746257529558779009647321752330856192174167955785866193156793361082674367503715040047683985904469437526929101728590542867978666720131185552106566003584373692091399911293740780621442244987878613285812523602515774554136311528865234512176592424672465812321948696330704731800074762831720073477961325521330776716008099429577181643970491849115253069253378581335317930199426026776770891032214627341821052949341785683477561870275469183555747020093219566973718038685764825904591680952037997850270181063407679033641034140252585602600912389361258255669543154986698031712417138217490266462180240572632615231747152678037575452796661550294237418258348062004885913993200650109240417806400302504857168704267591065687698908715094504535700594733206903576176364491748064115798377677378373815419525494065212490878235322841538488378379528231784991682199849602461870698302041297047865125881473654534228984735067063471029300843948496256944473879340879579731585174734394277798504917615877785633329200489835138958718916518856040683626126496104616384729908788719694758921817665193500616877993096947592808209763819204580339637433511471868789471405628809891283303653367855067077845102579227007203006379660858716924486963214433465318068172882751668606219600621132830858848471408984875929791713130282484466174381347817763461393692684256967725764376959630119153742958132103376012556432531824044717471493191168653484790526380280076969884651634347545969789954920818221661102001488345657355672969877208153251738500455271014501677670148921577083672982950940254152796942011933189513972428092879396454363685268492523009378354874947346046968995079211630762713585094533414360336473649663108402345975543634994581234149336427129036866334512747832169070462404163499523556594888378206262854593147091097911440054260842981790897953361429264066806234561671139159524278407403525177624870718773621520272944040221206704115294498696096733987087744817536517356516862543248425058511672259101113023755549427447311880166200848366116336573173515229750381169242916928860016502922431255069991884400123246522453461100158184066955549550542820652412182356792527537107307343622857888213292795168717639050714561216322508951176807765253813114588397268742941934339520031866798880481809139228266779969074191242546231071094504972015117474157987882950085224096899807981550931350077105101858405226860223947190767808863773997319478859961132917561817173368740058646319207434650987635692733817125502445111186026047153996775214983630854844734537439102650183532288771389723390718028461762483766992101449731241707520776195777540750370145655894945506811183758129276265957043970936531201778623049364593432094562033181808051861441112063541884088721696382050046960442665141121265168782263796635722035005642295406377843153037867719722910227790501074601066664901781747966408704301770554627218676546571565878087950608748224197720785203251184088801142405672181251114341705962742366367787346771799989596067401351298868211960613794676051318047371229351883019917409018946060718791102490209555201605799331418999272358133915821256807781516653638699616846206077970991678657062738236040596311408346170148344914316298472723986145339470467923337081626988868180250719720920167281174151035239522513913193625538905552364174247449364638700279279117295803260756418410177820084106345719290909896030504391608539539616495907585923982440700830791979167528565852263956477076260928220735257138804011184237335625056525238276641002047363503027156884514466874481753624150997301677320864338309546869850455173313488121698333310933021418202152834529281144954408875777850209587957897717320746675778238952014371308901054460631413684922891470524195752743737447596752726429512456296919865395728066218721418817048230635425981883427057829192254949776275497387945626836777410890075690528654591857523600053929679100332967740801192132195825625125709276560558503779501498357752308523469267229088429819317624761963260608955828979169490639585906169146665759668883938166282795626277668790478968426596848875554254952968326382676705013234273908507847240549293281261038803745589495934045836987143887310873193480353431336914696240800124543587921319108021354796057696443177972224440671146857843230467127688103592352100716284175558911951301812730807667137915859807899684347789627165761005822244613355914534122535321612921909040592961827409135626505435401390895276009306660815498586347369757612660246504545777158262450093390748116736843545942003004616704296306241386577141435472586898344014904840407177586676853834170594370872109295955918454102654689809678365923877751722308404868082727681922438776737685976538794708055774566714348673111071907973546088280709628581544327268931039288481543121074671164881432632993544480006496938524727556527697068346691487703409401037309425134505573495636430359429983723258752710804487540046532065581067607200024563688201979847122888203287363769286356199444964035410323959503201398427383660377728732888605126607190752837576590948327322184489801330974349724567607225466530856230763117332749996643915433599328726280087066045460490488261694070290977257895052280735221876809777914015069598002819179470097360813058437673654708409741145219930942090938608810329599234027141919062926791490725909077931016815988982527603270409722584131877922502802535017315053595939638977653437302355186019345443988816552510365511825987149234716677215763992880060773369245051994029715993180225179803921801576173473525970544776835783216909381577786962804601340165558437857809715612615525293322566491844067871052744265061047551954038702594015036252429824209559216814294141546498800419982184741006073342520458559488094686833962291352399430248933573784002334693212470177340679816673670652691687365081026931960034684307268586973899305899155439677373027943879855401574455563574299866096149308328425387854610798719862532346211693329398438997843083220819388734768791050038640776770904283110278983988004820115927818692739839335828477358703166885291029978694778172937155436444202940795201719055596559667537343898163836100088960172027977444102516565013437848642242495074700056986748983617006837613650499031443431603405569654081175700339659379856708569812076467704030364180391727743506133491341979245412805436107962694115769972731226073866802230333072897182344981782095084893053378848978294889858440529181202317286716236068080985673857331838477040538704091887646610917795245512015713184382963569792811234992053405450424420019423114955908959165314593886887222580167305596799031802661432967582964917455854465831967203223079297138355151534486412635063578551437816646965157075022443782506773208789564576245188411831184733278024231852551887687167954345073493844316674769674251865631668661940094314090507628937068362240080687440739809789808725017815677962760858035864716061759314649834755998746417977316541384399938626111737801009522812147605317669016407764126061971153276103740754237818964773189832642455637889584750875885177316975383528577385153695565426851143148286446000154026633183102813194587156273281089661489634381068847046199012007961727397065836609112679100339196798188710037168625067482451389253651172186627666922237487588030995873982142637616201839356185520251434432593877784149888838864800621947896557054930289679364144597445877722785564008116662455385239956353315047566378062095154983552912897219464431681486035879679354234187467902023640601252470825235236492707917722607663669889960707429795958917999466082312293435080451015474667327410036831961051417518327198730212315226352012016016901622110162780820129068886515901790856389579909566168639183959546614722475653304947580262216078973645163095246120964082666601288016218147517983459795348774421174411993866517172670502254840963643728927687043010229250679532887251023165788185680847621881508672479593204233391753879346008466722300732619697126777810743119116360952360084925818617279756005290241951661973149419374595729082112844218395274889973682432939808762861587843981529760526664127893673141904274281256354804690710795130089967316070899074274937407881640309733393653843851792678713782852431532305383933381128005680261286661188187604936127596817045790408224364379069395522017608929395328676753150323563510121050077601939945632695830992997770529043177998098458472244392838708428988755624561068924756480965870683037545810044401848202772994273957229859989442159561235220038267505622340195926911862835197937361596948973492438637877680810792518963365151181491197454064426552670439871057299578444312014257368034407171021499547879107784943808719073026356799082427572977683000723738233778716796309989288517058916463524496719253474645588667175050886714975888180205111381815795541078111148233208698524368306872872936708603659296107054885406318807172386929742469206185876596927589214864034045181712861177517698117740852895400287172352537973344607229661199886966305858671133759130937058826214659817292538148812319013200895806521849067793814210540129124881370788243794458422087801147164974931746849229790274704887780444550993715218905744854775584968871008140849782726883400777306497881750318847712397317747933467411966790385897520703780819971670279371619211103764078011091494437609011275918788584846482320876910358961176200928868668010798938345302177448896234754993596828193310245803816856949399901710970509901912395678283543258989335642964509256649390832110657084562083811422837191910817602110188655374781722581261764987197456262828754647282106019506200497855317620111696879547543232767495670571006696116361077218803298666567203971977474649556292603162411242395069842674004465274620456582934857432727229527178940130295910958819520405078912315326122690044071053539693325000105262697382970140506741525928159285304201149661300989332029555002700237581977152197171136376449742441547492561315814538888118099700809294420732385848384289514923235255258511726517206243759852201200467712598172035218115018867003300265882428717065981098814386616042251959808497076118537659681256044121209188210446374929436699706588223325476030610359911299399060622408825641272988422519143587947307113531848580642419525697396015031577242064002001985006555135604266881155229368011344908846061049034931970302671360181475526377241196899241961333545350316123971183060397834048915460607290753255403530661851887194607342066871165288433028721718549940964545217500161577595387842017705104938736189186685077859380451710404738560675975420840438519927958014268358514621522700402854919872719915524771908119191459068412619220992430974840547087949577298174729409597273677832179405123521782088043287355394097120709108599439192043052627705493957742767690049618868701116870178472334562059925772772183285120488386001131327099836741193155835923803547783294730240362593915665454512115493314707758517721477296445834244396065324471596735110880063478034033614718107924629923942529518843785171907840931917859502151931727150577461629634461121251188807524891027794068127200707562345109104874383743692158382535899870062220934245200744715255905237618802213263208560357612254909940883669954100704143235732854010469936109768045892120424742442166458284878301228360444539059391489707805398571906257911833801267511406919705842963864033509526344992474501762448973646085370283508386274070515914573497046290383977182060013953137244601187639296416801666071001933856625622200032513584506695679675293847324029016580929423680926890685958680627598331421644401908958942066601956601924969452814306825449609357126973693958347520418799007331848917185037544632265475900741121447624200715043966881871483469283585025360394137373780031288083824565320717999897041810712516098826638216378792112163207670745586693685742313536165460810369677354855470725136126321407339834206707462028837837764440830619735947110977051393512249920883957387215023760819610352564303846244158311918294422328386701999769940269977857829703473018113920619058906508019577664599231183884028389916558442406169396560127292894325425920340202795973931729648564601641424071721896276715966137107593861031610548937899701888499760571216561461155128351708058297168708314460247895276587470259994227469606271278306936937250878334745650947490683380197034543599470033914746721647299311534117522854367200421570826312556224819964012921358607110357299098738031664297010267096262905435144931155322284582819449955876358670645650039465261244855464643906279838240831284120660475365903663617874837822016061845420110354168114956919308982046799297321076476444324326379415701873355098980165504987519656802780515041617135677568429411030897000360504772845719903669850494942574189528642043287126922689426791197336423041363172082113116197891367624387261442644316997662283781247583131494641379841058740422493752653338990298829393031168068196755597839134421604176853889210479000721087312084775959796322700371673568924781821260817367573190526806449407001958057784486543372875864314098586829329645142103583875208526299256317868390611792606048928630422440928967023451953795473388563687618642312002818932108718584458309607486056145153147205080792863338313321314908366161527098345368507166576501860327964807277234290476549925615563875382632583356845625142960153638775825714571354750289743548586806749280289280118093492769922878073643041023187943594015212498326016885721448297964700854142208023907320430901141279299328365975036962906561705851529306235207626016302094238656251430328557760033246603975175484905465441509288830567340074930382557954893208001680479750500927959029156500348537331991131933131779104248608316559900017362785706173995876811675433011246975659394080175900803297337444680932005971137984732699996553052498447369115038669852276129347529720912489795752205860603947272206257491197725320598171141661607841919180466619160735637981134552953820380468785632053031721206751400494038931235207640701280635793304036064255433843988821021074068635381673241238074615929723633787286096173316097803443540634089355789107802888569187803957452193848765998030885028080045333301419287065483676209060485011310780619716818294456163291083638115302774309706970031781535898304213339677845706552338188744198343889473444227831599361445769109105996883873138020519939905496250086576525666839019734492754954055241106814803493317679766816499358309250144332302361985288429765917892729856656539268889710227112183636376285547453285878516336166322633482977082311571520194102090528626231080514448325949510840277150010031691536011248808277164912208566124000896084391270682322416932189187114133260137259718790800519840673416969603489922310709635346791318427745588137249452268653145613513297404341366333859624820397199400445006168098433699927199482462608518709422589742220475174193329952693994297195937215260019639729150993766841384863864783508815281953918281698842657500086972900477833702406411544296002282448627445278531802576287328978687936015276702497714431546281181943939285153460790481916640153548250753032191849889436874419331728344545981593957997507618798571081223109932917496815075907976839431491814604817110204297634499292698377194678350009431555582964032554308716282490480229667738994401034224769447751105996096952084897459365172849013153515439362847393504929510201110340257235239780613986449178602482751880889960301819681887525787194525874532763380418888759103955438464689082276037122567096505572330907903444872072132357423973908551576308992094079258758875293382935260826232233091921348408270635424451791767507195345194348068253950681752456187485858426786161666330319007071828639168173578603821291274582596681593373785895104671002233255906683093580906414250603221178632437881159758212754320800195326396039990637108324628155760545725828932517303160825943681464221426613445232644792386630196673989244409323820325282323787060486409607186315377330245474459796082742182887292857940435389506221625853220203921178541914286377098742544457632450219584627553041896060247132312924268785391318069326148632112853796670515180824179782061920695401526423702889692029169523691905822532176716019298981914179683394821259710836260566124212679133453184764746335597933424278449141869658589121432249294361089923338433978457474111732941035723392117213903584360167672134602622338250870861111095033080914034163583791970122300997945495624629534992722916262545550342505510924760665545542614788541156780198453887273710741237395282915101946235399109676163506164392444792065649201176151300569038451163914208469555850081670291689086455193549466530357713650313793450646021851675865111460581860934670200502712307430447194886219584572075578607150713718777766691983716191092846604184574326566241080285954145463188988574505867803937927598317514617923597261679764272214446824169012574936471762558505096855219596447088590701213835818930934300566384476570689735198689640599959376812678620056708593394955290538780862126250913413088562477872181932662272189501536209426284868009299798371404865842130576706625826636948722428273975642961219487734582466366485593174243702154722552011876127445610764364063308873023944372261836263861768489618068252360090866277237790502758498860318843910136754966953495319533831667307154234515517160720580421304189706422248862518789420879861080846239533842465409290541625830406207841170674470014965876896379690249454940697714578810296943181481722353231902475120648120879169365025086256126460480865135015062426264047728865141071020638617541328014866985713053208652891696589094603310020682100707687454720750946742440403140046872350281023913873418175089830286438681517888278956246817624758488777547428290898183113525873508367594110512742619887720149417822762443223240954747762042761049890449392754192637808907158674492800663126096344542721608578601330690567718380940279964772875605963994820338546586363385843104870921436675492548380284578268567665207585950855495965771909098597914466513150942984808151066966206144786118319129110674145143835285279899877106975655282977078650874567328332529098465974942496592728029983567302126332542128253556149258981454963477049019795182702911335660255087256870691866507844566312710729284351221853716896299979179846170102355130749871149427580698294698196133953061993615469750756621761524963355809514857696792924105052537055473388680543970571975802697323579184539159042799527429355139372967206144859504656143560294537562037479071099242033550177668291978112362173946213439422159824555107247717382956358245410284090314358652042188064516753374743448628970205725665255552497737028862288812082604924520747833087173960243495481690634826462291411797508716172532142813822139159119764863421510277739820684695150267214548286513379043752895891234950257888884532097546061540543635449646309028713912231091457988100942662213308157982908719114532291180823316935512363301688147058533959509506384925276716299809278393930358323678147791205214454521794940840284849493978087828435992965916566992209608263542963758306431157097934274241736132560161392834517767063666128459631824870408909828751101666538058319087126974937430276421450600113511550806766359797751809309428293698328974467710631108625670803909395197759980524580149318619317062827052280129718053612412834124419512135494191947859112630049734110394190822233942828282880449048168352831130361384301779700404505294645309356029902693481959236356031228972929500881888381210262352598440322163972300793602463678795900286021320846595356494816350676104671665780296017874429785740211204532620506500011309611075793104317684610428772188814820880416534584081310472112912162355242129689894256415707441225743483674730505121079725700294520006411263191877066481992530081115039776691896983096019471929294852467466336010562798484844676882435477018699694885687956092690098809075161331416010647293712832325267722652270252135774990030703139425783610839112116250942193352864437304770246053695857592738249479738659923039237489934034292974648775450949963864568776050369469690729603973856463393368365978154433832536515401517631727887689380481381967101006532967607305525569658511399200576008816966491839238875116985901216242682370506098358452852231168550737929237618482730609563959234069758267763588052839110750233599083069281436131094786655043341085570356330242953892454085818258427249377342385857764646029299827096367611117928907738273715773065252738368869650124691059542854894250323827902472272343083732752091764206883227575330896228442469160313107230681035179257190157828513512931410034409406804134516783370961430247723392125881476976215406187439162335323963909830653316011181667088176779378598253680617609070440217475835848995499631355687977715042683431928947433844799445772283522618355384602898480977389905425853972145540535132596814693117269413734518796215532869474192164897056680928099441925570641560300992825962893075435034021615870856691407368644530758622016120108066874857457638145485926187626060145827355795325660564212605195501184368197559967087921190691176763591723582429359490970696408662123669929216493845654301872581545751335994519460512843276056463236916361993697049349299222752089020046831088031604533870480310073066857868941357242445883667085773621991874664190601241855295743633980609500687285658912489276672695990230570804133405554555597918785836741697866009030722128151663483647004672456094314287143383586034592215930282075700748043471627181980361956748621042497545693118051485156153157606653849277399429540730776974545346586935820352933855226575955868258493363179713648094116214858578674158800620675348086645561094589506968987399621516852108985402919873927146212624283514276113167105830132638708080241000409984139430079330425611650272537275308922639319582123333981202716818234630372589346425663137771270783983900591079725125824726364156963286752290615020784457918263293013689291975120669118834908621256535818612225891982170385774990508330499465169318889271247802831960172963825320459837923319566714128814881125216493271856403762116427268909333745821240537800443369421497407339107383335061223423507622737953167940535893870802291209412885184056922791398074376235512746333623593110921426441601121138982583850564543536996040647056209078571077205792722494059512047691262122162569503631117723550786210051602160258488855143928302895793718773371699717383206875185685043897310418689739371456686187522820124051071555632794787323416925175566887169329941678067858242489362468846766337652958374706797486029730710160227972988662463333297130600301658721319251225668863846425591694240402256293083132832421531943392240114411071182191054859128068881586307277886620720805793076498265451900014660275063517276230358136686388754570655050837880132243026673429494774202666698295010727680030235101068209609169230017213529977150387730854422960761209692088318119718160532120303713539692456930135831143491574249867069943735533581158846819665542660830636729665393138323291066045915689245147095271490481664715148382208947954911595638080576113937746642850777053548123847023042490588892523745314485425190820536785696939131198484882559464751992528170486795600703479011742336016346640210279103013887239240688272347067405761498894700197669969610540364392263828726632674022187796393636795728088405721442202392121376193537544524353249254293450038035801871241659481940923104133531360171675624889232142487900199796373775418177785244670066088945994139176087841659368012505408032382754827696445474995866654050153238004980178530062553742203719468481446276491332673351576029644837540768340375239180512167920204371635405945083048131502676592635729063744465664287167577053646190914181486557896476074926695361291040927191536421449175561756255230372370225986940609641149948873488151088297317752543612205654554390900126947811751977943112622001192483375265180578210795980528780147639257170556897092880704422049848788158354856909646042790248373322793746885732941077540762067295665615349232127723963609480703961568724366894728493783303910214181159590595064225319403307300897752307913867257453438316225649745874427534300997160557024344381496154586215874927668215135738236373013698525701076216818176650603700002800177732565982381642164096497568007508386123535752915385021129397208103005465977544521480553286817713198564759582218320715314500737395166507217961661829646981777846351194534964053659556643838377353166522210724507312890819857045445230207766116846926578237310557425406751307784802585666847089399099887305666084706433987742888393909000765395011307439143604863430814185871163984271147140377944834200226491507001414878092742212534529421210506194023361164558764736959708283356995261142628050134566541074925413712023069675168749947222519503308795416999141380289274247654784892024751343814643313854051344725622954220109131105274460986734207717708683788291764373702698368157213373862298398424410463961597265608562824562004036520379701696534236018545557490295582683662037540808193548443316158238341202276474919949439746600445382523935995197687883395350027675948047081102280173352431212576831589648562067196527607265597969862400782278070813064006349233917699266180635344177090770124198780019924142760582977170700379270694606930016042469091365670109218945087021570295745540275193094478800833781788931892626399240440695124667292578303914414718686063931469095908889857714237062561954740425685706329733830163820154703166651405656162116821102924500046740828296809476334722149888287192983531502678976077393426984364156673495918059469574774435159774040774696941775407212651723606850159641730138894709580439136724078862403586832033525227912355856720486549412727405844621319314238765641757447028548923036209605214007818796761088887096741793145861349141699497191586526841018064383450568926971321217532517017104089373946873597908651028886149526090814989461745486560887565361530905053930365224155036472577236405679404701354653486430750995476046555310878786630568211718768136294845893414269942503157206157757673094252825076324409551735983453992071755315601396962710793553255208824095816022162769770049153590290184196193802533680092108325038398888533246852722409021022303302343734714876357273493733222754617929802736743939704022900965062852989421753204036389579822139071433194651272903306756580957462011945181565212984893107083800134227921135775306758453544628413176256039696861494151665994662342624825940995734798376389582845898530159951764700267476091589363111280001837046212394043214058769938216319355858388877551623258216499586585019983060118208602579538833359642878922972591114494633718921781590468437734301458347872978590190597262369404290032096374623228129196347834923366559062492381641741058832000663128852183446930064253274235459484293368846160121971184202374679292149286292295769949400703071735584978972965354014275573567547683478201183855405353655226715851657764746326044122215736753444034276473508303772458452928737117686437821230599031495812074246335679554851976227547796361766483392095828331321076506094631586034449057670256235934615228609711140698343826989340305423733781061467091066381023514658762591646135505947845718585770725664413649180360054045913583268206413938502334298512179194228114538326085069517547597673064388010368243973698442691858625001050799142577574336619285424395758385712053438433351045385050612622219044771815066377247407243926927060398651356929630155906390764953936154303267328065591189473394792471208417176686709174567386050993648528299758071541276967932721039627519019303658617287473400741586739501425697479084595162791194631821822258298431875683439531834107441462557567013207690993462281304488369633055564666926012675104567375210552431900991018153868314300269124092461093641550385787593283090019772948242064181732176159150631542105698038754311550008511305431867856139061283233748412541607519139111586637592857621755142073293250593491860323577562576110101786170611761220183563297427229104193007594375581301322218361404296008187963590737073037069037139099592605779361927668493740353581319691656446055417978240995873367694022882182903517815584504253565741656218710607300141144885958677537961384576890387082037893218863100585160322049058937203386721475530172890461169223559648268499628293362650901795706022432832252170447588105202599892219945005299176866885896793870843061949481134867783192167984649774082892102665644613725077324155499026664540985146145226440982799397825293952224813862691374523568315221687471047998354006967315071230362570818674310788692832085007311951291512435425713136560557397853790428878247457838606281775854034878865414271405157847037954727368689450776018627227827350091135463305165567855013384823319923774006270994866935449823494607939485947374559085377642297256826573191420421221057026398510283005545318189091967341493654097122909433484868600665968383457221410141032091153048892486007452255952941591213191063676103987733340821221659343622220686838345792801290538607798218898032673670360491776694986465680060630513713489939684274324785107871033142576796753585614836762033804508814114142135521258642474369862489230498045033801116035961573640582073066837118826743139289380452428799942119367966423877599296379920523010191882985699179289466626048202787351459071134709198439814364082920374513817583787888317765292699645074817834899318892100727326281148309379281517397369748934524510630038519026207473656589863946210670974224362516703924941052307101774370673288377823870334355862778758609674145562612174946280174131032303529993909725651439205535650874702188370069941367125328481146090933734387555879966588493463293014592345833126294029383848561863801540565059893324589281098065171166174073860066717938341234275477260527936302451000383497849799872757331425483560921618154296550024569550088692058722574861932943664317721176717639794596155701960065209042049507411780614974271576889615096558388901115319356468083572140297944631211291368409091077590459834546257216562642525949033532976305321568809174464057611318859808937258615184280811241377621636331724851168459906012702761735306892522205302189733646552511574305233419664507433646595375665225957409035643655895691823193355857127124553444113664937417150354362006945710061107617532176516360050428842791628426092827567507854695027185816401557239058898994494144483240332757409951596599341994461703033754208400185745653251181944478896569024233538093340517748286168078487981595675987343454529964716797623916274660081262305090680333125350685728539993503852736772548958203929073843351803938935314651795486025469403249789047482692435779804511174098736761902869883730986358882513748091973055247908991876735076569182445664518429614366730300902866655142702278685945362879558271522113328176965415574047469293863036829992348576621537135866076607508930628965837581267190009451280146667868326645858363740730511415110231963371397220406853217676461076438149993845032956400567592422435072214496703355598709931678913532311346742888311437928132342089405503809583186599791519701196192474399086635803309704423636454441939073414119403304560100895381468416612710321823945168256988880841283157701086862872907981784500752854224398027303335148675427933873100705288693801310951359104768040242007739178644775017625121192426492884814635146088120097902639774564751941666460976570034633637861656827526780115664583674910278830293859697238597662122861068226104120530485918861832054875304016790925845597486494494906001103205088455534131765318863096815544968306591979286568054931589049032229417038681187836026180644911733416044284787539937669167355570673807807731701980869382924212159453218104510377458884570998404136202671095356473394771319735864032312601023547255076212224115393585497076050812065104817687599320111452068275724810036176828548053274156749236062513545349193313714675982983886339488494927679085448101715515755811309124570209959519830780799960028108560634924767017717605649074164062303042752774021606570482177112939827017178374823292126145274485998743298845970939946563624227896118871333751300569629213479784720748590954386693942732334969838547076138863069069086164815231048830972199239342088746968432168016425828057007616265154540403305037220974013811355723304340151507158755828064446122218341105689818565324549649373191492967755151591289015921131390839595063681668738089022281702046501155149169039829993536729973590540805687643233415722795975048349158921368118115900342064221243382353691950991735468498327980241807323368940924917728756551224267892553115932050695581231051545683691390080559083356568039876720129380917531855517803701109483681132909833845374752028325181438544304425633761739649196207974542390886484953528766909661043783563775447142902181661862554061250074890746431692088662900458047736186913322911814125722684492081195215743882928496211149845833306505207796640388135399787636920005442056136581781572447993051591812565168147747930907722900906677250225327184911431232419831578417469143883586220540706395193136001685691695223974996826867524765638620322132341184002389356685836841651377817387393562054182240800469993700493793114715398727985383545745209106111840763169928905729120861479931006919542630985327804850725834809118338739119487170614003970888175226337940225277809641973226843357013037891714055296369975077544680028607996636257873739906905814367132778877657767576842029816923030326524236319351330211153780241663229125253814836937032033872612919225502922631322523601762481803392344766520073359670269863102176410185020487321974292308038023905816054443180040577914006674667129360639052737522620928735908622294754360955290376154944321733679549310045301311873423749791955771104798588870506660734456723089976719844558370114800754648203027149789489464833281409740298699826569803201993313723937680120703337839302569072361078644654521436873026490731940806364090296624230006935627526369948973966913874237612055057042561225474013359692227290059232335123569602401920112111562883193014650796756996532130822633346715497701000229648341754789370561198075408800676472100623653273641229892719851216893665913509331659269757846527708234086777930262380817757880661923064923126650692739705511895770264972992892885439504113382147425105955311840359258417870639897081059770195382160141353065920393515020018259794439445120509349171270761336785990012659614712112238487991537081920391276989496646395787491737824598320991423200777826401539411268411228130818675990985660808294934364720280865572533942017402621239063463278282680766657569300648591002632504598425612745720372006152954824362207248795912714942972750854932576787610960963800492101492986546212045946221702935823308804951518216094302573387081936838440104765333647369339894006524021744987043157080997729782293204465785809148120890597463781945148881825160575163160587339519234838049953822509981717870106324787948576885006713355772588816057732234388360174293442601947120452412450613687369915962218944924080009465645195326154686439243845951123076471631952096946479403282813783040260238282370098933388849937843272758694727143710155507570091087909525261955467729346368106245318042995219194210953923735021474256395718831480151083296916255774455433732116153395791499620818047316208711420625273616586363875204907330775333585457136365741369265393845075169601697587895161953446958955722397497499244432785779408171508098090193022222118462051948927877540624991644323338551283276630570571755498153760284363021677338991252932082510770771854936453423392743306267805294905118403363247663128425171190712636998035409667387431410394538198064033313748946825933891772549318836525096582437807002193065213221011515926657514670584477321698602655869634914197358015747812181511746067429142217010849667642179912714579657507788516639761765300171706333059784751514724654117951354623452956235543727979856052694465199807001154191442610025732406353022465770204064367647838615127070603978625039836163968503506067097991850889138708269902692103255019184219931580263263234605552669684612214487231883689371433784097996330438300468915498616696372425593865595069322256747253070988121489476323673999142423621199084088837373126405995618724921415121545125192514941150016707591985247761062106536488096019266897238439434144729880777876553747682402490684601720398727007799536838867688529852495256530035025523687457656618457862007781014822772575877431033095850920110740340852602042767024181678714136542074396665433310068213180805166428958481533665802812610265353366993991232156615832772285232120619195790272034516636682478030656303940752650352855706445833284622963327497081405131306877001687439485873574634072241900956780067132577960896914823940513025801126573863201246320292110952807995916848680103291818792886255251288462727410241256111519075227715879764782960769193110015179169658287679568181896336974771877097931023804117409451779341186774707774159628011484469895507310571453118002747252507666794828660974746226064203086644281053873195953087467862676230636964301333806940420294282950824269975320843919867818561564137812079786966583700573231269517568601725481179869826103659478271599096181572781156171897174991855477277821550079086750319274700410651063459431646589811460842860653252726131914932429639270469235757003029044873145367956665121874183962706735152687313160066567513643872159604798104483268150242515722640447367359626092229962001697106950732102592605282064696242212273120040360335960935751413046512819699645067985682833150587112807052344292274929469935290335557795820074555990197798888200381352366976725433250355882232152724733639322967566665440785154092286327204323399769353635958529258776324128021481571873112137309208992931329880836325026270925622111736431398935531798076534142297281098261560242091988535304796742323290803932073493824397909552461617461824989205836446801353936058672199512303651101985582544302191435564158208420991334702562969578540980033285687548736212251494427155057494126985366729000268759783863405709089311319804306200246086415440782711347021472137333562479869870274645308899235702046018361815987206206553192059119575750724242941421436430967623330403480843478967840146481753561930532385840404185841286860823497448976928068515943717797806979034930119864156553969896710351485663561017778491944167326170420856926158297518615564213655372361257365635026493302048834333088494753410004400251934766810714958640122720523082748239317425761319961760992722138457630997580574769423461349062146641443058891586721626571965663125036304289574773794903496195695186234099388013865103504770797258026661994420501541208128529992243823458657319257073103298208118127758062607979048770365204097148512083348122616399124593384648646266641232473022768291145520757050638484568875960529860371444859507514866467794813719372547213805028163114495614941112735367269587480537937484462709547034659050054281402695628599412203811036571029299347166561456286984257235050586509524217435268154691767032299935374868452900391313601352161921527566271861263547033105240653237029153441179769943998066214077888362828314215778131644671193378976483438022779520426793963312645263720908321551069865237574902995963896910478034044367252236144830985257863380391472972530255722459835383920216805095318528029121454168102507480591011532413384360847319108281085518271290405726694059475318756371931808304239528119090107156852190210260874964140778195800425507930529801484991151296844170039260514115429828505060517878007230624781503448073348618617389735546800273572186261083850518040007630897441329051076623570954962345390522933453320088306430881216878869497505828695241171490134344317435915149780229213231209105327025441077040468283467533245219413630264965872972003273575073695670262824806892307364701201831402680249236683619558922777154239189781676584274855039692245523390884572257337041577012270809654549552747866209134023543414431430940969649957460913822884987160986832547491399664077378453949393744729963647384834579028285403831115760869151132136759691786217922394358065585055948172745753992558013887973569886401086962448458105190367709586498338336886020972576163905509704092563066471725776103285525974241886906012388574070436955686201273386754919378201513545036885693889012205951639312258197197058852721384104753395182886555522383835227760190943618531474498425002670495054798324150355379862850920259868739291725750066826285611378104202296943851996780366312990611320808097485250419705504066636826783363674677404561258559154126100160818957364472605095959809561633508765784263085093201002484032613857161511750214091118866927233092428806852802902337480998120096597520119817296847995547341471564441771825331037491532137016872006323368448428364346684855025005754519285377596061099223317016899857912798142306775631258539187253144214827465917772414742924861046759322192218417869462291617554462565254132513358292231297868100366187758799030381975724709575068294689118021964784542281424552001080392767365050833109799143762525809297907230101177835234398966655227333188192144720975976157313274922850813527091705319024832501230492065584842179335627933662715578457023958988160629881691878104340154843785103510967747434775701773640751467264269176450393737004975707611386725188320767290613111400018257545079213981096037979261042005823710976334475574526632841161198032246995475281766742391800333600015943024318806345545840299697368395690160662002764916737433278812266946911359667123485601155200168715867177492352768588186199418261807400038294621887099819949905497442422128163038711370978092285274510318765592629392255588483366468803507166740436558801753729834721641690821504049254027847338215006670619621336558009098430133716227482435962341947440398800877529843164606314789270436309358052056350598165298389429134864101257023775197069852593453817586684110057717014781596028974366103313946650504108047431537886446696977636399956123095276377264324419596320490699320171390499046774652331821830707155020607322287333930003814182671239750135498823784600145530730046458201201759463442942244937272157957053302258809443139829408160609107368092609915440978208788012433446132400386793810062952559903338715049402350950201929168448141717360329931293530217541227845037283634616040762262926694090227574623017718683044541299524112659496911436885415961506759794355698315021725034346352642984041890681538044938512775787442847799688910438632935635424402790285899797642016965685337570544565992351812546245362879614145611498613239850875318229109599415108681636569597548322094913749018993864196085392709442222284141518445274362486666916594446219902633520365437731133825606978753867064933531030551895359635038276885455833877870153140890522130380838352391781772325251150159130843633990769674817099223997550129515250367079302464831800181816520678606815388732411440055445766744412956496833120100320137375689301628275560285519812472064262587668037130771839772742465438962610335635293203043916263485345620201695990894433430932852989413926050243883411365350563709257516411166922434519299986771958971692117360638793858348671497221455886729244804812129706389944572500428133993195535811766988762150020434193048722777296228958636134768305328447455505739468654815892684153528170803177979255063908676665532274779747741527614306047256884557712821156742311718631419480043929806832140142308094000985206125118254658031908926169464267059320108014054069036370712347630506764441753379962419071368053945537818021766486062478584551090238249202229336274489488428579901067457314451871795840162826872397737355270745674414025710114825119195490493321135846349960522769221867662852716810771511839625951426113637231172668811705389684669989771285341301404876209959366316866126200132863631770640707565058089952933778804618236558268563033113160405193581473031326182063439889305507911370826728962019009365246494812259536710621924270908117968234834364961040952590700502993073424463182002492074966331250130727196673548816443353327240203468562789333803185196302458903196771647614898440639637677763365490030096626740782419090793463097982553248208790764035897853660619151639914696181325279181376346938419395945674319991464882651415978966199699923776501649828690754483533953932758116729851654634656121857141550916642456813321335623576848324672106906603344782611483162787593782675500801065106619449893061218987313197212530020257082329065291631152429773916646563088949334625215594499210791836988233942385959897885189272754921081945093337260412455257369270739085825602379674964138213405116657892437638984506496665016723029236905353766996445942031333534732816640798770286017880409334131351316707828667527335379428379914941288391932474126792627842152394335645920000681485387189633900684201283207798469379671009007524536610660541859849465578070988950939790249765479088429261298177969727885741708979996768303149332020530079523372762131599385123718819688976881241936681660245750408343458551185625431470572988882371324923821145987670067287018931885867937069063393654306608138719628654732589882775514716157097720810413713450468543782507774843142782240317879054086476089956155546498953264643311313947348354952822021492351327360491747011922503335610232307603570956279630961401899326383592835495058190181720750391694651821831745620513195671096927988355296791187144473831654205923842464736766097391915214955522121292584311096599615391122162949916338429122055314459360378633858845613789321152552433233893988646256089584565091972551521278719465341612274886242269007488498428224905629386132625658452342803890314289036033683413750205593950261618239221847339388337805857952689519304055473155448965513491425850220123486048953986762181105999439871728892034279664190893529892459152796256708817116659517870242392247152327092188374477599881407673120035183207775001974538210297440889324859174881386988903052796155470586645633168576626541689875280832498889278659805754962483253811965742765970445923132751077262360044633849679098524988517857048268508808778010074724855786476682956884168959842212360663468800374449047321046493396606721183090794975663877825891209242409695466722323799301519871768841924283496489536738401204311960999031419602998028769559565741927792286120868053550882919231849055556878979332536839750806862092425055045720974750146822571617804126869916390566316654587020056759105105957962687383260471229400745928657083886364253358723340449969489270519164638344519285291148003470079556266840697034490419755675518151781808623645309889577643540954439056677816925153465372993355682461979757036974225893909057590549630832344253753450776012719935096101758719165847461849077504001816481176128625201526922779975640498209288167807360552122149491208395762208084903230879895766315909731267597587694368772027681583934133360428321513095267186401351196151362914534489685797787248146002123514283854899672533470777821587932807625518865009609710003115358339563758631501021804977119895449082975695347670999126386793995309790374620211989995499400711341022717345455878476961393980738472557132464843604774204041610001416157034961773741767220615420811942955944176548809331938247353549956071140654482501790683602708440770192318069981197712757668618632670941777973256566407996757225136730389029857301679419163318649558744023702759248451543673499975654004473745975846442591874565498283718544347801198337805670734661497155678498163695311400691226722331146660623898135284963219207268066027021042846868011428455678268470663395175205396590224535853980663772527929729421847270276718822415496638412200407600518663392223619161386281986042452445864602573589937483851008925857193165851460300178122862967083863344740463470107498894573642946788024316319024244556172894201293561075670259241976829115122998363797839861795275997343737808868907029357932253778724304506948678645439897839167370706418936507037233230075140371081864399685613191545480744354158572946305692202633639875229684362342117517476797537664302475580193279762698856183961880696900892185975964468126109871107588651757504157489465418769537746347546168461179893602363326088987418999233269006429367866056308832911936214055737021742178972396225684255738837236386203857611292528503683729779294364395299247133991781886564545507654211140424043088600770365964218920201710204846845889611641766736338549783178839022609433022654474635715983387412290040120382627722474306846134620259026575119493598420628543786582528640795404389495950562506003155593151975802414436048094091296604380919344731587465453100703078005139039122834698961284227559539756913521875096096120015521507080786333577627981848518574253891032719693580835724924097373998471652017733831452029271513520724123256728149820779008069843312642241654920800459492579490046817349282264915346217552424863042828664706477792586075159264070892446031925588500957536216546080945354865993753075193441295045551101560807687283664416721966513981861115380984679487957409723765419638397904968325183769558766717044265238479074513313570584408552490654934883892140338956869690994035555662645929965334075691119626237221889697482549216779867654400472800721763670700607964322126572189645305179598792823911496523228051928690313498134223640972358874671687554366353337135061221351064534050293419070829835949507583316951254204507696987250175578465239820164189157898091542174287801472023699992788543198705818213341232842247603581400566355825236918758479559024314995464188187276487714963232102237832252926129611794275595479780697052887736796937567217245250897204279212091129511831757350579087441325035394938614358260446684562853846991900504153095555401248948961649675195051034251379670859714420171735241808376641314602649635942400629986005425956835142350810598027578293037147000231034029236345948337388744785344337957446841012556695534111134273758004512648694566260520837610373079163632518330357141267328008814473839827554275882593048693548510790093222739892970095741104584333216168884669771976350154693241062851251020203292809861043346062873544492412900212286159312092516643237193338323672744935247044354243234516993960964538564631006111318033401185583990751929278311976361649124840890155366964290677354649349789871323025831072736024185491397660232450915966706194906345060462686412657216446627629219053275361457542924650030359148213683807193685483358109632115805993161553389538450705619777992615117862370463418712097250854390846251315077001291759909377970297379426483061387416197953302069401015161740394531296348779900547963440223074590597383541678242170833635933390668237656174765800987640139800716432160803560575671772426303935488963015941725673872568082004650214647141803215254512411231133614786098370238336408182769509311280909989800856250015934469611062939017348028947022204250569524809242837324877987688039297144192637187716682810057362594470573704637622264836469841033209947550577291110880474038251064896313169045624862125108423571091389679586638579006163703864463520365614962143782521853381351841697560265874911608044892170316160000918814698056203883085864894429774903868924793662648112518187540115473808025195806059107902198232308668170891045559613580700326824395901438352207366054369733512693257434733931441226083964469328634433173611506872931399811720155774171776528383853728458076157904609821777121429464928225836876665541911900574454683382991228038408522964428851977517548993080939235629311110940960053052581769336612462157537964683938635688299619249794712829085042566049029574246819961556881765064284365050136159955865382302514695308486951647983795680946190540142607344513525108617001759812908780757407013302376757610514707085958587942661103408196688780140863501796084575447475156327618085403722406148717197857104111175787231154087182298174353527182300229098918717804846244637461499788273135779881984013644035570497294397127684488829245814848988850781420697738854646701470013263090269001048384689440100143376358526525173431728279337481923917943604595114348933450779658073259044184451148654397338149725826431242895104691388402014454969114189215698026973292560446735061467605967035197947716251180431778156556823985677710166729051739497738244786580094551547519374806385940695202649966538999985579966753628420818195884327139615122050858508133486361935862083865021992767512860740889491337982706947776488379305246409977719834777229719949922855874943885184724996984459528153482984240770074174647676366148240751917417424248998357177953075514045221516860598822652373259678299789008645091125823289166192455362016973986739414931255876148004144272839826668054398963578654807092897238420709768328846609777503041811333962440070678451198836540442958535023040675644667380633833766181660723003576330173841202284905250968304573654902627081035995927804105053113096392870886788148890784551840736762579480949290871609661772857463119980402582061897598066588912345385500926834163841765632786449217051325323629509074720821812369741266941058087701509744027373771088128691725692334931981456570580964600006875097064715613007568470241136756206552895249382561409469081424227432569794421304824674629954199016992463409870393604304315222850614363271698432570804364766560419178467523377050989656204767359570152629108506069799172967240281228480214001241268391264751987731611752880307825299601036319752983169804570971652821453288148460853336126991339413359534179034895547951180038168138544597946779783458462063885951578701988268148375330410866015153566696538689054689657020680791526329360608526614097984032553018749999027763726287221330298840406613445596988193607191055375965690944879868286460934047068524248868131032151784438152991782620254295765671785024127486732584904229813614683221364282764004445677706218135089142905394213527453346750282863391766778181330020500279215829141622414412545607742763281552905521125326369612221879122465442415042531575374692361526121006384309687095430739952044092598425087677855709547118921482535152826013712437646480660893566744745828274808576267747327868638610725061841444588393320286958288075343746794800894194241482281951996091306301041818844741395809888721785150810667315560143370789173192864058695637931409952941791375344283245904083619800535123466408897405639315742205689969621821900619924437790039882458609087884108816305538755064035791033123645207089923676269468298633421340110284299160955600208762893239377414772662916263017011761757596878026528096182416917279742094936421920783486712273942309858119646121039172583097995664680189430962610627086592897540664081436504392730090216726597008757373273119514596514475538452925089556864558154463401447404803276181177768417422855195417061131555074131832716844427233108703921625206147436677769282621591518906199867271090393652913332809733693676906049552885869826204534487924639639381602251336577367693075515605900759761939708513757066739280300671098229270178787344753131216044291377431815475387803706610888088312282019581568378315409828884989576609997178259765766903262035661162658861058737636900083304567345368798944988231676868265833979229298821116511149252332116226140060006075036002494459267289198151008252432723589458938562229659801543336615122695409893988379164056196250575187498988345125392480910623721323330944440298028399963233018988717923315716189653779314435908323793050435755423538731728463002493767596133637069016347788652192576705176280076355588975255564678289682648488010172570962881282612544059164892104332123592728324746439563177361915521697215213149244643575815874725184393518500779610573650711875779650428038240125954401138918976814206223267291342002717068500141196240309671505156949632307016723621015363817246828038519208693165256503718990312435795456189600932989538289253193339317330064837720111873195083727028227063926574213298512679962838934038443909858779489562446397366802661714060359221980244817097902418861830942673189602902064230740413221871047255912435495207703018400618984078756271576400164978164153347799395926738178878684991879142195568296872750121992209814800634572584984337648841159358112375893627056736754214278623977774999781178439827947340822242582528447894066276287592664645273435928277652876856697445316187968914339386450240751596754547260900663536324630735109582224807945243348157895171756740099351845733843173162139227347979622113321421450827559738613328033841975706299182200759559439662821717469059546669005807607317233316852004309165646967892260396368057748417097502716995875106262317925717626669719139671910028445823441556606751666364507116634824320654949139602764246197284626606052932252838381607718692611627423504296833370110941328739350881812032959937026591243656427509068412903323957286333669272423554982483324587040026960122267263500552011352307988590256067473428456713506216510113468933645160198873752887881899995439826592740883794583744046605357023656604082796058497984600194845676908530598112830490305234363473668134552701667524224426461371412956816205238783200153270072234056416719738989236449010467131992957667841976468904363733191006050392771698373386783300631329843618874896378700666599311304384915187371086643978569328837027176688648840697192684612341013266311816091301883809168068369591604712179560589600648449285819929506532555873638220247947098176326921146570648422023237113233498010440857250434840596599688059222218100380419854164852907074564380185003302469055551173495217481360892055424874512050503554204649545443294058481018307798136907521363902476358291553559462132546740414622435453954727439231784687302920629022318032969383866849336604441309753945763580498337337101385002352352945358034073910771465763448406081928298345971761431071973548682472718971084765562557988045902642710247730070433235948833322575398557031644045661327492991923704669483939102025639200665521227283217430959698845802570273593962036847498137452362482866330765248162564414935343802068861829804882219924046702686321484882548338785388045481639134181083323319338552950994687380160887801115114918048332335039908538683196697725499437695888472140988174390208000058303058773935719993301461712301745145414164582507167682981814261937252861164265263720247301225012927953008626697612105034223269434280287728904978609849134366300044422376494830408475765115089650733852458884526144475891131169309716358885076984342028161910817463020609121802033484823774715659529145699657686355797882327512955947163089765218019418206281129347974408446096625084050907153462336854345731851323045776102450881849129731993291040368297429369871181807291104290168554684501530251798263260667182912814247173560512056033134401987298964395123800967027224455133189760587594713898823068227363884882107399008742658821204188679208862819781836067596352627575404832575652047079726274805730214625081088708230331020242781713355027808327141751212828734990412026126564325062853381856808252946857951261832550765690776329519288131910800354149311033438551754585836524841886575472878777768525896518283121845080013346153386913912946379850687533536876790110263403167082097748257225519800270188926869825301659748569563597014181347093129049314719112351894945285772864882690161320853974583997864987191895191060192030537870306237607889777423731669083049811029735531981044682886585122374881331561251562986651304522955771749719508630148379944152692369408067388750772372579566231255038258348587331273359617311432640459693922185818218768093493308057437611690096768005541025651035208741455108643828791299982955763009827075758094484461015268506964327843325392925749891980465377883519404714564392174974021246871843146415977707587195010681793487431174728511565620392026140998146511382818939426415273952129667896061161190983063865759481925805436804059547519979472737192723463848770135847201763192096622326947805442973342537608332772612814007642186129050216386822541179731636069544622091308371145297815212298724438993874379775747051347137660521851686478530106652747913139102588177663340332259836359063361272361735685955952196222204849483261697963245704990151109496671310424971869731281189151675331857264229380838377824417145657476277735909895238865978269011794262383472627632867761558557080932904922732340688555015708905664924089686705326484705601806896879379632226090446826281380445879702574540963327400361823061168152935192707192470592126409022708481732379441324761414372263817550135603266198234238678348015314517739541000765646050848680984522867100423998613042840103091215109657873108155862723854188752955237308519675239940701895757271428485186683439484488354411992918531602574091402582147690249015748788862752419520878048491875503452099168747489593643338521932640635231028713369313457161490175959065617674094054152090063679477447687295428048271836137536104559588003349071996757088552851568962740575636194051411278875573832427573715303828222388671594516668540813717383776303097387006383480342747726778740357740976160840567143147643691671700072994746944259503541170814398750814221339030970026484644681787162351667649690299758449424474640502099258695483334220043388334266874555658432184454766800915407898791466202229616629487177035872383162371051149268757680325366039396682491858458740363277294944631266217381560362117205580841121970335433791401442589483055326978376689373859060372919141612739086149678926882317764552041516063195396627604975196287553515354202788122978279284709383245846849863034628889119709335902108032353274671624121818376703705476433688739648999303537462693492160774773054209480760608219739399722304358490364611815674316815151367847407121560666335823150148832043210078650850270203167208791666520709670790054113948850544226433612928461467480019975308740257879846756467715342684267482830859784806452946105665573878401970313768678699936900391117864265634037791774691703242226545164641783391945564413638440652775887232216109086657652082827134293135792522693600393860535806775208465217305186292257088977736260617325438830606705616364934651802717206905418595317660582967308251454161546955840732438773462212186498315787358976656809259544124882931429063285897762820884979909281674038720933354842945623298409380441709398534888827223337871129884994130920618773637563948744040469863030759627263508561659888311101073049079052569140037734857334187388918579225179241025789205360443304187879650097286365233052249826131315446713061912266676499022771430122248184262102951797543256498910896240502656180004141840345008578902155728073083321957172168278339888174910084337386562278640119319740735091916995782389053143496731327921825328834320807650652661555224056935910372333618293322174606875064366800934588001960570232741588782267440322098660915976728017104546633019762245217710748805772500212732244626358998040415641585567772672114200380998372948363717849812995077586120234801540229440132705345241960375729218415303293107882580650401011636881749698890333110774827154048783818972175192523883179205975058331465844383746328558923234527821119007482379419737008135769687616583326134184724428028891310599825761007186072077652133165427405467954912150465379550521837044297549734140238952901954547045361037221929484162838263893692943233619533793553354313442503673670793755798601742555036862204635054880614198220338351724170773878001227025713706891581146654031324578173481368025654401315741273348184153691450098507798464586820030203623318643078974585513970899724684873573611124168141741617515154192865460819914752214434996616074629200215076115603457080923837685608538724928954432834614870277899677332434267105904879324644832164867910237842596307573417587429331458278602369343589573580172981488369432482091028350769221108173464240325235918903338747257769319013768070401043585525048998606248368033768192157286201567978715402593657157888393370566557533040175654127084640324956835658288728144360061768607428017294705891248653402547191144580214069521120822713512471184072298285779030352130508603954609949393423314725717069530088470466659610274613977697159457824552323888830378029065238566226174512311144610131220001634081847034317456540872957771333580854152488184955512321436234765444862915274914568743277968077604246285919277037304976867725180344673573400276947600364892303422525534348610881882540400580497100702463415228061146847302699254502976016974960670356453070540257415487201478923901876883159403702536947214869393198692946783104303320561317559754111251185474993188349490028075127925413590735057719190961608224192121567489039751662876605363005896171355347542170848027692689287392826749361960067904431027445878980547890712583596094623022522334919687794721698406157093865104034245298022353407125529567016434216810977857143666624926349529731646638428582788565506687627902797997911232699091973575327101560548190497540605922342318217990527863060417532759598737448429934138582706544973511108824658800872845770369256029166368833475965521364780424067797225500556080016884651566558640659506161901836640856549193042651741083630001773752428830875171564138678276110127418471026964035426495048946585423099893247149025021976978287088263551705735722959157921649054312970430288870896610946316965198501244871089228388017284211951947922659355637069532731242287340827312121388921543676584693508040564622496551523867328287943673981318487677849431432395142932924872060045747950636296692430308399958170404456841170576917707046157193942145451991460919204932686517386939958647020480850121608584604957353949289544931268823189613037751237171098385855292343936198351258800162671357543363601210762951737603217621016629212156173467132129718538965498845293493483537209493070870628862614003649408531149231178106989504199890097674191493212930088667042702073389741818093100933234985941066888251887940421130611740719475724305288613824416105854342733874775912336117438269519838557593786506196506909344173729795723312557835007294631461510689535237455989900418025245807469028704079613238642857136604055200113937066878228045695785716355012819695713782953763857983015867317863735631704042514113107380675338332360243327263986427716497806086585168777675001238337256931963317633088182646393143887286125601309519344271479620138696352601412329858277408054110180450659438309108031097960671707389781794140696075885397084262379307547632775129962094048010895811681177466034298865617856609262582702542156202513386471195616555040288918658376603057941808981926787642265853328689785459641139649382521351139183925186900179449747214186814579972327278915711504803072603757541441110009072337542606808628507237547548364781478961899765238094605743615816899484636330380815019857894508383740007351744966926305023283683901944517722830427785260403588212743675372048233300402536370102139236794456421389781937081868470080210146031777259052339023915051366146379016028950411012149686800203908463442343582002692165157659853038322140894519725582466576572230986391548406410455606566935547418431608462113476853847133370249618066813716321667309149651320942809018597970648961328113530823386156500609111124111756189693106807549451038225279970657986196745549651774157377340621870511417765718983499772677058389785052673655261088687098744258922916752453481829338653902452697313433916942719623442204413992009103758727726310408254925284051295917786720075327508081889611763555974299400132067302603062319107244282234230068815003533860665321046647791079128465795615568131446770648024098205849646799570409620457330892955145521672516293394032278221228103982311312665121066256280262752312035018514971227669507079142484142266134845832700549076978287730106330563586343883033704842377442374777968776444460824216708142321415838093621170446696221697224847811552719054031487256903010098074275966864530531189118228439997227783268251046241474782691631621203886960881265166226624354405584069665637288886442560395838122626418908128829902208705226347579399113363937149845143015821201904017459926620677983938136676808222056412908916187633678179549494625530886999797714750553660522890397455084622289920013391451264616733054111119826949852734342617899118838451694182392661758081640819394757275019502824217105087748882198082426707704159740221320355699495979309363996085626844926987538981159229047355923740673965287036779475482535415691307642010325682169196321997496208350189479357088641811119438774012760407935379514062180702476097897379052767657495882432227848378812236602218220258853339075613654309652490256956613692775579379758819011529942648147235904312474313210289612736578887980813726803423203302117869826459398740868294476398243035016633750624806992121125129250839744799224672991742298311261790036805668316803624765388050924790332163774245226713065676852107906010106071794983240882950834502375896501736631855968683635617600695318943984070524225928445798286354186578512319267311888749206430289407753127579785666793527913207937708765058193758275147803802059937129103950934117884647926313684928064486395567663043090831340947538026401570627082701057974617939801686818124503034863714197995461339493934138651900378211369576947012971386016867817385398484355276515808970954348368750199747152414640520372570605692828812961778665168631290647004095747817979644669599603713569175463183934902979694053630944669837289400555654304051951554534261770343603260881280074822507920122838397617128203856593375628919466542938541102475162425582669755302816566128100752376926090949616817357815579402031282269097336360103347986803596123093211612923882529961765997317238737360724836393748459624049978530076212058836997569316144142865972896874302991710081550343258267453916387571986065819904461805827807665923055644843326578103307438885858374403023934739979445268630597259492809058215298094039890681980589917385986631796506760617978430263194991410353730354653434836302296663825047329448315103587859354961949995686914537896266798807393692217552559003652722742789073815120133233686135530284464796226356307475431977516208860370216800501902139133114499036661368484213677710385467193355402901538648346916679171284643104073107358303244802850303860186224019009123125859230449047980774639808265100147284451767135972571847151377631545373728702742136396633387662058850661854749550709886567405698036209677582894887424543614477221959029042279015298508107824916382982083397005970179078607670870596924847686196449882669249985060801634202072803537565496572535901911424009546467819165737486305025176402386525744137979459838682203426123775396391572212044826775685040364862260517012337459204940785911373352063564957752272105270949126591335353844753921743039378789517855057373631755920635160809743489702857179537271673523293064159676573254741674574080569646595324972619572692439170476308261006291737781685512080519808235056112438142883947041348267455413571590777046904430959520414803667201049987260101940725579604466005481271450141280748130917687528562122671712834554036840454202092060092220667159158650614258354926342837124804110731500497786431947639834265465750523070559943020653013808751031547692365132813231278797277197370019682401266520905287563091896545372726263038020088013224053062223363789626378261583847457886207864149251751453638423705586176202129459225489835797776558308807114442293010024517547359623145176718148174480837537969655839572455716098148883455420206207472560885550306800682330353844460046012273969173627139238261295904276875948738603146514093874582941355709867077349923226284240758720120859160748308385940062429570614900130696966277229678914806623214450010987445962106449607741707262956822366264118399027216788082668689046902524730003229955312885144009913550330860924799458476217330290725431156488141314944747341072999595050549342299130202920103336703247633447450461199532930875151170270759725853824963817641459082311706744381640813281033588282114046534186741030174002780884170888544389254392372523458193442754708769171136456051924164310115276221644171754482574517328248655579172992419304381746276958015292083900547605140813712369093787071951631595462387450332940999615612800573536680790031776914214589836145573450260390838082298936854109971004779091260408641478337330696470580908635856230543194529672895275870098790429916357603810095530335146683233794353505960917830814591808334608463045392870522499566625500061999719207214536467530453649661291604104389769980610093636969734054530738065851379073243769582391940708420311570539566759208282542707578623785151510403111322083544281817984899076579110233231152409583202064845993307556345400070583240836031319674309430375526486489962283055658500909245881313300552787302060414214446700995447031918810953268488572541587670020521522270499241419328549123819300045188303095662212490168580711877933389050167509764622469249453811574393230060213598502408439145576924026704706402851882884991103395996402092395879594873297222942584519272839827097645773354899100182204841711442679299928521285197972158551452670292386048111677344659246539828114150906626303253326035232491227026991465411972074234062994559192542143578572101914295452670433308511710302428428131858699676472544945431040717930237972290680905749565119857741864712322090011862091556624808141194874598266257369130087374699852489579329682768925068694863028053807644670625484956127125933734077212140057972200570822683139566414633060053007097073197970036959772833756096427661698362951040617067077905142111258244771126405300199299579811223416978577713358050842399263491073914497004193448967681699358116567312933823531928920007840432880864533691927466870954815520645235872632684766766937294008855922647984129726119469282168684204506408317420839015678809521202287141556597571346227172123883158113040738072796471889158717251818740246909693160706274468189804341308812964544085497859914860158768208710497925323945596978197050184919961883718422427580285226925753544419432409285152768778067133775368644503156512758418245505449491286136583630595280852023244044441439940873873795594769155149631102370331356262260312102427501435169297952309749724002530819081458001233298438723371935213752306797263296670515069641557641591201158708814259713300605501937343745866735040635751062342638917963739378446728086317155270346643244746289025897433253468427277561295826316602710789571538844956561142109760665915420953562597832402290948594275253563461027483243849023754882928488088020170011301688513213671695300198870039395486272426317051316840029471221517491948853032333081449770953193894342049938897761248977378508335891644847465901558396537919759079966638444531681407666720063647401029594540344478359146424786609258057223955593107221461891414514726439910074854601701234148454162496956671827139484642860359718690118000583366285247720786757489506934258453929989033796958868070148193976304633062476867538104458947802639444987029668994953206623684985320930938119127721399720656742036559293885381073976692528190413228310533476597306881423310707174297755662981835826438905532540765925473720021825036156862718345632165711710647426170466425823321471452866760874389112286042020420999805190429820052574674326541329315257307276584030375712722993318810895874244230452230405166150244743828288711653410798418311849184477629952616223731086900027276827607169279810092090893141954999942233015284427762467239318038116292870058150641329446970997015845299158476416682755360575458614400568493993092099500657923318136473001647845941311910158534299702315097205425296165723247982276309400063881221776219410232497783708400499245987322824933629586639995775336400461465063393915230710069957124183209668434656118679230773593472973697844813111494113649583554587122166799498588795993321949883803831840317315624598677204578144746070238716372391642353134153568020651863075445912587974952703304033874512505703625765690605216546790735309082120942144517469717505461332983622995019509583453504751530492611355704682658795051621135271272065812243895884533675453204550366559992405679241092481053642114331832175896283760455009482033768692180195975249748128779812039139487248961056736497102799290384223880989830293490314223953110645971695815401564799723711613448871528001579251658476402047925688632960105217037596785778421372033989305573693112253172999605975024850404308125450965507244783157277265284390788401769437817676091706598968659424305799032995443922357532526374045283391671915926962675426488023209952222989773125515758393281202008264887841873694495058603722529780651569236932613742283014485785367115645360545054962843883057570714997309963956573574133428411906403924405678926558199597782241859844982145619364680364222461580933208722513287879085253866853535425914599524553868393560832332261426476186858021936344419180173127737381981997809753751663033118440403428471741126738579417783122750547846070782190551977499506617144204999495197259607945755401747631979192511171896906120411413082628129682003702101332372322195781536330104356587112827631020820411912615272605766737768383806842772572857525370948243014358057506122013973615519580157647814567831218922496136641134596242383907927838015335121115027954631879961196791005505878308378356067668325396004233679500333951422509393694773266319181508189529899394579996164155933340136642718427248968161762208168060011576024079594584875245370641018810119868436866633310114711108330024026309200732013731566749176084989621510506927256661683477034144809464047280401410661939521845188229985774189644360893770752330591723177148398015593792365267441261621724084128325210062427163975550786777670501061263092150528597551525072506307411405514292532765385238105760585790701250825454019022361073929270475644823581502206122637580191832472811896029871925364107436353250226307989966614704504935823135538520469297805037420200623456609252771613955196188694631847083549393238476583090641480710190416790149909897320688408034947031167744255076697415639806497806110433407854529451736489012132821349475790220096254098241987511983455608689034129447614366965247955585405186516380424613109048338711722146465543159447896641092157704855114639010882121578884304914867599563577923383218556703838212603521813185026177405495651491137786480444626633271300607222121841251601417079671405691578443862891613137555135568606348324928425451757288321127494011151489862819662338997613727676647351034099625937236825172304450377068521375737641495890107159383906639304792269801546221870759058686476661889171716129193687460445245068518357294089803741715066701360087561003004270029384822938242296919926624191791879713822583561419611096522627780125411328120231093934936068587336428478929394845070074432288390706554718869324034608990763703548716750098969636730248240025123705123928071775190614277307914769177212727244511814478938241012960974818782236170749425129596344418224418526479647612658175096401107939623115441701780643683435637872618827516209225091768846864825840724882450632225724004190183103550143242062947851891766014765301137710700674908250007290922377545061841958828467326622071130281177325394671066400833145972321908166265177795055476065860368378586863240664173439688241870881307417823347933613859483755396202242690519481694329657016181891662511782087474920292190800278252560054631693495912786600860081728337454527512466053906005884930619050479194901731119973435554077176759652474161981053486141837853752639620315769014994248006755141803739187774628938011258860223393095468274810645653699593395835064524389184910969025593741105557034289716115303618726736606267166713674564046917962093169704791349136849105314110721220377976939445881693949081318704865191117493298320436128166745808390851669964748261636886688923191909394202060424530227309023139794390828633306698505537377243250467874906961902805581796195420370552365982728358124627377609539649017773054053565627866011213031721609665322301282872915652787125353220961225930367766234367024322610200615192040465853078513217079967679393019275966539746158764419021512010962823414883582106305237641632431651374632020194094392479796574938271937311126219010768800394359755387022038606549300564733942574231688555743764059156656246189809529323592436026580533003384803266742195648077055940186972648162760196037253010036327836861604617531208750625464415042589304255904871117744990208737705261635968753015966250876966504628621800294078224754583770260436996314792569224224317603016816702530798945595593295186927662872106236827416373213280965937377255150853354060006958260852074041510222478470892461670102048150134302837975221360009436873108678658560878658241052957681620135032015890736202166056092096015767757641062997439765548973780703398043733496637002732182808792957346061491204590052775042920992810809534443565511149091412512203562538372225418599995186571562371913512674359393608216871431677668983292624252026511687522122341621995987382854738651755988736661613192362566218570299461299726192805659303698256434961664542028051691022065900705550348670091219899084540553704915753382940172545837543015444081868006015636522250426941314897035060702412624266687911860907128281019374800173736545145258900174740284768475102495969698456926431227957070329900102382915652809524652469544000373533143251213735189137108969046028452306396051906521780780024397980724391434103728076622129925093059303388448538611770851568620654622046041791665651484303026857376370107120057976120585844412443102059706151047457878092952407143610827913641312116292474695313194857276335602862091769206147045107366233722212709762632094018230420003909105625809403748799436030427205778071768646962662955057720534699232756113227051100247139567153341479027735042523755609477341278718669967682601814270381354424434641296711922036693169963319379895355099978692456107256277188617969332343579928469702954541083612835543423612291955088741890575173837167723478381091619905847623708017476588770834144429579705759722032124019885553457557697257410372425408437380351592440559141742587594796282512440323954129297928644036130537320979750864142307168904346021188279104852887149158865292589863411748955804751764499664138518915753131276916325645204673637798222110781516314825444222659007145519219188707718647830149637346746431729924879791772765157600473591082740220032745249761968655758325064643252050342196071654579176041385382034686511229614801433321364704712915477158917825195640247549374181331335257280457046798186228104455421549419564052267560986618258845508221009455835847826603727918602410859077012157644490545612047573370761142190306123796636747480747370147088417095148598121094129356538554141820607368879599650596983135198320059320473865629315662739175538571604889469581802973713583443417640752929273471765467741755778014462687663926815944217822857462984437467180540694744313831050354142031506349155253949199762705164168230520961977768708160607068503315682090140229851370782645432243512376013645452554739620746609128906888761883367529920842175303029114384883950549159079112898161308866638422425552642069656835758078272415904774020725308677070318464792974050134209303398365376342550521581762368801858076880479208229603608167446390340969682171905358346855964955355863401089156762480804611349800349650480647347309283264676817453066254777525476886339666041117847204946248499680638719135171485789196667945935253703595202976416561688829258608025865594429975474141435189574846931441848541369369611503718180782920831827351444634473127734340665500694152550679903251788267453403849988293140774130687562471984366792941129188229143936527601438833778686462788394717205265197131977807883919313702391702033175519630559435874082668781522674286065786743775444326623333490292147352839923171281078151153910999299092565664260297598203777909479036728657927813241015842313420772622663075471204505323824434519604745471748311326216933017056924282432719534222224123127030944041362058846852512847299155586807711412502657863854837713992771209683036728674446728129949617370034001038403526906169592416350452817936343983648228571594297342938989259090333557054558326480673473580706537966306217326227134751534835409879686206340990871712458083015555884971949777008440744781663890318355823485905496617919573712368182535026954389022418102348815747429455324531624934334954209293949989255355552949316571596477821927727502932321497283131039181093424674676609459952512936098809577108639231771601281327699123111434156267779971493782356368522781889929892548013994904076985664839965273555281924971377380179754195146299913266977279749164486678025987711620246786125332658792601594298761068022253373468622703191916147264498134042331538121157057888328731231535489618442896109836658531854783379900391845632075997521666771205401918077028374513790698762682471694887260736233760202471992323711391102162671876778353038121972306446451405841336852734044929513649535275719863888565072342255490490994446485386962684859342567018007244324848170876706246928990565860735264089606769043951931502063376205749147362092772454257334419145439739223230782870893046281550946421316555435796710239390571156886440383497161908890980015435143818027982104474658746316975227619635377444300058706102882885662097858711436903091680651245860022938671417072316602361945981277132068972214913778715713986901310000389335668210651296992912351161652330045639612847383857778400779550194190627339723925920676512594656489498541521489942154577799714512965651902890699216140455516030061711879509308498742666187321059449558306878578066742406079598409348144152022650047005137434426110116450520499945900174093830315495681638448536215343635181372926580536914142978407808953548960013803903081466103993209028476633392654413617395103464403530444162722171130009800562323511711047332982566408112520652670983604448665391443789513617704616447250254022168776615515845440236742949436518602262382360167859637150770951241755803703369255738103200392064523792578571565467601998329506243827357851683452092654227673150066564690854389356179019534137576267546600927277392047090046280547373251473050644608433103282137539434850553494695923318986715459165467859700813094670093155831153091261616560886033092883386850567462238174159953970843242193247343696398608638239913859801184507455787152605568914831795128497118802499476782856478755891138845744622279616515435010539167325810212148806524229227575899359793940422340732682420879436497340364498529783656329994324858130859360198792124562266006217949098817055917322879073050751232996400096739362639749526341355512078608456559422666995311921436378237978785528088837773284226710659746080177939975422327862480726899338055705484492799045565390308331244974445716391233142881791074024847209717200928405903281607045685782193838168133184026554688056734046862410964638410234348985039946714374256228577521993674935132876973125479653887761945690653745023479574901909110868433243524870733433657436646830865190806231890133614003008520199763265986937244107903851320560761666171605718773519918999319904809693463404695761184443758772339703418384358299135774931914083244478230455825423013420038010821865807616947387619226070542164988736250483636594851362467342126990581718007165023691359707438687838914810692182622402128992668067587541965717624112539413864263642991755090778270586304944339844586679745865258827109021858315525701208713487070166068797390724899660724389141153718262579751709603014789090460987866472869741776091548628289370840146416345643233405041467526169030952108745227010157779253349680898846956263226562694516841716284672413412575247782244734848768368286677993230740234361905740586935793960852791831106020769708211970813953985077589692330778653991202903057851033619412219515244044194036857287893645920761382839981819163984333724274689161858379490905171984293544253114950578878099865675455891703446288435086356525742492552222080287499106217525165374563374392392443258540607426592647080473366528962725120985914374946735318878037174336849658109196179256380382708315204529760763953233074201967688653610190908748983563563527440928638863448385782835798935614430911388326912412861148766842924690742273531057150333249969425548272400860080264103886765616197725465618232646073745827466168041550224974389040769893895055100282372187070365442452929248602516347882807370296870742644122456335614012173531899044246800932394825760288714349358585395757664388765726598513588669526777200360514717855582109496134778720558921487706303768042505895085210754524386830692767681978061135564261820458990841034663112406996369278450898992803645244907929323725895496762121427005020728486069759658063015690513172616664687397235222775476483135323225988194600383229268841101290999915442745876260199990985237072992775002577249032978411929821896292370654585795809375616748802468751232345358640734891412531830077578589669589460645546168761879018268323034274181499664063148648282302432721374393508114257285612030202542668441450670895951443671000072788563409176447561697905109834437893000484734580191832642788085410349855851930968458381713241319511925342716482916338478743250727511261916204629666111298624730182935571613528389913747909877528163941447623145234027947019448305564487540564799344746441561007354418273679392931709450028828502924483200008112590756183300101218479041014689628874423826939643577799904742487516722667495504876230955919719166317720429373084680511630531115949894469300885644492448335086654030738590297435633640201122180295058456005870158192941201100826782461388505209514393958828555451108862762103992315652873123618565957723949236747956725923795074064790639142408997951996159603481560340336857027722557783028688455559648943686761687476670727332476355059260210222583372053038720212170741375599406416074970145913096996171328817765695530963134774553289764893375800860153934132335172579912054300264300427286771613062128567763436290307218977236955026727474111263814743443587438573673285605673461150941503175106051877394856955583765933156441803912386368063520283229857936571843690115979780762289994260557160266575511557487311350333771901726084240384435774936917527440795213511380905262275710033131607602501722199699287879266114445063460531059774565708713287903256089494310510098972848720907203176939235913841178898461507391586878310692047234579532466367019826120898668053549917851911485481765034307017303902674845322688004768747770138804318374817388959091895724397170597618974991683089378900540281039737046269995364684574156478924321217325131736597249818533200746979551779009096878648419880914578960649319243023681278892374288744479063131338883277078566806397038511288910887951330975591025043842534305046818605320720967632080801987236606581361233091394186389893352747421230644578411526707503994506342891439760456554021851422061569810293382682424323656395793191612827929653393101916922339699996162709275969179835353006864062733599035444846277613245329431042172491398796883190197069827702120633478693038327612460518108601631652583813899345121197317108577880483183142258039455995475076449466450752189130552570330329810596578278838239753553467838258257533411632459609759651886849040612508135583063902114481762353167848022415556604400277429197549786519938008255419974234294710499946340418758412750199214595503115257130523015050818113243596393428114371553514534522685423674374019555868128690804411838988935622544753196520006011953979013258717790577198767855312033691926301659810411666755980691760881436478874470524249772464753664058881653438707519800024828543822321697847018400938765354474848871610440765297114682750139276487197794731929881324858290035684314671452253252612740691849357217554792305721403589178211511982964687297367117328582013898659797882020492229504660063597158222225331548038614738003259114295188244298161139623799081478433159077978539880170124441167979465653418280794367954113793796999860226697230376000530730634877077858186899316532425160925593708483348026956341472275703531614874050757345674479478219329070109820612070084475627826501444519622512787164635354517859778508179672070245039245170730262987234563004698816479166754061422872564737236347407097917323402667587100973959972865471593641287222136445839182410528453007131818728811084805226783466026190680561616576046856833535061231040043510817639408331450050476430781254375102820324467739565884529411629980631738828879079717688008554944207916520481738054902468897040856634284250922339135747348496466075775635772463743297507441221086419356672507462295213711178654334278624190496670625920385484210456293078809151736161113695236407320780833968417696561196452927991034886560956668776905589131319492185794896079875762405055850954263133383014986060981550554805497880996469435056178776901473710294124297520099033631707917954556273107858937728667623770327509055057104881373068135446950069368959830950992669343026132779024960956851702994557471866324278096352097855712988206112507387479677556460045367991456394828947522931924222523581427953096318650572719382777920973623430374078685104105527966579089892033143377001835263774268773212412119040228959217912975877783538746953847608516434933924153598448802337372465929436340683322906087645185802268210459743120435905063317461377208015393653671726332566193509011374356610218878865037199399051200254495155988717227306952274034849033907082306834506888132019249714151060995195281757549536429633144694209490336579482529534167354225825727519337985205572026752796657530066619557635939131825192695411286188042123571399618677210621382230547291436510159130252757700790478251573366245962799748159202888810709556256829776691431906288870332159595424304724699905788255589490254092759993201150429087431655998777238945045857551843926264435737785598641293271464436224927061756809952583554733942138010098983864131546378744165811932465965319233511838141481257990490211281960668671908976928970580900056849118757638160275121468814006708378722136366253437309588310714203776008817912828406584466747094628330565110135370553748422492080642670654305784301039840622312564048139195506511731404677023760394493934044739224691259993879817694875916347082894779184998468663258559469028072007446963411980400841369937102057351411051436941886939257047823723878766805100947151423700555726425310699265123819766238968494504168187780588122401607778966627387011112636467232863637634232707007461361798325673193597715461223831709681790197415189847056565149799791795089803378086314798235379455509986821045948803040244816713893746564856481042569223318142163740902540601732831260474102935132652561372154963676518053125402001341621213825308142455223666024348059064175543028180113830280554707845274596688290458406276069044655039394609694713067866799515390813311430708636567731596834421396439167063311452011180209185340272303648158956567916126408336243535261312839395223381677687268823020059489280197187088831670383154418226227262567056759540753796599129673708490992123101516131016205766864459707197611128894299131786966553040512770397116349977836124276115910895047268553946625533700509315401883375969634960642220191510861168426370425403196146710624059246489269491060770586035751148504010476639153713592789076842946330920041337345189870868956238507449951016497696618864963681993578532055764747289680235726232201988577071380508046790327932057069945654762833799570423438204141773286527247251626249923619948887079379167267741986183328779627159434109565105330712476296195848658082771054945970807247063925403070882058794042691112665863263307203480412922649057280307101298746945315094202755099328922039107492315323452363984969424789316663146585786201982994049540764238110982538402245630802284764848280746964677891936152722921631692766021054922069548241693468114472391008250677475768969339827392252045953232802213022708493241277626892521433764397953660105076551448692399315501010388540768648961822240502124358894527301697777557315989845657843735386658647039788459863591588283649699800884961307546549153037913235207465504205312635027251440123397669833028972161275573053842511988805510040936685562079764465639165121310085495639073148696709921280303950373701112361161001728501523299450837674094039661778609349515115193346099939645558596920698864212927197753938019133595762253638402530361614465016556811776163806844140420733216230136006440256512707304141340320809731661527852489226739411731967130637551024063653174005880480671004464080830265233346759348604033794583819771333472252344716741556207915223885065999999425527721146998290363601779466958665888815150708600511746322043836054382540118414521318946210558658207677870677990624311174213767523710092268230670669258898988360518302278163040217264342184023779034275229411168942555300996213212773435046231376585031882066498748678159184357112116167345120894395572316667231496858905955895557025415066651256516469360727063056996310302692264300801517422539260973862839152108849943259492797908038383640594748323022215606096070480857643149821350125507607038816388628916766699529597753292557412115826797303404883068322913815649285015254322284876930765876939310946142375075439778553317592974434097652507194069764755317258454925443841376993851113417370378557442789314877567711345775025440948537914807512156751590206298919722683330744157264414962197674076713400278336548330928550212199523408536878752352577304814755198008564968822846165293331943607517028017484725826190936400209242698442016225779308076842596368176881044786156843399979608902609837885750139271393041984584679779084162202827778183179527155867889657623747364610019895904336876947462771660269721818394156946494049572910758241344313959312991917905800019587085203359467434288165442603461833743645461087339049041468474444520351916690683170544757655966678106842679731241412879921927199560797053975038240347022175344414682251266705055891888197151237383272667799872679009971074416496690015770654308717275450743685927986404616221659170761064288000787989944207893025619257004324588646987785366284034193659536783117288108375524621685961827459150445002152717582441629382389727537343537448915453604571799203845152778989626530598167719035956765591309413388369894436208980245647031120029429769564482431296591093618681962636612459251493839773649311240601431131605889390663713416068951929471023793976048319770778566324172082020761717302576552428786835271172245666347126129390560450442813381086842880428478418779141401051677137643884212023857888650559594042950331515794828190184373857644571178530216404163371333766232329059477259457918477723446270574553324623133330003280773586905001565927578714272765697270466522280330227969673347743182428878423804851234816861091496377245272447367425301322909344192849251703064411075444859876982613014634407367796797950235131087828486047078364420435898913593763720649963800163097416987106368206037991077314719680097145160768750271077864998267648083416627439012629770437605086738194035894583780844894724899256180010079609496322841843248349247429536875341819669487758449154119809276060869696523849204294048289931199981872762469187179761888423052999816127591303609235486246362063452558813192393166139654067353769202506560679764755835994891551899822850034242730262720264190091365383187001597092786934694057954427602106859344883068281128661100016939024599591925144483590606177533902691192295788205013075677046885968015311446407169705897657282609860594419129004148642330587772188163344082420916532095973732084290938310020940497137153857864335245346762609417502866618562881021298143203474614146077486610111042576118852969024457512741554242233553561510541078958613320980022338065032330225622099975202623588696631645327153455185740663820005931100435585724172449462088335034006934522108874638631046895325871364030775902283660484562082827131283893702907171202309245374170334344081220586818280559473540358431212267585131970620494321002338756613147218110738534082428734661192845852272202740286126961319389582912573172970341910611346243496794930320902928737110046235181142506917387505357716902056696302273880482904304027648702681922218516338660762049701209354311925165628223581788684271055761010542140836858372999417464517486696649484280362036567984405702482546510164241174695338334059243007189530473657195887911168295441309618943350587050125602385066767674986555981895362722615903256583720621468155886413515126315307341012069704724540150514345910623154088092615749474297418003137292761769000501828891047711978266455571216160400729602863976721047102663144712742306705920075882603844444936730168291740615769625467408864953275777627921419159764277727411970047944918123963611639278792605080163038926555177118460771240573528448781428593294109085092113243975072713875982447312761811966890738626325789760664422068516050177180735691510360418228470400589753538525524701995260184559255156942449930691632960582156777572937713877418080014249783915578553540245792501612039452353615096632906179595358123347409383503303579765939041049678825668187308866066758244974363738162088854233780459703897385904654193887148517271824721347371632842000530214713820945172563464830049227656613313882822922625518449946714206722035542905522731742018251333348024862259147822138135156852620555655138335862416682903538934128950417934049427563600531524548918092793926313772820123855062635435143872658385663796295164187124433926145812350910674190970480508996524603632888040423837731356612251057755764752382672851339800856220054780958393620782006742933995839303252105911397501556246023027399865988878554602074058033812739970739066261669243326249095663609407110915197970972798937305218657715809708328369289607564175802074535541568152755525151191784741998035673524664496105236488930417225027124097634819188095351364076113985295248646557681374133908929638586685244018481390810356835823509750193045831895891213588047616883112237627575061528609502003412963657618424475622128093839051855669637405865221181772236763635136484017091371325881548346897008614023584889782610055257958615817378141984088683610440779773265708386670289056152409452659633712404182633355021286646190377017435669413788180228872030240801770013194354615486119715746545046640809532250026411833540087667197941527838901834521780595227900241604749662036565025857227609825678587927003483474008000220352140119428181535444784200735865226276942637229146106017443589080834779512837400268853608717668539145287810598509883282313432378100241324047353208037269558285053699692211829192265118701842991692807840877014782587570690471220831549527231579616552892023514355074902251696464747203063471542555852654892692586290535803124357995074316623315688585905748736898712179020736605705404356145069407424466873153038627047290000362238562308137627332416364923882611899905684732655930515434241400099101431508091327050061435304931779849215205952674070714404080579838687066553641191607180964553285809759521870603744016857927978392589163825496108620666948541647270614256827617219197557251374677503340885996964124230022643503188882462650986121293793885304525113123637863795536296525427412531203562643019566412517648964651893768888017889475438203004677410959505135777275678356737981487609952953858547711682007368509554147765472317357105298529583600743829373086993713705544841935237081662631322924755843019444190693475322024711486987331147819404213919712816678841999647823281354613187385763308494450836824443253622382190753108398690646000170300279250536687766050821510612299539088826739039587260911224995434099090667266137191576636303727645766126920206390806723321534669617217392229870345167577604209593945366121927677470019248974879212670911058368428266200108355323959190713408173820524051066528435927585009179465841667097167378239072588188927724525827928347062896548118587005165052112519703773902287226838901761936722974007028986029084742886411054103993153451523965314583300179009305971371226185697817235084363543291654001273883427020317618318226298580156946826484087790018772351745560243553293225213313844055400287370795803541456596185408960207712468951203317532775445855058532881030748629948925937798621648162049476913093651784712168385263637612575168301539794801346425237947303588392313241034770677081377072654533390658158306326929102922526803014296087720761804272062463297089858831723739867724465336149421305345782819230554297530587715940546818577350435626088819441506595783702098271397016872816817531802239805752564945087968511929490172920781716814907001633944768819547903604978036488273694866095181518039584131422566935487115237843736631965618065007134200542211298613979317977474043942343994977511230458332526951754276882019416234971579862950199299623259971937876053558444495032274024576346377041762536643791707528520531168802178462523128326243731275914793870608285975892020601136618460659553519654481156987002201190594649005669718662891413967947866322081117224563627230686965747906581207007140007363549461731724096629149837110549646390782395107118743983439770590220270389828320903721637650846408505808454869182727847658219164378238533273188847618864835007369735881505722160414707039469010263330656785210664914469877857149592834239704022392962177879770356726231287323470134206104720732610043298330439060982151884826961523840411206792302317626538199828813377100779940829919178554510034932844130140745610919611363125958972372834498358743393175821045209855615616824652857859244689359751788237546427323444049417997699946269570276025948693328154042472844330511613152296847525266827258378920995638852558509695985490984352641956644927794712516627219657275087834984856281376865503718094466406646658698945070047791560213860025984442625986509752841302960992793126205590946953147965946394951142214906247223847810122624028587029890342952772209309432727696593572435878816324221101091041967276143929504803033733815611890592791286341303322675497511459060069046442965772888367135756495631361758306070234561167736930927275801736849032811701855655034973158765873376441006825535481859080733032598814500424255620247136154376492368829453679844072427774764879051742785971977012757493562866626913280858771378307660263870265684559217199498084618432560584475648954574756313214159717894551689241054233491463201956464947006912273535338914403070332491965873713565853517913523685525473992838948694626046807713767985405501729074683735280956656477612977521092701427279853710875838639292123730258611299295470268033924156553716623516506647649933885418891091581998683866557692924407387738511784819804857237477154418311906531392814760094796011880266052449870429272243631634586612026919958640431335229710211910351678404094989371542240974410457778594502994147573556380817431252932081583507339320207947499186476017438258538949390942568916039724043054547698765946167433320038112748741799468486243300760231178501579609128341103926747460357267405465305303106180065005563441591574920145964595500964603038074133946809531849527992179123310617782190298180143839330160643678531484714677451226769768198776987873367089467729217941782929316275483910387618291775881378208244460655372878179077380282426557328764763057129120328555028269949652496328313818752800395730543125314080217987303815241808743991645128307349857916958837785445700601128708075686195868546696497915456713091648753536885401773641263487582590570939211742048852198637413287356764682141596519236279127046795670051400560600749423532646649722630807366525033260542986202163083955229420310643632279732375248095111978705880983032642319906896617380372293471900942708431271203707815548645887973241804460802410667888492656190769710951795420351983800850077975737660934340098264630921472024163947539588736338104917235439983148863685035673404931531128040042137382020470682781940101014326943823939215977622936405451027975446133757390019504112593943589793492106203225301441641723682842266069395380354559685422521508115457545396378466678987707772416466550837093088980738287034124776404707850132902426271163102500676870761604265465972507854451191425838882938050657711954907278368753568265490793894217035703396246282425865819208892407445524062609975652521365221516683172950037014572233108653466471473979833788297861655719835420617838583393716013988231284108807056126147214440984661156085708352515018104818986642827288562968444689503116714049646511608613659888018450697305970849995878819220394905869415090686594611017179034680456933558346967707404945647119690930627272722622117332199364570468524919492309266313697768988547705232549963840946621524988605901157029914571207537958173255628749611093416051217357122455223249591327720807821449374058055766490312607349199348489092534760002173434094182976794069739113724354348876101363305397471485390069194581142372383528776404814814809861501326549628893356965840952027807610780525481517966364079560098462765931779461956397914087216622989201583634484108700258231665139036800293343090127190116949147202153627239170390628111260029128204525087298007736008134939691774511213412381471679732119936127970335685950496472953700183224511779452408265834356484169439085977357644033765444501901571399089659427713470026008995549609155196229615894445230475462532155072041252275761614804675368056192733249759379494479054593829144149663168107217509440760610310766571810894537030403836946594345881444768548732644537705974604094056391020877920242176180830172102801671940474198643421509414210970517122501215431336718409130554949195150040084663881961717239860677582585668635030612913273743291084229889081418214601399170426460928865835000468988886709474576137266991263538015134226143419282712319631696152536791592169470974039471318219297800625849800519330097020755990119628573065149891068004327702269526556301510379247353284251009108079011389193783101601475025703544219107468690827099257948574414611718864406086444089671541234194769632461990267986867870028561781546645618117469105545967055894786894647949600359018372594640617127425630688372332870581129488997022663044395189378950620111377709204486689482312538278921633795888436513671922602820897466088259618457534265130032667747897923263345906524861632820060940981825086421956868931823869852564426963138622496431651564120949612557208017260171255010789720071131391038222814541925227553671611238596137727338971088843946132009398555320782837794572566463293645641855394919078554363106618248493401768417581995885001896390453642536850011362657638369524663595621513308654173966432314546712097330613792754945970312358988898017073733562393104886744279358404289647855023448313685694137522637956277129584225859653116208700042257186237983982980382239854155792505741373391203969498051796815668505275000274470660975589289726402417004703958616457368870914464873167693095840499911981323814579563993625161598051694381218472896562507771121554325173968396490983840146122381779845780959685142950028157455126325871931419669980617188864347187757462267424849577909812438859334388204801464577901028312785351945810948703517923965328945865103366837558373560384008789238516073050080152239821629800998904702801516616794704647130762745261204089580555843380375647591627642443896862241813820770577881360385804057772488235298865958731116380014547313345518015028452609660804106804088427198806238958070611421038735741882377586032324829323479605957453701203219718791593787453180081783648958736911870037683572403748890856619449905330674794152663518941849256593535016435848589458647765927084397778202544418090343243408237953832910113288753681940355323035633804990517682297421082188168924869482904785237926174131680865356678110198778437647441452574348253486073825388686719319556579197690558710640208398173501674771651551972499966319417568468089986995065811235176088702655830251857809205489347692782844264048021775675090603316227148265553769755852622983690941248199548241011187292397408568311186382242694066609956017173191007607324746001582839204598799814457584380291928807139337541499381767543746657310969067294499721799564846021444231929413452939219148522158347378450643538651316892146078593202116610584301790417375083433670752207632077656587187698487499618872529946130606933023406932741914321787152894131623036665911420803140923204652399908977415512851047806224028161629903372562692542951764024924096163117056250490284804392511473311914943770008029262421437773613759493372516506368492465851541924932486231736454595323393796388409794972243755026119081747810334142906870263667344654634029760070427198666852891390106817563156630248525833871696444709635167439400469083462182825851854339004074850824424293469359371745019570554548363186352742320729857932337714136280590085171620013270096051100652626004224595942618009489299642970196274788518824049268612802073827349944649501190030480466457904030431333138458842452442274615504925935302642617071453749102242296725721994542906303307914223777809640415971521669756309629773631802499502256983053289186720642015460802698028790797317817106155526751713334282250514478516620458104518778108260039294324811701140676463526135539828704351327397074046521583570930993736577769855847051962761951762190710890180447231475689955527415932630155417023309588349663749020117182160934502018954264329642032525088078790185002554083609655920111177435969648061706096447830730584033528053711275644726357417708565646575026309754573390339590515820858965796257178286142777452620971074796318650177002200996721766245668259558084441278407878069888193030010743114922678098305137361557013516992169507654396987301204026744940706398176250497224958712404259508076987993640386461258284403486187676425888846149664923262707067402759699487973858520361894190632493500357470955262284270625916477806677808349593281310017202768836321402541536133245722227338676028155737915710245385376676642116662637428609733945223106018422028587726914461604166368810542500611200849382258737073095374989090242650150481858749701587633039342075459795031763534463518645052155974892890616142658154186804569647781873896167615464166828987466331360619047493051204529475836736259423546392155939819985618763583543908601479017726777080708233381480183534817836214010921401996968900261971502409219373999400065576153529801925082531169469137491420960314143659450086299290511346854650786799543260184489482161016518600264382014107965323377897964915060556297097706773062949153646323638348630323711049200204459022223096374013356730889982876577444260680748167677387945853486557918072295052407414845833171356141709552005535946446986972370790155261113753178407598730017997355030757232698427985647102462656898299765025371012991649358608777149489993528233847597882971253520509520309060397838440518126981221579038177567579003863583335688459233072088479293065764317223343057350663066238886085855737894952285132970290062083694856860848438311937818652926787372820458511751682831114625583505236809140790989380899014815345509239093534628921915629320972976648456188850752808828915796754597877393564318900219548263203881050464314634438196999482599412998141086425126689595572268296447726437563517148859214931445511309191962477841526253367997224125545614182197267763174088665369077757006347805658172875850148537097681382780937308731504165568659924387335870510012835380024603627632021608870461790185520253512356345956776060867710020732496732484991419240314887791066218344225377935108199037485610373584019706795370302001310810032294017432215067986344773475970163725091568149965030769855546108778341799510864979143259895543474447044029339837725849926744776430112786738866065845497813587235622740724849122057297910980447712717962974968926844931719484567117536278693518326315169527362891520709296196696315943508728280126439497550892961743090051693580215024461295620500708090427504159865800249951367614751112196653643228244912406953685500020051929645004849872481781911907513805216889194977685107264877828991924680157711624144632109294617703746819816423151961609666605201636039326863643230534637315815969243166875327930266354177610490525439815230873941822864941520660027947731845300061316744759058358972766213335913572442922317484518063100220138626278378041497753827279947680367534848060057465048417641608058775538380107344298404653103082655807998487590761025021437101310693591917208677715182054723626256718636442169025122888202770363118699650987322000363777622991948400076863292977061418263009831717971167030419791919622893695689475567419672805814471364417985672982508255370137243393914462492641432790114809677068812344942438174433096711309079247699998968572239888467281962960162180515747390858323072304357072678671440946925633537510306394913521609245068119139773827994681672509225050049074306668607512338598537267687843386267730167151411451100420568079727267570951227356829813811420819639053056404632579488295476166561671310351005382108890660093401343309365890036578030701386624713810437293621054435838773420904078230347223989954829861377386859061796389105839534055449265890437622166499060316528645813174994398285723991899033843775333288057586192857235557054441259009139197164318200846357161284110457503829791880146877305639777162458792006783479087719780389452926796753904412966662053733018484338361653950440925335883622274284957430386563974702209746911521291950423724367456287471282232184976085485041544892046068298721433882013801160365828027944977111701267753664656257891129868213911334693728374816365564914640911086979485456886899317632207690629686272421130531166146835473271014668672876302866544572621698048496628223966585514132918205623532988274284552768115030260049099081305764718562433250326208543127495859802622179154222444663269680142256132783893219533076971367158406526640435935080895781635796629887704506481740137013445526270052092832164901368271475476326674435779171177280108295193035212554818720393150542045088041547825946357671181669055286237750124245678505510545221210678898368576986085462590452325310465326137967597990343191326758141837940584642884424919471538959987576937147314137791454369009208127299114454713181405110888951025083919297030614341868706487193877010315140883168580213571389020036021151741814214210493544223409038315632206570665351131314417955976879180102529576617141284140638093389897392030753175548570008735137334673517823972133735719515134038797435354295402065873246936349114027089002213530835679455242200411561970502849887189158425946323575056098517323551158497698930137218194336666234281850961114363152956113466956278573963191202654958670703218775054705834054434091702270544759501652876822918724717540383661836541046890373548562975604889038184016948264288669382808492250222589074909110518934787294703631500379480686536472690527064739399329524201492144502751540012494242629760199032483565921270327316230055149484161804078081980978485506084859536748833937992918434285086843593657584317547198657699305361259203281544033370145161918194481264861111138306086572050047825719402142904803801581674095122938619886560757746623982940075910067826774997575484340928799004891454490664585967736093288789649030451056110830589615228505752161806928324423918559828018913922303592557224101486771044501578624823962739408008482790425669850402993183667272079258241493076205746675350016065838953130684995890981090725445562481902824025965579868475314281210690547344740473627932061649417888045462103527170633382389344256858943172436181478341744342886370570425766750290986699737825988116406994304856589934495587209035759470912452671402028058095504593428805745565213264146902654856098267089828008826313778774801252316680974306176394014970307788880218949880814968046424699311867318722290038655601778423332254387772688745309330547682742109375789294880278457846197092015162673133867408841545321106791317330899086650517523693290419713584130730854423252404975729632798910628878967408012931023784799340101169163182024851805389941760219422617317126170082225957948532629880450889068059305842815463333538013236769137315988775358302616524102648526803827392177758584427166882707863459007447474205860390248484385545041548207672880666244851537649119739213479059769146068580803269343065424837759477930494239789402007864291362849899607942366778733975114238852554550905389595985827946361270524596165152200506512941076774167237390045412639856881326791805446274363505166612993229606245290036697736260036783798527381856806770377455268047242317723572705265303456941470077714522243154170518369816127479738452344456728158039516846266158582646643873772595134215798009974994213875438288310097830167970365980950769784386102201909666824173971166352241538781638920705720715481239196937089208076819227726678645211323332681234079848722783148449176298999916370949595669465259248863043303928712370655551731476552393231979081510518274880436262404645193164851516099499507786847252059919581996631734902521358193961580696094133249678895333046928497081499153846775158499309144064375402264273595257968837670883611661013653408496934381984278669485779318681625289582093867013307689292915768589528092748633829485816093044110371263985084950444712963552397484257821962904725326551180685451649381484982067027292157416005490982172708869495285079696407313657652206773983999561721020162583375636434605776532505981507182062461037276280015754757386924242382556544522464745727670192939836571361712138912061233527294755499138035689423640025659003948844966594820777108508296824077655838461568281521617791904920319428726536681595681046102915009900682208459268427201227121142309656868206770603562812874308907086782178947147139845140340292492759231372860490756103972691897973304950724770489398359881662742648069880209427306762629345694289400636706674680057669491616129737160594984983921127126151340608598536992070306767857693336714685345505976855046636250160592012091130225214619554171840083650838166603698596192046424916037340564896497641387004979849768637390606358393186880419190936329853380693442242846521429745326346839456773207137407344827086918416509139491111616750414525376214662195518904565486103087606689340634161889807167575697356469684651406888951445330245784199237689336020279615496496486566237884062171003926115962160157081716203816174929161530133039774186387278660503523627562454750967943996814808128075840009616270106085695278956924341038020459171619663744958841691890519048594838020250542699136155068706263024350361030551124016441384026096773240095351780826048840317384082476775992778782943245815257797462949454906459862355219365665525305120374212214468488327671648100237647621125684406884088452087691213347791851178152214437223652231750214132904203494167395379759527089365289568436529823861925559064695872694231461493896547411634007495747580868910444449706822374139615764669909422461868139054393258337128949694963583035149964722594493081124049913425721438226647353803069668731867837463566101227822489923296665182306543860883336948961248770664254199341613245048592580938101591134439981013469976795266475776582285676795931133650463485994156209728992642411031984019905366953271446925435745706240989654051852220351470178696295520179336554060960336954947978332731593333022952776928869404294638675498765929786484992103936827518193422074571722096978174490143232387770353030767155086831877205310211300073190065283240714245821662381286263482508140243209061158868148231771838303863928965425145568974226646006089517398600586846250855584543009283181165127280852163886064822499985462332487700771943448944233620093050723265293505128862499803567537634836166772317001389210976065368770479812064157216488763894780275262826221162376971697453662562037513424237375551512153432747686519347241816418196630505568237405547000574540953533571086806930724336665482376104290052685230947607211308642378933521835451857991472304810651232229797068427096642589968407845759557907864860655259896483900863061784001409997185440320917055357833271897237563174398453173594888578046216620996915687536152990450948793903460871660190716513376782237184823398308393122841033051540481366828544473765347162760010900598309029957967202714853477947564840429520488952268017902736895645685777877236108976199489895274611957806368963838284187678969028957010702921337131238234235708597609557070660179903584327361557936462456732874897506922471630978408881575530822713611756654779291618761948290021029137245538187195280027747133978893022378837824884226831382494650899085289119784462949865020851531509353217520963572487461407351908169878198479663779454267700848601733070890315748927475796876660534787997249494983648029082823870684321780582711414190311612972575541039146476479145778795690145304146301712867465492982905803942810626235075484287518768779321751391654492441835967065666509251803379726673469332260319768154769882724777342649709271227680398469885009526612619186688000455331047460949779617646608575866091270875123871296582043339552881163102682680807774487511632592131819122831986754028652878785058418919982179655775404848258064382101767779645059147359610231871384394560791417706150358696743723932037072618781844079353509687510958880910108679361597962681362429834944376476646604416778331023534455307438023496934686885451754708739488948910103385962604301746654149416800128392392054113172128600491000010589204020390235989844286216163387755533390860714202235076091053051223659921986615841488654834021579469690507729497519782026163100454502032056230584014754349616313056792151130765667440953913522325682623508170584123394891742516113611927225602735821073958328421639669157300063471831442221715154162675201769045614201164641907484151904759878273830364875453364424118307450232074183206684001650610558971797919468315286863781480642709966785571907986027771185949019598135541097550595466515121604109652522814818824453703221324012354424977158478493975631164109206705779625325287771665667546400239896293596020677174726425984139828798223118286459059582309519148458553167039493579803628390398002363879966366480488406667390499521449237003523125971304667753066710452706089554270478098516867518668452480709705434239174602278113113177126982390210608074690638384147770158318936939842152914724593961085968422888869675721812627033936896985911572596549872440754080455222696628461130947995366621284934368078786720859994960152929750502416856909953680973580809607180048600724836070022590752456199685161871764419080828981924006519090304208608112385569529590990897275100878864929134320452190829743205640013440449478585315311053644158200576839731051968395471653971485610369299155595488519416459353063914151851633707181227575891728135237485534299600471994983380685166694616963410788046270523723639002348279832875447218191527625693790789188368713350261826194329468058507877415959056888492456789181654970609524839690416967651009943570143765716904256989939335306198976787640027889016526878096873401314344648669848587404018218026791511126136814738288638619927567136988332601981108843974037672242759627359603664748167617113837689948616008210383463472609820765080306527582490476435174409135082859481034327994224235759115621188411445038939906862000895688000448347574253296161114132589175387640307583369053479153215738789181899869415003786693019116971604462690425549573096491933190281246609327523517895739603852032710884814217445848720562830596089819159862848619075328222829394223458454011020480888756443969300618162925612320537305402849069545093608209108297156499948052160568750758106532555437129192907445661587884901579080104948739969809168887167572986664715736931294033480462310529583988549178860631861011214155970324808012485084911209403591961406355995136274224611627636227035321425041007780962721978329099069486494102628192753008067487791328955939029214535263977010387383614142973993436782918683302494053568851654814507639384473752771152219126179067899370043198481935996996043399979759361014511408737835227566253047322369806288084839167976439937088284206091365000825788845228797171433246114076370728205431338165031228752519183660602278211106206218676599595395795400646782959758319823858051233765588961383532910400231359740234093288317643068112565606293168658851115774915733156972947385528717225694807347097233736676690596589552004901477077388080461496271550990666344737047582054257779007614050568568287717807166535021101683052713685203102969732509835599525410944817313189954430150821931035009686862143973040839368490025553216240492083174623722444727216072007966023210083160055062349990008666123160411564430617528761441624578907695434451092297834329109244316567753748061899115201692734284162771402811128074082051510771583545602136270382063185973749589851419815543258251166580470729701542027626511165467326906203862379102602861673144475200396947134618301966406516831169710333733346076905289875289052294294475104985864110460633015901654227643342509168429135561940765532412353044869268793593314886585720211270025374213206636730691112866542945183921612209158550454251899309570861782774557182587754585894330863529424898760795512728585020272248222661234671722522371074630864961475491193315486782765804117526205678998551491706245802707511300758421449799528291729130588858264289005952213092689487781134379989331602961231637714077989906225534101382593723915306871906604632976065758310851232524272150941019826184710570944996296050562170518937616348399452871674037412828711652891147615194500578538120989043690874688714729470672969952985249400636648086009637106679502095886354363010209405208647891251166616863637577875098485643590440407033867624613336532528354156529564900979056674856620126648030343969837505486524878431834055304618706738538838341647507110433581155252247050208012101849545005906487286912737475663608235173124978119522907826824940544007025295244721904784113185698518957625306390876497125712718874935087088645391164925566997966879226665198343550096802880461066741377111154780474266871588775001569027047648986825003106806163801755422462628066500023406213539484298341759040604007681533680503889025755523805650467955576555794548984734973834553079448158417089785241551349051753239948901221008111293770859234298765282878103154809597181702414325136403330329263311980952357355466411635229560306008817368227040133610798721825619219261578899438540017574254121591254646253282654168281403366161625661372180502803785636761221482849563125257624344617743906853999201609919038832412134038601312074977254887526002265914300438771450329208025510082633336090122146732122538078895781348794612201466662053828969519748189362695575583177149424577829102326220346658948525255952936365146814779338160406973569798304588663360224262274075050922452134913734245666832273553251489086359689893136819309088799547687396209076050253377080306738232834222353823483534277711509369740443046531888216268374439555294462926999049498373622565600656164871944256542398866410136640054156867335686901252979038179763106318342747861767289181331159605654813018784380305875656091517520091098027788004979707172578612458519426696382942202998448902376590135660733906254116661687790350477781881586459603413025442023132159380667849230012271472539093516348243017711530683835288580477516475431589786772222112403245679774045002292342666106916164827451637598169453683089021643745771148429579216567516264705224884312766940465213555014120699100229335597238842451872276275493967809672856072416659191710832172470795876832889422086977860062635610250070956035421095059368064588956492921209689870022311630054001304307492894558249540727435581441902951980605281774718423215207729681790389525001378198039397380203482710031420133714676760132152368467393657004502312573773372408891371117632921055376400047447309315216743703041726784522475519533361039384388391490796699794553283598566131187052963579721583204593539804266184440322245267705933345180145798637450089451404002461030247964672786900413989528059847690845322386521283028012460229752828437467258040141263665587854153305389341668267953301200109861565449666237534221018792397897411531276052849799932414335185626246933617314393526630181967669371287944401983677225376474264067170124716423870409796947462422415557638184981486181410724809768961927546457467385747991487912079174494057418622849776898136920798945535312643995061946357443023223095215431180729129136657544091461078272753330041326222032422141381113836988200809749766388891516245207417582614902576622339608648171912661484075187912446825697544552699477515469564396231525056677613707993346918758874661819210960403631449980722832025331383570432204479693194968030346541656639879161175290958104268673218871109031740194976469589764986096056238615336763358798212704474459688615240558426284047508162368304539455273970916899025840183324364876606739418321916288438160560931122499402645138233372797117075975669469853292443892084713046386359788080910866645557374607560893696934256029843970352654156924360701782722797150660122409547085028017364226496581002720608132189020415410306801960928936916607866828106852523290099589978423377755626690835938305347530017574858271188049042161037150484656875356544964758282332217856725562714474932885929576756016218734323241307188796909079516226686139568188042090202726761488916637735888695531944851537225443797366668033532696761190391895064555013323676371754301264829233519129613173880131810940319489499015296554085140959232177573022753271334301884449036743702609466872190194267471846997610007752934393853153433001840727473221156800888253259244418623077933366806537037422500198637128133466562964335761637966846736243973973622449034517770636828965496285398703293262833757843758435976775398361987593448094175430349742118785929705452905355558737797228855760610249566118814650192412370359308874465296291391631607243606039727921449986989704756090219037961525392711482857451985599793581602601608785773074877499511842510561860094265766988015151497517639107924162022065821911486696722144798690306436918505678945678748453773958532039607687719251221524103059274297720514678045808669128580541627768664326460942896649213083653473834856059187102529466878750265126422931981888475279574561217834160976938904995794052889853061880703625634112807429275727725125171804563883601201866274624557540009083358999091717560903570295473761246251038071775725716590830488348787889669402664959051958185681220165344616411132345069943007319677342179427890231832914762320795613115221589536476476890485711948230998618744185772103526565090643531776315599976820636246330866221930303728417739294126923373190352664666343738417579185357860348572713257442790715524874837786181901353286066899765662335957554935527952397259915439153080544915457126365444220381945269622476190170063933587796210006709508821175964791953495849707682947507223675540940867506145007151387322625932027508863059060656599616111686472705316794198042349156167949614529763852769073902470473018654063331162087891791848341028141837023543949745655192824305751310965941488984420689690018522856783204828573325474321801164568723085388942642559442380711414490075834774061772418608916897034499971810137405821843751508564150965266459205296934612151963716845363343685430090757853833075138850090813003806925088518849696124791691849142422573803532784784279772191385341809547162894895502188079362912679285133564662672468740802710150253799138637790266873903540075310386798775858155358509268981549647331921747282737336132355239624088167424343627091696288183195186706561703168860536660697217461546649089677630305455157425749730728898024360714412285976042352213908461132621222543376933810864431415540769432035296072144330333548872348814275954293702883731721589509562285274620235510195276020954937239268829245803740002248608021325652813688554013711924598051349642803372780896448263917952720024095127659464659469768650062467193562503727712045144904142290460740116070915851067402112859154992724604197931268444579114942292720179771276003373540082756769383781248065091498749960855400463319089699573313396323483458710980700414386969988893108566687219615601500051452129608643414963647860359003118395995361907268172235453673542933043945850831797203220991328498627802425861769832648995522583054607595009024657353395815703511920071558487131614726657108753566524634467833027537338827738118995806125718300379748505860481535701255135994185585134717386959490073540188773286470316208350882042637079729727495119181994901848227957073796320828824653832021476466342293897077731883831829323890963781674612151799826880627135773153326856435846584594929356158542231071351907144486052698950540961835981839622920540369551768915990330921351703076184404803319053912606216360644126482665732488454278236028401341535470002388661754722678700646881252918193205463742946347684020654265665012969670042417778113003970152224653151248297100732023788459337845251811564888844635275025592502391215981846691883875851934204058256168909374833790194513823042739022749312368643986737108932980683239662343654686313818356683335581428029942944050431600867191404078810782230523096783560630381338381743753574564913720975182539190507523527889530918941338362323579517464892498719898266571557795814229225658055260704710935672908861140269362005763257289066587055478250212100029238321698237883223001298965656010861686439768371157535371822652737331072987756888037738977139910993734820494939493119406071985885243260855226610724313933294839068479239165794422238626517026987830767389633474049340873464175009243828198664339359553422511888684955826604050788578581468070919092618232229951748356954321715366112645012531342492132383398408474374171949446121920285885611602832243496266319296097000415375814527726528069779438195413951448335844182732462911148197443265577555995922815216760336472196225715404898228068013590492494928729385590090480828014384440943321939209379224824492856305341544966004283992934815696966146236233521227455438800665960998473333609362616214182440742851990900689055406391378091432135473593956106644243775633518031371416985333898369501013585291062811789462356511882896502585824940983496876187376881682147515723348740301919012413744594052625152110161923714607522713753496353691386910409153629997478948025912577299101650201907925842004433952378855457706308696854159451082740519964174629018905505138426126809495586485715197432539265517176578986859651092194284251878604615871155608531618296639367325519232032487948943988018984124934495809309198300570533775833422195355080825189696865143586121395503927243510376155041839476663382470058148028197727526059004310379153492903606121862109528564940902917500465464168835903128920952562634939561011958688472301419872331728045007399140069897177958353771310359472317763443772369905318357121980870074405315222208873352715036895202341366521698162177726060204073806974181490050283869915754557779045153011128786738540044932700686967125559753883294161066980056965758483664398988157728470085296036177631900636505830520905595866543203463846099639644786688432012425637611257418223172904727185296744533991321251063596442447520863754175275966228310407195597030934417502886679047567766830738400330648278121711643636889383388487643807561876770842396309037530399167378322448218552043923635216158382215894890479900397293796178543097362454905672560467567887385447966709931254421416730483397233721510491899421692392675872624627679880043931185835882631490199853794458881482257059261059035834808459364451121980333167872579558207280972907670487561886635010891064279259514466814048255375342245591035046128162090839544641569825865780200716893994618053018734986465797036261825050764276324262668015862949831070682365338999815469558459553711611034303230386864540063086527230815240470180044461683443532834223389889342491928095812200778880234262431512455838943544607347495617278190235209105876917658157607387365838310174079146778833237990359298591443509747090316196493694262675327349175946192778374175454999908760242106747454907300425426753893145819678574326883652160372654911908063971791203505187955173220419220777502496665266976591426977949225335063801818442011062101524599677994306740771484112547504829005122863596393404451111346382642777827637811487576394272255165053952513929067933488170451184243971963079265983265544234873493178003533105223235226664189791805956024122258064231669298077236436031332752402950525717004268283447192808033055093814278487237679697171041282512757665122384361457512820134322831897776124672926630852628540220067332632428064170012066415770570604707565015813816758111986227413386549016450456803234619059405832389620635545044397214774669493474954893958763502191622522616450488202193595970929051232724688972320640267612182376322182298034712223485780044884629675743266607881021957609814496262955989901504196483878416458165056087727459281853259802252654696655178261346604267160186941921387316833220045546621069474820043049509100616732576884005984770845920046427545550552966577924236820242207415897297843815467286682793385019184700304319334811026959394815886138065403751390770931736764156889157581587168866319103204618977017173341062761615670806904317533869432404013918034120298809127883775052094211868052068152474764568012624383365942518108961602432543548858291784271933451880439897547052569312683983513142351889027529972258608715715803904443124822602140008874782241332099954779579413041774067578813892413276656846308756918576557341525853273242027263322727731320285838817025341279314739122121869396498285019497527230536528063962939259480784781855113090056462759950217008791132226896552767706135080500425051597351789905846403994239788483824699282755997451005840028568009958440974562022584007434309268915355373624336230559382046213009132822403544486057743061956705090717065355035812634006092514787554813065735756619163621743396453676771860276647849116159952716262295001871981716391297926023541817645616465023855668821382468612529710086344810996792868498905561335326302979727686707732050164259480159062215244211958562976122737475423269255429244902695173663272923617175138017540226106652366675359325612318548170665924847251272569657000302760353562708276884162856347439860924799151759753332476715382180729936463161001798905905414672503007447629907966430581265025862997124264291657647340007830121503960140067367681911061132280397543732369894692364136517241933081054486149776790350360687955569655548526035212961205233468657693834290486505476225986468107171028544551767761672077477145719621468318404784818522745852896578639101084693963907198999355381128112533732360496740413971545003804927483727842335857346682035258549104083351788810250652035191031106284849358041554145895977996061829956466822294195731399759331725263843964061814774002044180740842681517115711689803798007378614878845152505933552590901928414503467761649115373858608277824008791172711382636616740394972507004468547995703506827939273096905549708350792456060740188121922889528715988355471937650678840156595073678390821038460483259033257089600970512985559220533928537580936351872997750202701131282357044378576238014464407755884180045067174883072133569613592315952986466661675071731980262283589047432806307155245024638067175625257471908654876092764462096200441668895125979200249520295661450107585489853841654998665618337158787437609160141034853752995750107179282218003740305961297903446818989197274475574349305980837035297360711189837961811051775336077348478034454867525617547378358036459165794978082770002877952744292897217581071482962861703038046260761774315608424534568710917320107902090994203146972505712710754844549021909718172409775698637125280615031160423273655657023900349389072946683480276142250072627383039899541105214316863793994457363838220646250028824389459013575106935558992119556388258404586274852554533859886264644448713552964224032694597071282185518404387195600736297263669165316348440369922331589127291533141175442269254497823133270839150415347874996835042712950868663838705402390428003505575027231603886600441236178330441872230102117356228790985277328435923533891619309499436008683064259133363990542649044975337003772720196813777602902176249204853106337935138889081144329260827562087069212867991100032962445469196532883510195846661072333845758402890489427915366601157665944836612596185091522188478537496449091095185990750149028499395775643519780973958397940351326202489403916664244872851068464873637336719718935031293921061859078226849529204975511070368325414535772409126227211713027985240859235003937591174373320322359120059385656145508289232372192053755708126713266881966214966883724055867944530385653973491668358652158817245792696776514127413037215268387030296967308101981461182576757834247463446180132860642522632492777296025521366306064927997294721660617003677356597691052944488024350606208719043520929852846774817217036014517116156087910044729343864637664407811300044942644202564851607287934424756857212384099746702734543083569649244555363593413441197501089980473441826642233704283197256992283409262590841071809287698096434271989575482263626351208288034023963545058911468859208990374743212627328860144720986955496648976326160098909998045203386947966101119294552351999527446941147463392228294610793960014504742650392419152397062016009732554933187370181510334062438022709480205821360688975026642561132789495962901147567262173885376486445230834268791476997089902708898585222701187577784456096382458613710293796041686806286065969987372409848822542747910618214237262247485358991221572512315653466590259422362055314539420080848309219858686213500115039065795234218286879448705498589650996028506887039969090500547834584576936415242346919135006683690878520904326316600722718644059498219289576723011267501421327854451267871829733621185433200556493929582610411192346168984351172354902664358861581347445725961747294108732577621651949781993533702931691502207012053293595347251149999162202056095856387017251701624833680951474387789780042163743277740332464283523108577078453209552059414260257990138331241752805357955743009727025170161468538899906078268777357384787878391794018789414142626604197762558389089860554214264899710462626360393518517388834457410642979252336786813661745091259968229411495715167059661063612020319731593870090068285665150337567468910458489030436594737001091743003946301113088142891906165097104137953417988901673628536590589912692408187811475981372349937274824795408401743159830066612608882744122626215677423605436591552309420620304125476928367719248799612237895570408358391915488347093422011284840182112485614755050575333965085927630316123369033146973132383055801397392805438213619736018576709069030308759904021344597199394550150117152214189551880037687807255293203816226165641757115602709033491862563734846284083511155544234920085661112063701690738232584674037368940202232023394092364358324960972762614681582901020258173980322953607590435406518194648878817953062325963491137345481102278852630912082938726808152133897512804263107487546643830374119866004652925115840061595809112339188200429011366963577739081403648767161161645656244530321803222216858611655104021380526733299086230123008544724168130367489744555429371470875196320348843317628331881872586642316996306140987531438410044156131527355749723415160789474141833214022748462133824866854358309298031331152321465174174985515536465431136327774682591192501692160895318879970349364098883350790271750268652007817426140582915971862107893206812874312983446664859034796190307425259987018244045177391119336741438863332293085338337982244104738704104250083903974009290156206668890588702543416643490826901568780134312062580491086683181555228462722645092779881297648857421200605685387610512624021929487321811885045321673874499661291889033285431203818240284353311274985862505070894809749292209464229325794867293916907132548562172493682885768624353590715145417653243790015483819709727532228562599935029526676780917417085351565336872319988536114769646915051027977673767432978742418600654354500181975287560022609585399579008172663766544304835298288368803128785308533205216522100573452269081691551545314316632134200073625500486105521586469959639643113485409375680627088986952745161948508985733784593293258522525226178744262994904212120159292043324007420678749132469639627052675886306127523600294466686322310803532401109294378259680362481932220120139614414571303817289376102963958554494127458784187958426707024950631460442319948722423041491178336584663253639790991050996282354711331345970087280749044988071125938508533804051029628886244449979325493832007028465209155462618939043498468225113751344051377878339262338106315046420382364768008295525529469073546109477340085068819348242014303309280649796576274851038321400899830548111878523595864863922002360343832522380609348225173352041645444855037567598804625750982760996766761609971700041106431933165448755726593201345376464785563076276597304107196054227333494781916584103531523792115794350747891471400107855677546264856626702761983551378274856906941232888159525921710170839280681397031487497882249659102984584018266338476189028487993043828835010347924849391478704627282657612265122903317655107630603454753705751402250691159168110448632779735060093902927267142488785612983692121297974493303335506647580638171439020698199897103902365047437698722211621294141506944457915230585721534293685145729690353999094790998615499101052658102019813548082165762402147622000719334523034722688291632767239542663193379995631054426201064457471975446532668775336960309661712647616076716464819550991399844789816388440369376989023114444455383304568552347289594560526092733891019821473017751987086711946538952280260371562124771259583834582386285654593884650645019332922870800700352454639529108354577352762397716215043697529647710744370437063316374016711051666991186120071810439511147757677679416515878785400631859982649664819289968966539070676063202663604064085180191950788106148172609769698389896462183503591860733538777977077772125308248502389291807097606045436208635958871160140321754859780563648087468097781645041374783349338177103308044987278526368988677922323930551674814965145028825295622701796849725435800401274837111659292512933563884991017148707538702960502054855818031502166117426139198127309269231346568119628290424073874898673432811827072567384375067781207417726781971560519741146494038315873052103411526535204058424341932743518093187688305580370274196116086603426064707303441118364507956923793921598291074121108861902080613329849519951965358028166988814145928370541235605464866123691504525215061544789749226333588745672842805304755773161839914063009900601309302747553521477755740049156227503890505697789164506249168058695735526666480294355427656371571668073546462166430624102612791513559278124238753451391810712711472427896786124282681609508481869942424690760936876116576414331806062202937023530704933029824816687977420060279065152367718155434760399590546361863439864434864752210156352890363236948720566719991072740543451609048327218107491781145157198667309743586142235276905455037850896491748313218002701131430435313159215598484315999795947056125732327147996524234762543871044835873883834360975154129361922712141344034855701559432607320242015247286383280154616874960820864233649950653207918051941542260822724986421376874078952425776206189378907047966573136350474448943061076125660600634740797643002741760889419856302966889081056045898494492225139220831087529251426268897311362632367255322711686178847127144620865280955712832353589669330504738686352623682642704545302210663470311642907705300943672223468015282384330469875209392074179199735178657077592326100495210797106578910755644770977473959571104902133643191795951180826565513047536109939734439925874896931160416384579634252665500705157232012161796615070243035981246837881857680806338645747772077365874866055604496043372759612189840557622218078157057644363165985748027888433591009928557791332545504061368831383315479580858783491872845823761815630017599063776938116868010846551381650036019074111301468770601700364566854363604468573778746101824618284227258588844295105589703473949541207725174107598337692684785643041944562688083644913667790989234512845456297224304991521443484075095786593785645622095265441868308993815977294889346646062842790732523116456250650845781892024039447993596977234604303828715892228470405343390181138704154459274310264411948615201328742864028845334142327139919901794107062327063232583370115898363980543252737073530640865640001757114519523631382017459183616171945836285174170353447137841952079442579713644198371553132363776432052669272857177748423148854686197415387630428456913416472577132063342390434990744143370430551279877047810210120620951708669758366560326701614233588673062343601303866050487019487324046107242447057365015199276777520807058204004896068154136005307876511493991267461677558193705790640203191118982441530868295283218468511707969941820312905061628847305368255701147697647492182394814849697213627780427405958663995534348051930004600451478968023107040707721835887039081268172493770690964291577631234413031441229976279571302097764029543167757896452090670076749644419315136284483048129841095847074847958939554929955279728129484755110575881681446688012168155519128237048799847199907087287754331625178835584696307363334987397752320046796707709224349307109377789002961470561559663388608915421828492076589522662088788218236442785644154119494212558235782601576847629054661761882031019066173502793152492674727327013249291551606576620254993199918423541256624738443433225543690504471468394523628077319085831722666528702275565435251580047325640772880321080480411953090538273816844712041702454551754818387498410863739593473993008685334493467805347664122235893767581880351805526583557921389896470603952310175895219602791132277483062760044882909605566327280866873313866141645039921370562194486734745949997419112745868603971644491440691450851105041410985105494096212566982864459829496285329975722018941440684097258906614510895184022439001340281423314129676327990993296413698805005422368629653401172350426116433849475550363471514348291864722888368710447913154617161294785309427170472081854950962290665481546634152117001006364899068503659926491665369180496021084765990713265656034370984143771519144668677357051380980312291338604879490982586303988183194920774189496437977544600966512607746793971619316469657153054844818152955620235797329010665259287756306619247971828154917190238635452995760959011299295162929310543685594223232780824532154763782888941352355235581974489688015504482719021718365809953886589557349710506616415414625294609051687090385515363954044973458586592692671612459395978083764150222819785769041303929509370554157824740700521992937083569871305256586304434677111087467943970929868009466020285182619112999506727881781202916778347606332997372140578323642000594268456422533309489899047883717940927988173297962562230579289499115975955806071157606527416144062096746065003982482098210214632596138080953678776091660680879901010339784442125791734259534950543615478101211011297725358672364442647154620098684331608718458150368181148895723715326201842248181799741855460138053081273966519067889710667783674160102316463897433674673414292077498886938000193614887050459473557395037294838052393336025403787805397292163667260852867956306531218001714650111239247488664361293233242087853648193471017341403845758079536249434668782617219809261975986634676793974311447415786753543883711382505718835349267558262546878105011727294990347148164874626301831297513156744759355780598199305895765095370251305157952409654158501569457114304700080196698620805360714587371487651474169684664699177028510900829878167003373130750253013805370191280161231605795394277406809662881843559417338167296930598766922937312150951123234400348633999087188533041923918546227236507700716175272571105529666322616092141323895245022361620908727341507697038784320317240861678640288810267122820644199906784346582828787696229770029631668266083598398112483418964391708311739107165422008419951548329357148455098003106350621416661640581872797521771015640515348311922973811695876935802513678455091118497261092071301396746551281314092888853282083354486517517880871500443471867051195663204185149842885766123558954023433476732996201004838817640721840610956616773815642675195187139613757969590163879369332499861410541779656593806210799575070024495084942711134497827849756033686190791144326469921375539453082656607406003151479102845140620987698526600410820920036071285199706550274087364997943099572147945355799289451535697064691159325835378897245630858444964237237291449428643978855799034934150443174706296954925052159009469778062186044716648794757206059939098507319080630643463041860537200509584108844216981251785755302719021873986503388581897447814444559211709823084128341214448567936441076512591867030792141015450725652413723212929537142484044444908057730738368885269882826159060316737446980518732297181862099144840502295078062958913767468791671376759349176901530443814011115957182850079696164035225982362495771003882389577418907958711899649609615420260009749557872935762305970865942376053666791472954788816232168808214799820517891757966170716269442543579547497206243051611412375333047845519170315347582533638589486306567377315973006590864908630903301315516121030142019281710565877235162898565804490868274301318534447875431308683341700395565450190188402352835502555226682318531468510158147806423809514198763638413256351617664953568713010264455055760714322978082804841492199688194372522160334666059604791293490552930379288006973580712089210355112966515015879515000911766856751300075263031051745266017578164296414309481315719879927919001700706006970136912119330909440011746604060213598666310959824090030211622944500816570029839405922017177752783546571185337994908586817939394881472690500526507098531054695878952324850462327322060255904694990232345211320372742117438289499100084214468686253885707796922758695948995801915189748650157089437962786375222120562196410584929917700911869023438846691831682063566301478775957686427319323618685387078795777308475903756968695509638324478720056020442955020552557873373526055620076776394707991009226384042404098787401244738549794916688958004640214655770652384333696930872287011304540589635375367088605626988025611303371026615310073925047128085324556104357593117893795931884123598768301382376271039229796190464732295173362237304823317294607173395952281613279665939267637736117520632773730335497030463130196820944373387526115932884339928774371685393531229137994695497566105644029061348804112492597341033811169063829587358680481017940511274986991320718531696441137846039774479511351251134102851437491866262036412558672451013784585970251949440416083291414871649080700350255463030855202251780380418847414013653373723328590331280188180308711736125182585675693242596020979262998247372587601551663704797400457207659455632398966649610362599276168988661348366347846511743192186479715998064510111012399485185775519392118275905395729964583725940001866831574871538535152975141281466788663743651619219446110167304291793459993267148164390535966906399428634690675893142650445998244183247598706283019460095889524034087733940264117378792637352107495183662102297021343329775637889129357760172015721983620198895939415882944502355610169384211962142386009299057773393358667285131216128102067972040924986323310724327566054295194467962084651701670669187691301473846661856728245345782717274570908561113624413239609178316399862135960911198901840214921000422717485324013044143726502058896366314602087436035225260642216606177105848347348251409096943941686360006483994492112416756465981155982958779519238070609309129769037025330499090393073180365074901163095733621701992207096016130021136510316852175654700286885353524082315106431548775709247437397864032053413878765864037979625729898830624883687494246477383929884575981447311093318491847308629953497788185167584089395822020527802621419074174133018306924419494100279611051192509270420559324407124977487295019155542668801962848005267104758958418337926919024705119565406451692209679874663020050277115456474391692375947163887660642511816390237894239216922366396083188531089989724432338903646523138097794609220160735468692726298913547998291041236624589306149612957347608566579265192851936104106880742806084912104458568762067701995339047430152971844081160138292292107275704355781512653001357737019733632512285544832752293031641107209409122790507134676234325821741037746171033918642948239503519643100920336462468052696892461573862068678959512157783953084635426852875544955906419435709097280109967083271440736042899269656207139623486194413984224053418607946190198694468954224382404463118218465219037614497742105656192205459983832714896515585774211755922873054842964053756180201367763448510006518663577073540185819847379644340831250907782391747324977008138288884619968631633242291281253597030269862161646005414273427989218181369157374450124360486550425952533277129662200333467515261649419750341293911658054870307783804082912732399557670257951756944703825604599313761371700327269306350984853810548115661176216192266044158941156719921063316641156935369370820357130666713788895549788358598298179209757722509427202460183535919488524679868280290396063145025290589743402071643372703367301794260468793498676607279786008858786635434944926729460853774225967774601910643455668274067128470059266546417491072962132997904682231181344247289067938811590213083140386809139719466521968078380685216616277060399282535984098797115490402398878026205506362342243059877139729073654284124071599353555628148198018336711610358528735341315968369004396789141587610939407267282174462473391397941030221664182744027961353851825332068977724061883300629191068847604266246644458280244587813245870542656992217014393032288005658094279563512142447217896373688026309077591534194496942283090246044564251631155883099329297046514955803190868377969631625648128247296941803974833837342098748122862411320232167522001918420874755753440252123448686973761929028311646495934052325022325867408770089510311578625538030891240774616590997154000561988540692183028311056836640315966964131251112434345620106526924153498870640716246372038670849416399873795953019925121073850282312893934160570374528462337766303564222498596271650653735935641682186003577884639460782020224700288075082514086741409886835892792450861487344121772433218179383641424712684215419984840014122150128184434184278046566863017124336615051896797593185505696831526615559615712601646302005182148101799055206655193853846342517242248046106954542808194554804283613444491595801642542343169644230670179546648671628816312578966802126506658826806125700452288316834625327515663304247158025941203345288786937279839116568258821352690189028428172669272241678755061488060711491649635051182828173830615795791039740174889651935606197545115285382125821094268076515338400713149952505671541432214167494827922232678400323117910688107483634130480027068047866030287579388637708036762518622084897285392843365018005192963851506440231496990206297728764092942877832134899605866076761704724738178437001991460118894923085768704770201271167757681462753673512915351290329408426986895174061313293906052237391858603675854921607134053621311308516900232872144943977733622054983136849857792457582970152020426530732068084437633068010474353412023126213212112849181016427444324729812378511821623784960862355140132340703631926055342117667621130726664982727493046697621851715321669319332071835560588201065105313361395377620406039524601131243987183945864089979982325645302375871428145494161077011595121958621930103213945055641443961571833339722134962550569189078316230467316064254693301670944192176841196855691675418675733821017126618132841098348219206465677389907285812306674093407518941447871774845214846379755155074185439525437177991056162897689873570916007082929879583251006370384375742446583619046477317331751501290268632611499418862046204811373386620211874044806225123485993010966509769370666343165601217326302232012303640562737206417998920957594091715560284298657959433756165800529108757426373769608297384401477237638240107461463209989202921830699102527254244447479329616869621837468573531352030761161485750066858849722304953844987533858831029695850640336576416019876872155833176458068122679503730269113675852825112454684445340038144082910905288961520828502818992835780574050383655561088621138972382431623989959914830799976892734601953158843876711786847623774319114826568125552526436298466149927759842072655006042492868637545872477274551131434956076440039792843729808190586417499682799926455918688704920547271979803700346529435483241910736513451339933577794525768739429857238740861155705592566304168148700501657555453097586541992235039392468933188059539696139678789375767875673912785344552245139249570988515604303806334874619938620812121220021922663312373780418521703675051606427774755422352884615436628741348499887622684887986305104722054295844096349576242889420945264447758764903025143694294856164451211099456592863103444059080790749657991827180509842959781688449184153399499627106319224601177622909245387295153031689318201690025771689313607973922214247510092867095693107002973165646396358709262090737450906566382378223415821427044221376955768826104980648095700822780365888121513270345338060899945439915339637346776055488976305671919745882558971811079463775275879998208343020322613486669391485339291192627561011239376967762117801225962717036948757457982153913114599918643038003341774554611383180018947215012300523172502279405660897101991250435963192998186175401858833264321457906658839845518934320415064602570046607636491213219516098859323731182189061166816907035592199199269564011552542880370214054154971208116396703494662605323623150593395477609767584241032458460685155861551125541761270740484161656513426933408605130077914630572466462029411720949788280322370075883643417047834899971871030728723302954148110195114720960203117252289608454490031775093834791116105301097008509961922288140762342695115056919942461626950032891405009399512583972604279509755485605822137843994972384602494408155160996660014359440207415927057997046986270362777146069037201292084068551524969443050315931972177231478978202858586553572662429705707771401887361929596835007849477624524307287501245797223171493088127088076800702676339214823081866973172175342275649474709850604742314651902238939129161288568082943415184982195721161262121638066472219851728069523683653009385095609531881127863575564889490845916465582857841663820094084762063571090778303575670508706704066661111187581405993636448821811716179658747236740323394471181085345634300840806419283426194603375022494238229431626088651431187673261733193941049443289846631319998939139689277499269468745876251008752547835428833441293557921637941461832221231263100155222394979974586076793916380832078253179444184524607457295631351797279885972361984214118852322238779783853110822011931519107475357043655310125668196553019266881180952446385025186781877815744355564175125468378035789808538764466237515954513486572553998139318869057850991795411516175735722988027914318731102928684321002070499339269994232888599023746776903596440150482215976295172151174144659539136627109677819109765886148971619348605124327149900223581062846386336100138172843078881413582377761532670536044947214918306655521628636304850905177046490878152742320449874564969173019373199286587999056755508495133951160488486537965042388927531125681511648406172271431804028076887523806832017523608062973162998718473260846633863998717268933681597594095621461455776259887063733667403010087901974065562171212935842284113926957943505187245985628891689652200469735619083382589108181253459387980346664265807515594632177036000305403732382437299594860732042445645465121883866201685959327655298688711068990388442365725715018320747620705109799102583984864900751394308914374640275532517892188054550507048326960314650776134055514483445834459918503458009927666615638452316494885307874805610992398580215929368554144575416578427855857323471104576886212451352771995240503142805902752674373845209488816358859789321447800727139151904385424870671254148602174535565146009460525636709700992634362624884093400411198311698907407496440807804100357226804253476428704410944263289272781525164753694485633926716252001237190537418036433834965048143618799662930176724155753960567399660563298885523769651145353153228816877236672497462609471104932129525999423391599030024269908373450080084939881977287787519622079670829879089543750101679990090190635262380390066345096703282539601120852098696880495016612543384611793008208939543917812695454227587868259236728170721630276280579759844307780931679557424284352850184249207194677383688411247414204900116999510768823171603362389512174971744739748724619094862165816739693674456425911741494564234978150748749221557249117518681921738458451843967261473321246584336146967536980611525397587681096792406208426309275084200987876860886226772338227519211857004093819959640199977059442110513302521847113794444228983936076299058739572193216479294080888073275540218439578118463246367193928844392141024520822883655167478093736542609014488291090255738000164226580408304837912176150957282094622655922482889919655552477416092965598800849468595387551572592978248434556134055397932905214913770355144984446624956392075279824643912462055425737373834986745133690698827248763763652756205258321587482624891441869583750413291870838965007522157155055787022563148683728280276321153627764008946578202253468587491611552730125874502104393631623513581280081678712497913423007614060293042016102096090585031509904652629392653267761613216232160495685675024204074250712667652747185972715748210981213434203696041200693076405239496874418313157657628862956942430107627660355275941133023186431954812046922907904383249410761216958759201796575930368095582440236119630158356921415335168073163487592184273607673443783472725788079417250933618106952914092023015158939572122466999108679948090933645968615323259771782302811809122421703076666552715725456698549669049200574576618174088184290726914171034040001762101644957010130604566125379145384088674012629654058770665795340856115829389494250429396638498560381804277673463883453493275079532728463170822525406397549649978683542007663472442928598064217524037040259497460414656362246802492761594104357169293457968064226854853419962269175336735914926998442522798059494539862824123972471248929827948278780858743558637987894907116553074318615054986376506476068845771356730967326720365465100165073584146491969320816902265681564664826875445870398137514867639875338565415020574681079375542722404452227056632362031124983609264632870566939894890479676920366413437132605474789343609499462192615715102450652502899990059582683568596021058711625142428177378128642190556566899037469401752429586035260433569226496969658932363033067029615883940950995395739520976118719771577698167419640367471535344955425728787638181083354050901671674481093209024804493668686960812145361367861549704170226018626758627852441968854873270745312659578019748895107155534980018058890590655718508875556535534807088175034400036653032559767894859235232938633185975884978898540159503844332506313733231831117572978794889447508689835727657403736277796882169322805512186024322634140618086718588051063664232358513943455090572008601745133132378047866938558860965732096675542671786829294736091063251718000082783186405792881937909691635579198245721474780930701576506421095280631941481935390494757461790500264412278059461255702489280218809778215563734631511337995323915459737254888603287630253790818637558641624445308779907039125754880325519085814629655473244597512824599186262607683489529272169459345922397417410134433424177377193951229147565087484974618852468666965463349711293945358106830792688463754550583388468604564253896780323706082182250722059677697618586073430782943048164768358087125703134454007725706411047289619937676391947706416083642910694529678202073107968119006581084983749340165965503208340291889192255353191132760234917842992993993809610748737281192859765336971843688413914173951907863847520836371074997584461205805901265940268708750290469015988574931501094801649643376997139119793895939770007330823782619953225582113217865488455835770253252117521964961864879519898995223607027760442908527513975394597775299134881940410701860759304084138327261272040777986886067596483457677868243253647929262748748088649864621510241142902982903649924067518383936622290799300420543049399073714709279612237904835471489834516906599698881502001004748467697981594183705434850826846742138062400012651881923430017826925823100052863122923212099266065897429159419566886064217134094221829678585203891626137888275874333640738556108678602029327652830887676161470124478425273989381646862328284436364564975468226907212385570951125665305800214808810920002278933702252409336382943068063424196152596541412858795875406886954900118540180394162608735362934937694949062945507351763565884681160309980286149596940382120083512445158544799365715342763186793413176649633651355944095486048865733240185590220190234933639751934596910516337236943886928371758753429601358960443976306582660737204523896329555484956585684969992948811374162659703291812053343481432965418488863446025921192920549824369609155664933313216937072930009684037921540981145810727045838397828207120031565933029304631287140818396746723816046982371936089903608168921247087037099521626799137252976961007410374441577508126562089810055615195990979554077049357743820589294280635814925957231443906303140511718518933594690309904354785244434204702291521683450342185801360104314067271908670976119939955792786067453995982206359283293463399880596739661794971011383204535451283274389503364419533555252427724029723981413836763085277967793968505128373675667304419038804158804446924045875164319426643481077642091692873618072310406253134780743947583261054134671175208705858087830746213978506489697496132134272597280503595538630680060905301064131618716532938069104446796755539108652307962784561891323823901672065321204479567825206701384811679294171410162871944312788245036217732247829917721854041251626903653993846354602689853821527374053953842683140417331435293960905590846496015458340062030993755618319419445690445899758074947262495600049992396160817108099362547579230892754453509610840250518368595187551338996194933289153922665279594724112522359773325464515448699914640007870838662040282662770172538233865079085161556271779362974907073985788289558826448042837658458456331921342440385494767300137393771016545168898918092588845460485620273569632474637058512348657369425486449871919402872563183732956587679603076211054212406550133071898366303349986061939257412038582661299689565423559376317684140554001803879555118120933469823916417995785043815604483542545720203636002309399945723288851375928739906153079391351036726077158177462948267099305812536043584502149546136692835851845455689393205621316319353874400225669421750820806555340139791852091939008429861176470474082988574614044726317480003642724140526572594143384205958007459969015097492310669067858413079144291564797810540429305447872859315675957712965659812904029846889555369076079362106157637400889366883530406210432005909756876133019542840846597007700748972189456598839287881937896275603832501732747656262322754247251939090983852500216112011742171152096285578499057019989775000808660984534683732256110811269161879675033337915544813832258101796454017821254759458669155297095856064204226536357850415434997380904830050073079057425972621036171873166140791159064443254065445564537180038820161243828641498456120624481308154130713356614292676517318441597188662097041956341756792994199216614607676600971026522345343828999806354141117927539862016525270895155770832383610811171792288894901373630556021501627490634850259835919682843911955504916364722829608010505794468845224358535958231730759237409997501112424034212971317531267082558546191537449561134141762868414390117519729345823489596845622092778196012810095582699753686350822141943754045608877800394904328199317734518764441506482877989357327575266095669497669581620100890345681128773263680514327440821106565062741489937401800707296451302706530482038532931614741817465041812670086126820291315802837730964688828808483851346477679983694132750305448512442660646203534243280794548055276794125953624577108119422216015464015471121526831364481436047802402013666509804551150060884887636438953763541998527197872408337594619701963361276552896097493978121898441402014147846692672624583162500435552894803712727553418984426548302554674145800131327307976870337738754673223259022533929263126281516393596549114204745738412488840553981371881630167855909221520790105466854933133923414552034636258420294321950385873982542162306005698780209735470594491597665018877586288681312748519450119313824594221943610504856705283972034951583060748332068131945876022278522201527039989436535796200304030956278055487119104193556124675946693656672547960635379734023107025234101026953182566313173943571632223380560763701715303428404916494929198912925115876435924001428557577697710527664093971546594915493135774176552405499218420718383988218562764720926340391708343299879258729584912109876960971060727876534615820770455152686628315679432649946437935237598330870183175916326863044828117941380188474814578886642075436401845644213358034783505109624915134644939096216973244673927025278484409473976238475149051219771345885271469346354214527110768495132129113970080369177116280322238611661971885634820784695858001876787146049436369356172881674360821071108439536114376533670428033388420626736593059292580413103376509235309343927043458357575681609962311576902065545847980192812606540081128831341896621352948692968935932667794635159181252911975862291291536163377835094961966682754257018709593401282167521018133709591867151046427111722383384166931499523146953080165934578833575980253155671059834654624141852218840924489965804490841031012306109000400042766913891340386357667450656797509908280687921716940108442163194482187284041742225295131948946810718070743623446834703986418356653974855245429890283505347061489514230213337602654309987207109147741393807956645166111553499749519462332211843779585349115531216890849963601583131150980022108076193343553972171255838021097594679406489037556035446960342726436489931159362595803562903717976665970571259979314498595330987773184055113942417011992294445442712154756357378855954015171178292226419927246513464747858339645982686013057304365088936732663324712538992769248596034897669488765792820769859907809790538402511337115297931314093711626750049162397381319894356709190774823297687594428380990831517246979400312584547517458949567003584524969603552685622932580986273271203809996203871025357377839692555362636369332546591631921362827746526849583035277711523785228781670037254208875567741034638871700899177924171518889625823371993162551714534631301792025158269980294397890088431917365192967274622483914192073251346904465052209285818123953094687928819577282119240511882263186291071912239181504132125418978868305981155488273223955496357867159794023239023171000110363615918519621811456507376817358070501710042111352382754526980429263289281102531130629554042333361237810508085500530885523049300749791726387439486350059837689914716467414027871424212432655236080472201232924625868954219125018117083077502827526839358538755136040503813916679987664256152333850335725740238014485426763191143393552471153308542341965274565167404296551700121108589980561257077355490907555883331271302828831515123603884566325184295514292474948114319149281259103576167738819162089530414421321158790822777430624313386965437321570466219586215640659241251967757827341983847409384630957546772667948696639323499216461980339378064872176486387701589336477499253544628200451599665970652070182485317690625675579611816967395633479010864590125165762051308342981965665612053483327680921586499490594780984541176681285464220105128052697970766109798985270580107256624063291997403294672244956699608574024953323098288462403657706218965898334745394411436259581128367766422529889229414521167294736583191588978087179354662018944131874809994357628341338518391915476851518748683781220046717634742106437903817699343138300255056329376934598864952213381002346465722611313186708928002853914987874475534416276302788390073422855497915593922771891587676457094537779774307857007725268054762342331445090986562060500424510331918842557852801125052196933604307396101284151197374128065660163657141514191734364557245683906118889085124369840029216898135504248244387931837426413819834086234028955107444690429415820440593208629245538771771559940810905453020759530589889513211514029229860817027953838951664729093297029166124513130723364609449123794092825646147563081853032482693113579975360476991270796882104847124141613931523485822747179894761668287269468151308315192719299731191332364082015576454798820674344844967293849050823191503422918776212335164010023908249175755206308569499171640334838112311684589456307378655643899021413939201878634645629303861842322830681312840306973142782496903709912329201061307817974831322211839103015091577497345417196072369077646745288619642457716070262923468713209475117859986952137229290677490307142754758363791036863753767027865662401228639515393739442626141930871330843213141956287864711364422908739175359307163948885479033262465368058001375789175335733186655740384157156147771757112218258322691582233250661764937469111189661525805086467001345859414799825974428827273885703235586695848951727402946741010447101109450524028902891319474294826146590293852437506682969232210936736783116034867837308202624366100231496877597296246623903301578249175246721674883309710610791601970975502735322997452144417163859467996892618655847909815113651895833574105351858985424563514725652688146636209200008343719473284686300988822042035479349195906310970248763037026384288584593172677852197034693187302067684097917935538259037413743383981574353766570207026031867037292075439224222009042508548455173675191520996754668219018791090994838805578562274534273781137647580911099358347405624906955358369780788443177209411891179414828562846154243671488576073828883924211722609365758409525867713452546846779536416718735130813119340070416667278780683809987371847900993127234321788158875143000007691351693140813153353971072780169658237072329816934931591845036267064734653568422655096237659354524650692509086335419104089630869574383913905568027856876813583878640801149249837180946386524982486053689026182235555239488189106310442940224027881643155614724052936028350468449052590763253754310745576430969149666583315571818679309152895210188767601463934990698592593041479542183274892581398661239198612520280309502041424076145863734283419355245123432034398684383489178112505192702010764925626897062380897501803205889348243908590181304498000577486549021592907892498025676737167341789619990869084876100794907979617899813320493895765568258319815446799165082178227126928570379856314749249582951067447218485199973420316229796808299075470021353958445277624875906445113570070802690061659777551233687773983325868493806538412027953547611349725127875386856165802048267862901760864079105793733073508179861775454792431977106151373686548810518314478383362880361443845554203518934156923483704607678844755317814362949417887069025211450448633746830464612527920305398438983593417034592092167636557313963265155217030952691534988007415698998862773330607590763721990751773901408466831283183919286162451397471427849128619163665720989283211588451215106010508415125188694364238363792388487686830028662288591370856468819912233235701661821568207744668412850892028475710071984695890488562320556733010537973403943328107706901706571920647547145398531281982136237863644154023945136480393233956062458535325387049866159389636803661602330308750563170920735630427966358172366011043292163651171649241973446833618110510053202073564297530752618457104545018834988265333150781533661027589705641773161818921306933331508331153268246417141963349584045831252148201338621171650787063401208778917023087407566581917615944909843051023492391163514414081971929948770293747825761743352738088544767284171294743391917905762806562173039281815229569961549483381232872171155824282799332335555027009492307513034710276926637913635989944338822611853948351377448134733378597297049510784224341190651239613998599663240121407792759453100847693913324989389201491325656359746892485151314134157745458426417519948968737903872697124331735371911683047058823460963289937232306319611911675146895490482072226798474458936569630232133397400495836520118719932182730567024264362816133526574525369558021323425988569262719727583890811064881026956076269732322263957301771321471202520135725281597431942783385781746919153530677271852165684387199739048539858068553871889161567278739500002682636125044282854660082946279461003169769727337593837937236653475555366102269612319736046797469744483807445269679579704092532023718044919940282960339237107088806420093034989969363825377841446163943964128426469251442932511666492207840871016830505214682409269880299984406740657521509931614996207909364787795165606001760371348620348424214865750065101583079555155300628528022784872832270756229681149381789910859035257984798489705551345805834567247107455837911187735807499070065711303739760638023968756457161969682122074212110935814003808912235882085842533299216566667838271150317661875980818745834969222340100424481645542652616274311676247366999224480365922621668546796047143115461035482828762131345747594076846334991312520429860625806976142379783239118651480530543800355099184712364006602406561586193676528618322426586630455390498118996943274036524450448251936888131903879421948699791486764693119685048698067683902284325298242983378388219495960659487233962132721513732506816110207032856230116847350711669295918432463216420629477340822699465487656224279438862528206404149545237232607528010665186038411065967149034324977840231140478755557434115441716237323688586534517952121419040936844487860577917803933614470114563281088299615310554974676249746245418586259264748806278794248072301361703003342561825107474699936203999701464912222668555895411478219997279624520823052543553757701354737086567959059289136702717068625702135106289033954591786582607426096551024197829662885772121419737671833538238301869886977121086631229723382296522733438499806884549655550623559976544914473515254267402609484846064723643937859908238452120012912576455082074327747923592367149846912638631951522623719851814334939168614113745950428988612414655437770059591298717974211562321558541142858734892312057890870262826633921852216685153751724279783781164009135149288451165574662251971764421594215023012007543234847984915480286816559270728826743942034463291999109210772559499821559435571629462182863222813555314480848944732970592539963169927428960011857484545516663221653360230858698732166363406608987547673782273158497703729785880573200384119003689207789230556950358150751917940041271648624907234515864816609292915066883582966733735758536259446909068320456347139325030815756988592954675746571050022727721361712449682464468599111684320749869276082944824456576015394632327091206463409025372829621376186130285864228489187936478961544424700726660678326563958325798124999417623892838152252742164796182680959596920295679315379415533110042699388227595609835476660276012354048171819306662997306619262103182663815095395871398436185823990136711952439563921534229089586547428387126227745163102954237048621980400581712678917389851966628074047329693801667512030910602905218842879715612607230762562513738632086747805034157651280661826408431896651532448922408158211329391018498950671692112272810943868611697444099931419247985245134718765893458164753853233390634033425079768058098496081922150384617256856353524498198881520791486869203994378986788992376634668660396627003377077247591369098313977974057090321982596672798066969984825437137651632443391908952325591723227716935804107370823501819229831960125533377467513562180782042534302826219968984568815779386164690494212168661731636110476702330193905659296854222876072671801558723313799505438311061404825800270707940165372201427951212334955888222286188714367087297088769094905217020574193848143098502336536725509268989629703207098278392863122496947699419594768066723746251517639205140786099320431580296765595081667064865025029854930290149062514446281639204926133912168924664612839739610543623077750903227643326331839126302329541067935941367841209171573503574203056288347549823426242912923468285562997952937907895985032506898647780218668520170495025268905109164315008133308189006764860827205172247362508815784611460138115050985535359042930942210303010558700751003735016833479968869001435387290141823382119004127556572601894732690769323062187420923505524981681897943426536511381546593583527944075215302688342376985884273776787293761863362934171265097607369103925476413309137051361479899565435130877745709064876218053288235991659194624875147341503212274643802945761624838080998156360803430038067303566389041112129304692822310473243976258629621105837901068280056706422129800926633313954223310862762142817398708028964645669666165792425801831398439103992509149694941979973331958687956447319378195240549289209172419659372258046706554402425740005349924417825354770083293350711250483648313690372277590759503571148958350432091278606140726389356472930427882352412965822193759346617264717366298039840626420860832048929946305197793963802167944194786291594234371966307915872044460922931413828158741910145239603497090613816525367490836834772745919458586389692931997153770831704777580086862881189188519428372450836213954989494555466471056625611457823268137443884096119148253261852558636051837373893309695578610014048226614068117781389224634348961985008064384494983339133087488399909176214385924957894709533264937590369915519959102232484945086646105899158601597043928247533560708070475689317121876677222822628669070023206220216785951302702585034808922083317205998494078490971600766793891555659753060857821242322046271540112395438099188958017933490439494939176046026091223134528337828318111213965153103715259723746987802563305142620606319545760657649927453332019249938663234728691649203703101570528497996743633245071036901266908907775095187167438674081246001120163490124259719405008834155733875723918348452084731182763175935288524599402727088877980724658238846645118089443263475972491317610519853526519852443291248054502578368892780344224477982623980071702727267360563361847743294949521661546094439516845172629160572483217455835626989887474703671876438076312924465585781648055956864456957479572110629412684136662633747476700772060283772824944783297778537820162263779888890238393779690140805253461498556593798005912584481453550500146754447609669743559420394383194543164588550156965024075648433763637283423803552044133322450081129215022864864272732340633839602194172235092726617412066355288689297028252888796034407132868191841631790276814823633449309105320948480898749033785403562165317765778865274587416724953400263679598544726545140877596542243618534756728822776470238016640749269026307550300218986662289120234640798443728593160148858807713580076062494115438942269194476255447308194073233392721399553327967878235817081567022162987328478908372110649680495733547729713940597335134381051550560858876635168245343040289067330673816363806316448350653012512500693045665058234759790000775098458253779183069304029208274146863548814554168197255908754581434416997567248348698917429544289376814578637978086828321916116527628507182276851280357462167443965741746964308896589568592489440581084911665974403265714306732521195460227901042885118288165934334870954542700623244498646109360953435566993469668098411650847327007865623149409814093043444323977963340473294991084645958686570943312618989967861227478539691269402606332530032667407899646774974895564032241808499407419669196924555795142641254669989961931415328979504960881706046580526174795891999424867157797671123313715170829710352822769071575785308197534127381597971189987738275561690710875977667814089069116627369064672571798948277938645583928219543715045896947357545017983948479386034083554068890737985999996951148038470079803737671933989706504093113542485180874604165415111305393310611456438881989566936287142423772684471153095561130742479632525102767399499728911250866621916300580778755773329406734642873737129217931170157526314795830551414707215556123237616402167156364638425861385471354585194326290451278929030615660104071159997434860714501798862194657532870854550901931855328601523649465850533311239391803390994064828977068500842191381953395008243211323733479069996666460055558231062277616505761062713799626171768996774352878922552623388321993477777391189968173005461156528354740874519188655199959741578740656855698930872048339316614291467001506471715061000833239343225963401240078285754610482337692796681334631181281656058506316465029331434363248189458367833055987117774362606565568693714780330239403979555113378658755562129188924811777978897674794772748207768550520254015702532473728906985285806801611784072128293822462396947190832402721724322384657818914954433824125327914443662136303133021248988320738343083769257455857592699905290677594791738362624030567662886696540739480101625848922805032500719090694531677860552320838979677099205925716840046482892115644785840373137620824821920481257826725459003659848116724548241439589927142787654492350365972704158370585256080001646088420105746358718634128014327271017819806597425582511995833182834705265910340677581314130509741294357171766844372557450357522402476381261653135525232433757809525064229408012038412753644858085010766180100413524852563262945020713911775926336234413079887022363374843946184682506557316724550493213293576575828401250911881675169414798444221442163715814151066496477804055332089951719719173486985469589973905756394534741350516336097394180917520545691194569342223908833248834054265717821941904511851197564953503548043536490235329398459455673354630488334662408362123389044503503780631917886715430593476195032492565577508371060355205770686248696999485503684579551741059990908370499872964225189298696134108514736882523766087360293029163782611573738287580365891799057880013318351513923044921128930327317073821427539580401125203536585830591945493156969931319232960618122766244538958693904397169915395086831445863623507712704967154361504830992114893002093036728106285098313843243287927273000932780475503662780575676236114884212005648120973742582500400678775045993775878730801513237971855423344637615439342982618607537984627366907103938006441325294427409084480482760176728626582229258009459277516336260402719303125432304562355753347621350295564506026351112649961838579508882967642975428174745582132628172549644819368687059692357228366234820234767335616613844992563288435216396398665367431808543412730349534693314127244451029689945649457465694175516770048806044942362075008185722940541264718345189063685125577461662569414125372730776743958569219233897651517528037491029940574622666666359940792220895390179122819457982543986529769692702842771057083044665469057878150595710868142577762028856647702802817085215697205939657265766107356760663697257149990603111241682092597459823465930614940832253858604581427635548586151231759896717616639653269762613362801488562615181283932280198156938223206016678284245948344848915697789744693638657112149384638963156660098627465810683618446338765464371494705410144485430896780562345116748214112388783766503727493759234168654656714257567289923287957570291044808618662264421221038318871925944137438318177509958273965451909345137489848071643892369435562216159824236794336051723852257492870019656262095483996980695723946022478587029010275997127467164902349930397177918761798668924012719446527058552713305395916932241717507802467589104146214390423985893929551403174277032191638711744698568530242958847985461136853769165324102375690075810511831272932222700238732855468327309757288736666499720310435698765889002476946068266404933835564910070335361134241220941541084787635078247978684006369744425112542794173982492955277741856517764599005777833926636509910873544697590055793478559349247450844165126764208713899791743566591672188847342537412998242627601743319961833951848560760614286652169559629196778807461042374008942790949305239316786137404529914352872033415703585958070137588310612615853336905458817286301812285068356218482119017832522322591943880309744344842159103265719816451412658791686422171032484078742155645602338260284411877210314769829410276903040390669704104116368822569445897973640060815462757024014340056372533906565966996419690461982974833366397378465848814652254577414775491624936430287683675951933649038516883555151368560830903737355740587756863956768522639166129192028480755218557944973787937614846909322786311007773751715075990998619572903401129458657783340268189406629596289048075182430256893060459880294776077106436823968691625846569905946946141473022616904214651261579736271682862045348490597328752958164378575552450168301723264664233068393044392101381091554237671375579687010330669964184477692664247402266589822369077797348019168408353028886791718365128769882074623836746001394723446472863959386386861711686466346621572366553193621159588300728382584875711001964370384933819244679150059256520677375687059268943368363465707575036776156377184430395607247474271566808497629987875830584382345515688805637881046230682659850503062445041859733216636250561987151745103141249571102600658933145712646932646651168823209862702222343190995267000180966650635235825296502225951627877849222160314819322045649224836086030829588334855750519174976555957157229137054989367394319914149601471150911657142391061627992766698983938065537485724360834147144917793083243836196690666587196347189709309614692176128430842672805898511832058421975159125116213986868961342067420930622593810452883477209595760821765153128355452636987757120382559962428314284278694532191404632466757354619752846710520829763892081599730481953728591169117139394610442324665054002910678413591223783583124316559970920056997261714871676003414648803315679108959935936961018815895760193868924247649649597400856023282710844131575595964514614813276829015967390286412562550421077666646604942161803146246836280805436172841210325634216292255143464215022661161027018648233067963790570046474074733607469763570593329881884416759727691470981302162326490499671837111634191746436198588540561253660183269622396821420711688913651933187832057216078771199212107392777381830758134228255881540570675614440190921976284118543315902273743985833168389658026960998608592773198549374866597984758344950245299225364613795794964841357754079405134470458519141096576300243410976000138986177714698245936102704264369598866586871660196865118301192392078929889210079905327364136977204982348234666642919582000047269875013194001371554801178689389489575688197412108933639872996825888955993757922441317514189100370544507379973588748759416273890159814008317330518119969432694630160495759259146049100654022440068475116390996898989039779047860665234649406526493589621875528179463749930772575914982964218508939626071054941660394000318838949052950333645834616691380221398896020099847874288177019751771929938367394529059707384584436085153496274058636563057215411789361345414658411369686343752386755026915473421145664402253742124656643203014252716688397801956235392591361260630194064276639735010726397524467699071508251129511275521358718226314318140312213874486898330610702965349030543275940878060546154021274449088778138546784865162996312126514759806831174263091223966102479227471539406485503203448423449389656893245299558645275206766414518385206831561657428469439823728363970790255071922641176836569713083667640858329190220912107149641159703611864320563726696201635794726281855014402410073823891826254610667397447368592150113838224565171247854877677945350130883521613642991032619886948267672401691248983614657278550344821642438259105223351467849478390390178658884340212400378086701127134597999574374996128168830691402397187176079746474271306388441618226656743720756427282998445093809395484909779123006202042677453034016340238138377651056078252114257306310045812901254575966447817847751603975314275821553066090501407006720538989431586192160566282628019962852521604755520584900748457415631332032316672047984185017183692664058762159648808783401505323975564393478711658398468938797892733634456572756847829233083504183149543604190655041528250904009177204061458061681073085188999247772852449199184845128449764283969222629036303805996702536767830965134232473513479949691910252608427313662667832556041668324131845526975612861720514843046860109714154133890476676031747671299927455690848870857890501822547632892944145407611680308319927361089268262117288239049922834839410023465404044952007155908647321648591445782362314391513981290072609590129200953273605620291601900554220310814353605645460957657011084700400465005229120763408120726441837890914965250683964828801465985577325987039322402358961234094489050946761510380105274190214637055939252900152167133020741730307012929176019195471890052938498594858335866237074484466189345857261521755551891423732944958063741151402856606871160452924470056475756888381188176630266236122693872153660669822188507591251753654767495800011462274809497768228741916569879087428434977382284207813472192882624707310925266422732166168600979606430255626871546088195314846468972550734085655291768300497158431735293841713887140918558015672616217989332522255959366167004256284090843776918675422146019455481492503374624616574066077244923196756966194152375214727136394713256786396692730346583477887880697139639866991147315865555862954561206962654939988044758393740979744290979814269859858404725851127095305148045224645516416929589294793186541168068259705442843754365654253143184491816115211470545273647668827304702093701609592696895081649927689423910723402770772247175011391556969722807951941474789855620395704430664545103032614217439006950402227142689474899783612271789176375411360961597974911404637990983635414201809349861982603720827800864830698554351147499175162355665970597206768785426454087920366233029978091753371214872786309116288417957045221381555446730154687048551330413075027550882166877360370286414698508775627885410133816930318098763633985448289245525697104451291578478887210725395969292260265876919740659010130913981323432689052986582704815894698287597458322950890033956018416587295599788863840601690405130373799511484807627355099823293049660615691906853352450382550123785261731321724108653156395765809717618292843436816260864394495969756858857546727177411535017492807558604502393712126165227846466148687491135189653352578980995906582264377520088289174286000097965025084610600074423241594077236979383524655268294830056749817252324433091672567681042888182989947973527270728939789523911997163255694861238295652387834228584543872153124119881989284355876443906910645706051747647608494991096071096640190431215200829883134881480102258475944691508076943148816962464541873051437146051411245359961371270726835697630444511930043539256427009763354391923646253430314110752710766554407798446270569911672622476965672919687487496619063075500297875306028695512046151034946650538230017291329158545496278385946969324456731730201356206887951233053961912431055054594179803440690016038894158360388045465676973571724114181750559258471525949650210538505723449399794400493030559037196951346938342712390434745982062496195800896213445122098149174002855826677609555506919492005314097569352504943193454569498060779921443218014746329302705656053875594556343435701137644397614539386198651291984527119929121990807579013492900429529958006071820697587777141060578957139345787814223862051807545710280334776774869718623126090845753586179193027623818580517537776169606325852445436894994473818583959425682762562738739612229188559766453675811026416343232282324550197284610173139053377029036080366678854527440003522228580083866396699346070722391931148001266964986132325003826476471574827398257992716915242167009687955287990019611823910529926982901355769824391333824201032789985835671996086390091225131741469674498792543436636629223407194510783281476684730956621165079216068965347120935799433799088990390747844654716817718350401510264947284929647789175297361670459781075687399281493082412287377302900441076318569290713096814872647816450872264370157700428410873007957264853069304276980509475515914935707332551726597295591037114979934058205233839433199329491981398593103564891804554369279570271147340965587284396750535870040238505840322715807485466806127263919145767647756000575617192233222064832772485540359636868047618681955954220083664818709079558731494042650499594570680445071249883761759060930623478023836369040726189552645954082403616503395054198404954875173465969086892098005027201015279577442909315612806062863363286226682277606943776286421518476777143200256353049817629566439203902837105756417038465557246127757534351375100062297735813668097255635825122337386555764553905480861054845775753123893732114613441362837754630617253130165046546836950631158177928256747441490776650825043554580719358583351796047077864751588186810382508554515587526848490926174722564813281657001409176681573119069042781203795167098831017441786429902884699531627744442999349976281068544625960338348376084852794174535767364325287457034799792035973009259211779186051067319770701984253987801408949291918576552421972173838844113125653501295261285815917073028846925993772096821757269229950914577209602025570920956663338927418388077975124566796722861438098699133370322635863689095604449645166063462612515214182561935350696069129216434248172675062037117327362393329396622145731433106065705215295024838849444518890589720483618584535607050724761347315456991255958053628057178484910671853828008334058037373416863422361137812252866509747865411195082849115550409919870433904649586323695072094386556603024725058044723317967322506679246368513117520864273870030301209320585206918124323554971903662021503865388372929198139737316373933677998423622693853723058791010681336626835144543547875621344329442603813979781740824053826167362720694067977390081037615944369961096729008022239411148635919715468690286426792625602851227267808064943984707527219876802924105924414204903893201933423012608860680112463124943436761499620649269897666945713133712581079638902717880077848285833247771542304345067999359968550722939521310691825425605093077888006312396988095055839701821643709052991197296890488319881758098895055408600869000302656780732204303271680863310752865473500881325977477794141784434625836920333131397762316207430533102339951954445323494287839602881269127787400860995366755960498022749159954051706860248960083344469046469507106839695213957780758845366297763884600205790341280568447656905289801359260233649758506315651670913258873217775889589802004540202008524560961698916157464751178274901604077725296293451597068408538091952230011269187713874779517731644476261147341834698583065434146851610302655971765788552708422148904048061431241727973698105188964939049023049088605997283532622753538936843464857889442990076131679070664976280907868096661163868306907727272627396920894129507513704154258235799436908514367151756249118006082308149890072964424288506597953108572083975429273011424440640469068050604725589269908398025887255396411252844876025057938127652598460527835707592658903829108251255313133514079262616311114502958702971477900265284077560425674150588576934706969882284795038345800588810226328337579038163340153053282319813255622587151609688039102977957613041076783066723367350705592602155143959417886843593456616320083540744701837606036951249838628729489325162260550830305788461553973623641962967719959053511303626216319421619132787887924329320410153749540474181644213885400044689249000231972204758584643931849318652771049297872938320099364567760712299458050841129848940327498528275963016455831916480941431549070594909433221896372321359811348943400903404517416315007641712500231392969083109053766573668493529050237149330517936171040703603253672032143024250405375371080352454447160019881809968772994530762946028437688977464539357323514459314289593291087953409234090665591473546813166324095814626022031684324150438624577357536156608907303265095567205522015457550747487222418134193338022970112776129377642090650812143961724804196811896727085516644697316174922966780082978983530959785064652552723713561896833978105450630454816428939270436617375300965407810784144038992637006195386406177915657893322316045879617694471268459002416421660845901385873707929947038473722862101816383147126765691643169025591125523994678649196759735382220879390883557765131544790810867062511990878703876128399325676344311881841057652540140021099934339601396409462573578848641686115953282840251335257702061086407291406228025260575566912896176804538868708322517833190937835124716199574430841218209336856528898567286866421027255005943989358336941989798325858214202700622377830896217773316154719601126788959471966168048038374123687208056319037877799326294429240323649557227557768176443669770355233647640232662953749764284706466985913243627209854966754392186131051656239465151275060372071749521929675120825036416304436807966831608711110837939610642533043185525192501513283242335967840333452188800219501418710310685030771894452729540201255968332031196749265492831466977085237782950045882710153109110258108271846821597698749892430733618189229878623089974444628908508658074378514613707375764998947457714226697744856830357918651206550511470908295727624617750543606445799784163325440809121207529480627150363457652278645028444501342724487599431893328407968685119195551806353287775470841678888301815019756471310151793789289964848360887738175608528109120646416116910398799356063272182138533057203574370140991340235769172016158843137208266982233312305172967370390480128039659750054597097541167096317870724260364248549226685143893662687231125932652162965488016842375368312908611289762812121454781091902304822156617488402810044352909307938470360558029196036013650508475839814005714702264556278266094835769197111089696835357398572411663504336449802178535256858571252531195845964750783590447646891297809569995684392448071822259603993150366067359338304893907779044395880892155281822882662969948596726016252047767363871453505816301438130617032874467115439911458394082404520905086933624280126084642524169159648626162770726944603587156905005855465264584677489762453856105723791653559938121015380720994068433118529618930101418038053040604535786002322298061167768231526036132072804164111985130933177677726340056934980232890995828855884435282611078600011257692737746946810645914558869029614976091602237712073145921334120577868296469941003207308421953010371673019513115995398332133552812760329837282985923750987328428819775424814974925493372420662126606669128346976992089008882960877018908893676102698447040100936875331008058818661046344138251683818615444534549745061438827886981567370864746847464635719057868219489561384360207177395463139630660535976992006659664746343486340157036378609910929065920011001538062329483838598361900587292499593672832826975517244817694279295601244197459073253561150689224062338814291158721156591511832636580394548370394517254205691788045447990221502812936741971431784044078689606917098797086089454658549948423803750378741039136801683363471245971865531434278221576259764620352247539509435514804922117060755100304941595126562050932807362665779806432839438316647384488190991571563625931948556944648448446316626911177305510819756634937260738455255588748568588149419031133052591966033439528247701787001696046026574002699750028187401989623996928276819903989268959236043830442413640805423639337750730283795478671277335005958219514038466865515157269825856194319100937562329408396037543213042278483944760490539995076596602415958863708961769727707792093158838816974902445085911588337455615056844126972439184184358507207256349678070818918558490127703004680947591613145292061523441490823289878786853183783883615562907159194482129517784394087845424330706628065982398014374405676959816699803875808858555161149473973963717998001245267063242389257214997905115134021702463205548636595782005116779948955180506378015941149435296255668130163934902024407868972398091979013674617505494857585767918031407795625629585945120542322878158352916673931018663820961654579371575929793010387048014600276149049643024984172716579890179999876219039319211095592279718684688869964222166189969842217226907143067621818608422465714382774982913205541426004424019382767713437826387154785760400285512666334558657395593230535976898762099108806558680741952986348791167544802732177861054366594369004352522829796884379446533479562889079864125304797507782261201494061729547412463004396189017753927214682219367435948691848820380669985367797736551765904054700225781617958564717559749083738243607697723396954054534679601819062777256642017311963545906934738895413079427728806482925179320401209829418298761799223210379304779464987225004627350543808396703702067747822051428272137776632025837746810059169613318018064744786042607580685820952371270747561932845511692910389341635958340883756316400948719619642157264096516145403786823567483727488308370204889957025753024640760613789105165831485589410579679700623402958680776888845470806227522059380513138202409316483691002812962734798728701458904769572321704409182696352205962607412336125746865938223068079263240537808144022629106820215879514627071682086137651385356379666142481097241245976939306066005635148265892701961104580539934602501188606701757655241680633158938131275478784936075731337476314727985085040395851045741110662889735688448441067881148520862904218173176816212727439840773530090075166542602130474611794661510824544021204365429409817938360112713347443235998676226249087106068348776276006362915384532603077775718900895482026333256854270029422730330033936440319014890959115394509861441633549264468031577596896234320053314469343630530068147773421676823129648849146778442049627231419348570375186474224482830896418757171133420688729860525096963524905509387522773055703597081011242784296739963557104462732609638941737669149885278786351374075267091291203889589171923205800567610931378179965074531522999543429312055404119865756598459776104445986179009996608858550979773118601643514391711908787427832325636424376756090156411307924951135125486663159794283582534229596839385199390422844547006247030565050378055125044163395409171400650923805130307518518722606098657950316488517628618116375369303359060541298806714237436576205036187760025474935901342758470148786068653243924295570570166374158170390435177160442570515417785474108547530556368073426593977522763635441766816327616145662680004567190422112725068097142113778343251006855300331553093874915809292703872254707580035143105863961663470699056237205172355407048014413904180872650760961792034902096885056559441567418340638099214593267777586172478308958008829031860988300925210458845307344171507252889245873192868476799765178641975167100759430153975414451232211359930098912550203865365778655226497639749491028594271559313691907278435952834123108830509761162543412092817719919526937437973573890103349092577873902785673331944893450371690437434454169907409252919871813173035919393349288355199829824145849368776041323227527517646712892079865399629179165008472183071177985666046206363480331534494928367773613310874456563026083234640110576264167521772353879279924745261017001094958187000149091845987224683486594516536513501408234096213566072439435299651993539819336097854414467279693111186546139167284576489847768977553672121468559619632369407807549713334895322090194426480955640289633332094717835860164753256448668024149301316119251259026494194488604327654331585788260770430273468870937486376352149730738797133718482928342748636007787030687229543202892686854689351651971634828067267893434697441680280393637964683352219273202330328883894807918903648517409254227425111533438506536239926268036349720596276976988628348056834360402818168701661635178236218736340312493036257770860289632573014471589933633491106028166962857439978407881080974455845208567443496170764293156828994189707967218648117082162262429947938757197343870208144414550925112956241147293056993916182760694050479936458890103304020798163859612911325769559523472325439107579017751416245814804588102952253902736780904884330941251633319547640198310256608485095331903490671982081885217002585458789549034635138760872713668063626179752099571115582556764762103098005220354824263894311689675531959776786141655798339325074581215118884343013622603180200084231410131700272124080620247042286601780680088770777537950241093965438027071031933911338922937898442326799503505350912808814230364779420355516405560317854816496688137308888331702870240897139908661474167016112861522606660940322524356049978549803562287993292873424133354127920945007735374962144443287815035773034747341916063952690688496971044631774870727099796830003688175990516084905150887458150854573521316732503391587861478272986871822146790611396447867230782286314792524738134428518668417951059582243287283825902475495243732453719814548915958084048730260192872270635014508698507520084284647499978379458548432147881562524040880520928517735874121763111315192116908698934005284169089892918806372962417439550247646875389392207302110028849581234994206691999389410509382407665733095497185994039298019395696717149988052970471689749787735548996659465014292759979029442764799217773320576114702281237330724877946675163760530915392074829997409004674114222089767116817961501650456184666780476099745527289665066327060377259519256728634528114453279280565405786314149037826783754290740093548967809558353973719565655169668350373619422585049574794747709402950303135261270564798951014541724329502606514026938950230795886692612356389327512830206488359087651787440284689384416176046129653858571957980218057656390163920778032172737250034929682613414808757514058782568815995589570770714249359853705941841745136933374356017176367980253074070075467614170157560956798996271646903199540505936220967654305302034364800471700319636267621089901734841004657211743344639822616817229165919163332633117564515131813563873813719281611475454601480235094668470656478508513334598434649718742694507846195578009659273958721448202666900330170266698180684614331141895460224894647820157838195632347488916747189433961870642647913286122987553739606717419527002988006739201264384944795214197410567492791408102310612736750247948342875485250479153975097254148702331014498230666768768769001229148759621618043378248142583061024453311321735272909451769780302229464594559467630633528169377843328173177566994017559699092759290233831831726544434297856105557495014938367814661154399519720689966601144201689881519052158613767098993472854898210912741287120208947619048660719228908431572549144816314271870915282917483807402666833424334301295016461040110707638072717994592049451021328887607225454054067806758122955033001737025708308838203810021708859066827589139569983604860549731100076017513141862059223107071427176210404639061283542165461733167574914585181989113339653385262282618363311816862364454353606875798108741858430545881914831283964077328915027043428743566149589176848990334694295227233382243010840490314628762512238691622394416040275501144250899065285275105405182766584271117525834321293959601772000234652835299521515926346796920324449139221012369637406643704773129607675699151818623832985024732413404550861438891518658123455563836220197668449166847372060014770647353949878977108677629536343420614253104181492177628608897803816275323574540471651875142601194508008539102559426663747047655609068614802084156117054201587595229439832693212869859534169931884709247198796573907710961305314421007979059917699494051902294587560518969489995367838174118803012299067852383670914056348789135538545711705262823663788553365239055950459082773050167720159708981282957999380113265526113243828286172594836579858523912031887324616035741165763822362798417224305842140935547423630190776056936820923116512684855229408567350778794326790923929350921329417754423066873083755231264409238665238366575687662054996094983854975443204515236449070040977867979654833906750998435583392297696528085217077103638753496192815416118866113229486799052684980723347738266036723613709648170652192911416097673936488696167937226134002979913302992723983699422492237274862573741873858607074401168099944747682683297136580884492388382938295369830269180483738224857786210472039729565892681751484118042669067843795418756943983338482555095525877390412000625152523951925410092424041503413105285071283748003236934959482430425188917772639213307174179921364045991877296369147116755641126028472567632821168607173420397336807918875798530047196293917941635026815831138274463161969101151903944608743236385886888881213942669536340776793204007616962550951796120344398430845448671241717672077088815109757941702799864646775483844605733266844380966502308743230004692401087426269169339528722590697955337267955833267412437575158804358795998650972541611216067124526745771751428698117141001775431825064307508044063435822214303029112887333066228647046450317833430223424864102227902485592028139638070728030672821676563419907169063010199751576680733051965752026114799644396205632437588905219424700297408955117142271322576655847909090286012932357019267335181896286697358553706627186503402737782903369544170597908711017547752285779650136438977876481251828264755329109069981259033123691132202310921338765682234403980073311770240434434776664146516448457217514445451281971556183746735583029620752649168127383747418036513997974638978188908770658491503494116968503589829075145628095746981912465344256633748019793964888683324645185258216884455534348272265832204513463128286223795143969121082370359167306244364130912226449384344649351062003071006554736848976712142853811332647801143882442453043167002274058323473948171736904588839610005347733950805683838446805189304339753648461444188358981495102404051432645256392694287862686236333017057983652325816073998949171424150841703438723936211054638038339108451800216324106030632265341898239317708558976552341205329717148803231244226715026005692682039778227696335380834504828677955521397588678493899224016084330791697339940005279508044470819840820947053016929627011111491658875370386282824363420609777255271369200219653161784533678483471595268196607922102244257580663186588853242551777221520571329618964046800484535537989989970543300653626350545185540576335232581456753232594494078840841512783777403982488167149408773886016619385680919015439194501221782159697735854857119421445653897258330879377556660353168866281330634226530174969708505991884132097138377646366945953969119251748123265589408729149850735524751027446993155025622596703080773676537423579455231234800376633993585655504247296176423928647625635285090313678310755065135240753581878151569287248293459078354548628656267349656957930706148643555678169733758910085721905436744857493686477870558910395532108321236580361258445806723974199488268787527463698540435465360160274319829310083229602238664770574030595095139720651039306165573510398036324660773962162121396800508058104129894610663089501058662113473497304774169284707518138208280382627041103608389652178456891699479965434600819453363634311295413543396910478141944542636985094598829755686495917536258695759012627044939489857733413575271229326638500639342272003022028116202592145272825881662534801283327834538564124521082482973209042459426927625988666967581631080207915053483000484519763457603628896675078898725656136127697364029242404604623790919712824576811403725780997741461531421755018134718907918791343694949367300679495577600119130109084597044353648899109154325061197946630681640032137454485930477765806127136050970880097285968621786170603280988713478980400452083447995252562488479406133013644650649365744522031944328396378750235710569240955361729478108735226497356017353748588663471939463436577014694512304261763909568589353101182719558806396377483365713511995599685302356376966183311057143489108274951871572768868045307770436275478686119780681265657719902540399401700489607968376356597113799090692527908981595820417402616697562392546078715642890838739554636551138362993819845406289530020891686429798037979277369960557808610325586979305954636553040867008288330264582419777764550988072040329015575561403294820372004758284654937655644447472200476286470777851894234193888622528734425117118254888530136669717489883087627117409758349905583624479158269218646997257248149529401755122566075638134780881190097532529484331183844943531044106487455017429126491118754123970960228747639819033986154288942471157804157193001159590910829978607076483050562080075575795818538508511105952318273305013704762943276177018365299747277533430009090097593639548653297311664172618296143065274867911296389540622205784151274470911699635951458188767074391668038961336629762050321158348631085787687462639937027496230312174771707087587900541681702665079004612671711539184690834264649540074858451451263284514982865978526460656321815066421775133476676044889892726487014420725099230750807896726667836790486347839366517450927684254705627562984666059925273053815420130222557783580812810168734840858150425065343984951242095840307284111390803632568697841455730446741364288395116632489411051564658625369990789983415564248996532557396246768232652625229830691097027486332175221772274082892990375322506227908272598453638970243463173684191798788260947805163666158923736034747905217085248069789883942984610228275589186062565046380674496236686281424321221682567910233931590455930345922812209178647272350912295037995202995211136550044459549788567420146864418960537656135564196256045473884840627344197489080162615247204423702980477443225616318483209062185545231580601643802728893842767362420402414412715577923936034721742693720762827884618351437437009756305835001013147326516163750180957941044410317490219454433324540220052344736494438616663508922633937357947485158836441977421739128132258548958130826900614377898880834519413998377307634638791397217468278941618909817990891879761874454265059864546903120850552385704447418962027996877637320303148993266082130464356890177571495942357680162107591494975338043282989874277756234257005788049436299180489343080781703004008397012951545285199218016195582352928009549506480106391515121133534465429584412425365653431356107471443987991339452856027761931499433121766944357909196692297099747213125426435251774599655890752374327635329912094654123933591232224278178474788131441229975020872412121581675501077248004366131591335604517050665804618005895995812777940352253632953438920111788975259285885066177363646979449987677676128433259880733339048900853194515299682539127638764258086309780209168454043259015448531620081245980201985942557283618862173572822525339422929269964309894446752191413290113760183674681073959958459227446714568694223906118403239083681737580352427246446534504014277137326216372692823055033571177820137727318038453983644896088400989815870738266680085106760440123647087814082529273391010119082682038840060390318050012500844460065633044204429174185590215285591799429857020876907335170534421060185620959427815207330041467085991234618088502576788110180381670556592069062381310964296505993676337747345737426479881064511358484677358950965599240625101682916977123778738677317660239115377313507366547794347454977959841231702656168620417492618888307143293676817641317512835313504597521345806565523659816998871718290151951339434107054776309362172594310097739835257931276365055269725356701455977713065872021607447064288356052838173018323541630976632587694670448836758853531806730174930732690028565011447325547715569101591769327431352065789545000980283593270153946655727509568942177024589227991962490020924370878565751103187528057978920992402740936144518538570684544018258701333092566291934931367501412999978059517321908176679495743253421859604274085531194916965951487411759990170131900407706281449209294712497251179729319890037335456323983554105258218016956119440948092561453047927480916185445484572073327950055768925420726819586639427454802165339892008218108845374295572839144311645152256193315792586829071745647125193024509286839128917363100734330624273170569978181647892954769785319099896791747548849506040889436763974069358764642111974838602386678900000687787525487385037945575977174385224963768069682775304363857235756799786925242104303886365728958808714086138864204247634894431257095305142451800496842989983647580447833631761303931089651092313449770540540365862544912981787965051972436138231656094534342883788725716196220194800641039693284501569600807417192447092085150874038877430166565073060422773887942355105043915374159534269833543908462715513784796345929230178924598643257344908637928927757707939712233637183899265831204419056483677479722497760102358683829978592575884717428061537270264245624115281202668329621373276426122861577266619767016581641870511199939925454179976109170717784960865893555360827838323698129468597659247426747070173110267136709244108360925240026818930571208532608802159482127840739910838229027116898441827419424375115789749900207782250321642479903371477314127555857922870460445464701626874742951469965428299487983526096917395368818608860031887392496196253522042582183388354264256703183234146776039680208017809651471324379756003135044513909120958002319059320564689356088017124476120748154051371200418705372790622851279217578773535712290741959104338306279101371623198163247540674650267899025819694973035043337229628523784478812036432028635417022925098967251928135188135882614111734214067806281290690602588855827816434453925067072786760442581308796898217167935885312314390822366011387588736117767607166069813981473970567528560928125322083408199134571334515934458814535641552696875694219570582769929816181197673233157090999037610968237402446983727753911689560967616103511352469777153111493012305015572032416669203011625247190790601075948768953660527195359602454355735388828954126472963448490328760470212422091566262651341241376310842508629042987421490233928719042306899815699475927984129493618990301749446021656622855896620227859933294654851543028133529505648035653848155962246874950217257576041781978168676269409060971358468505772743593045284997414665557697438639933982608552283747726091943948774244014238780633821308302111957967368994614509542554607350613291275884215989272349909444092240521604796464567898865961608085378787956114595280012079201251292544492912693379767585549891107673169310059953175831764911244383472893672365270053669384066481729213231684365689645512405788428637230057763114292049521699570010282330851680360176574055379555829917813343856997952114940771501627072780236875958820401726441386043226562163460734840241490545210111628580378390660728315208482304547596196372137817381596307326059041072605102948978511830301077288522561083817465605423730346731252747112921342006579713733774472770441633632128740315476316588177148110951706759255587559994913882316209632951679868126981438553888864532554314127974152165558139128055825317259116958264423032795733761679140870562563839418738365543307399292156674061581976466568363338741405692811909837302182032823841605115133436610914698592401557854391014332701978099779471464026579449067355437383703449889935055943447196451845100070373360051033947158903111404751741777499557893944524249708788018825548906198624501151820216705389041289468212137659740364031420949342392389203697321835220452448389515924578276823004930459408888869588718650981322513990973870550561732386175848911939410916170731640702529232651915346528686469434683741248978013514680695850970924257880516145889472379407381156472681349459264232198566778791437646730082918253031920432673109850322941669417906849423775092252623619881019344309020237526145435578134241294457118677498290894617884864467270382501707177741509521629859248627486069466441717034307766647243921583218226199486263679156967327915625783378027355119826537223796766427857698078492564798716019523131219550357753624220668055813862468817405533549871786855266863104184811423206358413423308959067793591536220804788023485472008931552576185178865094627976964343647489869216880289531395697261656426062457065202882865263941337774994341246139886963780829869910688748575485264555309239792194856868878019285150849077087685982152205186910148569413407589828122577624616545140962175846319437039224363019733839243969169931347859121026804141435355105479964641598643117389398010896372215217312920675462172667044823871565594490052389477666101017587754026892003477271041427815955812416926905874464100393651927274911488586622763722663138921305956253947441664287603676444086571647454745345288343541214463423884429910980048528536902106455643729470240402327457980118765251480154538775778193707704244510046437561110257669030180646550208014222487072470744501296397487488099767246061093204449599498617910521306841420471326666513104857586787171441597265711740008902079127015226892966347750036006965020066820562014003119646727247053957782353604065586288591487889718207342691188803712239947592023745696451488971215837837752743840697761711506474857742212600221268245825623509224298466306911561908528305640879222529912180797814488397633125869148941037939081707778531785338402373510006947076602008362934382426046172810501339059125287929903008578156444355924460366735180553868844123411400635905886947961275446125084860987603763194091283168910418394449557013699099797424274866546571839041671327393695048874375699552712835499950291189922903309430661984128323154065628599074838134255238956570187349365019717126177076437540670178664850243065540784835023846325186370523106388691421412342692132680328877062074905584073055197524081473223751945292347402062745446490941659352098929563689244704316600560662950255687631515606117513304092717515609307235384003144886022208012004346544184079728156070928074746762032688586907876128057255187744352689152015479452330065536042073298122324165004180710445093604532428325624934167309633162955358983907961912562459199407172985624388986931235776597854820256912834834496902587246961100375849811303339146198986803449412255711416073644126519064454998126115629216393927729445747908667488233619133126853680301016534265563027274102999332153682833896571475469369492081968708088766784674168236065367749115659852528092024314967327973294416498330104564304252659696452414693614837910454418324257312208216925615738488184174043817893593297232362917827691018476095231173281556692701995392535403512740058013066798333474293138668992763434971627285293346743179467893889301847029040903813924858034224465518411863632709336805863517712064824547049120568413041117595810085480527564655403788154829799431506418279106146958420769090464413237500701066751648944673065830016669078626560403090456512994528034627322259008775132675681703003899557196429812024276645491175811510637443570864170488877210523720029604708854935343302433812768517138765816005102006146557782673261959723777328708883004991873129136838023031313842823241501267369351160985566620788467948984162193794168572552764806185240031696845351028076169827544655530003428808336648553457186168261656954666327844699594586794166534064076803688954382054539390832798652097060448671853300435528761015639901575511951730324641216720464373472805928031052799342940561379009637986839742889740283098485571963794352322172381823199619106286178190950739227573991570526724473709730090301592051497710184991207949549033037030381135005323285501317289965029571447071241001354587317370165344346174153659935864824456944232038747528705816179205686458795317671349491793061374810806789527914751882350265117953749632792363612698342177207342703904886429122856359344487509797091999605015134499341119138216282383831418397154154068262633200251052447676410282327166911800173603656432271232218620826211725351837346672570377526826908485045838755531977588547947095727764122489250195711838764528227266208751307125078118146877910157984777100537807415889765299114931516253001968086423901620569141244594260142984090136841879161572217737732124380494754612699429732115389626162788687951349928063393133471584865700221767344108929796741337225782976306290598462115882471265047080411293137905032680273465405616505770389299634571471915358644951122728806009204124026014969409962257116542256400512228958412901328241445045685838090761583385769524976213501744513370725594941569978095073170447920430350095172296213163204187805005816156151465518865923182872069739008718387178223532817155623265150541284701456972521409004265547493332146999694600633054883425211525350190977103570624963388113650605793215061334922163569762428789644569015947178697770055680236713784020389266644053858280471130284507259224995211680734534594841393062655595907613155727033715511783322002324215040234936103595370331824733051720567056381345493863070070774371947306581069690298243528606313655787802795691592679083458257329769416332346180833190747161877793635782309129689015284409737218909375559622773455329301433416934816047264255857183483178578081285110221490715218920208258318528293392008284422871353640406020159915244376127941801575890083673698137128067662279844725772931308928321271298470155415259719849034030800652260654683541501125931364819230551056813859444516527267821889917963978333583246407005794799892080913618215112078409823356806087302138012587641142055833051656541360781014397015875623602598756552732992256162680607904652467116838754346839918073453043284358473896021894618850380737575943564331823544584099103084838308654632400938363998855928749011323060930427886454076689441904063518047163315357248309983232187158306579871049397205186439953905829456975511042137981708775081509458732106349231617884018956837475387551431138772174184381475118113379089397705028635063639673352935496136074480258347086320285318551988028400458878324293580362327788170868394814676553422773429316814229706896278355919321541655780810207087182931088235431378938386878388692313628289347280443637777450560767480000152638746085854982177686476384211098135601045542850027085414058050918966293420612777788032953052932036205773346430924380469787356109528077813106653738751356998676076223611607767109475047926426358733190847526003090825891127457904629356312604387135941758974081480428139455257155036943131813080340987170153832999219339490497470984568502461384801183307949988372050281892139743477522317311164383315399102061186537197378160493721309466580043454878888446080834334446170703004622712419287213875564806721099866482837319690808972500526217194657663689980881587670436896717733977820034890354197190852237502022419825666427626729470315229278646060095813802634607834273194983170845055659228913011725171815534003933678220305925733594828041508136299199154095200646977457610762165313842532325392720271041835064087090700577753357689401019243024742235741680704596222715382096545027418881609628389517401147564171405611003862122738562878276309974549574654219731233362143054019083211153928385173643650857937854900661256697525160990119308889929424376333390573608363451665780876734144318762791301850838023054260517138277237774487730945656632262851456105420973767376475642868507442940403856998219114010441389425535669225863281017803651730018316395931593337350429761727616192911022014975145987837043832027705335243130896651675831669572123652916482032736771171383985680538912921907090124667443732091640090055909498700899332543411181706418407095957323196689260011313566008340437716606240704823940935070135846107707418591869153488365291733342045453665531790938261315788060924674517917256638200357824805854734604259340271791654021550986089923854518768780253300196414054723006164781208407646780562890588085768523052147931917280948842383509897311956059301891104243864030442602355092864372904922431542356868781003993943815832521650841257325460433828053997887779911424638693396045997127893790089754015055013248989446662820454624535519677885802587443338461783765352127768980339385932390161402785998486459883498319234571754938699840210815401637337405658860568637530853845465103169290014344069323902853333983712432002183566706819149689767318274774774402353772581734191928906687421189969820342119959781239589346509655896159153351584838223499129721118638098121212509682181070606226343417627846060743578810922940419761609010630350394779171813888865016951966004136314411404953176636045274456980234971219714771901270894791932093384579977232940458864701747929492920340598208791379920578570745694768878972986670533474772970292146683069584902227354699246301026380985000583254529758947964123611469632693714913696022591831077300435079164291741853690417871500905951202530115741199262861899258115513455041060925645644537976696446226193951244816140122506932139162320723478375113701869127419674835016609378258194083147056336921684718840155682418519608531058324401164500720967265073843325753674043138548430285849905701430771621846434104762564029511838129302467375290525271218964388062446205607898247754381492469209044542993029129692662317652347615929602523997012335256775676438588687635296764595682322171770047087963450389202093990185217289423297106392496640857790397406381936562980801229151818223736261834335823988036894303559064979936933479400957048639011864501135170079810411924977735359676826727358021194716787239660049660958802231401373330383221819538082210335798093852264597513781272241986388440005431131414428226948273751230834338366538964763524995685892814123614295673262671470956963350080396874258962589933264161692149374453703086882459051885910321126632726466664430567975485207423946147972535078314760379755200836838349455369196809437078810809720949879116989841695722838926065436725338412966495028206844657012003293552845214707580009477331783850667315685255522717024086353151603755061254034559796944236375865391050271274862154568352121564301444054270012374626098552511311094215167395066164384515109192183801997891413207470527412999303024588434842069177274206707222785060709287785868346896951476066178701290878009310233555635384412220777033250348264979847508275297180619508687072322874258341191802637848052843527256563003882648088782084833291375571709404639993760667311938505799647739760851476752369283367897949158698555376152923655373904551238981429443725128090726379844595911758787094606632504455594520351693333445925867017397723576755341662549058162869008271881349835415922101043805279901947190496423921085940099435331967010077270321572058401442921452757038565439350908838745704858085049185698638109226687290604628538553506812072277168146569775133862784368837865877564888621306357392711585668880089600964712324343019315595383988859481377635797212593691253958157440335751843926236987572947315980561955808554443998761514586867505884866245205340285206997238297800265574445396581669947825554047558709624838723369477070376298968004486786540315404424570853203649584407462407269444541139807112492110482214544132932219202263245030609186263488087223145104418089531904277865117773784228540618944333248956664617006843413051813427500259587315855451210968576466048898734423142512171130105359893517830845494351730785347679151112177155824926906895374234176651027306021413526934127944867602272537382207561468013372051521731407025414290289420780590529642850992755540074332125026545830754671970502519405909708611959294974856013595531633732196027456400554736316503511018319237737224286160540261279168620782063736273250449548517227248366115089233180902994402359668358962235128070734163695915070501514774020202159761088587174427813243714275522342158339658824059197382258768663827305999506620095423817456110894762373404728253401465777084528166096870058422460308839849911720596739271872470761559053153013260861753009930276073742933775968787665351330264752127571629386545716650209696151600590155674991323032769797791210829989885161275902786235673730298607194894489524413330580412282326126870629192931022541320024999229084313683434182110979161554446648088273608480291657240447512370241929338676617010883047498607297431152159965197553522570839129581125883667518131803581162792939292187544086001537519669073371991385241207881951491563864459876848654838765049093196965426950796250761997833141459209770132764784662135021669477051394441821449885082840133819601595620618629082986738353116545246305348901913578131171154307339909276225270036856566042421468927579855089905721303707760376946758773630014552102047443497750684375607515029363562337258306472683214354700418777724605795587883803626770501353625399098654839926530243161097532863351282565091180185409735838309725660702284215564628369130628415977708051044224247837692517199081723621543833699814761735619207889490157426567341873902439656600991645552293299580447798082225199447115232152907411314365052425021586592007752784120952174251429452254496181717562265697761858336215911443148575975830609088501425171539635210641484514799563918130410088889202977420052593834194846072634283584933254218053186278080528720961755836820253883966605319805794093128048971332609192872222164582156029463065496435295240199166640558857785410842485884894651516557096537065383972435616817017837588283144942529915927416316383751918029875009884333889992990310514199920254561272349427849002676124046005971582344671544910998642401049019218251677906144906695505287762419700490604555618922775199093855522175094304836869820860256980839257898721709213529903401295770524997514576876459841121092502260897267260208711169719816576050934538638244595669190829521406569092786114487286189958747478604078121900800250940700292608518945300443049316938194880015220032671023777704385423058322437549805661838808733743319195002465110735406349318156697859921964818930022040127918347166419441785175049037875937127943306885367723415144166433490067293362473060594951445613637024598723899153339720121140151342797816461109268307202015509162460772751689091923196468706345649208941721882457320929763985959883232102424798265120526808282739917395776333744108023011305534425091157562481903044608113361557164894056412641308830541207298878411263089833870003241921555904797961336090336009548053007971528900709379596251189655688891523831653046833273695214048693475461040527354628104621152141288799525231924894230396997273211145518050070452048680197006223869778044607516595251178074206047048639814736318305718309170961087876617602254868713297018022099204123778165853192816173453894797809152387086132699014820559403882007114350251003229993150988324867827432003656449035375027050715588111762437645925974622792977260642635295354371903247845583239112681767240176943170950851870735149379626087031491751305743621287489344591479389197261331759697043978870892331674673989739076980442175992085432548381927127562239819618830208781262830954323199087169938648446027765232779304167255076080135657472071142328305900139021220455524232746687224177951041291166824389073545254821309312809155465202812931127648852095436913749911042599769392466573837872180814265528043798141092539550346507673450736974816645313078917996048184966518507468943461796656070863273368595026449956719619912892072204064021073966367618858472257431629440473102606841813867454623836941098907191151366817517400144812728383887427227088276855390593747319207551419124171926768691907353704023759442396830771104592703395883332308566472374294044571113673743705561240000630498104409622600357886375335100315548103369095172955438142904655135896908823442748947950909958945515021326449813999515264761197809612889975005654491507775771959963164849064714057977689590088605573514402132960743724994445114087904437701039143600851395424691109562757217859760152415916864867955121981004857497229064139711177980998710678566600638750776389011794208518490474016715374108494797515815710645799088188830500354789066169561600640820276449815020899665420871645931627605618731290079742003350680283730083711544757727631452825201514888099664933606775133440583809853699621752961293695170453767803604385393976970980552312200324743892039357915037611609049401181200471174317446909170572272624284990438811448989513290215754051863217511573507196793234000303698456318675778365331989566307062735588720527698993999043757662520389224799535534036892097571878809374289187716040029241673319754813214466022675692519919643349282199214478924235298528110815135286877232827248000412624154773736099620352768112702367614689834205762147508713712658927709905836659710528497289701096329435482516242426754023545419392732664514807611979590864349513391520989160905496569916275340495791895521213484447979420608000216663549358377123167762566324483478185777470346965711429808637031112282607863671049238564522559680095103776460881413735089809363069016696928474276676380346073721074806650803730102105652744041074894177668762743983837018415295589501491266915854885079564971393195628031154138425926160481550154312787426502191799850737337307180298638033489597433668273567042077840336779037002596118633809327743277769367427671676181900083848276519064568451331591728739645909173331235364001088250893777456722454667143822593240153781277558528350469221370383339492156621855182998214332401427985334670885527116992279278291009332385032537304529846175156995414964114713412219615682810625231870715564825399822254269606080424716913790049014697765927007397501714793336041789735184226050411244977870780338291511651331744305615861561109125534266081288903173968314938744055530489320705824267427166321182101873591033019805154045683099084985632805486136151599402705208183041166417268440267383087557445117684618871519427704464613949497848632005926738912850694939369078224076566036342533469533522386672646858338153185045996457748547380052089942541276166516949393756135245351720754377433946260966151947585105538743013421392795828004057531116447482220000702325402366795906735820969698637336980929812638591196550559682590594890933021294744635335568132053155625138646373975686792806562847212111988479703038990995822953274514568893991347498210716394158121135326007117402505956109647620942925220000329222227636305486441841341298519758446709837093158411905083010960576046459475972530141015371765357218849162026894011343515431123807444603333976757834821357658882953576822538005171735375933988702083146703817273136332283356838507277256419170578723093203596996100013533970774055909622530465020440953295920049762990579030753165281083695480894959322219162300989909742633714695364116598104034312003008519346377100366359334635388460897712834044811499376036520759017414774610361756387681690262865303173899714010204009334647853772872092515973570169218508494501585960268173789634860057601838481954068793600946540360426338995905977414950447708610521514886560552492627068531971192864772074663308626870767546775227189768527181296750425500502815163847695660493058671932866860128408671592571490991364400770528582642344908482725053803865216774387093929763328274919373782770571185583323969354480521893561761174822738053328210342990161169456234884792227634910150759170899484787369080175410490178977623232132574421008637762191454019008718201816537850221456525790200010271453457721855385235347547983936518368698436993730344298555700872729584367819200471062834013947325307221866204011193429518311747168203833551887750951354089863993127741747208361532146451424859817853395309656842563852110765084294985870801142187652067732000356604153404739065984419163490076372599277118389398545227685850967194654139244438127806431442049131386274668866409337248182275597984864897602229954230863560891891098440556034447317433110122060099497586276377585836405740309825517693032645129538384221410961357973186858343093269438467487432719369387352339646377493224589260582690114573730409501011939959273428318840084260664179519730078455333089010522354889898918471463023691216483337685865254481155963013558321732320377988824672074302634312070569590100557300510864880833968125222040686293732085161759596078089038926868006096970757114814904803812045680420237698328304692961093250629826478228148200016582098247824866514953233190505198029585462827135894462855773088298105818191458142793829717129878715132392152664570741356722282683059736457226459570459082391789875864414822187404472365354010968270337245291749356344868173059893018401676838619746711796321091762806109036621783715916073159277628019006522440595573282442654523569119512855357192419078257442790034542275253113461977256678262954022434479218739600067361029958930080518302811315464414072192433695456835848649679965847264000976029987989205702216102028850275032840352053565490089094716652801476464067383487793637510196207529129092413122508313772291782297582894275124039467810077877693081827247933515203254267631897494938386119452685599300343448348189156192349495207034248630628450999150254552169688606080910629284048157073861758096431345206511576212706472669487528304612569173560611287758050764940891596105162155419273520592738662421726422059652202952742141152964547377986837820277415201227186103516618518989038150895098479599170305365143145770063916795583049664464656235689848889372151522288435386234289778342795397670915778638844597551371943874016395448667703741608896690748860443081822293944624339426235880462782152212773955388292786069327473987427296924642033701587058982084796414500179468223467565675172327155578589620453995531658943812364911104177774591752614944494429588865993202011087565971892389108505634566407794393498431556395539127520799962563946690178482291394455982858105225400847720702320259967332555672911856657032238541949076926552064973631721633244188867330137203737940122797201988565570202127742764731004449000390193084012418496185788208464787751290684265444223940719966156866003173631255048469040192128312790219732788597571010106838634271491317223317520947606274289341352674528028054974968985986121046455530065391377248103778738920496471731090123912990432992133200417365601665683369101144165486190194577255136848077807642217642452845146714440231958424542388427782131565437883124287404751827735365018498213597313138689152367811117358184787118987658196722717746618162663193882840798255884521201815088405673594605321119539509299252982595983890757792972589476800253813176597849268051661670258427601779247487312251357851959503140919150317716620331781929614515796482217763849978520989550866269499124165546275623838630392647048163731096328878828006698303446545005500588091161848349649872627387329351666404902183475290721737007863641976903008393647862791961264843267159891165542244066661194420509848522800763273111746131801273045087421005535101576075574765081920059775665507728069590204735944244749186743485914246761431077617240786807633233752427808940173845670241818716865331407548395553654656314615302934452707806695469898392363879129895248612484304194617916153441334403776365800963231532730226203771760704472541009993373504588955229313656129714794038995396758575074044960425831763163481673660259169727535873959908556263725593411887892629989921742065633227623699876137750984551065592007788251978691330231070057449530417943800298681629815104896878450852318349745098093456831259986140982573850617493764199804860715076650459374510843349791179191080501928361106566419627630219184442275160830726020832721883107384806154679678679458013398286020513020092345676421434676708232250034403179453587655918425935740386308404989045091465894766729947347528444417330395468362628896352766169869175808674006785575805537069280505458358852813780437185846263415794897505000657405897348319999050267417512943304534040498594049916810893174390774569713262918864685961210110294067892099396996444935453327896746664684430283286404236032951856949104209412617239990201216134614221926439667099871068467427502470137614822458250544754277548066891512956288828782919398966804889566700720416768187046354836504249946660604315318887317757319632922162814089265430595369078221581532263556163842872412594092288885043587731986660968846784396792982334430112182800607407802600056247085622554310520352781903767848998380173542974288407582041946905570988501061854367306332404346932036127502541842203515044168496831290324797019544881302354428009331022309895922536732607567830312193552408585232488917042849851263662609514451232545616929553507574545902776992976596076412234078721291766901649782384990097929360945788043452544619467304319916497536357100587232369629189913419012729108397589265221990679796775389049575567513073504241102265883503813287868735914700962432756772653196751895827937479533123448266344778144319528634596506842420102965121499871499449710326587190938150263551255677822251416908482805116379051833819386533304243710651923396874132168437181631230153844940218537855401692819099838428357506382257663488720369196621601817393448108757489615707890499771700956450093043508143152329934090488929737513446496241368672504001969776173233227733739473999518170039611621700085641143021830252823522530177936724893769300283238709917233818518748770547617931417060384196534881022588687145799264088334123549966981836258090515484683071175793399201717167490338454189998080112084934074598456300376367124102286105485369883256162071925606569840415975070896087837853784418725923845211771499565611599549539989572564034088835870675400098496289776593225687283056061761237153467688583409176754787799656844220628234921346595456528811943312230141088458602878313547949182763144692578815285141937048020842172187797746596536065175424565825612525920068062036200599876279998250959642007947859147047186252352539298081437280149376199422872217362607307424358976836927087431707378689054561339099546078622507876921449082334226155711885697948029175875890934785519008638901645624879511330172754758256924815866199582855632533301201533654193085801441249687384007522568562023850483719022040054800208096142400015809939961313788570625263250046325452956090157374108954250722906732815904416319405505249659203288235575648242280874239969433397042999977643121095199566998350334583845191694312872059196944953092025847629035206399842159260685471964813812243305131772482508320693614216697681730908032983208526230415381319550154842904841696923309861206008977285674454290476202428744012615225774430627922065834722274516266899614414867181657966449726309315543149681783798555316379489944703061762482677089681504473575322946759002152932350287880067770280476711165659736503070103394834125644725273949889319388152636362336060607928967895869595771821786093185316284554854118588191978709234369455590209092743690216129676533844093224034926025367633500803730464157388493355894462254657138330775728590892736265356307025937202919276000256653045836617803628663910143101671578729109013959851401174013771131624539508917123741032202188130668207366431298235026645744687302222901001013711271187597532658929850974258779405650364361931166646969699479587354804625150380792810598860223827797138325014572124223452764198327973338987211909272576375136494182328811010481336508840634420478451328326881424142005895722867407755763224631449630454400851583722615964146841243644383218025456687890685473416235520528496928331321158666648586788092907442656476254738219164565665149181927870030939823083206576448721650605042328465098716504372447673128022488688268564862382481449604155832035365835668188719948657576763436816954918903577221072944170840619285573544027709977879086775065705400212022305200063050118521002978898541473963832458762331009717910392481348734174414060107043767849455481926341945411617379884255459848062274898229776281523516564733988909136782151961976018806886931872622031884457691671838581976789996961141936868527179540718034758823708504219683155965309184374010011723638538584886289595250129794794262561620849491867046871698045889984682560638526555364640613087569017973758426999772864323910901491471404703198973294629316187257688575792863420962856375347913161062020004301560214992385240957988532734879473687228207650097956625998466383502741176879348928271919476672662573699684891340637852029813121723972304563027689991215877871056036602761954098526747788590448463865734079161083902060067628967648306975413662519487996670668370081030881148567245086026891324410639950418615005819330826467310476087710486169165874945530552947093619395482409170272824394240794937755170357698008423183266074664617358410391296088698091523554808059088893733885366001963093417894317801896230163633253776584257489048489548940597566817284682799479711879158076198603482209466594877060131514304937075823210578018121064784193510161694579970233851838163033490863952220907064216820687452827592214237227833609161036274951201100166971395056183664400936352522187513694178673824966975524519463662718344909072252614046240546342318386059246825966977048429836861594142742412237893106333076473609247206267507959259355279683038147462302185177175463799005912518317286841553073202333451847944833390340650777904703093972930930302611493349618857354144620495699060072101685458345302312565105573001781964438404252903461540521712270774470799432634760478134288823572656497976771463966660336365269593417229381573738765721323740808657997207696576056214116184619515661827038858132418479099380566656902663903488052502099600223053704636872583067055875313783455069928578932748779587763595433545848329088940633933443112837110001693441104101475326196170105744829954107386606646369090690541398411980624351399545915310989719311920666005332514460356518978829297660726387994793671224327793336602589736132705965976239635771637516312239646506971201104785765829691051559511717692571690825623293234885373718627438550993351858614217904375251421780302775510633224443599336263399527132298429858715142400423158892263271901094060161748549474075540359489639636433425970461107725591855685082916134665241425860405322819440967719444013078895911896834902079428219154228394161977824456437702895069152943144398374338154152809267213991622957633027189871304390046089370757357182081590750957975805131967636613640354305060919639365508219840176938487816513649170473736632906133716312231248968290690581449669738707632433936359540589956973859726834266268270155220968396430387931844418909675823626536413923102881010127013344633875256016367726038572311428890636308300405521690709717353566711457853766095655535184313190579539400824126446296884310562618395033020266735936253339963704304177213009189975424115781903667603819050993784138356788383553350917481621181700516670480713195223075052577649737471718287386123641866229019825139104642724933889225343808187830141076735610349978161598392304762291212630390917414076867388822429085883486847003985159193668012782179378953883961786461890200296199585718962309542727044664661150233491009529640369253871940124110274965388395191941847708534093787446032711049541145481674155782703749961635673915336709666550759227986995827407687122059549426970262669016948998555137847231639962065530915217415284208211429436211711672882909928007050030227770000821712498160048393775042236387556222047335142005331924619167128176043692395410721368363763872488208587531904601084762086746038305990857731484522892097598380938901327269170578471022081186988136831236696007219764466669159331894527474089706516421624010965605702028972323518049753210304809119247971573281334821852636900363594456561860488078309536079075353512276035348172576096737080386302913957980110848256768946585465692855132093345688553533148591094172040006864597746185731163794724300402304746362721027838202335284625284700312650066140387719688588715280636670714488953814530582812021560303694021747290370434038849819125361847840661568852307300964283323712189897336984601030793541062551714833055947764424338494603942503561206425890300850526428936897836485318946746102801279299645964009135072662199751838726836589930287316014252685755941589119297645052924317143808583176778237951596515495877425979905719356405563755278729842194338819787037094143843415387875870056243229551891784391183701131074760659045131206603269354383516312376595112622566581818348935203761693204649488037976282472364299116437004439034052324356939113654161107461281272811351269177993992420978904452797760232114985463032111013793291900062942720202983259744758744679733080747665810056347950584474873331897030208218840220570135773811644538088936187772064887494135845272022018399125107640348623328882128275196144920800345707443411678850415298439960307136609930747863515217345576555616246808248683646322273299185745163308596531377250800733919258667465837126005049270996891233513775691792126483839097895779046894814471225001186803142684252301533927160345490895326511351406825883274071317229994458302847508725038264984613799876663096462272598238074362566912933554746965703484127567695492736081639818681596860226513148466769110485225118179843051642649575144508170330837898613245300175513919703882466615189766994699872579464903245867937518431994481398916623068031549442503022996676291487284204011065119321742267618758178748421193606973177425957557965966587845111069683455980606730027084296286567116231649713699313471631912426511508335368921354707441300845916919684370109068032165699322893000840870297780088508827480266878555554159628138624498036405084422815800754104067003245341515580705992657747940115224909520831647506049985777335377887443499962066217137088456399919759578311087905958948662935790039889359090814127879625715259706440348292507392887702634184068467633357950575571426181355029631895494923288674569809458026060968817342740914748963039712975358876749893422148477928953840994370532669512028768419175230697400455287457616634257679345063578723468974375659318359524996317372382814495890597146262584082933755374429053407100611731916751116834524544818746311698434381690098632326814521390335113843387442736761367376633170589116129504007583964855357553714645386021870484537452880900415896006691161184516621452306189857982874569987912890926300850692790839039116319506534513208108114152948978202424343333362578326878388592947359010445667954285351027817694515145564346373668397470818902497643624400093963320456175842278871682626519820345532626323605537473443927778341002711806662254529833523175892749598265975061715440235621538464758716567024210135782089459035093945719015773800260405261463979441026482155944556206226867181604493715655340155722367129452342541517026752809862371518686454606477252670955943462705981255005185485399068690808621157480101580341811973482943762563279766667122712016118890977056864501706986720853147991874565727272107738661625868078508972812174164170540285854312279480506944184404640941815172380886833412675893884923911551572170006579717492783685721872183452140555475343146953391445184657725074319369501533241783030898853227875348813135763013668434830682335204039156766482601482525894119895257980967054712342942678200273082524643751178986306846684020233983782880877333667601472600561092902946007606160243997308501887818035437609494685041798278669294575904243787654809530944021888674559458361251712850322828288464181747193621232392932226312340713747293075693344859192155160541126567234643928363475050241101096021260095396940171963664017476288321706525776095448001747552808669796029142789736754931406962198655447228776487170892178546709344092227896254340102107464329905789203830448729590141405865786199292447147111405598368611014213191735842873669112456841169500938404442934921896016059203230274070598390040320321854189843170772596175035549731894671931709169448476460801209440104688954305171653384308256414671671276816750725562013736575100436375269572426019791981873919076813723626797665561654675646354678828314966830498740581258163815332761391745601758588659263963404402026236962610352996897102583448683296642905326652054309103284172543782213917200140143066987465244225015348794444285807617999434553994250497346574723887137556517253296899605637268377207114748154418374157838311770950816591456017887830734704702776971959012727901419746985497965618737089892626730974475451547714408814832185745748951013185041474778279692754190685449324743673602767503886664086973191722425480766535120426222361798312673975595323882955131491631411646845400077852386252403178253796481226469396012688703160987280012281199454998868095343721503278037297596014660848261956529021549994846085525211384169646372492044918241717639975449432347851323960612962823820841228110678603765421519868238620402929902090399628913470726400071200703271852107402233836133329295200659182890941151029702636093808345290821877580423206647280628243730454655203845014660444298093860057074001189106080690226980911340155639057269159346222706185318615101355325253901078466280639724367919641117398444181281578394039648886163879544644405276552345144237697804756285696771127281686191823814397948880243004734218532386956223031979219777243633874878883223407347636718268338763645145874196468333517821920005059251037650880134736058297776857893928439144871322710182363544243939444206281850752124405970248429390145441364508627115236576169868413434470601888929875892885684105895034789504166544922566073459833285232283666339742731855192208565860231607373691678093935738469377002207198888246668364596591157687986209243553350067541523802541928380248981171129796287005674254173818286847769301582355330624489934095007072824263616932238005581285632766982185292090563373781950175048983834592280916527553821779443481363307884552675651737530251191261228077754306908004314738436514566706669496335087361167332011467252676805113951433434547292429120317751936963263210030492144261809697492712605030551442067507098206111778112518571930005838586952253701583268565513322975918173358390023864808296282898317022525377941194595342826045639623210661745973836082000969271002894126086933542641736658996690634798511422400117598296421897578563414640546608546579635954343550383745909863398648791515960386148011364357459589922074938058382847079880200557079681737753629799790894931552437102354558335332462413595710924370497262307994499296470978187750249571834232180798092491059921625075395430803041168792051938965268679486047920307723150350977145643464003892403963864793253120825659797117457973430889881880960927602141100445551861777648581987256355666745366678224396338981117721266939049500125553516821536432105667718924817629542835180362897465647117597491970354885081050835064720567408598768671865293355390628827373850467551221942959735189353098188876962550599808410922856406663244716395333427355300961651200690411790382017806356283623541940085562152203864289176595250107760412029590688796879745118503074429658821610450322726283154423760335072903770356811469523182913865521966121383988323399434414923741826222322173208572924019473355924842111751958792947248184712182055564447785631489229878295873964694915658142184793863024792035432122370479816430844534146711051403917323263375649705715861344656472024120240148803005770397546958039104301554988773633807014734277400526719286816834310910148780714890638204180041261969184169068693956924134385123211265224309665670566245299892198991133121245567407870145843781491401681732243230954671938731371869393059734395967580253643426628602997824482167798558700110100312791971897701194749481052490746260279125686947457138628612786583492697623028432558825924715276041563258398899983132644423219581841546874210328995906685168797604002203402609640811062291405350051609444628909809813007585523880106710094363668073868678755809563811297963153832030216008809458170200651330352127183141900370860561360173360185068717233809807801590562537075763555965927340383634374511012526581166173325900834040968494342636014851525720282950381345601977973982548922915215115792577030778529971978409163272381858579913670811529845807186268668561082286517480728529310719385798416563963457824709453799405833947131158074347365832266760604034386536138412744594629390152660272978463834051006319349265579307414948971887250576497662025682740832199270001717995571314984865750672500369848540379987615702127377782533859016959263070749716017103256710722945678609115021042056579943087825118470265018427545619034335000080040080480748482252382415194889917691434404040080882584278879744702179250098795696834879704052383409429575206979785175252478003609227592339604615156687069867309662191344699766414613356221337539395555916813166672676333514179917132317777092252092320280321917009761520471220080507803041818455262961189387076902327224216780171191214810459272270435217125970155214364054560002066147606601530079970873798591157263254686154398964844581949676494338094532148087799413264791368218038871022325950259905395067060415556188610313539866117216626008846131507094883923177179198899274860238785486892031225838671448688388504142486087274944430082249200014134424875344806677023928212996460494304842580141018842456040053029445355941700729333313291597606129351406120368364412558354788747990468287118755839248400785815162231372814653149176732977215067834538360764552767339559102874729587827369306026405575612246561636897020497856084174128181503643397388410758563343682239209319543842735828708278510896615904832162783609254141980614585230225672974036152656556506528232937645982306445905843117581087774381946231252639504432048324889551925742211961143675654527656243127953603426476632126408250980992951286445229549338241288215048942857127629481547713599397202171606623089901182182981129862052140447103521200649707012794323001786262720014103589466952425055954586838712431378371867910536432157060434850020519557896593060010943173520343658178034179614173052382750850677191049380508078375822639235725485937587722819689563132242233757831267780660398599460133781395290234141033992137667750472088086713543843111949735896453890861923471405744448663732559578291222265666314643121560640994371787009326291476653909327561618272141627841499494778936989770386392710734613569605542539920020669566408273461625138909345658655232680253925945844042351965772527131418255000694181693194618526304320465445984479397833860439140760533052793263326768243272513358273616095385636561624731619662542538233561983076256160265052932648209322864062129631128841195254672985842256679712721865274481007987692887787690882585950782367059175252192462327744565381931647403295743819409260654083392169227257446043906637031586219081603721776830548498456661388506211450959319163782758815684220134030871103024363798933045848575754802870766871724895574850731484146863950295663241904766391610224710024736046243917888691127939942900107165366192479784426899669716979826315292379853456712923227280486031878516012137173739565331402910869790659292403625685433361992417123234965538656047104832581709387396832206054392438172646473225875867444873902367430631457264681437808204464771914729758503786951206515317483584506316432180877191752272446633169503077886507726718641754007607575248557875381844505117524479763972497715023654802351183931072607810852728073719785192907365213055199033363807611687206610733358951478505005868425198700477625033637276750463954909529010312842243907800090049266988033075495115298352110556626223799562961463611568899957562177409301359284472495677236242487247516895733859655203486071992319211707099911883993062858480327464631071962984871159550018134211629230805058742851799598255519717147229805768212533212120467869896971709542640651182476554278698383002523456322399141389145217903375959715415719159265830723952292215551511116663953581686121260870606069997011692549862599436316050574324671145795788916019841952138166109185326939194752785625114796317722514772620431499777027593984326761090219878240437078595568731950092233223964077538369041138560296748672613287765256109495519346497916320927073516941514717343394090254935122435492177221658589545279697757618043337990090290488832797405743036467852689584252565082796985921768299210171059411802368268056672556489865454916169236929039876514948315968015788679899659331461957407965659867087385658998324248001398254960713690824666911811048741895658367702226054909702134146324730780657972765610922867656468192369686346232956363925316473007442515938433240005146280897524573821058756927961274932215342413234923431703197012547510100813959643753712887124126557315859373303072528457584218803166081299669728721126498813044407691283814164086811783873341044023098782350387184983537999014415228264908504912052492095432989154312130937485541587404493961989976935250397639326418002406490621437521398550267727005678852617251849718607392828376755393587356713058223963538303352522866048292723041164998506438011675891869007012495377748226703934518172113599695136455791241549298622755703506332268940542316599196579486844070825600453165730178823440935746339443360810555098189484963299766784980002436993789499496122454893221148351398513141057865489608973458521822743053673237890123388691553651452995376861820368656360973676434062137664423914089398564117547370885585893737277168120226803305173032295990265812023992645724273782507660250909141315543349176183849839801415055051328000809084405318605777111133592461372347027640612476574161916091318237166358718427099128692204319021602605124100189057317331206629900189001547865061905050870364363962717343133238482466783825002404059920530369653557653538574319278863078485014840087822552899354963409146105263470805805668936458382832434028772403354365042065881772497270869606120940442756135247403062971519680016260529271406737477022630543527045013213283158391493755849715381380950568604383760472463718109075955346452868901456076994969675815714929155957581319139353431399865648862240799076901583525972496613577044394520067123435740324687897322524187203827414514069792418637332474378219946738562541112024548153892138639388620456333495514317430473740590293452452109979156195298329774376042998769092479676943766730394636713767088853561720616797984352299873709771012813645750272905805934350914191918006608615412888748714200377477213796980397353898271372283205376611379019441051929718912016832667877686332778155008072853958000932643292251001190583656547181433051932679244619339655392306912778047521437323293852974061769057049036577763195198585374296770843993731211907438365981005694838491103435720005056566847760156090730768665049214957978907488332283513214210492302640943306246864758325832116208433386741774259552910071520079265119166637298072931561445725141346641359562934046737958081099963771979782862235433772726276058825494282232345457550599587021548159238849366128886771732422097159870438262329206020488592745179411733394744298610744555433527100524893051970614417775084160321168980513179449885184857266732755449220622807577310831433356225229899390465758592162538347232305832948416877239831333150858881961971153682204137004418593260329431585131371857695740508216720620409103315800071110749575854539073411345491932695962201405516778825925593627431398310440834724257942012902324501412135503468150458092668052213023507433559151157106023666975338055928125519219302719268580044096496603549486316491147334683187365287529025202924949041267483854161746102731838941128721958966967566327675926412407011379503971015436182798441814743717978492714136635649316639114189863165676843891839889696052126424435601887318725698360106852732898424019371377181899437679994641950549091972444596639114511506536466178240816701696698386307994251422788969815250766713373866247079705994983617412179590920174128344697890087786821539583252088464099970994060781450555757426184442989440918767793827830268620766227749670782384847676262206595171847555869831087131771115640585115044459268594358977509005728058099741342580385136949926768455540351460805367482650067003412976669317357796281693980726406930647953948451007436268406524159391219540614512102107006478185038365276401607327337868796361138758787282486869340646673655052979805430261543601195614738060513286349285511800758862815573301516824428076973925301448702178644816585577307522270441682407875997877426473632571207879596591873985265650368262250656074867590071536357618847978566479840190773792817382883897434014654658584015419798139973358227165956083451082576453550645617692561086254604857795996185032928231776882452163395872270815285555124398557611815787668593751519171297825577991046806997955529011800802516442888693633337907508280519945166012910554820389801882457708768744414379417929423894873097583567989105975747551880563553828142049645930741838222100336703192253613534888350266525221232152390316590659062868668951508395158315107195070100238426608588523613692437663085511532160393549701164331708553945969791260941614874981153259065374705511645621413384548808423733319937535617079009185928748085563708977206125110636396298165741166292336546485439651546718940816802166261470088106400943863206575144493269592393571373585247638323816153057867980934542735857065675985192629465977377304665375729028526190633567085523685469450824058065991201070569611265180652936851292856797654657020085493251519157019041958555677938861715423424165923189155204206028250724884415950122499663405463696290900426381689274686117302927131026596600939017928572077960904821949173196971830109283860199935379258580885655777154320746952813538944603229316927675092615853250009341515867675118620803799345351985636374328687919879428712755840430113247758570830843815811919271944804389367193156802785051899285853278000966352716220657662492300960546407178168057178742252945562037432031831221931147973886440531056355751921979186735871732000359268227854427958277100680478882400043246482686096681289408652424502535506519515847284250338806162716662962920068934500897667891878287406148635284393648998072751619306122016113178551843914592839332281168937248765376315177583510387848169266710372813944625544016089198979512154269811349628064145628723587896267550527605832791813094463340110784715359520775514657025846555437557752912386319478027719358026391893221693399397132853572127835932959498472599244942601096553180753759073410399767408517664249046785998202154660066803398046016405461755573610987050182554682509322160179038135095456674150886628606942953573775210607700682988791043108087619248623056542824552122348158168062735763093076977165971509132706017886654290209985474752509694152375211726585087247007929609323262866025080808924169433389808306981174090344947893861029148243498253292337351023969152715699010477642253546635842702117315416548883503598741297557816186315044246933753377321093219374064039891801102026705298748223323865189830744362730635015954160643769266893075329680027500545261653458552464159560720430818290284429453478427555610506402060045090142892911351064422812609980912819759180719997273752482220477428045761538088712916607430194065450262064678964819294091213211081820024067765492781884346931275361333750781589642412922547032686030386929043628103373277549336753728770187005275803123844719831820195429377799653282587446003320061190187721100609732436173305511654173703016128581797580454810616023119967864549149520875180256889082342069979766283758541503954225291309948750579727259623909338102265570546962544399815768172476670269287398051653835363974710569659448080896724712952224783733276947222189155405738488018252927504641231886547239958866215711375751904559401717245411077042168311196460063630670278284294877099074441676941872538045579437906356729111432389740166741465651047599115991350295238399484625555667066919931915845070764363268331609224537697033421194294024430530244710256799829539760362113996197709161590133149743449752685498264890506427613462147730080356939819061689044331662180829219218181131084974403180862006511921081828450945085893001681803223749753275798098904306060422122820197299082800593949183240363637143935239136956429304470543448390555989544067043636079107197526401420291888072815423947182445226069158351699049922769041447143493469230969577889285353011331850619879891090640661205350798768095566554024690271879613941986962944821147522497798734368087704185075568887636220142580493375730979171332523673200234755470109295464799017600491951504391702613353780450390996429892875303594363112757001740127110685339321357805348156282195040607503750713366834673270851228663866006100740128407711862298725590606501164893688301690389077308120760097242594088338747418003661829770707073297761951330822173002276283785448404941799246331242236094079527025842265792105241464960033248281723877692703695486214069828490674302883002810047440470286872210396516175241558876964085283380186770132280052776810410678256277247505470432587288938829430760242863281886243597101522385943181015509387812051645875180380051953618019841797044611249418839389130440885611369475753416420929758937453191569699977209947811763753846411416152331853096970103161392213587953144368962919227816374588742700583315587287965835059704355304870147072337539547251648915895598996982506089126897441962966958861169267169781542322343112230268257947354148612233509760241236008301044384693610077477653359320105970649067017797767818710450302751368328419044714533023646467095410332398449143574156586525661446621682116525430583905065288936536210461385511640342466868876610879979824511518048953783392918412562473431371450513367923073713451642170571049694553405568325372167840049758891008974864581227705887578879637850890656458315117885697258135736248412860814442252799263040293591668203439814593182786359272458229912855776708828092382104465856887489312948209430768749812034025315923748322434271084509653166112485578221727958955579245543360459687669888112682205735344160957719866618506235561429148022966621943254817226219450275323087167902484776840074076148866861585412382413997861476664478104843840026954227420844456833897010039168863136698938671048781821368234524536132433256926335586033170422971162303985050765189279793515970722827794371884711392869275707618519084943959475726277609844198117243535955249104011993605807836842488567482117081648147560094090429218004450765234302713842319179694858546351686332841652042698853357539872136221656664624837492114721464092202435356396454418699328276601960291464924748669842389215227913926130296319019248638653884350494828027998724089283867067951743081399229486571022705766992039946082491967268736876156523266751507831077357995060079121286283902248071926832063382649621891574686478989561787439621253686174270040475042580403266597377016011051405401451059129648231726557795201807996193999162605616747100593445878504204259344094992455118358476693472003555626600353492303224116967687990212771721943482291021486515854138034740736968502543828755827620796459659414076329763946528279580009181788610923822064797897584228814778859013961315289394703113660920086498711155566041735289087525760466507961424828986888256422880751510597007087949118818559921421988855490486500521350275451152894065110527751853386510310326632554336267819307080737755072118565696576854143899749229596532269431924100029842627060407121908957842073931413149867117650213836058065208932948377479225625499180750969334568808791922884118210032021796128370483271706202836865346860813194799241688606120214499983491137117952619351760753195316998503350523261620732014065631368074898127882192450388869573060806555174069503817167326804181287422063681031757351617815262359603060034929891473079507344663635486387266423657250747190949682647345817409749201134157780345870843012776847433504388068247105210815747307729654714261995576651924540736987732823233837327871334011617809822507885164805895187234813732690516232018630342699867751062594260378615013119907186475300666800374799054380123748735115335086815594179845657716954810991368691354912786400290448315999451116726130956138751703435685135333647191790866200016028028458890911163952136189866035758225715101141994928539350288016009498403241939471851713554577022579012618906139770687019166328208675937007510577408972907800385233275939145664514635531592347695202528765254050340514910143342074995545576407286414619425261544726345345257349889499729557110485106153199127430103398234081770670039549233562710947673923189770611681825307740757124779558696624788205682438284223113536232945676256120349636165075876208334022623729032817626529294296471009081227761590823026897110479534607048871038342083202727623530150897403868492970742177920926502775402336917501590643534821004907535223705094164833937314067288819237764009063901861915150607096831104023878375090318915532684213018517327455227805682100582537438044913041582075228088042998388522194399261885070283847409669833535762342412536570025654737216081946114870865912819742318901598454994534186049340500535886559279123183643790392250730102224074361863546437102470446858442028368582219565817566014289763232635783257020176605171396543185446425434393216954274683173918010737380513430494094625149478072056876306392523395821668418433089413265764031622294037614275024072697603904773971266874956323414831670423650715856106312876594534701831372387844813005083801846902953196964890476035164114789317382183216350447443960368531430399700580761816850925054206620583462665105088466149223264360629144882563609257736789966611210174619248683159944569990843039378562327077711453628355198397660752180152850980450752383506521426559701037394791546784662538247073316802982069870595486435718565625592769077487598453496572238671183239772852506904585137239530095181059731814912275501211449098942139567375187012632192481401372643826282281718171267352507822745233184569461153829900704319746756348268304246607406536175218279601475691772005189989990175730487378393374311480648810971981534888002412426348828712111516709785365561148983566994209325615295032295477077860423789485732516947385463763568596755551018138079422778850423937140182068123623222522220293828596317372613147217156147141906228170683323544485564503838726601716640393974956258432109475841719111691410595384714916768718914068490325363152963605149393820178893257911935739325125655631200747617789390805092964706616615717725309485543498803358055460621122976994864873147440992159437076965158871474135444451264218094807746930439600609677535533445673131839801382019029799467051505530467020712010200321342232159083386426933155583157239260285564476147411175656766750851039149834256445393963774488482122378111857654937166747180712958457273522867026911331848711982796483426475746534481652218026285546071121920400740498663805492908037409356580142879982797849607848759079536757090249039156285711695218749483157741845874226067598839413672669011028489180323765400789369066506518700296217975235661754152594303248302334374675838779548290642823739762054600525753992981182345749267323419245763225222994851285604291154643938129780049736385757617801462489183943019770665505599407705399753379003301070721015112298211932595246019623808906809612731076459273793632579646227051877061199506464458533384721428032545041453298314298069095178443163923132271052753227422854545644414557241308740644337298455235055227415040214954291919610170787307352774803485106404126510643146676757468563605602518277700000885079880090093739498849857358976827409305580531916751043825353271643097387499501729377529229948422994260876659878444126220254605453008770387511633666560123682736719957836576309670817178095248047221598487350586616768226283932559895816676286954876257237192518474032848867838105650873274542900758739062812230474470102395376547843198680246621309198465407095039052872125687025386471684827832020212205897458163988542432347822363114094412539601162848621470600022468166967565812180172713190991834575266054684653943234774571389716281469232893841426512790713134854390694224335158532048698066817544503098892467471523916531938368488478218814584273748311617273977412105576136983914095702066702560561627330183315370469141661567408643994885602661661818397020955443067752459897862462912599615981428766456458605488220007820214306569530868054074367582913164387051902638279590231679611590221301096946822331860418900461748225135223407952260104510042381360779889173527128191243340888866423927080546971891845482644659826893730460517542034904043533387284586748686935362753358071828014121358323647957028046467829302338763091204342938473378299471088818960747032492023037852432354320896007164325611488161314244271183991567537798854135867609338556065686618118961505405208132932014805712043325873497011407923557459917312740255565851005621580461363725305046503794372738744902410346416096173353224631133814352129525438136029916552271414166773568497537579529071105661993212215953386005177472895704340236285303392080391350858660181447018511940045278565110121490360643385316684638731490337316767259069420232792129537649617535445388231318168904593769736945708239795199347548491697376283057471967012897033846040138821097338529334856986943138314518248233613664321375343228575460958045010703949575268548249653894675634519736900629220986091881466661092178179763510255660714156556273056041166648155860770499622299635118722991819698282549409100782131339965584258235527804735636685081647850479516655305745114148616448956569171595894007915702636526917230444247623632791833819680177034622817008778421061493390332453861784316636224093008506896691941386495770677254687986025812185140943455354131177491781142993394858110686884144752853181575472768809002227713193573258000062695875394974553197729626420424975294557650832429068488921919607827583436572981745683288493161904818079428404280548393699925565373126581767663297406388890739155687551227149313882034546184962375616051716341879508011964290007128287248960436417492574582768253340844690403884815297149907047293575012655306470099804506388989395747553172019205398798756094416818046205200704257015998112434560295887603904896593978938158263369379185200558868214081232637124995132309100326014265213128708468481917578562203117430753275648620873132350815811712014757972058087113921983950130712697112351700465577068015670022379300088201402163022288887564820253091821529856816090753797765252808383994178773937267788552157687068515461600616306299326045362448097602343176408839625247382646833081273836176083350170738692740105200017179802299844409150364225623681174046617725169127693453229732076627446250960564812282122355517097686909725858159747622937551203854868821223936214943422445817222685575584910872436298795679635486967097286879949146975735228275606785060605124288886842402722983350522894181219673995450943550077811741107850047208384204846905055205332707821735780578912079158338317704814270094621808959776055567969677043223559259455304770268982229871375208390600242017379668722431912974183614274589469057168254615876037166233378797783550012933918512794509421855613966150108153151213516649485007214691220700157446106578425688671420520179859283619697336625266424957492187447588639352013077013397165080896932416931034336237147176599836666445254569727567157962866310429947977907245727906955404025777711220588588976224326616191253879911235722093020426302835488889795105205396496988381355734544176129241689737964020727644435531738412463749606151883449116145156472577768332938731499895148811238572884526356338796462721867627385731419270160544361468996619678101461860261966142605662631683494200005552004356754996576380353242315826001178776855608229020652320188760365514294194325490871907958288879287561878211061898459226100359109724394219817159443212989392477188946098624462973277635217113346211480489083971612056199251664212395190841966151100260124361132757949371134220773166528522962876251923186191257269704983413739991915481000908452426691403358302711109901131729397896244524175933470698602537166251352795604876140567720078742471569297222872460707665778516106412414098680210020064273674541421974966731473799003880221688871462506813041614895532056399662031930270832792096649342702791848912095966381720489247539155254205889994120018018118964502416290122923455489754732662772056694775498146287122415451568558491913809049748989956048977877064721272934774135583392310822408072576494561128121521906548327823848515322845862962732906396218476225869097033090170183305356167441574501906779953277736539168141801766252553512313182250338342032367595074145314477798392515694987896895098207227414942933186257891490781711409872935641254225480799296904708654986075814100309039417972830719072980181910340417966372308088323780174495650686604873656536896322781274175416032100754214968639442473605286740950042167025211374637049292622162203187039405841330078737280990652337987093120328549692818413108417234299303947420466138860501401828719257638153988943588763592451265527433748530465415858691370524374806365289276611753437921196984633839779432813154547742298993339339360161894742075617939884848321146907313649262077209694100483095033949955053741565147270201279949894317245777428722488568480273637966645777373871724930684021364050416283090890133482178807280086009774907197697231280565274134924591399472429242852604983910433804704378241392989415094702593299627545553558552200920900837983624771716600702717173030550030227022154322272722330638720705488683669632530965353692873791079419317029605061893251226307666787145220461756800901824723580487289620423478330637271358663766517092997686673232733636180903478885733002563409991898344304744772397965102903658901288913418237722353627213601872949696137542706425486574928285278250627752051850659271609513968866133811018987354854284189166487904531700305836206737483735918845272960424359025835942995890579963222272029340158462226661178279204639879542378345203644096970667251679141358149691000643357835371148716667301777785207848787762966347030660251086528855826203509184927680048463484133505648587810774433642485391232823806550992042680334003538871159929347848427026863922178974367827560063990492445778829508590182682766553934677826856430267418474036632742949694455222953673799978797119465356314139244487443534001387039697289392117341553421578198483030411965093896297446526420246253255876804491393372231086587500820638597567172797441448565490125119131877387275888443428343704660373612827139461331155012974351148160399796917900623578351779213449827787301654060863299895901230135666210355271530481110207854381091401028202818591376753199133707956187753704164221639429977841911746111896591412069748848435167087356574467768733244409834684721890448339187733127103342803888978240806834625204296341667865864565249562051312405121579042545338925247138980777329045376480948956971440164033599946411863244651795105035651010930407866966153929096849250909705578833947610350063769450170832686156958862244932364436278775738435534178374252024077524086498694933885104400581393364305656856682558782241999740920833979123759450211698986698923349494186438550035761730563265820883381733121759753245557076475327164088271835041702975353313767253624531169804448495227384030149859828707012437666206954427211307648285912440084444795920120946434175491016693986892255527403902450839927866259069083444385230694834573022362573121694282305198412387433778439101797403103406314973310482748542102612758957976318782362895501031002919267318659761094628426386057914677132394687014788584218419323462141174103717615069377196226192217937547319201459277579760762024766464350822280605244197708893830170064930787852758175826296088689997887510183452603161204933864284119005512734020550953348823279917019801052576666684700878327615077681316343931461345722646649130956273506779754868938666721255507236496390255686674222068629546541900902287084983820679346601628937373979810869220755200405318937840179331553848949580151964854136414509599488067502704715149760518676751233132106769506210577800804965933081769555348710615506876634452484396697368311446447378425256969422681070595340055945402035246967858819448201543086401337918581573635178609411481192486067290126680861413115223877091732998621358122157268989292268771037739818154793905946043350961373518793091771304635225653790609652317540261288547607855839060032574296225055235241647414735157945387003138464477635223292620571672464202736176970090148896334066637424579015466638751099957597436195259585702118438593303475778646439490321385849078655720632744338300204595278370166677478379533774955892348118523991796277236382470625394757780311190859444295985089738006015031257369348375729694169956350309388834561105618713222501761265041399587209765622565934195590646925469664173979236100913268913956110376070948062282471935530481893942424331029790586029058473527339095856396179295955388181457538124115420047190259646463971337018567182823025619601879001239201696945546270157873424733233416691331683554837993598128677148042144633477836376483575634450439708050851064744017281358619533030082573877020332232860518440892998403983286299854149208133380583748964422421752994320275944717168835130472485355790507777305760609022230796945000091481093943846073320835491919973743522736164392086768362106774486076517357630258329447482868698258538206527915000142530375522511135679126880179130568326256076151075388179855072656229853380395399543594702617158725107609209629190498297957163467877588533535437166493670998075782522414117461464147573568049992331307909926565348010837679354033268935826686545050075157223326857461820594197884863056442325471212389696980454184519311782628295640132303098059613984628800445491071383405462263392427991455791590791029428314038076314438849951551533882816801699415537512800639047868568096461663720106138844616684188800050374014154502357290103079184750279438867865432435551798761579018972880080223861179877298698035322496559816455090816631313440484157714980304532072337717109477514972331821872361587177726449889963789527249638421001768142122479671797371089373312798725744772337000238125258169432172604607281958006247629015157805254993406107807298025488836450955747859803484820256154084639100667461859548737675586280634590570096436405717859146910866120842178266124065565480277289957937096196836794629775427436074737208586484902238481506214539000452852531764853065689021130681339557258854234081933330670705571353320446237461232357887262683245071513485017371333838551878272100519269070463102891921802458730281202854767609246689807857151705260477814469891216015377656130282746994401406931711045094054348191861433720553754687629095261727357138925819307042327835204329697007656795790768593994625826957573849388967705419379768730236532050171776023623578831396187038724112261256100968591605808601393793095409440820953341380143239008379146540739848102024056803003002650991602946260608302745666830432688642102161843757562775376705862510499540971087065855566956240390774536230044393832350489399635012637404836040248204329062856949844053574062000111496336715260106852115685374021460214226903401121984116620146451429450895489545012684876082992263037990844456409733265431564691530566520526727745880145084256916460795638657411102464350911040274900469655492184343107085827478286351560344083554396261726934616900646925064980458759350375633153520801635933233327463151118140708625746239527847229134136592869269124610869341346524157482169146124146935389184635694135305488458735409295209638583633207661632513398715969355577638673578862999328370156636364259435757477981902952429580405680156127769644295352346857731830139625463378581886251569245604390504699989189354809621054845711299071107532358092336177468782124195720639658193359677044086949141697941747535659418352121537623674159762965252737738625155073220582961020028753686365302485226929326786084348867957535994468711081490090682187542965480401311810961377269323420126018488812775312984067673904030181624832270045629693813894524632066557882401147174425452966391255807445731747913496442348948571519300209701220601288018317974297625036123018186534987013273740556334546157134030558545927203174852702691397649229170995785427844602819841996577539097941009355929515997157786989455254509756297500107341238224459839066292312742381171663635348909325175809234887833885802610485860562126831416161176367235463127632699151585871540438955710076293991873139501859816071597343035623738786015053908459521153514019361686971593975314384805603606541649088872510689920418314311480260762662941526701146315496062105336356805995930858735114716266081177348706580080666303679207446673590964420400596091651921818706705539337566211113428215961403972633291629974908697426360475085099496520088084335961336099920643979565126995446769553817531475026687522892184677283820467697914146141208533247532512563178181692765756936037218552445669388647779241228523155664338433441298474329536806221336124606960359216149776623777890930912215127477743771748520968545310662309822599665889604250798130845105210513529157357851146674274025994100692619332836532732138787066575429571858391100463526079423213271664054311451815154910497729812216253257330945966876095529151284336526947288348408623908499035616048704354468033631479208113671744882809803856381331301668031642261149625289231739966675984466127362844765427856002812929371551276863133099098870558957119188466570595346015682580680917315068259063902795390223109127472929418768330421505040262521337477703252672916935450551527499447424146985947854245029461225056561931501402985746020208840215961521440848861461794152079487526030959490560911101819889170272329864354527914576636309116305693765136735494076410614606345970878097582534249763872497844266351939465837995686092479933885787601697173794697412898900465388703685198278637849279572005766904766017948717278766956295882283921790904941596107822808865331302906770430692446666237149854444912507514500722444742537736178504201462843381698925749347457122081303341482322866445878808354610590105693961950444197441957521638239755194002265986849437569582774143904210789032371906019450417778128325936110957751427135694764087925536637223176504370455372878663593667180837414687108537976165806812859405010536053222423500060459145879299917789717109970280871408940266982024819237531438193266285456773024209192928330320926727354823543630866463935777251525715276095900681999954938485461661877133918592361027650270904633918298265042237561653945029306560111669975301432398025468823944460224929449398082852856676528421055856865063458190011179796883142257674375105704602500308623240903377512472701967574558104024429977805177343437582295281846628123238100194845837745666135183389903446486848258509663079439197370346950464521880662064741105718122510090853923046488931465554322890712189317127299638570363162616440411094459821969349180785430813182145779631678673573532240842073775179395037413748719664674656052981698694403801222557698983265956444336551956723229230688796337462465465478293161320130357249011875732327238660671190192411509382546322143636814392161652156451531552734495406850088343626981084910670076034666130041210964561505798200050779605901800532060436038608366407840256601388989152830557288543444702730574705667536147206551771071568440852320291654195500991343317259257155118793857962646143538089957881970731653140683232949118253385306627532520600360530919658883333612417781207848190347940490152500592843629163797045878617604531379912862749388728298134837389969535581500236874805586794610769333391905515448677565475862312093958685811755771417703356755670812530109229664012613508307024510486641514414860033014777463333082282244711932143645287318277829639907556951612892523148059014184740694753662404733626874890279149492190053342662558198584735812181630227623276541794379033203171006184051162861960962271870072529274248509286166945784042569389844102298436060934331913125488875737229627120201775336603881406803209542529950252191952305259011648099713071426868360092599676669075228606719990783923994807022237974950460581928103403095443443417717672910917560527757457712662761673795287297662075186165784377176548556409486517633329515591062562764093482432037889193264574851656063807783388308188518979486439434388699599504165874251372110595625480136640231609871312607558910948890603311427417724237800156088561312541807875574327416454957146429163094530492258509823356428001970858325534842612719406469861251779091155948778432114391549708713073204897939833767508808480823815224735001877023839142603765296991737576791717267212219583934623172100819683148067379732717605834713869314538417079322123611011233510368854237765708760292870794464088368566862822519981214617254371869999200231137506532354265366877909890026175489822636817659112424845076093824788577726874205101881644469725734976045636742973812972338026291533480167737294718262726695705715707884410838119254806661402965268950190417660415516869366065061906495019787132917750013037632770177909307202840789058810162621754621451784507818824431693040260976058314535437037131171376413933286224474833975316579584512349205312867226196290297135193551688679129630746537747782002337429177246431745025608769844458015976550374354159055879993956431754197042388851025324309482974366803813703498899372034402090087980283854105041624570535215045368714419334384111467805470420130802324059947017782789160568044903751021614365255748693368525118559173224938721264653355048747954814763616415953044738811426439885644412263288221618795028596215324164274381186971332534131100561231382205891369253527337168295022453701081181117306097997562225808151782655337527080207019323236248123325899506934286874782646495866355691432107997291593553485577470310774579483686080688302821921954304895456985802704882446311581132120666689488860419317249568195965411650495731031478153571526107622372343499358538405729716258251907079919229008768805961606009239873341129521204862667983862615866490770241552335996693194394401113030893942691839397791145925879580757614273045059591305565441271647260433801036800819682133981324201323573679903860741968890408753837707619146917695116542124889040685571863172178679777365151050883520828992151156325863531970174291081360351504337695366021640947365276363126419250857991993521236433403761747810044466422921173697154463548192258137378519564303508185124874218970808755389537318955806653603286420171318978374716232499340453942319621908732273971198804484711209150741659207925594937579532494342966932787797321379596135626347710997273914473811518811767236736399567392331069346453299828779330942277694460869759729226441980908381373573398652429660679890400553826127030067171732520445804670581640614759494189266378259012027681304611461440205687528236201148043863399893289671410182635093328584148534862694604274909774353073641416301436870119862323039215553629685378037508574859494836245766425083787312978922952428499595828724625404272638845666447654722737685059184371721624876047298188836675367872255326030436869074050814757421828034932372652333104450797068671766430836989163503815243917654969869555658193011982549126785327135315930824747889595186716519772043681438688847971901792023684922544334396270008953752848524174463581467030500094111958616394412833827949886979077114734480226486041508050985991811991766381156799064953314678900577656094918146724315875605159320843267258339565378958876670006149695438285911512897116269218428408939516025075576766341861684099940131564325768687098942867937228670197456036226661179751011256201038544108155206457104751190431919472409444145781437554983390366719111210168718974508651345387210220811005096704839678101682132250866836377616378613735227211209856323747068308393273874399575420126682438423154180904337160307154987401857244886912718423129137996153017666572271538290444001471167321340878946819811559413416684423302804603132798887435728896374500308492958669070545664392004769443312183956865735200877048348523920694338488807092927612321908892683477889697643336665477496042763561835744508218434377082228292775552716741253715330580826786757195248598998158910613970063265602604547014727297158385169382841510543776399231668193750723767651406674796775938089887861063860902313236210751081756495563750428578832562941354017848391383415122875726188641792624594951466157067724552201075712435175549011450303506102909665515791064852510565067977252084666518001674704061352204566976285164670751153228302951919999731192088238290350175317822502943033617392066819238990296360436086056601800147515508706729002833151686964816534200323049302454095881770094675945185798904547395911340180875100466670178569819385580460888496876604661995404643061497259148042785197028916253874271920779533414400285921488321070947630424869740195973537950659722613220331004706154183929190311356950588773646426552908702764497672626413205109437331802375615246947652288781240301751474922653325190667955875673688941988040981054172544638372005582331114707755075265468520635171394925206017940462144309473003653397368527136440658505771878121623050116459214872275587017483295855153765610545510198572917002945955111762086242654593442921160840063967372856767804572617800720725519548010551111510743205149559164103344687151667731404107983012458549217799962612281647692066242343353166723601722078798805761687853340640550558099212702403880024999165641127377500368537052353927964821980839191494480812867886211766326404272314825065331905118335403766417422004600134196277171016292285840694365903812124332346364823762694480926174299763752035561769163170964551513141159835313617879723115631731483815563216497010262109268097647726383718726561173456889526182941754110478215497948486687984391877070769418222130623544031943969447358922522293839708667294185944979343952297743423366774849747429220308253807175218627472176613679515463556192986769286603853370129218171770754344819595618834879543222783421164538718512792417349576559848949706658640940976280000446355784097293140293240179919300674406809398978669739651218994799220921307341641726517926817531565808151232298496702833247134879404868730359912175240291248181686726567744726100868756251541971841888675301139444121885187576357908662037793932436657805288970547981946334683309822206830953537624675696253987420515522573754730431145120097590841241906249506818305997689373880598206866128086313769052632268895424870443305350199688708695116468438644493786924422472680443384815920009676076670605424067805549359022675640422717063442868735097840299845577633327596702704952167654117661463082055103841027890150580300711359188996562386234614570066978122707401030146683320989053062840746145266899677848146475149613560099851135352787382088734217343858869764768254223626672258018541210671595714274100207745800451418742568815244131125856779165977612354096286998453236399308560518209815417358430370933021521042942331428354386180065048025750941570307764486296795187362435345186991883823463165589255766574406938388270695465062740549315717755438110952416797671150628147659403926912832445767054088534336445417458202741764627200445312240373254025765360632717079999388113764065382680618011117735303045116641224554803986103398022049124517057566394326030063875961225091424231774381150995422559236920172672735767521169883057301792581084883582513900888525269813489717024459176338110419912337337747694916431123118256303197712606668775268271291916778218274774558810449605350690290199736128675246280628974285966806781601282357691598394639867135521285971699507932606013686506570013119825742018561462678739056460752354195564185192652418079992295914132511613839460836901218748968913748836116073716397469972511163329323357620205688725305882574831364189735301765907424291472080932753974645488472896309249040029075282788889528499163384538707049858974321674499022393705220041198695732276753100570040244252660896887188729642512573673444809858123124889539382698292203567253842371587242203120677378157395443917090143648753361681349772240308453936492403958964706193868480952404097549586886698666973371264374509235263205717733717164433295841830010941588966359303115935239947059118749300586963459579590148919137086636571627293732482087494360143837168982949193077110637912750255098356598248829465485786267780844594113367715196224428383642584822217491068182760434049880037332826394233932480616533442240911814919500806236835754048409000855299364919025997219151206424935080213672786180957139998804216223943677409014028497469190017755959763144947099612153278136091048005387413323465597327014109957722814843418123227023351577412127013005495733794053012147222816068810517458883763695363844586366977854328290327916773353089397096046912269875909408904329989048883489399758765407936575186808503892551424102656524830645297142921808687425835401885619265756553124951665051080981078008476057105095258009252754182144118164175888453959916816483710760608569873323352577521723731897449409924360882616911051593814547709032794412237798804938999699607475314542727171932329500497722203046466303865590761276992799437823828410487024900313640478753769301204030969236954512791005670533821472225289273035299190482748251398264255943235959829691781903951572897820049985934237278168158163524434908914557432723848575716000837436694122652163802139236719976163462253425868679641388421814649830210375029444104951066585450906442765935707545185013019458589991471767791786721058351377750611348217841581951825666287362421836871497158837489038319424775546938579276517866523419085106548784259123112948338520145835101892401596051714425160531646165527635477076002910344644681572614959518809607848291573384198109126225610334868752166476945436642352294509919541996223299202511813529772006328099915291237825014636001669684021408999208333577705255200866783922918999303086093714948413047149267964302965356822611997696023584061437032246234559694976660858805996863773423188883258697285253705763990135862669455974732062862230539635319206189785132088309320426979585630256690314811622815565386040834609565345939977645114692673946493239880147881304913478960964871189793622457844838336678862579238335265692635952686309697333607843081173553023527384827042174966164521803281223819623524556007594357715364391720685966251198586006639183494077051290140759999702987762476052947080853613764420878252420464705686761735690383689794740175615884884725774499461320908697465262077004705129591777064039620883906435319392517322325444217669795536682618254865618358167195916587567040836003696038010439942903728090056490741552692155020882094792225891753152770747920915740357781570625203349347839124311543109209600705713833052415928630453139564681336320899818190941485781755084729153827098185779329803589641143415047311762243950985468989828586018206229914343286450151070866535343687292323844208887528620253166176424795240900771454803873265539034006231040936123262243020872209576105579000193833162437487862467283762607584867324769870142012310462281912101026436719756583890020054747192792976698692179983822921749541925885802462372545589143403905769061155084052843639492752286337779007653136486275606162416766013059620342854338976778072506808924449709443230027175743144162300741719501025433156014984288250491860426480852291673051165514244193930232566954361777515956206854901936190581086791211703675639987861775390341831716265263943837619989734879354988779819327157869008252092467602686657742037181323244730327971064545952976058250311046366041713074070812209383359773135321161707230603268029514864135075178860665794094078301982275637749665419234180782806524449049409814748339227649094792936594543159282669768945146730399473932631471643700601464354231488854350362746140580673583829033732055699987966656086890166046364251671831881982989808258195098652167655773980322494347215164281652926148655780173957981308056560812257540874342998566420768315211096995035724343083733803095571754817759296177345325729812488060420053537196667012144378445967201984360482762792867560144221798860212888419519994577344287933795086119446628003118633322569076585859762347675432922535441208397818000444773372407717680839354640144773424437941051844488545176516875736389403046095701429069506816679346610431030581939831302988586263310700255687309461994591337536665664690470050955023345387056835121768140665545349711098223813850265596216129382455262506864652286922152545850884919755185792294973131071922588658837816356432038597374755723384156363816022850745804490965031818801787159140667268127683652111493197492334269880313749761181163407012070921116543230087490121656718464858748152201494886179771896328402916038655044722698464869210112506871496712934984141114530385392231572134617534464997181299557248803545671667128840372687457333968461178714606026827463779932333193575106961052721704434089998911560745757779116147100613837181347629467538675174193101613001259030399450188725458468640012835915555990189561692721471819746096781959098920625993617568764318493954104467014988841623024985984018756387022372133708289133606505986612752485483722845748740129261253435874445990071853422560066306740867910587697427363037164978715193413830547505319989123839956874945702513129174417369152929576701755713072540613992525121939125264791818904029966759388206514269426063739839090474382090268127223661123907509708415712798776817672035546074473858454459327128531589775736421402406252130987291568339672756868903370503305556654469776565309016919603239052468308729288441415319353969572002962169232119984250034679261267210868992846730818747265179779378929859710924174379133187742172789118859562703644845217044402682884548143410635670643108569532804198648341500990780658014080116544475804876749181093840804244571256995903195548425762540192804818001420392609071100179005177300239070403838826153703459550500064889694903913604647772216854125889716488425576146151032306796942293687765876434314836026419811537244805274751324211928046371924347242928118394180865461875782963693457239246979881202739700774751444702779877465601944611100014219449872999671096275910246602267887420863449815082172960650868932441329500396646096233971974402114826301547600648981493459970937235203575390242096822812764051035712996934492803194263677099848906890029678182382796295231783364667296381434057721505329973604448451013173255720111279309259768842270823557417202069251745386021945717824067882590570578191946183625808069479683328576096839306549168459871918140338829327460015146829301721796554285927147181606205065004991983109910009920399947888303076623800922028725934550708741402212526224446100162954214837232424419435962792386015287587985368198651745142844351073057373375081482988136095682716591407145046139651873182742929393017811495076367230265301295670758399594646350159571514331830253902591466771849673978234821196004461892380998395118201467597608428323416001591258530018927583760685963684661100076515429794006719566642233621104686049799977283686982178388095434632812534991342595119838958359210733950833125540779632383099671352705312197576027017335489917996184350553995638430494460056345657486127415808996681017714683830315935245722451975825612399873210817264021292653127749175871536580152729661823331619825891282326795540686150495310527255693599004097315279865446792420868191165633064031875939929675876835294313288173722698250566849548232558395373704908580058364455047731484396142068436363469396939013290243248779097008530797003060759001467923222782038387549084669125031742682784226028829134638639665383388210309309376632147709551544356794133585469309076664230317642407625752077259498019289692953250555280787302595169426343589327148645796461066081742650452254117229763617265995239087873299772381950771174382156013702314359391932537392580666981739108768647616732190073146955931502421254245863947036322831953801476581062943979475091813069735285246004709992256728544666175437873285481148359538140360718204130530701515780625211390086022392288009481493346397696735962413322360267161604119794584695943052448055330709591515521278887217683390434659699533879098205536378408273196052586077207948197312618261568532480583808845070866923264469747288647345062667180233879248448562101427193549952793345882397203576044872719876152005178726390336416649839144636111215760028532482695956814365902476305828257040247324348438269555141213870802410297290422105615486903342693188990741422011991640125347277338230878345547981269038244596352834494379470397310173007688836777443766108516091112612192749836553152982202386362923461999904252159707462325739415258169539533150234590656623057744812195639634929558639489208471372334547439109617704431255100942933282868469260158641582691376523383646590081229318664962573350948731410220768013135855495817272105616517136485604447545094046477654724702973343015262356564999525817287784208885693197781564012808946618953653600518187525740681414278405429273552609944519752275877768642907564683442942885174888508410323981231903540408516509309105303174309133872751535783822118392408052852287839700057841536187117238294801677567108006848879237515136938817495720353026272995322328197661464414876847873793904713441047047840920220090974392255831579988822376176038515683828458533119117364074480238768660677656500379227032895939456597925262467013112740190662455036324311060406931382609085843303591286732771122748924119281483585704161455436848427576741512408932294416995050327787183369616733660304126231406195765184463680304973057279612944236713670094544769697065406219724469559892074751955708740113089443959364055143563443719247686222434093432136810465286286056305024309959116533053325404810326496984124677068901295237909761214233224049050587125445810966022461082647585241339877957246404133226398260450826083140368899544817778046710437805484226984910329650597244516484091201459296789244112533607275027014657105357770296686642850088660037994693815042157403886152118703158109270504289277957695415762065434944102249751891344636519652101990046905235754555434389532595457536769805116760487261346016067379733646449514071912556854056244352030992058159346746465698072429184371394248999494410051662561639602815321580801365358114350541681364986290636148299985672670869427715352700725756639942722088928053619868124385453770507246743240558779294002936307676592151564199086754068930997832359601820549101069461151753824092800073766917003571332027467596407166028725636059836467519252183667861710852713201014336389965984363354242573895006813282009395697689102267841996844943643432399253323573761298971978490322863215553940286918450328238513784050467607326883969421296807909220842940410274188319746932945291287922428730765573830921519525636099139685410431245630428953966160497264024283384589985320958968634219712706524692782883507451649417904878707549101594636901185672949253533575830098152242256877232462838267284539976948379465270976817509858737154565869181545844451299264944463746509574979341033626919022942844741567452068821099082127343986809556206174699746621199780838097745749295942136799384344524989184658417481978241075645114258692386245720931200828803202061948652559282388775169462916809031924784961349201829322409773796989474982266934754475120355483307074351714201807774501338732701303993916697549506233838522074141154656172203654550500924096722796785758153191754696542277592479377095372229674457211430911476857241843169106734321112441594398436750761623490457546051044381190019407917015160732972961889466377486988878618109523248521100189314581671342623419789320232098747561939968018576102912918884885648007610045500223002602470121536912776543284694371749724878979996410765403860043510840544581345512218488237624149004689241335388949090861732749229416537388605338052916086981942254696770335815937263797757509330420461219766357997033839457520713202236650938513049030057298742368032093300892915040254871821998021273651513117000515946583954149885998654726347647356880146187216356358563872302251664681227879368325595683046258900530167968999834108038212264969382719842113663495981323013390992623817349329201183131528548563579634032337173937691618651825597230348117137115427969218926800506566872600731869686825496519465715697708075161139449314968403250698073345022630869665325926857753790524682436040606495448691304951886625699121079879334720810932080059437679751428863210073818447681284897546327888205338858793710465457855290206633792599390178891893860384412284829915964691166920581527063272733913730777264054743688318422703638114186891885586562902767980033905817328581926942544210574093256568687416611346690889003213258586683783841850974953497169923719011307522170876109127711118274593294337326131012433900725416115587461294445997816986967011390762289156802200367544132547447018666593930782470389048176647318454646307256210092599746061392746162448007615630859259959073130917596775080830952236978949477789130478187573463466397293402414222026246018338013172658284290634200647787170688377268084981162692199132642181620753004389407676954275543031431861105985151878448976174200332239579247301311159824393839377778164858093691943169921746175635197173430131902051212797593570564310031344529945054998632547439827349956419717296366790609906378631796943829813544709839035424820365023207516512945719536216640643988565072126560452982696807839470718251101084236041069715312867542321676168426243201213173937831951601216242512083975554401006860200953393918262640865389107094650828146771308375944931991038575059526283347160368573795504506194496878468786674697764732733571536434918161334710657221797063307275291336652152388635270043841688470969885279061673357437439547324392849458720446950557744931666255651860675726092993006039531886949586733906187504361691733051364135013859745565899247340467679915321609099678490042729406057651331764362243684988314363688173836781374797378570718864870241725957818899295241287228182511937605288978711290180906130074539546803218842762522113087587972530018322504245719657652948522880570522491087244452822446616696169710050343460188000190938536240603323402764326900925670967332945612199123714270225366404985597343474212540678640749882856350957438590821756468518290007690990488342980912866041463205169854652055412258114857642925546271903066644808176879183881230106636772508179556439992991228383254353519875496929208013444338583265965735830999470870156218981750983421925403617108315061667850567362680659051465294122613671747612232496034161335841395678438846321507553467617070727908559669239810855103732560317627370738160311629739123388312486710620563853370863882044679234285138860968154161632729784043291983662543056111006976948363736035744855917430363665640185123474721815076293775651837593325604838954629239524663118803448000928636308112583121389776657510447301673603786794462554068951104972825366001651532540658005722061910434343374214615712640356058808392432674117601155964463781290538683395205984443021487210211056476083581400310032947582529779990895474240930200813624817586306708617543883430656407687946617652699882797642498863716354302663802547638712354009760221190276667904767907624987378221096291194212953663533153057353431276126201635670439034335115205416261446442790478912885394817631826380648675523061442170120166344303186672027507000500150333932632186714957186986218897825850655540343566643452619191193221654437941222830625697928411650061332575612740950129179849253746230616427948183318133491236492245075486641272596252627317110923093489322437991214357380527744113459625002480779939951531805773831902369476252284120296152326679029718695134995172955693341705039442482897443125219435892529716084931002234135183602103545189256630863494098853194627578414012694733759204617595475058454173383135069032051391649723635383912848448160126953083425786230186806731450988093186292075521440610457232908405236851670246357661667395345869942261021417443359545292302743108198553342348363912356888007756135653418582444051892338758484900886478588959186938040543043281468489275943302382930359151503151988281436935866232020321019313552051361073660776251900370963546420510927616657399874168537080834989855398010594235940730634111014613837316094111340737646538189082461422080222952518032916786399197607841626328708491087368443195685305272503761157674360582837355069670229152205032624594421814452415575661746781595620533757472439537360062692251619056948491727918475928842906352852156483093592439126795137319061636257343704123081673529034354797051207294872177546695828203207523534261399884722728448585621603616477972947255574376130772797150663706753616137800671458195532745183728066919817153381357947529236760316002781769839992963020599591497296069784447976495571420522350615282764224624547179018337917581122054796786711744179685544057103986088982428862094661021371417455228108486702310383526031580419236884759667038189485895616336365501596377732617851352693388814525632601886178825425087726218664660702621425849069859180083239522937547199918834357228245409385978979178286402181928246858626536843493260511106327033611785450437910937180229511706347033348537601257102278562952878613551840404894162308678756662328479757237716946906629610755828612972982602308632949527460703472865853751786804489376262550549091845838631776614461915506833315691944844582433943436088766573423031091679154807402054664227422899977155191220370165729285093105478926616651998755115054171207722766872995936246874645709282208462190039325007791237168070549074585240728661231420374956805602669553125028847691175394109189318163759244857263677899347113174868408977038550770723490533756106268418800352352118382792997832132059421932888997168028665122614355279743447886987448003731200781222683940529019216301549461440277980738446971928533517346857090430696079188550169734134952822187957284332945440037290998995750629975493429053885280090180043494410200707136309344192424183058081241895987105347020275922895679292879644628160765081132325133416432492756863423555921441368172820991320084633829826038031653106057819452831805488134328949897648533183620640907519681598543524242877053996479314542106676691209597257273300556756182612167580295498310438111276623131429839741240904734762216457185843704583181469786945655092048857895277187100861697780991681699555599186442081194333195491613347898989643940989368708316875430761415747719333951153383533322266162370602418618164672495241970742388315902116205785144589448891884730642574369384320783566769519635378652428178932138836055950335072263389233904526538075614488708723556313627352531032636580360622895190697565302037262446324475081063281715389549930156137653305911321403360124927012946313542274835905127254604770044104674542355458624161206707915448370134460881707771521548782463466770512692898492271987929501353159644850843081575013090851985923549417932779763903934872550711678444217745646683361481214413550468563020872354853754581151125310792411954425086459977575227245824829353990128287063882732156506587263273715846517901124808367038519277585649943045743651398974508088934775339404733736210055129754284690800843445782146146446735455494827802866689771839890025414145831028113665940964721110386736096510644207432752456769768565619327623289478752157900471131101028240301381703069103619845015711381661970006905440224048284839983911614537278081899332383927002295116865570655675470070385444685459289222567726000080766290116174496463209544824677673917231523776755111599606234758554749674688455492252869195909546793478653947629872585957688905374543543499895194478148178075348267268079970501078221532640105499728784908802066163895550935161698840766571440219604517231647868650565268834273406177816211849868828546678809171640190119729059714022930707598008004050341438903211292325572702223045803149920553352409503033915783551201042774383065585858049862065667677569879605014325631292005353059574890876240663282442017851967605582498415041778934827690627031195823279899038032113451152495478448682815714272521828791044628157055485280992398917165566738505584009712275087624060464733426541571995020966647014814909758372327698598736519971807034702062406034807866188872215428474223077371371523382658252779139319303558239561544509710313350101143549535859277703799134841219530980288501972846979418212159007827268343073448893698392607637151017277008113026498720927354921112176231008462917498244868843701687910136221206933876298194199775990475563846644948386542616974649803225548221001219918048525658971481617056216817384744343570945647087356098755741733965875001073489852649627542815382722871816810725853353296378556358700874619872757617128685137361059877946784602570387136581191934818003142830156312292205324320765207989237852299540265953533169548236037823279648918846418353039115284466946631300343309935755368970831070439792860811724485922340167550484827799515568736882932134190992902008026002571244488251676834421669994199930995009816559608128286651987414140244616178433950481225438441102382060040655092160073182419165173952084927738836705859225648304361995303772488713834789789910014319324793164792389514361881783850327795918694812430502267113110263631971484239524649006409023889122646877256226337905459543954863030459901104618917104613638608354671788788536977884681028798463384784496869179319147520822649850417052143132239169089169394629073976613824375842177127485921169372914389429045605922287382956552614000773265296103554730287151418382912116218360939007025993444304402573688429920197057101185576999171943630118793305414017687592717127487180411247286288577922993008771002170041803511744321649994142031383371634925995302859277577238564493035376160004817158861600971369574886584845092302592979138848069070943302743693744235525415070148210011120980238926396642399446662821219030989469641713391756255544938943470460398046518765539754806780957287355799249317184487623524348427827409039539236001579884191901086330067189688277308840250997039507750928861504027440095291056622312022518649132340453562483675827036368381258799134314440491199777850915486618656981418670368364660144524495600461591770791998653671393775464395338181372069611452711016396366237775854437222322238866650410596529879536250418521299719160742637481712261017420876304324369128633444756403915177471656324689768666577208878389958684288343378354351366738341229101158091757581979751670831964786574664336542520654588948315929053359243033882804154065629529022794537129993760912968565953040964083072500410553296339777139051849855841938273355773630229591673401444372039432721182768788758627337231994752468656809991765017277621600313438495538070382284008811842917298447493750202710821099451467908553470487144997215445510363392095138007141912360236273166359356598765049470083625026600976893472813137569697024306841122708061298564187131578074238097731290534751920244694549020913630713818893361700550645628137995626709411138447006419113676011668632263454948758944897446102104157004674931113718346797966121383273810171030087877254290370569994377688619398631287764541647617859930228262313237855172691614512539664103678199363481998160398310577961036831538821976137723813591496896786917041736682709885261097316949397562111691084774821867099744310369956218665005794771799693096893796245034486422081647292318805490861540434680816716104759783797634803322223945104071604769272371257281753145151758054056639143623530123298839986089714096282363888599262325558583859945219420498358054353178843461882455900129791585527818195446997534370153956851303858816197563097374619907638162999952662387328457770658689748648039698306549099837832129100516710591639572068003394782955745622544129002784622139064251363965318716543449445060925977169371483830920254241981410389053601008088452252539273837114859964004053312651171206571224258627420836713501794031938826190621951427207224961441206094081661908370761808110067193958945275915889002546166613228721432162631600980776669174056716225964575343814665780274599398721263110823813072120557887311732649486425447049640387470587218302482332016731279921835796799745567712748202214516072418367396588830083961117725912371514246433797013405950010394709892156686181616178699874702768139547989384599131257091268689226649460992008676598116882535115726320079680460899921800992400557661943247426827007683559028701157428100882108093861305602198102529691765917914334224498135846796193383149812554438499303103643987410411104076408295075947258139415638983627963682493615117237235941427947672804299666251351124490435749051265315688096102331182993230268872275413233360749745190732083308556228456347732670810718689491312596260749815611808102906320237204132709806793045250623947555214936331456290656936399883239776631219746577053503616256880893771031275721828792151692991666571296913546688144564258910112639969873046637685856313277586913734753409976870972982349505399116300594840490308640675451669293151160120901809682150374285040486090730842872784566099559929629025102618083855747058371073501643319247813895504459241587752770357599977236009005893925862945814964060255612229434210827775242349909982710606924017212623666370416171699788469456790754906845800505548870446183903939623508603326994544997521119186703715876159475848008146245259019888368013259382089262597251979161442827296302975032302612623584369471322066996550918052658814024503227311904357987277833356809706008469247886485508159903648512227029170394097248158404570433114911222824497757848469952829256513517942288649972947040388427865924692260566677073122262836782324526911045389976094253499892719263641175523593401152029001187071340574091187363785593808910196918595049613168382385453435597915105245908371085984793444640936030526375057475831354682433149452871865090670586124402989974817956421906555382239297844942934671950162521176593765483622129698341646253084588180154088974344919386457757302023106521355897674053933442901540131916601202894899743171733680592233963124792261799366346731521469809299197969977543217558420775437879036708725734697944954949048849949896825214448959298604991955587107696624655596370535149207348374404068574749456369250612281621193470501147527990004150800922523235137953094999491627016159002188234007160497121075630894845945151579830399883084950848324078564802015273156297072252538898691584560792045965319043005667842804314076070801866070116750336513848706468345210610001092178115973331076968234325722060717438488963320499595416651645680049452696212597394796522309109686421420240859063858663686133193508231243076705860668122827473764006933944139553670344780925402491546022685632345401827039267355437333629671235543632690848616678827685835753660820507132271343624401966787515573474335408283749663863323852224861820260019753025997836274087524961332070986949918772408007303982535505927322358218183319926190801884741023609719862971523929010194882372554568561138252686649045361476525953317301132244027097032390134788548986848242863306087822043338835610180751473393368961778625912599789019072923803319262147697118057230420463082927853814019386992673165663397700659668665936444044242242948061045600219570502506763768019428423164191162864691440475063966775954201806096887206303046857381509286102230477919487626283656916211082923687177297193378424740486993221052357148869187997881062510940287589971906428645853776392927739198165298407406504955966063534744880223969880278521495790211030273884751396562425495962951634528651599472438330868186993067297476269673958974552102341818182230772328518343903118114856192449126683789107478005046732644455517834759567475043869533023923074354691301540793167710305502436607918123533109512978254749556957914112853069371711039869553131782070931666558987899995757077533217544305854862842474775904403086678698127012569632811451769136594899402440027967435414855731129649444942732863424030301013955953990353654354057004021186115601452802205377417464638309406598197739561167112081824793514230036327210599981988274777917291411939016854834877718868968953990045660273615529269975297746476655777767721166094286736287634416275144311168454360268128098911080808503625845982561702976000932964511147364605362644851539713862475073919078527540591620693127108939777095247485113981039997265183231750393847749936862991667971685741408986542437494087682289438907176199676814127759441977944623742107225651773342908296619625364508011802675103660745057413699504132410450155404859883314155145837440174864422786193424788045988812267837795776640275751837489901959223884411556948196535867986639889318667043368119407169562084169040088755709267568946256865037927389930092539828220640951456275739634495258076283800389306919627835966122609001997173489004583741903347776587703696245425891165985260123891572129779265623750552106881333629301603752232078245466993914779362850170579558396839738641252402173940589722344879440624340391379606792662044658120848532155931952107689285625453433973911963857272222542848803044431226534207355333881169533291161593784475261795964647434469654753263828250932433595098582568776745419402672795256563867932541545681422294692323057344423529067442376989912049999784386204148060917586760625546434240302598053980619413426026366581513327598082560863205167986472499261655923154967078452750719031607261498241207001189468886584551522427841035786056521950731668234411134213077982446498718967873653737005508130604579265540392088147630828152396980100154178006923475836141915799701959242360453896278405574702628939464715742651860912045849870287154085661044678461286938347840446899957525608993324351700435308765291697158498581012443212070543910991476835013904749071021086791286431813470364167597491571101472372966790185494565188575740897331079019703592333790406432041324187397762719882133022805589503811533092889066633570403680343388529186868057945954686643432558163662851207367265876007013678321395126329091320781956502465314433003968365416966349652234670158073012028073000482283630579528459407360147781685572484514640274010888989700763537244515306470510711545690827364177843017413934647615911131077484705376780124475584646726053362233575408730768638355368200984914688141466581475658689484250599256161912036273274916146814668263674899430275267613894169364539542107191353635956692977740210497697713956816178389256201068255018090940560832913640779624588747270894047455846683017797775824575846827709078287457646799627829902834890919473796989252926184933891073707678628914443900783600988833791246241002667805677772954477434436847724850349775188210066897718836553084583329205599436431514420657146823444765855379436124653019443188487837270819119242040589379551060793317052381393693377173185650447567353110098566707906889765892658316301054014594506619055370136336028126463824892192889431316024405675833070806103798995894748898349043517826387833986539615417714136459797155661773290297255724535533875935656659372623288318833201335659387281669737374513874199044280712841124994494305927996336361945662228093820489205918207290775087137679279594960611161809928321911637375521318614275169494189131767320456294463844578705915053356227175063031387860183739834803630209186692846341510392234364967392575020554827491432027949444838153185978825842586655888364360671273020920506734297264489818955388322299713959407560400620826906044229634189809137443101823158672718322787668836588678224052084127497259976531763510691412408856509156283747202180261260377304898918417002313526181554720537678818079313664462125625575843810964237908485836419251886255352735402816446573667582879152525414992769556609357972356680084990363785650145499627568910221893418580883577868854684055040371644780193595621414703512563394775590295242478466947743473479038745129434436291345955908138747741710043604100960583128900739504930947200904324069130727472898736251976277836328306444962486292349467418276334783153671690958676367612507779250696445174327195136882153826101006792956448791960612635922229415806194061331339229877890564960713707901993144993564162285526034516354415346586537027752847117925511780887424755603443475711966868350593035242242410119392983967711235960104018137311718502900220451803295499583248468005150567365540701753300410968559905260724120482833592041804102639673925926654801499003630918772473304177190067954541050998338303983584001950034454075904391522521090343012942870965163639037125035858935412928607655216013841254788848192115041634976581014554413764640438535051238899820712222688107839175334376077575406666388802675513231348549329740304681920463292279160783035920371242668402084910221482227125657252105571640185535881053986791718197383038418919958816894690855150815935247365868508429312618042304698060170580477631649102404767477641477187577430968865426170872807893528532342586434929959407603078743447668203078304503116544441481362780316195346917033672669210045068388672474562287729550348520954468486806318297809163727131770280842700602377809609165700239847630276404680933546917991933005955034293730812211416718214924999458843915020451811452551559735423649614938827523892713058106686599458852166122097296557864058068316152003161911661608620975890013976967610578052188495116424552345818333815833473017594741853090969698258996865646361107949181604755850932990612752249779455428124859251521621776348149678079853210056439340138037844849312554813788651894788123720747149886079342470483774955829879440163720458558952262620899733343332664994103653092360556965478815027839950457264140347764781694163187737636554756633360293806980724505525116369977851574856281967855616640534651412589784314615866426251670493882396865468572129035613219309716622048729229102607383230067347815215769443883120456276400586890438858224725197663335253982178862795787308620074928527676033407522035623613229507364761179687098373648429155388623953231666385578550218166089365411453495559266000064275036550640828141961839920989031384134008723721758288036233723046779562549974975523285108113340143899357563534300776646206049170282543481172662933847444368221086330354788153354651408296946000585236730495944887354639511348541534048991601218623772767802635684029177350839474173926144043944874160796117402962304205750260204469609423773664005706897990159072334474331570120000110127628063011381140345232444933629933954720202286644562316895194929040186129042893347851842368156872443589104479309622914930877456779038667380980409220866220384166139733441438416924288115919809124726430230005681276867225594535839902851163627824045801499589536337247466528902082209505455489050620387088795564536246515931666360300462322289946325832928615095398039877631007193478523469942268407279550694855181061402304154881518310540697680372428016930714792206915457226269224578978362774891762912021881737095472194888154064133361410780482991625537178300401167898373171931615766308284499111763270912179027864681046053777732736152950286815569035098441392899475283823802510825768608629487217551821762758530138826920909944914051204714808520729530746484573890671228349380856842240196892420678567130530720618859841075478782386596945878156499100153342119867486471668436569242704200617275676171672549762615699997644506666318583694177234267478795525277427717800857871778234811128723031556048990933066504489726418600874178079825621290273443942884953771499198304841835592530550078578283347054931319812313162697712424541612723560178283888111526071385564117351929880009612094371799603412938341169277137073054802303374143107569816591118342455833031247422581867245573559020731068134810275631896070697810553824379116603644568680709319368523684550359505460895048899866290312100462232783062101523070351350892051186118691758644171060342579284492383381121061476732785450701067750983250761568811518939574254534541341590791505209326591412735478231931246261568814494422157603733934772802070608986978397144464070032399596185987998507920066158596006136149611269267921727365289915864276399740399287404172203603754301786842279621459062036822016268057415102584813932149191869139295423188951831382391884834281848200730864968226565899033193910014060565806527482475064320074183922658772071789268632059224762561720762583653192124707537170689548259341116386157133865679212002481489533691592293104026654333041498166723816411916286936223892052459848492847718014531206023226036097948349694704491101037941019715064185081032222644387041845340506820194546125448124325805141319880331542675145730309767600423133569121956014195440282330862161731599366517476381014682516519630683570483924971275288397997497396831012780825522449930468432732881776779665607354010864515514320074522397148847259606567503809989272323957896041113151183017046760424437344876404833288983240545888121610195074993676409555708189366311556133513637704035401768118659179163608626874808733527743293196869964560934587206399384172152339583745564175889256168157202466537953918485456624597216298933918394173086789719921506466883018931498396346216658735158700112738750639270538408107452781869785897631095133338989236810623185824847501913218690278874660986510498590292711990156632966252355383932137397707090231162168205364207576809582626021584568958672643998755565662071769467710388171072477044359128290934612551347362179892139785899820223031407020868527184923857551073025284735203913667144102078749175468800082975958018688456506868337217891397066857133120037180859601859932142306446819014019954697767875239951530333118608817878914747047522245998985089676356101340165512280206336997700748654673551407216470045989890556803276750951346538411226436281914640955012414940927866193012979292115429741437087043219742940420073798240550510583822109113470554544338435027451513138310384940614412724096403247418691136031853106255044674041686625870682868243374960213724509754188249218585343678918664323023691954156490856705481083430693869934594962911391695259248187084284372104687277058436588388182941223223618546261269989823085759516428773687132052578111826105875185609993634519704512062288225038352741641381828397970459376485426956647473151284451597528064793824710530692519675977319573824907329932928510845767157918275180146803344320328065954460451813161966838121914761476284385988894304760532447377849246444327986190445596088919375938745497239621090974441545571495687883273703894983037509715991668582827173209334148582071073539408972318268192617607546641605359509310258500134429406673906008118288264211385724233997165315060609239188988731470339431705706168573637411583118534460919422274601147063398337960093460215576997107887075095015673369473796699202125906640062382326726695688756587844209615296607900211968713718110543730506716624091447493006039190639719768649360253052492671590080312105083656564133870601540871764798020842440900000920456302500059601219716047757444953273815316126211382462682689226295463325175074884134972519924670857844562263002139982246463255185958543067050684885221241225899243398350091015084001354821405707260523099494925810203720978679310305453882218267226227890294901267094785872695012283381742189683534307969156787268315390718989760993999865600740799285318580699469537139441718164672035967781241601173769042783034520155330905774950193198524762281121189018904928375781983968817154488525781655444022748147035796254947929553804507413821930726676251214985263470078348268338650815663058008608261320994300469230723255743255256226708323216062666425880522103624430441827976421742811640349499056547824743416757409682006815504165205944982911949958568954657826705831130780897015956040315629746012845389080959156031494110585206045256907999741248424637690535987638988051131530812200932149929527376270645892505139747070954452358099002547821359888310897563353430213539769616303733814873037583514054440530032483471279044468662771405728147011466302237607930448715185380288645975937163617727386818782382519003785874025563005387363479557037311260695623491520143633572874031157608384178930389206176085607368258209499009994728484153019825959083204788452278815434960208040404677681395015501965160949894882981147330452515537784932669312948765833368791133324658147021479014506676018159855893897196575789279844505285318280586973770148599667510646935924238268053890747610688416721361512306351774843392240465679594408052075699877684800541218436591980430406616327725943190978342886917517588721695383137078885283770528504344753892025630868597834945921034766299979203035662721078435567546966677882621533468361846587483075618891702325550347057217368080264892640236128836593576161360722517980485783420310700847335340489914668710747495702505229651911431190752351558855467400342308049927103970410289637054498481977283947034764700110470600460737702415365340411496440547811323342870950133573666368271850414295925907722531783206959785817497183392056211548854173169680312264848548394188515523498633679643529560646851218072336780413127160661302953463612359974372359934022756490022133778112719652149112606643395462129410495491716684549808207697411529266271141711047902261591274069962744914113925432782718973193405864293251851699305669187215886177444450559463358305639079424548436553670404061496321104960423775298837057617148687420905464937774596290679028455501693041033688437579020253708463363708273652349113473240853605406126951135838904208543829721708560818803897070095934143404943869387917058020135177639902513671409782360209784693494730413794906187710865747198481209939291948563252841857044757326693900533874397247653291171557886413883039435900436438448343239467279002071427652755772193893626534087320057372370139372386863409366722913449148654103562967054767529283466154334276297020309731224253697864036117191876969956625943538235854135669721613248060429410675247554448958877727647970844811048504320260972338831214211725496961952198760480270161791635127304872436691061801138279482411463257019036583451215705557846715163398871008761472637877694816721600601525913804963571392908203745241501624302950825368324679599735554831993507457032744713634055933852476499651943763612453556997855762094437630560338125820733285140149470583546907877724893430578420507380975585612516623286710302394132173271983006174218649865268938220451563060959714379834792245628119210471983420160674091326882794106229291786692587909626190005802823196990870610261103250160576345834993880837840137436230319556403747614937167412855097543794429527716389289319682636084189913588239586649259143439789738938988854240864365327883052924571719626323537146669447193074641762173315040717708181801151405928177466436467280376225129282447644846276777124663470175515439536080530697087563485046572764831765277941614073009619158707900576265275320459621746862826138850214536595283828691870558993504373323185961856863036938267390106879108453711245705993389435296389132050964156437794952696622323619342288602855158697165910619174184159061278931699906442185516774257860391828790811382117907365052380488006533023921250955010406500213143511160131196469551901107243833952343422310087127019142701903245226013639681792362993918751955213130427568990151759678650476600949866900535232357601650700664013998019994928000608396473797784947299986488125262059067816466170727873809730009966291363298412305678845681951625665588487403309436690854738950594282840107017184455901202387499927038188451969418592439410692467289484144393792525966580850100607706702302789770626027496036767201887474554281645473734895375786635106288407383386871288040619517626048103332686678083885427628717389423300565606174810294758043586119180591393007014291741536885823391935262539591208209036819271028020619436941228202903730849158892817206099082263935977360305025897821182567517645314030112753609946904218978651149695668273837587745035356153585596776513412862038731668536425340102416255947608515448252317171494013816966912601930310903910709427113113740255919395662392859987808338575756383714165788634938199012121908272130745150527514674173717606588328763302994478009420622613874258684506766531159910832896304063457789055441970500249378803072599777034716509841839319033999047386017339802351491372428684856714088756573215090334629107395315749432677453876127395352226198758730392804098391088401388447703703987319972058791798295221276057327287288372460225228806329450801044857863429041495692161886885015715214346139035475722050621809922402305131521512321113480646615389553543479227107873605189668506886921681332589338177562235240311946375194946315873144033637295382530781665675241477922600379384635968019536535803718736016631695651834387591427260117310632655751798516297260509848712052140611907276525482747626744510289909111279529554646436113146202283038952587426286605726545769973687438760251311575322455719760455704127267274321400493530769469460132189680089002262759102281902123626473628963867221259027826722916930037339872155035906691981322922281162785422328955003713417104105170802678607633445892705248804585418002703199298968702704741958522957161941227490426722614905220439410706601787513989230393593698570176801256331202551574348844155483791760831132697618348919138816652327292827256539028734615271265542999516930453911638668881141375702004969847961200020925558456526052794457460116208639879291948451122349737017925074055997336347194789439410217753672335069281495267885237796851491394250798826033860391981701497257059385881551140888863117623153784208249648521219008065460583555573542183163774378050433918048311071007354456447479432888403935823350723604570247976522048732343526800847615177999658669779856742994187915206097571374945647137289394552270432365004495656066972202912937723838484003832935828466506443297963125647186877375628365631661807455279109854739799873943784527841932839152357645042117303405337960903924797646516966502663373468396479399916488417544933393253323463362109720628977802729680044435528370647511313847544126987871133092265735812800061518450369082126780562766495871667619083151002529646664941221000697620782540187131859420049103623631944956297375601897393829318254982116174061976811607858639087832718916468070189001830542878480356230060923564566031357359307967163383160995284062197312777455722838472764411800728444296103560713504124443698191056445717016826986716089220199519299347607998094275695018301039755373829217743758326698106768341509354505083551531769783795557045327577816750287480957153335161243193259171117183704418852347444027903038577201818539231957088378579964411832147614183417745699584236674329459429460865580291977234408936920192968721456119347812569241723585125595805810608442873746093614828671989570533054476956907648124677071686265880475568644867550787352824287541364942579242986664875628988830717056920068008126343739024973250786769119592130785158626231537473642281919486501776384516215369940306145724776246339124081957122818344706110415776738404610408157441361047652154601130990480977470106272363620323771505038863975581019170560129770588027309908137207185409319669410394759924649263883303444922964282661471423933875814865912984335650992791941510190942225271094269065471202789982742032334935039100693207617825475404928838097335858013304075222861158361901415440239982601545491673148003900421260685163023340413100091033941875174300670392959144479256746824388999917548098907255683027678809819644442998340056168511927289637717311530317570089419252397160986018193065379190006265582100452078404857672422375230597166905470130924758162306935662303019003705275499588626097977247630601605136252863032041094961427010726096167337670494660281647881325750883606716837806519561380165337343221673622960106347414301937512867172752184427600878950983276816866758379790664820907319744073007041114480856278368855634991171383097898239804007847484664779760911747690517714234306263325859200589084409388516064619315119224736935712436020497077288256871590798119668973354297877880841374969893646800633772931134524751999354158871683288598585956400550781934148666416680157218318316929680017251665388057619984235752326337271645108337295087132311497921833121867530995533890437208160712238729979634934528015922850412924773495216825788740502423080053124377295845310238209518884670712760130614358917933412740140126922795352750846620798561117998542680933665089083362198340374963089285506341922187980799863789863483599503585551563841140869479588392143696560781792485627294744841835929309668736883675300333649109193380447024805269214259837899108546710759814532505539210087401537277396463731994747526338151595647637937960107052040721382496156184738698681037205607324007723760198943206704006691250941479854281058035069007040685624883130774970585846982317725822947098175521941656958843766630926723937566356329548508609050341403481104963733919807883267152622551564687960572331467091261218832960700278865775720667678528875024187964777553492652955148871584564912374446939390149867251387826614030780829606678768539530289834620621894521869158815112745832030161536915372206925484426518024378564696979038446644534098255762367792820347387743427267077156698857085541480178765755171127831493650406107781349843071916344068431038693948673936684695991358378925899323370986239280205389265317964138327854697257319268193081138209433171482931923117249990597641217510764679912971166417226237179901665667842280741765190999091100534792356478069449309429132179742117998748192437085296585403631521925329665710569399834092397707008483037980411973191735452599142294288678360707522365343769678082931310933787709625575365381626570987991447819408488588254657048174358841863756341269141995345318403700197216658161594994531038511976134044892997134215480752595549574307160198927806533698693256359353124663744244040576480763435211835788703215737183554351713129920079129100355202364773516572204930718274786654437799782878083931796939087354736209274004573298457313222675108915867208480675769895595727018378935649415255867379887437460011926147123414744120511077397866494982127446700407491653031992129531287581012289927969118399625052007492469818502714093181932880862285411481602708345081044516991785273993204291438957838303605483544828196397065130314088172456438447098553834360871846004390549614613263889328485413600314663172234482663122469024097090681201244274423962508888828612270872617044781806010443310198850191276252868628973492899639689537199017641734649260255210578260045774435562909043924465394985377014546215431387705984661792627266242570561217217236462605356629468637524810241991888048369170224817995608512666372281998730044082383620033295562912517641638271111780746977545078911217518668780876796761279719956905347517491514553836038536428461712079172684413043800570336759517017054075570927255304053321503623763004405773808681216188553601327593124609346705031541025487517992933762074677846053116759983951295047032120659487848551191796001006973752738959840781700423099590584068064696816702953862328479747475373009127151699140939301616265502360335050864476435695417958061838008152623342196086426010603846707691493266069334465485817007318847009626886115738565112003030939249680482225010239489290768247724283784553821440129107442961961996091937345004186261583842376899197455562009353949111762081107277300973345580065498509494824289043338405652526882703699599650242810462337390337820116924651963486110648871837058401026647697174944739914336211869275901115794210510909939675187624534913148757674318958307986846248084683863616218604399516994876805301346260980323101704464746188314892094015665014095037748154283457344527553480594426069846993284223164845580502465196729721285440571070961792145984418865178452148350739353897258800983819980774477965648833568590377524491824691450871089510851914264169425519039329113136515316329559571280266372374337452775320740251920874596055907141654640554839183512394920342682395543086786541774025582154101023912871340282231405718608152587189246395548205733009160994510590471944435775849750368168690178968987273865520418584264086192605348972077316125583444314401836630084483623173075786491095000208268484965320996785031524590989075056808705297416593773288589625701299973744410242745598853411117458990032234123294682988506265735561566501148302963305820415994422978843317179453140513553938765194280852931214951829940932311096524473130837698735610619794112551710789180589119188553893452719363032473816994324223998315355123148100943786779191207591655774323202976469997066917390143482176563053729796102848278175704167245641665544124610692710673523047863968162485666393517550296375196829471552988985076606457425778253870769262509221000541996736558712750400654688692765007220919797195503020312113432713070472740154099744070532455701270389444130110974631946879477825669797273149704562415559727309600574594501921137091320902900586319867267016767243373437287206750003790562397535387998217937152230479942111834743675616369833480708783178025021739258408718592069301496854943358708104992165353996732152627108711303007317582946889327675778444429836604859922222197341447005023727921807448213940683388416558693089056412152852135631623254466189833649231276956029010225137470034211439152670170775033670219367469927025943277505784219359520463294153731952597304483338199475708821998677695982308536015255527431741196443073601667286295780890146801828850469611632917492063177672337005935519936993567975119255932556578564031424001771719376632581450208755686935627706185988237076387543520190033074465770030754676297038523500866472271064817186717902241775771334939102229640325734723611692627525952755906005616267493155221898093481714001419185642433309363876543980293653774774268712512666516771658097365695266868517519087663308149075924639350233919702490848627809011279979645147642738310945076575211484555901952398437248390281701496008913620528314007642464031749853313319992695943486347433525744253271851195945374378313219645149060807470749090864310996972630268151301295583483015442682042477790187471580018816534527432589698033671418133720013036975423983700533324296623567030673217777190254944022242036216816054521566715520011075792823919345056951253818722076176611912200369996288605476569772378582501296716278852107296090062775918334530780943047746904697477195863094741057708221705539943337619882379217336024285371859813761239559185569620017563440273374744381277683632003776781247803891904347027347585745027225639774887036792639137919438897575454940080821469255627049769906725356609156437067808884500927532492386787861794099764513717476424513656817585944483781733455839269871840691265310202036192575796671227825195336960799771212483844142512184781994224042444851118225722545942293145729604645747956051770383265829410638554149952883050096603436723462865913912112234011034774174645683836541206418583453848084786085018779621099711593958006333965103173300943060971905809110063173530420992743976030782723856175112146756056609466833454193894260431477443942456066923205673991847785686564036971503150127620532869861043930837026587975388691403105315308055607210447382026609168696937347247884813495176451060380783849470023526326619706624356556763058670716918087114428400360534988230297119795304426046298204193347191620109319429611508072702123781148675339688512480681828047948920093035729748225435439222539511222167548759300997938935741851016172100881076406446601969270846884732128395728188979850510038868573089549352059908055140546179426344072984674178077890622619225583465569679726142956148084882430236853498815675122226238091748017411992440468225817628552574425752082982927818855430388745003003525878766650766160702769808069086071967106365012394840611927042525462264981586187401246867996699092954732708639570365268607315922412683571064013928755560551232464865708707237525668731898667226717444673837670789302378094555643438509282787446351015430123388622114580039305919282083724094888256840999111805623216960263156842086637473697807209727119179746053211134423775304997511278327190028434696814996290129565782422984588272831231352187356886597557245934652031125266825415491122354610008127336593681521431279609202864730298596186628789636867096273795640086867356190372666653426384865214106622527432499420607553271580942334483172568874848222533051606199336738942963511564773487207912483988355463652649201490780799797327265983754536552324251774295088279025427242991829796527516811682410528746443573972101471900709585896292224631009949132461704591499270866545260129620972235779624393489469728932941890469648894643812513825376647893877974228730790324693838934550911983052125493429123757580724018425212661384889170539537585801246184310969352498089781881731927404919211357545474772980121506705811276429983675833725692222610749971160148592724488612333501843073951305805127099963854773359155005011707044254942090794825922384713448136187884680779887910077073119313498505625787140322568167052133293224941456049081280322302263082567703130899239296921825628728295737076052511911270092604226299630782450195914727827202624783985020617098797263876139449271044449284387147521348259882019319492362173477503703989703220246538857117602686302536448136261757335751437907171319996921927090096538509090550359804726592677605910149352188470105044341207888951778676721086191929981374001458504900403908613326733291002895521463355066048803501094359184319574929062964486054620773353029700135992210362451111539552246104822224373115913123438620144377496005395808137574241358235180771477430273111246015386811534200724233848685565939628997742018356073454882440644470893177428213179798397692602215076363346789384836195043866175711584421771953334101290776151265756949302565961439101067998858254428837429832883494492712787006359207035792103876175877378520805550211730406231549688986451021230588245655090487970168194513264167607455319865754989926154731170787484738747379068874868761950614967409698601917930299070242817791823699451091951755095679160511684069895065480167322199798950211209322088094742809591324349292885240107732035779099846781037955793162574498511479104007897017639908351709403135992186857593604836773261018303901315866004587299510875600969992089656762389296956033701743273978289743267025658378194903275843557991076885058556264635273651853598087174961080118896328884678259043802430386871175982593656569956137828717460942445235176126420905309221056215723294419079683188205873636823694039258498084133741894337131745035520822032688331363912030521840802857538594942741337783642293081826330603999125911055834454551283090467879977581694144797544697971191964501891636397478455488045559767665489637703304592234573359909991753069116287678171022575506947890878223039086371121329412868506436258567471423612192642509667768534582015334184249451847154650992364230115507526484529673201181608631136629127353223153559159376381489154937020035367543020845692246746173964773919825617803516336811171063572010055076085089949100070618636011514095881379888952855725103420481817427836358603122476151205016977791626828086906775028472549406734046235136542434165414379472497251006949899407056035944723748152819113061365701536561259291714721319419879008401628038898658493876436441392293819727710165187926072689605108480318533937370195033981697394179967525904475707025244253573578443652775646112394589978117612005409802048031916982633530963911253276275706057781202645931839303891035047521089717817567032192229963488003342633309351567611738272702603353632577872228505060606939953655475112946208674290209761567040476274580428747588997107355660855431344629229454787493929445185576330391962356151375244668421470287821298172477175063087642442155385383594735242403085688531711655461659803015211859691755391829001879918624394481395271079182586071498707649619877007370542371989797163873905195526787787102505089855658213513874016415164145680322953741530900841744104022226012914467235175415694225034290329924742681295313215223677828318713959511447496918681124250075939009658372643930639043654723832748642442802027003809807654019594055845181683143626006232262625993024232298840004566413615641742508591471905997369743591690347903677179263377544833956129635897816540655056486408177937820979216456385454667488911754517584368413591346541609589606995351055416250362887889302822365764048521033656153857876902411950297871743769795238403868291060762924382655075898353585625468689437696483505213914708115153130883785962787829376054966082461718013149594114320512484790599004338711748711425042639333489658347659364013475828712075560318281263148365193745798609806092781940730729722654018471523068183136547134293761286389094578442009358800060955896893731477452986803955482838499080593063343915578158234369471161435592992052535404217716821230757114421548005034165952253732108219449944363952604889609920331058811068401542474711079728592369987312742575607668216631596267395726996543252093324978207152581368701325957325385116057368724274129975352855812306687307642592728850848324510352928956799572939568377162346427983779111243456848938396424339649097606762662367284149901271973371559263284444068162331443478759781062252459059545202705859538519552094560259133798304869592697762106931961231496362367766426716060134228518051609456406618802280669084637220172881169387702789753922278734358826098278257552762706681707312385863118669885298554206019119113671455240224084052823069392699410700511170225582713424831007658288265429532684765437564931826050283310178367989561426493895705629069826910840501720063483909536841684654684668457127174762543141246123453588141208578972128346145396954358156041829169683477247505929283439462088562733659403927257118456919879196497953702837246218369933448964709724007942799637141792038379068786285263735496080086866694052940134224718567160201902267575452368857138574057201782232223700734857053980636393176139964003342886749012882808503114077860812263409831148280703116066751428275393832725976591053597120637505643170033426064549615705041197164786905415367782078261108622773054591328329455930626667957231747232968288401153415018271461989711254738611657295710371315943758199131154272525176315416880772073759530944641840895679020075752395669979968671359113168706934762075098255418970907910990227558134170554233607411808209517173480239481724189871783005099948253443301724758903042819506759099025353588389612062898492182602266251745415136387475983811028995499215569235395222874773428667343240253072488503868288938324450846831923269240869222324950474491794666908746961820819451535066087794214706704214645604851908904385905146458572034088994184313794926441364249420873816083735110514675530929269395335434374653216111282546327021925667143902058943594610175316599007960054597429608471874715331929720623785864770834939252010619721442309271284576535582353403705614262199323604046660526848519761847434179628594641948670976485380317857125073420241661677103766315722593416459345843273593186682029305091720123668523673680446621916381044991715999009839277356945802534188309677483454792888454259253634427122781480921093742683563881199591002799828164855462482899259937975292198098754736754610738963655700554121781110833986316603783817700770515854540419010489555762626948994256051172946221919036325961348039989656138268794202214676898594448124747028210590205647917885981767959400253872858007769722423651717344093052516904128918477283769877909765260331370213500080992863402252284837339803636461835396606239661785837741245000237685990118770943718477167676411049418668175923584864108657609606683137470177734611062504674144515012385752976586941744365494800726163735861871845947103135089706384109174699966771123806375341383457747104673085500641188420283929560332037802334349762495369978325276800082453309381628118288261562131615662571693358489701456734701760279850487674889944118312477913457916146362893625553580663891538229110422046438577203467930241410997506595388263583693194069786765671832909488363967245775353063913145465523101832988516626195963804656046596947114074820780686858033031243311452578892745586173713216112651028471335204606836405275611485434348531682035578867344658904971299759315380009563616375386109156404999054441985550571748515081847506000174718278213902030680340294067037950167588363871893597354354971020842930213307672141395496007730026847009825698290927119512650742115450943678491693965366877662079568797567566864255117602955532205285293365546647738023196035204367760583718480555776284627339886501612406133487867679140825093436753216290486680451278897265583891319917231448497648110211808786653870384850132382210157230388558807856129110806992864630933296237630974938164718654000208785937038620543248973040777460310101762702741329980843951316914008937704724752162257568758733611187130799557687419443511522772702309704023745719535023464493850403022654945945276648833092910924445257630034143766671596553368255348152373507613417939354345328236080914403019114571964083304598980297214853086795260713769588916223212428786839329434978319928398481747076738308756769578350735682732368729979158494472880030717051175309233798604698648803555546233074169875580370201035207724080920327208493250266778729683283059249210966946828807489348101449296935755021440204535396393635343593562836484773643277201352812116043736132184972853874942774918190680973681220620016866679925659583522168940686772337108223194616001873941246309781829688420634954076907139540654006036504046314675252227735088883842847947358372459280690411651511833767529892432761113619043045029605916449618681951924129497736075168228036770258033918421967530590894910002570774862073298807570201495544592193705347024974139343447025595269881690687097415305538758512770747558039678098579806758839610586719352106580431387935203981008754414618843163393145301297006127793403422075495113938088935666438502730947191638559056189012833101360523158856344282155211099378776401995448742920123826970704920066462139197737348141179943754854451883886281019759402133577936387113289806442223476973890623567970069826587480474437344981764617115869912310427263851058474427222543801836537407033621659178577295027834394345170794180256665800060435918111061230410352684961123272151827590452036840579631692156976817866056902333840311632519269524162549732004378931088054538698096575261820027869035392555392069137280422332447640265799288395219771010072439459473326552588726702104304725384003416028511498538992196254525796251376882313067832415092361039953938877437643026433073280021669794484302865506836497675916944586647700639606686063395366545111748352532373059406285889697217888969225666761317982576755861468785695187408675771405142260312373353085084211150575888127509714012707412930073601805256562097975229587552960810373648299997973878487048135814482239449636465063783191241600706868335663110580173739219226047214061194288247386896242714920376636901518088697691724893603049035321347336239460986896493679174872210332733570042815201685637123620686652989111220653968200321019713626958365510053364521419933404145007128795734073112542308433776482517241657106495352670405419468567044865271768434460030884987067628048080649329417365293314659958311855082928358104038515942295394768828787728090932832058605322236188565981249302708874810504313815782651971837221697773577746026100603521248444086137373369276449791476699411105991477881337878610905856796868830712514964141689157012879403824530897600225697266225975004143209873209385582146767636261348605144610555198624260105884640702106733263337965413370762972220276414003901385127145252292581661554466296387638984393369697853251360032692906732590444743752952230292649255877870228547489273749100841781594339998351399272901455076107160480171295210868586804403089029415605080778978718161306394016552582140708179821955526178091066801231977223223140303451862182988643777334330163320130678588891481704498635484056279963772007359888058764161259876641575286870827686641114169855061248445389399753595982214629212183394050667269905276212013979084213532941149343027757638611180257646402915540210626643646153643347755753124950267024334143449574074326887451122381434163699742460570729940841404184491972354897138063676486065026637753673248953378365328442650025444017581494981723452510757168846808909203406119117945924815197691001298329389977461837053339014734933664301384961069581758061937603402322869703368374573224502538981049037397001064276204315364840200128484487742312185628301906685040852593153552460368227275472845670287120451461944575518569303091671672525804064836023292995413243395873155451350677069782797547965825603220414277235731935871866366986410896286187620112210194565470969210511131244738415200993905784812834925502664166198386413018927976136164448965542690305712675396233626455378739844305051624719432236779867555612036960046161542203414856048748892254525319605933764607603539118365937969443886251285059285792311665959859729063139467005691628931836150453938970904959971134756845361107904133806994671363629216001938100502370132071790675931438247655849465776264676840092359685760399496287917416223212794521552559852918858562103322015694752427881512356228927609155909424387169661987723708692640976275873712371393119754877523231600807223215710320410134714578861532860498698714858421053846745883011899808503593259962961284113101400700582364210246495425914491591940303010439572145398782409901226499454848811093363401620365300339267884979958545041540821389506196834686440740582576738115633039220078861625354608594167800322710509917633731003434495073309917186733016159531849247456386005238223333893690612681011312508857965078057297403842006350509665585691475272083989473942684483450387920124143885292870228277258984578564286462824857416111585589284062234947563806111196698856080723391760300135073332587533772479694445947021419557366309332293208210920870071360522169338287430736047219633253821269683447434456783111507029078851607900647148729917296677672729630880381044802576529984067665116877436918878967800177939659550919221249657112408153165936015358200422957183891936657733232639274305578975604744637697216767772859581574352428415752452289442638295075181193297724469376900887279794022164999722067223674757547389721211091824956775240604568756830803370296667856765610167645634677786953441496487573288000245227049005694397395640139799088344004878025724397712579156007028964010880542045254754216600613609033462414619902725645888374589466711419433034488407582936486516301223344105687233804012570284486313703238709459828604968363453163074922801462317942212551573865058001334014430284449321206123124762028904644201896020154783793949095881772847563320787170509873765218422102216405576409890701419331459071765498339263722592312363910952770521263248315198741578831216972905063060242356097149265891262084313658238309874442696710927731677940559778610381651657227981878644213756568632109506049401341330157409700653462526912262150157187098337358941226403296828562849677730893976755871964067201848392208601112979909919904330254771891915614618844138370278807274544372497691179925287531694448480569101297762241893746630153063032540315228802280207820249615859712304870117938257699324043992368311772726434343371783917311884399619886238961110871823376388308695636283679205193147695294041524375398738935716112732998378056400560162563494312409782188596991838091068897466367630240817890039928016287249331677047216049222984225219952253705784300042287054436554625216285114045464018946285899310955717648162863178743008162621751889868727347162627795999538854590305850929532719842643088127972732747700667557077416642207563804379175080386270931826313973792646383332050391876107963763502608876363286494498934995977578994986996473537637657645869410613609616739853765740400717588417330981957538064064450103034152287360503983900438272454343704762608967196208061276073020182405041801263767873900237448672025119095240014355382224814598075467329497126100595452006596113634207219400641841508876712250256183771886096273278819537713962012498802136108520487611157696098791584394155798656138001575045490631058581848531650058702629014842956839253423396861470005768459010861409895598743986608001657611526799904654737089659716120286594513125328585170486011947691487485731844032371464670865552124146227021960835869952940923156552138758036244658538766474836297872198020652982450103847276465453406315589575524286457239725141735855197597382112943147098151906063919458783367457364123220679968382508176596544112838387044554518448069641001510909807956191225615388433635220861065601458925769483969555899942481450790505941049676520261670451691213354306666230539213628511190077282640969866734930077481345104787919759017250295583296708210955857460934504295139079467312847275220420969494989079597402247118690314705426194265905810918589152685151981277568133752475123429472361636138611714024727566260965270659964181608028605579988580071308419462230996668600926155903473801746453296102319085087899652688622437870893078953132816807523899484866003111387238979755321731624174318007087491301885100758002683407958477043494974598308031961614453820860590477556032223874989675517223990810311825465285767739619601672428433487699956434306844721077531056180601761415726057089626273507311440113566623448330572057384836370701494564558186174297119469630107638088945230559419297250005725218194870944739355873647188617898391208164467080625436320354742484835672547090191142643670048427447688722601930520555471428350823036279172667485789867858280906582521266662880304570745388187773215856344307772241736906974250831176416519132026423598082127979694574891889563343789141068579238241628167805154948777707546232782307416735242143529599635406285080210569859802613913893894050174850772074097400147834512387562951145053807223895166275024892269287546198065805016445474902130681327948469141591791571554573805142904897486464648070174964331047062729826923831955267667746302924818026282960147759160562566749718016450543005061076467383087511692338665871113875419353527245376551305527876721252097886044522628784994369785382322935417220696761240935039897948749083197155075800088237180159394792772025534977191661584138523682854959602055932144315100195773701689397395043143238769087222929608217753918340713719532112524784046117876697681656331505895473227676299211475878775462946399252260360310183200784766675485329711519143923857652302687789342363881447257902019056199655202431990036475785458348450255093875000863550063754433512691253239708721790727719148272919151049247646336811226339824973189278767870479116450276950310748715259228279463781589597567543569083330426194201945781896839969677177339927692528481708322961161859064686046913395585591627933191040804840135127614167596450984981293589410308657728032454059399857132294987401444526088930230625030188507004490909324397632123028411109113926991829392705489874675965829077952447085112063871281900071934924156125013880126805737006199109209902809268737046813147536188625702250037610341074696021302166044096943917205340109508482102826220873289553434485148012467474134189577154412716070125438114836756915998899657274621093604576879428964948260914966770371172180220650421371552061524294781870810596885326819815257432593716597950843208863261969605680015176834312974823887253410714106049936953839279958820003915740541682115953890373159848646589688914193724476676676233683414409263567326211176227251426655306782265926306146428854851737196063262400166497355955276392424877259956390807863964951025448216781890442251613809759395515268952546409204735763944216622551210234653630212502487908229350177057007211511155825121647973932631392924672015815732490454482089603554560343620906359828556184386916332357083773767845014281538930348765158416405682240775086925407746428057101228332549525075628615382208638075611132258251837832281901172184987378313545201473764587229979337739111820872145110136391780576286291434984541945303782293563319710501231040543436217433676372987342626284921269163526480415669009021466388205190430035419316739792419239387850688871788256278686749292886068952434610144050478090593319787589253808634807140506587066797310746257294998344342307749458545298301555170669461803074073509848174430667554118214934660000622604877862934514637396826408315707316194439847578982278783853564090002176542492697301317926069305171957269637373082233459964241114296766525552414958755871031856830167457560729224974866969596592780251182378570840584514961006176567837481142391632820788005198744198970423065701328440126391201950315126292496005196555085804734311659719030805927608075080596059986807829423852745966374802300732904833461428142815614392824087795085362495343201834414981183084245714624640600181527163057952880351267572719989009648476664083698279034317965778151087695474664361802960010046732094602391711945099476798021178155305654719085193928512356962496346602750166068835046750225088254259203834193020185169577193654101911273799127450373589518210853606506504477168646300279091493143557946138603910466805013709294433150797266727069822946979885608104857376189329721853299372684128017422862855519304996175135335620041607064880907882255985426471564907544444111619811973964630960060715489743566023118071616597549085507695573466615339827469743643715152261660726257642407949805946057451299290606324612402893995293953598119086184608175549558562154609753860442545117915500709608912345079319534101678996608501146722615715919303095695541437722351631972085047613212557579931955402629099706558567676571397097001134110132646780014251023166577109460394336204425663255679783642977097845501666935512059076452247703588490189166065686664555441904312881877892785348956560802503935883328540076892941345580389595048334688421306368388781522232811715210183919829709016560551160392596926081803870117621309959867000024071819766675531861039917595769435309646709892247413363357707073546668300241497651457379781986290414993923658023604807872089526538104706402714053343211510655955665967029558329870848746754594600228682648596453114932027011925756895042761003042693173328610733053720746729625455805708022729032311876970493571132045682990385770884323622174119297621972806239961051286711737904163795317409313446028018476688313203909016495190263822202587689206617030624964113081536736416965819142361003994574213759131893064240074419674663292918899020355060876151493247532703221630611682935377858619177776327380449143703408837059903432970543792243332135910474264444321805679370342794528310749322833732639285013100189839948582271065777876250883554264903277589504990105163089386865096371344373352163422736170204157732255656514712393110507345777849276716574337942710651216715241067430276529190012552255638155427673275482717722675263878620847362675141994183330649693902694419238779784217005117237109368291378050344286619990138886730278360374617362718624252974195678122816812472206134446247466388416542697124732466405450511449090618789447368262002132764817896659720550327882588507656157190699957502761450912509902217737245739391608956034288477677539915520395976935384716514517712126448870498109363583268119576863311398372062740108289512124773005674316714806270147908721073755146243236308931876402638965343132830852834769172622664604979978499730849377959011859060340097969163058611731994678386041186794054751736563162686220158877441102176433043416653020368249697499058600522522800651571857299840389357678785280529168271926276675348591569705755778110309181068881274562200282381946456718712640887470432384173819175242333657728820143753012825202232240838583415132620104740299101158024701348397006839095802267630383286569764289350826579719670625119142162630638579950527903288207903205164915822795094965571540895657519128171100674230680772353953627114742764135374045482240916784480354641674806139732581206582440112773829277824277512728316411994104530961786049603107716335144707839812252052563250736946788948053530622323662274700243030915455219153281574935323692325509790189022582455073967389500358756937396425305600723250373592038283624654380144219937868785245950159958456826544312803942240114222290283335173304158765624340532174797410261925201836791888719407576982918014537280933220680550619050905041173507085595441165611915941021812997857709871275372066328024438746843594993894906169629235947271394021345708318591060649284265535280494312175455813579173787852638590242338863463185771475871368630907988463239500570733819457464425981815428375603321888647607728520351048361352362909032280868243910607385882149400372839551399209676770461197216683786386272716452313321073376788133140014592571559933076226315770223826968145597368887496104004060013988544028970313306810142002671193435007015777765956984664764621794367287183521806699891271520306892297233729580475365260919885252709215672037145130150319051319919301218920278717561972145983351590892050211422388621824775759619639470347797461853104250763428739934203901479053357974446880326747011000515027314502623158975548755214112940126282161151150822605475633193727945183082848570415705426619646195510164302821200086672015521726154537936323067905171746628688804929033117963069019713109647631772390449071844133025348797347210282666163498293131157173024540959265572741966097466059341611440706046685883880015815702956729494261475589131126477848121552112143464341671924335644003629045792498546191056437686547680761609329025731212807600578383936627753616574064293707078434925742204604712154681535202156342501152881042121529616774056077046907563629500298600897450510565668022327605309983947409399678115196952222409036884036853348925330867841001977547803805473936141690543675657707936549647612837944891262322061915352494077077244919354156366421149897502740988794225649349420298595395396092293545284847213825108352851790787798323044479631277936378161048724512701138601944190175918368808283222224575938094684839729453776580538615736622514653177240977563945094205219055439514072145868797297373779027694209182338127736000212345432441864517324434596252806487940639455259228849273741709052180127534868831832884159615849771847381840128385887506391694095836777996272303709407240761184218972428582135757980827124690020362508420013400176373609841563733297372624942061242844781128826506570481949324913015789795859087980039269043054125196628472840051915144282361153187278819712993813438082810069590058784025216185893977588777247885452315944971261632821593978933385880680093919871756740731833172442686234671902303490108720578462267527760100031656198195068588854754735613992431847329727245923855513383313574445314575339263275882064337379957243247281260243730841238355036261026334492280261723205935013225001969004613911607840424856126691091913277266804877230575569379143455072167694763892024262961860490106483440957143244416416779705115810448567425186103405547977659766588819465810450391569039541579970649109644949059691979417214051232972339293559826068840368663851295978876145278388549547298803121043305260156387976283733072099191597568719205231735024343436748732971213768462478813710093710195537915666142619670124981541340113722627807823999494097782782373872087071389163859853283047488881320098392961274545091932907006378813491139360801760432417986032183922686705477241168301948206206833748947146705250286697643376297164570115554229651985420978311778647521207970962262323785481900015617597069967577834769628773306674234777439488118602660517834868942328666543847499272047176496831208310683678380162969673718270934386399864874364775778584948380974597021740930176536191663749491342261872454873046137651262020082067027997947334200543531521870167181940971076096007597861114366926810275616928688053692185319208481222498298199866875968662685485988162659821679219473772446287438258832317694066292585749094157812079244146379163495291324495589052159737108672478365651685745903202877329375679338710833140496274192923753454736232460598944242736475760905087576027071149021651361946872816073897283778765951115484962191671786166003014613541914891191902994449882055722691264500400782572105091642885420512029749619476752200977466850264072602728107425378206465474886198825864013943099932686375316583544151742920946776005200032645714231469117404832643872162936408422035088227950512756233828639583054376870184365608844693126212078375376205137738182225615200795905281025578930155377944846771349266366701655920461725892494319891549585707695717980921909427538458259130183008076694938940678823097838465539166586269152255196190878388396899426322009298796376201140269477116060503157022775960753818661458512252785003761434606059354373184622322588555047834455131649436126356881182406818341569944128396359301182033290111309587114804341156333745256684138498736518314367659905392191247290136234063358528837707566924191502655246328136431399592281402103950845744105615350524313092328886451723791310709936742495934696699032207106564272147355185267962458458634186903608653485123387728427596567871058528383835215838613510771476597570658088367326309577776976835773910601809628222438889969525290772150384905494308086288894261042722551624291276415631863572380407294797027691377389864819397129262685273411204637795954187961877589861475973492426366020785773834866651590584910797513541940234529465258641660560077127480690515819695241023706481536965137289159028832788706153823441068573434014720511249221895428784518353714101910224697076049835185918863409289413174861576107504030331966198438696115988484805260669116682768615844326465581476105417412277571092581934245728844655923819949834404933655074746356823429053777053516771176340391926038266295563743729231234678303791721378710486406381632087494194610483330825883478357908732896744621497871328912680129034428594133041084151256991987947939720817961998728956671171606479447219451583778088072832793499982732257123709260156772097405946839556740163710077334418791718451016625949387996930667986891241938693744905652143964650301772802290301245556265336369140483062915713862972916506045763488899596619635024061223025732850660703236125761815158728392670259155188953087605682545715734387011963390891201115003388069791543877660010162694518201457446844042689029548761296621167376686785268279355715901684308657571972266728031162414546851161599992657712145887603639202634498884844891173725362869694991142585538775746584187710091854021045078054262323666613368047282440300455209020015757179606284030521636474995326616298602478173088725077861154813585373294120094179524417034671259861813277369782175140843672784228214122601023164515590511062918758735394521884682116447171772602351377922781038982873386360014055407205684820621465954654849817127372547921210741545949921176934041847967730092940595747045451005801346123264806135364837205405447382189155683222938481042536718522632351512001446379833754554454724282236556452981481398999147475572937312456722670311781541214317398801200898867335619471059361872759917456882845700468351186697744164103153929974812276597332325520263617911485956913345862758006664490059985025990903695442144739849567612079852629344568919592171756021551229585873671912616392961427538880698653570165429751799741787842894173234200363183073120136248818668488603960320746416441894282617056792893213319945996551836925116290758671203221490547113558006363629706662393271573302797985135184330754747309889846342591059928555524862247798495391323751521311765593069400663116974481153823085173698396677896216770420539878660725866785713789109134286433607923703086901458395040504553464087002103727888210436474265123355867905188327735100376178838224866979183991831454945805059232864529156677672931059324352169505861067635976199564176022759705081118002741110782014667098784217896858216070385123755536159742046810253712612515206263818281534461791242257471536715757378429276436433067353933789323255928946889026250801041978987703620289459325212028142074874533532441098266284601508316077097047045342199754494834657710537546949085994044570522868957070655986289779597290671182980223693075308717427627074590988086060754117639106375522768030664968343662326991268012951934723096418369245625770241554044757347385203325022692649689173657528485332774591057326078586217110402256427299728327203272778152994403245875877313743638564145130828880812810310845113098296435958983867454143176897199182021731427940872547462246042348021744485840129265857307896275932943181434929722088369703803808197683302462471339878514381930068445811693379122982217077551102762756384076030537551034386745582738209073897247578576156637203599782124722592196854140660329361904050027321624666704898993999234574993885298942694574496118066024836362178655905056588346982813716834224596022124950882262824982279637510821809060480260009559336656896034552611772906549041467614465304558953757500198673833325619738726313006435837412019456352242762663351224796457318698261927996832341778266170484242821674200453075304322954684184258559180186187415600875390674880899341856584929041717797802891023925712608305721156069927107985244672733197519964564803574177661413085407835169128066150594432717271214376095713641898864824786520766775760512260712642839760081832132632963297509693472517159535640140387066328413981015729078330039996904404105441557122380348104929905571191569338017445883275248737447857600938371551780209560428647223962889284726571095719008100377747642097750178140797472488313110778331909767487099862361659761585278983172987271394961649906997704959618743799533399749784207445540930663176548390937212993402041890975464389652865304808627853291601895933451225871199972603775329742558550607966951248873277274714247708270961314225306413114480022235298823235774615662032550257162832196474557270000250697419224613804997676963866751864733148719677491612339231008757305293101163977289485697486877642771123852953454853170592849724748727495347711995408934148377006382158195705267439878978388173617977389807350801243616217789341769383118867066394545856166169487271483151199341621744613392714358575180732438325886597490471072730221610312745590901645967713223806840229466347929084445641849098085931240813284803657972198868566481826584038676385968984796611358267464923309630343764757211612197020604081351537489462064854176459269750028683491851887281109684434695933928183173047312130847977561562261973386148721728162408120029648061144747545669145221838396507893858489893450733093658251609233619477517504969204208361069220595434087758769733233980082988203337620093609314835894328554235584519444446781797381176584110987254438908459632029085388418385532692440519189122040474321297628746478544543037093703803560861527677310042762788652292742436719549676045345673287927246937785551431983184248143849830702383292233921691778873322803571465936105173986104630337946874168417054121137648954811564524032136941633647020674707477735887165036133434977315128688606561688240478500584973605371009720987021239057072640368712353304126594366088395675546789692277305605477293551860959199629154171709285091918472479311496567681271648370372540415221604267536998902460035677710470972396623434101526972915237101969164512125661737267224426488433202337527686725552033948368939297849413282366902026090892762902504383470785676186410501193248168651432656272027186104659457010684712385367997070388473720957198548411746002179777954145346913114974240422493794013443728465281278050758459219960997753607250463743671847386439275644154599536885405723096037405775072455779366270000830478630181686672415225474514267549731100829194255549119909476340847161015284994813637444074663272799318771757748468290590554454547875299161400214348747372109003392635459667754064010749589333706877027088053860357251297433895603442983886895470709275106109003909768855656299149616135410364654488923953393269711047618259137900527238489200559978122006001130732922001581393857414306789359254082225621852295969786493813525726547936816142521544508554366068820938794187824041188651769334076475165897706850610450250638774026355723540447186965270144592175799946459792841452993353744013759239977063338171966182681696794565387518717039292606800649483346113692571620469686317744504738095845699885569412791950112459472333683556163818463744136671864668687820841265770385023046224827899480102424820024993241558233729063938418291627873166242994372521830969615821263815209937480435839998306223028771894753418250283292306168606225503187227439777171636483727742526396990045410602372882285838721218145316570546200574666363038355386556674095864637619642323225212346619699921588113166372915738432001472105736468478035047884384917782201738756912060848173935019962394258412059664180010032311589032683331593537908930275084357045531788376774473069905236559864262700276870913704892646499950024994439577696890111633270061719752446459553739098058971430524236010960065931775040313830706227290461309925505073311657229100059181254295326568761163370095067266304345392693801947303704274899412114413863872061886487683240778471838130951806315812133233297773440569061259715259682643725348514326722392105267369319385476357862417453992956295084010278779994992715879362967828992815619244079543421154407728396338145407619163868935978168849987885870631526328303432369463733336744109858287200805201563504244731826682736216349567552934669390683451614426317115059114527291041555841674021499390621951809302441469575870715315440793150013607516058390042130522527780183934287818580192247136244274723313098007494849331797323830199697796216680880642798656533477106338806216580902611913372033504031198030873628785688742539345138942228854835173100230798514797972931688731360634934558403572031757006314622405798265081720473319557522281723585477368996047019273658778276001739802455186207555081845528136811578478606740255382667522385102437972540443766094293761980906264355762234204537873808290243976397688588119911738396696115749602790052758938177276840804159355362357671298408420958586633353211311928192712052062172337342175360075241872805415709854868911538051661026261369209054271512074967168585182357969779917897187778624736044344177498911607460640716241492618611103816851865860041697487849501383210627497447641348649606882655668518512693152841520583385625662321275920146243819163138854105461639228218558817712277309403344293233087818182836664609605150051037890127605407797010171123321063006971925397451894336494125801087899013921445063301481680630809885302734698180621415370542258621576581473092914191815501405082576200072833907930862660529646953362178455014259901942701295278120837963700146779882296575876308479276883810112168977703451403123736524162038003799997627044990721734962028349304140753001715626307305588799307474711070996126643754951998531477636665952537237540177880445315225490309307736205551693806943236621859516103768424895573057888193822923617022714529131812619477488242013081684418307676254372319615483811834789002274809991170278670121929014602575381403851634465652974209579499168446075116176509906247837136611280156573796645109161541148494948347990513314815863287523957484066385822589399496035212134839213448722063305921728373076667361402507410646514351813701226225193871298953813577931191327829870458972084246193030412473938734111239513753227864416945234436310443852805897074160683242360380471579942060844616107042241588161685078416723499513716584252548982786168777398006983244236439685328856188788010556858611257053610949777868803641536914896083986283276889904798405152506469207809058944877369047018964885128929785768909806020781841356891496272104276881534251128000421521401115307685465104957726326901925917998635006839846053347432141226862198173214723366541392290346054902329258794423044930565119829686400958312921337147065359268523556268777412822497241979527916911141994054429614118682123388189643707980344046912131683128371711639223320661247699882470000630940014742546019218596397093142985148748409554712562026000450408668424374032547140023065002497991259263518464193005781898417561293324027600878855948024735327580246140512877013208027787261157681476188846357254020785189275481110611859845813693467412606654252912051873983348775741895364218979466475242659671010774055896335425808911362457246420484444812053050191125450113077658464045274620845037458694706901168735875550539468847291012420505087020829065366937670088809349397866156513941202819935490588162816657933931364744034198816766123167924605423847673900597778728546699152714386192041876394382237470317066906000788701190307122036987159911329669686266521991612544458196271599273305779228086065126869578270579797856021536653529465938681921689358782515942266741478338119092303013468015118126310955167251546537204574736340377478295846020205974612247543515593618533174801396701490786529990901040741018049427785108592222239883388515558702997589337628721132268478802702062215042736766616155940756684607606016093200248430642579840489761071214618454110088326733451949236988005149571988510205093376818226097977706890481741817852585039559939282621152882239559232790941048598828172882811827516831014741318508776394437241676009345936597984511430751430378201317526909575158388071840693752592962123294404916430595993051541188902185601376140041820230459302542654415312235277022946292718430865068762605984664333842501606800461231243014257392190774701140101102456264964530569097628843386302527516476129799935958054859547019637671185089265359282441867994777120052483386388138935666979635668186704040008382536428006209178563508815078047815108821207595521261705852882221946012802735685941154234403936931946927372721145384540488808908661087923261341743110424000873842914040986098998882064044395997943337462264064159284883429021857039742507616513596166113147954805779163652607345892408788737531775788095456818610596135918237689518027867383144636796995222144732146311572971466077232105880602273754723988920497541886404357232928253222316956481901398922856497172508722182163746835615319517250616153456326818437902997901076397382400422960849007495215550695002443239153356058203020618700420907897743039720001551473237677421529942901709104014485882771066790170289713715200761169600890884545970941147507467989054541136671051398706794827788967753366905624776768989389126395789222943739582397125051266074155345482367116458441191548383033456339941178177373112534486344111654708151604931957492735960858036769290616627765372551288881068685075491247747480148463503050915771156699031934716424115859657867998925501099678964518218533299898694087416859393152347754304746076316348118872340251233101015352407938624434490060928378421116155631715085856322841935251055074313153860189181000006013430354499402632047415231846540039788783479187167147061154485158192664760821344543126790227840817129069349591619170996917723433789936809894663910174835675733185297492569015312009986706152275338063589844092326037745817590705490179622888171286499106149284501683055412478211683301769214975577959639315168338513134072741679791359545397813101366543421389168752342486975810837371852593112680088181408710273735134972103085883852681531105006194603218901402991934352665740505650146712132514113248945928738420576036703827983419732371901991124523249426845341792519601843451515428895617094204958973454048746563870531654216285155637477002293043300862175093798017102146690653120122250802456674533247417394008187757596244020672498024275377601954630707861977037292779450279571562580919932471197467165449832458008326187706375517325645637105350501449026723937630809175801297641778390810829005843497484055015861067363623157892517428001429623005861232402191527500087598657748036111125427902974095969039690729041509973045979989309647838960130679254691491583067047856343626576370367355648895320186007954808198984419756751838147958550193949352375860552110959717384576733470676180459021764542186803975958403426118163992918732458190979662039230482058132018070802422379446332620307186593980541892086466893275650319987347581508543548778817778741940870858504456358209860198498462080331510496461787977747369550302920281408389328752471252320577695861974633292808426697483757940345210951763329207033313236074779244473912561993556705343780234825517019725507010760100828403263066381107427866608194450131996330108310048244163550070960507086219407579714125416309373040152982244275755443548441424521541492383626939082172476574677042229798638991097329613509166176526542570162599134009337898214710241534591782127375804669876398686560727805034004928152108783517927265613343680709684503658339849448603458016626135796923937350399392218796102942077543352517092493615015561884648733266235723714635718358372100329021485660954721178784630543921359657747152681412929785570508053071237502748799516350167834903490905504098631353288856931568459013854506802702088769329384489476042427141437663261544945176680176086253082109944204856094274939104819564960425266529569061528085454637312930519891509789781614226824692562144527278519949396283554805364535126574858664532901215235026150546169779772284520796927317913474774145495688756805011563662310150491298625473425612307552777322813375181335470726746762468965766923242272866240362299447828123354837789248790654163869996261585021810396003731728881215216364614075967882266638885785612081152462029544234696191033012935680923371017799525578735271919496487527844346172038412256953099653632058494597761774566509696791038735518919972681256587089583868560057875812600113356869038532472280057641662109840600244103555370876993002611627844229481510118475641529067247155615320356955423369309225132592053233527781526836038212430678632210999840403131373635229149196269342437931708542485892299350079032188060393775542336699361944619380456936263221824719966590525380170793503832634326004931650572706738071742069374219214181088914737853961077322254201267954364595957713098476227292286050953837558086113583097349561118311443519327769885072686628719442476521400583830091597280415739248460140207972879969403510139913834753584876212019068973691949520638744357909386128491352966918778611949338376517274715799233126232592654825114873472282182336697515055415233303793123216577321367544595949819012931318289285798904536084760323761778256666755670516616426952799051655529134131698431902567617515848151793664873648370112958649345563427155882901345537036556366629592929298940023946159034501535473254174420869623146170946859869133879946861740670343444282738940747106234088675926939038334014167529241784748850422771680281683644178667986980440497662933586255594024628237716551862900373733345825774820591333233472211790426759405378782218749141060080522146283928630141952506497424991416921891640395296645998208490943955145347906614702035435568194656549696331857028881858707371425985532005739375285148950495145725291041518464652490177905044263915984016011272811960844782523696525245626998637028437808590760134961716980499786080636152062597037259377075590964306909604361329159681671446307504988482398964086553419414780469199974032984648486907048592020353363347137025673848420780229134979201568520077448632912104027935223862864913194553940598029641565840199593919558357998616059410043769999394076294912626061272348970215278537985519808910609370023762692978414293227542558905183021182623067515473720432786561116510990108305052231929315086361961718024968686229529529800236595835042249280578491199069109705121384812024122411864545035453246122034395428727646199176276758984689309626547490797857839784036001944425289513412826933666713819006006661063000518195025967400337287062155882721232567825077174984449042415201128188127039757694204778717381218294822436397050369748327390945787438614954376135455974939703233359569146440404674839328277232920605003886672129061467856786964785569318821314333164909344637776380583698695823865705223594977576887366455102170322713176053911710937321297778584370641795907560541925544364280963231891535266444420198129396135046773570402100190068539612286976454059582626730998464865302281563300470025869582175860506228498434477209575531959428514530403053080933978724786634139193647310030329184217091966565807438994344423468366124645538970159036902332741115353277881486291067681841891065015400835108829869617000885359615633481693459420351195343919127836285876234200607656408661976494034990911634910280662445641962466270418107055910980400815166299223180163487081645277574970087130948689251706827827169954772253480356497909473997715649345121344358428810631349011353752578648357711773624798208306164889112755693046794130293063768509768888840230926956163345891903296239855090255091010216585160853286769641626959210974284131799662105804783336939203081265399339957885035664313759420407237098936216234535630563538115700519551787826869529072381387888006995173242269366104322883512799409926741185179004988680714721302000197425493743925545458081729214053482858096306452019446402397270922775660035202321547943909999340785711583904153400576874461614485109689334064815081187486460927180700500876791760894545157392510515282500136686445896359358820773851728441252873912095028435313707243707662365124353167446008634700458036031978082190055544698830225248513913501605729247855149859642408627667139754080082094408215100102748669651450816479930771977027376030226364386075036704112726036114181140388842884071190335566092484269613126266315635846957663017240227531478802580608675887024191567470618317459832702429980262178923950516702316399335094142282816871599912679535514783525929680694870639380289557206598860870668857764504491479473060159890191577101672931844982323513648953050089550554392680418827176185570924271658468381078780435286073531746864791136252466561135353303699431436718852775379458717363121418915602580236483153046498256764885375219625236581551749414030619686964941302393336743023793987899782763470096537389478619662538598561098522158696844339561384631544091267207104046576856408548293483470917473967536124920370419981764617023641320564388122414276922366519927308937778319307338892343719404202415790227032751175470468268073757194209837228031989685922034466817744685135979553181254089368349815052641341872470016221945361837840093241314585345043508636210532706077574494652585932283184154712397791456969537343060067287498015092491408668268848991106193670280644278884414742772695763882101452084203168554559738810181566045920798921591637185955017371511836396317039263902587268404009478921368870586694950791624699948557811757430854221446666327257395022676275622037335206480395249092744830907170804023771650033597291373771216966347714737248354482557234542567416837430174806207383423419261013418096953026050276959065970167614204225935800955347582833145251122128724455407642826773687688562989271144004553434709334362217369073482064627585563587235968003531878864541094682656168899090527725555201015852348446092848836500245601971338390903983848613561005288091023133059584442490219417745868965872366316611534387226179751843863082071915721571863400854806306075244415715828367074077107756700289664601198778688914204396029884944042332411651605003761304082390591257266128254164500722319112149378516880855624450171444759526010797887167574881241478038593901190776231253811959111235209255182956569136526792915143998218452937974944374065039448536131382200346185572257908091127743149495243551056504046585320303354148309865462241395412773098461962981804052176811704203691935902753037312321068829206043042459145644960186744925146370977297841058540040943192082832416728838198496080103835103877256033757920984129666230991277302769949066071630505962630273780201094595144058349151874817033186542255658314804155334593027618185991897418004903471155683184348059868869815464423110283386016727885374026190723712572801691781574082200036779259257900399637940987095129146491713396627878887961665639155814170659458188390864200210224538863626007361127759658014386753822557371643678185217643683741046737772599030746984127319388478718557190652870792233383547963038982390803946543455340597441208283879976500531779872246597961514991970512611304678756263014202287469697636450161850948430147913114056586278566102630639487052692249543140870590312292277595877540774386674807958509640301995862224777083952442527219973683194031805647201399872696460129700081721280453111005550986816861956825211072710408714919447362676707962588989354119454988377603298599666862059637118115859793450388213100937413178783748822751148220351573940637123617738256910191069953342090576601774049829577560025243051094130789206703041970421395440817790272888448847874950603526652801839717484479703938462069859274682223192929133197093692177217958331086845786551533545530496830130995879856538219911900963778921708347921070623528941976818171831627921893792879933245191998311028603418037436181352623043830185754050237702556434491006841436926511589970670812585979475078027031861677446456602559468009940387070330814174036271194411545776934272925521131832007820807413157400718473573529680990303979747711656193878714936332753409926539117178027283524389961868981315814400018668810315309025078811414459190006840756399155930904146684885293978439902700897644767714046742703945214384299620347756071865648926499318152575308407166658728029134102850955296486617242500120247868483008840173796905780263180231801056784734781485585215658770445313035656229992286000213981793964996317684637744110796071609935430322624741051173356352028020893538123298442892048657533854924439495872150595645183508690213524203525358941694501569487485947464240699440842285757132057759856196669821470849959359656907646326008813628567101152722166092455690441893680954191261893482697180872882714555465652548149632987234501876605111201713324972202077496366881445058983854846991735078988222058638334174014520169754428772647876996025431781757084520151983335946914935357358501853420790065423388954719946830049111062659161565934853042916825873419526672542688105845364466418480441918258366600877860390087761007603891508561281316634218587311244939631979287911029551780315464790660804721840472631300426489554184912802730322255922549198521962186890449022754133329041057622374688743296764111432807034561424458378021994246077669173393371379658767563258369341605535449218647694052656530072398208310821744648987787268787490401178002787469990440219114366372970310091518072302089829062689689071525487595072348085192644053042419436167952020872548903188769454516928609520078423082312019951128231041298834198906194790438922360969745340109815825478415050814592759661178539687341980472064745962447644933073679401170686892420116960639519229906290978194940598097888731394301814044600486148550366468948778178939860678899895352562492117164832658294653038183101046964936581048233959743991584729514883298267341355479999722294076545136719900794452457198740356430876760046334605469310279479424940172346012649128900975840087173498251610875543716006776100842155704820095051679446141993802959267426925166754963580847529898269604622859830401180023207524771550631471008810092001159464591647536676234513862599911871221198834253068643628710154644143384828957409645270364183730586428686804190713977426950255594448063334953575517630698812286082539090953069646728037854136476823216229550061260170980262513507838539384510009266426411252818427753266817144720601880989702412621059412685471623372510753389951154077174476547756837229712601764556475207323143599927618829805496298044082269361858334445903484128902903032937418120648934649286789108574793927337462092510611312200357894648341618509070031026398349547166174709916560718100256674079623435889355748827258766376198136264425896297375340195194564464589171456230365400387628540895286574893765455441373637226625478362517231558918239667434089442639349672101066478939956467222072056962512795622838640930792800955949037516511515559066661503235716960711636666651942537895214114605876199269056663361472640863141436995869051568299743593966975681846290092293780304506912997256324426691725394991944297818111989907128469565617967208880186139201923535019060955239419663956126861829913497274498933177061166497885829719394485858307087998770506750768986033758468740409272157953638992390495846226623659501587388072354275292209928598236378215698628631983068492414085541470110132463096856669032257508407338929447695214165234427120707684444503880442493353141428150088033167971046500778456982979630459693387668582376029627028285908752723178925909244525101017719425169092245869652379946547362772972061491026452421837070360368120971674148341626979532672884024409272907708462788491200567098944331946901954772083017601022893155376107709038753936854787713445773202667621276548054311277500821036444706211697486781140620470341355210394389976366691356157994016907152125669615670222241292065143171520631234599952593504856782203605584166472006632678763786750959245171604539593730555865468031746171984465123066190460467366011108383353059682007973893592072016088337126820755801038924417158446325019901135675146492003648246874409382293758446616027532616071143583720622252902545492671585335772511003818584306616251396259298114511585432230572513039206339100017895618419936526513509597118210901705031280430524907478192197746173634618764057068991260542763609715013837489375443942452676052027026630324886397697764195771734777139656322198475795112307553064404671425275000387835642504213658673091018006879992841122064628051279516384243050810064530137933780773051778387458948548052312113230661862361260539115719249422374543996028947355847068317549106244598048514828149304400045354538568592385627474066494855782944068440945597810097467183065949203527280187095909464223782389203178930637146070429525911543785059398230476114279257557697023647414678761652865816004551386044293099282302275677092835030887506111159674845268686166928381087501419285077271447800636585470219453585839758152158841666262102059130320720645359367365596553879238106033989812701042302636425467763007117773401611933851680119718966406311051811649457769763188820807697043432673197890343877030888827859563600325952277308471228214129341552635587117379395861369257554510368580898502794698864074344465051291850978816366947907735177323510318526514136959258413403631491875247188870800414900899861128014743700298662989081827634546650149949358257190989111976145031058745235417607976286659627749155929340681857352243586872594779867829585481166495792883485880704886487716772768001884188013343371861295505451206038058153582166605896644459252612346960926435853633969364893696804555748964041746339416991310461665175510653012494528178815692626677559933843046235008455243701504120647990518101496310833877362257992167112106249878651166159525327871613870335380318131427090672778289379534606918241508352482226195623836809205485676579637188502355133522107604966226243960395401596261381882123056267442254007559669447006762516001766498315863284102190915903045074475052562985274781497097244364536751020806745124306381265667029953371817144821671176700745284403526632878872422370053087732847895076818048528604949748620504449571134473248304403717681091746230014881558676091656509323651861970974005701489845773756190107297626242104733268011015700085453469843435742414207832445020025011072197768479716269510154845045750344862265173441298000652056537285876179254338485966363626880582138722325999031391096833626894013773119004427228938653618849295485887177455268201614479838770472744256828179264083821104421163485083827123410021337283940453237596222831616932351210485479921087408068669022757271563772981778269923569512929845432637484598904031013635885027617396904969805377105573737387484263606147242149971072413072600543388250884528996049000725746161487893631379541281979345755759942784372948277877170100312787307487231357816154297230504782470950797736695404186283095713488387615864433954437740427506918776081981774802404230556368981434530087549414470259295838791882657980671572050314215077587501539969046775025720236153850573675511961918131314653456259608830476547449052917566570253868263772379513612715131286260527769783882467631846006919777593538954356947840522837487911124635994563250742069913875503181155048185282176681532047224518078527695745996329869855114880240109413299526943035476442620822076096789891559966729074497064276203509053053857436524082550161629196277013863748435685974011191640758897016798741445733627928674800222151416595930213156519537567895206561492432436182282480549916669482158211205056123738273557361833509346954701463363464016484976571722328762826125901721762627806624224410524673555275866132451731123371876092396751290141727123187466293032852460118136836592961839723186429833236793861913471408067977197530101602707440304275600934841855005857429791772911969953709817411202761058869966408865371605552481326195238940780603544869019261643263019323635514052073159996135839095894626172597760705718204193261042066539576379831648060646795964502077977662116367313028597012322575933992367711184745801916031671646238103417613786661404571356047281187686025416467019154885425453019057774832084367171514231764934126982001247368160295355815417413537941807131117347381354901251348185579152311363383475158460636964457609484722220794669409698659347681753580686562865791031658927358181030102017559334000360164215449318321864005690188514017356712636919609804971099460228408878248884149185310187340758400964391112623741069446572330727210543944990610675630465386407899184326088605118651780738382828877841288388656972819092883480681494318645304698405567818484245012416840713761046460860009179825162649733736246629918116775151738136943907948525485616165163171439979546283072687786228765379427127610161183841578024516299665114066497045017946769366529572886842804748949209369358015179067378254518184808166801315902866240305901391420525768972789667586332094932313505825146548284486198127484884387240501245045794590934108832447351719838167568862462226434852394631258395178943408065538816435506758705457713222550287115716602555489872148338388484726901571559821570293426993284035977049866309246912575010829194610255631296724834405835766587284219485746834430932330942432738158439911713148952461819726629692829128932045363834618776412925000967818920777273014341801014712519356615619202956330535058706077885334962713670895621092675227356052494433814647739931130651908802698836545966730260839081493962308882302314026270978320724348841910403169860873314429649867433297275575576746109246097980782161535096758982041331339532811451735820640094891986466359706732116914907310199319332062827930343798245410582152989249870046998157398376618095870150644785358238424351356403561647978543658974241203861811689569757270316354365658147548989173441409479654517124428901859156604008314351990194825218461886579786042330673578069686483811940107370143024258817686552808612175881142516389830794961724380761684064916154449557303810630174836718013948543916027340275272930636373410801995696623097244595843518755796437854262326263077064761445423832348966313300841492959538009659155381771860607801229520443910257448399525826539093500373653067481187467918580447999071229176072900834046506731032778846075382489068544802944756091389295615362167178902469025017015852067167634109129726825333181656336346798860990522822813901463684151288433215212663562907693001754028169397186937115886328464329581322229599085975068246802616051670671889512039433731801512526389436973190585785203064819051108965640680870573875007732409165210078963962419828398288735869452740681641825744581153033794303257118384083318008717757078355339244791356886382459702926318059680115894679783044708385933363934597105306857242962414264887140494879752184289836745203848880900216240834693133788494190935976903670376915004610461429479933684397989564280083398037932037969024694973738067325854127095890185358436346058319544349569431497624550850914942675530865446212890656752853018905307462163383400830903459454575700982825936202909563475100894232594181305246762290660163530571484217289138402268705155629714301660514423248073755375285640658488565717645649217471138149859005670175543793992669574491717149528883786992738721343287494038815915677478386851911010001651628681481613617902290345883677898514243791140537952721263232504290675627648569240448901284589297339236783418839725286659949908185231547093421639694796352067934780571324124909052474792119925250484748173386821366725471184755389293516914055085707606593269094123525752426924162170023875666169675644283067094189447387483783688062081334561436971342610629065072785113983955276812302198127275772262550692736041553650695108069368795533157772352727211516566794050593867831891557849984371684808029223380163248736117720724166231754223446188142422390973399672355231016985891438360083548236530037012430479814395218066876022110552725238910947871555654818568270601392483832566490023011281429426267641210283282676238156973668070996963770866144041448562604351554192637605138542594010104108256534451175741742249525349322396611685982283955052977231776390067614341863181566644841918240297221016861172947577041026893855671268194874994126344366587565835642773080784315906059799596833145209825979156870347816169346826571755653086962089140676338103283297468594954357590327610646648895735620003859761074054955488373191597295875725869420775811423452755935747673008986848825467499081863226083330904245895536295606390144128399746995735452245141872806730443819508126696088294968371677972424507316444677232991040991766202065072529768649521047053449296101816681874900698947297788121493706277579747741029112101482334975734376212891305265731275590556161883771381343772348191429409551588527536927330587785595270747572285974560849793601479431841821038386384209538471448903177471649517196031065728943721115665398901034490133846877785316921358486913134656155778080296819407918581699506609107812735385560686545464728814173232507346609944180312935264962686212494037949434017773595619301209316766699151826762269566270382477408438655550252587103657424136551518453401169571950880916608939405273795224740925820846290247731167590828917663766434819303942267786352621955346855562994403464455160663689429537677760362955497121276183920030237073068290875404846181307936796393802398065763043325768165326616820667074750235372767504724628801660607550377273820997632019370829379453055300477675730560938909989562235116680058224558632071493078828658221041717957989268826713195737272831965407181715325743289956583618298286074538890848639226751901825588943624086990413808504185395062623817972638296882509650338079959284082721357200119205232479086958333807017240775300826450322627248014937540369191132789927357591701702655901552271194285358290584528539782553545495000526533631465569485389832348612676954066193033620144634612272885512857758197709780385191757327234998561659473119705611047639201457257559741199458608046436199804655680746007431280329889538949582601134146802416125442871855816364174827560186983042939853341152517719491072503105618760837040427453696007768664677171826520389615244854354775345893909820284309368465606021994847582524103489064776095324963590976421870134339648445916422232283705261142177562565417847339155836564844384799015210694593897270368602255722399376928066749402005762641788855083468507174752300360131461164611829095620158821420324296342082601209409506241254731698616414929796759050355588151312090809541192116049488720245794941020903697843826105097847233801428143942405954021235714759207694595507404211806446764827867641032357169355602096317374227155129779271444320703002527004739929406420720864794239411929334034778500708070045251872369955149320385915445811583213352381407820365069352491663346190219759719423923084033027178258290751992810634944522226008328237032595182022230990668854782942620801932663759775157537608228322834865874714336722145297615895984615215617479359518998879785838751029417473555377980358992290489993573880563498603976177937574893715583666131986646835200329860440831048800264087309244444324743016313295410741281308044913623838754292368820944446937253912363560333414592440253409682409785066963736053117082214891742732920764128445877421551218026473587264410555955957938810460487488217239037970290408647872608833051030689052480216894619956974265770063403831796157475948014799142430562003065644356749170808312802081521994077666824297706472388964769260884634004477313559231237675387693770484009735196059038630967752406358761747571406737138839251766025558162387848444773448293180193895483515050566354065851392883746887075987226851678147725552144650818800288119528840639642020606545847173889858700820242883903119359707475502993410036056465399839212780845767841543445233400370436677161930265241803011927745471752197295366830384253178285892356130011837514761690397702737991695457686409123154566966769984104504725516866359522264546990639989263600743822961887583126088952471165798336265819233591718229720614292505175627376464736613356510163380000590014081800920647039957322913146128679221860937263306337093230422699359307245623996732389311915998572754171758188855797893108337036060452171451378809543013241606234854496063214636783583417401125466621810135924724280352198507633069974047413982116819998581832913612367109686459822249927917217012299695733914916027830978757495039779620806875007677545378500443331873718883579270005757559820709778202870173114526174629737595516302305170535036584206613668873142313305267981079661242274846626659396783739556173628596282103917249996799941723180131436312200691798339522900844466766766060854636634365450027131593658877644980089559009007467744976343128905835182286209339342252064032491729305051624720223715330348689859776170048260755191035138818576008759920591295583970149254979766561153661437348218448168888292285840566989502920527977547076202055280972255948037580005918135651408604867166360504775021983090068615303946639231171206043361612777809028975225494765923562154181616825260613014222926063204861155660366009758955214442803058726826045405840153989385735412477415079724915816211748642566152520533451711873562537060041017150980819264801396083596607024344497075244472931938487335592222878812239420864588118981331469435822203824163030019631080798991235327392902053443335123475408108295517744120547697000988727192956262400375859608556878779108111698777574265429373772488032154280859060598983688883212847161643837801354036214202717781635493047073113598470828916488857136095353356121928442240450682283122934076958404640818230365964457716261741609865791062204313968673302884328519134575334471121934688654678274896886340462163779882176154439477500271736840764962848359544650976809692025084498278539050753314064026638649459305886721136385883387727779037777261271057581573382468808780358281576178194315313303454671743846482117986359929473601437234876897926061220100896364918597140229504165493826903285751397711967208135732922226938579093106873935315709532056019871120245918457564534582862403493400850246595489612753377565118869215512508481092875344170302864597540143403165930096189291632793098160995385719151844294073159380858038471153018768295345607276599609593860053581029653392399218040559464180626350895801403497928431821543171577623871550120441460428302439037672540740889036259923574365639914761754669745960758893547372620492946401639078053592821040654839159558427004263488618754231324658845995394686201714954201603450070671283508206439410754339847305753613918550436393571093954488101343539570513928171834433715727960648862565925463916870897821155983885731554746746894868947842550383344779081322737971458100796843351833512351766112979077908846086899648167992548485450663322614161624999117454395368188181937734207710943779062832647001707036599009668280714577092233066255485413012131459680460979359715760391911525299414711399140499346799691061595945413759450790652223731940667474798508310260156974123403103417802211465274375913012782661317940441801984610038512280091079180054314804262549148644996925470844303450261473383052931399726184405528440666720634392474151193804815135454282239839804495625439032135252439962217483418933105916491545303726806124789524798881106562422962911909072208875648178029605037159734235900530744340503908994567971863494810139786579546078439201983252204852153141553547936437500534228928334595349536059088127500670225777812220843995884539687949926920403157398213772749380123153363841738760433979242034727651281618806415467142781405780098655487298425725303224939267280874353391543237666036603141921235835305319311807812249616326347442225530812222517140268660904039901857991434898841986959048937098230381253576847843708008718480501964879748484450718168344502816560068406525722603418312068999147382668431014499370617942337672182533881204009107431658346044800730554239471549239175073488295561763710113413488715396226748996349634126668301127865353692303302952016227185804183330146868685302743520362927222729549800200544762507464700156553865071587302342812210421779971345663962679321251633249570928721694287799842089530252892081636464214835389233541285367632773366141774077344839164640175484460451888067909666260193587461749382133229112921849370316049463086509425081957898247437805669206803398178945641863439785077376514006254082661020036924525426401760433355449031950971398878906936127003244329296743104828380403437432113884194058639664246446119423617543229457596657893599030279677944065071031138535626745196007275284110173624129697127141861551195148040430313080186163767749129073647899676389952339268713878593702843671308438977045127690862595682763134467125123633506670498789658440001457377670220723787126223424280300230997663045442746153817872462245387915938455922619251774420389194309376164897901130435992120330640621389845742658364756389962372721899300304781413888244874517986015615986274649654252556219163594645474257587657654829607763279037006156253715937202579206244452565575986318502266120387339186074402909779523180612110377159868309801517859079408646782004125285486415040753651786469385647761977877556786246101351397724164691599289438253560713665961918198149713694057793093461562780245111642000632444466333106100862393447691328071038842599756580692211367579008245357766531165439454478595001376180245178104181875271982482344281097497143299513062043917187890519027360687569669678222572321219126278980936764258914373278738983777713451343799013506594621637474667116760870607024384308113192432260404679914949188401903709689957367650080121159685473455810565934711197165265076765239313075574573794565837171398164796618663853540165924880804145243975226644777263753105101686982560391987075910122691752133559711557903830599320901952172126952717070091470070007460082126402532159780812411950676855446255852708767520532656409035828099931180545856827361993014185555132979531039033508657270725952294014247025546584273872902807740942518951146323976492811453720342705149840273426238886132619226834930022931388426914192685591268974570798468447537890704872822838640679809357341801097045876100738378510289385972137537613578267917544579208645506081394110792308873672606915434384673185544289146135673674510613800207563875675040311418660884527284582856307523307187675496589209684008346316697718374843363946155304025713953668083945161172954462323846221711752203012762165744744548038391413809001878979634507711260194951050621364266280318232433953697172079416026791888843762309791518946570269445340626738631994582879254122510342281464413932174859387470595200682138161987626856142569628501431824564187726750772833555522893796423032109547297094974752625009964706435492325530089312513333415382300947938094423219086348639601547214070228916558838515080257888771244911592236485465284722542581295278975123522029922092124682091842911285875626844152317136908200513016135812674127954344718094437760973703412320992436006239010093047198884383907832921542414685658498171877478589266306262331851953441531760332639436082838044582024867853267773436599583375730487443191415057274597974332492413995433821343280452794770564834034642452971805824613973527461803012192968550536158587778400606081260849881157607671830572383107265549143382849079545587554992357764658116637465512108263471503118098080558491946739718673002440577268930924429727928981754556006779715741574846746621065666323601515072757638210476082668987513331623764867996249646781785121456906747545658965569913646388375275552942837972741614353605237685558744287824405808421190875365035893410501418429134502046989993929559598669586762635189976930813874338206707980625102835893829691880857010609238816788147489323803452501786703674465760841216194322907647796074759465165572767327575239400384851093763940571319060898685814261405134035371845735697512963795126766071606919468528683635151810378453105532353223385806271139557420707564167835328360462054020485832450408368208099967376074062242256425523785920608866271998440673928482267770538245998455392291980989501540986571040926198534869019196754200796349060323426263873780231502779474017637845304617361727096926585454849869775748046398671802985323295206191064009650931598854621421162638619947069775766995364822642160377891750937144950065899499724888462301414036210710322564776619936646927570953209413808293669259625047108818463073962284343522684787149735984551088962477424444294494820604588152090410730246650239454467348874532357561105396582802718074282849555258330766389180358361480800103043242360141229674277096211911314918968078358407021091069238879044483108920679591551961927507428469111398760873019780398939284057020656756882392640604114011011734575669682361753045470026833291479356917064286069016384501876515817659904029980232567072366028262524197101696805411286803564280913849217520069275174272188427311479630390640882988969400810468367595303393485682872733769067556065276926596589817003146340758153632876800696947128392098601272862196963067755690257141162968991805328140277520601990537144728289240598171597551748986192717631204945140537109392269165802813007367163906124916380333216545411740701097618942157626958189189981761539426468689307470595904199162082883791115359767111125813553068662038011317202962336564148910360011853025822451932977865924409559446883835841571007360119052672470608027413030739797190893611543873757530905995930198511127309827569963096007913674042438266310140437682298141492084557737287839601326421625033113798454462714442145826664182145033076222969514712324799387554136524168439097456754011618224930172450153186663928535904254723477446532162225395974264196023566111357104282311969830756470847990548219394238140918278021279030939075991677141332435281779430644245419677494892592776185814583311624727091953067672664527671492857374529105115460340567319425559393580162887455970221108471744534174928334458881955033472717258481662083010345847683765125723388800098862119453589393376957407549289867973819777126795452833314834964572240311907211795931982401156914492863818600906673510049823410082327880373453681353468964709535584683829074661713827058566120929530628271722483515006065181587397656548646100034000313161304994666986453937867199508913879001861367064847078283363154518857432400979344693721104790655966591631934277151026898650676176434557824780437786908935965063088388282793678920165710414460599332898390805136098460336914286625073026301485628310596853112898320400836529810443093224575363612680831599421769549226787458342523242749476861380984542715391564472813496429680875807500183677436479474916627744435555263016839826307838881379897455392932327196836948117167871374752659529146682860737968141970918016840093928464363541446072970217464714909104564807510386243049127201422318118948372410590187404643255468171538276791635599365745142274913760649789630946955673744099013414658609498466249558688445293934802903169111543814490736230778377738633586474327718941276456492046049118003573854097090390210666467777756032702426365440717206052437497860488013550784955780191098742585714664124293001751912479293358715718876385966238397102215172907065993270726602378975759504592703728093711102092186253148706782088666177186170115985487739722164235831103108430487435997025013329953149828449193073624942650259537113629451920705386615199768087068295421170064893586652162267777018572694597403880931256534180738733406241039202568528229929053281904301030589945117713426176525713580610695562489175647282256941487644990051459844351328973184436526864763698795434421286203471444035866424065816710268387315894793902582633829141982246200280624773530874765697993707941119273258186292832466070443684867296936965017013454599080937959206467041745383352545878967939323451610657966561957709836990636176225536219210200570074364669645608064432864097713363300186343452885569489726217562133282377040333512294055227525956874167817833314623260395910354780525405820967348720276417441725406249286433186848648279981181326206120555078735679797896203735827332281528738567666856337138911032808554420633973135881279762448561864878072158108607538885619030129558867452587395175431258469791738593407807348921373061229059506235539086330514552539126469932822830642347829112276637071461480626825894849819038316529813205799236420743348481007733281556576868769756636699333954383021184611380694818643913588746343772189745244605110510108180263700831864406756584691023106905440705960718489728591286504819513919545165132523362798287296417086038578415617403484150174291952839941589262983053602260039987069540384378357506246862192348985240351501189229250440556999123547818679739291338146449489394185891077388792362259718086052605641637926470002687049351076053886574675939147746103670131942114184969904488384019002601315205298934303524099767963386664839394733506620461005979788304681569891519313634371539228620424261492607595551928574008422172555363199556586825653237057354525560938643341660474751716476622676093525195233234256203401947265222460667745722853418700647727125139754744415981513960448626735450613468171677819645652798282423109026170361400648112724259465260961377302112432172363892135425544278967879864037539999488155330856219961325343981340760049253545105773932446618839991164621054655583106666685067976300897341969974069310532767210295500344177781916075786776643500963004544892377299498172384509882288143138562378644757541425751767073091900771893663821882730006108388007273568187865122815147251892036204323186065565791481430627177854777012403894168017628358853457264401332968174781632137733778963288099809053154138430802138351190849015504659681807900929477120166458167851368777979277069098478163082245122015875301620456933438939135340363317117001449936344656912894229520492326579880482869852744103213625859909484231618448635412103589149368980064933551602008276661990889870893175253832339633301378125435136067821660947688148161995506783956568874790271876269057924759939320113298188935104921147755888113059077920899045675185039335614743806704274103366493714242550622841465738059604036923463600501881646564023835239591009937344557768473600416396260517026543485370709203503422476688402420781728998631278971311298107223782558941509519901866494145040461624753738677461487303498284999305613454436263070346477233199997451048509793297207896305490583346680481168886917213251959878913086253575772775152934425493706261228835516345783866522978338785910662961865090169877548504707623237125576547641563334497208643109617075043119854649196161869007378356017045852891089736487483180036814480909514450461390259748989728613945578140430599909596538284328352000744002915195266927386753307781083954804586612721823633258335848254581213459763601391328352139641567830552917174496221765794541605473406698480946465843377130752763919376237322980880007638564469036479738530029178165919788526100666311711568745059307962445963271382195693965095835292817277856260547253519336807519626342833124382226230942406473036317464106005116712572428586243897247365118930872216375515747897581238061420058320993270352979993345087454607166825924535784386945409007691684443389003645706099840167530570162063033117726229376518217822711070582305936906210818110845997132718268318185181168285855798382140814051924415356370849905208747799615692527624040976360367936330711379948318577343179178744654514084481265238018966840128001020320767631096355843504512370094765744587358434006309801995232397402021860299231835995833002449079639554081908301399305737697455909092719550400219459633503398123066358460847149324529296549787320742816830436303983743198021379114542571081090588219907949495603961665741032607681247436161695206710955111726237544350248206041869293716062210007528017310473592158080594153778433382650578843409082550108384583617872550806062448937422870397013726912331048125381291329173954457321299297500703892208525778181431411901706336404051274801205196614372533691957673585563132699160066188075902816520390368230427128589188084841688036039166423603070134359107567742529421174573587716873379137775352497056165932532066599095690228109532752132669458398694072663699855707911106166329698870993063378799423404991089439160648780544026229574864885445372377879941694713781966172508722199871347034336953584899400402872446170911159982510210679516364304885032423594762271330655869074945494416581249900504103951142689772361283063930333517510278906932122243777746773236349071529292437171632404811484113305899148116037084409788059228388257219453616480531067034903605238901736359108538715352778255090062045455832667293788256122068593316590903740333873240086472320139052349286128648658829062070490320685758362220426813840739518140602312712967581454111884141749499233696344640228919050700301188257948568247013710262383147285795482076328127608129992366068286800379024338605572724194632762102609862718833401448214952411588314577728024638460079340277799003560584571363061849104472737900019467776264951339843749845430796726753448343480112000595596278665169145162821686317619492864877951887467420202620361653008243809867388653314069783958903053682820809891883637328138821096268390149185640454023412118242790124949135571866581211023654167594900521917132142759608620488362046810059382947654772855669264596102697232369162306320107195237553092499570163448814226635132656955218694272676755638444149239268299731259376026021946682854922745415082973364890597216189359461222504106819563298332697594386247857110853265142338967996044834098635243775232737300276431559024832368611414827997001625027814439928526334377362439597885674958969237270261808478199372867372802993949522706914558384912706612730067702200721075486975695036976858696445188090961738170009868059759447019248544001056035500714132151226102544755307213213239592347264703539909743193394283335237567963695776962116590273019423575485462861105288935999953972477586167618069084072033310020817980153751728428906094141650836855160384715962058108073851876067882297571209555035861092921308806753269072525449186233217513185195353181930651688892252584034999080471903204162265705769842500976042892357050444322802764464574108935149249654757302565146063101823471287885467855370627535246220614479825897334122399969872188849871845074275860933104949405382121163294059662296528016596344690562009699803872626164777844360878768583460422260194187661904691331157697924644704308693386706892355920967790695987992283328264747486619187826501784822285394563961757280783302983762078212177604310591011086355513703722877068510958491542703865753349996037174402158334639489424115852320478248645991683093441942044119338519065240069104247632262248325793831692653782304404969157209023561558306793085540686021145693388238017888991360817656431542632393184974754056959884398816470544965772640465498948549281144976984451844576197514048308440160323012152586060365041423121606109436270826907246530694878986304168174218538691291852828521538140689328372914337978374173566667960847901950772751928248227032625626898787054522032695980964723117113075562085983658924306943705796215340437797915450843383619355677848789236058226842309914506851081463117675079967421961839989709042536340731986449836847501511396771263061705896675446289432311387043226430624001288042842350362929260507592398400554351764031934976233980008786979024854020938434913501490435231436362202945645996892121177237555936956871409561105552992119739477203483775128914092380701458682670577934667262604506690624940889104518235425241999744073670028648870832872972497929833266653469283164710540446267064672724882208589012841150139447729118003484293421421690231502378080136732434230068757802052671288532370316330191907778259901078775924478877985703224625035915594892416592845539244539581244729477334931484992515044101303057497400682830718534025439446601432648393438702850332934851881490045966488379215830439125066792706428206750177202595458182737732161643649206679621616811111572583353269835053269814642389524833173455287124787824210712681580221739626498753717570081814003760808219909054596150870598237474895258131532482786572218214993530129449303115309434317062343245389720893954848050257939758952787647229750311472999573348785369993245081539889961320905060546507132472327855178595706257684382960519690588114634562314013409749192248880819926598403359394375009526880182780163247206938841105673483204975484437559955310253193218824957765045653077274984906227191926454357421783771910289870789780355029543295060315288118262901930521382271016159659131637586010292705973010203005011828437805125769578733440387107430216686544670936356952376411980507556943858546421310559154578661763504274052882863605237063750246693874387913116208078094241002218097100622743043539472941910324916103667779724685242602563885656357843039938619764171893564343370252977140255148789612946402973174369410055409296604071292863269241139261793539484566818830213212349877579607405943587238449750292279006776740905847006630200425793061641808156313985383621116946515089732754088073792205616954476221904436007993730783956755706888336471600884834206581613147480033701789033715550502949259379164305265083901074637968357724778571776410653755771270898412855375596330491225734712429543334762539491854049573767289570397297168337436850123159328874262012871420949754705449619368800622919167550759156754524999919309410611643626763134078799566333821298636445708800666529872103808031828882948935561948245589900987173391712135537398142573174990891310242193988411619835373589094502963653120032937407505981589085543478605244443550610122504850464033422290699601475109307983461214827800537362398458649105075608221293047024184392840375687927137534445328218139303870488122554267599441361611855083768970484216063176101165936423663707688873368691440477575931262057253493309284731045622764357323016154935000783036440096847812089644669144537999623506359469529070358801554067295634576237739068329083140689373521032398910004719205309912057598714255770470995975181324400026801708565099183460459555911617256025401282529061435413733887005566567164412691405457224660144959438755022704560798681944666301284074555739035995144198588837708955699230436387162291714041964911911284992650055093244628348064296764298084527364340626959879347902036021191946850015523572488299739064819725683312237767341505878897863463932859140008643863508097201612120232963515056097825753005979544442226987979121761584147105092975427448774134732194284143718109145784770751895075568520690684902990367559357265933696094545828270179331475543678963702042376184641388245585628760081589081321081840860621689745463516724476618623024073717453203296202787949507617455811610802473511482968102593793957294704673870552911876916337632831978494801355260363126310387449828026132580866861895425636405362611165983758632620355463301443781292581867152680182945906333042391111662370091922632499126495360632241430003979488386779062415665267311159039081288571980392506347938225585216404893416232662209121883765862847975462521564925598527016712968888899718347075254745574428872920333888541126668208449661892873420821411342011885080406760738241178576572374302178901088415287543807109081766739424731225654778278691355410482746269211768802675932773960291199765861741010305857849438635412146534373763283547381300403928175643991671501687305392263383169240581839848661003091335566297487261202182398063620276373116462124696169443479721127992351748654867991470772123136817397892821861414987627838080007165678424970759401269887632141693916415460054885307675752642836801172515301719455790008241484463992641911649971646749852726717735749487476231628081227374799316207371317847905046151326521378181315272593149194982652621691709792031648475391499899324213523836464501881547307611517615791937836787154500867987990807799920044374933204281031080984605276192564818335567516726469607394523546973113609850235044281970883958303237185507073548161751986612681463927638620529509230942293041545876511600499307765261751086100146379953495313318759703605168583721501630912848656406930045233078077339808797281438299928633033121467011307635207469380155453489022610061673201247507412801153544105053738930699794511500619217683743773988506900471612232835788611961639785490404477394688014713755790736618732515796436703444510994616911060966429480366771559557569846319216079923276584388375487577659325594501769358564214984280683704357850719413522888287594380147763684096221586584614699396614572683921260068518591858085558378333024256358316812963784214324543550352656618494522218699924230254421368134427805872435033562967837168229075974299945413812100929503252503261858466893971042333147078737281189417668545089782700407021766852451601487433233895388554803915115449325942203680402310445071270041784319634275780892545328844574919448261177362412336058778954952271521938021481375517685112654451759582268345275776992758874080631987641417004188580965200952735901896164366145167279066175926828768727151607594772438645505763914852123750982386696538170443571332572398067692869015081490417774483222356144301916619721641362445389258606757407099164998552555693824035106008567912089312495225774466379466987855593846092721423834151559289163575373530518458022459143594313967907026882464408195627352345163120529708439667371761376568847939880690828346610481467002255203225721760541992044930443171766962758461622905827454237682050255226228003863469508824311653284738340128389038006307514680466931791974846430332825642298384627532577146326462736247008712309480512661495174495497585347689580080108072182356571519905454363485798802106826836290971090354359874922168823449240139326397090430873594689424875296762495112844281565376433635209534551154327211787180150362777649370774792124059534599270992512561204954914627842076630854894895035840952200794096296428272990033292016817975389795618059081075373119850748323060949871947352994873530612952676792146494576020325915042577979483118201985867087517372369283973327769263451515283496332132630104945519066962836009808661466811108723271744979502723494071431103391346429426943445534761783365782128498268624735759450003193809976430878060739850370978990764928616978852816311445400942948248136825617821760921490323485586159189937552437002700102957133666340673793644051623175699445937669522778835080992517663254450852657878715912544156871231371469770098807190573469545285911625485327505954780418170417566433037779648150431697057059543130318922452131311754451365363237918948988671758982909869733471975811687342383873427391934570327216546586734606996053760778574440581971405347105317751097364385448445733349522102364604297051465889785063848058910556512725535300806995709512715461818850697006768817226954877620768119118337087418794913321352427502968311900815378406732744115627295755817822414562330478194796494683380165065856909006198039739948148364656126521049431889087064667279800231034406194781598098151965366939868672979118579578840813644715333597580557272501796357094000607659103966742916177470797918358918909413349320538083115367589397478783329010239928451091654531588746187364926914782750217281916149052900587837153307454549541962403398166047600494787210279046387455934499354122107754781163129301190795461728609555683977968973789500693298696769402116774484624987818317227384332438299059211035355879680852037651831002589721245534711555917216842135963127836608751857741017460708804267511117457030334046151050868229554048988772007750569969191465161666080650609476842244083546073132461522337383394958899060886635595436947227080240074944297944249197110062135962471486373373089558078420545612426926251103209477963438515716033828434386220085245661201159877255945544171803685229553762177367814274591250504882933881731502343668969588701166542762696707686964722459875893466756930055310976680263855284471197253051423301952918022292968822929060505231130529881207334622296425301716151399289050777731552555575033905749998231788693375791347416729433096597611834084627353169052473812082113664191489050094203064774122537740188757882546643577953121736819282910543509271070979670554228500531446935331239804378257339707323620460061881630478058262324189875389097778339881340256108261935655311853761029313949392875413977673610364500556279220589380602475185066593758942428872380786448874122254734202274229976951241466486804375958374391497340544390936566711563917000263544972848504438512998719106794335401009150864721879173374212458106197757729527383049475928572414300920764709529443663890058174225266917781119850141265285528246536032094925232450426679278636649571010578940428545308354285896763430003724667218342572727770604429350054745139340725381775079650864905227382102589476818007054267041696533420481856851480628551012386979632116822993746354455336236371978101983035959330753858769354789229148361133934932506014062391716689954466521255740562838251324588630963550868764602164259468551735962596422709723476352954819159451300914568614002141057239176434224122656737025753588724412558292095741506602878181660560116733705220573336172356995565375807886461595248221156608092450570805740531256456381573961642554900126994044618319910393444239901293781617854190050193622462592880902249283813341375002595281627972379422656106893273374878271522627589861134720404519971651173813568273737114098730748853880654205055881066192001231835602231994433091921658891317297083791225258668255560676336443956238692974563170129531234567333868794774792082993262044459828154380808484681250929649931647678061118796312474519083769377241835723686441623517097141496318662829521266805384463758648139882326501923488752628206954972294259212875815998989151608650966684504750222076391365572267789321511773480928838716318956478796272539623585323014496185838413051767968539565073132905200013875379903095215980334631436987540458729814235282412119106038502639592862382694310029820447566916566744129132636427067783951821438073701116927894763740615996617396764660006462246393702009001917244794103010557388109520302112326657067497851996442954539259666445276918450503994438012416174892967162216538741240928888362301282356152135366885143778427285161665986441928368538960574729119920154639978890062869940033645826222887738692108293958667688113581436762542829225500699170646903480495974214704321117073900676240990346986213626024219063379315759805668449428672035863358283309956778180922933500617474107629666166497463909070169655389149695663111514928368129997331345982689809946011198526172178977935203587310158977792184773295509613750561449646599569744067923955025104911205036642583946708963147505910589531037786734812470980713959809792937467476152438395793129727510686805374845114889718242891772594355473569452078794896121039139859187202370492098515864343654711331974949302638122641150391161402488272226939821290623584094178206821539100386694986187422701951308313934727641584624344428942938898136565734036129046105249315558144460488001314608231024657805948710567126706324413508080776356658266102035895828122319292752432920784592842975571213275309729315015264218692257942182785749469689362034085040811515489791040794539093422914716606593741309737158130296935850022595126377580028907478047431062717645872925919986702248404472096991084935938563507827224291551904580806382975184760969477269113387879273562630606253796852422476659349342156915076460043366866907520235682404295487148112447691995019096037834770638408404159981129222787646315015798627501442497379151932245122756747779313016659648440910889947417754309167707670042385626659269893249962609348140126686125351806427310479125839829406101665927354758009000380002294116101576816179802399823847226425896491190069338387756536326337182216777442299861675759119736466944993085908647479755177016370441340268615523079804804342396863817768196311702683801064697311471749687950024928415151242182515734691310138781060140143501095153347202057651209032103088799283053966348160629200919766616954824883622324446514982394028538459011763802894640663725678865858086227540502081410154489660189526897581635707425199640914581627864730755978866995171178457246564614964961616143644201884338659427453611669747441733310874802298882688153129995805329155445360531758973258584548458271138713491461041675556234048656761540626846644653365835603466138422866806951234204118255664050523514794922906919624280542018104882781098538971711237534480538114332859786671149560264273661140130128231096101211881980344135577431768474147156369443127969553955460523132911309711620763746766586270855358523716383785513512181279798348527448107539932902074090216593991374939548171789700652686858696302973964431494346561261470771797930772221025126862882013527850367033590816739045507752874613675062991804107055317745929051883589706749815299981408657975538852387039309469362033261312455510508114954622394251084029958938392170225295622866973997416130241414701400450251435583473746708657030240052903922178315522677502991858972870260075147015778635965967039253459187651316918046650427905780694099312565347383932854799058727437561461665717404528302873641924843611298599601717663336495496983762454954136041636056034295741275615817899081263528719329586230915532451534184726740596658567149141129218258163618131693306701265545231035639003179256243263155889465118311179976615848814764145584821283076759372202992958633624017269677709930594777844859927427985784543434058469262484588400084188967189458857097385473107514747191719652642630481747497192014509623274632316324520758505296859123013145970250865410348978906172033789802106482676097431087357265234509449919023712874115142718686807708996816618452022290389156686063413199233755565211443352664909269233784151535311789972513325935399164148225218216231076693233170524538076081026578492492600629540661524736763015393303883628234734684763151897241045395673760434861890839055827830587193513335109928695221361217415887612783215762398333465239026100400436541620745917979353370724922938618550536635074131421969373185810967446748782099745872883555282503829731221766824172420071654726480541552860693479307724714873359292953220803794834170231244199229426935987735897839408557238204136284198802364257999043817913921703234208766654332369101769975546521658801535651443971656356796931511768737844322995423225378276956717753432360339831392679279208665373920568284817788573638675149031178084746358303709543783915580999703177271176076645378517913831979619358285314665566684065083914276560539413349941117543297329822612480495336481629553714756964405633217253411454384789741558573711379815516532206289293577157916365584391568385109647550460917108797870945287690140691560115749528708320644306860973302285199659300372612178870981754047823646511458210990950888787480480381812170041884826182417738929084655541038625132650943810700976710979961053561018512522869521126373023907304039777089696525821236883711131442280498228920449495932368567537927970369931237632811342501047345681048942485379972341097693247771658715588309420551810831824485055625389409473238252518564373136660349009339112509524305681444909103578094977526445032498072596242042096818795691344841971580452021575480203320834486187848792465583122598910808184027297303875375699526288452022655916427243951774124424521619227562061471408552364256583580755985550848058785259317046484490544248916884061283251012165485656423056712383882576122064329997158912292395642197482180813791225395379704897052052510176700794401812587622070982950699116182084572495990599851540551462132143094194068302909433306057804125921115478072216956730423729296038606087606086308101228067939812500920673136350119569388151534812230893488772156552556531558696629594390457617462010005790675899568071199007518741760404814516582435159657459778266505606871963692148925621626354621034696703838031280905603916019516421140320098012059797844542709717885477251061195301347749788059525780855488816588903849307236902079367730752714202800606673781081731449533924536971685951879174969634853323697073475923917075471028040224044009477424418916890126698093252450947078440858224101423573995678102112776236795510267016382398301046359586826677713995107960998454676834285480711437608439301014720397121372422680339949566393031814645453522737261245210333067645464300205843552518886319386556910497386959564424765807470758165850718578594448498354690537888160930543576630570979053681837496899136215471505148140131153372612182141908953243085926228445127586272096026373579016810452335623192327626993182964570218607518528809477879625127449197903317242639679952565686050067053272849169276656021563939195856710176868545764044470182407136588629674556572707854412342209874757777506864660439337121853810108514821657414924382137897361611408112961812269444166815730770615887815043258740990768631605866767485441437800219089269912859474713125366711472469880726679945767076947951861688144188238544289053238386767272338321131880875845305559566697157013295727763279317052454771944406275051018952437559214163843636071638235514986542634464079079738775287411224100869368702703113266812340964498679357691900273521397458651567160336480965501164865235905653937558263959351361520323558955957997128795999322774785999263284894953396090267476044663359738564521579678818997777380009166957966259724565414800646306398147428316983261950914451771794052117995584569853034564718553514649287360484710828008956247629682886954649936905382852933020102626677430720691015236787194216492811711599723780146648791987603781247217977488664124656764439038063641473535380448395674208087087908813056359220768620793350229215091903965873756550972260616259925775003749511564872370997870456071351398536455532945457093243335908183292063178611927121453313313568629980845999589146132857761679375382094574285759079187521243032161523279662849951167492510834547662342913562919475330934143734335710647483923302014137177443646990504270280814942909919806270072563280225354282522660357699413905508554345899750874079989086722324957113207596796867970587999182815826744393719016770972711165498156970275490014583180004038918839390114211785984489736129823326876495978592313890593672314380750922397973432768030205209756490289606117662598610015286881701299664814780509762647758035809080929970748374207296302299450174414157131110575694622038509813512660280244864426315489285157209433593347899044906218007135171784001173864044351573471795535661343595590897969781544596645776346900826987621975308813563147410410309939421172140894301408435488776433285027751079121210674365890037691378735549519838238457342886308732703341334903137647514109980942850429208123332961185222420380604616051662011738108673238602474234611996311886743790762822614148775624812347864319319492034489396630268916300748662340778619128262076841887166739277576565584185990672471327856234721808983453700574120680460526309482874924282824185840268553358893160691511721208064377063435646981978827983718927442600113961162665711710618244355043276441498809624470951461841359158432183504829867387142463832147799644158686337174716010890796722987349414093953685463937945374801589509233545813366409468164256292159124312888999572515607299160550369062184575302649668107084986135754090015291452893791060905927231279971244276409634643240962732777611199624876245567263097491078449140656055756446937785692662252730929797250857522793974089990846304558203908332578704684744908699454880497998720648950859019678344304546764110483923807523873796889918629541402841889942732627001645333499593631551711917190120709662129456250554797716933749260851153388032945726381764402783336606412942619425665248185807689435367506101727796339716346761420100213579232890491139944355237427733676936795054096412024833291857644256381267867690596051095943158406560946641285298471018772661828099720703516329239114730249733169186700310317441043228598470377588436816674272517978440358018626152214873157508936135855948865745270190615438319031302191780723212045499701979846034547560295586728357283764801218787476880509068149158072114866305466427336681857793882104444327602659046604514486184475331031003093113884279173999865344352492579805038687087784551832193783808908262201542982548316636457717014843285791612444097211396521768103254102624325320432655508249939088130282159090548248746517501688005091193603298947212128171151413368215122186383185190722817524216384837367241330012218135440558631197052849018480286284332250438478653312256266228459017778368730337412964789054013488388294199742076345979846749225199127195864320609986536338408104609096864892792075633808436030076145454039366758008813844201699425173455698285210004794172554079262872357418880214629710204213283588848239648782896919627600919276437947493670175712884497040041682090067506542330605785494850501266789970933944724576060465638723703125205797186716369915429685456101729689202601807824068443577835495557587381229671157915625383380162753757507860063571459005061664949948648087368065336493759198352878075434223091410630981882903641269813343801391637589057054122281379335476314485823932273069393811601996212537123158465252216290020375482781007433450434281956007023999459112644357711672348472062453285890443394513913511653832078111312734295486129414439390910689397497800435907692525632427453225874736367391768624852389608903956202894244421231482364359634820751351892788658354676589078322205703434199409662931851549336279427892773900292494484251114521508027984158467118324523448136711536735815466036240385872665522036331370831554597668646566192574427051236847193945213960341331685767302364515417775335920719150551670530923726935477357100135265752037933251418286887260854794368336012753479190029045580004748486581288013199031233620698208235203279877896335855297919321151230120341571068247200056652508128377461299371727442479285408352913152840242590092317557806438922714642805685377694544720181966475826167897120711591493545264199516010606526486533062871716612471447201996507600876774062458455040269864939331881850898494337613638155582165222685602891328189825683258000619520462825537329568008327279851200578545883038973255771672282027435791348324106317463529571119788718522802691178305833821471191632042040601151413653608445762822729145810552670576646443694746113939030122568645177520793340964111294855002367061578805143900529889504658461396847451674442958492386267191486520642386114210350347291704877389971152908617459286673284100265361889580955217486049502920882450004690404623411567080774463503605605181406354901086580634808518791602286319333621156617990573290659654541818339340459998094642575439414195847828072760001074639273532618655087670314095986557655956965689782952566561511480580227341853722956114440473960551996838152788650887267333730514420916071650162025631745130499765967598797387011434106391324340512577226320550402569647018753146415901145019866351610242306864058072883953637649069529298114193372363959548794089204953803359211417117842879152672886788627320374853369219025394306962194775952374825992826472382043451300110324643951991634662445838459365201371359786035625087904749897838244548167612004609127083327431021077363633923481616449091165039034723169359349432295989157487446293279346117616715471957457120206959763205971436009409978810202041742290738572179654013850368034023583139988795191498626891528819951510255918991759167516075032382017721616707462450865917137275519205922261745251393377116850488201879243241056374303697415459377007522870406531201385736575477290033177426027480029008316698555307489325343448440312771757336648279505359471897228881082097606361443175171964849368865208806718370751213389192168859275197752462008086588874282442518397637192215537509524983423318194575104047248282169821175490830634233885496092206561628003166220867156028047550959804598113818113349898720996725660416872666962702156072537736511593326738485308389357468260209981720012437156914979929473645133401027363626219070674883573576281993255249016640322850412540591635557569203865908799600452467904379086972674451229691802334665439852193061789878279392151273054969679363185312680258681759917815791070813996451981675156996874687207002721962130484635112653627308949552751274099548872217424018289762858048621150982039772349810799798180876180252525041237143952866649358954134643792764818507585494595249689669600425888628065950256793302939476669548009166818699069617191426194592352667881674192778532401960118440597372654433169467496316831640532331986937602367130564638757178190351541560220844495026717820110014894769232051408712453322526726396929620489484880488460863788449807615393604596320830214606978325408895137345815807832297019253273105707711489698556927219011309340254117886246033137828011067892100891478944348354534506414404907224928572759642323083300020166273560059146881505850950976218407335077945326064201954325053956572728649222693234277556012029307059860793607514620201444460366226590058104853040048868219455253637315434400280523169726185508379282058625411914112546920489558852316418206668491903188967726769847775194357099120132356298667188804729032559570118456590634527374327574894834701965160604238496902449234375669195434009732184520642579772097480124148791572730005426345134917150555771980746534571865088189107280341640275348532120811799038041090658598180116837340709767566085844677260215844473636878320834597656871198051948815932054383089681662585058436767983309093863625343216287139510403368545879137979194800622310543088299806100494743914603499510124171114062548029447978784891204511547726631229697531806726639401584139020213878573281543210984392938668132237690531703687736585483675994102303884683504792351290727382753324622841165726436924681498138280571130273537851470911250431781588749563519695539829073503535936060799789726075394660725271809925077926926413823320764258447793765313427052740709672280875858112267666501644112025451602466338587329614178334829135609544348806734519744461027774314596136921291851303147190687134726998089127209569311619517903373437025401647177474935338830346185131681615378822318706006653933188155643870358569741514881950312012672181958612821032816383651583868119709378973259741223702115276835281801226711265698671189256538633049912124855266045800677448310616496637311023962563006767937073065500025840481805926363621822235643730770963648318053507664100735668633276171304671219536775869745918273967678097515284090170150749355457011731732565663593939544775994568626115278724629964784992369912154387964228701797303200033934730903648918463350316333776882710536529725543284291254742468708747013930564270926923792709266999057051944309048040253180716240536357437011725334736078011516046115710125332214282427578532744211569226100534743934696075454722131645301372882731616509640161653934948675275903734371503451213998817202553421481507898627830659357775177686036318621292758787440654573431505376475988505740241875517428724430448187197900433694285813557135700252978809822649702273155666751980809793209588191355222478623082157646177303943291800900902507796097115980922770807256047009722986370701335286872169955177050719888907801286948914967991498142134880303686181471919019567655763864216559021223872027311740069010809353295813145359411541678908346414793238655810045966873198017044383089036315634680746169453452995327830175005375598510561732450806600872965379172623251133124948241405296615043967307512861480022025276536529652348290430516313451021461513990978581947514716881359281526318185499189815514209328717386801345341682857107078354544343770986137665925090123828069808655619973923231025279220125328471354469929687305034560886653657630478113753085927403817936255335739316321984630834012454911382737811570821272073145258709526273602465165187882621919601848591008283150185729933684989349224984514797411821527653486963833145535320637757873981920934952898504610285488280516734617352562993503626205652795404700713739304445389203095178337195642404011700505638751599639897991738750360269355658588833662162363862705658634863112178771793819687595202610398281424792939327516943755452266609443338878969374322739668884623711797447441431729541676945565363412870932293456241973442120299063011444285761395490652987580777233134437472795037143608423226915757081542301732624431285380160882767211711604933282724424672292144740041631565725103593821741713460083087863418037055660317134251346895245259541181869213902730427429440046144238533123866066507959826559579532339784799445404641488414650485413729745098187752460699550252951600892072555099845265972605161591404437225924764150429345870349185040579799858472164385906535298070977066881696030762329190116203584735599590493374907434532465784081099223624937701712938801006381736005829983225813870751672975298860190752649005749755598345167501303947353078319637174830736182942942990413044277575327828557423777492107024022406176116809303800712249288959600727359003273813869059040209538441809796689572266433966966765704802655120011131302754927857255475330385089282584904340554502488666402318961849671607236889446879077340408361038890200258159605102898153323794161899283509065068528051411079659362502207396534792226249477182968832489057610240504094891595717373938511660981967860753136816487077594686992322016744249394934565408919023059330011849155455737819118358237809071446310694684000684406659535714907285831545676635332758510650502960287638354803116658425922990061208737262917058433667068535028885117394164542363428644666065378217619834801262983331738000710767002046249868223909463560066995554532209768185677022996007284211493707289605260597783415301190180938666441538667547599453194372473336289777173182664155851898014343675340968253453345072521025211611104445293068833853352561947876173337152038215943807355463363404079864743781243544994143004674371475993520948385866616940855514615499956088102852957220104926102675397534683386167613387163937184691695755458650295271270964833147641288838319277979754883370941095677349508322868777773318223118845769714330023788505918471069848302620386908566559573431050609210303742014910934831248519335726021380926104880550722947589279739556182423053986962377704295990808079146505852134776282786630287387931540584783128801256973077691885228942388831572021581960542516485307407243186167732090026838266952989896719271770142094688032084860504283805933339869941020151010310969676376631925770368718042792419108052101855205480009420861597061312770446171991964797391062214803257342933567246405052515110488683258740620470829803921145982992370441856042160227829557192987459402280352858153614053686641227791432113636950674583628068062588221630988933554036548183089522180739357372019959389572171629266161748056179215652850550843735074365754130359735376272252316040877615396257170613649362736168034579856027454500623293570482624325534365103987624752743959309258364635897866929573144653800818449488855092839270399190741819473684987973261438304910242193103045566777001714132493968800934971783901344310405905982521610305848103378864877105343651227635228301859496401289742184907569863486621150090277424840977443814451363805147064803228616976189784604294381721966683897417439925347115288853076141476192452335218822584469903559633138347397551917641113203595548677319588844159542567094269397932495546659104758199583388913945775559482655794730118588439788599290152167152588342997052865731874145749907237660927657830703784629271413697337146592092761315232085712105675154930796194429032789003243583328345881130659386339054587708798262812065094622813380452167736587905557108325099261904591539676553451565236031602295190997725177205897052415888737718207954906485330301815621590832708740999424054140105856235541598775558769440763319943713133031263907927716594132746649518872638437471963253341005492026791051948078298990597811381521790058046919584588570438668446049782644626729604802318266681162024306790349342919263568729419341502342278693553428715691938539287851498338051760711571526701152318339755132060383474746631403767562254681651624674697186723229980196401236835089819848777058040135500703479883421755561512103331054939612160616232235976973170990785285572491584138272679503300844034058412098165539015506148547052829478220242307216202338773805070187057653556697958514153153816869339092117580395226420281346622859200162941222474615189411071632067601449049754419867370420760616198001457950660948088529675218064666129911100394098731042330510373188257202419093904168672745757559366878235118585206430039577771879265784411324284458913235774973282933411256633663797824048932310849151585005331019740494459528296555509922613616009769303289613241020367815697374739587966349864665340204892915662602700474771756064231424183801393266042828158993669137962649217924009284898936547888187359762813759495985699430627958948159842228763281403594777813214239931557656694714257262593882301334235562258068689558782203980419005083158819276053178077849580631186243368625585543157528875079786727127945023584742263419207651961314434380100511264962623906352695490661244861815710758655747353830353272368518778644695740719154564744732786463394713326610002445014215461227633649733375869940178807030378909003123349636253361870822823309149626082443465485297375078022985457508060643532882172990097496587203581229980294106170709666563516756123669839154846418603868138345410568560039459772894662860196282948760993669402867828068561510675584108344597333067106362896785001181973323529189250536399008441228068363627189936784235514692872565688579395827822305549823191310166226474467265398225461081596704110201551672498511318110251129818596028093519713977099862495163085593930127649773252412224770677106777494776660382773210634056287498155789836625532324917123836349635283191538090789143932769444299394765210414357625410157696536411029880733813123877018326662792000980473161434797433673670286611764675118965669347326423177245624903374200904017715125450403391220227103148935389377332553577947165256816059234630763950602743766911271951852257254494720882221559044031581389429233602861938979333727196385233225818269050846252529241052116799911495776355907505850229245989816704147479075330563077689438464429610694323141983958980337224584089313438823498037995905976169918220131758574003667416402161329610617083994763104377163076746273130285244112060826948186199426910567581622545906898394782517949856496525058537545320948231945417668788150238587223743798699566298174099910215963223079572035353158030988048478428759846632387148120474684667534343396797489893174758482403704849585794564675309825550893476736086945907453848369116169667240828119788018253190575753189465828172412701969350487717624689889578365810346017846255013460266590302359518655150377186787649786920343876698496550455899058804661900447524348674777918089314566269431337188683835634937824993922616468095745864159264756648519592782616657082651110625824292918933155432621388916988229501580777578637637518836352887527161274984468241134451259107194638489638330389192820871248038320818637651752033551726126521838527774987803537981720298580056185404488169760412393823386852361682425750741631345650417136733090642915750621439903149665876205708526187806826511981513344057239111855775866349477837566588148207771683860882976565990753592869874680279022977612493723325492108752141085371316926246446034299916547987381900538579304300166179645397814341246917044389302734592126784481523559263761893608606332714736412840062789364029070845167679404018286192299753373213353487447140765306903185022970388672966699850795913894470877559898267398948558009389991536910266819436884414854554962889139789855787034416953731004226591664243240357990341119716492692782598572875229412868416690897167124094308038116362318706234774308435156628935375056441969663987569307038096208745989500390413039341017538065818801245882119494509087780846380653920340800540341206003937342882516272059463598593806943900372677803963242236233748191298863972720768683849752802263068683156206416564348070067005213212843968115580680863779697276477187658827075453843564869030289859650922248510761682385739808778833520747724522688986922461118275641551388380643325940929559307826085930068691222509229091115571158659252132359823770019969781655254856661891910878633262567234387957160528912200970697970941848431343343821496797608133300204042551153219837901075273151553159719666005955026768135736915816751076027853958424438573864779480314261878546211253788522455738043278510789834463190049210609585327533693739213093896059533677653070852910003801163937275900756321774625281523290343185869029890080771470372231718128948474806110518902889615712177899310405677343409662619350552590894155972387919401928020023729781804578087576891732861503125918763117105053907597900935566159969803411762632714003390313791927455456283435093574537289922835677960195698884643513016035701762641245850052254971860885591193348223129187038117158702437538102453402853080134501284838134411666591353293293617367131596895188414661435433527798559595951381174199283568963313725228779393772462298976704747416886952494050341641252843469393328033774953545180986808207494678854063740358192447586391949956575722981481106933157413229706419602033815740540405217178737545969753248826399895417476245839278402993973740417185667301834969605640640654311098231796940702276690894746576742002308818325863755711034698068110717509130238299740234127600057686632788525951930211781338098453878592903886393347141174385514248154065387779194234374970429174716190857277203440334397610243489676012311638624857291341434712522495007366873359673411072242926937219994162371846257829226919797153092633151832338430566692602110538403745506114577250851825934027069264728703768082692174661655030177125934823287699587475450391255856787729558000387490598024404784376426428673253083328370747707356953678255696041167358508214558642572889438744371196166993891991500380866091953012790390814519845903992758983320424864927062971862959580024120589167350030549410936705531476839910007649120869413682873184263257714275858573748474174015024529994637654957662770709474611212862210548059045262349523315704641377203084387596717362856328801972310709552627146244937579694540824330895824999360173412647688704981547043849748696728569326101271980374177655626400899282328386782821197062733432192064415619873130354311519398503102414094651705432986218532461638018271886604392197653108330115403807787667682571753118356026233256664905945162292205416965798234686999708238752183941190134229720688046941460594595920776777876925762002416293477780282785456775420274362267524841371921584803333009882385589097512019204834650787774249495807305703326280556205225835472254111123121968418086204026183215942763469228623499245897943486383819817208279724839204693907794823684894083179381882516038555655266264786067407146901592891382835144863557421072711086750765749998729269586806733891940084390467584887544829192509530578923903751881078222608868576439166903598190981504227283455395903503195868742242963016549156590596438341427400214889635966513243726897231850487934442255300816303249663408879273065948049651051640385354510309477597939806773969109201343866486524363158468770325775593354585572528643005109460472216496067091599705421290931487401723382019910650827181634534907945698891804404884326611530533386260771730565565446493985401762667581583661298504755514580284868954106477192951562578975763002959698297912302480106040391259890438494531033091602438269414560627104142581477451479085131005326439110548836738938826853789746930306279525834014383276968962740702588736828858248691610313709208341445550763974374169616824943394375697071792742891499962528182981479432613685176922627215040208447328064781087259629693601727969438503564322824965552569566393405786770027444885276060520370951206570887165736843851163517209893037407470969904463315071846388793339138880226377260885362270062716601599579252304913026720850381334279901697874519282103514859733053982868267492463312205464902555619555200691751102983645798044404364134752914278796794491730935496751200236620806630233064617121348379724880453484661347561291146199011279331348758024561054055832064495889540596995143329628124223448515381676116067779669018771606342916876154747880240883949376892254320422684055320358218615302122086973340689348993881784490486482174020211038585642930723657267863499149141436130063560600681687404597874871885196538634488031553224652234672247465987973575675606829607427580799733682439301675857503948017500294138067986538336675215928250081690034560169456899834324551796872125837630507307033689742461637716638546648000693602298931697257808629202995624360552093287352590185616397412268868847712511311815225871191193457444224849098774021736018653055974792770228685092321991307679898971838337448604432707431184264987059167153042153308019399161313639448964442287421857337536001736418051150379396983535993335948130504079016162308235449132320653387640586647668964952265127732561451439859452615244202939471154479056671838835939164432380894705263871754790531272076621431068025524424866887853961761483265698726505475781451528493233894136974293257598291148691361339078094782405497351939475359572020404767913847996957464529417774038921337186332984170913341395776606498784924651762992343950401705572100839645415905852935736279337090314891737376178021971437881304415991029980814843927971124309795758313157303428933578851495960821192821579726760446478332092393725971124093426622836768269497985718252933533624400658468207208792062875831096841437834640457649910607757775442114848512943643900219944602519715952842241177052154998026614574237524896111828969824916272980222555384196300899709844403298275127432995773701915322690392679108014807764849641261687720288289358073341088729497831501469429421582957390800658281641714203445301892327726322800653513270030253525461441424352285962346693117626691412979427999495843056936151263448559340713141210382111531325833785379390392356928471973645234860690582363695523051598108374351042175240265788376210924179477942930573336393515323536296709756121079904245355855003178331468023371732184347633234532402131554458277767287101461376840223329171654610791949729550393330029440627351321418765501135417714174638601388181464303838486954891132350331643837437043538406462986131531092228928240526592359467075825426873072770491726032751691651209159112155789660941343222534859815564359878042565230436253080286509964230486977127091686675909164937989569633647787647883224243545026054411753114516722814030828642025294321904684375043216945997372961715474513359409043218785206224484840745346364377051125099161872025322269694416423305357102212040946909883779203491678295263128100805027660844820649908890299954699925569526259449358537510322419473748280023911794234577155837942970105429324699595747382012223157641902010896580965481807073642188552681753277824657868019900924104693882508607845839881337084568086660643167445047787413026439342333945512179626450388398456099686676567349527553066674297371810596746595211062695477324283488540019558674768540916530382673969961551058662833912361234984469606599496702264339588857781346639988374180806584147998659777283015544125896517202775132661570696565489080835885580345535851811105920129596518701710723385534962796556531816963991513810603553158261552855380483968310455235551915807195206048325707116912312700901929652186032650703235406638065820874623074787498147797526056801749895506845641048083329301528624413198407152858579833811517191692672590435556020147470294293312061175852631924183244826599289045437857834494258393484710123179294676014693331871127805290841768083146879059839613142737588578980363542465086236832614898155694748798097344180314150240442846924548498082940389402078064268829514629341689517337876038626779189482865857593676906702239691801636197029909222501305748805571879591187153790873114717046785785725130771548914062266176111423061530996240977436119336444501514543552287911450674974300184350550335086761951135639239893339286020247691865144429827962415681456938038075789897731355500454057983416595391653318803362605783415168784160045048964988506812605636276200435696910307684222013605720160549255212622315585047222159041816623861998577238167896384426311981829046594464899971892453579927241383259031865911190850085979774380931973117167056567348962683167476256449493012597845367774083287738912414076867263554798942941855355170667149081340753737554499089060950983333664359877645838843161598927924645468729630193557760957407320390130918671769128189283382726376046108490955782029801751683945507978980568065109188352919350380402741524593954854621357539420698248039295309689661009797483626436963177207111549132589956447367014679597862924739602690788644020016648786049688061561998235398950635561254048440010459547330161720688827326017367248631135722238825024656156205633246350995325302535901951361345131063647488877445719488344970644847203173210513584342830759920453156295119047476801248396696208786566256199846581235376564486739623921024360206594440173740618516578629067575222051950673875706098944744932524078742901667064541423609481893063001415858254611547903536666066828020331208010780926558548692997196621891968499808413933408997819258078096992867200593910653526866592776150138426467242675004232308089065598707666244724880333652280027507930833009020473842337817236280153890290099928222720851692993797091940363105342771199037328756262706574816602332828569682452008781304008784425260503416265714425359658904867814504730524973453006028130304300069304743397170625465134184122842705027420112027406757649282922096433406163202840996707546483321063650262478926505489574364222286849965125881436748888604890570827565009374177015744279515803356330195740489109728204038447882470587057140277625930944926133086566085645171250998975391131879600972540659022879482111722876889076502856159100971653952511194271091075693755843067460363957214495086645176954303190707487469740011030897771860185250324450891353720868198986236691431480550231111921336283280084779206715453734090604145833416015320421098187668142671700080328354692715851421792289874892957326315278551380362566705636412630248606690214532775655228142861004525386025700606190986817954853606882781861499177172814694956334383808334412128376335815113943214373839223703004335779141877955069618881864067281609095779372977615875405181760358647308390488601091040362963250926122972348700275862291363636335368468549670357634168644862163267254223357846010464738997944941432736009161730541352119288779681446414307416047383879644930292412900503383573113289603359659081467474993374240151200153433727621875826407029330769023146661349738215618686105607568960082940355199691460501449279932634796973942334714271714734369978127497179544782047978090886563191939264604123936155924638721101819178375792864806732928232403677855483077820493377008379961612284458688340730740354523398784530844832761119055961196334669118160760678670112353822925366894992116624946151366768348643250622558308940133539823369471745571191793246568584037540010780059474960278366132127049941183551859643761110747780510300050399262019604939469404758668126664779097573396780322431458570827608312862108246223227669842100088828627569952775404696487143528010359661250221183611965422113999709407339563576763880393192535831258469464137906449185841689989732824713911265583139843126213018514058823715785262253740942378685474406050724394288678346881175073848049053582204362200010860756911652418174267304540123213480465842349509843222336134270474765751037666605087816417720574484167818103316419376027260967309510785404176079124487940592428708619305134003264352049753945665921017684653184226683689556918314918301797370462008806299029041843380931242387653481649905492571818435849750246823094977152649006690621423374805227490072014499398665076398518411840935702033803391269729320896904945481251554961059445875398431677820480543626948269633649713716329907234282080321161235965593759271963826075815591998316110518429642979455103674690027496003766531471276554304219321014367307400484629656803856435494693216846525332596753481370321153137999417514312200062189133183863064409245842513599456501215873786859847498389974768870317547767741592133377887314797895150811962203401295041587709992477443883927161948704719571694733914999342747965787249410656090535057892081306725972140911144427663734804197157783902280224693760323745948126895284574806501056610158546783601820156045741064644053800571787868131077701355021164804782430567559777699546017135284579966114044852051114171513791583901371220902024304075853255747358851043286646590057024809958906173225900945932751230364423825453415347219390951478554122606348749092089543676183844800398093060775123492408026533382395238981863350603790667825536727918582463451749707691922239119005657946875949499802628507664877387123974484519738893332840824209650299136446528137471273014347034388726273652957857327066592430066603963360669590190919199273869939836338544728601471663382623664367094441350770987843411640688968473858656835162907935845741766710271077877494256594931908783486650649817061019017498924724643744940161465265014557418162232305730969086784478109652833780797166712807499416897542097373749561509146286446256333837106899691059427554003490004893581555880740433218731913563461276657633960415320904534187829540997185724803412693416760565718578222926097395809504800477285676555772435656272777293204871430727917017332824968779338345869108293022125325307289101254100216345017139638556943287023693463165430098599173316100260984174621849291536305200366835696262581478235503237601694198212281006271862968290418778541270358537169251570772878110772670859841290437471163392593134232744435424509309853251245229662992837547492771389011744032601346275577303066363049527048403128447305844530794008991020454391739145108482148978999469505868027192993773214980821579978679119020519162760069583997395043167760059774413245801845818302215531675838264802662742150938861182752955379204300196356038657929500579840614531698159512102544852507174776423538738625668427647386950557593537958934707017660360456605151351895021581115564864928821342108824439213130179412665423285073112643279457501900148421929544357782288742241876515161916989232202412361328122585061007771737139321942643554893067716316386277414836635451577062221535737876909763833563124596504663027322847461223505429379604113533667711858021526308175858823452515514991426510118078593511798937797884185045580884077908202886755376954198176386931136583453668487732432747476141527237897866638055589386313794631831866872068620123187418922662817483632793827609881974401146567562096394654349878704419622238145689116308346609779789871598237870223731916679613876523324066692534562035693181625452723949487271334019357316680585411329637066488590624863903600307728430252953877476893967328600560798028505893150982953927288786577657649775429341839461011254662869086294395077968323748862366444517759504119503553428987600537022737436086642503540937302538681077993134995497843506844887944013050399480533870927831557904465651854110955965402097174720358423791134062119934024928762434605228915184143229776046187482624712007877583394408292036694544900491549754355609392568501044797105403854030813483562998426105700445597697713202446860361968466745715669137226445615263425244359259411197658655139940152258804854675025319807658745095567165662178944650108893666515789239057334583444214665953605071997264382001665324143762843477933161384050643430421572656606967792924596612319294983815280322902447704394353804384305785191021798430644255839998131067179495020626608120275855535009371985391658305519946794696259180484012071081655614278243231968640390770098136137630878021729393544725564812405456011157663564823290383057014494762461632508700566990544093157230620336792184310548670525900231946779284489303031396277770982128626739759725887504827378013823349950568828991560350124305239621604711798266220494796250100226620429733429227985497700461306200986891263128317732457366147382419085697301089162908334302558045930452078745256227566186569870969146618651292899533008472416699865082408106462930189444917950902049943882532809110741657625308032727520886703350567371364223949595431246865104543851991399691555179964176379963466071357464842573778974206664320768449957975734101366122877959288909647224879973400534004590039974622262795186575970220636877482836116672514933198110761447731185303046715876786829659987676472948830644773963268566868058812318775392185187341648563346597015609606574601932177411439045216536736831861162553253346714302580965576022944962609112794134809623652510809629868061065810244139519284200061194684494239373549773513154785269761470685334390267813258707674985874212974402187614928443049390881285302188501673323897452646411685546456391211172423296222642661415587414552871024651040639485045166082567005865770626214820122861025877572090462406973661975797555051580071492847533661403606959860269200092446580851519803562703350153830258565535173272848708362733324890278023646480257725190711307507344115737378282072072551105871241940943473469636995138028090294359169285397900048186267795193421728515571141924678175177374381717316486410489956654350941537434892440295080999925152928038689053000869664431646256528884334044392929566459903997085051515117330336831676264619785004472965729497037827350758192725353505752911771361617512152302002113485027197505641657262216675468970306096779618007203071537713200178383805306219390617840223362285563133929380470980821708443670004918955533871234652073265768210510785937530969554659619297106492994967879516199676110246800340206950666979652204039160373825660551493627324452015942473341383386941656548761709573183114628361676735380417086513226120977879175254423451340055849922831239484569456420838429740539125767036390465945847604918904794322503238234122113653116476103497185404302062174053198367802604794548831817254700479673870422350050704006626276791968367265047328223336720251542204875189573956352903911245052263816042111047129443364030851365592451330212646384656716906213765654447245306376440645518410372293137582735470383695283849483456894412468870420650455786977452385468042759958428627773137013582436041140601136784189181140456623026645941180854830210281944096144539278479687706242612864516206810760288791664928099370055709445686611186059658656047078019613644337567731321990933783169571217478987986652895111119264709679356800668243933986162252780693208981119416283076590530083125116073203409582005235761692099351495295557393588970855527974862910308170784885415381373404224389473654265844900859506215251161723248727618720865735516430017917939933968166500861721165127225092885918724979815285478235797228916369660324897646271307529245233215972352313580785003461015661500179023667354273000772792154267495251803416865439159540931561399753801546598162459662901866063011685566224233514853646467240847143017318410184678961942057822778895782364838511743488300824355507590283777366312744082577951509514869597624995439456606310986234603716320290700147858484698182395845780796459528576191588313639324354146465652108460382996948968989499989460399345097774240567094163960748271503069427398465397783436750581058952594982143121181089751432833511725369950861190505858414805174908843466030181803186557310662717103994635985702608099034752611962141033051911670275710121420958678607476810941471249017980960165440140929489105283443691355287881630869074050848427592555519688861385127076363029457998001945521837437608242042317968520951363855875380633090812522932637582775429039515750467382702959759901124200032559839627561656434209026794923313898507044539241338338634876152476887422303133180497406424028962535223577441096326494040034713377980664759261501682788493553343579382993721210759409628182846265096308336963027775423114322579668058392453496292521047250690356431056769584490997489900833221458411604727181231478819307720726492898563971695578719136207572540130576011942730273298102463798533123222345867775825724612004057069200418027339054186368412651469850226961872003487303616074721819417455242796125244686488608962728460889059733443939166347280510122357061515713609429538879382421539272613612614106704064762154439344208030153184994619101467612559916024118435107298176976531665816879916713580130259928827399164554753433010597694771135467658295501822245176665529684480577537884175816118312863014187067923845559523201453259741437252686837444338394871198668061043114079599774210699929885702772445553823305086361596968703823355207334968902553812172985520911138180706677840568031032677578320167472654188155243855511742326762849326494243517054596416146248163683041816464152592050625193247631621248240470432581945188258417870691582613947371487758591239425181283649869312842388092003847071628260736205651101361980819647075962249922188724419309779466995532771912524635931266971760987202277039455597770559226128350973393093427285027613593828042864073809712997272247874941000269285638481820144004842398701561299977479704378589740392884364582442962494914622028816654536319388456656221391952132640091983819462537484021578631851370755403250867385865813704529370551943979581569396618822848234790577022090781313674107012589494067954375939575590576393448630092885784535630986057403217156895967245557965282576809337229036692298300103592629167165405029273247297062675198988872095721668008903831854455653910048020144074560128860879166563818025099200690300879125866740022432421084585047870436997006780917203874099660572987478257079163093864383448588223545308179736759649495166048493814463394150459846839859049933407674317156493367403872131220210979814555101367460419607346196949068138249046189288041020366078549347711672545714820384174146617749159069661287052783747395496610728609769063535603180891597700654099870241273298406040810611083035919328635424946342821439346893732772409584054965911201595370893479659864589247969564955502193857914653613192484973439841642118889471902295030967795485541648765544506797615452893122683860593083642967762422119751649033335618373224392780908628831353317073990898862019464721117966554885272188702157697121813271511686843364409667069413354124202655582890020722954633780007119373902190494618356092527002202673094391338182935714714823512086066258776494574013282926502807143897186846011999041587544803417899244408708478858828209443037998472179546886394226108899284991448368941232297192359338958759638092699624425881991206348554431228503371149267230830486060116841354043211325775709446200473840475947474147196060629695046364119340367658778010289151900907182109108151485931228776837554161849126847046954639271849176696049379325588544657431209763444323967469873739209217293269098202326902939328394221379508630426451316075456872138743411652154430158847281628901055208782308984253847125855546048973165066403229979305560320609913396684547201078255150408536758712440948615854869660733153773286782794093520969720822653085353232414796742981706430711160988148992662638049755934988215925055123475213311780424264564756184378138674985612444347454015150235406077843066639073847755675773917003320406098702764118115031704807873324525424301768358927032606556938147840490805784085605361354988925659730464168328396381245995231296683517514429822856920471661205327363649894978322598016265631840941958172645546515352126000575717588779670284393564426680662290418088851303203953703037172890606827854763197164185724960470376725551040674622044492398349913761157487857125913601914352399118001017077048023283674467952058282434954736999244620858662056288217372352831190857061730856609647552459254492578658012257804942028466002821095553017683895292303243553896100114111561192771634631188754928136020503600386084412505823162778999976771379658451621205226508113020723627996813764640494082639824006144266952281239313146846708455882014682234620212021354839824534943314077860287512747423944408950339331142062764998141503711356842158312789422342700757494965867656372835463884375962393991298489676794946188403221657336450201503317890283694747025206694052214836165445214983907541857331544652318387098668778140205217029050588268437010417883227571714359358854172153921559891266732979682522268312610909304726253866794093349755837056983309906740477685669365162625804053278657945583828528222596742089705722359188261386167641974260319550641249863761192389512558284309986795572850146732596048451025516853555559511523571314203875887404263843158534397210751554709653247135719191574087058646601014471702541197166281712967443358830928391556584153032591010068504982756515167370220751761478973911279685963235051742961218633064332601617990579245723841607821445879528849724556305076596406047554056010457643527551180573401962932378522451022169631854755761098095780712226240397377425011783005381267973196106584764159856865706233625860040293560940158418739387257027362120961166555507707022260773371207968428367406437500406028500455535193873567943058303366023172556770382393831662511231061862843101767124103266985117218099505991877703819151992127448527087671863019097090726657018888559714763659417109052447807135136270167201861810338678999040923611706301920203387934838145405234677832374800302202102366742474815579322082068452133807369266338615526274611854271801186345062086636950853254771620742446533708907147853540114503649165732444555660091611397905796329471042928382919505846872278214886870619671157065950071541893973786988810465934095584049509098503832773612404746956146439501417818737615170089636654669018602708567169897233823886835576655039240718946491999212368890805892127338775376344270416663612444414284900774506090430837623603611504490341726644613128705156249194891751315048908695168266688905297792382121777866814813298076645312686664901894713974167409971979191468834623088630301547780545007492781130930135588573698010224513278477106869638155816321736905339325839753475529441694759703084490774874610934123098792612693390912422148257469742916492967811005418106486931674621527037415980557855791112178789277021809367702073269354864674533100483620144874869847986498095188880231426990952264520215507216672214666622792025230104730469902662927772761143147484080645663813051816776512540262263121847512948356220947477095655840836093487039044043014400373760613184732900817251779962904533719641600130729694119482439082295607749888479651652941736345137791402034866742451637385418508354677686260240678446443829239872385466724021967928601219567003851657246741774947416333656078718604879364610286091420727865910303900626310702391077374705927865089619804186863624523618750618021814549744608871990386210370004554774969869003366855089131483179128011622640778406783050835542493534314032172362636790507499633940440650372708094448293983383748726839164493626216551568526307396380461826996132292842675600154231596603662522158392601987635369363269921711186521596284795122241865184060132857985649121280453546089209141063090569003046821050947869362396704843751718734345674742356044003664160775022758784809549544458860647277693355947666903290313965416008735739702196406344011637200281379828988790184487161644081013310746870389099482097640896559753413435014537948403655553611794898233865402145662302609220707188528101904253613535464155536671789935905299854311481141401526712606897396998200405466062306160752088914344197168457370733217899567338510446870274800071096824539266642184978604180592846391376793899118244662224036679013201691105221220557932043835311515945166350268831875316723845643099186094668069622663388169058231029492147951832911187215550165030430491059333246208507747276716106444124265901543919400083554680205060742252148736683237509492377504943160324230270400678023276815685531952821286786230077075011321281932594104068348759864173653658221563813913029789784173917913103257306408724227224301921100407875888269169783240004273186906360691552819444452367359399851632798699002018906191949577217747434906425114477097424210057935956192356321089741090631257565601938191067578713610508703547912628967263672213340696855285114736544509040348361402676298237017454120322412299254649332392836986157205038294233074706791982011384147695027215864670379051089643832131782228997417134116512734797060740476656194957103919793292044397238087080456573407622608403611511497930418079047812318651211871687274493820103599144002633060370266847116367221340707958821186554291865831697287964828917847166446733196317090815706625877989245732597720710326923910715602056374028752145602532687199957557077007866964541589469620336058172078244011862298376058712880260410088383612907756229006431908483606132530644715770024650901215854600902129137831052702632766261453298543379752762699872896655726870760985680676505543851482782616028024467406147536021479120838466439005172973538724249420947810120482913859050287404983264038259608730871463235432201358556224147369912862472251261071799170965992505464865467162623501379305403950079961024003169510759350297123046122915584590558341089962305134771440398790081570352428605403851167677176998854690799972224759003102008293304569702008888169278461499719904095741797615607321160373898411690611775823194834477770127605311139554171209305706319966048635368213541364285433833446383706726776280419271830880409390597264486234122754233966610960043984809811228117005437134530876138030290678630548895666550816850435187256085370376325100583087194634392273355404984657757800757599662944268150248920368198459229149072270015882427057042517302264909985154876248798413886912868928335672728175781256264415724476402917788797847532399757858493483399475716784360810777452337867495813794988780789053439044296286729612747208435015032906174831248635276571997784558839284830671801359100217707971467162659321047034019876872120966427372611642718074324203029560794562059466179343396808683071599268198720381961500317032171477812833657525731148347468131582809074240380056305024815594990645778060173326487763248029739778252572301267951396222892864038875082558843542226767692627018148353141559038163353737381059136486101573516560804086662715691216461178770259184551389445630280810090284108442083966357248168993746321243932247197330016771224365961017197238004571868260115184847127382480371065153395845622258880535212205642824710646916889590925067865456017678962012002962190408573442278403613810680953963786609112737999436604710607313224430421416674125557895835303661932441545557647153808534055456429075784697825125177797217735724006567535520023102431655990484987499647609453767932246982656144559418611111388998933603243173055438439748732730563299537991197898583297882333479802692807339398544346911820089028003150640903174969743288251969401615232712826756991020384088537657492314953059454208941123736892729685430946908588759530224815027360143177048829052639542807454408715618542950072769416232141762736348056760218474791165376180310357742291460230614611041260407956210523258850559862642759624984639898784331711931555655955519428563252904815156297339481980610794143849267887872084871818438149569976891092393203939001994097327076116034358903958441674258047748098643121897750119663417383502399457493995730570514199962014427116734722009238383578499051588796570734037453364036244123803225607980324670348367204579266230495900903604664295019851302412157537469823704761667809446950276738676278442033657769154991343641513072535909252937580698122249509295314369764248553518798089928923547237210392333500104845278265871422793229901057819932661862448086806260379901778950213364430446550012415075769372988903390043535698215280596515670024731552548059030362781467084067322702526904135626161312909430481046559655990301939899455668315950324783815827913601745959874653641850001158050240031165880553274698117811708216990648848639340827557693772837595642595989898369513943715885268610323271707959102012132652025691794190460796584381997393976730783786278821161383640109367167472155844261336932062630576780308093120238151290405631324633705915738368711204762929538918189393019166774127743307478938794340211002120204150777855935756971758938199983493468402664642951761035605348340053445312266294527913914712896487379331951325193196939277334137918962681390675628378541350742646450861730408807518890607834198455160271065675210061004118120933801322341025410704321388736511420960814757706271113866359010868729633329396533318010950158417556617138707006905681032274355105326818651381792024062016605635966084199431878309968889116606948914332264550273900498375640097511329778847710093312390229959574063972724513236723106831665363917814776868138998190236775898240280901247972883290356923719971349405841180735150551565352872379204907805592235680208332071879530061222164221330466174730151517886636842697943487056171366383901056649367673321665119355790096389183862398673130688622204223975806788209515131594558381359848559573944784156240697663967448220605503988025638937605895161920680917732185800601241207725342169851800102306536541735787735988566169246778572697570919168821580463059974786888563811322960262316897149035928371397171396969445424253712091531560950257272905378953381282995607723465569854859349790346338383429280606378013812177678071205930447387479561721539848929561588737043771715110466724771572224817460806720974926750744773930330657017496452448291938983985748238391136331354987136723924563509651712610812759038336847581068367335975036607695023189701121607548751859744089704027368378086104623536403334287134525762629273822709251816734585214709198420787780841871703949793420696234615828569288297796498964582176056098572512586157860220283463915544021574282195557200873705611138706148952206403750615928631189381381731366625138943053453345590769148921464433391530514637316526795198624730933563497115321341348818182430402568594098142699029492050591757958849100822710606939813381751440238808832869240830002494802836134570843499987083635830523621975618293240879046065379081436483757164318725898341128457096914582351247999396263637366498961508740174843023816535829986970012722721354788013868231250996987112524759138775925358428869366088682851790385711861954247191447493559733934850560681624495586541658866834749798937695826896836133890377773443889380888429407290972397152482427233155813593819906549583288444524535138449408507251691205583326471609382278286247201922022434984607905463930325309408989150221806037549064172859302008297256593937018188415695935728990091951442194444076875183591331996219740206270616077594512096677919243600970976265169460596185907566449284905524656067344031624845317465146159464836023951954062412246279208278280671498319913806643096264424556117638691225806740231011963860116548010406561831783348159646969028829637032549028398383072414193674447901701974701153213335242900296407426375560296675043465366244477778792670865850269862108711625319043468881612489799778508897327707000750004237658174776607337076652363594710021021710281858074132669838350424697258361076562437176136786433868788182689333006223307156409535776695368040914386669234380931297508890352623954084028413144033606777630300948160100897871904998476043738510187432767057371787893089779231559749134820306369289879334570388939294611869305155798417065559444552920422991096908546678614820465356502651920629156487847376912052857769592385321137859218961930018293956977686868595089753354929848254902675677550916660316532071592771994398031922344381969707841223189387833842325229332036356087827113559280696557220082960974832099223902904056173833073739681824157648563292630135340561389800276613099731016478161290489862127609646931897912526620205621760882595520084094488707433036565148467524427180710394987994519772352151495610739330840152603032996610507989916433849639036575745245349332255794465510238855239854028506166445472156558967746049695960635090804788235609237879593643971363964463432016609844730713024542674752816717876067845356823918149268833885032460642334461419014936818217856547370349673528560797882139745109090528968649482561217915696930536652771787266111804846053503904579047073489057781064389734330073721671993233543731020999294765364212068070183308888532783668737127483085443164096090093122744009761904750283760549906883934791724847485046859761345517601193837109638143877857472764952903339503392485792857584954785489398563476039167738968572650343513260763936329690464747282539985958820565136705464370952084158765867850190478894718737221672793719227966917607001798684614622473835928096126644293422127345001917544437021299370256259564321397921100229585838163227092163294722248133344983577235337765506467365378822712318527865236387436488829758320407584949800006234750575072662476336106456067723800012816370963895488787174115269277276074067516127961480168120027087904776398844818825692987548797224204099614675039063989675638528712724508455011582989761071306644148490164847599282384567225517337676639808342565995864019669456569446441415175363698462352228692957408099064634620989663319882010602841102826840002024997072095176691277679839608168586664052125764819301248992014274704072701555319639591783013183718409547774773698303609094304776639269908892006232425700822702932429269780609820249131114334555852108294516282884816376621012254926761215076021196172916234551555313806326695431019653728412714968066444079851719562057973832816123000376401484427304446969345101584765830070988558517798807439255988662576253029408197212850851410667670126205373441501723972426082175047507995857045002457675658861378278234228843270277870512116742127689281448225250363556479770553296107286424337249968038710878984457083818962728370548921718639880039954361876122953612136439499906545818165247966904689461913445048552428955885637340982014847953573900459266902840337511683605929065686680459131956127018146277578140794606273131606622927147239304066829158460768789019464477413435369971107591282944805670947743349431052781481071226692240541368152803948506440511076829948643260058232254248298168034454434244381632385594083846540831465115992995226439907964725502626560693107391581031736278136332056277311311510439665187329926494367299565553227487433224501516067309090946946583623317231856581960400980813710821312090491069109713782323746502071004931808109837560955454484639410569652535688495698993934239081651732705461033131204298346664257477228936412449016632787515941335306441355073223227572400527313460276238506537931489066365167037127120160031267913574464283561289792401697635016906774027970499301685210140097162322628383141812345294608980168071476138789189595971284842005147903449633968862577979379169711417651589580235111096006863011157434159621684926440612155599075230135367538271281794281096795344246686119494406212264403035476909512148633296210703449336844120601291528394726038544310406075070989092072938161435325656006991612821387095050523599059655919238992259319237043507301585850706405588566052085742498242869440846815410058343024170625156910848102654628101736615710073042285945719223516997830873671939036792809559753621552944658182906105518452896705728612863288521957739893357667970319391143942910770374303287382202098652305211185534153729554904525111127889884070578710171027490677350994662729918397359612549014926169868487860554021039486827905076198580873625021114296467123603201653535231874562128306234268748272253560228335383097159469931503279450696174651858223157138863155298341798517687534434916829083827984082820002298190448200113524525818152668207568054534921402553986255530896948380125973575507098789765306241229713420288206164468405221027068650067473738129393294191142549731785854671324717038179347680632187724574714981977974496880902754461818788335210924255384256662045099082800973113983258623083906155792563684320259599738638002143750195671968575613912696954895785410305723279700772719853234736159949217306686689882247997499263205070816840280746899854354903385889447003497573744816173874977749496589772636003227412106884912611968958338732740059446474494937817114620661248931887001780859991365794966874604949935376228497332247688747557693743351707686993592607394016929746035143479014396255977746193533236849928473576498434761149275248115255615325539442414587588452922240430968886629887432991282621720798731935299902566785207358844629918388570408814461503865701298475882783333809598406698684712659055117848086746824396642355753495740740055946501477053471311005567815387173490882290096914248937652534444885168250837337677816053261464301119606360553054984805519337630977160443005978590633196595247688059529833366215080221562148901141076607848321285485114506024087276932229807666837465667615127422314122388269692934801608235269731641085501308082416798374886178726525124089442268125227446369146182886133965265727805425129365301624991323936577605263831890334220782688099931273608228320052051117278937432696476611507144169730696394776447489097765644649152437363901842937117102671137357257233830389286999905576032810436895499014933047259086083588353932275409893117492977795568644016646543755659460459873992673406075399847601318741349911810117202711317891008798924238353551923416464679319166687930356377055462558088796087106843370638541530122400362303029266878597651596790452853555382961063008588648637335868088478365456347011587619788402355979081275861891434599629203879695383331220453263824397550805833968665869435494863202934254081737614962512434530341921300029496918371971483938057757230077737358882180570048171894316099031433814503689688863101605269290475007628610560155116706069428466454754009125484367536529849269934360658299197456660768677408773267510526860682158448183144991145183022835023774577806280225238604812133831265862526251145947549926913106014104389348427870125758314235959708194812249013069729384415098558761470230246396677584987002984739285502173774032956521256522985159783927305230261656661865837146471718109500436438868613874872715104768428539797946730299815265472466270161210386974127019137489901563809244351114613231055642609831283699029788209614672999420048830118627529527929858868191091533178774044829271365080265346355793417047379049448116171566462264658919631872070100745065818189757964408721288132628203806332291185718080765124308749784384267951139820882076024137484564556427624780792778355508150918585135793940869566477771565631474602660781062498745936544215025193717376942386764250006551039189309596894520186987351153903948727701065292456527659047843279625581173414822631345517223045849682595355517646813247389903412410992450545320674572779944157391774495066788872514000095400905883030661315378631852537069835809765276930987352772294483222509733582618516708349136872378615731681943293154356228904607892563032469060613706744791712939693842507451043899703645197705706792846268047888373276617192919881947080802171522596238588230836283313002717973442510324665397736457537172369424159295022137895561591598815309502767003066044863924456712195916912777599897424937677132132788883941611762904361147971463103801353705840828962304818042347724570595624759649534112763563275940957465783401071912815223953598802789435141586709304543980808081148250547017589089995530068748646768644982871080478485313598871740765891642546454752412870336036465428067948976941751060244758312056992775551260253101863621148534836675427598264668293507856101722988182529978178626658851134305558161929201820360171018595022495239885612838351470605389240553589814402886795205431888574775635274840535613711861660861498135809805010798981034091568820688811369355034437573134755280877011512172007345466768606805775629437544380861728322904803759456888477709340317613239381294699864354667998361561045051073683786152132095975781035630410722749488747101728205013626835251478056144859464982599046669192876084216173814626979275019830429364774473015313631909879051103632308280183728593947618857290705302281569215359445111236945541887350665351724970159754977314105913639098364862493461123555356246768531435883356347888402732819835616124351601760131691499072294962976864884337956092425399061550968664767360166657221434206283117580848553582696155953573895771862886236246279189284752294087220943852866926873232685985117631624589933435670866145477026027869130434870923627695432664737274206973970011726621292003189700285210181793305653050166421014673697763321756184642053496551336329944644108295536669839719061453606132482659284366580491674270012095379301682041760187469385345080819822480466888741089944056760260758912506835621924936834185583342726841780195422536241369193004561974603459829046131165380572397786722622559294514889890100394778433080961939569865312489193980339454104967430494155047725038450007680435509506538533963251929218512751274993950644843003801907775905194288146667209276027485423607755793026422011962234809237221052226572168799957894357555644699498949795948839913929670483438015657443546245022150803891336747721493853922908922305580241904059443878665757657903928874933245405092287713461502713340694135787538394367335074172817037951876622563184717507595273563390377286977717445139963665043879512981093253818883269510311619114892000796738032317670437877457869359874881697315982909335920302842427913884938356096083515084976453815576123473025437314271867855125706561972906170612314193820685977588195113023516605681715307586373405239981379557273699406303269285211461968828475813729366897617607736117620064008423398350868768102525602366999219029830346477897323500621727872672400290977342324878736772411012548429401843062533508806106153129095495926274718674948764778817065720136623843701595581729160738137760871185671891875976659459847079814498634369154487810797668963653473033521436791157417598289312223045222853257774864610419581156548302386852924863161016489070665289228246709444560833314360881030915106156431848764833092834473455393501689021532151671015037088316293448039903272881942313620479113912489473825333763578702617564352403430710645743003433824774115655781023861980587785059624731708051466445874106959056408550108808936539492428608279851684275351755524805920756846101474303731246793928418260094812992601940588430061940007394918813371124542395815197252033941012678903847103559612081240930116139438337667388610438724813627893234835382026182453705873901972039723807936984320015326690361024065799233157301252961781013908301845902710703584384183867934480929267352751055204935202667080622485844364274933302511524854166762359088476065418370297415670619016525089133480872071125420822237611101311617588290198678119716740315988910089183604895515665266097158120224179633951165594736967650034885120756677341849290981337461587451590174125190123435049787836235992618643156664605435688947394532793359453892166935650736295416171995178766696449194369218729914510440855889368968309095309301531712388901715824549585201400974999195786575996457148868172531589051901054595865468566054824474710418143518113940025759121515808063902687128187009064052757203498020472841861398462508779661281489886561982637575342111276940931818132965248875164122502787620068066396296433665782022700051659078114084798971760448102066392595003276973489055113040201093172644021975945783936906905473179525036011578703804189664947429905409943613198441603035652960757909434919972912204105819203090022280723404508097255918387583256695916846982870129068495295678196689571090772956287857312446981797572953125567855654708532434106040880540719566224442643317200829358165597351110970869731503603296744767957248148253626345344017771535880090368561452341966732662876849232982785409019096443656549774306599305039485767069124275130318710780693260013347874425299816271361879649372619420338072076606812562452282003176015031426194744348985053411183131651546393997744718126320925541445174551872036829333006887894050875794541160397411923845465939749287554928648051619886325451725342629905515782105565662903804522024965222248866286845508321080526188341299366046369099273949387928053920301597252638802018133756946515710845476703172634157628980834095167061712132751092818798959949655861893826287932905925975772317021393309263380599826758177528815055420801801899944285504088840602469329776706010511861063915732418597840591294681602048040344211243657732107741739516957408648346975798946989953101363357886468050024079611740882299824163830966147146356527432439658429322384701167884109224186257980702060701774769489091636562343073636660137648902056423403627295445091201059116799432081654181093863666204610626052604019275363422951205196922826822132037303801915707081255939128643714673984383994614248762089498641653833105178445396513579936117223411686030432244340429440496192466537834629126202683829297795545155828058968708272418995321956615974900788095504746686644949418798019765093624170042818074087437017625351157110458712633646983981671707698563001246583887758571952694470022225312348906992189163799485212749830061058114210289835290694260857855114233847263522974468593685087838068321656129051419890770344538865863619919699796949600591924184201996481682599033958356137699576007801128328553713244090810593169772905581950542199191912872562496489738796910226270544710687570605429874082430121698484891548559103702584936928193603316204856681801833732974128442765393209602796627229106247170395207576151830535627040949221968328966487899123517872268629997935343788302192395086593957003521591175035700690910124083331549831341776105404691936447611594539564706563281309556446215481451862247559163131013455089078131667384739501977151592273518235208629975549773635390588540376628439108393616823421511972608800469360345010529231779758108972522039993115040749989335669444398596985898513189230533687518970471723262623943246102025329987157272990679596950910281739376253374493971021385910162224220087134343830884120945813810292870254530532322383654023628811897359108260213583915022370514510819869307662403474253025560116258920883428693118216704724861585195493244973668864286675066127641523754279803011747159649481055037459635411327651373794851840650556321000616740259508735044478474367187810518966477304849603113961714314434123639473774267313469683182897585313270465608473181266576165174636027037782917258040187503081358456307789143471280232996406427218577518455701326860750051541224741560461271455686961355416179731725756170785458296787864202960439099023521211926557136750258062961248385604259560042567424110919887764246322779563711221541318449855109159636747401012061526459806425758527329123444136198219093260501987099426338782615622612481864223837122925362108649377202744664856524099255855167397437379114470550261551588681975569241756845594008892520194566922296053983690890583015503763573184263142749949219062920637719019835533353214147413567294802983926956202311724149114812340452753498987084967914976873388434227348747023057360026088478538885429758699844568843934966880608736940263574803670326266950119511140748751491564784472868582826343139144152088563090867334454443394493616353100147570761149847100590598457064303600334091824912056136193614368169811674771888128711085055721890923843673349878885889801590874463672933559705652798113106324949289869993604636375421306417266993221619102552627886643545660261897870011210638175086185939405215826319944357481484144927016680685063921760906894443695462917547605416622567606412324513002258309164661894097024090829664079540171412928966868561909197374343743289154306197438407590688473704558805344024314684747216266539525900150130651943851378522011397565297874326346514642296138231998617218599255952775077992685213701211882337729220747926142259821613809368119952298392604025006933830816804302556761874769166712577373450737365998685765003560029374041196521612713415530135538603661491793173154114618518108037047007939111415509281148846658230491698486293548967282748414949107300172891668997530747795027145564077390048005006054934451010135424963838499911643331404528357432466703996457952013675687326476775641717850791890402896344026637907353116357609212205898323554492544115264721740555999991464405999121223035819637461840610560506140768832198966888456574143740299922735286106282737625521314586454415539034162136326244284868478458511697461777306173872862483401240092948572277185286219678688364780455346751741830164632934990240462941153438599852108020116632460608669740277749591344885627743838590128855927564672443397355895207603303089984115788978325519007134209041424536416952690039081332787183396795012933236268228532620786588231739772728078258237098892616241973995432431104515336413300385379505099978545441545202765537618015904851268485901999021251166077854860230658103239208587174480319113130644599874206395995467613907846710149793691422754587200597512167022823484415268402544232263595149355100844127843881418184483434575273597172968594277207524026935896968766686471110674707963945090068428693252337329881452842541047157441517285261233943135782430115510948536619237712393743975288732539591791380350290853451917974828778908358129920368843832797967780621141686537675132944574082364958688276423705833708944998652564694239352713172423317369348746484169640885524508202288309962676156986500264443353008524027355586363192362002037919636071779200544880514128099827818602252664309743539911582256847422228003390858345504588617466459486632765783037586918111156052963919052352039286265722284778498344858197652162047651443934891659014897472831316445379377622329588588118862838146580393949647726850960299356707861604850357071399531638379507376773003557955448118886757721100372002885176865890773864895329414014484107485474016071411084576490061148633641029329120115744092822022842983958662900877428848551995408310839729229612052314559986571930142568245920665666268238297045519208482955300267195987096537094655170013085962495731286236114971800094722539744083144641777923825402845699218269351230734480196470712626091722042107814188349142758610134893953864172982944938313071596595875599060183149355936194318814267179459328825220919643360098793978224311045154592995476545660245176528701196096591766206756572642430730735952803077006513004957042166423022339751582866262265843653405089542338829035459771570487006412454107899566143613750921273465074423489279478180103890770295292497407488478019105102952982519064814186473233872917236050969590067123676359171491877967728768749143504909344128363399131624603900908375290192844306263925792289836485060596140955300084690683173202073044836086898523912163263897070686855842712004312504024555800410006019549651491347424787831241316226399417759684329035182753892137386180951540685376071762245464487245560614391184352649515262946449147674984862643839514987786629871153130607521671895686188026647278235505082748163494801234286751203563409522098189870706661203092691582721035805003449081120443951833514196755038941085963158562790074243141986205861033515241813844419891636723407427942453112973249069440999250558302907022004353451269677532078983397596800928641030093501522931405608581733144093421480209553363263483220814690124462268318332789575856117703564967687381983937309108427604125180794785384845011024846722270905556809999895209502192007841926152082745869714199600101891429775182955112674459399365387210610167069720189311363394526244008589602989787968097028312182217568683442018358578747286722389622070293260024345407475155241626662159664408842300414906799326043654268613980851724427398750894339532403684791509713968809363610895693537509870505334972709322114899310872468264681940951141878412796163233700823843038662560306215353641524645472792749752270120209345842915376631703459200334106719108875410686416527628524276531367311037646079357508228052603353281731967071821245485579753423311836033793344821054390270340612880747347021430007178839230707263162690743924464634815990058425358689425407801796509681353729610539496747611882470787649575930172512666861017776553068617785358803161386599373534046975803872208549304648335649962608529507557704740687752982008372408301829036441004304185262240104568882526400279583456075183840206388729642726029767951300294510440402374844126835427028662322253448837763572572618903545432757994170666549797661621004674428465474741692595475852595494784063455085679080626505908814242550895618578507928234084900186034990572479467045587524289315880150072465346817804694381057961661733398740132624363681237021137435337143177430841732282314070606870998602535987801465134656380837014666890721804975348089275100774493257368528055120188707959023782559285544595570112064687653349929863424277228504355655566762670168697089811323189861949114143410555071641801519500706814965053977258816373256575078194458661051579248469074602526460439978962020235591745000233538073608776077955743042781010407531765664896468470048313895899595986755966510520138927805889373125763615419510674924903156924934750408548259739678108921713684509453818967195813289100513456914125845971837767058117317939139554157068173009379184452313517620894102041682649143645844734449244163615759638470754084426128396934786425028104502497334474161649267851414879743696205186336041046502100216876863763152613484668670492342626368332082361968592933289399272768558766771088394771324267468287199711027611949315923787698974515780975125093179002565529119419459853505239729061752085235996249547305435228048584066418189538641345411526630481830984619913348587622747613453350646795021110130963355451651634494312676616037786931937938209553815881773916892825922325397148945413608233504460885230571876644341530957234720069963199649337652408656267549188926223226817197010035598976463294398323060759040974910924674727349463728374088655179119987807136203478981478602830071118403377882818820599860480130061114505469715068775382175883695290729088045133946067604946508778954702947920875884446644353121180622533010885351861477487139849928251280003015550932815824326604738220502206324211448975879601543694881663313528150464403224160086251975498585951462453570069848443592248525000924379445264545605403325324805182389635565034859077782061643018326224612171540003592855598949750828861332339102632785635411843893689789907806948317778657901717125378235983759906748173248570866674272965174416855889932190740434941140335142433553180390912714328161460087294865336083918336359654964780638872277962221207892927441647915023556310871951576325912887318164261821541529912704400466323387619766014895569102532751337053462709634073226039716633342369406062725057972360342126498200089892134297023106738706318660133695660747870615625692896735593043094571146002730323330038663359242348705320711618018310793115008729412428860631167265049331020443585436056637431434595034890130575783558005382898674235064634803241805366815586479091978423596642748047815051469534515505797100067706411517677796529108747627751934271282965001114319808942398468893800505798240308746321388048054516713069428563849819809593075628368589066884775006704402099496264469584903697023464624218256265914517963220846521218867373721424151108786489165336696559735953908622485038642420706396447088114396081008639807675318672312406736554056193792987907619660997461117529898525376480091779373163662002032933614062900382553037028978297295559115270499110121148401222416590101016961052073101652276926811417863678598851753088441359647043263885332462835478232725133355149431301622787668453765838318206614315884525384872043725819668584223451797417860386004506015319427363369168729186378002035285415828087302460037613442398311010951821279922865634597239116693516660758465962838974058530609634206559025205695910359874698670580391831307577624909897060120689671799604098147773112626211612014180721671364769875885226033002454811594863380796249165890420004616172769932419927314404366841939932448359656807974768043047981247007586847567027858503590577501714149898996897936184645436231583679789427002066000080781625255346145344405694952132924590583239038012513803011662574090290378290712615112347028674627682785677346709446355630713632634254376582133501780036681173122866240999008629479616936559434132959354640747843051818900350837491553495762910561507595839798895656078521222581985256887118461675717208947046789826684340066412991451318719969013534427681251757470797245914927838635430388309343392701567535460351812456292091781747646642099857483555747261312088918881126789291679529022030958767076924653669548955516903027328723281178884624474205448366417189442578482724944086308538875973768712585822130885071562007101130165440847077681282067491131954994445393448620430793790069681223478115623203361804152536898486702633252802189273737771205904605006397400466185445961741098594239456904640709899553792607890507117886718439699476779043154599695306198934958810339062806505494500562727715535410710401137326940668579436109300920768256684587906001750826744109828474221354254099607494943672500734064969911405572702056546526168862747934807190750490128545620187686077366346375288770478166320343918585290776430077878089045283032779742375366189355213670232241860931759238666293980737286253274776603610216176105108782238208409453926769549319033196381886568983841592280603500911713357484359353219718479186213536384364522342894600573921116430336889946793209697845435704555726421616787661374453257093801944709231506061484203295942596258734748794846726328850842381675230907708010842577696239957458614435992493839468505242834496452817141885711628743702525243931596732962603877047458588523526028274739907641340589303590167082110459251250601816903073365663890946024348277533105542130932884835657340220393165365051975643162824835796442809002959550167349241930748058282100790192880211182498189415577448623152444914703314400475535458609490640956795047513907383709185763701655150157784785061656990203345284469767272257285289743391750955920273731803672990568032071770496667293756312570927854142805683709107649035364787575343424104325505919545699453596910576832284412452445067514488506458678480363604171041871547027067228205992062576943302324385079536363118361204511571090873300609152984993129854322245284257158401257499379231065235802519563460433962146700449823147883719026288725906839205870441273223203876847794255698011644808033270238616800691772157727663032499710370687455077939381190843074032160532751851468461944277639897001070025127721311707662108616416015381362134007593319369762910100984613393667916543557996587220485315849284099760176989731784323126766003488829639583921323040629398491597556441956026148725101155586884139916040159620730618222333041047098776940408007887310199962692319838253586420418560623904543129153719672033982351510139885964396062504879441258852536746711365123089562428818272136250365106752048727241256619823390931962304290722722050130543478907074371974276096492232396270218138742180732727997965071991916615964191297241245627646974549242313094662558639927280205083981948293136568490252524487316947578741178499510352708064384304012419143675840622648057733902466887367779001968019394124471292217830312441059508069520091857085447447291294167219359402031719257371437565522836192305814089575260622188601575025881886137281031225973640883377017596746005030735913264302114012309481312870488607134798455841164918299781115766189811621026772693814926959350149942973760404097100291076512304541188057064847852286381578258676188624554695605213513589685136339468076392219113757434347339684058592592902600461322638857827708475892660847204346374239561798836550998817657933234516167068719868933469452990487535741509890947692927111164103582695172383917673659876092679114991606668027628559148159954425159727496153050822652322373571162731702745432610075344104046090534317569134861459568092104084970733448129642518879988063810347802269657322589149040572652647791530388159632507921514672629055732987786993220383515477394907769986188283762606159638955547280217114921275344445049352003068438024845589817866814286268640136220535882374422175233827134753090707988806654453133585840026134677448452039793666767324026493970107364371760642251052252626246492277157774418088672052722218509245504218216911519854161864416361474434725223447801438898838698112540338642819102365265042323658037929740005502965650390067718063798818320662559746826076601791295677924408449146469899226768302045388209040698392403934290669929104728025099623611733234037129731416486381678040183470865428406559507584416477713897131370198693021715294937718870442295646422203391004028690301627389283769185301478724932850485138235577207917407136690548159834725655446682764609071588182884170897037200629156413547484098224543511221135952886091105649199072776753817866060123411907974101664061544657825582364538235648923225719510239047831245887831658355994838064437191853966695888183585316260037014449869530259080652271691785228859237144931659984997667524883938648214802216025972640598262559684781964430956941480026337579262014341778621598290402961422341937694990646131046642279175175625033390919006805628008360448652990363343680012496720412363379717867707804476336870220673944422988575258378544528176971541204536006144242701455419054312592914901972734710898278660162052780255280200358050114656521977264880396520736924019275527217058839290762401517580570324761071574760897063182155569501394414594469741068132718898249757681397235896695208759827122071495966453893184173724974784799132301939070321199758462619722837287874621431717865576039512726974394951644530284140055529954590429233386661460873578399667357788787154050885046096201071567235908328865777170356549253793857584866579873961220364786908774111725497234091505502780050442139426250690497290567361548801303763465187617804156120555063557758300738423982756928437714608374978563864747629196248986847617323698923907214856518615978613295561318189426245119375939245321116057687891210203078012292859349489866472097312921826794114807021187182016817686122857048091689780998707895438649770759001940081463641598755262952883026857998228094645292830870902307117493818639437222123049090580707242518669875636907224944979469996143106977812267629712491013798521262415995543806081066331128572615947864039331525736856050029764458084498814984174269605578466578571331455880616695595832504668939412388143127096007889797017745893186912156509960972702907905055096082498040954365322957994585082106244394188271758932965490305045389604310910428005860333389341498176037026105667187222221269588496796444139319342446978273285678415220162385912422758450440859556853284143990470871571906261781538391619045862589145148700244604380471559596873031004711831404243225098235031396553755178391454760527698705319419189678978236544706874000036130841665137491246877077369523136727364507033078723032249767035001716490527774170326147960083029576292570866943083592038494158548608870041114237583471720900906847621741470906633307227374968179956108371274468457308944216273826304729735248392621262532584280182388713111144701896954547157621609038562068587654969738509374539128514834572728077553769026299091575322978370538881716444387587441621604831966298061363331216470065864317152032036252338910218090955993548517757171700399428756500977146678276352575747605317181939178129190520205240629894591838706722287300398296866374470514955729445805696869475224399114345403881779296734617317327065748186981102068437991003581608334141476894193013593906236242164218157803038768875252645316743031387590905748826852201494003955275542314797620416159786189402782998272418666647139716000143005398647481177945679176297221872410609483219479261958580418084465676394186194933444888790553417224190359771021872238476370368739183758502007971336722487971278178762295679101384239285943613640088958104939650225448850955883430509227134812640388954862653518674851813409910664386131687356979141704165602014857685681170888525360893012169561423910783399205330983987663065769050036465290665316194186448205483135566934088160138984383474211730999334993842119834412677532829753565221108826377730459908785327348755288624567985679232402560822268361842555832368709465000382727296431670955523062966803465984393924245912884020337724393640568841197971707819241266906340315541687820634357803536993475555953916184521482957864993622394984430743116218442086013706080675152785862982287526526752590737418183056391606343506366516257485434377174289909864717006363679796873717943875013687868059315482262215216852720871492698672183104115638405355375618680767317748211098641656421305446778970489298385530724317075407000908928413996900423486089439487030625053611055797106228085864195600754001228180519617927486058580704057923795638100399877935146918874206342172837059709941852243437269902518440202546436092699067483449975342113170508971962314981202535561943010548678748419437522931022190977675035317194468979322314698322609152499025793096934984365974833513086258788862346186533134221982819567386493300327027685378185379367033782670332164520362310823013061317125949046393714825635100637507315683045100540838216103520760866603641830904796544130177373202683475748954648378257204162780553379851492348116319661907971390387542567012587926635992711142137720446160861377270879364805061382947804578376485316811074208290991885522467725253890809155875322733022970823150054841965830468647522563640781220202150948846526308483339832576811694022674436154486462189362239637547353509728543118784350345979254619280074093271071173301235813777554218903690889079001521248241942126247172971405883392214168073559879885295940114834211072800372157606270071372520762343353528729968302561709446425790207559020541529358187186059234640850131385067564161384987160566177297132222199039903980000702867647885116970997380262611644120245857970218606576879463679142950615658560129143707812079644718271063546588025171266202106794398629453339388760624004993396693474826537165806087487278474026421150289864475281824558554259422908740515042345064499227801580953121558328412886307187529562345826432012218764219149043542901949687062304999548681813164314856360732483200752869895257767591355761079018611834769043632745900149809528366307502904764718008647523062274817109705516068442936959481053042149235884487767022853411713617103053559342573179936694052178807873051424153419911081529302483283577079991168999412283811785988854624536632045863359660845093400901939722502557447570961723088618427546378295526765963187454698912922429964342627378112810103683564385388362743104733583140183288544221783532426936917107581562933186173360872777051596672149164382195813356953978248600809729539445934099258864520571047608301773202307614200199747658657709212324672668518383992105878839416566087135385651664422881523753208519034253816257845035046145236761249371733876161851383198064603242921684409923488767881482077934118925704961956669302744073071492989578779822086475983107117578126925959064326428720554657512322682720322904437411265521298108932907885757806992696531441965503474313792119770232163904571425214510268809266643192000607090610952158811750015718051185837590244488660705928266486472306355524954309985463409411641253512093282379010770946096778247802775344828610677707948937501422231927486369429286393246566141261825245709341075666265784149307806843828729870373367167443209194219973875434651753686727466754370714336242306854727183813217120250044372789652383813763220297912789349770019756775109128531648110323604776722434180065574412247511840674381443640503616385401537770284053517565131757495935695114330275815091443205273123083947385298163989339816341737284230712054641390655592559066810949654410179311039856318684704557582102485243991686438403366641017994049775231923420042726738998601259356931226420811897934385124541427316567972533251762161724968000799228899233387117128174975165346786360314099039515955343494028272275671892913360841655588045584376279843672205326938870938953000717559650489813506509250914294182750058755259955134647604649095812801429156821452334171826595138977208034267266566609365271284858992051487395935948321757972854713434775631803450473893172373647800334087677053796632301311431447559207073739050687585605173421786529768632428579252091746085846793755025618876272961907013625000345992253868400963163033057843233715203886881767564797656496531370346235968949291221101873927513629258211724451932935075175232609067838296041491621211036368955536100639836039256471494849723655475102838922197291427624881251119010469681836787806600179096550823019130311052050701927277910660917484813589795115862136646788307927162405801259060019423031174392261076054284197225862594899387990189512541403408201029893977332339922139064956130053757949485198202798358227351278830168049938751898412068839158648207023209769550262669792249549738036506352461008763116600296120257850443882678336811728759622834335662680946294183602259294234863293992060107427744564876266442898248988335022286627015391855885844104213339139145849222784281062824322336689104794235974642727104739525854042471182891526436613895194831601382620578423254370942596799924663531153049041082560862664536463225839968939601130234076276019994662467918842149380942163399436673672286567186199473415953934566822670265875883252641113152606561373085857438150342929717793120287021070387552374974195484990792071476925672613458620579091067804367973505607528854996806196476257776313530882101191969967855558995637431430813314234612881251957891448743243174978655730697714201309062420502219077527709402322074924506670898278234095774446144885082903130120236422540977948682477073684248802405639356085780366181846482883515551640504041045478171180384140698632936303938656525177612418645933359139819294870339533674546032718607998663079156938460879446620555287522957802481842898347168445574851987289922673956729187648311464303174086537177621624160422083480566680925128543956178978782451919121579466820777314956488183430175506321342113288270110625735828911686815359578608823601351966196781324063211391165316704826750688907321273294296032449809777106519763978561608463189829274129191887192714434983758025696607581469378246471675712040388651332112410271574866640900189167903642310888979518027690660992332417752285455010492469911939923040515144117018059627092724260950859503073233743443175212396702655700466563266278924121775707936653780055187670143053077002714831268247018778232104359598546390083979291518510764654810572031250664743790563949063488071776645510634027433310207369907441494821744516729677976590123363532013400688054861197917525037985946865060093071070626657097449125898948368329039952391776433504856308591482014705964671117126969063972848786602308584562430686521556904642082181883614340110420926873850281826075048691866528597648099618970430693341454161776472034994348093003249807879994099694659808593208717742627540994132279862044038620165853398043423091175916357979760592726077684454159434943593327398343155800389345798049961682738145996009423326679184376918969083856491268780780265128468809181184827313915908493199360811831497213800037762879537848938063419746587739040673236680382477326610341405404455107854133110294497080209189398125768808630138165904197765353505925007067994898202436189714499529845717754780047158387851538589864918871648964320043845518755953095411713837846067095260195953238530384700008859126817740452693585234327476431831301749724081453878585290746774565745017181475093497651629116464650055138153993843790802273938541560726711006521148878738102930488984794299217204007433752507842442292064987869891486468950966978264425386496572246699997706281448823793672638718667222208755775529782425454816234709793494124046707941222578676571532463390074053561007263756194940533720879089132683448836055797532647745971964988721719193331390761308470536734110344065790361613142807436580911256836615296074052809830469568659260149395858938759077937031989378240013845151116888972793199408391538050967043047831336077652406645251361294601777373060218098950458031575995421122783995438257371033943055946257796768462960692444363137960251982763926543754533170884321645385054468602074708370523438406567045691099802520814627443530850746340035759445332526433001206689294744990174274306021655980079843432460266100667329860698135268285689386348089008250241300382861061182119380181656928686006808710390454989594715248380718941996853575347199415683927598959111454104774076210811058407945240219122521998207003906700414386294452572956964313031862184078912935363734253831593309211518245787732640508939250870571086046698013140026321511857315949176651612844298832048952365405255857826334520704573106552807300417517753358203923905494417374712477461049353251655935033147282444543774135079699349582288463727336997180344294736288046365754535630299634433712469879441750596987741128532444814803156915383048185273968204209355212648355653032896041305828776762841826904904230582259699421993666478103727955990874167899276589829266882389958715203099206711089849289063698171586586874897048955352132079376693316864035521045773195454847974392089606660079269806061499775729435432991557279439331771702174761575016332543137845179907247391383930221774731642257183990638786120543920614883820980461373351997674491150193457433073255870494231015287727870421195518945091794491124578997116724700699119838893052828070816077270110691798360999509051899940635382391912437513951198703308877314115647720663233300781899432623737588659277450468611006943294639933785483214187844906144287608523869917329335681196202762009197084331432262788358597586967979689852506322964989403628063424939440972164450336238702413418390882883436300860403070794170888914669493083921669774391829461439002322018227637357177600766627153583865050475892945143645604554907189449442199782794629725562570140143930018754909331349862076823663643954801097784839448870746003831325484285311348499724199371446807128547749811375117447649157066041990565878252199890456353743839951279578766477827684439845592112934647550216683604384195954162471610313012925276287522281215736917831902949597760525441449808805412403494406227753576940006763651039086316629714182874941483165003032923691083672401059558129065890286866910257708380858955496618355434400281874846326530945836318905236252106435746113694290144034713866467721168615951196163741725279823679746307105931068753072248603394382572823557940222692914014202256012293220650689121895445773272899512110737023886463014959144300849437660015599650557360101576579947532159098538451286194224513946855406178365288354756911760253085927010631423200472594898666575649540325426235997288835576406231317810819147142836277773308833830938284340127149462265402162056832363494012674962163996210870732293249781827492341392516114768799194758808422202884423053331435048542738846861667430193073109052916429881678634430072926098061284949426580886558855808585768180154370962035777802540204188596030470550489206811169158317176530419198867126714689848526586611018548121264236754832952430498798976032641799453198319137796182289982235895015143171209916813659242315046374173834143541043069813867514033192069988864353348106727924425459567483980568549541347443610528928686272377746659735035454702799107174048654454652926415531061630717709630445256425484384091726995015436148517154275485142599366882435579205734728811295200127842916163215441731176351563151227389839753349432750440654338199069706283319884059004872713975400607783727477139281837426531738633073921132063611032508471887786002094605617281560662782473163880567280577569282958110502637522255267564019680566123517654550496588853508208679163994997726486078327719326195244326156712473094276729068025947832947710267081793247240029165711551089594392947714440897441175659239438481771184180873208819415099184411422668357296554795167372020747553287574262712721890438408215832798648392159465300183119878956026117029360673269043157833973462234774252410388306004951280105617868751472960696647488675216525481507204972058328499037402197292772103037069551040981960420125569963024098237143808221617731466015570612416300121812109686504399619284409628947812637654454862296453623684961065231556728386120552532469417630152425729329891092307115231069160801943521301189050948516406501508752345519625353722556271982751623076137433646735689607358150464171181645321404547944516900647163619468716980773329324119011514634017803673971170272535011845408918158819286661696375064076570272484835539847375428952386052889998178541021197206422707369750515126877193660858615611262193460560395894484361649583889193975888041718108432578456485607343622884217645629564312090445170538780376401134340366104620185457074327106716681043679720235024356775624764190490359824325371321928587748278189021902545836168919638848825489746084137919658908621214173684269149562448310629471800865459074770740547025573262728694476668058472889375705840904367730296153411485512091459771944997229015316445217221072358935839936618272426760739121108390499112368667351820079175099016598258161325734424791254856303422839259976512102266721566043226163518688235877476082025871356688822047525632815457980613416381618483781130624604089795541859920948479634196170700451105393060407134480102725094557420133066942772354934285566235567910664336202914542620369526307312744797959508302689088797487554241029410110239634666040149354505710322121229865557337996716812903091967950703705570597011729259713891287236742236148884858469597041263586016716004658759953837805882713856709477042691123684825745753523453226665411267302502150555146099030226110959003999546603474703358523881178312258489157631812006274782449249553384683182794330214083274390876388301669006118980679320191483645588715173447389971929391644991456305331518857248552324187348758924943013815978290319848085183077196175634912064691656236538169304476906331234392351775957265891030799403598650578197341217341431855009242833559338501543707144763805628991827952855632202570524241833306535373492783972357981245912618152010153926287794350331823020779819814070314868952531085724232509190557281532948710919397628808758794414687702860345680562998008356748008792423234699016778101549363167400991023640949809278276375349322529724111389748943981321115583914489101147511240843993868700237158035406729123571773412771006055521594423737314267316489990746773870773080694183509276841876884517596253637263995972249991083142698371653672528576493610961396117776226587316880836098965924077271882686828040288577623319956265385216100588975832438968292315555667420440073156342514158661998521774189710160431766420935039882682052566290840528774180134688140079519346188933621441947686441880892881284872842330530757186866957912351024653168968562395507923707109532712329091492458938998641134596422393866890931703829240486356808357360945952803152769483245174692217620541782185646628508016704033127370961574672671597887511411651074545404922237302395881584592681469570000489793427145563257282532569344491783632979694025937479463457257376438255958491910592096468823713786888790226192054855871552397275988845009846080163284689618038915510798249029565063153734982462125464730358300187456306260526267853449613995480632801510920875879328500879280737059793020438960717228481738727577239042086753981313872363061362166242269314244001235222207925610661864079586791305306711653310457608822509197609896805150999790382320710830777428059042542029029296847842524832204221584796200337005954007878229908821308767214428285498850512774150681092442711196838613325469256622740478328198881502439284522954791739608862296398999631427716394492035408594251145519217232863571035138210360376163425475186483125121027062926195002853585467518362136747298421877733916364163452055271571709698196691234973371448000655247481345706910401631388061998191567229578743569704640553229577756833435892996942680621177802410657060851248580081108743205937655995487322377926910981113815020881865270383111238640524265875260392569375900350256222854865560939703126444162746949666901095542935082038552525271671289294880456861602283014404314793385185122562777324270873178599201965061455626604273863427541496767800614302959053239845840450995535858685282438221923641925740585432115382786689422698176490795884164244798507965430538356328844916815485936388002080115658012822065268690739573978428713116439920015995170489875763581207572752560295177688800743064158682300661169383476558554772732745905846672755453854706505782831283848812639077305541528498648606924715036571272240043651523638721481795820002758804654649208201066617043870858412095186611106267187412792575443170884091591097335674804643056586966232277470166243497066715749352733449233438179498120609363894316711103097459949954489254054648654140166239028197501177327710560332343096389555295421905467092007174729500250831539073191958119150551978312961292785115019437158833522009915435286629151528634231086972217300317856135101574311959791408860537748727277808440606333667160556192438003354240505709902460923819754753337257243393578180558539150885464833218851936743350263026149544493294812689680817353708081556823309466842781935465365740246739010679426666132915511194201502355860614659761003803477435300801283772283037134073644618978742607080588635710289651706922880946553739836982974170279897951917367466604791198851221431193528776080219377386126678278878894358062201530554602701153236803958218206036564986053577970632291928730535463366896413834879754396872937336651770131439049774418252876924495178075001987635689014521812422385898682037565670233226753116018903528972597166560301553414959391985364105253697841598409412972610187541408066332086568209874076466758108532108142326568193810061403162588831237514380198775931405640129282722557393568583279528493644877156890819902273392116815866866693634040453790134870781699462254225177305857288734023297527677941567524202228541318881317655004487093028620869506807775628311540645803696799535422089509611494399332175250077201740547786253857511808227968958540858955332927188007441784574816982397789618951726598983173932642027046627910368256067420083868042035792357014150067906468645382277536560784421576582677025046256516986734923199784307686697426666634050114662885667773283118582946409014266025301849875113134488370817792255239406955463646947901092178804106593873538428432755158765274725524507779930689445126974609674365614482152045752503948127289421525595373041749049401212356030703222292989903137232854632920306620037757902238648426971764276123803513982351103308008595460887434509538093155716386724240162988223983744074355686793049765137890987473803055888259623169143382034056608911828109501008775060769168173634757374420394520743612978444247485219300952635337969851010152239574146344500799334898232521128456090264549973533889230419572648247946816346333910586230999637878561867827514234260742226142116216929558293565315633784199459551381139155437637183402272876424739338643402665406078461981319316515104001840374049659907479391302471866582173187236440412474324462045231199864469000277250873000976901215026192292102752532066286801398714518331002600904638413719950351090058313285637724146825756949746089735519394893379292741168273177087731101928214106280445634551443016875087004748712110767303363106894237425265120287036502144659358856811133435067288478304197148039887148898455800181293555988992084545058139853003320248777571134267680659252110312503048594700995170500988838263587819611549563254596307418489248281504584629609621744071196698624722027911467376833202807917521160459992959888249428069886808771585774499463302254460154122831746574962513415136233781055543394634189660050080738051012264513234773261487522028426956405178104520537225854041489402720910486040183532469883603193039899501060111641075170762665145054610468704468435441171759571015726500331711377793927124965761313786226807298012913362748884591312621491582570706602281416953151059578157617168729103500033814864831931713265183613377856966222706058260491953100329224056623582309968249479323812976552204691940701712500819753713396029222335561957966951269441414207753949821483286523802573738494698252748035173039504126998812399437676024058255397798168474437076961171173613677363163691494263389705393474585048472181386045454438176002781447227707036936623475206312243098627438929038421292677906189276386046628677074662081782495129087017156978431812118173068033860675051054213879377385407618876649136046340780466428375302164063831789124896751874850276297147115554533397720289899943016520372985968878234736475913229666617249301495713069639345607248792489768057875285525571426174471688810437954177262565677622572134949274981099537122743482127467602786795543464596284364461552492110065257196353350603046809856483587373045716556293787940420004051569051998825555577507369708209867452640886176846672925259622144845902310918041147772162003582591961601354660293667533848998985774776465906325346395536701815506743153514130815280034674175308960207817577784244172543800566686508908239773480511778202369923484114577333433716120669774164869023637923433123848893346499652611516959475438649055877316432254101702781027825985873862436252405917461400826937638513242555215884927579176968590988085377549929804773169420180507605968624372563680320504297543858074169535742433897001364009654089447105868516691817567217072032299073894197306696188117470477236779542554096049078036577993259034424105210838923438415548306809821349506214853339410901216753443298886710034453252440151494585296013368099741738469324860189295382999261533334644776227803594908189330335554117330822929302103366519351035895348535857375736513392396553995797867702521387241275898957998362556515103490914630700696221176257394980394154196554639788562148475279863173100634470885727924086631969895669045581269432301150700743643101952920129723306859572626322103935002754265400851023552147632879228990262399269487732309880428299685481257072192486769702292966402970034916081581653090037340759283354914044282810536736768706002884561136687506128370770788262811861552141582653785832071937398336315045633733941321089434517176599873761881422302929430822877072683944886213420721371043149309288569494146223469321062997323776523258497431129969851357022281978032781048655334090697584443057559865061745949220859398403247462958763688472593014961607615482505237266726100155889974944500451156595469122607120498831194495745896464231897788895481302936175737390403235885672372527702286610696925459412177348571897093761725352086832051628627254659870203632893473999963978118141735898349994986921700669662432713403135331529805228143055405044822770168398230663508129523396736651239477192895836108376485247191006946075885361802872511131256287008829324623215464914594772664292470318761014389514531759900744059853615519727198789349756407971151375167899182721232533279995483276659464531584013561235993673659747237609629690751763282156339816022071786905522044275638744226398968127017445205425280620775044969474646888482211093852238857470891276874457873205070374470160394722569378535078386211070479406229462520596964672803551755069692643547193037533495047074291912291576359535057628597507188707576546671378503723789035868123882611791963532678960366941219974804532063717632439654450444433283874053208648010837899123489655459859560055517262550758611568129927392675988661544359414777304283284424033893362850648641296728086697343804218523307280989702969124186592209683568784179920761725844372438145470665335921760009168386964453609753231695719908457441852632849293169140528923326796985063357306901866864192606775844311214110648544658461448297228578038871762016619500421043337306490628137530805158221596061679855280889871427982168038664886989545382982169719060342689301498111695791604207825231388686020656469208887022438369209606711588460679366852351852143691396441752702287964982703500130615897993972653847025729961318380027079062553090914920262749135589612390489277779044756617213942048890250648793620638546367143648410228618401107089219561061068670621398313334556911860704224125285150692219178061821957520871958012039278894337080480914335700649451479308446317597210232810260210132126305316876884174160510255538436863146369136932810131771035610637328692017566788998873566025286112964176067408373331195872341060042286171513276541236755799061771197579011682313764480578420864090665587610924285944311863246284324014750328697019536671083811779384231775889212482141416971741264601301225865266400877436694609095509032633408293320933955311781489525154757771814899633043032376231455141978014946093727838553468830406857196669879722648746528080012101387098456501903336165136339481191993924946481652255996446692613800865337833575078042121554673817289695581979171066530432176926383729040722218752951142057333819959260232743685152888588128474820499827918229515402402082018341437679219218647938593964006691402031531906423581203973956544743364066071375399217085458462423813315709079218246856147936222272326640635837136298724575853901236480827274681844058799548050540807403022851086291490000924085505715442436646432469331099260767082200361468504559322352344824023649883332962904616539751920312868072085703170799060502536417534810741557176307997869211598481710839517575446327231287858362125467159326770169588031375364073302570189676915367792465688639238885986619581919444491058272539779963445470200950397175581142293953636804939537622552929112351627880790519931089379141530201933564225967424153038637897807112744969935673590071075398749146307209746787548947937417433373258955346665259861023735480990467203015631502140404684435961218938096973675895373111573474440836246555310078007144910094281438920716933263145642241159785222144221919931689068019403792203901505478551370823774850362442753212782660463412012760046292379445311231739935199461652898637735660405503731961485554548391739377292445631032328528587504855281543379646726624383033789134288597511089968828155321511718143735052414259517889860405185350126710066431743359873559908061946432693070865163772718573243890502292489327811646882591913963152912792638374067390547688456133115146946234370147714133533591896420037282539886220780009065718360976184673965237995156025367353077522430861516450419194530720743177631590400068387298208669226553665372574069806582777437100061368293358994311991829617945416576185047295937747513292243857949685557424202279061776346116852543725201992142285069814607626281355249211459643329700250960947185819482515994870669304359102881852044313255863229244157581840505101782313662762211745070695346883171639185616295081466398622209998538011864399315613064164653281179627012374521326605979048828082299634660301747227810287222108964322081901597810556650258145060090319461036479152427325493398103876482622579846812580683776050036050966858256801652802082263129419922984003044410859259763036461741346057682502269770080225374991149417120756297226736057012985803189708801518328442698460471293733179291401186537720965755972478466933914171065269155877762860228808118879512801797765673079588584572584263801132181618024073598340577209774792807348107472477610274202456153500263373607919029147380563597594254420390714583947250456420807916079192382439373829090282399053442508053820715932891678545095754161690870114447972790118351473614979135242489800103607378999087764958065859360483223852179572155401247346614270555599792251698267838137090305780866703722192117923534003188955146209079119234300476083135800712677369492219920011910694177462059833613866152210644581594458786037330366841639118690365085312085413181076746416632120284949995809419059255742628897525251536833290902841862045877473249486451674233518959908148852062784023110489466214247226667878621825421524673201026076241924713480909295861444602884371563648754511371392472017167679279935439735334286346715734063971690376586904673565077564920662282157015573880654240400625672703952414668024396490634194759253616039426090407842967588205887265873447708818152534889132890786632553204298053342104435854650787222702917077854215681687008433629456631367793872160885205302678763379822663142753503708945013218415312228881521463530764731453911866095497545011323815115639201056628057965599544597720895746726808267500043580002791679643759664069118301722849489162401011650560306983906198044732008232306411104429198055707752505169251017568372693828224357531144512480691595270316219235937626811216162834383110587827604529037277961696857409466145061554402978295467769788225580420530171142952055394673605980698919302223295556529441437296152732858632983922239046574554978457243032995493967802524352373672622129794016526775884253233482983772357938382828228670185725786560173177655419779457211727910021877165521928232170045666914194812422300105747086236008241023699475832420309300073683161484295101686728240784556457654726329815540619731095602211683111626600978653771553624719407398671633599058072956473143299495871654157430858099690684981683907755686800987786681385788951212400480380003334826116932040685383669980776815647405125388151936489820449349519337310370437459124465036148154780716776343523607976708949306196855727307985545697151842139034329189503179934895088007277983135327302266645880837838989098333002493870364008927427277916157295301245633136070727991228413392479471014418906602222416073097227753502112366401499631140948636501658538852933055467074724057378112845328864115635931189027308189043763788827889268616787583484638090907829518651960045157159675777820082319184752698305945350044885102653702340074457434240441019119893129417372841681560254142054525803909908382996545675273604781789484735470090855904159572460698763381501891884096399577640078927419963823175189861850860834005122092373623370552972556612352263078184265138150054163011767130434574621050334870402340524861450010690002904696851405222151662563969290685036001244212549258912175576384872448122822413946630098339201662133797436743067533168831185500135612713945511160279401125152972500802162318852918275545023422931207893884505377412337531589652344492361979167807703192115297431752392892924830171696333140044106526511573161415738806175392425894335824964651665494424676069847379888270511299815166447019838694016857908886097476536359616442756471061960268679355532992031861604773651631471690394475965008717083319842556368184435865219659222153959642806752949223868257154535371178333702354652478032197700456461212493079347137163530366700771259445586950054115871887886037190008014351707791831585617571479207417851983456863624770651869220596644799748976340922126993367078200914040936479396048463064423285530861127061884724365791627389668622615139695222488590454267458602169370089296775055215479860577575191782448361398194733519158365574253008749455347023235554942603943953561284590373466927209129381164117001427904586745968438064250218208152576275610663496308492944878211769773915389122429879086135190195843277003296916558932942773569236398121571440874284319490888104357284562502314906248593497384057866273777522767793034986568130102074495213059669879671365320072906291911289614668916810391356520983391126624834899138107664934288357592124971262417450031696333930675819913651103110157431115727634653469610492270469338315073516073589325026594504061936163727478206313578039567623854653180967879608128682846347069998803099262332410051978336071427916928434850481829062851732338843092827782794488324210063919499318189054281494570390457755075716932441401833444764640558583713445676438818208436111053418209609939558754536495924790175907025426844245649317534608559578016460508122591967500590320656161211335942777167066036072020570201749576963437192628854482785686866858485935457615024005638960237803036024827759907427563132939445964991466267338218237821400791466942945074924129285052643649146751492969683207646483240158706815074146233447940927083916406153315114886725614757205084180938711616637628040339989327068121926894056120718679724283360938219579024712097351572258218019725621357400699347476509582607828619202485995118585652429523651714799008754894510832377677836607310969282492424882819270047134399744114303477054638230844479188912261174149895330171911123453622826501807299599164416506343490509096758730842492277268209029664596610877030686640952306039229915250483543394245481898876468816257139642005365814567841880708749541144585967526428414965603816358070790741793773129741791710106500634331281564551804105874227377011231584944628164106698959879627014921509347546359976096156486864831505759482015152126573682655454392815701837322710434139709052998891987746926878023058355209865183018706507852920465041646942763818105322198251247241873004692224881177852750186509462499000638290887967299627442703819476452595532864816930312031058867474262091128002012499434348067110969139292970206458552632647371180890537258738798080010641864898821573855942230409392827116913266681426133300830444162653708936436338672250604244025180435907591147107350968403355830351130132563628539843147138747270242547886229919981994266368118036959330698705724886226219211885528076674823774195721557644360903847673594371662546791656401044050494961923630980603838646670036180936856177015434568269477585384062323319034604742837926482263405707991186698001513119941556169979496603931335831261686755268926149535005063714392141812083551195238127137065237567894040267486039115446100208598091505663515216829089199587538664126721193835349251842691869060613067512453273177980876024775151508978122681304299308083550430024170744114935507956108384402387034226593029899072161260148567861861651319904947065670701136008392997579889880902185718046030417165436573193334360692262629132086869157220316866218993333084158508981475643037976210265574873984682537049515187619199431234107842690377494872772559771877054844892986005786729562508228685592869497235826527943878648273209196925541304202212999622170016071045302538382180891888477935236503063664818498743518831285255564582153678061644356804220907653969017682643353742251503870455631633298241387281478362009508496532186328566107908582979695303442410742739866091874381016556248272135362201662182340640123989630342743624362512824778090547450059319252423354178166644247779670306306865795703939362091581095976972477138533600631818936651435799280324666995161700595086603131244509467382669648053069083705060513615986482899706830736682527695711197291241244444766689463741008912396716543011171797762658872396341150174489832762086673538340155749362502134903453188023913185450317039942576187799137350500285251109990522871327720084101056580060023388352907783880897292902713053061177562160083429577958133299008812723439755221792493967167543666341680548035184354420095228634826579944871298595198739696137917571627465700944997393579652329128895827476930766368671794963513994904106489305066826131687920917528987712886912432471911291626198704117403494067631646051430649033744120882333404453383482708136451748050823105051617864048614157890942800223214710751715464850581690889381711440904279981558558873291183370390696764108301807455659558256073204184946754322020014313392316852372988954160494830656411023916388273271826828771743806884355022637909522919241768924401104078923275857254724215869340256984897263018909902370239325194192963095525672329608019346117914688161522323487884465662549183232200156452380597054882403778073185837431869728010686032007022488219788110604869071434819937676361906089519687618516253445317027118245372361291035189346277885456845588266359010298388654528763579947861592016559704044963307947486181329133077395699668826582653850969330448754902061811114280769611281172634943374803967165028141856838501428221751928733050998703048038488721407133139475566600325923568005423090552632730991291559089035035825543115556853275564906931393681900792704412961102337011190000029346573160489113698741282893152592908948681378982957936961722557320423281894696640004335081061563218498151581697103970911437129956672939905380497797219222574959865165505733005547495858335759498025691914966350562694368418083145408661248555221869344558901579509609907737061857414743106390252161336029775977513363701947351999272340548304081953805517485429543123900887105478693332798038943028487655269921154579802043792706787788617446605158952530369951247091140233958651603109358406194105268819726210042752722581766549681048777116670520606379998254959776557011972537789392746669878841671582440957963280565214177325025767531109505525765675006695530334441169312764566129852709788403392793714829982111300245106173167160349014422263935238704161158551812347605526313121946790554600716489882748516265734149741668885291823225731851930985735900342089745267481280988444306144271143939602935691636760174037710175422033646337707880490759676591983793270632121735378663770223241068572892335580473034355878792089433565948906417819913265569304479287092027508670358858575474410402971491571204427968332491366012603105534300457451749526530575635064396448021216587952730673946226584578372024125895419465754399779733774331740879273131173189952481071501368445282299853279900325077634450494216139035503794129847535985886034022441839235788337053648400344240805220104017970451218379935863564974483309788514919611108567827436268739921802699632012895324868671288067322918440289886131209736542384086482335398309444384482437651652964949895737221959999772363673464195323270183620988770397601200678418561188005545244175920800055132790806238122755315467503966570496777293569807390749818144190257103885648775799927756165792262623101350617845141761385236550119649235312405101984664519440601737000642265302539479006567946061589183822263490276528152222389358485334462846322242095245295746352749937137247706851921540509098307647454052024438482818023653882400486734091402722446850086474288570139496617994464490503734778165419085317693596071491258463739016353492625848014335909362738752942915129854210389543841988597163247755354837358544012850267114719653028907630249712228335609905088514189860857552539454932363316694569248847259965728875505153573975575988420177939289888404682099453142270000829403241160394947832156438498456544159789229426676965470041713770184019456795676537628210609690321187863408105898235878676433605737015227594311306742102845171734456066130950548110441091929485895971712752041706035960201197000882925051408367151659943031025877995370541085923983715050425156525789402012440042947738605073232903117141748915695246512165486677574584190556348746640061896854084345473530330767738234151825336609415329480335652421282687498154004737221845441624806956921426755472749765421150622848227014100807323459783131291754900671420741639969853552639205680697837317954456665678582739319543005376568764770937466479200972056530423726894618150702817041019382828540404374454786151005170353612174572988696296644763333460441592490408423997937831616087814194803438604023380573095872456435714653795752887150011492250292943974382002451936458473674247252224823243999305115297649722819192207624665359008000467566161472539091349425090102004555594912287491568849341853028836196906226620916746911590735578838577780996616429985242908323556600208438398583458203797921451801154671817445774536067014361316659224442467790417181121670639823203316530166952659490563671233208912966436477162478762474902205110488810038658530330324542953836120474495570714329989938169280726788800709355971351181109762878405985527495013642917915328897194890032950554000876152102567377292098886443205039986020597452390382456814321652848733761669002331388162622302946524833227921238243475100014882843039036290740345410617058924486983170263192019073215872824084164246145973010298214173307536369550013021522659879434770799222636614022709979266253877385347084228420490571578338755192920893329900233588665895652159065184924063429586378970365871776681413306695707145902984148073304007270726292440306353408142087002058560450319245456605082215368162287044212058355577488754529718728788021209788191279205547138746729275616035034076166753435663935404000029152882328255795064817324867224282012323685849507489952915609044334051372296579313200549935893764853422824517845676825366958762850763075010708992748960768015715514615568659954117061404157878435722040808398790894735484185534963807349779456861761283348423926175755682298279781153813115207587483601267417202329386982693871764609329247229959341072651851939590634559659142817436565570516693842601438929744741578425884495894344203056988694820208750500159752711729055064125199814085630765332197237716569592517303978239820973781326477598497985059447197983856708697211301647223331946543784277363296702378676854519173154925181495617409713157885173228564896695303170015675763073103141419248600540215461939350964518142795320510638756591031256542405302082175571607470633637817888294012719107718513873259981912680026146959471040653333264887802288101885551988537650549886355082152928119445813082792588703231233918824957093035244333342755642922232120580406156432068237272902281098659339092497233858612857538406344842031483139116436989036791927262710397341827365642417774219379295461239106804717314239344822277422396580555194553002317008482308790974498112868777676590396129887621534462495908002254445084135464584346677250925022859311737122180713953219078046566390419064600808813598955075953696601193533828354786815876301198501999171979372450786863220654159927805035504546719301915674744714706762234123691809643542686101674041073601435530322381410249303866440667126003097519215578449177982199951261559816538430944908651336469871408744447246047336273330648442561100207292276720926010228900920033899303861776097611183387735609958822721513748887164952086060734833043469229566388174604256925498090351734092971231866996345765856008849417051165157185615786300181718151186341351596632743995997766653662552911155785102702071335587982031648564017938522173461498074138818228135067289310053340642512122368037721417971985660320629418377726267271666487727810745091597305789560162542757599770069395629332661020457506622947739396293080263724582877284460015164336734497354778090652279362705286940710141745148399648487511985879057286353260823500019810450835912209529091997538338821131670490890670620236205636233178081985471875237793317358443841418732035544156241936841878418395637732830777681240510329248203107554766323513446856614050003956687824065702675521723072462683796162865073471745049709888500586906273439269013664249193829065296488144315811552677363258046664842268660519213134579276280493833495605269392865645614624606176961359866070485089940798483185648706939242412270483969098744758062548718694278162963233963416201483851387274390950448621678328312163261840621482038658245153712929366575056845568327896446186412693873347605151421581810540861451785343314322851862773508341019466009916260979872301408083823468692168453628238899965336518973833381736677063669895703893084658207010666332962088098778974336791841859740451097205684060934860199602495626709020455027495531767595417119255439502981251436990333515965005713332213767495611870889545217958204186210937473432909055231329741705516378374373266114258038771962867030331577622603846719382782873480053708891266759307020052584479000396093980078883972764175872318200490314065783889272588892461971702519568830145572480447486151836545655577900991473146336177678157841533622360588971415442045701892571786402532956034005055500167120171034578922612388412859030117402926862542553905385966726987070071688739774555126926631968835050979858900362183832710724778793205401367833094154123924658123287810957187263938138700813745395663361114557979123167819626931700240575152531067647149866704347952432823174990699942737969012232151638216322315583689639589753760871303386551677014338762554618705324191039296811865034409720820975180454993407906181681032627816136015203195495013147218349035320822800615364537968618797789276454210869256071671244128649289120573979299904953656202859468596600880801250435412518996335811251523159957371509387036466357831550042664977762148714576410677886423731977757819894105354930569113090962938990185533572806060524340398354991056598147751185210318956855454081691851837990827995422268923359386635497071720532796982830013766495028534951604109510831467064933416793066139616274473478248296971718985986536029707459139107991694814409017803506226155899637287185480323440188920535751306678378227472118924089957560321900038001377633525858321579024605820724181828949814316851761822984006998098305394786189999751207838948247685551765667771721147049663817239457640773945978365383953685306335995015264696513983909057489654937044756551199934428828328721141309873434062064119751634436214386526869528010797342255808194501338258659888320608691792026225129333669445572359487677201616212946988432300130845905036783951414221869733241133169749435017709628658466382767358586250037569455360829854255223768641500385270554214171850617299898796396709635369208467416598319982835602426925358076994330767522262801630216123332002378576729817241574939502834436250805383878700229570536355045288353339820838154830342588110808816289167731084524538383844524696683357119200622398341096194772261098604277297846568157334430607912896179219374206843136920083932783445921531107841977828747927227048387187730911224726436499007207702646938448664456242356759926038760973209011924638583373695795304148013307727691529539606242057200466724189929693753577298436116513827624296203357638594199512612635340353769484518955699807736859412021811826346462467732052837386980850130171279123587198285428473869994746173074792547797732340249721542921377068556695966479455939936605872018381119982293558130880447891806798081037610237295520222436996919225014185196367085440182002865285114405682459654479425636522504319866254568144056944716729324872810369473903757749708038129823925019306396620067082663804786478568918712903578021291599065728833255198797116860667644688272799978548302054486900111108964006945157430729839997218843400212820136255710598241750809700040842016252420310000439231299615431306165499166782773431407629505380976048348353115606951813190532891123821781570408009781977762237051325403849133862297683200763356258829999103631489710642519008422210961643032647808740827295472550200312512509382374033733239493436015626408585876413866302392893687101528648796312924015082204974522741021910976646363072363866129313971746581847667800727139527145323601277048538511364732158003576793624034819704675462715134264536173007018702311245044743900717312865584585917991480574277321851568748294232126979751521340611791171654273523776369158280260171664064859455136445791958021219846936854302452232821540483141033184697849426614749411959115946443887199066970962409849932515995315624638219906890467370248404938162025571306575634915945312204204127459448831910737135965808417612926799254931693791967007685638517617241930359714856482059874744152348362562090196056921185195493566147185852113180894736005066167737970929701833405114105344031544692936894535032839542169245340608192386715161584356742340409575479023906654018301696778150427965606378733715618828356776143284428193156881303907111486085783961610645951601214382431949851130688427152990836021144198316908358281546554227140163192380213438992433320224322725118472128284299594088323275755677620191264929292724332650478504649009868178066765509283993207748487861100567605149738369562586249918566547223957495652836464524372119296686474400392559812537581695655111051308943270457574674803132532509138980926832689454297941893883509199773688629159552037206382166607735661773992222067119197767153295668429001981460032355896475805286612543060097299460131516144958827221286901822497483576278785954963795277857266424927025565945914704962646011701771097874688852933686324993549474697010276237816773429380291775798244304036183675898099828887724932597491657376481300354125874957590052406984522308686519201287246270206551055031540916782286515093389299264177300759110035965200053792369497232191217820130375049651892735407333300706638922230955019457328902327274086685447666813695373518701549603077087800926370921238573571909717328060273790685714236649858507745274969168945913291673581214518546191892302247242551388621353269141149004898579892145219011848053777048861085697367785738277750344781356881230167822857794792645779975447725987606972786150210618969371055022303361189786406180820685492015756330258890418639131776601365335084843394236454697373900467306353715589327158160373261537518192724562396782742939035251727296673856968361075977366200062300454285487349273146452326098591820463034555734376286696950500457461154623171709764907067215848206311838403952615670343886841154409360002090010656445914965747185570209678847834360337012019534176654134799047271013672737224090514341145609626372261961924097700503491023258886597921336423191229326507755180998705969743880363068184088226335337443706655543324312873616462974166905357441261236693988735873535059039020937176096597363749391067721256378673484167940819851143998776931652718706523902368854772653095050096120128940698032906573473338486405618595489644918529695230364460389960152678022042430722648828055547485249085467399892337284389429361633479586276804775210912614759008630411181928340504443746743641603589579798328960047160923707313876790428925976678074322158065855658826506269105113390230868706234539780185317425031661113083585470741970687358397490954261191857491637808093244361386140131270228270874565894563115932710387296037683162298932429302832045221205019202002514011242083664414762799914521743860815980578957397943960601893550566094252768406715608606585148252646191840426393507771550167217214099544767773816811560483792943898856151849730813577541939785361271730947508787428151208601737414332917463350574696035270659870616360425447606383064970507528501923813134685522902570587528820029438238953058112851993616936510598920646297457128183672734785421738232320767673412661837565605319683783928584217784411526345144893335434147597557920660276132060725385518273390268996159524278001448159524514469658010554615627225601719329956820323729829365446305089359027955607718572155434098773219454550901004744771913294543671189811068819477703547173905108109246974034933829062032756695318693647965115494028498579987290700188917007037653309196486410934345520087219342345874682946823674365048112052605338972005591016630750171687154750961703894250653201404776699691602846172567648691436299577848923059027528248543886383625999735093395474578285774757446344670680855861052482331709213707299378860895016614257806912367123711653689125252190108272578588172177069928764040507408791062756007938127655189732896843930731347965076000115206978499844420568388508470287326691701400719034505838695094279123521641496369497078818541127864508541831758458016860381699331554729211242597059088565741414767036746115660917560360903646098356402375558889516400155386284852469624722225163022828595791986975871379294194760755444161414235087281586696556105115953621311355034985475376301584128346025278711365085085367078885959802547827272167699719207621379230176341747352305818636892019111992335059911353317343647360631936514942050613562863705304527221672895348059394753374101022505132531603332265665995295787186309530183738849203285853788658128740503369966815611591259484060294375512170374661573249109442268966100453445017328238928884795536674909328599176883907426327830558812857297865387082837369379330402691731143785923019643442563564625236971494060509630947204932032379422378389321900589891094512656944239696907878510552108680114182324784184391812342339546343394246661722358644210770224030824975205757663939894788038421882378927960216032443238495901988684577944401755074606914021624267710489727659810401541997063119663925071260018136244130385744276314671849410236091893612373351271119756617752411928436128045747069269888246513190753687196750613173891522113966122784112775447690041120089480827491359293115195144434690255580178756775373627232275039708597249621450015418500322846792272121471168698534469866520369559192942199640379571111822990334387317034380922517500891298060123269642522112786661336936057081776423814409124867914502738364620172168028052288961501557779933437587785452344951393676578207053647997848821021921681758649596018448413465082647020068317046979812927276903226908413004074996221322919261816052225452100878894166234284730719036073777461203049152205624192386697985699236176470466176251913062351342469317859406053855821984619019878707232146209975701625644940999337782220373797459394691396571960647401058771471416136583529736099628094885082426372104269879141384973224549944280527486092059397279304081606923190497265274643290641370999984065346165930198688338619696991096390553748539989698059549720258514012259589150312765855702191798581622089073824461330023474494551768352627587420215089988604528468240801316143433029045553242806371492527605008046974331364846181372834032875001578771617685642390886665285967521570457950660443628984235229288748483294996971237605387463466543623624655825754777949614380036437233022278652958949355500964958639601636319709603040666682802274545625309803079463826731927500577122240822242538068600868458218800727433726254125673815312745532122923046304647294728823961381271015992652787501527850702899129283900620536713063861354006127702505767980654106621757011488924100056049528489549694635246814493990783047247669374157803665041800011097642506334462130628960283162417558576918453101980903984350080155052967643221512147593559406546861602191311400290952493145650735729848904935620674933377086797593268980887581259743302397247190365604839357523566165975845901538491678069918126721511676384212244210911083007897263883253236565058556129443219205960514341421587390615380004992520002157392344002446498300432617010688337586379758620643792809380180554142431484896520737968825271586082662421442599636254956221569308405391401080375500140442763820324602327008984891579153391990196693565854260175424569497491713449477318080827899628142738344222421289519417568874731765778652077847078773946021782190351207553032987416325115128778579610124368813019664726295606123364399134319850399765302272819850354872639685027276866127714434247767818184583497275560672202446951294159420142251572876899393347474037025594738600397520458488831937828219830501968770921122826788555062190026147964216353512602028615596300450944254072714302264726786223785549413846125181198067948902586963598282298756335186068991207089248713997962491550031639980838795260521292427673316973301235242073192326651279590282064754875431011766286839187298465480895197824567475764370263773110905462493737832600463403558827580244841816432341491582492583710782047539677696274372014702521287497406631505221258105230615863307879070755380803850601649529036432830761987213333334753899455270515593188128091747095162294225870946086804272593871252628989491476995599855350760747698402134032410314151643309259305316496955285528812603149908060548893423770913744891578417258789631770770566632385077403863334712771131149395994393808801054430630483627522029049926125044047539288069596539434933768705723729526970723719618659587610628499242178703202882329573064931806620322086038805646440054444405296930028712067700990222589186989534972772565852671390816119682589272277744485482851078663805408717582951286149070281743849217481716230910030953246718000349624890664361239757350384435215084003268389495039976561433851851732708058659196802142647571899476996223783734305620212012373833838998030047718594584463839273186557108594724342275898795103159600462768632241712360054073371676228143112608125042954638978093763003864575368981501726115275997740471487420742000261073890895949610261022141179451886206305446307783235349321669546139145227832766202291598324639707003266316111525656569539183307794158948326135841624456792125619873693263567465682059864739886636106903426792207062213227676979192010691396937509450780879029684875342598496840806001045135228369439458307968094826206891560967352317017837522666324519229829894396913013354014277492746032244678011316713974595055323108298530919296621610435659421601225805513386348256779910689075966868993953088419898233901957673583027431226063273443674273639544323794000672401785933998894463368789043826999673968276346796053955088040393824351342135424496871309546069912250198635392100966867380218875827145001745680725114651611004848152600309182357075950049472531062103898536320374094204629434494055225066167149849478512358646510632443411881983720103789372584658218521433416447339492270129307729259855986463684022178587112744644227000798542526531846785393064053061187584587207088644759374595939465049560078908204946952564119393653586726103044782686958758515744765508140782284205622526946213487373922740115294494217504384581772480825235901233406272531243094667143994984163081622866602253851976426229810248640932419355070773332360083381253019688388205937009750841030910343833176307654373671863890307485235927626871605333890127576651388243648765112329024667212576891418998261139851707455518566446859405252436722185046072667579138434213075332451101907989792825694085558801474026249189965358977958198101763399478626692187160493395859783552598951358172089569305240326900716880196537293091309571994488146452896323646157412854933392254553656594443135186104165872893106599865586568535311735758254938591770386790739175398414202491605558956623672689854289078988675153693602028424846487374772506097811540426313289411341042120805429562378124070264066131409256127839957136287406972741404058388710703246349527200601830534575749858808050443576157889665950449075644606925276918628000845310310265991374334065517440469438771131022074357743184985833491699391828139161780115150994920012810646946679399980036649438104846956910783203492889748016173005888577446628169467157879277341540262547735623245691356502816555161252368988549575139894505964748829054514800206216928229719563450523627798495330467844742627131102737210030389922789473535478479507649949790652559293237227580702485881816906349554401943215705965269507316023334023356530932223700126004833992885790038443093746908289269403513200761576636729327564600105105094077516834081143315817801687270412986428934909007559849304009149810203425689591756309687949845348172267280859874330985788473138172384192709086026695538362413322974858237589932784762110700432099991272797818262867517883193141375830027335385024892930170541417986768144122033952645386366703633357533476925780009976784752225047086023265261103890864297160334033663775368175827314949789398724029143340656970908288052531818476505454296187431968824350760887747584922877277331964813389837914713624810203987188010937227059601484770307874400042344222343514034089302570168552466256293223135948664704162174295162984974381912239761228767589636853768350153172868407403198156651993655489979770953542032822867003994821139433205830115737503688017909756011814374044632757041325267567488756368808594988269140553213130522670293196513853330682594446314925752144230853765172313287999925158948778882208898310054381090737677097115085262989307233539387495364643039588273415009592018614434230186237948132571442912704931717718920580218262494644929898249133501241393946347570032060568848814891838963559193163883362952958463877150343519239060263788312442682535161182799466210925516425596488099582333539307484492339561371204406096338965027853009384687728414718223178734810227255824645975556899155585184108165122959183124217981137888988099808722133138182798166746417411248968847469773431386786575713012567150335454087717197697283240427566980001458199249800455312498423320026650820921618212564020270810855856335462293010279531115307565994768659732196107759081935249526810125234566752938404414293149255022193232868713212290976159274264954452411068735680285688782913926873906365232053869603839354460323827300959919484008310745286064577757908264794903734965656129148634421126948799402053788092545297557703289086193153671051950755291953647047586211304256864296869937132343522491058735278508403258231808923485062340376960119651086210573848377075815860541631752854463679846584537022755212425831858151305465198661126860874214520812401396299284148695443122284480046529500823482132505945894510536672643985441271329489359208792796243983238614724600847459121764954461852661576521333850197834760039922556147521195402232851983968039674167934018231779628154122908727157327244612982102676901776913526957454685590856878996459437085967453646431161707033327730555544992657877440505562743239782760817634957699836536972039622561946689564139752285541095356095625738922681657253543918386855067780830180964593674685464798916287593994654640408338795246240832510189529561943733533526672830733136040053346845689382891450359792338283101284738542464052409304331351401427016580254713479664076391908883458380504360692691855389517883639014727652693548977689032090136170371229749233628325679814689568666084420893458655430683845037527892227970431137347515649110556335063504774549963395881429268983002300522403360968219859523449636621624360451359513376007634145110649861826834844033295902418780055985284495646960629867900912440193731489949326306555368416197052089420862219946044984972267983028543780990366103382188245382951705835949788320782584094277447978037908690580231208369366210003770874243566545031286045969779960246199858444651870398707738547819184484255813427041346751002640049233152192764939229452683657499064863888287245553491462099058150006929337708499326730695584660262504151366187438871014596982797826915716664667849762023769759615880946347251035794409232806385562874036517217984309384211024140137753777332954987101116280513975103653958031387606618312772665194997786698660277501045697684523907675252509089287533879818398240309664370814805868732941629216869390693003743230972228036621811216192991663862045373438812455094462066395400209550836744167550967869867045495560070896167333814881063005312408831929445761592016057664017198133589571556435253621997343555648672421243235771616152869120277801597648583722019319386338430153232328360973666902909210375010634662928339218619328512459348786583793928417429630378407285497749540861726824549495357104910225394607417423069857767154209099084499072707042443227246490991316664868345075021963468536476793341316506135233482844525336582671685381936019571784486174332477568876339832311626325171872402056125271970666814052265716625939766851147116480552556807618791593117107372627193688863927215910380596863661663952868847935015802800598008369697468625766163402506107338881137808950639136518152013171137916325361125104782852292527253104860134316384865932068887436549977936840387535867774575690091128808713835325596911374879446762936816285568221939692057277141546572454360841852652833412820706704684367647389117900876718678628464497281124624564758649549133179898275050191737731573469680743125065589961299354666020802692273503516951368334575029557272288386000844699321924571693455461019583969799417137771466082089407151112526246553407406478351268380929293052492822030590470105128927087864601194504275595815870669049356761477881207430046707134657898735427970496209476052926824215426503541231787337509932337316081376228073919473360252898767846234374177353975484580596239637667657100180496551156255230023732565535530561031798205751155957351552288906535790640377737847299019889398758447998381546701019991244393392057279512803393452631013711175034378051874692177601263054194920940516383780504513285582586542593656423675169457452414176767315808840248124965921352536302342563173058935091130972919508789377177614138728907571040601917387331972901400193391451979280593865347892112569846882141799069441399731031824058087708679136670267608588545380651574758738847641725280200875344566789460341685066771914701306187738087203044543373174734115386693670935049992585719256437492205598402315597173369973518095953536850988797658083771323923364159740553921438137888356520785833019691315234665448550291231258798876625438573663848705374465511035623533481506520236593832925235895375689010508678557267978409463993767054713182650579212832560716373570056032897852265420223437063190514609027491934235929839843015498813988671886139070487364554732764121002707589585826510235384514917719946773977009743522757007069499622930445913492533185497920380689860378886244176357641100622045115334230144520597845704689285215973555784562904289646581615800117080912561994855998857888990618631885432179121676596833076311987200180606781799867717194406276040243786973458576956203229530457519542198666342402783251045821383380224128083851385426619536092037472823999616828530487482070771243026942864825564837575877462185478668446581876513275980021122599031430972665581351197981068435193049922938813386625045436822084306776112036104460741761375979498337628466930136894856773970261265803742324848623181764630862272102811460496359063695570620639373631988612350391513263710658903584097364192039339152713083372813315176872630344211772650124000880857009177967783210114321959883161319299732964192702323738961599467882621734150121684018144335379235360632089537433957469921146258502513841574874690847743398725592223636078323204894132772955532244201412067158862448019949262444226190248106218786752629619916036978760829526636969729832168653539767590443931193101766404136778200208015362760692523365456728950090578195601069237281316006684748464411576723383289007826139688930987351309649777621696919730740580713248829490940325304811187613409842133376273349526279850917307831319222280204398300582003536261896534638334294429395050127778836760630339105723764503420228632538482786352754559828561025820105664037076931794509835668234656950551523813061362236092793346947974260751276168731695351771915768558162499374106065315284071497268800375358507365943767651864935191462675256460376897303120863720091016026311357044750247018969634698267903737653932373060971620650594276612325190547961329007281418087836965290480732865786518535301887635536797084501688241472588358878623693083271928700749841658224910110375792307768979172432738550598288565366292161898831139937777491398360693827944563752948538509968056056188729632937954814415782711400564820120753885406843557907058733504603535520912243842124588429504075577052514568361068643299799323275628911784224818681859440894765897884460299938154886943610531789244197963759366587424126199213817536001772134896083147300352248265441702290424085498160423784279672837451462592642565766201529946017705897569259969766980262810110870620657130940868825964094897977796355914298294792459078689564694996842105862389463702237269842356107862155357783652316346434862965426013431433978083246717685275283161020416314601828245258599832257286434494360173316523204648476996198525684962644792812745333305148349290063305902306048782456883781428277780331333685537987216723314301764652235270442248997563138450868563144297394806324679277499855600157445982321608424010467966910674361885231234531347664937785141427697774119560872280535610418410423342933372727669593163378220466076896525186157945563795337600884050385884799566051017876680528434196323983352698801560651002808086346873068731468194080219374583800862020870556087321718875178897712477986871465759273724638360399434269406137536183263579874484745761491765305971135180844426309180596541678604102244231684902615679500862683100749140376057626506796202514676335626585230819716706281227706493766806244138734817430035675349288095259294545330877149262359961665556275905104751114080886890819040188971057815138119322998407706184645289425395599318766766374690269650191669054248921922074934722013024121165194228582546228524646062219449002098961880130085493679861972976179546689141833610177849532852034812237822734021260395207678257447519550714554372395828652914825431438171066651707431954091494627256607366569363318082471536645871544481218257880361793514506546178896265172141938791841220335152374987734628039405491070130214027639484697734325004030189053898855511001950104638740830218954940967944480937312008444149302637190738218521228798094767656804839825044532005146838215002343380859604367019936402587677052787573574779238452299370892684194598135739707508075274902881606423225951414359171300965992960285768809729114062634478253347141334929033368862626970293324244344927725757633581267540967865499632966316339832452812721982983425284743854041878894804278748771671967555308528818371620981837134570995688734643105810099567274771710299817524844651174713817982692838722375407221418565771310025458089016323910330560296291049503484725808441636599312153429408926672525151946687072134874716936282012676204718962379602566195047428549664673314387661834283611558181301934189999304378569690996155010533545517984795308184869252418236913698631433672332975524227952051495830232743340739337076196348869442846189395030090400922261907771820958752502698096779757052242984779741379261136005898198215393578422782213719782565232826936990293903426659633483919873936910404573444755324845174267333476698907733092024130621487667297878946700740438209408499492818803937451383292988047336748796888948810830726476188551435385923433929651965750180751305522470967915805119971638014236439136968874547324128371414400138443572452189291021757294242105904386726232188604292090931956091387318810329818204489958484371998337405538724659616270081950526805886068736808089973369031499017135244293348555278642492702262482207181884661026551730459112239686641277102464422459201796197132358692908684473062809571698149740159651699898865378190627920502881518374652902664553966134819321013365846225166099440521671330597701973684654873598530550534939130592938901939506669466738052450912917341406736093063274732050619483490313162214105833267286013298568699881735724642140472654585870248376291752312464519856738389926631440412648596243371116616166495145551380135834665132422365936057020524638211572266925598927882341454085269869272093230812391494722259449224467815665628565599800974662311490947020076776956907548973459200257228672757113828429079195161389843510449320691586413925681174584330978889312612310020192213675909380595429218400703099060187424235233358914416924995823977150599756564547557731483360019075974214800425277591214397475667575069938759395278135815450736265292505359748796611076162047164082123599985897639516774504416840303036564522028055938915667730166559898434557187044194576006441271212482076909406458908139755011450660740668894344122301729370156458131221299345279311655438132860908269408186888802780681870613389994684576013067369436388907241769821777242334860588757103548882885655643121054544427728886721062292808053400270878322888142447718527821738841928059831145319937394143800992972759803327304934530839203644191725562490233262549329198626095602204472971409917294649939562968214471101425666582659463094746243456450201382064601873131443595069910423209152072855780310657029030522495108754151623970465253306663820945074886643582992469965738764990114876459658593258616808286218785283869460904654663641948095927599829980135519514002331604587045787205547631148244203917945437287271159146580835967011848393808199860133486618195674703734832085164137819144005174047203960897783280386088373755086062692485603697298745021919445565732889531353217118429056245723627592034890110052255442369067200995970165433883045910164472724084993745917590278564754745025507056406121410922134767638617713260711771324235464173825784008810030203661555742789049272181598427612524987372509519273117905516145452565193112703537181327485931158643483229892510561616379554517149644477953334697800332005332039811563438964469800982580501357862731707220814420801111338512987349775045500700402276895278926110698611959112261355730415229839683729676833124545710139806755944285123938186154401204376398063992194810867304898395720864843230908821720001914925260542607834674898746815955500609932542851465117623236717852910909031238311511434763901300384993909073676155367704311998973468282203915783527315237102741825262022477153839886033197906164445650980788841080670894015944935949881693854398220081345341539622735362881872015234004313212700830314777015717902629383865908300119703470002250553539036129622352099081882848110513931533369799761053017110904173263828087967786856941262127396255809596570310442745654241977744607541006002266242531881613290912250286277077194467339227397788870159853882356393744236559616015541355846867913045330716498576654253554165000802704893179846298627898145358562057278326095198321137025049725858908987213317147444059527712798580559315867966082491312885302186592996192666477136785082051951686244888959533724729994068466571763417238731499691447090171283245222646673633195352477893459583773962738704327716303833929756294094918513330656388963714403347534036117836476679012065878897711572190074153894012198942458177422382736549977259396394306962303971028463829685837332325222961612232048681899678309344403362695697991706558072383567727205333147138967057897965477157342432663432650728434063054069218464445656084955088134030076828386920661999618830075273001567496463286696246708045161444484120914020313900165521310537892917066019441129960690360072969042934403129995180657421444594589955377408948625557206187216281047179434899785071618299430842604250874722738433935589710217012895459708305467634659014668570573307840211180919385753134334460449698471499265160450609353553505650252649622962291765211609483485536542486846563619099940956875502243015830593065880903556622310108434860157005068011775200358875619108418608917979409581808766209548798892609673606137170510554543161145015309290617241153445297736821160578691692437611377512597258861787136050475049749549606531476636682256791705946318995110262314165262925349492593208787559303127519389501695466876663236461600846235264236671779153693285779600355929130298811020203374904742952504327918652372814123834412860837921143228803741397291734751266725768245718967359935764221584146267538578674899195912693926363819315710333366053999782376783571810925378919725994048025945207413076555210964554060143795460325552225348182998258676322526985282865914107475472808057319557390974962941743513100090833000020934461119725373999472475865622188718138651879584542606668598559771440310411351562615812332842337788628625213442066095199824553913965493337412589184982875001324448388950874643348387789807301418787634927152255949315497053995773069080182534735628044805952399643953394609921428126880579052314182953206309062592733350137832679699451551362799876805451133825639521729349926962647628651540855726987199444165060689209518143957165056748024912985084379261655661778421912431651310574528062177414176361027478253557476334748708709144164872170848443407392204957903911606903454059881265854426773763833628949923210366045968327297723686714871189102534482499843181689005507464926262737298130864650833659559583653230021340397643078055454149817549041570140912390683556466366744402813446522388661580090245241646003901523371800068616047950427313908136627673533844282529149573581279884974608427291803748127772219119741447872257343805031243176020913216594982066842729848238619314290333016122777130720068834766522254391652924694523206035970252822593320458670963480740583065041206741513274907883133061273003399421205983864037594901147255213805888069058967843734987371185356457978596957060500711146805373510723785682033102717556488758416440196617012423253724768452441975783444410714536329048968503667427894118516438322596596766180477298420808139772055667223247721751102446692487965390454260384212417350251773451034370718877759676441057426695079167481206912132786514427118419740746996931530984358259703449409481194992760790864341903906086520727365734526741742778226433531211943645570842895558560987720182785999918050807630088962280778578882372234440629994763059091519085948820131755510774219325688449482404944715689584928814302404659343153874021617126462089302808146600976842681990685665456154612091369594005152206228998255288699885454440290516667548607784289917157431534193995235126775642269152067543601782535256725364497222143821656750880648661777888688441125100583294070133830251830922744242297279405213526049502849177925582463305115000267643321189767998314382832201649971700649510969533688703905071370093236514118904139590476091908041881546337604690028902486919165957956564250839461979720759508917635920917592282629268490715233623167574812234464278050418906439283525827716613846811561241179818854985199207380237409963573395587497317474514904008743098348629035498643349267472674667447848287125274351006279205775117931225016624131185091377299096599696004440941864234462488314450631524165500047183826980295794389979987934062112647269836367425706935523407267915658371448549109087022299374314116939421672131055430287041265935915036598105420463759326735317893606519595080887723795228260147074718506630952810841597313918601055429836327478302075391374346980555815688362625972988114873549807056441232283989354837756960309209160672228521875284031428137804887546153148876035729408813403810484182429525915335340375333579065895410425612219180942255574285242292291471484837879184441281084202357434234235387642128956341112624576848842327757677359515033088860109208324753468005604883937818750861450030828425310919796784052704852792142426974529088321098031379570503261434646307403162043191732686184323415717577751497646902554891623220730824133051749098678896495139504666341359810389674155324596506165748720659144574177594661003575884091949004201403274172705657758028104118860051314774545646111577226621515234501505338746534909475459053246754709126204762886085181188317248664741631033290770179284554177064262205302204664037288458520743416836631611860564295287113923151936035146096372052201180308084333763615335417963421227097730465480941133503389518287078707170598042033896529238279183806875494513434828177414826121959893525826361807210802659372288787044433558329730352459044560898084868463853492487405709716414195861621169086523022743931727323782553546632683562195462668124828949772495626945719883516861735451907525956260578494098199340597039562722828159511101175742312401248892385513217370314483994240745068763103064218488457319084813498594582295699384393431332880802560159716693266285606872394225285746250479743732726851036013583539941826904228695932548502080830379269576855862141307101527893729368911289698956677801202870268931105362681828147032651656756122810723737612378133861351899482633965797600442060643383867031595006217500887998289299699935148574815186758674775091034546052889029300142204698964431108365018661625025996215218794435914577115811810724211001309782163011654309000972378220206321986520970513663186416981103911776424374466957062354154076237359502479793162711781255559953177367580125291819293031148536811198281679675623159091631815514998756012082982453863320147479713858579705761910465635703116777756067320157955258301650019182153726795394070751464945749418104388886732428389830824206205338792724124926913083526144393248859546680661765261555658287351832303620629142733950413752169929266627684785536879323587583365038016943661868830668703767726861518827393688382189905109082395667187737319222011806590525187401900899842218296094574928580663852810303237783050643449589435717626216700744265146306077641556093447844643699227363425914957517482835541543233291845873089910139017164845938262235591458160486498405224575341485959888005462937410123714848000666060651141010637981177771397831341251989915586040669372895875469147336447245205311547058457451216731508967204117985800260053122186306226761417433148949574198808067979536897872828066267529093943287977710681953125085980712682380208563252022006769391320162068417705094912200850599301910777772238146543050154155865764029897641258680129623863772085130994343636194194615516595915206359022095769935877077753476780317830093508376035862430272597598414077632564566238061190007721817434479688603294179691443793510855001132250753465638926690276320402343651190333797916362250476849504125179982583108146332633322977028797414558271022302962268716840301654891647088081515075724459791192510975091376634842853106048644500673278762392853992376046687217710475883612625735706209656596342865890531318331615890954753151626564543317426901665242278872846230003674528417094364282442250094473536266643187317930899826552333254854813968970570405403173963316747408978928862691772819406974375936494321367854219584592614498915504539916719154923952043352605369335496856521164453288233511572667106872112202980213911587137449185770574907957156818526507129065432073645440818532902583012038028565240019420304611541694433833187005040219551865061813477988715983080642690414197684726919870107473922226398161262889419760637747193455083348544621191148709527248894739133746973746287863247173142173838332578756724892980538160861217310207643403065726765147705766599049006831779486905945224821440312727143442966975068489030203421777419376893464405790353076734868072652818131884650362036934299226235619304323770408041095103482944161069122196877662098118774554215578367014534374023652829328049120649071994416241942800060059698253147806013610613262735921960391758972120748086587005331625447050284594611545935546437205431420816062567946845051174783480064933721494868533504397103062983273506941381029483175941113591110047780766178753932229852310892814446491726621306024332271126934138131057128846427074093260120832181515166837537742449452449927826929943433010333785320991622425060300846636864762989668165024404064648684802933861382833531890360948207513629987447081573021901841825171148200377504463125139081939580135267593013795342375624138871758859271774795532205778373928450124999283595947041294585366162662356362679838867808581440438302392632446215186611530508854077045248253159763466625276643458366194263444578352846700825578214941348510491018588852046248104945790439959782500941326454486065768841149625847866815378514828280512257742215628604755970413857889415017887483208604161285548072832615465719213407648194365455850712151532066584328541870811274920632796639367081136894759372296573483080553033794613356145640649600898807393371946483217080454802315061720717644729579725778388160048558418693528382605030077944044329051143304620285246766918108770271692441803719431229471606719702120540846408213624392745685550251637712369142395692011227947734101873272330094348678853254440368299880594094824977407783874120515104991320356993820905345230641368409878387225428010597563092142131102184021693508813473017369026727553943790503631876703897760955705868023608526003541149040809992754282106109661920166766519807105822974223780444211238069803848980884131137507270510581153197012761555051733609460148687710450847404808195683762541147489351773142548825214812158576405557500561501837546851902620003304509443527513798950274019512468273995727114300440032629426593388761561646820806657049305398931759728294903738940050160279095037058070203932241767142779056725652081822816119493359527803303627318139661560013174724741089515491784905695365251272895791852029901151832901776124045773878179951746752866544595042333546767525606813308089114962863344476323129371094423832975175335960510534543626436974661636914365537357799082498652280655796660292607061989720850471717598642472046615058836843502826357931316562364034208441981088640504040640972041381214625652790299745181519267965085495292118188415890616304471446240346607945992356915509497076456818574740848595229815189991088760236884171059191065388090504637567308320046022831686593015616956488710881040599314976021690775120764711159505473681428189219064972285995940596140653605437747217962617403221871711548384509539314827164114399831277198116827927220553244336702716896734478646612532291212050975430695663096021218880136237346894835873631104855051648437401899886622716750752384945220163134614709289923441131568976261966416114888015623933197678502111125741706908033202808188729103103147237241907480317057213790097166591117464066659098319894233446019573011770008071451123592573431138237333054894392150401657396619286398732209883866139994184099108630239233114010716013512628549610192223612864229404461461175312084789182652137022601694451188569422790091393933375445313647778785105886863116525403237570713842556367638834680195211027441277819330737440098433837960209556717660186220337014384722121953711705396851038719645137358935497986777029169948405902883137708583084580269643991210678851522828129462089132747118306720134226179915828230034208171767203475080459779914604377638094236970859914233301845941181046683331533018737455098040434866096475483758491878676070065815220416758830287829795620167108712654239331309172717011506197430434047457477180015311662883973178694088629358308397886621674151341015255210697785368025088154641384069977401477138715188203665791565729344659435979808697608705945219302177827183748121556563508742168880115220781042651105125295935396672941967834452960117818235877118795103803130503272861960017698135643843576442169211476600633114797437143032740068885485045135675050616365716972860021136698764896620706228600990892637962830234176559833005277689363418138284170796103437291747104679522190729170606771199239134231313914062615761876750423039949061010509694086027771985623175577229862786703446163650173589968555634384201366535899919910831125234109109055141516449632346050807001263014459751130379039696878669265827444069716708981651037990135975203028495597115482612667778082216103847459825666208928233193752659234188570580495555592564129430948902655077632329454296179079594974190385205125000343630221604087172105316126550835146191174591774199950037784108700790201654852752467223000997780248261469069197156714039915796751867856310965049192222574747010072744419753239969498257264134863852903989668725507422236789638900867333224072033938607084311744649039906454002547234529021322190931035756602256078421449384576452542127348706957036007575197214360286709680881835183309879611092822611784103620237509713797879942839085261524088577794483723031142839383120235793732108818542211687774021173118549166833789246577294148090038245869661738483092699088944019139336340861279836885681502697607659106052516138997451234609500369017913266291344953086019352963252340064924438054477768635463840096671922443277725147838503475296007840363801754235497515815001184781689503443724575720333759889898200650706450542797711707520539665544289733302344312500524128021383622494106289682367476628946370986515423844279061674244373985201791378559512170388732069576114140427994245895154752804887374977261234175718592849776827729304633816482610091776851110691904987055114867123468229914661546510744659047303248254374527305579628125191025240691478144297337186406047346437899156933356497726178912265152020026071348395897636736839113819151857885384078035590315643726311409431406513827188454685591692084667925964753015404394965069679328417144895284665384086606133779461173168126655741405923229017311929746084983160291403669714494883773439825886985042521660203841166767516504881465560931776346507100483085681290006514692201520152944095427818972368429556954212170722858817956171739990487609236586747115785780601561739959999363948804150853215818155223728574180811767004187735716650800272769882770885058162740696932554202002735390057208188962292086144989067061323438963250170499002638163387895714629871762847528968198111398395286431766273615551575298173196136713693636099107647315994402032407352152787586448439800918978175049424795461432499177561117755874114809101005886781096092696481363607981551670552536237628116917435198908764681438258965000355219457773542473877708569214537187129862579533173306186484359277331470684015870645550380132742382087177296953238690188898336134158022523556875718953246128665123541858573649596247697816614716399272031657835649258537073989375441591077461240946030480483784874759618764185184424194038360835023622998064212115110930956238368357896207956885858847281660222432842464752478439926616748290180300914530041443857702475013876435952177216270339228985075353790017350809496194793919999015407379401063602772710194332715904323579618776537880521536190343438867138031208352865310822789022300372428940936972919948571378074381519566308970646805663896306559333696652710420721612643849553080332125392114621972363088571150128184303674182043506209766980755028098837033317661254488207827916945692521803398095739062739355011207509221267024529429155452423280754318521694883138813016338205113396211421620356708337719249239464000362088150984822016826629815139705021818493925218450613226443638221065033451761066070391060635224417001073953817055905258649739185005657179032712206989632993112836563634418170518196813791402956375152250076351606201093922654258508846975223055600467626837237236187712864441485855186245278761577543384300847097317252685987408561464048800781766945317191906424513408946973622736596331909549919972021088496952355407930458978690670559630427893359715656163310123786859780936591046580475625907954029618160691093979687016874004044949829335739002332068356953628061007165157763914956701708917946315312356665474965916797929648423043722193517574895489160695942315116593615216537375306212892258078593644548394824601982374598657904113851138252004131724239049320266269995630870073587197064912983977223331460494964240990586444552421477367407495275887835773135404871993678766347810525900019586507785169854102251309340348296405916165734173682046971727697777384424831865916995137371180231185485052212015117013794911855072288005178833681497827077128637166072824606661705120697212355285869809671542158939603689190624477211023059982103783340148874204726653703070571061807349748277932818689419274355415729306063175445983734542003259761831398908241707683937970831331362023812132360910579455208345928210252921316084426644061830597138866012408228559408602797773016981045328900605846743178705917005034785558943152568886141476844794218538473088848554968512137699185919953813617574245068182783261077719525606763504373745969928750741356098037624791694485573693307211694665910353847768342430122179773311130397693488160179140981743642622987728171010412229108235356621295763857665144953539243880291231788925610430357393711498357289524475827757365032880263110437374309498917614646123586022351006284374176576691123201639904163950955347580781816739973157426513648973673961580487794593373092065528462426650231026951717882651471910687762718373918479534648632924563780865415461022502695456405212318100916843013873430091423648188474311499650146756218293663107786307597752918174906724049300381405155499442277093771085067830638661654305870880117902351408099615875034366111319251525274796678411851051668298531053186828477129578187280083647339194258231794589757745078289652803929403490302488089882075742776714588885750462579986989442938662543112469871370746811657258953080829998161122457784766788896340808243486967650647705535236790855466582497949771086303941549689595321509048226350811299012037838852974641105857618405198316332637766329678250487415710413557144787225132548495552689850856422488871442522218567645612414307816494939138369936384551218981552659377265746157810666840833944270544775151167424898293115697262085335971327207714054518952789980393121058176657673768287608842791430396202307617952177265440564516100469260906083685422270882176095023387121096682093303121204162392750659080076874660990061892092296491734405485319374083891485080975596248878072993740000495834466828310484546690393407617848826971860112323043159155388885026668679746720511775487877057806865519066438272767602381247074788126802184504649351074861289495232182518084130953479116677370789241709522113104377057830976511173336091349325857024674065415738519981441657323380177875653962166977628477180688487416575613644351616065436947429489240879827107931417326810018601849887142729593134138191958075746514521367003590373479987072110625068987697418265654152556287165126011821930978075502151719951264460782210443056441265838958311613147958404582696431299835832763595095406484050992959053929282553549009808028482305971805339248047821373113438039728037001792598829532693881440559858997067860727705511761039309754919691495722885950597867185257635524201713034972104456095731724334000874333454366519042920945143523645492531861485222433269403516323181715783103116253660123351304487905796257149112149705425817975080666436855317821472073493051412699536987254383068167738693491562163245222551736194685941880735348191032700493370261604419068607881825414679378021508801249523120179323016672033987227462223170964800509780317399192522461971439855933094782393078225470202680024985650625821091190774855352129731884610089836687982439425067987055394267317646337208688359259069264221895728371815132744166374819562909298014817459660347223840559146818462353724976651158641877764378121970169142627267527176560308653772502847570489176649001859114171249881614485685311589905886611058046165986249476177736467627402839334686096515282113207749425787903954383523686008294641107590540467810329141009750835012042526476321805738618175181989873618929037307090026304946859541356869998916416190997745640965688492884835138235316774112052174913327620897439560568559311894729366578857278806049530228100512608637158406263475791383038749770582536031143531607603414058321201672982232753423644987415344627989002403818069809358711744827737952246226548289238898361351456834831545077908335036500949836276839671355885281565289442895152636640272000120015097701112587363081989275030343893715295199646970557459715163034769000544372069036531349135369228622247579847105168553750627412102762738503567782347084510238330081949768028278603814955110919006612896360268107679111938061780145698950484374873930866336391113092729433343577036839149430330958982545429009880222128758846733299197403560920103755611640880062751094567890066360771456520020155780063384467427568552265129128910178337660828728372116398806590165000850567139032279856787671172770259981008517715129980847691439740893957820485877766399233988254490426640343784613538373141633456662332341847864301668761380313010832721741341062646099649496003272780473376071734539067034165061329799063428117530205802126567227213485097888614041493184565949307182759698403130813306588194296418111863540532573441099224602757353307333786792873863339059135781788430307518436083034520677322452234851918349254495520372913800911325669123289166606898882951272219594865577430978172486082629659416172228423415169701471003050682740766550878324737164843347741882377528792267113634258592672430797114871210086067796614184470208108187933156497301764246310699854100551749835725919334307787336714749525454210181708942378470232125080205669002966836287996429432550451153136175047656404144487954793596506304842035481542764039586491648893103921833935953317857350431613606101154257528659953443374734656896911921082041722319693828857417480869756377962083130209911565664531019171540973529483882776928863927994253273985258626956104987817876739098005155822621631972870094585947910244736788384826582691167048393735907203819228140216980572464787192587547689878266932487333587150925501550015868337739416286288757369686079194293159774727693446017325532445154827942897533050674073196408558890101013049526858447879521857993921335126916231571651841771192855792591435933786989482832597405839479410386420657565466460222306794468579107892674382077060980215129844781452801620709435543301722508945673005630487824606285532598331213782538451579413437432603839681223566466776514736676840136324695257897228144483088540902933182193011146042494436684901218656715882019123980082761819762348205137870080506596362974399265499701507305944946285783539478101922271270308925493719761634380630194705936520471184497808858625658327072105572031972901220358764435860325807782409801093944278954774189761400109300335145766467982412637290075543744543203618083716221303313496655884955936114872883011957776834704404116015020875159251182471122714822874349647608693877063086134264487884886846885017665910917139031632435182338396887088400835310889900303045509488526712849571290800712394020935516335664706726013275641744553299732435158724012467087191404032657178178353177734029199367513451130157360592326462324475888086914283625636361388764317107252030331405808582769150236251119786971573361616042735758599225718395167665536762686677279031113154369984378189303955893631546990990842527633473208791401264786914320915595581910074259376162690844724878226368773941619446177245876900502073179921253942753349259414520451081510394646299930332119168665783994184870097329580894122355235558075653334189401070547117292813894570845471031511710224265380383302805676021677205103238865883679756760757655230686788448778138640775519868269539627546974836231555235830021104300750785777889251969142070571935178675063772386277781745427138606288569762999563060759427289568154708549885373404234361867507425406331715850209372402637681320889348803424839900627100352381736365104186160399012489115205293353747348836761122170201866536240402322076008979405690945345392870850187856664895032213375489137742535827829739321901800231824463400781833250928136109182645499012310584830192817883436896249841952947756802475743432832695018986091725535729023082447309634703612197041905605465425521841320032767786398613597739977733664201053607724081851100637608201289891069670664543784547064532603070760050025074190487802214729881292441202588361010424133374086709270175221104125735523421873797000713795208808572848430363631021770913175803812508987832217140000191377444390505348151578231907833898430393566102169374604965292364495605311687624731347747806135874448348290263267704404283439617649324116727771838709875796615420260761835568057368748133743785560954029173127002809467967416171642831224759801474997737198134955963660592589526893917631135755575385079870518035314764109219818238673365299335138840632162936532137636941447455943515473944305227983751361031525819974544143018437013929599366637692389305861135493131095455973221287721022552986000401928399205977148346366755469449987697980905234613726056141312026366226708861696844904058261053532443336999301247817862845934850748220939363284734461185332370700012346115421314642838283915811500256113794648396425887345287064319585782291201684005846557221609064595389567533460695767354651749164232153215575246063563830118353635143780395048853118718239207488196996396491149110552503412997881311660285534386049693041713362668859757141515828696539748508952903659415112649881274727743781445654353692734645214269015987290369365747897262083850795760938349459076967537626733199116858179074017275246491804412398008420752306636817942339143966044288265454147037930626348293118307725549434958076098198561192419765051101639019273584857045613991161569397577674958040978002087592109807079361156759901268687385068838540250249108043289321961658594384721114402650064947569223056665421635562802669487852038948957843322741411750722883512581071116742215628703982460028344060519065760560426868780579399759422171190071509984496717056837748642213851729089598388146223174109581137922869193568149913584418236543501461028153102475561988084839938057547097341439726303819730417080904311011081366975962275894071045223781072010018729345408503953772278312291319438355573801381328876548518770247259061770442757555755122263802130213161511826754790105232723104963793136652697981510329607046895219968912081378721122066699622729139437409136762906303534270731340218991690484477584033320084858154469588707492112285201553189402548503184890766188767528708632982627208947062462940471695336561889038774779214984566431033556979607893586441019288985418570805152381876722682161736015694834709747981472758116570332097363527054539546571954224276553072791545093683306030016044880514745831329255531269460173513393947733797491447151951957443464108331439033713451502701007584722351379516322023433017081848161719495038554046860224841682125433289792981043129467463160532604118976830920847108079064871792508873641742602254609667957090446902941480678625547702492715341944049095619663188845308516688969679652366250120328383289583191338919505145404609312739313102132184570477710932458729972905141349692206114875991021026172816581866670962113833059683831804996863752336257582768708727716445948996468297313948739179135304489339905494180381069654755961160496844169347485124447709614332528260900759314748584590491525055353349306772731507843395638588296530072231530461592035148846104877012895687166080704566191334126820015764482046926334617486113643397438880348341646800855832798776998170069125842366286756306655046083229189413385098785849227679679620671072608429662169577370159166364985878992003176367919818217811610819852603353463559163231288718552997546317971700109401005054870079165943660144864072870810877248422283316548368823222657119971593718123975512911369068885552669144704342739580731860167938942480849607218967354433576435319337905439535827312226052423279078004077082470217080177825792556390267241115020379039212867146319419885154355847850970412816927799488611889804088520552561485436795902557370988152826123968338146292470807618490055099971136250349029969432764618426771326112160384415195510264478442387537172149574413476108734660180228036105603422918218830688475997761696939718023247502258516882262326081081379868693416840039709566996989164433303736698953414664010159645668599597207000972236476418267488658319134564038549957341094877988370586628990013540891442563380289664383919711651334961972823722429411295438641649999266978008204716074142332321396336987834030693821699644011692176736065742675305548027326554074589272615825672221065876868174675398159021664172988933518988356743305505926521828006279948573915664284790116513435615592041906707202538097953085522602779585529750635080688107637286767646618125354293283464236242016478425077207054232896068645894566691979863822393084065702232624790581778139855123586766473423980225365271111545133130278933952105171836004186536266297861145844621541933848079535979188679657443133859565079453205197390817022785498521914642144792021697441187351484658346553247749708725719993603443550215631338480543001627069500721499432396585281382642414615430108623383710427094489363484875071997831860810878653274687971680888618592863225234090190316703214858207398660853509602495509690428647838123774238456207498449707478852660486604176757478916054925269057716201419890554286247165724704681832734046926442010350069886792067394302530577174794960941825424240651627766187147517795094103742310739126163999798813720270924732002006126899764277779027814920119334474674131763144841207417773380959371671109123566039554847365203238236332216720624690770672146618923641507321115714707226919762725767763901608872581140953686877317700612356463599750221069351593097285694057345333208613381186475538755654311676333982252131652973442530506038165013037990227037834304336777158581813180201179247541291586150308179989092410905349801580065909435269364322181553028811716207919399004662630220985623615169370551480710333450918923283656737255241907467706428542039095966108824821819063934542486764556554468496477297145102287546654261133027986267303539782259272252788758488418000154110477533659346040336489456324635860783218955102393624907503678844495136097914621446538879576083552795467879316474217470490515761018921908255659996358502330413946588103391326651287414175814134154851049895531452766177597285528951019807929679004046137803195442323175894056315344829626301771903191182610676600208230436327757643598941932132980456290795852769830719232107848891300734774169677939407049652316965862179823631887783735582525050055657054749440914370978329424886123182445388590587543006364007769995766173308899718877350403528610326196828885591993165387569327187955080595921001612039353873957374033846614934216411229087432178952312335067154243912108404529974685624178833595612511003708768916343589076493305728629465285170255234786180221336299687168402099795667143164824784688897585924044880925937878634861652926599277959708347310876651219697627996066652166459594263647457905822496310075453947896945777582467634618591272925352804555154653545145526330263479965246970366672973709328988252048433288531241264259973605690999986995792615052373369632284054166580210159957791889291515754056201119923465925065648611145048373932711215886057259487924229685144959163060025134776060442958331071045826955122209157498002064916174238848121243924960047154317467572536522096639824088540510731064826148986588488266363030861026097664987458004124545103991121878236026895158116658307192807847741257003261933534132620377405309551778914369140491726261265396570897306853418193559546244295531845631486157497292425582064841084980763551580656257824682073239141095851737269103577002563406809043857478704267954244862120457518812394896861515375114469749070654914507021611192802702449853711307330398546049497051923372638189056321145106992076187864650304697029146841535665221870550692770832534618872616309473975277432807087108887642175291081727002915437705789996121416452484488970035828816194318367267294035137650476371456340828693414954101524657581198240894656556334966478364935140916463977587148449363183672243669592860504804027503550195223376815922225345575610741277928771377987610625752121369205338203025872595251233634721988662676445871248688043007208479943989474675030157331199574290185193166587203386435528285186019536575668289585730709858016335576971486009273682016201905556750351149541105582824025785252895212546015810046559796824035688029377633298458189449177594159874007295364662247743538204696719333658372625987724165435313045141309245753257102871062498574819123580962454847736050787050325919569279419524606780133214198895373903917078665022824837805917919441530240511778014079241822467279992702845262263518850945160160406119443864155171474441305888535706878241549519919524031622355078933648080665664004341494371476194812301601615678809742052589337470548561062589293194768204475139626171113942462033522535313412966846529671622625381829446051650696128420194613077324835947793954212486301982477613964345464246363000182533363973437946994374478347263473962097490004341345540673879226743200336158214396082398472403664082991858538841569422377212710109793385989684191488424505258468831712898846596025858339919967563426659319348113270581922900114921476433191602690450019806151379173463793673370609432747803372940346848127585339104714177764730247888658311838067798270063913007339956261678026344378190692606609477523123527732661304739128527548912007503947841306480577472393346153638192406866040126531718957907313112680215303526813440295437122875638405426526279376500259029193400119181801383119349667498702283729742142652696324235226430947920912867478070542109849756457672613217864870928660064093149250927742471508847723485567806594726859362984008523451573186833464648233165878409476352606095415781343029674115123099834078437033533596011870732110497818767978933281001077460029302755764270634295799493449458930488467716612330972575218738097117167976987021887013838579801763575865248937779653596031088868279244161535489016446635218718497147233866390760488415631985438766394419270663685550789691548385306123799772046817131975837216528743867000343878501228085052584326393085801783909970665748267088163206159081473061289415814160067975871838786078039457716810323107241080484123451595566494938388438686290355761625497252703408212378742380462925081631162538838238795993599362777186844120551211599470048446056130666565007241302966080822834645959119931617665494642168621363149380094684643049306394858777457259846715758625210339598154459723051325837401066607034716875094200741800289170562110286687978774306047046194313358660258232767069522083184482670663627713055845395511323794501929562519852939095602828432042941224518428798317778864443674448697337046735393122493095127686993490815898024810125417322927112580077505654572018943747997481879751642469485210362172941543008979465066933838116566519543290887999446714664243310206391428355992715317955276737687950869270058228676901217270695278917216524138625259982458886987852009009982340325361669273462688824760978074699473806979314990977579426078317763920503101265232970509578646595099131925055793784811211314252866196553025018815448928093219863128271558014512972253451469762666610423446314491954558427570485804635711203760322626429979327741097653428373459028016978166443818379544230743415052219856646053649790714212989803274050496139112227078646675193243167794753471313895068265592933569354193757556926329364349843367372007621093279002445317414354780247740741176505264732155622231649917520678977554766034300673759804946037547180857521264894360011890054612190487960241490627813750740346948343751390152284420322793841259893330014183718413385167463245508546655006927838701748784194206160842019630649017320551980630135546779207579657546396539758878718387336303341465113656843843168040395134418479317189876917356821260627745013385170070290177711986720872655436846936778713911168518454706590904409827727136445086446926612051150421668976656788816364500284421024697786319005003893799908986271741429195204561528512311330801456630550558010180962643473016746786474936208951178864810616721480322058448825783099273003178296286242247629828870866257029482405712620767722272566979037812372188744349394037478560017377008380466155280584637978869562700130896714592076993522893528644870860830586163472778829157575068452932955154289256798324823819167205730515169369528967289458240603723842979708817999860370335541819702834533203755848252644051200606227105857585132692169162751989272407289133926681968193155734873681760316731028194713951956794976768270374068113909726331146401944583759161142529237924798665000854563191113363018724247733285449318735520320361746458354322164300615335093154488650594139703569680428872590499494649568468228682863384870223939446510824132243388583837894849196502716056042837751246284401668435806260035838895301501137881674545725822006953705120963864487241085237354578239331927737096053851837231965402810628837279460035796383037081502813918992893642956957671550989595075579295383282401889568674624036154255918425352001134825143519299739252016909949271093864628576468563522478810432269647534685929493056353039023216221278364991182898957826917555934952518786236807757276950584889586000289229729048532227852966022916043278643521910203392301632519622652363325460118057209251368230536934679922922724256453619777874431514709076531942644071086224516741774206965381549798624949230941353501249965956294013359932782248302732788690859281378276471471774320603247414618586219702293611817899042330746200600847150109015684601664631546109283820453100028510420761029902774501308182175962634189494514384062899132143616269156646560602830367959602555640624674511200933011458973970099317238563915361210430896864481948128456477211451984481779704214618347905592668411423649147922440622732783169975061155493743134771923012367608016133344259018499939707722318020816152957552867662718670040914745180962305820338048076286803335634737096267952996892929881429149735215464470508138555267677917653277695994589838303812219232102261415775638002047930869688238163807114524368629743242856813314207449399735853042633826397020311214474034684412406341800096386129901939357389323359474208703494700593493281771304513414439107004695739195474443705453666425858293011140218784517548652502646747128520123342263518999446334119147015698952499496067419618440037352450946171548064150530536353772870629073024177552951327257536812693953576007476055884928781534662342637443374300726588398508323860019918876785204072770957271215336558996806990927457140334411816142099787367240993151137860633812097014230959235477069522417787204663891114802851098618301235784585550239543628375295352603147231089080551792331214291011105176894940301032834539199572049881073375858881483054904699786337987280728346431957491994977461166452263291173333567466020890673529832243617093753025584660469254966471455399366170200503069165239244315683681042024451293693085922247146744668250460762706740790803646520352520699401381089315603653166993634318707250991137056413042613476305412378791224567777911433374828081513896237326948244435392005062921724929453023723792954438321963769083131805395238602679587350819237274834845830362574851073130067757720533488858221616569295907380733135551232298688622243777385945817348057207983202625566685431359343712803809279606634082892796133806166544266100164772096813186548153151279309088229406437215886282191890991654609835782436300782536560955083799077061054435739502559173561516196131769943530288469924608687612579275673212212137177016662188121688599098510122752581876035746346478560277110429671010150496960552108529086777999837085126797579849418648599755994057449219954526796451559853736186058150561644069793858051986198949944180053269505836003611292438222337328354260873455218224538382166870017833193007055005843629350417714595210660495680613533935122544729236423395263267388725579184388883367030575156168039534098353469915930991362795506183557279553573704514482648928677536888904677282828699407555147316648920863157361524926321126027631272111245967506880504403537825386921565658823900605923142786328014209994885453473350369876260311383224152334890923518363906946648544030192454822255864969699540145156716937082553572947546681210248971564285727319441142696809543654137607640894452042059743638707627016711905670894784414445514437490242013817408466568393907711891269249637379679591406662538680034551483007233937441827401985321169627077061852652494291599269776159598903492313685587453160762617369400381287454425666450545295356922476479792735370158593285531029761422264573505690753364345794302542994436086337899439663799783419361578987911010052212150458134822007172745115329225973777329453765969144868439064856681246657195933192056767304477361009614976877144832834984549446803476482410373056900174314411750650003311232429474379353101405125667915838880704148267357017804208091453857930360255889793899571698568719407494607842070244287460467908010666333223836445303181286095880114771321410176184574137491776944452876110727545798588783828087929328358660104735275169396789683126487535263507856855363331658325406798930984317925874635243662014153725870201813598103270337333722696814440457202657995518877994931014175377805116582557912766104761656050014364345771723379012294926458442045387059976115170471585951204296065049184200130571608669123777694379945486217812309312157606312400143092821239466858652672920738691262373626650618914497137642888921110552448643968533248125680805289964075502292728190881155258066512276183879985427387992745538999350061764437339651900653728975593584713657678571622192654372552932070587084348025895556785743552941641687047430137315924087639344304038750766592358856906884363707158364131441161009646317336168113188177883646933236894278487404076184050159848376920060557106171703562223005576665139318831238803318653135583276269382895947124393401671765649123421948488957081260054768959928350247254924372853902523409271221433703005593642017255712134401601329603645893297159904673088350117760331022240254894755340902843620383138858930222633036127781361005625137536843460476984212049691219937231363923177997117600887431472610624707255491816590058251881903899613143795458234232830423945895881538345820445172766323887052401630633483419875865465592538041008214907758628925892622468829950073059590582093252814213990983881987721776893595719873156300825567508122265372762692968073605477427124044387791870216388432403225782533003446784385609980923400802231023438655388533361574485577608044308868393254682087211073828573641893530353540746097435164025536962070716679063738452600536304765616439604184662660318034970374129578258655174319230016104411419340132056183733779966020922437852820391803588227786887007547712895630453346473488994270376251579847133097784307370943185798091159482265508927941318726558237611844324252536592171780727540906393458877095717955408412194309334079212649909644721238835833909049484701568348172533467646771921457466269272787689000460965517225904769200419654299921967533870742845357406094320546183702749225355460967067696373525503351317988218887930007316244905631148114589495729658758243882183976660109025402144413128967820280929621800774022420094823674754461372045266403618028794502133260607015456260834644202954364639776105702172197737861060698149606329832346298798091374093879302352045985884836076584816327277511814374887908716441148378663067948588621171871512263205698959424824534875478565995500380415446159012966705038120913375368151217645077372400596337731046441145958786191836381413261874619594952699402262580465060000776134079863372116853143221306182704336459091473827803042925056561660000114815571183337077483904300160468238365559733105697804581418471851063343199156139186683784236680523821731190360720341358698433276395600293065634233244089447372622492318831424582477193618044935584290883255476526782952016523700946860631475040446116639568234061028404270134373471962436443608587768057824601784702648171353290936344209979224060939029366349371817042446112608155322935197986787291078972490622192326305164748604601070216680300542091685054560727710976767868275911738108975635268344972812321303117918526486614007108257514815540026145105401725624481993974086688134686015059987341965516457480175394396646368052199236552607861262379629423667945007657713053643391572293284747951925984321417344076038850777689134647372543196960571871560397120832823965371740793179883155840861591863963854917306941308090774644991095663461411993223616709460354082572251635104973866102183479671103009095339174226226837890445510735175680478225314370693542751748850071230781239470322313364705047215202610031600976056449781664225397428921478157674471551921395287747727425623825933742087461065606129110586432504426610534760555497179322312420844127725060623048183569812916623737313493120072351266416532001433063868844809571071821488444676617534553040222032593333253216273109822077213965897373962795859422799413795215651220602265892283462730457412375885300314265457301477854622777126831564952828487115920801812921668239821788226948074879799042226693077018882371588305665325929591316955866754745149641462781836877051457361865564583375189268808462554215787284033130206012596852015370991371617831067792390332083469599178942602989321409167624208240896891458160132006333524816054417696675647750632379022584453259530326241858943990071531501331211818545528249159640464949052484591102259363693147281915611799319860534111503189804244305643015720825308802206168107453478283535765476672855885618862511466161616643876682905432193810678234233731820223845432483067322048564949098556783848768245254927630512235517491704585174251102229898186582520583825122721614895165644525023790326701623387601080837619449980421757289689119152473330901882606626690166822728709213997782744747557531968332603530344491954530476851859289523671861145140625080659552908029249802937619862999451165337795881948244858320714267837755065965646772481345796634808645930421559817012940773272675115434249769356155795926303004856304781088574031946199691984470396407458269739017616034755412432886133325444198001566263446447381355205227400086685310125570570717116715856291093290933433083727222854048610055917779910407908930197036729960326451477410069627230461414465474902431455585369511823988625519161238916424482842318733156466013989038120168905802424961853346751566169111618681412374177075521030114412703986108372748913690790551832193227407922862755362978881183747781380951018602003357643129677518333968867324126253024725971663363832690620208189980655773748430912918960637892248897847148218685960594097944803541490392668999849748982732802739725294317172257894402414437100745858176715082528858972994763868631453906751055005277596882174754030993736928241252685723532089631894917623435022617750452104087081584173850911748927264231282878302601898214214599902386690324855077290748173091261915082176736553596118580446934753612306615229971149030201302704768502245735692187462110992267485766628781166257652179818347739369995931881558282798567034531054962472218320801082742756883081376378721392868729041597944805288776283045131694734060310330434806926530722019836668105809079329244963329846066519315430432444620553328812566622761796609376331299147253570444709177895751152980555950523484406772316559692245682660164703985728857593059694064848858955307685588208064071185290962442179663785496416054182915590540469001591512839329632954983449980322201646107104923331107755518268202916709468610792945302816547660851188350405235796778565739651680410270646894739662252815805660304915905066916572981205919260498134312927114472265611562399182938675760080275141763773739017284503067486630704523522901773667232557064946724548778482027534899582067948923930177181685633796098366159290530736043797819377608888443499353933567545675826617212709911362620306429657529234390334430750860611825084544981973580476337428997467507209829599946245326698131864078823934274904932144695907034888490759798331818668508050985078102853815631234936057550921698322659873482854104377602310197952756017858576198874369224898589998396386302158997005951871097842661297690385620016910740239801194592376697454720862151666645950481126006777778184022011143465751872813572237933315385460274854783072822524283540538912654986242388290355806734750410703756044352877998589007856138644478843836730794684510061911174545575435794631013967363259596485317613987788838133880398693020668717338179723900912447682267473596023780928494435946319234987609398282133393989484763436312856502884623740034949588495406785155537053221200625560434923515762829768980875108291131890535232857971079408872278011041766874403969081277659730072481750726985738442235055933330175604696855551481511035664490789483441086607990822970065748722124425525438234650540384234471636996862202529403671942412914784200616999979203419739553092495341587051855861317961161888276545071083189157590835158031350251480287330128008530393271828962760843585430776472087523011904552658181936097821313172609790348057964897386782038840483708874243863488812496638026991676426411093550562366932436849819893791808259345126350517672682468767541523796488911924855459850583833200666697805515034910832786427468916282883490535330915739543412256961994921691767110795957454655981031024140913932155522446877151422122138531907706647146098130941785660359535123751450051468117376183046742861581433183970724428726649041671179190096915967110315828028172384161525055872607684531677008366031058067927646867417658438254888237534631010738224426278557607399958013743340163137485626708770809016805500567306471349091937373725864643930965366211672697403312003246760346589698320981227740326735839934845105966648292714684541587612975006142179292418925817689000407739975298503723936160608848301246041650448725015268824469890012514610185076862802885117576162249376606430690081178191801925714991612118284907975309372896751093680746131637264708646559533650007130813311206683977802293884783536625112641250724531302122994616328644284037393287135512969982450849319448400137330871150141343517919704014533364333659646727747859596821082857758426689292601952848263268814550529489241967336066169164813146124820401499803050951228602306519915592019025898966237192591942490668009806766959932049095392988454061191570753443798098557041226926171023971394551501266306870498345207801978865462515295940683675135407838181984612059851342877456519166043534464508975208011869694238653048325405844399204183854378491055813149275619006282896668086374475247574498097492825093852364730648836898970110788306989206502878966180509148990479072188157566659587154836527060119968220448963286527636040882484644880756779279515120844585002649388475146169304220556421902195828448667639040730667300061795681354455686202117267681738304314705047626347560615997586158611346569813526857040872420350836195057545445263947304461841221176255511015400728886997492952476527694491287946712794187926302594557337804167998584731720645966793454134407020322526986232453111333136620426491862999979886152025603180950394601421086706158357353947702935184761418739863306943350498927514124154722188722708555507531054988142849812170918251332570145086495120331822175283034507335662897193999394293782173054314008247810738714315219471059387990923210471080705542040527609717992816063284234117422184122869273909860452333759573206796311069938432921526533126967002956583475817105510569279648368676731335005110344595001932239086836452527739153007440054914712903070817195105596404475034963549202045176693078394006422370313427708640019221324885929333221561514644244905011259349258512268276898996048281965337481022894212106857433384994002608767996815170474049803631911031860669877481146363347060182722340561844043789869293471207258880337888537851718503391491937876948783393875274116939409969201806299737634406984515690023992650944997196319234410813642882679186446837210081323277520993004919751906488745352788369333686158426200461128945724458691520625294462246804576902884513289768769577192137623723165598797153930614173284577950921066777655310498342112766547449113698337726198819801287671484200686762216402685485970563694947351137204865444972339350650702870443832184595361211393105376685216246977787618150347986882125239592702853286608257489863928511764828574796579057626330826443652983724463283506081114401605868011162276222681911986459143258666511472945766535111300794953611844570561377653154329611205700482798186776297001286330949509418187393661668863811005535233207098329620946035299649900380378441857843296536256798008537922720231068289021609528594156014506584931435480168677108046985402229172848846676674984227455746381695446577140700584922355544415829040468966282431420441963675047164651691139774159561781268284673409521400508475264041167785176402409131694445532727084936277760626675840972822610716302864994321309569784857530386455484078986557206570708592235791091878498903974413634530683988399725091334181568296374352880359694545431683496914825136116128175324295286490295745348429013393981354329537013008951704265984909670702174419015577576730115276678080885137490035383308539641002136799719093827470966766401274452446425119581887927592338385701143550727423705686816719534713072081267002725640217360985893310275218240901730156137743548568540237713110234053340415666571510035158387078552274025462606155432992290479727568821430603783904960973261507341582478994377640128172199671979937466699829419378511066038896745145175516317662072394619296792598365690583473880140879422158340056151966065047547740487352640502264260171085010209589959464265228658241888510516974056699259195219071267524891422582177748389894295411884244260325389565016310032466678187737163859734749163062346958492777125648288728292714727810614699708875574761311690096763634984390781084980259305659495239151895177310867910283531011460740930673650893994145601020167643543512184971530365774219206488032171142974305655490496707796540035630325392361491984660511110869015220547739105736194243475969583006197631527448888325035047266054395774950188657406970959121608831608914284432135991453319174220861600363708006613047221590347785241881166325117304059221002711390300666763743164056394766398116263273410180706965163851627014839572107110753123641756536137467147852224306850427791696274190716279909132770394326598567341900741789900020405282150249607984971731566584926578546392349424642985620715742883442576831432704310177513142918426391479998292259930703160599186487732107929774127908294389432908815039745339157689693332241068410544358254030672935373182160255733118379114900470028047662235100175641473005878791737748787907252664423918656502205354448088280544857819696082114053493480979257099250194532131325708949075858790301566239254179255256419656507021475688315474320438275997908313592572950222475246290200629611755053171097116540530778358608024861777832822070985745682497556977684236091676958501928579146646376232666515862930812958642651954078676700149237258496333821147629480064387338393644189878558249491877433464432161653337782388108477104336494479983330188116015581926131132504154700749908717752587213134050892268245014690460118880734126370986760152978553414864646481637766568019189097398607995229747691513760578866007575644340377157333591853620835717348238288705590504648551403192425294095441988080765671953146332283017289003097030548896950797105163972951583783020985692225410723516244075318002247334687001485471079190195576179910256324779791273998550543330149222064773747213680827706360883901570368084449550908677060594581516233695016583607537225581508301376390347362311189696691528724385812115879169308679270469877337339099706095092000063808422410526269055157007417697392058356007812136448144461650132151530202313577149343895478085482392541107133744397143428848506785010337786013901106463714819298277434328009261249037803583810265895303533920847308871617549063363085118090312517600132413400525852272331826365468338837223149668392754233731836858172523904730235221681985159065331493257229608622936322327484999564075936465388414243585956737739644382391052740135683323237818276244366219478480081158271528297998028179443902682083754384298931508421271166404953764195473389816653218486171633182957212594927458076969372354388192598248683743712828145282856991591401989795740057385305008373386399805635537756731895643488899637690959749211049700084573440402020008680113266506525689678268105803835225113711081630082104906828740093383933678200551190550633421790208998703198337548511056427779654892302609256438597268667249957943734920520000783605725361111321064546387738581414931921836318879341977625233700344833383403402150357057268220534527529303623089497569441576752197131082628845713194450791172209704133121650627447774702778867435024851385695702056144876138134522541344332377445666317969386666658505968884593550360272568637897193941861573472894748485869195937466450889838082878216620041402641421330954451396093639502113692428165193753335857872718139811965651951050578131284360850926771120836062716625658348410573239045457273614931612969920874644389258230297193171738277022244655017395249800184958990176788453064955424172978196480615609089821884282240771805729783104793045530240441102136877699966022962632776239190086939893935129531041713314496407186246136151208661849345307611560316106270262179380023313123636031152424410852711326101489194409096258843169312892021252385869073921737856752162519327759389763119810219777790221213134952298965028592353597798394705677844873963996054150715829976568984745943542890666518577168501996508837629153925930069695556930095257396257971178815967170329146581926760780541616710427680775607696216908876572399056477557820893622832499082827144709140578453894717301955359342318761342745182466228824480892324472852327580386219230616195572609979619935380351240483511481985171800498008136241876362425798865706162450396659704477566668261051802629943035400923803069188983972546690500733986041567744557444716172298147567884830561977743028430163005745057321954343664445545736751217592126278880333695341656344894981090849807399244342167091934179678557416517984188893372466552641026470651736256401892699823975843983775470319751828444736654633489520051749559276801283533731730541589731363183685284806021090290479884233764716859412847026321359470570898638038613145889129455066166220682760256155136476960972150192431568035274754823620420651107955948974391068430029708526344662133358469097683374118715027946286064170340198665851959859409949708583985845182266415163219284844410558773938204118781443890285063799365262304486433127943875106602512466353039250565109147102874334396412943496362593084585736640803846638541656688967845602282377069664232662897229726471600051957836490775181551533578625459806297110746918450263712274436665041301951596475512739943558842690469087610869725255775228434753627951191590686558430104191921825265511367950332830378000893204669095807134283622270446636569957453164721177234927913871170066167091069865024392973470067584124061339705903483903187842716644943372336835734305679739070867417183933874073826235083127298511658314569605172846432811514867838704550988818937166935033590155255928808720798398051642034794852785896728390706072635550421560814797832488318833464846773807958652848898837177222863904541647358192202516210576124691787069390778688508352460736595599701098413825378768419639947748739610327543633431360625562537213490803104249956126454121465434626145453957125624396632777159298695608821574797274312974785866439711619377574903744862223931108663550517451846140979881244227021410177364750105962194366081703945674056325021543067399097025715465936565974059805920123584377568749210068773878931998825880882720663828496924994125859869463630858940849636850733090812412371939509802067205145026307531426600002054079426860624321187440375228545071804605528242418210345186963477538967122810159354885793741364916873792052690636097542378678739082967606658370050479475424202911559868211951609015007983348172382326612583350177077619392665903033840447235418773653278084907185459188363030890444952812118588695264762642654277964843104553478134243139015680516279082815185916246933350764167352487869912261452395964235874603144327486013484804474959764998463314231180630310301775677110407552562156721991276404664253143770464781682483156509607808987650917341300290152227447923371212619619361482945658861127085735086490881604955068434689169701765262499020541595302279475435411030798777585128629652269513580260784190313024258381028701913688340335467526574366510993425013110218598464682229269328206140494552283715254946705109218981150680123255442594654888046496545570618584419241414185100694958684881748216152086090522620961567875337993481608717447889511665708566357201392777332824322026572647724741187007912458536472888305527629634043578704096637176440699182483100869054019796772498003380122537282712332355367716104251154573868973637817709759352369276317581037220403058425056582109835343907546086356725821480460274494611182463742549701526825751299915827181051283409249947703326614836940166658914945906742735462680556290592767251429483581673520862312681708062280881520994221387054270316660796489954513164595735096194640893964050678297779353484822058380026512804476585999728776347913014160935049221726289680341711382157175440279398104389594581761264757565007189140299820593216705671629350948856302624077693965905403533034701408785549273169358409089139701073840763532810114599082932521708448389612678847869768123240569849330009393808210563259314814944232132854264009480916063054832108475510776335570089946609992084787651808708336709578874730262813342697297413298811913166667776156989179097166579402586471037469843554493119336469020074057015245695978224985031246672910988051029454861157389410341506601936104699994888785948258809773121203895152924952365317181409426107663169259077850342636092560216875216195471516110129045688561609144577675397836473580528268522156952856368992978684235861114368990502082693113381034116152581620737373877919855659750741402567641117103598979484441406732001208685074175310819594982142953371274279192373118271827331402578897002169349760170464082116873133881317897046293001062562100323841086611822130151885924936752316063474441839298795925792259119237196646156511650810024499616677713653717689897570498361225284070775226101745674042420010854963239795572755399425690764072862616997648033637340116475927112022993543989558855373644463326598985338867802483631355298402246799090567709358880323940466530157636136732964994916943469658060392956316211779223520809984916829530890650889781300479918661692201210182858757659372670872834786393398001285207542082399447867140270431404865901977212138412052967694431965500603136377116706397175372500631026234394339648366757293628912910528541678747492704988264853526785426121129281772953491705365491991522657277761475426370978949260215588759031351546430313252564572469264106008735014067522056762983152861364888433277731997080071848080549800181517288842024016550706299922423984121231227445142963926169197328450331275710026151962330938264605332867624548544979312364531378226047854036337477642499764412156245924602454520772149503327901394491324910651046878633255178416453031232254683036840855334384184596418146680456418028196333804317187785535943553510228719527482683240211541275956551683779388958616229740611997091935398759023691564942235398788333899095288839590774681323470916274897054706984142699620016395167616387888716373286706643623437629048815800717117998906244856969611049387230698453582033638434209920269470383393331801897498531077434095369660383182470327334232822254495744026319007479488087877469284551430277701425651139032031352175384804134462450686132807206238106478538485851444537522179354086015370895792944002759606171646657863046786636008411786025678104551993391892894418053623712105960745886062305048846620518582070732068442808654801097159195115207665261340201832513653664642908970767755606670759587342621208844810325078517022854542998705554411264462764239850876628944182138983309406070368321603656575223102513196930965163790806398358611761446658402741991491662728916309876630805549267878428930855701800165161289121212914428976574655676610398296038659305233379574360653499445011782809646743062610324677063939649446996408292584985734966282028562025177538409687959154189470280361554508530959565920267059247458921133993616745650610815281740164625614960311397823601647812060179030942001522418652208335642614773046207310345604870993020837120047978115459353832304446990080481280281620676435408409496037299506749155252508052694913819447933667378627585904619741281678248677699009581360055891297372742485776048711806066075761094199367073530658262118034792243096386512445117239421274835141658909157408419849062734893919320292476900696362368426083876790660927710720285517957375410354088000780903863250295533973311596447501046843856870202595471543388209189565731620489770068471314239261335815628134239369189770824875787865107092391163910669307080807951936192337658559460944689762899469690451995373930744988429337614413755367436454420770748185962650832327476232018470604572376128965803178637227461573694631585962659899165219219302564536140442155754942924733623546077595223277558893982565159596621902364268977805636029446624859485693190832034856997148092344899729745130902938570770785636330927223376522126595378905359456461311626386401964935763420673130540375933294020925332381806140403856047479386829389848836043641675188044457880918785819771825638292404770590268299361263399803901422662680149340382970504859109640886505118005377469505969307612537258199322864023933222142304989213053309584272904169427364249111189854451147022516776498378783490679717987257908301269699821367452767878423879135487282561467241951380203044539158285515003105471193629413787384147321251854612934147721068077428989661995324906964270104694194773711053618228406858912734625732091689234666324145601208869009926927496823219374815058377153241086879734090218265780716011131007139188601412841024424774245521193880614853951413397214102101606577636075879539812263647119803344154769720997965918598848102992149072865658833164288688819354534340221212335731459203607486262071327316383838242244731958996758829859786976132262934596726006990148114323119355441711487310916914851670591380716545355789707382703021165634131994745259194794571671787086265986998651897897873035760300476924796909163336486858835404592903702189187415253413073850912280556127919734427442967641223415551219004710496005885067104362297685126376881086456967944577340028036937658154664393728313011811218975609130803789912882657230719394805995776078292677758971081071671030488307350220641023806186631686229768396014900408986897619891175121073533890172670969834104725808221049483598252077437371331750477657595326685411557103096671552866918009505960926616939657533109703552798933896051442083927782872903182093768760472569276680104554670094356185910604663352922674318389822727072357708929837504626369572216941924156632456989180256797617937152963724308580743592708897802421763287858023171836789052667666027256856614296150089225708686235310886503978781718277092748340694427900968311255787662016076587359582698284870079164038433877375736726830017483386538749262188138555604787528388253370871205757610114209126598906084193173248797784700647330002059952363545436784699502338141411612833810024438515761412251156109404400667428404229169050870007990749164067713966020726012618876389203218705478401314396043429603974005067499791990684897547181666888081581110494360279285758249594204349938569885107953387288639417225446552404816398093565172865774430396235678297489118790899459389842669565110516475355529991287552451047454223268400969510252163365920386259520279179164380965809180161938802923423236929670588459038314600085974720089080084340831303103965157311175593410386156913587857446128677454257593520529551858422110945979245391171037609530490364623199087888316279977842636107083286004988499173659298747921175132979804957545973885875581847240042378891709730024117168206383151615197911983436002223954984508498279780369792226281752342503112661038483651758121594082308302944383113866730245257643816367283100537301698992748488416829127400634248093694859253762813494462931294513824523606341602819735898327615685039475119979145913078825785426726364878678426360766284860859055466783632016787260320587522306203605934766350543002637978855356838191327749808565616254486390189269898809309641982946208369024954916124412878004570643848078394848708392871617361803138936099314492266790220156837612356919971816446015646999097151141356336602692071812083717980683298996524532756387744016394067345685428609508121081063929191646456524778966356057409498115882820739656878285358547066363498478902453645326373095091559758212002650252745050103843458587923281680140831411881034360785834644063583826690074002169086526056522473718241494129244545018087747105318668492560129781315976559192680419333297263868138487254741180558497527865848374414438901569140165375774039611247228708313127673227094052384984299555140791282668899425705681786323041901082120075911222263362210441516727496216371846412393353952764730227325764452188502379938785990032046606992323813321143852096265152294929137200790096339671245260058173216466953319341670272577707536059323336530671216244574138775018463698997274340348532610614099480303283214184138888880992020317757563424051821581055531648890691658351138521672518688449760801467104184211736932315752109316297642336762797089162913070803702145073610420684107325106239113537749520737374430084675740274640711420714288991823746921449937176264584244842445801974455264349057302908628677318763648619868971129606370027187165718295326175824040975593053636015742008578633359467380373033951267369435477692724429668586084332424852498251260602808612184315943290240025231862872027764043935163535199295917922413592144530483078338848042550149574303359917434088610776102916775181219055365509716963025897763892311490578209373484069120757737109771259877849230573265257874621254027568584873850131817475015518854081102666612920103372705482486334778197516098768459784253964838783373646575550569019410231413591529137693506721418818063934875469483790490049947017522259582024389560574176093409936225362430442062873320302853354757984197974025833432623487677570366983354086054742705200529315691999439397650118342258785388116011562916336788894963815195622102853603663103630462406612216984427970447997274378358295188658445739536531635016745859252527748802042775973777700578002348276921682321963120486026238402426939308572154012055708145649305243963857664652955807634350637264995376782015522788736810030346508511703123184345379403936964089909348842133042479092609153247908426152969167488960198035038936050682639372123765137396340197458199654020456030965289381321531684295404755028158445510196264889809842414297128760456804643760168403431093821807044398546288483514127944470188089268348290744609626837183308484974585677127600946130977564734319283853679681713156649923263839814442509826944805144737162811878898992843780276306764564616043277889732799350332115426040221082755577686293255301085174434613286154904977790069130312605433869544340323015353088276773719042476754890264456297931175345532817221016927542815346399595953530969347652668965776616575686751592715441461114468439527615548988728463527228442651981827409464711252517841390471016095163390729259391659020536865306600116526130608014054621253527827183595943588944937523598363440557596275336189911964276803402398862851672472032396266404772770423898443873033176856199301726492185968859149537167034224583249505760549941307960090351713082595929858411181702241403592473931933160032958855428560440144577166578549208098367878616440419780415966477334593277896679613049319534931520430123171301578016807372450084232490714454423972588749117143370114378874120313899029532137193611148873209574806453284920138564866298255353216960996802924001929721457165491870458824597549017277441365229975238658316154170716115856142298387689471132254083823534302286317830409999480074681047987965974792250813462669139548457902340903466819150232376029607078214122209852330833677312017750465486048029985479840873046795694210889052162365717405477412206286815705685227368398767904096749659054483622567496144362185394636124949570882268033246567987935425620613977331895669819672708297581290095030496588335607052970065526791545870028307938265113698487396719558217566714217703730458179418469174640709424386617089757621317423267186697001373840191148241673321720209034116241159625471213850282250978083984091981592368927364631466671133455621025176211319304047960809631879371918813827541865683795370590047546046899138773944357711905875260626071332574083727081291435089494318590290959418348884202895665904969284187094786901256709023163774239543587786323049180120757681217792264590981245616400672857436029777496777544129565447927644422767527051368315341532571083840571371056004860305031549241490450186220493986200874886538390888245173431399648082246715945225840913545693718308227968698015036197271198614591824305790428895671659843438650278483492672393931199795517026619147657805915334914147253742429878959761581904730277632303434993812224727884306258835890981482017835975585279241081757444050626602452865781864686711593673291747675000782726514805491450451891987206037059441650762792288267150252151236484556195610135799620463375527453359008838841186255597722166464602953957942298157453781072020336086420598793804809592277343822916170422952580406184804888742061487207467906988631636781665175442530119562930880684971418959406771205000716384798576535471774810439279817210454962499637134196763230461584292163371520595952839500385728736663769160834963076577087813507871930255784427194631619705999946276651839962862584501717567048956349902953511774823080482638928266348076771285807814086355125506006168734132745228673952565383191524786181502714269026038955064366582217952750139894949537673377931117664183762775578234171072236619075339898236688189441176477818155813889693347725421114816052429673565763341937449110689674438276564856340795049100310866303285185414332186804927463257277352056685518702708242083740467066776788751278783228832294579797210822731875581800850379863445566656499458565916560144981064548518606362383775838462951423883844002978245036511820574723379216211137155098572251052382870036760213771257250477871803840907626089369653749270860006531506494219019406960547917815016848808656377160601211157874645083234300984609372177659203931335096018812978465558417953044959902412197785566519816725171184786904202439597141808177940288196061551652723278575624271092815274258025517159277622533922377052399013781849771512425385748426586683586683438320998229457973500351881699697927275390530900240401887886271783266280927473830156600593849908425894859907048638233844188192358487585119977841366838859697569678688080399503062815641979628150559832303521281521296961448583377480142574357270338748980358437695696345970485786832237076921195622235008511394845845546185079527558007693829176665429542217445581976783076101278423664701166394460112119117112103386423874590788929414276897075816829989819692744841445272438767436729396504129826433974609526829886691892626383986540509503949267406531859127706137595027928067077547693278953294018365675766090782069562836166009758566864644449230666324594951075512799563851963908053655208474430220690302722732812138626255650603581826286490897276436944037092656275188047547557052122493474056038537795468198917684561236144232602080804632550016511419870526767773399255053374602834013822355494923314052010235824889695882871118162841549647162650035188101910585297037553131837085313007741344337395824331527588955647535998288399599774047839433312813013096775371204736633076733260936343048761265319200718741248972324333182204474559920014767794233280817823165185054731119022928170997190088033097332472494951722606581096169505663010334941985167353486149651941991913676947445417371236245378730326330904092785255778635193838852236908760828692645310259418387391500536851025215644611710653627440629929177529221667353417780733310904278086852645179101766485248274214663151069598435732121113379716141628926211261033143747905836531060975240953913653553293291877616396680890044375008844501090018688537537792413678595023786706512799723217080648416726697856184041681278250820824946729772670165777578757441819102286768596692238602519204208288658511043121813912703918414450985258199938283694457047534096121104791485842064633008252447175051262742051333387574842300298117485184608647300189551462768670254981135749526947968730820761925868586837581064171504321912011589996182030060819850547495760503371985571650243665911667634734590166833860200730455784676362918628402180938569211275554825716690778822356757094503817746648545740007557195843148739917903543000128440665775924577247289073484000642810518262259703743620818372770968360631047281968949091120423123374712713691046578327772747577392740889431687074856814867684461453072679297739344583621919453577942858484559466565858503778471182980392997599489653843710791061351847769618063518186898260847228469774044863617836824215819036028136037495413925812949187514531158459044791436052243273520242559840914252700414216972395797053707280909564423207258413941091507115870573868393206024852627934595823712665591552479492154125346154813277246090733185292179725034856674307517047156541704757125960889104291763520912891893289899759786856422534663221813745953473322013781133998374681459408972414516919978573138995751578817799793089983000154051296290412643664507882792853983474386920200889319276766721351649605108332760751318146584448921417198517438622541795459707397410740720142688490521214862601394291791223750483682527930702991698385978318919717447349407034534261088722861498845134342263786991429745040304665373915408347849075257421006055237082995737036021762641848150918170915087615878207181965838379568229239689484586084264351155594854368417616721941842086914419417342189502155660116882839644944065196970062840398257393657547950216894803222190921268590379303449222960804509584554793969074444748172866257658324317354528316102154620217929962193483080293121485385774659365077328168320339757302148689329995070043633336210241880856967575277193528616454224832373688124994803651606045436304011757727022560768024538140087035425915119828672621858808639579949853629126378618427490617184103775473141994491204093691085877454083470568391595567414133750385488936801989611883299583922399839807323308968413104761569878989407813143441166380013170227962863936408268555741061881998478401856926677730151482445305463688955990194594166320462223186498440446860938288254890354555981481269192973451921526349000342532296621295752815828096815260550610967726381462032014112381664329422171846576687319228799558652683618755055452406984953380835122624506786223777570763140537642696895742465449698621492231057425425933324933964441191912262598611093792321711043168340064312270818064790148008832191144524608858525963438304064570116967950809706796837602500543891497288680704202733679823624222149130406080350379145945304494529059911463502025708783594127888768905747214265532798663122217326511622116901262364737497392530776949221745100947728693273260546596179798532980399209508724192627596123752930400024721239726970646775799046345295097982094537794051987611745231653239521540610630782535063089988131767580432735291010867716385835144337351731006287199654183602852059244372773349815133015129160037916243825324191804372159219528633423115662536914926658974699029864146666556060951017952014556264328846973971302955594275356788804273212398101058198767050375972706737956263279699978049402003472770524384834772702244007666101110699669793960545379334380695665677643324647715512004133258633566592634279618176831197752915945599508280306184893649968939781475398331353545802525709643971340118500650623704166442400707560557125721008864473923445113676586319075443571592668061905714702580686467351723823523459788932399494569881436655682397176756642092708419646335618114713763319683200361393265887802214973367242814568584489798854146827493556927347487293166286760821385340615405819368349325668900932657943225245557182275693022319290565972455662547853883295596839538895655002681937062266777598782481873981453350056758396705625134229743024921668864898274308089663558862004512844341030930675152827740603132861873651917401220431619259740222768427985289581342475080350579216517898206609511517848417574700210014373504693089659717206473773721839700484403897835245069584302487299447399455775379573271582469129674551219717251256209087044938215162314959407546904194812049125038425597662648405082023676478967019855369436425749853855772002214506412511526049194917429146471923308702499986955909976188857648854020123460452451957447515407425042864955455526967015216408341533262289163016840604662838291853788878007393340613692689120018099181555148386963098413895209455061971930138973387611825036860078774450505715353166587330129796425299322916809297364043984359140186378432934785041067767731462301748679139648849652578742116466896956902097103402861436837940834457040626063121796064601459008788840542874665046800236882462444684965849148518086437521840317758073478797403263943406014125129566380056082515285242583053745058462050449778946046768841137046964789613333364495699281385730176980375782483814702881794990010320404999090508291653262549555332999399735568934953294927951971325729085642429693626288817568381442497372874360736567331715644947289481390084986399362698527811540737718307724753396726385292855556459724601400546232068695788716301425450619484821963989922430430541941449271771038389164386377915949002517535048218157593685397917525009208420537281127865811091522376023070004132093684429641007636267166887898810167938266763410477738161773027492712727620477780248686945709048007297779205065373962045900640618761083140247426142828356461108415751506296907614886842765003461237506858590199506599408320977097793833060086337922648351188507606976732445170158943435931536297502359230869724409394011080903093446303221376861814372287514371751964779683006447469457913035596513852597821946084265168800811410487629732862995676749410206216293768478172179018578275927643296263445932807992242360674229780802701744597187892843329842518777129749651244250053426474714211478583652834132225268251461171550918283134349404556477396323043042181011682584892121285201801702741628793703132352956413691182153328735646966157851809627034036472127169722096443006826999170854810633944804645998689390455232595758037374802333447614427552616415891135112843834592660171107212022509285857568592349749675751767632033872186773459619166791863188828491778269593725230020006234218719798603739048181313856780089378594439083485228537239436068730096201307780565123129400824280996499354027957558746858668033915126205480877709950503038503885307073613995994105956800339467687890644198482375107644218781860957548695838823285955032386504654516824539103621325366791591232320352771223943542190855613281574738697807643974958867201087011638952802645312387641822085578284351537541113800964735880244526458704073699393156232467824967260037116027776498919340113326788494252046127436500698817593551354217340398190430673111793671497711438357109742596675422520728573289191596529462596534178648174032162209412897449759000842554646731789919507313058770732913009171180949752222418532123951918307523802795980411135802931809720747020451665329782398676305001616139377274538973272090035985664519166232695966730834652103447980916717970623629663894700485450989217647582775099139122495245234359281165521754879134847497616157819315673487133307966939046257072231512847356383484808696057867598508648743923759842041509509515134100810864299092047290204416140801753792619666531053386394689162224432722939119511950098170912152064378155262854097981292244358740843516261638537295543652839023917502140043700525820734504020312971632620754822035673003941489094795961508380965866653305448155042504594736258298909295368120441055178111752600638740880476130506811537620600611380918193762545221892968094488372086544475198909639225497049182037954500454930386413868550478136422058985986507731783464603474304621458821832295875494872410464553771620567692733798830232480655989027264286404332073838519411362158452517142330234026929082946684316252546647233743723147471602658676105645549575383972882971006226414165409478956145148216556286435903042549448651206922100981321251568679376464889620743340561996065132459000932763407715031403453631216906764529391258217886883075141083814029676818923125819666828784305766284114940622222074018597922720349571819354218374796243819246689748333248013493360448599458403267489939955873917385739537440633083033799428809945100656808140120050524374616083908478779990971213974969113758465951401144568945207627945103878468274834479103393545190872532038544978592891513972742282518761960985192374653927424420991060891687468076304006047200745693920011684544113466903231245331845839284970523638816377936333204525852738781105538587895577475655236782855773737280934718879875783838394538880344909589912810570231618254043878068391421501328054463324327532443879924029576317666343934515973570819465568722646529841521273234491513767300078454179749175512066743610519400914235935514438895010513342379848783614243109893375479963853260534804897730318235326999833897631262517645086713013749573789681906787387823263478985961310547867165258695661768626588535520356635485517614449492018780166708077708002225680515546911540697482724856566802880843311968267454680698063702909494325738203087155943679162449598310871397790909204437073468672280298314936361149187352133242136905786352401797376282745949037341314023730089579218881558983554796216685979486779087181823398195566749043918725069967377433099513547057870328273912406989255801666819117827204019207734166491085969479088925842671932085383205639555306147785935485826877575110177762482929554262245763913036435033945907295349317534122949595198752270274663118040768741858367951646897095593208675006274054891261074864468858363619062292637330648939222647653721783556444775941443509911603939022763948759338387020982128548963439429728646838179064601064650619486690135630279178824456423137944458493983178589889185745418388969288019687447353016954640136372973289994537678325730737210337226961447683914854295413639925276943204494645904561888984407625082151836832924425366366045980751616407065342410526101515964807047974570191054481885245682706740773639528758931712947281081400351238755917548476967738278499738376584332858047862222159926924981951941683914250929787484138553164440457885165809616714944155953915842888672298463494662430856184050569123659507376186341438206388720413503419053139586693646520843190637702832945856432912523700941376012592288783107539766617373422906966390303250764720076767518718280766393832535416597755527699528100514349984505116994146226179045666507298514911616443386254445878748465088850840703567813905292293151887965717171940808244735654644106271844109246003010459503412565613977574658614886868393393790593954546310300172562765309459668527478144077922560234089227966939275014260948926758665153339458089631342298005439129179886665002647378994866130318281214610963287139013487198952621233267805671035726328953363677539274740036746337084712819044684081912378456098964543804277630619236491726686401831143199619433288126088899365103373919901579431257841822641146760648479550068054861859797777502513773121328361376039268174508141200338268950267170068890003333377973327136376264555608363473369112959377322505303023893208450210641569612400159776064655312228251983594828185639806076779020371823772672975893690250576112565061838401763255704623217088499880482232738275710119009487218018699871961835583592286522104756573969363785183194917089336096652938671821565678964593993796782426201279214732304835154011712181541120569571174468614379559682256302841509579954865722792823335152785481809691237962800569863642805410475513366055664683327826836749368251127168937291943235036431401442670087970383022101306614366216758897927119185172802196731531051844953558764373938394205362293447712650743608570637350333299421116098805667338545027872872455340279529745019542109760511744481843129453083503622629569161923405529031677495900594643129934925522619074295817441620779465453950936881710381105412043840457508450971538923804282154547944234040565285364052409851513876212829555184282859065979943143401972284324726483173090567671080117192402157668159848807358764761771883118951029886525025995456117264408405063925382221743352462967196460485017455559260334105156761511140812884596827915647618871945900003377832603261424024399756457827958537752017757860230302363613579159219233973503159281330445558936887891767537390362556152919844332292433199324653362074319697090488011056160858170581246409548126581871389929674353811967819628883713277450019163290718144918642823799298711777016134650366919717965949260733457704205032744772900325545181313505037426034348581006032738577118681051186485577712854308012596222310538475294728356105467832771246464353772582775758380098011059537357461319249658562999682878835795084028740672038396142110604343847862940782930623234057481602244253454843422090231346872421339810662586876313532614375399522784491421497361429430404974618724294135345468523161346872234774678575452666455424158421302690689062120533236455670202947845417973567310321728990707426066576385793356135303521248649072702038645085571423132653496745592850342809064976894812252689710157822220790922490448033670154813511325946765738304250016811641920257117272958857388067077189063497167190859518413673300314241420748515814128315416494512101242376270474596702176880052136192276925533860468976228609142001722689221119147968000765210903242521401382087888294084957141465430556635579704569082166460206167984119816397192929566071896088177236942768524053930394239356958485110660056610556415725616121773317963427024049040736794216322525774475418002969294979333408203098648368707463791807172447520730098385086527521651225472818013988697045477343182572000628300492978826163965618336977356601831570712522669699486203707152795335705491343106021993600797179845687352135000951440217859413143066472485099953373329332475498567297806488315711776934518991921814791163271047012362738840359320726528160716381363641683796896269281780641826704215656736886004066375260189316097330804166777532404045522576447244604999131950094489304650461704264236892944143025906149528721233608447064525204570746267608599065335890116927720173293854918868374131988314585092465435495448407396721666843535196980643262043960011057552745773384352865261607183685021429052303842106548582780130072542824270774215235229538600668745070788280222302397006741295400617140517864869461241824512872146804009567928039020522456233655070253683429859085169898584588897674229030918811688121697945824636464393201683854595509625525732006212045081518401642886529807908142217238051761301073636114240265400576938597725298269406692872303245315862533387565833581771006260092229088849099263881853424303602580712390919487150382211763817298099646065307008340912569746232357078863913082487804466095645913931988142994781006852853388082801880996576879871283364194257925417457437584470846386405297227014350647900316539970114020233364223443671549766084972777480158302630625437520980220281272516079358421969457889762317798315857339357161238265069226867713030741721904830113569770174983664057468639439475435796234399365328877846020595093131865575832664745134913912982611833176939160434355970395423826527699117891184823271343676263056354081346130510314459612782521205091518641651477135493932458473205921909151564973844585404409224472074789570903262325479270688029783768521988266699262681519093784133518943674623719520337747755028088261271186834103270320345156345538131336493119403164296708650415774642385425973800639966309006021643802387685085815072208245026702254306535978959867079024883103793443804273050011673040561728679288673874443505447076082927299122781825780462722270082477328264077994681132788508624375326562885375080910990455181861400654625990016447314692894593326706335933900395857651791888543239696751664691539778055091327590446063317577506294383425052808545761302758909226318923029489939099549145274414252936298752278195751235603788576227179992129301810084339232655194823393123960666312621580314729439902594397458216061309263010397979598762368064274825075889607262333613911488576645555311798666847912807693036114664285270635711849072021275723147938948473809236928547621841531401966478398339572782470394145352654076280462563695264031257659138946671195157493557129129755252046233079344072354682353203397998949340166734841921701116429617248657819268197574943727820570704353618976983427907318627731329466351438585895997395663887606413951350188236254118887949361449877030879175249545574026459241531829671199556766178056573762848351784355002588975883528990397466538886951046903277889300182913387903763855674777548180954162720815855312038697449809521060204214978545727381586839968123037950262814828256526775366069541505815727958997121582104606296767475759056456930302130349023812832607637834420996043686559291187682478508027515506707472511339702719954010318495641793046253519692509911432325609943732502329823790478019268065758373184672361999021574612357193930640565609744610882799856708840048252745564912737652832913759625701664067244107756831903858600069258644763575606965078893980684017415660447411676303600992658477881801834798689967029520799396793870380914718860828979637274827021832775088785347173681391967406188716356508619217779441091974721166727661743010855617393886628582223820284994444334849043856336049074591222309451432704796296022722900372201275862614556495651964050433010343131420181058110850915737451927856007560734106349690291837515698600078644213357036507611834856969402737180062434482802771425437456044350690600877819122987836178427231174539235830982959844370396204186070785090589057694638182290332069213444518337703798311957389547356600797047171263360889179914166485318429695047770928425047104853128339792196358181523666287977014346947527517755218047250566770643637845077512849536934206275858627253122849832254950409934588411061065325958653784483043087085674636902997689088691801585574398024283483176046624463815486348397730540613699460414187619284269384042965126841890665970788584454456009283048337120331280428612094721449796698954129568986238332133394076178083790243221523144912002899566601518177310688675656082972448508128347551749859664265530440130981870782878955490588713789012596972286953129744790289442742132784963886051503854492539507589176722327888952296035146478541674165831279493625883319647462368922939108994908653072091063158829290837724281289452399830820314627995999219130404731511925183014609297741986030640554639648616573259504464889620085340587285713366780502075488772904751392763915045227945131316996811323817703683970970130219409722872465929510860327978276638372404108534131503455864168184127054298056203707106431745888938485533842291431819834736159759196775688302388496286871232564033528222625622363617932781169723614466740402884732997217331967471719580969022357482100413148213080414906319036171289301117915099553726376723670106465221563601369309295045250924553524043196972228706250094423211275424376115707222940880287337088742765899997679213798004644264376305986164272388746219580336198994536652997520768459203666400019502634621852110562030920801884488283843804022914941241474132727754504763844013520407194530093350320865330350140858043444945765239440202477002910089153971296611868506518282492650738000899396907276465066575808583027786343071934898135225605030930715442015576412016607472218264746163439893141499922929971331720590589368824545680901008818433361532678384571596357109727418850598772659134570844838218068572845188803094994890336948108536739119296505207228770314145358379202159780525427242071567065627845811767253010965749046263837208054449780532745273059222220619572443775057165939075898229312432498129822464612605937266809012121559035863134873733694988153812271990623796662296654192082583798831607323144860531927806699310719830556848561113978068764729160228031984473985602586264699624900772936528461931385456751812408571413654159622068982648346008927855092997304278137040748383940899488076918237135377284678088918165478421004877963200496632549627811980966154490102305346012773492945539285058520285250786711116630371885885718907272604306289722413750225669348806948343684716238707564234040496342668626573619492549697585118883734371851230765632336298045217381901496574337042802485155137365365437501576805372532999988528749647425124955497946220263018129580633933216201550036640230629793491419559322800988523591975835245684084331539645443933426363877709046449867179259243238675149786939166857082775639447863725613547148276507955415092972902183541915941549522972741703006857156538648709149283612143402757662924354734648492817402840285529211648109315398182847763966695996891190729438653585255829688428237948370431948677873483502370943802855811492254601695287859464424182171547904567371493658901370126635583142939483639334718886571185690350385677646971470649612780467547684806664493443952344137006803733648618967544249281207686105564659153032635841897145395873883749138918667976101436468648570846186533623302851022792405296093531433768770250023123315293326043848123842640419959137522320083205746152528278617842755569448498041391297606783118133360868983399984246045907408390691842507421434964456613534403740910383422550033355066519091784394514719791498503196815323132340685039990820759965909110383129797443140817658860067864407722848068484065070368212449992374712005473783928492315299204694385255818256734444785946340655258700437475251645232906933599549607728830164028875536261487461238510177926283163842023690500774717057687711849852019237623829835604871953303287846556272975792893138642191393078182800966751535473224902595655901018739218837803150149889797674654592501477372210051967372830208556153713069490835462079107845681441904435044706291734457501597165594928171808430736901122064118202744565794455639272340322619913257987105964510007147451238188324506638591056891052488199795000006625857038907357546813496179930394898126466146279660497073258073817353842718098363266454618679969659079358445197734702449587031524822470918458343741876834112473147814346392520211598993377552108652754022692670949134943819229724285513663408419683835021673646431923079593540915007154344110774135486967639276152327098926150087964701247410125082254471458579687853190807479119706912962170438895925494443478237463494095655965784416218524011100491949865757769860836734304514431082307667069248956937108166226158819013748427988750746516635563247058087411464822016531234766646675327585903452995710708610677094104076669564733211368474197148655085193224480804062568499720150567233847196054543318688687734962134966570706595915314674765741447654118337849082194839753118509019802504722304880491568260042082914337294803578598761118583923729472821260754593267780283399743099444149905723896740880690335390227713661192100523193050238850797696685111495101979207738805202916762048561500553718425933080764934179391930879815372917487237941928779722063414992058367677408597939911477042822100029923311417371172901935633869532252808621359788489907521338366835669745608480305580578975135478241183872430376339179683197067312317894853287117887268088975407177297743440802807939335928269290354523017950106625074787438012884823130700580558828642241663376487137534426657716719041555517360067196086785203103395408303585977911564073181951208369771936716538147268446712563248959383356956999828913185068800068711865440627644850963845977426110230302078122020966948069770180987554683784334766182682864703804135634588919787080561373714795523118493162245281748351520426974581292275481290562906976445623154219119642540959866764429238216055429355178933076813602690447888349347550438997923507187257988055691710694201044673599563538832723351225525431553598890239319947101635929652296866661913550295327097320438431433392577565257130373765625739589252628053192624463334819690184215342543441918889208082735284020560819310011994565985777305861466079590717314008020847702421889665754454198207398323151841120157778713898635177064345488251131032575844917218462272736199022196242496228937908063339639118613555010501945073974591242934676783867450044020454890989890453770526435037228093041493644926780279800533452686618264767906421936369436430200529520367308393118874901950954787184580588715855759296075859629887022810695284570519928971125297776442710267841169264648390662918831091502015825273738126194879580682848892265287431166616945886538086782714752781976065685278487481125062434277328455886362219740162556976301842483599992263533243864634787562211767434534733484112096553536140468352797842352800558331676847174183525448370796599470154248709067245110877277141425287088732910773954197857559235551990874464164941622237475890393781680496731711089355237904871549486542690648187762274792357301489085870680696381897621443573133930686887433024464489420983815063109938002312928500891706284980446547768107154022830064191556020690880305563961627865693289354471072785476951844331978712735509253962547618568346527695813151337413629762539305712029487153695815284470461641163267770020551941092886671760311028480281993929966289741979662314251076727964540068348288526102914946275685698867929234890167295301218876200547587894150829636120323742509261861958279359300761200589870995600691056489196056556435211555643021809450840090423288177513860423750264016152395972362087671791502191541346251793425789199491385406395884745402430641213741211102973512597799134377622878401011825749289203055603824949711820891409237498003893249701490567093247784252801416539905684661843785723962797655897496228444872104249023464815847778246069661901233262789738954532849409260132344442099561218279919362683829095521834130173607229905317964840052330337336582366526917312728834272329439861244771363669868612443425683235515594168907812850059539061833511366670674372096911416696381424543822375356626793407981361449275598805925291881886755241568080822234388855566760383809110441063852081387700497911358022018778462749346122072459515659321243357229904207847416953402027052989763455312291884441866380618853734005628395497651162793228383892371164660488063557739063364459618753861357400778660595669554535334839476610793400247152392509610785310151311728119567838713478848688727828710275719395024088913424486972224865575653860808287889325012181034692646718760699720331456826190915727187440751289706328296392872001150148459774425318130133007161681020900203506369911395287123215864970458540084149090998528008992345913157343507634188219709713722845972580480458979843969458263153106074727719089789159256437164585593228939852345478587629200011900507516705187123151157859904839168769259806429648157124303997210717717471273567060320712938023576327455364658456280323394412092028364783030365946844478990698989081570383446213981405864475592156957704142373663702296525421476316399234866160495579174716215491226059928307788368372796018854226374022238683219092556271222195394677458273606703032336710546297618254125848792883790662709654201391781818122426205390719103946237094268829140486865504398501968888651907952259058634999051103658982427457255378140411061494002279633404556015210352466773267208164909543526182961116263180556219831002573704985147384210123663061735302602626359197125337169348146909474050797422512147042151916932076510652050152286293524932560983335583405411682845381697741960368068769226309487536881225649297306708284106756815985812779535874181023449296908157087771384603306490603021891435256206205265124442121026238073169508422242859799787634217772196011887010800306424119570768540711208586742449270690564433699057632466248440745175093580946757266313901415945062375716915519741250835511817115273365034673329466438647328195271629780549984638178218968685973479825770312807785140108930604185476397491478563026849084694144193357210411973852559909733679447973308539524079229578055018652362820296083146742120539659015604157356416812762617899793948370357989002627461349963878077406449526579192681201538796098656600554618282741978091325427485717957447720994987430044804127473060658969883085026678255547415802299979217995481001627359786463106853109901265403183229049793552880654145983016208461014695036166356965277601790026047904628567821499731854895464161516488529974471036441524537308654209155493677225655765063588726997831114310282376146546868381906712869182747500856731818331612583245498907492529844214442009451284619776141303633240957641019029860491295261071398816531285428222057395362350185886221016035173907482477404192332630116376393603437057554399705869113553049510091211042304616660784776751901157826028517519080520331594933697051560860479547104789350227879901805243333888433107729199467120592285891941286528512609786774033255087364167755320379070197899063109177112371718269051921645724509351255814766697527090158943982275573235237170748610991310333216365584128377592988154741317735831154744922806128483651765737098447803716229003741240397201101628299580182655015129735227059568236441104620201580392642665453018796362320673561611347301054994905496991428909611838993462843367662065036431478600363601405968087286671585081856966718069546900990808681306913514011137864973956176125159486117160733184872375921078884522212485138978896336566553395322696895660944372491788150575521548641899024884807627901115879989411619860487979983844716174499609117634296630828916343976853230839102771433612827865784034297898707526611652099894398278802339157890186920140860381126662293710907056459450748163425638826810211152585523023656586922408965835066027832970622986187775674813032617261786372029094443691412115234591481493639593835566047216397533637139546753483676775656555649735998658090540541385983924672528462110963782141300388206878003283055463101676787299837377790496511099624585832243136107481701592606440277271081478741872998918580261496775464955652487140804317322373275546440297260760317539143395231286994964580982663621170453980657508083623184683716973973577996922009120978935262132711575933715635136991035656459081332420709860095976002434875170074827300340523271779569832380152795769654170624944195779856702495947156024012314475269910013182467152687225462073952947865908596609058167615998708555992103578441465348682229789350915056189510564162923494484653825306845987268391082245899205757091765844734846169994770161752734614044879491617022177401456691828049987275291628123128697935941724116048184524818358796605064929769349605417328227816190272334932881922317125362571107423941839449090644759648456099065944341349749032024048960345715122457995188832471021310946679773090238260332249380709445345417614236010220967993082576742889652537719159831510753679006771576464536103225958071889445462446260247090460378765321795869971262035686447494410223344701916175915814890795283550128163101777326316943007318259344268022370562320640661394943734225046402565242706251268911901555976476458931659984633975737984495350935137994724674735103184275843852073992572860178573115387475390300616030796299608888468291845925470153773400978136583995978365457968163419397295845519194470042902603954450265079309648093418173464117865440670934654793470913258363774923621611685485288108553877575681952395126614377533647818486237855345005086787461430685965023085371094311129891389249045348841412401117791727550202489061817210707397767118113226622212336345158099929671547437694307194898037490221095837863667434108692046528239915028008916627405572514231862650061785478835144169128575480474575676496943094609132367839563916432915552702033768801733609844055518698314881742126592221704651396014093057809452224554666864770072999497006340339602018901164165343664083178148071059197428797828547114600542871014907058736754435091266042194414110821881973566751209023946584817999419471653295299991741561349244619714160500202554846729035939370844154587702383535391225664473399120799935423022647812575323245619570647023009994063797806732343387849149421267330267419756968262285241079609583736673814495531885761861161618977677924402177776344647035772055778676860430518649922330038058895460095616150073181944362486588040044094868547616256072610751101456621489026191783234379280181335346387984237608125916140115677980516978071587166184735423414991884573349712629461623309515151794124092826290743014247927765684446938884093290315097531604482557053075556758678616817502160861228975339997736824920364753062463068590959484701651354427550995366686906686343407725548175786676077842370640537700357532336100799377891543905567464889388780657865888526634453707995227060194646993742272932355939934251426047529905176167730628591453888683725292564771192717426922650807192801984931586959337177422100896264080840838497863744670475162284381999798739243187614333032326466781578591264651145850511880080660080575511434385838305208998212665554049365731403601960236057664802968190927939606611467480896425504876781736911844774245290618920556945422723940768628907054024957708744689088759234349201887459063008042494047338703033287266341929930304913028065530004243794703316969104267843247244916603808495665816825393456647963859945234208410079751286676832733036768704474960826420214902645301792060899989080582841344910653163143378969541549968389337045256523585565870721797757077585486859706425984049827385001066845220478781925362879577371944901181937584585122373489913682558785141041070491663468372977723577197716238062440435981223077993358615667137592267209327023743436377991427397557176575936117921004329799857119675419402528530076498895624248883290751105253716254877166485896848808605006630546195082566749736982197321043000648560083242177048493486970577040577890561478832507436514509563650225712923217697047123034162524116067546226575568280146776774576040881334641297900557203804869666234550088846886426501026477657829695488733572439912638431602302812827743808266280878379431844692913051160274080793325916390818280794349817426856488384925410443088494614634507282720644581802347332177673829667890273897469195364740464709621742534617539666542513726716788137219480089226024077740080887577854620461836353581481979114045931835187213216383919269756854365872963767801883880082418390355300264291873569318718410896467589596183851061428410050385000683265148619297458337070430441646970375267599189511785052759552450984970265704580375609055445344494264463927185587405353867475118809380025850499543115140823040561161411489573684425826902460271628471933873038521019295604716698957894039308643656194309028078249141496161203398672421625410857232349331487756770338013267236773880475951688834279251228567805333377877771483909245143197697481957511865207190936612218786153083271544646144707133863038644324370280865380727802643412596874100367713690298428902969866627034365580824014889634416765052012079807771049430778958195209776993760697680313007956805399208238294692774957191215304437892650686554145317843571457073837166410286134186940917107103035988089506341003690882296625072654028772441861192056767849369936668099821245678564889510868597096752371891760645339918621998833309674380215840479525966536303971796935303106547849793136140999489856553433084743718378334647634980722183239783365034505797751082869740644053014023272535820628259411035067147412548185370811557153623425422577834437002208488887160098120604822915706551189632458086549672325009131617955961192652506248412755412882725052318357473670874583241043811525836722987459769289442083670079532940020273063071012368609204368200625335019914846793478960182876937907900561397747417106224738965670084004896456943547005020053535139864152657365690470139063845739670444862717986496721571760970719701253056998780071054445963767631059127678614708141396770215782786753023983613697032631359297088473803151381705449714223024200848331112240593547374241157918617707382220864891630713680204891993960868952405386160448448451921874744533864438472763833063361624683070756356963481645371708406126522295869487174087524532274505093277532770183361582914081824972651537429995110003870508138092698119357223949510593535201474867274960274167193499947622541580813431870760915750810678713760672875356735524813858160326570790781652950449596840719108055740401786506476475319215305383238689338352982564031211551253546021683678647914994764667259717634613151676183342745688721484950485252616883741286151294402885179395549648182148165102823799537770873487443018378379231773346951591217115995942047063782706130995437670142455223222547446530756608217753283443336808016688979245204739365265204840423494592886077944796651430612504536213453136699773197637739215800894570538928662264112053764959220107176717436362104167877774200328157784016470200645752552540407705688712123161314847426712020722989716219796939813873507240726378812385972889273369212386301800566066063644002921186790158190764720427197586087285593619893882163022407296505165474957990905897326872339136826064303618661214471005903425679878285647694078375184936896492710214367892588628477405588880345531380704752206510491261507486115240686423023857797376505681716099608281327609379620424224317953598320777026458082745509909876482476729639978068137773777936950888149323864546297280823238603919151075229977150997782556566491480234084324680418555869177760852800375139083040695851005591355604087902793826069178908712770786513869947230427148917944000310664929554156428978107389661954420551831690496797878281790019418042978672843427626795266645600287032543034247121020193322429937068141542096675893938100136643886320487753672514316513194021150630521674761556771602285761104031891156837956119676780329503894044220142826387923722773619556449225097044933341425513397200312542809193180386334921930788404633361264643136463568064321597466963528475631182877202556478799136388529869870292390258664123944782654223393268207842211526883155109201192351867752271979936405369548958165023744003113496385621815946137003243800276576808360891915991436528710724684289801026428134310930994952975977381091463374723135019578436425747027305774599913243806073110620754591798054372812161275590755109413308873296757254500789786504455897923700616746786080348782772735569217509863359730992797862108539757892312468449978567647316768447215229882819110187359806951895628570319086260333307448016207253638658948005979419449291863054920387768920213276935167223996702154527828623059729270662360306591406254118559606659882846375049852130978917419589557697366874376898551553046553900889738213997099680067618785328871745539914966334387812283249707975399511036449483599136652071380905602397925599466672509296016970099084498441918168060472175463021283420462420030910331424924025832939881468933492520492544451774260179115733671495384579369420073168040794452513025360242991402281839214885649369627970307249324367740255244191087321393039122299510295393819952023170828153945563865573546457573262787862414334244129018789345304893619794738964150554162990239241316529383185673495605857368336259148612088498542728585354132540998434043883086763716321693417936635446834792066702244466275726853851336914338835908334293076815966422180421810942439326319498520615889640224677434933390245493068587829811032388665547911029813234609743594162805653851943378127290298075606934724392173557123371723636405134179235214196864009455815725456788854526475192768498331425934657260170651668252462353254133617726171238730262202544643451165127380256466836526397622908688341188471662540853997224746104511808450786323493642881522597869403008440995943301152280284495243747244284585075026896219769324359829128034462749642532558246172037024025522593467707833214096259515849242168984107329948684251671163290993689934206466980297614052985063846514850137999914572717008502693577339437918795312686913563642095617153257013786894535677306757868902274872815948078326835188869698925820863832651022068846158730244976917270037565620807656467061509048539712878982009151449612310400582909320865074185012781578176432768960683655505110813203133295361358504244646097472201479071874314181597792633898959824255865026289219215000040237948346931802327391372848584421832007491487609097016682254315719658450896937505921732103608530965129875047021011726194976816423964455589459719289394492299234551222594082240490746100151387025309558656464838764181764280012623428898337646742983858797776334446892850691244145892474831761894063444843065860826280710695875830545532954993719197883756900744323509814673022252438731985782154956732392586491828776379125361975098777080420354756336692273828812362596446583217594092960099366467433659424700777425610856043590107980852954547182037332888863769046911466514789932669421448997138000111194793163738096927694632490331082726621414973274195445589726181783862473340788159969007338293139064965694247751308589892742437805878572128593581959372957716871405801711155041608867868691435475780837553433124653887296551776938934485879225538253450897179249909492672090796122564044237681204898068927406524990316546330682784725052374371505534157271962823985109072820811946000442485008290230827012575904287575920607091462567364746716009414770264584561126110265462336320810553165561424887896516902506956583693881538542016101078693249475234125907348654715645986251204495583242287005547332339076261571587746182658413616441845600259636399584015258850150638285184357453809480914342354608575365562581757191467480080544501038550780835068723248327427237733967718076803618068706975589273819862080785198524815441121984374447348826431815513875410158660226461235762734412634512794446572830504650510150053756014810537634403355631002429241931035339172198607168249370486985205144700692703992627578908582036228900839174952493839542730620507043795311982979456307217374385565024817906972741913184520019344033204190224285327059373238320324113458904661377733132150596803138372638808407724638720919114324421348939604779978098856671649615550536586995400563744347652373698529551071221319762821940883693482096776825210733990320824774553414493392063295002663302745704858087333741518607238805366465910201984943677926220448105660499435338032128945007948228548271908105381233511189292192405711005770087836774580834464396484142726492904981129796177932347259730551060213316485029762724362436258244975485326019090719399200556159371407939130816191380799381182524994137449969055842992037154547233495397266158403785484449571047072025601271614889127774625569908256174482745290563069237805534402814293908156970739286098010161503592375025386011266972949495601036441205608362567666427786812487013946270126571405632429000064432106773698747046723476254079876636493183021868947030814297140720260577089629437594184770995728109028619992086377957992556086143296621263867088671061412041692517546547878798071103107754702739292290461357485685092712575780446454082430712562909499502769089529463212991297790104217509562926094374698085798487040741703071314555194337540993302770695709811420296297580297157293295251820114205273872425023352241031440226664558921391028766196001975525357313694773516714581517159254180207615067109686856369550390880867340451080753495593196644314039776118148570192085657844614062278089938002997891586087352022482302433178308236082948118363627935893555573094689043152860016455587256360061641027782701381683204590028149698889621116992165523938887903086068941793415031334205250987773502900241603382918619635770050036118564102659264692456759127968159845931077635071275283664268945491381905677875832441351744204168557265000061306492240490295909739016371303115257621357672466348513961346970873473236075527452304330036928528619334062833006610816211587392137973473900247904194635554335112834544084965653332928614325655363499420955771280665928915740798082256280897612367946838693051283138277628106684218822234111210799941708644659727804715845223327004631447091095306442193067021241900363034063537371667306940889148305663870425136693350313627026163449988666525961643729293447846796875942771250807018277294216567923286500400225198282645843172585732735996273808671666464280029476894598519471347656737760323892687348536710956962953718959596765782528626146096114500147548806871663934227287721669125282470559656964579061402739386624252307327682668593691605306049364252128365175897974476686432138281552640768561963357300814694714164121907882676916869836857519392490841045107973863643130076164589842878731804342117715528352302117667821830824867311027380088372301311533168180697136467097932668718869806558694069005391851103766374463080315129720601781305922490205403401968961988798447672608903527231648930950259588160192314429031252112307810759170384906042700573805063605757849855890366144163063873642605046485553576246902830615613280557994727873044902311557864566934913909962294688335417101133196909978251202342497520385257638278352375140984457219385751585597782875133223335783347598746828597860900942916053465973972370194825699043058445665462203895188902255604604693344949666910272781667796847816483445522155215733281745795774517872688742508404131321413985683133792197868971920521489859924887175812352717979808003137163936547913435525171709915088255200483811640588584508902521684892190352277521632681139552070042796920910666000895868294262231172821550031671878119692747169524583373378316214597993617929924546484981639788050445320741410200580037293177722828055501936559671425903343549573868078989795393967223146559766367290871288745327664125574560580545837373501671183137725172528842468832836826240698083888105209767906590704255532505640386295097826417532806775360509169090880610629371578409705999942935605886586054500930398596722698388690119032049081591057786729070779956372613255303554397584753618378385446655963390396946307535071878288022587670016441118713342466568403820335882273483353113264669088131470497370070068329723334275780306974884161416996449049301190937801951494785683898974242839619936347055088278208439253410398247670149125148700147122143981650596807231276594739239406548670753235900108240228842463425662071297273343110280518179680244447535246472081359868933945711112434387123195443712939476591407895263168574418020805570161854461539764851365244549449936257373415005327095082118617997507346731227941456232506873140275675124672473619848362323156361803329275018862067259470463013223106128335963016802808626301457668260853828525776196891597567092787932737969657805335933302943366328494072473877025896439489621847958862412045944411152633789881567563656688951272530005031596052330700103373235321276324782274250054235343192234961916024627624365784379722511391064799775027529751181898835293725001132084369514105318354656560503835194352132258374521986525121381386213507633584594902854107116709700243128378950291143312913439376799099531354849061510653038423702210218324493232521286803231529199671493575240022338870761456311731201629786516421454849702797739087251391167581803315670281465735670945420167743040495503255286909247296615218483393995442753661364038530889856479542899810560926695458001983728293074751383439449595407512105548651910351364651184455399999533739987238562733915270398300618304623677450207284433714178288409598485254210213803270182006256106215766825633732245239251870871663990330954169706096068466516433987928271597678612330383745012995110434708939882389138064166570259317477831327878654518099833183435098253781269256411747339259464964133109638309133081376940135472340881745411470045820827511918186718338080426005198455537222238897222970223037395968351528231546746994126752312920479556298081367517025340873396379499343170325990625745583654774732304401437356094418585003144866500452717304390158888081795128856578538726351803714393361484098738871455335793582170431597646570386755791216819523217184898840665013423331066634248559018827930830272309022897926803044356486287757231808667056950928877415651363097791259192342448780497672018976872598000711668837573330108736605837075200523947175807595368329223539853040247665318252107740217011661772983873935586306465097544244328458664978462265239646759369195244059858244968936888111986313860919440353277907204286013115503139537824909419437382112983193533713615790522466840786569972363745798396907948893740018305895424884599395890116011834950745896307995361427188615791123692889896709399498509560053440839702793042220328341877868582726262000131936107561115005593661021924650933790163562091721143765812519870378275630227755933004862658790704435312721120553807773334373889390745425430161507184795293676705135876555702010113524982226706480160239100965335060580820461484424075424038460070897677017520970713749486052533967791759940595683768436799549661011656781783005940289027700388059624267828475442009328080173385110606454925296807309988819416193245735264235792932625598976104164044569939319582331972095079238638526225882507340018768125223066141608327276325710210838945996350997978994858498603099874429370000518657516554188929308016893035573474788343225033974431571345666225498210881110216285043942461434622858786589027134280868019545267872605676625139412107019767227108627446431220251170088363935832442918326645170961907175958845971635217130559158922222798783972852575960343612886333880733818870693103629860055466737572368834621660722164908161494477522884499588313625228998127133052993097957358556398690554205225123297876380655519534496674154169985879153846490032417777737685945167204378861839252622084589408132605027955877021670348619708374256107315239121053235263676629812411745991550202182239919704792402896603460902059185449398450096556926561419305942518452782039262417251361773089912954903838937797237930307916083761870833765725021474327319482306161638962166057774737275471994008464309849299940168207033972477822748265770302423096385246528624416948181247412730190594836138333035058942515611647167715528377837920120514109715748807935027845165142246072715046251286522774007124908860903500440727617957109653436299810075138091163605648071404151897503564716160204294176733176440109295179081138738280787279104704260007751276815990825826454413354419152607285574189349942675877300836071158352205419862452591537530245882310957645447500176822058602073505933895935175846078808539383159156207039316194737771077166942305379543293466283826854417433694069322038241751828208531645296654239408595419840921087919507669577933363948677690805687607211679665346292380229034719376618554499468742149335738358536636118123344762677726944067306235560153841229537249594230629952857369189376143756521111756346344231010445354680199984758679939261889806007363327057652256077583769295691783262340719472478588624076186396900588808379692933454901262874689049941946986189381248875414640385920171588745447296558507953767202745092229623809311338664361374654369914486682694909454964554681746602043695790126699667065136204317836968934816699226513105116700089892523631005263597185539860727343240130677561679909567291739832873004871159211691892424982078127843617063340018915586074781472834670457203645880731418094641849872008065733085656254495589120071094504716154424092620633994412123991425161494632292001908429304998583078739402890175018828993337204629960596144877918730394401036613147664448747574830498659017390325102387428901903130589935243463171011486511031240301038729083914083699755499273790170865363503552412724560232539900837617745039323996715563046473724240872171460121591339814904326277178923940124690848734834039043004182672887321170091511081653581849334450820515046501505081408349428811138898591980792495403112352696385798206775404862152465156526041881757238397279662499156260210908944630376913560679969731186662173114253203778037622317980646326120297305287375764303914329209817269764791097827287047328328823360535097327885689093546765495174942589052425315638651740087219735469521493704311126550265941390269905136166199237771925730328726437285741314944887560125469192996211704696252671435483278799813319094637400996238699064855658872860105616237413709561085232388572481675969892549325195187519331287611497159550430323350564861869402709281500492197681560306850448437074173260369907996398904936008894004063478501041015617420541048268434395086766884123512788604589979533618601058246404562724530890619301849542526086932906191034640868927926585884575093056171474977344077808638319360980497510553739002679272055477241270120670834803437484487983380589791120375366057355924837763251937512348400261736663477026302511292836802628183205424217687602182604943070870066743308593123158428135522280058571879456988309411717247495053933648611147038430975971131299149717614545456447448174984132247101229669415655052461262144720446194899505268950027487435202002528261541935813839343066456546270087142635157523596482250290708419871125298951544917312455559599441830784309400259867420109746887521849875185594513722719855704535415704465683687862125927243719226412936127799303957696697052099360099974895133760238168179489707654773014345371144380776930573619395874540702751136840197295375614073014017520599481267871944071448343803916147812724095561067904306539951546866538905710430193828948410235028944972348720322950323333945907329953115915036268201899544505414626590785783671966802565694025110809815720432257414896274999942507091955710014281834705932826167660703525291062305201464144549574373646812145878505697289758097551008864481340090625557229966111271736494773407466999779231313544642311133799800554734316275782897902975215907816152719989185225343339842788598226266147503237669414098389489556006548056054315872345348758015079693056416948514107500481744946547006716486408079097005940476485104684564798082597386908432337408570401629645504041404520565101244168072130270990897001205007665728154800958670076009705904463637517285901348385048910366353213502289080098396030242200548041266759133364071816260966649551255258884084001045967436666669064643010881901302322082710712641756659641719282512937602656686419407866426970597026806104503030655535217757184938338101961260441680386891559314492236817995886773471616623782738123129764218332319237045523073500292476452502414102393190777436255442098494334485913217562659966993510758594415320954752292966654431646511249022397313860622587346635625199460674347535379036799398835198380901773703452335821400827652062139810902921504020356731384223060083618709359770659206460890537711437307494166099274609894330469805185993981170467041970926498294124235975752050405917688468125766121376660948042965519435196751657313513986892331212343657896022028165207580092203633333892513392008535279405501727861911737687273239816397206533327383244151575626257563071880795994486295483230345981789575393308221444078373311887750739054045695616192181433682176917865394173540513761206682064391414671569474132331143456729121226411112626453425199691239975440051666482779252964940830772636417766091593822304748672027150896958481215395454990476525259770343142235414849131123201021253546876594998660667107624967111575946104561066166094356824972311698592449367046908458526735106245834918397610542904858367201306075186310554600746770688200020374674936918113794649964590467257575508217364718367349342510857285095285459795080009920119843610445005930063975863434643581164629520821428763600383149630623352318575061678083099842200131455441236678867935286563481215013292222273273966948652767123289989672304974873410849533826637185895024069718745740732552190867385778940522820379949311860232635169478196086694965179347422201537921057560820005900804529559843003861757900871336746000763130002555305127074263620135357142823653749601559943373387989420382166294366229469842249051344150529854384396930039174144924106884376501194214218287121575121781016879785568213572765112578255742386873905395495218453479962832351428041720490840849124537143942458197201914342176017918172779135834526945843269811778998774719409084718540780291992440689723881731699270460398131065652573757829007650866700009299328592563426525813688440191313073440041111656602324046999356931092978667226549190776558216118533388099389797145184356166925915694300352043104435314520751527103598715823828667428563481094614495894682331712100351102831331482026542205247671252161153232092059356706575044074274357775102704709761384227318232696493378166165343769216078892991356809915504360363274423816875667453709565127575295468925705016219719240385745413962986984862719934151213541771061065655253751998717377874629793586942474608436065820833903743784640968382757879825164501695428583701703286415016739441403552075211120538541162116660215471940601525909410510074222782629993203373861117192538005301692138303051217376583759343895212129733920355470301398308067395456393489791220273813285464458752872067250818268137220385533907443685342971136011375827062146556379566138637322260518270268710184954355307554078250625377491199424195808859557242222602259478827002404049142650185589788954437103649893903148809605404717394344209796517083404071767992305304608186390669020797851756381427848559199953127878085768371113618762432120742948886620667715406181512073490247586738604800681399427951992816473687956025383731378408641254294503324059768005070553533439361144780655957362855538742938458648325676610806156271555596775379243447027914229806970037896612800506196057201101937661742909342810881953580481908763968090069087932715375179849584784251227777054711910363646287258966601034346613263707878297344821883712509508791591286608989398925094230547474907072312360082873752054922649087434822228610436960218454862897198240441558824623895669113498566227469217909467550089711590186467149127425667975156080327714463004114890760343009453701415563418399256844393926420056258709508502404516864775721909189290696745048342412803180517491068106966912056477032221560188236735123468994062000424872415418152347556283357659394014519124931492117992565187088245313401697148645754572342684863280504398344485306574630560511618471725238252019505049178200006623136130616114964273728671531497878212566901091081699782098419339478668298490948574798551896847583691658722639973653604092314302585566856404033536241191498424889319151323136706160190179865151193893450162714930667594376862342830816435955763081375020847809250818967019357098064350039329818518817178138670362256057668429668000454404205922390793407799237651244745979792463021034594054218091366963266920493498377842033572580548907124676409088311774978831076934949179606815582744038931714004037552797622717852669090272831687142195930294347896983438989899757888065590729881643251352351527741364529498210148220360594935945384880725299314707110127966809860837632655096633958798615510483089556982286557533349544031467079979715153130607847318709372674561744390826273757737570514887943549902900764274928540076309573477534981341746359196481831595497903033031150432361550944645975088145855446683902654777375331443578094204827111486419416027880457456104142138352017295033133123091485076696702897069603889819400078931984484454619371564354304704455754426147610423033875016090531421029101888563786562275734082259755568906834614791117613268547642776752505981576435700583784714227374909755084413576686070876595855608054141502053444175289664792541466221072927225742254660807075865099572043103587202711842769730260264583722732344360331114886696484951778037062424548349432717633782662425290310744305929090019935899193084457389091731891612035002000963954563888452976616177116184003953549813613457294652742337171515041630439727506877081990772195326224781782207560761872366903276415522372874534350670743651634399603343256514085643735636421869080313859716887944541294149826955595984417904016971086004149876907667088662807571197809983317677679545127149214379029994605614993623765754010394025581034969213033456172485513212911359557381952153598496103815008405653651456713870772681778050646689594999144001813424712492367268008094266388817272319156460767962341829783665766828530833256388709904780606379640813019218782011259168904625141435924520467299591561344106273538969692389225935041065267018175036056189343109310257846652747914213298891009313383305104421042502157728787570029154864537900697693443547984828155333443066381020440403687512806725216129062468425867567386701774371552455601059793289879436032919878142124199556280041678234731578443600208063181789042832986202427059376260240842459583317918431793465217098794613513864035327995937897861505379904569629231951494579920725269784711493762093776693218041368675031521965573477782065798189677769441884433449301677445536752276513515079751950875342560346371867172902916102689342600067975455316012737100904906816356348819676736021176185489498398928621064312667186995643183099525783625991142047200835259049477566386933590907576506201071438033413518189079034517840280251009473079248493228714725099561327404933362021780581702761459402569303973478999637317315419606285481757654026328793156751175509552336248095442602666936407202451868752907706898037724379053232604576209244011596628533122284093298747350462820157872924802738553117115001040320789342187778009456691699877738197617758801875833917069738280127848852741903729952253568113017941144209389088347680544407735249497904660985928935674836970145517270105410799367348186442267911531061666413251226662695058863951118893741273847235727635086990548120221364783319100409064216610016209639830691614547285745189012705747867919041575237234840455076947866023578778599263617655421280324390514490920524150652174817173949952816179599640422895060426787562514581135133737632420621789768811946619571565993840519904015562393620679070111727150845278548677071657386494688939856634262727827281439026684924448570990329195722342228062530321572587299959685742520390671565514519070551923507353377226710221467009354664697180746879716590005407842698829867789190626167747443827855217328622355054853607920445052971670093940860553439448300138948425560358127490022327368225306867944734539799873389786667681422168502637052491397909572347493407064261089210230347473627834334162737830031962471585403352785068608238299367356136888858384804117878435210974480823045090506498277108807618388140797502239524559465550477152985695768689001885486397317335041102453401330550985222227651577206296642696025363524095291190305030221823450441583323049753278973331692042733318821829504950233226900483722262302947709262845329762634129691998643301377507494634107104544201177742994830742347422006677162349064984747719783455975585072500731322665433995954699178047159287533134583205455833743011216022607928283193109942757666360356158587631360576074250370074541138955084779587223013818937799021120064186196934737854599527753271891471221115631161369424087594523687932388623509606022134755306971001142865426993235382712633560247039574152879585782007938715632261828020929099699149385778493914473559378853483846250586116049363297485911418437195199532672030824315140875299985894417640683086418314308443637735190089643640107473224457492205839885042370244865112477253977829739767572256464342674923992562519854867863802590551919118612132226934461565604002966056877716488939774991035755762851260284692728033953473505851498517370639767472240415832086540293453755258674265775249139712828396698194611076313485660924137010579172225340622076989949414041704290711115934053546366115996726626440170362943520264535801193767986531417433210049401908824179922856759623686457791226731358220871424563472481226697204736232220313364990511651234525861799558468331290851611614983601040381796402298542156206492722691525879305280193314234829340554881896449902831494427413837163957945278831091324553046370635656511776575610640771896052655292051512885459260985479656805547512770272544641786107142581346122576119308663984341493476351470024570474495248971901404241438577825645282248809653995686102397012634855961329097534089664152984388392051898633920139563171690519539192758139624263127576513418857569768574331235248649691380335546317288073600062572744943721282366217876074625531557730267532303996886775830639659181845885920476546330623442255361097145115961091576775587877255475026941143522791719255498880870010511262730774498642806569295313098893200302191944612628564403389703160523076715570659996136405699198486959151618102859316597245169839616299512409714420771787382894074949334450645722658150606056242315255539037977130081937892985491863511204322288166911905577872734728071460076385989127939710838798152145238527136161554350902550781719463861749211313576233827914933725518426403122485013269239434842485137099877873302758590748754111769876707056104971477513740241674176348123949352222480024860770393544213431199623790152669129884915882575157435779713703488228603748144225027017731325236392526000704273106666545202304057535649381192466478239165807962046479853678008881947999025640713281076691936506185754978344284331848233534470246918331179768842525852453225166157800642006950158259345542122517422129105416870245354003244379034125040364251253429213873803079799600944636408665199100283468822791456314086282708836590765585025875111059058031336174245410008641168148352347512343998580726734925231122395940890845392098354687833189388576216301204777022580912946574304043970581914278911428008471660672521481903647550477074023332640552828981212107413402439268725534173417538722219326571241513764979561436257170930526989201832199998815513292066107775983554720927096547240913943100316274210067107901755764331307898841083449610620965443033922115426096269075656768741814509854232186250391486373675700489457364962681182448895712396249174977981837301236792123743219571698974862093371414647727671643237444549059176893394729146875989431702528415054067197357333113981511868679741518388080326721214280951458048396053977175944683011102892222000850506565678067923774694429039585986875425987759018274119224424660081454876056002163755623724450793704112821120521474163731454435968533251587531484866650356331705979119420594514445729049623610148239115981321803191762727626378552670910827460223705314342201803374795704686098677069191717145929298198140968358966159667998735840177763567837481348987199842427489731379741319293295269409575437537490651205359493526146452643797552320772849435482922935929561276748142735156787826535813729514440180740111681447495774943700406854336077961828043489043756330007011025675873757475190253640604495772974370363339545970045347156234556274637325650514587592206277152366754510798368901571988100496013770413554038823025531219771573351565178584152441756475043332420975525778310538094206261574292436634132768001097924181998482753152085064983966027895620378202870629896749831979462680922098658015644364622048253868032273507078017626314925391671560673059860198379660352913059996931387504201026763279256902194596083244148703990117137512794046791326803796612073159558824772945477778381453568601244264380931870591821616789026373347744472743243637206478340774353957877703555478479747393753053233990413520196691930660877029618861993179254451792038527520347758275628049928846465776980678041643324906091779047902919303831381185917738754613097228145716633529277499018042526049500232737872724625428595324183280158121483057580174486715085774433724625468846106319006918112876412133572741520291906868261639334972364996414531453596586195496957138420252069195517144698995205217455126440508066138415354857108560659137386090188281188679988947461090108054302566169682931771497702740854566903293200886628361362853768025634417552671597052661136157531454316397767422517812917219963902453351237116195950506930780952439877328228230693264158141160770528051348425269771492886913737250635924804435763248105092796399576197585879951567374695714591176507931516465966992283981833596655207553179214571255645502623463797822906285071837799371094124926841195120597232998203994471389613084004698707521816516146725723808807160361086235437992719385273674831567959064689563894514176068416760057699630705742875266480222963622576218655518494407721876676856521346001953695395340026577451594148275799747605823342665730108971999145968209075292084256509789599759616509017778973542641165067030032758923008771151963265147249759647906907481477356485229044275180332372386298686093426373014892554262405693564228676243261884666041925470889963200890721791842838948487875187139075836861196081977620409858064836938825013028460908999638999936503214484120683514342786660845272870532012753641435554185119466792238784130430651865740555663969235176454052174149206089931623887032832561417084398490643664558041527492441726603664706308254361025425624733311052457576063937192363518905345309835670015975327727598147533100445396039948475812373635939416005010487947587116633945331801068753892739317063407134275344122869338893344934562105370562806528110446725413798408607930408064533701308216551704128390399537953760779472553342665912385702766073246010548510809258313401287811502388235226911079885364581736708184284832807866392156643814721925112699148313578276542734516333474185782465009105415420183202755887712087395488184421482096691728347426493001402916630615909630246265023264827333039874679233021551684750409992070141004328218695140089550443814776804527890767478454412395571903354252521222956338492179426125976467278491427207425933801712509618271713652500171211938052269866585204618665965942169478829567801065461770994058320373756817112505923799843967164713169678720444351195450861762392378824636031515056289224973851253632632145106265637303181760314763940281135954159274639450997045950747909850908873063621250273815275868104299084501354727547263553197737925173871008679598476113989783779306380355528136569451603280534097917888625508435178328354778257067197313435839154091053441218909898381020550713673958903434872299281261161661191577419673538224784456820787340173829297229845771019108577809146722401117679911259360930169612175588618630520623117830681241052954292564467387163188078811417013178365528755142413493856510631294928228744048874199163487766939529265910480697322461416226664521402922920111680423648201839115727168037915689880915210683024050427303179677562692251346159204620229228082946113863450834811803836061620929753847979798957140554891495650958096956892132031540756141862088294388235016626496529270967309363390012119218546811435524800344856128748928219460440129206247994814547320243120841451672028210508378894511669078893071588301867345671692094991181516336564017983313351334097035219943331133704602259141488010589643951176325983298340747106484125742862750051984628196685663496382733591511073035517940267882612530941589710547927629486823651558924229538426939968981908620142031805708108874513070133108845814517010349760269056018696643347014512079418021247039456885426092075260024581391385467143780958387260092781437458205958335526254466371607478833362090901916612710093550834274814021223943586170693452315665359535919855489265630737239621099442928609560358781884078745221455606966083545419832603652145639145733463310920353221575493441738579488747588152320057217230490650633157462909742343297171584037036363745627314560879583146786534953606636732258680325480200911462014282592279138831404820134957523878898761926623404296168970816640218804648713578324204165641069448903684813967074962844489231471312291860291025759400564542076479390435246020613746614228680219504769652986161314996857098956428913528852393767790917403876723631328623560183072825089360137094135710079668687416670804938737105387556302172530755052905322478880230096608312060449764247175046889400037606541532044214411845957535304991282377314524145686053170665764427363769233088193385993440519384933348963176891172016255222522226818492775135773673977892405842142331824464170448664233536986353019911532351437882303547190209426771174714513187791454771011665227341157788772591407480759666167996681653446930129851142666461076145045123689609863224381353433325567236143345882606663696024571008373420903434511653768513719498734968694689463455651682634902027050145970810951737735423155321501043977989464751509274698189391584444796469990015617944290951139948498912392672143517909468629942603487954107903954670436892527268058744111528641654648590189239737981459906040576743529858054055108858152998249323245052478563610185379022436321773104143507213201309514196151816169758057252184437773683822316080405499791065901466449741799459398481095458188979357399295978480316026409957103726127590767850723602020970527565813727504942334147740447970817839186871975060904393676551816697554399699551953826822878192737200188211747696262664627265953344264513777249629026972793738767119458384931150594690569613636662940735721042285367611780336377177377637146009187150144222216690249611205964640549205144159187440586066499806231409089979642735075738467357000863016165786005126113346743865330413745248656832365190272934260296199779807289777754023899133385612525504909737714065200104213518099941476303637179494002819365802934266593588287154571810210062808777187165674605434193604579300252988636860480134785857060923167354019766915648226974206776747587378279868064241808592502900978940327638047720590631954438801788192465782764850423425778328455962275758481461984913026712730015580691909946569238909307985717984259724218994715099507140833395849827413099342921763293582523665375374167707813214643558325954284184718040757932383212756186866686740286406740214995900400660414795329130533933644406956203044890605882510428542154707083665979955746437920145451130639683041881712440450145267281817207569566028258141977745327154255002644585414926296031364050939887291558385780248751118422305295757375646997900104751453973391158373326208425877433110121934445308036488531922496979573432508236089346185345386507594603756154203172567976202960069269703325947275991661607632731691593269623203676811223432739219782859849376672805598700728055638687499342712734886798331607069650702849948157103040422936451629897242190106089240871911725937504942218984222914928730455471815237752917329143403399248466841002123039396088681797547002977973202103242740950056398439783465621365643625511883743596471726943989187193684936484367907401267254636955361384543641851642970619567813096961744811019536649930102611030176825478943901039740678383689276183508343043631519298143711673730954341353198963845158090708423991924402526464996558457860217548953950137441375076826333568737269423304886038259985263920997547392007138195337735950702832549934441662795733608544474019054008149668320842016336852002704226434200105514136110199537501252604747818491111310733469679303760850565094730291064126114143617118766682829433745033665092842038543202483419129271714343664637689879792230381515398055826456492445051416915226393706127852052944829675868757441485356338564109708806756181368412716901070439453718057181122689250243802032717807826336475292943282861154339490197779618789030846297771815503949520656235116168312534851215920371027550398328800530928035825206806327596223474952654552918235148013649044800401230774897296358221267529505531969243152425402871413665685053854710793240596146404968075127225200340825726547400177209626295410224470564169151216178740196505878387009139935333669025930789549176453091436183122518302438877168747289845384541066701157107720088424991822188764053364846847933300620289865073058002467945543545852250776045033093626188511072865505440422982161580986592516604655497346317417466132466377865485125011926150468313399071195530830836161560176507250431357978120074033110503507636364560331317191530951097501683562932909564844286854523175223635550864597371222383964721001427931083217668825044919675442949922673821791790756388451041708725225373799642381154318897282594612413371079962964282430229402736323315171754190024088940599586848413931090635783898590693626533948117805242601428243242690014104855603252801259731495279937469576630752765997840958453488170415961320401698191474552368571225659952213497579090882403398032572479547586314239313073694894426799670822934969949582642845705337222422883196710049064809131349805724522151981806125274360545146724430309126199549886078446222767040754283976203064868649846555032126433101539418438521442134454021013577756215775817324614004989382620401617906207622430591382872365553846067262298279859807313186912637944107991150168943015988433935879106615362716807764038169964521103509746480352299788042196309765628672012044951346413602294698745025193176206208284018567597264493302652263330486564208548190152647658207379884926371433617976359771695308011915898793114149671888931231080767461131642805265593504681434759972379294640627712547676925414976500978638954458148529208008549132851480802363433151521306629608905259919831847110109674475832646443015559618385868007977949311868730938548845010269404472505938951980951455760875594902419134343777324270016909382651840848876173448841831666025593608562917035984254143213297181556899760851653455223408304277416847424133740756824901031382132597572265715785239334004145091910641370135224198266695450025111802279697258798547540580624525700247815530310860009893200865794043061255678304986918888901251465410475618953294032665522927023019456180268415463468634941220041366654915863752913874282798691940949162905977088386964486406920498525237687604575973526018177028250227467918230955018637478229370493937710436816564554161871971221076168024676506967744262688831257156463700965649267628619872101505444358404542656455951857234097173694738314132322646971817166197157562011449516678599694766237696989606515500253230504547843080299851976465387286842060062327200172941883416526116709325146583274398663267515203589249168719261048427460546186001039547304283657503800751381969482702001215273971528830559017397170441113737189410245884230261457899836139906051000183565628450733316860284025597724027417835730915738978574209274801389101721964776525024272740273620357517421618734582046451047018543663394059025906817629694964532063299535638651722742630540049492755354805664803137039899585335190914871246276855053824805116279170507734650627769685266110268219454027789272586918258413173620612810535796474941750954335107090336801740926008571147196897171396164075540724956493535092499605540800002520115587678334382104943477521025861717385319741602348871790822590168807584249245431832822885013397657320909734338614924142577073062764579677405727051898699352850613951520364063699170688201517350642479591494822316108275650560367150309480730198539654606539148486007908970388518580302311359716941269018074676835596178544378742263662737907313372440645839591511997961246680218260490512713780017972246064019295125131714654751784649880036722851494627676874204615776999355089032671631102132510185718645447424307902082326714341515561928409428011012770469162704100535142663908594322492527746296359203308560289958956013830010277174150499221364818181749727059288602078652481640750700397710649481899515442127386560558540440742873951291409380852298309427297570680128073108262340917582470388257269803727311385011682487013685356341093613770480962968305342402991338087992141564787308012084646991319280962242698031446815773362864714999499249856826214283769859851274351839857964896646582372290084280983026641401781914081680786874784429076832408720542758146020929727986340692135462865292780601997415599088498528223352265700739144226780553511895414704437324473426919865376647073133352900379830160441037743110414784003852580958731966292243727513702709879621926636874199096993972050948176004948194376124126505904312588844221497348304877575999327959259655637959963218416992970488858566347642411290944390672179055461807838284409379392896744260377740461570829546670441088657661742643121109232948658049354852360749761961121961739346858444855390419217247804807735962181610589418484260097019946806545047503093876368200638633559868128125942623254273050277799000530932264005516165303126831120202557511494886750187100728138034383949686564108036244721601080667545128472916881359375139692114858012049929985694340776405863350063297569127921877817610569757207405911142954695730621591321898836641997147856028093966018151172254299421296734085260811484376122464855834294006905257880881358894865033040419448138113909329454188924681863106138032270810856299122985668522242959985596326216720208652553302113703586923844907338026748649706905107902163990791184140522613730432094946109151508067936941319498884724345818562725702246824480966788702603236165051977966404297854545002070495345229120278371432847383243126899295032273697237995390559692328763970277885376211158493917650536441076396205142361178879897389613383057602750099597372283609489074876486844192833723014578657172310964781213808272969202924686084729110457082470956672517840372276940853608341669270128419856853777596833898561598426946426748314966905610683834378022118838366702439158761471672336492395859309387456878977420800207301109635718475045911597808235623801361334098401019722724781063069624144837033925014274316513995480418267454437757290198512201099301677870796841873732529435548752955040203647579069808718419266922931233733068387083400865918131688994205532013075602219212064977176681481318490120997557781247274249093710797100428496702196152159070406757675643763521150321151752998215774687295343935694284434650009952069502981012901007638458664560682705275543871694589481379651884338478536394015276921402780746604039021678659328723011017403271983182230161941947593021893567218438081274247213667171578121822116976968687860099977926341721553796101177155790471323766049742334466332540238988570512133624671893285406796732465579527672127506264264632582741409465098027306652139841821323239445893183763894995830197553792277999072418528624361033203529664411743904810481148227802647276806065323405104018427637204360339398810005458088419478067839885956076782250785068230582184330834790064244146375020519024628165704801616688902109854811643892190035059226112721268762956927091678202709432807694895976127580850915580281834243170486713400527266509283841308969273975928538587220402782843335764458511100161143226149966525395218886705873521166600876218370020469997104741227023900504465535376652454960142565262934065360398439104935943541780191024787544605074286055690311044958376166349609495731846664543670819471060770171267920913001976345714150736126948859335960457159374237813190429415434160254835114446809055475087121822176246293782507705490944931279102080634657549802843917654992694910914585281972372303036736542679291697132244426937276312692154514794510692052907603093561285258335775087601784648070820057625634124323798221904914626457034968576510151145613399027613731372176169530033265019083418027576965387702978507081882164723890265031792792396729500367415787581622732546759617953171705218399802819572162653856865372469255575536459209966730490498381088089459502627247349737138954528823589318734612749973922934247363237819954845160405141580112954658505716423278368996849720686503918312887836846275383845644473441987627106758019815016700193985464741597419376692517435793366085676908068578419185888821113794046548859200690962604061095895290021761675444022371998676216897235145904512621160256030698126054821784874318422040535604491996863255452764174849069723272957867650607404618303590432719422625033908211622649775515904190237464401608401604702469386830509790451196747345766356430365722170718267799119873449617942924192538785208973724798423925179976049558360694325026631247231843257843118858208153616542706382747021058383259457127752355958214290229061299687339749238488955688653637119103967279241441405147703713998297415765036322560005112834162102031441472408761216547201681689925045887659417096310994257845442371104133504715121176746706407207502152616405291900294315113181234438371188685528330576698571326023699617733805038089792243597974454735681799527128574668216781076670545184227548560607917635415618923211912159499571980718983437081994123750819658575437631028750468293527163520480120321892018300614459621255750642995435749663566019676593484168326688756502343589292447323209380839545697988241653501872699164849568892370635849656085780812869905497102305827489545866432799601497397628029682401563864052272271756961161491334721968280535978837358854946659048187471073423715137514291208538235869626988981086309247125685041590604084616545529989637956396053647189303393946853137113976080159107157723710649589126588553848592932669144615997147877803355050962947486437856547064502390023647003381112916056728167056157531447804391099901892045180019289132161661110703793066899470273865476269364935926541539707900600342704870699862023898696927336286658487958101758335353328289722597120501163394542371682869529988282083328428689649818369925141642334202562470314215636329605151012113142715209379621156288564331452796877425191671742942593875615296356794299643166706896060864089812949301080150145145814000148610273670918118657497618438789529193805555430029148160318502163222689029390074565521183577173185051257493977187345588446972904675530619251221871517215993029731117486186653730254911187825483193440141184701189200569670744963386853875124126669847271341977931778250575117871358855863078161794626764456494396039679169589037614430849511076949563037358787780562756254039300757493221072930964167204959086776777285506635633268182562349170588121264550149916755023201654183790682435530688974894744104611978745184558293687884748036020894879018182586800173646575904222590486505325858609732647020480586334564504347771236497886291332917110982796332403436120954668040207854411014399623435889926486165381249666124173954160374878551613296111432472500028190195192934824339375037515997270396107625126643615057602290213845595049120509656650987324891377299502073047728008548343882630284614749573051331481121365001068081283096346530712899308671470381842558323994187234169019572340483296819059616328932552565484089112783821959023093740899406147421247134086681450482173476441534146728541265691968702393264548396573138558413847305250474080015387492120836061610301644870150851569448984143577275192674218066952036707970128058987644178882585593347114505320622060928998023448508455513003758466646609618311449921078339472296514706776160001659394253396369204094032436502414378854666735002314717995267623944148579457107479095385542320611989744834796117497319083843795649635835720635851714914414063503846378743880858744890469142022696731208077639840463702649222303283695563518864162578192077053693865622582012824665996982482390100925067904873034160015430453390943745917820329122106954488029621989199504629873092772355340421896138201212340101233185225391942672212653257942554074085508499908063981977606696793113135690014581387490873557789151769982581403538341203604289205463853694731604523321072736463116547783176948655709828789798028188481132970848749270050671321887356008917870798700972146985156115284855310341269076174303366636711991447549395819925659429077870635721712979223381752770152857937873183539754924331178141111487677157370178873957519658565602106644828074197471096317153481575482884190942648329950035629352856152373566362702280789278847075749517290556028294172527808540224802663162603057499184390608351046780788406333302423723058246613925246758462855068440477065095399868500976244369589005582879272687040935080288929258458843694322487295952578854013842019600928461310071810274527088071231434233954729483657799507528782935648842407268582435433867831080487928650369748479799639358616504406959770069512306092863441038487009299381167236736171246064009344869780926043185485748838113078299983937388210517412425325429411252485843919938743625162259689235596046117478123259300540349772049546455382375779432388151414680154289794480092776102059282822129654185114854278832785049497037089328221344642713474199730155039535069231032854894370696053813003993107718212642657990294086707740932373835792323969250579889779562740463970221006192624832563849888510218131454402028179445187160132406618785781191827609232519628740716336819904639423422308083129723878885531378367334861329809580958976068047726449480398561079104969843585067809267418852073076901947911158342101254773571050401189941056432324908143604307169440055338955721417996576456732851600649653045268060275377453318071505712216129317787257203562715440425305647126140751509010527076041423071481785872497322340244664294073959543829917016975499672433894473209651209504350751953502042527617647230566377414220117499897773369085297023777717673897186158262963636202201588700891243274515987005105378740776215458886061602607258090235202290962665225440147131823442122062307756334191752985373997359683038800616010224761233768339826188154094863715204073200115018939647873643623174009702974130735495416425817374510640313781703049029027192577897935295577137661731426986560580497804069503843893818395410478839778464020637649999397538729624340092592188254482327238907718522929143758196689400333875140013161190860866917182989598507344345079673739611218801653675402085659663024215783411193085928694332745461027816666476729371618219726194388944646979246446961134992063455480589041564176573183863111044616564590828189447613477789827755821324856125754985358578278723552445445377375911786179625913998748684664037560524850611455872684849857421782951651949137438276621161754528091557298791930047995965296333366163944859532120449671196844600521620116241797668194776375297338489405629660596447595877322202740421780983388000097890301689477985753062515733017648074817352541514694460682899479918402183772696806746323788779165518824020849344629629850030401664327917906480400875087340756325450981415533984389474956496099990731221991473249741916015123183393004069575166864627781756340964203632584281473949950657181823080334265394942057285320143070124110311417464420135125888195940675719347161769767701128951638093471848423613552401358976462966324241008407212749053138360264750122806271412677769070019495689834131226192287128033096880921905341662211313049835091555385896540300129785358207017554849918599262534585714430480333129998252515165139927505360158623540927580612200619079277307861161169231566561926840500164909375542101661244936894098854858748079609864171962812381432252036264037800800689837995550204053919766733773506259271301276391421007207079365884765643550727075115208564710701417167067623801468127581557113292099397936787762794721668200738347381878097898213327565750911023609920702248686304099453833772940494023895935703715719996609354889094935453542317478961931887383921634312756374269129634993994832674886705063239388475483975323990905858736906519705562043234371948333062483181492904207353881511868568350458911284100115091221467928288358226260843667242110512332988973041949369408141999633935280229528897287974980236565702538608460782643882885827367861941933019945500317941450447163397659630856791511838029272963486200645440228437525743609898090274071602581526044699156463933887246899153574640508511614379800591666418902798564806621875428185583609047955296006338588538263453174701599052532003204316375683216789957569546096360016765823333465111360018404859167851127907310592316435351063922575053141026432280742601120725377436422692381568579447310442148112200995458717447413703852750069204426036742037200344323546207314900322301428206500849490062866000481371080503111013686458862067097648899936779997449823531532447001179609889118853447250737920215760420031067800638857722055370465841972403615941993012847663864237878430325794573206836392425011907085989793431537876601683010767834062773946610872498135094439349011683205688728404643216373978619903159988080920719797354598512430848769485637085019857674313072949244594237334086556561610161983533376647056379850706060591992682495291483441759231407469750753349294209046515378845720132659436417018281135997358307495860886002307399123394883997899244500760819326050917745254923077468243541878805597356828564579869088235403066210505873001274867812169208516296056150186138950307230394585676509164601399287455592795010836384887993781178261061379942560758060808119958778844373076368371721551117797077250204816496557490308710301991384256980911466173047209483244537375293112713844124133832829045500512374291869951549818608728798850459811164966671829274605438937964774920043880685167150711814274359254598937765527585390876955227202269885354172747065531403946885630345032072781067717797394775308717661594176172941086832495856338197696629742506163702096059245749877630069931155898188196057658850985939585258162967288009080359792831502552130233869390805273380448665165751219795426501373625430939201237459322209147234631830211713847941253563711683058315684639236605998930217338195697499955753016216698179914578610129540989857867069100524342992079614121418280148251310193042078299409606436431102277976498835620270477175531461607695149942547774018308974996806870890855808698614586340776113332385002957028132461878972474085106991987848833558564670752353665253586244141359384544775667191351201962470782659360228489190152708075299468604465052543828938943958850990226304053244150205198125480408230076782298333134643537371454224208928413408335256304733510547750266691401582519310074213431822307252742867950388103123862015439940219452674893163184330871405366677978164825639368412742211879232463771172903247934915425350314061431900274536441987826642465335694252952167906536519977088139419999308398409080760313346892365422800979733783547842400555994069780261554011980605278723347888042195657325737345204809320482869201496726313847673184213712265682859504047560252255255269105404486102082983054771345577355312287694799713677972766192427694471059349708156967351568603041032988086555046409435112736607357951444030445393838053503751029700028060779808028543113619496550460051191648032499405153859642704331333901996090975174440343381248811517877924374830995647980302428326431469284556986665463627442656673029137025345004010773042990538695094937532174632707110114958381991021388994278547090190027286548390718565146522464462463851079592956226831787741186893757361643151150434009566906525794732659791802466385790585239229496952395056010958689658205227129853036906663135787598970004170120636937670404644803576623673051794040009406483469460177920731860806599467723318437867458525753618820244012926300564353323859875377917565944118935109209688163751206519378343783950170369493550956131860134728729860665405150869810427601997875744543010561665069624604333848682333665065527172930947483457558617584579623998678840218851970547695746894696167168593174510919513351729872918481859458651176008653483263814488068812369767296980300923633758842326345323346312060195562811541147463734739706916943860290325698332444862026519476108447725945512578330799265147798212985354613319705222767430643031974085348767536565603664523172052269779372569387331095446303592462569765578382430206980674596632542020187308349747053427851330814579384181099978556256140767472835009951939832559513155990459249369246681793037227029795409590315387476137141221110062042685490771661484005765287258327375803557046161852457426496388921374077621253232647159222199186023427708886602327802297621446457805767612206013033291166675987906706359498335364197238207328186185980053498717442474941616068645219619433665611912306628416610031731088650293386980345819701693312640513168051370456735010839817490360575945396279411247640576026613889215146373826600179671520290510185226841520144052915223145278456143638110886405963828583764055948207173687380960788129585574125589654985510570500948729177621910619409504068376930890005990249308265425358313734517595318303825952640569490524177351590086400006993212931415126562511325869116713895270093539526918775434469041291122149969115309715655849645881978017484116208389947382858312552586014457911207510763186005455138139815657406758403771346002182273957866556724906265756756828087218685390788800189444025728234969008629099121990029586442757423006254226736973527176106250168959833008656536156041428313045199538148114559923848609075588929148779410097809348210361552016883961447568759133539504977246138203786901461348089441237957328144887496511947876687908654503499543337068509834581085035384729496267063773869354759720662723558792368077089062984460733793887634769107608266076171793303124284335904733805027350799399769034289025541111528731913772170712204379244287006932997661010477400789425321600692321511250449333071680006728459604548802446289581775603299468759000217475559527446734081250299693567422070943426532647619174525559863665245539993309443551069979081461844802683881640604198628941776793394142110498673556902088329435951852765274139979408169516188792807697440997554335173453852740287621184207979749914746359412268100359871323352114685971517397230567331789558823312327229340533277680484628200424521507121015302871466287917248909261479277960746728970607090549052479095127767541660332619836876408382971371442935370427794321827741054190310804635435659375075063474285965407044272375734984661591097632046375374958268329153396929313419449016629485914121661399927462543829098437701124092210153827551495924155113881009176419632946722717945509214078694682189898219339091857778516095087807713326873461870524714210397534091491902203806018423558373445890099929534431667450336900905627446744301061613507906268758858441287210652364640275652591972134901851239315614583914386472218737623121840016517203606880639875425500271324890981984774075492493950388769538193115077907866946328800049467319273299940776533886463029388560624901330081957294330218322792345115824589313933616214406993129713866931825501804680867630891310959702395276180828743216545311932093296266625493915223237231159749506043162347915333513623959871728038133631767190354733458380992368828291808327845577914294137704332188985312666333953468056179484855541700917326740843540223260947932305993208417154582281484390863292384162086696165472053100823120801342603592770383872632160255802844419153923674785810908824782312773304379629008926400523569343374842847279179743047122462561550904576728444642366948497985393130000977845858276882701310427028985514037633740753480313052517028089269184001565087345463114085966668230092305278032866846237210641594261189612774328091104293759087668193485849025509198680472706874336193004493436307584439609214123137466777324108981581095331488561745717477255543533739189204330126227184433553031194553466474618653473193528874836464662900187076435992245251870033083522233264950813373337487470127477159728111807696535601170031810322115942780498805778609386207853621205192477810946817710526401024848073015392885262713971727918805167834974560513439680887401567409765280027520630455395790688998444547495925424267436253065124181573795108254262933081584080427693241763456546874028293438136692954446957601033898929707069978323691486658598296167593206958633127772847839668694371008562974854319610080592377692482004462508308006377019628201008628207203133370815548241365505856043271076173781938618808458420280075484775821024161968780215340884168860365817038681498449600908437477909378699121740089720467319384267342076033282481424876162237646747457677965233092076630357925911238024860526563139549417349184232781656074527623201492010138724185270492299330739385224109243870529708466105931942084175655568021935960128666384991418848652788997566198372423920733654042897479834562777526827557021100095364447011881678350540489238079758167594996041568141826056186926152475175799304989804595787372779814896308340595100079756224577852503213054200416568644913362597792647477421042342392726010510022695305855055076371059856603074824095224160129998660845625608525605058031351667162407997178845791326262841267080174040544882411127737435964051441196042489219365072916074750682013052687267106846322719196435679234194751609208694489204131602575022573251734896118597583286932098984627113158957414636193889492687361952774125899252020406322075775932105059447047601532191822872238707722988764066535364763445683651486559071167837463591261714734335109938221539590358034278521016009736589972320277964981627847747275604299206864550149087490827068477466062062583916139578850979743820988159232968680415246184712682962492522239110786833834789708927154154064133051143085245417329652092910524143060988420058982359401967369948628324502187022021748758520819489702885060063414307108753897341502790630853354223231382443610263402922710790019156478367105853799632336272636190531162128472801566554982802117514385551514565161906179905829692898567226561736483229041156458156842337717988570768496329267698058838824914147932924971156944694573868974881931877354221431845545579694969953221399004731222073157515755693757747655389802598277282946769673619368578158971569017637471215658477674302630944553349711657059004861506074494802963380120836541209262848843518355629220251670389896841167591839639282499152959303159556806115473065199646684407383481285914302658290588292340092626739940582017848733820574550091624003653043217081779874803981156603058289747447040607814876964500695385306683717067345986918555765679602746253343353927704071993850301833500273382431915106584142084387442839966894012366327711954740701167373242939681028250762214093245817741146991640048864347654042492085809841721602789643617886122802828763684370307459921993770501877062162767867419123027134526291122465840070946203441546093014482873611039146551895053736669351747493908207185530847940340525730581263505771578008804410866324792464309584262263376778237577370219185832918202778652752210706935906072221023493866682899241160560420047978608342792799039524183265167732949974763291099764369378293079484497626438887570488762409991382836914920972221467391412601995792743668745382085322258745381817392904354453751245001907998114001498467069885848615280772863743595676095504610608074769422641010388216744540500442953289641623810101570247110122109895823825335663654759936541826501730363483160906364252007091285107441177210254180578997044545169097943682679825348762183829782113733711468702386443883721427087028736325063429288288245661764277461065385354559144787364407134822015261118037817017400462711414292329938422411498628215769096812832800735423752803171148152492402238948066229126783584401267237034580833447711025344744365170930762528061610401914773463517883784763925461832275604836072975686299813881485067171356102393155581162621939406105952356237241176016464728920419183152417824202012184465273716940677048123887806349907092872122428468908430315771282361602994890479298579972607938709524641588698947189691835094302441600159973607317582958355239781823990694885342893791681186983759500213032719666715099683634260360717269010498533430830436316662234886824311073020843587241005788938890017014485597342292155347074443280148544809438710840027605753205472755918701344332160846507291753016351594533419018799830417057035182153604102123814027848425531323453685690367082372902469572916173203921549922129086121889363734280354523067102067931044581962554547336630065134892559614058088853932823968953508149093822856144950508005560030740730660155779688611339619367992656359619628130729187799823180230473448659208553146094128227412852804806019214308344762760918851076313199457332088697405530033281524602806858630256515018812342666509881833076381593710073742456214814938608791929394462848083242417994928432765153290147324743648170196885745019958236201403787395851111867780342121682710774788052300627870272789111026209530421313068265814729281266288491148272118042648587511480499367448223999573133814421825487606844489162837421193784383790676574877540979429529646243438702456106891908070604097384760010447122242391446753425155488331222137685610068631311247964020910639691177359770792980291554034479374555465765941451462351916482894377607986645449187088384076096457477748452551370346920798138196932880159932627022492307916650529605114069380438205937270031802906409089037804989195415581745084802111505426996665222708383857623353741405708501740273088039580852860762252381235316640041668617068559176439413912047613252099981899524164910193425313540683832460279895975009273781098016396769804142646375516005654402659042643263709145319633185663253102237724275902058151848289303207463562401733284643073657764045081897699705685155585851516717598618532929903066121983528123290123804208475481955502689489575913477609131074668174738413182829282032194974798597176692037277558384579150937279765582663441490295959053481836387557747318132318477213383794957042812821482394922551158592051887007305195429112828529224717989383936009897250202466056498162099406881476522644637219780367501776716494076198921579229445899556177101342593131740444486413577348949375377222385787344446466615584805324664147728355645368258099943240152791548417578255967590698807352851445813650395496214488989594617283897874405134773376939204189889707245614443113088697638754042977867552656009139461094447225674109949860739605446529851008242992596873551518062164173055724820956064458974454322388456438282220294929202570634157977161594811723311292027679632164853513534289566710849563922037143169664330798044235081151129313057640248057740860329979616473730943761839107644182884583836510386142202905685028129113070585843134779482528195525187222251516978328882885786118318732829440778007203144168983838301876498790952780341226293198034621809864674742917691300608825264597247927610933528746085697994476295567775030439366996001405910420319192410907303635132976103484097894377858252852398101517591630759526754859304178117121045016024100791183971908829289058184774129658574921588456753795558270180806655484300244877427856805062810351626635418569206964551901296358077219823607265801982318424638723494551654091182803214151477238588869729019331647051783589536079674098909165414947595094947824404145498916666859743721757599172815774771081792986893168393334641377948471164871681889596219521781563581711616968486677507040088649052815827936046352415895856704033382871257451725680457330632674063866211121208708673885290246528971147752663102548717639740376807152494192651359632912311682710999539066698041596929524487188327534356070479013416402438764999903671381710620779665523153720845977539296888619970467409171760860797607124191790088884675206353978646055455643298764925038018730961487638093195347539159047212592278357960157580090946524987932970834132018774481163772438885144768230582280831917797567718871715817324102718675899495548869313563601616804119369671473132436367318587309277422253958785143595990993094328178744433585486198114223973007514124055421645127013955253132038942744414415944127633869974396600240294178638969826285159686948068493994541093819495957506350370037881320459865648597280979263221995932889707244386920855458351479555214334940172730443630915410755274971973031820493838933755710985729922148900815399975041125837803052887626212007688951964290139695523709490172134716809174091201650898857018080524642236322102647073289430831967280185419708427792034959915106994058398256340773296596812214772154946379277348873054599092332509396435269566013546878046451281715191330550501975979855303941428885241641855341054670861359331950756570280110445239098032058150003376775800048953105178590608808088456463018667191208764836434874431341113739549077701560693167365858413017214734041451875780520533738382200816199654396152012965432776563422084503290665850802358615002816154891976730486477424461313941668411796465448677090998152814382252546437264775866513903134323804135788879281008901454924064849456808302669296300337727977919489908417370138307717755125339779787849952944028574017000564609798011876655795618562011872712568100941551815667675447178085434311050054044484775485922413042598129617863680543230840164420147798424720878842014249980697915852993036877893769707938580872521241143911487839984531731664606788206950453995571936775808104028497836699948221105624250342647454856986597073865333086713059446084199253212114867983819232507580524251915802784952744980413754971668842169998912096025258014284714180996993026433254973941136016413247924597919090333462484401086185736377715493939445147648414104451911390973771478537606596645614234251395535365835785189434986446020627403608188151497843530942979792626178042522311298562687879465111761084010899942917943388050601251175418847988860080734571432093711907889001620151404237038799487006358856493802238967728529213434935868272569164749598741385682710821873619098062178750937138585500463015559063057666189174471130413051355830686294879398145559124344106294350213189857677602724327896364483744549887435914946364105318559458971884057496279461058640900439716822317907063058232560670483640734725631667367584826297936428221395903603768115368532774073826927177215860794174398510261132487194078312678400062023482524264930493374690153119731633346283322377125683282835808228646002505525038643807677161045632321321414929044042953253557083603781895110141241135191948941926523557158580946411280946917526814177161627750438775967532557153354536684006056904550157176740728935579059911967607541773760878388852030887472889467315175290993447235906328294299924879967716434856809299197384126789013639543985561071238349136331084297725226421113021707898277860783590130942913610272351099966051077505236698492025636587739840626628273237198068706531003125613355746050293588405619675638549534067800887431740236723472326103293333537817911048485557910769255008557890571465270953319062496526852649054226986351504961727663327417021978658145281530188380844446747692825101209653959151813796817216969735181865971286006263345681325897473997868082790090716715943254183176304597177225539139323029791004545823542490110956063887189854417348246777206197217327015674545963732924880680591262049373499706426588115883028201785768775865914416377935523559477210651146218264747545206900074817608018178851991719087618628426518325562384769194692532380143589041951891618568633115488755391118173793450490187194598627183939071832117846085214067431601642089195433006712830603998108359595791086416026168128017866802097815533377809812880186951486864271160174751965442686540960160968833418914046897830578558853248229954043331538469687910724345565750312780834060297932750831714273903259180587826150031595913519335087197518585353308002792266014248054286558014966100102345310694332549273864799868195167715056279478674105462550269549370978390179185892916790618550565968991436892946552019871228902202194895053556744194317898014204568175276554850669583461319445565124305536577651093509451129795548165198711319283627374214772116584132495366758095978433748649713705258906313498331376902871393499332563624563447114721605263871670729687550157621155664269654821580600378047168008612343572607070702858088386080338745238028463286995387965616566279386523388836187761560400275913239424096968899937382906573054801804360044332269948993523487481591395131682421856683949967325052140120109310508206634546103386714665299681056610065966921929310314729443404664376298904473598127679209605862605753783493699416709932864156389067174719461537582284829875750357507222202865708689919260251556414219368783505224637306731273173023799921607154812313131573366127336420442105470967779877414791959593638674234616878816519160354475638075332373478797630714773817878978581610472878878772383938037472874776365789845544666507015798257887759850111911736499102531676809157687542750363014581428909735176771553191028147338232632028221957685759009016977047489716946778651253669638595073553935188256491323720708803098945194966038666863257538887414560019432812579374802214432328372158689173141735701562332119931285628419668074467638819623959236665892411656799313702264910406470310321431347625415971932877561975370418817751051225835933569596861131420615780502921913038547008462280997007455965055564265831913900349566440745055832977458308262590087001247249697966895216637080233177597242926036244134816205714336020604155842190576813946152139188399927764724355298859856505708360816351317844480047515107601987419928299084305424802743349032319755511068625907996580879560403485467920898438924039912305497333051333101998482839321592552367224510381732295713703590576145284908467800656757004062015964417480185333536148382200599694797918544594291977741598142497444439829368273354689029437040079562099381084076340799775150085099164261107203113688678160674152095761898965873225560530549420911366363972279508867451244593413798268568119259691779167942946722575714840086977973965065189656122592600619636566381054884141841802948987705081374616666547717588077686918372134213879852638368360711995957998808121838255096702865394603785028025631966784641420533849331612633089882512991075954900680510865345364616008095075083571934988912230240787769081433403445200831363410879835656345805119116245845284582333570482442045223582685208456813439848838697570099705574652240282963115509371919906059480164803520939865079383755666530074795053741428843306092369830881542867846551253351780317557078207934402755488297851822245141522126239645769679543375781628927107752938114487580799584809575947999027472319586232370133617524905893547908216318749149157622029112523229559370519186272607814240128172746051918034930741582228949299626730578186152630462564665861730445089522649066731904630819965791236490972220409288263017482166124462998769412101062685224054945550998888224957950593770732617196523106678508094000041377007435377958549736192121833450488088845957945231197357491980675783074805796283208114561674263835521129384954587622805939388383122511260746144882962503199826188267695324868780466318665570198032778058385674827293569139503892814965868924027067420603216501482927158576724711168261792961151210405889347163283263938822302768177065093463422793956566703153302813504893397536955325239842295349314542070294289917573867116411748041782102499209673111665382154527892803488868616835111109329085667586292719105907037715930014889368201203102407354012224953069993678175093749895291722019464558250414934480890313953159018993906238585137376984399405885904080744582252815917931909389991919364771379737897231697317568872261448565158690456528770779444177348056843309068853355269622885419280545019878941142954702725748850568494821311455075649222395519065932785299084037598598298061737273045359835610518156856150884361515939493329522034078398664420354030782023550439882444512736325489840580065612936073261270540830468756168449332265785172861447087033710302739786260383629071858682132374568938821438537005312098360519624396595412287639776696716023518702757006819155523164765772698780777994748323045389945737890977033349042454953247783318125439809078308441067326906927876449670723876975084083212249705627619647877209205043471557338712619143990826819018030099027499496388107799787752409461129012873147919624337589382383988332347823719234165344983288681663277884407810300382136339225806629049120388442203601019613892918684365574766031658448876288494754388882121095430656423612796776107268052139859728446676583309831934537607380002835320791816216804393436173271265386762934134055998275392349411684857652941547959063486113457973845838911774677373407929322939653800567754277031778698085380171221525978212193409571585542722911468221355046399455024078631141661363239196839402405542750528207982310975989135435838751072061445557443342457352551888425319746274132352178590047377561390428526872256837318915416741361084756235498259001517875874079424037358212209286620886934107589200931010226523834945048908760280996374360377482735665340461101887039521566016934965839724637287836080269576472723795258236764517403134006149536243717576294359677249133747410506755165430930577738011871459978511046541281582999161173033443428132502299933094286045994292122498048822721184734221709373732701078411233074482932956218896314099789818403153813505607020569447970694191696748709547133667931304344957373883771072538864642599953888792092198491775915650952147252897432410624312546035664630091907380921413095370747275725144899673203674643183206770177056916643410997134298522744447557295674147382427355857169520363528235686286083918285242762425890299654275937703670006293728532556279346693639004351983830503382147511012026996131116567507576032512624134463383492402578080476609351883449882540752873131392202282231038917649274102617157116854286941750974051947522863099310373790316628537387599483013032198380738571309877811635218004794653584964424277161509535050171035364768367482219318418333302188853165835224879651210989096659984088672971731822092340930793959743543809830802722717809635758035471548578943329623793319979316099241397731396793397487711091807232263352488215485428788766287088892628221302507570416552206827738122591362761597065614245708764963229271887840471233659415429904834854703160184417589086287005674845643197378878141894620133100202735909322008254335461671463832141493053215032209946595021751911024373946257867022589701383227552450879394652059629769124606492824259953871651615004934563362776121202857072391583139560268305122977202664999871106861276405063547890188180757787010464679872453004930548946214317558052451494045667068872273776437895650533297908187977280677005505945356348446322103608552370152820417871413268656140578616854332522419450889862625494600183820926511755177499836561532316663768230508454122554000643979931716102765920419161881681915983222980999944225773228934888917446691188335338369327668007772413193652914328289779224367417270437933203450071902921472922524523512747698980039383764042473015425820296065303792920385635096273975893758308611690381218623916552656855163570468374449135053107884521485864868351450586691953319530119548840589353482992988643979379256645071992199166183318341958325341034247302687255161175119361809272098160913852968046308472660701741323333166973034472141252095289716824505090341438820759091888836273253994456261549253676909129050907905877222756760838416757256900492532674195651219557208342747043267043817041390702215143402997006609962436625473625712479751691046603990480999447232923556609397386813843979692829276953892627253418304648765445546181323913094078170558911091686282514078840529756015282266624284012669764385567665780553562645855795054253851897732313906475162796383618217965637758893769195262471320678855228214293114143825639446037722625752843525145729193177995922410479534915643839701165982862563469401974531375127570241753518902602865702186786652623673073143081575251567394933811321405032568071000255029006670363455783564354582934864206955772905010492556710455470761803758009040827241940341273879966748310203951104229037464858585915214994574017472247428778725837332986931717708480258135442164113926421540801462860670497411085754126192246821916746222380725692529271334607364647724269841386126598075117106546948052656006201564330169453406016564506284720546232902323339682576045692783411898494021539871236391111261398335894648419326819855661231826868249449528804524143058731420045675452500467468471233323275214625945394369723123317341539920912247471995038973590144847217112427757898849844490512853702005880115134706026562783972894617278127203777188482891436755130993819001326325429126997640840611585510079678606871639032333867677357038681855754862672944099913134630657365969779170242215539575229221317677467969336775689916819899272519791124312346959349924606885059992565389549818705658793552802062978097483189994976329982081514696533533825840417211128728356680729522200702822043405168896586958663816365470699035922175601108660501486850479733894092101188370608999442186056794949545912060953425875638232241236406131802135876673138713417208015383909167266221528142836658383887930065687850418093915072510848570566158919244088029639791849222970145974105626062323258262251450687691039331883964877560088263906604107288339512486001385479468946319627737144133650417348685704529133958186195424614263649746155756626125540428326230592503437971690197197059231933599857002706741510652322417403774529368159090156498887380702907405421961797542741695647649096311176149299801431357751810674028127054604357980488411214601147135683124982076599933787513528076978155166884381564197666257036271041167402018888662937764116891345109866172546512211975861944987760274394854354535427935424697603665977517935525925637318026683391217199795821190946471647028483725004542446319908569880258598794257633006106898617911147409968213384098845838449722901612604927621763995196620395657055503232342629823586867354633145861564369098368765098450992069999546534613223725025077700073090931350139768177610302561381784653719278257300392705453938703216146986296078613324731103329195423034719172067868406990591662682959959020217918287553588154581561921236599351392110395307507229273676290204354471376923643101940973044614330994729816352208557812652715786141464894072929008833181697032582675898531676174393736316556660147976149523548664170375931384854537775541168794902959675869478500836535361510719924933824744096080174224022440662604147009532183937652248837225856712575905516636135120296292696847924303089976475332406281629121380226363200801697156849428732945897080694879233272944518643788596648034882873751127810077534377441416049086739998237404301368566427477073051223277187594037598836940310608357701700859388343200993154379626543950748413958315924289473865907033819615063559734636842165585193042697316557888300035912361580329434975541638913431353706755540408176301069464285474497999703171115070583732658924249909022549385964441054465727537781801953138239157270498452707757128645824156349795020308044803370717646914304235662674110178626273415655879504564874900462623921714514317028577703197611239309071400653627152964290132497146415680125936026816190022162473354560744606653256566719224488137323325639288565806439166777192562694970094951426963450687644339369462663804471502047042137425640156907524769486177205209995141740774532921908919457293894422772635955325724775067547192045458886752993191713495090500199098915536555448245236874611634422509784166995168593296891681131553523772409851557876722039133135664756048048230140971112837836271760080254270850765126137611113858376699490901855983081321927182154541092037583103000105767880569708435890004050415059619954847725409255286420176671081375909131759217165158350186488073575593034076456218578634770174304091949100418872838346155598239751614254877855688846090210260091640244318098790826959154739072521590120779823850156865951765872251203459543082290797535071379842616235276822764878781525313250334333557039176275024778569570608615800230748766305667206117033147713211764589345499647741129092432574216689296013965461207272398400314875542840643603503051086058105639144754268777772292685605924741261044618715450858179100843209009084816419180960816078243970342353556572625741844980818274649763938021643281450279076193847763819140172066893626067435001201537678287886958526246971904340117960012012493342383201787037302480883402526444754647618215485479884465759580588493302161887502392296960895947194618289696181620585872587482020384918727646536793566065255850538565518726622026346545435226141803898776920594611711588690310276295907260778928136680889133656615082145295169816553616844372483376088786632470624137349573565082767786783258941571126838341050490714352796100914549663670216171066745354698310778031157324983502839976525225622102658228830185711829386711939167398892849596107730825177449225854178086101921599869156286694167102986499712392730004313950257470258724869715103484826471719188540970959400265761220972554330701830566742503834737122757209335327112524505012828711033339449683072693702605810890411890967785277104205414557028264537128214303545720622486932188601037956379501962251783236291598966668349195248639850348297235543737233371368179041164273157158788166788898586410533198662587734828040488407187173022707419848771280652833552293286860614446506782964844388026964013313763907209629604172356219492227727274672148862509088046431298050727356053954709616783361109748150204085432804475576219746394830098285915659061298595676044506848159433539337331483230984721325760449219136684713489014508550084588033451547877511806396380422233062887096296762601778427593849010676310347675634593172056766895000717821234794155560716386781246998657018794974568921106026554607738877508595964730810279322315703183400826466462116002918417744096594037332706395353800037646064875167248931267032894861962275658266896503887530068775446730171708035110847690794955942300632188517679803937018787910119299872195337620689854084541343978450453440911311396717468429113609066192730949950188800678315543175696323772320873657009279718685127361877510132966555297276495709167645242929738379489032769649536777914877332526958903636587323078213116779729284964241221503072751811374462841759070618354233586947408771856842874453812500267869310401309943976410824233704250488598209282783168922632394464844731729684123055452320594854170238169875645602061349031426209079247214311245578166936062559961643739100369105804445098572091294038057140776416169344529554966221100033800817031691712524387835007099921853286201954841333672843086723256983362297556054348125862425276062154726077717735329570795123770143213471290260689069873087773133113693898440488155489422599084655322048146298367028150365355489296820148914182075131089972384962052431665456072566282982034502549125219156810769554265066450540936149883837383600467572711924780783325592521128884503150082974800493798563636814058573648578354660684082613785016087182259432406951679821935782568479054698882616748619586574839132956846317844766077448750455052924668926044909836579625649586931089559656686833448132118997159122262881818544925795573609505457170878539524021878264593423360086146762023252560530945737256228976550353484731613728053829192199519473544066977743460186122400705645444530817947527535037591871015511635531536145331643664542923514775076303196373821705867260306553103110660782351845513504943522708978856800594792967993057338858860921775974333190183952316267436967171934558932846590372517521622532552818401662157428981207606132685143871425453625267701658674783012609183143342973278659401924441508384464348730480656867716824308396825892358785430399810545312368223531913422019433271241914570401084312564302564952044981623125143657690353645376014466097380414141811455933619788455637620860614589949861294923865879262285920895461171979792080002827963508496515877957012557673815246159754521027592684220819601922124972961759268046236645985983203712303496956158690386505741382524927265476801287067807207702966761522935777187445944167298916900726389254365512896525622525706859187464077333536322761742695097334322037663186453452438468158745858025424757295441334130544548653270498816467348553447416514430285309662387190847960682235696361242068766101118581065715666680510109880626774400672689429021334899480607776397539146641435050456177282293979705130879863386691336021443514973415123446746691821180592201570768286079158985787970787719084748019383367522425692886159457781618804664968879349426595387464273333222596611856425411578094494517433999757348822929068797132650174113454383187523811687204778427298533130561944135506293545721271690793698737711558394424454370619049072946596905686572841893161389707149024639902022963619663605539683749612301575072176801394465828849165813711587482897677958776744101785109554876604729706332654307734015324743917084516767879094115473909820373327264286327616305444392252353322696251546017301156394469756135334124247736107194697704916500733501482770788395450055807489105717139844553024144021715839597524798097304495686283334073708443381048227478432171845961339206436123782122305038666146358439943146481989025836091970796103910844773329683297515947038925001772707065899438138367201187530467430495508362793853512526973633965820897562571906630793714248173184341795176474200084200801624956838142243903755673360010676479031986134372723056010415841508651014733437568426949199455833163703499066547423712389493927092124203123145089386720401882507085150265737638238617839082454149108899959712689289077766894892578561704219884675776349614492650152096026835809497699203964121999161991433169921866764798534525163730957612912527450587380628882141609640344972300642673231360594065363432869268168802632224713859471049600318426161165716518862993270890945533035593304977123970362724792448258996671133333362695757960055002827172595195100076969116207924815846538274860209958134821000311004941377441721970568164819489955513444343632075214322909797544356629809129993822995835224758797171694964370408951408208318123605869837378895323429459771949020565264087135346554361160148998936005827664728194401318400253655037237687778905478404188952841480319422308000890574733514187168814525946313196490287196751473101088459482064148792846658740523592572421467996020221983979692436340657137727045154121281256626940065100921986820789100574304971439072568090467534923590910189381481996622578270550896970836618362592380791587477904176391980544158338576229136038391528966503553263394103107037447243182703494818032110860753155539975638233752771558234351670186255422184284441501526886835444650562148160170158688610106307312234240218241434790471753300242645254558629868543634478553559915097489754074237362298854206687619870013053278768083924560409095359897260991358384643324286669165482634144683047880136795543097881139686548669170818181552459164262526166002141461561695316696136905040292779940755949237601861238380751413975243667683899889196077858533643345374625404509252518161896522689533218451530051261197995153763642491739834311923819734314027082453194051110355462915459996894620255549285029776265060564163705835893445636102645865803603974174833150682550317706522520940661674212545030091146064230652583824484905266698213527561995263538521210830788662835692644500880301818824345522653299166582745252115216812960589238950100233881578454114950531713113278079746204746826065363891067732398512548339876019181684646723468984121830088258323390551938828159739427330805453930201907398687791648422506553191148555582404553714394356186388152392327393539454756076860138235510638153706987024520585364726502661507244759614852058507536940820176116041771083004841360320131618539485684331153355248720230163879767037919322353825977464604227310867337435523485117160324691799691005158041877420458880049163161425828458072353081489690647256963447838407618955384681443578063491534887991949551783899238749075339790475807722575084618194263445895835300336435438949440416868781223261991367114457074374232359226640643701965056694827111096779871443217249411318694195014056019415142162949111026729351064146774854956640792379584494457943007523316191883719995298686188494828456741085224090061318364435157677357123524939274202521456017276133196193690671960448945667666963251103736429760667424420905479792404122088891388537930792733803414798062065766521687741853154018033177976055885569163077313248325815358878319686486464100306498998649206764863448415801936801627304773447005679150616376901682093768371544249735402304269624796090275303104761600707653413274183064897015343112870678276452294245440804595234126230608094691820298455603863981842245065218176552101055469674483217362383166431381965158005321976165927182282517017980535564304005995201092215518065101258709674507863404979679304139464719587832439349456056164511285638032769776230089169646387509947196116368103144087418141493994680292305207714365295305478579982195519078496961671626916172393723600688176681004930609425094735527214206788453795763957682262773268155147674500599577825829273988996551493049575261147944534657173719750590419156690704370228230382222176057475987286984028673273501891697701798524311203787836948022243669371777772207193487335594120015670461090778766188497296337021566313056770344798985948475653064174787899300851945849977061673959236110580837731218813240471349693567688693615045137348040683289294567905646918651993286327581364176540105451534631847371501821123097853358479771253918747120930853443955982013095324115691900617503205993021400497999271353245167454416992674122582540592727541876160079438905576460280033858220909231042603225263543660074897003258644961080088255633138359731911610304003729225544042665811910424998629379726281008109715667693313860779695968247400702581259803062226768775012774892930742511310205165443019671110558705357391551337393825408340464212058001738666751051748666202562906906574165467276014881518152702910650566203770531307264664773351354139789042497177744150716713231470108435620098959692576170610569377653929070667911318047273457360527111148266958637899604058653296221682856644976962478346563299195171390571373881587758989428024760159120813025514978651720495703668119830111790258115643387375029041804979400076061604064326419842354504143971776890148307816600405980288210414554977031697663801227365359109481766692456289642915780617921591472592051363083057801880096730189401000143965480939560551296938195977211516105745527941967849962499312645442090536377215952692683918306287773791242513833634705195351469242012255087414316787563563052381012865266322688050387448959029202323605100786470418680490454313296279061692090721989784834115620755063260921313124988964633226714739332090060359454333691289629962731325486420321920934737861636046744705053370055594228240235506036164816839788729404420006851680054971612873209492513092604387952848316627304527349377927742405018725902338553770761940186290671172920987653806272288401513457253064594798768961806390972153573579706376080569399874311759493820627332483231029216491824042286015843723719472656991635924751453681243401149684485052396883001823870642390916220110955634618746782972946256226752767084076977878727501217648746289598492274198559636784241374964404163771468473127572536373071989891769432278443345501605038197374487052687764174682018244401305314614135641911167721620359449262715565736988778864823276784978751237129373439003455928166846692399251839752537358918263092399806408593196657580749114867918792399456474489413616378306763552842924409268784996446269036837704452096434122684134882189882810247641147564711691187023003896584760833155937907616775168292290843497679647384924635588336357641237860639951590049751535627194377545311009211737548849680780916485728279102383195058063189464103789413358541360923451325314779692916107899113769475508583712281370228256469928254173039672841822360975578477509168576635324271014367269902480077724367931069952051353637999431469367346135503786589673563826377008555926022342027974401443832526880021120393910197668533186026892449750643068042308219304388029115886945084684057050087807060661854620465555851600331616206564802638163636486018641669843912094510679434467540860750561612893018158938721139332026331596569668875608385915805760314886964538589623673029379485395445060907961188417313293013805033005125760529401515783337396642677152758588879526490693065117526356129232506074790515947841201247096637569017743113522563479497669019061759269557069219820578591943025406161512781151537428376536906017485008006559422846915547395970292142818577648254125951854655912807046447550273415219675985400594045490824359604408093650542744890406542343894048438309908504145935710575539115699155830507638549653565363718450546679988221264270689311506722301475838673917879925141591429992306781800565771718664909049314817203019520686372653644461417094311200271784836609456824530314540784845055851104519340214180392651956108026621902935534895485976930890892645584436968117548431931378366514493248944753572105886597241675940731191482421186230406099632614318669962970440453843853671779560391537210576439766605278551607241255985903055742544860882443701144387856762209679797999557228227713314982509038914388620154755541799773003481469999436866937321956976880073251970217655096402222075318664782578827284266910246282377749765949407368781370757753586009247917641991776419389923624140099283837582356797004081879021277579114704695836813311792766645459449246509886374987389714719713905986794470926319267706231979889029476012489926959148071709634673836334363568217934343187205385287220696967641785311352221677419454863776211260942368073509075897785774915605327979671527010492605696257947083871034458631517118929925332134830625927264860840236187463803484107639115845884806781596088720274694777535099691347755343367968196010232708120358398606527199613380781559058382020252000931957988050089197893458133484330056647336281535332291145571465384583031701557937532792821397071760033848937947717972200024759731170986223214899497874543297495210670020455045570977345338099952931013966965441286734238202590237178622919033734171608991242562238612710907015256777731680109193722988350486152689446261032962106136048150063700301822466182657732092981412273739908365300900235542092584765518092781946526667308096840132364500611021354864033739757506094467237098782610432402308494963354365086430395547785214101591324632315170122759985187700680723143789425434584717841266493276059209674529655956120044493236240377023714392380235010175953406391940558347139897306900833256647103829195027846867420686194459174067093114041769573082997552690939590364414870301611583222125757358030732366890212296207078981279555799768097692240939681924814943371790582494670832551875597596282567227773691355280141317536815853536535729004086530356750024783086452477580509126207874989922325364503713742604888385738685187956105884878207317797250622892450998657460997605909766476631419193101864503958310002538586221225454871856630878375879329665497076792795394159604940234741312634069077040913380291804941216238220979363431555006935738882628043281136119441518456504153605188069737600520463127955246543257465142050625394081686762657097980749648323393532326312111270781573038603803384463126436888327620494478080618702329652578349430029602740567198207397920572089524306294229140357081465046542314242165899751549107260307844229714913218575005922206817762483182551854573714345461704081163607553329565055913628418764297495190488085428826163341157898099747736421148666409888907198509925698133240106925876596177184492320993787954330305378801472875168965844647478886783393733873810875091142283773360346175643671998474601999423494551750794447240848730436719144187623194689401269415476191007961276652320097340468359914266151640868194617329281108369697448587970122776729003201247638900464955688840765191346007252900769131026056955434305926529098418492768068991839500209163674649516958898504649953896360439178882912158869301284381820158193796729740534683261950584780582564110091465260060758524765343309391764893727129368441859275771628987556868159622256804987764874807831224352268845557462546313207285750763534118169079590968465695217314559002858492529532191747095414718249879510724740239759381191300831885346622268030675774516671587951081615260727721658048107876132527646060471088455841704064583746554374032645540887642628023173998734589389548870931375946389875423716170852572887363785237533575182504211636459415499909563120054966701594124348338567635664364103172624437096551707197736018146002347147408799627448651062117483009456581335131481399302119560001499349343423350338630772988782859315315326533000767258713225309512426182082331118872989107003229345131133304302230770018836849448960382753253809018390646772959920123711677221142548216997860731395638886118256165776778566203997621949100674576429459971014434178086340344044257372084010057867416773050929550341778892556651331915191955783574469682505751340422803087984571367651965635782111045299849701849333356872133480693423379439402901260609843907816729171138271164811984642611436044781683669247088709632247261538585322102120173127325872330809331235183015662736824465891111226809486073187688474160645878747020214906914447543841599819704884348691621496003422628332873838764812786627938220091801561454288729678524617568817758202153116044400559729787807884023478956487195123605231600277896896076036002359772967109739124101026302160662113780539736407448568580766152620622671939536491554697579372975188561662126099556624912935325638442960820766444960011670635762423890765113493341348425765664487863345425788310321515242429547398926741544290922012716138661970762723646172216794611738310288110029686482024923304347130148566159459110097735369295341439039033809260960401079473127375386685004215951669719165086011980598834602138104701761673576999458167653310747192927877004257452681465963589852162126204140524022325312596901056293076251031509812412607618361683065614199674278596071227488219893011232101589577867384343984004444443564634855162269282480519374199820588971016778087796927125189428904510305296695023571774202517790389653092407681281090284131654483143346788794398242344923864412255952464389178993559122486430920852745001834710111484499766846905663473914055204192934173244607830093170451284493017227981148802984601087930351980080249785446524324988351744761190179110660297948186812144314334870455872186368782058079693405964734645900448601445848413638903765450749428180724504873596845538949737669444330295107505295282111461291452824844782179191642457071172775200512078988728716296142973572046546859694051333450653987059121569174137792288807358829416641258935767381367674799544368919462486919651899308226118305291103607544651096660602859680548989181444393112690954944943311520525117882301195726513593706556116100889853550935067723493616950856126178391867574167273188940814430297876146170431317341386104583918127373333268747611786130386762954492919775898727225656818436384941834944184009039273864346135911669113235220968229895945205496995919500317454659800221381551420227147854647685893424568791943462297742457635199177771887106032240967071864948165332153886747597192968837129270362753398497186331615891123695701073997254348103574232243360996642315328171496931592069411724354690527748621847964810393772748404627932961800275239349632643775806525199963872624613434144249038546787158592801042326107952273552349280988126678810796409242192763196632583673939283418873218139856049474005129463022301334612078671053844731062498284788461838568434418542116836256799131718589153217154458670056349837227832184840676246440188386277699606561471917769315937656977243070871166071046681725749210649174604393442313993050288275825709846936805077924115060354094166754712326506510468411879935286793923083353172330423577352216946043271005778020176390794782443060883180790579624261166955428321003860299215099042066167898012956666759176549348633351120664990176542084017992133789470749934687288882118486246109553701526116698288894594631436138838734411141717735499360326503850061662993376268644024431219327108027600479384874859020065175533064772618835263439161424494421870381485914591086846265227440932052550886485127716053385067129188500368455677327301378044140140939991269539853415063342224476849658192508104685494948188580740872723329236636378711281358462989483229950179176519693011415454981838767873586075258922638117379274747507518487510537003120997429595921801737404591860192827374050803490029937495639008896047365041745422590891367105296563345589361656460950949850977453545882594445982031573913547169735155341132489634646472030437388236304818445060481757346870789659258244957638755829866958638111628607123675007106731084430084161880041905691728522709499095347279343028611859568249965676177627610802730621646752598256357555714347227122946790937925835231354260611636893425988861862799525673674281442142714735420247258338071985618483947510398422325927676339500214565807848394308842023206058898496723067857823355247830305695335457300840173009352623164415535363465143439756456341566508697927618100192407323472188125303691374893696869041098740270922354866920214162166265619617772671287276186912181088119125455087657811611329603892200178995043063207114249020523049890768834402164053199831688357728811628762073510645612400593272348010674877011263106581958752205364344906601412512667539726491004814215362329302032611269862541972389456795139846807145125923249919110501391485153195478415783827533806601330188329371135832142336852814411086824174292564559826897896268515279529444042396235441811475981970684558818083085633510831941524351088592142731526644055629998543347940386292957356949658008233728004613032450155852489750122325497792170134224797096889697580528941980234923930491302945761763783125794843837322464993382858428390953902516626726204416916911563618768513358353031579074422669402544102710263756079937460088367946807806273107875837141940626482773618451338260996690601218941084208325570379081647429969555429531520717076586056240815154839915337376213453160341345493188989972814793333555621341738299637517390475043293895362210256058704343802864755901504188812738375305608994493458206687504165720999423793703174572249736860615258513500321544830078389501013479804301908412344900439005365790001018430417709851388236958550135133305954690024782337821021268240648449539848768064268256240761273286629985729085279211746434472242464683990851615082775128220909364201232744519972644531290922715050415486404739457160137128836845421300112664090805181212453357997486128460673487151180732284106841573466922774867187495910999757378174071447442102085985159720391073707059037055156038409160263072705222238812250654399151889602681544517362882450627258294339938930675263481271160616974852717410197718866859514793230285643291607008550596578276924873687760646180986830317751861157464533101519551407462606824421677515606968105301130412058802113062182464914525450823992638568179122849216762211978587420181548720867781183521724846156568728179840896699758574870901796886238665046641315661513650720224881179602369680288547701981220227946673696403136682023069626442211668518283877593185563651162415719245947775313961439034184868016965760968392405434107505090845848810908045018215101281805706627890984392288540516610161633916752458038700739976438858190728315938935535943928196827706983276325533342530266638448187857857011071353077700777289436989547487443460458240687343909587117376618001383305227422075829302418319656105881000282125822713930463369002912852299197395905120792715481352985708883887599348587504016113390468644495227104092104422955423066271440614944920596881832918591802740384721224076053102942128555696406568163243053725916385600466781476236258002241222847104338893322580808788434255586474067309605813769551693741695956348276966034059132945253269351411416635525314539167047493400303582680662235986476425464705853674509230518273529171923298977568719834023827659520746237469097447503172630106974724544200905248633031864586033761994454378519723720774599696866846857469302816036950962475072258003141727283393911810361136285907819557001831380697584547768823161852440332875054079855479288586428029116046024447242109178123898160382024752571082528225337772918472551329375908402249380835467225982266197622382878724320811699105569239285616342225312663172876151994257111409677513496459250457474995229077439109758993975034284238099106577068367417951045652009906924684185172210298221518480692572503194266352743071877196801390461793573215348983845936562499394204892580445441813913134696681843434473541500727123430667454652850732802096709528634487511259570830980132748161973308066839944777284917806244839412721549615319689674106042328157741203353093688275872387079316530724100959836123896805611122295659225672650458558590013302367104805760630273401253756370347714542168836621732811262468022952963959719506366625966259149878867534108266109028743589463433187420465018859198902136620157392618928459283039509448173036850136302575149213591474846038582796413070955625385502058270065312846835307306619056454367457604323660343276129715208303035208919759894191259971642441426598500950313662965520370302447173679580749659013495195666496999070440511342130197751322555132102226445241414811593764880345434808495260566156012950533763953446323634452832210163887293346812637594658176275645449263602357307949231171832696198627520214257835111598933384014656987760831834251752576796163415281831609355606048018198735154367947132597827509701282835987031713982831794801830514738848933109393869859663846208036703276764407181572603618277049012790226106110897326088934954030273028122390501547313319907198968525648943273450189545196355263022555782393910047138799074927274277775124400792851848914528765640940638102700825169726645554638860020389956988198250810940393910129120599165065357237581909915508128614272430688226284461073629213993345854490839292597226884252198390412960389506778279558647641823945583442633403859482567524609331422465692273090383461871554221107834475077251920642873830953518729869331316340081751528381544149939934651004243315700603602926047031514863557267015735885743863879218997587569281296123755424163265944286577315297424235083372048570649673003641597829651992062547947084185607597660722173441044599356702836646841747556372463360140924161422868527831847123137466549930324170337073698052180981484467257127521004197446307248880589718968329246030990466284409783052071797533858316237692733917162801308645792178662281218713661096491261671266766375828098960705288472828639084366292489439397486710797798334806645998318570005825758077499636330492027440053197118710296247802516004668805614904695233118798239098933414789832158204420384220977621756526552504139233541204630684829880587792609524189768444798093378897889639995567582863313461068792640054601762272357427353325143012320057478882896369204204057424695615559236802099402329372883932160211773389355708624048948048573698525114758289884856731330789621900112267041737347268300368872933093253853803803160035493298464034446661894156999766594226674306159695825754016548865338046472488823584395048181737646162444810135555484717446023207353731535592741687901372565205230382031063834852615755970686922470435321261010919354073103992533760006896489533464402381332635354084941780875202306363696760510908223833733110892217531402148961209071247465962481932812781864600405320558052661029314857832180550824398597176939994536482298408777689346244693692071439919498738457323719186077056029621277844132441815214902378313870216171318895603872644152286859613941965645978889505684615323361909237458181625899848678177979888467468576527327765597123055781590665645928294040026534990653210055393894432842142673187959342249891916028006220792345730051828966881624749920686360003394574599493152683878756525389715399201505705244273041946174576665120506349760923504214768008848106022747518426822523839781767712414239102451384554204669649602017709979573209252603202107197796930748464309175856122343421693840208246917937167566606206707039047244644292684093794242351069145558606595674855468953411093538702077251587117379681040754513950137463126580011037221151974408007379022214422435740116217006843029563804845223877423128343265402952106265091163236590783319582082361203081396805623064616918356437199276048336739640866715218539503607328753610968747235044583982325287949050786629269939082300366841046520462108668603091352694136342477275431696398917211385223578969977115390995308197552811384912171475681389683565842899297995021540658257028452356018232983817779657300163053450028860240618609446821562519372191667994842307218420217210735850376710098154729509796349367320860100371102521459644670948742031587791307361871917309972910300525692990445178108374800546017869155826876950267177827449524888749811972237130470864039582607016127599920728359359082030150442536845984379880213373500722075721744857917176432436858390519390210112813216047004700126523346437531432247899620480819611882805072241115725780539005911089020055525278075885330069305656239520625354813146093512020600678176764126718192082077070418829240505502195216467249662435242822321038863965983982207772968963103862092216701997422337357501124364911735197351527056360890080853925111572125226199589556741173666603220883917514683489181596693946955757605303593196901776234988653992721088514128897717116963840960422562584731911214501467622768964692324218811503734334890444090916271313237026351937078521889609067139721508869177890140009481914564387210331002134368857616166911422414589797081457757473992966497125475587818860824366291267110936584929750682208588112561795557181513678061288242953605528946833708145151735562064386655416412059889315055770578325420914992902721815303004657302146736168989974805643466258510679633663642352719744244803083117082599137572884459026132497610518951700624647772383910184033214109408548536732961820861268313403565558022804379661071921819966889325863881090957415526472668884252289414292648801098993601447634757411140076781139574799783195207328823965237774462320736408390263955520053231476827089257238665565331432524932114430676773111878919537336556519481385803070651741367882499876749830746641443134564099198128134670354005681458167247016504833445989370860669125298371042596250941932745510532461122182996294969177177437246597712279822423831306414674207525710417156365616801698229742500538434449112089474099612426933405508755069848735144175799181987784531832052209014646010781884139485903862159803930119760161327162371883703359865655998369509147651109223794192569939079978637062005096260779631744430175905116214754300418378551538920862482347313326190738090759823661729705298847962973978750782032638109912904476001828730030501333873423496635946257061809862493683012074292954915075219374084427997361531342044370916018472177244684308283811645189826226062336145340526260918491023833667686207601289430497196199651289307227192125479750466210386951172127310284706007267147902098059117944169925066647490148822747299089634646429106319150747663960939291730185122145323742435327878857451899979989901782087630198771867566158642925160951545224886017146406920509203096705005915701681713803334303398275102160707340702657001131235301940343162601687746471879503432523036422516944206150187972217372651757371090552507244414651837996161701526525134366491064849497176240028597706875643741794263643138068528780097756321455728678433918559037937788699216745086343996289435298605957768355076405526664396267959981262900260768978903320409303298071843024768059609537433801881079211509979560380743208064638089471129325654273948054714636083173106866317496236270787965602122567803737418726585440430877174086470375966610482956186165581573763665888039044966980384790689776644392845483660152859541939068302764682533787956334664375554963832636461278435108936512415692392525837824885047277879274740862712763338576846319368004639368203678224684441047281346662015186590798980927273754877177130288009609357625188908056304507472217406561994964040104392443268804341927405101469304942462222170136061291202083198407362849739394006543433751756506780124014904252539786450149965575885968047906624119097082681294757024180671617583291750025501568955306189492068898003907215845409158196244454153813683746671987360151324454233857634587785627084275273209597371771180321680860804834825130026017458337202544142707090593423889554327340629115797355902586315412300966786715399484637631971780091420321683389701956909575028787036479588990247951959912667966971014680121240629214216079249650595920018423715361387276932642674082840027746501404264179505531828023202400022563748854877601977206347135909297471442517858605807299436183174404205095992530332390414307513388075577165163626717062707789161393224729919047426344741570607720090394148941515985367165157834293280653869423232597348138806073091314463933843619845885821122465408514692142329788313580282158122380392900621307013836758628472637879414370978935932063119157089432579299040893700493397405730531655840514537623584751110750732171498128910684866385022900773801026836638249624904777376112274281723941307416033739135084320980367628952778199557463341072328002892516390657643899450130485440263103584536093170730506429884687268236246197897579627736983735843720612185092266424804212453027511298397292814525630452006415003326883265437283060936154763756567586277561788453820969777634950883942540402302014759143721345477772022237957229026758965812107089336639274170698664353756725371560737478444786994600065048167635871677846158962382610836727821113094192335684514747774487609603410913581346100751223966811195093146313743369813437744266051394488435944351984257845979920680155597913237608137881187476541290047707210436022149728124126862796248322270520832516598153907794883290008989208543063799893905177229917105580047477432931217452658953498724685288638731548411601518453272801178302065151034484860207540779418476919043561408309199797674566822932708863673395796843649142563905101061107003805763691355975784565067162072636928778954151454250683698653132128575491850605783938574731706373911946472812318938086705929948694883810099224622502590545791661210154608106427229869677171577255686305094164835967047945424005526001960156895791377344130687764200541320922277456815620028555669547396474264378496442378616870487164757993055849754854847218757579247523019951003242923875916257059227892814064222260047659944906450112177930835199145891317068591680382013579848282828420902104005961495354618111998076388261101890260755527735930793180212137987660536060775839868425082864343741659293691645634100477731165660994664501544705223195679924553317859251730115176406179070332668999606886652938733169259496456119776732660749340405862358173007660009443838430832588520731337232511337542262937851377490921758971950348087529078294749194883776055432290698258486260369093745919898274192696970249323611573302924229444602679227131662298976740691594732977720934615289250696552032507673512777242890436463994345222766000824218979244184796910542751971483991221949818785288951110873154263067956713689738117582821915062055684780786342711037999424709080732068585078788569435755568986080672918452805908262043567101614319856130146496978488840299567174855918297418541451571550358286388703894669876759281709191012410430597192934394745040994304362649689905315185581313123853251520915004330107284419876926598992112195110128688217511552136503990659090735656310989676695223908601783626365074690530245386877040163376165962644843812391100560347225097926370423538865442110605198983941186074677123195033331001134698945901364526406608605663115677023295290291842214240584363374945572687231513886704679917117649769396922811703552487126676701317882951438674047310997851265052783811275139159028425207412955030840713890187402085784538148984686375551505030930322931004838821226241401411051886716005844947534549944717370975487363627047683960385778569621836274888135259001205073010953943098098177306548100551278414443872603559666200166303742113697902799806567429243495548907801654891785902716275073865012380930866424730428089932065933309401573876999327407640826720849623199391758172860142162350973572791793853076524157084103901145412823025101936808766051107275892855988624700363744631753656516013410059434610775759185932899748963842346999689321729567423381539060575613850818930830409511657470435643133540459028984922098734214317700971857015071144632206262473418066275607129069328671728382529208636652298151249690972951715152885725849277794926168124457165030882753087962191994844577411849460444596386720217499300885235644321265540273814854035728536224065220739313561641034239740198213918687440303088880409955551575790404712794295705147054048342534585089188160359702234166123271070367415494125780830127945332143604682665847292335505758333368976508223128227694562920583551565525376942343636903010535852353912474610575776272210290329367819676122013775575032377916480316602378908171164451356481059978368426106183680123984250968456783104227612920054384635969104666039621579741847490930142044905689274099564523854115012320996428803446097805641579081258604722163558070395234608219713011684153551241316346298466476531529705232245517415105476752619236423640674921497557548832123379120250318618251876643451437671977527415648302851865410788899824094228355361903643865591358641122794208248406604736674341110796019298466542371540066862432041831613691765126449902740209387163649356086567393308542583402549302969848282448684359574456356944364663058331371905067214330652979592762961954576131098429376201233964065767475609776248768243749170638370452966361070650487765998021834583143214402096066728162253018596346225769604187947931521600535947987506940088268635255687547606381599555670202656731345341060598453273266333138841725217630916501482868706816551739915941252948160665381975688482783916751691538784228039801128095351695100021692710382659475891834605848520772691466003144072001849654605355883360140298688193293931188147752101513147614129825210960502446313304475177484536131736905325183476163135453460298091974799313511290037574117941453927782123804185241426651856028855789809986470860848732978474350717620794455582734602410669510751137055920362172649372829959119324657869771150705565847848646248373370292984008786863390319391273344776712668659457493004249284855006470624369646842929199838840458234201861635761114678937944282866877973651122949726353233971892773842065789244395128103415223765528039254745864038183817222238218017324127220121180279893190410745617015189923755329535721211884508083922089752868732213651885802237449539586957341549464670679119882781692050400945246867113696322234195399161249471723061650535290198587586213857169146133039351255350678426077250998924275881461282497284880175275308519731727422272099039346421690278766926543420999151871823418306011391597381674985913175960695806072713066608184521069085538085156991306000245429111428302955059820683233844464885574496629128906602121412210219062739452867857254226698140800283757714918809603658102500630257580230797619197044613326812416000202671988156728458643129520910767018430146273581657317795577107587919967806163106342861928798057211269797773697331380993337669886529678126387563374557405225764937169286575320267597744622527924336979652679160455851195384600108953235565787925019218815889730598733147205589187741595544463333858079599645864423238513116293143232543035151592211758714879036227482972135694478754816269504822022783413841817106119279643270096003371061678103624123647976577497288013905441656784400915101915204294618030508189856774223351249364830246346741941001442385535343225254896947133183165144129839579271291445110289277822514299020162574553880637844810618746578721055808179306890440011440174695562309569073127025134301511215908175603207348416111256284801467445977693798709109498642520292160647468813782347829727972646053835712108387533570595317943476844044759835166508875990071416235822600936293928240280726442777869317797651657612678533194340366044761792834680272013028640593035562778821660947976352134671653376069873365922650752856422140322838623775173689426785112646480938146463499412814261358207489798992466521368059043192782622489340933633496079775696544531097698237206180750967129710330021621061770858038878714099264936282005715299749435914192829746337674294814500810810425368516610889890254823250332376416219849834573432984780163116716549296075090915338422296389776801285674433269614882505539573058312060793809826496556230063466180233207737923881365167063154528315797769824725133830467246010899473422959330648567090968941705056567176340146744431721006302388883301077586785018143660241919034877701662314748392533657692167387947424540376114998393616760031614262351266664679234235562807172614564299597079612640830621369146573319648037571695337815516388156505653828202650180594086986225410483555204581039562054600039415401348038173659407481631787208598594717988676479779506299648827251794544562905162141225630704966143117831252807170131098551495114551043025382960954309108819747639020855763829115114250097224798221193451547719491926946936304213032407136094384981883145016128652057506686820851103722003798731609133849026703983082497278565774333903080840100679579042480604220342231342302586701017616994542682665865656842688705101585900996685113257888534679413626651968087811807863199179853963928702329043161511445559147090565241196713001988244854364471782323588257373455434250895406437627293495462085689827997536935892778927514217267903204527558167219358168975498263543921473286361613305631256227098686539739031641844454229572250919156117792320817863541110693787587133469794063665027048914287301205045507223374288302681009123983156367565959637046117833676861406379351483160648939602174062719618551531254672237942661646122489856750256272293150157134445417540795803165163013805593022084127340534374149469621818115476303937165953028383673982623635406300142440263313378357523775890229465762926157991735457104631410167519542116588255630490270312969762640777273025422002948024778244344492686514352240589227461949088336221195649423178816244405839778347602818111399439099404490055005925166556387548168643211521022704064488113049266131521459352966453666876156181081298648654260291494076498910380655473330061691417238137227721442264522672099856505527441205358398356432385461778832719743783789887239799437032616371273550222535538152506552590522062519417685103205791774816836788671757990711236349913526182894070485175470329664387962614459954141311494829447158394407364240132259741863592099044554053023650300309766864230629896254263355548332195384905533565757528247865098884849101755305402869022385148127886754659934772746138409124745487664874267169844789694132357477260009032677125831010400829073844473143756255736726798231222145046654001870865015139500621430457601171658749899328393460460955493145756729315929882533215044983294246273047347507896480841330514177041525698522236642670335240394277063080067188068422274100132961239610456724968180808919256608223148875104135740429103525766302929938545528955516069947408140704267614478275780016357455003283122265927449893882001166205782841607675043762601374234906960370203211154745601731924464723949644635027786470609067219372085265899827334411828988508341428507246355913612861075874774798139810139887235366531344171370751706582979063274851120882380034125619734761463289251798976599308575449693150621253222012017799633842331039934508202256965746113853271904786188792883002309061320829941201337187789843685759093434892830919257814816916951953555300055325791851973111222057142282633434956816136192671036169065005790435963438884023636135863782778759297031040308644326318122054934817139323305508292892533742178222444731157987797206279324678917321488953132579006633834677901939661345063316695782549642073099473674404413724282511930975874696103927166797731530407992481324928329569829700974276424982918399731277527216520923308812239886986029072651504395268926048481653229348332026589977799322917317290811306383504815077620103421893136272041718340638752074914387094264324286853526297543030317881762961356974577489412627421795606984692795105347281034261973364005175254841522821760454470922135787630395819097152924554832461927951626095530939953440464153599191205694140996513444979514782039075189355434605613215747762024068145445888249206219463665697867868544194996288956553296934248809819844375048295886416465718731576928461962118176315784247222324666422639820360795193002851672307792768447326279419672126020839023573091447431459080814153015930950998406448541862151469387837654494261841115422460161210859029763778264535481673329532467657050346026800101250708041691921541355133926550713937503114537201052358544755384053429195136220561585742729712780875645810844381410001137208958047937866724719326072555148168020975703826914842656367757804308742447111943087643726335503768013982576818920243114647682379111491388647495903811384511564366207081309765965196850629418013781385838208885387291863694314053116535202048963299804849386287956917234010867807267396146945369754506585962680413480199639323605420229866418004704184936668333000284550728206565555987023631476633362751412664778605602575002139483496312044846120911226050785133316446050595212925780381613770113413813208199025526062376161360517658806052559287034425895898808033380899027623958350819279557841590068280005845371140285600870202635459843055206641963470913138757597708388947822203151250592871981423896076945055619293282712465415990720449836735179696651004863081401244510470480403125201067614818387045214434508582048711278805965308969031371847915716105321014740636199829455171617875031613307043255982479108680613059725795011199579005708879216133213027469351098109724525647780360186656614105420696415904762467630494524018211385245419593970845835031717968521235847771552070741551251595202912124107966900884987902043374452735345062806394093037093047727818126294662223779407012295694423562077170656085282841241637521918780613008521699314964231071073974457258643844294333046652449315230704574157924147804018784462640968967035602659280786754870444646897221109090138548686368635582466187111350739328742576896770326461128439050262707512392447996204777077669723400070635852403698004136814080285845705437941991107243878868063948060499550035402401478658334506821288701812149792041179116873737267572760310488542172039269694739140255340543981243532847950656684200315689938527533235878645727364391983109617903678914629432946541092797626869108804325080849360647233003203466929777591442999181872978098865462886378532178444881102955298869568409015431749523261742362594481658503311495662162164883131251429757838352036303577829334575433075092819989941553050709594925236162634650962403146587408907487326625808581406215633956272010382012819927852040796668850718880656121996630248044805018311041837603474117107011046152902333028070926798100092764342793709223391146747275349703432865570132879566519708090973593802395506344083317863490480167551024685681017653700927356254786104657883956176758472340136898796607556553604845403851313894790769075855484347724058829045236170902460327202752518049366669209276894393300531825358572882360217080701336521696448162576348173088481701157514794900970933138481608841334949267339941378814272102642644534143131224581726602318128313553334787356503588135047550495945767719483218535673002129275445707895047109781102535834164222917233017357358869758884129328180056099294599267947980221894382672353484995589123552849105466873087311956076837892243226621241737051543641160674123349475805738520967099832698516027234622308658297362474210241050401806934652593268062530958413854146345991754359225014801572260782783727832807550659108061160763996851133274583546102229817259050394924296239803737254309730177110985573551344185069816912969149511023201347422012261180639957518635090914475091102288487269142603288265060513095316950710399671386083765725069458697411550974636096500444345817291916460153747513175679146186250723158690155657955229151552935916857955636208230764363392248807864464320744181733718500026176367338166542682891427668959866865798258298752625673749529524998690155267909548298122282410522212834890283378219976055143919211742231274214808347754858598314753966240894211105343259599485711589196640987833561439601977691392675546599733252610124280106425367894183748516037718375171359237051985693350676240218815944326548320144076844999357714275530126081179187937547863955235810034321788987027504237729728912046983784813020465648590477902547303734066995296837435487371542218391001444390851083233858873016922886632389015655252608028021678994950503019848628884900354923450085728511786599724583173118190478761647457733330294209141651034167728197807286113804106688259380040798195786087182562954140468611802365309163181445735642272132728618511533568950099769738172692429933081817347766593520043788054704595106309349029621877344773969835775707338128443024508469651949127324900323149739991390215944145069722728991616055915833279875422371716302126023007141555038665510954344047057443627815661274291789422965577870258420495435233601037980425197238648033564422548094138103668462144552525110055579616080294928881637546667422659420809443071090630660312848509603517948604695159176323997727322242561082374116068322107932398029170872990941016119814391596376594233392044024344764402540963844255690352113972107700999812804709850486095460793886805753858056145720069786001032538652079524016793471335127884617293599357335583120839738853656699187298094427765923760634597265531997899085023186299103803294751486579431253666269818200817596997538868345645503893348878796945691609005555457713522872598152488926820797004614527431784825825989927149616228161441092426715390988378344061661780828388658569582127976799065837107434609475567935060059530927158420003390216837741638646649697246265695492581757115887257043837876040323071736624550612114876176585273501584012992513255575981522440378141063169618407193140857506544000647836512948719954852116674196883365208347339320124892414604520439270540500075609919149850811725844237475371972692860683740598751300704061402151127619119266314878450349639024123347157039583550782573808971348372247069720282378846041601039208143649925005741188556252151920409785543609262227289157673692956927873784498121966774083269893488465922953606148889834033453850466907364570169330168118232694697014305459290729314981038465141677733957855318689270592148301157180183431392385375407525382027198644557927173087871868032646216896156584392846263794958196554250725719516727591159100475325574104990115479045108427028542740262195289762840611045366759963873035100908454096399152939435346381414456041543302781311955207026296525264121846431918269009525973968719851144059132285856584355868764064954969205109659171246304375808952359502993726630995640997074193589838016594881701631216225308550660192899214579602509511431084352541668279539531278727692210166486593646102328319895893847133178656073586154489342827453771785016465198376059840528371445578006074499090996740913867249737412463667325880841493149192374520417502749194240987855124123860867077253992166554487416955608669624077672782605153091444980201610054635123691265158948596419893456823344178953026118978441894880586159717472980471536050258947146905842894263617920209931311039341185172396039779023657587865775305031708661907780902476456402083470445767541406035603275006913360695040796448882896878023103864346427568465106947728776252723773242925166075806555458298786847752745516354904000978826020561951289091260951179901521912630147221437254359918684605526970167705630512600130656204401576391481313084613365866279320992682171443846923095853710982929863000494822856933551365690190441812436582182251508003724156878663867136666929584991571504026056210433745388640180143890921148175599172206150756519882902340533279440936788700269027045592378160359315872807458164363401343287784967575191394944281087811072997515904572479174317057121144887999736466038109016332288488315502045794528249293796285806326042391197309691356925065133384266885358865077501307705711581918553485991279506545728742667104607466546106774126172535775752643816656283615755727179230465995030285105236912629363856538690649805182838025575628514847432640482322539085768640859222583957766146190880489605514284623822329780996794847725966477493745054391826915053460284050073453756630189320875438045553734718689321537580755695909445328197837818509247607739180951259832806855707222450341124841959338326930425917372442275580676405103996750023492452532890047984675790779488042870333852928495577302487444660692900956204857426579909512013461809567314640359343656362558596475797747306510686211185080940704516530644733370559833671681391905644407058973626802335567471860256863136215681146184086087462005024821280262236969525277925580199417317617988972006613169445613377952035267432767808680716193140791722851360511091847424171748666972549812902560290448890499893832369689286202430228555993902746873905549726748002857471963967615147404750255626939399508898926567664196886343767762077382960474815813792072332867961324849801344667514467404464101389021237968979181506062782653544682400194492310927248266434178376062714897942114073094814595277165274083647972642794265341396407932292254527188125894562424307856227370324283346657852728587062254812055697547436312699190765235623398894376493802094772007173217991824136104051662665702491121245891155211380369777411236208906825062482559245384764582638698788356053652022256269647645447292887795643725053056232882481074769840779099093208464551318871670439079209767773438794328538936747852029130765135152262095093293199462463680488068914635727839526744039392309999780101026753686010080653535407754171265918014774448411228238691016738472482068606925737899541209045918003809711583653998686573851985173537630826186055206698680181568785849024072885057262041648163706382411485566404580366858819010153268586177922088419360304480132648227504072520334486923405715134453763376750009747780453838863378172460864268559502852003674274571323392195842089935735019366331125413858530927702063315427244990075795993110509827758891840552231824033024174361030956850807858528799388086485494414644371892105110953027566366442654347395104066205433711307327266304273071182501661207084875679635222109256215089417995159280591854450409070477260269402344370517660148738568414383351136888683513129013580782751933917823409548032999614564189865015663641885611310221504054102355628434896337476491353563405354491440686795473788255378058197883885354381652439650942611596635184402522295479499011305959246764683362277471224016090636241410923349485707478569818841683134875343417148190484169599433498687568429407168738978543621785780819335072861392143560918196941701464143006367486699963049200255086311293382561768338636248819379732258480123679409376915190080548972078246075931718328358479148035227100881486909013174650638925638916951945430035627330257756204326238943922818799141133074148146394706525531041059619060595721950555195730811217710312437090419753116464252396003685591537555862035451113272737567854991837547327165361432707015300654565771640208953046923150419001039101225524645389007243064131183431614648023880572625001647078584520576580998341148656094952130928088736701868926369254977143027355953560476922584051693849147177411884573904993614364861059019580410063682717015536955055147591480030091713745605642487930528022943999624223491649936377094364199457703992425170497546771089110134606511983647085060503028383839303998283495651172886662077506835986275501563944022953773330032373138979468379076851692626297302251234160590312702420649030251806491904153822709999582810938819936666569834116443605234826789191079514607623355039219247083310531528996614157028096538801491052764035169608060494375358317168126563933100203492034099600649214861213104671790351899201433025469118861737239347204890406088208018629835502345167615029295430031424808034590097266575911764815322776578362034891474625387350735643758662562905696644118324214737649495134133855149418241801697792812308053600416098246966491030722608530022217079708883098242265732660024998672003259141378075289042252253902673641598272646987869958291250276035267702147396560665584797087038192358885602574728720478619780628256351032371174392064245220387939713993150736513297714828926075917656644536511730394689753013432747022667727558305355774544033432916388476753263162848617480304603390808858993763126016251101948372807155422248121462788585978785760336794486933854255564118350752930452446633939668791178672460238926341421858586453652792296172932376929571560615627532041937960297384811917356725221493152388568150112967886005328021045706141774872250656501788867637500709959394968685102495235821742420996935069463937928875039836431198250713626523406427825233912849484971124515839455054645096315748169459499932892496436655547229761715849358594010622251366471917185225825601655085347368663339127173728416335142552561129096229866267834027929609024260608868417607132875375460135384644705952546304394144513414465225422327051744022774576163292824328599522101290660687129602394860008881670506559293346891260385739255935838961890882654920053224352232690689267594239953966072675305090019201046037757334548388966231176251626939134166066127434308466145921173446602942128474140808592058106846950943067039329831117258201656186811592259839363154286992799244379984265424428264501239939367466799039756702832813123914129813164736119037759952936045218830769203321244682653140931337239186517004767960233788511755629190242816179530944846694242837905281848213517621513486527491283083389421765094897558155978847733352625106465725575529811935936482578920426333463254556685098277860653522786142389986076591883617932035794305688702277653827857620839828450844703734434162079878865650108161726964151541356242063431898141568006721303792273410415580753149069893307433075109021591918608135100887053227076939932508473692192784408276513980266047841139609998713456190720875155450806648547770872409532163655479103536651630621740680278307062012897150709418946840125074696773028445242903081685141595356120970634319306351979918158346425474237566536969410166102503201151957851646734071370691678897475867596083253794431267107116489823600598708114959381107352490097769690605100160028852758916253603234121656082497568157784983990962802402296019363291926048755824652350087675952788613658626582477364289900501483904102984210161440410405711527798142715496182375179246295812726998647474791446655285111331367226281415424041840496728564024900336525616544997017577888556518795388075666508570463096335067059461933025211645216435065031880564169430285575887162286417405447104064907811061851856309320315348486667328133469387131283576988151275440280345663148990311229087564000715515851314607197935895537424920539662774843527187008524538605463956202955357117630708199348877539810481264706387562597313143359320907177522994518210672410003335515139575472036784770064051917003338448944450901986943696140285247693368646449884807294937028225117448899477914355935887096726570685751725053497002704718490672502797046627861820873215009187592339133487216637802800466226694483364301431984670456816738888525679621700725039001385533940860396296010818997169789848950974919741118844612904210666180768766462238133719998265687758977212272121784182912714973207572642424180692347074232406721396993519677439147429130918407038693353132190182591146496212889658547431751190838754389508459161668136072913675381929498499897114714533754202873657684011792955328566709840111054123132007299113227930926387580728380159622785091575078927099800765438342674934720160354348501835766816519721243709929100304199090339137499350355712157184344909234451225291152852160926119333631905057578331091565564476335199335455620874356285531389647349970639881926774662369708854763798702363521203630935994714826775672870432102239436342881743048020728987861036929800823251331377256247115037112934160607038972697481190466555794080315753049929043158676252576140180421928234829231807447373002248897087623335325191602852320685835463454232071714390559107893549244668648145477145137844400390815068359095839567675850020999677983847826318466905146053830846098513570275970691811087115262726501540362630856876224059096518029178137029352459260679248392816760454577192320389406267588963228341277383771634112147477952971906161651584152374907169178772768029736395883154362086462992673306435400370699389566961830904836908688384884740773394156949923582442628840882197928562464898885429170489505108118563164052795740933963830952560155588234312220263193238313923477837926506200857204167003433030956771168161320813645582184870622632273971285707465527835590716271249069981366682934275841389295852851784012096385991399283190251099421108378878856244552578976000479676043296894747409776861330417605477975575938850973143205684006080875666820054157321620852478082905460009055374258808056453354838331150038921512390309305771722277074092042992315004311254994084599346995887040879895659319128761440253596574529288205614312651876188385567923466488132988868915678417407967621588440241028314793661873934869557801442331875287883483343016862049803515303935269345633497878814814894375110461491194571077504676436596137458474082548385838325438344259681555074908156818638492622902419897960877618264474771410084658959025336272950548474130185793273536422002229042649362621684363442707134090882957648923923407272833307756785260697074974629037174997790766667442468868758229412390117495682980029308947392955177685671147066530471919339414362636886173840918818477637537104411908903779119990951180430299709186416896501441234995819915613320995210523670009492209412634728499783849672013819379957711362340082103591443766130073666047659082205155670825201745220045880650279125811118142122944058362988634172905462691273247608032147663301977335518670344849434134070968092279875882380760045995063215745921406444293364010497286322011627991702403755425286681250017263013384952177194226436261699811850646030741517025642201798732558260715707371984459664044551908593600453105757453839647547740290841626909514718005081584803685661278808287538867995623473435978885651096414341076067080860764880939088183115018488644838169862447344032486301734987008770564586680311071158032146005987983014271417215349994049635882864136800696345166496804188331568629554468007031089108631584679231634570008344501240874934612765261053565036347667173615078829053779145237760235583611830742879635176118595889365909096863395601251566033681314302698919293891483647597251593293691126192665812090090481819283490328555436625244829586554831288555786864208401969104228862329294978887328282665135119738288869901550775765876403991455398923521545789272147172853597235719153120873146586388775797845990935650839612863245117490256735251897774327187964784612083523258762716470492610721287821262083050910854906880326861598472945807318089582521220251518082509602230760783657893758402411117701439445135612790810565569657358923635466247307211732699957542772175732754331621102026764241076449854501694455525412067953595337900016597149242996968419965848587633529189755690392260170662879956552278159256342573171248975179996281738446507010226585329936657485179183060786972837985102533383446155278922078895009539353781596171686459170361914807200468744936677275958962973702828157783967607891127992729012449945928394994116920710867491570419827046736258785071656938862184310634242882616933212155388577236497619410609104132752302736968561243944817078951841674733411109680117184170559178383785443876816889524707319185713899657067973016087104549133520963368789459310736546702492781915769122600622404143427015491362604050820114938124253922549095645009923264924218123960042829603606241084409603140106329959758656351199063839065612459005512606300116157082667843619619736388605353121279563861439143503233164676461888972091201270099515874816484684003734351112403582183718171650970800256180009127024645467671576729225528396107778936208393772021284523818430952656720913451424736192583401590600499950150759064058991001705894256922540365767552675295757990965646676555600170820780199787236919970624952232948474016059538106425447989034217750934826389662572222852841330605503318650997388747485935846852691872628596753833453616759359387087652583769316865761114624018509054310104639196138550138013332214358617587956911134057234573414610583383238841749056831891950376165960235370021518633045733964647518082830014010429837153703281627931210972590564857563956222582688438305675559257381357012488101525890617824990323060808642019549877577609387527124787772456523850050521611622202856905294101493814216477408219532530613275629760368931684525307467476412872792354134382371888735390770025014234182161388355480290497410837375729483944489438260930174812288702116934312420751500990894319981156757178536906060848359315567295883694061725469718094907100158806334631020259469954218495789471736732723272469505885642738648913093052630746783628141643330016620628994053069362475368009677123446101046697978292334242605526536479273168803573643495462402108755435499319279417671095553947100962423453221952223128641196795263541411623711750776405475508463494063426592526611045605725160465611086096924508107558143604951093314403917021034710470825648711969273881525181097066601248687181513835715631785045068936677661599497096341656084043527241516029049865506491239493371143701592509034528249691954745283736170005864824691510835084370778946991181203496063942257582651580399250148039332780846298066922227975334727377050109915005053895892215859853309179216713512095320173937233716732198093294389917541803295500922049898970758146473213625245006021885004540091350944033265843198631725854696945412010641436468229171047367553283052315640066002667082307930511637732683790988966921663421761831779831807784323790387627307042481313351309574737980493565270521109831700994102932831135413424944126492939332388590928755090195590831388206734113838887938954784360658500641461870775165582762310426428306771068201560279817720033469698396148960073135828476334919215214071028372182141628194545325505011925434736900841868659498384705838534141093334476745088452811713253322177541816729168106137259578481883706753356665504691375832029290113797921516583082102368333002804468723107863452928395708867685766584122128482493772897259154641487340727821206392444829720239241147519073732372332848680568850713797395275345467964661312155796513231074650945161912191164388808981253803207940187638087441556572636690480245678100065942500952551561118589963020696291292787975739590197519488137353503199878899591006492851664786621933463559093990341938435429098970357360109226336830331042656354030237354131088765451254323578359739263574581290605312122962737060408455588748498786435883851294736458457022141557383348801088910804078140836995732814095410059164704612455491267814684300696395327060652386984035347939875390239797715194701967780894493687013701034172643166224329518287009727100490452624250028140532509098087328559434604138710814866684071663937569302498256905219301729122062861853851513253319991259420074176564788579971849942597310427472590949267081364222056722698558577131363632819412731566606556317083478151889544399857509942675655990837498799479382667244131291725420808741666211620097127242672541880355772539336218649756140537084198131948231131931699401681699690401006934047836258668075345408324238170485125428200675169860148428545005707014884022792443317840942763378968053808270240056644044702431635860178741373813365065792252928847220553030849359788067026257268224632188196095146704099264700204898691734681024801789486384904250322707642044429551604988771214849758410531845716929108586214684873347202816292062399801623100579412164594793694309375592642670308702938127431938623927912774721782934152513384688086050041631963262964970761088335328796579091006168654604373171783324306812518183203442956117437894741253713552101402812516418247434363534190344803453923956223188102203880126170158709196155590011352297839308930395925597451546502998977597223527604318648222481579693674569429027918487074483076277995168632420576732073836610189642181416235662349788226228796532817348960200291676237237156403122034765756297026364011400318881560330819407434551110045461808942260656761970011788821181028977130903863755560806285267217853178204822959452544429506260601787127820560312501187470942115286531268936197743912419577173151438354961571271382683308146275701425308004525663393407269250378201719272623195953122790773927741869684669084216678142731465128052515221617192221385101517741242387003837709273400647268023263068869280578393969060867854118385757254718233575911477121371004637425188106103478295180152237358058088961734868148014974465159262681385111017102389431753873190259067017400581404792958007331022607962464566913251276710896071919495573795753408338618518379047404908302041297453284217650563467268983548592597098327722063808999716864861381850828063187484640796920041824367334717216848988382818386265788676519950949744688398754255980716332576241225691725950406628485215396769401140656065668345653667398839582759433949610559368889131263312535286602938252105260240519041617894520613050620803586792562048134741076987795159782209824459799746850924799831760615718193802945635439157771830258921710310827107497569519396509995524126701398706666153367568558587108492290592716295871166830248990857668061776286966477977746571071047453963923207942040542292965656432213616746538360215875558184953470945490255704523723747833559795422976254986661596540662140105260390059602696606850971623909973602168448187281683645314357002379350227103644510419242025814095447929144696946855897975125179990156179813246236059649575687718489598061013584381866951385279203330195963677633711747926102357528540563211993189743909485940186478107975496741246114437988036891256466848820829356134854152825476195278019499446493690455975996810430884527525086355732299769429789971484414061549160717817189067450585888615898886245974934807724803122994107785419768276944785207111721355084104410051424381954818286452717888125282982748010651834993718504961883056853211980284465642292717734301854444242865221509164128434491526095094684238810255661517346174252860247832054586655070197276260545391314382539019136005193842925586763271398786991465898109982825057040463383900463240241524167491933117033089844748542112854422996106879408290449024624862998560985064537296790186776290576336146063059142961555250150457490518321628827771254436764217377300846021167161256582739286821766371324147458223828355294001189837688947155126464570971293070411610875532691472254033762029897648694922549977756656158439307570946137514607302346592273863383895945056037344516748356010386631711119023232392330340171219514375002404396271631980289390456886181466609943303307375078623045275447376724786536410981590846777499337326029633364218801615325924994922439515302583331298139850498939906809207400093998723558195948451136321296900285454484216409176268796257449883609206879308931622061992238836325268230926294851980705057045099421130007010083860622716322969423569578720226058215655494739013464189869662827972017588574529296852190727572420422073980049756655143893121792621335475668828132161907602499131050665315471458593161127239735989185885691493547361846657553128181866002886200588246166219083270230519907318073450229026124429683697188478643965773463702669079115128130574006562741599875501752508158937151224487550166343472212983552575745111807033806015203562254970474352932080949886372666692736486500007232546794477387106138863402340356337918181999822696702021131172490735488667939845378817877208494106357717478246865992740043828056319259705601237213619238693560155035422740710377912199286228573491897992990066601293194388920848014162290545731012529832327941801082473992020043833339925707502175072890894492697713154914847307311744834569320399439025774571716812650810160981747465366494871362269063267945752544965859560669490524299859094472758519879833819226418350230371930954219132085051736293915140696463781127279153577444485985854823550672889360386102424786394067652542232977789039459387312912645566441173170413725932342125185751072474924411753678270750149198007559881498517284245990727129937152658873644336208477382758705010075014472203243591646447836485131437966578272529623899566844123199737477509089737797192598690651521124861150448637097446971801547106943434660253125855265040928449683599513780756226793341536909760956470392796027088660854307919111754486003848065686424063126399275349376168482017827613745470168019372734572210134955696437601564361083026143360591755476078144413008329908484907524058130815787012034437443239154969965367164050740328956036226657465671645659892531220724291788645264139613721822223658399472892151745886960045378053889444659926499336408134567447103700286695136746554425174625755537048781047015305992006180479426870945478150281545256748192773259800720944627321171881646494002919458677373696638553384288941137120976729333664381434705487962499017767861225860054165780492056657599088564239118836250641259455023091416413455528002094401508787793138170792050735392763502491714281235039099352487066753966374537269317676271540557468855070404576286441494509149715739172661823517178907346555809402394755656311597927026279170907804148453233053749912139006540334608784070036860450184015920046751557849929964639408948907123216126794182626303565860472712326611336424545639363072801525263676730060202485449232202994340028269796071891384668354156021283654989618153580194110727223432448073136390932988776405010992750176575480959950401729377001284429529682994066270036574029237416390816822998102082523902190758182171292560903908090952358706661358372823326495709338657150951103647019978160701124890442486585680975640134227577568019994401275458282172868689096798212143014540328682110054386468629239527333945291935764863460926475109419011804687011925120172676636434310945941128696239403929579751221670045287988940638580094761154547385059887832558514148421275833484243376221346597685793875874064809757484843866724258651067858823809897017010943694702541404266298686973705403302962093644620845321231875353006186365999502672733992443680121681361121353284732365912350788871304425107673460354690018744314332220277872402501299768038123038458419451664672673581322597577692981798799181097568628338417194494885045642897297983583186804130161108583863175178465112164447994939215463606942119342526099622429169803136103520580910122632212519076814987578592940631997552743161336299723845431762345778737946915701291637659249843563350305187067973290916240785535217293859265123132745644661898534921316139994984678914467101505227117111322232778507054685359441749928099187135057392570893301971192871993927425910529691097764233688446899205201028198340366654061571861625600258153043503365787849668590293780355554482591812876859535515751270925884478299032352358311885795849172943047413016305670589803734598841691067047784424869438063846533613684883493385786186541987620167470669205911401110097916111527533551150326878217816388905871563144411411835687536219779054561712401340121650407049440345696861257729828719620358244978948958665186290166374248089149156772275218373249033625827902942103338975511471659663684209439086975978401115125871412554679724732523586748454718410946779950206804418938801701366587582479064327208001654501061262146740792045949782400614298613145645792168281228364902361990745144230518214990996058811783319156624033643063326789562848518061539379623766515368176101840392295201548705004994807154156819823244815422206790325592606752270493145469528187015343203990313055214690795511026538055281673661071962013216648003131247236134177911828387276737260448745151694544951395932853056529572212419205198836015024307564154932786072602168528515175993244225297489181322699858116898802414904914444402321254266840175155324189528003853180508203168892654838594194800655631692677009075550909433240144761815619293359520371260224277688504669114160741658138222639625196434616052684672414743048229593032914252252876259950925892689433783944619834173261648623256389958169220863270218204839760876180307216279718622600123141479876831158147209572396241005700712998553550682596794608966683370817709880530039647154436859286435643541428166356365300746202628021564283501824732066267594502638332120740007105294092784375872144471753025626645289439195170439184627660924330533942112105416585672014121749500087538141302893353710883703664515153298065918089877718767785846621758837076797145827465851751499595138694572401562956337320975896725026149936051717030155571144654855546565686956855609773388656393975056666333532926583186880513852829003333460688550285584501307158114617355457922271680532064427054772883270802307701179081178958988986870246500156435672564727074362299999137481126352586640357410001236182903327840090059360606131961160426010030145889456394028128246413619457256485741430327603709725224461149120471750485141705794900084458281974907451684395040987772022792181330482360084940254042920591036106172311315580017434008302102873702403572107467838647955804195503625876016476819407514284987326633615046304558703821513638796103298964222277976065908730760550714619553205162920413957847327416549745092583620366223638850695733735258031826189434505689835690474325780213290674021193598175600870054384292765449064900495064601730295209263853138700185653103415762646900966979303277748269263133151532343579464552106262746412979081652218243860037722372210613107035959014808677896388602528783211067546328686190705840443810124301135960720963236722822082837023265350169991601808200393888367255991991865402281545771110261260644572002712614987295441098850558840440436783059083720008283577459550869338150179672769461727875726931319089146307565124813278124599981838057662482521951588716203462953883231925220127538678830893087180505708150742697930025207751689717514356856962762292857003819270699556499680767389049144483674865981367535231090942948804968884508941952216197009284584993388656377115623628833365066673847090359126260257115409394581895937107877847797881628647460560650044901886933665735821841045014246204860998210760614264123190122713798321181278805535095872273006727702170324844531261194606526748143035355677964558219981461231447293547539343476148037439439447371433143742698565686919774877225790107902239343320273826097214836303435808053416503833555153420684879461518149264256661890181681670650958628005293414000931342124038445868621848133999520588375097624341049243240392095772192494902053686445226794363711158239720195366521752246016462381834038195706723541433275586810061078490448452608426703084294242979405219792602063586090858751556379235023841068362228827802568653102909682409540226536060021668872111738655096864575998594131061207804230383300639432459763719486550404966101377175679697890125729861613952911580067125501460366310240300431266700551836204877365425913889211344288480825460786722463077806168711570931259793744316624406740136838151219125574216999247916563518876878673420170906459237148187867824202258455731790937141137834826957091075966990471784212777216521235284199600611068356352073389340049654355750769120381365750111087282404281142000625849807253491953214944361902299475474417457534914907685161291325389524963792371582086332610014764226096650280608218864187115421300384749625059584002786033362227925782013618483800725154520853953885334544750845436239359053245977963635856412653912840064286728344611435054015669487286998399986175581601919177856018072596137261999585884894725625179770967618889862440727892566522742660137927324509880209167279972412891772113166759667468768271721090668811804509379902569675922894469180531701438778093944542956009951857528958539922574992599333550600640111077419735724606341583647423582480633445866917802696797559615127233445561287589884288386712285780016291574623854774632912373604869459369169361919641084956606075066116172847380328836704168270874022993135507467216075969115953659307518080663023397969758129286387812432020662547210404063981405446967360265838995642704416208856282052388182667497879627188765658740535884533367180518598076999742938878851150197196404505826813607912664285369087166997647001259738344688740061859907069444645965678827756240612826801649436133944394409070604603203461051969146783656366537693707648651423569023177858062687942958233708956117636284967611777804865535154552925182617314025353185736355589912703454055068948260623826740448477491101857254272379894084510214840125181318367582090855570694519224764115736550507317397040145577062472601930143914800056890329011591392149556284374107416603450151760229872807900364580091571312408092323812363698890909664693892646938028980051341490978490060080806532116939584202123043752662694323213926381433853665761810097539764374661112084155005582236204550985083203067884776670330201578158244021645917813511134019004376000069078570294689906749777521052348393364775225781639293776353357682323182468611284885749443212019073608132273173121157288768138488272200087624890687415364457679704417204139862140356764017039514373198958155795399885406040909793574936282032970467285000510350687025343926328163086166727461528891189182072691297829322353058811303707742832532843128341882280751147347110294398462431132536619131344964180207183673241439241065678575234078365793420345281374107006111336880649515624986981323728419848861657388154632956882597360911147114382427122343266405039002496993852934213136635799487166554660292675093881231109470512130789183471588905848008083929287101158299298533260822926386552734827196449375511854553885305302745085270083195140414416284057851245000699689821083683869078484489619440564546165475160435412163371462046358689012617307929816070263600937085257879169567217254377625658689616038002653443602217005010493248297358136652887670163345064578134902504717048113715654897987039716279980273975761664792654718092329788774622483892329500492896676070997806111815945332093496478146155045143515080285699528392293260093509553794663699715637532355789951206150226220867656328301893468506006070783605209175635392903801701345252627065982883096047277708151510590164973477238189259993135762472697291238740349856872080877176589754506089107019341524748122166714070939861943656736535173897685722876496161129090293556276776507045713904205441599557729899157009833360993903400604572324072602527899033214598618481327791140623376195549686414900745570235185599090966733968131813477495675596798452956982718124220047466328757695145413451361884181068394204669429784951090839611583303112347817378777207624171553163512068350539741113987588347088850044186469648057173294801096632194615718027063562928535368703849557677533410656256877281765451055279120692418511971948606897418445362986764848548246005388817855117592875593764823827147185891017565369891744675501606599317481907331052626231963018685378431673607584273193969832997767963956226658494279778577468441648752271750480629732924324849854701746638163313034364757953534703631138300688760782903481219796809812211376726646947416208412884583665008708671195339019993205975659237608681679611274777617275165366787613318610567830789132333009818629174652329513065186418911832868185076632622955821905255229337309172744280760012690596026865821872608817660602042786773287150333738353064812452799894721770875108305606415197436712867087898780191221964417576361748860114747163569111017360701292930296379424500517972921938885811720045301220245680964138920392545328510388104171882385526878759747634907803947856778252795109380438460622836520587575296252468448001812717291488965084721791824046637820110714287048730210884533987920899978266482479134951916365104242483508620882254203178520014846377372232607132145882642523302376040441758141978338695398202326376019434163343031112267692893460767879986575655585134316280256096473624605677977687195701087827074067129562432251257496348008085318897284867230757947359175750717720281444749777101180662337380288762871172450275878929809444412623967192400139584259387914301642808220318589399642791869160248074162673711077946948373526166329140483953273855602221211910768256975306166909094125678077162480191553248479420019289252391585971906350551085840155037055228349537918572799425358607064619476968036704285599892695016108887381510693060635291262234662743580028021630373879131130151509897460550522503242339013765420973162380158670545938121671865676383291667109330054608980056346950139311764592124152179087663874787733452639998155393795339867201678741663335116556671115254395396931393025494829591883798318404338563036903138219611620818223083143206332780679356890549620901875997342081577992614959472074024356476683882687195284271200380511626967760013612405490537193346454685271213174820419014075889948909801859841372560553693607543798265082565521155274158553490238160571416175840089043879283898986314991675968748379681861279751984405373626996238191707903235127786195659956807726346963248567085477997699795250133554946458164480064889321074396810607788685149745829015470295228930613009281744374788762203061868414263586626279462549975770271808279399158470842249830981951049542084993939580180042424590403444520219352200107126982544657428213556763544523095873011081436200795851339181046716780737332871424483277842423545140572877242040500495289003827504871695316073823815593232656291572175156427172306412398930205316840846013447832728443365232345926419918061992732086925828737001792569463009370001542878884585362164955642030452512272845772825348046132552376273002519348707580528578328574418400394551069220801726476800540482292542550486825711356860623369510581549858771373742029717073143299739414598485424728472402892738751060274393155846395097218981312984311649221833361128199637965226110712473069412780266561841646984026315812732564188443095841168528482875327164808047366230704209517875972928201509261928943357654211396887451177932265018734389633825248173658767271481033062424046131018330173087533364580126377066723346173831990549868915876443264413426158938207998413621271308788372907606502811313962678680929913753550056142279522106424457267412884012087394849549099519409162715811851470295515523083348046292644614272715895589213421604494157168463206059593037715254553560252527109984465079210441789486371113325561604181133840540476371023248931198417852708740782902830950114294725804196548796072022156332393149317128985398399691418583428658472630023677157440058166659136836572308370091295345646297292972896239423450566233779042852378330971142037270465061899467827515878312854908053352960615156062392814505259831152184610890812478921195292888014415834150238354033259037392012690819150157200309679314318710919426951752411470894523235584549932652859243192496098363170282859857671976290883486061904941390145470498475146195805164433248778051508922670804671175472291246151951266709443496958849890677604632343991842380259233232136798878549927519974818017492254054238876532734264564948662420167248559042752646431301802871915604425176639318117824247099616580506771913153518753620373308138839302509251599735892028827778720008071489980435451337294113746688883385365691361018358710109402938895636387357328874688696275476104384976573888502666363688825241733275939167240245922980119140210860912994470932426168608069987947431151071192390478906447975099282366805748479856199187611098946551589511313221896247796879126323285360824337329642861079293588377685350446519921178017678436696736934922708740852039277909537002777858981097113465759665834063281520345897632840064783815871509389358583990230100619723454201961612438312682814946065504133294884022876027832049914835073285886992053046376276144422382274999673195305795394678328094774510352719519461205972732668836498693381565552113219877596614585228244305917964077164130761372819137780325550740023724557323535179495856462777031751193426655580340512140386042193069574902318927782013280141048505960580868195964386195456076397459094710853793116979846546167605287378781480006840373311744678465581889018225604464086934452014367211753827591464783154252310495512346049002290278089338629514497995083305936664445251411521072041486648088298721885260416433658655957577382932073910451382767282538788693886259308597616220823317526308918757735725053747472906317487811794905357119194937077204413388104160058351600556533643287512918645135468218593915624985050998933592975610999407013495362771231421486307356454568703562224699510104018022435132985370521438765540224104789242655304813422539027511855422234687157007883071742036505218498045198584934057709183221839270422604840599162458487542237887442537990783917536644414251491924478365731553922650928597428847434376211235175580981377429319381583757709111627260698293577488828141286333029362331576494860913363218537029228973782326468659647739489661233880586506099118995267286306567046796702996922313321305289287095648060208907996595155847562022327381301545353659081329162081734899476069809841921143672270105006248869782612701491884933486035407557382770989447217032083907150138485959575324381624183195783164611499850747284349332669248538529900789138852400327423974676768392530636244030176859077367243271007470449388977080674895453862629053297156524961150267369927293123510146106554248157659822667733232556605957125978487247005875982185140333207025645782542811989748767556046762836950934099566076284314082745555938661099278052290811589532252727240212191655280126665717336006383920516457825912739343877125416642541103870616372748300154750539405195042365284312010427265462128446509887550970729915624624217440958276784339139482969830902387212464073068247569153432820805734029517447215508050938648775104449677747274080866943144176175522383279733869586263754398670975261353007860200221705655554584056497571024317370843792694822011045214400027603291970204074565920372906969132359066899837726233376104259194155205140287432863857929586662797536117534274285011485162189639097165992691289481287026651903208493595624419897685341242535724848882928658667406405057848181608964509029416843899596688552190174465289975458769721481533969135057725405552492628157538157316848851105501297684561464567932143470801126350734880918615448790093971549282763131595526040744461737442802143377609295048459051343390421014607749682173305704082019383073800488195238249795890844442996863349766760225651204488360139847796581501717054801036131210432929956291310131420151043824766277756523989195729197773251599681096273947959540784265522996994398857887378172942130004785478363166644528662418618478462860544718277523310203248453580943521464612737786780686201157027618939832526702429792543360076074513056812170396135378722618562356356359334421129987561548112555589515326499228694709753801848541629126502265865505578128106848491034723866454846795692120572761366006673171651679913084113859904326717408167930460701323905693983422054141147423844874935262923510488998027166591008122786893776008628004288652679621001251097532012842329189604569822016389182645512804096820979111474654453126823318144235099511306739300165493506005548365217654540522147610511257634570308407259701352715547648868766870783558916502129318519270259714028840217344098586113371186661313284774783348677370660941297927436897412502734546021475849557325039578088493006498811043977079335591736949481496443431846494635920332704671460434130260934594132784375346037540351411254946939674930222503303917806613481552660501998294087753849557183283544131777730723061759711106396001671722205104459137012754885936179158798270123927377508049408857130782137753627394890293408858425993936734092342219661863738401625347081778033116125125787552650067954150298691149047237142666158341741240882397589063451530770671319533985495595101128188151662384037051910516179725007166289359548857738305873878476476150172070289493695655125541269419031360149160880347895497402427245739748811290129265027125679415183948990136742902626085876866024374319280592765872605812317865495916310181051337960365427931823904431004672671674901963412730637926596079193524319048055458333614869187883672151371593253232477028229882337643590613411751276630194390223681472204468062831873328004730747619571199741379267766594277914569187567825312220443728329192839801939918637406620564929343605682521228558410701613836136938535652436050846013175527636911865590769489483196018203994535369099673923559598447269554652714376719702882874173918857623558690534864525933223685554906107719747001675654580656275073326429012527485786974537009107398380197569227961160434085582422789863895599132536153261098314704020584989504402063351878578960994555201257296004148085605226341177730942093854846688215472373094584001527959779571672198443893952066772439571878407113530056695541661871638315177713256016071752493381268762823971869018131228105397064851027512270126825851108971280293375607289431425796083449534615596532609418576007365159479682827110713993928975262162645143959995139870311535183362991808752064772263051218857732222952580368512399517031094810392499284717729523463827059197036833483523391090237594191805445715103313869275969043076841913884242251534492071355661943683465133218887988391606112074259906130280301957930412256121927015055208029613805529962973199150121507001100750060943623637582434218179876447614673077368916879109501199464841290370818956192099307527666168659511882626472344880792699600023474184907061464139262442867626971713113372871427005835016764302740954602516422450624267602808037222699551682644254182577191861930398626211107863587122393973931718261552203718834106252264954234148238202188949568832271049544125847650722518071349184230023650960880212052011857331647264816196917872113288961097754094672014073122210289257470793923458260572958433837081180888235334626476803560880431743562969442922404536332953471721145698231744657613022916085028903122663046362808410827173107295307809031695270724151748819577037304959747181805625689268279375953068422166082149464706302304570759784452793609985630181214416331424723434485494226547591581888743758287486326294792332046386415623380722187186631702885689626462395289320776945930105256023971352887175238554145010844909304264770105261701865523602625061388448899228388842598894386608598580570497859927182480306098725630273456005541198157758810517957368692970428298467199982525006566223198325865022958654499936181791886259773101402508247381635545769686071597695383182147570990470985907580090306087799629274108819625161384967806043811652443270741746624558557805340837788623519326097236190872467256029284967687558209049681970669062385511919793942835282203037560998176106584478031678845847306044133447385012594357736646089448068778866537239597775115188833173899579766753403190158301249223491962294011163126058721551574797856165148683832784649223299690940831281186747479743154765260878684070701756591698593981544095319357732905319020921133199134324798976937079910903988713605272592412153250973590103362371266312461719828377425775074717993997084593866035239711105479106517607452530251017673475646713441593925176617097381873546764172533543654902360950420587545506193585037077597635123755744453432824955837159911041960491611842653280118880076058505867829545459569422413011222583819555947899889235170298703884134072986983497054773350571201011836670984266085953091263507535116402643485514441874865174458766099714548981139445918650521734941338973830042538004963805168233264264797351139600313250329346874401599525822285836015713599383564926946215755043762848838776884809978908235841871545928820427483865899002526251897700948580993778701353456222304446512314346510519337886548467213648917583140954359670734843520476214831741195459839690535195516047438996368540442966694051098952697173718098206801465438027940992334336707569073199788122738834444476114223267491501606110316179231846018400369878348885146484798535729601032031795534594587506289709165474129570552758515096855160290449951264365105647585395684763611356998840380378597724661673365390284620996804429865414465198511878695756217998579087259985573704320669049434953804242605546689786441232699264876247695948349477549597041634067988319872350382555143040927336142832639629256086520681356778838675104635571002514351449573395861255479854339385086887447463720950162626513906058834369553195275971025364794625068232927371316241680772376483438054572395555223205449460713686727793827111753044867737669816093407300114602643698017067326141485273786477726018227719074649342773869412773649961220157940831588013170840095948265012460740432378365186631381701200532412306345567631947338306749777984314049138907728674297322654400938743079283887315455717314323222416851680843140873348924814832492390017745791588194200880068356387065631437346411638289580209419433420474485368015987047785574391732025996296452584698699267177759371157504702738641693732642676011790616606444777357066097314710764147283842494343685481975933917577220597431629738496420456016677218233023508360383104912389543880589760941485101454841935539651095183117203971030617624367550902414171939199150365108485744115802237201008474369828415304805779944173215903956339853636184994898716112876451859205861919679371499303338596418451552883404316996325854449524684991313464371827291995958164700638945176986323582518561860847074862558485848505070897282120675267607610945106819287159727346332124963516273756759898405769439359006528594008313400157188833564208196923731771042784906010627392957651038247607736716194599626411492856525829035257148938495448354321781939435592608380114420943512145731403169515305489308934192955068779896453971511965669029158581396486741255353399588804991227463712082874474142410494797149454347272613661081312770380778957938697881179670794791507673750610776451828769722838294526676392626659379809096226225326223491619841464535957256787281336624767716919339597199292206183813608730040969677580330239839409739224798159236011906949361626017666073893468157619898638158378229566381227443922362640601699107777846807382029212333379706194935892162329385353064323924556929348403477927916469377911420334429975255482291119973434374051074824294578342286617418881884418924726092248731708788483821467868342951343148968427105220628802129447552039794261845989944544558800653724156808988462321601677768325884365783011974949863922027151510372769382855103856957028587678963680707761522883507058667386488526284279084552062734140753977565505435149457722950630700170218738251387558076755416016230583060642929497140284258676925416988929117748155154731355374548320350779714565890076159381972257726299997054167125393366218428650222492926169536945077903649148531764513628046268433578050198357920953359334899133301597202567807514249315074357382305416523350329256705928329978039297225770441280337064849052784867028976034561191422583344730537656730751076760073129845208830487395520162861980638673539503374746165770328692040081202704848967662316351760766516929733324797858096463981771001814950292228120136018408028855555013229327663636904797008011330359212683696784198617745920803908753592316619560180652267878447416375021463783906984147079096072084896706877902626273238253363516972761466605849341751270465311007112734539123593710875699288435364397834626428640254623897143827083129109260588463475331362566162390031707512593235880889337971336620396510792843804170467340784811604020853908956561184742632113443387982876304644482698449028387740338865035167922770698948030882119805140985397866734391164532824907111502928794231976824868116810202251019677089858226074594980005278238528882383596590198194383890132146232252605394310731778036422221284583784387143843493765010173512806157315873157887654148552032183861263567439015871681304933929985631046477367402010929985151619503762462239768342167006724138740117963755968367183116164343460224398277850961807198501886776242778471457438421816239676306975638734334503979019263059132563287098023402571858532564159477310379063670359106204918134510738105557569357120641319059005186501183965371575753669871629281750453264814890268469433666126539106890825413402372110473440569241791045094817207533354684994438814267003707232259948081282989825782217978204405123633885516735383716207714749984190771331689644922710219025821096470479212025574829461126387156969516955097589511654821258861282166686915406566368367522368943968315958042465324753406422081473466243681019889724799253840096610537204350776585867042172733229214806290297858668935616925079803589517462513380983761185733692554966995803810847757335910667128637047526303322079778753635775423400969005436179535857886011255925529664192759743553724802319212505036538084834477486966724502357625078237331414067572123877658365795734775377560630522323095210506894080077092854005487671449717350341502558593325571798951708254405659680932049539115080489573374949610890193388128127383088842463705345080976023855611568367334822210031478121157216211525565186420042650391898372629636735238892736390862438805017347613923840499260240081517297147356692417827459026580726254176873829090608667117819741731874845318622821979506075673650663514432019526309150036638574218182292764105448679220822255381526787564992570067377046560549564480065081271187696959923654716415851882675028933779998981571312775118916691636382446215424234670430506170414602011489101803850237277715980577862046117945724904308312157886954547673946110532818806132827715448675874831593197187121911185188320876832252569683633432264891874333541991471143276720275129995253376484291670067534850536137398932427628393431029053953434319459249245276691056429117669416419757354138134042251885118955211536254707609859569994488450863918256344656508067276854550571013684218931774895106967313978699605886953605409626294955255743583034410459869755893766332958711067022920678650473311899613967079695852841608352654341652884344238455232126644737341936061647039305154489314924207232211132480083699516423430319796730199383274721269907385987110630940768839259594519326207825930087299284437889327029426954345068591098649606094519709598335693400884808767523396509855637204292910949392113575727948197938973583458730572788319830132083585946028467598822723297394771045205688768352941421800572598258871138940693115569966006529846954506279699864669062439899219002096429258031422296333673693193253119335041559957087326744053700290659435823965657189671843202844552289436269327075384847918452947097551582107897259091145792843880186670218504573806767121789796048915785948973491421815219751480512168470323920208408249086182024530084178991974159534256644144610809643645725386201111381729015739935555735427608091364686421484761643519514294249101130898614676015217248747638574853036406937253334180954558097725529635925912655539834136672264768681311729748331822697276507251144972462901555010698860919907251071526067755517579166662429118278732527386756662299283866154287516111352797193121193758167469839070459510314388040418871546611250192491074957771577977989610426312440729698953732515675876752494733621621360340176445844238877110614106120942725495972288422832624483043661726481064684933985913712967134706708968180923908936482807336611499141379275979131979969735077382028461464239577683378559035225176097813181374346234661543955642606668327054937849420870494276065645449236461364268752140208267318515459899221518829542688426545106074633719850214152249401027286654737492942830863413126207221864785174211680426674166184735019922391402336535380576690913744943007850435768114366789824449624627564042526692987753470925394947999394714338241163165644164967244906745480142929637683400290038083154167136498506643850058936640093351055564257077270773940362385798182064211463958151210690891074753149801216138864953186029429208650040871613921828197256000991688587240841785923242821955234959993939891615152989124904364411181483759279941316369451231963652196308407887669080120129989460055323434007897874802224918715352117504430072614134524140174536936193328772272174361904394490837955398100440140652005944786564671660799856536266178491285319854638978145977086285687404119166198958706614493344870927039383023533639084182551521303934302846382419997078985468493193227612275793205691820854519823824587931657426512332480797550750940263274564205770045969632720246163023045925375593121617280401030762053762248601567235685396088556746097274896692902813986012513579815570260764402011346501508777871877350582005982601519769447552142416486519482289343869627909724974978785672284397548356196938168147253583180503803460652898526904548670682250194386815063057384339647471548567267814722159545914711392008249377278448101458764657172366082300276128574542666551693411324025657070686374754508895070722200074020571792264775635896703920780236718210187008957711974672741676342123773153245749517843565884842116295336141791641053029323290496013876743242437500254490506914261108342518891133480137415847951327026536608339686433788901157597688222075338896355311371251550583890848305160532187799248260332488043201614015534745452943459029683901552106254011884449299843388062957692272243223271978972498245835709653312402495963149944464067895366754151670684023775168472016262361649821147289061012894078697945665131698877504127536004901583643288938791549055538383922683562691150360533726395198260052012419300772855027975631286728625323205059888385965727005415172974057408107057207926636379051299675040529934163004962881988307104450356288616273582072375718494993560545722420573188232757159929314147144223766762863255448957892026796564171519224505914030065780412053149204550919337433763703572675271556715263769870118595620898312480680003228172918689524018403343854177894940528017062718560377692087850520048999460397488427093769448717382316161632954601285586462023749289003369940668349216901770665179572924360184365831835955074405588296329404090295469488310878250815711501062667363200976846356435811666834530659905693762512495752854561588423220406520679896003640871875559774317328566771245094131658020741274795977043570023956491570641976746103997592476597214097121247379306947209326961831791566739886591420674472741106993376815322714100507409995969893374847941648780641506163060024612204425275391367087428235452553404639861236903964119370920281579137029106398886406831845891320207247032201821942003548043321345699101953246512775294355191119986086623874139675116280116031529605395098864545927831393675817637667474289099557300297530876064554448959703973649419050288528331008328572166551576226400818947133948063716020394345135051152361143793879760058683026679345791958081548630543629679000754580672682433956970483754936166636595789872689676278592067361370647850440227961014693998814562788387604028926057461019815001259997300042224722321483214243556449276228389703912131558380725288423044598149308890692581514501906323691895330598507190608990567151847833985976564588723174321069688608621693311224649068470329494372449540254601314124118972341053570910185863605344825403163393327754448111866330999381665130003787306664968203217106016673852705195479444450923650811456685971173680521145457345097286282265181314675535134654838488992564147102262844374413163317876024945108244501939276220702372348664122894808785134714702707726955307089898146556366921785625186344903631027270686984426066972472750676169250150828382832352348613206150836821761795024801386641172239396738030751569623288925611559546799354592905046348695534878261635396234614443215562923957478453398416739949924357080262650055007312921119441553600409850052152114887186765752876053921607095741026395474386795676037695482971598202691933239409906289652027906544089948019372795669560256117926974267532100634859984010471961337899463663148887564073262934696331628438387089128494476205614001654978683903723851155509254855669585536225984811727532650528197393365169152885822310499191631041095639164975138356301506234167667003764418440968855307067428865377409045433057258446356026928329717736057276184858548710491911886848238325571381056389200044110871994399318008357952457122333385535277117001842443684011863721177918469977998845405119034828428747728443397300819304031425915853376404421472277799237689347251551934392738475286208658282538853029182341254807965595134626590939880450738293659673592737319691860092481530378973305701289891194672278402283061497233530899986101062168525826101521834885153536414888870388278007744687075334649067375918035728443999988148980470621171740942833355505689919827608119942265673937064883411628981443825780898066584660958737555397236035641372169094924139530750747442767083450964307510577382319347801448216584532164918606247453414362128593175600915340363725426204663132685932720447037329705194282246692495149647582039696416773459980797030972762354050787046359081346900048661481359563232759720276868452672879618873220347271613102478394634546907734255877413916541000866142167711398090227409197897472597957278877713076538543883722833119025709112903313995171917082941150481316851318009675483550421994617002783184664519453818073526333780691054009906308389604834711554099017946148605009400204650672821693467853507191159539931136562433877507410431308737370906466264216187142194352687406770447081011361598722551442903755367669907637222762652895362218353335561022680410822259607327772727484521069896344348706399870804684764714362127137932714522644940529642446605434809741628360585189927211823336893795816721495587050753770658962608087433147947237183484456615996754947906328356868232652419776496902056571909719157635352106641302660177927157633423068772051025791058724576241264350235936611237283073887007266646761454787104649644671646389663998199360175762245481260596716979717626295551337054870650809973364299002993960034057895925326093192403015727149479186735962330204597114905728554598224163962663680886021525515853770924468753318424074074557149833518355094115302331544938756091932461420152131095408416788368685855513831967788869201828148164285447818617896555768183490821870090560234962620068491627775220087076972595302877747173322134352787790841088068258948853092607857412625595475816941792551878939419195991828442622385002859482325370812910050791436560986511876731835332518421157724492860467399249158020851868078289933695017572740725656326147285670184898707648068747099840894082931883010636109363944759887067524514874319830051220715918849982768987831213090638473602768528470442723794534642103459993841886620235553093793048844797527469672591035423627339279924717964511336587749757130994206334073917686241463277385570525511701803777951255168663203113162266585402097901202226446671741422775021363713450920741783249478749789546685844240167783183250422201211007798916214408164614314738246925482518791885225199986182598547813167106522808426723583076954996266311482459725083463903888415423009914917442042295445647867403142347294304342659602655952056319027891228701619276711315680404526157570594389634417313854139692834135117843977937650631484639246285706522015123982625898159999704529520082907948710242407284596889874966626844286763517518483619466716574890644121708880910625283386190852334121063954386981025827111824208426553229430078437994774049442036713627687145457774898628063341945096862188977023802665005198321151106056513855579148606066736275433493890704983094966695004357272893538295258592958183991910484815168136045761529542007995716975740411747105721276522811290810606632464026712205760071925226016982928227205355129146382269577146674757180132536776671128321112279876855177328257613245949022040182084406574342943951968460744660190890068589601584867557826600114714834986696865933897268713390059945271836171217210047659082223444949592543607319229467475935485317460309411971170678920259029111143384696056672521179724991980075584134639559862474864436257928194104279872389782147967300362138212082673659227927065310514866566979392675671715723618046775098955475044839300886999390237608941887534730234778136516117121685731018319008645834135148926025222161599989884756936033127847576960946271587790545513283597477020830198960367792795403934872753643206378664550663789648102830474079983180558197678918397548154255112329577313893186973121336374146206553246910018727583162554795478592315325508625277430832245416016868620172870643046113678082938033275731295110864597395108144054499684233491819581381496645284675387775321876563485795410485055080780828394102867637106308866912475499146557118274490846014562995645528206464930699064436709369237739555230914833265251671727892536450188892721825332200749937279220404475044692464488479185450244527671203116710491095905086746348213229947656183992317695432865333902950027841033220955566150825810524117747383065400249860142439660349276273534902043861537807157111780214953338785514304568878332521709330910305423797360646105938825165578645232159316831897695046503126621391167247566229158769795250495995012946812594958330274357947867663470013663930648736926927251030856826471028599533672863032675203239108133004671510816406283185196292374096358070472728606240238640681999306046071146729468285944250649717665686643738304159684934806721938751700537840093392346751896058380979044357508485669724086710990293400074863409242267174020524483419842436936596037067589870418525729789923660012665658534416534741990258392063489092226974774518352124147058638232769574761880841118952087008863108330761648946619392032068675624066124390346047836884521016647652470949155478493994575448356078407229428138408038685176723810674470205193440411693785047262316639896575823313684738993201858884368072330339333638902866354603406537084250494080167315467308303200680189224911462480027732767429416431715592618413307809443414890204538206736311370259860675738143610337275810993945339652162738219445496385222914651708289523441514444962680518622067452949934559939062197005276415342661478589879898446525517620997178252183882901861628370380052840793310732956711016012084089520451064714633802466816677402031066630681114715095891286241521755344472447656440864733769084370928548672825360230978327160860769304444893544612426809492159881504333067501204593168401192070363560442918730834848917334545621593163635481248309672869071471974864240095377105185196407061486708486955282855491651951857843243429226793044231036763753548123239862314634100665170239093312364186444508523502256420518094797983700567215864507358491407336678006210832029593172513030632580437079053768024408631444830039095687168123234664584017009009140505310184223763656666784560082019641906235223565046821932918390408826859624766379007363065163334059551210119384285316968382262734422839442413396017468205432852976606165022221887270036437513097652691254321579783896847030227565035384795037288030143075606885814509054250055271014728766251414276950768772816651301101263135862860871626729075094469691562147148492142311046586943425461496125899570368107243032582087654624394217542994469496046996439328090661870248315735719593301154321356907497033168315007049642792653518092198392303483783377980585335851827982707494347761482025100712570779997555898547558785629133253564671388090240166363681550391285503667405454018672299772705842331419844786375855757631938245121360805941802232562758738221251199143233729262593146349812673213242349806587438033388702054461860357678890473321764098794025093124604272233615029704003188792825717357584369202886379452461560524358894801189924377469914508672949914969147934058377805164219532520984160790170875218660099010247665071676549819930269088626942779638266601342296814048796706121589869245695072166837754178939704669390541117913145673422061715019861795350663030540340746076112901235975697594634353594164639068636655923730190046847023068929960704659131074495794451305795319805929801449430076489767632919230094951670403250840049907448749103899352826642891161375137828468006898882720716747464234199228029644733077797054116294760549601930648405300763019013592555238186762809670277396016227368498154290317895653285860087190104956129401991859172014424253007859699550002589862481604770406318950837462086474461786757147644222756289736480095693895323907095868618729139340865221406018178016937454653907189162529037749643919049628737348947160304610371945434738322604818437480476818590038411980068247056754575570611719842971756490649229754494565091088324918005794810770807785135140508123768155290466483808618701005958547141262439833869497375768983610339857071939568448710689845144526418278614539277513412130683981250022206123044678247510910846987223627123744207692662702854702320715853885966612738163933745069260508197826401446993899851978934459811472822569996995484303043195423472751256642231429418766295873801707691282872915383272312200001563652260727132659180983771234043271341622840826346395988804449724602304400530709233692776025648811817259882463158834181013169791904378210423276152334792953213887937720268478107628077898350251156635986105806599611653605666381212335261414831305516314145873115991878376097917384843171854538828393178475692648239424202932000927914168748429505043577704402290044808911086792498038121707489556160877170698382616511704136375348096088541766942808537795174049648789193258857260775766396266100803009075697625218132629200394604526893393038492982893619283687639832947369726538415940576787813571922216880687806175955109285198049332863696072519304906398693061804779873818659834960349541448353770196173022398910566377214711949639125034639960473400640903419494248573655487645218421275147490530677867674220729652070605795815679983072652285490587539689606910395171900202793181631977296240065599233969534092647101051189950941701222395790213451970077643510108821748176201177473169315356132988510515884773796498363749595033664921800383039259434838696951005844026365614150692765558188242749971004379504904542303381516397802198025902358398366877146242001526253051772144219932258362806713414640593582873141111723911435538830737927802103812695270699069210111000540692813475463546853924065271249216254837460117792307447466475687007830954882626891003795587138584918473844986977446542791090077247503815897623312290704428546931043906067570432079828868453829398404829254995269797900177950497427658899359216840909678904392142321406536811586676644725044444202036362290106642527698020289547817797741703844235421919847845804532440396687978160625969155939533614883314390245077025177945456499660115972546043626659999809213804738121624863175790463224326943830511612871284219398062115485460323547293528296457956599293985672520784126291269108539563816947864118028279770275164156674900212140146974726790873747797705018108761111011342658680055057357818103233397156669020479415147423757116837599043906027858242602744381532457612207021143551696580643375429910070385828019808244656224177916575303536331635798484508656708099373363792150526883920288974588600979087595828092003123112298198712638261223121258687041047771085396346027883958568396204841538997228170844896671699237192377055960960583478830341486751168605340021230132690445855912150396200389454356743645812025888668982383966210747692227038099108198864087783339970618629874961655367290589658043976745507081569509457677075634367946725466456240886247962488233889712322635641745983123620451175725801097241775169294705867848171002243513685564628149652305885325063334352984188112488211594945045884609771201848264324465100251382150723544091529262886497848320373378482956643008522248127303527428790939008330700454090658144224049133358908021162729042582606531879921972632644975248182596390736729121815755357332280505787047241623164795480695782153063764488671251101779800144396421302847299517047054185226340343552198776715784680378334136575925534982000324396544781284024941641045019549641122402634397436800686313113285828132164021356485908994930137227313119648015366263976343469427870579894056983596408108353112349503500187553433703587583598968485997015775814996302749945148057678355904861443134128424412822363735794755312868473770123564504522513035920402620048690518597728662964284166016117454249426191748385876052367094582693628573709298860830988015539630751473472030691024016257271084213046046196866697942389392703936912103057176816647872273774435359571252797209582635218331564590254454599820218503401896031108237830603898345976039430878546887860501677753386362672803603690356184720131510096582748409483093050089495216640302818452736492333458572840425553852025942166502533041373902922812328671762602377800783323497134268809855526252880645083198588017556151069873856250964396218182277716820301236268598349276271030953522545794247289953159553929006701391038131007387653781388883334787747938880778929370790180540902397222910957236571714232307638030292304719439852047261600633951155030008370698969204283915996953750499029020466399533271378544669906700194472902906850992139077935363740073132902271844862707814843142673527405179599941115938984105974350987293732119879717855563537836993794989403547364172924783968481110992461699111203646201457685760776810718470523822292410494784756195695126612041678103019619221961988745394380824605221365628262331287877604876856365909259298340543440175584613059019810894345206156477597071864346466409925294526814690207250006717371394780233112528163269811449545483277395034075372847965008710912379719361422679159610246845647356894080986052589793782018646154131888253384415235306238979424563888296965057464236287565704105908238659337140590365073877101554211586802697483803175952415785069862280724511458168921976498527249413516234109977945549148876325556661119897343201448596980640596778977626091219936075760212565717993178326129178606728591885938282518942047314312139226934118777594304232701391631148366459975339931185216711804313565304643897600255399898862633963413294357607057613269691613550205575455843447107420444434187713227243182944973301286004089969004551842623876944613253961830474629776386265613691827167330972975975156305107398675803786404501940392735923719718827368743199517696108517796462435883834147814537383023565760160529414906289939320521837972920883353231438984328799509473517874472947715509157369867960530130007064062925518411682431694358579212984621563348350505293435407423454704273191430164075280516906965967454073625897309123272982883458233768447531275804443139441273522466553307675716490037577915951395881850013427626583345864049370018485894772456832513814018647718979935961512757112173459911010892449915128081900961771071888848157795706184156801020141766216642184317900805215857734442407291574696034928539437087533025169092400269066493266268369824270134058219346757417437259918141897200138107032789193044970256298775704065512401971506906586355812442317530210126491288438574138067174040556272586715181223056193578177234131351491850474141097312793437746309932648329735499253165650597939160280719702390758228515629317628594073184428971994490859723324765906315801157153481347660150299796248624499762380384146620375783189865033078041426174533924468027930650952804897169309621981593367912826827966951714700870990099996571387632690396051919013057472825597696570648530722184138745245200213071681345835383438631990155777610581731784204620005630543957128734073063900044748672754349865496588228791346943178956788439253570879611392716166750917770989627173296502260207933055245338382598501222498230424898479832745380985547568085076834033305595974902905727028621356675288546001378595547641137734552728675549025844560812006168460492120216703233202657595083620981259169855312719836015986540459731135060390588910301025782215862621882699049161659952733625378602698198425453990958471786974391056804475794262853544567198990033810022333383658713347647392910858182742990318246349660533517507757153447274552366913665609427276750914255094584598255712603025561356978276823150947676096208422382449128883143734495416749928594983736752882518693958979078509170001845415945157708400196570150217519100569381346416624293759382893880285278891593779633897503795444970627492918620658314591161846715431657373850115079524945499258973901703408032505127470285559503042710609113030010399464322361776400952359443966698423894658770931040061437484556978045695271688900727911807116436640889896409829207065035311131309702471783082379119025337597068318383963230713965695667030716450377268493724456235468103840055896863314556601198316794704386598250046382301976927469930052446625687068376216573268769343155538185207791813286303910211295286486060046863595841476714395550358105358715419216094581944771434333062942378500960717900081991435685390990805481028441762952089974462165990213728326274950210992927115113438007327784402230829732031667652772074782196195553058088203339033155154502625442191555279852035721992770432273140153934499740157589086718804780215841613606016983642900175815149018388958353546455672185373515565562423614144151230284866466564505923440669654053099660035905509985664824175256407018546469973500474060556418578507685888969082732596418821494697708400999007335496441844842671696228260731865423699080631183855781995019895271422117528179195771960598250850400678971553026644276915981407821980546076862546792409523665955065902832182240888866389284553590049643556785294734644056082275407906373689738712915591231542404356073827633526994411373930513128847004747383122694175051644360366362350403583554593669574186232189669541906608614139261561405974013015656417825507291149706023308285216910232507065570762314517366639378332556647574402442458177196891571742997585649702471740582239901635445342211999102392671255236498359432450125138030211894543625296816713549323820376479051840047866180585796128975392895915864975977556492731199816620371433503118559237717978529373358391959733694396766497522685877838696894916509402852685433072678737850723695393588108312233079154362084477868878142232736685566959927076429764771391150134342808853381375301432370658138490172825123446141727032251243916338302006028616585334605787823171586392614704714676390337110767066624520632396257235989876597122439128386599053055021687810428532430459398601458628362407561195874274063551030462526244071253825730851823551453117962437901376650469767977297863011247234999016271865822897363788679262869695300696468906055449316415020424251157119650698422980165902807829757917266674795815175301360992114405838727072840283337026978691916249490182731938568692417950732109863732255297815142902617602800400025828502733258786759873484345703368028926051964617241783134287455257503511380905345435508603095198954152230683953963424923243088211034960086345867442035500325923356504810554919528408351192571341968360677618666430608951261256412325793481589698638294661269948001427301271331089715162306307904131036493533323239768828138554079782278956025903090274569476537712736912900050479787619805767105461263581940747712291412762492415107022580978993539411610545642068003359800984097690880407526892254048436763956167249698397816185049163487825420738594354320386831642345513990137654799780995348387015600137519813214288155277501896670695692908530435631775580021365155703650405666377205548192169467258636158042820092602556197399047019650805471268701496386268256828483921760967556307703279343572578092601117845437921894614156308088821806119205584920061062782096048582116290800678508212775216879736345518546035815974470552868013334771987507086948864821599000668946890927867485811803849454391564299961858725575479774012198051591329120178992476477006704205656261874754947810530258023508239626917962235107075190237411868386060251426294114395685593384096496920491297271953225731665819660190515833766083985444598679412023752296792266271575758811462033823362943681171693039321376429575259889575627723103452108143225233074740746432122233443750036925709677032275424569928977544316956975965720657099890591476665224945714332136062511634041865868046518088162844469201982174168232809788322230871846343269983244283049918298938036623016912268394539374869257428961110156662225064411819463964111114997696550902229435447156241330767828105341408179304196503838575781475633943085134288201840601596383268132617894967424032704226381273657615411722242267211456105095188329828747071736529185735345243687384649028141966810710220002239493819714257088688119204079394168746021825118172328648415648633120903208238860573182807255163963467165886264310609010252574868919273687883293659269869715480107724911218277709204120155035461370242643181797298842624064210102530019617761354352359241748334524535064396540478720476189344416012901878168916964366970973172633938333793020683693063643657452264206148031327958449695901908927588471156011862595000130591788893737626661951793029594452468933833436890559938900346387527675044968769714415539467093837464174777157339038675084321390528189314086556932748351489120291016302472552612509105172950844112868590999393114556851307657705194650742078480913526919027424353211450972881400826516956190590523193620888838253871854099802259912167314771348881564079630828688069107681353481909283913109061716704501427314299582532892416647738321213563640081909840098712993927048981517952152793165111553074779891702425190093964288210248267565595044042007364079599031710757170157856050523279684365724661638990111570198640620322544811869868271616975459653872252489589066787237381232470177535079456908129061503067135736217022795535002317685838819424211023456366713247987614968644468744453104055599608657180919312926734848537888120107288345401674533196469833024171579719433746161145676119904184484940332986185123500448061064942785791385631579907048992962534707148348619499529945167352515799299225552491848093259128332763435634339921779400844938204000495880118205132612540040766691919052873267040413063983748521800022680455924529413892967071107574885877034658636316269772016024115984925835595453551787872093882859478968556951847506824666222473650395399459908884142988077176583618689367025274660026103126961332972792031200873335537087978724172335039067892436136326052870896907261291421669754934350664427813272334344946659796010607284328779997609317247508004674216817562131567665916839066594304091282247401952209658441494964466465034740359173981708528546325383695405012509386679829840163625738442779605859908507562568681083993992718260716044291589866594070378147942700129930999072581625436436426773299582811815403814367047564573344060879439964026338201486211729952694645098740094283990821617715402415880129697847517548324026264379247194040864454632485647084858311884533829829550748782749258144948218661092773581506621582540353030734971113532241674484279416441332812586216190517757137648076098420991839009596299781341162352811239803696032478155904546314690878312192689682836205111581614800706435305773323167805763198959585223303093594153703466396445961241086364870074923706209840347817134663555362404777289920282709883279228549545216229384308604159888185130381182565777979799083357629651484145432143493258824264714421002967086369299555047014192132690087710857174280314637004771948177004581316492647695278940945322045938758614802223117661541824716708206046616846241879360857806632023058395002971324440089878517840826490608728485457206880758475958301838430383660893994064231609093107637315775789417257999824398659376108006257621299079993375948059836442875649147128131633460351723316933107266835958664125893255732496903962719543748530514101412032207261570889148818206498596214696496634247263894566166962008446575825767832995987580724049483648333771629705221992217446635903213980234854073113619348933822228643472732525296012356652928426971240284041583817402749281771186469504309451623756830095932366938582050819497639155760987773300712995072709740488302589650395106593885076700010096461774091598695880540748614898742807634426358296817706500457813938272195756640151672925064382397810782138208685801455424501917666932930622150714134275231380797269424115060223874835072205677464706683997656047057592033379280540777599638872561417439956670938330497368300089719524902631118776069481309130006102160607625320533184234355074639022548033892467378876565339482070927302545658415635727015785710021934796678344978816415092722276699366118157627399907383884711797197155242102882123411969703725775048950597275031397715241833442071512900460868976239316550129943781070817118669662934550435598318239874005869910788396537398689344702514432263192681478303146923126590922112077400562119802271938656308962905980298185979892344808971819185696876268179790870109372382617543455310957628784585384034133717533010656556963037417146248283251277765972594757536558923496992344335210917720367906808827275398736122973187582250530576121705921384971300615213648508809188385334056087418949457740015423394247944766628377282304894937289740199854810728075111613573449617576946744268832667324720250785608667257859469948120168462779796356016820637017675122490814714741745287546942541306359303598397155147046887871691280591755955497137781378612940239950151272599644556488788409781733937105239020437140928378179805381419998903095354125724839250600520876499060121721723294541243376147285487072542084108015944724923397935294100184814752910435649870740699697377418605883055773376885416201986081245506757916718429370407917568902443873743914865466012173503140371338624388937912979854726461880738246173355993166501565756575336381899407795089073230495429824988245806545147701504215601582786714190350805483298191928464241905782455135543134351435933574492755127669509173156736279233329504368860594469720313892671582003714444364488349433408758878011877100233768860333620006925698762370475528249207041823096156894095726234249831288567923029782259886400514712775038982523447778055365659346794462595094048825143130755756776251853131218128703268772172881493913008884679612229946529647457599504811959068420743765394345309815514929252116686478129331862962610263754617159102617246817195644831358185028445850473976749981830190237797150038815153231914568807811065402783018975020640962417835101042781184560180292473841844977764138722644933454930213280641622118438478275220239070967313817268769306106794479951455662878289213451223703818351373317779088651444922944906560333404203470193194664985881793059457052906531326965275636118058882086518063279881204064128796293870308549736381371171729405248902060956477069550729240207107182317028789366017988348231819640440140865581327878870162059078002248159635768342951514741626744171160669943060674528666385214046899744081457704248864732911320107883344138084860996438581060088261879809473884163473134617649298338123682166258132096604246911519274350052148884670633957857684956852603230255434811412095034483815446318693787942642402386425975283829369096604309610589827530600247280127283425536299341273774165155501108838800275232879698677348038413786499219897344265487971216582051945114290147972040107038111035702173348787607992278833368795990059039787241354344481881333630383818226278537993127494689313761794976244692061533609112532410362805076217429010604758619149243091270631844175466102763155685262881477419885390233191159813984378741751063995864226402093853024864899041415314012171769967288226255472307708929139348149002537048553966613763252665301170980239099759867643964286946753881703822720647002362091092786567684728623649313025954576664314353524350549361740320383788754807858706769337875287014482011182272198487017087593886520931889556490503147767864507967008720261702979040774625072673140228704197095720521224655007883288079670579750579066580826060413712706758969974757683595950201413539920419744765478474063877695285437841027923141750081042721181582735534540183811564670222608723666214984814622571811184188992801958343766488324896752603052681333533058301372673558262415991520374043843585513524887503934890888105750530348652980873493245120062187263582882718144085291311333215308827478716464456857702535780932060574318621329041185605150944052849499722957775596964274920283868275971828940965706663331517470131305914860432409552174719604794996797452833545184696159656235406518015481741703228714447817103802348632384251928268825053209226947144402107038730873772636051907645453603138625738878036061655879086001433929685127074517557380721198817177829349391207582605256940458615963215892294135097254368527385184845116070909425084022968942236023230187780355783492176057687347469105707731553558763283821607614877595549527765965407781785715824272964731015001356516790187891417488599844370888909336277455741344083151005465699069758389655674262409366696677991292141542949540846404829221776251754938224027924988488580432801027560243125569910223500249276146701622375659822378326824738671835618254697746752427143482397692031514681585938459845230817698347140758765447578882799498738222705107706547459175591547677946859322683476978118422092733980217954541940473234822961319461206697074946536590287379156829964856671651173432892320050925488578444266735825783857068687927188315114542834992476942613873220375020431095046320533254605220872884648413717625055732971180217076156364563486447183147717602154826501914306805220178778917497109813571601589441285270122218003027967075442689447587916070208697275606900918956616777445156801508228601669295965017742436465497909733294386493108800133846249604477218137989987919420714675019271403637973686915998626959238743237750296786476510789976545871128720857057733212666273741611692947370980413982415109372344377046210165339047933122077603895123014701865480286969655621707546831167829264664297409630301997367790501597453886153141737050100337229373021992858879290102441007220323026748509828881114046873299618454309168268135565520516916434249109419855560319031439603180303487590733915412015696571168045199769069309160525812700303491480433939100143033625866680309907258984099507358415573805800696175289061854762026650502904737931628280909262350399561777032510382821392104084288798845527768951339551593131493848895106091884242435932273786891571007827991546358824379300953941386181225048091011239949374418547961083418379409088138113410076921846460126691605911886819557437604538136607827330558942309000580488010873225825629313011394503992654642445427122507412696992186853099604314247015838985542641854904513984288885030514673714482654581044347610137529267099739967947817963195704932188188065534345022503230926188582394356870194853926982241762177571269417389820214116824311591469339869259624501356151269855601900492294463278802438089033924574836062508378923637343816974848576892878304045340304904984238404028267863102457742494948743266681770788095905788238595165629764779026325830528518584788041727296890498767870289465883555609684561621540162156585973042176349013540851824554777959062667528573236365450795846724990972122681201652246897324029615631673821549208215879884158291474689752022430027093153796648149448429484795429557416630700112596295503928069583240467619238115315648386518071183782290199546618727900841459150865954541222385198494678170622336163004128995480539341929604303053245120502971303034804764954448990318151688179015742708843663563239989453558631629396119215111769351637252234010251140508747165337141046697552712400840619112045668512907165678684463255707951217616449286537163721796106010460731017158184985757890301101588550137025724931920733473640918451109774860676625493704211582003671079334258509392976087992224494118668157478630316801878556762123195047483260949573155174137805441823084779876509864799151576998596504883283983444589367540231916528082671530148868242333897027933283888781306163358729962665556266954266747084883392503645308408516815036217602790349916251510519641679815792462015310061607749139799000821850431024688230308231822306588222111917285890232319497128243057677489322446222721065706979063550790054636483230154950745911742250836555960776902723142136327260410744451245369569869298335441830298228471652755178504079112285001901823314541571349391130487105248337824574968662449552284427938989315789170597073331507222967342605791784256220490354373156817297636162742754011007148975354806336322396350609992765976914595017886222207566632953771162978652009858681382841158463034817257531077861676446262614260204460880069142036600186336723430804366357629371455772077434510038507856158856594778644480042716315277516083991382196107209722828312347572572009256618812793317037395236603449782903031377160505859621585999298195378563863080178243876341716920444767758565716285598806048884993189389485706377576710110354653227537826253475868164893393834810983367935599155328188049487425692226723347174575920232285032012690655406359019354946747356053013919587438090403713385117630933318303165019139628811279111623805098012411574986272764322835447934196684423903683652877154599672072112288538253655920039425778604546721619338904468910088193992795841808726793809534310251566341545244840852643966140081895204501389960800889548719853929802064324816551276643331341949140885330956070723841362692947911179066043628056166880752602443250356224328944363541591238829591535241134862662203228081011850222688889828434581481257636325740035801270159771942405404678447669227779654040760536056205862645540391727702330670527687299221173217415997617004406161601309027782704376263871633566080987439084293113406632126295167375175237436322071589674621650725418802946868431091171057111650452222538577431980410132288491293084842557469995998812419401717333503332616642855532580848806214859993299678323211295349531134575901424330435987680567116906615951238976380448924040523450464258279583909283230528549955734580012758809033201286804009326515774919633323722132831207293099751307542600001212495534922268824387918839288409205261187979268487097113876691218930582654014776215815291383696083803847161196913700285083970456142681277397241924098256493327715029625686241591299516479555392681964396189051333894577664959028079079862428025002709676299605289050630206584344367196526640449089105598575040322673703103927027610978983117470898008332621982364273343316445086314446649463754954658564370993883988672142448590274351270092516154390363006686835427989043697968588575846085266504703522223753667283699953391360231662964951540894637128077821004546277484903930379930481659628091724419828039762240840650690666878052935309110671942964977665090803377074167932480559068383675283531160983678180898992970002581908709221226854385993137985183186765296602937809794535389894473448116943659761994100388997099913656616041947989566568059490406632383735785327973399649784731524497410183869539757987417400674329200129432211536276435190682459317278984124040529070320680154493472466878483577319428716386095588359598063008046624941247000305897550814980370861097306005768691473798481933306732679833008408717560344641535032546898032464788482519454965225564520838146721672710988896845023034799337945825448901670018361915385558516568109240802750847009274895990142983626819230892235735599224941593510353550576325219318165795114208680129925956770602168058397574825110023544330644579037548764581939689716856848943350974130183151817618313961951377180874853310810366212798945689979028650866335688997419381640603305213315602299633341254099398737041480543099034209576082831314834538971368737700537720658104897813589376528500906642614776088421593376656091065474986757493995097209363724072704799391665616804262594406555685915933138370098241792136135961313478990984975496099319146710091698017311922013198773117752198520302400784116533857313702329784916631422233823737610842887346081876552565253002009236740040086825963167272895764655211261940644919222963388263633610280737200440095248094848702177677939216074051759705413606717847475104492267054872483295659453168941941132728974127995556565582161318405662918713054571281544410894683680364379214066243077584135801187170240859194506930747149468976799820365541830680572560542063999448344256641335346450026605496954071444912281187330435601154665751892807140343279017640222225126778628336303369050289667599349556337540987698629829091417349146002602072996647569401702694447480977595503197527568853613952881511731520432581573310499737922334284392495234537050164033542517276696990199504752139828273419071660909896850455496609081470183401059768908179501796425728356797426194731394966931024493904514513224009726818398867053045242637051803436867779198578918999797038734558836243912725466237926375379699439548413269542630296775897622255011723386533749690983049678630184188267351038643307157975215834355770593947186432564080817335653480677669289435904730248091090206874492977487585885309099443305297204363629674091447422029336483339902727136078660149313887584302030318788672551108515131052886287797931235342765284700708207560673585639283260501881450441771502053482614042007908103237373302813980984026848897626802927255003112217308707609454936654649982874524569319599321730157639991215444001796907368019342304909264826839335419267290375403125004220750878727827185653996394061730623848912050790147477278042782088924158169033357538984134782748208218581557680937736763883968465052263248755759472052466487403449470602109724770018880051552178399456174672078246865100117878182537594433241676239024220744426538285515985189889678920114344184285620367333412857113789394418828798412633201435484058347974931331868133552544406384384745802817359502686908553782019297169128738798786410973383995204225330776461053059640720117025288266313876832142430832651833663960022008610829947483243290132681807785940892435650337716371612755015204691188252703457619056563788571712166401910965546781883722734378200840911999730727864594424879116354405177660921069096346534261291366835401366529611899019873692987008842532368149977943040149327264508922132242551670049021309718951181887365716696590660990929292084972191887327741404789667440584416137131425608521134176693571453481622388096050399647416834192094439185750284409202945490588320321946321852414109794818736329222358725483385664645413971761023192561363103980889380096034106238533607107842516413089133667241014091950056196548111214495869172058326824687201769001765150844594826885610171781664185406465212405695185819843028230328839803023084932695626627973441069139348332123531791364270255058372961348809211676327309236185663022585178807846046369665841679117649471202617734781513726375803493995993795078539659496479428619466263533687008298691122125656188481696504235027014223261534177277324920653551297139730307312262362315227815532387730986374594303678422948334188845429577225830748418667831985331264872040335735877670679075773890093059479111993574175474483630139852790480830196051485836834478853010561772102891834324726963795417583111819070121945421844133406637689344196812139221448298450655447021424983582429982286893802074041855350734592928974588032616584364526836296509259833426540100823423891692071527504917888028934375429872661133915679198438833081127850302177264305043525124044537444815427835062219448927270816570960479973028600692109475285623905102715016872407688018771610177978105151649601409788676402005171692417119911881299632413798750980852469359595271477594123847042519815900213054066803448935800669640821321339764769373675911720272398828769277968905484654040229063246417733236297618142980372435482518654045413150239952718342461429168190860432012263399974329657685654434137223392689681723535611544878808823376842634606509152906649185121745711328722613137536510516998163786511742855383435799369635772841018188045957928209004000731174911438850531882824330405147414614506034638107053562620017558876335560848091460955318752146632964656726994062460078643219987247645100241128283109389646769704667140893295341051906210362028103149106795866905720361712030589533880783480467848768432931004956148605254381837344759196704023797601223954800651364296038997293461939790629579989974839418806027863150064109479172391408024129701472384548372375586792435172290759944991218761448675041589279771007400519282106833122384290451457282854539293808409385378810431514023741840711444358876120928141924263646186326793926311593274120299858385145162341995154531841579714049145561413260135359461039981346003574112478743777191772420060487790509393858007244878861655442685683253477662502773107203920551921652302173274321374211663512492824651836893435288009209500238609308390021317831628677696575064078786243917525513665415402025908787920943862356584243136527273931643053527639970867886392623810522096604178004941185910929986409846510606910823999147069838901918594761907290931075099746729279538094013237522922204196176207811807149180480645253209986774719484037132647202230799406627918969326478441627438085317466404917516214284000027519674493236846961813656310960083373634204507245691207877766793912193789479523987295340674956067726130133961477655031595271898801483316664200684852311254168650080584378887156090076085753007169408096740115815386289854082172760341859038313003562856132646742088122434320120481285305699781846984933200867145177454888722208388217288706155824789205445765543131177428322080040069092095182992986368794493496135508385060759913063808485768176664127963235006630170115024958887766139502433549404139764127426471029713733230265059705202935666870776424879241333243477973428026638216836901860144948268083015786472753503880578633036128379777369473936068024831338330503365782835564423975386061273349790093268658772674207743370974865585506860053555043072570972715352639170395607337252882555996192152650738649872529853872074101257844369507480273932860490861166099759312460640182897311502592318179704273092594037055751210729668087648558985546267745382968998320293473543558817381729984994398543051606084219631950125024850921686210055479897998767585596338256496275075526354298571765408143022978027824202494503961366737592953329228010399206825966266803621612129320018620054262113171315703111978884612411344944421458726209490854100003749775940563890332845046916509013797322921981791586937527245966856131726852920614581157457288769419623758955946560952263572878994211686747581270810061100450402484264216203328169923949177512446775315295972650989017931547166487151507913556833866930235588739691580431753416929818242381026784775509207789436345473344238776452249150289364404075874570327502990428538209898355224667653754877698190530964751030519009575191108440157689554635111530194649160592286404177863401015113833963561495018674776204556901299624581413149811082879115948025443352528855813667914481836442068197913063618509668036889156741410949317290947728082399903665314056659589787415129807288983481868430153869681001125915179984218231189715363333067266646596316848012462620293111834586269472058085525976976826726325965239137526526267056653815503747251553879783174426760147702258020009953810125699165736836000328625796335391948780501806266331478706835175724786897504118314819116249497185390350317297378274776284370615180084858282613805716152058467974813415553849054955679149234531005091175345084794243257676971512086445163457685609744382013863934327829452940000195141389227558693144175029783240338625936401146224237770037158880096268376555560363831282127400664315642388867942783184258842497768996494456368658883557496782271595513940457386782303534974915937071718991286773313161481955835294809589935353928091264108635614305248242818966345581118594971247867942188126768370155684948000971226479219225457628025975839974156329774174914580653653960385126943666152386627675296624064437997563720264940043829741861202098830121849802920527348022281163890652683548234184952769757686297725922199290397899519155971189333949471638516061156840306907733911255259859011653771763125199274118401258679304349979840614104353752589379860179894047710627159735299452804663089402824542843491824202527777137778244100513969718992651039532846124692434196261377393324777398466312644536519256793518216150391039999657236737152999031309887374055589814470516098141119154988590245597240095256965115741023317773949579382772880055451230953055991406657631207355156876977653628653346581004133476888375416227188518334327710598176660658597830895157874831994526406141759835274199926487564729030630581246780761183039284630018801984635687265864580007899730739123306622607367225260177234992037899035489883861185433622207293995046360023729574109437643722761334932882620391310313549905148508237507551750387913474910222020808883584961536678232613388310462805302380940483861873120686163457915818460024637648471927230955805148494114506713367641079725012916030673691060165198989872506624749526283523400744963849694874024153517195507114336120139470214081216520832258467818194035573404351121266273459770017449580298254567337992296167401294079103406507434739600069767939376259244179911479785865664166496122349381909153657431933076965483805321235463197822353014341322948816370581447356775074432307398366069450338882617163146304107026555966705880896472509462407637564030826988208083483048792739769054628409732432532869614456741516781971595230303159491672254563860164749487188509453130066783717405935771839856186917048220395701659981504428826188149930159592899550150597872050360700962141065935119577309637439489953203557482496693439214912814264258707943279092218475630415034890587878482899983098385042886942967247932459163744474102362414930906125194147967132234746247534901675259458515914003122755527178450382323424460688066322641178082407583577920521704040439821758545086310687019840336533508195075923963205836267946387485974124243848197269970063812251258491040621329544287127482347510237265613941965429199767292999991934352080148714257206400912319189572608406265125411475976051736378371413226122354143614176218066734342369033774945566578557409526495683811762346823808832960716763783407817091689736987755143605213508885138817994706129698892695300724021387163205617711426180902037247069017235353140302938678755818347366470272965709012633602449414276161267918241871980118183700390688796808807347078550446262031976956821235891503266937219685686427768714252549582200189603397409213475234443539701451987774192339806274481236208800267332509650118156297500696892004579043018403976849711977771870395161563075831342029256387173971345261013061500433810998135386042839555208386386152337975065613443939607013841312548214147141381888811062671022558041047028370642344881229259721842341424191419014927630841405428965761209683042242576337113960546640252352438283971383168950619944190116216536616060175552851088482584867436025044204739012423267203500415078340912924193050731589284512522330979479097859035518180855950238926434741690482110293505476963070022496967053259330640280220978985058229822098392413650798694009738342423101197162522366513000174703665952342127914604058070612529187769389181708801295474120342596394996064677335299223891396497426029401301544718518009964761832021404813648005582448130689108577876634142506675651731856378679353264474387556558703523567895612120756240838432122386730136825742948301135700703601734176040270453731484906148794556107043076134536096369646272015252495628716651245679259431374916801994034674879660101838155095256810710872591919137351277306849696959710092380896198229687244167585204406138275226322047092244970148157423241983622980588085521691215806028473284232299409360829326763571631237028458864851712257640018969079900199445828317310146194285428598994092492076437140910340764527603661880355613542280265915316844070423110555205474731197274592258105092501375772384642868500837915485859722737708876989977203251797464510582695220005939829600370346457519410882545018605193525310563751783131674364941657996380818289982549556379662170008576622625548637439592886502790848039275083471216552135920441777139585619935636768619208020589432862276043327622684469504315301379100095653542995100533456517564181350746478554873959561578307036791887292407912225601866876019178398254365382005260384066122936363322023885314916047954992138221695439491845307485521201390060365267761695433726935070406536513683211773357427297409154894721933554960657802156226322592557058259703919550243018439694299951962292305909639653209958560115694401250922173896962064975994309029531935681132971002332228186881397218484226713884507991479297066452808440160713962708883335255043019128651811035171327050826619464488652371394873541386980378791083704110961405239812726177402972473495124874640289346505894092141590601619137744688399158609777215382755552319363569561372977755814567229868229490756648043985394640066826687572176417633428872257425328434016565810701684818762531070756031230501947816436672839293744783839138939842024510749806690886891756076229664978011293582206961204679462190902418130710775000108943504052603405589398368282467918192669964282894977178579399770692928147860225915918887027835478043228502749957310400233130972883778886902009149518559794221085335702612911718008493826921219180690771494825196575355132706716135556573973979098337116330123523853149953033432228925531159596025395387784260935124703154539523410613063204737745552627108357829549699544621311441094035682373165023356785397100525745822642793855330829217993195821134807375515656924128221000833116793590214809357372342300143169249888578272501539508050182866116982578589671360991687723407494833021972459300367187045611207079654789762508019664194448553021739438310472970748990809857274273708705133636827811749884318522451829882256652129449782871959402757426384375865645739884140333860184885880067802360791020206203974179627703239045323106188892348002902552695139772270506455226851540268442592622750563419971031614802823627982716174381925465064992161223420108817407558815786140270469140442413387522986039236441099504983820135630308095122010317619012426046735240565896666732379104175334276091306435100208359063007769054265644260663231072526027525409105076249723111503341483900256982681288151412853132459977523697556658094527796265619763560987930828416931383403307711316846510711856297299500765385346773724804056438930921784457869536647234159929408163214943174037204603482784397950960601902953684837522094141364457659907348260024270609846202214701193530075180636713927806356918002857116738952553925506685508682978792889106319252062145702312443873368871955441218020607280401973260087561424130982318119866075876736374736168540003585356383519279213681968812835755558250150559892032521830597596451503033170229950245305968878016146282439938640638041357820735278956119910517872747161697381491979047771655581020647183163955012647236172059456522181787103123641246653421631682133193396876554106538579647114614921424142081904755341712421109104633121766185748661838396417560725642368915968804846692994012866622133367707504240726233849738450293949039110684304132904227970659547230397666352600902208740744047372722221421911363719986433621216352220850956774855113267897436902645736725601539097210310341922355471368874762111328012485751297013263873893876138643850278520106721393662606208267292367588795933810416096083477793627425037352541000524444314125448681280987546359983383471540609607746743510856728337420681468053010847202153825775678802788013906252806721298390009757663494815952951476756363427995586719923789099428772063288704367932456479909567074449573337546364476089626372164421032970065700226801221312172915191148644557155164429316987301691814418577346747113040547797286986916837787197194393917882104955312675282895299657944139907888076470451356656379314113631491962569727495398124111449303593084123673480897818113143193556999680227757920467160354141073370045380796555288365378197772960567724651900484121477922673676184281874713626374606198139494453474934644192156868189000021076347933492921525396852703868549683053578452065858079793814917384755945746561155638889324292365046757306625183033964647976024925921889488577227212344216647704295081130582063235978454694376030791298743874633702548048613266138260378949611935734015815958421059218098833860631413039040289265799085886243874446802557668674467269372110437747846798684770815066630045916957620383511603228630784451691409975215300382990481960910931724260269371275001393852820108870806646494755260019909769949081317790086260628987676066350059613833732142556039522235421661211890534886296393370078285091395855368617774915317780979941578659723135767972150060972954600850768315955643312153329790331681064596897799075857901214119635953047921844269550168119359879122650047050598342973171518478819526021400078688169834302069200710336317946971064666009473315491153445175613252223167934063952328535294134483392389991681402383484929943307508246489516276868593959665782050831071623576300283999619775149706465469473843559680170695792074796377226535840051394089231494447234889558627632613118973217692156638356745403317318649916864081534916626260474892732845067000770185651723272345768016692494581544854599159274483223257209294409737979257180877198336181855323352765598555298984471152657686847225162166841831941014472175395426698349702151570433054485505637131553272408824781522616423264904761636331043337275456989773206856903689478575293052243957003186724175638463045578876404040644103332852012424819627238631220792178052465915174845847421294448421825885416170188470345449467330607853897637598564041789251606137158469009619894351878404986047054736946703307825027806197693394295392243547880153033988118252644100952248947124800221019353269321905553254904341856644996338158919003382622432348060420729328381980447477116778918900034032212672246884950443416572400435378693712263334242944226931336342358521448356698811319033915158698758145861815306417401399748635354207533469688291407828666033286718669716097263466553137927752810502757631591059044864156852635013184575117447566889230691184100053270756628978820240846558932438741163258287319594191931059714178562784112928447414937235370043115548526197272101954402351431867432758164793653830282240857362524715454400820148184744438924629622595548466841043179414483479697056350946510779567735169712202601281085096656172695418007969789011357134561949166923516748622446199077140420339665981616558121949571981917692512350703932060818244601831056162676577627964749394445957503456670192235264815534364816384663182228022726305326423729034328743050144771770815145098247545710505622738274167228046212952349962181706928996725070605565094167206200240452014390092153601782082759896804404948335808262945631463120793197189753780573754526389556622092132120686679054069967959659979650790484318542749732359952492927000665375585501916775316384690307455470035142508537964171266359819696021680653710341806456445445462340998075112086861278189161788391083593876729281692070162761638039559600789325824686596249215672859393611786653582253929915482555495915604771797489923155578441987911975676752876123090594150141464455810541195325577489930330275023348325891521691977947685302933799517588381739225676833958167076287145996869750391390579525173563967423372179758574941861995657165958415140035758071857460236044905383752730622654596160829119961358920386013806277535191988271279110765587693527153528965957772420517558038941677701138990671630395544261366763802285348369966132481373392316163178035552429957150440611059422255205841280020194536847361236028175197612315143101231078634085973470973554510158042581486595179541804137969694835927415158301518917677856715987064373003170575729069663114894318711286274096059664911424464142861367439358273068285510597990697778808098726903650709397331022026317826789867639581243512720581530955141502635505792188267360482060466915325627033652059961355965871817455934258750216547707048536283113349915993527671698486263104525567471233313004360508135704544097273531526596773888923330464297685980187886997616445515382325338122228036290996377931765693336958426236386498923137953232664348580875927126286069686513311977867487545181409691530695902770547854796892634528160797682281562400449965554034251037093116015360621321219196112032126120305621810949269468877120055126996989549135868505486610767287828986018041238035615421137344395113664510987761578943129344732114322108981388900910637222980600036143937405041212090449210285792566491243137887651353059573081565340826691372846840634317006381298954679542208166414226924212219931340181385076323834087658556559000011812613985483286246565405577123066290226791069166254738621638918374544750752015035592106297314069381744716611120124064745986601502369365528711232667151691600062215057431274504443751604436743021498334623771302284828257600894525717607797422122012437972771826257642082617045322777639889594619241019266676573256723243422719161973542557373943377382672593413605195733529996923072572808690592205512530305869367961861219318360457667555028379220889129832972002807868912425921222255935694231959960708536940940658113402796335698564715433540826497126399437247043439722647144704751021807781008356635030529893775197389022823167700285311684566306723458198367301045902017713726693398912181540661033439823708379380128233662612868356229393407986024994895749648652598074488563773266676455415656312917248020758656862755576073949529388757674241972443745026162903090276692539120953130306081640360314662624288142052511342182289041885690328250546807570133160087715451695557573788041520988107608990925661896949685943905870051843083466987232490358934568278676794701804692874553640919346093952394362915389925604161580101888148828069668589652509596843160376578196630949943260030706785060105905271318794191502791077828478845378729433562466587799014306950044033770297242402161204128504019563472098387516580128772791264048668592403375133224094434483968482663099854527621012031977167123451623618651777241937138764884536299550376637411789255946485912591202272369187881173056220251309946458429310514059782934011225490220816163814062623969605711839633294391028673984789320256717399150644913027236032167436577807360110684636301697942914141746359870638661240479374481624388270211588041942863301981771951447887403536308418057797880985802110283525336459953993310920534937069110795117386675250676829249973923259885593193764835274705573768698802201427979271503615229489271440185514986548539147391266854865208511927640947631423058592987134803723499444107797315838268582644698633268377641370450227351575976262725832198451717309917232648766066636630883192895530609827227437448127107611942236492679771062725410849406437853590032572722710326824760808150727296883920793604555900302879368140474944817560132231819663658927839509523658825334495724570133591608117550273648848593977921927428811980645005217019162800696544315669313882476038256503671326228062308028423600230655281916244983651263426392853638677433967167536638960543868941424001943122996588204046778151963044500143829191422114635713628571022853974824350207443576827532894430169809302581183381395516921024969119977163316882923135348842035893201224992657952505175794277798797770646229992635295635285324292644145007800828722803546385919976534856495530833297857161237736738316533874837962934850131254759664264754349512446194098543961718426678278801910182935784214887905854982976545899627808464125261704683751884869838312204548540812634900256194413611375750694658667621810133512542969714192422486202014110246884117819642423446539695938456705164090661571535870309214337264163472540423108193709431271209273156245135370498191931778403452448588363603864230552719619625508895906218673866910892255533459815288911389079409563996310674173103243664038904988023675277447779935222573954690717041384405694243163133329916241137960984521891299127460445536306712515863575594860163509247820742549187230511954893086354108724745047976628987716499072133855748437529130684244851808006374648056795640258381144130235348930558402415393042406793433538664058240909933503011166731070283308053168775761356785995504693570911856397187523989068783525113145535459768705536677755725925438417863972989003006576851023393954981938794578581078010298398600649539669107393467577189872477250202897294727319952014913778714752482314233955313507899923226118132836529217987920022632810724915975715581967656757522111837752728463407343643556822610321450179649462370900385767779190033513907949630660150080540387190456806831724489357577470014752242409931538368365409127452252855295375724577620241767502162695876430500350289236191921738571103240423674401243960198606075459398015726135296132835576113791654220366737380984115870208546752373448705772595035437481736767274334468736875210196535950500463220043633364956781558013309054752424662592751333595262192157511013607725915826305793603287274051678929423147842670009464564963476116754443988181336684773244806747652160674134443031045659736480294493378157982086758706088173056434311814773280936357001212569552998249714419745394451545472783282484064296974745697890790075413698494703517579515427987238679960677108886612260562428955866596898728034486046386566529393702874686661018170352554052358786083379992847214033865142813532315728488737039782719439136054640567447042375506971486863223890030731520898825576326806879142883430387587239470942198031225936702722974892320226287689569225847503083914748359343113555943501609388319869092495208677234302275224364360260377672388450156744913199724595298583154533536940094265329203878499656930718089129664268050875724573577627458038039713763919919381960180424153681039806163564396195315854802659457589304578109053992475480984023377034349071954333856481007763135184589298344769980816452676313793734118601986765680288046393751219703202950387196954135196370764740549200800837732629345693769804911765160681622756810396916376750602201653887147861278039831988209735159953723711718954450587749362650381548569711006077610261434128568948422190797377221667167542288991130488011778364074554371025052409908589477587623984289063491641622332038023254338975154467894671851581442341155743247429241647256851443993758188931846336379093521647732355966872161033873420202172901146863530275731709904870546985061016101330608887025795908839140064569742147442008113926315054320257087745372758022305528967562629185980754511340788144719841953176613452479041782517930916204442685043089805083468160598216065307194671290057010617358586958115554882036395088741494067386154664816721795084778909628597247332589493181812298573527644422195010221962972202008728854550611886689335782460577381783526681822504885273264059415620700323583402629974352606988853913000619857846088585406825506368024946452338244421192051155492200689977705979360750558909354719228385403769409342196934110500117243663390900390577686262340563927385491649822983972462008205524020343659615333635721849175288477083589327596959819985382437235719863560342144219272929242393885664924430779840979510573545051308362796203484566289365351555590508394281223194836654350397433519999344499057586077050386971136264081510977986047324127237665559924649310647805803892875119830714816599575583623105593859096210599322293362079325862380754765528744879025490676364903889243350953360416043158198940437245586550555019753503702957987301091246369284959976583525360593019000598084167355065840815243917164616124379692991250496358441502588657389165672101208953557158960783725572983732631723771940162422791497863524999336426677131547741631578912662424269972488015723993896203345715358774358369385030183783017402629733938686617670767079021054297999666484180643052211221208025396298484709297341149203757516828261955639912598962946119600201896899962281301868719058920117618593223846074225971501179517052070728859891811546767073133497625832311801398593753549670163413106162050076634464327352340942137827598275189441730213528173188652644569458476172981068464709198703168803596029631479581144348656013378824400463403725534179317675291391166245250912744868429705235169630601223919556581335350570478727017878266929933924096131668512107572656742661036415462475894456576991541883238863859474403061291710453816670454751982697386597288601407542396544576744660826988157907532809007341514630843228601420926679915848598866062466883581539332957813347709525547857003656093861521854972455162240978066695091583073704967509950249995011894529299000366461930607695472426739055694051445658907826729144993444766532208318665912872085692751026132982359441771153380190387042574934543974279721312697605092802811090812013161182935183201615935078975937670068077350927833406397229652968808451781811234478833131222645872910143008206104250262740505387852170656107493519763360931928800911736066044766042549536027184701730114991242558669521692080235067725276447870574680622383825020608402933244062929603609145007617789272046384734990348162486475778326809552045029089037832494122057083587379790067940377051005665141763878010080860043358702830989804388413729191706431681674749904694606265449304347982488167297221879079738326157622683088027862833277491406592145054444311259923241061563052376611737363177019755953378387674174435092047320791515098104749345997998712644171243233786702380336312135314211077941725382351868719384346198061648932612346970305797858702164247554330548838497844784319485941090859393232034083997654886187032545147955803134278200698291640023251081952956584242843702812320882920031599329398115067911082899034780495266430843655506286442293415055090257647531362526372423492207631132543867522253292387415510484798868459430172582417314551995454775766029457119218339057717661501636726640182681929961198321701985512138252129926898951103744636675274941501484915779392427275659782825381699852436749988670235188905989633607467070834222639668897160851596778181967396850141943997699441606892779446487356260435628663510848477753342182961971717695501285066314071640693723783161529697275859872684883139269947115378267420721154021868575541696360997120513005946574846302064083891981729530264708745670794143311856057447061604547038211026359045029977024241665721269003326842011185640044578398207549952831739021994818766052272576745649235791919533454208253885839636452059128718102532114111673772207567961871918555617552954763541923226078750025935526898819403994246893449700410368007534580073332370616679935904214236413345810843435968654340801494314715291742529463901883106613582802269677806538602623780021062037502640421695404391365467048112640018487295842841486386932111105145173446314609528014213573947095374865209637675855136979821638276684669516048971851733472903235655144639126798573621553311600874547889523344590327712470089816385005539189701784676691384649788440847416842742937292996162922505460409546732363226282594637842344404467891630311410893044601276076872560633459981371864127824160035870696988879747020547624903195628264360443801798845746100197601163375760108065864290927780566348419221409324519827014968135976115026354523405682885547907970420411546959156095267438624107171330461982589168673903988304899947209126571973384951218459188277737387162309582797560150948213246778790277420616261670623436218099207208812855669240160259965393550714497345974267921650243136949911796486835050977626915372467241216557305761218212701962888927528096173223407911383922771951249096794383052924179827204096717676160012587655947807911030129100035282281558155911768095278808827382162256847828740504628246133156603957243390863587704915800012911690253284465666096421847561530261467809697872442484991582735112119019696993557860141080281670091184739207421774423928324274099837811976676772757265849952362942954251850219975816387249971810957143732714746001320522760642451782593498849766196748954340785896686127107263523860850854569060734341992593823094571405844514464284783424768060025207909610819517931415673903903933971822825858959693952313814137540096347128607496229427245252494640399322436857623981519558023297428129759876600294465346309069284741667989326566096028527696203987320252968662451322120362503163208974717360878300093861386767895436152399543300720359825364133006207807479265400614426382606328358045092932124505422970010466381081912640918461114116455151163309189803504836407633419967177179213604782039218081729406043104771910966005798934906032433746332731300510276575140881250960334180380126117649017178159599838074251559766669416509047572211286795883127329801061470839182580273221503446890364582184061863362202869927980826792592709929541611758732671218161498644342528911302121627405411758274904349561546245777788902051538143896990462844825878646126282532729648566910304383344591754871858120160505832662214381478954175135679546070451689117611577345096375697914215841339457671773530753450780711680999853649704348128765169915959569868088996240289272680576309210991682581701118973921439772063302827949232696402310799784991166585968123313730788305390466313563426718444988948246573509817093212836555549729600736196478878377532422308232869157641419154530167409280361705060283903090011978125795662876169641676792141921091292221026013611842749926344361034168805070609953405451851909085756590921234936032555608466742113334045594951494227307531870845184218101969878991733166407427510562027417454967927284658004311262481955723281343267525797806583809086168351371148067948724433300014555570553791624368453470407918688707283355198682003280627303716806980729590375788259409898580210075461850520478257307792371827046152244539464580021148988555910002610222811356897989565437107658009512115759714243260975787086738290712115225605367018043549258982562329655602353549981909134913876259671949325546832367386883228377439781247232421649293534808280022206594369270176367432913304486310496281321153290077982002339068556301262976172925311747700492204836097328771404941870352073407143368728933836266416014474383269232175411485148231048602383509389397561452695223355214422145537549097847784310727106572144657804682716169699197265436946871075965076389922558038984951158939450279164124330051389740732550347104652016928647211855335238007943968383339346959992638710291680920287081541238836324517627898863641021078301794423522938454423703883675333491104212590043816049098499642539628386284566193712965372751683557535463032778986579800176046952809375264798176000553055185173574809397962289729361554834886846424725608611229312345886622987981089164748094833697929233579103165825855027715876954997689508668954997487962192793262666541238057035971779850524607686879027614894458571693457456574080945898231774293784008967911773517605314098616615978426779996022483011939457154615158207989258354425639060533900908570719537730912259503751732156866672776920519612231737383393797811410093280522286330882694035678476630772422260453575249275337189648681704764547308506584219487921718442037469981462228730777182727279190365423963166408532072544022378035735696638068887619040525006316223816445826181276129882088799788441875042119172304658780658624087099443633364030636379117171341076111378483133733560667228225657993157315375419377335599948074938036327771910706359067819541039630535908509851378125610874801799916319773453960322129977566040343259629762518395382120188133886863567347749266661770220804397351473425508976703402274465479130870085834579617253730549623566376485133402725756961142016846042780458487598082660841415211713393195195675375862787828531940135214933128655868697002971254513605073107174934281259850877770924154994720616841012149424659969912512042363691300497737464976349502412574207919804796530490072301237361818325480254870168010459331016433252007676373632439897054685390683303842103926171300303052532916989309092528629350496991547376474262686067341042313520937563426330666509470097445134115152554612054271837649480648397281404977661661346716894341547709192681730205277000744038077902960966493110977329972320568232954141802175714187369651206239493215605291717485246513552583417004383685627778270703660513922297366251117941142966497058057237509735045051835043933811050968468612031283489479968669240175112623659719666431292251411413461077718829686614082849754394451942472849614117716328531578190068105311692791721033699685788421174477079731167208333784693340670339706894178810339554468621526820384723770958560713173178102360904028002736300157770119927789134754963656197325174715090688545275370178488037361931948868746308609116292576847899634511134341782399179503304143023236200202443198872989084241074911447054423262467965046587168855151638059245443664217205713130381235928286540082215642511936513477037970969917807617000372123384675797768581348107221356244785809108018574585126024040871341779081391687493300405234633178779422452785430555001184605050247867954307774964822686548017599947448757465103183083592797478572259316471034948398098810890348419664260940182885682352536665343106414118730985522831567145509318174056963679414669351723644493551328037748023175022285523715319347862860333578525412963135924395598318143233655242048898187081376056104993440996564341202601256187988012282497219401399917417650277070267351955980627351433615720568938341387379901127192965709035425155687451750235357384643208307755759907342335830941852120608949413862375115218199118605265176390841223584873382765076224583590796851917970356215647283595320682485286698628528442159013443197261318041544716198829029681187503854802187729859075278361285414142805061632568682740004592223468438580229134513907922300674531644726716608759420971121424076153733356762297571783990880115705284281080287539991551430379130803296960842934939029069539107289006145850420815350071846101342889467371028073698451094647449558993319063666194891834202722513239432652068922775350762640111199289910514910584941396136474560573477185974511451661406839629848160465429356576046267365803867363235303430845584973175949801681173497516946225343278078903384348256284422387680208168785080409747983858654632370428289285298309745471194302943742960069883689086049584063929310094910820850138892582587284592723912489329857529426378106969766668570094502840452363477727219429787453446869314024227543849914943553239390513961909767285085149159005359637200699800723004582673096262490953313334860549666516799284863842268988401244057375035175655994236098343753195294499142893701998148160777417546381489656457556461951341346014559497233255764395613102151838697884555697718079311706105054495034757858047200353782466368238913557207702877847075123064715855684502504311412409652002587556413780279060742467210882336770347958441920945050561663921247717166946992850398329626685188014788539670310728959654209989784149282828567316076011620972866633890366939147743363568921382632056562856089044400324441747367452142108326359368584574756684684707946825931917951492821744610363196318979394277374851216165387965378803646365532604127567958807928879306281388463739196911516549037219680445937559915649274920051747984284032477256377252396166027176423479301513471309814057485954153191429662403165227674511056589987014347275533973733735330879714135691630549978803127508960456772050991727008693647459915374046643954070719166875646399808055392891862137158041662154534286943326167261579982262632725724287954515236289788368615023662403112493255514538022838253822875469174744718468214169501866242373353887639967356559435745740048731881989247878334284888446717254409267040469487829305726600413127601398603805354429362245657938178825712943231011872281326489544133761675071315361162400668954179968211137952791050552109179779412743987910179015207116949979039128421450407427820681280733350400098239665254620615507892256636793198358896464534115335184711504920129098701297116850115020796938920428047547632706993401478105830527963689400549463184092399814565763962391702375694870526225217730463811597565113430729161760729857206610398676880823959815773126912040592282939401657781484956126728747424826380436277401141519308327362729239199635106733273506761555336683122554527636230312337326042517525264223010387233686068855320497561255924514687651435542301188495755399420605090566153930970967588407750882807712498796147227687926696596855453678501024730693380566899481494977036417602089024186123666905856653468251070551265110662447914489659319520749108658949806564806040657639070731307243183821488015184591343275594289134712600272282451015556681467942231952445169310140475242758911216846002614157396647263718038182789061807000187498842888768998546700484193933188998457691822821495980148500042898068313299653782701899374872312103127209156731108038955661682512724280568084250586713891244538618297889997242380177633252333741860807096236168736650598648389757272550110851566177160360537147538935938363987178192464418655345313004886817249181304707439193337458443688483814189365725034224060850997842525166674101375193897750981733491941548238088105835931259068651968031212058665595393832756101748878365592481380894863892918003332031625205185272118430328604490268502403395194777540716283573474184129289893838573798964798841482914845716696753367647495087978368709804772631696990298413621333828476067430579722677320209680795702843858375262224529390612270868294427200720827165766386000299253556197153159026274458343606277093288541185169713598150604389859534876986529378560499738979638175670847066970094622532492483182781024327217253725423940874229812282766538217029013959431612298425820970799268155047467226295905011288992832758233428493624959286974523326268982865494334117665208988990496965296138936526731031713452591464333349062431843576369164648959031004981547637014851734563137279425161177503904351842092139307516040247325587072731717861053133297888902331745558563440650600552892654576752775284910207587649211577549370921232643172582676860187811603937454454760818982992233214977596517449266712861024469236540610189300877149571332078603227514026446574500788319540350616077319892256190516129076386572733709357275192442157735820434722017550563036794602924408256781024983754577813458671654891307731195244999160579434773565348037809065861405871329971765246370736232531204664080735749493244959293668196892513195988182771882840808051828361969276874265745181370703719014851921123702789623979703161680749853247713357642637961904498978768195332609359613865563742391100259033251958627652987509868416996001670385738357633766175032805158583136911614862616202661793484569791591247467316525167725410650816269297164705277936973813267951139144197491507956102918922073300309657157917613904323867097670261454827125172740569005346024046437941174529646152489112702120097265572673619684921947015268051109436108785846732052609592542301122943937298196921087454118505123034768273629506182061623011102224111118054966589765247398642586293440085734508327882812997655594168388869010403510616836260225544399079875141304554375601255078201691963088888996803853725911341341677590592099672829471504500386745408652523849935734732965174359300103361164064910619999607601662348785975281911321098981133536156760597360980251941582400729253702936631549030187123640439813895935789658954391180941139816300414612898833100618644906554577989660816076401109431317975991797452914053270281322741515869900199962653101213187100212028242780601318650459898621908132667446621458062510481498261156253595936219466957357017951717093427850576953944589530607471641821116270591102010862723074935427370296620533027223693701550449569250323744206467055859808554286022511430393894489754644652231912509937776108557842731422747538393790690309378918718471386935315905554137871144752127857833178435612583253334280527381631329254298986697552827925030087964508989969304991563279834811547836528386807307434513978952024584285586066164019365074797550936772452308043025972781250427471413507063609774315820570589288502773557334843669512377778877957485678341970558914713242193930914165422147284544173407435683694195835600121797445053490805227330984216851977746165300197151786706347664670228936124332085271720603733107977006754645574413962809975806127586274798041545890125233367143190544150719448644573956057937248227703879517492058400551431522377993621974991497328611294409162919626662721310722285657679078329612800098581289430821924182717461659132472626107251230219937971124793812679299465044661081474212257716366414933452713924139745965785713768775537841516538675200672585644831028069551649809271143062413620089211361764080020363559146182394215234554951043441321816217118082548531302553506419600829390754435349994872956702497477645327299547767471960241208244977659222308487963643610686979263540173366959436912009808540850789620057805822500788045487190767917471714104772661517270148789145338723061710514225131992450672552170947603594825510999688946385382826124931033319206494738973361228603898583156905372528676402803734684412323396613263995530570379522294143939619966016526819322024043502237248496206899480386850983076458749338682492282706794276457817982839412295067404760144899346770762941389020354148711845933845491622107434513362383083641783799892041242679333883975767490504723642828549513680939826867137099644022755563355261258544411857712511702975217841426164730703643746063393696139484698150509676046247352241795932560801618162771946220945176471284344484927414565871023657185488112605813305250056437092095057189104103346521717695960784676194358442976238542607670971616140394896261990331670639337849601604039041076936976556548223686001794633060346216810500999583130756635149582753438555484875244541129296487051175858109127839158129245131671941812112452771231702845709520820906181254023673025843662361196561736531362085397402883919192598117143454125463678107104894839601061931111227610436036222408230698668414034554463823802876420391443076309115010347753136199513193770309123935143707252876601867142337888146430801456954642489027670186048543125357640824855190406595111296873679944505554220271712055472624840622404255697220955486996159113482679618012762414363569539722861598826492615585589745762711187082912580461943013744274760192903187236086011627604947454009250608276945115011233981234868499390980361820399253446949175290681881265079198672830216790041022400276610216101292978481970421516445712044223890329298413789968763414778713919921430899524348476530669558075644430238637637901201234361325816563443926323837118765012649034421592088881799530065167783527606287854726622904284609390091702138510039946517357372456521294379463719117379265679440909020860541403469014579092989891860544774535576564044056338065427089775800465642406367216323276988186745967153599402125027753936409156896246565361754492288726842573726014444491121625850683045445939754415032577664782179034588617782351972644524243051341092783510360028827707254640907378415785220427269053852462502251032681615285167497896022111951708630010834958805940562577655147359602201947801989696971219045843576325041274161665666027406871487551392739059760977891564086510507538771901742339249564856570687758332604398317370124303041493596844683862559806609605882703307100154862354445397093328611225581000306503550488768014007768791789756228565968036043245849696635327563115363989189751028748737165430095094564626437626606335949104542861180112050396030485636698584781512605126978772550432675255136455824595081813590477463057538349262795844690629752957924450620205652509838157337757318981722174272206695759619464462448507770193837792575022564980670751292792487030967403180859251324394559190232594745939380455224079317416878649331285674565619689725348405653074386877370127889050532089234049654117155069239386674565860035073778894221120633679238426221624056995602335852823767928392019200280151948891865726907021061449377999316270688161314875198915351397629305491283437153760460353166324409958182094989705968593737961362904840112501283920248549652238664008085795363052378239131741732213193538778127098250161265541635474897420535815322034023637769506616285302660640300829713228720462249388576077199936225197021283920462426244479858169506534130336673351559469878474911270483719324425485118479761713222719436032035066899859402367145502542288584033505065197494385718028909402135400266630623345008550503007624792336246204930414169445713501040584690650236716687846099334809605123844990637416751317706871629347425995350372436259657026692957960192934832251525768149441178216400624944067771764031881073084952191861247479623724484210448894569779753511213247940826708913950105976025894183337011239777499574039757659707322087191403874480874900707976675127849320056484477966188748941636329871121084625816957533816541525604032989135650962951886125999976851595923119396936118449632669703258513995277097792981601631603133209021304557525665993957224881714871158074218939002239311719388678867792482293367127802298921537819513835131771536523766029764398679207775506195506394739157051777692145831256322852812610900411862078295459939107251026337788681888685511014896808991929615795284126078684180639366956198610999521494058475556359465369297920240397248913043157721176704173236513421071100646986905440324852316026252726167263767379243648940490696817723731483617155902641303885983292885229538752304659663838927621306009682997990814951274220449693104919819846396286520600580764643242182213317109785267780978125154385264150323931481505574642460217859219286963333195517364637195642721273026815050628335914566092434847611811902371299644318449655859763156829356742852719069709048098015348672739784612323721135013367130362333005273736530491325612818680165179633890921047361538815123301351024425696327349661406870573073904358778023983263510701291626008933594718541369189876152751875322942469066599512559721374941452286544206877827799594444319848620251312844359500128378278423045076926958051525368126919555642589177434262986715278805326709438075030915823717687401167180384309872242576322308281285809367179732677194924354543804996272178198869622556247198109549313945715444583301856607725779516412800690192640893329409230013593583584724252312266284006359430977298291248930930411183190313246909574892365457014216119453359724984118223738649268664661368683230589825696161734938881623875717245143077836919826359315519883867046249332929333756509181463582689393577846934301676366443367137600571079976792503960483411604386400445623322533399521484377966303913127299541264479872843778543638578290312731287782605271866372462113791194236082575125210752820907651338501696331596928010707953390641662618425310250244428058260012376370789657065374352649438767959293361861312113439666312134903808816643294532929428538445252737421533559775109037893592715753812076639105843614851216854302509436800930991343483858502857382885532206483892861867711798399993943930139728226918551414781181566645453490422133170246720621521300704630991987472115122089748160221991115301746108168089561542594598910164415305872241351430498738910452528642768783590996850501527731386968999479217879563956108510433977665266859237845647549285218357866448600732460307429185217748360964447235957950579308227827598183329378952056266580898517270757488565106201045466656514172350571190075871793488445735916643852150720862289561136020530910019364541083552248734470986735700058284005071297500304544828325057538363643138115975646715610632014236213054995119954303382755093015347388301868345679602733728566052649870749064796019462836092664969834857897901161556072067107816811275809705498395956918311692237643050824997623213021868927210711399800967123987013747654911070996952416566494144438666417274752226543834115912720995627195647269978517629577591420925082925931363003446881066195589591730025461034000931498426925214136864187481373405779849957078463011387996262679983783934472080103049401584204387275292357538858256868643873787002899200492278026361485332790972968441882843023832587558057806752876896184248793008487970946161813000794183110740430790867099401635530391044442745107606189430876242242183216941274409854213569942772229879865812207119766084422929780451242375920486784302859085751407678653060177443924923415630765355994177109347096144585606728859618336203527422945142309929548092201813626057434145031942551292412809220074271316507537253904224684012943269289864802324438749133347850346423050111235002951040480523854800782971943881113074213550202956966123372397819456042999595960746839561105837037735468686083788989265943731594494194414405409856261587810649869997976254091644050360221205649749457435681914033775024361338148974523395445054840141664014781990603124782389435106181995730355325699038578403183773126402924624247530813708537479519849581508103619209369190700444400273080645779359554709725836046340679698160846427498655427547610853641046636204780663338807138512326978885865536890402517498129343460422491368507892876708116825328921975591332517898254446572200651193936415540276362510768058080990434746272700166775479343098830861593151480140523970073329150212908540141647279532926845273015214447726293605853781824179361395344958917552626716764333740797295979831641865118479904374200301848731766253179200707003594741454386216089342224715495208222152496983935473641711223378454810162407918779710838820241760145068701882610957292017398149854632489334928627443014673155896447791030095733501845028429405255569593927254608585140115844178134285985774472720849227464779203585942977314134162179288296655741957789473622181687451514112969416515981464905589306878572002675997523572546265676782053403982123818166887058604352443452628249383362291272174022891129216784127954139795490776713447895836403177472944413205489269414277129896956761255030237323872004646400832982095692756393331887282261319147750407697660639729412024722500288338966033599861224395733856225140312030181071902379916136093161314184317164665830901055035812593786481641344807732828151869529708119034707024681335742250734169880975139275799070204250494144261503352251687174812124759223284440093143043748391250208318017542010372057467409035001777364591602303791078183631960561376845983427605928941858581876571313713603993088476492809493306484824201540135359665563856872138874009024097326942899972263373115969743677297249422696853154838377726147621652757688307598227135305944707311066660543427741370556700676880232269437734107263948583470035261759493568055685648857427759159404955433530952463361156091341872035734641003544586232869442026837089389011054874546282044140837047953828494191812263360686661879057468892598166112953088821038412841975558444034114323185984504347295390524334051054174621767511797364783383623840356119891283615406709988801969998054968796804908788490708286177595423797848454226430265423674619710566178898111661649380566114352133656496177224259664766840882156880265953076353162431431738635469445087262107086685664843703325560095340257882063240702793640202491434575127746499590429989134284808423565933230033129141893105527455111781798135397967762849416738174967743032506456064361949112293470041625283352634411872638461765975535524803501423354912049819791652166132910819584370142222652673902876859568442927841463373244802733789921506858927250563843359345460721696075835852584892506032970091453594124776433558097970292447520466820891164250316646235547994915927530251388280545558888676473636869260572109341926446580465883818279074522824620380801231076812639042356223817335294667357702497135115160544636016223622460257975364746980553058639983671602846865425327222995867004784045335791341483071473892265650507927212032885166945430947347953010630839634337781417190561875514975319735731539198277826366627802438064218467664538143354397327747952518780412667555831580088170245783005015946292930039523699682493271544277639739103308372743993927248532021644478159991581022704180855758530430786571862697965736124185525389261031017201534331693253063183219799177132679343302265235878398687192663928410885851137946484452582788203823282155554885733298315874493859687332920657553586689338034142078935188593891233121893154687373662668327586917894680858921794600661611337652498326085926092200841813996102549642416385610085183228714879465371102609814689911255876714177105480075016165568698674827492473064925323607635595576519558004658376875096973185116426188729812572108848626384428710070025691207158820031012607894914225256211761296375454466053519742511118562270120048040901894031604955517221708511169098992137225215940814002724344909245191387161294438839327217475922545464084027809977023403285158708155472921434808029473422410550190796344168905354601691771658151707789447529678540487592649976278790977405770353910071836027757221671935298251865514979092873293383787609367796876421686772870870873522790594959440728956384791570137650427958505302982544156200100924738927062339292375577250444327291315767713560606265485910132766551074336145654127271039304847367672296821117768866502254426629828460539339625906917633498708509367008741699141634549157122824102996167436341359307406916276084674502748928996197198582334542995887112347468321930314667282513109957070563222839184074249685029733534657211086653629216586326542158967420531978313125463378280497400459112827627270733746241178990512040066289324067694714420423552064822147169526579916013501512682235649227056080652856184937725274302356516593107938970487169494552116353908200199933943584140646387495616589897706172542988205467535024192360326675396697240761896305562002498561946948745374703979501587345950353666535395737832278576806182354056898184338217985920552385398585415575746224835287595224353219227836273632840482453517708316947460281397475278895988021536270284578878312934846394601865598799280432849344312213932654205814511197058664123181161332431979248242773263059700140502532149990043081289902655192670151279743341614564887421791199489109458376267280749625833570819827240249718425598642194862747989393810876927786746700589105547483804719974734913577231935028435134099109596159037590872129367108377231258424107620025050095190425452006312776547681451563315802398106149048862938394953589853402521417757714960201038129413056510278753300002272495412234287639175906486813031722884532407112368926022091146691027356316880415287169393754325500689205967418099378886791970516681103293389139169914859899336331813884604524853035054810975597029429451822201507844895978577400711062207152550749528228457403846552160349007762260865212180862906851702641518556263053206209036800040886002839422673579801591428009245041980553140424241254562011238098536324442691955030784125689439679658513515711700134940689210143359279923797269467417773404132907527739037554148754501593695231565810072375849828638467100753162382694885560715499477680681950756849197243295179001724609247816056246428860688454128022970851402881879324782290721446874131693407065776974468375111598856954429220112422355559143152313147118224303916618317018476573532035746062044758974243147726941927634754717367273921630989168974146705529306957413298682406004008445966340741755592001502682241154478378626352005549622764453717577228623092649224484772344327897325270646540342331573989487164527225494523427411808738192346659925847881229930130996161332799872540875977229324154531775643437155177959856208451735150827105486590254233784836071660921430120994663625456680892762060865443572893526892227104738950758400898221952314767355659987340618578991185384346204586125357588628644975875338448691271706388493431452793846267756067585722703898683851889509272039969372452799325952540259719433719344306726248659175254377139404368507912365631069959038441889282430978897371485869665285024689884684441003094933429600582547437147268656983193210454013476662080356142201682944236733126982629857504843517333573635863756452068251061863421464270769490984542729702579151770000046256154340321063524057539551720268033096263800751531316728132536130954798409364006472782259799759072156670559086503008142391067078995995884295865296198642104413165346298319014224271409187448960209008098417237638496463275092574328043507573881961329235844446947496382364894442127857808119689999627061475723188987637833713013342836108834080845670811766282953997591472310498815980211268907770591378530105749817824734754711031525345670557989059165401107191535746024747728065681886719831989870515231032812470001691740617257501912249616822162640507775391389523230342075070119935410140964051038728333937387910959028705506813687242584725105020969577888253142269587316846018807660271917236022881256702385655767753542499178283198993187963719273979120889842734931965218406793213788289837379654101133647964700121608152765271794719910292783022528802459070482604384101250407035037298635293691423941432143111868580659474606175313497222809003247465347114655301731631316039914699109754693041026906925719878585203556328641122986342192450171775492702345335484379675495350084154758096996505918971801779005497515511770179564275192982460133675097465046844556608011066858877629297286315237801757463589094057119670129571713578004026604620587072374317156813095313466132634390916051624660751141711443365242864024108911564963448077704285078044782305321230558644503117001653218619635012466469268995362669248629762444670153060742204158506108262972785083147031466861992387600369885754407597657095332705378142403210514459947052491886151276014979563336784270713575432130818298112876571988332076124317719666421534336745445798809134588181645487997580827856663927341905258585236901614268344176235054894880104028243212337171301731544209785481430834186877918392360657771369435385688869452082947084036362469001845465453307525558453456616950100532213254944531807833319366097284881771551466860790070794694594301691203691554058512574577826567499761893391640930421099287207729589761160135870184824364747505457134112305217664590973495456072716047503134571493963069789306092869083969362230022526646048772299327755662906755184759400850956958868622214219912114929606947177432212082480680290159741605321839010429422202513638381063589650725645106994588430032988550119533361208285013797367163592369875879532272477789894901823293520623113873412442750619785107788045800832758818840200529915974118033595788957757559802610062067625768396981459657447943996514125557150618648546718146037111240716345256887688813500245814323095888633365666504795880329487584789987792700667660380801450151087721863393370926363349984632103178157426922984421050649664188400530548209722935724275492178885110035792641457799989758680620901328036274510152575197356947929398656340728093171623889238845660258896698540499272457305440694909463866201326723552438761695098136968471229522537873836650921562352999023535341435444200171575819278488684613367198374211363877398792640783517672502448510395797684577833541996329942273598758547422920172529139286835438246685969663008004777265256539688340100596087409860152001279997889408192218972929825816969236356444586513328294069597670476039504463442589733195185892857189168661894915268927409815835910371207813611893789132115926930249551371116138902365859171856429793691514920579871792968995536836579160150007973880775418257415385215103141128699124439528109278923819954387238972182942271727498866464728727533561521629071168929505132619209590399305561418281403896698263663179511780300141786124104436318475828001588351598790232151382734764410977733558202778148768291812102552844794956716922456444655000765476028916619376677663301023949255720843672985990533845818626707227038888785888110655183568572776582221989795068313858168041321693658887173499715207911709178573261230409223916497269435662417518971451495645249958660000069837229803384559938320670981221125317158899280371767204833951032295255391721772207514343629808659936013047841792124532679049724619495476305403280412973040748686426245430654830136026470970339897146220559738600624468212491491592097768026111978665180116798355369132314816085864281362660700504575222159334974288935894121171545245731151838702677082881980574188770473156427022780972784562036343670690590954858874682923347289928780814087174181552715917065506015002063480380434753339970390614198291994342775695931116519085245909731186106865960855651832783118596130070202479133573613773549963562736607025440107142971166654940759384534429696370871075299747407679096129080219220309486262341028890532649355115518156966207159245327922810204044011724495504036046126598441505183633754984926986394886736126251349821837084297093318850986311420688041919481190255108620995316627153373621224472090054410258673520586635344024020192329356049268992648357588267004801969742696634867312238763275509921566763891470777107909006562428006586847329719458199916931681617520768024255573720373008619988183844904565575011113829393160955235895156102645885692194928003906034157624646752502314153821016450883997770774416924712509441342608844407973570621639701001480157530978076364127171176040226445702541610704253897345949300730057051396443837266169189169982967203894043893782427202555650756772082571824162817420891744555894589329027916487844819319281994335561345739598950435794976113185954757694306986185726103644830644616334517534044431497986150791089762579343884876466146614384328102963043204118066886469047729408815118980513480616444484732612126061238126949438293532900193637782510289390698483897908436124973984625805733072348739464498058881938189299003797330190818801010327929315596561858910156596016575044090866983242912189329709198939455722946812262986969206141946293077750383333498679309728769285478033431406147830418936091446281314759940677963577001323619629148636940195216280579356003372491952272505764838041033797684879652814898833993989695546489998970008334745351694906337418353733713285225320049058346216620180148537507544732112702907484537119787825799662885771866411311732999517360429842021647679862647190708988575702537199074065297377018184722290495718105355130313897421056104795334711169393440301479032461578910871548048906398925509284503240319337467151012542285612993260815401895838829691943655057398589443623112726121818740449435726793168623993934142997942962480169449800805765337450477163357219691813517712186507699020915229521650379715137487546208703718706597375354412066755468090586661669525193101850232908078652841318094566798088782650736395590121790705293132347857748139769176548194363736799155436533480327715598520904582506945201357701673117141930596875649097324894237410106599362820412785520907287126845002613221846868075932131515009096275791710591976772210148958307477576494200128232447348960692727857398468001802003104587066177912557143480045429022336821191788560842463130831722536117016241187749993256474540915088497507530321748811415490133728190142276102763118366572559859538649492198919138904087798860796538302225566382209166188687547235071739802696544764898629518981243831170241064287698344994780128834527546224549735191887153515585834684270281849405200489606387885418210288315155645846583114844265936015481878377883421247424361674479462524190465239020485722723830089651162164697070155541048740121384788482053950078435822356379059469049277550308251553884721170348067403508322634363828210893328799060141653909303428210745909950157606034926426823315652169496169839405066868088090125567326793597115506040813150133641915903127600743627914150417933870898385196823552755133547649555943661667034264452359798214719372232547412130961075422644228642735442952521869638434127150126453739509265845031042274324278131862788762887895865844917388980320029852433272084587640091472429512342155948922641683089210255748636785991919046520704320639601834841490531831705883334534247058491969144433074612717624056652784521144701163961452949923227374264194271079351795732086671124378081825082816463590110558403473634407010899519893098024814180185352581061561490376998555355107817228269890220783041780240075591927895949883979311978770446190530178117556728347695610323004703433468369044543825836936145650920604951067357917738316742342379879350619566872613647553466910924743480658526033718860436759048318658187795218213987403592996992865511923051341709988747123545679105973452505488237685827907119552020865546188118478320005701685899673197716765711532908078310985952088673125353492463510160982914615116845360877775684039504985412423133150965471427085304748625767393528927600107739938053813205024660356810794090994715079902748477219982480497250871838067699344387254623315657225460120299707297398567376451271023848080020378504066336021281172694705479582485312364899741591186580036898706415551899042677005002109129473382162169171876933756279297445021464548558098709076553400745791099842280437080828431187502277237934881335079157432016916594527669906237229061120076886183603241660170762104418833747922300603781954564350719954184925697975309914780562958135515539858157857946491904023067979303145705122351221111226140014194322758351049953202544518385602386362551473216975334347898962265198443543923334077582044033110741707654976725837312422921683771585013689056357889418946977886199950907508432322339689150208378178371760724063850283886176536948590036876293964713000921249760630281601190860355563522660520503065695484154524019797819640228133383239836415360845478528550970136236906345501006160719419854868441927786835272368367734789708294978028916960297900156016286157362551346793677234206831899644953993920530566202204882755118214673317625301555869936009295351793897846161979487934338923252041166412609493349513887119936603088368107384012377646662632583395784186308779293979383396814038653260888383997968158738729146440116354275269491245892120790707250685701060375339921082606775688894378238567671580384213724518863395794147736296953216797222245169451437465539424183094257489665745785271155709104302570033088029924666593193574447493159710480870656525600156144449427463120655567894722062619259328367875281474241917711098628549747707812396016909941123792409960835176660798445901803439678330389553401109771305026484712186545959294686944293414747000892432877138491279120396246303805457384349989548254821168718002777679444647167176929315439778846078436747137756990978194263129329691911381874680584603056155999662435869182052251630820594802312343888423905448667852858520937518363560199926665108839767477947878583497746847780255832976214392612473184585813855480233712018735769267254245741988007533675380725823915937013996695632295717762964939851963531447906109182120090078517143965359553073216499915528174056020294557748568433673993535721212794644483926356066548539306719555797593281618397948801434006591412919672646288397892856019635360762341934462356378347784547035503942603531961502928330125171339132949969724754595601190729838913039058781049294894769933094216252777692279756042419675066978666301410061099598526705047572984937598652710068819519301123359720567568922918618246813981577569113273037395227785300501323335503601931401710831780065005669581315842428468905318714748355763650182097001961374161478419575251652808199409473731291719446480757686555857655567536654785834756597950402281415799485630704160362670281814722080938234367202585873316539904220496339792048422345583798483131153236481495784580239966784790191512668744668380040861854722189312759959158226013590186596016885493115498464406283581110958262502477383985150836302089765819846851109835369246329241704947056988286812030042820667343905527723594110453642605761400002988548704776532702364591547758383657992238430060704266895923600504936014351667474281196598043526843451912837039579664215764489984891376920949264456461010359796697824998822710640844559851290043656212380168904916787362585824817958062961911783085163916978530222291171169475529272153994177943549114628306099211623473748111027166007653454293129823028882014044862131410252698975142990043711280959974832867401674583071556430865321847949644331758343199728612910695977897198815602405796754796616745876728772919121416926457382519441848602504941603865122006691893873677950335403601094707875810768302418794481259405066671666368302641751912256437495554767232295892374563881515311688301199184508109251195396175261942464380129049936847350761332815312464561646426289796963493618580579589661341976678877392946033411193480336920669833077239019748774755658840403145613157366814337182671320209922863826511708237714023235789934088163112796647706722737679832196036839987408324670509196563837259560448343731985314424663159097501983295051614919430335096580352683527122849274188711693996821616257297701428722323767857497715368529540657989475301160105384687021986425109985636146311884799500081332138278223192351635362270503197199862804852667458589536376641534101197123875761334114406152166881878722623919024915614403430731326632682851454420347225474230477320120615356180289233291821400439447551677508585319605837532478841665437319774646009290434391909872645411670150233203047425474723532055752287366192764522456548829802960249857324400064331551889288411488239814129670522238546837058648997951947668470634079610273857761465816275996422446242960331879509420944743493532788175792811642155434207092010547263794706633641922938643616852044971276177717344291613025030939906428890414340501359884975837370820274818755652510426196885712430279833269229841132155108437044466704427728439980135562451191627954906569719702420121567093795771873769034218969496870778481958573284375785684841970549682047767591853697021549044358564449795813021344403342701778310774135001011590888669643064706391720527957729541399863053278269696888018483615298969450384842526320159555324012559509721984657578751898585825499816013440233951290467403532168616736598256621832815151521949287688812226208939341099965113249382014765031312718988348735779309873855972995462403250731021748393279815544885517953564078549541300698348101720551428625046123821161225847698122228193270247317489248038179184886616208156034349644511615305116976823199079946975794879435996278932098254674385786006148733059748830799570381340709912811363979803894446780544521548931098082249864966625506658972448292133512577306267865427424387449280024800931733793968147238033374210278752007172485427104789758153812839613747085691453955574284458863270437054623272826894817008587293005959691024556480232501875045608376645288923294468466044463104844450379367382934231312760163411343113010925377463641074911740017349379550902473032302599701445472741420595437668357965228735327335373837277431596781546914514547226364310668201360456513806458689154057411469793172414882537822307686404687009521170293593176505199364506071766182458471544141161562692065405599100359740841842603005414290128471380973570368194733439711636182267739384631618697971016332052023987803166922620454020272190127655586647903766109816816852933149874010311222444301921239052722328241028227624873537493117063459319185410955801756177149771788581851159668855911250097209196493298741619800377192337751080496388109936541389964926890874300830623979984182786312435294761783689408462785840255877201036331216192790360280734017422750033434557056436586096235764102391506144232021719281809553579938610302370221552922858535519032144721039470426553372197737593520092732489352747993501312065134802175129830394328192198360263190003517583758884447297578591728317022237874576249870680576420879058521599226511991005178728707988365312417555696443822707116467453775867786185301341691082328378365214967440371113830733368305441928794845290492083773537496888141101869985982347834298611619131015592573712343545817347898092501372885390032760545065562286806060266817441711311355918129267951880186193199842294010191433674021085293471154951204552358710531092841821272556089658494741602845796844822619495809229435734478589280100318396444782140229941467174465669562005442543125871010596758218995751122317088766319300118907875016155274618833090071308496764375853302483454328183153433738077793027556379150080174507116188495819058380994278093591050223743247837960021145964242781944454682250546867056677554646961931686895426326490792523962572846844604142373706016271755318588366249195977724885616771348522322083186547779743847234045692414824879324280816996680402964732467156345614181179887523674735866662363352471497095063703997418249197990893019961702335598394022492238696539364769196672748512470376853696297431830954039444644061646414337463435155362959184795750634727682421201965588402346544771751914164139012265624414866841445078597411491010453254233382021563025959004003563653519793144521326287965462799866462759766909135029722573121195524820070837019154154431961313234507772857093398524094636224141296103242255664263337358861220690507278935479122682881988660802716420145717545228845992672016421692234305946876926770993205424397880447708754755311406926192888864645082356788333097488305344951208815682262728671071076593226716850150974081465315877323939723950427404060368278437013071871328039242142533572094056376982699494852959422959571322199729215696161768039608641911149053791681631167138726503429678513144377123201658605214260465922619127801078715437852918076838187117463094314414417159676859991285028247445728757316887280108468703383011236881230909364298215463807619952775121683146318886302108558341601597756634500323916496751898317964595599963432285333399997684077644426849463554231265171044384436721248719306782325737178456278888724676357115034483650624117030927266537485443700183085772424927342691727224178254843552136476461870388170390581522728927595414632174173515847751646778488996076521771197426232201379310867678433539711264603370694400246446139691608265323686600716516869025417638241997700718358742290208896792064657040322396363809966213616762179041678309359792182854923425620214874235722367572758489491108788264625020197724828994260663670516847813024836892510522815748747037068635862644073576706105192920535769975607213789231663315264508656469597570694418715771903128562387073543951979905601938793807423688117571422739142769753785343352419185331547420234722659364372277356177859986721247014927863425276717729845653223824494579454578361758667163411954943420257185557788708631219775019511706018150890597480772912267607117958280169149725907909786025997047962811502669207988930524234083928835751266589998612552640078823945991645298432171893144359224091547131818648238486589630406494448677108079291640934511825604537516641295593439270360984934534898292160284707720568818016879508851891425290672947525289889666804534855691024526940656850977350018690995607053643564073573836757490207273311456485763752096347424492374264790950267459832903249407249872202183778938872337453325019602689340138976042014176244408937457659206285286183912939006126459719734759663371306549016337981373410086814194297275967858695389221578801114357495843366086918067194113767759800505964008054400461496608807437793142045984652877351754706256196124348508690967190451376850334637841589807732347982198283763166992062338639756601802650384055297576106528983202240880336609444267390524779317786272045427990736048010868960857564433333581608957310875612305620935954436408881579453911114553452395639261538675092115377026814150572943417001722626830072103681488989282206312547232730755346726120575905919854804783364584643971104961120009615005649366941670639060362487939993063884711208148496012844699807362718854970108535710687690906620694262768146885207049267961224829241369400425617871099431996652678881131093110965134005580682726742035380612647962319630629917298158960775314670586042112413944492499664148607274677246427358261815117296692221957332294207896653243538119482020876987017883651409323789508433143425220607213911682986465138191275819753493854483731180299436862601401682486446950590891807314728205871678144547750629803513177877386804911003433265208433651243162021994217049595407046467653301245856401418606060619456061684324230684773050727641426551106709366786276329416947732182716817402060553467901934112246257893954495830769222539212720001840666752741307778027946398391183543096253296761882472121842398704184060505943593024260703475211045553837570203589242577083114490171296329869560175580677435359354771450789222335849800937699876319713415859137688656323658459395194491455740785924240501714554298927042398366988715086519942331612996572436226889345332169639501074468673999061565512504801830625458866821966051637452667610886757752667186727655200812176307448632518548733991742336993717003923375901891323276318888547857713413731682869064033134689292871739565598231521406910173507275485523429023994316482158140657149401120585389060785791162034004078838325762223204346832602297119008305012347386181031253152716447894269546257245613094244604164919050894480518460013205835608704653295326949397786590496012614169118845484451018523351748511554929928151112078060584623878691252770710709760893826706234913732289855499945392925122422773606286532842862357988501146378015935579226583355222471844238214167379421647283207186490513221749702613787884772027279008933692529152518464710585967794741368002236266719759525530801046077265369157795045203350268897868671021584058084284146047919171436628930158097048980767823539657752924590221820670023323651606032744956586092704421495113540808284045633681277606513373860406534301769262322759513521992014783590910103828202462083436740434405014294491312051368664360398302482459123645479993110637359318588453391740477034920643478962551452545705022983712323529752434105277849975211208493446742380745491283010183380287716617803705253211128625606599317965392449693053624637416443089840073846320154143765843258866992584959656111277358638514416884833314274486062538762720317107149516399898845098766457867657276415424284271394881068283607727970938557896354784950013418138518320351338013513999440516879188793993823518630431076644741095826454435684971715622600881075343857824947160938121884836552174157769877454767508153628504940606485288300118471554445323572783122456239772948700968256498975205992952079439699935280266086474470538760973045023678236021927535716700015025563075383278282110664808193854890488792631496175293480145343760364221563886318655042794981014563764583741296993436842917629637283249048239177896793167311189583392902762879862400142050671870511311263556977212842778888565770622900651297122722500767387547023269836800146378719978904358603178953967568587533871143124418878858677622552051102701246726016649270009233032106057540507660730750284707621588861732986950210960895285215303525909637872004383929203609571506687622882954901766397865254824179290918245244400845792391924709202328044318444759145614564051258003059681036520519276905366275797612963196919772245002448311607185050034990233105643296122868125630513724083119300065987100532113430921951342224720342068219032529412048061015925114675199327348546840777232329196645608879931090006160700880746686516873777641703453945343014797035498926807505995179444712686855531144520043493377747965967065099581634424143798474160162244803325357314049549865159740653396901287618773822102280707846691661406475534702888411096454315391490738991716392634250254962271910763443695599546167005596842916901388033104204452664928785519594314178896625887682087150792440395567401986890452797323982583189480972120700625624866046958389700759460546087341588493691843477338565034947837566984630797454557698040693536876542054013508604879466779956943187174134131129375566200100335657031187559602759492583942674546529593189121904494354116670415891634873581322413004592456602779330315599754011059929863484510403077382939919337368820801869626132613634142555093182964558664857051824444878761268249603052625406683778486583994211098784899559216875283849230906574529835517882221157872149236823023768513877515538253075642032760123071182048591122344095629633184656849238500967294169799907760086208350411921667661581147171444708250513619113977976862756357277829415123231440229789612232300691428661311346236331786240282033161488048964590770683850934404988448535863806963510213452029389762099947010642904889584493265857673534123139057876044286741419679889622294280726965866881582968386743241474142888183637204071533639969537642849594047140524857593520782064147758106047701835796631887189817103339039452756371172374881641348971055790627990204230494289409695551828779188588498444650396814522916386395968142882994790786738742719567164191991504395358901124826587032213075805716733940269669446799814668461182692064786223609571285673985035973412780523157454270847468317669844969150177125137770338276029055088337190506528172743727233091297650651424478242036038206305906348785436184670402387625887603479999997617543083449964123276160042810219237457293970133286127123662898217613651863403490538869460750420825543492591691513932413302763214255702847837779620287110113787049609059767244284649004552776403495180096274771208873361111122210443799348672646199542138356996439127929269534620380683480576763665365579272443775408176816452927246454760005468905730982129298272688903095338280063215113994542382738496478122584248377102540991196653212029222398607609810494914839451986630547347943757226915413465481023380005880073833538434481235343512795303779534997440421376193394510361048745462768796718846577935630501697470582740248658289994737569415067572816434481226943860146576858739765204651022101501696679041009868827261770339235735225805508673116586431455982374823370220911908485584831752305478980926102241287381158018556849587366606571716255441458314294248326649514127163117735447415342206976184430610326077843760973380673328525171632757070804057695604504325047038718804120496315323103478334203223885788307128962318095357991018459400462615000883933358345395030605246138411957980760635600670297546853532577963938156163014853780578813406648478888488913007883793836138333046535484047280308669923040714038763315125798211120377221264890537540859416608830468927237728422582491727059780330770985629374808801231145149722985663378645236726875895962902263665259468154989844483690854344993153919003159107485050911558721662612234853686304828728876899042693055363868746800195873183827324303676244864209135806779546925187488893950349691475194008272473189332834937248284885940343985738347716756087088059408968454362981274032281002797980217309400169212905341787971531943404656455858678501278962437479441584646602019495352058738975366989386971233752929365517072785656164884624720059951811615582570633414384773191775241015714239951116955503993089367267995877426906872356279110971177196912451524403078640986525190412887058506674474716601283976183321791847630148684684838885499104349436325296162459194507878640257715248982231689324514084375732899100594343797263693940829899172425561754229094202442576792384527671631460544405639326656512681482794781861503996513861381755807078320404327622544136528421582653666112467407114167860495413031521739211670496518573504250324594235986984176290105630009121494914075712437940892768492250288327240511271642552883723695027093040632793673066757950143892706531631478555280213042985064097172846872316717412537358504603455884732379718669406595170982437324939338910051201855597632287893613083422840171502075390254189703272505992557851849016992067855468527114509874223565693354842919216993043172251173482113118691237862147613504389793689613302323342213104539783431431536097495929379983116209714043716734919313769670125044923457721495085396724713189734267102134153557304568351436504849692272043599953753539207369366464753038091081223220368265935427040838687280203556736515199845495288025710596372842873832124505908050537988692421729391983725050407914927091941063488211260099897932087637394123976079062623018505718690079899267218729791561343962800805217757708755627300411020487779888647433995847481369087115325684068338826015047162832444721373902794611576521021604098415429774004310262058949878389820135026400551595449422522385824771687359979242286700605214217289186663317481508164100945785609417793329180751577333815364151498572425041451816069321486955930017086324078229947535078176104052357361072055142601367704424547090654374612138307047827572127666051982754771533645919870052060498415573409481876131734066759741458778443322464168686965695257122974677566934346142459588457541980359157751480259971829260589543623246974190190041206781696780969187095369603611661847600303826488413771779281127456816697889521596885068303218251917450535815997499773591644169021569399515866924905023737386416024675482586882001410267061433037784894793027907733820341917769215104896579364842399023148215005671991703923682308543084941400907892503766168754064932752711459094703837512616079484359922419772887145775087367345705937850742761878476407232873672421246743156316776319324100358043010462401208319672911223649150657525819368353147017737837980770284725484844748176245033520656886543409390624184557558240327342652619876583635169320632714157907279708203806675687708858742081497294846430782287222498487258344909955976912053923692526385843194510703622025684340163710819363561635971156002764939155922738122491990760014349525824863823435056091231534065525112887701292803429743416297525946076762725947772430481254624241992574472725826201299619709560456978740878660979509517027440202393006903062491814699629047734977565455019148375496830452162328984197765105592304702170924560340697247537900473969366852107217931043581889927852237968565803214494766902470669722792788133286137249649193445593157764810518852896488780069921745409303546861912802441583832469859356343215484873861601516052950451881917801049824220566906794010979139943590679703947258160080473357539500484828441973603442888550384946114726350604391637519710770782094107969187827433601815081875873648632698403458991807905245684157602595035808543321937856801449719484799460582845747642325196501094045982412509777429783354251903870627903533643778619152113534694410401894710052023127259050834725729654713099388343873290690727537240815147532012022664977954727051759472364181240354962056605013578706360482433030163891203895822499787687062005523453727176677385638199490058672684113508443293434612691098837524801973555218201497703602244525686498287737613502390775541588739042230786411209467042132217530294524081325494248235218042897357173836939411743623856883707566256434396893427734307064732798057559370998246004078151584438945940112229823034737028347069164690363995115673841549019748719023392143903642187964912749386929120916031007892126723273583267256150255717271639211361594849572770439618999323557906469974785059582747340071901276843621999819622989115927946159306992643260764674750570113232916066688945316691673728737919243350294027865843730401866004938302268211605823905806498683467969501862539900901602871002356994055161800732106885347679346956553929937396324136953344828324183726041533222410630296540426689070874890729531921716491362517658737501577064171904015738718671272504058481201564170441085123663343138346742533964093994735471306616501279780982600169325841075479306921502480767456539111840777837425875716883385634129047854597121407915130296687022338608292635509883167615440327324819213989085793637177299126988472953297597121057404957430151436314369012437894947921907962914303643967093013434916702675024403270236881810982329505482479324033630145947587992793242702492195091038315446703880241571792019708734204644274924952149907932223016266062339635448677573997138343737395580315321272751053949018468094033088661977672561016178545052129599942627222293865881386438571615103598119551250396327871622291669409038313829087373913376314966273973251895088670281649492401413420093373903981486377532768167470124251448606611921717393827896936331939544579824208294977033165718446799995538528890759033170395881772968474422129847140914280163856371281575972013271188817780983884144383964598833019840667292482761255843717277655974684829560359005603673678303933283814431731370860891132269062238561539025992489005393886824688103490611498818589991754855878752000269884143259232022389610957651857771867868703531017275928210764534733103890412669313858998196076220290862231091736284701902455415472742020758983823746761831343961837869090913446504938706998560530574322911440695038013416681289488945188864675067961154362262198104788545759691049931502320641795235304999282224763554867723158131696586710537201996989894111098607651415107964738868158717940636456455318205534669140306230964421966068529501461274824114223297566033710257806123238907889317068758995356560080953065854906200066310809766952287946636929680600208176554832666743120829554952125969305276971069616423886978489439716453016304105665174352119868861663290186457445600479817547924909661734423297326806422155779747880820164086196067813052828744986932668898444518541885326346048357475571887106101841417603851792904383103415449621919759305722769439751823574037473718807677889449201549088277096585903940738251639315222753859430608335669884446194817374539678602309779401329880129388489904286063857409492883561771946853495444170165867578235967590080704457572938878307808753224070411598636196714719051306834102732241835942018991169745172379336652007145366967401741247277743011684152891699700784316354743065585240135356214296058153179341833219052860879151819955182120612972977675026658970665494214433513263258425732219347469649532808358088673639687543056255149276964974389290200594843900228518322923257059445309834229922240820009832490160786724765311899024871859713089007162846533233952266885990074380929018398212596962098422661747269340842805526628244865048749723717765370681570945585842942169119630130541045201069746187168452796013695139904484049022606320449635523347734728979965100899173415353811134642341017730957197169774196421085424463120019341640984273451726083074923917453171875293064158731857463030812452443968509949297788734994211958508361583476911060345934693428052176846993678791485517231312449788876251597848966889264419950451093839229752655627162991659082228318849271047638214999673396997914202361095373838206120034531124749128992293923435693864689618519450720483758116732368646805002685838373943483426872738165401397756780766340083847536361520320007020756202282482899728323683490790855993918615030506183047727186420002283855842240726348278036822328911940693457389304408837955909779656487665096041515305184677669185458511617119339759987916414531348132094205140659183110497800234299719346784341559762416979094114448402109107513977587535888115236854677441421024007698963622221431081898180059130267885531501651532654029356098513791984537633270366174906475635061477854200813655423270527085680573929779314593689759750015359516315134656745402015600262339054921188396654883110694347344110938544317813008677733346594995915712560048357169876094740425453919316948981698021578581968891049230776586380255484650690090497613045269026315796498667522693812856779148273638185369456734585563978186579146532336805847147656156758522751881668421354649074300434042238155781860971453389968893968572787965108305626863491484498227829623417482683173093678336813706487380645855568838479067524488780494218240045094387966253201189148702134614319110417421119664284461148825781844027748747617804573183552341883233397226225761268417065669452829930936367910757384876879158397555027973590606212279096797725657879036427593416414710958556653464143351636941388705349912236631814981155687170584489138332068637612457497629524079422017830917497987589154524096545893670836043799011176271101064948507737713629979074254824047877506819576838644135132372762348755222235277686545447426139005608036344236614005566589959465881342899850456474777895431904310060506976609443572417977701176910788752340135060896520428390258870857688078850354285898206887533970989638303997587260866835357004688466078413350068846657259832709061363905115089618336290813349799782521356280181711092282613351605645200062527526110590724181224865834615865109019353994166680470265646604710148071195643022230739789691178117246001148148440034012492412026203281917887770242572995118572675645158793184758306211189665019247514621484735070292484336331459745859487783514604423170246292628465595719672423737053107226614545562918553808334891487784692839716154935448921235256698357406335407040338155019169601578790420835498155329361307187875173673261664168021740696012263326604635641514015184848391044197213990240549921711804472943175273274946669627470013084872326034101998630233914149822908773763460614015504892485965520359728818077819466262413990094160925163835169077640857880226081437733388245524504804711134710795659242986375625451435438924574977997555633610779161270378214238247241989529076148211617486163836553316263964390487794244989139368206689327579318013699431488984919171063991920020541028149024680953183553857826990463893615123062570205357775307132056521379823691816251100626086387598839003375960436454721163207509068029247356158751544750395108786506657657619981032394255854137324214790807195495577065023945034876593337619665895680775053866115873946555033010918105538387770764346582248065874713525120025766158806380474609022493012828273128728607982917722177150478816609402992415316460146313244947584611055666655626623892755866604553543489605743260253878023828730239741108442829976432512042238193163084659089567198308569611120584872390324739598067580400251640020981967087568455197475938297082244445787923379871658491109138538870791158305112296915319027202870807653889248059441922944819596883150049057706349619147433631385158078370676421827101956804946456567661942967613380470108768028980866605252877975495140814568305418824431398828687251209616213781115798328658097869229869969873536378321165824116956878555934437094210638938542997487209744243877726470266461507787372156459738313172624270180114585514620557653333723022954236567257139064493574110826238138756623946763115815609616928433357266858468830513057418234796297213568023940350374592072216855937221648198069215545567422286362393562339805510569908012887339848793978624100572604956699949369521537488485756989390300400638282995965969589132180749053710939170642138259946037537963806989929547494805473881320582567385004749618244878366512497828846752933226198779655109222812599263966907168543952052290560062032837946071809026169698283184732139482268409811205279751749439415197907445808107427245280077233482094323769285837209041219907378358880475656864086782920969287352983492747012028748070196492312617226128613383773748485607120701755254634732522608032576178819299462816349307703671025295576693903384178140299881558296509206536607727721542993668019097964931075233870412651451580993866867628628827411840654146542153970227205669160321129021470271612783355812011863298707347677979448471568534168498195249210349479536648546369553850891823509363485667375570527852585418446114192483757345489868951355698697749770089852651723699811284896491669797690765941896547244246956619861677590369371529059888538897267418198241173602302066547411081121853763322864809175439378225368095511887376708317546877032328798533378583791571631899792518823542524837408130835256165525150266746810283796301442984013827504510571637660871881313038771004769383792005237214831718503274827181463654440257678905664884694920279166570142581190230655650005760929327948636712245691538529485817426793103643086457762295024620551120801329830388346567452778867480380321538213635112350686683436011626324924532168659237442625062854858629632994549206993312360388399959738748579664304711688334664708225174891418272784081543070084677650576277793407058733258292003286582992451106367814340048757405307127563288921332329299305377481036647408301433474817641870391468805084574914814454042527058729081515014946316366568066469235147467234567642698819652846636040419097619398276432971470481705027608189581575382752490860367772768336690337936512890496681475852331241189316136700224596331956408022784790964708852213371233035727446562571853757848226459348303056211927893801447774190369045495305496476181734898444790422670328646838896780694988615379716406518876192123079054892426234912666137908470514523865621707292848842175786101933938890696368930147522567743109656004766465507990086241572123952134318305292097266780254355518159247267454386504562482532772463748481967708175608153792496265859526945962087097157038599303865340553476180787338441939800842781388835125490492319611495607155689750525960822352922615064403667916136441195619230784312605403686320378274699637632954767710178761585984309382318009956282881664233539850255704784119513896445658814986129942285163242224755940741802297475817585571664216234537423079893531070774746353863325800207086653859882056621782072891195695725609323670906566532855176441490790660838065713046168026872291850572069616382934126271268604471171929100233726466878294722354351387898864746567145550035365124755077267759679931661949081628967107837372247969841619310550005836208513738582387815999751875129908734225160652484005341506801669758038177762798602003172017092287373025217034688470477469226539697548745601377072839940319707886838467171207537079452844377809744600866632183685124278852172414723286672837601486506261049164295873049623514029130030391544108971357747783941722989513038981060947129589301897174665052846439578200639948885647649743343470841007933733811114373373681182166717156689587815213872964150999952321439132554587752960740467920022311826408283360122074148315685886681818473318990821081944165119652582639130504914378437430712613012771984713485375736293021194429378662513134829305413297684090184217978891911205670957365332590185193554913653603513858035167016323742274069960687666328392538737195148447060316904255826435350326682556831134360172240202091835305802611343507092280235939926542565153126218846597361517897593984477384815778614111528688869974510877771176067963613741703293368027911398916656070441155774350047799441165879111060589499976110214594274651783652576755786257880655092127869742958954905781930175969135675242589510221738574207835571402102666110056239289183311217658796858418332696706549966778580855410050743035516030094437517165467235023767579011191987056441603575412882806050762670578195424888030773025340643821567769398477059836393506388312381888840354186965995933193180678135390719054193482708909359574397522625632763809908801282268232094443563949549730001017214716164087380364976798527559391171128086138520551035131523724963089841465021821994888411805317389455349466704319276879523801350046619794313083127845034020421173086179143846064664445602873199059501742191569559367212876590370944786592699746805528358248949372916486679430225283501746821153922645331724696141980184662739967081956798349734490386742551266819686619505432257428865422390320847135042572168200289566025671820792154269520400809382218477570986048397642258522773379989606595472114141777647028092288956975527598544350672964904127553801955378154232591785535171253341333921904505428364569804461340805609042610346991300077892152851926585711608690896109701295287007515605833005396861730922436176755883335027581139770129100557118530536968959527621186348647306124973339201069646247612258089934100588557040232777609686400426608797042056864241508836094755596871254372783928826588681956245014162858746922327477173875922546553967060787094354608628671476222468820535729492043301658993339253216019482823914431058169131201169814864732282555038635295281313469441499608013419146970591998876650287022785895081445393044063596548833755724413091057425585454686067252697563146675400959206713270439478197878509848258478212463903133318475678120600568340748346374717062486561851199278310665373157596591819466528476113182199388738858199346518929639162485114739297799914245113751634070044551386762859164192931591465544698975411931583299417384428159790900761242299108462063580047146626268690108519868069107974613598888787309596886893261444474662898497869481197445457683812804926130407970819491429750002035481895319515672824241678930763981864985194539110146327102079095141555555715338988618799021492126299882832419261635027920499706174595029208533717996350816973283460913833312526570556084325396079879027893999642582080617696061539827511851825650184168511293423230086204686075066797720720048934520888397677385829165291167187698854028419734896828658448231883666385696715799478719045294576916854080565162742545909723911199385473558448993693872131113377228389884791829178221329542982460584344089568716414066803749091521645089289380852030768321535869853406055754106114776115199434167744705873526320158881205132316202711291165531462884276521326956613852747585785497700429581715069700280390663794597107915480911716204565882746929544112938728775819957519806642674354208650490444568147571184695741260122818099289903246288965267727153567525319391591483636069522621322246036933354965869733103934562900364405294028035664705611818282236096979668056631811882455205966154474084571003242660808527522675828920789484965732386835232023936940873424947573743781888325050571367918059829587608865819718563057938860105335064482650553718601054693405300794316264121731271444107355440033727054207150895045690566963072440043654084882672766334722839169212269824829160414945386776405230855054260625328222484827041449720542048786710670454093068664916847708640209988804842141108423078313995103941353270567037612533299998679760390320138780239922513771044387100195856846220607410831228933467975216454253520044512332598299868807120040415621833934224394760702385671324885146001922825522822375094666250802789765372618443760135356520195884999885212386444252355349260605553157973923587892539498494132812405284577698553489191180493887289168481619762439142978440050166436336858736242818035938059749007340195558810649029075022273889320380674936961489507166557651040922396069998016476053646773797778073958420260890186838376295043161526570464864943031605181044342897226702555176954090542945125241803202004232191951677561453169963936102450151994334204608512944428405362001958624415027037027051821842202350917378689056300484374973733126721550725329110946511372442760168262915136495189384600551114769932784142641247821881259136199214440235913664048132302722519375135705735956272825457300141186304001951770515397343071763641501911089701025119198714659448498045437500520330744608967684427386661487415010744229592721513253913742996780777674641922672289955076532656423972544477186768691153207275687535998542100594181842669063796831110037797949272779578588815545564658151595766413980800393589100675990013183769872157561542400728733056018208545857528244488758004177239247306648341230693978709718052092490737285569491997615182206618996377994500425618385379718293429263914846581135329454748084212404139229382447084615055248112800579249150024938396068361890409200589884537237285792808086735370820189694435953451957078436646639288004579297673577912074897287066565799095849408088889106907534605408844974442690675504259623116128674378878642283641860252218419872300083093501977666699551616704228992418519594336442784384442477982527949888315965901706657570942029631473094918797125220139638417915229562123860963366063170648481856428212677279547324196666700656333833971718075119975417379182954450008528130620230116938503416182800275870340027276253607020529240090583431531319687276837498109461668453811048476469480645695729637091450081861164914676770672792624050227807903334983508931355665436443845354935850190099468760240383829523560082643993879099379293863748969060352210119873696987042526260495994316801190873021658355303983424739461394202607851954815333629665111835820478438081729741588644437387484254098230208406837515336277711819339769089350918454847931058393775545017971803699032394544833207034190409792673898723470989286863665867742055970154895743755338863893290461979585009772961103032096720613096772695806883022486562760774049962349387178607259404188292759933617808259767418318423514720825040387554569658835265281896960293032130531987759573221792675640053843084703512494449097544458938414837400385845398819033143808463260500931793391350397992207482332027460949249595559632347728436916313743882196914947583087952474024950648048495913429358614784950806648505405798870590193887202769203266418066128239033447683086184950727998658205253036540207751673667233495627736353234966197821149537581143472005671697897824992898439001870011007742944243653163365855782088891850876613090940748157031313302800740535227978350740065411370652924037920843428784998249487453053783379815326589676936511967690675623029029120803984446780628521861278044150871342715820341513777852286650037674251506740171197562461597571128607432511957423391468067101220407595923630306038727323634317714746005432469382770830095045114751718060135267391186232527115551809218445282849918078004279779764969027370537722660459678030104736401351331890586217509382571934479427843414768010380304328320864777517967592197030355727106726449509462682124893186419694894145695790044442172633061329562951726704023948819767305646669072128892224482486124895095697673269455528180687777228202020550126836992213447050867904444345999300999389514897493839153953673010822869860264924437333230710389410325859717720131400982915839391591186825152956124946944287812038890561112531166713579968275582848990488975172113449071299434937158123437205952596236277957102200650983978007164280280702357090303520119142458397833127676824095760201923627399888483615559957557045384387133450905554894173814384384964419764950388267724358537847710457526187446311756844186735500042983798823896595619367991756811069096176751447108918177483066804129679686444504830212828208516707958334072439174410371993298115595248599642103321337004431939433122968726541363146594689777797024078603333282001334469803275166192513063832503069068018003170601721797792539713496919175358878946227936215574255807241474847834054800942411699034937245972321656492489969728346613294095118136769978740646634124524181884347460518035083165734668968000183288559082447806290468738825388527592838556039046945186275843397128794026785695280220321127362424535290134735507858128637222223885809820069128133320392699006943691836732714958130616461752157468430775093723343712351450945973101183445598634874360107182366292364177498749474752720897893248124143962436258920535493722806888129023179196640010031314222069064853398675994014409716148867444163348743450906138691645501279105707557303131779559302457762667812586495094691932699780188751347046216991101994596519349969061651200276534457380725450250041574791954003397979894379389532655036870639525514274493475841061845807046149766091085070016586954950082860806616690615611472985739721694176278151382504056542541503858269072612317552860279468753151100386351810726467085346553469922043555276059342426830873532090397867344728114336357888697929975443218204590531838996813107815214500606647227697511673696393527062722386096907044800156217965813892934497173609736715089098444894295164703958309523159773136063076228483080764555070794362684530140062497250220682085327401010927722056383647264999550742900417149987306915133457694652008337444310041143556654036545503089864628810527727659491208845803298166547135535290365580659108934221714025922767136911281133259653092116286293502239904430096144804482494939501867758219772842792630718194318301751125500997212852756214972064837896265459261194760857584761043988350516855332007846984184939166158843364790185449769723320181285915127557116607828817735314470978769707145406649061117822562576762037145452097068755132511765078856302747232589591647554941690395553729795205770679475865878724590053237281803512869118016889678299887588318349527149706315615641692683220026822313680581771562693453582648040106292784971150020457883147374994057538739882249977894219614265778897229061347497569920960429810024699283063293757860075389208141840279137242888285095115723515034131694500407926315504072906436523317560338309889553550803275014530511653408786838881268834841844969283052118383904744553326891459875364394871640863271370950291942366986663793572599643722183635485402799759049770213885716204475916665427045840943868396990015166751703181287513561026692802305089857779252789325366022878978437646522899495165537596499686959366627574316549171178157528952065529634004259202804966239799747440130975713246739278629495907257503005098542042345505519250610516627755890592033647419736381757309081933736927549380852124997457903237092651800567887907920974865608448714514876775772726233041210055271320228224420605763350380817694368542862872419777352753370962103195747147133634303646486697072665035257473058297797033986467985018719590061231947760333628051091002221494439246370237240667980547961029421177202790671004474255760182418229326851714767401964987602234332860215443990487312591366901427940235898503469219112982949752468230090013791481649858939774418617432538235921970897133492915061590790165853870965947626096309875260527830681862467013612175151779270747692383486498338070846152552915034746386572155137777684452604379708747309596210238427596792153892326235013968816027859009658829679012178649374800761468787701997605759544214318352848241333042783856571825466428067138278538746165340597201554254039409478924065507006112013103338562606138113291658084887380726066317526207720461337981936300512490941948337035254235825933478875935050007127996465104787346972313672106811547762091214883310869139517252732282105454365989518890647785834699529491965628182646636090809671705120672087532019342485796017132191352494438229196059969391579292943004339488235749381284902551526371956329903099962340336545775151754161115442191073199325909083394156384843264782590296426791421086090545773094917941057387408415015097821758075779331635192323347773068430115246859206405760288820363841480845828130650589646954053314088676470141736914204770256712302847298392541525860265777643032309005461237094143792459559694523664928708895528130563563495298655794822679463558283187017301476644355131487842396262828930202929505183770124876297813005300524220112436424545437404160146798463770105389506660749050148295024435527956560583254418061242366414837724389867949468040761237395272784877685446998271774821428087820577181966614599730410357420120429256935116662117432616424692708467448845831694140797571377476970947442716578049485870276242456776524932089389463135286721732365536653286480906648290607796059814630243368627323585218053474909391197667114208095919113853600533931808972101977882256872733493726408025685095830681042474432951038828450356504648763499194003038466223497453534052980688213541980278162567947932650404480204510673114012948044544919342873598498557024530058772825022352644654746596257114383835320848157785278785232521008520899559347171328350659197033299082060165494405995529876496215868844341151617675969086637740328601289786366432251355025093186871430917389092750242061075585470918414553064176435716080461980916164503105237785174464663396409938404970216346052475844130155565513807321371546489227992128199985587994730765695738870969551791563281436436334933049840547783383912643308045334685096592921040147775572479881774718458985099710619149513054979024077914708667733370975283488906094874059182563968976970023398872730711515420763031175427588224020444067527278608653982347304064489806073145752949610396293819496476277210142353790660101286709099121097172626444130108753310916949260072169003580549005752214097392948877178470998443489731700795349195513226747819714254627587829500702284117212156203563049259272848379765861288219927417184749297372013573920231039275314397108581656026685235799452667146692833029994535111083044511810382849924542379579012861583200650382293950418767912550005551924434003046119640127436535608147214065045264010333039159781635069696198978311381495095013694940848651536459096875941522498109166103182338034412173648377968980018655951045130933335784658571884178831592553806454263757473795471034077086169051822160244147488221714782023272633057864727795090496004156958989948203879428525847440426946476733340919552436001272056440482263622902734209268674834619040463767645763828892982357276561240068889512140789204877435306386894077681915011294198020565040544321724024854039515851552582039102404245749101321569175457319950101437494251467678930658778871423091188894737440526489712908675091488901079866407128123865396558434302077389966455355769515833901936881054506493281452384827640067997747491479512847452317523117592607581238026341236252407097076334408768991721023995927880504207001093085062115868086338859864535729562686436459056987575394596186510897536245239470065707778496293681942202143827043881492104321447875994165060640667243678525409405125448314628587806212583068577974336178282292797514966592037068073602169330232717891338741043694160190578752472745475420433745993295003695736431457572484582082660724587330323546241527592757895953690244449072651250542601007939563959908899772162500449566079001180844661413895058348164879218385666995393459812519411148660150689800135113615954799485817851551336463814461947712642336162937911205640785062186532076813307070375021306983216677616472913142364963137421272410737731019009147179995884848349084434068567712451831302954737383235147168201240354821888539059328829481496104979730900901735849193881248957809032864478773939057373855861754232318067937291214513517164889161593804886230582040554102800052672706236305300669179501588488277433260707755651576792582951027981053790488316878596513619278790358967285329175403602603124938431248432307937273583415347861423284969047645250244922833389023330758508407197275805937581433332943315883634149288035135703543961719003535956563737748842057263396684450433263146138498015659388278182136089286944487112480865259848243451033449544789626420652469735268410553717297843672351113408342944128995241681369252257464099972809012365891380420170023238000149567327634373846730791734096483597877222805845008999107772232554552370321056209191431632742035367622748471073686671155848847118738704493785425295966607205003838782408863425132731330733789976643508228292709655425163831000177688859085923963947506257298820358771160522832767372288557302801910784937270860811319707461816356468655393045597980396478048815501150466084388468912914420188149382913430333079396366442847266373214756911587634809898115207395389568997234357506102660488041849308235425930163871925979749070448226485004224423699366642568224522386953268948209665436394085801901780200607990695037164716131678791475604840809228241399959020065314223201218658564449967301913976458711523694553908623929429587086515812534779222643067171245966859671051091391609219577053787027886433345462122960016626079864629681251287154154526058275298923841966464000144257324300875055644892680431518898325311944276749113287995791028322786376325657355031700627557251935305071374623301267038429818257021772027954686641638302985023538629418725134583024124531736484178251015799522019728155251839630305066088839119511780377201129484278187969896105219084503782955510571111419051534942159537654956811784956020562714013192827699382150372604265064567728177552367054544389165112220447708286172559349775540127502142751958809903040990999384800691616607039814913155913491607075925369497690702962009756321685994333986860748153019505011136195836542562140486859911086464224319649992619931442880224095958361568638316406023376452402987895746793623354392678664030589481919072033925764274677870738239781793989221267978630020337436490992172587603059289624621932203137813216165563515106577779764548790866015505263029460418424490493766350806283999990925050835863410204532541798821781561985525540135522116763880685991745368361250367496126910944937680317176748914659405741221738121479695147038740803410600283499554113707292734410792281639344528518414375286098975854076448296474803442945011476554525436961356220616537680019213054592505693019853144791403278220735175767127169857700245902952968653382365423116742439805289333441538237905590591811006907219453672033886285861802450914201335199905709075009171030615874326868476360568016076482987814195242366829958891471237692369835578510980393884307302989980180367998521616755767545983101621932972873724119459229942149053530291444250707843188094341834090448550159752021468771432338331254135943214038271011454961068031753825693150339167581044012464307565223624857677377350788125575000777387199006513483384097755845245989257140590920585932473213085612079079063834594926949163660694857624323623502583001164623606236447725861986147939996083800979682495310591533100662487150551593270703017250348867544426186755680023685412248935752930615778356943107487100835160968955845166459749989097718755538690974312768308161568345402451323874273528546726899412217748008152779072190894252694605938177607513848074798465926717609761463758381636959110353637936789492748622764721161337236461960381178002155628998254833917986351794525795922631115384658750508719851894503935684238826054452382500348076489459938270239710594383806128086444985733031695804490646002733694678664440460838052599441194849371627569196520223835637964029977301616496617489790506113113342699055786782096768559637967939289556654519145071108357046042922313403215777409862858507465991451445471475533353291758058854115390783147152510406525919354809678294820615192128872137907704724742770482741065644879516714154627437509810237269943535274149215446054170237859715244565752742563718230478967449837717476171547326689557227735309211179280082313913264520004306542918797236816358969095846885782493890854117570851227278352350937223409295346043683891859808247785786628105445339982575082428773276657543795105249284379469441137100041987898368926850554394713886367009978428627998297319533960269434098853522088367339193902284601880404222301377438224315767345479542955606771991549102674442357842464193329286511250752771429297841647588032920672387272796012749894216761980887280540034307390826645350265128842604408867043166673228798820342366287665872471811433347056075468598704847766517683660204426373700803863086409506359467996764154967465197698542779000729376964621023833676737015229803183918602758879160056073509825310812014716861984282005756532709993280039626321694595139658863220798299577754325677969955584181839190691069539094752372744548938712716512421535446577580306605005427282282591044267152411768051502456251666757785129255434772596773056936919101607040177537489368546157587997541627620722016038441144823391303164551514119418656173697554882733887891591891664224146342849384310038989643543000075752512044814838085103403099674962696738228805888970428420482285721224643211386822092706761109423624511402643106509083682272369536468629768039196495471855138650805506746237889334328077905937885808226996864007883567432345588106705809449510083856708769842321770923997362518357466484318004050543009441777228695458171144570239162666389894663919141160525101428983011601411825430650414567555468861828937061123642077882782434978102337836273092265749780895392535252385886728746946549366463309694497239648239594501501365698575820948086579975215346504437539088628136729070098524728059183816130988016856317265333876930830665344436772404188471969714530101664676513671091355218066546177722130123651752392195921281624993080472429855359835428502417404602471453394691488625442891380203243829562769294915600386987670175422951209341665893681209610177859439468276301141393105681926267653236131222250206493702695197996350134034803943358798789462370209105385252262874446044314994818807855029335948061766305604656056877695846396923417052317091459562465236203195863032836708342557087277658248581189178153221097671103889776552144953323179524068849162294110089802344060583228149160254695929145073277554170884930134859755040067986025169977756700555453180611784763985160416345098358714904992077974644991178222224442770913695676175468751612892691526465409184248443662486365967125098293130255157374267764587467480246227020655683233175943086513793978151440599458483913384277809984196880212879205842969522587032206663008991127732022136255760369395465684330485347184796628357308333474411493825198005920980778289076000941870766087964315288876134277000114305717332886830102366049614709034800623272160195275908109681903164749579303168730359409059114556436126333586933427299327908523350578174226899990863907648252591590362369475298540125459882919118628496581212101364653821100839460462260139307814700657917082732244453959505005593599822306965253197652630046604226439877433047350795883206013520859392644728829630678652028185906393292330280723143989608725381584054302812358968833278246433431885902112164930168089700763495263633590961443939796530604829745497785699770556460814609738456327444893982750284091388061433876040917700335941110006143018573449890161145796270100757657234330353158125331307945183495563661457987779984399142788989417843961155986461582250956222011780365487140973594830869196904598597586978437465450508875903151612519921631902377673702034719813494608825811320951209158307615822995481305105813884036422296830556688737782302440236398180722226510354809554678057331101376710685979427778237697748235045841651218944119222774745164190229063187903603232858629931484356175232440206417966059734546409300287482347650583703445263850781264857160490052524078150439508975374054551226991177136542504056314305469981845528365976146164519675045550656231299336235939056141820967976664735933178513832669722275358157927624608989618783290115390561219209260399095963826529807137512800499602504116794682162190368093890895413661728623058397029819070832974224045452376702559855819586547920840604200548759705778748201967550065033120143116269771692496361710468975125283425654306494914015470950675947182656479923428831112110073286787385650480675096164283545582982607968962111264031710875710850293819922043561324185162066462647756305746310164159415993251437678978952156345198155902935140569712425746406333763015210009207817545747020025839945081926256796649384482728334060257046843418678476578022454126764082868352486073163596192278904972943135310992695474216409420008284828439675286072089050687539535707746434736273288354495025876827838846295066233259629765693989693818035529672445838879336057936580257432332635435981238019350991798658686395035139211555510168983761219066386446418626370314877492390227234245980051444196914803330697358177740367600035101907828899304223924602910338538809810644681595554819980664704015578200520532774966788050190135102997825684594648716760185693811490310990284311037271391685954783276678494398594769938613122236915151185684119309252449909992668948233855799741671810895701352647743228325866124907090385979230816111614971515917650951942139981150263067849816823416718801243085653990205292218960956374283135050253484295870050605292712798962932802272779560401564407552110969391601247057417143962396292339748682189421645826823027920458857774492686633208753319319706477273181721817231486053342261280446907065775822632969827530084589239866184874485305495407183032659429140944998680126689601295708268281046865307888434651405120257438075021742370745325247011782469503079367988599809015575456872847265451623622853120175240729962493054381271829491533911282087968067422496171072995250271331577075173527071438313651084882172959958045044877428902965993750522227505020176819628325262587230540651554454620582584433008806058634471538355039135797212350288101610449779664046025703895566306151887511639022147977512704886205706013203180878538149274887263349584389354422336702740468034980240522778182308421005573405707917093284796950751883844319825801514228104577765776772421941748617255496513644208926243561040603953750039108438353923823480081739094911404302738484153471094249555879038645268479538300656628380671069034806903347513439648847709618685710776270702542869473615077839216207928111966875711511812136983193489853602440393224910700766126201448909902333094521574105399292849638998926076295725956076806100818832557058406120540605072758408772927629194548977162711753719101827590931965606469234249468314442129290120426956972309097049525379067985273074527082420573882278648114911482923579857292650880633492863093724111826081284712956313168674093143849558979689973513073487381500183510631508273082387802746330176820080030486470518136258754005558972603993884877717847057620356633376282117142650635203042353440538160594666663886435300761517509643977356021351929838258658417437402484458285800937346170708692957411856218017138058853096585348932743661177294152441997731398709686415693975330657977517979818321523974501990662205779129285077079006274178875213963645437872320908145483859278867678318032817936234999287140128177147227094864011296141615642182997104443912471155614082423001787983345477997517865037936579860538936442413654311422009604815013541121551908238488734745844377647222948216143674604473664445639159233676890092506020957761317382223467303551496499334024795166545697575351355982347675750412234749118399326736028304705209677332541655439175917081716275991388457849175555360351254208760592421618300142959163664687400720871744020653217952336945655504269226123912891808360115833343762200977748654599286230568775678016591447690464969873011794590470002399660746957736266114941552846510557490921149954214604189255619550151358247876808935604366172007396582062839801542594719053394065786163732672661872269987349501623937014542940217915965537856460239837954948382558649530170196530956470875765943088736001483262197005440440015659995375644720017901831094693093274021557415882550757272959452515929748626021772069510999566437871540718279081766589378513048833995374723476408850613920141044901571461412693416671418507691925691122152834861329865576963397399427802711167678844562615504821877756970777602721048855127888310199639455311919099178664555219022354742824584626692396316633145546257565095678459112255042147939094924658376277893336171874239683838769288786140100386272391723377713613237756107592836435240701808985783681013431493951541682120569336172447448002351782140403636687884426127737228988725461545853929996337122963478925884580969869297677361518561035474383211090914156451476879822642041544330965140484579849461198694264524844043442808849362242936269192066601442195301893346345251650778818604085142386134024090397117123319951021468365398098656476237648001687344453189944898154399245903040360269005407217600853314251010753158552607170491292420968316871845880709177959173118284603409595878293060047975185109020164081091249407529738565145459059194392383772222114764132577235109461765531196622589480600466787105478747401366528944178211915634193278247094631084960083084100095455329924121013867025843976742151468207722196726572977970303256519080174489291995095468085785789405292636530071279863167292630422676063127890890008652275848283688142044457274741042120493231419078726144418458534122245134812716977508521024168334904703433671017740940559226542684624364158992274643133292553406095375004424394297005275672949019856943258777978703804702704397512383122332597617750778624228037768352706074429506152853870340913449374178450406580859480454344482094008311967494931183849106591751058935216739993156522073550939533505067292522750262575422355888288667546045261301727731263947414639047568119320547861756452573388194738631296657406533116106782102542283175698551471771565968144133736919424198701541088602788376804209083901130424883907296106982853712939032601638548998704187906536898468207455171677251757583603774848930915894623359065129878365230362181712482096764521898185665440976418603875409259806194045913967910414984161100274114868267535898757074676730860125127455737990488132886629992497542344765990460122744775675492406572328510846082206476934213686590788344461350067030974715357256160279675122443045604896357128325577234170559517885517846635843114616916095792838557277071495801050398001949975028956081617561841520499816576998844800466251185508898212137290098865132456487065494865827031583189041226748792395448854379163046670309320319858686694969804700887772844919923682798852775296016902757554776395758731237948417970350201387591483946022888845659163013625191663439766600603052326995084677282826235248772153236960327555984012810169613385988618296436481378979142884194335896351382052189698467717204073108673969394640293636561068843962298654348853436255834032268300881839377408543490852294386127822532218650087729900779519669458411303853583990159317093575872198542384058163996023315360273044811638600428286194834292676992720093296462269061160455858237426047386428035363455373977222391184188996516590262749227128360497969496599779109018744286280642658176135289054934222779453915634088570684883631307599536100715852627620985414022321115429159311315956505287260880453155244234971247943141839951672959024715981879148433970714454987729247954444341139397566219678696084386590575996380743782467502621160337347333593628493452804924053869242977313027964428847583451857552899797897772357414296190826147524238087524992758324411366456424827904076246545111648363959435713103734521655579697166737606282960086511783103701322399357692803239280664897801787933319270430612463573228089481531611727865633132372762946317199484806334759020368801588432541682734786211967728733802102139616732340163258162919795736621035802496235009062789145206088432133419846631024113047810113359685451982397499503183855894251939290484168841376935349030877132211981744206104352950915943365680819383462087874721555510992539764194891634230953380921533902381460760029877040423954178237742113645795852395061817319855342748172544950593165928830983516112313572132121348794947321549646065980537154510378334267877758924037814567912445340191187361892805470189335589473412210708700524493004791091723545619850285942801515268400607546780821792486073627731195593517864119041549056449590200101088677718730064075985362674571390073460879593365492498135440223751609406868062878491093700155748314551131114763438969379916897399398013800502811469849300332043217819013223691657073681743695846785155416860689041330240578418179224058367283835872884031509674272214225358689432891891639865813936089476777393341700641087146240987762135862188121384416342897420309491275295140398312967062471611257590950948111900462848791913545291838368483316904443833898557753524143856912050862615314757870509756513581659351594119657674942476250223897533507545809284251947410175389438381099110957627417502615963441292373817205638892701089180807515277461882184427305675253893147340544494781235776605872102057496036524670932076605312752137001590685197719976201550700089206774898965339063454344781181892165475385895081753748129640246260688996581860186994384908934834951859469025181461248537537921003319467898265222158305128900453741022083471432765493251971499287984617680823213394855861376982983094613574451669736514045546132604083918861107543637714086895142343103064209775879486415813901647413966934237968471890078481822852891634926729816242408430438744166056676674872945134664322547209931761248273880257142690864904580893268898465668428609023714372531274331013992848478708028824813088956947235667547157868025911458574566835933016921159116642186948874713071576076237462480819201063763963060120121069320784037743473924016957952721047985215596841407437159493823870271481956030431751787167563594138806915005025234752852695972660200406679522531220740833895944410892695994695486212500542171368401491664495634094321087124814284507105619106186597380057290530399608071094040957294752820416396742438511318546792256911326813850852316182630470396608362818666756477238998028942151757667248182127956452791509895663037884496579125614405555407271400129638484874551538914358159103609258867582775785134904054496999845306634581899284048899705122595180993020403662155612738215034135682315510891820129175246456261883081971551198310134778669822295871562569333577140660240918628618950526779268509259803069211912978251480053380418954290239451665009412356801935241055889670193796590605620435653032933842239529331096866977217804658972393632166800837886145322634540593178714117182443610091220877923277481532744383744764345698680563884995960986364299365947338641844849787080649910137146638318450930557029491704081404056722522971383136400745227916200982573434442682232254689407357894192830903350454584673016864140964346582347837737794634454264397812643586853642967369980619192960216487305860559703513423099559590838972981769622123294424449473997729314286274810181111458284148847689948914509741265106741669267772348851640971089249155242423595990199184002489225942796999825650223891286678107099560050529813221444743184266922215350449815740817395333790245532635678049984430595119459613863717058664774127287913903157655076038836103075311148121526616779455785036832005230216103064587786025981856628647867008232998695494678625233140292008930924655487064178827605138905966986784378331069892646079422163347905016141118768762887911924179635402142519341648550136685011721188243636627891062288898250865715096803615665891752275978482484742249642717466511632423038582488430897017020967252657875397999066067870103386413689125335296336798662782771597570259420867997321153452770154360927173119842413255418697812719256039447870636550443251459109446798232954491252678167105452785988448752991678384250224164987217937499044548254826805254306979265736560144129215385749816839907914009848255757794129314964329132847665462359871387821197194336147259937906744749483206164913100265699585676661269112980978848473830797847690363162793972666839826097447100808183146852527854691818384108616128931227999396699724296416891887780309434746186927612121972099450107980660036338028238119106678945197848913612314319066972794346031863842080264479737827017837578527720007026452898795050781044973128940043629708072589656369777741878009089494116430842782725179039768995845654053391666957379821614027361301226395185161713505428350742973548079999480642684670781087472018259956204184486275477913702378814323192419379371905835220271552621433724840678316024912959487771639474525220087395407535544429677871694363403818423223434083780085476567810094041814659840630739465175636354183013314496512352263236709147878513637367412164736286894266982732841278100108922523453334239460625967211103076064361362505449633763741958436582642561148818082318244818592678429949434319631803971295902706404411376253835362573860888453477987494315012667096797998495020702257189712681138098716396453525712580179446853246238638239861666156614833295841674284493298703472401304778367974420609000085183468908939108188641546511773987012399945553764816361426461512495996722622260039097517218242734007243655985311217866376980216493967136869625802041335333274355999826645654998939854728716872929381781098593458324232236674151279169473131829759974268247246542877589055018939898955055036618010616316923981961398238571944763053432764114032334952165815273762091886001647437949968634567830782106508582638789965306266673721641538502805680954395925234877155411145354989242650175443764491022052872159924091264811353354336874846804884963257227744768790331419700182699290923928178175846173256168731672438095312461832328835335163108696248050810998410745423026201949122857067373991834834356263670475666114732312389975968960578401258271516771926420180503576095032554985257108290466584045524957637267233377700051130792637251799513424123961328742084231000857607034090511515036815553211772228657739666902809431990734332850312192087102422418150931970742296509737516106169281731515281813494937868874551405356678146749063952983130338954816030803613213036185701979754830852874291516038780968139038091102892427481251463275866639916823713464763330903399834618711653330155541749503164183884781146440984241370163184857228307209456621818192603927010009333754898225712442096084450301227544042934775436551594672117869857748106810408806435564111284132888935458601499885643261685968804955158964370150779751402086239792733073458336684317031807680531280111603315713622514320603956969373608050492285764040049953439100009263926022061392575899273810816668510165574593330115810856783010964447706142701846790023918244575335492901309983358326473079300414642209125509144364332974203697290976191466854586397762144009635088665682980888254640944624986130428112562331208940515747373971931881747423628981798890035211404867165161058118238248519693857868284320434077676524828653108263624143372580454338205038213167606693048805000740037942048901448546517475328611131016311224490131268881714467347956533078015429615417182320312903506651904796176852931762819666565469673856236010087518220102511934789163482417933257950360220639610704026155764988808408877482493946837745928739302367129633635907036222816431113256088555846921445846118020677073688414187934328453312599395687864015473807600353093910573244747573951033562211719714967396101499988062753077202903234592055843061540050293322209494211605834816899401147090348788124274290263710914308335321588330915577711782534455461331717685632526022307010243445596202661453834705865349042007118713350819874209700845004054142233421647570055011348912529993046704540140929208498482311396384119084299229397748309636568916259526993441046263038613628277412616518643781008652954067762351316211038721109059671706102740166390499552345553148408130848933807967076512907376155397311949340087117896762174530439092709047640977729506636351972949667303474515444417358702743232774465166698615512598298169465250095511425835714258433516562700423623045214013818072329058861538761357416096921198316852627153566268945356253308490901562187065057243092446280992039362649986057715762138525649341168512704357322549520041517402596921416749459042067545905779539326248366241137584405469952643984118130035941918878108526272197670799231097236370701820147565070544314472981941969584924800719352274409254309336178759918385275912920787913210381120633234817195570824720968689299671083712361036134035350421622490193536218200173976297146388335311674144319979329696258028906466435789050624648176431823877649859573990582279225720050333381367944978455753234689573140804336362131102341103821244764011790197163520405684943914794903395499732861732755421683878245470276137978256574037596869420675867214947091517038819295504711917621216652863288753429885632566423475026393366833441214175569462001149182014167285078934156852609232246563127284024276107274234946121034116844623130125149978272839663293810894163846944021055556367739991032059584285910422643403805180100046427306686694626285978724491667406331729670984822870894147044919730028757980701664646571319007239608531831795767801190133385361285956890716883876863116506396575639032657190239995961590540793488479073560515649203060673571866049710979698969390932900468517739814464333861195205377413373287553407903325093262340507561188666909505407997780322225576637738601639494709039405724589572456342540469705582281778669684753030923155142834587298021656679703224050638777619487465169280112536367017797711318633085883428561147846414634093380295841977676847968293438281015297911070951249507335816061167379883106524886343568732541696361408585252756995051591924498554626871053061070107669556490619095931787024883051684154800294891041474473406484646763326438103529898792279260421525989025068377757572520773163484956789668061315855681509479244220150761792068714720984419177577648631949089014923203569703248905153653530918520140770854490332909311794398042646156798693340477872344042933104281513898290814226380224572686053490026350791717064334066386588735123082309895110183273442450481248240869914515980514264113483380208632286894909490725701548240748716842737346770987502031456420061458140426643992727509382184928102612491258522149065592830044625564270104893269987717346553201736321715007568800825261550272769202110077690948108798093915193565504236721792344692922883344884555208681224481250140545528073096556106755923512709743454342513897814702746729804544578074864757575044523534464706675517007760875335498821787488557681925592211842256349669031757662807662779853895242311706359020063600028298454879299264241126936738348388661940527993894278802118243233606650693856519558414424448698562439927240002733072618978288372144089183137640427815397500810129865124759018627456695801827282647512565190347868913667207414914680929806477529896397590876328765402020249007528051788963404822478948995671091387388522799515562108002517477329428814386207904563742702816094426498468207048908446601841962495242679615965085658007788246254579459202159393489520996546467459058887304968938265223241356903277266481967664808074495602356469415789687060108699818910898014631556454662514452441099262938370937395853324634898226099118630368597956672753942624778936558021322670908190957824509368509225946957399595591282526187303561880348708323937545169671507522397625440033501234671142644622548462621245884033083775049920206917464649957188498985566618446527579550823238832298218447263813247755072475900140392481853678846713246341998597283351750227062038013772182588017735592869265994087306591850872666615626586818604798903135054522211424698236469018355943515724620689789311511238692028689136245486351223254280807564195940460869318925617061852377546571865515275024325932088440624440130386923981300771808858493426418284765010909020396852119325846759583217108403616731016762146433229628942521069901776827378940870077807687700837029683788495427537927609627928591749369897955414926619330746994537145273460596777363080268479453439369750935180286956800325975214632830966176544626562465451626717913013717336989427062425438465215692917614090643573861330893535979377334360737588675050196979941445285893992948145651719609411995330340159200794377963495801078438286360299909621920749404439761432183245249320936151822801481217267201990137147802127791581656708355510348365197173928547144842787968074934714965534059526128675948322026718527810029355837967469395243417789320970245846023642701372736119485057984669576435025453013210819221141944622545875035820130773568077572554504551717837722369719447995625903997992806009423154756024747512666492384158083702135614912892401746437782133968618497027664139425709463897777116359739876096007361338256975675334074752513224915186782019927118703530134430471510947536503608663943914845790595612183955220322546253695993093495918281365596590501481051323381426225055318361448864214894024377202823394246329004373653398070332477785804576477122762712371160382035860739700840506191182151411236221491125979050635285419532865069929765087004710201360914672510921288442020984159513570424110405250944792855898747344894462658133924112944745290381435309371270537545163524162800385749233354345185331323047263888365896458224476903101652019346238112139012847176974111352550384818299968098608448356228297998984515314487450524128714947012657489339838731576350392862693576124725972891775313151117990265492468489815273275325581888051040602930929478662293339966506282768764942025090858948091633062846334439946456488579616136311507246185004250201420342246503928471557472261924091271137262420240432145033544432430912339978940518973048564886357809536271708545766414373708572557812091439970579713608874111998335437305647921376741171614687746592442602277076856010403333989596565840109771554828251685911674939489822954873481201198614026744006695103836049677720424193509500621579522450318591072857558130696600678725612896110681909684052043393985314275623209548371312675645940307420201911174630989275639784458216354496733141773723885816775856588711709654817288536583407986129478707410063112451095009662114451215805000804844415926737818912913907149372029142378489779663090258143929185813723305337549932376454590658266948952130280493616939631243710954465017254403872582166710053455608243637564910020453481307112754446963772102464217946467305326749448674945196233972487496105174409345003497601866213159251148230024260916352111764797875195545617540649121908367837838033712817978016490253726085760009529117138231646853021423480461002774519282187903104268255438355922828578475885499389133375076996347247508959293719969804112725319850431855079013599208476643628615191005597412942032669757119209355831449889216066388792690459021750335144994732577574604913110047481928518550352800628213162600116654511764394453618769465005994147613648893916564988400664253857773125347635165742519208299949447921863634482642322104507223851643156061060477567467400067226840787007764227242723889911159889679971132544790853812475287853740095467213633363368066518510789384952069072618870628340075615774118633902677175355060926139992970020540770738131589974627464032028088234143987901578432210694482402526826198984075771468734856481011363334419817766576566778398294708070399690853819283145696409979794870280009524405468768636136124635525872581039557841976299634571121493741470507110307886365073040318669012377346466235925202959895239785164491390264234445438125460933702012418511679065258337310548269807205657491582012242418287191829236158114594563213912172149361014394128818024917684894136705232050276702298375208532414847012468455621435893294902922943676501390570051953370200316163803803713730226305128700070596286796399303455569617902482024826299211155265900915888795292036946734554620464501209610600658611209415724396955712065299865307295130473338413227082640031108387646206714066221554827879393530721719799229755260854694438683220160384025932604631193051841000234346838847055642543860818061386548790309724046937612227841276610255181659954511428730351005130092505893706794345468129475472553745424710258432409294224262033719552845752809058310011706586346616640862479191683508294129962494039790068229466535308064268893604376878993013650016871582901781035189534973843997562840630876009575633700074163589496604106262454698585797870966061367965834048729871378888242824550094786953564323814721685810791261406437345517139555252573964282366014752718234262089223333909197282306972694687761400508449809524631590041577030111710931571455560012790781942990690851617926309137019012077242484216069098648067776322179825622676176533902535687623031793107166675753081947901476243149466719912251428435927782305748643511927325320563847058916366156959040940568957972191160733789047280643651558376872569337311765387226533555962973236296598520694055056392508920700779968444271446410722349286392220760488062835544352030346271315638959517211917334221848566636790658911453056007235487578057600940280193575888428486110349094117511391490812249147333808884457762343154504175089705977913179408585717899007286993453024036765684777829942903018298775003123441890802209216595011780044687724199948471263596578969522676050602424439133825224733653988979296639431539823262434854360067878645045614974011507215093052312337128379220732923141424462771549454922655326526398349215433942323498047317769008424206038634225248688433039056438280771332155555872141684148041150018558317518770831737287832460717206996790705894496745652179007008803793066275829968442165628255250522786122555399853562044645426336459877842616469403331014164190226824846913203671760445672380693421149648042660963610907644752173189647636400052847392379470128895861574825582371206839122997689685072618922437546272482409691000365478354686942888841473632075061172043930526446408590507480576550111758956294979825562146302325559167100990859164264142197226660030807052135210126018860229359563010710860177972351212413056032822411742951502624889758124429052926182029273306368762350403055051892227937956230279435681368627870957317917440171395510776415169455967712198841491940534304005008985846209327221756607832925252704069405160723715916116300918583443000145812882671444293696055078699116469299999990982563773723558784150608005900255611806630072118715216412420149656288496075316404588560954317477678642043538923073863994646109150472581940156259589902938989995348477271314370535912901675671689557190269735625484147567520524808634892902767529715798911243790380217999890028554869259953637228952151430178300891241130122829907028390253966676192166047251202866529779658150455377991378713750404663990084659371456942730511464863459991374349062594768469553968649736850026240875393054716941112107181218204811045783529175295011715490014863360560581268427417816616130343093033832415031563986091039815288401816985802161464362601008160244744312777350708311290693185150145842981614119524245283100767854323970245713310949862584494358459405807768311668183890151960752772138432783867615802902174005295217148382086684521831143260983690544073472636078992219462903259527778844240078513501532461507473352265039230191627434844528301395051069739532979682313370565896053662056762790990479733327661652754927980195675824944320658203114105390744070185188920685195590016778370869263059168721543011193912057146262475510027668625265458180376684260968508974350335413990780043505924086862108398117730774537519601048046004214356645554922430790900879016017942794571121352056537090477216842990504067412580049359133755873546075369528568336549610077216842453880682733481809216660073123378224608770921050585785809850059123798809700210114621517734535543303768202031813289963812562076956803480868538862176386040471267064522446337899487734117268896676265307250471461039860168303386979066990655579905162695007139444297778882112404274440685055692034653805853507190821207012652989087095204482563083717336574996160794499630293769323516997307395455813919734685948676250248939585514468849607809156290179387474303398732640494200609672586582738141112288296145347138113904227866742770680841452848939003684869973170028589386979080762846348213410539892080739776031477989761674480654838173777112628810749889040565656570510100034677298545319033046786059731988877303203169071580382916383733549239074489227039047866541075611089587872099321974149171202518698327981108799138914105601385541196250901687788091054975631598567629584880825008455901170121285514597385067078326117797689807560431475880829008235593278513381661893238868883239663093912217279010434090134847039855309230541405010952865454257183551087226954979139826972374083355032036741498323748327881808382468934090914158171154276927792306558909270189554475343219706776240639638510368761603148686345197202532497835085446298267922231313140256400544538788255363811234750586194137630255355002389687436680225283559344511509699862359777535715559761550531729851111856494426072552451624944060822954621925407576550939275662361828362473728051432211930738642317322540148787987108222661447183642529052269826902207624824918004912840279841941381231091873698810593318853567574110511220153903345730756371698725549865238886586590107181208665474932038313205707299005756956750968379272715612109446234605344828838214319533279664341547613162202633905586598409675629089257080978296611148813520119584602043943871497994442400589886289687811354082973662192811468056076563975801099887859294555976688691478493426663636558999791162410485029661819457397125875588955070152835260366874537956224197401711442208944069107524716897770299863028480865761535811365434684345970607701683271466331978861427029606120290834907116832569737665589133936504803519721947422748208297091625474291505538741333332841930363104481099379067604386902780658000892623066683533285012122621802210043917547685691779885557070222487846057420013366227816876362786585951182879805004445677425269312469593070392232015830029570581534562138083072858110114980506813629585315453280277554604112684362789599333924478004161196047710851857489323619573543738848109811359694603381281268839010952575533413472259275892540493643220206657470637546558208145693582883067574629217301670038025866851150729277795516368278998345661142853491041284529256294260357616110790224453713964932886908621018186535336343493668368460066804465662232211876798503258797038873346492626278511362327665118396478216578934404551642285051058156870643071682105859114026140352384068418441573287784664756744512721482360083401193074147808182929180089017115058588363711979975615480777886240221093387543568558136762063091534290541375631144320887967591373446527264336130744503423993453537524971937473802859033333454325067591578079489553913870067935314007461752800388955516514201784177729432352876828441567396244893664186301040969994565577297219399886162006240486896135154003646982753469567992738220860628248048064317562974703489212168455483042660089491577042940880797735163197986323336234187229498008576267074632801741947177997265964145745864635772059368079060295711029546272393187579473029453227401187816168143197239598250414956904905761852663758635156814666465136591168685307630377169083082408071979625947549394892430727879646199752448963810372038334018762778474685798800434536261320250993372589813103977416415221147777009290786201160397342145124780047196756106326060793218901133640834689610974995000657671462406674216961332162428943590640218008455790064652596986429888207198413811281317946882380753866900593790583998386617112099175198586792550199867649281852159381616190761875492735381045123589263999133643128590641232218677939864965266973176346781288915958232495398564756019130617638605668537823942457704265298073047857331007421704234853497721207720815368764156381431967901800191556653193219183377653653444468468718329394988971370758145336591910549833423604560119873151850477890429382429750308896271805782944433109738190942879591893681192053355120574726615020090523434517242257789691797495506696608587580795604691603417720404391385470480709148209390831613577003572346165660140086251035484415520845976408327278008492654030902697178191994245458000885810613080340723187978505796261354501608967867127428499056202920773553996358343627677399001012471949552596754060051620539364830776835871486791013751037190811473011817597177439672668574565963890782505785660681071550395423499170305266435308854176804931692805731808974818436471174810979748787059155676845861463217445655867381791137462634072060475527246969372130327508633340086407976288576813297430529068422352038370699891920984386077208780134918860759067578430724645206214160189257716401660532160777533491163179637188528928669596440324077173022620799849618426998014642152093895544731395755812584705578366508665881722587775616876791065227982029469096291174328157766417517987900859042344161875117920188906754053959898466344504453411367982058424866573836061077605393866568405755825453484151641896622005160827423728961828029459921305680035009884267681799357268185978403059901707781421380762538332201652081384438976911289195742939777281520029911362365706229559627034982220652920082034512243824950638251756878133058660412103307471939234815520482320321887875587046471790543706062224163367556702072153513108843354011216064661705554233234461627719363097725438048792922522876814067881909306780724271032794432868916199550511337081057418448909688103031147145844181697295452171451509650464063849066220118295887668005201787329810038011793418053681867177932250128905511713473380833874670929501356512112410179129853684860621994707047095610057380232808189536327018705110991447790602270215576230187464784942749961544263836514253224756750788384460967384408706682486586318190540614191896319830340377099458011845700261472350082155032617141839208476979442397392508608655443846177185042965157942060519222557202031876898562780707409131530068089018725919719100820125367995519838766351768928064491807350127588361681175441528841165131528815502961567282457403374675394260864570735006682786395965593075822362613407862572448391985077497752463766090606468087546613007282986640589693972838834307962638243620031548814832291307391582975892395752362892265959406527770781672669342165640584198543271585522472048820069405917678901852182640478646867777911957666828835880796885095602963682502113773040406644997205599455283029674235658753528600422936679153525571577097775261594684261081198952995097542579859672989226731020219906763301355519999701021380712567057417429398389667658416618545428548878472622420728948287379488818732346269819643677454341755224474770772797651700728196411032218927467481160676443114017891031542010037981009118144942056331064082026719823660415310388913267979104748927240133159407904641685401195346978935909098886546625849716148306911060568875788535841770591933417217538719718115248225968573103034969178773790053077272495523478370434500693924516008425622634187706080853748097405778697820554309391885509876769588262820914805386980974589497775741372375695094643969325644371206898102075476733235085560485136444366804003945874335457199702701512986709743487288249201627651688430884283307717777708943704560921902041937660817205817319372587626687111505920051093181059048255334507706240286095874271099057705139205178609385725785127361278478063988191267039055542126873529996628909625083973095666961250124314700380516386858442378521728753321418164183257401120869938599475843194481600043294533838684960399644537124905486682457363934521655056020296642927007146531246251380519497350664142122574140224844947808389283840680528509019429390877446342660312806142364376421826242873068304322974686368998939239324040244599856001139005791608373587122880777168704595613853320996418330261201183104933091508034666588863327958859426680147768544038312644533946031520613342398710607638634530513097413356867447730158443879506973974107743529946738743463979427537482290427879445052480479659275248403276370195906891593809326818779292039067663569335822194987491863699714360955841120144540647524425002472774647554205564920810406365539420520031268069697201751379453302781687124246024756603012244836325772472596379319283189885726024144544017685843078160802060814586520453650370001928177193574927365266997473031355265116329913656598106823581568647100498779441917646141356638467738325155512776574118563102288822218175086336370677241470807298821306932729033975097054622383892127281691311233314948919960178460425560026392067896102549991126718840967140942337722718505258826114571332204884143553937094752104319720365707075326635393621046806965966485033654618581248106553695354140160283033119243146141914220484100071936366094887892001786381801961901050606527960225265045499271320609473476984788139248720265833754390609762980428852289326365858054782806028619006527824771225135343888075492881058390366337259096229611850202949173834514053428541323908687747376247485011055831360265744907728929017462900259149836418437703944860802107534929389704693635580906988668106467186023451854380129997228372023832460874998946075519050122536733019030841169591733929023251343631387643067765397422133590337566788217627747173336702057180247271425730921734855003407205237341906015924986710950280964484953044317523839821092188092362586561836361522442026390292453464967068593573806184663365414714495505456483433439345230414855002181018750951817722829716341913515413619428631341495446511618896575145028502164366553087757781534601142831283013471056546344026614199901048073254327485639351627300868812081204103288250670196824725318604822754753524992638280104606087976570029897371462362279668289968106345966009706271315693580820574121775090440343667630508250645642042716669417059203637761684231314684285902737807196786703472096242414118612038051092225762946721944693076511040336230546070879357617272756234482059122517879035902389377521870653860278821375868011639241484674826344116521776356871638921522379150670976338759431655737704409806008116062628602307670655411816253353455288803273881372104262957925621005498454070442274184476595113302484874330264900911231605401515122714302321706780171768595578381215490037224953065969497214204257650391359844762634126826634443269959050123135535495372602305373224068335313057244505250384919474753052934949853118949342662828343089084726258886150234253152986500531605253353867211508276219192953302526912968155298085507913676188107502697122994051413187314186721515655034297961783232807459223495149900354044758706518677394315748321792948314739517428008945450365315756534137671700165565625699691066049387502170863880974329443358955007300017815703516833726104004282736486084756754091471193094063484276058063891067935283583306627110197938984312454286034088506783296189301175557412236982583934853396103496016907455334241865432512225936753522816902114930940370092252135283392741202869293600047976426814714496627148355971113251599448824234028215339067521127983073625723689263414400003304092235485392841949763310642698680342084108987765486269102119669644337302360817015294595462095440410176119852560615468768705948470103173498959183645518523237395464944255809095113186170876749112302709098321182203813103400865826528811229160279378778971203051372745620091137399721325492899972313369093122527723228993498541092491381633454321683738942550368494151874854533439747431295663661754227423783985966036650159968374827342811330372164746208710908674653103040780130451690972435794549823742512032723491586334884904313673994280489593496343281118367193727509047530389943214241586740786745871539152875884622193694493094747344936972025782867119149129692000157401668292814669807110529642541055835588814078981512036402456338232376492688496792197063764996225074810693354747434431253874694688734059234114329524574391160253391702428722454380090676794833008062650191957943177623521963143832726233883038912082431505992037329442143776619845774573744475655671937052558924242320057208083155852777982244915389892810001109467490398834559833661908861266262508841514077422143146803395091277499555979686663880590831754906545299575825280701287096250454644089052428940648867730081274234981467353040210178827563349827032559500218414417393929947666145585974678264633800294032427058610079140843180951412128969014594004941630192226417191724034208720008047234925752507700411104593456259879574932325977265886889188491395223114532209979710674067841185887489051033434322701286239736204251226388367363388679467690985871993161872237066227154596486327275435609076462622553825867011199680389489551426258739507298958534394960758437170792509983333002837618107764835586559940199031349469590047902122009143111449882534571153699492187688783931871711289231712898581863026795519101291388601576841093344456556489963518427034874451463055934956113957627175325864635117825479395042130571062739151283453810156642933972339210441742531231380554408954428079466844362174686464023286816600589622664790568250959238554082722601145755151780255465913686219907679514200791139677944442126078598938733215516750589389934610286035246041725134165849362607667915264050203652843287189906925471711223930179763977240481096647438861676131039717529035075972580618219393979801194078534804977104956162417680453529623330481674482415652540675184633601627761930410030161706315603015568516753185436514750731440611349773645500815940824976945164426025458880336032335890022345872115863017155529464498720954721014202975887759126684016087796969499456418063642056092343902817172668707264963285119713512883789741362393443739246585329012994254750336601273537687588683284271069732743363505562335635675477653053562975773875959097215347576999878756362083216308194081171022859367338482518206229442660427661977556363463978195431141486932969875255497242161226766061219620689172853940946948468929350026567125212275851215421233703072635353616268778365526179580792800408203418479189748341355595220602254292755917708255939033807958125254132220355074146931047163405999387322825377602661321242610719125353512096140494847326648237994885073588547006957189951567936714788530621254305900680823012256222315119612857950745172126101565578508934179596926606527573924987082298850035131023796010881349876407763317660254918001919159939542218605613182469900162232644908110694097049193451607189181109190249368586596981249777021061114858213348048603343410701786212448501598620268187478904740259022970611589884849183384096172432674092959287464769627216949106186768973417616870800029356639706172473308209458591203963141625738031941043938005988977974503602420304186877610148328881768087586551096327582952253817140932608752064045964288783811585103093738013061856825795236254843221453999758426356760560960842959615826493786686975332265408518469571323007274382544164344384834015406190331093156812570006972786104005451413135954993323261910693057098786638289885050721954055450724875444689479648731457917647817086093773853127790996868792026814190370350205060441697147319795893576029576441493389978952245175260802094089738085783772494922044222219839933266241543830227689175590963081893966740397920283508738862908940024789750120704134524511649396220293322073735908906773981115269894849081785894359885719501382195824233028728871145124839987914795842515792587540008747110542710311870699493564810207505273097598677067778940012816946127205440070064160952099210780437694529466999710031393387851201856105442071276012782767242308369796865318069318520345092267378254626820374018967481495007574853724507809975314320100661549994002609302294596152832310744921296048676031506156978295425469142749649863037321060934443971728326274471052518190271369021446129491468756020245551010165404147815033777392352443795879213418309889728115716396114210927279941347518597691031409913196157061067653167153405213466125785014276108867998431199681459746407629523849755752312882792441160570090550706964232316247300459673598471645219150169689028101381444863326089633128191753291394444011350880750127894170589791721825566011791826514293004232973005711303364790129052285247893812760628384426706537171143563933924742347268340432095676688959912319488182217146692271054477353889016301639425762674387541854297384646385394713125765251483157432248808660014095809036288773216694225564337031473596975649809207317618297563044424421938461505978720868692888395091325656747702815574230751570002519018173130331624114633243127967210152616778108118083700671962720775995257534617038743638134814149812909331259567089982434531749857434062533016413691488913092940101656045799025193551565300962392449974131209380256059862131011554813352294234101004791820885864577500818295294985129127657466417838480561858257937086221224903690809581163108094454542445390967372980737999157493436663016883863252768218084588898366557589474059454150604390293029794681088169838933774475774054836514291088306711677641068137805555433799793031578085846161155919738153175720012772706806063932976036236836502752523723228152571496713914216595253384661833465300227923094112649181029029889898772585654945478417658886932380977742322275632310523280798867581179930803767924220931137981166087810851948200404160832810260691234444397038470908373025701675678913562473112323738350666786708923421202002547433188102675900197909202674398442057204825974434504086792784008513436473556914199090743351875242680129952172157671515861539332330310512157725696651263637950811987817143820087185257103755396185356126388147274822704818166421473010136197157610821007123092914465286980333234849630327667673466801354408629446698535416535011716553079763961887679849441470429280323095677050084045729988115914197711732922061177958917145763389766102750035834998461405963006613431551878588877052379526157553668594349220797844404421498828428052806268693205036559046441353712533844324866565201868540256388254329476469078582659425862784008122191893637051995230796223023445968258270383148776496908868031884688431537126385951811516163248245303900141027310812098472613353422395028403495611217818346865756322815969687122707698175255738939138747895654530213878351106996995369674859101300155219831507319183199783818725904277660363680443288972655350826569390600584451310907470809496982686210777654743271965238973286088719845990169536757452279660019140930476035473687599928934300784806420584641404342931740404773175964180319852325638894425307328744082371367819352487354395437711463697797263458347920159166148676358891716876095545360840159275037704314997724780941568079789440678082995033436188785993488482237176367659150052593332230781630360758152692425492448993409365496575317969338338006078791631335466895664113390377144797593860411188148817246366805487199125295237790176817521599602250943981393109568268633904635778686005489536611071778084593708111369032808892007216477706665270605762154203569331809904923585243755785908688930164169217440171215157624492853433191908496804303623591130689006844598028688250488449562022345431066271094761834389856510609353559426038849648632488165554916878198780971686327456375495244548984562725566413088160816366142575144084517511862295453985058103608248895512432030535584645702889860809094324822943923659601935050826817181608324171129686143395322071457442910120698922112882889175648865167035511605860234168482580773464334872407969115143244492504627319203371086067742442896558646383475503139701974698285136122070338581931850018014991020157643313192372252794398020589561405174262681753813590663295630656592890405482726356642278906521101923554824639892057075381303894002978457366721565899832474210893983484101958617803078567273334854587029203527382005801809543575894200763274228089454981637731899756559598472802566776891338848873697832541555338046518288238643508397988810164539579700736492055501489477054357124822245937744550659144902460622471145690904610478585262813800878612344437200121680084721347487812810678750755125515847944144477208943496683048728564465232976223405033323426410496490729616868482215126130856824904476143638237941002203102755324001775048889353669373782128253055675585344703951888765750454001669503209363254525355671097453394590178383952467500781846965540022279115610202482263111364958835149674328683997778274999354099941065125464725204413323864511606441552311640599004479765122556079248691569821406653038588379089311663174867368248081672454320022705867284877952818856848948864946360774529836071917765641488931566826311072242173934788009488933825786860050334161847380609175059878681387938335286925630644471554630201294915915186021584399661859910776169826026202086242030689177146884762792960630611059768577175409844967353903821790917528826097389126347395153546417391888182905751216815644133144191680231700792197666045579291801614093861275199617845238495728435020578242542696045106979928497918350014292837777691883039706548777745156499954137930517904515656129012919169537059509099851342021587792409414168033866149043032456019707105303503653258243410223370781533284184603432811805153694739952768593357101239071972590155369849128518546265938384867295204772296445516518688225867420916212481112594915694162682501677368447087101287594751691267934985334313299453308965922667853041732994279267860161713032562548311673246955884253842784853899628846064768410644612626795829326426413055501684761879107629977509879397694287913519181882974122263346615755710863015840251057865540929210636262333513993996099456614774511533375961754814338495191140307612022470480032221458712591995278311075391016991343586063578578965012884906840742884176231328096110090621506318909662819331655988412336561775457633377036898118696233101852182591254964989743034658163838059646734091904532968786623640200434240357525756956160638151135538572805131588512353689759006371534490859564884862755793639931535427243708295989971147396882784387556378033163323272123775962416372250617572941237394095982048940104287078997257578649959387315022095990501031250456113948181817921284055419113093023759408315149473083998168024465074171853365681721621286478162734154949292693299912039727866461014336393408753883625291199492110260624894704727987277875496945191267043564321633483316605799891518605971588423410265202352541234182618834434906477491785823442743429453256976421848357874683153247645634516408622256439751493385271245567048257101241509566448183274689242879923549073249610277241851848266310851513097938066158374975694983709283748891914925122887525780556321488819507846166228699961744760214358617984230228781444247456394835132966592238621814336377582346688138401334533107639725582268573641253774044277045041585763317962300616424926915387466950846550578093408964656603115959411447989139197163555418760147189262846006774010433586454123901247277077647641724428409800268340361149416531749453439962950312242196862037350170353495485461868105561187806693325122375181500608301010213862158616090518647007505869519350309886120931288561743604529366176854099240850603460802134026794947552353955402964431076132195285708888235171960928787701755013943532823542507409952293640672199648953633459816427734567591440099140393365025375971085322685173205148469461791340033282069375438635674688308921882135932821458578780622506701507984202613608817312170178747231081544028453276574887435670755995125852584807426813657314503563577706598340399372984765743243202668197371885002634872830615203369439359152891955211173137725139751762878055232882280607841144959384608072509016635279289695701858357185447597757759952941395017203486830814145592900265774847158714135527774198479957599144643793310813707884630441059696417663098590533518858553127473372422915954430094471727622927301166949435826932942804635855674296141187570015872967692375900390423562702259430210027605132623915458945294970001914259695685444719045320693890428201219544995229145474251529185719254039292655291919960169969112717433682791939986769538436161455484590132401986775777276445613896109674605668391604958774044785539432126701864611807068846400954884981054893496633778082150264562007519496347798333095448038636025020398382471806665574470926179117625187239452554849684039051575463478984075629227815289194734789114116987086497309876180395694035169389541450354150667796932606108123784794044609102134395229205450645899645330994341710115531638055082297118225074520019921687844150820183217566068474146804358485666770490478417474827913802925516428546339491522471502581562457793282017553557683742537167479566346749470441173361921699621237808124580493754262218923748218622776853544858672299590239983480085853625107967691401535318835824726562890468568047881823043427760457810715269130430509687423785808065319770569284595173912292779634450775145299669984849435831197334601375699811031447579579659826382640531609547534895904263223843445483706211187697843578356433705598214822427358016739169067421968672738920624775117817053601221006648933001478122454036237104686308367605397830877427518224546970012674224492658436953411078074844475694014424824845145506081409916647165490733106206181741118257562957122015624514232790453849437489769181948748022082055335445504611847480616572107465895856565508469158714501149148297773864174003482295387808770516326208392523162972148725588974304439532894437149757318266818223120664272710874343788764749876282741432026545479407932747118457386979904197465095448627058422593816363461364619631429713861398089721296648957795183217788031100476360301233828752704470097167978428358794612627470315189431930621917790514153632201517288978155947986086735015424246727449767757468159666189365835125989675769549641506357656145416203251927791179170156537599241515246107486568184406471645151490910768882318974937364517857903839836906988831676763003591098567267309719054272497488778111375776051715489998584933690493786673315194950068158693267334699574364668632226404610730933121255084640764410503636997246474669822888200402955422783300139602256010357189639704308527352952932939066837630346430947712368151023184603242064815388898728958406035964603555750536550025090509843874976006876384166314631812638048562045448586745571121938781194801714295240780075429952787562654853512853003124527892472627236094640727090165424963206260955962722777144475067379096515471457729149611443772602512481746462939653329046035482620342681709067113385555644397791733496576898550878849006918467140979864254054461104282484226378519735032791628276939050212212142860023359478894301282973283469162172590462463881985945483990430325334422454996134292508883291351623085059435807757408801087839877869928133616638025852552457145257552026205142403846290018490369583725509844128880396183455326176497957979560341200488123576247251785350386074199805489091554691448324074891942848404743273281816057035207272134810680585233637771486915377855125059229857629532955111845280714429138275215268113973961593421261688055221416421996358637255562511233367653618865791921075190287007029359256451453224941148465056297835235560644143416881414533386085838274554556774409424749656418848142180648707993714388508891244821953340586215075939525693164130484318691187950037144009570193741792262553177439584060677361986670834966453299682624734652838459385292059285408018143902706944145669919690196248180254633137696288040771447382137765973508659105459115801297934638031827813190223835196531564225950620235557727495145957638099553075662786099439640912430641974272758229620600201282528992296338435545750044380491826018699930600421448057143876050657473960581204430404007458315010610789289607133582967998570292684069552329640762862166332881595623041009400435747581241136275152562095424143498404863456546285390764562664432997403147480339434396505300471710937642886460391752479265117706734697043098881630240474435205460116176257116941624003804094406223851106003578790485717338460377180060111468781822151504936025016281462991720199451888833555287395880018184158288292471818762634621146956530907659698469942158824722639031028344887188149979414190664056279660424891679151223336354790698896396385052680036768440688044143375639021973224790106758701815119356931851472792316109121581607636299854655869762787122194611138606106884043212757153964991509283254285232405906007421975533825380252063594572467871981468835294189699480220016737697418146982971120346864255567446537975270796555558869242374698457279832800400065048197653128555436087339943923309745237209133422369955174615817492499002730951338171968776667783854199065514518829713454646924284661264257568143526534647845311270492235853715529902132062787405749323936997324875127655081034271976599205865648320819410082057834150253254006910378724421987550113840684280442514322927068693651445479252802981787769760897794726645244322248972909935395723072609721362386660197274369997824041032635329465297235058685485130943362345101159736453848972478543444387466153258329146535964145835529500471993520265898731514010035609130412508904993659982811156476239476276702828220687686018550988879674536905129659550510041398567976706807837943387844094040561500730022343019444760418437085051550526577449946869117368386868009435987250848785338456363624213141217035368517449167382766180072225122147374953602829198168752131120247773477050569261726163126307094547308217254940455465495656335810916388135945248898035113730053712662979995348912961540986556030200490745071515655686050834892420569325667189371148437052975119484813721673430968170520494281282734972799217228808526523195262229786073181145631197576285302021951400889799698247773672302538507097727417176373255178393515063259657187767310745470749008097694252870250952245798424741246728315470786806473746873026314486010408771532158331527020820458919983062510832932491849828407817402768542481299013917874952483845320717186898776147098800819723578281265082013501753328891127831976631305294140473948825001037685731806023457728839856051351393815130718889424873985608574014699424128204773179783703596836688388988852546933238211241790248848363485590846309036701979429989475069761384728220839661104135905546017821720741390390226568824208175545508251167905785112129620160536560987475058528901520771637745636750871629863353772844369783631552386294382258092876806776785927923959226005469294672859963178486852699491401186046282215403894040460297283891587840278043211370487300535027550012502332405894393845815512809180407624491786171149452308609245459924877253459322392499349452682039555054549401971674726126291848000046962728853561246441046589367227317657321673414027923392782476184713176595463603895394047570954509582533730835370462375660872019458733754580465912497870164765754098462709020733405563882728919334598259459586878307283712256131773240592559573575656041407298865737656865884917882119594836031279542166005755284577239112528683916347025934444750838341849109167887710330611508983801964594878766991388816029710714940940623622418915390133814568864057310078707044813156895293065017618889531543068949274093155662188147259122059145178585531046113389749690354151408289467075433440829930913903824731275866295905944637051485640482672279046271063204403500107982175365988546217096915590616028913819228751483396451385522226979984018806143840884905774403487945106508033574402814277508305901623113714933985539496118896615515604021620925495551385288811516500655671948795524346305589106540048142515255917233940968703896496615197913306623766502084740757930567807187441461800108257922323661639634155325956804780686632247614826029662505725432309068799266069774655518180647769566529872635255257011168002210232224600225556237014083062192922562270306744092903631168778526891545574981499978922284088939170776129625795407154632107537828850214269458847045847388487198139694064733469216270874580703622068078811860514684545691968717179597185433871186399412933633406658442531114453950944421611381942208993351767663406850402908372714825791171823407836279953512298221048277770047379475412166303638321347694448527781625140459646774981106176737916719410754744446209967299413943992754467417641658468294233925622321768697719726230265251023061791261251620813406560728406826515969817477127546610427185419687335355678679759828386917930555574513574538395788283954521323505591584415760939142791957774063626929681878320066936187432863091384903609358351378636333662551010268839871154677405317923638148969944197437501235532731805724360189384797791582512855614421899314125998455491291766716481265472551585894227929937502149773312863837558395364414999899513727262307646827583326156833257711279508159652387692794585160044200325775498307142632719600999916706472677177958205629261406341770887651387278527590414175605141820877329486396126876616526125921794155825235115053433908227172045122732032244253482587884300644700637499654101426478366480934983358804975348355672380833046379616103966532977962145985617614605812897990962797586127039491372505717906478118252475355124644955568275656261940805067089261671659351423153013535240082689678507600576593752850509962342441571057326507929571079000098136473073664789586204852057100400931634326114287496780194220841551141766042823473509586406122449306211912845946607593344841147263357607706880213110252638984822214091698759338979128717455900267467131380769504790187057615296945653593078421600631417843352562318943383426517106552030560036681269890509621276783672204091990060748948852847120218453946668770653583694618890642234031071372027768918612001564403519755315745539372975811079115901562218979286072979917898052183397380515188735309704485426830156178043754246656866878322434508084669978850548851476067588657395095552297939108401555631728419623097468916351744408238503453745748532528454209792663846732852587506817390939876707753973806845517030498878536980554400342005944175394869111803411860832908467411688269822625631130589630646108599325309598649720536219415870491702614941596752320761038321752645820377680898823631823354971615775668881436497450715575869552370435707723563504822820057651744195993958489637838618301464495260310475857379552692242084533662562811090866871553150527931342748132659874743961458760278332340811100866096035511834373794772897746574911898110375309058410798136290222750027663859571072590485013178151578133130015604590712250994311392436469172809829447306813691651479793932529080688980445189141980207312048970668870145038155778052039644386017611716588883312135010017687508192199422471396469953956201298021222861209853066423664577771916638603706332971515749898523009173484129871374012496633012305168041100486578214012198884150499013899693264585393400807756687073002821758619458430409461517883190716580654761926091824524511814938574909583888552448988984463072817791023892030427127702369641215156441291215162417037024216694249920917538002529003712543859173290441759615040360317007453057268297028253945135373133609883879535428267230109105477479323872028819996061563368909836033373078634936727202022299640512819032937019260441310911672391912802724022039753368732388854845739183195586540949606577118670198227835632917405918027333762495847229423014560358530858734385155802415232973765194818009076103537836412888305698125896677237818389591861681145570546604446945126177462226505679606665510546219050221283912971329158267270667227907017077205593910433280792712243710335019514161135509355029857683897129420184746231799984673352251662128262688451743181971849383412075633188097089880076124236103892444379169780172826706343470121835142086507344042635379390716101672307768122941212063157073235253561573231057108494087642165144088805287424560704727246439198525472085693773183819119848527067889774579241881996402401594934028056272485305916039225304150377545226096700049872757130799287151881669104721067188952435896339619880377946489363441021515311779255717934667590160416072362741735271104075888652216097552154855972545819599728982483795134838571641814348453721529191999457524296597389557379607659218560072217200330087012285165596247540335351142988724588910246527049432692728086294391716547408537457309281140465662553606327412728335567889201388629446416396770151554102372887919229497732127705009687746940705615440139140960164256477765909132399904616441281833845458198358110034808019175693303965686077657324934458816047889050593168068586491319549509519046458229943203397312714841538058165680318699614667003123716549220936591020169571524922358508351316734374238837123503312652858738072809163952170114981697629679838751997735991490450591117046844322085194492177158023765289779700478701950381686674574800278440749960168496871763294948681086564575796759060271038586495085396427748705896677740942723829019651177228184423797648174601562623808712592687685835811539535215790526210171093133798658977274424984033468234399024276126362400753537004765917214477615704023944518598103328272569910365806983631765659846126880398466380920067061937491875518551413924690747933688756654088448565054381127392288467536293615040438026461821604938026415743085013560916626141526476636366577919056176778918656973530043082197006993213687111331753368650691406158107840263295830768855289196591241412761211135679889391315818562535906949329131303406602583374976953899161083122768547946031798110783356633955087034709150414405176550769498815169839171610932178998320640727859924149084024954937818149833552138405478967724810369043688247307954651743456370739878164540222122122948235949418056077301002444683382004595529509011050467714155217537817616485692654880907244700416571181929822827442783162888469664182742411847560383107139183151992519114316933996012382165710152398174451806658139415557446670302981913091438031134774165648562441761006587319209679758435719012674419115853795059930931362329758626169467985790718493807038861893312162385322958507005013928216681575132471468863428682564011704776266821951573918587267424599660984261172012137880026124933156918941504870601653970505622308373350487763655977552262231284092090625832702126534703203939063400016257412913020903541987655192510810697768287432453328903764702477359591450993396015476721428640057601412767678247548347339443439434403653011338520585250747379245026819078700528665167703566114042183866978756198346624124657345289616012483137102738930657589838677060744370440295215498589352358515089748677630141852336987664368360265298344650358614003313735930809010779158804959296180774444534777077578412845270805514918255917406932745594934292396230181698431894165521514580553014216718657490409675920956030722449369428299285533246888101005355295130502971079912232714681905654255223233112853788531757851548249240723848979219382430620418065332262737401434709416767075710965212135605917467040519013384466659219181768659518243762636337255490707791264494607121524101678361741976275109771621204786892973063204891799444141842055391543492323990803839403181958337633218817529428279846061544796940676844527350423363378376030099917667530445932759838489206415459798768471511549095173992029848371394990236238101832570445726460656491034537690152882306875378238668349066096579803147769994564628039742956287915150635188073157735821328555084721972641657877261909377993161450957583130743627037913885029883819261277257253702248341662580854189535243714928383218223801605439169591777821728968801821114141750729515703129925216877534366079303155114672221198810399906421655429400554125097187298763226085091635568103317998040419741206462891935812576001472714160668455621817800864315144599430188680486755755610300224317983803096273272065490821991795559871677178470778013843302209481170268047591395469697879873936945938768427840791666683599711146382593150419180993382936073384939859612854875035492516725983940499806307282290370419007621036667481012818267963600486492936848179742959500810326338116173684901399088902873775767097399423999459580665119881404132219903906660126534547595833969755262962965315005067589453610528087214796969650189101265717380296808698769656922712253921912277895034289816171568630103443886748661883687181408786402097852923570477747618030217115175831454219766009738555330659831228328827471510602112705199653446468264768576511916690123182546076839949473217843633827278172593139332094110169874101209453322189793737061489570063842165278084040819977416108825888132768009179586395359269641079774154571295878827075001416472242271373876435242438314168847367345459041971583213406026624369944126513962549834998550373986361203010383015960539803634202286216168456590959984809047313631343235292828774115881966944596087792835777934438489405912988383569191966621644490068151400368037151309098871189174670755278277652487801377161990949774122731430857573146591456143804247773733828617760153973978644475644031642050445509388314277439395021956873969382177493984349394437167649869174107969131630724058626104858570122642133332415646853095587006701134807184137952776852783383245807174951408060133556191188515266030947100076261484630254904155899188081861934464545498455197369073551802648380546758243850795598123957086070899903779124168062301630153148680748752381357447303276464356142298981992528420908151028533504218105357942380582137659582153031637956393670622390259059660291693347891477742098091356446149792149348042792985984644670989391019086315546116516951506914507853986362218608487790765738245717289422716767721238124923473599701894897726718548022864276454396997111254811379820684715340123923845359835417075771897086319880210243018888682722744179230878217910462771691150843320853336143999226483929877352894415996140624236837443994925872774362589091614041880340954028758653877340420783828172271894731345849032149722158149130251337282869178763184444131750807677234904635402930222993085474750169491759851442368881573773043315882250902286911188219420970491849391910714278185798167233002508639645808465799264782157459343249618506100556026146144028519514405192492432571425748326906635316014108506577873370249253086143151011422686349222701445822142207594060133739232485756341392717265840086535628092059053441650783075191532894867539995208306884929088568203467703275104382900731022782926932444877975864431410893608828834686932914477185697003143026254481115925248785612208771472482862530213593869812758882490014715663113750607754530390661298356789938621055262664420809057964984980270735684985108852197228578727219959864548043143033080236117454168097665866912845334722717668396905556705734662128469535298113331363744961109014468448912857881637547539087095178103695496775139052268746245057443365454754687328452860533687966288725928227416577323239926104622686448280051704823142860246059441747016039391494093023498273597173701937267378602948184276650229223090062456847855260253245741815080265563563759915052226278803179763885855299473242166072126400479526918644184238404699840305787872005112330871134133626792649413862511184721442647348760732260221825210209843160621706820777682196220436341068290261866901461663222803576649330810536853760475633984338269995372050805733552906804494675250789557140087822924588879470266730221147392012868377544623770747218055422085257560008423737046932403940524766400219807328277810703201963296737010011306844735014555432591191494734027748875921293466210615216235848747890514126732106476294132088841379840103842116026921200693351659246654824260508886529026827439493817401407124685416528432662080116874416437160763455397206126803542029076769946006973046752654980548202508318673358631904287801040987591524395273817300659760125582288979883415231583410403000301108727981473992614155107297990224117889971256041508844799916821233579458187762514858607547790788915354189436536342562383653701020172497758339316022440347312104269730051628303466908423555899111744382220953812934369944542383225336694539549885613007390997851213683687825670653236000046247629369218723648137511530580280204825304712200152658686194315727093625835454858803210094010193934014579859091704726038812915017270465274957384730882188604935994130508457984440279138221626482173491503854293288294491820754335488955496555822427236635317152307983949428369376439519840833295934581327031076640603294945029705199815849932081539604224988985000400784934466934598485167174371871519783701405131794700364541196469533004001009345054132385807545723398649080226929928035833616788621016554215729403414359244303885917159862563173089042600975591856150746163855076379885421743670278736626895974442946669966560744705886990588303667327813113480717744457056923581098809997341675112356190430788385420694801712934943658458516938442781635061921991408173285177075022306095449590960640694252424112931946533098470241978615248223798817594988795959816546635922746001580795853493512670312055717876355298621697832866425537262926068545802087549395711438815207575948502156091554255861195991227158122640934456472564170245299518313906848909753408709316979368194033492017267781133990295197074201628820048461345620176116862433266986744631972796376495664353215389869271356244218395203125326212057193186125258905748994774024149446276913219173159678617119008432459592541571610866261508776658068665959937850456232804993097165483062085435031315663943904613374888390688450963993570450260237110223818508245521467415250487418672119954128208900194665066558722123049344506569874112218986294265843621429322801740111323364352589387475706544038444474584700577830230057908573349380598155100677474084330788271811337579646093090990739244585372535836940749700471187128266297943442060402721800915585653640186415796082224086923177746501666167908070010062423681172303437875527515381176058467908971693145338317042789710880644760839335167646478451075727406276608628066610605617885028057619066211587102243013824669229869280577810391018376654008748935325602219372929385569547131111893788796924272688369573114055090929762145810395853779129257190718372228449051323016627466116727659053510621939238052758121191294607702004713759290176547269571734474707438716120923274359540449450863465137210087312371052641492378121660915425446401170514919024436183769128395283528151375787802188836228921788265238694785368006963531766934196555210705597823345273417473860092541189491459104027472546796424773800356904105573881481017515455879486370646960081015388704551443330959506726954741823440610535682752243862306835915212170088382075182159969608317143234450974976206063859828138434648072469580493866057448707418767653089432410384067847804631300930037425608585224046052496284156945854374567496351901451720182572484865505218815641846171222402493593971775453788390663209563937264591131715178040584666981846290596531539871090902895667631256907180718947625656910488051588037298216644003106414464775740836798151561722651127154430015704059449501461449294606899516509881770863328858178432133066793250810191981113772994537027561064992840627544623482460956450953502803251578677689254031835257379872104304631819942964550187784763092144818150856438262274181216665455077719009595417644119706748357249720514156600668944798745318094703314972853126825607902949035725596513313092548365100300803490197332136783355026646322278333398397127489504881114543349356520120278834023768246938182160622858672191070723841188255146562999533494011888154272134978676444673333011903976319408769007238593876552761087047056911588911183501565820445063839609139339622725772956438247109352017606493590269138334885068585570414694989575930754828786404446580134513651366758430051186367543222823686970698520174674866880837830502466734067547333112109664645060354655790908503561314354539381096612923375851632661950077630517733412542346171605254362614951842642727544188169522312489600032445405848314778759392786806369163568543153748020041055843159775724935199605886907566020188198516876457032550833593921140319162573687936202700227198400766603223103889121762059221188977150617857061949039096855666761420269016912378136502557223576570008053253304586857807361446104186538497317647532264981061800867885490379256260638609869571107966702289913595050411820712705363452264836280363143873585561241883089952917007104533763267821654554714394868928407698758578732739442353557314901301515653417480989218923342998574046840910004582592877227585871733741387601992954240510786582703965895418432806647491150393723231758364436625804821827932803404921099387224089453985044881951530958112756536107250327743761666421466999721584704820850846770244275740002337359717201770404890407043309654572874396691011018997164826722250537111038260099111042494775414426785398428232002804176622751951251632124999915178283404166941848117058391252424917604168546581774648378555855746207917435482390446254238532368624882705483419641307204291074885780593327106152187660288586320754469788696152383859689498422291415664609753556478173078391042060596748108196324174036302200737611057119051090201058312915989323563409303973516915130696548620396765049234681369864912764030126109553463077640321580665684991169391300368902017755685016786647152230691136017161278340361885497242707418641926764892113442988476960947794002035767929735740741762453318698799969510112361795355779150222467526638112660701162989474667264867047604741946964818279448801529916947843886541196850681212267874168068471197489491848340689662813084115022622421483460466091353235985655932181340439457965182012069265953751867935720280211979573389975495512617658196847544339049821394011192856250612101295994964221441670681893942998314002710928956222473378278028275238886231483660149480951731298929175767690677688617423736840744445913227941559144849285030269543683243385992280513745480148639033537270087511062443971179687081210934146059854654936154255084113765012876213068173153879400865759526081742283032860917210364019061844812806036607569936964887694352999735440049076673999262885290708609101853525189784488329878421786117105695742210765160967730528093221546431763467103345763311111247920343201131458252709175873743993469300295439664727708878197880603032005902289411262314688295111708764723623613665393015999509395670697921926003498998812031062550147035063316563461288782924219519945252285849965645419730355021448635325750513117554647375602864197035953032567476412835693573171358683564092047132926461331381136012673034615126861938963175902323846814682974355387897382486620893206484851195077986915016060674159270960789118585752646780634084614380620041510700291133209239809939585982900245612526434520352775899449736185163925409223691885028235253572404540543191021114599397134992218406394859071443346364760227587530612610286326587502750252860796267372109548145557097783933931749023139318733376470025480956876559602967683712607336881458096347537037621947556014851045322327711386245749235127570309631412151184631106669146412906202048480005778360235359853581748375171527125205485162360307608234179684120835800988602291973276386982084154774806243294972405688177218154059208287452684879099603622353217007533072408028891199914331688674219267944282636528818685818895268136722202170330164159682239766946963343854111272636724025101328536485080650212391114819962186424512839141260169971679506065828143767314999973862187838886103782979409228852385767202018447223033558795802289464030649480655176779384494426393233619680872729137019893060259672241209666474152959965857882582098973028288256700593183238149790994608983194729626322936326421358836908898945406120247225396189287228571646896879909949279940179689448320564327458291589865232942922045012280554514848103178145224558337772527081350760670921992822208976356416070664247005712007969791016231268101889412942938685225956959422302885638917240411168235151120353285268457567070374580147886198637970787878950758262637362015491143021849740461049933366892658646942084814527873772981067319975402156822181208213482851507713849437820283249332377749834414323347702709149721665912956179475748438625298754885040493114766320020793390630459090329424776872031677918905182970291596997119343202377836264180372941513481759669723217470686768921095145753506463210817049952378183029320898840219683911289281437085765582390311217167291432929047291910437564131552328770651689970808794307069662508038847506558639745647902381585312033481912743527203237767719933346098186010485753740473246761648952768139291016036698891147560562255645341727892322867643739111681620062546983857050228087234184130716019804512298880694686872250468059080994121503166119359887000244141631310500030480046128397900424057477558344077537235492185907958390425544883662898586813797487222299738931722089165683578701912076687864745499057345844581868462932777364431559476480089918613467593626780946754306270231430950821343025808839275423798946367532334824787511982634486578656651483811935322100880955567896563036830734638186950597964503870574411434745606650939317720996217968587347830520644952874390007315308660048270660831817002608358452009073778806339728996915362057590600779408065172589140918653587153925556081970328261354977098609714734527455443728565855343066938323439648697496975176840972884389717952419756942419045298295261403522748305353861939138787389461833023027107549004882832427387702873308246503470813449323886750736027771501800347467213513151715844303433153860076561864791396056656236230835828302771082848746476224655046727982965718237233409150763737891473612921343061665757904819464876107927602438245480026673681447948314072506006506472581886601493509196948532461373127561195313126676449565794624991754197603209636198181720032414482470079261918191358178720727573104444813936247261769927897599209463684430596921555887329370017506543417365351941009674674712564440866655791283223125194005298236306174876571080485737958927363074948142382845855451973159243568213933730664233030413700589127441718044679630173083557197043872735770670631404500694083376027752021992758361587464564789317589405382945408047386093630927957949352974544046001112572704204669458846096429920093989978691566887625401451469021772239463513571566348255686612214237566723850892680878673645216257419074981252463993239793957446376390151080096307827996938374255557821387927741028614557484659399555638623347860137176297870176551455564879643326071980646182321451057174306099370274867694957610876087544391304666165813853847188325032922384742158269570205610940468308348345731815075351363131251959333803453328209071000539091038445969537068973011147630250792976857497256005594294100473572028073655021018911331118238130435814283475973743211929936707217257365563722448195949696287266125776653193853723723234754587414080619206235847214534323765019384935242427576160138087905232481970215509520262106273803840514926869457186759830958787559713827018250484780793321724164869129483756442681736971608669068809610451354627490153409427232433211282165368855902995844391642979639856846501991986502049756680834412378740645440853838620581918431488603668018718533864885116627003249802514885664852621565247188251491805823234054064362976223330923421552004880577911840123942788718411064579364535194817533636406167301511740221348243890081023212503555430413699292974222373354673837448890545985083039107334891705467804356195855198414456289431979416609917161187997900698063969962013501086947662185089455318111122576050072831747849659960426231087459886217639554564655832187735504782093872647440630244319005528572218069848211484283251046493646513868866695134131614591049922726232288501558646748589755280949060670515651859052824622228493614234415721403844232038061681979739068299661181620751214301359247988758905594754503261226649504385444732214127684595420203866771547256602564222309452287430916921955039851197316394481854803342689079193874037185759279943933361418677859257476589738551885771268072326936080557962855082234397089479034037733606559646923635433906257970978873694820659310036816364443125087694940341755651074599274316082060250289211050688625027924470228507748935177936007433802698617050920018948680804560482261758593971366357711106636872752235261849051633002654235312140272105155078603655264259270965760947595297562835711603038795825297630233715096242888901571559162977066443034186019117740032835678197536385336681578367226159290015694348047350619225521715934194221774392066524736515180313303729418656683171571700003696016938092479172474067155199833381863721308462825813741792785528121938901865760408333458999931035194977304907626293463126135621478974486873473432289480378090217658729754552644928291019488399319557720428635293515713649048143917634729404454535866720407590989256715439876367980871448837442234589381426304953214858838750801145380643257790852507986901553888281064325901039695347408961435732140416653483139172890012393268165261211591450409727904327930728338953977380604838936224153730570107951094534313568875093052814328378070632615241985874465859129897288378250409910996681077946974732320446410962040300728260250700672971530590657808032484246494477193869219767806256195798595603131904879243627220809181751005791839719915773321227940607602824205372424855227862525232515423774861954457832273193997637543442825704933823037492802951865578072038593258337722022198332856272977282545145064037590196617616666750720623842376158323791795714648324349709173854298311795792761986625021691917143314616254907418779779545013926821189006399115294136781354318255801176239439758537648023423642037525044674699730058911389760474431152436566536993692069011113125901649312249577348840183253637058769188561174951323631991605835855476547339760569333994777098159510901634126458520935381242347905235708864498789812866073082588565323397252215191655843730816423077800892888834172471157971800639923408800337144738871307288963168854576046644376704257768264046713336723945813652261444588674815773362456818868007156263904594670857510700663706595400211804655339630666839442003361408006693651018340009261227331393263650262717638212265503749187655160878695158226794767021620654299027495071605184818432356783927222023246972132457418556472637518296287064914819221139224713553787205280658162822917791797648255269868849864353346022376409584134435387561462667807389815802442489000752037165837392515185877443193165718922425987676629292155403124123359347216643783258445144511381584326227187134540080008820538340101318903937332091422730328775725735560108427631486172369328575834906206965628345618288127705330969337319846937385336094558664922460906501489318733380608417109768599637370456767078395434755012880258560700268183872686740641148244626105726115863156390672793595487842295728086651755076891623243007964352362484655644736330714769940744966101924260937630831854990115800208008228443349652553992474380246009428826943115686005012984972162843188102530450274716333921947723233599987203633680263224364722615749162020836050173570160943664403960284373509328945925130264410008908448159416833742424304334308710103431263450052056403380100954057731454812683365758427801228977463191201394703628348601060938073361063687386888260228610494110998288802106896732649910683062798888830046924627256627995144457667712197363965239888792868199624594289986440892017195521942363209965729969743558280689849055097548817185633331615174609655329003582344279896343941449735057636268414881401341357924018518295368980128447252396984125906386998259283982661508724129550788503279205726139477327468749891812884724133292794873319413791661076250181372429658219292989462272217331651897947809186411048689731167053226614310318869628142140037012109955306181528439876925142295860551014533012832162469119280412008585812662769212494021712842504738174635663488008488375636188479403993361877367086384669442263729161345117444950189934769743405513485662695751487565765251778212689130042461471405554829729688294826522530280552088846834548212075355633051022353989477257331528619989363252596850938699711405505753295611547675658881411996588155561357479937496282072015018031056530728033669151818832309529142893146630122031403012510410019590174237243901450402664649493119632864405027745643780203476965712233960240187440268551048541978071486539764364596830369458554555668985303092231346451052109767808597356208479767218171701081549298959631953277379617885815879156238652006894722529912112678090788611571935244096553174214971272222014391216015740874637680994675843269810263779863765424906457338110258812959624343792768268108256095741617146321780611370664461135050835586318831574767773112755114799624537649716394871010758721159299031090052438305337158397853127512922967976549495146291290467909142392718457928543850857600943850871775170182507588695891032730132577980239898941909593057464064982356080216995066990348100613290534035282434391492923136870906790968977993689638077770271567503451350507637358750503248167014520062314014935093302577380131940715905797400586605206501567862949572723980709955152636178000612860635756852492755802337391684808088187673348471408729295461735932492162413423003997070034769177057201954707139808353470038948780540961224134779149118598984288098921215588183767708526040090966469840948087488916316888354842155293102516568658580262175333072167116284100742777262514667588671036768412364559913678634917620060356589185495239745573558327937269779658038738947289711030225811044625330363042897714432467148354035012863655712186548348833848554844720796622058185443430832371939158613095683133581148288278695866645320187575343388854579432719350272421821749745232263482865273333076290154084655402185842677674417669076643391962654211125149997549485151800916949595149651814962199648634264048098386347429778392434590963223764772322406923420358466441312225709629893782555845218638510784062321182468539826685845635419573239909915666991119710415600873076143266876375593785535747851192617534237106831496537999937743257147546917657061204757367006790542724527314471811263282474777275610626363488991794312789699444827968662546975452421240050859497071938523988415933881700465242247376824050897001073466537642047548920098739269254532642747802514748008849599385558833652233683576869160159718802996903535864695901659660512960027800620669491195198277557050083029131857714066692616870127020863732201882532688602684865544989122258910963965767145641182454180541258866963856639609452225046688291831923482148414679968099863277230198247650361813591104544831836332860376529986521115613398966773379254755780515500955111433814181595093329810559786423475793264681431178698788846793107919551392921408436215426619347123560158881770853662618535708609922718856036005881738174310867850004142857040294058505775948020527672183628485218700480385155778121022763369693181865073521905392688346965271857715945004996033205092648918908437264845211138784593885314809444186767999137770955185547333691319258625662381632795604488932305785249953961413985938726740951472116625389531598112478502749304606549273135803536351393763796129948752626370261737366374818533391232881429432439951997838895129893660681839029953836035251547737025498104079505818847143829676481700651571215324015301696414252357397587684666816003174469650165063776602561416599025629799020038085137778967972645074722317079287446886897152764518155460026552332365079633547336289444929171357071681030747468455329324738011040797968594769204516996663518068278989817418476720181007632636893427269629552306258917416367201686894398418536591118480796180277636991508687766311576833918605760862199531421778956486051299882905491072548054156285741625884958191540419441677049031886024303061581378582520986065159637649318034395570831996079396678382729289191250351161362426672946995865665384968026871697637939598061591799612321774722998991047785996377489470532031975078126157451578565291393281638521579309046052657452520935665414173547115877320872680286438517654324957023140580254814394680415913817827391006741710071396563951315444512615775035178847850810806314069755989172693241217540461724744784389753901448512218311825451903766326143668704492505080529959515479584877991255500092660977162644530060497676420510898960975522978944183239203761855027760473136385662462771794246235569331196509483552315744628886302508108770480646948284041311629856176531460361336650667304540716847467224577654838100953901637409261991718159966963955903727081800808406779318350224703724512189878897619389758160653848709831313317981471007550010449476904893649884314963775797695067524918144269575216341855425568225278036964043774319127230167333566719336376712660270907337227000808846892111987460314680406015055706122633155149785170572034364845547124319078927580077625718122923398524612425652498448044709233581328302060656839661414678954342965311656743003506361610109027493729678123075132902082006547813669384791746476279500187773202854758756185646113072676150568835324361369260734538521719500731063893398176267628750903819468265150540367186006376687534458230096007186217637309731761532641558449600845368055291143517396351415170536493229305095258895132601672541793089535297700605916148076249074479680998460184775281627134312313520670420720113552469620331743220928742475713416627595528809483500739330037722568143976389060920533980966569466580194464124956627020204445690130099652067625445894524516887613104997751418731529096764887703091360680120331925422874502276383862505177063717055787117950060949470747204853795346034430834652902318065286659868038166091079533772056208903116653000092859482209093443257655147276368726154602965972001069115529415465232697560420105545642797600064519707803209679847722474281452932531406716793623765018816344982593205192133789544937043266244967148702482567391428723283097787211376435450406774250528792772520527052918048737032568117396395978714965860778701205758316985162487540676170119569559859234874490678663821681765676072104918563203011273649096223398049034798268862352705277045795549580714335858198092964651468682826936113887298445541043114441270435077567138266693324212081408147974961825244518142565829712938226807307570954126227058764294040949370298121328041338015987039510829745201269560754381794829882052891798819140247991133081754991086431586318438494023020450497987857978179321460386992533106107808112942314702267821346100542695227918044081710733743573085251349974540812002884727480260061008163733139681276299132185095173752290936222039802223747218424462572401618830936016564714667486545120536187207756040085326638703833176769411151953547753480863652561778733053052244456752068140603329113487994297627143732472614344024147427564372740481433235363858328580858877743177213216181648239718581686464554878034227852802500567313975540326515892009145116460589236636460505774165300608533037934109584238126402576512676513372044606638318188226101835853657812713192676842436680486703511261932862876351576470607151596152524432334446433598062165200578580646623943210793950522710029622256686429890129093610451837145541455537312311847191293787826624337055588442033124815881939707945113228267698446657307618774433489459965413648708518319080723688060000100613871042559634909532860682236457080868396679853907077282175603187361811477671468350647706430265291347151008234509718486141058948712286076487933813753750060729778846859769411424984241414655971991128404702942269065053668961925480159085661334539711948598623285094738465733239147991616565053803422676543007136378540804205334933204707436966487742074696008947603108594815606090306253590291706779989869874445084270564416372598684745432478402758384473293521566155255829662518865597498938067205519184730936768332235984810728893957032158625063225705991445743044241090130509249579521873679950392648010272877441717764707103972220795495802974548418995871110715205723511907919755026039706740209443194539765896783456501400917652481282916246867353856262101349610216234539626268061325619282531501377625886364398970993235586984938951851857472122367403400491785331957337837714241430688741978773959710285767647939642666627473293442928721032618431031484880099332836040873090030858924358088278870203578744808649433443140405099455195337250040178472778835286414849858452673556541164076800610879487661143970102294873150748753524779142606399425091097970357327066398617709938436304913869787085560590743460324279453215327465278557003216449567515577881888471003207135498663571286430476405815321733723461378736112219060679391495218612612799778393932999475281537281101331139655152259226852906440438024614206577924683088938869921892289906856873493028305170094051701850750794722716436329710121165363194793072109098637332487821853828879493377482983313926940603796250935787918784551305765947935708583025182948616828187269750212875398413727996526329768288693431302630546221975162757502138753884995905223027106564407247698063768997214027649424139278342717653674940142182828621761894634594394685024997939012848504298190608282510404819532202005241803645460887216164337697497102362433613377721550146431540989660904860270371624679451357101761114593702735819447955421366150232136563471014434462532159514144679429102891157861771957288553763217911166551491465139226759991024191808375155331537393634159763615569384583033065688777700617662467681877275459905458888944132237633257675025638366499212297646337827095849624351232332262066559747513570375233964138567743194481267404378987346492293971105595908372774218247329208616034262438226479516819356125905627794050843752922580737209409298993821574955101671360727077751815829203464858108372112511445723847705291003028399891239371959413846650820172645316284698750863743967851201583664743552818188200439285338705597428975735694995940026316908572997395038748449534502854497098327536740704945196720956885230170103083165466772005733406896904938093724351328240988652259254868948594075006328961656343424767773615742323042318833495267765337400665447565741047920663047618284977903726515454771275744945521824803504196259073171284025009431982367168629605891448769385540727881614173280017448042713208274659126414383958814191141425315531697087332041994302205690450895350006057886870417738151961444828129608329008330341160794036575493407290360276738260221528949444813887476476211295545917651375107067318620774229503625514734792207529044464267048743360652913062228611163200176303333006301953872426518458628784322627979763602651496649755703309472433555112162252272567461372754891171039214395024450042368234178257853741718572808266484139153419185544034329039903808992435613239044162951043785594262046069607417056118995353991872538537242332606059749131926948623053382129805121901347569148756193365443282213805016876385262273935908479482042967444615019490779488264409806696618899424656424458104732299181397991148592853148477879800566819070059843995776989667110994367463614917742176369567063031543051438830338445395025410472735503833224742264879547172660752142577163341040057128311934005862157882929883312958464904255555805297722662715072306209985003184346394218930630428879134789730921875350492237818539817530957027958597130410119965505532994781495240913686478771984474088766833263955436278771647315211026571127025375640859695190910801953696072526475166818479949018022914035278706812019302362207151165825806374012214993653227332019483731419764568313601041689080239953326891416317616226604379723779923049003433000874522906590464487012519981842196569645269425981300158490089112077691427406362258747665801147672734740488916256620090762790903593744339213423843440984436075189439576687965600781314642969071630097505503648823723977833656969671866917712145728778737404817503847028074411444102958141619061829173651758594319014082305822188379497552057069234618271957363651456951708749707007555392130794456671800677104486206065087798278808776078975609896947618076287791357465732602901522346251881021397479484240201292452864825769862857502306859956991834447319499985082219423824687583516030945949606329283022800699223528808748051903532365024297383370499814300515627957407378770610079455478486187883876327683427987759370830556400761742090559900275775950276356333703093373306995547376521454681492933780716687480998890963844202317049589422498358933077921145842726681586002381016341290502320964499318117469402509863521518973456098413483254099795475215267367555650595192986528973752360665729599119482540547181730093780864399521732790415387106037856368189786890090343117272805448798999540940203490389028203854490179685945462389165152608596877894805123544212703496319644306564570764105317411387791461183705659851933440070537492903358785417081535302179891189224918091704924822721389223178173980290786519290384156153281871308299821480342241181874881098835395150816311010658376130636244666222878130341659202481188145510918629582355759638777889583018481324475848837372698329478525759171728006961095873637849035155590364369365821424623297879770547070478632633750745772397815012491978495361163846179796311047777045773483176605920604218643724903440074107374075452725498514430438491370499801358645975424418527533152183498875072091519792236215627922234687748452497322227626035708837491428065798762254939616307981354964968570930418647949422343549169293295641257053327505083090452143030049444515661785603881669835157211085710947233391117109024271177097066589689655099685735524538423885238323444102386792651469580180388381672950066157980276846030060166540139478248937917083619969054684482746950684718765965674053527362541413773908524438613939342364369179784340997551173442510418348689574714316420100939363150262577084967086317122305430949899228392307763829658151362238461667831261225411927187433930959460662311503088124081221997465420963854613821780308010033878514051887227660207231531751656216934044411756581893291614838167375767630227822868774505658197141969968186243525984877096522025371171591750404154713370128135988396679637441261229920318741743891705246304412030301354914576045793127275893700336168243890495724622612764474066905265885839004763791414188661609052325262561080903938350816965652133046697968796068836620065156024944456611316446484419991069369409155585446858805862943224872037815633832259997751028691026927125734229099313943146972255197990341695871942506868372595281237998450598325446052229442593891622775012094362982280322315182512810938960870269408421885835900366073920009870246824637321141595953976706779805912733244533030082790619796931655957264874329290660833188529771338419997105727066574442573981739558388790986071439024215206333399095184734272884027991359227607132264864623855867851664410430646158084543684636621271771737490489981540397922125688014139194874685528706878134537327762090927835121424427285045153507924133990889180637847481406717260951338781068408705984166441877004293354146578637878526286363915225796779594536470537442614313542320586743588719619287079643088503438658323106875930810613961131290490069716140701283142643825746495903495489248639796240984554659110950709519630213091284363750662087273173412143262625514551072946047236091154193485362795352044503944487015352587557633038157497192699386872383370771006938908445522991598961261794229488011484705679167322772830530298298028901193057764720774828018582840111269275672484937916758301895978786712849310614567917631167392458961089268338622868537727374207657003281435882371057874598577600728855568011706744835051928743178818249058309219423626021575259090371575777789180639483765549001680696856432482233499882220217616644625190748156936467574267509097041215464148823530067130815171388148298063728788149375170197522537511475436661278707403286804663574136496158078432431675911575355473840543233321138550899542877897411176826112204098039768558945920864384370879653316132967513551945618430975655887927691189419441279188103713041167002170355156341379923351867283195735907977342276828863340791041067524481922466385867891501109956414882963080497480978622706904399209896639148606206167979930770612633255479583209334102512933736360090512067323972021956745264811021815809215972777010514404345169311825512374739294059645950576189711726915222574812962860514529703641062271777932192537597711868227829989140920021121383221273891588750491664514657074307267403493764028120583318864625675470385444540032738575288345518775720485443067568188535997332081098712762042951841416566042888976639562892804890500090746774269467708676448002222259421061392110705862859394316385329990758433786552332665485310992436763941987822243534187178243051725297603786143022673262379556304374504080378532049904065865506680046127896780395089347039169968296480771678899003687519080364161818121387435183962026679688220542280991581589991206084838002300169986228771281369865935518477554871841060417990031519963769135686570189561356309371816587549427395945845710308141026677126016199684644157660352049128853212912444398876667816737322046912543035534061269243358269023648394955410263964682399255470198750797450384062069620831559664296997047272730872857990707966711922358730482496808067015831876674466757822466212093915671005156180816257620581431411677035752417504502182984325921153529610547416096219567622894111197197686303184249798162476475840229345585825717637064382500351719260831524417777675676139958253964643536395435286976484638630020891206897653977171875018913669626800750581065030242813322303136409230520735244327351837222233678259237526092073467732682785375397384898737011163358163887047023399228170403889488848740461084455262018863879670147699021394920788929966058187842729784531953006163508255920090188997281676785014900055076519844748480843801766893788820739922680989284212908836938707868440483009270344460428731281503130824514857435986284181942505487143902932512036312586551759771250382383112337293599866895049199058896579416143433371985264547766390626902296597258080243930033538366918903621087398278745217198845671560084628924143687361569825993190088167994186587347168468426071462908113604035642543232729074989435785527840359577106940800300743591680771377053863109051642709775721013120020209429518818339838645235837132480024023107310231632365181600945884320256140427810178707016879445975305138777175245371841349274577786670672214317901343417404089361284337231306834887669586520969315262492499176195148927102860104454503699299779206939923441775657378596843089085989129959057115589756837514748017780648544102143755801135385390254981130354935761539201786186473486697117968180949458525692285573243446005951756186897051015437238053455375676706947033941402469047430595530354034210001363457792389785914944409713410221085144564154237468844288751798426870766232072310881840216509166805213397951905357859740252712184915458885230907918930668108276944601827173849355469669247101883692305145925549907565199941237368915033505118159816228804682830684503023850543947917767496823227311014101511402423585542340548739586985437861914412150378110964772504745314493042792438539608802959590821115824708358821692961157771942074995631805396195495674604211816399862651145619416207022284974428911019266626990101087962023003385154712447887107129038592907016489592937101267731644685158187498290307715976551999347651289920162794159985171592588684671188575052285583131846363303777570761608054306225554359091571238171244771150721748368982268019953407744205091419388780605453298408541835914953268670808701496366441412265477137160734795330336085516054513670346990970285588884732830505629110160174505797141337712653443107046332561306058653132867520763129293890984602068999013013495558543327455722247213907247439338144361265324995877554860732711711680586443704288229789638866192402948990177184099751557250663118570052474372300894900749193250216410350626458421106857330112826128256260456128666570999597006971828226597910478890799531054684383138456384390987782513473160238895500582898219913333218711778524130110590504943861219053520794141053615642833002586129656867368547946673667301157601403511696318483648880561288319199237275938086747561264747844903868073983811767169185876484929007629954369074279106831771627085507615303701186766596186064332709690783889156660269042704952468488878440654875654574531040612745751882091280175473151096401119368472147076375143320200590400215319216096989445523104348069091316726363906951405137400618489117450086331659109583607781260985341679794153688625125702402688118401261305972603717067290475214867719127069998405567028333480068190013560103474711976101315347527540757699876552088361367454413853328755684894117727224693924610719450021953389257719354352717939857444094286835799945124876368162461020642388204506009922522563990502552306625089145873561359076799774136364442941882842155426502454454286138406819221468236191582673428498571643446108680336904767521854202865578525840939923324518088665827937109912500185769771964503072720518551421113610892965824070478853951104897809491630921502080732103813414545061566617849368426253237042210772488383353494870882667642175961033708085670389464539666745671696682045838007325162114924843426595660802584281630793528404473734784248124520875842565310012376881886491451441732887239145449547636129231908950100015392142320830376660051107219850048764686031884914219465795175572989146257416174175307357663266308730080656049705120097132502708723556643947297379428280213061488832948912124536435657962153692357034114775631661192689510215688790693913056931142570456951489357195753057056284843887835626356960696489791440216472169981665360763322303079109347825607534178442088949839726142721481593391234267019788102693197836050385110369387225274211350319264359062507053407762941021408396577559453500255850127426741583112271045343776486905820358801473893307891046632124932093384495172311175234206431402762835306595564446471949023026692711668014352280090587106174332857930523168347610472858392745233490614394229229819850946724865402642400613820000860776251879475016936701737470757584800971297388030659322700781124182183344829002890148840277170572310892000808651347937145383282036456817445526583810379001985591882908628508232894714303184200261257181886264253321863636892044970555269351726816639747882877113456819766957198093080119405412798565540639948445971650720533560446471017593652305849143674221138572409494224773675753001021799277700045546755802142651970167931650627697553184874033234815428617680888445445755889823036005739160933060918437996691937959870118936400077933897259335730732016506271531133373269623729275926469193526192151248152042670803450057953080535122175560320265409433463501336803141241436413315979272385301655590103614733881572729490032495117789955074131450081583617473333472626704055898053503473065115035552567430258255603050231821130989725588567233874251065830065907820134575228099956135842084218184867692820071463931076501661131289200693611643106311855142511101322069143845657426853118586708799843564831559625021524906547823114726351777706597917515796481070007297132161200234075617670857835865940876876726353360271059487937451289146811561217936562949343329754700906135735699857212178661255885883824267968311781816887569190561607374710660032283467334736279046727674759301262146492517021542463558054832907664241675350550943312331300735370600986269434845841816922156600138881760708159649063082007411141965761011988191867927676360073501924938640066904118649040986513474989759204053631224323588802209860984766550052803074517498996722370205641080827003471893531663412168329063686709002655040797503437125583554625028714156541012478937178084292557656277989498128839587673408777606288181819117219291627613208181026912132424313109092844973862281103962218534524107887653268186256479792034298624909043077085795945765639196437164698425609339564073978411954397250076375182349566112396111770243779584484980796767695520329626173507517790459866510800519472985011817450155744708802985049030722914357113107182695806763247730474202615498608166161434486806558268192336781401479885819453951557457537995788274678373112724328308119807487760925250995372798687184739610627403701999932194439972249691179616845337926094852347184617741235784692120209264892045511451620045565886334462701251759606880272543704924237826234197505297647112499111396434388636182264845161210707693166629300842597590184479863249298590946719947162798052557363497386237305574070301218076513794677211603837906921945415999063809533789061770633074412266817339197481949580408991560982285614301389092177883098876718700101924185992897792185366873741580535066126362972964215765564221748577965287826834754175431612254428026845875907916895464867852360539201466853681726675226969165380950651322071162072995650084607400538183457490716479416295450706046394543795989328339071384277692626553283274677375110450542303532765399294919496376301244765120979451048840501512823275523098817167430657958106859150082375065147340236439522055255589307501824531063250445520148572507379055550659720856600431676358758189075521419330426158116818130902282029699695758766070756580401738644698770546802906036734634458270172984601779020819701716438964561019826276792001315610236012103847789548425165785205031413633380809073404572349437763957148936966881004383816803239622998563601774353846798722855020148914698881113890494133132277796923093361730997785566308497399016138869558528518629528548523268449502454627488655510345612765644118914610725540450619122044698047202293720322496532197007653931808369679585358983471501026795838072389627812164346692658868475359460640060443429828881244791901652967584467223870911996561920967850144254715679815429578145370004710686886466430250884887104476794384127304287434437495331083224295261579904953288333221072088982140949358320911897053085479435597603997130231641189597178796552310701750134402182248086447682323657745713619245973696462351534504241553484672752842591511362545325501983457939055585356161712580060159202604796853844903903942824777984067705419230685562035503897422517616056336296924701018551605029161386179622726460797632209839584856885256053939252914003494406404074708814634584436646842779799625289219815083714608038143529941042031652438014127104621981846148496335276119574786048389788079553943007301033005736238257198652197679846688019964663552487072440448279228174548041105162429259971832686166676058439849199151083223252127124781790518807491172600118620148156593655500131437844243656474429444570354412405969235322930096051637737932651210516123104302952783761475522080326161088451477645673942989249844569204582833722756898677701205519337330474000500417862151269785972025552787052563079391241366021963934713643532288246916091417238561550760624201077568823383392650479564788318763847200266888898982205916973475878128190188995548891946425100794650369409638633574993136743762961122032750552170987765306090068765647978405421164795300293792773562880726756079969872015037107749123456481775169902761549726096746087505903638874880432517768432691060171941660622450816701462525576105458690773843467659230478609984186511065843978176931717987448105813084101314579503063965902334080934049939508016194120981192444692412346506449794408292732916458777529505864366117669366848108175014647074695790796290812966341695361659511834126952545250409646105616487931677218971938152826394897028897894037776733710327374798317759921756646786702993330567200977818181267653465391751814361536923822084216362428129720222445144287885467538313770169573223918688248394531160275526265559884906913799866714615566668596242703528130847680302586795382773532494867425816747342873016958734325472840861822155795307176832659024726109091720745389042644415544010764138373125779509148977532487085230378326252177267201870910440514780478589278784133000201971396523287770450963790296187540397699413347859306409895296806575693541039786295704525054164753234822275547406159596193202340767277605170429944137608231966490676205273632910976619122348465637148551965937999417155156874834466972950895065140966107257250446588191806515644400857223147568764537472463662493977541020250623572497157992717432135505654933457028851663195390310422137008347231830033882052704414958785499584834131128082637728321197446793516606332368002385869262213371164083823176896005080787918562495653536793354255119915898827607826169543426543047027792902365964823749897074848692958684554073251016962102456403921152889847755542305877589919083370999087477899731808587530169065308678983233924827948804422002190526428350701611852707205965475596302901664566203674749926887786249531583804164404827597666771201579664443785827788186096293887756015535059136601646624269825318515821728636610861581348145194789248201094924763206660578031662731344816151224632052729440049017653829931717336991431790391752418662211479790257972035872394952092003358534223051637172828127283753887302247507479023682274933804057331976691304386458164456139068299886639491744971442931192979353765191066389707699030824022368434678117420804505656301062543604420272306740295145622187739969158280370923791954928489962329042787107736060553432758708465422145282170063545564024189966854250461918340276402235449797666211465315602997519565508816031622674875929992125593694431814016706075447639675581862506339081599620667985859777244729390712695928558942807655907311300048864585842019349814160450466420435586979079559892215025499766681612655819115087024806694373999920658980984046689013307409592155461812349623476788741608473901041742652136144703427869998728277840420845451294716101066458531835529172916626280993215434325979435521139178434453780633636537533932503235586296617720698027628215433840552743601293001656299080825725893902955505939771617171481670161688033102943338989938319670135879228290928927170337155352109142042414398172252396198662271792829167407910728284801459118780417895468162349513784630164503924920720596163673830602738297516377284670335980252500932828845121805529770488725778553585885042375060901467133154518089453574970228122336228478333067754007300697014054513547754337669601811094331721285440718625957598956931176728613576534152476476601393770812721266236379749896016810084275784519647560618308239555160605298053457351772868536958274709952241006443126947895408235251372979888803572477719663038072851776737647576072070617697657054553918079867192450497060798171868256969529896635930803661966794582829239751185703363876040049230650219399216193034294754358211573268600212281693182695369407373839560612985417300012493856707444916768093687787558359333833300995980258283294860398607624356297791400818757936753372411256358153076022995590803961919642745628364038488638850560501084895713674073633534151314949063082018982117806186890090920260048733849186705086366122700953533279048830954549343606564505605337562450663995209755601443267051440982175855996745844182643730278090404756297236675959169638740396871609270437031955395107111514438846730745540658764045709387966241874698339690607647888983493834671941798451437737062018208405181287231863340083642201465750090703682473102977603708050351404368752258769909776667168392180669511374447691823261256145201596668030670486339772333105681844783166665519572417042032462277345710402327976163189332809734574204565415125033016414497114106008105965206284296047864073900600907857071745184302348664230754756067443424729937257685278572154120584251266427293505002834171883250318955723789410518114708752815211810370188261691138644740215532605961336821108189790735090629472934245920561893128787412473600615168240529766497137703870896878843278160268605051009934620025762072716590203401910586794504983578177949117800135781717435753586512944302013397201877158487826927697458371809937097559238950344622862146245557151914009485942519717067121617934285556610146757231812565892177485796636560900486231375884937219474260265934964196362647271687782971492391074265795273568697622401094171334863959068312749111670940968143693770905484222590308530730970304716830842888308354927801770445069327662271015244800730813373903766676459832457780971971879055573878517766644955441303931441844931087120672205862409969154071155211098743249435953679233063887969910130733154223188479049210421037580620344653503274400971622310095572270093834043801186310531027657525154964613655423247155343787963883083872927883146728596508798309544021508672185281308086139664631315127642352194591070159237425872757586941806308248442671108474606079383046439210056716206912391052886879481437939160416850340036747971235677777050324266288557369582034292881587824387082917299337432704007004501036351496838697839146866535560670359324242521892522652221838133126864927073230475735296070627353611485357733583505081974771230718937876634035022557015612322016179612205884225758336821725650155232604097899934952813282785305512537076803831516505317300237337013989932413745251235322704405553437079991989980712800223378302412824911895319095579041460614332325979812693311515059360697211555904955738060434169140774359055903788604447832051764759263619275817049566174497464615916292465427851944167352271972470391447065967993800740412133865311077544261996723676995648005253277626602423836365599327003811272050722279947862674067363169050764260607494784170714138497255625734485061325266618649865100841783917751082251609559223928476596790593643358658504687554750081755061583952870957080330810315374338713670850063607315034000548851043327619649054576691878750170807565803232894845838871228118040789750875208270147116635835871119979029962427128425697358405065133782676669766247452920711696585867965797572932075266492554569690463513762405997934246165295928400804637046871774281700457023561991741437327934659727692534088916191610299797591356081544965166172929065405003392803051358086115622273806414341634828682932314985323756351758678290436510147836126714894389372176752508103866387631742793614653457869871764199702207110131405204066247199601097253720129936867595477753750569577488672718909898226671231978419121337472496433286580820866789490509461026564355917786850500578852837957619569087638609234565047687505950367974944545405930171422623783460113811575040404500268650413855576162721050430793403292198817281129743027228546448161234150020670980303042815517441220713328764644018219898657262051538782924250487966855145245898968169454530312130593907062822413586564855026679552538210974139984703624362026263020790503573252932402880838352549198441326269028485563345797819065517223525301646184621896295637002588427694185002606937505711045144898227709853848419886715986730394163988900653716944056334181305299700183492814787777312463190777976628733646281121452459959371669785877217780394163148775645583084286611885140659247784060631238393105267622870562095007054497956460486753647472251248295529167966232104242937180630096540784200193979328727335557806701269792720560249364459538993004061929326800917623384276439915398799234345244887754106768966138061799911894253170270950335894012394451614515585151764643799025858854380427686083969927858196770391777780316495874705569910743123445014484916206678240087967668546371490607799563550286821471818613440320711103205784899096105034875729432255207867652083445339572140903743190260294589882221632685757742039820759690236521753795339350660958766301016243133411060460514088790053376586810439804241841530087411230379967791896273237726367490011718754623516998890437176765337554857545386883367439972153388574650482778993590558840280886722587024994425319764776266964357154472323890501073587322597959181268561933605426960390102755270116044895786300966092634125699468170936564926077654326811401757779210901877681180672690620961708488206435819729444319214152160998075294905356890416084481847370740494289207493503103282862677260712268038323171570386228720779909754632531526653142980973654749210718240645914407294167824691868819779046096441866220714415227769667851857334439045736371939256185801908086470376875137222420979852098307334917864685805095093515401615354178828211015175815222542780142535782421689093899644506468401339102523327124852543391520373138929996490560028918080265379803375736633005805317368222999732096448188495298732207350981094713887207632884009627875816733791396850631730471127193500256254240701087633466054062905461071050670807569694108006798654210297834343685876375301083342590694250694878439478371385374525585485885418500654020827907689767385940057273539360880346829643332336678334374546284509384376086480781410233656424807589017072627856610599211894414928819932531482952047719591490369635587139530134243999328840904965961916628515790806423800414221486958676881490640502860687329048905472472750614568404452084280030439850812003174763455203283502870286729104231709812794358592200163800062504779427776552504181125255400782426744295394722244538480636578837939640250311114681541092911818781986000623441344622796155872933107897899285946611413710038723243493170059610125749695980875451478891453455254585126450925943239313313564987411117811961639694713561190965948721564692523656334589160520988094140529193225717947540783662692277438850104864770989821488038842237404711875626552184215464573801077215952670833249798107414281079649073815340365123273602519385422635882691746372302119622296677399868754368295404547929211399274572834495010946908128686839033065413386508983893104293433458821202871800195191024548093001820126046318906784602672640170310228611544697994671301578959205765502521500486343666648258078387616085002840393614141850095528965010768196984737080987717572098064453576235749759130987807076301919839646837815795388492771049938675211495602491035319030901412959848758300089855283325840807439566097704488155637259000069581006861392333279054260185018206772658837140617782455192305703003258700101583181999265430015299771409951489268946737659409781591390798156524610598981323201965851100690456377075491537992697990404653113373266802968218941549370505889022010426351676515429543788760547081401244819470024359391369289964640044865800558930672999813244808415817930616006063547905253143761374232725713377897141398145181927735140879144154614373058209763530025330016764980721056313170137006420260508418211669858423934472994115555955094467097455658019017822202481352578819415694768875685826200331986366337750431600597273131926379426860761298912432956429436190378692737928099805442780373168687340487476317879690929227952716711302264303758883048676807228668922059237292282594556384028000145909263143478453123388867095698623429286626350691135089592527982318128196525987929450089990670330166230895833999037593894848480928457620659439238319742376311052854675353333352209130591959968076065729342879301667537432592328337011558990004374464564526671480185940434918632795657301930780796264646405929842596784938268514243457316763565996678012746324337404860705530829398141979177277881569296139408472112342325489505522705026859646624900965882239809278822075696099669113210221331545449803578810352956142151790060147895265459140098593897310837606694739269045104572784678185435654407161653466504903278931168870988824113959772143173879769376474778036782253378738856594024577214872910169971063484828365535125112974746958465841364142193055212850979461330375894655711386252987902008830459658409250894023337358948995068353851921327592564500047887616101437448153258108962739303758761308493950269672848908399175789320229021964806719665784060626100750958181965431495381752778612636633662167329267304192834325698752919044479075482314696806803337111270347984261051087224309067621135647974606396546941743850347918614734077470245128718141386475728764769215373907257963286131118547106162832249468972853468834468328560925198608169351004457324691480064206236787848676605468353661390630314670677744468531340016134465083805694353621966922140057038927631377446159127185458024338098842167483287838508950424377212272681538214611318701763681752506615044421064276895560522260207839037861879373059148111737533797768419255077830418872490124499400970453492809006482224589968437771946400569811321397903444043746230904182577697679736798985492811778210389320591462990483375902992549285729330274028623631105057904957435384894413575100289867351711619012446797319440898120126320317282605547666244549482639024370047124979718484372242085467367030479252925586961562206115387630295560281968883319396904036050911695603513098618398701658395919007337463195374941710962544284588086910390053395043931709830327067421021309646891539551871288131908743264425188808562260686614659087270430216083229355663208941566753402828852878817231763781783934667367567228345413381055951101717556741834773637496927696993794189232757490812670149982665882198430228870128072308799097948828244955495020829338258631473529857980294502139561395545301057264899274659197709007548905650943824844760028357943700821222444203073233745992836109005478239577889104392316500937300429371182306766857021237596755927668506878496515032666547859176447645967122870606094375061765093124757535319203938652777264213503295754462006885919710976795960558067263199893417953328200077563278205605703030353628459921235591987254944549846938152594876536615720497999718453040815230108257585175641759130591945430407426390852278193645030022532693479369949298266642330609573780911508096175941465578578235951328790896389399949851457077104022645857756262892345577104699443081483936600732000979140322742253837815199277675332573932506027385693463855305339678124169134193904538768933856522518250989238879641061610500258209272951190474344640293459051535909841268347849467015064076534334074362023560591590770283640911797900604773204183348594932942951632982110491468433346785072656221995799528818698033835638474695204210093311395234436333363193266437874094370913756921570472417804226662504150860973924861354208908474610559767005413716762490987034369176208476574198898844304628253246276712346747249198318141192334023966797256084868770071633732626321689208700793175403224775369269325072350688025158438592978024884276174155565227441826338423428920346588076483979882066068961509522513397118067360549816031745557884066601915735247164303635513395725614137475589919091659998033992957915890024368418941255809061038475589123713681767555769165098055618810388892728413955400549773986347625073387319754894985374627954003106775760438033701295750617792472124347449774047504818194406201701977911434532029580884434674427208265090256128394876497397947590536918533071085175546111078753685050380331433952156391296478848769169151053999649342805450650272949457725774617052806653753746487803283215340779285696790274090870119447162402505286825031159419872443624062857302591546941914016452989099471475594958064547415659227144497070323295515702402740267806404303586251587622135225289802165556956040383036590655831840842868482660566586622192651213249956931666707743792122047364447187508177802743210510318378308704061255050100567542045580514042172506019858631152273644962010296285578534920812167416733821831203636327435974681883224703333963523627817231361772991133630915416668919932496506112300997229283204057004600791729702483462942507669477157473881102543492775373206936347640963308839588369602931436260292976973923767420809747806585613849253448124149730686608064887557499542842444273731656507214604601893649944476302164195048755701691697739305294026191323855048251958497653832368724913424525488584348135098268426280098928628516394584354692614835369306158801685007158847482239651803805507784413536197803237572866422440966919730434785369537741275054716356913480400401553349266112713585841985570503553408449592521380507998659013764289978534176164418634616543302919496245728876325513340574756125684514823253229890625407643112912897143911520226115622554594862544621162016049891853975722122626436745300738105894636952847958241481787856300708363513225524482397438004286778617609184588784778037214143548589089651586454243575213301306928359590252996185173564087075718757429999162194016157095191885754452303772517193157641788383801190656642187204831715913067097442037204060781417131857207185619085741374658820791710826636988258917806068365012047739820688541161994675395196873871443774049588042007917730535060217742218516381467393223495595423497337039228946361585903261636327393124769460988094596740087547463028850712502943867889370702260559742302727893436309653313518838034200666054061320409711876917596480961387627833136927109531750064947052429050927353426201406085626509446548261137463164993797035265011670639628391334949521719764122580657177249116175125366013049036433592078401903652834617175171682458524342755621844802439432012380316240746508959426166783063130067525052275488412896843815633738288410323762170435744000223044068246892186507499064135167772054574649778206950335494247402560111346373397809707068913113161888167497244167338352043702310348165740549340782576931707147269388360818225348435560584118142334950692070134691528954457518889140234238289981965214408857081556856985754831386598248235510780887309507555978518036431677101190927593872276311049574018012382577934492375642811689428569229185138061599893944300888466038245239308584492189331792080967473921707494495558556227355869987058961162738148863841628599493843511373811782540772975510246850200803426051892062472884626480624610608268563845318000498091636727752727396349842824578906711259219240260874178776419106150125370594464417337937954929615812445526513591482909915011722058965202141403861319636278241047348830308600256682555433004368943229916876923016005457327619410880928544861481660094349647699268624459632356157836100133193975556881807220020347067459814298603998694246111179628068295785189566547738195264391238800797091347472592291763349130068181213778720884392977194504250080907639341860213875343644244565528939091367159184584067529319691477723241158138510588699474916512540606178572423164211258088064947547572293853656286091651693805632317180080763229773211787374201096705053715472544353378905034742209895141081585205248367646835247079360449316468909242089759886138128112710407893219876689723201458157643450973846284238392989000246248924927142323464836811029316522079278428382334483638192986204178952196283702545637842095835614466161370411761405248121415351597885333137782019096597919720437582760684110384497137798545729476509688229123973613506474005376531512881922729970007580003496220410516075073307127533893597026524561624349468974768071438066398650520063125414603302599810247380980475931543531533497406500717809274424189188490722769488311838064592797707667995524824143084516305764921921334120932100506887236464287541899370302904112125528609422754344501107129615779633536492652802166988313906283394974397782381341392133078925342552252150631909237998204959766933579000290338440561808190513386375553973180096134844359611120736626742145919243292567448639948513551648168228772819297405572637810538013765185674264575227974832862841147645243518120449190373413397219207420407773208841319932965460633687012065341383908536895142112223722458653749063671658787064984532959973605363923407969535994737763210116432257579811575235539370493677279312297389092781230716013786734240316658949921541251688143221615485019696860084669699638047622676080267668589390072280248701945726466825802433264089753358587408697749738212821427316533011849633464743842961724741424868494115896121162187539200547633699341898014955442074982001367500868321191490374175193164807862955105288306802659258387523405956947515477984192587593085888134703936590034694829611745988095841901642381518171522665647530163500705385598345928614387919072448294745056520593291231734746524075628261835148454696002182003176288194941698199249613677243392578841909204018147865502865235859316200792434355903492930800785906477625351842328090534457012190614644895132774770178552402092824316998758053767604609891878058292272766446943797474735081158605168993259658405485987864150527022617399290188183817615486739503381914146048789520063374874190815261422904959111373254238395225152402268881226617438847014842090792660343710809802587838358612956617389176143997854653729169657480526414932480561266480606459428323107253204948585024898123625028839851198628185848683699591693903986174204560776990168065760948327736997264261037441863169975915880323540708998328178633300473232934065755087124687917569402189334936505762288160820088900349941622447273034850912258075522265628730205402793592310094349458836592720493554402928945791596277406913386534720375437956539432855388518643007924168560593781091859333796880395001008896070528682561762402271389353613547778870599502019511752681518706507527755158886506464465206267821100299045101104949926167309507456131096285097460437248089334483498089607887370212999669444838923221359283449973532027740701030452049640594414530853932213871919300397301822914733645196859998058581459960217257891989348667236750801780916703416472611476862386823632925023205078535335757038261204556078976000516221518911648145721337636129148133021659572090838105926486228010013420815452418343619131339392377101972951075883471789722973068108865665287057749566650269763205538570466522073054745941808466343706337532795001340393447261526322229740577864369498605511925505875104352904630433361583016497416875365949508879620502484127440758389593449042272750121642906207193841753725100407012672494756930706724312347652858901999719566389641062785007713865445353317779123177661848724914291135203917960885617069240817081994421758705226513011820339986614365341512308261463251308129952439290645668233354936217199347871545245740028032400408906811667206819879244446018833212881329896727609609794195118754545361331169277316401252300729287432991710740646453012043045423740975229830474554738109693961898451307697525202788702143570667840992394969234797197850416119669169317280272893541008051512404883916307986154422336293076348631620280105139294461570207605570153626603868397878627605492198837439190925206221052820936419023529476490892342282247958553105146359274712529603045080854893818544818398590639746669942796822057893285290147629532916712995246987511720474408187281036696984978940171158056830497970688599583513758938940089542167408309451638084292515616834370609606443561802524321082360819481193047601734900084492651333440824964447914204549047365132880569996450894997595810854819955588806611658702877997727457326071923457260971142053482504544537687171288754338935834865725232556147349051345208641115727679618888136278734309664091361314595561165488879731799198965355408439342723885487327938198480042341545097579838480075457489774728595015217056654331196754956934272622025268300361020301024534768663224607753112961153404767028669553045698526987910810997388661900086006477661083924100984534375561041873582052504664907150005656776521098619386106211211815551660158224437064622266391381028513636259112632775853287859809095404688840750695961983814042570960015941199399924218398519296176135609920498637992162660119254391265813638423410973199143284124837171932708820755710301901394090502076240168289059712625709878535572699095716110494864774388494308747385517645984503737291995582082401127284170531477640334347771108940210219044128286044151599273141136878405570658483248660982617508010397625759895668412493322221764372557016973470923490561137144258435097311397077205148572989610615429739155327022990252947976734003970904704898344404635931155009054301828548973659772934546916597979116702168832255992763363342995586145083762728679337307968558650221728781254142840770649789399118091741469538522066764046047118852203725173043572908624038457798404584354875928491052469348322464354362761918015013987757237727116680201699991948835180402501499414432231007316051825478490449378556976762837940044962504174112673391583706865269964714845164803776095042279984156082864351461047277834702320124773753113341045612398721223239312645179413190881096620343514617721791609330518331376736080239325093672850510233170647970529339603506381267064627864576097233514822612811516528141335198850973116833662841830002549716024188933539215598490790182239163472376456206736148966552959023615444612772411860984781707813943750912867335235848621338847304234183986547951507166360358941854449616645997355439200440659439591814293839134005811045355317897445747217427537722111297432901848597572954206662627704205669379670957654089010847176566689371073326697130124630254344287721905982483518516903728335265321831259790155423084721142422399223193794856466488827620598688340518465648983645610653329864426329981457860118169062225035623807293356048398371205224856628232887407591112697842287866578938691543673633035206996055076478075055267473814671076353588352218168971064477692627004522149197618998705168404384938097990976561406526540197277191803679927316783125470647309907363365820925520335169862029679786628278947769201559548969968649287679649397514601177034530400639192605769547522015906702109677096491102552903822212485897539936411111139457512821741348471781134680831335978224262742690898503126679865633190700054413265725685340421970416266871453918213220171248562003669701922129527426652265737206464911331042685927925430409847399683214852076190832420599898541406056244588349955480923510325356262899280593276303737685454255469751951734179009515254131031680299831434486869368682340792628889755292431026377865436535216998958302798799456791250895374963700769471979094740301207035686684174674078024259332527465640485288875654041100089811699515663730071112827625981779793611904182432080529579801717365255862869075916504235797607862483158574274843947264805777052190882509941915829426184075963436606671296349219950325284949427284918053863929934018492770716690571413744383583371815768558317326556530497555815751728974379801908830993772491443831066161621329660469897777834357391582406747219300452830260668959741234138470688745260684707633636158918285658328648049037848197193257785058508009510137434164832287263660365183480885286669273507394840536407572667903794964441523936820675941694930140060456250575416111449169942342784467556306838419673094593076680673472474747484536648443573619373113821999946304719588762738535707400144682913220965308195748588605990338919858681268709096352892037118903609195490370834957613607494330421139573746955585094079138087792819780719083849394516256605566276633813530396278672928274422313896697874300809065239152365768016734330891532502385635878744838731300757133964945550511227560290816522739758251797078623302728684299916659133089250951970909857649355633752888923779692594530974995345308276438101664070098652656181216077646394568272460791484319420584592980809147873745536915012678148206880596589031672473108216292502518236228147820413307356891370041310545833499152941466545792856420276842891586779031931207463291379006099662696301366189105094868518258183143657658926714861007475802593513192259444498063051500243819973646157008213859856663248938509930683202387809556775198179464938141216617014276096419084726604812415620612927968884745190975533207024330601220620145852217674922755623931573555779153959305046009243045245669088836445800691136160923160077997913703950690466857443616522323833380185395401848163663971908745253383683280805774945434190909622809062930591603433653308828866582734374494409698257993621341251049061927836702040630016286448738306247081994119671730267597969272099698022486947467044334919957665514092797143798099026754845460759890399298423976484644807574251249951348873176779479385787638244006392006931191714314225998743484844384380397822883756814420640726723281557692020740616232592746245551397482636010436013029667632449696006255156369710280069850619089167637160855965380084051410976100252385807324704593547499527200246743203548962221804555878361643640668652616881611410398943250152933848416910843000073595146939072934060864532113788694784138807837835694836050632727806815470446409738852052104939697628908707871922206748431985631394334784017058845278471685725458222444438594323142557895175873084887980044973583986847963365196766959344721227746494793435158667587653566219998890298589517356275513559199415047235239025750249319373095713233478455948327707504716535718469271003824094390023570209455356124459812182244614276343097685338951157970746691116203206969651033967072370869751968526634882062668774648209649070546371854492673895865215875857199503890215258524940293300204214533736317834869480964801458864132603088143737362425424513163617865893273636702833571976849076785863004834543347635294691305022782762751440047780521589507468384825577555019021318841054665387689591023942601796033278000483498553556345161936437181726796366009606756253945564851592142910890476807792152804627848420892759092754617957563684183716950067018719437335256513572151921918692320782788102674264960007422020219422665016252731760993639238567052753975367996888682200458655307468066981296400502272413619879774997720088797735681349384804637200233626952144333232090799466489774936757801102987775502348908145125258816522237620747501427201872111909529441774670368667691568053546173398284146508133486634276183707562930125908594019073412790279264075920037892626464674277153381175931697712626733169231097542094644257301337316459714513465230561661366791017270560042429372190147319438433674597863289019793048056408700659963630328983261602433232887316297787563696880889306422281606946338641034456277826018083213364469926276906375536523293180746654412561970453390659750097006427958731760835352522170889005866977918124031337442800466438317085133530092920073330569836116911665731204711980425147465131932401350438523606770765371427763970794641503807746563154165114743167296541638300377485992577859086614911624970406983333693344951270373544906400494167998201743438014556341238166311564728272921023421205380995214990979715567704736058770478976215310219105724617494186717681117401258938507820585448509430382291939455030036439874830781557353625681412951254831474454095547808581346591798486632511090072791121444114957899849116436742644382738609997745260601508337256023708120382184331407086853897366416479139077061505705769244587446845615178225177369602735863240100939011479714299961170728083881390005187355385618125998275348280467389244837710988483421149007641970481709805943983881136588864457661054662525658322449439067539935101528374583123784256091428956528231362751353027632692981142800049986267134478538154886399223469921045870425565076320017836947846215955410014983469721419254073792507947250184244818757025037279123929348317137106645627492213695494952825764517875024087969000263310340443454252533012185466279931277920116308599242477833889930708272600444011345564234707973765890902091282680820333291026264592305491306086955659053695837006684750910381157489510746503070988573980925773305140646965805741422981681336374596367366395455426322081003475599125087149786210866037591180025628892567276092735991023279692940327878379585981366511365035245199555764996035353358724017124367613923686474357982465101488363881598040082809368042632081979107509135245768210789354485453569801368628338990975125281237756206706583641931265906496600187792492986394614205914239941171882218370085466344757449479136535842463659361558178299352250245176843874674819853421095664441879085998052538204201491475187475493620659697831723106036121058393693978914283040005924397366337740552472491840457483094753237356519392585512799648225893591682854209810565057010539822184005305492947475681656318528287103798336934771706218858628043813818532090634489971624318870041908067122498583863232575584602603253148864537070178029500794914308302009998529509045647909790325855954870740128163127155772938264913180211927434581721932986496487043054843599060420554710497026097689414387144321016296832851172641045743407221791486097984606237376349671539573840888962776202033017866098239131534971203331295338174810763227741049222891088732101301933285894950079488574190458608580346679885365965597809629654932982229086239279036741557524266584715862732078958485689239830518812972030713514663394077278143021598790511775200968590047793690462687872950786250199692665713088070378377138803495277041803983153296718719162270144728583493772238755998602281014050378675944740572366939630973591674639938180529591933962304541659241821213456610623772304219307914836662948939485960588522563053173458881710667696339541269442489632989061170781562663736047602681032402848134419421292182738416272029337354915361118344108241010056289453120292905032591904095298595152209914872615679937184085767612956861052429437332783123213469044699696710152125781966962725613211546049173139112265472283414053163595038987143034715190114693528999474403994188839911235211297516876011055906954400421256493999071071200116109914939826775580353798587107082338219747954726301194643389085855634127769714147050793416625180138050779462638201426949809145560672344361443882452978642142564006499616896280213058125517066934629385246599755109136972078845280419765883433098507453851423857808396099552603657336039693159679885557146326578059885274042415669325657025903721529403268760669070669455282843033034927443849464613829154416979015711648280773258284094240260430312904318420718019053662029390495004571028493336289512178905038527116140377617068331797536828567832973774443287662448391955549346225607434109737748750086972458719629683121743869349428544058744376815756287876569713697970015003395129992161280317346217985314081310703795910385737751950134400064915542156197903330641308491650801397048638382086441104698301507981468286703879303188726289963404655092096297336314979318251834369876598828631221554935452187943128486249504820215807899538337457803739448156205475045852178225261894294158512774847341434447481691601041806905802834111360264676794806269638805026359456817778318576499003120010154455657035541585697388316012153938757507118728774031490603687340843284701006862965159390090914227735257696561263650069969319686515619175286552851872247802195390947952749014692431109658417525020105245907608686759829088529617828460195660940766924637216745860508798539447343525140193311805743654887340776679385105689207669907483130516423632199839176076453520675073515824513792637731912631947120586410735364286212304336912808964095395924045769445955876023156474606147331185777963885021660347319541380162678685016570934024100721455105106807014171677795518437372626261252387517295407249261718866380885641345917726972740238839309523887863111150765698589505054792884611417521429632747239363361417092740857642151004122473969838284278675100661679999356214747851032276008064757039015407626191757138004983320291771509941378935886910318521140616604711077920555647621822531102684860931902301589792376523645990815186108048989459718473017952961083616369297403049149629588596129996541669539867985158267323103395369113581351110956773292050231917281750765295523807094688008426242063599660459154726992451499336754703887826969592250957619059872469199990805702647204455111402112458918761567352854357996331838226242357263405261455352415971201396105036361701460047454414049653077559174817199136188352648799989423087990728176160529086276119068759880542892688736251231845977327136753334335053409777635471300448412760383909339931545126649167434647258832967773006351440065009165386885882778107115993486385630584645729180902547994417182946900471817589730557728204712496391496322478091666012320386817386033230821696557002274289035485624800865291523745913254047655111838435060212598561713121538861352083484872009781940849068028006140629897852071749124972587971849501713105598988222929563535366658579609075762679602033649733009064759057387913854959193140020992994617777704875986171022693465200454491332505783878892886584112487630567277939989624864339498577488758427720116611032597510270633245725015545315639314796108853275361167039456495631140811084802361945277586964190050237465787741745869531190660889722214835500126581507356714799141585019545828229377458986883304538063893700802056866738822028153287094411684411491115158130172502919239190479779483537943510974775501728480935510918850916689804182334920192234542537226201310418480784488437177625595157494454557136171364044763882276254944463754668326180935446312926053291187720835993688859396376183628360264435128375438423955133194385638823339024840247660554933809682542050302039773732650588273459446464966059843286449930518471215977110591791877098623808528630197417655217297160465629556695520698126069050759845513771169640503264553821019201593058992983526753646288217542793090376601171414306903233454131842553606039856764100190349148320827451410231339160008765767014214264048166465867949810280415561455232639635946072054494979093274413666775031617366468824976968704416329236226009666493507467266330085975621331055730436530942016703617128042446431744084825161287739555645823467832187256060631477276954185572937792815108727856086449343498141016481325443320300109380039418205884183876447151296198369587150124857341521093621948421328547902098291905042485702223250329669889457422429690084537800814787866714319679130381175524816646839575343634443705794302769646013139805300225367625940457780133092922677482238177657866307953419977023257037700003415035209904993905851445542201702823817997755915269909824579273557372133327733179246191610188765936738385334501927893612011417139204189640335334112576824429136572646938327390492068519419107633086293881868720069223214878880366479008640427616136026074032334658081597929080478907424620193441649720061232787302555954596999747649731881777054296403623941387636023770314473738478404176300324757084326871300060794274787844645649220201556590309848412448148143110809167299866279939875746396970462764500766794270474917447518911972668580237962758454306536901868101134158349478398413391541543542740835756937340604353881594163867793619757273549639369347894676447479897242693070170781509034389573126566497963308720664258054034474295409985934193851871084201421787728457118285189241706395933665978248435778729906789201023898109221520959768208598916380869191945819069717511163795324942045206965946968350041892795631754904092418717013995857238319486772968024798262007684444126923215287630268049305344227233962955887225229307957380971048748823664906251620457332243708668466565879248660432227394239901979301462112917817808663171319194010765493630264545148017539357507526272743281972001411605769650860869384533166716341827087175128472689940405128290861996571116886386135359539505019850603009082752685261048577361349020337095695665913416488799964031135013072978538309049497550347359106379442846422545105429223430704411756253574577147310020143798965986115027647689684169018354285207513015688399922148996772216023383169565985684440157661588317337673048448695684141765066400619218909771602131365521924746257620567940608983448057858544084816943716092501953717555635870356820493745684372182649881050447521508486163018698283975192521735045836318697050240382696778968127138593087689235898968863938328861973583518567299988291116560591169753861457197405071613725625962320790975986829764876319843695638534422164236348481890350874822954769258747236818277719224904896364214899601198579817585625631767327240756600831760115169183199127142182081113232925906462594391019192617292248471073244299554600338078609483867774656378327240768284116047674033920992214164315976443880157354582687329155825530212697271809896714212229288976055810565759163526599849786633395162209584999401891647018082732574871404958468912341075077394361615402726339345781931169994461344833479364246050392887714156726737888118905751742328624828962180179864912098350504143394746680240081377680330542874702722931363052053349477231213684037198306326876477407386142597307395951183068204980530352172289675743020154437475130373354301173759592988572467419570972315893139825648786155959295521631320077600338922687050790172901460363241654373771731872976986342789646106536112249055222352871432036006972247419981779988964115322183915835586525852901005535703001673855068332637489472997972176065785528314467008835638885780728268603301377641755504867451607298232829854866514641835780945035909238186969388542582694746210999061472076235266642866966312348466852599765858263226959486094424849616472300228104738675281985724395603720936695958676245382188892216883281727457967857970089895069823630103418693042204521234133047501050049895374211621702619448077028152904828798705763664621813586382893686913018828140330760634264673324767388298460344795055719465648180763341987107940787383900419639577412147867683341652469642779292543018310399710165634600559895840309353487176918088007641018081528397279976161125107348565865393372580692495042460559673446887990927279035355306620650644330868421164862928806181694500508519592013005591150882430044424492986675552536269068872852853335352436813239122271046088654874526973887785190498887281484553084622238790685027073886728237427355707195872170796487479165739486116623181023892225223135991463640124084016813706174004698645531339064848422198223294261582045707498427216452629069406004418192678061164948736122700580464450518912150058711514133493231817154517334175630793620190602601214485378295102728039040642175829782375958795341840979230548669242977649973715881825216533057708306293301701481038346541190251645966588656086418211499140582796345108804439641692108886115764889976638143814141194826209169824149881193322815505051536952840590352729724670598466426113908157594454440917854418806485894242760990027553890423176154904465821132785409421681359627423823184911122310086364773391680005781492329057380180513535084253671705508339587039629385022605921049457949434203295021854016450005761873597631342850762252714633062992395015253119315367075411659638437272290685807885005103010097118322255798413615604414515429345547590421627483488971067403431975472034473905570799756954066110626643030043248870742910101839085519054529717514101272990512247101005733136281778819578721514142582366625747923024720670279433380056268708351959994283204339398639487205652869098470942008481874555044979600232372320975966742015437640097639175690785144924587667603853358657588580339005994092382930884028215978093162248156587298444318868277194356761037577783539869653917777588498722342593120640867277716342671569723634625005211984500373001225874097518852765221049279174429820725017662450689295858090828193927755791659862692974835187509023387871868290940939347115980461519412916899922314946626505661633934831766670248949535103424141916103669533878293997041043791507197309277986393389618002262367588740593878248079799435683144306160470295384211593826413276196140791632668025702967443492947047985801362971469314603919626773988312252904545189224066662859663671551337810509255525773660182238794113294653655148468388592845636493863302862667013479819952169695616201072795589002987476744609204089306510305313570625834255590396553616487872156459205342646127042475185473139025089741190417911127683303529201203652979250071913138430910767382440065240742289653103222628071181531058946663585294551523352038783854144454130410706991538967628524103327376629674067430378687063763342273320043738314210024857094509239497464708358332566422165898261936101224551085392602362883523306290117322820885223675939772919896355625822844512243565447015362208661927583769881621418345149194320761107357235985665324010110413660678669137178409625332372176773992622430920661814337998962616407546792300973706846480489319994087685187324536461451742997209817746823788779668298053487881880472670351480785762263015732319394651870224009105910777245493575764449005561978188622612096558357888378866401766210498027470882178771186424204847834971293896449372628345376983586680857655861301518898110921875526886804476857360416791622310154865475210136960598159613091519148590941452044393272948250941837900427380903960633603796877229410921834398447436636411691933580626467067247651337290386851405901299397568818001340776375326766006120565201188147612894014719183182463041560177951877692932553780726397570660294884143796934225939288592900845798099102019735197807123559792449001416738237784162490513018979577695808506404018422716018000708658775235303942507182644177427225987602562770802247967315737620603997034241329074412777842921783284722402100572281818302194765560929692092008317370605483480276983286993043627308861205689525303332799109397433993218669856165838334559292277723342880088056667445349405597280083429524774951123525046417081807576483411662713819207626518890609320646828533488178879722646722056466255701542482891616881611850119703580008994783933123404957019098761149931157288757800836280181899683682205484856557663919223665875724759808684739410751062400263218020461370393480871006858773639250042755824202524527877450353136383329650908868084002752831554103502861534938524276500835011362086376464366888301807605143688650909553477681125054345466349778066058920162938707731625015940222742329782439151384966138399976113213527278959532715601925589490309067422979364344678015976951372760618542209946828331126073997790136558185236457743864585748898562001074338920771592536807311492072588480665903888323226276801824068299992743715916590153621693300465120924115220114543560775263533343575309656412902319289267472214858355583207104108272808596145416614185480202165600108694037029239981365736078574545610380545451255849274082707387008380005991738711006857776768130414581142390429890024237036683356781311924811247780656699949625722909774309843773569945865485505646113162960944423702586164946460129792578532522231557480532012634699113725875507576342878342007059281431645317578568087698195596834838561800729385779514143121084540979854722577017604963907432591810858449417095763281356712605982152336181512538896246443811766350351718808314778152949270102186992661471138093849648190013715804949435240760801726134275498833336345277354252599504180435433878145729773947797611023550971740832073175598470407396435686705653866111032837568832229001153840635191482310136660849495445099641612346160859280284814971800118413774342261006238536874376340768241355223863668910333683494740013452363195878450470140780187714775468730587666537795726562103935218627273738002579571795212337463563858901823244310775790568946448158923815160050279328788316298889910145748073593832366452718664762476762931275927719813906545164156827713169360676304695221626280666172792272104589103384506563889847250281069929037307564432314155852146572541505811802194639503355789439976991132910998886853892753705891852307360046566628323095776060905490674775723132964637353500235815041346522633571976892502695704820126336652323786522658432342850916609260923730149198100684799289418324729257351278690290241681981370879914434349923651055564178197007254098135481434294445140177865793325402131808549887373136213996441877938081911704198638912282006243610725118135271358421167980452901017524534424734667573674108032130998053845697987523185712227483184362022468074675544369116379866758845726737153933195717336855164917835359859827559185928890320479050635948249685624702527438585458306203794803349775109013776488828734600779533652518071966108127297900509282874845517742252275082392543099180311376987378344153080819370736514108887542126259713728785823953930809637113160898341138419826272215337839586612578252153758336067413052350059995352252744915288313058467886598296380134294352593909572486882268364897707598582589565744985004594694226877395128284472487396920514661375283635959152648820890534285609680208529987356616511938098878654530702465743489441707496892611953292395981931710197724986831076924410405749610205772090556478091702242358049263457068934945328233636086573262237160037949500844639565916530297354753863714170632606088202270014335505936469429684964724757555676555144302020477184794634280110171346249516515578749790483079650503858428995178819231325510371578057459899294496177022187002215798167119801311084376456790823321696814347209303741206747505683948311566621003824306316973412098260833092863490463684880836543655159279201159862555046276084499287560744084641472775565187175763171647715118964563582444681084533070249759657222477810613887350856064177250418475453224937079255655012546238078661622897095112140824715312393942113475012493111661997497639405892457600973177827395305462147002943514512382822018630610044922363159613887219837471166663821143602330398924822837151421811780288718172464581320633201634550528104753733092043443705707622714223146586316003973591264228823339581982416274491353102520045985150800612060190711649586082824249837983671048916928665779388425725704331731453774617241113067179679399318767953664691788328654429877495974732382920043080316120064338184170362513591400109515215848158692966801620386324005478952214824815937428591421797486386908158205822980731703775269742314271606761997578815390856128134448126281116197054838506477433771709375209788080408432443239619264006686921691847282480321320751350325562631173566940795688818744332625361686980564294837336703671786865169039952949386733616819281241586030561158431437838257824081043869403520724817688784631248812334689626039229309874939576852052862678811717838598450238799612794889202078742299338203837622992463296838826872949468988841029191150144548461775034057185718673709770277877734351410485734439702898290165067728170196232451818332750157806790082245451373564769141181233945645628993176572815646394825777458042760819121452165729788819672821532571665856329345180448657438115794813214147268972932040429987773718500577850262536039619173194513386930914387992669838620154635277032139762546731794228066544160710963044767641280071293639936006283576973880935352847804748813939911843496091729456545165496714723392661051730067614085107987230725079734321369646774803608050816779626308357063948529040724179560028343751218775247460681013602053501210118728943570907327101578525914133739705666060046024983130016137587896869165905841139457178435674877522622209781886789324813176902854912228331985303034150216146143146603193298207424061773336616781064929139871504995316462620371796905734576646072103265570167148611051652731132371594314465308589050173715008209610351755946921483340773009800091461687257327572359899472802166900353348200011886846853838493333075528068470548747504451391557811919482647356203703324842706128216092404036658023385138503025601996695766997837224231952151553543833745054708923087928200554465076485427779794304627225982561021722899347234455225224951978502584155398396609563361177482679526400026255825177630632656647703026543234957488546380005529076504611804578609675690477266444933990837239924669384683290593459328075902423959840566394455101643922295793820828553293136677151213356988734291970376105508669210480379395746903316297287744686181032258962131377734429382253300751301862764711306040136612411819828768073568725637533498937274236720008156361592426258694464400716891563392395736120697827554294164602227712924875578622841824031531403551271464793720969963285732221669987528333830363959449359280688505107204364371593275558381263852763630226917549622811629811456380513113671399866922225600613311488062488596344147797742059445325519833615128649014130763905414859743276874100573516317496684205438391987143929052792287257948134330149239365085543069027515875351793872181931165668058716958515762262002433766044384255854299084744736021804896297696986862111717730493002880171759451979136443148397226403635711677454588013249564228913603699064791153066332565729671138099194793955715721485241042187740459877715092126929441292482613505301751259202085317924999831867671181050557922257953274422081592545976195574644872125090630766163834697542542254081175713451983020692826584914411993476075022664751198272260500265756486988735787073964900277040212597812307603606056095882451053400396942646811304641522848392361674760949942856404794298655343146058053120200857484944105653804157899967444504942920490162959573759074975357515999889454670287404900497815173606947352955478860405284449898514822359319707078812840337820866051168956490207623259602202170362438807515772293798994980206229311545213865024153691643761610570024396937704120311605735998875948764887884126766008856083180692389762945269782025945481548740332498497633515408823391407948116776424851149296950651410980269194549270130358041368989463739213483394054986187489939194734059447657149320983546830503786466149849385756785195943761858318228413109560104333685036452449484435745327366292174938712384615910551484474827963245441702295953679285741843784136867955585074070750632978799340160203249028988329598523679423857973373792882704996203321776946134476568921938978578108512106202185008093738271747127813202327085555662299339057348136920605187647238280038524489543772857513406494948715186996042157212561402946368153500703941478211824510262635498538287790372374296031175720960514078568415518636597150200162991005130604043838566641921706387210308537367578654409712338969015998979557514154071646173051956654879987282067951364414109290145257432562368791121418553904046127954229956762279873092553709332326322570770639144891944685507015727243956005639092020216949103390033136465378129645817348974178056158430633002743791296341703319132240895541504489359248321208656903137657935735707919937246008954821643438636419697899276380647024885612279483885553481148410154457364639678382825145934973246351666099317066325048226438625946390507117297298097762936923310588767736013264358791870533430517180488158993974358439514666083675933981522488193327543002427053966457598127584720088052784626682018705090253480556410972134682589777170977054507397655112361674077742473407439638711572876575309158209782730744981135507700827581038092106991336691120349201712142808321996734898630319272540378813507638661104753711473174554510728296390184214712104407706868334827546761158460933345103992560182332947474867780866663035489591037482404070698955213317742950550528856041463620346580507571866783130117675959667731662450003941956949707076215035316210298537103504767044356034450997998196005705084452204398826559478392844868270109821824215211826394431348062603072606583728097475920569681741336510040062455324919271024918432223332386385760424440131822942248350852448670060067314404790544671253510331344863459602104131813495712577828094240220127805018600028032116815047823863229262197660329370455961402354702874315578900143244465334127817984534453539397585398596736519889836265407587143721751561979931451811053689566791038027505813882508415942191008474668836492304873647429858287142763354485773399100460361198042613617032404776508100807386707935096758839256345296014734615057185785296125902356753065794898288507273609056494141592084398415448975851070472203818429972077413840199712969358918139914693703359236157998313310355216484194782538803922092364017075406075234134262797774132822166270154585562813674176202379027684573529457132510361987642281891205547618431154799571528190456206810260308692789854195200184346923457525564399682090764471881224092370961283584150221262191697005419496959574408552839110019943149541174419207770705625421162415761144196350030286160286508147232282069205237349731375303237680780408024409333785826067824148340534743933642997341953138146313931643370764179884707948596373901719737163302452662585712037573465728992853973257726870233656826695625440510709294216096806558028773940070936448146276943602205451958389516660649670360211147767507682641278876449287972826285844057507551121132343644353652854135240614339391540132674741211998958419436243161044823064844348602288396643477074964198122200098044978677026801979431787716123495371734264466646784450622549953028721419522151414211026617545537311448721645864050045769855423324624967686693163363469823684693551480376251610508057151464445995231715485623493593533578807552427744701589930091249621969180592001318017615222721888494755782030368028185210734637470239382484819644617547264478102247584952397934727967343903864879449838020766826490267575086611654943117700687739550093039247423878281926733495305008229179425841190697810205903767653537476838519906943457193605117035103327540192924647053986414598680743027315973881457666645052737388437635232995719982374757218836242274409570900497442557845903199019437271549111001093001296251842610138197499612797761309114339675666535608859362225242784594503694464790061642323725857985766256113134713711517649073909874074671790846510233596683327205923406232654578254530807784403326931646032158995837522516102988777264782720124978942144851693669989688406361009088138628064522719388693459724337155060881599629983951148923214839018498122008265699617915063939269018552136525815077659010451048656068937106743305097993380289831185022335277682891084656001105521624491632006287773336835232540979505649516597140296126016950238268314227626514153638455519606471879397350097409921252523989366085565294502717123019226693518201173349789563323109661486328547658205976828473471484771454050631864488140768697793548733298331413298138902493982256958846186457304948888947431328481764506556596804672469435224832387263579115458032382934682803681393614215754140572870778732439940483750889025103709473773295700887346894170651631367914199215495524985005562277294103404418654380508510182546602520139690254703008465139919222274960613919823229205219319090591229175927318528858368977624504452281826607637254832551505033990167797145917357039289291682757181049842487190444985878850197580187681724411185778337055121549823425691237414107007225493381761533041873597408112355824618567305410454782965202135069230125211715336806078418571800613825883948165298946872082885648595996184002327885508985235474464020947143615675857478379552915596438151951434774861128213820256585610367529195358357495872251266817089379949874208436543818118944425803979241027215833498141252958494794549710722475143513736448329261056403792576951219140595912590583747089933060572274257457754321672543754394433305187361689168771885230473444140692430260418109321413001589747512454709343630136098986745216075603726111017312985835945170003256230727187232267100794996450899740877802546737619633573353856101103337513493793881583215144992726446640365746888431027570400928126322917495997087265318554678893925382455512588905516160046900653716483972339733063667091973846094117142446492154532438918893481499206081784261931432725254541176667001723465643580045077964051345915512345617334907741782601180552136586685929480230081725120574181245834085560787123650041593929310728788166732126592465629992372763803193141930992264592360607792729420797146989607218101504863971824397367650729449450889908832882777479875234123132967269830338152067277536556835453386524183810873924698096768946230993782944144083095285755980494105699887883485525975918118154770586412098807711613380933138419504016783900226477681240485077517146571416454292601565968731011193243013025571320072562614122518209217610757134734469489285192222973718268868092132438052360866014402890595251513178122068884068473835230409135906792148649500589956422694856368457873994476802836433296115617404444595982542349300579506127706653391628516070458235494575171643061988515034865832736227158648384077454124655720441658787532021638127060455054670372028739617710708296642051692311325589961965834619712780157703490841816996099967910462812966219323952608850792268594007269385654692433649455393020129050921351924744299197448032775106473829061454559314483116492475680672857460632133174231234383447679744575380881009262081167506097074146601702141215320579291216174501232781034480581838428461447781162911972897666871580871064510357062892181692616676855809696990777970177072077543696485652831500652744773001427459052375494344734846872923058945879154525669348218225497730198705311792123193562024967886745900073678992978555619884141553316467944495835091856181368544299169913196591040881784342725563192749211023103352293455786601080126993645293519944761127256923456633708551315519383836728831354523661661207910049087172342039117454549114352789696034773915096827917489250354653410797850579283693581124670696336363863645650393810767249125555807214085466006332503078382118972081317607754657875863617677533464299695388933849745507606013239337027644001720459147843737129221969632673648684472882667493658456072896667420398969021933933784884141015295672589966712250025552714601947241718898335965435537741767310118037653036004437008054660639169426992032220263585068986113605031274989947786511044214614898629118733632623860051836061553080397153210763601434541721952917389518580038939859377530773021621915135063675529981951871399587182795196320371598393180771745466848138728153939251561118145624106458493855146667030488606297005537630746896633368793440940287078715307004868118056687828297753973029512433532376754356373215483072180302899834709433558180958313985516637223710512930020608664954760239723001287119230117694436803450227311412088019026815520185231456120935865107419380439275480997636454155646075544751568899386787683199104646147105301322837852820228201309092573033274554494598273179452824072898128482510122233329120164070111216589489834669861816169255631561373541199359057764310004270843575923625055089201017288771403935036269917036179877196329145662685364021535537032024840547593558363974618996981585673718664678482380726983885304891979906223699186049606653389070232948304853527792819726163314370167912108345497486887346012563706385747212042647365408671201133867940280272237413280463105342348777738962276485230051791011048202862136887843734713973333802157770476417564880995635638392075689189320297569676640569557344450349868439182918596969063592591080907312203959790836500846529843076134003352464791204423170058583524044549092181835047607634495927767988007794802880680244407680975221867232367967110723461476569626360785023927304096382538000898786833594474545470349870405207937702347763787969931001010334550193600994858087828199375901472458632946409659620779535150325690302394736248186830091789560231750388607976522666181464208634009795034486484488970861439912648213092672079049784845578096644433369293272870622239591976069982906922636203566877983907522919746640431738170385622209615346366703837595989550053210972112999533719186191566951976197996533969882963592155852498963829944177322780399251910850354346298868138594998880706184630427825928782841057800620940862691720906352411930388006106522120907874082227999339355871952801044457626681508010211976062860884824742205713816975919604842507284840901738438690969810044335409852423702559063276436603345038413089544497245145193114744887432062362707605919927034238001538550463141241835938228502176698975551725124720753149682503463853150081616660883402432757639924342709524284621862486893360413725899633126158006708130002988563737783327288025187630486332829981299966787881712396143916073397885677248694054332674308414205120605902855807935525903280522116193136839823350021401645340871530814245761401023347065824785758771203943928629831391914735591338775160503312392317214370132439612911693762605527087346301582592039466094420869185071741974583054225641725099063483045191631565542970341776095755775127078333505514990723334791347639121876234249270607235466972420216748682624294792394526953711379764899518202262150787295892162734420102091218525594136975781870247036958349011499607653257983625986238687731988907757821621065259428914836981218833696635930115104205323660809421824167232590353875988446456017123976159648923461402513058872151481986980632278910655705299254511621704790255658600530921856308395272496077171072145023035821260171156626324035127488197349079374672615082166930665070042753413873602904773653599207312261822387547674196388021156272689930089886902303067902388040925762740343754629389859786742277507237141597426215401645217309664263444827890613399871270489381424879314479469662110320113223949797891312085737738707098581223454199524583629313150311553147278916045564138346187707723059911743468776789312975071620188563614739025333497431885886786078745519369407390805306829495326896963770234402752386173554518228091975337938205525686082503059509968731205063982209220592439132137887971213325773313862401224474548950096617262110345064945169466459044117456711955426678223969009143583954909310586444462285994867145811898322568283474238962654329074892029979233503353059663867507197786709839273501856965018481710535561289803393052604650322509198753398391974976605362153390590264670364475965411225743922992561041782940659368218447092804479353731776431292368945066050276206502275551140908617149941530939866117268449016035239869889275545814015926314188255729692390250447147189445945770517676259990658134115698984172344306362101384155359437769078441262903611968178070987751983822781597590927196183875513737876625169400123479452782730922297623567807820698668447810163761339433703375848147892542974226917648908503428654514086304224656282902362529356871809763534691028175336035346109574394841231809172146232677576778717984608748094870293864153997544094750478543486017582242500380931554195476951520952062988662955008350292849938107772616264820008142791345957176708178351576088282854183707020773184691808293843062227680372730166189990971708028742476180633277588276952831025624123710755976416134465708394772880799355476821822243650092305270386289722460627368743230921492064225909390764863540176365608933418866563202352766553288981420025657245134124081463760809776015838293956716851853587204265756011072616709497973378860209246093151301498508312873572315197841898410160763243899398923968970653418980469456762987216329781834422417998747212420981395166033814176510798688951987090994258861727860972931212855168904489389224855255135038806563352479549688839649485957966554992949211874947308076777062277518136280805580450720831462825176606938755010890949718303381174962836245109364187940481735242580837610170514986765054304479431158125333521088719122756837224155942529097589573199197233079913304744395943446014994517188281976690441285662631117739132756550798878350549411828489091217563501887761959042009179944610451864580933012513157876580700201757020896963633649321516001441476274660994166807914712222947942085547814266202759201985965760863059658858473720085100859241967440701656454747436526943643129325092860476612260141588249012858542433453055139316531251266050567422176697113348518387816998718288389558011667492612160234910204116665918623433775260964802925010859314122320738624530479443068495229505942507190922211243058440625403764681302407940924654365204805730815910508355980694418683957562092404783687699303116862571402583852201541800891694831902012695960962249765337274578816646758277407786454929317964543539840611925375667056423208524951502208948795363513262485584403411255348030678229794998473891511715171860182621985436177278165076218717339505387061720940452161131711963087281320100874616584546835221839158224085677022241840880752698262802084261670485652338199228926317925570871349870382282344880516522512399540788040476318609017941567334233234838693381626691974446131016950074411370814880340152875362635818414632456887920270886713595580378405765480805387755495753884700032354850850841175433779979702166408134888436667770574771372809706478025529601746545207341127125501593900266761126269142899536219406778489800667174850530567359781445821858284548335416369867420890149840338166199485960029677126154896930383738776069793372121493873680008087054295026879187512851194764233057436421040277017289488549512123528589250686355862989352368994913879662365655933666378147620541023367087161986371843725559647525876376815593914091734722720891914525946129877162329008041853104752062456977158545477423781952570745537407186541307517856724854130147239584249956554908133050190469077122703491676939989326063136001802933824794140796840972908937019513946190435567022484808620083716916141594401316303472568315628978664897089003068931302854415007734302841407124423532938788860012348766970040089983937400968230228771826555524970895272412861552964254035469826576333053891367537683430743678087732308148167262929938090753516234077965362381243254637346015233182371750166920138483897904014994249733342215423745209183286389989259374845971154132702868297150754839680656768288273371778661319966622803659481660476196513137684338553371160394808169800328218293534203229931703573761580727331042868245623873443480358376621354067497943322391854017187135763220863204824739704600398680273687639230117334265604567500386730462815737479410415222151293206448666158513443895226032848776038133253819418156241644443752137322354501808431401612941284609907921643696705892631996090350464535298548710253535976460145424216915982709305452135362358976298968113205315930935197152902098054300863274925892887094246015959918666288734337174405948820454261059843193684860051783898414915014392191972001397392861763886343563150280628810145276316934036100827693936433038211964005399586031628346530721660264570633022135881169589964681649379158924624522470886820901651891811427807829002538371572815999373133726549896161291418426377258967197473567548174251122107012038582275690374516567327916489758112547173101320803205235584747568267567148118424008513374008478664342940529963142009310274565965235557566232795888872998608508573364055286541375442090114431039865826488002677952384116264912757086875790470660501599388527895432470222356217465490323164983532772712337139665667046248397455104713030171080671031752924739920235786881011113720074778473915421105749615856954706573749529799977225196525335417373823687868454078526290625661793401878717355825354364452788165705464169961945992226120444539393657088211221588787479714366259921457034102371526247749202483773899075176507367724600617244004275591986723309535363706835397412683641501823532314484623116989666654956364111469208606315844756600488776994004347355892166006347245475226239862114784218246186405427178220632383280172115349959888399265499278604042100569706249620333313686652767993288998382658398724957288174734708454826047629767105282293696843737764241352255590555025191824430168490855769010697438168032982578161214247097710533392052034343084572409006556011155174629325355156001172604220034850613355888146225034532867870756649946681227312033495431344227895808735659672052391308352347811924618826651682772786407549229590480921176865304927196857568615244349186526384134450381764768565606169707142581103889395413735004585135893542211077050990553973272325774357792064693833001415827086998471343145337821154350714812543089145509567982711432345900359158152450455579092605030920109459470172677416381158317332456314543995031688543874983554186420695357306360660973864616759593964407854308769320370947878103955777353410844403089481566239991099377399630007427582917482718572291854684334572897502005915038131778496663985878865167836257087215787545836831651389677519691505379169968863751299655837753896562226876742910215233232429997689800792664931946321750262833192428550574212588442107649820376853393453842133342956201018192099211164631709496078180863918489749627743048293893457753274489399036106896718798746350306333922165067019766247586064681524542477007765285093890635068563003288305120262084987936786999030174384636085286298273256540138635066783911037433962927768971869742509619947447545423115618911114298760633744322970901575535428796338778745835522454855141477929501011432593165603203367045885145914438621277861618146122335115050439339495900098546643475777829439641854714560325715527315656327515706396590556845497387099289239774489104939403333678163748087785050702485445154875482448934140372811786618675591476070166885961641447550381251688006961497049180956356230916557384759679770478556406256224592634610113897653005578924844897491028661210867203337090133667855113189065923126413161988385829497428074990224458296456982263300956926277312201784209812310691888328524971877852133106036144856908664256651058237219826274777506666597008537241164012192031163921489232127683615515619628864107836265651451589079258675304995598422035018893459622033332182769235015277489623212877575285819467411484694885068216609368829726197515933276183857448207500770979938136380283721586197374942449951467698493138129300352675585821750336027826234618395361706765598522460452647303240340579225966606189663921440301503195606340804342123008119960758747841032757745666730166940915248158061415120441890353718770846845828217046019041218494609276827405758949427658667923353881216073726690863194960917204236110434215650040318446328290907204783365399646430614859495249108470225366213201483224428574526594869285480616046724431224878301859345705116708921671158615859247817010058572507462260457699281184187711816307645162634474704763138753974363077111836587682440212187193955258898498991911506491741343506702796450162674271840802189447304576916378330777161101054238712799976034963608360795268691035209649445253569306603552094710972239240731088106411177890326778749783596791945994278514522143924574421295701099608168602199167320517881374275480859637762501224563907213157207318438078250755492393709685263511462199245076826248207769682967889028194836372131565859313209919295189906006440181773775096012107486444833177260790271309228049881339648477694291149442936980934215352391333919200184706340548569094762465950822106967884274955660548571561286304812517717572579258973104218799128249197821432167164786617713949026957757292990746923650662398094066268822173697217079578155669323835657866705052220295730683315952327231743482578152790343607492304673644426373689005518692536303022527254068508547790441882638267589674637781263255004358885548964021511592366270748616251708299813317292174863375393805104324545187069766629963188684442382432965851889957526926129643587915548727070848116189531342142658761075368111949784773252171833940863674430664574354067561891236645446126295027943989171710175372102938430628359126973750395178388201382101970240049309136252495035634492727254558515532963639688692361284407446194781535192225731802075453115842462954567240886839964317360754358097020261381951691938710340232954065850147050275947275623847613530212780991763031039642912621277971980529563125156446354432482589775674528753990727701495196206069492938660183622495755372737720578667044537471778792665163450321557147929220874064570545264846542752886891146667983090252162055876372982675806979451872877619038642736679357507007614725112419182770844587822507067272210400291242900849460662405339024724763270329426418920823805897174703881048133396363236040245625286885812812515172212966215959668638567848453874194693381997861768470246490843367187074540961456726326237721250666744712601391140195856589162232002758621550728231711911926401071332552815695940310119478679443388268415503740761784899624710600857056754185059804498751490593118999043784388011696085726061230866050195505243379492491424882910855941426154329106146779701822220626316166144657430137359517490675889602330306325778961194623887796513940963582167143772016429622937319464759341494479972711576710940817257470677412849065927025483803111154481186639827547967956530457904585940214265384362369089627242782554173650717734281308225547336763877447808230984247051178600731334551958928618387745704071009978164802532617696536340214292911635853490648481121216879892535395635557777382509564660439730154502458188083959688826489771010224405951684704694427422938534977359579522069121111626600886556589631897835852883838146203025230807637274876955726158739380127061198366749520361327869181130205794595282258814855048422761963651354575257475257800186762943171215715349242795037340318852743135526567103370915700337129837642275874119549624165448045800986243563018179442009592386169743844098847914514300164782626725824988031099415725752330905122507382407676157348731009445994973824651161535297226184871415216955825728523185893478576192703380882043197763790165378351088156764071863534896726132402526278225725593961482027334337279373910554790460693324109863988893557490838498796537718525881080825611611412822686742632833039456844411551044925108436858140539008863447378363065816655991444378201633160385906311073968338988558873966740020104283730737561663293404929767267269579396390289425104401055482970219450811769099705122927769057753940903694681412022051704270208107178563105512714914872995907323197371049917837588487211637774563475394858844689680845887736998890407178247194341979562794675162669500970933079263911023265642720290185129390245509241861913449163744562626597081514331191104433181970836046656342083445544772792193949190110793980234287101910145964142848339418441452249229761143539751327909207578863048982600675296982398726658623164369263811884257235389308071045263341106987456550485816754571093753166536050625102525160036126794224154945768756075734152755167316848708917844011409059588648974172210938526550318580816181807608710299885776670306362920829682893187983375741442621065147989051925641681791390206030078583718575299476252443094142490127979372836961102716727957901465099901966901243316644241805738088650727549380646698337774041267149216632984772812861833284034650021873889771399558102820013700250513229469095877782968594877554273881831871805536537780204563956563962843204614195377063821124370430950665698781623458651812480694920387940863939072716401809804717172036462782093741725452345288962549121909150365753353774741325512571870884514009618888095664780143022847408207918803791640893368914440338219566200753989782450057838583332268801149162467081221185764402070016451611765779333482215616937409555087460983453802108263749088046177384650587905909947686328946934383872539031193890563453612293737558463846202291221730139309784086575444600396603816722550614049096344249965157599505572067392693093189184876804208376387648396329645126477582249392478740740488681014643050994392040371756305939368688484843627024290469444592104538655161688863781294456437171917520916154438315215552315984842011537174532862792716119598902393135664793362862578963482339169193546171831823456448334053333334180612859771100190944750906337472339676383751267686568131504959925254983289571691606335639456089478454757883817538539135706973355657208621032907004874300066238155307362328093226402165466799815236424098458298681135361083830150194483920493807209037379919217517047278871209928469866092635379610806239195461030858696238508812362513502034660532819703621065438189024033022974919341421532284898559390233293415826086831652693660657494792928072910348686677155181855706337626787312131396438832427043909178868362095891376650311489957369432693048054622798560356420905632929592267685910065564569670750596745185644734415377773998947025972890465653692018774957117776700740428922669983245592526447727647061633843831191244953249881188946714664203015521996648735703255357408842090698587683977622289768350061739442529294787234249201040120302712780698048931346568190778222217079560023978492624617831067321141728026128570680037913605972644801456792222026627804030109910448633765334373773379177682968040137605743515831027262417335556531847585638322971123220783463866846955400832864199016934606032781322015172206001264262190972980792460007987515257036568597620805958979771034484004645525899734921326256963808556927309211860724186600363170968159350878587067135330744622588494055261645141333249179117919509685591960889438862023128128238090054149633141845598576955881102964706128940765213313472312090629411555962795326967732235519704869378908895890943297351869378308785196092543906903161083265291395446484019823217276673563008218835168833649302451973132522391975461336661328371244468597274683694816200010603455682144315222145864775734182583135259084919861743736483548258439701661351935159977706267612707450244364006401849969175172092617408546518299671303054833229594418306187984876118033325283746394527860066704106090287867691568945119908755428675931288667178782716981728992198061553694055433272087882371951767971211455428115269856913742602111538065074806497130115372462831485245050877558122229534705776567572136730257772622940278701735492909781694354920806031124207193605329320060808842232341824058549546619865668033977349741916773646010777010908807413823319679691934972969294599021017394061623482410854009898157861407048815020290496327014357282011539317856099742964714832316485146295140504475286976932395989586791840564037149657106851335843667816083113047842186054776484331349428439520535111551172975426125818675318286633929451249524302872761919841515439363710182684479191172043941683741600733399945808250005586697283402575045731119646632171570280295432741497009935324176245380589369025225086334083040597839591526755168713943868789527033260405083279309615479526719320004542917358979159206381292867393773671725820473321925140570331873468798696417430784624445524679919289799842897202691009939525387265149506473449431203506228083109986611350839357671078699114664398244642948342117840836893473033774551908989110172092960782034142267213665070453723018021336717159802214259601559522598384814903137046550547980665728828236791388047710130252191735403228125983257106489172560061561104702857056303003044140679650279848725256740365007083852945292344937643294469683093749336331234431942424511999030840025327462677572628917397560333570659739089221019899956654023588653874353096835451572525041341917126132535554592281346781335025869885079478136880257506200515631860275451446560753349100133794247063977620971143129589073316509899988789808687515572092370052679896582960857284262222704407538859985756418208863449332531316281949255180352468129816171802580577501511999575030084386193545599073914324393852976970329614932624195623844143677454444783831807675485249156251495570247608168835607647364077300105097697262065260054762672406074526938480895035966054296635398110489758916908762545752973147144363653665923965309905466589879778833195415493397351371303968842490173165626398656336529581594366337575997494587190272999908648749819250317111387232954789892749723651901686766611335577925045397301935364609683292609127057456925436797856819013655006000292678951440620670442052561344684550165372111801237317003186258828475402909845585098886168772488799206427082675980953954046364559107050739934393019312950299363543103507766775253717207619214276162556904802077733250508187753240273076440273719822597330955493937699297208917987172657476587332280636022529703603643496967884213447123648814343522398662914543669171002981429691769814352563680319128153641814733833769945017122832328955736762669706730591208778427438555037928513744592722062334215470200626005032720406057597533096247713321613923899139169660887726288732856129471104610827407687814067488707612016320456319176035254690170734438823319939457803532788869595459142634966654380893365234992661207274438285386406009672266364291341555871532280679348904572839908103607272791062976737573726742645070801872690408664286414780382658028927716527853795148296482483509422160464997575525070508357409358317917338118023102433221957123716434158562322160435310398473217680770259545902233744324860493692069127497247724828880117735396413597690915072517911283566587077264924473509191329861644183568618297228098501162805500385706242128544475331350974024630128144811169642646943849095433114408020329566539473841475782235495650627156434629005789899796136390884518013726812284383500730824401361123896147077946199927352213846374157623425771345746519749997478744114482187251907164180644774897861343113461431419151598743029578298060515673977692023316668625314346630011714630889581236551234961202013719330179704239787998950405835822191994870016273789177251941019905259398213636899856912027311985190052646924838808560462632284709296228731309343125588211405498927077859630598087161881757529200688356555408420009268735639578079417496311346403282776712303788037717854426027287831999412384244945171571031376454202939861136446179557242516484175390913508164806417003002761323117313580720952129697059854221704388724564021501398117553920720890368514339223131306380517051071253478678011979860928483712625249219986449215826357034644932914747247736843757388277194324911032523568761022397315790679317839225527559807747304332988298648646124848982358953307862121424989096656009311073864832023948865965027673671851789056439235597052700345315063507969238440990192149618746977720069145538824922493932625934695226204085182391038943305786345530605411155759061241283478613348715018059705565483622094670604896103085915082417872308664454700527243346785714772310172382918029533917534409974838165409464450156794140119353716740075745955065513741600597323741708371009717816753079431580546977239737566252770177473743186604335879566280296963360441160242380313196058421146502127007786928812927104345214173589031621338070088957380849311962805791784500301649371736708365553442172834959184937998245698100445246088544503580666526129482066164729254344281726706632286867452994556751754173101019817964028262273008940927395557954707532550007713050879289753035631403266786035848928325574422196033831117572290722299993583465088183889130405923655757510228915280237117617097777132350411695114446991039749259428459622845089295651821980140433822388510612723144876830329031643486327732051820663341624402705918013970103556940703354733759045673506093063437503556943130932699064019428425160167772019693717215838130132999409956438481258344620910973508892507716842625200819329769051394223811272674885785855378858495421853163123139844094692723572355518518814831555148811025714548498498053896175042946055789606153769648263818577955523130870835971518860380220284738074544689803518305594265879928157250488933171410522275450847580826480238874333842499362352483123588266267187802526414171838574726310117697008060939440848610148360548768938671643338104667549780440219261577423535041175392681939692154258625534123307583288973420410774913287787556378110426120961693661500949106031675206417191518036627809933942843422816581235551282464288875661581328405620179385047465366047917509761428527355733017830010927175212207036305449054837460202686147197753789846258281648229086295389069690855525013982982287988872123697182035441540976971060928690297629788776180633050185807512420071332921632944173922295088588685610754583834592450289958497123301241872155213314829037277128966131847768846560023862565887506382328819584531339265470864479650004091376645019035825012295383561808227477324044856021310625476205791706244580896090877536697949936977239510314892672309918446399304884536157583120266056951786448325073256721934067676817806853466809739006745167338998228544738810952513709842907786277817335322440148781012714247824747749304445567164167126159473225846708576913021901587434920335645131200854812553673294316934434871751373231653540020491459430812129923426482660411328294983584509112735036227153663602527209293160392054347983195882191343053930177093351864091317953283098235743139692149217302682404428713449495140198104232195337727031853597662917249700744190573447299527292684185837933884459567799400554253812215746974178930865193600346058713691007392424284482222590557976332442692041170212084516307876920205085039694377390367398623649869316232521998420437201527447036287407960941149844183146405139630759326241556648697504761890229766547499166275414538877272359779075068943588570940050469192969029957842253853957025605109824734582960684189689865825004356080622033358934383153723879565340465097995875592915531707390043246327435131580665392334440018657732427669703793383901953615577575374557273132040288043468226802285952260633546478316048369216946958208146462564994812532043054940815679693390047874624550790698965788921294847756933699733972783904019514100295374315575173595803194980238739782510187754534509458466902261687720793406521486985902135876976496373600540265529829011106382417649015101285568475373045199369065561891219599572827160487696005205844774646548706009880380968731108223062825388244101652319715006602064241698814449632045560854822809639841069204730410835128780907400362876823148050399693118010165845358073711743902060436742602668216528613090214898830312417099497520793525431769101222280903160529700765436689036397734592882513573844912775993339427085868896504764318842627986580725821403214259828421570885335524202276019942470490024656666488952694408498927835555015958668553835482901257118857219172989171982611866382997686384746240392578934620366456698429431936249656446795887563819935912310370894780405227104279074211415199119021905615229651812472517893807044805864709750066206304024313768519089283987515246532280347482230510203234567618843640743287713429409690904403421054588090692952601678739864412005926270762445415917991635144016893586397445126249380619189857534622825571521381614757150056522093512544477511096150843865651927248766662094504652147641800475694659088878967318297718200917162530648020311651064901853563594707276860434372567643001943377303932399819740220289839340814571449231461860738020206245220733296556485233202145713516718722815568267007131127476863296235499943396758672786410559089770422401789143277583434315387950674415134722837391578050710313716065103077282358348899153327923004437247704306521749815066708352076951672817194116331937168534382169754295097844908028342044405807565588991271227359295947432984885378362163323370503279529605745996462658845726502916481134635934118210396601421377090051908600121166917075120161907274823382947826372842527921761167329421519387241233965847838141374309871192589478530373155199775111516981349168270836947268098746767635130898210555295984733182812256349143132112520879883460053773900156422086951617356805883453897774067630979084274660214008515212767582367614688695230022298577143715261082053573205472693624185651984845363814612370315045425738484739154397820554139903438260557635863347240611999114610021651416966807343400515658573411777627370839110578524567359453780516993649661236366373183462288863969456041136280391331035964755448255557830844283450077030312723214179156416210950852606770527501584054234253131968134918901539300703582778647851401631209605581948625843252971222439582573219518434985045951568083661932242150426680225449634437436331699156616071449574431875481823531765805991916616031830114997975892860818749856492106663345464616424720446449383680652287858587414707713190619828457005662145591043236250403617045716132103622481899809569771436277759544900332371263977894294089436739666592527352570086336969107550419173088637278466818180556078916151346277003378298675312081476218912678773313694907628112019680558779061503115254810321504442645074269263772230497289901662866705916418151416805884472940892611530365118803639118158034793220315538361612490076706693665510516978265629279127958175358573376007897852345111136910744608329593666351081503983768418905065064946572557101402590573618983172618586322055626728442985732210881430062059759701942698919812554833643850419029824433483750730225317554467990015115055185201862212454657392918676735090035927371713794873724927597693856923579403671745490303329562119491823325446770039860677392160146504746961852246162228084737197420847642276923736647724624479495202182404711004497868244833021054048142992642847179063907584795539439661983100845796473740787050718738395758534560326346270199121010625909338081577759957503141338714108334498291760688856339806815208199083554518114097450248782945792662331183524992747798522151108033017050055815930327262396085224632871888533364576092715266001016593214338089267105771632809008339949179488303971157300133371438729029757798394573011684165236017674295828254721716130833506121941088726809175422939080737524321610314689301657347665036272380730983932598284879142441539488835526455851552318859521822301506605783655277962194391504569175097734727853416537901042603532141241087447096734716612818050557637148353888560103668399635916490537970862500556913339901568561314086345230252688404376064976168748694283231520348903285723186483680398157056922990520800567905026142286511122335882736497163596079255669982052303800874871394332260932643553616022909297536897939068200867390128163339050536892116215005332015659136316787178193807196697796960618318912227672520550120988955561474779010997870360990911776295652235399995009953087993483419567326269180531021376714262353933931244464157044055815431712906449546569441643444372488035062623422917589502932411527004958460382629576636533534433977395928528419381030874512959038950309273604103506832096890643103265361089084243922613628831396128914842735085865001409017475759888806541547368121887710419941321235267131176154456060667425697119513811542604960116263704562669845375543377082868963561051636124831453128114835294051209656699057908337794427023476704453713897819751594769454132476904212183945370592581371895729406391954969779579846704475747000299280287483730502171587445071421975769715830968043933891539028678932205739616040582769910441483005659738996641726902211364658715365378270568298429400305338826847438788697937976798712447332576981500067735043457719233670887895672778088724928525129433040179056997945981319886917050776973454056156419325830704552101564487873586811394847424159958083789988107519437285553704571266557437145117718676031835843140201855900025469890044706775171650870890509090215102611149048209036747616718044657123326833355003555611168561449924462078363024451009573853659543488842654165319658489677873398712366381594482732783680654577070522818261156987716575214964753172486582474340347719033952100938125112169623164296525950266352208847593855708408480453100547986857351912076727197422459327570031817113712202560837085071498934331642998483660717056970097282773088700552530693704392722630354118255044355733303583279898331766720882893159806036375098033040398113259305792175806920725399201970933914076034307963500556448226669901145248075259609968904879559586162139722176254748497044897806953581146340802008468035768581371895754823270536181843063283802271142847766150116626582305728413375381711336858481771148552791770009611991245499000540753028170967453797532221496174721047616069791679880296840014080171758858070831797274077649582544172209651199294542048307339585479018836320381226518314942591324701032569500383030025524415907028120596990320587206574115857599461885662140186873902674611637405075525989284169978222851399878845679082068739197932489860983553618312195257602017646974361515977266809219752973245817426488857379460124116103846688610689365322579999087159746878667331393116140169924319488821199366628776973035762304539475552549865363967032586726015406829286745189742248027541841217221833117853561710965953325956442998182648702560651195091804109746078537174913230561938648361126936719270354624981238014112998429210488012944166610406480417042232667933853104151691646044976752404427421218860710014517151291412378815955660010775242218222423234499313654398767676489710295082553189206742944779521281475160454314196590071885382245608517080333641599989381904362662224052596244886648300998062964381514624278283222477343261820337157924590113888135067906760434311367651868068722103439567001768077108441954202268657624991630525047739944684892459477536061773909440640176759923238597246725492410651683851865501388473919900943049376290065852595579516585868281613464822696312528282770126257607310900362208896615095575685267269996415171932982928840188306271508742697416349482760630620434966700086845029811736479843134056841151029925684956560852937960665090608590843036495036595685584071652922465751186140737389581976641461396199924669894197639106627454942518012437626467477521701850284725740307398644444743134328410397330316199151727475455519884779468119777059359230007756406567213587964941893651334122544244179267282495141374413849662139486622831998462199160536012739418921614467447087714978075414563488518715728871394314364699079141754686676988234177955649770815962582662438476095434676380144144287670592069777993078556995868545520326721996212642673388362319668518551639125049750163814595356431778767317351711425747024228628272601730965990521673379092814495649003508140632348764080625529579279353522725271393208848410448335106663073996802776319112839232913138331520586453506166644375641654933767430894819538067069205440193292592859090515850236992321148069882428322491088171248326130204137421003283496184841592239644088781873955274031244620904246259360927434439191215937977398344306955095570098930478821737247101793026171660913519851678968937931272741438531382610047605908297625526924300931696251906118307687355839176373883231934419195831391589977668065600862171003070265269962773109881774031476734163641074386488710472645965867839274399350740070216464425102175704822407694232250186428642424262102523207821932891572841876544874517865144627694348918450418800578470335061082201162428602460258209839894126153598016447972557866133664264191230062955878758114084855054149532168788683438225243208647605219251016179784263475400287526660683826498944396157482449872120022037758322565348094091141037639291773844563143268573902724618905210553776977603079842856581262788068514728479437677909132863268999405019633363812008625621055209966570547566259292041247198027905625966562119145870857556281695122118772356751379513202093462420413041286644875401257733507665049448929239920083723517931738169675152179776068813470819282775734610266671322768292369033567021023002991677995565532103493542771042185819155602843113620887300470542402541700281922519408435238488044715594195305281138398721819685379260089758367406653098772965721580846065474138630551575505452167612234060455736967895524485452452528944794749743033285371110540058305919773219454981227454921799605279251516104654357234949771932294616331357226148080213330066277005289648419173003387017311075933304913394086326264281226658188448326569095129264735421338711735563420001015810193143239638725618151949639770079519636265911915123294556066422962454933689407808642206030678829240523548163450232009712308192487053555576056936268144584522712119318136365425690122848000273279690854146019752894246596712651830803270977002385070621877505729148867311734527755911543988897400668554887089607750813627649896584453046350390974660997982348789861945317977205355408117155451281375317786212353200711328558113556584938954688184450740600596395998177498165584404029008691409158135840214846817954947067430791659739736755950622546791945878092161544646741222482601878557722243075338320748782581553103405213877044548724288331219684204309104326598213656064658300589530734240280787166312027240709673076621040980382601435801497754377258809071801513622618355801576869506500609696397052098382649143331933565170895816560829358151408534551328830297233619614740063941484216821147459507669500356391837368961204243201683070617562514716606348931210880605494227284539381353264367467483395856725464855173287564932756746384100671743534629328948653328071308333376308457044222789117562057578681994933773906487081497727006737497097917190455978132785599235390962544056300478816497993912342663733111511544060908674192474887513907701872066180104890839091706221863509260351458153639252813873174847383984916549672071749617149844617773300373155553946143236201637485147860304881264602413363290044381141861911095130250729592527821146050079567449030026069437316186668366546211813818332470274003553365801465972638695804085559378242935156072477420191933282588996225217241018343655257823112409285586752293778201349433814867323679297060436142942708852136052958199569410490245244436028691153949529957913086596808916076605762910971682066490119623574911451893434998071529980408776588235012308159580927612777637075408008109567104987114641795989363149427432627375090346448849539390148106584255493552381929646712995360821906889237247463519456693207298746161294372941158095180466037436484510202009653973527903387107361020198393492131586563865176035907417394623669172990832068905929836249885073724610592236580683854425537378779642527901241208245205911085134505109286379859995768340806908479050843992653980810207851971000963484219341571647041927728598195477617681574345285825133406247272085816345310963121355426647229131121311050466312126234182381178512650406945980699703979061555321432489575138281072150667113000493086709471974425734002404336953327781133958072401269342295528997240489541716663856384674775679105661774430492488599648621236878621154217639502605019625641716701356804048852912289344282216039956550914137452990543516377489763543007237800602402587903466196637342621428589534688447225717047502707358760970225944244378860357452075194121179256166909335202809282642826090561137688123490245058772637106930893313596146216649872921119942056490839845022088256289890297140717992368472608286745540682363244411873152563146628902475673176611931912944718584962322603525532161215097802999602093222373626653097133110059720030290644538412088411292520525664044052094336371146952175603910975860436618451540689065355359669997649188578464225502744536515395203512328950141393747239972499106123501741818083706605604332102671591183017379637814403635461125469067994735009576283436586710595802824499381236024437076154774927005703767090115366237921739923473722920723682871138028852232944954307311498597342322904570573357044767521524158903078825659371453225506336775126633523917083489354149899418016365733308494484017608124080830477275234663777203551291342091767820436036383893794351193941728745203591684553909970412566603399850806844348591109923751573146878636731692647840634703347879422410306695300584052608246988594548798553478407655208972455470269053216281518965743209538277837598964178605016879193639066214159308710653686667822403877114825096852873875826618434274733788453719047166907343591154310103569427695404431993790951136618982272381416483163680515539393011712145148390712035757115559536357733083141540632627057390849656783647056747567437969641516288643308224058730574337474571422190450533009030651101576932681643686553728426028531763800153346749972745341808278009579042919408324090051758356273044130256465144863855507725689836071368557104560024109326422793657589585799644426445475497440091179199815707820203734009004238767921603763441770826542692282673156961673398789536375250971276191075692414174072719608304605473268054577902900923365585125217374931539169021348519722214137122703731048523225797898338969919554241285433159539141947703760182861485702815173867992105194545493736960250096062263208791094387178070663825174309211981408777711366617584495709122437118144282054305085153839344782510925326738973139919051936038352252919408896221851831664785736439954104390898567259318482690442941266945779886537586315062657557102164250277285915685932796080246625942775400022002237186559606258202913168653659418350250535715504365242286316289630927538950014315497798097993282424128177043582509722625496487085990504886520746581886521703342886376146916498039477492683225859922278301546716571115711244035508589727452183508769682159811179249797501902818754976319734944664930656377392516529113464252629414051891833997132495281978535658180403274611199295846851454111383522314671699506023896193707295300084322921151138430601655112719737748615187409118843272136420344750206077605884530795114307646175877793306726023313143739083046865933597376135078282240334383512098161017943390465965758467221036666455275932329922297897264571080003478895661960146186212799910050914751980225472390745787395816903854896305802257113592319662549380943176936550576387280429797174629233974954081607284955803190892316863311421032041030429080288208350182677597267598012187169224180744193374061770734730343357656637463820470224769753823352142906974002248087789826328650980683137919862088575068984605474909903005088386503050870397901295673688315064134478424868925386754525829695485130202686791513791074122278105782941966776759826344367945680372122264372673252360286684273602755498787982851738259212355941764486114273800326203974244956079919899857451904296573827371749323087474632316580143733750355202291855639074123950798413406212270990348715179234513695696165748392365333660544665500139796815435310624462776372902321586435336124491610595936209457604977227567229212903422779622758290066991207564239290283556521582839884843545712371932849918164979678710946056609947725903372182125657646073544008685985177059778987351322412595804413866188540960868999991908493053350267609510892208695719569212141136801564747265235709753326725176155971502366686215614261814025260246718174665958352145147795630503938278270197769853108596826878038752578609703237979204547953606484693276255500269268735434671801350594957284287632435317903014109255386628326407979175126832845640030488074744021001054672320161918232870204554694942072698179623006152130640417145214548837290640151220678560634006188864294869408315019223059083220671845904541094408519470898479984697822444783285415288526783650090011158059784403765584932426105198860349433859145279334120627011640204549158556999739398065493843883912085726558308202168088270392971262641669453083530953720189479472896639526945461842693001531899665061741290475640291496823722141363210322397784162258135069363867639539075651210216048334427354703617690746581624852169177868174727095538203290891591196069079329072636157067012791979729577698809490260970358536557882505739526920473134069231115907646895402921325094298587780091260576970133699365627169011975287452917149492980474830036831476551906393625117843325015559282717518341728340864367582162946669022343369604050600670535509449567954599624197050536762384462997189145017119138459876309943644778752275908064499568404944865607487543209439341015147215855515652252272112340365499648933517702967874371162738703701391183000276456706999716339777357747621106870425545051517580142253616333489743283102730505107532149361294349551020511949357992323822381086476468669532136207194085538074461855968125746396702572108760652485799663162982486250100432117043831193495448428534157763917479156826261859212325973088017554683384989120409848412183534636999976282301502732204889064065412341841961554206473579639179554971237873971551635349402655711997842392858346413710843729387264227545116026111196401093526926961452251021743203656411480672497003593548661905801433831147841513949538340565545274966195808176927547271069277123372017756608930776196442016915773043624998424139924370494789250815642526729465767448479495404032785162910984276627152327530336746213934778297293637140635317999697279601264798747341372577098763381284631623409245988056118024875621804998256416609295947562315284126575675784093610027531327040414954373829540454150069602729759398980975396612265794771740023358337004385717850908649124232170497239742891870893218791305369553811415650449829159588433573972223918876863486338746868781095933942819149893690170429148802663324418826470225582265982500973013454353358200227459735787195048599726316303786333778793942872118766027760317238707514308194257252778067360450973503162963726218903695320170212523729598840585479533612107427972547119494899666671354035790605918058523193738333941281349760246621753538011354854569542108525189195462458116302956970216128130086053379831113107860186364721601608935489069118302454941301112244779346319356362368159284957209313320937788937463943253723329169317248623470414575184786054058528398885196803937244922392005440626429006005296981199046514367829989804205331523653590000471385960425094797984692035115102149772808928911803384508033608344426813495408163104475656272580588475033310696499423194231371112618071954364698191653971206687196175588335214974970887541326252404375826516901587809131242032917442391314546122723065642238473605700555360934903499641153553461075547970193504470105457225107352123386239197263119750214803370129474005670121394490439559262970130503942048633194488323079770353857080091567337774196906217318404492248231014859601597513985238391653244844513541136788937550926354283210269259179135553806605226251560940896040482743370561438244038849106515905537444384968351353767275280186975497354239482207026518918333154383334378691397293395850456574330041104183792868778851698236033650816479506782260691335831932084763837715120179229007996374580034502140619174621791714480107148199774967391235531064232426537042935567497692949135581876251273948644276131902975549796769899031524764852526283753306811253313623792306841560090691691727697936132377568129081909152529761479300108412826590796190931026035265001903162761560948839191751604920162580418939296657484926361462640365397073870113398426879764340747909866494505279638248820182576300190125702726803787313743572045281200629598138195283963038055700783236459678065258317570888784724306190015453226234099218690090541432758376356476473663784523782407713323613858528086373798834569879172786694813849048627762161125412109809182494527233824243605921870467796737214810592408300993715431175315852126533278365255084775752251428432597894270338759238655829228656644156149733683001882420495383929790964625989728419193869076122310804590172221142911829441629061888128104454473282005556987336904556917933697697445045102584882825827844268007141195543505315998129503472909722024359848045398725563392449568673893491444157101926185861380770931450634670596205576396871184292070415424518819454692513536052724056158564046816333196031831271549285535596296221961379715308266224117480715027876812674526078064632088107989130783867001639298930871325022908412811407589397186737001829828373341433496211537874776216739143187365333760292861676370433259662595258820286497342871418568697897882137286966431274675430584372273481862854674966482182098471606792398226312573537138745804506970996825365341064382264818266542564222142870219496288491948215116252520311564956615707314323999172906557255818304710275803800690709000873739904327721050042360140662550544628641486589397474076088127014021776632338994774622080928787597878280838637789372600762570091132001489829963297475352835136185771594012288395082871771736564439440233803337858028671858826869371901922609612941102401747807359558451930047116091631344053960097879754460254961063981324945092569350621926395287561310186287125906362844997791904159161046549421604937751317177322484561781391958652751699234493793542883630563305551794693247835395012823713907898725752861035520302235908199951080124804404916840634375075615578105381040095474594077616436182454407077498304346867734720255578539854571763618523197901593692931516716921529881746121597368675209197836276979617453724966276691204351337049316623388881679725227971598688441600064419658292891335412947222569737793812511370116993974108358868759473681810179278654927376444233627608015567768023326781147050314171234748678503287662442370251295975572551825227732521020026545325857076413437200835331938745288864487915709142654000707318496142019785417435129080166777199122612792363546426331373306052377783431716972639030059488887734014545879522346572703262185100676299772376321990396731654911211136802822097869057729849761044276582257023717051303595583265103612505433600862268233441752374460148487731665975191512209388563113602575473557958722764299466964725110234136893525266540705485841541807602888712817026333609212451727182416853705809230585319910678688593667973202332069326318751229249510761392325980294492237227859004290075231095997354415476514524302033488478545565531261428345360618755806648343746682136072193843775201956033230885010770366280527294735073233395974480923968658576021880339242539485899304448845180172387103333802730281297948428529282123820698636815415786802179617183957262376060890900119068542874134480812559149970382279068058132767969712880329209292895669426478646226401826316245898109910848541010839414345525513943866846788388818181358608251542892304202008538803117981776000706132457763152856244153027500787307123788115843117035727308700427434761434819053569725840709303804442936530341626983597787101174919678827458678696541552267924744512116722774866280019073074367014584891668642449839266581685651431284797259271244628526812485196107894676315583236768131104746774787050540232793450886325648003439388355739989441568507930479235388548898887724157503027639121846303843349812517389649066994190786297820726958229149336089324730325743192428004532362613374464045137018606611552352820814477197098346770695623295910372701981316651677123643619597829876004360488077133092782454970046487599733746254172794852686643858308945484962837832062645968861633976132002553433605629989335970848959928454609995078366948886209373902546507288052723832484654887729274250729774201367226569079143427408943706426903831649455972184871362391053086905622764603376532723147761418110333486667869660602811945374567966613365541899192050879950454930733524656987162460731749509694767603579566053058309842440742371098256838632430162898213021028976886797500195638486335077904123213515978481462731402320829721768559493095904629051463699535084829751765750631468554187880905908966766620303429591526886332983322333074609363939025177438708692013077241393510220223132895909549144030569171977859868629561952419998403983665290273067603822138581095821030802334870815166086483947144888039726763257761647252263915818024247452898607167637822805422460724204689070811458321956219782342028256122136419932999379837284333752577728617744645258463418614722791099003244380080659878528931996125922571743762262297720624796238465720328681399895714055783611470447941770530597661171349134350755704112662230117026570328854041554827036554409184588965137033224749146337577718580710697872551163862706035424213559866513599455296695644928175659771409922094445685389103453195330357530907967093882572492376490229238585663832921596735270624218226523486599359119156017956092210243350828093402107785391295288462279247049752853647883039180113841128535262547821025358933141229752269759717725572255563458000593245145430144847264597535465781186151254003263897233384476408602105970543461712279210778533052361366502211480662477236343732675478495054916995616785987956796773228583013034525193684721640537944749081564561075313759265753330531492806696114234014061122440302979934806584357791379843721180101730699302410505878983295419085835036265839688299165876424084215998092931664727650696439052426572826285443904507679960290234018546399170453682567137408172548784323027034586263751954795721120171862852261491524870185593068553687157996980743213007029571242146426987440742799523837821546018283084036047566782544281646614659591291770900583976935292727829631421852786925511825027140003523889191320482336840572393016103771806169844128794985358868493840974350715713354146192885118217616918565784111098423921113391640811442924172167237102759747288984161807331994485406523596533007749181157737065953845441277982890010871889202961249261903245031898899143709716266734155061930925829017977178920389809144739690225079237706397992447591258570097808223279118629309352843143611702887213840648880920314362142174155667674557002005503767915018266993800127208356081093805595996857709388925895728542072207545132845681797819514985663475961183200576815493126547471110706415281316622304799480301303227859520355237882739239842760357165860990068070369181443081148434255954606485341484306544095906801415564987961086815712199271692011380265590211853128024397392640680828434854620435952808188338642766597386889879219950140012474065856608787510296549320242498955534839174622343725318292151327824933131981827453153201561884110446136731126092873570562067791579730558382264330604580624651434375393406218589190819325881965832500188656955630774358454635155603330111610372199070146722017273193212478795891146779315729192525796822474954075322657570510112491977477880189993276223603574722996806022743542974673372665517027132140293075796256318422263160616586816342974364117429843466262302563746862182649724348858751548155838960908802977950402339596380332502532933360488429599063181143774464085280917916773594897084956497190195984195379965536590680352960233113170336139114212435067994643728521479004582707253927443771771595323658928885875642890548893199819952550446383847726817064657542638899074298584425744680147642243872152344400092181529679404509348265506084316834697435219541055149756659101461193982945034799094854397016260096297543366150299327174323837080610829697582243321621773759288663047772532251754379221699272215817219481719134433917283578866470177959062941874048841487991319606603568753889744348401873483797847055542529950778047268539587411575785180538912044348769295442081368702833656623524409768443385578348376534337775612235534142863184833518930383317762641375940096718232376925516725101289777838664427206257607391816725811670192095769634360229441693864378721285151346749749270881671158210036263304464224129338015182583047901106757619753800533146647683292954334762503196833742588023174725275404492543006161539116966690712515725390417508502590895904576467154462159402215709461077683428112363033907555661543801507082539963513945149738423635401447586403896984966098946785355769634946980902922415171223145651004784339800709893406732365660858121468971140373310475216891307083855840085097445850049762513428690048671051520694159649890539893669213509195584571761937880760894521162581924698614976417408431311574052940638604016412224227521407436343166910373312761208636657844571135797724544233379636220531356229216606354231807019058742313800736699627739163815622213643109112382438012130575929523499056166225957949198606502375723944071372450804300072164879972159626018070493282694739256955543688104432685900025478136185701516311823380391750539471527557022187631732816747677806531218697796103676763254275548307860194272195810811949316437033475442059341997770045619633300533067599123571791895179093078103414111001476051889615645210296088148081807951389194834994240600055970987561950992486946227827374965062005401226859876084558199290516494495974751376012347720436921592074095558664217359500976937145767730361241450717956085122823064943757624296887140501573638843367582833732306249766583429991922188881150489325926660381101476659021646389742456726036553570040407094099199802896876319803710976009494137755574750662097625878717577206419936259735994625226078998020761034386288564094873487320425949547061139301664815919328937998161426429925875100927170378416548895422521390864174137123279804141790866610630885331759723340915802135775363851118720704272927155862625384047191188898820490055795884341288262287317091092165499810661364962858626954406055917560144262804172017825684256631167508306686481939962850854496027002261345277653868171399803333093099779390663896260283702076996445614742077476906091349784426719045929534137524317067684622846096977914149642352696691989406269471041552351945549553122860923202358633888943781982989915744836021744191024017250794098621978072607088579540228432783985033143009779347006452823148587078596526274952647673498004476164480583285730557389210274224620129753226629745847797769702138145646853095507450578342836667433680818259372481643900812572080459781923032736884035996149517809363566321635336153236710360400033279256412008966821242034826333014701610775782320689331043868639389026658512512784712492665222091380169884358855452999198418318011866062563639805894961458554573536067837795335986218362674074440536922193210022431649455634888606565347687347793991802000038573351342106324518786798992181537314395942615637267813689498925637754164079035783274865826759215382467827968637344879588119526861565795519727924273447412034041123552511465135108605181554869802509026708895085773574095116488271665202615909036352568159528440305651262880841122770633499389694194416054809108276651106317235979644340480952069764831872162906758664424678747696966495166875507717931202837555083623295118309913898893124586805840553695387037664728594016943253768867000055831211541007925237432881970165877402418823072543392224848880007243327750813485406251594312454648831961729063962908452481327612303097971819181922734879106786775188802441416606850393489531142414812100633967905517362183208727295972626271880907485823562057244761494583280694759733536859846952694230819708444721504934540477322167451927973851584502484191608507510618014974894962031029796106492879901443167080559042937557509739262634290738504198117608058743040591094826996485317094134816880278009907938809286932641688727871278357561206677071810630537133177217242134961755114514027848418741245753006782103116223103183808518364795772953205939755005141615457677413557143603079064661228560469549677186076360147946703933334372971806159452852660818620055069221837652811109460563584321510272805005463072980192786003616596080605762906841365490397156733824149652070187037301572157520642724391338133645706165484335312485109565567826301518366020574638762477556057631711893682121215583596941837252440141727918336864197024744088776825505174152919195985500109560169979333904677237616007824711658900862712003773310777111809976979814679458625686484526009039388749314298638843642342646767485351898998060827628071437080111963361619955936161655905394244990524432087508061353793750136776420061709731010760595987501745975212245126643906319644765029146164629407361460571119584321924489497668472076693516090435380924634633144255174846992385144882072281668289738237114828606852486268303708619961420384374314801911316407324908190273929670571893644922757547092878937967490217669741227968907611485324524831924757759615338804215808829409112173510920120122992623071332154517857781089983235465118762378093063942705654417225711627522776613520888449485076832017870426851994921297202931022761048233251546613114379808274533951359287717182810315186581303896777702604441814323886057457618625362345485106432825432049154305281315510545157090888068756098714881115011463438022346778132215398182110626771537437316359657652370350779078835838583456734891238294940343477007110329341421308233462851148644066279577608445707909239579125046498548591702465667664877013436356082194034105369004674754909164016093007476572861103600746560746842185698060505821766775656957017252965734425500375610876265161024900625350920348889808045862332915681232015057951336261774183194571018032888258918228589982040172932190729790860921197838813442995506705810998048009780278043802376530095214392023565501051677523295505589203853986377605584711315722068506777376967633596297730779408857598251560786467150516277411908271822494478704250291097464304136512161579927120632400154913495097951261647791844948319230477782708934174522221511879600786499594485560568275907278818075607221298377185289839241964432838395818013219037066961256185800420868517824595926519234836079089376665640953424788229494284746879859956415178987766006544761908775596837809189924272842109828893425746454918248190074454194164775182691143299909409379588052021528905386513347997665924804935929097892831607223998748520842180623637882520430321134415710360043206525438290390347308275807479182663673909273607891381340951834950358546739655254494327360983115042337225837000022027952877667761866418852608564823950788161184216886167165490601634194738164656310730064622090978347842427334183960395840110471219759258066041152958726023693228001934724939539592778340039564854275152497692848195205068700820442350370037096601617936397190539867241170336795017032798420796233245872585570084728527183073620696373824583386113821724798548602285738092268839216310244861709033440916546651983398509443263664666819326252188563637447107098591727037477192796773477537759580744145350777081438176165916280820256781305243582413736756051141991387560815051098859205246238975667515668659280101414039828475940212297952841025648729631016953632760523543736949866876465087065778611051321773889139433736129423136425518625513981234547913650090335976897261385317584227588602204485236846858896237137109951430038612305090739042516412478744424795576570051761533911609716951506547457288249393048201647332939966331135248766059700145775062846403890900997091434588560071958557652881995707952244559736821122058491357005296278985045845849030671599029610867410362073798504911131118717057770972012393384881438219301510590267373502377207453810252281320822014888583230458978506077454240378954177771482817767343741398257291889243279403433172575634935960977133936140771196327224839962776043890461463049430429517043633403711191915877853627858903288124122174313750651728369792209255484464657256544239247736596908281862989128050128580638063912490279215691203270286441016295129428829653969105820207681116227414989646332810690373216328262648940179281208754117028736235895417456585054065191939484379686310977365184316933258043011922981274574230512843236362751675525765074961296269305054549366892948446335930167089461311461716883422075729291539530968595394873656114485601383167985968884228753994692581630590776397096286373901498128218300873997157430161628172104427815954076114476410504556731521395007098869345622134447036087228591577116153160357963815085141085941207185594061137211463215605867938750598586016590993251836827245385365561664225273259729686860705543179063457894238351394009834550580791417850599578587308021979490150133360156980217664549252614692175952225992697496435217884119078868358836250309462134164344017536300466689878920279724974345430628631474673825573120415974967918495577255714472364509841329938485310370647051364846254504981575952708193824434211216483852548721608809334070878982563525793462225366870721847967767559663517009599885346411101743769064525380794219499924370480790326009790118855074785568188398141814027355600759691241662648587176979712354530224579121741209973836012282954446745397380624178253454225566245271146949933396614809884715906879603703048822793786632624081111959005964525640062641266180421867195006386964408141014774058571736838877280103425330099765792970908710770778745437334210693831104577811895027896953681495618300701675581436805179443731880175934726150570070147172111816037154235423679678461731110308190387723235432311712293847872485165117516484770215254447763438443847565876710890012656235350615123024358388250930225892411387260074164074033477701153517947594863340715351709083666288069451192508852456108894556041142858024007807726961093740507769931470873471901013855937809107010482275916738846276186474948566346250769769004899212560978757377019478249437808557842245206153722479954072166697590640335827112989961889205819641813644591826483553218482377550890100667877249153410780397184391167332107644129446478259452896144334664010191522074057073201258879231924640830685915098052780005938683783761867009570186433117178567887382008128194843872639503716766306373019860228323601699999754162538936349747087579772585907317949077253896614106133415593645974594228415224587879614804245621784716723488691982531326796289074099522293413685679900393926403807971073191803180150537075278701125992110094831295906068374542437752239798959561413633647006989599797762472316046863043195261420440275913024462076243023584754408015691478856938446661629893811542782869288935718671806215698890019214348097746188321141288778620115935111590994042080516930928421419416398448075109538701947481024012386248220730237261878653077255502861954856090094575238033870044762719675402354905036056133127528501268136150477015997666381967807171555265625895468644887570336642236229890603860974080485356743474827099844678565168493680647266638812512026520474113696710265016684156636387971317310399400318496537850811844161261036646070580093892960355780431211615643001849998140458055072664155339413401058796589491495366054589200691123242622466805266770193670219031620121646378466105761832461882339533979061953831703950612699728651869558687998479582014323544213499608338870740527286882160951573371409370419386015498758540236013113641156180659355466299498290610111098601333747600532387765330626605512926688364159176367697777641143526753675425164182737939998483495431080255242977694209836295184614418893035542133589253984199850466293589685066365332007270393689156951272129098281153905682740858635813801144193200007863581735476726643197004291168967969617642426890129717564714427413761429996636925840465157680158356304037095336538806043382411979257868188137379095100988677507239449562392507014947210282368577692166113737096187508268886456929899159691303930795722014192655556414760037176806744426277939653294742507202293465008552452279321054893216673989320486803275757269933593390604564285389979781343516890462722741026888035226927291130699955711083153079037728780364694100113451793931156472280799174959387866148619900501863664418263767462988470813323390996346090634027851230094525063006215690001411752378736472784202314665705980542467025988335920407870871305747253564584345768267480541174042490448562290031510125578490992360166457044939161139148997579035256448199222205945270397620061219873671503207588623164610624273268006538846645712934190205774538890168957380875590123376445498890725563363470022756434422089131985019011500252726976320563339606461168075418143393652597906704756144665190818769341651764759905841896348565412963241967399516314212681144553913252395544149828154719762899734439679765440311840437725531352973286505893115324527739661708635498620245471672028847090458488671148226417768271484890997911561801179020434816593445314385837865035789200395933018799629946639006151806866150396401587437437371198035439351811931913268330026501071494476043482010281663666947846225705702846969125905103664580062312456112335417972665217808007577455678872107428583569020873097884961170019029987116541191646681266972715325023869185527709555149240752428129475284886820318150321445285464695788007569271440791917101841310341903684384319375608154133153012728499652588832055586124462979401048832941124986117071988083049121217125709537162863635786345160448196803551294513734653340677678701152519461833683783984500115814003305910631918052012891886497428516133585483459705442684779083345942363825182762208723795594904145417474195735015160414063212341378132377125840829002571959464771590596788717561693494124784212280470728611929404545290340204456342071553260769854755596237817528872864935241890600725240940155521051594544250649501947438870935403592439115476915345163934010646272625883073661730632313633235078523072603564654318949664249863395959595205998459939578818029243968869301879992403199389145245507858258012645171441355721158561593966187819750169864778785059086883568182601900581894914652103782719997861289856193429997906179107697245869302756263063629793465133869302604593477549541941147838737253007423746017081926591646624849566798266842882137833901372414370407012080684815186070819280853056357399498662854605051322474049129151448040407555677979130613043703894302062726751764811771284406013650279570831997906857276236424847729889098147409005348287360653274826046629763909321041069530880032682094474573369320695072631108099091115531242357922313218010680183491696833667526961272220240104706239680713154358301301231071717803382060964333704182945210354438635565207293195976664727490731895361010293416043208801269248809196192984127694103277295469097730009310543983707163009168067530738403720480943580733623683806711703873739099389954946877398032949415646114989787368240193039564802916323319554918847173414419406515731999166361303564260110977743758773374777008750607701015872708336028817599871377360538073031680045542264412500423320405342556360588743958276320049606284682257451532774922281618519596978205235939185368470567067171580405907319528256554368535725907839890236261231528965066174430857784588790913848003802333713065052808357067856257800305778955710433825096916040813001273131066282165334088684413125987156129852709741976636349045324516044588884140692886396247505452578603037945139672624216630894997782074649098492615186809993523701502914597507791612771655578042903689628974747657071236837987220522761486647506099011071930357776538032209631284427266725027739228813732586815269079542021240673428749660875434329677980244110439083233396882895200879585610577932059284326578589530089857624269812565611476862198855178232355930077607458740604027152891084270154709371202193994694290537883474151891943402225229574676066283865700931634234860870546061881431771250808797338850082026832044143898679010638061147190195227234501914159178038898920884953830982780595185179559335390357260301362160848629290751048505043463398802778849972162589375087808253621705733261377709935915682039493802558233487784358738300882519881880568588808451726177721993340251997371934423146334804803555594120671541145300184666623541054378279683235408264915618701290835540114662425039163749849002979705031655903669624905696820821422949661601499965898663049916990220069664971819067212905016437676266953248836191748461156400344005054109494067820127286780447898742303571439158261482868036553734845882377328261546931540634894041564187908133577763129620677308205030417074869980894041405524728817944995576541029487054987269443203901507288158434024548482737693379908572556455266968906537012868641845227778882409686003163743389211627490768964574323866053072458013552148069355634796816719806524130786132902946160270286939183861115809584635917817215789914513514511260832133304881720941003664572850523903188050616358115084381013068050444845041970409179773393677299935695073955278645240111751510725180533681710833038494032782521457786005692110783133735338826937361873513582312446640310380661876875114719413788888332589716992677226457144661744289767844108641637971344068311122582185062527799919229914226185341389188138856154620611398836691854519282235746779501972787657985596538278596006022240727150298707706331063119038376287586183976625992349329904421592281009910617925195102861618466289340929517494511658007102934524192256211815504970500966702782807896206433972648335389969173449390521676432704928405975638256935386930489608259198971793396830033490227860989913469437142259076634404679291478750922491479150655683413660385049785114858475480982604432493340516831724097822282498741762028944963146350388527038880318462198470092297104270013890673759497009308942025553076355504696276703365214304003716632126503811569044932047725457446360935853555249356529422485393273351037941852499106999679847705528375369970071024349478917107268761474709147276040476392996552766842922136192891121928885648728469303544093392885758937310134023626903882791594989425147174868182082022401403582142030158153016444956964085623326217233402675189481434684929760260772937120827324357672999650929198010380322093525891836049199952816428404219325859916982774505836780622579825665380393773427918592341676014536194342618610691476816584016754405715381805919252389868028559759284318569006222273021563698233292807333816019291033184014969625154105814606737156643730573407376705740245481471376357588549589331746616223594130988676863679889842381547806134379709702558602148014844787725761399472983801028721511224532343267278441234529160910052390311446063967187033442062894381954338096454899299715712644073671116941531204779266281361984242834456886267969496400212523705872198028969811165630729764821051743881666480388355455165791341649633601066351376237539303717260433598099134038643668603574031584601851793378050355709160786146892614770043469714640230820792274003725916213276439102865427091172337199536096616111779839403625967958549378301802175412548232596728531906721123113502229849670241557257920498360921068771069397262754380667279155968167914274372352531098334121629499127322051194379396978173499999480997333848696204375381715938550513148622525486537907059620541055857937924360263047945172889408342071123191560088423578575903209286490480634978276246433627264802292491004182530960562980836822537778441994655017299320832431898409682113700883215885746099808945270772030917900699681283063844502997850373807073023837465076049579637970344319170915301149851215052705181103575876430756824508173483739557331270817412002806085583173189936226598283805640252786498659467064522578653678214921999018419503441906508229089510216317577643791696217483686899442903582204658400826823534460500740446543137146753218606613843074868563268823260226801091819074986256501806137366768948905230737666676362709440706295143545891504142533339246140511405171949042565818043004072063076995873362297164262073913039883631419259729803257980034183727302959666203014997352894246642721627703379627066857608699886034672746212000585285038764529397590573154240328912075779573269079109862349460279289974340046112100936522712318843286802711154567238066757771869834267494958438679598449350863894549517331992853719891048740324763375660132491255790311538769496136427675596761408541574486622951807339859424022084664086819649689325347928970138783410108809063650490965604396751744574862378207737788318722457033902940273313104759189179059588698240591646502416303961274221445399604421675490145270585389650075182480163105270075880863664171406782042858354712530867760266183295244199986275965569283172344435632824912891351786100473984434700817168130812202680607895900962070988130391021099118105621931228622033853912271560027287199701137506951058802817799291275244528795253208527742766668278504467319790238455328420737920950483887536770465795101768789577145743792836815173380955857658237213114831838961580937835176811359992710114854708586796184030176745910475172846883297836442782424766475947405094576853046670233100221687750470366348432714993281937360926970296271272285568562810964206229201295648899889568360713998302579876182314504684422016569936012561662172334231921135027353020408652708268230614930373671803550179499909331710692443976565636436583825942267425458341411519179021189645643523022513205880731242275549634997730626082259638249035724159357763637943414105926829776842749761092705367100496096919526413577806144152923262442275500484225178830581498294801790824951750545295475504132584706682512500195883362219160317147049421167145252262439614311380272172601179866184614363970921487035833297989150667110859396111870118349894789087451189140302515231013290451093968789319539987052769309477258797912283275832983353949396534418190263579480349972792554047753290367168153052862604068384417006388681597318119825887516027233946396650565409969919458509738843021228091546012679944045563169086535253975700613157120221191045970179389432517127793843913294003666744511867576206351016502326241974346286863026375255337503294125941065515977781029105704258790918506049845489268557199685012258656166803827909974836127615683098653756751816597460976693787607050787404992627369121224883086410244159325985999877284067222091625930758846123340247478087760449911432239754885745479984783759333548936390450097811048794459848070637604590195869047079652926903282771247062834881648410069005509273157271008730024055495113708206374001496414014714711838928455352702516897735377244890145528402792125090474356859977999407211087905984557868288979682924393792786468093254610834069595668291118569961274208659203262661087249521695720864008732316412492843682175309992139506154328131088151528468714339296221957409828571143984467475269907016810803584763306340271320344534958187439013387287117133971478612402716626160463709755538377424687746972957233508290318729760122440853629859435096746666926681768581014908453687751805482468703579152494664672110700781713689690354108017819666450050566467643352324948531779044456939667375142014074131161158218159977648033937492285282807969957078083881945717621453717293711442751663988411010225018161164250462540819958677529219624592889388178423942489792807343390559421998738550056702585075610489537517674626352681595869374241493056648822703065075095524684351751492161261113607110009076873922163427535041757544088005833257608332917750130134687660464321016590357610072749455356386465986285681891265611808470844707246210348174062205841810852412248524346842149703068394429053621673557897387048147274885208060827258832274298896148932153478065170821773418891063368765780590730260564240290755750648632796969254236787473495960159387029906298283826281286910712099344302280964070374270215260008695186650250530814203188868745819315981657751283359337755632188534613716018291196919473090338154440530996500867853560172956664808770649491986337468000961886454724506952346723879662151848522802700094264202244697008653866411289837139729155932612279891780882498723481444611720652020760909386330700141310483673246158025191674370249747312690047260740343234475587158804574396505222822929205960647864671360439793396712861613798526423738699181070847806978762098252768105548504338148537518962315420277395332557272786490474218720880120696348230589645745578359068027614942202192306390118275538276576901832323245134222457191357633436991795265764251647227177303560915725224834855989653418002912854680534830555297037047772002633354973057279656214973340430102554292830188799750310153858002291156849067946844533232965247675525939328159836264945665714753585461069667445827871131814857839429079637007118640987717220418072519803816242511552098284654861245077996462359277874337037153787718490343341488574533420681381248272257373704350125275918107233123062399284923619028683213589928523188568260033765881334818836794965616782794311395513469970739702038731008949520747667332948407038883835071899380341128298364598827175075402100422366877476926799810805880876185366846812663350839195151478745898315314943543396236252928716432428902031826269566250394700459972301738241901144518557397632292875927297737691823541211735956778914624274111274428296914851060992588182711086916746611188848680266686526181832251496973235088062372399550143014461448686525184926188049304511218102325085048749609406924037537175852013168007639760282172187416223361702879161450815489091823127996918767062120324216941861177872621944544341228273762401112975390306322390832943698580864358434954193319858700504780004748367612517989429596378750871849432572367448687048988669806319923906509442439417755246259997102269490030662272725572179554306639927423956339154327892844463994778306365332377918598462184580575395664622159584908321733360909718535311253691329774544721268241736950000605624312869363931389638530438736626305282887199544751219573315415707072007363633474397514136821790655552232605112838701774975245838787100358837758126365390236021121268180961586958424051391514081203427101904635274180674820596836009587182172623208442476765952007630560268510346059345168786173143318454794493429518912141910432994703354150184601035758542393329257443865846654597613658520049722154421733442340511464814107447769573412473436463213529348489557052783358072137522337749714175923782322289050848623788861450499045618737543974126903307946257666964935991233536592983193086817907989233313728534744468605345074071250945620361900826062655985862994665429169136829337271878080214052320363181203822236381353693095035668746284501208185655987137688700173769347696988147326458991467019096969161674903889941934908744665127931474431488914922283000361582476009887914849739049538554005331292215055198748799056200965212072370503841392194480534643050619823592320218321631005739745183530298394746350205240389484013543066276680557565441565206708154395136463780055207681708043077668095840418008303836334866178417048472560150605479215373984260062011646076460869099509078744160327698374788886199738272237413661947273177360466639616918432957370716952701645404566150653250373662415406942067460328464671482531342725464281166224167551924388186255175777817071068953476324746190682887918996392757191311754270901646057330454211038321331454296995884008069571312969506446136937525720422291791190865907931734746397117877314794428961094898644475415273482952874405924056913638881481155735150742259697235762884573346301701281519569873329844931226806345371204976012057186471639279822400457633342993571575887709502640132503017901839551547182871391093332680986322080544473934902428432783065122281897439633490420796246911613593183107790836692436053308940981457856364767574819080885474792728125936970723292738292340802046102652788872935388930890711608328112485025112481767017620311295309888101773447963926934621969710771138359105719677361867148333594584744941246748523527800133943414885068338691715529553601397408739526500096387142013640888907069321981623232893695008827162471568596853621839312853061375432469856798044828800286068027690186163124681793648614469366428286425521375240814291974276003714581822759490828159502414312945922290408084753753026487730361395009163658695413947692981415936344459996191203993144722801630172006698529885422656980563658708056722633539735416012559870607419028371607248673618753756066000791636856424800799841456605888339692612469054038279966910449664001445634434558122641015677026963532586116872018995094949032592032479288147476781986427936122111328554995513434942873496500780600076245377843956875208945521559383571962341180301082152171009462533233840217794292373060958535590634403938887698872945248943994705296330289176695654199527662304816813565788833497887496427419302795166665997000893126574378620568538944398043266330995743370570370667619312735349177370058952510032338320112457059040453807189763215577675855067809290465695174711415105271609775747994891103014322390181629790571389625803955564006569844498564830458274340665596885031249252859482412021776804219110433877115300571714415828982501854784217712329049172958624463196151813089246145500194855810490353365445578793730125447665518019323529323570686549250127023717478972279694769237293400256757454745190535687442801549870798536413655182042574400358995497959645528325591862318430210246905733971536742021654002917752404428674634000773255837094846037185532305231653109101091181643169972913553038768454518540916766505022374194163444442606968896320806375805960943477625219993071773916101245397650426926919011503876534270959848305154006371053745299357794446984088481381212109905262241539155537482965249384400593360854642997233019592248283009241428109412044609082834602217291904066931713654953937900088011717843460961422762844652668074502836663293098195033716151464190775119352221857621453837762739087984978892585943553930299998676416107861567086614973287588960685480824337144802768837111517751766376342096082948009326936119188783675726775197842658559523411157341431450858022267029774368278820884355400950139458118367129256010461514077707617023797641781872410174716838034201054300351583221054451468301750546121101133980954120111493470425148529295226721832363479717280569294951212882913672913510742082078165532629087022785951059230281382150412339810485431825721121712285981942003066203566232130210740782811376943359925449523290869609980524334305676801181458176397059082704409214550553911634806343425433689509000304318932867229207314025285044062067696797989508678694584649625720051195975357782300680423782493111542189721144419435672837339668577672384759960119739575475930305449538055555043945017320508921390352413830779090169417371321851926456057808904427187554626561003441761299544924918792556717927530307322692454065876455030790621809015478149610362269986903812283134178639077375507152397253033624257431007179881385218528015783047025732353485921298675751043447014183585295829764069474313175899066612178508342392287552088654302639399856392965863346105285400414035005775702254680574016889907052734514736479211670506486363234431948498340461959172173536197130307088146862531186942766854609792832583126293425755875374777133053900584522667774323148747425496960648395648744720258875305501368879275788502605864163104178360516360928774560163250731949922495452290480297178100370363488724543581561876202368323663267126579675825295949503725003576457250983773794234492594077203963593570036571009050380959550704344174094351640512176811481004489936564532625650352716477632651279348886697674498020275315355053042363000887938025890960924301561498734919313491522486273202630931444801890793315858571301495333426067739226370360620391432845775930676029610932674729650823069151393385091205736199106110978124687718472130404573737074823114848733594640093961095402751797456902033694745293261355996122226427161171622906762158674208178399639260796062433799749502362049541636916952544980978558771894647865273353542263936234040581494765490946512105934690842576000584454029520615933242679139986813842591994271229461889069789438752987549335028605082997837696373819024877334437122724820759749959916223761358629154269886330895821020217341411908848899361834360944319485489329128853735419877610140263220100707541361082530254077539211687750858894440290928760068610000057976311761667532482960828451501681162750959207831977365745891670873041460664661733611153708757527259283667626339659695674761583892852333335977326726865993377809508536615716138716364878799203322388424368468742979560427572870242927250236829629815698963594452583322139726912644661297794260868357789438118991123621626654735070100995567576760816426850412315119555540556327068407557051487083001480612141938093652157141605697052013783091923197631058419363948201318039468937705751309922256445704185730898833262770113900861230846737899400684149944292762517989736163643950909117867784118763106713864993482749909742956403199798193457900944561442988436549476883032393638598348895850298594272351942772070471271853536602998633558340692460848429341232708536481640333390522191747889282455253043914387541186281586415567496836191874725145344629688726603963732448723504392447845759317915720142053137295046939603300726526436115075616849986723827725702040444368162430675033113249132721454629425746757439373355168247198180790091388219915361788299794846768697078897499406261151638289043318702303342988500851596159794497313886246236030528741620452390924919478232546539859670492475625810846342310640783245928500147463673592106568396397647862651273424251528843503998403900568122963579331670139183847185406510272144901724538310144181234391115020474622750655028561952942115929521122258833062281997589731557470808429390121707341723615258331659007084715859240583303841142076450930025176207865650254178757949011418697429730963513179485911156199249157286297927231011101144720066187541719600312401673681842362294322105340178769941550377041858602217297298950146439075453827150648142745246682307077066321586140854934531979474714555275705344876399595807586816823892711539736543814795431272088484298879730330969655312088535619079276432236655721458453400315653515178103349014523573016722916286607677881831116194054364959907395506562887878540008754154185926136158993703749486409777484447575192795307636119669129416965474884200799895518563701529121681260379425203789249387213775401514141693952013987645619467932629918333604480510787813144542027809252881576978122839920541169439307309782159479027984963237519661017669392248745506503064078532148421821523253009433923694503296003937253929925491070382568009814236713367276894535458407519072446616292072811680825080045954852480541591860683925661623647638739158069026243831560083098848654044485034258563600151136572225257706237546916328412706919432884337036439475701462873723375948578032931671661603017114054828603143342858792468903655163689246343429357090369943291971720483710755955810137827117648439934857421826052025472141993192651925266529242270556406795091377068336226617465770036271935412663203560718525727561642842402434036272218499461026419048607890437713475457282128527910125318473014701751405083645772106506893682415695497521043702919430184729464785108810877446915506565641988909558244999398320147963210252784668725597663106149822634957752332129357606721067772353055476988217068858744195466605296880501284889899893825619551046856843284343280450477470867104940113826872807001753035166789864867656038473895117471314145898536780769734434010330233580143032694813842431310566877797698393826213842398149816699252640723497239501637088061721218921456764658503238097883654940254414780660433533934160926596000275198702464568877846820797770131881132907140018419037863880724024239261129140345260427676765219531585052411095181764725668855614971823203503466903205702258011861486058391137024506481047507498364881611193704801231955148314496854078118096555687904536609436812040473666222677124828961360456351932138723216517378649422519439832304424147045129733794333380751094717039450969627199803066182566374428187218147553670121501840252350074044007914594634682964216466358029198937543941812224765069954114000179980668467945266650238645131034102600519349497552349665105398288861670169259596210655992066535878390084114424032275102587258980849552787792301780304878723602451062916120513331223046854345165965051143336827923302969075426530295693547087788398832428872147256476472402707824180994502203027303046237907346137097581209207636801798328622045883164036636694358234818419778903261619448877641816452314617966028910443352689292501502842196946450014007529981264364792774689592872049835207346449998452103949250488360302556918777233203314538513082848078469101187150407473476778821891096254666076959400871138688230728416363319857512596761645577413503391765286828370317093355710040209748830687854081533731970206292163991723319979346325440966597506134129905160987275797209578652910501563650621344895437459778331171404186148168570862455857147142674835901086865385009467021302625011799359071059782625740297759055904671626519315136013394548967448472731181121893887556779726085354774333883760410158814414284392683953242747053450482305498444032631445053718140943578058702895868270942105951110180896541051298012745021991791381575471387665249229720132600272848437856835219406790848654198458214812642062763704951368419393656603528563594765820726568285087254994944396353081768291828434764945186608391912636290154950871305492869461666615344934321576659554919172145799722144284863060370624249471900384615174043720060859624623787405266458016003425753237925851870537818720814932732330322750050737887561959136703235204007172078778926618381411574707258830550580196837159275843568843652335527426896370577770440582880464847016035822519100629827899961330818243000209321373657253458850884753092242411465613724893075760391227427025265618272630361189575600069267665746171944169884839496723327186823933461799570615365362535500617976585987317945710270362223583270756520015568350571779057707241300029756272347759043995250831767769753543626360624705644352141150964207380451456443503586812152742029222532552033616632434928530987898284922691226765733751905880452829992956090903236524873376646923942305253522307856930847185135900878650199987221039105443284438519255689113695984903046009890507532191291492665303729723746822032754357475694687600723780614702535845908706513062261227927141931862101459444238844025320221522304851569845694709297725848128778166693501214877668318953462381291040277962181745772131037010672172747916984358394053102178810604252996228339391454959789248402764671163467481584804157308355218658950475618686251747986212764645595430650483634587453962536027337937206608047622136378766165344839504189950383003848122974255512653938944634964648324767518638780263781508774842274918107259382340195086944974733631945400458981877022133613996724399318108644653804780565162574395549542492933061160875261168523170495158828006792903183958385373370926811330996256103631902732072333095827605831479467380423034504650738159404970330027963396287300374218065943653126809433311249534757245274547946984969973868058571125883246100892718039941502535450893598564398253400137902233403356233891453613856078623486394943369386332385450625535745992875971647554492247443495227175657056858184386764887793808548740493367917472268856844889836679844101497994548853692742027897334704159771665738433871725057865769557277485300466732096301866577689562861460766335904716453258927183381319995106602680902762233815519062262879886964890403749656272838461851178764772231017751360044312769239997225309317977618106575787458088102760408859672046239086364998692213944739380749157865205683716260364316867886856204280384468917915281044238560235773470206961000156261302070537778570898307176240135249689466440122541557091402234620876886927656865923968959057892865352602728527771280000816710230412791127605090180031461847882873659860272499416551776177743924361238241377226950916281194783023156438978467915369832671923490446587308676090305729027309267199057240200915889624006637826934259969165163891520642908640955737717759757227396005013911926425095813806793971323884621198221429773067826225740636469393894930773253430148588826000340563435746389573618881090280690067541913074583960680215220204182186334332852736051331565640815287640122992236729281927925815988222023719256529094111985975031579415184990495899729110841551111229193266529719424438753798723676202339886924095518920483601619085505842317272429184608485858861739966689263104296768808296414728290729191112949968977649122005866508931453381103496872331575098760083017703939923383771671576757986178309413805275437471369463439150725565965697744878627798029008215510476985590816624527954953446287720801526022459473603873734187475538269729372395221656970256350076008416454312753208223152917248015482635336546504425275115917765778390718134399907234245624511516364447584077943006009724615945673118375954671039840709553975786788256577280731019931395986635880923879756968920315208225661025388509532361710404180717641511562818858902506902046664253438630030094884218610244298125933881390951745934339527620904450632204152887630889976220370263097962248058274696000948389461985119019745460985844650322247256340296501209708462476580722963485746089366764631523496461096099569044045323383414737188790229634150526043537701403469196712569601009275215506266623472003860647972155217870270507950346229330511499680077281987127538777115129082231202031336016211406711367039438739258645636643595095610607119069342858088910700400952792674735646431777033612322194762789854095980762829968153783434482266967490437018126378718349154930062426312863956615950476605309594462615357531117274986614906142525980461935657043469571817865346192396190050107769288416538756249355200897631235150131968268418901800511033506711526387129408785704989310402913327023324825684237818932764414570271038383033061905655739865903215973929864738765102371399909080618075285062293017641064344511738846993729817853245654712728256910891534564576166476037745018534050144517961537965953397952979557814456058034598838737662435796094428666734724451258188564777542069564720685159960234487063454372070701926302460941342756546882142492637667352891453100289276688439366646060885141158308875099109173764216566971008455566474255767264328500822530681858053997074919273492825255994466435795507116323906591677267861108223138987155722564891759529061418668101388584659855529405049062813119988647227653447492877256289912666688057744045294787795084218800950598964986386611620479730658998788304807903652849237445772257561752129752272746276476974285085539904646571028561390767008133596374514560285718358846089913960353285941551200773071102909378642894201227713501899378633194283778042921410250639848489691729293440632921402692223355932851415978999625125685547321404560279804213768232593355955974194283402181881010921253812912523357651539963797931145367948239720707161206751470875283075198979859162568878063290538588330404980412956503931228623291547521667532707933384618769890900404221558711193200431697493861344443982475141692391870439502037667702016554488518091221493530224967450758931842468116340171374859435738499220347600253451744177180063674917012381551571299245375208114684418071653257882177668891266032643022385917687197920476910307543061878113767058389792979528625727146942424152011426026524084401322612482107005652116160124686429313834651905319171471983710308304170326473733128506936451037311826517325529890755743450863076885694261153493049755709144879084547483981948075159229742290643696204212412067078233075140945167400789202593439850295069218839493739295768207446531500305023012714115278810549002965276345131940373510940235727998826015017686130510431142762269508452939943138233971730354688431012656078531583553602493991530161972611360811020392294679954787955045064780030878314997971860410469414057399875606642869155315612213536288940016256075675500347810036599545189485477747312792365919360223658598209700794653483706236746155554297315491194427904866152984734796215327491753910645339100187340303376844797617881964877619807439473784421881048254931244850090159577041028541765447736512167068454092168258104123237946698089440498454053307040797228168314881817537323898151394993783401604385302978649355937451574135899322468294608861947102609825725259670812804457973827842140179763105979083613139240822055858355785921885314329412189189105254181503716718697627636335794354931172917353488894026281290816410757338683640059563296152112154372531824976430755007809303009971634217693260055682470881886079898538922648541847244625649515295449030484028887130811149015462016817413511697077606729011708886055243220168333409657851979013403199349200146209155361768839894744409344948087713606734179668854853609222869267889243782389967422894481982046787850172194895789756791960594943435486338817400267159523690625452412986257556918305055899038313841279090361080484430288527266654440339000869213528073784735653910715626221826037842704460679241417175788868815271182836300891737449035391515462332229049657196104504723625737403693307408434287982675454799614139382869840533838222757594871699188087917470367401020469028981959445219462052713970666859249049016133289821151664375048071292873676872818689524508519112327592128503838761113805141562149443312458083959836729370318358608105328544085047542893919690307541183971044988843028812764870231195496265019175547698297490320323883584377928798997016077527112328811774435609314607981760565712669646199027318566713387001872345667544349066979736301355390655043838462730645504975624288470193191575114995396326386502597365854223358159596805123651637882979952799527233414665750549532506076699491584200572112378686464772526034287129487723758894563851659460006593025996459372859917575975009601101734687979190230910160023745890024571774090594644907299197326496004082555797909159132191211609517394962550734471584893349184787233597069211640469287885737838060462789095683281502677008642423379831565319305774084373434003183058053407965900896571513526266842777853433327187434147133592619473765870269581777233993953392385599055894313874796705170804216236452431854219046792186712666897438867348057007862852938701650927740121350313119670069675110404765982778481156119776814013439848021967287640029640996415489510214111039347383875006002053483503963512784986437219916630638454854963064079800245265538795064025618915993217367928065149041329307717295404031285544202721300562890800485196944291648530512723336537198074659615361092444178326809289786036892333014999886356480397991461753337278750298575421827725299490942079033817953861789754585759606279059500025595615608866878030371516592370804628100085400730999851926548212343907628591941532512628634532745012029390591274440833029978546312520632839964543115991691819382217448406385005408535684062391727897278575602806255556069230917578007590484066292804792671237641077624610510841238234425559043196960850425493335655203687593452580917440589034516086439933398869039580141771752385083138886986968101785445119528232432692851799590713591333751045867140920290309645441665663061438460368194329326238934937684744938355452716191735414863291490789954583251307206557167397483538608804471343084520983899562164188319921608327662234380184452116267914895462883275846301312739896459136266297589385525609849567161292317434339262092730598158304061289747519207047965211064137087511350984199930489018077712103691644726551312699227019684054964862045554843734860881677398081367751946997916218643109603392009917793043336571142594937265572941946897738773244157545325091211687916129557955740523276341010804657469282270281280474756185315441136463894448763702711134685710928835578853712826638097598475116601677083111687957735827560971252826235646448566645355639241204331094388355283960288614605361268504503020139884001986746638067550151269183925682675430995354034790795510318219190988469471560789908482621809371905286407618297653872611327145273377245712698710935364193048272042552463884057630849760403710108888669802952561071732694901330112782786551620886371736076797294076148641510448260714802491298363190740171090232014914102948739715924527038379994577308146122135284694162457865240723588247393176981043409255254500184489034236402395476563471907148221221700575235205681998439453970783544187163458296978921276791995701142059834871130753139171331965518494009726829414141494760401287251677353182695047804647754040178247028479718819421563871255395508815461897787657800952868061235177506818921655352360101864283077383094826432271331244659867802705769438321949605321672964054914587717242745687880753056976119184700443854772172972039992083304381569838909036278227016362174413444757820978458029571642558353701354165685946825225172048550169147266371038824363218755343866615026951158261038026651652579341992772759752375946231354422639947816059318127061249462689077686418147861075087211166734173717529476909073124676126422815450033376046251580413023307286718882851007304112356748667209488507833123543306308328739145125105340144450868172702126851081113623159438347524060997974303922100748741934017412807621177512881851381460070175910298538265298719291439073667196181517019166592274388007734904412287352920100468743167032343195948472916232288508703022547525104254981170812035495811976087016314550361460603608405330241044850789290572125856821181188040824858965701303121873277103670723301776734877203331161010149951281057909634426826411949363280740655173631558544634594085836128783896617436667247126407143797486201629928364517205617126777791433588408081697194677531788230809678950392668653551499949139722679274605034587494377551280359601930897610731633320901276405582997205708020917337952755387355099327079228859644028151963409179744408748031926153312794194696841486841484302402748593495823619649754741040624541126077644276927987252376037339026743116259423940706612462742653150265225207386452077031736109054021831015748853659274124464885180496359962875788032783877859485496740636443902225087479346245526188384158319865233658820862408433265554409695428895869537400654914422711614747886346628694229409646561178296317456695081530472715636844076347382989749698982959937402131333874006704012121315205190987834665129003939016392947562349839131538685905264996837608837908629882072419886036717537397737945226312458673083225100377683024211148550178219539248446742122670995368963185525281214484789625519778931584387819474773627272878456500148767638650379542635411248209378347727373565625898368247476247629835275948052054802202654978496522254947034900952736115372761214845742463744078567077914144984490065312063322509205786961207353326053800631041209346705658269215162753325940383628110970354217524138021413588559305524920433659099130089581921179094282552305042497483973413100006418408298616272171412359617114622438539097443287780600702501681203085796945286817521110728473443026174276967472532015169927753700770956757519133042463513477266829779811169885536694325069720483925805774887803457996129312787860971487556032108722947510998526639718680194529239702881414672882918928681637790710550660514420942582966076641764076504329229320212094316561368614920375169956962641957550306282388150455092376240474639786301627623706052851908748337751905369814175809676253592409147259997797149710259073848344751117696994772536107709347534156350562841766074043898259042116848529623260275144723184558027009493049628221200775836945300019376271746666124233949383458724713562756270698399535542380475346686083247169260015217537279166283724022975270075534193241495382666370692209496688410526497373315089675766258008921848105472115668011187980813939436173169182030181075419454786048404675008486611302874560669368056271643390147522634576835010816447369351379171572176607317389436926022330519987928464661934383636672506370960767816558386191680517076309099078067219669802097175398283110433339756298007525943136195822065190121522662515968544535441310014816599526129290996604058335305096668606818954579014714567299228341162708139657650523559171618236629987988167551942471774567905302998800281555185817136292147202851465205247628462407970612369916893122237028029308446389869761746239112296244115756992949131621225846839407868242421944891273562321184739922081691365111813175372768785518798741088298233308547566355779979447035495008606804868228208264534401210457587385766684483307182670482336929394589017806298090358795773013879079069099711301782011975205554279142720096691930326940939936573998726641045369664489675733805770987219069968756650741855123765530856133459382896788738716231202041392440331011762222430861611694623210073301128892896541269786766814307017659984818584796399028773834135534901365221861440653073996828354719012653374407988259778002523914587771421267696158775107950801963597715333580203921817431588635716562763442702093358546371903001693072506224527934501113051275206418752515462649410171885849476028486841664385104072311199545560022880911026531700115981929282737136630356614348075595778824691619787632390014831599334896961273839457282257282407863324964148511156587297230262688995726699260558382453636567003596340505021921619857616467506787475839504483040639622485886064348469804850402727098396998448487587134642781483000077328889231174535323619459948169716662716334271824998912866999198178734297008356984400707495555642014776212553281015066816404932811721401187308027377309142930386680094015309932019463522045645354780590106070893653987002463420939804476397823056021599136849783910902198065648221338724232227765060514815274963839259019119809479297779648636808168300585586778755918022644826186610570698643801697168178525613220785402349732802771266778521857103738699654577784724340549469410738762041700906667595862148457267542094728226224770421444002981175780090307332348949523224383522413869575728122171809480993216068499893220758739779645022410454922568918616545502302709202679282024852667172699280594171622858614349165054404516961656406942151432132300827696076021074614813623324350390561752986014273989336240165481331002687159346866549528915952932621283780682888849805859862302874477059063028776411723324693022913774753445914446444587929104097142513379166501806752702604773530511911345383675639794073465377119561162750048153764367776433256880115013969892074471224093547528330200835375468583730655028808034610708569524884458463539097566827900925395752000961388915102328014752151580732344528880352753328965643327635488381147016251006361374648098101225662840659822162045286987302266920355521010878811887069753650995159771706069799945079486019709099554922938952511079221595127304174681289134184488834727858453713453805699634361789010013164635514062641367380529595995013572584878608865235921963753624312886221791635994488300888020423718739733320029149847035538230364669194840482510726834547514982963583976821494278713720432591707210429132684789086671488684385774430881327741440261283725697279223722875088875799796173319106946895887734784966038395096168866251734521453755143310103553968917379559528976042558458246920219180129433012904869365059351923855627593067402831409235596898760284386110050183715868559205125093567207062654362380521468385123666794539729383107862470166462250303284929347925617681223632852915556318016818346874842529206120045906396425851757344667241037033522346055463397181926620175697496549088809465618225136420218599425384026350696978228312678024673824049737709788608306563419400221853178450369849083043501657557719778036008527096451902552373236812692471730151334173635550481075042650227030326763956096733899316657749843838765586194711750933998365809871257627608180111670276631497404341819175508060092642349693757945696259167445086651614435532424017461900708069717876538195569719411957749570221829366755899164699719091073591427191809634145381662022286910720128201875679077839125043347186664291180950270728143251637077829948282680907431304635146054232525578126043007797768659572878512559413901661529658192961085157902441164359305887284998143439734651840039907905019992752178731269732895681808469549004150920218487443706315602080965494098093543532276803991823554332399139383119070396540094630031736232009897318047632567780218698095251988106519404929981054818556970871364435158903140201121654856161889438415272469226226233752746336976288969049988526409021490826362329951936501648349349843035685084832280183408210413746122623206040257215031075137775292942007454880160973595698855935682672220882891103308863526973614853685375793694132376115418663330325576149361876443822483090453285724307879308653046230845752251406991901546635784607598573549037944869116417789834509155400406243130832195123665846095180291742158656351280773388783116129324571634595707381443743424922693699109495643139250542606050007755806829980081058476507952069910130561559089556093143616126828458334941079002362046249843484674645123484534109911491050544849418326330823990030843145801322890166177425296708281520928582166065644937147065441324713506863764563357554445287617190905076110529687642381578389309968864702305336875041574255089588909430754317216485881339996628007401709972373577215946275972460148753961710855484924848495152431523380594722305721333244917730653838518204818454818190378376499263712197200583992585574845048770300144817958209889549662349240796816340887749464260649310538090030111875879108422504394391656852027826638414773535464134968443503242789756670095734707372709967860364725065779692259234315720401293766661861817302113310307745052710793865732231071765325700034652387865790755609346469771837677898192024121525326620268731270902226993369793156713481833906570938413000843850399249457206244972993604096055113559654373326564289321589774555867198499597923533321119152452977569161678561061412141263223854627622685541600283483206814732389179393203963535962575929128437945607050366200133551405894440178090724357641689147837166439749576319587491057418182700666250010573493216899505507843920298195322814293689943506745365681361268631836408695662034787897235719301165927641079493002183422565357981525256190532204039728710054691995585871451407325043621499058658470003431515719693786545233144776137559149417125424874970827197914317867438681162422521183885076489859092296568125172564842240769975801949889714687286024401569217286258408231194489373174201376899984355729182260682369234643144382142512664482594101283928607996585865343880273973099089280203977526860482399738172631056649858063967666190827210245452075547313318094019547825044232313654876342138660988007223713346358827303908408495483251085501432535587419362737647852159615527234149535674604685092837960235547632447593733298390922884788557896883114370852858994474396497978927122741792279566938558707683574023650492997313799257669928613117613456895710929056865654258234053671374359138147874759410750097908589453698908767152966168792758831939818632792817282711053657968265654362196713122009636940952372728429808578695457289987031241535142145142090635247378646413619458431171824205493707454287603504944408817836582341323349547382486078103920235550794805265577977338018591376088496777606640354293962821337215007793715793039792868112450950676795750597245998789597172906395800868153221643169665040519732264025086898574727379477966419305403259956421714345071981704040966440000317771309104348275603263084739275980862752603516247123111841666200873611828976618938637533435784213829903474625566204547225025925170392394822520628571711710598249791344245101798220853406711113327978094695199606385932207495455633796763345550821255610055931558921272748180383677871872564114834739281004362313838663826927531909394724162690842439180641377910479987213716606305946995650551461195217024182094056559865599237763958422672762216969024261066254750940034531792074533476271168225801137946452656139283983644152674350713090430374955771224832593466481543831349286402635012166638787450931008215946422429000962107824723720039951767813218614900817117724344243340327832301862904524971687418495907169762958403859393956825349283137020735670678182126016108219900962879272612348060407175855203945056243316599331172913494043083618800694853668121603665622509509314091108152599372908713791074891761036994355797324247636769225277132767759310857599349458744778437278085714687055856736392575577084898883530968865098128256633030203241487678207618121030012130196982282318496111434025612936877985834184446663593591570145804679193440731185286581004781515687423204155692492996316638134081452206268681857271235836373798759225753065862321364800581549475618094180434453295187809498890132767423829881470642149474990808036925711103087959186427479736111449730569811014839758320650999491705609391224861418038356334445882534006195856202524581233688913880072104451573994542442051842615100677240296151329370459823136045381035598218448593308158473704764855766085513385215912954634792284270277322702582113400784902190930382624917674908100685202041800283891438537688736882966152462079092160572404730445979673125699106237925911713992896169870668343565782609400251737304993939722731316530554034765102491581262722468487919554941690671970881632922805071129192943371418921007286719033967943110383603640028119047110849659645052786195477388900459540425332129648520105048542923685920129962587800274403765401755790782069376574824400857710596109112930553310240500366521451952851576019994350800341241450171311135675470370934999860907591849583725741347183143889372209465455141373324352111418985111862869136233486735399531964927621078457450684550781744921385354914117094360456129142134697167550968907345345789427335883215625913020320189340512579346211065488815802772632115940470174231840581761514148028261511042436202211052649616573584576977594354890591945435592393568942314801161737300746606102227646255476822718431419291770425029947236110804914035254626747751658956393932727289037886004216937433431181870953543584486939199460441456087650430391629176068616705660065559403033487159314818666911742097960104431651872689510574774712295135127865714521021644370257812231280347102932517247810856612784083607396629922319147916021431819572296039257124260764273907987174943879127470346619075819287038114298262629072594644567526556851410287865393000427178389940571048214657133626715219467168684239289795449552736541095636747492536746877435143135315245397704652677673322613705850839298422604249415804863171114305829051357524369667862723520904251077162188429339093499409668956331415425013051698873592094908016646642686961140863748607385082750390020850082297614714838661535004166493097020283654142057371841809299082436221733000057772012549662358755470996302658824567733261234524518553155010313370222626112822947344131351013776853014232990147316561429949874008720934900645978785130435252842631983543948866567025675532421407912414904699916139666378915989769218464815217710930539196994501373036587172863376733885663356479863741589531851221578228343051938364584475983767002673201501431376858022754803329971107335684716708220877897189709307893057417306176627601134927208463327599167640752191605330458825477552720816985230853877521169544953941404919158151604120305664986903770118552668350763915847300990382331738353196684689767685093616040779697440912625309305357736941325320964630474006472768578466450412635742993006745422990913467619743241100680512251299355546575671493951991676978224717514633132625727900330024864301632243201002992783933178136556486107366617642916272540909147297599823230903381624372476181401646477475826527101101215328378175108047029688068804311547040756944448982012091927189311982533630647276229871365477179191460684680772317513892234846571100705634711385473869327564363805984052784536719419297711955610933773243438489076535583725967483312223675169965711225962794787790782412045709748650792757793718959845240439312998043283498529553086207801631940705204051109760153204923167953786004061962245644318901443552108791209511350878569061018425206503388928646975686431982120631232946485172921051048898390688823585517714245322259548955605359374647582010957571623059869997556927836258630446627474928495926359987732934838522558700169265585128996791331741713718115051928853808591325642684942179347012318285149784492227906149410406155117086493591309331574352306033631335731809484834382164468642546645326643461281156171339977188385701157747686131971394035578490535030074951949065975913992247692562865634990536866271457614478771560012328143683087096271185349106197342326817740173604735287975655022438144775429007983565379820308699021682211364548136857093806537318270942718939963391552846536613436949731607282861585999377254112973354086463794834886068712004132938210079045625696236588505267117113279717492048244351167241217732336020290660296773498249537765996128135963571231213443518589383087131411882529889607107145258136661297035346113328134227326644017035449738811235034212199142833497811466928211833028654899794245327187824265194034169752669224351929900341671506814074482607680061606891560540028399344056551473338118138549454176931490340032853576048428204407428058862720934892285943344235007849202492568530890992819256570373236606018392723729848406757639455477849093929677696749681421508489019237514462512155791690844224472689634266193685511666805056770731200838328283975744043577253636459233064843299227800408935874554929950408504685216737663970155826169624732974362834033986638480456819429168841836587271062399238446280652203463831741026882433335948908227002138441862259175533924846285633759947928980393525468186625639753319984978714140633695926080015777415163948539618132805745402022337309682347421257860219849153859093065851991458743185210373913800500351510132802917253840752620477077458483083622896039223862111664894960899042725162834196811762388870310715466260607386628817845685365860907912595381241890240504314824536988064655303353667424066123988569734330160672360460368966863724257123532377886877394312615615192370276448280163368932137806046065577680838061047614608437370490948630636716709562842614654145572143743645897844189735323837246885529912593048263976038018715667826803440238641899796683877946478556121296014160679541972793914168395036572741884212487489683301292259988208218597469990024176542554888920847074451017144417478315322692227409811458742397703333286072551585881546016021567041898096899598596559472426868071593571933810233569357008477242967203305916397162532763355415995177835270072228405567085660464300114303515685612083149504597862994514700349661166370165662932616572056052567938526122004937569126959253173733249856739974250827464064302432086311278468111556711314629072886076038441296330153297036656678780343993495430375363683480607375577716495823459799020760328981253831968016681823169268681046496666555676401498334275584108045644382557474518370424169449612207793895526843078341803627003683850910604019436196711256029080510469158171705776093669336275202241037807880483587539883120787419751058284019825042615896672987776828431494010094695709544122227889464815417130266522343817629186873612825249432091050641552762289483964742239976463949590010742809375833173374661752684606594604109370985542018388795569028881929633942376626429019182470558938731995894108636726789798842527697393706952829093079386642577646179711226261681090013116054863712640421947978603980850745929489971457138384129368040717047678948753913758532396052262394849877450492088034334875225072173334683691929492606428418323096509206297573634194598044480353550438810213834348474472176504402132055132641656163361090995459191754226757295713476063324112260340651586683533832089936300010475553096840158597653449122534353340130220161851123482644527184323493995795179013616104326179801279358152713762273158395268755865096664948391850518809338658267764571900512245315226165642980200004942618559184713511270640740891226942803316707955040661458846226214247343168495369199672322246113196120872914536079668797097829762675930173024083146392328823488967215583214470968230105112371990301069326725073979823724702702811932973699753732882268756621616470079076543890645190230964716746297675770452339972619674012047300022416178409834187245166793786258401083029508758717178904000734897240403892775230002120256255609041058582498132560498103894501178414056094970337624090102645546250286828873130073607521223248505779293945402623611755306940292532541249016480244025548999028816193293154050012503373002948054200349744389713956018831494080121710635579201407324972588888671892316694540211362414922195879760953126989222465986219793340456032619948219695466577782983381319588152384326426063184006905292918012095504877776247265953991282115020868598962253266808097292984523073229953349841863544908688151168783009371731180648391482174490437529589613688067770972479015730807720666620691025823143084696772697173218966952023951377474383631113625251664899157250105568566473689273690321861320031404617814497078789989296372712529601897792976133420734508327931643655568747926585289517903166590023361440366785240025072746827027990208656844720662962079591972794745130222839445106228627163783785073510580878514064885008323800911899723666511420534290950078417599697462421975773032412882059516285100334021293831172388564030560055653433060764703247906761845995926394106546746013214272848521562672224345506893109929579155266310073086312917731188084812813415215397414920813298014031448105733236659439002844780688001376154896657870537597358044502015595044212568744382003032908287731467030988904117145034135202251167057732307085918628325875384835304026119660074499566821308331880096928140270367315175210630189346859102743786867487894254121951651738750344850431339844074006053433584569790404065264361193696416281029627727894676083976752625697539812434436084678761129852232247498701368768943567285184160787138842254650275268173785704686802820035924403348201292733743165176957523044150631569854861166365395648382305916977343740198458923298703712165093957267695025501509653751577688676157899702723950397482251883309431688857637386432018189636228415142568292034275561556902697223708192109018793837411961608920753059754919520483733578316534988825751400314573027300613224736397452419017866198877654423865443371530652683457327716614466804646588755892896004199090501584198710392109539039012271502794083220979215240864437130780683402213215909751139982744525487716626746932199777289324179496589390966136997154870472392373353320287259808695380552776976550703141883823962408650558766848317300135019134699219452799951368799874307956472825199148390201005677280962124030614497954447278409588287160693559140415947395319497498734313071025679806200596399693439308044369199769755892396671187144469876542406860708066309250216153468800995770245178758524461111027880946409327650762010184243061377195304031017750187328889284088598217739703806112176001785705928997899979543185442417831228878618150794005641552054446692787484183976675815121371733524160104134212965692068433207066677187291169424086617321426493974144514049591190941808196012280360123628953998918849406429730709824692019618733432249393820446365546313009603885018533938225879630127615444141642654987022515220057478403496221894694095138494216494953125007216809323836787104953372896752256755501574574596705259517295412780777136755947005965305613044998491263036721337736495980227115483108187218247769604409913306987950131830965008245128839239750658572437037781691317988913943474935983271109712537235866445431081762831632207432228715518242524634852678576511787012139417801710668249881989219818007579830103085032110234623312026764145830411714544454738350444048119041516888363336487472156620414069685068085939834043801646955174339572577560014750072362869071163112596111440688205528045477329255762902142635131239664660766033210332199741111969791194101392324102154977323435393810849722930657150861015526644270990712002014083129916240676700109150892579534064646196773538358798384393405247981725149470368793111588042412048214955843647705325971844614544021833358302310377406654092070097716229657097150692862626738621581154603156506675913400399211072151925983535241845852222831932388791934612667642741598490430146534180780228538835647144063801268271348786636085531832177361932438058842299651154467949190778134521113359677629133120029108887907549537056326158886619500265025712872993003909234890115309039385054176270691751651957809448570375912756835467805290367983761461270496418511632329809646033046985001454383925581978592981906770988937168496946790522129713071072445216746610095665945844267051313965708653982386623439187134279381616551926463560440879091940605383917696749742863832113176433479125012324251506969588687675891409343069347886509998159224740547019168337119341946182993665962856622456587713651431434132539709235859874506467441911867817783844245411382118103989146985262146235739613607088913452580157018488323208954398464260891339384295299513529075305417218279785753103041374716650116034047823611925786749985156989183919890794500184875264478911333318606460268861944637642540561970597367343910370161571272974327413336011306159692998280333917033356750704002145272402127994280048269518876723999347494600336448606785361783134321474691649089671670929108553748900829013045752011981296865709951697568828305620817569861363751253551027268971358686284477667981780694535691393517192253448440394791081315150727045343590439323931751414671324493118553691900658629345849110172486975323245028216609809068611102816254321121521742298276741285480233714090752602791038448503194646815668619585755189163474290314754820825499224042319381681394175075953385450798753955906528981611277100119156462380511057513674787942907222986855131640660622432262950588478354411492957880373729808391820161789481157880000408460183147035432936453120454000032816991129962301979877519851225321088931153408981046606484170691445967632403181207293409201174770490388417639481929392135187521128536127558929176564709924830624099766419993286030840996097203108791730312230217953819804289132145205810549427456983200133032902821189889620688085198294813599974300833188869295781069397598689399579825694744647909358433054162070477552552022201509629303946838510613961368118454674767767486834312472695162775847862521195223119985750248124984625444339737227300625202697617265958048943729648339335815205187194695589229370057644710926341084398388464334591535915328472766022316510397589295997244330000494892714368413974985220571209264331729191435115701393642954428589921578067022693265075048213659426250569420748876076063292101772366911911501932207699599716359435275030839301304228628803897520460179712547170330859142189532814284227604316817735141831505212211203901708563463660048842320743499707769181063145813802728313747806194538269127590865660180001144543856345234006301958173179357433592634626910383226400180334811768904530528061166876493930737893455727900935013274724850482248162165170637210199968126185033479619899566660992498813761222330223139955207133114530289601639016604409408765911434010391538409636759281982486780493807836009010937240429592298992324672712574259901667553826791773238619213803536468933257169529447511482482213521677264597659143306564372860814499486537278829463005290845970864087532734437063174480045014042842512770061724493383877867925292119442210937433844611318161156596293170681672673347959715070825490774509646019250628885769288303943087794493448608725277155206782217312815448104978746092194993335276319512969516517625206888114270958448592392583428279686065775281898582372984340223051627721059570032426359946797316282215909074661392837736176862428869254494870849750624407253157401556495616478119401411729737065269607642451331578618287704562584433797582135575998454019343547416382936283899559233195315504195471274111917421322092604285845770160991619315499841319239335474903753455428823036596446083262136677868307547590852071183917942910263218549533289477085880019092768239496451431045556371130293678765014937145932273878110673918574965511890709226560313754272206952951269400632534888444679259805256860055607060283488642623747314695247503398164527816881943038930726237068661374146326096352320579034074359800798942054080095585046216660092999020471101234606472739298788703622518776768843503218153799998237384236376811286075428559571057067910723986729764892685398213616704282308185420110637489860104827734909520892093701571044475910921666418559812406888455425592082482851291853297865372123279204600090017694201219321893945908430721190634380653926995681389757156286642328067742970876470006162531783509758766894517389064207314705834028930906414990015690082903054152108211005355702419450679321953486277201323609866732283530345897580402484187262788493587065395214017704982915691863918292996969189181277825998722041055856843673816026493820383475136359206629199265473053844247451350766783758996777652353060787064153834779209118323207904163355764517465134133667924064084959763474742841307718758282114426318786644528873507880928011665621223075558644628787695131913786311472641461747779500222777100846497020640369082193093167868501676292975889718650533585715336656827748270598732039104679108497664450830925193504889469289359709567054182838050233322151103735834118998783067975741321810328548211025483077472312518154301134681937353788765556571290019166337442984955494450623905166482157820681533600619743206214797112604368695950163392521804331172269543952197726522175667414270328605782542017772794253727232643480055864713960107177090482534273985643318100759689151342773022111067044163399982334357252409619074874349124074891611526713668036871183518529185652889458565914774396842420254585873124948966104398404476987367457249560178540443589396396530702099762747462918674514915890343278516172624696286264623081004375959314053885721919604612466773265041565154779016242981188689906663025485217783890168141229745869132855849427081593165910383027341125851817954760439420328013767411115428151714979620071707797573631563488724073878910409395080041288811875568528996181067481920199494202583386223352670564964585090883912572470034239735124553530171581403209627461952251237676880813607219919022771893163489792523708475659756971408038894641328612575491205692591570004225994327012491045390181693955981893425867370986892390917931947213968141676468237082414708936107905491898233158113397295851839698841465155970817138430582904079063778805289884784876973013590606662755659304280953016095979863807617333013226145246003467729904059669152913271689104473528893743193329890317016137315907286557355135543646842817137076940415943940789381705130959133494168357269559250073315818325397205088514285822359624337465997795681580526946168722054822585079800738495318403534941221084914607245911135467281453126218229166201836144632761050624937202051446497369124391986722479923870121479622065233117229194878889362719650734406512127102204560957747500012321518103166853467639667805557249913404717146890806734753436781673303915141971390427843509659744219109383466228765501799120573699390968909707476721576081261720517495855584827055634175652587289087144247785022972472891307373476886361541617934301729311847614990052278589213392977736890353756407609521277693507193947634431653173282141083387867493079950189844912610155578632845108636452657599272144892565707704295377406888787186686360496463644755233221954524855530948014814927708976555068137110103100038735495853926084859609163099048277281879773789186337038591483138688596494855955619077393131859296701355388837496354730601431881301260692875816808155037589484903709916099313305137740246835975222644721830235659254986225548636855282639386200494911133429757897249807085792878699871054511778076461519470608640057919446166131347006456863588726002179898639669137436224554851954364747361841801605790397354123108470403292167904329983957523166109346122704809903397611098457832105524088609116928168464791572375068067774572340190790287559651173966486145948049390089524724359931885603637108012592297850366775019850402732754215666758568200582426783336666083040270445187133616957814834552078078001552993299753925266724913175101366661541289316082291512673919969520389338637451606607097165820346858759359500987756657056331603249293932285673225658809282545830853427523399352062862357713926461722014219532268205734978023337165445837139850573416666720367715688335171052596742601615558699572106286060898475569710278115890750586685594264164497240580747266649168486693427734090244715383459470734435273094745134134268442334979135133881478516316241644619314199509175597409292753547369596000910023683567119769697827383221026233781268908227402499764498306021740839038293540646005109975183448381301253198605080605716651894457337672282659348536365517160608841336112386786479523513896189299150677274888978938117972358320155943099858661975019980823096836311868570647151862628232867798762616750403157528252076211856612871542289649505185625826456379988526283205998204373101175225035447906418858201928892990346816026914777122330217509352339295229923697086139444693999345110160201486503097205238267754802371706209937467809420973042815101025390353745661227733458052396761314004390814581500216109782320024574551558864791571115581323712124199778067944062447006116058421958151165103768110621252914879209180880923631971326249753523351648717130524494014980618837350592046118100082077211423956415494007777607354390069527959618091189001106223812168884555758398915816126897472835161737718255953319167748815361716002256244192412973522282556492825457642515304558233381938169838775945608565434883787535847801169340064251679264477352886790324661651957887856147260500369304860544926315101030834653701343143786626088428329297162116012705893637467301903221871012735095803931070714624339076841155461985585160968398783404468130056679713864707726402281453648004718158751990654069639098050043571843548601970370607846340106629545222931032086408239311562400571007277517677191053896850574856465875424183850188158879886561270396819110967481753882785981321527447487365736934554363079204893189613257201532737828966091474818002875903500088103132013012061503386128538938031135692623444830508189347750021200136790716156095899133882618795918978142773466996197856631365021006309938819908228147053395232066000961658367561465236153715874730772441057464006388274399529331491356032438069972289878625979850318681460591341895838010319925897316812304403090563520291380245923879636879033084136756514466098679870243422704940452786876821013183297132954009794603010946058515663291892883965499340806329963772640838907888577979357291145633938668473209543270342015263641973898284327480570359366739257922981168183867940685490799110051407276068081892520035168715632331520132425536377488430040583305405186576183704579048224642277095756236874251857306077176013267413707995677404912905914521099968830408571652222337465157036613272745705296987258108464899968158986192611921967292088720641089314662892971900913729876937556337850223788254947038981660518232093188502723535387652706029893992534148033311764781810434070964017553542757832165594637951567805123940030967079574644288478222729219890222635415798217912626763031737344350717926714285665759178662991011619973915082446552765515370371599143912612664229138840158985583866113554234357945238180052111142152879131612170559398239494092361024258189467410913872671871965443613607234100503052403163157512222440688034913748359201640270355597539220049991615632563100222218348888144348011348247022856049473854860191382830127743352334723040411207011147521222286392786394961353106121098363317642491548560140643145639372127926272426911677930727808169154628985736146280784039474119920561781194346659349945668701658865305214954855755206381830016828042739158343384827255439387843769654773509719046958126410207375632289726533550549662543537377087869808298528170824621985910067028197476303483925868727182828855267544684152955605641070634337856509525330874613667569735344150192714294516481397512141755788378554785848619429794358212155797821651060588729598939544527643377001743151416724845200447986510034945468933725533826623082641731715107372388193115608103945957651206818662612749323619952192887104888208713155607222791707280009300720782423539122345487948684405088753707339626468589992027085993312299623129702399720473660664076125273411687886343306492280693929022168902654287030802215953329006369871291605203316007665481313826065566334843073350081707497470945246041204630981178181444550369511331795295994524284830274087212538241776226434768506316316590639196626054698247743921812116851215390407652883173964875517564003044649058137413002109598694728835156859928536872302958147355841237128365830965906528490542870589131555432854612986521704361855628391615967268421393067439884096363104782607776487818201954795796363889989687513334161421634904379152425674534527711897326695470584152367509469402376014475961295187639265047731371289648386474162888556863901026219016803630852295976053362016393637740527737598499633249021524374058583666724966484530083880298848255761624501973761637917959612284741501750086815642481134701271732080010845818616092327837321977793274967885361086694018773617739464946483156010411375960719090651645893185732407269734359008200953077435163437950796378182758679571853029848539830240505792092474848872919429185422925502612044668733331624392536027102178942409297867348328246910026487681732757331420018377895444855459842739292065560650489001255242763977801215906180804486089004927037393284804933138675134241407193167970171556961390128571423762894013840566929673694299326647850681355253516010561045668794882610876425373890446161094501903627133027710182384473516178846480889608918522083782600939180778897123362723232890895728845646712810127305191400873102403043379615702208447132221755719185702078831869679044045659421838656146888537357487685450612336224715087708900901355640726974986183133102935335175716464155677623935886003584905093458592591922754863212828647391971442188161160130542999996139348046749623697851817838098555477103293911878638254628230253220220093220123848065830656267007660482820712738448009183805155656607328457402410509954784573013248324009150480857880741162673420923110724411874927613084117697529621146701612238196301374704541622712775050723351084013009494483883689250394940789913143923134645869246163222859434718028105036327651519862720410992305525259492705648049739394974146663989151706605692986456582782773500248391512479260475629642654063789951009204408927858373047219599834075366770022630643427054766835915458597299721715400190017833998532392848007992926982637556121103496422352952987701061354428157126953897369896274398620839743914999811200342606443754232727484161517157479896306967347392790655871549473547934686272042793790341074112615252037919377499517584825099321787786441827183686635021112603038276991603741719090095068863574903185535576029881777055872041736814398447228777234731529917351471031811516306702255977892721835938336895891074277660670711012174784197737443555836273972709280452586220074627516944959770767191906413001653358433039345364710894286816721629548501245756452259880189194847661991767396273228950700962876732583557257857700729138309446339524145807476697062966485636077846920427014379151282263523313999986551226264878586978083677810651395395621005637042819084996555315260613351748143620590969615197972503067525044764922575049376244384833657204733647056381344023952649243811899592542560758410525300681509754712641682958042772954699095099160113538579796946784237457411630276357446945384997590060059071750188292012377133443414316617353062088270658465013854620321951341510759683358735628097415564249160495507015688680181415107238073948960230021329317609343192138332657432839271500195099494427608954663235794731196542335399379673897939709377843899341566958882251894656851605743343168214589300754942791000143947242721247337453354763329635808587008605749527794641493636869428735523684077998284294574873305962953793749754761339095066954217099178462636333638403616525138244691183104644488435586000021792043353378952484848504521113065358930542363093379231847713362176756962157957178563505394968661347024023445423996383054280860076447646599106121078910664103962383927240645895158003168786849917202809361943187893125604167820923713089009192008863649888057387614883599538916514439643156419351411086387887037092100456785280263627854734627766014817421202417046698748377787261818345086717363835495440965384135150173714428670278048094203519933740090660402448871116159334655391458844400471048916903754428346087669454209930689257317137790153414218025851736166547566929692536174025738496300883659498585965512671143559136723139790704501933448128030780934822306332599122526515517522182442856762387166142602641678879482515325044480322826618764168995000995268776791980606995366942945472337779068944238883857223583514035545919789995175846885964924032573559458670623168336542215408487099383807432659244633406955315262225094964348050079366621801956565143842827262621302052085085757795373654036749769784754757092244932732495097621782332971114894595065655173766878375926019825327269301859814670762931928503648978105566412518458364028667470676473485100722957010492786121565319645249697803779635725395264036320202208592369238152521012099619962218776734013633851826016017133954071856477327636919450504306280329314598059282512417012438363837195769319763493522075797821113132821450531708061753493500091436559882322369555801204621232245821266179044860682983412860306152266684076473145994900178742777380787127402302425086137042819634320315068440429318718228090227658613147295084790715056624073521599324854841613791727119822234826441624235791089996874523797339761300104283603438420555038885156477065883623165624109580824693949378317384015713466628932120706362692208615084324280600331697380825986544797621351747091780975328898401821866700320078903582563624339509748420037823160573282207695141157340412515540845117220118080982180548448896206587514692848384480436362169969785204290473057986664319693649394708922030118104303090378960837900507555038258812572726167204393145892649496569288944668458078670555148517641814635908784007116137677288968479008115710253875288251229039811926595057793159201138399571384321005630558655637513770878292837572872779900305815833682812968404835661941877676474919040230697639660626483569082921892120363956054991228861511399362462974820951871003114856158858445699220817812386342590945985210707917264058457289321563627901672199500161065340238801906339855247842314215509562422362605857148994161397201274483164896829895238318385414536613824601055489973655151615388260550704746473660003325653691167162647244192962122581347994171515271536696727911425620530971345477467590868651588345135395121650945542805916896007153935915092172050025676840522701873159422161831946410316329990070588727520887137127880905308724754367779511672163056131997620338343475099346598902323332075731757400937525688982038150940415808016183770149700314633977810238935713532512382225564396601378118107227661428529747765627012100159759772048045986313604400048634183183361046506899275866168986320638713897001385552648344612758484643570305928320572125354676618162320005449976175273970056945017049757032293704736388248704219994267936717931316017803783195575378909441822450676473543335979998268758639505518412285636312860572438543859154383903976987614428708743376754383369138172048252404480753231640170666259286013417661842147092550282422667098947170051685803069631863466068073668532495960126207839271045678895743464861426707720425480428891627728993879143392942803865637025645331310254998972957162676494279511780617481015569642460160214991390653635186112070370316271188254429497050434196243832487100782437288092053565200598393704835844565480526312647363859191451908780130525943569695382514870618830515453935445178786494848983469385441667138674690579267818260056947220798011893799581448985377301185497635838984944385064326526673258761338693939848271193986021817701479279541743678180556581829129881444439131924747449751251411533723005209845739343589429099837659905539780999418549514846123756179558459889904085823781489333998477707549093109291547091757168642746062895546320065706866252816536667383736446550005033221601834871945694372370943409780352888723380986867798346827725918843457080099578238169842394926433312292905617262800843078260350350994262154256872657536510403441058499467645151371800460920470217298953011536661210178221454419119119284172439716325922150223680703141422291918758297961153674639115164191247072232750780937434331563453874633621205562903409022465453390871455844844213553682622213952454881212425337317198275192220491440953847195760845054682141527908764469217455420288180001914529730168024958518617956614644795636717417412986808209263108031108381329527522958452953891586193589185643759835007426956196104038352620634694779869817118312577595441871593400181906814437000949720552624075915782575746920257540347806561949032945325577710803406745729317115969380777047066876436002911995337244305277812648790305813365868071240920864765452081179963295524545463392432507267671481886184019561579755100777267581154766934806597361613789410539079841770122573867988548862812724329628935093196061538347824361176939184262188728364984297609197869606960207550734089074028504246516074420134866639034349356228577731518715112003916369211082938134933631385977378144500743065657257796912475345747567973020963205903128660769035851829198684709520565031940717049349009767441396605262443462176052817308844752727270560806348386128094675498583782025764988476476265430954513874597022947558538311808479809976578637820967449635412885113118774884141722623395135631842828860350849959050210202029371253424592559236822057405710919040934452989743155343471630394766548140601934492141969521889974852722635454768481735588909358145496063286547201400720481560729232058911021930531142343591703239703472376156712014497886561190588845347602349629492245746350040656001519244679158348150958030088892768151936834202265166361474220476747280076699492283371510491350302751321926890646953828029821610402433061566057791140535194148803662225492910367793456449618243035569721068057612241110042959387837872595632924272066499372524758251117078988489673088961365742611707993399426463656417385173962760713181588297569050005415966659229432659602489412682820234016301699691217200839277915827524171414590768227119946705167414238600548481549706225983017292385070161558237091785365165685699167214030278431883049290378161878961427407705371052491227712521231767981273692490131644335211585779341167507245232181870212129601913274716443002528023185133038667601666320241146315506541901340857613584780181352766473879503869841454600890303781476678644672931700857938710887402959932116043450920876003759594090723865237684430210961749523838783562092999134298855331832100620267961828964248869271428632223558678942044916593436644886528163232471712235082056270855242234662314147791122849188841423787148145256164545094879375839817202812174648171719092914329313528318185311702280206440255053858279609031659597772219947617012727036376010633601791133807908393876570677380133059012223124433423755076026071355568969003584902067917180032507298931955361384656508244485127100304102554920725986566089349917343028597113130194908564808801113214174885548484150792042195918912161827209516452305775511274015708939501468022253011669345078040993824487698084380731486954222079693984471155611160461030260845997452826159863994125158291941181651784518749940847364427231554179667466714256271754643602581328735635255065731967707422411839966183536561873452515760654761714385854364516459367735071332732033377458271659438263551029470823730160077418879863567792378268310876553281717606098575549625518239923045526567548661405721211320329602361479403390014155105632806677513845021586443711758141497633218172991173873615385473174587805821120060331303655226418578048551487621866347136296620548393525027411775867247912056514099764118397326173813407377916114805814835510933083198161325115545857380486797283160899412816332264562481382735945113460104734320750700844038050563881339091150062748123436772761768771923807473934169780285824427002240356509317589073943480991551866470520986533174047934732230734309603150143371315108965004915454682792651522075032408428909525783549393877152082915331865866314793911284346947969021865815343155708025598683761650272538569692204360461257039644987049519712403911098649681337898303452109759820092197215164002236831288023227582353038600641481621535399305395523711981261376034501290222940174646566352253889947777469996481139556784463535214965193365894356346897138498192058795878523559806089041342539326159061412231836968417016896682870444411904144069785135795022559779305746824811362339057147884798361777541994838675809726436893420611417023499799761387607755785626345402374342814633576786220232304339568986719863177050796627960724796998542363912828483240353217219246451351390280836042933265878241700108803538880483527150701765138776626795187883412748768721538478840948196502236633269337146445043862948927157563450725591800350043514368894623441155314044314372288345056978644540509005491880715522810719361338569549736374624875405271947891259078242975973884597164527025373540209009914171818804906061496530028390950135087684610955330261484507307457396489615449103269306516927066585752369467183971926379084814895246679834042816461980658297289065079271432517909836844481386452797845622496924984966601825592686024504182085381555835212842604732572184933141757884747450473632271577524415911195243687310591833433990557908184517809492999102991020787243990279138205374399366644429582762708371640147640120538001188748276904760791283443426106500682853620504193545960180902965242717815995887873241914213118806139779051250945241687789109216031963075786077090400006398846737028506345206929412153592239404185222535581116502865796973050800362809500744999616097160750625350539714305902305646662689684845484673807606217112150606616565670914145826421582873829482902667641847848275280913865275185943794023855668696358323912087800098940855781180924069834664812799564703218337338948856304219773852662690238311623492265472511800137418572264983972764310663024007516634121741779425601897764979250504386561103724370059125336714901666205221326680654149833362907210037126072907161584354860695215407781895195744478307598044141707902463360340274835089791462081937099909281994470647349289079812564384467770354367078243629412205001989969898909955643634380582147804584022734379382114606876866313972796366038118991160891680864127756965690515376362356913913912465488785315496132689558846617559240678203969754307873705468695003494566120505963847747534864908512040871141375571254982540844406457441819829624828261953156700084119993417200171449666045016382269393956228848661050924553608486216263270593578066821596436916389374679267920161419473421923220021222267385873267166318497026778765732357879766023598839304846730737102138196328245523440107556523533076557497022964297885211901385992691030576403389600180989264890043490907512252326577877240326738228063983140965623826399481621474544350978487795654669742982638450659904086029751946721367453445862342441816627120559116216036496877875145647938916128165224434868987665018087623185986518952110145131712544742758473774305671644284784712704765420960056345858982640050559280004834603694848835104699115351725754616784706042957104923524417822653511783336368180160636239077554552742522871042986433666601745897034142327087846866627520584073426543203547967455064836433805729570207872328315024645764788946000670893266671494458521202691193498702893969216274483046498504800763372701101169219836948563102741813400422188350474559259852366341551607689409982525165059647014078882510895816886600030849071001631676332717309382337561275398386765535651308696293506820504621729642150137394702018666627930348427977177347109874649445223436980405711752693871536882187270203776988834999984067248363954532266343980093782572080326739241893028778230484136065626820931098835214438267272575344647179434126507170230269678513504724474257427344204834525403567421512143508877949755358969766458481867183078902681731477127558007795927391841404186002631329986175907949109367279076073102860425700465290682094057881404854651133703321005236895334558452983378842967692190998916195240299947178365084333258220927984652668642255810513402861976521365859528554371938383098455887128188919856784719554462529411353341846335332176979687327588750406566611624794979398531311090077401758039260198909622279278208360788631843604215989646823051595445654268013394768525456297626895069069611577405891685166896830411241731347889598718134141078017658763043863629974770476954097821933092116479723525108455813521643839655865892782884343074083559260946637747705875596019378868467080880251636363212558581853084968793574809578547415543532164673179665131913441137508677367050318845210128072401466433746802130015611382238614469104758919901889150924098565376526863520839010106862623903401196238353776751491129907660523304986607330986587935820550434133966290632369532755077937762520124026709990358539849408734154076210908751582157147721026537557476725377205452649243922083184348238692157416985206283039918940996410958590642082514106179177936980080113791439705665999383594903568691067305245835701852947400398764620545679875869373408299503256072802869499456043797197506548820057139971539178333280903976626994019347365827117544142054990126338915715632896902983164196918902925217574434966160024909674813494107579840088095615113718449235341969824477642631034767834046597678322204333034303902389144495468410134540193791981201838738349273900623472443104152459664189331522431084770764380534317640509181042203870934490170138627764172909366655057413788870865344099556745240565999445034122514056726429430627548217906693195693191295194522692692754588262386658182987474669789400066469877322384372993841196902507470261083807093716151027643773411188660259993726409345611228460842286947386503688684909080785767745031927608862753200555322251598875533119476890936199659064345360965235259253865603891293721684164892759688498580727248560596473683676439883179751250391159670757069235596752096464386026779873552416564068777007961620326667033375459182505467262821024833425628864564529601031856830501463280363790175007689432450787279276285260545854407153008070133541405661503589305566155929764403257831910727167197106043675056859164062926436300990420438875836550211366042393979537937255217747599631343213288551796937244767866508502007188481714961452358121785950295659571756692630199268263286322395172531113525469779551301660682518374223290878629367834765409218115990583540549548810742613044817249564403020533169149035903920501952982693113227048424559621378773500678984967348807385801049564181382862571701982090786060706351728706562505002387611827259889754735205416443432054398411445739526371867994524285101830565107930379978516621148011335588573699634887500427490171648400086535638798984539288506371984099213463200805844067731439322956602128014905444255134571432749549318579289856693060275329345196927688664750155238402939540178903002416379529281447312362163877013943247849673202582494181362321472397177993542997218476301473381338264192347748724647413807991046854338789218630210831902257982313507055458906623579027069523486377989375822538856725542624031446254769551024717989137548445543042946878975520804472037869769996327536227316552223347798396751951627941726980705149820665481458621155377368485557330189460388505804811590468155458817811487227203850138262852824454399138792019056857693885123199870737940668903759484248035388544796010427709941787224294111883161488992357842349746950662820921448230749452221988366980326871621861726708658869834968716138052319368787346916355798712822521720833045880569679652299087960404923634481507717207547946441852476974036844803127253329602358273622657154189213263147881339742943447567788299794903360165444010856520144382932740677990486298414789148031833410221714806339951881346014088249206101988150317006608027407778561584118918145469766781405654011405945463364559594230140510228746114922792019011031343707434096563000165113644404973730774585633049212232872672866629261330790072556038312768966767377687587736730328252208450919394066271433702055971562065903695406891547461641117295296708764664219786866450619800335083135093601690913842654824674321300980422703160429277659537651384621164584297702933774903664934299606658512035900277422829319559797287669483982084308496504595501189568040775576963303915783910867035294488102711019554587181104189575116721058381065107945708789694609787123592990243944118766008538174269000545805698802722749785291380622455879355278285693371666641587930410312774245874314360016658858018487155862479097976742643766218503087760939243274659304595627579740412675491853070183719813466317375263407863286773532857529527035143288847914918434696313724645296474204458561321479341283471089632350786138116958946430460565037629948307735269748054130710292850132206463428282069368338499847176565399076375737030668573914565797004867919554299466725026615587278217180267887463075992323308421987546866815114676604723807002301242428692707778347458707222186028295169263976631879437177265585641313292252178898243481821325917153523579295323404048583688710743759581132922962873098139107516260843828325342471508024069249285051195423096011090964311121660018455476741166324659006698826166648970882337576594279219784232105907545468936369202598177872861035155490287936004318615214417437957770927781090724905782944224708008522294762573395152911329761973615013502297471328302520907778572566700388288215277593587214685863065215776188992866737131889356404015814865374191412048168069626460578663054052122063819286944864960310975781764700284732610490600917124265553908750211390624847536148171007161774285427819642698805850637511279040852062917014064942516964384442953484149093055757372152820109051834293770851844442306376236888869057834682875841836836603893923189977818248206262235623447279427531793312000505645015779074634878367871666411313327911976959680253168547905367740221987946860353390837636728628040559906769419390095854466098828974656401490035953791067360541690576386604355425837125934714858995566219105579207492481730573273685978969867187092284923505916477739389349179785406712627265612110553798327070460665176526478818503647843591820563897586511509904059169751159699179704275380560181141650183802561049534812303931664705196991822594766157556938541022033293441815294182675696577726408326189819312919822174668424036809907499953569087123287097452316556751469403009206531283414369750488677984240462802951644327390948185117240399950983386647742864583428608875440669148916350323367268318260094891336929757277290697583609375140189353242062710165658568415799081007296327009386574328528585430829293287018684440204101831345855611274604638925820882296555826658484281962394784478081193160554680391075674660540760131473882712088956531054796249815701752832920248782694694451324795239546484956670378084060652604673348661218671515573645350453281713101006728707543987881132324159083789036804516688398206391017553745281667793915643691827768480385892339601427708648973937523889337939213533472056207271430453566228849560485822485358155695750781045559641882165337002052153601589087323947362964507374926115364103568226629317123086650878290509009109274757888659888181097353678217505653776149402352569501395877749138271720129290482879951625999776576553942147461072656037316576418050477159889511392919320596728150009109702726765299187188813366692844624505891943941460859734885790035356035839434989776748043396234438559086873138333017718869680850741732210458918028412175072161313263170054393664185643195903911866030739818112743789371131419718982629511402655112374239408819703962062005267791615390335292426918666965211416834099012164016434627657170521620042966138915469938863977244385900145790587668625120069561922618165080190270195017961141912672161767603912596494075688623337146415784075683089411892098186717021392640861105434369200470406531983677653259936244319591615957233370784457180877346312208223221582437254761805372496518227745250461848786140701176503261976988760297508392437626202973352923704893476585359621028199199342519424174998118938617598493706149584475001060718719046100217853523779137536988588149084023192789742041048919250376693114578562655540832175087374316150957064413829215442198719783627843664342306139184495643475629762663720108452487747750288582875337038727022731743279035405759961203471790839900360157125040654516938303321073578688439719576661837032332677132301540388612363167977617851357962362423328595448700268028222721036386678972940683827402772974886439525232618899636658890556129079282787998432418473257958271421595500554280720611575544949318910438063064370107086836129386296559138764299188480994849667034268437902502806606945942565896750047129710781776477631158334299653875295134262855000299204241486016079763747534752929134655689486391657473657308480137591180023083640052659263529777683136569537853297420407811634378774949898466211603121363841337703188325448757414750427498406282082091324729215304088189424680275783770036332889340527734983856591618968913769371201396228114877002402674338574730382321414634018679373991960727404343778027451267495429955735019005768480504197575729058324902252223832021079439475994109722982157515531565102611931921093738797062763580405452565398929124979262980662312774124710596863305458901238532925842678973874316883400765005518075780460987225967404666958438535213191496360375676531321824101518885009431485143187159804598001782396243744899523333041232595646479818973064352873587180600365614058409385508274283296686193560284672692176339351379090982159749158321467556673692728737232329209784217478067396597238489415770357401294617010002832688921240179520819525912212670355325545885859074663530117514812274237157534638807315014056493457319516439826467203419702192900366541390438606817797723865392082724720679701311541413862483923073848773966013045769977246489046420290650658629010879277589346686551250605698162171586448652750221004675525101831764018851664112810153641161728225800422659225849762148227716837612212600795025960939814410366361153418816057756757292228258358772784822050656813801311364245978806367349170569758728473387730281412087690050183141233692311301160878696438933207710048784915694783310580704082825679811395823065095930544519040045050920595300554770189167343785626179373477849572444831801849826747282427616138528529161427192520294603929434178579978049289642001363943187260163089349015499078931573245923834671639893641508505415553686747784527897362044257382215183500874418366720499365953552001330129059903752725247709923490235916359440137637878061028513400395837148075286403434317112354942014575750820538673130630516263272431364161588767057936315159711579937473098759535251703999073270805421855325799985400439850949166237065205840052586554451437355835995346859586892919376196365326769183274623055647970078863505489946565596320073837981947331388879275813257039478475715386848086760197043886973626476346706678575499120330176281578402176527857865683477885496639316806445090120324512241708017828718162854193308609239035248011543438599641238802375035642174231340512629505873517655374804228980188540243933303413268557308050058598193089928999159338853680584164946464562981605074376352178436337907697631759729486474875269268799354266396723164646176112227855436681331869762059003764373894979758090516412332383175268736375184789847206399992102295088385260174363872656996165510229968561077150865289901190828690376461264992749555924242051782737920958239644216942851592160568537169676055636090827209018595005854852961600674701649728630571445125229006012192710372613124708538981919537621209172792844792404018438357264599989036398124791542323814327211350724893687441676403840546799159784406596989486629435993154984986418170798180831166430441581372494140351353620729871375581365218037608018820396997508939191397024698073334308922473281085446590661995556754140719064925215344994316559094464445652905644691744057750275591715711444360494913516985257744781703095104854154727940017251163635839897307872548978504661207906773991123297270940530204266640667823422982551153893701608743703667228253926791395115292426363610932571460187408218157973131134898411472434089410999188604953942686329299664904921377837707694579908436708295762256441321477078616364421963430635634066443058197108457552997113131425330453405105266438444365534800184686667043332647374119433552361214639336812039977676598786103329673054496777758438050852575775000714082669253319484051887071025285207806469933019223303356823134261024756736303038469460702746163822492460395858945855167172536582594896627264664352662275635808985284646427362194611594406744757957529173008766077356517467043139069551499075370959118690755988826127745078711452457290648269699477289841451979905327643030002584433358464391886162397788292663612052153958490157797650482948910560814014882989478590244008873672317600593938486262016880609016567790174441279002816906456047323169840137474186977079963783607868402842712991666207341286280590387440384483854986620479660430171576922083965656601869692006815557384780440204289342732186009582786295696841030893672217065494633010305390803670529749560926285281773007040555209230696306113290111251055876088813995454158032905273438358513129604267681975437568484097969809355111526549353215870729445970693511910261349002425703251529484960701945998612093358824385609534817984939077168577474271820756963752335219341175368075636651851917914074769862348111888919019444737196433772547740074346606218925508374770390637876929202622842468539006647403353700036686207709798996432478820072837236334335659950663778761308085785763927366512140248354145571076953475159402090857327215209753034728613520909116921999973478000294619056651557585560463613610676225728401223261233191794661173374122681647077998229831595639676901532415100075601251534010923039629939604627349341242998619151832309352756108526252238907273751612846659445789564034699004626818955307341610466848208105178917400728706856208057388455740871212569959343879813637657586372205143738611368675746948509208496997786590541013584848651384810799022467901102254499523391697555292807837743121798930449064070618015770987090946555946919770289751397263522893375618092387276501918574921048829987483906267860120415203982673604337809788169590348609857710543561407729573154995331767557627891094012280365000626832393321152783254171099032539399741387206619910655123454615146735107604370178034463171695590191253920160792315201559461310665603249072555214037633294049115949141814537601296919472382833171152202618585355865498972524864865181443456522518316976883732617024642819599925886372699915822481459794680242399798167396623395356315385379887775177741314990589234282934963704981520798204626825510279957749751316197553446403988749373806994925396355136881074779903131048259268000130350861531340311876387254946947434115171854297875021357646247770119728225588671360645723521225767922481270401193274286230474987978867102012039942859075825481092451075953863303734928471604028084073896904106375227826279036762304763746492395147119212562255991083534381315042618420999598917017492440153137466191651839995450089657171797243574368124635336521856600353239076170527619608567247582141437506435033045175581511099564449520801906699303134373843821298283008795110822504918654583868620369593509300001914812353051607168182997779698682946530013184164501700449527700799887683184655667367741495931904329743980422644715611865391600593626195417594842378570297543465200927144642170422474824234607272100765060940215112318295657597516464326442410812368849034994021544210589340532459204564139661856828299172182239568546656831439011798823593857634987910807920296801948240191400762823152268573872196309830743525652724635908953572363117728415764763546751980636467024173104879044856517730060945808625537393275141781573545085486465552523600322690922981370069770782784877881043375331363933151338199294424432845534434649193252702364134107299763184846644943261148911613832521200781859392043072980490278574708820783676253044426135516068822237033462881799651200286457968998152261346619937626801251331174407895043513088533353831747747014831072639740046558744314325917467979682338664474809386134474527179941157787411369932122886219800808067610852590608285463195638489467526339676905840214955047925425121335317557844210059712624409733555154584028724743877610223651768782440117281251874899050888905762039166315248266487252789563399134484302044092104821858492843472775263210940746554111628296363655310043037557081552511070218860121325249545125035888680420001926650286117568946073013271312630854939080170859356609158315244486855682766882076949053921713524158120289814237601750574030383813167197314853363643750004282941780803534446289765054923176052943122544175726077337606846511682945581396362551939647190856595349495120861766236526652824970445776922253753330681021192024925702898078308142927484326950792336559310415681255388986994405713173094946185764234334866136302823629195495019089658942118139593080329979480223772652121225498422874618712035670923609644240084314429145882842926344447353643862118675712398146663270722744912659792730094210117436848837420341505188604790071303660574826981110389158259969329380426697980321091697979301615269523773197942445943932742279755104080870495352159456099467818941657496852129785666961514069199891141844825910865623662571297377722656421917765799405784459556222165732089189789989318211637142265362329214543588152307164645014481131963593231080578070437037815421416284269022844973130106892971821671472248304178979578483470276591087878061234953258072845045681145240966039815913194673615841449422863639366241042902223806794162412934996271586853821612111629709075933968981004760263651898053630535511368700331480364852258658044602982942901347482084721898327595957015602450570123453429255924683893180498321386353480911453712969758483695490435339848902908040433431652110636273535763965719308359698969218063314435172434003942914749335906898585843215219611134160144908105875452439466879924922708989636347119422532162571695659600034664168431359223008416850790095449528082877833528446907947675967355913394884305379282176993795447332632680086607453566114359280464912592131968828048650230605951454938560194226759326918043177585610859343818015191737983366084010420767342049753679832684950153385291226143807482235347337463942602139535356947472484756871011022920905809344790267061345414568241600315014815206834218243829995205864275699191143322661304087066571466759730969141358933030600961694860318532651744650586545094255238499224367917743437784331911474167440517162865600825223542102845428870701251615314238495075871743263862507980328319943063040581162269280803637727001497183054972353569040223312970919570667947809789989346891329053497651537102538343463846086299068897777561653095605960371736711339919479590197107728159981923154936182839979499657957461007453987734393073618190100573822692656285279705895036305318365697667266169704168775398037779371710957439875046501039196422215342086505561113085063177264870214759350879539788535828147557793020551508723516970386426516170851005551369117171629636824383919116611823831931290360122673793992285475447318452866038992684332223525227248878530909981327613730961460242010102125458125916486407108171323556645634749738372929646133634776039619639024216408270749788207619954041500455546238130482865001917042800404507250948085316087352963239306495092383156370076483756476233928544199179584924320619120125068796768094818835646342963320961156901039048449066726542631433741852086729198102924925803687155870181812013427196920782781329717735440589379235166841551723198939921487925479576659690641766435437097210274156160555542457902013127449535131051223691068778199516418159911356443348266783712238541334742017307892028169711782410977862330547303024101975202790930052174516181103061433266099733795774566384813094344298265199035345816181655763242655661751058154950526015926671497954188544537340291369627619516271166026303455813843335912006714228977515390864881109989777458125623273642256056454877111918549673072103113192744441387284129155424607048168349227604579450039507824892060723676653719790530757297809486916499786449965122032238486012211282798239752333840975840889234024463905775571367190377401853824568449982974734603818460212967312594573961405653407531669191101180926062188388846490045998952830528496207435531044661220358909073582587400771671251098177085895378480732335990304623812521735365974501433013471532094542333233997121204137330864716714380241930258568603529061064571232435327456671254892494198802310209034291830428901075519998427177341957451603974811106212152518398856301581195850998095371895279626196144529382128225473499221941034970243177613576471762403704820625269911692807576489293293691035161922978965203881215116615129860916909278472438878950597263922976719190457740455219943231886890694179160607848731593642963085161472144768616142700842364585114184903755947605775529284513558164671776804701096370437182103775344863525763972220108721454174224556092738191785522155111452904200828579823133334914543605800477769960569253367357431238978527399414061725174680140547286566985753630810806767634322953643529692252918855961178792628162410386664616571422570109295382296925550377994372968008161559130532005461483980570543436947975712540919890064034568516620964476827815211428559652653466699184910235929905118873355409110457827088994396489327430369333694332525199637524327591876887906341328402976300326653597386322731963417966346529016832921932352493921594270832701702344250420313673819312745875182630233881469888463480135192338753387582655811406208236452422213800536580684233182791458279804654033734124427160541998993710363451615808510373952256611468282410149719129115838484793420609435126538744903088251089775444631408026793924351696572136938365500395315740797050355454058978725801231284332100353880437012544010122107918706595390956347822518195029796251950193246534753417722733139395443095405049760991146979354605310511035082286270633058505844986755187251696530624984360040085245963760552139568336275677688918790571609979614223237175255206220638233330541439039621325049883695714926714309117468025223374607572412441712969932476298338784591242102169943075810144901407360067602365891349208300238337463591257002436371128117968169044237630040583716683840601491658067277686842511638938741921893621631996552043904635215454164034792513710777244707517835274452638849091631712752133420157384811462514162507193938935774746213051922291653056474001204963024821451092223148774235169093375881769829500226758000225778319021825944802676630138074762274227708491618778466365650665122139946280622787299213074762608454990557740091648457773366882994179228467059374861954199623544998487340040410896822736736128497763597771957239940294868752710002631088481195937481568332715702987590374704684867806614985251152555821957645952622785701657005336703796229200909687416750913229862270882909792318348262405288012052349709078846122969942738981045573726637712655937918929727786828387619402637519104279899967633441366112734181828460525546838966245111936452729916436620023296876179865392777135858396860978344557384427188545588479278536414435371403692726217209144569538700355883308763396488257967967672019382498788441411259129890219781097475254486274706233798890449423143912814592335516413195435503878324287356874512614000869796764401198020396180369517425339923507391174624570994992092518538606971268400893227457086297544660559843611769047909566057254448077164096930949520442392957795835294594902536025862360275354604128685757361881977399192661585265190502409364226038549932267133729103801088717577940376859872657560681829697028274551255606482691047557651579342636475048051092838327532798552641664112394073934061840609146492325468857028066388764218815428381417596927244101348123437599455854600537507834237326184895631553165865710543217929010229627443890738663208795569882650902870316398066899577273322658815368072820375505821580934328652002257665334405373962951211266306856749708023273542496522707943291609263596388524245726563060123343279905502235872764354731536181440160749718944554805479763475562456496308200557849821686000410476694159630816804598932781577072501710027258422050840298393274820049873790853828851059932364486207158084375673842845207758452135564976636382624676347045696088937877961705723873143721464047839851477168798436908642306569950206382480422133670190549689348345074930175907017504483223712537175428465077700116574687541555016013883530505973982744643577176920155661098241932046840214857644158135391034713799585974974005461232203887540633530367569163167354975141141364577978117837259411597922542742039794862734839993254223206451069867794942086217699397545238852117783339602252365155180765814688817725532392018019507952835781936332776849756589479345533184827067068346039153551788710010146570710714013511478113603114118763068439373584082563352505916799936744273331219239343105130763027938911483437564957655687779814488858269462660117648993576999790393483788407550832682488948290378894203932201719700565453586331255494674983608083689947154055986571414797104436975120856937980708974716355923956950914312616315759416742821580668926089799054745805721630801845619433229850028153700703355651756930690252161543151784657611256740611283293222881890183753668181327469942018018793701122009604406803415814001600409321233999785235477897002191251999780290582867176686852328977885467345226548609799982178705425828113824767693557622557648672496217098143979134138063509294414248447971066172256215608421393497358969265313968421396908107809236855354857156368084327284544620146965278295131048542266027105960324926027298043079389623804286303959904055518972507480170011004004602692355723308608442876685954618489967067163517924863193450724263070283652732288671121424341781545262359481408549393508262952088142149397682479398112922949029254523890647489772316017639098040655422104594061613865838529632248263353879604268167621903365087753539735626391458236452777228608766815494654753682737283740076005715026515172292911291676374981591200303615127538321780408782239960815916815881019505527814028748262149977447917674068024709450321535782612941457985750382080495195767683941415531328518782703933090878405381411117576640941849641013955800582870269722840809147587981219624240073989501168248827270354527526518606276179189428757766532897179396214772311599730265394288220316710637728423488995934138224895575099588968570273811244497358384744201903854051070217441049687241843954464314412303789459779883554078717913769641674759797715527610715100384289331303409331044915381646731424930302171778742557627646368719911798503904835039691506513321773561275997801870130334346498022033932757803099128703021421953641252578656882971560137820994497474976459023802832046443162356149031533703632228917308273399064904412693851872277846467563169262406581864270018298539165348153332806411068021851272471627079017261998414468724801984285304808816426440518543489385708023674347309379691781557301391136709264531951945313086150487534683715352992105574412560528721823820884851397591056767813379777127759584333387419798702304700068861204319720218589722785622027111793125276405179091774409159130155763507423906677468535706310548339274303980480788155235708670205482037608487244292966983556816399303232646018227898558531480205171203300616616970508389611350014330793116177704059651654616065197330790901980319661367138925169135503385588943446362260681756301103493971357539648413412732500901099155690710244345554753665436148419304085404875797577661796865776223758678641369909320417065183308618454608445157065237733703506397805065246875021048776658588488869428136479382483038337055795390328378966744139877158842356850336172465168281650748729920186805839492710846867422595992244601423217407852083558958222713875327924452980477819344574915524166873631328978147631613789270796578947554067600237666283234759425898007033602150083077690680364286658120689310229532943042982625652451207129106641288571512680813843402688742562936182471989335325851740875019524511680504545098531497245566978319857804213921355126490800060785769988178605529959905867456820487054409774936907076476134588439478819154364080572673472316793059736281027459371952099613431335097248897496991222785069356677753522296392182891359552924970065777996675804084224296644840725772192596281262812288429250000549210011106866735058714704115544615891261131822943539251496335727825844452895971427124224641548409758795043195658997752987799103027070378311607376469333818512508702071402253878162052306734463276796584635179184142758331411357842047941231800928025691166690025609425683984047380939309349772572957402544029403521934284711100731694698477863382191147357092064517390317380093168542306064562325716128146241435504866210534839695437318492186649197505681495045536733546042151781306748766815672076704224895346136414663582099654832478014239177996905496995236745297649720039469614589931759480929751647084138673971583372162345943605269673978031727506568829788670727671068919268850015226861550889986438628592908175447809585571708578326963454827811847006131360444871450702559501046894121053977039582318826351380348465792761388603721368101259888968735894005647933208061792605577706841868371934581623012457191809240183176239509471158989701486555378177727621589503326788391170405675994855301851982350804363502799325355060883268936107094750619823239571906356342067602443425970276868645327168860711044297794710434849438654811227380967040848498741588056438983994090835239474050335833103385089063752356867441009289734124573597258206028856603287138006810946268952336178110174854396893137339220289853019796665513943679886359344530585413062362907091372036163007588620136943044571954468209454663715608093313772497402325846015725239272163666231070202658149931171869542315113616796515202485743030105474021795812215285076089750346329746182240690453996739274074256659019337735544878918850396340136221876689758573294375068766994342125133318581783790734183327346916703571597705602397933077154558168340520598757583879649930537019704099137056455449637166394453930560946075642456730772410973921510889789949681639856356996072266897014940253070424970026754033626446809944393162173320413744947457214825069462774270876114693323986212302156365600436908899635870807988983144614190121998783758219211414417990432664102028606960136873292175432834624660809517732317490343910511657272433023432665906638642386166929894704998165788546216273304448855601838184555257673070098834507163524669528225158037570275812183208852007335977808934442423762556750567214693217337883133503079660797701423014464232742143416259793248370891026396865469232653084358850610475138304278973528563419511767310868334018281056183468495114818546042667568263211427889957700568964517987449089640156321182080941721523419585711427373449671688116830740014131321142126755114851198851610701249434566612408128115630211718549710168197108367026192340619952276345300779505507599922581275136894991967243821523079074378266370204132643362765354613665890594672494661139104180430529357541378826707109093747654118297275266298071090229887257644744439067539581220609418388604239743024580189891270647903000673304523503589851320018014576093484550399005842984594453105871641910394811548309449754017824734184196347495087259577343264590189322503418464899243223507717690739441500860993407681000472533824876029573011305927213269332991510961208317877854048421809016855747659652303357708327002168077822298030872627298823707718046385192572697313495829729886121488602624085619072522655994907378216047607929945012806365906538888617370802235813905169037979719490271843679956962220757161109149366124623909062843580003874462248472971025852276366813487133967116266724276760387055138933533247153210197654521663131027772572494512497981199986278104970872873334777210531792390460786251850974639296299593678946518694662965870178801476926421217488740205923130464621152617001087625454429667014126065623068926358556463202334545659344430268983382164278762296365719950006171387955140950478061434634653442828959742527997780089438479395941075762538709256213697905880270092999218851002579859354071493971788628290526982467346786703143140722371238092029858283739347872138535478517507172705414527531012001558804450857495357159571924810681079489603264258092433733839638759465064315506712136486481308332425378425800023651858867818633375449744229268445792768868756898343810784693461665511713679685103786867015136462542335449849853467050372055476392801678418244748581456203153917745524317411408457185433570033189826945808352691839227261506723651914924793630633799075302996804463140339547092547066120525594939933720261745759260875494583381468007859684428820131219874056020350569061221429602138486918535531824488566481874156678856145374398383263612041461019622351619426806775049356076315363020573464306992790686925070165409280807344212504837156768339154241376280080173905885014065875715041181981492937160873512353927029393838915982903107466880752287774451296564492302005863010846075318054642910423033703586758374779680344671480851608471298626366117524184519592202976679152772110800118846539658294570771745430102561776779197761436014022394124332819608558390295879193323115345325441656133218479514407697647962891310112094711132479423579325993565936947220419415837160778543622754704013012252561188921521333359016494047546295534877725479360538683195180463745518874567963121089173475660558666528561284322742724531582345619397140520736318803460901359462939311071381735565723853778091141524188476964489398202102992289769028807803766379894251720439819101177594084859311239119787638615757445003098427749950642744865047425417943391769228030000974844341991796670747184011810692920868594920853268584924575625162482311969126204972792278930024032356857440198110668991822321053300139855652626657672319130929130492730822698737625909037997283404731144330949936414206606404197564669522578017019655063160245510955194062046654895937291816652135938942935645048438563469891408701432202104309616557103086980538790918041552025489123885920396851260976010062041581008602183915411171160598777578111729932505671772102160105971690868856583661332509535050528853263084966411551910885279409301292061370541693242683404517154501755582754775795320477494451441762517430377217684850323160776713942221898615279117193129949986275456259394107509210730955536505479307740433222569837526129091260311862549177777171688188050946277132267247833410608454994342060097743006922188816702121333307335642224274179997478791406154901178378115731170177780212479950377501794894678643514340886388097822337755315962326285308763842734022449667336137518476539985209761148919864800070925977310512434478676744377574334513456103793343803240574288724281771129730764669381180201946932454568875330547035084493340213394503467772269585677709001628359947205441338457952514879589327134886756283017568734897964048507569111154185912037616479657010926342908209658281685001100730283214851783961119589606388243525933573550809686204114227312912861903785176509910742247264355531427023702139153744570488585582814694139656714605522209484045742342429037746758993372838990141400222504828027978415902730298766208280070992712083566233475662183954086170350265463644175215751028210020358759512741759507359657927657520007214264717623993838781567180139653821672785257418971294574346028817243033310991881591383691283789419308223284912815872412556324105283774620207713875705790706141773759177579925539566337732728103727379837364773386487395600630933213754231389654119954626957990749098298555524119473759164495382371878905928332615867498074059504154425310527298548698223532641113031520035397185589151214939993120917889908793380370846707428997099049564371025742175964557086059271554036406170702170005207723195636219029256129839081510664142318342446278528947993561906851523524525142826728785317484000060164670465762821403948288986349684024752253848378298843820569917125352879601022191988391337809995226894215612789937185866788134228997304330530229817086220960940232540573129263890176224994575629411371905852541350816803771748061866700358432729255850662051628098762343875956999892398988430437300378915774237384908362921575415429980257794667945981659391469105241276539897066771268316634577139002382007156596298831045109088633550605289021758982906626788447076235110254012144331379307038853283963592633874446608035080725580852208316320873764122804216879231906139771006682995114079828916818863902940525482156498914695416179177112821131374325045180823840991106395888018023577261878045253944013063750286590307364727252717875195465297535391189550632373208602907599136839188969156633579153323420386679462308170414117050972582594950789095022120553534508314763563607412336437450478062156667662679175742508684012123969212255692978593371090283714309713097285449303619155577728814267452034918993507129992379177131926617107250405117198915382315503884711929383200225468356242347543917562126178246989248047954015155970240419922453723165097513722681845324398003139005134075113952783356240689402180159467875388362669644559470359373849036292951973612426253901283734118482833254440272597069845946729605344550575571759750080069576123006782022821757013320556186305655017201786698606188894177839120479119566959811528144026607942519442791335250909610403504640350682967371813991148941719762171833594707801025618423335733409491860426056411216822805328755988737852457519161784047435632005761367998253715999316218231524960277738100527302505771034432853084592168629353636242472101518275819858880115648337578336615636612066066350421072073789411448107219135752125650277894785364916120463132524446305786993136242353276922670946910620092192168202502586483124684820780348221748789974088537574416738464731828307548497254139822449989461270136313748841095921867610200196999812250156199236597595535344169025521533287458813831204552388281199224071701023932071365189770000523358083297895557501452593114727243491550065601039877036197355925066082796296414585717614493498859600045122253813546748893206685419889158985296090381496730586596786112434129299821225977626235852201342902318680068119798931228370396721679107000921042673372328291062086064831253832782472006430391274516252638165725345917658419907587929092651013768504459085841313602988985709634939353347515918062245822491900149926793312882654180033681585164641934969478022462209000909024709602169898013681390427479806063344270485193216405610714931387434141266947956220543807918404668415103899157919969287528138967179217265132060311485371090857583775766971126340754331427670750055864018073525001444695502336088887618472706039124732096145252499078933044364165191072908461153436928677582806955953946620498292698833515525884163907750470175886132551352107604865958618826194078501576688256481809428993380992471714433514330144163575187336816975745423771159425613636971505365571309377003640962644442523822315967226244319465479021275830823127725479766721633706262283938718810445119017846857278720341300291197694858808025018523922831819111651652727064965717337965239462681690275681953914278775753810873094801388699299920111933829042297575698375431333489106690401840827136836605515911958456223722494925034062551170292302546484480072846117524283360676813794927731098077856899756163741064831848459524844045377167842517939831353636263189858291669673389693060990244968288116117851807161472787820103066712010796857058901122430213618663210202363018059119152669628900723727189004793487856468655409546998744308201999957598207202976677685578500508815763854614953963906841928639698070069727684588331099833351635482345566992081699695146200116526484001401235039819826450222404502259999190422595705504188717906749864472064603947852442268801216722668486900920605756727252946507154960974951904814114465099286323607824189897893646366842169526633318975150081512051242766020641546425144827704134290426535246315864868580486686496796277163423257166305315537405953958247333542672772796742284067173245682638415480522952455007896406551977493474754972876827197544188745488321074702930536909580788303091108590235556666179996795566282361877476077510839682765701242134237702002305045987220499118823185039070758037924622733582503222714725761487397757327383807578931000636649971614608395057284873786044900089948212685216367843758653531464509317093892375962223984122746986004193801489335743969863660035080941985271074136845465216161232078235209002514393142882252382313990335779034357676449185183644110254587872159451761640518368646119313370261793308263932069335195102389107023864687082959651709424978905975896522844298106091490348380028592437875376401648613152562343247361235372793849908592753304194216982525963275098503217131495681733603358424167550306793300072086108247914457102428336892896259670140544833527711193559324257592851611576223091338360982334713339328418299312841319038450544270216780801967510403513147547191463124366643253123155248401570430633452046362868340910252875123469066614761489168160004912023923077578410224901719827101234786062589363216802557638635918286688362170178262889944593316054530955066755787610696005884273596814216519010739181036028313984758251757795290733308969179779365638133938708518000659744004584242743362881509756690164572617842895105776843435531049155136984280173116512828316487364987076384214596325190575726198983512603712441855423370674294252574962382721397860903688082617362411338578492960415792909322616538400637100398804084997249877026269249740162104232509808886600418073932497754214412638900407604613978139531355242776918163352710366493400319129652371649260454547444302554226213485964431707918113073584364172303718421085322685314501219311391380025528615386297433689739318152108045303987298625247823841675735033365359503861819079201323043484737435668742610379343749001356627613006658042007056857051363349024893620949664331919181393037754542163208449583430367650052047751830322358212712068473131725885352154210835838403823499997836755632283702859238047653359708786516279624404048576251940064672723066309295048359163118585109827536985444115721633689841612744880015257416361046856477477136892107053128210942457899210888700901686954091259914394613383751427302314443467235179540015566143203082767879529810179630866094835605987473095909061573737965533525006810134920187443177008931976563484342963075376811474251185845173990288236589506390953661264699739443593916441865574977157000077913868260130975713815371153900748752908954720572278561303376568476312847976559974596448443083394700125254038988444837799231298717828711742498651038048275760988702957746680760140468109456820423091083953139420996777019110974186519244018083365583332517350189907264143330136404240557930496174997626579645568754351667306690353055631189125132857429801963608390264389180240295494283629971713656175229124701403580096821825751986189598459057694462783374882054710077043125130599519575926136284931237862593610659136047713416858464294478479747179143757241647400592206295643004674396825331222659085119489242280252628620532604955663485135761305987843847118598303337903000602889857476039284071062769283850868854160902150623420534942404370799097292844155502389342649327450153666437259662178134912866412165386697949174987869354892063388923309047010918517286640328390516350282975107719131429598686457950427950603843535930709962116457716732031492932912117164652592501738112630324178351301102659750230743424425757042132837387125749471761737302013860749582539858991440566159963650347350272527118267720985134684865027764636178909090529548659760165103017943140684240709932670604512190568728660348614159198864638546391680425681945100932628247011352158430913926373600780876011884230239090336446804338502176471036827853771448071425933516951638881035169646010699344180864016886761274772357369286211951741802828742949312219686705453059216264856260219651824358426400957434073645566756632167958757727151830651345945715007021420236951957946886846572038919172775431915344015517757744508493161359566013408577829936023946881112799824804549638051361138677974658340388526870781756864327326428009519204746100110756832726837530359004635739717857538559414610875827844044474227159138016128556534755285659767226187845693776239963625477685100769301513661273843773082980848723697753476943417515892316546247633747040837457719255310775046592313029404336674291273229124989024742470055099815291598922868146879804472954010292348993681843894872341923553936565912416076700454045568812080497533834491513322133419765430742397537914985285000395437676094764865275284514673380593510133042030702964732807677485047590272556705330231053421770150580381623305856359088337193296960842155212796230604880880328642328380488262479910948669327799187869753706189610950875248541113492325577164236129505261142312130687119039881109832705882286097184901797519243657267899999088403704741701043618526508257800594848681145622425151277145336881250315771302413850068038377862735515852975052109640531181579704920819444861923486310691203533936124750783677915796936056431109983471998703310071780632613555078846829217712984029718712245908855445959550658101773492243404173698647982302605407244729779803737436122391415653374351291925666000120134705854353535320489951819221067061457336500510994273269886980013292996685256004507346731710690360676317882036789554171945473236145496419262715898087363287427621147431602120795683210213042795029190553807575639806050228607864858206613244466041528824601179617055081790945530816070229397122870926916582113683012107492939544692910854025724365182802571665677032613230396893105538185364206794597833765014972508164940188265288105768390856217222570381669425083163796930205056707664727427665839364285493659167009965850985303312811890539305206209264397510380792118305491922708539334539321774443846967476267551188138563322207597890029942644201408300204245719880561762450348338349202612498402494114488813076911501357225897972353560824746512255222661053264046213853769084881393496859052783174503791612319506045685413062903896674300258759384716682204410257609870537527114682350939816524122086330638206655732162822950763359997959107814056191156115902162161516029420429490971570924452853404779796730991454787467733433745507986266340302260932377276239894376639300031381943392890413206063606790752046621322159704444215753310280612572200119752358254413817195365038373894849049365679943178912473901626941033694646217046075145323285042494793778691962331846692063488380449072425130255983763323355244614530242580267789075471421187107571249311634051019331309415729927173604363997284118102211095717419832862854866203321785584437047699103876222045506993247148194294583700963015963053404248352774578927199020054199272703159076276869590858352930967280220510340726253462528962965934147828053721113008877836935714135477369843921200073268481616322646242587414263214262252802852865993571684900549335286887630023137227132941647565204575436855175598800661353091019397039150327466780500839128609001635207465146107546593450500662057630494198117168515773385741722327243651645018821770462322786399376963342945187255942407619494882032998117415960280231748924837919410357848896056053949389423723630281781717714307309077224770621324486509203615826005053598481048480432053470669908449473890829359264158923850717049882939560064866074100746248878248433495516214997356559193448007789379499105759453331667381277586686008784891383247609493491189670375927204882675198711685513066594743515566460902142971501597848328053666635101968902817353137630353337613361713509688952440140125265310312232367325422323116939027417513195604486617357529803826297101007303267148385792707641653433862461584446720816106797114120555848231005317319085401716921914514809766065673711958761547435203313338969737901296272779502909506060017428231234262965272110707958124597309574593146272311793857141621944639546203759438471196129413332421737226330435096442908601712636695249666289907777946675932101743594390664620838260768175475926214663493111264918449718693684906631130530341410169012902308165005796131662037789727106691765523969846551826115534099967910731958421054659501055251837053927863049247171770967485792146239622886476091127305989760133208962165518616367818038738350955281557501443650305460113685340979743669392274067435414151601220544992939228704450951817965781002620404680489805909138993652581318447651410113147875780086879563848742952079481448282328494056977161510076512106090287204665787393903126547075345257081708826759593497258225782905685689072824839113076050013292965863272992782756921192957473047911419467006637842376463398359527865516700837534837866638829763573186722579840898338617322323055929449672184910414651047073834306216195954178820762163324559834596285695744971861764604792738288072703574884839747069764759850723555409004488065776837855023834152740309067005655111285687403538865896066746040279792007039097086623356698678562511428234648639429091999191370557976969815521496052302753394197613320344239348275522252636721703358956823300156472962555707680512923189685548765482323058840103921308466006866656488651676655497825339355567877636509480672162818107978488193459736836179933780473066265322741200298369076395567933259239022054021399344256286887665355092732789531145421163631446854404292768568468022939103363032703437913087637142247049115175058193466459287964469503892898038992113212904844929571931478867715383573004558926717118954233766736381599888006261139640400441124842207820734875043452043503250382641583565456404307498145854898212218474403346388227303628610615840380264937634301718524026219162156349478820914398022421375896493616946706471135731013570381253857957009906406403682108143775189929263537595004497807810261680060125784167421973439099713584431337684301591989381334747785670144838849573139606635073335336462229064304046438102170589886870604203790108126122376052845144565005581300994170210353175949016912327427538645841626638112621017789326053458967617780710829779430684742307853758907181060544843420562792734065701365058178455066157126742566355176052749592924502640035265909841975238220547436823842093622931466452038847427023319480731239187894610422869884024960925608832821139604556136360075223640770574332307799420389768292604569296196882893434556455829385002400129695523326020390215735420196610965779205825479110440128044179294873720354639303656051895177749193067762652879169341654421397113422429041795172443230462986508002969063740041295818384446617373051067435201912036004713710590029878585826643698538579443626784504841001062393506436329852985002771330997902897011097588023753277500370270208672705499031091902808607357281576157820329079069317201304012233482231430325280222032215418818494099619824860848297506888130211779132545627271175241949539910615464408793796753494615446323222948217041454541578500157977340691129812342465822467887488952580976898456590170703993143234373014389979055662642228638652538217910648392623686938369850206200974459257207731993798837290086175367287997851117721792711661167342278510247502889043918141198355811334000438879817116771315527711416784717196365976802065806190589978653217228012442564239525518207529092958166025339965260988556427398223299863270612273553969417322206553443460460205218202900946379211911623575697484220869809931574925691883615565188400490568937666767673026708708900453840842129024380308358202493926972327712507254103007416064055762967165529553909261651374978636357376014885520066996658779042468900428842147430948819053984959213948757369150170612318020316518842196571074945294851343262751446535051959449800418815617558934369810933994526681827467502581924528167576566365578130803287285209981548247820392699951464958792440653662312807241671228741453791673776047539894745773177307697160872939431615692105243614168068998587622590299718900217214735347949839916903745724968555979125749895856987371531330792306653957554433061768874315297008340014884748343583850078954846788452605512456422617931662282539860946228313460940255413722379789334005202105483013764690587456443517446940103636240897614792078604691550710279189852424642662640535649866397518972990610445647418463859207910724437980104737455651722135778330257334259967872757299345647924071201837706592632318772964102278711415326171589364119591435952912053722874019811799804414767522138068374394301068699007925814774369215587671434055442760262491521702515715233496474928348975628395317740554832920150727412662818210407013642764673278608644033886713204265968648000566193885929382111028157732444865128749687782781293406113961725769124165623016475683961969342539301335077761759528429080770017354767231383815786012328706834379036983909018784878815358644115472830969356777981516284508404109137467618054828849301757866175216802345696712788617737233051929912069762451419142821697669581267457360196917874334142119652692287082637510691278997106394580926028017970433134475287344266349681772131002564394555269229139906381139900336275147813022451993776102807728869696524224910052221418334003680482375516583893584481098471393097420570905516813059272345318332445552374186121281440740043673567684431474491791289684677076223413252737025925434551234053301633989717531091539841772180045699542415011251362492878524889571823778546130246996353858851084880627027630508248311136427783771993431137920399049882474933682110541980157137714812936516256480059640923733845940836308071528878423040045883977582913368060719774419783436704313975857255249889640642576322153727129258113357077387909953469814994893226222586796795589834515833517913291959514177031940648392134146543691897253347104654403619381040083389142205504844355957573341098865476939495165029136100512498239220390884780997362137094109862343038132479258643924307420587088681545355160743785423864593114161811335358716603033674254531646824373734679340717913656828631373087199954419221682163021885612309244389913699184829386307944253076293440816273926430242056265789094651874760758555807297830571549502875483958546940592932138427436365155272048362931670838724052622611924688745812624035806665356679522407703606771768483656624449943233755816273683997177193267357037301098610547619946103704870448824196867956367581443592168070564838593044082639243097611902107894267892974956560643478323154538610922810300568591828096920382372578635123440696023022735813315460218480793035643731848596683095508344826199217472001715466736295585927172087782432539932241615489754713722731091222874834962287184134133075874714748569279929397888959179348171842089127434156225115093982534442586962284187738438276803684660707246687577747410683440388032587767652411155161427977528392410144284807274997907944937883631473050944432182075833773311607396858324741310625617347048247730058305871957280337892142109444378787707247366684757659851208087716537332673158717174425225174341164179575067135129082597028669764520694519536290355008298757875601168429710836343422873904102007555494421213088281213962257723362955823729303068530124771824106556538353729970346687203369093997037182000699752571284350893223950460152266296745294733286213297102354096955207301474620981852689824347344670055541992900332379541954853459842047322763929627237893814150746829493322897222424716655808320664732637073934269259957718643371081285502153823951703333521555023277459635484474341307669059231755143292221886036556430945731225481949275538347071746245248786631180181986436798383542124315186396170687824152154581838681371810931054933329171653179629360646638725884237664065263311550604968442610130080774659540312383587843664926219247052807572303788393399102690868999405905339527606281245374858476988978315040191093241886537498151775933301534437463345442225464221185491268878952650216154734870113208177027692887608784875533689243538350399737245043817426483841087129266550679562788385138985068681836648109523954818526783342627319913735264722551015796613709904141660663149740011069003902564312634210660295277818766930636005986608438466916852211684916488248464952627376002652188896634646302733029992317612235619661932663889340648265188297597808056957577249737655873042799284957332163275914490468416216449430902222900396642090335865159560341944465499434387016885751469372691830874579272757365312984928756168682106482428787599253906855107587999232975648620412651323995224741405234783295761351150743223378890695120754756769673854125981783114883791072782584439667777226794789535657149882521048158809386079599833172738237316450786729724788635315799356939178293016504972112396671936349561936090098966246725894459344406513618673702142308287272926716251575426472048104202940837180444948392865229067723797056693036418598012360331192666663157462826082763494602447936791190525033918880290801147980102464057673985604684240592462648283653013237837582230554980857951752443954756516506671889152372297890874692612134601155724603790422091821387750578138078654908630630089942967424259282489023222244915788154024029522239813936266159129749525399024444250585308745229034806695621865837702783521252686623150011616990327674574604785403170145858018820373367360587494293436613632976905456682761964803897350712224901812332653529346793183368858376339995151114400850585944756007225674981641975119466274746605975383075146214432297015477565920720958643125120639904978011355743540925787916134310245670272205473264405711770799553691041421524834108019843416198869399419091070177754957131371960391964975127337621684802127827700131020115380891293831864818241218447633741724972934874263102349827803151450842600485724145321630782123964586060007216128947788510564051833706366505327640182287817484059682259641857799369295072736048262920302509859442545434446699986452939518596298622913175909385091336821099620688744854765403955976948668897067116180774423842161892261309495681580397289741374360954761297582704294529800640885348822436369849087705257723801480519048321626368099241503652033505816025653941127519249182534568931115875147825052273996976166946615952886000489677706984167002314443182381905709901382741727138451072531107785580111637935926076685626003474754761996196413782922617861744950534535488238218698432779674074702270416430463746375796413483078286489538127287914418644177596355105296554413167605113594865042501125919071411704526641224302702833614926674314804519263885131287797022626135826253690301236989555396172670280915792521263990362971105190553200589225944010599316355139992943762289934827081379858515607780839476924937588705118177890039464209270135470616304376182193062456760376201626113314592471448215889480818761984534748010527056682556608492944675648242614184966282881619773646495222937068929083202073351216131985317214059744031087361244474269437766346192050066945477915955837893930355452274142992310830459504919131005210966049448946740370682129529849790950541512853731386150574153332254141191062868393510621279568206291236848111250958379595717183011799773295731986234339572795544805953075828810569519185401739356610550274711480118587046746246147929356370432613025272652662934218290079532093217182705995173832395537983762646335336943509384602436066524825689137470418358905413896786159516787042209296852029081103528652049079357205165921036794886242524923340267499769540349537346252677731867156139902413695723946068351082135248353515100948135695482797779988741200655589940658803174874516696703318069109076261085499546983778390781536770335425402292651752334270970365464888283752036959165327427020550873302856048948355499062045552538214319214939588373494874372291294359493392068776812607454674974589452592077372648720714382496458555582938252902570105869710999381064490061663233267898769046274673537160031748266313344764566765644525499436536404065960030839986744560129987003868589959017660418569940813028794874428366601421802314548694344489337828966209330532911911115213345708098641283934739285387362231978645762442461625256114739895366259467044360618978723703754020288993890231779539649163297519984275662904137888747745932743864037772656206877233705297618449137552142869255539860507172241967972997165104384698436947314230853977563332010321699241637069596199858004480611195718355604418633730078935533423682300320056967189222024087438649115124354452315680653226172716191832584668667420786792593606776085113615928500832207129507624953953610912861649111132017159947776515882396042873580194796094777668893182155661021926244088786291095944975657270979751252896871112475597653442703966794655211938845884579665499534696472783332835850903664490289407064774630853327357695734611533356791671993719282608639928649017257978771276813417853591719784020645480051266638510868645061462714851544802607718434426414315951692063263581032061401860638118281226203619489478412519655101184423826815829689624063390551252072162908074648200134114560900119869790085663400078193783621201627833574069436189984569475702124251040861142660223175909361674117701126615753247409927098630024770058526448582393757499592314582858234591087941011432739095111090721092787993218249989526907656728079491356631522439036159702537128299003651754740468123253384718714150021823103361925296355426118209416004715949718048452017482735185992654514960662122774602066175541733458847894552797672544223471717271714239351534990812459326404501132721762309350277577106614390202448844444978243844459799197833016615303179155350494352497602300827316090470827612607330234521396607596472623662884203591210813486440510557491007222793046570559457366391253497170480624038334154636726207719408667148925572506083335241755792553176782677699647152378147726285954341770289654693658958653314082985114912435902614146849673530176708287860258856705508228707592534899862747490294923901153935070177851793775884082050834987730397589129490158038938801938749686473431246968724139643931857816513676470141031918968575671787568312086768961460193006712998379638766356206159639428825554916294073034070404916242470279131518143964467188956887818428580813980600965742724809047484322127300345718685854752710919760777255706639673163831013522437652471912899665976779418183264687009462257074051650196059107924321108584173519183849517323384134809272957972040637498615170786084904657761312173107378283144431456572522839290023670799926881624287904378563908308208556482061728294976823698506532117352945493759396724488760372446559328062112718959304374360941616277459464034149774222447767800708157472603303843046913110122473014131417329575102851204896138164379338559485178286808550241109732219590378007222686637756800246231102172873224086156934190077336085397326315879809894193877916004138225308405627020815884721265243737484080861522935882213993685109765144084756588238345687960559290780191026361971842095432022710866240778823861798107547083281590072922929284730212553374324063237627099838475222402012318753048617480096695102793823649744215230850717337124143057733242365863990210489713519600819876277997025056002009097202158012325706140488972641158058309699682071451758006502270482666787333536409284623228490367920059599772686732348909440972624064106738574198617945149341816903351489527593422341428581365048241489947928428014599819867658711974131346393759288972273582193371063411473420567494028216434396190055072504241546691872754854412346185256868273009040147468666684055348283486284785555917751612764621085048097469928988392568364180885055821237495499637328279882496029009958965786846954002467431829205128798064935124835584344137510186201336928432348741900618440246215072882563131636891337316689222332542271014624468038277284925304081548060341848918232079172244688367678331932694353185137311009234511528886905481190578218189134316079796377198941244572167335077391189716230134145256495708029498557071872967247965442078416006132031840307407275349441587864697530431868747807733621783355432171836021535330819691805433592014967788661866269671103749748906123200552881509002139796682617320291525816527786950315087170706390739804529072343078886083486022589213516065207614046091820550062372438528064052642349954330579584970568995994063828437441658407227253516100324644610199310596565172289290054631780302093501463800936551905807266389237293301120286302554859837021947008311447949762833386925383022707584754429055358471834117536770150407448565225744056681991515633130715969487063073914037076719806752218442966871273310441945103186822153432355103613955444805264739628896063397684451015236509646059032751156621076443618809178724129239276971505509630479782758491302030307734905005719462512471546296972201503543281965152355783657247407374281618397436884464057112923037477739510366783607641387001557858873819205194255841473684122229692553644740280863249541042543537595856952490149705932850368514607309740006168863822703484062433584113908839540695129625644806188122690247088090813391202503683163004638182078470768585076818664655637533126373818064892374366846634244118303101526015555980372414021463877538581391882494700363210113907104097275117801897973693551179718361392710871246408226398299410893585609619734563173441627927416175345071113867159831292341191490377628962136088045828269839687958410610448256669079710144308336689823413564174052819359035995969054443047618497754943822576352913291120389513294559268374544064609515594338479730347551468861777783275782686018726500365161480428857801168998311442449171172604507835492660821930536018651461184444050268314165165220208321746596468432603475862188216568014884855383405590239126989192371175336030781642965012294929832054309640815790414265849105522240605074463296995627718711767663391889042268906937359463314710311647766408509968525780436352083935704042497629884943552729480389626011108412187157400236425708133410183335352591055915258059358683886387745757716605352561970502512581659050141399611304479510367555053680948032898291801105905176982138327328088083705755105686998114082142638363965750677863460241078772555908327124089405529478080916545688054291566431654442423444382598361393175006092671371458530335227230203436363516459151168329591662329430764034142840038278723375799382098525695286157687675107168045043608820944421330610644003997750828118455147531243675091499345584153624080066807774701893626095089902894169103577851261152887821477773635403481604466616458984043582785751840386434222346484170539106547471326450344715455875239134548991446951161622590394148838762105011834149398037397462724828528927815249044736647489795711213925097281611201108820652644484037227764962840761281282102994804246128628927578128921396277722469207196047442909427569653769684708038480498313964465218799782643136905510750189576030978258126355413249685409543312329741086414367718651922760843740494130219377408595840557512911324111829903482510626940542900471349136104015981817907988414143210129759965472532021223358792792700402091863196742225126611956956930465902476908645584314407399623554368378372355498596934531174679963152568665930279262534231621451675901529635200923800123849183086982077695572388808320459184167619849315565246418783170770390924790996035351462475615291756351178635445437594356014791387741721558263435717001216317567916201856125118901190395387515078898184479222064243778286389910971046182911300090449958362198201847968311119727068395956804280644125878122412640175973540986422166397960768993215819898996256024393395767013502692079833863538105590105352591868899281014394008128022768381189931942627602917842327378394354942974996311012813168787320524837018574660383397747526367644748363923439562998092368745998424031708998689585815257107443763741810345953261270467662960113724099975952859649167864346828717070170430709429043530748588087860172276548450118258234171120198793346155165639049084378681365100833664170898844806177840335149808238858803998858344529272556782738338061528894434550627146024354381513741534560877136341801685249105035764360403855833980613659759962279443833881790519387788372803383624925371409581194958154967041575366370342627334052306767645455058920700932427578821826205674041080186834004196820602153707613542461302953147336945432708475554301692098893297890663692967961357074767197665427132505038791345206696028935710910948717378145060146442409452065338957680936653970807196950753721485848066978028393710597887033482066067972023401068071189352608662766933052847161666136290771178473164357476603530359738619100571518049382854565680626998209859921825967087394258667835458063712555511107407138034368968355324643703779777434027878151478022963013013534634675964210426685547638383211014298299616669481179398989842880109589059051087304795412964369984207223303919956937770726521242951050851203188923847828737050456583881488863270034837477219697268952073204442275518971422977638112141949842421065606383622141597163662485181958445603015374251631191793606346266103485145215507503152375396961510151554691334753525974513045930795673726227598503594641027289150394756717708901798922300549959356061698760270588616997555344440707779972984203350170395866356962971437668927248293613824626364218049088930093533613162097828298038642718205694005511184736960512988472149518293618410541430667378300779478449413301393734235635416499877068730229717040746335531506149887644910921855359174658341868155674448578016150046475860198642497993660944229926192945530575317883308348480541755372024333498536466852466219721676583399501922707702014503368266251307265724272707357685021112917089815795471779868264196527312496301104160453887480658624265073457102061397108772586217748971362603250177222427392716072972950425606566134993434618701290050045125752052496316982289096884205360967981627721072504961136700352416546194397957047255037404366514239609577138977708892700547123899782338329544384156178589489054312544948233522189296496809230466306673921150889902872566959944268027359727738528581935577702120161822798464551714406870854218996236181006070049207115912147821759741389563424327575583574009143081727790022979527672856190782514388306762057288167047773703343739176467258529538377597785022455172447646725079870163867148875679334144590207695495402650566849925855657258249499317210755101049807421938877532977905204196060717367367173544134213886949228142343663520483944875920530456046045007489570634778716427801007576682684662195582643124596446784246286733906175994030208969286081436623494016957723341554655759455466171586727871092496893773502059421978636296140930468926254683673601511343338985749582341100536724330310764749618815373573804457548913967979410407689314781881662335082384663895410478195764876812375644278071863095342843570315860977863536498434554207444376329880154606562123877223086358506472374621681073970898707457799706744958984312192622606431250227083711170571354879424529546308077771135170742963807374705147018047002314970303835931276498475121250364856008474648445404282309006332666124447767849371261863735879824009471765070120922805289350209621367151427130123350089782846695864827889148043357144251069326163527560781834316723496852800972580015466433316650444910657489743308374111823524144597651293512636491878512168864641853923174327222479712137844070242684605534760280302355930407764767939904861942008468658367057354927930258624233110183169432672515917676771434601825017044500152024895479987511561343276257457013685969414601271182709688083567833975011810431280731221005075894695542179048906508243636351753131803034835248754399829300940590675787971806921544532887807370878152359077238664073685402854854640929824270120930376163859360152846969504633544325359227343786329088175625026439038580841544897701518540563881596276267599803635384889645599349965011204079601987775103364297765641711104196276355510875911067260109219030334020024750670027431649617479872056099965269326711369799563944192598399882143484670605241453815200700744753861158984836699181866027965972152290900883322742425384916323578991322485675618846776272852791656542842445532259246609560207811509705856958599156982602407984398107895629701946551300775312156730380644471723227988851511345872985886349094707346716910081214371388105661238082314729687961825531714419344548149987257929413424753644057866453661462499473367137920654729185464363449881347347528735938169629257282640222363681843771468664596520400334154964043851881752697557837012101366922288003306072608365978025385236934036262725613240427882621677913255844015804635944406233488636125459680590060985028953520362230702787702228008097739327256186009423169761500656566518678288304760038445245489066868072800932967950164751152573800061931515793483595911458687304387107903765799909320830954219967768147823958887998416287685794556933878918368759538799143076582960647908548312316843204285533045390012647219000643042158245910696133336680738689816502680921756492130623112666768078806819323790636768293514221965353544271241325698995110360341724034596504447762380077864700515033508484656812600072114174969052116564115828818786858662424093554173781716749838995670078501202746597950241949095459244774432083418867907462049867840681938045886876720474604486186279876411602152850579396226619184136135547284974545560118877782610736964555277703044008565616683488921445067072589459526771335114112389352249097571361626342789416796841642581518685927674653421317626416220700256612780069851668590113518692681323228487150613740103931703129512010548341759063963285594814530328418487347997271106434376982010943020108272175832318893845301540627402951348987883975530602496502984325443977321893596761652892960747569460969835411548519229984068519911530856344320664664998373628839860988454456116416389068841011218593605169897045875757899142219293516439855977887900168748752028940754939224761396885259530315127788117166174609796430517747412562012858960463479319788323291651409922652066757159042908944533176477142138655280581161686643715769120305122696507004354408670494375968886940007915043076983685730403848281402622878368986056736445848093274616024170323366931394735615210070955696916437710525649227900011384567923289026866082083906720250889314514927032323293747624072737425022347854213696075147484571984927114069816374564446330839040306628688116794659383712897086235746819663925879974803337400009730808844461623638302681489273665882024996589235844219560838995748628367105882539238448014866321118414918880814932494813932021664561506695987743415949590347375680449181505381358800638312199767571237192410149713835641953283815036193952528037389150496586055650334766425586758047532148961301104589949281486257770281042309579281269782927542155735550965036761011532134468534539066184821737199536359246922560199234663061822942378370524372542659360127232445580532030755415217852383088693047952753696323024630297388959495027876451965166023770726108519985121176644809974798496938165191514556131947900087208820583127263002525636171835248119026815942116825937833157034633633315657827149927774089657364036650432140457487935824726047998124454338831232742993126219711493466472819349877525972063312389211560142166601800814569843791968396524708158573529884592723877770787594211641999355309561109909539517714540049331579687034500552444284813465551106051811658541700293479001483057457599060990696922501829504751481671848248101492304049760143649515154502773520009082490799240391967240872014841486861943104057116685757596704366825684351577804480605285716049223281595838003229070915953230749543703935528037647180124928018312809849937601173217649198630100865815976220865710979003324912982306916401543781908857655266460460854640085823461238823876128686773719051105093219478453886561274528284673330999419127792197406268355365391224553624728913926411245880608227532173897278097615939966398902174013119060372539461722737274212179764259491484407875444791755339240229059759264363921251198854290948051731139845706945380228982193524682066813112929793452851141389166405546349911110126411737064245443449532316591634836718342162072076853765393024331039407553432919189153174265514443265372805762401903455474136771625840534499902038881156025036542113749747082316642645211836846790712849910180223669207699334585352271421434097069361260408548967139208605132710286965419468624432383604397438771162207466578522565453273004351321250459299351564586407640247911046643305642498308315405256074154437455365193130232542581530837423136382538477633423219007585611357259516080848229179088616376499492293727225616257816134141477102793943377298029007757906568438352967280728065705095594110692285148446135871200810545407844239847591234425506280944069595364077545830707322334746366131542502197253949379633346204259382108586396917703687793986344747913724159102096064143380140566525495773334635384734291077532925516251613928158574638364666094668885299136790444050808195020750856381561169528787504777425042829459519398513358715475712012400529195498282377103154372016831525113303786212895702997255797834913240365126406632445888203517050767749727256497850350692374171309136104271493955912922985011501950131609250987687466108314943572101027044537567404460942607516558043078197295604900023421149110771734961170037246125689341059977907584829519837360600990232821503117696339019792631059907790608454097518775477242755377738146713144266988530225199420274986299366199737966344021760555925382841796567619494266340914330365565284716789278720497179691064272580549790848342975905122249776644047338023114789115968480677784144953942605394758779368832173484815521427329336483114542661959030553429735692427843975876103127792593218368099246711713639807588770334905663211307184842820089147188623562501537076006621401935198064549632823730467531646502026701758491433392647086178813406191935692791531624461178559736241909749575278488207414435057175628721078532989763649828961032646463793397602704039190513655121587421456695811418534413556316673668516927702357112528854590883967475313271351389862777861430500927146012690119510727418210476214014391290758638319339803613931301587863920637710205342566693531863877898139628342215832473646061264294377199255181121534628327316377533439410637563893126412566164529659128930582172889839259432179809292869819002839652276854943025122308391808606229829998163771698401540324678828980164324733693510486630801714135979845496488070942713316398355808840010040773441326010481382938770247959169342652041637930813318175176577136692178041895775879544985035325047027471931521456401023585113960485611632894759356079936459096168659851526755747372648084595926960075381893778564298946377957473116181140611019458047130633281324196588773431835784937704729548682227852220124856544765213634998477227822732979692646839020135438781283881443277329687273280719607381138326743423501516637310637153925824290077767214445435911117615393959851508604647550007283096846612752020226850881796777136025291229458165242195618299626115065754351503096286661503047950553930863108954888796108515189076209466889555515989313490328179018459856160308899326681954402037489392290066532575193443477745762602939494709574558101105525348379786029356395673656208910876340986040778144600878833961958482795308544025820155728648765739769150296766712521513953108802202735919222404269417030393621670766741996202505928199437243862847222043344189559585407335644517569165614166613149406663670377526834191596052709045182683780792853736320852808234151846353409990919287155651947853067476612774718578017029308946454201329453687315923501896588856912402938850040489580201231630604988400963130666905920457862282196802148805455810608224473306599246715363031493646397693758833965321815503549910559758257432591732513354257832429194812249353013515522894211806817663668544168550733735614615752405123930174041781587735377239370100637131239770809004040987961160741175176900894061392983176839356039334786278211181861114748177284912522917244263111307347566944340272421154969917958272117025982257934098840566034174655884820000749038680499475630595778953453873026061430304701590866777440910450618885294102410445090729828405056941977364545059872639992999079473538817662252170927129239764333821795345958286281915135762406866990168917244900078816622996524951745720329624146228451418321589088448374054012363412547838429447023749094787183073249316566647772124443097636087798486580749516375168719457882402811078875799472142396432416913456687839928022262096506672292340821667888728801814522294588898767116195630900114573475941487678786924765460609978812976798213969112470983306316961684880246164271245962530111097141451990768583973100688915754027736412500555746982731772714835395087375090377092431946215337079836976878563872544683981083202584767181139373549500612290715642983848521589663790587187984115079109150379714914492970074248390680110846762017849364587961472459307253668139138749158386174092602478872890672126994426121803576656271357776083369011968168370111649768737523866146938133242002392931180817308703179897374362167548123644358221581861351501321226399058326792464164334153385969921170474649936091728754918827824724067838113812885803350450429883337457407789442842002250883143737574106516838771675133850181050394040061702786750108734669891951516565760182111425005459767858774472170817734014531345044880924248659718142200841486239127721828770781758502006320803110214605535844522222432436794287442203075948805006121430929963422131750110347384862280595507974584918001175748864002273825991549657962538113420757337900966858689761271700801507225071169717122156467535441549689046875332410526386369497605085255720052917116750553140887617254205629057374276693033001138344417566663986440486196101593597975429438870136401005157231135368198906303986267363423105811003482566536031204787702797840369132198913115889330094563650256924810551900531737900008052824371164129557697935820778637001836076480006149789763000457098004748055361907819657112990094810530922933486585908155675919784239755443859933361519644530632200097598288247088918186488915769583795156157551301670100896034418389660321756751516622094837583070012646363021793692530618451078324590975577778736178153972313037681060278803391862385375653107231880675016526985182047166898328931923198360419419638050679374185218292656051557076153688066188683868058925719332655499314353521518674565190384550782307660296513085510825245675069413991029014770088429409728826956562790689607255248163596910660322567251217849840107205648525409023769080668592198934115166482997636799306760021563715449342264205540432313058654962548213555889234843777519346359675561703055859110916791994985465135368100483540879649068854336262773970133614715012398984728825925788442207309287357396727204484745761187624367498634594790789997959600717401566565202421488763801495716995503339083042738781663663593009655202601818742549553033302522367031643434202485793080234110958825402634302905285698405555615654101461933461486036890885092657492612531277037464929461602004696653285034643313264874047636489451314228450088701030040175529352707289233043847675097151249583170701366562444126789497731728369218758190006282536019361222246952929795047292040862064928135084499168035597193919713108543807445532217290105073121860459570881171014446256992555133675905625560836253930683684910953311086649943352809934931792098532898976683014025247219570124699510077087769000376087469717859181976497326801608645166007827808043279310691648764035934232491724489858830265000329486470705887088115883422706474832262506709150548407873062080199358973326833429240038188840125859863695925416713319643861631935195504835161433550699543833010371431823282545557792415119817692678696768822269732391311566318673146498395531629137893832354266065254199482138280598668676399154336450988530810219816866545512281904731676816372186993200690114572803690768229660803941396688447470477211672267281802571605275960850535095809560286190747937491902876542944686756687119822179786774623914460898030720614324012836917278406069171302410673866456412216329185461229816406477863541471259017624652584003681393876468465722013186676298526446677526871659322542137956850953064249351447742943453499594944618301799298032968942905458299141073128734307078039872316344933177468120323095510570375325752925596544300777671148636143335733977126075203348958909620904252107749147222895040031283906762325208137011539090272977473190916718936485723555295187982290877060728788505723291394800199074080361464838844554668146855642538882751235242174997639367459662556625367448455820382769870619166487679528046795793296140477827915446575503578642548079101309307529796754218866804702741011514213098997685090680652928490427642470631616263722532588326964260472945308592424551307400831374013461811912137471905902404421207345981778744229566181893256644602599287324108777024308400938290128652252137192908417810779061117983887974529878397052887673925967128721508965378063621015428289081890907738675891849883998677855369429412020058641754461612928339031272238009933970104712254392697664274444714835050652124326906501280653036399526009321455429881251214801611476638805288476850484251467517245072378068590284846847915585459841176455830339054676048711232780236760243287592256493053850348130435991797724309700115997046243142527205915776161203530476281585327170351415787260915120636211381994225054326622348734873596269474900667111557800394777069461321971664428887192710443897827404316879121886516851022845963287709495461024773765924328708436969975955443848554653320139158551701496481996548662525707383848179400775986078896303872494587633074407730322695780309138091820277571760642088241074997849489719709212330041903439622002926679746033677632250267764045670120361338761462530417711368786816501006371651230439201908554911676304861009424275543474388998228622109300242901131033637717466690413277138302089838596880385500135400044540367881660331356574420161539815165056758073182649358755799560679148118230599287061148692088006383030346537977107561355484027467355930571503946969463039414825770198119190555257356793584776360507156073227564607348110392195329383581138672317713620879460556500585283840487052767806959818468408453755241829237906739377393267675592375752741869717354517736855569510103883933203676640753631466710548868601834315638047956077958367040770029393897196838148756018640496241783710013224328601016996124437623178193229720359315400421647792172672773925890940196537930434119591722927848925183998869595045471018269767648402713019533006592989899421796454835134862912960807411837081329290963916467919388940610159927073935214341942500646974015429248088206070107713637876418403054920847965977337782161155462157293502746857127876537604386423512537312655698043533594570196071226200057961332288800466090480498750383524410003276967023870466558272135689398960681030523079695053840072193723646799171316923274635215677517162874180594828157991739345824415862298808140481061329551304527523993483049037402417832956951699379622114966766986654175374303091636683210622585385001208523395915010850749311734051684171679994991128323722509036593495424044382976964706407278530900115998325738450753790109913714678995302005764564276506351939042127845731025300784861805336836967747486568018543041532029431269791857533667375538879219405141560466868315172027587710976567478670197475972574789725199230054359505759601869507247117081617239046490036174181693675610305780967432411337618608097322133256072475216855852281621788985348662756321255230921306545201528055809195530204047360019676216158795431699643732862384770367001491306645656599802157289088397584590313625751632422089227614953410794247065589840156410679816405216432750600438744901559915013193866361215386013056008965265417486802152605281182447605648144671446236444038366136939539750084160208984846495234283763403298018359837156069060385909686523517020623849985538822225543917720258570070922678076023669170875463742670505370372505935393912302223821192069549396997092005204056781432532224782517326916377630233553055304426579674964846125735045458017424274113308178893912185733340987237141623495179269493116963093040377652642328491208777814145406858508074547413064093406335972314118646908238923374026084983856145924370739036783364382896350523919429749353400718443014478783302749522211116159004990093998250106333714524510296775478677170345885689881955248188590779512186879646393739375023237991629018738363938311963424622929925659894829209433897041203513306096409953171352551102264279635351502662787810168956234514708232916508477961526367054902252013164905488781515975399265786844853503712443151633613668139606648435886540274846333446801609663679733582370659734844592102148240823196862823477869977884918127217550214620472600417806949746961439425285842475484708970392817452577620712292950419900462643631774628691535383787614659963442485810001262316677353696756769582987840346788361346307270104212148874717432998914279057554340674717735033031193348601593983829861851123232688493034572275077556215916478187042681514031175780591635904808072185913981350826967166871211978909830757526340692118399439853458262982623860168233589674275917718084556974026554350454250015339189879785300746255475210412436552836171982368032741941919589541769293262024488484843726622129875096146489035060011216628601398387739260623056465703812790216156586890065196550968713435814344293086557192020299931582064337061745500140344927352944155039627715523301596331236250527780101506928510191824184162613823014047664932935151879942278916841856031102982939326156721748184902325588350850599459491129979177859115512927778915178476157471639003861109367682699049330934098572432560132680760863880208289915038620304813420377915343556498762894586597977109849767413410589902805968854070038426356233892224323451711783123700673458808572051535675743532205493017949635311031548156812364783291650714773798051597902339177981007188105310383625303045541653456838027928862429382389956553863653621403303036688072382500717037842409644652681176170147168594442661898863655708225848399615613742500711785173114854887545806317508095562129877762986532854604734716332961365290123484955434960846628975724777906236682678899193028082197311498098919149580716474551143327497358657481027920731476089326636027248430528525790507795945012075063403201429296142132212329938993308457653584104471276750603102897052612723068971994714392557833638565172587868202046164700390975291469201320286523313394826686276497354273730789644959940672528892498956963377549580491190101710626632790568017962869687357113497568013100953474279245753190072549672411594915610308549758529213251458450029799041614022255482333948399595459489874125383609124059538883297117057800153102807461883513957952545490130106232972184733518759703120581624359552215528205043198817078729348753972591944384224899717639615298516511155374856833221546176745877744647420806369652952168259932123462772559501818892161264018538035314462244219636772277127509416293215469038204170622139498052639416519737675490313914259968654061530770411052614943901687651424202744263853242872915178955144485634949564356833864324202105253173925418588382899636891696561457208326478972840508259231183535155317924064189266046521998667308694121650032028229619264293672467730936754348325432944910011083367825257886018029092441476404335542531407574329777341834121924868445420175574981829245571995079531633541992544917004222885212579019365040782613975206229398805216500976514802663192484939134374213463356297986439808362774898591048991101766446664502885808663187329538614928197198623663739482377542589925367904403255338754469743767301455041403599872735913517220201571175396595161517707987051493051557925371218223927753723210881704678528192950661027659667614142432569049778884336658157848156346062112866455509105509736415585119278182758004065754895712742540791946378681782803790628174478524211597882702814188321870846620851084529904672182869363797421266958241433608285923534194108838035319310563560813547636057985512290378174389087549160224479660927600077626392787966350557146587347462460645455828820971693023766402720685229361060977622982737872848684490518710004975790620844375452287496877734083887383667192411098806774641021327066246438343561743303983532979656152686012555989399685754349360108344522244962441341308329378051303043981253395955753397288987340863812718200025028354995736499007878292000162028298050236377379005634429815422974000536318306617897084955682921465382361132379973090917623987220499857446270123768143651793351658587839867412033527989679808240579092431750907659834857240667327799723117261276163032454261788430643309498969205698202059349904692544904714616271028928754411779646901709023068062739794017371860041516038392695575733280913811937777085106824923092192039259312905498824944533227246173839333669477589920294893660582577991340369995277614163880294159046131663831294173100136812734837742642418034898339110294328263000589081858725412165264477353492694545271834132688691050485738833147980469507205175477218515106934875641466044004745020708738183465463689503737093535419542817799626011417210739652736652341366764553568952601131659997750643329939526938943948725152535530349153396276322380907828493112288239508114808309234501849030325426183406173921308344886197347918267048528784420185550350859275368819637463171618432101744749627342520515807756774637400265268851515613476668916419306386936991833482298477996643494809624093824269424051917251114567424189861724730652866763380288195479684851081180535639118065547309317381749115805437099326883423442694017509368770351019411018930095466653163353927531303450258937222267758186923025101186583053173523048758474696899386142584841784110839827455116390015675096027971256742132848422842067390135136829609050883933006077555977081127998452801751160728332395099975501195146256845379723409419011058907325820023304361111668020403778761454219875590463255912777050783278205585570873258884104118451502494632626158532107342715238692540153673058275535109905673985282396623665738659552688256127360954920190801931389698005898147238663699246450998386427664294668590077885506126020127417911067601794685101266251796820666573515496479865320410142274164075681922047946279133916315455438456499252292288471258685818309439397321876665603486792387989401820947560384276469432108096641564895323744696062970895162563995345332739393699222490555947162552716576420186766040681288072175413400907671944228032188703013634633008069321511443543204878913073720524303409631445833125832736101021562720476177366676574913480511092211299196975886249351406200673810590556922011080187411137684537395917780279693164417794659101025596496845062602758712824708083518671656234432651528191563220206853402141590200242416176805256649299791713322692953716187762963252381556287507071724709922275119984548645968600112366355876221586215614058040051868998924433446893835214598552556223357001568365271207170145947211962137847042764006218299711664734412473801211532113396462085370439279925621158924838346915415436970688932184756968639502003704412475319643022975848069826677780669168467617030837125034942354380849950156922747116826083388557167115008653224329125705357786804487105525908062362539956817041631752267368050177852431529539539417560339331030697139656196793197047685588634594928425322704492055305936305095327695076584034870238743421343826813833980987361149448369971107220572040479180672335149018289822206338932597596807104605472660052484300477787163018237587754016398894520853415280332993701417142528150209854645655227159545085383115570017513162120409104955040462367651373190604879592170116053473293214365740182772616225491276737559342612064442312333250835737876135643152983556804766306023590411365033783303040086566293118512212530861324592307358818226321308842991526062443697622088035216012360525930451274032217633482182705083781714449424521371294698686649150654560614693786880070670376692724951248809932686171989741196715826413408951363721553087391590813377329579150343472252807878400997281685104547237759836723172395793705819558206799004122919019101182374049025778955193156129542773280527674405601278027460541100008060423282712561264774236116364751802247775705710709169966664004384255932545256545528858651177680749587332638285985600802175818450584880217798683795082407843167399824479792106716479396514244339565428969048432017399037976604214982204544925361769791437909633110427238040738915295983436845637176931398551945569171970034829301111468655303497528987093030844317737960432402970514589751870488903547369371985538838543501493117166724631242502385569293688279654538160350058426428837299931772466827534912441069891396187983085891219474718014784334652455702220332397130844185133705407262998394936503744620367839084560890228042480829933018453755144435365880976142142985628104807815302416591334164080925500375058046175474825491187346218344666819329434281637354989225055560193978571734812161043306184366306808165696387103859664506657696703666781621797489991719959576876716343737072882531822399117343757305732880038317733639106207262633943386411449546797923435076239835334332243963070693347752526268505618823859300587058397834373842981668446063590838689832476797207860022816965294788368049098232192030099201463294625333864300300391895937068466462223925222007488196934771019221762092153714701897509640327259368891617511616253060082521037333153661359910914765010161835900894743999488468421337727445376168174535010531839060604482743102703127565671945382647482810517981277051433074226779666990154026811104375962409030405045687798284473276484028875895836530314994536044630102246371067804332261004161530068042770756009790665917963069013826006497629457173665350295002200243357125244035231833823617284037189997086157008852246826527252276002701310636885061881632967662600147533930434315534747829021139067779670844454202904821743075379994840159156830359317342818750924128775099685284903210379638059235224789753797626413399111396935873416141169613994109609644075404450606450185588871057178392754245774908069558855946201599664001908645774078787576796231111681521170680167857720643199313450573000674283348122778150802198892074641249496670780552050826022254226032256760523530263597221253380561785029717786378301836550635295648320914256426758405451789125720745161224182149890414392765026889138193567896516752043104787605221285022258590821485350949642088725832400364582226456062632108711270453907466004669462783076812790223186170327713087723356741287368662865484216532788096119150604486129559442274015462378882791104544528409264833442893904863468466288432269689205943617838721728788213149383410279040506546647783678149788582395950173403881239530968029767856123394204957042648902453678464681768571078706295647427622160300224961983480535391488333932481950775508236172195744048063372164557616358888383271705716995198305384213236511231830661170894841960661065765305524736765877128094590964938295641252361306785702465739245588006964941847798196957407266271851421102427405425162291924940214757605389614211899529435563181023958810132425419838361771336724533505505376397504088991325504785241554111579745283016613267504985089768951914123074385840419691911176465585619423344753015435825341149301417871506541785005516130049361577490377978624906709611382364955921939575999510163656968992328622022026217279276378616417137995257082130181086438687453922944508972221570973824064578902768780944427479311386783097293629938994851319405553904036204713162322965593456367774361400814310565872848880666685570258524466340053040415129239053467496297780455871189780375592425579842260330968679306523393034691717884816523719613643211522199704300968795771781772138577077895923870908678320742373079201459933927636698536924569970675950938210485524673983043797452790573570207583137480705994999798155095347430948014126557497551530989135774558884162365365736476865950306893205706042489994576721824663297949958361553480196490536120660470210597060156699184318395372943481186854133737263702684222905223904282128020911274826086908610796624172895579230160853505689404496280744876832265082848963487778851219079591040831166672079325323209128843568222415084904113406002528755485201109761501173011254156436079801626387031423479858294616650506420332061134004209100131073459527059745347719584540685423853361098981707354752614725461351708492541605217751426247267878407687711136170275670859608004020286394434933465200327952129965052406858303581630589851395194857369622466368619762286527376990628796685244758632615753991651288247966958271699296533724568816045957024507625635756623977979538087641613162545466530608109013705450864495048319669556610735763068604063128298494287270360759348378683923416329028899120385060177087560827775202182414608712448397290988722596481084473327013888934157017599054702674547622418521725197741778830152884499434863235733585809543850029734081671584264302852406002525818935127029904948718634003214757352927355681630284650800191916521181230082921328934498696380937951162973241664800562544229885823877806996241446523094246503547620794037635226276593617290373137629188462066032641612767519161902672908396818473290410773205229939910161026640565235969944553144498243007106070736947736876629628598571642002946412185147953502147720112745843183474451078660006447186610869002028825741600178273842141532961482519305537739766545573197662831539148295048736545465963636738031881209771540858149242147079856175553049859122670828509820993746710293727214500648587088938252511775893627950835784292086252918472098199603157361988645130287442901354362296130906754008291424250264431261294954233886487855999225611076838889508332936044968973143275219580931006826923689174030052793181756423360091720450408932185997003751695179428941995820184075307778609460948625444945003312861304487463842222442947459154470306968961569767143105175555830383625584110990673295524949262617454867719314763987788646006586324158153558710255035128659422481010884456538609739535624227878473142465251803207784985688318080631735353817623681593401859725843530381769666646563999624641451692042199922553691203856868911241190523302679357579327289680850714702812120637708357637483912126019743364384531692191499111058326443707258532133890764357385832631573894600345514088252566630574538315193514570459702642994960224196833365262625762023722044290544805372920102963476215334842124191509031944949061197823094676441093268372974155696232443501602365286616610306130714026885095484335971257876521171110103851267093778147609342945450358085284496829146470481984767376365450406725510271040632041008212571572809872583812318888022710029250626869221183832255403042479479112438741924744359335035697293632675596941003765261296902334763291297238525639583815207119770267100931732321694446419079272897827633591456548068370693033921204792420941276555065658742150247392247817871583663370330012166112955306110793994398148499292989702263416655301786188911655237968092950684176486610243679720570473615948172045507085024864238780663268083416717279698878198837586445611526813741368011886787551515965815791626743335589142512547851264253296730828424285611503803296147725609055046450758476853085818674051765115312624240345604893515246302770613007750065254231955638230979365439154681408029220271558950205121515032938494890634967447783858487367484138663711573207373050121138955852981763256388229013375410417281124665328961435235441310001062320632611629303921259607137663132610165096355562322938067468019985841131916146517911015273458359325230426940812593512140925778208737880964036081636527071236614707623536401403390813647781562942792585895611102148384091511505730977793867514516230367931363156192529779666617993657863761258911864163694523052229060393009750946024937799547248698550313523003960505291796734944128313840205928410186123605423319625577713714460854048721924582354867756561443052648689670300621431213405868411691443837362998018177553551579818599890611985666273340700019179995348779078500954317407463184870440490786314254477078549794761247449687664432578726600386898997219415724260359529050029912277449640251435825668220911019091979432345754166548386749734219745464068039243787279824493862859690028340242500534877512004219282965947439043283001400732543399152100696133951888238870485429825939276674325276568196734509117402372624088125208045826564296386189950994276984392834452344121831809202522925587611030963585896945775161019427398957513599678637631432929034361825220426133827890574672109412475745684274951242116153899100644357647745516898228285193262530277070272772980393160869021647765350597675820507599990079845857745017792340259705678113918874240286571269475147345546993328707795573019341920566358677542621816759973143015174127437190559482401084390342141837700842814969471302505692078624544771303026918321025036463697177298048786065524885840227550252821615041328317772325412653895948440466238436742928963709648461425314563924716329644368416994871485507267579382839207998059349453552556275897178806506178062146867658906010128592641144266516059369126203502523969255312174875727045687512369951907243918639784665145509136858158378197228437125632297169191700251816653407494456738854994703512564214599297360440975573642395491899902403055727628462208576396159505144225781325105483158650897181303557390015815148262066996937084810524884612673009049685960621131516944994190668367868172300028148192709600835648339557135652552930595467838009467138693140221826472878093533469241683862605091575890839218310511590163568753989065479142675302582724140760692897053291999198418624108763654594559884854352359354364460206478281806777559401521291336317777204438454350946344252976884825556448984681764794458394369651769011469670445630926036468881731024875188309967434080304759552658134765436660144166081535378526072128415789414163806318356536134363272136953237603780467503548022919352413372423823449325269809088161639926026194529535613010413167507897910437290047289255380984966782088334314955507324502828840596937241066864592570784020880076495717601113297540609023219860267687979351887529861258306973778192424981635612825762323446619002631513835152200347797686170597287598310426967521684815648530919669401988552166326730165294695076777006247550303523323114536257810262944400363973735839283266299796031751108143204972534873886416560750857515342267503240828702708345907448308051230676806312123570843495187149925343774958673209672657863601388708738818330052055219053803447444661266229054307450783694714138920655880432055157512014805641876897802276799321224043072403986232543478093623159195583532749067119437549939205410434049778895845234688908277579177775383380604686714713342555252635629336580724427077075667859257536309650516077512998001384505821577049229072552376061014983403541211819280736981543710330657596037914041304281739369141710441955714523603696894452576207172508079004641172058109011898685958683760301594581654171410645178369992676144838622075482127194980758333905357774548822942576710388665140621442801311127892311789277305152275383103735700384708148831582754858678441730460132413453176906624381229891500534896472629802353555589074448938756707357984306141251373767893647932366799364295962227685685008856206551669585490848515867970613769797372582885379696268731655576909968523078441249106343709648071775557477339839090106246452599941099156413603828919551668792919967979405744477993813859882405957226696328647771427329495196641847642481056101638385433274992119408760959068200620581997012184157628567286964623109924494451455143845347820986291555797005404465044979672656822511676158233738758711306719916961958267032822721756593806456128479716693744459832059478266147877988260926174760499743429271128040262035612511484267025152984601082051472021452139782168741892326847912466158500897159636144179649624008242051004424891164077581673765485169949946224445011328240279654763120979436450530556912035114228848231170729903811546918048498213518476815390796983554091296229675640287455982337577879452116370765790416621062849871830312881936967688377721713320709079381572947916345845098390076181562880494239055244065270361382077416015029108692878696770808569233732030529311960229815717322784023740777181432758226845259847768203798414463845095214242447519575182073431308819357740232534465715676762584951973458101804105026439060695890757515120090437202518270130794461392705570786669483426001648040745283160374754762148698696471225724547425300965013760640978498781743843211900005086139279677501920505612391301479521174285187664292685973629408684530538291156699944603801067593338456370435243362787243049353487265584987149724446804218804037511982574167874168900084081912660491319838530346517665235317053430962731772543017422627037665631190334379344310972864374786986629165504860748042150037518353177414734414289114956303564679468121128303791921692270708168523254477519494240633117390434612476255358785065355021271968836803152293281878169085183197709176061526333025178238793630422667472742867974711968289454401913347689702480367285327065392649428497533814923135346897711795055183103744290291421745467374129699972534446628553496094499037375558746554856547694974710850291133981851980747445126488440727623024085021585247597597826463221498738499111114659161081059520047356506755716864513651580878076181582673006744506948091875527305159708303210717648274725311209359701695523100843531832693041627943385169163045079348401179379442021275090940151898882924887060074723503023336504812535823857033545932215198586415215846255811650478156272134416764463108754110093761782615501946182798092599214800943678613513362136153179960436998210100435221304424004806372473058374197571516554808204250274162419361453465049441040894848863870779261175107258891018242723311989458383661616841098671814775708727387329781539549144696466009307314176313880492380791972859621569002337990097477312031085836354383305420441792868871296469035713833403240303118407317271322129443151344907505673437780896419253520884452460111591505740565831089783320387825850911908824441575682634736427116642273332246087116767369324920237880054429448593474639536507538989021936969127990206465409687805458001858023617779208718289634772307304881071907193050263794065539103766460979698434899865350274500951602568655292986482561430142851062378395100322094186074762894739488468664411887568440648588542167736290979800922513817275260973224001002495669968810618971253153038595376210670586861467364343448179679434028693720564847462447685584284388470679432256567668006824540639629852291197741536750820952266059573764584393329610268378940408343826149727505434453539780875529295261381344053823297401316518761399852739066970430934904314062968137195267506240817168730736111590159668712382847721514353057326043153966848300788220311776107110877992449034809751054542255337476235392438932988441650787110170817086032174032810153774380299949800125528843365921613526070806714999721745532326144530735625847136561301268365061070132773769302879094376940849012199039439005434269686435925737186066736777738287460609197930549472482671831526210169770140970792939547439961876833579263686559635003929841276951896530757391373164068811137271304201630636220175445955340615476421255478513456126611548971752995039071105825529202754581280490698766049107935853575726558119782427000722280018810626348485736602730463775788254433680399474184655874338746368914599334126114670079831684245537015935973496018057707731755406448348301199576900003164270093464018974245354812286867338919659279025612553417283340446932744751228414825947471591869721091238181813208787510522710771214527344983177255235940330507265346769849999068661272061459549360155894646668084814447643724855460269345782485385822392582419698724553428716161321293487112220923424166523817781043957477932115953941896398539196239903248569005512491483398110412978065736270249133224419828302229834948273963770147892171759143461009297924508092359717179194426630043074362776332154004177436136965912220739020353316779413041527823948814853167517781037045792513996722022344588768763372119845025080951486352816274471243883776819318280914973758165658504999395367023031476319164952190676708182094482201710209985096164534687253821395146689181746240946255959092139119258866035159365923199856599749740453215437223274359716366174201016668390578560502414625790954922946852985006852769303234366316883002736491766137408961209854024538642061573868487888790412743924155980426281380060020140625074783056108276350292290735229789978896472037883386005935861681979028961130821142063943802319082437721567933827978181978086143081541315954540461491648767448591364674439658339048337040100521375828378721221927098244313809864966659762931530896703507725232648257255212286314216581453142770563148680635622213227359941717834889198600938279353091171460416149944232779983147847408012936579120484125401993050652272157369906967843454072430398047910583640194660489169306763046686939865935123656339633727968757635447196437247332917882580231387105896571276513504414222161515785586375250487769758791931963340553537872441069911353831998322830797004046495875992269775122984214580323936137247413077973101396827871078250205919389626325609520005201613682887948909213995795146514905065778225170985576756746089297052518220920324841545653122100880389813811647256647739094999723695029028356183716514149103914418388675882185787153645603704554712587063836335753013712988748348987145593159021377861528478248580725906756050247199852597122208850812073601238322234343028066101854319767696993831387096927387819022101508434216543740052551677783609350147460222275677642139937676018904141203289563672516860124595040293022195119973165158973715141458663978586942305838885563193719797121993598177952439247069355345471157466919077571693037967834689171037948668076476824367055410338711594215003807106987966507342172254134223339423382231207592653133347226954894869890043882689270589104671051131762440904896898244651826426015885770782082023659134267883873304646104512098400151610489875418071640302243257438662825811674885366757829535467418714293430863423080038922566261929820592893652504850161610341308514616184958930530277279318539241217658757775125428020077809613824592889447688339461302254777946603734485917819366755904282610381446609752452976930676597494544499587546712583169826728823882407522568687166584591866920053446543693545032493471581078146301878142857513913273475792213717241154946674554993076904825137582813088995453458410746878959871064487446582056596763733359636299670397428308799275665158559984364725345413139769533095526654564450687967608073477096683051021060743431399348240762851891753548554569411496878550320375775689922564969671445973148518727156523170784989465854734507264133975214001644091649012503441720555285121200122460394452376483314462061034005387502020070783110114523966036191182492415638348544750886117803353681475018551081711636771607345376643137631029655764369403922823754074678916823088345234110899259644599938864342137525616514856123215307448176245807734760991272622638380549822727154908235616596242627325234157458878103639146271883340406231085480418046149115467374258310153730478207160667327361099393190476845842163485326591273292638654725584784013983429137273287655945955770464243420563244944208540373387626029165899317591279988606175028193312018742498912923566904785552151110726093864401916808322255540447277123115228541083911517205293543747306319405576772361981185619138656369290870223143482201420497693294027474740091582321625016892206025212397632258980271486938857376927709222759480002749152044445840798363959363132000309302147779934506286889891076288674330991685328752731384559901579689954585410488120691699380063668738183093283268757460500233644209721135780898075077006722801228168311054790804021020027031601974470119576931052000135239650866382089240550105376757508206323633874457924949452642527113577116299284014281385961950773200114086649846206275460056767186604984363649808552505348549820057834977724740664272085212370441264410531414701670069025451279889589672742169806551635134845864537357712229356285926896892355025329229292870902759794691736671070662605781990742195338369671143683463319720821261754579733798399189107062966827581261296004620929506679574721067071197518149447403189994586924376722647985979627677761112482458513586817320245180934622247402541929000646206701405715052763127311564019796692564769263659286643981078905833282491243473484331574815641754386882690666304399416235499210817789369173035650870259288879359699252702640169258696098098673366529314443116936814003657887310628484389111891474022865291836628477168937126752450284884517665271761741295877504083707494035311769625070211454554271108058896840678147205353493571994073015123049200261542977568764532011728202862123763842512890652876031356692380847579088899421484878165537144748493563124772018814937138384180907475943003627051887715488654862756180070912951064327338271889081649544832242201613534398968853844498516852617115244262381450412166725116404440960619250519866700241044880845349092087861820365436410666685892709010195171354752534636101381553014545253399842727431585236355692209980670996891755597389205126534441477256640051987446492393733440315684681119377054197741973453071967118496163556478488813751433524105479176108108992595902515986811904237864738256490063393670439404354553719792862381995318757493887076139790517734218575941374352111593486476047116154380735559001765984672530653986309918404670332932236352839154263411608419133614070839416074095630151350970665060730138353196101902653654853585661444489729966878445111876138998670325111382594033891989159852642709997732821116321320832744391970753637364204991056466630595869474892696076645737376299359212855005467899456446721736724795182749066723291318747074648119861438407944113476346772476385302892953941334842729761075609268702266292073413522308653975686213609792201975156037737252401166804328349300608169867872412339319742599909835615458243534153801591237818870945807433518242047074213553451920712248968329403307338584399297430731319373512017325709762990439673070293227817106686222711609261833155270854576797355496114088975368923097155507205354888750589133749017260838886076683722480242248296472869780684048049631925274743215685654000294147556607526765336380988739624147661535058152222240691880761734009385784421522330124629074186598302311601910281639879259148120671620396631331913290021812139428540560147848591875234627147733407973322293679792888503776816844615323713822171568948583016280620295917832098401569077142908852292392059827580406214509020220427962723819010001606468205772469401826616020788661385917084761002870208712263670327792430657631946116213540785722031999538744325300107268797997126121151588046699506168009202505815566843472365565884373206129118212643150070087732958571018042754138843776680004930170173918480362839820009071551327596528375659073686207554317897827300848882985149234632370468415281332714493188830650030281637307111138368460245773518486373199160290546366225441622422863164927091824005939464776903673324294671889876491936851250537568594965999854774844012690782251343563159728622378186726484726758728642957073193300847563741414305018753122240400575818165060209178220248375991100957173451383914774936510864192706366788569475527400571557529217219944536820004810472635683231089011836112988931778610764890699270304386599424088692809970039346294926040768015607121077596333140288007531406750447294162789575335098511964086920419820363299862086421511711929309910983420264914897804008687792254574076772739707407753682342676025059910045722098426109987164982504783141161962321901262412591566343405809245876450591091412190982306885527843103953089376557063484761413168339918934053471548503442669709232431161867530542095858847557479634912027593478020632109065102382617215806445231692676303848673894358482425841651767143792675889391206228682994814790640994749469177912959643767053476706919516434665736758569697565042050767267294462174257444782789718054087204801306357373016607169298457349167965157971162804126151220081591770772729157651626706949999377397004687792674578076483941203505827787607225816112480377409981733882901933431212236487812747063624474105694698106222495901453095786381126706693544690564436705066672881952979618132312164454875157514199211030616112924842454166523512079497820506971320842036938464247065728829166927698361817095783475138474643709786120050493041988022464581472956758950707242365908096854287443067915985456413022363648933780750706189779244260248152878529154625308898004807096161605197046907069649726190196402931408195772158956822238947904231990826506226245412896153890468394189714340120090093448512366806931205829634852614277272123779967516037592129714754959425553661422488867489707629597925500597533065255901288220437914137328119015721399247496423596053302966133094766051613621545099605327290296075999429319992213362159970134788113896837964570840770812473025109669140688506266251642806123521165334465812716604253315990176668507228421432078910753310593137119065729602043910946224034472787973200222596971951465209527806646440636244020509198373799868752545469676287984681490583032530434015461037276493029589802761829572208024351295988565982341812445902925777147479571834977229649741615312971492169616602633467590802783632078967058731894154125450741156528482359465890166033183421020267275416598632746219256399898154170490104356993223712827577458618174123801751688876105343899297298517492140897958437380934358455205111210109364263303550948989451739847596688659129809247512246444147105874728346403694385514443586144423984570714808147334108937573326562249042026621251579220928964118614626068954398430473120840588370824903800703565531167978272125381215228169273019111553029844885569899924358148064738752336535538518247592818290441426403118707415875400140613164888471438470893649200263277353672011756465740810471873845734945938516813910427927003388988271534020090314380550601734793268751779476149396095178565202346641695053677191745271115856793123271100848771678051168892577715536906079065162192816886471190989378415959251664683618983448381968108527646688367375528232380863089592005826740464298743891469628282042672083831134849532221207838151391355768280030610216073621929629861970043966803856869294103431618516415065099721189040907976266609718005916988734191542888126441880577002553862396291737917695104433198952320696974943611370610700229859985147854560777500365672041302348701347608900949280355200003453180477383019982017500335677829388811041583481982233311247706735537023573038342586272670700304485423760557906037505662173041633495832397615747860333026050437703337393932311616807010586385637171236452884450513360743968470321269914221361998796557812006692911607198683835004818329730646376406104985565807930846233890522166370968837061093646838013981756170855594693657083959502975108494357087075550168329137181595453261921074294384559914966002050963008176451199088580256148497360543819539479846785043080771141013339801997676173705774063814622006213933873755990836919053646739048565763809529032119549053519403200075734997029635830542335556795129565495455812324503149244646142920641149540301032599466790206808348230925444076105001029172539864563574547814363600565895569903443889412533722729657841805150211101405389071236888386339235752399694103586210133851912861142839382677810510904029992868907564188020192204570245016242856334055419194414846453857727180528877743529481187950273056455045946110108716799891151279589592175008438488021726817081835132823621562155019049311993496405000843827989547768985909968943261726360866137694105508913790052721619934449063254458862140481945552559253845498869401181280699133324565531601764408845617858317381725160964742278555939634078093070760704262876231464564340218759307833477027348240768854499960604002555196349206447642681930815512386986833975428720452364763164123376891028135804042632914588406893808628443820551520007157326349301280279414467096010218650205476604920720165825169512427897708225550368530074176844398908474187078970803752822939847902770960728547036060697130029541652969706067931876381947396025999809115950218828170334972007607535579915133753510872125092388530934854504833855743983136209674774130014065068878747918010883007820343281762607555164476008276034911878913553240975503654981218526331518690956819003390581945913368531167137886305596263363052633334824190295400862607158129421291430125664470459043153531683762557460595486773383037023500045813400096853552380064332302507562869399840187484161843482519548229816534160604711426875940718130898728083421798733236989556069300012260095376636177885434473451893520478895848603472591221351241270116970659833308038266247862790870444901695936369325149418845749541820105808913875627592385299353421754333726650833192875535409384960284918576730572042744671580960646654533243003318714468544708449956319872984244874925983014562698859927467882974943384794334005273969795456621599967345825130992722461794161082861884689611252645579264835357981690313077957122912624832631198248363420009124342531868114146806834701539059876110740769400260601822560374112245446251431104086412053270920742716903938575979797299765633923510397795121144178157503437783642488047491235947523762555871515370252123729157252590954094483646848939789188119650159175629415300945077960798483092677097126285105384461692860587879038931154648977042469332703495799702922258730450060860659622717975750400731737106485620288162132389090933609377896341757142175578063300329515196989062041006180625769095547805451375949051593797881993415880984658311024183761406641460498268817917870438008321308297237697830526839418391121783736762611054101019837795485405937517430517552036858180097322689290092737853434863345172021449702901715953803250972310173284410013098001385023184052362817631449966854619100229039766264658710536149631526180891599469993109350216711561718956810187326824395015788975435172038824647011340432195627600046806845791611558796222686471028767883877976855928662625244107931577755495311576030158857139921830525820638894981939611198375929026097964398466946662747708629845286291057417666937359387179503345255458024000060547954861655798001009749937961901472528768770948118435048294402590241149451634665437944027422121508918097530427178970787248766840391492842644095292614005771063171482194529712393406060392802730659277655040963878045615143718019224916554677297843478938076928286418324887474281587718147370337771455182972447775541067575835877098804407299618898456880364587353341199403753609094959416658954838844954341783751437240828319106437949917988076561020833569672639479077959926899299866722861478965762359696865871068974432563091456862543321816495216714039298734065744843301780852581444728513513991920622833560988517877495067696553134026783361601321905889938619707120128537246531678394796082365411867626971689542269586476112657933940258371996779882135295775569185103165609167520530466728590417616305184582072114411860180283655525085521896669481427508671825944974643280166674233870669877973823685297590343500491745160333826712034632461507887642248666205545945619609318234343009978860175017008986034975811565169516372135640085076362040960830083801982059269015113358368308705482348391293402940079672576275755504031482039186884858818888289791583068867277789659765536876838576886605140342924772728305064290584059973897624509863501361131725313377273712241579748670913170891180759080173436184729870295391691162382228884771377545554777046749843806859870577008133978972769296402002524081421698090905343365106688587793671636427294010410882211809826186864410518592083734746814315233729207419556436155542513235791056250153419704055207340279847610553103814632318728626782798322905457647387068507430116944527119287869779691554497535931701130318396592599008365391345522183468363238273275723174498487075947514737064368736349115894592362340759366976093199334388238392802412846275971237203816897887266377944192305174407534075852082667942773444315390408912188644284832947541502351720384162252745801646421795599693129804079645971365701230598312586678266315965792984012383740976422593192769010188123523075234316973427607018173702496865574431009455718155896052278980091031841955934976412491838103366263196530116948738788881682077255986410644261838362213778074113718254555479871856474901538090566402829961025462281721512936106660263346139394315631831697176633629106626580311282484606093273600256634410233051993260442433343705088273543347193581933756348921890810991163920685665915571480118660144006616805644079680050499882403874559441870368078143179255884912162264559672852718062514223336251996158158589477681340152167272044636229494636186442432405671660929616745345364812574468968265813118712259854242166475102580394283501437302596527457475969576623733749291274688569235348521983772937762620632277312362198334497228443768217293878121392029936781929442227437302252260010986429380587985233038601408965252004472618101532154494166043037076197763591984849501918886334330532173628918184238659227236535806114362243546919359076718557527135094208396940991193361682959752344055005198014866555057336891931991001637085642954991619798751527420694469748916645329845108520633755804733779878562224645802382222000547791980267981499097537855776599337162614691550169980087640365516585004884708317389984732066237863304365613820790142575616683058095150694532570948910202564975090579681146896615082140576633403076056728547783345103001277812923006710672871943858883077207437467462857102695786859990795439491541057403053915996518429670149734401507898789710624389181045219647648201505924010803507040134750760323322736897613921139146434423451888312277317277661494555887407714535781725165285698599634743478351728339827371728469763340977588301815996199350211475964631908964322332358458375804588619079803947322207231061175184386061984517173820200482835392431113008304494232142162079314410509533961218989171665090387783792392694613347781903019592113072572756479244421861062891262494602771792332876088390633221473014546764302051607046661386419862274783594439694172290810001854270663182301677659985125097485744642234440348545914879142211664821611756840571219701128333397123304761443944663026634928434988284193429627416287191715994126082077358289768056731413927175550717241876386742436353753685047263592828276412517800611107211792504789506534054820121363839811701979172629184245441409237585314911422427370991545970205916905672902537699911405509123628490337630823036476730271396024553190325569332494370142912078784966512342699415523566013965761056829361056484065315481601240256077746483871626738631632036925952928969168102182993030449438427090183213092128027621352856937045873592149226674382230044126491420335128922299173516991441098047438732401899003813417514394162077447901329008524219248088282710666911901871257094970684547174123666241258952232615722562919751861698784243746799108503597927690839477524315446389745575685828654433792522557794200036723295851726669009541652466109215845152018073228633848127704403405738343922412613576932555225891123582101554580197016091867104964616463928769449964670133174354848976075364572312080153595731296313430549072465405941559938065201846958338072765456204681184030328587571461093824663942693223983676195004462783700836875960521077143842134343089425695709885363318027006368703222044339586293883065824572491851787946184877567354618735890763613026899203758226505623461047053759014951332117851439778008552133254057923422280121226348854342560018855262032117031146362163435837805208209721311198246785697311593897311537779590941115058720187508813004793831039766943981520837314029951645879161031930316377457415035784686549058144623329860322516441643223895400779384149267796060409829869056561785629218624807402322929290052641109634272164026505675620625665425288383227401888799369279487245730065603675991428768971373832803019572828303307526388547224222975978372252083078565848810066212878365685618048604420321511087293246594063686322861841113895599418971195470419813695352286464228691373058080864420180755649314814907767217499350200738158327635624385634817933244111190787852606547504589990582054195541615244902425642794602812507139041184098303456033239524658061886467918995636963357155935333899640337211172481352632450471700024498159950329571633961356726239595686408043401305805928716298539697575319836259073245465190744199272278964393621406918516820127430722495120943190157604783530293917490617362136169486942776253958257069836459375027285087880111026364863432152998605689382251628044242655395052358008242172218597937764640994357712279527224124524814008577856143185676256727394191795810536141105185762692147085789245456823829569702864242435110526843061303241165842728064969991002900155432191574399461874647212759007126398547792364667773083362986656458040027166948541567507118334951526723391982710321385521616663730001714877407552740507948061428189460777316657398615350940417274456237021313112166193031100773973653733621330535303584495577090909750412023421267184440154374648904045361651283699086646233541393521094536628452891058089644801904037620096026846719784319245747855012895605069618314417102314617138713539666030294999980699846576748280107953174794099488706721280492382947436923987247430158401348160875271445966730910444075546531707921648744732646733913315309071464362567848565776563798751827068971266541778214516612374633681633759560841039967684068671583934424063870270762236128432648473966077294362014072412112981868472267878955733878784420202167633448199264718051155196565543918874163935760989365573530799222498291382303316189299364125911873368353899202435645797856707615655571445967258245624729382945614826223378758534681276577305726607914104375017779146268838791173382708659103456129027573267337357933908650633578861534385818514165673626346535085074083923361818400479721849713195315569621655852155770664607396712434501919684115168385568691969976740076726441990127094122535893665451571225804615382987071160322110056682465720106847986085531642083915947702202069344345851310203439337939896873655225734039105060893373674402451982513637619953527443133809932478286468309732813900054424540157900780564591255202062151278273001463104806771553225428301427228299063775438179743282886353885137551451929880998733330105738236214320890303378243166156614176610126739873194100329166523930166114192018140078264250977354945287540141784777330750791288198516654845287656210256873098975029969854160203173004807227615354529063580890866532629459152804717014135821188614854296735620459393927917792717791508731289942345067932968056551236912052635968570594157652349729506039639509518470445943570799440606823379639408412844933109120157722818191060087136363398043801048112637415696150260750716141492997811132941446538473790782966330733129123152297314921928656875624452451108519593823494252301661556987290963519607582913973568524448697975225341621061968683787341491585041188889074366652663363787098208221411743126148600634687220579299681754830445503049216165341848944008921870059350339265336436399912746533896006626056787545067809730395717374736041089285213213511962464360592472397015618750005284941483054344329466529663484802638519988728101409356093215755489318539249893715504435843949653359157927348531548804802275409023672126862726798639617119980736469613247530605618296655187308565575129190211699474573256565738370225880867022726455130779688094087991941148310804515664578386745702769607945945900347731490641641810387667921136237013926006202687229669971115928461584052047279176406002777724594124501865818628616991041177637795552469154561209472141932765005953885418131375773163886352938660938866864630967051026231478521617218928385813696363930331343271027133102491142113861856494274654987515684354275292891171019322452168763199523029094662072396469241091212770909706050324992898225201446533135578079747699716027466742634215160991564732778941642913215347460690578369821678073717596780715231195603777294415897584751570020907663799223925270670208756722754852973060802709687707109218825939361182751507699336970315596807262081907196178634686776118997180043668955950621870632530989920139181702320206089975104173239662091705052553298604689250174408165608195589862184164439289437213342041296771282701443409605588827607790957684316339605217822974708634686026791570662421321214123333583251887035569267723773103647824561661552859996304226600744875787633946625892346935112999191837007889008838999258462604485592541592052776381527792904300921639484789007710603899138415839902821321130418475566825578512733159403374345952636497808010771218709081895246259595800203756290038790028333474577901093673990895338157762550238361889770414708534688340346088315361854305549563657836104116452051972165735507758140747955037391346364217295487666683869210976494055458399957486043897052336884890978527302484107996018440255269084307422187037709619578089054134092342039710129926586889978257763918682038668288501779708377925460251290453354032858113358792459138706769717786719585975682603841611616032410205001945907872079379047326340056020430209707544917428597904299842647408093226894517414722319677096884443225427935851601201736178377850667110454719291899963584639605327339583751715677746260510376027078841049530028594297341693994704964350181420161887467201804239359513954524803919185253911802090620158622361567588235494606561216251985082808893251649017315295944085264888098074958118608309248571662682668708430499759490697795342087023305154282759721326295405607194447928243146396818155994373860910544957071480502251403563800334611937579736589941847642804180977629668946764200595576219432038741602407096653128086988491311043017570762732802352667243442624958095987561481885094486802778907912291137210295195435513265396893134300790043511395935849694591947268786473596066213918947207554639836660548896914227898679381296834636961313119027102277180484075129845707905990389564426662474559351138490748041246983782830442549006447014169923693242572021789878094286322087289909305201921238031798407457383820428595958901075651902844868367310513084630191297965656283047229573682609959246125820135635351688917790326098312728840709933442021641065745802223859169153498764748024820127443078673058426264374909332642878907465246055006875393733328492088738533110222456254343152624532673740246687445816760075691709093932814780183099824649812476449844416861204631982789732713013198170941802134918321505208305556553875685493778575647989884379974103048177973879297663761273442360806228064254112807433433867901788537870311976180566204736486438959478102498482655961219505615466628984836883279804362204187148152390811847938481519009948348642885267145764573846099306541036545470109429296191590268401813740267911855292405029062658401818409989222053181627580418214000925766229521536322999303270619073900410694232969916875064061231628581131683321668917215091562766689975314758691134580107245785209968336827384932055388555304846129691542507066340785938202087312029155936972139438727199167775102596663181923628662341543002668648017372478667258359141746029756209277663601127994490500161757164018814713115186775458440416551849786022069551685370314860096953333000551274291097278135210297358538634038936052927442718625944973301639915255456200743294567789885717902187728966789716510108463396694910964467094818113238184816085070484474780432457980942287746717926370409220882976636919088105620687170381841540889857801038411836423910124030095212962347599884969497489295260712620957574486866690205936665975955332533014956423561148045263391489800241864581161666860932465256412684671203237661535033375691271665170641672082229289591954418159030331021489839123081135956831416583258120165718338490980512480306955311353055246402051988974899163341988580581426441583788956733019684665411654356116637678350581012169202506836270979516559987174867082231707002954872743504275008392777469744867514619057426106980158803811040518512011405906967742636418280629833077831265096392909100397895721018768797199382164571933246288384116775763323478135703677321964925575355866127664301997299449925327640558724350457195661868216118856831552062093576035813360854888731071889488256889061314703364464142729838957317887983760913153699827319785943038300401861597313862892121367123820523026800400908438623810821343484125091599056173204130170905763762755265768663921879534621287522488316162920842586647292258321091611729928285757222669315378265296572068727542371602617261059526031094956377960867367794642538057058207139067322695837463282818415804964458144172959788412568968709051477892864667239803173946872656201393888346975867049019478336516446576122439338253107031718420444759915195755305529818506726493962022299298534452895865158577412235785383469668215066821896647130148741438758482337057793364225697469452811896415225663145706066034340601419162899637323573983044090474789817937956728688404880657153511613552589297741154768761778803884913845577799706633900678348133911213470668327028548102306868579076680479644843688523112140740506072515658682426735720611244439481481286225742010674051093526804829193418571315245774124721683341188008254133701765405530032599618431721889884537416163901020815969660615284570141702667270163240109782092271116074649522125127363402356783202780522815009929406266880967076792156580508193191188685275844659081320830042702617452252164874305839058310148806330821980912955344219426697710961686035631010427367988306863580414184524432988174651270410832820948352016983609810308137163656768695657632632113789339083972373317883177336630012456042037038507896817467416119328394759258800399959013124562439469221901224637114444715892979675411467771902214837444347465179952824816104737402990100877427397739124532980066773918095704728982075912945375038888344101194550740184290273184940188649239613943688892120287163260479240339579483256747730616291711664311738030417239838153055826954153270289053855049754155591170257547528286549027005270614048367662333644842087560255946330928397923537504582810595950732509490160076390292573409546620547555709656712985541113978129757360924043878597794080736860674109562057965696928403143724897325937697433381252551199504650861648285700964834593136144740493724912730926427112530236636622113914875363661339626485397811022794075261544024977015744826358007867692213389066249494558600405122129237531239731622835862777105114494383046171215308567519261928047885984191595590989506770818434064131155781714403315913353168718603287150300784078614177869407668495126433004382872128107166334140712512410671479786783035957553059515013581710279636298393981120566715589984695147725648591422051464518804377588238069306496569842863008928007054181554332410313988266611538360269892963740881588067171895572522289214100494726828944684386184276908830562174675126025787970000588655834937046826438337231735807404255522788207385240888984584332717850970990922836217336837654793466008556005104147328584310924468589670879255272795310384835078496092247163731220354512733019083933462259915856199447193149350448063258517343976080925946080271781950936159037582457937074733367727341271612634355869755584332560651620592785970352998763226145780402794997292921553790999613432147384335151681253569837171723763121392085144046200902588114960763777555939907422602000489433585501442378287871175115059160334113684489592482573148137549174130363460155587556795644448131425840490706124137230327874067156141187603314679122467947219517800227894353446753593128205849908749033442747143931264590852189265840926366352675248999102628294868714391781035097395401680811367588086713307371228098869076775678198459529344901599559757053511910521659136791102898158664620341612185349430508468749261583313901444654407025343293129659100671685422688176611176393193565520985580757315947422058789853345650189011430541390688009201865540219533884859889712807858944460130400098160507777649720625640292565681760459262899044073519004221964968740039748580184690871940270897279990788750773470844427685926535598963119665457619771080758288018265126251462936946637733247300179586309934998822220916334744867841933808376274298311994608033913677041419263860832267395862024378913388791653070716296842625540990467769247980640973093354036902934566969234787529555766608113742327267100840484386678276638900735762889996334896472323784299939135504753936310748943671072467341905388291763760162026513068481811968949668815565873673414920769362565185857785233172597275240209100305595505407637273637551419650383650761507139673565477640517853912284618752834489059125739152893035567883944290150257813085911778624663868990285528643661560004212924242068174373598706184180001320765669281202571532943581014011835189369913686781068209485527376360311639797267778702990814007831292008436414064577348228467177269252212491168460964852691921931922246497602936701486937600162529882056155616720855002171410985956904441693449023693905649507788733179529270105418239643969668851114539489818943987568391848228584576042911581229928475728155338635728608879773410427673446460199804678468790539902805637464424573755489232572318517591409420138707431372531564761498513150184173140641674326831555681111108531233679538439686087358106584219396974998549576706436801784219788944296456652120394748103551249539759121288712030725717110561376905001866534689933366450121888705922663754438966079675873016008891443197412633541275260176272387279465440622680981957376894190213109686857141381057349894241998450621303268715601221999094905149341965857435450933305332805714126894343571306004542059501323095213656834309623939563399847055024916648314395133265333812914315256943804429867980826472531452571798260373333365372677573659796307002121088182876988461688181381392913726429354467767149525842307049637861740218223239816176262196116894441058832077324339899795285909632733320817710017192225990323933934005032495433852840042864974527382849223059741924214683890249353842026391986896859238901567026544047783981051133320488577803170333514850680708169519908309772526145430593634346917089271800834381068024580475453922601547063635271616160966654924195358685006544844838924813053846806146546186285131846337089668806388353325437699781162727836993028142301998834137777743813033128868349087687133951385918998374987403641062812939560347749179593871055699843587078227323116138657769028407758451600830561064863946751620233369185906597222518808530321756957801079670728970984353829874258052406275873278992380657233387194732669800842344910314848982060275419980551210015235999692440439695335426397188771028489168287792697563612497369200389568131527606991155190801372405728125920892565509168090288508849924339551062578654884549628271493638007753306533894099476173610069741933380059341691714777252863210668400104951990655440289720682465994997556156754209877770957817662400061272082661308628946462782158955126428407073025590765771976634936037629503642433008095316745042729657287443327585677110443082858942310376814530417149847308102863474761339829274948969234845018409719459070484801215325339126026123820908780567758108412424501454312215931853780536151936161267325188988858222713055444533133784033877053432572641659053303780470620259436473524893201222166927890072147964405506560476042884064251331556619203753842670384062579700438845302644499582851703207096122079336571720509764438848800996464535979038954598425410589786997553319969495584402907692247368906984246818722774043117447683785023720055960718572988104170502544907821862244042391249718330450801687917414883681205286174761359550697246349417508986623297477625030503234153993151593380672869999054362989880568802959769191368034839626589437497838731851940191446569366811936572086969168137350404488071872198306883665492524565141128086465688836404343658865060986399871024107599969163130814102045748839731829569884062038374353739048367462474964673969849092531108665112139535132405156996015436719468241596450928890778394721436612440974295005764848606456732117898028686311735326616409355077272559025248168721980841609812461357183832418282229114240876179781564492749000616660785073889946628758586364596828852241707498807696189469649486536949028895370900228380786741700914371360621516815422537544902978454380037658676808470542559930086903526847333627126682441833063427300657326927249396855740046559962106099817850442681510901766146862331393380529405022445793407124096393405193675364391414283941220818209634625140843846661081748213185879281808945860855970152900176960235166839493216177361009660614085235696640506400948394045138586543702238315550065815709177407290311088001597526835426880736032401886841816443392632710031718685763653506671557035629895748055489148916274185060989410781393047715984061551658945556485528020878216929701674710766072713507308265297081585802543782084174181329473917671900108560547191961675832547175652906889349849152062584778888990310491730659032777318833557362564311427853812638131014672935555579557917436189368883139396749336348346019987307212460185064003547013500232454344743568288670900788887690016070077506863490509152922750559558756832464896157058703117840135193448228448391123066223366022042409063460718803865414828703329731751683413746328776870493999117504646565953940210915203607828559948461746597987568032337332780314377752778562405801823710795430087452088699291107054842987967400419926048577516033791738793745143630281143893300595639372872226031429223435318800583003445559453532439229806653945463733908147473579659908106169397587187392785306066969716153994757940277733074738343472123895177569348456002676481158399088201676753887868377722067964249039160544472929249139185514827888229180381223806951937424314077410376128151651348272805796939357907788184279017011018371806514621458900400013635093966091114601897206588305030843869051173634296449117720440249196984600101647679088323989497373369533348348293640173448020948529172303353286448405144954289323933076449744790799233189714037522748378039541019985883807023419305771979302067032911702749975254336162889256466079967533077936626919892532767782220101843185421010139296867716522261508366155754041750271288729849724998056015241665102805033234663012604540332246811800994098161712470547973195316205639415255545681137719817747674410865845472578541013439892526378391650700971005645947085438237818922333894126287771566813157283612353474380353774838387084533925219161350279170008759291306127012435459479301207054345660708726291927024904816303320288045443539364906276664129719077758003674459091418563739388562249349639643223659396522405198589256287887744131618525624034017463330685954803211624291406777459562192453362566935408975988545432207725050236031718870058212034284165429978555757526959812513933301667689223162772556001786707245981397579938601537526792365419690292472376082241877020703536952185831478961230062071869210480461793607140452877027227050580155347486448191125891032777354229979343152651750199850982222232312830519978671623760425403114726513488276224948995486081400627764880531577840238304199147360136630889711909760710791356344379219848964818389323122392188451145298861194480566612416770776905179895154306149315468704504891520304860851804936779665404069309353645922999943247790833372112663282495251850389422159740906357355687339540842565931571294435387092335881189603656472403039868882070755985339849690127101974000904235548534604404775220216347764897774459808157532441314530272742833131341268013968831938391434440632393764207015625638479818540405167469291782653249827358575788404104754407389726319869423603699656661772791087629250226994400717746781833413316347664215934602411134141745115606686856329131771068569016089111949909732261850624522153063105849109833934846072244338057255247593368306845433007414523458606386321313652701528092181996219872640947904630105218871816663996705467491795498386208948722688594279240217230602294864084271185814297112398249271799861883636926513350094401256769796517680165820036349791414477371695414113768995565537927310142006569425919020028016139737772610253165673826627272313029572776347622367118016168552348973229928971302658420718345384939642933898866767126402682959263150958500719642856141541510606392425898865356894749352909867959981123049860443176987166653938731569398736532855957638220459255140168749837290997389357819203850250300641780038352491812975682831457484402524935233062273007148362690734285266916440283308984751516545522103296592990194720453021637622270876869109813004043771472318633330824394676979581551326748664523849020574529107888806732213124891708047406502704791929216209384965316887657189938668602991097610023560260587252138601842708226219775077395798690455295891657403732462573844745676473802391571046714123843553102335682591384636785711629864536712861972411225470862526943045813000451325269707131280969589106462016160697985875074898414638300129722951246387212277982381307865483614923190070289982753563310030270032392188386954370453382426865695447943747299180597449166108067306610939346337734242505633665471073893144455427419906477792131475259545265751068713098757921815299411400366265189994070892969656607347334492624514947146164374316037143726565356979667427455272735953100650829898095595445455122172134891746587442764206394238867824586621311795800844246991774984333265332821759218859151412518843143908975144126973238600126157202150507071206869323363925058463230624437362919680070564736839224493553513125510766767860869699060035660272345500147499822815457788302000429663973597680965342135151353932563279393233514722169320788699395014182261945449567193424363760014229974656825931314099732082572415783041384209770875945240147569480104405934593968774661106733408676360665599503958988464386621778446538607346028568676793138291030600337767463095658503553989461129138908469224883932600019673191508010313292591725906484690237374239469140214578714279214809584017192103555354540241914485671620834657330701869599456799048304440635797966299760322090932548067380831031214812652831334974103668498166122133611118237558860193047436561056368807051159829433943936603974572098595672271638182386978074554270565127649829579325670956889889016808187883952618490052028790681825173992443829983103695568710175733653422671226081010371971808329125715012867106209209615934773857758789614046768124957099564445312751936808806210374587848307150629433650618826939608067825023187092604625992838068882910106846570353362023556040728625259954340376201646300331943813846948433881238706119213379397661752633955960303977827798682724702083314226631149631537003261607976730098281571996064060592321706879938663566620921495861004229282906212622893168864505545585037152417494785351062611354693268070033185223186548804526796585451044130140856382237226282759134730576503678703275374201639760934605640065576234171027583676603779242738176988698958649399017222117445269619660344016793050456743615697043769365373052518944303062062461788250869245407118797155147750394426827222868685558107948981405611761225480042933831624256658449757741908057639300001018237854743019423616643037699274862874487904242804524451453977483393578761899964343494196384113360825889281956082386206303514325704395549943188566211726704483463797366849481794025840593802636538875492757043033720034085774510250177499596293951810548681705340381830341737405202900009009683227759633586160801052249457691735522024827173254589632731471055459316895301619217403733811707058792379535326018734388748110186770340748343611002246501042792993660110786901249663419077556280719718691807332895314220060106810491206848570222053819278765546050036283475222166679932087497304944513208953300170005264872796118441538230094783888456472144872486970415630864053045475780477384213664262763481282371700338499523816904848446820686619792899008868001892780563869227803130951138001859091980098367242436162356467719878030161998631889205177009857949294707308742563975803087940486111838581933085766570385311770817196284828459810023567005509064293171359903357762459895472229550716074597554417539681484628362147607790322825491274534328781268147554126056041715373347414958977213332258252440676345359268893135184694188453184385096915393759533719435682535642499061042744327254304479019004112491166362602712789833692468928515568716052451473197322482126120220968371578786219940041071583519391554253438598073488433320103467651651314067304622356475312653985457184343014978954907381378160773285577567152131667638820480743669843457298885016443273693992735721611836272938748226736816062463349393684909880583959379194457081748047996609219175095051707516677510448056322018044450079170357504651638283733912987602494629635184708616740817305667064865035509160210075983688853887344372469608354482249440250177817137526700521452082255527125659082256694104517134134221949825018220081545662431023506287446612283841693631438468377877863757099219788431994969961046283986066933623024937554860703828428116764847403732457279994068895600401873659809316487001882899877951523539545775892011628374715010643983877622206005057198102083220137048003121681595797040663060341070173789773447350013808265641910300942144681603120375562937787407768677614867343638639829953868564882278396825618150618869970784917537584235595007046504377794905895623260949694862009484625090876247983494080460554650547263117586555065786446106896170585430191739395439856938132090280843631975877162118235433594637136173816154963318602823288903474961225143475775403293709622667353743500506186813066336125201317261355550276034024877629132389900723262566870086954816952607281962964215271830744631391962328426362695861792205889345894029000146862457276454370407785680613676288829216325094031584907680300967992301731767921707031048280546682782573107227410063982020415136430348633895122179923820131930324996395553662745325484563726271102649197809387147201659354982911355527478658962958988272000847186923873842283103978882829726339526528680226725938131795213947257990075300568192520943795070185795364645840415240608352706989474098047995622391062593145497476931032597798718725417220918573863730517847214093154885927068918975140672406922215326189462625795027471624799098129826143907408772974694976749478132757565206539102856020299966471965191011298065283530366759501751099186752724086408054540542411673896834768057533176662101325484726014187190802863743416925149470496643654118125433242108675455547974516848868908831951133598976475387816836802326123259286922231766248607093915379062388818251169842936737092595105019039194560803866568398034161428605480836043222169254289607523555608571688884875031508807452628622135036846232521598292627470691343050595830244951732188995475203769749600155747616689689895304594263566937070946360519031850431062568549471421244672309107967601803836700826589758763450089717134554943009526133513343520341916461856237651993476001827358992619536767451780389909639827805858712037557242657859347902232412296596754735342919529638916187847837120449421426107275134840949360961723232856554273049492348975465485648506452747318746213698169378021773344031928125621543372423576251788828227931366153867014983921471104607761419893623719335478907903036699960691242892312666323796535992109581020048688256034991173504147227937005429720954525770856196605784518294030895551465522606226279359710735968916927968164116409246594952634016131597346601329495555380845582955382642778037810668947958244784055979709746144716808547623488916277182938439366534536558532834996637758291933525771760188734303835756034002464083925103668466541996272516708941689474374771907560076930763531553165023109605036813500645724239952293064022469831845780599818568017000742391116248627735318402857795343044569959550702400997769085276722752230833553151169148807214864091270512511958693259094850834110519024283296307515070213255660186202273201257984606148044518393467807313309937386871965933207728425147790000325582064284515846414523053975279784910093216675419871560261494182474624498973259006606578993255879038827078829932581966889555213403036799393927875900944652666742563050106308930392011221599803975112227544752435834236905928855519572705692223757453168038249012219001439254642074625726420648799450346880615116448130624871960047000133121517778474247883415818054562214237883462033267720754232221841084292639001785425599830369112701497408764850057774553583078767961443162165552957393323214520138241445232095567905457439938736280631696995032346505136335665406282859268499031463560068474679088055069980191685780776746729883035894679767874875357478255053606359212309665477139781584098193778818827248165819935890928508630949178435439610888873301643932144802825434003302934063698984247102538037515974816232671520046605593729477043913625623881499427274304429250341371108420022588733346848674639792994354093385676789337762136337243857301252161546221784488913975252185915044056369684035824740435783377443184174140818479634679048351924876299382774789015891959576976779354270124857213186083395140825113332175187453324589336772797609302615676799000237888509658604438750909874898884246142127630829488090257374879050204619455128601064321428132389920958591606346904120829713117690319055886603895566233160298555966409572502857391459577841496874072360374901347529973795571134009225672818303209013899948370364777043510817766773769636009140855672617529117696485391049404644974354089060637588091991477117476994041776223811873159689651998238457543995421778474427149423835713059690861238127040205742896782647573417937399271843808683854420246206655239033854766640533230733138259257410469066189758899850908380065300874317926250795948835860016259740207892794109010840863510837641398899329703669874151190789484079127629319928377906574917195822323039072958544934151083059819244977449867916618853864911052023821525910970991671873449554016691324562019780636573881523162462364367403637371729305520161033840628453477173574248936757870556323152570040163946805895328175963227678230029629300893862087709246518619121689757213966131513231063149458071592207128803108673761671793378901648673519320805469509224715414900445573490018056617414906043178902111351296869508053773612428510838315823856618367256186113044183276851413489845325373922676311006818183085650893047845519788409608195087814938092797847054955236797029929787839822353531954690026587103059553151566990699941829238810430086453301730712609031365812794562892153578368512090825428962248074259201344896987684962693961003945458899060447255099379247961639924498966914062246602167645433305168064907575739546816068629032998000022020386646242841494733240144823743232768746164809499433087449799263528789052445392535938314529015952075330298892702986933967486731172348816296028245335985723830990086761380603983221503459262617899154941071713772509142235749447580855505446921037937315265918118990426386486928431224427675935903284575400808866088096924616711967614619703229420186625185809492274770752864313469677756415288810155147097250632564303591618719609811842328366723008010129782498853488214681676036556262680035258375375638579793154203505410825306827371017178906121512976360003526340092172374497891289936568608322986591544376563130014211273195827138659213736031045746907352918790230635635543978925777416486757589753176906857428710627384014325981645051506659224008914772079914587085668507665046832691849026160474531483805515590817419610331986791492795561855704713649497058133782251137475671213951310869119519895443475575790346639180834319006497044718059117873701947615378795207034099104842305765303611187228367554418999017225950273411619528423617897945623712130006577445285945061596468078960940098158104430786968695679543579537538764548998151673071339804301683711720778870344984552245701478921641100379703047085073719877290286318118673472048557182558889496055361740752452198940249132745690853839474517005100303303131992579737706310299264652956498120095505324972171228858128472394188975381834558919663413111847506421763696124758080014461421019658675266951763808135101925560102592771287453213560769144750545414626809769004809289600894233203147473305601511911235874997987784088606775644221274265859227164366106919856136971181376017860805964533536235517042968376633752834710215788150732691390426818780796981626096656476356571846374572659555461078326984381389525259721108032299029181798887766522478041696113142661014292910389175865304522298609217123572062747739864016637028842741704560143594897670527337415510621408326292209095385868704630835046360868985176903708214785461266678387014597323406272754569886303295031491851212758452194088210223636770139144380362960690841269662267981233780230348665975840674544569445573559268241605692169798670935661122613390914027485184912787334548495185306519425327400244416608143348667450446995561151199690799111923066818607851066380020425273576829395141740415919798657254123836507142849730297061339280151660089879779326745025105745593923173952303871350705460116363171152411954136956316114563651588205490507024758744850482908964405577012938340551349600860843786985582141980628550583633040763551438944015430148567641024888243543509454533381027516942341406511953230200525421696053634449477006616381529967018132110005119673703176225858023103820145105972533532441877885840892396975335925105437537346555361904031393237191912925569760044596748669551918434553847869854004922121907199445271126647507662071251437647815063969650028039566937632020086090692467226047850615895384995115735039278244532001632703076063705547812466661573987995078166549166326628140921049133557949989954099068867141382309568084437224627025147971087133680283244289701359666600708048450065646000538910837854603242168608301011995181316013673007404769735736167760898837059906205921853542876738878027521441435276345347282709168721214442953046874618225698076363875395449669654342104829612744589725194245197641537798802239325072427105560842725195056716190458265394149106012799764498232490161552568872667676832133511261586256612336542832602939107044212393792732218651803285330616360192629503482697568642563014473753983725375067708713931449151097941106181855112359948212634089185045431498993570255929871534914904997194122430004820534069126687799229841006577161551628819170151252249711252562344888306056045483515309644786163093581865709475662177538460892213614882395316082062155640054322119801070813213955907523916353812908990389947456926644243900164085002412662187233243516483410925201113059407809959919790285344268058791923181772210343144359344373770949073949373350323118429014065645591699536205202247275880320051682133587706570961903137993193657721202627273149966888328323007884349768024445269340680276176741723305078517565302441543503967993512679378123342528577022776505031579188171694146859632057191078845855595088783439188531925018553878266845564884253982325861537639899934406035076887193454828002673882995308759753294500546016116979700209128362773250447150249340272071926451386466860258562297851665267781849617154527967019627306027375134279969746474181712766533071220896357784391032170099219721727993165503112039090690953105599398268946290778582462208530951652285205901776511687348801387274259459661299661184569657820420893537757513152074743923010498060182955094278049300086582910665787880168814129691493516120957608707352922752896911650159875974191373117886907282765631818429933490353752267156812260647089495643983057137474898113309806857774871236484340725744982320881285157686165411618893791999014725783593870371849529821716672057260443357400311310863599875127155987255150379589489160385719734108714835016438109519346775861305630722297467190507279027532124336693356284105886574874914319157445623048210738038133418081025473553191050145370768305429969262812977843975977449448217898677633374591290275288577100942267170330849065299479064467177819008114243317709005107018212492174334438668617863448641690022649034109494430621701321561266379843532121970631735869303278887607463688524324666190823178261528082109131759964343748338010261795520942439863333664241432713388729867033878889592343407478475040318066343553437810947011844911862150872177340582424473385450492330173087846369604283712175937150837608051619474279701388033550748447352351999933195036948203208485154286847669944113268539865538741488262258558282182894438794264400974463351566380872444245128473848240763342164716033058217443925459833902202981233765539256668503180478690870461912964463434039904489018038055715862009664860762856882109933072492427310796405379009275892468419825505846489143144417547372955965605295849420771621401994478856410895691184989241375966268857015882447936775091998330127044953161663360861001508300991527639523806008329364559401106172100293995625751943257825225625771322019949134388005258001469825543657649008933163797429380839310463782517518642857435382358306291359638634291563317081765771526990933288723574043365938247688264171934135881650146816384305230991083952076944987694554726268269574608064067391216535533319849405045690837784803899862733442857196338565113856910765695223114196397679350397812764240846346042531287441687403076781384951312664544942757794728125418542896210264863515373788215453735720389973296459549172585494973506597180282323885362230992381393874334457500060586192720067580533773779030055110325911626986514339838888960582491592579478078784463142337937383824380883426371879614161021360170828445121031959075524140699581981569905795237760495562814675221687968951762953704707345574760482994742435870186554534544949081106826326665729447628645056266093806381124090106372619479670307701721516814107253786618475593267446395453468775019133826120051936331777083527473965397743058053027924366718347314376966421175479415784349607302764801294009792047066399217711273046220086932190233457054911305117263957535065241052687431932172489334445790078209044728719302778299381446311047880793494477981026190950510488318966276293283256213815607047987269419027657852673309753502780204163904209922997277158899527262833744747850377458958586105643559072103035192073580275552804069711721315392070314966361558704326135285490054734475353824991529925919501859862202873315455787051598008390522373058835031273514657915374120928418000629578243962243121402531360032521181465457707692344939210851823896712583081214340300687014010375745379610207322563923618305619433218529305170640149598091235763666450221501319612488177495762051567630747250868587005172693550793068663956445497956515444727209547532450875166398859720184976060848198535716343878591315381192053179079635728017932523367731300203306018451004997963641980639375076929159070422769677383885440892081588613235756226366864865750565022016268010909335142454962917988549767423770275046718496016168954175277619882173675271882203905436787672455970309738524350788614422024526452408645445064188700425078515258220880146356118406187732588972683106243718158820933553482592826068843432755261883339040511991250277884731430364582611198586741192857989505160531234969348932786392290546072504186779407575843459437763514137011623974536465334667076879428758675671806028312226857391054290283987831046281942285548510899805849621470358735121608411825230943190248196538904234862135566157462165113500865354594547259172148982235422239211195518869445733217128283650473275810285037987306584542890852452994725494371105915212960751285989519010103782044838977661039298235518786091024365334017827221900979487059321608881332462895011873044798027572030581613249265232784642403752784194910140753118262228563123010269713624806451362779560903864472631906065589550852505340155393730812564334173984011893300266329977010941402469646274727759526403881098526946178894111732636899261406754284849961206243910914973686112406881788961898090407658880124067130816366474528070500482849967162428969206901292353969089219973028230877554516754426076798628054141811933357867280185944709649562667088743703623616252476456190612957168750893739956236090707707147644394649728448038255327336424320976814497198559858395309665714058852001839510065970928555615208088644945211643707366030696555462321072311321745881356530591160053867712620261622775905536301647867298996500013239553522091426888234571482685307645676632814093145729854320984775104595574962730786494700911255994213909395635955349256470692346445909936307192824068301763976221525240893124342854908144383578279861634546211494251072460514001473623962120241714456303079507294395086470812754622199749768833991053308263873482566226188287155752101324424355758619847407451783614188837751339458989401191050205314432938905302885565172022698001806642573007609679939073388864015392744228446202646241352514463352598769580459219596148071878505025788292274394776518888603846626648980436256723691380172668482504061717763747501911778680152650248296788028009608291882926710206220059960268229230182767491637002376031709708400570470858706711352379648669336407673966707104644703665387721858982032307911069287329898633825918830048542827015830983436794081772561071537863576630882310295403491525989081956172734672202651171092191706574391358533222910592314672611318071592786416005545332972569256664851176956956926291565340997761012537544831615465693510570405867220042594008054095345833497763228122791480700899317354760846037259565550486982330166612088887348993548552445426355854520791056881147403297166201808069300007935618852487679404339174087829674286522276963933079951106908246390179996844022345398751607509981877465885948959678973514066989278726558695824790547374309751422197622809117207587509963108047619953426846018544580849730319321996282931479714098723326637736406911166291526885749043127181151228332764377546867426509469156307703871961368308891698982037271400322006572079298000106570452583584346509027566386682344547273171642656916379396912439445944438859251512746330168027926970266582728504564280749438663437153478119684745179204714660527646544286058201183893978599522028525176255447267535691538804313623702580528933573116537822068835240919640131170492572930830673825074873057675878394998664812185795964215753834385009170170512136006120731641176380466452332492187290731278832278390886280958198730846006643979116010868484965600451716284582244035607273938009569915454945103493447493365225313057215628145278610951232733972929691944244524522242167338726031860378339452422587737574622189096615221577924263663736706591113058323546503749140242848032689496904833464975871347646835945350488306310187457997771362861884757270410676142998053703704070717380318155280913236384577449408202292781564379869841266503072223557566471213793201783748426755124139660294750732251256483355494210806722655504411791892947012676222311696784036275820467758974007637173695301802090763443477205118648009123352350321866410061278826510440020811222991970994081387897676081726335609500693038646250184403461333732628426790052847286811332802796985284348774004143469303485590288988501941047248454694443266498990577253719787327962193980031795205317240867479405491312257158840964833498538285760025228898709477452526949578729189102583926139794974507868123878409004050327777532700523596129468069576772246654151575463465879616069472404106581685571150518980183830618697420419759168474609563516093376367417236929055367199324677972792115153297037909209822908630897992693369412357531219105172880906148607093805149279659819218523737729034684575203041536647800602644774872222221805148290179767215151564657161977073039915520024929978249731415969342959066176438571924540887353480568279112664876273432922939940537361710700063921167849328028327696366112554176804063134972277313358173905419935614760590766705993745857699424085827071389307070754921376918093324278895748528730655369601077998837054377606403041879436588407185911488742583417991673803064982194440288881526306866980218870728197287659128110663577795971625635675929020194937373152360943513072832144360784261865979279076709530135233412575650206431869684429498092776647057801566980946161086064130276381500403496476958145383741016965613867029104604897668904280103134025956848363916048455236932548464525649390681957833874135273209203764058270476549105440893137566012763390222793278120440764947087001022629614140886571853246894103514884532567211305360981449060770185683599404638909736795576160352046875400672940859077713391654418758523026192252774801655779656918845458418097475230726315210214393568465168948048808423106975973060899294569136034198567994595221086653371088949003226811886915874660562498391106093153360440979400963942305407860033060191322889978707826128228990774344136642701946411490997716831445211201714227510478154141260677297575236471016677384422466533355612306979712443534142737972843609511734395458539361467332933213397112956705563089466184420776616030825615602661746663124594841957180890189343768008751466331090847972055351989500725877587004664927999728498840526843442310992081238227259038446024423363074902655222688797621509936950214575105938144016541232905577499559479193182230692644983766483516131419388225642202508793958904448420684996538413317236258514494535467627674732567663931179824455607482176122065122952464554113237814441026445100771557233142711040411049266196635294806055147427121399613033066716305330392296164703874671714943167242316551530100540600135773855293953269017022471831185169900901350618979380203795849049606926454388034062317259109717954306597202374692224182543152952350406939982926538809862178554778752274021601090927329608616424438360338727898063014186192321668213905086289021778667681420764707965465354379214949022790151051346406399303282205600521214071971814398189298490342020028187398790853920084497706833533098601295744378297058428481796077634784271355015056817649815618085851573848764898594072283025781467517760868928086115536718904388034263564573391701936541509164336837542084602849043036047800772626217581813848081098787926690653013952182645627406888358808940130107538014642886428003230216428277148029162740701946215106558376433839043770273832466868802005471574724227358781763124242191306287762068194485198708137595162061139533781835786705516526300348002318968685419448978017468294265799721123967628582975435959451255895428866688005615660395751618475087447719498567903900281154079864658176126979294268884067573765503094975594006521120615728390579855206350262102581563891655481851490883959363955594716830279122506733638281882928823040810610876538032269492432938732142183838679885646151528188987711493862858175520941939447616053240298995004267930595250419443680131491814960740886145934200524118016587951028753636352617340562417741909149752471375232291376805567020045854873979625008472102627594103510463394298731781269032513650494318222163157490994047280860178842825059378001825718692096360842373312294197671377372562763701301791434893632019961549179008696342974155253862532509733346378775558417298883936186173046759453458860880581751549007444642206315276156005220894638932123191971290613108123519152005602060538218768080915003782243629092650047507786190406057512302793645028088142214999491923223952197240883615225797634659738347668537761710535979039096762204312553253504201311656713575320247126436255205091986572309484472035175980866224329820578572924524797992249121822170359125273425307421720895915697406329909336189760192475818476546979861103964974977912010214510629721113572291188016913193941730049616822791785026256796072090263342004912346423510104612527029121134641802850019776142913177306461713649652102333091020785277230261611602962500760502510469111028773976506502385573155268369965359777530709657194960227765979211711154313925061831223342283940805428149339928770833181191150842479500033290555367031472698383134396770527051607936809852984181760312436087464505180056953478827259534126340651747327078275922386258586858309974056228726264310728962572202920420070760889706647265231858727001903654257299189308933588533892211864093627167449784524543436977376047877742972357241682316874302298280310451402637797572443542632239973199108737713383971113564761722936241563958017570305016483099115446435083889573653363849719006937084983538388570903321728849004372820770425455762448636784224682044716666187365318705996830891496759675495386195203905747755927732022569370464857525197994763938293310350294856273458242967602080369590113501209645281627436428171007290429541643447091911991428539315673013691891634341145362787091902736687926184995824560770657187192317199740143023387287785769474188169428808089760872459309166286417967727946315053858791386628167116302390652491205528876438390226333980216653084035665250727769933617774884828448938573196684124818585295436936715756450372823399645026324329114971966844655216775607049358793852378341978325014383378907747762315024026429722057521853325194096371097466411297757018030418624132587408738626623251526717477229780931706988567057499277710304643838776393815320652003601276432650731580358914298690544411012758822093578039976663043112767040901613418424737720177598369203862362218744901010546029286320896995880925090153869464663418687358336730676361523810135126544003881406859108833374630279788723504831855759322736685074693063791769447587009104071664649299472753041389267249938181012193424800794223561447408317038017635988612041059255525605419138387477714832383530925939649794842415671259492266139410410635311172468411678419614025911253218786894599786030132134493239461940275409412362281451856582161798425773492275250824594783245174844349418762656371673087995545475475130616790483984484089205312700117298317071515777714501822508028739359699362869918557083800689695227622172480904772799003687062272882632581297281950562779426623765816060346714747743578659595042649313349828186406083528738255572960248048951304212644298853544515927241797380371697434067393270161082243590557016607996508261802816166034069260191019351401328157886079332166002462903091437609832735598068083317775389329995761837074808551886817642422055561236545190123361331703808194184602152602267009289619860094800894524642314218627827057985018477608548331066016908647973940435201384846681083080176064956259800714859667128924542780859796796492253856090641731653189839024038298700953711308412723934707925553427119516937911569857863898383046377007089173325297877536311268269319429362085253438543145283179778298213043797215554518391417321589239005275684238465056804954159311963817656330332287128523268480174085951963347902640928666853166506972005088360049508939298434123333709681028920296085025787618527864937189396519584673170593928222372284429655317353955734876869152675096691031094111286605164053711640953900183897390174951875963009896247329465085445362182278763243710433758866373041985310057340566304846231822597309684756115139824310822076190954303470576390998986786291310656564909340687845915273055634375327738255157423106935850801682532904190934641944782731931036492586306579824571980346476266825445311211175211505264971237180800797241216087800768514313479638146185704245516908492370231100061221594917053908601136163144412930087956157447200857327212167402530978196942022367036312503806067483885984047167807407318522701212633677277210445249423307865396235423417373429502430598567896316598053209515545880839193359473278149205610204588378663529762674954852029136400687411490328499023723467483483437069337636728057517242669295305709238374776003631824722912741283498610297002043766705041875786494026314224308638847139907267818977128014223659955923043050039531419996521144551532573918747871152332312964809510138859686992007651535945050172163772940330615941971693657244544594966190666772055503639161849280772566320140169791601201638351177379205697137035858896130193389260073297760763100165160831482569778185342817107043734086793127041309219258017515668875674489862521154305751069341846665383067566588498882684395418784940113536852208021510305097746928793675935162450774380580217714894375638548894770260193980781249975499928899763837584401268453005537860562901014598080228900039962418957049759463303224251132967324452202928977905154093713137667942507923296734083676542833298533507238117242064163744308392263893648732493432855979088811324257861936830536417834731612901479166009849398272395536341784512615468188273123923025329958278924111246627634129636873660668178591575082531041777493701413190055436451591600189971354272914536112591490873210992240303102708048387916336184702168757821305191683168362183319507621442968005306695028361107026476224132098168702310959076805618299327131454752599557116404541411387804243731525165242725938986193802055536820798470306177362327907499283900790330023528728059823285803449045565502886821289851504205605031416365236277284228751269233407288334594684740182306278946914326626252557952070983462938517015990253088179077652405660361112328546279145198005132992267071767876251467816729480542388354721744795843532360888332679264862996360927819814590567779333296367376221458588689747885660261622368054686276907735380171030130745363913506947135505506455214690557643709482048888395597834501190624032757857999343285353101734189800549016438671070184798918813459650701167932749722384481328992045261676621369923634878764402655432344914488594443791011467841993233140497747860669651311568681547854777806712452816403740024884386105912240308518479565027963632373059948481890117043227668997609584197349477315999141577754919234120621789359300348553984141957157871370721149216757454530306175945468390048478422258821011923392621655626781580857072265356219380491174472047228226520767606278768109084843974665030741342663418364059288117276299991384961332363199222307855854113434381606023238694755345939702374530006886396747574726173000875840757172477987720543614957350239145064595835084834558248506034114298557415615450650555860683745299961946698579959798480779393184408349217334977251551093935749450410602229603153189108247812374089506862025718274453399953626620108689916607394996143129078488547062534591325587737381686081465397234821230217668734092033894376000230922528927466522055680370923339814502382088139526299745422887496509712086924512586694661227328184558854431617541926815395593168688463276472896670579041815270292066683205209595038178290701543404292455264656939218285371390494400364852131993948762196059195991180847907631198980168325702533899495809984347858679714155379264856085987960253174266410236913577186482925265008231140707483258425204559796010835706317179808246177660229091646178150626842595525909511844343238471945919889486428207883598629423119612718896120217207397794994258474384680254880886075532944790690577456452049046647744790605490812800582923413290131415743132254084067710732640427865054258947029031685111134396718992295683555826106585199484616601476009760913334596008312330943463183539721180450743132350151415932125181049219287131841916564115302208516158894214272564994005688624702371622710153819908320313859162008642261315644436109301851064731198242652393544130531272950265935902332732396732225352705570886198459774274614379228364023118990018409383269158754810254090739705640077484531100084614172832019284716954108997176847414629029051728582678911485885981988542366632570531430390701364872757325872224025927598164664665865987283925651417712976480370998722072336062507558893335653891966976461305746759353413973868500243595375747917964963656946730478173324805151087000214522916897874822169089700051239838878742353832117662866562186680593378681857838609450739049652612803611982358478281217350797430257201744891140960082215764327141906649110459221028379240785159974671541705502937175715813485834321517948237392478580078680058204478122724365737290175376065011652868487328481118982871794494351260684559052078990516710294334469282037498067863701986309527065656116417506197664502287775123049415641616089709751962175329936218579959419102591469662089396628587526317980619023317130875398297375431685114670159840774572624478123792080331756043519538572579944992618620354178595085750561444502010201921250588033933944934839767348815665673696764497501333606414227495913562578169260892738953638119571696712914388167539351222768789382380019762634192457246233332351067982502983628424058190428690051496685669813859937460704391874930646741211130550335935138409534431662727808954889683323588318026414952978491833833769946549462153540668612043697307981946629437975073332601783541090204507681979298800397920497419847361945796094425846466510810689842904752930308050676770129535303697253122953279884331851166122480225256455119471417972682683280272552271243099226836495643019758607298059584432586357488853167873852681556591971428148064255276332488902984714862150811503658431402247746970954874197310024097522679680376537385924341766756015693352630353757938541453892327379562353473083970131745426173509765183440319052367578423046345398339907266508067202064446686638847709181691359368544009812369584307269022002710064059121626112738832075996479017935991147063847594707622457291980629442179277215692148658826709408150009622290579975828606507819368604965710265801899755601008950781849078486338601367506835806761598620348688578452989199592776421550412035449729607758980215059811340546440843019481123701562397256823743095133821473851565582608752866086492382239639714665820060213502748547607369122047730333619959234013815978957265548660479840170632393930682385228041312324218588516467978940656042246176055440148174621746596927417520182336663912233631349057141662797995352726018308232380357014352292049628560564094867868847223419870463411814809487144087289077342802808977154789692609396557519323119005911838064696238821836999567155213100290387334124826718382923799020448259009819677139465587675716418101704908782052763078286916158483708411903388471642716032563633065455705571926727578794450271079323507006113071540059966751920673898390669885890417251299539353861635069324922344738793810098614624658477083733219301610681494088409913255166540821205970779613503831785517045771447114526089942248659519675034042979810467336016558372148743175560076625119544573134861274023690352196108349128904417019858211592033350455616440661434035162390474413380376879663614477032601688805341695819472617123631338867739898107894308953566509152303505622864986216176794708893005147674835629759765344484983411064007032597566043566996440591133262690592821776214351913501862028448274139253669492771031815033788705758275484178006952328238985206544631858404027100114031303796787572449769562234760282139691243228068908056712232372271520176672167474394417027905398927978434273459445919216630806410032966367417290490575435032989356280179619809540788609606193782921509544690774792546773711369741788964032578070721516741802495371742079171991780066081309564171472805248383221594657846484000004980083868528166403674460229025774972199645657894629257320926767096293274812194891416233565311613872426661532101032730129557601972328027523731836295747218956327760925589490815707980717970687833031193319740593833441046289419425974918876730677553267675900600790680026925245923843042287582135220477968868015839302130283337528011230264512171048421241177449665688526992294287509396377747411098687467503883321775419491274349603679459955656832257655104503318959431689070726391509313797136659623448051518531325744774515121636494193668518104134119158903944206833644087591480715509850511301398710484122427528251346826455074164233052052874297748231465993084066895816976466473116350436311707668872948774895339110403737675333961769459827882125092389743575634392673931355492120189630276298464605428363836492186157912842182213566506528252044206537335463470263966303034972949289654864936419313191521084069902169147162735236905945691526010904790771700958828572197235412117460336765339820272606285655985017723041238651136773766557520009904602042004731398287480157327703843110938713950500115500548178107892803014692576854856385363828745491699876732012028393866077522229183958924920476916782964912067564168595705950397249363835271197225098023582759210999434012292788258936885035843795766997283629958912446391439952546413656149421889337864605811633391855507568776398850357247786335049463527405277367609581285695963571790330330757414052619786435356215011173559289224138355505239396716464299235514402431178387276598815267961555558263709496157523635468891796745473324301382352573969055341663784072354763328447494592897061491374467272047050185284985032790524851170174234059439902311337079005773702620684539971968024049842037653697921799737291571504493613282291650004407637874106297621214706104905870392554237719021891664751663569706871420257584700551742911005410002103314747631086272365106254161185194253912506945464296715342010746109463834421954438681568343890920680827586824393895635758597823463016001541969132414512935696193638104901661491991982635362238563154522306218596585868584929816376598966575047850410421131047292497535476142075255668223731425774128362323130134551859438533143465283814358032282107978499128379882550035578595803643251918942157208889446422841199305559062468770657097957557736301109856786394839877261242471146004247744404172543306681289130049802468767465446778499934842120121214395658514577148222519537070295861220438884865408538672189706206384748214081235763791006144798376891396428642387968530351467719424171193327214468031114167792043535522899731040851734225642876309189543084897568719841190550397689141931217833282616492883364003850960202533751981475222597161799019485067528224923258896591002631100954711850905205556257875894858896922452093512477716907038383671101875305805210506985417819453505055837213955188283655488127187439152313234219318963398849427792590480327096164860098782626851358717064642858685592366356097175262036078502481867222899021448476425113059048408149472581592002185998941721214636181190630102903381662525762602001827962976964241197270478802218684815154485544761430895722403212202716421870684824547572840107556579673566462169423051568686530725365173985038490609612098001284016792929255080693127709497528280932650765124678056752069287155827955237201504936688141173229536096320511456440769621625328646236250659091573395506990375838948321492987038093146493889986415367306955003793115919714268671929894290746903791243505320938385493665035564790071551812305635361186947734710800021698765922204978428162469757956046695877229904026054823932328955951575496747852437282112395396651368259664724445347053004230243734882883552849933465269181370154693311318181197842700050312742166642474441584266588230090031652016923046332795464459617641946849937045511647465722839172575811546130867467920379944074166894096199126463507697085429849535595042829127685284071290115781546572744721565865869354450915837140940313100303391248777723921304119250039180012583574495493174816418333762284316348766323485778037776776116410376545739344980596522725469581595317002746696893243365426770869796542911355938105661892416331648373733225325970293985703335553888195906347164044109177807159137621781486237081236790832150781755565470597876493641516165213711858900871046998196047887896348090649998090839053269451191654849934628079276145324300298038840145327449275129649869148116105007837229404320035361788595388057431597222045824348700115197975752800877703833420606187993006103612290940192271551070300211452203286626068353073121270112772053457456541203790496904956088553549152914193252577063792870583954057029053874527480784849812380930333545708812193504782269780309575639312197509692127748829190512516964881158976765495373447617111883962605664845743305291003352591070211145182148641131431924978144692047511189753173965582868895355897561099776065032195328447643014948944906860741623361261132841594478218235572936344889274610510478008371396958128186156003634345961152167912545691107365666306815116301384520906728131844929521199445029952362548196618345743521742123317908464635348592287004220239630940309817952454638807478048264772013955327947899423642079381658690611053269770351619056169507770415388553822536535897061371650839648414937533637400270071204675604518012289242452198034692757360919393284619998221764864039189538915721137120666748752813094135152335790889971096850684699363193975076269279077914488349005624206747031734551843723649736669794504008288038953900945645984712940640450694028174584755612370775289799062318774659684144143583717852073930851450585936174816778953304809041272795230691987597857577244347018092606585703324753837112912745390614809683836799865357273235740623851754783677125123348774973311225626157367895856874741587640469940178905551360238331179580832279674203962532177080613846742616144066410404822237972963043392344281212302899740610468980994543855908099745938683166820093417647986818401513405478868691260564321763581665117959816885499595942058022971306660258787785432449330043120322385668315960876698182734804679709832006997088809485451965864947824103658657678426678701060172371327536304075851281056164457980783035086073231923901119269303157244517403475289226703948234942157171318064907105282015561429472010334268307961307015324847833658637591742475263225747042790294755813469307538120190226223944040935625332492844660035295173492415853136708382651750673814968677618941275655673717495165238558303699023611733274864094193865787063017565609909144263687106189434348638540114998633606643836853254720685195130063208859642122333826025924392683542424993486856958273561436057263346082405323480635351881562466396863196766331770832722133784836604235894377047389627345039960902036541654681574420191443790035106633843455186492190924578337838016388207627102543347952828373837011734077618055485338385095938212089393035660653373614690149148315127135744637422434487760992881859724833097393016000763970204360490327340442207776718695686588266098198317577671949772848286587581859591046986356464781024709046371391480942677802266320333080162874392732358298848549184465378504072310199785794314594594138313048353056394235488479753036029816338566896203783950223543625805943442568153077086032743257863236300846184434258206967651865881908277092817624154679035693295875032380248388442883427245182175074159771050480606406714904476921870697472560043523105923926418845931754828069406155344764168559894718924270159035891030690742797986150542989214295885793457596474534282580768490272521447362404368299510967120267510440466146919291826093210774322149881431765678995375026815665500951687955063949827770062400969051568989466484983954433695954805374478795239256083148916760304212327063453874618454947659088859108047071714608865872468660709214848612873435745208382840154659857163978318031924490955037804227860381825915840407681795499511553767778217137926197446338695248293534768328827347779876457645872371237732206819584118520370143744613251096120399490183566722611525179355170724312580993855336507681601445690754199880283329354274416847753264237048543371678915438445914667695772832897959918113318655233624470246160531482329581311946384306713687493110605656401812324848699645066023121176793625560217317767031176506497042798216443856719084971512051098841800069926936533270994035020615098967998158786122158507686741583203120812229778647262935619371720566194128383591142323024204934684084980065527503150532969003296492773609964346846524154581133271132397297742358783041079751833812665094188026172185599244929585732243535508274152592729609959166608196520176164307218585820938871075693166196208874385535192784441284095291489723238877092203846306290657395047204271032503695120254972080383031067071451900455959445556091755547956920162723288490487014713526704348351869648493464873981443161922579615992297126388070782614766961993141366666999754241227627157574466525621736771922408879037391493050851670493744975547617778872411394289521798299724879358684972359729653143780508179344954555217623032867825524229249069916275679881581788762515962676517867604450418246862219418705445365676513725706494359612049579649440093168562433824822894227425322648293112078390332761743390098841083347216406300862936830418112597737970144107745322607276863712625597250028743911064942618173257218099589397345016411019207174723140524231128637050686781029010578264617012161578528575313538451775697590060145513929250270738996116635863818870568809139157186783957099759819749409872755756857872875838933750977048505434339372019723545672301337325108849757771335016696051008096604583706183255184661108739394493595422758088014080001941745223386307738240669986628517728101310375216615570781289520577242279905657940220881642620427790195484356891137537515408032926138639380797965044136925515148022912490808186489508419920499606838633589960885453208712833449704668423259238600938929574135269595768474125138256883658507451878393285638178649497034784798328327154616842870547644740130980495170474986186152477517510302404847267068835610809092107511321957764001062968335179392930651380983132027839152560177709894476549339584870284377066062009646757068057238409557198176648737850509184509896405687327716873355544368302507217966929056488243138002742353616259706685325530764563223967197171368697246338761156090624311339921754396086571181282310400059186032293749593525117892048857668328452900999808094822762873633008745953915978140703699251641636786485850917050942033574286322954777632155849493197974962445779973565009432448423952725838854926001574079831451249735422369950539713844624511825445125561347845266421435852631509119993355129896245191828528657055971281323718725861218207589845647627221772709073522686015821135031497066617305112507071879004208116573944196884977147010481486015466791649012860098289126503112580950225178618323698365860229306528234574121373535905835498209254400837266783014763341623715382227210842810518783887733695310753836396490040545252796301360484521549252434920712768421224278392107811196117195377449058147962434136245798482672117783876594993806796093398207627989670714508817058951064133593127962305799351396835231534778782341171621633354955297445714562809981188974966722374999682112856454437897351430325156810797150225974518038579494202999821532009118180508976423289934048262996123990018829826833013350758607555061542930282609971720720022145986416842575642517806155372554354731304694582867754739235043254794508797432358404423610199184381349464471497665567635290911867398931094945729364486471066900950646306779969948541222213585017751611956241741373969696334084418180877663062426382707607295108094191210301899606390176634645934453385426211924408086938092121578863987168891743789649769660868517488703874307451121872562576505319715639483460386025665981023443413642736334336782761441755061130322140779029190849911400846365578302555937897218664783414870984030449992645770217636240296539679920311882983612993661355778713593007856061749423011475057354565405433475045722197633634134822991217235927939661637979888343467870472317086049016196800563834277182080897604792007458382095343231377343563785738892036268722403484063723419003082738003824775055601642585403374906761593553897456680300735887194113501261401578235414819452299749380098607953424815849572311221154693212244431421674961363373133197900571428241049541485378980667104323084019021647844665554883389550597996796963116124297675820215801818534720969197565178136057306909129247552352693626026956390316273240022254963432043761836023163243051698732911283174569082284397598637883426099170404844166295713513958598734209333746444493989940185377903371293616750922006472551282515632483558063603504895652348861111378124779664540580365907017227300034797333772782566641973021042178981350449123109034938153866185510503264549715807816189092572756764398362793495813076699994090971559211377374805262584688151766722269690117573920710091084861122187194735119247383132935587050732598249652763897125822035643032121060433191823592042009321712264446687270867023590851449370895714081596932643434028238426792445391025936543936330980396638093196808720539070352541249528329762259999046804230881638593836611234572672983976614434560974124154103334714348321443141093407177981302064544347596966049635612370059899169950440087092162689742454408169058237076445468230900952560107141312023088140619671779930452533086597799788946044737904546091254413392571057314107116837846747458513305631279485480921893110944972223567407373398142842731513188234493865903305106979112958190607042200927191950552362440143180149870756927107446567825260025587732880216026641646454891428213250260186186321012065852075947888778352049821446323140770785517177962300346409144841634287834975125512374469021611590979632525390664365489238314226364841527719197448799391081844279021421243681272706205510170235456904703395966685298721334670723303335580121790949319615393049202501770091375643897402406524991122982251329874017211097417316513528924028472348794787314262404219529478347641072689481525878122946527353383122301958555755440622277693278416659411751677420583720517287333999522474285446110388832757996711626812968916480873002810527286982111792580542406357719359386139355710708025174764352668080157057300777505468242643129934100766816764290381302774950429711905889552157152579791602946548226408398046343167367948743634340077007740356474850278571523655205774075306257147694329059394004993384623593561459691044939724408260881870233984093837316858416697422135060894933605570660009819188497969236472019157209342069712613723084625169425033398366729087053268193751567200993215677732600080538149532450158025349890610337540074783058794253823975932130004827996052024886469286733137514115212751991872751166163652457614332897300739557231763565471671716588571096727403090076931008263030420139251235115773319988830110547770713833069338701604892320065788418873231426490891060426783435891221620763091249544672933586302898384794320458764735130627330328275346950281228157549420187466850278026411717711514174941636885106885464690089210299796571827752746482876027882694536270413787904121497884763159575962390572591657249246232019534277495418833803517506572176318927179342112906624494134573551039074895200154557950737928040650121405267775664597674477229460597536972832492250340426546225512370556226779047318825603261369109528114508477283783809513261784372767152483698142917362887057489838978771537042110645229417574460152384180971937595228199599634486796141310144809677811548999006079371562785618942327351976510102176531971601784799418271802304128035283820063257799845450842690324462389243515845534263897390748007183021120852799389562075095140922864094148669942860909448058177516515305990726816147151990385167866646886352362045254072076227661426174497947556822353130458429253938322897225658188041126480107809152173660335793065375179040201457526931527123365848109548549609740996837201984643494476031616818148795513387150833586520111990437353794622177396391119973197738357502621237166085179748122383942858012350173147075940681990857976491206203793468004867818405802298284821308553078438960219095522621097614241278751531385137309757092831868404195999581116301593695519570773658661046779899213142840809104780777934312782547270512679060475454681581249498734027894756515794794812526756071465497176150197354799478205181971183889445438555404282796354344115577690163075458943701708329785885256344475011075801785230630456908521919724464083355429528435253031284313377361062229219876383822073672066804887973099340380754847654754155994424232621829803470587888816350348610878780045497033524411910126760554250560749049477710518588369243389123219703124028824602386639891417649355809640697254931956163595000652317944126231643756429370301669678752547013093977286064733342836196124841790645329787545943327088071683649995939368866848431773497831541228506107239959671404840311711040121835403593945170058173254880236648206957979888880483738452157498997318909439344160130118930320705798287357546466355614410859069856503094330205134620103410870551958720498429082993420939351885512531102584667920947452093497328506290220620399264619896287117947786149047838333409893612332141526167531450348279213506546551360651143356762821652506121662379371080315387230268097435437357370242840788372518660942978638268141967848112628672905931969400349245411833912168068500471834603715287851886759388331392754626442110325165429594458737977734823382494624320881589055929103486589237141346504666228010728983985749010241454448983621410736964424981386013174862305771135835543376343628362622641862451742086622391338187100170019348322156751434350318131324545576103024112671901838895994614981003984895827322872940683433506376808991654253889660140206591452460875798001071761574141071755129545383792097038211171720995699519739267020260526029166302818306586976505087770117070756691825751541962155383291575954984821050830678723112240804090364129780091668831411002842727476047569792267001382499414510407322092738960234570820514733120275631549941756357919083976359889031599276705798306679314920771453847397696289498467657193345751341604494321333127302165913227773499610587073824978405666075224709942781293562971298796319853786532053130756085752873829526731867915398172363985995489251103578531505719586676855586740535009999041280482077146896489317200451312680006782678022883387172228322869369513987020129907187289279931588541707701410925014992325865233282223436764756860350943971394846297733452224225963455692941536117914500994161295645463167956903838206228189207132858607497246747717573473218662476537858563338678558741170397409185911994775018042388055393854689154663803948837691032290381747129256262568926383269874575074440317894234960437497237827102427948079115681436439232325579489733363333270570894417138830075218780733939887897488504590637588793048876699907975244061869855110662852485513667336755614381840520154371630548146328709343867752024212989085082631822946490578990979627757243752336814371246714657227226187629382188596627819994349612028770024160246292485082469978275116803044829561690526084913888524770575363059273819971678867052063611372705903295959519901070791958302505933679907669012476765318839182048371240383648721680291535327546635477746329061987060757723872438911990825754378820233527445849337446331895296694697449452701560014979562301994011902814818434164453223032340596744614097352629313745193334550035435458208610177886909833736121794626981111348796633558443083048453974507334690037021775641741911763515347074446211882542379295758794211885717473102292586257093611130417499116085077453524235497294935782123226052763409082623205828014939038298649021467006395366704588458618677513862777435610266920253196502363371605569535104889772712580220338529940591027103562205664594431699299651745136368419921749248893680431009983649551600204746330399858058490996956305647169199881372227761837126720998997509287525092305062480945753074380662450788660101393307654769747679608586751169610688542907364312650770329307889284382458648593044917175868958298041328592048925984701660884417794613795349457700731711033319892971112025933962572833460123457722748248723448044356268697706081266975672438457025167671532789903064436102643434822448273358383521684998226075263737666518753019795231156545533672987628378287950423483510851954858797008367269072406978310769472167315836168786852007396211786124545928163378744224675630834823440756030515076267737519328775967892738739158078464114890458557932675999471913572784420571219374030788876076193372229162621419833301747517768530320747742330676921966046443499767349519116658062048836335438086800637091200971349147407783432892627439448653971043789730256330777670953554611973106344404415909329096594740164159711661152075540267564712160983481224396414038019635277880039468838515698889589832703664451409297489410403016597289006967578116112473159055090880132579601761079121660066122132936097668695175610810159758937115102622293378289271549542910896988005715252742001873400365047762027984158670943685802123704793856966246244761614804552417024786822589080237214042164564972735120542587245123693150448302924664837753150873168688911921544771049367468112082016494305696128089010811066566551158265136124750343379749680974168391375682538386911666394756580237725641632592916416308022687070853508193056033098492710214924517448296333166153070816913881960993727710236433664947376215713757547536441751724278763812101992935450051582807597430787640255602616691933269879903572405952271128418091612670421427881123643178034598065651598991221363290039512831018436360801300785981740954066365148446482171741965267985007373215329532010644522750189636213429042720630617542950427936070810254063807532262948967000422594825976849165732216660169168568656102231207192230048866876393157225691221204562237690903080827122213485587832900966631917209384539046752656558725822290673054728784524955452718331853732586871913978243671005303075025074822958288655273274842614248056554489572641594772073744426453214424779239947426607382321516153224773897505022655618471037975846769639419010465710537939600246912917289834763313110088705109849274614918553210541436917236530890889903096919461456472525695713743136016904106028060144505993821342802260238917164849065101098843167790750736076869975917627886272240453665986261890335229839436665259597816020382943144384501653322713638445520702340774222516220694783159141885889354504536475007798249903238347023033762573252275946492781469727178001718156821248948295110301059368425891132612076557015221132479743644176587187791710493449096744665257998316798781186018047432130934378652031299834941961104671623633749065104925201942500575660311994635044702989097003064108458682894959972094491296378577299431979828535201681051667589655898748045950569146006772796858249134262018430656530958265637740327838480376113818960971935094246553587070166317566183380388218272714367588183016530120117200766721400585407059755312592941116961612887844219717787108704522075509662826064157895012582829725434708889067467409702796671498679437981144230878209449073447961804538065602170264000980193299531563848280010754647032049943545670209330748851862733350581465490881601938129539612580651695430108706971428372742291662710853741390388187092249371974453883313695532788355769680653644202515405095216550292340670367413358989399287313788134878617711756811048627510552475467654200717515613314670491629589482940582891875149484491033286278859217391184793357260737099465920989275285352575243488997755308370651927692943331805798449414761748540590748817501583015953437308093985805849088022338189386983025757628682105750285602601893836440134697152012158982807052147880816732230681975795898205127719178908768179176618223035442120536773983246104592638372743956976766602083154107277250278239538524239348585997081511303614689783383646125419890373399189088132852396013324628984575865038568967846180663659002991535873615682100817648013821777075748234817152044749750931042882934402073379806857844572014221009669677713656043258332299906019333394781122178482262380279230274058273407016411652562078697645609045015024541399673727860004496872337881816465101091377141648344162955814807534122450541916966132828091908614451787393200105895123240421324632186723086967818498010061184675473008662450862128422398322757204921274189135245693282337569144441232411723540592629946410706659535653776779386537716036782321538558048672153980538798709935344491100180338986680357997808488088258857650404420342973112842858023745981596085225681022406487965837783912198835147627178151654238754436749530555120585803493569176840201534141060364397361411160740432743719550797533848761240992933248740467835561931490487452700113113263530848831514490653410958230818737614429208373760654243649363836614932745778763627899048836685015956888947587403716016983373741250120495288667979059421054501507830898631585058788281776767532984931232143043267424717196804047996955704060365249881155716222985843760888332282681685375995037179650414085511922918614666013648512200957514941852288568214177443779020117194776460179889671132624797930639814321497415396056573190209413803033121008682544528082668363060755067691120589094809867354583715908451410675257235015273273734354433902983889409196886743595786017269253295861290360221914803993161827910103372567724485477623802663831599843653954180445094544353807895472018127046337131078888260932774968598823037536760317737816001191214075642260887561646481589483163848792935310538444430681406843088315572274173181884947868804530118453186307609749420822640923894526016819577997237866675347482439109283083378126257893910712813781044974451198224239829708785215173777683753760867481850766165227904088546688797907009332866376480813487314294502894228966667648818061514466654146377507022849423957341528985482017906921156432252007247239393660175705219535911652851628939663869760572329164294073267159690229308735736845658443971193786968731437646150335833689164603625751808365632912915471656855313396840680691629123950008036322673721912048539567140345337294925816754289476451652018837701969513929494632605708062099980935676516980737212177417935815823288881153407802592439000320301101823305883435285683148463190718131432545012956685701696254302048399205378063440108866067853970448786203908260802502405558864222521517467498852121202939759738814784784761256651277069081420536706598364965480034655541004691254767798658121916913379101450132724794405385702285699841771876330417742674300921750207912541943003351804701374656678587024135162466164215190578170373046537034899974038701500325080682811320776677331369896347565527133271375100117295719647155451703237334412421730801749880840103004821762642932102750158139409602831711891587224362494197361987064246120101823200579314513267629373034116161608240798961225073487589343421775789178310019359392254746089324916051437406062948337574315826769815170946222798230337077971527817362844112204179683895622313848477934852848874374757429538083689530453038395690299374619796067158680898305293268250622076256945936895357460055825385569754670818699781134549683665901569896541085001794169858527498668079293889459584387697914737654954819436257446146229227099103558458161623320040716122443955002142979859573320285804779466029232622530559954247262463701771208483233178812499794581906942592298235157616243826511150059066322018275559976696121016945939070401077392816061532809923075485765901342396749687686615365791433544163237335864540193242009980565276654205461825021275912009388050427835008092140401450053976005228817172229580345218845650312733792257340111961472898475256696151505600602893502169482691341037508801038566902778806548370359676577831202589925209697428613743969650052749544806474009865718780833788201541715065556324997125250874140111173748192276284245855376715213620981015715872004623113317300228875757114608467913214769956953532255424599597540258104891550753189013506745462474456231278373995244247944855751433007492423260245976665350904896520554728253525659631792210408677446408021095560938073283190498132787099325090741688263096289971851516231828269508718387923906204224033255743491166921872124901195497296535172607098294759455838729954889659747129441317333006537936929638216692212461108224183237611052929506782401527381416909363801665639201780518453334815011169956355537439395739394031036686464689680137206484440322017693666522370435588436372051583071673767602527316847529958194631773345712787078415671602340515914942694784256060805724427753983600559138135052473628304880852016348063695012172205708737131959297410984169599457094841676169631150922027300122145688583923426274142667039851464845039956500745231815953665678739995292948175719408505434482658772244757854861958201464923175511534105717714550641841781356506665170794072211294105677575575352206531992627405296660202882669981134920265435963156945731428829721157311360571861125621116552449787914338799996645818297113162218555763519303097161082944759024788191448430581404088328353409362399388384699706184859826017125559707433122591781934123685733546100122047939324404838486731564855703194312548077647672678913878001848388404898566095509414691239820955527614907966047811115310050313286218288184950562948932782099854617682764891590802251409846740035583029242627889494498372054331691032329155138227005649585084292946284815188260707838655815868493912298584448427312302948088165910475971826390697595262020774315856449718529164159022642564491219512998968087060769504903513468797970360328228466818097891471785178760018463826813202515694016988321222597332818802238084449417325279856833319784247507149302445991320676670020264554148909703148223644942596372440614826887553107670319404250349871172449244584026809350567214109403740125941934899074529050503587309089582081709147103701801925140998364452419309791176085061351013259145445925542998710512975669668234598769542793253267323316705324559276115928363064943077974174944862787849291035189906080742597423281199409895774944716993636662956082089834984483678919808035083273170323776696644298577823780412170315420319177184826862890537530478348744677244229441074192184517975352862761547785967191860412492914061444808396146966954365896569648879791611401047604799076176807330899254777285335587930474974669054582970107456048078489990506859374775482510815432097428391195548843052423290195567009929820826275498422489031135996398579136146930829289299662648418776140376240353715227072358324531155796551248633328450245202709065922193001710287281976453551451338723526800545914127812971059295590566202729550078053309868822733874197672358601184081909812416408021308356932163467390315536355864122735088549005049188636469982065073523788677756164655906123697082279241983726933965991605401156844087802495735269780170006964511788536083443596277313828989340928269061885118062179418210537372564070543581340465562923088376321901098102699933072794242520977836401709800062416840786404171132905531611869535615727410692197987375832211001879163620747447673767584846458170714951183925024954758836747834433536780698062536635821495911968176604580474536261882168308999761425859434485751631402468481534782266094033134172777866573240172578508322820179754388836006052159441181021786755662754584049357698998229450840429492943804705855308992322250733932543494029368258827408428501956649810756915165336069525029732299635106005173306150296404260130635665757541740202454902263915325788840141401205199483150478853398975315245940114041013534142873623345420838306095722983293429612650012429658848192868925290236052344950864291781036520130000198747361383596643953613938472459326217830983434876250219789821529416647893486152503386294730343783728938784137160149916970586292828394090863121695318418875968938792824509875278730098328493109427377913664797745336339157256339632554172273259161638628512644236793567699604671999020625071539709394103245891608115998725367581777024031892147197990939945185994141248807962913985866225187674504495695872724879024525260160558240891276507288762424699931784744326914604566232929456754265704565297219645798546802587187102885092826052311173136558761389265632608150461899785184604722170330234436220558852084635459521798253937419782151375508036354587569550092027405102928116676205383170335666787564728391554292213779150248932233399225127944886802190614616529194194603405661757278924466132939757171671438605833286701555619388786256416885829586855260579017921714659853903993843867197448394813674254176036885729270656050407679339211193751692796630033399554095527020500620208465220636778366523410695282850020564342894453449047567657226433094525220925117572172454414493386484599967412366249223979109121651598066275455524420097885269140013598311938825406308952852545321181158519776561392553995511843958854354558721836250940265857080183018972912439533266961664970346411491085255819633570961819865396143460100376543150159394106027717944128694523996361740457401910752125612099786396580803611438442435516780468739206721851572948500469189800505345647142052726030576650851692149171869910184097364888316938027983373217579700338586819629892118429635206199132521860954203502434613259802234202869734568173409008408105606503579914956849423897531064894957459750527790655198045910765160428254292157517673711295536351765889968178072636655722742479007428235442623654148154665943724765826385599323732034587839962160121659897096054665841355702291161509662715077741258098041556464310202046179898174920179701997585010355015188994039352281283565433918487403112831264510460161175807646709656521102724326334191750137339258272862737638124583527672126173116711228019955062432275361803826418524986966650092701700576051307482083253116205900156241603801509882023804712747535420770139325237702950185279552875141657944327956032037624094640433733591870733125512884780656566657622793890868110648409099190340925297968962768524987277978659905355934054925512468352951990798345659907036504670152172141470415448411529604660140028458391403804303682299733155616217760597473742844397065346403541662245859301155922037822695656200430686825471582750436223392826542399158605480823180064572725964190453728480001936544842911538540737717112032222305258127215647625440907246588380947447047672367403742778482790789404421181309608694616078280651101017406900591837169429833324420117728957295366352603400921119823134592077833223629805161836840689656086675086630178352899993180297987529658784842194495966555337515842733588258556331574958253207227859265929061283991373707822404006511480901834491118461645076480750963976167045896582721578755488605134514271167508358203918568886596906339484563473386229844849004559981690745251358340619166676790337536024459519440275994115320616157634083543937029292792249722833765169821239009249622250305025807074967645024942919479515075510629306514943825451200916095701424618975934700233217832031008352409223006717596637892875241076065780717904590154796248072642746176975807721749672791048422678861767017485763663918525379897434600526304616769449469118026000092097535342794510377127067625465162952692838968855308777033915776094585325720178824358651625622485138930243774978709475475645210769558266932107202280502053204916324830028330717879168007767678141959232277284605761643587287201259473700326821659390119478781564262618260404807313242844662339678045371811208135464932264112434759369712841361765417717276696934226214831880988384816306776923567525786639731264296257272541696789265864921437404223435580660360475230050001959300040970315809405515233350283178054883005705399215782226642624119548330595341047460531051377773349946449075302820888291404893604905457082528991590432858934392715071361553420480550870034064883034229277194676110939936615872680504891067274088640797677851516386262120898722598693278392268517500011757219590946455482846656648264839014094493872941083355781353398929738656727116889450996096976231074048553067970695830471591365588964970287534855447722992860292251636462226242684569738419639744229751168354748257066069585516439280076106204852829880346966371113752657588182108377812854459874652732487149759904069171642269536150586757421192210988674720058708424238942035258166488354764149381855675811844187576759722883777441817580398282784733352422858050745845890882715870615893505623912010059744018337497093216575822773351703670069201748100131572086295349353963682681968641654191478635549275618993324472289230113359011439757569738518538416534156294234058123339106183436477503110343678551521124021838216362015843111953578588834866840255583005972376289202768057654196454152822521990691711160042086410697350281444697434000480572021808263259554660740006708270149962653700962076821110927106710471255801807037684786446231006404732618446654487327480648820742695798906207686110386202892113427772109816028189423369298178078362112937974271609611120310159001788245798610125848684537312806874839395170512420575352319744732094815052665155871290857352388413355578763881944925425473233311892945460335050394054819363657174330325824041263645465854296965696094374616734129958578821685303167347216903512326714512960974230628668465524538491296236827210900942548994468302164665342147698271329842807986899825276320772656981564311020271807266220292077524930006051989857357878196781191079719976207605849192883152577516382995301050376836608825423836868191240376391439145431716365549308358960833792431102688334138007894087380844672545755825512103246080479369878191043445282230189705555767467430187179635891165412830575488342709612850878036889316241671912950378629330704204757940445000148880967937831417499408415200158658256323911808526061463650232970719777564415686935610553383568730245555262516660574599247589154823456848257541010312831419099766604725238452026494210373948848474793829243948198712559413063348148718240838611221074824721246724632722624307480812347341158601374122770334340368678558178747898963974236760358327608858067217726510162490765096962449410083471432955823616908212987578518724856983213208619109723391059984565352893914981435075307993282181838618292515977907919929678179635281340683642047675235112354050903869923221772461085039103103821964169493732273171916075591560344945636994133423003678777121699053743102635641843638016161561216753099836679661752915340913750452125781399363650442552341506692685996462277147326808924660588079383021921808532067576291320550408115531505113090201233281838876743775822322800103325351372848062820820800114406726578637091328636467041603723794656346783130300847921385288288041797832371711165009089884798351097046342813375461228960487591088786780103602313196903903383324978590070600737762152871858464715491022208951838766848862791293743749734069021770442957730754930333011349388346643325486502485504775377327890225739399009490721010333447396834461413429105285023991339175617700575365936766478618780452612982919959633611991439804818307125182117546142020922070265424141796282416551104809220741087863467069212946093060159641893673551289150073198971712373699462870225032271412673092104564555755827535105678228839769007823535660711540612998774487843806383579976170810425283034632680249983311895640366964292063590008019310263990571017834786797666606981110666571483097291652009700265104925398675405264172654950954415331352999214575407086960837467308296358787597353860209358801806917058657655797639295957987418524592868028338912024980053955019109667076940075216635936282989126433453815178794958630727800745597349819788663776938114430929017346042579476018858723193399947805261864544980451670874086013750813732527487913747714938422045320940702980880163265739094410139264317538323248912925782786614414767055896981010090196761645566571716896023414955930887058040883053741653338859933073019917153148222131852364262528583056904373678192497035934393691751775934753363657693744449217695381323431465989638754052616481105525880029434510339414532001100772625888572075736894056389242686487353144079973603015039826110583429063451774807200217059631746451301947112401012439363151250639617573289198215738521877269771858256303017851726084182717871810238802872927063870026945634750911601981033944415849425629697991937059688939713769265386427656532180995793783339929919680864927202581008741830373919869649302387563831052463943822170402436789157356021109356417342800825687433948808151231404694576492922478526282583561978552080630010499662750061335587109862834430506205472829908362210788236044033520275205920567483071618657944348950539277758909788049318693106747211911240747928471483852766679856743039565971669174106708412493752152430166524582542873295382291955907548756724340013383688842385793206435474116710525595145663921049518303432643065965457341953989142270560693779274060848206677739848176949031049098001285747741129417204481094056746473694837295302028271353798898864277825399956756976007762176280639641864520857070686720400393153601616930858822364893501305691331617611834212100528357735764554770689552084482014434411385533781248007804483052643278032680855499914898034200947221754957797680216764926955184620081873413494554344830574264393041926579181134524176571095316911802314381561176721170099979167254668267486551281555379497883944817855253904133023323140204642740715829006872834884976724391796893483845157180444990944273909349245634933935339546986560257593283802894831513280103650143159895998516368114852614502346249360641216255238010440769823417739492867473098781426029785933030615225982256436700890592764477318156531914280257006542119223046603628783847417145660793457218974251191240776918214629464571386764702025276028872480635354884038995603996777579087373285879869034512733454773111729689203641590441612535563833136074013503828002194215747669160134450755607757728159488715444521947965400335936202959471067984013356852753149463693629600143598780534004887389867732510499613662914943040621716110895581543264200709651459080715922725002179335958264702421100976867021587971536608212539017828501861708003835113583122342612105769468768710577042102060232944182489860634000965973407547264690365667697571689695462314624779921430302442153001999145420120438092993537976603760714489479494370559164545745928345398316433755288550450142048944208589792945138649467826176284614111465845734748178255712192151130888249174720663239713192745266931730403891307020557726619081273579215536553568976001068771504839450760052101956412036192813378337421566429759894771190063621099787809776701148060123470256364564582101194832057976159735203450115770672079563394717307333257958215745402709773312492746196906195232223303871922155822513602947900456565154770111948934365739278902587147716760163712890616872738949735724038158249121815147213336805687476830474975871542033375269403418279306778653356239744302838392404390370698037871448665487447001134421321182896456686615070326372744424819212924809456979390265346276801700421990919262827916863990068256436757285035509529434425298746630645400971455653604234251703106905134715779759837726574051896334249350758758606848330102513464449421206453299739656318825575137875501593386354473265465545931466894066014087758875247560839821893626917381116066543851501716492103063926682698335481150066034205704908940573695684282669681938807975088512470977556996703027535891362399983410220564380531691129993779699439630362490703078621597276522635845003766666956501828048116068605015703600267327315434114291427975377265126670913442669028304631815863695955508821394072173945996398606262036363431726755439016538924698409017581887236845194210311422524077075476753206111693144471834067386127428967072437552659648265870949574890276092458576827671285411275776961887402923985196558633675843882218156410482461514530208549010262441648911875248506234714167291408826497989054086365355993014890266371879332663711459130580505836234417157051686322291004984876574194767992505281232950121294305997871356214526798860185392577773538759613418546040312844091134941205465791320469605871727419589211430109915440240781654690352282304040487821097047991543957821337316271175413537922025439233573530225953301244127223574185180440083460773894313111630363669341473300946462168846054456453449552635274311992625183003502600191085186310394230207932925748728919166030018394001477101328335803940637370863148108385530943683064917944564102414851631032096731193732305410169760782218415787907939280960382173180535951243877361277787030298233575743001605657714785564249985577639344408845428155137808361797680608870721563402054409081485078796130992125679657140644357746186012559250606611023857356851685094768990138006225263277592708726994751404039507080407956620541671431290141174095837854318535376880463207231570303691937102256251886177446866491128187206045230387043698073551455346138957736592358220942023683275345506327207071531857070928869329924265083206422854426609545458572611262446502602662062674913257400537403310108221296702019348674933747830571127132313404807627455977106496147422576037202100498287023081249802437433074344308091154507584247599566652558400372043951140549040360557117304611918168410601137304287055149313633724672838785928748319663121286674469234966153014363406625711627802357577101340280600054919680583972462171417089166926285512784287820333627197899934256981624552905979168919353662611433311520983706349317362635487171127358903277314139176835944534607859353804728746199179645109787429451218261234637987743961582664792741940965237036441668981309454623657148123851599677338861548242164860832178695678874031030858713041043740873376982969259694147469025930740045124406807081483540034750276307896404950605439594530636159568516565333541869943339964576100376201746632462733762689351649153705598149052619625101457549342427224385672150147098830580413884178802953744464682366237587035961755232839806170650296846572868935862614022658734902077352053664150898998268165801591374294612993044635489249805459079911687655081599030031878645720747415521013266477253570802137731786164726017235082467788096857695250306449808610573583329405321292865769644444047678173422363405014085432950125328267015090704092600646241015338348652784931928021083315497018957907156534343880472031805167568441345431034941499450315239051385672394486494625716357154380346002305945905384008549315145267126352725911547278484777199229581263366055041622176063415464043360762415944181222801206182206920265196002423907025268612544004739496596044804577590071893111278940261183426336593766091313240175046960258729604722844321283381814519632136433486611930561410463514121503994024759140622188520289095339479103215941460548859295030676525574507442283760784136112732698532595986346881083392657632965686816923286595364663421129234050872360728633771577010241430749655184720211719749321097174476942211745373640122788413590315897038346574989420352679653237858546689417232712717947638468128745580114914250680410643740097712960501551202106486417542912811834581526573869101788015822003321508209706890108062181633871905365696446288243096326782420641113574439332085621058114984321124916523412549675922184131046583748455263859268411967997279512366387917135615583367859228802757108549270721015461876753521566260866007718949796797831248816887289474654467972227506541713999681251176069097869014577664559251377725204550567614145871389570667233919476326028536705396775175804672033096096090778599912617775480918669421834390828873154964162714703941446776687272105304580131779029762230984632754579162001488547924097993839129632470549895622990789942166835718573391596656229788620353985130413543677536031333603199328245094503118077742542683445103789477501977286103503864303661364987168686449837638735903929603386896529995604383310311584439361309649949049569410400760014900296806679969626065077812775982468557404632066071826203172097699669330361760093205714600927754125464445900296800745193096234998509752312140573738799793488540718805894979633771495610171683306704112128685579260381419839252176093814767624815431920241529958436652223119845372509493849875271237156993084655994039653232999374655566029613893409420854238902989564221451479930170146768401403252528972373566306532994885652602956760606360044111605849401900036599693382044359380937032708637361819555211832198718040031036900341689311500080764195519355328712140336247236188772039297046349394746743632127260678187959965988219995812081452400075317155377219565869182247190956000336802138069559653909192552160623321786890461035804920132566187488856194734967470508110390561092489905305180802125079959535716545217924926322816397968081900751825856235914756462993371787267690739403174301708558059211774562302969048932412470152852058005507921333404825098999529854458774104362271918415964900169983453487582853577061577892875322275443032998464002867315990120888184643194427733572143251647325359048204058341374630901361171727183534500972040636348627883559997730557229863205239334647435997292008411295747173212339742735429254033762499279960533949800792217850673568699253965134024848405299963704592462845197702023730547850820824616089957073816432619171304247849219995722092380875046490780676763460249628586534219605287277781142908974438323590756084054643470093530235699837209494652634582519045722396616850776719263938800257838944662173494622312348151648950274802398211182031071533263025335101311651214830132396506098453944675620896669412879722574910848179555587005941529102641230087254142780740326326115974998494716325075933093931869091403263284557253254696551563136050748716033117149098863211365147338512431930542909610871707774316842343010107597964316487870523001526951631961345311742084223872355746383748585382802710996707299783228193341687093212556976673286017826986414546665496244906224641182121044127311017889089608200181492944501205412765362060709343649089742136197521735308896594890435384347642472697573988912213321667708050943498125048982684690718633904804112080862426285505151349352063609958875309213261095809929719097906889442728619916969263455850486034606146536989855006002383174709534580158709614469340931824751285363958379294706808492324660281751536226687203533385894522146996497980713603510055718928907641812699225238266801058443831963268088217211310035493195279729762250715967899430848782957831168389732811488870803555158272178366788372998218082505241154259573776894937194526072774630951770823900146319379858791920102115766907175603096681160181979063410908738516956687295375963572599222683565088633981884577301998819669764842685777408533470858812619997281401313261692556126738974912882234221261447073935292203361973489712177484733807304204257768153620055959560354805596174978401503362010407817215706733954007826203534984056202163482442409403078220578852062826325907180545792776452799350762381418748094264742027040858641992034137799551483989062488839637253706603875873526747621757454061225325335863904661781338599442365361306427932657997645050073080371286759929346088569933256555488833155293396981239175100226692867638394891933574284099695414138367661575512302058469065807748912841454139432161305234208858915143740617706838367832013015623027224842603861628400749438290768825546597113396075349413377538864846201273899523437936830082735247677428338059011131965004573860921294293605621381263953498479568424774058839520554510246521732984161059692348356861662972065917061686816146176955920165211262006950816499589344329631690631061395837346848505559551520174910643965072941190633075463678281593061892177576650791501383922397537388006296580386418537872145009417912625129003221513258913120404462548099898104293931856110563171232726937747666258455232013222405815849852359329586510602465396759572425180768612261719571129959289697529742834037273553498064822974069205115480618784919349084058393986342518438577251767610698509324024972341117484644855680577287763453230407532894820521086628379716481127256795314533315198958149061171473552814346820375676462262800416646724559989043364936545228768813179379287517731414819266108487521092200991109838964481849297733737380881182534586708266259401150514682540351544312244709828693339927322458270341812193389389096704573171002910598134489395579387559218816585809712902187336616982059344022535173798583118790375834256309604401366943216924542821275059209853531793113757935455939687121651319116429547902368359219974189696609927276449556770369707381782354099592301093187092685756477864573603360300090922699502463141864587318960485912408806031032557589703008195609899700611861855368083257560045353781349594694317462033793432089516364062979474657621399617955602255987436304306043971523359348667057206163021525656524936733722263765495005121314846675455706791854335755507545191819995495898378922115401173657768539144176979384999208620789466820710496404584534800325456739727371336448294867052197013228976486724736794067371805949888477733566546394237018980776621708855060038284134888067692280629514589699297353242890293056082461116564962486582301341944095356899691823915898819950062516123379627066763457915183235494486655272878161364374958345987437458196589248951836258508847698920780517785332148849228436092831462137789480655370112214033728006184307823943828639372748932336121417566471416698708747971637790446529235918292364319825633371598019053161110409944735261387599399084682959349397326924622283793791096493202583816803871644775175796973340114937323892510354261319338033507211268747763107376600934018610935328298648342605906410645957025203154277516248442514519779963634952725534250840071245681166549489192451071020442073413571770580714868463365984459565911118004276965057988980401039283843932750662852692441396289644520167574225311767268830971699837807325737861091442952854247463912075058479524850607644087615127349957610071289000162802723081228310571049237223591699070699553153299097569334747949410396800303767055823897673476471477000533730047001684779721664502066306223916770171547083392458725389598500963824187185127520645340187964436290774111665727161264883634361629648545460261919108995843824585451795127214239922820195719152965801189715012860356461893740713227439603988686840785606525128560390758692861745384172117571825401945189249872974491526298301943842176979394489224452514119999906017482426068089758182473375384925785136711251587596352601225315719444210447841070790955283010296577276058721640406174459367553612923253241656333257202713232616682731983664869881325360744446818542530654709176078375066971292493043654496130676622799439728937140224121462973979814261168932261318273045276298573361832930765640567375806770953761581338359921432493178538314042263967475867623552412043532504190206622351243314198374187284148463082194606513907547410958764389631971955335964799613269452974611864642628081514402475870227197236741749739196868805629110513960253283807251475475557285720680078172221044554193955219118429824239267309419419272926512187214258136526721404302843111452125501407536576856571642629483325951570484209960451859430648063195843176103946687333889198122193751995351642696350751790566938112053102321655645117828354866367651022503304889962106830103955798018396748891756728874198462234364991971949625216674913551121345019482999704206075101436638752519933017068905402811407154957013085895333052556405104755340129635581107654022070541133006489091282822033252550993517175471760984269531719029804051168910311947273782615766978064557844725747018117112196242886363660828521287160928850195309270468178008107702054113724316420679338302471493202534363870115529753289795712620915494121244665065089421325023664630284523476979164153954284752093112555872134646442251216809606243365140856798328247656945918678856665639637387220093360924127550639656479795927902236975146429464986607880594918323797847778191091893505493142536509086719314212338238126195007777057596313505924171848185139740560556142234824954844379833607899126787063640450316434415102449549720470227709371258589583682942671911083763193132781911874597733271717069073546033503774480704899126721693241840317106809749524173593165471114363128046742018004468749589553952255184109419243794070121866939729530654597732710680808606059422188167274946002786266683356709352208313566276381671287310148503495675913369238529739453107251726318257936212031438324558481500194106098345821844323157323766019967046685976810250260100794063040489614880573261310230113759615148254314949729630914261205555899691642168743307052990629944842092874499270251185338619683500056523824264155863068955800266456079026189549280104834044564413395600237996941260724653679708078454015228093251643951713036970270875520873167776561329833842775476970204887400721404861197720877929024628383727558601023797764196043288383704700405770519778637162144961571618676870560412995514265853009954281809637079955819730051655983332594239432977639725216587674451446424955438886776290975077041544400124857990297975224466680229620229084650258900480398138792389233952152319858060320810322682636743899663948431824081255467561914273280609466871811085276404066942067125873118957788489197294889944404394114817040763907362727043555888053747373745352121846248265062996009490623456210694080681656035002238734211697055316787771268415706597620952749355073550931372359809628465838894453107958629802486645723993137402652568015229510174497515859863425253326416394682557938660836365888256252461362341413604705626247812330399633109548290069231893978202517693344686603227784031920468589122992375793213407398098335424554308842565690310508922232420810316243400026108723452476027043260037593199035002419668691475952615262537437948015938729611076023776831671589904658839342547820600376970635963705919610477033151971605205736646711887177466581848047229896106362842366682933419698893633255622076372797084089269788988012383729413168559656139781605656317351341094352622871601024351234720106424368309258974463299726106656267949130411690651531398691436910087383645194926023033394945056427770145098609549845068634268918794476335338378588753095116025055116531372543213218746662512080008736459533654200537901434415372903697595445915174777970439467748586225072661863042672350717767832522847469708439905422627371783990123961731823845210514822983989115062864430718030220484058084339980921271642338748954285048837780279951506473617371579914177080362060864016399321294588948444974341546159329268194047709753776441939421659934980355444706554577644338444835001976630673037233390320518240479606836794258557348617615677409912457706144417936364752841409553168830384504618680627869130765414333292546053032834361980020798863353617608757447974984713974884855796186406703631596449243727561227236122931371962660348568066930068669610384355400054810361262579374752656647451702455147731243221347822074214049519992790006069240049063108758377354157558669198519601412800292350688926624630271989278591070944708451001089096527952828442170798832899371304242091164584844116181621271031570006822690508287961145681198033719973503791735381609732474079315160057698494783763250732437413003160554592188155875040764862679185225542425899872092152139310105119108599178729756623954818046570104128089339135217984535816867987463792080878891214161354687155631946889424125287094576457087058104166033371481864535724280453827518689492991618917951172452215399112701058620376576259645929015284861719941259310560173150091365420251728569184126945231686739119218056298689820753908568725675988986437985045642444378904957286075238120629343228001751999555635062846448888828752544312578843345393729187127032653820755650404922445137294474662384066846112290794336702923901575080151416322194237241036832462396290713590485537790956202164592390525345580915509828648879170607598453881042866552711582610354450394573435041838552910889563372868082858695241455240564390890797212081581217141510977805496763948096210657794743668028359662792854639185053746859719485588266966125895674188497950962122671945200132593742085574030006454425407327651796855045798787685887388299119335634736771599365869428907768181025643271292954828580818955543824284854454821421436682057672923404500202611478260830493348517203392781981498653034455761835451361412994123292523603583187017788849727818185572446599101484395682562088626127545276660746696501853873916632780594061504913514783303099226728767169531378351232664639314246218681841001248530886544306559331593703943474864238964892212212900220357583928242007829012197747880239955446534137370087230413973406805257796165715579539420840469792750290224253980365519615210686263773014472047574237027483721763859496120210707339104063910487456767991588267725310181656214440474626814412733454833329401405049599380625018191390451166609168497557945558089947894600888996583274915563796037122391580989482093100031952963545221524829905985684783980348926017115581426078650404200913269007746600363587356213063447658555658525923934232543874949177864849159783676471384066420581002483285764748043470739396359939477076274261724988103809385327569434796319409372108279444644532400547794113637778865855803815670156129915261373914651046497435420747479396577875266563079466393962398598224896357569334334227931481063606985105141680107037688007456601947839666794226782923771341648243380702580337601176217233544639787838739494269889475471791419372758896172372122468708399218231113147854110202835197037597195242568506612788303251132027642873989003908567207581576704487170225038710487804986159148142556722442747816972144481533579098036359121651710712977631118797887446465295620860169781963179577358892833864966123781759543351624029933359958897606525770890898864523349157522475590364187554351489363675435553369490543805859432168646748891228939909890448644805202929157326884204390154454153283386199809101089350247242583249297464346825212656464532786799202913379038395496031650776263620114581832860200632807605518025066059334431173613882508068423235560009219781723983766101049552707606476736396070710678639441740057089222969854223519802049155397034513921408650038432031398030381226424111948848505378912629301236250481465026515261636514472092263099380903633650220306194792124231813430623731362059841090993978395857268677013198921029151542464325523961054012612306119178988155340085179560517403680412947215262241974902122085633924876811686845533967470464594120860756922602126338419643655365674582707337850704954803483215888850541913126835009419186866909629927835486028918932066276846455599844944832129490675744003628854743305595648085012790792820208202313614990942591614630949582182875661202218332141879850101569761374757839883230930322218580546806891215329625776631284185230178412046293765276482525119531244606160616180081662298357465760937353701434085495594760546841130170253082830473245247787419675547899882000742705648597593860873319868477604863382268506490763837653655564384476144770871165122158846214340042986292180360244950540379487360770099269858822439274293481593021424006359908078495129409839148143167751747306682969099661880985782979598976781173589321548672539704495519374155097401022494306395799436875995844402423212221182992556553213360006649404823307072732485032938607798249225363068538948021482641969751301203483250330863121493986416801667888380922442642680751284316244736778682798391493409153354450788721871628402188733747346144178003539553648762193944841626355076799998151018960478599075782654074438922981408825556587592417884148830354233820585803410439046726591400628723239330312288028762001619662967794256058009455024439556945905464796703920718810516748499933434711402596135322603534436742487918716682241038121966149182551008422854884238791038481068258273075588558083619658800041547543998812383638982024106749666947506642589109553741253773845427103442965944937403610405383619086816594132867629229965964159166601481710986331340830317860823296777585003546846242437531065543261278151494149697249295846903875644459179494093862664848360306830562462046338665114058219431372531061584694079145725388148483988800332673093205867544102680607669878276470750679089686618136853681056363716721419350514285128959855914420722841428022487411714017103010212030447525735833460290790388349873094890309900575599067183363280003595209932920210956491779023424843438958767510054032151645024197395366103493461103700587886025911710912270176877930810691132092222351537188780508420999528516237613123901248806726669478366440549943573086184550606366773781405547086647378540903626331943814663899184655350494545087358191778340522472514664913616663861475735734525536116951231954794786811098320294101622819912097648155764870524950440707745186982265643723953946260692681391717289570652786212910616445083909788978457018586419356250159147716799342163692885851726959115396834516693038755972740796186501540003455555914303330852338895392710325815547525254527241309242741398002157927384360146417210190078078876414366823934665024633948891946367249539145962085376011485708222683739562064062334878078769659332766419434631344188794762066928793401938037330134574232576049189221088636368399984664794857172178221527985416692956710540548402765385650974154792664843443693032507253883718702836975571972058090073975018788901287187525203476861619494954906922996630508585464128042127574864326996690452594984949489046681076968387136358522853691631238448075252598370600649004238030236859721298828320820022572626135757046505950873839705898724098354426485742138315911488159180831835839763865691470801100557032732469090790630095203880099365772078197500970806291502932158509901396962024875780701149764088217441438287093091068911712606794162097157018049351957697068071357322028618221348634710897004406103778405702079791448302670573938872291798905343253274174218855501332803734599484101054945669858175196586797167183128596772796269047868158381816585191330366405976395132133974286701876660337453107802292322044827283361840909926927673122315192244084364328616230367804309038375918089403409165305850424293949323128735066566445132862578512723547396289447191729128177927673726102175306989318608534261925320836167684167475323950576855269728250437227613781228012632140008190517876144383293495253463481252106029193353748417590249680086926134851280130381147978957844265072184222514960916846140578786230624998637488282912005195810363569420343197762877764930922394374094677958330112053608206829344969034971085413505651162043187167442856001414641584149531281530554325542693623807325467877499180019479296551709354913654427696371056694925189562818380509192176053205549525771068282285277739195201100195141757448074330311949490726254175771460666883388917213540177005054811097916523680568169814945356410247744500626284289733873860166699795024780554873541762428589426115334162502839815207396256965700952605106057184489470246583380474232161537726399802488288657034183945408503964496501386880663355717350903267408096192267423206157265391555141494876559259276053500369112949273449184829616832052806255034133309831919193557310849013538679622968275324586310473512589510881775928314475433667299734640100553461749852557114382642215501663444013963599367178358422090530231340083168836055905637667797040272883832407620614982659238801083111135817212516990208313919906026952802670667639099412512124089259330528346740329716055564274979669430443964635643341956342725067771599837238549627165884388151335003756599171858489001943928749302159686873155822752636495856391039088263081051239429659303301919224681142989761648584059241362320359894269969188398762836385793610070443054401725753989792228460637855439979832226678549460970963386200024609459240242463795795157564720255885638396244212084299293958930187843699286005957076302047017691274134853183742381691657981345394133063335638267731270335172705346480691135240810584079076166238847176343873287157172529433474712949644390612521131614362932254321377572372568388300621022680993346930214455346713387750208335529028475340199028565528196731297656795483830910410947466802825823155167787615048158951219112763174979163821547514931437488014442992965606139892874768203712621747492933992201289463235703117824352701687322113410999913762593502207944777395158470167255646409073420018920811323707853859854459244184678060093563368254748416055468310019606184239100222400333627375464123398022869554269982144391698176022749238496893913205361621060011897721356298475207227749553174070242388107934840404854700330500535629194135708875632824692051502288844559431916464322526421938906852972800438652929362685653539244024293515733788596513813927840600873724566444255006767388458133506104246808319167170386530464602879783141698502921416534666820668811632190049928632870565593697062136281843716494271024351698684511580330128208208372266679413513479398846928877330556778128389997574721153168091108008155755735904921166858900687438019879463214853328010430357010664444723071103028659929147155957658100732649859196587424738742885504915337115871267015320502975712826666606584056052293634253480915436295432135888105168381913040083268280682966067008711213873157799976733666225235022962166635509168768944264391036017392964044064709319405295206696850012541877666236897277713664027005391101995036322645084019493067276190994886118677850115910971305807126153184476905257402154143053797103869372500992252235596536377040618593350581356325177580933850798723340315191983021249740138912615496300068803688559171012517220528010574195895702196928090825207307301940827632082534135918258478362315459784006848547024522184507491432467972582005008259105801927715773619760958587290346752391505085064933767449167378141004099150003146840365786650924915400279721161319182079517998274388932471382092120109557898288007976077498856746173635911675796585860235608970360457569037792460477010889764851237817445074148778571051859284985353975641516470897534408983487743788549668543650755183952859025004903382159456268556800245870810906768835703616724783176456624693973310366493356890489582282829068616637719638206202727840152998717699730111145767913101505082791839838432765718403086925028509125111574815384914017897007844349328559894969226751337146555420736034044927124312765924722243304195617891670755443305228783616291705639139085507469925351506988030720803652801836075966986108093555294343283462051993137809756945518972689762019117524367532512662052331274678185036976165901665846739095348189645658369990948186298406443650135654563624917282300309507973193299042089955097183517566506469650948797710708610188703348109280827352684258802303808621049506265623960057477015924430251742675552991973628309467662015482083035357362122232268342228969745579973850039353891320223895896000341636985214447390577529014239986546460771431773180810420231391063015646434947881181989342022829567704222314205237997699579627493394240049617710878905085252663004505307634265111953594553852090567004845454524144771684208149785910463627644901113269431268271465486919685919134237249420691256671387871309790311104285920342828896494116558128105328510465651887171579830663512151319249437326624897723656182532086479115351300800285651741297461156106459316663751056225271488396966499552121721873070497903032135528914310812823301741405972614764016536508416748922791588436699304150139707993262297882452755186805898338027716970044117502667908706439124714058781304839857408330270557508289387315369747864166174174623464204878154154799004968240461558375580568148126968715142482776112173526038507510553053294849689075307137847163811347986609700617931043752570521871811008903710881155013173290140269164611012916883354841694528300845386484262710271372173600787707606054455857832223638457482557285336491441867916793095195975536540566707800625273010050277767994221422894647173380029737743498711610624160237727774987924912911136176947578604702613142827052143548018668394129097520664580874298742573110161915044704529264787117305377180819301025500057473962715900188858085579830222551643429884420710396560540694565981985361075620034728987851411856648766026905940545602016408271112383117502871090227265218481030810858574146815772954116412858516598733589815504894708646113714720888355252566178900474482200782506065870527249730013012566632971600249369427521093012159426999338537561326215192752740505127183290019345102890903032396443599721565707044243025460368698677566539944188912806406861250332206567996148847512920980494568741108805455267048424659915793328502050940695796764322087315228423359431825213649593574936200747002359515889253425662940935271998014036675599046661349625305258340557545274858011992542449328127124252556669578132620821008999279158201421326559482449473035672327754880178476103869110854902650085167755798517866539048849527529694407685369373776019256735616174088196800089370891540464883417638111391866515774046938734570749700045971314670829296427416967702001114544326459649143036128998203764816041244644375737728228406707919978115633533777609564499099363311220288293132919986151527224465273386710304727387765978279944852596813180323315950166576317098720974263155789114211670828803971280911312721033793931239273105406221303890054859752485393125347722125275760075024402616816864698448214637988787223015193755581821237915972725869474434448575062270695798584514972454526176235106027720921100861816151888453486779939470201770176747428103645017824119373950964613658999676742121078016799400753289398561826323575658047382443579044525456077382017965117325636443302888465362795519445657728907454282795922055451381609541241616717253580171771422340611968528700743759418196884767653370824480083191184540111884337161323824383131976328063158331921985911735296915641747182503764171215943602401682835370501007293264803197361395552579923369175181030131244825708978924320511351917852107822008208773669560918973446655035650300971952523042555766239283724705301391273500687231856498568975003752936387111404154216320760431496258021670733130398405607809708381619625789535804873432499838612031368857218105472871836388294301322342367177823689267591604215243384723658037862271042081965445481388486625107298990754362736979592420235138771461227812711517332038702288365434940434354137747776608315151441891834363392676489965207871765155874512770731653597322329418246918584276749005065517274068157186350733286891553336585104613849175080978359502546648161962457688026113212729356694931298243738454885248899918663238033501611742717326693174163195280327969506359694272408502163063730834796491723291660185040018443577211795490828421234232910824301924631225654199636209174256728896600590841295149237686224217689503248134180607919017492129627158028798555568330293453927400671460720356669301534580313380636159962245131870505133328001346851363325799305990006666311562756908139349274288641757822099200588972977291937561877794497492212444209038030930228628986024973630395056424981016163334148934795584356245157401699932676309962048705498207787642964179990457723173581729311364870211776657231622151873892905879540607465443354937672541372763298875861244397322029358706926460215055394275869796699995481680016435295593068851597153915115011309462178524438143144393008195909380229337999857803144319416467095241729621498238340156647135269958870255768056623773791066817564410735260689288660024317416984783621881935527553536655525153920335001586974138255726652454840317554282230004539480894571138847932866861155923756629749367127450050764789803526795540099392026636355596057688294851416889618479380863719283903355639575983791120540665996844725663539154652588580144690608892135107536590117571865778859448228097510833494981839150006997564325873670900668558752028206246079058325776845121596866042063100867890463817820918910376384345380206248753481438057407728101611832626348482182601333100636893269460024009948052065001322949123451722054854856655295684047486894489228399221826593459859910841938045502542144775918872067270563006281483381529535415557491088492212699942928811126428513465298314899042018313116623567561046621752305601096143068052384774066935756713767378401797991657944252952102342659595160040633558335513335288524697458201401457828772181861488440045438575108378234460449289471446452251201572660702331212821208056240574936052469918576212520275618432572437549552754831969233305708921864054808848893946738805089272053109611512590611247376786179121545949225681615556623440123891430085372893533287009077889583134510059714382476196189326642387492780730947422533586733229800198751994983850641589868584267694634829622798685159236780675721321453482526664011818782679913173787538997948173278812187106351066038737626715505546490538676298699699901792747473110286179213244734854017467698599783181925826688002267016341277049553577293336036092913105145972539418132832475935242027004278254829252295495409394448186372629676039990533780252594190521664199504388131152858841013325294327850630591776999280184521349293817198454929843507573303424322911768382546438328000681907061432258355734382796069827770757529994321836547633148029707939290958665364487612552573887456244759245888255312527999507065158174270428998005608673148137422769545259294136785333422102424822621898858435048104797619023657946017537690263758990019217637236625086463244924460967330455196757458562626448494422490328174542952389153878750334991456757405176376260167605568365865479323812810218338061977533802316449021304678601992102838827593090982149119768836793132440803618588779020711023146450792834621221822551158766677022361762599064304541865696853104901663685312613979933262733124180722920115179481628086300123836274917127822804100562035196629247634371917969996057302670378624009002014905364877049105052149855257984146425061643182458362458610501334112629135126494644384635732726542298928796492308372739354579622161675457748726355044961215786550302687270539714772122060451545692241419303267575566641023536976509651069473089941287773736382303533556963386179515417147616962959259832899738210491134892273596532812474490899935547420790271330164094183719893087625751789695731517841849376116594421735441370064326451417723451622988191786582980950655713237406703278348069460821227710753295175419031428739110037529738678563625518059446782213773097746722195397178758040288545017550856343560312628731391114710229346768585050804142012607612090318438992661257222776908983486816358372217067033516012786055951652190938363658618317621292255016523994623475877672745997721775530426987420018862525311835633478381620440979142388799666867611291663522804324758631367677354382418014145972882104656442938986410628729803723470017028644846330419748118191398065311635657647740221827419622086509848055998414964530032885829315905045632037575964391302126684659409597017733023638300986930223337274853453823294495043976974817334824469164631758576437012763345437286897471359470820817950459524715097267683554992659979575179318647737974219384950627402007445832887597528150659973864056514311474914606074969445460727259195136954323041121499765625610995764440004578714864255453016611743485609486825799778243612331942641205823409888687981795481586464697366036735333324978629419628816204098835151562682206443150412207283787790676773613663498473532024943042407718796117443203378659864802975363520885348459357722454391888931851658040669720253854157109038802889012959109738413573657114897076741238304161310331288393319251734374588928069821865277140489244378901902715258727358670044697998908148222243236770506076195822265195315327606567476123581287795918549938832933573030532595852048710219344015181914332117011401592730666631815377759193063191626097008656902845124506305765237713159843593470588017333281980262673345100974809959051342007827478137571110674423026733340297120837682382632591955797139219429407923414478174216295778269826987684755571364536941641864823003472858709349273044433523462871104220543493701788469929491748223451464476452330983990201579335646295009203389599770474529272470744374309829633531809696581724840381115090588054014624985713165765754109615146228247964297050710433112225645974136228935892434173821037536911285777149547890588385894389564015550153645426171195074341167927926965678807480978613769259952262026060457553668569846605431223475980047808278240099770024246411375328955655797695885535852361368685182631150555183525162526121801985823991149670115953630297489325925207233164873886086808161171893462869216661158242135356196252062668298260402649282092366813643322542412521886980154446338582481029581556935160659451994779481741369073958862421226844633817457156152522122759372479135711751377034608048519115751929614536694046424376623282840465224248192459496615439116716285538010588099346033218890741052537917152087813819215274040902636418081654831645409404402300296545512354447318485214467574910151890281880182409397328977344418447885696568531804803132644145861498938101939752673338174193592207866865449206695142496084228857516460000509700558963489907761754943266766102572158604161835211970558363586286223605060519936599255468852847567052297679929704690610546443045440736418568738005635002890873342246925036257530313820920873790104868850603173331825982956684050045731564375862716712451777042638779348854910090238644364815153710682977378448532762346740143421130815722447274342700394458903031422617241683268632358600487720492944416959926532740042514757254009426894898160516726257841372703360296480599591965908342161061042315108998816537750582597202658190924392363807879091128341120208733942651181237751765848944757192912543357135866172958104077257688057904796592706213974608082651439620859331526829425788710756937307450350047192182402707380941300861956775574440971370978432619585091591251651339211874904529224592854912107903826733085703316272481623257146659842731247710057003621224033942974811942341056034821788524537030799197690612429372663617553764425590597581589653077931355626112806818165725083805890779438938678167018357638144709590763795131414059127637574290911390682427942947312842431960869502839589219740109289003410910098301804002533899058440431816325505425324145209153049917788743791086349304622396849146532302295132848337872801549253491907460648778004736118424745391315428924069672488336217800501569093477197273157186636472437281076120099896615290997723303367870416246172652794833222028368013550604213568723065553686815858842091127503804450629391421550139425000013352696952552636623513342192783724767383172573727347872613887711846145289094125724535387467975768422702161330214973042685897674376735895903668821600362175165374816484199107235891609928944355681934677014514491880156075276846386529656895907739950438402855268586148703117814385436480768505523970369048338640815411601721200051066115274774631572368722224596706839885416997393802159608525058882030723899340132709214297669708847708330341202812928998105477421762356063789823251965530326087630360443505604104784771186000127813151850437013336589037831040770088893506490409122093826104986825825010243681830094067303478536335120862444762626087946867328719462076923206098899893957448424405799815418250914121725053224412567205020012653673479577726383766797790657220240861255360118313950783476464027148244379002475174055666325843900211352087203287673461258246271222908046466849810430025151284642857233615373419210185872554966475496756773251491990302080906741445024657098149222135537673509946538516334275000763195198798907006278965718998721558911849811924858172646127323315761511271105589968686305699983272418975950290350270417721519739656963278008980701261043127181286764658640967313209161300290012727794095225468249136783730730895326828654392053641385984569451934326779595188376796267853611882695724575411685536873450505531313505055416251266052378724662577791046012365578969038013654963344758058164607524342358094176819160213056208599426253034848760321205325805311236364122635475261234401739453726971880222489744483385816817446230445691550976353788763402677917262714916042582572349086746312247348047182291983011918443588788110469734752979637078427576037870667193056045777132359995579966575410478289026933104814130986420997720100816708386578208223729511449585023840075267940846038030417639850327799491641669215761555245785438154211041880345221103729974886959001461890500569884705272311466388222300110040503577159951582692956432601139823137735509415380645659945918817141460725484283535909766328465169870069664998944988787281324854028813777169613479507129462547016235064125674238274374618115072755859080386069703246736489504069847938976054739225340340467804530976448068637556262463174771129282329574505531862481191998150134671807497155545765712909600009311113598218416592780953825369753144923186534311552846243941114642705283910251009903986442365681295916045692124802359077166350534002619388381563706967761594646504830908042952270966818919296020524827144279997832176772661504692802699769037829523930863735446804352648788025235200330995604741074907030105178569398913393572466066805739780349043749304814617250522414731133765338150287156268454608013227035278427785282011303230046456956074817377895923656460960604571711399621872765695776257107196970749581832838886045858526704722238345282492663659637643655484328282223678074352937418166491332370061849215128944180408745638190562927760117751484040734617218350080783703368907212916951713506355001921714874565526129310959762410246065353336181752175553441552396367634155730176777724678826591421731287455568803417829102124181575114461830931185658290350712165607885183927144743817442584572940208911962063652304037925490476771490461398993147366925253573714429343416245826001373704721590348796096956924704340791162620478087171753882573754793868508692560114042229613400129004140354399710231908512200715324280056295446716868529750057653677038810262350815908480170026378766758610716030160442650878030998957406909000915182274745822207507183483832940763411615664579945717207188003399602566650802795927223008180631971624567661767355548809870361099068709267190731784929103491764074334119218645868735775911951660301517956352983471032126315545050282303406408501840294937755440699331735838610392711633403487624931014323193485170560666489855649873070127143151443729727067288720537993034392777023448547427641232213445563482465242939539545952578995169014866541187941370223306724528177124905885211842259098341561703654158946919118646282866269370403406350340805357189190848302561941368616976793510840215656766961187517838644824219373475519214555238500925448429729257419920883542470780771243589716778364687715324296191538661526313208950462436778575336536414767978476809304094321195936670895329295220617249165973133833930415261172423333712676232079219924126440429118560233505931494013230159010673142511819817333527291092194102647307194360412856174233434508478346498428443892290547082435389207474528675779633593672691212540823502922698425346181906378496714704200578720715094997791401576448093909584092153029809361271037688272258363519528120413673137329451208284459867962812770197570573810110714422775191707443081691407467861647131520082224094137920051167649022640889129684078108025655769811373593305104136619291467060171313263511481241466978939724282189499667065295336777963173243753475803867153331150354609571614403083736645249965791955643321950027961112495962965264271632057304053551281057470301855556414092847988375285804973362889610399786618834615010803373971711651569446106691894409000244453803757342311664979366522294839614975715947159206528893800259762570653369689049796931075522489831786388669405929015166540289349947877896259544267850164130817232382987880346413799909900284379240667693805276031042010971927325423990307849980570980656476036134068466203400976313091032456232017841089974248194184171558298898158875407972085630956558631485284546991226288651897720808928639942988238910232633231783467319381066543547817115524247166955801280626101246793160920682697416462746921979639237656512489537393336200510094770920803106734360118519703272102815599210882600974367265563544682115451608454792890422860035416516661157490432939141173398916070075809507157192360268329437472148844878012874040718206870258827310361376457327329676205466237139226767617112342027409658765719693541053288422417817120595715697109576087976759184459637410303059730067237689879255617546710095414856286466861020870678838618878906425486027126113055501322236494087138870869603991429558646863242528401040287252535629665139462562708578946870678281550839720466187956674853543879348630212054748371528439965293399896115314196101254669649212490101445052806232225969625956257955316253425596059107490775754463336044835753408566046384123647060753115961358014910177345566528744112029718373512382091674638085438545473349436429449578944522783365971157901776720677017995451825714010411921616678417603392634805260761161449387119642872263739230195882697767078353211849974802393785555296246496953161443988254023650439834355925770581133648251674001065002751183738188019497314927469701258584635199025774550116049219145026909833809587686960320543085869027680517454004794686801314033334134303510086249511059822308522698097870865828238293465353852621888851580678076887433641845153665031221885574024514231421132884813061344345896857442938025472533640443939754285239438440024134997119278475126008414628878631503007000276053363106527093410566571048740056843393554251395944656487545766566015029893782467644044674212536606048359639740606204273532161168653473393984957263384140355967710273047589653878126709622814835691864964816670615907015861147678698476873699882571638028817227943095281168399215942396040411579630291253136452545059769047252450285980857210574569327384841741374934650362657447547050442017069301632677401762336698428756297114100479445833036581273780383754751513809510044356394865746618199589793916558762306063662325579884883403138542353141302136152332528185661254766781196506711062860086977496958223949571704113588393245773393099110467613084347233028503116936707187465394294775282320182758709474699593087939228577427100711466518882928899399535498525561665312611482041928825967825739006534660227616585647803774451398608699367929120836938927348873788542574783421272837967002342809136393894239101989148412024348939426421130189369423542803138146207203699153601820245640075747396768976028841591546108123077938833100333990375794860865444380218473721366608940843082372426800591250914058791687485240002266572043886616704795153567084494799170108918943939291246508740008331836551620882186435184017617132882113838566356667491570819184960996783712215750241231329862203503384564138057899326079357451345677285083267880004346604543485433705497229136607803378831600311569617645702605284848232014296733812864190431091958859389177081479789431032821528038403064632571042802145734798605885418319790056212103172805087751645389114442036335728257355860350423383133508055223033286428398701333249796755332699727552863975536311864560667760177553513293136375002944677108054453111750943215159021940036391890453074385023669408619495444798328195193373302181815327106570905943663583101432337994990473788138164852604272486882518888671371593865180355798644793935070092074519499095069073099500368844348286439934291257780479185379282479626894861593361561212545374668596211038103273023692672382768906006751999209083790849178584290624700308366627616152175242695153811627619807614695509484940384353155203177467292205521424583891569308496014176265088443200377773219206473938788502280116228708103473560656685396665804422404395077982606643003694468324422206625940198434667401082954207656290843748872129219183036463387656703695960065245191591510631478127958688581313763272912423721582660785788728686500213257852379580360461079288592549567223985800416960578690057182374132841599304308282163614785674026021764831542613719508168570591648663003181887746090227668172433076559105123026583950712633399789208271524260370570870469088599042322229606567008291537124427098010144263459189975516808040615573046105300213533287585486933347668327938858845188791695477057886777065131644519703907952957513604204348740311437882829144194752137057581408692479926726152801551282469232393908551441896854051345468180963969481221034204867221755989370560162239403213294229882767085430697400197557351747029565552602907342470330919663412960843344283730536459201030078254264478360380122938250795797577725590142605476947125604015658120596595477652561522500296108090037564699527257483041405778964822314686085995272888715697184429547487837177238186185862759850707532567311705737625482527998048593302661628699205783655085150365636515668127606205534790389478100335423560570152372235757099707797468670621957197436113558746070343432896726345932486368344886981246585647672560133103670548493182339019965832537234058315526789860988789185477024931932710278259514376192811360035494725435782477206428256940257579949304650363239697539141409914005767099461552992236730200064302524483578152398201670074264787276116513433770992546765720275227374319438287671000320687730024656316401738196782590699017029898711273948959037790987107979063422818780050443968793477281919650886926825466593672453718098478817605597383081321490544699415315940351032183907559774826480211818259634619543018750504789244999965573082370118754554485102540390107374597526707419923838184954365059640874657928624909604857344096842559992460245403991689121222390508691988466003159473840364878465687210561960547565891292810329950263095417248011124434793705020561185550041224742616591694798469169053870734777534375077261555974380575607306866936521107970189432238477792761217002718116526447883182664242520971411480366675585279199564525624356956399762539007713638497201835481527668321451232832747681945204565179432494703469660578164530919550798111888840456897877431232274605973291486758255273876467404315340964834462470064851558438136071969610456427883276875164144045267717424976565840895128551294560828855641913439822760755877536408487427834401891076906749833571654318284684870414213348654341571352968379448138020860801383168676443594643344913819050664781006532383446372013974896464179269857024762609337290158373616353984574227735648755933730371522991128964775315055681313772842919698637622649139859201238143786828704059435009771539267512181206727733902685420548391652945155412603894912216286591466783038787708895942641982144358464660991586777828674676828045781156556240008093530183431110638454001147505755145143463851988899019158879865219003238318185755223617999246369110658232811094048991647809807838609563405889453429826097395019330899066837197688132101769552365215492073717804531373482248957319548889435170549449386472521936911874632931982115007428187137537240624312628986740487655727129464789279581654217361506067952657487728065837740215669854291658973609926595535433005422355768393939046448280205677298322229545484278927480425958041031931769755204975682689756838473292765214278781246794446074430949013931463940197524436148607131113019399381204251599922199660407539661628498075259267451768374507962330510920288234570753856788612992322975350112950128857457064689606030762213073092392551491160177800030237492359545508328594070520006425578058332551790926184400814502748259910416455090477659456050754194044598012943721335862455866850425639661101535647850453800899262814075959097017196046755533966809541136567592283566068646337500586919520205355037856608945414114441566221952762502083407731677978186609399200465376679270689997287303731803692949665034434919898936246563183231406644573072864145654580321677460452504366466322804624064904518346227344964474961505465586040801800927557869912964653191751162304195819868059108136259892038753156832806664945493951937050396716885857984512641492165768010456792709140700365540614069644986596810736718802122805549777329395588075274075982297069915838853348442307337404603317330913301251550793567827435377083893493906613747474356406850539874472838113115855678073779962858494516103841741811010024629463846832052463672990826130983096131139509298359828510642927258129475757216178862104594071675783106094354459929784317822691732009024755222520293281387375146152056234591622331163491820628764107521219019343934098243918170063664704077521652642815123467559823094974488481794248549359011356044252667030369431116331662856133792050113332335606157540818152939083357209780659951436100003506690299962470733151856672910726181171870378219338086256442891671888830620750625380768924786731348984827390445924728773829403397991557439426854856098471972023639240877634642224341232485094255582218374890079565574788211316204212180712360631513216467035603422428163885715544669827005790951258780602485720865255447041772428746098724922028525650390732531696516994818253435777987556354410411780350953968052977630099820284877380222337859296317761126698372172079256189081184479346452826374552871517001774864609824171952211488566799023600505835299329487772789808871626586845731368712521918609747375968251516244367599372839703660874324064922792195270830656731948323534214935504405829412158433695022461648907423865327036963934636534616807041359122400981325634282540202216276255321669145286823369646245026050095088800763047380235263213138674120838909148651933118366488411762521445972903719929913981459138805300532528796116140619724612671784118187683364765540977169504670480675694412386343791226085371849544920569877493071280960582133285352247217279933756347609452113807626050259421206346100206830415625416347338529530590265031454550979633516777917688540483975401299712466327996224363925761705514111462743193024775641109631055491002099966881366990290689124693503125112394386699014730756693192433954224610596518041214287419906117131322024480819701864235039586252111295132874568930668867116891237244960468175532544039348159123930445028999804136850367926773364292722081825931959714417308912459396974022684622262469373206555402401979868705623874789559640256281089774858754791052640360638556105259541624129377756447126352186196699897370947613767679237052767835935489800644829239986391467767677547043562623332258943440391653234038608078880514488196515152329461657718776427929167117310903063712706092131377579210492387876687159674148984612035855870881600654113634766263029905321814127422105417815058359288356576106683165550793638896678681501588678149457623308172966192498436478329217323429034307169846452559348240270137690857564593723076700193489957599154488512481051607327516080972111093253158335535884313911750938208017697309758661123952538611977230494402581988711012613306817168574767298218237134346186350623421701698301829148098972767200269465450838443591478818616624463456472773728678673684107482431561523328215625814840331197832304940892035627518161682347832319026512964134942450957525776072437565313344117079104369401484815802887460172277882717019724251680579624771232583459963198322288925763253658665837955221399183774453623399827812336618278594357321391941696168626875580298157312863135767780085174749394819763780607704893072300087696394829960371024061645379729798864062825594634359891800817410132939439333043557481925079363848319631814825941362676372521101298242804450644470452827365429238309240204925678936293194686770456186548224485659463685091295548403409739308250566454071753524984829084645241519714300731302501534947566168770261702191240396136272847543163996647785907912031833270574965448452634823687459933743008056547110298489758162665586977181174586590019185427028940597792095939224844710039370582081852645605437863749964426842344686534371432367948362824470746140329819950862433226404357888355211010184936868006808691486033549932530133249043683903783949295875958898441198988311948212043098886269150562829266060730936418750406666349685574574716136086796953962654939687641361619707838114013143745913809275118266386196666206323525815514018846948186405141693132470604793852758565366716686927982604574960753774282242394066825244113435749378414672162444345213680797601452776443675382314918201953709531618009120950681008986731137126574154861740443050896470152384576878875792133544796541276095605830134392993225467412180521292292465496239185825284466110192392868852456543440599370551082713439837387282682859987393746052720333140141043718737436206513173995651724634068719928839977660625404386907177733580063789102494984238079663735820104161895091401231634144723118060966205096152789323943169398458537235492068223607362032880085227300567280603296817689236457458944962464312140578301817787989585568163515656379693260083168865851716784472400516030562348992773051694485867844371063384054588811140156907594264590499809889611457556729262228644552224329417204649201093971472951371033986186023898408839663329323932219542354423755949706287458742511221618671379572100352277649824745221920759774856050063874864600788894805464348684739968811597830118111229752447958826625650509138408438044611332472776692332198530255789746546928998497460053021009883050020481051158663302099445021189672186253341719869533725224709874808437366801645132047224492286236581717058584640586593137549647090336737596839268472275344839133340266261859672092627628204109956552587802891315264472285689041277542390013992643687479849350922566458002815503988220080599333516220703745649688931846731937471205991920233075340981197645014297275497168683803861646936745906012810636224727194531459481606029620711310612307945058558658332307298607083824087996965412266216012208203066345745647047457799458590625964906488069444537314425060753272718832078324643296680673963195376390608037484028539485692363598967958119003476012962514130299781781714037756732623646519070114151551650431616734174511983512291109031236303402167599728589832586407828592254540776217607775248959605211478462917167119697540639533663954165260760892089036667283162738492921259800364903246231543341567398577928006575633612199541171362725160786229397298589571984842438042412580315688276996974491738489261234008152717013578842853734770682754135010360522338729878421077731178708237586669639805197068718742811573153899295062761955537404768793291562114903391253487654469292231028540999159941863779612781328761014478287966430926156997217509385195547130871030694181870475593445361490325803178168483523706407792747964932384641098566933601100475816280279787207753578706312844541310122389135420168189661500705536685064115137119170448195995383075251251530255258682494375269892427117284927397617768797105640981499942381811788373244181566838735589049777585485536749344315549920665959283842293204870837091181750053652601463924649073042542740640858137338701732370463520905148622992336785371344348067031302054741573868828517468383706197078129330221747295624394191003284581418873107407356992242882532917349519029344427610946464163376013645223463345921786312717074418812633119542066105930317387119858960317543366500782702994061177433013550841539737475647087439255931036313862638015080745402514527814863593129741202796237891755797826972337670666779103825401818750353923450986826417301797968589240930066540339186115803282217160696852608293409047775479854981840176045061988785270743781200496649118425046325253270296131706471693648892319422990557345677309426672512389392983255088158974250752343853642365171384218764204474903806936668466043699846587934348134744937577809318437771760957702641365444345379951425081534222822458608669973919242105581868767166762432465353352005366710938084436670305899642707733732834314128087998101104000501508727053725547878405084199439635208635969662945634699257944239694282356751807513841206000379261617968598813023749076289257469283895258075810011028230472286724257592012395240435891474744634447153196494735824723339116032228537864306301943458715863290515291000185333506177532877263912318317855496588192316151974917637577265745279017690037951409900445374188211661134263487480970267646705498172880125758939979013672517304430826295846198291237984017122906744316692458217730813506560722681203237063523189599295797204352502370752478728522716506090399765666000373521165801463904310996128751957646621377042039119458334126448324201727686203157287167272774045976445692580444001159117036342914305498301994973001661440614147230095523801017884983802130886874102471338477038080126340115447255106825261342630791204899977684512611586275064125299208096704793596865919513749256245061919491787414572850335327406883779565828190168032217998688212614176051032246941909442610155208014225122932596862532435070245195703682594298159561203025426912999193200434081398660754995305859924565914895493203662706023788752939568534243348542430568078563094843246882138079850343199724059305851846146280902291487330879684690578795591484589161934490404752669928501694966930579266163108862867525215980924506101622399391961815375111945893918526123138043482774689141649625744308077347260082587867925951941974382184376058555174755602041970958577420276758106350681253074181954688126225319781634591200488449947954365615907447091896450506839987461683964348728522817074330551882819652725522062526827775824533438987617829780844559524394703933154076688112075160632740525989347976732905042291944260009043877392852021900845110642170611148804010877980465501453896701495037441133134770630007443960431547026966915501681566853542719682242721867890915759132783454901306831569783817031312810461873945149778756407148537511053341998862565143435815808921469448802138029848816046286814408189618907984473137182683736173014501903359190689511669890202635160594282130318316496928925457493676592193854745130355578134306247331046075657945008008346485134081159818022463637644434921021243082851505101754372785292364521218308565202299548285755371004104895758358676387997797627286522838553207685582182234069273682229633854508144697777139482695563898630198155338511362380755894352227836388409749725477958417160420586898352115571877228939321258126997934850049633873126858959061095959790372524934496680832028498592502990863052164333767045864868421751780847410669682992132741564646317443053605114127275180952687469369661903878633737460797719865043116944140442785335322127021227179689064125666681937220375421590841282374993615417082600337099671316226050016265040189950963182355750126745736570897302053999071823468163550116547302192114702739939836614716768464547592824583749242926942896405382250187267440683175391801830823285901805281966075629606114685504045091952574893466261822419473343767611907091274614172735052986023148177500527677931211459336179731402371386013927791656529502321172442202881784640679935584510912770094926960942694075841050880104266884519148843975822561065868680712281524648318398932036742322361549320764375821894996609110683760119494416190664189898426111371298360584335995396448559144681593525839915989625793294788201758463691467126029009655970982043491767971271905817684207993779586727103472360009342814665570698373481551599437335263633806877562291219832719869667143860344749440446712275250369229769896586509342538526377231717560864029316230067028001572572353916391608647890921894934571929140003399982904159129728543960915735159256962097277258891189797918961306087462340550987498766647636343032788221956661701472149642994150412275261008901839031464998093228473610652039264665042952678732467513584939465226702876152076123378083847132858164394698836503845406319775136455578675160703230215481892963028758629929133115243776345462729092092687074903259761355402304014369689851790996078209238034480738722332350165435940058569352972199202722248336960947284069014797328261120391769532316545717782080570539777733845203863468296128365604950063652908152054785798415881576016154875352169751711157312890023743854088769152475685216910985766577655753846266419788493322277656502380294532360837507950029280654262460971389278038699191760634565103163751378410552271214466616993612084419085456614179888350802317955196541476787522742699847004194392555331044882234177610921266143092332445744752454215775451326159155859090774504913877160861792700152184517713649100223149177081359023193943775792393970658694139717959670195472431456529906662748505311156020886052571015092697839257448976174935000928280342237610773007256453963418411381688379428717868109488462571504109501245286016391566688910411684273668012897710092895731078962473700688942621981520069957334696582720133724992941062563456262012021638890427329852691225934916505554578689706137937642124659206373212441058901618727774118067102666894892509241119736463866523927529453737112287767238555504128547622574649024280432926371139920895417564804400131647185873281539734961862732416518418305054334083572962867177954979941576307566985310910641471551912239576453281834287061561942503501236636257769356458635626692634733105682590806887718485474801365626591709923906306541814841160706369034968804799455051259364437061268281778548611648661994498283417940186713844081725184152201398895858166464382334179767218482349552774101238755617463502413314724129812095142988655287924520679266599205641202255784334548317165545433168681703735764009030013528955428804190425405005614170192508387882131905234112041907795341825363672200613713627793535581734758113487182072102164752204382274405414796649219472300687180781709642263584725621572422428641119663465423836627909999147609502980280396601976124744605297692522677277849756304976487685103827124983763597395216782974707608545699049160322816081147614046917373555984021178928298730798609823911005690844208986275835348807348211578713588881775018909608834218090511102587447243462874169515788293601872553175881075741651988591829135962792026511836197162762666362663330741199001990301373958870874400176136957034291270655278012382698348138677068203507856376355990601549439592095577129243966447215121492864183234825323193147937389597082145001740661860141817890932540011821746259921362362809904790463058251762788136784306344555648428603843014960525196164190946509010284383262480111993076507175315171759700751581205780481007186420210955734298730737408737890089052894182493593191780171497508567876747316131056532247827047013294772696844951614056268280668044869305584306589491622842981725687972704558891092437163957712970889701042958248040349376840377401713729388481671727526198308253090902883365140824727543402267741975744504567842371632676267631585333263897223024197337059911094136073800605672200672365769068709516782946881451741947442589110863114090039719072134507912522953702081807817732085853511002050908385880119697951169137048418357496503735622038657313294734296386814336549636373944467122026021387020057302846845729356013508771582997951499766492247853832237799340485864630206463807499074341216526941649183048778076093064399632335290366335211029649275720391550131269300657435742141809524367122952280398787804921486169485469687658244065207279771810428804328820522526328309526133369518784562081043002311081832793459247777000877206359186853332241531273889698865043663488825526277041617193536599802896363743825411627316005695502401375356889133818129643078018381080801674462296523453121375092223403074058440559446747364030238916886695909266218909694352375629657856901535437177839357903803041867142984314881598093254811506816427795954160450349824437033874599923202679993445399969005863655179200079339518395461133793602875201280343831662899279064829098585120489938013406645797453463474055556533914874073061942044127891715505890564189468232865932996369426284487391472455007074085854552063492911588085954915181424663416711365656194322786674575249222536482653258123829504342384911408370720231226593952072172262235575274490016140844021701699391231609902233768597454689341122657346313952134226022820232646155041326811599699869896170744402718094848139209615249110334508766750775663886942569129932607992669223646037682802339600253859542506518812962350060438457004045386008045092102059075939243773077829444771543978428218121447971727357389648302747569251420515891144528362627397682815374945816416139748537548515320171726261326101673148985668200907740322290713786864393030134876345386144520320412015079866236132184495812443474288208371498125031439043367288206435362812611283304850645919889866078147535222527483879610266658977084178275981270894211725013815055572742927503231835072001032845225722295341566095586120316524612354825654949710629177957273164001859427269217180037366893326761794413712577289611085010428803183283015043991308423196792955348626317169850694029926159086190397459124481453754379440147008622580799393823537557231448833804847330008949703059332221167700001541150462708821910896909754117333979229897238152539726777585657680042531955160914371402819162818229900772885287249408008770348697843527731320823591083458272258517657677540406430859373647882642453199123148847781482930038815305299973028560083577192289691272494403443098675228510086260815942973243621327657371237436949152511407813925467693702315558042182357827223291943919885207260971296958744585999595555553832179358044374223015353871262232112545889493974056818475745113749390190690688813393429224409638008673395304539359682509158014594473165845697833876354671033995386028110835166803985456539532233148098212889535301178203601885927595730996762545729771312313177531009151912219811634721613242094682248212517708179795143457897503756804806368999703118045338180276685402776591894306827101092890865487237099519090711744301199098514069847105785835961208617565976639947587182405892567581326472876346921170337266416670852658450105630532255172510122883787456311368606090341751910478011048135614772376298071314825271661228345887438072672391678256236787769528921865175261558762737620362170006894771051692926994073888558270875319728298027767750746757488768828384531165136387587405700640762123150994661469259617016177119953129136571156326679092913479524671419671022794124745001298740288917218884474144565266238270051737273672250282476524220408617787170715813468962047676920552607301003966990823244530680356022132750329592126653037114104517256610614738607689484494965271424306324409482780031363650328470052951399475128890132778017809947954091787371431474153476705675665462844943038548982490361436777024931069928647015805613316876760791579416760544622795688030274114783410860970781758442618732252804588009716342905789901607523566659798152785911110834888925195102501678807753533796726355318919448070288128342593167134534446071730179701096897272468461289733172547184144717755495029361062484485297741696319870692906137843905912220743942829834810952576125090878228419757734009700341604333677246546799142436774878371478235405510662214743632848583628845968454678435474497381246882004432631562175224084226031577825664047560098336362706435166193407922534999985062127108935344224988014495852209790537336071963287697873300041037661450744965024187242556622600742984933714251077316569294770688862499550313157864333845579616451586847611657793741996275341661717196522517120341361380657382120865225621707716640409120528213115449127902932395503584664440612317402324668345753620046239198284292421428381220082241049707756325228584612515800046231166663305350608346061646273507056083129053744635608866273686910913345597594623161475925198254056808670543535800574841926071957118066316942059104377128402788848124497999013120931466005581443022262979324718870259777571850613809280117247154158286798087968342494402901696533174801607356008457881586884739802143795688404020663390165549661799823484597022541813621663563367311635009627454764228472444577613558172726765645251849257570616949136487188716738565376796925269224374043019646668415509000388300161004338004894984148488305202965289271333851412977963525977845590954726745196181675593847165476396061995177946753752623960413901758799745993940082350838481386555744909229807095967756847040359203868164462738356594388240518675240072497870758800662977406254246698388583387949582776078086648044084120178830439655955425006250961458684131794406288577395620725434961924523594236515588744442141498051308326790546151021268494371062389694142245416870323038328281897052203910088466727385999613347564766334937420397077996267054130797376303970941151927079996887254478879322896031358756093460611601007226388169063629819712227553248118273971089976692409962712062810377910673506241161553065104746639076558284751543560117643943747168895486606650701698688346328223266583654842189789973935430688516129509454347760589898874786410085254380788672984281879285140555820968279055982978440691463272098906326621336123375374515407176185509792558280627480214330839550935819444829405471330435328286536643439753108402857135810752841710142970378878953574377444370286100559500271355003899166659309716589475734181134562841406591923592449156013253843740677173124727215117485411226625178204781099253649032105516947295161439621004624791336874706883907281247653392356350826248487687410508135239206222638966217561322196860110733260149410145962325721671741066442970724275414700464326457267944721100880275431962392871442202229860347170822513358278488427660834504674626082347165256490593965892529096009768551157710264885877204140062022085071125120113847273307254560571823892994338743600249766442699279583494163477040782759729649986803592065722079258713116085942607923102761056695056632349721097913106864283503953930426571958286759229227087558553899128387452637817086756251884423290840528062480329693541624641766581139097692912873895278761840089123862385030680816476001814283142969243416082502888444480974708208808292602340162506669983073332764899582417106251167186778399569856163598590634041773288971598016312917522936189817053174015767941428182663021147011843776872480508054123572727872131589714262041633799662827412820216286950394803199088930906488714791084460495556829243351389393359790987194057852988289849598390458510349318748807937054822588564460851360981421181471425855916415841420776226264411373235520836907250163388025760002473239257936946997041837931437486892837340153018014357682958727776651479394520957733831400059810736008040149051834146945826695179522971372694814392528435772011119196174225365507032777209762619092982654851387575182931753247962505472620806532697035502746277814471118312295010625193911583236126057719585482027491217139815718248705229202282816026526445240528773003891085751313209679271754291412959826064387883395065886191565237295043068103867812740945571899156314980316802899076615080756711915057930093567983159635823684858131877036103809450630831287630036724355783049727517877843330555691462790574567107200237238356564007115341668311509337113878401653446348262846242189104021238135212920358956018304650155846195635926366181016854274660045060952525016425556547433458341818123247481669040032938301997465525240463826083043940845017393199793789302292744976914309870551363424330763128740560583626546602655344468509998120504827106974500137643219619412479164464799400520727378480060002860062404533699059797878782731990067552627363234695192753046244893131183278965297589867821020667516509855865589570176312525397119952893650307214702645583237935367638900947317535993089018371772452927636121291945602569321491350405110542039135963713677144928799045823231472123027750073033684794946030985874390064448228010440033114684856301731032542019262365205929209538322289495078193340266958111123803933041824295727648889917375650605477880359075975727829911474151316414691379981539886404511288743788141655947952284403449200199266332930450157795820133820719515256106861702402762345534860637350011899070482050342707763408812762869884509346661287616120155340725159509978138984035652872050662676100948407037715465188509456901955756000244564161489685884723561767675394208213443420710441337767842643374515936529804491331557318210780172780732631240778351096378190856472288530589012474086646645889254750460279721488539954705390103968100338121543713406277295589054939242506453110208055745936594124767564242040514845604273365823892026210780442626022596787207226434964920335093581412487551679005155727011208898517956457848836110869430533087169724718794978293978582924278137757750562131311095506431344694016006704782542296287968361795452357527081668560350397290795438088610982598571524232691090888605046793861872166900185866487507906911081763664141639855408570381317627484442308471166380663218192965762212348501171443766068617236438802627623359270915650528583493593930875795407389047063714654980668048794692377239833506727382777966287227884355665762258869820658999149069887876092187038967657242458173179101953634858023704662341127082726018979804163311793095942249037012112919086588675041936749826294974470531252780915891225924839895746622925371116401058659205463102969427097650989998115315332138434240821295246606020850360171773640883053689650103892332542884745906181645849002606871893122332804024789427878582490515462700277842336489849910067302166672850122735910937344943208488938316813159053925655775901026523334708667187253454142221642013596965196977466893607097289102720225903362233051549049880726043206421589781967895162610143233607292803410210774979046095613852847871193701902467064214615521100799500970596926166862915445366730493124410471655708358312744855093620287237574610647649738902695688016176356827394595631697637578098908402189602022071022027379983355053717555787373647980522881369959510957186445979605088739067590951460383415995730563346782274269554535996440682556260522745175795681460324611390195800295324242016361754019901755841739697079257465499147938066902453509360240944930258578741437261049900043531936097344918896399498853937352491457286508683215921634109891844727265223169975883318233871281684056810537632342589635185218674411726027479723798957940299426601893375655997052198095144313416982373018388024600756207701534782074825079340117489038751444552303508002459293023429931062663235383787374618147284784442546468135107517441459692289286392681044604563005518954207638457106075461539549623634817494694672156794825611362942725991409661070978913473109118448346821608076323598051998148277616684763659622835899741922220740815196012596581724976965491732564727290454679739568974716032331864664014683335917050148414261178625866847525585942382158715521784569926818171379299433264030363976566444847095161954975690316120406660010253205385228415191418366942136379653611176924603071551944405183059660422707844783744386353505877523402467034475936228421414158444122104212833337908878591755355512007585061425558689661230726828179607814912486593712573020784513194349822764045496019441668699021921556984721217987577886168894771784782841531816315933417553325508908462278971585867703281127247095085609737169225329898296673897118164365193226521410485141147441481263183489585196949699285297562162382617161182361018701916447626905994597175492217743397587366839645612602898691530805334406836819530523427176725084075845281575209344380508240044697632933505245465983082629033547280493563141786548767720908182835466570012073752755431137535843035231798240517612078489408066660405755016040036559713017722745095814063685307104028848086605571221826829851738510815732279630236339987784400476495456994118338770453788631446014575541022441739137703465929988467531502741003350077662639434356392268139227903930894768050308797793715246210060792900632421249993786156260183885763420249464796799502140134454849994490973024163938170350420186162904855094112259454427747096144997565929915503994852298107697881347890905865139932424518466324377815543514480631023344291121320997288190504803168816080058337577957004121107943996997106884071430937854144678585596788512587157678998514408027954638724267663323473998203439771393522706989078577359493709893819160839294868297198104676124618904934847013922277501563110248315924260238380181292670635731487866021120688779817660757715365739346927534344762030614545649721001777502321197391949582194795876026787106335403243801230123732562723202459903996114443811241241374295945246533411245520666496537032765372266134011932433864596782096263487899755248077397083564398995043191234495109990512431411508776137020841321226544550725393759722819585106145531776044340547197032377297270297298709522822521704593531898145671708808839884205278383808222643149910555727561025520392952480198430209290402313235924671742137262225366187100326179599134120509556815770670966631295269424510854748360908364109788167313429599174837059052723707907389083811583670896216585511061394217567434288390416175063814529374809563606117532206332636017618134424932848667115059645828813578537053456273462294687225269786360794697953288487273399367219068341388385302982503871265311440640425399300866696285623934039875292335517582553276680323311061671894518565471134988997724048010852718343100331543596539145714492649384854885944398691779923825072964353234200583188831590684453902962032585899768962996674141423738563128056556596854593515311942205052949218056190771383588188727544190582899207253423381512534154412424647683561565890237114195238606283127817759596469556049580223798673869396690812236857831295491380585953593028022457315482817528532567820412670492620771870064171256056051966608427548131606867955068322826384138576862892853702198555214850838656606908449732488948491685847733073906554616469000273025220404834493996496165483767941541474092407025057275679384441984563499273483020186736156547968868065488705814812214640745487554416815254563484990009616366321085350152900321435773383436099373367772857275282528172158931125592024657870012468821296367751235451115973711860485461499819502437759949246098669206798700671041206002917430047526900545178196682503844995014382866434824419097957881786654660811435426212941198285544594570237828560124461895917089634789130863611793209444285699040125498313792540569568105723790160196889100795026281355338686349048779720658721063347722930064960745226295557329195579932713124633766963497227784706869581307479440959582150541460508959133770636365601082087683134169195909334762101951764707096172519743494422628287193121865799383013943483872075191802154980009864636574073085205739002691367535316866509052944417435843515166927903235063122946209376401189941832472101673930870411873028357288292318534076573092842548961847845772435723077114826947468799087623700996667828575683694129135635391560561066311760841563325468766877362683233157630293371496588588130968335034759483418556334980729499147083358115885710548346285193309217159793811025711601875103041164807180233121876985793438831500039453008657712382902090892028726337292064144516151514260107058010786899065440642775149309611151633569480345156500443052157640495286817490509467095070498750338236620479628071675142351077934461640918655468176231186972662772312937965914286871339518208592802134559694116403627008325812863197113228001388405613610292435897348418555636345923862833424199663503524592046615465384964980839107197659747788354734638848930727664889906784512299628078991395561814166895664643245575513547378279812100469805034930965439406581264819111928373688790430545038831640643758002233803277600140641734616216869591410507127791609630062992374418942604993510553416999289769462742072452398991915781253320365133357383990443244689895360664780545441906601416019934906161752083908617272632364803247696165852343133630586832606276643753108998058014098169280250147956008059523488150080952013066284026852522449589122754257246791759082061210650265358962326938897938984484488586593818393200654536006725464605860664855262952194853413588678387990199656527339819657477227194147476095702200919552822259739143702323923957719682953198051593397003701423892928104427482414711208438970105779277708381073553410902572193587178178570348045573820723052470787682530980051869866676112340409126166104737206968809359878930432403893569075174032783225044954011956751064182700277240235384343450531476006019198146297114225971605032957940702265766071598426333269314971060159612570156294551093436709605282756508490841592510389424753166451530207948024455624075739072699391128054793756483618786646586403451589212712621061084245005064805118888530691299169957131139387005719728701319048661867301979466578777913598516268281487867237716977709488557057942172476351423170188675759184789717034315583647089004723746916911989632686037004236792181510690422511088383501877488407293960924704140223000905946886649936734507123435477484486209491866138985199937931514438744105884083805421075643531341777065533721495776157651439964641839781930352670926490504430461430762383016384152480732370196304036467912191599579664275347252651057062548661449914320124710570459060033222503512056895860321554722479626139859999145412517871821950156865196084238486616641037735818555770944405746031781645419108078881753867217278767557854346468010562701388410364478509779699880835091895097601491144605932125588324266984605320968899213928737546448235067444695652707145202900648417810289578596276116600667315598398374944300077233914287760495212099345546072024042159940490100882963853169893279068813860508746276256232568527604197719625407168540188758280228527272745333555911998160930782226471128360930556424209919672087218158707019630936739225502153916805145319609750515495682093787343059367647776678439004811598776754361394164764235278693089181092402606394830913995830293774362816980496097588846097389891025872528725806173968114793455235496257581377328909143389310677386844134431235529315986934577693513638646593281441535746201003658344305890039511748565923201132358470142354844994410550210018861286598225051151812610863894846847136959237589340450186124634819534522179055816840383037962204554220655615768130104133197192586997415065929204211894476763006999453462096519894049576340571456190629753399725503296776053773893451984237922944566416408388922071377119282268740476513068798608154461138673650397251876448445308430798506230953996048463017923173940657063282125282922182604771380928005945133745170773245611130208838682440581362973276865180045161974026228455168261032963045968835445536340298789587737814631723820507923928397535982866175843657058441437109621205695273686316214372349992784768954535266767866195348269413708690416135308416222325208610876495941146454507637608481743366428570732524042675041135373350492814343870228267729346835417757434629869979054070074805675862908986756807344532488458612013466661324438774914143767535246624620115087895449778617656762687795271807343456018912776800589419072058413474646144795572357369307099298963674047347967597820949635694421803827133154646711756575705495522873362505666276143590086530954733149827034401174841141127455270272712166816267512835921819399390702055951068782646341929734760538319360729459489793402886186884263727124241348549497321065180307658146737222322407041115439895823254463686741813870008107482670401232715907144745184160686105060956031452788183353321000686376977412022257328435806253524985554443322146710265612917421029896091737656412226762004684465863382853556789200516779757205716272250842267629099417841585336548977224018170017510857987162899182978312086677023352755654331288825916796740861367151035155585673963261332072025931962379756763111939541504687729533532633294822285440156549690877307640968286434206689765127902687113701065375984068930892274652033491735269890639890674395154861602491913775017090852271760596957717733080576953257942845671411347725645251066405531356582717349699092058389604195533665013131834930293448177309270174439885088800004321410652756863704384119226852598872215965051463373406602972440538858576107189787207169635225052078538783695552418942030994474509560417116850640889049181147159197057796171952195248752476111395233318757015052436791483038675659796329453898252569666741512317091622688680605348091333468922824769090763004560453607183555396331559213650560362093742359043545175429385754735293584081457759192366865798981831044823530617272892229470895997565436546350968905484294277547588249768142299039637130152296842776253045727782750613652197919803813538757766720276418189653616186454038164920640901349629229313315128496627790213570758977694650205757945404974975748343930269845181978917948548656841075508512814274456777611091899600408904613739945552932817762985299549190600933059694688078311425116300583926913984405941943606333687293622859941388588288365302044457219174664947975001762913446017003791512971434095777654014646906714708426262762271123199488582106783846175106791320128654193823988435004114514428946705661745935162391613275790456546990602242350425143594720244549834848104659716841455041565272796065764612095847673425430121356604601274160145197409944261636315902418660492665923653786336614919381983098872529210360553855410946100990329695589415985031477705053534976927705561786562316369554536052380927797725022497609015163611943300346338387445962105400094398926408963087900810897365512464523369598499239433399240798116658708338104938133505848572588265665574972628417888842996937854642901167575640276917293212965307187666110067148316707077185117442573620508872177109917148291355273182129528132873313836028572652984143593983936322327738747826785522307738356809185699981073364295016298454291976748505258064443119721923194598162977738926042813206414063265217573134413978758870499305550673336137448921277770633000608024240006713348721249456562792072314390666190435113736305666894780270023060804944997937714278153738157947728615799270000815240171290227464277256440346486304775811076170296439830807811207185535645379511100836795545541151772508746402986766783959684814334773592841852583409662270547298890905952811936323115596146855538195937630680898297880999520749392835413736350292568545410721208848724400227168264063002569414445825006849944083485537915638717773220432993306553451844153614154818103228993460534370587524959073784269207860915031931449500657786068127164671258168053664416921468813726267645844104752885801607848989266773169109035738627324023415235674729555263444805168951168445695746222942843433260102887377196951672593820710017794118620342258879666495338160180107752598711634330915597880037427371060118041501623383062704103027565921699868899718638039295662470517738377888240724097218047454518285474126501631955099679533413244731055920958543033379350005408435684690259132130595475022046755018392763141378605076520500926806360493408403821711604939942551215268172838166196315890543006610043476263358517337365180364364090613012512395079961699832207462866352939675454672901684497740072299852683573285008504607730737863798832268024447769508793129231602460174429563538720771904633179865102403528584649275758342849265986245125390396612008972132254908649738824165284412102709553967208181286878180676528953924577398476128436258554857110542150895230500874354998240371076755695030385026302108945194499889360886960611848718148499286171472956794304376025834856727256684836799629068933659000104983446131008299931680973505275785978321823020716063695885641715950271202147371730110791962566299670313382096957646070110688839705324275561641218285262851190453191756389705048276333069024890197656741340667445013979844663698884735649895600408112385857036473807502855079461188769011606262161553485946465172236481855069880874466173800574452484006926217162356966578809183807812721514401233013243022589345797347150819188143296584410694734639712292236161796444979842956055419791166790383605523327892065399160517032675266065859094768083874324540882836469812190857299093061179804339733372456471918934888398685606056523893960986844453869879673481785596400825236663050804018129266405362112196377957501249800935560859082455224688773688026234366585757966490466043289140848269204205044379507366417804042440703610172773926815219352649726088644715161371834966180279393358299991083608869471471200387453962470811199086655478188826093929992366161357474795642913161807555187059318801169100200619812496640123598557419467875770532677102961292234038745670956186077900889412959166938161737473139459072177219279846617503175783662459992061031963472418138875353947268517941678730516852880249147777035537711555299221879315995598255696141252547764577911079786983718460881093411930399577664811035695113593674827082717059062523859842159446827675136520584483786556839120942699337022625071878218868965786791807725618573625303074071150122120605776893841131909478651993544842606266798207340548092202317852203554265408375555451139712396837399443566706745742715764781225545887850260009342967564488121379947770798191239230520669617760942899993126822351209403422091708783620002636151475884045999259799283938115461981709863999986894658361715857231121883126206374417954692570690152930597414843017136601021664984417275129414120172190421637653467982459431444954622944989773357616440601241472918921162254488572417824443923226175288835133306137586639065478061004607610366192310068820803685695569869279887741325732665938658120623687023262677219893087104987477356236526338924522159665508621325147448770376667855548059806536373340801352688896981661824133891611515848968089525957238046559932371646907916992676213207494616039921949228092528582400369946888687957748313785369346070480699859947295437645496532788992087457388737001254009197068666918281801723734377198647133107811123659958300501488978472314315989290624509206259514990911153831340969115477579951825769627680315210865602326106874973178771249722548726652435020474747201658684730737201147260423384892815533405524142964567876911131736383377600798293777552851458676366541414081079272084185545056357491230599499475814784260002401381026376831517264676477079041610369713473387075911200232365698473605195727762407250697513102396757095939596341379069636801714049653373090293697355961333066266668476865422958393201145703752724145542427260200523101696144940145508098866760056938629251193307997284707375036036050445859953872839773855910146842544559812080301850512289183442882342553235590252556987871282531930594031753638578410241356844335984169392490999946687165723851546078751098014661125523188184488813131285283407887506545171975452538775996852357824552284048208231497542153991633750072797242265813764042023875796759721558500013513654956514080168250367778954642363609481569509225912651733727596512465490412909448833069867058340263064202914191852591424440988814386596744540484589166123861382542872267112631388511885099567691655723449925606856490021641725439418821811238474417254476789134818808936247926286329735317824910471251986580879982946750236585631492536217995368594745762488488242597130846507738653739722934760209968172874890576195331438257425106931609778276773061909251795802174909454034058440363899284237450159456514992660492990212469029979063467740517619687193961519995040625678692775497616606420481204875597721778252804620754041629031617701520066955718917044762611196368550808324218455147432422209496466775899310852451275235053286216026472700509672532937649169837248749182323957486552225914320847330358530396876765436195322984905754749624559420748283015449974753977781076961664164851271156083231825522354240238032609018086566616694347432566573189292596521045508958525049633179905725595613819544501715017181938200637143469117296132014241998812095515413846537071595429420564861152266246938581613020631505212831678127359820202225709731476211162704767877557324681873346951784606099441881988103705090308508386198991803783775146803118301658844000728732015890603740032560167390426396570023618265516641769240928803564011712804884196544873655109358202796691749688073706115831035863087178471668185029297144196795527191384230257484345256281799735127709686625307941101863319885701209038461558752923658282905450779394206689732470617761001776359249109771516472965071640792006112055368105262793488008699596198230591547200380902074664794747756413174812215876723600296054520088722100578582077203795413559242069866482931428419001346110586850849482504829214299576286571339607401607076877907612852348317152016337866140294759046323105998225133555399080018735300902283676293780959522346257052962518075457540425836667464456161769427582791683417950140062741824966698280116275428123737679100004693506456502835009129065541511135002133257060662844521267445681677556651766856460047866898358098191322899285789723089646890322654381279615123647207354108593283104876447894962530956668628727126006231403624063517224466208423848948786655462836627416763584806362772874171279603057063007292408227838103147842315146409624712308600839230944118075785230220438717916855984370124670402753988423866192081526215457076118017105240722831657340357514053411934669216897654001496083196398925584140575078478537163512801037592067223777788477078106853732313904656669639200560936059595352558355930488259540039656694018293304073719292913474439237950721244545282570924745260147644138335113766617236007086228125415071748175566090147418845819269671491685208554119898087156065266873770090732446899209452046615176296469474116890911287531995958284733794715877645398985905834861274164041649357138119699533567289319670446406349024607414073110170232681168915540319307355253207739625207199401417187170497411511322676670254743187569362827518688636474652965681625632908750964480549714004994269384315487865987651380610225634049170370365426251776606585666782260784416431796259961991838839790162886928908481639482512863906017552494636493934871465072641934605291408508628881637125504160943578682782375207318346195692854695743411855780240565101317148599489469514518575219383283018318280482519205279056953808818654957972314461980732245562911943157989650009452355459117059263001423124341191865083877127316765841754152405367944662929216860309014640420318674212992762208595679562978260577783653775578002791428543099025336740065066225897036338996974772758532923854576897015782952766757458009882749441279429722584198473325126105252579800751592453528899129938552804005187876303459328849137510024511861039449205294468706277509557394888622373925333833543795267866525444015803748292496861030484012848803731970508866207904097557486457302533159887047974887104318723918904094186958663415649447988363476428074052513384196857294092308059556923537893358286110129796803677198255712379045003158736640177694809191153653874943693897101350007942501551232605222311077292240971940533779158212644213718254596953623390726211937331705798924317742821370655829159766835311469693640492631502304208620610742191150859576280977183718416684886701551644610298550490925036198464919351749545648082072500035818514367159650720439438483814086947399845963663142113908404135515335142124160425754896819905376242358434233971029127951097517505547555247612274801251705783503376200921883135082974131980904427852622331218884734294019001802505431026670021877959120413665028239819756254248236100900084210540917453905714147585688048249480240604139385774353928015862328029574601770726927332374902193603685777616873707164550062442566245911213131884517718211626641443476466377895079068886768894816125323717849785133577973445454963748796187175490393637361297647706631367279363187951580751407759407621281568043884698819754236630531075084359186777890347375745447520750700691423547732944977939303931241997223915116133910243929022286707564257343156287423051537954509457070162854883090765373238771266272911717467338252024228785636047720126393656563841929984540435400066479908896319764323048022678294975177972815943824682108396070975919027485861062050817281496160447403645505162170428994617494395341327252916691793313570073923984140129813056425047585997420169241972263316566866167112487643994122651742172771368378992255254315912366572079506836014156046543648771771750739125645003062165147960656406117344845292512185749424059276388929607596614361866255449881971919317765752881096380047562099814050534001339504456797573848565922238979016728856820307761382594190501865944575847501888014193466707514760761663989588851708782853180350805987754214362476556660493813143297675414577612193120290734561268396422418818145683696722940144301531430025746566819068888010238086566856906655164212723819211676749119194849258116809957307824096982535572369229596747849529787490537981445670694715680705108785515261720636005513159176271128564367137918523651247368368921669987589039265021980647275918698344773014658537631905345946284130003895763628977573173442428653691979536213966076989963258550551073893163306444472081938646728922272310312424209656930447860697367911345935644011352934729724667946540366849313376249959364432654900549283506392723773730919295549187141498205465542774080963869147989102405279596501055028164892826307471100819229043557707922062831861989327343099492556511600001004684684153185774618509111500576413099591722722007276634068625255176303925816707096962485132948612385440554610823914391589638508414416738724449109994823136730736464160129991026492862097633662969732319429346617156114141701492031424967186979105369933612886340163656484943449393339831937633349316858225479754967043427213109149678663839299197853628913279829587234439342705206531998384582211760553869545010091933810310802882053012096533273301727631018950113257134888770285888084287613805175342194341761291950708008835745009075651996455203614227890176268388277313148041746394854540950919626622137130426454134851179742840646303650774550340133534052693951427854651033747477203332976197583960800914388480013950846701278770268814626005077338498326794412962827382250878052961204918040354107267332908774471211878342357649169837538249510101221825322744242214551742809576302217373757000153327273096859013296180491302708693858714305757666345630579104196478000870102616721145371199477675791120947083602951643747597038971067815567855487848109540099274043228278116314480497011487616432973231127627427612147672762855804529255356570301617231831096590617040614861858296001428429655986981458400953076081790091049203435267249649242195888487458328159914651317458981777104624656017247963662752992954776153431988683608667924478412001459178049242111719781614879432818121353490691537246567624972434811557693294239748116060248318170085334773338099829826954133497303422641352417302618937319465170739237020254545277750757529449625720993702297027265995963166088114618657436954535580581531645589442171633248898670813821906037592239932312148438597261083574596640346243520863155470544241063155136722867325437317541230179202710422349516339407860470179972158543876040450749497120878147093538671978881507486298881398123491837541626294783331841178012666870856609238026949139097239590006820772244379402671075318798411209109102193717035357095945264846800956225190327731830761956253998064488288115936671730071884227219389447304690313631539552196406859091694889082140494388846084330962243439857798264917415050035870139057820980600231921334891131423322957331364809025872367098702365555766415888186418000871041556235553078124010439011613542710452521778802471226867487987367741531664868926076377110774687377699606269926864068848630894948566543362232209031485611375238989630994211271306949057142646202055834545297849150298268657796564443945048989679298096222752734036179080386486220090599900325108595479950536709093501280844389374132984615745270119320729763973099863186799206840323123874962644308514594217368587894001840240824327458898698293898360862933292351361045650167133165963644365527156246322330851989399141104437811417338727681497739470193887276627660179104077293422853113770807774317392087720523712079144295936835989961883741036651142758829727416301011877850184036811168696994461714822575004540118869965537914993114413142686175855145160794502166882656843444923778477367786453748017925553880785887716493308845483975017799515822877853776656862588996049608298018366419252666090535108522956585605797250633251436438241638323918135563093928182859494717701101583844285823083643507741502623175031117445131184451770914162966483844617583646132580032181963147313927171121733385609919052126731444291328971933056462170989819739803893419155686585818957080127358656071484808987493042344575323647876239144476448268325857769462959546091035655534704874501603755842005618692117071650933879174961746957462420664714743104256534868781382329653420425722825308445598092351960986445054313050158341506087753385563245966272476890877544020242601281231314039699089453711580516790893852801675984899369174874189814735857196840630069595983930198417264107692214305544597793585364352819188650441400047449757553316989889278360516954155599625853777797974152428657295431361518800552911710423045367187965714514567970067223869474499598296956570091842573959358676627683092514278663421050173697215546833244725434020444927353694195488579644547295733926728693729018755145756270874082051555589049031000699256754729302501228721067371660926579878768104497850890443188444315443944864376844482305569156934761662696767980834241588246086443517825705707945355128608788217089512060834530392474796882429324420800360047802409989864403324349169287179380953580931975905147684328992416539810230210451997816284278107102324980364493154436904122989203910414160053753957989650533571460559483367995641350777399970179036110201039988740599260913412543244167171282541464229248866084792656322061856843552033837739763978745378972109479980399700731573718335133634463774561058555427659661968851323225192811644762056276214986816456040861893220330837152824805232206472403578624587896782279431398688986911169580380673865795549829455523983834729622201847479181526079638940368736978521956033906945973164720806979479647658123472212518742117871442495063568558231943749581886636762226575913547736363056818436092434686603583708140484567012807926994432884826674673187627484871531948487280501883887663654852665751644771447787364805917394703401831322537657755648438156779167366468351336992956869123529827717021161925910427252407162553196840884255196986928147072550120312086492947651488622776056224199630624689032710239142078412479132652758071074971047895688703792651111930676567521839626801789234335909061764581582000571506312580880248871345706256039057854236563211958491436188956417540935976487253622616092589320735081780131777805114793583813120919407052005493510132200144259065296267789179114301887712703809937690968297490486368232566879679037816667747238029686475900160177302471759982394492530919537755929907226936641744462808988131157472093087281662694803476928071557546933173577728361228451157769871274997348572222043383340571164760953562714021281212645872840771409145552640153939376266849802056094160140996230744495483198230458971582329232560917609821899507024816192595450984392295697452698258121705691450166089776730283593107618334555004337171230720440143978749802651614413805657185789572813525292026201822714991103517687330591090834004000644733854205683999352351116203048767454880292667680136783193591144534224806488859921982335306568604518800701344121755134733952487735539801207850842859138650831141220178911858891916460209931862302619330278048177482074050382311201710757099362443474858453859592844059388975629354794628193258630757963802105241857585324387995353579925842366411269602425775535744972480542900968364111080423032815527009445907962945924909783204437819393534996635975256582303408917567175761673848854678636080599291685807910710025396208401260686289140095746610589016926580324660537689660008170907764536317116810286249114628558609474217867483409422266648527917208348159362644750632895610698166314731596901981488447270255711903024464307496632439411509344678503735539161030299312996016719830255866055682764609474230847237317403289097601481351033734328429373963796514331964081409703395357811629863998347165613089844632378610189584791392041864745554672152028390773910622459529443113685737988202534225688525113575498555513796490936037609350833545409106116128136955057092137542631254684315401624202107439491290243612575067650812879020805835288882923773598106129955107762724105409306167336028059787832103493879538558342708942280481900970603562639276345157961230764813263560474782943029526710174786649163543733575188216729559889824518662595827278247260862365944616787172972638934029491735166304290077138312596085844558392178410416893307724453953038201436332808700610454924403935926595483079064102714494851397465252084731387657105143087428406495359637010997237066034391297118448226194505977709716802469415539454109819760122575407113251326828793784276202256303978797144555269031547319388509086646379822504018590889038839434386267963858480359507520827924291575111370455632424800090916024866269880882138911700253492021254037857607925657493792668097738611018281348476090463094953272538586333890310976837485978484644810292397011586244882681353077396655757923041864428326621132760530650929057811215833087749249928362945221120880714657888210187555042266966736240997990451222475190504243684505376878070974703659357630402193657643765013214598289155504996212778737503377200029014454320851980470138309554346067217291239968004645853407413359367470714293793457618221231954673993720680136805842912764016660048381490287188391859715913979556194878042050936682980780076932938664072754566343134254230507277399705537355836685848003232121984365784719109181852166504178859518838950265600844132490895830889794742306669657149956722683959905284411911223970179884831630765637172701079348398877301970255340562562942180256107836010603158483695975373575308671590436256139628732580974610675031576071220975137137788883517693205990694821709042488520212913309070957969393744380458080885156171939125585958779362085133673199747659298254518877369261866349434406148531842801272446765673720403872189533812556169352226600655171706366937361383091095012525113782583282733471831162394944278743125514335653639931881581897580065025066852305325713198635241492322599388109223175856597235180310424588906726451740433224860180472337284299642373695869422193867801672721873112221546075962081116247416849183904935423042274668410810662158141360724715426713626569552739999942036915546983015860483889077447939785495463235452856006490647421372593222002048650612004456216351615980889547408766704129985751235639285472355905311115838349720796320076824393300761969690004840878410815296731784219798178953303261693028942741270506464463529819764386843284675583025035253684961790981969036659709064327371865551695543636364022175059488834197917513227676887371897243101959748480302192928895649557936927387035913963282654559515251117568934125807104743664898913495242763142019380833663034590869296376268875548876560502304325554272279910986523903494167602664628820672229093388164984132262982556034628607365020245954041210077600113997081144378929799295265818775853968604377489968347751726633384593137664799759649167649953036696988852058770746478868804947176334507634339742599493838678654429347798432771221633846692212450626716279944584413427343863462528345777893532244089470800801784669105429337026798520279927945295464300603462321465825030339518896062416720852801135132508189065687749915736901502469338017024978125088462179916231603517771766473509099854633232683154657627082670543933634407770643695955322085747031910582793966601516816841698701908852018083254499154162893890650789562920332391885865231453661542934678089554504971814702421587730270145319189477873516300254807100057776651442278887376295851257170771524529046989545288117105522646502391522469351676728077788132439008441452995275667197561650977127708925438606648954641523287440271309694711575965519187314376611987892976768417503814581630771217164762952236958564136854670693825155885611231862765489321628596772562633548795254060433569355978472917104893876880606920706513573447018592222041057986691005366511280168335610190230327586867948340509285731961481559320991705611908847152885411411648203246717883105999486256200702062642991149643591225752679748695528343823206629164124620398662251764098046805216344507255936601256983877118626239298889949930659773669424808360101150186767040471358022440009167084931598250920712613827858666523081173802879016340088120227268302651382448647779395783086520865329215861372873350421052805519100372648834214145488011738286256659103709907303388037612525349799850788749393024914427406744569874016688422524902318710402593736236195914058285514277527189910057528998213129934209988153268282336861542464361304107116304259878684101351557738233523356144185246374739693507263648758689253917389158550349226316960767201142174934587456448470308365149681607253873068432557856661546222179778442758098181915290857883621121548679645000684541370392265709347955177217429340400092885173682297683406024328501924447042287665603240771331246343199304592580679571948037032083753490756816760418178846898170980079787549969428133600355332408550608992706186493183746341415634622325519241037139855724342663632613530227215097619271985533682196997784437892185009943418175866738116902260373206323776589200792876648770629781306819592972116255029895792847041022072073004387326913563862270229156374137298675594705270505120478757426419581384440063666190885534331618478427594948188171859960434563794898584358498640452803566759058387219937764935745333749224787339190043895642572156749323735415769967337112891798146744959710973475040166023963786348415770785899912591698102422497274412395828732978721991756255023217412312431713766064726052640159113433348917609910447587297543025955959441058536037750965913776731643092021840551784642190223464055700565555375330472151238693466724365613779350633551422667145768747277796019877108436535056423612926489346428260525578371114663197753962166709625759780767904110210255754857250425615564358288429179484495983408783853035620157565823626923526440615496674322240224199974322713482511747346683814025121142846528159912836805637835875845135839255422910670410625701303918738937959218934787740183559595154404341228408463035032578016528670809596148028082827927832584662958680956600230008051161708037517707994410021106479724924605949371795066609591340189327753547126253637495525697260104560998508919090384320709760081074817368865317156282871573345893721344564791531233934727773040209510641802359871861927036146457453722016757010566006954012485687451974383739024905917678140822847933293771331170156770996961353053268669883098071458739903777913299272553039513054121009388530635028637163025290680907419470780261494282028142415332698343022368156285117215466810071949203257206693977880456401018750363768760338113773168457097842665499211286738794726823791116240719516589262695250777568502736626620707856938398475262711442801806213028306946408961776276942085416453653047888350650589758166100660269723736866867595670464054807852910278452808377381677412745392623279300706304475442216601689576591933344887925183971775991809476908574090969447309826848611551119210382986595765427034364895134836977388451481644158022306227095088173204947834897818654355762794534533986623433960786881649930405873520009476286349259065007250115098284921165019303231631239580335497855036343064896796141896817224149567167749732880423135814789239922200014662711724182990644846401332624095710619019764968117038007839486045301577207523575402981784355742868831521893365981485728350596269843010899531104168133261608790346955524725722965980821345936220053355203395421549582083570094184195454594417774768202872737496725014148082490088421640292316841246331991020962590006468928916076046570343070856415137195664070808273189508651918447131807353886884324723249459511446532329057146448798529928040984666432049641403603488541357885058175377783107593799165315647394712620024017522860327564446472859917520619422534592586290878269730083391190891315910755391352175187476298819926218161410442945406365877279423719576784971085927300907830027760256207503745760693096647521843862576734784573920433959283174009318768437440583039250866446066700245801253463754116777584465966483754333963647627727356902188784585103528029448457578971796040255244062620108204721680150839620356844584724115323033297081189875037830992880901625342091177648945370370611458179822538604799943346120247464093919635179757612760396359054218718510369019081037291409257289192706590309025106754677428243257298307589929274740553477598975393452033048021820927865876704098715735379309805221038962245728608282099933845527022580439271328603986843689638734543312829021956035223399599012638282775035553826842361684177604790324023061354037529954399834924501442188047122499774310777258234885675653943031404942573818383750201211573111292876795928897863668222828561920000734290682344709744686977224449374924478216760408671832395964462036723995376336533926065799532109775203658094171409894778851760079440329748199107460650332599707278475430472586498687826838849863770184377163314107322215300048030054107140777131217868326785493338843797127007769988926664580232603529680104413564263382893393940856260784203257808734237423192240237382559196220121642911705192440206284568221239055679268378979578201282183373263192686204927155746127590308349535168895370046447683265769154170413057362223431566420473361384170712942931050069715851762137556538678893016227050734900026978396885966811667024099656560499232762276171160552275787843049101262882929150751992255825570483760586633996035728112760131490725427197139471229635941895380040411224956790177582305916999153914162518488723189762633301047057681717515133188173091345378151258782073366026453544619396625101602358146106213323986278282821056701515703299515923036640192864380730725676052617888985471413905380624923291395941760066764394828095209930374023992114767215027290186040215729916235366064839041538077250348770548189914735708241600655874544770112373349439855872313299337810588301223230144301314300381083920664399403659290989731062691565774855297676758903178962405242187268135193600763118497699601820761321625371584927434187472421748660593681653378251361053944895517051682864317789974232750864544146246788825661419792225205313452744766093854438937242925140925670861479304770173822101371650202311742117697262785752904773076436835260946826118339960079928361512608153784657451085347895540611367255118145097825467088233677773767836924861808387855712308813055993698448683150918406843526033739633399398158109602604594511716717590444294516053855378059424010707400409552807767156831607035270080125609646706108444959832089389591410866551722958493865691085999851910294697305424418083240298896608829094683567812316296176790112648669044087370443840281379348219098446937377640999753946571848106950132658301180757973784379894252331179732605839752524538997521631928595423993603623814106078371765067597347158928512336355775670695459709360579052272538629337414330520859201589274291368046181280362509669997613001103467263097857359520671354928860038759085929453039712365431315244612051975354308733969029908549177829867155456358246487483856131867709415860965954657473982895999950544742486941700407014461795581267086818122897633950744831002612496425767151171709603905720228883215994465058476354029400858835203737755056626326070595105543977332516041769375757263702976123095223113188378656080345460978611139317112723758688405986169866889860015284175248078748739919067965586569337746912305460700681547304043633409432014939210220338063293129626288903772647283249973936110311020265236277046708080666322310680756485054820654274405798005168091656844278983694598018949476964619259031194661241129262119695145600612226595841266632271722025244609644786979950963898732864865939834683079613642044218384959838018991408114168424869317526643610273109249307332346467766824049626397655260986032687705014640059718873923158372341948586004575337454620018249943818037708481534222834377989526581163421135888820967698002282201189768649287011709089097380935590434792328503158329904439618963875782810392188166925802301331957846866511982647287393019408375339894993403090441072178374968801202972087759934563130803538775859962574126300034559761240399997968653864397199836569936981672076428504318686857981322611490451893467002683731627810908570496532257230587626295944475227184173622381573846611603155486506863255629799001954748547563144416568934383230790625907172590379342131415348581986905332121440286804412234363008631657518398913774504583587027784840535422572596150310910488568015482521061322730128293780633073369153860653329956318544628119311785749061626976326326915437963615819966796465576525930702940603987474312929016761412462886423611904703444730590053796659910840149395892676129371455060881684731970978145837165472432364200246127371185782252154443509828678223705344544539434573274565976970691738349897706127100189840214270301019266458597912595776057439683879054443954145417641390618025712348526309100410569414221246554635474162868460760639474770741081317819476570382902846260442032269667792675605408518386475257834360372087666413882486245742483545757197007308805153926252963370503525989451517379337020186427695064235610196479049067027244457383764379935079483967185065481420449447313072387883525294029924638113181408509465626424755854433659313285309975226905261438999793921939533210862028291507161224715308989282561096425351925994430815439530860062890058312755447156773678158128659680813550169333003526332479874115522790893738370799545943246956097332532984921714321725097523278360276656078122499927434296911843584425858244098358269942496383341191634075388778710312946044991273680930869148129098276466046382129506016950252416948330992551472276991818035565091681523360738021577677961084496855215539604655916311659322261738496652736338452823616821454609266261065526888414247593501122841468281832437308414149084618569558059471701411414043326914166893805465948207952848307069129172670693301438494974905272198746570350328397060856819202026276322784976113733695770462218032349705994635757788564660747486380347984717571122596606823262464737476000846040291950104411833821373156182115615980042438554707785908134405748337601937647899226654244872048589862658169936816377454145969879043829494707979870853748840839114818053473341914985888081512569605009571886808936913480434437244723222557391499374164634882561154980728799277274321800663904761225047055230982436391280411296328193251518647640896268434959977835111086118942452516899149602467072419582763185348255419917652548055033315190458812385112619881444969128650388310326577761230389870728550110930899102230178038079781316423871663658132599192707111410061723674903239497971671615846270889337578025388596561397659955599348878736271717175910326431074984310257064034494270300955521947174050492515556764908164310434781774411636468666462381254369505698248151538200480118427534421503791674930251283903718792618726181798734044766919778893993845276267793743025913779298786751370300726764937334367172200700070635492003541150526027503839492597683895846480718632369337516961577173148760152545471094377464385579800524930014239598052238082448361573582555121927706944872091513894081592491004251912779615183098590426550798388791689381517145568744623091944631017012789033552079454354787157899724534175987282139234244637871210246694145066826882800418630598483340335022208459062738597624627542533307344832221052742075565269749127475170580433491100020294730752171464925040178493676214821473990619628875630112183065730328286350571120054843621806606666364162015152745156765752038090033081837673121937533812748508140404448142274566373702686567572450610511079989938904951990800150002041284191311426498569944496287821326499282544301259878462159404039575648431201713081853768940892732822600429508855336557487105418915655627033723901403811243898722327236290087063060264173506080631804059631587976397765904616798518292704098063911484675416006143815525420404788495044050517841323692022175194733073534061156830174941987514038428370150140300418699232890956138061076755178785941299315278413164306139081281550801178690593165771210610774907055779050621028403251733672174465460335863780347238925134322148527450351575924585571041253675827404202985971023996228084437448149328955291449610910341158149587325150350945699611512024033329677858074560326930568768826139993731427050003469030854285812489344918420548898702368844692883174426046162221284501335202303206701851689801464333285042860125160724457685858853469578828273933385336777345135415395201437705917950758591670433220207833988179976968981263487424805035806284306007974736378367092995494615184627763578314329342398261165239761262523688606476520283504199503398029162389319172029572114966845696300448291816755157932774511523472486069707002338457178367435249693753169137051551206378366148890016414061925294490525863324470137340321657463845562445778626784532592113951132126365699469701103480942766404748048526630790752009135098818340621555491297494191599126722206680494780356905336019352314981381946372419951106573917908568530815198818880712592256291693173339732869475366390115695717316417161709578605207681571398969363376743852224039052781449682948977480112882154992945365946633007153425702475641155716006334225276755030634595432689499186052806839830484665845248438480933748265798959333762155187003755980475967840145166550910308807447855064300775168804625348552162921419285149950402213933486595672124225950579221023810160997296492909436516617594280472200253043816178235415404306026698050536741294450846044608938218956159123923604049569705534051427272422808062123908362840434042868385335319924397663036056970393345834231353548696918494848474661617210751417927458013286696837981652137567566603012204152882280805781005921025106356790974777034691568978759406359244550331030478499465000548474233896940547239864461963536795486562212194503148337309455442987992729775902985896477161826595459078155036779785594980853773593929505258029027362675904607494407437967067189299009255171632256213673364117846616840750194223614885853143899975621522414508211843821382990838129414195847073145843994099572962828071149722367705928145478120977275080212387666354917145485050456768361604893001336592205396531359148525331949250107633008715007643924591660042678289327643829936565547702964516447666763563159405002422321697601786742048141983130370006485417844548344501639212257822530622762921084656151965568188776330355145079509242264053363522743476156657018113987895733353034911118795080708341685960624314047633252298587721570991007182535909057057328624453259302902101192891405422438913329131214066744780647823688920761479934647847531917737729108319248488583126801626057706676221300042362853256753929996052657891668908071013946037614519962538667402199981903275781223506105277477756031699188525098609492937072314432777329107967283803096199329725294770402552966707456416517115524102448661248265838340251218676008294048034810105224898018614958138854979748680534687674501444589615762497659326494860642579314796107104516099143145585838231507559184699808127486599974576249842810108171810247161424323406868239294277148387991231269705535757333943932333179465001229575029231831292705060731610628341024882981894433155608247472526213442558397290016209245274538501476221575301219393381193643419118332787198465648301586978573639327339224835416320800209407635947038356467231897064665971924284127884413562408084918510532689615179386754715880994167147466503218391016060048149207285979348292415957739983220569417821246533751577142016992366252522982268183250469673217898279702497653967431767507260891676642161644922366572696568148377288871073565192497601654718599247387312257623614156356038238673803500337549748485866170385740090617197951786725578606021313491111478872749094546466815266691392222635356044822784698987113070342306318416470553541625523879294144133445825390175009741919441785522337305968923246422987094657708487488583543513054978110158800347133097385381582720900554008880125750609181822675722749117302622298792996645699902275116184850425775197289252966470276928414667145175002863562206467520673614239419697327737630225461136263614153670946631485151381254328201589401615616515150386017388003569766997931748474608216868780840974690786228996586559262469381991783481129798397416859498559012939156173529447717990595917922467093936676517589143089645272141365308970112858903324003228195357875022123602259382060649782062449645402312482804309492486236201286447154372313155831618897132976967514815972394461770128916176956271800434444034068338913557892441101814844200547905561656632863669466524640050238450548017249545119789441101520250733400679544441546073495187647805909516704437060482789996515734595945861045694708193876887938413621202072833515667342468626791320505361567780192068522045861900878146565872108247545888000700348445878270287640020822720633292544895970433222440898767404371941030866620163596949398619716900520817034201086222922265412594974360084734460654570118122936875320182990919683018993989309116310528601935637896102590303661436421756556985342051220991208836463931058905361984503756195570738839504339990659356796273451639014853793728969973637488236547140730418903624979018199599046030176004636553827641136626938619156789226444383402019121923323242025577489579190024973040657489084330411464410277259145146906700740720547485746706928831314521204280627012583408412867541216303002437262347346348154509291519453054286012544992356574009614533071485176630158656751374313833060065197520921472229888145182506326141491651159881180798204944596502482738243389726262685162648398218844352198627620471166575633914608670137658596012748699111242680847997050103692272693994910745684814289155032682109491190135279626970649918182819556009388775591437466765524660575653797190969024642067259065856967687690365726489489948333571965291771548427521270609112886712945205888237671555888560624972490979933426128811046037671672416339390326813245663855352168497969513490206150453577617597114070457407609455816303612640508534225440787257625086871420094379250547015410390768420653735714058225531414258836960846413561749599192737563458778928567843400584478617426705502054256168410976968030724789526289244687157139506331755422606230868181828393680228747820396784528052174012747716158862321589612547894677539525008254203255419163267549456525758979114949278129398252958470741590892988747683366282580721625632199497255302769526473937378412358179911674648654606521577527440211833512541994713598235971123908298426242756516404289160268885890306501975901116636099116503226321742433075123839385682875253597034586460050865964717433730670738621823882183676540231618127403632967810374292072267813080186619436932181988793588567697804076531770038796599575882298882854385018640932193777309830150227221638029516429485857580805512443632526808958804027092584039068205841437891055628153179818650485048441261305947255921570731914612007692030163851335468953407017993615226161242340612425225970825945080299867467418714813522375784517798997043366608689539486905170949695479124051946450748500647344547851404215503385933751114538983242634366329511201146394443741869413819388336053993379061091935401987288127593634324583244931990532609333677165369592970938664553739787253097403604866090614357085649556648551623355227499060316981624993447696341565275677006684148346053024670977076585560835881434663847522421140831404045305633805996687423178454653956876674993235083753230834290188220664989815173218174213269591551043226026055682705628639048497266970192343171643099175978195845385510761516056468349102101751893400058886077642166151866172989347716851874536647205486509308744028643620258964809430064395998310121628469856987832768655332846992493727486615250498295160416594310423075379710745738070960997907191365043483575876248571278795663494409510064157823750998928793580091715765209277705470200413453840048196341768249736914598894136095380489544800620852206598311911331526583004225776832890476816247641533970200740294608535613748666657962599515796583100562596570684639217669273994968616690161681375784884939456830246783875543708654174084559655173727528936573980482631480861118606340303112147795597763109256510776739281799472787511559850609386890403484188562326687702788087822999005245205162996311308395509244167718762561592467963086462050242115658623364144956941512301440193060684995129968033786586200170468649499859993828715883500708635705999158631888362226704991338960135009128756357597232710274065924376340065754889420265650084397507856335619782175534716705643095454194034713767192141175345097579831152995420631068102294830171130702768307318194047202899630295203766830057918532519618678048834049906470073932918534206659455028371984599459291969420576825424279632259035963617460890086154510072953448777909670273005962906431936441164873332605248506187362959427992447189201084945996377716319333529967205496403158030384905998165934436659874270413441694033231626012924458894237146899930371853613040752116428431235511642853356188252147689721253834312565811121728904800547931963785813859412936322992821323416323287393764632707820616277187010740542209501016853310902294048661904475524197866466716660895060345306344470987236582317642057457262094305031033589132951649041396638852650672578167871618194855269868078491070492706808297333390765335338774778256155566482433366645268172545814061058150516673095678054055694905501298980508216876288405221518114476480467558871951352271940912074590148868143174037558614902100187449683221650741482891399004200921582221293194088014976696884223258604158299764475743307833407955723700780513476732672582070107648852697965916330806085953967084872039358909939429725901411839590036377471748815514476940466210834057637087338345559500523945172049191809282685679371796308387567414764887902066152674807773019981591361935630943689936985752449882974659018219914067611739283576479195093656780787008145653495094551317018549923719888464113972183804582895434628237012429753614810632239609905427423290612878651892014180038271088876125583325729553340829397386809357195959521669309019085005954263567838207495537067712893018838354862807579521731886533601575908531528931200377387945093922550449552364000473066069353589979321696985653951364302484833613338666403550451323251609919564758849691210316004694522337198475589120769742077063253927585263798862313026240740697616271177289313272167756275322728228513532563038088795890772147193336744121411822290707114176200139560606997127650374311380245936343882825672329187265867952486013564401924028167056445417174306235597249166597043003352716029643743518541311934980982940519383929732227889145209299573145749806727431383332589152605973075667627831066427049997445701054035690622515827248426265770043311456994308302929946303850981150331989830347045949110683873858220632680473569618796811534168471907461061938629718403435947606027949887232764765643236414320182602380487665627220364203317666496826027958331493036987276393670208329510835792649167188328555848077208967125300206412713538978979678865603479034108929299729980101123276021217323190830058363212776960098210515541998412462529388751282680308070857389385961667980908137037871857322726965136988817768423613204020728319852233281999003309113371775032027361597424324521135295290290860057819467087458014252411690009249348707981864351596721796015897317416608541116798224328948482426708049327863835071316101488170836453145305928724080912743950259547984444153028878561208159482721379140675026500388102032509266594160133230274756991321824134293334669586253070808629138263691524618564529877926164463058062760240404289221972265391263562656600275353088037321761385546700362239973039760378408226282797349045453472444165298485068619990058041400747149658351802345708241594543028446579531615275724912021661419808125699495958684264002741055263475095873125847113385707995922182440933361942139224990910369307603889368071175460201498766490223125337541880160852868904557488271764733392641704647734606392091407209720161216650897726123302758889108518437996859430732783859797031345772743374278188501572124142357902969954110716703670002203285713819059259366395331295189123536150601454747850666930842264680951778538210716791464330156637056948317421470884958708935611620675288843624298133061371715979348859611287899586288695778422654920086686409701479295233470959486219264722679918847118586238900589181051007351079217924813473971149598228800927440526153673177119105835759416731555425590042215121766129727771179670083286823550663372346577348144778220403566934894637976380339194356034272768311041570304668919317515874260078096988852927788278073482039300444085017237199486738501817533922305265864886756570428495394122557029984546293925271526320847873499092847690766340112385402155428891413186140475104459919166175704671215296038371080492348644540593418061639980069668330611919751533268771830954904674720942492755980281245822049226153538264449467955185956392433199428929800132311113388629213155886806666856071926233480821050594587451045495368634179720517158716971625194321402379670978615546206476971364293553197462256695503660520116999418047700437772819731715052789544251182549014515574999601801702165284733808347784165509924450700019793382368232812997487045847287516313850286022536917232717367464727049879748561464499330194265557240742209802470756745154236369204257327833833070203849424121547786984590677171556781935072680022916339889197181258469538864159686659026614349519738481773403042527240309546863640268641147176007131515433818126671550316009974261618973766022919973634324861361299161033961523449818474432916890756363715830413830999649145260545668581529881177233818986181248356063564909658736465909448274885751675828414209377560462047561908691320228574424451676548122840451652323549460579201958642571010886302688040252894741112107618979380127138307162000206590265655941846009377035783725485155321188032118936724346748894951315913642608058914565316198260067471284245501854657540805923456848806932571834190892700781174193562253281608542619367941353724058522239637740509526765383452540375884320470875359546725156788856323649546595558902355527183620349798049631898576927061190652981413272951534437649237348377976628919063247948855662258829014865215394186343851969321458885036261556713641984566153329230234345232898090825862041289305086449257821926495698493433442842892629622719639859086788247091264522987040846247513367844670457761526112997853146135024253337734842755437357503088127769229976740489725940524358519064893250488692337238550514619192222759533163188281113467829569743588318516829812841868679900268820663606786449141209172041927747249863983349578199667623295376841745633458636289918626525208790372377429257887616760000549823653330987836076488119303603407414039042298691847790853055378951528609655616616775126759279978257212932881939787498891105265748465026748808534568617430139975670611568186512284928796426115004075663525000297143435823596787936720754413866827610703356463119155242672095063665042235157104354991003999500792579568362898106819105821703853667628380040042127239794315433005155333096886902849205679765111243169306056651171346673659151277767409197636867523853969673858898614030795911765924642317935550397091067136115284317944676995331691151963501425233715781000046431802458691046728565050854108709534934677889471598387010410713973374010384158858800090111341003236196494049917555267558406889752490468934324684258971765791566830167698449988318986598107175068253097382939472373017065953862528166769346288608624031132543963248980272215185245111940471675245896322615775402187109405245988034281724218212345434795245908011842158083704993615524301488396072913075446005800290318573076072123964595956327096110241284663573875265344976722087621732103036267783718642897693089305080638577215529969940143161908623081122345709875591944257129102900413034528252796230199273658597080960021707726433397815273551575738219282290861922406496321057906592557118327815183205346995284058094354917755388712290452688556623743050795637841650794604018517904192002109147284126973747244280765396243735468435135063387489565580672363781257399715670810994995042339384405519828042989706372061058884810115373544713879611718240277571088380280252517247672528304420178460801036881633704944246677907142371591412774504612523934494278556197266327594963232551416571859598658402135218774439045371763612828679674272526900314543741130002794218739400591720565990473078845034654051578547068972992709187081855469877345867214140572479285854269329835076852251205274493311290437216173989768877475037437958992774452999535404550641391033233993264986683019209666722521185196990072586337142267064330642701109213613799478438474808396501819708480884729615400952631803752862362594730945860957524166304250189185615299165061207397696757020370553011863625225548040107666160126611855768179334111004919503871344470078132785905467247244105948330745463972790337410506300274493700977150952696745207711920844515057936429737099095644245670258363075714892777609372247515181648659358943340180196455487458379352569637976106226005121906684378704180500164194312324819927429874084666021675822722783513508463196337536405740533757571386308267186020432626336734560666966613417857713567597467683147459010374519124338775955966494353673870945615389173062222726832087375795100489618785732182231307487482571276547085509005780212779380582895777695414746154277245430711795280661370099689440892298640692083117835073613999314261251759905677234127058131168885639351150367888873376453237857452321229352559590181087234932723974616100467397670396617023893346971249273698140059942464125968810561036787628836898593129434546625369702458099434104655676086428825023738745639077026940831887634594869745573686393264993407118166323096470317243906358963747551228982394700368323533276271514780378936872619800620510666529604439125873792324854957252017847287052786956193239941000109360889898161696394437625010673951329579016034243884030060454182965976376402076193312657759767376070426449781513788147731617553028896957265490023834141277460492194472488129649438580505820964858174193798412152905462104374798564592738925554444160096050241999916506281972298894238829217738999443936808486552763275794593279831794437663289679380244753626300665441253795656028474736804543699376577441966876698653239608889788190304611893390327482423836077907694690040849905308797794015226183538810299698432984385896959973086588069042346951448311162623518713038714470161503008858531953253200467078880912048904255350680581846385116995108018275079463782174295475952309351825962604814665213707455177046769883690206064961100992762393606867103742674165494177102372980305578334941634052939616868228784527819290683470500781003725264277362344766392557274522223264045835615327333278303998664701300730034480659346734833003802425828364087419804721044506667530606775691568325518458759186603888482038547868391556697548061900098135745034389405099655871222995478483260601123549678132911506289883597294394093953931685938397334304099289067870658531508977921785451347354453906341092297247623500486035441027971740712800056769662329900385727329722063935269438391102681706807827076507898976296002369619464636511483731976670408075805539210569178658789778884743024721131574248564416249866977155644474050321560704034208485012884589095460353470477784256173368213070416977963015863555735976551049780116251329719784756704364405211727467006433145098734602900890092331315221270385376264576556313305683390572115912133843831323599865674186162905864220204573231878842753903294141776150158805408004917333980675331422053360880755736360978475695459130137127839008974340997135972887771347010514109862774381650336471766957859444706039846419165850915237159760594746203719373430998525407558975357802911129395596104344261731815315467245383511808049644226746441720953896158732491830411645078796295585757590978191358586761116416719614720348951994208667169877079477886066992099441927172899139054624198168847779159060850489625012003789784781682788917604864715531863005219998249969263541323375512490061565205727599275814735556961609610416015157919909130881627597785948392158628937118031800046162335563621216936779199014913278172383917576240380100660183992716197953048601089712860063326632564520006419519015767789090934756636637350415334683369822688667711137978785039023781171344328371917443596041897922409264296701403303173608731121368136491225652185399258114450243238757828896934812395905155779587875854258677166509062303232007767739871754388277679875117455465848797007891271614944212070728647289919233763734207381280801611848164787145890209264685001302411269857107470431387344582232669823069200321986690354942063364704895348135724412055871266006547422205293627198748942902133178815558128271642525329345646649565032674037208069934214327565471003505032339389488015351654555758881673388495734537083810334649984950673284148362186305848873316524287186675536609984509899888465680358258927078141240084956529324091588740343587602281308038378124988179232893552576675799030035655845592968728367219922068672775449933396601424137469861131858718821133338651373287663566955020547834965484501113464028587823075610567490804351456220867073822105142026705975927170812712913479652585097976582447206442638673102579032173251195517451549134901509008724429234359269390125851188846565414272463256193470386190009049223931815584853513707821697875117371421062209489093127343515911846814752116900349006772817794536459031238909076254063283491850006976687377611473302654990640575394948903870964149129869553867080475120522235288208983387954622789511029396912983697953396956593563448288632647599939035055319790961009987813259867036228019475597606037363214260535822319880269416987605869545514499085180546666194359952646042247233816514563527352933136237683919630961317025257891664294378806476327423738645401503125686204699096366162323008907458112071564706100333423783536813918610538820401918708259233340162118904094637638042815075080851377682162327538649791412327643383034678479942706338240172481921064634554748047162854990129974151627886137938030636295894624790304727486494110604900907696375433894186894925881409104159075496084751175490143156988850369397076822071908594629459899844580100553949305242962072652624339050131946618871523665194183606932989569923164298687023754046208003209784728243780675463502271267833142457800931331140690697793965951904648574899841555433067363018455554339472792926392877919727747518018546484356680477310888566194011247757732695594154494853109200623247631630859380718808987189119535182557486540139215185046903480149157153772828989071900322774579796990106487796933796973897586440521789566158260836844099132574209554313303654483513297906284992031122785056105522537137654367656578470862138562799822004500785160604388336463354397623404575794185847317416853143052248957552521685833235967479880266782611118316867874978547802863348296779414197213457321308444071579079168875052076858334947863751772614788955230249858145053205257366313907452234610489652948531302302695344444636688298645712977627206627684555400273910036180769611097675458302547319122119417240824763654638195476263967353371546521381795274927533976027891904109787937725382144909853381730744176907032967968644593560416870995957113271464394227248646529733149104425300725208405421991096510986607614205974501913426411731852570751845701752396259901558756066151862740424583147351236483628766170262095143121316659067459814949028853890358762659307223558616134463544321725620133967556698444353257978506805568988169036035929115930219506817480708587724346207509881993911622723045946667788643599052579760352754905449864947950869441223281338623861374589574846971926729605228452486636672624961968872072860410563643335408438097145003489136235692114576400131147419301081215012449360702113165951266655457628834301060639708599660412046416938366133111503232935377794908294207664994149030076730402156186376199240806437320488151536702037602630809944867110169557498138895572073518897598345522214489246185216874669457424642148883719221240718094530081030658533872088405197667038166774317382417684415375903190243695981179067646959978921700545133266000130084463003682168097531699752596005532994070946305329969814168587705543012628421001682822735842765812565044267324911737286912436998706219466683724137898864180601340681044881155064570230095306827393596698063017745888563595768104463190576722605947121369275013847165614813217067807936312767026226743726402493603935763072395250005060004987806026032073155274721212514719601388933630376127407168337788852789843243079272406100404652108218467522739806857575364139329566997109723081532314698562640670714111116287814673091392501998491030934170712855329422625353542972812075632037353892226464164144726116700249695007778099959154468396893939002327895848425040542606720187917146477624783995982706743666328108056234566600310448797761899862868494850518644289044282232510881082765005345535056275714310421718849047188513643297256697776251083533912986321960218042062814293016512490135965053453893956620517942754654195424870689631864146929957297989291123852828697041422430772256595795188694386117591012025079834902386698566411871318060220198603171009055926900812023327869804450573678862187972069037065067065662821931000123562423524344832571044193561283412842046180914309659489778366411443276894720491943292778072949065010879937378192164850026300117570472684763059816519642090419951213955689806311069388812350371137851886789407240005756372179918228664478053498956518870917204444589347053564940201547694648764582266198488002041932665886455664656080271069663509243080883358735443504540506856360110989913659837724591358950860127857674316786732139121567407479203789587489786910956524195008855833886347095542358414207534115739587104667254326329497042806934438105660205149324901324079726531455406400021541848948298074244832133850251144601847618331424400443972553499572314546513474808970306785514635392269260421771004798245830212313053783002627907637125836169641048829298427346752725882402960964014992088245252326950054660881970127965075954960371200195584748786715541321918254093647104516619832824171201121586689029195393968575725697727491241578997960264956169002687642699056714054826093242922181133484125159930189532169994786749705985254757005008189990892512508565227578486395309894208244935771983899248458690592104312555040215363680876970618697827097663230987251672070865857702118524493757868653359528042603776493252866711384279671438140740447909736138776909766533675361126047182895228027877511018022036824268473213124827156255633421101423149506690995373834491758591337865858241847626370061082270096011620279472018835817551472810816772630234326609534530725172477181630606282471606228944583079894304930617786570319394849857019012143422385683825193574515634102821161608419079242647749490948775880297114718487907240585835019592043402572882091213096128950224295311398632761743861872482645859240312520063762242685847282569851144676359756432208270135950492879764172193753836370955953629936106352663449558588599991768974722417666466427077519584860201272827010697507240041630187990483988460365782282392767631190442929993815766003673245503818363424556780056088911084638863428979285965708503726206552400077166693602409296429338863383134948615327174330406589850233395125415080433883949117358034527939536450233681302071086475592620515731955552530262076254432992889988736827419234818566272253115634596527416547127225579610266528266238541325832077485096452096644981382424373294539971510622312753851756497054351057695397344766106799964285571590018034702920414851044561610101234647460331467912880408004082646275270156178634860160168059682724802048678697390296121361033020155022882568172541011060474860782908207679365181222728308670747071413313048865555074276477580032559585851022118558851095967879893395718996184236949156513094645881087070767633595828145610217002705350981980705894331506662195450067252163749604045978780641558005311969757008282387284704030170479471334988730475392061289463820506099398725525873417115443466022415142863078377054428360205281097847788133256936100569016071065630530098866503494709399869032544615238416574104291612291747754256403594981594706745326871016840003808085919229826124162537248540242312983673766159486940254348735638520606519631588137393032520917900616099462392980279775326332074970773928719262384577670661734738186118814574450470096458251034013351971686927012202705264966741475635809459953785467901162737625267149689006017536760353905245545597279604714625601492956035570041675938563072767964976229235158106512778975627152345191246032570061989820496697228310022397127700753062116427588061142787602742108522625148836957666530045393480196273103099975145915169290352285306732192388290636311151759966888655888780394738531923761164950187130262651516459594236349832733322999826650721389399669962131043669147720942451713509031528423489667070459126998829402360980830491845444461661157765868654574117084366431265944235981189614151415994974863594439322577228913133991130198473236881302455387870646041250761165761008206765065142076206579273143207853153917850657907290686889676655636417547286633968420621875626996850553586845064784638068606310809117370319287934873750703675392051814462174877964418322381655288385572061272012190467342722466100916849733139727340617364658034489352925959901009592135108666883187473211787430237601696572084929534630762828471789174763510875320550947274402697908813947959710872624075180909270047231213800259580543936630844650174089962605782381863145889285889017564219557291343192149952264145311837862133193871641701202038287574861134098999227040353648402331140646553600524227090730826742106945977631743340077159904845044135645327286780557940780320655469620206888202001588939154015411980165406512128138125015623809858246568895158365147855374583370527155561744217952067067297801447611141190778296939131504990050657603961369891419845082090830641788953201585781946638143601429081884822881580563004236674764974391945838504634329769262617006932041298719501323965843254103717657221542285027577094622429866851048483554068339839784772128963438298261152943816974589418004294366846250145765703966247192664832127392820413388841032699140348897114021135445200772973530548922962010441467020837926906571933669968196170875384263809549536569235713380134714657146139434087929860831163975966768929043729764421448513746074104328799269765482511113986051803932255038591674586425155164698807189832188351662415530481367637107230958755197566838589771637665243418840005528339633786854816530238094589640212967964447689189960515484973357360304800389293447720027287747016756986829623672505234946013608208672750459519059527393426224993217315026246369139568885255996779893384421548545494896774187200918180481648160385857386215482625504167539624628393001132752348189080318345692283587138075727378965365505729208830348631623677366609136112807250274475455659133873046499903327447642075022101154165952966143139944807394112652460727896308263097550288600981175637823679491454839865695255678871584162184372742524730338040759076064113058771194992807111117402603078777713745150334506995845461698009760323592167638044918702561300886646503296054962759599228521517919618646975685005128060243153916241373889872570649528269585884619249309159385345580433932945955778125961217491456503398143765080058594535204242048813953674573922935389746883239950472991152899379070019066044653637080451117861007051877128701915094253302122040323283263892501112213517553913275646881841143954856269164358336231679421117423556939718402623629728583112337679419283932198719840542860156398879593537435764409692355944214565549438653257087433329670216456980564966873766635295067832273297820734305117934737680802455108963618687129780149279040688481754488030334752802784305391269821606853775727598187884679952355294961701389331679533358231119223659763239254238166568746001861520212326304437811551341048703152059165924171956044238698257749128857453211280196741547381623384807084623809728421351825243885143082478191205774800377331500133827199989966965954938835008964343318596031210219435088035435388788088619044896077872582732468771593668363555720018478877290943582531203566890570608807230856373562070238548348159894182944913321319939739245508804265560496187431102009811237503182050559563080668173413553447386684390309501660904323711329443080593559930535962885711936559849575788222294586246725462379039319488838917904617244874425671438941318459127410078507172903217653923303708748122216348789408773463036625573720306889878023820555082581287218750162818127746159040989110427039861768443801574755310279511025573234651107419863628214033003213711966411676146290811350164243631566462988974739963040251583807307850655471516695379046580626842233363023148950414524343107842013564662173632536874193363813269481515737718120830898826951402573705007623374611753894704538704175459122367334881623684664822040861929042200001818068681823038422222315101552935818322290903810993981552109413086393915750309942460637395493945340460832961518525351970180028760944439996628225178071269655363186794231399560905325982168855864948427942458501003988406887535205711113754474135310008565133041993197690077788462469901269874561306658847933499843419723573408301988630568405162021481884353049246071161069216371734308542444423789298884369328570643362972585852418830713408259763295380804717720647373424764014308149063977360870216051237847630270412529527654905116152473306062479363303234019971565836862946521195160449999658474348341352145478638420816076664282706271617577162981083980472719328653456031914142891376902818988965282758879886864677026258354300425302462856262083663433979255032058473384399519278868174942153495505209179280328924899141211345434975884782348241925906273329449135064743544088809152807111535902990040105615387821758442594468041413093983795979378613488632620650777405089699325858014117828520116645021857635735827791553314168700342900214460380611286501299946597698968199445760468463345045417947836967544884065943886121835563651831863015303599701960114122726843370411808142549947162433858614878840073804134041650619742665045960546810138089649431566040373236828867113323084715980748332650772833730642975595999523795626545577270058037433738860582558723753905963917064204814105071852316226427202156431001089294334461442477784494950027329201647749954402679355138475977986270380500557437964477293948697560755667350388280067987884909472608477230859821985175597107671816018041241348656586909990921270239763656756306815459444334790617117819104174734951363100384624264338776193720080507954942209157690342452798916201020704492618929493463946517727451755363392677884096007549187709305680346987491020807217921638227641529233592698124158845975731984643182107253196970078690661527196477178850967236475422536987340536168037753387856294661162260945504428583221422555373821425460597986948504680347076881228936251153954710302012511772158062541490860584250793532916205054796467815373618443168147630852499329340748553420491822737391954101077321996548410132662527174382382860817810106406033444891213865061881437383297057257235794536118179782336614207941561601664833453405708252808615605112889841162575878558479193773840010077190409080302233825583409960294755468005760056151730810591880134993498046990950814093247977876446621069628813900238187488955603523492264574974909764156628082596421201806158583106614923008809898163136217678648006624998431109616524497609826686585697856733063217970734356007477078630447722811376275460731075729598435832161226544425647018897536917025126804959646823133376784244531171784941927189886761121267776971906332936674067417073588334294724949287961671892523641572091692477061480612265640252463818346408554140437332026594346693823204912286592142780993128811713722520505305979195301589284289608864782027144491108183748480450732076385060490439065611013871232123785659077530236119560330459658300765588021261348875078013024647741241929482373478573193402176395025853157566562883675988935310254495254815236725700131579278643323803999092327675372010961288459174555904351343659457674993885332800351703702984769451300228218724718205009380770557348002438788224331941275155004862827299268709390506610776815653710872139500587569131890779370131619012589365114209099401082436290081648338600752585866955719197887219538169612051442252533821146665965658767821982278200345159557070240782878655146428154169232208410036112364069370298497133851367558056478701736645926514528621671940688617842428921150375603859801804785710974497810126726463191622585015448428647735394045068403940658073219809035180771402952892594363466397576342432262386457025575585153824281902376346788184260564941900449900988909871089224572552883384069203364620574606760303899073484054532034037486910895851050116866626353138049585840411936938288157916698691315585125541377233913087441655193697193213566662808302452551913439863959269076128088091595809611388281953957937497670780887920654753839287385892951036680912170601702682479965538865417299834494890867769041513343791637780956977989940921186211935852865590329191473885251503924375777346637950820378904976401325397928299324758858345439413326849332534483504820412246991927751470794683275266223776827981133351346098106455871887218637363374607700467279429184958091749449800662198403384480251470122777182130285779425462985026151356499407733411253584391257495389886211817126727959960046346281982155919615946308564138205056535354240448500763141309814682105850810532705046268295678558068244912022825749322573491035048525429808486081430254614747956832705669732357543839424873686893007490495093408616279351174223822293870448183861667849730190324664765009241685608895347172813093469626587757512420414395842642444386933017854976281385230588899574953368096956628558221193574773099497269418460944659409907653588694595306085882440634666638120689291726390768647667414250694111338219266892963122439798166089316386425862011560548497932207433794867164421880196089826262780264276903093294560220827212304270693612699690537465761592476632168587087135403813428169735951870267667245077342266267927324958188303626325503276265542142011916674257621231419098096280710817089336442106308955373629083693592524789916669192111964014865540987928649602210823106375020855308207036984980643838116561303688801075300567429137058779148011382426743996189056444009783765666810005460795792958165357741011639660438317398468227596730196917080231025126873063835193887941972424682204162508990907224333556351705966962232474311621326181177900188588692236949863702356972229530930083537579027318302317788550326706654390512416073547204025414763694438412321437119640303707809459248642885715224950891070795450659475495544375763610189879371946382422784620287962565734617798446127243255273143289435160618504892340915231389703740742332225622116694983117655552150564152802813216254381061159479629370280941818631265385041210958385872658951076307083861825330700752175659665653593084968985630909493886993097086405004345479335757494977727603883754673539713127375018575668297192746178069712599022131397128106068805509345713391930896949407722000391568968511662947801441424581322213928902352155627754601537953234325522497402777389405864299214905338439393140526156252705364879568638738080265293997550232866307529812576151708105817445700653085191357338272755359328480145560977336794295067455883514054632940844682343382835986140123014932313551198047955933616908410053637779098331354504479495030842078389071463541492981831210268737793647497895170064495806588466367115408477084713400020004242912051791381667371458021554801775721368757909970625271315978131775844745601988804748574024654188581408199244167839386827731365106950518756969511602397667307401343267043220451403676220745456844906941129397927522356066946244357693864569871215547884943548911165733282352037867322891132941614690539324791077651054474851148817906963612529026012216264113393778717669861843089416054972041298703125992206860104199711054615405493993303645550060294875105403927575592755251822234093173400961013134655768693837554981470273439651191649000217878142194332494804436127786472857148691914585921699230470822846322702645069566759606597794045323412070012943868237946525870746585953969814236401204830174298232781913233069873178038943172288124106984649118222447339550429967086196608693448014247892098116140291990686377069422117389619701725529955786236966746099536849826324734085203989994406172670979230017260743172068477889309065312803277735610829342362027067343463753538477488157717111567686851788597311963841994146962219044780544452694574567747428465487732747947500290961736044900040549379907457681612575149197370559858475803923652650406492797955479850193512060776758194587407057563854941174840448116432018728156697341608133132750753435209128849508994876208347416332215878231820600720935716204400957336484154260429254628399419592592412421086391980379150623670694062337914953458647921112151241504495776537808497476434392471398189248949139934505865348258225535260883326172820087765550146520833953821035209889947146768379111803551966206681286887776189765560284327058227642693077355276087735205090425297242126913863948322091090658931409044181727125434695621983665980629236857244170501388360242768104425709963651928894570610902447926298323195903557110229056722422926732706227628012305732943308612855578610354649421759897312824932556961446743146909159838697378994477432394224518055777519810573499543680257940681133013712465970982177674682275767279691950142145493660573193949610879772840496279782955294674068177101282017183710541476644484950008943513584002928925965008576070788346166346050098032038711433272871053814093852568883905571508429861119326657257900690979928514299092723967997362014754497465513219395641141017146997151203736447207073369418762956338106351977632806971356462482270570718700248890000171796281531973304648800314302855291803790534087399530329421467001126546293428437534460201371572250948714942010028616276422535702173973426913488478607142181714818441860215853769244950878544103173972147392328943616598926517812464899776259378663212390092149034023206380276711853920193180501525854848769239040737390447477763545085421367443128033082918094824601788335547457749744312629271521968204003197323644265095618427512665012432347402058650369865184458026981146119774735826235825403406288238710467409599282524409239986399130460766643453602938421291156231570041022333527715417127480849871433322838244162526203999388390105082678940105543100327026249293980503062538837166061731500943728962897132972037492555695518309747491045369494617301051045000144895585193373915191494898602084637258533534548910324198288123238822042862899935763233013053587354156960104501344712555646222517377164193265561551907352741211367015326320754424799059959697398781015414471372962069634707501624659101003122223167455625639738620052585320518825580585457590049744047783052737538299471530415556825871988490973786225127012446480342358773645042901951270000353751772337709094559898012668380303484556413814268399129209454308203526980829307918824408097581868685822870436748968566007514261414125377772511127997176019629389907915851576851005611479613109330040623200097410067009269254527620393853344838496527329744294346325382948551621683596942288937241428161150987045828778058860351273257780575214918179356414323083711263164077115640944330273984707315437160858294483228476683414829865292671647308360942736510026240167912965275187843772497752404348707274899051016588321808266370215546683284796410779799745817793498980547169363391532921105358701812481289982469869029548631298523341620626526248153792151327269496585746302263837210784816879477308526956134559309298895722156278131599343165641926765150113860054024698544939558147736940019925282313784565021955319962370078960163098591715934220048897521564995819379978567788915566475063080848313845151630416831344128795313069916854142473911334485834318944220090616103873239415474959267308074472416589790179551530005848088397714031891871741351520618822172557729246347362959997961996682505594777413139862519643311290914842728065033262246490687284844373334974233141216411753332729270398237138433959138818185150427285884041055731768183571485269537683672427142481963497660124989998276136814295232611578218828291840720295052255099852136398017304448730569521416597735104561400383953278863646826795675502262027714924333328522741847038867382129786164210435425838147435278034917026579633607987083401636416358326211834704809817857673515473575504907044339173580256535528263506082786061925138871998693265090077919774917364610971868289941575028158523130390317823490624974270807606610579295064489062939331970292964762160632519115767191404445613759848279988927208437212146120943545276229571777419712255332742692232809243390241257169662570982349316844937995405348217791909694791210533758176428204050062320219650823544509733689952757877676274161775417918167893751696407248949450309226716625275319393731162894591525185003295056756688192347978178695823900248998327582152035403547057644706404497949571908256799048896507981445034076238561513349412482517476484611683298608702560691810665251016870426931382944654403700811170212942886924715410841298578616657441918866464227499412434200835006043825900668970859776808980478921366382941628702732482111468036706757730996651522855176589214089646540411024502045961796641230645831570942785532856301894708460214668110475819441553637716121444944224861293278474953263516983831934000530059531624525982368094478920580081369767241348465356561962657795740230334098480402282225602835592611843413519695188847592821285983372955462686131417836703254009852850196737347874477441700999869939504407253464316155659826841356620844760528605634821635985373552313827824578681876033564600230896571634514686961450006070047909435286993328785077256587569666639850773509848210718089567002912622204945177734627091673483410212699845763369370714619663388480710088576818054076583277083083121619889039391236488496392475508186385508456146267016478691213388278258483929149069096781569016068436506510198112980936042184899385543633986802898892808838110053371891929948100306815985066579316414364532322200922847595497103460037764772979425804794392571946896252112347379312533429847579906195674398903604440604169027731840413403592352395490982921588122648716797091494067911133639768283616883371182700234010344549810178736807650172673486474021160141900204428690752181611348215047223425838235259617172078842417067947784399744683938263601222159464959578861466562785537769412327654717307619793916795627234677502854369239878795776424541364241014098064465138883109647096390505627817710580317217882921203590011848130208409371656718562196581790356451647339016720997989831629597597646145031636111967733775096554798309562075794991370305605225993169849723021177298932950864466865568426867327559373364137027855508117269433395895179246031812252159638062566505860688842487061010615018096876044135332968209885598218729526999794035847742463633224861670826565510683700048896842600345041076807349471126053108489523006592803847575859302705011537739050258942860710870457549352642019808301868386980125186096228599149929194349147125314117175719700046038367261352887789296458099656575924762076353296436273189734743149663154554342252153689814309562944074772095760676590885057175538166036836345406999355896023991532799368677486276374583810836227589678865588576849018080947276541230694388355913804158697769491155549219271172094331067784763258399765852579275759950998352338290201912748209754362273255813433879446483322411532362745751355044710963409392467466007287450491908014039921389010223954997265469523755461482412333454428271458315946041580483762408942842863556091112377011608493063006084477030481446168541661565154365326382702535950425225724031245807830609852147951412292684454489654951323940294657959971222530015978285482044941627554481957780995210563063720392526700019091238890015981947870049254571384708323500368219878846818462103159603772046683570594467759228335517713453187063877353806684884114280059157183753773316380015027335194280645160285486334424937998569802837149655509542524875244075982214351030118188171208569456878605129303141676785669529056663057081118754486253188546446394049010517076583551606131976396633014050353012741286219812097752904856044787644064870434959186086564887979974856111236291579149339628060476122401229798984242648860573880702598354397191778462864934675277225945100907070407453333838970088024539777908520648602303407932148126467604702158239739742892635168931641535092535519303519498189255904233643105579091855752548086398115008470019956874389499517851747697247701302651786791915346712594736260148555763402491519397391784383447491000084345403870386531752695156820762163911128009652313089079127752929476243837432035481581074028447244098864581308340274006762371066193977244018186255106890410473329287326715788638429625945979239309362354234220464005729109173454290007204910223585243352151729325130132001236567178987020168402093115689989034775155553778842394374711182493791758583774377616127075989362072437747974756555869743922823438908246961760039084987485592774023062722612000235451653985001274355596001820512378794377557269075121405330169738470848461202923811295842466861719085470824079625298246557377287806489109949731247140561850822673863724119301102741125871693672209172080220933390041957959515772992388213195278062965344172410755077636863836208468077539015802292366304260538778411681372854478971600294953902900235743790921718049949633709924225960497022725995983016399271141548385924125161549884387974704416726538923675828967886750628988871851486712454984969543278168725578405293187282760800004762071657761800023237043964451422643591755007376253794724412135374672705101307687634177938899856193640435038995816464117524097106674913283018796229753500636394166295898192104964087260084696831300122668082056761443996059348258716630004935118248519826329828992232471062413763384910696883412707743383847774579242198744681448817823007116255981441271481115534616398022315523075726127562486854041589416760937042584988277422217874842813438166565813176209688431205517505389270112423241786101736094384641330704688831771444080823159057424570602599567205179802956760883559124898298862285004362700071083044766880792099114578823084149197544878977701554740489583459477525966279341067076797507255953282537106806193355635776201263194051550103271510184398969406865199440646570321110100339511879683975844970287125558847211267236854218142260926692774698399269032579203900581368034199390049615686723472117467112497631311288116692462330561498833235218295014082798351873062594470451515835175229968784083579049116308670224503379675582279756706408195311068581687510006516753452132840444842422254521940220322843232224535878705768793653210285389563411711336475490053066693025289118176501049894047943966129238137183720952349742734059325878904754445507634336038448451496900371060003880606053547513359215967573716458381612364475250913623452745431712344418336182525149034089556867245675151897627154629465128542578653842284643878616954221741683449893992484154946137732110956134275231802476066752417627405814342623296936829345242916125071658282728715931322653896006357101788780528592199387311008594957515239848947966946368899790352170865829563380881260108141479877491430071620723313229637620212241177097733872266008848361653066399875469509572462346105288369191188250524807687863938565928545984229498661326839403189177581495318388578811977722647153537027430394105804782540605510386966301911940119469622118123943276982087732024799755994235266619679695726346875875257813421206637897391478797360757879676746368420064182057470464771924121396548038882382835931854408279787453750439300314753448983810562576889801367555178567751482317996350165794841291220860957854155559827677332145792305115749575069616766348089275905871039890419391203712440532723954241696846538025284777087665769641022909904245865718846115754138104633783862303460510711410359726965473259926874329715242237700648851447208439742254301801744729470085350065565698019920780752854757191742818167792042249126951273670985084896460487789082422459048062863235079348396764302175868746253259620277723756378137410489898516003455439859621814871477267325603039230714299274829778625020172781501110260666978230756510677957066027573822196872054091118093541306530482452887699334144319484390552908565638744438850227403381008978461072017348453642798873616909106711998717845591450655793744659439871744078914554519178209568037839523294304929323033457563063730368288174500419948068880635189436320675523429576096596111629121667768449083251619289441700602404171209935227986858329656514144692555935204931138983148410255988267246849957925076015154424561679933132589321319534569650781349786090401488573675804359334846251656165597888481041362156864191786376592068830034673865257903521301688725383131239606431909676574763070351702296341480130738645391294279615050598257970185948487854764846787126833881510265617161929864386049144662541462750216124878519095320789490176823447986737572084708859360658402586141095164004333419617208671879611206607399387812361980430895170809675392716613667065340369337021951587454562698265637774726407271946726070743105947353590850276596012446698504247741600289189090756820646175675233053164740366965340481888046376006673370552529836981854537830026771100178940961628967793757296161448046336227547826274214351287241177399454994710812934596484692504576418668379481503927300841056622152188381725507398702796138749972978903294396715191055717986465498161520939927301858850808151695043784818716026778851840299317813854438961934827025593384789004029672369733496321283672658555799639613500631910129805983778788070865714644734967144806420506762634718171697276383855795167945782843221721255929851830729787237318802358282052147457050350273374094480020149376345037593061432097625466627862452500684935115202913315918845143861898554617995745455159230231758233073190314380736852260155547094801437651515888526464151589490772208853955389873106925791143363076555184027615677721326223964268649849651051298108463775994621893336319287218300507394609435967816786181476095947250753057197709534404678921016151039263779058012141277811937382030272714588153923313508289564820755285135197078672967480903621847804682815129901971642270270781497668151414243814024626758677155769560990537451670519619079923246893847180889876657239852778280768112672727525891825395848768954989294852841299533623674988243923289047207828960480901400695688553649317178083813370276060049543019408193285559874468021930582586148431886065793880577773452214860352474711263772429532170881509068135581600369274096268871127628666146683868032950585918662022935855512451936354742325878369621055702432725034369713534241139920807815010204531203645544338962252521899411861048962808278694194179647827126182851559317553890473713347135528451077437567089382919596299617528277494593424877537454633269597581877141221560235053011641227326240341052096232749153490691629476463786322278957511287662283186967903376670528337788051939144358575909475792651105107450816659174315835373574855212060599848784597955991854137838224277670621168870482676198619604414390060922928467861395898317597688395477333868041076534338063954734518481589367158798375562752011922282973879497586069541224251009420603270494958433501843892235879016030596002130269922600269832004871415974267579591947608153366246047699303418189997441658526951689075231578154704463569677731998117250946365875104943008092441371502120604026209288666179540888890886848700046976417022421166360667723790657765755066312303925461916246023004666978111380953217015099756226607692471707511045956836120437721746783233536827461716539841768264929050922808451396109006867723697083594912669414947832657675908012139779484426248885163907998207274951258178777961050627488949210962386178151706000846882197793197250643429222828008519354927470607586697983809900130334100908678169200715823280351839400281228141232170662822958468811237175555747727490936608318287570813417039811088260009840489158439965770539289781733496684287640992414441776891977369196061479202538352616704432492770993573346544465264262187954468804591726922867823738563596049949238206058996882495459184554974605844982794399676306399902114091772705258019079707882593734771325738039236627989377031763105110161237572256584188090991672761694858559544203232789992598694977984914927148664891227779426044162334462707518475903240329349594957728226390004238463411338651273686548813133042969616392002987453670522601503264782313849382816916877337066025668915752570844835455282170758026601259823955082725921829121991571650342329313863733396302615879633571404177158818839547550774950898521010929144985260306111456219010986096570701983548872722035037212446915977179464391187136291058353190856215901515387810651545193541743550247573006679989071315571070253053089722044451056342892456807374581245188937920599616692847387472347564946257645437646130684727411609644538490338373819139046973447291180232850630611680462895798411505734686820721906170130992535182214581247961191199311878915271346939538237929597301608930829100532557935907472856438640024866859798516975317992111050801393434912848380105864633215790453557536588894182815648163446282922616366364476477944181976832786856951705836900181569809336495585875992619116510375172653765465143427027656181551898183457937894488864498335137740125616470066580048222888389668107758026581254441764672544766480728232750103001860943542572019383589370164204541287580376967545239443694678517435619990038812551897719100527426232030027372967007488067573370656233741600084564234983844319369247408409021052926854425590677521611221440707016703613266550740172413011233825517010771029797946172821751816131037003928134175834836951202748708083726338636448747352139284829116533204769436108097296256144300076778441853738794882989787980548887653927457389707094670101364927602453507832872054233107401513877073558785133151987604513727111592421927158595497258715719684733894979451197380638336416797250110277530040348057841206967690409578169938628978818190703343282694465442673061455006021809805561520082424843479910147127012970286592228800424487371524759745295597089848050725316625207895111508026040431346811649718596114317119973318639703123829208651473073464061649681326602056050268006944522985241330566259591088575882208962186415960980098936659363663692784224525933899435136465745097862870232180805364411847156154574122597907500806633689182750951340917879809996090294229561337477895703028074028054416367866218306456903298681648832863863572017058527683006068984315423417100471645196253735772435640739257862919105960572904458100986422309737725218654952184134261460785140653072696304874443552165627706220060553228068479194664270990569641848497264244716664589526151926806311200505168307530322128205015238950075708412824218903138196303570435970599710620110156769642125780287984403600193186906732747203107472056789711882714390975744129466973394259884325167199435637469106441354730771984351133185113581230171592407319212379418164017747387152548517336987504365364857175957143583200062107374232604115432758730715175257408650377726304056463826001977113658649304572067952079276683818116079259712023909030470828487141467592799009843289451264930140954616840633192421065312889358397855676292528902796325510328690526624579133725673687516657837626276824151737543737070068765630913339463474018615310639162665507992829190998724521103505760728970214189003893991978644640424327799250161773907988832618362221975880329064469568414985096442756013873134042159659462641129517489393660242503084081121920271826931967749434068334624422859928301722285283618063651405396607733256356959983627363228733816200804157587098889346425214633835037571264049942337160958428778160994144240781662653470034597541105696580141394677362116719304877812319170195906034221267771349909021380964271445519280467007937744826351792230514730781643817819229039367882889887985586808027005810315437235563636131242355665013298392452195544202610214900387000599527280164804541963589045258874838096098529062938904108343070651104401540516628233168851936016891610744210351756376706563479297004027616745051753966500691810216482870228450825033524365443841219152755960068004854549264092354903063130572143960371857876030316649614753286547153316589495162249793131718041484555668523060759245596522201447671646887625724524563746263960653556656569731956338438385538618109556515942065272134492407980553525742892105331687635063614597954967383002277845251261710123770287517486783481263862257817248385532765527504646156534582453312965431549328937506707818857566103466945931399703917038287760064723914856195464773787874715189757267685651244990429946247504306152548256206961450386095493541431748271469278666206974951106916132659175207736164399100677629685897147405570016274435749945726736642887058912230338509173144591405711765268929458545378723047689542044362037216930894409430662338795951305101651787708113638773702339094107570094637554253639847402831064322637682821647335571657576643180568574648136157534977003107907507461431861940416252073575990234469452859424479193286072695060973295761570379952729854665286021756471295096212749607689276692049156875194727699337824957440543465051900031213100919778069247067864923472755935496673273895792313031594828498037806590572669143621627299160632468256027491486957524033979785612796876280998704309592324534997946051603207981906070640135817970644394906728375264209562316214839699202500404377143773766032114083577356491915640623359945070428217098442125806866608561572973456389458920282737942684579584360818402994366209186012992523358672761676460484728340500014759967281408159447451991752148652877510468240391354319434531065192652342021959356643916593065832015530570806563510201802997288602448946575857520541233923604059133437062289133475332708147584428735937833587689243510699931529960010978036530762372257817942879952083076180647507015405879692489390386507667121818615249237334320146194856723485079356925658041783616321234013361080452624736319033079148083421478338036496159937088558882019805421879127000301974976497565842869696448234199993257573931979900354542425924830024838002309292452157308084482269666442170937694814170881185538190790618363530391688090779449440377376366220939725052048411123128522415215683129795621330332079766101151283594241274912328399664522431951493488509906219451024829413783289519344437009435235888140096261576239023547790284970246599300936830507767911208655201499074446294720589690633594378979773912259348372985497053735999461841789167339169612856002451710069347194128230014923039227808720881283475807582204117391288533771652361664630799110534723588998424778455829156239835121001573875292692918026924619510476647098909393462140109480655522581889937419584621730515153588837785910074269604044274622460731055938685520700933302319890762524998212929402298436857679019358798929359627013265088899267678236375473345887751096544406654417266798971119351041364918889777554736210245225569889675515031009051083429547927091828651739115667172369792579443613060110243511983751548638732714244297303707924247677767364846304632989932539610172637763114649749514961375386553181718579092330893116562227018268032204809427290637078387580267115803507541304986770099475489817534246763207869684565091067056250612076397819962267600376061703475291123252626803150938718547709581760452437807265796609474935578641014317804364283037798315655754007369415345720673060898646194202843939607113522774055338740191443968674686830353196323663453209064034583395804147126319487133336189906802177646619318269526388663763982364944983698911054225088492363979526545943684363069861106197193119225647084393279061999030028194875745011658965785146355420250554789992678564989260773197805011569238510930435131881037226667240802239553497782135639867218903774367170684954649047407701869269884500828329477384461381806702812839290715618386265915666388393715667156828236714181071695237180356430829500069624261593915940183717940513921515655561674801726055660780549733170088570654283872642415849429964763801889825116902664947951888598027623375891287884591291068486692785047489189880271181072337720632537727860899233386464657008342747837548399295981527243288298057182803008002034163807579450714585283380005448218064812658021830844918211762355638748051900525213673706681360469592146250247003788904307123712555321903989804523401496654474906369600378202164633359014202133573225667959210044352027684912463567596086001624813180264755633108396195831786243428947938658763073631878948173642811464205699144012904574857997051636415969251228124333292770164212000689841033118285351204801393372111248620733453254022216907676582776343310089796809754228632839455542154875298290144040315568982678157686681551163789116487355563086719908803580309370633135311564260257930464984903179010501031609304384627084864880650507488544449726794670040895985392280428959042409140838395456779992116222487926564828429427822082089902328651763772516661045221001312192944248899818416829563968223102648077634309980142029396749543619307134680197138184282421186217138698052583396306092471512848706402814317515395923874075674964315987148671957302619829324323731386702330501799702806402448508194459328610115123941449005760246731892247881232046392607774480731579974082112181075233691157357208520323283661127668109945514496091549013783156320111313910845108257514321455259621040265043703468093776595492118507389768488552560762993344634658938431345955903918488750073032206101692929380110272177643379622662543653823965909863156213144062121991852606325169704083273611768987363718999218542167646266158674039016932240451677002556773836680435506433605756072644568400395591855166639340984554738381872544013083862968629726135861320429897875814297780367015325149123741427338867745918279396552730523731374058456371798709899032521257501890218586142357280350108520626309304531179257325516300555825352258422268249333573069732523265177579625655848017824483346617110266895120390071628521252968158415443661513296777741999391947603357091545342675310394289150287085742165273309489706821421641267171466657566712943046695823553333548484584955728523781681767596308668875820619334267266458716262428544658791913073645375293524944135428488494160077294418249962808227384239964050774752420701421531482466413942922975913426611704239605779224657548120025581351835364923522640247862026636813580149785256173152888448528459317689045314120028547682720484969684046987354371693709471370918246815001696904750957314591294250697575421563464485302327192596081936136407881652423619796459055216466340019900734340003021906554501981531050027551188060926160362217242581621286330339092946787648131829087830603704250982577328090357005420198838710250475128090816860198696010375387841872491207036577773388231214164134065289778117290633688242001224158137099945252977312077746681569380787370766238934556744067235330001247111077629409388759678747998159916490520659406186351489548459988737913682225894549996105542815966995963338415010598611245566725609866558215821113918400506433136343286044033987213072454454417598073022852123544460127970803524794908606757803550982252101822511256887004373189510260105616129095053506459213278258018716306673972333076963007964666870044442305587651266179022862500072708597382127237946725482663505452614849960408866649290178715804370592969705170726936074409631005286208932251872958012612330873345073343393670454044372174742158452208366609514965160212253434173527366066317877155929447156732774323645727944600429114321599087774386758891906446229460299826641173287057183015267590049356913755388916158625381689564409690160681292136777815737639885266954635585200020526143080675065623351548728536967900162789559770030775332802511386896662604440497970317552015340176148856111090246209332105710448645125260784323749751602214644289609460117692567712845645356124270193216185562751577497223438880353149892188152022029618023374262456171721928408856287524116975088785851405695466770877865305859518075205047619089136286060630767911752664011435983226246662890608174693993860694134443224438065159029754388799711764399672685444576190391960749210651673966960304932740812003025087604166077058628617844264001365566180120650347627225353844895788752698449476891755078332017351019202163704111783293631259532970852112953915322194407033178696290838292274798908148944530112916536234450800581461742950383340945251231874473292836975705835874528701850735695408125469745420726225117153455787885071586618886651189056486206277024867854509362544948193311801625655892598305734641155572030679405353621991552069314436811247387122259053511012226455439273758196115577085554224372163720561452607170594343626940638894236641769307129391679732956080390303994022742127665729218001273883694007149148999156145923666771189871695743533330744285984938336218150592391222382339899562210587601632985942613346445385840359697456896669536752218274434108776066951411543932128724299680478507246942595244776179377940604380848592515708291342012521036968479288501128509025154613907354146072633896610297754711639163620754461443856988793267356408698071732839331721856235297235180303690497942524230453869211402243872137589922427213873569437894689446976819624546778413804191214791735182559870801297032754369287199857813272009199013964885842945770045694356735093507992899395224927754940033199274505362030558708008152395992617064020983256449448360950063247581039477278002830822923117001464491725155487456414242892323070252978431644650366398764127762460933685944932751197529104730106716398648161726569280545885959423202472125833796192006153426635612655248106193690034881942127691784141709564033039728146743297079476280881095959132009798262893368392140431094271080707132962211044564080081073363609846657587259371353929373807409439613497982916861616860024994484897246247814285714125193258376231938544726026222048828888655411814847839398510661964270445687091317815044012447819351484860783065260845469931026499693348236018654474888248938314259935850850256343682199076212227077588336782387079184412086019011896572286727657655663282831691057177943440063486455418524364280858968085462918698344212069506839220984914962752495969609224137566979968174798983192296352584808182419400633717461620558967692292589060922869481457251576741237404135696306076054644673434748767419699231796467848451092841168986772062557312912207537921237489813619904624096329086664663736445910295521555751108558542465806186250775532510600488046101426853275974231846706162210875083455481994168770860543760902432983200939181543076070148120197334109327715363320781131681357529984459504571246248563759088731577615780789892885676733167967228908459270707067430146114415494434364230932433383897840428348547763509252873991437271244990984430208720441320185919342986608251684376938105506607247934057388536146854110034421758016836372617497081507657016707138256873614235442207552473366186636864136878734028737667045461895070233572064492163862610785848970156003097368830845445783961320524613007268264440618530922476307348560750403407432534738023633776662794663834703174279414366023264112839339980135195644394723288135877752047498180272188908463550183100496039642557745126314866964777254621674769817519908550528383723557643200360392538256668535309388927262725277231725829438202261367821125185127295215469305928789071126259355524019845292700401051056237902183062824538685558366643134125148794208301613168085861578941460025600762081780707806626290210718965541660326987689250832052627788493712634742167162847836360924067273693655426787568645618895690826864343967690885495675598587517460664988224322699605177336791828459109877939727010492063379238453070597923707477503420850598854056042364701307684921809434680577245075413405058859738254699756253545528078741637806698676410884600088037591348686513668840501989440795270299001705354485015863972691920514957902694399133573523475300576921171683444044561426514325009228329417373481446151809901451095072458384577393707575084147888764179700945072833434513533757466672860388331870382140689700862845095316528185190766728342583620865941219445884342847972911738317121066230073405540702056849659423078336899029316167801077098246306494197735094850749219753695539754050770377672618485327796645654069144829697125010516828879501357244682072191264701601926802866903442686378592296786054143034436954111315902064019905889062306247933912070476106430474248260347290111423488975067147609483531038970590090429895551593936353531178403180468437222919754634526822741175145971504678715944770276273288333315953752249306317749395893365144745648471019127326904060690475692826945317286762370315810814538269541648095823744522014586999142606541443596933189639360012185321479379378646693399070958510728328983161886600335021735035193412390077714573930319371585842024514112259400770529990630533274892030694579804147348034971869689317918556044547159482574312223723984814532140640230033074108048628090390171692149274440652597353513693827529947433393703298832167394993963792819349668861320995771724217040074285028621155660029779332529235646278251631592054577696457834622545385513131168575982698333352402259272835375052921453313944312290402237594540699061205029240729656651149838595837483317683956912111527497874212233668311839582702135363674277659473237240961286592017681739384164919358213407671550540664340780880406279496081167013529474433039512124704537320566886527436013563694207054217944761891945586788335062291366694489943260015382208997274225311554342810483105319092805739891452760410711833218585505115456121545008077510721279307328798420751581797581212673782733192686375577077244400076374921593490969037309935980509418254467987452617784692007185169156924002526222263850219957956306885982232265870284228296717346815562629091237731471254000623866458827674670160940285436053753779259026839050238080440196367265212328557876823674609821049153524442392465875162031276492640163759880083374324716577194284235486552107430563671659659941746817668266120293099091079168981031956359454107331854712533791182474249467618930381351799226100541285050345465848310631805300035293483048362210440499630425596984499566984827297573060718485695231197348898268552901994563142276098694435873907318392432490644100790062762046291050493105638805288596274628601431885175403633413638875042664420717290573976482105885978692351296111625745397664632229936867638627072007207338804394926370158389608520342181074476610496975986767367831759349485829147785888546461822799747627537674292788555615444344899154820028767992673161693025760584456627372639950324231186801300905190860894248781974119581685361054186414374525554983478596969930768670426196085475071548192966749680239920670786450047507534281358547356616827843143671336754002701584737901290970598051084795435069850136143126051826899266758039941727809737313072830034326148553195752410742494753676906206137980785305909854555622751683897042388462217023344394692266111839364931719380476747329664717728095329171648950728502447349500455567327821517585105432782869079628596097955914516075730744956881244912993773662880935333708674468371627381750856910855426466264343937059337232947277056522416245823388790291779377292815115841426371735736325415239546582045343092405602695248879522096638178376236598602983737648469013829803063681597286656456239683640526387189597317873622972761180178855911280125358154986818637221224343956112954962908129488583002215773283215376440367360379984926448205299065537836874999487936737149751931919743559663743547696535142358538199196139713862296541924606120617964113229549052313024107264892400062198258694460204490146939718991778335166260183222608637753856480091228382201478146720258097161016760863358183201707249228260348113645537765965830753345291890554077455422706323054571877939008587423004732490442507394266253494959411869124568199596894095410280095101020967130254112848382921122271589456013353025266800488240423246109368266944386813576233942966181954207862817246152098719277310154778575612637454206001286659548948754359125477466791492804401002241152192701376081513419737356226479711277311496788730458570359820267753790974393429027930062059372729424352425515700223067576242723343930519896386738741002387027648860866080367951177719442465027693063483774936822352884960813380874888076723433630873924170872941433456927015217584847099768045631719914612249294286895115512030978394772079202414174348018072642723598326288514661721370875212358715988344222687304435009034823202942426502029845825373686168857455413984872072524464182917694439047342617837165096325502499023254626495220965681752989465348397972578251123358973248840216114558299354755132160838467689258507554437129691001501700268242861123256517401532405272647648063767975938084131293986078290725888424412978727005760427977805457864803838601987730875208039794601512952794698461996540397084993292138857136702416056869880067155972906458367590637661946229227490730400172711824478514767265096423295403691216432181480939161459097804511469070684459167542422412203145947969992580525258510527553008644716017126512573932531740367870370849310084656544176469701129066881149409515486412478239796119060096019036932776395878133991847794201773386191413704555515563469194275392734400321583832740067898809584205182716239294008505445670794391949491587534135671492111708044455309370408712233174997847081100054893307154811915098480285210790543034016187703076941508430152416660845517772004883416923664754361365175017207523362701259317386006134915124076908784719387023915163508387240022061753294514772721246823401243892872169920476656437232741298778353554920646644739303910984656348970036978396475067763761876112551398034974107711110815707302369132625567595670710018416749753945896038920843001241884076831992510212988610797345229112303358753426714768834677504737514975337640012434024275376130340732412875400011418968495930882979797506057494766239783117590012096050489664455875206119645878795816758440530754347912643858725514865172769615223241346865978416077385473626877303868202152715217890873380847285976189107443702530269974725694921441203527789998193610239479618204047675178490852493103342531894520912574685238044775115134793439511595262238857586759974099683634234627391398081693601199126246198313310680660450808665021820327898377887799878040731732963338623385688957914080207299040977430839178369660525617756967165055780721919925319889513340089044908998872795088741388651090271011557616395413531361463270632436355195064084673767477009787524753421450339886273140727132081835993412086479332803103585510064324578182359415994644468105237407522189884886682359939571071351094386321893871986856446495063145324833747928908586384913609329150673902840331863190893661751056203434437700079109008358570936352745397310487417081608698678210042772728499373346378972083586297618477748199398488145767232067275133079650463417293019210739196131832371577232327054273360593564990471378957893804775435585643348047456467576483095471035967197838892120904649483998447189959325629249644725797273366906862496372792972524529347398195155086245944052185485860134893778644926171731122730866079680567620559046475438937044574203066405329695223484246719641676402938052413414069142342047408050172291925177696887867958830491919498782012456826718415967692405096877455220587929533200654614734209737732661187424753643421400714204893338823269656938653303456811095818841179588317316890379412060129464993371480124984599505923667723255532345950019546699541039859127600082042340520076920368708618499290005328312761287819275391613415761959314588688993288750394214713623553079166798200895549688507295704830792946190522782786257638834151681557063612917449838291415924438087516546534983136879412924317194446431348223608084115768783648168385209173140056058701488060949066144529222097196808861770490924912283854496556156051230503653528287973596677183487574936921265152669881228668092425652951670210977358257597975865842268450907324499496752659957632389171339414341025079075729192351605949315743769919234635879647006913617845227148876782846255407344392986486757909956823590496640753293309862442522505928568863117335154705719820576365691915105967409925649271236477306532705578652132104313545719765628690314859734757333258674844346925066735075690544913210252216223780920135434591944879266422990026967965033587868139866670242301154909643964893484286825764877274249924624257081914689539297909883193196150186410004320631545276088460766879287317136304605318060889076010491610087058304963317767531418143325206721350931216869012056679210422680479456046478475649578192406997684531554105492637847737424472841926620206595385317452331906294890077184730124003454558238915828407802320469435002966623722191622705883986619381605297737099355505726456069419317640485754408966835703322851067578478278027637186038873748651628132155087710412834112043239249340463742410489489362699571742121711262418439506679847749340677824724626700771439611062214682223380497385696895763650015009667508648612871320913849817184551159639123219924730237367988317742649180501081837710643964612762458684041552062532936187452324876761649508638849094967915904341623461803372516949789119997731969518101806344269752438881892082556718784180044105933920832574340965779907544161762979663767038136631203931548122118681677934600483800372641892898303793779176517805387761299514761208998052135915822204898302843759829334766517091832081964149277378825611246076819768094318942993106876803802092932047126074914639502303538363719349174380661312950920630215322316104585056838370432276720453667982187188961031316120193371185562694199116343146703192494283992622173008028070741228197242770054720546874500726201609514433983086746658613350222800630393372375037693130055733429938437216279033732991293299601156606262842786700666970275210599342202548015671946978054097874186462801633181783700969418842176070338242279804918131249777316196493751241915057797019069011348991613845510366921954156678869685879310289674146407055384311963232354128754131461219691765917534858210543329643031057396938896994224339296113625759579705694054641471898731766604436165704139364330526911785804472002673572692310696978181487642085239114274998419571934678051182289937145660096934708479226163528208772996563137503368359602757576039245712072896992570376972515132640780999775690911138779437253400887387316613293007700507113009684513829009341366158354356936289798852841848428653544786276904505367414331374792782352871031197004143277994212775229113577335027919140802534630957775974912437939068962522956806234609967717612800273240326066833573507267466643506207618536232175821463774259978825068158444339936425172457754780550560378974699520365203859431349250810875118512443464918335189751707628768763545217824085672078549806859993899254546009578713745470373265927399174322169506310896504281538121153153689824539999809145895317131289465615443029172116681600260612922427069152206004555164186424676149457675160957941477139105599670162978709946094503402924375059898487969882240740721943796886202125591102247866084627444349393620688251472987624702110068905261803453860795924011877585344416142950118195368948133676178771530524435601283167604592524928378666186679362257082995743056458830641094495724887571670164877181417322746356938482522429162691021760389168788518515972214928765180661419381496750769348544668271070041177254346460927708114178775773587666838996333015857899312114955251235457498552818397230080627215624631204673396050446799997181074340777750307341576404918810463139960528765076470984134895644742550616701320009569914220635227472963546338859023362924085771800335569550257921171266819116677301968915279715641794806314063137446062217251049157568284518270304474641987563141195748911052560899975556323355855226492646638338699935459671149158150423417503515542416665286118761287876709779256413728503446265382768998521974522525076386404610031740601815511482706551070409601959895373041649499158267979848757483211334118822486981964883718051249732820183091279568916721107410887500559842068005349655310892622081144501362218648212397243004321211062838635434641088502788515313944916705914454687315726905899204521743615296633057467965831025884328644005920445210968313720412485434172453133545001894227671010130121664419569178481724224331157451437126379442045057025785802021303625307486096820483468372600343764223019338647086782465453706712854784143283327355943086329087952161331150854776196311292530953333883266551288932075695608601647251939252113283444361878576210464674332030985038080914715058718137903890962673771211476171740720521868661171144118641310667565988934286407457812674763318962844757214193876313081422364846596950888668031873155470488208391056382780914761140481791322294744132874002745525900081327481448840930650501602761710050042267640910621464811425342041114841475498254822792370990802981138350804561288008415625571787110671039342126926337112927366524447656514558749708992065014420218495543742294812126933449923511392275237601078723388237401963629462653607735086342250755041892445003567890116027268883552582126137042851035193903377087461244300891469479491873546360863849838641409406859432598368580352872586457330127372592186910076391214456503442945837792006174646677871002385833160246028931103089161339773334667593638737234173433855166680751588150245194266082201576728362109675109940695455676249676824806070313631023417000269130016144776620046093982651804032552885890927820797459886881060471649053869032086120934531097773632119329235287325327386702898593835688032680769375540186101041294447679440916054911143963167775943809400228891131060860892582210891853799284490838653717752709443903264714002480031735266127986404042450286666645447840685196789113796320988222886742729479266574744448280176583316867965778901542388138657651458313549890955818578477405607471953146665987657135637660884541758487425993997044312338607157456737756214295271249773807252007776978283335200301851058027862647492781855725064317637026921421526561089788687012926150017058526689679571585967959643123429286755696622457723010927101654898861281946513930101777983178302860109998901932153182120879468919505391271541190995994626984067991004762287712938747807301981410573065250762988214449251303884153668082781525946408320023030726748209320290315478629154514738602189407212655484540224243145417760325189311618071430502647730814839686283059251310705068272228517529775269111828423533386404012383020915358826473174981389255062857704968999912361670126127326923871657720045818697478054052161394161722382459887747333098000223254435676099264687671859476069234360034439919181116827546964816978753356090322593945383990285678523229252549305003967848137306823050328822692327104514383934070913174499499921692756316021977344234540201182708162115417084628091965730381764424505490340870102782946500375580825121655888018182351601269073309175523842451892500739470460306279487231606641061111968690773774512844463258931866748457117204725112731412299015530455134015145100109462149590303529659913030070641731226246397217304880825121451986503133464774663817113189658845873686707558387126790796076283999738211900617161603402576784335459304142519037972415407085837612832282819038247957332052093268226700747284913134749235195931025620669588432940412481469443812457077384964611496677927990301805958243124432150137516760607157098523027705644653877394515032405310179662150733102777180389725177519917795784707211895352308457392411375670784388349969333800794946455470982536547779186633737597742895813495373407371978214718003615534752286614929109466122448292170786250398343123891223995831652969551813593318469161115761869918355202464592931447261784325493331895554588936334386640432623057070585011852617386306313586420161073210161721779414341496564590426450429906006604701443791557038494940718077512228133074663121888241007004302075566816893400110733093390614952165036759548207875892641088005772474774896782955541872451002926769028767179887738095541330155696412474792579542534700306647975276525348930062165531395023059964352702015545029032999454543560762689385569458783238990662001895873985628914348007098379635949540129314273779982249453496642464166560818746313004185981902692557781003106590200946635508957966144638724572224093786717318213860921931263140233512226207416404201891807433580935751110699775741927931663155221136780167537901430839863760755010321869954903183621211881500203516637126566158192001518150130802452970063183142787801263453455779845689604939429087826977120886389707547219092653648514853660156107119905199370725460010882315274799122952245898353296050067811114215518167990973335925229389602117979065805477333392207763852257115839490132572746020262782024629312697980519047940882607315516225447846821987013204604972428079759327480341889831962974964112724150129506821382151802142780336628864053738860643359294921432804213571489808548864347522076319829988218933865403475655866205522087404872116831704393070450607503583259622098354992232594787934215681479249264462123245576168886600124505265837850960415506778190431193116152093554423126043432500789458459164935057128557773650014503880785907889053496161405512275332581025640202444639027799662406029618818898666157750589395861842293365900143173999925604179174454722478450649066138959360797019442466213817846700702134140748562154568692642458737781657450978445372528738212090735351439331362195710169509908182030902104936777042013951370858351593144596293277312526348779749903309406619202495158950961423095956932964359480180840487553166389681479801866602667319799469584233563144345559795239913544806228180651213955216726269849426457778041963347653892668643124564604131039802144575254845642160013449495236090978781039584274793004498297023945444480653188786235757069082101092022082099213630464839415886100191326809350657490420468169278011678718932935782939591782603469674692256077175483538720474062222077598814377319181497048485771009431288361305612195594563172732208550428605481400385038907217176122819158202416549986070994110610636237323928304829162042862353431612571347101620894135839907101539168397667984961416163062590563811428825384773106466004857189607128109858000689134062885699060532311528150616413314024201193328906634725771327776861780361693979736186050254432220271844508896163537423407649364503455140903776512142349501383681368168677716538947420264076017263910685760495128614329574777265016430891570807765211405294024558280498833422801001093925826503250279941802061603544281577315403182609377117568135425797364837681219866252931528452657738088167736040448680025212047718122082921780307125200205270569458380765852784406025065507856388013202873112648906572476081604970580495429359895161635481004110482899872000416449378710337183871078777942313021073538618927860403506945955601910293935844966302590580554160726746930482095694539457826785729124193083410694126286659829052335308024884248013273089892215774185956484105721230357679553297157882183597212812712519454331250330798029324732274917169385713965882870973701660650384540829109556176215352338887297958332223408031987731030874285630285702947868382980278852278835492791748085219017086530219563984188768800498907790052598240852067370634284734000469789538753510345391034837746352766998353683284475748511908241488356159921990591590178174267331631109120637081719793686267633357376161606562688553988823055340068038009772567373729044186419630865665042209728021219815845719808117572197293951617836455413568095251138531506349870593395172717257378968074200722811888886863652386571153977499058169977297826460064093212711212187007696432946556836904344929935399832057363547086433492732304095560749256472073745265207218491059097715620472767955165942632078428176441107280214172169404981221680732553943346137321405491320171062720281255021863211825073138886848537255738798336873772259619450995362755347382456445581002532627027379144529823150157057092354732458699174775328191007018777643199077476575139539227318309118590770104379746721091655780444894842241133549220465936733223822575727244890837421628678498059383629435048879691454573986908417214784578973595568274068942906277396398876642138559894874900583093169956391132521152599506630835718612216502953981541027667402564762767707020468819404478277726288067400964824995324739978671619154615435688705475473068637999614160945492607290784287967287916595853864782334352354529449788524956795716737626567882007572726570909659925402733660149446477014517004814456706838116751988597695762575810086980040499189053271492703174138644028845031265113440551662039581085138846140443060555078615891861914388882609873207252321339906846332561199685297244753357006493933002775004814245773500709345233299520036436109199589747343477810823139467565859472464221357121743151051667346006965160926681598360093303410079579784966540585922975482336840892435400984694484953829298224526521201334376882053362901841916150676043534074986512516394904038853199374434089965029893090536016637576337964172539432199350234585292087981078990703363597893241398528543201960947152182245641008026764892636374808886990035689178663743221458085014859771674807557793511803440605362502210255177065339259491835978322622310919876077176584020352588686075438604563010449054538630033826250991343700094149415266035518652016002445618064676465492812647461921582468036549722775909899509620478112705391465661281487709213452494671496374002507932447547131190969132097048142450269846543594148083256029114432443091446003952016773329085421512236229066467046353785468451731265324808277564530884498409480586413030028117843079540822956086660016581661597182468893054640427084741950357192094337099877459705459582869599924325939006353711954566698453356325009891101619061685967506219726187655539342528136081032325228726084153209572179071397876001994125303896730022005769229736502973655517518152142461093309747326808758344468507530146799230434897806052396092203900526789421743119588093077492251712180135563068718559018130696673152149843891148679357240619817012720534392283837668431084572298136484579041886191402460494251153721183357719105752607379389742968653775046738935586058431897479783853309018023972580397619078161889331858640188422198048881674106637151293637907208533073679597641367834072142214472866119819710118294767914744896728689904166699331337247425569630271085908239546959464234261577142593860281174898074275013929038095267144317051485389376228078761346462408012808950890185699745690079229425287076617837041113924909664220836994993434671017896627996825440671491941572332874138052971550033297942746639507521551949768251731683319573926020689677298739678786651497916324484962106390101934431113534152948054908766379510671124541072906042150454764434282313105734740588049970673961783518964854663293043004608879273962256241606068874931625316817537126849721432818886599378573966911881211058699890969086108137880939919192314683364675403650444308462938157978224975241156522387955494144131898439288854898600522197298197659399842473706717847533972764353691838870512158914907313801982971835438522764506204404280305299416759766539370090349016285644439652910466563148060517016412094745884964226998303353563537938454562931364300533535554403560433191144424644136130195198837668786170528801504294990671041315731772354596964452163318836395928356247448570079555957669194584201147844586078438969836088817287133042605396539516663571790855747571699048907052270084164800924025785707905871977194993290001911967060662339563016097490252112453355654436243126429180219994678210703010747124413389031902066737755599106247083043144093967728873473411679196672049989823599175367663249972868386550956218462458341085285925634825424887104742614230798836566906419329785092185809497720739274364766263490883200255038955589266122411237917508868475530896792134866911411291068040299016675758259505052656872257293081498050914920034133639603426361096965986178113825667336926379951621147832626691518705020898475834871179174212496075253309217267233739901940905084924041682603644655243593172236233955489265778092243556247480612560023499069840833663020344275373178343564147885058140202307124850370437595981035999638721805118301011551594315807618822505931395743705730345541897578755913070562933610420164451704085653817086775865994706786177763513238547157374696971721565863087076234201502256369311701892724861992254127278521183908839949446716601422228334406775569944803836204583723700247532642759655986870851182828225987897223694216605564149701557707433775845789847538937754431806610924773087696010106819874408858352006744071203306589076461242304777811338172026172680765240714445679757114285131087095624181549304487121898037755170654140870454580632007237853473565534903420936757216781150410764307045384682902079691481002710486932000581048020172884411605361909579295863987565534430739450839195718963247161932435072457702430248149913648467556759283675006303937171165378883244087688617199702084310682449128357757675432462052168558277806132745814702155556257255576484574633920112702772221299269462522026359888187265728676300248185272768285147277774694965061731135053035802424518888999494257299808382455220912182704388087381839935502194826712509729338939686174359320003556449884515653779951545505337892807199703032162994455751692833281293618945817800647197709207123292585237471508245766064719214708658194009499680021271048702159714078848679505602008278934278891515086007395908118101506362527313006475249745568947690633880233759162444613417776046825962772971051297169778896226913380814284831383528977213258164884345312728866676978672931440002869090131385525958632194659282737011592727214853380643356984797072851314058777730369704858552785219573726796714760244768378270123357398793465420639341134984886563371289536389214798264516293497905624801109556882967269579633469880454113152279037643363709711083829025404203663242568428438451577457538649541993925475031640744518264844995114973853974566282730744449473660016412959367924251571613380124814871085623303228198932874829942861435687530220514425949343088020201447189414540454080657537611631227441490338128682841385586786816840025194573448877287650823568831804269813171493368959461818024561731716308067099273807377544556517349863140953611512703235427217188556654217906645144428554756068828581198978234941142398128452662917682237458894116605282160737151592390637293307082350645579820026582004490228741747967593242993175522795967533772207492989474975122678342536928989333780540995172265488245994750766446110845956214724063890276864918016298077026394470290207735130872015883870484709297078111180820901731311461069907114624845994229994324081653067141272754756200384528995063899055277879235296799103128294173303519237769802390925933408506789557150858697487858952959567096961101628537693549556177818500964980740764761100475424646997053953232071857246382921655540728067388308893040284170323739882264183657925049619968813668792059361664857069230471908734725693464993663635778548482039954562434306863000394046167904353655975481922742909062135954755826974308164385421804943343128539905120820482143992643691981155196201048975008409069774412466393988554675850274326449998419574697974112134725055854640047372861476289757098162765915149123971742734331663971603030685408089696716234485847273088389773688440445191107225759135647732126229022012817711981648047698005980364009640448487005262320446717161155091361548258046064153880467709240915483715280114807712961084881263492464170014814278924506867270293521660378488642506353536456115582134543317081388387673953634512421292733776817961533219030146059701039181915608860600451219653501410825953326178740973103960240598072673768825440332960284180079678002829149086535586550793092176546823785742074409943548711257065608615012294339185136330493439966380694792445245736433634326491171470344009396897730841024441168485480826815217604532425008079090182998247680667082914062534872319544469961205058491397022172761350044916695043817416512298152753559019108303861532357362232112621914624812797905260755985181388993628684021902582761192141056629859019750600370140793854562191187111038350528039390648085342911053536814441037096722857281283353473990556149015955149052343592812106183430345449746838960344959885115313340478361508450520453226517360267444322472204898449224940377036818596695997276755463382878833530209477939428133503732458955546093625096805904404203963227026179257421772315174696861716021275008406469192593544006356077378626179464151093657674363137278435025003147794962465718834958504974791126745278374182736454863495982112982702822686786900775542477061748635426769488380828519149364453357065159975897553655932559199625112654792789552455425411566764528102125271458829025072052318116044765060111879536321408438306119479136288929581021591757650605886651552826966075786996391210754451786450647842994987691953681292414009430002434749043778659835224637392338076959445364375526366015015462181795765933378762589192146355169690356511509324079768765295570398852690171467380328308428971040563154434013184392085564728442486730272258648984725372347505206727978986118329410026698719041759379873394285765087982401423717118444651139151344947551356780584061574690061743618616651575786698564384377273566737358244409530444526812509005677044229286900807630751346918265498452267369670441090539509969582602451975344178657789628278835267153234794823618380665379320754476439748529563935958077711280420362669400675970515422705719402276333350606429568731087615239516600749525789730825741979243901371001040790542851090111499976474836512198848759272228415549691537260837923563295785807134923608550889148045711368289837787265097126320275453201685667259327759789295498526137448491359751653528627295002957834618570518344836704780861687019535582952433962183897211124830625130399017997968934791643961567485092030844751817653734933268599120923321802392492532586728221877455326814490816348730190591073362181085752313918668224903247294610204256596108794358686052427935843368152934077496342622941746566303002378384253021071016037727110215205378411555624303327023865059183144630874990936803881322423248600869505347703437431662346896681431237673138880599252266207095162404572857279077358098943528713079513806211039864919621840913570060182539201384792025277450283946644430016554671392442072449234063911914089761764223778688814884795525862116614438637168995802162916002129815642276787723706234855465251262319036739690696242071917675550943639442144871082395374589092013109823438967222196543854326909291454530754791026469877169044939511560421339097637943445801463853770622817234497470272412020153926403843748634162501427009062274185672598853864865890033704879299481123289906328824520140566457607135829702386077780482692436491832720834404279942682463582769025373710558937238697617557736759331868329821778322077392181061267098472357285894196720111885628176028783859237507029126000907505686315976217163909022145387751468075945046094926435595601273176073582155236052732972544427529079293587487981568470519087045501285686281350386664784244348908504772597382788472238921967509533929157103533743735713875995697652405097019516728192212385781907768331781735896614380814458582190206925576811286454844755952985517307050883399391783458843391798103290679867308211227598643567936481025897007234057340653299838091710438975270982572777452255769414033243529499883629387475543241904465593455735735923900967933776274532072102115167831299229451296456758119821966009800932821364876337068419856246144088259957932271639272303816405523442265326081529497145848057259935264719775328764994886953999445535056789322203781009482522728119932388193867861862103799594817581839411579411584398807411683357843942605832535650980371668075063628946437007126150621734875793762223846608476059897759910902148158657071653573459087451137592223694475177948880687226802305198921856232250193496647363150952448774979690618992588720391555386480759173424718998604645750078467750496956387063185041988723056797181067816514206695680283158055968226654048997804435296855469334600731116511698480994648504325121750972531720080965934619289162164004342523988675822637876696240396300704977247256972655038024609214742532390519151697402724627768185805345170319035434564744671210612270663388122731882509146338701275773516642714365214451075252641063784917012725765302231060258100125198558602895024167349223852572972179531579567622537777109996623328039646768122851620971100968909172284680687664781028244156029399636104521032170588631630182476255469401315651374920893909927384661104947077143771617589217025126753442916236153159941179863204150196056397298549620249707492391764988919656081202310735139310047702449431909597362304810985767945284209035545861261085290062209216900412682169109646609207782515431371343491839875788416451270725470655006326559204993008095899917466877130290874762462620935850548426432786672553337398372630929277349002746804405886077433058876374421875931488483146755913065681526823081659330130647592535650732702636827500008659479095348734896397487524591585511179529980357318395964140653301406919573289335886283884990902407414607666492851924790197045788618723206190907377895868120446809180250445469496157029342651062958392194317635255962421681066425240279242727736711494329475447940323634155512898207381771561381776032636978704197386677166236899699408021464525440393070402788642691378216948720985253143646733593908214482401824543295497210017706432407277524211574251662377795419038471614096049244669539080739685441093692996318032127449099351090608891438640874123568561217626631626323644294063769990189752481871014927967013816547475814332903682460663347736682864528006830575261027342587761836539801437289169325988396691043584502950418596249639690190142295374957219008973238748815371232150836087927344909118146778601722670416603284108404329898532239418628460282181333151783356978178125009108373733818402614474342855894586320001196002907486185498065225038272389639323351495362794715484933294939618432614662784203795495204529543524120481098558330208145300555391206387179075196730684415997334995749956620615749035106721892981943977211336686535838295354268853960195209879110477255976393713102391320069924491219050444423184376364645838540250086586253434159511043490060667094679195483783520477264942166114636673211257443049302323011980515311233774939297695193735882763933876766070149253436861685270948902691403817466149490569298230183628324406736720591142620189326335012875169102849734134093380315335361116545688949524430502715735769560596640931567161517123423978971182837516962806644881858162423203281546125896359307136770647398506377400298153619533652080568030319823885299721815023657587220709247695115874456633358510089460560010801791328674208759800745650181464276035307626905799056069376684268350197720859445379116667405622734606767652341937267845232069893046206336858644836311971561823622412542478296686506748253970853068889991921905113283922512624818395799853911630398134343484723295846595487785287579010814699448666117643661423912580054026669107202787064299959898536086142658713832690733453711502877844927679688306158346797610268357363677197820883033618127714833769173676928089092714991607497680795261765381689366708379434944922153265642482751371123823134922387233447865922882691725314909067781499342293988536540542070604031806784984624863275645484495066659513950128476166698879563945400725052305021031977354941083918677816966164905307516496186054328829763112357148800939532748428843796586711720379683285043552090136209078229369249015935790061070669037362681842494701750706486684615157190316561817362179281214570549113409159546140735629109023661232949593688892825003677396505937271517005565356763410485783909924848930997507350905629843229739154754811767137036945339219714056080593006344204370874972493658439275188389070851804881218934417135775410160328534425576368195243276498060960551050611161902177975430377541804817583036175874221909907627715963752564942049941396196412787745330018806693128294702791752207626812433073248752479804081848812727952358270977659744734521746053052802919272595282922122513854286649351018883002974761841820412277548721132565488510087426838920919643729145124127474727258729419519965987807784401021962859342770538977927894954291452895795350295264529748344140779013870277814980942613911389422210241875140769668894315798311926652650326357332315808700624946940609415120388178573134573270265805911599490619968678088809353150645093494052997012675487714228956178659103260161178346790254535527205604009030635965378813167855165731129141432960809025720549781368715453565892193753764462594594530046490011210824150943416461576772583643348027604591686054471632181032265689731422269288342822917179845535313696044202719345000147514062936804144773411291147051451297275639532537797141085241697211754777512429293138239008717283173037603314987650059847533172362064166478782580750408583366765818869248988975044878138152716965751605169722630597555524804005770223917887180238338955599141228069424642063978517444737303157686149419744408325433865933976572782895567088633116107775253871850933990010617522783280617545148329007520104883157820251544766958546359170234647815158661277486241028128382798790549485106333568784979303697907763309521196024152505191371871415123850554902057036637221723703513638244490649177552902288955966361130188173304681423802716301008136381263766949346492518530396634849412138791078825783438423011499447834966598444352219962020495984730685829436886538580859184260861610029005858209494669858860149244609198679979512777185657911119133372374797213186312356366035251602031924159620696917749787061357467175794537097334035944400626580402425851451251826464626583266335048255337281522990337861334207480670434300874107479589463928785612259929460611563994545674398205778754568401453426905351596843136435248183823882083649761072002028395645466869613117264273182200281412930623182277881366836471996936891019425252679960665321774061466145297637097545709248901897746463683202625093732835020618813783914065485953052510526028639582518501285719428641716586370741267559155813541244941502360624999324412279365856711826056676840278602940493568073646596066297208516656820080876162309068932952728377665476664704849527411779838190825987878777776173932741047723504056846784591364655039640231444349294553438123954912787031004223192326972207080327397768886728387191460590992911099263151556490100176460281325577961048841039567346923292217963917984838241407354267980829893550748957886376799619646042087427283291759107070045235819455472629934002501318530887678322848480227783814793780137238419753052954134447598847932519955256156975723788877078640601763355010639922697851056894749048340074764427590284052879934692455162317718193346415816232311516375925294964194496602949968497360516932455366816749091744505286475805517439273440899321388887550969482020511699319644424598982418437191699446659295364853304661009275890992389345815418485110195219375434531856653343863241743741671445974252838180074658811509119724844985881674815269351588296263245717094534022566340210039837321205122551883298813971389351083084134157495718451524968437275645288631884163814533842159917334236292242990893519595811106989173297798764678750152395239059659469494942048442886097613921364587737175296882030475903954277250029325576276975190739118765060621890792842059621273250902113255900419948009726572217140723405463341288089605146709349276467469836641380784032942825554356312913657012732623276106807231818342043242425488754927580084196574262964113278130873075868059694455550375244794921210361108355749855363050418896604464227539926239917793702903901675591926012075534101107026816433274291383317226225967816772815107852003784472838796567230042868853954695467174972178845352719427558889908103239153880595303290154953717759561257104085142443522935841586685140230132931387743179763989228455679667148596074637293100645237308854912360135705195652479687426292493822580788342114972401557239124872838174042584969054065386544716772905133617405642012881233711138863193212097476553745895745019224612884392137507578104658641014249722189992812401361777715161346915178488155517691603418184151059958593515550420671969290071539328251040768460644318286714480700988897649771958151312972752051493411736609119015901692083198770151325914796901082210923637223490633353607696516484643364332693978031296964606172403651290976041585947201649775328855723391232589127358703665526422484895259310309036421516318984787961305187535097722565805506072164219122991983030451319966297433555945910722255827614038540488963191344902539517268730701756910243727335146389662121091394152206260335462114807314570904510932330082236587857077285086666208163798494964474073206893106620289013703884180005324403754478132811686382802056272126259067072314194766354002116949800625629961081128515391315196583248790969586137578127738652192786017918929911545834317354962800663810080352474414588282308283030174150496740693829127559863908426924515674990193729018080125390539541642764815671982642979314273318456731337215553490361189879786388924923316046175884660304542276908761532543223526899764468377886082702153921736243737897138424307294273623879866373365780926511316971238646604171493553734516335314756128889508885539591616767217879514067196499034220020954221272986691971811522591968356606707183919639680258410708148810973473647639083764651820952858394920302695750655766705867573468741681601873421664178098592257543697876780872969748879849467577143996278489777516254904024572049283359478643979688390504210461395971207876715592965104959290155252767754156189562564445803259394751633202802284572850872946671980919433219125615522193454828721905671396053727322020081007651697806415307615692212795172420480228358042614661020135962454287806440685172763836683809554502688513848691342060394361668165200735063430511260513369092606218381612044586542744940045661101966951483069388655742352534653501926195139714134992022142054035602666660336386352133908783763267010237457382266747703606157145612640848171043075961483430571747273945171179232896455191437850175619205372204033784437532228995974432596564113618209288832220195476208462426636313843854234146867237210286475352450042822720783521647189061904148043563857171299678132031728275146222389869290193583254862209155125200798116177443432395513674161724899369950100207374187555722244257941853730846725670329742318499455534640492343283674021850168652911846384608439345901575391432042596487412778216828844254498942310985961533758414561667927952659085341334129077314290769080692848908185709475666868599956902724745846094702020706223002184313111653414374274909031131002169674149044207210668088020812424455397253426683804849758657833072444421301579868913538262898559460178959471917785109067564738797847545494249462122806491115756023262371579056239397555135067940532594930088543554016507136586266465715454987966226555113570010552152988197472871892976754753057088721864811172001450888720973520288462390884076846594006965043744002599887511749051556105366686718235630975985914670736222714227056483134125031084460715205345543145897027501243776280355788741648269513359771271657509165238789623735139888086796016746251050306532058601829625595063857158403729778278506718211474569353054827331894346566911013742049130937126790482912253019140840177076798953279149445033375205147678339019665477969728848061471025959703013594833444161491475578488565464244684570286113842331388735449825865154180540834442068031750289130509197461977655010995344927076012951898555412351169804437719345325440957637491707812945512130850360881605833358021130190102229116148771030522575767376452554372883213946253168406995739063839930985150849437069720854485061941567355943816481595247968817458259184397573537967274427440034966000399849190228239905833917348980643232624525963567497890161824259252323758054075844994317019765449930078356545619021026968503854619595575171566562448141215567941257919640747699621643800076254226800482872649975231664106938640242107971164137082936914362491670978119561109776508350409512064327680381156956291686356968689451374496099127909475504352957397526888816374883337178834576014517827561861889805306681160613594571652189972624066599536294243717039869876255231501014707143767951775345096510214032641106930210735465778228382187400198966588895261172460731840568055453762850900619106525790950228777785253603867845659239403023255511763581210275522987248307349275467384090077007149497632414744066158441345484817905989728586543127120776079966898774915882687826359591287492611845288285599182022369169145332943199857390772787032493182813005730007317861188144173017161922643182830624091731424840694434490641850934481715145666731565538438845711730344718311040638228644640627106524851356506855320653990903246130164939261765082462267987776329858270541838950182189946255763363491818865195867245477734221407339108565878838116138478549186396069636246316268628962618355893466631147281819101942789429047932037496188332248852492706652550993704771999842944538959159945478916253670193193879762185154584193515851891467585865012588095701110763954912229599589195952616259040370697154608176765354509742620609475719534064689429887618291907022934404939148917475396042472640971888682626552811382069171854157246061072453667858877817591610197933303791069583117413760797827560908407810231983170336171250343733321004265734951183238933844584181686292401545456997050879473558485006887925553612349702793125192931725073274009452091313817974580458315435492242114257094173221581081748656837879764506890434703270761127574578552145004412330081382102306880803427986073718142137394497158939891267351691331483585711966124598349715067669047200092598134298728825568357561412886148115263457557300507703116813501263011750788199753401400834337200067110881030797819279441326410484144239189719579979624371817355028097747165458428200978324873779703899083040223445852755557695188463130960439043297916209526662806187634507325886877235062345692895765964286040729194620868080737150323334019891492484727700596527088189189938854707215404485124551925033054090272196955422498686967840256529835536229720099346932355008520678195300493265533691865967200438128848839091277164733195773417828870869814975994998677353407777126100332770187731787029961506447287972995194840829816079817974331837674334778215093611152355824483316586846682932289045157357092586002271525237592359859309568973660052191725037976797087230308656990222675637170504223123884310122780340288791224390192576570742682319925943211673353429668785919512679239376775019425422629040559247238478483308406379799470685314422771883027580254730890057407089512363700734117265273806766846230927209888698300361611214924305477282692723632828496076027424840781342987422103023151034203081112747441652409496309415130105666449313949448239428888186135129541767983789119582368694630682708960490832220784895031576152461408170557878517330985623882798583536470709358106857363451486525929807947780216080353320457855632435170037807983006868946830960406071078169536706464203081670990385607124606670851433520138174715271577561155770167986112811057899453694495037817620781976124304725608204425098280660645804659785789893671696650083288195940117205114092099754341558358553523756437492602885875419802861064732020467675749040817730351996330631954662887007192557780797411861950735269822094816348017114491221713297887186910227230078835247229179944505246604299003647620910750357206768679245485722401611992063464778419211553758380397505054858738742082920594247484489266300253003539535807628502632348896758894385224922697532567235454111983561908726342570719772348240335199141712663767867106328962746789449225414798333363779172940509235459141653652576372113919527281350336601312084307834078098881911000598690027727484128496283003773829671053691736933336349933832229858210831093285803341129672059885305526156831819944832995509520250515163706073771671503237950199352352945046722401504029247597261386743596380759057811073026612872569153493793992007155321489395117417807528799359002294694851097988429300090026878555800985180014688637623717584701825293940886832956224713691955394254030072884873348619674715428982650181993203271246626671527551765760008491810921207133193310242689455615025415598411879454078279899650394625573552647858973418776709648575198607567018937248526753208954660128016368202119487454045749006461529379310340775480792909906969191789840885924746835759232647847666427300096346600165716693294100870897550943524296700060537530238166665411455689659529885856057029631774176446293902273779914521352166861893908955569318421737438824999215968665989331028399982330192076055475924338357830055679802687788261240317803976877755016996151401280237427661969752086156715178818717054112174814874433771768808199306644450638931500048778229535075173048533679375258096214141990868431664900742955673561940717163988210848617188598858646061654366632619949333744682606311036254799556907501339101257883510427637756402456033072360316921123410596629149219014861203903564905090440427199354662527479988137199309708526250570955039216937765352176489824629464061448951428399964613266396967890579515977690327006086115132969201453320774668912646407882496827436957749500604440802217450360337587663806690434716919912622567479383860032602822191893085918793710082342231687661159488509482856574449286366279371139398398153749322271193296704051307720377806845447584824287010847328511696933509750052574923617869216677457269180249852495974695572497543395507531218643377620510795678112957764880262931320752670227671824623375268982902222627721703449883872195617829505975187897346080145260538394186326694199162371443165104779329244253945356253905957200660252994616811694435160621973200810980195509056174461148508963003034144993049188110348482972125296092466692235289228295259931395059537143405928106567116297383336230509182070535547822941986068866789954439184411695231393647098272749858672109275859282933371934722917209983016240905220422316159721973720124760553219582848456298919065069058899928755608210709313171175944778111047855306555165424199725905834683229325087245434492104611059852826224599912751517557979292599479000098780686436526242420351022002216124846696754036843650099110647162145969122600873516639833887351832670564071896243701607398445168290271181390683698931119667157466907294475117505573084755709066621928274647779892815848226854280113597166643640630945460072276368938243076986035809609669863479381690839592532250184737606490660111254966307653013694853335264575747244287797637228407954706206765771476739516237384366070347813082503528403272730759412567883880156918893630098671083115654433703951531698396434286411213641475448705198772230444831977415030316962060405608817548408582450331169180524830103188478608506659396557217320129064806038576970302200176490774898144318627469696876964964852365269468183953598475417331776701146970696566207462611362111661598158616087918990839612346828496838866340569641009153015708784987507133347097259741370679649856810406291984638308819478347268104215436386772327759179199569901662967384263455229494793368067331598799865111797409910602197847169875393411874999033424709250738430511909719038066390227142830842746296145724637090290217820240643181180122536659099647023379560692035349848269721841168638913315037875139505135362862577001058446952547591535669133628665702327482575597158894971681154530788127883253841138602820621168114816933652856605482633492431922470402485570216378412719142266909927472481334395434576857707086614122388385554817047703148734781544796081529328516452864316230156560703787535793309747491928921743724806232291365950275247074294715325845158489404048638757593769701067458064439545804467585034471959907609727600055849079763861249175169406678784669584898080152076732251012668974428728517791801271652671423601877726463714894330639152724829259552336813235060744015188486437289349483609057604312351160252442609028120237182578707764632377356781208380403479083503401185160223911246642298121197006176247197504890215237667402952859504754817772293668784972122409837307743802303037290743542528130889705914463227656941566064273326349314928659849772539644086088192389045333479195123319180626646067725472231048758399579530347495416016243274409109196920676720888585360935976870579743617806935147835839721502477634461079496662255513125364501130118518198961839185003741051735612635059444480408306335236307634774827209604299244557796906572043273367217646389007251521920212136106601363669233767293459663410810475101061711625821185037380970669092071135844407501248434402764030212167535050090840921380877312780494346512912778996864488110169225995072552778600196866346643912880576341494796931468073929476205363173458299845806904642261835486033604759786207271036632963995408374409990663906572383707945465559835278698483117737118417762380428343284982503538113553439943652314856640970774146752594920049763990971449930931122014875096786576718522392721157318686371261390868609335673124231332061661766205941481863141917862837450524272987922886031632958364817607091267066158940024612980477380498056593919182569681556403149203035717011755073220380838335733602538016974858907388715663914311441767134734576260416252461820983163317090566777172713556186653795411535165984416520771427467334288413797954890735611231825035921134240384446234846946893961587851071298952773184651294549761326229117552067486383847951591688963688972565936543126330860842627478743344949012819996080230661185154445927394391704994343488195500180273549477811202922346793975522003930588785219411370990707854165610676546183959770928917762784829451288455561996933711571752710908959986083322885044008977801923814158701986147603811664051379169309264094214045146973584278189041902491095556345728065551631390088089152559538539016907148646433798288788196194134953005730243677825322547214655755694841878921625119181922620167878824678205652606405470365367106491726144108909220103761437418666267102061361953501108311163368949829197988538873709916413690706042657935188896674974236813346690425495455754892614287735341033638864003795461527921186148138331789735782648866158785027633211340876755381731659556625179508511319597966558472487070177737697009146362509119960261651101048985457227392525230275768585481778602264245039570073882706611886424307458706540683120437404970435756555331226706085594924534190154643106223328142345415470480353692913146410190394079855981691591445807102614926964638642595766515054147700296589912042924419986142482122762707787721076094218643671183442634984204049213702223072052474641939467696384258602000135257686930823273391710029112473358771124266411618931462071164908176563627597494456315684732832499380426946873736207528714017224068587153653714923823773008632512136855331633271074815720721512182167965816831641732928146099508277415047976003088663369064062137766614810880667896121919828341232220949605774478270553804874315523930973593596682069006114875374151055730324678719777673705506310863201185575153214211928291785547247726534313880542496845109904995358695174861103126006918830926004132129866370720230291447433467067210513766985825568357387545172963118953226785929107180461128968729813024526246052365679850739146374427242634484876969490770895675456412964059007250612419053029320686131367204225384380804073862794634495926430518176990575514937960765319570202323466461981628157534162380821819739810754688859619040309783011352349094392336302454478304524206259123297168076297763584122337096640966133889296135403341557533240358535604723997347381503097467283580087567764143517149838803790920680419697697747546492798143931461854486618488258378148420932613062121358473096409707814275421831230135759225878663741095271434834353132918417434332473420290180615792271923317620650858175403464216903244869530789256697591576656590633977633798978275072813224772325517488324282217400385423038699574916679010498192064179388887460675964371882149801792079901671498950184180182537250142528566949174119980839186433980255458737290402601198824100634637846409363395209499253658170420633144734727404675483019898815710356958371725397494696018180140323223532703719591066275123906284860898327177878192819826570142937607811947587621716637889816290266227300554219725065159699415138072771550046456535042874361942219406636634311101031617118704496495362793962978675337501848025353305324334727276987743675985364920605288208316968298699527071771185655960321618750546182696644529013956562076982068428777748300222199231363270930574916692756742667067641208633516665288157504824006924251627008528216983973991649383488123255830797384253863903907288697247589463320894369555007166206656504979512421525803559977996639302521508218423790736642243502840242630760017050576186741383480539153442121097149946963664341415448731137803536014752172687765294015483513185599890433523289032863715018020227495684118690633484535426395161633711167814186150235225703811830002408693764339802962210716301179547656565501348216228391207426640160154827392634803756053157004548123633039486673443081109524006887527027953591898034875723085539541566130609760127647285878262559635792137506483711867203217028654394123901236956331028532872715583935277640941324222214679477507215162762624837254533419341132066725861493954869242150810237098144223635510849458847149022278904424802117861561114903574364685809084170868024762441868101318615265203059423888447514248483432013047085970210130373740499692534918542657570676541271784037243875094056809883803784924407145248459350563791398499980676788541417080191386546318239889753262171173491961812922631017765341467777432846906327722880407467001999332987624937932706018718325744286191761749370625548683928766193188310814844769267453774811337061367000463889838963017628973872540352967524941896169378059051036684503889894047887737237880529688455586987242105247682761352662697569606910312495520018967506719138956556619707095574901830580081973853231394580940728690220493577718283551043806233350926556500800488739821415825982056250300176610541954942118485269949963317481304464280939593616172636188743476108472647454970806374095574322431274845906232511544785332576901920161080280706464166889071983655998672058896226052437656044793930154985908008830503809428656048688289027969078042611964232908712901896644132876536348927508116982838089070360676827642486266933520818754388110399731200982816804425499551815785183290492636594458363160472128364458032734221616023471091026790015692459535047405692187262060623188316885185518452706474407034965332643570383710212078863048933035556347280061190779492745204431694075903114227542609841950383013315805611638913534818591244931685024369975016639845487325795200574043393265149122073567860278025194687262653144117299100132259689850285652711561248695951405201470594481971979089382896114907102548384867707580344805016464364308642628714637454494064648591755129650404021034598058241172097858232476227923519274478976921121536105848759309546632894311706542497979512719923910747871468985490260302677841375986623764034222725791789304108869896851541996766974276918597151616049555915792353295083423367388343898544482454300199578120171691108157628621784249958170988389762463669280141481100920963626237617744072600982454767750225789576682643188992961127648259826938278225059698292270096487506144429016205273829999303742153163837651396081610149260759299357524878967636159497352450914122718586218178023260678935146256031693198085062916525793753336572594875220811356873118901561788168959346508750245289277692276999958246647735530613516434305997839769727765618178344946452368506787045831952682113252663957843250964756928848333707959136816247714503857183166447352626933153619307697658274272793013269181571333717092182294977614228145813042114087910222186730677954890970344722038140086865006712431606892634671211834641768106202562307299989876858267440040920970988468675821460399100132915509420496798583533318321258889939868643878683530684548037319158366405767984350065746528883081964799021011527459345590752515752159802866389594039137944996191101417063195437309545537543698240566525023991699698363375476863833272524358564027779935673223547736045075010887723179666125517712021137926334039411383746316089766476181532242719241612463096157727113599377538155448595119622293294934786320025903463798317094476829249168424712013979743395617829997554296760453402077212718405940310049080894783407090626443271330078921244263378830861932738941593943781663237582103303756461564040983029205262129752747901720677942386825667345478084211080609223139360832175552906319977868615887186815651956984457706109663059245075198157876779463656445315469035401579628396634867145356759873053062084791779731160868905810141135393846101857228930439747042632686913000505206082759957496546319717295097124118244598833451798342868919334458731033272681251382119316056947267911534718037991698601591538456605908424282695925851228106252513999893157772928398107375670734356803544788190969014461342441037059973155287253686457690389933202141951237286647535848838683893764492333500530001133554483220025627913176876892467378991179503683089463182107882508987574829905606792479385482507497767596643273120931084333553116263428218131682926090425668496367798999724836772742977332961523134954017030833289509625619167577329916420338327036538013591025923508040817192843406708381809445178811278676886771679269865893590594713231894518549736130434737217066531234788341387224794421587675183131666724916422759352248685420154104479786853453411151569801552816187910140494961116723045093417054457693108494205780282778786566878701013353654447057270497521381818237661818249494850623617614018045273327540143734826413366465760711000124889488475660267989592379144851362948800725683112823809706223996812927804271272724562303897942699054761684862131388478097604273575500326979106900031734497629020053134016732090468971459500281370463120632501247466891934026417829809341584557081394123111746623768679955501880342602913042633180150855894648984010582495063341132352575769237365397806391692059212351872434751560531259178100908524847024796187077280699219343113415881326420512447381059988295589557256542111874080815016804655810245061659421959637569548687173274861444326700474521268919162334796532420904368257694428090733789678848168141407860900451634490397878935239697445194664020807059389796151543922860113301264273348335227726017738247592555716141587997509883346589348613949861240365506056128490013482467298341910689207898503966483870697410292629294114343710674667967445270112942890965658105746568991277603568905318150326210588648243862376714110797231399786830241210887080515751837031553886927453970600422712329719761669031982557186023219313048553008917045899283512962585050856870271145449804390447505626809731958863436230019937573364817622528839533836533745113629364975122522986819245016076165222819236429455624035500292109432647010416575346760256532150855674609825755651711543133255567062608716422328083451180274846921612483316943093862482625166709299303498665137366118488865710683799468011720199947329992364594247469347289666441262552241578843166318905559158891105786347597427026411662081212425464038393304028537127709055589877919948131531561406842360042989414072174561040932596182292101995730626871350156773576248154164583796550553730909989252287975946912854866213481962254910085270628994868654990438029932004295612580007178345915154952302833920756308669007065217363558704830318021260547277084156028931297234673704188079942108450017053125802544594970584086255763264433955021592289567903814382903444098551014656346284598270900281785975626357888569834792859277123212267886182909628189750044550366462575134163780904391916840489689057605579728365541618117879216056838807388023683666448462248477310210232558849120431164348899865577364825866814126583241039763982838486329640699458645154763392902650686749003203970506524189654378495423467224985593479009063351082231092948786418457393505372795697268121617533574258040337374133955928880505729837326555122901941579324488633115616886949727903410766747209692330428294038561375384955072232360151926859759401688878234342989201097042808130895498697112551444447562899578362513600940271255151496270836236036011153391485794417464848656412273304952322467546795811022148771157698365185111285241956041865709430075479335410896276728745178047727101969387497496788067607136545434646229706067543267716113849469343803389279428657203561639514784782451123513337725620686491760513077797922036858787656588031693841144310210668879396133162650751109600129441176920799881968545210634118173676554330993087119017020425348375645059622358478556313028581448900068891619594501168934390037734377739346109845533994236592622116089211282046087292352043732562417228612651223900800999833419497361044220882647443918252847747872882948227446079448593867323808803867480693666967038813081344594551161388443275866983323531203369420779236290780960639235924459132716606697953723875143436619156108823345088113175856895169766060197488653081518493796446475228806633231716409371774602537169220746949209306983673951139841342157335351259101534608081069194387127618980996941467502488311761181157263215990269011664245221401274264861388529403146183053824073503245072290560118885679328497389399454300968465345522632314014215166601900702484444568861862867262861805385715604980577874144468191283890207755238938023598237024254899353989441176885443886149483089551674288896276258089044301078093055749948578801104501742639424561220442559484722006593282370444864195564666369836895331484832325402118362098146028038260392998992149624408671774172030474540062325932163174101613109153017159721815043690727849832673876157102201651770394305660189806046771781101533792796481042063732470954506136797200021420422102347345274197141673915208744666240140577045274751428989042044191044146386785970868265604176458956687789703130622649577328168727707837830522806022821316010181490240959962210847759223938220551972673784788492598607872346456582062099900582254205818802460895332389805130638900938504690057752648842849085877832999485043477620904876085436296174128893671725978870229234862348219541972490090795096204950994401990149355378372649340568304457461477602848857070392021819681596862882789183616982895884887215202767907438833227975321637895230465763894959030559845086670304713593357414389902363038777127953622324977906673192047597581999385001654298864270927849437452559967772156436370387925526782833932722809914268310121181213756118478906358738057782435825900976410740170799017734638509748729273083292535174607821970014480061399529258573516184065730608189859242132142150680601832022774730045028833304963734345613032094936629733485071857082878128316925334365337378153076148048639042274098710817156905712562578896172279880440279277595898009074658827789777197866848366991037507943927715435823814402455077086388827499114030198183763179885796901667192329799655991485481660696453570963671396609343934311964712111765210427701284186907371681604332180969375465782383180150328370387250806559110609733919716819784763207025402899564787675000288975992035359765000031425891672430716372090236931075691666146362113127078331179090242757050830504841320347012110847008578819539440008096671822743674164179264063847761471172668868182024392334385500174038039766921033672362893470481021730847168978299024860258854115598766354496484322412204919968750137924579344244185379995179810538237009028505841551626974681699772541068904539555366107552194444427445721421759955366364419436679152628361768302526339738364683160353014708608804528622187265237861838536964511634700831771198149112130359526709623378880451894468631518762595907266984105426389981732151697205655770788714377207193743675433588633535718385624095057376424179205598099583995790469604616868406666341127653826491143493095057224221859623846193883178234938747040919390669696797204763610764722040354023921960900963088541217230642660545158799153290019492494573273875894124962821006863752013433767865646453459603119622053102040664796567347935350274797832278156838854096353395022237169456583624543307619475704663378100070559197111874678047469796761030541540563482295850347750584566745970748551321366277817762247037424872263744427602931552205779793895371113894136602517242871722825312587353162946498260853182927783288706322645031688614750241938419980608829179760275657676170939534415959029289068602586003174475880475820102827121561946165179723969294594830917410506395207130652800763118160731616400586856614983049100195824926941552254119459565151140392094790375856521305334256242160019662533478796523553521891550480372846506515174987601310122734063004479286157623470644591666941187075752895334013985409318634148094715454141349587787410863459076779345891936883665435296639755221487256669549753443324724213079990837485372532575629012450723248751728802455276681821114807787263613649172426344629770921994415069135639676566087169177985979993064226353075531340120020285728223421031383572786197538786584361074294346557064729518538406383663824814531224926928592293639342243905384337867713776001176652062627757893484887862856555212512446096931320278045024986569283437373930585141508041599206952134040261749086946025737433515276286602127997878921803443928134708763505772629361882890053133735404244155771957955258294113412476696292480125571335683372121606675686875418375315278037694517976627423053402453010214808128816572664909341565190772319302743081822391085462879183369639131077229781674919450661607844135541146306231598861749305473243057117595233988667332225169060448889166785457999709854652422872970109142779576689495945684626000628920940525134758084396847298702642720975527200753253422060040574824566714162195847103106669236234019127622421353363609608633149652727125866323880801913108281074178171250742278666304149015869616188970345409781846919797200232722282763299777899394201212470699017692678839052305544781679364133650877192363776364867704280827091294545859413562983641121028112313026579394909702197913956545936898849970357993193350165615921928802088376681183679098443542257385774327004555002746435899116968297631247177962891987821880878439658255215765676454572985575494346941024512197803041994527960868206102230340313067217588900618187275120776377497740626998243650303469309158885552602932312850590248710818647736367278531170147320741266907164232264422375384976170416336743869456520581223854281948275738629215802297322358938012926767540715092759534511263010143197982296875155323899111799972843828516423453435671990461327121233175417554367194857748091403050503382332528667699690533775034278634297340011738851287997099693030416487137270043851238918720097120251519057053346155381507888608474615461647435614953458242687912778813488016178648237719819058216963877796732133496762105087228865139086992694736688128704282632504259958928440274463453610357948686756820724092285016275022445430558539683145268949187652067344149834245793681822514269549849134922406703402033511934774293354187334385605733505561073673439259928658450204597479855735304968464833205649100115013680753591360566837507409506473934757941994734979856986435483382984798746421574158859173889158525042290886397785164360546099555520994630635550445585335922929562594124229334048583262395531218074394786790061949447522899137652127050719516386927007734471237581455436642136321249241197583142221517307716220054396649971615480933868643188446748209974927776098443023700805790735737989687224153395303310789616987765518841582994750208358405291644487316549661726528711695915368288834320085772798332876756175955036219659971839950229992456061040227627140212739437496485151500191022953979598411446393110915778559197994865461716197950602195800333762823237840387721644371296169932364657486561237613336020257456580892800784178763226906454661352461208967842095757552813907700920604084822992858360801985049608165199594752715574871204031970492068928124133101619293496017834289335728634183895082628082004262601274823053724584736282517613991307469103453248481713561953382728458161507657880097316081358591383351355074228455805418968532056399836344020110092488415257756517229889393290305138081461137980229660426736486562909006758937596795448443974454073832818728844531506895095613499676084774617807480833721009261107823801822592894094296812223828275771804974756591556258789706449163530307386717242791775783223518446716382412010420773690268026826227236831880614243986799693227852621998081992674324573061686308079429919415482277286477997300678263451906329859384659596101388499815478814031891712136912831945145133481109093165772651238232730477119808001866804505489611001582579519604589835130745800916082643467001183946065724869081656818004173195347896208105728237653679025455586347124365135680817547168704882934859244249562587255943388673979096325258207791726347574631656443719253854970966388961585003520310161921194758896480357323139946624886369912772223284113752751381344858030367327948864030740215381780971377879742229901826255789461169974901383735934811627053284118235782604958249860671864104507197617239740176264557144968514747993642455075697876109609958470828751115664287866194553529145018808460797091352903236298602798375710538207347748495793220892507591025678983919410675679930909145032223371410962102314988933618094153320191455815147197275442247474113963554984126279706730516320821525674182193288791152088363046008044080646259661827442885546425733534942815908318450239759179916202234256749328982779561680806960428700218609545902427522518788770325982340215706335841482843916494573052203075089710057978276523759490231915266129811237888570559831742577204439490475201821198489557412844358663896850394529793239577438299113466775474152848700441850643089186514154860092732128887564790309931687152649572856635260455745643017998520111693053371384285491067488813398602868558808068081963465252954213138131803308365187268424874024243160820836161900326165288901672466750473827052431757241255273390794544245931791336434133260548208618478544016122073665511525330183095830753637266667530829304156046112118506756136582212226466461649067536526920644603431022397652482286306995430176209386421368746207574256171387316852129901901445247970891184092736142925721833691424478274097783488940117672665828642974827935616347858084141681685583997932208974725345495308526181327028174273600387348919867350821238651407360095239149597775459206111343217157603398723694111184942887763002514761412643628564477415436349764776891289512407929104931414023472074127887635479657335024822613320056033369551576365873006336445155830889115527322095798085026002954789997397223542429985742336144050465101160466013992869697742716390528352599490486880530932477100523430673031637502893477127680837797956171884125914993521971040668244255672425481882737445650024096187669404847335590558338719468298505209435735001727514334301892796677588212439023630397553995669233942090151133562689858428944524912900798861733794206111546141075635649891782190165062041719675495399795727516652244107797960598320127081723229667993326855582307365318549341785617343926229675191347849574990797652950398755622160383013606900085712847203031993206212297954407666974202029372545286913035477414415578112354181014471500882152316240922995314747210618987737018786010176826143812441023223660428700611505254460453956852094733970741678274215990096829917531747966049119277390030549321539144399036035561987583716386313954567722712175106563543596277803590996469485624215833125962209024892931089061755243059835451059150398483196209879823172721990578673943921565858683045659427742878327017734235342483710453390809481446947057071365095300444730426280313871502214670203487373294959695388457851291777108487083814015000182537690932688194334551900383327152275982050246545682685459762681353697663411960509189035211633837221036068233542557417424561665295385235726704266033262745946506899721496245831928353637764992314050335388183994595481260729422627204945961490114975394544303449728944761524712745353837412215022596471377500240362415048497494247780500665576414862985162017715915955177233957817146755214159997992205242700012877865015080614683044923847503309891936715627898096013622618322019803314445096912649964966607020374609218688729576400168606922816485019794992684808878082258931945402031498742087979547806538890589632707539888702440901727616077746345402634160742350854670174666227468936160371908943442072738639275536198491307359131980257431325843386426855748549003194262730067220709570445603300685924725191137993675568085060758191899233170687798362298280178209268985573137769390604557259674425174810718750244724858342325132052089072010347161371350425307844279068758146396013982666123188390484274598331778333116413175635549278985867601056351579656348634115171663407917333782590564944141428707243409104544851957872059857573512410291603041087255821269176109747631804709102028628392999324281891723014268487061979177038784468444551258908260748481934165721678630963030093216957832042179537310665233032147454012351488079848685465278049874829249670843007657489537217394188983296473042314176726204707500899567055747836139078992877248310855533547551070615473160531944851506111374522914226324192524618006885642349697982770749189556473329658498958201622720310765670307165272756253300713844278408303144117549987291504840276970909120818281240378701006667887848680960553282662783061662247559950504120958045514260002499942689803492957321102865520536847514241777236369847451118499505639965730873279819421591953104313302930470615269340488936847198325434403104449969497669341764741438517065746941068619127170738615592427901944364577249724487630087488673403975282945818071667974777958767882913367579559913773551193295121433023492116087581482767374084781386760460129780976106251764877738135680761085478412067587032159902888389792685906950541383377452820999102137207180654952251351585998583482132500813002049169616338354831988154914451285814929093718148341421387804203204754575645138343318532918897654239408920493017490435691834274346024386657094302939102209719201736184635152860292556534674088908444176138745147427974001377834531329274240157228833687170640389348252898493277763121215897937985973071162629536838076536100833060892365553259211226395927498326707641777228296798126076666477192003708895505814603331716969885436016202483879540977057197887705685886222570604832367809511432633336577326539245235128386548482928991551988545942154690367117650707859445079604676044487801752232082735736693762903343379654634270930820265197076701622510764189769516059657563887377567342152216231147147272006820173349425808860944914445080452721948307772937306042572674026762726410141902824044017253448152261351525806100010968808509012041765136329303155747650444300989314917378288026989122956305727841391355846344299282928912094280855833910398348083167203980640020107212276966532409875556097061332517686758165513153687770548408773226776961693472469660916126167345663811014677699420012042634400544527137298797738189233266407214152190290083109232659176441868282775977906565794291972679652667737099267170986482620246218924537692600893450595025423533786174972588576426102582148687355123053974126928907386637170514490590996754090679013333530344961345230966434673702764716279146187960602323889055724650707380710708741820372499518159564256391606311459118826582607315227518724502522724112605738026142238393256116228981663555289308010108876030060575423155044449700886036785618199434549426986080560878022008950999719433079600513738921531955104287948276286630948516237993483930270783234376754793376938481293225574347994048987217925475053331712443889731613898975502938760158700939839963333404354898546488534003673596825084373029602033722741059586701289236323323013049380236681549476429666967879340218961780457981432327533427699546952591118018870669015705969040918400381494759876042600285617054199720258019792127586165629580935229513707112182518938076407451944996926905527099479956791480892965919958617587944031885215664364255740685152355221566543131744277372772628844814844150753913880718336286212952133326517046579300016897290881884976056488127485692232473179093871274645299392662409689335794515402110953693247376318864019403155736516490404234215319164109364596600416440980945915432275260130350515092936510138779382162015530824325930197512168527961779483543886732241153515432472895113667262875075338057496764294560990951043990503046907949979416134166087220717592597427966053605820090845940442364098782226135151260690359919087920411606605775070750567342966690474427060397069348947239272466786032022679560312354608991166670982269625695719200864314873779163842509803434598809454107181561773087044548851101690531298399331003162058418210020641277094558409137415640654450495647113948411300757827631433588315981445018198161982719444458100536754989335651178554930926040019516042407306489929899932346798196378378294392906084972551875800228372362672541216591649880773333240989532424663964462274409294556034802184440479696630779988110269114819011764020222067232870130116889786400610598600779253718968933476456529642141053140713534094576773616375425648130932643411047622556561349633359224392783984418623862061662953455041024629435171789582242567189738695717680119661154141091916374543819463360851357869894289226731355896932302773249275746442620575011265054558343661007100239602246910313497897207031305332406149206971228841883484306667670348452780276687350173326994596992908906739468202903952672021793035641451364405794860779969581640443141574067247671915325286693730557964060587429727409237048176466505234244358637779584715052374838590246896716597083105709147762884788535372620532209988363231769336512677636771633449987704066147151474211313237766650473969367776561114643845486315172901949740332941648121955299348108473106664430065090248915935397727785038590652418884778421188465288206265520134209748182211620054607857958985360956925324803655899507583323006893041529420009990011656024995405982428691128310485502444983359054511264611397637832355282932925567738049383798977388580595359196581669670598051809642494217811741832197143908639186645957457850353448537056488557179815700277480559231794939842807944280380136758349153313097696147151939603003449812455965528007883835599963100015176466961746828970556273510938056766020796706215278521752304087890376508648794545115554557439164331126392398077141146992270198528641839057079458762743036472858644817079502387909436116186809085264195592392967754429226090990500640605303639133074325218126490706615775826534464485309956711228628549112696438820372696055128142058455068094557842416107679688425153629505448190763786219649904100558572324938264632879396989291153226372062139521770578872552922218247184686145532009411823294089562934150468350124376748235064575141739118092935279840878787882735636899496462183721655119665625518346494969517052868155875293786662754600944982100477028481962956887476582617333327423004694957919648086916039931551696717636865553780621886883336058505543837516242520888865097403913898327399586448649436336979407732780802069845059969922486279277954265060457247738606307335615861003369364026713549874910738967142107366831171970143293755201942267715329532966609245074857118310797863791821063471543238484770134923517243110949716491208018278548983620047267563503614071998355413438486293355059447325494732686813906682140478294934410720748616775848104045557630854069580629570219411556950919450359248507978995059369490651577479134641402715692682210275362003164645943681555029052580786003541836499519658406404476589583626391621060313180206273517947991819282772088418962764072957090547445179049716231312970624731382515810844039310579258662630557522364168711481134385108397590641075842174550104906180488403660377461126621351838461467015334686470792173720470264308290261317201734684076277086051548584750204249392301430070257073638424506279030402788963144868179826151645520546590073320237548239791271775407867681986634810172850155235119437742643166349425973043808014766118837195156735241958644392795474189635430906202916449635193723521522085940234388922582459212558113715097348713973030733074669713531650013785983779254503678063577577971477356994472654684640121646508482942728392758961889230835359396279235166099740192247564673941815600119498989889213022683539715232743661831790494703048392948174116983572981354056570599809984789918524381764746511641985472082305398786625954581680645452691619038155443802151475158316056070108591406352670481778897674741271129080694889712416992768097510669498872127906556505910180316144281180618576908144370595861994266299256859569663583257104495208338762931781252680936939706826093889484669657979541997835116565091152668766817285990258789604459663137896290775697517384437219602257007237666350676645126768754981008268731403383603498444830875624118156650824424932877154900739727549408019239379888695397429657632527683289597235820279466587362491297431143362078527642423303955973900662556501289896627184945941413240749366245429343012000275564451156888929680894484728268073620401967805306397795620111355919730272431734380928069228469197281905230149326591419661637536560231023094510351228550839198847662342257344759776951337610868176499246800701214615942322314511180681079467927320694490710671899449385168262641965498921237390818536742191841376523766661155078708048147958880961429978634131089267111219921961337858149548051500451660170520677110448578547056164814802016505332910257198765332048631369518719547586756802401624608557372988499704705739769900197645101177356890235195513403324495902700710372673304312468183869664536465727534061601246824322993502002246396679687598933330722815011867742164131313508038427775621769601722421062498636161455542568134703308439680648034255642786413719091785430265952938450502177524353098489742048412640950316847401277242185544154485870514348798219937370376299363445012051474067870574423821341818941107094472435832686607815756623190404211351187955919721267964512294923938022571438089048429228028126665702283592640059076255489147290141691055482330536797490585896120314681958792763053678764741581680050446287628573043763656933853248944865914075432680966075772039320898096679611166045201839945383023689261293250883383931173469338391495056408249823294458619298545316148517629518108706055198532235744313050195056420838036592113135397475613452504982708702623127941584428734497162267562129513290650907041576248366790624403046593786643768641287889875834945177548983848859736722755813888799055039496886505304258375658243641519092317277514990290316968964474941552980240142013296535305167635797748793626437547051491196056687909949777503754006428772073030390042236885546985005068365051705657331219004087156675227048778405881821241380027157714032838491863747906674214741655677490367791419412255895236554352366011914734636309513673224957822447580894391907670025348063581578375146063808957214875657379413101520778092530348735566202718269513310222775612416393754055658699052317446819159515321826107012229402761021171078122194323263670212841924847568066464911030231672270342458823370784252243037354762733123959372705711349617719440452963869643832307175416254293687717253999441547325306000447313603792284352329420454823575206550666180512367313015810247729481060003876668324872331542666055359021535151947687844269608674292800811339260630995016722708293962312594275916148381669228187413717518232740338423819986237105715477992858472422890392855603593858900144828751823895970557902241133787043267354524349296647741398246681600638577421693705564368939686173135024895609514968062109324946954243263407229527316930225640521365517635944550442909280505933257492902657249824167324091649122510394552701734182723418961585138413362058402349613759171526566476036346070152040657733872312452557318352422627673225884330227286020480075052464213086464540400412845248757416771655675335503965136135957685920015469954616141773603819881967019555569092637411067738417377430551839117945866779394036142670338766676626166436877522349632128829103036942920290204508119216301971706087050308935286982720985123256852368967838031072746061180021422670139339141263743424983790706180176377396369886134080508996712560536686602360670343535571219400065075176211489136880924852586293422075065387567936978632983704593052777821215864995592567406507028631522887361995657985945204641805256413213868264343571692294832719236957956719409191656898619953074806182077146740005132997741530372522090822744378772261516821398466635785992428618589975270225285071414052612613085359055869152699397783046363437272270904693115653397151784128470005199031798567830545919662613539996120306895017387887427408051948822202751841883263611468666971986427649386453270698965007106974814220637402057901385107741795874894971583181258330530809527811726220579431259453731375436734268206262481303679057876052773743970627048039946919298180471426363660154276090871661481456804225594330722570616551220644717987530214380013704271527886201036902838973479797314409164464101184263501249936666102849328162104064928919488716949857045723837803552886342802795712232902553238830053222469399118874591432694884944548771845231686984113100287777368166004369897500226927394011753636458940931010199090257009513342509558194683994989362432394820185005975188090791221514007233333538038105560839664122379169357685050474501534520132950321627421871914373742280040245357875515507824808549424233084473084288490431342400558844098972175653658004639412065531567104648764713187935389738641489467345062081839998146001551440660518054874326288944285482479573007958742762760860404744185540929959379826339175714773508049143988807454984895651843743703587827963869563729905778694594172496302385036981619770997129386985159467255994745847999553751792506433870763047833344929883621702281058464778926445840970616259205784801809770064328941368027646690448924129900186336346219143227066112609120471270407062745552707542489267246263176604284222580074262716648352820489770552451452494508391859933070463159917647087212019245562951872088235768639746896334131194640460115018466131803167550652943086717395740730621996039592205515719724019199712963069359779652341475149864416901539480334936293003650012788589124787424856361433669389325120802228581792288044994216903460313814961292863060180940012159463157478695986179684472202767086532424963108565878783069203356503546617472800334676553166195097591866744691854484932055003122481667010437919372762821090998717229965850402540001270646440285581135875736147161871669013409567960680304579648014459669058671477681015790842177430040537040539372426051318056054591324893990250986974234330134803324899234720754067568144391768381038630828815394184806596263646096563906994217105751880421562949767649127944186501011746172963801828565255874319921069608167320047545042200304980094011547176066557740608696163549285824862859792544272532434691898879910137214169303021172224400959632384919067719550003982195507034580402732825980237084643169949805143853664233676231764332749664025706502249520661920937938134696464816764904251642614904031986096210640319287753269340208691427432858755883981895935573519946694497246942018818472888840555819261178513854545126131209809406680232365020014095126680689500654616360130643606711166306319036865161540030051725698568571949522023977477961245183427036228151160127236912570032794819521618706047625700260378153634802596510670389671318954069652711985227105965515113201206864563113133400448776248761137462874518425935449626723632055004972876471669950972668540997140580162001359050493824638489638808534396601891757216281127220140548521223687990060340565891764937911517789296333532861648003655703217031428878973635161145274736591131676230912550634681082711384199243734828332007307745819710469703563422205504299295506376316407817889333269852813910407143210755496510509135967999884051757070614504129881093339392270126901245627654951065924782569223101553559926183683096037457280521283472131689209195947050341674365170342607380378133248312003252715981223223823387374106093903500547571401047684777013630231187836747120928556158648788713327301697097819798999001998324804508558002808366095888878790501347972596658355596896722056115946582143493475381420962367635370115442708656059536962795507163576898570332593309316292609342916104840909698114628487013573331908948637509289015261174586916272992716948313685767952658126533356537805309863811344807570838096239310630770846816203028420578998099496852042496784433584759519602495860682536340924240767103992085792429461431815084987518192397369995076881034870424491813808603342091693383898469614687543389614357305061353345832369838402816222101309532292801023525193780962951711179899109131914488683402628250845043689952148640677289966247616460452858724405455559352302535721290802987241075182321409178551259785705698240514810462874053397670183786537426410228401031181495367131137776482703446146544127115961678556228854591621028333260358058197213714385239988300599784050687978597849881275160811704086263699130798543926191989534589468546920899446658087663337016798876196969333019435963243438086130150909925488056448109239012308746072378241720352903121025535282773271635486173951131164002524350863205308480006078769407171100909413281491563727947436175415536278938474584968983855420048138194383434182041347059935468658092461710330886893965648560948172667823241306410492156281438789612118279320300944428745781248085481219704348543998816421989884510219110954002461220166980438053094594316487250253461780020350654888896767261345240078216622276112563363292847468967310746709413503084970090435056510228761550624296066556954887475371524816983749710751406370426454314013608851015541067972625871899237505678909271856415035560913331714500701175339901759229175982068871610872106525085767457274619474164932609903323704917115143376865134391087341274302314171777434234132124325380266371297778877695308830599051624855022594874103798871103628198321016982707361957240411904831763928812451819008423651737432228281352475747310978653670495515906811687172194500100171884432009313551074814521936889806149704258581126875586138667353904374657499764619535435106264590412099000144725395089547572519956567387630148998967213512723183741709180716232133060806464882231152538017990033189309462642786600956879272970393284019057180274932191450661076536685613177250812534571142409232177250804013842675977223898790982902440338843796074276955181583807269986928191424045086380780031739638196077555450245311608040191333973526361189380060907905280638850912877050541307883230842827689699068368228944582387410733767819531167954930135383400155511891296883749322450783899098374240468131990154623654966322156471660741045167332202600794595786400446052213802097118103798861370933356887181013967091082846742288619360370775459043677434754430398103336301478478501644594555095727973567940239503101734641509647939738802532890016596528414321600513358340434695911604200482883073413050923838888913976900581913760280238360238444974344822268461413487551796427984985600989250333887889990018857113578707844462807147768940844486267228624542608462187762799010699073948404342488201441495914365151344889840202624470123970439697266794676122489891436873111329153492463327655927844836698782407584209865591638741910659003704146129039623308800186041916010055042339918784271108190083228375006016701815355378407436555818066086902829711765154667019329736027113951462272740408548839247511574959289021628971142864650221525806262784585600421506747286543644151719508715867638340505285445933157687221101912359088246119976379961087715143731744143550150897644725033741709664604574625967424598344712946683819919967873113702381588283971065651848671187037011664275741448869565467517755708703673291318551464340015844766800089675803545165800781565787716800077626101131325249579644102915535468955520962284160917974868023142935774709260754622546671973363396284237148226030875452415361873963996022608673382677212045383412498542151360615247790775156454561943238025485135897811838645110951159155572750292538682623706241626896008166408021190229832822329653475377333410299044247884412738459048805641951255438927214838595488694325390809153716020767275939646296648745298795984878349683295039152992421622648029564511889854585901499087307473345642375637595349132928532628709876676696828368706084454471260379223747424756687694180453668776164648954522873282090981486530315307824335186828452489020241483244733585249537767639939074513985083712570886196391664873306183936381668032563040329467972980809917746087885210788500281902529515482334178356699693411765450864977407395512432091088913244579852894734269564975199799235386723363602336702427636727788784706199996406457071572673849979149593018641167956296336983148257112119396688723969917954261792079239408692203591920470035849796596877791701820621562187534032043076270716419303321777214085371176226667348235911352938732359518743494213182874699789182764961280200452288255049988845495696608353099165586866962458422100817740360019718743551978868488544510014007258269198743600182292309358681439516764854654202992991213183577908228453949513235772943704658107636641488238920275828370660390422700843137190021998047048854684661047530678280630271567467366505813135200794388266129406729437897749481528641085815362028352258840939234261404655635756477259808054057110396221813955141339081068541618327262759772377356311852070848284402273607175983107355880842768777876703491621507015230190048594865529459852005078670775011553118373292974938080538210268799354526825346611879167406109067726949480077863932493013183764212266994379304810754594832171028516149845317988570932136123829229474793463677126343336328626944672961779900429576674405429840303528921541315934522935123245892641522935078371856013878729525832673275431054887932511257900550471117752870524447405300670166042042707519785500233482298883265526845636184854392954010847218860184502949831281413598511574872286458180675613619498330217566553641941952450127948291238716563375436105607490693298015171378053894780848040446855963671334946067490626478538480941451601533761394720345703019508095175810002316716859966887023883205415577855662736320489771529713014909295966447922709233601758221769151374267711785219076700380483449633401396276594160317913187143148101506434081122549189201592707004716763218988645290990857019310682098075608888887572247892901398288511511075516386125745474025540590417320756575241120388674706873462935365128359049754347801081654963738187812656028703549217323846035939484075286990169767415916091905574297464639326210331803192227198624429617844319319140983986458645002291786003186929116114972570196137245278026584182551687967090715194659864287492024028173124567178426635449517549493811284742030855360120773646890597626298782223185177456468627188009375620057513771826378981086942062989893203213378403576121866744888019939616055179234502444847609043450214518385488248553672524948606862062463676786501769450018033703901652881412741176356713712927714686961313702231216202165657711630407888381957051401284479729837135679138642120697733624404675643371631759779943134594828497869767276403703232222084319753956840971429179721512250357735650495205884037388452943373671430826348906077895754980364813769044717849271276334654069652432021821820330234664544386650713310589661237550624199976030229840962546628057817310214483309076676255050310223250432585254372195203294331211516784509413877905305189811890930794370267588010148764686577127832910996663134017004154546327487994480247592939737049150162093093045162725088945399664197334609572642464083933294259653884226056161678318722877937111283319974786067908094454358174761777551622668456583555896981672399314136037134162963447108360071141143005411821321742679224866388938573988353435897345919627324660203151140329785420045366032481408261369742670564655694814283633897378970797420601526166483890824306196115162968377753657155962614180456662064850860628064484169023310890627555108910044032539132804461060496320612037225806519246753138092283021116821987965021049761187083196715918716794784811210580796017248122890263291225010377171494845840885017000021191799896386992968915010833746550668363678206436809556482435592756784861029640084908382012382750103329748674915291742544717083316902614618827276727339690440338303611568979115004326614487672536491475677046216091627968487124133081089370208911819604708023344785514344441441390026894911246725502525043479176847638757148496560340626602674666811728009896225956717805001959783583509754876126804769264534322042837963901478692656225869632228140964782726858849530154260476734263556310041859904837996809906003634007075661301202596005471962709144171216906992801627176382424334516356668036756917958090653464204278891903627868875665383564569185503901276301245284541150108264334553539894480566814735299697894913036635415614457005013300602245453713276859187297809280819113864129355785353406518593617578136373002366919778727133781744636979998627476318997440528094411663486789566738041886511439255861624953021993384953862184744887644955281237783234610127063679967450118185563958707351717969344134221723175255447597872738558551344518644223659857389124463210609196041062825848438871264013810566185351716186822453392781432312231802356933782410355777004348866220450593812854689395638412679984411432534897692400726724113475529908272336102937003028513550202876890765846580940440772098208902960498553538827550028557137015487361920880386980039380543973693437377682411792848568676976005453609541623129312575247633105419822228479921118252753748574844918531715879534528415496292436003181888873248892869439886272658199264863956503895279983336975389222865420294818524438253258789591160454031118261153953791609820661600340123526948263837801733790174139863043631347229324168416618647792190432037001164361166342519005842539876124151517563193872839049934762111582350121556622918705854492718495472334326020488189558225928336696254047685086237278735144380519963436799207230818788575571767840014867062146056683870663359762997427095366141268224693265691517119102254885867272054652147227220098038579937164216761132294081640947506567125080347920307474911888330014716177871404432255614222425966089166782147265420711052528823522123093336203411604431225301574835744500728021222381234975336555147255795536316854510887359134560175569944575681458743230522254241413008804721743330442818148919751700837634910325211102518318862664648250541770090096572194830900096164808630652389775820622950420487796260431160991185793682077412367561750574706638301638462491165457091201242381420065930380465925994688368083577938391226232140448422426459573915582009370632415030470628401708383848710131385435168148088771123416978963826287116549619583995903723768823993266328991769312902446402090750570646108074691803752394965849725152870013874260283091711467263196331532073400322509315612654935058621710738034150152827125501865037128876215956880986503702017045266238671926945358966443366274158272733503009087405243996465892886999552800863075742863141665011203537061456128757137311360296639413036434704988683245949449347373274195036734656469798099666340914266221455921818751580399113694778142196167382927984073675024540389654549642350615660955081725983410283325299750847001120608987369628168055076660132627697801189010249866344257766536179939189798651823627542940914403142009694600076701815510156093184920509467968616200061760012712004318197698194519459907312202904328815528110629493338267162518869535164456294383053379255568301045613111136222874816640140869289221655401682145988488378422327359184524499640776377788795482780731509303310165540027656850710348250535196458415425181211769564037192810564992186014675491777897511618941111916501215448587306499937448337992303850669526416336439099108418137913363567417752089330372269376213502954116863307814588069026519903164258701577395825862560282752480942538461324862888341892672861137080943546619415848586715269411794372869214604879710486130017134649098203917511338793433520376678706961713382847259995544615380745758576590013277894263288000101455680333150171602148556691340512281163155415914549548543384530462051349728310682499154831110551679642459150569419790575651909419458340365147264253254850485157181367353343883300469565119753997901502015476412122624340692688393300612075697508861884367102153873975503008219318388262538189640904094632186716559435242936136007526788533497660238829399740355023510252470772755522394123249931331974154533172035496643010014157627943239617195794888191799965019836020085355385872911850532711716018660166900857279949817463034699039209422019713154636961524279402613914827007792588267094329247106362365059487550873958775800524832421879306192069651077413826529325094380828509608631367685808855118912101642990527919471042132013458277937075976335998909765374162420671087288285914037544836120553833765427465162346555653156893267689342321793324014218424928377417851685527262400531155894663315979382344390911001372287797841757170733358469144640853968818381323367913140305588104244351869135717839294699043064190928802320727307445227973289761316690339143905448931334259938479431697797704614806561965450372436663539075170347378966248652570169618014113933135616164332247432535471520492564835865130622892640179867511631870657950148483703833265811074417888982229580090150534097142034012315333031354345886109949160522510568266898244499788824557639675238751365015686462306230550086746815957424020388076594804594605674832702170784800685667928631713311199336814213252981476639488698196444246017436092032154031384951605979676638098049641928087195345236131242742650736275488085252949711431719995734741985587693165559530316337901788146801663213767417731517485923009361415298000415456887662070618192860012663990378243318820549895782212929126821961444647089639642633804080273329369720633100969854996564247338708633851344370836716839028536114491204995098450745131772529647908527171471338989035062242554212212343242519638053935319889905209813441116976655777478913373493810956885434439390802061544690892380408466529382787777923242325992702876956369198204381286774377235014574301671200942452011554412012032685375819688407547703289015622828466666158643131734609077988736343820783943545629161585729558189801888132872194800295922718856043146067054863982968948400112686603377539125147402924796058967786032536838861832369717297926664083463822928480718530821290414120022616709232644666560844502472412913964306211620391000876279133139445934371402069477293734890069739505670573472116269280686071859975605521820885470534880917052867139220730016873269020879176312937495325515559677487456010310942641742964888072231285705456527196014878671303303575192594776016072859989888097735761370674202479911361726732723918233835086874814910795535930575498588821023081404501324518450220933361697207154823801447758195988572754574334280036180464737823756361794381598774232728686637604540380427102781341949055334886001878374454671231997019457765693166567057299174676862431703032659968123662556594667596131217966799949350946379461650425753908007886065924775859189322057695343923802230814811954015801970676821213779192364120342566995509025308310438982227409995164467716356174548312970330329080403108946902356768956747217027679543983398079533252261800469676551951083406022684730817571248737954113334559818322771673360268544645063105517549666210326177376640463753992911386485683858931538911882847651847643665300651564242393004032996377253105111882315971018663598826565776073731955744523263488181107134190401740020051749317631258666438254000946664698094339817203117465910198540695541085606809491992707071975059812037146862990594721309553366925268183557781902053594495078016514383495278118833636162344025893343253767514448003615361948159144639920370401409914341074897370803396824891830441099730011295787757609103671460436400611150937562894957154302365400239307881826549369859499245310868458718931987036872620017651517273770081177625958639679878795612668127030788999366648054324447593269502793386060041557423439400915263208772583691552010508507470610030434250390064025948518239994385468564941110696716652903462639702773894573775204394403397388371261743575865725925214116687479492872569405691717731582377130228140496070409500001945814298778810942429970507087086524536143057613301431925934179002497098763716652596962706898456841851337139166191850538664375193185651316232509391396358187519534542380842039117022878507648634129189018592030908719854640985637845190369275526360652856611360818010505345761775361630035809164973244776224907035781866888918930514283251413289319608880268623547794390268520615320068648387255586064490681575156854690459901217888040701091225243959869794846433392757474124045693363295642447592854848550384702887684049041352827971492987529542910574655401951588733845475565097184511781021497062696973152943746699733349013347159146541767519371624583107475758662924552262924901848942974543168346563854493558165944050924621373570481412294367273361935755600616830923250518324392337210805005448012440358025171210399250764927249158720132337872362155292278095304815495910494557799075116493732616916156754490958055505379666612490751942660540712740362210099878687174180407470661177226813150566452485286215938818661556335798146339729981360772863423515873097038172547976643185154006518735946989141642547164322068882768375824571958119371879556867436786013057762851036854382434673322956270874701723431674986777837409962576220305934138819704247817695485124973104413738143417706374005420166264020158055395963275305590745834150536026649486423292069470168923595866630414313969830636183457603950032628979131598658665310062083563798510299570086558618333370601372029410607866772199364148577484717726361844490787667911854789928459175023457761068958406793934263935670903620428631574119577161215313374997495131272745990705249425900804407564811149018627871213543852615339081860658801736039870339307864220324525399172945326612124964560482671679956952567522908679882847244643119767411465375567150687848357160418988529776488781214537641527824749219861454155108996885849167629872150822384580190152877761428577869803904210329623417447095443994478502937300724000538631227714337482352247448882175912759093732371039973490917294799321937418980370749858781500806897776959496782428641487549148200644252147600626218556106613166084802544631283343353544504684419622821292084973818275888173930121998310252784501277013307911945960835165297428860903594934898894372374662407257500742417772307954552096759846141588634855408843069378538259187271651669826497449139212011238925729882459713124449608242622328380299289258106378291824959722967436819706252218659203218066503686351615687166545252244564903318547004786744206742164008938674992276272097241529985242875842646529958684744049557018376197147602553143041590340600465535822268849288506755608434908154416206408555790473194621611243616389988849936455996533483700863945541828506982949610615411078245452695673986233772329158567727780178687588696028340691877219950073079551223610340162414136510938665863099693121531478718591586813458654344581868667941542281640489073568230381184914301105594561710858400580628321015189054858361972079336354343847320529075611566476987068585502851458698153418277715077709932361523641932791006348424494352573202862488559856641332222366578473429610163585466132450577966628307129544178528748939187064017620734346099168419727461746022073328934655597651705728715427792933986889716868441890678061695104279366706967163232520164399208649770977218524429757043967668956072944507699973314506054271095975974796219195797570427762431281736513023331927259471577656106564421330967569152962000953967989701737148067521135102571237833557597694032572884437026917707265809355205409011463711760178288772195733863799403959594599972862569756916980287970250446892468165088185710233951070498757555412947059454333070064759608098661273472821008647356382184320788125943329861497590038682482138810819865918952953369642977257760954850589133257158905801957141713107407419520973350149824236799527875891780292648476946861547793718635619271825558086638075611654938271209541830709961836026527363120621004545521397176416228547170808542914148181216915770512694592641117517765435267947473358012510813374006773307648589068899705861668787657131893765499781743468261375865774049825855363813563422662565600648133881483836606805180489747210543469464641231823497682630621297828361821281215059004842752213919327721258614737197866623548131314522839353553186790242423000211029065060273198071229186796749015784314692574452555650380949821827902487373762092652564223320928665075414338695584736948820549005765172687995225524896790878690527251014642163542106853458236023137954614230941461580926061837628318117003783679754112864141232108733867540980205324176750907186484175281104194466371870251770681932228716568214979665112234135471114849734612063573918596134418723304501025286715306793822718104709558669826720299375852308617018565303844355953922915990774934314418324800468989453700509287963524414511196909303576536419775109980543697361683543188449006222566329382973436388299038156270097351612885384011664060104987196721087611131862789069075784315705567252871514722496072525244796113830945942934655649769837829540818601603487384971768187600154483252705434386909198545821141350169490286978925219556958740061697744028646662615319257099993762008010544374159871110069802580665546814741112566600967994779898380701905158299463575650100022468191648397453051998423487974432323861308664079819258568385527379414854355609702144721418814776102752670160762118371611715314292040811974821709829381684955493291936468284786510469194715447166057389287520886442513977200522858461471799977904713328091576247572172298614833677050402795826279579230148754101613895861584860115297896370879456677060519756060457423131183449296955965223866393115642416457907773628108098949703544705218419545328591850162262098589411588029224128164603364815379486070700543901361107139366045016868399253440177986121986612263638087894868443809280231094899198244167108602011106260509642226433880554026914843865411784567636412990348562359976074279776609573994093317670349051277099806596455696735974001514907199876716026758994281811707187060299280153793366956246497892478295367924762553728140947044993926901196071363635552747229483719995783253408430647202995308465320902594371554083551300061294035615912819557196046985461835866413545802373399367119287474425054997610283004103838970502933893442767254144005483028194539371722710864078565100770427510364470202752669702601032310237342155263731885303623710426820037994159778764503350804809498955870627221774934567562947912973972601185841479085709050742511399920190549176342175866793940563418827667445764654204694123625096195928810676002081482155078906338602122425366356258999388840581315294673271313529015440152613799390745545935035802165323039464733571320848135007955116296632771138818038454525790784681536864182425413462362586042219488307893402565719459491909469707127392758851888000636537902642132423799300579713267524807025923899664104218141557826198619129485006515784453867060073317047555515316694103877420794223921062976513872983585551875575868014058026841536754510779706220456842057377459144146820884869470450595366116907158217625467589426670241219807280584425507961702545325777962452162893946779070729069352222102755740469235385471628840163655828641019468410398672229380808734734503950495195746003034185863194937940075731457846289446604026575366850981954864494772873225275564836209399466542560270486300657888413773842038873061643609319372356637684378682785906038910459614159940533374571457676465286609187525947309804388946456580551351083182182906753580387200265698062168226541341925161001675664665506715005373052522151068607437925951766158415727264458200037032332120170673350870700859013845003968363403804482801639324349947185487435099703081642332595601849580191932639169170568712989174069790194994439366546270462642431406562756607623502331477244329508034849670812468317725197713626883729833102763301245140964285358347908528273652025205229566279158925710892352739146260632861097862129520087864115185965332871326980224034643103073679840398443408953270932470266598881244006874382761521382787543130401383409933155141934149234504675784730493068138654276961514910418906196962473367425816211307146867683341079659310665147097741077744378473541606121971450421571568161791865735679948739521702289269957176300206043171837006695326252681660051493259955932722751040118717971375344775834805585467826791766452845472508639208368020771882496655209361085741920912905776795726321379662968032609510854749360018089417886217734643771107677423119445546452187535185074667106298634224106813618477020616443507372101327416969476438896131325865514170969868815758240328630082138988490774375667340262506043763916918051886981861783832803436713423236097732828569798864464775815688953386203235169415779876619356741594781791435644014421084066877230367415383046900806868838056253654531372101765099283761193558238010753347862787624739774610443105905707911151876835472577295494050135758267107301467125320457458414247831953404365965345911064229704823692393652306560881522484447010280522252721257677112054303032863123968311468381864256172779136184550769509857820963984637925701105914572945645170909730720939407642843264756522934430367246905481705512520981512146175605641723361928199814337529735489526102469540462181329186641005646607386953289755261640679703496476698761748524728010034845285927650921595439558244530428836210578884518946719198666296099654199618488012508939219118598218915378258570065591617875685604158594013070132160773193327255529078761204181369630525700509585972239372521858957195583514586487791142007649727924136780639294265826641804010628928480923588873705684823929385781819049503241344432356090660877612471584499484316695737665611402908963453458903618027847484639307153027695693758888427982416209147319093596417778441403782810812117795645657676876930793945784220530899950738668408937252902926427233665907994019631826207307098602483514397963456958349407609927550991013407516252769234714903828313076432897880002947565008525079054798302656680495466672020903348242453418284606632367899664041924635245268433665897670261345909612436871220135746024372028428682907563869039758973734091283688764645878466954135642875975816488256122203231107757743229670269830850029553616627041747012668068687368844060825913730042355291150730288888722507033158271449615653114824788760142645034351390731246784331512963363545443548241601378801478144467364472867273783314651544400782318096958155016112574235670558041360832711958076669107560089077856095450478769506079961457490949519635787917925358210062194221143892944416052986729426410483379414923702074576470027990840442430369456044819934063028551277722098969703087827089289916847635002097538711180292339355779696028934420356290713282884084374838872781300125320276073854832312497188279294614990126691543953757086691684888657137318217579315295620422975468260318192740123827559506941265922723803004491016843913146322108155426706796127023650684308617451976028633460007568934310498142123672939160384807223798400103091791415663002908906931034495662338110652007693199960190166773267288200284059409785583090898102251448861593048377769649835182762789490750339647198526833159810124827140184280381422142409996324943694821156436939641148326373378097829017128885267738731273247745452033236007629190745649705420013639388896824221993133481326937207673072753027724483941355158616641982297279854933649260896224664613008216838597470799468644398355352979644570330475692983552479419207845169718556663025400054965631409138014755731593551690561083714791165577605285602807337959433727288598619286505247084710983622540975337252114827904025847749811691165925024400780305406797306428624007376817642967766161262347356800037068493913638009597845609214129423496781420278580862847938991848983426621838604132117367108132138862527191108016083361457664597090665431101961986957734603003422724251704069362040262527351328125178377067510286146531467590525306532233572837371390505885913360591277066188015391897711426404559413416750348239840807889396611450758682730305606647263633905164040728036424499443432824959414770508587125046363658096608997631080558326129292799651128906564595838470896564258965319510427744832570575478260035674989115618618111086234163774696666554377633620287773669087387924310416051550842714295861146436119216518252636331754835838289243158914386486691540332536207493903150472064030192296281850001692335071451423634219743600416633519615389149686488646507194895936245193520212575053609097973809373528844594154600715212782290244736135328655088679104893948625186216510276796669248077649941400512882213189353362153839751886379760391184146882061599682847618324160899172052138681745457829841922749409913211185592083864070371481937967135174955192475884391650286218933206823841846424353377975640577644690900485642397783295792596096372853568267731214545206143123854262662017600211760912646235378664861620806613696787779303289235053693261975613869963656286881554322094406948540319179856018441248595536344467860955638312680448868420164563633194073193554722939543150049519930447291062865205793228866552314504560330357192522947118266849719667896602805277707560480779601479710294335538232466632576201568080582354638702388474235298118494601793347119042580151057101415913323809978914472632007150269558039939471698151556352861261816074018185520135014095912509631279280523141990723906000106748324553299985202181520428108501845952643170894980593650406288450926074350388845341760895773294919871602666493533058827457438785436867995811447263072088178408324080700174481142070047681713215187398927018816349081690067179186421063467089565436494043666964929133012567039917062551063493046489685892046890614724513822458850347645800129730247956979624781400415824231943645971752463175463048352664213968697051314424531718298281407394854629904568529240458018081664995241230101973270363549424539728939455422606132230627529234875127357864813991305556175034957940045551871669516357839042469695003824293644204572089023979118595990615640368674039199587093086721862972709031277823002830622420212674477340501534225085573873972176670135077961329100836120825682205046652860421541645934268113575797026724205762469307305959762608839158468897132628494864200704916177287952344808337865247011148442807540036345620088180674835554975015978432916318948804081426336680753146063371499781927193863175385435212980570531721761035185724921767667797664583504059601061494848561277818422091440671059063344658233965222265772823610644750897954316438377794606978068690189715830679622239203889273431410155107079378498116995046729039207963391088511888001707202380202446985620447103218256600750730534009500403847944592947300095511481956627036781865130840228554044200523514634929482239766147179819532789219368084749810745596804766521707839110052346912884673702779240999047777900394856314123815276031876797147343040699623328151241050215444320684663531020410498789493844277906972841812529197573042095523444506530030259404100939338273673935637314613961172723091653437122454915013301392000272705254625077047469676617689084793284626677687821069679486375236790231095075233772152797996941704832827817400016648714645599928194997677428548321899323038053914308458355503196184302254550288423982845438794652421320820542674246120578982556499666938863156337136143469136020757191986871527103888294414835652797612092466719300594211722715891185934393544081240555160079556768592105858319706146799071241182070157849654456960785204626408385284801230865578019009458776596078394970998098960254610534515286416714141960262791856427578548049142441154171073928218309688270557852699154968512139306193491377566623920102550312175957473685611434701300475127980538203106131717593017792680167772446452340215854777527605560130789368409343566616937658001570071081498497983403455546721715554645940503976191534407752787436550963092091592317641483967796254384291704871514674303268599239119593174894604250323691786393658582818251608542683972707920961133619576787967351143265066271171864746382565212206836069706291027292318290515041545907189169893195868850336181752293501852166819290505641140845247384537654206176854975564449768166394200405978681091673275893348277463640683679620861317651050524716145563353256711317814369944284747257996249572830951738331903753989984313054614682174174063797991313530287336558251847347825186694134193104811690944643277494997477882865337930805088200313628916707359140278092826139210113851621915496314167844412024845959103824169772737124634305928821050343168513555408022314062261015479566569781465890914016465697644594980953307120169220762621533958912759338813590106941445732675175176676984850929233508232485401000728082833015201734097488549822563766757054824757026973336675964084594580646620645653276142805957059998979661541207864079134288994425233765102741829301182154257836228425272526683464370352729625589097704340640957990635428008045246650682369795715409174477436032723301720713166838711344972145753728847415464493771955111528772445848840159981336430827223794991936382285061477474326616783285643495788543537891408007134706295211579414624839594876079054067756602364623678679212078809980203681656972590625642507905484210037014420887400497669476824086132252901288530502336896311473442012051107386657024782211858923807543732023468629364947672493228088307579375728527945177721902439020429758986314956424757998101817511080945364478102238231429886563436726755005984944015778151422683688881628338929198859570866961547389293187735134427804593117248454350123180148963063616246695434502864499891703732888522151988116445558798859265051377617987363955744370845079523001386486530284668466778155370493087512264419827834315338462101264144238183066069787685146640766985561670581145490624177122151110731334801633044638549699085958866315468607129148330906136258281979964282699491811087015443146717773928891444881336717314083437334962166161605986387761069429981451215667908671374079706606260525737838007409252026899963820303266119970650612273043297719322376490631031782046568135824814259612712834620736637664331098699038231274961744001447558707777292409707046783539617446117179835450891585667819888642883653592543555400963688690369911500354619043405259910591970386926199546103075737307487179555663903248114517809824581236253740781556053403007443043469935233435541048784620686999276024809563348563409790954439170356364237870309546994123527311425490683991454050302574276653245409253174671425175625733754802365593372462144395272324192844152374417390046404418994918397702351306234933058262121233977598345719714224348655692625889896148216518714071798096640256819028215502106411423501648195555738269401173342840477592780414905710008206596824751219198519389405972214240669636005102102827648751371533392706625242685923022216859562318994722980219066579709725251398865890620041265554804617668507636622093433989097902389549545621007230641873357154325476362306333186325098741504734308758875320389381673293438383049541790401938867394798746109180912589527304361992378238385332864526604579144962655290268172264403831686714307768662272555207332744588904754658720819017130823145205473905295381716822915324366214668716277619471938758971644789314428568428160596049049521874645145213236037662525863582067440650385183739409108539323425086547746331947961103300671054997005162223449672049778199618960739254199729667386526006429276595937897674892430582057429651590861956156421002573241378635519993822089386465582181075205363543999802189404897798198785756010498867489590156562170483972736546808002230997705321553211175534934080483252788161989003534564265449591266410069648893347209563666822629606112491832970859869783281959893274805699161488426871021645658161575030076875299301019660197545596172688319551896863001135886266575931488327112436678169664798687803672375028302005580163240347810344942567735005807737654408779706838053117144233638103045400362575354387739760384286091177193812381996005474825330866284311766640959927431507366487620617235555120040214706008938330201931386311117313679977244466519855876454849066488237206125544549732427644791553751419243379396161176529450962979111630500150107845703065489151664322296761430009459497669334174776702509711725259802521509087970279001517610567425592389008070319051510472823888586038074281263912391441248827389592360290633245678524494470759277367441180169335454389099602609304849811121595623796997755422775435769070221235632298839121280208252431128587730649525240285734287482635903165556880156459896667742947786573301812732092991002834366135223754564761936983323006142054399173769834258770788405680289049689150421109582623844591496201804830911811639859848731577466508206524178687786845562057161449916450963518587182369460044507025645016422118628496902121192230294829248972355576709578426603516901391447054954019559414920804476241720987694412761920990816795363765997953950284677277711261901866252204787463330247191564730098656370970756303036114310151902828987380680452000726332841636175467213451706332373323945063203061139863735170879650396633678325698045470571302549401186247978833000440554614165423054085009238789722118398234162710396781976633528467494188324709693787224670002894841410863942064971088182319576981069776906665671463301574319195841497915054025235602532238778488113856353293793629324783496319819388856199631642809216446950119693410177644584720294023519057124982686339112845564554550703496228584886969590659329645165056631932468911875873169341823135544734652958272733787942399180372260309422816463043616167197578117578571782700314331692638681185895429333489953249142546994908385850955961967287823762787864585893247079508860154871343085604104411942778077401495736849873037334599472008013969907934835215534370435559232503047710124765658660720602649581243100052056306036273804540730729499862914988661658349802299040273639807368397198772606242236620450008713381480990367755507439651986474655879165395403097839078455044517094065740364441154576823622674446476872176720034123980447643608526318866174239216681436606668610558157473593689229134584313149852150089097399325568202644867048010043901550462578813503373359609152690549495863440108144021205802906350467573985433084973153331354405749311728219571179456200242262432950846505902253055995913286197383220033839328580895994891537770612568250252163517844583604651885008871568143417575467514283248941096901850715757793518488839834283941904879949463716931783744091032948772584794918862710833537504283407625964063237389191627797011791937728212530972305013651464176667937272199365985931928723477838846772123697811244174931164573314716078972015707970036327420835183233270019393494620399856300999171073589239797245675472303323758878812417030128085076366110320480674580948034456777114957811237783971298074566989800958586682441049007604999704683741375094623079692318538776291291473477874557462337195849139262576205863790585580584226194134102153149748422268746162196698883314486438689379234125962365369518685787552402038744476484526960975200092721177212672989306524280229469214334760372886271909239029288302633266712241207856293411843513862377023257485746945294675287936608366266791127430149630898123044267650348446910514440759370243828357177956829440334968169824696919422698837249003344608394435312672638426490700422985331158830079212139792313782767324017366299223204176386230524502085686692914457870185215947062323121196435674580159306180021350936560553389896037990833324807610387838268501183903877568559931544761498963131649147569243890513448131664817542243826386553332654107628394024427701580391966820658906081409536165239198507170221637535049215833308309922851549245171447429761613926896649266696148039450202578200468251360370804245504673622775450462026718229499953039853148213001422160307299132665166290394495909314443903640572657422832068511120531187656050829043725555129503515649637239945200336010515009803323688504585335140140769455065598275267242397671575292496740590737999105719249671709344402574288915962612709061545382122786402901122448420805440652647128687780876748451716402358511921575411367871113493822239492372126505590565798563598970006728821541784388366132581029451660576607995122985712900416285626499418635599473806324754086106189284961767738194481334207405860730219715961679580852830690344599373181070742208658869611822043172823699059723805041668324061950961245235615312705225839498964261045436088577759816247251202656969206066152969128453577763582688534031276602840370073252261084563035872692358381652933173341416165350502689696276528650676508428802140455683327279036389486391144204684905751407527626780321850789639129304507707194141737653890174980793486889939600521695303865821552141573519465630948073102404823407726704525754595588225411261447723875879944627863168220923983615186829926265024596084681066271344349096816232524097737232666473263610661795060218303927982162619179165090870177183914341844131644548110374741578034104367251886191479853078330685090859389363113340973606636168726833307619988473092167810622940814659990694266829131354899204092835566427813382024268700661645198697765115493037228593858374208951051190244662562646493020101319525556229595963153278263123133659954444018119075640556335498766903118282422155092763470526020645577468292006667168685534527801786440793715785921302794830267986955272739429697206971584124946791154339822148733780133181251657680905075394306455082433379579491058978865988383449399148035198563141506032307706107135667805226530354633889076139774204799404728422781247832570313872662581611044072534421091570708818049854331357840666490577848956205432511401698209834302871283728458770251161447106651965771434999658058141717833792088555221166793356538408884264522581905652447181808105668272213361915244792337165828075273158440272242655291027443477444654904415835265491782671951662072994782321782127598020116716681417419290591456351450777061610820163582655756968944420076304938536683860169853649551386050596060820216341618713386437049799507150323074197301874871772698138723563905927454122708270435957786984273350055849116534813069769793443583289414170644865666380193332379067373890876932297923280851453856128782493799485961221724722889043147679979724866796404172974612042151590760083983626584478709380179561917440067666258331046509087144387765321552959135903524630575313938220457887857874313446149764224465180823386475564727819099048080812485740785781787517214632804858319277668361056208089327844317864678666974836103696627430175319777159346446364602154525979261531783749038252425810074898279028140130062470747824148766708492561854539494886039545717535565612881577667359187473975134904767901707114277559434181294353320452434631422178702945754431187920378308936129020872979044235564509204172603250100838650630908595227244080447175524892702257576450148624395980563127581744321156617391005781271589918887545095785150095046999561435101115100547431762303600683369656988035971361410532798799148527692355785649366989020447827396372901334858434232462125158452852046780452880778597008087839183313111524713974440954353450111322037041642040039666664007462767898812381019619344261550187872459494658229127432637514632439845616378236850188361525325867790996512626379664196565997796094717826499561151526634040663837868808008780761067001866282516656291863992527912838234414903564503577732285405979976576830804428437506951246692377916951371041456430420239194306718195890370946115832320657978153487327175065153690401029988709347185258056995945594112663349703195971303563920322418360024161683781549849350368223029774037861801361279358532209038739756609038103646512530524448215222015739600920049309725949919761586561595540680639582573150103898944849776068825983756379475964403273368589501747931251600384519995437878626994468625490314828475997861404610145959741310388219912631753320932703310919066735634833085694133955013740405434258522278373133011274334121022002903855993240638543453050198706526153569194240545977393795563768437247879589162634280600757473019412351715082387917779298459708610519740490720598165767430811009114188159142763567720411955297214539896589583277577985405398215587537155645446112673551128258437573172523481778342236922694335524298693037593035942342992938245926264623453817639095486012257633900385852379032115427975626484065650407432177921754338142627282602296668144703996879064225110127561971649180941116122941763743429668182460912869013089204879176310670566540972398993647875368763957811835977151447966485948232631413745826561909758364757598668650201438527725713866865931880902658846268743922682088327532213488638997757767350908150950353079103688133803527120406555691928215846532550584296057832395313863992582110398257635244041204893853276099995424918934703106260059408262046813229560151594539661486592246509111661935237793233814732784962486597385484748930118317173539465048577787933138950027634481940252131220621115724374318590436273655969949767680621841135976957801349011025003803941111434375134968617594734750071828509528564838664164638189969115875645789686759705228792053102317527585618766776356561200999095385172988841570300396985243722983543355670127992781358301889074063268876868979024213374364371947628085176297847478059378266592486365361805841248926392392487802973239055844425954039245687264420893428406609134621870746939403018967481677011189425707310503843831200398737588216926608770694962135187883184804699936459994090255574529164535596865818079708531500288413342758768633827352361666293990485161590459339544156719820105684916865718397186242509400583474022649905744770595017661068799339182746906137618344019245983225557776365529094529336945762193334063292164994123108939130310649328544923030090532552439961273269371402550319958305930900690709959265106333773179924193080302627490651974234916005244902664892002456921869753398855839738988651317359055026370694490144369125231946869949814870842057940116595469883500730530799092887670277945109631963855824570094990607221131262213697855776044646417104219318441390289932065048621556707998852547163056279927111172942242395434720843737053380113306664597082543822753634319839385055219637899037919225678560886595440474968492232200696271884427990923733624869599986383828817080166721124408261470138549744648321258144217405795977032012835558457379441096615634758347470922936870829074379592196692241802876123757246729399207232209931426238690379427724403114281704278028140010381599355006310448310896068683167072190209207997150168143204355676306173969199150966700157551051967285789483688462163983616752508129617592428157569470113968050014037814422057316775548116118252179817981552286539439948313584089924770682175452460163975725500635037934587410283293718482594138627459968121268048134942612226261598296794194926203191034502623586221394518781110147512386816146505529595299758908456572460725120694962798209532610832356564727096022938320658690853473422379637715426658638885201282857284460872973137865240171581641712308483749875058348944599245609416448289672277965845682518350370963450411611711132270157572168574619738662748204561128706262966097785373235275443740109826786917360958923923327920294292393462862584264821296170409918825062096243996625706275731489194052774021892878147475653064528357427368588500617495206764317655014896865272023795864676125168661238976246951226176044612964097056776588694566644134084337501202127128443196260225937520572788172476238910122713944458370434407070985169368173073315316065394558530824516118949993370078811874468720211517648829938089899655274279114987403048713953022519235056248681221443747549502718794536128668250848924501504293903723657548743686090982079655550657685769499809012380065306480481875869232867558436708418734783101061359852032162816522953401504243399262779855309610314532390921072516112656852104069596492201646450630124829385027509533021309565640433561281259245862355076497960847269039516687879886637884283212157795569315344983546296044547453510299366460592419706065569673652136938296688381881448817559804087918820879078057708931628606587308604754087971464226435814878305656519760423743917382285401132348259454894297204102103939944585565131399569319356842961362615266963523052070695552074552730335858931175339895333635210137443968614129648272388985426923761051318306675920732370927645375586571715266589531851600288233068469348376934404293073076339455351991879821570159792637112253918567136564685807087853631106717672956310871119101070988904824289727044312362285605672282678369149035219259429282342015717401181533818825972015156638573801552452076376658845231519106187129414667942207483190573776875058726232167158565747636022954522982370245029283785150180428244347391812028353148741679609189419045135182705427913042468556691894408880264775153657515823106384632226719189600000199607898046731645403602587834737970544536852146019191775574283631190644486602516315453838358422880824201412027630459089339316403848852890876093717172067514654049241198401991401549631759001387714326266032309340570807285210072829117596076545396275135417451223772488325770129952355427748332624337440396550018269413604165288988303852461128866700854358047050482882992813047965709552869200580591348632100849499922635753493572475252005270943979153952021365627018950826713808712559739242193685651238733212789127157261834942511856361597581312393049233851219374959450305782696459610236613042661843775352726324518130605767153524892101406274461639247072830325339247061738795590212544156262001806516854317782241337854038042449210652922371976449045689374033008764949122030905888503242698489713332088764178218628397205290732692229855892501419481415718262137016871254708377895520573956497720685073315838967393927883769413370851393552026184296685480591183616691608204806291619948874043312425658157883939157080258283772970349947891974790606608846942773197285366731042223744875999078617255196768418979751866829093919234156165220210583152297909056724510279601883333595996356550940050131533000409515695577287910372414417973406843202829084428316440269120733999059638095227297370777641162588268380482300542186978413378201590618029939804387594940911334939373423079144108441391461183879166198133568654558311670968245230186424024845320717168184059683185378475308013681521409694926468286757708333645965125874202874644129239680955503058026854346168846900230481800041881417596348527004021406529953080866696496006920886852736689260008465224288229453089288900258705235360185350452349551318192306827366578414412507219451785125728821948203406784521658785564736339917159367120263616255384697494716015979659227139000188859777256082882700532278950697422247938043439469386724006608321013984324732404265654880075649051201379674927543446493678057385772290089744713492995488559288846993861999889609308083542940386960853828207952449936017534495553350944447870180120272959706246053014039707412169642662759552563762705691958507504157273143129754242008892136688343628017749429842109956418459094634382951694590655470850712432551673985743964324630774528373762188278239417958927956429942517702103213053262430315740692317125838279717050715334477852609277824226251786372840327293126048475274934667871094331922755546640005348113504828489089192817376967972747204287100892273649570566283001976135195858154217995332240490416498830777632182206408951661214546951521533251862000938947419527327720360477253745673894549873768728583236460730057395843039577966930577067145410500812260645185431849024443981623999204347611854031287265384515856078203435258220562441173994641160214896356306328274255467208379913430468960261034665946543030774810079461590899602270500404960613263797951816926320091528928875719275598776269483455016106412458591618009087407879405418731942309282576073809658346089662666477146248512558638296136805978910563858881895988060701656009338604277599078395932241062593836721649189962811407193194123798317682661582896520311924303563303740624878695533227797588744569421216804888117483157585243429620360630243146396116960710392394350721766720631913532046490468879892128843146500278828339200566389314092211375412295977492341318605453179520186285162329576678674699607418527196660654363314108216522272495575920512620291273692897944642223275580257810066311026361668173348507216163288703350827089356903863163889146307905231749936110197018641866728030607378369740834494172484417476138520700996012835001249807653325433463591863858543607911433756700342964070917213489474873263700310118985956150862584695220230472126749952986349495563326376137594438545131708982393635301919090088707305591684968465943524676992992962490816091804979462455677231360031236408211887524278559953040897459619606293563002179959874669749541040144296994632866699481437103367110516583846015733405218058147285018636409042480295340178874947606714011404301846319237900461566034123913646838719315645035102956466893294334642942716957567180976998084165763386347624659033936880094585347613596588794199407263196185416986952210923573884776851124184987501352559054838441431568288101477942081934566380333000579116983616561294616590794317317127459234586008693118959047051035161308443750809902911981843394916083522886813985496816000924132042836153325155667956099579424250680015458140329213442065797372748050343317447704360205442423296825638375488322452632354703979284418753634794742966876948289655809526242910273013008815569735434555552564766819172757180743224818944023699048176076669923230025115917425214264071027288125232556061570814508317875347530082311636683620009412986135075576854815204146500771250487799367279621845572879847514575001387700462310526139464772838483018271164755659091076334859181027641910547986395687290650242497570933796084745039087595377146267413759237447454495619863709476497029713919801885588289193509659173870325308029884643299788764501664433858865558971928518475656425064403214883211647917028940630768234662382663395174814775089530586756445289373569439847893292929434294161486393728034344527775449719452993263114615593662418736460312081370717294484719500203178103216175736088081486913522778288723328245581950288744450507257649494334092303589860779102656361323829090810367974837249293726660236630546398188733390014291164496896268502300227030321155291085421439270714776131731544123832138589467060497863087981438564358935761095895379420996768989369350683744202425552715147434479877678161120028012027026535956868153083720152756016371207180979750087009668399188980913401169420273774013555619234486042914124844584970454657654504629551959810997520477206033332067871225699524408148115540898535450576278116266398312237035094690219390003788223090193225814974138768057174442221674087346376361144993614763734454635881451702021705989523891754348950991060349260450875143794455675244035188236945688741654136986298607123785955515301466445371437225562822961389457034139532350075825857696960898748331005787960200446725825844048550904915942558806764727767784236214099981216435103961568237410181213227728912375008480067943124792268870652962118417738773149590022716229484259782019236595729420136677420991758794757889894709241200291440936811160302349907495149124020528243479471896408221888598840026852690484517503358342869353191074978369830233466783419231644231298009223506181199975695339462819948369401288256268440678389593038327793872801280119141158475720362789345822404392964777987240491535687637835092957325735160758442217410195499343118724650228525498043257771894539632396192776809529109659420649823367522356016953894074993434895072369553340271642083986001263321666037371323985259313480381936680949921467022908187917862283667934647728717083009937543943318807535187806602125492722593649080151946630239718466106524027482542075928976076260271489497953667368636971064237424079630436979904009362534773323489841125061143351279084896886031205499758353588685729700515024158186952608960427178341096745700822587536247081159988512280651686103924348545008636831699915548384831259192877308860707070832743764541311655375030797583164596606959309324312327706852788200913106655987906032969343598093307822838014586340998526919659041312470079840139389200727544147824509402643533358185679808783452225615251679435691285790189308448481224152667522148775397943754181149999417704805725534747290223851991955618256430383526464209155087295024435979832706824436697104367456295815579852192391807960885632894951856980072768490582129755306471188184193011919568583358682522462337073133289579160448892482868282668115517638674684940693003710776101760541140054988133676708361245903130046839663042431295512855603704205883058358534249343054870696383640503514622416929969924195044501446237115125897946845955435669217806892826576716654671412421537648686139116165100286118924706630874218199301955402902867369269659112551106969796213035529694721425377640978678904866800770348909801979595777676405478745438800108510489425025132984889151539379234543560800349689229280088682738715023966940288190876959459845460692867301872393305233138281863170628022991261740124478766345021637132512073590212140609929070924243639372345291704249825658679292739343759506170983784399215081106976635829364325057585570440655733113519079596880499101334316606329655353233392152296788865775319152077473659097171937048193148945819343632422017585528026703842685710064968079695017097869449328561843430552427616143692460782627771787688924984990240586890582289208656223040103529754614414207709688960524364922811732716230780169821426018750155805440105898795787151357638029919438229252227744319344716435425939907839522572292705216203998861766376885644020275559800081445203398709520542130707684459651820732948378652344706950529599468431808473520819628948607784669740631639230229154783806709972878133407244209131926003867557369271047585945751181581323943036708425445516808947508138464486475636011671900607030116083881003818789706115759634059512911419492204618246265682714732840973924751835065090310126471933009041835905754948860811963962828931880670207043001679717998981164643605388553110679497306163788912378987141799005145746497628672550788680572420863782504358471892745447959520684054540686752829187346557868913120877669475208431330022680060834505155129949219021809739611597880327904465371678453390184177076296016859482950021261205017798944941952965295521441625309881366845618702346560604304206998943565920940788333751369015384278208304381622631991564779746236958422680223118301671928591371857164376216480424793159073984150541076041063723628947435652462748928954375961513427600563574205937276113704025387580712068886256520093356170260284529245296275662137468614192607730390072885138021924545777919644414967744619678232989028767404432923190139816538477706189800338106008340834246637168090925062923051379746567998670416003436560786945071377667322595584136809578720552655700996743850928930822053338614777285492483044398448519138078310842631606701846758442290794460252120642080460073414110264299029322081812457540586616898779298251587652425387147065474395710349141331098530406917655249634076031542519224895699627535388977133470279619998672200722736142935514631492614699354518381100830275791115385627113386146870547340060999208680931331710287261514795705871463565553335452356342841622381298719140698733254019322725922364494916732339899918919987721371964570679024502177741478830498963514893867900136725754391091644668495014986216679708438670481095155341691636001620733419388903766972820787910541499464484386804283555949295369545253800911263182273884571359354470285388575348484112444451359525307547427139805419817164645349441686680682415913729206638325868373332332257580709384252522031156096610569630956775178125877543659150664981521116936975406906137382509639104526463077555297217264196073227952938173469663307716777338470690441728666782372345917952384881625729290943534879010309580917646905013860422094677894486837450956311830506371163870986567007322053089800502533100662475177153407846798163148681539063623833267293730055189025120437315967969630649578540478519584454833543160006403560570442662586348492797042410134361265976988107135416160505932551048396196863566516751438650557414784422308636818730580478557517926398028161831256061751045793463878379662934827538201147707253779595052668239206446337558254351171592264695220916204860993977216934786800649042938379964373037092428251380302390853235387898224584672666353062084509581366198145336634407343396291021055708406723050731206511997732585736726344771296288393459310619226447800027166582407947564727333407444900438258275693015867914885135100476862585385578365946584269622066795418876812442236760851067429095026729291402236907497817521979597779077720127708180256966483132896512568795767662989071019576153306168024039882500726970306503020570042780196768605443424798997053238680558518386264553668025237947136845145919844152648248015363280091105270151168817308061487181760582603597515654327941828163805831065062703900573168653989537926656694909592936631917473811388594018332283970278094429632299972686787800056399109439233068950113364409948692941571073952409303058309000723454598815119577749377946816588026934584361578608064444619015876992834034638600365817468455564837395900657271693780060149487234716677823398579317962246566282731807054024576919745779861086865786905735187911103349896207965449714252640843330370722268493679882851985130372005054631446689438844989025136608382883510461175228924561559434587599633340547246324871470179454494694972959701523116076934290325025145886201034216053344721596179655105107096318751890780510371259033709321900000009150119343865231299932222644381837086369433478604874008979667907948692044193490533943893964675121275448894788949916712110695645211859721524904994225375531847364680970476443697899836587210302506766111295392551488096619467095444685854783940597348963419788612672193021466646855347629039284269966818289444758117500647978130241491068220010075291768256600650765512045370271774396518758118535261647718938199538855200519334210330042624335131306961690914284310844111358697151717611077775499349309843751331724020801778934216087815968453731185716110886107596882382504744893638690023064669863534699888709573342118887912576994776440173569812147845311151580142111107431505342557809293539746957340152780888475924485628990959534394770862930407152984923002772968055012904417163122287527411638476393429948977501259304938647840604733969631913541035977751385554644534044682737015585881906282673057644813225121836121762380031336609502373021098305049496868544584386042242650779216669947343832992755392015908447068335622849452186829620240432483344916556997147121644102412920943519894546355883719564752844615613487816547515024153915489291862420506834763036169430628127820381221952359738444022603054428237840129404777551142489934779966392805964162707983296582298727974689356941813587202998030331796422121772019359637417523896251819773312352036126710036689544169508093368060107934824279767007189687005443315858766506455382023335210229211971552476921899242467508482253759250245680363443858069363629181586009538222758600896183379521252961266666158034400868530535152288935597786668696552599250697095160327943352817271028696543795736137673529281450911400651135204292547767504739648563937248396352506786075397882784172333360025634192417763941774383743175647767463639142028501043636603472814993817577976950534412284446712026171338056809204132835048801328500764366988045506204010789314444107547360458364580636060039347194357411687006536961168902627188079794989987820514484833343303414999218690345986880882535785719974069873083623596980996724449752420609909472231544234689460293187313440458616935159102780519673936728869660175462244712209585345510116998898207480621599665868625523208323134340593400325968135223891773670723169632421154450240781929246808474369707615303794812632843323306717546411722104610092769172569555694334604257577611125562159706539311319017252992853036652785083109961793286432306998162008730890125351446277584762063051011977728726827948445489909265395942720093943592260716893038069499191401421272291622529415202946856952817959707967307169919082939738879462184503361978957141781821384445768188356817552315100689396132195108672554966001735991961358379941267614690818151545138779307413644749609876095707299198764881950801296803852472987059005652335517810206048944379119027718974093606220960845892072678700061823295535222571415308432467302912796908298741028449874483065375182605335148611592127070007338977937960319474035228469543317239517996123940883990379930798496124624685707805770370388566742896453353970773207005198176968947805135040350303890096271663905517874956893926285316354413591026627812256114212498779686439255976050821916194607866827995849403765114463376485668434889062396673295051712421380422344989337216209110950042609522852697082611666507056282381404128648829069491239097398845585152636371589724669750211895286130718334073579874840141278973956622585855021437808256831789887238970482069297693916381475402976805491402241145820752328394371051415674083763229416097959519747610102058269956846394598325773159235752302135417793149178066999599710228424172335340206248123224734815133584339235169326695819545104098921329285058963240059607282517309989159005123689368073857156866378995233492834745029726738695209160380762239128288229850458540350945848414368449921195172226858551500247221523245148868466372173880428947349815489239316249365579764294477951484464038186077493815783651099415556383629441276660961868548016249454788155442609940698705968596776685212567292713139217404225058563043276548673243405998068441322673038538846864155706456005753242958988467359789691657426509353230461358857850257708955617722445627473936115411336738383835876939892672541623549396673301762463757308047183759496582221183878346308770230170519544626139000121760302773966915496054696973909397867887674885639927051508019517396572751532157214841755819747295160254101010169206099468255801880761551767272934754210139418240047447423424045391046725277153612820966637971478811033794991325668868572232960751646157697563022898620499091068927635437177958334374995359989225996583614723625381784266671027890191898290946673554821145284252525726913637790282807786524092582691487522959464016303070427052767573215628168915799518668692551835868143075335874697615232994598182348038271817290644545553233615468686248632119688106445931540798348845202606124247496358825129611788413221623016426334276383944553623233656550071625811600910470307370604764858736613250235429682913933536345840740276811161562317343931246601176992428154134841794507941033409849821327077265785772264306941048924275492033871730081888245775412816340924014102324970881771698483264321838413961414665664606884351317527159169051519882881637654421182781523719482199059115411133365215386826952915092334545102405355877856450637868845073704323166227346325802757089932448899796330472110666605607045050788205599529853137521406893610148375602336763269943913022225953483752857748130865520033508734438589104344685878235041520826281365395881978673041546192213071469872752556423709962001095369271835987231560347390147460244755054712884598367899545455162597616471065209983250751193450685143047717470318902608144186795677196447581991536995406345286944499030614972514729152690062049795906681692839009279823888659838756265010323008759905535358548069871527200818894270705052651410794183104079648049808558821849602884038403747895636436818865218680134112343878194153551569201238962456533190215030824599171411790243479001654516503885721391073618086091455271700033584489242312513957866985120144353832802363943755966044901980082996390102867663739719032900941269905798349704792115843331681542994465685060653320267401398001056787580712855902475523299645370632851806746563331571867778818274219562372954160422906080288669214851382534646170805318962307797355795016852375156688571918757083676940082566479916914664728592426421421430745117155939201741299529929258172369721630324116142614722788574723057295791747528303569293595071627306264648018217654569742274369645518058968523124452511891557917341883844409467094836908384480961979504378498732175040633595974595915239330023403041350901577131886806627146958847530063912423062528592237462520241996656531426075444181493992985099894844784013742304960354488551836865667469121237508684775332120323759466899872277009387880450680376603789156347155989243215204869104032459722866403981371635685011639315637585159065750780183303596831884876886228215942805530609146864053582346161636755747351032084250607252931812728905008971610399540576794429901397038888166915957205268696814193192283475028602435114458271596743242036820333430431501937098194434952999683570854303572681498077379367954072462642551684731701158414326241973597138600316243652842028689708200278085596078476707340638837093546008740738289731126927523457233534073135443943107889691231930620546916330523806345546615278255528842058671918998645531640514364548580364557931119704919278428847209388993286060397371213076730388042393829121630380905855453497533957131536989453618849800872530098865864234117959360284825341556053454315449338516827642159523628955629650320116654646665676163585656209808794951782363385517563014223064389943779193820439824773448692390270233248329788943342022310230527915486995360142994039213752492281267785231626114677869660504049867742148646102772028837950098960981740029310488594462892196582384432473872533130183582066419516857880774851923619465432554645417819085158501575082995037663462955011314655278529565067975948983294917731146261501934259649824313914902967221548433421287646909552277766311189184564244046076177217248041706376151935980311219147522064781021240850612498448951957840708955096896671811971989888761698892571771262195565855583146763083654338896130256829221385721768922191486150136161455036739153267575689710617994299259853647952393012086455681518541753974967677850446788559554943357092612719381408336565210506276381459469839216022497573353974320586107312954846172414747071605350865139450351673434342932341761489280421480084826638570725531915945690184638852107798503454814113925076437070612440512338441617951458632910627100258024199351160315886578349987742075551166083481025378991056815476925467902406367707215838856641019705243261299839695775071306079877587606359030547626133249431083390353456063821491938846834498735151148688667438287925812383094169323343654114725726382475345043730264525005624562455266956513184267429436143582569600214420098067157212261018506923480780583360283292924001865512430646024387366888451426030865575034587076087721352628254041223200335123508202693327585048804327446960333485700626958370699093530912679622714981348747866747649301139185873114332815709429787541369598915448875633988185903481665681808410870113676784249356703982767077743749701984320673476775405513473160675132361590199408543958209919777269592651340215842956367058153347045338755466992648977438533248773375066458729481441681070931658295874190872442436805882089463379412629297608189356748261687563233568872815343995927255242405609673080306524033185966429339984319130803220314800127438149394573782943755417045020186263300983853647906258742972607160119281965475620984573095474705685355253334492161112868211893428855982110715725946444649112956316576838358530564001723882296551856928154743591624221630876076276954606424882483944578380011989417665817633259727248983518034951833956744528269929451212127434888856511674936421152468755576395131290713434510638326003760017002629229929036182556674210825848472880558190249337022821927111361050256306672005473781495615521380253923998798565467585926403144710790489380438328652850143680118826029225179341011848412397523428369727384583181020715455119910127226863231698086677635115407022421554851306461787258151802281429563461963041879436412534936252903823855635768184883282981782122368756145117428021664783847739740311031453203233276245985044675237685553423486013184742888340927013383869822535072069533622522238437423718000910023005580342253310897302346120799729813265655894983915804666137941414051692167988411207320169813402813987765156394748913644229105641565118883259495431575399892476212382482920407943403612228422087287832822735613565752641656960486188650120258286396031126917583512434614482536596533529681065293419365384320315853832137294719935942797450247041573762232903251610742141580854695726538865361321762143528811362748992984227229414984673765635911576488123077828062673142759818586276747476550287972328999158225537606108747057660742193707910736511841866137476727448301294270513257818654772106071316255661853009100150666593999387847579169988597937754030476293152381560359826258602268376152773764331309204004155322673000821035141386670409854920001992914046548667155904266147380639953594527553800547244429719267469098216773120989502093880057681519732259309488071488739573369814615513469071640933325625146585765614109069494865819862044112324804683181654908674518918520077303087276162977691278556958664401494861365160837246293236454309009559677388645551276777156910340241917268932551125186922144469672422864940631400284590017331945308070879904833946275888606812436627915138597690237338577487097345126193996474232506814873482390286598758353337175026979308667439364471391987762910412782488418190494813785506791498795444081444538249767158519417932852572881523873025183883469632748073950630372226465859077652113472247659130384546427649122373261251998743742754122769406949490165626200948965204866745202574887716242739082710499246347028793163602023462041193694173035907515979200250999949976137441200652033759871723935077811671091313766385055725137434911909425650929235830964839054153885762169711025760730822275916884221308772526792216090300733750251945407131427081306859322039732486921241456116895960667554185267891394606811967153913398367668727932621975987303737598250285858551577045853193270229729663707171695072381128564147513267333902077299803485041897487559975029931313392816192643438531614218179141244142895762269117110412490861974815905435116921404819733805694228024584861181390806597815522400481374738244434691906907569631064891001323926786226280529217829455622233514320816089122883836332931510023041294371220219531682343904720400188539393043217647715857133595679768820149109585630203568461341145131165957198752806528887777871142725422959984348140251367627370201316592521667011829870852573336449992019608231135743921620745109466693269665559829692225430349887173542760102264815613603407055989368588622629924736361775339289975725475722904640514976660800913620507320401178955408058833191948202710364782048734614001127745189894871254147808581427728536560214973718317524070707626872433446023547872390266793062367495853375133051032359304380617444426965990716100609253812974263639778917865896939420877574649014783420348289322549974115325547381140367768007816836499195537235795480114016230059086910495970893569568149603387432908438311946661626820753718862391422570226398843347073281628726282177834977996311791503518227395626605354511595516337743266838194872008954158267540523333343541349998825906063615713498093778818456264606950295164618461681338682508276403337127278767461657151285059880252302939160555827522642103221371462466763746581137079630868153981534225151817757271545433358675795475930336209074883341505669599269189065335765653281697243762919240538743201183754715879977366062032319984296549781007763113144319452708514754472188325807688936365597134961711073565916407756210354435641794633483863154014099225416175069440277749387293248890416848290319087422595361802688406065208250439523329836283876952172457295214718163396869572666232515887586940538677588341983816053357896247434705484796194083737314175984230942722934193142337666993998397407585631613652565633269568296592267938747078086883889953811249590604987273421393681231083731209261495893148028943351657250356354433961215659050060915125320541555018155893414905445701399014232831762039928556556614804589638191351722200691726781148413849496827516157020750669423579830923036566200725223886682843795254495439713265104967705671112921693249385762913264183947253303526435766162377064240904987053872276375744335771075267970720193654639890077133288732257647062532130339979669616034332310177891234658821281765700735100237599322565977752620244598244207994705700967344631298733195121279879808103798231116783310931104031577785235633443104419435329405152860180784989867425314799200723641335034465827744314062009153466541462956019747293627254535135867147691118743236718699319325494210514007294015091565006332289541046097971523888562737724782008023613621002581853452035651176823280339325241475133149402614912039924342800847120356763814012834660240469900562139086204008513291607078203842717409104356010853304327489103361922382424983640971444391826582782057060680510342419449114996892904852886222340648681730745966816540335562717956111710496572848397105312194867468865959862360154758768192127775282271708544587937778269019949230855969281606976549736444446630178970449956623033149075693261410561216753938845106245304238814495941354162242220484040083617578878746180080702013674053974779482205253128787151168961723790009227019255161540199051538774646285979375028057495615475977524892331084275638881795161643648551543886114350034799431090988217769196785387072719376523426070932614994675535089079438650225546417956971507345858334179949727346249631458306152973427549988890188109926461877394345003091937987840426079219401278310675500508739807451182659320680643395755387839936713338557039503091554143145699525692462589568076961279664500171427191539473747491707863153073174144788028169438396572528205192408368378400065597125040289845096800073365722871979360437713412793316458217001717730673074833264874040617816662209223624835893559083050019141942228903274431207031159500496804131595839405813088401340254271551175489763268937229598177624399959415084325799561236602233013476500271196152422157998026180543817247932868294677804968127149316491047878317203133796767561710219252962906935176556237972417845586247747812890114071934291591239296342875565569801921812904850905232449173771813001400564482505570046458595817317861542158735808349782655313431702700017540728423053867354410380659881108933039240975325355896004744238618017127013152675213622477122069697450066041459300374337256194690110808825656873192558966163723678308474825352794832020396273646627137046092437187027510049626490072619367161015537077663841116925023132534916258425717056873515626250139137867249354543496082353859338626018175679189754046494060059653780655835578412962680860399944176487911871797805925053429089791254302425531065650150168159253355225804462205835120297146407284930659403212718574397840912384101091667730021181475519362663351180668680108689655676187341713881787333834786979624716616471587136228882401125567120294728331681219547293474913961401815144153894709276772491235635536944454896285641752854415783935283396480160454380197321001114004359757603491403991329495021443579460249948974553376167511940827174242315075988049518695037713269865700854890581320267794308495819052895738058374048062569740325067396353263946862679650984525080848996501519636319155034779398666614545831769314671435015345177947199229338776666662937896894240513163082410372629886278125938428639279082583831657627187997475086372248410503661855122417095064408962639653405433423113639607097430011370456607326250353464818712114165762174921790909028095479722007002118697499747686416692806370908881349052018477174778576653324662124119490675069360309912614437582663569620755136475753477355130025991433531616416643883441465615360895295077517961213087469429489624935436682207465683491274076794456510604810787226131651349663621878840301089310691439707513079213148389560028630764477032110611076258353161178122022816829515680614199833144342452059914327688677013934814337467269748878837775760841559105930263111524281615001164016244086229023018338475476799236004033418801720456400389441665301827385491449912197872870960141226692438692227591579466405966005408946554029139618137073004754071351325046542086601161807314665475115509401807740838854809127611549174423238248266408021671022783002021050749302941841646548310639535688985716487743482498985767435072102130948892831609606858957607211591728406107742054181319789254435537962373813467321649897025589262926247898631512820040697116056933694044873428111758036585965556116941329736791854780368333231434922317274267593545005351923434886163436139273364675688884249370162384846318233548019991713860961018218074507984335868228889370671181331980588881091960238316650984886177211001187133413735691006036388533301208033878218251700155326117410209627547190262486816861476052637041449720952207738858053639723171590912849651505252564354118191281656814899685445736610964490192546982719622464231319649865736628861684565636100803348454808688322302954403292892254970534963839474846857910210161561173826155102723911857175641617818697455401462865137550808942878924048592030255165562795672954908499597509260435360852610274320372311300723934357338148437403834237401913994521006955561703523529291323019173811437887144111212255682473684905878984801700936210518455398036028616031196689234069208621629345200688701337571422121228201991763471698144786513383677936396016981574087584006559542071772045046330054226605617636631337288546027238318388423872482056910644687940083842659113657255879019005509571896214652130885520605199999329919253060459598205734726982917013775344545033610173148973532667705980877074178249410800754535208899222171946272490028165705337506327745447687727161319719281178311077881475369198143907192832348245211204105248849521658994755886230462678337750405089883823146804422628719918279572474140481765097943973715267453622855827102831430871001008000264460966575152971271793735034002856308991828997844632851085252716840326272991874912683582905108435918349394882753521543746773252738521125781358753151406215939464067424986877896271348812694258298744685452339533512272856505631695962347984699464873741935880470784918331614561300731061444635421355056766477601628335778921783122362663664815402797139913827303514123287142907593443935472526387036952902891155596935684165367559015144296149263913596963490883386264332211088640932994270625636478704002327683511794450669881808865354534318646482637683033885423400097994687981308969290285894907379416139018735914350878813571386177760524520163988931893851496935573343708612767296138209143548436049791362214096699486613237464684371861070487238476883507975385369543936040663600011040449309359556092175506283586301257173267698188535839159570330054264203906708335384170444787179256495850743385721232430727690260665620797848762932235925144409227538289799707594306900716565716283805314171726670338457198882062291970354329908570278154958841088736574188411434295743854863869777295802360967396752619798792092192148335963602712675359359110519327005397595569307003747866601509887852409037329955468869378471497452301438907474107533644943533567724546527148144249938867787480410401263246507395341545119693884502525353783192882651828190047801258676977168665752733793040878244340268901100919750084165212719838228347340881855105677949032139903589439487670225917728972226440051520625575440049583513268261690120859071305414907410039570963723570458290507191167694275868538948682685714954096733707907663814979388116942732264480544751521798587536907114842812927534466126274472764260973393425033263644427371298771438394448125799629080789222914850502300477032266167726404020290611279103013356757547679286508052651447684117554634347339993780738192938980121480822314996820576347531792037531118303288390613660194279473124418693447964877779454014514889950072311683733960673378157044697318187489471133000662578835058297960666135062562174481912212381925473412480600838913019001374473725524942760758032154800836641114517343162295852299888669905034422389628677775355598967369989746151893551828556060230344339064922392167683887008094705681578595386168516355604129892510437285958427998683766588488390930109247836669458391593171333595367567101337255352176478545076261309589673102948819517507423172190903698871751444855045774537460228639052436923873484686880247134344321378042582357644527952357457970442450905323108142882840121497292632323940683936534253045568986003984626126470243769596057356606644064348052165081115617519549257263577924411088877339451095192844419192482803955142771481912980365744435063580810699041154796309930847854727722459689370618405245177474134389852833748925792036316306168102182554068812876890841720024417498422351391068748712721022131924953012989754295406854200875072275497075594552231052258151301865826764534083648906099939498662941044862796510590641744482124129607851293593106462499619692250333944941977886543980696609463605326822199135857335618491391927990474518726875417280346979770320711973826642724181484487146715736530905167815289512574566709192274956274911034769286459321435672686897060307395816173977320240524972561008302703405767733662107595143294912131871072214097459538352334344198722154065491755127069724887149045728583181961723904791952063153712441048190797499704477047360573131072366758566152962466792352378638991950358237970235709411639766872213630803332713836626437679668592757537940344184983639117373815401307812443889413767116091342467292357008642920085481683674168007564536422794314912008260028464817763141699214727632621106166526684524705278381426746671609294850718797442799208192814334783031738476913675570123141768573685254432007799870201230150355470372175791717166836437148902956863193550280289328082898968777677705444342981315929977730114772621407580375131374347090233314397444230278065067511162232367956714696069657812664987909106661918900489038980962801931056706738343684227247795235932494833232047664561908735252897999351669882721952260231006642077264709549271069018059490374135278176019065674175001585632617800327256729752246799608650062985491998009785399226198083314456236647709016573702915259632120462844573969800322594812704322555563659116874269630180380259001660516284034031858801589726204796441515631221129551111798422949069680389290987543141913885178091773837530726893897318396452205087905671575056231602332788655902158762043665100448440892039515889608244416254082510678205532813069633144581186640728114361236057648928871976484685808219410186153772772765778492773576789031849384302090877897637853386266826887091138505280935891167176176193955625951347196015580363008700764682174949112089947789861994425379370469726397536054948736496075652506430313156076372146152769184645172892002680152359029529042330017525334217612568293183708184482887629967557824880545308938353451678542423649194942252384973944628040284160138011731336360822082375528873572838695210295417791194362047254399979409366407722729388914329082201922023818157184526115411876632671436332550667159869146974588915276580189730632578463275122076049634943730938647042434495788083195236592263411142813671628856365320216793570500378707796605746689784351578667385818826680720182122109007621813406590563073205372171248553432939754103136057851942114694425974629838083808795460806364791658765830816768107594425159490775722893508859178440745740902469982463038941341714344906309859302056470981874038201810658627815304130774401064432643877909036764970903761837636527118030085697563431905588700334981680225937297381370355772596212123938306679285916914514285136200777775935040995827409550990633303329743261217691743224869039046266455272260518702752069095233753169691346527731038745602851786326356676786659095173574302477369344605252381462675083749557293005959446639139970918337731868635885355854169979090966970610011013887833776349414250960281639020062040798957103553366462345946496515292294527808173840230042064387063688500299395815321443535227342069170852767978908918510228326995473016584287708381074658844926957209846034264530317304812736821426257726985848112868131867436196510904586563925002767303187363713305086459742749322656552248011224104583448329733188588231130088655550227530955369502508637329434074358006359980088191021313485592486371422485417000451506420019782182540447684747004034792153728623550948269037359677491720215299464073780174618258372557916695259116132941652754302256812149605527959774765257938189818530274845377858836431902314132095714192828538120529973808389554219698347936097374941999720250536263247309307129236694654634542193862321329191674741183166351045285259805683708403148127002634890883085997490574829023721714462990818012966471155483041622623772888379287521831227383805663731323089923327499728217608063708742404192810747893391592873236230392405053580184308975671419212058861248092315279174262362726256242156762085482291377131638857762984943389265732503758227548508767173852108786940709759648997822312651529520323773733406557544549087889013909342142985819514655839662357026086104366855842588191841661323340150983732073155614048868343067754543900407456486625121882520805572331025557232680708522594235168261067915010599371227171576033342856764409478853917347224898289563585757241689525965607529126404326956389797967931854900739927940542854734623855756870373071854769879175895379409727275155134750067269227410981834865977428463848314837963856559396681788177639669032659637930362544805045599936817339103208052555249428698961668170497973283717758102101107430255124107285003302638895447057697847875237075889331360598241606310540712799837061226809037196330718008469677000792120104821107198831517921271070304864020863617184211849185786740798613899403269933531007374658021445549892460793656495838499036145824181763540773111870391053663430621419203194973797010112556091155850334883349637563221911759745629830655793923653965104068268755501578468716449183546441622242702422655782410441126936125546348111362361140245120806554154790788379152599019055004673380586068815446044671734887796680061659895943905298497652190223472684869863000014322149340884022008317345872813450008110608108827537707121835049381253470009938895040661285671121213565332327550253875766044617343719468083625762197351376332170005141940618719505522636535364690278345711674545449967974303010137634661927668201821817314392377861336746979078362474751563083271132850787489916625426826472428180351949516926395332445306553829869639477252810572639327822130504972264224875627596397823684083415178809503482587934643496661658067495362834234336805275715859413878216899248631983278312397871635363379409671379649584100359171712423087761617121837727254613836568707820184837555981171137646819554181831474289549766787837720705972232976235615070778640763937310854592181919689150849719243913702656773107007831327400518304299863275107714718379920952313916219649915000850630435198171503892491404682998701638409216330690178153118904846100042137023971174436872093176469333705868445912134974379449560876693475009209762148703783822528701552884419363732704717298084274694138697579416793440725461464923055397977985733611641127117875337481363492447545113201844601549802729931285442364091452870371477623420461452271666190483862490338565486776891870585581058191458076695295724373287300174840924721243940202034173019817628086979460560713860931430849480259187031834400352782977764003923073571521430680096666950603333846396177238462136789684507391425211966303881879052954866967736792355326903404551557199502251413911458759063124095530918541733324187253455273263424905070595848028220447875610812798132735683725734438007561602371378931838876986012666561630362317815819319347522559852466376886813141629534697318165999536671238400281110116693871228753543556588047095324675351222396138856605992305187488599959755357034287140331194992029987762921810193157226728190610705073884271944997154388277979332536799831874710946064433053043400567635032677423667123371811845731849508923977758855767564891812741026481992470480976092464206502563296589441621257847511467718783818262684409137153602980688323694634737651648660167262105584583109698319980008687949639236500606599739216864736013731296681955497156623729654414098849813689375946752289695929327099543140983750002944560614245623857612010921710103115895380863268321612653444311241327719119146213166114739796562947937689331628009343759007968305920498905863160918566293655925327042257235984550714532641695414240612751840223917295304345078359359941834604985480167588814622186291078410720816582236366742046765284426381705516774825899916803337433928317761528881128201430126097110603517073886941796065174823393081459071095575664153124689671666453518712682721260605200866634467013289274743152752383342053929847685340520119051279938665028395610340413513805287303414444082609600879174175493882816654262457722130948181690723402206704105430638825604415763104952539363019392960371854439244152683219628419752452679835473597980661621859465653171127687287912497858271309992438009747261950996324828418396804366484126487405771341246353848847437897571599976859288333597077801422659935442878452372852355375981386201986736449457902622724630731658716621015304539648630539717524982599517215602182170178133734907365403790979020457883492488011226439423646108980449231814388795501010274583095740256774045207377376919306370034442982343440421761101976742493681448700651238049850800758384249323034435893062068183852723955514724132765040679957166072361970489618196852985239384257987377195041538944361223158237579005224192025220466774043243399141057659348229955004131931502258258332162445830393018969810709070374953531326262272167930058219616813878152609914229347012279110008669269853502993349153816107802401278642925042835333478219969629766740703975018300503462367160404227048884133072047173388125711809907278031979612268006613535442083961990573832914112799681326738980885139853894064996030192359258797966994052522947867794973818454597550292656928589035574123863415430874439621894492727939666186197336466590037081204858721920467196396343725925906683666971446804497221222058657478715122798004789992857680772581739060552345345772164962288174024868836553751183044459972030749858951315924132885191663051829368572761623032495094166580404260267717916642818185795026473550422026518876849887171595094705994275185366585875380584121036113907624685165379746915022822076073804962210910627460864042286585212741332689858522661904999229538358347121870567749338703419274998187362513965206631861811947584861170462812531685509518454717100482602892916012859961283645885542928993650436341063480708417609120757221731338035870272475309866409173136497244847517730042554625277195363951371231484198511587181498607628124880838396363225165423919788854758996572868045499720193146033493160728349539672347527907798951492471530754923825191947537298636185453632299831755646027802257274664665513845035006945912590829140456083821086473893136352425294059484051641282947005009254911798492799393639490132565252657755898935944314396630157172236770927164406472820653957653103953156120296136434295959692061305621382395729489063791339033145338094154750910810250337483471308370123213852903450713364641886009961470460604414158628333735838734833081792592203148314263374671647138563170463573096292985535797200819155411323200544217790418749356144334333479669856829308491759078428157227736926968918454285961069285583626572703598348849308484933359760316634592646040433512051773389843715164760993033424220372646597585084738773375624095950339481321676841204544941727333691117850347199739907930602029862310965354922606267445334210184751122171590205862441721550765102963835372582603643680429247482265027306977325903062303340126575457122337753764513346273816814592603798574076269371870398643385664319732937493692717556131026660443106959926725176026928505248644493211503690834837692580409595886100976198078265980713572833450172042091377979900258917215331524998937330742133423380152576482411418752903590141879397902043235048242811047940997870440442520390926125235462111092804485660142008736847657608481646005132387319735609892392666805051728564811555193506516713087808649215927375274001946592811454211171054487510204229006859903828870164841031865071913989850192428217928954219431743556841182834516182674977264274270658368741280574095047407753297397706693768165180216878197737270264367907747835133564447341899493697650094633073392202408599789051862442889213927646771904510193883594457662450047308772157957945872590275908927387095189694589224659761869902069794573997870519244438898183874165727226112220456837284201144842488108859828348250103186390651889458876744850591358884937626565072735970413537104419387709969883429545699667558537075831973535663667960393896494392784758953444586416219611255675379219025367631524292151872723368240141776647327774730367522682006860797861141243166727890622412788129102223111927771308231517523941512794853714913774956876238533465155229465453872507504743746740790135601665448308683581737880926225692186041457247421980107854567962788988510857519733427859633964612681081594137391348444412519792373859529796844171275205544047505756117949653178523412873136874426537165938243402472047537033207548193111766895269844702510591421472782163772872805251190709491546960294397711573640203406135847033421011880447701192222594195541143649452988014207852241075723350140860625401904429116348509955387568472039696102568797132606898584281114806481053012665342170708127488037393246679611705209599890445442514035220895431090415639963704530276638790981247658634602859991053157062597295461880460688852768373064651514580907437882465444922398490771446157762603479684585543405139002603261954926848530780817684255345054774654777217525743750422527590128182513169064889235211892899749847111932815326625241532814051602322315772128253709881627889474177627767785688761667863507422502139579356454761923183376555920595852483590835467192321426029378963642669908950703604749518760683433918914240525906688096453045805110699262310685712159227477344027746400347273248669899323566134382059391552352462726508033043213022081228829342559977448981390616795813130183608637941966478192775226578200061997722069877798512447779115249524612909347757984167837223695911089654868847341257645330087893599465209059872793627351242667430960058718327649074357053961977213929659085621946738941847806101330408667235382718975494223924731738850066882353313690825188620884853343300931582831096551187735332740954418120446835802993196670421011942846913786404110080906092285031632055461349394519025792553240128080385836068075387441619743855605532606220156216034149315608868432289007023831968657895335448521420798530067889348310627317960024399698279782050285258230905629860295828467262440135454308614153479006214010985716824225039327489590401788398424675858952973728400332937923583470358740699627091497085733985602425595360718991241377477866997254610697340404244064057371612639068902940143713716360932158548855677258750235152601918058311639771199509294123619684274834038852089879392230459301510662654716959137549969195528615565045938553954421638584632985272443851845982399875974157248029885721003484210056569106804843411553186906458914289157029058160254810985815954922790206958351163955092408548458160090482597466272541006551996403569327007158381402914437245771409801717094627430038543444766920762927923952309331778665352086531705248380704215528070828746535057571715575394838488509335949908784738581295353374918829064835556907826086313061282640779137544951041670424483879652937077816190200832778968372745928935401227347251977081459581889841369089377324716806639800771190453162256487251222224993003101336342349750435823708540603159494040997872999956159919228821350264746481084348522040796411636777152991757580716617213906588369961343877269994511494994001619042026115040103212241257663652942035158383969757399370827959023093458846074090346939209757761275665144816530546512863739111950626039419734441123276341336852682353540947535637924238771998759568160903726875256948494099717356392442308864826414428856565386280603142401036742381502523699782981795090364887670794759599606817251238123254981119242960021713061084363945344165291183213770348669499136879448424131411833883506937829453939925014181603725876015162576991309522710088877579333440249314265824031862398331629117443746595973355847842558772605502983659381053436876905772933927138097387070421183004667612063918005617451577012071199900152100588007160488284692959975883605088995017851974622396207964302971742369204032075605495138055454917754602238812821128187236582171647889773367700262244161216415057612813655190827216662279560672696292364664519850953753615970829906268623741872198087382712620597979284978815452060069331507344403588347491869320138636533405010718356974772879571533275288124920188536039847443543024944068351916848373937322517687405311858616974290347722724297936604564537209805418252533416203029740905129998971420955475397426262509016574045963811199208337761137808544879472133811970229722819703917539846963503592738876442866547096143860230454731737540308341022274523997691992181694317529637218950606448403884170375885411014525803101718068567535789247175985649269616361676482847832424853464241252373484201034817840184404729631506351667678322666191745682969836621726823047763239461832880049031179062126990329945068788865318481004575026117701096078285520218268882267050887825581587766599302934341706629325061273144855513710303106268470115329405872460548233337596345823850762593685114944158438495275938631862065895150416238230174013762215465759165850783371525719820170459260426156644562007820893209303088486158496829724773543645852146220212846015474701907319415947370745008874795016788236090140442918816727034293525396661652188099807369790110745183580523712002364936416040846239716986309546490344478589072140661169684424533494811204946315340999612984425255909596044836458395475583368858889859819972156334422365883697776476019536252482444419338532380896611109272206405297696139485452145458693813208860510369463751360764167579114161470855939544906363469786865940741232424915827347401781563371519337543196049179246324827202832912538119543218415971577944073567719077847217912481977474949818240499254335004306355711854172973166929661012991004090665424010170751833524220323208276210614850242463311541129396231452593122340210263216460092042643938679954192228810777623847161280193706491161506255360915977209785302448633736164283195495397846730030570988461489183932999552834819604843520531478440538255127330715971973326392229812068751617450856975812430595809719791295869211022771558278959256348299631245435208757208806696699642067022006441959226202017848023755473075868477317750286055729889184641146267762844532379177574170087802986969068541209967936467257011793326071955388585221682322051473902384961486058945071882935629425324858798020299575342431937522886875951286632272016403408985019411545704892373858832956918132536751698132391983006426236330590943051687675992206979324199439848579232234010098645127450304875217593821765748357374650804702027614893040979540384645373167842680470682187671535178498790908193911498330947359419881511619529714475408353761534210655846314064425107920892460306326416779543637319621694978065793724905516669391691294037376783064846787375072299396127629114436721254739408938958951209743883286895618302263997963105871154062949322544787366566310136773653459169516255079379221725767891098379074424851663792681965531053514139258804495600888682319854306677279247842418594501672726562746360618262930701683844164289260033928305996771352979521618668934134632777160091688865476523099097828380975057680742407992006056807670676530783101059076938529210660257850030393660153689727964276938577430404837058383038395729837015424014388033671517909857568271017806882035048878782132354992675052044080609326311543830366870877117677336243897309995865298320090770829388519071193183374060590278854502041986616709522974527643561122503764018819924278333993500214911926800044211557761856863022609363926281673582470594281247120000851402796129482884138809618537794781826795472472976965968287087879711683301113981191054434950771876945276115166508720875010495577286566771106519865471954023041626568979611353684212828213851989724498091297686705483398606337408783523194722900427120785778892697504109421454479520357357763769476439649657493999000482910882267632585070403727222090072079486969889418988870806677648080913089550686292998810682667162462020278771271465495611937221128588948206341150294984961469044160848453024192114140467361586627502253094859565994324995035058436161502955149293783236381919539586547059026673491739224414330392748009097335731526415649532617811118237909821990458725225592595912914681921617659221291974580562511612291132689344404997371739717195526604761950410510053382844107491834734886323809455129724829367913251527266624834668855888018149678618525690487830197750892744794598766095683665700696395974994250829283319954597082269616973418374061343862217780272358356795186777124318203744622642296647933132008968184763385204313745560448011566857595374703777993313531963041538073880758626743348356159285494212058456664954684174125412681731785665791660576158765250334189203775940608081719399825177370434769750144258884057789543392019167622997697552199710934541995121269706539716287334569776886769441858210577418383503840571687911334187505588380178536060326248873910459067718275014417254971384662511282066626816138888711817476025329477608194502903243640624078754903529089374391330578087713712752565375548561717283539162446423325505988889780546961873136148215481398052688908860749055502870717109294858175985871288296336169893689495752218463548370696856896996756709922645176986469703754953578341116972947354856831491588420344263367222735450308696384251414088358770686774378923964011585861862108198055996651192196165166685628022957443940298279248166685930089984962274582197045368697141881417164289060857138548993162452792754172572492729713052362659897381626082158436370863120668252528171954466127123149163672694139380719434197706686591108930230315710789194586541689134742645072606265284814623736204979982637029733563992900757423660357542023924253408691328465954485342800060087202913405470357055211982956860862861418326479745940380553220197946403662354552460127531766258161895066818942428218381012378705878833997837288532730715846499593948425528941825635641739062625833178013923333717951523867629321383216516148821070816165668812544051859177918344397188097986494370939254198554124772201839594677863145645594733669684547568098013247418409807621261797520991778270740862945766896992483276598194049606998278397324496865186044069299445008940177913871672939525874672001921741641445764412612908407671572623001130697958715830663655658047059057655364577556190242431141380484904043153783584770196907434794855367815578700988219425310308219768183961854232778433834940108765736852280387792178689291879210044592750915809087621743426409226746863930580708781686937187906228706693812947557614307370956052852323446408640801585383260317921711492542914736639033162436326033009407254163842757238583015132564601146402603387765034806555298774246534710801080511622260046605887116444878442146848914588409929750149472964292539217128578346836632154092259320475016645007482931691678954565116155567642340797281197166934241623726782092502107972747914728543531738572503757572116074290182835300064179126433183403050915822098052953228556968539264083766370741873849826169858195172580271706310374136611324450306592434986927316257501474038133609577931599565283614722781240954662590510787365161036596398721697183226513671430368530765437958344652263908827742721582181346870593417849171203810958858646492604019933644742962032871870586643060414501907787705695352943369328505671165900107968632778420295652942852740462662286300225546725657986836744132453810186634914080446176866214993047091896116374577642193015201345082899021023498391991744387107845576175260011333646213843535519250368928837151082108717744121456550049565597807064814864779068428789872006438646425350800563296138546858632250177021162607918045400426127347568077523499518066229517720734724255928059081920437271582368417729872080004244181402184670078531336886684377893591092555463269154335361422676565241208288812225803114059242537146117344553182119873191529482674270405859843619200935723690224785191640223918197081778429676361539333199230562370232961408565096821996676337904942189323786397558078625058762698175830994865887607429216229310811940521854836133385927039146298506886376102411712509381745124540793002204281062811384456707571873976397143253892005138201056305438812928249739543274042855054083001582767704209613529720953875139874814543197414181002034061255905721120275217762955659834720344349104673720212027870256371720241017017490416601404807454444195420697437602165842170886094081446837560306946418302182335936972476953412831062947388905837927328589012299404231278720635237424074844863091084718851762433045246181460770522262783477290221521421424220687015025283945220527711059228413207461760993702737159474357391934414897783663005906655783621095172340227956774596056473522130453134823405061583033781999335204160865763322525603753145291519980468421120340368090172389666083198563591897240234393376462056372735546303506091080133912527411290050629064888702395752614356614565454710320977677222379917806303997797122671539267267835701031524473291646723871248136757589272330564154016838475010329188457983930190695642836174378457741018206058999269858133429955665036033139537889286682181619572841222718522717406635348015707857536146453775171631699720228892983449954564229754151546223014617783240471113336347477868072808860270545440684711355524696452955048558236720101566882144777094521246425612519320534597758026399855738593662708949076495292873509442969808866230596981795350127528267217114558752284725888387694515230610473034754047060056954159457655645485881510711576027476114095450102007287623132922233152595418250027027624973048393692524922259198075573164498808535206711665061285063304618753323874200502645898908902671684647468211961190537894910672738754625954223418567818271358090439124156387363547034610133093698490233461113076538225678705518938904732962072196182413305647751975741124613761739841697190545320066035099447564846539778928909426675846971883103327931248134981453004535328745413718064274406030582924640477717381984437747328603251480935302122151326963772557901408769586216670098772494185101066562620688418268013247020473177009971423022357191522428811146840831263845471565786722091216795236719608934088009380441500826844121019104684224770911394638221754788410859835390430647168379789477063383950160718689677674821201836870549834012216768802302504213280292882796608771151145832854533691704402183748914809864309718471323477903330939362146238269267853490625411764129106681947091184350801013020035813552126088008668215111201599114374203504583500620771817715386733119293196468083126340785982590521400438219275328461082489311337286131600091499636420934300462334960493706495922631427662882231784980271816656705564800595338064410213333978315732420937729962946301554631441456425578080335546103491848101774579462419972972133669778906866039688553994388925200576374575912606527066904832950709131764721568015231495653415376087448644145717158903285640852520339411644916846782074518972510782838143299194758393025313704108490594820181471779235643165479418090016376256035273373480656555075755669256177391939981382294509838460125195294546686542866707752405688980121547129163431569252985735122944689067189468492777559649476269933923178847624515582611380551767745622777409238852150447931611566537007621455266288225691350959002844713880129979639130585559131062181178894251508964401308208560090321387366134566268138469372440138833341923705618649949058947619061802776294551332555042867719139117285194774786683051991540392164896970905428409724783936894252890110957509742296221791109109996126189891877482157129585780718719764759901459706151181403209406436960762519162037739261492665889609919881061691733879226918144940233104775014277420642596033912330139041247390733182352333342705162602141508105492401065934712578598917346569571356066686140379699260630495438597001567073201266656650812259009230342483017859368179600936413255096345981893522421360175523613908306474069353178744527710884389131421046274956931907667435113230375747047002768377256616728044414891414852240391875846618072668327172901332073760594349023803054804102688659544673883288108375301376599612656829358411397507252746714123504964425859566876833265895932004769183949245098251551066092801984288648292758008447752709942940485503232541206621377719745336909420917842798516559282282736576204807423325127743794685265978740219228564073492708177020033035628040295737768570636920612247380656691570837983485862769375942203295917450897256225651957432583604212619935790426149134276061467538009674413383900280812784373091045027331014999818658368368295660078581967506922569120781217683586047945381263533591554384076868496730648491054612199452181217189189589124216214755556126327693567733484250429679676837186628389788740253623911067924748759055770057283835174335812935446814950883254303569974538530523513344361016013102589901304329261059073292582012843329771235282214733545221216552828221302244332198702450174051005779454827390731153445842978170531465580353949886683113519039542542445422041329872457396824698858551510847454335814974895413074894554792492880502721393408711631750370568359734064759475403325947251004261231464956181871204223786356244018793402142375129003796234341679608688292727633414310311060272640458042313934600422373232683152723511343891679071019520209214367277933183486334495052247954205669363342124406784050133164432979552501778876908245432521199073602725950800945753247144578544782550298632607684880042743968712881703340262805384663649812206795689445196141012869546041808607855815108789391461281320842616875681900673300382110548924541888928720411821422239783417114511192236010987118601762369255906245100766261142690944931351090791903631987400845125452369828095305382880055269028012095485923475064694338041606674650896960979640379588848901217909200935109078009847394508444930510093005272487429568659939230633900274036075848783367819402185149531277371289259940252936158519706733261217522217243684799968507293828642870168001642027301996418647463842510184510303684880393450297143015179423829750834142239338140753324351782213607934693311545662149060856073841881656179195846207693067296804268901229937132218974008629448210805303214399922170463767836844455951450056682719758321669369281758298546986322254581641183701420266355221707393815340228313019590457813865073413415336424454154030483950122924500096067320626332673848768129901242382704334255494501691180986280614690532496584714114015136398282210318147659485279647795983433874536307790792604397519006899245780723608890200672094347642668228863868243730825109738468455397309824522042809938046360234326098958860307614790207415767397094811766777260620613199358246809967157999774108931083420666545154293925883752021844061895388081087329485970534378657323248988125662423898084371425308323950235162602831929512335691944940687058952166097389301696031729040822286651512118895695944163067995163147317370856912420509244163856862306507964062107427156496904816494307075138455071645339403118654813439961575954149255612564375366741670678746696687582850878758227961868092559670624733382941358994720339473400369887931454394488053699183170516239435048362590075051839988148910968246391489858349037609302231051092773439732108344224294082026382306357148125794681481631241116428121489348527943476173061268359602044729828119086856362193229302178873685756366744348319621906897845765992833843534057583099285064960022147027960492876084508418378293019608279232437245221162402062479251790125179763363713307948426429543804444452198130465530345209235198405906913712867588221147214555334567388439538923036938167644668540466636310673661803636662346146449656773306329300187200369000873433332440278714721357905953247867288702552834672927696563266704009066259533373211487250180064831503134592470620197959491313651626088539752534155952776548025637202979219001550692251953472898145012745439076772643233264218259671471911005994311121347997611260147536348939066822909049840112871071764449944298921456703461886714441566859739181214439266875778811003993393059570204509322681961245810231938428482088027135509881048938362181931493857981907881743807488642655585095311934573317777462271501429203791567011435646799483288937953362011604271465544026019569409275616341451774800025749147792435740152479884502702229347944271749474935506765768931177351260860789641913027471475751922968705547881637202946968261560460641483958391894177134890078251474602092363975902768707479268727162772682437988056488407095477857899390518016385452244660617079569773322642920034668417196053935169507643853623476577536876405970785833804040227531966269041464241983812379178977292675500869882264070356899365200017850967495392224526241463119253509424096918149767425255604637487146979074708478299230331264249328714765407386367821671540582900842694270324141735627962398443119832970594214113335279847693033148779665619509390839742983382241736548250418775002124605663586371809643886745744269796377418052522287250921067367150383001562480669130223815668284718225887890390887943386724102709551839837814853173845198465939166817179373245582542546863724231471754815028528715643659047397488808123757984172009381999401997698367325933581751926527018853925421212675334851886812933552912701571750087613702802414598057135237592851267625467373966997963298271193113871015537608529968660477733364068453361522600636471013560188833584870843841799101459723503635166019855744465156343127623771657347081904105943824760734011070885549745895232084777457244228675825116741206561616492764412530039354145455748313357804462965973966608081060437499792484666777631536882558662448987800851812656073735547736161955561174822839024531359569391312685231979372480517383612718424174538173481677151517663292920300228221759153515768316335629860653599013392470162779573677987124665202864065853725291232809867961943819896010649203272830395903792700251345967992496369808933574840520124428617472257988546146892300514823631997813558866656923016032003156834537013072388551454793167675609045597937190119152134185734026343919291473844106557885153400043374764866168868694316918681910227409538832600398244897603633007686702466047178703594799052639256895305410553398078250586213289414788655717411847025758157839591399448962979044753985686609654717323658165978592835825257555500028402627093137551067015131607454540436914341620658369383823871100283098938434388985022201345602752027969309307857308329306034519273868728124310195338476808967324364341448399814242338866836766059513656999796598140468375552260520471383679883983960860822905146985762750279168769154758079126974708915889338693966590769488466844248433017969873762445679830671691978288699614676721433544319030272776204844429755660585942957675346594460882599279653813653464056135457274614522857880179073217496106804146572316564456766410090708131674974992011714993961528447576093189093719332670245866968565861539324750363110800206021501384904619376649316702093571314985701512744539869310452087272805344785646469216942636674192459529329818927806646201007815469430463745115410617473009013890711577207946660562842330061992217700795213578492352390853240030387310426776935131922423582905566569785479499227722234994444532164891663865919647753096855774972348155645809308231410436685896963802806092737535435257046209414079388797581104309061893275785719211793737928466726778429300812019477163605358981661627506376905531983696776773602107982743791053166879560634996228200658815720930335981906154327330241440311333976591566778504523404403565137559084671714832928430111131674908755322918987710926198501126485301688792158937305099275303162702589482003718085142634477586839336004844139578128413420049694727321988251128744592954849457802115038419725224659338577740911165543905643462971670185055260280506754236790399725411416548531284392532341836462120813627814711627852445265997563595146737480358373882318625992375510709899410969823539856648942032643939379289715270231322243696878233417488784131896458288567933524783909022772918959428407114498205119453151210459163940553194998642371572946747902269304881378026729641940802405967221185441076828393865223420125456984211023125472868727037306609258065090955111975345675670215712957029415721833527939759817032758834404237692556810784912664298045492844683127155454782343664038388043256717106258616248655158928498231166645483403279160799117076499350086617489362540606486640851278541324889895901691148995296001907155649804655949817429731061988699402189922624759137517391430394517019740661451675587133916584389315056746270541806247511991839320297783754684942033587064511607880766148850749646668126577290592809262859287502417203326844360469465800524197504334798937021820734142033650595497540031093241496767824989046847757728222077878047820147680875361824949177723298260793055418860165448078595650346455509327361950452449767914196914777882388923600252337526425335681213227310436005308573750368532781739644882074179610164888790324036618136105160056776388859238307231428308935118573668593939982557961134558694886645152490792954483552446732704372525607180331770696359333007177257640678999112133482080873026609169979240167694452956516462178054429402929874583270776874395310667666038367940714388331084617856813031421540609283809014283143781141329915937141188022321963775500585757816192647700116115598889423783471846742132863393714977820551573663611474161965113424049718483780238603497936049993864416384915125587736313626417155941626063613395516329858070716796481508196892634823199842675182506103804535948247771240489635075367438335831020375803135156969050937583813231382550471829456738877237620451683208458824604188172799340530645169871294973436697842433357145004186987246202744004081185299588892753642529701846921114900542561796047848070273007795686120945595585536144106365324113490040352488615789539866947239927902824114292059931309776566184633671232785549252396529310563736538349627357734034361956731955348964859650062034814071992112241239528455831978325855499153578746194114183660353193309394620033324138968821283380643981632856789689052278658664167653713495181515891978154410089245914001166374477591204604380805417860098442664598663250258173053049747832498769581883304075902814684396299805864077312727523019245326167629985562966129426150595298785007634880064795879125065725081291283869034460934284384868028733539953101467532887410626390259100108516297523731259351136566552023122859968796263297682519672506058000968196545124648109000502042688256272483934834887973474154116950443644989914109316243584535210847053007628538248633996072306688528407910664050286283490289864056948353002594285643495077608100191703518393666693765925201846292470240957011045516283124504824098293025779193860949252923299154293589651032186555964775316145060529500968430502062516460896294028773384130692714122790723560534380257498999546142485621139180068728664380524769026628959093381134734033869498172018018077246189922235317888463763289737398518880150591785922944229453290156505948262862766980331763910025202897166440416369641989020402051737462929645807173505115811415498944492479024644018060212642872609451297392948271435855213751508090221116554346606482691814113452317961750865987264530282999879811431869346041378970719865367655939996074847677523582907616309612962890832765086908640270951371661743699399539702712735196079179243147780723402647626817812141586727108087213374204663025138173763194000749708832338502964618264901938763747698171544827023617131406887208120944540177787071372587916372774785548075802565962339026408801258093034596919401567858179297145037785970823128273484632850186138090198458435474001548739899265191296968144493100348559719420814993966326015015488879773169054203656867199389072660320330768981564208708093067660657753703575789061801833515911138512903921911028430115531699136161017438950474901735258865251173018699705799208799750053047961940543925039216494414159627315956495666068300343080446087397349374955053724856814165498621963155607813386870177607569329863525688456741474834347315942910591545195062377357006960798991266417442432794962327703140612863563084050583640544875312029189541414507740873479126892627259707379969700586571011161779313257128804156025293676819793427377016500140421520999289417622314929487937517819704195666106138368916430515082448226377622012854305340968514386984001219769870078018960749053800544585085600698183561569633856357355907180280514544601348450433466651748413144277480395364291402999773183588641526892505368245151367118509500503918944855735636942160858785700802526639153202259309305941800552444414057850032796394454032839864538549967458746819947737349333766951857031746052410127277060231633801610085506825914159604595499853259851564224154972082243330128705391881525682936454472106007439006523904633671100268447626788297747865252568547273868508168411710186599790633935723819776189623353037188131922035817090631820780182312086939087320398996804436423587387198755852043631201157062695982450334620008152279827678250263189482210969425019220793207697023146107231784776910896724621772755124334184095993487403579517280153951062891198993146301658591335852175439251340089546968108477420352089814631687659389656093641983845670052288955940118504226032089001262605408708092586577297384986661903662650800224912027380296974224290955496966771842157937873250100670210710748686611087429610644459363753208465876416918840579931104691627829368644353024380566175965763617011982603098389402757292246096170714025238222608833632412806243584498671160673426932089419284065853855515662822659472745539458396558145942719722196086750517705482542813698515009336341326601458624625808109866748086790337542583708191277755017921676266892852327193448003818702779694043385154296412973423070811934155368887789820823292302983213550541065299419830095684123348988349456877943330325411335711812446606125011649930246605337714582865129448111669163946137115268175903106042631004577558800122378329726410818169796079758284460558286069618077928336552347317414102053148333523092024886024195501794605206729805157351940875097367266157659854683541304907178981600046385236036816554282816079166690706281388862359326285764044485074871739547351052619802244014221752072393992869191404533956924443254242243312539714261588211285873816149534578006394538736777339243352957625386322595602643619382020997248893322126387220652759218759034511506684056358725938523101027062031422379217934943766098867093162734861105068701426809034809001190466349894938961010839365088397770640887943751688361734651105303432803048875068473695286614876149329697508100755638693832721336767526614292277550699298927222482324760338103100907918660999407161081484067467286572073183309446123961622616324128463954581936658986582416456181733677219306559427277388031187588286497275724132690601187900823106942056416425686153756081543149090018325256876151854922945712681365673689301885477120473814698779331162442629158508433198996363954021350381105244285956217943341298509203680960884546868100409372927154637064345630570989506599894219201477280729780310499119389048029654738133370402856217683250915341980004379957772908614896194992811134184776824270486168552041919484863718094477448646236683129795489066587252568840314423930774745822293095698336148466974378966321003285637420233658885903826144699081659374829853000625135593565145885244465306649906769365079780806758583910179196422349341858166616540954287174520745209172575061899812129977493828209035356490753371379197960619079480520130355641672866446987777138243946321302533750516177739280576466940191538240245814450899233858776244211384059320724726912958894347875428100836833353455857678354106238167472016430544033114861377725891210272457066452892604871257344216050190078069377516866967233203113276227593263640995197779456281552247999964600878184051437427082083859610939914259320652889980783012490825192242635944318367697919132305707249349618525036042081014901351572617806113533161288035306879943511358397505895817395082557098729699463591388361823803107777573519652560779225026139877503796648818175551195481999325935450423244683286424872993619089532998071612578085417204986650167302988633195141093665094191292455607209211756240181248941550089126889904047783306333245090286033111160425561352169306460843966944734053526210819828108703791670509131152512995539102390415685973057629679490486387342693365705368544137517329649583739593654354100260609055591007225450675008933187307624432464360221700688899611781726531227209734429370985417734466198649517206402221239178655726074363412514693834726533675357757215416016825807345068961832229951363660610630870023208824541543293631637855663409062525791009861798682983998874148068669572147047397476285544871890100472337565766703875526359082555565502318151121906258828384817838186524448511778601462886024029374349171993574283889186885603760706282830126934237609665500041502581362900392151398687247845541311299211479878097798313716763574402931003417021528992149047165906555083521177696837490974339110611037123269189879742248754592656324166316428813972665815516222231489510690551262593090221548360498379695278058074440961723000054712078242298710455089008608689950558613849967764128106124024968403848161707246790498851117522433075782875915658993781905851434102302670665552914910378568012744400011203321252396679403415188166699981528428569838866523043335617287041332287618985210140776330104598823177982710223665061561407055197052139612965863844391859463468374770968003357366697391713942357288791772227860748911033702819185592616179227266289377505510107899367577862393638669835139783625583851571084634604915877239854511257869350549427887544308747252214658906816029693285572079785918545404380579688039942546622383083097234034528912861429677046963661426765304485188706286825960635014684407898763094725239983684500851959344774395642857006811627378612765658126951138337154592479139252478787276932623594006442364640122182933115152856909934184161780562574856267785772414975429903206302273485967968729801058590267065780342040279752048083518383422018027404935487239617780551953860760597255915348618242337951485548850985965960443210627471683540228906514704907122092686314724183555571224442601823717411662528145268005947778023252105889749322957165029792536462649368357136372140880144221970030083661763134450022464733004452222176799143880899234006872125363983906968078894384065589966860645948380212404070179160535140955730974961453655502798841676545503081295075326977772859843909901203809039120456043534406235422606503036036416953561303090538686053386303535609643690878316111364342432007596388718251353861054144645047763801655177225581045863261273080481221647871854306795176845067023209228649081920503054000946143950843229251700056668347226043218625878072541423808225650761328113862017321559023759248109441384278856631914632008317524329254744519914116452692568838168435509250591685851791864085350367028619480657683262313973052719954113877773792175244398359734437477589078240197656819727651289493572107255531924766152170553464064721604055314215444081865574684629808835292819343664913261231828314057175687421368223241355266508882850332562658868586951368212820423047760730162207003357426251800013983887296498616526651472749314724464781239678434173554621390236260967892607092036735403450870883368101023541892989103464909613500442908638864857012583543501322803685982142177619437474929828991395063883274918404197378007050978804192825613823258178920775374233312294723585711616302142446915635391201379501920018332428365597119277505673279283988451015844195734250694519205138530374252484656899249193921222545163130366006974849383076437490161371166693185397141276791676877533266511975027988255008608698739055955407773855774236463953148703077211185307450766585540962082621812848973582436281911709132655072591297285785242499043111502461826087931878785159954934047491943033976659424049756598418305623428240636198917551824498334229026854772839928354506869182182720088062608198735300154566776317082152573450032870453787063219185904613403262578450060776496556838174617371854407439222704918376431951030245788964776201250189826922205452458659907175323318909946532172566139424119969737408869393981722039209848484304293066744174677062961091683742894217253391428435039440572033739949681571995808623819204085702580634660672047509406269033805951200897654933607756664116060742621595162313196733799725787160816223156787666293590971880039403444949411276325990552531361003956421858624816840284035442290232662151927222035173192537155299749350537611451341463133068136552792568180409462004702164091755842969856753216214780990174722563248364618857238977066019527215515767206167165531456774134619223850709832158467314775458773761636507817582699417532049370574166822675609849300015426047269279530307083693687190223379409539313107477111523878416122260192987221260322204557823305146524035491797376844729256764790565389902240002604952908132319028694997698626780756121498140328577346628047895630215963403980214179133553175564853439188739920965708905382523968037808324470248900071015701208412585324164477696040857824069078485168789114757046698800928788828317643954529097135178949754315764283737192569696357934066685598540060044333992691160296022040226520474584547974885899505372525226706565249838912416189254483015994700704083700703743975119186103122113983317836077496387833667781452358041336497534595819788440949702865277820635600768578188900969525402569692106175264171067814156302977582733467502517289241572730871469756570283703508662532606827435050433679267287702547101705805779799369668017724629599502859030920662417721406258166534236888015900596395460392753402806055560452984172586425417071726185223794519097765864926164864265769730883613516823868925041100591933010813485226842176317226596798623769060168525397045709141081838179455090082005641165440457199535005058369741527431527726791229967791005727357681251843013012561923026381472371801295239305277385173298007614723044190838637160815727689484255369779302731536269728124835362931442737140991806769840117842285793438032647260984583341693933553731190714932897094090205005198749316286018357697832117839918273617690380146018150693591656650101159281137948485365483147517317811828486544250451524203470345632090133170568388988237128882835286285341667478192627095906374492063267914828040653198460242101572600640340308307121752137726855521279232494036247634065610235819731743476954643248143651059760671918372604710273020512086485181004316044407255554377794151617534526942039836312548013064074698073882176857154529544345323219482911386849537614978549795765221389833283756451154537475467667850160325249796043467965415256225095375580927974545551424766335277602408191352419742020567267811848533507527758204218570568622713542675192858150712801831229385375602248380424299988007885807863324650683700516725754547527220014042897319459219665687621472190270415445753593702377247747153934436590382339566798151517500326183615100385118775366725822896103195912678646831242380719510203687099633219201249923689656001538297055567959944660569034963502999829537760520010263543565925607116322330257670933795943114482872900713995084067061449790436749012529693240246211447568916053429655359923509901886954814506928583570218437662525225486589331288297322192886132047522272509753005688507684479863087086086985501924898676816644366700674058137920596334996901146268081803535125388847938473759628347253684132733961108070582075577440862508068306312949676682583166960392490929742016167147996694015794515050336268475564870310503852709336143147414194645897644367615911910603688352058969049963232910594948128233822685678608575585884936323942458153035988291432517980379922722045763552429066145571600083646445084148712668737788861135168541817365499811889540432342773077456971347920072392177207886983676986408704968311084049312214726368099195747528633098133258438508968743349544880205638947604760265394705053708156585324333832492279893565907876311044751587298216073910245051177902203640840489645661957522900521081401778912234716249637509260823552554558497580130922375743490200222909312183989233426876536826222017901643726942220906223663396638287654666953032597187801579926291575036307995405190034965821010828469205914357277570359353022886237569861229060642918141849600525308994195419294854524946991370381580620414318490160314160319531540477457777798924123642772915267229710138072287933132818178341717225524567804301105390929866736111343794853871039941613468565350290741883795364487157381128857148703179490689109701254271148405074752524530530519357694132570421488435508449388658531623326559912685521731177600222718948851106526252943097169903690452454819300345694927437116536533991057300863313075581398188164876021248490871294670629492760224605937658436428653708161505182149507295878622402994918424156503688066203018768652736988768363814050396300973996013951811910832884406909005337216744368280148765251592065107922730168947666755589218978245595066379814966338983490879407169770197435699279692060597411872934340081021956093682186225284003491970744288481150694756619981363945585525598225449137191819948834079359184465283696054871997755434239697374623746609897837463318776803795965741312812060061576596612373208229281950473135108735210184544353854218636529250778929618713175215158156777042367608796044515311292790322224822179174816008558226415826253116237965236952754606741351376782389593579491503415263245325314022608898925872501164785921843741250670101933547877164248391771223235041051766052006041195622315503009083215461891280363642820500245465913319223575813733597019876271001245189076852943276604978747998595624978139758446070597963469046817226269646865387679831806048717687053238819378293721664557317291231674283711452106797607928201268552938893127159601668055428085174905853921270366678297986503027294955460798451573638430981332029808095480718619437318540387046917240204977523698356904085613885923717767099488874914769127906762538586424569411284625521894132627390175835990106721485177218855297376880715698554234359961546784782313355566869404676748746354110826285277258699820156706060862878765767916791711478102696887722685703195460717365794274499010276944855704310464968308458746984042497582311980272757102567324604564814549155336496652737909737096557503192890863004096169049348202689744228300619385151052414451351460752725315230300859015658793981691003033544423642029235189820405762206963952094969615283802224240071355261488213316698597057437188751436275923067070597069343422021360386870472731204313254132377220504422894310669973993974998770326615026711536878170936990964642632855499305936435172937505000613260022546304710295858057848907896908273202583064683910166264373231240896948242941188428551748125655179308300602115729104706287842492236344149998633812390989147831705329672189850542878051692993120993386823361235399091145886930030784444339227916925772336679083991394428755136887965397188171815788380756988807282914968662920537392326323329860797773733492748803914375956189319734000637662761643941236414757618768168703833564604222833683314561958707949584492659501535709898363407326463958829723412031710557268284962571551516585501863817379038551383971239740171530091791256599565815322158333776844846097819913170381960357921925597674897087971394493959787665908206987276691490119257143302946638650027247844762286712031972665722977546150964709887203001826379221197451658298722923197681857563908443551454407101066431685552231548056134834413548117885546930567562447118530578134380453725195276785440569870375369793613322246795854141836885353439583805577314096310493677684140296804810200036553026167029542037125510642672206357484625694308478595274006278747379897649651167801903024604154923261639880310928204734919095051460713819894534747367379225660744369704453707642540843409128733263990307942071164349201132337212946856137122494950032736430959347485812128167428104412675253546470907820393171943182589586156656022998483678627686908474812756616919357861618343800105192547631452350898185848737103282364326298254640837457155619480847629484548866654346028085627218275918905134695794147223888809097277888165081000669594721480517700776983927200956944283207166985960436463659976366734331636766025298516421554826013838446625774922609358552568391065684634414120663027237240034060913473115534802995456011639243321115790374614104813565757343781011333601006064437418222265225692909534570385389689140203091843277645612876802686904048740652343295773201407527883512637020926470055294890834032235514616691408584738358939362847434716522487099301918705450702095912414525833052335695707654453566730072671277906742280869490929168668268187837641450657388923066862299268020614262983446029194726690602140228357613547450580254535412734573098892398607321300617649394296724513158601128495461328999128932360724720969144353483953592669818732554101949236184335206843733874270459076848977620782211649590317735344585986771274635792655799374451636830989162276990213806779953326881467967805219667239794400260745877948222125483964045373795941131417387608338288487047803291915204171496099911676291523263430209287063687947526352681848640926325061204784520656532735706857622614883121737768650176586175432422498704379094776009552215527261578694677025107128361221342309970456665936503827833312474219082430502579291450514700185008078437093875052630742294552176194202711861273287022615161806542111595897856185287969680576553284124198644785418424009648413051019975804528280066495354721140435092382455377733318717063167834982020248740972713744457055340908876752877401023765606132596227572578147634284961255420420086182132454821863853735662773495885119156310288998779318633198398120356463735985413335979330167738955857943002159725385163339705965830688081825514572510411014723030645163367547009829910739286547840638343702037520408246277212092940078561607141465634886699840697870614672603517948211708558230273100013271729144504434365566713755799935878431037578686836943599311205311403547670699006068282702832978032142160516509593734457218561090278567915388386270306031056153584227205419023507063016618455058675254487483124075366193973820428502841375093491925225987420328724797574755052468590598818584614901878723719565301503962138283372044678876221563211402445106715096852152258283325138998905909687718894257427683667622732678141517653402166291163171688465146371658075169767185746895748967232795567790343204240629030388938053843689511857954524704921416478573130102478964993129796231891111845758534293173505978378798766972714460509068072975640228499501225385202104576324261022432447709447786885672426455656807397466042853948606029763505395191004753424792348066598043506493935638993777092622219191248036036526699547682008498464030433081540084477389229063510612500163425065311865802923299350562335965870816582455447027463933388188245136431245061477495568394968810358059836958616127586666097406646963441669150254408176856556074859825687392161097206936794805268457590630417598669196004761451795581381770343006446336153673184033226021099480020602094322674735958095918182017422095774647684775128713090301297754265349833077631905408347737757740612784259971584282445558015936114735985342781391835009812730447887536085446853906037887928269385178976921599678147049292997685214658235807517133594978291800178368549013379924912779942967079725634905682913977453608978317775937806715821631722929128437886103315145395807749662062557613614460837824313403557260784090092630957728378458726559023038933080158234826409882906368443155764453674100966344482282154306343077976618537331963819603718306430711670556296357408029011590993333087679080134080815686346042209985258729968178469826175776877157485224176750329216239602014866812498680708239389627493599848498228753786744387864754540776919527118864643644700514632955956609007564642095913545495766093475334748108416479607361138915778035673229799106572801399664311313169661954439887518879138145377281426520889133366660093134249658551532610102385660756702801497076153395552309707909566984568519386540839817110636925516515011582480119542259254428592381567123485322362011241643588173515802286751955927115536408835446139904072353297623579215515672113190680941737523968116087328020247963344055463432162539854957448953877639627308705383444430951094172331293853212128773553589573426150428497924484959056478378780385166796519882000608371739567714393583487325029311090191406605209549462833314440097921999320003494276261810759166172280680104113731462311723615443878397008322661126757169712796568104491188141777405661117280388002118084183727428966764372530619070109867587981156913431084310873684947937298723497700650085566748762278399870798129204448098210716602893119386783521705499527685688574970767049230459496549832513786381087148609662133115273139238583549943777047876979094655425768230400980853159278326667461158057969086873366721422061955782630666637866227572132291493723660395408287341480313438374456129781829215547639967744919404222942041652471800088060787931059549087748245253767631467412696451563926294065597894422114932944411151494029225760516698586031053761368942930266867912598419319577315581253787775153681820388140972608970933280680106221156197562114684840849932799377876131326426938939041645361186801046592038915503544256291911342306351216133539669931520944509139189588981228206377152738843468682729113836118548164541262753215356497989743429924930501403592010864620264845772807874226388229491315570654882913874870867245035099392943177713877274547540612074192755435887093260565188350626975805329922343347438741056861315312022965798704046206154308259086060011637988925912996046569537151635388577119907744388528936650835973191749020937268623608127949461281446856170342879798970558810160718737235390766935593537793140455688744740054781419217908900949614435096265940281119389375623898054321132741321677450251377020299257276256703263971104585745323538715017347571095797926610197628628803894314786121310186694917876837609461208488207550225318454633317296129792421844587326495161537237987683855185836259111831612039519364455248726280050293934325631030242287754304016442353120276277126557641384442443084403583708652454228442240502169386020863290584293351283273902908642631377593572339542958755388903043714170468971900184549087188416593547555069200515169281816608731520599086310639799643949431369162928157477622517936152901566780785006166137603923646276786219416249452414123451653019802014238436253252317087791310201338324145493098979092368116673962623641476566634812521319326441496195113111839531501329924609327186237164019957331435484221630179141881455931219778392046188021613042457761660846180139074386217362961735580294570005405505466732539629259305473157952537041325243340151253514299080360730994885450513664505394453575140264603226678545300486435314187324778288435760835167909701376470688312924848962807293847806102955805304738595573159385128336600538704265472709479901550098664506441997878134576688981700210001014656429038273745099259055673740630889802581924940873222257393754598519551007866000435752476408752432475332010323121675896121362251218510089958291067324931612056165943009006437222619045657723885834460375156486888567178552031537627837923271433754857160675269014482066466357794966467092431915808966459999673913172466668043812880298810183008424910078810718398740016277232503486681207588827991436663168416452890005268393649381331064129544051965087459977804876705119432944576220542101100970140478054629031257127101806425110789263527456136886444933250300503335803286345360800196921208014013254287175319748501413201144158700027488475822999676845174759317426357041785297945752821729338439252201745763297597235814671771304879039808650256334171136727424551621258084383950791122909029526205767245348472813961277020247488034924403330256935954379967443888412848113138016039503555851146261600827061001657702143671581583804165860090598371385811515577665295733879285392973130869331712572247278792112702741346063393447061576072114724022883918259038553062154396546521320078880305808777020269440759818940649550934005160413451734644806325245753260785109343010706576725106644339462507126969059001850211786118482688175260743272006954535167743519190402179935878261636737002611885119243871362244360396840251238134587139523134455251394670655681763260597835638619930282988612040714039754335347840066366764202005589809940618210776920690989714365845243681820530009280122451309189273342041147157926444567529485061367294227799876585729282504369394545812527377374502752378207619707415441756397203731868926874907879105816840716340605972853242455702611633844946239269632573508216585728185526552334547735513709951527313075422735304698184310827225109001685218231780426781211271295760619712523388316131349159097689513322898437188200335657271074570455104709687093971027948396750496965265383768376710919203559845196908102069027732868652190703345079269272532003077165623722450333950929969803620555586379546520416917574884203468613020438693571615291119629397176979281805238906538212098224810177121849795262023244814319511651376513715238856197491174221943928253430752599236136238491496407261040615422148488150129232492512893022750203149541401348191677261736478308288022897210484346260347552731980819205270565433151402618365786640858408822680182205043865417958647068075056605291921257180937529030570093844563825053048502480475320211077760133275900370004830775173875086387030160734958031627209819365340321310910145204180544863966201234937425636710828818125399752867151956998971526668086795268679742913830038328734349482270418873358775255052521811288656447076865592194495465223910770649737102504826533881821579798794153247111490332362645519435880139441337949879465314168530312463932207049177024997590011829012896174948369481336514529169603923665263934922466219230091811476725592785336841559282940627297211817579982231725003514725201393834302696121800747860422647684206702838958920680029319139764721099023942487011087818208301371394396685581486785253521230558447851608314960948752505258845251842298980228805285371521768805496509843860194465597203212751199687865664301860723516662169759201575288359804152204245240270961612520902734425666499210521282552596705496401103634755736848533777993628825092789553798172603954649145330053581273357434384111072146511618202165196422391747933088785006945786142937662782881942105311368796961835214006019207714050925293598516771711738814448575559228120969872480111535811641416307385732200566689493661358014183353969431399871651434023562030746867706969100638887758014170699053909139140842828462520090493236487007200654854587337765161440520969105355363126623826599519534894482953109707578746252266106530923802996858007241902702114043916632924496089183657310426077983374887500043581641735199287057626611823033557321665713750192916058746448228694962559394981493249977185051415933812331546104618238558086685999514026298397960808146470497737560704998246317843851743683491225046765752648818952523293282080017894769652892442368739818184985751683101944334865514574192257889117523266495614604242948589156154036425162132164663843226007046610392662919105154386264160444297062306339796244606679136316312323085168590240658679514412087843318368624442304727101329667869958917768908299418367257700914213791618852305055894083752019610516514829079114909601328503983116356428986348746345388985542395452753015332807982632324668009858995782897173660295407337919849184493059678608373098669280009680668605667175440907852792128005077788099116188546178311063673608134844833509540370298322188258603566110949873937757984390964600912667992814340495416668900413956384733065311988931136759757822719186805581602882943906523877835870142913629574344670339657422739711381831811285488148006230442942709534170658670571212942880817298521628113812651641999889508882244180492263589142880278776138393979728088490785379283824180931303429271505127933084536799084833884525969134691242578362207550303626422317242728230790496124738194648976397304387300635726234407486794704136354117028614330210924144990869363131265285948997520432739084236238141704542652803296290194290659522499658009482244766601733229928630417458411122908695520598832580793217739305115333462865065121479824011563319548128488400847096281341047749568096584007866257593868659583422159073940810750735267725976401997093580874469812276454910044243010591332104696944583289136065099618495867238918554251761915768144649224213879150883413071937197153978214297906232232151830847787606030926671694991827536289516017533463145675885123595234546848399486165978926922675708748737927632389756747563508462224784929816279925366846043016043796443933363419769502009766483825893144807498398775918000374500675806509694797529153379530820496447545672294718287417954133571460997713914614917762266321584687271563618457018375194347525873397249807685275402299713755687051062142978108284795480218047704180779011689721966117275659314884740320658775332339009920562844383564090018846479141540975583981644982218183920551811294250128155307969228125669852295852980712918816234899746679387553837214903233326022008375115469472010919758525199839542004121766068752064125221382827465200059222105732292134538624303202488701574559637943153729195394317388328971442311877469687213490728796447103418853367491772938746194433091108038115835117404398511670538236426667693104670477839729459482237831889614511270715278265864115798234225673846617359766838924635955257292551134882529593718415835223096570025751624896057873772360105571968113169620878250701153148966170459514677216957240048980710856740769995438831336533957175959753275904503710510440184900242897044375331572971461013113766442712499346292972109405989369810443730760338925903224224984704185203287332432717960075128772775049496803132906797685430121703614330330565213159831105972761143831464066692033230116911373011288733649112881798546666475273440347883892954628865682679515048119543343722803962112951147553806323334339202011231172289263896899979832025849001957274533659882242610460281055257771803266387220064343584232095233627930337712757824252670206612188808754913934168975709379387801691386894761705415190900522545190495465937849486154323185578236143151912543540330624364484333749683177718694808803189308594404267417045769788704187571804141674817907101641780264680350903314614967750384789508633016127951010827371882792575416056547254153029808637451223814702497505607301830224208547352216901735248122062615032100374477227631540887268821317198951232745247282922793854773719830285493944998854900175802095613806461764432604255515118224019990951497118859951773811343575668718660463216205998659060799184186942462552306147689199986581678905603678639433293517000624557814870232685059423370993280773759292821752795581816790119702937346589570877168793619781992982193638514601858875814343958086979872003199184095657540625610527932835341934034420139808866571346305179854616649414775869726888391292732207025187817150093921648704292289723949133869347388226996830167297020283446301081417523122577837722240986380869351756418894057095259764896754221845447428012785695015664619765714421570999803223016442855778474740968147111727624202566174895078886933067514187244735098256218646712782899120618671235566136655691806731873981709073328636703899577295427539636763466696363855728816141282264296244552606998600984379515662677833331252958971832056813186806193922464285171540373475132453899410365101425465605437325125427619564742869009563201988168723521244569577258423282094269970723617772254670978048106220517966342465453152262903826870580277525294932684386977798545996780224218665687488758455365149666197944260330012222383563398329384342043446103431692163795554562296766096881278520509726045338064915703288873626372371230688876366130148365250704731252078261066464670738943697543821558217012672597683412294271054867892271256215625014454765941402684026285917239925240523520179422034240045136867927127372606413347903152637235334951323180625038362292555473449475359111592667676128447606991096274472027476225997275880394254355075401924174460640529291383022688739038668489807143660666309871495820508240481796887564714572806744574290139058810499132522975846076739637644342352162769237904541320030801572975175517196517137680729697050081523022019491756165760843593309271202209161095684585158440332990552241281855832104586019356932598133813581176953243377096003237342596328597758635280543262486538569158046632615602751524364918933630447620087169148440206105593593082559262813479742625905406634807556564124371062139117451422382248877374098106926651385027287363043677943453774817147837853524972361167472395262608468041360640692515118402520652842608889681451938388212885844572056753643812560850020558671333241608488403460874300092837757030098620704186518574995524362228028247419111752711889214679230010443853290570941450849744269148279365200414029058624828852647199605151864241062218803935731431351614080397489988075979590251581474326912924802939438844343916820525621679741802254815324582646345324969693044713050323742203690175098117570379717408336449183382687424850721276716412301973532810666049064726123414242989429041101500695241935632748697552915219169693056658425519988801229099587553217558878708974106210797084865277978593529948402158718021744964019753480425238918961303706210403114507641171933487177338977245506129005493056655006306641831286465423435237056389575334913356346093023544717896953479072939732545593640954148883200873549557029398189248116720957117637136121883056483988810015355102587670101317445200214274811376744903136829262913116056638587043019129362817384642018716657213887247484170714478900445208749442680417928631129167475275133161735489145229815183087691436659991007039144902563848863270562739137105681405948805334318575702350432135480145332224394313801449751609317408354803671173785258784772671499766173708865490005341599303623084055072431974283578821853041645475729049558801949935569023649258930352036672284830804297690865016837948071911134368269562864443824208289287075752066815616806513279302692576547777371005748045055451652446158697011349586616340486503357854469635293819941683518963603524707278177277188732479136641570686134165998800338013769289344290592719985772271969404239800818258536014418681566937062219631390366747767885680908870193391135876348309044552689964092022434376827181962467447632612260278636425882072404617960631454645046361671572545267660697705036775027577172753121821666632559086807058950533566665406517751490089843080123748976344948955222757494257675074287618443804121240344627224583852907325717790578526257578139109576397668442547051603910948577673182966527578275801399564674971529609574687347230689529470605877308432525837354021421902587860916115678023639470239220113571015301158261062775262552841864199658583671857105343642739370339769882891248708221952439306422783228909388983972429223104183291441093259288514861511465341371263355228753572157431193996409074415463177999311615492162088007850300396756785912990024932533651521195684783987282582919604602734637559792638875895919791212848949349491338629944109553621425918914435635815600732355895265203930281937163446343329454176581400818246992505301995952164974837592631861424183497693800544107186464988696621987467062275331947180997535237625875095006258885702147454087145312236192522373622833515011163109342113617942362356800745836744498702944803936836960988028470651933985499005203772518060703803677682880446139415297579437661071377710311553505187285609248908965944874837247487459908658903686335095284786213915113299162317916008717147995414185376735430736842531692369233427405349992600821124959939002930432867421508580577884019809695024124151075406888441284864323734256925889056270645542070584333385408596690370327923457331206323293221814242943166491416910852174088748428497082589736051737273439765234790052785379535380482082368443488948271790606025015222158710804368647138594383582092425394245613180189023711726069491215661247331806232959179376068646836805843169901168572266919869073032479378562735926086327758077111400441564429748757382505464492091660933251448043971666773276224118345990171029680090185701214332101003359309735765962297463660922839054350893911994553625860149363770032539221300871535526976903274882954014137109916971132834886535901395345606677281611813338975497136884341073647414816827212439772774420745244569409823494735268443931535220994209301986091205356783884733484767811022155357414092585628143436329046470317165280724170719717220505067164120577869523468984799374124694344141160563382827883544087656821194805317802881563246710415784711325897759366022439822688804630497776190411672197304034542997449330411678364192071388531527580514493288842357775516508596789499819524396055342254688012823971453861944257362191542367947226180122927793695899827084413759860290932294878953976094427952187844775325137887460511614989475802143542107068925125108501906991025662997680314568099389319438111170073464445775817468131267420305472608976783287879360396656839429699337695778449472896550569703690502233431231463379668965500384411597800021166813170508950729952063892859009872591795783847615479001292220293142505932410005383755762719730669560933653942263510435764782967789083539090494828697928854655092084433737322671270414067060610874134239186357581313499490921805089119539797001902959652523530409878092104030547905544779512865869602625453486338905575516728626085904422116899422414888683826331053014046378546531585214673478266711566781024331982414407653856586040521440561051215058342167959730279871816309355625426463076880100686439059617543219220986656468638344663286247928616604745556968875237070040796106861142116371882358231679491070277087724170635276341552925553800195810553812472818042409123838352064181862223257999643391282101515252777953759839729010949850791237056366102557547435152656300928036184451910607371186750735926346401360906747064226197039458835357305030825602341247001237209747250795547447838861592759125811071492312071046528020836125736677606867462960316076831994965246034822109900256287977750343174481756904244620767428736460040662364238015863882008382368633030629947295176800723096852661636821983279594099157055458753113295482772608067952744339153629052822571055107237047287219590419834713149438617279102370865637055415661382401915188658552570334232978273730593106068197893188062204275507857350738816298357651954726738810023439442595887654528890541513798436234955096564345386023704661909831604129557300035403105210918036394662714373013944068869598815596590538280666466342797853305148883189369194015020735871265513668755764684961399594951432557660032731817770313971521472534341667844270693823994508061694507411106032534755812286512247366274309874153660037798005852267014964278962263630561980276122749685677664358486911295955366514357134176328512228346733596180714302482976519196741905615391116637358824579441972439802899546545372863104011342424108126845526228991486489002142476547092673309137403084574881274257417365285270431049710046819054150150884952702912846555820761605494937911229899621724664489024404241075964587744762110165716887416566534147738326767737799110959184429735020093688836399969067129694608345035184211957068573930718227251379202741576993956646434817116868731687633583728845806220757862354987211899888701575078216472584993212294726343081432436262240667504911248314789236168221209832167836681742723304969650101300745815461994303488981574897768156906106815353763547294572845425080180000545982635438136592322220474803428535334516331662149004635598844477003324023705080099290286501842875967694762995148630330083799441485502186538289796914004627401212253269247035269542911057307326927265321724539972248181375604459833139139508012279181742760581403627175139569971153626668679786580787685056464842745500672554564723352048148136235625279383543047116816342918144144920308780394049487375398956560338310294128376361030498164776541085936644845359114494306036755817134191299810071780391907264528520767487159116685794865549792643696602415080820321224100164432400043204917535492999177704757625050387826016044859117232316844987448501588109982637874961030569229778631285027572797435349712175342542480551567023906040779841294455810788487512860373412163527409653091107100481907182981641587994580145845096911629244368581686012411358229674120601368702231063857849540210507136128551178244150062980843622563509893363250334160162925668975209824271637411230057579254284364633983112482197894518063090630617590046078404847743827178209487760147745370128575271404466339840868580938650936319134222271115956416617356739050413111813492668609248625809081687286211638597380665322666840653117235408658389075395658664539745897700019246736914812053049880755829796360294766626603417489500148371341187631036155606687416767288554904210795883912574085567005022256561008527312359738241182445090907901959545500389750788233786363983842063618549439698297755836715263019990040495769063775593415040217687667419848847070852797249696894336850902760774568099152163182067441029577102117376478200388461457691944204365121004665543340879042931339649693910433428453862837667531566729896839765863557587025453136029679205834999527134539756090327079408340961068473889466989990087099401099823907207773810497356572347061205177739555530361685262459187546029016520936998726666885318511089422300775083494521302663208108011480048440963741086530477126401031313961065674087522814206901248215470168961655702977759603165791186327261142049177177029089151323414298315953657353100464933812374364447004294331878659897479474217920271771090371515599367515904732175744016365342430690386753988494040903662967732766870222929910362248617582407821599258295900096947902368849664480016784108514203231630631360641731420917640882550899262320658781903076737248474222730543001610384880850422453077163319012109664706465595370436097970711698303086985056450982371457422092419986946837600439801921511030241741953396903238674009032211030427565428007663469140779396307149770801591389563604690552632284680473647685073214153217168218174713708801003706101450634484832310516462382341106720964439682061845907654827595990161566463753676649510004859280699780141000656699743825598085980384130985789201557946744430321429680445086184662748198746071547717142356535063546427075384341084666996898366445909904267243919863777049667302763456019243285143440009295203361806369854784391629382050500493960822844673524107971130723490787914082868161343448426747197799971663909159398638050160040677149059601666305136569958376256886108891543266541076100627270637563750891679960863386038398221761426363065149755988915099490006574764801842119769504564348938741659484465604471333908286244661615581660972231505659984288173872464282337946090166429282037447663163120988923867557656739960758268509900888748830825493309840010275407512464540364989070119153240404160689980471331061996488828934472646289415019199730715846143145650151273177966358805452444319729899696467367635454093881690148834082704659960383237034087999827300113392134793898884218328361927716774445064973556913356081844233077011892973128673405412009588962208005255666298933548711577155366544352060343950261740947813358613429794072297075914371021412535336067270751276304281667628330912795736702827599856887251024471927527940901865742084952976752415369837250810584137717694406076068763357888561945293587997334964944605579790239661551648181878769820493717846662666736872052700547957705290021423418441058011833295493082855131847259195631821821476165269695472954973950308874455671046790429207950225603818757961140573189391179243026447529413419222186469683692766845373349505171797462866454837578355154742011185658815339639268708641282140275042530975783377300235754948151587249231256313150006876596803951942321260758023179545100630613318894748136640337315689940654128492365188755295171616523049328638985300512032362064538367225783019050344354961005124301971200428749430748149955760495486473922513881553681156171601433946399363488594790180226439302539213543864011473847444310129606856943643132269061395176678570390313088670616598046796297976417257160868277916369822840347071295407514129877404638443204060575354102426657492217714296679332698843931900066998438181320122474790698005862192712555458076719390557243926336505243129761589528196735478631503884862913162433569651424337040471197318752555525707591689410743423822581009124581166176997287492176684924310869821869835880278150024005689691003010488115316747519455026566117562533638838193019122556835014530150420332614897173764905378603371952297151152141904728195170355903945234942746677117287975339666466398266495879781130294033749579826762163137892047016587067572717104842345247293969581763645475378296972529097688230837147517348738528117858196758950781056339675302680272843029420891046924948031563080161411845188096186895787222677884892048196249784696873773569292359559073997931248356826131901407467464989268902231458106893070329682339549650892973503203978881940041389012713015774972534844221582459212043682357333226780567955880376899562098582931620372325335724785408073140612092024525689774538457249730083794213060711541464745278740111988767092456989070170221784388252110363530424815412764265301368356638724436235321276738323957116975636789670769107032546644965469231091676261576784222942044638514979473985398598154616747940539229355674794025337951930977930081959275593740595919850984380104623082690695597567712285204001595749167088380117320415256082063438562692019005530507544058699801415306680963094417204958863295453140754962413835366428215295467546596220446041716423800391923229426699785242247323784210369452948470295799791552872750766577188897622566613553369078311514686401253095417708332099202711474105530115628547814827611056463733044519667835439648980639399455838605734188706340796050482283182810211004549214422224618955597434087990346038788056356816627882876291137125292720753244378467864205701849446719178062063957597976462391766686668555934146548649618810887439304483948949926346523059433523737506673674119203234132139249750635335245564682363148375041369634382679753154217304208837551424178769096881824896066289036077610233529231232051378594267751671966305035991506657882231450973986812986715134867624587333508945539970943471218174025676880066692717504189876941087893931993051427332861210690466493773525820266682414940007363031019705516159668838172883770352194660640046237518450469338301339163071629632662129584748382340121522452652472946311858023490343676975494561643669391205412826526840925335894735951242505778735977256163240547403367840057582873863786237372829149129936095361948441659212972201896782266822934062426838773484316934398593266222641973396274642351498675503616175878801129551534458842204903558230700588370370655604049239944531081055104885996579819989688262054488307468876299700566411773271475377944619700043388004010313545174636512914718835936957236436391202440454682263488130704433185491254642022032956743721732342060025651111513940148308977410953774363691667030732907720465326005654872458339488771548798973316591968766563333411577088937569445046247434356063453074247419207020039212268893280096286963739312313552800831355601216483967320539011469490566215672391134850634161932903629628581914187717054037845199473814768973735454510860508434067815363745236395210835206874557975683826300625377941522241539623288036933178561226991529788488326439473406249062544285479292339171068298922490586892695571576739303305438958026550277192857149837066731766396083476981741532841579044281445333750064296990130343293674108288699641594874750309603348009870983720750329887272154284823587960860828672166763469370226977386871225354912696596776254180591222152149406676109110667331506055203661507979565098619702719942381848473911990649683040651775948979526816208459156168247861432204188471005469168539796458651311637086707822772653850183014437569400083802736606284617963388752440969459451101059994013881493108720272610497633438592646595386213566440216107173085367890901714543599808639741116688153838997767327409989659290154622067620190828612802390651573533717966659550748013781850662836253180640426791093750747347907752238615307615787873950481276719233432885732677818404649867592279015148639883713770706511259106494473514264705304316534586774072994933805423879220234380039240044780675878655679081233877804623414987911788001915552250618328937093655711318835547157648008970946037751428748298912719919560121019610620099596722616495367276639674372996944872218554855370604738753655773965413305923558023294312389669734150998668270292716786766381252658371600958741222578567366130136963166692637078176058263430167968854974686183336041150419715104588780170564275886650301281233994489907024410831700399084902376511325339704272749814325335789416236444677993143292576514210584124163941428398583311982706155004374143185342345562510972108981380014490375674105056769974939008344067768304505547750640986788228114556999534157393231874921762963774132413867161213943896745177465491725435210452780679750865945871347874433586638206809354648679180867643483297054075104479062161291387579899328148540536965949524756771995720616802727275195819504210796490797137865815726297292456190816962205373185222232097239972484859348197190480300770703639454638187139461791016444672329436298456686471061997126563409340063014908893945409764504526329323904036342134664494902706916442953355704996630651119968308963870100479613929244832892990471222331476486451922668322973359927474104143057776122478193763772137337386894264125595656415708204215193551308533735790927124375904402355255923454580075657218214665100575726171620570879394524621595675399677891546690973276979288746021333439747202708316328729716761812354835679141068782312212760820413092778987728039649490286383053001028910663280596636330252302549571517468239090668473541032982313327048166319145895266060742303924787153820035637100460250977145757951559663055020464912720741406335229734303124901798310354162771559740178599482571607266780478205756900686669395780478553644467442644416355742116593630516928131968084012680951496562966326919305557516625200626111138615120718008605959516954729281656547274470400011917325405704183856637017740550408616684399153292050531870876518413328858197869656641551262043424448963895524345523494670506721269005866959567090888835185693216868900698979098839325213107877479237164112874997860804949889100210261655757757866541951558158905499042409459198555374842204685613981688259957183228466292174828270774814619464690823303479839640087242613902489720161011026844978248788444452862244539918624767501559079792435082318699187022179982267188159315659592901653275677533702012284995941171714896846091215149422747909860318997533359568328868687462254326158665714461091304510628259900769402722610169940266126029232284068316235463271500164448564461660250955427901454338826044340500255439114803465415874140948225163964411426149976388714275518048136595542836674389798382002589391430746439788964459215928657976153003313969939888835272600472709440343793476037723026654868363043171700955251866367200313654767897852492936910287700044375029101551122996693999954858852024597634412419274872537422038602952007058982055239111456046468184225070206451327716140548658588359489080085776518625796565266539197328714133616792916247465797316348971777613392868013270712490749111668455742625801679931637229654884560554902210869066353258648538741292029651448657245469918054854521051081077717257531799213585941907938047305435239088949822841212773391635875094076213012659443286120371492880449005294404854289191024665764400282571400943350182696283341521113732056324681172059837547810820015545269388762280443166258477922269186913663252197310347114427189387499831299189060229690776854137477530993933322351040951577333024484748593531402031950761088792371845981322191032434842208892728644332167354437735588535055473818533979772650238344595709645506777303848898395661969027299821845452222161739910864129041026219260432581120880835428147937153554595837981241547817527446821978930349571772072370495232105583642381452881433855412516967812250702146260791682111406722446933426991973925448436338099671522539587903229846024467155117036920923167833024332523210628772996942291037880408894636291416086069877277591012160375173199717701652430374337064289125298183348572258116222689328666318580457377599685530490223260443949415660442273736067833843017253514983608147109776746136751482490482492279638521512745935475105570283864820231495885208280007403134687231959594738871816860865575854651460464605067041603243610843882956461887640258800081372252112619303301394872794664606208199758024138814329133227761539543901386328955737968801564249718767186411913003041978536603601995055280397287565469025734605895491285668558802836373247560145916413196757914540912914775283255421488922581653265685514823548640376376768460320412291913509936873798957168739270475683351148096090155968516635029116792822163834143515063790457097893642293800360231000354565868883033377413072406343958039442509246032412448571016233213876159352670982548532612487329722832200197737152364841370956842309585428843471479502169413067380907617456514719066452476156441297087677547994085867664744045498167783113516386352324615174610683044634510194506198990451333603452329237275863706126435279945228285018747912011622507527698345607112389232428414546504854269491308202978753987745236830520390904857411055011996286300587168007844694320679404098872557973062082319310071697747367373121689357928877032887797885053328588425343187203517613712463692850977894353830139375273835151452864767586451504446434468824612275559241858974802125365514159010651960005329885142914723071507230109916337888862627215955222100800425332329880831884836800111775641861267871387902116520412953460887350567679826933189433787682069993071642555385384095986259026577572473257973996287273950857448398124409891945233418732929196791027300240247662315140523354951170423454705289626231595022991176939431397287649568357735330924027272452715886986640127395765730800363027540623087128736150648346714294820325269088144927800271391080208027261061676588286251125283961426078191425682668214928362899428639181102490140263707470806765325200028713212371315841873117956928848342132347808226861557775380056825138803404403865045962460016207211846188012595832069682701083270234212663206583617034784481523553091571592484513324098925579265313031936973457682731592049925323430048473569755205562020004860438482670267701776760667419715729244778527453752903932427287645245204453851149292438667388190997189753151241362929135661733556020003102338821425000515907545719881406969796086874490808215368171818604909686261794854243005268251755105534702344521567622987389239462985710685886453144560352149251307862576671468280982387658725794276335430535406914762459144886031223194572582498206421447226087316831087055255588755282834332236759780896577318883949627624899985853096968120295944985745835762914104767566534130864663695976458363407960203512853565973957085478889637933262115840861108962272205015315464282592093574914853628935066049913517488859895513774327190434784777631915009423145520813654058557825880533738195847063849099729831196404767301506670481054822871270215408506343190269946178344511172010260033256028068608058166475366754649411514094446293481674341755967494843748333480363503491560403239888056171808149596929795776327879216183123256949387548260575795440545918657978226419640647614044597020103090923869999209609976703398935356328474543341288705458459874705940154732806383572806565531293169441258185548658429127827987178469251375043481647124219883891654702052466992628504196495278672092391993294245397663496502786887591730383788352368371826121423027114826070230944972147165382123871672748620881421367784293336149471646062461391259010985186260434807685123928280838337098319595275375020188667359634295063338694818487913419495290416939974908527548390335111249016770765689421074746549043201876738990230491783284483538452201171885099444032390864430494493572255315851962480103960463060470102904569755080216364152368139099178969137839402748562139970093376138198058762481996624517423605231642328460964899084299825486643375809935944318119022888124767839386396751034357115845392488647534686847343317801268515783591570817135119046108741893619836198861952012949195303534450380977868317595731654168417721082643252212873128911770236699496307007624324595516195565912152993881138144812141407416994841612573597184371475585463333122549904797238028563411862209058419541054837470725958334699728712277649845769767194714469617966431598851338289834934181296462216768286757140976542747053818050046887067240822483635790892468675739299908479255030658546597999880729759947002283856228130339847056006395368332393811343253506486843921029873479122649785825743798243336394852616241612643128290206149670692412591400345608613931807506622260406384885928699729278997982069128868744114714247638378337259595267822770813671361395434459637234484168613229542961074251042907386256424403819703548323126582016161103678829815778087709627573034266808995562079686164583069803956799514020409834594283974091146625994778172656937353678881857269738500547080267928298390299048910555864041358834585712161041071598959953426931774539409935199367084567108761766379442719419915116268124871300799592136897481393804343898685295441128811624698290721658898318732955857660144681238154502189635583482226738799304441760315369895665653857677170779460468754440438206880638852357888246823549235099016779670769756121471306834824925332119596856256814841284706681626358173711510942189706378680286257800449492293633178059483399654333198386618414216228885892618907625169453556493769457560304861836096692470198172713711241754995600447623136783245374760464882546994381047119820261405750859695816912355262571228296117483639646745275325364044105040940154487975902973754774404420349549350924831048113356315444677759926679641539263122437401341241785754910471594491110095599257140401315834750713602007840403650871181855963847555308447874931485995874278600393044810838825225918376267928013712791710307154458371388328045862158974533634166568001622787282975637938456117202703043570164304748541108193866532414487697025329624632675937144498347093326377827236052218830585237046568964992013661255686510863652514674684684163608859959125402741874494733130064934401885465423339033149858132755946173464387346393589901683370370306334890768580213891276342614613904464428354989548612065831291975644427144095693805749360394404785539863906736383559035492086066080232896822212530000171312948927261335439633172328418228692186955756487811871499087358411183312981743301241997469424025484388745439501275169491162547948750111573365670545587391118640988321987672843700056900371104950235400715467206345881458944488371773584594924528492118959148344894565330496659923030539824108122717121836765735493243836104674834958146659205845058217814082616401764334387267815320610972047381396497576868828547232816165449915230931425141634873544561194279833214150946126021582548156031057922625124345573238809948063867731161718566819970865905876551401396016836684393009710573290443557015117153855679252573628255846410112379826749269187736990429269577488509830418061127937834617397229932316441800774514520953662465980871779099285750580685109278041107613908613029235819200003024291788016837675270725296021880406901293125787756636730148720902418113167575280034768220778257295093318696924078834057367112597291499369938083202233013507145025209430592284107508447139235749910121173923783628356236862448799379292020691807893536096607198126893196155585770471464197167191958319428980127082672043976226744288540326300181024627475312476431583786833569706259877457371811879824323224166615439693059946188486112967620146656268680359206123056418574804783397004107558715239693410627631810131342281808151062491579617935559213636998701410079346629425301885008109647193923508520065419485384031921315955069818496732200073535709906587526098926914118068696863453676556057377205293553505419949137216649426097373964052925523962393163848998941077599764826460504740180396288917870928342367938308511707205956632985299399093855427885680018711020297696737269610026830715486804203151765273288557765726621131767454510106630369380279803736239307974006084767479748849640809513414515305090116486478454243619104285436874369557665223711890976128372647880843358318871339329548424885673984840801832120291653048582750115407400558014622543176524636996467304692031001962998756666604043220159121512294389199735872061462640859339946363493393511751729372658667498214399262935842756867572337713850755671434850594724677358328741707304772648825983320535851702153779023900829421993136203003067845975159919915077230043320178569123917174746041381527116812865673561912513488401782966721526792306923513542886452222120921698870775330097812371324829935925177721338583399747795688174883248276913225449567932761791780624897560412248419452329579535512501144653679282897423337196835079979536000211355522495720639262074204627932562573912140056000107209179853558847805370505248957931621902731541250492793103807031040906869720356804763121738893745251738430693758731238985537414135383258330699284438231575154291616142361788808560229371771398205330966789209654386717539534375794295985197206641501891583026920953121639221315454464439658564977744756440500912622642236670589431666424374776634366345537254124194006256639186574998409080838643133352337517417537418913373802262563370235949341006047731991343501604656926672991144327623995486938903051746013815508038736785869091602740260937692708439946448103591907642131310889770179354869058927259298310908182477873541939977026602215947911389395037692388666805208233271094670813115064193977472355551611209785528513665100523409640457810967022168816102696347871100157014811010017598482689962166990592512618931773915048278135720845749499077855549680110943196633608472354194863684263458997592667294214661882778513384671508404319377253708967712559999328218406469420316058197222719098767811446176058777696614661067749222588588465745549864006695223364684419569664120400810328240060778800115790235330738553694000092467218908644082121096808796835023605403565328678717629163889278042187966761157840685913656356488768066739118077549848299590784673506183950749246922859175932029180950133522252748997905379205861620840614425329334321233685221515715660704915407918887451984756541472723594162978253654772763361152207497125749327008927884629089340341013520755393521495350910979831799812833721118026399106522459074564416921553435303834624249222579671524033370654030796469750729329024193526387231857429590399131322457576924338137910672461516163441238483394548771576351629656705111656325277608098416696357471212596505182701179046862374210466755242119598337883965321663522493843294836841248842552284176561386363226752496327949769899373404002570117443436310691892164923926822602414554731999518924550669211136040901990247923302257048386543071334683949575580869665788169753987088502925200859380267442321199580837183928354728228966421436278832963556680392594027790453871000991215887433850123764625807187275623959461539315435543718612115373102577381997574979137394682551394476167015993927021314026380844712535162239291880245424060392290248013618737841523350331700079042797790260421220577835803244990999469162065433814098286681895725253693669424481200605611442845801146398313286842263103557444415883143179486192747449775520723085338459806268723490172809279605769281605721109173332686861909046887624464290835340817798696087184624072844647473755031810703210081362561206378453471060715053662587397404700518427139610018580360490724024848501273616273215243101689028949727495870442594868512119576795997039070079453810675835329123554881747869554904173097049601837773715817319512151064703392406974708983706107870400646754672549887502121346357594653202723223205875280173777288672044658214716771052699268494544088525697954931930633555069730829888241035408053472758377345839202015474389499188947178941221263614878242207425032310232228934955462698018690321089729154066309256415267788691120667314800295183062507615185594460842336066081678025746235970885063829899935293247666890786744112158889626675272073554307079552234500181405729115794215316270665773889320515921362667926476402606875925858854938089004255657075482500674540642831945011883628676993207361407231648601515768606244838819326899712216044341108152657491254226106312095973899713890338996531158149601544956757656855644507737028790493937690509942077486889493707821065723516508606897195496271278562206957058793414302005715690322315783880650615342818498830775440205017021426899918954044350287017156079318215127939174407144714749348671275828529038500962644919072529386527932566086259508581357385842235442810171989684732248601523403746822893404831146799581335177217450308394808951535995490755403173689808708960177600857865891921954198558299140323832720384046836951725007330973750884923060263066345476123539375152981212569695960492869957980560659974214562987823694519974790271034403107134960111507614449582823837603470974438671972898554470490888969853082203193165468025481604252458771135311706983609921184424038229407963674565382855016312122614963996031421785621967330875715664474850726590776079784729446129585474723346095817650092779517635215978960185344802510344026142273875200686005715784757138563941950114817823296946319591181604223177543046454148080328326505596348479832763167432434151857661530061924818397016300044186142754898037786981088411298794176195543501373139364223062502824068433835315701422042112672452625328702382264358542820802864248353632405692959904947265304771725875402410235803108696531838880290494790254786152471904089589718310879225726301961555696657209051645694308336237218916332566915351049016508517262593415284672650381218480677770947246169033626298801861935865005015431744759706626372943282767075706690824068289064655004397200514984486251920184062327948258798915395468520605015234003441098727793640631829087048285114846716719952378536221347453709588701097750967406839217761354320626260346014486744839234042693273699590122686226271586227280951031969582511098311501060908671245006677863992932045308364772894233054851597053226253131277656926652941633545880669068640670404035949343642369776003121180190578311474745653558322169605045384019988034620195150183339494015290527563453837786084120935812304866226863870200061501155845800051909086062332311895758868485284108203906140289813688929795946574330269253032148103581611807938573601418428966952062608664781369423244164526102768892525527551888463972255336460593237418885758717364989965214824135425780139014426210245302655342295212668549973570808056572028112470604878313993582061210604335165646395798381847365406793919212293122997227854972950205555118755790066249192263245216945563318433757634516278072062976655463614543771831532843426871133043380802063451086264409565062714194658630220038102796018474817818982448626963507591598726595885574263702824795814029407076453590503422778477773854435363900398785197244993796444549410526573401665959721519326798234097808696538290084003486323299097911806425145034504767679838875015793531077250913482578728456856725929535714146757132404198829931090223711754647636460460672345726078168659053276899870507353509368816896290716461644346073905634423711125485062793057154068924685348016278229508687218588879619187173271549731118812096726524779436396300778263626092807382004814583420267624307099378780031417078166395383636863588447484763166366474240036255027941439456937973346820639109031638274068985966577994242353545075565866411975410071650212602324838077221288406241044227156036947335898713009286491980281148880545244271942824527385077275883947861346651706859263628975440223246249656325033739131294592013326404550664544712578461757435612432961661097590698514336667099791164049791574159299513878713993178618818207300862645716145504731773009367956500581965560388574977488530207861248005350863087223454079211417458215821526585271048599654683593716180945193601152436812066803889243442124340204316296509242154543118982733688863866423808165907625793979692157304763782260807361534881083348992634349047268058510958615227743609607446833729950037208454796729770677622661337421043683504262506070218395322462150587508333049839865724778985016085950897474758120671661071450547104000526226516886565399406441986752940542871958723353037989042870288922629309890587282694936735650232446439874744696640847638970888602068646959745725410646191471102196807656703966163518512581182431105329034568795986624242022006335638494498938595623895668514294786402181792394921158273592587919559400428036074486388237964254411214661971110992555234109498804795681445124694113814424326193852258099819817153981529168626933172623459016107613134744923949753379224599525072577143988525356234977724102672019217294862900952050653434320966045828833627501052253118233236733316778033286796868964307753489730984378656498366874923658032685602405391833553446820529190451327479794256082713322381584215316676881678236842795438669295101131430785405219158159227522678151950130161922420775646335962783693818412191792809545618634970936107450798439223140228929379389643066439192602841802852162995749510905642473266354499718383906468835171179775025643818190477064008045589478006246910905466604443598527378088561139989650320741715881237431145509578332957220647978171769751865615425663150840957015387043402297507607946036835084788962690852413466583135391607152173916381613710344378059364185611007801274614437388818033504432695691618636267952261115278237074214776234738189557036052751754778825141673304057388213804137250627049846819302671222060192518615194637433189586201138744426709085166977728916122249721181350000914658660569247941691199577106584565723186925017395720938141501421007963793953657317222669324998174518640786567824068888112756388645365566829360704260102702014779617661010161819057588124794769028950599996976826556591034915820927359230396924783279033995835047023261490512564754311758362926630852327202820948986792592554270764589785505751542378951095627102039915283016652767226068381998984239746261405391294722080445128158221908658692705629246979023332897958153121495773424542005498250758147162655347408681453309025016977463823947739515604754846752129302974214301389575655737613586185804686720955626143555170600748213238426371611281193314422586222161422889313014069272010751011755267712309458214578643844408284862808628729666654102810227442839463134822861962812272533798193283506957182362745953255908378176382718339429685278943262718969819623458855882814383998897911253720581306840355358937925529576163315665541618006778084397359456086938425462347712174033478391359906345956250550704846132628776435202025179924141162577564718362750240934811261761588294128381199428361876782830824978824294569915600468829224350100499278212250961665505449708538042686109920195873483110265485972742262052996453659502369075693948979223666643584680823980919046917345300820351002509243084880600521468210840082105632617958758741569551737553555860085823662601159186780696313445475566777756986028835370317033846649075708265298117881478872650745912166397052325837386046554252697608985369483382122914040538238695108730076076335473496236420471952846776353807936472870903181587228444523968660122710710315142235083901829555719124349689245126560154525593175731675352861299285743592257090001810782070536936085864349280115605558769269984977416588339312541435409171631323817959140733335591859140899260587747333160026439738140905214228004542706188338588687843237555121167370971100950960124567044766350630313326470309038826182236826620218051137603624944994437886274609192760953607831690683156472897727200828932742543471770537122588066294209345298221525034476323141935594456346598447154943182876424215639995537810409316764876911823768613198883133234311748171662910657503656438643162572075997107599011464398232858993824022100776585277922337426716252386769345433105311181782108168199474258300261809041700462068259044168352395253128150156427708121964120630406358771124585971736722550496068724971147209089625210036528370800091554507551384622341052070039329633374511830207603755437766692506312736871238337227466978059241412925237534668783212663022431264745886604565791890215304860362558166537915425130525285217412166099510302385519278310462982487390390656567715430807944515095382218320350134882833403255588079860597356158558407034863512024371229914389358473222953684640790064112066723136671173005267130921284242371541872252391692168850315713494103838955002666891378859578330458829230985247598953974739813403709098234012696900316282421052082427852193739387395897278986616239168825058866834302684231372891432678919784066939479566278262716029202817247966441574527734133519707386923306460701696505114795106937622006892998416190347697522104041945822225021323567806859355940745813691034242297420441715767810217515591359049532727961416673097781411776329389693738651989525535090566528304733305872961785376373322657196904329834734671368335231351159958305676668739716676246286090701157198767005561840373427240769258208376172874324482185143284687723786586618530443829317265426048867207813050872277025529540644000572327123523821561368291182268062621839024067121206669041160320087944095825641685835508872593307802799422360926302150966020056245534461530677132884563110087374791844152512335974233181663637658096395019925396270711441812030310795638308938486261805773807109235546650782987435771980310427547779121694173255889079218469074818732561207068452682458417998360038136814284035463504942692191260948396457432592462061394571871389881281536842314938835713399647305306574026432302181139447600103108622961297532843821626309193054768191319841183093885382772323836345022982822741331817700881769877741384456034723009979520889348518639692649399219356811823553215313458530953909988374192251499324230516115985228444554449222650872553336860052913732945663999554223294616486272836390154610755357785173017930893757490136174350441070008698742962363594589169475440277935182275781084085105829794375412146590494808091577035556165632659736643530703859337908734757682001862679173164778827760908172250020798305481826624528054494680378638930908183872626028393106445299132488648944623592515532963638675351355480561229637678444940908393535286044790010133277602362840564222545746329599536366236299793334497901063903591451463462408478506806672758004092629840626072566210728509223135684390788314164147787506111586071007074162223323340145190488437551196833661994066367179758796753274962394413951144312069861001179272467854364242266606868879452519792198723680197219474270381763165049998937440430750811601086253364672407015638575898143911016967910089248392066031113892964755583250185711824319729745894995156000912790973394733028097177181135920073710698333580172868147775085751209565540029054578690052373463928177696139432866772033479051353410744635068914198411665159295868971796985356122054122604450797439962620493858926917107773498492428447626117764263633271595673766620464674107806852416709728742850133977252413796112988845304338763929018564933931020413768915466841837389602572952617319268339773413854827846016182274144463421602048437388423328400234005806800229573430774660977324085121570832685961885671669976923787236393950197451020902708567926041706373358947856566372476558809769600162668133466041596102948142086556238896341750270451837323373036368963046070895365635991811258840952266556284283637472959676182621648930085246972219952504013115421856850093134255582091019087352310654252888207083976170079306294387343108993858830133444561383944832675264163998800461096171017888436122610444401176873279864090553662344269371019602729866149075725064281018374424582499919727900610028805493996847059610038794458346617238069740984834232351752660823431461303018272072156949896434695158116651425380055690448027790705434166810708690674109178074897344861859969369930208031994572191337014419602663251651130692409795190818021513487306755932088678736705009603449431052672861547777152943866596175188107289819472823491891148957201325413780105344255433878963294259176809685789716686173636981129727089612591359242920216537709055769470722368529341825713973764963255146694397604934626029363074730244864325290862536479264686465129803690124763838993298675859026511540802021536698955637534870839972572962310224799638532118715638646057555755959072487003314912540226065164090910014536255773464761540855263793111450779708955718409556414758412710692653380318950017161511581852609036947278220125890487136624871760578963032966655895765292743042956132031489396371185751112910930340453680110567140892897363446202571510531550212397279651252176561075307143194821693103779638459332548299664143646355372089287588312200306973020298199649269059732021706415321640943761728011237623406848138663505396440579929932731299343946698898155072363800298308201182105316604648699271638466954447363483443506121943771908370300525656868798553481491544030880154941234078427644655711942132436275291668269893546652917289881806171513450858207391240863316958921866612244574512901037456110335791732570108524178496057480077196931468903749788932020697869818860058918398624442017789226111419191095574679790072209102233687223889364992846144705779908046722604733769076099163838321203946787163031048309956273743823634845309555383405644147427641572807241658931576659252042029981244969168311764319250523912231493697711013694724069036323806683790612832473567209068241784694597845132325726544093793167126981638606205460936743395633548233146884469345256857848117705206587742053756480664813737162234213098957258531399292138404743677791204089660178662384788459610238510568310294820272241519087342373383164373341206943334174636863388218387166462664417398997334133952490513015885048267366164496648986311903251498478657395495982383705292266970825750470123901016716332066852412954825612717607493974105910840129921552299317080173372262458950435837435651472641468385685546269153316073111832211232266267541555709412007822316735400567973813701578838937684464834157191107993382207797528291782844668523834090896930401963085260260027921147439871995887647489173556739556490094758572875235915277539656497164096127406966955366579641957229355995092165178034166970907744335935054607088411134174667499191895701361778444074089874364399025576304102176702027994903394968057828028497671640197210605688947065656187988572379673570805466648907081196135872210412514215640440361017308078057655969145794202490635326266679947333872076028298507331998129562027941560783446087033503468197606142775407460684485695781416533550114056512758442449505623285459071726522635206121822295226864588341740810040387992287544618499518185720928546045980308367294027418619157004943298352798062117415143605164960251160272273584697712934061624645017060517085398192753249420952094221839663775194102799388829857740617282565248477301942771922502318838809388643335414976317594713902640756461846651436469839099633688879950228165532292978069123483792119127946674437036708388188550994071453239636134505894004272412428737450977359044498384480357988551215588103000496654559765492056125477589990167489751571126177818879853822137381465699370208500280866195248680274497184338027493857782334203611433527602280676955767652258627471437421324785990549347035306990033240621553296344765909367481034853355936104569807033597163298609207412910951975427548038817999702761654150651887319303047624800098180656102420291147173288780461765492159425103694201157487091886837168417689015499930314914637990504117638503137210388264690526408391625846778603028424294197596478624193068469090474716725446877012371608348677166632304894642231283727526343761495030649539783737241251977843076599128020438258265739600184660067625555831179720131683330001598616265050080596994255701331717669800683566380467360052079192803667918032923057006121651072490444847691723832989447796463460853599709424711230483474542116915685306916008718570143358567312933933658166143758059066499903841463963504400496011018955623080517045023341310285117735897491670000180166146057540445062626367337571457082646904336454959362893759240654063560924890022752624358645529734808504068951444965901472663038690666031480884632771163133815767335123236737739386431739880682181319052972171338254043190811451014134554894122135539755777286523499003047170655150409635573306845841359607307374273091033026265293854490914044429686959214714169205531131640564606299131274362599066565164786891820150366868170399056825787781785572645163006325562796000547432147361295434870255349081284692505460575083498228237796473193152215351087057597976148876628858787572658327397638437880991917130483804864752265405080259638639056981974836149904163652295002678836958798656321215066543504309573129818657421571103281440760606806874014059458503635579024814993644121743437659255792564507961609271284886622730760960816744088631976117831156436390759404150953442545433935982548417039434528392757866818343460814979428685911897337812922039438338521078671460145966466784739437066600645248031909326496867419216156424941032742102067882507290763581229889781834561230927288347531847487871323192082576961778378538872874429276558999997473053648692241779108293151217233580364140709634104899099106728446277352078158423612240373034386162593929305194381924557275951515158724362693648843805882725718645305122557764043512720356771478434907978135932369995705600845517689351247235767333726190848531378362421438325751888041157173591553291258527279189624252737624035779393828208309885609390337655964307918407759380881330498312100000235736459644631437114799145278463217679869895568156434285507510744948826697582835550558606837994060189074067850655564711159377728752936947205054996044390622047723390497628255708848590518127552457532784016601403520708156363867526761040646179358651534850116063389263138756641992857134107468729461263233727519682610488043388449523495537158196272894370865139831870016447910194942176525827659609428891640036833244610405341992304099063721338362747798385353886916187206855694527474183276711304491238921885720641570218767768980351123095107236119777131193205549139370625571946165598246322177929916231586339086441310606716949613016360131222252206110953955902686473979094069947467128188445613055169375404050714881167439062619938782465042545057524512391839934313808592863019171825927894273013138787835643510989888324599660733273272668848503338514392687353573661329837941703598912320129136783645109461081316691899742889695144878133807700006835222158401534851217979689449896161857210491911791811983223048835890187524352515596968185753451643804429220767545523929088995034349276844777444654796184354489441421259158039687584966320143727623368950888818176631821477900554917951043526799926318699805317164639692232056320423250269590723313905302938048760719302254081820940258889376788046283780296299049432260525080663568819956132152308296552438377301806281755494069063048256904241280531949977397088647311908572511464799259944689417536436116156482249743489908017681085717834032669411036997625319992714114253138393433235944730587309850478322044197926797161150146534973563349465684083499334057195054696903686728920262730059640891251302171881373212229842920459015601436321891890150010344354600142659822530947906384736526191156586329784618466235933527661450608884278732871271699074916211502552325083836121484714931501134729151081155447604025516688604904670741637587462504486048077176998786904303503626855915207995544878328749817031712465455351793511934795344144357488402056980922907909617626945563202259872449418509571779517827643964918962854858296676717155284350635098754943929450572720358824598103537496893411543335664693611790066348816942942861204174893413473484290501421747853270003284188044325546314210874002938350649434086008718250389940990248500648917869108150589637030577366839533184527390590462844045590410197382071560422800885648963769617273850942295597675143673085860901015036168576383100956829663928287178205215981064726925543353429371957756351127220096363638234400866283386658215568889079013237254658873542554906097089885927675390929477444361468455228177171393812692875738015605300216441907963168525611993041752991156587091098363968848088065969142744395195409696147937189634267742438016774999337693049061208788822926403930914208156726708709252905005403101714936993972610249190990121443088091546615102219404011116133401415290664646157027420263477630346937868545930497251825143215876906903652777438661107634685197684053688313545091210198455505491619323643222239950964417378601149769145557175962349336050584929152696195954147680321146194585827053671913317731313428011410664869950492496638528661394109110581504594060249797889950407949453272456412373994466805617793495698997626735317320116718984728762761993475261343002084275640007473172510007506623914296734329859705092305079878790508582514771117520525331481938351782853389544569942297115780884174458844209016831783885784659195895689678119853530308057876553909351920401977558876887206317431268041424595632464901655493976030890079671719144500330158074399474808523981374270262378165472563439816010393697285688731764730612349291426865987846330389264937471238823060665244486608846901493696674563383371037138411112720529787061332051739569761602820663911582849768507398124135732699319077506901100802752009288772680887361336776095567120932840890795024950900624715814063254989407347990815865299272061559567457736998401737022646832007351460989633287410988113505042606721365890346452353180248657809829300035147471917163423931539559297364710733204704035511748476245604826189082786461485690832644500553265733771224717211676958744950719779948530989498099286984825316632224028302069090677550954603349110748362124658900213152168071037238148040948289702693148750602507197911642946141345825153250722851754337736602235304473255141887641337481391514843744419870942803650366894008850344276765990851928905927708710990556815469193661992892741998114814370432784376299499309589936400244926186210749288336468411786382949067640672381209751814930051552036450097087016350940982755149066308074390774249419375226617978694272464479297583429125552870650313256801869344811549456174215786841229839118453304199950939825749929448318644829850778151841522901672244410337803314878157800097458425039229998149554756607093486675239901226313487884957250446826764630880483437061130281701087396056423731454490054968792695701886752092298483822751202068798648812253008942264170304557560244637945810125899702875797114900753156569589703514862363652584803312523057511163053539628104238210030073613378425795782748711419582906397684410120872800106786925954332952842513873542476565267752761607007349712410986463839490722234675593842710145887903893326374781476472178149641205169860574046123044071669050550352473440797674270175712623610284201263384756420200890187985443166968180364313643185473012573230389837271043521143318057553007943647024129153706596616000042823581420397204271688106923034397776496195942816186258698449400359715059800140702185939878882086623171282606190096964358643600759171810935051041513504921260654296453423985854835464605507844267265821111520631742502376426343748462193671774747774352861630138002290836458701393873091720785464755251065883752135297424357589190244451890608582472462658222432171870933122570129823338350236381007287561387868985551148476150777762685825407381974577239371980150139082067813935068124494675643610436868287360782467900033223574993905499230119005616460643983060682585520112128882116933790411768801901892345668210354105530741857165613175865139421088385233851651930791112661960898136529131303267265004846887368051006492824200568932423701385597742171154005521594513769593284001534526066451891865467654693783235033092469840648070539370445762919336375471240430636384082125659913561073839414697446834778640368659737443776546835561421855765447856366871749206246580751838433184853007427489814942173682977525323164545283921345874990446932028130141804783590595124715625728902865987820589463030393049353232000362902981325749094489192981735451329690281368395965485141695599768132954132627255314337015471798977863250446073000533434187868692238857490180033313587764788488322453026496103960156110202918769122959214980170191892226716969947225407645965666048980432532805084031518280936480967334020900449118386091222514452192859429096621792170045236521815259500071084003135290364872851446163436254326608891126951009562602785523155220773660383571637273138233559318626682308416287579897830216542578049944128151469593921560558343123986895694349752203758194711944661774483119940524226243391933152530662125233413907031978320175420404858922293746100627563733533282857859318860325508164357843144466956913768218189130789601829109538875797888515064051438463256123810304989904595848211732996117037272026534082962335473574342192792699942011522800049113905443015497913099700653679611845474077820098558682775543505436769946169200287311375100003709893896297090603849918440490556564029680004097756897527291545912709566360810994821497179989333919777288691975300116096215446969294545267443748024248754748014160000741138642021592606327522129630581318819619350933312150195391339692817114004880883466738460854068391496863099068369267935062920755301081501259538884528862485323184999532198476441962707837613849701688470484483415045961212847898671870886805243175005308935329381876281015595684251107367810009536809872749910118486501942492829938315153348672788161306777015026817080671102575969894601488179561410469769801344784752081324395766999721907803194237726003869508366939824821598922383677400422418152600692904549589707244254480151310942134458314211303128535159681402424263856205815098750316616744790675728452293054522607292155360379393821631078668812800161442268468684105526290710763121619093160999876932113455806988316460896962977536771728280089037275350676554699690014805637554352272999663770700943610042397467454946426552646738397250241052923659833127083035857843493113125521490782822648105748060807752612908323647867707846983553622879220481298075304021808909057211774907569138710440353080254111018025740876888994043685628592440656764300474169704990499248700746427568192614948795292658562309809268912507360509580937854285224368009228381769488944766379853810362695839755815549003522695703225383669518542531853893801347256744670733044017590905402111539242599237294605428685905805437661256374212601286940378389379381075269958281280953048091046837862468328528272013814021801184712459373711162445883180224142099121670190486787507376417770027239233297167323773535241605898056986783802605725190581858832218371211408548717612323998661072964799723556607779794291984520325145008078902201570351814688453659906004720318949666441600649644239468492231825952425794501357129535573292610812556652933834717813959691644482481848968516613846083798905895039989956089969569811828235085797545815331811783455955491321171776775180041911574893122749023581749765951721249632994978843710390742262391516747445947018406718551189554427416418231553907989200402962921958144623355577063686572496056501331736818398625942816822330667417461288945397547642179965919664280048603252758305233317270070098124068243949409545739193879527746559398993925612299725883754256493929070019243156199370791254295515324235145386382906489462485537674401041652452907594154120275761656944038724776197565879323912540225455725063046831779052039302467790528646317334974136267631942161956782478142819170123575912707324768266422959812608674091941680842034345833417208846545672852125934943482039145536593191653723215878417679150579030115293745389723677125588123044422636568880620922505160178345616454787637227687303345128866778960573344574980741074435456800198794742565527234000213573591978659182518164237019142272093741382922396259145549227924080153257129749983849580044047541668478446294703826045563413153948519762539592367171959111166597581405834304941131021292714826039265106262658064833126869451676928992403080421794207170598864905047345117392697517465713521480685204582622146316762761425887474164894180035333360091114086677392062998425050825828570130668779500691097347548958190269320060995438011712564625137984001090295408210081559675571252538266078865836082869858608840291586147403283955693859575363609453081556299465826080883938731288156782015857104963529690878794450958449534186914552660745917022581669858047598376949278718298164764533541226962052651215466549994174163317230843768206478988260600860208416559229055142152185938653431191156119873214280089514340096185957783816107351192730618706580133415528406935620992843658136676111786664160410577973821595005192720955193572535466462529289138757465699727810328654030357411337945598059308133377489257091685199869977702716423343679601259547745735763184775109658025773612482111585149804374618359878389487127524637439414776894240940123749096261613293933694859442172279267720887230422250755265173936463820590400057704200341255173776780604989224331139319146483181227829245428576879677685164463679733432060886544087802657430729060841420775957675969033160183062150350712487364664393580935911581214642351427085014723647653700653041336033584514319873168944224084810729163434444005811807317550621311696720897668194777044199868055121929565755721096773114198069048516631429628551452300481364955389556575530733506742349618908997197034788230417394481699701459697230390864535199589190754010197970920956439795049356368851217236667262652702529669143046635335587901711217205612896492697271696289789483147209968849659401201156617821789699088579959576452151324204908476160415047701693155130623145830252495863189980132222539562587381587317590452182554512270826864292937171188073601623124499714701244416513250581208044321230668712952613080032383522072131082681826348400772361078008029493943976678718307128047496346243115910719190092297095673214784446192196834034994042544185624427642446257730726011309464421990989058111750370830157935420615075153647103607724826397107279557649631833057735449372533131076776068203221055501833863044927968264484957581748443163412364812639420871025794840485279239407550874207464861366436501343590473550336996834806885897048928904544532906124507827274487651581328928553587760011886182085104194557622794393008321436924998979344614029871608187038297043671782874741687997223348199763473267404372231666243537128301286160571337549674460966401371204315217295172043984854503913517189595427410735674320725380918275380452773970318526459924774181337511460326094467709360293671242361361916294629561743837993117633540519759848890817420940123689628388960602537310738078400752496091612426839972484275943284079756992714132083135485841344523602755456734209925318036107601870163539030892201233495461493017195631538595599612769493799547571468555413289526281439576148465364338076384002736866495299824935456841277729976609490765307538355709654079786598854203462170962581619722755007342331665532689951678000926826976987228509564791306565436733048609300053751196570588353222822167866908760327554632541162368667784070013686436816517029695247415166070835484747154512742696152744224641444458713967239450961134420281239110167872960773610600158148059734576630305862570103765116217929867029869819837389679495541011347200718094613649665130736604026503398228397640508768895644262703347613771400884637905277464197336031389117007434674899794230357676124707431747648408293798594833838964741129029863177186680590435543351960817974960919590659944683005396234209828694011397491912679758855394894630844731318952455785689424460102088027602719347271792529572300441956375120973577721578124484715953291651167386060100364121909423794483306929057503837812577007322765743213021772593558359687868980083690912766917882700677088848178092854404430586512447781815643048986619320513865268092846537064452430997650193846538475254161219986988276225171244650630678149049029178539753335662422215188449913516249873386285344768326304680835305253303990617159362539654455599049908396039793311979969268329901382691155504291217534535682150977246727170018173500889193596102327189291325548004935478574254147822611581068888252694761800212062180140511354798511986360713889046205838993421789105254486569248084445347790085019983044476252402204100664821135619306861026912264249545209569767281214232768301235069339609498276158775541869537098154610801678089242087931014412776334379454911654383892551194299784433923693259835309632347073346556575356066544935581638040060838730808801715021764103157956296005966044973619626863767342386884614043799043938824967143744184581418265588721955177273849059356548606364984876997115944397993755930455771042269478597452987007123790206471891065608694025074946088309220486567229109128943991516512713033500911568061712682761836218772544271957606584646353500068132494458179731870513604564199461919667233897296030143301941196380958485004266012309628729749395857261674171327424587533803241258472584572922421476645755032256636227531134646381187423457059292656904833276100157092856566358965300475271863659688005935472749464712015714476534079376745256019495690911771297248630607901724843255275829223465022472621521911988548961254653881204886641470161848931650546060327871637604076500170404737107836841758587740996979069788119549354530171702627076926950524234034105149079491263792831435502610516632842634141123276962724470022851078230483815077617195859352696463794195866291837127833868870484991613765485146911234489213317190152209115464325571112443736796645916821716979306484053720352170822121679077195320007394114166077155829731838949290598290974749517963081315965160502571500441485806666539545256410047500502258194819761125380841505258216771761612212006255016013779018851695417037038687837761149864921876355830524345427650332974196574897250010362863572304253289673020818678421025867403831091135308542382796865522244085637499565861843148118786279611079837048515856908587406550439305327185810577302235477179144336636896693725511128184944973482255794614027454408258611346484927075570348267389674786989533282829664974002428861850535548403089250113116686982343952625144365564365845918364617835013005250471210472861837194518339648281350425830590805329095559801009424228401438346916156003391633135581214250476014476056428855698504575397424205597044942638484605522756049399656681071816733923119102440370986586290060622130657488791120225862778611651240097859387843311223973045190052987362081582482745634726467960044035288556838906423209888519127368288395239366746079133893501561056618927767864964153753315300341985144740848024429524229773390034248643933163359422169841269144663777513906256121696999684470400410031707504718539382349557099429891370741513478828123782621392314266060615066387220948160697090658505725692089915399066012801759325808994963547292762162272959177264342806239311124573807099562678775622265610364219970032588344765255118326361477308929151266583538845360785101240444280423298276135968689547945476161523071165209718858468072681108563778911330549175527358106621976203755069286052109339712994798785365287738224271804238554762823115278935958273632392584694634909828080602077223479857420509183169430804626787972308201836974075516240359603543134204346509819866069070106863831452621147207989102974667194726619698582536705550877402276767884670278283131315832626294816212273582534273158227070945538526302630025298520920532772317601827816979702423160676603374227248523603555575700139186312356828813891505334577363834561084606359217304983927579142893084675627092240271245459172262207686802346479252436850625108088026480111926254708087855651665221339408204672426134848513290523794852328931676986649201875004056428996849565028368122982130487623197785078314706111921444252029731025952348626892030706756374265855847185634391242289957790695635997225304241740436506423309103874321430450644325062497581690492706021634490660312605334355726092082365166017539460631181004891492272311792798086601205207357242219138134726353395850509169422910861038455821361323069654666548403310889647286832453392676934769328607871676689460393097161835496833286298163162409495684127709487964372481702036199634570639199695930543442390556867733456275312089089371376933028811243626948904122437501824768329722084224967307792115609422683660214872027288739381437076235342244208191672839412687246240262176230349708847400335140142332761297937861842173997144545350839648089591472563862261250066662464280431175078756793168725441790545531314546413943503359241066493400868536335693511899472762979448737023940880082772534854430646090112359463580882557115317746239400248264709183787892044293705191464106018314703347708112774334452820832410137847425990822410287396842652439083689966900681878668652217135958723701135112507828002906560607107803546943681669582945265760222186202989659207727070491250093587429721641904563439298353820819198283038474537985018100511382037208135854657134137083496257897920449141992891144616471313871605910470299928235017019770042604961798584399833968681499532385006186622051653149547206131764912642149593828109874677201547660910235683043275884633339350849123529572685688169585550325106678322897701759343349060525558606886990402893573292621375892074137004649127715867697000975045893529553029533366715881853795851721160554098210451236464248394210619467399647421327375829109785883661713346310456555692872766846235342614247691606013260078369694318033803126603738886629290088324874790979002727586693370736362488595046032023220775579266523558356746116400728760753032317228773371840324304308404774501186954757447049911704794681031229481856724194595968582617194738762394746730930461046568711746296093896113629828772000924822171749256161555703838610475561858730239532963703528448838201252833652096482805488412507625788555701177301242628501103759147561958211691141849399690001253966983219574611937193951318591271162008697626776999220335046444705754491427710149537871130673829568450111809306316865422341288564124735198635515599175223074108139713625892567839256688758091438592634191641401763846359978352448155617389041039940281740520505456040650153977957120505446960693337832012954976427485206740032493432279714179342691793931340563614665864640801789621329358243424929117614434095687787859039141658775346990903215540276321199035262603950823661732206413675743556735762447792572549673438201035810847471670987974696164850111894583056782629040473253093605607720659742122984099391866663790711557797457165898082699653055481368234898275751214637616061697872781782844531809419915355111517309147931992075681468541517643854878385032419869352391628770433974763762990429201036465191458684757421383099249572106830292655609880674374741183222052386789917041909272074459438072901560180910017885487656650579626027822927434684554220198455242842707290547042201815622376785132918072600801378323176275700139087771274527993739127105809427936892052184780424181170624116123592197048385653114578673351538996323715812335637992213132348186249733826334373734949350206531096999553232425389369081444941468324395811267445754823376568432426605131300479145113032601403274934596207058513904528499804547755770289491070835097549370874114262503487226747030297714589180095024522022563635570605234605707278045416666442184599045836727979906483048668720860755478376578205707706381397207735198412343125084223081696788832996267779579423105550430923950885100036803070197340454207936294701780795570159180922993374890718817583314538688421598402199134191685823346362236261628063778075945121939962966658073565398230179289272278244219514383245034721777024890843059458674616072358471155349734321347937860147673619858719827346258877302370967580097953301438825812108016314515839611673939235400426689783612596113248518490527683933538136339359252811471497467135657873885317650067848629589572410187566810463865362971037934018773744312358046622085765519068948699317813538115437915943973379378516693617212334551557449375932060137948531029574926088423322497330547241210512827730856748189389693838962913742189505698867411449201733665193045168436954890148944809370932919406824076287635992883512449965356570276073178134228853593137792234054291907606067957889567942416743793984302664467459390756748784464019128232288408683005031505818200600822828179339071191172219063630590225658447191223550565712125094573396235472436461928431661235170324069307869892812702340050817610188864856628173624386501021689626550820023446854084720923199940331052282017784203816646493335363476283274882522973145648720112119063863966984805547703337138607773939894797537683640659608566010791765884282055360537122651939082108531227800730071802388584415940775241277300214042520317071876936941100551466808308582079091217232959641330998936762829184149042004966304218553225130746927315882480187749349322252397047385819737617660293969906992355838317669037711730415446297170804994670714626892643009427188161971581058362862728556580446605990983153664851084936526970934212383080014853631749247087260048848264891548657461426786105971739234612247406947765886443047392522055837228407780671329912321917377373930801925454600719670319766254323144665686140220013964498550450171496012921307391193524740864890393512273173369891601663174990056504924410642637869027077120355533536614747971768781258634607741808461406785809838231534814889070600370369393143335894535790447726844409745607672603905971656505489853551224108234371892365661478973634451264016444052503803024882809446262877376317421004187696125605106919105799489150553492775476623696617455215421677214792086051191458089980268750281555989512971072329595314037677364668330833436929451681759673913548345167154104594587670775135445341722785365454360437593108552117407043630810701360843634645156092327007258798559619745424860419280037145980031678513298953266082479002791420501191165558472188583068287165125307962635410420291744400671319017552557944959130122220589571406191033315910042429660448368683952164732957152740718646797694784712858944386575979242853343209790275301414922947943051965570461166769894800283372652684312040805089122702182400151856126397946918770285901278510900975745310034096147280824383798013534249046913998534009874881544755519388222238628514591360233121568940405742914074670924218758923935915611810830272440403802008611824288425978076451430003909417151429852901310247142250492385048962561411639550243113227868370783191643019776747649312643477657455063809675132562838281748074433705133607504058503162018803231566556960661777209647078625060652799861162994150742604393280470271572556170999679858447521846819460311033060974965815671619500916120474136084636996234016578720595192559647521069504395700467376557522043721550005991960415588219465886372687655853752461712523837194670964218337123502991069278503477599983628341984714715680261517139409151983166311627904566586000773304148492521702566561998836217901813755073316117448717496457419666691420406419067558829994539436630875470973518523710823061436508501203587312603259619153119055501647212707259922409398321877279284820307717491469675913104484874987948888338663298917256958440601246010054389766526747848167878293701591867971053852614547942310866668494482219051662832966810950391974234077574480436378288502996310953872970995136669632525864178301192682216805834329528750859372309793975656362038356062584143826255215720875218894608832775139885814762344304245083591050730057709791733119688885672392033551880614993676294454700148448188609912181122259471374453519825712931688710716255614478384644418476701008093847703171224586026198732771417996568768342824502025674975864442080898528351986700500331001042334388981817374102167595087021363600283360150202627015924655884394304605135324236840690516481628075976374317364220474322250002001122620082638900486582660150835385032555765291419289095427320052561845238136959968678460129280158699718572189192365778934321144726769603239421963215692072032464411607988380219878296273241906035076660990207450350960414365291724373110466352878644040516790881862855059377968940835995424626855374746133074187098972386691715440506202379456464120163302214136422908450596844014005917821690225489821740077157221643537281973793767837062438181837910625789853661525678393944807261416059695023565673764545918275810527124094758003151710305842843533056778538111020497175238410538480350202959575433809989430207644201847253371693098574025292783203506937926238277256556882731671027508557524062757910192472466173602558673892066989182204368481910923126107909356763502537854361402105746970207559457390491659088964367176045208803311193219200177956741699506736627173371788719563515843494960603672130315313248011579804231227275446381537550801931219289328154759889093002330154087145665624560959940095265463308756291314526243331239447333714233639119557095362944530488585111230320231582667553843441668009749987918187784655750308385749867811311753426918816270288776910406020964119480659908084627811621573716301814536014702829390420323069410980379959724701445924057156497814488620802390725793770801437319441291440387263553733235802228614239078556094610893253090226651303558262744500888614114905451238433267461174612025011973572735295244995398582925128433792268185579998219558893284335109693648143054815469408931697529396491687004364924499383433190397346857970431722396222093792815953368682701676182697570084659179232436374154882247163335469325714465362224791935046314198327416337213688555672992556436732097396466187424563831922882761736612503577284731097888062629648730351335639993423051388631924989654754149262624489337205365249747797950830541168114497928075478870409624850257265534349429718691831212993348209111089701953278691895987527700708537108267303711937025430821326427248584718046790447603974818646685900572977683349684421459195450997955346576493946069502904042905267420548638265419631097717561889096022187325787058656852674316083824558768043208799539120362544272893065781777005395412161054406044746396000523812228866965767428407190127601412432498612492306129635904711789711198092214677066780902927051558401213529336600456846176549948503045702300071817424334449310430712934005775469262376946909223951314937384685969104685448522349766105885230132928741790762029298323397716619805380998936747280941549139429279544840799327325630063256866088974594595790275878385699761285720344681928454795941889031071900791283397203874233005847457534861133110497530182300484554131573752348997746737899513727911560377345402268574829848769777202006851764541120307687057646597037929160166033851980602322845325686331247157840442641087467937502531458354122398463334255992995531710933715657318096633004849477924976230822463604665960298235680068020087323258813483600638716376937574352089610257319893911974841204509519522807138536736843671064468173283016999470417192653877728970690361178181354690639174948250458646603315166932656480789363368580490026753058605280273674220289980576480891773802863709992301904372016622839297692888774666071039094831984644265445584390149425783831559980676059675387903536416796680404593056032803511988433119071999441972850562417996244452497859173047486085039617862793325355200617393369982545493882850310359057701931167569499258467649429381087361458314197991779624965906549606735300440078519152212793545696476148395001767005890505471350655913711097249303115653849029313197094635058611135074306990859832000613332837527945859481856121817848126380521865416385639008391241637524381293259987498008382382470005245662466878850965681736999535206521626161117772530684400081914184200772197417230709698601753766547890411306053873987052717411529409000171843677519252004373727706524012328043793927392246040620911449748707502103849639372531521437056379852456439626604656789776093095573982801708220943359089180435995489983516604431002004563514264480508035567512698399806429149507046250220930256395666129124294730551357245138832453561068290527260575883786824008854846174854578253459717219577241656976778558146218433753296013940862294990331130527201570878077591430995176440678262604215750957201840694585524246094957075732297467673564583117390299989523033795816306921940712454833985938315871106937404452274293073570075118646962514815566688868014876112012046306227516008067211504229433043579875068189493862267750825863514737194778968077775323670665451787928503828976323810629749111590678495676884363023427886497641014803950177054126317710725519632948061505784698152276422614504080054816476672950742795838899595925126819808664691913371037729021447470940728866861012915694940403134573853234604648783200841689955802859146686998745327836756628148846298396378528754054964210157688058060864601786528728659275857092165608205326157235219251029608711567829845749032384162002474630604025932327794526883707534057216804369049190958106481587829931474305381982766498903493543032275889184272934454778440498461547869059053909567656879339688381639488767804161324299312750747697156731903215517691925027001599487752620716640340076966964892291127217718573384993818738550418106844759715272280148215985714365764035863939316204449686429793332680325992831833531995094821916706192609685885209891892642597677284611593131966260326980958251382340523236531919317896727802400032902764204631246554246119921922981372766562611088797935886861624965303972579914156792144832782217664779569848146459872970016368517040429172452726694591053754528983882634660548204819244419146767780153114506168646534201818707181938119861241445412929735577363943611528622908473950453884034676133695180468890256314684142653342028643778012807294653428946209663838851536939349598419831256409827104244749170500534990543190342328048222233167331882432963259205564661604335219846600516679244713028563853620315309582749941346058085727167520747450944386149774490095883867099192069929152971915294393336448411088874662510188947107368194872842246452532799633452314072425281261812235018566120994170748277773366362526431113504418605625997692801450599223155388370827315726770456519755679613329943470935992402802394775643859707605391885426447219645108885439962730772617244187329234377078195019849571119732780341915564927688745306068467019204385166255151838351733411113175183586580114895641028606638848857900866132761712941603271062740283330934281421882131451615093085753866297017982152250960445061366101395797719068987304207381890270652592323237896035830919861092741807064514843648973716852556234005210712755423962543816122688376252330376371221858300067521124199539099561546813425904182163535100704678766502523893274146415499074268084617429677902615774438370871118211709233126056271974543285563149920880522927620165954630885801189477424004135968814444600269820038283038357749142487588505121087920694466965348988394391036048680848585268303464270395578276613813240589963029154788910094938002505583491476499695896510530872933205375271162343781199496369350627065981131372783922838330522141945992162877021574377617477624009023789647037054886923522541819090622761928636943061589310355852002111275179592238313437201283582456127670174892644366888148398429820504213315059042316873008509627683476302733078429232592318999000033279839952569500667380561098816830263991143256198319042658070950291930032989674606857914056907128370791549151581428219092619311236254322664558878240053527213937612914522908033131416536317488969987917498223603102919411065374497308073014219788177136588573651488624951375969780895467683554425502742938593231057458858206573420966946462485753471013513383456636260003709247994095643901264364634144372912695268567513770502489174077306992139568967261384879671454667317376548189659124140270992048704172314628119355219301722086497963112493509357384106033242150051876488994045337266210270674568916449424089628978230685511990892285737285271078878311024618942264606214678543163758845701606785631766098014423975592989461039367797722972080672722601822369030314359634631110704930438306839264147605926229381154571051088050582638529160993088015993883476958974744002901063710056512513732794127297745592488441961873246762378990022930724544024007605679816105418452935962707709481595001399702484130709372724249128766435719069140479577874210029850739182206942770578198292338235880982757350143139375139306919053879462979675722091475069966503746331684412283192475628297302843265599988594095737705545529188403351657445908305128392856733406256488133924902129243449407238171711400571982238092067488186403586212191412024078535931001022098631723077665437476780446020824143884526967459257194480542693591872004015399153542946106439923148394523987130063707316755005924856034919636909396522865795268119915102095820050077721041382367422016503353150014697078418227432022625923604130431651522911006846929123526011908612073563605310865568633997357332384497951103181093816803209665356095493425164783493380851521164386623276814040121910416771331164636574233453755282012182642311423460035958899059796714132523472937079612886342884161455839987664396899299485596568495191787248026849973318567966356464543028741923699060012292871839514223810871796048490747547290073677171468067354408468733674803110734296052567646948035473917535851425707776773498856099556571466643266643994379615806643398783343842345705817205065805740662212998641142999483650984726667486197872408075437024428356828872521787776940616237166483815069317058232020040774055151600144564961425480371584909137483209674972553889111773636108131858544652020909032697682260214160008821696214972166867843781104959257578317219584733391281083016274577838927687355019407886213251571786071340979893037641778506893860609888276874017381564598875674379551274654251005273852845053662239365296588678137334628621634080529657693326470360017910992321553566866818829610765931434578471010628905558026843882929620772776524861521611083330743002074802690126879506084735257586754810893641894574218446098414391876300762738477864312858226425674443007223340108701813089066534522871014157671929673001339548474744776779147336156026673159186774206016173177902600635189079191898065276931115557161711527874676947902416607058758588960306141640527385854266468814836322447256187721016504075228107241185850407602551610530533931272503987141201721372791965156392965767893367114457908087274587538250511433353838330371458755964807042009916276217381132884109132181005744400180912692234242623183045528172404330063271500339703729689038153121201004002196604998738504508252596690813480131309412501525810744955201947325937933556166740028645091417119247411478733693758047822056444643311311480178504431088030102618855767427265425615666322951754776371644754512934955780390533539338575317512884732041775119901732187688124091979543372165422006911491004765092625631187348627500521457518748814800285116333515566430286877288072533880264831301262231823719477238398866193226470314045757596306262985322227012483403663144155554200326503011375565064425397559455091550784913986652257426893261719421631925206527980886213885615984343307443981748388857312059922794725444614607149008447432524631655897274097771800734829571578802678298389136022729959675554414074904878254346034995064467964593288931711765122201588850615351399959000386727120424294627835710802856009523019889293434209045512719791389596032186703556894192238029693567152963815501911880710658460104006780700337391360324354036839139785045606092026773258614075002653514288174742794126992001430032928307483074477037547431334268545683087331333683752856447074660932653289656332297091365997163644657779605844774165606770612469754329134477441568525740887123582879793740990025207506004702809610925309666852932989063201337303943350846920365098967042396934879329134775584398865496086474875536401838461143939869722280064757075951330152745447796842909737275361945812284486328812476724746088956171995993673246737981737249623270374896889298953105677918390895107250749767069295058138640801571675094647798467794631444039857771851415596502321067549380124485509946904216707686150356786156201440482032127958474735963508044885725108746319537595539107609220291685618669506448813855410356958623316345579445015916701438754767614321124986799686024649983378701462155736151993146088919694147774539625101629552341864481245521005852617235806058238882687619004743895383721128019041281250681942459094915617022121156619954982812918215243519192944443477561502590690422602155788450350115981665516789384250996040328606148627933093695373143272258360414482654015377815684750967783326742569281652817903069990001519070857537384582884142928100991359759919121218911938160154164541368893790652097359929899323448024030744057525461641410631377930184973825388983705829997053986289397124465757489671010230381155169736592177882479257156283872623005385907107323561699761512444416507512538878908035959574065717282795685151099818319910500509421298584804365095491489693979653242219894346640557404990045396694155176589316779639247902478137450314199953447241036833403284545408852778140721798238704771113739665818473185526297514320580751311687255587949007944409689527001145708166776918594703559531360733635958437973034861322926389247641216579872168693559207147829755388919092960914430103425689128154378809502237205152188948519858339456337061398816610549358535874749857569724702620798898243013247599562819554950962953278698508105843473611227277554309181545106437169743424519652393551945498015610550691390820766748970362539863215733279479052751112969093583672872949113807224691642167053090007578652244630742583424589830204053588564672136871614745118375470879570553000536125395175864316405615438702949006158585263057738823265190986235376621297005542076326203501376912858122868671206908510004972640571588496441478205770000196901464814571486504068234299358624264648105350587411566666533224405872146366213492641386795716906919628109612602783919885089512298967002160231754189860641613213067993454192454437223086574036383302222757842235776151937791396700723181882661474212854458279907188202817512328186963624535053942341456835376969941756702337502484716035722954446141621396968231533875898900965707871159828160057588972039429729597239807907225174221346144231880682085331727887797972808281717066275750808125749474404321664920948832849516207211174668315461122782258370495074737021317615595139111671752618756625267749001984374344471819299449183761353581921178095944159388362044573155614991265256914678278465710965423106082847545323521210538773144029400210333340303054144995463284655240968641915170532015632989787636991161546893462633252668187319777536325574859543037669486026420953419702569531805835505540034651757316274327942740876497603106022604993613216934960048486798976140803939787016761568091577458306229326451822233609369165962214032697348427869288585884043361299398189402914102774025060659071032590165736994853002408515382478520195010827609116298653864327635229203075431183370130742180776400714490624747931392109221349614264526168236040599834106835802883211192657319740225124166662027419501989292326351601983382840259327884457227623455206708764399878052748741349160969539425962822374060591950427838125627702086683005353488172814856933909697791760201383333293648133053017706865350351057750845310368623201349316364851752171176358709067330353269455121861315747590215170374836087133784392470749478769975143401531055553405606957725258943430406469312338970813121708419699077932084392750470338758994978749483282567409534901098824471660634707063405012103732310431597558615502854721835310923563280225299795788483759480107019660476515279647205813384716290052854309492012419947104311069446119468184932773824382714290477631404677058253111345460067963855957078339069894156833044303720971825257499075435540095856180046091294296360647574136988786767361653274583260019794710086709812104708074353839608197801261311550844919135521136153107000900951406073149691674642314336821234286837902723391380571386954892999458684294710365844580516533776503517242327078811511175244957148958774030618626781700654991216335490843639737975647904683291177395512723591193026998501991456742774900953977237435418261327559577403795472821868350053361079271702616901134406913437864520219840795303945259643961330383105372573527948971585336462167238040340546794293975293795108554073442727016076498185195904919413413000678150982307186306991883638816990500068771339407639238231142003931211641548372442260132427279580746924740267899108315169888471818847346177650055724556474601083091672635431197404476236225348661956105722560235308680911238919450978020402747858565480038516073284085346357896916840798189310539359427071629007634655540040294201532852644155807770425439653417619628877777408137857468060527103949410352635499014204153293525892704076342459631509055733366191369485147507424633170536405602152698199040359480326750366224299707538651365215407125480116394648419081463041453106210524832295916602104311793823798450543845815993776070150260445112072293798102496712125867801341707961553669565332082232814500322358599710620870693706152698098758907061740003100174282548416203706448883475596146937386280109652726338438268979597134513699573359535640223817546628388472020780527505133722708005947857370110373824831152146542671237697011070857389319346235353750033912371433389214357254769838224369148816646354769053024921949996973045156870391685324411811305144610394726186382600227155196673413146671210263953705951042132469723170187159115970290613323159876845902579547973918022998720807144499798116306143479714361325503387545440832000500997696785347262465069302485910835521411261557088999144911590818825173221199641023590925756956948600362850465188767234553239593014770721879301577807510882054121304121185655431508655842046483524415995906797551875337347288462826503091510076496939356269450336047476341987343322145059597550370380298490153454431904969618329867086555418955339436346866808955351086535046716136361566559977605800108132575937418575854238467937289181839938454153959742956385229761177165108417381631990328229004948181175680515917001642358050653301404813993531464227324905257102715315981627914047859638488282605789371127143006829996227390134240560934731031219146073520644567622282382466722832367914967661096545657737674435814946870328884862501033851283728831218643213068031740564693339709318571265937532011245471178500755246075888183162496792144366022697747083618117072836767754585341967597518600730536019681612837799577212111561145750911291202785773455804638070436077871505893975175121977043127577165092934292856222535199452546212813844574747231644837843888948355557971315629584976934779328066170026666076799979612474967900581925191776868549365744165574131803935939867861853524485851338995223156767415136682367666251720617132967631443425214487877691411400971930527650666454120696232569825512857707828119444360672275766447859080835116294215168333607112452408386431317000519216151207381173526944492219536104751142706663685093209202840457025175213947265379707846094248251089162555330923700342984372183550317015581671670574738761801744801106589150951450659582505347379713789368938336586817674040876868528822741621193138799906435408755256932095350736605359397805053426031315147649485333327786437171979101363897909527790313524742852820186434129116735088101654635608783044041973342554938813885037004712985080763308004338194017317509562620234858124731713170316955804349121635645092686062079643422826114408480808814150463273040238095731494607377804619271149239070583315289240477911272209837643114983328312903109621442269573984188834539938658841124905794718863253225519137706967478863002510117695576235840888366073394585832965003610700866506647188560855714476187276153486866654899478067715389190541952707532531967628823529463204354159551216182328652531201250698667012886245342574699923021317926113146986507870479766475445773536521191987993390608160121531051265598612933129744609377438030747333739302711681817841950085483864601805797113588383282401122906178343211060319850016352055768066241205952200900699392758377018537124272282193909329567544723377876205009187943743924634241239765958896552615803408031606241623527423367215069369620543191006894652204516581761329493017763986215667087463724583192317549383689596133674307178825272828344350277754518146840762213086257461395552509472033336857319994904017670437240808046669158173578630836806691573061238010684908796832205432171035678874408026349705744219755285727858254864281063971888682413074092835105244106539891941994698065056277609912915082781245186546509869429435231481034127761716695771867227442579339861748169093012535887430845682830926281345834300207968662783315073743660100415976879534554153559212162393053248339273596423253106900586859786674464101857941133688012987491490357837560706215609610044147158859090910918849004511038556826233969391096265240793063576353973622116817508359435015750328562000456592376212392820936872227071866572694325753879458616263442832233496585205958150296882778260061421651118811487460928325999224867875658440134798502578732347780518306014022594995777838684007705378606725733168721715195799756100353662722079855633889208438517940358944899241317734832417056051254291785591055909981452538860031116891814332121868903046449736169155168441208272305115407996841981540671155595905162742128027645453880321117339645852943994711666029709249904422313155463005945121425565291876934336612154219319331985997972961793729323713266925201280017159918666953903852261865293199506477418940990487975660454525901019903241320666901509237728635331052863738397847796027877328341654879735278934220814803575088093016508836766950952188465640425322233645874270885853396272990956699155403559361393688479538232526272985837507885127680881903033197865747553043811409074304767132917820766508617178470453342520597180667760245512815418779280712115649764148534175654234237432273709902004360129175088290822736851922409469130683456433254911585838736370869827170084465738621090359003757732796065037181694451935736493185662522503180477977381048372403122018663841803115499199862044898761121180703351655298672899950545855305386177857739088760706374565470954423498696071105239152078557890423486527619992453035301552412767732648848688638141956351431191047384261925126998494264296607110342573413115640105593443238705997534890967683356201986594565831710140209033455114670541770205880316952195360809967702675433302304853329531559847360991714965865218576738286735895723264283853059205173992302037464486694721258533875599722001026619816818216493539013682733305671893730651120698561690357865672750476365248327346509041055210500453973821746254829733268154117134369341590619433810044651395070006194070909965019773710581848140972487779796929667911154918977549908141238085657625348862406411145442394259200447534785908618248350286280969945217108677776416977092453313407964659954543894943162251746201963925266784086436393303583215361932669111341591128416699891214266103220967300097090468662119932836643604387338155403360289860888753301662141143971450780253578398099629526016264510412769820942915361346914920672277390920082704212670459597985667020267829741444714869581855685170196328997102236712186413016842662099384315376882728373773002332235674033330665161072061985390300156774783482210887652187780508886272479671459874223938046492617911945304246163559746225312605645875186614907828632789803751822756685204159758865635084498903993078191918938329597305021778824032529121262892228831965877450733124316550678951565962853649173964275224567315665016627756612672562325079783514924234808884127159264460511038237581607620272216967369738022724521246301037507223160520749110825202832053806797435702390792279712514175147947200721823856465277488072589546762285897698247247405852950659458524259466707900851267544780330882958079372585423927648704432603763290718787569883214350662713253171918743801321353669352213837829258240635546730637425485977986067483690788745317435480620676927447031260064128547556341884759401660152487669397191386988485712671072423277482774422472166275370443481382127443921632617663249202085171727841242185367218995217948286293648657583861936093136620939641649734735837446399524608348425876145396098744582999450786366538487334710785822027550174229674232180359477015588942103501866797363780156655344203792099842807097000162130419332099677550080482484644600265309334882480828402689910304423510377143186572046805941314359071857015032119632927340957115840710212516309095582026474370594864557610497913031676425870764072795261859528714640086733607144989480853867562265364783594655082697415918435621433165635297157195329105563358932296410578820346518570526848133947987463932462820340530961463792503539185804170524483856958109540724914308435927600770547326402915490537568509933100447380050961715409988405369164705211529821931112612918960502903269850971882505372748068607494979325768354814937408005477622245788492343126250200784698660608235198237477335403762173925481507018104308746283278875089871868697033838104240539921611065137512002407507418544493932407197645965797171924391455167715981366228691722416070173194085290509443583839280176505980158135382478511622039867790549053075259699832243230665187671255804851144985946024959398684393701916975454636859296903877058463932293417139337260327253932068653924461757115150144572059951704143440638075339314760880033342599959813080967350481914192046043639234032127988475527507474606317598686878227792100533030729784419069021331889619941856173459513300229788636705802081934330155379658401278705873376888543771634701928626950274343908604289020761050805328335946125369839598631337525241507420126181439803515859453748372937244583851957451610262226586496218180776489339034755451827186787722754390225058751789840266126107778384531868151769136229120440495617741130502480763638185349207351565100441240886911424635841636669921806526623907259992549757605097715783584298600634865884272186145215051143693710505413170072852970740243094372955054470016794761945339311503722400393810661244283286665157909342951353411808412060882599848444417670871971316547044072550043036679842001853374059019219816734423447967403039365784424136440146635559803067377220013490216116765760891635208039355674469792257372248904100781804848256907848550010519550850190381800477411277444171604531982404089703316768432112663723646552828542717537675501533086984053612207491763908177388284604456498131304400594888449393630159669117550342117632519315203289549320614063023434354842942174502225573441539139761482900915043579275178886210736771565582841234403569539913913745746844180148779578025144439327956850777310952990217330533732328384974675700451912303786163775037381738023424118446278097643668617986451729067671792932024661569557415279742183837201587732872436413706430275846888406600546979846403660593890670261562445853865687302099903955715036414948797526935015117560423013693266710814796722210615028850590152274861204564938519411556051453893741083749286853791718305469366536755032278665024124392308983522522032916823611037322339573680390690664318172444634622503776591842979138632476287194901098867589463522612943126456514922875043876427366293829630786265617822817547787551259184695456259289279714428291898411888176426285208052908124145566850283480523562866794405609531034729185011174705575465930924562761557665714351431323040506988897507580377277190204111989368740202336510771812290813815183372029326533260265941062465485937995999948250799643601444567308908261775044646677348526654062747364752222256258943734922724551310369411395511123926268077233373548104353723084642178798378450188128607220790673064472192588070252496265490363969341209856241049564523659002097424042243493919590864745037875758475298558856526315850561962019680366795932978406115976537559100863288964964424286803657543833151783229290951090089045491006894481632648379538356332942982879533642389999877321838660153505073167623181414651068538057224475385735977966984574042409073851165049528154609409785487119089534479048474598794170405296045483916555448069093988007322127066298346289945143094920496882357289267351304133391154471754869322235565169531791458074589251345161188659036713180319947304881784538302916217949992525074699253342239207146031185818098562210484639824175580743813965403728306251820501667431415604188887758989406369632437419594401294326490526233412364473026988321155188069711566762549475575996709789947448255385458419640660827875735731600217415800926427287105038191318806307039980859540709794599374823159149375645945336502443283151848333561690548493456898648771795166931824528544877240411922399935229459505017917375386756965572380013741110969788662325775965743434255847398117697716493147693328585136645871799699960914834266431464139002836249974781422237774861432751745928394236111426778576083993608705242343170143187220103968996709453700083227645191029606334719351830524512120183867760830466282121398090670723358608824814036199744536019778659912847283538181621109310984967977410727774724540089293341550875839476452573526434037593231863749224570689902065874932392999794416147073656235252546729704095006603581564406963593778714540611233420034042844897181738804525734832432265360835294936903494224050038443524251324796041228979770393591300746232541357622048812534486834208362283204547380002395402310489380626040985010394755845848169491186903842775994252414811404619515441088553490083529939653564188397765253464840492516509301456580820011596689684536215012420158626769850262190124072709647915429764502758033040954536040086666332351080622080371437698758026052142726855090334866076714275283277648659109474639959587686530942125674177698284894598560890520389270671064284122739037893013066551747717513890863184437960098254808112929599562543450226406395782133752902683403432571913260201445817486367465680096802368366169897343123423607747590329201371962717158491961169678367931990414380549554414070404672270541756012306103062626611760828571380751505169832206251169020669787273076604047717310435549432986709536258236930578753411661408769155730384717650767140825711037999705896253802477076566283894361821828341016257556689167957391769038828289346048780113643544886426809710981073427473105147353989574576508644490064642264078258240466986284897588346166174188180915386025202118708519320082326066749802733105680043292490207240734076471599485045537052613084798931462912965395151168329977629406501669209811340883072846716702204146540015222480909827279325430060010800825019751410643789098170371075355898967210059867879924286272431233858416839002791212547826399545106435008923652561830654248834284722574886113288992904293666546739734009174264206855886869656299535083126767246032465058735268796661248322295402903101141078364684477647624185069115968473907625631642936156829851925104482911549079088804386534518612823613907263610665000132547367463562087131217068318144685629076142908874761427292976945616926902889473943277939825902748957960552528024314244616670139433362218169893725808912336344625166541074932492637836192199854962734546045089508323944101086235154132729136408740756665708479096747206207113050339435879868978068056489954093800050847027872827677688700741700261363044225987474986537609626144227128378013268917824029310649485789747318285017728891409989405998147752779790139946137650395990240278282691505888562020234692764050156652927377281317275572223893394410847688192043194165079730351555806886658027647383963763025498880841492188803409101104294176413686507258170811057937791135406607471974193972498944232271707911959948025784443085774190054180601518431210356195725072428756519864233977351908152006420033207243514556728341414422927296405204059218920508200090393168134954415431990184174558005876860707917112559043164802149328513428514376435537733753080738484677366384401781539294623371661180935139287725237282837603367126147210910010562317929549638766636128007769012123667751900078011276293282288507092248526596648949846574406229118506872380846136669556743127162137369681697757142668539910007046110930996589661949080377349772488255850676253217538842281638118417019271939803488986599810249494984137238127164995985607639611932873421913606484770960708655386935412157435907783789431070653545909008828110062435456054855340703087534074038515209288444082051639609294752811601545186570474295908197970281294826839628000955024108820690959358931477762349642311168659961841095344603541052141766352616004669870090682361995096430794338963817283625698995485375189312749936113121077901047759728375108681899835561072784661361912614820329783542596964316763667778676150350532857478729577202885886505982980441216747437360606119305871049180595110382248907164725514750564302113391874888113057471216309230104905206806514216020305174614270066355446168998975902893610100710537415520619236411425173719736226449184925036199887360072427465792068958544451138967452540216478718675111860987856864272518582268864512623625973101520448574009575384350162861659149989369277236797059884878355459803820913498676564841941285133445319698890201672893221098160793250037262750927363710244278246750967206227562006532281406369684052240708409330045463417531577013961824841911172288216602545421777109795544200028966013775631818060689631752633310814543996311694960816603253108568893176564312925629511089673487665205393983139903385262495640876704793585002463981212065090912597886632582804886708898348070664828067710675571056355400701868202256267165799941776775153171274936871017898416550716437677329070263688412525595361657883273900395375581360480154001403930255006562592999956025475514201897528342366913110886749853854840055907020929564339118101330246430016907618561442655046318543127950541425824606422073294863300234089012340504614452415087571574003475635226581368456613593467032921605612130514076572283017844556562717324285243834475719709580514834563289320305592119306012082921920825819942033287995677359907549103416323011141879428701495978170880079560559764791733132256408727666778933012624990190547739364339139695901300699494940136523932326280507333138916166235735707426786490440866019368759246720982932609218001667354658250292374457186098852431513155386949929986985041377781314597798784659400542440817250659676575783395710883781239569322417125238012411006459465085902673063448643014878421941689094941401454950333538882020020868662063575114170188237255542310070763910034256420859644475995369706699075917973770094892534423298296127013033440896564713125639861779162057744053120215240922970938525972440612638789893701630588389118423051681458123106895055738007107819403134486444270146293731687744656194118614884548689071381700760307301929751316430027571924215535170868075223954922889556245848559328691872698031394201797892139628912052126999362632667754264843016091209244377553106878696005426456696243505439512481264432972480858558707171547225227980048212910039804048666152600291117387051550225567233683287431194561101615011832383246959570262957758841618717051903556886040297993674569128120194893465444433319333655577942149189228671093110373775864957603058224953456861779535606453751705371619944864891052599339746709999893389030972259177190055329564870103764257394828372470431885316445259912889774717293911622271819357337369750654986368963825259514029454602841622748057743564832768448854006441072455005354775909448709096787849604408733089462656766917634540872011564004708034829758570877480177988073355473202393866364135017650599182169311527770686674862761141755715544597109849565958379542746365768005296832278187844832645790251945993676690266873481335434679948931103109480217450186786110404534751573645079729077090171843839728602838963270976447158731491753700603354457841855053949171695085518124231152388189068716701045050683171519799734673788121449799968989167667668499290779535757225698834409141742063122520294084763269527850788798839386513417426933377898605133169050021935242677683160058683380421105292273485372906788125387586764704163895322007270459620670155155589835323720545722284729415648851691261185223209318761997494938206694194019739211031607152769733697019777191960903653573647739484914945182885117195815352791548515164544751596681775647960033503731724906033873676809377978104539446691961174500520337832352345955588890167032555351490928395987318456286430332383784995993843485630293541147731513069656616148818327937810789596372945591361017963263620310653869412185665271036793521410661122756194738435220021956578086942969241906322419947919009585875186928329255500380027058529501144444131907118738264937039709665789427674504206960713312790069400783827078042936326047102529931152700149040418025301191822482310629912246751692606831276173388450361177157050414016703220183090313052856622288443945289004326269508265249650197816567496562550996915027435693357108151910753172557864749191486955544951822406581080533154956245342680150805136396193839929182530012768882955841242953870312622883307362480447743975570525977045839231282532825091360842741524893459791099668514045450571662552272264949607711392809178761776346787829141521278621281153019246955350344783985859006825803443451915238978153113225654832639982512010067678906697016265045397795920582627572088260568101769063326455627554734038200396878350518384682579409901779848565624060148814556780710671750627321772301844243598868523700537233643557633997849427104800442017577596054275639703038976495613906497686325901710620018770795038985204136102265822857720725223643847899227854771402040609516644575977534963737602693069186685680496054158151034129920433418947344196534401395537470689443283472008079433872977528111955907985859761320938348280051625784254162776731928646906130712394497999548078384155643313745138230670596227827889644511177186944960287213715037411197828884681937477993462117850617779387337761249654378245059873075552868574816606860542716525713261256984550315443586901763134081680972039028139901929761722560445624596593957729932028888276528000197760437926414898871981135171297506972739710578937994574258120219438816102434799316849553283813671328071105394389740460649691703753078842447407574773771290443921027677160239880841079904857259684297394167863369310475903887676230332629986582911817021238366990602778936661528108278603291836375445812117263272063949114562880890849879432662360634104351966377303446802568278109457989052551232651265137412774310753857243695917730818694525366138811486707377396145154774272505468550370704537616783486430245021691067982315664675520193813590335978398843284127972722345226616841153452122103836626141070856831453436824426591459850057203642804636501817956944331399284609926016024401510647958789631128482862196018655825085347629659501981893256603240264051507957908491496477979711071016327840749978761849747518376743756582096309574222654517604196467625442358712623489793143146750932113730073147021911998664212987027204000702547662440671940869171681487984564312679500255981299938120262728301553598395591457961555650505427147854780342277070073939774722893105880061445556062260699167449632198486762609574274641373226363556139960952763434862401831707365545810647867521460288879694648449902375292295393806429588861898714394281940984438350615151347837433763892785570796092915907805972885889347544773098654648164923408588507431518989330227892952752524803287662291227923714285389158249471691067006146552357135542378872856592179609478928320663397751954635566606885350214169024467768652473870229455674684605792002946891825032071949301010494712711341510100266505893443438319633821875618832691407251297379232164448885210585022718982133906342071355977810358584455121068818888881189908113364254083213080604459065256878902304985656957532829849986341901712306544601324075445337234392150895880336114582913531098077789331549306735786154134247737810469345212868911976383967112022262537642300185766636999864650258810865643042539688290044204057731451229694609199314673684904711000658935488074812229851577998425121175851894607530950968460764756088445982175688979962883651716809881427738094697705450689702662800716429677611958137707365444387784183178817707463407017639147599928831605045545427004641268186526658199258979958959651267137983388502224814593346535716906251186815055019741970210118761612236226092334624889330879430808860364577318246211068646355309376520516690368761192809678229477299969093003355546459906331933557385643312167522408854011955679319332643067704275100925600188214262667604047305230945140518403529660633456891073730569719077077905190888917333265871382619837876249516927019906774440356642174387934063553305957697102518644217817889566771926070535582165357408966977089558233279789355878884148021724420997025185757116901726782134324507519700347072018950639714853346298172374438758806177161688619516112960340778256281716779180324110548114373226172721458263308097494175833496886187604425467278898945953839702660185530425495029894540797670245707412998375647233457334137573819762555062261133306261879873662374191493135375352921983674968490962609629876099334297481691228052423083053653851443657076178886710383890796090403716087143358176156298700359076278246474673964835453373812220012356235723473561581878961340168926844850308408559383140529191151404838204570481389400594837159594362212487414304931718441303243035561283164018292781064681722065996177559692504452004395419145757528179221239576156372037927389963935550017478928150372616545144384848277760485698241894532495424952887369182662465007574210847055130867627794827496897937650768611551029430379868723991471152782096066130385692800416932288895809029306665726925861704235657047621536023269938748391116917963165780647562186791923284164905370493383012451586620794753554189801138564074811548551106859231004329713298490655283632980530775927007947094513339564231972400046910229652306096669263405244297286270713540402915522874962770820301358160284770729189796394114012787173731206313285285110316896489342560590535169489281635525506896536203177937668392345424248576658235972694320931043169761481620045591242914645881159026872750544820087799194580674998597482324974277237137682896000112929019811574163166143722644373386038667346579540376252962016003335771832317330925870877905311228023548916606847705938912224529383297780715709299800008053909642917325798871132668669750109328919275530615776511307943381934533459894862763308862334683495155015683470078856937887873407928116422803540815267579295539708499758315565923970821539679023883264909924142359790511682529910763439589626871539265594553621769414734285812622615336386226120350756113665562062836701396444698278549755862400184819945276193872905742818749403541355267919585579476441781688500976525136224261212200418643659939548606598515245013945943305815875402711592294903338082926777310102645398815029448661782527668356935104538369138301923408933098374811441417141635538775598526102467611275986704607101116797774283352114926551334878630579014564615300783922903359405757242772881515331067351579177506116053144914638787445155531834829568340806997713890728317170190548585813634818785054249059072901439917352014238957493290577306972013620499301206261729917530996535444342673155948545772047639566091963194578543056270514575942257399431056686716284952989419001919498788891193949859680975908041872631615191428970551593784969454678013286376508643637768468792678489654562579621459824161822868132397084395321444260500913421572764621096607904750514610887364811251307388493125835343202065339124423297432533585851242646010765161415892806120477477547786068482333494158994006039301064703832215358713884786061953419417020399397615041168271078297930807969886089498975461590270592792046591806232261478433238411544021781984713503315568088089524236104502742452829399220401545180572031063205758389001544184021364204470910666061743768743042179017513612951957029404398230755454915169020755550590408073231849868993012154769781064383107391237922397326170542373321193897850332563900535170318875061879404512655766927115610867945159037317787604500841078190813110338308024857500840723520049852639508763904829221032260505673275937459070144803702580649091755537435808756087633201279737002349946967438570481199083570208878930373452390907797043078031891751979547871206837543289113946591722890256189187959545343147630668254016517745899422771661406452723317756187897621246073087428138724186562393625144564358253052409051171408043984825421550444933401798347575323689583256149135091931684813308735515498597061049269609576732392956404227941571699713671916837477017401980127632045730125022311117111430981454592981299668878617712890350944377999353677940928585542294953287791883495328833666377011284872918497821167972336777986201882962765112515531466485346287017156646299560742248248363092022411454690053533519205908166304162945428282714970477007545250082977550509605662524028940756571651952695745637187179499935706257144817371978318778005349359790506421960067993375349006531976326706940894842802525771608143403499696388354898210878102846732518067735917350473629968005716636483806568333099259080286779712918038434133157950439872256473143044491557126950636410955108747367561800160931086224899246313550938768300504633948792391713707053800355300106213696248328735000332328469128911833033476564323511954723890826611192807523396064799710195325365196188795413637329348862113897768018685705375004991107805012146225428245095688677325491327553053534980162598222096171333432137663621311896351026602250831867854596286296929336492842793318802916749063561468760696226047867490825684073561013721377847043856854580599813523614539436298359661159826519905774217830378780585900324400968714869860507816033257855005016669719442629815711837903217347419869989755574892047455009204744047484754057889262078931820744953058547876153188400750914597070447619268991854936116393550310038039188719002505127174031479088315505491176889990402993147988359271078455934213070152207594266324239867168804601052457563257618073616346066221538114682320419697537346591174467649494285601308542209609677274096265820402718781709433156687813430954299257722795241453987044822107745625198989124725676048713949401080729193988967011502826827863380809763398215186672922116966255945474046205244473456103684267511052132849641532232161063234846137762668830148639729150036860766360524653556770189275564751649452337311130460054424233678212698936742020068796162900024023869371804568185206171234946269470845587699659814683734836742195220129183479417861195696106232991073441678046890338207695847823311017431733446403523378035140591412050948216191047490314431601844807532904430948814284938108212573992780362181207185812947823993638638496770246725517498407505189824293972222641083294790028738644223464053747457962263743547946527556326921129575045047468254107994095727666611036068263707870880792806804475846751387086040229779676984482021340487723099494009493605970505847975887537202977573672162698083516957627530496728432956669741768799061276292634155862768554641786130655382399460629330835852662976409334211963017571966812065447094778597658875539382372644368853267167150481728645309668278374942534608668310483924908020491436727281269932713977056128676746279195867792771087129112831601094102756490078530607247736465385148914237066072497679328716681827390653954943598455899545834686180051304192375570340031237837661081536512071662409320885759979913633498047981779592888349539449587326035055539831906518308194960525280913762080093890160028726382633409662133814702220650820194109548250686909914216956979844630967805956027614981298655926873501638071474219506487133442529953278705073089413495841759941720464142928015212859445143409788051512298968506891768776066508853797685636676928481930773686838317252213499125548502480475581412652232557212805395827303479134629291177788616221442976464284960893626171979783310439625891981471740868456913637196073323144470104763108371084232608877051252949839781341559776807266465255495204887937946441771847019844614392584050992554531746240322979767644459854723837697155163333250500433368677695052139311607056399055939842019695134027620912649467354713724486834919458584157185271263889949623228286069270078559188010596103873905345233981134016537096052164377499973341697104606915176174398524250843230147660167531797454391880551050008253871201457583694252088919208974962981466900930047567932614521538042644318995425331476959323789428942567088829002749698960013161235342936171565199574871348558473597116611053529738880339595971370460871476356939351919426545865913841084450269258147905183342081126922888844328362343996960180747179856821634272847756477132433320370036258077091367917288722657174421749301190613021017163565668548722243524642795805915234673593620277317433300188301842807683511524526896909625995659101567681982161623796337105073749879429224620603877503305071364573229078505045175398211204716185711577345139752744549385501581036218273114699066254658662556731226114426187336009586901732144162960687945713209947362823353837573944188487523028944639819671552089662133293015829202586375737968803515677487837506894195557094133814412057646736614745754926109763983839752970478187535394069912257546553550417967235669555570034164918006863437158477565931640705240691049311125821371186158167030880485027406797537323607547004181838568056232875854131418851450115109551764500127736154886970559757657995061480422973822665432868952049966049923802351011942733696899433689448050674766658840986105847254667568619143877677817183621314855172538446322471705332331734329757951975003847595854612247543819104749177000795500193414339078529269626776656981631918564699524317770105699558672963317826738166630306004291891443813165349482742468847165702668771374368581776575745196238999043253027103942211849216528596574754738643466706694545600942512185923133240384375490156535289011436188908735444411734058664731073786352457092574189921344597547627961881989698994984005247222714794125850499094221744064196390471573330259168071851754337207412847863819480633908367040980625068273689073000586791251267197001621917134450680903231385009717194197469523791028621071536765949169812984046709928440853488643753439190547768977748122341121899538399234224068484734441110605582850148531860246123581443057840067290655292981774203546556111005029254454346330232835692848818380354250343927912987941139114828277583753772116767816598998781391303947780045085585871168625902819025331971888401762663514030596739524210056847664043706656235268626847488840337996508537762101243961238853315981466857792080511210306626539662907952509048089916849501447259444822201300331848444194548138134208235963665846542250923869835292924426341361916039610802021212842612652376759158766667926219871404471774802619210041920578645661235386098799394598443641203936664377500265232113277401257684287002459535981976396062971827003946933591861412073176800052219645034001891764901221506043218859340734762274822558730319624477966317450077342263266847598297806598131217965340083466563992645182507766886327931993538338641635430419876711484798918385483339730989972036589944950374881204550119737719782275266492697748974877042485502298824989847078947898471382684930613638097475759574911367252741025030242207167283814278448847014133239104556142655821633781243898251081181883338308598065828458567649965402052250845766149770692024924336541388202394532090454196852058534222632426309460516998559764372854942922641588397835323934184898253951082386624270974618586715810798363758851261237871223949978626162602465384542556488050393860822567441844299571416232079324196778826328110375628696125700607551425001827282972320162643214686950195569533581767926936806878664127708724870953538199956307672253361381634670120396942356221724057604304613085210643578283531792054718452074167507376674285065749535332499343500503377584931355900080624991927973423592869545598525990924294622517126719656554134693815142106565659804611106563165992777410399503366558895113459339274197359225891278526835391488634781007020006652471411456971940413567860323257820168274064001968126407433483085324816452787410358057333668956118075409533915101599895889306786017782358192558515503579630546958710216037102378114663282335597115945743621196843475583020869691383859445827711190918005225808595220137732040553785949488444041329158396095407150307225371482005285906959290940243105605450859664000382102873715265419964174040639044196162280873407166130350281599823721673008487256010377555738103870741611184040536378096530433179576980332640874254628582655003664651244732549742817476370282123402673543728644118746190339118149580024993514418603413995254573256627394146012703415565099852222412127679220540871482292973855779461239938622949082308134311265017991867522071012710935278312888985392073750883509119769348389275649707694759789827384284015989349847069464810821870122130245112029167159624756457294446546646771508195759480136920842050244046348197903546443026608687783451716523841800628861199637174490861230040028894215900411109495222787341327885105424742022707518158856399385492000966146383063064845346844081274068928815500694897937570850342018509576137113631469685030250126880496729809247019019748240661392318999121453587143919676736463141798765633898707846358441107502733558710712032615595330241325636980172323345746476923623369085322659664598020564379539019598417207549994042499577560465521005125420063033675565881836614091440094285825397093701344722895961609682534638850710886847215396443316169317813649296271832143432616647882317097182310621898009788850475925347194851137914645387925961728553405275528586041592613182203992062074344997992184579346813872699072685896945706616882892847608133706693579949574436346741811062713669663081257090791187386533091894615715033511396068399702482749941502847206960936506847633298065150521920065792076928270628815566880477843163002987508893472705259885332444689794864057492216298266996652767958076102925177295083925315208114316522875448024137296145704209533268114762472151772392194825603001048262927919141688935397979913857574749266352853765239420971556904288479651702947125430777874444541598806584054652884420167047375913940279579175252948994670070332469497949647695842853635447180324361522084346332456972842710480445430389247372651422724994853551432639224684676487683582134148237239891339090112891958279896902344397286002135496178270912266333294605216314143142886467881968828106053382041378262957084024590406687820042719779297024635080795966347133146287849728070974589631408799595101390340252068795214120474644930965712146334098349550142045059660009906361464755184652677210842325475212245753093619679125475914879142773192639784180585198931319177814016575354350817263769436327106906847254618890577320318156727064999344962984021310681590490200257958641090855826118433496413746206395145017340346426703309086533774814392413804623602019105455183230716055206537055938688397673804437821978869933054550161004365539728978573290448622042431078461873072694224733728790873494624628872976994376337103692516795241945986945152357057041078528845983215802565505456837488702272905346264222603806550416446233739012016889305147736224677747810245321790989021488367267806645453055612984197435781330345978986028241441150441102272158088177855251156624043817234030106518030765246754652925529587707955410332667731719887784792018581848367474700727750874150445986933347876889480403902135196426572367470204155771474738998330610833472224537080873529227829635921003640776762940237861661346984585351674020048396432416547902139505130915522388351150492173533674158619524853838729796665023377938163881794248982417138825381076983675790985098976812066453917839974366905985376156559184967226134801106092095723321388046005488379764247969354670908502121926138322892435308893071191867619421544727328358540049839133690518232515773063404682611217600857146300733434187300386840029992193798919873703809619054359484566859389375122301516908483373109125722806073069802741949591805297436868356625942143317449342385636656129284186436452667117018239916610814231821943011854905991876682990794316209559645346173222466471429198630236535022897865090230602904570687442445432455582276189213901939081311834055573459920614433800637104829487606151210216551284024646930091328548212328108424573228204426028148787324856474900347523236850147100257486283781677859689104740688389825973802070075219917812386325995061879054179581879765206132367000927109762921506094226338967149157583508152823873103615490558644671419811107415676111039333563880511077270144804529441024303339910183018888974056466983247117800354214752040591239584045285852042158175605382518690107528308838942510153093397353623813116269955079483993515377764333873875609532801839965321476821079017077450472602640273292605983966037407209099467528826154563968410813056278004444668760622879629730469471653352195941647715802947545459788730946750597477720177674019188552977440427284974597443499297251823162674565404636570018853658851546613493351378998424561418102394437692586603238194102631929266019768758183714002340233172007683495220428067139375688413371905418953014262163932139947214839850454352803880835852783720712370600481537502127359973149700142611260653617152783727364380564121570598457855449391764914841760022051561666366449908869575785135799306188178414700108122190840026867328457427591178730868462051664382760661726923328121559738534504950620879935955965111324294917261405300983604850234266905944705431620218060119583837874760713853731638054340031859477549081397436869532567787045855295101573053360415205371279425652309561035516509510370131020774005151005709882708026169901757480775405122559604045991026788842326658664422500137387418330011867945707283492330425855933427768639774834571685609828257157227074040510490425162719416183636862029470224794309315890536603877261197365078790701071803508895143159425078184732650847728026253156499671967090480045368865508931509140663979350896540798754231561031248633908907742152651490475421372349054416152283507384394579321322262189100270447433661159151040362250146624370882948909937775569908585266087668584707490940369953239321873540759616036631246854429642579119645086550447279483976885014508197052538554316297154563177531400214400796509702619003969658540643475897852428652356646006685259005651987812003377355932504667306984217443276979776492510729528330815750429800100886592113027412357351349424707398715009973832137121586417438540157491810718913660014585515971948258446212279518939665047194587459575874242617933586471735164982064221540871630151510201181524031656949255128283787571459659922247653980622990333012709265812152944745961248485794724330886211753315510913561199062659745959700678556080163749560806790595126084467970443009063197343007636282986830474196984800652855623930888467142150433530955878916064558191669399932656979947150377822879598308391614174074833176480819252593350018000847326546587724245451760581784073957324886047017783586278787318472461990839751366120302765290612902587177190339257301194059950354002106816039107403047683298688063406661023466613981637470559856748197505799358078516227378031826970401973236762447759862986874223267817840130924839848096591854495675572358959402571467348614206498325020952237708472925765999162451115204837739698546709294542752832294601740944669005913207797310534081361827116533640596298157225307032667822107800877339850120047150980086536030853910152399047472175260488024742931808938358481988006591158934248161267432641163013215764399864705597198707855610268055746258620452351896258603339459990085182978034440213645899969378242071727450993059228631205481233769668821717658485201555270996873607892423523240057936395413629080994147842754382668424949230765748285842882720605014781389766299720114566109742133821617375061332801682139942403460720973568502475922373974849233443779799978106295573119798063950236840774225602721515379649875048011746814685663666003640768265578059760297320802827894571947114451326668951773990884090243803740706247852732018665778900585542921098085459104442269449513961163935663366884910869960256416450849281332038246480887889954746345386930875645322785274763319057823990099545862886965235900311785966816008035044803997241920283382917694843711915186536572657139029052945406645080362876572569280502538278325094492677305052056185939580793729432004181531956967618032824829379425890030729225479642605830486296139614189002489213870064875748844983308199628094036631128940491797204550901473159179270006208142807282938945747847646388701281966169428955773673308071746565753880678199077507299156889292754832632586083271295644314337013244794999444963794424410354755821364797037737074463151667611432036659990783277124410345346741320048619968727727591726020184347693767960129092470910151285898139162787457816761348155318799551645485379237350737888731510851999439578508122210575502993089402328041384043052075814545150431717824846043385750976599897153802507824307313288083141755422117166689988168366248598529906607500071396125896742014084784900999007622187472280343657858630062314079533143155729859116860893837209971281431980046957547096121695504967408513534455390671108774254262145172545742309073153426544393234514324850660729540171585019194910871496577603423917212657760185176111163411610211991428421559180261826107247267875998958288130382062118146881656319040689333577306295462582282441121092969881886829192510318403192588890097068906671680866748092591047961217923003793310929353525607985265991694155362092778115572864148747036332543305501160871846875236124691618457386429897994264935734814810650288595368454327018854151815838780953965914104311157876525318650306141811964698551267930826088851121371265493683585790277033399883298804228853774944747516149606301309177092340925564794070789617434676459606948246549974130300925783420413396801543402896294559945825633826814115930105925038762194126886262654470245294035364734651412036707512878674427069109707756936511978423670492091399595578665067937420240253023020217816903202704694820664428634968042310156354438864158450216497909580569885180644023463306649273262956228845291753414384315907458991163964175552387959065283284243870845659671052779911869840011348983761574191353541912046638104897634160159072793408010329881814787621824882755671962148614272399711337431048031239947092196632090203488596939160196020144921129680173393418841720381646728506610906720852017456468299770749015974479409546939784578374549886652369814832232689623479403413326527973665929270966356788381863434982840875854024043810065145739800936120077575662940023721269231334018561317521536276398696022050504012699491228874932879863658977372329157643772211230461269174498978910673501808224143919680169292887664055035263325485012524198625615580619329207216498716076161671891186110742123535063849249745412554849869098608241313834363572105309092532590268674542537451293975819347919326581632339330187160319656579061702598060479561052718606060124271958157223748885247288131363714421521247688993252789164771206906254678912206748735216283309791846206276902669321612376643326751913627195359799133292875439461128464273370822918193512199678650380714168099135136136614300066478741143111622064878095224682896788302259100838452862294981040254958103769513822101070106729711133779891723546359326401987326864362491702267101401200161824867159542503154550815842140461964017746035813212641795285261541314392497684550956839168166979792242898838946530238510513737277181102740884233924677745924055238672684090913046981315698213028248124540960193987542383083849887053673772421699625113840654013541425004093016955680044707689687578287202302697250748699701478384262306360879171743513656242867814119251222490200804693692853542618800983407080906320851312233743478170363890893086274851234053250477476484088867989464024535100024290553860520285106420490622396198844747937281486287317843978355130090550321657726148246679694295195120992538873702918868457884528855299259152560057584343526804089083490723420509004008688257568926016730445908186009381451993529652846649502264955020018603122076491562716373885012770789602876941190747062251701880686792734085875474388121190482935224975065590872162436364307696372225923775566599949815030964603366819805728201492686601981028274771845650388250532692957978085162834439255079926512895671586961427979084958369475914253792397296461687923448793408276358827733541049553778890464710239204089732440171932787351346667119821260741942501967915242018913311575067508637758008596245724766491458180189976873458463296938920888927417557249995495662020284103522302567388683976256709437038525787093152012562402200538487208262880873019838670443654027103333262002916838175385386360710532083089510169320376732248335719290169562137994967679657623987702100605430691010193686941683652643161264168555307424222086241131577855447259789982278145666491760396882705453457169483136589366048184147274305394152783325723584035810575846744069114962374398595722942162093916917449955256952146580897370462221823410281511057035975124215045953400295244976226932563289203682269431692432442943372062454183874177372885203778647485057028773654029970822660629669224072990059675680424818815821568257763069595994199815713794887058310088079998203796807410294287381235492499426366248462401754475313788166768876473254713110031959106818275062596759640116262859532329634580602301051806108321443003432460167246140473392892292799920758276650232487766308589347662949463344056769091397585799488438605198859711582380596996540063358212161710781189098723892708495054788681933766496426868055408853616508294637126044748811764952558572146702518183966127508951839346023498736307882549010532464194854168151120254207032757020443420102856413534684263960764995771697250768847497860085491030552581063543713203975837358240463687882958817310051604044252713395558315802903362624165733988805286838378929326918463207832895421446527782139371244105694542973913727430100987429462145191657480268147862602504676800780415006797369029738073197789871643883550091519323761274235586309529308112512957226899007612537274545035324963159259932365250905593491094778634092515298107467799581011754581021806892487947149039266325874996402176906611272616263386329718862665830311504064451895096326893128844420670497893346204519367709686677225755062564894697573964358120055160885751721818027007777350841990250737742932870941412848642322777486212277506720979761213627969652038496787832254139047507155092523528890816221998208073475276313017411344583396240405116269533362280380698890232242452858153862076736860486613961509034495667894276082698755865995283695952134203338535258933010974586169311844889706911451127056825119231411099767556586608137068628728056886599709991839345760974882926075731602507797575302170482859462889308032069526095319176852170972107142313639239144864051158474463260371728913690974586811049663170590926968270298339599789981152297150750232965971343297379410858226516859426416586899400846265280461868626737696789540015912867701623991834837444239458207610797387861748228554292005411363769965612002919761186218959666683805922583047752500599621421952074139207200774494103880052451546706439989207539841535603817646755546454126301273091534035102021834472064974538694594677862742212224477953655347909186680138275964310730689217664078645071490132929455648486933582970548511780784887915145204458502714618137587184648333106330804199625913468538977514200244239932476090417244282469919193613285747659837870276674692598196965904554896568557902120694012253627470500626356624967184788661686710842658065310425963959815651437700528366101740668443814137786607451154200930712671345537221938150401539934075390806931768223554773799919582832044894302776623215210449387030621914672809972890956191109757210634323732656685691678317901045274360720884073861720736634759457570645415665554321209420871294697703568372782282680377537406616582302441600980299761371909843896012093851624388280940703241860780883746885940116551655713014286276601909423188408483836565508089186131207472257422399515772287730672930856467512426390571874760662505423005421308206157976017319907245626636066441098645532168548781199801939925178280491841876936151089828870702187399951790071592419495917001720184561222460763370654941764078117349603659300921670381311586369202924632718041193362450706722244577669146451849606212790083699365624346906237523715236422582656978627489647305425968981559393844571869057769982673947766148257691030663603978191470834026460668198330997077576964756291577370096610310244048897002762694568100211003631279948546394045867616643671431149336395221527315308552449879015520272169337535000109255134384731376462861199143774834555769569658778270762334724099359138354976954463772461988603474842147432056582576181506547915479664954455794174756293448544325716677736293102606010437130065997437283307673113085483912567181408551046992118821066031127346374112309702747521024575626788510163209569121485896918723682120474885907292112191053153931207235156556712156009561145693544871071523567649943164073210139648044765565363410768942310988628436170167974066959045017151097611290744585147947237688144818328771760964622258241230598103662928128157819532308438573979161256509845081251242963775570766163152368522325260966653632163695828762974540578712854266222429506102721196827437454487099896476798630724646317614934151511406718277970312122284348633678696734126265225949376168389664344550463446279754780705446299908130088999351165112621166282905729204699101184340150066270599659159440141089708617551983113891721640588880718463857044208386862217344387572874217826886511172028005014837513579847830545177783961564503748613506981657753762418016659632597071541444574791840675811701523673591560959904741882884776848809055530672960369761404616165998145699739034062844085908548158096887289224045848631357907068567514494341779438730824541878863769744037450898163645034408650257190254790643266298865513071428275326435787957332998380269571784586035598631338925495493058443047389234393510283473535704839153557040856120869178246581371123057355124514790547167356535681012802852802059453624819045399989334168633660551252525040681388028308724880724896002195809259776104124467655820137212646871597865343296777322865604567662907199472726141027477282116533473296368170647190540820872419180977670937712654407753822930254179130213792528234994356509065752235693935755273304646132049539409500018506545721062944512796314218420879069778566037447813451596020090050035601602766422446434770292535333170717193887420478629100218339613637924007569382514746692900490146218967778205984095017987361819474574285077938313008505740848535691229783118571492693476918180528818022080865391157826981944258822938641317484989524714785257306424151192641581954013974948888452344634839361015375208280539982434179266891835726650397312866885650135146290238004982081290290602878083303729890525104602053584597640475061575909814092162413728999531868703768705464073046277435650374434057436648614484888096938533805978963724537661227797982746417433080269094704129161405972080412461160030846763013323400380234240916428405976052309954601687282299900020249832113274663533778820153182412378119408453738334713070120953832884007198430729920516524561159450993972300122881129201115345403712310103216028748843730460210410191193837963472783253424442676065940866142356462696113392751470065069507487520766126551683519101826864227746685767020075496927666971393552393451822692359129097525852213107924029350388813519268602039385244606826522848209864533192009660151328188418753686155537591985092855391018399531651212471497699105220862315652309973463987199260429919922302610506495449302975194891246363171891244437163992901371326541743032266871084120338602446971693531032334601113089309791966057838372213967303783637751723779932145642250470397273346072894998001587263112027328996694677997492706978696895007547588739808492624545833762493036156383358726054845685155952801749399398501639846906529072977445440293053545401113043636048888797471672077848926238178269495332319496315033017571470511178593047933875763876482857314296114918093418873245213436442900541997671194537043988062433354914765428197934385476172397643462107533939817981821528505810831325482085044532335709298108569415620860641713052668614477959984418146311057387100765757898767486784011808026914240245581426200384444051686599653908485893896162639922447834406230829664660829155745835337118024899018999832688963428067730062976878417944243951050471776334516224176869313137432580472273667865992168836742214627925756942645655763963935593240283565828710296168786325003891852241039531757548531816170622322410457475934036925322105668289658959988290922253975136688870489977830428161724682765969598123744069121587743772486655589138125653970981546481244809396865009229513489629744134882089931824678642986033561003527978385638332512888035424627806476504546943974568119121859283674616820206381216953034014958264158491128679769611430274393773122379328835612596748371230209625795389318671301542659109099571301985849578618559399034224009469708262967548118732415330119727202416495119785881922428778969989079582081410726084272803756891422989837830071378587908027084108324834391701575346359430041204615742488289722150563376404807111969540688580963692373718622097442903480468290270463827809534338759837400356349421245087293635448295056236484968827973113547186981464026138596633502792905656669476050772697141547340476764599609632082134505392795270474027929184519787187988041805109680184584466346360337683460648805696074200726614774816055956362250164477110234549142832958032621819306135674292260685499676229754071325070739987119918219308450873013249950317115523863830499679137553702845942422359809534498626231490564937501782598174331333237928802064983004963157985165841995150414442661286681502197999247307423681935865811616901147755342823022116292295636598333377488523333520637596454107872196895167956261730124788751341894444082748113468609824417254304614154668249486024947951396095126303610369148139386504114587511418061870250820005745484138144329518451531287369986356903304962067207623244844604637566826621480517468076957543743307224199836145725100605203660443966764555393460755837029406596525116183654165657638597831256536828408106689990820254252656043803133203514714557569592856638937055032821329830976693215002500273560537245516964767116598213062018006530660890851316355651887917709740530716766090782529392994727314953447239630623593771223429385530817585688833927151903462458215109851050719097201182939085615623565844769373291165123229146197047763655473455005290280567540773278683714298002482490826715958656374271645307039486929913322095444894530818702748085935137202799035635249812842311909525558579924140953943478856371081007757174403923133690031453734202358628664059443376779440903071168010984147035386200447649074216785176534558823357825775138781874251288830017419684646366095910672035126525356437041679547258225106383474012325181739752557139908313174532868898999518255657818590917265161576675338684701439191003031338635039752140459864582009324606289175337364606626941999382167112593696115618761365974724689202080515203442526913171688194337503890461789786413335658701939337798905507355319219309944561370353894144339513068253749745866809343759501849481832521395985408786067553230662481644622587814579908401642235676059275074619553926404434965899485967759665796212448400160685505863245426416209217096360885392506536089221615937645052353252547689613280106532679529263744584870661703013009237687124679465879520525679808594440232969307112785521280480193520741985140705535785404729567492756734786304651272084049333876500554277454990549447262257319098813417050402338548125990694022418943389489566460868201342739128618506275573162424649974467137713197967265889733499135284069111990492713377432851843689225164132822700096551718360338120818759411616300511134009732828200025359266799811578244087470477463840051550451895806872774544475357545616358738565672521936014913069768007109997114278278031857614493795720167556192437449947263727068464261871277873071650529244368606412665159553837108413370762517275945133812131440430617946900472267044619744459540138536316574520968318361384523073505967159700953821978598693574083478144880096463382720609965743715273106431705970768806320392781296838967107021293898415388025865312907787076112426412240052189355128834955546700460175013217838730899785299242752305163592292728585311026645278398806219811525383087786416809191761341667476837989384787070774597303672319428208779637965866881632498688311576351126615707467568008919348622395013455722404651112149661139397096737872652453162225852845700504514706057774104904287393079310651719941241790877677804123456974919347411791014371360609200528583360624392948099502400164318589641036048982126752572497428540571774855117435683777046771708756750560441934946397141108557122566684882438348643269234549068696818349801528100350134397985458427666317640647072232513890041734459785740857504887724582409444422365965029886128571244842680311587310828432115066809726102231472254109781414929938627156109582536474561780356807945118283551545222577893524936766721998892037617913558554881473214586166378033486600262325650083478190353910946312827771882847837929744096609636099078603182483639537016372819472126706960126707781334838421480657014995805730807206251290962376307464612017482437349699225045328449679396205123636562492677658234779911831871885008233668673352163030414540816563874689845535582959510420930987659219256840325278157095637728366055344234324753193139774133531972862848346584439973798572451811618942291725587339722175280761168321072581106713791682771788452212940753156189503298055420493070591158510787718383358984038172975365857922088422081944413305662073218610495819273738127296687191334955304513655685766952838619189079922419586405721008854227347945905226404707064458110026728279050079069560023260947257633146480296874411908235572554399118131695265959282728397432541660327841929445156136481403596696510895134755990375938390821718047288542112972733865691000851820537862001884569848198650600081702227748923849884553648246626638923098739464110266104997839714239158551297054252041091837918562540150572034780013179702739667851962254303353167301922641731299482722563081358857164593969787209991917342591651951044338941514996218383534518093989988709576791185877256816040225641305333853894150057943050417000869759503112247057445753206720554150220323291798250079460878504458388120250244662911812576974525496904259986798528876255246546406165564633435709907460579213371655366187894359356611243608860116501959272677947941971141951915347677691312521464176021549069360083873428851075040290786068601791154526521942494705835908821681549894711598564805428278577038944626681323296489471251899222877847207364922651580727303514261582761952101673875072531930040648426980587653538169015544856467708277374882939624131076406087672699345107407558106857201457887655570702073723842176807783689109227679027924011193476354581786614240915035032559834172402547720210180558262446133788980841247823923935566636108766437570348814367586251579360413947189601419529640542878426314193722905745927715678562350820729623841273890900987787948151738426216956250200302792624067683536002295555501935396671701570510442202265739679564381978769256861905029211269877707907073508972136390784434274228589624506547123892806360460710158078053855083040785465339182603673603698456579680983746073328087070298046004192920330176183117221974345272324378280242766985696027942155534740271145729505585683752307784174311730752557806592857410714646922613479194276886258200473296372367693290749927004033767283802298119968404922774244745575702679689764217297283957444675484589802081128430913553565416457491182739318375614816208019073467265330266209665950738844563546780861206584736807563445542585053630593804114414573268436639233961104542540719033223815369132186200066779463431175437418633187042947945847897355985859047752335646151676294349800692569391196651168750511804401036723389742354485944909212723834228233283858517897209100459702955811705575910114936814637959317738270488225116506196461137039995887468053605554000390794801233789931936352719133734076112467903320516061582551648334035822018800100323364146561613246635081064050918946310378106058130972453565868524122528774625259453689608372738573288839016842695335606926340613228181892694016897273219334043145652831525010939383202443399558646053339634280607486005797976646813135538785052192417336661734751099870337511720376011965245098436479154694363652842746382150634925787026700604672963692588692569881101045066861320681838323909893127056218900109647679193636484577065468923808268830631182042248362778551733711860204297076637111365622346176299552026660533426873086197409668049124101390151276333741409240908436343061302638233784215029865757212899109426603814762438822149831129093787498825368552524503001726452742009670935056498948771292708749218651571146585765559249876797610645711188160452687702177150662774440486458987046417321282629870223632240975515984916413985951710713911939869326059814899931828583899555216144322526263331643265211306495488521718352457906255135970192143916560559651820263625167976054831568827085249598903057356606654704926315877085195142884301613317132663713569187527443578053566159950049012546607563087462756760114339724877177208353043652789366344521981810753158167057649094006254265873142302912218674820808979210949901365161467951828263710159634307846266781710854935411063233009815494433880034462427289433307179377210071500411239007422028969821089924955847576739360833070536291184792307432582749190494353832970666060393886889238655344326502211434676751337346497757847665431364818059103725020757313971620953594974542283121717543064410510210533795442468402000849579360520922421956361802308890070211951426508966398992166333569347054241402837738901272333579412905916980473814039121729390691108745879460701682101778728190231929074340311267501826649449411586235071391249059794109226098983497302745523992981028299552954693362630578831017267785168553499530810606946947131241405366984949677415346610123722830683852521349096242895773504058517590894370645205855760304943598627613963801676058272064234255635987852144647957390671489447390760080721376197685620665385918037740840001386419867409413341925975229874561897910991498924133929092587029993560870511173451685633756139206355200092830802656428153701956570727228389286983169461276209936981904504454903071054102672678317193506490115392054292989681714815508097258508732154930711529474528431259850367760535430839103112859435756360855640934150219617421996752428688750465522073889045329893339119876415488183345375504863643376394822362477621298751431342273014675524601549498220678853555226080821706627384325110393922578460132805060378491677880049913287028129845329593061034797097318187262810859482302125932461937754329351328458305764088102328605448730659819932984339525091080270637849410697966510930524417797601353531094461035479442048640975170698720035136115655953945550082944624502210571106176101640867553932469155966391601514931791275440962297591117077372547148841402721110073467183706847564296401776614280796927242150495420388719141950866932919523599187878035247643374704891889080853190773486639787597515342248439759890352112702256143239675820800200018278662727822818207788479001110099609278492556952875576734202308892909952516858065945241095163270912916719947594174856517978815693778017784306725561895563618988417301037268172525169748128332960075063079522875874511443812723282525550757089883193260943978425950185995790074236678467612426778856043987755189251023853366638359679911298327992730710632880219994030803491146390670760232639388783863967660000397522602247584767086325669367130136012054406842871218241303911504384530013270233165646028681315172466240451272646543376379723887201959548825277494152625595131796904640666254696556537935014451308174508140995070236242494473227577247090743059148758857622596571561852232355088258585049082453424774705784226311104847512892220890778892539640658155341991724454522217045109943101897819699944866362355663201017447000057498286910772671797649771045199718247620834129764938780014023787518661652282996184663137521880295542433060227028137667984308296960367394565222377344504628193343374921087850726026942273598589908030246743804455934156308916801669961882161060579310959453165860843998811119234087401790933825752906014263796129046229800625829769306377394767100018898130146367781698588149379031577521079282404219604259628699790442130551866685356326683649257814637732593884824708233309988479338431498447212951875860792258301456542441565916469698241285080412207535263842289345065380058015026009340844030339718370647780420694765430925152495565720649162030218551542024636489613527352082586912082051936051392080475414068190261150110454360225566996044248053564080169808236230004647456205208733739943735502035405645487592144363223101431605375988738379491487077168744393760554735619923893634634262622067420908017008677049193230831565947157674567678112530884054659107420067984890333682182724953051957437482176976799405081274608410500961661706473885623629829646666206916932462917870751138705892230076147208407835545343801910759585725963366816384336653663576486902534777656092324153670601180911452508381276971171936195034469236701603476431272157111653946472092602353715908460104769887641931157151923069622246624424175726199700292727993775963236962843199052643162879523407743259185591532250315314471978259104374357121588223472531491440752836966261363972879099914474083344103043122600583299826993451393411198849322605473933789254582344555432009689609000086113961250835347242980267886606027546206683752572101731975269196676176111579874746706158811342103990748431967958813293672381054087646721196975120426162672622113698634153623117363382827468829586705029872374090612737518137919968571508957005450133816142766704683630174723008987489034022408452240580520834884031279307792431687672653560617982317713498046823702991376214370249253358605374412251755154044510801428844262693633161387485842110255135336638125204129838488523661129730164978266549116592012590642247985246627320755035646470364213531845872199843385733813962198422518684856794858063550559085285390357456914267479309764548707623000004889710381046276413582067457519635831835263973384355135484196562625254154311459024717612990726984071726338053227199058660865103948276154610419934233296165018103578399349720636022940822253178885682204958708772117994321513105138816578370410611829601085177599378360941920662686159330153209146421542191692312435625596311608136829261848123806808780297573589661187121715453770297908612929537122867528857701063404385187545554805469988232049924323523584516808646148989796917601624633705009975797866230210225905347457843967271141601056262263344982704303764112722942668755142833155622958982471559380815458990251354429667552366598514288865372284618965874427834873016061072159981670203511611031810552193631671849443291295504530404146527722640840662638797187335839490271825900690112482617222200971327792760455698015045744008734689558927429745366455658489279872601589058370474693077218389561611531275684024296859888776816735276604087060360534293291470917539964457418069454108017809090083222915939534530142456417449204717428018768610659024146731443037993306687195001102193672719700337283895002621113605309823338357225769268777769006152250818957955801884822247279032144478278599488230160268809535431712125509247125109267618906068566469730109696679872889316070883142932327711345087199388811069458310537711341499399891053399129593819914867297321782087504154168391446145536399813100812909715331032943702711531541578175697687511488245414562272035043006795379498420226239249162341902456319159887200721132784881080691588298702490234551710585172645399290880665215671433119192953991978105193136397452702029277346507882599502637524766885013513433867538826189919606277355604846132882047655910469120227135576451986741982920542681433045588136211326520069916530163222897956404083121502021707911018939364595462042279920098504389647614533078053996114875575325214041143997894255747789609731384502700111345703192669250931117028819108211589717467743655520231773040387077915046549003971874848693139760841428789903640098257733047351090176761117187356976148065353707767482303401559133891468795748488246903358413841957949734744386168203307110691546033775248446130514312083258629709708836116269980362171680167990903217910126946122429775594145310136221264022925227668776116702154719153179432136132686176172077249993407787217264453848002856937510943873196224709959187757053505600800360804022053227179511032030334295068158052177758137416316856654186872113869007285537479389491346558936082489663585682239255093191303939398385207561359388780867819828548769551694035682625557831239956954871803322326480853220906204712227070283390528359492252022078354884346479717060023461108231525592283968964950266363488077745162718880855822288900005258088238622435973463516673639847552388877030604138471109432826728881590766638642043740019107354385509568625630515484748633272844896820725714390133778364943401600960878974896031119155085983102823877543850374622131753258868147621423868951329993031483612518232677150782982612407415500539907475162675826721163584837786944086112446373615859832959054789650392415859958762145776021944629356243072087637466750681621524899300816687608636942311582743262091695919761630130043298859904332553361984726905317155173197024760263856940792133696916476032101501839387262980041410619574750293082690931955711803296540324307179568456303659745503422048292341428266944217830019898945376312989300752316106887671352418922019468272278681462762387060027999968232573703781839710459828874375272268921250556148495433872471309486929789694635928793962403913981418663833833904814549005622237189115582307884036576382974262576924014167645081090478428608292703749501247551876781666310078664491930380646755109407790823323262797974933675880425189370247146545305076286973244540809934385862020471849710295161868616445245261364573493660342811624876585333739709483381389045234174333062237963685769031482537326095845428441796385542242113167835452517693004656183378370258515913751391576589189953347079091167795503410070255296198979220989466364432026476128091797510875362584600216773145009185081821911362097881838543470369215027625185828033585302037121122133815329060755661725698812457917552817618090254749976407305311995801332834481748020721691134880421815988069948783501864359731186643838806328990055499407192479556796368378935332315329155552453503436291371910422552866488234224196730309931666472085426598821774750774104362283405829771286154374681798975735871700505513760027343310515284819906430675444113485334523188824944162855517669749426051210014691605821379078145798703815777929269051409984712767023530703056885060050650864760334868598861352353695219836333336899058264701178123326657430661704340435715947856631652011468149838143203496586557085980038306293134688763576806281362773994416577817233447502018793881308700811957561198217369313629939302238208771006901738014260307907398307726077517328077859571476571226244198553559347759424080489571381390911623242917461064664910284253922087658890674429893495130024952065028956581702003889318570377031456875714395890091290130641644691499695116489902881148668573395363016145972699036536763091358153211254907655528573724115618003495605022629528517248864843144984192952042315428790526361483247087396730351992656579676805566501305310479185284536281632748658531797560466710873698278249243784787595444287610459580348870510921053485397904266163613537849903737561772604322172653089706951737601198981595034640603560975234614674415098075668043385773872062292265512289402032705016333855081718864063808373571559637377689177433414645170346577300004014743602395226566347944602784837657240807472902165573634985333535675901757628633819321766984191695375750037486415786699650794228727550751332125332993689134024518724871914548888839029150243420035285601384552567421846235397351077595092145666757289448413806415208543340153766146141713132126639935791405093985766088116678552295774327321891516121690888454499677763052935714379360167396390567443053034443152460402644118444599344365818558049006969131133659504008231075537457981255413414455465946174895553148797365611837901873707605107106641241381168664341265239644964049989320740589633642024606333604995336344803060169739559464643841770467195596747772022053006777730556018111010962130464514402540829426065434871095633467805260358898434583977040194592332690599321982294756779840475001830103141631933338355435696551082792497096211006703283967854309607085774941716046243956548087424919020493458798367739636127521977526203613273028269310474516064304423483502517339577221859400378260634155415085207481836278804931716781626048929954404581530338636619337170569459138142775337903420027679169592742039514471493785866799023500499896630400004425398311752753273084347482528370379673964559531532921581996827662004407782015308141381428814076125451906701384297190445997899181174504186045243471480063281132879542214026231641495527714803966942470332121507038579778733381509111871825272732140947252925777248827520940370085106511822507583204238909401367880259986867442068770144393045942435092610739798529987886404700299870453067532086676715990377173265895715018807947872992561325119903062172810730823130101192290316407726095742948864998423147223696272509475268139277113581186454753778021548464493339146606060062628540133899221187611863511635784477634675746693307804840052047526165623517893557121630766061358462115235311238328123657656532459709207011103303667584506700536467832146614984376111038938264648981136354402802852046174284405086939024695116380480441747783741334170971307439699512831776218051869552542519213889832242369480879855725467555760693176574589755548242783092826491822204156556854243111916833294601401103494309313416938189377602515327275882171775261919210391601854432483779504125503833171478320063410969229476444464930715507290132162911941253315508917060166876769483160043432638590333696599715033564381065777865871078627431118664974788736779272518322635417692383149067075191910438084732746225473584128146452136646414501440421724347488502633143571769017141850072274994514276751165562356326780132842041043087288930991897666962987296109371697480680282594263326944219438393246039652915912980569082770836026611239931010475965004720422037995712962542195581699018001595744333526575844759056643872680728806944672267481576959158580129587080088994620782187060180173939455905294577588694068024046198109258561406528000985031364698371300816442559501804284429202502255831319891489984344933558419840564025432156272615341216836837354087495600663204993198879600443372887252841262520277267883090651196220032408802276773776190832290536838731105547816617280063892310827957980458259629944383935626121637037586308786616803358849062857905379413037830222607154738041180996660968864213555258991786269503580605609166163192022393769231680489701538999167927990603649067943191150347880996781496410175154231472221729689398867335805691513567084024246251482238689116322873820471204721074963964371236445430740327949024201845369103599930512514552821306842990107048472496909450831388442377518480039788689571475423010410793665964159219409316750444580946559500847321152263884319835116121968921564352686942457867122954808021157200133888833626660588303165705148291934248246971479895872909106842183833614517127961522114151354367510971502806708944554101317451878487884447052084110546158067886495243794831047161250617640556342400619073850751240827222734376926225974486313256797309594788691212070791537069807276673078748412237549654465177372444742297789221574241582378448128217091138123118563877500561367144598319153281010389877330386347876225781713076698611982266753992778172644831537959755915576699621963993092435624842513493725612881341756977160114379200151988141673035377565610673125960962756748807153190475782999250866500180873812453644225362096605955691041088409956572023076734505030037810432917900135887032404771939537932194208482289910737788228330926224795241444934151585070272616419030966290964013977720650804394976850852794367833643005237940659851502967362974399140840031315750132436899862925538787430426233234799413009778510550910758915319116792033873078640752937371010431643817683637307872549340959211863515179662552830908123522841928239908580721195735964179934206272798063484943457601102554915297717039602128366454772303484314658447453937643467030456065527204753569574042245281951398676063303488700845885645046283920027748153090583798140511141253187734023021242156112411225717350025104534792532499474023918037708723554295010471108352356721384032061113717321185773179728375722460161569083204914231274753417091867111215186627756865052947892796077862047528084638192319490942576989598404532332381012096890584372951927444453922044417456578961002836940068736639797660753859034499221448864640777189401752409796014356908601812098354312373310606957391029912187480844340764684457946822904522889100447679114821194158390767952291635834540557840202142300106956728904245934757045749090608404432863686542184725764213709261637965192571359715167498378986686121844341505966140943203049129321476436227163949975610669587179105537872371487112325690430681203550996282740332300212507947246598100577837424609688782438054826299292907173707292868053455959053276935746106330698556789049152625946455408727442531125204295086323524083569918758170963851592063573174300933175377867633152760265863861383284813701099833157295107846534879118163816083172304480862854520670658899344587564139798260129978722238052036431460367304210795274332796780268943057110162580842487361209648540931923843945103911876781559477172147480238839345622337803455462282813512559709609825256291794370786854604843045808977010414352087890470703323140684293476823476895273081629745983704991784316543353867915992128037584394464192344124217649000509904656738994831818185707805384197848455377919467152748889796180378924515376633845896002257221312778532484416283431188974912574887362285127538259563183295328114071209709687160433585460923099397332233593077448160724552249804761577616235197995164945897909805410908343813133199576161007143203163432479512786174216070567460804060752695549960096337494981238604639750206705179784817285699630399990359230799223139441937177381658048706293895021161663143837869991605162108306913508322285716687867908310752908808915521399425938934129817907474519943437481297290990282335329138071311960786057308323769156515019823388680322345097383412872829105188177063473217617262987894843627903692826544798559277636717754947473515142472191375415556412335518046885495098925410780085140181263722646663651687125721374242743412390764035535127175393457144642488826985919076342261788792745950452595652444820926349768115099288008888488456567591572761144123137886137576034173841054404709115823644461866350762036566530983628555402784063064923763173099729032106915252076037223714028538865471962382985422007884173023685030207019257883872853494919067014830334713500695753623328649990103847619941519152242083877679453585495320686611045783838006114967695713437827701617163154319422858911393011972805562492532761542611832055356801558766878987879753606510364237706902839945890863627988770229792752920971302680918497584989095975925979804340145130977174006959473925936914894027273966240667039932727462887452650781857554218030022483340595920248097927841009580380197377712463939927876592518305523521809263414286104370850953446883909105016055912411650436847593582899021339816530919324658677438006868874861451645613286497835151337043277807264547329123561422263792695582845789443012921425887829615895522685981354258248295742011224387050832784432245695746221637694657320230571557424060889365168266914066015242300178566790165284906282668268129948623521328222874441039159693844104158365073282832324796887133373724646867077706015848077181050706424739312383470700952284369830578424724495259291131422130464172089566911164512834533992800608992015280859191551890206532715446599158788106384562157375613453858895755537917327431680321936375548090972136528982090360546623736824527230049892933930400002287829568984998960149870717672505747806650533406524912784920547151430757038233153298907465703142419533865329767435801530440445223070803351972865663202734069093347312165547244800406834372457524528180858138441691700798658411094122556493349465693385349727802376010007491982538645793813870094855088369020587067651941770443405390385649887355593292744421849966808436810430150830495814550931467483050884540165129152826972982458688276655419419708509206000452225481689549530391468394404146460504399960395378070180152817081999757701948760712739794641985051023909121754228471303960024349750170939238190814327890905887400871678625527723374556999973610079432413915246208992745793104070929399984841477137328031954372343913467885513367855359472300404639546500118850523730800557760839182352779351396185297351227025692145682880277728511794546148038661080416137403619359397012894315956382851135134758123905000782902537731846694077816621677168308828067677536047468334313305846505203950747152603155234841391340359658082424484581258616972381482009455514021562141092904554755035201216150670666704713897120341283815546597337432193236963905847861494597778166173059815588067084643395748626753437565992664836328967418553633691548181336101586480168046029675085822388328508447207235173803027047866596279155536932111408999937061724065612381480894972214609595679231310492790133424019354129841295387560097338468272954588048236922482110050915935813927136646097992345967433380209968106463437509770596217193214940870841344884474433219215961746711745211731410421561880137329131218482884543494413694273468164161804105165658528788350835649259787012868010835067702304840066377526993435314387593266209518004356677760017376200202767701143816303517769756279001618518820223540405951780056688085694256052020558832521462825405953774581946109905376200015922580807568072316944717532873542572283346393401773317570585657262552052882174578325432504909989897278099997363243408883810771535439881757582213896961932498907602537186913492634444345959114871399798437355954959809329174812223566104824356239330493967860074064447894899066677550334045993598461953316860506029592834384966731591996157783299584053259437864242841871757452252984550359425894809890026168272749705440872432829242793692045102282758909163601347551178155891903167942714952961797084257895296520757288833739108082330547149894402821035812469048092234576259753066778468895466255926186295117146269406759416814364920984333219767467077837422923630485534136481611733937549812455068111131868858182584087657334920070178507588398519071096202375158307521869980680845389556873294093485073681550971161591537989610303661303936144623889829251532267400350462571308110352210851759172419992593933925131314911432767511302661733677588514576553433602457463318854098718650114244507938275076664347496051565823320506308474422854668951731294779727904861717202387875888917281387335212526256870559633126104443017740318580297183804328257538653149984622294319048439862405858447672724069752097945899237792987587356645739418932111380059054911809829251309483800672314622706811635480409679769939740246084714105253033538392804086527015924120220699992311576498316553856486703241498116624545032468561364815346118060803401702534617009645669835801343314918959548789816316102418110294924352489716520848968945897261991037901270506365863528832664336632193163629353448777796521372068831777855831329863295523386363411566704165645160852160054883574240328363159373529576039682542817266140073589440229392438559940949400219742158526832483468794754201693005353768721078599277207626280116003689840354139270377544201929093095528446013059353748230826655365970761869137060614505752140116232223836603755273455949044676603845152071911293809515835012203719157158437271209174022712124936269814610300070589655180502366222281957754546513164428250426169226446194560318356706704082078108213771256220798300516423535317672764894714399603541809703698488868402805912973189696151239183908177818697035814005604248513685684924646654591919068766303161333835478998450259105208192775322924158135706791632355978403767958973156613567621693506518330781655640548782620236866889158519733562780796308076310926057185295927238917298690164239073903595400085670828521716217165517621758024597210370619436491429114218900314209873253956494910123075472242000872009708649284821205447126651154545219372669792642244535206910853062949624066761631035497922182751056021048084071801418530915939763641104356503259756060638235084363704342050381759292438298941639441466879477478779449017321757074099230637623738001660396347405019046161564723930860296631209651025576479441516602313236884084797236372457544057898018068784518895872669024648651079868448262999182881352879898081789944675958994432311185330112652650142674566992293451784377129147038503732941146986704793103239074238932681135282236173969527013225881662573106163273482638685267402273385951793003640187598134122065631292143277511589693675422478114869772032352322238805990697910416547467640201283229503915095131975904970851428892241714396683320435790618303835190287155611330465595007733499774520213197221850887967019735638849633757982646452798593596287564326905751346844699363707620499660165611926392508503002428406961511148151149444407206212913976193770604553135576631064248418474381092415333823123291605690325192581318164814273166301329314194506639408695141861307949475747507519733644721668382687403057716874881992613973598178327297581307667182173388246055360618506419836380969848703933381399313341398788970595526270213529969731834775822033962653573929675463076969109822201449570627465653433977813518055870207445509974882547464441387343728306754220108798046529635446809271759414146336203884444346638513684509491967657147871048587745630878346070833093794679473338279150369719494246170072021778596317724735958039917935680614938866596250194714451242391236374289869916812719386850132026760108450688030899119928100687233077731799143472480997912923180660249727156150390781771436840353575789820176325635402173725949751099309358239844843052634692025570229305802494212987840040675320954496050046595028136646745305222020227119060034249987443382149603679277511118261764496898897581985594596427312733184341612804317380433887598910953549464943850158479461801297027518361102494149683311883269387170416339500809284253715814652368898143196979897418009149390441379422173753217155688159692470398022080604285717768787502056805492638541278696136128737599043974165917452036490354649862450948567086112733131622795709424648746680831765739947175328071178577027463828090532673446968795752801976605432139508570408137667250617348586134514280378568133939848403129900102060934602060000490549727474662546842138252738476316155015154632089383117683650940999603263419756292299816812823996482621877895588154555613274624302477413360698848253968529013731035860127178403885188163949057308946057902463997599874362581816560011522681395438692563424588924806756384461603020915353265050827687765931591607884648710156809718140944290216413272382557914034076285225725391264390362156366916025547237739161289984034958025559554527331377578081274511994837628039497492403922373815838079195234590586398720237815941146169024610864909686282536984413745598683436844626661137717528133113307264579403290974367049524560830110635185840341336061098075348020905465989350349586397074203451435854480292977867499716000337987081665253334085846188182164912071144589892153109532709819738464541854951706499647791055856221418988215208355725562436141108148111867640884787829372385417527076971620238525510438762165488639250461070872716491526430459880228201174103155801924299245060662762367305291011577963819901775257422801478132025561455803903672110324190276454570304289193176994819583514659198911740458756131316824713761274483369911096644667399772048672307221103956330236301863696635383463990853133333144442379391853864444211245538943343625200918223689666289858168869923808075468631437260857350026747817079247250063985179314740734559723727692031799531521859668365939448923420207037788531531723321441604625818688770873465746597244415538002245753058965901898277643578142851827110284910415726484676099050479571021939064716690700219825646667530957200688275145803001995004003791421205975959512383662152132465868304093373887710580130991649465653992218146418401988283090183402330552931140985103757379672360080605994560846425551206204194978590353812212383611736123921732856114099715986964477337400032397422178130704725300018567662857423447814212069446924668416889363729831989585516548040746097125580788654040887303775378751580230757563217218023258789531077524389161012905469298679428887257841391608007877218446433791791042871652682529372619110756322846513397647616823278365962142216085825666765712996224852676125021169775127383124424727276442239073096061355646507397153229096003248647417862162707073320439915916255815833717897896485484348817002239372856109137334279375349164747671615565038914325309101954103193488613147335632340286274245223008604323556268563745102405906265538113066955807783633551485062424729509062217381340606908301915553290109605015794652640511261457952203097999854484817399093319966912738779860036808589181538940815969052838475773139852611207078853496048790207325857464736609477220927710597347302887561137189228375762271513588533487637721244995905209221089498027593601228118470332754503523594619810948413504870365527666875818994880084094989246856090630813590225162153747529210498103053469581390474503566626502971342934121862947515753756371565580470853517721424957168022453802696441097185832643235101675175929955128773902724360821026400447070038575990967365579668393652287744682919605395271276003484088850831609016432723752016556007335469463820334113855941059251004373857163400568446124080529222090911736718763423220047030188139682117147456918820355108077550633425808831635562756363704445611996477457858280086969383848204777677130071640372326628010894629466523701814373056994514151039037907191366263070570090973629392539910289519253628787373308966480779713027161331910023144458759647755174026960979168202080417173315364572814825918303933508882738494453479004041092525189594479248551463786937317953141356668441830448186879528816826613881421035685344225442564937459688374491958202281818455189934183876490320960365354403750127113825198645564378619155947336255562021112506494619641777859656412604000302119248831822529822941841122280769394357568460807246851077037413890181626513285369808605866794685380077666112923695942537977673361369653434139237733769109145348108867734699819843912819881000930581863374874405820220840213471323260046335505215115960016055803906797719120000291354384898169861906271850514430417453217409503282425619419474480785224193973916667585022100535669730158428353237997396448467087787277686662547776122179839888805113623051089465266487206471758903029858448433767875761759928714927593092173559725422834485258098599005206367423040798340680685625563546239043578218777616396765807741679527476167289854692044613581989139513109423608149255892621693306555691245297404925166863774093571486907287248042866010253648760638781521275234573587985350752982926989116344183442293530048198260997053117030036047783401438164228756008800933176227796660959909255571341054637677469969109921157635238480117937931246730433026927761639922182198279594313424135317731805948219728943029743460103036812811382583026662639103242825323849097528681406452474449318337105262170573910353352914219662517725991068969346289637455599075724496212731788264356390856067804173971371969162745661687222563477714278003251325689401381783203581334982711742718596126135992681622464102645824119303938147763515282228186183455802280525671329485396799359479446051351841550536966356545523208725122881378760874178521871305094824187136141919888052596640768101798697757878020854721826337640226256697251992517392036316903157825389617859874345801508196113207870908237714667560129108213943106061682640663047352160746179160316836689995768541395364478002146720162017906660616571602939558929595758574732580752109194048561793045149034216856509571294004342304799524931386722824777363053947399647656610633499364310509906478484590521798895523908844432432513445059577503950203343464776241174713914994209532289997293439680551709993436805470697682435639491817213710619773162140097239022353722877190986144805081105581184955568271294742268550930815453800791778212129121529677629260976648280425823430686709728657135793019937640216530886543532976445876381704511533741957539643845674731661431973083970935939591039567606850487977644029032133250786128283772978666802210356350881989783885528229452155553722280992617559968401317427934813789989993508562953261836061784470056004271501158178568951962247667442963445591708718798360654651262508733590170503661725624516210988574520432501383626370732854048733551095197905362526464447437966848519736678344018425198416105764983279090277474602938585972409285082712293704240314894695886661828109812551939693834341563615380384747346305260888236146010187818618911483478552503528130242719542707372733257811504810260334437519785559403638112541595201160769425431487863904697915983770981571497497784606361920472562272731965125536782394788573031083246072712920881976334068727082879061307399775823383644852995408202151356048630586876401100679219727264248099230999046147448769226717987871354536870088714290713004761073079670041681833577020989586930119110633336828752238362119987020064329434540392936756344071357519104760449910454356466054921508935083559893828362661980479218683545140583348916949665519393225065663321422804927466861266644912543295450405917736254368113627984117298747064330255977781413980245152370844291742471787672853690893268227468936805191491446800569330271084381958455228706462471333043922344595972513199017410303733168067617716241292999207004269368937538615677539277625860649564513604696069490794687938560667487772752980212407867944257279696093605090610451457227711944066745003679951074136881241175656481313636553401044067081807601380789586385046595065558435578640643302081252297556611879718010256397343845839980043400718178185784165257885371317634624073262779122239846730026895583494163286688144866087311829981046906986069528862104361137822890618399359911177273161680754045829892131033237818595082184582759078240356514624046385068611273358065565254697090298769622978765664336726749681585552422696961491444507693366682123484453488002853866493172887422826035907773554406508661264676158646517045680815552102476279769020938693194976892170129313583545393337431615389734180874969052512376054722023963987731357342471368096152975081705169985781690706042537740350131630170059473220268758477222043897841350869888200729995914291149779709597407099785618569244772662796616893519712563536830390682288832204973445680109773519741076595862362043648215669508809896597396731285565655076213520110333852748272260725310786931866583080950694307327172205302853350847231975404219590870478356265761352495921873386820467399117212823855068425564322186594245947325867776062122560637824313015299783672337257078189748866345502768490390395925687863482091393829836284415462468235741469940004848822221578830838299061355531294432795103890331510110573568072388604572303622539527234918123947731067368111291541527544041848083269146569849571195480956288016342694418919447752225341955370242184443027611517062263367941922146355160967120671136450868303532164801535580818899693231346121893440514843347075761880535689113416781469466174417717382413728738622658089516002923087201016472374744183878860750514028383947152439542034342019531181084553998143059443841185520634884998595092236792248242809687754632495388379339566178632227891544251294937160854084694575987312290007455084173843180236929461184885076297854399856472337474261872435522409320513891724654082279481655901311173384444683570202878528537563407695370207331902054208835267272472590581028040326639521264057289603874164020426662910294904400518123875093841973858366858872045833672934995432212901894347279556570008155698853028951912873587672787873869061829829761840826028873092167342737524872061643179800541424734436214375846953387617838347792197286949004548329926490269158898688427198403249943300513919978202821323614280806624515259833585348274652765172383375475181566805365314668453583247059215804488940848344920117646347443401609619725984674576932643580719437840427200029791060704557703032579274414506406363690676055207855313979948686564100989339307277144705230595973824679681233139641600496524131259219033061613888698158374976177141359982015370848009775466749217308380987209174705904241593334997992914764188463354134604976230749858226370103726547660825048618325377942269701636582747070837849139745479664772851442000879707177953716225862347242669027036355592590339535908200475577877037798011979896352013161033932220304965741374073770684100418017264841101380306121593544585296736894319684929663417401094385006588879045292070390208696440735548158676528899581831848708730683709528298298473807796911568189673951425134578802683264887625961736023508506618358857398994095856013910324038556468574069305567640505796109216396335958045817794334984853638223626897154898512426700117978715530210844010980515607608302514806086570972701460199710103886100618358521805464294128199559109164001611951713516297095961690509916411032636862608471311352526641159244526354235079945226266867822353758336853621313018292083661858965212299977487116438585387673019686821959520866659910232642665805814285399201516635988167095867059669495868020019497840209586478405285252272578024289291569328603929715060108343220437257712576019229114377731138631563087903381861781594527893134066725137198334022937687913547218457890333189358110462179324387538538055463541414148189533259383702105590166819933568215790069935933596959593519864210266390206347818263741098494949156607994043733806349859842278349608108382027206239947894344394607414007705084863592931552154205698033172092197499008953778212156187141393857611131493755992221989391971937282250759881162526336034767787578306388167683737786973582430577325710038300714569783211740913377972801546837761233787035747187939044095001876520404435508889502102753303215334048057700481487882619718500261983297120999279431151922347078534889471974817593826335886761843315065506163178102342584270662403364696761487096562921410721546562061965976967728070714842783611623412829830940606610119965022402765302544738848831793067724891470825836379189129660041998157063631440744465235072492474915438412868081583431233827419919124616080118437255407153430617380473061175011581514713419712761797150000867943554943692747650009772367271298014557199673722002758839342017451009584081874214308854545775510233373251967154351959295621026442384791006513155303504206459154585506466719424297550340841353310294618357071019385620787361666348460533202299512798571185310624225916180195542835641864540055700606073185287679579877875654860413398895753702911082849716071520905183310607339145640195712564529449529515223108134336272901864065976100797651019464817510368320385804999462322266698027250269014876347235818981194531544826665106257014229370207516611310624154699294065006749553363386218568587357669017939231993751386484961298860439994887063388408194695668836570345472905507605951569596072338080500887262670357813850845982372497690292273422594465187017105474182174841608529249846908934684152861189863458991458713432803049894390982018424974636432009856337784608046420534630146036826716804212000235118828706511157471707208307516204946131831605338405463131713171162551205354625188213537866727886252792258840035081513357980094748625838724854370967302563559300951089005301753447084143994793293975776521722054868236471490574610983658832762728514954599833030556959667263794210512602275349243894288177766593426460998876097991160061701688232038840352829240242664495975798922353284744813318746953523067344172483341222352250441768270778349334189410155881229127616018175658442442540181237953589682841761908576317213567351935984945873709442291076893459204323020199946894138205080579193009988718271163661753886409007035739207704910006447879777932287638585142110575964921090881556814487700666647947864440410434756737377665992068131355106719535366275554208452577826388083813564597131288427329637841042424306657546268801398522839491980081455698982590455590023993793906592817863892254258279194142293774309365680877772485345484070016428761099726961364984164060624997049812037424888118321734469781063807027327896695454950119184177212261714130403106826334772194072762135384291967600920937540190786779054955905027317206764991984367516189022152144128978631341923694201877242709661807122800862538341764550583637078768582361097692923982764631874200622368232819826881399816165590496081500238092482557622825109514013391966613567587636735367335187702431732234407802941633764733262869484371163526943089135617809737547729601451662741270671460951708833006810366392144815461177072598356566051303210205553384586980509387091969232736386985519930227873097156037107615480637287894891270266741073586429483151305445592401579128376049479037054190143286065091159760804651511724100112822928908221104757644553799679844963869467771527933105969165355382017723333573210246544038566038349492934570731684340992567614322657945986396309325499848821244786156351376313415437344258832825371057245531780385607138480375415262274195426809469291696087512538155622934621154599056485211691623621535194424038194784708940463162113887876216136554867801988672661223370408154766750610572683685491262170447046563618606713192853201822898670844629649151186821447982696470218832010753361890141336732073089070529370694251156183081224803082680181258130258388688884113585468288769779474412465220851778742596667885155446932703827780476312833725984104892969331029979689796627676183562546822315083681787844428614911198008930100800967651150671122955838204373797206934320187470045450174377781742082551081599836022974769467330086657335800344526995093992795812712982890383207267496371240071712071766201283453616308540861647543000433447731510105578876695798604619840489767286414658295539453316773438163072725103165765353465642636624747131464344781847694147246675387044598037272810821973418722530577525737008322609770279804667078353038060178767122332205826429770653492853277120297389905241215402401528039726751709173392896185964360903485039065275865578103034648675766979544923345943989400411014658164737726868318273791649178473043362379305024648590679948979507238703935179804874224716621246892010098677796534291734040705661763857440613010627162798446454166010860383400914207133260232098240318892994097271211712231214984464410742487571145682538934638141060129660815049420846556411005976747474389820667827887319539939653145403325251989876176719696650300478905186049040400598778532440171165140705301051866086730948758109348517294846224872800687572041794047944833688725477849659168593403319670994278682146852218349391653069139907118821474770176022874788348669074922699279918044312605163348437735437317324589055258578736964172316139243573864152589560728203382763951522947370274521704642502188941406161653756129266139291323460286892740530467673112472428939073463762894807401499117937638567733078080203724426807318280308608812423248188213049236288159065621688973893520317897668258001774112195327194076941071771244198067234855664962575070425046084332119352195066649511623907946431501721574584735660529733691170938392271417437490183796845225015341799380103239110516506632201466901811852537762696095920783270219777460035421544904246286855970093930570648306126032450732390699904652944906833382126188382252487629963949230258497425326578909768995888656408171012844873625473923212246281253268885695553113296606108648090925858095483080027302518950030658829222294859006161875379615281714659906918723668855523526486488991383216083377710150390967335960828123680126963577876774329351381832210114520433570243161065224227056237857156460465943688555980913243868855172316238132276745778444625485976919431616769552056351606329488869109134202670616247081422918791351178590571909657939299988388851000545781176089054110234936294705550765013990557341980550087004209616997709145007554702782454378634221102464124015628456052021173384570475334296481459885437074915131173018668974379594803056189300914554044582749879809692636900740492032511984288995801995809946217110222057099357429540567536282375830111805355349513386055318856304189497428936017301666917760587139267782891771235902273136159864098745106062319478497369930282506640023910637837873249767892051966806167089522500668617667182774379117918465669396474562158146268695840646738855928453406915873745272101428550803170696539519679834718008491494462897880451172931529186207585228861918139254715140874911834314897252911920959605384996855092826624052229297052377738876619472905006433061030037489500916180519310636767128392208988707929770609157859103804958269070685697356058542829883354641890495991016142176715269049924313550478404124594486901073031619324719508723114669035811743451127131407364993987330875966515528899808556020189799588165100547304734230258391092468842606530117050022410104644500771638633342478776730563716488667914464162233436442363600737441020686341023398486746380951345397821920506412668576885292357306756002104284238967669062058673203480721491778471036112578282375277110567554579267970429979269480396968114037435332440376934153061964457076419005736522098422364410985751590374237566257797095911175192855243190582280876716669414822560110077085000854756435244315594543749721797768351646269190127665594639500927963475993284835218971624030804956986387066368891968236366792499043041797481910545065995115798131842129665766636573127840144822782879178679785543994485034092362382292668629370305826966164355189506818431201576120227726620292072389056090181764852957275427966532810610142604693530687872829753007144693030608476431112868111241382497354145146300411718099213616052543595397826025993304167540417889045146304787973420991377653173866455561329045356086659108303686130801919740419269275948753960734266773497835980457507693149674787556605762096820886208611716094113719718585785782101106617398834318052450228429354432250658024159820180163830333640622249626503854233326092083706781315700429821958100268199706493085502560511769415074685125017482177072286630896348091676911369726274420282781420584391163670273168710293735306692243224811376780640754871996979504042795075952435076375213131507495378578262706049547086951867563795569379893354339036302086797055385476371653041550900497518274290494560440752804245586514776829051836218639643380989063480028419758672826353474227803034598227506960670449614423933423761206701885118320992652585304583344814018882783866898255530590898303788726896163385460211195877250517990804303069103812308359866465430633751100548020080321499675334356097870788259007613230545059731859424235907558010649390621308191353916722917516135695881369066754688901893932907833673111404628763733362878597848613645778406192241181768115217463377387377864034127020988451214079043904434822251786268769496014574781701662620506271895376754315197780860839149396058359223840629315783357103199515423421594487142963779169993831163305886792512086099111719847314040247366615759969966821375916671944501741511227161071710009120850837455007798999629376738541836404568629334917364056376881562463128270592657089732187754875063634269119187590641775388155499478125023936574015378179397067395401150593540962364738604114592386797425373594236424183950591774118736681481714859390777091103618457350885630540968006030308083998771975681256669609697268722153144054858127309074084070294444394326746808304317693885176413437528180839049207154502255497420108485872588568667019423507312085169578229123918539848552401137916611877845973712649392394246293508671439909038846352150474882804089841043794274476766196007665638028120815615961692337429975518719884911762445577064225510658463589786438236219729413090843657696873972590603121984027221707078371858918105267838732576561411395085155194234840692797245362833577739398080579437981073776555125126718508533441667237115340716302169208656364658204068772812151881541262323908710514535098208761147949043463606517791752475016270903318918676491466412754373521523458410094061486785438914676704501154869254899139091251131244531152787102649525196383659685349061193311603033768532908192102402852816166378795342068759694482991518910208093944294796123582302540880325097151875199947112898160149398710079902123507311653365139203389610079440101590992116544087475468568261680384261298703733182366985607381461564681164379808926683553660390604186832008949891539584254925907169609488705700656205434476263507416672857873798277595579085769746358480688792014216368231699005847052309157805936124361531009863754464229462530896345395247271803548552416227545828095897762681081482139173199474215688676221324047284561494577897357353829039075114979586324424440804542394283531585310605463228604488519925189632835866994172383633399722744196921252684838981902743024333635552919624040470697377898672863105424398189066538145017431295487944822256830298034943942242714712270832861159878919471448919813509076028459638831493565751196500837082237586408011804122877798907804503424459654738412293692310679155958228577011167310986607895535142584615848918594323933254629920894468288503079896901635929926545980374342409108344656074290052876571959444623267752633176338592943585457531578368703975388204342985837874067854335058977712225909638448809629143769633453480210270015426129521746129694636787789887324355046696640142769778406072993616220445696036710335743223063133020199233143141410299717674710749892305651685656557878934623043076610546746690771435054708249994059377495889962760054478180185000781907116926115627005849986073372973747180383792076823879020962458578214490389188599849265031684502652522561305536872434362257050597635343157129684282948442109943754192999268366747931892280687706718232496563064876831916952644432232145746890310054413783422724044507083203129813586842233080324086800686984126398116776919370111471211534729224888067996456829134760157873638363608938849159994866820967896024449636175017018144287554444426867408042885184102713105586594804916305932092491130236356590919888456891780723864287391099663246385816616198240976578767258501220203386011830554185742580515098319264586994984283215899093366128995072319630467537342394929872320927231925029082488172943410775077337073501673068919052667476960925727917481894771913714757495355591399204695673791858491295104470420128239593974306039962645097018109762564772841307714038619859060350666491516813640946926044089941394435676745939640717495150812986378352158974248157997688005548962839075612907039722868292612475032948381842318914789913461059331717130466440885280592689373602982495744069053084655194401110877410074505849703530755435436904583538601075707319017016525357910969506697883659011729299268723169147019176331762908260818405635199140663004518847097288441088564599191710714210096428887960989441820356774780331777375844511118733201511101400994040490792961785532035732766645606752601375680169621799972886156557523372949242385042844555562073214697810003885117359296831701856990144480647302464275848758340520381892804981341588884568718341783743065106683407123038467309995687799717057198642235604694200104747542016487114082448480965234453182515598994555204073346378731195351741761345726642461874155060713009681204709202029534427323702257724557202949002802294292801407855037721150339779973803050573857371120329322942334143991254069621591383355322721996540498408552159075652376374239350924994081253631506920863058400881235816524748107357516676285562920200913705709742533229684357953398911430515156776419339739025381557637515453740846707730000751718595820652537355006080830999165838485972019935545658115183964553656656563700780213317892085122826543942303436115204025423359481361986300093719087704736085518948805984886802749133232801085246046286170331563322422065479260004887146490088082276955591399943008639553600722070073800749766358054460618998971108162921854087179098390693040499933387106205945921334623658848409550842511217585275317902278403595272261949061631047904146911995529125123458059184410119738352675928103623441909731739656776588865826121454791618365462935371554335248721495823171669748442399841170873004677076620640092894907239754646680828526723319656835896017716457389285247574244366159666624982470397200114543404820620854564174067017728884833949984968028906861670110484112062850979150710757189692725168290327939165708961380411153934975513535412241363290070323265459475583997902456630519795936333097983004800098003582249155118677753030894583705067061751252026846723587161539726667907044706512244914712020248151696849525238342649646563574326414013150497784133976641833310205196028350502675784193047399786891648808932857020546693165656094258498815996397733968145207074668818032044133604766526841288112662154677899358757889644355756869656263712244969149173445727779194881314366291056495470259544860518849839069042006695408258587397066996071723156521364749708744314434633390553545255092925444826504541480585428570467137105430700959524911732742906744440610709340443388112652794747160094476653337966336682826850490727133429385303115259977846127033077389100907447130078735073967501577791491915699887856288065970606717905813964338491598469029114549828607212754104024719199675159162097938473900400894259309387470493868913725267380255155698773794978888368913535993207743126284206846579170456998620126887721311340929984633572000397752785634699040855315318545045509561063656143205737734388324513308269202694177206800338459665453497202917614545073472968126504288782963353511941390590752157412086441575611838548267047671110137324539423067028561481552762215812470957241234839850792952034269169162404536177305387650345287424953261021389158222556077284301818313582686190409105142595641777388619547335566035594013301723864848101504500757480156219365457586788396709977901359647870789409708993309031881880485356449196968499524821969496502293131602847100858683544339863289043533497770596613097336621562374979814669118040672644462122617634570088255624032214122384907120403118983516364468642653054658986213208177925018936267057388082957802031620575925419963551403827670392728897923614870496810174448524749579913646533083975338633263652145498055590944135464886277287914649204219066327034482329224521636617243490896782553608837833058274622893143580905301923990722096441496774032161673897907488393965908711018527454953158620570063196559984064763798715889969992181961860998280585737417080718753356470221916209734129038872239969276166495867752869085345619540944505937073138825359455557055285917418193173659090428407129705740511605447230525643829116648902193328338067553277297615718053612083631213935377672956377840897677442185277978340973141311635095712402462487515452821511640292070240172916861120860984605762655923650766962717702203192738358941481676633887748205762188493982211071111119788954477926468426266094828371775292631781863440137867628516308279825344946838383201514047432033961140616612231995772141767953937067880152762041958972868023314333548204279739264378514368481712200495024288310813263968271764707417563065050857681564820193331958893988131870037051947460510361255621157331586067754525984599457493967487696932898028636137961628904673555802892719850793360768910039772314960856252818160054097377431835339259166344487660008608884020175427144347566252982196919759692173971259358310437016201177256630658956981448584111640714371080287232380007279703670388710637270739923353076531566481864288789718197219635887336082357926826625927898086881357293860791600595268038158789022732212075611709121202292191555255400288528628076230722064451359096344357979628917406647970705283020596733482524626962451444753726440292301830543028523976182234239965415749080878874055566050005976944120902171733437076008921755940310820688869395408610310089687931101660794516888921343981364707203957396665738202700904547100673955746136528816238606423540395519444371291027574954980994054026842600016548437333030110857069396319676789940100112113050702985470593090851682595062885768375499924461357159992166268758203800684861931731360844785203967952380583829341380299760712883711045502371844052658479314769928731910463616810196843026541057933497685966096792792714057604195138052275089567551078037180033864851947899669485192206948774863511185366531845608422142813067496813501265207657413379837794285663682439267650122366877468826490129149288593987815246800234667260424743255012862311012261790166731434004446842140639836246404276227232157770644203992987159299281000968708196883680119115038178222541630802469905098476347754103794486634337744298716633611057301218682349526127534062268905839026747684175652978630659611505803311089185630987488313320058148465259671592514830909784530348726295617474129688277978972619868200788486440366480676329743883242617023621343293115703975560968123033609288541350312154669470437913732107289444409771428874509060465087152088239166110624386581004777063856861853757604689783974892264272390559268279058767519343143367971103715246001526339806339976055727717456531161711249131950391741305027592174766873159858614713494049436564528545687743469262325413997155224620659888524227792696862035912520802841393334464540339147568256408189053855206834981507163251203947424389992219248196340576777371935817097806278060115915686077205594171951801132338678691530223570223031284335339008850207225872760751988631084499914190324192520133288658092266630770812606266831190695881228686919747768298074711835479833553970498648794773650898153025791390344767932356850621657620011081164474196130201811154193669448039500857783266759641799699222260845039084024121810404435092290456366397840247792883578175113175878257678902290061151195153416545187001455479373716798758879109220959217849752520025909059664607703820947531419134575804347667020677351337240337716544412198882511546706831215975783683821765337304581633154568379518273398262824240089145030710183668226243306469368383327608572025939079682789103319560580025619193774833674856305314839504172945024719079023445924008892623776831883004889726890262064373329037160764591870161434422345274842714826383061520166978478521371784319587713986126320354767700229751630518046697474220700694713087660419543145695586230550529879520180515717196580894390620431463455406051256884751797957984296733860037615370992297828475646745488837039813583169903628059174832083195354176430488378474779566537000800312217850432614311765237626315868624315644873102924168206479272039559903080854717055181996571163267290920370876399437265233197284111120281589889823953957247559087024416299763076949508465433990252703121840255900305358802592082970889468910269027261300308423608322312713683203338911870840177208617819546042771878062514766991720266259817163774298380192849036101003452545378525142842926358784042760975527427623669155838012124477032967248899583864138521687684306912594997110158002597692274447813844677466639766553744622380142108360181664765311157449344930684571671717384622353381955160563070411103343282071521119852974343928747854355481344538967101453286235245575599207810349965591327433227023527655708823764891540428293310591302846476140678438301920200697427199118682683800247657298580391596894240956208891602444156434234591573972028249332727773487977589083246619763259265104951174496467597156961349681203669629028334308121174223622505294659467456485118858886820769791275995803305416897343280575315169921720129286467425608682777308480956247551463366148345707902754544496389272171816513739735413409857544322956112526691076789187079483261908374441700702398105079762960409722945186901533997945469298770764160767894332827097879913830829178807207936008574696212416475514918980268932793544522920914222653145954802916489897985469393714752988800146242313709887193975014714331948917044713076348177089412122076109231373809271344010077960032815419885442872717582588138819901237566798070558985883471741425753573002639897718343316283717591318956067531481014674500071089014644033860658382554884574961332900352587476988910617942328280291185418432045805024696656393371621823107594722953714828580158534449386577541739374420640972867726891759724139844318859839423079310425119327119866207407135814207357230883904207552838169495809107570517959619006074572600516987912836176404164756758467609830813201629368125211348375766145274224901949856021502815019720580005411288417736371738075568335708508142315471515254142190545880344467690287026853706492208379896384471180712487056845689224870633201024263352640562031955157026926972729283590586134641858843357341016769496940025379625918650120801605368702035379048525163080511173417216009318909355299089435144072543161679316437398166410338732958994583023727292572870795741344499983443546457613732633429992306202376155180444821481609734450481895691858830499481740828311412974739331054497250959819356949814684182352995076604012541505193468624012131675244337387107080511078592904098454977235366963679641389166890798733202233192623779126262092389610298012355707065089331693296938866360823294000802616699172690588847282317403301354112666569658043926862716070710280871688084619106171797317844939155178287322605760227085440202345155590209274297185849232133556993544089689402950223626201153064492851861952331027740395187533976867365470185703860871886229317811977855751170209665720013499335107087017219134208261617741458242402758222444358684433058213261917860034299400452479408397212702244233612749374761508766767222968610942691185474698146118808580642656274658479258634677733132064871845792514634462120906312586236604662003736586419799155024441981039815854501838757043983439083203430588076884185193527777393958456705497784433672973393356919704319689168262531578355639273770738090039578613622358356509843616939840433798456384043530722418888977933304734196436331454478615435892737761197829993971348337642028455694249608973942075551428148431651096746307226799406374720867656215491500519390592958213699342069498609806714456039641209272240980064205026522473622283067991345665161561886727210034283040887167780245940254657053976768896298674352796702525985769329717643022998933260433705452732971569004224945903020573175548469521462423134580086695059091690581633571359881706965666639357938216264472607137147620776734557504334928920595311310441871175394619226163729395746129408662641282765720693360574861525344351321737571524293300253415470564058497562295070547577009838571650332283404731650585221050431585802318415820987272881588131804996275006861025572765969351300837275116627697459106436911959664762317512573710945298259683493290287749742130152001390518420687141983104095755838828256456832403340438346535957120398461867519067831393700657816314480417713981582428424705245020004325856129217410727373530878902999350830350654964402853999962581793224130181650175968150634998876269019251315273637070903635680846713560335214704127507585488779071985065948953907942796715029366351107865622586573218148941226353499333531431220090973169387961920042401104067108615307790236300551214023311238688724764891642366332542874998169301527426768310679233665342836927406869304680655030010510990957515620706888178000997352455725023678299501951338849600200316486010703096539036975114615679345552544535412692411109077134175679185954178506705711283091679136095956027624721492066653717951639517238606857641931552827554873026870256729400571775095787129424708846638621362545011601880783733171097256502309057666136862407126046953725267736780595383171818334725908941610413924787286282935040374886826910331758773350787240164649531260146811585678252524817701863535113514354565712221964132689617192138915365920947068144698320289745338352703019546296260638345781316600715669051106488813037044092191859519740235683006216266103349485670465552961229033270927527727067673681522610387866669930579778216436753977833222934393522905533884569409776919751132998232969005105374871700042223856051428826838990088887313510410369516568104191410375178958320598207642204005536484826458276555047912685282929074649555257527624405843534026806899255913566387974615672174125596587078051319784090954283269922494532802403548140702483563271504977940648949218636220141068695306126393779626087982122346698295184610149340481946233456007612266768458941623165542035987820487173134612582708198410676795160551265409109164336462086699048894849101778283632301382597852865669314971835023747261036451899940499755185406870977044001083281122752252348689860826763806457641470621693185713999335186479588178453337519617522799247344122014524270250002433461613470419372757916071457758517101270249696868845692405547584888794239886889192705560923142238320502279547709047991680250038638041562593805583443642698622053295265922280208034139993420806075829461604678836142904042098990963696342892457950729658275759252735961624387671550121950207284789196230907757311459534537490014956058219997305429072672339194278292306803372390377644235555864526434982713882388512770648643311882200090471032762212572220331142661337601000009718635852868418787475784022144438181277390616052760111355353050184978770580058225344130062706673415216225591029771567256527305881235374882289024771017413854387628431592714916228984385523405242254670018943218708738215902092369168341984407537288511681744341125165754871537839804236980866402343357660156737085719597767543496918733302868562956151877650360707829193633154704068167285640927184287876689915548209003541066038743344949684573307791747246534038775399789841119049251951131291635607760180648822340898822151154156561784468394247001677174312453408234565923002322012549248019424389859804885564828283960029287268264847122757934337281001537895464361094137772887719674384357736117558048788984444320468950672904832788742925059896954541367960691232408102575517650231485069442053193318306748952685856464509602380908339035540198344435876333207086043780472015194417260866002744006355606922492415234642390461716252795222466916748988458521369711590218283132668808200278508488182932613799379365593517620697117153739970807589948196925938549014615369675485796426009637559825263495222817626069688691060288666002021629538886067558387746007108317956749237929141319157066048747356412899623505553772883626106968211340456557299967026067729155318863209336772275570551455347277742396182878984735011126039881718460403667799036764130181100973848224789623026696958515093132987016121601152069594608581799227501686191810756470846585694923435652507470690494244555844753096227064147014199930515733642184685717659205780867672499320888380002371158990776839294071330866176756838137222014854003121485856985345247219227702132904379935534664337443379364320894301921449547662683995112395515072063870952635041736753804491576711914281239093839785881322222005617193985850787133594355917942023426057879186058263691035056517047679686180487034661006754983640628164855494903133452455462830604884231215283555843942027588591337395131965828362216765685712937724101018903063503591705469669943161045318688013832849595064347604100053988107946465629275992778766279458780381104089277019586147251954033812549500359911102577520777638128875757529687614249477459270854555847971236745289201910559235429707527398639065589358030391203132968035555678489039030950450542205554978228550045088723479140342293935520002966814168587801590040048775063592919276306188223644133336069136104355494503657830495184121848848535285964220293880705791953187384220660881252001014842554999793332647431538171990911244885453993656162346498326643855275574237514124201934265105190381857856007351795044749125582762853123951953805086242297713494995380036909132321023849397017648663753130702167999877254756574392372895098814505700133729521495289039029097276372123134887708310803531336384769348212768045470498234894016664800625583760230736642665154308032134976564130304688724708163128803920120165777335735811154336444581181091175558444645058836385803757598702095140431022598300277513475817583419558133991879347969864623895089134745401003557578653801567825418309674647592422027584585839576917385914543332958349949820586910552652992260172692895927603917603450181177691262507549273970425403816287186682810517346154232610409919948528943833526497178100385302168251277248377007984410362467787870719241816643795504660618062991038449807889979148996945073651228644938067949187754026461477511612928022180530637287688315126418487571014439301660348853624218077689783710728590151960766911631781260491836034366838065733955401353150115898989732536554754003456265757458217145138795909983817219809487706774842182420617921956189547839250989755565429662932170209904292545512506968849604692237131545958512173292381420296852278589498674282355563356920611568871201465235554825418410948120967762902708006519588829885405230044721231967492596944023719484708374867472066541192299749792309216975519525373464923842556781791433171031672900904816169548274886658271348649267964299984016057018480820900006408325693774898095460120392124932053480103050012610632146327930460131658326696689187336002181901884373455608123986675015739807082025371898950467935586622231731872938010948710650301667977124807426486208329590221442391820343577889283744203522680913883343012033881733452308870929485771017376947083642060065410681937187972320814203053929939065483193183953427510461856149063536820515635646017846155308146495257473933118059778040617545599125133567613871840475011923940428285355276827344309604351381629592503681954080633063699888782623593878843769597618439798340770875293560092591309820181163839082119251489578715357747311867168216439082856733013584807491062791337131740526867531815552425988821250648242275040187072809152748891730875876126292296766214903525266602817922572596325625561274992677790442453738394054164629947402272982538814429085772031858098242444998742007295181468064965972350455308170300153288374108198254704720859595092578143895223371780081631224565293093026163508887101384862849680347257763283420517468050551774440941763467119808933046291526242149724082037650769658326363468527908909253022048173166331458912508771551586594678936171643641311834817760605339526307121228450295422258433841604089502159186241161908136396086438744370489403048269844059848853479206539580997924661470631772743326166701455333227332133802278631171045747695004874137645861456479848005019227970371368219396875852837500426648125739586958541239519299746996033423765823823726631005060078487630583693589371741410135886409541110576572487823439410814988764091846813510506359976664806843260286243934799138015085154672494577288113148024171002099743651603890203387924589232736800231709900979395556651955404955109338086851093683629678494633623393005821931364045097978902029164013064295067934171268289054846613388144503156105532197664736630007856407769750726043281551657644920553696749571621193626244111966038687438751726728596575009959531537879018231241607271745322433336305297553477469446544776063849318529795636503978683413528134995637960622105869636954470783957789022470963717530844578012153711078753307963328900945925564875816167607132325144992736836501659576376149968435475049447603922110359778691843017669512156377959457418072491345808630314555570360864077054087164311985482012239332018910212810952556586515179214561887689186889137375518807205410461417106589838423809373752312957679972738982806631164439441669928409148909254077633573799465208013548236074479457224961579973833217110563807546376730455445433611480125375956121001675569713077547649820844600946737319192584551344040736878951087467367402726191270008924983237328328670687378800703648682942353631930067645021513927841218692474907613351216648969827518048498791966417466104747568649060372581749603621214490624518857337235473995856403635181332642519283020278452697214533038497462261749601660201414294796905602940908145632404425567377945765387994516945540008563820992361110681795141840553110798343060368235847893688604049639029506716408816896186133586677260453232021110656227923689618814916749723417860848634837720783610515047939443442153740874944442438653568652658638636528467056753720812084100541055280379527449948192996342458603566986175586044068854566438993180056114754495484312423440694599846647769630528697621460004739105175907125078909308138381482924460382603844229698667057826165720102638496308175923952100393408047491337361459380628830962620216124936220786973891380694326816190176526933400994125812338994066732841699130659226839381299236567384606456861771931155368162059925256028335724788916784114774930518572546320896019425628901520866312406460193270317563907608709282762319854252591583922304549390185366080225900495719768900876199321309953143750198579650307935097969550326411379979451958023047168761402189243252799438469359988524316101086964583367208879012070002933455281556874766364670896880237662160005059525914648636826706701296488828026347983823800441446090042510015788252185066274675607485413803459910841817613690861340592036879548900447428614386713794045230623897765331193141270421114269752550131754190545367342442502508620132465299544949080429325142844550247223901828084432724014213323830688852059607667700607099633221648628685109075748283919358000879300646682998125449642875673687972489285154734891789840355847302575815542227921816598121136888294915628668057691171161941275006401676103068783520769755066533430006183030850029554966974025838643185143005790330779143732465796672274511379911725585238725295789003903656415118521615783764745839923083282289415371101431281437116777392507491184001228564610527199337353004998709615175844930042055510637773281236733073897452712130781252547923386700909943100987553584011842953476220855717544037490342548365295796171571483785712352680384853501182616239389877701597998363686205702429622942698485258442554517459178813233577973813191409541428006828956089511537826084932520161810461695992236800931717688626069329196867212605374134947149498626007570812442622094549983848593239608800090184713523210511597006975461948000734970881846502580764440254507231732029465643592163956554736680425290794283394845427165031538842394314217576886042542275644312000312248232984677639844380215367723893632554068447449444289417277321575114432332983723022226189350109031384446704309833530541260525588237638639653756952168831560163772786874624407879662264662292733070006294525394353567264648170075138010718849172583931339115162242338029785228486251423801309761596281026437369840025494783891545110271239485673490715657461606327696183248539059339470850310069805974465549124342119678363441201987597864496506733697463956506250136189899669607096805204543537445333183514433933385282248592807377989571369731608086949923001198068448336513144442076910301827836891946869924990242017934089302235862746044404417352055909186304429603936366680927082101681769135577857857834881329931354071584985613694993607146954532558106407240425547257512401915182872643856745612254364029309217208483274630758377066263778954391127385274295249994232413185817237540908981825889568411473947462775849277733641497858124273935552615407856219190846705780371581033252724657450093215025018371255148797369968835828278473773486467032001807030327206418770784689046144586290422505814318862179694257076175205226930690277261196176901333206049459793622879998647230307373743876035969775393921163381472334465753162555225436708026395725459769021957271575625927935169493849292803829064267868066040988359545382968898745450167998355103509523842665942599862021009711749164302289663038370275639652622648110388133179023053674154246385710441295804272588347839516008337648944953360033951175183326751332912681769632585090112099476761684281503212111357119702635629346722002057441947515344158770408462033596396709594818767557895479063267422443443603529222574782833975619256179552074972544529088100276214866801815822339768257406100092897676956156975409815567425055916701740760915018714447351969735716144463435388905628809375872757633320634906606774023952141438236295869241853093910563029933410692852835587095855639266682729586262851623421470996702852108639281866190711414293133722577878536238572991755472667013015961263063543716523177179746435296231699327693102801274973528047551687663763134369183858199508182893127914455997629112212359507013290530488144935859296115725664390621833977142450320768100480032823669233752819280189746311020046789752499281394481298029031195511123541542089476638263015808531542213420496069030835978834493936189098739162102293027716239818076038861285057481288624176249866952991486172855684993891460526902071888960119183917981971871902007343767469238162360792136134987565309436129445926172547707429886720133228171184546620751733828339400013530517237220430829970521766649556611193923300573407831685648070420652865574756835000816253184175315318794582597768344662425327503858215678971546653008436698784848564461801418383164466454105144876361695631570985801631779185822769724130425542031078584283487784990345226614796125977941326725744030396112907014391439516418569588855459680283138745282225848951018640686982057726182247822761910181651179838752629059216398636830111782694466377759194073583049826784997777831067813511260147592663563836945713421521954616897590603970706509011221442610309290963994987136783820296888637416343839933931644710045413522560047027087517481928505022886462614917692048300856812007828026532124422995801717761735506330367041332900497313388358976977286047594449303211478298210118174163942546980496646542595457697968149456962769719631458614438760856963938489187323155335884933856368366276682220337668202850912103506472262715894297701647753978264178345453485859365833823273314540981152497666537804984251516824259758344335577138372059975109727247559981134100423964286769115235260814137632858657918292522283451957003500174041228550953966795453937410434929771397354744950273403369560043568165295411425713626108667956068557267267607355638096457098064330207589555105781536709274994087020938625950612303465111869136393532436465822722729726439496949499891167240227869620598163931859751889849645848471962605174866926726110217388481524953183457977458154338522271595498814658737053488362320927312732706698532162994757170119854704596267702327903340687132750534615747784807979972231113437946180399264507264749147299818400834308049414048052449636637513789090394099423503770243185368236189603338667346010220562824951196228067957715355724449099309692026915731042676779293974377160539630271679711587493710803870891356961105538233145019134646969822343599469150509758212380923195838559902520498777340941915732054628773000957529681307648737598356917969569465438841142340497279153470760646629304688483875328119096838633190305776695013431355136813487261068296277763135021378074902083998699155441484056817554387812110016983004419091970395954820069178855804529932047090493893332726465846379001516659658198201056045109621024421698735216035584779979725435706983913272179011091726982920087166557058572287729558723183437501335793214030255619096905199297958168689359753521033930051096524674415139684493999197503961055687250445220818752093931967851939413295077598326799524576286384932474847067629176493822384791809623767724133661426660089229577658511938471901977443204239871076212781586915313152303280476483344149250000137085461659780397089915410393161076903163799139371268092983871872003570546289308688709913018556678450133003421865293938512392668338967392023851986136259331999016129264979800661845776138339358075708605935774882704512431041028511629268625459111391465560543110783175167297970790032812758323836306471264272681588566910316786893778913826610768969759424662970095036824911431342001400373531252948633885786259341802974280938137306104282189435160986967401737008756009202156570461941968674716324568661885737712968655694976449078512443271613660088459984603417955694313410114624643618785346873230000071806814204679506379543394072780581432521476139123195509268203041778116879068098087124754975798924999022099087588091970504113866839354294729796606333572201092642785791773837104520967848703724261254849605530642259653603778900696818531466327780964939806437913556756523504009127724817957039622471084215001825990247214160227364668363048584130801880778804385279405416006740546636737274684039879811298548690550546414859685084615641194181027212890290250265661732375767860329135745510022442163572152811608826063156382489631855822233600728877593761250078476562494619692285060880538773629432656111065304000472973543526515676467728498071820505842295311823945973997956036397363010414052810974652270265517491240614473579434241476844529600057026406370609354185183550588819391395260081302991376612988724360490235803594104777858313576982644502877919117877074131683387589645655747115345462796267484075848858694967142317705703343461555823966495593354099990868451329226748573969944311638801270658962890056511674807694654706257068823103598486973260989616713255953784744079071805673115566752754969997942054420272332577392625808124901970718146646553301841083896745188493774857005278468134427850345505303033737315450738540981601207175961702174014087294214509365340166174669981301015612275192769428619846290312375634219700920583837358742307655152754116946025855944713488370706353086975021277082232373523404690431742737866719457608013859502760995126178317657328052025236474052334379471432455542547530427997700951612195023984769077988914535255230659508251733456420781428484242031014660307992959381590976667298757452767420440964885769953503530072061769746707714801778140568782810340900922323136921721467667759835608818208991583524270633236731906262377306714686720541315548397407044058661518740871232133274121709208168759504955619475353366725664778751253284824666723143654591497861938367701056236093590702333596761557335566446794827013590076329067774219867298125811772600592070816297851419305193991905566134831716683958032563435041708835657512169970579520350466738720106102722033556281783497992572384693881943442096581892940134521841367778501102156930367526905186970226680666003813068578297157207476774514804132244797681999204544303878717776127368969066305744449834167726667779531624614173184530525872788150489004592387053717997771564881395898349517140865172431098282919949516408159091705987284350853716743764532964549332277983816527608730517076654763864500957418228830857777020753458387089445111783588154141885082179505186983919001177183658888887938737288582335362994038364626447541488286173762828014864187196229110741303201534853797740844507977933024070941323828263546850277265447908941967839374595726628615519001182060169102487456589068882516850767285981264197656877874366971957321437370889277554254921040795192292291390278249845136416042800551100042571378760743253707721648272158069969936948465862386535842188871244573304796935388057384461682102219380073113110171471002243803012908423101804792501439319846053208918012939295053373134389916684724402928091701971789886567125567792078947024844555875858705184604803789600768447580535634347280473562773138309871745833539395854051854902423172724506437564626430079890082206524626328677055870790112957510564664273455705400171096151194898472907098279653599626428080061590645607900321823791666859350093475158652549861742264279413868531771060316033849421915413001318855700838793901098767378205331086901975542077750556604274293984849977974608205967645801800339729756698913441659779675150718764215367940639074646994566041556210671753261474279243974280966248318347908190756096758398614269457596993365580542584959523187204891791248753887422751062336029246053201505452835100832881318410507474731151373618617719593931033442279725461194995004282598468195742950540300883405692880787276122787011468169825394553876450026649861503234971504392309852865811260904931244827314174164025932277104769720529648850320937236287604732033283539132286074951235032693846095448565865013458941632265522233204556000973448244198709827673935950034171193421734705238371853218379307050586894652216840363921418355965627166277844708247229064793486260617093569241771073039445896187629260405584598727913581609152719870991460884843404697190096108309735516282842130119490082792839878898815047244328672608326568218210980740523097639890427302797723081738345246488170485682774977437169051472082087774970146108728260893999724033464587512412543197134255132628306924452625216051646305241185580197172900930984108085447761747031633204354929240384848915948971370914614137683412119803546306899736526066068520409793340274969257343751194727111401624069793056849784956930423326138638869284450293779422329298464394614505203061696848143836157715964375452273428695159305467082374549554374324029482167660432124258840861060193643654527680269506258593684997658954284044858414032617823936274624633970497173122713923435005418680818672822041758888013604495463252921972726547410217368047650184564177034974751302746094982048276437635861209442507208925279926269599979964887201081561691940117326890910508134164201340449278548261077570155168867096819548661630480110897856443549310077072553535267064496997886014240955081333549785423677855257748880033159157705328879228366893861015255538130904910660922053009902385196772743406441993414222672114995601300929863113274176223113714251544278015730212669878019366143758189760943055196087835756499866034848333396880737101396963615308936797221398340359980541176996723626541350681823792352665577133319760657550489270594304472272980388837188823658158616072543619572617815182254181763130531225014025818054299758835328008114658997344140951612524940743665709446319589903351438757411217669509906354883488483358821404918716788993984953357487528884433302813067527474568372517720875893042002524384006443396217200751292199927755785310110062824699029533999118907166575735606044326947995885438158848545686522854414132972806407991331253440077805192253186935844044320896895304961364637691022817038521661477084982068028644015699210774090522383966660517484250436410590816499957886615456340117467798765264000249674729666291476392315031377917211828234209251371785715917881316943162195295980303156140895019898773030853611339773797627807798824456844434698663301278243765734152449635970122517071344875103905568672962593107054523555504161452454836674076125051899546038102514126473336299160865891549045942269082348166153644341272790739726233863639524347462524295102126659120458159109953009028579189705385649766711423955899451072049318651538425582273678777072584544022428705574107386630401160289603498921006161359472969751424818025899011837369634522865990834812804275103465862101520491058591178003422939998125198092837113468223498035144614051947921998575811440100776743367161962320798957683872871394217846437005667461872265630103914311071133725916330678017017456615303227897919633077730855319231045062047377763503641704843955359225583010238584304004487801760812783970697791221317164192362477037478246025738588937045556264588258196743608654120935740374314572822300775684384743555010558033098727716973749397487832135800757902568246788494428404941059063139473842218292891051705002488103259313154287374326445946296004736656095977812902664645164953594511321577873466540197198097284205220468890533669147760208926198983592075213533902409771976483574660847551525200448184913507570690470708242668736697508823002946773870771106626982908164913519300235961555731370221264631699924940926554460253159039636230929115370865702723595327716823302525112206804939937643059237145762510494157743590242015935777620559618751375830452125413204913254045607924917997008676025607316447335448579970373604272335579553847419811591576836495292802420917844706795481467444976523099352195020025341432945927694495338005213827780256415170408675477391087807338459357566887838737990328779967484824016719072060194920798179578487279362978283509386810460151103464483877958292843560883134874288408250200235110646496441947054099105369883645636054937402437950975339741728919845633498994619792144556159925054810015573434109732540074340747175171333882734703382623849997176701164469619934074885797014109714037483182146633393580829311686866053391873210280745153190625455136066137856750373016612813563950823171126416934964096818177718462540894862208454824484428931278265533646661131385988582155367560733964699371163596614742343677531424846169957766481315977266471328286210244060925023773245040926703680485097226042802668376821325426889473116036579638677456339170941493880580367573169106424795218444686226009643586422828940125156961703486610131208177501883572327796301806569827541923069682563070627907806981929071733564404562451203853531827488676554690145620750542235467569277588569146925534577606205549294964083179888888349128324861909944158023560439703903041204708161341414652853932681339663011010090407220722526848926219833782787439903800691907187152934229521356574440153448516759535534477241611513311935141441583987037740931744445327965077055663912397879735406397668557124405431521717888837571733195006404452730100775963805440397367242476037388779919010366376891698383854512352289619228094064056809070381141142497348021851521949772140444522021379570820214271590759289080094012559830072638719586679083565974010084340041130076913672974815576731652001246050113122151765994950580195247733255777149642756446947510670124775952682860156277040894935963926911241265666750372558193595422159464218791390703705854186258399693276319279849889734911391326995578291627704510464405653601684673714162621315397013361145747772991079169083583188106763681253363673088621620217762316488003911814827998539025188413873006228988988024424547294756173197349269287651497218297927545045953530059500613219436361632710857475385974818941585562589767573872159320142604916169500174017865594542271508280245919080670830023992326750324729575990757257803586011094134760050555178637548281700363950905714539268881791226456468281866444228951726706484417494546341367718143224880970502561828558072863533843474268885913882180544894442940625645010277727247975348580469860515077501391779201396936306661751633439189314339775870753241748411797177491453430821047173261180554610837378331789608264369292846089571780612169891740365184421342152408361590001103199288182957830035437077959591117808683984819453562234111214721019825002640949583134102538662216161745076155411919711253491536271423431760008202750170198446321442996434531958297276246025116568547513421450240221319095512566069777970322694624864269480102371530499750630688448313723657296944185441262592205078321947511289227113872355489212858406524452816152653795775931663198674971898015086807794074270083926142503802254683376615534732969596524818347285109674112160123197090476708769680635261885417719042910909216454469267763051230501810508912346587182437227199575834624803670369834158670873645804980024241094987416520953762705699884069133451496330027799541102062621917683690016705880686122551952339000575695468950194991997862473202423774279627603537627682500753663639436535748766841166293374115674556943475659458527861861785235212900687514029223790891774924235710287273554202352200895080806433886534160653884840038544094258871397520666741588362328799804154792939260240227681107025411784556967073172848938991324560974790214329837611047495532842618289752389620873606730118348643302597634408509754533078882134271370757840288498875418720821932675511390198584283591599533812335224271006185642414755829027820923042502589880378095273643377963584577559197997405387238431049382545413722968060249026161550258915254475876976714194085670244922234439641376162246505251710149270004967724623074669086790329641232194878075927914277463983880454843202672881968000643665751282420049772977484549090361434335884453430015896901909392171290669239468632925905937148662588919500233663930339589179779207478684704232620428127716055019283637146139310652406073848210087404881178729614971565603106916474996619817973158073770469034602468597988821835778386279250316714475472548349680197074589335145187865793988642202014541775537942885382131270413426001490929055953744110610684131518269924090513091835358700482639313369755724201255385913107024293977759814599534243449724462832031276374400575313020875478413577004376732733991086628769642555174477744286734607639118316448356549662439808079678889499830531114456347333662906807051780750792681322292119283300849201727367658420123396781875293232641100764267309040028167241185611878302950109758716417090715951002110452851424677273945263220392748931619769399885353468064790948826590313582486867685254051489849711253370060564802563016400692915899468656277761663621176423786010931334842858997415699056128577970128477944143040341078552053701875330710270926817231056827807870615731167029689470429969545088177830395193673840727374115168443566313439533495775340665701992663616818683656963117401033728311877628825662384044837981128901375579508381382014179883870464776454365445018963389792535764328091268729240482478260215079816180989176910582465281045936639793100492379904965883861238526809965641988793193177033773891634297590955892583232514329147274887247778967899427733228972334991207439199639257263603769556238016613067930303039166330389492452211363890685763519106193366435410495388965842078889625366627052134857246839662630255838953187846568765360650474465815328471148792312310418719161888061503135889606554656414599395244563535856110331372540182170789260810842764496730380613215147584046166290874617838883064274055805527806380297011299044254185817146778502612737797230673867130247853551348398265866256373760754286971953438583916534665297902433744557629049444399824568710072469309653486810990439387683758585151736922294452321159761985651926328418212341557208468850121977468498368199487825344188009680705730064909312202728430924779321417750486291585931378179689301200903792929845528846484444339211445541667225257186678364672112406400518065841600289821171480480978561868895249836453746558540920182088317461563155223800072592190400417151784236063082171230316993936760405248702488199943920594029096156548098442490199257644657595501442548750396196337032741612995118508932219667972251798023202635895002999001885618905861290945690802287404231489486331439172032668046374357437217059839540283740672106729782719013985850189927422198377642062239586340186437711529940666604240938162740620411492087073419406637444505020274762884317287216848624351911927627636810791874755085100038928088945639270470303313154706439482098596102708653669717865365796389979291296134874430556255552483179064917221424688925430513184880358054090097407508463187817605986437503472978404206838805656954675062478378014956123800359593747511863630822662799073133721902310216161753603983003134413629847878568369286308218892153135988354716131079774999330211815882975869128353458508650349679381247366025789215031119847353619990585816636813914941436685853277702595145689927996936969863749912201975885577304906560261495340434950665099992363146545370398291603993396633281936259855878519993039679560047998547159383752444295508073398079846092053893502882835567143311375429903677186187719827200975656226672443807347742115226057818037801058002722771234442470823287857333131551374190817365908242896123734107476468829680061161174278884827590484559921947439080379751864325180523502970827914168770902750178860076892048720359230723715213718950179602308585349207521101669407907058863342798153363705467923831343983775172507947355003466717159067665901302989594720066053709754475533925795604321064879566759567120401122941780854303079302814169799803677379839968526263326966415841849171908646104355778997909766219026244899100899395420199888728110921347579978039012439625622960915633205653361101996185772978139866183448232856043335729632337690260917261815174296010504806542907145521771183571099351854467445216125737466660256636301933370529649230671857401008612664097813816790784694842016683363504165471081416091827805098399364993308615966420645173332978950132109188860960623394812490442768447042075758271271447210698572644786254527068183340208595376060733522442248552929040883213660946543559674603928156005194283868917428103464553624456832926606408160687114683527276984553202670261723108449880310985926146651456419032228449720049709352225778026076117404940336341460727524991629659043083967051518265196019990378494138427268697167904815485787194119080175893285023239657708809720261646751048107009435281781461897935853989886054878631966766349298925739972368067612234808576225866958011984928028869362765460815645097175917896946551953955884251483287114552137829568084053477806420066559018698063983567251495324779886673608258077883056302968784528850492903994279119336953323505069179218781161227101257800883780339901778140233806345782026294317320218570063610431979440606175432669025637580393203794579946593989908216744392214691520781260687035679000194869582133231269974439002235355973784623996438990348245510164989237233110218547271241088931995669005850638375956882356453224907412140268020538086889913118298265806602271740539057378979966163907711841449637945951955102422318364840166036970932626064918790272766771961950378722907309030157949856498934639579179588293988183919623920697737422595010101725437314095686843248709964806614682181924322870054542678995664931351288939719795330626122272388022797418220509790995127196069702190164700694534106811958832585833448421986685392823595478484030490464940340301719900736117663037866271257648219582705477514970091238586491757611195142124922851402572211023189173120059309117683494260470309460763092697179255336460339345825061748922389249362662374165084872779476942599410325949074529623991682465517513875802243507792359151357475234414402131259705872316558622120944934713014275495225860121997416648713013157706898151200630338616520936598338057600524249448535667841202542082003632477190709886149249630023175003584222651152428624488558100200619335461636026666714554877331108040700399875363096435766977326285111141035902507794160828182699407480505938896011379466737381848823805866981556238028353547130041660129318442505215080914739412124612276219112585141073438007798539849176634832850364294373065211626820036142061722762780436365691110332718821868020465159802246738903551014850949873197555052295542662169676735312290512966122236327607737148787221904127828776342476456326105686489241387401954110813572710313025019853797762142532928148911469452220749234111299670378857415096590623611799351482885736346470253308973401330722331561693770389522938538577085547242210246620895152113417650217468436529654050880142693539043548184332285563048126715572755822622535793430422488540991732202067872106651229764065263079477065227227400608039313193339278183484802158272838976430722737870247421365555413174577039596672874321145822134572525226825770467959924899505143476644521371161194590321114692270725235135582123833223373316763472582201476311506909817038665904420249734431544701827704481141125982940373377034574296240453674611076167526401358870607763725449727106778823865752602326089305497181836915499390202111953677629071425059378507240423550603620033061549518560748414300723310519924686665677637751280592952676481839595635532575652282468171830355068688563516571025858884123992639540705279520135177899377370935146386060227518514191918137883334358680684902958302016848843793658480958698320347854823062277566410555575599999417443317502090127541980343509168328914054184897981768566349767087774409113169961399637364488465135454906338940413171431512988297153127139107670410081623625420735038447964963702011686109587033712004990166340185749887468807935892505903957399800963087486089567376184119108766804289457851639212028248153939509184902615123915064628480211191793619143517260163340408332126188308236753435422563002018408336258549704689618255851903353834069840557456126314805036532512245527307002695330723745058293296933248068054852009689916070637110268909376153822567584084671651116760322772890284486580337027634477382455794962170570782414448477378802061411464680136455690822404029624396463854727971433975914032527940876194119738440596930908974095483545035531076446025732701168036599983190804569645942484580259521096680889309455267890229297073972626856629623865507965506353264522974937952197398315678917108898356977672976096271472255652695006787592277645463042418660168326188487693168743305644295872431518207852640844435416261154282627119774799427730435877045080042128999321674769551732353738184846782643081049910477157846893874987970228157055343295267404988264453961354977970523512637467424533756570312324654799332341642143081357796337111417450608065476675593579732193915949327589812652066162327310748972279513552659193060640561062937601794185761261796722891132542374273797643690103190278642667815707133973813711895895348176764762814977232019183611420331424025173349172000461847759107373437040846552814632362991400256095521512700432693693083968098772989217256294055566905480496567965610811260281802904096593542430656087676019409572546710315169460343638976178983735843933964935495048487148383665488831957360316270282654501404907561252827860186747841739732146861939472256909867340519424446037523880732509348319690772622890042082084436679757548514954095816468846721688758967299934668248006512619239972671170454816329989852278934379911273668082769427224885029931878368860833460622271419426309735537603114375168936842108783297867824161475253869395519808515155405521548260126452590088074481799977952820427586812441887407115577981265311106015524511041286449208376419441372508051335880568610098900319500123925794006525146450485902039558295241198252860584522913541511601280782031151677699105034845277233786138744060815363857044765538491400791705466560819529466149788266424744772973600316075347313444805605776712693138631442133955904815561018031182105149066344264031150703136877714422890561182479097262014654754566643430533601620249171767669583883566644299001682218423036896102710174450416647910248306362331066267538940698408008924319464562204680290687773424603101288171947677444112849119756571108571635917027036649352676789796998296271176878286217858089463234727825452111665144417414121560544409092766643076426810718542725547060864492576063506663951940316071605972098889538391435630787360336333535634283059395535961145877973002343252186038118139452736492495647483055573833555823603130350786072716280177041004132774543319657442076168030157493158661912382399834642297934089349908289940450381638488095986498273912063539230113886760395179430751657036003200994704182755424745323717712992316908156592964704391905314135294090971853489540069255955312040936331692582674442360092183019569703316880076799302252231310610092832560226067752772658571907912532249017537780412762348856727197087817559960943431776471692473940602757696490296250225872729887427640400120225527052847835259714052017130615217805898112013798319222621784063205915636796547792726106493135762548058933191474708553443469694120641344436829132836785332857711062649679941971423777466702717856979136779346357395822549526854451705060950371880899311131329282098286056996648944707858988681314612818986852536760682937377587314133391317418108889738101590445685000850957909702834637669907031379429332497672290327409968018350594712754178346754685819585893225849392675510537770980561680696509557338359323280768404499688591435796894426824086955775433615997627865849484670150206672359273097386798527500023862007881508591953282000473308711367054480998910148253291007045260572796768962666344699346771638566876865242223452737731185442927590476794738878766072045047015694755482288555386507720708617733561629574868074762920990036904412548204838600009755352740375600721465540385370754231593368391160786427012045742007907340412409170293467382821245286901311439994253308030269075006751914314323834939551445496928828250150583446712884306381124219213230277112403735027960358976211733819634072444978895115319309558532891714738928253145842905946198061513482133590702281584428532728151174163588789025218201505394913421566424083999708746493620649756623386428874981378253633540365875378867940454003238313192384470997982570557533557408874726916720491458988805909563023890593522738914767303506038615207319619244286790082882666999065525253649501533408982436294529096852452262695750457080461684408839508804484489294905991799442236386573029844275928744763111025547104028597552114339409332674052086145301156321663579034408345865374520598122858720591586718532555349471804486600180614163534636088497171022511130580154310938018960558347488686972422050842640644744222500004664577299063553442253092319525553311973888349327624783369125901914594013060756276886006418762154381045879972084936080290181905330991205750546118331135104287080398613825030818411605707968883635758002543707703451610345004124677976377655639737561765576009176347317252976269817105272264898279390326014469663097021000401000168231788665665782472490860529549525134859846147740997702808159526550859942321324779025816086625517380199124688325817835285159242269760989923402334743930654217628037581902178713134193457049015906089231571161396426380216270673862338714605552623282704468851123014798425891697673405704422817528504055893842224332538839896383997712150284966923446675052865081252955211148177527730582047630519991467562698288171398697842211280494655324461322906347031951359577453139582170377935773901634855782596187656724582391584983627191917829276305436993019515276063451640093201047109204678818239173569269579706437330287414861830903393107628242256841058934038648053560379418003851219360321625337528028555554038039068165109024512059337310721398370069524054941314834012693878705761423680828520268673620109426119770482784347791424480747716230254693112663562636584672459613456072241009662535160042567982603967608061342819942328339967474764740044874587061371968099016060217428312532105513537773742637122979554024980407908877701440882102206655145769710815425036417646725700743237059204999338662957124935476804097959035442521372414805604888592014200399017351936351382824984410752110881002866221166028165044078546177932155852656868409147035609086866949139594922460953336097812164867376381815282919757524989398512044298502384604591952515318719306868279879867783650029225113724449441990250310647505969421247773502753540635298720459162008196716699021624966215943078801245052104115523469127517229555480443643706549811021818648068090645905769632618197123959073563833475739560544901267742643752625854142271340700379050228605354257294002174893275199150173963130812100306852032708080504561431222130818613723936045850565411814772810080215628429164755694060975323819440019178735440621255381121879870325417633642387622605050145319253332366337325873987512094518061098546301195566462125393153483223230942201248904716029586816133408357006997583446069296394099236495216152578968067958165065389012739898210236298341529854559981823515229057195608244707809742779116992594822116850061982236143359864462601989703392275428836355694368123049371248295667524023324395263829125748389811597480882795891426026237270210084197074829671616295873157578181528916853242195235070297090955113234056032727025554815215206394104132715738447068148753629030088560491803136901761394339942409481542815125849964141286646819956047986171949849515128523721879931058583286159669724753324641582078341972599402922338624772980286677382645749024755733761924067714259181974649951698872342210161391637286759075273441996979845609028176670267575510932264483362761236122601485794537766599262472994761009183701497503499244041429114759322339434995732004880857758379262685003175903091742634820370122494550880135706364608278929341248261089848368174990313733876947841844994477400679152179097506173606843972640729586756435000793441652845591526293114695874483142171208911859882629013643022905743472184999204308424195870724447147674020899061026084515329267207948590295408038921741650258762228580214900513067462623299243780451463765466977120903138654978217404874558299837101264541336216567603243415847518948400535975560397119343156679538275188704125384154896906913521785430935510104390718084131806246967174245842968449026070755498758164209244814596614602522304706594086096902944467821162516670690547312240711127802846818138684046178199879893591612145652783212457863278428199054392582251791232835980943267321436040103551561579303973757351259607396338423983440756390953965788119376302299971832606969876953057213731456249313462445980165172375514677698213543549666631883786463155211417253128219578353963464580073992853932707615541048113476743003794406516367142139625612355684614122353048915286531113351165401192740321493542166881857005679380744532494681341822257154190844864739427870353866023197558942118267432970192252188962512952151005898301428953651579191761948656885152050855691607484028919034484086113225023686599569124173591157943507445343436334014656136873728012143241394452370476583188668673494087842961032724689837636292725093780782090241277935819987045218305281653013235209432451109660505891685796052813752980108302646744893798953230610189800537393922052978764841273577584753590103986338415806961124963128335644807156744802738724031433991750099936431041247292041915326785345936447185491847096992904258060208942163823413151504361863107741650322792716501379240712807354569890530511960451789072735722599116602633464093231957543879297326937992888137044884445404170974010607016589915730781799623843294954197984135786330413566524890005541556531237759714162469256633149439579851050043850016727585630628530311492623366039204771795701067451906590959338886841035235382460167127272230324446494673573528434807938321937381163320905131563327282368043250816675933875306333794618042478328995155438118464829705399490045672150113270764031727457287783391884249610532174687746964823230110110157679559508981283604890840422621584469367426961944683897199134793407412511340869562113414524875228163966201324784709996118581954263287708209778641734215300341282313737031109203815352907752693122549322301729417267344115984443264400670437605527222385356151199850012767593994063669761381454352431823979325648527943925690323444276906835736657705963839287381272237049016763635154450052647264085177512512062305289327055624121130551909721866075402086133075901197323055766393669915464702135534752399316220259145282591687119526550767186242699395008686245628113454471969520676221225034564778023120261117254241118826680863489029059705388223031639559537050620099298089962415115102638182245719061276193749418627160526535926691271229643428128769013720810568189915955496271000905055465329095238919336020290363443910948084383044959770388614373408857176178704024506766305180421216371395086518454843574378528865712819101541597994467269842324560501093546621827426411979285884929168931669042948662486358814763165944210659026158110548175481632134146198611455537278438084769921542342027092096848020733845984652659955661262744029466321484643682578748235392078853324361448195879939808699771257826281496959621940383541819146948750135264421532419414858605384438473768174433554134566946802661928001262770288256361225280245324728713714596198845788466803466893572351917982432267747147946139771269267959487467111599786981328478736533452409821223098971917670142881026487796035355561827632995339338140776489652662269413626571152286781111356691024689330859762839130858932881401249558239425881867643485997513205579572426519594001627776188876727546117555749679226386696356369935213980464947066924345432047169159361989898007983374795874516162129670237864754984200261121321696414136725869737227441669011676458411206887867836187303807758142423581597528167774505116132049009579800864639720786487518254450880242575288578084647984928630941616139172961784628647193117049625582899662410568737682093502413642022551438287986635170117373766071737132065569608343559769993189724569222865082145627009135456339140817992149987917650117816134414473726822514446858703657379910623886183571491218670619481376032794253149367603202463590282437041680064702453459205371127165563980290820855643890806775738033325235100548534978318894570921176364540323847421973737517733179722132375127916547749491800721918553358801392133029348554985894193368718058576401082458617662277765460073706016873746744978928256845951608833939121597374765806459026795015686416805173334168820447118285450393133230033331677199541658783531963437649156037345062781259398252109420874181232840224733229143371531939129404207197884484224547867603541083387344272375110298002022250901588663068295877107590667363588468084972056833504030209720747750348388572597503239914978421466918240497568938422732008266572340656536014240204936793947474216645846080677815852157737373604041540059063783586517501310342693363889830206909574908898383585828812447615109702478188699373723721187578784773989943851358228572189789159776902560500391491671767280903775442756131980123723029291859429228908503500530249392940788714644560114332760386462769839726795482672433724250016788772379506523815031632976663390163508580877535292059266966481703931815913324990424863314497639139938103968899465758420604140688293884092061233621967473498736005842584904352891063156058650250018014239144563713014089680606818682586357626232878637318772541578217872700127080660187506091276610419634470724502090246555527251952816799291754787665620387070338426537605027606586862055265692004663414973499531705949146308416114316445599217710282995015752448603081985178541440565924981834178537168438204537134560961376341083871192408424710791170305288716350111657528263198587764967171980097985960271290887437816112149227776353903376330437185311873802613986224001365146995694485119709455907050344830939585537704616104707675709801413138243131254617759066397978559380474419868274385270647010388735946263640416495740641841592628787258536175909971714455413688622033956351453094036238833269310796249486221261200556935001054805086427537743691669831483699165287129592833076659417526830107727309028733586894206398700562437186241574907616721622574617729530421472411562345440148953589141030197407902385369075265965274989647593029586140117807020718104735156055111198082911471894542183599672281295003787298340001207853008782211111244216890970899835012356347113314367882564540755354514657678953136355762959170250511080689858530439807896054647250593187276802749066195888435474160382191227718000532766811736485212928362317164566306390093081679889539158452346117613631476058927565536078957196950879039344209204088420700656924494351288168708212916744704324352153191401989256386610228593086142061347743076134929643435142492040534174743365967826464615768180951506441157113700941984107880494154965904379788847405147681762521269718264444081907500590164523891175465277124113780333155925058478646250687755657334712395697046490922445191723072176409068419801963528372495825656407045805681550090860031216168671025024442545106229377363293162800058073105487562862565276438246520223528167029832771042215878119411070651740745397646877389680167339480852105890845808087808455611616391874133974620090235430097513207597975601417953907185741276749486524592270025232616622789623225917248148536108833180375154356930564832579231847563064762320045108395227914887305143613971389957705546939675417668231487851537397527682405810738050566499596851578538296026847269705660491354326871030482081123375511055192193825614480920725195809142589933216751031373710516132164553450982527888078195070695415592490602456870143788927567480786175051852055881436775126365685145594589095669653524197501136717824989493764800404119644527269795537081939970549675914171859490654367100568101487586183565688570600632075459206543152258399495510513130717253718754658921602497837385691305026958486926333966759459267596555317682671110965900630879187265043967319939497997971197479319698368751093110650047649714727742185505565949806160587518066247796211187664369372220582985970431167507660566327139970066085868843859815618141728529370516335466840026033707053231368843624924712035560633393852243906584234056976281164457073783991661242138762798437393684517357883250843319688149188927374645738708128392196543179719034875253197913186249342843231359299915168676686445356092437037770452900232983240621621240630937004612818512834828714303253770135013542634007219795440831383973713037250750268988694066091820682664467980292356800068018226957967467612792137178490690079466055324279107553006362950073977267096908084138037009385271360642780849903131422755916794919209951213270783676050371909178022400180637151773003593919321205480216781666668965321022315519567949412054078572866801188959911900387513240092082910944124291686423778908106396628866274918988330697962862840596245667579850227884168925290319718674797794517735686938214735913899492828067167457783862410456610938758255673846766947438531609185264542241386106804268936464006681850606119710511189815835204938058167426357530416881816089527305533630275428307295062636590835221712419490673369567823781944042477074401071801481267241976455913565696258080122512029286435101532564509937388827594066361133440576105270742081205500034895759701302070684516944312078341371910903775102246920515474807483254127735774921555229209949430899200458701888418730175694672751875360592837383463389514510231586827947610821015264946723287062810001918959942576664177994164128189681614612456900352095576477359147246320286650073713398899847400217793276533673777188072060002746022122315048634675149494637548072993627483809179007475108448031367322299673872636095626839794374740461409508504390616240549193391431671700719372949120104717499880278618555733929650401724205853460874640606324261737014366857244304731809753421875385578127890900784380948550452962763903614548431627498461593532072925184942466294730992825751374474884715431206004114991875464963573855173978646702349045290390928771389632258179940222806013362127767274860299895227218237468522165685919199585403004058515522817647447836035426919394994678115160996461303024087000251806098607323226633424437881881656169535072620689300352332605983424716891374872880103775856222381779454550355753478947652030765132945197485305114153100356641481093339734302664600701577155430104583682024083645303392761413165145392211026141750671111202790314165205273494127420052821742151949038967264729000640695072341420190023088714132907341384188537911734882030437782384582835202338458936213440029698819062471692064285855791634368332603922207282655566647540572560548975020117677289084894799049163410603442416548705174063054560134691094095805424625396877281681223007049502565835385778633194937471906579828080185272347431629890563144436403494172078550992646821898842134683759496034089242626654185650484624055509225693680937240715335092875182384767485159131026299994055575090653317982978882078518627696464834065518642827732534121854150634729810286345104890425450060918975784378307030689792893878643255177844765721202604731521995598069788961251759335138617252552837794765468571585237493990045223007903061936703181740248383230537537406529545091151006888827536262652294551522777741945240072806803413023594439080247769099002680875473427797336117768405624754508674789521566396639725471147744645399312054035427134202049711964713787171337016156899885397825217714689126637387720541435499125140537531031312828587940111506610293920714792892911688752021670080759180571577863314075063091625343265825004529868514814222882832462316944103040599161818889659177852194689796387946057219328464220282657971988758026232133969960185802934886843419963890223328964760881986780766425629132794156351557988538461157881074869391820460068480918846809570412162154705108885377339866376421260507073553439721871529058832948795459219026232473639849673121609344575743872404250843669445812520125177927533718558219363489146504495436298188187551016595644311398507494629777405024747562147014754075846434076884891823247933567331367075663502403153478272789118083541687080488783495059572895720592212964696734101643216575607900550102342966838337257577301911115491720993665317915653088717793823383882337504483948837348393579781148522809365529425358732079003219859834571776063408407433566148500689708011704680803843744369359200786143245258667326134276762539070013402900903302891019819074162798904252736197178870887267030945176812697977934754111447138255967076314179658066470222054837046033879269407749927446485594563306470439382968027046173007809715078635853629361861687978035213304180369407237097530521482441915626553794031707755781937003057621360240615252304259758266889979300455909804943215844118649935828224198858142876676928769570317233442905280681923406376922899306848244791295049616418909537969672666831498113741080072909999785730389223241235886617105830772842503948683037476535697924803234590442707421871696803136792300284418873408590360484735680987245635936679806798192440809255684272485771899269925305517839152447997485585267834699565855047823945762892091685068002344122927631958612385705769253687891069904008152327149917374158751029534167360595552636968053051593831717221859816649243724602305426539219658635758876819007088605628327018775088262487883972155247190438139979061172276631132480556490380875559519485685898731559562379335337169240460524307880731377163976472435223152834450895772419669585114621795600952318911874139752204236008324360403186766091221689660031272677948114483645816238026315048862372177875235446583217337057364218395938640302933076595681235964218501964518321944377328425076407207227287342417956573523953582734266662676709994724353491401529059061464336543649972990398138738269941209673578764287482007908311296028534266446933082822547899355727480790776077366895237442262762828228824002862686725643740089675070046566202486766311533578799285435568373181504834756959911407186681128874968239695076849746860164095531289004009203196677802611562619253977662553601083695142613381290376136652482795960929975963112678822221135208365856747236014662830545389923776979797626002590447272478702262132762314864928874829684060438079294717230139434616048425772978086175079448737268073010068548506953293298552379938709590717977715845731578970257302211804580237745228045482731496427801418342672834442947571103999324108409666760213648503932250253778947854228648051931212809377699221288197397357024855194116440413309730166548385266814795516375509047398637088326588290452606388340269058341356400887434854729880811633251713533076928336678199605478901837322974464218156792037155079270397927386475082625257544138497903973993328565294567714116878313764270446974212550210280781935275418014907253358148683479546628468372062403593402080171936193287351548284619914339839285167161702864921645046899495009928175605222571515345733241107041364513209479157131869623958006890879280974763154769252510682449869220238889589195699912631981653307933128340395408992325013435430470705019031096968835469930997648926028114363235662350097197763245835371571460147714227742014773087915542532185870750123465482279942829835756591761081561974279783323658556706999500850384121158983649964121433753408374098894182925004875152867796989646410836809711715512368809328205191107148555828974628369435379376227104769515054051279706731484601169536901982287915370118014459566666952022819836890443586403655804917011842510011636293125733817416348254980988665708266249074366426800735198573908880623455910554441241889309542054788762908999345479970324399966128579065074957259446012390548622997148215617231998023814307406250181808912589044951273610648985667906636037810827181282562816022995468668514703884028432287162432608309656937878406517284394892698862791120444224207039107083196970391868676563076526767774596859669045858193148445954802231622259932934018243523962514030900722985401051603316950670264970614653056670525912792193753439370610489779176015292139382109538666032821640470043149439907042028480495488070327133254579969747909583757888056367106035627695390317253249141419809297251364556351681295926092682920460130736661327583947866304859998667331721026728104531801570729256569462821282689389295004673329016557184602811912504023129222586795111756194067468764524316004655674001075250818379418306367019207811405374898499816477360161859806396768677761191255514303277113460926956564190281005920230207611023164167101680445842751178089955623009935336075995939669866073456884457042331102637788152891740784452477005355860294588644399447212047494834710073618095920175161402359252466142771956231547326271725843936491254040768983175169719524939567633988501379229369719835579725091038366747155103209322492770654259661502171160297078888188166895620105494600265892940567293824289150544921704882283016466889061289897725207795128339080489037602035729951669556349595513881910631977583807702624376588696542205709226187911346077224355918516380220184442927834768621430478986887457282236490990071836889491323363631297663099140693797569883989994280420714278943441544461815455886350661740988988096095767577745729714794566430541000185226186005003108974326944437952287439547088437102259580552240281285257077127346189573253623405441710212638954881078738673278630744749560402700856835166239427239287391546151852211970798207333734007581537531903543485905388362889469751256384544854417465911690656010965139964016987791693132107321523577208378699894550591160411075438398356839931415188841071370821110062504469574512880197560224335356838586736217071749209878563243227846919098210780718476090380609719118515511504096414450889847656106542595336215632039902745531154186221021713727349888866462981834264675205270889907361494298289328024567451214610333256827254262216783184960820150459104064401980411056457306092328029023109998736844221941447856547824499035675439865197223916825781591113940508079361281262418264991083850960325084659459649254568601686199229190093441628594251410514460121743970322657255189966032425747121473549359547165706949113152176831569134508290113678776406508990460744367432392683941844278761177119602648931032023312077336300693973538821353839599875663926179118172715942483685665306443304900839095439692213074295618730635504062102408798987190272606065611487817276661604968316087817345831884235871598566886964823780917272871085002736003098773926074183966671501799690178882878008003379108911446686052784311550257185606717655144904592294959151789876646973824490811060115874830551713080755961904123230596569255332683337326837741805683982091854833748923551559872531812964882773152637437362382550154154964380997941293485684711773139206334901084491294810958375334322422894039034479946544457750537130662689996707891205856608659281082782331046139441527478545577433529327749034840144302999685206566990879652301818308549301753104077782411269632851669707750163549761944782179236066579232137370345222331179137468800799306876822751422423704849918844440730808511033498535294532958504633706134403788056861212517438652283505460923018088378569547124844863012703023911458341947895265286409382943964271589818169919678464789306127257595763772484087902216030839940739973933325803951553098969552051448910196680354735803010249718839323055683001832201586051182456247225871773426612523915036878231694244815480686852564848272909693104409645997289216471717327711836227382383777345343827320606837670742602984372202402056721576312067993731181166634569050938797813347221916699229482454414447340210718451300899313862365323399683409967575898186740995914942560119696902837477377562662844136185757865601439917069178755476795650440419976818609627333005645238545478300812619624068268604353932893581976827210171097153006115728076091442640395190519246410259841443394066466005229262497432804003599470394178690759653924415850808675370505661408095021039677664438031030939553201954808618291454463494652028840653630056659089039928700926647326685404902249676433858257537413847957613655942984082471731787673534890764967730573653180033284088347973725469806422807499528219977375163013573471137761066593293123574994827192921597318786388407340266314108694727173294842654895353606584372365932648984569325346647330119987287462967208735878833436000756986177085935498647428584324572665399693701010687592993521349107789364150835254013345655985439595986737290651612974483942254027612377355362590651871161898130674756837311125765502650375976849321631821018615243510532194700455461262845186063201111677844714217791385043179495323354721752047878446684559888941984504488044996472517078055200211997427180575871638894318275211071162727536234914168994921076984694699385346629202031532226062639470803398443079445623172568994967944985159073255016812860112735204785889382904873231103240087225611689431241026617128351687060351274999120307461460129659692140975950111101474430386563777320590961540314308534236259308365226370559766918441788993526453985819599088930046237822945113681411762279984186454516188348383601180369640837451829898009421693222287164949075085515375971664534879854861888442529948839442985795018353516267199101093440447871101864369455410952924879787132252706566475824416435338298258496683379468473552857353020262881317221214415751118354953502079545551248677210848229294542045380264911729484287987417442994237219436158187478416690400390567619380482402459174751055232430935521819974426514762779845985587942193720644747188836615496215459696815564758540919263844817802853249750707877884866692116524065159414759912511561696503345369223131512544427719267005878340066482513772832655797504142952164517816059289527715904380820809223482280900439249735240152665436673157896963479982422167544081923750422948247277305897233349461614920438310944470507923992266113065381396359623626401481133877801321721019869937649338584835331499293580311752446685615201517790912466335887065510599934393484424935870525541529808959885253903593609008032118137295789547898938497562565031451742949806648241887279128387251449959198406590692650536054978437074545208481800623860796237793557230723322241708793131811403755150638423490735983653298700824244032882964930763118944882052032094181405524517011065041935790425558325514462080085534724947859567908648301028953188140615120900125679860805888133166296123932579926823557172348982867051568284600337218210094362278535539555433043475124946798223635933421894514373779397199442305701292578586472599890108552508700917033383515121787321268268731600588348559662664512647721183770625209262867703348223914721348328625568811121261376380931051061625324875269907259354037913159711195144510505343419100107464738160673553635862734880437008296903772302798276765029697130303342887140702206248916493382239653250774338713985664235111535944186724136053665867619813641753951438746108010959778051327264054437864547959338126706326837410062864899016378922418534232661004613287721212122165305794045776413029536564507324278376979338506668532508212333236132657443005473906365926924796111764924832780946126225559410361321651619278376955341156226790059972509337695930884865494272970567365154122634170950742320226675661690058240793438838791317909324296125194642807695039182362846946680504192461441361685073769945174551037106118137986870306370474018337933668781414589357778770013742346944603627756552017880644750751660979432077387308292133034784564124881167980155613675318278613468866830352016458369799715049947177766832029136081303776845917679990075042669580686401894485351389574891351852717004707247751156064336325874270037977524560795981003154468571465940563252109112274060517770116999986483444287532445278752831460850492845479295548100569717424911686723150077108085100686128571894056808609381728157268984718404535347838123136367719257547373862422567945192396562302083662634820766233822559653235914530575015259374032732568943928057027926088950084659834878575604518110820325319710972289584848937323254816960775960285448390344150478218668185401118409602416501971011254835806824775460818255741362152884115349338799546474494196040491642677013650768586922996681359894221182834470646886713960128430642578658878099090423918910701761605219733552974367047103114847406410100182198826132062648810395883151912060022021939445648599498517931193759850237342972797864088603096382308966601920850529831761443563412261736828249063710683661580970888932797882454881269835859755891913594932694901726854099713061672313523165929358926005403497121447888474289981361838988871897231404765800674879016116302756632055382440081220810395557239594152293018668387194012588253094823097349112168344894841936796064428456490013954225817497096374598529055183726642285252394827763832044345048058137342961310767654172428878544362363003476141836526564704008295463014893552438207717906059292317203824512891484186372802702057637538860005591193773403277781357953484238123717171602519124590723347745641491669044838268980427016563478254732209157546928676140224008217036329706100061972804372160034690111528814080777421663290153144822424493898113148581801087640849936927480053420493331584937754917961651913232419612281941861230612239629849212897261164870122651332359690882453473911692704209441062032163170940580686068279167040061389160023262673160415489187359764809105568557520750340545636754849145802284031811014925131174908097548071412009721901861597659986428657890105082035146795439467818043745305376168689616480812855814212535872710235268419786112986535917314956074292830929932323599230035743985539504094499703874591765279042735541176813565318587248227977667720236144092171572341331041557959141707555645438612488374902458063015538021998865907963639435422497094060685930099289671388431194916837253873928083284318752199982802178174418322644033879874817056396309707037081553662350418522188746441744006843237043532750117439103897273532662310703789715491195681153276786560767150781738199385846463953555836496217437065621682791387492737538183899546386329824279162765142438652653572427430917833081930513063176658081530527550036861171910658025078439711696034938862299009809990911570045043247727946608146643786285825343243936172257295294411718221388468490762754789587914125874947706703039450870122229007922679294688036679093180919872963216040301924513256359813466032000948573631254984318575567861689772799175914239791500928967457628089073239790503214879516719276305830211237265586713912774479614774678716267449923207369050364865061431319156698334730269702094018423909534625213701015491025355145186468418091647144745548852097354204652942881712629470731250049470526391389207050713036232184887705212853146973555109192654710826233454664003481504897457370600652273087655814913072106381431487142312321672242133480808949907039188084290511465171899612371849084369086336467670235780421984188184527801508505540347052945300612110153664913571318720261435087227540559725883174658543065874567754857217318004428718127472857473290966267429553913406347277331705828848956347620021749846984487954521562572885280684696907096803722904115136646579874788958246913488581010461883127565555044072379109109085780858192359889159443527424961032169024244489194871965121334318186863075360064748346175106069122169383536694023811287477406950185380418356480118986397013884724635982459978101823686511711451170703267300625022821241509680544359662341277171360130071124100652598105220116864837112599219033244281100186891747672494943947651962748608170525567809076897996052950471147906030156093434365575073457795114486738604482675380852711038695386698092394346437293532727021640214772267013876687374225197273947322610982869967085731422232242579119813333695525389221440486813229194471822540583236577146799125705179669274023743041440267669992959569715985813176276120642426191735286425318141023200087092278269470229327134617214378385265196462430157061740636407830876340154726995459915327967369004886586355494180999105053986506361169114446116206334880200318670659662453506760348864103553968918080268719203030210821863464278597731464876469006011929524599830889283928465024782846220176521807581243382699420579408332820423287329541855851894967760957995988017320179377156045971984617560638389920411885581859072102753343545925133314674451380189459757656830762867737587126190323322135136433593605675241723050821717421434668764380338714161146501895659971384539115290800184528725605242753254621382663882516501365175698673882086189630365148489175030741870779512399794959881282665761480652882299649576897348963599448629466246251966594719971948010075236441670113459928614006533394571321311070713100382764349718059503821304419067332984455880793427906128101173870097716349762257697873812445822025649005923207066590703241938863637723030343583593484171538841705453013113671271857645387974515342461581145752446975287523647160911173835913422702679335506747114370715743356767532162824520267473605089070261030490291338707118026650810688005703775825604083360992041367427001050407402684340124118256496861632182113238481180002354279499322671657108451933100537086671410932317471130218808067126739415842202203710772027066376365915958150503974285849102880183791042444444735310496320828088785304283745645457115331906711700217894567467331868509541938833771125530429401104751248963222892584463017601746674456557806529966089514510129484468490329852338860185857035133056598403056155614814000602346127476204704064997116734663599211347958367744906241613828485857195744553068033505614927217593428132227243952848115320098404400351092621950802990876873594384167582967550692202707137054425146610190673785966981249638082686796391976917889959884597246990265947991087289709721065405334278753790412626190933093477636072872493696714917325362689465673066525072620757796546977847189021451354775080230704939275110798576993967952919290434227194385045468676879215247469922995975450783325687495760770449322680990233649527187256486506929526096907357426595417804818513918494563687481070034294980582708915575603147372859921357735909300048044017208985181214711272843083560169853736715740976698087220686168569174690384112998259885609666240822650389631782443276234637872529775054918617211043108555197775807443689593166066119710376847595017900827150785639504081052004701769623885081033900256044098223274330439672013752924211705969312795542016450194092931313923630960670574174305429903252680427601920225497001237159319956752654076937927907889528873571786521623314741222506265134098301919796088299610237133913593104923100196649689371159365880544596882212059419834896100133425893431657435460457826623123579482129131534998806400524436232546649861601062314867168872057265595796613565678355990404150679727286010410089642187120439468083004867018544219546478530910762975258332370062107511442884990212290064281778429985662485402197748523599993434712362285895549270610678933342790893502109954399359065201632391094774743795337342013575816776945670350634616522018626308874086524185860722999852244319072352243816838029595794715924596604022622189987296300250606906016890040409298246651842450691122814959747901329419723375317836423348203662142974706747774984848528946773638589546552369403630547847505120641540787695309263943881934964730647720903904951932112993891761345779113978381943479540608886173540937658219130715768835618457225811211732858865758494847308346313020178828789131811424690817996115901980704192798193866765967462947061426544029572618999425158861500425206540980836734771531478903214743155825789121955267435243914825359226036544155805272444697740185024424266078517340705474268443838541611244833882165192660817813037742625094498613980882464744199163609294881455279801854736362390572560229678146549223650003573587719797244354686203727744659041495531045459963658596458492366129865684429023566523366419849457054903901337355555638929968469774278367756204450517060685789896380053039686091533684155653957844839171716794986865587648808706110556951694586473431182476225577432317959744554208873001073359961315854348552281118188933004560139438210992642491164631432002938445273549253791086763676877924708174463637340186590159524468046543061894708730080054878212711693850801491171000841729651449575806578222172455332998873084134521595032322305667654839072210545762766512460798560212695951209487712921810663672202126692319653584879517188265463429785624090401887015160591100542325075071562554736815661477113443271345092626486234040220160916499012761956785905435192615557943754631367662376316182117147222849938648048706207455016415054053977077287081600781130062976716642192292097171186295281180213532604759333670955145805558827275029758691356512643164461663042341877928850746972568772838095838305389575990647370568827185155188235824695599337793583636060955873656098310095664247419083966658771919429648538835543613777840735265952693176353766387259077662442889488401510762617475256645198579236633379334018081894200683766825156628096477910169070008369516116951610005761214689323247473238475574268769761505707016958436568935532282704653610307055264486804031114985603063778893461527959677109662642862117949615723047197968287550578858056687431065341799032260702909510192112182078258964058506010047913307435210186145364758539421736332754807375413945872683261415480929242139853723627834718862109446359965641037390836686465315981109335604856148357358503773306729630597804193748293863164333000465861666221488419245039963378363859118630409216708175083307164928396696327863486767576919269588828015213037175429958526746248771127741278900581687807998631144111674235406653964993984852296100852811828129372664927908538269829575470764708993919511360169860254124298850108041777785392825729004734322939594634296319938662090869291477152587511272371383136675424053270159839888087688207662707301229886542152737146750019126267847888658926242721194061289021665090420655584046457754499431731893833193505676313328147180636734333485330631438978372444885724971407029782059761749760959699250372019161395275510980580493193768867580374551365608132050430757317954248623567373997411457467987387576712550471452548580672089095028012725178665240413826351976581766342000955314179923652397656532083073326860884135524168343208826885559893600344325911793053182674562446134119769798115468451845473307988043763803660873284498558969736394476108309550554079135801298742693849769919838801084574353698699851871514638095739578549876955516822184167454051144315612249781208377964009553483917522795817282839831383754650493868684558607450454395885446630267392699972968854416875516488791257376902466061246764012324750808134999229767759255246604720002693204776393778080686758717242655108942087437152838892615925718212691345716188605639903976201341912079746793401373581997782098889124298596121397749892926158448355048401680411093163349132768953718062444564518977226727397656690197120913611900982330263117601726762195914213689714504936498600308876568907313401574817055344511372003003132732479658351948617294418763913611104853941740475682863352604020284341345243409676930516235069877763332002333064982091682856673798061235695488788576175981706067424928211963638483906025457100413098613658207513393427173380640275458930193628639511618095620513493204743107336859585187819931966542126010211761449107304287627913694734614990669373404964079621310248964330752602963421111007724681265360997158683161372690107364466835144060630875687416353610716408181796632567907448620240962048079884873007933401188215929661970296588640105785603169001343537516554113712580555888355380221903536287610283731576242581807239884857557786644642930009923129612219611975729605528242258368412260267322209528773942445996053266635784421041724877121101721981329948456204382066554192243032153861197874813500360379819072988020455559646449593975393536340971724597893490958476146511429266021352495662370814356008162351126665726136112567719601837844551651801600047566052651254765494790922816393708385124929002725385472567862249396573076882576914754173698938968802456948658381798201020885022506194212911078259762601678712131773454899706208380415117531438576885352323783296198984173973667128953091465194882295347490175255366430841562937680609749648447812559858288478717694973002385437661804848389403606682779790079067729950536624369117365117882075656563872552551337464729846725848560546309623493590222800432092759860853632322355435157991415783703065353668141946753357696441108120205949202241791988740900374580205230010122666432949197011273577192638590212184128833941717827912748116491776453362444185342351029891376516825940931810274373558095109192367773138181177054663335961208679779192175921039126992223195290731377219845507799947585200185494662762190516217087505574891605633112338699091828159292326920929696943008900233732802974873129950701707304320853485883294510339241421121812903464071269693061794529024064692407577709250421261184684089376016210658172654799751950612064586143968958306070079698081077577443510072034839605703959593047103365839242063493985118296264872120363284730042791134228827526633850777195708588537665096387567318569196708258601055892076009819297064577857178690822516530704973780330909636306668339997610962380315071515428400691368180991387509423117977966235007822580388353339285121005796199643460782809884796741055649287712632022625012210620090868597830232752697383449943026019879641274626160064267523628319961237674441678786762642190524682193118447969685338972007316479419355356960418080004589834170567005552730793347320711330164065415991649304718471366387214261326315494867638099514204622723513293561365337404694895727223409976902505334024843668222668447228949651189893472947231498922222789702005301106476969182068547978040152581252327296143276495888756948492817871331852432350338226398601498654922137537214428542556171229525354021148908895764485274609786370468920103868794438044955122695520693261488790457791376173849062218490630849437031221108529102634103432397542493577935751703909380487951574822485738277382992015463385687768055600029873894720713396210466866094104731972379031087067258915787460917111811135218472943555473851668731462680662676969268225175350210522755717275052479452631487330291264612180344069371098400725823449234877650190415374310370621074225971748457488114170414792740278094907833588380705275776322535483897639217253271303967371033985443601037816841743267944501738906963028279088777156019598727072109031190397916964421519066535948329210673928115373121189937391675689382869203913764767148512319870482638062178236686311527908901469734590978087894368234496315619179293637863683915586913151456513977313003890894135961124190822621282389319408383128886059705926480188023790532335720499911124747403647407871031433729241794800351088298499492529906844650403961661924239884267494536438063746700044985519985837379075788055306637082648197403305743366514175290998563948118645095067450495156442534601379871786251504216613421802383091872941534878050886693119741461563008696092762261252288910794004739467135153557037268344818226340990838214671832402640121673838498919013255627349791638759734668258325577354972717963575167471554134459226863449430131139902787876928042710189001850637541982111860954283534274777192326406227288840876518576696935706435664610043763454900948339343923597933801416928033240546493577292828595935442852296392422118941360112765036913803304601976043050071155334947807772197635691701334249582294097526685501205296371254301264051009610748339795707719257829361777574582257519811206850516195838702375660744430807253166620681188525161255989687229203777681015106500209030271530164769133236186269227460107920471274940985657881836987665389122736539635779684691893739802240944005362877741797300522167114032687510105047565106326035382048208006712790608154050924995579785108208124552281683090557522995894030773457441207109971419129245968036251184841689977945071344132387072868327159376417224442371144172111506106135556199351607190335516105383332042659591889919986787688228642291570655228770184190034650476390633042020796267493226655498074743567854650645928659337136244655966628727948751032464434690493708336012708356492126502178508307663471901785192500699711391192114754953923869928209298071390459286810759207719319740999955156139619032239898279197001679940396428558520829773359309251177786739898802829112848465685011075916340541500519892040745291799185747538040557132298709486308686989649126973559078612246360493760135511674608808713636535275475884619379355007074918435519813400093664428328109088913771044450734079258094587880864513067211660919309594941496135029080558208405473840549148836238819377140128849440934648990198400953294434759389700796546963279935028474000780707839118136966636707182952043458123295312390942761327311122540747970518677636037173127221481552979850900310886062934935009082112625310096186460980784206020393499221144259064076868016129200634384093030505107403096372632784623934039979265214396365071190617345396420611081356264772712668492955920220356487846115187619101380600648469212261113339418859260808708924709346162841720088747710040886709153061705613361318269518946346741808354540514000591442074212266711228857016864891556646550086439215195740778299973907012345545369667511389073722577824934433854987926841409158111102591163311786492703243471954889791263016355568575053098464471344567303647871415992711393290557833819085522698370808265711218509400659745860362639805440829767318559490830965998337696770623315455729939291612015424613407006124362165362837421294629880764629562333437577367502988466916726016706113556281566836799780254192215011875126625248898224275628585076876729736230816907126752736073847479498739925976126508479212207811096882486406984356667859746199629853528451271328183676475905729678429944598553867058882236237168379231919587050929079662911293394548084202287988404306638774129348714572803420812730943392336591182050234583180083864258787136461718422680216203830663459928526819746065379026985749100989703822489487014507271459443855630022377693415434989237918826626770018447073069753327195021138897882321022879944384151286521672518795637698433680508160230141569086415658839918007030174138952089145301902797954224704020744663578161385753187511172215553319670438478900472418149676591327186722373494377456550536093471976033693604815863783237587655185777764191236681798693529728956418779554887039601784438432671734392683980184958312096957468098193646194069652211953314728809581098174162958938203464276311955843432952615124857186183412527479388196063664574809897685531684524297205571822830905289182040981957575116762771789286016308812495834193581375055048051036770598220959384042002948525112395500013702795937306764915371369522807001404788204651440136403036911600842996912448723419792388043181747027813466846239047845507226291382872433685394381921757885859030922064021689269037709237060635736776583015311365535477515936712424881527880301274709075797803945351722120875590922013188858138376458414804229267393311793245294591439906504877947172549733881288297570570010845583057400985181931993812769548716496464417114455012819087884032353727939951054694572674929485996284489184913785406311248581097607918776896018140245666368551146975218288713534608658725840835116193005655285756978605056923580452389944972783882113273681010740934035866155805079816715789979030183914174703219590987935376933605912298755971587718709847506341521954165770786077781719462856475463013731035927542469262068037306298134120971313205488390931999162194716298581923722534261220655319008856956211439307269318181846255859660269548142799483600497918811141464128518542120369690373740307842502286740487956047339411778189810232930935055326529738588981070827206564673135892265145768524420619423041424944058887810401925555895389283842594044163855111455011509682307537628968439857367632539073816144356553792759087368331585373904569613255198912719398065176566660211763529926593094310330914580240348158224280192986823587567647577208915048420598955637968709122017047144225643440951004698239903894769705566499738755806325610531507846626708975500196386335195862691575500291739511319501964948186434752655037058283946427674420759044828966494308985737872913322890985099797106425788693166588453420549949887547103174966386908345641499686406731944558158965717695327845273242286419433595586753343677581462264283495835888331653697904384169965097992909312808912276789700513855100601055941134518866722646151025189765777535163461703399481798418241401788488610720597737886105458300014590051306100239097213556420941556043590695234215075253037462869735012726281393760029611501194319779839240146562492534845481704694903960175727965336307861569287214963085739808091845999540183374508173785830077408732890614141345629198178728847855818087549488188060006813291580043158806638819486207960671390042515770606644625931864897849325274733373981044815049323333215852322452369803361267980728193752050631907980876428750357583927598580123942360043775978770623841490770593198418844328215161572990479288852130964470639338573692305501035552728355009247745661907735069548342660880763318420530173308336459833113801392484054768426676215388374317308594693612018199463801741499270850787564656704311583753645183169032925887508200858313217377810055450406204289340893764185544486641691524911017832147027713871376027427717665757883193043486708181575852821872658632527449643766687521873101239180746639425877202185517456952118792086332149516800514670486502585994812202730958310716709645572512740520002124899462162154727401035923940630355493779280208305800939201195481803225293977946010255590831889162899394607934273029414436439467330091735695558716358778097773620355041591241197693785706220081050472260731479268093090738623568786206363079434676300227143058146968718983198625333089488195378150028692820838020603188310844930181280169879639270498974487999570685502746311394997552945047432398381925159069089582130209779852366045810657659219746170182563227012194754025578511355432291908731319358206101709897794532154501700595463297146344095942515953871226433658885693199462900060770629151231072696210275484773557512491285111119915598169871070456266230940904818465938136417834604331904831417807509531405236782608001201919772083819892874178835725171373664544129668604507433632629786779868645029617349955105515024619772915198822646884875228657849335077149326028046795860392601167027401404137922224647968143641921233800081895111202782312607233840475977949802723248846039946792154013084001432558727783221019779592136923148904868515629094118866344797561302627057915110417364543718952490351266320441059824814805942716553094367264039780776328292573243320447541331349893338522238593212488602385862691296584983756568077487425736666511842523129547841122505158878158121703152853799429333677636672814353573141789893924581895280946866629993311666407727019264238551291591253901288063100447055000231006273934110333510594032051291015060184329750941371022903426916774391121649491123383741098687274200202584342349244662938003465631094432944304215374221657747791769005025391699448322408284989414760258638090568624181941334652044253433314066638738063612075527047374116199819399952503049024846722107655026546210356244668298443711260199709301406070251280417377482783725133238152554515537642974394441494446496013395792997096061042059008300307855048374157008432113413943494736535836762173595754348399177461431592673080492743090274940271340343082947220695391144428016673371465545675209929779436452593651759164978621214216686007595453636328132101655968358503762028816758008384048129871912987415952088450610310890596395258011015542070887979844774172045987523770825458726479726023327148637751949484556881720332575759667924411910235164870957957360265000646493829931382306569376031070103536534163168324448708466254135799464229013870471920971687788664764609030156228317997568696026823116284624951056730884315740519657398046141321032154809337946688068672793517623856408387050671124574522342133445829856117250597746370819623190448470877612069790440243113599034228898288280255645791148106798874487547338472620993008614262233638195023192384122278255199245413724524216136081108982453371401079709617864131155293735718182346086284325243202754759023484106437098239007010246846221652988634292786769364076847568193244813665654121994751281130696235463655079300439883627036963061891819360255476094675361056922763602731604243225019688633995766710111610526141086537328761325310082596595596318514331949641293789733636506775137792778364522986228154594707901295278123141106106637352143815119475885384342224378867135292540089944807426801172351287521940797721671270070570800860125540621847762819302569293942370501867763983203766891373575193564964677904037166180066430707765441441446298429189101039744763619411423585841768098492994154064301977825098550834414062213234762503156746815170241127549713370722977009004217332801749052196880271780989003771271528092049481655455416346294830484626274484603704031280248987544396267984286820644440132034747377980949368212532191117981393128652397208114558221002974187481779695789448419833702423807937819504306678508331651317681907378746436137864161112930278113518334604642631097868141530461013494927997019916331318935948495978228550626887494033555007123576341622081882601567498055068526358344339977923729865796982393241904601446608529727214318148250240472162224358901327701517683892045900902028316294831292163951041565035519637298953606406703765672904554884322819159749785841570413314061782073302965410893721481589985279583432467871401002807136956721559079933410466760127968011325480615071234294282459028147844863221474604582248332030508996111841107089959088641594329354287862211371272443211552011639983767274942344622705072065060886036314383466253802742840468987890471654723356562212921561611545978770157842646742684443305108562165822236132955268781235223290343254906499406577722272041280272228505177228541743213643786086118578073677348782992578501705244537083984208860341030882207812720957078419824020935616659951009993291418399513260795117841915585115094129335365951667285683478357186742377948561520652788685826050845429630470680258353103829525202134758667591358001515926140772829707091046399247583565684139316326865484344135577668508054135580614365975953018286816381523411720129273349556971516485253751555785109653481291875333304746818855865519465551400771124218508557906133042208733884629696230809587806655258479848329075293194353970031273801185198219996830197732034237077876750378665153992264621015107669412778364152522671915219669990682642543633632330375895441256402885108484699238343430805287477817761060152913868099337175070629269630171334868743241819934427174085594835321670021613655569786459030627568990289291151743575739697133405967426675937900880941312426597593532402781406315300784485180840416567188149872896304215926632812393195077516003240253650810855073139420675019784698651459879373420809027034019236382860989741643184300569228280862507082476755229793055647539425118118000045308756815354527486104441269338840071281808310593492761889252420449376584583477586725080570715975710241976470529305914863145639518167944612817425839566340973622240867094346746931630288088079832526946211065169925925405246986641850897279805152834823477701772511341372558566569125224449743693696977013247521182749530199158597515941312140301757516793336065822054936473723492561290936512801847832826048986735327969605383381871194779111214569938089001887964228320533270345984811916632628727299407881154614355028332912974189407197176925899487619017885862505602452465501541490406631365302033332562889833402464474458514400883997678133630554876134150086324090383778631336576119568806008612872389743923312931715282038014203181617731857616905512129800801977992106990776211949112595603491211267220615775164234202390264631996482884037343470279147827253978790412322206557339816966140897514736212446322224946116869520276680784987233717322287133643986834553153850290332964811032874712866694986198701578898498356460727216268263581214937540680779612033297883282437402315488472521353875030750995078160195219850264579068122349262180110130482523656180901083611045756403727478601521383085247272097979000450626570362955492338597236955966892473450152543410989384896939929378502384221293772094937555814568792074854999567361357565238968481840532349539704980382940939212408518324555002574938411433393775187939185844554882341399513454159645274435537559197995453359558362048806066127542682500950248964612516869130264479384984930511874674041669258759090957350119839764349734767041143336713147815224668523398874457158458693057288226334364153380017775605336129177988113287283257194688721261487382893180919263810246649480302449326450575054028875380483308462579152881549753406662912833055159621877896196629080687032653643116020723404321319506912224264909087032597496745367793890138054598227081249725119434818377085083498985666820069733141805993657419089891574382175978108904232145992812099988605780501054401086498537167338664486572953238770086298057701898737198805862396321538242785782134361840220988877936299898994667492811522228469430017976052754572548559240289983002808694173346621152343572197131571785915800320717499588780212994049057533559024850032028294270092903484023242924501893152196814216297436069272999860194963608106388561791105665899396338461874704324828633464633343062415689414350424156174725846546267490510191036431489515661937150191325566871061678268796750301158965697021178597744848618858790823787757615016428520908859510577764580245500918213783294787230130765423200546383058317789639665787233700381331049640539803566149586868943580112533882477441443553201132115809153179552437368431581516732634145238838602762584372933293238678770593555632672878542549397775535111482170171799270453065192744719262759777842714224180169514900407930412869117992126629008407183036369361499430340350177955066310404304440648143712041862102652404255851491698417274171361105548428526777352215292827454467457334821936865266123513605180211335917907697146227360639459668746609923439668226574313577559902340039941976554241464605184951974980037695264948531636634787761472527126207404710189212304874083007998955013313106614654141131438984481873762090691039125188978313428145771693272763801031845365114487062238261094171006433341699894841307596574673468712178213262664799652044451221957124141078119826538102885908877118329236501020841189895220298028331997882314853943005456156534650229483442722936341871940014046768737091895576456344786971765351310025632592963230452765931607920281475304831739811121976544893697839322837149437042733920082211116371757630735821903822234458574079107313249876986385382988766904229172801447792803572294835384101377701823297970776231919471399243539716254024020667795879367991572863068984340116113014001678261303136224328068067650863132518802602088534902940533283577895871913462457305212246678117442938485057544976718186294315899002426433586555247064826064939157392181808947414139367040538303141184551776782545383139598956877886133541653101035475996768246983680016127040571293470064764011395834709563508764074237540251932631217125333733424455118863839941595455062337552700564513966743878299269587936383479213999494506631315779142696036408464886319545755344945928048510585341424056591570754606207418612889744599820439974110465835547884459089411758695398351227812037832283016681603526765551724011190275171100988411098829223998522508845110680728699646700264367270852636369407620186543083340833916674190140542344047997536952552729577063867582849358127551081212563390569027949905777776868181736079040054774449197564062991323500296974224540095669000896147632410493569555772871198188911359412836759680672086309082022368430636277396650999625798369191159264900783290756909752663936341022063080432985486750215601544198263900182911400763449618621977381803203153111376336013250876803966334816499723074075630471229728477894295181354034165718996827318479426051427215892987481101725661538733038729619560736371587910281499117264157542549122481707134947476116909606912654934947289082609027172369599855116808661622814360939699247607650136330595170994524828359829935005487621077350184480009975806000707755829723969406006074816460275400520609401981511550670596385261838787053151747826194032618695671433034532089009449956314731346080750493680941340877591007567424524884849747181157099756334786062320327386821179072872065316276217769020985623235713449224567051433700666642451963643515861983488808898450759344816443405587392364905387887005303646288708313748359957171791087794958850588530096050390312188180123415668068619950755464309519733346980911361438955801957474678098192415858850274178109956567270884923178115053217061108011301605077504710713610603637544834656126781469392463215200280323929933111800546797086651573355285925257654470731670734960162623321615184431204922995808358314321140317983631333158864319435010601530579983780877779594173670758274373191105488319683773298377591206150847539887671553614620319802971234970517285468561617190038513749426267010237029954806280266325245291961725671643664465105447232576232635290622840718093193064871732679496843773072714814649951439617294078305499814278655355886994274781819798385328082466620211369002884281309082313962222653609659979134804274719347076710267148528511971986122352067458741564516852012820791511383498416509195345914790239598774183398574996344216771762479740561792306359524039257902089657106308821902709006629436054347483398953902765951744330540237424110775452617576349203952439643708554621853335165822503697856818585172607930212454682032758550727839948458711392940281137945392891677099566626741945922286062826643961612558422183529116656648779595534897873281756172003816826709009197217849656591268962012749758141730713469730304927175927591456329176631125292864985793107636080893771953944134141739283469547063861339162436265584381349367993295924455668983207837476566018764273626380404517946922792652513570830323951310233819132731454825034136296001798857754341178008921120623976459486393115525299160406277044642728708790862933629590601273413923236653776965167203751388014048999333740017392094685150493793184492674045342433806028423638509300585907393216661267552430365402201450371598051743866767835435334330077845390233069403584066123118818292804436540146314562280115217772934322679765017645556908571328613911715294938655824399518577288739895480801337081839687202570015888530465069271805392232469651318517248924505906824935866588323004554618588439541351903647671111136875663303088477344264352194129104941004607735776233237861080376081091866527438858788636115008440653841663849824994498910862218297593701778499413226567336530653979628948399930589649717966039330451824886690665612414770978902350975899149743455950209448113899707976066152176274969329820380588404141305700613015074701699114863279718200485699379165565594685544757343565287221319074014886798789757710648060936721514803755333421184377407664504537316956028585737792209427493960065381376055441128112111535710161430537951235473697605654303270451398230911747802988702374670640591538996595757407315117454611210333170248130087809414102118524705354857775097131484853387690778308100322443361747635429278875489609974163706931213625213230029351475367647851408361023276197675580340180554417513200330948446506308645840411355411126837257014132778264410695051410864362368478937666530089118100687105640808605726602704201703051809087658944247348211324570146997568128669673038159811580849519299664857263918860838801990182569017288891841396503964456592697511804718685175257294194883665066991550570754374904717574552652630855757104537321854479869693355025714621641132554868778648114500347529978173202304483148518249011281051692579902709754312351000709928595786846533974563215463914487319024124560182047627395126949234560337912597147415694042160161419418247927081560388918986985574526767675105773047596109015994449499625553101817675390346678816467427654197098546901771346459164179474870763015149922925187820239185693597725693973575142074589044556951013833238206580724956286800163309310728495841784264588131574371783736321089674704866519523872789284704240724771936521156930332393331661645897641385603373296898187467984343958053453521424514537615007500039588738649142958224572062484174442376566923416438685014899390148539755615995169146470647306131032649545362853315479536827020890412903848778989339868065171814460668433024839847772015548324268870817929618190165945890438310354910853661709066187175487803833884768739897989119755343013590572812009790563871018140489152867343602757731178190174413832372723241550020123362015822193558174866294137407972149680414899467108143128137810988836835858067876230799627229059934129201210510115659078528098929397878968373800032516489466936779191759954184642154072884578096800748253570707380249874612037642322407071302915343966434405028756921147242359824349666298136338725760978662348705193185405893347000762732150637524357672986652528284460684830025532935663336743183331777581686070050622085050524197860412596549226194408674949794161415736690751815305583256090232966253730762553481899380597614937226611522257580952548242002152202859768844553955332365244384269616148370462061771243747087847337037468871760839898003141966404542468677060359938046412227935087134416609358876901321343230973809454920762084921131266379971039137977182262397151938197245312874835087190242541407888832874320610221655774838906895010216383256937158922652415759249659992660881055118708107334286469116587614332111512367582481236986555944358498887362635817486398938848022023941589657497387270038699138830492902088375228971523470558474042691829774607995545997413213920589376442954973352322586430500480263658250699736623782426261420206596005197404260142040291059365431724590147723217900204846660691643817661181404489781845608497136954116916285581372699815373332766211675805955749545933071877365464064536512845486202986920349739460160754771790972755922796186024799104715261236851850245939558339118602768623256652931396531953024103223791325430349623516712251418452625398274866510284697497951142502965115405185082233574453798196998920146006043564483575328406988896032519428236350111502081451637070045868167930164332993079064861704968836736011586119717533708474558662582789090619601532800624289790595988723207679311802954507244403464048813291362023786063058217759827705408189822061616008374391976560300255679213710588997556441922159812482423926181100910576190291017434474136361988517245578515871152416564300418142203539166593247575263773012633065739896057038690830302820464971733123370510479113606913664605714808164242939489084943911566830103079287136446544905712446090985415832136339857992363391490491421563745682130955823677626725014136234157460057963337431865608376078170947637075685027834610504181220176626698425825388391727659297678432056146765595330542261544330135757416805913817657001842737613811723632979912264600042076134632426336411443411356784244711330591919975530976963002670908471788597190630231333398053815824982673486595584932846556361863355915625851630374511824356934951390371342896209267690728495491442978296331451235006277700847681550647464563897928532297076731549928517452048682930871363037635246054098644665712950465388392041891968366782792866798246211792188884936719183171001594644226948192804277459693757288995715150779786191147279861604738120934851793967777940327461108188624819576686477845011345093664663870896084392412467821482601377165731267287835947131239042915761457473614799402289248480884748687177150878411093516332375008641603214359023799584790516694731041045607745470807402661431781519766249684146676693708274210890120469970558077875349813946224895324692425022577581988749226729571319337687558431523836159999345925364206754237181834131577270828157040726818091391213506670181386276999389771656905079639825624445089257579076575156689639413721135921525123588133510475927340971680623991642951866244710303331123507540867116727991685181553060231752801041563291899638056090906269181031283012820420537968172779501088688804024149284170618135586617644387245050513799442031420657673816608381059911213400358245028840540499417309631078941883365153225797671014400773799942678829694324548215707371807895154767196863521822062170246309740275822440328617407913541819691690826199417993203617548762778195275344615968595594584227200365252995955677626995876873256712818208465505197636049696647987526978475972833871162005496190959089354911429632697995590691205004347863900773728485769283810694724500476277491901813534237237148209663497722275029666532644694394971809799852901937019886544158629771947959000203524400470375760524096927191484792489483555131524062848774097994370935947112097033923267127396543016440451888022801111292550696866631715332277438764265026146377606940120901499962029085336630967475351974592322421903675302755311025898857848007489899679099153137351119414442936900276820140708281530926371145345589330815631793179199587301215183173273454780202091006760597414822812647476148724932801431008124372445613323192590406020038195106715194003776241836411295536035336935407128185945547561692112466320315346204234396686173824348945820994792057429865246488742316914426547324370275174840055564186522031094287519564699652537034485505959707096986053191970990083094161942611392390590159093407552894959757886637909971815070427501348364710083088137045391548783162250833657928333548074090654887568832092687429247918642691340099899624018426706445867289957363767894462454325493579171106321460702737205049705393737011165064199332076023769290754872639418351006741491994228903806546280452135214432609022027847971241501182114689724909119400588971615299279336224100972983423851086710179470086503239514929186330211022337155188596602914803714151006823337058390651848963246355593180797659634290479265126520511834199643569387165740871167973362922357452132549779703432216188269093266739781847698167797437494211210444775951454606224845174630152506499668989200929452840764337288341978037737201875199452617975729914176960287908712152386788159051174020373354576334434680277715047496729923251497125760073837421108870668493011120676026047912761759736320850776942651383988842826701225513689506457396083525975692372021226540602069470849749644749850914242089734185116620203763961072659494258716198409887590990510938805723161588133253812053826963793287286475224190236536911636332101299855093138383014796078269122610343218505185011798918625106977539899780111220878795280176438132669800253763252114284596637962575044672723234104074862575689944893828414787703214217305142668246647299527452898768653297770154362101871226895657155324034470443149038804210614940973558009688463118711596262376281131096722086746829894693392594103959285483913115909859096118956493022555987702270820085798476676647020800623591702633994136697940681852209624185374146013359218422338404450285736073270278830745477453677063219022204074832722686330075460373318012084769241542998664570738753747309224773220135912722191837605945718820163849762036261080489886451307896605533389877527798575766796715391599790469174307221969814194641953595559173043238578711332581672297404864485835826924622430441984767761112390717527488050964120145941645899392034288412247399320362220234318795229702649789804577617755956284738192283767245408178310381901930048849239537056911866200370004107277165366047893419555919112254769505879359740232792466838157017449100738310945151489228032885477321231721498648191182512573230553065966643599917786290590335575196601403084721109018122065878827585023469022025906038994877511050651203717808954725191021286258484995303442878268924760499443117527831304512333665219627901502519810559235874831593173971996536540353008471865437676339770915646068525589279591880177816941060539948263247181706886809414797693386035962446733097347955012296212113879568105277198703324507024846003179926894136597165663792910909943869596683456776562389025254378568461281574325788412566220015305319211342719297803756283900136284326741111134935427836179360901402762637405473788969502550586177761675607258631380046297635609389802171749486426200009800760643261243110626798399260529023935713904855122752780901848370663192476359815596599738345267661027328082269354358991759471951276755091930258475682593057740937700719664679631781972733360120576903022639647336523234873146631314486284239839292476984201537429248325221389709558548913820563388097993620151242454778296360948351271750833133173197755490920760005927449271125430515904000794674788964970126168291692801209478385057810687494536296693242251754316393741568974637354664036025748682050359234337688342163837586156995889797925259454582428503708003983673799124448365693012312807119509259522657587371422871505017621608899221555572929034077981294211646219185676250180256536615737917749911945046017977217249479285558942105884910181795057291062306492421462848201550319066739172740063270724850165442514579817339574270384985978907452709495833969748963384813075049025065274742118328287539497086845766044448915195008965711392890574975339328487245367555173734850848541112142471341201943201750773765485240621703987687449728437231025708793936586019143681696462557135166036385377449721245409499087399495981215788048248628405899672769394506288096435674917342953656159266597997619208869335934927113916147035757858084095493766113654972959183843205001152627678984440557068081963947744549082191195563861841506490008132335225738833442913512912496343432833683167297974501332027146008142817942917448205211697070509379131574139126878171707057357966186833434807134287202510273989456346793637074030555769797352700947515946760722307093303741339121939849129977602808373235984782963115453245125958920848161543336234369742005869256718949379580859197468313002185238999689325637748623502486994778522603020731345323017467960662377789352455482236223098830586280760642155600316039663361609785342966821520452512376057017796635308020509086837143957614059540730037434958518123055505350069480305508125911550274154179005453144025016906123570230777597959545827196672907539192144409975580498825574849084053866679723167955627392239185800944957904238549583480125766294801354617532044441747608472906160169595278857617045545832191946354001200356087870040581823093184646071628956549075178979105924416898849616750543972018839024180986775350557331992004105465954070322223988128797278975420344075470543111910260663839681721037403599529568787664325170051742460970813425221861815794354635714692778456705324932341115680535521888115825315089409035454022995993505227144778929812518936108672475601134676572197271968755677331484099195697359391996587568043130049872271952825718178416146343649879796803516817381592744474763036925458789457172910294705924901421970485045222648484782505730068963475762311982047160526343995804766327719927186941942822004404624987883252957587196349259568286507503896252761161938122807246300396731615129612827722958713595628768160418460198477257926958345692216631983696606329225323424449303253269905270885679786495757918386063985142449508228646526073995490562004511849398684912326760647279149280446366399548249054306369827020278512754850312404756390269745988319791056048803113215631113815196429642694760504340167085218133828471652525612743434260949812068038602239696458008672017239092730326318774057956418403113460705326920695969169114444992162438203797754123121036959011594619315989499469159635993347591074386422522902168175134670289309479684625483330389264810091799591171458971732479607115714891116440410386782456245941992102638595917666299309153942280968130082953179591724789052967742360261480515791311638294639688713474616990788283771541075241523441670304174602284538259226735273417515276975680671190871962432787689576679173023558414427719423684775991747715896399142097503941177528394319706649321177808383676133597819511648131160651789677410867083917570626611902390398073213403503672523564358187751934372192671683408324838073342356549595292193501830123021753576082961299192647836986505084488773150856662557985957540781499082703855529903689921636038090284976242833767703617210253988656676013948063211190035803009987658581850937233303809382212124673678900839317848738897587412749306931258448573917814587042225074718445189926377920835149121524787568930086519476613671203503485868050716875656657589750493721618526925986437754850514756964226083223694927530427179859498659321080371968933784165139267865146670584228817890833630314354992359682200400161797944157460920833634537221566046132982881668886784706936146037204463952102780552795198682761483461152394110056177808653510456277069995113758821932748772540473459409455567311685342252681889918536354496663684487628736424907286680361904212160824859755991806776316162720665501585255950655967116469307238473840781641601918374549298951946801643771442763789156386708650610700370853630939185778061754262283191618761036306584446275355741549111197378476533396252648743343248367619230880588749064434446497243348935500186951747751871280965401866108823343251946203005048187219296030039699809532637122709284953109513931174938534612573965748338035186337363453441943480228841646801057826495685132031103691223225438455151265432209451167595172347065215528442298456424106440043460385039753901089680081908677748950846007425976524797940602028692308741595659234837551460294307184381947892362810094436177023930204993447487111247872886450163217296091182101859702712181615827979295721698040783419221805907342946350111440928069696986881877516289801167443769346944055646502505517270348729368963000579323887514505339212334996437847664358951691283118757724514726602286171094509517488595774841728970628544630688274773210429087679171231015716705452338394825350742556138086617044092518034976394088803645535798198791674454482137900433636752843399332105138207813284572582294088300192563873530302122693383684402412758688928320151917886829686303503940290859727599231172354497110941294109342519652368090098240532604539028444414501380083887307120269804032930470777201789079483203445660831711741007747172775007602010449773747102767903591274510899530119473647300247102256520084641724898217577833979602389739906264595354389967244783761493568815763724407332521291366780438746422777076193956297885732682215171953434063347880404838100429859335397538434696076335249778724475819769721525220987950012994161379749480171167974832997147636664063076552603877958254040047814316281418156827168974485446360942589931803960946991895093106054981185641055972683828827757529011030445110901795663193193227756661533362443796788727788297877735069498438122264720036574298527664770873239413617608925050161634243178233345870035378273429614083795415152271916630270217302516798375142080122152171007276193916904757788393197185494043283258610150761413287412759545006051236833142633393033773445763667009966162941106302061365434090928276780976118889814985550216006099559789500099444685024197987277115751366534707115812368582378814913458993899586893011014670698945783868389722125758581856000605116343173126243591946811059518740881230167771093677796019463465023981589661708394902317990492413842071607895906619030239368016041992086490134387842398594664037506674013552993699175499036151428252289099605394439333680757334849972884497650632976586888650934217219439005194111172114742559343734790323338769017368199819195623740258385371517245912302892298038500089825437929989026647862616759099441832090204815873606021849406689609047894871273607454799306833524935140222831923900312853266303348011685940889749689564386596364150581644249594535849053705435078914557673284950234545563111030943479529173021040719681198908028118702450303172645895638752672310552172420482479567487667133577920322416768911137997177441532241540880840970005506901326196767898311058440236973757239841059421234756898516612395621987317533388738076079106438437351399114458343416381316890960381236775003629908488807669295793564833086028259360221789915000894946325123026768333450061820446761185554130580396285451608135146660922842157097521565487096159536307241951501166043388310978304131193751351545638398150154813973912201259218477266951224224585428065935105225160873673414770034757878106808109187377267100879655561140753472684978703001656027774020957691167894480155009171075921461369316598858395202400688124742193123948644128956002409380022439690539622978331132956791637027419338743324928359247560879356076590252411781229439033534245636079893107858743633284281605893649374581248174044355284735617138517137943280713604579550175370605707811219751495100351815491556795154756461436115655319638537056399154087246055305752074463396476661652839696772027709469827613831364120496580815354407924818088685575239163050329551836083140105910501255111724290706000701832844213930416090580385537107651486591505077083485347816886772905796974222920203638990467328888653340141089756549240381644545888468534069270706441525687485097765762096894426694054375135108056048379462697746904274664208516292156909191020828472142166295939005343600387594284966591020879568952978485198898586764276388133089055355418835501777258449336774686844774958544292981728160213521821354600369662882471261730490343300310988428462375108255087004345117214696968021712834678208183338707376374275917454145394750784144098639594037267367194979784091667004443445861191623489532822156492624718949026754437679040011943931709276862445123344004293304719391008461650532693905802969618972516695772876833912308906474264332736864821109460981380540182070783825729007240640086042236682244190066948104841483293058313545078161573480172894427631135759618669342381445390980529826747560189271355703163817593375203271923495607669615806516574179832163486195078131402249972362592941391008125964532680845662819401756419400245315406303618236628803396883697927395488840304177638378120792952892521029928210548350953810647305463309281219668133790602001768566229046250164977878330969241632612929203718441272905468167262043074735309165373456269138441203328650504414216420148489387393613936122026416706490358015252603135834908781951327451985677927141361152373220962459114496178646318967660791390827724676524008532841788144474430782927050965524583248648146954795199993666322471636836105240292237417828905076657133794091832860729384450246569054058797581551778973504777461622757935997441262867123299654505781783763711666233875882605623051041298605248493698178770746583164313657567707370228567045925320275670777369516444334815296492241913668410390651104054669361429923397576546922454477398076922058840720011149788752421948527021158838595527768445218252351345832062374805166276662081142814495762470495110339557827572121104766301596064655500485411238127111668958862145925113666345709524531672787515282865603417302476252625524040157604170691773134401020385757593283146301399870500876241245502129805219374180118407507244733431783403388700848453937951766014850580497089449338913316579403178565922980428468631947987706882256031344161052061411533828915411924483932207435952323440852283441067197626118218579872965934758521963212135906248140580346966977784685242140825928742114177565965828636647690632070002664709414298513299205188637482512973445914298147429961098288108480454109821071079570701999199309029988257985751571000643376560692333393268400256201733644627933508334131331426291171945626895168868485752542930904268384039605554853259563300793199952741249184211525742956440130237213562845769231916678305031006704949953451298304825186432235802817173491961980732091839726619510323511093893769227656527053498472843205668209545270646697216525608556343811813179044590970933022135269617313785992880571580950282098374486279366889908430029358009513706814877857505465114158443982697679100305356994743748961613415037427092384160459449113711737989625665321851629936417010544154618242846612885805222641231635226662895925306228607267873151956115309058441680956279203857496128279699463512117990902119101675043717740766164219211873035446297503887863782587365164787768346404408916212217672712611492824307813421669584274995933218886490121401283323377074605462226280389265822159980259685280765554812283080453252405080432040644773353250689435097262825762579356481622323051508112408156088600031468397394024171288959998981209149935889043469515315217723165710959657692735178254236210212059528952035370585774322926753692792386309383335530310006902704445140040974340554414827983224322681841777272417006974457023411788137936083274207216131895176134666887560348928970279332933144870022774986180167593273643578544105117367438634009621403403536180811072933317144176122304501722512858724931727309524521572209889193192014681428275004283672938739723319921644171322224315907630688370060621213012109235194979014143880108286037955767526476838086290948481389259095618893285477325124662115333894709402834642989926024028238882088809417715732070726885085601260416787863001191585339295144661509733631545833598764019243196358994477866863908699063568892542940462055359381390795747107008072950685005945463184655356904722989272832423346660358040995209483581013644503816513689791507111860675313085597452819957141241157771429521012476380392195250759715279021752752399428361491717905961616794881401336616382037640837518962451237949505768035102473291059445426050192122314167211771221067425751238714933251736588296520146658341593015390171276134573257334469037963657008509027296788205061695231400846977500315773894466617389937044501745249035826483458581912935764129792803635468665145159051229799405194365711283595418630068275563312878265488352853898781258207332091216427173958566874934443521861402844478007883181861259084214937120044123515047763938864400350944982228527084248496421216261703720460209031526696274622958540330063587825810799840598955188215229419828670711894433753144602901688697312023822970537085762622347430504921644410895124407876113827021645398322303870885335462198498777583877793782126118287132884073032132718302497084652620672824948775003737132235105037668292709775492678625698738123263192139841466694176526084771745463564284541198681978794755813042386929883564791231230310869925714306765470661234447045264005322680104946909017470947644708599242712262317765942589498857568240034708769979584312808701319256273056140122972458929113699263899166587102633048912288649442626929645590540776893815195413569485425685843759257560742670687712776113636925741986368042097412727783961762450973178067965012633541793024657317909401006020519246948310534804613688813154662672974475661856314223884438022158102547130521657692078808697914006075202967708453224308460100883336844629647081067529566011123009649958734051442617307099708338506490820290034033377988306086462992923644224479882749491393027358972373937086347558186168460850599383575164022540450041407492879491772131442363236040913315129467434602500020821783617556806408573005051041377903074976867787524051222992956303357124281372554262479760490920897463711572398567509837202245213156783374986574416091045283315821869517417760685722117642593300129484600237974461415235252103223630767755424687555942972511515795557069967132639863727453552090209509540835514375592409907197256095269869790353130055252345373845350634116446623262716286396216146128937891202404776338889353797042102999532631115401022302067485939069138970661168486306725527659017114113375026877536952477919230233227740159421211688063245532084862065240461809987908236959132955833483966925199911613241152209883397340699557518493298694251099689970528262290383765990659074264582972949017459330282170609474573419677882810556322275782236145093199879129802815977810168724424638865418903870678009118679615543683842969495645607020799724947362614841157455764854492183462502041355799575673403719093381594496751202790796710756728296117947620642346627041676225166837611469397596504001696053647811416480309861186242476199948759325878207819224173739862306891758196004425981930403757854079259613186354373267259685155505971863894804146220144995928706635793766659952400262335216826051694259916448930934155115520511029695230882893767545830497896883848758308153179400785144611169605677278184613999486735520183250293852466482498928339378545916656828436724756401246344171764269023549543397003950978955195706477949131418935150724187863142082495022916440334342539933577006154855725661477478379377628989922516239310885873472967844762815254839901733043508088907249909498115137446584750141253277049208943704679504675691104448180029907715361715122535366438032689259755278398880404627664952767808137868917445005113145529251094883150854186913736279137018749175785238106308174222343432328246985495667430440775325392393892103425664920275706512440158848330072648850861507538002864768774063100628380681426472669343339997860718406562666909380709860282982610903164787918371192034158581401584170025033399726668314492486586152510872880138969479341930720774520396621545377148092624065444330576823465791701016291256538504779820151304211312254955885090091547771521683391284290378355806863097528106096981094891591171498008007769452840130989212006467265331494490139926454087907482251806180584348674475998482605204494973798851703401600277918972543756520184753206503455907078815167446933629079326426214358703474902357696695250401286721183367362617810645900611659252226991979345168139860874937155176212140619334869359096116035020401356218655830943383095558477459360707781474043740201178846894332888508039045677602608488585540450395812801224690180577375443390452078127835205091379697475499994807246304602864897144347327483090922165199359539771525454567207957774497465200414317935880700304920133633177860774604382861485472231489796823734491840958277664886637021953972263830393580735120453672006547451421632307491502062844924571242844669525835514208769883335241315604577635490052433182661069969696469579021865517229970727948149040764284061134049556990988976561663860736313744518194289537784305544801239779781629944440993421723341948483302938186275554341934280978226374701522996634410801981671107173811946373659696453345555966736248656075636689890819726297412968061741440807796238941397890106579171536578447506078551847216800278917360750879911382516973690654054637353238864669806882476095172551563600425238464151357399542874741721942367942276552341226047833130412666738811935408917012961724443225635400318434773220578664781965011256813941195115408145882984978989517364709875614303707056072004152377032100745291178387063357758640381125355063563702963611918608674501258811886373064666409091992229615867674738476911150927310799698778111375417261269556961971277059201465081633723037296008094945717667169149019449885467635812590488358205401094040227072180623248680868064524080742898830164911837843531401087382109169749968961178779383869710148681171127387191191583163292468562981071340352275054410807225640594312119519130572772839034987233760003890258841396178683335313457816879310941024471887646902325558417237993145212135375970612236143651520466013531673651165768503913622951387411349121124370639329222877451809851397236763839698542645570862427745313070597205971699506087408688429108124977030455711974274928193978994931725401740618581864017485773475566221087325425244782780871194076003636266138099957131196239589305232403325481788778710335347548818809024623364852085785149219862190918158779029058463933673038533341630737481143574541566807540245692377413951115913982190807567670847077794129383256026504882783484171539125574120069649805256047162673291488206133644317387120710327519159260399284852599445524513562189742172078574501610776971065727376641077158947393274099754865506024177376025388704205308294474041901368824679329303386067329154445843738659090519047782588490121719463533187527579861985120066417668584837776254894483396425412094459493919497387085215026979356098675119063888904479541997471162567015784548876562951759738045792933145827479154990152420662241876630487879496426588539632158610975116865116317032263607753252490827262297782131371067236835302148717861712835527795543599035751562342802674456590832964053191034890024147529758520913027953763881880470002663291792426503851737889210298167707697300428819706361541507073240008223858109909199010194209614331107433848485737324160999647270654423471340144987387401107674552299243214337545030035968537203856649373840769327191350580526212697608827623562622823807283621289617625074559757331408192648683776276772386133374007602680135288481992371186257481624063415756785259609111908746820750155783467200833440726418692087579787701022779062645317323535743424289778141645285909964324572058479204772382892108713929248843150096700498221933770380888489625458695027279975168575212921386324082187936760539805074997699522895238850667727799353929881052330580804211230233212577732718217369482944334383743718383889056416992607973531713226169273685420741766308976820122250103383930450701800203017691570478062339741460431284516861573492518589362895589424223374989614682862957195326996150847328535961443035111195200200703465109434009925871789747243184341051561424692137175932766559490508308127172238739773777526519636353298240832576979421234186915348169050615194467946317519573519597739653838128663492577137959995042549569051405045597251317824462726925641455926610588544415933611022970813229790493752827647809112020719193957216440493778441780096386750966287283673700875684852562737741582338242611703773916879174415394815678857385696213248087449509365288123554316484771103260227304548139480524033105071940065686008626623135010049215993414500060765646896753488282616441425663018687155923712306114422117437593435239848966887135508799541178886622844299030890304957493364528516038309136890069540620012767953376301194092052911096930991571545281198434828965928441611004311036097044118999115355574478853967800229526856625030934684730154488984399691822300975837507408292999110838166017129769906008192544626933238916419480256283358091440812541261988768217934337735969487969564455869481152182415242006600354558132665349696787498771970173018944165668927120179321826614323727392726296614557947117777569599571815006263434962290609816919854360585904171026037355693094635187092143468877671254610437952771838281280893930117461637222184182563534380288136445077004358110946573630137636070381222390534571947742018523417062741501480310823050906257112766950634831990792510430613160094710904576641026365387165137887969785017669743922608529724927240736229088359753132658143019489442571543722476793978615023520391321074821402843843035300520248686373369251922074494355143021880686741412294424599053368037692669699006587384185490086847180459202910035469195755008273067255875848302389654764275010769785692554144412874504894757811337638249963118377855098006893159817047057276270631984838257196693583853816074271841443790071287573584828430977945855263841345843613345357158839686515906684052826170691559523002844468507206167754487695887151702078437202800493206443959278455025855030418644367631894371428164552299550867753750769269135172197233601922167173442647226289479850050228835251530507495570327746769347798405451576698360616520410765708345209990535326302744583961768655637607236092938816604228457885016711811869735399100950957597853779232883654515351458488216306850522395593776960971942184387139650009994787989311974467986696859668039086941193256949372016523000725189874559873536864610709142012391490703206905734525036196437906677734051729341663648630264107171157154556548950828128637398131584350020819805493236599505954400880059103412198478714478504888769498162400219991672906342396203979921047441077848928808801922743700659830644004516859240125310798802543080673508437669973791331440981614106901491929859074032948738099633199776654635387580146499433494688109961204861233242838948159446663667444643023909320826181363922273368161974772038846118842339408865236331605463210137786214878923751161215559100714794966031567132901102924689873805017961103706155551037092470319827042358318170940438112663642881792202703987087952206847144965791227021828867685752460700771182581534364352604958833664628283296082490657449957356168120330158781618043429333157212980756382860164762677233549531876260751147550064787970229205138625461096005015480038067184210048941254493657445482286087981633619974122618318520655994673142416243096349154609794915984910875294510319604968476186432813483880763739180490399142479043091564040347428954789224161567902059851684658439783732322372196997109622692342250023814467334134725278871594857232044732380024376081042803907423875269733391962463412932320185086619909082489089882531538446737825876064128424878638860901754719704800189848636905236075590097924613927079623148945217413498904674094641453259713998296232341781799952005559751813438270499635852661003635629127215675932749485311380715156409605587138794346183811659774504145379874594152882628691646973379708034176850750200965763747891485581218589074256958343547259526672186251740006538052894091578465761092910702654933267867473002219035438378199768837845730746715833096541598178371285976151571935309272269290310298907813730752384740861862156024334619787590481722470835542017616231174110899630661602391640282615459294276316685015435555486705292424090176577265539780395534535545061377360985665477464219476046474872308247029506805762261636415849791597057371006863943493285384409612000551115433113300757166249847372438953984898162071315756233010969271435977749978444329464478133881245918191612000581218334528626514516670432679785657760571281520659852552073058020922845534359370364888021160616924405740394697156573539442208203945717070156633785396298554633827190312675364239021769882114218502007927136144139455772892950628386175697916366666954476722372763883920853095532473953571959716893418103172588511981072774056715474243906520340657305359171000696734318287953840576034836141698323540250855347860618527469754021225506620446252518432502711337014909714451373575950221053808790255639566981836976092737844405746700106318916437851615575403705507377267721431309753727369771156051026850257583812851504041586928651932419056818198112054117936784783198006220914157742741522217223726865896781075448514708858879214673426689605582154174024608945965401814634479637134743103531884720475866839097543519054729818696471856491708647089105489895135707488422376180617376261840285626720273043907412863379267787240695682980456294812000322982275170562158191582601190418448517256233342112726232482931984506796657096935588463756609056253892774296156552172213400762601126062366064654572289373870630025833307082384076496534866787970439425800696521244512166805826151929311816757953106283402877261077288622089776891003988650827390949886539450515975800726680312662782250807537213783047730300489362619120262868697861969909738422832934582833430387827917129208606598062821130083179136906455029489769880496352870031689924826943299739801674437151663770083250857670429076880187863398327338287484271181583491538604791832891801496540471560672525078890725742813300970571562867535987424725027456873585846518308901889442674306718846428162760370547890376104053059906179709447354866625125445422665704790957157751143531882798316978440491525230826447354073544713686567991021007603064895752263548455092295993605992620634810101451880417845582026026724571136732370544032484001111556958380437091433976661552568143948243250950962578202024840049543935806606757917344651749190067831850137206999953406430356456712003405270084273284955175471000172039937044928012114818538582103126625579574973677197884846149671488661445676825304589324148640692215207414878116270477764571001345667590204889341003743468681549270029788486541248692141028019557168203685269674320338306760502225256948226815228072792472179700282115748096360460432279815814809701116882801858967467970665660485325445347223108644646785199399461547099165532665812297637992833776625285817746067919351211897579713788222056357154878447278920493457870225418623497909568479506209550499340470444170723569639242877435396987721604855547907089027073575248463031821381886377879559416089474358331995780257267999375534750714444591815708923857002653498330488140288686597048021261604953076779956692496675276975830263990724721254021499910087559992582469319877772496491290982664025680574357605628634103442724250167667817008788187922381748142954722665447723266181833108639573065877949030615502459521792387995704860732682735914704950440217510711813072914066972551265646810016039218125144936837846990735253734755986631230337480791385144611651842569227481661246106382946312484980553735081401050559046290816271005422423423043604953555306124184268053131263742150574588329899891895215743088417736814291021399987513583872576831167897084727777344976687723612941862637301638921337891520064194138617864217425782702735805478977377770915133665729711644895518426532739547335378041651380000038670069997719769085071791796126361712309061311904576506384338400306302191168453687043966245847813924514605975082734214882857615854938591255651875590786813578650763581949434602179075906238025681885380342760747129047011919576658042893805312735357144601590130758860265932257455991909548764864356545673104500217684712742034711773305090928649819950266191663151710461552352570593815335651738072211964779912787818201151229232310467395763282583676143780660323299552472275084862482497657337963962685311107916968456644244840245202415482348657770461474104093176917144696758436408872008154885406213970301062716476156727707930618934395115749143214876402851996143662235792472633043730944599195083143985928633724448003010404339947127486410758293838316581304029189041745279230759350679153536866993303062833315035106563764587189755332882792685698303081154389732212620156149814040729685459829715113726374777541995132364156705847135671245921383958338746277374681355219952862443361916595524632177960103800086047498404502076462150457295059029626487167357785613508441686709819186436649441792222914768284037760854258734618402836625677796861840902696720975337491882988033954689283949469871183322097714727679354689220934095431421942689606690967213299888045579907629140028290629608104329526868409823438005744373511035332776553659006773823256640295773702745119423896051587758765155005748866810361441308984457222499199565218041041631450202200081456429957810886611943986737712914932047493028838481167389467242736107529106819446719944761324887617343142585962934933016653835628757428164166021663473147541290733150856478866096879519317922134928281910455364638689562711643692408001189568641069860523329704285219543210109125973253672964196604695767723018303965796698147379461902918102479004369735407172943769159371985638410367658711218082844187622605392633483830672131223724371362887982814008026405752873110645880438510449859352885874921467275846815867623335570036990959104287509622982430763423786008295362693581214763860405042428856095240811128175968778018266724575054488307293068667689470353247082490439936006488929265026403131048792882668023651074470614196696353153595549829775991293250904878476086857260319392026883998896791460625533440739591354489253324240492292724885042038393904899146212651721012520817068913271765257640112191733693947642438252222894054407180295127393355123722539013760955646496353108514644306714447570508788882465006118884365561170101021280731099410747479120974151997146246928456496430957383101581252473473573854346315733376995063232171087008755566332626578581003728326701479786797851840253051977358679413876802020631575666317503310027222944928364273496322494712048330886671247584984236658568444717100161551149341679780443805366192468124695371923272269774152358010898393474228776799441282950217579112907178980620044806613559143109474132856887892630355324433302842235932915011155454286678849639437917006576160014563157526101413407869750959137951720615609269339682369786708997800227473001501367572234729064929237304567166639106960878550123205818328691234126028112944460130182121177160460483966915269578063414633955809514977268886110720794881181708210676311719707490753466231045126732548965031030322190810687877634146510528199419758490685811826290500339287443320116864173456371131160837498814325227638729166595807451196890995756715415771635860487709708542048291635123238713239007155636704333113805301515333535416083426760772365520623212163792404026287645417585647186549132602318093729343038817574127807302734749164978377481310315351835841347376439309055195948802624822682279507088793891077416082460918425796542959775782860709178592983781520277830388889169060390627007663849390095196645239298100930092276414295976448979014122367784794252766646952139765388185880565107303789876961934444533941965646150989480063584341463493169982708574016763969864600839340298785375185639632726597499946745158153967951813962563508142876458921233233546199702616850668440972693938861763545953995798171394431023993746178748719271124288748897776668398531735174614603623999504560066316662942505446308735768787020965335880427028395260348899222524263486807463914570768044216660372714609017721351046411914420247391110350275789377766611678850745537701774536970388043288322825771148826479244320238849061608756762446433708402928043160110971346784547177924818831824396215404233085960620608228408193005310252438616569349382004836543644800311264965000853336541155506754549516563432923535765435109375161743403499631787021969616207136113193242031775074877472056047057413179419989925928377804915792884480412672186433706649191205835866693605985105832481854688443914676118743704287143711284305943680826950006938656882497630035808185375543512997882339334874360754176132216923183935297579943032086840552481349825087545359591092069423535689663502139303680409475078034798535478174216507723852645608642123716532614609635553556366946960801458036984222403910299320503929478894083840610533942562684959555636980512235068139331627500350604997588797163882297302816572545733784069720350677305379945024242229973987032179666160421441131431561419429179525084555270329473075197007635400525395433679067195425580310401044052528973907662569953884369230066893158350983879011187476067013478127625781390877800647207050209045661927776975110543990762930427625853118962213936788208888687136293302667024667491299112957429910849686812498494272806308003190885624667486090039917473036524613762925305423374619558674773442980339745262074903289131779453257581359015158818666220124072206092593233485109963079546755973061225555009808598456877232584762057483777304362981843579319021770342613960939001105103810850695900103845164139272553693445317610662634841685965774564019281845306742684478068350620125514644182453337707316003608017232370630626049736857295564339736872801311035877345036225037033199122564490275620780742401248118177903234409886581630707001387963901512807723207712960530434717224662327978342835579851437482786655332113781267660244088394762154555543068954385619895394330452655769370703726673441197098592584322212301824382404341324812630032225609060280289677410293795423114642502297859603234415392237368122400977102772094450329286694611846750175675315821363007725610731417657349695265437819766456596678910256086679819729986855180816910300362441174848022111341138617723974750144838997470567404750045056485030643880647165458488515461450740986518040531659521459144152306988721386404197417946003590219531512834384897997149087942568795151093646104433817315726287434857441843392255140319917656938586431040942962936219161902330874482618474701343097826196476766579568577825514935677745046664114761554956864073772012881607214383941257805173131258568693152260892245908059718804531327211069777998857876519260488622615406822402078380733949181490130479051328831569767920616478546093493468769560012775078773761541276351992784622328116587163396061573213279382475714907688584767936102285660308256772002861453409231504533001068630333579363748695139399326643917744611727972808266663823712671640960171644799553992376503826135871528979797046114709274675634618372552274442478716286417705285083303097945807367884859741036552071226445988182187154491114839657876676785125759990809792696475308171898969862435242168282246130800462727028224346228224826284609674515409780339395878204646400558523786012839758893131549277189977465363163608678969911877243318200947453789994392663681242234113698619684192042624966102746912558825636926051237274869485683164732356232908459518671198850898604993706943167313523434948409009837769326732228739935482081177804889814449099912222883215369128968639631846772080964453321810062985647330037981376162769256761281956253762166168539704435813870161271461190338099844561419332946056871918608014123781447168072939154028334210042438700100690305146062195630968709576943263049628916372645209353100054559308839558493615647892103625593995319562738762216767912992538297540578437825205228011442371783135841007077608642650311118404504651365045140801098962160528405195079055081000462772793167398313801413501724854616217314712950032000423389233552958011894420948984096524132370850873276344602108294260252802111187129629920166816877537681982040100965250235508728443853562412277240975682101703312325271311290075338470805889758843533669998231182745648544741613744281150901283020430962470653508305799494496578826101318030651529680175750975361568541357231290679011718703141167753868408806720670337004462426325153060384555971254127119587463388358720134932061424317658365378739201833218893730935346155962829672738360657206345178219108546602090883966374810527961562505186916016363925370915907118440927434016208285595896700123629993488452685006967388390649841376577878521617448443468505582853398670400876684994650981533670909821951208952722451252857752936045764710531302449487796252311647372445674918404343179555447346481836703441960646932134581343930312786371383178338069306828803205969255772629394419187379617116960765552779697576198493760874755149067295486017879636988320886945375946016321671137253467948282098343492680347133381261087850925433394917209058024144605453841936202647887997743039473079190460050960749317687570582490189036298853417880882484606509461329313832304109171758162252973891094627019073907661231178127418248830983039066698971428528776684065103728561327897975045754187634293713824409805301119500341394813660992224751789560473647573453028499682549242552078033038690826309895499648945355000105571402790498944662771083131184656673295005015263296714807022325127719386771609870348147298890904184830777777304690132168905961084935700999359294677784037847819491687652215254839928582587721873802363846971607102223150981318424196019988295077837646124886213188690370171545220093517653312642388561850361402612018027705974094863246406124629084951346155875003103933970804453249531846260411232806821794867708145427019448783080829832867512398458184207694111596210583420214723141593028439055149394617644866341039691409655838019665206031921472125640278261931451159354056656626406905360226098285408996136933731333463690365922190281053405206350748164350671439455563868585394385247172675125553002564288375953989023720996952355479348491235135111827119035492765835708010033548224403716059011578554999373101617036729842191661292583129169514896702658061391992764492590127021858585072812033808045408096781151212227643059649946410440663967844389999383111643795883012073473835005710886986161975693264260863393862334398468763007039295654813650039809847241825513880852393285065911438096601218544168360062477982090341428123537038152745869653464832556245605207602770264200630766537823308109670766645645657622008191686036050459154062073778591907621948615493963680633040204265107806642558120548036167843017044167334215577631827106682940865056686545435233426458389463763473948469563861931830609370051512045043606793719217658840202509727354776296481517826131355799123085610170663378447437196960981935096735416537304000318297167687963851311227179275786537824892442392324706122745753861225677643861543863270164320187565810602236190922546209335848421513644641839157318970598194847996254607101066996026574602517961242751115394226381331341758486516120403465665541591743523067414033873225998669984838464857994955018373398839431823941021751081567889323690443534529521634899663418782707057316439136706096528182558143377797378615133693179256794305320579001394085024515540066407273438308869611481918666121116033316419668612554140164134840688971409885300212088122630230339493394237134710780801765488896554716099099844466600489056280140921589246982400269234227706978364375710241632061579501566914493925292763068694324987279618294728947591603813757372468235045684687020655080625275510435202668552683762229917650607726659473117463470533946231757070331951712828610517783527769236268499245675724563806042279205958086890706831487893629721714451609990802380178446118857171965900331558789607295416187864739867829493201576494064667671097948621521871404146323728155386863427012023846908423728784833711895688518208657098688799989993446833505707237604439488408900805471438197314978460461092823903938831503119829342689048321602255645822432778642549144651102174591730859098156276556489090910366035658324005482262458837570579944475724078043429880930994901296076396050352901459233385910559075300341964411056236762526862720023613503821514876171448426445619222878129572329537013516026741559390419890925762941414966770368281922500506073603841352116092677038317895911910518362327456595722646696980670819342612719210553717572552230745178628830282977378842609502279751034662959605750274946770643920138684451891934883081503400372797857249682018259919323504270862572091132094628652046494161259314766305345239088091410811697235790495085794133381696476796165443879948230330546637543216946427078221763488932800051322667103325555278602381920614455671007148585905917380306409804321358130675052707051800348763342185297392827093017425603114375683210538478385934726805483549155090170824479838353331491832624865364797943829293981024948575954497097326774520235473039504868987792247227238510025459035445778966476783944027499706281076750754735627779042469256107764981974225778812204715306046477308978599381088322129613741800419390029445987850667115645976763857354523432458850086496018782422921112436088911265140899553129431340593302584568880115715444677595646740705642959017536781436981375963066370441846243972789074436573275636691200827806559811288831768536514411764943706614884546483151488171220926693635909777134028485056993803860532716444862801906377455203015750101176005861198506992861812441288143606414013818013571230515000943574241784801626415784385569735063676703788332456763790331845931949232834998393192237679863585193335316536587970542152685426231981515122449187200256571696999714043172051129207708291877131140282346884568760627939754467080908482369919451287356223747799050696653747541507630733524773472082842132713104547826086592391614470263554382649969665773367675544078939844636755278737769715716116233715615209737263824460126882415462209891695494702502919607869616794013258073299297366192887830437622151139768645442867657440428336061797860038367319158894444105794000494292982937451593646075537306925536533682617785616824637967958370765216822117466981864783581600732738987747014642248935476730079250482428869904971991425062654482228848436393753763957378454256102279907723928756020594704513144030861494231051311429635346839670753941026381664987956718088629447715649664482950455624000866429898359651990233153646133885917666384421050970849289166440289362009399121277443139560100810835549547954560420052708608911004843483329892986286234615740422027660734071303376597555202163101377285452335483937246281008490039573482084501302010372180144071116214364355844842739395486067936624012340935567347558620255953190660704393197414180959776727330390640838760276605037675140073178908420370667373556620186704157804971414531203982474819620050349883177263262049594730002467793559491055832138879497635170643273646293920756525591418490047655508998774331987116790532602295140054481175863042250555705222071358456308842631460970726740797521989072420009346675082050671621981641365320823143446336750487000079488553146150410676380737376528041027653130430900520881922111137890623299158606625873339340111987553631636214871359184973827545145841915810547812637776458672612258861654363031903610836495026763436910337498502615042592819532811322652537831230702172704073743276183105446150624774958468716084404740420115496783157172612964050369783988003176072901818020260163827124891306112382589254148042846321094463351666993836032789858906775516345177707737898344304720779291261559014043405530926251878699494797327297521124143383503445812349373334343396158053770096737575284179434125797824241917817911957456158353654560990922650174351182426549960596076169600504633767545953311350418255248363995510807488783689546266112966690139262543781663712091663049222666078938286991173028129282906424841566346183156267541214214950182556730901540807419652239137390548795061909344879121470921502547423725142907219290038335792408109341799017963440054839921302014455325691275622393840261720054214621813886224701554651870810593093602541565521514078013623048672194119761596253981846735957869239357051534095268123395640958802039842956154163327654708528820076377759580875477649585752358405091397533299339120446043138706062009118921252244098690485173651858433684179824733626199609101569463998175955238940190866073932838085070422844370187339857390443119372853496321220943638657888403021967031878226900075627440484943799552827946900989654633125540539623042328876788138947162185317129898784957437789109208315739277149481244740207121649098551953066215706798412436450119073546194043564348719704810465784234504659589427716799164320329110580234027324904698077192230488167155025453409408272123793081286028542041195593277474320369466793554884635718628214161822130346527230673462443121808116338644196686925061880483417294461768437371076563539040789273720613561541820417182096697409296801635594510302186606416173660655410182981521752751637927049820389489156630426236219475283747364172942399535946342260120175997314984244959655807189695959940553103981752073132397312302396127302248761860808092355887852308993133556168414693113047516491276687845662010582591739491606217369997140702089404765915465694992526388851739205903397159379546399129304487741518032639948406021508392232550580517916653116071709614704403852066697037956026141586734569490925204249632305920726628452393319977328615903053056861216484157141876074416358441531322347032051379748606241064973806436831524967416152512030110411031512299558299390958734078831677596563234512539493000981764475917615012847540253222610725759332827889032562165838129899139863468142821902202591129168197477060818148771910495305531395689472786314947134016342380832380129820679724463073406729868728702869743468856442799760649438694782608364718550527944480078963934423186064875616881751679335373325716093154705388305335078149243480131917361985459938863955215806318578699804349873899959603270063736308180771586340591761106629755643293316755624758587943759821924013004834835745614366397528070188208162908594800914167473014070077323588828302463047057421277239681563103040832599918660169013921250685424101451924619250913312906827080592174219213651087986674597142895400930804912025055415745122452396552781501533348875281971993378351244669751507712972667015992274317366762430388998801124243686006415377835081690586915636517148500104672700801544665979988525858222302048567664495709729612140847501886406463141469973509767450583638543607716828008090133538093912639970859771094656101137012892740333683551304558888267229183690169358491528752034102185184072371458297825081512394732961881325914516295018176919446900455084824571531309518652533639259306320194096174048361285041016610431605849945658291666669026223876342981528317841857297402291366859462108826711945319693324793665909607112338126476521332470583734893886587756947844327978386181075415331904862415058272424261005128887857660757281079491690248125874756966146850450321813672641752152444708467470341894608165777698680296837647699246632930367512130475189695185661116652221762706114966547930971901311571470352616449835176632921325427212197566968096298380565000731497531893345594841007184479276358879290523749312423027223545298703855582372145336681935970864763066147810258378455090561372301690785707373669750024533967804270914338852487184327070350077668315334736992502364515482473110981907147717382264609736965629990642579064333250605525598642698330731612836403537785230254171376955214827632946710348410136237944262159940665278362142398438377787992029967306776206674272768899645520795707667277557425150776599119601163955248245866276201634685127341271345213564212312334395916931192079009319333176506592210502164842617791050288399301647253964136532993538826427736162037271091995569601818419292085816558760351902344845482254345242071307865456479619531752121411814952726371257282127765686852129948589652896233316757476184384612970147850623413614910608193556822295632226349543950926583365604356727469513971112082593031516391373691547663770046964161167117123451707569531472618064428581078347221998921713694634442080023779946988032921976405078740537774322686097975634502667570354378037405381235603966914946847713450785558595651507761943599776526647294428197364055172569379050380299743867344042951461055880727543887411165771714555790780123674157392934785601213598796618708265510062600723333034957667885930249564560063317191627277041046774477237885691126633483578770368354473357567472606436256121429588125939708297094035688585273641975054743541663235049430140158072959840304027603245864284301968942679026266943139154550433923834274983646660817620623575164462113794841478455617665398182055650823940398646920309245682030103817820893651109437284520546250900026371818828515582685075025380083060760979412883746704866132081430289083609221638771937273720894575433353246932368226867151458656625537838721888864435499020457524786647736517978818184009320620802615214844494729704561991721523576460118914884526004282833971712477660373975196134894755562765059845357775231655875918171162027661142163501731758263848948817788570314883443252611973768397121873778093265573824243258632718973624313951591434007955721940732377099688734313773793976541125232480391700478769243694779347284943851962433302351201921048723903759903238433743025318496702348973484647483424766474794806683239835205943599841801178796137591169804593495141178238009993182996372139515998544587065587329814718716579333916491741273982983891919102623932104963578424019377333439332496807697543884105595133623492898419319374353874722467015480832440097158448213455702915242813142538860000954100975926524884628431053364214168488437667573603042764687718052402196016033520250836487825641276793703001016600944643371938106820179616391627926756420438575152245150849457201869098309493896870239209466482805761641692402282742573737811464679159589076002815923615079524908798232387362553689243484256542330059030218693354332693866871500665218169597942422325223721565589550615625555142019608708408429513849533395969655299055643518076508881111860334857058872712584455924256753572919664229398570601402383611172197547650302365060539255834126563942606823892291852367319256728687903528772563608080723936678219646973372360642879171190627845901312378973104881379152653500121295336356939660688831658634270905366500510398570386309739889661839047724872547160949124139939576885175689471191631221941516207795097961585728098273025518786853330841507877474497699660350974394093359765134203472096804500531381908732094346385565737716792111018218796086606787053579092589785077612415684385161140595873104147205099716068662090119922052610156457352208083428973368529911038632064467791401315393626686062728257223215895847454278346047479495684728181533909533061858532921267474043437755438506229597037307649877408828911828904942189357495412701837915974936767522428685431851197583363999394478135171302506702136852500520940507693368189551802457365805199002803035990751377147254501543978893978644909071585443919358249560332470210770848757949256016508890510989494908753653600847275867770241224556596971087450852935288847592418626980358931315298824575601259795450592099320673487422867341715118838165978716214461198918930695996158288016022217421798202233691733178138892352706167297678710605330539726973493900677817909922186239267392265531820094163747950266517632533018319054323185648273870195880997457193698797277603365700594611782424525703112387046577557316706055419511606755605363150954286305476566292106606093920127373364683586234423266536469700332596384004261409370990400240761164890633344237745480905302265558188575202822702262905718748933393925685991017498830872411189479806153474167040665596237636808874494985301820420429058901346562070476878509378508184389700378188434457338397669100147506034859668348744074496685997222519880210344645703245175725108168399534103788462141659111433066988598168875442286004161006401998705677248127431138112762565212832296888289544298479870498100939138758542764039947365223699473299948042526918452194243558693607383080355190911173966557785658868920180483496805140956614468093085704650954116308169082896720750323937043128566756498311378576268849186833012856914725541150282590978682582445970621572709317801647379094025192949725446258583379434782701599376509567321104708092841928311536565980736476966690000328025746654842935065519648656830177292100243599423086440582244809051233923047487952584976495261285918265920121209680920254530660734859907588014701166183768001526261566460739952452787513555484656419548500557471349647272016728969370417184456641804526377808620893226614976835570605225121633598680110693524616199719699786195888689513648651089873923357109297960761952750319414764015690649253056542540105315040875766192851493110702300337057748131688937260397926331267673514956985938995664267949770336757022670332369079313362794932961637589812929553854614424899108194674096140450404330090797895250957758772006974903525001588199364306673166092686343610394338477362272294325994931502031460233364483107292042690313615293413755762974821148571308475859840687508192270518488322506211576415836047958157583212086158681191851664979372163514486897085488419020209145027411081244212889586142047987034034469909836663961733374682374495178720006665045899918410518749930917526186529652607306566100169155047211955093523893429784566684894907861792420208371865461550302827446809371318347943093182920088545993437423427047907606923526322388115486883463240441723014604988799077890689765614379645052961326725729309754264420013285704742475236275934482639325609679801623268510455533478185666705470411041008226877774696928324888399053988774092743496960274353561084907711437665751007643754047310869030208615505441970516373235297775926952607537253733339088731784521922777733638839124224571739351375737664988398795496839797380487937369723950398595960320730481844621653857966530923618580407472712484304469781222964937450451004168491467894589193222996584064550937387957491781404632256137363937626109690468726059260627914814017508342037588636715391457317886224998609232546742935677658153532060718235625278617683405214140617707286330718854087895943127624008596000977766224239168644953809251747901418019292940535595916967979176628226303734789176781348063875141995232000549025848286821253239799033387809315295463467786041591430509961368503822644140721554174283365638223833988449709486463541991599342272818695285977639642742332596719337147329804957303211548683782115160625359920492753510728140389973328949037974246389084349827772228280910238296748622755624513948569231073851129417806236474173562680745018362360820156979974447192064887069036208397204250371478288891379396460901561566484819835859620923543942209195654985112880718274297479611490120913360250393837813039355423401959711864510852255043148747120440935288717853024027004139975525055029890938399609882128936582783597697448128834563691525366657147549782440989929836127885483860359060942435342819393720363705491239904243648141056606657171727297010339818422526807789660534329932082656355386529780288922248618262465740154790457480947160813075180823993424231868782094262118695658693293321403746727156891356368928436954881992901224977420898826559275142133437181489829816649834201154196068738899553572900257671639025249754788300403684016474849231169637611878216623278175176452789501217325114019883189243613337137938243464912205534373974195101550540631281323294149497482780267522505693778745011572101163699580123129697093255609787989151972288847217588857468650705635244363207995304256970304986493553123971700372657925927148844274599431722871679709921152108379500080028244012570137332130902176017018946018018421981785063627946541119916445307994428470654178603353578588020944405094007076205530861358426268172450988001828814809752173503254053968704501425947137385029548044334759271371799264530931673742325494142054729092921588521894555678320883379372752734530587708033037510263462388353250987420285150484600288231353107528254811237960204674371238888150222490010290661511160762833576893777154658546206876537218532083316941269821241871147548823993500779116624081652758657457120327205628585738111295947936477718776635488884757748958913106633445166078359609955515129490387769282111432505825990121846437691240018067590009379935363046229146601639849347059453499702546856043690120419425243361322235459540723858598646918534026752403848277665315683170810216091312152850098744641531186861482785079696677144162662457491048166004479990776506936231382645348664531406636866213866831818859046118492114732284168773986496133410445418195136601190678364975455844256545310328893073775678757380218197399261513060061517843292888165182499203867773593258803910849954144673973601045422317883782091711377394825006274239848131755080834314422032310317581988221530981374557550187612278070433995714449531042740077926372100354048921010364457906070139092968808069398339946742615804815514333249221154471464940414350756280806105572456020768338968303096676540961656724673138281772245830075833269605088128509380016963638722484522146600859687039975621958851486969067037057136010834886218738460201368869125254699685241270764167698067027040730175337581758655250599756824045339994418214799366908638080900079139536895675960361166856152862609221264782748049536812131323053563727499634209523555499131212648669976776838851986112216248998779452249672590932271526405604880749542339412924265445627561251889441827011470995308065155674791172435387568627708618685545378209363613375938734808824921540416351910769162648803342714078778861244286513242455185675093303029599538289112118809549786796478072237862785036114099139281304868176550177218806897312323399660038422686239967150671911309463760212246866612623870870269943132160282980784292776625220248319597047470627453268922291860052293846649520828407606904650214082101957901642131068109824708994534882696077924743355972929998958923917227893342120983146486103360730649636966919415857314240254927802257225985758867166601601259194456622747302293066986502756622024992055239130573812439461614640554638127580925074822898746274126428647364738773549878789021399104489909939619754701484380982532442621314057897187153212387887892698791558860026532778331745585147998976801642789375886158008441293391008027668996344388070544942424502078619004624481769941961648614205575790759195524749931935193975955154016487461352805685328794910187384350681339571035776668099146030003192686684857471010193109266389898242931590059570292232249564021866936352058291513866726196869316096500235803698568235756032604787835340425069726240121516492123268048295986501289833207871454326644658693431663808261159315940642855576271140652270128497895124294142209782650816292646082498947932596830992238955861963162615390814810089247909259845561058715974001827885148746846639779293805120264691521192967048233737630642765246214308862765963714013344694663474779707679344909850871686491638962601736050520370451502940390552021667377006093350973720006424624339694110501726916142359570530520980326408765930588183785424620610433583178747077244081421184142473895359845836963199195375542803099153175007576141197476601212003930061445044168820185294442788944528080598632171605373548424855857653647655570631973938163938130422993104883198734789925501241718159971217787885183374478409460189482371261137361130888928676655072896104131166236256081400548667411979121066684706446410706300826573609785050469609603293992039484607512073412822966867568116347962342120885212993652163963095711140648489840271171522070441571362105475941709219050459039003780324540274126890450502847235296378738068336317980574177396564725507185192424842773200564791631953635632208625607374119031809022826911084331526678521366494422898628328397811394953491613226802719396073052062050617007655201617152392234096658147761725827930337836912912614734542259529108120825843820564481013256998886818109024938877471130425613227257642688637997301957891046690941467257261404906222711995862217841911117493295478814301192639910045938803520945826692780914805466089040730629808065611940775661779719957034851173111551979736080355336976920117749888764535308827999831728945877846490258667741801319762914719735553566903086418881270873312571612306936453146896880997941145473942352135677517140241115347183728051021607971552611121142298940665558286449515087889618113290092737094484302088653554912189467039617967890954535920273009559014478366647501182851068278451090955494312364734360317429045372006603038193183612038924599699510392731696751398796590707344801388702413209597562338811042483058863111229584341119062793159807558186025364240501428724437774805691637801817967568688070304000611695015392320054477369649589072999812042425874389216774839879469939613189230300949616138819809170007082706686293554061178475576371165877143561430081292183024069312040477576388794922977096106459052435383993090522848012834442708494499705000265902866832293063585057190376657586092695012760547837896857225958711881452207646921470836188163597570439548054591843477687060812140313634960560548334466859553889915582794051721629319965462861527176844327437583254334980946990657658863674682905297335924363485447888326202694382133775101576542187922558510590785588205915160228643965622624066346746519817952940905812057598391878484317208174244821520479300529605435693578487523181538090317035123304057812203169573601978921164122616267752285237712600590100817328708311424863935859520531020911637306907465357300174115272655000714942024365482545466883471180534209401196430062835195362197255100519147367194396906277260003400276206914464526853104736806363325491524751381731932581485055957868826807567157465658103474822439483973141253499946713668136088605568807406026938543204354816019660544977519130238134049152686430190878364112137591114028300897033814661848123838755762715629660091827786484258448412839973908085640729397911787167394596698619164644753630526272211398521195550588412169542354542011096678863284992482875747469680231245593230960904728379128136803254183463380039572019498690874315811599446923530802708070384951575629405400294529190918692617422430821856566992439046415650832681862007070108345727180253288865363392977569604434634425238783895701483869207887180348798486280543070598670337012894913000209045012238473565335062836768436669041555261584868971879674498684819181490306119235043648024822001665199786420831149841918644660993397798685864693319674388193785755794904175907648155726208043272736887216892268840413039024459229262252968864217807525288277640257510318678910354232069932635541300601654009010504848621356167962105997642085292217285926878057176470629548861933120015494188680385850101528283121994292684819773359180837186067968118181946579905777551875345116438099651022940423223308437696393815802384411019525572626183262114595307691331042838356146903612725406463129184774125489608341212871654372506560002495953989186126921861659713492018186747438235604318376012787969352304626335193043844787440818083760793394877107745641126017045297167508073801382471499595105604672501653909680877334939900511597336020126705157532526798355762449986279658540214930333613919165185584195810624176047994055279297450064597839328910903509420259725840780142597100823227112767306784865085026769199102349419515849545320784004794843598750270031213380699387389332505945055271937795487164135847387228299703553025260284632681074635761539685777631705205933338139173939294858827631153707479092552354739104991417734832658402582400829793608908512861903702288598636172772065203748666426071858514649320791263105189756290705228122860241105795631831494484494624987886386103687786671854693563165084402490480156693759462443357755281071475064718080314518658261516626705439671226660444122896176468010070521349573834463961931612719781933658687202038719567330018946561241280998994495057454410441457325854504661852235812601428878852249384765784893229916854969128390435838146445728782403449814617143466853239028103005700969689414373762724724687652929740998517107991100033899051677233815645230079859383588479212954158446162504273987222216360416773396474945562994973617693865753151108383569485173819837326148965083915320254796198088320521665560333507462897335912475164138578070257906579955029447768126915251471335316682312599790294434459030467977331503403061536171384630135030619322290564946442771114598113726693561554314129078308547005852060981279423825401829714053952124591430437384963237688101204589956370755420737605981701710594312729964399367087326993629055540750760259298189624830343505124640431948982147557157334361162904079412179793664952417527972822079385630640759578129300863313115384590887489462264026424754688836362481858480033947414034501303170207429819870238166944617913425796272131648232565723965554526156602784378350498193799479108247784349135360604811305179423404935401989387026655389176454735606712398048756652335218967863367193062699877219270318056030564555409098451403828245027705558178301693412918694227898494075762626766638762511625566266240447967128692222824691721060177168557238494454027168753792981957456995720487639150356793179283809808681234011869146617643584793600442844638506892128444921673866630310746898928566722644823026467864189785482773650761433879204122671165298924413491965887674820662050237948589664764317885259902620369700760554332270383596968981115569089801601707448923702557622686517593893870905465432162539608689068455858525462507377600409592982664746712777105277219856656095246098695120308974641655528443893419950924968345278201730627121079007013760126405464284573244484073771279895803851216282309494443090473585339089900947495856346326479530173486016906072705680798350867419741234839926562170903099735068797904894005057648667310032224163102385252849301177196753508260000871681942247766160635180906501021298876594451487027130294736522537872206676742582342029029470196098089263670194815360423894317803342494301220260008704514059789446043839779650301409669619726007491987210400185111811017894844264093339996744082480736535772951815755540117008559815328224571452484420654562195668808457610828201918810677537222370185211668480708922571192301347050577755433122832293511828903893768359474501694718783595492193227525581789089494753355461374615216662193056610598981761963868158509200428061573747593405323387600178715530696554600161502193940285144192274082381536908615678901083506554432137088824978287815015114989141348237645245682048423179910569412156099870815979634576351702420921696065959846467208719399332809687643112920931281832156173099969136967810810666900986388548759671968706803801819718109037467096862641749592905730770617140322957731338829458285235505316306890866443634884614591645178510452652052310802636295509792806225932221209743802088325238841237341359458210787210583147486517468765824806334091344268569315136695287112712512718116293194823025992037877036705139074016135662480724094537504788678103261578191912782792470105913123921228635021679188973022624623144996599443848678874358534559862380114877880719232300015689328028522126728426624008511533813547041885668578452500945445808576332628963268972860076853822665683492488638155970513890101876948079722128954484474449954895228760633354109660964226892706162347082204491818873432024948701660225948788047241523227513063895222319646547488091194593258487182182046277496151602659084565346708732112043192509216649044945612467453694039731290794185687386214766441842314456304865414665910719311804351893562384470999670457417453234802404455470359480507453972344778046178211057033147992051396656181632165241236995709228317523400121586664240892556695425990673479218841554352050838311621464506612793905719363967936711059444396673174208975134661097617865444596253986714601609533197590663332441197823031972765007574619803999886632213274803243723824580748812161151816845134445188380175467075341894937665648737724251861681774508322612212699776490295537560197132615001122450780565450209129522009831449495295026077162871641450981890246295982846049666225769611911274659915980584692293552179517070997515326916564962893296532523704996518627289326623714274029722290385448646784119297988936565832928749895735480263975819259262528858925848270472805449376988946131270387822852995755041765462117163582197564589429836502318911194168188010842143846074279057199582506905202792223693547182392915002233195352659333146362983249611436454160705990265683826781927529119936113225583160407247306496349396568371302085992154097332289944628133828652855834071258334734465189879849500906974160754224300263563627715811677682074013899486813201861187295479274385890547395811323584706153902027635964358123345336786126866566091154239940891810189617861610499561752232280416674193845623724682400863643461094061383686739567325238746823942631637658321438872624361690378488729314824407401255972947055116401214573903426455581755211601670171263526917543134184235491514496530248131971117818942387411260241837208260314902872793845322254494098032258005079786926363822021856031240165056801660501928890385110400590735409762747984332364055731288838145726647605453569526271502799981160578527556734357444196548064263191670324271691856540194967160914226264139573989464552617418978764691939433999082847338467293079329554804574242434479016673359046625592183605354018843368563529478662390122667820353903898348510221723792814154169100656218622077701809437631834985642704514420119170603536077209372646580220703156296107968194598054788524532607030432901794561438319822015924991582661754563915499555637033757351543194579259022307965332369395915917962606344458534768048703194961246536580490818187166632316133049204646799433890648721848350495052067177184150778409555314655323397093122067225788190651993119988974494267773292790934509139981324026169147562320295594747082902079284663185014598774278694404709062697206079058265235785046319727156402455829190586536850439253218199793344409415810336225417437926558820999447558559100631351266970852378719141982160993594758942665653345581752224929188097222551346484295210974522955036866247894955060933771685364011512689051795949577503901729879660667807949507465198432908777166935726213725623500757641277309994316248288579684311694065071650207381899086879999844159902332825241846885965659471945617023714448532565305319427723605247074262119931864595794715557224482924949095760598395453651328307672566543816458678427481112292830073831422113125595035215477941000333484325820195425713288584866903179136191464226446292056431749222711941616923024572818175211605140357257043971167921627394605714546816955355827489584518086053276765300004239108610013254786313748263230401196977240588448073380613080238892339631597498906077768501550314499374134162767563589596399216222215862683906479554396813214152835865232266836086782172172076694423929292856506669425991823753026897272332995039199801986543705613503585645703358412075717448214140535665764543816718915005101752363848930828027230898481291519954051445568055965158229866626694271074632467130737899949674978500987234208570498952154739065178273171770803167356444770562959166878239315520841068106214332058217987385175718897887956349468904177826208912955628402188958168026291863215829966350886181821876910473873703746328499424960919742592821700828824191764731715169505808771030138331621957359492933931059790126698232595361207595946748908021514044432833717408915075706552998665384425005105925381849461706569219831246934035792861544690051967079307700414563807180477019171577106039142265600488401396305117040357214792902031923469555623145440136478639361372773886500892569588709334964722500426752349309648713749397991005892353826548240173745875281280118152683716654399651724937268345106685939338036553749148402309045534030697925864397187348144102555084882140290509779613716693385901214048093937285446265273308236236129412187625068141699109806835668770574631304158163304490179010059816674540577662318699122464694117775226451806720756308587301439855619872873104942410034772310831153750988946988602830688800007595796153421927855240424850389763001612202131996339178169242049614875904012330214092931840623440048548344677024001785854035181054193526242096191391439093160965126917700980596268307497258736059271683711006231196707924705011495560112810511415004600823490241048896195935612398499940894495266081018037968694877977460848267587474313452417064693754135950781943030428833594418993994320448591184647218152615752946541174896387141282346640145204690781618299101777269929260194605524616514113498621321802597843280466825031298256969200806932130934149525365039167621659353030773848156225624909024075935204411570617323330750391199219373524247549592002802809711424827157925875751639666921876604396814044692775374351850825202982573785875379995390215130316946183069684257597173943357071900605915080544538015030576623131765614508089577097387796804587731669146229780035107449560886012603200720381710328029777090816594776562709374653940439010520292816026814422080839918598839323192873500024194772466455535983565974812360303377169224350847496403816207947521271124569844839879741545684127261299564646960132388832954208256962293347627028787469749482895731212430829796216725007534764375045898019824017983981723860659888906722184406707012656820491116255631692028768303878362452254656325317936461197253332455602526295885643601673693548747149650543897436348447913342694641446328205566211767551253008499115803327456905796780450399024904505354116002883615297547565308045044801529319143111901292513602495083637472337690006686687385807846345608648280322636805590980214967595214926971378539941421149469743412518787270302416304908125510053378804863979973096509070825162297381323072485951583533431758566863422891500875655577611208379368712113777590930292875151369606180893522838728544295441825266121590974063463396287929836630526531718400805447068598620651004720994788295696947794739570177950098457791228607497798880825107518934441583146852774435913636420543494459015950040967313304572178809264840907959739391964253618306668093471125035732565450180520515066736597003454321335668084450162460912187999542075100142261521779930827700172402726234883739189497796102038401181911314251173458157792783713543084914615513007060995217478380356343293925247871142541906453772960257741658017611550373626680355469994880312791873367895806958065627180796511510350772706733411909041796101556955044571852769503119673639410535049192933894581723585862483602681365943093945716477956154417066769394072508439577187603893623879524347286046347617523336447843230563284362693431706864025569066100999383582001861915371635288440575572688437468780074770931974498526607070793019534901332653518220327615579448161571803353400133061751456994412808065848448527101278651381458122127999052078979858150651319682998076546659927392409846243391207764613223821002050682904677795335789456360809523476175059605941351370075548197278454173628946790227894126096097030629247151144313159686708384538355702190345409071294113351617102892169847923093425741686255807958732429666624588924347187664509268252578832654865708882093796438392356497608293184923014309044939550252658567680787919270941794370587196177428326104734003209972345639981842862294301358031864931381713107348703224170095680206373357545894070117503061981138945343209655482127710151198962729804251378443091822662972305886776962364052931705601866367788737291461257136812582999317978084218487226490539009147849146463314192279899293196593538393906049753448962426668562928880651391101254292103774844885107958284337324038985688075078339311536977570139508535672697035899035708603501624487914676384129994351735639265211499481497080593577299334134522247661000589103954515939646030068787365051139434043007313616571763694020350069843534518741071933022570850416852221391497790422584407800696012924405326235187837380776165094624089197535406455660825878165377530315647867736536393686064503546461290942776731492921856505285062062592670802327646821969438898757263344871509575422195786883397741430403283846173032829152099833377962952541850098460143132966935862645054809502556062692016669144361072704295728958624338250503106470048965178568883178279867286728961374170403680891545610386382797889164011546110140083026650466172079959659553807255264220091283434929967600698382596859935126588286233100806297300927436315252420628858734891597639639371158574420550254965440352479114927987510018583611972012352335601202399049012267370332319376734728790739143345631417439214334432305858493093382630498095899123347164294682541490642290999718636240427968311040759399138157681102725935779849105886533033622521513734905530880588988660318552752849881404653214568899470938320552920748167370272629963539001420958738989956912512632141941794107147082871332774170512841887109842766462355127808539652460859625112176485785544407192443115207454464685899844352722506521055716183686110910364818424211636865522241227213589070432828538103923666604172387920221958068255120920217784173704878714342846996650449925565387265177782015695623512132041277450788742375464112317334284748294253788136555815123175764475655472444350053353281633815357466667377257492924701450509958511890163782344909293868750947352588784597455702233212589763125986127583086550424666775075953849235540524001164420375819988516199469760808201903866653275269029910572874855718241206318097442111389531207617552737323847602836770685828512564977518652281082642719444965554394785590098371071001560940247914043549510093234580463096587240603789814449868281367366033887136435267899500871107011364429700491008946616754261221263209300279235373646854498056510876831100444051610814337820752151791050050967758715872114622068700052630152586004299893332315599701272397330712821353397977752993524378625317413486018625165310980227993736097331427205320207959980962995474646179229788411023185817157556619734847285165127066369872165289425556987325825906833350228891895999192710241587352422742498513224992862337673453283446307729508500204764525253918547906750931572837537408762128204407188774423289595106496619622465759916772994737255998972467696924546123897843906055103841316443108569664003419560304612564682433981370811384599528619065451784587874352747168326574479825566874536290954562652784195737054027989429180383525499958581071056962075283231743168905516792710340387514934945710784280503463403454660665850349200931350971018181966907555501794887393134013856110265957060501699529894331935466073912144103386731027319186626108437430734894269638926311381384144870880785968935831782860100594806777604210253045782019605578778211298514090959165439216758956335285099063248760226984616372236545084686518218568233063921088590528297699231349601771384573963651337862931090382340602394582073777757573431416102742961358116026226934968808329243161274066447562764495127308831631381237048269682060954016357012367173887159415538997822372799556330055572182777695241065337977864392406769796510111905788636062854917573395834633706522698319139017938843661874258268666423275722361694593965842828621133988861054163610071325179829833446721518181213360116356536923304820334709023403977386856043384615226303410894833977583529411374366422964462982943007446357224641095580559611665540401488801956395021900587833266587252913254847464028803401889264628354372906392412733057222066388196139711813079309966997202785146589567931046413312484804861416686843828972556331104487768108159526661348101893727679384733806870320166029896836646898733988185385369982081615828840553569771821604347175984284570337386827942931831323399530101342619257557740825252645914147606281621954397825242013622789673434544548112443731249382982193395000264791410066809380834438118317688545267316487631378252315499469997785252859473591921403814752784136263783428652232680363674199241999999253614593106218147652806874275674538111575233699796246786377315878376409335604023657814649322969144188821284832176840885746073498921324330520209698891430339024707708302457596541513541431373463934496702120749796844871719714994692740643414172614145436577176534723286878300402775429880257068078407202221878743989494578375214831497619468192951150365806407687030042319185844887697046488758597771700039682573260041671382484196829156115148749562893407410280813584921756441874202133928962633620265196424112466167786695678350078803500456426994536880935985539008554349518864541509743563659204420621462228185113353724425557052543249060614209176816545933133528730470619956729508269799171684503795934310875505217174266344553495735179876180857939627872887369933691927524167330850575297305799348180848464845395162684506724433038958821512057907399740550053710842546102843654285279505278866904980360427762838942540876821707090420972300708173639206591932601330389065047224339198055118197504055633133109478857304020920469831896831488015151255457902077186564784731364438677978490326178713295701025823076760932641310805489002168640058545855959368090996150180605861560980822014761437129696175320599820601376801281842306346303110975649811451673207576824173377181326446253905774006591383565746826181399512454293939236598105838042988237904409790483912413265234913903334790261241468205150503505892259834614821991407505553937804973083372355198756999516900909943089468270238194929242596261643873433630622270406217193007779621308126933464806377785958961379067857973483452472452550004297344584219568571694464770472166709511395331062490207362216963657610571731316342033266024341671744996252741502332714003543303029011558239371363460733802160136390917342936082060635581852296769775483228557625066911864751417906104312857067624959042116154562109912954809146754687779061497833685859031394501828105009218494302201859286454215457342806306860771364001911791423600931239611053507304175901688159391980479187779248154721791700498685749372412756068817479705671242256960212350802271059041750501409584399445483402998581723073027869889388744205639396287645233020582874371808630812657291640081758960588519144174890010291170145402859058736731250742076177980540716959618179045905616150409145585942752015024670123018830918276012540229837562221326154104190188184813939710107821518361375594212208541694938773579540193450305398107888055346320407908997345173560357327053520738779792680641487934074461921441196895968118850358336972892781647876097560005913377468180111802435689637683550292734714626185962753322545757764515865878041744860053319760699015698979632972494724332043535329239591280584651532029682830485990952216168065609341536494532137310393284861327753313594248333650463298605107935547429435134461058504480403062318913303456347182380911659548972611230425353162171312046941584551065973814875911073088122949474692712868247085941040482126154916623071132412042762099899510613749784345197854208146472618824433170368946029472719589177995087103161986532411222609301638410509379734028366499926817196042968793964437551868395567524430066004889447881078525875411572984373174602759745092474811719214605642610153815097450991584596709002067084663760280548830096989777839421634965155736614046127994297736235311180628173768038938127122636385306278153178865986955782765728235224308690013484535583600926719094920717492406138711602241450093860840760980927243080008280766668534981382737059895930010078515410912840513049579335907170720226884032118347721891561341628725959917743149738239589524951527795201430784412409015461290080413918354104818750056919930982289899389376516647401251208416972497115165345023230204892907617717547827752511979766543804367524432778573663123612734290128740549601711617257340810090070972705449585541845522500116805811955624312223722323192664679383782185963713242852969673491552702456576561383370799018037345742030209262342180977434425558706396026513490200634924488298888057052330131418237411905991067409041381096753416929793727743305367846764916667960881353506574471235403400990504598567804929246160278989492519339597496502498943704344525549256834774951557496541211363011211281510392726169649698443300690326298191397509904384314304233519987163643191798779910938945540067644311156538995797700176366866508752413427121181513954687543688876726223562609038709764526433330286506419248857238033122520901567982338423649902716460801046538186962998993045875258117366284336135358131144811515983985622986827192677831531564478820749720685700168420527386865450871330833911200508828867025346552636859593147775792138497354244947594520860231545703311505757987819796691726107726627779547882011870346370418939935867235540479143926585391291720886720795095750312462958296306044383670289908677124704633968450776968823159500869662197218739277577184526868439815181512635713901361444957765206932181102343160316200023498687005020240611311933824358239405755574549557472177293441824064515269530291713587250100093522463884395351669566213910685473720033935335865831965616065087216627917228346337052705213003079013142375236152008432911084431097501359442770632183475117804112556551256070291765213815216131105571138338988487134411515038675797118056616907358708267103920627019894151994344970440987229960931583189489109444357743220436404450552420041933374455758235244023660936632491029708282435512551077112951249612190747557671163760899373605141070826522629199908474707676377587300358409503439599572192329216725080980361883252802599317786371193476553428718303776922676225584223467198687043049136009377098396963495966666271004118702883631340731398920678861973071202717196679431360977255783110648482377860504457366899042163938498497048741481182054692404427602571576083798926452399627521323305451266377827092552319937422323666964254917904088390925893968310381113040601942040233036186706504793870760532800261840274992526243051095778688527367876970230133552476633449066032833493423258148381156995459091248893150605205605577995551216986821435792936570612293111434275549400592843190232913509162265825039446434970322823301931773635632050200071330397712892357797869680191177802706816900631354373200820313499431034784971392872281052482293333948757812231317504911604039765273701075774204515132327094432394021020757467138126165732664690082469352479656639920654886096548609857289040964256528998750423236486265446305827869125078980737652451563466815646859703336853575891547671479630110358212079699487871890334179533598712473322604557093829147610325309705073996539448195122483751669036098516353559165280579018531867760813900236466084047729467624368832374583648891056165501372865057651183802794821758473462280406745074823291013210290762826528151767275685964357501712009124419504262298149642188227194905772711521940947655335940198460296755268981400856137751782604886772666109939857730485898250135545389757089913068081090010763431170611497699862416215690793281525439719632739936175262792499151566759955227016465621621550415215802554907179196282718965603135799196267595104750047076315032521514093453128394734311004819001691437006864891772726189728095530546738818452132748648526062348801655065581986223805978341569819431324162395948376059516609855931608814721478494180688187582241933100906631161912632445316581427155149139467424907491151272864050172701951590951380197020772366121565602121280234900272472526397022838562783965053748101944109874716206770700380069285676862625840858192077715892992684395334120332670331597124214555368199919295242272399045968429215183904970919113722304935328788623040377276059821790291226538486172239801126729489724999809031085167472442053609594740060209463949491841724493187722242252318201819169420735921167839681532422783178022991910388147473982831459705662578394899693962179526342131072124123506984409579784015545511621296111509211905486991481775980331987747541071483077962170333045265339119631505124897929439203373798658775599945683861602163069958007904458994695200424026492536730472392308028214616052535682322866814221095665412662649656730134458050656378637341514336117791325644303608958669203235817888860676685480285914136759505230471881386965902049824934043649191177417725725883962272051682359634753921278889012041535904488525497454430846928001132263248639657103286047785044856091656586520907992043680240588408277600319509779477143887283692297879698989121495380672432181037403375155470842951400859051799294489086590340055900923202961272094532879385139807286817134095448824544802547593542297928858514098493130336187915892755385974883263943208540930315682455509404803491780874264225653634668080251214339162777666148995550654443426948414362891401303813567466181521093588598488658498209828323154557804883945929628780418959768486287416432952225555511283327102090986675226730388740989765871802215919827818817139816464810886097568693177404686478679359800987700480636532660148152589551589608932335120676712424406090854832896555494772303281331986455723182627250588393477860647570684777469518502629414364524244475476570757960043136903943305426214059486770425125724978091553657889376584948654475754469836778180819688794805895472509527267121289588062694943749507783503872685653734908932034219328434574309626770235565416325767214612034762337833270787912116963904529095985534211385827453317294778083244721210388187858967559375187940845313731368224045640350401370362108031784631556350528487463393076896792917004768151133887173866299268865578061485215259701416646152026236087387378259120687963736039578666470796008855380273631539040845736706769870487604104705722848659080094539720104664146472146079564669309152760146963865333600999605152447417388044462371239453897065654534574366649091304737840396052784328158083288049524418459377529465942601680358237019461404454236349813308698197711350266951421453002974723486374463300711664105901826503642290308392239313517449325006280667509582810616344836375170988025459317309599722783158107202977365299158916670836638814677707044540356152179994480264129081345902100234617077794006812608515767738506218979439410552827234462319219383901405855442732339348747061603958169365830040696215596086074301956468002275410794066614605108113298590337051310007160685473081346149141335661262742851531970870828951470197597621291944869363552549969494699899818471455818840411571350481368336078175063599115310518732589080229697861412640921196713842705770404396494704085020400207149325141166829116035189700216399984206185382630871578825633439249592686402231707975194196105437308825927256506026286154003968480196321829945213545806573016153787210480692673730286037249453644652727708230275085478439363182056625970626933197864564577964919089909654142277953195543127284262560336591908775933516886566886910321975341598400593239788404317343898734461556723531553893609098774234259324172870566530770838098204393917956932371638761178385852535099505145348244025297385597415489486401891353432904738340270086946971085580230791580633571795434766232399698087157311777684988183993040744251687771556528050088173872508576543463261065982518677781904011727504283621667985972584079599978279192137601215705511370991369187312302706671844947072680327009314470302619384095080014415900286988020104628954291891071078269375507628080765872042134208857991669660175417118064471919564908532820444804110946285363690871663028077223979963641600966618452961738149369555141312423641499983668045956401846923576684357215797903400767543823110117121617180491358740182325950547328942984576963848255065282610822891192845190971963080320278098747053979298755470287945076872854337745220424561325629740023862553930949194239899161635337026863091865118525784802500901673563727098590807001631008206286660812507205217631346247971290371249956524236398129447125897527202890345612665983789581362930189203167145040856326520009068802832439356183115777629122950610279021795704724170975622302432268884523118005513640487471391351130591872926151215806136070119786971574681618306059587049169491091550046517168333356743551844412097594303508644296582043069335693716836682841863877159798747646527266740576147840067640974185362463417690857966855212699039312551606876484221891362403246202665630307919813338682345652605393271712867419405021832380896400006693456625270673421387950960532646873855846495169645871439326841760429188410919574634659328302228457561540527324486068988291292625979365621879290627844377972044085956024615767964931836546168317342096832368868343509890289049212028808852624037230749340194173700167349167666338858075758070915902219702401818353980377961039284058631152025175107120174025603047874868672746802537849189107582099442716269210642655219781767166274187192470995663415446562556210538982881282619742099762446307400279240126711092104181913754792621374912712980605243364920780701101327929748029163353854371932512621046529340743324937723420660933294825313158559174074804348448675934326918285136767946680851420617882607256776050523977280792196166010364398703575700277211712230774581562893157018904628361096980105053640738190498407642787926394541565063560378649078667622522467174807835976777780723359859632393937383246466053279384262135801177722550368217481179447804554916985677782874091757113759171748034798338642705256209477808171106405084944728318025779865475861893257209921251505269323162665430757509216862558600984204173831830706429439463635968460492693759724708238546944565321617636418323783347515317450419215734435996063971923679108534747572091827028937857309460239473301268768299155204172288241411434917204802512136985147656124760789882690409065176971968906808258356188398520176101917211208658745405084750162350838975107428673191136879624246171747028532997279728049191420039193421432526680670955462714186496018176466997761215038943040854079227086887404246839554400521016511237678781965978814584750690714298872324049757179470112667746201722466160593416964981162534182811109623586758112156302157079181926843754171231439384187828051857986687847869195333718235559148215453126995730647722808762645549891972043401885632304052602937199642770301132032042841112897593532318274192200594666111620584288678981211775212239748462754279765514513502565922603794480455426506350698250888713004543867461558235287051143200186696315572130107950757417122361862426686924909811993728447070293826306001603685060076373806768351054542093535440816763134481628736678406894425205684967568710741611011829426082599124836008602531439388309974436226727910361436045223865433768197645672622360522393781206791092805596043574443778437135149460405881081059961305816792337436158297498241545372530310871618153816694032589599807848037501291764063045150597347724299915064553830225289371225883182310286903615581703202859540580293259149276875204859651873056166998184472512931053498774023995471607743782819135421505297481206994943567374147099074108174452876742037508815884484349148133508353357813862267826215666530919314701692660947895898213417281069783805255283141361966090800739435800710640012685209689358458645738800086309618637653660073066801764478117603938139634379086129067035530346287039254274502551979412142468077423834972667628235495345051445171716642488326284212178078376083930144706018908445244355442657527837123838305145529153732287308896992378253482807440031378075454558626453214425335855757785224555217773565967145005983416643133944498182581806335732757510041857627755023950005170050621606152061392886417607980986205141406352646186494491529414249622557778867780085830734848168173477771375937294473329410763996158671641059554258462549270342127972036289617450223246705162515162122988771092870484159088728360324224344679940306806352908519388687995787810173497327177351209780783204526556761367190711613171409109935912589055233859624693892906261825151130514686618117294263570035520955063495246329580267080788422610887615552182433860096930818085819239370279468092631463450231306098808539836382938996429107343180301039902909048885015501787794945197662199566563571748449207532877570422753537999902011230733903953490836333216639110082881793580973286689618776318648838205414923494033980490596423699488748668329683594102207658202235863652889025262715252247653308889342544844469061674299514083032336429740390019871637694562751177426257857636099776908305592947640439792096522800583764094837486970583019179335725898823961541748659353003047107253170937694938566501763070421517671695192137543255739903172524299758983821793587703826560875072271606769203531720464319693248960030648433454714334722609758777504171071442091451855558771656506124847252974443662080373312393347672757597658580908118203491311724433898482677329966341344429908120665058936077416930537958003747073032688153764136851264192475575708391677811078307088792426416841725907030164523192846329024957944778722087583128327105452104035398850545167710264471709434535676870982016365770669073311014236924992207858626842709281253263702586283529755534648455612084613713731967881368430577057320489850241012742189775195649748824743465084207989229498245440463538085572625175176734285949596133206853155371476260918764161306177706815488404927667588420783779212467907637859773064404658570197908687603662819507229277490966624809228263264610875427411656242831464986750698974886734643495663508334672718444412218866713152269256398069669042646462721850647011266372906384579167801459422788326659796288584186806910358562313938042022151955925344694710712341289676417219738408909992407453018233905480598296215336707577678760192837686428032839395943731732358179166576360223004194741338510219315995684804143249385245706204397953807041271515271135041908207929845287085411334729819149770531568481170792208012674194524939136581171912263640376223411479929298311509088244352101001253294408639461974109589975707112686755517918071151839593639034944401338922314458512715364682538126297148765556709006792499781316335599888628522758919255702943045386044920803016676193292654811304687484938835810339886383398055866948868907405345971633772327041736302373351001496579137255625348159937047121559300383178964680721217326922198837768831223542979161067785297418196087908339289525612808336196343042481316523510492502072548400416325241880818743123353294892782287785829252044538776207589672387313367463812434029964836164980204343098658100871311720594838197703365699318692431699200269628315759523676132333608451942467827629502740214397818006105540402174731632737393276983008017209339039546943820724113541171211577261915063944073963782763404226989784316030054208235760930461880936711550403720870311679882150201493250224121959563719706037356237320181462338471650918617106308008492592688281008486863565597133667244090806589261817913614345182939967284099121941441646569340027322876320684564062330799521300504346706323556076214157706144350850381009067182994070879847863964671237323162837642982387473104669698646738555925685877655390815928167153301288888866578373180257249884934116582991381853631073113469616871939349517990803415324663714696203290304405964902639154083458239233702475565896966710363935273575089554361433518437652801023396594541107585580526940042538374587856149628487485927397570479936991440032232093240865663202306310789436447093668457179845861534298920432446504607827717759320618680655644392936194820009267199740839846237108291916628299959097017225593516309009910496822949519630542183303626148478384497360821489656407001503014491081644996231683695842138834299588134870350494241718762629080129474494809194654694390969208698077132681986214339606341412215832451192033115633406644877550834214817452663156474270539065513700474103071636890394716643155995118493459234133873272499099211900531380477396892484249763062478259347627619626409181328225222108340809327619256268428708739494403186518749911717943636696675778803374785947354558873763110393053787436144670529085769568717298049754010692950833823590391113001545553448385917036481445976382576276277895778667805699819625428938130269519162629727451246416451165074264358247473059327890130009226779451690565693533822581625064795941200322043506695223764137209697606182889832892694327250600302410695704168860118950604047331613485589439353310428660112315691716091770721908560699654567994808427210267555603556872346738563020212046877886103137148340794038083191349796716416444388871083125458013514949524537062562032367021065190992394897806569944913429054289544142182835178485955615478694359655528198673905069203983259421760344744542750095527247597473128155634731458810933841410431120363859719377102838966434213370632895101677527768349870048989634580348375836176592199578474909372236355848760959494932030254095829732889134066041655105322898755359664293851624812539707613355704760349048817536329787759152157256227690306039020121675587177679153431603247868454467375891196412316097809449801081032969435261178456794029921839126876396658924703021044278175033165362190453084000649599520122456020917026702951692693084910952795972670736042970007595453174747806737769042271787094815025459741995964146430452518877953429142398614903519148630877117664319164751988585824756763838930486460112454298179797660421630373861198487840982019385449315003980737098667454555969505774629786668576568567341620843420276240795787092673443186849841973909931007137088300603260627386746652545550839955433847926323628285793164470874738309618675415953390581724074166808661683002858137678972390504579216139917438412378145604883879576644835768486933075648258519126786106372189412503026727165470520416644655591701418112618488521274574287621297511248342082903476766326629989684653352870312236265311684727800394680297743913539312045051357253130600234677872749991326114152616678983997328428734398564539051629486879095166466123990836597781517111918174380532909908949742212544938421140382154450474215447680197255005013717874192921370594373178148352055897059664387621370911297820112523586456784143886909882124968169661100307860261338954042638270237469439596851124392606731391760501579156770077362882468970700772694927569704752740818144274092843765174592627406309441427603294924145797388313244136491892594041635671221145214488848886554518451281222034355196548817263734523945821017651892378133614921976403397214178217053699350606139256586833085551634681163817880939246338585551989561790580020790481554625748200457905370077533269543025999628572375390636149961326423238049418489305497461445609375123337886767587698763189994574481882148057649864243341813445832538138757193395861709036470272200936004952071103554761047630101012361467141965317126524934404322606990173061108147196028460949203858212491589918868853552484587931762466434125364879202947191001268430073599684250084494927882840775865629435678244515854650098020975717852220676952234209725006139592143512551985126094157994486038960518630707590789575398179615432604840455744989353642913231718107751617412967612996546231944819434377443476122764986787596751931064686291374346421419466721215889265130307257103536717626729204283479604324134515612401518607369504919631438061466913031501115937115076814065149875421467324977698639344637038318368556057771246182886368635310034505294597819190150537923307072489252844821493442836498305872751342054905808619345708737092128545376494969446805184502935667867101685024317258841096733640893844654912720163792794678152445363395490055238511482350085403695067997878889257742211553951526812558703077968030880724609102980856931725014442350642417408338175749784179482817329021330804538730532387948694684236899991372903635098415408997992531301871356821401339716003824169777815053762295170619995951300066636865254936658669983760752333715123556463232764317971123717605124235457141183071806491954242068824757441707336412150531727779564514055212673045928092298989699733031372809297941549321820254904964437222355490431563965589075589870374820191514617729401654869615468549537293020117733807367896425081651923992959029412460899440013790639235519553681450877152452080392980219472730848657764674328508491435579967988716738458156506580430681567994093069452880754070963640328598670182458279347750503433103733561256295073765434706393610710570894365688069717512481795865706453183451614515781749492063663207277806597562873826970680769548566041709660582199287738850503036342355366301798034334347308223099331289721643312781387927774199942321892398225897776648525068916951034027085514665208517831958220600510356471928235151146985074159412050510034545659921403041457260093356533417566918648573980486770210269505939846210760128109564917731365117647262356590563748144277059094670044100155140744933219781608731506944277585337182186836982721138002358024849257726489390220984461169440029565064378992679268378228877770266030751894249956363141130016448749596765935753825691141724653810502254880707181670322078591708296532760628570007791453032645429465055227370158793179020147821285429438331690187270984947767607685508715853048823580133543236678087997541444521209174580504031707666995947862772213642350821173546588632387647360318152956026729270481695489386643270113949409072713627683167825666423258909096186227191254614523956838515657984527766472997922802728296180564851369860953160291583224025321123752932817420170910431751003067064997194291288526747659885101329835404530011958381764185175342766777688804039412004848655115159219765904860886331108006377002081904183532892866006311997666499681613878395246959019031772151075230948402324863073336977074447562840153079977301530023110147250645615455271462735584552094598683492489864448045687106068141349778626283740918141086295525987610237681671402508152148814121730251890403288880387549164823666398323629289315229916251265884278129830276338161426914894678793135133090201670852297353600498188236175554874950662214702275689223531126829699513168584945089310098076971218338873710033212351478255457982405809964458610736778332854239693708990266139053248857548657499715298833752304424071945198650953357072893580292402554576553430503479290236012160483102099791772288657035551365073273562356051335574975065564654040450552043987490521138897489072595920100031804698882031936535329412786683289309171262686432165073863834313287436910718106307366692657944838897050401090972128926543648642254436921106099785520847539372363125040567672940804226083493276940439310605757132189582107323943887748593312849640842175747850842862332735916714455284387130545822383489223514305439747103167761360800464128595072815039221638583712974787488385558338629478786167381609365927999902428792449870801495024791189448673460225904940169673293488039450537227272765554659979785808059580261236828598856075095233104449278220044119029658420097792837642295632831885720406632952251541097024087290192038662905175436075016802162201702847593188601856021335990203761111266772268906055703174887674377604336724690678216164809851263757063194561346010186188739254976539005802662724159801038671898029370724999893864278050238617537814930732291411277949747551200578334035409867360952305047430239472758889883613330510003700151909835981580181029304191044497028620056586467554635466304935394730302506826284286453348448470248723414244675974176110607085818764531790503860723822314280143562494817818124303795597065134144767182576311701305884724732423647466131741756214326338251896759871775679349130136383945115203146874820013066890731521828574373611669438377064816900057572277042908710988011712105109551426333607225491302671728811689725010619732233217820265167045385592248784607441786824385816778966992422218456352382366736921085688472761855938256375172598592469955367002163289703708929314428526840880420595519064702969932861105029922977070346437206040914717561071429402301297185353073133417742423310373762668461375580564348150422094038160439264835885138093328212436677162805332675043083142123792737693528267137922793585326386298134707985732093622809522829916229220020274195620635199951626377935365066073957089142582032755623775919086512776357914906311484685103515866235095010286371260502212218047396975142740488412281575996893756220540513312975644223051942574569921019383727304759315039082649924326967644812600071873410412426484604163109102175591944942967279884735354546667572222320121741027178045113129566279276329671577034441534796912797423523843507874037981502207549150222914947058431998685183242176616684601095781009432435015176292486640469551577945814045930127796585134182866667558179802090481517401085739273104087165787313975993136252084954183882198164126812228836222005425296960757391842350492568386698602012227658125290453620678733683149696173808841617060534360069552458306789658485256718488409175001247795630112412784940318857954855375736955193395490478293758981530905694054713886962670505316718991718951997019725274320723709210881107239951059597024313674445988191844335351225825408310464181651459170661751563024026520652882355719769742758710436735594239098035063667965210878900499845059312324629268742295686769192544678254099552697857265366093901405821273604185952866263553093474598728975950431339473694583992456614460237790859380343702414081170058141731651077177324533680535290049356294769287176100885332248538399967291036670360158899869733902077785101402354484240482914511213480514172412396537325226031481942450205895681602259833307418063709341357064548890111738935085681840188351145369000717881818133254440932094095932220474769915059549056695035423895352488381520746331570480593154053996201480497602614336452769111179407921630811989141983984007301796628804469893442579708762414840244456133440753553333221440956952044427442630615427302043672520718552901173156907799263569219027418581130472731149142784454325873395024722053387955537878403209439678160103685667936582971790419105371784819289882641616889390346141461141067602307741152950149212520090907551989281460432591781769996270174196239728405095876422958362216432938670540058927494163440210399185232939892425649185500286340810099204945268107390432324097538218170983325933525363951939938921223211211539353745218186474949307292045298037792164721128433565990821326217379615121631590616331643425236599172858946134872102163415968325160855262563485739759626439273064350293737478908366484019529152228753887282073526573480603205589549607728961804799125791594229974460692249201912142188448180216355019953514952468491809167391416701865848139970086028728047799918862458969032284560111572579721278343425407836239843877145791539949181052678387250985070853808871921368912252223971883258268481929702769592320045561882735547887127012120724251328326040280106387587636912884316143766346604030708959564818654317648637095616069339406931785162080738412102840799087075392068086494204952187874967958180057732376861282684368235939901607486103678435761537526379444387562512396488483088261245602551951321063739649184544657202959284295516174238843229823990927724042248829534754902803552342216905743861491325049953421743469122312087513760012426263310850897113839406094502686059462194231294232629815547586215312020928179671739423708060700000375360545182179988177723639990905487910738713080119445512693402459043362437334865235318667993080175084801968442671478289339080140602977168293643097095495132539739535653516271729479639682200023005457708680523525387251488756064670830239928765235769170916219266317500030185261870667806912549129373018017626930084438054807528252713509135131586419426402776083205832023758592349270084780146571039147351910206703903283794835699580604300167879587621951065914437755467323414414566515515720898933924531913764694975092633164005309966551125888542213265843134032523083541480065133398356209767029588957092027501767914976495392460920155177338625983582816800037555270889649636186534326810243638139543851108119981816359433058948170741562238401709399043647831921055653247997069855309990072529755676378314512992627443977172532406975509831017456144699463665497723288571630589109129067634472947574830269518207885537063161042682064850794144697872607978603496087556133873253873577905699838318854310308738011454322590929364111471772556036437366188159912573987589625272120253579158093945543319571035388114735981060953933671905489300142365027641270000940761030355368116714332205580528489337942441283271005882800362276219839697278462743839829815005555775405781495603478844710112460188951849890500139657168733801735488940853500920734188496176942471101640104915279226055225426332899422384634694794456273155296341290801155580694364237285634117893047937493415852920079457154207132580607704786817841156993634361633515978684475063399788630331821135312159390592384502601709956601189231120876315662379979446627167868222657956080490999160981470505525623516255880223590860864268936247551478469580549223857685400051625049911753925559525691401374561094360389590486588752382041472725605453285822352961541312935244420400753357972685776823130893946446903198095488447946055603979347126747256180502858902138502100544631690205337188608694040686336746246196866580084048395124162399617141112142230944206520741082195862161175896852439176543801139469286851725656059202814598558916023942775643106041939022401400290102971026064144655201477485228844492996544949187412241353921523082987528021566677497342634223095879748881058729865252828771196933669234400039162963164284875732662720011428466522060272157514048325552468959485897545016547375318970136241436132587407689544397186912585120411901311577130308998316964715405469415065228228060892746115112520253294711825162398004369791572682618345279164366950266691574153128517030337935246156261517153025077450490424174458719439828051805636088410455360398179212608178099102037563438222720065178160350764863923781931835471164239262070323992273648480400735250973623604599063881939518698605120858171216179497135667399495786957411268023462466124188785469541933651167416426149044972851176663407838742634437199834845584179832353829227302253512103235054493259815101859185038715316646359318824992406644623589131563298591902216885751245769750239563875316936440025306405505123671660656121526695398694565090745374899614052958887864877264154285858661280201482075793000941939244253063998261456688487647309129635142777564640632103534437750627556280612116979958777860860164243056473319566842544769359543628703505576375323669570506029764081408033905653859424948981780820439726034140640595357934826804906763774082822510389725913768374959465983707768335766010735385533989876326701766185032793640672491447996745267642050745933325023537972054552042364296803497115169353522038206147646711385021613766198632012453432024962742266348580769737339027847418564598885758984527170463061079421352270351811099193926892914702009253085402962537541446565719049936686295356931146986994569720717900710597180487925483835765429278781035882337867300678175428816909239107875722633688074845521105722937967534993719531089494287398101383258462025006415195231698823506695372174545620852580723853457775522728696763236230450382348119655341972789934536965301611415816296441625994784007989905229643290102988119753137706762752442092795947798988461966310196700441877469579423942718186912701916858225841114491128977750613439690628836384582783864941325769182045812585059110337217958442340349289839686445153312078040426163403647815232651389029886418058321357487926927026286750212655639428298206305333617563858839368409406739580342005501200577944950759758724037197165718165219074805110692763226712328303051718570551706600117767458774969561443066056749245886834727000157180751192983289616424482721689910074414995518645478568231683550867722802779759026676794401321212931347552722413337333534648848782391296526778199726256457689418328291631872810056745760829556167435107266804636245503409905136726884595770891358216636629487146689981366584692386643472970895464255446616784977514007830934399407841807650131648128361943626700785390314001648212890668751961953447813191143347234895660417556234134279880326136708769705886393773716526239985820097700601074647299933766275312575138862108524725028734040039461483209289430991807231841910090207893098746816411464221611979405763710161710622284545657717998693512488270860664003164002289391291643976455813758835302563299512659947309730330885891554448929549272186235371315530144890655128290399923974582726649161227116416834909441138091456853745826637191664929041458142857349977345518448531010600415235935633862782812261915471467546746463055470989500787177040703335732870282676665173341111496872269940309163555426651342019761657097116251876450054396689558333791750044459591634790415352018795736014384140031363116956720537710678629180001905231309123525834810086472667087691119448921584679113985766185846106939003549210680198786936226292283364528157116851970379998756546214331224390563935857353197157783549835538707446885258955172770975194622964928090966571342378861721452708793422149258011779725607331070739046179209280064402647162266286810670671070262312960424077012216371630901467511907197580285402561043465586878041246590269926130744841903982411216639907641916167340277139055270523006638676030113826664625164791286434563764660054881629190748750043598506333415395878285297256649200400291739832772808800442289368675129838607585012714669084623350590258708041632564431778092132865975308108450536962864233144165474420357762800029239882674644235827452629646670696177988006150007622740147764764651825145141396001991501766147485737356958103258246201254656258750079301282200636009517828319436902891647449935595722809265377743158242245590605844084221880337177671270159518945704976140982679206493219702770379539589387685739036300754200158485970646536395351520775406968807327217103573625446399927854182783699219170306369710561525264136593740021956010719469078851932953506976118435465195322062970254494732446442322814436585854492695192186019204095287133228067296393406153801415247031908482270546606268554321493368861934220538787894295710215302081074972365000152349023621975800287989803483138763451082994824556208486739220832040762976999524605819697791592375290692788605718660322493134871680007525155072678766228101504924914192483096294976878888993772699362657778484227833552238017059468748804787965684361155433202211838143110214915579641181171720860428749890396144133333483430638605555128443750920167579384774165746809791084415776056313744486585219210827361650458489074930991534929743917790360723945936000970241434727452246696368654202602423443288438495490831952367308063400372722014384532892715975447511229797669110324947297593656840855569140202952509008453343762799963550159350683598341062770019897349775616535283065566337549830222835861086727072043510059753259484180775662364137349622325193173819779196093769891523019404566308277172900922251315550851063665268666278645310337633794617569931889611547199104671571262954932037805814642439853676426194306434903403513953954296600339380754298363937727168115517327513978985403757989237799262530542449257593587206381385507312903250267222009507297440419408341836139043123553136876696375079956303627040350852198888869497163133896776527307193980417529901842852569536755758153171039063536767868565358357497468198627853879876481744409192427087499805458309177430397254658935276141097708495495495672135038767929436624538919508566367315322694896168565190761947149850480354407542561175743188655380814805911745076180468991327275706619072585444780171026904947811879197939708724647093832576736390326963400491616984209740459173541834001827088268554132298619073749633602748434690824694544042656634644546569202326147370775525956957298026840878573519842876173772476781932177857390251048222107666342024055037373705042386489739698464430159383670195941727692845626952745442085676683243780380329139283537331363263620032724345931728533546422927219812923234537577749534628627473738360637101906097993639234320442815116405215458013025897137588131184325381557198747773725907416440225399866325340022574967015113111172299501499500338562810950024097329461494342655091821223359573036119679192717155140452333115574493012291770229320238686450283705283895641736376879563228496961486913504153759120478876064702247198703918017252384968425102492544505036179494194514173608883072548940186557510242839905704518823560191891737413997143965341803410165917447542927007730438036292878590798652642381435490218634864039659819784577263594907424376090928004704442099143884897721187528257850742327655898521909872933636627468615289867255584740475260470775355318106721853581447503614478000541311476389417989146404889338799937061793972751871490292060418781889269141419024765156473098781735292897003715345355686435506696501583198533085777130292999318811862674103233577714623971486836994785666383505230285648188489333469813829945957259016303490269922879490890272011369021522028624684677184299012558228428995345654899671536937384794210256160908899589144325937672642650225452251777206293663186148699147957572292761882197356115169440418666823023083751806711610810385696650865378856464669206827680492990610663081885587972218964686024674353616324144106695699169083337453336753548403175595350906788300156322426322334179804604059125349479708802192515973319890058549973318279844460161508461789834548201899937005797717723611863890727507834852218182946810677198792594208052975135462382892013327402462604122849960979278734670396351600014884424920929044823684154988674415701293305967952263570572615528007531984502099597015745883292007383722399991821896297631864088431620512002728601306272062560275435724619795654922591911629117277250429672907891831005319052746577052111616704822189989102485893288471491265322212855129635445599740562921602652631839510595511248210164678829646569183990229878353199146245103813562245153141430239431424469545130721512816814678923479437888898673493169719044402939399643324324668667202019862771916707567461483588801418029478773133343753218770056547240114888394485242766104223377666407410574836412689961441804452092521954205349291889108267052632727998106508514127196532383306177633125227577157897116135645156627319596696740608117285099303885834469777072599727804046436266755348897499319792929185319957629655532717876451340496784357622760889317594075771634411429158562028036218495606339194682771949862458285584631508543730896727732155087704357525850417854320984056000070186218366061288766888256420536194554611319727034582058744441714457718166366063428005670418174364686619942406853909319445039410164262427086892297096888749004738077382259382610398290096503071590101972507070413295938580383201021727088531144259333534796439768178507738114313275853232563665758128129487234451996509069435698398656889605277620440654157927200866570017424618773907181774185402494944547121397079598553106771879605723888408708407398642593961368894076148845249234825204110546614434644728447274703258007289945453566483421179085968182124233007915633361720832267342811864347289878430263620932625617711070792634137367363073960262323533308042505957718121394421514905963921806411986688723886386859120802485649273033841655192124058558937763595568470913214324429978005719378090550671597030394869379297505119546942886744937759538655441455230084686001785645484411945740063948734702038032430573698118047550750748943195908782015143578392870296727478299745400100055440038188518390262672519770270624111714481482430489497250988211007390865794894928566346781645365619091599783041133981362960446834713102152525642985721196805099788954072549488739923197444561344000946902082127162865588148409470812670423050755241647217459928247455588135177481627547383560129676244506944830705503670607393451574957298143182795064026555985345852860122146358115891072815269793404285879046072056043481244531601336465717398638582305410617110094754339713500464708692094703158138181871878698016047899560425830161168776629981530475707290175290594611299173410835478503068913506193919234846718660639744166233156559348200073449834252280573544009870495689419919082591261421358019748209308737899406518791745004240663445649585226890881372576594460679704033581173142669830523963612031402005046152618685490351095152434287712948636778664199520919574593876487526561542222690918056475310198926251011208450060492627073441117884957672091028613991591203100290446128734483498543024818107340373458556617258955583372860307273639013481231448057145771173427506552884886487072449040301094159235760388894010742146084911834553241650029655909675631581946195060888055587117968354833150272990258436616223278908652087219073374537493219916203056454533310495146465115445753042914473316129177823811673566363712993764590477417712171981538038222635705749154610189206676578247553048764609908573026188715040691473430459448980025073753899332805575314139400446048738537884958445103445868359736560796319181445714552419503557697809529839365151126254083984961498292478412419650273063036450553284281176825280950909773909692942124697045489601272745673620838900212080740201675425674133887961481659014868316563552869129822476877156137862801918923075553858495784804583763330771488460941377070270535708105104954689920168324837639970006388767523105885868273240959662008775940578304558032417611443185966180334486852649842598481451875450216510163184989864093960920033769519182054362690980105805480220411063247424392856207313076556257008536933100184442603398249931971502678007783666112503068074924955111343927001304956997878883277267623608211295646178932178519925267784050021846175095788920851080564119011181242584075792191168375698215834046499987797674414623340789740318679993488676499917311145628483319521510978070251658844598265552658653536857679449623231060528503118242588249712901953577210890646358520643282207515049831647809442115153176243133254783338408269866140271009669363893263078492661559626899549915642915990501116132612905218441410853293997363874617035875365896960969520968337596720727055871960057879822136028295024900951784599452009583978197161255666463599100694626592430767814076047522352370011691735761044357560469267853051962239822169875622931750556715685503811952460055820970510546327693891093658563052907251611716076942745163612555132843989825321064695594351134672592147376524316107531038521662085534074098009044937190503549299163282667449597078763296025984170047187953261383399237223980814722070109484271666632401226418366874149442662159284785977709627585466177383129643039175991150586293105101198251008010559234642436457293358768818011817491561549738338906562947707490866251714941935671435090809159556110207564364758231344603313660971723516030921716176832277909606065971962406002011948820416896983551789456874790399821576064247046554841950495899681289028123099470797246950859739741017000510671097819956818317519291129166051159563194600151312926478208163314602427558810542423894882740735460545571389067648612714570612377384875573121653712775602569590745461808820269382214000863876463405201756732434670257697272414952126097507910024857735639494363561233088409064068082277082761015724875476896954595283918211150036868050698680193244411569421348346129657752281978059012722401106229566834790380241620984538128648743520907140331523592960541933429614639857492920635161867520076856113899435113960688339590644898358030862041611402952170908484865245994528550198946767531279457470508387149444060268171755831256411307311440998758776052466104717716494431411137250388805829850097356514198148627378274058367274667585813610655864580796478008055622813829650425524507773998390312141660183945582027014109347688045316408378288171594354400075422330409552873581821578753309426162426485840467266076929982770036878987743465766035449781410834638918494040882904379899820972189362721974729599925951116765753297096128232855929379825983320504013868520423014332699196600023919856225511940591746845540442254985902736787928143887223616504907900895115194530357905580747416831546884653539479750990958071945110346945071023054251315747715579945482271616226648801829727602120264590677837258575650718824226871187274055785404744998739192937544304118163731308901858967678748322359671629764730800387954857936587875376803181596192707049029039673046116972711301358646562265392775608106375444223469454422320460300245597075210439053226438012059843473414135732739809451680830769036298661034379596723661945841655417309141112496243627860053709918323442015292199803196168803359123749193816157336489594307894882232430078278993191799940446997694842137236449375541808774416324682975723760414814178418317132990464271047243148722661582189382923349566239983580556700857997574162632524356293914663002475651662654723582209455545632182136639173801032740721468030379814499123554291910182455662915502510751556123396448686441553607202492717018012212980933972083454190209321355569249288438068539649627445728291262955436347108179066857429323231775391423069624855316675410151291818583189264392967763132920936540167391816317593431650218437022487882288634284085114444391982443254024311303831761220103094590614015602329214726731684052727941845810956668567961423700002947895768863068736107982364769636060664445735677779560893844387716633797913419616808357564214413837180386085352176845894363202318517587863636807024358649438359293065880413029157718737202040810671259862850471639788073164686399330411556481848100491584420154061976774567110898558846170353332106710645691081143149347426556343216214802448606240940140738787925228437858397154387994194037669999648045957032967526596562432763690000138820852849608013583054363273041112743808582013911488786563772021527441317164858704945715267247060524177304234157287822141560171268284109801232345252812781201931066829522740708314265961888835226250457227066502352978118288908876986398321262660270442453724507517322169243825068649691018843607093844986998883084787385161288374825751294062210835382507526865636504667594743922555843199502695064286871168689864702801637576974050464356743832763659161743078934696351519088109517918344810713285177389311681992569716990742548816206740367706113876071881188186315534088498629766711674359118862783813959794221013296990072938830055162430981799027821843482177442063234432371662300436823401509707144952832612244920458231412607151874270054575346510598669904934970723175687440070384156578978145259919062415904492154410035748435517738608412754809513792970395641704676775057032585963216432029407044223381156700447066064260300684998520567458552361627621657477894965595950783787820199444730953838279767868547434095281208530907311455306163303306443462132653225369777497231393684991969787097296451726851421656649263127252759587125585419988831813436515145653807574847641516224800317140205955971743240009894190043071208890344551815581374159873110741245210707581927723622667888816230287710943043140624107567908548846745830158225491791002806315998667409203848772413324441931079795296692873041336991414299435373879968603060635462016245084668944936004189685800905436436111597502901627015123847552052171029060935880655253419546227051430856157949805578552580377020529922764454947939329792137409877227033095047248290584047085441832130536322035209338123216447550625095330361817852702069643785926633604849894250637460104080067814912846768904985652302700067381575352016745966245810660151885488333366199292256579679344545842616124935156044761708763448576484920356611379583925776388087452414373106897818054124927177266570951483538754234490952076594032236666932748430446237203013179722049133318676991613547317554785521478046814522469591630242331549713585106271753587818109438041548904302145316211715193969738899179971544702759940497260294544920295695884373179432566916428893265612744214537822652520630751149534248945079928836158116013073494479952150373102531824468846541573049467827771734252795631253940683522566146067231319240142242852785738502511736610127639480945685275516012866987750658655191999156483164775588816384788405154336954747383296263953463551538338469957756266789973409056278041156614500308816548061837888139172950604394685889540624993558709490691876136441402490613460102348045087414153093477671981024835694928703721894213784966713783241877604039112625361054430403900474839373750447394546128761658945952299994353903564448292686919432831741727845077360601605857210875601122134933752484784589048623194727191765459254514495223039493828366232850534627675065004761955903475229390417668484662092912397817514103872791996790208370835504529345787195497216571352550931256638015427490745840026102304494081020856694111297781182378224979933777809597277337821114386431409720375556627661561649732429694987667420869692801452949862468306759817890060259766191422452260736039404198908738122689541860805053552474580533142664928454006449951439744838847110679375888269173151803637691327975823822460422823862961942382457774766879554940693043170594056708812297715038234709247400787703489632869722015989985500660102928470024431535412609623711728596887543267187555134290923381525090047343376674383319685877127816093642142713353922393367662584573529020181940705995185357323033680524815461997567511331785191495696440943080049411786330508182526285467484830977714790497375166783538863435037051447685969100294121001026777702015237805956222647709761880812633083827723232739204913856946429429751587596481059406410939047265748352732715225333023503604515624456248889497941912376222049642391375166645549081316760816164005578530741463128420485748543701514125702695945198551513217623543034080217507950596811667624791676150635721697267353565038939563377513845151217338201155066909705307759217939538273111171197711304638803697976162576550501837428272682063629657728683042163920054879680553517597617853175970195042976287636940165466627991955464918515779359424514861318456882677315328310204601984365328655624210549728345764495229219527565695459654978211494304255717380706705029504442113388499217377598381180577894334471602182635006593372215684250165773703707756034708361041505770967422258263843581452446846599992147830472419046866438110883811485062882958225767144861494373099298605641645476724960895538427834199095702001581185266862456716204026941744064106479327443979966142922016025428061939555827283296793863633023146917942916412762008154088724168313198918417703955953463508137632270730517799169925232601490225236578951461723320451981734584838689508055433775825186343266800461115035223236999128363716022867528779671694774774142181158698603319680675339720015804467029300036993808030491837590572991100666659241506329747979644894063610825953646573279276463081724425448288219250875455732445204495581340982116664054268104894448831644683557379104548215854559007278193697946990979729472843151884210666632806250085140100117259351533516706769452103530848635771183954094100655478850891832184219490917740396939994600545907592135327195361236521307873321779467915121230653011621480481761031479435212138880721361498847645228946636332151110350597594750106964495963148142980308598680167720770608310616554937894514896877676647940856250846942896612950667479748339633535632009129321592524342357151966830134169123184743815505922683659834701255194628732691710908984970276109915363968844097551848852765092157123531854537039030616493226814056449300912902541441542959319919224079973316344273938779743514896305309912600881691499023669974113145666150795756429294799486422378615548706188784342144549914204182210306394979711482947370072695387347405296847933049592173620232098185770688329379260990376407117618914664452833468532412417575718248183459731174023042519459507854740707917874340753367229150904384982002325899216356318444842253842786662071016456322474993756829621372138224852497137699719927364947751897211624698928352200788099570156276293931145149294452511322264511570483099734699991003588317834628525553057482802985361253336517764786228132241785580933501094711094851423081991160620145758037365251982337478258830813209692782937668346727060227435117875111511731816608994023443418656951319355364650680875815560045319991417246753551564396547156618294255255603480008465154734317796746222048538344768494514328496639168823774995829832263751755774560421374562519200246111321294335940648817448970274008400153348614808455990350853701010455945636336223170003847736569646217360207837191419503445936532593613215574406353458675779034792795554022969352904509448901346161796254737625859898147635845985502558218201916035058513921883037684203458016778371082955279495843513041373144700114539578490050613621271839916012744949017564238088551831385939602768584822800236983674357802318816257904448412339499997811566379380784680009041061830282766506841209074724931167711793652349817050367588321714923250399413389586440922645822230425044487905859679864583943373692065421386458262274343288097548888927186269743948292836182049018034476766961233659128488723808726384756784117842331158778628361239105686134642736858429549185494833066306057691521929393679526389330197352652726930835243449454471670967222931849475073573365130726237500338303822098178584070515144805017050891598639112638778287170052918125850907905612035153936288142202433471142313241870134589761488441636498275131114043798845004897648828690231623984028946147131481151995210044186951155859224734478782825461482088274622664360845355229342367361650702407275427608952083588366328951048262849477822055681296296884453504713655723831036331685630275391475706202637009188668302488849920184236349239931405973026277352169840491491461223404994058070633916897754211944691698543161047018083999033525268565370782605964909335184355108671101514793868657318801736152450306205044714576145664906145235948551598286925462496342107106734891823462000157138610028915423252901241205694445423364919051540164216519954548679388742215974910438001176686064548948458543207240043194946958510072330420740544183603193183526744741917662954119691973247894332356209724571239741450889495494635270850064017835308627666874910559933534148630212780266949580767508960879856451216126092407052857003971960882919445603146242747847511876632888403510254227882322559411560205878396587532828265939143405654458084757707456119627039345212377114555867931323209937057088725919364848187978327625457105296273082172851694464346239852748901563822410430058207827294605746462762843256463375772098561287104385067753299209098721599372434444272742179145628402256260180076529835755149528186044521794901588538049377240883063078805249252025240602214456415322722001160486766800486377585796829094090828845231783291341050772842654210593435368306504213557743605125288563860713563608363288731845667684037502548797903784184001007731776995353018224674771476218140861323755852410641076290364457584876964661388731683623540261834917235026539039317121108364609893033479321677161532796445965257894707378271072800110211977115767407302917075244335593471641096015792594387369854528578068491197747569615127213071260408095873317947415869416156117446766260423551808846260585666151342051460026593720359192825973432731554670976299432530712521493218495404673450878808897112208097955282954432335486187970184631996311629317148469633404467512901326541549424284044806942909776010607163756850237049266933141069498514344079169757517523005156798836992688048299907865848486546198047709396160265907610125782569599518549933535561038954062602935298416456105037349373800603985413822978610218633548971910286890644649607063170290226131205637806755690110309290295739835098906997694963166730439391572355574761390065968064423671768170501368366793222693388562521977727729447861488630612234928533664781977304065284768878613640103498378527495645794610835912193790943011028722091993817555276546864489828004908059738838086024670434843698545075993472905401470715805750124545383998971050371664616766984403100051143574843296700487070876972250408312439884065535623050391401507134042543522371329761206541608159215111643534497057574945173205800076135687756793422202056356597485821890684373155357980359975957170325385705458773823061724253147750520692921123358158586885191211803034609960240602048894266296568613760161935583140097187747145273666689533541753771234146968276007464557402196563613734440161332875188582473269606289664641991883471080755697561918842682105667180534214440848979225578308533477297945841976644215959156476967799702947246639574642691401596645303371749155235385226124456765675322280477139610908514194100858974183064207648149659412914987433988836270565474338012736267946262008117812280576380282784721104652133585008010451311231187979186942159198329784363438751915627217716584581149757636829710938581313489121033877589391489546271583387991762331930675964222419742647435779843880410242244647739744274242436268489574431749577524688736303799345319222278600336465641116288608096079731065361308789451506721028344715041574186262621954744657105966354477974119166757072923235968076417144034234176597656670314340700243127748378797006748466101016922636113346764870119719547170391779613381864637011479607071407532538007250020326169366439840592781563310549396476475125044103866843842660253460838600421107791884525952729042583186356768186676613537568029601476773525814102633926659457208360724952805444758221207862066644144625806712913471042192361803934382930081616309099932438694831534601346097366893941104290852637634711170958114070369322220217846502316237294728509828866196810379751219807738394993925048282668401508702061149817395987368659881818033355165750312245089550478179348176016181108486908728294223778856185918691196099617793207759466520047319954562593549716138328188026118557988670617743925619589053727155547030940688286270026915860648671982465410730000872006696450440762964186620275675637904146066884242489416725039468377922309278909340788796456183017198490274251458474953779483957983832138317677226722509923993695830088195124670535792577118385271422869575622618926673720928908535991677957497802293959011658309904949527276529466854027286871473875916406247972891224425436709277209008829799024251705128823810548519491524616639116976540718253553381107052074993513664935716087654765052405787145466163029690964630194163461505507658345386616486134828382788142836553740220464034894165484537151061722002391434849550547083291210989906866951259186041901307433200913096248849849533034468536157700487161566387948068060953488243813686976755658727014363641214039699155665368954473474004322179590073136121546852394595853346248547517577751582030373066985205390709192947012452858138323574054856514408323370767827465202030995054858440056906448015139493074278313953689813546937482859052513592128753402843225361854402972084058706385855343971055778476800183807162829360352856236358659217592835623290407666396411574510110081900298352491628956739000568832173507129790689372440516426783813209166079458102708305156516470199028281277207456012806767974186210647171701828323920209772390613411042063459990155168226858202263462158603636633364754019010228225971713454304385030050813962415062573283037113178387561545247691533780474345869431263863213216833203908146850518099632950264059385907321560483859933599101155851070685363810380438738779775775592357035790750622749124986630847566875431126025435308369418370251595892260986978310365967228547362145212924921863991430056561728493495229973677883705586826358369000333563522813883609836968213225869869841460291276283381163190016313911613923709274259252237022579280297385976502792730255247290785964988189968213332589529735800522251678983123036561670023733153293058477987557646776766679592501963567659404463664691408505979028380499706866700015122452333381697633419081135725547673931638975991754964397597895950294681418903625606486443499928346115625640686669155904381347607402641624729303235719418984851324717453553394971266351370182830052567398659579170202548112698387132562028285424758586667950933135662272051044126115175980175944985373600936941888273821588684397030300621177519254531342321745656562733364094190081633675706452569146958892963591560228392180429315000127157786480616679217240347669156724534962256546069826636988612332075124216803199592788174467933824873166955054568809538675463260059499738801098769406429698215467427007449934187836460951320102745250426026820510870522963501338765922336625415234043644208475989388543888128096274360429114182255882278658783983705474244406766406204922316579883819119317755053012968644691494017231132966487176723491722825523239269564457774814363791270098027149214821332688352476714926903480419317860620763002000005701785665028748768938343087095206811448671675353506496650213324194887210258158312986920101383271236417146714196373579357335129123619215180038306361402242271315009303437760014213563190248221563780475623634647658284271921244057961855697047574375320214849550227543641454523122806640361075419490242701013967909684696248293333463747716178622556666136114230881440994576536559488958297162437938484426994568465139008879448244023268483105635914794779201108468503630119720066178909649078559560437067995944069109841599546054697005899112241660299370250554238511848504501007858420024876551632557547405442553155512831272050722193648837957459363533125170987064311343619853194396234933697868782904655965372294694258162432839265003737924303678124950156466053536076554746457054413434649483560865934837714530871552121413575503406100374093056477614529151039832357123217610109676669920555564163836762622951347261686139103061243420824821071399849100208940112624716695788457076537542232725284455108813097449189547741351358340004077029220353827314022128533721117132696337136329801820882380688715974263786446500675176946170655884131215976461216511652862255612238585320335253529287548655389319803618282828719714096379048125159769079591594914272667454033479221633328719642977424270471941855659859038553241599245641834401453072993503311876447891604399920461687382648708877940189118724655104822677603513557906840863796777178337605193502366529493365879446158950619787057903385211798882695084528652018341041183484571155460132702176745700575621297879714154399698536334760606224640171404917333635725631806554819461289612341316643812124607419115146841720710827253523300527692301509758774849122403629525254288982620373352537193471427568287861247054197709624599176849940778001476345094132797415431563477123868088449933206596739582551841767434201706005897336349035996889125979303033027768157316872683607524072330265922528016727936075290774972809615623954074899941206187926006082529845839761740646020618565144763834378235603766014060274457104961196464772301310007314149997667534142080281401667329078396212141521139121097466867080676994628777429986561561192498416744955445851187894766383120779150746720128792521196224805738463660120818255570914737870736535337426707763140671639928060159526753660015444081825475564430286885170258559864679156063711581501959480908109965511273039641807902316299905400304962148626282744498198789270231104213298932884676742229919872096110291138419542812254487781609009885201205956536774680259507707795379089589580778612418581393876705000185594656965109462751181244750147978498413238897746522515539605803262148267341361432795191853824365851688006167154238161009265343244034800568893238029217556100743854866924204922006745307669892813236452851228239626137706817926503574092032479576781395081378165052496293881902007342273382321419030409654626177099235939348686236700245096934779980392746054860023010018160532706286639288732262258859354470333818858176653618668343438340397698902111139181534883284839463235937188745466989384658323622710092564949661210090356399217288454357836195411669197735474229517576795744434639276034696070418506212941118323163100856497915360372636297833617585371003861603134981690774238146316578227394431406123773233434386538523057131111692478852725553060359327927928819762613517117049401495247389862000266720894783445370408621542273118582126518348124189210401509024354258727871782612603200564205941017837031655912442786998797190678762690088951273964192617077955468402237877373683148934332207519856334514393867673519631267878851087590723738433741639100937203380055171604865716708365654405018516805713076825694836230868159916839010723836489752580014951464568093704727978197441852798624833189937513564564221770406490553289837923637373612039680563660369731418185895209080790938166110047476864066048641995481744781740601423305191011292133038219909924213267233634501391259867893364732888862599724514165047613525561015068706176617779167637194476705038786715394973254012724941452038261231017353149803037275733669804473580571623077343367191579785264866034869347825729837583657199729194367924126383987771620724133796215288007456753890064575083360052522552684440866477399807407578264051628760817499575327601310528225685307333738843077134279042482303386760271547710901391890878135474363931285366559474391587634952918022908904746990726185153247131001929392700614140150397065437144705849098944445818361052791252989191553657521846115359707922306208731962233485779776209097645186595582630972067246378248039038014056949630778958798393583224168417843292761441864782066477062715537028865222836454065897901521393203203849954610456166970805864008702864367158241348040337863960889148542688801618657720878647015947487648964456869250426437338673876898657556355927844749761057614491705701567520794215271835157092655042271617118150909088678003108165177173774258288782640255379612162881939060044443618311350874681511342732506262429001387816274454453039695906384267138030964998800932068260735143542283830974856605327995404833382156387772643048580088768880055654420425596192672077489718823477712988457263628328547771153107062124915095633896905712397635426967086727437309618878083462804534961359206742441725717532429990337793862042289370261337221497462683770961456259080978077749311382047729299996365854992234374115229570007212373951251917825305037487227487875816588658323308044567288567872285614521468487638456430234132541704258196852932627515479264547146593279288085501343550284942641165016731833154749635225067404166835786199860165077764791437755106480913221052438913704151963539447882271464409821527555631001549965058657829360403592049424994310753398200290010029488944738242605796831263303715346795341169230100595426401688088463096002796935053544089313961121118534520932364335660747927232622289056041957487286924156630528580136423920795839054999034504314303955274411689603859088321089332527399045960337762495231023084197157980301477309936450208862265803143004096659456850465047380553351798397140309176029340864001870413808453931262836673104798802923121785888600138784243333739046895772996192131988750317504028223912597627053029884688606884550283510447728136620759968749330394721077992297272364585276011683152060387921178300282681847302237514135519676246653504075128209512465642766120904734772267801298403169097195891005394412559697908159241757257329055461032070870663034424088458595327037098058843458189773714601504421283719556190046722687981945911471463846161068397306448826355395455452384231870147923347578024431079533726924934276098876579906053543065165659007578697711277212472472535508256943353880948537553838734245831361422641180158166937722485440709655236172370201528616613499068754895623498402951437939438683803552449458308827303925568905478107947406004891563684238728565292635608068494975757824220820598636199335479305844387448167291042209917732424447555983425216461325914724851866139932198609413973809191696809049891153583313368666378258984872414265383951215725606336304379107881349839459670287256969931500650814440673519775737285173760639669953022935154493209841231846449505436032546445526583245115105931059124551777964761017669984312736699658225518333366885522007313846766499923560177911916230285608747599743879380915133663434078333377273714557061842861839890112664558199786966375058539660288158044581061423290630614223084949484353452194348442525181609608681813377296078684127811084695576116086564792495976266781221793383527154656129207362100936873973399407392658612720981848536722308843458846268779915650565470100715907053111983981007156025740340093348388151254625342149333901814124863078308619718378776457105002180572487831272436868255504496277237756612522669771244194152813657676273596010841082747316441817506322337714827364920785392200884971411717117229043141137034912156579313998537381911594723585613417474936562450576430444456035088798569245920278534492263073562882063490208154366927514892981695142927345338527798598383896986859619329766218787657612263500056053099612870999326353085608963935286752306880843965211961337696888214525555666117067393197674892252156623549231709046825933068496215578145713083432511391841673762061039266012902463083589759789787876286841724575436585013637573103229075904894784629660203157278086102135669750887589564895792203133620470334258308076468830251707611083134644376708269623837925502805578825216050812501520266310025892045637583015649780228867860472847950344776388044156059078028442415235811013872086847718862993135000798960025139322459062672094535649597438981573104090942758537135186214469645704049315644815739166019395465839742690307982216156871164129577914489769836839583422314249487583921677306188747896644156018109479394670166201246328055664369349081154482524087398813007110558556474347907633736918712933795617941424431226982924782553849319079777644436919653063546641820890750309104525380359223945738652023232935197731202222380723376561159828852621432326452137443324692465485263270504916415324610126477743921935130255810693476206928147576052826937751039088824085207056652822954539106744590182374124352906805804546987289754654153072607136864196109483386678173775202968862818945773586341422114701948482151686482652714499026213943429603376427427293884906156538585840360267684310223878380637755392452909862622933947179633059127594449923781280410764489310002106682323877043809373567668244603087549955743041387683520863419512441605943026202802659738422782265976574073267930593086728689183031863840764850467119469099222957277224285205907088194578037721404693089687207222934085726123218060183330535875047686370365236783472243006238921174234216164046680742773280212805030461237746032765391197823703240038844932747963897780450553093018645798574454386708331002434993227151958752683585395694107691931124465848204685385055651551870813007184933087778036885560033005443871872765119860612368714850543606851061383889923609896559603760673186215195648603543960110499748047313317124197745614637764035823864424688421011231130712778167208023466280542056664082943754531288359231332456359547524762937479740938652189374455027635429711967484284538910107928016056818426848253429620649362323569130236697758019729832664576785313376603442691046057432118387022942258156445429674963992378040616751126551573685878036423146665524302040152273758818080155445012599364374206815922635342843321385704319985742575697275894585370801490003305054623404372427527341857971619895871810759590436711806936572865022168739112392942878744329293395323755717987678159119657267624226309337719810640616238018304231537366770600067197825796042373077885188026991327511158426339045015086839824888918037116662154903579532162338546861146858961400662468495420669788531463233842020966877861784655349813759370563383999192251111676367875269934292119909801763814973728815892091448609892111632394489276824526300212329864517091609195193569469437192553138773519988895762614476263627474828878593580397860568020582654452748967881014158999682419504943573154901053134252874401486263840557264689926892006882030103312193861282748543656124107230036488689373611580479484701502700220266239395146523757042972481764263091303636560169782004758640301896103598528550891249786064824949089012087140458281100019030808330317258806337397061666296622002363002302091250281108296727414218033209546932086869887692821237107923063028639195011048997474733437478273110709348071089136571862165852959661818204605117087436308819903653764168737993112430206262189098052385016878618733900173575974789781565303522971131879065087844592382719278386730179348879632753926272933411256568825196253846879858738020692009893082954905704761943468118666813396998987600372036490393410881211230547586357696752094469487906526586041469332805703885002355931807916329087762473672712394956995452647956872925688560123982038346618070881270007782745606516291736353429559660407872417458987692046439015800422624349776395140839464393397854478981840050687556977773826414595767461224541861306794779988481773272996224008426145726669253147223553037524328656507746649618118394243252855886831719442709854374919467091794751909656871982272608860012487280970747283629955760163021094391224421347618693013239247701360732406996329543898053629816657769375939837513642470010930924941504869407158342678476272891958971599669027507203368725893269267596012524139290160950691349687957809974071026062399612279662798200015194160874060598298097587796438274269143623201710493244841739292984137744615886609151421388817719545424219839985587995107180389093599924988739960810253258937908892906436300189749764725699838404118059488088885909539492806769124112585041465500705233440136059959539950316964921746139400793446173176082764094076475793337787625448083199457470709581809129636717041649363638924665412115711382416370629170025936336627636001823049079319753376662768192619698629123319298772938679887562639049643576259497755648682908446214867343422085740901089039574292846026627815624841755665144900788991122437619383843220731694673498562666663529247593338172279245453247549880756519673050095390425089058049535341999331464607231334954504331820550231543263243585573810215303323552233351313857213936508384878563485205752444396918730811032859562263741893557086510743522138307274820115486243915050451555752892545855573401489394371431443919309138023533505462203913158746462596171434219227787691290191478624329973521340531213163978947763528079320369976440167790504352392000214499684713562402722242752747998054712006707828165524731099206708326620968218234696151372371637182630754417210280444107073539906137584876546823775365898949368147768576745759745759990918741145639292965328156928279242649159145945146710159381239588140173598506187173556571083134252785167149179572819692819026191617628911216612916959762505478577283913394070052921533666295032172363430913228858608653940852562830191575785365006829186849619037179401820609207210082464777807383329744190520222797434009167484672727354724523661316418203189880098527597799200170739174931063019477615103174578942226428381074296082037844256432943672328335782553704422936928515293130573271122485375837818618770438670486876506035146162299803847692624684227737449669592921898334136903532411628703726042210828570347103630783418649910499004052548387086739719305023262893360658116972331329740793555650299687436628319581668786937089545996546641209118986815512094749562035855731859673329097480250775297597139775841826197508765786753073361737542755690541527182263478458329351489225510906969636539930284091562261108195260142653512733645350387791418422477659919878942624617209013393882856165725692897643810363750640997119822252648014430451392396688531001010952880109408475505619843703400982441690943105219753997892810888681946271318020101134624083084711106611367853912573814584154648480368678050647975234549480910700103352524155133510772200294294662676444036456996247137957939094759872366452840653161923209551335728622761871292577526651280707267454501324091498030666985711891365162566609214850435262190868020094065751337036778853348153549401896633572452279291245580322873374296198448143251398474800081676903806021581819702101467955940034409636714577818110664471900708125768641596666683173549318187785752739488685228485237828041915807319003182016584933150026778059374318010924735699786684109119107543344338700887938191892103410930235451570557615557116640375121016835463725313327617759203725384465441680949053218226382008504461799057309903133649855749535599283066570452101053188475045347927763557574675464290203330392550923437987108217441785141353537820099595948126249090009471872192732180696784451865356453523671085555932934689325907487328975240495808264717913801764663527180234739886988720533298361548774043687222689052130292496137377267025396759318179443575020622014016762742191021875324726891032798609459376478016913400768619151929745847369403749150111903555031524178127670736073499477044139921207741521109176702491833513694391152210051524664828271114809660042738733274981619950030598189084290204435031397466496045419505199083371118751312616092549819249161197786380982337894949459733224996357812053431683467024565541725317262338684144628139294319351340921240630926108326818830953029752123748632474605108090239331127709910014805104448992203002913699675407663368107104590359084229910505505918857780310605240786400540287953467966335825214953561633955256041383497573905015695415588424907342498254959325488003902478163134838361685454075536680872539199983105221837738596174707624943181431841039097320128316567719483704279889335314871036764062728979340518577466110622861900030300209275787892725569018035305922103882347344365164131147013686589390650954684323610141684658599776569555370080426786731369397658804629458237533097484137787940206616474951571755244869709432021453239188004651520567561902086407895222563354102760374382467266987187298220866303550739737384490575784148937102429738684317634485846827058763644758633488978622119557667161879730140714154003507208450817803329872752559351227775241865646735251286916537398026488602156781090127311141174647149580907444040111653698365283138436760816261405480686451355249063586982029713720262124317540651690457467438930707499330330901678813981330272605583006165593709699224575377377679150194227419307364941767737422331106611538927402261307496127371870492775400529701874873767319324460389234769112249296757274818612008516118979217595412920282819120358431582048309081047009370479616373232133358075012919511742520707652503057903049401787502063201478631228971231123547036402298427129345052581174193964651638356538443094090740036712987534309078862780252045318129718471666856767629258163401690558664177527608775423529244896582181171933947356459809923034943811721965675934386025202316418500512665519469512571268867279948717004223473313882295912324154530492838025136207531066218026647289100846472757260198424404966705743919696178687567337053235561441997631547679540106112838164394666075661711092656576412610344436408484713585370132647065420517408027420563532092708151296973325434015837721935031208467673560859184179324245884028912879386498190600109803611416390462031758479504328300961784823735905618588786317712743069073994834770987202000479243196886020368267661372843409308162298543932062168827819399652064766344248477121321903265284364846054323376420390117947279204389740649384599407159770522433887504816020366761723852276260287308961625109490439021713901511963567161964894072917350179981136909426960942482322031505371479969443891430971489437208646754199117731102095500138970506629617806776495382414257674669010410448495909492029556857911019607662557068203009390255984569300722094993870747083632164519244859664130555250137930048300245576975534924983008205297413087608139359622846097457755708818319579911346419461030589350543665589164388390334601278541023437505974387724608598488323763603758924393879709017689227181914354188821494484893549749856228185991371267011773961666277868438234138918346285429077891271493996956883053258211547812878979490026624407757370599396241153035495279227837361480971151906449513107471901781336046887857746450869277178643224570488726138060691142936781334854390779606277815214243099836258499092568718429582598575482506793688755507203131066743398550635126052792400548089346114161583206634090313313289441096993976333246993806531706857629717353256692582543347692221927919900104667450727188876228176261789476267652785439390879581337987857720333159994794267129123974490802367985494012032441121340728245665241502350089659637265311807825400687204116495206553364750865479423613816301988629369076899486589655384688890069614944645873659091861693263499386879299455561101272469196454276978125145969954754296132359255676967056610318732518843525174351013520575711968354041829538287195328386704340759831133144515774793319644938386579772973113945890904944947445824447430880521939089782946774054019973995269026837222913501885016252382257052434676871529069740969029026200705500521404260316240448792486521942871522485078798382129028775103086792737124582091072330219294201176086238398350089398140824770844389106853385508311937682363943761487482946972742118705256613948219298935258840914660722803149186050134719789988914218825564322204475041340443677433909091417037660237224357672640875819208811862439006330992925637049419827379692521580365840890519423108128380512397203185189675241574863584660142355594947209285424831026079684381079162021857263024195442081531676336583045638195716767197071161614488177735786876757771464116261441634858086718481919065447276670906243725185226710342350392235131899097173019970044236903139810735523225745482315988461880024211704131922566347387848027035680429382743199669391166440781185607409012950535826895069560218215914741357427310309504042724253785342879309117852816850281543955534014208785370909645378578870885311771811817959275921942666031989523868815078660087379976808285766089508631665680308097287788028125424958577053192717730538830921360496121426518899438661866497157458461169048759686489565363456099277470572942282440307115301803228021378726313386841385806884025556934564618050741130011426047594766710593761081457032993866125465731649461002260785119222257659422323683602399847407552596703601429390091890613873429534174394101153188405920232710110565081959673285252755615628968306814350692178533368423930740122066618600893039388828584035211298503917283783589433834027374030620582611721304867259845326860089239821175086348246782546693331117064676349005362140341257558639328845167465697397071976120560945468219790706987163242885485374158399779779997328844281840786842161446685748990004899408046977811065344622848238993178002572590015873391264379587042084728107313697212864088875558405130827614507269991716394576666423620175212168980416814523072081567573467093946203313001984271481638896408912420342607387149187968830337472420418712161184364184808240608630220890333604081231105248753985367793610262142529447606657660924192782360009937278838077707665583656509398748004427354133480862257302616143094685172002805347217589965162363730387893389411784941402400878163445420345590327085057823644847568778123330436314792320008609243684733655515686530311847880790814294050333689313165844100179192056467035579056883474754598086794141304867500982056893169956161618574373617660973167280586332117447965551939358351173257221246553714222159962533227684420853652710640873792614600317064677579383277065844452045274877099249202449129532761935507443827406858294103183753463520471819506257459173075440336743079878600986160054710923059488463254052607514106634430075616581294062262008341678357716380179164295904935752800238609319695695378437825443094413374117616528273669808665484969446194084609024971222373715691290430207591583647727055255433053278741034908158231075753792544551299264275362579221725872075266933791290621833789291451373730545985520566156880907022304626727727007728513381220755139420986780162061106585410638053011224008201846791872209311724425472396172035577576887168187701405539471890683767782028139926271071893868220875371203337445922955163885869784953038212129050321499753229576553890812756551893467893278433048730924795162146650398166856186730842875121254034300334938036435328425046372450043305252685912270819181760386330525049611860481496175103074876777534753221155239304323543074907652420768016383040517550378490433577108111616979562297031106671753486842155579476676845549253616793929915435868750274844845615157835668063227171250213786465175798830020255097475484042139150220213640415388507501052903778426453033157427077889370893264419711440207404523794302472138497451296650153633877883750299325099745767838381056377833558044482972296038376519276722350782418607761001997672270293591178277564737494671881645361002630882442559586501793426042146194596183307214671605967454856486429277134163008263219235315189337448069467522603217800092190682825327278974330892445281638551629120985378093254367752490414862692459751939742329748592550897876685939900806480253895696558030857482003542129777649668963642201597822190994498938429157214314129211816253063079491545789649659980436621362966122740825716910505111587149144167056784287298084236423782354792400461016147533650488259106485484468456288037443093270545713169905464622501158981234466610606754690774594561666288827672802191046076614195214743790649106157159595038354000304541268801175344638533112430884406512011488544946834052030943541843738314077141035181088364735012837650563097080724067009796349453487948058996082288248412242034044817618480649273081466619160369731787977832492139964902097332657758717556932608378180873254206851633318555180550189200502285587638867764311703126167480019420824819520837321295584599250273071900933054210316944874752200701708966072187423980157398603743321847737491339625344512380847039527030363647975873709229882389013942734720185889387604411964326172375880687473608180007620788680104714727558653307745188133129398130962800239707204870167215834154281660900916690897631309110111840714986186300577588769674857713017632596622239305073158533156324721628644223013601284180738945703756249341450212545357657080988049052487316774835349305468996690436486136183429528860161687631228891812368103130201296496614447713374387285443727833260063162425651413797750412719004331167992178109855808449389592162069114939640942684778657508908144978608832915410379666633035112485770606754936281202816773428429467314502538970086075988065725381332973550701766747343779253053791935127534261052762494735971026803374107755125187877645414650836602318102580389775699896790204749443443563096442805004439135099988563884537737140421310295646570674981672674333474367548034522056048307642957149749013363719037601537227848131362919352970097275500741990605892796473259097724980015915151143463006074172452859178997953318755546527621091943944931565788899138483544467196435762313279438085784510805374127047863992372235213210190070344350520606757045021452491830375003249417142272592931498803956262174171726594630300979333285170859547485579849964433789713861437428977248587431161586220091015011297580661204780522924211917531703228062368949048221167983645418614760575147804580698480224465826702515004950455012328934628798618075904023210328526100593401970311131413965307301264711837238173332814330621380264601275591564165578358030052231514813511433132856662926216551170564686671204144802270019337685742779974993449465814798271602890837073766850971224999132734605013966872297765361418214872022110146784306522829568453656270871230952151403310885007491762668821230767059720808926996211265272728900082411931473752316366136016503305834770902452086135612008249473014131385690193750013676036660989820730660967359462780393712204442357511886775194968654053550918402686408555366148649738390619643038924479029475819153358300900540565794256241754481283162501626852152665099319933131857805781810925099988009879834745374264164473874060508173200291115859058549193433756191546910109348677301591982724472150208280552809134826668471555271914477564930129580003483298004741955703113296468650386209991677850352800171894615216484610790097161909466819147124023251112433700326509789239212619813967235890478032338122128800511653106216945575545218103011895749230169716607008922979405536906738927484139434184016697826248556225448183327039742749617886762744086814755669199064975533693722386217181483803154156180164368459308735479647133823830549368509699488837525745145218548573358391475002999288663511671177817466352880080374409510449453933597164059225271314636200506429533613399481924400301716220581751476386194601333346668211491581530389108607215525860587136150962051334510898586826961414173583172591470695956103702853101201849238722184476329042005814566583115017217359939554137968758263741386609298049253988836707266288957110471932042221028388165098221085273402189987451043143116859488619398224852267076198303097941363974008705104971776782587029949646857730334097550567349543308815975202845899370937503743768157564976136898328646637275641872033605860662811235336420595702357380552110561380508203987269504278961633334654384793105677330819374341449703276303980469329674423367248852246088651473279963630699731319295460469789922273903392768004698771943493994278091861217064724532747949641643955366883957925680254691116708894747068662151868391850304774868306106253208531255875729413559763348107469007267705218011772384178299158335259327284280126589251334607417382730503868307678037208373398009974787612611219901887358209343364859820345949506952414067653371683436573499835234078344971275665977870190774664239869465624189083917474838096864786044591701235312433505593718420615470286068911469670641466085223337544283172208403035191666252929914027727244988789785066721655524311501776325852101825773411768587195072426658136363912930859513632361627048407946492661455381758993727306679556533549578920074963702745039653797008201560709392593578263695902869279498177046674379433221200957400232739898782385306368163478149018754042544332195748989328530220054410145299381977538051432987516515098883426350796828346183913181437885631029566709844966454368756907675277674928955605353548888423338101941853425185215680227509901627946035147517498731138793217604368898797904573699515089677001907681030270961549063820450780466133058631956290045144910142844690154179158877118875015635566755784970796551551101317508325284270582029213317943908804152310042390061231400339650000644697315407794828759980052174326878761974671819766950594260376060705577332890457787210330244374210394096630172756161300044415083511399858182607972544294122352014196833230057552642317027151422728124140881665942262957016616064555454776528694909496223037280326181155593473497916541632766877931420579540061141372684078069462440249924278331883020661940740706420294218066103362418349838952196651048418192943008629624095807581960236068963784994370487627975227949000269324055027850632563131515393308465446034076066397653953321626217812008212984766601069197854270333474559374904128758001327566005765914285688710957794684886079942066135732523039462350504503538726167681595849613228347768025724193696026930787425462838534499790129154551158719254574058914941228935929381775562910133230581202523700619284321130513402999886305224254460949749137629142507985416865387405284057942035226306302425085169044592645643074441516494193617432939929362293771110237397248090079309118660137655963451348834275503325586835958841923686235666011782636793409178684286641561685547513746142670356544513601515468667300105111967528490154276506480135945731467872105188007520527912878514307841789630374776345662310376793823630593190575934702140437633192939606751795893596527410142710297579487169534745257560125451105654881072819736672006956857488773983924737924960087811073152107618837290940576876712474236721590677460724233215922194600684362247679380906232279889053868465323077566009034358627316846853164133022048098901118463327298347956604882477851826165928950115628052691268415388767582464834467619235366938078676193562240739747885229292603101525238695679224073833012820433499222936814383463996948797080797062932599597353080372313741096484941077868875999171894142358444164023642879908917532781639016036514400964645347221974769952359565961721310841402272452445045241079244228754783526143065298893465115163229238468701530821267947643616832700020567982055461166320059957536544666101663521312211521717772045109365386132742924501333147027564829893963701502226864286715729933351414175642959646487483278597041164128504969799266697170991018968488763192340786747122125167772777244437984492961007742434237043275822756276702237957265240112683004493955267944071111235006977481496497229349263758917433786309649050988285281138555097550810088676035883820214643947310562525026525466048392185151657939739831568093765252664631654854076975649701795781658075407218299645602031852204065174759000394148308077237081259228856746631264170067519590430450228813941643626865802774299994266565179806993605259388001892944803924406268118531764308543707008196148468349968057302340472817864539167068017364717522662494518721846866531214437049698872386628180102311539084143167670185946829854767750934933722828401618554374886642064546125368260693055426437695953373849805009367339548254177020431863648992127139728406470402054240065897666243386626507980481964969230566380550934591040441119235302869507001643220013561562245193084671306175868901820319591616154621936421754106274147640669233157791306299426302482562687989945301537514435243400696398324819978466667973361273634264331790227283694711612041784566826812776952488991953462699288079720096617068827929980217258031924847450046270603470029315050910314961942961254873645947687604157750834037347340981662272442487510665858452143686126346717118503160521867246372490374137263254144620409541649788786989247107104989249610320471359535064230828527645176065588621076187968786969242515753679969039537417315214389697771459115087148635623103649282052426184210723543079170562240656984705671657238383698922333865235375493403573281939763997428652465961713225013445047082896462115985151605646121352802593986530885546361320583276784730962361770138463872663631686429813402703267942224832287936056516186289112510266706245697478771248986748387284814263187390574127992863737192751880736487373684287131440497379466012529690495575820274048194353116559641086497024963369349964841311483148013463181162586414512438034709255579595427070935770290596155396454727658125749961636427617696886362087309331712694369872639246467781746658335255269200827152920257019842895509412635402243484747163779715017548034068512243605636006091041694562849702132784183798584613309978129514667593899567457148639989048972953200452191281656162222834661332055131694670534663790219466301814627054608771002142643346436516424835480168253718803351152172305837936376933851230995340557026354565030114787199166778618048399639332205944407604625867736257524010843490661392401502026859959002748973267292271807857060996220419423340634855964591772574248303688034083384791875651319601871081920396109139277186833773551292499745063130637071053475958436227328926794129215683802198720650076058300181263213144006531981489732495035300163205445231893105978651503025539869181300807574007282373496140678183489185959025055469891342903463150657307273497642615709477658291167248126264589108922055939803641567088139596110517726029467671953528428510692076357949129431641414623086021694687983962380268555251456147028315768748829903660410048813290817070594624576909314808067034103845844756876775162575755976276889339590899615156197146669056877684254062088580127748095653932238253695823749882270452358799731591372068590101037150537345759545433075729523300045871013615973346660284389820306716838605822299874540825896445699830743137868472548408684144395073115084925542230324827744962805345547843083298883918493899952282317910995677586792907691704282174512228336472567412569114770866943273229975161910968396601894616615926336098432802049496240301533645966434255922042696784659528640844928085902986820001332090523455993811818696119879154622645140973453122905604581967888962387601852199005680727156941024512001514232142747554875569407841046390390146033676603966737778220487177425818436893188501246978720937154082701120927265768691258180494340590580579993597301190713869103599887702979537466916347959885189787631139525374196445399185784956500972583320137358347728241045926005236518744894812485137512322829908508296089872725500025760531009002382683257654225184273578451035880920200827720266189390278050822077057328218456197593726477936711822613734634453813814495650357120273789498386917635868180149450474478569604462975409483472739735379705294867965806202205560620997388620235565744047232549299453130332624834770819426510835065054097941956944976638300672022037250942835321244603260976910323601084155754635503591012586576938580578293908102644369807477662417845202032618461322806561396108106329904306561131164683544377982667327021608988773548877829823027164635005211775727725982397700200760042801024420439134126759289565041401252915121909311398114141057629758522891875306869754149757935369032129288840902887926721582401795367247570547939820147810236062450027780090649526780022209334088732956480375646302970983775596518322547328276827957515401729060335520846234624460562629296057605662494271880827593417470947948584384885551427203909967734813065560246104086106617343094311711276194836773349063811862941490417237022332326962779115042691319230859035088292431949872201091950048635340136358026996485663362712721870106800183096285825983531026631315695030544343616715543714901548804935173005065472917997586876497348989710029466005274318184736435404308173539816002879736498158038495452435724514457604936193500811127891406624903697030906524164259752563476839067154260673005696115441537983995378833916521719775784772076811641971969976751389888040158160768885622968255217260443892195787104411586716547879029166096455877461254693085447183573613347317494796399490644727812816401904732715714616332248710212162749742720474549115651498838422105945085198310452773152916150253477794974572515591812575021277383047294876874860296664807896729072176126203259239930258870636253092773852368959892806505334408423484289091786688550936953661596807567517868777069975274420012208194093204655234845823541616727100171049272324971858468250735463843775188584472481165130502940815008044262540620526835208658118236770853849494251668388445964640835867338495559164694131800191352352126254490302549784324429440364812669969887815171096340009210802394776953202094560575112863403467691119651711819230638509240109002628046417970556415925702414468267209891394353035115641485462468217357487673195961504275184787098076724930480152722948291297053806447367154518841264965335853701246118189913849361900820283148525321418663474117763961222925441121071514126448726463823493843059291894365764190388732697940089333175762883572618133426948019058854719242302725423220691916640536451349797186281355783729187930396424170624698429594476163777692259984641795374719462228611512944403959608888144168977884766246187253537194964402701245354243316049459895877919014936276794972243673348982376633796645236457661383075765721585465701686932965561036193747493875601209280277539308550639186874587553415514284592037967119262628997801241467225528644621207492432824308908445305594106193988636151111577337617120525904944374060086320883323315649380673544391717507326934366692856827088274538630488667502153852282387143496673501391694874920797099333200188549230797424927979700640422746908541073641257093303564822070353455783212297369836197714492138746487303902632189487218373894192135156282840143768791825508635477409873960800672618572073651291416738753786190124997258742766506799997095738372610697446672778655929688454275514248992913441019868659694564627508652036661193468792685376654788770197052363360866280347796873088677504905465715517440078767211391848787065175742011533209581613016035121332666458020637571191539059704709524924368194594645838849146689900822030163477193119713029180087132960797258106699868040167658946948244426433661322754162399998016103012197777789033883915215462810860668385596777620325315348654735214877138835953386860695891904125150722978943994524131332438062760435055107089137008502836987399299151405304887581011786066936175026298282292854448085002312875121886899526411843447795291437390053381172452090620228092730698817868048940240036781233127135206233257454358139893038243958035409352801661757652900612135789877150778113594149181778062024709780594930641029305466209137816920943338857212092409120519382098120614164717740697172303458910763326955676962471408548755166969852376139814969749666110992657662758646195429591123321923686302823604696727327051517406018477955749106474864732480038259573905013388330970605878092507732468333637593961783942354576706570155346107691960982235010851091167163006867505536501354051259630310203617467190685561642450343179576869410757983609781670483915892179623192856618941851196276785090222060811337150171645362319484077537814556313992437167743117878750536198365208487088528543922045964004829768147339096551078593566891142861136753375484831586970556092098499888213929430775572872566715691762569801666518996822729298291890587491955370667733006632297914980581174974867702506963988833300330941150815836073970639343937003813520852013398884836000584666170658032552858702197288462112645805101065269121586305843567187267292042737587176647091538900509841427220608488596761500933214456307746655064615743148710610928995172892753033492808134570003556744287637204499474479851590153042602639280444002597952871024612384605671538599372453471019789115842805674915034148099383515760926668593211155697033632783872225751785408596177282594428266429909463700479846150095324645659958419618798601125651228745708880152216120978162439944290909782971982050832715299013525029463832879282598560500906090247167233890554589153405097698684614827796242770036341385394500219413899912558431741816597268328697917778002349252867368888599883939685743320035920571291521137209051149412950502107389811785447038331786322768006574508393983426054780663253628172784276084656632166542218515936209454716897837705844541052535211015117262770981226036480503620668293032704607546213824989732819946122174653418107557714467444013931671031451248382763774249625908476843078060104166228212261173854711282051597223701286707861831199742291716813311752797159671049042375174674754230991116526268438408210870682855368871796626576233539310200295466514119187218935735985320498555291239310898180703869895266429614345615677568229762480368437131575087677541311923889583876613579946354237978132781721041273570536871326805635946262683030826860074861085688799680141387116549465187200084747729716428354245406593547029398503663143032182531199728516462119827771158458561728631050419253916596701506788356371575055594878825120593977214818346466483131554663361967082334356606163149262389238967042466507434573879975593122758262733357210620151826717996560791335714845138699507107883334818395753199255231955484694943137868974171348903708923034254739264498259606963617003361452085831482398335813120221033032997363787275508546140268458921047761606292494647359618119242576897905469605099582551135892122760478036764160146088682550609956851549606552703638054698819103686064258210386659768277614582761473528398613384405518156249641383477867671661503625182997039383743683763890439040855911619220811360777553560203793741001263784176837481985862881665705204769803455700785629349913811732553293177815499397610498790756091069641528200404047475145357968699168490748858201572223506834677481806535960931747672460965325232574120867693042434440118224809708231180044322375168270589545922483700883984929824447465826098218248603315669258120437648114864531933653974576633362457224849844499338032123070982877509716010600062435737944329582288537635658578641928918705409949202351830777879666779542873637773597750863469559184031578542128665656961727905254730953826326708956682070273997562387943342050817568798632239541879852543151360254712730955144841193600836942065435821264737082337929617857450497297748052354934638572274211763333851635898190935589702839840685296668022377504635409441831955327213892454067081286595596295008911987134036078753285139128603704851679390339841248730828350362548754157950342266846533822322538705533262290480005605869147992995149395830082753831814640830558334809440016204870731752054015451677502704135155219250985956241271685703111515219640689753158480854612848162369630533928147885142471258968107484964026245217218843369896227922099117291898887811329943729855965645207864142734602308626127984739556690556071804319904481948185269723808028079222758570589335244427555355983889259693425846023624984711464894301870342410999248825315424137813694728536912787256058451104871724019538712859395697725051743108619360487801145504859315549226727648255055235051953976979625589677051341048741854653383478970817238021055389332113370273525244076544422387468086680344202538006248295043005910242200345147073746884027638359613440256849912554839060945866769858446740005545041743122219172879838694125499676040846716673033623231377919706657587270460653349964144162291313129250341288702022649855929896598325414891166660505597453910602020400994597403476112255004279024359479368696840200480113406512784804455000680843365116624970579722747522302614018888724129259075800821115796655684306415116753771058768189318835730297419030510094631853659948363508888532430621568854847593095677362797835717050354802226870758453017182658694200965838483929787395807616226679416371833542193870295010824444251863624805224432128205221447924270970395807115889171019973604131864795062513969571359848962452372138610406244319624834671819252298503798935080932556952660356185694500597079878396085188161603368529946716930492637113285944988202313400477924694138653323774215139439624889788336401087535226559658508268910491887326239898554148226174379822371057545491567797934068571210276126060643386623266448178142964764906936459354051454093025689538697107335908420759160751974669985987252649012513703282833521510838356897492903978041815919057456663631263579615190807216160620618576695282806998298114363418452095606909218468341427747046107338063233396007148416833554997039157130913645335475374903454554431910587753532020904259419814286098862598840248837323865775590638501786341677723902297562023509696136214918823129783897770096860483443176551033173620372783212338944850617733490298417104178442528591027709185016849164101202691623987038083151913400850522094747587837810538827828370161061071048220888163283751983637864706822382870960388593255323287607331477471563720547764125886935534490268631648883440609717089127963290099933424721688255326265498194973382032653419829314081847392690750509295880202830297629043162925450310319888422915212196531356075259337206020106773496212511037228213197063180188548464163757951577349445159326899630063269066426711729186716538275661037462617029526756327212318064498555191991812503321211736187076689814682008408257768071185356690538591552458571553392838149399328328493624223312328549265901593157697073219421741653846472366212506655099292444342430200571610449665715237868574730205728918545187992022529148461350521724690529103589325461801166509844058575695664993433771329394425702432621663146848580508851958708710013901784985606321230905936206628063162081404441550637625288011935336100564753345182444681339541498153190972353605218264048673413231739116545537275713399847862422314962280120911220493970656254397865397774573609753474120555416185963967156563445057037581589030776700749688849612215964266911490825555614961866304335227390097571565415547933948285446927050037915080368900670128250772427272360258482206131945448673272817071230164057435840366868582985043335787685522433431525948446070249070729544315985759782292004650791715540242422516602974178233401759780746288234340465570474848392945702092013135544805628098118229187581080079502544121114652110782022900227737294085127360495840195497897360756362653504153859991123458693119054219013448771578655931260964433011059062418333148121337185086018910856080796320885231242923859394255144789307489360776887116260659276451890022610554192096660877353856019418836904809164811247393872265376840685735732103543065590622786199973107724435796377297861721107623769881617704118266275369300049991696595992643046081896592077267302927074093932423595354889243439902829341361489561708202376587327921482523752472780065911565926103707260223657640788554556262255648981303633410974132910680076165958706873522281094430358801293325799353813687063280390679067964428917400974099967477407614691411497539725321808663124177963831158493931594495642897570514363344623893481025385788495935885575440777666801996146244941734162287987550303375755829375149687557349063947899617457462326068725522527932032013582776536393114071542784476112550444934007388428549606917158989583271206174632735590474203788724807733167060139661319876754837924459557396710460630462891196759961775070890252268046689794239443469889711240905666648046899109654584189492707938279737008839261894389532056826162230134883209662084318753256997347932359219261906790925041830396439692770022885687509232951917068446109974160404315947322609851940016004298143322005503214965244341277458791400888923666360035442986411565030953074635385048721863470414917633811690618211750761871613277561714701975163583707023963460750189074661265411996870325173297681468200624389030086419203669797332992474568819704748454884125852537744255989967331501040263809404621155774584583186908004047536782304991624524533561960900718998178412917670913904460939108382500003826624936962943068637446807011775865430211138315364955963334563699625266923921381162650593058693338705777942671183595063598934664411693882680321430877514858166803562761394223383029398352573119156999003805201532009010144913196792009334330804603921876715983327753025051666670486649701113728890256838542285500011081342442766808586386343190564291397381359804581466081728561783099019995216501396869831518102657930108963853926165888534803743144859468952544677191585240666050226507728958597787557167592159191206659730864156869300344426394201058220097373493416605928597464860241189154197792406432237421110094540739872316732740906913058199325737126533798134549637611178542839744146950925685348804286119712765513979496010131086382828149492221695750655378047630176766202098114156785882281628968974331033733387475516061685338764521125651206049460710241710686666176972296900569556990672460510151997755606351699705011508379759706642748523647658483549323363215903309208272605904132406751628087360077400291637256970247702857352154492324239128147496744406806249854967907719546160956867202056705356807833900531643010263532778411704502821708844049368106540348422629130345053936957108838414693884965580449235715849262541067985577678644690136646407330788319409282100684010903214503659648498395914911378127061364538300731456156929549286017039390852986868172376393367048787711515075065359578820378994060566054701307425221465709694443837331402239062822334673301284542031150667107152467594885908581364377031881800834697149214090630876815452893781147258098962922606393808702896187606620721064066058468289310939285651886924677702389391757552066594294511381003090926949135331878637213787152625138078579608134355023202642951104207297559339325654785708468754086206606555435154794001486855478247528550220771605239014838822133278291429428176675457822538006499940209257374166440491244372417049247412528267921608494150185776090223073249102005710915385554036276827910743785421620260823893945459769335580349789920563582900969056438793057593723961853840632644315472269851015000807999858499787040025502981300207840598523305493842725218443857945183257266732414769738551305186728817768728799068528435236430064870380379412269179026510728223008346175943453199834918982732184910016488978997952375829498435276511200165693369447548463784271993015595117957007012973486295100071959803057733549802250441469699900262978037027659151153320140972484169034088836590908386506510939874141071284748713814587302749302958050451118025443043585424713820453750095155962372390417790851508659653192379972005128438828719220984990225190349026804642442747550852008364875851965702396083951481772494866178510195891571695276807556379133520584784647091351050350520929868862815325999195801617172587775098668444612818005031877818505145946955010228970908251152342341132463767881927066179096221932388766055504049789032780442280997742599241426040724242622411521696473476869527354344169558188780638885703973019417107342139435797596901863091837309748449190619944429100873797921254659473671688299599579843694307832018701538213612711253166500617003341336914187330145002684420761506684254529162868613806992422268063738826110477730678843764969610081738046194449756235222692837186297125682068868400906191455431807744210466021600047667793843728170566820106222217272617539910978819586318112537175271163309502239502618486337446600303779234225872682710277609782443294369305370843608381998425799829104134823055998131442202335152478798198355675239941506179159911770987484680262999076682792168523827840410102763869376182956318595384297995595605640068249036861378449021411275860199533436251628350000611098073522513974086303268956433332527762017878415685188177696923300844692784765138304947566324603818816715382639827831607976621832059740291021649555933975306442848918283207661919788308202440508787787764698732155896759742243910186486571888767814728351144780523054136111467140973314793974645018886873854590756482063321853605913741446980938439304380900715446767334086856531084151366896539614908799730650554790265105934045442308266888753156458715402116461341498022911958962353644593019039935759862579102228361010382354816368019600321523454025261281204030786796819953590730387007856639433117329388916157035098657271901011175881040719840315774927535635493824719991210433464747609198273139094319449482682129710741006874299849996468809789214535076942536715131862937506475131902743963756718637128686109454612946543087085315215053642880938204706372564031621392358882164953763854218547152230352479051412067473647155932533736615880105340969243114377838191602467510555980936541835266439142278863302154136741054814605711394874094004238971549397902554438971591445078743983030029058198469336611337888402983536332505219293707522999725200264340432805472902930157427912945851975208731182735392273450817058042014279115378379589882159296017628748156166597700945162580537574969690991495513068731818422354990579953573070668621676312838412412182430275695303919496186564335649804063559802753486759128992785498831160293797606845018443784803187155894382139739775407987591206306435344335745649003566850652805598767728239676500295628522926848146466106083772583959645293882672393949606015638909683890832361893235727470478830819523560113333679489112154536386730806042468045520876044341745566400838511342200117493895498740082728425377596017673409598166600605442551718603808772587957512551646234570240914698456044907825073163251716036995721652584840494666155146871696280509954010819372433252982748481703335863156435171005521944543006114220085828185985137839565872743281509020204953348102528156791212083081124850351798132978720087061615137098245150587358914338504829245736451697951102434221969170259129201909556465854458420046491554503125445751349665980664258288357104236420072738125229485009131791799015569045310508843203638546097882550199553686778256103289114681518246055991511280791942101395994854695059424126203901486943604047551606856807641165197541535493136248711630760773653169954400273693737814278361362294084809500778387180520159354799270385441789162324305674988850941739301580365143422618044128099391476798998316926063686851320972716696715215992719993493441624295270551795074261869703071468916643325061758191233151955211062869210768494054854187484992387466954757336754473337095902964678964673626338433348601163325927646753226630565314903055513482595208112700365778463185435808147716189837355076445812018734720984155594890097594122650663990770757728003441472778789919322319574224343405820222984262548863941180022390312862700057014879032559375837212095417201260627990046855201432881312722859182978184832263709113865048167226604807060575496302573513501248055382893698061685459702388243075818782015294902274434599078144969823426488982010576683437637607848399477951831718078868102575721068078579339289111488967731848558650001320137542079521318452611786062911466209850538424010033740849042980811239513642719518029663542879317902249250533369771998262645882572964101602391943056229691917387421248726237438501454990089993710413294968605157330871203591574692067327326904728348156862515956735481664209011360119846391945824228616586248249944368826393128880922745823262272840393953173698597280957059921592696303770579093139956002893868350840657639883661368376167195040278766757233623659579540819971846801891743452849402720914158922152048727068068094310305442482488044135648011066954409518990545814622848440960842906248195448128568393202548567365922513505464127925041987675704895561374743409354820409823869558570485614903258587480553340380631171731702801223762333402975855575111433463493478702599243428602830856872632320875023488275542327752740192945333402416128952892444699730234852259947922912849996153823895601113928321826606126146214051434843186590845653845157268807645757932395185938223506971279347338793810704599325605778040698547169125138544345566802177609013537085251692740877497902486102907344001747820901887031740756061808889450856270878388617446441633665925516470685464929104247216224933081543083537434576351548627845814471717504374451217405260308886850303151570706363685940583638808270556784060107229085937348981238127067210287061458624546436554216222030289242497682791978550612613471460629171659459012739596103027949649216786886469508549604953131341211886740492955502164307133459214302259756833294177976105053962785897963028987713064117757681062194128886012291083651919948483356095941407857064755976112416540724062749897694830644907590607230509710784242792972097329209397837978214462564401845639699623608165560130811613644509569856454405795456863346239653275812029778549313440778351386243914539261984509058353512792395929135472044725117251533596021292306400681926837847172556496149459906766132211410502733310567899214423296768061117985633117285712390181831239053227414099336492743434776743305240599219117301104249701878218996637426480601501002012944883020605580728901625876439267394838047467074644250205119199511713161786317962350147156082162023455041471173163862836551047148517892574419511393149920756249130433302054022166973028653521306273275408654233294977210966415833242592589795565806651539733856456755466489629861515161580848925061891280380757259681702102680696987279908230442708088218490644166566971162410052129912544454350349776911966079284685430125756050040910411265904341367696881800269763795718059765574980884938711202425486041748617922373302078156659335243141860927681686031061566811255384760536546870386585283658886759457017584683529672571395033613067697441771347987042810158956370808933630093300915071646764240043014413400125926741550531025282388035696299448732329482943292457685875138701680348517780715978794714978051065722062879405627475965586790093284095706428717146358481504997508641118204037463599779838476076470270941498756040207200057220700497973719661500343882684186389679774544930749713551812713052996543643819323566472100303729254216580101824045705101526058609407780275412050712470206002005362596903443399229851673048701780087124094453172269511086832966124129041317313213675572648803938327819106648760068492866193463493873297278165696411773624952101878602411768107210793672382780127181826679991000603711297640478027651581962047810767709042424590794200857641225917148083553855168145081607362160366803362438094571310749782341001777213720396316768762018785147506652323700018590133742587981364358132942727098522717277589692427898994917020960309864008773747927913570920913599432770016172203339832287066146443704796691703473443138463927319233392746181129432193796370147589609418773278869065625158361828263087240034748778637148627789934105723962067892158278710616365947234639179419927247224050784944031277063802559098020357994364179156313762999002689838481936022719171835496051820374139055517238958229203757408381489327342402960578975893816924879322358310155703250377242162479070038559885913444312942770187117252366799037619497554038929401000162218451176579831625123427750954736147509132754084933555876677646711886743710941046472742098724679195166452500043267313872678966858703512289811709057615713296498067678857261575025267929847634070273762083144554908316424843885117473015179022725092224974246931783226144908858515963962987539696758393781296691939787039793713859558051106237351298127116242748249208970498263691664246743424032983595351018364103424106705029868427192206113617195747853390709235428654446020168579737793010631728484733186655590101162829072713416359557415078290672472787841343525379376007527908951450364108767148319782059029428866699439789434316554843251782590689889708106151283895130863385047052477454091368083721298684867097671876576541466808710838573474510411681616792208660502471583194366382328197824649111138617352583066671179112012126171654784563861362899352664903021925781741882344664941291927855946154017474190123209637125696936607325602685232572656437057037247210255743775314148668206648188491991848758925085746365838112583272708370752957376719432718148279626835649469880897538135397546563153242151234990888295343347753160594100601159540511840553479674047972270474727319962922988680253210829789689396242144336509959146134686294232963377022014852978318625311465104557592648743889741269096254731903395753873509771454065021082244754246129114821790561803161139193681390030450480701691774367461145884271190627215063502683313937549506684221995996249263322512316424052154359326320371385309061113751582286330042037065520458881649197753109435412569321782608484831559181714120971626181360987951637092562945293023859837615206614732414028934847333100215611221588084503385882679200542365285984776736944548314231563100703412311295736481835564604977368033682053748058460301216770626748730522051107203090561863552378646906218750255670719328969069594290156899677675532568081988069500852767463071360652197409666025769085903999024189210399854486295855272047675597555033534988934224424961465549278525352915510080488406794564711509255056226417152171624614264518412107000968678344031471332485721057304742962581976536842759603128340383503100951091832389433063938829385158835761970741724959914308618349582101047122305678329071335934704241605830632247465746477975899348497960117135730838613180929518004649505399824033769563794716658527717934665008140305415030172175928637963154450209899361734044618072391191241913614387599803853356190006944798818370078961976367230277603911799502857533289876726121880299927556196759158131818849969907318799392455145683483691810824690457376747401887718207980578851558877436575800988789472995984678791114373758639566292960074975285678646100787535043415244453486168578171904125462585134213267162191362675127952744729061026477568138625210505270924708216443750853981850067452907924255063947995627267641391151775247652302582557626403145758462334272829969704169579837166624582530295231070375744325649964322736502773717599768366229680806856199956260019035632075337350900518272532432116269284902062357467583061259763452162518039577316424202558894433384386399296365449095609040996570421483463394137362706605418351067892572138960162749046917744638525556063457463032246089900693268380770679536475671036488006173718169786635441012950418770540109609023929349208062174419949329873755004498885653220348226297837591407641129996571824627491045862637975794306063897484607767456734110123029692581433730611973338408208112550458452738155711031139506988313093400603308441557113909909414718942064093107707189502650711094617698616907768195557198844975826110117337744199212441420849003600061328866262034570642007621399672846617211280138279476139583746221183794443035470191049699256510968556266403391428924742027514964107976663231456083992299397773010671185576892877578681012866016747077704652854761539398447543389016222548575481137252545020898045441774171523445858342644519878140771394840810863476356665564764873065142203651879149117858352995045764908513417655511274472118796959035814361301660358709733260566498522921068813847746839742907311808321583658695569385372095427665840034277546485488204582557336353552948986285715422715672621131534987131922610557527170913206908492151925477129003535520744912841960819759863491370463348260069679626978284600838072484392710773298804608639449403862068944702273830899108357418921934215894440900347882117913844399894905979322062910852693116123508811832042344507955877825831919392865112613349546264140994374114878369023526655285014125513466347000545806165292651336312489296117767130767533067231303286681379459316330857296642009334584101996496810860783295730736644132628973615539097032855149996706944851894566171539624236716697263411032603850052261168079632298015068992625514665549913534375286814848628069193103312181155014495426887468370802938315360894590695264015309015420625646113225876073212498424798635006144918469327979203186318520529703396822634672604977335376410940719973592203828897992468540470089500440635630075241713676380979965331193102226253166974573128147589310388931104454450495463006263739640031888928558792785629915526446019764737433698374964334718415222700467398349433405578651221318604082572162971659160420969565722343690014101637480857793913322943046306493224078776101503945659886170212938651447835969743412125067138932844878876810507484830663861973021122469064666897118626753480234558966909907099867838366253154246072673803365296129661731971608075434829751853056264922833229893365535999612824669069982393742530592905863101939923575613682222896007280655961016294985248734371989949852485177643510041207974197993228065720623301974558505937438229464069146153476441295458448004435594990262189593769694886966581915398192730420870485818669728002529938816843152063721818860863810667560067366688015508774029961680629067329229175036051812876044206115254714291584770908668482546801725078419101838600331352593079674607894562991511147863185443344086893683489846500435008199087869752344348460936115293391391495629406992631683776440530069825792826334270562702467210230278985910174064329877137434043109579212497166801378043429755851333107873986045890868691589199674510837323095727350126513366992601529208173825529695849446510848767642825599625337886712940592022185218850797237525746354823651406906130209730070695379721568805172333724159888653713644651642437590346013595339617333687414987023327855552034264823631614045592348543736052692682849206306103173297625150139889888746339990471725221911346519594444589709429795732487924457221966959271853668357014943435338305474073331806474018073531267977409847036639532255921062647216421311276162136915444144223231507981005535969556531020613145781206539263910573060879041351910861012050426377602197452693791595534783418345011895861572980718326324728625038637214168344139674013190126713021719365370488258754919172560721456350308014098730795433937394407006248077845130257135963553677696249719789368619391315155014231445809150126594381040612784792600705469311196217426345020189398536399432236847226183272079902424636671368527225350369546897828517847487117503093367333708467206212259310636475264161185641847438786897407764755103962977258039836991909177499206343548384953962664091161259960015565888083392430864042064859019239961756851644523767802795554068513653686345306471204882963742022397309936590392710989229195342830499998127004493605729764732085695969718826666643439641325897271359904165780020095096401801091637941834452059737032849804388466993982370751317624731052739495703678525265710706080771095239582000690243275038572397748406482976630198885142334402401699050983465529489494363338558393660238054761655790324553005752478046619169799941060294956565189572117847018220900039226443903489263094362877728360597103859258501453404543479135740923841023321426161672085538452118766748475209731776899981566790601714953586901450952163331037309867804111494759942012850805356227767416081214777346474139965790236774414230038093696231995577152044625834100792565978400724518515637757648428895689919061288548833704583727096148996786386360830535544390542138562331447770310260181522473457392886532227343202804663893854187033567792147786403913704786945056761426268275653622931500291188255804271891368899944592260069308849452950101849899517749154128073732008716465366828685841034898349909004087787744705966195350827039907233074207176099774625363691765112213005824885701648758351225624806511139749129050396789919087583450595827064970236625335013084476779848888778031503356198671309532224207720592548276385485192729059545202637720899636427444796125300898217810362958281465452680856382084203317396623510417839276388285421294028786458665259176720095885398441683159998258566527849243918241650583882997613723753689885441671390274197593050415568578739143080837056131013758947814019239728379742662895273492221849960433699151901870387268379835618916244812455652677921306447986363396173354217652525314760431547687038418390669498736678189240686213691325542744903197456160838599214550739819109779702606016546597315275029951400602972771309134270468463931849118213235002215273565281477883808209513630047265577424555000657407606274961975693261653478730114922504681844573108707505327657981516752703153584076705396282479961044677493898104527088586180278602125537254274812164988226553852039666241026557040252005096837199468884080970270026437702531115537365160784061852286427710376918055657303365246989162012563193380346631369350288255679076461690616159660504310483478555221936196948850403325172617176462041285661711060724851846060636238899650469105117635276016208402122592644319890944189713956374154443837293818983276211845955763990458452166483372350251829978087984655338434228922773331663366999502244428920193906438115483634217641852409529457649533824095030846538885212598637649406739322123836672963598971066237398184062142526446657597466366711457152524122292394417986952977593695568141568260592243161574755759529373172463344712165772491508168250069228640856574421732218904932629042714727055241241255446186401788059737643284951934252825984552861480829227144063254328993224121517762898999835879178038203535193610220314229729391253028982972923802897007324939818101646309650659826425357128639462736273815693174412921759991992132859396442384682872365041254388035638156069015727790534103877860182214037395425348482389155730594331764548324319081584638565217353226917758500281239464085167246829652026396476911027120915150825471933599150437686352179972902950392188349632273166896996876567816672197972497431264173331747150055766459984154631659597065308035473052863801703616773335849292923995096717817462385270586645651704055455670547924656960106239200232134966834632164414437197138983767927155789178710983920647021158426954766583711442490461185358349254541830497998088582527177293298258251128746574169821805324733650716409026118116004038607919438990737308538016547103212897106375988667862912385787954211651425601462064095277167310998827745882968520185140583202708462701854740665923006471907096458266435284380107689024331216569727934554228511107050560024250026788732402779900027244282117817770671155335902385661352956511560449052688182320589189159847624110155283872056029433812664924598218559612512339027285877088815545249567307957739531393586317363875135898688788380359844359661681309920385425332300986852749880341308684808349869985232281194017668673785381092203259771209665508343989211762219676359058086901483100585370992150742816546654223588675013038451745320562566305351574843729564068665662997516978706917639899394454391451191451246391886363653180580610587519899718287721438987031905677217494415541490878856865818216079292092097583168459195594986132213645907947072744495649845593266596054664345549498784313397496856503998750254766258429806060823880890892950693451528608408073182143326596944478377375180355881028119561481640752942888801537767684536842849430434669681070961850161471260152565950905292091452407129572159125282031398316277183535248462997374563924987198551600473305532143804875514305762456855100285387763995379335500941773725499016414113006430893836003405909807465042098697350745307009163905363224646169029818115836073333908670739025259192299378754571951673247540435089428163101556784777094875148853781078933846633774344275632284050314504366451831531114510150289872382973174644937181136564059043141197956842376926993765891300173519493325368309527691147840034224979204315441861455409402398744856184455094351623236116253964469456851244689533981417327705862961635633289433419396498642689394234717485382945507671806693344004343734836008886091046069419825454272854902364858653314575566044298369795897402055596413980430123504864728746201249276351923480860823115413300461926405371797724222544946504769462913872346925134757908961277579462637803865802450598855439959661493347798278021206091390039401985414172334650814533938102280527358376972177585778260489726262346059502260476297223658889947712700318743741657330131716658944954785257451550758037591583507218248050150881706464307838018392904408636038591502044807240545262195446333345897609071568847951761804794883939238284774538378969135279231747374957435068186185701185707812389002652130036836199943806581632692556836557292224934843260155161456407322983170446607326437282226368170471582198201564292535348967645263861995430680174812023974861935191027985262419196819374553597617875444782788544098534763069495681033373194292442201550458891130401479324568897476849626579223873762005098256533998665947790084611660155765717647401347555863643248369192587860630207033874425026012789345423673352803816963500895376243808468214588004527952321235836464754227257427715327504050290437639222817898995241258215048812073532449756355893259538692505289213827471942384515039973875164634015817960735543210900411540127597308904246376221866093683061298419935335678713957425275018783114018198954893143268887811563436043543911290601039909152579067156794870281961392141095601902032042451908515606756630021466303205247886350032281237363730501163878224015599976952882822586461279226691878604303891480051808021387780988093076493292303666119304871368534437173533771751089400534193351497475573136306981783163375576386740227997889819953895462398858058493099160118006959942777537044548148684230119790217079835709656317901449306680915047561999352589842189864865734613723432405912059915320187707179960961566690020799473993699280394677673620045500788051044702762792645333985997674137140612679727082451210122881275673562670549841491808618419152365272952231722092088010077099080350134458132838043278213408195011278796405292036588258652406109953925986577529961095903792052170707386050826610636562534644906024175674132426354898565300250012299109786865825492853700552402731500719144326294754530074101885497611084655734094561447099980119351335481785364440715495382147193779422838658205328181261373373313055587389345178305572407120929872524109267579859601446570638756979615885396564814539605954927085898254058033265657196893325962386732684949250925981438021836541674996233683739265086512490332854619794227807293144226455772441911313837040571688656008930092165674846427590309068710388573052371072738488441927156557406498146015334574524023127580743942315282306021169984810322049335533919494861891030816843847664330463286831467850614245567249591968746567166835960413898073816195758500068825984813936277741860203302006593453731713733540613049676244815102392740243184349470363508510694508875545064776564218894329061384599309055354920549716489620165349851670805366754705724708916417214030160609481672119754820185808383893859563934579430125250829803919249076572374175748085797670434649574281589876497593633340223176032614302157691430984390452690639042147732705297554669299544681025319104191864755811767560202049126701779538997580898373033102011474085968599746734632834780159173279952489315787632494307679856897378763759612839003280099683449772476497298615551822227783154830180131928073928219996857201379451225742590133236299012856468264625351767992748647386324633455648890944969506458751417653517217218250973980590397786494741558753060550919014376458400653243524313592023343456057109369879795912024412442854295160305540374910546312804821299363222893826714172311958933949109540417720427050095219381606790866332430229936207691457890140943370404687754755267386156064916157749166624781233157841686337192334407262613083596617633264284438406848867625279674031493885222979713477011127318877719126915057229257877467516569464196027211286369840546473342802187321501007654239811241550311167147043880825039671413050111156173831151374989069290102353913540803376988667102581778262535717447549175629928417723446835216397068733753791707803660036773657130898846976389876733304528809023428654166921016648011414565990106317230814819143044879922247202593979830185105953728655199465842760380580724613381177216777520152265365334082791594488854161704869783092145941326146899500213201457837457411738190404000351282246113942674006687805419352186751479432270620016301603090228532032390492942434703350909415170117337274838584684051564453970986686317925759619164557143903381987123521437599786072304431719694497567736635593789834696346315131601690949009716929844927927350399729994919082122972911442437072794561205254462836913324321002420254495817928678112425265645630179087933941674787762139221337387514742244232056337401471390819227083358384269150121692232338820255778335355441764709509687154308607201352562792580659941631974704010115290921537892724992306353925486778069777629137054757790717539215430011168296022152720011902663508699221167565726653187052533191921246035555170867032891150118382973910094295616318535106442526966554475789626118162520664180573619050605183243701408373405779749539979126839719529926393923175196809138901772541863984338988555897898430126691734568028791405197965239721403870421196274691298309730157987727226813717443410957411170247608867180288603773151501541142060285885636770090590331833581920632182655889018426495064714369284415558852686224228700230139397919145083102089897397814659757785852365198050288577033091333056347623608951707101414882080316757536884523837272582284637628495644842819284813052470151955923003314589942727647675110336794042588077782577174347465968208910863150099990565002553502892902891315523598946954803945586959121951301767014889792564259141036416264325084620770021312131014473304285166504544557849901331074883646198007394279955846245283714553799772887221318700041614012941437293152203076792714806655398776727821511666993612308291486991336059719503707141169349543971964159929136589974306797976076312002562935121390742078334750043800638684596139090921214548722035413723673901125836539038166527336222436570023895046050675115536188707865149146651168073845219082166156811163386770284920761430530021719975356122494521368426927813884844294703250370713364972619780659097692945386686745244422695075680653135956867868638285250739016605065618675788781814456960678244084757341416342015492992976717978137653968134543969394399751359451629027516011356760360433229574935424517873107173424265661787170805592534210207001613155755447079535773432042281985241195556639471935593278916855928158486079636998525173523996473096339823549742672423212862766852597957549158760127724507667557733523489164948424601354661811992326399326541592288780125554704837429990385489271476055745424620156159114201683663452870351156750232655239088101785930913662886765578279033721271159016691494221464278459789179074887271056206690733618928486320735846419681241423499919836802103142091797730739309506370763892425365118649180098647666643112047744804437212890821721505627441035900508626274639054005185305005252244925975565367531398222090056942749683034052199189050524036354925221257157433038692914596053677989713950358129521307488916625545113558125489817981268492833542631947415528837921075572985429738936913803340374521084164007908318647776005349354629055686501244386403798191026657838748494631418404444883800114270840627054384260452687871445925254320645755598449006217454337561052206598953332709092074678021625458876467866111255004143990214911921990186725000786187207338267800920143303444825902000024753488078640484502418844158926772366901677510971696913431413698893473259055192367966591937362322372861762450469750266975288394422764884010159991218023927096820039556819995603934321247960117467039203013328507601076314962909984784920080220932613396994203152211263009746440555757206020443668566025358194827498859341280864819634620662225564931206246514680273062592530200813134887352507131892232593111295623167311683112411943534708117646415490270580669009407867136535183238322086842404423705909760542101437636869752143928024235563748526712258930425456148962638966615414158398240461495055866356008609008312080267029463360113484864479198890637330503900492512854537567705535273607691861979318250918503679865878229956561636759964640720290984266011365602959627237663500056714094777840721013175724501262922433101478487927151751407944343439211957918192056476236005697571479933256480933607486682088162510727951406753011075763313793390374672437862000688904899814511288673022609355977970107322891435531404422040147567595849962071617357151187637110961580270340828540535953854818840707676296916719536154133286993901394231214624839970011378357014664085468082866954365205317050612721947548907309114161522070779552513672280129430459705281661365515620441659117325433824163090845344860929958374011389383035520330618958074123855434459033529513987367429716761116384838223957131274088962295785333549147849085157286140495284700771597520482998992642414075219897128907628001947876537275433816589183120247714834602888207330850012865574093364985584450273208813868020019880810022476907127857618905109933261149112364539842665525603443536760362730472098400619496951824349638408535846114820331272588282427963097035893286749933932549507333191720254300534256043969331879822446378911690748651064734319183294215408733690425799239445782791711023281155064225989318248586126313042320666250492818952745999132856816077790566393563450186082439103601624526032366694111460290310985837526278985240632387161228793244561026905026311319018447531035194590337094332130462749986890317716457590725361185671628182028897551517811769741313912923347995280405508382825936492546447985726747074237335523980435470847782976446126259027128661287526682863780168452591623053647738912685191064867901118057410743580563259982210997165339828842439010425352243860597650198358608621550683853308978349945926568380250638114668842284764504912794404137155327645945024014735844847326367172118587863489524829654047908318591465814128184430486284635059501776439205238666900651349770025650160587264729186286631335821618881357692634602756596489605676654288226995039477542738998468580322067723189989048937604067437163006067455547790021632298183181366671309177038658740737532650913374000978432890664773029281762550855250523476951549298546774619778505326354875577175505013688845056105006963676366813363718139530239912159344945451442949515613026436381817236992760591964790876366218958137981881401750330119397525353543035682771822676133137267263953521733519915936777760292593406101861124514139963244777673097661493481719545420394322812116992633380252139848556809429374842415846865008199351025586958095692603209898792205932497095719214948197158263669988987747375169584960435689529825011852429470134372725549863926507842157539034955425839057040241940901724293982258685254967992928033427700485865733069622811383327288360334445917583844373188403159547269691568191256905467237211787347942820233471823948224266243367269828516131500664521528071083891169426873247932892266036223597897088074338812672806956168841482948365129545312552535286590277925047926373080419989330689239195889332443628605664655589524317803045199841560906887432796611813681547965481140066311326737289552140343456208616589165599545296942391681276339093354422051630574463846910401903285183149527110854633363893356049116454234461985685136642080103881607263944733832202819774704089091195457923317264456066636106136850515233579588688396992854324346968822531681239717491387945767689198324794197480151296111691841625411186360642935406129642734586315678398170696555859771678445582580610157272690433908690385525328442269407046937002851120273837496334879962752218060859919596430437371337369916834895983337504316026885643408768033788495056139920981969779693723342081899144662907239017543480041259556416118146132874298659340377346865954726884963517819495908866898588113539219446181076861479339933718734804135742736709449377445546157545152726270623681431923956291657923297005070377226232016943952941752104930222953513453691247499703783098631720348109518729803580488069675622376910024993855933218766501624471327036782455570713346426033402649739579062614656129253054998886085479019355901826567957066774821851775612634547463091287274612855746138359849127610315790819830212922269205423501962499677989690473883046494684410022832469078634862333150720360962008875939141543131961194900691952470813083127597079684420062274166159073757446523263404224342452287877026975401486049673857776290634959227017306908636166547608283399084221405389087408122260833389527334411785387953071401635237908024386158629610797583239553559387961643170849926090513113521038900396208872942772340290291185652700112592520833556587866496224804682604342211156583882087863372383813775146163299093856681080978240806450566049493850555995911243479581370394326705079540135696756342743733815120713527818874381230263092046218523928731410533247628678086852655344610173299256292785048253143059204148082120864560564055602632101291941950708272026666463771572584337737931495523031455449509932005153838611283841618819391159547148961492546546043944147336911658271055533200972179121046834792439348867512778649018946548971055730413359244719985178340643757071115919229282790319114327265185392145736037569576443520307110913893953654922627413042787721017465658389383349598871222154265547529699502468731832312108689402189530463525229605864085342019900406874087724957420866116088760030642387245149121231443983089223052718092551559406066645601920314571338782534114615221039865374378294419005162605909250018656692876706389879098986597108374160700149347962161966017551987400728732777653830657421407708003690837640216788075271794197431875131293840797946952959225200593255605583516844363169231834531201615787584306791125989194782709969656194024033126539204163920667153753845161335338767878486816141341099911783820342343592764741764010408009534504153406318122745997450534744161508576610247653336328297718971211326220904505578387449839349400386280593307879904034175418679401116366273015090523983349807964724818098268883859016871049942631411013593236365768995545772071618610423647759448645663758178424881912456500618648562241654298129945211053677573345340078439401277421416805248282166279615247849823423022270839299464441965161881399967385311772419963862789307768999657341168892791212217826455992975012863596193685478409329319630367716145486570421435645637423529726734991493479973081917992369076370683026643249582827334026332142292819529351161972786310011675289076658590334376641014745028403564261616726725958769101417802161269644453003566468897458028214666515059185800571064631001193239287783729883578133615851486725643453715033825495529327756488227667698527757837345972588740188031538400169807397898144362268411666086570566387566047023487615861868091638452569883159109371494917069061818196882954807096131850385338312109979203964656557070091288665355488770026967528735457609422274945423522722299031871993364864360535890230724496068777894955882627666931269428298790011668367336582111197352122427497213658234679724496999590045954971200710788545215436541940610109758515909435211381983417576420376838629655760881123147755113206892132055696703378516028229564046211026517322978511191803404284758806834893603576914349127779095690895726266001590055460965553190441224351158771690186397388066298415416033782522295053609405184089898930417634542958569736395004189822174641499450941683514510072874890763621640359105818060776979594386387470604153430634327216129602963451685393915658730957215301447063470978969578388017672915026159047260041526874552057479521185153622017554938119026261745209104959650680147386686187799073224268447940870928912215969420140892244097334090169115487274413832912423727242331124317266557045556063667815572500652704909956289700091695478951962375097190998569912009272068976369414295036563338884866790569728443186033607981883695978423326802261736292425328097293193648227220909130362716759009689796749534597234424703416498489392330603168138667907163408155405296889344480034040470813768866532403814245701277020589426901965627807652902772569122975560232375051947983522683466844062388327245003307398704274846985864474028550022748196040215989784006721517493001652981684996971367636364707892185423994787724259391096222435037507248792695854661724118499401283026578364547651840250860618377426877476333647629779062145352595714638035310314649890337282848490716895235121612651257805593048599496155768330010338522072487062083857994356099494961966036204656051072877249389911011921098284232093875746038220071644866589279769844252820007349496756551986233631187891853169274248842775436118434576852827873441823687920200469508225453983126503819556097712867361113960361004697804329307867717040133579002612339410041456689493635140686369596991719636408251437389749506182393814448225958267696377691296352242989393633941607597810300137217196221378694896599588894366951148988575642627344398796284027969466138509503787816593869813026040431262355495777699926598764418288418032346762895726270071540927551610664403174240304982223672549213075953562302218472258868735512169638049154065892570727176438205808420235550504399184868358119580310631754929250359974748723935918726456643984112162697664134951615422332248906402753604239222627782573050025186452818472212820773566944322202639887422906898118629759642917628539614508393031020865722377336027003724043149406542778037704264054014431088067113900243349845505228797481953768190972208711674493889986990218051313285631535194456682401866077937222756761225933322820853141821134290912913792100443685760395896573276207641794050938566598210058502728185173911416179015266594206206436476633610367933661622959669785132243760360982004205912280122926498105439028800372416127950029293561801124053076648874072232515841665033679285489796706078830651224994380341837464088886951964456119833495036419789754885974189195245636473715801710444467928263106803235483820929905657312303684075019758912525131049471460155991468248552887589019760334044412105945451120077584705227586353046081092953896815306293812605904994571117255335557514524904871627469685289241358004268983981831654714680472565616541164781905403929269130405384386898313817103248523125098815309064484306548339454588295210933079799733079372182658034486450014435522414931598152157249412318221214307306781973034386974132798628976771954375077575486679178998345459837354942359438081111190753247451724147125604330211063057993052907862746870970367667674857120128259144064118603591701214529258304468039488146804853696234628019206944461660365153947518428600200590342966252085388326629383051167047902098602670779649472593722202482386411722335863740344912221689345856275366891916638984286843072065371339086146866140454584365216143732562305047518886938321309558465657619135525395933533652182675957607528653820577806618880421609679854685349849463593646188198224635565813345658949119773099446424889857368064294801327677711514727287958204711243525582806924874586030417686040153415079553077907527680630499549654924228699241248414363567098821470899252891153828542513406685239010902620981651944278993191754663416665319754239978929373660695756104121778656557168073883686325707233222011027866145418274168522420180887512838235347185417772767526918093206560669043866839539259116854944795427550128564896403314502799147578242488482650882142648318772597655064986748002279133855372460079769052596882522464553970384649141077236467125565480810365127228935691106415883687553459078413665018160253486975258607049019021145220632095583100349670331341445542157477132797728046689737649476907380583528131957949214685093636380583261032385300402920215262017765173462738538150019231235752726988430334515206835076164989838864893410174598240298725816703635250167899888874043370795496595246206342376858196707129925764673920759421253850473530548349410030486238117900643245451046088804629453047326127104627707342518389092557468706455118185242691796663875194113798359364617229938200195024364567527310847586714094494000957187352121732880902632618039510111717398740009818416379356386699618115159227537541591739620586626188255940739287444022006200992915815985927636649792748726873792006749686492633309105416648025696364379223043835674557085712128455946154277191337924179386693938092180704362679131749040217124017536759331860434693570092005236799316543310297938327012924663937885460809019255514947133366338997466581516610074794214198493993780985711180885371376597769860356644471171129701849623837171402603446555087671830811898275210953949913975795138198632000599411625867393048255490003918797115172196054269880227455702343303091178171645154847843531063467470860074192248369770239202170945575393935406718836908605465994700904334975722669658077308720256130267365964321090927906594400565890731218432836680868634026313205893308526599093564739475038946602575574167165698942788898109951371515415340815612625672382392319999764419630512710641680277118607161412687808770582996211286131371241550518389550797000796573469059636566199724025766090605146789039801335367883362607361675107764438037337889279612086335218030845263750128472082722945459202789294906223743967219969962159590819539855722672694892552663256574320492456474992075060131249761533987429016837823873064116838553928003580736564103996526604613794661278013059358199457710237344518538018969163948095637577208633954439017891145042674592829706314241884452329204836592053917110251102849247149625024253029200510146633830462619738059027548816728279222123619098810698681722030967987208793231459306899750303695955987778866375377584406200820749551925905415494790769851364026871442497686238336822015232931502021373127245851931564446240268928876717148834942686852602129016729573638646786493104492606363285012569322036857210381043726340776763063478183084185614914802702609713979639709788981341166954422404197425756043411804920897151013480783199319760811140554347405655085376888229487413734757869078881489150219752951945203308404396664067488590421094561942302482499023953718969804364505718520459819380595807730871509902065069709362511789386617240825322337930324391439054519117739202577976773040682328041463134767338454898089861927415592343218311636097095876138562816324487152845172291043987511159296822612296331152989313437925329491569196074232152101845483952711492509807043058472388017928609863421012353020010731144354379566895014621815445570163825959906692296461030837787236919659801390647901934559218959239775640161798164693966851537629124680837102908447484809482938983859604875778414837837790748314191762137287778357319565215063536964984016107741138543183294248695555001271052127273972432920117460229171914709623580406417596881871752650485991722801911715923489508357762100278119595406899589058710052101408465800078930926938738125944361727665540094681585881575025028692138216044612532409051993388500125724241498312101767458539978299796319231263236200409429210016550819302517717576983370114728674020845324031734185316259162011198494248848032747330548289942917320487134245382657526202656056809043648416995980852953484859708587458421810790643880390395147418234724973934123584563676726318334907907411633944617019723940211921521693260372664163087832397768185662133548828694632749595302226813140943794609878360354512276440190891761538434931195554301262754686850600160949515856151036103078463550644940136003756579739878833733012391673380011734431256490309415860457503987520115414075889041154941079058790450525588560089661512816166925558486577389226847232866425754914081667363715644400470701752126103228703856614442914803651894801672647660543994085126824159066227681101459951504703105924780195808580705874642851432225028258648531820024687516103604745826255360370839032292931687436982460683567752872389610500768372764289674439164735737046527109881252631263009744992925815254081494865739368167845974276249465099949854125482922450285071488429594079346142255705844858637866265210176343218411502436979010581078651895544373146341546198849033213171956233938867419284723665386457590186023702411334490818116721202509526985515734084115099966032932964621161046608539995650150266712229825742958801756877251932758940237983647137236518415652723557529005312154263462455991391529247300421037833259455499625001143158344334122958087363874382661373239304359614089373331860649743325059750953681285675797101410887227519738747691592740541302198902368657555828881896590359947889128377648439282609917081570117774302516569875872994291628323014373247479665215878415779116705418972579602215026567738921869130949314846972249406176147874344307038969590995517667111245579210091034926919003055138552600920183128555267749475462120073435961172148962107677437051981873671526245800514504788700412731577993596302538069982725307675939408070106050250844744050363074239288260670402943020245283594464297197444186019262304931614108312480599812758011752897386105636848728316160388871269496873762566399838923170497523985313448617481744122174062848826328678146424550131298616343986634051593915861126814864115958442956515445816761054160318299795327873690852580738795510380764506861316309108830976759807674727669954064051158379460870254112798365648625987120085596727820050164446179196623980799903222848679379975664153226117216682728170368140401869828675271730565494628751899015011379880024433892803728277336989336411790546660124375290815725037140251837182256435144746634394159887530640841244112481231470898549933775275080907135254163625639560273990240047111945303350740264588813561252716472333052947168166599505808276028367056293548742156232609225966619954966074659665629292637893804213761512037205290088523790402472192094846348938781637550499031946605417018252095764353528512258798401337631611696004245283502450600011614137776870924605884881063329939958623065788626869545729395777485254774466810542205280811515625883404958144234892440280764028427970881933115232974861095738809612982412166470854182138300276979613916937037247909033774700525545660815817075685382066824874740385655548947739055841041093346191804167761648518545849900457738019401979534753494439906654538575749243277272551215056606722396452149347592793784093502404634724857188609341790775859066098768286079790563223155624916796029709146787209142503097088928854108642842909342729067202138602478518929281378816030898489944212269866227139425348479840920538736136273057198509797273535658921556841759370725860367678991215352964342985330401323889034319845512051642166182784487396257798776340544976178414067706067675040608890184887797808100401213379301757207618037970398756769961862522511057452899051259199056844878932488080244251709705096020278504052631022339831656565556015717085816943882785340048950435091375798523093156580157953529179540352716261421074021875338045642542171861014885966742977027596573609615440061357241059837951260546349178992661603304150128961049990888711842147684029463601796043278507591844044004723400571650132061155790327017615615291278002992972260869425880309861977071473949590642541813580577500052086970476029379811211962738516109851360802453188980784507325370488664685397659161739905094250942947615571391837569853650375016488102499640421798698124671298541368508277877252439118622915380801235119323024877741205295836292165714421279098810152889736333563280341010831983050943575938190718468600840554951588502611929990022413216243424420445033800262468086385531578282651701452237768179748915741352029313567098366094954436626803567849575640713621317742983242021213874718429340981994843560827415460425146962277608455639617553514960210135541807290926754483145845674717840584855027408715046192875586408438861440130932363825233651520521812004312943743585947369250922731454599481152868423982359830975545361804875107069933988915412674032113612350452151717912332473504400790384324128213004837158756204641198204721947824836740646447584362938827435468044899240820619295661296139908671347214616474816615836934163926315667107269722964473223496402577743605193110528949625967702641523481074002164788515867313710794694674493980450686922929386341803577197035285220931817630012459750521436019894058273505430934873984835770303985380059818594626302643775162447844082958854997656326710012639475906852164240654196547403224268387674961618188819944504914879857122843463349574523710467714835383323856558838352612571104397654862151935627297511851106631526344509368495455079434106212958516271443628408505443453281375410871996769251241380995729006689405486359173550846414204665170788527274179821843794751347078589630845910733505308941440374070947569709059406860800446814075012308929973786557391651863783069057290285032734569259250354868675080013914101721559322375044455155059949418784872148803701479468345748792897355473792922814761076330640809543665633133895508895252614994662288690061272752593746862433578824584203542805679660431016010940309385791156649580254697360083758169054389167553348991600020397201120342908527915300190302359490364044985956804912795691565977531586185430042568897080342280060541912417358864975976186870513105048938294259066686147142208743944671585665812985953440852637114091384210468495700518108936838821181350976803599551110070702864115876192922528896043925954610828226246397075064279206592357246801519222882588446282892956533766107019460330223071488523707836315028897189129571641915101446770254185689534520219974932883721403513545066816683866842562574385451602705439124516486674909108649377107731802823029928484160732971435291477344799962237465125378672160697012101825867573188176492713985051823356440576790739934933877958750508795341333126205853444513102119695045120955012170213466353301886208215488624431895413702197148280698781204596822179537635873020939947925906376143379805710773819785357936659308745471284647200741523048511682765730157249075101360755334870287946737626641017364497295834129517997204227782992960118703944081140609132825246511097774047146170440403328382134803691678124221473966140505972443140410151208537007137359888982669937417355466772006395890085952676817566836292041734332562607544063726238503751801952245582717209727576561080930597348539826839164655281382498566854228408311337372216308860755109454080249166320531908423917115350745003353926244709811664353723922687197310706961169129185881414282315484024066158028409130458619332093917999596060218401139046800835370581744142907193197856639664522336339319344937979110498615546187236666529900983554175875634071354072595938942964411017944380336619327363287297579279664193517425002145448620074695147584770329017395008907862388410146672731753800674537750557867116339800131206127815787831717160670807634247598962278172015327530313178928125423151576825406729047724238194258665031875870457753232705206748446934689224788013364278233438840590203515064888393764257680479686804846991017801398960582508940233976277674459148259119413494784317983639637738206806856030472571636489943048541008670577121481880712316392454417592420973256718000894157417244777578499252750465434680995886498504872759398208287722067768730580452461183121742115305854005301699188281170827387764459028614677220913006108901013580599675806325767424199871153640948146678277038949698480587464376059035911055208455762264439670312194015584442448493086231716755640277154436937783023131896548591449135429500146823527865460186495675389979448378286344840515007982056401054787773376390035384842483198874653370650816189349407277257548234624752229764560053479246877659584424388815138036138656317557463145299545115639840011944228243926450626779446802456903326325709497817232216121352673094715760275314776324396967693948606700525764877302868081675824947247377954755589973125410479634496647636816233284119710970510393368307883525594513126579046308853831944422851906830046533798212491148332245715264367711863634533778384649123683576619169033417831611697056986119560509512487869852742234765638047661374738127493139205819374795607626886684272983458569858050320181560187010012977282539204709966522101035679873845541837486364361858834489630963606743728878399602006481979534028939329663852113690391011177459299597060032987477708370474841559571039741842782406791633287053870005081659949512175375541419286862766580603896662473542104721860184111145618435064350345455572662042899715476706718091820365189751710294253843876661213707397168510567605338320209098782935984444439459686526946103432088501353984818900261659138060971674864971980379362482962823261093964677643755052867315038508229178896301543189458426063596705587348625856828131236034004056391032256921033645162197256038672336450083075504882131288336187041131869544324000680415153056577467763551694679960006696173815640569180912161580107001321451994732795279347998419799172270709870375808292674126001338643950870799870643579266352600936616282773126895495741410290034635315613881737737138539867748116791420362279175146582381625986832385007050329048736468269342725287895421653484982251594696407252319593048710277676014639779693835727496335342186974381509253356826603420671874976005990138640129406642948191779862214365153464407512559092897312639814075347725967482265483409801846306363427782232217035276023576640557994038013569030856775675721546770108415214535751666149252407583556599312229520468085481026175953108415687554516702917264152217538860515052548628243056407526960095219066922078058936558296773161742936372871611080970710370222186583656028713549241726250006925578897258470884677451673183591444734163320212753000670259807585265309822715795215018466838091189474371397065691452132200855418814758244459793612298720015590610070578976742670197014569059176635768866286113933989062024030468989405914604382591374194301578399824201550186951659079251895133744952226108084144472833918663685147981848695654619108947122707601225497155208148909227151452270541326309689411926868476638947905567604483198822256604695268475110648460070271221714413394092451682217182732715038864821648593567623920136670351026637508607525147862262359553836522272219549737024428642615084862426934538207505942833534385195880584116606922473723834227198144111019797327481446043353792597060921413762078543564222226629393570377444078294601471799410264997616101891158892274262472899756116941313035762280330386103067722860927933758554969302255171846640365309483604865760387648903057071517578538827376347345907617167664858177775980492766541092657272645549044256258733192299883188778688123571855302516077268790569994075725448728534395767410981500604712947230638805612614944605566444394194583054438347204448958329123382305672988612628072942555831771333713232424098886775483463058234373370400674834498493109060536058142095275637240531825980515309184240486981954348064894732170251374410528336483327389913243165114562402198180969993569283437747147371460109509632868738752144150747590563967482999618523721263163744541462324522369169626563381236539490735489680139424580627885192967515999371363550329569257883032677069770482272921507320910834148369907334838028953478085292206110997755630267871454012764088733585379073746006841243683830803513721219673386442945344535053584461480753698026484580554525021233609478087786436239762382584859701961270386218729306072674842327856154354421044851500658962232725332538617648303648204740744148590415859796362129601789135139593380634248835543259954371904985612094259245605174208125962541116613703599645441553737225708887118780504644084019626206560530440355176251165455695299082293164361526971500566089856779912389910113417385199575589765879493749406313122126614925148117253025727315662026877185901644297739417137195028001853880926522853417554754469413527405518604640089899868922830599041058678861678598627888347102296797274744727844368573152379174358676046691922793686503250916841607773989653760051718661383183920493188545624541095295550385081728877149448710224647388407662171597516874890538705234860667260147071540205625886153817739313335440396489519829875651535016079569193323080464791842181824721408917587683433599147584652673199958778742529735335951875647599482076306158730671560039656294172117951668677825086192589465903604540035059769984808895253531364430213564928599397596145827967719071974671680732675203340211231763345255892803657164195085200905798090835990948700169566375753341600809158085398520589686206967952400817341394486732420053827802902590973414443719681362074427762372516095272667913643723796712599980098321344102154524625664955472288566024321139022220006213694381867572000160033453590016684511700930503705101529527628529982575840097063544087105158066043888128987927401652532762990157564070164972896914666747954395774554275061284132680562723477233357136952099987008818397621864016002683409789060397962731559222677039824105243519812428028937743243476541668183263888065723246301582038091801866329428280389675667256743331645849108431916741577721531982577124467424218267938407174916085374640188935366435520244346532433390008240116418769284425196658780508772066176334912930576169573768109704273676813701703340078054418597567302586341926542316719110983107353319467686614476177146152493074464690938846026046274564600197195270393544129916252072778469618076276237983201427922998532450802454993469018804352443415623145413844299762661889562989904416363860304382347998671976844953061491186276566567142652541389541310103907952996842363815876544647983512199008968858614866099718538480823122322780685851069524762941088003236844442273692838823424888587179834894092010837774099826333863199356426903449462780013402275853454530503557915745475629529059107204051958243240783187162323071651826377938164036103914490497989844942886150534459413360817098062469756708008984165308940980147363573668243001962983852174680540276665091455740572117411750485365322843005149591933981299381333986319977928410586784621673034454127060598551689249639162722725628031440275745296365008750159947284949670261974524723102772513609157834191304909568896289304661337022059938106361764485728317975662546128177163903352964190300079653705500974266139588357225506707967054271489088241576101503911898422808181755527109474144646692531699577666170257653617122740208939965234777875734103620082243590531508559992959883590443812073246604177385383820690726209384664471855540092348353531256395642390550973272612095078414244017557479024038836212296272004028070725968590087718689674849111389985558781743681468496978295855240400880126680234164512092085063390852698017811295824943647618162176428382553025423953689397933634772837996652130476501941662687781078171919504151028648553249833287527007875178697809176199454309640307187192712093545873862679255039090351575898552406039844047810291182740822871892222284372101619084221624188268500506570439382238382972771871672102188405344041653611162842754714508385689683491592968569596589083942536799976290925528287601338638437197645115701153139913070723769297766910062949828387992619341384679550635325827505871245845457688434180327501172263424960626951581721390146484201013409736264057614298065746580971654291046379996364948098120108044696292694315260040070308233428151574152912858122690474741534426383050500518540937843298322912246920663927900399958869193989894683477788902264071888370758127881877181746027091364633099894605586042394081397335614572223789380678669475518706745890127061974288934748672644466674142906103845584566921424730135101256703130241547983548706849283140455615994127320912527178287491761498834445631045993350035247092428521057581435268084677661457993630801916602565029473821849629786429252562307890958136329517328310950974527276339196240948528555473379989458944123315490125242965245927513519581781820405190996959383990004412571274297534405556717011746977351557359084176352073328867783211721113879042796570669594239174892750464593734305077139304003833597058901324084353663524302088302727324359786686738648768748510492334567496292120408359385097594398844857091785531422643935287031518928399075179247157448159551247482387088722851731353124675290293251551101835377744231515167908518950081165602219757275480982392200402736914966330164750637658106152988414019942017064555120501292207069225175262045723044404968984653888729578708292739691265086793844760383878903908896468884987402481767942747054751842531623210882640382911528326595347962913121006141693678824278044549830763889283015422466265069838171499790745732904022458823832290058716735053579244321202105779800085275493992841374619937118833482345442086037679682810503625270515474087708553293748483652837309782348506009988647459991393906581921943048935336810493518392877718847940941618135057801428524117850725058082710153390073915509456475748506365122914557572981657611519936466402280910309824540166952679957733219048350217852737777880308656461550033351789990930617054936416372617794055274493876423993508292722622858638340371234992512944024959162206821175605725809880535820186914257905980346958132794358216567074805996345903340880650903446331918653396129087017200426522089550986578405132143466627087159676968804422431781051426743737536359126733935758314060802114289994544215230279242369333380329432409114465385547678410903927100867061336433075084471838208745112067400251898886651667706300031620824996140339006928054262735889315972758187923599243052775315092933356321901657425713242216927892132841409814893446418700001660620688560545189477076583819783178340274042459062287975468293078061256210467957101907501592637478756858061252041248718872841688466811576051027374736042969447292396644461872976686604575406324987003396569923863588975565312829360444454918812813688522078910278335658573080928383667174120129478565951547021558176741481039253581427423317072553143805835003531149377771301234586170262690140599754052986028004222163754198197962880620055890736416055952058110519229225741138775525843434528978688003648323355450216674309084091497778759260552177638577399076933759535129866119282565462779155104342956580604786222729183297072618464779533856726987657083710017544462427955709653100695422090925374173784028913705234261667149352030013106216517212254809517939354581097030845669531404621609939109918153017227856689188028843999459557799801867566538598192352692627644338445277212592183445222913757310656736009968498417321029671310552777152331518688038530694810600764980848909544310424343941571915225093888847890749496182820098159919915104279847846537042853304648915267248154206645847946943828562937734215017759644304012465757505532317362222227666334520095372336510400558691327530509199846132004384907041916601607266069559813869917544472587846434787627563471876624108047503273778045644503072223013000898227866822086537759966644464195072124612871046634608349025753198075840210528168554350968279656424515409614956367840731015364760028126228886589774290595425422665070638445059101579339610708299815620917218696468517530480634897942376567334224845076054180688087561741666140146550359390432842305774815012629624381171531561075428166565441098812135732445838837052231923965824171405401551458319462100898458271915945312571390724606844408937756043185325643942806228082245009542335647638487720667923863027383855589531284365758542781138927949405000678151158734847725543468535832326652792210509011055095704238924355067110094224289995051596106452936140186856720589848638448417827541097668238066082906865501909341587672542649431856005104681994043186070794449859478670735443240695696186376465039951228424755486395714358360844370878216440363542303079706122133352586026529265781787130413834997103474906770304879377439544152164455942392339330017701491193467274543489567518900002264092194836207356761937280247768836289719445235504551144919412855213825707803263756566203432692845486465701430688148785607728885225758905668366756529993307882506417284290068404125908784664178189738358684564547176410092720076095146224046332288888283912589973368421192104668078425653487423207525593024222317769223121157605831633855485558974124480643944194798175750222508186871222910349457936686880334360751296990287781753340051697871028799713531349558010685472574202489625916063158690576433048759022176361404545191425331198230742751494526991094467567293069457639715782124841633286381239059327480407958395458584533553900609308593909772262239864747232468715976826715842974347480120399642731467871294491360521203487966822417972358485749510752984617599404710088398035705546197928375143033035550698182112409909501895249773248054423907946405282115397607183108811191089472232765946071121902450410530850009035578075148282214644781987067495776005113118023824903874890497282854308097621091473444002852314359125358626295766544050765551678819982850076890847867485021656282380796974425214036168610917065645109743835582108560501048425709058385867870774229946090202081498450036607936811448558782803595084886456835665916769445021485325093286663665493094544660053676162641857532310917831729235221611507199649911336970669049646399776258810679752145349151108935807386090199512063928860205676802042930839246164660310784879251658489684369082049517624108688836070427055939030039165697050185359307375858567718278322873480041491076521637643531684025095671980602059090238098569504712494206157227568530888183589988530886001322753359210169569069362515647622216532513883055917456154861956125104727783691615722818746660504343356619064372642288346137523836037988757289726669560404059740463994670642435151972883355935643347769808541969446477911971994027244906238978907600137530471872743073312470452024506695473195061038911418407684866602541818210152295685874358189546168134597123241439031553422407639199110758511937123270338028785601994327662069791403655104533687996352905682906793337052656337421738842548367273307462588634059996276621529763126629917479762090513176732414791734313533922311659625245818217960233707059749332008746545057221061993548221553118755110672108615645220426365013164651927092568407883547673878185140588870268846580713270793441150355628404332163252827542570963844409865712913406339905452052999381668004605541812239769012099236711928303833420529278921913317940947468041530895929841713617388513905717172153126043080362019890569890322513954850465053114514286313713397145015166008081739216714880053092209557276832774119111725357903545468813818197921127661853154688335482597942302598142262932897843883135151405977179842972436915293536329924721016793105614035406130499440443215074187128946863760503773375813089065351519441612998660573869581037164911619350699276086765010502756916880562720646049233618145470876064942460611423840072371363174062343850962467148053375384727161254655142327336233276727113785684625870543023783052945994975744621224474751666342287400868032290953286952985387594954065751044591063245407028410562993460501338159555857370236435371754816052305314288154730327254272803035924275534800692108613840473528031751352690788793283339292426612677881530411121463510904344841779081377232725232051706418260159427932098767917309001917484083940618941421876447363547256416006997389182825858376993775281911553235287801659302225897186216306880593681503555410668764187295747904516491637211102502749818935122577857500740553117571086048471613397231932065831463544086337800097378590363502196921505668848402687114923305166144274693182720758696002275867270010999765380367652859455813467864548338619269487443596259603472006677486116514350813041849710325301234569802768737557823468685106666717198531377660697023841446834220580002090556442148440096448572660156040499085751922957448492916806897931315205811539102170382011667855429127222901519179316763225311454281987607461281762187657479857557315113680500527478795612466633999036675669210663800697042438023881127824540220936962359030073375676392999858121760257415854836175485628074518144736752169363145046460695929693117056362267440502340033895467810553998905932983351185547713923615309224885362721279314046399845951343379864693286617121581596653988975346240310586180306816131173959541506979014537286493593074751811716425199612903700423240886996395001743738221780365774674106422167055838894627458122285257093476650678242911517187331269728784870566975695646185170350199077736618674524020902468008714326626179925625513294846032518303126109440707311503823159346671618998720862160751303933225885219151122051467711952129009099384963274435178256375012759229249406918718309042713236471548786243435857687960910802088915743037453280965802695052779008793397101359277682063439043079492044158251738310377923559073894306140225685045662035629581761012819468973290854962455089950136084297413613740192309203470117950004128186638131870913226352687438831812405513959350007180267467965023758837252072189630390802425420686137116662860370743688600484010949997063972534461488208085039715784545806345146737469278592202652612961405451606355820105641274625519946282771045647035919178478009477542109038383322076861450485246014268436161074997955441413199270918984300883054021457632111456531748179140233757270759553588291703588818489815927016438678618451136709792085418788253536362409386072841449988812104326952220512405585885773696922671450971619832744478315301304394672433060028598161473456502979623324784605039746063894212969489850436087224893876500756091129459246128309308985163039242343663991506149210321317738793479009386546824547962081746928617693285843988664539124518165848858893160000131786510614149346358434051612676949775762125105197782722075886621681633674273909757139281005204372769158482854284630444596263969014184615366234742816097931287378345134312435559664390929211817271694477005498602619838446034217480467531722861276577268682014342550710712885553261319797176719828551061306029201441297762246775972570094361554200838473219932933742924420707899037483817869157478416857966008294151300949649506867765700986957007420963268537121587454901101389133633505888736297936825789167830204530686056732601108086897087222218351745398247248580911504538223904474799529917459866286341006017406976884609330797531806167020995548554963647968307263114270123381027381237141958444190194605281418107192228887939293918144593399734777345668129182372379216500298229090376837900349979281509127681058227978368265534189519294145147120897107613264255984127882147529306945521017266720066399554365009475290590050760242207744554578532254074762004134127084137775070208072374732014931862491031252848889319599959596414636961227061561192481790033889124911247537252430644182301975482933078587091576067638993885513062524490577287816935184308315164631883422960003634508120806713438904043210402265105699616818226052857898369129440222337804511904317752789094414065075576922803961178137009914335395497993838041916463978442014500164317489157598524817855764161233605216421782239460244819447642374609780722051970857263623878109269867456011175313837574239570105209448772126768994581725158210611815330789299275229789280389920551167009791570055652273388261087004812331170414754413235496091113549466889424290304272418213655717275584475546938013609967827468688079147573560171558390668015619986293686210702504713027188543445149730820915070078600094299389136253778651007494174487480348223001097411739541568066478541652333398575898391615608325718346540140711586423710030711542326814693538109982451202262017801280848282381141128614443928250369062426910418889904837466341747937586763329696322545183711739440774498850539865491952218704347069373846065685286514345569545289254676858713539432308431578248285797292643370743682061088326671695562115258769731000796493349514643881318625193288705706423534717702265759590941370142392230527499408117899043981591177830492175192404304778715453111065759821627616111957148881937893655793120748905357928575331857727522623977337968415266011162507098569004547914121787350149880924851147202710825636874564157357757346697541881315629673339454545411839379341196808319144602182545250842820132369690479508292163929002029526963075402888429481843870504703623323428675081482587378765721677497262643637994360868929573462725768810423195620389968815056647663195351977677675579299070069709046136566201219489180521319095751437663632876357106543997339565316071038577501107644838402860917616878287352723409976744693863288247550252352555707437773004592112249973342236460055185503058758221445384398613031739807431329199760815420550807968271938176924557634691659273237440398383932520220720298977999633120701387607586738644671283648608213407234555959005870853447024985984640365384491094732706504696828199532411199550065063890522586859631416357813579287724366233282070960415412418440276032241488804641968938567254144578371943617190192269957603754342879708753991754307806124151053627850007763784536311141101748285822827301929409646167657559926469516589247689252027301310321228413045935236048747016876860303265931774221454960069240840075546866475377010522484197377858933669239629437861338165690751027643157609129939656591223236978958357652850893045452269969427323413417667447146334788065661720629020923254278343060071662683807588752372193695825991167766434124529458818996193278047902737374549736611531131193266812731263136788471037896095147357044768120006269762822742857508900942596545857253539491505543140003761584776879432468488121073034309209349530296819177134499166310554623131501093847971115562058708160067517197729980513215152396389971322798691693577336601089663508396622887544182859899168228046134255299421500467268099345125960818993729440689440207639639991046617425110461977518058657369021598583713877172038128687481869203225014131559372003944972195770094161452660913302587008904392598651797345776780116714974170805475143726908330920166842604424561103169347705998007283636488777279163646447802266246653315535757011872281466478471544813420904123962878849421741705462619535474372204227993377098558547671800733906980011500595993264887042469520194723246365351761479056541392199034031719552075420364949038020628156793447263692418682390401176418071203816894118761979347987771096336936913444939464449529896930562749551675720842295076164758046144405050947025023259774853865367791941612078850167832344757324604999945646089518697997946864480574985290697734586367008402214129397644312646354412314898157248939186203122481910169200245205494816794401478968564235081074100583383159800497184740896298633463702460519157362719175837269746245856149805592891443004982406349791643560959020304884095801156509049112402788214727876162544529793243094822856826910083033810828650157090402118855720880856288892236149814240076322829348108545027693505457056671116903240356244100298645299510121961164457518092261740580917792831862566438970203217254068544394697641828737182459409655190708003704079572973364624707533912482330249665993309447251941389102642740872963344736985414904277060388708884491008257732833356443765003565688264911999787551404242424494079551833847359376969284165877788858198041446033093417717374561160695015178661597893106809179860343542109879962042860022853098419342022076560855893770960460326929059307401874061135548463019618423285686594848268590180851273270641342646822481113653072389675968944449108986255121803616108785167620857038775482452140978681672038086955262774984419871244550094985093893038540793014917913384559448693776987967228385959884830323964660851392486891702337450823339018529297954134328959809437493850175663617636824848955877287166058172856203130670153615955708857189797459388268767630392232243197997342259077587101564253586806756894569630297125958972773428458351963509182291627450953793808856892002875244691634751741705222353524578879476612321087084846724241147827830925209169618375135177796680497976511286811955930860635400179199833610463966404060531159091352991304335908988401520068022584546570810926629029301939284537171104825085374422950136455966287795534894649222281797395337836675029736151366916871124399910587825707361218433236838405590423051250241861465196573529096556477392035824242996767194404997451305925198596053991373748550916513738245917930739708183672954294748218321977132969114237404673253507657564023281797309601973409573348735625152877627099726792351774499708530233868238583981910768283454978146284664111802109802045509925669908925877707601581202379221290326553468219793594758130648564742464026672469606380968777771076010883943752686223502966306790551920342576709278825461700711369739158570959581939653602457387119517806843507202487286671768185813927687185437117100587545481801524575922912072363111271706492060209489212486820695989854599711772501473036624591064724831933539097931248507713994417333628398112356661975078689788191338776579847253013289444784854865871207627096508832209043390614917240225949360676106643246208596176585647866124847229235931289744202113409171339246895129851664425932198280304237409199143758749795890256829788607648062771869470075329397629812488250000300506207658499524613876343666826627301226396376114998864992706536035678787404765645553973671272454782172056613577099265437944750191216897241723863743726340544065043300218330347859665061844860722041878660234200634428838219717196559405945897424415527771922027980662747204133084249942021357017806430662699861009865539420444066172103423949302156324902288318364240330311842625216046960204657063515762444588303309843112312138855089958193289547041779451799439941242833946817988157608662875161500268205032839421178701569218230641217353531961212351656981064150550716642276692080371054926117957869903904409861199492124961502430640313636292354067316540567452392013773115669106609540019080423182049097224062579484911601620015679759406747219836820334018754763546435900223596685587926154160652880628918228438349768118592366487235343230992021559771674153794005581528918117075663823312607894888006922984625011709388610617640750811061115255291822163446448255723133330149010913431815791394064385752914858142191036760870995596195295039079714970013940185366073055127428999303037531043793140039864989655898860919890642329628127944666632794911402229352768272326141660388994884304457860839639913777989189323195590520776798810798924764756672385820880842603613549129985157171529260758717134738312552576049007562682597602394581036683726681659204848712841266344149278675242791952788833432044892658772076724371184427236682159343381471024177889830531556012240973143977029723668265989172715030985541444989259191781858992967212639105926139230221190588493039035274228371925589266113871782689314495264120195221949595218873108665450825479559918995283010657363022559763566968027098092730707525148558012684768536206505493859511136826382474170924630502624861632935616652694985547928007053436059886633437114079417395213348079027435643996069334671601040122906869734357042417076031257832614951744144993615329468471874053475822480969189940432805694717883958660091659617034829786119171236828516386459711118962242636685944577012158594753575552184508581158494974686753792473545737570970217285572831548727508189172006358349725826379439794435378135100034517624979876659176015522633034686969368919601714767504605515857082599122085143907348723931257100437925467052087122437691967485622618299435337090502325477775784020852929894865949871504084774493125006088289048491581177718497172171964618596486510082754191535300415806044022896975257715334217205903211009071688193207577361807650282727590970553213078070082633762475653600333158825730797899400926896871030734526748576156743786073556581515493413536750455080620031799908927559783658376571634535259037592265197568493267873048206152638030508510199469700685011606679855345196092150702657803208265133236729958003202500669389234323203363571451178453617075155448490906447281959217669790691085859628642218889673501877064631842308813668134114422482721628530065957620502321698219095930286276183882143809915115880337802371644180466887414596279172850392938999047918116395793329249547850447751195750936360586029139216750415354099473207141104234890468067433725691200143414150641375061974788326816146860821868076969811637323252242468610311955739185243963229705732259124150496283460825511910294450360871773371467983118384636221730585107563427549552681624744021374319822093506795220208286031635794231881681639671619472712476153122175643575071980330564212461514220733525878934351363308104166463833670460057523972638967593955419099061358812288443848076729979741213160829623436420648971397215927201311984490508442005999768413426789512153454016244487879868080034086584713711451379389521252780151701799404539140865732405891315164455664886269936454173971047589060800714443082463908644566344194727635776757092384974949688295683748473210292707093225242299788653173463819172261525360355558089911996548032641072622672989028322150131823109877314233717993778810119478680631194776267678189579884340164960296476715070811231170739068605393805106938589217210576766382034262047345068981807388937057760081833439167220953681632117428106924752557355492272936658139482600682867512478366887707720000640878684144236122299157592400455182368319572275577908489862980250782623179439649603005409031105073243062289933629514895898917587464755833600708775669749041424259995124704375971347624234911351828904677155323544143513148698737350909991598234319172049909356545494527865645950894338070954644682490501133030534708853808007402524999481944333549674865035508536207470525178334999272247165723913092614605732797689221522231291285614170794432643016274029606825171110327098282093981094681550702979304345799676491076400667880732414964792975907738164729259458422991558320156336038844909934432083364159818555672499690238020247797801387797328891873078729251533162210492669474179254431252611693947615360739469084905289917798904327360291334062400479604182388749130716444527683019069081104100372579058876976583601571139871640176409010442026877551871647512039323259478270648656119497648929590519723535783775492327418912314690475394469143405238399362918580788644109673405624500782259576164827884437530934679827301226441240696554695319058183367813111651075048012070871065358516880900559416341505514267555500219498698419387401780472012103218062091710921852570165886265360710851378800750375163310995665655779077064786270842030881966732206278523600018023137290663449894280047708940463948825888003444572957213571269580939269070121167032835184003033001357133236269293958613356610600871495537338595601260792932624858203521793825024969597025586791427903698466493658181184446296410259874220087359033874488846620138377777769487431412104336285811864631457088695693681385716906981840007201832590069987448432214866237511240978039574001548638069003129885694148985797295930099641268484357585809728541135437592144681387405642140979449068594697986354270177628159647727533914558814885028424293699394808024338450885736873511347589364158198827793159419249147920777377707098390486215601395602684124475141505131991803998293179745889709013696411035493807652988146841394613002577262856843425036470541641053167900325482660108575669224622385735308751010804486552615624811871786426718367527300939630543362165048861240813871874602708842701765721727414303482080348504744306137569464614818468419259004612473642756349181767385041708163305274019285863901187550776369478553631285867784924919562543451351952036291005836777777534719409467578545238716995349385505977775196555855476258438292634038203278428842518564690985603008682560934846728134932520018932637833359832550952969097662330223356123853278271874922770074725708398699639155808497439114142416549121335219063444972788797873764577868963552509643640137219343387107789804683607282500102268436107229998083181469056301558022213005885316381624047950823490753518754846727158565415752681784598366118482456581254094265193389237537353411282647701868020659757254596578840913586396214831626403033493839293822696988390316162297964300666723232152641824317667010115494664186078920626305899048860794743453528119076975521242050273196018580762136288086140854090858849499253812959274843665034905648017369805617510058079940065524842777504606038669478939062237269708230798520004102087162919681098467123777029817328348647532854510917798938829206329455237073965011673240444285843318456591321393602927916938848411331101909960308735575169110399264014399511009048190140436312019197134377066542797860451422088782501985724364600398230797553951307576900574883855615696862634357895580125295464754863214092658324487961357975610892251827917065277768618751568892072922296717522478197448811187001390913295893785046246609521966715481170029618692101776002129034214168461199099654795112727072277659022568464177954249041731219563738427076167228959917502758670717707244007094535275456278769112501922971969330112963446119884658712412688840836991828744262986309674207975860979200820483907903561671751737705306785181960626339334487004434865727465902890193868405212861743482071087485886485159725610349493373758006130279543318813205815571118275884837515571735352273657307821619520958447182553529328755310006736940376309400771976662183610453096320298382919555789361436039841158254465164301199632534928501161795452382745085093734262653262363871313517497981895753998449901911791024729349057637860363467958744412158671720435709592505182261751242954813915783863347686286966567876608745462226206104164579010185587892238714222391877267204928037094448198307367884890142229710804722894384290325478753271892537214821351532505637940124291205036742768951997704134828240364001578623031360777321371779036920290485752388931349594338305183600742117064229796454621352862168489978207592115638440425401269316240280749201573865845676462225182370541346068111756687605767142224668967594867251488199800000961732075618572509280246896306486113401377235297617730681582600576198956242653535073537690467595174631993490668408844268991800370092374419065214271440947156939777096898568853844865051821597388994441382592729512146794701511870439810753433565174023852644524856685182472724406356755890408020807054877979267309167472975097151325363203196259324911793354661465568628225588870341016791256613831692576718774972461159698069112441126571374618693446427840140543889867391133358662332953279589756593986031551878357723867290403684581414764670492483149707819883266097769947100665952448100778008059014730348289075588367410080617622208766431785778811933390782878622594698463750414508196190446299127544665582742504405174525780429070569759517807489978383610022913249625347874733321152009785949297765062412797449970259960943017094685594431493901485178824639592744977064417670772919977508396544439218261372148912816736038170210460113638715111634227634900045780610689372810771117733298395066916297738660843129443270807941065221240295305072727901635648724945601779265083890859287198055813467449849527679615848043033065271668921357938068653979219056373138040482865146085443241285744423099815912809098576652934738574418370442641075653636958189544956380515272942682462693027691657873372815220342762536379157855144612607270778982197764014276818527667978589243463032858939625505612843122167079144087506829314949829214333581867316807270743083762750330656962395155447430080183061647626769464990269674834555492428911454080377557389600628639882541234970561113913764279973490417542112728649599744327739108952188497000534418987664518512311843960374725751064430139175223059556489519288745220966633836090034518288112104167686049139920527040017670507044018017514583541383742591555254039258080048168360541888802455332522763504027542183257328873268507056692570695514000272689373652731242523545163093681478654641406739881383261366251519601654274880094790510067383317540333491185350403185275790144355275700149368052626002500074409866364858190656265164707065982668012475750798263032180324666938331521940719225160800612880697185846828121376125948251680380141533960627178217739816203911878015159563930160801302098064397547728181608061033268079135702858026786690142791372692549108979615248137899347025282704558529605197450022991579320857020556546982588380900387500857488759620921501199441365548409513117081938011412060104543833617544404425800634917872781632050265889363203373137032925973193973921766350075400195647132535111398479189449668784571485449501994580008814536850694761395093279765271343393640041235908515806214242053754127973825602753404429659700034939016007158661332664670257515979731495993224038761014182843394233964303528207978593121861090115484146353752618164439231931157847860894722479826479653201069349058530708813684566915811450122431338436084860784154609937139816454651554865122658385413061232615716750431572901711993714350905116613607028347950670423433792276786394829949518155188966493204516670353247409253078980303556662795932056690499959794129084192146016739423939758371638706369904189133254699848966654067591637749668584047773309749712908389275204276174454689673852429229042025986643601324760313836354653316372335661272499997126800072695546350981727635833310637413416321821684345853790527712924423775260066542323070329883263481333169008519728263318378316755270650696769993462105444758601657816364168385646737925621969287231581828591157237345033824559072773841079541139247027966801635843249494420902979874632933803407697029379188453541866205947004640765411252671353663249983737660968656543526716594913171187827726209235389059300884822806694059313406856305788842123314351812240508261989023357542587909277130780423024255257320933730422746127849031281252742775994536842661558671996477970343229370344017418535518490766684176168786630678790799879339860493535418066972460209036511500382283500082767154855691065201244408229016955182872672282876796442576345358549844561664467900542571722388604493544515047912511019650609984145121863068461298916880710504094969105484579324765962617708361094197205964957377602078527531595262328040420798983227347347897623109364083479579172603039558452426139378403197612202443959948248764268701460195335379527645048605246268489129803095011953803792119193423416535704831869411761232910021522797627828406883335229586866858932919943600742542073822292664214473032639733765125998703346607803778447962720477893760286664430485358326040854641128073999146989109177685309631852745167956660966956007360968338563375850098368668766028372975307508142879801782531805396172029266356189514787788888542172130771749374121866821541039379916446524629123698795518486572425350111808940108927901636904807463523354667008118625275386295390921729576103766805316109279058763437598296975840782543561215354342807705215113489587009629538676584763530885907066512503477034137855430460350432820064861901407090027191121623740030830051104388529592003521547450012811918981761892380162372679972097770436946685570240350604892342395419551295838282831502635612003789732813105969479621710103935090570865548883137927116627791971157682648052274848874859851842727526629769007200225665365986961438879351080119706078713713452915031338201084645859515688512167476926736984524601690368885812876336157287436693380287850040150176892844977460852801068884307787613127554834456418050982554137766019709301112651588428544000152767616516472937905788908650023724693076577179235480636010325601498994055844065916034598400367893853834604790535354168616919256835944729314221300232939547439481002324535707738328200642483861500121097251161669712982834349443061225175285171545155141684230513060438132334097485346829368959161713813439472468225835620441292520781139377464824705485725277174518897674448712672151369383285181157922377440604443018743735528854090769215735167885049247507144792043730823273037107496128744354475946021800441961450115788544262021616053487827147984490169091576735945865530515008951924504669247254664037960717865894835576790935914105184512970809122536789592721128658171451019880964264903409300214362807857796282848785040298575246949260187613389842895394421901127074199777737334294448810659670813721204539214133100155326186876106638264731116074664997818634647682625201120316202560005449301886535203052279557800864527945242992755236066433294533929909504252829591741519513494536117677688920894854462811275557828161972622187997756073724289764931931401600388876441973170969057274607417128797058767189980746479215455070272879148932741840859660774121892575068426451590871710171969187286427843666420046138197083393018133225808679667706684227255416716833186086405780727114743351578269696988570257891759049963395228018112116174414353622636101119845254158007331792827376417881016943942051703651423319608711014634542282586853928169891955533643872115903665254626362133369579134378853201371136765646458037825051067518890941903883010528038152385063310079716015663994086793750806579555061069069690016790389535882260643203491767833572918743946198098231528210140778464881997830363101879857325994717849175568374819043895800687527284565107383103511180139863474349885336538682475694706698336494516649049312723973051421620180242315032232686045082661527785768090836310838864015453575081101616636478575241070026924614297901041246265849020986545700855209518943771386432924420984156217848260544350857857934380445071685430552772118611392404223167818323243994391216876424717413260792624014829260207355303722406514159136623396983707652924472571625455540920019525227833847294400203352777173725990574788964933869613045735770657421172533017883228718631248033105054377372761427928097682489033407332311044195291056006252755545699549767116218112716860363720421502920928587188949673966997658415386670206879876577630124609494409770792658501761807080729837902141066611130515527403055253644195735903695654264027570568516129482215395136538994763859773566604297409342834448668751064122475750378313168276960592608694113658589068423824566800797351970488092074930752877856648918691228875726464502044376298484242076282391167902038673457596030384350445084510503626345506111232818261515872814737133955530594159943903587957532232196104106626573239589417088085979322343111158863294308429588204087693987355430757832401670325849948923219641077695726499536428881493663406459464233424835527252687032128776274005088500103347426245475568836527979495091561508127032484079742919489333731241024038563469736518153402306050210817586621868644292784638334689997221673418497646983707947401018963614599101643686222870960320118980316038415616550761716793604693202828279851544254590152127789322335583230127744535789729471548839061246004593098672486864058671473580205881028442961623451737721726782529805735077653029300130198821556048316920523752778494845792525372243539807744609608926001701783074740192485602782110591988164302760870034215949812246080261705529374432845933888992554159802389020434499742515129090366860721562668473081225449546097820034353614611094676003942922283553134051542981588766523803684395330392639534557608377890140459528065374331073771224311711696063416985386985721535703992006341878658430611795918145271378782541382787164748287902553701439917983448022327893828265793473506733825653700450651624714458985916850612990514336534061024283018478704231353321191505815835607363473398320597143781977579421852436341234434816759427611837029586767067761397986628910735917389009492047939177171395588507203084435827088429719453219563847683664004054215816367417528970749874112878666023749306068347093079699404497695604557572966785837919954752381081702010922570810199307438804102682820695525919321235345947397580279467686000301333942865256958853197800724160213589613291953241668918042703536220124928862351865964500743452016451584210106923857408772963575054080896669606631538121912485091320221849123386071939223525925705248617767522877539684217368999492202728306852408514593395311777370694712393139030381951008221222873651171885530600970685419176226558689992103240792120247317591898854363002217117297916213088899540066888436043021451141493898415784739265353396458855280323011455802857225016970117896014295738480856780205715696419952203332392313725761984419292097513792252284968093777139739021964474230550784503884325830559075809046107791497568825161152424376300764720115619440171934555715813062033764302218561270564690363460485575987276715113260415571253898934281515019450904476309180712131772527257283141864463906655487004831493064580786587134884650344804070121939160913379197310635237227558253101129665390625018997592387721804212889940502975505408190977324652851467696526159408224978648868262850684209491639883459889251540972242917432437751708210133633115474766736406475309904797035844171357036821524986581757671937696700044352972874373148521667932191111864769958705444397424398216774916245635392002315420717255924223626789004140166309017538946456922152395560762680450999102611246861826029125742279220612998875544584989569328194521992813628464442889358649358352285198947769703349964564735198980592349106431456623668619643799448009051597858423722268295816771287424829546440586867503283793817963781191708822746724069410999812696059050653129918069712376031296073900340624013685631785402570079920145507068662375918333169452829163322673916190710272939137879885188962029924434348222083934393606825239849258842173760173599201274267505718163031236759747787036321600939562135638267202901382245649879178269691769252685058493179266776715564708760458081860236797237189977299575024218080738303576723813897232756505137617882107403535698432670507529700186091316989512858224826665787648983262210339892081816146280628240936043803000299835728578420380340103244565106140285147800072524224542155411883473774700477108055555782335797213620530344877984275226429372867232498525170462650206135102921182670251222810828143808744895888186954893121782191339624393116409955386318844999898548349365746151774289190716095977431989789922918956585506255744843082355589828171150113079129846883135385712767977903379697612898698775977333722461287485518929712304896441551658807632948221286150091497124509369314522880736544012003816010085999477506645810148095446472604957534972502084329603578134294152086986415410225786861224096529399418089705800610957466180915394797487169185518434187423500290383806501999617314794327149713738893547298197233990075932970565018833989228219530562601814053789072278838089753798006777444067277991685573159915557957518536615017294905551215604098606047703006370532729087973718065537987085306985473398089098736429108794555649953212725349151619989125832715710628319361171590764225914916327987930973764834862377307844393984258496566838602128527279819065288693238756250547669614207828186861905041733627104767961269082437354126803876153636559655905969026480302170839962504546643846846624495068369399053941039219802688528875588455848286407338792389723003621573339454608625942065892960610605444499109688199936030461813137533193353803212239745172858223158459495828799158621826722602172263953015685448502613150047438698760025155028518655825227436056398686573234141579173775217502650357025318568019429073811000422996882455326527461778355248459472353612762529958472050970175910392657585667495292300674044405282892280877825635053546098329255565653038468745684405400008243774687173822060692120173483945198727297781670073552204240826028786263389294898529430200926520465032109280654039816426135960600800972803347202657709194643244541525570164546398625940059314085091141385710639601053745134841512674726516820486680416887449998672518111165206670363651890036385585013245640365045557092539239102196022889999585826043647105851050889004446109624072383863643448367491044145862124306676636844859481980260255888062991916935278183928424242559451495999659826214255775197376033794412574574123709739124880307155769543088581418328086800399526240704859092910152388600786397128870619016984288770351567771420661565317211296614758030334619065258206610952968314533471991135410818810172739391799057466320764521138947651723738816465560339228757981218826974811589270369625413151393044551693498275592501915225670422692010095662889879657273954116016534242579328186519379719821131444206236460666370211871325933070309518007402593654214368525632586140833224994314227716803977913940765196196281259156295878743604317202324831807011474669718657018642710575128707203844629705364962421471279500578534970589447536547030704923193150679574589204420399936146082182389192326511308279845070282119103397087981324155154167958922610670320742769716768526150171454600329266009844638231244782334034976434847007935514168705113248467049399403988314612983601664099885850082315621401993714301275308174693364349628984241531615973558958191883528223819736755871466834861298608826144140966433708543871852244939131047868783527021712992091369512999671725930487403287968294965335450179251635312959624570704642442213805896636243976568194499637708813733664980644700892737654966604182103782706329224510374710407888137176079820263969111610312789540019412735911452005164202499903866722698984923734039977497587260822736994914826755624491533021194113255380439556196054874720224394519616915808107787534026790392332813092680298941476482609299965409081917586068176496952251518202262857062343186201033696103676933171164215571547615760356636592353336147071101759217643888165800713816077438988118299280348752839355270691912854721638172162764657990698199454128757474130882336591525937841688939249468489626303667976466421172957681456172769570824451072421175877314956039779303540240870736388084046551565658027345471171737738562675940990200441381406328909771352786645496883130855993986600882310667926251113922182442114647964456360052909276874902307698867513935440844494365784222872486244484754325523514414392860407387761809747922686637729746189536234620959802824523263560073959829707124056175089006615647101283326659956025146304047681015337704719691921502840191047922749789873019306095802900685169595215009489107623559679367207878233690762878018514160884669004542994590483922817205157330408777060368172192962035962282878301452525991272327741685408830647699981349030544059103203020558031079436195632778116220440662745527858185518979875357941977284104249545639343505091864061658405523020140641505505496590359024902803703124529121482156671376329746486755749190041990749399020225983959582734362021542168294534353536397013418322497470484307197822198604377147177656536306585985458894979536534399898216985876937705554483810105137808959000660055477221844154097093984693259227074295415038819288607530691958789494073383306382558029001992843093913665961038782538400639400664925599863708902662736418797185049766214740623062405800636368235897389854350167325805145515416331666690290349544983627830572608993752035180058580044204183492735646989914959233843272338410365596361274272760117630185622841625690513121255739681617263398915053456014475766685018444403670309455929173153330101526955945410877996781041391394605098344064763501336570640806936851803868103678321848624522855102664303719885260294781683542468700784544088486035407945929915738026572303132603524586117953299592256349403051231211970887126884600382267086969285835690300945253074543173471821534545121902431702161082123177001960532384380593013145549618468249079815970852548766932682157520900145271236118497579690237406995519423494891214704459464862862273640267813313528813537461931345782174375462661013477260316336913818678404749595462989596228449960346900433298219380417922765056737631128961353055811173629271427254141585749744280776362665621927654098820086928683896200537841719351653582544692241077831499023652742748688893401018691784638501436727008701576653080665176822113858858242248592514573990752781944947253321310579989346445364962195435259912247986525460946927734840187590925348828677869987810030113308556061287647750628070765801527550538173481641889916027166660357009448156894654245324253758744223270053687156533002926903288949914573516364469257333533430170103895942378272368814895497704335712226148651018962848864554799154979911518667786164275423807718596751856301680929414074453191682885200418726215825728965894811348616453993381282736865900207593190602474161958440710873274094998651762569168575501737840366867028175572857663903720878481689174639742205438687532523059473481847400351640146547174766706557468212448785946025982374456640249212057361444152875384399865024873830762713475582275588555409692034522674292018876321335243497219792759965573046559781551563998259230689110200523815797468394521409406883081799420294937472629833022928911670557404364911081313522722058007622477114024360302050780864097149573520392795510825571420222681639536700354934865813409958294381683973254121836773704709224953039202749407084917148158314927057844989859549567152348745239429256960338537079575640984878194386358791858896994183318957712175541988184775097480667464069683634088868189804323409241679832011988375333224148548438069460281492394602694649099666632774699982119629776259299495450520337153581147854287432848089988491641666129339195799971277499569380128837503855112305775745312724985463997614337891638253616489629879473422803769073737684182823143783411319731340090004083036089964112489865801183328338019679429025012784696997543787580764469210672450771497925641290257911556300774580072774609638926488956061686348171542554007894383680684339965354694323593558726477766770711265111452780765375824978257043054442015897426935374136176708832898160024168352565227966773371708326895673713517980565555354254876948128478049929310049584505464823401118609385519935225964830953592831802313126351315458815256837746978586470373471395547634719679898694530633600545944665380345219815239878031852581678428440379094430657677671944008981536949314072482170582803806193179521676476261260104450818198399039134481981795158102991030335013778626010211395791972303413896917803081501005744234006064134473053333373878131866092304640965121732985337799996919235252734694195876055931979067259281362836435170153918053744502563453098108543167948524144473970110527826502417416068919251667265872206276130221843503953317445854578806812891838713378983656828815892907990770832228818148820262982855711069859212666631799302189516621274281797440368411505145570100831330693471668380309201106145283091825827922905249325883513600924213620094501714967227027156525132883657102227878116396316031792306706864952654528248715230602613063569418900465443478381064599601620117750168887665308327877953383410646421171355610936991991797956405987403691803848596788364653864358594814706325335226139011048863124206154054487597505741715652934587536678205058890489994955127578596866561408088357886489421515729814113739159657756275987188989630225289166926182829128781060683620674891577235168699770063988694277527847991688294534706994037498090746864959043189682979587201809267996748240050059922871857986796278017276403377711963630558161738946310228447420172761344153475735347507451248343999740902662651818692001648803322313929521449712471892940474865788093598170034000103783219189527949559279564407155891270656756197576843212142198781013199190063217780102623615237389050109889350968152249576887354672412870121335556748958669670220691608265229370519346582786281388600157854702180943397002169754791083458172560314126212582313807089509489468629776600691187877252921962737601876147220563455952931871757632004047521414545539790508944567390372252854491662397641663773904983898432429208493330730940444724644646072955468505945127417134296962338622214022015476873272783302142934850497361766940366184544378886776793135190917677868083075587527946696281026463326967488954159636867519891303089543683366909513731983162531245555057495311759129927933834512075831260930783059512620038309234396044069145481908302715617316889167001567547501221047468197385623038474707335688880975347076305265124961622699135535067843837820535397284938269298045070704009353153642439925516659005224251451509096545818379808056030922434025618039158953590550628374363801139163513850689692264077077138737719155072597243866025386462931504842459426028295534356426575383468691082152820992160257521207060030587552287086637346715131743953728630224142571778499389254346015631376329855120904753760232641444401886395982637360964950254584251713641612299456510807559380793127647909310767031770128914380206158034805246186972872691380650632693602465805751378688851512107375531869124830715395715681339418630647881298245186005833355373513403806234549295752599136658061574856811365306733307576410531853964060982020563234756877556124549590853763079505255389426087847405290727195883114577088778724950780051461558480308516656442476904068195490907486683512952087408227212044700949675649945778886929256190184047141470562907661090692488720993694095080860294240843808816016678946700477461451046953141596692251321344413799605433249769720090936239374249040688434265168386577175549085895930230964580504786485829522600483667429638034023512978350793764190873931643403125632913780486893581880629467481564054245740199891394129890760121534634249563122399968172740535632561922788506501297908216560486232268478071571564130076598557241060432378700599663219053554282365691217220571686112058062626188152208665812281933265097179561152520393824914204089739443893834346726158897159134542039743448869228638964930322274153865461957500135403712464141970683283559465609759611661429469604657826304924525301957750939210416514486577464851082395991471259659134453365893857788122804122238912936050521568396739397353810174714630960124338277028661663947059940901154112899342827602873704744714987871453466359789763598900651007873261157461821868683613147718456913036054231864937016240534715269379313271203140724141080659286084087978560719354032103452190254095513440351132081009575786895004631543266706398334631477170710355010600579001726145168215020162221434049513094913050549912737412184758063310496212548263380204651042214609419121260792558823052318648055359108837273003280491771046294018461894776213472804077678651004903235414458681660584042106194251769401655083018594989248601043404283673323022995317192876295058212459628071286048837383753520313521936932391424627204160838534283124031772535187674088694513241524485378036921084688394239586903221730445041292461095040005035452522522442900815164737894549981516423737074551138061340493021403953000135178683779092941934850755619757069816608140313097648530098358014918030520748485496130899230113856677697802558710454277791035181614835986176082066531405188505646548421215074398092144270869315776115032954885594066350179984304340789542740967243868715096957469022889013367020834352394947200825055539389884009625759642654249718081242540339110357892313206012952697877042827736349970763856531538262850527093222394280751155967418802665003066755197077514953367275333425726706562419389191075728400199541909447650991381100054459508425865045716848190380213759073594292935478335728888940861517769657459412561571065642543608892331869289270222059224403041069230840044660858931076411589437900510902785794087789913572737527067742691026727647934752194953310159060023244469562445353677546942144147003810826466028474433386402657227041712467710254722828066113461915663782665887481140252036243228840531413758460904804781849683423068106702857178513571324304714721781111570312780113312872018234110547219235847171515383972671252330020758077088451644677188112490484149999751088485056691724771848554503783092844216913016673976933193295205735386703733133765803096425337193235322885325866333725380241031220492474679937772678729742538843904403404964906671370216741703827197691599669917355377470393794324907297547231916618252552897584691939192147159096802132465488221089461987035816555484087636932449953375550718026884788047819496308761118171248206531934570751635838324164682492628489747098179003805825896504758323231221752898578906638986096188571808678087240401456605713088724546579592724090024107879777710894905387824897626181238736294943978324166270860624452451792454310673762252227189681079817664992602697639507283289494776912809759792311213754382416784214153902110210818503977743591448109632223365032412491962732588833145308769206644379191155140381032943928374492127116137154092635910341475071382204645235370894148210874367363174077967363961731221030491693214637993025785072388427852326264301655083722380421185558434629077561917823522307852611237437686563451817350992658798394475555188514980516961536021348083022490435317950434004460263453973810102509969870520900980449194967885823904722877137604415644270101580728729855654145973123870019790804187839378618806033839070815661174303569707499941067546407987166664804338491589857749771062373915434619727649424316599292761143828451697236994372023909891055863780423116596033298904723481703685653312212569760074920830692199387467656489341923003248497876941604770374944072640275814488251855804768965050792882392623792603648889417355105723303705919189608655847105723260490811120368265181576263799837278128822783619916343858157569810714388117317003850973204654834120671885671060133711678323174098662833800627098621656736597966704095585882112158933955273747367761451204430304435363239261796690699164332533800735216879492458710656435605623736612505540034380980593847389814171990028322598558597699444650983207497735453368910999198681915640541425124090818158718914786344971178179670105389435903987127511598490361880966926587709482478924819064560585293627211888620800616280275349308453776881602714859403836753003064518834793223568754269271212323754139641080030453000098628822907491759532583346459450433843841152450882178791753570670983486740862575126135428489475569377930215230549290782449020096897562074558305419890714529948625351574683152216104943341188184969073862191500024346131047616684362086298728997577355102127957335089998630764206364463158306002535396633085678308066238408241557295902759976478874364335352477265099043264855915398924125369346508557819354406384422494193764265740113176354019395406027074201670657023702800178752163667680449023282805376541747346111877997358908287199102323485825197190666843067021567090118144023338231325125935675834050862244684331525932710627930755223806179053417253006896676351602575070533525319859771984583605856525364600169962344254810498330494864070621018126124752837796289387123030713046142984796460112845665563678259436188137783840540048804621005762766645892016836031022478732412317919957924522261038925557630378599798298288588817606111261767171572855765554579434598169795826631443620538387872469641633451870854018181352072056679718862489236979221858408807388397825939519928034321647281112282884926141206260688239321298421384513964970784024535620410086138040509575888410648349909407421170098513813769136910271748033553930367321943635509773119737628823128256407057937954880447386506690688453175819017019722203346042160752419562466494276601728673635819515482334236484817603516285380262002596397508443219200605588554801680386459950692125659199846605394305804520990101524088372866862939802363296772138426910778686333875814415705758045748198520338459313434950166592960061001614527934541188189313160710887107959820041031727778539913200974855176538057304389957139053968805717914332831027115152689772255904615681107066076153938377834419532862477125236736019979645111730895798714023852693546671399673276698757836598690587049747993070725110894461475202351888448137332581332421438611249538101228998131338160306461706877476547382534031899387553923759224740048980973834447782247109465821767445866056721717376691686821800050429908963406356597046443933895665698304216175650666166784254474331800593481798923877563931894678910608086371815565789544548965591916171085142705859182958166047345791223961070460693180817915116485947493695011997197921095749737962255370346261402122789300869089512654717523308152424451451498974458092221446486689236872912145030963594033567259704857477680445510569463009563505644166530082812220504190993271199458619513836562557153934390819229501983672399251951754276654194852938723825722802902956118716446771982191407910348197553498390979063339287482005894821509254347364871790117242006490534513750693589665408339720403202553676125323868364235151898685442146157498160980126485329174096073962003339810731615168777546136532179137123103949868596910838731777204985255076941920248909119141255415012985813152932662022091023266895500381555018651774732960376881050268093766684694033894856377205179848683055071883582689740069223940004260368423077056231659233511234547253342442772737636876090227357752796680626918126611593384190042525508702840968163950450886581157077738010195579735501187086386924803898400764765880555626624955363445652323288393696499059662882888832187575666386476690257010680295272277853889248110286421206702448806226255688097837598541127569254945057801091854723032108881475191760410396415396426103276588021172003363529200978095146968046071062678973331181147158524586618346599194900730747398924413573242522190351225562582889736206962156334701312438726340262795686381655914765955896250381601262355649228079371872019369820092737508601789585292543328984106166940609883066172465312340160799234162976783283643393998173159492375038318917923348170297876982158151949644780901659431225950612533080619265832205525714364798562879521870206359941246467452772911992971715522559922494865189585193300307147761578089930340675596194300063273053936666070418112027260945087719626736939985884161404239353048391501525781310539388793923912020803412200730385853677806787314589125641283125109400538107433814058062728824698210725862766728952662079307520315221513872091592527500995324187071614044579956761125316184272617764653340963781992126492712134057078918944852892098066209993656566481284293543178670783152090648191081031281906170425654780654510816163893703264403747036602529111958428519890828317031075903231842523873457307375100218569317711106164159005847963528572832750058252537224428369756052678336986389654265445934380375507584783226580721182692779390009186552259282295376172704415027543670125403261192488179740448424373511124495309374223249313673211866912460053127178985676660417599676252622948912599263098920699432135789238157652582092527859717274417955071558571469131340921988139837716643280431580166079129287830620861401772896400052544856405517346401678668446655793903104179225755119144042772023023772831802201857199502958798848943328020161863621238351770681241695579970243995179545825773341775367315372769869951970006394661399876431960013654274860045233062820297538093798068608634560829431039545026636591843558735716290132721474998850247897645264970624791013664607498331554029302565506794009823282432483201001652611534785497516382062329491166477213267171305677272921829866628299290312168826325042825963837031748810932509722076504137853582470626054200372654238760709549959510825212505596466816166895200101060831872948399564379236566431891617339746197545586310077913234328231182969929195311871926608315418976171451240524520982335012209863404122687206554990408402556403559779288859651995330521885391185817033699344584281216571613099016783593499928050440832916657144901694282774371904455121739408302382424166752871765361468273658641144011924768019174011896280990442401391448758136056839189073020699958715280914837672710192579073938396669009271051183284102898908837108858490173549926171044192942960755334302688100197298511026653730959612849905704242362673520159659817405565503097543808899497507404975396054496412300409342806416581280807147757929945088564196125884847667164864912319291487683407151966553541894574511718923689297089770595778807657679542388347802832449634646544017213044832847562211218801999618883069369103591224504159024244503487636506968875985898974968591981078668467440154282247545770462772645514306703849558584841841086523511637963479585621662110744072654622726464745006125755190666754141882654861355119194164677613003506059058749328009511884643998728047414198861925207360036819483365849435423297910563755197261828264786452770981142273546356193233481069818252946518095194894473913619372816670749620402229800813147850909405850292614775483347701722459912327824351457382822465306110996420245001628708790262740136174226593293696753100464319213754666366412253466801955034584009215764254607403993722299531406981254601876846334068947073498835218835549339730646686643024186991318937840197338285310350559441074965877270132025633217964171536060458893209219518222139275664609335829473430845625326175051568988107449011218620055595676781853109784055006849493879436061065200248364025741577875787855733294538082768701410389364099129971595837069722013195895345915531899550210233996668665213174417355399288224428444335981423576610070475816208296940045558187620579337640736269975524325398501963098717470234101257089144440731435488566555856633172091720685108294004343729487673629220154359686858517564315988754917790317376672265992997047418603205173653676255907377584188825875540342649962084037737868185288269129640414081826576083055829361274710654823858357509211910035701410343890612606984136372263936630491634259941578155136880237136659396534004505346762200484234835157979059930394771463807860999176592415124310851054601652857211928344135647826237055426305768769348486395376500924290225425541277669484117962898861126898197375475507315663177477789984490707609867666253820589563119018870546047698960784329383136071970640852554319027710689485440348602276253079689442275078081869909020164891937273018728654342743105390309489688480115900477093565994032732860569037730137762620960544492386021521595946704887653143226246368040613531162225989766531620499511996661532212180597162790566494850525976162419281721511389961583972105776304203754653838813161030447681169069697642024411144191015566504883751803331503315113825850723513432982787711768296082451890722348898594869571224683818150917240318891305202711127230112336337660699023519501917494566119180203370242010469960854669464668361656864287993985363496086330004272345740254259051133305148112706532817897202172011861726787995663440653916512715947626140563066426275801853413522263244277816455403901559372153392302806827504053639167564598201112422120724115916007424876410554980128459648646118866018548906578540890084572230719284067395024399190864825621639904730272545689748013063844795328741240038192997000376168104027248111726614631837536672774569131519282190182596836784256150481929247149571067904333826964970122406712216715059808002265429740938144363848123601126528232231561605920866333203728177164059228942297325127496425068352283419257997460260856508353029734630910873836238722001074539145915341579560187955088594960839216683942002798251801361453247339784173215328806422405432983469952871576789815465974839536312811430473462892338751190909940087238822971820049827504876146974510099374157168970505362932728354604884052394581644109180946199135053562868391795376402554075662813426163071484005353383362712982410801858512044970268677129984726574400141439362327115516532146635670192275380997163658109788608337719828054699236564958097945982505165886510438933264247657131981000181454856985264182697243382051419042962782879364161706159792581946741440849329048324167861505847118083482381308167469181816265663071603853691123471348375585897540845252293856717253807272004147315714367564732976293828805479570221749386791708062794791722641860168040720770805428828920016575318112475380388073234226273320997305378480689483509912919092897751570934516846150626310295182350979547648100685852977292651442577581750922675857593345678269412947146152080284113589350542036323610636861856535725919250234012399212475671432604729602787884551136910835947880002859092284909928521698141916373629589299733715739612948973398343675954304881956056383632473062213602086170921698918300791638893505422355555731112266397072913732179139222660512405654229829426165431866728848346451506537979542606781198593760033431955354080342346518625632576376853939355245631409558195257354203093841670326714269365206897482009266552039682649933688803989916851819474322924619290995136551500245277529632845384399272351225456906859047025947627049894629271354477701854093928831332490061967867082506663806898469229705328187557370321772177516022600253703101733419660499182221204319522887717266911988151522156331763314460690058890422588781545435785494369868433721765754962851419067570195685492319250939867021456928053938526439639058748998978550598846648089358299361230678150722640198573735455127962341328392857340778959595402638823348229675999522880515830732995314456083132388236971179318876311891329607719670978599448942190223163306192313772758823126386973172199858376671604944478999285551050410608560308854959110548062252343098344207626421236260420367594947585622010734519740187545716430949312186786269240450709908434988735301044249521072894383028567934915128749699414685060947326901624217107831929155893163523527855125069027968417246278297994122770076611039608790456297615895008853886777856783684907526063600246477258141672106667310844862571531874126105694739729566716467861791252126422906271414389968198491006261075348247500018395945157500167972234644618840730113119411425531021363124282122972986111742721917291340384121251372932323643973329050591214689125279423527247481715845778915676793267220896751283550641964067339810028772136787075843104326573004456948300250982537116498175622620101875623135471209451358528477967743093922138448947427073845896857657717286860536857216192716421221189860246954574587358057201764759999481489908307185346896189632480037589072642546197995100633779525986334284291944074082485396723241801279830925324870780361579972562904097627334264893680884803322679962592964160192377135153400851537358614011343706451077920213209717849179604797800185627465727443958537181433835565108795690767550405554922852815172739320498291082631217377517426389349417552397749847685241708476246172941143429662008112698448188924567840578869847288118941292802238062723635528654558008897795235365608093815248382823612480566966016043734824155103605662963827135632583336787044137625768538963063338563579949601743412227249400795435590961378345288748546111014943837333096130940012038647957671653651638733266414529799069938290000569234628527669256091767240417329396751802585024248278544370761554720833409921642422740662722812931177109591937485681537437494939340635285885972520519681926077690850151346726029723206417322535412958849946334822618576190537244429724265170789900137949071323196045994782443190992045956692637127210608759554393611099273473746377204189650656878254236950226479273759085073334883667365191048634050078047141267859077602511939938669881920707930151681347899573902105329961964631469473529763119604794476556991173828777183801238867616175461978614274004424169344430453726898276464759540060655326656574800712202338003594357355179122882634607438916585291440413132098218062617294791133281472615549194914510699123787508836620363996330847968994928911184921246178032334201644442076634279856659471470532312357093078010860749606730058166421093291951141609998140908603161595330189144224226456136561135045902584704299466814437888702510311375409618234237916216062835108064488354556103557152563984125233689775506870798567906511809036146304298578836438899082552286792213659627178226680037278183894142796959932369591836930121716263601000215685417751712782120166893315721990577715141690745735361793037545762094461925567090441737651993991717271874997765142487885892828439766260744012430572070777151062380904210654378293416571905179302604931897321596147518492613424344965886899834643937602151601288584731819559781454961392925376727961641169234970162613998664862069859714879881681741207187402160607433348109906642114406349494263593865038806315711256004616836308336617350393248954227924634195218694704615462609601441614273229985477320509372329920785711867913250337684534009645763721641985392945606738441354419763614135245747139467125229575496779280906896199098963874291515635270081456544112940695109469177055191482951387440645429520087850260568443377405831785986317328129620549618704417584393055459173762120197715635717522110867190312233733357045543716959268299787151682362111026990518675242480294828704797297824538990977645089161763020448677039445308891578704541954957665650800321788444339967415674836871478995611486034820490999436797091787608874943960210008142271134962232424995917443409211011258399560962006938568255897448133134297770545211443339824181778305009501704945032092963144460924552062727294739702613815073965728386078213071209562737259757604612663215443164543359437056826469339159859021294124504996242366113240579378603112613463024385583514443529891954103237541732101039404780924360823317677737961488280940650755259970682326147388445386339858738960016204437553623043508190576328820686843742871106957962514864917770689508734614760708313060375975277315257724567555115766028302141271361627555663496670296456086053479763811503292346168238939698374713179779488931106586419945360574166402322450945081865121491041765611049346456939923681250784898898222868348099322698776346143245107618857929805294714661384044260628817761358849233213569143449071162021080590582694154810609244744024348752013225951849275560284234747962602745698558915418516722502013152803659883557876484150090837381298464804547693442418753383419864781695573748548237470557212512830805966341185770799316451021274353910803572976358366790374637532289863595577607698467109088544472010590754251906654994180300416956275224172944136324977606952287253832033999166381526112700746644449124897143640047344625666681996631595961826918856073148251046961077606877894615263603939675921896989619203580107015699146145454382898614412307917889433822439734447325896819253963662522994807531153413994242532238870707894580424927283198977281034223107583752056216546838540601738115099391614195131297454458571809421649440456194293555168775218114449880072907725911493020510090412637771064931811131308079630551837963876849057706467324053310243862726739420383657063142438741668378225553817059040794088277599979469091263961380802233074919743018812217522322229601782849264414632459868856027387816365258462794189770026752161685581320617205951053276973414948384995882680076640810046043381575959414183949925280937438603322387872529868834746398981519482911854771598588099907068162149842196801961007186962699808104318753587982318687715463740712052784401709776636030649725018722896661183199888202376947138415975394696143610850740785322881741850953971521713077891197377998869416996934463041322954220397065877956180608136950905643611096593624566232420137092803213815296527868207738247950871669022099792179208836776618081846527151351307597361440356148024797926622947827613783519835620163074338833563478078541502769319438712153201411983960588129917875468966439529611891497974678209663302764676954959111254455762165819964331273452908986232805205858486551305111408230356816499660775071262239162643009755076169083865211144644693439850369641936918486027966866154616145023433931630884530392353072569236932019084712481953612569012841887968716432615816217455747074686013463687003888382209189430471798977950037934088608433526154196532515651328255157446120355416413978372077131831744130671710674885260270523045376729559139413849839716486187187905674650763516903803024715415217488801593460847477291258561671617172572512304649965504477420714955483247019907834571815069276131591152637058072264582642762655942555281179059994801747072512783026419146399523438656474231911685992034136992385039105256384034909445765024006790192083830644916927322272501445681884683415170046972340337445999426498560945381039302952931477482307734310333075796266721868978870790366439049885409106766140725252941259356865314599956624569134765447164560573033561768210673780080082880219818592634614757182793940453822486334904595412327934198350863283004322652040606620609169278328511082374344055399264739423675331802091464040840311654114307569668629719295957749535473984809080573668301791447762680495725294356438274928156331944289054134188966639705596543129427755608084506854617785491353210782957538421349329993925739482808467953762075263920756343909797084425091695648637557800265968387686110629253218511554000805910197588534645984575257490452032538970606943475059258854381269118998025220146522318958549325229552707268808274448340613349303265972447037351068437512474309594677788850482499071189465565029424263785937820842000548712105478055923545289297198268906039784869454231708011695480381095645003860727849414062641975283104241558052542943978975037052164049222523116755529960941319089011628772881479823132987233955249394181878065261561526869704637429614043073158096949861774098992416364956528766410005958710284896754320919649776842106238581844715908412340579291666887920683796168295292088596182169451403479589363110291257435269486066731165468915626285357511817371171007442001050890403526287087619844030831990900463508384220132705271922051120889429685238260944557552915716370544874654920914191744454096814628534243941413060447017875672832663969785414458998719891799215671618597696506258207353381753129407606451610902841147681130179880498076649183521832268770539826410813055999183349387470152065392976528959708829070530475408372670778983528854293241437579091620549670685468745419683427952123936249942305204319759930470020723440449775194222027700737447157717153455800508722959868580970493701976664507683623904112999118404532300866722465646804171420254768518108523940528576286920414730738409194974742731229781845119825303472285764817638902896122081588279389427647265881867811743523656523646417174413086516623286293472752168015871426226494631039096551067918610359604831927402662927112226913292641144782757712406154406526740178963342131072211656819530648820031902657604343664707922379026652631297418456213046830263346492455543989105548102729875255674965599652963843843084211145238820122436065848623438738585367811188110671914570433486250171637877166626759770394254405266506647505804504964142393538757971669621634438245343143029911752430083921191760763412622351614290142887802020641383231540550787161062864618930683397386595780966367080776512634139342559973844893269935684788067870978252278669515689783436031174360423918095926977979797273107875935932759431164878738755176562392609862851140439308369103934483782271829846275061501410936673448143273262573819480180102385237977618575261586537402215330722353529536172737221211519799009097741109775704659601766175125008816805520875791714212084586061542813308047823138761651370833546615636329259099748835761969932342795398292462515162930547272681871086112485477324594241692332454940932192613621497156720242710219568588820048501693346820793625795525526961460149073406292478049738040862198676982141672276704132405072230008207221699133054329213310638305078066671169040425709252116348647613547190096437987422753105954388101423598718675820734972242186149106575454047808830486277982134098226954587516395243866752203761913879125847040500032056209494220022369467367134219061775868630655145491322120836291111086999553070736460188502308152290045573969700083922950602354952325297644515393819318819574605508675841467539815402499798762827721951174286440941714871814730719907069313395171831171494992530737968908450473172981494122088730267802961294632591327498676923824077234095380740828328704610474665377855458049860583639979157949549750904089558289697174474997478368457634699175147009338819608856561972651021595058730156771937696766227344327202439303631332853075968361026043879854223747384035590587905376251297899148438375724996575111670860917666069329347856651293076159412969479521589936907748607647308333403891784207365779833468193808367693941460107650971684139093478131000531430981323308278072719388798726653780010726412703795620465244785565247413753884273540680827119726911533247976059588585365252875676223441538466370079814941045802446457796071183989285802135871941912518926008890525460451257391818454254910769374476702973284103869052725363322299915386018892900189601649146385533840451293560741986230978803432324619679734273333850205719332992932740551318427737423869688090113213249278309565679837794613342510451430789661435383364327683237931809734917289305730191766474905375272310729846239766059606835922692101041345400276783778770575994417191935207056421714808028191895475829569167887250294790064356108552686558337214683534914805998498025712070002157760638603801532478936077782876223830987891942924626783622276229891252378378654366326488736263741853390634869366825433706835573914538800587224839332426166645533411444774903588312096422139910747737832489328499412968499110934791123298276056117991966255383926455716075835308315002791595434815007805407882425586516352304614557527192413781224548245790467841487045892252544349394029813024906733583906372198329868507497276059682663116862621592545939781405789769000981523679670376029139604114079528929561746033376553617307551161611734804927308167878969937607422213115392603742524681680226393009744938078329696538889598090500345482161038803163230470427770419303757985359946228401083600407793512586374661043038411799605322268071103729983003525225690363952024984479007081463438067282323142214824965116101552394544120401054731892002421002656027586935251025545909723751714453587055841673290023163226403828522816255608073825564146746517607794272359791122412056963298805421625682201775277216166798608398038159409907938607386195836382366533460429642946756476186155981039764234532346286314215922139070621868969396442263869878065403338528136808627068762238904177430111078416728153155755085920175055132715581282442634029788180397215368707867054152865395965870994665988186460465603191682983435067908965475440021449381308255446443196600308709686560747040270840121593882059313627193085166461696038920328135038937042877745657895182803518128047516584244087186851363891659780314340844734170399252386710167652335020373449255081082334554208736869268761578645234664606934120287006790097480180754968092039104358238709141741315563998085227784835634894268346222642474304791591288959107405279091077474872256818728247567209681279082571601416418041833154346275991860721908143709956991442495555665965457182483841083212688942458643675945141644822641438174031159508140308406545129102733609164125119621465836625637543340257065785622805362503426920285347297097383664659274871701689570458871864515437539419215295657976699584075491358841798841315488520715021241810121499813591723217853323391321430838091019845168050075922553824578923824353168696939437903229026353308029362160960435447225066362462874950719138562621095644840714180215328919593353280640166486145204961855309743811219617346111845057122355540307112578682150914065486552322965198158091242126685011696603879416900603284666016877917481935813405752576803142561684612209029117239744019694272371701119748034600496630061858306463236690316041873081184422406524443608874213417613541657940253690843159778925909435229050394366241785332099560979603777980208537312841569193407520753181230943181761586519258804188277081350165553621551998973425930040754909605475587641830067604923775086069182614047036121577644537040806580235792972997121864229272783015528664913650822400415457539767629662255059892691829205643344000207659575734109745506414522067703252089525108755216381313000238440735443729747551697014180310121379440747786812125688259568946772205103699122807786054328080313221461437209272367614140078578808298723063198356067528814864189438157839928204720328895145756240869858631073517651348782583496898010429434446590162726399182112939117826045075482361871957810905610135635911469014208914160997911675783443203514006277553804339511244266875566216978985154365335411909567350047704510601219404619678760796360309844793808382417003145355143626228500783763184217203838064798497740171058078161553887154750750304635380317626018443355986221320342400624209245978863906047647282653278821160817207537346918582377214590199188407297821498999824886571542426157637685049196078594540177484797878935804798416021462498211502389664052416248594492369304728804102820470689470502360962383606658884323426230674126349886833879598442990994412045608247251799978241123699323335094629622975069340996015256758652299386153563308247680106900026088419167681511587473826049209625353925983349781937714955495925579326512827338866964129201087095410152481920765952939626420677594964499233147198224850184264246104884320281387605839421485498282659304744257195119443516801278107884494686064986036319518929936430460914860956268668981196640791134317669302505951088405346432045259196392753090961842791761510826172055547519078494051428558158709454247682718326447240341217211570638961876358030204550701138453374328699163475242634188467295749176502858850867500461389730562121495606415453590088145421304639892761396089937365368188671223503912029040215176957404974742276946329885176742212297053187920405289167593383959147154372075110599322212958902723005010779712139206507379650563905135338849774361379558655465098340622767864166849506477276203028017762865417808230801659761421019666527285597864887437915980253847960459877768397293620710748199076571154585232633792123595480847367852845044920818552786702398000747884411683341819011846601385734037255633892643681082096379474248469899026815369246284677666426793089177289720195606708271703525592888639679010568828510251591995830590011283927828532213311305041112475769013921871818800671868224389059211894679412317973469805921256722662014308962617834536722696809557410720507324623887304181465134674664233497472872324073665735728418321340350072194087875773772419098386028484385434077594142040438240412375178824263132310626077823507087680310339535735781821772674969530842757974881856932464987041923094811855327112160691341210104877321037027411921157186724412981501278129695111301517200993375756192665712930413549855625767875659615585692821015010934181030839715892338066591948137663706094706971325863734102528612268966418449063411975233878040986413261984598942117898724626319419561010052533141544945329463665883242701581902491465948397000304631713466608577400751876995299883769257321722343857046751194990323481460739604688330524941388694166758823012792377611018614524416416851927062372046877656530514021290188471946003065003199313403465247342431655289462184136828065819251712413723764351198533391423313635475752162837638442096384642891603581529465408380046777244165715234071456487367501837320718908639160355328023899789193400226306505626827281513631927799364165541990312318798468965490161813005524444552683831787738708644524582723408436999808357498833141497494390861947175380908833364500465163740092547631495335191003767273867968975822335041361646624554511923871320830574927653112601347781165369506381663269510421024646002807746417189678340839299569928467673128745802770547018349033723099947084184265973098569331333300465427983842371109741155444376651934049584323958404570308926581956297287750439822348417159581704324331368935226923277803414508305430727753655987965252083627257524045975902525933549101834108655847090097918176862013912449817583496526215084436998171222765921972008186860931207687657079008695981199722817050506351789015965304112523020906447774217589415293583370396357859132180005011229194811831202773002287590251044134970694197759929800793734974324661891016182762715104267389664300737286090405901509354524620908480064104161938792792091726601174073902197022885647945005491083364787785230618559970794609628135561778267694447000296630044815858287842512126434633782336986584251537349998904706454957203350677673933202846478089179718219409346347509188354311891101252792352020164460069596301693672048438932261574622954165656409530289714863936801621728969215939973274850797784941717929946938351589753282439416392513854453026440523349616720763602553186929997252761036159192438611077572640363325625226903939169790492986889759991233708814591378130065979830983883442710810642630012995777819765514826835370471652796330083858928713905352438182913106328678251447667451905828739735460620047143132713286104103466954832675371137475150666938691830450962064483425313460194878781845290662243985623229938583965965668130374368007397943916796595362283629620039654361548617051872878058064252137397471059848329690427164687646446427461889669943213506239141676683158573454938730158586105779957397171679758477015157025497579287979344528182756338014864578271811157976142224764916109555514364348573586370741422808472508292927045064390376911809329329631368757857550310018446510082391499206035111363812010431741069016027103942780118902312650683389555784717367059432845589107571039552014020216116370812811932898566715014499923686277516434545169288691931287318306150539071057665283369163624528630033919156003085494486181684023193963193205622362737493483463005765371222539351031389909125244524511278616962538020838736721184623554251876191412797786014783920836593509857172028867049925987230472991803638640155493635902285043942225930985525858978200862685839364221958597569999329380016696481675833408761815578479148295932021338175673718239931880734120610755410831908137879826491914063870334612404074534690121910991382074995162827104670431886835110514162070783025292676971083868811235301808792322855243373424324191805975963383041453420551699318638398687707088332113486834719936494159274665884026312446132929913237871132971672295180729983320186137558095756899377214233996237885162205858111382119456789341922866105900310138698083619904867041670841295743527298798354016256190965564627284179103288475589730505515106627563754227332726993375661766857755696811293504640571247307768322450934157065069318752371442418125456781800273458221382906676797349696658586099207224537210832685043923639439500510458574052322295141672785135208432741916039263532455299490921846198143667595687385633898085744223622542623092183053949601957287120366151174457243863684724813082664573945577495421165641508964330148461332726593732500145774525711682252492537757498205121878302086903610259276498632575734276008946516138888103228829314473440176038233072094233093066615824689950268474575316134186780423244736770367034288029746866705644120788042191817244949984699042484563801688367578171898780153369741244138383161604024401903362033834537952347684183785359175836514848866011371094130250943016852953428196012349086737644419661125428852051678936336346674929763594989593605197089819518994913325573698164121830632067416756499797740821403286789646598117662716853211763703694694469823630300414025333132803427312128062493432066135767306797417025673048878760684609640151166650527663336650129076825095896638295967628211846026725620920702667957500187149499878019035013935173687421330420028895810557937281962907301652369761843159437389826584566673517098048570515825466652423561109318361659361572236951083640974514063677162366758618351290224325606712314014873066933020533449278266154071547929606239128630622426187935490605500004740242772252411093108589795067928271296311343046556640552009387031059231004350595536170406783101432914574540213949003087358596575134790122870591482531180099026165471421977189115530656035827968029513175261504764889225286773382480402915012192852296006276662905346132764902091522399065449113708810297449975130568250610456563876169111617668029646153558845692519207395806176460894386515243699104160222906047995405533707356000049773979335286315476100025874657286254145676893141657278182809643421489895890348457693700674066956871455342770177183486791386573891287606068119169604825496459745668175288136490264372281957561033598231580477555626000548414273071565340530042259588349205524430956361873013430589521148371305277147303102151807190730283673583057714103222625351168288144702628318298858222624942504765736930365928971587888677783654585452921223981995396262407098745329078326328337035805750335824090033517250619270971249164786791105780162418495325873414810568362607477081928598031995051603408954697404459533980082158671544586874156503884722276839624311782868183398651161349848648599160848215999824637511710060004735094995304651206620507326817826856602672173267637496468298835508068278403713937494754493691919692376143494001037319515216701107982337776355981171858277811642153499664330451218655820029806721623639730969677088961869000910156666023420316548127103385144798684429074332141901659334827661686811351090675522891735386958409684215211390865988228175596805403295900161011915042784404612892258868241909333027222047417456823059578845287223592807624175762970220695879652254409879961940497292800953657484213232681210661657988942647304564075208871790138044169146987892288681595033988568453537397918018246947307869099172332322023934305975345335680153917211764696805651278182374316247268018432711919755574496391143225207817280725622199241967594790253362659992308167872220474764003571716477153275087842816724128423576784382163281816538491688811843966141075456450124603147544083752718917169994598689431036716390285430365238194609504346252646274416324178248906910529055535837553649183430917318857038828832432499498832457745436189203225055674383982315964526497214207176118530926681196098707948982944765912003817899451124553644476516598734040687652858795817803802717587373844784669829772484711865227313865720868215546054148091623643461048425300408778826354995719550088961863281073515995520152721551159556856529545910086985519695581219045191249020718719433990405861855241556536517803658008426486333090350565647762038963605654418776270073916903320208059140277328446546651983039400246513309938467164322887654699226763105036386787949484953805409410063112001697118587023385944673766304755455176196976141199465789399375928936821008982400315952798846047587487262587561619661365846497110680045759341874387262472419909815357870991168841575853134965665336259376595630186051826854590926217325656907075344088261055055988045757809771034980441579541167418364772288142593291822110060223330317489052376648600704337551281585851637696471120821697474185700169247569986827914907250896440037312256023346815413632766561064910396073234314998705069612107677593510118207785538014642637754266300673135441199379613124568552220567336954622233369184194234198234069525258556728999014906607567837981095883405827782460044680990080871293059065800125039014877950954762697979273208059292065750152520193776190896211841551703856986704767900834674044257448453730755460165729887316008143328777331667054739578530855961893624002741061577617012124216299343635970971039486955296539864027454528344963684927437122927280783965035711663937992973802459865470004762913375594040614907994493571820689261168586909917168580258700559176617861683855878245749073062548693949971557486979759498060791638337732998628741405660739895868673503183078080685530860970826900478108577416810023736196629127090888767252763337146186884392110542768967906492967130975500314497407225243524260564348718022570050372253494045810276029024367142642091489537302146081525123647711517237099671232071359480184076235638972745222584196547750638431044202555885755420021355369303462906793789761362264514629674822130615683018701750038273351167243492284412137145681805179673572324567546465172496591680086852651742173792560765137846506335054404326701583631829960044208126146078496346745868506283044728255950193363787786795187207616051799902975063621668701612048105366431676607887594728452533194605266715867535420276912349794523562774654445119673014100303350841825832120867808625870672826635575010328674350858713535807201120581741885276569388971941676499419374613436546911945650780762088070979234389922073332946757961150137186617602577341702105111290946381616521543858061780019155002908390185725454227253380085057600422556729861328900020151207487162527654884974892507297043130578289264607591276835389268749728795322438538836933602947734233154314463954783911517986984305195040974650341093224302092582393114637242084274223134232170440746692951648669075626272285557177893001639202855476415187903777071123936239412409198345378453645827854921507487096192615842705753979309418751775539704906854782875168371115610558500549139159347609717940154569861979000733643438061559499276997146657864638477078150793518349498253306690847227985580970211236740358156722692580932156784381508480503869284963186056553460816443364082257046045047514988936018490355797317642403849401502157933759672850920539535207112807799001427886750191880137290754421418784874899558434073698285195320432639450855594584959578223763086234472588326401916106845771478331712539812691105123480109154321292091112710723817553646347462333718275762060609328453458422409566236750223624126170351671947246525126858693140511066031465682392793578573795229266018051516381305095496968253927428712522583843069408140463995229394412925395522436602078061642624299577912244746591692136363007486896635538427975573100098138929061760370270335128336994454944178344413172493015169196010817476569981133160920314996329840321389037932678612884422390075394824861007982953862645054445816063133963231413223066062246174337493088716108800509010679347157331607122231375178747790479540598292065572824382977284464406292064622400348734972449921548774212116107197227886050824733003746769097945936112583760406621701795561877747208151344195077289674152039714024024042387489114780582815135321098550594278187088697615222170581893854675174409072163835573772689243570053888166676265702998350834928309306889753641707062839718352036350992619163101394946476514998738369378281587776558280748279312344832957356822428830307052912925445753741495988754538511215457478438487027359731563420718875709149934630879843790512712534175279323437221440026540677752689640709490820102089774996424693417635158717470639643503225241463404981026155155388110192529925195217680388949968543830419801970176921147319575249245166320472290379339439714402994160786685273563097749876573358096188695483483229141475879467758890981676255527452208676465906996139557671928469036667097888040022617446460448069066090957378679051229323715498449895047223114108978721854785712258614040933113854960895433325015300169187056246423605792649097486714581105201556658345236514311181371451735325536049985580743790050624264622707350750140787700130074771987105659514895282534270877712455629580032231117989891730339165457310575394442654446298619838812847267835986257370708450348196558138812321064226355628254502896625869543418749966768698133604257570458023431324029882926635232297959326181782592767088444977820649362978076680719793489501555032291807255015876510607682010843083941775703164878775858201200864740461549647675464944068185909092548924843658371716140259044685678302570412721539065066546842646308869376681957944184388794409503372400500859779123047373860269160735896253428827196942291703040528251365478313353380596002536025440962246606382775177496403394528494043023365180995024884205022847959687832393176720438829311044630111616182274372776670250530626326033315938013365286951601239195481221494628509213424716554993086486063687335379392601166231529299907152502360499616150527140690219121457644874374370164025486794777376034896658225698635137939865495824679025775019763949201055801791979130352221392834477398621728155027424342852216422134776121568204387431784282207436614372168011006135873063984264884828502543744408671495904097719197392908221458905395635742586211798702715808925421169596423878952008843219425155612809440206243463316969406536514607879836459208745443599489858994396697710087386296625633524917424886703511274596527538376336965441275560181974344444833026476842758060718064836214342048815884359370111922251896620425920844444812491455843102811249199002635528789759678949992839819615888682645827955558585957362077270955353265945109918076050942659620863956361384090643189648387095692922362072012683335873270283118763653275757435834653403537144440769299035666526412838802245986691212922529898704813626911644394244017213954498700785320736186609475217866672617296572419662045452909115656084745928464887131479276694421794993325598552670488088841332936215428455236714705431378426867698086701505206400881763550694058604789641570379518058575611815952680065935936823678779879732846633422266304543438119208502673373463300415229860424927630947539757807799702948260804440666764203030480840575815936751660353395161625994092390208883313707231510600770882849756163657350999370733430781213050637273148370065770753058152513260538467412888043340107702018523054684164467591388233066970022320262291209066172341839650737966410393033454547949559384962516169621227223938755661372982267640135538322607694546384540763181212690892321206434093066184989290429319674498872064565786232572649732028251340128097522940905838301817246798803048304917342350075092612853906114323303109984783891629897040560947629988495532349416812243091028616277940467921648242038678189661544225754005829146114916273455223764647611742725683489706484490293253304072278927129761094984113475966997910853553790906798759259300470629524794641726731189014381491765758159876695239198500126826584382705139857482703256188454777632048231546166415059920885694980718541974000055326857538207142255179789720313241764003139002592037947448747635980345361098764973954927990632502136976759951389050043622064559847066618818573175956828832501334901473714325153901084131814634957421156804394398111052834114388605082434312436018301766588687120867489114984658412050815663257432396833380255770381541383251729683495078032914454602725220952615628402465004751624451469965634170555164226344720253647282278016131028817064862401477113894844150515899281300789953386730599871102281308593596068871377135906104586578657145876796628588647547906029428530800371333417363985728733123975593447021949145029414385889133411001715789224179312610239732987034699663674695437760645535323400959854485775119586200273012875746892508850502311066905323069089056133798281681421977604632311880756898101210323070027253412494450156216818109172379416320050843667367815895894336619064422526208579555886956812598533895591334056345095599249846753184788806118093660208034808128409832283095570419654379538754469186552218904345115406784764389690155381491807132747170118823809196728318162113539397865894373625860012731976512498039692294580927597868139144694808511292223180650281187737321330454607084419917589672040563355134124283050650768860040995907320064054283196018953486976624268170727657615954677784819632238161739396529072238508528388074582166566217431007214713319850889954352370173943667244614906126412525769758066262920649344872969593467451877692063751394345183347111500408525820150025597617950753710146612822813429623162660671424266345070588759880397426583551259403428377596489242243541367835702257437182494324277142474490460611388171728208019161256696827063899495701130896500579865953637328883761182172460065936078814505645017070647171702424097602567644937282821597981528892747847667996362429992190797208195956743431778409974924213112529350958320366952567620989403791163083332771668997600422863550455712233943907471960197606605433652826302683835761351945853836211387476876564942357087814852045489914341673513625845291818892566721920056217960156699535852905072067108701917943859059673489951559445727992599618777709429271967516456595027770886663550155708404174939570176538227830995987999909139749735840785875676073878208014886322468136069946409351642007425824022322699233721449758086429699352339722095605554328185143647053659985950417502452724315402117716687722115291688759177221576111385331438635750756911412930063924809645445301744449480965266874512230419351197119617275850509069257894000131092038983483235141898264267836270388960422099940268097763838374165804859942527148270284362677712753184458921165493249929141728983997279491156301019043926201857679146751018133853429249092913541175923259862415623512281744077035609922493727422297494075419904948342385161145434801372020520213448682939855035469138991479766328883809489193716955650815182812347254246718735960113787289286873345852618388811382013384934696961442317898255584742708820447290474773756660316417010366338750770766159956953499255246370523178735184249820766466757568613810149818906756554505597815027236465742315434529637213009287801848132805863471894479605119741186563034107422614480051725450061317472530799348003669946874692766311553900838778171430419448867303228287853961535620548790568921579313616704332835383735395202344079262715173164861389053153290685656141136299078616399359379256138475822563644422324863785263908866325892532286716800952749077505136922410902747202525295957842407555103219830880524902979680388174678961409704537346625723260184865387634058035194068241954988757232498002335334897236816741132011058656997205703545214757244682565445441976620192272528771736780298828524999640606267344683742225648251903096141255086788304882465661193985065626497988967295802711449782846039481086815909746031076257367061842889827542321331983063242764959247695105591838336740820423076938292726593915826280634955049115938301670531459137062956569557769669463788805777134836717558432616484947635814498288620956166748429036244661315710134398542374546476609684225070207025337391352350912425189055121826603633581240849366211115761125760998033503817986798169649628356605188123509143099605840614677909392049494044662613493894169971574723482003085083885331846624490536160520082973730158965586055322554656882388827820586175642359167047950924935721829047444851215254162499981598512412838220608949607753224532967790251705039515344788679545921874053587409779124356313048978503888674405388738418376913745990978251700388150031894735129924907245784758495982452704216572795410226705197286791900233809574011252774634182741080050146903920644821592630384138151843420019193119987216279971232604605635423422484516520181129559725749791149200291139781780622241969083447648734968883909315453475164688986667567564139563504602919319119229658839026450543178216561137851354651262328216302985605708586240563788447725606766182107287739321559402957962808335301274715436782869225161295713702289628212058835209462159621448826913115177186842549273210398083369841117805567668031391979437702781776710565630804567716179192858104810517687513807207660732421699474616312025519856146284562613485635312203707730263721652068755693777649443837241584590724373119698670211465374219763878991574360504599673469130493367061873576106875383004001030274232160667442834237039804266341068398299721861624944990395154060245603418241203487282249310578725075477929383544355033779316443663732419966670932526331301634152982476995637204111412853546858637222501077926699153004045346554413149358057646904095700752802992510037857260635553211042477396931561543547836642497148268892696507376390960697940042815447522814204968540865702415676691352880075135615774243848479290021604608473339924115066959924827065551776823295152109476103756261562274815413788106803641628083879484349838525837320529984058644333041629621881858482105285178143904588025790612991765295964265959767418367619716411782365621342478121869033107755283555569050594363652511076621494375424226375604207636436017645661578172580426694599367895078582724553472258652465117124489169161573566127562168485263433318836545451714795608554012095025750114998354317014866236644489067825168322658424468775266882677042754331470629335778191077995694102543499231298174363434665614707582184338159089485916175631810188756131336206852614379042852219536637175823437249074783913136692313746522448097596978513833365798454709191794227267504748554209421980069070689759195078614253734917907610621168700497495558551057556358026358546874558124668706004352616061460778708853912689241763714121557036716681524726966511175257963107899056568800815382375003894580863588288578136031650075789476449925191268658339311410328727616721737562109455169780532642145919216692914397519646025881014445939603692348101082273650401869683915192826436672271917939943330357824189410413348671130941799819858784345646388475945220806347809273691196246059827564230879742196141169788891765493704515177065058566850095987212980812796314656523323924795922606685481196758659801111017131264310201222929281160342894167072127545614892058958651906645916602448772332811231961835292766319172456291955989931985006602307039402092115244093716970908751721088368624377677972250964704171004774283023662898579599016729288844134692648554943215943861669156566679169541884381764900475697989707147658425507489783522404151541151770579219894649782544044651180529923072426227730763620594656931201176031322129518268356318767639413093578050597658940142041731335261830164244381883373751314573051706866991767369378049160311831593920951968085620715395993075407423107657071558491037507196614797901788155665626613680474628207571401085146341846225138768490939728670623286413149152614919834901033859104054661845333216960617315051480542745625369917548088373634824358495161571971107164623237946030166860758874974854492041037097184187939807975162370964087854077901910302654975173298813880290460721103944476324494160862377991699987769468035945523897250689193941632221001469055132107517567346111942285434086512440862683863103223270189293795410862834821846648179876132287881486167298981879786346263649101359001419746314648733776466731831086950045114464833864814225922995744210080879366186875551127040130345391534637614082379814834065629484234630062002933161519139003218440071549229335352882704357578464244586441346708952754528011898408799565841776703299390680995848881894942395937660632595337816245864210685087169800494196182914473436495741711782566203906174447988716840113680240674853216767393277189254782676820964558014278231463639500644933368912038979239311768915924061893627062958332002355674897670312920501969566968563099826672198773415370110894563292118801637446725957215733601058315259739457150543229387795061119848332032586644195109930020244017500760083477556858669958191409533793556886647117325712944384308808661920130323793986899296967186228384880683215779669833316061769113437915042280539616643107744072327854982786469064100184165353935883985654829894765496236640535342483138434409164882881681372178613881514595196980130476134493816430070822310588778542246790236696423234585746530229191325735205196440902293168573893603160304060954321293078857784305533008379530944849936515401937128731425942757638350418812677034264219358529836961879228655518343106009262069297000450498686983511844682865417816015270336418901622826486903350306680213220427666879203739234954752963723426794386190663828452285206110912556837143814883911495037033667018270599095307090355159313606814101555292579676316870119560747401122394734561560541876792543104839486632855513691132487116845998775271318417981245233850299071968672758471994330507405405445555000627834153035076569090276885788039697870656644478246364006146279308195255454684347789611766220136364550186183532855234577474728048030115192853811989788365882919728328606537666263015521091152712718046808200767385118168284691393727003341088062636329476570691101649160886886105543074129963645327720892413474573526875794169284774775029676620599465932750947718113694363794894429031399837119172793227351478386584228678219394842213009136437405407344566803750018775717235213454085540805888883442728002107533491992391996013380952142463776630155955214800314715684925216354977617731119384333684207312399788758732426086078152258802027620227976660665427435398600162749735444233485115621409991190822337541402436362969304046236812285639069980364539967921765317834231540397518371911256146361399808466308019393016990320003284512960972789377671565304806675689632606345641828000878911394441341575556196463213874632616376468688864524090254114319120075315780456655732971200337195745722106096212977401125720384502623603936275387259877963304483364350821341183303545130219504619896330227597817162592990176200945095418548100952251242706203440059483136968607014004007943254049124476415219821136602952446530157303877551309606937901388691503750049675953327506868845334211632845734037456417671263518872064441825353271714207757908227611144917928328884383585584983287144485943700811128224920731448079662910178726950198964501665225562375207697751911286746476200181546468388282223394245684904206421675279540375372467574655473142270468099857604620577952581447594216261232337978620571774880138216835312920365970741884006396830901493566034493524042977463558753085715232055678100843615745923606661947482090971447723306530241851913168627845242522619472450737708317964928747980575239570287945671357184560704636098220834731648572953234988746857707475338446264469257773310628346752978243210655509096259619293206745570431923706966103341660343430296120687925518956905963623531113070452099099697169741791959133069242446623670237064155915203798577809731948151916466438666555444115771808565856674313840257050223893039222921703431435432008895823646500050837676456140514481118453444184454647153309133636133722261428429195705885561421859998150116282105303465027674821024080393833955465833467468408665226128019546373817554181941863640755620140428288370817557346645552604002525317485456572493463051327330631771963340922646322292146043339107452331793724565165026596681012883064816830188755728114419391533137452027105226778043079380096423275510024282533067458340602076310508522316208630688231703483345043743763482650777745646493773086427485044800522341459677207000974746125930022731911978718548855032532858964050463318856906676614097336725907146288841216849107999437894131515425571178039342981396159669577477564036148433929223323773502454102137924182549583027835255458435555419028375556104747437442154664822500828817358047089063221193917502786241114037221203938973255441170375649710431435188225303795281784290826265150590868641845955473350343379175189389404945407133107949122364718052217161694162338948698702381740980941605681739290038886791487078465975868035542143890129120203221454378785223392084191095944803219302585620911751209488711771141001324876047979107801695975099049633893917220923948963460188913944574082934521374306463293657646785543392621240496323597775270657974268039164455355258546174038077399836577487835095815645548036637496439765116497196670718051386315255315068471253796659837244053549793011760469344915757963189873366497744401615694871709742594375392876309518486853880036020453513959305091260378992534092473983731467398874659355304004742963885409309070128156346247103607951615119279341192599168470704570098462781535092932897076744802418605127126485715446856136304350942038186711953401298786769580000760659222736142500778463489948535346040813546822983941140638437069806345748413169205229463228220429084560481917177093824790245605082614602988680822552509569908176607062801525793297567159904064725029549896257443128752761823608595680262173379007881923272124463147968182884174446003003398785242822665801619422953969558435673374043955391719756494257834143438203104868726908148717030054541235385229578970348672686325732061605405236035373795367187709406927607330354283454089940653364171262509193486742383839381785918770103936139936129824562927872043160194852093229581891328462948821839414658139367544718431512573841692309296059176035883435837729781613140603738679047582010849888058965901193483199489391949272507289858674294716411316865150886007686268824060795281193759221359038273140009024335599399449652750709646883065555900554055970766412183267918110315369819066925706437784314788292559918502789399304052907981943143304780273325305924425790342976405865135443156946651206563774905083685669461931693829451432245580847975717303934630369888773874869609331579779601292777980186193224576471245600232627721372458665531508645715504304255682295553682635095367885803881595091317648354143897555074100784376630092913583795369652001514935139038727415987383552956750347592552377316336350727807348140796860249794219351352761808232770352068451643936542503560946043920070814830264440568572141776642246657612012666283741026081832880030812380693693914412206986891938084217850258151408736240622914291345552284366269615996922234154082581422789808357143217581049209546424753304850548772467738316461945764302575629937421819079523892323935179027601014013211036193125272598603883436775399211275880621522791172804960043835256869839179718208035902195004431455555416422044374474835379017403856069790056796457624434898201985598379622876468711011061438811299296020867632931323180505570072911931101020266980083607536163241452142160434841684181515544527253778058802738688315907914302598600923937989405385515283061995863791113230388609287004731800079199538665580963321786937838582607221601337169664451656227967384569607129588312680825170166227806224311938603066223085234869509765593274471166924340614875982710416571437831825407594714087735251116016502052781323097218971090122572150511126561478702968957539743574620802894027355113578727826684161207466600337326728405702754421793767040201559341690995157528336635338789288122770645520261187272231541362194637662509747685792895974278928215211838806076574849682004582400090955486945445437099628036809680440903872429669310010032207360657352265928616140713167473254295572358304886203931704333277012264531533054834785883719001494539421415450145089471777316767891441874038185838793795320097270402488663356772377024470841193257794109722674518912193543165862077658579004159474979395001487217488835991541955864404788285862593838756571509855041737039520587597534969213183657691356930668360095208994009455152203879662068409214821595161166026836778452937479150031173367089175464424970429543287784701885457691445084404231431104068047669443711174798494519707667544281760464274403738502637720410583145674661661317107882841350653871944440155081284353609843870745337642283706308931947003275678628670623367299067625233481583848747834065422606210665654040058266531109494462388895675629033534191339703327987698611098263336244723129692984032649082690401981931788200414842110554375453651271126363289162284603926877520509323256142265016136748633173325187604573871504394258482128452517295553830404852812918820080527348174665915480921421920664954304110143953690941976292187987327503428232687253652742692008590147944926529006707614339118983606530497120169254458928331091025117606709364183507615837894122110608396989243546315765218557907652277866080650310985801902061195687203320566464274418189970193174734445445889463189930653403125996369287230055813281077925060439674670775537699883799122166281197049149351918811748819165617927556873767235432246993849721764679493288039274919043806637427690921841778710343416203052388152471989312482766216029926766808733338659427676712385201386991635622843679265721693024811193206553871700990260990093393258918133342427556987575650207643831662014308248816704416438596689464579809719078660147342104965449102092874465940581551995041928970955232698032441528938965708194587031799847088919132569460809123374530142571408250380095892811828889734514692208819415265659068373431428852068894275464046611672483773170943568846225114140721631306111451951283029062198842598809211490219092963318619379359369907701631774047379597418035486291319893644685914242001322723426837982283136363444547928316359355561309998861322482714459566885567561683891932194880376028385108366285324516834085687444100854122029355464201927203046562508506581145721907314760771214164638832259527997961120647916501660361084824844630292817934463928696867862884818935066972455020317317972169496474447771068750979649128976212902842662782832846610198462518356485913538854934226884148650330879994081906490042440864476561930070817070374851945281136406103338125108841122876318951000053519123834012866406441907347065803941429256612462883149256422216177674705268104319678341677583765640013114608469483117995665090680542664077581206705520484193957189034926254262757136579842527212872640657656117364228458146597161478256202161768673125198300918623375757881108387325489181356116332244576976278651528116646895562944676070492340513025305568589683355059892823021606698587004356858667775842610308220734063219811518137170163612943392893749218098085216210927380742556228191113271430777616101317801186190831098992509303284455679168007269296278610416639175084851605735832271568168418174591073417916376991274491602797016456283363680425234977014219662636206983989389250511349146980925010640207146764490268885986455630661383589449162174468505135604997257201871599684690446003493633679216937340744025711634222428155973722210965729167011283854709171219677970075976229034759105472521083893260696611366534606859628954577925572680628872991163208057815026557982003273520057634220199934974958255477773592702675562920373022456483776218715206317655006233839392028364000426853175999376090071463042782281897368769903935646543217300074565351226311993932896653337871681348313174256177299232553073762720299940971931252938807084406688431271450450995383389507619841579213699495676424424564481473334952280153960257226410096064692052775597093771397266516172184752213952932067769729139365671179285347602550145851800392236091453318032558350808683385002732006410209905424546848224317769752141391951541607259403928484048360339900506061227504560126453039863314925915142100780711182900887238583560961257672694207437399861424467932932536433637730857601466741173441866098446164277252956266977125632444931373837947903903542241727439852502417068145917418590427647425407152797988984606373134321379557842554579973955827519151685475948863238960972709525102618740658977427368716759063610484304949672343950420946623145663898708819485868178604161871994622293991350214116987560068458762178739664645012678674416952386895314480853313548806590093980546803038812959439339070203512596237234326207821959280291909636167830605559803124195108394370152247090734690418206113487887429577769698311663298693154517719852401352585747751700255410951825454072624443137361579475819537033359790686710251658664912345254471001828239516792412984619810848519685237458931610567019875548002097567097115269114171932337128152453388255669448359190846820364201904291730173761650154394754957273467192097802578684641052543009379606046225854633679168368438525381195678843279102460568939486458559354962197490106763563486302793801638781577349747975082715203624257620393973000974728216015177838331248188799068375105285432386228754036174952736640608872796614154278102795057385276368956706205987349051244150348430641499877868369939447997899962889623482983185389105662088910089022234484278390809319736286056372197278129404082216156850161403449033307364703418499643383474140795554569051238172205553729960896684724236959365531347238630192805856166563981055022524103742161908214639017564709063802198078348276617118946315720068144103643254407259956533630290049986967722062285691226467150005162533004985185321296579377858851866996955112949862122185194821509708709274792655348371231376253967057628936326799580508163931567146994830305422195360061064095566083384270795455587440347277180125997376484023283831256650799606437136562092880863621918326895597936332366053882779713109091474076627107986531824309861419116641622755886414236780802911550011715417868388761475487529041714135630040068079801493476589583173010102447676397399703841439836471686371638190439085449036294534792285945453587741180091107724349786377906884143433050526821350871658775392085667587488848089335759756344161847818984473836659895943936943991603224188609020539681545612810801845671920306738358876232193753372893863487810539709164543505420325326984142766222101900613508356618437795373676986285428611116330593631287889052513379683867735208079459602716654651570387613740186072823946547491079270213230191859838877088047254351332599397110213582180758361945188436381139815881135275104973276298560822892637011567995379477228837373027197943418869661626140595435576385967544922496732119683067495041382841645047630166767087112577018501392454388384653887815717090156693462267987084129350460872357042035021392251012495835124367313813831403514333783713504449149893226461676995250533663820329779886009692823158622024164666689002480441076580723951747832281674417138228421454100655345466150817154036074496135983855677846072987704621161844649014818853520808071174389154121788372180854288456939143127877111170055115281929137409244192339555147901458876245075043138881571333563679515529081360225719881636625768093694624239846719483040686578122852727199447727323259283497978972953475680743527051843478531033053501931935792888068798512295442847961429701624127236793140235269569612545063583635784312295053287374234733050054382497508144187087290454228325902044480590733055636450274875087319487257498039389413766017500712798630614354623455224782654460559993250793630601160883519877316506501297290798228650423244719016781017556618038496946882755854962919879005039208037166166672015499610593455996781937137902350142484399451646401568554963032044037011415109537058530818507154347751648716277973871368285926897029271250710601900506998269411715466790633137890957888264128213555792042657673849449605541663778207753734328978297276546327786765644821418242907085381538078357657281710103810703598716511138485655387597807766948397561329167629282629787902156790847440368640990626425076227850730027274618195428193914643915835973351666274764427853014327381843233850175181224615475345150889169704004191724002247521172858182547303608870755243068140460350028015648222101858704678054324463643325933594918674758243127467295734614608490697863720439592544420620507006856642300741413040784051801941425656349522742337044581934547978744354360547336691063690774015041111640927746422105634012824022206565251419477932361616548325304601583448526905620846617214198625129177802004309467662343056851821290449270380776414501202530908331194517418315491691670802913139303513903258927304356494947639605035444112849991115088053094941200139099890727516624541445625327472736074833848293673201574252642384561023103023817113024443925742311598315439159247011730388326190065977246976013620695811439162058342637865780875788779996242632571374836310596279504963348337921987535000184932254753310160953670654052072662555102204007172037280366499117395065319264149553156440111675703137039341673806075575638483340629812961068671360302954109522190219101546538063657221318763799029263468460211788643985080175654064689275721015915335109600333943300958535535611116314915431808178077449769728708318505005395605053126237417949668264926190183110637040316577388005561562658863472584337457701176476538074097506584848835669473656431414112857382047469636686500357660075915534707665767097768480724210286674286730576106547584328680919715332058729876200724872776328175341482999311622251945289075245292670306385312812766857508603985262824314974718038340496539462543242188592524632779578484401575764521083717983735658441631662940627098034712839371381785204150341036776394498177059957056759528653317647811269457791793414274379007146186103244069898962976498005606621314605877824508166095428281662245566560414210147362896635458426083852169309125362751203369296342449612383069440586640700764889171138295555706727802638997441832218986162087174457001084355239064157717752051130675186145942762898192214089673043186716394354175794689785724761282895468597179765572562106026380843106067666114295470998024672795193507682195088409820221473546569173204927974936740783203729280091447480420094056528635526288040872149045701204322975218041935744428568140699543383801969587259643417652737188644732826920451742242099192047828025813131287330466515631957988328539197349179557075030587547067233409511889769332323540597321882211749881848395127439261219427028583860766709936291160167040201804725444531238224948408307322432232825839788319811710764502832225260949839682018198043931029155536469017284121264785319635187028751220795635316146933646704111867005456379452104113684869777812694107934875463708311955810206411800269652183596320724734902431792737592679268334452849891672506375437629513248165938810864472161090304030560005692007093713233257308102059763228762096352600305957358142160197264955071879788673819699012789393490805885684184282700082744867297361899366279021416925557743745977013232583411905783518901473015121028289993878335546274373810874277360644189797109001220820941610103979169991722383176960003003850916379381341331445978216157481833171663937997743887828821145532517278324020893905021182491233986350801369027209277850175881494736105085156527806949175676607341175756645524779951113609331475859662087821070343702747965763154319256067893296703288174016339489454212196476471676467030427322982173952553958066825677125671230856180633317015884609314491842142913941431423384488974770308539195454284295767364128061957902890363667870615792897266960841256306632599951446757972287283864174805384936075463388882984396763127216928430921689774408987537787480954601424625683670814311345968171775049178341733099899350611457348384849015162566676277556464885893331925434532819851830929216047962520548537067266941219545672654042334513481783401229831786992744410353026846883903912940809476769271425039594218226305845478477023175134546767190963516888676403717057916964405571262848931049097128888257071601517710184290424010782460355018372973046137469307693405344385591190707908876757899872412484424041351922997727406270208766744980691441463382336822521396111935227750982876571869889995740958033499059437844557290926606873742269247308029086334202549747337314202334546346641487716485255649819875828857086013344572202279055139286706087143178905506011571677297999374372965758175013158655702760589522367621760494127031869544995779654457041320142691797216764188097189394901559668615905641395979456705924712380824881361374199674194093831561433263982508427885819510546555546948703047047970806992560732667398511382025956698391636323157290732762591429182024719693921245373672758274097010551649924944747117670507503652926234429577535084799029369028614494596637888495915293875307504621280850135102716282622993915615592481638850694654925963649341767635730014102545593691267360593687074859378718679310570499766228147294159130863109948122959334351344210729217762709912299647547558217352645260943701389908703013663675144038524366791794558128907514126819218240963822604421926809665602190032776745594284153484525983762712909446607376787956471321219857876386022482528407090932351329721422316725556651637163228304315244723938936774839938466822989112046716788886639964958122065803169438676971340830201297955407265382841670997342738371280320339238561697952735505449650274355823153172600139140310342427572202614641900680654847586468070813281714846963429361774922203000120430596403986814877226188267836738469632069895414040817419476746292314958553453916129952469150812584526637892652903372607151225492669733284973749112800417208323057062780068906958314355208681331194739450772079220427594673406986230929697830467937215857459231345450844726669135953752355133051945518993985805596728744626025859598587090588843853397685512025381592794020997094658883417019808947886332226896201594305986663678629697330675835402265750751236272630980179661155507864907159117835461563901107014528963212929677015266302186168240995590667442730444300143238007385543210055245949540763788784708292984885086590234490516953536825249353480784549292832542908608991790337668502839947460591106257132539717713712955308030832903820169439631192613179202072211224822137796835049921352359021261955400685185755768780563558999991845490385559549129714339020026925649441250797237073216109232399709257109156897388929202010020774743050026921452943408052885533565567834402567874103375581120525680235816103914289938422133940951315052910486381673870191430203257854608205833151080061737539268700200785591404226260862023347289294540393858754454219944145159434372401290843162450975028936204654759550355211217765449519026735624756464812678942859473727143916209675365357054767804945442989838060524857625725496739544533446145360901957212694936937951767260805069491194244676544581446503391999836488818025869805928534990720698012943426265181464613180320610629436954622409769018689063235428116511437547151915448371013715181427051668179573489918847929577499255704232761347285955461460415863681983490647540116398947636455576386319700939775117954047459205076105034244717856394585405458292830889038056489547664658851917333296157936989939207652556940536082911133389574527504266484596971894261562362018621085602382353403502648673788092610995069875501415180083417339942418812259257513017075514058154173307445765108034049775606813223131514574875486405777694403548340857461455026943225717765887961369092293428527877405020306406284785191092327224053818608136584255537433202989883066292039579405085313549639504268599179174071044532688694245036081586025848737758228769258401347606045595805973218638548629357810315216944929865938623820008651800098005888459483007805314275640729511850774648495732896381960204232653794842552361054662699743011889779913984580308240213982277217787295610349274165145525908907641964501699356876806281563054300742329264866054174295553928196557689016791337945907205749842792371665439436279763585084018631817991796696498608169995888810257596659727927916537695705560548033209376017678823824884334673720558314233647044596442217120349256472530715812166971018795996121715908752908541099313899164547550967680752664776867329427928180341602180994623917859780592528272540469393700159853927940370592254093664047598751046607653922574305365284913456755754250064761620350915181833402614771596774723321557461851337927345941005095594777507821627246233285510584078451231223878700316427749809799198267975866535787249827070244551322037878150039309297802213834629507330236679639548016424112372600726198539127135426631221909846662017487949188089057111058030045988676703339660535991782267715371278674234504823112725853592566604346971410090077362787591462510499120599061960792237187213295579135892401605159444664242848844130230501367436316021577668249058138298083843279341952489320507342092551884606971621441987589630505498088182972735350902990309797972879192831865905386069207486918561227720473851078464776424553460200123487195285961292256926081521209761471351768073209247209307813108858316681185586441450815267472967037439160105850843360479950043084796021501841814885142396679245775013799449159529086478550736728104925131243814476950420701019178894478066940119002752712800179100737675956285532304750274327650279124892402855357515942840919583575516005499306485403662685408914297987467105453124608144736652345614085493815900520140000252916128689555669307460206156340007220844357081936695012061939207922319012190079034294167394168207354689731570440494786855993595860444523834024691694658445967449607239246592248998731735451759266859133177465739670920656761375208366248231065668372426484215649375001960209732869276630759361091797793524088303996922301676737524028589354638355758115926971669046336308896700061003115266476970213404766376021720959973033878153690873447323691426081232795191136319650856482532246453086138957240299838096885060339384453236925904384860529911505330913261840403188254977697697692812244757891767720801363471899026813004269761788523817924075651625131923665195141454198296863301836707839955837254266820100708504359155269321694637484290469091978903047170687539944402592310240217015965391352722286042766214556620132718048589154797355247604893208415940699542986277503395013121694825529792319956590777588337245725515530005989821415710020327494805053254121144463186335510761213679031885801231947190859454226187812632745555897789075698954313768475961041115991481901530381162652550839216046658724892843011766258920292153284564619652795353834481634809766363258030446532409518020885145768356465715377450199897496281109266633447057180771735137053097088885664705374811368986754755755549315365158864518868165027302433310616406538405650647344003709691225089665946553572602682939710131602012730750327633583720837497522668902150401471061181736507998356434640420299296200438352312624309463619478033889986264790264933107764665735708872375398762529592948620623782589551507194413943046955746777548982405239633988528130221365874960706721398249976907601933681882068870155359328236715092638548014751105822256816070804750453366915599704930294184532468744233328792121971384652484988575884591104721506951193656106884638830245176827838383635663460643964574891617681939827161820007826465242524146657398167906133617487198321527172443359575519635088043985436456555979145336020721591111500113769864715015763988149559469819939571430500661754505462182674741003923886002859864185196902244887604800662844556018859225160275094885496865358390315789761993896488274103029386577887753599522422868421183157114348190022718419202299765817457851645397614596261917163690107135348374115397184859046944069343771068622778090489475446886381089852838409775987281536565710066953803265563976831817951517419193115830470545214886045255363283544678129147752866867704339336506491243880028270775554289691182491687947905627210676641245208726999235293045191702495966668950101586733406490219791602407216002237284647586573339002773916007801493067395112900326272364734341691243220586714587974043846395550877107197764478550897195670616016293372306931540195874427027403603580395957495309491251211844608242477081818358531950473935141932484397272640649421986253982660362838539934208118342562290398098224144514924850258167199014757949630952898654972813077456563297962876524987523427726538536895129092996403112917022552090623846039593462987647055470133160091024983223492614994308906365257845944536269930720631873031321656360986102882188252108869070065331398345809523888710633070578559982645489201499218350495529365726259355108867745307845563533700722566348908677542667040901000983473421924188183016542728355453168787349845184191885584104465626861180267800941912574344434820120400840814664293860672595708078597268481708501320226951172310063697466632294843289107637044630572418843089057964170971729838259840054850189432605779871534840625053749391935853071799866929611290451105280199895956197619741168095911751868417966082464284681107452447546288293034308638995724724866875349090508770079576149207584898611201745132286532802989552972780532471277789786978144869295942361152782302979725133483233751538182067899472160566155301623907173835654966543118317619218047346921753794329366301472448087486153757989041688269287660311211548557135649614513358470186029562456006221274036301672201310783319558308925386294175113396865578944178909729171603746216427267084169968383389305853936851670050702788434067957153491559255628130052246754374150219807285083095909398948672125415661193205820387749860749950985976008905665385259623720110562779707427787977029527524440131063734171653977623164098306215378648753701274872406944979462451684655191970434375409634973081856238462702789611659950394052143206339538500233297681730922745092404107555659243213480901292488693897517899959492094871905279511887897468872891826957431112424700115447685728209159726418470693381111937482177828825313396825701862546545707573246729353333741339579308953980563308449226193555296933423502004473704172040680798794002339918587986565966224268970516422372976186995515743425321398646563658408727882127423029939726522591523324390232742977546911877860619484577736815350977401665984461854852137575944057771334986420197167540248963118986001379309040066392788879571238744019289557334647204228865374569847701809122827134526973902153034367796455590685061063536320628834697779705317345698411570766002286717290846547007768781742946034614585655969746396086181696603874835415748552784965790241351123099253600304746912705590048296858850684333396151058139012797276717190827857502446230818270366346616259178640798000550591991683720232717185555177569793777711456210962639084208176441029103965661062053043927756877410776186150317629227764465186927523421521847987234523952313963529139304111754989670490528586853699531900064562573483845859334583802222138796567858819321233130377855866938252382164225611575851989521854314966278392703319401464467857895004904535201133380272572338580211656625658615246564430975649015770030186220691216801831612945680675146864713935687324980783422632013113604711801481502555341612230884523606626082877338673076064781875221165440021670869405049370405920268807037927363648462860854826245848125694607307488503507877334620646324058552983798277388253132395444778655488920661525454828812019685622611359219904013166759362518683737763665503878611198963542324796340438977972704395452134852099330789444589871127670513009000777182498449771947347852374229089829484476410159451755677983827138884320311965997640121489685976447463433020493506795287814221591769246123464085296559411234504133102587676676751369291016094878762751621318621483413920414684144092324342384459507133505802423779705149674873037599822755393647076377812792930435359190396580970491242272936396690668309866246749787847741280428929090419473297072493009123949697868086901761829603232634532837920079019620770343584071725933406270305637913329803041618209197318777587272999753951615719748089035159823762472055501348486375910683388817628915834528361011396383492405592278196947011281347493143091720425108033147107985252594789441166519425997829970156397136984369163372924935201540544344642153947152268142899252940053029980659299624342270061046601961295008090162972258158410144060749688936808481801329962619421379661660758834534531412958229206512669521165375900036434455923944991744995721054331125379866420039678424934273433817584575914421770963845114962404527276378519507547743127540711279104844833093022087828579234117006107867926541651966591681312362270960151648008929912357853135591430374802169083487739498057923472804303597564840448946790044779015897158154940680613213622725741631195039380729453366209654395059619355445823745077397151662817401404610851996576669145010043736595409428672542911125374595029437095679203132327396459684698902994592502392190179865223358158707995932535960316648953713028834119625702271916884399551411294823143970484629666022031761984780378387924023343341156233460259161508426986708041650001165719441366744762573233315035192631280586758354835165066106897826188204652123527127414906727634237200709609944964361803582323851143706777279759417212020964049392966242534714916772506301516738694143625801576648403695118462987213293292052910636395994327256776125683090016031193839772745610251165934381620213384442517679506996322289693853965549729539767697641155235175613166640499788033085789047467458447815554680027635474378484236185764879779724958008171802906944669930979261299952862663479646698830136704698130046983017037928414020053926110572307910836309458455446396522221918214006329904187690907920571795259502464018485258166658758280966902907327102254065804976693507467819491138296580912760154680605107145290958054372899701866808082589486537243566182102212087157830233534124373842342797176624981908072071510913874901844404989486977357020536337079846385450473518494386847587734705059511456440609405541381664608942826918970523936475204487851401211418427428433769179861856970979853466924801234990933092479973723179390748978870212773635149571071559738242575485806974452780850609208549770559210789260221687765255113164412974253624904518691617861063801717946120502959004886218478711984075444603737716372530234104153441262505128431799228168876117108139400293920803188767903628562377388848968967933041115857479699862481568719993741418886610583434486037167492080951963545689516823106294932569992086382492902689134951000909094089683308765479240596573833748987719897348493742274682406505583014219174795187641764973983960909627140689882010079995376197676926683742914185014909339370592188412267917501990372870645458823647601659136438937334335041502593808077752425292157711438132464103551047591714491238650362762223613316410232260222159256224803062894842715295292213657198744098438601462789836956310225849622504612513667988337469753311247479643502747799473643877821764576069837423575517462890906311929945063983152384511815890785751375029810888493092099197608507791481458143704545005549755055292994563154585098538704604064178858114007149001096628641867476367390480356563683144594727986847197569845051279824380760257324891572927651568684012007471740251752045851617095096969614061865617821820739394467257928878123808643372921988014209747252640405053366369427661360881930669086993667912530157628909459542562024019937713494806541348868150420901189215490221185816841869066302727304409710643383865881533781511754874294540669274999738333478346579824037961219656628354108488684438468516309561201768476058320417292872831331494576901780897383510023966170834301416452481030768840082192270285744828712759932085708941884906563525213378259448010993145458187452575457061091518177781252338093196517547127401321569437825841654352442719412052806072547225417768052300568722898575958229099571829904083558781128982652560672385784793530718191720547563349304365563674018268323917163172311558327421846114021955545209412801823017356494154614079892991038019851974842093103770350287130015881748151215892905111819636316162193132853886684444091091755259808742439858081476502539320811014393894806869188487080687457661444499241654594393290888651914453584141643245757795972378279587387691932572631955419243037104770457000615714070340552910041058722508004079771186815235776030874638034273649661255155330353238304484248519122636225199769781277819891525630861340482051714000407294913143707396326601742733128247020559526636386470814556367511407102813018228603002245263887217386613984767504843616265817281888572010510177334110072197465339554740618339603361567582290736172606215624271004891671732074403459923168923679524710659037091537666052911865283868287195809191600550269966926509870742269024703756521731700180577700922582753295046615896877515070183523869120110342192419593680723376208941543735676774013218240045544159154905980812523369507904516000954036078839060910889749528466990763782301419754796392002411100839629053312785158431151526376645358214822562156466149249103443380182393547406273682360679306662068499979755994382507385341671098414367184800117083166679597250574921693651164847171118445505546646267035580499864411083179443695064830225528669279763626805617721823250170891744213302462811549340769464355476025543425498174857741911704387221705922305322889021284313380608106147854268026141532166642323552506209209834103721870667073404365141402610137039734464316121176381705567923984560220783054542164768121233922181794229053662938068325956976528481962707695461783211788788163975963418479667138950661722714615651956714465447287121812466682053383176198547106506168859470696446277836673184158593136076889042506927162555647758389664340182222262727922310381064686575811567645406478095761470592154241237434577622805591127546264103413886041413081299530445923517615048496954193107672558331800382464111305185212056859834805239201579506408028574000837793174039202572722906917699720508371266615553532925889666069655920461416889718083859896035369443308876254641312501420547796857873089763507743485691508736130404468097619451888475683974098704395530178571715275125091177287894275236364391457969453734955378148579805709094367030532254440194239802811930878465783510648437928334067198043932736828921304772010772873750235462152018273035706323256685789176696327732037919470151648888257047632860043819803417314527372974419570110938227303837570369129727796162285905670194484618825996188822762777671619452598683070968449968892194915900306179943356612204431899577645677977869359666269016981204610395011025742858341430929747159658221328182174781016942174803220496379019008103035753175862416409340264831362628059137302039957916818369927611373399461715185206957204557415014051216396767090157602417250422207001450733494382443398819308710186757914615659220357914147936705630676354531470738052701262718116328503598602309942087955776779452541818417970619719535495732787713904703656820850799630706458739185567103676001342167349654454712312002606914535594872569240699292356306516736697594185001614229647495610110364275171577883127983356374298990332832783647738495280019776855190715035725419241522310634814705336274612132964855551242081962732512429717328113829686962892218518546427704266012304849322898186314044198219610880188913153997316871520322206779356231007538821075534771812971022907637343373119730500894367576457377416623172617822631586043286247693434566371342330872071901774986399509366592440079393894150286275465570552372733650001658186005258804795382261052659315827178984713386369564756035026342553695865589868471071433419408351476719190732660285217883456494481900033650493035845958343429905287192403100427217821191260794681244001953624450717619678873904635748830968675233251575770339883486737285367769499021135978252289897744524222603813312588909679828973700165376010387565146972744108019389897200912827177999606658656910176229447423798159476582994302753184269341107187772551683079904597964559093503805537491976751370166901129814795683502801064928981624177057982707427676678694399982086591837288763046452712708167183396587995374284399572104044188266649321934597056905219893714629635051082228892571561113429454414718365286097099638689675608079196623257659671355536290000125221871848682737830099920095218570667257451836585101485573446478161867719270876831790328842771717033537659929388030058619183081138144116731414996444485024916696613482419790019311381232658542065761438889676007387322491247387909157629877651442259375173795700462213728804460399149496260399608397207960529045082515161893299014066392498308149143194442685715584881783086158140629635597466381431754581959479545962867514807669853493388115862609183651830794081880149722130563191989336527822694475744988334120016393091769375456283493030242177697308356890355111093423208241865672228919884271624176265697873960446537313123691643721088131750780648088228124386558434608607096015749991645741659502028036442588300680543272523885950624254150241276251626224096728042363471394097764195727765783307583196718489612704504634591137457452535446635189251170423352988291826481794668625399440774190215683424961081079207925783910579317491070677167647272425973924743084218080660151472142608901128412772020410452785230813344498404805735783879361013858136381718117405417186941328309424527564866497005970252578472635154010602543432028498117749802932431393785579042187112928427218142103159310827595290963364071831293241437569873360412065494653300769380626163999079009678797045138172926143692011555671283717499300007467171462703678651116896088265966216964282295713177271992390626815301548930125955204996104878824264928420246339277289285400324060629378236814415227776448393913563634717085453212383370977349095705898685128788470128751872662447120673316475102236078589434748875496569735678196179287494667461987720144622870425953547946316324741683539494924977547907397672009871530679519893365689058858701438198441891342229659751664169392788660835295348235897537117041713472007663830015531019418021769188936381457794192320119845049043511355539591345914490480003501689893787036887907035366052923950719806429330292648221203339628311294590588712126416839198113845650481030165174751247250070057879481362319499067300984824155392519783592697753778788616236612293629750973441924874749583918732029626119476217991183773077651131611516031967164673265252222993344193463698844809792877677679050122939497283975850447408308332236903244954742501452589418044592664782680273369140958463484868385871936472554108763626494804112810997727850435339517679929654431559475640917037010719763330793889226350610321598878596533912012954560586972419307829043384144883276241018737718157861047745622760842026041203670388426623492945314377189364812008260455963115257923508542715383060996729535428587274507141873985939256176144975168833779457171465188270635234854380015025714655959073014861667348993863056652187575071443097507525874736479094751454736790691660305224880876319049445270678090951570791331894744845739104961985873939599600170651049735229354100848122607390989970981478513831817198804265815235201432106718888022828167505278862864123876725702926015018285010715131391704289928929879146585446079048507480100923819641739136249708465504780123549818588610763584926826005503556587174268245483990248797309027708664022750576348048229961512876432770975573066767732418636912337597640146707146852164189592459760937519481343431433336847847521306089561533211396092641827707788405481291499879151039053966701502630127085299624713565805190629153562646402822857057349088702200725696923204344059288908008884659341658307408201922922577395641006861973694229510198428770560101613138386634590607574449237308085137839863632024122993380787960498514846675990226614895233756022810956187235725124417840321744623915429936365244044158644378295060379948904842371981376623804374351115147185279261607409356465370499273183202513527056729308881675033504346303902593939956006239254816927252749762642742825967174802047656465502396251855941418447071608667015496913489311446282742724247934084470734744547176241195345618826561454121780207754145150838031885774564581035264168923586288613763637864490516394043225321370272535901541751796650311839895135824416432665621832032637985662818130053100155685624007047940320127088121312323817754436899754104594193819471422777382600306176309942039393646404048072108249633824926126633288786722257220824909508795217608199234463458824890502595912803402795066746910286784865813408043565881672473831438888776108651108324871821920133303975080142482173822126836956108754941623318114258138640519602137570327573487573215463039102800469872801754461158227057662920720251921134512243666626503998872987866496540776373059593270847231386064831715864283818471231969941218792176470662767783784946294237188853041760541732893397961184663076076194779194980540855709566573613724055842438447281918382032026978884306758099958348157202786810193746535775578885504511040511711786880439011853695546400906346571502912517927115513441351241792627539209430215535073611255392783169525751246604635019574268399481242738506249326030153685661550152053761428867071729875948607358126100330730857768884735612687500488883348268926162350929043254253458717265366019833408057633277976606280257879143978364698378587497437583772375053430077790282989642385592881569905926732003874468276803458025927688476021726393874658769841571626907804472654656887377394125260101509795292889593428755513731776510564949404860964741973078372470580211096744542024575228689063467491861415184451377461376783633743969604907202997585203822272177137193009889043873405317223379696125047861845611003868991836919659917432351090247416474900327711311722073158696832276921485550993204063132150018286931912247196810461573805242383941908686023222692113914858062475535835432846876654103783749162335466673704151200940562494869720322333666145072622547698304401436035238316043692308032366164043493474478783171068859185626688273940127902707555685414988977507741023742991334067007412035838466206859350201144784455782024495237395255387391569864115374858022670533066547612450217523806776880127972327871316441468687091973612371762417864047257699950088096947614874319621985211116384523218049380144651655822914940098297822327418272530399098956393839669297778665434390674015748475628345588290635140324334057107081662305420407417531416772061760078652652462676982064675674357024580740142587260014399930741504887755877461065963659595825789885117472768081022837292865040598826006262102536263733452545475453229667838237940407477249326492012803822416240904399298508913329203769570650057087572929441630293166317674205918398978157745850189422936983117486107560081956922031694971279512930953692669849580968634739663705969052736021101691237292548168663324084298974348232128690114303731954716925675189655993777025336112048715923800371231759773852682947212728655478140764173968398816417945032979969817691259203202039785930248049365996616701781626310293362270978636780225489716392607419200166918056507970823937831971947381048106579718001080758143128579846274252074081554864958440529797256303600154244296810341425293634966773145056580890148741353140392397273311046947450696205014403333376739057963160977277400444531626242330844396298842309632471411088726107687375080191845543758436706452513471123008420279210377238419061335814469496968320314433807074249751494423284467289812108661204697865927321525181610941277553209044200835935518341534820984069109338538911361544102640851180038495804540910489106172199246082403514760824182262744285383731295438077796439741679026368172917092674788961469737807000340335236668268604123487136723813396242486323898067259370985806587314656948723963818018262830090569024571353344135325618180321961215250577752550413001983942354784857491824871897494335410714349679074749908500153095258483328231844307624907469836684653025690456973811255042873179840268297168421427090915284129951613554564173654293915663722773320001665078415132228387610016625297522194497095197209539526426438445057419966239812975177573831267804454893843903376182501686409407327711671584381886623868087038421416074307382371466571195349588898161532848423848709607671436609911009837299317686180442752059764811936664818531279948402471166241561948377096588089174921424248762974031291577078597936025974388739944569085260148230807706016481167648795740347356134674122817705174205448571165736792807666417299106027505975440664154723561390509491938107300456144018831248961286502501111568418384418240787811538055166928247221224648903066744773138099585022052848023854761445360012622979874835445076278321757912359403099625266417061115299662125264540148982813514117125459784535537082829872995879455978367190513591151436308821909904914309329846806714667452734771626162879036552456911978997954695188727606749737745206902975248438035711313068248872872566383250766255770210161731332376841816492739706917641854298527318641546421417381206117830789679644878640972597640265444745046144844010011635381701302381720661089218024242319970513740520850415302596194305520400214808265921477809352048277232449532250092475528306438950803281869925747298638564481773467531412503064001607372864629748456678819834976546491165928685679676906060617960322695808211566946302950690669782900081687620771174538958882848901800575466249564742478555548172537920956305863149933700043806127916254625307188626372519133334111472670908469228967505774009238362310469897109481344014900666198839426727874509406610375926133995257657877799134432652324774282636765315081348311665889535858146253918891325927715584613453710877230749045764567779449849872197793762425736601065142835283556835665857808564255819729198479913337292513031392915843258508515104778384728669898830749060192926618270141919807175074080757815861500817724612989542636247448293892559017620924766167892733246601997203028652492222163329428197780880346330188653899103535869428329237033245388979738787006398055672437129257216806069629947345283040678209586424888919285993378706520780402466609131133375598793599145033015985682830188276931342003649374878509965898862684900768364799807296022314154976060524803079491887090402397586265006229661969648146552348699016632299372786196148571297812921594372769941024377647919683475324948712068010935352377225574738009930442383592332669117077110997278056328714477820138681446018582333584183809212155189500972382810590031993974989979530182232553586114194626743849906193393576516795384020332341362717904642532189097290111217151071324435157647009624670809058807240841578650625804894847342568173884127148230411966419026000790110436280231497611742176236656926823370597055147849188372757926065642503318722275892280684543634648126248914987957002528738792622350600682246398885978302464555516096718417292307222909735482776876362091758727315895110723507149756745701401487907482859132129812023735541392469287977025681282503547361563661792706428030722347987279215236849471486530026035813168191493639790168940566328917057401273684156598890377526118296330851573229367356081621927592324452723340670813833498846798471622532992152492616480217727622271368697487186702526966618103871768541700143976471559343949017933078252413436251771832970447092621367873597206486685162040276296364251667692639172853109698265636763092029378985007284973658816671036357390952933428399077554066076920741178674961117404855011581586092766334361538009979075072505699887329158432417361443174247466971963517022161108550767004952309216762617175790407767200180505908012858386067923316484693905531490373962863749428850063364325956645885924215029353393100514060846631796557506491669806176787585207706829558581604370402227267929501325939988227196845793170210148314306454472723025060833477648699766733448564016578380932055338124128081277777026560142872198288104910095259118045937597506276371840768656980677606020362085891640367009256101999605342396195226560206725662362993573166676131507555225988380888539284728860407019017307932615254568270808498350601486547393182910306961259838351418842477366031731796947386836289762405307207449472212767197487853944468040796090712371065220435870944631699837282920800504784241888231899748105215183665086122352562088564083206563867880266873907908489392626729012008116911933456345429603560159327646408885691310769467679074745750010175243449643492011060840937661763890020939059281238249152211455887453810343616104476795967780170996352304336971963201224639579073523731037576784851001559114683631136687759462522309336072240548286641018642487869508966067432783696298544373754227804138527088868245575286614401290007267017809728162815559940676831696811084095513688686686029672071392313473524295300365163350751778812395153632802401698189756868656260664356689814445324040454573488904599593343391871620953084425539332135085211408579483408242247439237925266993848996159015781172842782325696120167110496746479331229548417499831315612833658268147816889885641278902546325746680560261545221913094395981028463754111939164634129238213840062156302001045131905674483804291404162097078313865354982277610010117397017503458495803969137872493691970480574381202653966332957585016625096839807918186542248118637114506125531032427326533516538891616508810424884509738709360535144480858415848540355695539279336646929166724814881591672637388496810190968791867169779840695209250586091821815245152137096591116183132660588948028239782206745763088393378264527774248567605755263772365808436483393339908420393390118426887139261717314034948576843485935664242033418476144093065744317048598159455517854442627778925845924727717954378933506981655913199767908556744366552682738990626453938406751886410138026795427178842066359244971776508219743176981974477956867877276686903601811323067833808532823970547000167672115470925256055710620134238282058595798734924198664989644841087025441617823042609094783181349915887014767634579296191998231150944576343881547622962239468764772171601186439991105465812074816563042934043070969439444078958095400468350133261044909834836363237897583986538494136604947259509727063467009131653803315196426622441978320181363544567090880203468548888260641448804129771903569582704509172106034321771633800351173063562118344878568870631190917864098096688248488598676370979276132515647465765880892731161624036821232099788453389743733195360743250491698216961681359578886305754521160601506999135018320279387475863555236121576323227562922763394561056787232713570143130185178171837381071961484080203997865040645043850490949165206997319256702326983386202219898967891142880352272437199849593612939213299303296024297953306266711203790767286320540990178822733010181246935186053768087047170137201426083112629815098065271528652588087846469462050609990109707402321017673720369849409805234254542238664068708167739605645294458906695046738404223113735410761300344271914429842344914861063566642314914767605233056771487593982029054193491679466449475503869781784720931331824674937167777144118401273782237699180502110582249598458025494314833347793615092943649466669355196930893497565036107075610143517235532091172713856991538921143214793148518894546022011879563943337277810901377541064160253007319324462002922884906017769012680884048970017286118457796891632348394161219972336231327300954461268415896054253051167252943209534089124915956751136162447051757256969920405106388661195829395875524835473809322316504570780709054513781337072029039744677743456568873170210026304835609145154100652475533443813038945423660301717280961757138088121911096649259120254347128539721669390801672895951257896569372267923060997607020159374855429020769764167000547239745220635547665647135941114721893438686597603302327884641575739356047122421418849696529503097910952609502433040528179220602222240604767352324174193462494242849831637983045920050828226841854219701168578648194920416398999919207594016443713819514441895687087131694409006801569985595238134373564853795340111301904958202883879003486591785556303551875211272992557831092857545795341544410262469568499688135557573597331339926733685677659308211491012022228958805126452688883482922351662334455222461376900501375373619809880609400684028527946817688443809118046196858523706407601257831542661300824285765112914575616095891609269580991823513728198061952305463851255402933411450081260997133871457301429589963442449909288092471922107433449864298291549179598957446548663525714819698668274320844483092309532379260717976931561607395428992661253491577082188884172523993458488637261989884498763485423254759742547928543017311393377161852262432782030927219494334266486607516424732049644710253841563970864841648949882166953289548060083597206975898193555232612366395991126741275560243379318984480637264110825353511099277735266500722874786200483917307097003564185041314154059790684299262039532752403585303483498649316961184933147288808687468879540582436066323941632358488502304788924225165695021347104342138085070621518498729027874875398022245075292152560299394752326460631352623832796553454194357436325565072593004565435521621532208277940552852751593794885599192214979882502704952141110003640165356345250371432135916212332707958605823171573491662647757164936519242979940188352843431393995388807830230658960395925424263600493547108685659993365433580911329002162981482160415648006464795957414306068706686901800850255567780869875491396893171732677030947595957625991707464629887775032989815119764237268296099976611666368099513309315330347549315728058443039949018105298135656741693275029232937554704759781401786885273262777816650649324905888792216096234152684790435243134246633054390629238123034224831125719142915638080834359077949673720209018267806702594076593362887692113531325879704501267440494605053889652941217352678473479056788894095926810332632533899151314121039129451224821712226131593511793084188893441254131374766997897590031707716890577080330420297174995115036879261547733808114373482221928092181285803893086484908349003133483934515937187043536484411597686279011439241569667701103506968003207568879803089358717247302978750272078158307925094827537216257514867517395418254011637059722018207688349526868315567878668068000030244021275753959998372801262471900005671535924448259766584447046696033600288170104505235977479405742164886164068586034169424732835037210943872969224567550197260699548791587969251611514635199854411312394692934145289800172715417430151871365647148518898914596144307203203628003740634143743650419494049427919960541194883926926528924921198426424275235625527370728864318992964613217648557400026433962827200266142289067139082937525966997895116362810519019895164648405874923533013933654560136251698152367690827327049847393305947861388540439601780641983803071736187483542282334095412596636223723927727588595963570107266357624285724925820126138728942543737011497520619048327280243324440152749516006855408997494039773128540493207031370793398250517435697195690386890343015239518516701067025692319690296524630262565378376599613510754236170713922743185062209799745006234872339788464840003507291753482144535125293865433747387049271648671991897262328881007527274674757720943470198471563109138818883874351278154727264512404703499445231791160093734989245248170592640401983028705393585391695372277287934126881246181768952553240676224345139223423942033587238162680201770496170424547570517629787149478409115392359872620147378959664055473823751590939797082816188917202903632628305172015894665407879639925364587632771510850862012724966092079327158454005219414424497846488911045468220983920020288306408640083800509129100927555214031315299556146933329734263515925574115781707107352098149055181681572681103183453951319967603267505381967402138558991128778510184736446804590189679549205824625471811161900150494128859554878584796933437954527118886371003540999417332403801471749387207410857070202527132276615116584528844049906576355083696528764140382061468401946975912514740626988277109350645172529012914616444557046163201407315324437033870165800732334878236269376234447608117574772403703976483635692401626187398993013932831216299058058748298003317147196290796397600270330018137692025935461694994944639798663655958081190363069169197350642259809860101353872631067933700597091723950063712141511499438210468352358188907005299513017660909083257469792261560805108647810571033692725534082090620260081245719977809193699657870919036991182953431271138436747623489059086816816895846586084939653252335633005248803809413607717768094005347471175487181759640441652538051403561471599115304103542960596426673278332595328829111089333059614779184467814837086845862285686557518349477843498923830375154865315434820194950932390598027304208828060262377695662049801858827241993333696111905547817333534095603343848335023940462441556815628743703764134085618817762616967829756790369608595423760434286537045330736110519342805810396449263692045863247522621398041494657763187872524389412838340476601310272709178947935774597882918703019912359785409908267148052936257618032841119286955790990608741572892622212937233060951996460265721205926734674274637144863303101358699740709724159505908942796645558149099630495868169739031956782806877426779185641047686988377559185099313262565588580970767982174223087033764333664662720571288191921471387262765551954303196813244175263081556764862177735311155557590271129296039926546588351021493198225372921542244288394289070897161336162104646489988765523413539050962959130384098204416958648439917966465106710779876995718039260211519905525435714294720193704455668997234768075707972453900253139121701307798781338146248517654738063421966639279004390797868851558877028439341083218234367265525406795944549583152856561621307743627306102026182429859900686957316829357197876561549180221443298258344960412899604337257993637004833586711324874663689419074965789357230916403266100426406933384568029620027250476852894985352905784414733680474450976245753549908376655456769913962406444788651482799712513260829909376085550870944216147304748305851871127014933324718117975618833781442028586123678850994414253323107395921283066799883612131862506160102427276345908272657398918166488036708470282617719739977022996833842308930003737722392759476897867989978230558816653397092533976474763896467177513885277281593627278738980001725599440520059445423147934353116198983259851555835609006982713351196689110101852412774218367551109331701208836332963336198425522802001000615646592445751037881479773527448639731550612759284630582693059213996077604830722995941165832119817581842511788402404208276479543919768053853793344428579497335244936543950759100752895050593357193540918965385195239503068390429025278512889362954983811601111030229075592025707860094783636378180227404815807762571369396762281967582352777899985161416165314478442968037737127396670933677606375699734718740196299269309909716528503199840155015300185295511243569734916764816134036813384321561489843811343129047981062007964725759611195855476450694872109806936344765913986666327677027457696793755766364127067366838552439750981214418251635359863370313810221293200872836714794887751054686942768285800038499543061072681472676863602352994384524519807362944481463537205332937400567094772552124000182479244791620483820974512172637038503487878795014801645904069873280940290598201049791322724711075878545492968181365299524878478360621837960886737572353224144021633534932815438940189735182469184219558866075085784106960664167638024506842712697372112851227759652530875835165616325796993245078109246086514405147111243899809052046119046494467534173174439185928252999452307007286196905401854656702981089368020092296875803464053659577175173582655406193944793798672951714007322492791489076670919938162972746729757587618600865491458232177356973068407035171761041920120190050688383831231159424356741473584207531638577327321663780818532221501424746551776775004987645468534979791657303973864996713436633967623174960485426962820171467305078941765251730666047607588388684550401928956871437213121573041089260651368943448197848517555569405906441221513477211466772217530659608392342697004851992313686308517774640451957386155790469163905767641554843321028367658826189516818034784934268762069619158378314719560194311035871082488202926199590931050528193083305188948898539357193659912710855641477004276614735576336234133001638142659280986368227812956912106941254646655997442656068457754904943822121826749845687557613530299003354271737950864372126283624297535823801474756597960955304568936130369420857457977581396831936047751560879878574085200782203897833365773123691757937503101011561676602278966990765052832075567388120596663013814788843512915798072652997900159579132703969273368793189923674977261934103841724997612042304439476019038036106397976815902452150390797714654628362010674850949926283985163249055398437535157194295359966558721082148996236080125573753250041583408409201850591535209221193487597724175290769881739941012989032602782179979186527973167357073236536996595087517378638962355667239267888929848916844836306168044118567792117785503151540940856095909420747128943708210478049179622711085228608338047850068184480802688948241600547059592011530229570350791417940978238985297474645587105574804246659141264245980997554173175077457309176189650735416426077273548163625387259990161968697511057517622783528280914861537363827032301433468446414873357708923578435282048910959884384126540771131024145630197949348463458812256977733309364760706271434902955324833013956144359205844459697081636940781300830859716242595739286034207563412036160116648230839175815446845431155392760903511125640832951417857393247761999822059137333199569032998075346373784750224052508625649422646773301970411840375435945049104221475910065943261177253712085406553263994224757996835843877416456003724385352297238847148353676997221693721472266909931557883331253399189726859603402320685513677854936185031886033932675488191277744895083766311453780582725085156508858217823583766422941031547807897598794717897623607255263647280220263948591490174515910901210778408484630359906508380816904818300110694257023251569956456207540256839954759356859738941244675626536910666829220281554485540145835708473779851892139817745225821583316084016177815992104617070102638606966708137254091237613397451396867499980590130230299860336745817659203489213518426624292196015422164881914295844408875540856436675764897722839594164840970430333211174522078299844157272264309866080021713125362875809041193596375479934190644045118034165479153058830366148347824192408700045796342921944013642503174210204905658635226802993528298169762102400330727316685190719288366095130809369355151639703195380648831927029452361377978271922785475006998246798198471554072636538500188679818270478219717671599077119070529932788887038709827970526102077153763478702213987938625747585002785491398372955793853703870779590064988983690886673142113283019812904372491421763359762240595309691046002691853991434219993815858334840306742716518042261507217324885395294528169103627021782861709199714070233373917232906934145695512544776542249907660056847401405066067269402485209105254153337776054253008131362960303173345119144489898269676394517739930081750902685061707657439418701758847226509901519955891345648865440842660014524921735317256354563079075450669449218202808590267213252568580534967317233408570257084137107964971824629699091700151520723981769134480336006524718437449621192796615923523858033819308160805955385623446480057998039067768952226226927476251453312262292376814370261270925434105290607701010936576509198583701378148241717778346770914047112674899162270484143577718420829638274551104314369713926634516356522377664542068747971985410444327188955453267776053596026684059267147632047078276204235294848694575864831708731215884181828718589762386273407432209879326912024842553423380414096371776839536374914638293605759164059598037903685135778898595792735697678957299712908626306548338632848078588289176259636224330864456021071274390864239581515955159344870328329500284282769986652223700131019620123912885156567647302523544457969431228156230872859040125859978799139584190573940976566212261460371157369114294993246199147196203042343811624418820794386591698302564796526567174153431442966958835539115102503081207940040756590587655593655196802554445564829199295507794806783952860486595211727866033786244432791871870096617893806681135965685623428138969563317057653419894864256368714778081295428522728487696581185234942680520274936246406526178521601121518143809391804106524248422948923748086153962609447963547269855057804708833959445890984393881034706560202034330806819097162890472124136540315511360268287997530988605829225282723845922154965093840724435189165512369267591578694783625354919686710312665800374255181130957986872235062870795740724215740264368461865546079631849711491593300325508657412469048123820210209074831648755102082840604049775710972600396699345780578577445618100652949527985673370997531558332727420218716693179234661052529909931486810848103797475221692775760284108462232027023600293180992318215337728954101948052406890479049711498467138151782407795701049270748117531140516205360815607363828350086835664868223088619520666321511644226641868431941834045428181671641175905461513476317755541770265458406580352637501632644717959904831233931622201557310723390059332580288186660567675934862140777183981274661782559737969484549892707327459593263214119880401335716811148949285626954153179124830167274085349436385673296378070351538017698602917846376152273281331052899701141702196953012127306524462681153451383081793017629553891238578883668222654205251464453490690295030524653433776284937473862587622512440070363386414232523163699460431552462546499293618329122802165649481347921803676503027130123353941782468221438291027674515202988090998101896158933532871051290828861526769445384103534217543159066781052147330824370741884390628242258365340391525028195914401397183997279383158622187500491745628377000304291428654342978237918329678754900635173456260490023614674427962193727532410971611752551602429681528316057579188382031312605005167665334195480896756936320395823466144379799681921541929958913628205916015263805946393426034032129315637908792975341279836301534131084196769112796193641301185598755639002024269844474760142648191233468577195228336366352608227397079313730348478905772776317456662173091273675115878996819713626838630811494405419982898062312454857400358520059900950801894684191410006167274637656219849007410836080586666055076376648890613900901947605827930133048242296946031139801845488593727756196305528989585353816469526987615119109968869831630797198736789786632528754924965434322534249336228728684741332290451090159316762723322842187511103974921533531467885623596450279875986104956336960785015384558544579886211772353385784124062564068423451928373437345663270706310920410810257356146630442253845106443067517703756249177569784633327319585782388053750679519037570817107809205305275970105115910768112695202502057805171102534035810793502051731138593769580035127972085751911303448280810231274882183921035758439075802880129708355566505896613715433572464317337875639691640618146459906460738400694966730604820970061581535008996258617917176160210844724636040194666064012678080944284580068235491211491559352270955462158403521173546982851686966471420719257252564922135174012663946411909626639487882895728775167058472511659513383309860527786538020588087826609782573778992512305704148778609130421617715391370817297685556601451768657884434824888526541287974512491841384031047793361122643888826038185137857138120881783915340715080575140407327738781644310737219151789753519050411841308987772521058547226625984875333567090019505568696138559141084824579880594245344412274366323045320240767655084576187535715479935431815852358367170406210650034715948182830789249793203483611933637437030553192646662840135183002316633789310536588092572593099311188379267726559573561976236979116140931442058616918246421176849654426553224485187841099555435037160033622629443784335464776680828287281420514564120406214924342939496253951674536795047512987265324278444710238911871924580026887440771332572749786825121004701839282638055522200013203085641665918916000025378783805894221634966650843797573680198140973780598634039747744884167110177474948963447990822978092525055915738787827369269803096491935048176621787721235513732028381509460392615086323459199489748560775170127555586827360170856503210875030931383970474342513773566186955593820796108034460880077790061023926098663092428385657981182500436918546145961206695012360674069818075853566687847335022275269295635743707046885933739563192892810765735492612386672302585831974566633681475603710769522401855097147123545706937474838335141731167111188626766376907798504692685326824737979606268994867951426645573624042277884500664715348813681872089871395146111198165326881484649723206348405441199129066798429245545346472137421065942848527274337745115118614851477436763034433079776239443696645994335019063292237297350980393986349602497911935752272440853080309361119432004364463359655028843923899014536548734313786884443226586871736257628988157425379436306594345003153855285864202726757290404301811633039143722583609524813058289736453814729864854544445492735599182577694468484265709093861229517069200797902090439624736872960733517905031342725313323616727964765336679454497737924325408680934859624515557238604431653652981142846797521777727979818880099319003380192120226552960530171266409608154283275470365867558782840141560588370057483810643529877083354725798190216810628527067134761814031253014271937592697961565418881096065597095238758048013200313453359729380791543912210560745081559974700654617521141564389246598205945115091215027582103261779197411846566748263269815555991778699375470055655938039008179804561455941592053842249588168566556402520296057232859834528492511322898319472999356322599609873755725476359882650900446981966946777743622895679166537993712117582446888697210432016618707146655938710760456746096153368335523166247893969825847805221050195083092941505177416132229279587075561891193679426413875978246963654922994722492589853168077723563520830441545143441448422915958255114559628198400122702215722086686131781651953516254813960852080798486117313287595563816450134958719312030886482917219832025856847020025194423117891828499291846347902113159843845709937716976671063375734005197727468894555931668885599285963897880290894248651447269246951083545193715330202073382577149151524428466095808451455344389862392855520662853513559670110335109694947481334584483950893554751109366843231034555744393243730027956388115538043281966064176932934440273239813370339294540349635089424353029063063134255363068585901521746250960074858243289100459392755625216201219026150955267512397422521447545542854633060412212181948869930829660155592566893447472222879526666113249622967592008904789653708777233266249831911851108534646562702292644179170895218583897939196213163790767126908526399530539247013834953502845527719477885388200133628280610016740239523120543347006189945786795022151583293139727639603752319394895741293389741091892567119423552376027578587815676830494992913945551178830823492528666769882036161762797827487365877585978486721424650452045801601837505484889977691113375556758780785217889613243799352915274073517677105979894217294728891926123577777037262854606151744534020586270350309936981677617955773956774782417495597313913463059071002315641128745245432771782895594606208883596568789780724072818890920911568908379324411004756350830834045368319431691852666850066107907456145374172552910080290602221133480593936705275246086513865926917790527311186211603565701584937243342688605333436192635644423774331972110111221290916112748069575971440742558830437970890736400948509801778820500195401549565974586570926989232605170333654455604031006908408867123548807087774149925292183136314100545900136437694937472953291900046969234491791532873641409960589992016469063333636617004289696486339160263563830886020247498324123218984911566940098459219685112323664177176521879787373891175502903564397118754423267967487668504213094047301227553757666939692860411436270522833141165985562909222460141388353589477638044124166659399348105664057882064119352130456190479667892668153707332133429490886649472855305113605697131164060794549372631191449734819754143246012299814790707231470730639006024429764371307284694223170653883401705949002742898808437294339369886348684596877932251386795041434249170462598044474520259378331308715986763633301229479309216346771280999405762341488698639355264669051322582469700540137047025619138315149878574654030163815825779153759269091041479052743170338936132646939722476525868840335343302081446102722175342905950113436449924009884334032477569007534301661519714763805005955739660285573641107082208956887453684089380248746877529807193282714092092854209853108451650951288136949889848856538151063737560354723084219932816772451064952181874756996793001122482359561074611892339761092047432956724027129837201570681653446191225234376765399574851255446920727141928624618673619639521536964519816992073165305937201915924639037788688303558807522958799730928698181786971839825315581028183704608238939620492326080526632405592413416506013346017566905164440616927558678453283046215675376511878663615296559731186122225181119461679384103789640118605319568377951085386222466449237669633860686949541541014001706057620622231349812608160386225086004714057010677754496379670008239243039007251035746064905178871526153199130737823529668500815163150243615771592972163416858268219659308313727962343609338486013259945938728345500569429180729566237956423832469792857766894911830460500877887552356277672382610223175433933251264025791346886487001126557472310090482657202459456548564591969504499345456059146557173973063080536700440110788119470196334882634254909527429137689701802065580251092788236474920837565983347971946821784960284896164614145512237840405234027713951748804310962073685872959695849869182170589911768771853708183099177274430997690518049971499542777992162017642041136019617232597606848542378276078254478213287062362696535560504517285062167982577807839115654553275034400514772935759723114429230388978295190633447065729410648965702172025916487014041993034895910855055624206377578403508220589511427890293879929318209348239260541773221725641242955308205369639024560155429665558580974167109136942025517093424181660849623969588271682669786910592695416922771008534602915546734516988213951853398990127402117752698298396947759153315813252362634877145840145032430237418647442016886352055507878652185341752915008993148743230754495403129143607242071473077460541559824576120560443486870516157196755549068125326518887145403571690006699303047378147417694355420794032324265167449825299537724159691584202079340746794330302245905287379889686780298327434681511230377760398377691926268683956144493477924470835723509765419140807257341552432595123866841123339372927618051591334021727287159154558673656971594494975030054699461439558065787469925182488222509211644196067044566350688786131837118136922096404900995371792773922981754690179547051735097384067519457237060481715451233028610301345751993947704512305008630112588240288196508405980321507464139458797364510732413936718868506059733937986910711632105427616424304187191570662624528094406188441744164999554739420573679293585309658855962292074094223295395495912779471830774287327949718340430487487768625489925981096521932763159396253579650800940854327763276819499978472697477500689372585658797802598381429469591531977883499875000412868164834143688388615477140580474080252315340853951912768976838821736312750232372299093079745484636598818744784963484697166897607080266500077809274551164046511868283989309116961171476583144925945815858321018055705846080390170414295828633482017159859547351437297035500097464365618238063678115082786263043205640393426378085796805021810416270776841024001053954361282829259657817536120552372035111042498358848247986802051126607106553866288207749144510823363728433414868325373911240932131956821535152815287996958792899333927845959909911079001581588200631771044112094100236497960698120529024294606483004556910033609302996594285061216471774635277841675465324917063168862266448639954932606610990258560136988889980189355363771701402080098307674557915440348577682950776650911917242288925745959834267152583181533883078780636954843086791188336595595947586118425099446880826849116159231771356993885176001350119467769842463981387885016703734411917029280493822719625470889189046860193994385381472620204453412354813326415112578880968770167790095427845199530085962935975398720648770149291594137579771019398111505822523854038260024160994624566223480195743864904792019027858373065560033604186731648826504333578128774247145793462637718031090707556487450666397843772641364422238396548190440739103098199221148111707171058034388026564499541718021383197504000488813445400243392726120922088197564655560432580709302532874729838384444649411589234907410813159285497799742661916231554619311424649258740999531660070605762954347394392317069417669014616165507901530474808357796943714013916703435727433540141431572600125469013863095864923017725639197997239150540677396546875014767966403825728271388620646729427363887178153889805481709150569319551345851234536168026388555741363924930337321350546253148587071168702398968375906278763421441495618440250195759217511950703974799307583212505275046264449367209971881713118394665112714507093894181722398342125931702644338600252855690609972665819898414362208231507085721369093004113420910843514941578655908510422197180006157590410564656415872787942284481990781531022077782365097423330247386233961887801648581091567848910346413461657773001042530509602864307722911723492770037400054996448504243862834916282701880669582050621933117093611782743508074841745036901884222557483815547521246150368428714399955659523184229993470042556980576704273432647057925763518367038808005346913520480518546661831057371204400940049565563649204972537612045490204112538065173149762357061245613349041604597735353491026246956838051643908508363287876036554838997409060736892169869548422905917902752480799722450222306994541198509017896274032877282808772451527988131362880573791044858342547502158184736809671745797142925454592471168034253606164581211039043526259603168086496198634067174283622548505774180347309256705446435617555778844779403713040843616460126666731021856345569767443167543919869815019535870330077946690249770228278474359399617042675230371805193223084697733922029603873153775344591627241760717020266927587031475757944992120518776012376661289837719567964713866961624313559185835509275432225252409660017815854056452120123243584392425113134837088308995964698296619227113964271730709177776090931599077758846460321629516385194827017227908693050506088630892196948415144810041459702019663798520838391387709832742592486811447583004823578617219858808105213681643242780809210114562491019870064580770521905180507835003875350207472473436188908331320813613206683666824917594040329387614272827569009057915677475610587857775213543277155565175569180663585983601767521928188931798166141104111359191280511132794551160406171196348161188248508781054123683135313445440398977269404200969673047460822454913278778892439075589887871150005844509535057457459367058666487550488639006552847858253826223448602612938937060100610448262155056462677804693649460990913239123865285009609270958988798040270087507583409327495416091044231455427774653457977704684355018810999419699211818615600409541630413970255365320016390616032155663776352900502109697846741907706962584010824394219443568832512302327173252832999219281968236820615890496391839603892093884414165377760282338578891962087334651631731493752269287369660295246725818501633022826838724430828578226479102466542721573650441717277861325505174666074643050064918644538724726155008312151694957982557204694110390665172047880274108397569310376993415637018329951610375582914536483119964119697327013619212136664791839163563220046072334954211041279405840116033580384644957964378247901960189087346125349443699756507092258257730123953504948647987300163020481511403991147762051371980805843668064451688679412258251666977180303014086336431828383435948059979935175901763393967929900853635807566215737838033300905319777147102139420378381766138781120962233568451814311612813869202223719876772934619314459253924074164681333202047069100067152756917574993439083255544231888979251684254301742798518884842255673328346236766813495653946955711012506659241166396897363650327333107261705111695978049125282777986232783661426088628719728397190687180774296149611016812804033172504980172311473327520845754466762146006269153190189648913927906896830405378776840241723355517132251365753674104088087418980764542840703536231272781296748819828970445925939022669698323443618564345290300760248944674031620037646442555587928555026962086334638951083519628634830942785790556929281718144368936118130674235177991576837812992893430601305754784085548608757828152408513620147955388751378734524722448647192845556129405456300165333250772420458420208840420745516159363858897788825940040747575205695891452308159657684400086849402809908043271276195339427873220872925879909097178003233459077019823961103908760385037650155850157764980656707314080772903197379379106626289959417189455263753990787290518568695295479254193299424075617928663667739945283751752537552235360613798160857574310116347890905262071678017053350686467289693040903735919322595909428913345082146788627993589012481715324566976288644593017188680537854888738149184970027669607581435512042323446050124460245533039135215236469647324598429270537243474392658171680202618083011413595971629981599418456409375460743101390793590558589900036199510990421072845310842629138583073793439466802572105179403489336361750790503961305103708156953730973370466323874965780257210310471474619691943087714013158158111571066194781761086498026003086245204349171152796006640990309277282977341331696935682133610942859508190606996931567947669723401119137129862034010579357192607589011234776197795028682070889498701501762450162976043498519382990249967453135921051130279143960014823223124801607630769843156495048850541138009067754991299805211622549014503793780684360247325052645645554121537124869993405053822885087603628749414357094216602845032527913223263262558028625893015809220735551029381776034510298804944310116953842870007851571179383403892581670159519812326377865793369957891781554610117899372173368488790497491520149059844900530836909118347359480875618374596191244752385313978567025588500470806614315618410601068150052894906112075907656372600289800346092233621390132349014663630751656781553297135856848980043173598530872212834998430267448082257659579606899363288972418783175756282763389393195648708939281077543815933278134150042176519276023667342650154822966024199416833687071002235625566503256653412769060238636605462543285310948977812965141373178671580443907159337764226162101186139910496868023009625584391091233132626714610147687344886982422303965890168270585109465148309366544865726631992345946191825792814370526649484878068004258500246629999506017596047914064154532847689834465929118019120194231181966672485176072894873631164619220766448955368691020482133664051175099379780938384664821407962079832990664670135313877712535694970373576400374380185084487849409120537458258885460470068628255279027119897030295815307517481392589450604493249913445957379589989753824328299287880791479683149628124052352485199927418224412027551863904633697100010936294641564050282488867318756466610798428063707520809906214827644353011530822689504742161507128031138318455014350332428023365880479685166326708582809491337922338067707181690683305467840487297248783760591135368882793943220331694278828025025194528064055626238952527918310982970773994629326648898722152322160532080558782407360341737426113379995594000594928009924767444253899559448772647128340600695593410348909574763290142505173777952541620541890875766208213213057597920966695016498997710503906546021759808609835324264613420587387745929380532232846870593202757003225632448483088841660052107994632399390838992486338923044262224390669333222701378409404306637064183449923110487392576208873793718848066204836162731058217646406899826379514750865314939421925431580231131748904674277511421992392647333640342546424024059109832350082495332565496217441806173755242005336050287277115560521929955705948986143959319030735071325050571980918552881182674582443785723931453638012321866535483719700723215196785226589233212783057450020828078497946695504638484146987298872569777231926259284235383798761032957746872006969164673756592548831509088492745123028529100016521736350775245703498520094112469296898280169958263403251746399189510259751021588360825822566500611206723247556948204306156584533785160254901705206866534240218054102791341926361418990156273818335749910662303969936475944144079534703553895574874769154239202951112538239216183493246898398096655233141268996855774001691846854267375328142215138552187191160786284874902383561555941943228681442284818262197810086194086431525431662458395614761808935473847997867117942395664431728555291805353874815717051298232033134196420802450488493207073549146300259838195500682540082442801940480501188729626792002946909630377149508413823430040618241069953702928477157247358534349018670109984834470245722674766617520170301949275568522811504288833932122696710741111301644281390203518039117607308211322525638616245564541987766519557613807510846195969264596938692686343286133552173723956313060098105115311129952771817620570314579456926452399400061864610723282778886646722104162279906226456063000418459164764743305375730522026923723918414221305420723621088219893703730479648134856746544513923924756868050834262012825205471259466836402384523442873646097169765011425808207826122948055992225325600420976078263590339954175606820559050688474948751330832004511145018538988493327417504019903030297496554610742991253635829825529701047896150186215224262240403642840503932120047139790488861471357054480958284242521878415116018444203078178951511833913550699861585717956477935315390808403275920759595171599399496331619255582707024323367068628075543980817992389779477787414681338476967200986570287366282475047996391607945813231454072855261282791062747635710246330949289351973998543677939635860472482850913790710036276877998923583956124184258779678334844788326031052682305433157082167198587076089261013352281744098887929122480767743043264110187345352498438904263175616864462064801519562705522919168978893079340977863237365958325624784272116041039398656002828461220876826239094414857349688373247594568068382335848647877422780651913076582797169915028879482829320634101929528278211983999695353568155592866047396551718066681404410881193981016912137099173468685939851609108195515537801170766733283929940116758805500667595112485463028724143384737361460639108993469652609349702359025475390248924819807360981119535163013671261670873472911698807941227602767935765097725626617168548405759853595502254160822305470832036701583301393573509390038597916426911566994260981210846973823121583338265419179497582157172551698997008187080050305192308404064574973651493260168372234669569684085459576689541287274622136851010765828283883994734400124525827562617270434586236219800507946047293462994003418693567206185185596442174523727030678010546152239247464362903156977226814787259186971013073969749680427452029015811191133406649434250697287339912786437123955531694507350512922701232328564218035866138909961223019544295038719008556008988952384117318212349112770296458777560015918712934960182372149019933741467737341907239296076392573953561781417500916506620265320975698065859438948170536101080340328977756062191795890725011340343108457285911267903486585476042478755672070030152515874555515128253910083847339883485650686318136246313793236792446164116442553610653262100394129814300637602254034881753728793310511140607278402778165142741335620873892168537939923870273390150575803522203088770030913233653553898159508744912227444471167205470915098827914939131253368399034795070617298240639195658027421210369253116620894778539592433243708252134317413740740069056787630219058356232579011858855142031300721520194517368864197083519571991964774681328362623821431777607751120397969928910373955609847712398332142107009658801055445160701843813929039213993433842223110428180634108121093284105966915384058709043692695351283457346513544519300819445256925148766744831992205177041194432781507408944409793831635224994176934217742762040584047024455629393768125000411766553537129587443810862087255261684994512450151859020044489461430778796158019252140840077524274681273861166459113490095886567799358708778331025515993918840965101392418192523532559509510622774842746028932653790728154525859253622213455440502379755332683862688650208532844903499891774066670439228706830647380825956346968917163585927189038863615706193846597605642832614340549649146199376144167352168050256671796986070534159207770009984719147564284191002854573201221661145972869334770830150289526251869156760456464803789325865969624195978053337920069073640641592487612174744366936216990456225935440332486809080869259929691255003793489287196053686753896813199349219135170024549066081029333266461067488505995998093442236992295380565146140650340893510039063188416189854161743784743539573906749922893706361818131943457286700224417226539108641700758778365804323173997138312244493156438508625058094043496682607111907460273462465972651266833262884254786595478589709263838220067683310331366485564568426781983960484538611918151575127979277473902528466329220620847443034392903615447917851351872633790326528471121630964639584849981364517818921485467917184031730736429941152637515871045204796142099972175606325800093671145918016113195797569397436531846029999865428205864478748207272254720876912205559863945911332612058158754363221502270929574617703986171800257203374092677166592475714981401250066917411736545500874596520397811231965734282022574990718493846783745086161587946032403828382512277327478566328435845976148103574731539038045235783579239795837229158577885877012190607265938035735366218210425665822195154681503637883914673311024241216716043037044650628286433390875231254788152443255238357441010576016270407429585292625822466783187922098155613049543960714217663143644602559022175927880299045935947400921198898683957717936065863087511156089826214798282638376390047906915238026090868029752802232536090818707408187733710147870516444441741469331447805910785647945102658231588711836255522758831820685850420538088759199729593558769254562179883240219299537893515854442118698838218859802705094937294379799997437848316843914139662473000792852149764262738881748102069823196202562772294037724005228106578493687131225649813284698528699362427817906889978544937036744750800976219627702823181164082270837547694111689056916722039929474755106641664718795465415553930101594219752443556395377694212781882275996703361254297513008024248547853426813251647360437815130442258261677403078761807497933260899007665617848969028680701150552258477197918046501136755258897746712002028511990746652322171005639893978741279250482744980818911061564212001310600828192125103202583991199456245632325075675172589593587677733159826929019069864022116571493710994089542050552464641603202972193589646145100870490291181123011122889854945544733571222560324838922987412543570996946180920651783990468277000227749484163085743122391562995879552899131218875599549055395025241418378049386420928450507623386213921739455257612563684066569199625080011535715959443451998483310339912368765154669611357266783155993322386955581581684108064922371109157555389985039461890588519833764678761513488531869580723793667294270218637825131243636243136727041305997207337315661241526582971410478900568917826258453124187491648076247743019233967271438759035859487062123558233532319769309980990400603999071769470009282185010048965497816250366090924101284007577522059749168436647256702784759367070684135489283310801727819027684874265275449283610246723998462626220100024142467306751466835856806283698594050359511556387906974354394524587316485516684556972339450429359787579030762253775115046179852610450779129885216451992526954619272279314294583360231886024667580857284484908834378145279828427715417942197874163498429798015816004576925459746465163256589925688982112071479336983693767968479729234060083428753355364573085600982154003610495365123934888693481229137034755322010714349054229309878793945158784678089726919409996818683021433242204167428005103108896968479583162439793689775591678172578055923179589978466079498368187278114460119201248347180406362858264641627438625026833970907788660553488340173531024763047545623630974363626350903084963860686685892602902381473629180497274786210403938776001735129964587807235359082640483459251276890296094848821284719710996562495272841966758509510243275681086504106962094133556189634283961145237228792900707778233675875899440430027505160203462318020382654793267368812620310406504468403512341899428475273731290325673691158203307912709574907200737664609365619310567738661601146390097103126176104440603682388965235943318517499018932903139576135011553497909955027491888433507021891202913188119236880132866330392706432317613323174475184355315765451240166811162886377020727363853924922924234083134604854091402956243335204822193754532364118594798184492343762108630573898618004640892930837342297970304819859170868669611765334657072911714690472774237740993003662990758796784070447943532550440174112366735510832028526293580106197787014630187312179576607838141066075355324925691322254107091579751091676418346220570348862589445089719918110639026188326643895617713271561235849002873582206442959664387811264198760445462394678121593972276103172104606012090676572734459260149804488905342981583770456289406233973527573015389732301693650444423441596939437216145326257965042301589528313274427601043981880670254232716757430710525658102626213987474895754634115151187266957739934971369898927306832589965967278990026657750919374946523045119023253953253792414236659488273144467091460691353585344875630995833457615783802163675456850324933407543668484436805806341650206504244576268557577306371160710167194404011307203628177807416476651050783902668124176711779717049794122425080978630271273790068591464765872380838414799545077462774165911496480469100411985471224334416260510340714721903200073639359207060982508470332263666392132042505952933739117522764425038721409418189538350566924805084883595307574344351812738051193903039677325228904452286867856714077782084272873818683720781935436705669345948076999938722495942814248064426219898591193475475623499066093955916406978763274826997589855791099141917697861112996365722401388250186638118701221092078994026661101344987271021805926721202334957784528954218802374823889153051188203775531329087300334587449296735056490091376301339195126010276948270977317939334163813231077357740447217853458894450553976736340798158063347358349049945457244843000646949338327445811006840402341675571374394606582334919525289468594207764166185571329060138748567472161352298135045924231754262850026622648508939987232767042884090808252968607107053035023189641045890834574791859084322563554491815486323702706529067497128136205850147761444921373436955454573630647578888802029169766668410615049024904562630836281239575908279539760307683914974313635002877354246366046718273076826104470340339371691788152953491946211933303920923144166171521937694099020820738900524808745926994323476997529169085352870208205151125648301254014389181414039278164062267718454059658253405735106396856254667421540502083467524996631064988208703585497525840944377152375809615036228367508715161977223700013812312240814097098898872336032985544417319727153627519117795975207440190746865281471574444461109853941397672610783948880212465285198425813739806672227144511040103322038273868479018598463226870762494973230037613374776883390356791999472958016089965487280765929832215135639540202079290983110607287465848364685350414797556485762290850793622198291014377731127075652844376418580979076867318910833324603877688285830623311366409304531253622136317807097867817102113170333581424994349325026280622918599281925780160802268431736778532524424696451682517951412804615162812249467717080677570858144347788699252924866756999850924059396777009403313239657423450172063514762647922046730971704911579735063991221344438641928074758160708971377501356207729023037249232649515373102191171418489889000975437784581251430616256172960060498318145131719234024429693563929587943005869598729970566258472500461545522622481459350586264274733659488286758045965343743614889001704715959016893840862205286728266473904057974404317279168184290647931033741323917190288055966978688094884645728355776805947474656218845415403440217075182569176322790762734077878980841048527112118601480943543655675701608799189795803870789309347329431939381390496421006141750429029660652752186009118096116256178492780310433952276767708752119146939413363035509995455240561532807752415517055419479692081970860611818510368244884969284723464475256453613927128389364260209029361260632754129148710350112289881295488159713413950240665265059035692019934469875622321305305532263805422010554902071117571921073247924769094600237827756775293731452090931966465849825133663122497396571683351292846760074718442082919041274771759915473210860281885820432717259608553346937688186541058955659581688333161269908422113808491869334375386414979548692459011735779516168343824547907757841696702440542700539680521585219408073419816611050187739583023098128081917787590195504436085402770160708491833941856037776035425642991368555231537522059481749332303625212131873655356273857469063634786324989881031737988183028972030452888420097854245282373637450750002385688063635978812250795108436134058495987169988305769476103654155493001767423219264949614253098320483031750087945581848702714989836138325609799066025780272490503348048039337130288294488075776965030320881408289332364605186170393454474261978435286945154729964829070107774572254919182228292063092540609745400431046376540437234765754622459633955273065787843822411747045736692662791798722128550830058017082611112599017741938543628467254077689641920516596866636307039445199539458215606374808249105966935627844886147627748661975972036613052496766833290862988355730659728054633997649397410232103052079550746601716733954289739719404411440589350116615033275630601800764852245958684946203774891925297184305104156388729663477698442778383224114901671371829097502650658946412634589213546851343523589014840182954196196679206834042847700382825800704839759027970978818823923891832330227351795206823214491297146460829514163026339274937521034936941427091891117587480937553526128622227358572262732196175642162840649070589986588253932951945363607092340363782904620643316301267552704042663033860053147050364018474171864655162205296637757296182521566233548784962823130735174016229163350897428072233079314852375835967333647802595503960551791480602019161264419349950683075103166542143086542891204212431140961598457823322556348428619248077675971419831771513142657227216828272574048827278995938211060292151009246203616350236226796546201230013406427511925589666491792294280891474952945530642064331716568930776634264298661580787232272513610438434715265408188397678056174277049436455095549287916089135254772670565783892316551590779316178566029299422612561205239764934333209422295404543474684695413662083184939834377648391328023716949075404386897306442689605630306696643263865174639051948380080600240866455313003589088915009103789485948443211626607880354319078042125927660236702977534397773509079118986202444808133415909762335348870852196476354151170207235408863751005820362787766169595490511730423724144420673342457997401111851347906412158185489677542129630205516030722101183919143346560317760630782316266651460374400356265943553693355035916332733878698832730061826013277772916964678239497497873193477802431716311198817085280767963227764511169631727653262590892382159865510709853729895887667565257923813128371646453224037701102986003315452168496213560532884504741259560578785704501112270180688472214675129176439696405857052277802127914525383964408508234885316536584160698141868074197903691447612254102198072434909189932186274150874279717446956029981643485266931003540130315907452390360856023819500242078619458259775811459152188122615265790507838639038437499326665511117731770245214005586725286689639424265433342164148989608590788280598429154052179067192975624172303409267673987042634345896478758789251344530698993833117646133149234132031845053607103272850996628255305998928677483397746239413666975060249738527032784314850217599866610606126125783078734045519811564544461948347435062792270029126153829688762278979546550089479803578253272763084631286880530226376722923023427930890738044275806404581280106854996672952447562608697373038485238814948592108534913318901433625445342731581009009049043978128671647139128144771360164898842886529794842494378701670708753401220668244910074320357774452792025113289170150480539918414305528736573921633678005505665538565937232751011208224498714712860287680805616312663296759447626028069282184527155081808908837025319012574165862615717617630094789780819295343864181009578872837663932918257483634110760195066842876670853124477827501037405048911711508058014873481622683243996623406066505352766797904837053146438838891233512646021825417001296978473192773163319835518565581477162921484670196073067634813428603547915681665013280642705132526485393761878977503882035091760031514917894402486474761292870305974132603197766887321424992583005225758669742152345068277664593327617245868005531169674858025071800989225446943715173331641749052989860954994305869403554592921157438591805778231029547075009199032749714446073069863292441175736790301110138848758644472410839019593546128634094515185883149982707201393521668555084800878447302766874154740794688304300535154549477113112780641081318222540903066834861392010490581742063243203536611468183977866237431773183005945497384769775886159167095766307186449083048255040056884900233870467486149825085109747976251001603292773477770898897618324118015508641630484372360498957170378543901009429775068948417780419027613748285394811479281250256037092691768319470137176279980859300893993587572061860058343063324948410389339037398867073606557946682626552879943662397813106374086764090600864142502975625734070768447442197554166549317935924788145915167095153004849312817830813681978788223490102600339376128526927015231923376212011411228516519529968695110567733700376607037327557683335078474137535198120145835274411524905110098275444136532086728972057669180025670782533166661804520501628653117028221603527752387943837713461924987547287030537225380068522039895029261617341271389625671469337464782625001718130555656808417813757635651486613520675212546653844515594033286964929575891315279322197579306635405764524335401620075829768964398471933277037435351201876319236226478789867047725114301168733607964080585899568861807100729810798989683633320948429689779067103586642030685228758994802792447048339211989417132797652241200064572049346719960312624810570756002016469948829954505199315542783149125837825303676622993783363585733322409656989521334380404683724823242888541134186972817253247577469285058209789005500411848927174021500747137868216508176047672655327341713981311266916409829544557148157907944397397157364901358037674302597092216783316995364245983404531821493450760167567780093233974146059333753761319860083962976229654342307233296247355236420998556979431965133916417531814203576515751358536931068108727144355855004038007747145363878053397570537676028243553441169490291730431927341478914745950307792789700896099641010412132048554004978739725792602764491622741314597362035204534129682759557196159518857386234476611985144321461221942108756426163374992745568503435736096478300684871289710557953223795617220176004476095925975814067994008061556028716963104715884833962570203043175298637649344044972717317166779222587050132073222541947675275323744453545890062582022401996201887900073933208388751694761619498750992213253416491224064995289608196241468609946254642533103276651747303991857443258109407316286308684630520797656018786156490136788434837214136459099308714744504035265700841448876490482741359628505080121867464212667439093891786954066699912119469897012647408004351867615655038065470492680781249926902373266336126476122339243981604701767282597101324321759058240778995817306919155178199496520732629306280872745944753641225515278061808428598655136308058404595853842523370361097190838246622000950483578861670865892860229848406452171242044205807226507181574267656302047953385146392209679786241146737171503847828593068378298715244910663725884484052089096792102927216975310839734806779963095288372339832958020226525752325322237176516499379765707171732299474693541731098653756010178826902364879813599966362681475129428955877625569614801296689664012081915609669991248902225607528189294899745764902209737847527882765765644337502534278135265694015255957832204743565918915003158280290503663440001283628595917337991333382096470056187882033650843635103940246103244685061500410595389936060993616221717838261466580253690692474161933850512669180621780329137760606465270650955812719909529713952223636691184015432456455963649305820258767477570790419304937210922288379441402933261839047982226395543741979312037774958601285794580676390999624004368194648995967779143292151361577763450908895062631987394285617570067165032376409845622144425726404843228632367923959794047971560010713458124952499294874969834969424673678446922923428002643334079249703664201681242982178314661114694342118712412484793236275241332086593193426894069894789573258206994374374053933145380694220994613552145031787919320627056886668677042934281456552432976227024326581061558668260366417409367992968173419813851179089859389934362477262876022442342600019425226121522094611306605268523408870546499485666154057055068875757992683847689385376604260024847755850254688718980480404829239014329640063633924045035919341907417579345513561740717041624463144324835561570354490876198797263349495483278641891032848406196926652211235899229249850071565328593318167702223541777450152176481796027189108398129600515093703568715398848126377141184411383080636483323180639149927118925525127561212830213900141917528726682018201455143328722473267246762556819565298325062909748088618030033562254729618084116865615144923747690286208941884553266810354380309306519267181473052157211259759436001717086408443869940423933401062899106924929097503679137671833868864542014417580213013079800686814654472321070890790171874149433091895202157919156500595863614006777491268399417415937670821235128738090568179437800316358442815617813902902951436899234434041696534635319484214758858667127887344414317501509564036392439224725409667631879051445913037532132867541459846263374933781902398709291033927583640453160241590957860020697920074940078473514281800775139960286246285522874323569188705524971905708667356464595189039194741741207200863156328966269264033190606132855257447435114921972832627148117102377072492182924120559027647850652318419422424254354081687591193077055145838874179307595335472638752517662403905379551877641426308086238233918106741300182888214679711718817983007404560605336501814246727423272663134060275470008515116041751683047676049388631879493401883347538940968001346059686361201468929467475890556583507778586422912887727895082881236936303868300642645066391029417520006389319081739101250058882298291774616187598559491339864653971115915422267057351372519682733821109348776857810485817492936586689051127692047493409757843400498907327177623624364634769158104567410853488508367478050413183414920057245399648703986381512238167895534874326833388424908616844885084226468967148201269123214126362053234913203749333998748575848086562316573665370842098485288821335912391911053983841473357427128803736250670302289946102705081632041577130748248044659653757945268031445010423174333453015588866346776170423563383380035879325909310810241503736220769682050048539503609364170035749827138132482254209279380435334244120019519363668446279377397944686142196988773800769116189746698105973267290786703421517393570758477966217907594397244476442779165939479425431063089760473329734576170787789174235360690316211548272104826563028154220465303913783165078216155774233967024287250396106379218413916918490262746265310205137270704686550061095462416484689601413852485778386544810838635102502733845871200283161725525351592909484705601197090674007707062069622151393598984844137739746975922090059666041510655703710962167859365883957734026017128539054811880828958436830474311493390210979620464079078968733226313795971827371011526906183039089860013125672610202954029423778660316811195395579362712304359822190391614268213066636981423961429339081556735808243835522284273245478799402642599591400404151058514180644911662043231560823271842872141878963609703269988284657444230346108817293152041857145140673530107738334418760455425674601224432501558113185070694570183420454844975781592137407647424930068991945189433886063070184164858753703708244276975776582635532470492488359200420761273892574261996964423968669835947101973567034121911740276398983386915632697827208964973512326747566554406028409467219767762865191853580377787624397768542026795506056306052595022582686430985308189203931973648685371031746530713881009236447098464390104285855709996326817439128738735513881459646494072377572784841008961229169411939074001656378725877611895775977366471952215920431429260209281549231849015245246861886379983146391042870879674590631347140595863203534072817653896689488465776023422640226417390616854858709589733170450542143908738888809242473444925065235707827210551767599456090531484920016100315080391009334896843933862008087070658542775534325737782103123751199318314923456963730751134659578928634763650437839734383644931620922976125061521188379623135267608754932681902193063744320498302750070512272064617440892629591690153860476207645380796980043650965550662288054179189986712853710282524275322965982621421275500041620295626211029524267486098808666688603854549717957104930312045919879570680443959894611896646538046463157420576899873598559436665067291516523178278203973890799223617996821609962554388593039904856055797598889476692420362162792422000467725074501049724411010182420802720431602832755298188271372711034525542311565659697553984804910790372925739043300518836896514560900232750869130356843424178165352345913269900504666945984499095577229094504056124387981209184057223714362453816737356495201654344164741893901637025385097396391521319072661606226357501681070580586778583339550848613829680058125665579402446456421052279209091439613711749938964624718574239693107438141908842135155352818897007897874343649746663761535179884783740878226584131750346556375863063538927652736964053194829548453588198245545464843903355803711147988374291705620138351672173367964450550267153857519388257361943807969329730155902980660271672522349344293494431910434397994415393712421448928509720529536383902244277484389393336562353025758112252518373462626091504371819230783881388275656251995734581886241663724778561092194273384757072655007552752902664661227095025730912526821343861086896900224438367871912798160080091520633521141324304784205933202018232599901393731546310117177931953833209034358109175020288956763843004071538240570759007854202128284549825669241243127498785209398904186740935106985576536997540382089501379987365517089307575446669183493460259135237180315359590072902035228653153710308998278590802221628588147488872732999179637607156695212437729861011672310607690774673217188378169813389294029541955761041695946622136044032979147406603707376897012294350564936563737811374888150915445409961487708942136055595167015603892350286936719147742206306769124029886680782832748762635288569385050288629215803504481112595462831316273658548032602417960966063445203263966261574926110410284972861284865213963091880930311002270065512336407846217447916768447211287645311401572296083092458791721221107080451183770710587909257515691965654561617469171721482759605501369656621934346004202943146731643577262380858505271151469595894419480217779926216896360606399303103370563684281999212504058765991606192905391614426827903404641985429440209597660222725510472940647745302641275910153101001433812474070536023312509415258229510355253843090161459551111929574142214486643211795496104928546649278346988876460358296107575681839981794457968876624693812381995471960604062894864017390121489311437272438425502003358923317255500678608632159965927683332986413314108006414360238541188506933418646558792462233974463565526894535481164456348470574427859020178442018112914812941350969834666884435955594418000060270818415815353208726776761398727372124110221106760646948960614333668989358902703778944269584193822697584716274543688015724265412944080780576747343951588761893971917455159634773480589566632019818589860463011785471615298668412246166230241342471782984798287571752875439900691609236700480401841503352533605949078164074394945225310596334915103185736461411740242687492211368560234070130898524100485023774048355569091158405605504794203775559017498378482068914455743401616837497313842583350965375102039570459534835933874780200930701269305071449790592916991384902066391384003264772913271521560511940901682355245215148948762824522807295603912943028432981471891064921704069501528435576405967903253037170901726613966170775324151864129606849698340629283261080909552626022161953447335365916133990998701760763886332121216422010990999514594505753130035225908137864966751022030284028835715285118836543087428349243913820358421586445857441441668569789845897805294541386953058653131671099227046114175932001958484974730138998918632922164902265530430344687397992353448524862566679305116996328076707602337780646735822305407648607503469174243012049310310258620123296545890663118259788599886365237813114603153280187493190959410484923710039431411114812162949187754058409545433960610403881660034613747740273096245651914202333886262615011350086541821543392979630241412172386614030304989583240253265972497507670066579134699067830622047968818845922853562198670732681143583382467485556059188842333755590965884611182538638300590795956573133167543966542858306106315207165094177729112992082370966674024241445652118211452550214339270181748563090819039577191598920234542649280713563125132961033236781473931009129731090728722633079583785074539353810560551071422897094549417020075671555260249354940500190990330133055690353536406870118068722942496916543392997721020835899704468991351298053470803140502192919829961469055735026830445070314329559166299096709013427799065831913434303924647990378975159397415801531822215674778482385832635565746452742775325898309626669927515413143776368382742474519750962059333034425764826678432098027899094832117731334293496688263630902583791212313129591955331642447540771785928188585610007635586273667384559782867408998966088536025938188272440424625055497655643459702064798739202489989195478202437471516565790561645658646590177699110041653180507435885777891083141199965313410520949405935341372128162240908733103945379862312617085697100248224962910727873683872534765433863141726062841927844419344479998697925745191838264834483697713264650328134341240927217042553790674067090597530297367261535071486110957765939430069424039608335779239147112001658289242917737685710889470990932465736580245031852225044329420444896924257733147289950358255222220796657336597158582087065135178169731136490813978198409035525141158708846431993057178657219084272362862963849574789171438855123720213433872587074676261929367347095657471105334976602507636121044202905577822722791751017067741275870793541927146418549976481143615354694536660503823867616281845129734968362855104717068165821717923875748526564671955946574347030272980777768112699094341575482263917149571323692184629731496271609460424032516877230177397651319915617860313992605104972252199846935522590857360517362678630874957810890986768616795111224566493730605008871383942494011091397634798058447287935842616703353673838497596955876546628195904896340948341731067944348080616843833160289633694070161022518245996214807646443687154525111489270155455161178413567958229215928371050745275648758717818138598583120664195558072037880693044350002003967548654659760569132822906904559662607740710482110308492972070363052026124172836778855648889259359344278141754093178280750809669615962707131205282291720371338509721096603745264115819027428147509204950600468133455937862123075180014593574400417343815504507298639094474173235668384699470809079690326501810685689225025205000301616230388455012175003221527588361370277724791245085144536504266662588122956193969017416323478030895265098840909174875050368282439250658119188306631099521085439145679385005737405900065829204184637789989345410780091670670811755888003869304749667162825821390361002880470800985726709817577979439661419485731580253400664512621565697121386108335556528417712537690555045314751160524472929648161644887200445119062233296742670511705758098778231688238387139756101283145658134343547692705307953576603376664570079395947662469268229509716328898471514566739657776698803576703033728755951095977255927494193015081353646139336046314665026039739859897897979880779417164273055397165097294833534154224932707260062612802507510369461269136405295098321622800287449695298300842816959009926349228697667319668989520616278325865822277053400857406347752507845761542306673727584925710617072986991251066898621696358186356331876471982774805085756650511020575313253076751152453299004055711351217144798515893316842220304957810084747588954082777360364158597748589711829373315658190342562806365914279411715635183784288447297179881092579149206573346126287940850519803789856397528103194524805999348939672254200245208200515161556781247946949888184838625009700162050329823152864590468236352894146494536725363829835783169960091073946274547918384981866862430869938932646341805247862454980478797328043711062804212082400578418163372237206453571859218327777054022797735800774402656288875951054301806208340643137918430415285199664827272526608687509306733837135316001326580792856091630070170220328771880527135198903312301366295677136413354744227411693965270657296109433409281319242032267061903943210141472843142943894053180307159483195130788221194690898215551567924092844541640273950668271555192815582409245453179849344597111604022722111117609215289592118461478614028271477362916816751263295714798520921752071188365595377408433965367415526960416210258100709442160718469694012378959679562833742443230704159175376891906082744857389841649961103546982719363936827986064525101497648259475488525848345757927226084650358617249860260467170843035047343329382341225059425695323245384363809666883226923032849260294079126538114611935538722998148418278927867826531451408347749554173597496883345037775524525682468159443104932309783549667744811219715805607619783474623844674388450644910330358507318461090373470481141228096662103852439093041313252811222888959970900084123314948595067702118488902331904785618424990824734323400685225541861335764682760835431783631526366655574338441156211277217427913033969710364378880309001147444240466219481588048534743756261070859584524591135341141410690665184248190318350614844782349729930590319781581241566976425697596596548505766790510686980713787023557272545370600405093665101374802826083006310506722513900617701930680387034490715080193477839335724262698500468260378346910161173942614945019556089689823638124981386048963035901034938467445603674563073355818488598257573860409400165860088813951369325055594420133316751849813449022610611798623256153682859769904496104131514326836913112883020964399285427539416173435843487863123832115437699642244000302137083004225794257452672441300696031275957367816430493196429195984652282774459039797947698357214816409685257428327011426538001934332556372350276330303077208849849173441590524598251639536259349045395818758382655197908395508005066788910440332595508291827120632861232266677508687550356280293633672242275442466952893897098863401546936570959591096322292359599493650558181012747809988854810918043064013530262872867771914809682615734535554420635927857437688379060563863142002142526125986130286510209933339923936867638986047903230839283601524484057918318370382809550555259305826005567586341464336717770441757949243385850814640183467763723376187195202443218765567560993666581807682121267107170744263866174627668659571748756802670490504231172657345610135537167679280055591510426566905622105686446841171692484088984354735069798337755509782941454579321657472811751710466580905661172807175447750179527000747392826625109251828806270593154463743915274097895191902111684198428508227743176159596881502601251300512991792137782200189782921374386756027072867247259490972103990191881576914049800971572203194686473408364461611856650249685802271435334883079711819895582734830423753418665588390163332981410497806356004669210696343924636505276776834754145144398918780950798151686884816754706437271096587819421092247777115170675001668781893547021453116623033522817999058511385259060049988986513105764700573612006371097002901339638468724920654561386231558131993285184524502707301183335032217662802403614132827985100225088862054505508334419595627746842672657569441313522903254228191937513946408845477971384352365235767733272284608877356521283232387710519603395197361379955151056604064089907001739188885304853787929281640431600851332640042262130147651597636132914796121451494152722817500979985565355774887808316058836417924708065820783090545617278192166854672648219103487554909575970739250909043686143639282978961474176347133090117446047420867199955437754462256827035126998944936692795609904259801264942276894513819554104564211231982241860778230334112154377732465826714055122703246669942412601816018155553290350961028377803246126564780554710130551598495099149599317539857287241983050788423680047610978548617853044418296011601478989970573401205124894034074525163196683923895386115446553561773236955548975009926786578342435766763847825503929370235914024212913955223051873520591664172587232793443116628973160948290181845476532042703222860560106922702793683274930932206439794273674761818124224500492048612128203089355683481249132338766392445808852320421242216115050494459670350283832486630711703078622804200458028843802072634232722475262203179465177776482527996942931206745279754614561157746780151791290388571850481794849783595007828357427551705509677010954685556818174831587971794192212588429728976530778502176642233656054605512829964999216595132165790318786832699915382027882746848790508401511552772070571211461877549101513100136482635622765046589076490407244600297412942778461638598284167365988824617738305807267388916616157682722969120993812251621932635548948893940188848089853931321314261723823239422441535564042309949981750586836967124908589727790798885903240893912173514208406644331703524339443474215194056915919385506464759596071266588903983511820864753925601387805023669917598599870805779583287340915817735225082569551740249400384555609421606163371768347388687930172937095522829035022508340402897339162000026141210099683426116704077193342983592233695013884325071500463915017292746415452851374954273560870089244566186103827309927202246598113427717182072748439176960787059755415959107006078107483501700241458346385629929466884585513220184408038484487165429627232970549751113367546525921474742186212168430157855704099955432317022594488075367431084133485309222139566042733789944325387844382849332079813416740316658641547026863908786287556964263311280801292042535285311115712358936697307054616580998411905621231295261413920057180961335667034269927827897775213695646604138827250540802434724134328120492161692430746330961322780086666100838838030509146205460715637370335028754505308431876024540743408113874593360878370976738579693613171633653783301903496627273625201468316229986834245199815434496823578111446927789061968616195988553901140109948369483243789457706879949628519393827819847816817077081278025364335985807622821919128453350530542738224466270700606060874181044102433027516798625336072941555250423605913154259607944802383380830407397278830024275251568626443361967087445705908797946428912168759684746386764891161537775183168446784406084216560929610936153855652633064229998522313006677962633753041739508836636903167793655891221140259268425970766454771680757838583775667546774352551969790760784025542501175516317243058216026408374662044326395510833487494955062067720690981694770488734447784609224090989761734471057880162385076595423514274531503048948499986653705502807553903498670187264439434213613132014832468253338496774089956832247287274949542846701771684581840598768787716490242605815858449346029470476504343276308770675234977386220682393850895216643978859558785075355578256983985890822370408938312060572993968152913715042716932990186369641371079079243022113703219993291246377472872459338032965818022660924104785369210384533501946104384630607083088165234242009527627173561473926800151844668815192794709004502231377947912748832569676797239221236089087745010028358607735934220663543961631385726770228334976865934212946900556066543172978033904696389506305657549282979250404013149493284695096067754550508037030942941433139267183572353358301303815775964746422637410061031254834832690044878455024588638137744469655959677911634063579728801887017112922665054018228954879982821227250190358052731385472812538472199839819707786235215532350749163674756535514873410735012319275786794555357370738974755127434188890070206566548148079670314563398677082823366004299882431349965017653652809478246701238879213457893112741565560806919738821712221160374547232005075231061584878078796470609488745250881888765583864790824409792386888317213039802023346739818368189360980941586967918530900829515092277987904400484136941176402716920462439941410360931333127218153808305913232554072825938411434065573679324508752102487457686648559304157572769991063266114700505633701242498917250567973693621989074162619746966888091953357090379717955294667661894502933186825224808095541767915976666789082805773411020788549817491799585151999882871612552431709959966558463242153436654764559306328346417443818433257338436420281724064296147305928734761756349862398697965678042214005235808124635218137367782491867740821003215078852220432756713868308369903691111522683521881919187869568598776885382673940441533109300125062595748464133469450634786342324740174866358890712113909436315683506048631328695928425175424154751859034351916531732075012516398824105150518105861770498123875833339787044173622378814973041241392008919506037630984216208040052940150037234999850719089024807970220309569055940382632092137850738268275109576835032842652749303996921748881083075251128591337183221674082751522186402050503847061761023691315149101173470419376421173878609294112346487139557195541412539929290235860664830208408083975158597996528869867912931459391981234193369589309584732611950011829725707918420589299906754807291315600509752431216863323847565778121347883399218714910686553435872256157230696155568773717481814486106592445091432455790325644847155845191412404164245958329811902855529963335607617976177692624700379414489669706910633830537020750997118479014031105802962470283677337784828839393125227654288259931105818561492851408060008020293022883475163885607972110693920167304451067235303909681602210319212702191115773888671910592675537734572166699252734831956781575283916863590288937338790993953982051339094990453540159387752118117611683030894196598857156398738783936066741543593630762934879300727505972920536341850999490810649486865312799160758953926793375390500941694280620638755745237775611685521991331585647693914089809171904294462560069333853722205507339221569256481014839303993054548562775584951258888200860333063177828047425010875481170589981901852807271827740387336132765816500124150113112006225863820433329618774688191518614086607555354236782349828626743668487556674441654303725822463731925607126052952048451424276941417028209185783883489432599915425351817188814634538702680094130181740188547063881970643803348261757047353244775444363834072167631386230939554638746417125536398237810443334595694102523249521881488152462358840601782305445101735445799693390486245265119410102778791398253768606952218081790248292150127649457108853425568116414066114317134576968699377930018049318232823734591341188752155652815890639371998539342098069615883265578533959360398685502825744475316279582160226225400013117731434432987165537048163824998872621868896240604030351943769650083923367132036268403089297115165622812149922494244470537429885616818234791796366123857333785769798603020733417084588012046077765806055673605765043242785012369775686063659766090891210929517414252274439041415542543330067191937747329582160278742243322229093849814899392798673755657777746888392015672249190908902320086601703700761901504802377593437299196310148691953724572378501871831411482864866637441652300823481221033487422643633467114533325018022244632384672088711185076301159157943280639257894327636038360685219051266564920831182870971455424078428093023995079602735211313313100674813575537179694205679560292197169827035042794677121660720718883271705259267922916048624838969199952118352657246015663025321962551446333751416045679421188543442680393940227537311940853969998216972235927752798152249513613645003549970096350116766537350485463537367202231654794407449856049640668753044745110063085558177331578829195266238361377166871681800405443489673797870368377028844309513281466169662383797836042473501929689532058481738610035447171366762508137012660682645292037039555128566681049238383144005793430649961388907009433332927181774632610527302004786161069919145781816954356918783625418101992468882624677265885206695474577623924601832251186191283497422238951733651526873277850969454345913634949514525875995759451820247656269365937887041467387842238021287004332730461315054014559193403710288794451848431288238131209850965663515274223512182248540077385945011854555275987359377544003333366730068037559688547012156004248239092508401385042402132927605826136153766392767107790335303379870055552667334796582447523121013228068996357883008034490339110305098411836098699560107471343069658348380515506624275236114092104115182924490174406737537507523032411160507436903623220770086489229994106604561028902373728545421560108165252172886936231190941484691434050052690917555465811508596971894936572268302530551435007224703989980919075092090499985053598130612322011500452862191573550019943436479327126123350375938394271630210716894288884529154148320465608575418616251839752592417372902023975940595574148202468346196462384233159847923494058118821889261946763506752345271237060259373119855833328165428365506231839436673050189248532775231332994701212634674451728160203600685894945015737770236547299838456941523665123828399112667926114344542227455649038198700069218502550100011900334743613792568075435964628540265445896511657013613678314053281608713193368495970071218486121595332237516904128999735795278964606172830616081247447937819709679151616077995292728328926695828607145336492490266231229105630192675830232047185292973760710555676436400523478010488175678579189990333435401630675378317064100400267636895567018983292856650741433093463888731644352494759447451449868556443936241733171528066550842329394420295427025240943835950655317544332689738984717486246841225523182377399539616662476511458797363455741618841588892144366069913356430055702422654671069349668821161167123030786483475028585703986007741119523904322201706571079514650587526489419834156653063216000177536028601470358492395667181021898192845260881755535616473101117011740602341921190824511406571158147566992175390334030346875039139249606908495570332203820490433542825140346818632714259641313708595554136672436835767195430813220649733592004478259935287334423732465487234043861530593083634498376298058112945329444759824476393734734543828392019737784479711354855267387739411451718411957896940757498887504398717841123593452547772246722116574610471335646439314462591789296617654298880687205148255236464349531929599702130788978248370669369712673736590612532706006726666432591579280748021334899809295005743555214819647938209930427929411700240828132894789902795092377345545272465417740800953451202998240386293115844180606766402582239347460655343173220917532300761492688599717493560750448561239030550656610358134824999227267075198132687387940865796314965289993069656345530308270335984820820543179978445843331653278819954738974209213572522151428055189478150638558507152471291266921472112478462991381345650979608750992070249677405294232748434512994896091593010557392256169061606514321734924705008689463596345224249434469527124830128006404399434538092643889508271283716968076384752526320570084452798891119747230329017654433147634472286539513671980383400345235117724625823139848045121575544919885354773119822733173596741879831359616600222877199286407852684608497246357401293920560236128828147931177138903233995366578360599908382850655879047038279928790615753665662843205909920939359087049846605275809844465207946615981813618394275151409701912492869682752567884348704854427802340705111601883683081858878510502226002578363173927765134761603143320934373646657542324525658829768398540339299275231579192755242018480148248551628712500252924554393438783518451469773050891812405240264448493548865129104518402424340384010579866928678428965793219748537008145871681220592051170805145449993010254734965073415313861976925020622988111964551670247280318645101987094213661405743013970214531076524109572964517736607717140808522480039231055382673031549050348838084496275748187214833022008723537526340715096895771251915228776908291272429243368057537522697029239272203162594737174311049911889394234005626736148525165841118591062055540823853236720373448675174616519786884260663505992735538793376399101901542408926327934007096128621089409997974479125425395379458246218790511773835296259298541159581025621107375973446258260369280715869141499840705507292132066639163358797594700498490596248778073157744764673231025145202575267370200725868594979413075255469808729055639863614512871126575875758454970367970113436123913701525415541726628732055321295077400939461534963679093983296696790806395025264759240993390138026308251658910483590711275443842713191642258984095429588893346081598899152272155035395289276910009078180699431498531318479094090904810405808954795000363701681069152118808081465522785667718004825260793719086839571542121486370394754063098683339845132550043849576662922680829062773467053001130062223050360839285583912921581234789388939473360769456519915517948851932132978945699936550698603544255422504337384371337211988514454136858675597244974820511571993726459429386678446747729414602948983754355609813938350841532501904161384241162833949295884271652827721880835446804874925745487838570242668058303602271490896366692186108201478876931693964900542714141422967274194438016112469162351400310672641542375114967648399425579806691386563679232520066534952472181093674272499770157252373374706840651974053016235586784533315329625366270191031245870586247131335744772192057984103772819184870812546308940276530327727911512044457919505152056270027174314371793135375268495165549863444527245704178994637489829452807196213132262276394748434667533405393676247174168205595271584029757253347821099074850078405113959562865024187783574918217496658599109657420672226245682062665851521334344138357835787133487449473784436966599998320736168802905863970331017484865244510973074507675240467857744803283090347294514984872877079066114737293345092981765731859621857007280999567050903225864011428064697603872892452940171704562891717648584306571510393514432923445949726609109097536962519337073005697917389560169538882995245746512176374953298618826744751035508540046243048531807965984235135606449110693091635522105473392644894323228303941530443270683634344634928215538753938866250674979994539060340709785146505685901250448466265227878052480524020254619630888779535406354766759362395584484532351847269790530740865616250155911436115688363224452642903341266004237750370661780462805510172668591435323318290535870672320086382326024734158004282646169270142997464851044086957754319498726785707022296992971747262207973137851253748051486345959248906086622937629314376009817517131260971338823228245066998469747341275386181660778886323139319982993250362394505840601125756276268613533644210485918513585785961459986964564885921302834073809530882459161013535012399096317518575332390682976165794258045836153218684464642681417926110125075415493423674540815065088546596814283874324388665226113506803287975510786639658007360247299178218282814808484782213825812489669574209199913620282213157166529979646581360107947342848017389566102653205893161700363538638888702220649211513143833195507850894651100931909427032899730648741643457147124388715441448724049888579571187887276212866589139305478413289691452152429422013991304675561712575004198664197461597905068533359539861303894944524960499390099205098547863632594014594749274564256393006135612182697316370450297442125496117208047372719732008322776750609841177228589244573161579847747416720594987268063752504856209862650332265665715926752773414567854797932191133086220290693723971946907174419344634560746455656247345833516783992349288746635388052243237487826665390949227382859334851550075987097932153637713156453100383120933025387898602996030582487160910614622535355271066699205018465963660875284122446586751601972858193544306762539371878419738721943740635549253321444869787670616125471843775553551053528457517819197971916172734251009800203933375144929904156082666995270172652135417008586440642938723170397930937443284040606065287827749479179889634389878567373519778830770779274946357214474625548434507572936465152278358020942825396461897608671893047505375518513608128361496722717026045422321913890938448722405123461949841458092670684933297147029439066488252762600174796480138343620154206012656250937584059457675576331559509437443997741213784891033634759586435617082745150318315161469350239402118280152397631468604539168295616659310763109840971677593622412952120660193103929333598297727010702888371500373887865750882572161448450288622072673258152813157178003305229244856244453772519786556496130225352049139478472059472358236081079616534480478864405164913849311512844693794668366601794160058241410108914545262219108482688657509241541920243539675616264005191882833504334640628374890262845338159985078552749861799839652731685092343447531255534099557255172037884170560490317950717730184540252721822155310674094002677901259367262125957984023091767104140057488046196184367115479071509615185130213062830551559050251645788099862609474217615317976784474385034995179324743946091249488286595664086775496936359589869803681578676770298992760784017201247946239370806171125315234422653677518554883092862664931482041607696936451014478293839171400022502215610759350747411549400114266278756536221675947554982593694086457093183927845641050468896210078557965164190961884136789639535224664603847382045224287858101064238033113846034927317230642723275328158375711465620057259355669412757094589377198942228346921991519595812557326103199234489992550159328916347825675819952739448943948044341683644520265586092862877877442370807765700132855634690626639929838996031133936478967075725754894438889540762387304022324829039277014204291794297378460902259265100056971240342204537222221184909575702502660919090052199539755583346219202595604258086343273737906273679348240819023960087313235703162847921509604421081343157161677323615555702652817829242146321446195658033162446368872414058415793073352638634974651510324897816525087900321243410338489420480952943813485867934624523283465170873623202854888729001596364621670366431762241055830933121892530508433096659568278830582109446220464238384338133637991725959089815495833241356531492618693107075191535784759879368007684107740048571563022080021664514361926278086133036381730138184370798360558563268793298364303134792205345706496001920093688212045070314733098545575138766375462471967861077283582945095109333371075707716563000565642105373530674253321624180069914301174291153226816809273263275509167858575523324385748395019613090693153616426675260578420505694649468022405464312014909828855049064940543670194620549421845526272252776659355291235216651421074157189138830913337971411630185240320339415234989126489567010176908417706090544758187492151328463844094320669262407273831834042730345027571559901165225863076839141767655509422168467449030769173821741358884645924865238624380272815839111032617419145956401913390540044119297286306518934910683261994250208132817701482871339522110643999278511060091771283495087798066423897311969951888520440538430598554144948908748380865112316028326224220422024203533154710787706923762949856101841026066164214826036351854002535110686248721480265815991479987849914170561364663228144573771386693600170912383191794006326124431467933428352843871152726481384457616955075796236704732641560465306880768050027939628088715058248555691706762827475431042928486643723752021018480542922472774584111204336560259280379350686629748794072799865820127896536135668324965259606365976251655656307156302611206543448767740742535299406903535560441095942067633871692804227780036015903364111761828575353427330187068351496306370932848849376204749974988258299057903331639175599574421085717588169211363633215801916055191357664690852999987069292272531161697327519251770590043125836374815898880895185524471992130459923849260965840882935464196920205167413518189146963879759625950668643909360432614452609417125981391732788071191570734494483846397085568536328501966407403288291594911989857499242265879400674792075856899241701987694921634717744589693935618112274166673469793793917566684223472036176399772744670893321867349413271055305895526515297431891014100565237831189345054055885509830022490644081810400681419190463152744526111617627149910379548764335868144905238007007041987261830704679292317497068012362250842269427975487231940576654628802402887017758006229406550236259395915043051551438067882597465473842624268770190790860921914132190893429787267942983998767187035441308931583335826663846344314576066335571021882171618459740729552907172801453092026253960735603452294230299167138137821367043125255470436230472047488152303635172862267799822048531021725970360429629490149097085272172060189610043059662995215516906883589368066445372048473062950943564032002332352550212674522223997312960921217150469336669846964339100751359804372326609291676426066595504277956982595994906223801455031088652266593904759466297983430386257283172410649170041948337985354573194278478041173953565847384171790987200258248136324860820831677541747184357128381578956404025951519257118083613226567886739380105881231765794888596176207560888414565322591772757836868743655362375963529322966755798692343242051327065845258656896746996385144074157819233231130051440316954921114879848138505363628870602145501902835552961355610939541707521014353921650683214892569398096335055527742821219394655442938467747687320564556120879809589360271049316976764233138924425414814515748889177787289172302566935738367743476700927677321237334118108664233737694360516605554939398320239814152455451399647973869965835179591694811776388325292042102886910662700711845913323078440138083180838302189633589283399983806195501016181169259509074680579054712116605123814437030245190261191747425717362458530619447732203950112402494312486674544332230701718429860072038320739433191135911328332604616918020779084143605161285785895924035168706585598563205171476085321065004798736941354986396844713892430005023375477271898863539367211413912931662508564418830261131237503460713802346385377956793917781772418067336941309429261408159986786196890936067078832025961860952315013069846197419816258599638353359796686813680143728678188054758355366133938835691779541564647072408003922670551875565644331842683428795785930467594094560791706073682976963855631162079965468368098020220020066365111032897521480014525351243398535071872427021121550892523071936468016156236536712858698681155684739234822164474462845396609844505602502820310154829353687158081246114400578993648892555329042938844678907618632465350218744493231465105905357665705697207218655036933727208870050783081435715444068275427426434664814671616978129343730044867896893369636774066011560704191877073739900286757246872188443331154568112457470431394152616721261657038475664595827547315209931320546930093104529031405282731333456993140216317744249519764308518326951339006719992146748782903284171167741406680396574165213535631634201432480065848027259069751198439707501270218423747994160076039250505728270101487315207681018552620523746139011435998566820980088259850891510792603382392765819500818603690314258450977898761578769535711964703477960663482280345545058951493630239842544117930535299849837455179822287951224507749065479217509285594562072502944643164337047678862178561675214229908589479697434839916965050794797807611425616339663404401797239633472566731746651937434823271068732800068541135610914808630748486719034074121327470463157930716305061225955254769201795267661164114353089217412794994097418780002264929401693291744150388082151310331045313134955076144087389454360759809140891191626260854058393953318339184625456893507671685951348248484734753104153365362286616731001266465960115664267094128806475220978879653611570907065495758763333672883376576690172111915020184064935514795683598708777378191729649390660896521908212062964490785791110114013584224839210579994189255194362535047905108481761981993282838670550665278328567497281513304439669483172711661913949178980559185723835158728183947877568652182297432488006746076341168148835182825989070905639541077352978045459940557545157780355621051654313055233319451118185667904568533370832015823128530474051695361646464760027627264216745992293114995876570005695110743819221034285960125608155845851194283769322667927006959692284895872403979287779142976377643541792528737028792799189919203975224685117825908958976651922533253736278415530901389431958317250915439254193936275027392729212436997282157916649467509742866251117408622953662638713809520519903486383090063446296992621702301358422791212699399917551446697513306401246111678723357104180124842368019986321211188017435563917903218422730587510875640922057169598662047733869686994443473847697873096898605443341351015384229942669842010413349144338423674116612008381719560573263525674409791276224634930004983163910143038807061097473002527382996818409098212566496329491976313500692978537209866487165119345893510688135460298575923194481157583161719355753542671523639836960785977655322523054061991725675809744114782691129183424102399999763598361190456325288001939645976863686531429752379911232400658867151853118590938340792624023341418497551374468589182671613355116078519795107879213492854807640324013018588571683443940498086655523836734197766658695116865701805433207294946454580035600868330598352703853542294333305512922290220323609803066124842448988917627524140170509235384707841255342119847537815032921864288554593522397922291412883871058375718237822461575462815083713185657750856580381535186592773650336125829931492827464083283528262085506989062967081465040696422411323105360716832143769505145550662105105664893777753120499005786762420923817187456220771284971654605751106905499012160658835735546117066558480090129952223082393422399765261525027064185136690214442515923787566244155685016188734942330212332373309353553305470983640143834399093307835730603140188711404244474538412394291612906748803766056642971664067320846908899238707530096104719270846540488344506749430628130124495634706456260253083074975250120619309992592187539749087494556139800197296491680625107793859485978595846701121068481179142084060178187607681816656444424371533971506389606624958810551698900112446561154487051385358061238758914663837452750395324340478685251054979783487313810095338978635863199904067192909306950805891218660753788095741037056298867726304346994024090611605928670958124066161654298368802975135331805058714917002003129219250304056035956020744257209661050724276684377775257622672479039785573969529961329660426141169636872310971671970887623068330167281213121761942127610580949386104264492792304640380899690250434224053932410001769509162099210946103236010502738295418139420134491654440060857059252404432033653519214854067190355482835482178315986279977989678088404222998888821932357424056325986524010879705715220555095929879285521846119587544334973967398130000787675629827895075711363598898809351684526959633509385121784826300965514946820195475179240249281013918733701276846417906541820062299908143548808632331956152318071879458964042181445774315505204185272187356640910329650275638235729674438885278940679280586326851376771608060467429198587762643959138980884530824887261777176805545307370498088774255463936546004962248329222629540411740017209265902772920070252604618344720230960358112487884669151373591563944430132029635595314332536147456972616869302977672482066199668267141519392282223612296345948095441050584507164267864590855258844128398787802565391740560900645496424138734955402725916066979536017668516318792650662371414624373131572920281221473727412616962333588382676983799280165869969808751739085022524976922229930080201564457266579149905155399741801497135616653569556193212774969634596183582702547720956318488938951247199610990956441276825430903469380323412749367421634328102582398955293026204947572249933688372449206828832758189073497563977597351032032625691937646424576509712898629895603143987479813299732754456973353358679131085667377459378943989661807640512310134079219098143339810355570416531960004128065140342419047196002293117849979833779976673149224169172118275391282687169862185099669772991249214107043785532404649163575542090918327552887086599766729132409878326415290220247286655460418473220538264314686463459803871598300544562070300522914885813898318297347788065937189294054461965627821655219875722180847701005333011741901949464725036897900849163896439390775386586502160041942717197875996435613838557696036361625696929300315520831376303797756716814906839680487540009011179345230843891752668526716624694349788898506640276240555616974031178948886055870575533918715271353217283125277680200863055102330474175288862302352879566780383246557199840050562823845551164075588290790359545805057060080508046971374851625688632603760707977619478280387592723000272556312854235732211780830486453023179561644848490810308397569484193036501380479362661042269604696435135202249277332698241183547173077099048993599882435266158470900815170800195689203093209578096362690919372882102411584709890178030899695331112254547583537138618929107976661235416521031258717468081385028934471226582851191707463855861644857867852676170465941788478306434640812741701152804175855538365339633764058830989287573749641714191494137407582525593783493296146109395203793003307038003000202534047407464072258498848426902760276707564360083693300658774631824696575911042484298632146901754668806430940043727987496192380530340304015257085109026794358831724771573446288992682394984328967117954830112178058256907367028039267311908201472726409501759187425282010641542449424760046981978271887612106123671550036064098913120105229198284106591406387547596857439152390449640107774050726990401289503397739563952982548119341339037280492166011190255861288620563115770812240216930613726398609235622273279817530190744445719853008188768782092501795518174276736799566661914818580743231939706532536883107674398978961566760669571553356361050299376465815236365592470023035715714659459062580349307380040651228946309422356371134175262408741156445405433851998375333887447231620128415353164482708569601302306025362752694369299694801092656349463483993752704815379288944553169371844497684711132616613437526503388113396161466680197239700154186639823678431922770724677371659207390078353187869665940267858981803824359554364030133300039351233957299483639831948816719164027845968691351294610863801532106999222225859059269427908199790821588296219155341495971240305242267634738555170930768292357651639171686352384856127761253561316886820180613677238286182983115198776605040066592062217099472242709948779298957537532653838063428264407475420058374679285516435803805991138608040488897478159048084223100193454341116068627500497528163347216484948787269838438298148274204858866984926716163971921958187304607038592854672724775434364298589497998317733327817011786070466401554406485032704426386826836167973907345487618290461723072853699357540764160142856922497481203802303002041136219950896170443545891359949835573893290559140964456314455988876211253285093877457830967603711459027293044890762227998271618280365038786284104318082418575004539050927579956820362901486152333698788814223144143892395404031387454681539947200689343648365771107519615104697039480957834247479505461123556084059837842340087869746579858163801202400536493008386962678533036852656783730841942711061520418790446624796504815625259125336750979252307685744211898538877903004942224465968263209886845131466422435469651492352619801309659295398955188106746068377497707604668307017051714324272153337937934691939886833257204800937475608429646155904885781873589409100713365383055314808953273479644145120864754516419951300965599129454998233621791861134107067915518583456507435232582383182443877833842245386155535875851313052729618129001164824619418182909051127084377132280977485614332421578153635758221428629555525760153654093047362497571463113059599398982714857018916853367036498831939527250300624370417833350450940903669343833674481760954565541096832534036629870703547682295261991664643203858482587650391574245750788594386419048339621696959746632553589441114608622816344769764832288214630169060372099241128759435123309893652133642889732203513035122679676845227636351937318949228090792622753985251955678582950053935009723025368847858517743672785533292537750113053814058381515710124684905374114020278145120849944885127262885089451344034257537361824707186724724665987574203474062208470145156584736978759338957102041957887847942877265518860432283522048435450019065317061336015251672477531255104199444878367710720350841679342939569380051966917191065292325259004913508598108136221441103391897103113382167757710854381128202935461232610221939152559197029590453283634335184992545275447228753091151165567045062042296347729091708670519233265233593932016198156839835438688956440196002481757422925401657143822052587172560324969625128327265682808256420713277345899397883522217657334668125306147112111075252560124620928909533780321501875336192551679602700308202569269660634816698840897932413242333047691938505493668867945805457302794537712157228415519613313171542144769213076049869171997162291537985720413450955116914975140702687723329492055728022636350547354703316183396941218029740436627411405345884069036767745553939460345442498999661884702256374189192115593259656039033136128287204181865138026453453047823606576356449270317425975860587654884797690122424361603794345696208583398475689917480157774647412294536904149367787207001121375271437877515726890520884967009315167945054198584091362623943604335808644346251841571490700525479335048064620308801707138161046553509873313606096946389844999154678107553438605201823054611628681412371537851489929165327415511885859578028626591817712235387743416578969396958940636828735616489810161951298347430192881306357661444643557005420627203989448492446287900367524656588112025597488004477753221776734239715019158150468267769634510191639943446893121983735990090815401032577332664099526039323462226168050792807216501290076477304974823475964941376462849748086669179009644175339653265776690486420499750577401030863892812365974271639934286381513373322420577007612796147341067565150462481712850121018175196295573689771433830462639474285211994631942662473142022060866586365695064381423692655074584739984137062061791634807146369601891238980983436521035321630809120965115756241797372484905862042623207518043670902437872446226383029040277208816680532332606853302879431568448535997105658169289357414116705267940874332158667579350034184617811778731481159069460128929100453571559281959226640239162342911574446414837047721441074426514071080740601520347352953932969588290096231205512172731706468162591138345570364344215762957576541399997649206100466121730259627950159959495817665361787079531829621315003985547217262138119987404499016424273300820461456181186127614584956482263861489301316312811255114671046011427576529123070644861995048885265657044644584178561111899961248595044523138610503404299004960133260703517303593886141868169863985628716681361516000155102668766118162078499894546748520053319257997546279740671186332995359500866069155200506826547567451894146328168192868069490690710359154328768592303753547675864665606195586010079567220307546917258934801821380129351146680491414855400113780631561011441333478711893107746309102509433419819511138336721534162747659077579102472152838381243858245139951580097683212337457199692137548070510489955090342710888868895552456166282679438135524733733343416109204224925401736957430274954235313411414346421499876770065952226394443196034184316126413478752205847844785447390384209205611102305879353205450788825064822823686991397855831609488004559355837126119658582742711727467737179597771570365504037177360887181336188733597022781103096662110460931555334204717762272747205007496209264327994128529635148039721569798518199786620473469235747758667176381931707547189656620617568419831468475284061826120598869388932722260343532596598971735198362374663595380997077286664862146520000349267478338633170189998085013056655554398045172073187930822399393487686112094745058743477904345815372436708092553933787819215572587812132690630956087190526595146894901981591147864027567950341775499903256676180861827823976692722062142122962309263203636400082083627329515450426140778847762291761320228429787009013433081464046523688690030010977877365420344905288005314464119990633457760630356430663828236839693321395854564817525246562728398620412703135220076659012334203435125440293580563531280399570632509521105606921769885069178183474362915841493538175008268730972614012638937332486998715205892874725750375817553304015166520446324597287472609109284772032561990261242919865903464468832849034299189660664366750502010545845343036151506029537936108883924843990440852083035601626061994690458841639472054362625777945006141032136706613832411807192426906958011155931777051220297358606209663000233374259378423196118794547565585930986650162494465002421956514368447230354743268459943930561481522620226149008181781335476976844092528539673842869662324767492054878189825730597043932853891097765177496359343622848429461640789271885516951410305338262786131814385530065313779225936593231681530755369766778511007862565954699808308498159467399211788705052452696238222554811234035880024871846144018006608436285726393097477286937696026473305842777362753438636186571952323806248908081418705025002617809787575967230470326171600260777820360766648616433565995869992986638547972854015598161520683356630095228778208077954541078229522723671829113528878438180060080505053433262683052470322247171055966748294546132064923614808790976265252846925629885851718340548930809438647962768436882889187371733146502819742105010565317787505741554723125745585889635142676357192702705605636063131014830948973178780818986705372587171275285738696157317339235266614465092004363519537412757924501710965708492900335229484981702983007733298216848267499125206133506497242618130674217246956568766928363889455322197822462476504377140450791661319914367250740066141879338261082597654346138482789720967589069036080617089575473824955080015661120592316991614482089313770142517340499919425210237515009360317005802089805180564101546822456805190503640350564848344682548449862882436793040572460891122118053950963543083087565249988788864877996097486339268456427622716373076775601456430652395900368647689563590159239998465795791694939679781546332563203681003957564435080585490075410139663300476530330911203200641825760650390405232911984750171515413184773090166392939489563886922485491207930418280703780804838719795927253824089094426506735899660241160659390143128279874240683996357024747355707883217503222930667650262425721768459557019825907574288561712993962369689961671673931547836100701118714275633976617258094056387197538592072158159252637484049064375915644379303156018735471884804144719669160011676840714498076206685186301006133008382832458250387144290332252339699191840658312668543523533827754184723678328359353136347236746101396194445983142998924935208199936328553542111135634798859220178483623254988057308435489339758347806939964418140244087153769073330331158825883991429287048641415146772250200460711686967170412039848767167492831678505880395179686687187163097879185211468106564585026769551274387164240365288543758893284078452747805991583991622423025519749663724870278628870342256288063847593285203684289360603830386745347066684929348412590275127185734552700011246380915378031119896023216362805930616390283224973238922489976635431971491785227250148661163244705196470117767376366047671047421753523607505050059109979360539934562246296193842713598800338281468428482737907283623781595708169181647733843785617523221456162558859437297162262088035063747747023664170189772988460286748688028533120476917107203974409146740613927235104330676865735283223779347505118197721507539250990411117425530893125917748676443152306487516429151040057175507627746301906852955003316971216991706013031992396037574424530882209793996024267528289196772479027751807700387604074712048546433015938736968028323808161195854230440915665154438571531778432964257496143681951114979877240891803752625512274026947489564126893249883391880176954818492465145204752903942480109983607628879439882232311707433124262774536340285726781637712862084766570014227826041348660813526480545036514773613547108357173661433885586358768850882362351202951917008407765846322982366291682862392003066489748954203635238325049653684758319870492882753334424559654769613045418308330577931771509971257448204483827781007468443196674648386316664562329349957905848883160798794870665952169314867848479945558903486521477311388551705675828930225637954987716804225758131851561438372554839783367817308236237297163274542406540688686640030380696445515681068624149101559622118817464046814343306997080081790653912415482671684501662840373086181906127046245241691054977617679993474342560622990739027250074151792140236176375023852127861513919209874244516081235980679121203348237165648657641749467058712149488283967110993324814520963190536787505906256606259914852743365938708027666495578224017477462074499332795271232171888990373394371170947480458231036226442889451407364108131926818456884978589874208548777439513086696238082852884329129339501728226752630158148999774812831743488762995915479152970284481872487411124442988526021625416340208408729204151430239273426431493852012767791752228062110279771436726400426710417502377396923544979229519437762923620750557873841615803054169052436596238141435980421166938366870858897202841389082514923319825660595022611321413546141917171883515331449050204331843678114226005153582389135057175407212316731125178799991299922473928267387891411174948815060999688801365708793043125627241043063679432381911505701564831733605249552656499390690502583934352347145689038231467827879525992681341247725297775801309912104896202074562937882167709045626536030101902990004483282318357680418021860773855494889502729544972434634157346105061178482351903057873142668465018285245344461047827312287265611605763127999483840327974942587207848683668884001887936016237093992932169017795954353875843942908461786128830048913159339868729563505339207795299728389190766465149691998012279945196122638239870738071769965834826692655306287201325958889965032576630468309293168967681200509445641662987930699746611088176089809256391917042187231320944434924006491517827343990460145306635419235733116496654643803352867192873001629192809588981295439127173831905514038864427780648990225014442217317455058384519216580784749840753625946361974752804000548864469674004195291811858151314044011445075750210688729483699470031237013706436471615287689733683196903232445388787744998142730709625203640856284917467972985355184849711346019326619294104383769835139925407850760251823926403987258832603320872272684575296763014188392310724338494064845548938564739444279613852672568296303296366960958585361767476561482934244262983800047614337600232082667405469240702374043944931654663177795037467970994483421585159805692447076638195514971731359138847350643621400138076815134701978351034177901110567890285494406784236287933800548095478874457377814691258642342736658976406332207406169063049613558011378191196250537918587508735740211708214915899244920349714958881273429890099660817083847744765966366571609227600962097962579516176791587205515914859062984377903818034505728394701285562801477306409536191038303459669318116114337060834059867544272723900192950548369331340757227733960821682832841958836874874118443500333008753389373509544991786831485564161989257532021382603971234390794329743453508297398061140675894040151156502392452989598458099116407176077819367788389444161190327378536039590843250546456580512223633352498594821562121403225882583567342848741896835846433754543039324108344135537317751125623132287276361657838312691983395013523909524718438131025509585004128291816087689616132376899324160354370716229228756208088779544847865982706616946028738895118605836871158218142397561845471963735293897465359444356428344205941809467673180273183812191661004477332454966046241347264567571240854406788562042157324229671521543085954925063826431738033427925263792720341166220740715973342350251283281926149408733557666933858493449468125691273395545618904754987756345895720481108393231444635292364526946615976530314131311962207781746760318481362587646003196247410163483357513988276183165267287415908014066589454453474984650789211741596309092027056149334532668000822127728974055891514868339106543193451892178809052954641066428430010230291385520662699116945067589835407678926087422925079513050956064831334944446128146566797198646188880648535799662504750919849275162529116384244303443018138900519007694919823955643692026939295791994537405180148043384227770208886091834948447775300007398367556371356291513704027372564018086234611271615963587957586289444307025409184435199586626518066601536244184306603330304117103591407035884417391537242871382897711975586166718591091915355650137142408155278057461565768157622349774288194200282069838010498131768143398907559915155334019647949096726600745274155122975463919440495186871624682952048432737656521920660360999047712682439353313611393371986651333040947235940091907626383057239718913953370493666731615392981262814669432656006003476994637095170612472034767336449351226319971832501131638785875751870743766943724181395476349557653844746768816017173615200645968624807421617618288295409904296402018767137879953795680073012011008263765364726755134082592464000768535432574978116364859339555435700610299342090889093440621308519057122434938221687873379107392093895415291878292268131714345361421228282192875041353979524742950995776185678442207542576091778349422946061939078059593684348173520409791016667010592130673524916757301297670920402802911750545695758669666507848649777409695274524378277204501035608539193480894026964875895344462491594399241949146101450705758151503893988499018843558952843732913432343170097347709902469545197044100803097155030122972956677235684108046124254217890504891256627347895344131626105553026747002776939794394646240531848074176175486634931677916109372045609963222711618323654067897189935293001147790515039210279062903828791858989080219267616323595567586009915484304524466111891705463255922109607337020908783188524753681442187885468087786360827127275655294490744652110405464625946146209703200568556742727953397687062104030444333214103338179730686349085921105409480259957691770428368843317377840632192462433148293733647220436550428097354236657076851311230744807516670297659816872657363822027382717757112531518573458089129757913479796116265863435330313258790857903785534925708802170469104839826692689253453965827349187515239768046399224022389033619359306277724935963306191867745932382138695554607959058091267025031167611960006418528852420690021020924626774802461235307167938753328656825300794279328001693289892079567222855934460817476990267027495191701072176596194698183447555734222051231016325983890356682361227587515222712591324233028631462223050643934923775475773103555857876684304109365229049035286268758050674948599401136488700399500594289608197031655127653674406716753060844826000748855599109894787439844415088417831156071074484432850414487010184275017958471025238508627094802626212580626669115641825336460479253283551447274117450134987845656159983482568415540391569042842305992313194671915191822427308798128222883641907546810199214608701462614856800229195499149929027253742695038338499483850031697560099672083632970091351652432386945361658544060965188960210582903281205252357852703025824270201768517184349334176826853265572529617809346519853934668915446436682406293216637101909516574779921013243077371695199432211486261371352698832219303487118284528679291888634510709622734138939781444169788330605761492732468297861477404931137786450645482007948071979686211810357879172434015765063083841973738800705640555361751631914135391401970430736454781725822310190086106563175736234038166160841382408570185989818368105117400418732553758943583703031229288099931018221935636791478813488111271284892965424138549468517225103217144767630360844803987110701112889531499387993410784622123829546613657321718665855935801854539471804491494802787591003352703226038480105067272183481544226583723772097616418282846652839716563559736215420961676016998712019400861921839926729855543723782817350844713817523138678758438649369250084889386580554166835962365812813909627102211337397168786504870274576178128493490607956330469587503598189470090739008452455714050104165296366324488435429991618467292821807624891223236490779881935968345472051367148525083692609466985418485607131092248994467545262983985541182520474331726839023979865629708524033987728175048635738124692881192709823205584442008255198628044603766343634687673843974134964920405948728499320583997662033710364380606048385917886471560776222276585564905700164112374064323825533339136902660296802724489641801096130080449979388744870878399272863387905216025820386879452972287076031073925255413901326007598340474841859141933901396104336445332846677095559710669228838108297514949110452319180723237031246309339904604024330489016450128201749654418951343296015052179666668405199359177293225255074168665053249696231004949038865601768836570228501952170681324199826904720567075495230329943577989547935430607282148161298540309631862162375555382172077680024729343819561532271120356051537091733609064269578766525029648655034795347932533737700884562872831976203328351583936091656349448485472937960173807810317155428425410351023878630283074567279165569744517603479151580033009709826294409934476430532290492344282100134050954131914997256722482945708554098791437893314923047072007433913472351675838103744884364790766924955950473429819502633381937799349878762418469902962085549157734936841963510937389665274992402453414522332444082296120881016740729729309678350468298962425469676091175149084388906375349312808971805238140602331214374250302788785837310190773771610275862640880798036215051591725482508661605317122936306972038780625476523538432491661074450726285651474774508741953789078303633356754742335929175103477539072019220250826353220447060338945573305447719436717631693207578534347350291928088667416748270490495343047910278900049125614258749904218503792102008300042810072454333678702264808667289206032977384454809959618138393887684557766898651086062764395323887525741071764779220826934094630784071735472706482618885257094169678630822150442558908370136167901654764162733446277731029368070822429996252109422290857154832929315445739294412567897975380646020017382214570472321094211828165114182680033481354823097101580599337020130358080932098170296914264453093361811290996489201402444617419338988756734655565734882867248992316368333484738899403426822109133447458346804783821447721219751441615063400484567813762872759450328231318386852713983160921647327840454433168654910174788849953926296013654248620191400198896135818578535527706199451789448495170819949038976837142367772024580224840376597839797515417775364109939236148202548906159562757467428508046194804932615355346380745392632018170486377643497592025056528733193154529050814604822712313709997553154262346544449792561540890575322907036152534068968984260152294165186307947843060898270025228952078406353706274397514779691286746209182201967405864775506187080313620540509797439054423242747160829197009551425491815708770517305113177669469849197665715077477099696695730455066421588608913455072805689791507157682548523977867881745901302583627205293746040419953365001634008201059496748524265209563998059158124058714492025291887349004033486589477587007740644664772048853829792141891921243232685302752487231408541414913599224338702426153359958990580200594844138783674937576737514091963601616621230411177078335699808591363054302846642151749841308682952614768184205671790855617779285005472693996358015489521097692582817983035914784310059171818759825794135819016590572381392989892562718102059633322837635187736735709275632290263072259566600646671541464999353826046223633469910477343690474454600059050849472853052380852216032046647058169230894784143586491635578830627415590893088355145504804364605728512936237824546205921674922357983539146019821538812136551962701264969438012833495774268733031208467903250591202967032446874949912985047075327852994617331824625294936547739472289785400979908798875887881497116701287679925379653220557549523282451148127766956886990383730118492871196033809876488306388168508519227336118575667646507385133024851338123064501684438053341847630075574310445353139068667728769859633055062543292024083440705609087021601145870599275564893382588408247092673429200846145404624469749092215810069262628987823962270154211968036253789837347453194678453894669068511225842793324931206421023954117310021425769779831934551215909878272253828257026404372820780867049603691761329066926422570513897563686833858301019632625663441730023305190729212252713380022740359501557142195360157257114143550126624140096195062388095216179379651040389921695892012829776924010628492385226817989794531191883581454874977234852842928107092795577401202354791293000033012839807531420764207841977153972714856538962187743735531194611994023017958879725941676584404197952017703584679683815645968005295755447969412972862537768905895804824730426761320443580089214356834210240452388470445580605810164127969779979395595578869244983480039603585208157090944375481557145905860750639503176453036559080364798314919731103032281486647994819212669430668992123327502587629629785328900840315455815835342753185172444730195245632267573852504675362601210164451707020488222378293744628275662031528807185901599734063816759878099863724242278859493963123378626633113171880584707047990352698101612038889697386156504486535414521936655624488490460177104194002944230941537251892405255903379911283204639250323015997616951999369700140168695353897241071848461781031052073327220413398843976824295731620853590373584741241470526599430224344454997556414999547441506115202884503156866904450388426364129243060069806464180815707340831915815245009593715480121396124922372506927288732456245184088822001494048291023068306467872405488491830303689864333573452266280723983832856359111488012850984736831960065077509121912093441234546647614924273128310646810490439461656314011025860309172266849098871263160268460739623454973458123587133290722842426717091809664503368952925300838111777299430607760484289425791888724503346914734724030445529132491961247644690130447169415530161312578777738931030577310943199000662484189252258641135125952976050621673756876680146044504924201505821864997382952429216589329108521250551548841985107137352370665283754010308128359225407469777580059063508225610192722126338574979542064450643575805198255676220650653453753121446330356081866877631031002092776539426071380800361569548276121618385611575042325759298024273679427887717643010754512561754395374519841183930473857560312675824362259346710096586863473754357589846945943366370137521474129903373162598847677963303006929828349149315582051093884559861440746185230735752930453131761491616157315663175819639366005934389888005397031525044520133544101182500861748135230642190676798233025235146626307863147410077466995306604151676999276347586079374435228622349558737904827994229136997202515068129871113276413781374050842000909317566874700946257649967037483755946491311732520142337205290393010270354000651887200506967608938494235430924852342652523362566073603163732446455655039121156457982497110156882298029170149982031777639063533412146808959739375218984425879853235878712462442812662361852626474511228154996985229788551643812097483433825035160912527121745427498073075365161127225176387885117741687342836494674565962882204241321611688621070998415296609129746389095559414324720189263097995427249214148571378059788104700613623635908636805041403196483531717899599915483508957189120880897937899990227043764637695307448481979646230338878246014247659766257025003844476338799212777512130003500217540268263665614782469781649811671553578149555922928533022636650501122660548772629447041417598908470781316850993397949122812146740906977849103215406163880452219102000098914522726613558441366720193239374051374913299743735736704912859954389452341565936420851535755347171879457576635419249937494721131331438674577506306291714375425229631113824468769762916346685546757992873843115082272760037506227746044574224162031411823334841070491368192345400787789520076904707833916384240160242528540831579320984133396807463483422132267906033284826648755073280870971983740571932553515667352294269907069133305042576998192872629455340893848800934660757073898526490411968501272102348696835783982191653947934934528293293742181635944990088221235885270841139291353573409201445363611017506713153780597747570044138954937786976892359231997451555501238975884447399295328955374889070068705401820676081365958362713103544920901829961129503003824176032289855211641047064766939368227292700875328855413539778856718767090617518381297446404315752587914922453186062880447285844720344288842371293434213196214059324689420200920728395647685429270449866881368016026665631228731001100222051995410951217968399241476963013921148308380293876148507629987694457086685466208186415991888830980194917530392946431884554680706144023611832866113608695662860230862620890559021365023290523639413626537523228722811564518837752336355095190161254768142764193046321767799625517863418994686897115674462466813574476006817144067359645244853730209739404387038959446704870330675197314743612293203493394909605595926015271408980811514615638219554131066985219167276338151289388611508944439923258399770447114062612395616566470502873183323851287999898639291973186398504153014447411627091046733623414080209358684110281683614509910299869426213013858247374915831917006694300480888227740462490100452328257532426858169561934047221424499027127228540544303892032583031935433059463878288478519878268277693596367785665910533446122117956675956705021419120414369339675676480270000604468613800757428545132371915622506206998569455703257488996171495918366585623212057606017319046013868223961685583440582994059044518307620486419482412074602564029596783640743900851496020805320458378023244793969015305785391670434943046489478525987321664253227431017397796876086637446791801768455785781582984396556252878963674463255921642314559316677810028936702262400646006175593053193761883658833828242308224175858113466959472649729414723053630376703774834013606689357603036962121907273903495187288953121332252391193868827613387818471247789641752814902230959885961209619796931209080022221104094326809375255943274607038322494480306577149760832068694170634294390039725687941713526872129173426644213315438927619329879080402645472649303519484827315978621942778337234941157250547156099159694343283174416213858545125757778222555102329290277261535790223783294921059955476244451554049133243143204466377349657770809466047963064020211568946146272523604308633878913515297517464070169050750741277300533453882963940316149839609955654822817728975743879010078246362484092103057575193023346640443632717279993552551370352881995949185188985037812692664898626189838437477896697787378128454032582936363788351767982199517154263342447413317359322118625780838708958719375731126579586260845327002413385664708806724293140828796047808635887375269283312680945026080342401776353565815516618842273253773953197118927538776946239034448073179765951873529632530092753604622032147269633167630265880805229733743587913814355441169175994187468963779530408838866751247832454266915393094576655545476893354916106942372975017575795933810176882375051127102722525487129842523368482572023044881814301273277804588162111256954963491328942174277661127898488902173858960620955122724542669486543470953108307515188253323214261544520373841821416237392157897918072422898572841551135181563841282436083917520550375773714329565022868126757919187584133014486111658014877252015953555561146435737488507083248590771878799629688263601687644154171254793392473828047402503850617557309004372021552959258241110936854527786495337465682753300562374459564029300433434761414007409744615286267914702874614931077675829848879549764267785155146656072149595736389101804976566415824249660083233717485424758017421307852176409042733934454503286476221166255836409149524650764545605942942127777184944650244033861904265022337441090728747679266217320752110001488542143975328233403725607495035023554812139098473942424330536913380081123749823132753833721664090334067128657989988773226546485483216705673743097670118703152966957260450238981860000830178565905393188210426746497351832841265915663730256344982842577296569659883985826430286473364299728949024074400181155029951847033279485570099569182594596731262998319359841729554321575197901967111729984017644803896768061752180035131561741180666057101939320908713033172387787291308274987041611587056791346280089377650177490614979620568131713895430119125754107438105637455533315928731789480358965516478288910667926702466617096041858928910441507033207535680724427650801512262717267013737868446702937763639780925013393309821713938538026257794396726858602668975331622455591484775901895279244502112878986877130782441410121864787592512468574490821710952851521676526624777024078334909816097038429747673260616336381468723658363558533159940405033180368425785466283160266552688235163194973903171727136295460491547000592748342790068038874406740781403341736268922607937980734035674636103036929322651951448577224940925954036639505212052719594715910571358604693792049520461141775580421458369571524206946069199232347009982149723120921918123278358923536425697572741205198150661339863526277451850771957198534421682362727251210469789105848947715916816607025615409260211117638910800357759616255495847270718571731603168466237535172462305415923588484726585148973047753956380361176190096126433183854881116194990226193850192669155089535982501309065884701213967616330236709692739086572390493357021167730988274827637648805193849115335508656383561199030261012907626361855069098942539269862091169919519222137788102808420025982883098128379446260606820533255249623961482547055816832898623395585110623344981717364182554627014315596267310868536069277306470154847178625268601505671293537809527155134979262883743658146852213382948782357107925179882872418651363129538265308482362609845685992465900122782796765485284478161805708828998654637154179249063984350842264270354031805105801686492556725417266283787477742615972214592127512832003072046033279262169879861793237045437113697593625332373025095256724268542087103284276881022673718935359993255589866441929541768946851230095516778993884738329040143939961689552075237621499865431532420121825608489581189886773389079175671198981399364952211993955557200388094942784526769596444811369831144016469583453471738539755930834655135361419207999315890019197661869776959884676099709409702310399857340466460551900496042675256130906960960583042234033111951968663779299268871224496068751775807457054647867966282618403599071547672066609798988498459869674001891912613833796400311416627924184716295154280610567123026019691150275010390674552937075515789044197137032315047526265518475784516557922458939474075042221943897751019874599538353748927571173134867376981796479232674889509063132352314914060653396369929269548424430132409670614838713157565875292041238048449490965484878536591530164769667254565481897446155221833848223632450322405929975762837259976771487032764640144414793375319053063944339499283605641098956123883862913707991465819478416410586951851320389530784250733145297498194789493130246572344008615693285014211367935297052553344533658373774829787795039628013898221136489806845002584469651640889680648145387255916533926944066936805232852487961671228741973580261971220600980410027971880620002827525905203475752130324703868697682904423877009259585027357328746594446159188177877205830553218816309898184578672725682318982743417336695841197171557787176946790858054273937718581524163774734565214670280807069312440583728491028547439810859347663834101264124765313209594319320032572667446140547614366433556438699157143684001415708755267240980344907440955281988354865836886123225509046794318189784737614978024907360218881271231150158870225414363803089697920883706185529236680248399591480596535324219922686357412033915120383026973873182117083993131075401750978728448749062051700095542012888129375733939476022250427990366696026978376777086284382667992493712084223311241466741928639205014307559746877303067381662595412746493053356075758552416459476285012135751852049302741629796113065664025954859977687687941363933537982928921862132543048621524280232295523921679119992487072149078581821488270878851985840088476636519062027803229845604680656187272882486767192089486471870993837885541066930682389420502815240137999662446862917667734163180549646812543967597239980777493783576406535187089795305692485982888221784782937180413725253270826763251672221367833847729824223647663530981651337162977792346044508547272751840024340897990901181997705947049284063358126870519206292770172040030053769245535237838122614498835535191823894362844276645758540023398086596299287642190347431230260807616198816513412117582410973479324522730235115662216510686575892423808171317023317709264043379068453159370199855157797515146435132288831731918907069435882757594714374206326437824085219189993843826149493053511998664041207550941939842224253166437007222215772733021706447113550522997145467061288926319872417329878299069245441197139736377612858052953839114994147924641679714212876457254285135179073318421836268082918982024424246234392358891646738506178672071393294923391083124506474780047967419910163885135343764817625834671359019373470401048300588631564948812954808316842434318923186836625286850384072291214697835641816783431069565605166961267876510998025783119763709090550550917878828831114862023164811186178796842006753499481237549564972793388605542650006728638595536573479690563176063998846229134678218708708387797443668792668306869629885735974377789010622039629031297317921485894959549647336290097446106374417914241899208388360186696106936278230544374473535135640068359746966645847183277458742283143954808449906613994369088583051469554772228733676730928433632438994782048053583879625802940385330722505861175660587320384022009606547403051620056786927799986496466235778036227129364305708733637876835029534613772061732865511831821227461441923820910766067896484587101774139817889177760393398290553717705038101697450248776635468577810080226512531738732210398566369052189588520372084188852004924730455588856140328472953267822192085869942802566835137028515763526291697838602846882287899586211097920406711854485151870088503245662692887913431809994135696725982439048485924357192300791780638787329604629912392460243300923736938483740250968788925115304286123122726741890566652382683145853365979952482555000580864805557002623688174007860312372084136748598413635630014294618795476241206990251759621152086093797845956420741760361122344308664912920170358507912127845573789864606128252362273509778885912882049423193413191167973506825675386883961835513720593693502023517461511377269994196107730944585191343386370396348138378709677059680913486722426487113325270659355709469484106593188734710256073827838206476114089953347150481437522443091336479379894519512326432670320324668048279166659184563214751181987969213605576209150798592149775915782250031852225722221220420503164384038848112543901827876200093731861851934174655662837952755346384497308285907816679980755600272885123152747247454679542129664956581828624137623967212610510571537264073233037825962844465867109266436588973500382220919596843803452076486255878768148788621336518741650239403738126810028075355506851351455943367276056786951130252919587365605942060096862069461258907476379232397958876921282790693187299573238421920580482121067551056397490986077565776031551952299133546406436403588936698013190050785114290276351797159652839335028509349226000797522286452081700631573242804555249652381400409580179940095757558204381465009997593045263046777488274818595411516001969611761953911875638017997325925720463919071776233345170800282188442063515689875805820438368587822167878443537399375914437774236162763709495470477027722495959681815341746394241411641307986035289643661365743676257342015691141263709543868154496692573449336249680461506725490332924991887591151143715522163587693005002112617895758087292820392923696960374412823657991599843834971966557510146565922014174590864673449569616128870571396887159120038307728435434263563274256151449003918457511503838064566139538534971864091369921582816527207887093453871825151370262138660040530660458104741335062064872933383526918080759613485798015222907013850530463361846575351235286641802451734834928185293164641311566075982186523995527530176787037937497227094209195214034825899018989610903649530123742288711671205641360564954267103080536916776465394361757378588283239952267666449084843301978992986772693094904981615931988467504351794061937635944949821171621322225986817336409588459349079617985206917732404631507095988006318055948185955359938120974881968157757304971023059860713330450670234392870827323674895724224723205289710527784717588288635425149976346790960091645779047048990148803678657843881144554624259765541814845842806210877876228421222353240217333146813590633016542259822575434100949257106729890446459459253404965300543290892757695680003193769387845107919698319265918403630669450658316353317829654369236377930082291028274208969649996613336097491211927242152367189563447413441736336073545543035531605810995823760410220069710003032204516685214694895772760839675477064613236622409047860670028085547365459040483158338666774453866843579622652918452471837139117735308225759689208646105597702306887845998971605310833334210879207864783460107600173428321502146144706926574114917830374624723096622293613962282219041935578574063464113116338201700511000017248484100339166575292119591263531252782408100494143961231872544443471949722130494455194082653277446364718251744803552630104663920053616385507633235990705833260250250642305769622560245355238571851304554034214376777626789982595307294919265413891986289104229866102287176467196626526452809430055080740736658289345159937647921715249817219178463822226329621921042335969400475976706646943110959891853486858015264702006611866893990401683843301743623561311466277421779418988618498607052464423248796564452715925889588351072349360780524404933328297145429943381601301085672300160872389807279680712231514200445252897292667178727837328677208655800730375324596479534458958259279282096656760328216881237100241275201694437443343680579905904768697951878715967173806779181301641659669409232746759619476414159905576511872298267605111591158885481351165395455114859065168324610795951398579492630524108190516005032404412747127603968370987376889016102144671352132745424037998269098624272275945749343681227755552285644682096078872877801467202618555801405089508877008290572896352736915407780950040024180135512426349689492074106250117821771560790868211573102858666988588960263772293107386573950846522137419610289717594970989384785037369129305372871161261934146607832219390902620715971560256949545838970488277728557686151929186833490367117266224027732569639032700842395184460221954951444231103155902687579615501723712595937496596623835764389591712116333293865461620006158094836035584048252701395238381635598934974462576996129682417639688901899054343419335728965648786456380094672959693009131348041108636941214781219522778909894558066605023701305261909440844835127774153663267003490388350030969857034114997478972924014432388270829607956499090101441084259073343924240340048177571921807683808922183565222747839028798399345853024639024268947934341090744989349708161480867799248133410769497390115725368541618461112100800707596598849374264128729334365599288921818283629285850045183654231784963754524520146048074007570303033983896717275386239261218255664906962686538020302661838862456447165946244302743595759193184633958599419776096870788401856686033179111191475497385084903723775324308812061993497979630696099195739694771280683851226506624298608813103409433611076129316058250207482655428563484443239420345732881117762981973338416357256867972137572932942510370533651746428530395747922215990933954232697533463061196549857867375505793453033576964394768634354534712397434809411442651107124572677326493530515303792142844263959147471173937340312569884131802945276876453532230173721703248194223822628126176785956653765879362587325971060674929728474947687842221536952592387503765827788575842359286003991695009365620858284697608092229624134195418267923176605638650091622397717521896307332763485784969532831348717525358104608845592954588406080496259132259039735986999656283444926910809836965921101579132761824252196286992686162603870344022276460865868510224681629162167696556419228181714469172391459498251449450929223575410047509980902627985488360260321154526943462096819259920733479497072968177019167922993295586205117012646169647502284239603161399879928215081165402833436559573681644026422032092649978224532156125039190602496812846042913749034862342991453659525197390007376946448563822050619404661995470166952136040316554902175989189299616628190746556739105012748833988133688923336005306186131166283364418333351163938709576461569323932187305681416362362015491220539529116800414266142054295675045271527793918882000461711319329355209313521148132660565787189681292668122637390477378792628843666247055821384367055828477743641286193324564499047646964232049996784233463880770812515022072880376009791051984997358832769835118187732720985939327068205632834816996225294639843695444474723429591281405580201993275671230695211808632589002974025385763541795266663455950874810555388802221140082749244785933119595227713968531838580114854947403242408053439764918419254068160977218617365693995577910456832615999452288683057756410919649859063624168920724143749069483057298621216560780980305564951047006313126979372224536255035719981919199429465952435210656289731816664406039821970136303324383142128663309432065715625160334331093142410132200335612415739562470043771238478207221598795927347364322127352179136002439000780795628639226571940252760946648722351230916802936490820025325221130695217615848786145444243291117021701365835969821762257598431938871657055194129866734794388195058160061136024616998487256301455080555439752849908119389204559111910856731750040504789536884170872297341631941606177960030450560789854381512528921797398941273687864984768228427525845774400154667518311719085063652328397888747385030098372416335127473947143471363618661566843208997346607619823460251670433735743082032426332978225904887706464448153806273077595843388847366639615076455976396492115952318573708338255031617340078097982052098783037018697295616449192586393085744308204646031941347004437706134228038061498419068368416314092512656092380198371232260497255991726087533829431792444067351584920422829942155540657120835703512029046326785895664149367783528441235459626522775677863288801360750140888351486298789015147354281732505500628519520009513136511514263616724440885799489211716983851387115054019121023545946177542051501781301455966263598305924320192041433338980707648614598968956018406145816615984142170042219129324686302747843818037008228268573543857493514288264619496353724491896237450201639165486657103891838921723991642808490338671056736384886584865332635331583536596222139439841184093830794307237439519663659867045021108089220366764218021622211928336650486848944892833619795423396084781650992089813205096250924361293096964439983228792902987874629162809257668158333424132944573568391640183648577484687786057535235584211047249083661145924217378890541060215535088362952704237970658184075987029679178260907393068399765866124867026252630165314369644942682062696616979805330271324810836435030212084884406244059500383892788883302156569730754603684204085160524745071045293438395108388285076588992849025476267392335707235171060926109017217415507723285361226098814534802710462107227213874648374153004935073347715610257417684450466597493469833454912512361352185609960971257528817354177475909726488446754770116592529071376816653053841133232516448437909750215451469383149799337629176065974791812899557882400226126830674477737673610497629280306327679935617980467568421804763826857053056570658455327911808725485606430256648208174555673667369248002716739487133513276104850380213062110483726667794802431350345274488763359624048461365174966192155468858065699474396351052796642743962579689516920892173535957344316640250669156786348290497947645219185950969108441866901771816971921506525677971267509821063103621169894395239277071129842096458564342070214054764430810940509270070600760811689441640885187354576670264521565452368161695754551344105113202030355968458193279177483703447914343860966863848550032334103971913263774240397652265882617054045310767012696214970625646282662701354011537846028605117622283079986019666508170894556589000648785645223621031082862989726354994924462076342014784238611123240421257999767827477538286180752353651747238159576554012814316440291830017087916301100844734995644497025037901977213123377911044180291046296893293766439872326006997111259999338797529726479103490073734447622391932742447256929072354780995310955219799752139379841090698812288634974757010498453306155176660699438128193022094489382393385130337357187886447594337239788969766596339516454004322011948765045381352567449169914959214722367772723359579496223563407381917987906807161328412255456751547079548235037630259650850705534707523248708664389256749997674050659499347395152371944044330880544626208440167257667437392276758515681611959432333774694584143927203325722388119393934432587695872529402934724672108892493222553232186425770340412802686541900867881370510495164248163151067035543456693344344355448183369112125626963865569510820104370401905736747058143333473351059809333558034877957969192390144260859132882122170136303552032073844028997661394940969834738166275131394576270148625247880153970117026052778667382968595293788591738955309887848876801541464136815968787461752633781419985185074866819643241354838001045898834810951716748964038339162318247177942014297047181301921101015937195292028576127006161883345005905277679385468159179542618859792641756258510385766141684447830699159232269508796771608950529470540965780107337490435974994015565968250092200756377398721242890729715818294246958188740284946644481613591632335056323070602863099165440895950749256944227351754945816526297074166842462955673114739165415444114977254331241143250121497288476733225464665769800303150641177446089861955081333734520058891041420166161212208545233754772849266810108125669503978851199838518856367091945904894283428358614261448204677833595976497173909840776699126994842753944852462909857105461040668257076162138085498518910211915598671284120667113115613569402398464975781500857489995176610296681382314522415324017719876621237258165200325110702136534562811545449271658812509460426217546933945309743756319115353422189794703901120590673973588469616540038235224564402553444998680399050190975267682363229525326687462653485230732863524614177023185387299149556532236414141313468126776447031671226292900510827175744784652151562665983086397808220680252706251018275186995278230028067647968232183344797849826845715831282456564466046638471790877465268828768692007752131729517422514597345187564333758332439546790271911483666675761567872924957564355096252467145371156863095667753500384526260211909601992502419912138574384070080991780781073380107749652426926890478190293108591810066327729469759301935337261158362948611926883218082982537615612618003709347451776125903185052471138531251538187314817484380342710096421044435485415296335271864338741980523714453727212346310803133640146709217721643837331514422321462326842144171172838200520300885598315343516834209959587142365596356918996275881030486639040156455684241733504735102283270452878018508231295286277127016253775110439478425995970714591475816511895138472562781050363875406660017197000710138794902424959925364862401982922505757769736103857223558352871361803648549767716517465539562380995508335636090386939500043017192353042290179076820380232741360342893911565162522616363128523357061989917215940095112145803871931867479538417011078324314332171395911286493808694064093000377717661347477497045009490571995765095471447263063437210092689728095376507199512131685855969095795746332396728852474439340586482762085397285239683758656836254498996285332793387428183297166103683464899035349132203647672041402437262344560606542571846398553827769691837282495746338910529511174365959047169052295523446194587150566246428427103826616268272218123528099588666602132225783617719127194246423296635748874883250942637093310944380733180503867171772554652323800064182235973035951340061670630494362046093316415101940762740231070775876000188473559122153038072193348157189719177920243356634438728595908205523100271767103227959473116885352945237469747069983853675875230347091671437292052691156202122588984206893106018978102663114544393673759192233084850551002848864485373585093409616285222078949086570576665123393239046730160846095928365068298441544690611093790444136014293080717947451891880154137699053114299684185489733922253284391393126745172389683558547216019652773403147241661317206483109827726526910847107715223809784286801621744389150923449031126610902336201884115718800373288072163539446653951754852949484336834290522429358971417807737199550173653358110148409641410659792339324186800626931782225092382417285235212483673616309083953055357126057082356917590007392235809192761274238022077214733878708974999836318665411517233959586954498947782760250944018108713838222940080678486041717446608248620724622193278834204884813621650552116721294423448512375368025815739413241516269379684288223945994804151655468069479252385031818429195505420178268425891527882780584641224877074061750689878755967927484721522692449157945340083021875414982098075060859889473258218807423972755412098513901099409056346130386526694049497140825129737850910392146723864169416863200842749596199880917617098991891756555817686122847881481649597655903950066701861928093800539367186855281146646339912171470038308740062839494047465051866904227965342076608841763513101918577017932748005814978602625609358422528045405033147219679035524526471375351426690790056017996521400097125337941782584194214416952161448040018740867056068604837511479811377256730526023982584934296923516550660019894564471307360072727219692626148067246231841211549990663175876104557944681395957559908300525953392784819177017282861574287552238787568810326531886571782208221101424706611294461683323985374886692635269706196652616140556572970398544350824709807837823564080117371684372929630250223250165909022339654016155769136618933056692238980608233373199485551830495372346190375183389302981673390314456298256212563476151503388977446464696845396605286433924816487908130523604588916169401606451098529809339190326573379538191822381383893040466313780599293293724396883832814528681677304495806019850278989563793800261306589955164576445416784413268537316403595365198008427163757202708876964593290762058547120028750375234562818028053442591158166998365551037295534456653518122950494794905955313504968041336124741334377548525773880973571905349585493568553725382200858788888338055060216720551434293845773908584219662783381092719664526844906573441370287581142178084691070521767046078796532321176331517847747623620559755996966041772277671799546437745337735970336593008060914018873699936293698102759038279987562891938278443052948962263169668358235621141018346612466427085497681306375871042849156830168250912472915941985568119226241484116776341661725595733300464906891764734070286737971834372220639371334304036600716818830364079521971511297324859376935951976860719532350274935004232256792297596765966993767168139891974804975122960166687470680268085340092589217204729114738414055397251196032523572929914922095297799556337803786132735369508651055601966458251694798403464278698242830254345167057568828646280413835513292560738302171968766965132568108762848041974089385034997098410809118632078877862916473521108052234506331442904314143553438212693531410110815331473270133377046483390904756444743527452127210623996212514823488278119965298907491087929334744880669490469194830316556355122035319868440267185419710236484614859419365812401167210925534798283601155989636034099359943318656424806372973743230608891258687078380548509860759784276750001484975886003019262226163534632561031054928855447886136511221010059626761615298011900101590469079802572645169418326850310687603274692378243740651102319523338783645955801871608203475834067261377432868221053649708530142204964883718063624925422903168410868100402591558025079578700069386985419370504280999317481633228111500066313638039421988292358370557341215788122670936155161944043070535495826026909346156697797076658938376823534085571591534117685725659314729422175257680171821407899344508071507146676593395409459764682056771085444542550239940188175832257294994071208347911782743759378937441993592684980496870672622993347734430581343716122511760446011059887615397697574949477281300164771080109769658852694790528228334095686637405436992508052675820796330830431198840995127876732211037660518856591779324047034871582396474865116335136545723204760770881670914825341625303629391799038456312802376871061732744812992449190796141716661793190936388069099947027498408695848077144130476016582754027220826353447490018150361602747720431016186583931082415331333165852095834673054944736797613509814637292826215213096976085312045095257406413726938955897583753073683898999041540317625545415141166724739018432301101332681598919967039787026523200403020717023340589481195044650334867484048186680641976541079842550434553891287521834209697424312411754091043771666936436903076638348101054734545910882668207749461450943150419360722090655695469806430842792215241893414499317571969141021057118338351829180550093103368049388955166952874769615313233136867422378823018210005892435186948207947460804301192344567223734627790238295742679749143089216339788843409277775982958351800151732062564902321066206603528341038150799843141960894238940702680340353701055604796185402928772481958860933264102397792750860059882315791999652188270918542140736394212143909936500445684407136939126336414347274802581871262043730495815765289917760949009755270946068165586875456993600982305490714963485275113232652824223637275536215890331494073507390489952088715481988463339351225035653358106847225879955157457219148441808071048642390715442411952534306621660075855546790664192632421533347094337887416344695722891462052936653732136574762959666972302025547204928474292090522598164894185452153774214039491861855514871112141278874511178615816931542092862051969328501997620424655022933266150515903793430823819595208702078096958431624386751121082565242686025771187365777949734989019000291624677694604598878469822299096806565947078410054448003122967118582624490402814111249193565487329373870816600076560731837970818210376749622207212052113822983470316087675498047623925531276279424448537526843859170054732975607578672351185278807153297423934015962098878502632306691578237449756281289117662363767986286527510058097421217341619747677928960562369570689943969376454717621202886851885969021798660681268742489007078570544644037359357848869070272367938343445117961392356132469275698607639203250400635550165515078902614703444003593625653578764148913390983085430442395930789740720864954419696226679539072679399924747121229581114518177495851488998786440218492153426497596090954831604110611822303274209602658280748248806742362314318667612266456043025432864689427035425337981123818370071096133866361941012741189010641023837904167613562561761120124384953322202285524070468776653387708663632843329017336324399425843011377879747709974314764529826062960725005896855165278631898823409091949246213677104314642517888375647974638534894574773065517203249774414278065013027921193058512544111669300547434461744528638773412371971783317044021195937016302526754441802988072035255433029844389897956326640461992845685001225190663314668095924283095757070939473752953478635675294510477651542589386828544979861166027482121201067389393400798287926005868906930533034561732655873491163844399861011627007319158810246962276362790210326655650711321413527686131600940124714141304838684553537729996412285935383845584318465736585980296944574204388913083017405295293451492323366325074771166030120895638282768919266301836774607758425542068705582119570018794824876230483219105837771657732008075196659282706021558723641823361526800459632688501768394545913923737661071203010722894993063438455997003328894429499184335527806513841726285584980866109070989721028252296967726808563585173513938684266807894792387611648259723093632825308947831913233549202325683619393612015937117544441343211377038423140794556082866591592046651889945799421873080463209942724510329420027511945001281460043173521160275281879658460889573284892173972457168772190278888285189289447270703860365706131927638234555377158562659363677693989850705740026431954540955032090263259719698170649761913381246528527063573675010123033398260316708917745430836872528455616135319240338631158874093902486995005640389744623044835518127198511627741036741155830368716729467607835444110026282571612501050514915989197277316286229855915774811961363434348517867971241479249136180904357669074467951840645014128420752514149670679965623039997080497849040990550836530546975588721922168530609347623732462476162752650860674809355218626922865060294033900701982395959140257460145789077950778694039761880554796454474068074828159798368898759350089444158951678902407903439502891572509113873513502108137947238319245396323496237567074187598992025248929894577559098783226557608893101529811878047878538527119937092482568511350915731085857025479507458441063731436442295053635735169946951231539077665236113898784873241950533195824693699248985966678513107532312352557653513522772406615099306105703778926879209360196238698559281918870091637139662046455429702652979680057476013434625939856146538413858196070314344237306250758474689780388162808803273625018064367703815326111973122173286858211868295613763253957096719289723943188959319615825102874734497488204406686495106885908827656688234072242764575569287534050453717708838692917441906678763326529934081594332084277350056313028755091732679668351236178127952858743334035173165269918357573453247471322891243372767559797785433417832368651185149488655779684086827993287002765879292428201100395530745043443668915420798904332296367820921571873958792569062138878083913402863467703390116782497854899438111626262487433577342839637455416946951630399231630780833927803495030690106748564006966903541871977180982905519403756311963179900263089884603886653910368850160879024998980864951208821030782420755802678256786022793718175945001274471751478325676357472849550179162463810224475267876869728856363021112887677171010661428014368309865534019540606547567619440342437940289592345275891792099198067847759857852413852519175117600539544416217298164123700214136170149906603345970979281212620273436964900909938126062594458253753618584160335919864515217369269589255799965608788862684754732340029507612048935505220972894429068061545859883723822276673206956159928596119774504036450296218605035252076943930604395067214113730516343454160915870947744478985750624694761625327901306028722191884709714084191547472208155887149349400914358277049470050362455815103490738551559778415876770781951321234739883739455247678633128041760002193245991678606212743678695472234592800505227316184871125097225076757605302273188421679198343375765322672471882712712801761749771654846111698197856085408140466311375569680193866265648391458937998866868837810367456461016226233130310443981351451053509723701461613037382019893761514311907318260190548476124819753325336717142405491413350437012192943755798573367411621858054316881972123215828508102307928134658084921564989485578440877759000926923426006660976888521703855884236325331062210715092272239151898225630411960942306282143476624931154421572289787676413333105447737022688186397571339220826840026604898287711855863458194695014460271797522944456688433927861876232772148836884708326341547829575355727846878766892916271303257692745243142051320603935324286776650217566573521516777448098704491836371480367819875944035656051875829799044305285727672636055001426498302373248767714049667483548910835883208682941104793546668675935107536120334341641953411692223405127848453131033881922211930854166566339296330142160481875893284815593394210002706754014854058689591339338526322797149905135150144810795191509245876439480989437198219910425450419126681224459993799718299981724119492666575951456832911201471498976860842069906889219284146944575621832265195578831193215088158102728704123773298526691535323930556455067702981703355429033243695832150896105608097650967709502250532857762830468673328233188493891286439134824312586609044182893002727159256712295180165286497252906800510229347564478544532413054767531513370250127029582006304324482590131946357482501354137287044547553475026379415462140904830609288262766386385310035989606193832477246364011882612115299519818378113557605706144283726696500611911144397450058317310079685412099800295486010634816772336539468763160092871790825689653937822620241157111066632633140785926891083660813755511102192144335640237494960421745406723941283064786396015311968339072053494228637702092421515737245971642389168961566522415376996670701597080557282498030291358427025556037823082643755274264098082416905003126596362626995000789883707854032599070084775189994489906597763464120237004351285879142796265497299391505897253831495392597077870474463073742817651161460204162532870039685580180000046436450064883194385918316200890673429821697936404495186756648607624439308220830526352940854953613747793972091451716100663102048882996196349534488012736408729119455864053171420521562782953469232308809960865924350925351056940560389587058550198523448267983323473179379496776951487158891230275486529651965989365016163924315920474278258306382664834846890344321761649802588819462888454430190402581826861049860370950913844390447086549795839564084738335063831459813563912208565811875948611201112870810730340348923677733551174362638017703979556856932515190250951809042380941392496981809788030538772490459332640987083416770133099697798238680258066776060990833743849115021614877213110308412160885940966623844114245741206077624848771893312452225956563474705404140646016496651733452961900253650659486344273994831777043726026626306200245702179996966427059572350586377054697386172933950606112017649597194099726818595719409495439680830244507949642022773339217899107572149043342797661591831731033854134587459633684224723350150778348878939685605117370128464593203763175172790125148977881979271279451359380046431109355993419384409928198803766954675548496511656908275335318074272687640848214222434187481295103328081752503864426901590977099651573741723605133756885588239848009020640305777090374750881220976407038385142916731734778053729984241346923167958429427784404714691186250808960007178586051934028405203787108955866706433330982452927706291844128226662256360807074705152443208202761180952864383860200099798514696789934567951913905186713469001501445963688225244067265869627340743767928734446905094706587713222594012307120057714755052530334466068270663132865668644915064913243928867967254230812914478192788187795227127243268728340471957986090301904678911408674198795531738054182068388731363821022207716889801620863208795554720151359920434079932387047911338075313777296893373068290143710892900833789949907783181206136756684505849056422267305298695710653557493590368430035960510379225786778222719013136933582447003229798170121245566602900214351520183241765560807361536002333106138214580276242475190250871603858735210788361802566491581029738270481485587985726693701661687539271815410753812739692049936372326231034744594758525715139696414255693967190119879912949510212764577219192444278042562561580248168602232203559510552431093282697289260608069250773607059468104147004140827578260316057087683266504236475507267073055496460395104208368829661165290140805574350487422258815434759075103558726096923895225411334760271504120240276495322122337882240225927929289409422596221500481872717851863152828714789172253345583331154211926230473737023446095752518260916562950322486303945702290385560873163924608172620542012416936077377366537010933228964758429364247213164286351340986668232871073745206512998801318364968628625659560597364034889333309506884712730724640655657576651281119822099978853724875520548672613793904499617860247618587234813104439045307637454866525501366820621920086927208151840167364456329061960389065205551227119088276336541890634607506481359185100402051528999322868452889042102136262766490499750009680555924480015644442361076183025781997491009592000207733160959735678353925253495307015252179293645440576700570535305857482964856845433549109932329328889689697000820699043201344110280472024854851208547897804618204222873392608710561806935152158968904059670530793839826282426873015119801640226743449086633979033359346181018021586203756136727608443203229400152018565357288114915019653359904629669469529629639120555324914105592519660848191004680470021536586713775425866414841979911868662522670381309023086462955534738043544280223038567427949442385239923955092191076345904378133378683734101658180947225715018797799812135062322546762908409804227441891467484835620360202331278867654722986265261367283024359008814761923148716224905872510997620864555385473322543876046534326940226364619501920218764487517508939546749724241777698870440935493196552421519625948929363794751697524575273201048657039569011872942565592102712000161763444951225207754167358733895849464454244739373094290205689166233536700552445252488425694020756364915776822199027809404663098419200600139142474745912746182567983035780907023952056716658735891083360332332276781504649068740815696734872001981040255905374946615383405642945460849574280310967905466557032190491388180172895493430139920471591970393496526742848075935152011880215760524080502583927934761413581910349878507526149999630050184102981436115424412296479546262219568194958399832033058095761000088815999868333894897726805307901897119176867307877639725072037914500457383628650032872929894995927316019856579727974347230704754470578441456131593365115586892140066741440153047871198552344803176792163482334561283220047109760380140866052389790660857050569285048926687235673678447254995854124986221697131344318479152227083058339696505349413834610874890969243494341392291512758892051882668241505446043893778568310363527047732547071401044111581048461717703892959060156904891052032229374427995411159625995997462946635642963414900217148432205020785923521227114775727359942595753462056947822015716467237693224534065424503479822693884276346174803084094142597830437686636334637673194135198472907528607889243215652945520811976848989983812130911220513561424819494530936658269996405410782430017365393403267420633234610712580881411274276340479066270672924880962222440229865498729860721813285218596408028510183357431087941709569589091944098541538327153777813703627523392960438659948531270974383814151919629997160002605922573396913615258298107030636690748032657560657892102352184294696887045431926992284251492193267970739131517295702727321439708011033532625873591413626569477998760833604528732262343132567198334722835956814121377766314355996076244241628762132666604954444089757794579499719813205540971390265618929543855844606050636237381033477772330160575977669312717396935050687630414424038706430800631577996407043153688395320802940556181467078019822948915097598647167054446031438986624513195224157497991365543200954525000742210643035332191703073440147577738683746929047672581147275392674783640401023047854577286036251551787078484245087406906281934731284372492132554566994702490225604907350132614661794795605937289913524182582049153328649901660606086130596900636101412098147794159836792662831923263335848320509064088342662889598167038480154945541849270041211739047263635327886603193130279678189168498433608257141659765922197765310206955904089073629911618608114238685891310205773729939182576875734999109118150512618146991361739843532113382854535138617490477874289553920948094841112891242976144980187527161666480888820589343447758183884583911505805368348332071886518376644090632150856691951550077739165710792722239945844645036824194297575875415534775508478172281470109648060507063935841142487546125216626077973915036132668617081564164741852021911891687772275469961053892399640005101273722830777385354676735312510446281121438136558768632498893648666926998352590401198863194035332696877336099345178961041067700231003492554951932684388254839564047330415942519348622121324203436971968382940558273875085556888996368934962804945834837914725386635189825368298622716209143808394109742213998100772696661693846816240997753074506073041444706416259273515461994087248650673118432401383287854823843114950912729706904673844036239056505215260044638345155656564682910939961252183365605634112014005050969874047514322542181795709442278263701376281036545245954195495764713203229045932068130096708648978475090864878971939163062535082054030304645861893766717967468797987120204744673894473942003691908875444014556959020527967427073058459110647118715129648648211780261715446735289445663727232346909563242607736324785815496301584340984228030487678907222229109632305308449219892335576786879353261233942183731215427970881028752441940731378936384222932027410438660585506157598873597449408886073783246335449477299315338180167780064324971692394578496105152210499933429190764685299462706804419880815457283431311125847304037580221140917165569980960999730329482811384991457769583372788052100293607035982341512935769893415276399304649109415938617302278534725090768913705919381454200613092550276582191069741897194096314102406988472717598381914363564664484065420180560352564749763794010212651676135303174515474677340894551403820083777806007237375610763562329308558195103776080622283584002451153030921982659376458929304560396126977492247565331875100608246867518684448472263209315491846756767806049231425367106430861410600439417587191258955687749023235333355491082880226901696486654243753742297718091845329254528564292339851770143939834367265750818737560872494559131266228411875611572169491255749393121719001887038785398192659147671440106606031059992610453810083207511444593724264999578160402415073294106112789712864580995023311674979572979875651471007701135094038779501490249439902099221818678799011598330174905479625923768129439689576614598309237462898221662301076752996214692944612358314304186210762847407161154908678048714184211964233587670242417595424728423411137375618617551129150896774327788707260267815460496488385068643130445007380590699019746908951734561058114700348688140170114333438320411317374351177442689028461106602921548097705448726539685013391226855022442981349292715406816641007253149897744495990865232835170698792998505405263092158580272104364847440368872624771393004314499112059426255839070830824476660767111259982890410584635003265533253317788816762565468018106660570245683314330754678471569572037954410777944783826587428781371944532962561927641525445805801859208605975966308526999541574120018810456250748787460994699830211234983920957831303314240670352260142051149954151276506755328700076669824782778939321996493340641937639095819759492073476276596449645896010473185830428169396220049475779799870434567660538292733389913814062906393722095042998381974686699978898981794233921035468672932067088484243468942393075140951881376894267583993218067493107312715685759003336108366583578911508959596255724227469465870006117263740384371160400545569511981147405705997312435345600947750594896289130391402630312323493822934674432368152585700800164800939191297680130042962585964824566729293347773868048076278969745736348655641890971656899256169691159502429012246664281543766165920495461317676618440609769542296992518542160321514674953988992171958620113293708926769310803075563082647349751951479110001623881142061687870889380572665551571109306702934111723472733438264211859096928400349598179922506470943565440611659872058150655076952896159420076115919413234797077006144056719321002568109194942757294135193251370913108856425396419743853610392236277725641373450220499447505293738741168979585977262500857770239122212305603655239626685622076639942834089577543233511621482075894323166239478207941300376409233184641123923348730790968327687738344311034220202554020930775337905467796128447990279115141306179951782251916601324574655499998090525442170693205310315188255852092327690518858076371243671296493017427220811253838860585166064484714740145682200700016571902871013834877626132263010479085033338594662582435972618260090702987741260013328705634522561546195748740685685172564112335653238579684200075145674939349246267451683190795565068545216311353764931382422240554325451833620708927735053486382963964697520590215285742748986854553623623006308566896617202663158039162791279148804358008554209575219147241492259184010118457946633395726745161453552009268085308332417286111507922747194668114171158701439854502914321691879711849345714648805010011791647029176299361856933466049602145046225793737076443324463608297317464334740450323112750365709868613373676590194293432402959922436376841467337999754290024929671426990407322740410875698349946512351684561846337026625852858794599826515399352559958872768516849411137484192821734986565431701768636412479022509854674069316829532954879773566734397951168904430494032976094033797703433779859774639679700514899629254682729189027962346308475596653464047065585489440969697656891733843086958195001357349826208436951479972584714887574076395608470366655305693687476985548627980646127425880909758359772853302345568775176992319679216903248932898191495337576840704696487020307414213290424536950615929060492232795134554164006641124571536769982413453492166486675575893638467054189415758096605376989088191878970643254897689658177590061543981869746123852326837049194177198581530736206466105867693765946630502645783894343671514510819256225697445392331805888271700972901011334282827760492073462328252952555544483735014328580564013096692253878340862599246113979753115692569341139617272351666395519089224398750196319430167056022593708081585967523967779071618386443217718960479058377560943524022375616116343461969336354101776736429008538006399833213063564205034460629386813821504691198180088736776654060445468834633557015156801797545590722222973427214182343351974541630724258595138284471937656694611952243838687806815870799617169844711454220521837033768396457207507179822927287915578269260746190710325856968740093315458122200710286838752621317371478052375466723744009970157231950596029225071212646108027057122328105829937637392126990725571357323140751186046025118752425084624651435426933201564800802229563244077574180383850044743868882462658142595933412621265250223693180945422236622125515013166183285635120624788727555806356490774676187009425145412839633605050872320362938301534370760375312743403786815246697885737698678110941917296607239423107036406648653616637719281040488822441517101528118062769019482765925171809869695187677606945941631915827264059363711841221180628307692555055211753647929315801736993762254597206737569503259075140550762917744134913817016017420866626529254628305882121447516646070564845607451970504052134421912060591067881901495918725781999244820182455018411615232801513147696266205890894648899333192422934565368303539203815241211739711667228496391263883720789363568377596022481144987095865919656197011550844778848804785364930249295736930393833327665144332497147337287810150987595643176259662197597901394014847062346198163172321997005252174147127796577359572796608010441620514777176648782133849825781639126745122909369783324999990227942553500109815396273044086181266815509445186516736337079116481454252025362702367480072486401550838392662977501279429290245469269925328022692497516596094305096556797036369810993166502415025047171331315781155308026614753683213272566938442499287005504974139052401686665490359446323546221467088464800546169382206463451457999996799250749275034090717141936629019847291692529461274101705560672535546303819309376595935572496042137209689247773968382037288109687301393281377401358691790490857211349349596924026406805490587233143744806081055211015978543249933053986667013433164773403194798868425127533056324703196465654274859594719413976985937042042030553433293539525878017304956335496345238661572749728105581081328025105326589568739407597987724802157084361320085502305606573802297674081647505780302764622795542751904152642932332440788226287372420464039075672557255230510478998440941316085417360286858772744250823231495330735558073521671765228480258879534407001618401569069200288075496393972407151935335041733479461974574675520047802537647417491858666578506428385118033604388772634477577716421230201869324574707402451206452101972906166686501558247314929478403851799048527030469610526277394778424226788776264181522779957109814326192014221362710075720963764468179641996350606462500545155428821857757400751221901625772369187241454974913952065099663219429005607237358143194511884104745491772715358448794712155133860111115115074610800938384022018260099597549166432347558813807734792572577635741331207610660498862614575723093007024737863083281259719334417345373775294157910946040118754101356404090755784517042027607755132318928242355958571382809876852714897530531952828623735892212220111166609936335892522652228903894422619771509755143889375909757531870598652759225463124610778709055712937727389676725324168922558842939276747627354034942961807954665623294597095819286229786918954204505531621036090651060635177863825247464968457803192377315560264240811663702386313110056226418008036588821294711413765938347279309318315263545540954084231274403427525311613116223093526675718815232203978696566497600711110968855610923587655812590143423936698661109097040216698198034877478642789739125730139467555882993272374099697878941951588751737938016531661609388172773688398278686732459749089340180714290867638876001753487110833258261841111575926208526864423210422905195692451465097077853475950705367937190745314045360072244713059341881419384898203195537596098952925772172717220986781438663526116049376504713537136353317531538025713579093480083519840674801121569122871212300361086116231058535753826244084897361091004092901224606926389742127253983159745051698968548556378227993292089769808102209930942157186829071810989201200074048924265949483823958671720401751962214175569670601380648871678693293549632113022121265074853182919756699377752836484333770372838889552258927183047433334694856007140408773771506045182153509501557216043986866960409954628668167947227112929383765887535549579882425053441291827990212638946615873510415498505734688146539235955838386401824777518920210520489649620337331880189247929021455265361780627291549223507607311284107707695771379136286037809107857425385493492975415797362931194829965473475602632948858277963986625787909428012172129463469521890840987721867962243074908686338590522863671611596252801418980477025050512084474958052593554596666775076882530894903370239637826053459054559399814033169807438512080208549238413889300978244778711252560424065216276369930125361268354775346804943043959225248146327627825416282411497015578556070830924126623691643598346103110300175522957859398573938176946301622824537881546523452142909920341704558933040286310514911924079407673393008536936646537835458690625254770294620968647190711185015023462859117412942803602169122912897821469815325588172619875267575011355818286832296567984848709595063477855234025259529552737464903567125900884668575106887753365922809608716202527489603305610452351207783707289612186776597084994605972320761417361326550358626995897581251233826097997081183799225489378110032741883851810485655946552716325004984878772936503774993605544521312477229374459557894891983439298005314516927403496216476301562817774846508116285440430036719301892463291068627062410173670923548585166544105548760406304461223798674912274310161665571797160671044878153224725056011501407155682022913177093714939464696823913079817870498054610223799855068004101087299019858199833240166254665374728366524233159231660361768977038868841696035652564931388365744813190173116613987806361481716854578065809722492698589353385467727868622359440431480076734159684411818429137697675139995105499627037035056958222548141027536465086827340080914069114574577394246838999509922405103866500676157554800451600694765222095564897679034636848900088547586160844139922905495994874596351097646251110473358886257735663998011552126287940018589326832988918865068386908569963674025082364250059705404612198430588551407316913319726090811515335483892682542086374793087746273384422525075254794637252177269774600886897162108905444616392920401516125713092367014165648497982661105142681274799734898660263174479043180494596078367001508996669826721569369546583494902329732544506191864560480715540275983491385761516211132576946224866663055812701460041210491138960453222204297136177447305483474063289014731407258117779497909274422445435555520128388449615380555794803275969058465074897158347564127431213026705445738583824704063988554156677595299069634991725790295931330599118782164451662881854281999215263777766556776160789535623101208945622555557037188103382868413525261663202611235449301525469897833189314378347153973423056203368551879830694404089330392767817641997483103436455375576138655516597725200643209725789974014553834009917073551417211631757839071704356025006114804493385311465592227148240066853321446450641245950577920400439867286244116532841275264755592553724751192164556130573483140135482249841346749247432069914182649760552747147933517377446848283719279688631198414452018615787023206183532631802090743146665655761080022937267005346130705369543993768897273828642754738585948307932936157929456399273898199264441570453034210345446504780609191789779987777924823031944541351876186174540183832535494186313846709129871047389445944101267810154219170090936408105545233166736152890837168963648739186106659238432494230799066283035962847641613046365345914626562221683964326731711426479416218837342768335033002999552373208155278165199869554082497062066433059797255887403764978349328262058714693561998241999140091899577929948063045646118292582638673739248256601146977241465495290267071363304057663984884893557997080072696857516574987720097697830952200555571343422537368163173638668877301739831687546918579763992765586431455535799574790453877299976148996406447768777317501544747438789144500442152553970377821370061015332149237275174697907350958445104366546594118437746795396630486745853360223682882776976609227623305750013749642963344882705347762031787886519548955263290218921740716436373431025437838512909519809833734770943650562562098943606092750476571796663561938670311954818433662493717244997499998342406247514368087684301274334003961533503907884569869108249390944667767357075860200974551659672632299685279881770910314100469609881673632164629134343995752577749437968273891754259071435609526894197659623234955145218572750865984026207233826700594271763543195315910749025273420166988513420826458940466473922199571516674112643351086945566479139341536198115054895749089147430243048359096262202963681919795048145822913254183745747532902495071790574770392890438980722998136830990155177115429382924517535038636264079215668467851829853035893578417663780637240652772036596585124118629510052490492286104963794961197901147476136337130324881698559773904550544817994965730898773906683037093691562101663911275356701677714231781430045960305203050411886618038855303097004137071302817173391877119355048080314662910981234928418499777000358667414617351064959697694814182957853713766566332967015020885624780514059626317926738691742996570602580427095599586151479152854246429004128818580287779667495346471358605416218920977658587646040415349452962169647303594360474130597675480756046452416212848632024107666964134027366781735965203084536476867731634919051621120540193275249804477751264241967999387046701161662332267215521082824334682617455084439268075283714798058369144065759429028406614126437062773511791015549525735199043100184259408601036863721387500477744478682380724440408118027389593829657801996873261616862984944615694909829216017263936178952749427252237741827008327202259374511004049864697444712540578237959848243873907572745129809754455170540760439554952386255474643659718515542472873055187012335386757274470117287126145205155336021165407596067495392434591927017469301447761380934742133508968384396116057320395865876771229740580001451733118634210475461699962036884922148927827559621402958517895728617033050986385768361737935906980522686688800296539065836278635914369898087564175154052185114416278964297734383615872410915639018804867413763841331168991355039890815564129891887587185205374649271162955154337678774623806204987629748553480501926339302984842220452056394759143407007368104110398777499079484406196847184410887269106263679727802065060188564752799762685820387580094205611648524193184895372864284675555278281743415370098866835542103911054427232381546109164840933971621346637577280001841505789842058353572881077911124002219163412047065324888448697358786245927814272470137135144646228001168753814842107948079092121679982305962142246127473609421925652858210346464311189709315516425370893579085417296596031384700627849190162462247186004651238331746825392158145472567645412176791679903948956489923494370183131716516942050769882981398403623952788864182952993064235134331032008169388842323136243317876575643902267342717765754711797655533247876209494418546344207763144843574088220917458031693921549039923760052146301598728824699883735649764722716750419122792548338523931118818562647177194882988267626210877398236710394158880677625322813219580976552133272418956495751256695366888115267511494859777401857205846740785748184856342329152149438110911407946510388060030548264513013562556291604486487347117018204354136753144415478963220527454322646216617163081795614753618060921216326967755498672097576058089704304357173215398291178914127031922161120823914842449915035527305321111066848151753020254130607436368440641012384483149561447903730610248308221026085836286115305611573688321949195526289853769077844742529229872384063448549815463539941369326122809991153707543581372961774884544464155462055075180230449245966453101499832011785122552610048359853549566702700873835787598128970775678175226970507080164269804428026740101226869603841134053487411582203335396191854062888394154100535301442928645238555581780848234692895221245924944477761504172861637775282064959974552736987223750166531144098225952376737101295564984743829493477031686049004432871496639878688711551517189515735478402033612602205560472386755008559545486620119977176496069439132613927954660113383292351532939000428485390915342623387803364419082408108732339184115675798371983939080639587331889699327696080799140765254916283484989932562473595686644259500754576840734177502145054646117022884327191546456468660469408452859429802005954861035230256004307422903788284185862463928941514490957437127864832061511268524791658534141140084271470691320635694690289898380169307402343995234132712097254420772332012963319425740134601040758712227481689038224153062294963471537666567721941195722244174229547632188791622898737987240518204381047271496390101064296870294531656367617594461162357720944123122190450206715934617441799930238888502010232435749706338706023796961815278747475383546009768494756082984914105896711616821478681484805456094185969604238377550330683194461562085252014442819778704312558161555185482248226081948862226905864089929876447455549811490497438335247931187372174501699913105417963147063649014146456021983993453726708789100236903546216510318714125690790318945494645243876674770314498870968660617435960764092585828176881794933254471549753591426309640550547516445202728665483814717572799419712467390453085321804152553547673892316950384345023726242629672113275770776198897853480512475106202566001267392970989245974018410791734781872444986283084944734322831364561209968306172733163706248858096332387602940615440212548952337092930662092897441648548216482797092052972646990353830069925478852022389673595900709359757266976702295663925916345990922233901269181050087465674376091967254172911299434113292452660445344850283544661384993976903656232332891905391245162910676398080291454794554988137132082677724289270251199137625671115574760179876887558206009330587171504661561389545426818228405081434070448014498310056480056439062265546356590630985783497787718680495938902160914300747329351488439818904088909374948035826520635761742700874146477258802511263373167282099838847583619426168425648252469655276942358988507302424826845059022832968435922718179762324911628369767421154498218060861067388599225947600816395385196368849515225349058172184148302980012363573024079685213721177392720898095597153536717248726895852509441858002338005671871418032876531118934422473148066393686778967833956040280943659002365048088053727707095038282425758227898860554690717431124391714016020776848838315730095498305063999550583941291126365129476809210572205801098488632257017651215269238194345170666964378478719664883187348702141085757819553104282461511635791402805654830539738991279517101837821279264521934163656096597849143379068222634061923277679949203259730661916798679957505583971897988782769948173400631864186507141897741442968893162307750585478550720844022056541222949081162249751385999884344381912701976599661282585564397329333411945313014434716016029628291705485219200148578231930573882749319893524122036538566435435891529454100966595136616452793615874492167343727648143612548851299774166868404174464337737001539299814085124229939374535921011257472154286251156110638515295615621631533545536058558140929722295952584533047872407997371529131687325241592461047287138199131173774348538565572416038804852329169616183153770061900523725280714658484969742702407613272622047957394197719209686912151857733971786613566677995663599701907990044501061394846355060309627996891011643350417510096500502823868896160291435395867249733352520329785635949101257560586615300959935209411735630724436030577650526003779377193611612913512909367450171811747531302013466127113384440093782298836244655671061757095418365613844895776064616041184637593152446663520865114702046914331287984993588975356908721498743342620855697484614528547226049375362288477032014113154022566743008508729471478924800313064342347135359436298533784113033475987212991072851331834388052451188347568164814201842436185642721983242357485173698328385106365059939866220877691985161598546033592568200010211262047927017946254646923862355880157740668310878829391299628791877491520894126832299656889156678256971461750626626408985071322091975590808959513027335210085699786202556993127744780122635527031328833429821867191966602434515557006766974319684223756511808491843907371795246272682309003091010103056268071839140298962265277835982133393193113255778766649607607445237709444774665583812648012204187656331773259953380846984835218225546912549248258957410822061348347173668366588594284285630501467411194420765938065179714697206199115447057613611402907880137298106281613457940364109405580978009178591918882232543419120689276075417407816420540748112624200246214421325388390426671715978503291289399458255439953644785750091633440770579377215829549641192029316291345587285619096962977867805059224675804580101853549614621563248074307652312481768955791170242752290916208474336059596230270302872527197568814685424748573452529851195818700176647016823868047235810589989955714661519557570512776942044047662254400654819551790834454741421279714408847611468221122664427300720334888003099587642333456315251365447704483538021336973660096334097458001621152534819420415845209300650719012099103262701118688053842885653975998096450246574251031736972257108632662870523044468468735283180388385962512467821191122690165976228739197139540079151708538303169159240371239456907711397752679719369526294193155760884447950544223625395506000088768759976947238399714200298302676618826478322676216236327812309909972185432389382438522584662120252581413999426561397550029012025362263687762977644391586308612751305351975161240677786262056217868791057346827656549153497739883305491381287054295958840746019145585701859673056722436809545116369547644380266070017920892302130327044258851051099600372005545532022391760392388831806004511213015413952154647263613975650813443655381631628262444629278851366746407600898416264242062244945882704540340901513760481423024113265850414323000172487073709114380990513143485654952616937944262627910891059956335306393268976129295596396029816702236521223732911818237648236178820292441994059132169813768260216229103011002086526728380108517025889780810776689725376437383679392167326956250482553908036432090446564681023189662140149660669733418929053392361834578667577010266781489426185604423550096144318858379457638304281720829062743560891168252152839436328855451268685704414118694581470547175236193702343871140725448365264379305580578270305003713947594532388142548165131930036380424753272623214934960311266395763147723946218411110377389387649304047293625797806295738083383390622009095190107362774518343259972714689847190019668803933684331813568789618306116740702431918804705691555234870445566004779897828865287729278361481950762632293236525362238261030060428703350461634873540718376965296898644315726512829040856194042853199751078133645210927653354911034259613264934600516463859664168983088630942866611568823467056759271543721127821304400314677323082490382831084878057389272205914262407859509452460044952146396890421581827030550386969970203480075573523999460126754774915213520232136846345850412736820495619584016342572943818066944838460558774876512269002963385298343374159877331914904755615243107735872680557723237676557871794319492033985500331807311142952932581905590825431987178589099290964268921088848483629467619993506723919443738629301542586140892147888777865762258060321074518741074773666109635050340355712304797527680733240516333400366198350852763195582884825430068808056523481919940582112742148083060435272393502043675700253009843189003891941548689708874058077385505943210652321738239418651112756468158879267199511603940473695440534370007307779856400287822606963920781615132475291224959015912738461227272211781122115436787931098401370119953298136287510262230722157383951764420677143358500903393533243769864993258033847078599627402769777913916716441303971550876570285823882982184067890150251015353305638901916539494107393313779899422540092847836915244536560869498486756764132996042589832964004196518635510651590986951165041254675513526012410371627202821971731023956136283797602170420003672204632449491816251676440726147151185561293073801463137354888273092336853364552950198740330066860379541717379527274934948867333025083992257121275213055804098131828272226016918137203373632636386465757200468014655794457645502453827280339339587645297364485260272120975064638443210906080118259818611429084611639532511334030248322798185740952360215324869124095985659273540110773970640001467696363547390432919245119481763072062097686704522563438500964675436912152715816416001598407654409825617019012510044328004180817175377903313653930408054928175360909331001647519447905848599188673376818155758017535164252598874611636863620172816533026001307544672477308048860029195258146375028268012109703332000278144349292294549134756170166142250569704377720238546632608254960093125056052674667015140708964874014762551392635201802226204107799290334407975176426149078195677638149539383277456282303187586337595004342985226603599474611271263050425836206695084574599660449388304198585821290160885844927862110374908854325485135988801065506175581572382399465188027544931938606632211329208047572101543857008387417942718260538213098413698949145650991479070253497775785491297629166158411948789416178393106090580970376225465738234095639537367614193753686620184907560983154452331507376285871579678401914563947609161326730712996174411060974234904857235800384298900729452543428857971731730518443704037058337457180089369876668395338738335839520030030354503554507926988515085498208208908799518610013625382249428579262372246212068924145234798244536904999503440368762066401834739633523650412731756509488275297938684807330375926498487771615089106971452694611361474846194015212284984823245294302712264761970340548229880511665986003843738963142976127009403531761074207288203942898148696235001623088913383046305198807047095386618740658238475903734085123877303831720544844774339091006351112493964766044822411602299159352235355702331360257651008609214335551937049240571150527256134358611311453354526488303617936318610961189002684144585692330058173384807469114148732354268922163900106148753977394665757978074476176813522058958013928464508172498263704814959342336990668732941805174106826201822795884952424435002102944742807028843383588282954515828732696068274123983105394207232147700086459780123470081327354309388300502180925370546007422586344289390585840958340572025737057645020727425440607454465380964448885504379035175887791406301694178839660328657716838030549802200259918166337166899423901000779361384094902531153102049206169884325808012667447385146280745260786276340742891569677015892972914063721170856569727166380790219386690294609156298546890917397832665083908844232704322029972785278910055078325933727201412453748847076361879867154504155736589384749044645540654853435278558269285719581751354824744799919576369607382754715544834928488877034360724823296425083131396592002783494966207624256307528636424714062070084827231731255931207019808576549582996147703518871446628702328442217148460089669190741967391492289704028899724863716883384132766679758170474890919983947583013030046485246268039698353286640225556997886734135530528107847364706781778474850101312229475504020870154687742483735172736637603404478223203580581918256311730171192187435130809835620991318668402948928666556543012388142237269413101422891929087734976207540636761505782758460583016386831877260053217590016636467479210049501881565345365374916769418327953987709175265534325366822511098535827361168193949117826098770975558452934607020406840099877005060246811084982033323748408547653582626468733646970826600650457368694163199897980127146168362401963543043387705243751799532314163745921506620227184730593335800268957495663533717606417106062437019385141697437991526229803433437846062900441839823144417700014925094009609376827582252372032103909356078321319090713363983847492992448803823460461831371716604245403439441964268676929405621024617183353943758934482990704201220103538765659271675112966688910361944788162307703695048152951045031248143529821427499594029538555464292988900600805130117376982926005048293109953889052148817227230787662433922631243704163832983459004929527473142646032676146580323979585237340741855893658875187803084926038974935065827874959266425695474833770315196110720753493707542312013894049140714756896041212092636562706307002609715811331533101764453477810556805696583864897693798529666669736841670029718725626756135905235859124245163497903727116618128646735744400556472789150775289670466289995226701645477867218968375329117795161256213737799711580047050635637182263611657830254166452577796272564189862738789815487296719841236274314266589524217290663570247767113838841038948340447326819112723153985367191886970116228567024743106378063215920462918918885020118117750595417280018531840197649023533606780109190071001380343246806641809390225068158020752453036142814709527958172381971913175809327528724119499888768353012400201800003667434071429799888356253851150557665148236868913277780383619855141073408567868654573278090259633012635099436336459217916549198963709382701552562721168627917025144149835523828900470662744448445846644332911050153105930155486989559510965009971632819152272861632150419437410708388101701153008588611601459882678230734021821664865235565898383479378375723519687382894111751236188694955619446647979027460311166099066245634579306008104972075942366596092044250629363285174618342221859506522952860706253320615897159075343380664925434941608716358066627831574080333008321822815920313487747086162683875155783323203508766565599852274715830699278959393279612141314102242220271853386095889008251692764884696970723392252061393194975471718903372419751441815970606293740833772956190567389934679804227053753832048835530355823725801956486032883495141553330111273923474721559412902840759880707405870964630930832781003404420063635854228889815974463646770148865688692400709943872002383120213369777104100674977433633288718284045814876608600014346801725047131717194221035342028707135097355490739395271083550622997540706960690783269498491640027374642935089611906313041540577213473626856934452422437681455703852990807732977280839331308583337871573506858701527658563008022608238988596150464524409878449802959038567199375174331570854598569258224602581393889021914870603625423158692892037322881574708148596541375807253030234165047430475626766331571451177839113913100054848624834906503928813224523531932459372750150974078978917991935813381303934467572743146146506036900071556118354034119306069086490030577852743116146949484851295030349842319337822742406587757616083662159742414243505733977859540427223677749168548310368469766904505710171643564477113416471177524966373176472697776992820776669966855803703009271717344859991669351171336274551614554510120903572679547267023172926879088698813000305746111024445665768334156666389826954235210817067699327857271208014814345325861066618196899368694510568599421990737483936402723867206099636685977116259536392514154034252317841774266992478001163681673934342987559496543482076458143900760647293427509167906411648350020986247105068178250820534757245045657316219981948732598428790866671804699695116412753198662894744080514065741084491461115265329866426916776929091336940694367271837898086030308849506113177865985093442595888576387040648485030424916899028292073112167076547595183699286287257090819317853584264013892175136649457115223765653687592891841939573386270381938185705022462842942931583338800868197306911551481270509694256550621564928708469211303327621500964001319964143080471557516258646261699257855712741926226087168568950493844608021343592616006245996992046218541665437522264666611275409512901473787743887716708312643414024717120780643319871818328032761081933308791037164558809670674189463997907958772395876101860270611424735239426368962987331813332927478042729209777196232864013935673280963422919076898707228864265296992957765864763851886054791645494579417354177784862574722800601035334262640318123093101630546246364205370623794801763417670797809125821972492502413520788339753724763020864151884410968905897583118623125889779405808895028983649962803350127262964395963899207679567446993863910962646105417838183663913888855169487553352654433103739651492556495013027946310435519035654467022184962190301531025780671863238916039171978378500468265949338222489668292155961834111547411606575410796327164807535738786435038555835675435561245306321708942404314012661901313314711143536069445239764235296167981957213189122811438661831862635191635554005983137917901304476682156986215474279187213964423516873216103964582327239365022491140464055702363882723004237211009426596685502249099016243077591827030553782414993069145316997335773921994843598306584933017903457853605459851919207270705340932615253449929587242445699673888088234588617951522642007185902921119234895055007787909281307435873403928067478338686090236005727359691693470377625353394646159409694170259128445878937771142364636307843815384388106830062545928772634333659131349887553130800654221490816714858666100156007811910335016850331368674719857584221882036133249573299341482586695521131953124820485421466930013670058933091832152442271312330701478263585656755871701739527598390248886851685090607836971406899008513173097086380555977492455981400569478011078686755119787932015239804390568961450379604808852324448689726841270460057690648036008111278698762768713616150555542026439706135517338969676625151318680403954700185147379276270913774321471557073802487379270050014110206630365555350060924556048231052256626073770267944373434431707804257540174888414063773655069841736220130967475556579164398020051560617576266625072870437547597050534274078393843830880569864121251916202899828668040533841109418879274285274662725191707325700951810928698508210383198461785905788622254992379521758336071755316320413609371997530079936164215491857675793036789635606425517851666208738287693889143903615524387547122759249184733067195614475437653034936873771826025533837751814969282223633891480195506888307281561725456362157568556468905077858847251903695059804964086604998519765326723614979853273763873296269287558132809730250757763531388276774503831602647613712221739364461332004726010379892027209135029244287734234084850923386715292171090978764377945207266857879985733919706050613038188380025603578299249960277609647078028356786102302855158592893930853801998813774962258496283637978102266840902847102552560238970914380387913971013545981170995917223043967339868615711613053166478397414842659730010273827631333587122419685262345397734028446727728711541694949943533053286436535553674803179005382303608714821983941896599129627553149711501644052261904745606463265963676843138371549001410064568412436845800905491079950606452611436244056991431575048139039495267629603609393481802316202439598180457819835584784230247803993004072633046902312138165665671235979316790733506231169305794926759620094803417957651234411687523999739851108782287052097563960970300574266133974479896701958442424356553598120099457575753063953164928595605448435670491612916257571035019014233323038703541626938753231035337854346270422357529252488677709975933786027768459054125205782710331159681393737111260861111956878686897323450689243071073731830356422825104587682273389564585371192493897524752527209148137822443539946780317020492866757250774702280624784964655428731281194520006712971997363825480872927590995064638330029813388020078786881302444412853985084115317311839361533520905252372848686726020646620109958318140251760939249925869975294898495498994060860298628241423401842600888146981247965144723733494511213724269059353174846197899873218771894149161206972303832053562963254332387289131277572568045487020565611653522609862009598034871030037196412436051478050477847532978019886631963142410457911461261729393978098807431863054861186745496377041310993682330904021076755255362657866402079955688298350328946348672090966784653217986781884440357917404436148055786054026500998147758664242144043668622614090367677085625757779896476938855214708450185604128975649582737258254044408215761338650908488636099815094389235846796099429092276984168458232123442422430999176514330176360924165844604659531702844978458399886722543831221710638600743602507172771506750508462898291013437119469270357025082716035976407862696347087509685184805928438279044533561380069748884007891902737433362653671100103804721125639106849119626638316393451114068235796570239252129358179986416169441671876121615464228260446287763420219762796209582979728848888265317247303177758905247940361069683592663630261334779957562609547789554955120423499840929794599034389995289954342692752488839205259205313473153346756802085980541415752143039086912677833910373808798183081708486106687542665115812603925590178160104547459452434501488201360123513958098993612874242559825438855023442134696384253257939317258538455145830138659472651121308891601030338549882945703575298483960826408708714494562783108189307803379340622977332040269523307695603755110676139961304483818817501014340542848615116061709738346806994439881047718403415205216984234442303131072416792727809834061819133838128346642513419392906043162031979807555759666869561760074186293033114346192093944717180113840570156463777435909659461968576120519268674624908519365010736358508262001945794733392536909040492642226608191124661214914662801410444965111669551649859207338916724866926019224339513304998689677488011437702240802282603189864600523087753306283798079716621030860496506922767288039223930623234684791813583946837748296210850062788209642302657447153632802907573327336566034402707754214067172337812836784857919384793107925811656528280661468459540497421984746626300364885351516497389409966354586810280435005063474063090985522696894078038274658793537472996610691210683304111382601269798374312859312895463328334053993412616811663425305442535837855000061636961980984477610264721729651434608173069105824021638714577159798675524672858394070980635974095781851587343896709662273454005173681988058442098432215692977142887118498613002946349141217141494754939323540752561377294571393153857192845387293328922167568627885965010689439375554974872607629120450767544503059038121389836436777694005579853247609324907118121330392021535478281379282532760122047762415223612876965793426110147813789974552828757500194340577307447241873268455496587727682356714739283686424042609440639772453955644803223478026810367558887775348399172798181078849586329793989266769505509970911297854446502496754538137965639735452053840251969417940202178192240603377298426067988797340152590889293609561504548624000852092902574545329293718161517133234695498103256066039315838815490011903660797753547343223130516122237919297645178434751089379248602973119759431465134822998049108822890083172131061439768096354560711617174012220467777842794771191667422367489900434165220681379915714014447519241854059370569494202435921842316054775058521061663201642314651835827375612906787341742551399634131077734345729109658474630489749000640365630485314338399052436621267565485745107026389719286619503271994218500105504731761478378913616070417379231148859272842016829286551077365029746448396082198596328837103256244006164593164922843628426473793635257689712614417285685074573700290416274868722993120521173076030133572732516506338440355308368717544517738680460682739421914263545086580215711594711992812357786404372641657565554724159649608183835136328372573949594092007173888310361408729278892281823096939213015829678497474923247576499963357196096633424578928443409258875350811811457129060391800003810968389267514887488550639132230070928961620438760345161621666938077836051834954784641905671591104480668843092971008957645849701896053718040069594682456385494082572429593343302633409634397691757142837992851259417855091125519919464313350163213426836393906694655899208911449055682575630391210007659717693032844306002875940416389450561669822437702407347641782477276030400729467192475755992647026016595970378931941723815751395779646200027401844593723753504360724377028474811432045475286387788154697273474868241797089788787250885504099616634424759381342659183603175572386433409203627897696989496368711745732762132994900499421519782327130213939278534273408915826726208149602018933021675251923681144642305859121231310115545301199019173018345860873821463838256561019237909528795346554957165794702981312493855333072177484050544321409344540218423490591789709185586187082435874949121302434235914586946136442198408599931647450923556750385575544364851495513009727612150464875185958973185712663264228633479596250725969870974633561682138730234924364602602909490516565184230554883253740444535230898484734403526760243983243476919925050378929208507530519476101196494632897670200496035809912784746676979005762444973327903004250894746037429212614223608160667017531914292074528485995466323301863616080911551600019979922241738408218654479610974985011428417205230709144828874170743637933696669262067817999351149807007205840659598265368021006862295567912713238484744587323259289744941231227789047252207696186108593000668653357962032276576956366900559456586584770913055745836915396623674294598282935066829655193255336338404007226462982591247794816428813885503050479490813368839886456781433710973467042788689940537419372983497495174538536094379175445450210081569362434287049474217855097574931067333322847599974629269843188927739790319321916647297971492996503238029950640192920572422757980716290183784369698271899963263796046317500120852280647775439517583856045184253606011446416853992260553937130112162123729891885705099726876228782728498964239956390850921921497579951550976133794153281402082598360530857841229024176720886282123915104812252675303766535960713461541432625838913481917497762516654010173155543312808457841260981743341445936573130611590557362767083309660944760190971846871973329470095178497131383221621884935757995133062246100947181275967936867634242890687935816303402544813137498990366269295183450299469623158967997906332988209134795480081370024354072095336039206650191882269922980518833141057343526563284593368300952235774280185908299305029787794634505259257575790907357993960239003681044388869952885248643657118938504990022894632753142382881876437878347987247892897086630144130163656342011107061024130187583607181667452421501080543550447147109529536350132690924785703521398077615524920204302259751452065505339494506427677542596954912496590309751626208689483519025643146806623409396301356074076748112825761235089092151652785158627178962844796350606074745260411403142333354374120436893036490066635552611138624682915689799086013419051188964785522618907620996882099193373406865198059884659206630503169323447322468737051089477589159816173613939496898423636658790775399326644532182945308565240426432851487688005878724115620899026157933120349799894936093667346094036731595458084705888301252418711266536396767485707830736038497524715342134388376080623283252238531571309543908447595903012541365196693706101162042758089989516352396884492353320144416794060756109663738691033343571417767031961966478376660180184219190313757138488231524732131477480417304490274306350624564494408035513548549110946499872650581327243061307440808393869912501244940228957164620259987638994006593725862897862076371707398966084513128867235540086096865542673715885889798898912167233445128691098047619410537476971810918383866289583225218315010582304800300345968255863783532666248154321210242061609912031769858792848702806211600107939527501695431740909487062195809168329883457192084866005128985163034271144197149559525534040659590214083287804558191848126955014000951445191715073362716370912962737192255334943189804708768858813935189467624498008569764595051348159090160541376158571911980133478242149613230305626047358983690592982305233324380635841807992299858120838685296312026947827557358546237704412839160718875450169576851400813260639000118642430209012629446035902236720430932279533595925723494165137347983592039622456810214800069379947456660703494543597573536247443146966806822924656572665203714805916608461713330518944571568166764255671709826934258773138693933370863879817692555743980226673149500005687314083216263617148498832164186675453637405520196323169540793839374630928638265477302002663931643859518504281587862458418452076014541640602416866799619991435829250153061196516927551265147825640495830289128421910357784623584388459389347315803367508017121678574704501766302269713289179242687751433139153878821636277511939095719105783167805921503309744938788019327532231685214025894209683810404827259427643974645896195309028662125691024252652278944670301198529963722651720249741658825050707809849046661281236174550656686044830421104121014317948354839366507860431962119112393828837191455295113725698762534247938810212334270103184471106590186215509946884044176387695445920676062806706829126013035958353255910024966757714010534903392923568907999878839482593085783721460124740866645619103546022769676489095558721146703218032244400433807763860938850366739383961333003933767791938978102205627994818482684425165328189587019272453394770869028039832367974810573948635487667945711690648460015941298976977970613772666336830051898318289397879699562974961687053936184599068147540356272894008592882346364527568451153021464122227134101930999348987378912934488251944640812001912733688491615860288638439476188816057438325573060612653401047746790263453923227528641263044134466347195603072967181660045350701463653382422946676947448925149874268650079910479791878662735389439165440114624702464531546265069613089289848797692569544760039523144680564655662432310769658281218446986986794533228108116165701703543157021547232229660162877416357359131715822253349768227430588372779612415235166811173910919414977892768107251421306344228720306563328009719447007060279204457843495959228034288136189940440321540253270478780738972601556672810804143236016407423241124606494479798448985234014029749176610695019550785252522211883219990239304436112678839715139625859879261774490439607665858667037012757485148396604755846841953441129176867037910405306667857354820055946930908722653395135080556619549146539115388976517848875525315840345735450835457157589295945967690336341131267571886928458675983301016602386432849634607509618486711686384682887682138939173102763306572147638974650455458529997773647216850520988296132981904861020187806517031977354563212642658795226374111891486644377561191147581236545133743565636290645452471189650852869401832866461325736027209203478924383200695455529190655954697801431562711466783763245282440145569478729444009147934238919142415916465646270756165901701612599788907063886313643646589419220107772777949160140937738547163773251859128818475775718291185168594155805860572645799780284127583589199952116180335251171633054691043158106442736667967181791505234441581044791718065199806562793332781296514723007945858321100434496215278466312850787900006906427172948431806558533293010429691842227546959081356950067581012250938572259219158996767967837329149116882939784832040716131680868515169195864223510580820554999870130164674645483283264913000647803882107391441119035388154922150700637635153810783250158906642902848343881050608478228250858989236346939436963427473299905498406800140460487473263585186628715995677326828289046653450610520620373818386087059418937429809308315387288990208336919309384386243875852761082374279873367370582469707492565808544022422821605266338680053795516753713151462352327503933107069508698110362019043173994173008899885061001109239933974796305290979548326775245576306057057884823830373086713947265175233369201922363517832704498839616085193460733407131932903476883765907393209549122313201621237102228528118376461652172901948774353847356146193328971933267941300068734287454518657384786319010677301424876460138958274279924925999846628717527073334118011997075145845423356964010658338914080897374203368174956554257425964775618516234448162990181681508676847944733400341718234720006236257727723213971609094553375114559470263215003420986703906128262059603965941093483563586794770816545022951468616302639994418910499977853896026961666429771695583891835588450770943542782105141550289691675955364167193054018766955708957135849106370132771187424106928048264670990181085106691642887479479609258446123338472715495072968728414991809408812182833762072555778374894844047259701016980885115787464079983066760062270148004918926947402677327632163544464313980403481457081006097255269499204985561407029403334382649306575768376282657324221381627307735211064698156672008123831565718577555664070811394845962927126026894235806226899144076933277379708704342221020867402864784189948773151877609296188944901513682875499533187079676122085760363816078172576906192496120419303275381947910682775271664988922197246969420264650504399738047971121027725169262826600526798891163484093936067202545537126992909338994576876713398716929283143571892020670773003346350362904893129825639634576877958705194884690144067906132051485808889209260660432001260690696462272184024677291879913806854868286558896957978289205942378512489543934821822846822641382207937109216669623169725153644044014169493522923899687353016297281164387502471192183808463802979750430466815255414322362220039686325685469231525323326868381439715361481747250757827078889077014571377481272497058658779580668496474169069292560197593069383453151840463581653887889726097750264656453697557449101232750255819020825842723975875625213052032091912411459048095119897708337317985962268872270858579901602270388198765514370452089560508878869299757636527224313601937412862061406482423359539110115205095682620418889548287149498884712952617369833099659858588954626592546239651571757594835342417885016818568935406507603973722167417955771439084070480603352929288370830789162422685334780527194281171683037739510938653607374837524957570140814820628927528250966396131576117991839681764400089423201930248668113730054795627785828928571120259541182828665187818836830850744309876747338523729491232504291662839222392834566485181202336141838319588179799055958359621661543053168422447604822959966482246656881112932726244275852613157927468051177426183403800163622446553836407063442732401908110731668691240929662391083069154112385807261909797148072998748539713785546256928437639409098888270870386080392169799111033470088560421014893021466280889785900979573246623209533697365647176100391091439334153453736185540814243355688893238909420693850909700572781197341249763959217005255388672662098191459695449981808505928195252557005114471683216527438372481120309600222993822429123656465982559075472259327481734773795042908275525904940556989663907431743521935940496166902696569686756380459059265377688263413920782482433604065394887631546260118791866316267262956771819890796163755181647298920872380921354186735021744854571647332138476220088933579937705348963074866691506722553991900720913635618187898531021866467322025175644733383456066509792241159132645398495937505006017591628144137858215432616393567358578719607789178578036585373229349485208043071918812803616331874163911866973436461248365694755356292706748426430590785407893214365980329925940657999355678385727277645659542815519218041160497271604266327105432218539645667839852972935173936677355139717749917488273774561583562214239075992626869876898549556838772320043671368468851643478992038988184613000542164371848178331428356458399858792602719413483920227565210536286064481988554781311908346479001208474475917399272988294528039178399714273204680997708313223865988871362724510449610904011326161406888995300247674693549628590091171129168116205354860950319939022858353301921860712961621094143898144137791982354486598614797035312108120370782956022053647366760150535273826704592136874337043462995135711950820620883309722827336825021343705733643017208679824362635897240160307249506809971100613391417672483378896094602325662516061216815772430103428499002106413343580232673935869957829855023026643569609024356781614498691992560878717111793872542273447965123993203862766315712407195219776534069500499623392129871207988496176682385821536690849629517213929027182089559475211782078153647977191322847264501069635407799392579616237438537475953844711291928321868684621151936707873462046135184800296188623980332770226055298166575402038193404896933464589441675808487321667611114841059969663789249360213525239340832789997073665422002611160054973901834043873877827511332401233134923651892285690149893582378525199908650948576621746573694242238866066362200592914629313153166331471112441874284294888122666644689471146251927342871176142662181668416044943480250551948394991389599554884548751705375647276877737066554595155685148380200557422985517364922008473688763534393035721510359814050241216929337635510125038534056515879105385849966272052757764253133860984310948648682127893519691875230763336687178544602585818121559743606390794668769252524425401283804452250374711311576188428389249085131636854031753044861614516970581437740511469619050229279811011631278916249062102322268546017376742595649748404487782255045617193865901678253669900554472782500884018239288315307800077560648737406294271641109337932622334399308371238869200498965082328918808974030091607634396469373694078310726036387681353339719936557056239772617886912363304556676912866468536837561939933761060316867536871239485018543351594643693830501138709415834221626131463630799656302640220641835080914461889927009784173161038595533173803202317511973517532402780028062233327136085491047448810677715912229354346481255068836172847753437244691923908907759210352148374113477526719250929810913284561245648134791790812867293112662655402423064973694043244078963227660665710299979113964575534759352590264423232980162468729445475186722290879638439859128043390504924579222803321109854058665081578518196888179795427690878478943733707150487006635561044717853007915901805242953045384178836715342526619761900779682759245903206605685750886737864116441030677004305526575731537350168537894137573164175115668749774696296044273234133436720636750809421445203128442094913780670435529499107080224803621439106507988600589655670922648619350737177157967918559721110509773564532365906874109641965827431988968618919259147379445747468159706586994803244335895187165621021497764231922071758524502824087582057641303730561227102347044406349359230693105190351187090089559213373620889562992140308929112984897116461225781922952194621474997793830933616328987817258468571142679794026281494161143301655883982659303624080705056043520524712974245485895165051864177154256355488741604922252868434329779951775307756187782405243304491012844094199391590025185560042619604769057663941655092367037839154653133425020063685377253578789815906462757000776767234298583894775816475129189893006839756729121657018238534286904971069316538001522879381577067538609227793524428922765969249887135197898254058069961383928342506271344738138171129631677695298342535338410146097095613365913545532289105838774816148303334154192914566342444413152250332649032506328555119234689978728620583359075284911418632811836519205923117644150579222484574643641506551819208518970917748830103126272815891689879593738764052986485628039948581125395845829305027678578863012415373292577099270035524775352358223033693880155857918805812878004033518295484005136710015007604091009163031598881658040813337903396411250715807925856438660683082262684270876225462282796629907743322323271047335843417630192519165339698725699109055780802276302725379364578448647386493724161844811299986204491010700069421092637476876329800607251532993023526019990637643261175023929038961527727700678058884912542354761139252425343956981407103993115128946509099928595779838476431289631132456723924966596135286135771854902375438466574034673116361813168004225698266815002807234824558995196961370959105668514360500192103560445229022607783336753119142528218676977263137276716960318007832363401955195772745142017705840352785155932938524250299380305587999873672614542733936024064692358282088165145694758697466065596190966232083437178602631525420788822747257771742259075840656008276103456180552698476563903470922145867697900752524198315496821254891898991451062778942067185122456525452155498360112134751442760406288035021566992571637008148664238015137324208849286487359696177195695667154214246020188128396392062509569345468184640740856162246198474209760917077365327287347528539692705492011407578387980431480571389107086830586130376672812895052140586044617880748066480564738121859634206281088598098381849859242674346329512569483817170508427977544031474034447873393698352533839653464784653683729072226501100403185973257433504119419944566039379052703918182786866276180202709381595187637340357380390773361025984757051442128567176252037166679562049898984165187044707387338145430931171396837059865476554588660385115726718608061007400869286595876018792995926492111759627502318830623011929506033608678996177204228942973273117247854280018573576689949782795305300933476979221009328536032130455757078979327570682565675450695801458286911722801937097783010726255543740318898459022531872433023072267541818292872937014106240334220495464661243380456211721758124813189650408827557060346684902000460694130433648434569303981904956049130133527785148421816436418872178674553162729085779972994467996907194137186361242687967859523376647715381814856972736758457909837946529936987629323529296945409107333012818350904686738745424307531754616140731438539672921838149816337613686097619053370003042408288635736669274800260335892605645095095833472849016921226723759377836197044016722694293922184549292015031950326674081740084061611551765327049473770663705571833802457800825938909826073397928538751521479440263472857624131708223021985633225051306179074755539783723912714770960492135034010103207925440705945267282989572966292188013558613223981545789972033214549523417917419981880866559549449549994856815892678090887685144989236314353235872396266234675981440916618118533927280653890588803823110171517187519848283768293674778226007209869869170413320194289069481227924888804645004958282148652915906671142826270933885776496181700147585537824055042789216252992716164909324423186943138422617621467961544918095387968811600930035709116186340153252535123280899443337801344648823233853602510639290948425287880031961808729888049025874868315020878880988097639239372191244988043900832632339583881219820033384370051712006411561734274656715256504995420075130828618959263529059607515713042395462578983744847955988827141655937784938805890038089878495838406194206368406185707768524760962668884562599632030056202972468589754878275379059545609007182418452597403462783536618497394139756444815860103441537233220727893040384676753420518574077014796659425256173313137132586487152492951331054875626423176807231489534397748279683915744973700265745472652834271622437360030498149947690345686035836723235780456796167782802937367916136762440581105644604307402339760944046932101879399647809920293699668528996700747353047739254070459092618168108300304718240376585590915617576300125171617876258690644996403126957826764350977615972040178145726659594034947519039380184900856132314630237777635804938057043705171102873780192592471770379751547207500629715458713015442371590749350544457930289898384482447159761085374246605028505080273706495900357806079143010496280724745437622307247982668945095636760078818761521976143269793419997974815571693181296482373369256921472844492007799657749422638640843518417188467440356727118340331978613643983252311560993692523571871735209670377325559366588112119102007794066059549544060755413947298321088865966281059038140356818566479357726940645089905963287863205254749489855047978774184795530350516806351133600408228896850577571690727142802073474217590374592263180405433530414761363993141196909730979067097005817437926193339699852597046789964350385546130672683205588604608108587989449627351639242656371778197355158780143787694846365836992607884462017098005055934450955130755236284306284658328717370387695641172983345217916813177420792045395882166550560349021101157175488778238570708495046813221992872882159759690612718234053918812821435539595388869595202161522440047955387255717874265192841148591526566828313141351862616808801794869072999906488993903457404678324205975936177328133866281036369743151938699649878203465311885288998568657689437374293208707086312374610473222531264751221815768296543194025350774124947282573197044085581937582266867918330619340201404175362694655529380028656421259470516980655890982066079750783433208413596490899374741643793456894949561577175734539151914818508711589469389456227728177599308503419140358862812513499235802348537390488140252685077127831754004185993461826036430614313946116108308019326550429004732258578177013829938718889919602084609368474955547691594598125981444354127357554183916738993435144697956500738825568953181772081456384075728441536531622683413056625654993434569522389373452017117619705490653961462996834033597174054937649881704746095897457712380997815905552207766972877073612994607054822510865546938324610659732333171451505030519517014935766717863401290769702640980731183738780966238907874789227220332205986821603837062341979119189440022022527725803169557810448005340525646091497606153345565131372761611103908183246502904354994338879901220107091759391321262523327175778433100173318308166864745236988173562386939981418689951765625338315140523752666389555306405677857217855832430469533956556531042763011951028784733222991148284469260645751379697239278312532073596133754790647325374830105738021194741675391298278218535388020312198472153410445751630943841801768069550578934261732238274998490550916470028390383489269522319930484001022977140366177757263398032366647313224366486250199369927779042794187330026298984658784403617033592101290907379401006113758177351020980242389954665523057874082903143463589832929741317246619744081128824589890357360722884840476498065546136618189801517568566014671751795602494216056280914093186083141885355997501562270156769337592560999672115891728350740051945245103928202460812470798440981746780801574099994294790374691866070861309004882013959822933495896455130350907851196444473937350188050438499437951209322974161246864235129842404645961473346687807498126497094113591664874632836849391157752740744735194328461236037021925680133828757997301323496382306830750321928676294646611635199310767213770820691044608180875669179927136439849162897033409710740695125413079909221585947308320348750918770456731692216016805692510670414777382701366874282942630130248163304431091443923815977824593439310138643656800788867507135807601329517624222364385559655649319481777326954296966219440829850343255012834355521388739186555650323705079834898230352163683195904974464434846656461011270185179347028776238075841367009663959437354091343253704883970158427253608377729826308140254372727851962401170146755179123036820521407828310927881279011926031804330547372150996304105880536062798950231383703149409367454054073744831301562845181797447008873053708949783957737073211407651392754164117748026158651914895705543854019142947906168161080289955151217608301472554552093786252070305855420726770070092072933064640007729257714811848787921309982071100971756991294914471327458980061000650114951802848808005348989724077037915013696210129987710425117968055015086120204718301355396499812832788248462603673994955626991524911669978732012983385072855266413245902184428564349697107513445402713252366685093261129043695544390298730279674878284357497086679763426902833698601148124253430606315930695421794034313718750082970126764331485730085091637647064388297340229797081207792070577517694137811067781008301884406606478613859029339927432210081028568867107555139854450720439579193376404150534055820286023856472642820121475134105383801040224601744004141594942818947462164591967911350661769688727184529905044127082795149391397272425425606020929502767935916616188794197110864561335761804624805717220795752103314045949385869536947375694523543940847499088557672655024975821548777391883324293798770169194587218604696819390609386433869256551939608115939007828251126924576047760721394800407391458094673339297379740520524752261052240138330109777551677104058539325224479386184352332709829894905020872904634741434109760201770611396406538159664404923006809393342187522360717441775721587009002021632316967075966117315547420977541866922718178872068880208164764718922220884364489133340184914449479638354615687717790015383329775774040390470793449265910670596608458311184395594081512847182453106331416635206245318096181939084505386487674764160701637823202098859960619691187503985741534979249615474181254108656505649198313656196273754158858893394456031081435139604628286528354390354739392784089041536102666934830792644770758097030060589734988770129743264061810394977596019434235467936310261543684155935079032430658010573579132099899166500672549163760382113470202703829059235174950362061749851451398638365877725312648818541855530404974159775810775226086687239109379995738422897923322662502132061752148121342979490622747589533658074757486430368808217740096551725690528128080061648947075677598817646192269826687539097689452993297109243347906709096538990424096753880834811736393761317542894326204862478657977242025141914543145806239633476318637386726321716908483780254366629327506612015538976261861717473314770957519961661578728205928415486371588835903052879806452494968540821012166448744510997809335063496327900122829849987103274565469243223192012298501992578349811469674170861882049007391390413064280793439325105627636336913733306710948967404254213036226211467659014199514376137190921480300938765610488301999577846232743815172558836075438256175692441107686598227832574843403848122318565336146006932841490670257592618880616239141857371644580256093469333158258485687726786157570790465619620572477057911334658149615544452535518354685126634511467184706673645804482756754039708304545778332012945190561878844125721202472291975369226639098496367593642333680813965191310607026565259546721299103079896347100432315231763735540275768518522943186166462320679673018233633828413617094823391828600822799875555376032292722299176281225788823503704435368700697578738310753996826294254194554327715134091655754295630944970186201965669148986350142527530941140194665569403198250063026670403803074844315664809859531567044885111783528110869053302804869300975470935166863623319749953005578544190745442985463173023184336257694376513135889645556026159495759197662224480252334484069630849235151665714679045245305720333065823045149351215909522627359263525663587254505261457665525718157560725026207023526137425052031176016273327833969332138299663377970749293966512370649503364870875123756156364430540113660564134195996764014082101048548325516692892465964938147948601447833110599154817984523533280858570592061516122839674065581440761184476846657671049841875048830569513611545181835992203946298103632618210685211791674359154199044626271417888156241174581954643585594988674984341548007814372748099658333716229613762550910940720348717127382540300619483163970575537384380787948555823813181701054281201474985267442415995908065037056318673957936063742829106320402858798680883163349100836391548065833465805417486535717491078624858647646798500534850863935154542135459176067270875621033391469799682207208235024785781024693232676756811971602783380034927793260076221735573960536345703352494985445589922604490144530073125724382055690005311420357245156309651557946215679844777730879878075411372407951183407265199372470829245906673628479906610700096192566430876813958983949341351257528315722880323421261743731181421026373446099964583938118252976751284541033964480843161893335064438661485250368799724713338818811359834137990715421165201370395350660789069052840312722817040495912273871524167872778300543072164546581083918869349545425257480433352182808595919744961900935535281989008902192442445740972730628142923664101266255401279897033063589273747939531680676064473361483949288870153425729189333093079651715009201329051320132029659625517568726293859831570906669769040782076885396637954995329205913143867481079215072006911147944942495873251186908606559116460745519477308835756318252474097020121257233159953004163822660377292531898928246982940416906946642242024425821322224253005998711199581709526962277247265121994330436643258276943193278185663435194095229162705541429260362555839578041828527427932807021742334609080027886425091560042264288406999710886565709217697625467071227376733443278008307494424888329952829654088640454289457536627865954752009344668781819087810605013033416052269750306026433658196178564854248670351402378441017600493824796025915032935165037483813234530484428483479305080996713990595498043304638070009084559175394989258095674267361588325607970405832938077365648904139448605073780944579641179004211220124768290878251328175090916465380799202888517563458277065240241149742168255975364373342655251968463652977075138093399823780557907101913221907424421388547762336199280967061530896427739238487627382917841818083281237625395920824730387127005724451144843499655231339124573013718199053970192875709186280963055992122995734556619943178007378769475841589633218407782456288933182624028971961888728740418754823151007891833410784870840242917013191955870149941234614428251113887193128951428497794150628430982041751843680978732106598054170340877523198720524906637398155169618642876011257699391652433452527765793792334097530026261248791005614507567342530663744084832650877587551667858223370498686466781314629345669557541197625351101407111518716735468808344249914076366363074492376153042536633478656707172590534980997438747169791742289220837248045646039505134126890412688136872698992303875294870814010362610054611799478720862465458485657965353804792527245238388371063902524309914315465784228138566333364664756806878971499269262025176629418898404357545033881359045587319522244298740454220961783508547691265410438903085229695315027155822704730968495424278325296115202562167219630537475983764481173465731616009519577265080712628340311913143493873748646954869200326861467189630499458017249929736655948207504998836984733876208706830273787245465324154999199983971830563542915883754575684711384816504162584901148158635676512598844269853914957738196824937663985856296765486711988873920050655220947269900195170096359903682889282209103330340562334768922793831146546376797091861745826144346819927793856714908873921078098292721390970036016230851872714043418833896050501064696937461253230556591309615828687001308692705562754324166111667410333487835555505200481857121392397442179958730278229742143895288747647313625677831910538565594199362999839252672353343647642637071919414714938217509512958710529885996456543747132810057038092952727023285214807395626514275175628467102868618230880695324402093292725409732481518639947984096807954192036012230520583446011418960617550240986628706153361136142529047897401195781827672827387089226562827066185627319030505310635602219720380762243838171636145291525233307624911077824147891830150562702794014593609347005419861269007374899601932690253626772199495814941837052714064264358714549628848411949236476042508340889660691335725134931688141309875918398987633228036704519491270240601512412084148487830637124373881221024593059101077210823393239924952259921973267892569879643174669830722108920293263179043002458988941454988838720647554938530976049031468861732234544885979102999998218212562799448869545551394759262257932185533487945331685469484026055719091830853724532308596830847381043721404458547582473143088878692728891952592759248701394650489961390341868871888999106022759322148311766610637592529833718359481311782333349583943267251570428016511753186702295481753619750645675720453330378024162242274629332546806831155547098348294027732429394716502039739876156902138956678885009948407742768908641569868164572095940811189601625039992158282520921283996537419727093277281865096773972070928527594843611045023347022488936107446990764388500521826263897090409515055120777664752430614254083215432792976088454856489121391342027956817006697580217635229060804708054869151479726212697203380865369572772221101407702808435663379899977267976132031495308908476829737015023360819517380594988370633288990309982790302685405611231041057034951398120335900106946614827778725035804868629601975704569815179362334527360517301636745087747317639106510833692846921127558989702537523752946229063590163423753468656548583835012274949517425005638066748023694284394262635238619484349517155315954561151883936579565936455591369838545696107766486527927049835707955096953496934339202357745255815976924465525451991002114328662651844698482207926857233766381093581656368880116789762393513616516758157297210570912724787941026995181794503344756010306444046424685578123718755526220149233853176554515544701476026037718500361698284180632952099150217170694767304362264405104562561944710127363150973060734441303570300332843200388286868877143177611921502766052235693925955846603790909851884317551230324598858013958284468638634655684733072667321111986634834427463997152579815393115736278569369791393213502317091587184260978808925787572257718054559762650177391004171814924550497482868078499432392814516148276617532508852747274970851022294462720618228477569317375019935281567088886816537787174881119051592921585992954327911105022385522726857537578861207041804646457201668808314155124285041836527998662457625508401964654816174745611226566851508911069184284394772457021290876530903219318960656498398556930689733441638009211489010557938915386132481917436440411899659138512005059495556266701370014047024362118899424939076491751073219484661582233145018349318499713010117883821397499461475440007894956559561225820160208104037087183403756926936469074207187085514748333349593480970843153862489187106477536781675509690096132852663573261921332232965882301194479988274121756160967221475153585122486113598044295871657307862499229465249371674028330558690387353510266835808566631655987001589038431703765530200422319626610078267456159040905759536356499366564268404477679756920730798652339070038273886398306714831903591930624276577644646577538381209447874604544485475369702593919083468654100899387581233872052044916535099480206546569958371127862438650828968722835123583192409974805580795633881731331834597585981717283393120602368191721436025920237469435793703894926372005441765468258366081950640242974919332012913316721839882785792318224040096545198179308095679799675740425341801697645523088781777481596455609515630403947133970081490013356120469558130861140607828337538905296928644770835993292329672405543902061668307275425201508559044285153118820962978364751613729984098823219041945857391561002039822514623160563801723900650210503038907555026013389700900195771275887776390459901704250723910530914830894352316454731494505460128037026758810726296745220291659365860898706935369534356781673715727986297709917636374652711637381052882067435010658426001832403321369063100933508537709499956393077478976463462545641846518534572345220446491448369852873250927812255336165894830231917612367779108107993089913210622774627917759136328137835306253237972348408634176900424370792382963937037952512115275672864223118112753921032709525343846231176426651212367652041751610921544464490795545893581940904729777179344188324753457944524725201138980068993228181785223426143092877287465144255838259598278416238205701775259964223574335379834533533916740094685816935576797382949959130064169973466287963747358345566632520687226941855984925552667224318064166522335340901747736394533208280176753334573929946452595973741560911782711056143400906388088636914915823710670653184280334394858383180342039924767444871686831439238831670625142016543477756997894187223174079089716750499275436569623134886886494434970165523892659234047099416402235612255537471880617445619680134324310593512476193829999594765477007643937345546406255165862207537401061575295565257659964768800583834163169304804781652577073770615344454352102486668822347676719424610301825999136314648645099114099884464836892914798240829413791757671070417367628306076223431401825211000782011458406107032250395913805140897669611586830885421917520857142009087884720798982714690994492938293334493612360706768286411162806148876181789986644410368956947543758392262053097672516894283744957899499598823046318951890963784808922513089876317163239162064072902364317042918117525765587085842161107444023282822333216595141509489619162392275821163631546100966291947064007086645435259934581820631682000167612531185971246052376577180803591702055853543721786168792731053869286998243562726541857830465639645586509393723430072442631951727722875116435543318004859100266823325848379656780473904764156044189054604773677897386180625406759357665949999877104108016922830743602731077747200562810134234348941440547954707869366428090760431550709321227502476744513158820247026318041778037628849195267427802668427884849922633700126510225797068108726615523566518292820710717899925709415439369960761298501937549087720781320472024521356502460849719163867493113888101379432087119059118850497159180942720636330941588633026638508459417455059504254760201194933069561608297338646084259857811369734057677491384879537129729114763461807951696348011439124037137881773887187167144956042912146566166429328463366200195699052937058558648630174283223034980918108858165160013729683624779652477854859983407635912080312548570233062222118137559114289687483948695874572535978837632475438881519712250034384480404742769520207692511786241230447543268166774357780728110448362349002774630588579923175975434020137190512989890379675003066007531394836091772476779266348637949753670305204818087153486295624301522254965242468358548492169697102617233081682314052755662302820195644347732343432812468088626334998960131364069220431292095429172551419482385384933884969197930973220387619121875511413385570488239384886711777665786365377021034150707433197267550783069729367194315350369554992544566869906075875002899848849208600230306498604261239037404632131677978525318609826267046508349635149752973863805741152523565689193423637829075499384142593402794576889804018962511555493578823277212423788454573770279486210005951825172646173748458305938069120118340542168734001867157450968022942135742522083044914271899144861354198132646533812030167769625961652191037702020645632220090471674575985219492853239292561153978034486143627989353218312682920525329572366309851877191171637821195714122882151628857666317702500161014787378390241479172069823843107991503698575740247873148626323219122030824535943130574180707893192815598112199354038330235035514242276627532197028492717205588995469701035281679295716673687631282802183465636795482076660532701536914391555683906470799572305530676931437955060855836773844273286809435034210867774358486954231865273434483938753443898492670635381647083657244578508682432225358826679387355836863111830395373034227389936894522149506522309251644186794874452305160233909023649261260427901170851619430491919801857724984469096048971554193160889378046329723354058756308529892691222779018710776956553799221953439310125367354539008417552938046299034034210830943393525126441958441094297305739388410561477630116996117559026178125024708153850476986834904578876888515713826220782181370479903037786355428404581740771173716014003911721936653718542222676150474632855393995460524587692362422616926062125214534197384957471159702635244799232615139812684723632862983231638167322570757500687587389958141597936380096352524870194830083201205000405487157563012626842119565709297408111036329347098163040069787665729071352906643395646594557663189093869725811628076716837308440620662446273708586773363256734182260927345365370450345675631820905934557648274067522669227432322333925375255299170533117059236627484845772353056552084334795722487815504142821236994385264647458056649422795103689127933916228755415886528329106746833086706817877976162121549359244546622456498304010463883018257189493281240316724071216534834230253894162622120296262784367869265555707610165295262823992904546405555090573776395642881659467910702863403705731127828481239623117301628292049285886264528158250832944000540768848571900614576814622924747932128119066004606297661471179154222675880397017011618480040293532064872022959769113341335622987246298116769305779245263349412862304470171150905277819031601148765167737433302728822466557621935840426076021333789171270941322018932660541116612416368193999398251500031819353291716064247312403101528165169707849645261041217151133446405353387486299347880061332816137424113556035016203640569403216985811700402335740388149460535639345159880668844533159202518260738551822347682733585006510074254565856899091012638121741399391850820163780441782265524500158148101147571411621919497094222232616511035000746142492139435278064885456681625877716341530202241666435141249918792372857223972912801183857336045661756827343621043548270825244037677707334486901417152771777393854970906339870556973711529884561431786322840184448453335672847053551107606105778497999340563626737756858350422415869889058657324602080556442244619322839261915951857330267257969166582881770004963170255935329428228942147373650336614462503815326463014529480750604421665434715748606409099192947502061919798377106283505031296884460022073642725200167438848822031567198712500484988102918566813419267431710482946490282587439237015935017286534530373095567330045165380359181240131521034698344668875279730358997242175529767707766140288507845963032714616553179771391828552622881081449802234611797152203263132906545200089840188351885716517844085190231339493856740024536079235836222758249738917048995417729242467843627260631678092435203317150972519766605529312881695847325947435071950587390693609771504137732662310254951116406999241855937609671508302492912250903609643699197588576686093401387572220103920123731038499761251245816066568719112749647344692246424509808305409192443247943428031664909934462356684089438916810157484756749798972278217874139462007168985908805447764119022606418756623426236864777046087759252506315021990007378426535131246927542072639420960998741539313316965432300022429873052168723583793411835189630712782923022485635332460767542808237833139601709257972799003751382380192165767876453968639982127246523037035381818406847646480785574575754548676621492109253519743818909272096158870274849943658101282416930907089246002336554512257544638288224042729634513684883299788728230692030878487582488013535292521778819309795618456900138058527944986669224510557244807151870420335038552878475816794407778425789977169744151756638884722975631935263921517675645864252805389290767280327515470008447073486498964585622089635100949323626095248414041446603434855293542234947064576399746351311215699197785354821173212587627383527046253390976369280806140254101686559721804515308786189268072316177194911881528599962948365225563996305691079296650548073057414861861625284695425326997953350941487014883776243728471952868010782117120709303055412620945528834245095994004069192291642670140373320979802598061948784005791489622387586223617145757514231566419948484420141870313138355000866125815076893275032894187713209731006052635236314857186357040934718033803498842732977170376907575847802936243114726238955324828615224700308240520466258710971275544573010170726069188315945311044585260404341510578276426305243791381609573541676282097377665821243198844216102805211874512822308319455393484724363614621050825907075414231017635737123803702357829578405941927842243406759147679845789340259923750735695507805739675824081607128087197178052145300079842739827294857857825689936203028088405191354053602647604335079639293069043380418817900640992170551115351018026834604475237709698131305665985047469961753507729753782369694606097665544189686559918070796656639724922044339586103422812287284282112126551382487573690688383253633132570621962452938443079127617624553654894788405953170628249032777949335114940915861568018437031245049719526803948063809785892600442051066472107886625813474061216417180853480209733584829573667133573962836457357708951073160847351260068943211490020460726386270625263463658338543759066712708382329503506944941086121223596720126627210438186264009151705890260631508943063342764999419481557410231815199268091904276830123654485950033394378623216382379445308150892878365511033754858728968780083928049609835486386251379723915521178934412987757862445507238011962924217360034877129131322810200544564266635757558234488458440202837428143026678713973522120037294500006180019754914613770949945656019910654390395394467880706872354107776881920597754757871918450876669352309026615395667714766785890692068283200159605583063862322955725447808481503174895979236971293499349413252357042756283207772281051881603009152449679825922472025666546300308456567358652666184907815004989742092884995239922885939765419242338712329503370660055962318723061260099832578792630952649750941651041208553677376117055826100544793296958671462405359028249094656423940057582536096311787239026234738765461334879672473897712982806300128380646284931979435531026060313301619903062424519451347846848979654473293174862685908686211489013191380458812345636699859736817103508216942205881172055699330181228933744500023790064934147504568574420567911622196004860021390187558268663606467911889578666367741641625451980914223746096151577887634078228680071908232122389124390645069095204835549993288070217454234765859543824928019089354940434885904209602686905494594478006753536410819638546370415738438500421304757787470933254944246158971911081822461634235743984424058429466571288471097003200552674672398743115120872607008473207518766795952753695422282141946866601541666941206712112408474219392018949103148447232203528427542951843278294682418945790412722797452052675920552352745288260723689996395065745495033974353459532652596292207394449600772931687376164847023605699563702896000240834135547596203492052934852469426208866480300321648675406457809549293012665311487411449078361237206076815972989875539031887707951208293854188933004014834432450698502274058081199547513981224433985391386087424245721379084667528398250901571103989881884131789312619093465088777860548368597849292617083422395984776417009402710833987109380936757725316910206319201911008917698508248676953937103759140990383973154449672075410684594274021618852862246716557797396043959405216028556753000792541755287266956112433666593161934397411269617225953274349950868019366688284364333719125249765110622050142617536299543543119634461264425429552245883627113437304010299153260748599751550125241723614516366415938571067912650442957010774831251405459632473587760427919981545479200992695497428163725320676191856776277107250653864011907468009385729376763930609184570255906271546209652910688794587345623058717494630574375316881097197846221274434764917779298690415327772495624520522196620021787810975771315616014435294650881829276260742668854891743349610956950549132536403125633444639987489478231693803303459240495343836168431958768778400504166440129371690788033253452901348854447739891543587164730879035796916473148532630713816793826388651918814966642349148185856334632707445387665466995911993827236321156084360681679749571750190943158411110427406499312046150412559258106225500307988440004658020502761453786831741959015586951052734869825679268284997737591340414907092210887546219667754211960759551321577255440783380976655157621916967536742538266396834245842450890775224669255853555115858926049556543454009806086078119623169639452111216074303493083110597303588813632159542415908794611949162288143190093955375276315549953161332133380428037216858624240999301189296576304471898797243107185741085746177464812483262751557139619296898897050266930395739502348485562961951629771211253203903261981004610028966738235727789991528514827933837646861297432683503901551170826660518367102520486080689961168111720003167228048958824504779078003242134094709754955893078342811603918445305080768825868782251734656176977756574520717086844616022510997321612384753958515273597467191473842269375191690109745130185379139032765881431744841024952544463922172582990323464511959302009713581067272946567595739728890453961121039676066551351552282547632036579770317454598684622283407516514407379697875283610938588106277307961233450009866856541059962412691388774447596172491919239664094999532232693712498843573381291917957715598424553555839668424801744733219076835736844823497147804766296367323609780529016127073108312077988117124034539919654825155477258848070109316029478503327988136296454204296812115853632826155972742548394955323248491109490358688200685788010736312705897933813422703320717585279342303344409792449849877277840733915167643902175591439191823302661696313028386216352657155843320038110000635964852712399181580843790103914995295606546952714047528538911049651687958398112522021334222892481189668528001670224777117502330921697408567806999289321287984114435673840426616821705310957640187703147489563977766922220032680330891022213964331389168029067061881811286626875363942800105794286295550246730632386791555774524756279912627025588457749928711350878427816817380531138734965075608448109331318902934340071686406850691792502687120556823833171743496095430010751316393680300189270009604432467721449885554247291481606455152190083600747524848227675411224181590068952603176064793193861565261848629269226656238615364679601973895228232618251740848002408273346738788101973238699884282072533961889743524923765676529860389188379446357663387605912250180017591666670295441429943683823227481911775420962466269785632374222151313288218706147705197818979498102750734995506851880034142274328996686306257895955470083686611345215696482280002637491297238586895715686046508756470539800822601352815046116559871262365501761221754066627092329800376275195835617995679687317902921684527614321485392771186818003713291436531425388769630176408496349933779868625033330716010669460832159427363470829357170182148030530294529448418470156298717293499036325591067927115613382709518342777852256179851848464267569664266512554550083786192528517544178543272387914031884608986390947660706540618646896088477028906324236794841124359293481361433189505397758424283876679782458814845900570650272530314878159717845577440174480621702920972818135900997193384645792814102803244676478174049858475531205982512445967030211738180061916731084376372876063207951937049688475002403088859414312270910734355899659131301180085977726119337735019092999305182938669162018957246149499687669205144135432266807786219546386798571417977126915663426032786302880206870261574233567267705295692643756380726009588364211247546343278123452490418741987500161401223438140049277204025485679684205303485954090727142526920158577520368353446783087119356890914944634294051156713580644201026788586930445216150902475149249955121028223186914483453296780528263456357016525524803147180812242998744387451231133775588290558233903872716775242132019004210020287355873928337699758676967474373112725661530518468008247906855799941865007707585959276137528768539588010550144941525558380738276206879128485060797575672669969158356338003788952205551412796344064118668900276809124323488944403100851609555156029675242267885610495412792179783851458568283261811581981727409643275690005299442693600457372073577629144723674533199082756677451501626945720300020980959391932947503096194043905251689443481841859738582520452101513557026382738539159705977327998498090159422473142953326325770206262955553680544591623339234343097421488486243819779231949155807926557194436644387518440826239328583278537735527203782808544680069633383160741272897931290383950339967891383086623480336279272428985920593250589054736642751023322166794770484874223176451910573254732028447271511026715152083354515981343612063734675010456547995241992173990134782475519003414510770180699012250195927951177682000074511472961776002309583459099937117322873480716744310258276085319603394335814667842220129066875553172024927134959384998524065191380707302177588352998035930123663749492971255330949444368278718251571673462344991983419137663234488510678418756008195962539864541467409102496519313198765500803834127084250378243184240144713099304487204756039841100393514006939492363082735761767847577590470974971966856501111022016926237471473874905887049793151674481130965623955496742412547602323905818938288656186190247699696215336346748707692604155683660051467780122337229481519671284327404124349914528418859702268334717977079114845287100043376197603851220746735292542510352716638348601407082762983254857741873281890308008781686617611470391139094894896838148566425187807722180697663783065152119963150421505700378830149488491976239876864074216425426964282656611215523467852647533688040670918999825163009062271279706873487092501300776551332496195946120084252020645889088496366135919298144886517714644620954852362406212045258454448359905742097769285108960932617309186315000077421695826329780758805225081691417164066589739544454768184992592614971705242135506536238988547320166730960724851841629466253026835268762375008990996421042833429535515986688702171066700825263876242270904244259860971315539574060989037902080884437864100781195605434507220576386719241123104548786833655099439851787193419345622767504993459369761334760087172245030715258056533629139190864216318030801177683277353693770961004817006401121908376771455761867598411272427579324596409770024300688800354748227243954030522288766936815912891277083687838456244345668976700780772586782287589782268992901306186348289275280793716342075215292967337188769229488965525455588161180620479622133056380864653909171199443743882522936439695248743481746147190101775176019588090265206129209391166653596738118654818290965435275243606571241653514347632859249005381631267979619389911832132401202928826011779550459543765225979719624218883473102338683208586347467643962682510927639540793627255182830848194065704616872311619356985918748554356500234581348633459254010635371059843916476955550659277717477428797713601559009362100912802145458622091938244611910574408587316516541788788454821172914987632638975174148696506239970685926152440801951661975844357435125513787234345320630648872453477440985474474738595892338366362137932845755572720492651382704718357036553883931674068121194357031769713735670979141889044881856042979377937298183770184092752049452500807506113368214047906325439456175991466830068455928295621510662153300485173478370821765836950495732938460896034731986691578189501343037666690616787322638024024498620751493176090421750325302256448681888916376215153885633864444800179100054758820166607391118267869217062166059222297992508254773600996075671955098734660955042660059522437397864470168372249701797634955681960589805291156246546205890451866433507434370944868040437091896256821037160959034029580685890048604254705607717273934788351061690557076144018466113685705197468405516368012516247755221402866828582692234778535622187051061838722161842677194506247908414871485716563794671744380041701254990487217489145204193335997534744118427488058915702663326144292623235052550951144562901402801953336380126046770956782103334952895097145160509713195912088796829542712604433666247992599670045119892063450264023603247859074883786700049993744813781873336288723683887009307763030283538597671645423635954230573736665686658060066804418946766539610185159069479862810247388802245452926187280142741783789116364166114449975275454659050487667648592883277682295375273381281027506693762089974243858686973232171880593495977176945858023330040635393705030300691017212695463335071119185180344517210172328199702141398426713757198235527244122745576221101410957131694672571607571357006072007233147151632160692616467378660175467516023602286012674952175064540560647300228093212855243293726628865102256521139770070213259097587535404109296354488810392794733018137249626529600816439388357554257556206809669523508078235764024936038771731661633711881760973249192808550012307894489557406011880126696861828257080658768491638545461091967717783109784643882455719158920206722320495886707935016681875064918623165732968590745231602399255230157856444061646207772540063515798640870568540276941834303450432186005240239409909800133078233095909386759768954626185288720865387454115858971779902710578233632318250950588096828755301833390550598084377724055997207581443551970291181687060983429637975739642598252611504735927359997808505923686036942239045013829571578815780579177730536421576976491952973487465119079369702639182088624843985361116665859024254960327616391152973885548748927378765343168926667332979654129233234278626883355159826507923363240236062730807711692719320299319538988109022518423133095216932404171998253763220038434886526480361873543172195123530619795547536567875189883308047046452279845625123672713893148593103149019893499773375132162776370606533953636890734468208728402177743565682446634851173524029111706396456620537212054429449805022412337241871804941212021174352555814083825250062224512623201380545532700892931051210346609996117010045274792481456975940730867644109878312785868985433978120064187944211505692913244047894719450341161560001022430863191907206362420828845531149929622804776096322266984111933697250834971237102233649591222539396090822988867713560269201200631742638576671186324903032815552079817478564342920970669806968062393099094800829860508415128927243842848144669013769642534071501002079542391854521687021537683796276640463300225410833297375613537696414878755544162828002989407821265711480613637001983512391808872897722196304840533967274136886612148222657153406787054466560793130572657896153502192915856955066980011036818217002243220580267221558141912851564611723900846249527927876793680163525693935676501611923757965199263313148204382490524519313781718597177655061472874388271282881638991065829957260444476027455195005022028629740229309325611464885252558444305990612431718751850981833135605134412048263915850620477924356175681120675364125772326182841440864473507198043014057280535179729501604028831075831945526489669327785133665562079529751759941662119763313667048098895297864197008721086492023944821459801275042189938498698855956127415134368145784578804501258139805191059488054346854917271486706938472272741614662307285050049819816851959355940069689140509828846773170025356594948088194906615953881190152431203810740258069930581935031733182761671897488723266783332448006427614642756567097010635861638024452087027289181515797932732078766535467458773754885393207428897423371530539428270790523517504666653903452639675046232014166230112960669402777267527790807565060501744081643338237975327478292801978343387716144176434678468343430700755946508579474719107689164082854434834318749105481619750113816866888979085846208452475730219517942263736503557415371344911590548397115900971949245790328632866112487220580461266459728794163280908172130239525741838726283457321913164019509209529792527074685555197442097241641493676061877174657167895635287988406095997729351419256595321045340386036318684042677079719296628182141969469043140762777026086571429074048442769902005113171626120326223608206550808654396274208035550912466546530632713947517470671671693340078142399477045401701051731260601941671934107111229823437543108184416009384496071576593679999332138828350415813336388640736323793217695992946388707326240613376198659147889974180422056383175741487528530532745020092357837926035627867354146638610421215115900826813900771723623188054263020977848912417445139885254324840964688574222249681720027445725295242691332823221583170645023650411994305974234125821740320202976182909679874455159222942662589901793768835752677030541454459950666261676598276745065420463529841355261322392415654234675359328167237831959980325788563709393611146739906655388508269824178460795599777597843686906455194499686616162026983803757502337893002337027026970165520736953519756674160453173864228011998354155156516503681582921538296101102607669261708671204158819309706079574623957929099663698746732338532138476943533915640189903195381348261432258331401294038603927412445350162507249916752810234696531989544160712908508305864525964827221564382044356852730525207931825172721740438878670567419708607378342000415695715088834149361484765758006723799812954566077648385953809299351339526842803625358750476791734438489714290806698168940799595046691766735846129165998437862086939762277045925148057091142870508549207679822025203466431184115610118797969241565199666980258211843344193332326739882927272521921497348766502135477865107401842428763820382937808935682044354966755164850266488923944608911638772018588385004162707037458711954636140902426625756602450791631300268833601019529212050201868106923590692150706665685197691764812191012366604848911036612233824707756551244401052139404514481822274506502537537579103334643600576725144323950023255175357645791634007121627126203778408806398785472445065692800957839583638730116896369707135728393018856356142469844117730576841909868753243704791199293032271798113398478932243938901666909433659478094497907477668962822360284690087170187596638443968111077541594792766200790629775051232149727206573867763599897295585829268644672788142046784878516849851132946882795382316974744109243840761832312977998762308748209193731531486822692888252132886515959838471268727953722458126654357696110228579079760642855613533937619639834737938547015300292392982852922518075095224350163274267815092918967418351119775507222803203478780368253558626810515726402159347620129444069485868887516561706336131030151295054531130799377684870117324027129340343781082610903432722494857321227386982507159549138283622374431387975390984011461541072443443282023309873242998775217953181129690856681689355728656775554642177956248494763727844919197133434959112630889586023362188137563306595708375989203510632446141006813001413850068764575261352351043203316032942896752101145176610288497119542882078701481909304020776755221457815308559319238255105643458399484818772996135022625930310310750228981105380970406688615432158068919944735321436768685004721508089651567290672240400268034508902444227547963340529004931507349056313759814823847246728522161675092362938084954875282550890031501123743818565109356253717186172791528640329275994849164729437084001247003438056531066070914635194818923827006733127809463234728750553132926275807444737716210691781682819377754746485164638921323057467344496216272130169854061779308161358107270946888490584011663540120448205229368254006991327838175104276286593715756464166476298578593026568648906275882648831809117539416385466200969595272715982200551097112178443954275939992873193522376386099075722232612935031242878348593581646425111434270144045123577707896395539084084384652752284049421733327114246932724415618824527402178862723662677958730005052748566015971031638324144939601152282085363633407174609780655766782843706344951484638829670110205831384319758873469463480708153092267791339749383912753679208300915901354470206223700951892530854096047929664052702829340105733143820706854362100168205646101403800632173905171867207307656897908228334387905699234658451131334101449764535045324392221184260653313841005109850833053065065960868687302763779055140395633204342556071220640356132792023530525850123578920475179108478046499470570043876658193269465967077806873103662056649830900019850167784321368519733652166866536496589369157324162187335913816857245363504606028785288029182966254314849640484836232886077066525394761340457882860779547066181030960236096734439766436366717456018530617841064358438828972997672588350766024629487604039989603300444093545954313823762328838206861248989650862289207103453102696635808904270435121035784078285320708586399172563972296960451407241191567116105459609930706897902700420182438729243364844782356499553994439240887523403207096182756151264295529207601511166549299769187461345627319214568733064918404550698838619205146309655192160564167968433400530417560997125858793678066579848338706169515976265680858141092618241675857533430495286700930868503659494098653183162460039721204651378129210418111592627204505454692189909957519375402254685342691067669944274658765741828858602811758357638097863191875798973856956467948904822630084487257674371648126192220899560891571220942551775333290674240222348051009004849341253856432848456186256203147145208122664752540682678949763095831454214221565084932866359767412873222868367745290686129219477537156551226850039775018661698126661962848003944438212886780645813050832086568017405266498273139603028487689826847647540660706991392448882350380916661864198156446664928826221477462545126045474610276119357448600194298011247661703945992150543792415146397465529956201742870764714715679148635673379865964963390669935574733475293562698639336121937912134304411954510012386684007708619633436785049995376703869666266720783287540222525795282389413073596519374915986229087050476397686907660588216904636022358954319177718915140524087635392242560428285774024405930376243514865336658361801325668444707465408797615103041890812865588817989695678427665466304661518833702191791319509972332593425531639386434356123004515063402514343411578216749226486334963972326487223375445014579706345654691376299585376841893153455312858667852871054139346566054359618937027833113575642499664707728564868675310009526060765008464927346918193846502120318716090692546736282863390031908115101182117983234547600498198820788355476709513831439182113361452576271894911725741976388003840457003846606024145281340401110530363156199265270019618991514886847551316501326132983929165438623138954590928014243537712893057540343238347851905521795092398323394770165836866666398833378856967275190741335041138382827505038466588443959025093148443365432466734855842432301038982961009496994480137332263982134779082595885677803430653684138272644919568281146336515418861486790359865942082970665605950225133166512029450752460433521841530773383491399739301191881413462204681996449471282969958105612885119590635244442703549412492381566520766296086305135603428159640722079572727833644991361791140167264351493055676545014052140719282570905970993604699394489230013460819585802980432929123810806178199040224713465656213406402976577209147979301604597669789863140001535332286991322601499298603553526627976919686703381615329358391129813840777107530126768373454339006328946655587918451391136185830278602400539529485058460751449993143823522061716135088407461285594625563245933607938045763659784060142159639795530256301319960003349405821919989027931044266457840095959260765513760841091968469700169476386415808696174508206479485824017626790733090601908228842391567000697902354808323962534667030906274081113419771795700348097747998889094129666541821299657913490376268205783152261540807238684718046719451435838527640800554187773264251683782276978746646049210157587322121549080411926524868203220557105896820124909596886337668939929910003881747676301401139006004348026490014521636483359745641142074698741379492259307344487306636837946482693745437948421575804309740575141429888414049915568558378077261728649924730168254880889968909510917863034102610420709501648877015338735506048806764575256149112445522093113070712765818793201942952065242375870527712208416730826511635144288054305465041144739429987224137129350743759617024639779494469889030958604611034740885679954715374205361048297841304161511255273547095713395324499214997497736477771570868293768621142477755436369364582924609128593419633479330905816360243951743954466858217143319176197591536989552664898477246172624601757877161364909172343834137649165747205019325243091349318262702311770650929079181975980081277892733368958160226300467352121348379849835830861611023540716121096496599437409095726431004531322188200578955460678136933761789524717546688029760800665716092450543933553151682930167959949794360240355683071533762174519636473059168918358350882831158088029238012036202721389514620320443138844962980114302327038987093060677871155437697159743931566592585944367087384301157501354717677307288655341497189145902141557097519844935187261582693498950237278135562077513165342946234216363363490408988067224248694329915174910508635893998661919528557442632141725054532922502492882554073629591996468526845332018762656584297874621530646706861046198628749933216868173084662635891448160782751603091269503748797027332094924954542173161408873799714798382196064609071218467342141927886938987349266856070369514126095502127601559808804902722245995507982155413041641037619665187607956000091866686700882520252329487645515456558116570283380982957239477198209872256238877185587255681630902801039067893418522328633446785499778429658651214819666758419781608915956220706403496947366301114874908210305549862163650727024110494238001693653785716679550777117739015439181040152504796618847701441663436226008366347114706162623016576577999436752592120626372109365828970164249552038633843361120359227374447255724046801629546168752824042279576011666487713678556590107872410560790449453947969722963878460739428495978884292947983889801114630970048753757878459783880488081266357826451699400046190159410947267782522304126542378810070751757387046160011925965943586280974109250266979866908402216870736123610346045962726663169854279178926868910510721458476381731904924964405669073450425947900005321421722414466375314387124510554931970359221156233004568835493236260244614479237960569577411209244002770111181676211133399975456932641968639087736161210760367859107650014374431422649295285962598775343154566294457641497930669054231105232574006685561871034252702664011021952091572707203531407959595123957771589913829970970072505559295656385517405587192311261478824004328519100124602925683735972486347044159548539943115693611717334444256965758065879064980061463632396225661832816314172095434312029708681891831461098519839952821534648807254151988995220168991196655708679980036221842746969452235232467412063660385953501028688437480737519326943414017166526517553851703816971762470601343878430388208837442799116170952383926905751406892860669953775989666901690567910901457386737640094079974295432267866759850863571695970728236469683111989084343586961072174919268536451951468637107415032770362071000484270899693438787355162080121840535422928876883726287908663201259810798373106371673292142391855716294533064148412501728246959103751773394940814636925535621318004497014952602926790983259239616735995345737398544186004119950126634067964009832215496677013586093559613564068026840749278612477404405981225604034090697291791903398966757557027103380275321621602157926954411526601748754976720663616006398989471216394752380188859573101078190110279992226532640379762357216825210597484474537462641320379473673313658486814472295604268116699835633767218165509518774340103710981827216342195782319961745104821404170371659641089101599243338118440104749007547552348604637672164080851030981666615541972592844488156893684845486280949353376015035005711572855723705331973357307534429866084928086742524437805785526500595381736402120326381661822903916240799123862670372738453224315399085276123123453804355550874858725741131098600908768387840979269309500367211017599235707074084019516068162217284614008429546586701673032667627860287697905854391981229208289369339929036480224788598214762492921968509459988308344987111417894515971573523327025568947655139903066327769811900804702179910866525950935027968047638894174553424462462295191500136482720633796833809331994605752069034271586358927187812936271185893020258667048800371915112340549364720457351102311522362893923137339337432995897302611568040751768535670862707289646967398407303849161310179212198243781760974258680226920611520871492916585406833775533650382028826904898799978291770540046871789070861109593333491579846871403703710084363654903648561203225382164032667260568588037536596166689099266568317168823727158963087224500106276901576334875057429297257759308575648557960991295285676701135729628668239356796220549216108537479057534384662678956347662403735711734732115425604069663452026600244284050012741826213106896556910729661145778377419969975531747848415635376258816846020072122203162042892668068059123414701065617131810542883273936814993509705138752350883227851903064605056732681288447890156502924154944183549492375305937439901035772431596402852524085101341778495319808925558756654572403608898335936550365307031824486702062372571008271787431582994290389381312753317503507430608693049340202970242151664681740070466537886442199062721364142099753740669669854704170342634722142228718012421998876781700735514793869859889155887040207331812847294010232959220058236551922632784989218054407489505847126707983198998693359284426157940932760386882314295052103111082630562837091351751651083498825650371461896409739098532153897276738002929997633944326797221101543258994001807390796793425182985029875110795434366953081870504519931916684190504875473714771493376899517016415996389609516767593719797110945187549357209878375466836959040181362533722336794602068215590018958667999844116725831423174580042556645384408173679829503957504224562263057253446352106343806170179528711690372060344148101829478537240993560865378976935490246714727912918603443123482104923580855128047855559107403232660726478237455622237219951867081739263296413728792284313152807646875928036251908405175179342644514968265386861246060399745741179301877674952483418645875593579048272255340213505543206269407076361460243611855761143837243095759612399605834204921261008483844493998337056110297128760458578108054177850926584841037573374455939620652490743308991794143616968900561216066247368940809328128982255843517844287600171270141223137343228732350117446140550689271289431115544367636222759630293305922993066065330103509055730664167389768877041734633592590274089283572059151883666490937850736201471983719137826779389663662632473710085345435768820571399696983414375126375335519984249697545446967240117960139142674723288865890402661608097482154958996991407036019070774599085293756466638586715864560150078754839200943846911714284679172959622040342121349317100418015786752302591178973513184347742226154122265310199974171396923969806457607602217203762909727659784596167383128506588636346805359564108591871171201303292032074864029053861320312006046532090115289444095265779094333021318686343030948336108969749818566331860108682528848786220874310433805181242532186940375162973410735566630945931281101696531897932763881493290304379747283493200271911063412884837391270191393976740166153473032415777049697658199685521662896165577956441591779375469915119882314870006781243944215048461618350134803312204980294981599642951516476783381586542897918715202838834541836577765277640841142642280675659950347321828946863472846090485663935984201534115691970844499425198391782721478935295369703127166750965131510550172308227850933383456454365153419316827620993440689149934360820851815261840064853577601219381308667454135101251373835577201476006027970143505427798941034165431802675217261195366963486170074201924423285196656264407330682263912356018477077211452660496142402158511802758805527969987280064773714884491136233691686124343357007479632793236732501765469771674749346273085138871239068886929491879256677994250876237928759683111181684922577701210636269086192593822727166003704848143024528039236625625429749549839550833983217879115619507940444484758942177818932132192311596203296422955408595499457408157327769138933399255438395063132385566989614635986207121720487089198375204661480012693327700533034110955995089800065241590921565745176848617460476079056219181067731082622094544187796836991049308015554597236437051287749467320003881734274454139747910698312638126156904151596567491181287016869597261581186274690539808083770044969618632057284948794519175872812652794266017747462391660161784577968943281189366179169477472631562989921798229330362932280958417090770504798960105350891187349020371583882764539406386240108579512684460430389870882874802317441716687468401088761170565298913121941330421014840823523191997888610038868896530103252669182987666820060421219781269463649034441744814954567563173642523664013065155692306303044632533059562789160442563899390730771019348701121097859629519437366040046301952241193034539986315452671042986602515405767398481258347111554625802282440458520661823433513605358973415806592789365415956906232553157021717752681145501955802091337318803810757872142587151149303999578892660595307554697799888819122505139665218494451603356268937765920780069484098146469612615347575342628698121227716974293845166631800040682091713010111021748878498637813029297807424072677786859225219376439318243145908600625352204701026333257600195560477082544275913614197407173480886767897407674448410563017380382087840821513238254353784688655510010127673221574688848556451598073263262500714395924468804117524020390578015272435468545801655040055904498294216518674672487966243846165549356075412005770497645118881048478710981849468515804434610965848318840240604412561942667755417963574020220505296112853146061272761869702900022842008805947121887767576996023422951420869697025916625625167246677108137318540791844661648041426984451755302052092392653557412280970616684732240330441418808746983652243139945785246563461551848260758174895030323123333074742748454727839906739833065513541706544503972012604013633260232201031244999264816985212930712962993298360295910010172355000905451190052148894492171981854301362645031777542586567905140296533948258331154776058528313799547166752191664860747887978788448070453979296156761707130406823783166733501614370208154875687610402455965229972756727840515790752091502741527730859914963687001941325616673443677211376952155656604261341201816791123505020670681689683293762526107063154250918557611929237289843573620952360905596643854870738494177868592164123075387907417032090760846078773396629845933429812503084340538716895415631247526570682648235507417785500842554901379296026918769499153817013779785472193830871084837783738864645414662559361286235736228566435181918082248772654216775984262510147415012483269673153159203350463688011088158166950873274662700154654575850387696879234245900419177605437421307216117469487723354613545818249519343173827551508510227832113206023527306010556394405795908656011645812031305582909237211823583524089103217356158710707047505283459133914891616677314226149033797103146788711093914933067145320604508778297311281715930263949440825687947760326271368372830364418604397821991288306604592354146162826537373139732316076854499206474064100420818017724457943123037916293727572704408194776887006095915890719747475204754727038028910606528164149146392123454304499571380318772268112804679799169044092073629353080251463757960179294321676397388580633716555883154468938698867152370840556316323195586152853432655603254860535264190233149332933176275074563039607078430620779784195306212151674252778099562059704820836985764107111134880673608730456126011627861268608288678765543971213157159765333705874022006490098673682870702988618945245157466736673287197713181820910475523177445565147041550444331991115709677483184872084426788815228381066369999226638866538274328722606436590375373785524563379725629824449259059199233738430354371730912282231222380902278700350748236705702002654849362918051132330517752715097645870573736329589981527661459545232948743224764486206338254726768490668436516958523869352335741035959992355942760445024896044676073955364910494472942698699244754348405682355653103893694099678547552202668118280006618631402920829570821658236796651158676526796402158469215839455256730063035156624346380629868919755250695075384549697721075670159464105481417467757908558985797903397488986921019853193639427976128688613661289689165063351832919898400349341315534213936446778312833247180401087672167814256542806098706888813584335813529074912698217265853777066761615513537482009550312923563295853171307977530019341998413852670572249365142011986300670666538904907982067631330691932845668203735848930218086711158012206271190541841169874884728412300330906241992455441345193286428090603912492904369780713348724643234714046802385979750603217226925205133004273328025550548220323689428654489065757374001877263831367767384321668826648255873430545006427004964606967405124696697129805408291340879472005666398678375628325325944107890213219943749781765732524088693824992112063997631968808546497198295041516446149788711500066948435382306153753773301394311273937219108529864290285659457503904094771219950928773817715768905859903193630718051074205598757028416866088183661881054177914394342786217335068384468425629753820955648244671446098718109892989676461815665664669711039504556320939064802169146242440569019971357085767514781714419254212734551909713926368470822272733083562434059149157888829481795379474815190107705664518956367834651319722483284223546662146848111134055851146291554732420369635226262652503377719689775806232303476406964236814320113328439700281826286698875255055960577944119798775474811012239368878576847466551586625729879725561252968701272901311419801161000763134828623399376331453456217028863486565347657955097111264906013043411743689529994008631987762778525645442757495785905475142449635848328440937919237953304639815553923225418018675935770636419009198711652971427150639075036783894623637327924297124726361359704489261739032763840978395202119803062636656506942245733381126871580920696219281654373974337806189183983161070432861041961233315848073994275176725295289897141571186458895473548433864946439212628947178863040672566652879247341366813114956703708022167016600104510921796161800307898761321324631340100610457662993209434966396025825760922588379803348657725518125792901394558494477327243210237621159423948490367519978426851568443555116978499167785692344712964339173539028641393961137822883467300232924926277291077844343786739648894255400748112296353207469809349447637189853903211391730001342188565092491047253857004318604133278437026951505237893323078544982825724186607030216619827989990327102567334836527711675496239159846272971603706432358980989560670274210639901048855597884778483411583890898854579965576532751064585227676446739608292128647152644664652638463355046687954373265297715224048045534524996650099149783461336571133229012219216181936135042679039648163323823329772215202013925155676609972192907652685053784095847315655852070874346210017034728435908539926415014421454603173729307537545534639116840428834200228728365748791675469263492009443957583430249702328622886199276744874701841650685687645869969470573079948063478762093125004023555372078092932046622219026461769001280142131729966496205674656600073328914521563673442375922711520798455117417450568420404402719326613173891985407064305561892848884250670062667638617452579839699236895877478678728273102546505065234232276350271142672125190165521558290683926282958434548086132336376756980891871184502991710541026699476278679824671088585946021237059873679742800046786815090656465235846636265708663546220460972145535278718663433840039477998044102100012873616250834532584666381836043091298629990162615769250625111713739732515785428444670212308580440763178816302778949991727203153090159824916043424466440291122991193599364108772393158583411516862028766217875756339901441078298227734322937796177999552940096685330504253861854348273386474353399751715638141030231145193131466930903286447130452834936481529453947020035055270190641064090338615076691838722802589034015761493613196716645775396592617728476119255464843807578826819383054425650491836757081164103657937153092975386595273432538391196244169144524850212941941300907644896149343024020298666331307692265349791956997464487805030683481959221685652541257325132140078015314879631425451110966786194019124435238369711681227440941335835768438840001572323464775644943669025470648907789659596012603159605100894953201231687006367062768138022052540493495589099698298114839831432291851739263393626020218813287065134713628670434442957072394242586091940353700996608941324420720139815643023245420973764279400162685849964132772042989021788552984290265876561119605734546794026752308629622620465408735704746094827494137413890857373987019311345354378457496068583333515558939910332800743215557830612276158661565666694515746810575894305137285546241227404606577301537248079248665501985853559528006228798442510919392804013306283248852773835639442802462353289686606837882941186519146960265641478015601164419814609980130168091751037651076634758650406758801084143828247888330143592066705115935611903199758637214955060227735215744537795363238028931425544437927144149821017954814477695099329686823940848723821549550302827682933901324004057625447466683967558427369594911143306153766668043990734281882322908440546111987070206882647610283644132052914535147321739101937565075721252923162218612816690640790346391575573042573665339430546400248394110042372890103938520637838625443111629019356870426400497499973972828865776132707258856461726593438222079248658779308434726671398100349008364839507041198169968906171515801366871770826394190908791355378283615653275597377275946906158068673803687775444525807329865085978248702370943792614186075934819151313155216032440944788146466256626494262867944678734163182356829115393239624443504167529441454493940841439163201266362589044046700554754935648154844400595958676663276426103209900956739773542436872703068387713875732582650959145047231302670753154767016608965588882203425293267129075553921991447882975610982984033536363093119939527687242812137387201896238256420070890884613104824378576242470906302252647050593446554508839210893035836225766923878519325957135060242000590208483795785029674732595565938929837544004524747146130133240481531231409781268877077563655393885419064239889857662562783806739493235533741054313776455443437368326382223275736955930460516527421561803060577752880941140906178064202024742370247983676335831069337461163692211379426691635945142801998817791390724624069515267414528726042023938188475984398413916118256203493296728589996881535625041110378944443742896013032764354954360634147807881784265772674566234080180943971264046904997993785382324509650644987319245732990242665687536905916268019385644391350105436750567522178828013262217905476797386522399676223123423285055907950263551025259475862813393461720918318091495517095248337264587439830306147435174446306609727570336906559463832248943360691746533218343663170986913549375845724872752073376266441668845352773564500585372194495572987261099303691651952752663080043732139690160490339640741061808943878829310166956501803966503630380431356651343674923721973897869239089178481696824136858131235730191225756252194490154298985743034509539759472454760480871925680264249677413535943689800066040335627917392899710519582129496939201146215177193972524440062975252888991834374441210606765431992219138373423489428442354901294651366590402441564133056789823520967994972042817114362207293917697094768768017975665196442820610163643466014844067770963542971339300273035367849286605418674335039796911009004022792779414697584656612783451038232862353033968431498854305870744844615256092158409959709862234176949285539444115299322730893758395357217718585208169465535377944931948902817189357168213783035731894989219033621315316290059875693866720608095092801198914152208629343340477335429135055206924511382767318894440960853715117266752601639582137289726705186966677745763832616119095613868694300762884430256408672031762414895224408447768933640395184552894654077844190564511561668968496717532480128591571965451115394547880797560528568377953787859665341953376012905531990123488625553638061570395086449942376887619205073660462562925700732789637877392078072968209521762439000641059385714925460595559449059918859886727526143303329274753603601308900635374238483701185140167712550619735801239763558379259963584274563759504312645217152629318497501489415589781906737912144577939527405658835596391819260279916576074602010037431279839927018491861620135563356633796460139642088014884945002959130211512454987441717096855170269417874505590197244698166825018542950031658542894009047869215003225736468723255896613025598395164419455927848579236517004760617009195812620944426216049276178022079072539829599572850235717957461904592112060704454221513174900179023582595454334302662733064957710869321014828998005487830472700845114733590935148473968530936921572916695464597484461108903967259635351272745643549031918195149137122254769926859693894970440747161487993562260029679237626012747090205551652020914944775143336881324258402700597113503445757769567647047606078137526111048217301695244441029238953160395444304365543207885694181201881982581704376450035781556695578979586242363332075124621464442202190802962879843678916363123478509484122890613975727276529736697221596143061924610717770863165963548540320888763886550761225584616714348807870378362193189126226862720566535038413745170171116708926415413696718292321911130355681345296465512354789566339308609250711348253533226285429284479552527880456488387986851373885527094253536943531957490318454144982443805514489663037670500036655692269573181319464164984318182441844102743318892190767040166299524029940590645456995850913132692908445325895835576180844231727417884072552213829223922318829682298387722355849657332026819229576716221310822672602391907843893208746885748856724827321762117308370647170556024948876777956086115499941667922318342422667643650512648873536766397548719007442270327493902190655091549905279253591993102217263920996434413882101763209593581772913239214511649485148075192845222346088600724749062615843282051669690440156099829150008531904757978965328598671344681238997261056770147199985300969983854777076529797734153071108575342439973060163495525825175475009096033780086931557032875632025129205097675682958735214392114283646068028388634472205676411946139910150183474474859785945626488642345942211533054313021410876417886939817142127159079711851729685715196178750116037774176056576883623628785163398556674186703180563356149205715727145548834323007583544362557143320018256625496395296179233941825892072413707853610825480967154722630578089810646338995295141045482694806896087765459475052633943728273365343774295848217705171954415292856572940909144314162965637698302432681726542387800457329267518883695980216846336100633836150917904311885856507404178391222246459197101617598862600569892337466007114122551076733418997023960161073557319377783218861598024437681458489828994526937825004826200626221538753053186406176744196173017060777886852841041696401099127770760766755224375317512275265478385041325863424867913764384738569427041378211327312712663220440569954002063735398672434972382174967373031261428375100861933845328315088935811438412763514545176109534978006305495171489429269290968402087029364937829681495207157325508410815618842713011455078731320068143434044796756314749806470024961620897289982209871884858667331722680184134829388144555540575476857900119537077177823180854648980305072710788168223399236123685971418180425707213757327247044876915178625570507399361855025610231781044562186360413603667384474543291076346311452970590191749287594150553971362319636185521792386484072572245755387088139061328542171231296755749837233278096198998166027089406208207749314483209916113695960872673618215308275283131760731503083799796591640289914918867939406003025831232196491035602668681801659726837262311143956164519048650632710533591264643254274718356264833433399945312734875006092275314370404151971590273538931531628438974582002087654476465561168289838707133045114430045392298239764593801602225070401375812114392781432327706225990219019417655900998043331937145871947296816948037186428305674065276159993979177171009575090188573069118356843473478275462712567395672457602407377064540833338714058903989597178796372428017948513946362398144457053761571189763215169245248174768921519978171820630471076700157331961420658498275462598530853679082919800214961762982615799831609150720504699626418202286893692542354388632798234360006563229949741472549557078606943485192360312076024737274817623045120426433309048239096824611726274948775098547884687033198487560304134457452922879141142236745110675536158088866393695015616589429555765449076703645140848368155347140331902545237607135464511734546416049364539299285706960714368202254519848026819723692907022153857605670799459502252452618907994868668449676992362129311593396318638246649010081420933634785501567162163101523858000485114017635303943867874075537240742431018358620520540147457403287075157755139651068271041727222379632627734381891179639313054010443625672662329565098151949770755704918350464668581372378196686863716767122043994679945978308719950961674225803236919374290155086796155832061993071144693565309068935582871797989859567419146784256451140376237493450537741128560651311833200751582767501415111163656084588721017992205678124443733932768113111239171175450807474081305978957421083118103000508877130336670845366913208312838869060653276867467045892189638180592869392225964309874697021119398293300477551648908493835151473327693114558434157567933069287107977099302641421853614536438794901400001241597221804406672194298683504327675459613149600121246886541053861862185673551750609515042083896169399823107333595646194908239411302735396220452514895467779549509132325338940787111082912141753721808610343346404499761820563947410197828395047086399071420243590168417746286519898727908689256415555033130448848334750708481590269268332607759794004382673356039481956935610868350925794692957953989131255267477769662844336277099503331073802715218142024433757699253780474785366587978065825480081171093953353938722436707307436536085629961929511721045696382542358054129583721371452191006674097275565792229260969017377136469404457318638637581511424021738821827729436039611174329376110372359631341372349829118491715269736640386051951405924245104468269500543972983604963253910519264973723050971847258160855688082484159701295912531367088491376572476477462585467854044367461764523265224733359518075243392317907307040493649020471791134184645142631248926090647924868023482402612842539608499019913281428689466500724908311474128794772232282481700212456941598599764237579664911944213631957486460154853922816104418459082025501221681500771636846909571655151604342655620486148225174165327917263868884469702331245253937751862111263879262987866910373832906214004690899651510593219598547916289965509092786986161157641503838221520487034523692423472130497351115198977133661929539078474302666340841359808368874772533944039700448966748833090717177941216034957255491753443315314071588371193631738753993891828639190739754934233400104164419666887800829627788919294538151571594840822480035370261988542912789299052986659449909618070941300881494403980462274703922873301353975928624983394859702486930586749983104664806269785755304397001270954215971964809590312346607413554424326927092835695741095153746070501469290308631371462203864513365425898745365867073033593668806581589308907401709238502527916658302220648960116147608609620123801206776064415784671592628014402544473235183322018479872136865807791284661112790127039038269243393805217281814200703794133299590388881716592367531535840614571598699002357938675244606117144226734069590316328321280487153962641862920203641170928239849181213408868875441622328451354385619206039717671002452892125305089651187624823873947670956378340618298275369885320553626453492123064022053016088134390790086226521759062918028801398973187087875525365320743626492984099139770031855090154636397953362612166659496680938220522110284690137142700653342360153197957298780415743590588922642659630467733602108136464371140363099896613437036410331792535742270503824576123541569445807059193415202828381543454892682391188166730312527245055253651736876248210457424264887743272739949769517012907160364809672559304651419652052789458082395228710863611609279574569950376737704951918531702805237324846262277531337117841063964118867361679388917194553781484093207296091887290538818539000149188075594371052417692912976976814442608251111028861776380607639737063506608777342802381198741046481433260005540121722654659148072830075514500400356420390811010130288297681115780236110341884794713138842021409799400625876339587091458726103151191087141809145805808009961972266312807484096917493555734384150235176103436713967993880190742442501911858323511003282870362332209339939134863498725608807611576357288358982914048642942051804733064798141858119463481793598068370975009462940100618423850765227205220624666850552766054902527455274984883140369031855554817686199188940971743745642024728404780511642496313420323582564700778653414398524782411437180584382100212815158256938868794356618570479438410057334619915787950570488672917753538721864326054661362362383703460922688359946971754049424784081268201948326250718581431192018697043168824879238374260534820629562488323500344511140271700595960023282888250666705952721722696150407969550836004793392487040876695188370185750448537028342921479224478814823737753947134339794624157290884961905816173347525260341359882561170105521457199057641955572292689919019202698098043802114807627840235485033481272569560214843890550642503888974734337356852657877586768974859525768593843320476528404951689292018453372126903521995552915652687043684032246201045427681398214414927864292077975702741929257202868969067058446115512981680173070412986044805753748226150763724044676087835058481280290692802692213376432727010266748882726774914510002507695150712247628165719902801207221800759664694305467754464058021786544942590842265088981174110219731832929174801183266977670153842588774990240489261645132453969779911089389409414806280414070446530862880780374112318327114615424201935839928733087535007530279515149418525090631340876276121369965404882782491849420701344563575209978932998602065183462459181887861637358305542266151572128766639532024445904713464970632205053804606716112828366988567586966170422090123232906342705724902078747112191168921610430933417685161587091399564860836645007189254984702019352784148563530616993206688715370048046696843871828530424042474791861232758746123941854707884111987130086371901318845169167311088685832931222643589212392050425318139348382154929145978338660858942166121617198250351571467064338833530455846261903664327600001524881975763500165720092979266976324492159141825713024463662077318844127632634220436671162054245057747919629815546526075715286146783962785040479084219440908167723145459038746140251451577985942205678985653380522059426825199900750840650358599134633411600189048984599179023828394901758465056566363797309688583157786723884192562581432067754246346854768264576248851372275917503507535152312804772704376882403051484429622026692018101763643637922197538209450632977219208048190825068315962049251361600050800632633204035722352500866926254204510061052507990148692603594364153377334651223681552735407913731838020531141580016472178207133582883454121216108345928611699040698761174401921322317316662119163042716362974429244414778367045565149301755611460965844928344300012504319870516480883440731105840671446851914294903407030932122933678886715028515255773214786731507823008361731973144714489778963566860113816895635729162359758415780932859339928880445216812095538522822631675864840995825453176363238974605631812398327783299496492354390152213598327685760370704158282546438653667674229891815523731041695200468062527878761574978453402452024969786855274954626572468624909494108176623763101097463547187746254659252769172502646381593169517241108049766512351264883548686798890327495557608655825218106955290083913282715289920401552481208824283105288693444215488625253096861459009374152066276420423755328160572600344778297936420177311832939276122010503169176805972649633711521217317225034482671450994716442399847528443251728853758539530686422778751122674291815918287394850158661862171630222450340754073447590318710353005814800755931594536647586357541975101989626812697814222745089853921163396597990136932500245375115851866910230321397324234919382952785572408415009928415387211494129942164654301954270551575312036402453114394583548958565880752373232050970808811783138707235209816040126152931692983170522125709080489893164090432374456270120511654120919492728866676189639059379815190354042263241192806063425155255166996764959285026325536077627732248009139503158955534646565251480029748095200505756541487247234529167885495898575846119072718694973875681071652200194289798100389702098621004849241978159243544787810522944723445571846664681327340184019212626470757032504833544790841766958708761963717920310926469165636250607857900310946342611602229053909939902905067536469792148008637662911160449520058155037727947836195612402197286852834522158407252003621359900082523677455263688723761888556103870237174078444309082171390965987057454785935018695765846103391302239612812282646282213555332407021721145438272355924472812379213562877452338886162320482405291818294581887770273499366745698342872496036190523798084680357513968640955007622215396839207853964429591813985669302595142594187992303378582264163773704736643943791985164527039226481583284902247419512213367377437155483918157154582744952243257692223977264684787908076501261399159950962572592246907150887521456346431167108227658464915964443373966291752279583543746503385389078961716902940449028828894626046704027203404699286093468771222195690628702403514574143755000623692161674130398209271359648050030049902345962347437678828242750912213941505742119070100261104731702859963256726787151467852375005895042740231451228836224167599663391406969233076275976927608881317286559155432645934324593083192100142132021538147468599768665930751025865558581305681967042870815129249562470704620892020803339523404608738385101796542657079117035733495184903809758133692645963261026396279975797835198948234669441338232514273961082920998545104193094529088749505504280960048434140308828976844006509510703329294739630697710682863005262548672670519076091603440973814769719281941184324811195329540979960997056974047125745566579433767969549668196134907830779453522075185440208364286407755869247204633435047163553229739552365703011171116510656734424916781501767288441424428201586429673021640322558782610531872783616662783622033678918923655735116465112120426556733274080606385910304000417919696038357952141213658770178203175931351917142426731189572597186391208023928576086261486309112274966267413406855968111591480426556705088595725629997457922484552041460347135758781499948659510555247690608201140268927792517583348474146919210369645611898714899827373567673362590649083202205311249242779452307470534008555760035096042228871643279953474032090017099683820656120893089324114162457158597920341464405991391490189383974327883567358097095170040092078177615497702206613259431789400590943068273935157343032850270446972548310834647898400255566381559776497297509848750683751660529991123122964479570348220305342860295561114096318248426820322297117698757414164642771844181974275253632536586864955890285920854422710340768753299969327185017305164384409492409060270333515586526415696430635107177780150532678723476348407031654887430910062531371877671802635519329989239352361450058039934162951746403661984087053688229028122045008697473635821941844362997783888013296327463166465119065420726580560455634395166969918345336392802140874628949615280138464922552908364474408546758604268562906661556394461407776419179657901445281546209690282956892836489117259651870896036005303472644964150452406323536607882519687797855871423564592344804144163924021763547338573340239246298873729931131617214325227671833443701349621597839243926076187232640768946832988457688803362471381693072573394782197695868966235531631976666490666231608383482698936412893021621205670174492155870535814110474115109495004830944931883801025918697852169996499976755628988100419341631646696968361939907246655997762777009917458984681326760928845524159964697618232366737347276539367693588185374624261742101701635056831027236309671926168940494389090722596992114460423608654155583926000481336079223449866327285313232412348479380809208652778772475500822864816420556005248757603660640593469037031910568483772905875955327515413593794819179749548747763928322952095221921899461242129406972400108063827075983265903859850144613272104481533702719344812216150135545104032190762785441112983438036230980773554377978696680412792954084576358185878364393651185069236376166801901362343740582812323753391569471480085412949325424904054465395348984114768050893032876719827303086209587854971273383752474740168621135476575999308735091621084080111990553175411264369403226665370634847995989452703559752600746723358901480951814542372005704392406330810556511969766951820355093471315130262748564113684867194408318775496543613183859450021292667008013398988397961947735201243606197485541445185424418216850448198465099093195825098441746550669389088907781842591488184257102019389944047714472965109975301687004139406356772321242215376860876725941579033248395641942013917354211781268311466737728051092821713714211905864517932942732340511232626584036727162297881324618153134432556390084775300852266011376465249259829945534784128104680162500345863986908122575135053098096931088462638921430088422953455963566015648016740208199667654206998006458840569871613010363876047124964532945998544088544792399415658147073483104296184665766790518838545452192978511153813466092129741680656292412198978376535017982416229995413103768662786684311521562925514100375984701652755486829803533353610134679534953579519133141157978823201837822611933024723445925902489421928702085525824764525811551922627651858521707705610016037928043867797481031010231311490648473183522612083184135517765131134960422786355100753986116798995814659224158929627936835537339703461731692397739037441255652950048268120095545212151264905860370343225699327768364677449129811485534552684339231091398825547153787568902532073884774025985960973784116009587957953149222689121048459182627179525407873226879663615563898873552062050223670360131744804786335015234057042819295290442381401550023468238585928985295438288397841719237878702967564654179113681483349143356053928717497195949082525947535149884237252637252806470354914640687956871712410144292284751453895002497130491631407940409500233617897121559048454296014204140661720222297439079104085326640199686086611265118725556060465347913034177175116062947195184511956586017841050203031977063571153820742095180310015081487516493540297189806198703562082817718642995564767073145308571320339999636320871476689946895631549693420092942404538216757337657740677818706143851227976400635949189762907536507110077592324802499047603445233977039837242727108530831994306670832878808098369389056459789058276294113713646905443096443765432085902655072704854240979340856439655156821259470986608655876179882341287726183310023531773598993919142544544559494555321563103314089415863353832391415187135231311150742849009962936116977999049448187321795912611836967349805062579061426980116392431641449548565611473747298633370901471879557133037929284548439001336532909809437387327354667897322210096315724894367111217367903231875245567100779165468180372143147690799168527804460606949732508266477497731572792062717836109282666760573322765651636338098382829252766265963814446129782532545634862392317289490875003604074707027022274209949567969951173486381270981445141274143376278635693840958779044127978641169675033686002598564775708781260935799593675064826597521226541821250055503581630508197294191177026919428701033970786848759441876880586527254932875003520522195950287043729031743551967282332114157737789770422481104950600135041598096670483998361910174192894974832837114445434574422253839949960844315739277190640752196634263692080393658454168518220357656978137438762545386197925080717747693421094821254394762041561571967021375657467847793166656107956827201873420230716100146640934797369324266091684089480943661542340540752311400439006780676638213259173963225328994325141246586990855703379491077290288303180363146660416911951917543431030931273723132541768480404387158632280976292290188816462431162536309485950665913386282027378168120856331494497394492109665049983082306281441198482224989194726678155222521014995553301128967380537183129183242169029915025584333640816458839794781703657329297509435829919296547857279726879086665669747675246019670805515552388021513169887067363280491810772622222491086987934013702157651774818497557314071363445189256669806505280292619691849257704198550682779450337927531137901339279231061256574599188651020779000985539973564991259564694908082126698754047572387302844624438537048992992313990732347399760665636919067346117074265368148192688440646653783518311026862621435739047133429696286130855612288371952140359094763862375219849544219970033570205800504059320942645429186268177910172611934008883234659335833957160205167905809134076872975446457465486270350884879100358626456332502575069015047320521983191003040332254425977520976017382595094097020384977011240190989494284138498861869460217568064320733920330962656703529667661307959892808226188113804275148454471339280172334896083333196670007521449415441085269326187965265295660071897296745341128288470137562197922863087478156798503158317013466824111230077832229304923996375780984103433239149566592429564957921445230638470240911805109932167065055441868136415592966155941270705973781902873262750671262186515681829366547398700173980335862095819055555130288464027508417567080317513923369434048134292896591190135248301633519142642739521297351276227661143892679702239228413459455453026895373161486059986309859700098021077535393628984659503666102399990760477833805534332264158205187410444293710924927706250112894177664472946567572067442628951877258409399165570055514377662977517050676540314659776950015065179772116084521978116995374976604869164070640893948232796904823424895307559290307320623812563816163889158847342172559901102988283655671560941189436303750503311064405815713110080130913137892002605738534203123122619604213682712158277295997280522708680645246059781088827243893008237659139299132857079893537973704622058362948659963223886572187341716549686693740402814955523125685567254708009965646170891162037624403073301885426930747173086418173270129227243270504269116307764637083981306168336172972206346301491101659858767784990564161254478068138870050263967994611104215098382104088475886464931396919559731031908672274158038607659104932466379363528618468151338052697174039203784593813082876656040679382386515869841254879951782293383880673348575509823519619306456310298999689142327704595077775834335580778036859805650133156912896932083998827502179069947974295791090849213280757329199423760738720868920271785292963867802019859231106668841946376790984838767626057532801505014548544488640638619501479533134062780682831889701281482126023484783983108881342270809031009494028239764048261570165401144328829920680809806892475403615966862502787487591495177419988672277775948092176234149956866343709570481224081763496664097311951876886223657037946370083365954456898742128643000942917651618950104704662230463327620487606571312351834709378878681505012378620625662018693651300842269066055747901331695495609207867834019389322251896805412321343498642528684996269524503257462030884030724122751667009296070678570439496905621494380993765727907926681501354348848300444419814001224127584570705809666483171361673626846513854914779596673642081232756815972074080705730948623637776247611387153160102715576724008385548528206196676795440791245530000671861462567908906560760732342750457032700773397665668425593747726908801763413871691326100141502174459485633907471208273565303305124019001911821257941923907530205969131195731011413932015892022168615140347247334637591379432288130068915500377640660752010065273227806480132701571464983286300870103720501576387179448451488147475602710192265784979854134398705666190863618812900733951733375495301170813060015850306950390659843869662960710997893918351580972531357220208272847034061363563528362295416053999214661572231594258112725962668025116985116971894506587044536331021985773025370611748624098232550994733265995822154809310983026968383898035114427375156360246230344146394753989484612204906320039914573730623462258754535370173990959183837592428305257031400417913358985039075286745152134869533227378420856185436613335628332934294432566758448784816006699628321745779887266481736591061921931650651790853188892362719376276714280023399198190936997382903071215929254070679628430436238195585109532484773627908052165081828513405123012331572892782135185796483733739051025266330161881924438167459699251704464080597339410597269886025020338766903435197346325529630104113562133348909958654562700774595047425122698232560192837120786990515663496497487271968326098720383841523799291027801060708624661511729361634292588591512925771730174016330297325316645853668431827727112056167415405519092116422326428121289373783666878122219177529034721608950259473513013550143264643517173736031389733967621379941482214343693926261658981839666489812541035980047106868213621198917036382558210355424195756984394843632755231070401795355250680555135589951953322470134629001785154424122658007378220154991788289680693984087174378652456387833639064385168421201207919107124517938378459673802668538937454340689531724479873439324914334643631780163195753724227233047695064716540765537019352575563999939397276671264882972177514286130433216151472936600086444326871410391233957736650405040672211941688595810815110141431823818687207738157111340717497771145485820324250389916471340173784482250696289508237889954282075867455059762364126986011940214946193468726002442299375654585414166418416443533108268165895927194629428271894431312498706352614016521438387498934921116134279905103878748999770392104376140708382077073834064646179160867265447400704793731578560927162649622081688968165355234720295170498552775588933607336414874236026429559529173571007810335774414187987506399309579818012110451495956368628814298130596578452027566059402165538431839373989932584210630850074418035947899970935435320259348260720477680325636334281181441005256423476965559897130969458363983364752264001155752875879199537165109875561628970549532674749754486055374923278080639866752833606370746013102008391795068317617711812279400017119185304579390646173384272178361937940991917703253841148042738616442454560604024024331926153656645703062800446325026549238630400913188557367744469944159778877262698863894075033453046979484669492239498501532373563290405916315176316307014128334706969789896576197916004119624933284923773245340503242443616770249991034966318338101317248345718521647525194347816706540120380620473677904975038254737469284069128592077108288406245623186098558279967266517021786450319758834763321774098269036033711899174623953829919502258187569240881994118887135855859843180002250438804483691971483630607508709879241593671718884649154662228312651452037618314227637083658735939610161532080750176841097344843405594492469025221991669170479287800726621009244192665904454217447836154630535860184875249538307016415079220380609173811019274359238146807681389708269480329253350859872262439171018625736215094649014061742549857489218095433127790706097770908785304665456234556168755239658705055260635296541224978856591708579350404317721109451306687618946283519634385208832807912970880065190556693064395884158978209409928663556850953956460511062588491595829112043809749520410892391775539752818986904931934323141222726948083500705473480761342881759297341225781005854930022960197426593738383060970485473380738824758220349323575442625288908100317190355965245208414467429372128733331991704056499728766130190621080920993174282983523516744227295534332384556999295909561458215731801673192118569447275931995758172889054588606084570605166860743090088863387167507819245732668551690475898793899999210550710184055573719987633407041477254388119593435995438603926395451284696702467936793242167410680449055536544018794504356578835944014899027312409532707241326741433432973710574947504066700592456071635892112302140148974112462772887680795799731250143470591144891129933128812360268411393773520738494308546750063183189194758985326079106334114098560744452031689365248364375573170621869858436897595711642694976174717019838447305099721553781982862605408948564111046182203241491449212759970884096479297465888645803578439944744749137498613530466051765799796937854306026490497905189635583824726706220187615659695331876931035181731697451195913861390295581316579555554077855299291638572137031062531265351227383162592050853900828899871679927288398228111826023830539957813526266281774931705654334030465016893452761426226316141425781669608683362565588185979406399759239313367490251975675023192207537174843310990304392290111036393927873075170529462948485263734450448765011372241446356331162961442745489786142398446188286637843298662640281040931852141954682913055647867707232051194155955149795040925563484260422010818677821422165622994690058668560203624758037508693448714131509026232612611105258924589026544736228628310462170519915599522801569525608211457968274808506655366065131609098581167309013042066143913069720471291306582253985029856197266865418458699460669499235973541066524846498975489693531771260460754733529341801997321111535419836936777991861705167815965687633129758796499463716781095755386479922418903639139986805607905142220002551211410701195084423499712184759906526673060547032100718185564202770225929334824900716347036708607969576788837169456707754777843937714014010248674811034974861439550161740757801175288970788235853029214188948689378155411939396003276740254121576155550991510217740104582283495890614464453584787135980756225717524692943410452787498205399605690730925114984361089875652498564511541982927069442648093689120360345747490701423435444786428511831951042235174799132006090790348152942865218252426196000622930724195037615517590152966535407150577734404551825358369738917340518582090881931859204045603270513601934788335393801730934200094503374842612273771488079605209361097947165260732951712314687695871102054360182994105061781277807338852128098100926567703371948431327054100548382088509967693314506707346652843980830636596761631671922893506128750761612093058558556136264196876105785804917218988376313721303244768176978058531995511490801914678488143281190128667438529520102085074739247270553943571676124943399642220530929988904527851106988070558018940932223025957869891003727697127601130516736136840647815956951677062307478026208502204905849912860399524766045188604041729675772605703740476055415860270828722605476465719978053099730899138582696059272495675932093628293798979792663807728795793624817214593734177269224024429796095522664617989232421140140245609252229802053778281689995596841817358410798932712660067197450528743200588351548456155916676702944974766845181796174455421159756897037234458133186084424685022101626747521442827223091787435250670340500805265881367570125996730399394775993362371226433047139214249845869700658156847841876722368697255298251439456151817526643103247832799230420581489667720014735080942002065822705959779233859708170088827247897633068545631221180227553441974350469701933781677519299786532782832561671877050708518983670697012143624031555500038783084439107047048593209695029551353129062779768278881816022317990465412478124432550095383783103402076163801978828117234138074053460518989394217976922050586485693265324762144986325424429187524008150877241505933712535864919544832672975839212906974277024245327574934389552357831464468636786975431273180326362895866437204250351832674363318474472825338607084576444202720226997201609045596141838478147443648449337132296330025187105935406187001257895890358699963438102243436955622250281417654320718525077092170176170273718571807974621815473661847300358552731275812480037332119608487305603542792569573740528453872185194771832839945047980898552087667432356952482579387442359738496850746628532475284004726571695203357361328074922351540391191986716246225562661396585240687153304123277537258042516547845461144846477640132419798237528007318874681333637508584451785352944665467305033583000583206783106253642784484913326314183775393718544722583239240138302163374311451333293464487906745436980990985048287711721994511570997222314476403682580864016845279596177652931628955094366700227118807138992599983075661632680278503580608554721809790799621847583047497918981533616903030532556653277795761926500602899733453255476736338120965773469541552269290938897558197577380604530209417742494731772318367956920504209989656102932521751533558248408284194241601411491436813965582826467715979346804874801207777140381304051489817536779302166486665091682861123754775710210525940899966519173654686634540027642066822883846914633171827495025452367235030965946038685501268820607389158782864513686667490804561872659319697295818577651451771445908753506859007568496414668423877955159921338192998638648248680528965094396240635003700592044655413735633141885802920794781708839416342756760369735848877894267404583347257083643578155544237935987749341932883637826741792324027808005710082807257275054241815277690717738700220496511905713652919093271914123488089470436287646443847008741905245183625247743402427512075386023102736819221045413361257808385387365127339557530597282187800080002790017648709655994259725329163271142679418029627038633736667922286570627817097235306654028639002421882213107764915019158501438697883238320456070764838847300774950520580782171867160101942786310608831569743851383667111563113758643484374065615415598402257784272284305020342348660485119610462616906658372662086292891167807118094239702035224905140204680714494698130389919541973785038081904865975085577787240342891028729321107296050543089013297158337756387871709191387058212272188941351413135088555664576507144336443949730050529477721562193415530225039269797919779886134308310719931790691405055168548092569113161729022884795719328017151984796364810281643024797093506163309264196901076102725799005810744884326277036891720450443522650781091482318772633181387710532100232650668126250773656052238060277642939532924756851252099882286998836204099839546275193383890300257601816761285947113269059498995074383483812062949347935285782480160866376539671077261042044287906848599608538255883505894530598670421450095195105473470594318323805099103020311552821769687104837782965047110662009195035839492515143002172331837665913296973837993163000585323556676478992649068100399262488034580712975798206469447521768214322572183774226196337132067560068344162165328074454230948031637387119966938002670912746091209917603288023404460055539542461997150137492704395858053233928535753490094669033937185747857801814912291073876045518684551211677743244114966198355572407354775123707029950723061702106907912676204236580565691138688401268967189164112335738069049992701431746783889623504415397259595896047786029638102795841727732824883202887456491419244566472631838830241727094159640767658853444874696996571582942123112224367745958289926102605010541613521695394123230001162250704270004832367435026814445979386489812840119773202791192744185452870822810253676431123453119600651707199379399984925243006388631012443089341264217257923009581881275383966506101251578145919777885472733350564139461257132849673132696700873844759614014158001446639430665004254570226279621675680215092171566380268257875647608348879053495014703593410825903436969411770823890450648240755712336777189387923319376288596380408309260404231447725169624638959897054404287832640678746998007766355709533498320249939926836441519559742972690435793778598040202547292622431446863228759276763686637346813961474706887451503599213964575865423168437720354676743372890310187154425726954136282359593401449917801767570486121371465932007150262896524734178599794784818893411882521152776886788397197778659036025829883453048465942557106454191252981313954407800971246876493748789373271840269503197157043190116307322585570609937469275316191660731135288718429716384421898716428038990539485709482261908241912431277680870107183326497867472916074314698827265888588423953750608164934114447199223370164669998501998669333719677775479209167213659947909970295347947622584198541716663184088254874843110770831480689916942741035621057212640887313654255856547075053608175792620526166387380268454572402904180639683398537195645173363175939822595684348932178885606137992400756092602488637777592128365546532023409848820256926040233914486849805626413287744931758298133534858606129121772035473547147344414248736790515714417606776046564717627633814799668311387110315031430172819049914958460526524138605817313371118952747416030016304919884883699634572786976944743127580257490452639400561285055209120316015262516808332244214342335261101794270685134485869812212633300736277234339926867314296650294510593726948163497887815956919452323406083308817222090855970582183288220790341684283694669264114117281444831472895123715644826515074236357735060539475714714535725212604967928137129056652794030053951777979087201694818904824138647535352721655925084787806387698123180187896595502757844676967105427525582599846913351663820835000658108200648988259891734729676433582578720994326451342395555579153536235466498316828530413079076800637565475364641421411107380708488365054254786960066494464862951019243433821514015334972939459452458533628581367475544444182037982950802805777956019227103670020649512012998668902197282100050433023036055524590988566598918904807219750664228042955259675178195644280227036950070073732240853742466158419791746676332830845660478046540717983391084654739309374092480750173980806179077367408975246389160471525157134001366186808965252942055158349142739470513513163049739998734391274206906851437097774027867706873329333365267349098223040562372884293871488557367356310659373644452309127943432029930003280565049051988316177938820995580988670399239700277503352165030893712516516723613172160802293851643838742467680247257460860310621367443135912646812765827544640449689694504019374594883684001498565846068530547890809906943969739397877994088696222168146768160136025261924546233494997739959350834981050368599857457530329604151705980820801433358498685480432938111617413435838788439025628743217461394521609090889205280802110168898500819296230058426708580916833531511138905876120542519640636318170838004709792002594638172304696666010459024310166899242851936057292569414971335886268682831876766960224038093393201683433495842243018733124346481502356631999061036879204309413936763232701610432604160671059750437047785146607540352733869051456280299530904130758346275790699844584901969921649503284537425423345801495028361421607710214257635747983275678852653583570973084702006490188675950825660583162772276611979159625641934800113865674490809876753931164269301297598415816879275080483758709177737046567147898767385725087148547847390661285593433897235454352187513773936400645490105032760966782492790413626129504047388986470329749520311567498188502110225996463198074281083890851395076528520726737369851083131264276233202995240481547573005970433690300534681866995336349684556819409131572142009084354866057454352704958413841410865125862706198488530471772664764763131716903866429088175128614624551192538290212863689048995037784396989897081119736059428702242698491882156016389244367832099278201119538342345998062601281409918370635058634065112895175722279952209167674769249461093644625369489782408064268181346256153444030539825464094606331856551943028089912318795365562769561785281757742243244864130627663034870579545458691280258036987487815862931515623990305763184325426353355697356940202263971046944091912596899261706906582615731185512415448154153904101791469155827732721296365593318016738841503677532682188615878019689476831471160457552389442742077843731753163856339123263218087505459075740523899807593903342231498825909813759818048655804915850803023823768343288630209963491717959369180732388501742825596594715061875245652166724726976542613254763349267401067888954122532845326156551123270390796577437350638726148450155502580688758289687209955012828648455837713396484960770614197014950013360454002931824560383867743331247624805144562159950662191851404866450351959790558212147670285832888517581773836371949657428845106508913325998317285925194359541208733493964186617035133992259773534453228837418329505532553594974829718375971984926489779273926143546591236840828902280353820277593697913890369420018223860530731909890511231989640026506160694097385519918736500056021364037492251861020422397421588154002228952732425889257577230053844109878269869221548357739415756626704986343790641689675638970420286533477813626915139803680921368445793301982823475983174829009061524023731405373001662852514238940734166183172190227103401128980257377896035076367749000652336364805990077264512139817174786131886729426892360191260457828295401155810111745791039412237083266846388254422537635129012595375034262233105552544919666344644864934515607119502318484276862630127651148447784505937593850810268838753590089376754141496626163343613598300347519900661444476265506493007931567065701336177519698913322336869004260223635582937998120432678536536267625738717455513476841782604341870541069485489915340317172258653805669257874566865419219604003161222128252324445777675759162718458367626529515016606234928463946955205094822069519909715387436950125179583619341675499221760312948478028254275964540697810364583942616587487739797289003807375043278538007203394868194112146937295674320440556550419562421037305863857298874447394027897657427837650893324911899023441524435299986327297944889198322654049740812213479534910691752483661424961477009080613513526766063616551116262147966588189447203806271430112911372732310783544336920536455772231442103014923002474460542906792276510808273535125959436892199620971543278988937819348018006799993630527368095145928864725265079179916174255517451995400720866646156383215047825777621019000543532858535927948674174535389198911343843060472155869666643352640209140906550899213352496328044498488162382381492476239061201611414905496983265311085043206088250391921853574425587956243112171979731216588214565826055753323802520824803371323172165379313800626438645014869184336884517081454782025888631935794409367496565454577429139056437989386550545846445284092057883417945803472260418072139350492993914768348506370636176461832109721743884250351859299108341657249605306476538707894711344697579825968225261295268342436540391082273186137827435354168183324909455934774429473461785691049633923000516072940744667721239136316830352790173738966654263537798442145994084482801141241732078817594984239065614304739608037081351747805597984727460810158214351005738756008608562045504003355098764301062660785858587338115093354253354869941183539606943547016826099989203915416083938486104853299907519122266120659563245834953401139224537563466175495843809969550298371823448312933538929355599280786126289857716307746276188841276556606704560339939501982046770049561821430438421927230325079539616294820535999690483913022370445712896833384018041159880305913470808225946525331043851129696721989967981631012708032454414107216118502919403292418471580903559784786081792618553747644510485541783802619378773845594177379616599980930440572657211571897224321127256674247661863918939721036307049618850359688668255387911431310046878796309400067277700809547511362192679571360291383797839330574917455503393616832007449132729379092836826415325038842014494831066199826647119348688957364621216155344035062462440531977240536538189822679689284593621367973991286752502631436168499107284995544715559061187531127951124078681792933399985684208743648585982027289928376017737167644063888525703848158538516544013935758697237066568130144093397628530737411820951207180723830037478665053500875220700464347569799793365954086924556000910279229370504088132680624992947504577614857799696869300655814546164248244407979841944810786132999925443871611478002924982108504826607477328243549618826180582083804362468655294561387929881317337296383428756435078061297717647592661588739141126459141163087105439773401419004146328407565474517289350667259641886608562183241314494071499867918724672279858578718786199658473505132116801638606657119216359571816739362458143949782863606057049686159296385016568362919348610070161948682212713331160183480606382297697492065671405013616149487825773006043952616721504872933037401506058635298231253693373236317839164482128102532222063897815831103049149680802805272739096786913553703844900042618516274906718480176748065797660246355363837580504065534807087868713134013518559895142495215138846839649117170094083240210390431298604677813378989959664918503465833968459373710279785307033684729038591044100450597366821999577290167840817344480992817187954688187767079943591310733687708832739350695786875691194701200233065160812934699467184203878789740734717708435119656083982098937858523437158736913190204735114554054479541623098476656019033622547314942573380062587349444638333126333361919040095887820386296872910563239796471666403147145944412302811531618705795062885846852556603022270368930468681112680837503732455479051172914335281674420806870341616866314145660923524882037237187832871804938710914720062354650854250616815944943810503572113439727848677291954160637156099154800569789903133654113293441155679118794346080005615263388274164634587398907858806535021392174528522415190809120274037216257905607395384445807870955630608253884362986535675576383908369862179490718246273913003979684020143871530483628170683184142196184034525007534602426762654591672443999563547782838037297411092027865391034563680100865072190092865649457072155023582086478302899869440283889973015672821270832812131014827378510145495183532232894128801784069735484149754791184014109250114562885843519709267197612901085492032129817910457414455474248834022183607808499789372967908996178219638828670585818199100853597616702015802069954791137642543311184205482723823053636408879950544954570045033836477829077887616267274586133048981123426681141655234712090736973032421124325119649000506643787869474106358425232813626464846335560462521613568820993033116729230124892557541569028860005271417468857337222983042007841143175808148595457685363728619532102196390549926740198801437212132786363335645249459367524881137673726062901827533382758976664658754890826012731099445660480015230426107607980779359422062579353928900085068830997342941794195103714094536909635643614086772281143992957974866746339468989194890536796739797635343409128602282031933272941202780784849396599725554265053540888259540090383737881187914294682877210056099959234675580978514295765390178360603640003069399347411256137560329695891399866139707524524250685326271201939908906075700562703865034788987337679764020212921104797865192914568291195313082991880216624399659855010846715906394853677699746793242641403902598836172718345154701990637062854206561500781948910770402218037593253532327303189831665835841627173106289233326113508318523562603680266225092035184783856453034273279931598733241450914627133083576791654805572841274563114962303554385642362890636222807384255176971773549533869395859841748054587269735791931612625096748483459074477578827013857935839630875403086469103105800284175364610576285866546104061850977652046577393697503971237175505995692185697594919115709694899483914378067517011390629696735348192743786127737711204652215546563869151870122913715762786269154673394197883178579837951257001089026750397429479656140457005698097578851438849767386655768845879672794787259666211848095061584565437211225438719280984661342784545636552126851799815757315063929225966696784672500799427961758218035261877345769090299207975165077234547470095384386396122206313085374053162660187507759059690058398641375778605491466443060505893035724703793046743491528735929466975885994274615374327403419536486484365013361230274409660002922833757861246251008058551414021668241179580919034492524469625737836043768823800141898850124694791071872652389916452501573453559597381037301805286152568632110197457580318021369871324852685222360195365429908970562276820377719757507841597344311833721115975870155707685910536664733433043184689724700523724495073651230941276437506980875042640296487449753019454572887600786170027181450139156271050697904351003754343166317463120870384802356035712866227497035350326931791746524244058045198292114955653864961894610566516127204293234940340730285677464136690190812797033778644760977930729099698029880483202586437639013939551343926394626146031420041533227556307289873069281780467515616791933298853484193350129931139058034381749700554752782673631107545930986351887067889497725532716825846702187734494812024781914768721252735239355110594457474622032365459535064253474294910261921139950755400378851542340958274012212249870228774073066462818107072188252703635893056931280023698811407233203283658569925748144855991950000285231630350643139714025609454243592357396601480635798442577104079504415348735191761813256398389642746862905398826513803937271343697745863265587936861218691649210544380850272960521671960070776815608434989080801196601466875999248491387385810859059918769780531715322177166538300607262375952317683680502757873717660177378865692974622286423434524831423926620654845445631419474340126440286948598720326541817653510198202132142695723503412170128334541614354614865142583139369534785658955610987980293104652035006415879499040172887992408497654343504429095684340720106494344141891999656880191781573492450850407754096172263067159583808261720684684783241291683988302740125114122481611275862670887947416384857896768038026563846198976208699935705811498681363545685190422759347191970019868186576936269719116204422038425006699389253669225420248501480645624456746774696018842072761293680642078266434878636209873417550796816945822134171993166730046904712432224887554770546716162902943427057511345669132606576161794258576623765581758070167987143291266241514219210227614816368936685115963798186122966935988149507994582223539341252348764187517794764748664555466635564722831947636096086399998032429672856005977339254645696847939923666903997812086486426093892850091627509820153236301690557929762904503272225917271318672074483220220385924489261043118577034372475150413676425742116939789727738161762398366612987376591307764266995780308132108036490861353194536079970035667975951279654746463436626899973101093660707558992570264900804386399143376790001172413297065246577966640578784643960670081429287864492692735598033205888400044014470703263734282471554295891587664375047058728773314841951963218732403105808638616728026817525129365940789285373351922947460249354853463596817243428921094110389812513842841930487742705490348790686148355269212986333088206142977737943535535566786399468846112314352507160868695802182422040305922677475503938002308513356027237207835150871847161444413241001568430016744093781275099647981602451532447604935478462053067380663303302001486139341357878140960290342919680168871042823457229191792077107943297003842676233069709715728977669857047272812660498795775671587480614353801069311354678546175613513805832462357994755641033922168117759168893187990206054656193479637031722064895183516129550827720323507277080543324220522302006435358272062119262972786174807167774187005644015011732918172636507221861681072563846794606169963284866207024325451477667013366271367783824256204501686142452595153400486476150918006448156658637896261444813094989673164320710267679117421074017094256579841677936801061157809448646948404670969074637470786503513447285480679635142992173594666058573006434810033047742576924136199250472167069488014156191752017868130609074581556798258125305346847724391804806479783687388194858221676672031986444894594943559293723637008202374460801924489089212718120177424091310414351390395797397623927064923008925168637643040497648403438284498065397924206696254141185131414379449371162460006778303376417625376556553622315536264436648937558146990668264136333154694741832732597067088274619106290490225805516349673705950389869777477078514997819373912548615636743128593911414223420636281176044333537352324145449046823956133055128627660408998207264912827807061195233286943372697365108029054462834386071688805788566007253968810619278455510474220533633934172141560767543958926606640745148795196660314099447175874232697320397400229665464456333052093149361599488395012034894703990104989941839232531811166490342371573500143554744944253778102414294035086956506664399195920123226548821455120694407527539420548847301859674769408922526792353128734212169338346817251858886990565370628412473442467327156739411731426064749198206489730752586568013424907531370464187366494931350294519983035156761094656905302219934723305710479274951582730805532067962236031919339185778230013990674945008223343955435145620260563001840262430938695544480844585387085138529618903089397435973299335415590088568438790818018678421505929066628836015257789890065875430781116193276972114132137763191706570959630748061370428845588490056050446926051446791532233366170723091776732058760747842321894914567112878442375037068391349955214763999063762529435537661199542012247103290206991245854122174896653829430122582211236967733104102775069810010337193848313083013678466415694420858883949303888080231784465307883571882515450761023709558204723548553088134834111217757486225722839326187716777136968003406908379503261423205542286688604952237477546598567868455415678266687580895685218462641407375053334086972998805685537658767285508301222826127720301702839964091977975935681616129264218859058364890930536054977811029469900995408873598990797723049599947485061594877590395928619301223258996172977301500653738232909770529613686977126934871526303851149982418360145783741671759778828294841051320808859212589796335159218663183820413127235604383168802642883086393269805056518576088627322344239675950414276350016016472879212800802294980331207638877442059427869849202258816952038992216632753094206773951556492762525289958495677955196182121309377287510660086073128020824058340400369076765553694026083998583631634345253055721229617947571957774940524880375113369073516696374695265757158939811181468682294547218785072618989664898740325439412916122145779576228726125576096402927259707535223798573975451294449617086902474090803491070130104452050867287976693821369669085839576921909266208590422263030388432633012550176357703696463065428379617331213090932438577946708614791881787282859327404960857437744106167954186814397505214668142681917758153337014937555027979798926313688544316921636474570593070523406076398378417678917977229346831985720870082097997118658028050035374509861849040570196036312430597551863674841714581397317615879229552544341367569644998575601099127632978524748376471146796709236502246226491547164198884334819322498517964897128561465391332536539880040931023868693319288161207542590509887437646847454974843615005000305417050932227430497108046040771586959984078081559290432824866683600071196296322289999800875435780496908137903235031673367473711228433612337641290727368689018406057257155314586660588385164229248903044910095078729459040855585327962372482488514974073534858898961754776324447568928765798635198906276303266353130515170167571835837550861467033040680136945737417111539150125308116184171170710280378750418286043635806750643127208985618079883408354360435857582238525483836394392789766633464398176580138629874285027831293931980257620288309113669025240362235672099546106427145050817752192248433294787611383090588621620993885712788686790167302500026351888961128522484175633840493248807372398690300784073813227999195989769472756305765597344896995117174338087896327271259044468539562789159950755342415259171858052276272635193197711784147392313037979878608681742644222361591747104304944084665985206546036374097513554142115862126278337369242743885478273427974015028596089926311004809027104115832977425994196856497165962187045731692483304793315045094839526789735268507286693064459546835190281021753525314329217392394293432554745211198544586826174322252051627481454150467245042831649216164192769938500387393075985609021400337572472440925045894855266111513869336789882529986273758008323063183600190738216232912497372478537663799733251652540125465848085809092089735814781356508530348576929744966421827126170572821425708145100913189997374525498300102164800051125276917838364344026889368062323719941518378670119518419544890688811563253849162723171610002300842758463809180960101653812836385995799737342486610354648365231561594395199239070665355646265519191058265648116499962657442553230108645625288324237149759710534064432007879912619531081335337344689669051464668207026753791444011015276573357005334340542186748791637772644023295874572276821674547013852464793034734826537586418642691156798798449341202052785481920869268804287258977222727702262145634762758178085440125033036895384627591060195448685991100920765985788832899468530195325867978171893702868680927518963985973108693778371857046720363746241926010118626386009707684403212503940655998694567356663237202951918760908105124409541454000033985215349299502014204117907485019891848448717124073382260571579874538133287660617832640879764692544849593001501143220569451588446253806235212922227279100328354547918064066071308741882894602117305740903281471925696480534748289154873845333346449338218280064563431680928954094080921028163150154964044906995923664302314383709173194820673211518269216757020945849050164067300995097464079208063976351214286210295231290680605653726893523145282344876228055419336029220289297262223854081652705326314697105520781309713249909725315582304759588904372555933566233424201129991709448566487422723807769838039896917424850599275457045210135730704863194770513994348466754760969125200774150301371478376123913246054582747523037601593937445992176036667898487642183978643943189783841256864303373714470259730981972098818741835839907627428314208911219134228442318434696927245525289100285998018404460537138707291671112566849460068644595809585362951152796884719529675027679641884700696758182877399967701365440295733515563538323570858918204125642857551308441710202483658625782392492679574412532297755264666973852967099805864950068489996461333009007356823091437253555028818480068327725141947771823118299552988196324720282280577938231150161038541654841903796741185956308164575075510330277963895454912360213628365101476688980512330909538648348380374868666710708293697713072757995458611278922587036822742825110643376350412146513588968139029576427627634382796715843701920652872688152306582872989776298136656841227249894559226981608069100808505914272411979074944261976670726300909213737781659192304879999653045844767007833183219488915834847260440803010909440822939763213282454783443773189537619479042471757969042706148015755866067745485441794034777271120161989094783166095007499001132955372548234956559319624219080279562042564756855575953814488077182632398924737565466753008125237079817978243461511044100991611240011428959378545686502063557695397482183914944285472721945563594069759869812870697468662726101646685741225748122200065661072251058643487898425188979160896637365451892849094209013344268264148070428916759312357501186796081410769358495241537298593608815926917857833100448718193461963216414840066234292224170172557445690601389669252888307874261352313865500420467752583797143085713742162905533266559238744140666181562692460704392357438569499760724037784644964031461727758069533137428901072387436697225988088042565912326571608201521742138735820683366314203979015911704329040039698694192468188674745937192079440910332397968373249764649558971192935151576173301637073855047477596438672523812091932280976195857778979190781130485055202427690469038474418230513300845145276137752476342557541511783996798372766729154430322674706502554045565884492304457736047389669561349424007056993069907125682502992452477075653147466570966513375930017379599158844708084663942097483230663929997787065266671417500638708087892951593787375461948362461744091047390392789008705490583827347804359417834168526232855733254808114994288550251940483405830569689211636983844795006565520839848593147910899159009184547868176330505534569259495334180364775898944684630970931149303853470724075559846715778352546401987673710085418710928180980391452374858031797053703444525350550413364583455903795185393463653420335774762715345963388464268933530943861501810789380716198516920359692874038301119900154933946138678649623644479810265594466668318070726758536650607852540653443720716367868566908729638215120932935605638682451385764347037943305135182175674122630956133914160099417164394032217719998643270665599171618624993178508560663605057065953134034069317335841950316092953718485421634532548634262370656561808110502311157884944265324997829563974557928902766552001769119136463437956389856204486600595240249252288221298801283550054752673350796833469404495746162363089020911812436734504774862127054101579434474453513501046289268590684035273890635227583428918988417238881314305630829856824387379025840269383266443201915833559253090753807322994304474227197581793804553804745149729925397129687347560380588631327580059664661481332983774589761351434603379336657278685471313337126067695328985776838625885030675856553989923836357902045018785686339634013086471205150303050907794385506161786685052835853131592259189913911910911148877723403717939502836819491164479056488742830072661473556765812484896640814709327499123352356185806970844098999880806788080462848881159864070192507806889582068656489399990111234685814508210698563215492087012493932854387860208535646031858569395762261302306019583059578880145864154567103178013728535559246566101239367866850841561293283224777752589857366567387224070707822867206914564376868249895168926325368992625443140060667384290956756554231198623905920886108777879611604822992676157360652491253303022653959241782646283693232043381774139911340974028866891311413971579814636885719487126595271941075871570457753628247223428876984433430046525816946333748560263827158081663191151045008693678749072319581195540986978012771634464871923074273547030941831398471137933043203633525520895213537545388852905853976311000809205436326158420362045625084692232074854261552962923042879719083143011881610358183661840402544856214301471248382367395421631308033227415090104840453103128948324656481761305579573785304700219094908814524930808334279243789323315160895919544718124018823736113291461015065237575858515774353728369179563778361332232478849502462573877315950290518133604400595789603223578523938100477368946109449377492763538719918055560898095074320725587846584601663125298727476051628492171313722310880043738793284185808180985674435085021701642491114520109510573604607442896766899331989665482544177546640827716250201275851127009163458579771208599884550533903850337834071983259598151110090548188657524580869761348670994334514006080817089897237701005997756089113113245007322622599845012997912555088929029382734199171763573089818525494244946001546098373693731403242838419854693865993122008625265567260607715154821785718717936314735583453585556457113671443745467090489735875074921064668585857068713670985776730672477136761702171875097526393782302239275057467905512990512100655345708126920954992512442519730962103194388362495576355117492379775591213253027015881536500574096428908076470836014883939228710518621725249278649468245717559061543510654959252699852389592362585417605794735226892740377224448834102406534832172624344100191216280232277003354532710252259668585838982409347679711581031439198017831972214197849550899374203630564851089410957236644681302420059184637774032913344200139832918892161752660520027644648713574843031972133052006621876517721055288572818728197571700792089855691107415539451369773599495522070245643947700037189173190717536797070204185323066737575391151807739163294658441631848725893907440888506754930298687617573378071124348988918248667661354424214907463343840675595442714526785618724014178943587567553293605202524791318444711460096649114160785859076746103282065212158556987040522899133226153897911837917965324655104308322111619837823844346675270876815015698764726079709989802621049294890832423817391696851207947614603669549607481954977415142146280733315990422704485616728187421066783258345817369147194734195089961221262314093401286121207587560154910780818619825621446409630538861293860985176807702688461599430651435131480695744193145680409845553901586040625923910070922118853182055698497418792432224072142265081575733728082156558477990416684894045836856656933835006296983713832971330728238161184169943534152094741303626892318818915859119563494478369026623664081666988462159642998939352663990107391248715831796504306791370672006561499771174259002242804491363556175969948210186233868941897403992686727556861290704917459464715428052050178066545803552624836011290621582163021415258933976172940448630540076142393164616579929022989357814263113552081885902366567909468985627276659725569744220881111530119837620816490794541541335990860255977310245058877628390658371258913164876610558095552353430323620977615623119631951891676337014136868757310560224512650490301310438383832777712161353584513456955213654077362549693473811414320828414441713174294354197714617639417798018160758281567504638611226445076939513759358600935330917182773087675444468986219881678334514610741803190217700031545334385768920135917333882535809571929262105956648374843113556964628060997293171229847324414643019382055887257790019166273209188378737204935404493707758602920358847789594325457604548760734297604208492819650908145302111530526092364885380527124251701246322416911957953023772170240314769777829388385305029545208798094823541110104932784247968030062878759471359570504858261797775829421453671298677438493069736522801326713948772487234338891833020579243039339135963608697911020070532808625566501883750446548801137994637242253239116888141700796696822200923838168325233348664357365844979714478729607739421948810062575970948344950857134482798876756019292151085630884546598617224451190378679812739936774739592229807753286343471068049317811791937782173296455944953393094978634930849303640664324982228807548288778001111964794255586835305004181977694843708826398973749093034096465431623211020427308527798764696570822954093148903605369759645560622684738111746518748435513100981017325722530495387030175384700490908441353467719359360801095751605604456364011663002553918305962947171407363025771950835589700799494672669272303747828087657008595355395682162818280115003875906385613519248169076653560971756575664662049633426408902776240097987258849424967297421471763072531348730687053076441915664602056267797355238142490420733767974047769648011340655302173358720236330701371075688679280893682804627535405498117924778197699354803050661775420941780079469776635760513496528828689396485393384524349355448232777165901843522177033444057456120280717727198417651685696738918626727251526961963472827375638658362124277167456948468779921759296838847399208064077073416385508578895853012638637738808056711399965996620529118989549056303079380688341822759017633200769450950460271451908013370614808591735840906893181927727934823850702004552321318860854998794693235856701851587675632090816372309312866692243741252261003410590242871562304731858628883745747827667840684025487372196721114554770756220569537895730845163107308825762124016117536224198534521424852238032891936271872270413019009899474145470589266200179984245988020655194326446895334195302298052773329837150741972147432395153029033094693038734147090855427553785681029199701870987088967462838106235585960865202305881423791314412593991305946008476873851302513237410300282109213335637128736380661517646455385503767064798407869380571171968677786235481603016167749717852263318601576512264136309772656363709752058405141100824610698742973756292368321740989529573185749483321695766855518839017535873730725661144849958922700845136230274275724914612074128252184470856017177388643648936616901718186293270179754669355755212175302153438439428693052214107796246752767048739095048248605201080869590619903473238907898222700306222340910820693284650976768252154456163660646220036477046693867132383595866311314514688577059233852402353781648387834087730962386519087907617608314514490666936532149106546561665053465980683199577850057537506025811742064138815233197926018936474334676070940752499191126685566535596480146495076654766945065213292288042504048600223572213336928209767638536778298117533624740367780503206396477035628165726528182075085487788978513010241275227793989934597951735852694394892640889873725417263127643372304100953128537211403788716908950774354170430886866064064463660827746494686300215543737766991102367638371371689793578595497484557570668096086090773203818465472488836219330530753457483537835950447571521982988858560446796892047493330363343537482883160667839196923168819261707742802710435997278532855938521007627519397513131610473626736504832264896935069288272614919847254750528064241935894089187329459327828706552130955995332711297728700378758468680396614076318241688496019280923521188709493818769967176823880323642841261227317647740762653936338654566767260996807802647382782693789263445259589374665393599389295273386254910339410300239364924328420636511234448836679630627449400673408533578102131968246074794228076581684869964083414396723477996568898578758693545905161499012914809798301990930099509757198594308573964977373148308193754599817647784344161505349423462919744427967744390017762059699451163012276721143137533747493039436079897108703111800133079704228886085136611235830921234308763544086875910869100893258724242203891648965701482182226849215164452064232171561389963913454857088051824135814635513285887153833286045683205117876989127344348670040614023313594346140345013946489146232411953722939900577299739943796361678130857980493081247423380802821392444244408924251734958321603038706441789844906374647125785996936901116593425744042684703910904988803316139033228656948523947790835892356977815978899334539889902811831308161597424843741091723625350927856389476814807617376316159708559730034637520280057345889187425176806440686303049942305313333048084572014068942172688792141417987909020097311914228319142966207042621578214442868791803626209605611650319927692691304668084111083498571491580948385078976208193567864797020641109548238959120326234347148088427548523444703424745506600148510455888447632969255747163281183106417316640432072553728933900440595704324787930981809586083985402226070724911725449392048824345774498159436162324458016675288555214698594937975493219038256874287552922139671708009802094293822906041761976521170332687657543411735593000483306331075854535592624472061528785642511125747920487849735801233989735151904446122904014879768723950929787961583798372098961931051309544108001777193049300650263571156437505531195227441962958026623124890580068809365940207352387932969514045625481360421022173421607045566029173539652437634822763606054235118482992253816313198009860124185849481915852096243913712425792176757578115660101251766761157848746145597423211323313321383246418466908424812765392644807490767907417452132743520132770450622656621635496682390207773806930066620491207928393626726342621968711885716536152820586874479780137196499164678741345237786674943993703174759798384245150575015564523575878526739934696160519050776548435608398045629229184452495794342100609410268125003982477616638144054692285535350355020868130182071831551702175340634769108805553140446617167962990841659012922976104994469541649397771912085780932852958803143402083618080929978884700601949790807419173926784745213567720376333483192802338621010665702385253480847151343903676501120971906997901165136347917857312483339943731832233335407791981044628741740157699255390614506041344734015201168834552148019280659043345080550492641462490247381487124879944687323144315283658016100758034452405241176857324161121197867575898195339313198588524831017486957184780903390404049956186029218435907326358442625844453805598754252737670437965022011297254797391910663234646307260252396684566039608117492785892480823845395191331789697692555919003607252128254119024388215012435915329243184467598367197873819328551374850518399760737690361852178373121133267309460638860478763135597403388169144927606390949107628868881652588000527426550952028833958820221470511622322591161451899738446183792549534807082731724126160515772653356222761221244464851436874656047176588380160489337994804058594094504847389576889830649763911272925335369752347080996610010239327101884394094937396594412125828808617240102016953848114643121779397302672997614763692906023581208185675304677915377436739698561677427191685142408968733732546339833476157340815093844501444640383315923481654048300743171981390291677566273298284037426421239331874283148031016920254370144390361241731108141502400081126731457154044867435936921203460413107984521492329875574358160268085629524925930697918428565082628263007095561347675823911036277001132113343566518672609272131084240713730986997493398347031289897835907729293603126242274032701770135737855753358424517407254574135711259908320372229421558102453148742710435058978601239378267973294160234403454094964293622659049777350683742802807416050425493257027769113859229465255707638524066539567035058084832717729797796415292768627972042554402072163455921987275713221025765658500996098711691353562724024195383216022778365402288575008769158670434777881499483146633842249078748520535219328166468203683992194800282512755841352098294336388559126939668847500727897847947404174080031716135837623438200556024336186181054187373991749891183586960065919180606894782295341731306959285822961891261463630109043117255729736864782175848704008003233701145061783273316588946275113683494290812056556846300999631456279046753077285981937634058462831684624838031434946859570472251893951121794798180635259557380842976981705698162382189232515598102286834546861837680444915142655530241357868798276088790612416521095726838038932781438024134970092203207277679162998402363387751962495665643266950170421040645977681342199208919442761588319753142429731693426824715428962801599113807775253644239268645222502516146066204285629563775222580442807385375656048124188639330639936084832559792476314798828526188272143995843303305817043805308422209785224121620431987890263463998184725914360420780363592677557909571460989921451822360415394534665276234681799697758307327782384854645527698407359476728458462012389187674007280479065975746079222157449328391470056814933569069633316295749278785913061204349328835307473984723988162514187440688839716255556199829278684199305358213537431238298707695302986335870073566907158659797136343227658394536930027679055097185425837407141337883064032391851231762390236403748964248082615741368361994613213951757209355133114283395006808860807547272462509731091043123877977236698184092248080761134093632718382733785040041352977906114212594902538693912441434646977418011250024790465342756635489100736813468618558057941154475398542522799621839254035703583957076597944157691127805446071739653626274254950531943798677652512950105320830132290060396696427306902455714355243894666438092817157861590864243278524566538797025911638530943248638262702008653404237655090386012968087682319134147891294024775123548480444911999737501533489990335172569531533773674740344513724305260364249153381291492073400037594240884561194679105152445891272389372627643517424179953393944224907897993998800856104412281060119350087078709428773238102042934233603308623645041248935855820270237808772246584676079691796866399914362260365490489142029993135015526345235133033489150516095374646952135021402204964847114094486052333618661928621176946367382911392844678349786823549664501943521755074131523155686926410178345315326723225904499451549535250081437133708456093219627355260847444083463638026077639531229826280455395332018635135824678645139494948794779476840029676781748064865781115948782805406438246547154715988801845891062774187318802648375418875259899324694761813134575701871132551637793738845589939980566551800817306307040879657004245175977169993470151782918045899477943893823508051333583932313918778279232253272953721371666374644647429151192187997407239517572735201889172645994024756672235781188552182239151603996526816360460170588873163311893391827504561680899324487368450015971730503412566615658379432547390406900988772718502699026363083191685803340800463260946707353419109891773223054776312294751761579992716192845276212709658412258837967047443542600675896906616820523654844562791230629688383473827437995133358592144851796416200006946727854902284725669968922515071678612990501192122298886790026205410162501960149762784133970026857589773507180558864980814231025511790651881219014207190451136873299030047561994751758418317219088451871572554528665607864578489687265439334963008083787702925374644999124829100571549414126230048252671384319807574025891383164153334688948423682935229734259408109025429427036189265840094512485235098252015662939708569915053562373059674983426589869503933486008910881568506358798840286661744408943967355362580803455344578927363177005161704793456143446013118974852652989087948166128884144445005883493002403729577665020283115710671417332225977340550635455177610325088095703855024415579647800972536413739163350200491668001582978364368326054782751489521283406956583331403026294365773450751902258553100833422159694636427092918031553703253396861321654140680780564096781927373109771702572047297860611573798625702217916852210320357864560240494196445634580824230166694918380713735546373304342134787571796971090147100045846870720549521325360620892644796789131674251121338306552693252329868897798227161731776515323353301495107383115616980800765117927428633293723769641300804627448213583431981298260828329001839866391996141195890043508453644029539226358311882895898576537124851930226282937112198860743632665465377482328046872334935677303618750201487504427149628908326827499567273632651827933237797068564946194761044378935264219812418540299413823755684323314615393874350050382667306090928770449051629497160001689572454950566066565274369152136712057092872957913816165185207080320411057574270187837571075154091384446225711250532954437852684983775608016210863933145664891115799156879932828416799840920499273619783807726418921724272939911388321107682200883774368325228236860214203638087089067199609194943336166549321180985803109654040326822079507673109568818136497553224126434540274980864286040701045914156619919906978677785546195604783506122679930750232507731110767787500321750284259126709988031965602991245129745100796937510137369641715732509700984500914644845591655696871388020214750709063142686333136771323587905268609380106786665820161422289828454401841689493076112168262362621675759055818105621132616590564577980141689250316104851099472767109690444004205502028944554517286072851835662810158090927684501291227500620595791289997692525810453898027602628051978189613656914938967099481189046239999914337512484624413663194343862084256672981578559802602992030398160952294846761089397307552918802302777882680218929323019969353261214161257854321060099239910168593137009333047886321743419977318662941948038239970393333236874411268716274310353974206062241175100029112171624812318103040542908230503814676756838609268047095287405497495636740347526750437596745139723980663999178990264790828757071973752119780117233373943092134728018173188512988476179464263865656897472532125775683220759803785021611609226506992556019306795573197359868908265183591917034992545726889763606064522148752444189239108050485125973899159054202767483951836566325640779147533223430852786107961364671663425826114997145460436805934891276461591352040751115961591635521955240349118051115869883504471628170261375498707057014762932635082441628661754922887124231433299730074429182011769399072995160854302332422971004004523389968831168313734327849494000549181760291489054356596238126574446779342455762889000038286613433933418075483065583059481001705735812394633608134845908911733837265848454734991877209027489500825381995082312070853373830064130589659843830425074121604926821919644897094881778450275944139228839588924899795996751696259196845889882570192428280632704348722923613541491027075743082202780204133174391451166650989622632676096151432021011372242364290941492148222724176066785930316749013673702458356858041266663681345115206164587690839587976934765959342630473153336417522089387029930333118552736945548837040622416695112910422053151293712899847149368510711841679332513239849156279778259970121824833906575585179725820449462090767810629565127242174257638673763872420840721756933326922422160896956473860214779427604375063837369838952571132334443968865499363323539220449720520095545938452958534324661887200457346364878747459820890171572755780161950295217295962451136797823548206690242531572463338261291195730691941893517360194793563559148808905639775078300995159694676977562977716832284543666499638113646841824639001488708450384756268116805436999478584233630070001730045331022872950993138180570554819520498499776176244499683344487851461769839070185049170827671740507620565423774003549929433735959581153996048235364021412031169518865236913209886903984797723712850238762519792761919496144761107762209540999425322772639400149707982318332145671677497444214921925953636923737974330123981256824262309746343469314201919473708997474556191900530741738593645284579666221756849502268985361327675655762542234538015853427607754793263258380540347283563039894756669841184293777206437451501246427388446492512004875533832901636658022825972134982693032600724376393664934603876052576361187887734583201143721842841370953951528535469442064251269701400751417106456058763904200059812805475468842841037038082147783989078391715938872481252796972586348831815412681482643982632537674795224279315398726061406955362979898707656141687429946644778560842517950574627019074460155983450569538518088089024528134885037086951697132688330831723202372835475660047610876210985361380184074589276339063480910989329420393015402501392351977626639934219130598018039313882098502206690978205313659801444924424597130429216247785002854077214162345384000695188906148117218265657464496972038934683150288612797034406431456890672028244988966861514447196222352492607332527088812337279856787020939713379655484192857613569002652797365689638007402238373816000478687440382670980222239346900083989362118212433635535404288141314199829580618809417129979290653306917148253832784650921952481565022491228395219611662216898303321778885478598120044315571796597556182007874767865382209516496010949958042013831337955505431613910966984154979353758296362359063816063962881896493009906014155407138853058888738676519433229644001855210371268730457477384055793756596154265991475406549507401001061096321654879071882196002524334434602733542003878595413929253741118490896627110744557948038488894093213926404672398502095624440109443715614184871700648549110043627993428513135949320227711819071846422482517072091729719550817779884235534295601364112836981283606100482676719186118276422121192946339054721835939066760615428664537025938852508908476366736559741574684590041557699947756397537649438811386578888504628977863852767162792862357875657632945652323111405647860652604471209070950929533923458575489118162815731312388160895143238300607485542635390996532076485707411687080950584143497808141749896943009546569184269503212712525241599967272761017875918089401222967048834717077840186360986343597097503411894077272538181704307294345814717827019275953107600474019884679062455722332152139291586999253791453850715381279644986036512544841910175047184163936526387543074960413752790352204788452381123556101144460322506653223288048815657352912221242710485313283509981600554698705502586627326062625075081165006221682690955204310297726883049367227652501055065165481777031242882540317026686017472552849404104241566622493543596121059089526199279826186751786110143777300466420102388989623187525666957971105146430657701413836122792759093689141555525071710786135243271717694973694855742978456472403058214292493790537351884116107269970560996402992571101865510407669511898296670021756205726782449734209005232537888851460204641208732953144105745040790754697211845402111216393354334994351934566377900630055522313853885528439014285796132628224910981004412233565972462178356498805047000817695720658242624598746422149231898306954925142022044530201760766701928893701853546154177388834539430386010525973731635815724225406599583887535708731588550612932811116347806663546264551394469350677462547601898236483383751528474878774978180461777039029360876943051812937598911367081396672691864687569501766034828775257818284637332151936081691070628705561201880534760060615620028721768529260723883184591259785214032316795215625512482488424826137352422414983294361963584708064807014931874272072773012340961631004389548851158607355164959187457842588074536534475245130877902083879629454458356191598447351554669128433766381109027047432321268671455577983172674182202470551136888856844202369919920110491188212897402798553998804952532840859256645956923179461088133946061712979645359227754851929208819760601312406458176520474556813268764760498591059757651508888892023240340041775761922831139243945863050400504474928490712783293570028531503136131387707564269034960067472763689777777696705141264020014650612423286104649620826188406787442095101888844673477838295613093581640321848825426739973093252223454998891464316630724974017268502706506445639557596421800171840130673204523014891275417697176557103543448577035555697351966097772010601761692316329616510260067530412059981228642362872546993785023942123601194225630273375165044284847122484988660376239340540280713478838572738744863133972898907876222917874331290809592576990886864346678362597926004950076014536134734028670246918955117872836516307148812013442965676743118353469317564248806818672236305334633910488663938287190006694450895216208708304617535629785673787291424248546544524719650228576801354454251461631379758257801448509038564435518941965347923134965897163850005542748609300150483610863919162280036363981431873012559883625783549658689845344918846680682951716930705222161314930842463396498153397233256403988618403560626777581802261472764773684919003066445991464656711275331758467867215499742782071468529830777523914672050571786211513010828795997266154573174031586478660361470130488445060096625464935615163468095570152725978062918363632561799791589179912097083529928260131031251675214336770544937607166287555887409504905506931715556864640491716773266274442622153080096412538172869287979258065541281673620813696819079346685831018193344147683529799634459982842479080270272668212694242056482735167842060476905548172053485669804559821924501373953532579258512826896153060570031112403964656870532680416268323291103516481347446745443009589810905298531250924016061768959163895521493756720331976993736481994180145973726380671712103452923094026376218840942950644411035562284031581327445611583395531462056025817598556216512664567815881410683122401645668557751450910609438139401843183467375350378085326979770014140332540828898800964134605095844871892386802927226985352310515216556863501628809845897070337302701158260862567964574597333125050321703558481018972207278249882893669273486637634212385609293431285513528311452595059274388008683806465294428319215631942042709382138539334517574752328438563501179889718261944219306974435318479667226850034358187993165927055009667941634682813202148390012327805144484990726547993502824659629099727835412423384125242417158854261275173870002349209287142822493440318461700690940053535774012759075739488235077361508318928568193739277653603194698457468316531442694009959804743995604477879005214605041124110049868065840541648669552355639136407136740554337239798933458587161252878932370320857606796170584278438700556685919228625981846571052712908613961314231431950005301545514168385492696964469202481435568931376392508110736504278425979155962461033158908716023503560887290036809252398188482909210199813236078576583944366437776800027470680518090104361988279577388163039996405137787822823289491023841001241094664981898358467970338055126974778964057266559398359309916029127159108326158783909911752054482525987234901622468935364440032774911637313808389017788170056432541917721137429629260273302940276276750801318934477804287831644587622598640400468717368078610613185136718309542214480947929469325332909960802273129694371781028980120107718200423675253322613955960513623496601138619101440281762907444504495147030595981038283250087577036388729337867935073424152296352476194837289121394384875499929340395058589560906148884339097985753057576771538524187633238852120695836498075433044995863453204124816140226421584580768136409800984111547882690960695356314936702808321914028774151694158146889626741370681714310835792775733760234525854491382729032052500496552347047934827968016969230652786011881097950531556685032833698652819150001575379694011727703451197919705787715903547104140974449683538660807791548055296222018607249519795635476699511342527241987517711855695213141740602734643341400651635459757333305991112191400836916189910185030980708887975689286695646556618949886872702871329967627504753673812293555159981785225915475800046988949557393903023891957104467688627249110253223934115383601648850960564455411355136745573475951568837666734297299799354761243110109298693965193603243606279287417531875837434877157325771219706608759588486722944296787913400776069526666205727155696340821083870155498716871462290625632099138868369125123585984896684573630203478848464605164139055747283813297640414378752453531956133839473558090646310928603130080929996385811961180954595763421366127256024255709294173990049440509874407320473705397131751245231678524874617895558721386583014840720161941179528855395001963683326184310477840196543134853609421709749121316239004538686353470755150975700321000441279116581819171666523693495930394244408996243097915156863184689477095952639456880252485105009738592001965090851083034372027066888282296054520172526316475914444655151958624149914584688229908794791670324075192612998336968903392943040372193969808469976593946134058748318476212178795712826817821115256769949435459969130538827446340756425919198760926144377019686741837968571535983134680140804469981883124668206639514117497431741232588425887718018276542950114137257718008200903121333311874355409063531457348043984796670101693496483833154152231768780703445615795088542265675673409299361035101099560557248866847206306011036858643901378307365296655171346625028471349806735607369693802086590532057963108945804326727154390305413897467628546982222651718845407507504008605442413585163529489599095970499115358097419318157801719840579056135634719530246194019783909257611049486402333584140933671874169278389819581168572726218092717462440023358374915454773628784216064303628349831438408803822482995406713502203708503233580096691752888044659539173881512379008577745454255554894612532364146134548464807228906293987407389335653478758062737831042641214705133509140135444751107601353558269051631299546689861680164886805755367634764841640197502723788976619610667980259292391642527683731429031140950492194712307929077129872501963065845001295242838653805976600234030734202021893054119306819649321076855010857244297242793060289794631774759560725542229239126316207180869559172912821573890725212678662662376260291918321384856097093471231749662669733896809307178577697973590057037811265442320902451364777641904780406906858632269373822955000934495708320052236120744669735131110513262099524450856658611261072586971681826402868284481093379444490188871706078800260804846981258240004667207821537439480482998205303143205304308399462051575229643940691917663566830724274681098645958764955028977515715111948190636500121477588735906104805113193429842223096286664380814049127418442745335070538634080907700594723273889078050381042400819579712331991504874447242122018533169307091619661878257790593428792152537101338898930979978386354299824023122744612535653301390427623897425225020146791357273269534584044019112837679445990432247057644074697458996603340738028918949787532756927948102311681158857752610261636122109919530294693436515097871736350259019420969400167820117046334398841122703780298445980243575646149344798820704045803849502717760482720565667476021520632153092337594138179300039159295212233580153611382572592769002409066715510796728835708087365102766557660048229399039665037090295275065929894643122643837496589221409502981332404494838463945058259339488981834273287498390546728742571328553099621925381264301499158820317186815885478067242059756795842752843736672567175737330793189206762934858356005435246234628959807334887048229745637513384385461077593380868395036607650337525855614497161139433768075519502076254917367095494020120354628300590338797675783711150002263573452803512311612585249089779765465758786621381991825940661480302012591033054014845931406209640408366387291749168235710765468170046546751653260968957726094920554638963971097112133325043062195150046344055237585459703200950557458491134999957940049377508057338025112101779861596904450445910654122159726480099841168951350612574496765097359281731742742975099683551789828124667031864982488097937258548664135029018128805557932784307284330187071532559168283818354377276227510982714323005901170134221825581761540166111192601372137089273825112227886069476238417343282365258094820080690579809056526663689858227587252628033424621965299680164842705372853529372248372264978624839797469669200091390119615564246961213849586545564863835977231858164935823610292939846829561408311539758800654512281591028458767142475949791080645630192829260424253470767152450818702564644213208308822491974661593474027391550059917029765336284183922328457095830833758041619942191779641790945892517346673904964481707605213428062001290083444059637786632674146151989080575151003860715612573017797750506267440637248800064841249708366745953157793452074660247157893087509377041109535147141568578403170458106518915542949692254055450199724515931808741713929165397784968786813992651289898498629811565821889953561279670768143601788097124136210572113496201159982625166157043378578274875684682493720721375428953501064424489939001041226039625529403061231952996695510861843022819762414863300424120140445622933552529192146877453430440308389480188697724313276590166939843914666816855293288532766348827204827808467979369323294228636323687374284894877921359441982291919002989484216648953229766221769421510917662952310483761545748830156482357534311847165870413161332763398588913734908536368588466100793904653497671797350965086812389921369039715279164837919975237696040320672914894227363612876843029749814736931924090627293788203722441086721307307028329224613608214538152065978433671280505401258542916532059820557904063929106404758427253234613664392275718815714698406395282396369557864881360655088919476620207111332061030195463899533279088616650280879022922442265350118478509992350342653789851399934032473261449632512590898210316826232891651936228216724610597806458388029683472367941606136037771647037901105082269424636556471110050621556349671103184101601364811624455453681972195156686163834593733656535819767315397077047672521979316780526365172142223196636541739003716367008783823178556585594609036182222050982214361989388550990374633889103554253493966274330548237308336222068279008990050154414334675565697174589241619305373205757974896676504405449665628807469915220253356336563396948520801846438850119424022788601204064712231433053628735932590804164723779681402573092655062167393327793486045124579048755754476352359695149072050060346986222549272008461615587704761761160340775770222898905826768337779654770204319382083782765588943119066591996285800411435173667400014168710187569141903009150138535267864004588537392179935019667855443261282252592740795372842884878826703302315371368660792080729633724474637977152624404712846109034024103769922756807444957603990000094305497060961543575030591172945362148342890186842263267626062477083223239251607883107649692395066058882891053173740635633959217295405747312513878574768667670771266280069053732296585875067071733611778449251739768641873895396096746417691377960538834866187202975678079510453274921215089408788974768311490420291910016312123647762557517231269631379778357268305736028961182597259054384861624398959126808568445815685607042217973524717513889938223657448769588471154215090997581923847602842159979141078099010483317412826803450582867563220186637296520032358906217726104669540449272309844966596061418784773563476871749839212198131270122539013917533981503157683027323900619129426779694178013769445127721058903442134522021804050985380134240477325750085824995762055810971448454803475162158993089072811789872421233932318651669762553376029784089658764040626015515327374742172959224947084139330019198663715796261760264487067125703340630909206899072048094411911866247743081052059604556746108109897044863440248636160521435764118382994928875172240631789546490657300664960272093308031395758100130697565241785733308846127633572867767929521720694518856447340583015125517178068188605671610848867965444690809086765558408154164861606455881861266242331527813809194768117146107146674289067600166240029492959219751979839040626449282348936280669368870271292600772404339887536633199077219046547731476984491583545616897960873704332997693584778021341367006959570932414513130066440275138976258695505603488308826698736716089562774062942773740713937131680893697971289020701900711617540054984922274698165739657356976419509571129811056355744326960090146454242641561495462162689055090339393277024415276711620692376617596975742302592966354159431391229967370482763956881722421634079790816623409294229833579260034626183711568022508910314263372980777930286397527939320810253982243008579803626121044253784603030937818689733558373329908937869731846517275393104110906023015927670030484568451481755856640970404441891797308736721711684392607225472319221387523955732247150400806318929907942080155112167648317498420945077680129852222923443476957245116589883557511775102091681991127830180591446708060939109713608551730739072634537486088450153967696831384472015741079360816882568867824104681362576258549614125655755094055114427250648751739961448850471578975986321857090560986746512493459141217097285881678084503018752625246737271499258923287082674078891481965076677526973461062509912925083999316306092755407184757895015930032561495368030799904261143189100982207476569804897087363360753589412313251913675093711669898285531373795745411777239614227092021403815778849757194885531975021093614320565688226791456077839194559947455084293826361937737114134511814746426218115424829103260127834532868135991550163855818840267119980362732336478890193336933406072988796761125207634832077517954909008362760888159558388197166865989502802109926641061257046266961214819863985933370755513852880383958970582765699719596939399415001987928457647400332503116525410106131269486376029123835557217350552897716040604675293101664300131429511807710505087781029683717277606272381104101889473482635532810454920785316194799659662673214403766665104071781795686449762724851445800566102113931850517244445707592597515401669199624353519195814279676886725779694170086890913067034542186213112292858637301376418534597224230184461654022761964252857295260529597537430047348461461040475882066635154015747823360969861893344772421785600449089076376971028893921145756115962504628627010431374920111114078899216891823654461043618190714322871713415832480108050048569875960971367269571108443704028446216293443054316176385005982876035552313239840637317541649447467678373928365205221084704339330119291321572718963565122983777191548279750067760775560376619252585637205832437618800661340269344860018963362011475447449852710073912562526282396328293726374674080556573148819264176517560309213115157150755017519690493021260639163438736025362076615513094099109893605713049950924728810235554375388484834966396784588825966754634806905713120888609383224442397093432994362850775156240035364008901426385252125452343696012490997237389589617938240431570346736270712489962070502345588839089837935271525657066572370479665864718725632626579805522183593703686367829622673057798268876376748566375981905450285592630022644881318241131169823495543452895265803214603128810406169511148258489085400975446179071240200492921565542170846754401106239326638383756596230471601794228002643619877912802287711040321503644385457120037032929233335736164818101500190675541829329004387564968782983159477244362036713173613100316345367678885908937177761599054803539717199681874049003616305747596004232567491465178097813067993089016158698035343392166474655146471117643929628630530235138161775384656567741485826970516293438815765327349113625915165611520280570087790306071858723045032444599091464542689680896235827916357672141702229460401296738021011861765548416052140001639474455213736383004974981728372042005447350531710805434265094202573795317882126900252122663643615501929247850740390926246845651561501460222571174481460296848180925653618473411606292519067431598352367873456784092869372898274606185672711972019174183255119792693756130397521063848860424911119936951819835442347503295998480309305519515702902433534008833026630898837888097167972465529965153804853440167336560036893299200563363971105714683036592445438039954331740616372576302868555682489635701745569178875007439921435659870320840501104366484193177807127738424456236003027644405982555763596260408432617477688538274740084703572191922062483408135815287393508044741795146735472531945628536594834439069457677280768029765096636075306076792120004651202936492124907448674604132070567761552574323692358964358609907161441791225185783988411126612927727949777774106412577144493200969712471187209580620337010550329625616333365853570949018146985608168303943009528185497362761952656404818755500279661489517163009932152712893442097100931297705947674503820473377831277064169124691324576627528949079145148138470502218596205798289862404025119811825773780502273327699791828513714552664700131251519897989145857639307957528483509906317478976414359644187309937614120279913446727911360474337712368027509318823512069153874827085156636816179310808585179410842994547201753611459528210290562062972779819292900115505230880065214338557784370819930815905832057880591402821711406956425593282764820395935715481541391834658559279326386065073343912412088895062460780668182387344964620574625175593624591502414768401742354684714407389032158432716190087659752149376275353953832667875002418258776812889350281620353673107950073623599772124215473705059618113962467277728395849781769817852284586907510424363628979730235558972940962527661998067434925090233600908033838428739210398586520051279826633643952702885155513672501528506921546611024629647581441916186070904955904265467461789118410964252902973928507703760027668464409157652106120401681377397972705960407243413487200128411295251442319915668183154361708073030562409213613142852367891755235104442990056412661510501418982134293145577041606529916660728070312687438977936126577109021133936056388672388539354436671297154445287118901529602041284044909781391602378315967096827040490316464266072806550562701245269194098839907723705740569891301983274467045318128755786127120584273077000107342037764725942430911146800157055837855916696511167513577456050854774825861179026767776203321429707775681938883365460789234548156608518332636805748764194168762727863956499909594048206212883963918150122308495445681017707241801139097851563957831193411115207774862068742691035731233487287899826607907101902550081523816916488342564772392075785132779384503458656630071164807175700361815067551230313034567494840908779482119121169185632844018947339867154146171145837313950988034822276406086671469183648217266966564934726821887534074807065984953382365140512368323063335853269754648938305262650630142478316343586913065258097007152143088259438169117413990787862727887220618098588793367903167618691653218305074454890286199603840721034212893655939182573524641023159963853339187537452120769532399790537862492140048375886241662067448519622966012332971996683932818422936936999200303363062660546780827203584559150135705111691161248010998236367297925429687275164737152186305434512913120039278947700539640433870682307129352929944597182056158956814011030317460100254488541691311955105777760368097295655907323375634184401632685038301890790935138022540047428545955713391584667510782199188921094568253130237198043598389988890346346144626579227307314414474272073786316689663823968698754428175088503892495113983808131224290268206803839588769037945429686319360306692185999711153987847901874880774697631879257284596903461324987958323287793879962317816124199239024085269587048275382734050371875183063247679290421252909089302418083900494366693617083685122725669412677602529850016651765365860636090946946140715012708582704171636614108796206668631959448303299284229432204634607124291307157746430182296355509796745394818337543038408703578048996640090405642896188383626425596828705571775298254834725645874076852658875759665233862515178881437355535350833020752815225766842578267845237241935059846744949768182466291025712536969533905290160377735934223504047528672844809513520117383666841300798646294695211784644088489516161613421713797794373402987588389271126341836391614373806021155498935150701211939533020704164063268134392259709564042695989640559617179927263513620056942944734231277574546322702551007022635090802487833163598906806224589417020588158123594781804084787948040223228372340604548919530978472245439308728166756006847960272201279818161646030416628111859445807026163998393132595442441985525382207992274800518149047002015202200069001269602382299144311509463687329202294080657942068194793229860325897980182607934277637407302070042558852792420296842491499620315483434448465900945826311232813421956114671272743441997245602421416313578728784674701133703836703352398022846351246178912664430232372468846657984667327086017162223171435835350473614317569215980848662195432722909400381795271823360674845138390904743788725651375718320952873032786952990151130395459352326512286095114006012447908201687828354280593506382708618030651499457342659365212365587817897356976151725570401126553860924468020723420765730921476117771197974579619658909199294610268145758621755493004969028264425202128695531661858041886736556119156430673689452867339541458245390880504375882276959119955468206165309934196110027632952914756316381167205536672975656064748033397961447749284300048941740662927735288762326464765727448017977210567325931975171814151112437453165354641143819599579031894552609821817854699580288216396228558641260883211105064887522597192774589243130305544701364580097516033548018293921177566404739203040007879792472083740359496905115240234915513893596355299227332928098857231200642479775418519481253825460198149202129544188478603677118339216064782992360494146707573156621427136508236569332832737778260807660942975203809033748533484808985845892066169512392621974164097825378618732014909055303493536501227430613411096568203239659793471088473238259660860308260170545999792638754343261136880442302429579212057294401419872631450206993687868680484013335162213409989341008067022381773244529997433747785454845311538477035683772498720851761102629573680174943867917164345515006902078994784806482580044775860307730687232567230059869460049527525710485802569686899957757287857463328458013270028618747891574498430539794934047100516699452352998466892522432879581779290007546409398531043968514178157678502977964792429684115455369964847236815419306838082356150036188514847097663742457755610079248879146591362585394361393878070870217164658039177691093614305661315446619198753655499096241643800572687435455780594553437248604585840728824496725917019789787442813675566863840369738281812038509399323816895903795186111248176851198055677396808639493544513219598860261513540567086925303833220544430438212941967056884281015522376192734144288155207803387874135946719842235231664938767377406866800039394733795763805424974210323805132089981860721830453700867459224883618803375159023696537301845193707147642864701770176033007442054746492685404796018608313226302600074466190196804048729449435329884673231698033632815661092237582090892983683658034238256995149882765763308560331362206380704445830921828616243781747607777826509359763613616823883192017782778115216998812435971151645691214469948410309449831631193871580036579401699945595149768072128967305806998716119841490800331342603890867704317276679661630580878157395428200334201453675595935753248776418072097199480618418367102637466129186388046871417396264684537306573202189381458236535759015505516497914114290341146125915031053463545606398173660340464898317285807402013200979898930883410197183796103522993883799822594252556579538042057494305946317071478475243075911059600543673720814168684527160526900865135402237205962113483844703449734548378744834869732561728520074948168757560594019516030950453619397821492492017138757254471022034541658232916989279166221928844940480913470966170727221290645310560498135914249060920782362588723155763541529936788550921217013503208155147994584136566828627973702965018992103457354870470395284563041649776574422930927674012689089904122699083779580165306259501657516138329917758657222433664262588333700353119929982751361131815278670336926904418077149790632706435336889553032894485696336355543396075982587261681885736959337412748165039387202639575225202917292701917146466380907753945526366903432876633597325055888026676922147494939964175987926482304181271282115113511375335915544033783774056151343617522055551139361506255964041028745877581433438228210161022428389917898133227127380062274364093973862659269752236681096368232462463130993023108584409222729890549733824182677369534022112606446796491225975835181525534600951004765016916676713441646527751551460783359127312987418760866606109582775140974095599265219956072624506226915693641286555021710730011446177295999269454606173579906402775653861763524162481705668449884139278991708070937898147955286400086527699286614739956993787527401441556344841426614078687836826798549426568983889561956764080638182190756203895494612712607304601989907111337658604790283920572056850799823175203863310260618165613588064490394327510679995566524884472089453995724153448440469220930070724465357004324228411613203929887014980582230544188511388415197904473408762922689699705768246091205372972958006753953864152710943109649512635413053515819729343804101595355540094585025161644384209569440703092504813510927530964334746114043153076816863843050826426421645186720531601155034119037026599004114860349395628597065403634311607178740140073128186151092292071126922282235638786798228108168088935473160899102397240699446241594539519084082902542253952756769942794037009855468215216437634536548554190202971244277842405116561617680280417193149444294232977706882561841594500299080144953863780773431414074826177915640254858378665062169495675834433238716494816692324324930928676663986651613648567148306356932370026221399980619756714857287912260552077375425963444740915111038212428192231968200263726049722165556998738539998892855728096868117357810894000876206221347515275173493666051383438509832759847128182225659660754636973479926717780558601820080296324493198344745840939234110787262106044389400621597669654311357826866370918820502311291067401326553841718979481632146968656498323124048271179030948044286888493605364999514635807128623549755040571929984396611885631043337982747728774991963658586481141768142693370108269642216895879860969841007686042474522512535394132195095264024372047370617538681055348784385237876022101398857155964171608124351234550916964891946405308985281319205103396895394869126388651737911345349053867215738211842228867941750737133766888449986749257240108212285459720038327186197950155881697744375552835802312179510679833181622371922103595257725003492677988082454412680725437305179376212296613727020352261253933157126850646955693537036310143436794033148763355766405755846305944236691457044504366772790809143506551806164818779564822858609519921616980015704539552036172233412597336922323987288137122767799566575407977050685807990361408482707333003091713888395566133531087473835329438789205510918834030801891744444871094868515817567446950447969193504430766109871865484637907179484458086886999882587332458529229599630053265276418109213383327307556050538333253562239060098895103551121492917180471700492895490856559824360663440310947067319204347333312196293410073497298036910232457807446081517237210871012064906968590780041899761329650185038239393404989220172538813729381451998707765812285770403678596153117292325636299084242429258794975869858882763181975266425026757638823196474400551496685602306646799863441617271442256949994478289376827017888334234185074974853177239658642339929686260645532429083479469004116709880182009493268352621821462848405492378426211101284558083448560933542001846150718209263825571487058002512015540720809747829177664799552902826299091587937424495793819375471743505228625472424570112266336805910661631729026422733657090484286240116889015646773165153657469006182429857493080075342615409995103950183182272199297493198833425284192239122323124908435758242377866079784704132559778490812391024821863503708566098681618336707269033222774814769403568664183458205926558681482953133211007965768132709409381490025857407434559946230298143516307455754865517297256226650649974059946690358537086071017070525898904877748537216364683582586738521516891527092307116926970181737922949129968516600862670670636933382842412325747503237259815396282309307547516571100737625950767791661213629091524273819589008218238175749631074228330603409298801339537349754034747871817713113851980082893152307222969289429593976105858288331579567637293566296360255233549675218693759680601719968415587311393903067591092747977453116159084052418745805344014706439816080485788436916879590426625186265486358281864825216547946481452775094401745827504193789215969136223831750481775035224294957285013885976762194489457884674325383640953382290941763561454150825859567674670725726513748807628508947715638449595601052424962113010754931859159670874277874790730415908916571955131244066077646729314933394184894911807062205196751390080732238204140247362486227404174202720657255230957322751076799402480131821028449170562842895487425381177511503464696292256276326333861552900698552411209662088258786205795319250982477976674789012465390366965344770249253763225576995047268405868406952847576167591297313851403430283205560183428477015391135512905106665570475905283797877782862944460602512116219341053567567061229383843440204506801847970321122541775633646892430695943642471892609538440880938700533273234426847063461859285160549881349628465682871487548903104541445304159840244561381776974402569754304705437151077216920698122931015359719118726570090817409781444481834206685465375059066584509217109969347839934297775751062751860756228751551364194687373418459906612841750318374115751164068184880194115815888791051742335842076981616916679347935222555350073083519655175625439128985537489932375711020702812848335414751940369669229331353615172512953293924092679595053464074415010112002513808892385647543340971940383109547214216244033838992663022501095269829601426212398094430563855061128233106705787711310536370771664365091470413345076682500130776336622813543597595281807514846462030108294763128162231870036499747965603000016749897899471948989853462160353418429465233201388835335051872655582386046986596243805657413750151873479936657110586946270127068381023177055368022569220681842320408921815128869646405252782705025522578284835960329902180335202537905264267664117164484392020377768670614341309500221185522869213309314487953088939427141051327895151600030384091409711091983252114513452716566122614911699225810779064852279853840007879652895519679305546145109870629286551549918353974479431432828153962710549560266539575863243137721817263831880070905057115769094582615106269547060507119982723578623973678854682908174169073063704407378540320222878117616142637648642288546202470239025225807685610196007309946671541698664800182378876353306192613145278113636732694102531581810490445578487344381305928346859814549588831624147751686236554380074251078902895764956863164015015928090321848446067995269581642647665627496328356984685962485677645085563488605013810016112366285515250785669284309549412018783742351770502821519615236033481867800961872538283444610674208119559165593149296530351964967117643415846980940039612277587495534100042735696680920604175883959492175137780872900070997215177302396556992380941163227994243551376230273545424682252341495248683258420673002951534388811680333517247161790434125260479549536975634113356080271279239185292442317400601594709879369730287313704041792579549619179138571659750022565485519295508998363597873203455660164336150776189221143550946436301339256392845754470085946991961662499292484551648968744956239040443871176723275007243610253458519289624324445224921601627024999602867118054638881018002866514007682197578186870480822997209047845443728082027932434609056388132985508896340371632346476891776915196265127044044728725367012298834330323850146148987258577363747476301486008172036223846280842631490705909911236870310863108437679615309555630291417063342460780884358225067105356127028372249985657126312167165862057151679070251103742776198012938310574954923133416771269550746693842525892671762672336079980757216682902935660534490960933566262158567000173134670170451535625898615556864715370903449432608380384731203195177040620295899917045300898792061558406129024182129854901124743214838939896830760023495433875269486227868342157610031014314530247795568726955105888003201787380697254774625210775809433100404023797856683098788086535636106026587834977968781154593972358320512145771393525866842590731854435429228534658164057008486850898763684576004807463203901684860792126797815736633518706801298191002750416267203101498138592081970941733305727165629978707990255222753873044652390518605358348956488171219544849596567303457353709437318529591197307216063480504416310905140719065613635695676725291029828689940922527581954447844809528011058034036569596821237291193151054788202109735439977961592404179902838758604565114442593925614549024344129953356828386029846077660534693806209428155398975036079048411701920316717406831454226994450538873558174278840373203328767998446192670325734426312305180589978924353305945260370141923124157348586568957129353440927957572922981588615752793920588503467437560175671729250724850743041160679866130833598471337040008156894936371187958293040300568394453377424293853045156856710318533121827404209818890106770528257019613466269101837048669032317476364271528563413610957924886082138394043997433845553955049337475025079816438885986001293591080750892065562802127987859037148188805558773124259766250278999945261506165236760920063339163511174773666392732901643143412670971436530041440512870588880960802792659423944779280007522291758003577326606656531056946093726091907959566534195445828907344109208102477666019211744966808176233096757686431661046632926598172395121319800072983887246390556859297752851429836018070133016708905698611641590273903810324132198862492475874258562203017635950352674155138780711593128887934832279298067255944153805872282223573024041365535730397161792928664285256644075741760933654695486192593403597945984189390254617370817455459868712648961109755634430710294941748847641844875564630139073741802016049705568008241842155563994249421138977345855354745393612440906735752168625172639167316476833286221964871173977327645227800885869724495726765652864769863624772357146851674916501184101218616743302829093651261568163817110486769438043584125957190292898654048750389047451961315940555586609205934057795438862981946428557616984137236021508740888611518007804817670698130793216429974800888235221446381724382890267851960799123393287982434008380123229901730634813469407341310170486158826181461630280170749212963128062849082203870872133099135959947206314905780160505511693188324362562392575973562522085337709435430528388876007568415786932986540958323104803856484269909029983915761735252705774009372292926754403732277191484490030433951090526204110822109785285207640439623867455707950920373691751607947586389943511176532111862251923746415077221580159522426511644029655146222480652517946942266111557080799946489700218276630235243836706415826976997071110142993581431014570026498836608944097083944973284480333433761771749427468225839513575047531066197296690666477213307825685846707539706984020118178346065013687164777777468061044232710046974749654094064349950383801570809895472933394747845581866755389761390542159280053088690090089460511912346091138020033014099568699719228760193174191684261625056587626659844762943323674092653048832252841578080556319653312927181112633489254541486543620009027842776999896042994824852950586196007611443719522597775706359054798398349518210840290122554970029588053310223962615370861788414789698043467892080862944664815919825810068801852033986431178528180936163278178825712109587709402757804706258020633845545869249112557129543013734587679843211814925191842917736787821350062192774468310562207283183336156833901181890884196108381829394581620350575359490728903254923673330923491237854074562277420741328734426031567564422600819669341778739951633300101483221089643657467280920772139338890327866479544473698205720117054080301989857583380580602123343748385326382570826801288005439472959585511175402320067158643724766301803781925353250336806468352579829755707030011664935308788928873041612469151118706210345459445367477503781566320237968081805211430960057102087946554264093668989053772547103300938812648484781961180876789675223561850888987398246518983522078261376798070897000810959799754230015735898936234210710184337403142804029293041742202598837305816991935648299066222066130592174120007016080924744122568327698050105434668711023937668093234551010003634503539473460952135934175908331223302294261409344913021505444146971894319615892776693939595092383043998360544135204258346093753273759368593493284047274655201583843238399831451682146386629647419450317321685262643313724857412157436065974415765813625592150282887354924287550397420835072913754740040551526137892359915941727775217467560747729535355495865116566471607585090875441207980247253639270838501728666400324449079002628196677195648767650744998521005304453187478254356109883717539246525604838594350914861633885242397857649068532054254491822437228422389254432335965885321613801462579366048517038354966395390392516474374688928735943117866747385186123750427610425352877636396568099686748004674923616389616283079090495738275892248954494382275344838216709063772166544379489420913260890028517373696826556457916304332077191958398674764681930327700907160051132276350656141342374725028957934849483951176534430081666736423041860321322646703432536526041390102301594454180290164882895893136589418893307837133332083965119084082990001390557884139777372177727680357781158460922121513079329142699808582874155175786745407666994109761143796850612526263562725647287045594750088804814293248905176172515422829523408611605971996937883106059107518066423255367688124302596379129391820502787921927023164421341364346512852281131413444141500867252538886918080693435608245046617027607006749903619672730679401918916968701460006286245626450649726394484792759114789577089852619681643881547760765163361573944504931650564298882144006627740069792134514247718922054226464796007833924212139347917534698778927910512264626108739864102731448249510703149741743821952455785592574728949415398111637468412895390254167829968059640902904679129296759978681192666550999017052681489134430698356413045801717846397592914995386433734250084282810926699833783218171713595891176317600032455756403287071198211651582970236426606056764028426875572039106479565375324477670038503328322474056518504063428799353730753872341701988875595356723694352950728236867814057683071771527710083902393343149238552071811891693074521976299374142435021724391061522343506306410635103413939275390136381553418318299339350932260721940039765806817094009479616945288602295943152617281423668879337065489546224186774961026111306701706027675232058409828748299405277805482767749634070385466594181911815764094495007706224643251205299058278644077330979901797211972718616935265667941217101197489555984674468025872827365891695898990799987386049964464417996224415292034673333543468551809341551916187234808156382111758644984752664396756163901328401604269002370181976306258230362998791419243432235908157508247568423232507523908430362533126803579365920642509503992697201381089986377763543897563365607076082543018931810054886335792952035994478988881123309263167856874832047904111261756863891370282743304028449643237404482052429148740203051165781703579855359933897494662444938514842760056414670581562088663718133834011077313485424173320097361655800387261507580029821039156671766771680331090103029956722892271561691461164427899236124931069000983918204946189851530823204469232396752203118173261360226150853004732998242304454741985407462116780014231958200302513306349701444472991505692863431067029666699797284199175848139769296626054746521517470547080288905026235500818956171524909123060411962989526074141355118088628502583616161961679219936179611871359038105069174658284514693651358656107934205340401092696097435787358317179230181889413302498637517039715601719667638831338257852070062522775529440737262875960989075285015589366660056240358840025712372308481117793939277583884685521316194267866984500699973523917442094243916777754056774613841804431012147543324290603356628103756495757036709070941654728505911017008963613629775934606348205812646388764919946870730586644197492754230529190750475352597721355267592508528052493997457732496121769233614043139986341996006634904140007191770377453393830362829385064816040153395745922699401818809021673392070618676829655233518509924612632570998069675487196445839133514965014244368852990710917935348692723284463476850096587547921969684798094996201950079343749188851173007125821202339850749670971450013405907802930652480312136439025796184704961964131281600021393211744233436897401277734493637040013846746752259759935829676746322480188811220761107198428997593345469973630368032070386348808756216024085434222477860831401283394361453696673288242474651348687929262995708925393240241406208808879098915963274665443611881975872578116243876197086535244070934587410591392271851977328822193265990091437210088886436328170593521901018089290977769863390596175505047098386263297505440436381057301116887081473509258434222726722077487753557071837717722017541032013835312043594199856565508694229558365054647371819565224398180331564983869420317282645941919923489542325185506770750575533832321201518766105778826894661504096594932360207422442669885362223172521849838344147044869511296643958773139785680404038484376589271937972633765361984187087901271218203594434028214131195483137197729196442020176766298311044632176248429570052390447613810627719280219903013652508746790268016537842095671876526876783405709592461441473187390997902000194484004824780350290812135814099638075780756894061333594978618146685549203141433247270351212704969394842463388370161877768695591801125473832885197484412238491161922330057195076236428915246759665474044387481483663977834401655638948802250004019388368509405193313560898373970640722349934544945133332096710309201158650895758077856796242244528957483953374807830401638283563171239389736058069492048166047692058114498427563721502281984542267257810047516282319704133406752171931499546152459766545329789453178445181175454445169714242981649642268519374208208983362512102579256365563628007169014255354012414653103455083108773828122321368424930591370802997368829081342116336875343637045950777617605314520743344198554825252688140567594193821149009232528778524487936031075658941360632685630765884414534049487159152148900800860443524101289440059107871018236360750473009747816246255168938146225611432824766741990601959726400581527541205154490072320293477471280922079481474145254011602007292054915132773008158930614121145409310436292751410946696079084504939976634016103075756528172629768270071202448423595325091526973650985684175799163298802318141980517949109507725800645588314191533387746267962354627440349612870789441999959327791801903084878739693170930108185611924916329285275004381007545351224197762593042607950196730863347233009161019140075790480995012331028299872233355989476260736503572251527501651245044748040265234995944426209162192858082982113578070894600932129292701878470867571642428790267371431784847214573680765703873487875058234298646069436957061494091637269910721461723396751378094103935157883973843122477691143115975387870679042220582155037243204916624469589430161463528579689217104296142912161439781786281714481281565573968678263952791974720614079466363352118321457553995151609420864683474640465233419363154392178811945195159827537972939564820245180073276019066827176217746571100465221534748631376093619712840902754237045290595182383517116568193949354652694512669489855946219463415715082318876320776193906838850350575284938591901847063343161884366736328275038934601656869718074744048924983009240237586101410993571229623568530334961272733190406198031242747342496606819179971903937510479783816889406052991264890385978213715278791184089690923590521678938083153231241399051376555336914372435212738056583620484067812065250035621714658064454096091235224844998394244722662080815711823185682068857434440780405311845246024614305206758982803223018086635591503153033743304962717442157469667506784553489946028790165807662034771300958240178864003463398218651713987556618528896536858318442152908067749826628005734853989835958297984647033841006743857588469406846661647300595171668272587043771556538990793806738932010211347013770097755331217345479072975532241572831903978261659226593674240841846461420604065571435305755933504202628930466473822590933670014778075465794612961447808026116593830354336443181185113198183109831984576909968482906141623932663575534771888209095050301734150946844613293476019453665120035778599835674721294460498688638375329300024715357444697783685584724607206282767329157601429213543274519068930647423383582873673006198578715350365704799062360350219105966150338846986107868079080302920399862981858501051754295622924654200704168269695558109174997359752431515414994746378894788918571173524176353201261929377360562560834512425174432562619715509912854066493051584965777126105731925444532528568216881647718287328576098962533887236915357836049890944648524326080183642494282635258071874513899763404030775686567266992664619355117359616868117735749204970312385543156488087244655481894669191192191208876570798535620567723485001695950232968030856332138643730394622659275459494190703183311811502225493939351338327191699013285434793572557936795153594128313675509034323803455008996074919000979243772381586705990473491291219820233292909955070468218865833076866092759402845142308402155383681827837234661191289775056756269373116821610596283010308097647089229662903459610749671299840680522143075104387033405373131931667050097709721796746966621472807588463335045021291702830043573321944497504524336012404459442908134889854062101943574349131408982576247606361570651695920303799537984816612819882881860712130650711651296051059015660830217820849405363810674965983204827452294586538152109500898691522835014360439246245245165626728792174064943776049587211597626443930806392237946272981837045778198296534273703006851440588178930030981014266127374030628811920633153686263436786544692030407889583219130269460795120974490908699420157541796155737201255205796297095438307059722142407058887436219047555400163475225906966082310371663309553884418638198203216537990731984415845826695505369223454739614659833248150085865284989456035429826528880486056254619675906093878765134997695199405940235367743607228973532204242696832346473367057634190805364154307706430513143520652896302893507460810571469606236621158231064959540390654749719499910558086723037580614734924282537904007287778724635069527344931363179575756217703667604203687965515396452426899682869598437425595455593633691494451329944131402531076057625838695357402221817398930543299037518357604049932973123920569875673442947756647949776982907977916479400633281521654468024461982306534167997120669530977171124719427492347235877914141112769540417916700305754173799882228772817983603410145287688492168858679911696261719340100503697156583909901178969067893299962579410505008856215621073895563695573237750057241977469136324547840332571983104875709384731950011020583930736432963324785198986910018731550928335834231807702378092707015693941229566938474748133588132856926887558585234955019507103068791800897573700832483180056077645962023145185806672348157586585623080432787721972294864703461540219016006459077138473500055311644202956999991246674645233239876403977802091271616681980733210960294449358363671415628443095814183711805689074133289561639601333713426219338400003832970761661722634042748477154153336533402046026301704840220221985754400053022650621877794380404909966738487716659035316928641335043054790253187335297237736892479525276605557697274804260792305576806698608580450184058403979153042557296058691833479687571396371692659459186269369183247655186298905691348320159377693229918143179257977912626140501531356112492818845433112613707594342969262685051707357747978496011840849757507259133260772729670496137276926106996231731491481340756372252152931084599519622631393687462993611697866599281326712716105697302435025496569532993218404775384329131488808354385025062840919558880242024298038919760952259060736982407070154767125733033675427878386297614328392969835471198479263561134487805344642444904077291441101684492038233051492151427742532619050067461411491528849509543900150895380291105814869493802256227800055165725303177647425566984630134063190550915125577101872066848206600726979537345623212856847102262526698346934735902462501787727389157204281417816247961166734166553185843295200984949852349875017990258746354521324183004144799865490107289117195335479009398772052911017644313551552201853890801421495507117370410905277584635833335178786082779597135900142583477394410129564589258080718045027921922511250160197425050872772007383690487312931218892125089237466207953478389882648587048200531941003856221264136811901723502924822221244182817239120882364581526396730589537974308297372939687461625931934351278183154170777701047239161550218350215478696725434951092958721585103993372380321442619534860570830580800525238431352249913989377804846023070373164920791282868833600588477934026406900413756092046918982614520711702392776374584136640232515762606056592577655015456422033583889283406181933590626523271091768833336195505470978906368192295534499607647558076083495303785658663465774008709042515459081992092441939382357534425839173303260581900873230682838914506888369085650895600094541071747933005565026222483931606772770844958941850931296041397949526624822360199363561449596957857309251894253606971180903715972573189978168731258055071176818884467484033225922638233061406553083231092647493171769289727265232560211249712078317581214751715446639082947246736929574752704782440058793865164886175131566705925275209855361065764085386296551796988951491919717915616827781239042037708247929214764914606051827911637308711563267553351235521521550797303552226621823289293704402487456267522612393156038716648987090612401969057618720732877112477577803091417500623766463131321307611418501359392980061540079500952011656144458371875535789848126193055698251589654543782733708721912836546415122883489776483498102645550802704957407325809491475824960873791206346163339575479648335513340608767811175755984974840100413478243157171226649083440024700363174138832342906751414336171414882295076796077446848118645197878464048065532361654316168394785776347806245373671881524390661315019356938430779979636309686750062001781766174310891986545565908733389798500714951603965192722857880886721276820877699383290044578490828959033264422747302116120919089241151664516783825578817215466307524585921183825967373553520798106586213875095610657779168710618373243151958634481747374247338331173647257820573392615837513580289930195825587610982034772586699252619579388260056067458383472299666944182323560403294600115041848639986960093644770530907287700834136934287437444415769700235623217985570704053939606577015209051134615092420554317999904334367619359597161855991066094497472031940275587657198099087690164404520281160548289623913644222805515089914090768964561750723574798959025407026854753919813588528726144568679234008080620702982016125762654375989371960451719735405507658419907624754890078187317910907486867730586399167110292807075102792798351872324632467305225837672296558642971167719129784076121216743076413871281548209073235004004285768555292293530938615973421746785513036716701413704516874657648125503626448031401724152657029674258325655584687809367263445797906684021991578903381746434014685102962257507813826397600041398662255445788328670092562009098983518358525044913612525162631371816668159901465953813749639169475394677994522479612467565196241156171692335102299692039333296055227080813757294388120279263389709976268405841235198299507334733612244288747347285884185916511920255657345305172753475126406976756387448469922180959212931519951749621478865893627669404249730187668271678612027292721746520016784233006190015222839454131829632026378827710180869774911285356995687612842033837814337297011726429136197537587933194891229271297975851260075501598949545230099803798559012477631243643768414813394544532796686350718562760673515534354158297483751661161708936784341806391760223572740560587929352226946220934346852331751801416014506112280573004857716026717784330329153421892799916173542715223139849964389335550472431417668585366106586109948038014106892415414588064235435615881643212638503494593474923234358666715059423916138174748128967602257447025346535957059679618975270601867138026210531837890494370724536126373257734955873963928923899109762504521666092321838813518317806533329369196306989272030349971035659162794458701359635592649126414207307601727640376630054180748556388772606954059884089387709053775259970813229372960493553371108926642467788246152931996001409581210151666465510787329607872994848373799743574785285640412360360950736700376851234300239403393955773594400904835599184593541769233189494142073483078422033214188647485943943399878764793349732936245683184148784881329375730908266032674364612359419532588356922779268776261217535658352911435187534627697352962141587371279390561947877154772574791188826668160998190439548024416300404877373566303633461853168802986977461600396486024788921978279735506494891369697088519076934327071364756426213193711303143768487517786881823700378922898556810752401699024556985263705492948478860940839544740732687055600709990200651879268521665664856968772691380662136884911126947490885971603413624527923791445781495875165261435348852766899936116620107085217713577169797296077270350323896609466459974257089281690442825336944055204869829998497714815304840677428415204151437537945586184017197866491968408551043702639512162870545787614544835620244346431216480222970725887074900525520852803550279329273662795889075939984804589561876863313960594101955068891732999591583971054567792124688698605120509797220144229251439066147866496822605536210085916635082295367381612885660613414730706188451758240039880629566827464231706590930990918914422252668761087475636156739282818495589298654044482930940177394813770226501155211355880766957875326840861074627895300823573904649971779613628306071161734234154993628104610212239975961782147638063229391696449812467140453291632036097309121213765529957087813958486959668610198671514634071261349533837782963557657809174439836928614937300994938274438034317513032139453111622514332718570563736954215137209911904818898363819571942695982971544491329972055318221931450595526225427419669878120810732386964120864209457467782610540746951567746166696256945403774697445592843001223944334589911770853688300686542520099070687751410107420945809465810043839955069723465643940142067352246247297411006135341979607272887907487512112941409479173861153964454425860749712425410341972493977661754826634700971101401753758487782773269823750077125765495211462405687258089918021126093123676584167196334112698384090341351817244975139550347778720867529588414420563407250699625667544831717210664961609260455761496239357039917934401775309433293215949026636001327784100773042227633290853046900977996349420948139267974962360420213296790812604176912810462889932392350057976849504006383178447661684648744290978806339266158228958754513227818730960540061459678120272825774798650929534412133631792259490434084477517872897458647600337880293863578549649339705905383512274864211156474695632965570302870883231167140194223560136419992100444116900377571183628913105827798456319372050765418980961575860255107937640185250268494715260513717117611074234145881641216553321584381319943003478500068191497637545896408539376342044995637612028766182242906350965134432783841212754076120890619646360201200536298588302311640287557532588664740247962661382266575128912502206828241374857925401113150138276112924873223630142260173600346063537023013663544521808990944287600342127184062517795044509554234072516482814910336322278775994429310401404147660174407417655935763603288752686628345300894335533620929012219883414081172869490067948668712945358826031577329531185841952196288449211627851158554595277180023088427350731196822793048742724753060734277536901679458313166558036087380849336796710463232556225165253243903384731084072215407913160814833147805680926858049119592498355616992710525189378119566680721918113751794393463738664491829942755370690000446406708892101672236598825525050745370088228459379670386951586789065761918726480675873685596761099961669194440772013999590545421847340598044416964768198450662840126453217359358716313832964023144627487672177111635312371933258481088480905327323269818219760446901660409178537856586429127061097531336506862703858840873635318131497382854618105932944332272073076610281642162474792580979468102478977179181539029000320911504813938619662712749745756073852577555819653644326377058864867549205467140535612612873730307759728959928348858078121472497834081354084767010817720835362631270996743270930347933816688783232600733870953154782876976299033789925351680588171752001771740047690275286497330592346038869818617308339985261377897620902325639642683391658729359507148463629014987802814669190093323963428969086942446636243523197147169950559369927133953934052907083000966695226799556253019917414565385053793873440402323406722777703359425326685345853712540220213857280386965418004134451632283378774297990297009723910802054648263833432522563845934331123096098432645356087801732347213331455468355934613344990423640896690829398815979241100982839118923743271455411144653964608578044906876312030741801747938483347749685038445174535487402236783313911157962318212290135324832602315720705139065695404799966486360419577014990665307686172083246205248724711217393969751740969516477374527222853220528051948597277151236625175190758144368102567558992343712866749018167789998080837032873899473124767314375356622803548608318434023451177305239313914008568424201510215061753554986135377387180422667465634906090881926089210016513192128006093017875354677390228572929642362543613389965121356033652556090985525363133984544156748779458477904269755875932348173165714237458420201590635428948235611271394918788781652760611097588617449528681764940555435699655205304602077987287184616053712700395853588049614069170731852217921373702130463700424383077871125557482031354387197893939286071667651240295580004627889046939557056172568512709399960108566620877277471983696795221887887101455167300000460683262172697014650190201333933962263007145323227523274453738460182958715827275752344296222645588365407586462547022663837932193896940745178509284755446256691988020096966462456536148008320861320078027072888133055294980107880102655047172500055307456078717092833396553821963902549925933931899064584975903355472360794059266137024929270268911351497096275993974258940720477827436009273426998702644032282758690593183761421583934207968832626814733454050236145702935141493472524508259013141135027326241022211303610109938856347642188293297831896505728453624938943395327057769936753397381500266268700303868108643246159883942451408213469571842067581867295693251050495337140347040665317093184365365790029235540728375198030472093551501572871800242304652565505850314334543791205010691216505491537927064362191773730400504638841493027108203008143791441514521972514544828010818313142239350680261174435118469641874859015211834026130268645926479260343025506998313959169015153620166684128501583364640513737711808740347860915613967132392042458667340978381946180837077501546180610514317980566571530468585356587504791741611651017449254685500423273835345571686721341418405685012672496995916476576873141730515919127409501061245055066499768112570726557120497394767394766310461975282959160810474609481090783585764996815273403807936734562218582047806108864922465723158546851005265838536424014412893950005956421010516862825390850763704938655292756487913960194141310309676598512995735253122158424802511856910118010751517618417621394837114052961320869604967281921012679786747723789637147019879362457172815858448345246949627583845866290302413422840883837827377305385190703615420617015745021824906819394045664676717394871299546094872556034022849558874723483534426135267902322862063270737530423228026650849472579827456535066535924685338103294289378791098308556251824317870938046521094336790768696900222622599885209351778342522563384105508902510409049374744215955786317586876746067982576945270356966488828441182214975509759922262409807955658324585113572521471385454535897181011509434926196846832141360345235325413622914874829420617042130336826729412520451679521984503106613405918266872586294189621914510861684733424791965469846424934253442454851763804785376903930109779253674758504456964745499097398875960770997862536712247034410597177479235058475732974290687615772550140341530044888532593881003796632698244124366956832294915929786018947699542836604360512053221548099166478666601620774295516123230388154585247488103773538539716351057261946358025202226786139452631585724886802649392371600932872386986751618280341598762090100708362276239592793052870307801558029545309250807162116821608538203381454782301180288911994430531715471254923269908427737450485158067095723521263325681412372128887539272975953422013999429003763209732685441830875497640786991699795241904068457952410559171998748058918436348479211846814433433957043273722515821529221718473409041561321528725338159496290178839410529578582330319833042039831577018423480120118729644852422766920820761867997958076845623959036042475362783849835834767301943293548925068427159417302884809881550747401052532147253914766679199429998149933657901288118287912331637753303068262845063727322984751691723174383409043064473795996037358041910619758139613985703855907722703492342809537952085248396683711756739519455838207509840578661340653087694495657567413863901425758683667178054453830086031836985064080090546059389237992280934778582900012291159876056609318958910826305751688944882500351064948446702028958345330992584847366244203560684312749333416163674922252069261077945221128282755283636076131847161159875819810444074407992065371554933940807672540974200355520558959022859309478626873747082302143029445082584725540664459748636507994431594299388592315380886080250748051239359741548838505446494961723178647909347889155282909294623738165517610928802610138648033945705975669445025996764574361700673576423550839448330308077306560466216075937896628237062746118190497827148953788758846652630090093276140651715213428589562117882323346741251336122648926363024879487440210867897723420688125387123825831263888641930374266767925971605123518775465672201237456071355135315289300478097396551850317299467605597277677364411616872185308935205566401155752086943302005878675170192633227289189921180500453999356020940553437006376457177586377428263437342828653645506080478663839454936019161030776371915796078072665281920053779148932367008462510129496813435466951549571625802377199264286022807589884359406418051750559227647067112287424598958784637192365747604852322492876652306235269569788472425675159376652284431659255827484192307381118925482267667255608123029436788299136585788455957040528148801092295323695153492870323844767779347160677742832741849497820647496778545233545403761892787349684501333354261137914499632751928785556210985738292221138842366693353208189910653511743521907801228947493996116768589928655038520911778440567275913207992927428253966545213519529746807823682020605601602169373224744661469464190220724796857096637426236192078255006615393460103646867076237668909212276840720413476818433313834198200402284581693885387708839322782234093799046435955003715066024549418367087647506413628576336535441312804502287760432171945645407972968161230442612172489279668324248976166043794390896032489797951885108876953052914969029684265352764799502771180923706234970567870882925161708485366499116930750639135219384198272623450259825728888488836018058377461539394973931644630781648482905031860635393026856630146731432174453301566553372054096630280683775779799050648654534163333907256284178104471263143478865705151654142926618593599946598619292493771655566744862226674187135485880448121840348251575887833229902918134116170741374959986872822527557800492044803464323935361108126114413723294670307921811997942743655359091486946523999883912487436619108902600876106001960678239177916251320770823426370768059392874431031232409190818126544163045970505353377271137916737677028575969589509074230973447292970159445654666304569081504200521008798722513578618490647526647597577012635889737763655345696756219795708938831616807801763428388773109966854133691190546307032445126304907711022733664899184993297885825217696321460515075087043686689177850414655386725574939769337793082129113323671132899173221374677421341007697880493739394250781116590557915203503954240847261656511667101413624496566478523967085653517531744303136375023314497702584889445700711508047885740285896155112615496401380032791374433208739779505476486029037582857868303313697744609214135129390197274227239457374789114111655593174949214801027781265672490366602972404074908144509963726625883750286428100036650972372691360653428379655316309690076239270039648389722995192217157171059676973964257161991713384602973401099298783505756649454243519069480742575029743472521740171547986740321111363740276025338806885557550610143995016361801187183769380158091695585715531550282657594382106584819263554502099992474423616706645627603635364447384066765607252095525310779367276463384369018310686168828212206536864616214416349625732452387181241950402903378004320225005117582900384652421302822709219590652375596761829066452160365557345003677054064751578667403487482818436487224829703451135172093757242015514908686256410351448647203493530190277945147840306545708548400926558166988730149491195153502493633291218563726331342882132435573638260664643166068190259609781995794731184130430389910333399310359833785785932694304821054968808656463551594606271872144789456412759587692052926111533198255379671505488292972129006889773558421719999617424759247123734705948528283962194724393490069239372205252986581417867175884896577366961080877331574219835107104684011966646406603399224580129405878811406109239163374702115225557225051209421986038302816884151992198503416740614160491078954324938119843557419740851301982080184079260315640721654816921213913110725637835998437234604264272605120802464256405134090031558953590219044577611656395401960132780544419273496992728727877269221731714711301974116715574514289987701874173854820035940471025453120350308566759136433753644189845982645305150683059745454286013956483668867204961674749985008467754747830684404262284179116930532444487834961653837895490482164290897422908306604356634483401312839900638322541599283735366813173652650842159846408545169790691124135924364369825074436622582632750470192358369735552660830126556626567919596659562420372707869397320929973755631511102490807776794587151255320008083233309653599826193554876518775759520203047413894883540713943730747149008512759487206814891435670268303332706609910940042261534214031157668195002454284841191179644843977724124439363676494291716618491172412860547468127974260861878017039033133692367615961105281773222183240058750535068871127923656891107516444620805285112819624909375621681436880905213440538635502367619868169738577536852739039891652542482382844385388742672130696300455625731229878932537372966785463328217718101955249794031436045846929635679097129269477147012692437176968328695946941339201355428648617752654611226763845997066080102371618949586955875416928797716275652226115939342069830850422613666099976154891871156128868680869293001463472896822067834649027900333298322906631846162247038032764587874002442794593682328617601738936705138661427170715308326832597571888541644345917167581052394790037270358165849029210436890015359491550479680253091500192109586095541822144962221296519467824273411942044059259103896762303251100195581317066158976560572456024755707073180479786608930553773932153229301801876871346110720840324697561160143452147817749994542501428061538157118953176027169133876036886069218774254814703141256616757693691946182112226253654717483643837223561881017342925002157254387163036869996641799032303699273258437492741463240586265600047537518060268706787021831213821487849546441325591996749356459737711207689861741122875073666051569569787010366099236565501748182657781126507140065740843309201550078553146828777657751938771525316542042477815184418067209488898991578275747852130977135027526058280836593164005244763572949229429978194323722679159075986611738419138365933171140760969599172189997598948357268779862407436720892086425775370710909139867225921272643055811166536646032111766128677401959947846949408828145153757802800917363962561470498398719382379632252139729235501468965994711485944254582742466241679224913839359492065630557387838329449791288937496529986628425841982171217354157546194601737816582628408235817117519380130660555792882126958825860793701065750437865474651068633490311176315267641841903782398576059257145882972131473773394162422026248534828856027040959097985309548175804428890683002282994532201100053627847552895735868421347283940404752183676837684561571971959399096305263706999168830797897782056561557508096867624565706123120032378412056842891049261911268490708675368921741987464925881328082401556492522304268954588623512951394617034038329530448504975516606954030678064136058745296782441393884818717236791993082105879136346923129792854159694822244053740064075661052404276914819205573940763466551921991973531842561137355118602753701319226048033111989661949930427103693609227327137295777403774008009202410073286468322602755643165506369083923957197130688996583604216583584281591062741238036311567974747090404286665901161977526093868641436586435482596524963424741606685445220245648763611358938092028617455708432259876224990497258412030100306466864785807000677021745718037997125512230968182818421686125749553576685838371035253169381464607127545493752628375826874541539288122566489856831998142820265880616664935815751572684988888025271289681895672409262449053809963002115275497991139811547711449610476557726546091221408703110765219988125585837625674094934214074021157961718847234294474717193526793900551512963417696165722477506981242221580935496112338269896410322646160582532347673421411975939944590073128065586622464752582937890700588973385417424681944251147358342312797945590160746987532118075883938439403560145334951590747849674559700741098931241766802355497896461486682222213791385382905584820204747893689992667635730891514896814484547339293521947622112313914060012822565423018869955900261151593632630285554121032585440739111797698707999159879652411542487596799407586367698942972304049720047636540897961518803816843249099319931108573212509573946723112793581050065728323998119130252058272761194416250220459909309659514011388224807460255010356990721583487390648210571468304193809863264538625912289742730230566091009787669551631447659710741233127428619334257303980522863568725633351561882848003491011156510403003843218750442078485609784117623000328182309501540121139960945142069994874492811701428354071302090868304204963406411725712253532291513209765035513020750539344153857333943869706291279342855041279584369947416557591758841481725221254641974998132702899891520201297838054175864065643312563497670866599540479529698189436991135855920896702330604616240211492724256406478199425063897580984627527600008119335831538447488595591003371026077898411124016337043533294315540283983517204720874338658388808531021379593037247620204954441857116273479669332820588260887947466125314974576764722184827161704885124360605976341732691507445951222288997702505576531095506538625033404248806284217147302945855723312977539925562000748115386643503549730660783227089622426601132415641892198111004752723411224335891613668000789875700006818871182104884146721839719443090038168175211093461918690241930477490106470722070099599299319985143558832645396713958062566360107314663448393188768420573030933782693740812313948038488254085031265053221947264016273072977341956937322353600008467499255529684351226177736286444421687628601046824076708105521591298256041010650081935358186415914210300959099527547473681400235485995301566147969926596874019264051961954820911359933421915577745599037841865727229821135359897345098333749861584360063748994224583529140858628516214749403494613869471117416192917647892680897927799445549217981694874892803175130777403090534357208097529447838232449573390949978224902177428571106449956612115662434150909705149286704879766965799574438149765507126369457658281839237789841828754580174747840948962589574819292728800195673593420891102001767581931764339883608863267260805771652411566063008037877233758480438411110456824301540557793658096596681674451325918602801273365063083057520074728801053750618665579382004325123685640041921880342834437548267639007180027436146645672044874970729985544538708814003440760054330762274896208414171398916177179657201468912017767245887689175641229050940811809848906628433444007060568770614342529660591703021157839587202665247860579048970651832068858491085186512084690438186799892110371208603568462242876311012873110883142889465812560523443618020090648130821589835139035376632983320151294016836731672127741095131121062584813995539103404339092992880520983785748565358796861310391613206227971999076139907960015930753593921884076704763555998287604332211128873744101758568700729557928705208922698902124710771592621396026146274507649205641985172084435774812492662081139629963126110563064230472302412941840072651652720230649363671949964380799505424170692346070074015207825678528125834937979152384844384419667254772820255079838117469502441809981558241500620791445961878235629393967889886743296118311250281256400863088639091266948853371710201235054065979195734483008246394384315697280745643506623823013637619408222630252898153437092164810516827536949102566340571699849007748258139325726081869362319601171489976513513452002444793432195315443582638555385696474050352776243586773743903635417221498867502704985461506641912187547299433070743822622442801070220757738347443694202467284571898803934064335664167347922727883621441549520083499139252857638001544225388127834781789787186358402383629945591168362848229158439608505240779593283340871402176039158258790788362552562450744175092754355989145436720314602350007453244377315121542333475704259729082902533979089888748369986384314439743371066265732375276067702659184436198808634091451095821762957765979515533487484853732192260060335125316982591938353350754067696736278208883752766387528475547204921743724735067895689910975068911315811656752573832623155814963021497713244741463626567351785633117731004699361085282745136387020349866642559674387089680199726570172127900437333917455252509284232678653160134267373391411342434797046432729938073227500405200935376191869835192667766022796527778247196393377924216854288794808786612016014801504850787430737776535114783004179365324191421001503927859419254837940627789330554296949013029525731488940527697114762215670499285770597448251904875662193210539042045527142200312671978271802467509711657615389064900347586503805468019020819456922858297970454431915486408180447084102646193093683196379831260137099279461614549332312974855088148147125949074298552953577143833361379224708984775069814994197232023168069153885195533138240592093417920244867259210438856363498324911977044820698042032460326251624909986860028766306037599491080976823673439100876946274052318047671825202032570189511555446506352418415080976864564827115623149344676876681999490775056188777499187791500025524922486927302244116591890503605643755071191171296020497658256771439006735546255303142022661592930907073271742969664357655966885342464473113808334171634079306749727461181976588513017854834736196744650083287552174489220759930921117248281200199314908526650955041022983798025653923817406046384498181941020638572901089538645925097180501108839557703885344996125351018677245910523293330577159841287568160046329632710224063039678534232665660726134035767801918581227775733577621444920972048588172257309384460365411197919884981542241968821792971497694452788766263861592548747718788511726726168281522281502342218207743275567807740473025530415008333475246234740643852149119904403493696226579982244279174388699512512262667634546447119702414355287550205838491016604769893934144350321989726715391367813273066783511292806014065972364465933890069146850447236822828876145128772914695825864455056533000486962306523374678632976512308735854523847408746352090831584384046275536996948785251741340224279983678013735618129327100791766060425004023043224161334269367732761015030410487027351299422982811283172701674838629572076024362791415574244988241078451389143144523486470912377631922607538430184783571148549418953300809252359619410669683577286261322497994486461937397519252583806660185991298409800174486744610969889613617334988609330937173250630649867516309890677331263536751302661225115881465201452699461006163541290068595439198316415438833252232595088172957395504058879909871001554820638738574629706245546678118776995063833895212117639331928362208613552741337422945129364427420382712933675149215182104554614601998166264291867867295854845994099287609354307783513559260412885713274497304312639456882935615018685938703259902812535984598953492764212657914462962938934934425640359807525939932537619833531073954353712400452170167028438588268567059178930157970699626838716996329216671805183029673475339880673682607115086378055481997509994053537618259075287063408846740427630477251356498120093917469137423452475113271658025621380686994624088372189180804319652671548027451222865218078540132638565077689283513454377052181248861660969932034044496069407298489158185079068459146300355890373204535964540853630635116984014867976257056218087548123414986658759078580637423741449163519507279047845222268085701143664235978390158540884265189438418208113349107912633290712407421057848803896546958748466218516036087685959848026264523155511908105493354681669522269485418781161437027507086957224215159348132964483342231885478475435371780058663521502717949709106661424947117162800350422836962513732952062598265531544174334829802528082338927115212421240683202482106607796578976772321500232919704629236646254567358140382193503421014981593409830315963876856774266943993168117129426259988477035156654974802127145931727301384692830025591187413950752095232469573700110586913812206838993492356226466842579396401970446163754131349771744822971692239078737005774389037671490382205150420552737434102004660236274977706702636992962972126091585747213018787753560536917045123539460329360637853996268512398990338972349057393730731078403712426886033807948954820555830497473118840519463532300479536854686482581982761929769262824939621910282915286395456238542002771916587911994193781755471585533211322296140098716945842960246405810013378956465199871698610434473313133651604593277482453699943544548292486668850291686224064725151045251434298230439328787662612886705718241535089492588310417462279831269630187266233621782121943288929050961542923946128408925391711531083779822786478455487051312344533106609467978630711434854947108790587425772654595785224691586431319839536828127644386400035975207175464999238039945722300489471706175914366981958396753174112467513349127101740041955739264386432892327707134383212252237023511007617062577112076046217584618835085907270056655447629036736693027672893608049066056698075439479167277909278446279928672711615122595457023326160725460015256497587693981172692966271865897032799852709101903020245563668281402552298666202822696091812833068708757144476981359856723730342774177591642480534164810123171280732337886453764248649722109081520188693617101589368143326021606296378539625595006313865285900708090748554666386608366687409384689827783389480683778723877629353657498017192451876649414922913003765511089528132006347253372059187752460361213243681747621992833154922639468911597642956180277101089353100189289745195608393891667604662602212100800484247341328278792068534757446043088601360111010953310141075804923747585501462386266475804038927760454935424113279694497838680402021731723943670475912543606262246847504182751626406903238902895477844878227587407080589132902863374549165499994080695398076050860916111490595794125039417497941638699381822175665443187047009879591540610225164831872427350330858313696194677296418370340744751056548881636684399860889244800908653515135136484648038135671797866107884839311928543264205767442966060145343225079205853788706209491455490558961046228077241624247700741631375106789242007216136871672198881688581061601056486936267630334428277239923895734498519499176263132038719528897040105729625110372108403486500249975945581303386451131102058324861727172571900582426334392345623061009018031067352484625577401286883435403668841301675041712455358611070850276806460816569088975713937104295718187605327361346836985976477083320821348739436123343404484331062732835048106317131207717656703253082603426164298619326999970021443451618653663950641290340186049252367189001013776039740842714297718666931740181215037631674033210442347668539703593589441214736476889971053458974034865647296040714869008900306531098189803585843412555134827855383241644879221112711978178702431962710705851639856571986473859293048170045871997104334647860989412542438802406694505181644367483155697560930820030477882293297315315044250759396446757947000219934011043346306074592244158959428583179751287613890277811445079351491254102608678775960841233687293185349487718885242680776676609081508027296351170195736566513490632416761478949206761762742602588148840227210677912609866073122149475075684193387841641864160774492957141010774890249896217176152282749225882692753568790263912925427538550210725445954463567292651410850836857701904902815925927487746647143230622081563722826441580241645210170035462385769758940147372911757845589806493004094826535441287317960330507610984433893177575447879594040053935169867465516745265306937142371532149075537323332225138887950698873489536756905541217881236775703390215120452990216620203232009275312164932375986581893398376402380525743280798959932886678931878769348619999102288266802707310614387146152010818900153065335529464939789797146505166770227944673771900755226511771073713431107652670356369739782649765546251245870852846563832838552471053322279582747892713453726909337435304352561576451977290442731850179034869189039006606210102414348647361244551335382779704777842297879040085710690918276459193040415586878587343619600900056062782108125753600570937793069790898931699648301335888768280059492679551956150658088699793159430092137691785827994590682293341326348719965183907102803787179988920447273480653833472561458160066152424352879815377058088844180985183147789211399642299084161077224653801577262512987085050108023603516848913094618780735695173363664184701722528428975172366654305820546548793905203347897663156933817339050155937203577491053451844425264757453673184876357607689098451579611217744696680492615354480406149615854701391486862872206374367201141866757336780291148144500423686512333029801706916560974062356622485217321924843490094740190368939309121065136165834865159940850387982488891874567821173623637704355593686625714817866542496692713866306454484498205364080755707114853371107102430040362480585373650947384507820488424309795831891216096962892423959321657920666829371259896626069786509262396365123803187609505464427280891877757201624053791991995871936249596213212892665022763698933027892079213426191195417627807599604940706981511417882087186506969225728016878218103846231559847421868665313560752854339740639180927534830476471134868717019675022137316182215382239179954454112692084539936412998464571136895350108788865255321752488271656695641414185209523883964803761934318578937399844757280582287523858765030869277818212000945403249493040481533456472217827244868630267134924527667986908816872902763055464331453061101451062048402883348065886201280054590718837668748839055347876259434112550925786546468205309807039809732299212281242169601335643935147191827864521893393274652520361612682411530201040682685730163281575306657346807665886819656224966941266965013252247543260609773449112218442359756864473756309133767234369193227310930163172685915013255588671863631274045967793184316921367791180482872485492901549225309375616961367659635825339796170060022544844389447001601223973454252707851857939892093385106531808022587510760201799336719311276655761778310473234366843080028181444268525544223897799239395437991511442214385525960882608179462939075836773164274897060457894768293280979415161873578021427653774440604495756485614164378431172863679790481570885684943744558580134496350016068783297546502114368978295361158210390403754318868054527591062615839045347476112287747751546346178519921198714931483582406877576487192471436760357379958739673060911879096312101647602830108736334955136854385014942304154015484972734549115413783315020144577355396432215262189054157275052979624322581867074170055621637268160899588672320235909995832183178412945710692422518809794921842481222746558086124674940813562338605393810167751687121961382548751601461267578115987825332664037659877364542180114717627035229126171805881956160221792921896899021541418254631335904498199734764150845426609846035780373535033979063029928856162320307288346840254720620051878337765713106121647264177494309192051548838768060298102985496523547382979377501307148461133076708715258239334123747904901494475939429520139015780869141559437090823681844242561481484878673964224880316928833855253786615569785323860616780088349005079929112364047564227438692704110337705921213827053513209063286752554752224544064968120674298335120867423812314455168543058067324809453274633657868337921737440826352703258398862829676945827821877949124683048274519386911393147658028708329838345442592400732513110006398925986494824922029902824479289840925567705564708329958279890355369471337557594563010114244352133581070736737023361627508749749760462209484844173655615556402869205838746770954877689689469546020517656888252885037166705817682423935298024210509962573418462418522300174077410297293267643711585887415226747152451902500876529110282171649019333196836870336283520133169553584306138332822870595364845683850481292195746657720179643956373855511625055250481673645827592020552709854201137160324534318457521652924327395514341662802958808642107138197213961304441589443752631992857192772967512135251174747312134991324643243517174740411695768188883857693370270425249941242536750881351353048614185316659159013948986622406880092766888642912844690616084564703329929354580752470033320544647994217920139409979255170995852975267922658041933861246581791901612834586450167600676797273070056149034645682625936619599831800798515237924783366112271392650195150144122220373272933748477391148594542198365503652936984942216599233609342501136780887381537351552622342820189872291581369621450820065480784518086348316203351378272332739698455783079857150729492618763088103718588786003532024017238166361784756937814574701943814420533682684979526384143526701483618308082707029045765081159007545609440515177305242935822376140397380261930480289085744023637882407658315226194694199888536086733735580742629714513951624000142583253207294828739979068260101359703874437584483167224541122144276540436375314976015907647413825808367400309771406421231888524372483423518794762961875757625296010157408083450177036224366633954902208043153094388335158928993707050890352615379580510097756635786797023783418207594277927013741242485621680883932469247612832900394910188794517731400636050847661156465545923113447872459318536915781914326147495214952866337167668765697775336566675177823212054196765920833259045476391038090021286652387964358867849356640202296455077970712441330165182847973622391800530140868052695497717517049866989520323280761370451452044447690558971359487082560935094106501546185382972154749060710643403893686447070477819473998773993905467194697274458867733426793021982170623939976522103826531147347346785793121003167444108559886485481507268656140047947172876956408125400938873988339753069819766841343252854576674668420498014363280564094288265231363638029155209934100691008696957343984652639405143823901190075114217260882906143273571191052255887064922479170469433965414123287452320274254268302937390656010380325643455491401578866583621817059945559952760085269636621973573068571705189302019356427418257327849588115112760352732033872159651059920078524959484995585453714164607967072632908443238144339649394203458322415623329318816186943747280445095514842221617232034274552276516617299437558745564646063087383449063363531351091979357114439941430571335677642279739719964091483648493759695543150781085944580379583728141382129512046653467936003097798666856658429747202702207617551244377667434282734332319570816636331076981284353534034152045854394877186629078358868965572711278595219347922378677577084534422253537983764654930049297073647854574037981616208642781845025229166248501073316295237946170824851293285228845320608843876087659866397684644282681703883815170313122755744111709043784121816536329340429571390257899019867040886902793509209179641333187358969486871877609219632287680840632665862592964597088110541369309240166508895331678813591052624468217122578276471120953311030067076964365758420896453813888299219833770780967552129450021330419509632425519260325739200082350474616583802438046411229870433242584264769357614501598944088503794056712760572126304728598415246614442347474047691704860484172277056703479034970578509990615472521296261229786839119105936267363393902909430650153093553362660289479651799043978743481928325572928645015858422234746651031717611485964127468364609763528938873838662424278297603231024374963104379930322485370246696730829407395190553903667421180608357053556113566477349273196401631610499692801039034526342730958405576199417447715598722494248736514081622518134874075459867396225048038421784244506991786982741289755906511860692087801748422867299227001818087638754729376375319233242822139173759715434707694396640952086652296241651733210741293901320121711665387970752330417505630723516117274377974184961388699344080911002079218050238713264227024174145346790859065415503848355511476551816020482440551129132856338971846690323142833502511415947653705333312101688145310568003946049206942497763845490715078296025493997283201125449565882201029888145657766738425485191912141132739101137899002873899778852774639724082743508178061600118814257480676064314980060313716405397844326188595930191105023502679986018690892932631800636022730077459437234173588789407057535749278010531351834676909215464579222729672657300953384782299532867375962656678613991091467479363379199907837409800281575902835701149732541072601253476269838110508457634725828280087612343169571600062775519410080921644487370528577738148240576203374025549990295062230840776722301851700295262056353081956578136851666388952365638862534761207451840131575828875811131368779508482336668554769533939541925244315379561892198846430932396793476636679931634448391205359583195468815568179352875696035403467520916804210469140991515839714518908408097078652251355260377575564097963761150502342908697070583577044805156220737903973477762923407165779552927050404868089370152370000573724897583391778625144962658305107419320658909965194384016332906192172817431240559511622142780295324732046760508832353526322705016705845186770869283225719033614157349178944179982521106539308975472132823968622260244500746997779433726773812772944720410343999690047458206167785598730961603639213016788400842165590965212833546179962251706250425839857552305385607403771660959328813375805290352720003920880322786635159763934429991936175281952243089620928148082272045983817954898565799847304915981393794824079932002606564515388702331026189514575067234401612061022977074169108869133682799276338900944739924880178080231046149037943884842977413396697648855171224295361189874985401169914659944227438479376523037635345116262950002834181105364647504429795059134858431838525409089668779274771752619776882148243745878088191274287728341974033259828471539610759600507670922088010552269466342275964355573194281355149458342130635612531507071820662156279987647166305169155047673825442623583639096604826023331273503990445899645593041336556039220104327950139529284402646115577102809630460776673104803644594917052551165850026196165617751999145212152349556270568680605789498420413077559969655095283688104575515746175662449825726790296964223948434582755332914183705905086187859038055077462109905772869802570733237507786298327323734706222843847015670333048536086132336096978221916692490643378962798091324010097886284260235030264326381346470615704244447579063088115436912822157724244533579642319205930796078143235078811618381873253517355102273085844031589274124066886197260159025858616604301113324449635936742815825158315235801634730223374226856589016238299757142373179460073497726024318069588930198236725363198785212150753444497644192591807801060665901770664494568889221869894832995786148397275483004803057947297600945359452895505652143171343251912709975702428603768966001667775878962097761118402812393324558622721382720041520389459024875088081411527644955448416739452309251174011355130653130974293725320664152080899479996316535511807073257986360331230935596576472241625361700363334580402532294308485022540290447795471820548736746916361072005318605329792555569587312514648951741156602960085935576689642371326412228603241393205472958409301816189294257945311308108911239563827798202852999430181506734342691550675000075096867371738441470839405262625162542799115412426992862087580705845738348051135052210426379285214800389616230472582113940963372433998712517695718003506791054496522896392052846474788252075304223557055826052538592573317749614016611053668105132293544760505926488371422229557797721608488443719744167582010880805177140908103173344453818164280411898515374009846423867064999552567399736433422664110107341310869851381662054414303897158064682057104605448651044603998966786367483652801671463299803194215220288627791017438139613652478981245937983384851436566571422192108503656824087887735212065326542945993947476266352876760006859734052649303876284032779559258740220580099430882690902846595607526136223045245279976440500535754137805482472228742651490237613012513970392085391087637981638534396296661593017821603125257496624088160208981548678953360956211741950021926888124066305508733421190802721343623609473061256893516862596289888648571729468754838599909541023912416015743511825674696536075758499708493125644070291231881519354465323489804616140005322811583753918102247712010628408608862670919155909919253828340726886033435856478648354562281750260150413794125451256328965726470261332061799121679542056029356618908622460126242547967570444727505356840816019745902955730769580739527816311937287558018752584338804575564276537330982460873845424456255139685350895296184402989607232003960735851201886769771385287665999006999222237081844935740408917862954906703390126041604382244295276310478381781713143080122076549935258953075640343801543745952922992808266676068746727022351083962893640280032663505630751820841478556828855811862112529680268404359755862924445213464636260060905068946694032472425900287998968143366767589411875018495857828883501954567542814574579584028647122127746780244525690616243245803409747836225264396305759463181371590007512908125897098469195948278158111610559769697774319967216842470891202440935988576950038611456224663888023698304482992386047337011843418250150714459145813332374100954190169736907272730922591324783410295923088179459860471386024989465549548140872770810538479273404382320393010745437608767106955959009699259503885126898578650652130485341016426497537146857689012684820173309536307724826051728471340352210917408085516721401028338498509190377299792456071641922392241965581256423001482499818860501229510036815395281406788213900654479669838396075104675431578125023320473999875848026152668986762911717505925495563589763533652159097357030513253220148964629217066410261995856266459721332055108518440732341587427955646352165141708592240139072951922804405058400163463738380946532995627036182675314589578171185974273976760100411933131954127855039968355589300132905926168133700341349692850481330265593475233994066854586809991395314099373139085438410079963211570775753815667385020542205082251259981142201255163393322727219366897191581499271937737274976612233744932624968267013241146825801160127420944032557494201677947841473135539398592132641288038537267512908461956902551628527079789623406840239823472927166866904899002025066995643125477160428751692213715138748184382248871366181905283421264432401554163076093429147570945201791795208859271027113680020733559405965725731761020793764256089468209703610181417010508551691063359554099010551520402438154923419525013355635986628260470059079276272454573913502953616480151385641062844751036375773546344744217143887601278801130425516412507176650728231118375697057859278124712929112476594280491401224481410082034710209777848525700883184190176515551077860054356058057684345309338748676996602868727916526917705274318170370511573559585036389324830183335347827917397862617373322276774737159202632027536787387571047252386044280339984023360031893885484174023829933856352655698783912759926080822514041265583310544578787968144435429746104403360607916728435323873341403989093865910961394410225055069296367264428011052525236465808970101817620666628160398513981185596147965702179516260846533432988423919742705819247535048963065655721309881371163751074243817571355187645526048540151460738436922952141070618543441076717044525865309439956223717702828933690659739890554889541924882306899744424487507621795784271656942155854285433073943036457902031217534792212534861289513617280942946486962099085214931201943016623682950046091617643772832138540363499394414141524480685176890605437300253531609472361960544364415267636214602788239256465056738451002347567224350388456402714802637905731853769663700435766008528348631507092866716326312759322232647366981256030621361151378051552354346071859719519328036354304859462395042460977987998259721153470948662844902781543072096817026063676272852500877520950148691119413005692704381913807344403961157868350754544888729957272133540056264621266339130679996830376228945563995645815283394800709794811720905744949709406771983887159683831941596581090591920062312678099279012432552148121134222281753690628280366696060075848130855578962760666884962509182533410467440671396335431118284322796647904923392926124275505910482647507873170978716585509265050318382648860060788621791776180229938291017468607605270556042525847926462708785690309937212845469791451379197775586832034048505364248918573806907515585856997478598630017036887262056633735459855815048950049071373784342913966701549291594519665628954574213159631049847940097880353825035243975507129513112868916228406761301653184019135480928594769031086146336820272755329676528701488717791467822029451647038358519506400547902885816588292297100646212302008063135627816335287267566504505859610219883882080536456337652453509657335167998427782017552981098941505181312188811638285255182665066383924652218648471565723485476582288792643072311539527076485996393465973845977872105690594636970614646390578502503184795498102870948725889874975400154486999313077860763608450030117902527253467720271145900271360623667228753455615599630375444146922482034862000242819120426957143764425853668396502161290178896148169742969221354609373650022717079240777994715853121620240395327511326834531350882365754055973637115765497649115942366474493816796804106197686849659662446794067291818027943636497053661546654789521234125692355772585678070289893060533592474652553750245249318900349595797455199607234840671517041935688077758455005268880905554091398217587005940303031250037650366110504336707464812645748016128979429832505650616963800035171179195670676123272977403537302904595862327864349419101141747115917958853200521019003061302910376157021854248220048741192066608230868561859943628000962123531642747383192480491359329699198523954051778402512879409089094207310254946723749245082754854807528587593921436631815374495161294530123648265269217089135413754130629263156681441920106570575771808272528813299571190207028207409102816352437554783404289186981502943663984682526275912640756693102117692754689147844036372817754035999645864535695367599948378961668424509743210765351372663621053786328500204739889915879308635221688183122364078972034504049326678263733062180468338802945966660816264967310112660589798509282591622244994997780270249944123451139081973572666170764731360752441029028324038120223543208514455653443048765871176089538666106617893544545488736952310075722045397061368677304732341918903031805480733545809789812985083211064006535104689755055239316912448644199623017292798238104682411519621136092503708848108212573212399150179672232221864572443241470865565567593702331071902680389762341939270957047808990644792798062569458820493202430827981515811808421891872599126668461995265428510676461903144026271687790457345193488090514866441782454808562306129957569174615495086677660414648465671012328788711963369028283302475062792247633418437629539102262300041269026999163215574109903570668531013815522325919639006287146256865636356652993859734294545111976798853865994548921521124923268719490434102276839115898049722192480528478696386889191168684813442089409681131040187160675012348418267022364081802518781494746384031928747866770837232322257063016876200322527774394413437728704412749549828123409898312199100292983339673316668588189678249639572961521033944660624471822798555965111341818000171818049151271257986529107529991754272266852443759918744556778049960818797906817323705067675520839574797066162579279240255818882849981903503875988207311913018367696611737162079639566249748210172075907913517575505671415630374826324303844181013859565500601310106570096557993124203805970116343178363244168141621040411210837762955662331699216089584894114125164010581743409888710211894797621007389740044945766070736497588080402846367389162342035658203231857669639880630952613493302915114379774231541605887872261754988499652382668196694136798138598113616022482262218039465127822288154848269318430545464196033546382724254891998074289736579016043155052326075913558092114771573734756611711797572635352253374493276245293844313332794432852484241988826119252814329206194373477352979323145431935158140216263935622656053260073957519556820922993350179556904860488222459751969850365673560519228888787806226268963151650134331033231797288345316240152766144893570090884864707638681061109729186391708723560555672296891971779831005047642371859783166672395552569538175022463394498562409179354476140453359258502904627673882269102990084915591648755483372098727940324692783839536476514218341130911618662775290876856428849434609456740588912558504609167338219898043988574734668317593569040916429909932047588669081350330148818784925961665265767200022362571878919078083317616920252601005606672558668856533548735205589754852017327046052880504359320922414259918846417805855084744583180199386202025736054550358656390342995227616664086444353157193993435151884028579478451318191523150916369445467872655008258517754613794760372805201307638106191998153240423614126380021503585001858928635369542699263327310370311668613801522948993035597644431568837110549851530079619546697797138579999410202875490308916027960585204206377771478387505197316949343761144508766874154817442431739440528588953212518089231731762842042187040009167771652043289953019485328911594447138482348477436016497482301092777005323499078368047411303023512863873375555882939722031338030125766310772282257666981887500098988585914622015932668475016787259752451948690862837979063057536588944345617989871798725051363490923433296259261285267211785519861407802167047720383210635698749259248419366911152822536698914701294990129922247899611043873925593842043750502715570843157129882242786024621744857843867156583256269024147028746943504457494791161218077273325865796797670463789448819865583835732670153869834784058573687848802437197965117194153363148485598101182744847995421953407522764282723727702760882885282424107532660995028334161928551470336169353770237287755635794510614372336179584824510910433428918757333399347769028490779164447635507548428218797197740443777828336341781226285628140721821302790063683907228565160759033346049720589570184867322775038530519407865437161384897954243476477802665918572343377863779612314688694684645151215667531363149204459811700822698176475207816825498845070783690230652527847653946640052937619542278183100276824741635117937308134792148825011796767829220813257992472019955867821413522052760061982034106245358849513953093696998956331618667389476033620652528118267549540704239346184170023183778129686959540674772971571809952403291150171180396979498078570393364454696921357618596067561500199182138384175587896409819077687310406455389072714314077415077226577450494566152652178747314789813285810842831207904961111387386514457442090902640576287906148396378811501467921173039285208420982839907382204882596887367047680089420277035617598608921936379119943266323148626431171415637869313476661066914147769451222551565305351258979426413965951587870184712894585621005004756955765966768249690894667636585593259718916082887414411541029938748785744980977171699163718272692795224798246351619259469568050287665383148957313367882367774901516378547068396288293626211557591516984170672551387273900582299246140223235656874949352322328314179051057513395630349931906657007510115190777544414701255258230497046461759500995834715274249986745526744789504564973643748802422863547754380287095589227582799596571190484749306168794485781362222343645072310749178164580718865008659522715820462560954237810061936741936031647675646729702793902803381429525533784968280644965837447805381915058062910931430010088306859477057266922518225606345910868731778605369768974595658438956131810863909421806777095100850620458553328607342911420902241297153899092560535817492378429063104930366170644171927435993036698049175399438282610860705525448767063755702866576926457734649423503330353534687179509966516752630444706370389924719935917097891969326883460540206329891816559818661795473706357711011684789731345428752027594455162054145005599483108443743122595333221960597166629819375377956435379882197403521892614309281272624703064307482508243723697724079041717215076285824697738386743430544296472463975959574907591236391895515079028684015461161703574389305329826808753274602550287500790570831467245354391448019206078483457427188164768860071501255179798568947487286460159569874823266420321365040789341366918874336253469100788007516945875191983223681635736245374002181615961207155323012832193974978768409591406844530145852162945925246792721204592519904886254907473991242636847029311525078131080105651170398447617859536224334863242041878477726979095587131112396511970171470145725636640944783447019196197964976973625947132437336711948636898212035549286820143991375271854381564550476525694243044388045193026446558556992357053538996871831039983491491585281768234312893529935952770436753937250479544190753796793374478121851323450448862835655323878987560266175166717913209036440038521122580245600743745487828493931876230300498582771413925585351756420906715626617734951720870645940208713176298397485894205744232645232322127360053169120712246074798741043671076802307511386126537403135286399510656757611302972111419486534932243506824399429324860272878009316006440036892475673879811448494941651343333187306679629515772604496883180654189483460812614831942995076419124522248454321854726834914279492237635347369051126977314288986611759291753153843350533520442927879623914940551172199604604708047914186903156597739533918945696820234340263108632461424968502287371160355893088131800795948848293279017630944755264518370650692835483914332952947181093601408422493456066565865963016260226545384384646837479389492952676807124668672386202033971960470648184477941445213045657380935088227555934093617222121443209941216844086613508234441049054910347425632220478297454557689228568538570432583202762047741957664466539637697483557618424761545240763090566628403273793684689697300171539033984246154262586367520727198193496048473780682695757843465036312156453828690228996976900901251900667201508303451402820530445794380002637590916839275041542855305406940072194097451079306819572391038586496798349999921630361806651067222870673996915522737991967155254819304760423464806133551374209339897785442428762558094231198325365355583114076367091101078664228234110396937062686309366560807405679939567209021305330782882174600073447285809037231845847072748789256848073747927594880601149239193487011644924409959052409599165431157888682251030177065897273729744944140156681666185279363993479112504898059351195861832165658738825726180716915703664468036984558614270031647521403847172111930145305070017861956831567275180578216706205888283720739978985092754597645168067032819407225996712099150221243997391589498581168112074899550941959947968069497045249288450607758422505092126742978029882103301472504482024330976094417803694918886730533992796685113228007328300562627983113945576057136077028686922323552508110406110772074226972039253382898197418982073850536195638769199275922503856995253788358494416237720480524638030091112927008435116546943438203179211661231578296446726386588001168149903204081698043248306122549893414714800309755285189416919510492177710022719542856087818349013881852202880487358114382836826827620308166382388669027564505649042196635223727256143947445170731781060742694122590679855732814724266661821976163079736237867021013412644935821495569035629619009510669727875115451482651869329994797662193842295104316073799488738449170989748745362752332092562431355827522177572937893494669039715300074525226560682189781943061771726442610242906647454755414866988142436643765027020632224493058857907874452563560322185455673284138194029968724516823314152902155479306193568620224712584086075172019128262712442155910897522198056500602642572232028779974183711585863370864402604537399923697747611257263478968741199158002778013757743753135177448954427046380286412425240025762017853425488952959895667114637996591516973627615635475073123703296166506432197021404562187703471602988262098454351849319092227222506787914926341784185335860411669071472987413480772620404641587153646217913339130359830843813771299550430290744648930077943259586401441994934743211889038029643269246178694729064996209404103835459101280934919824463244266764902348937799505306806942934507788311065887987361141905376353576086439067245433712401556532628628531705474227338551537222188404502781458572774912571429762949739084456911501436584398603796732688318551597347090074333479492200845429045855110807411243652227921846780281919714030646960900080839361198753318977086863452412393337854688223160938147237153808150126770815739871095404412735874838301978895049366832987777825019163305443466556572489838296905796506415605069048579913324509878349601429968792630080602170785185905935589039069531195489513092094040295952045889381756500656176683746343745944907908957224939415969938455625597526523979054856878560731720409263173742989452231598173686718927055846085367347266570472887799363454824724517857253031663827597575526964161886998953592993155973524573304775750494520256803817074749736533819261544369533472936810045209212359158685710767369289596939649936742669909229922767842687765357069263293444472587868729180381531676875974718844992132902382743354523557048488903543349747716782695053707895076366750171695941777902389679221100803526482702990968147721908144094628651734631259262505996528618644451450361244649492951989102981781283618138695073218414573414505875312867188233001405041607914360814415063005909099670834351311822497097677544915049527024493595360179374151989084030260006221808492155997904530151178705537452235411163682015533934874981534296350818762215571063583807972797352646352651525935012993667335890591836537958057839780413317368535201590397460116604043063053565370434341385407619695396486993224231409824512642757751657018919576772414791386440923948989399507076683539909784976854640954914178647871522429600935303254925928728067599470789523622816910455324793711216714000542570529949983176560218026174387174240868601583076069594738805149701079338849857263282632529170430003693101995646718706017835842407943321215105646970006671628185866951681497650299178512525320957297155349599883826942914194991186186652436029744971270451672917128150334523319886709997819084245878814054409660214874602832590077878431584612961569752903017074745950983518963860843745193967422804226122115759093108425369017420066180217056214940095526412041552069380064770834695535593341996750247388514633121745959235955147768649790925485534377397769157749658675891570699805256401668089124607226700905377945551176777382529882506100167984473124457051707182517647601856383531440031285355154666199055533103747455498809919143780842825615935262677481664065478816096036066618822432906864686314672990457018888895198536343136161892525113667737430467980182367002747042861779513116984693397083530266503455765122310094422394464374959983605767896291074732092418713967820866404741429911709329938692175867388123822506327490126812352902676630946973798284134539031321269029670370131239847192253060853711640843879498350679401542717845527703847462609193271207688501899595415076773411865848666839682062125402347419330024738008412534173752685641703301076279017609656019038239454375190940078085678939441785657998406613163035299937761570357137420708131139893255760191216098716228371261632691426766186243173820372993839939519869759136107343976894266246277923930026185379114315685465999855327898813512274915095608465340047885333583561132369795052876864306061984596404659131023793517361091465393096303781313250203536117025792279002231794560020114558555949421284268263475223379855327422094254783174408765841179226415634187890533124533013939420616771746372295673704871781028368407992959395777490070316626760159907900738377905564924942500407111887916431337279090796250573573911950538426692957022454018991996373451775634757555858325564047842994833573374145957043771686514343606160885714952318620739803948475667618805021866131503370907319675131603977471999383575366506727449839460220051643627415202530180730166142633597927554415623576594533804558724606233869883604452464979226932894446873913800609673405512725150529690355582935041057070090605908368084366564213599696990553442294764951348628166161082858947067491046800604005177469904929415815989871455761090817438283189470824229786253082352805139691573228616501748018219398477956430487584955128121277104724695995042546840564446320691909848099048532465229146467353276555850213893181862002090279860325536975952727608425690174811308982673362184309058395986701814138348026227944427568006339570708812330030410563252713816686371499926401083223491569074090889577404029780841927392823969574459672137685925585747564318804552054974684387940507257155662072340672853222062288312283416428510556166843597363177878315576680138308462375537595189785536737890405453901348289364885561930034766255367460323224137260849397808091120770060256887534022783012438315205798087730896369828527552284320587032828757274167557789300312129019273365800598808572396281362195042338348283900800121512620292704830416325847154151776638179945578892046803509244962675643164052034356199628673187630703211587883972638884794296496477880427673272123706069264840772865999391148751045605486224750218232876011267281206467713635488260443769036329580514845848192207397117441101093880089160812662489427596520508819433662631228187721631344815735710025846769035661437746052605246132808372694133155711948590901882493578385227813445614537858056015263844466312176048502145861028382550073079497907672012165870024429353149220383096693623700861333044399252166476787139705073774176145552451534098416369089462051765828416850392145291030887956630808204194637942589425003039626035349570113808191821797325733368449856843733284396304063873165647571207751424274329635824025128484057847124740018979235112734878794832965902687305761321314940272064182392937555471091344891298592689264685511793948813978897086592988541299553663640056749702165697558803429225030572378462963905434408757467124636290856608016243459843872533695298396726430622071916408498912904483914880656484922071940618481811789039321306342544683751475285732574721646969760572238130251734472211959642412964184454953333367838632080248899198611802052061041154824226321948158063108407542905373022842325307168844831384552717221204898989037556055930989537556874359174531695790216189090143406443247686986938513717030179141300102033445520685418036946879939478335873020377946362874157286915250205162965792248016107894781643432502619764106196068484974045520722469560406133937754127197500437315217216350817927958791901246102249067568187512873845890790933764480511839898625468256339400870320300807145651127984129084971628464352971707903473482189651934456913902305111881919479251503816993480045777196744107082257545111983741151255320845416760133158282504958902908976586366433699042149788537015016532032522970342026359315630570740677636844801688831164066900552099212819199359986002436668614237348237927309946652012850478456974463220423988197764244647517332907764285815044929427522687078634668327261948242052752611472301599964408835181037643891191977449323515797775652286754717356150890753186319463484954257817947625462922903204774807498626294412760933549151128595387947034140139416000852279837796962469012487738131657469770859246901895860136469718102649544141416305124566526021985185855280664731301366171089477522233010444592170541869723004838619825266389777829405175556051272841913194367031776897839734860673045521400046042428761559963208190280551718393663704903375306767548627052320032170466493363135803937507455811473340424702971187484335029012661032737900861134279615379604873896508952618425882954334725381527057860689355791636664949471676385567068405350324151485093871254743680326144785727370585618988440564695068072864944606561266324896095883867891177971331635999291261267679457428848133315334678474630564938418251239658229915008630490037842456183857273721411736934994015490186465706447899134972384423075549897249380344946009707206018922173866004065186442086122154577136188626165144633438502813392689920895175781486156914106417768149682329823089556271202418437073173594079411450500149108558207804602872769028733449976775753879031542328640032482817759306226628384378067963407824003274495059694317940494170982621601083897241092650517364114237306389103966083132387927628049524994021496548534687245325246299169695459331270194411872754300571153446546981608998625980221922287313543625575768410629954899449726586257081569066890023134865964159494260740637977839810257389816314032925682797748544512574784858082443302590589119669641702110623041476005152983736476750315368429287831356279271893221071220655490773303952141456169138865360954114632504006510363551140436257721281485912225346424032374461186401839007101157537091872315124073989208858971589760070168629898446507148227767906660415492901362145773229069153004229614449070826154376754863814120024839425584985021939953803919272917442967180218733598904423772851845194504387407766279655393333972121133592840873473777427703937032326447239664892481750020486480262118043110612938657183325373911457384296039078576744498857887025453555847936912598378696448918537905301453296968645492948906292108485974007852985600726424610822696259493222917834697260823807136366086508471644397854562667956481977241381742712722291825602620442079910031996523565972697245804026505796880150147429733959192666086784686502260210578927282032737293654515893042672862629384150888616317773923569382814689082684437326595745249246005925698196413699272047206573605668838557159996641370392790551604699547655462543716820976891132298779386349165031979990369674578972159465970592542533267293404984474218137460451702100072108229974712678890507518994623927481364355701222888025659784682631647631146370601379013170045586807951848739516709283274753988415571299506951230784148824187433709942953197050543352822268346421450412803254934787434616354114415574765436013477497509263580306405526513799096242071259616892987826082348927941879923164291706886664210428803258632027439697873773657624880466051437045452691805593947246266997495408677728895286396920026262519179050458935180958481158426851075694849435886781569157369573958120580940009717049802080441329379413674535895198488016915818438003307932387212567936341268763987436722860993551973344966717308126717422245826904407985180603751944488069342092844994541678448252352392123243554058912449451393189066748588015192848745983212919554520842761309907906606030704022742208879212599686574797338090753765673154513076713329487551568798232943624360054866054741562108439631292387034902747862134921188863418725529821189379181579531957043805510641860547796158023889847709044788811714469325108413370992355291034975527232591844910662330160090641107546105666759953174777669455738531061447716519952858887742282237313630405433928828563208863776720163590934125279254290384047258249409731050903622737435160475112475079616523060258264122792533568779338748900030116349008081963599815553374531532216993975282717224274576579498792083316138877033060047070055955616944950626765956612787510851334800559337329568539332671422533742145773250660414713138351467286465311135796345401415442491096820012520424879800296582728946464798883830305450864740033541692299590467269046103307928201666444941069540404734088822365946416326877226220759562100803503329813681272633143217597000512036341142916432295589057990655292845360887261841201394608542906080777752998612496037582115560445808005743735698721126418975061354507911445346482266864459045349015158992648697901477831061585539625971644676313366049358131513551829411698622095048763702036393018485362017079487887535119160326965347540139593806982176061496070787752886028102780715839949185888717132277874006664743620805593246937035186119215791278193198769688331181540863122458639516012885340545398328413916707730468362135114753060295332812972307393368686770881187060376175240880393335205397583646602110609811013503932311791744885025828187196276474745046222942487935020572027981654959624697213562404997133747389002138020511885833699302830218297991042392005819814773544622837620448587547871201031303307175050307897079292027450734093543559457609679617422595479091390750669657081412273343713577853848114889867738295957770648107427414877884982472542531689955542955643992305219598718322483012120088511839311262245446830137125302311401334584556623588780781409037650465840391932586105587483180956983994402830344802298332005986685463735502015796438790730763974090462259324286462536499221762529137243725244075479790639245090750844831815073673755338898000167107078039677255057546574817388172482114725904076143529347768423551240154932277902763263502681577809653634351392024111995230454318779698114145942749700438245631076387881827571067044484079526510009177794759640653235956155131248685169174661394160200814364327517771138696938163668620914943101240317295163843250919060545002219557828888928432495275442978924983974467494161340890114705473877419931823848419545656731200919158432424017257074542902978506441110294088874423733113318220074667372999364581091193539623316165104209665561041817460771031941856544343574036967102470341879624670766552121221042397828665300053798703869950807718959518535881184593097394322945035353720803078789516843599084170939865813788862605379577680713740155030886968230001895452392187683153562823420203303206318977792590604589912371500336731326121707800027260628171408916255367613025805246592738981507174741531066531854110260123593283226736808645766035118933742379308513697183328563349085560818750655608508022421821935529070998052661971844302562334445063541329980759630545346857662384666609669056913133806198187791820755070920011052509251312624509819743859562656149735900344260686060348767194650889385443984924869958022120734670903851113634337842339705252820898314810238433672218592355405073151855072337850171533989011556602974535386252374235689641896251557707229464561455879051952807949971437143840930292210688404865642970936726646404373139345504516411462577436981333305584830668798492361413280815262940272065880135986184157782550532306225882091131134671854547982506911552074376121927093380029825151624851118265714148589170301714728862159508218371451692196068281113581049728779790185907148933396251074883341830274597591388871286410821778900489804489516146589327677138955687305223708404826575293493331673101400669575815033274037685878896562731001736193576088817848519569266654722198888181806891720240449825257884433211893154630308947398730348510667679447171479230871438989507969987450189303299382503692920410710250868617060231287795454204550156489547494455253533513765105498056908106632924011327185134086274756235076154671005394797505334947549808366851546610310797453154559982482746365517673620729903846528522739670639385002508211845695922270191190951873209383949646378360917564204033571148755569398008400948714681126425723303701561245278016956531994135045495136603663564454149433418560358823131015554320530814239737059744196512470884499004927023599473779966523478352254273281991323708366668081813323244970138765773552239977067680987138456891987446289584819631599165406046056975698908225011777783233145261693404102608370538610509665615497158909065217427443065375673448534055494907059263976061873316526003694753173489678818505102863648949178719166743707338379380459837055575479069961600653600522084465211435860829197393805259858846290294472746803521879723829876890565719951300525412624459369278205474987967975613751456838951330890757076931552297920193293247117183287842474217633657543493914454416863503515519411249969349298025073425079971837923186249183171756421359787820266646107472959583599758035374984489893959884682915106060817376748088526941625016207826188507549173388250188799295297152052169143368236811108092372960293300919989226665713677477772880427934470606588987165611209065067491431209736974209287988321758034428450364216836112023219733567367273381106459363577572294453769830543890992123580457462358327651348468948960284963117256844543946424217466221778087765042886774430037997545792832600992009993916118621907629310811380848213257131561102535076344055039078468778811829927669207611352313681207971106616441577192088678181109416996747841444713845192837910264276627522524088619953713400281805219082449822285388123681113419073378053638186323942876840109484311738740615023508216923512937640100659344612305936214419929217476000589133320887206308217212024785797307333298410746404373485361348735614342838994863415157359181757589686028999164689358774519982889783475500422713650084703801665379768796895515929568149167431387037394818002392700307964452870865468691845271075445302904876531228012776432295763940389984625176643109309271891019348214670800659969360065963257149230201582895261516635953135932434170793032159444624224523884039971155606125206327556607175899448861233325424809181909757308759028385164992194759651003568498737671648864461241930253953669624866436472162718241895655208505490911192447110440744042366377002278731513765487395532374637429167537378259937160440861373801793559032716136120823570596798009640444171633178713702561869172019381140521635475187766248629642017104484582583212618289931560339653006784778740206690669342757818096126150782175826609699396161067499368510440443431294705118897285576704212338874380490708637206210869087998320116538554340018608206883965395999767543602744588372872753744738508708532722259256449268635704310787025072137138484223470479908614365155060722807826477213140307770065146097589770047261257476914395178773401544572879596970965511240278992876065722290988232099076470105814320052822935806578452059722075531745325251741812384744961465723726153046972044699315649410795282143636984758740455812987823828829841108606803272488546773338464045749609463659996586013478546622690627389036086408214360315858270176769289525804058014215961420909047810072050189889567081703550579128561486246678729150483672883448832825038559118103925914877317635176955641715815464044694386469838152484996982962019877196133586458428307174414819526631194858255678304650561017910276198354493383908644267521484874643598919272146599450013773749967382180769577334646365034321806431181631251740082836226491782389941805493925371668025359909080816809668838960767717023220060492535840347485374371770779307529426071682867473580142045399461659355777343901229840815294667985929083736522231645308004946884736705472998661308699769116968628098432920848039192255235777334970445266123151383337725308884855642207756049245031200167032460070095055980174647584892906587667898594448141262612168453378437655517029438376467892797749362800962565775433292443336505646308463062495614113021899394195152650684218037078241295285082890789602318088392197582735045975206868629085062270977213362353138336461714268948591622282790628342804164739021526265330375263503598169144993857750558107998480244716667756709044530133504078946179243996356063074655061461463198763564979748974125944425576830434073875266037769728249500752287929407299723135881991113365672477410460860756358139320461279814796054070239249759851245398332651142670531296295974554594917784857483181342616116567924712548174401426459173772495804737881109138855351813119278064927050677533732212376637162921889743110168452401746356384003744585632921483557107430306308881986278598475756329808979611840435551571356899933000667425423541173837556377099124982234926754164333264989532924828592916316280489033218594635175639260505811207848059156648661898433583445474910089021854622431995905493862388002761369576572320183287429305207030424025295865652082255831623000426201557995159012702376236652691886141078143257545710867437001127305480670129271253227044341751812387783656314876359832233669948598775286107036807731233490467865078881469144313492398246083399929597599988144968217724321522590026888946102327042951127544522042726408193972011931333318814058444117846551118675725171045282781427719003420966976672537736362359519251770208493196113404777848442648288436861825932829975043883977481357180916563546527424889928826311775698188192379251004061818820791696311376179731322083333799415148542536473352864095402120167797365407786916150709881244384240331685501092629165339772849506425263661795317795954047882695645625491883866838915946971209466371588849083604235153790665218486359268412445405371458418367305216006149612381680725987103968212714038140019472311007484852575298783708158845529105188279702084282718674701530241900285242714503828481176277307060274890540838297007042954869939213484641763312199300631254823805928960432991595850363193195603564071263772284154839469502575333972994708215134580185608451632423010438656887563001697548322592493522187888599282183707600762878385384226326990729886391881466647381747064895096520962348058581837988058225439583163845845752731218002386861952391060157272316144764493109494131136087207585915259771741589579345460711255284669371473226881831792166711434825320936861561358067303381621535815564280625819687275555917863639630822074482676655439745000853640933591698321122895908116386862464202374360754935576869456232826215747700021964834319750939730767964776532301435541887554053713302082644232089763488244568628459602268029040136530119346705945099011237244200712671295428622438383491651597543228488930837824526234938942200173858354508206482762440996774532463812743081809447168288891079896596497205887721178711742242885657013061268697602296629872924918516051826086475894492394362045644183794031468929855150007985277757799053436800449835857492418631584075410113876882041342776506307882742980569757848347757409404067025784696865210845116372534280222274607608726370634149724665029469679307589909277169260844916264091730025393587953194107088753210865811503815659827882671817240719381966883898284123915680141752390669853192078480000918347756931153389307409477448652727127477707916163450354591957441920436014394135759672516111821723272130405429112876343865270947582928414802774139075144009008453196482205098044529064070549166097616670772390469335514959455112580213699324402240612637418766847248968654802877827875156975537702540185430453022194279280441393865905346049727116877658394786809346979442273603340621916810825325968189621828285644040048196240298626722603530610868296245923192642680273929201164604170038682834140571420191825565283228304032585304254548371913065735096196657765082336139880171787043403958409402369614408548590350036586695375709327155154937871870234860848082476375316675932525917723599551545481609434939620115343453485454082665726692990465182202499121623818571442552198211708213202189294905895850207805333813405282296053702570627230211706013071740432172881109826733995475717158066288499690593831710983672872643991313149644471378863586085544518020866431932199004590170129300260875433444250820303307232115553848032696069538035893306844897361024678194887321008883060009960905414723078103171474802133888426402943266005034107057921560581490504064393584226560042322308874792500314373459772580512366976554461802039588776130262011392766590488873416538788286118952841834313861956818845591133757234837225755685618994340663076638271003988460233777981364727480620615442763277815710211506301002342659650048604360298787560891762681859680172266450793480972966541284928440861485193304034011189836951725141142697825978719687615404861516133096482907430488318665236444066849933261285362017691830444358162381355613359486594025506991363662658936741686214620221778700611843678258698082104091808272318836129547287278098163895164610908552597341913628644364386605071033426062117774525473239133758229003174453981455685078717574949637735092737520598407783255477782656730485795124963401244271479342172064127204136873555988926833396061529369277670830551741204722557571460279893909101602716341245254969366828427268296692380839165354742840328423023952544680010752637188187892377372042675388827421799528577299875967421854004675964291814722399179990015244798951129920889007468843198405924374462688644745407694141190825049133338003585700436648149908469340302433659793323470330114866512867574740533217874147183841540068771632972848760092468713817983532298607279670649232855853565232790608006253411079150803309615603539071970801362610357598464997671319432844735845583917293915595908121096912568794985645377750486665321022038152839734121578099228284483786654961702209276762558674457605701906520518370325929455925068318358884793305896960978993162353244445478342705911721397973915878249535372592400344757411870735638501007838181100691293264531648162558086208716998106033232891782472661729973580206916305085778693647059883987301830947104322357476411239241811869423102341916105661514188761996323355545461229875104858158376767960294244732334589915936773362890999380031833659147837737189267437425116122101554621639874266935360923744685318186103254404748370845970318353745384294849000683381312702721135796527426999680703380607827869584696749325303423723636963226215268567079469513779835431986532618494321904339554629647501396340667715891050487192480884246403275290135197685699991665498253193007124651016376659785701050919881050647313309126036736795029995435688814424970292108811029033788356528450135594928801129708834537718905319301930264665043655483308016005913744519176426541343132242871058764794170056483427445628788454786721505256008347495578073546023514753200172298417362172344783939871793913689596596935421766782264669348048164286319193351919077797058475412164959383673485197570138836904374895537385453378636307673961917246105997462924453755380566773692387264371506320110662628233557078034354622790909500396002537116943139588727210892032350948104671014794827591775145221627211329628340791663308654588350209657559784331631465096971742156758568958483570995421099057099375718219250136332026340145874284361215498800761945885264945188818866411165986947185732998432148336995442571754572972601115997578103382506211488268484400972692013805057889148828403658214055404896041501913911398855183281666169795200399297252479945294936882086727919894664939252468664566200443816038153257847370098576688368196707484717252622606236142192757405953709804537033940084927541340255092680694614840503170504289119784494342740859772846146447435216008190806546164294151074201157323258590512777776021583441931398892479259855714665125442552169988603608559702064651469538074260689640685789245546174932412383421750117108298433967602002377831063713628821408194918442403857150249929100788333555544731368860944484929054905243892740587822821910506949134414955481207488850205289209325427313556946690913443730608340517685776094465289780318511032469442695913343095289516499327372945314350673524665736926676082560104867491551216380806540689741504534154923381691823017801915907957624057678409787470407397006809019085553187929613930421533027468764043472823366908971511592116898215510938397123631863392484402391516340177248140177379401419898181511831206877351197526484396474524504149774777138028892957657088275898554574306148123879335416706748427853222645079268444707077977413428692491015084943374558860192666083464210300309572738560948036563943766464095592561615614020587383878586255297649565354006315999032834338036947492533253638261792692245189937644895171982345188673681561363705446680511155783180122311145279667759199476443662766012435580221239311958025324915642564158120236280296231942403365191890872202999614558148114719160519935282786061517414171317335126083773341174407292235219550067916245474687204063794940352532122066185281467414565562336227465891297814945281937287871351954101903262023061311605206181086499018270847570002381108931870273606396804264780876035142243002988104164405261009210303377069465165071107833154163988906578194384631915105243167044996390500377152906762163060507488784565586656971748118989108039625232856855124192381156203528027663415569339266972463480998421754112910594005276492750608332114856585089930345854797681789038969493510531375526662284930196648140896798692999006548338107106539221709904255054365845499404591712658763001291967338087070513184228785732896369854403460760449783043557164826071578585832367711448468904683484302493874028207270080482362208716535039309554410487907225809442287373066101836165652498937514569219436589193387164001750065129240278140519287684542467165641485155463882111996225900281278080259392788597368187461806575515260708537708796891750540879656350258484816098858947036149939933332653756568247520385502186695652519536631799864580262933808888116343426069885640502455411928364645019821806454075291572883265488882232382835520187324899777877689545637269820092356349033980036501038278781761537098657382319249153488004727939188335545828220840022336298478812999997737987112940676855994607192346297825344278510542861411450385915113723420046631698832444006783338199983266647756947278214981384543652358765489786327761033848783421430857730135739070146807381917585089963413692253939593649180851224736719210338534984698843427919003292378705836124750710730805808493913326845075984157436448811718567353862246152684637074559533933217530624229613658968503964441685007095123099731959800532194132416772958244806879640414652054503485757909109083801324764475965606328570021652728885603340074738540557448827544854639895831281702312276197084264354259502485656917154870717427219986777165808474293020378177873854926277446714919472731807639719253998926207922978358366972427726988331995044809158557060460444858263728814976718546379917257880023747936287128783812692544380745957254499675770045154065110694391774373190795685657129588850109629048545721287804356771192065940001681455410610325408642945866721206287408699991874077481687735192521851789000660318866715028639780719957140384553516005033180850132652926623101368025025123571749713856784149727123230828416826863233668015425042010562668907151162260446475490822773149765201923795726603983547977987978405826790849960332462430465660763480092239545043355567122063374754620743232175726034172055767891293489127544456717920515464530948628329725138117596874263727782060552176193615603814346665715501730592033771533018989766208638088919913260851419060430083946222151645012066136684595455819946258191437127882384052896454330159695766805738613640855845030208676607584500530886389894650442432788672255250873370807530261836512451027701035753019423308609580468422410959953857345389537669084222004638487246900183604746598954325091889162337404141681778058175676071754617560479143009307951135722866827544606177983952358130585522691380659211764057692315859811539226280109077188432298971548674240035276949363738122192105029830847010172134924208123740741673688282206188238828171731597502705060443092547759376271585154611320550767703895610846772702519698977809532355555215792746789465754041104963975892077197296520220835619090972091606083114741178153771375461964869532961043710184321979378916787714454997146270067776903300885142057756644439385810321308380116065098048375819471226345218665768649350203649986719260343709829343753435892615499619003649183521610107310092029206680939547687097430734118940698725470099949144763909322601755586897978079097384894392036296261935662074308113753225700983886179390063411437577052031987759092963783765692664733810478926032768814665817492802002201450068987632355608908166159625805941066702535157043627422287244422052642966336320118249486995234996412266541819766644036849363201559343896404646396230639714215485666496153853679566010066334390224180108779041670346630195722847256416722572877074039588050193571395002943238178665272560193646033144708259826849576105098301333981440117755628805322194270158057541842209223470405720870516892395423411135894133567127411441232233137247457325772169018439983606456343249334194722952082457193718335853040563377853665488675239846648495493461082599254456460197949076258351368323943538556694214531691342712821033457855722844769984515568900908997105748959015812264660985111867246871749817719951634981570214053121702398394638939553480122089416122509615062941571618895489764415394233262959227798082661369105519104473048179322521670002687190572662833960960741110336726330675871244005330256875260737987579696689570322826606255148574060136196115779362366115061855328526934456248845628751688614053606068661860257703461833863606795225927575083549245182998418169001136145207318266690268630542653971891341764104988956831751989076307092905968285385135063683136438122618595526860120294966620614874191085203907768190875592773793570594226655314912344612974756735063214683611709165789583677688317454729512857250066296060261990476701819565700211338213020038229361416811953660567023547217243752396608754499605259641457230633672815693280620716028876844688636506472735263126394855600009826790036925614326288469378094600188523144435071140580233493333007338542856727791966199353759021099696737509565545861203178405829391291596386900362868618142890549542695481029044430964956031870992840594242492114721577357734002301309738201896347807156921221472953879889117833732903362713726891435948146266728289573449674496792491665733842195073524472471542148620633140572984880419939753629784694494128601028806499318638616694074792424318500637481314764035247745559570855902281860426803935054668567517840079549278800627037410811141944642177560586038034691551836740457135257665835957244120764757122725138553109398726941420880348065233575266951533840478861395524548569674559537471305943030867762649134781360370244956243260514304233215718033851909104422060841628271908767213939205753045282110127434612361217454857463796765512119109547629565761542927662253211384263351971996351878541019524929211155204270404715870897952890907448322780899983133355776236237779778296313380112078153402258031516487262694255568591330125917665750390191476820557792807522615083740333391066629726035005223223216532744365736920727258452322040384869578608894265386268432063869884360304326805751870489718834788772879739998301226049790862942933047873243208617001854713366319292209622568577725121225367962096408433759871105766922643001011880129942280661361394788746657680456399144213329229656837097347028596405019803066454898204268216859487900901235547746575086746792435562298847150242512796384662818646874486962931055079095723913035385715258184858688065123976016514712189595738070114397725550080689208139237188281938563179685159520168649717930048688094111881805697405321472167191379429886951250913601214949082320603147632026808697556107359880128421764651475327386277820285439235763960640157404239280340157093697281473664782524231822309757739455443412636221542218929426630109870905267494630779923123498240018490683663460427359354296490268858705294864743113158819841808685012853387319604417403924117140510444439835439290859483250928670230709317820707034234855308362127759154098335085093423478437657248121378042346042329492515904965590902583564319205452667655591990588048141042558755580389950579105345435008904293019552017240603160738258261265194309718698441631491844062065574503635064414757060363421056182180181722260942824381153332863228889572907051237927183597789418386713272007549140416926450029654401988851633548917247662427544066769412440477263605471447191547731930994511426664254471987713751634768642264235767121494357686927265185838572243874359421195142308420353238919714396969759605505397268310701698194910558123144977432134416141901660950445763813657411976153306111798490299321365064317400942314725734354910356778070973751887845990224907131837027944714163467579867425782617483400813800561059233509015567013712302673127593195454963960184376334796646996945296800687369665894291835560287378408934423475179771288226953205971051284271223573440300857961119545347433118097238186335210988538224671220751346657591966850592158228877343342245014095046643924553595680961880590501257574736688788987522951631836697562062105676626969121561417692418862924556015278588689824536390791346445154987927114093691899472491088174939725757329072131375278081517634206439728817238341970950929578065977403079923605280378098271644680958993926769888656477032521252873867494895432398363888384867636090032769981323134774532011544966934074494112800628799457392820093762408175753934912347909630890091005013340683158544201786965347858451117702573779332579766846695900642292652739392574184193980670188089457816119131204933448670075127331685800624052458951753229005547060685539246931110693154270839992413927041732257809922854436633356199863366998345300923441699021374422134970502396284138762749404075550425542149471582625058287931057949508913328813485025230184016374356349999066892489030677425235388039144130056565126901048085586644534144097498575163691381096727921254737433876846224722256232521652163443110964880184497612815968674840808482307287267616279616359104134115730248136689840947673592880763296188814777806341001364871961909835693571948060458953938255354305233780832434192475565873143899490084802038994688521396187477531483946461196563595010149541840126116001705138724417367868330874820225411929421172810414332625934055801362501231795387060815496741382178727393101477438646673931736065089795860759436072237438187177015702076845143691947311707800342612490316516114524971627554643108186535687589027454878286097832303861871241043090605844599006825830500707736906738926421099060827884734496667081759831451202847678739076535836387197945212894798023396839754341787032905360302105506518665012502137624829528624132404295270651951032547165186794581123888901018581935933381356590653271646372033923520736849138602211597759899784400135738045925708593900031812221957467948040265375886361902453937405149640274960564876589297883335643570803677603180469299660574298998852625228086056222987959447727179310892200908532271942198465615877551060586273069871944495668046606289317722241879909016741139709206112780534585199030803680216321092696802297118450434320027681714454862198449580017713528741206320021322390298465232595829910142004673801393635241804580824083550785981105260684279417171948768337674624721351989556940063968671773870156107180471730484109615045218318842151396033892242262794099848068710678551212556669546354631480138256680607966125488080505162340237423957343298376517153266375183262630789006244300702684796726217383530597034595801892669936511072960008920639873836292907649398098508795484544840554717611891031085706369775520967252880748272933283367731304550452159933273769557956135876878369984292138386207130513582391161297439124162574283711799302835170263843460447987130245696987067757893293777893660962927506341959953971766365450501789296890921371500126018793733161929876780338535378153844229659271732291534944875365709234023033312655223690227354734060184355296205875140643336850759931532804460395297635241220181899690973229036050622135090974725130494349584773369404936615428181533725828200308246114428869047509750909309474196563797077828796150171124831397760362651429706882678102074286546597818230105315642847767112862080474886871581833229625793311045519074562695138097903680928964648433769667310784902804647183992556242627863661452361311146873258167891459580170133662824799117090182095768178597211497294327433085050132141787747152235501076707523849505297138605369841520927566999737743385095282831064956403803871333953361230276891960936471375990206903900672860739166350168089261823114816499575650255299238755944532805128955280167367371807928923023460787281489126771907851457145779699895820606267815456110884257428564613210570810982617232856576424453297186674971183045668281710595149095561751215810706293767481898434834539637425774815173592121381125503484994002640463453876958584757924863466698842793395777386444431142251341415757237419233924193952135937833796565993319894086632480150607974691947956055157963813695502180079034473395490542128042769390827677717093676277976838874069090668457801969581496489951883594175958882881768622811933986965311106087264473575179132108220600060071623361581603538507933784268127512139901430418753530016417009822498813246979436692552182168746152900036255459037583145282653174882758377372105100696139903328077326332084389674423555697409291875957061815716897820246682579347768292199939313589336658490474405545319978363325072749908920620011315493907001574488002714168157655769660923971753228348642893386306221031649696917495857142495004760200791516538748403203236189793882225589559357784018905920591876170288710681555628231353140135612809816597739296783736193144331785383175496944783650144945507605963764537229164307535764495939246524708144954373412987603257616144394386655672575462899425098264849934139034921108389642718135130770759597473623040626014834420230150177278323816381791292699317688180033540904890240914013122273287424689029297177329463982108256828733106853963977914789836994000686923393031403563036044833530475404171868027483312905133679309856093945995754563001813798888303609809350021725204117437521430313269085485295395069891795911761324208272781286733418895485630216835253486092013688837276743195487250436378842596370697427641926537363377647901698976663316515310501602069802666968471758360993622615420738919077293129142356614026075813526271853513675157206493412966711959161020212599358958574441486700838961168932689724440710684120276568394909666503321260140606258613635791748991669112924128042222677020548655455266229638390746970859365302368506057065786373236959956549671001094233367733320655080424830958599918249375820284871631862214053985412630236752779405630576805394494257690581008775321363350252294132676407840480557471285618610201070713163800329508204963055073553350980297340686656499484672475122662592004475444030019386556692509428008304487282645859335888596094395419523572443275746476879701868372502330958476295709800436192145206110423257157056869128323158915059121233808560036843499937038433691889700437482980804378088211063757280266815113651632360210699119023554710867862474656762501418565928238264710433605431285646731387233573486526814231466231828083378392764500174406599975241330425659742542661832405008655666238149852602687438334981506258463813549770939775154011612861693474564822730313867253452957975667406120170141496660941337838771279725705360755789325051623458361234920396929372144858737241520136745163869884079185080105829094555270074106062707693778971369929761912194531507803118607871924602415991183612766448738117632431466956735859972521921939721457359198809570926856461952252638351191627369752575573290063899372647798461891762258091854928273096280927507018533731791220121040751768047513195491449142587153885010075435963515728261658181265015168710846227433238657935841762035049585449567898449973723656829360504777853814481923940485595714048950327394790181232226001367431121991352447502403440490989177627031347440492336066816616589411971810305084680543876894450094636313093976666585339906659153722269404453642899301009411454147296045694710901181145287996297895874133178976172055748083821030442641314622871746107359963573272136057424560727301063547636371396963110770482221526492111785291977921749520317392521764624109214092203988631726234591105168604927905474344564731834328682411064362804263441490355987609602120076762590872981215951597816692608007289704137835547770939369994923911283011366844425026102125813847713753894662755547282100781423538001988724137556774209230470089338593532436050180493405836512890711942440616193863751537291308912592945065002066827749976740151362620752509183217347397992634991727081196060547706566558943794332671593907584571301225279616444220654473148938793893298376948719072281926222243399537669281806110752573171467103847577107692067254252367306357211302976558653230513051609051858890108775736424012599787836305849398191097902353770833852880882529747946404619741875530705532808241645100874825079896791403666810939222241844171882588025450750579086508680595519192045521221534062142903235558718184177442374002692581421112924266081441012370658063762533896970867754141591110780128908963359609460897687558375234723089544963901395722740172613126118008162494958592478036158988170526139300899767230260322592322997271681956288530431880389881688950899139514391089986858378718572182882389086993028722434128556316399222831651880145657947616369389923022274037776143885439006333205333466626137150705453303338173299988767265790539864368930483777934372025728624734995931456947915230173291282196325921339857344537252872596764130371970406646167858387086249790762706573916787735707310266544890437562680975752472541868954832970078938124996917939700903901004432897776660977522397931839677034908052345171441562923824118452381573773281327097981266624919675144139937708686221146125124463952977233615640100503209888634536798881954204134792550804042469378294099143478809688598486197041709268397319415384057106949804149467723554566329445102072357942010026230131435352987089925768874584189621411500030855087253949173038035500474223901015996461790604487370210122946942959870178092366123188594041458205241356066251332060917219619081754161906527710825617568391320220117757996644319725743183946784371342370661086665351409685556202498811728888172877468855782890884350433191232802253016733197443639329753003912742434653122763701171924329111251630209461432858757868056388914925809655106709632765726562074162676269129126909324769573768648019983704086720003092504823137456652050764864763716504358347027303729349668308924027657311585238061635321879187761920406150025049654175157369178649516819492341570896891653683863210405733267104361768961719627385348673672453936572779756373283850090903827577896175056567024244159835772743450405997701257586449695032978954104472545026137601877262732237693278205868148627162775547132243467364427829154398092841352884633308223856762757647392077718373785005112090449515472206946347242653035568323333036236471666272439265338780834552648716302177084355267131549494171800820209458047318061128799588842590599590112948120963276359344002475899366710657420856054494603859902084673895138226283277821523718943750277351878158435639991470563695421315902570665591217921186085529394772975404907314825060862727048356879306760495038957041837219963970837220325228979381058125778522782434612336026946849731576221564014134597735833963955630709709753634693493560682545483159372280325988872188647035180091798731890530674566443517053112628283714107544304984005620460397473202714372651947326952228295253852536724855955794625605113133076942793467457124729047512347031182354263534624076073388262801590880688558312110559629125974588552949943996340673995128945807012779686233221552054416296233787513353594815907967698756841823796767866162831434234583973392850837314716722807454230684440678253632046866459472780769199507116289737301027251575050241938901587814276521818252498851408561345364855011017152498060339884439045659071049261203365232985367816637438380140244843035204707486255079179244320350865339394445272795747931754944223328881291279289725870048843064866506506928232279204749249086442567185230737345185119458615534405784628858454339664330719064589996901437791344209538656165651873037806659098462110495899051327650122050044013975074625146727007301905603272921399985578038115262818916730870871862200277732443875888721331277224990777129322476036567517108963592758416459884920314512777553798709200676037388609501245821378175975400546372202944810023169362341346327300915378192042931985358421503368235230266525848204668394613605358783224955415406754622484162255956971507179952503143472660764136207484780097106503202663001043927009043112619217745316277875151166630403614313408899033789191581751234261051754696405336887257176468599102452646508863117761592021122172928472184925739061348946042663314188850807206944520022198252648562295299157723666479948441445353530386177357977684648950512127125556787990945337942852850648391313055425598488555792347726484552027040203991755175599191065467099940074207886855142748950224673546563120889552506100355021310657246450001508785627572985700245201179246394874925843168486042553706311199489374225626985845095598246820358156096068703867694059371877351673707978460832678789745400093181003068644015275878042716773177275891050715319122599061496813553872827825489485624651163057123715922510415057248383338375976614836399720459658330872536718995924102768012231024198568346688394012940357214633663597626729667249826820917939157046044645841488657177591179295254047591569094129819244851295434143537319169337973123734587259116476542409706731769204949743327360451298020761296360372038655252271703937752943827883821346941661321064328726182226268714732658919417624462587546611956558877081540657261263646890995110651557176348047646149490174005849915760110019424866786019737322024897612454612793981290490428098343279945418367514201918426910104748232241477765998798737187529085991051798251829760386152002171788341559352752309232209733332753405947311583580797004661421066198781617386333917641854363024480169038008253261354283968199417607970274827441304714781629990288481936627075305386252486168111758804144988714339542895199197179472936084943393948830466420151284964362722133454314834834627724962070299217381218732798481019247559345018490257420182368509782969711788201268961241896476114572030503768840810343403010817841047876738346682451024157187016619182110269654926672436859455383234509447146775632125186072639232997309220836679015991530324019182628882718946190925732092220560791776959173741707203045211809418535704543332202827739118941386164783557973899717891109714493474255044707948236953573545124797908344100405139243766385438731016110146552016018314239162361098370726928559937265949664793287299221180181952806374505347107500915572676578313270442300193664491024514155435357348360699951417873218800864485532747997702204704370089938725159314773645546191279269284202307290775379897354544257328420203726578287070878583176893945212885983430707815386034329688743108701425045769284107898559706239276573211175484012757854382949267973256075046304578335540625468676037797449841080879341023548827524956395573325673459156827089179251117278139818953689799201143468562795438158033138607026709688007308115320748814049349677644010845048530771843457996180864765266000992045766633312954343766504317873123253611970705713091577449158644961804192434914597989625366905611293599201279056096757333431914878692871035660502011431850871697926149729462440793522194343378544952185937493851063431625897930670253524467997416158884098844066841344622759781933462749382417113484531599581210606681383968429322529393340173248451744308756541933869836803850555118538452303570313442235927107946243757598747680675085858538881479989689259341322441566853903477912785499770439084588714816830945183500968385771863939252650051279435200266048249951533055699607512169610546055242031280924297391570326079699971391849197614384921850333338176636593325101942830055406388893368410123967411100050530563610175610181450833819550854849413694880498439286187792893254456806955068352527118907965545115560984951212474018999868574384036582703134392743533747600343537286182682767490005953483807684286556648407699688895573714036028589298948602517361541013986227869067112788378015251159065448260359890458708840604311092068498117636934253589860790702193082085457831568201585806876708597020161335821285576766447742930702289715119906757859783157231294349145427875659925682695828193978831941510927811806491636978626563433789846389084799645122422660974831103580283909193501909332922646416722703070868211250025227964728387356932974462257217779680399941506512677075195373477380054998665979206784356108935634562328864083176080954474638558619892664057822360564495912145516925996321318325175516186826094765617563255312481213568632606595249353443651655661449028438732435891374359129933831130758222019518025743470725856839638504820003851478653974930120313674357434924347562782362254326872783173030120152223885241841307776206926529852624750275639951645904586228280927192251099007808941743056687075697251841629562182145113657115301635852418927150895515558788862243860071203691872308909128141514251613796206833835513983852555630419936861771554689298744098424115751583650302507202827755594370396604840779929840307037646671999970637687509641335838725732302938297692636684589654238855745895102221468548990195260171224221355514774264047438979541714792463194169144637510320034348110357887595218382684734803924768434733652453520870772801956785517715282858401881313724230349214099749885174784607640947300861389184431568307762781649164414807231077194139448201810869541281983833373251590129490976780521124854571145201139001280867594037326415142702980929066607543895183368444383332609524734651179146025564962374890594225535556742558158458210201545284388157309057145678157825266633534553572712509122276546509036870842876459227072991203965735118922022919382784662551948170526028638485826047298146394776881680988441492936633304720445864646409668258962611795905124841500986834166153281200172746804169998883809209615004298847741017539348494389212442812371043783635909760327320284277434182207732894247873703457019500843983551904719007424087186775022762328019698700478292996424919972444071466820881402566308099406339192206160078020283878076068439920098363326487690462429330831162515409611325646067540619474615864105518197307293977418251022756656910709329516807585639982195428002656364614736364097837120106711183401769157323961176972424179495492094972643712451256927849058471285906697090658739311274560460546139954047535712832554170646566543419584942010153359497786202420433472884462642324793678371700264509226934807964548227450192820356340442756614321482136884969556596017024945080100383909747935434077858123231166022367221905905354841857363801553518224953073685485955590769020877246317540216206588745693335969394781848189273554957668118066923493436461834143720498684190368287546695846923796894565170485891141425015112046579922283913955769354528619997347283514806063764930300401800051915633721555874745002562014055957758243022474215541847244813187522902388785359286028755503844215107944413907323273076578556425510746629460441708196762783589000585112470464929710243339165339733104957784282587430929513261223954821955963837756831468808101591580026805090187312965227949272416578518236415666894858015450179604363610371286999742636618146316208911493539053341626462295966479309649416897458437957130696569741699744195387741555652785833787862803808845917270927668145206136184267333869815135639933204325852405319051425311767778639015626111562058277597708094823795964437204757714363878861839846664496359034605676806735288973359303433565866337865088811403600592051338728319541865200648325893798538934445801230548370689342545408067183691500689515191419127087851440351557495688685184085764310606693705196039329940889912172045795481306325484075731165458056726025253843984650028003455485140600482002801422923193971514705660990301317760878220974395113388342284400071170259844131308843480231313140343856222936250316408312802055530824655438891283551549041350103094760844633278764455697524679023913161452738517484021163305907330017013781979156630541535892367706125618394129904213612506801750105266530451102438954290696014927503943217491341890218726821170191208465239432128241248992647711211244399262971915026224640850966106248477878945082576340145449799622116933998890226641172978950154175178565935402981991509859072213737876364966315683421288867372905243736786550683423143787318716908267493605349065004974391965794643768121588960008150619790049874107848794948800267228437043960169037062450880408694812712342381331446012402777495448490225068539016991774929808177474114860190757462251261203666210243186147607184148900068157344356134897338388817772630990728229847867003622824978157880754028744781813139535790084874907650233240319287480835058069615287820812336693144611185963364739179581469367195319705535339803957909421437927265571582305472170373965381697509624396732601000324173440718779801150953221092437177536019949260047007572304761589728533390790696531977469355427208220691039765094113530741484328596462300163324754993477359446368265685418584050733034020518782744958599531235817888998210625133139175213421186349030339057019615090854535881648381492770811835670283266434881248901760201194167267192448087004973515056575843836208661321989375491110002390362391526266104155339764743610975994539550755528214690608502934662792929806899728466231826032378564466723506754378299968703186996054973879038032527251888492998006079744620796865112425902923466162123534400576365631558171736987028670143046784257982274553952949017834805189634379274809201284436393180538801599256582498076142524407043813660708429959017998554321577826556623292193892796887930525856562201400543744959580751726851748541793754109889223003605527352112016855357003394345900320107699899810914828031687675565906046817339585786676802438783905689721610545652944232716022206578753192740920100666445964241628267903806730287584099121960655519068678016613787418998410332508452228948071761727201354290461260066911479495704532174699408449474346454060980335987595878962884472570332536192229431162643389164406973097983262962233273902041227613015558073099968688891142971705579974226384807630205640734154425025449486777273146268062413368882700415413491816855451604884885249761541412041968837771585204998572362478846074728636582046948984029094533572878875039582616439932566985550097556928026662011206296608545303838555374018406603787010258564415362317451906768426282226447650246190416594623234651508312175859627559785113315165622575992929529329127835751466620999675425885059317369611871811389333842247669781253155879924012675846312425714274284427467298627236505736311324853042976005153155119175397824267557741465764754519353525777537340712791538273112769242347042061969258122544174218551283739763196376582277778747769339782162077772153077059469857397169001719546904043275342945327637564039652576237515748937610404607599056997232759656733155030396785469245420117869577976346112223299634983091614079106228433205626682607948897988993458923248906070385535254721181605875943925203608256875259495218038274401792005322110930092581959963328883826428744476430849756708653525464313981442292616922618771068558927729641973357536524225936711364127107587803486702486835885039260987832244541847221254845202037569405542935477243377517717190607450015937212042546003428126998831219909849373819150599215640900016345333123945816945634606485688520140161587852570499955467530089821051501682786622207590802524483785121731939566515880252750107758928752844701080936794073538075691223812811128251205378269801829633635043107807148188637004873831036767444951376754703896594443769602211864810615439844900511267228464181708121810858669507913445053133977051699383444675559038359968053114847652910735960881096626977528560454375444235364815286721981830520931984937027112050098159948351083452804899539091864729089642334834467501411435699417639253591034776533044124575966188247147505862113446669929240044596141287927050918952395049882081213110549792252382667236371220061818239234892879436182743026797588098786177304838068843496998622566987566692558673376666523140856652876943239468361472725090502653760843895845887621194007767633406074956003416809762088524144455438575426473218558837642519602389700549681517193889106669536548826754813185158064169510804242858891227289777529161655721939890452567766780866977586480161230411481662827020274939281618758205422900773254507733356420987782324503690873761469334312511798566028379362293495755897298376118785518132416991935393937053386588363262500855957627633469206881020352585401870070075780854045657279030930012500447799636520916267594506312870849547505742819079124503826946554137502950226541781575952189866089359163787619105938989909743181666776157922679184349998864539380255320573919073680404623269492762645400638385685374422519708377708542495315193828107906635506936526053209833637959896311130903045392056054280736855196537306924629289474917224209699015144692628867239361633826842311267051137914220189711752795264767099242479808398259251248881532105078335188178141045880162596284347294582458899853820069603746045918823532267422034354514605510967564976517510058429128786331675719956683451143562171320338272858169995749674750532250960567795558565190233634612823632201253907447696222269162941995294220069133360566295243645361813253412209741152643608417561186940476747475387661047130827313609962496756778242472799676342721767845213624422796448365186410008897971673864423698398424281576618369797340157747372104004256136177286407825473255576298329049612574432369738874554250848088224816992704979863346316465591590106159149530507370259313752050628484956105528736598829176164431061197879881692631820999341421377086989223177068943607915150345141828481588349505434101736584450036141319321072187185993236816458939741344088156725516297183684581289089862019133952904985347210033260784261273476710401913671695567816702570164799775721831977834465108714691006956749603350265335533664392795440644787470622286427039572583513653344215575340831636079988862332079841168919790540551446099518969410046865471632582845240592949655408288667888072750358619058743221448516697683882809426975135179809566546047327867901617749177301033402409820898503325732239322271805245908873585690909404063414546585977513630434613817564802464146433394572064127249218227047835015988074166828063613152299911978129549115193086338587411209560966799926775977377206626762195400704790346366358741955263131701377351808764258545580213815291812327957069655546460629700547828648864416412537214848897345337206058686629985779975836998932166357519005506337127258043611555198203069133973087752519648647577983604166090600553546604617669162813140420265297460302540823782717404220977714442172289196841224447953481116321395114364981966966896491901274309222613591023602966029954063349903131251351502401691475686238055581688376166663680075529127745609630069912848992517967878777182166168898454002350180738689993263372869531654027862944929036588045689277005389290533975330651570434122622074921034682189694077284494757794969653190446426102477615680729761077718690028243159788852651115331738446595840024654404675686797807214134855905585753462000927146983564914635352852722446625754541718548218412081524119475956918875990859323841384273198715511628050071078633774054237922378825396719838130464022275752737170614905038613920628906674642620627073560265420832923834764671250156954036587316401270914784295320020262248371214703545848055155975081287925575201812625917151540047092641613656625809602077313260464019636543661354573663356402888888191097734448088311055421049145771607791461886693228400643327856183877314255160119010154583258207639521510749825025330444029741594682833530949452696824565238877815931534968269872089437378257453601787582610225507865432853273992015175282752813715478402004866285049267051272625394196577330449572873749462713238687137415271394702901679389243339243848434049922498959531302691912081653617963464941829041783004565038270364554619329228422989248109770649445995328277080087382739799131995930478606065275254983103235409250222588122934641061165350439299730527301735716252874174824920150580835191738155530729230360241730929943441118146331318711740130741987286769321916202007012825940507725813963023729586908677534293130167814713040951955039926605881995748196666700879482123485096366077827980785027273805642499919314008005205399803140680630099166943037041809117969200497749525432001043084812170648332461565004684138624065185264114394046993515365788653717769487005425640190108462506289316167406251895634404711144313295326120866164575365575375177238677468602218251855121721438253132161699397618546763884122224139989746826453214364228210100723305638225570533408660274956003823991479325245340993770849380631473187481463025413672804738555649859738164401524690819816761432653397730975899508307397996559368350796837622813762380455341699529664927959085851276988017119795887532248262743376150658878711804712858134492348045863739476062974156791208594470640658054185877264539023986195939938798839061035269455688125980509299022226546928516958050655855863068858632284073149217325364013451814178846276803609798034852616385139548595121252261061188097322042983400722098413660922238372630216181134816069910089121850604201171679393105753986076826559025097848413768585170604114193925045042745496581456281985741226272873334228454273139678159996424180312271783164473229200532940414032014799764760096384364584495886066881281758925808052607581959222018620756194220098588594765996858269531036078480836203324639846051601754419186280719290245983873155842150990695842023554735031406410305273823718693849105912918219329537501879523759657949398126264999102827526212392673116396316583173656848543474024447217374131127257673271123208803768201094318848848901367891266533871749739751185873433624857721660525713552195646136668599268853925664307472471568778032008451758394267600171772727512797437869342075752174714841407435597217782751306292624339154442930559777132143071560235951766327341871243278687002189599184428465327640383284757774204887860382366329012244539964477431017159671164530805247873746733485474675926905565488130036290316789128778952166984158439327822302670901943197137132321522173652287056511313168238566909876101778800627869070142601382427945977396980602236050502569823094772124845584222931761565814189656929667366343158700481726591389371808919486686117549379047974676296767340998916347197524319273549658312268765742125356012102176175111860850143742817236363021440754665390532601713607936198281902245077047003310675330104888242002385454577889874708925378970955730903629527905443253258155078930585490685876072284252763924741820671215188444551254190700415798415551263269550037786552240116306879371580252892713716934525127917682988002757979557639169539354373177948896748648198744301308617985281128408782606450749204604115829216700708389065901381711486666621987681044580500559708712440950158427736330578447866643638439270881745207586489859927714875696072755102255485225591182120962885710315100953844549257586982963105304882712044209020311683601186669161786994981268536057272300700558099350215875259228998465169082541076617042044901473121098499110260550661525635331713911192263841018261486119646571982966537512875672433377984682672267225696826744460666152494737183015995011827568811261350614295107607400673572885727689044436273682789871748044236590966006136796854933442435461456587554654872029820602080546567439909109883266135431753750691056267681694889322326577265155113594508860145748943635700313510132759499972599500479279436295811176018918773900024042186465650484972406583307079943738181746958781440360848400801119105926316050813289879429508899898353651171077978109434166411814940214923427440071779960208044433179087573547555903026836155074517176753060675605514607594170029024581859227730770988687043110639943012996037684846472761656728384338293149463467464162581130113190171318801100122853260557018547697347555019003067600309395134938350663711860552081447326051598252738836924210179417184644528153342640778966410861430563692697332014649125258850675156143085378212152996965657883970376512008636397853029156775405911626087166228265757851345780096871529551741811545731720018785907711940743259024106965804380261596057441666054858199439107188304862590581469875489231948674437084649744978074909348109822655478641223762877434972531148970952138506283559614799596990462016599527068873036087909436330501551402165798819592673969565163363679661949915154107204414328962931062305737764289272753299646161187304628205982223464480470700099032277350327824920803278737268857228396308219893741580792325132767109581715757611357009818387721556494853608316222720607170591087081421573418685473446273834258307234263862190822766308532768979239609918144749465225730960915515116417020195615623841298303435592222766896729562845534777220783440020791262902265885217036329636122082016639101074254488901233974418243077146661195484484624615042004217838690926208496376480364810286495198210593026429838214708456181274379713290599138178331718553203286692275934327830589455881509396507354625340898410633071715452808368490141113999372439345952605062929925556946596802196814244136899760252547675447295465079712388943918579546298517956974948535485898447414360502933990623348293608872844547822099741751537891377968401730410293334024189552116384769759783549448566661729508769736033622634783943022022868875992558990699339250113819363352023184084616449580193177855343967797465679439237225890623818824215270022030019619958343302823487890517113858899209054914214933160687003486162994157605041461003570761412977904872515700613550915003710592955990159559986892327091770119141890399618696830398624989818490024188235052429867867371109773625438609681372456256158711990963183788436170631756092963100436705451423065364449504112712613136269217595218487120599558405941288850143746284714959281941770721910068105051233043687432740709242243421530125417431909644358708032965242347357808827365864875693892624936285845379565297270429574852148186631325807973791965610973846580853094944438010950926715252254532069160567008676458359649602356868131512990223184486838389753338533083784183452114342299639260257700549954861393998868896959390851277127876089219803158349623476896802658105761123712535154849310056307563900012842601793576390382494627839127977365780606305832249410534709446520918517245212083154804664103751873570832351445012592273230671697369902565457778069801008588860527009495981564040727871480588323315697714760045919799368012473218716073182481163103015059670523885504774225946752097984294864680309472996004308544900843909131464751920868476780869872033056105974286974913886330017497323092561250241815357450850259793111124612484866084129697891067817735795010090564864078959549485755809967478706255810480092278328983882303023374121188890209776912897282337918543984101489537750699548753348529001576828778496486552689890772200729548161530257124598234769009536119365264989771175309775198617276728633211293282515075718794926894458616993760238553532611420109781516777257958305481989735320425233119480493876939135129579404996160923308552071408269872520094028239909261752975407428637456432382961681898285616408291082544197888721645295089486612691734170636766641920009323635616001045150940072404862495804741741495835851388396229867227612621133574735514523284854728476541889579830203941342248490840083586897026744933016322073280839151971593125495390420792720265179680059490619737509585438762721700261996841606682125520200805951075520786410285469607852781071598176678496361836786377463405196149520927347676573013319403997023960972607616063936485289114208615641448261221106546686804334724024890313441550862937358737967625861687673027054691463432569022413326596582278835963729179021131017055695711011546421888861097885052368214969700826114620992056697808179661407342752399321272025698405498093562001427992234074523843371559258121398957380629957263828648539268863207327509255638311108056402455415834889599421396134555925589251921511276291342874117510731780971287262293358430430009099305225093971412504021713342881780217367512083092175598203860051714903519385919444864677937230238328713578482180807530887026412570796775071208825711063458816490933763223546981275376725893157640772163572189331001695319461613826810730406059348448942581185068065615586603073462522470134509585838203114173979410620854123694835425586893888481690287703545276877515980667065392476613508267055677294045603389454086024664989390689815754417941952892209993234223154332234654957927700338762583273157855468771999055719718275651683493462971820761020626182041332600258891952312150745802158142047075436168779992818179454293285653675778189108620627764369712740334557785005339822609496353581711662898136576509777129466459966240879453202433359490128675576446084358626971836717342211623444776266677903060208501937819427899521305734333535743696941000360521704244007137005640075174516560547589625332527185034180295528303459712678669659651294273849458617494219574918732143231710940886220456587513559448785564475331772611611805736698558150658410737199642781287168854234139630704226065508566158304241157483122171605794507113968532955365066333202280958707567236411358500131679751398273773622052523726692686201276726299989225777456560761116740746908052437136191061953576976877447069050095536736302177389486246277725857424748126960956213389480138711618094539153154954878459373602457965908302613313079540322095922720383226610094190508405972990043045831574595834815709113074874007409967966468981093059708962507053627288713354779643295145581176210587000405538414155355043277397968627520978448802358976037931322676189025183150239619316576631148130500472384333051566457694699755482303403724270864545203135845796641807198368017747161070581674196194207649369004369677107389838605029310224440881287719827362468272145657833114439774150525919742727927480324876928435827575271836142112179609308748769053754826836794028867443013892195349321022857894156755517569366729903419041497368185479335151290046252958575247164566825376333214332418361009852455118863018142887683197994871227484191088266154555252926507035526535602983018147655143233650904054402273320345892241602793703498227668563536545482550486379036016344099073049302322841663011939760008726275628626447714542407872712246621129841339849423832369186580426575982803427410378256289516934977260718484476844380830441443074599351489638321528629351563159722253183949981530521377927133269145878723013639690128038801254683108227121278115927898828750174489901432548243280747604431140082691275332748046520770588114725456746348632731352776910872631247264060864307050702015155341943708025952618095637291108653537215245229535777707587075530705992228447488795942537682425435495160087622401397696895995612773157881150087164738091114166161172314021409393592486986699598839614612927833799884892845719990969367969225121104704780579376943907503044862469550181847755422267752793001368391094654046802470703281222544738398088601557983044597652522634271771795933306784846385478448973795968391302529069702652370318003424864595769552139029075913593769273340432925747373313022774269211810351519915383863966423448254491364946054104886163778906507620274921025183031008720995073298510276174589365147186261096475926193249790219030504284807934546348938158494937751152096094366254761355443808290424434207639641657517987984730670643721287455728401109237354433148634497240302954527878168041031054089041125220753706535745194281748335620645632243134901287916297776647967987445349465831536808726082713073601040404875990562776835852953581369097277855389830368076984569197231802079021985780502677818514575175068857216048375424273298314732032172279098103578038177807952395051980212699416540270078658949579558872816963023485321665956259842003659633053424227772910423495852364688212811540281488302273805092511791662371475434506119942256814994209573436358988930650774885284169969516827405660538240435394081005697157524312278449317365261684693411414400377378798776504169013723001775650219836073945459984570687586632592745470276649225254057123778871761719693517924191967916133646329310198807736042943950248805595840416444472411306751377422057244686331969732558519765109704663695664103160914860719549383465539109553878393507313108795173930962564936008456170260735663505380692584481326695082841540134941954137556366547779230422721033165714808470181988549005928387098902461817306450133273643897234323269568676974347659871745256115256990229029108922289688169448857616426433943029758227874382443073339862136007866597741349614128476467910271195166562648820877233010500300145685115443893943002582890162050042297730738400664171284102733880232049823758517759780595701718548108697661591682475793145395252846094721564432378041206987125129644929165861571218418687056883820832430650528913174255291226490121001289049945756724026513209954482181920566545051286768629487729648598160772665823727832530964757423676656447138671701783278022179325287326491380916507969481499112541507918940663710395759460556100902318026034989079082705392608223232081494044800155116853693938582092775359183622030174124414092152357428014432508881781141991607058048960520480757861236177027299757673510911626421462290899213876317688937283527987395093000072497884263632134365721731536902705545448304420741468068786624717197739918910190689598960204909301247318152041987868434289627651358003833693452531038964561487932325828664432475337447006380594799375153873345673222950723725296959296225576489435129573743947681925653458181411473742868190835160620218537968533006138365292386069575826798002236366170534791169801080923609204267578329670294488154892508896316454465226708088292895206488008836740604366754883114912680161419538194469559269076945105821854343180063948838103448510825691629418409034331836331381956043608532884739485956003358583901254523733166571663956698229993787833973967364465025588591161296475869069918170232446826389927861096860075689013821461608084337501002349378025028481264532632503698265127379058411473366238829867926139460956094147546398036861323628325368891318567534485307355039482365757372205840988175629298960021043891035294447085898874584977001474957220473572907660613522914388000395527271638014686834012225484435731251107312815396943877461370612991198659154188411408079164612308995571673888143008211982224577392807685057810100528961926025781938254471650269164950868103332731121804705492397555822859230217488812639574424409630777578634315939220909985407901107596950210656745490552685020626298374412348481111069106434722678680526041488493566201280113014858506973373870892082957961237320038984853761454182176179413601288566154730960243817014152175830608405971443191671702056498408071308657940570759565265900117065996172646539072921254733211277964231741700999058648968400923510549448084550994097140232885460220858551629882272916311035432074923627388050991235352079743758043110989656935232693623535657764513284637036238966657865033160138214617854303412330633746521370996963974051022616176230463615668014566469552917164909695869383951962515277512755754181600450346446135161585106591900264206171876861239579398618052667018750836536233489657154963777832683823295676544018633238434972615024734886022432731481938066883694664947706918416570024788686276965320381137934199127223649169421189268375085749303280406036682729136997798659296903322957653591185367985002693209275328160855395896680498087354288652561178040814273056388929721248489075357193048407404158788476797311643700176240064240586405243506619016482745418338831280364918264596122926260677667712215117351241581016163091641433438369470240274773891851857093810775153899675108235631994916361684505219121950483349144474208550181701243939193194128165790805880467620934662332032012602017712671515415931814637981489369198344353012202646502995052623268316568929523882309836004381441162229330668058350871808526537383827706514733085078975042134847509186803446919781496480166979682746791707191345433840009537176918388113718242781817789437819238835607062818885938321206135847893879105539066546538095665228207431305043529353679270865175622454230821190968332780101252562570277243634453706618566324610541228216221646108269406489831298849504573162168474195041336776664531277119104993829236396571004496126506115490329543441649548001346809649091803835964296678876455189194552123245865841680298909211464715798143013108753808948493472380967272545687614463889047183829821837579663038473133349176335812172371722142760150709482846895532510533096390134372947430244498906120256357974466600951330881175790523367104579571401320894996917090948171130876451677802015864671894552544565838154571372642321285758617236186895106232176333186126447868128319253321220923734648068993393819426503777919813323819617978589223634245024370931231892488398374987509249165134496128097432130950698926097517894704100121864854634495066259591484457500510523826641520457139514480874787330905971936401984116419561860762081968126340913476304440800803734397591665958521224596899612357933134382165155572744300899389184951948544827220940435476850318980430886576643964044499807124454877616642023729316620655295634317900014928276130518215611163207974872476665828720837754028267216021857800413092057940244023774603111431947970816772912980363293333126065817118793040801419921300906369720133558886407998441093196685971710125441429215352084003173501092958790509014208791484273417667295237335525203303445477905522876555723343883270858960863520092264820256979469169266166440239735927822022834709312613952159365051642949453897886118137607229517557019970965254835589538539915940221786413665463324611060002229271991554160578889640660424787170637577147390306724791857313960250763991486646676480378261235050962971496988670306123876671603241758659821349195371669634072646985467748849638124800616317495092792964590261449972145446205205614817258093428300754987162147775409163590758851719214841479914049831295455610519690678630671996303111470646133764883195154737522829000695932672556131702988228003634360531546040182105389302656598564568753101341258786681304199302150971707140505520350567359211949629910654149025911525431664110332935511341135368510293667443977020944188765080292477697639186949714427498253643822211179923363966098031960613004402914727789095686231298031737036026105871658891566953950820575140196005031547843134918778715529245892764382285445121949885784741483849995117298384365734174293504555099302097419822466600817060178564463919922539345283152770176954461874200545166938107729023837795259362011508455921312117396228244321630473627411938434367843551162628569039686584697155323503410110410705045508382580534056748034144986160625245514199887392607665473195639280417154541421620635602721517459533563346462827569043374385533372868310261628207278681036534887420547946064490040550615277683709990698496641006609207996554720054506735973731414605843203976002999012395915045888998242811866608165786216251157404687233520048659861916700816127658727113751238503398695019123442128970888743858993571720533339550167196725468527959546532088363489951285800872415953430710111232178208967915775574456131094046871723647213220061954308540732599422539028500368066820377116057815133556741180471290449918885335937303345019055302465936490618908535673153455288495345630802102427188115907671909939062515674914233552525621950576318186776812774269288889636104613979826368368767967196271068564301762665829872648426924240937184946206930167581715991197279716595187928614511238092592229163741672909369231311837560843483924501304789739254784415578547023316289776706575670621777236565940734350062282239607942019162952301584885432748707351490014903396810950271129874694843708200863362235176100819282053339268875997857521494528813222216146341536892590565730607519808012669453360949365492316552436654194116750554780691284524461603741187595560183735212480018137685594095970243672703715415994361319275155378212790749165940782635255884981172449600241252998117120571947090376744595099580137276286464866300349117300970667294906626515362502349316171637899216636242412174302604373962182820010225386670484597959059626242233417159682679322778809938576383750730038315641515385134563973653498606292391101884254834175843316167861736913805162304792395358358009071821145112792250833970323457574154288961471055927737116887475109689880926144554867096893977702157832420611703829924358976957578208748244004064937652215273169014184908850729944592922097289636040396408983974548056367402807029020955660583228930934244319108444150025615566303805194146895927017639388706630390681998185253220261645738524432200038320799647717038307441795996698208983425438956921706923028768956567102601641252776085906136074385026732065591517166700206004673926653621974744590581157879320899965005687747824305087109289593119993596068408108410604314297896515720876215975148174927802966889207590266440890517271389164203074304747361388770474810965872438180094431500602500471371668210568014786159498102006378006339328771244987310828901962314491399122647024582214170094936500145470859554532602130551427213339793679991015243084274041219215789052861187149157462513591951010824117479838764046121655978612494928510457152581967016617367724977762710984895531504491690660056028365990804767980167220999309050952341835239992444178273350581587284595938831751794365120448916346427380577019021858872755208590090898772172751671824113615322934039260974276146665085063803305969945722410996016694607297834636377865795503280155120158864890439150323174394604713245308429733272297576401206470751718610248318775359494535395271191465242532152138182061432884886061939363032423096861625010400188775298449445797137162321337482438816193432864628645313665073382781654495706419229716058408231636671593547374723161412285793744489376374224905367440793181297846244296338509021101552446639525455953293437709112304718045736181677489758320217693800814345961210326265727864359673902145398792321838468733533504608891773415465481133341261209730770789049204724019405710549886873134751856491312705228909302282329253786180212607600082796836473630142167995113745487362649300739780197698718475639796908796367884428192061492602763028711482219014301577292967904254429812149692734873547680435214431663038100653941392174795172492659972606716135390421173715408532567263077881265463073707758318311989050563190952000621357313341575803608328054604063455683489739730435166730903367069763033494768400248917487811707998140722777246618184807232836503423207834291464451039635272554010531943008803028139628624198804843944048512801240405048566106219864588309486115785300855022262202711576503958656783167322898667229867291302621149991285327841767592044014043743383767354378007023696847725169633458930663201995093440864857842998752979285131277805369698948143789499694039382102043690428278504963460098357610422419156310484502797581330209554198400201077425719555063392916836627243601763409849743063179248121666160157227198043019049308602181574639163435851792483077462451204718686641143526981414093042264612537863646771546745026066208671551493543333455022267329584466803314679632881871738250852225869834559264596533135202784515830255076765916948297261832692426761193129181241080840525225403949009140057402856363531813077853567069973018352795691290330054988171779304356954419691228213581109047145965405669227483015487568106488986946882319059933510093351170931984722116089341918407231556917341402625541306128663501941840140507199967492153702075524536034164478204133536664871155715206579942308532491295979314935291000080371873866638577944940716523620120997406678376440613959984583271984145630741361870216287361785499598279567736153945748017376090774893180640436192572424265493017326493911955624769410725482616198054531897324800341317097811758467240628572428848225306900187164873173024754399497851839424877626621067765872505959877451577306538848752181263975365846111949614719988503907802964708847646802262035449365132748614107091628091061515110376135399822831996654897117768636061666927122011574241786711367983937384620541457329295558256473592022828268720553872810156857087614582018578335020882864671015460945661717455507350113546078414947830428316526180415612151903515057886706081398223903229418327105566737068485093616353887544841843109013359208312609657436034501079765142928760609008178960159736292178675354277542770781883754724632772568888782794455785832480520136938694339627094656632740246980597868596800928103107619615061773563336234702307736432205253164143876464403737169506444093797197620297263959242281026986263366141748330397769706037091360304640040542010614335102448880190034662032453785074427978948254303926361772018274504192723341136430623046760887882267617264669516832932617901032251104159882323714437019771497850600773614050669987735174031357580638672155173963044107256758521921061166761550524221477056475458381102483273917911739904015798396113442457817188958318748238526752730243208647692475109614800867803861891314853888796410082014593421569260045371353958500927574581983282497711939205906132629462713773447191919195868017054778314808265784524512758824203305306135084085692045576242459665983584656874088298095566221272592346233336039586987221427375406390920483317953761422908358438305338001872660600410220183510211086463398336807572649147763028971149326328747690118427007266248461934871440153386465307919794250163142613218783785015116265561686996273954915712526950197753753961754141749489591305316969492890708425974827241995546327922164316345220508908858466417308185925453224755712759278340519573202736468308616630514535164321349976864826139699799432200768472912606789491002377852784811725015760844631311257744599687083336682778032927970395679964484473081320450909212254007824940682474278098512235502869861966793790603415568686182168201976328887779233870477516691023081780109246824365483986070186596731661549159965351946023672005605807677968265369810139083788131547484587060198281726567857531375160960960922025928545198804915462619076398494362365491568957586673332862726964465946520509954405889604282124102899714770819584609199998724472073217412600461912316416064451783944574396302177135582189606398604182029185822135974717109215879932720877634546141167886355791142373941574403377511321185807930831311632369905882166740318943105948688024677277158081091154182947745289949458745281877921162695091517384644439715758674622678080779939288397833162616476955930805574476796662065499510636900966476489520038239542859434527846505760172384906591678675623121297771436079615775587055062617316460802583425721372962046948832576232941293945305388897694702413800439695884904047694565319704595387828668595086860849203328299371613529303679289819162158577998492534879806613407677435585995400077351511055736136655834906384722567129961056934031263830935473132838912981016614993155717237329589418345450557913175893763388930499505571002697337805838140127385183302691435275415891453514073272304030304702199015228793767164999243076273724127560908162252333558128929074155982359207119848380427160545434893587481079271672819776378566854717589729612846650565412352000380004471920724721693103706922654214316167027757158081027588962357060566790874069449081609355557874555480551953544311704705639886246834866328579253135442934879519991710630735877008082035787407373508153264620798385817557153538773572322622776955914779371255146480698902231793513094244813400821773920099085280830639373389706987495740567153257796681379317268921983243846224412663454105837888494440307322620058535116858089257563991594637799528834603432492481809933745023818936123560550129366328301971123577413194782186885982525801558821046296857826236515661560330177049810507292517975212454364277673521127274242779088989189019917588146646680404798411211867094388618909165050193572203184808274774816727496999623491273472424503724511447412323394298944602612575369575704047548769982026090469335118296969671059354874272340696419628978457865105582689946571528217607290480106024089022984970783011722915416110706880431895851249942474022490894207319415299295607908165452234367506613707902798409877223055709769349254086362572740967230150223413734291158077615938237813464195050382547648383749551252358193667971135147477049211022634400836371227716783078291925126605030076818759649787900450491750036129968263566823042691406857035999225918758492832401360536674440374602995205625060872679967082230645273846123411203143547297177510630202419007977818714787138352272866926638165604787231129496912618886012961753663261208757935605008085268945456828502659493647080551914096334709422277600165581027972958988431621254329483932757121838034472607245086895611649386304327927947046069010908633542120637070719586330282266256804095937140776198231768599701837586329070921949876203910376370692991627579288144530885091732053540550209494986196538062756783563462949470979724080146528186202447910255078958610824037584189991526410122390022728282243829932345931870054885150749502884476552763518421054185450069238721395613502708402878356944234641191666930691369851224030861757704596329716220457581267766190678304540079220476101146488369946932369488557713330451642066631765179017663481721874908849850683843652716824131580221643425017294132803181995098305932318596705865929968358920420091105240404862310022863243072364040039638553186213163477534740754019496575738691485698963516608733465413008919231930127074290866611198369377206508065018410655551972343129127834745181043850018181365186537137265910848692259460918698744202407905698512991004838773898292427283934758572498210755858203068190605905789453868673650720692042950052394198707924108355334741122620470772687020619996818690505539967457592754263925841487579975779684303044713804233387392324092073240183012694781128916024433336393416740490905540551102529288851926661893935451061018674293103722258785214659662337001688655979035815463231795278873437237762180846978714946544840644735650473969366188866490267716947442962949098818170417817405214511441138097311557596893871823767761481652514438463220401201299697185772407140700551492374676310071214327102378039601637333679777814798748427478468110942925315896648601706114070100852973667303954565500909104451569969341784950584813586176067438052572198282683811609244744589118314983063851198359508723129011471255767749774315168976314817021818620189428818879557145181443238838485666843393123636550901310694808498472021082311013849762996863855452139649703241063035756908065391989353071535891506958720147076702802078774391548051326392401397418670491678687935249963861409971027579987407599109342807302928305264604095221457856521471869077201169749076368425606691550633023003397982576287785215280290234102736170986874526184917311516810864209562101205577719847212910843363747273395251595966069330106839164699193711140635935310211938973784259499753058390422016169373714169569477772269542266053399150804829385259603716378436619461494999824753014444194760366727815718032515940187781422599585036484863774968225029059263450428164288906131501677048306111987652315340803227589188411081842920785217013758705365438856916656897664420379931494737929462214490649557207061543989409137413823432308309026921787865450201935376240635394769965101153168242236377725640848504638035555235344542397998834793136521438150636023179283991261725865178212676744394149458745669979223104688263898422794260289723597509439556338291979500759787359743520749291003412844415579234231498847515192162739096717881491778265058921951405202917596616619821411599528562609459482497429578329783762859898938972271381692211302945104030592502936743680896018759165446040673242153170644438349075542890955533396397869652311463957974156433835329070788469763075886407363501242195747494494085388849255880831083747362818272466503828287295887262087429288471399455558469069127874589510230478492340333840172789632161274330833531088826365672420646438836984044697100265382520084371242627914405893811712613454331383787831992607330717171001699885402728992522146528354829038127292741331322638463882091827375659581414333485919651467380072990641736312649170099725454570604634892797419026220383229110063281158004733624146264586813311436451603237488930832659153845218906953819136400827956040151925115014719504570516889047474788833230044531980545021355670088278926609122606384532705206133140994344772620554581120653715406961012148011887061046830579455355767236716213471894303711044818614486350619071977517847399494619579353214206686169322988070148121828032756376537893488524131085249832846148412177211023189820591292231824891893524569932108556222110248800847312791127069633531366747971934813201536909337407905067273825983711342977439468546548157403187448102355573225394646293377367328970249246097026527374389818612986586663183343693495628501269864782966763340666032993991191169811165561119628975418768721939668965676493698976119193832310924869784908652849817362785103826604277039140425894485113387816640336058393851664775761906810133711430417229863526540478099268631318241692182835630440651626548217390620587652463726469155158214494159255808497582713600586516110466199358199724324038368912756173438793798606525145768976942428193684752319522153453874691258497646097473212859292188192819787077200225456441667385788567044611991950336666731082763799913098114134771058151859829157065315204602484533423262561291673568678084358240541785606953855498394333406102869574989525239864489967664381249599827855524608996916382033077727410666072556420776492140405800303884336059617933020755447625449328643617779381173527159748836868318149447496753341832703825830448798066011176030901363836996679920523044934094784411263522540158217346830033388781258860621417527402400660252673072094318473543503061678280771690670708655744544292681823797654037725181537376311072100191429302040265201466030685320637903024927207284526580356488713005903971661883821317189591954483214446850201950309991928571211651960986388445181478916071760937016949383012842250718080171546503059182184798137760245192649418494621184895503045868677982946523275330221077251033401397728198342139562031706867085565266702373054853631315888702465352343847827697265880916749556203936126682776434578367796554091992029603402267653547864882782682446400838583565414786275396671308230788774914125332317997849054899633348747699633607178219637839475013026800550586957454980443330194696152647168713168176577206571734993213028899519988475821911227479597831589636668544007281855764219932895600402959978365303226224614856433795626819592981260301927422053196954878711848027060117115045380383618505882083980110227206943326743615181672086367432888498145236752568633872005157374536616737742346514764677078774800321645753014403845530392496273912445661790690335444014970556994929839939488796294885312765952793783604115350418993487101112564630329423687463624310578304612648016629831470724899326437572954070365521798908733865508564539795253567808097528431224793948526109354106517453938386211428639479605568208003005372485068327657436057867658179708206554862251966717806436863778609907751944914945566575124174360921096682419174336938972301840415991173030470560415869247593704702492739506231686623385013709321481960071877492380400454108045390477437653022186833503056407071973359719049572376844458247254335500502768940400390027159798765404367963472322101454535876048803223267131468126198942285663238688297431193912143512068556690296002027733037912533364234896639562243320927726426205187762457827126580197774613559990717492591630217982558890782268308632643154528047538206582092167575795065978290507272412381851162687774098249521701806495003608968406488617662863179798583321708514500831187121274859959305617210995101289539907849782324715914537779957218862225063990283669088520171106872954435543102590224221655976428567929934903880820397053758263000192776550929734818130779717888649786893602791368829251337673654164916282759207765140751567681845690996933292962807087190874841932080915452710446362291585229220075068050548719806587373071915490437065004660358458447213472534173000120264229787917121724525493522297345722590416134555204417767700581785857294053275596951967178788334383101837932906205802636830811180309701263151795948323197073284711236736957139694825101754937072626927645257673721808865756425577799833620060635096647215921086437488086165101588848290183951243938904239866347454270425924478933297086716575095520563379738770449253839212343799248266130018110701890493879799181283585645765516860152095371448099405352285433040964360455118845075432070631067006364964542673349662533029010521944064813604991272198582552945444115081010783332254342166217919428118650688700665449022137053684003445655570902501409604604410603163577079148619343611162724603610831535801040058824870858879950621300753552218741433854007407333082461094837600946897117752772542692497466317481051281619345075004899683802188022415471793552539617007500597991743688211289112909914189574830482797115008506656327135093020821807988219484192584376401035877005982651982245629344447404364987713643980611007834530259511228681487763735566992725027039306779171345110944492336048456232200081949948689041698298386190027478031896039837389362031979665865948391411783101074669784270209968451746354713359712987205535219248381727970020731828606705051248211216550926839163716566576463426703886425138603592231315968789802973734503715645537424134380873209786922090875988853584276246483438264837703744617833138118249301161476092441108492241756507886360107049059700483579097394357434835813068174631541611853158292534949210872050600090440495469313103756880037581980192205418136483037150181272880147760680237718869762303620249271455984440007092413205036112236331093621039910730601425819866980826557054498403776108646445843067891904401660495725712079405474129089544905011584172829550452943670083785164484900217799946000046373442965734325988867436292303735927825609231584587001417510036859130426825479636824836326514669013284469118056265153263887180861456376334052051195443478369092345090849984976809872612304855542661516636360155097160198277330261484988026460764161323926786788067947762627999589827705447545161359518938785619806942118874196467643943002909894121865675162821540651126885236794763066090111747010566614669329094964324469520942445373696778376531008619035296794042113185607112737542969264474363856887567743160788117245956441264642513533769814161353690297656267445977817948066529525486097540196629133629972481374835892468938410712160695907817133777276764088454653536755523520532889548984088462480462591938297548155958876933507012486986626455855856063403038655327367822288817609792374603445694601139380415409602711325086345335590748777194226523775495192136382129978994540315257218511579610719085797135408211209414187356969272979019976205686516440904909056018171741002816876617395779471518150147966772102827622501750958814423315966039350677714836465210514064613847029053769029193384753902571771689710341762063065120410764999677235266387863432472343947720597659740295121165252028416819108706054449223384057228363899919369338903564550045065150202184532052311069081504457484709824997773191924365442276591103237588547743155743670409312536385674669771136391604251794503761281312447170055144403283367874517520414574455483936226008410057636025174926053228009969746065774830321097149906926841574285763635332796629973190830233942940063245857333512555776062612649592510876338298064376864498400483017830534923068149407035749828906239594996237892215011528075521121918418675595976789947963757626334031577299043640323187185310350954181978173091993225885540165818442735967381659010118938866248072743688454823777080398963021057526304612330955360855834130707840117219727910781283102127381396271804055348935327592041435690808867459593565720690487617713766583298776391912330654869921458628451070046117689349467128726617397465622829390999362955799529373803978207660983678258025405954734882004853609577018073253902008175321950990376913374087725710544227375142545270327563683975912671278595286263833983372392591623131122501699719602733688021183785269465733991211068517386054906632640299639421437416538861372908478376075847525276614048677523837185832241962443224961825179166823434226637590754092287399443415568887824058272455339569812685543107370293340986071288980390150566633053361405792401420920743064170057204094209385427189141161012182997127826308614164554297075565298946277140622484260223745233498153847007610215498704015883015804530414443368700552683003794709339622161544462093551693323425071390560822328100900937221770762273121699130139124027668544944419392281585530287109179248049577556432351180370487691418516536149264550348986072513351523498425640155812450998005026175668925511900632323330016311062241287021589385952567665593346608249994298132725836305683818679125126419531681450447851571719311063487877139667568573873167601343949463236421319167615893053413582972895578859490888007883244390015019674421082897603279407493103581693155904093782877244851222218693131249247608220983159161962364701191210414084006541339776342398434118089025671928064110643478640076922827901018947500212306456217718970057288009259912193175154380347862887044384175453548668721997073313770221466600445255150609416606554263684210722077229150231513300141695723819793696245747135053043140927436546241180805616427588466439251146490188591988793467462063016566914773028421320063429220932129980040523116295239924261488841014509448516178318843366096705063428096195893621168257269922347890614786136170009388817801960932648856561743512955737534970871179424057167234758268145967917717538368346542770793724965602712799624527404013324245558779328155318131763812846108019823989802250191170884269372743537307377196573741013158622149611224680475591712234118331688157600190055085507339514488579830788679143587195349678857746276757556712358616234355333435089453363942060991418437062658999793216226097946812799734595512514034814384845922659717297387649690124979832895648257803023367381214282226846522500658533507828245571859942872920494411316270354101251292039876880137449082885360534366683335064749860072336922401226318819504000343176486764768388460378438568580783357150523381089998792092680142798741736728475211492968936901500540116360809615451199039606880407463214044154708268909169927870693744884240985329960156557421652408459393318388532411411587784067546033209224611238563528656338797226624645820863444740148267343056717180238894811092011879024231068919182091117841018220090151947208861736927488241036962354709766224287091721598015121032003893669961469537125166436415030693049435154763439139052413893393929313165632396053666105771088650590020058361743305552442553659524453538095760475018973401203278194179883093937938503946156892612768618444405443109140904575435927333917016852814398577714724213603241983339025568191934860180799295152057338546647715379608125828390377328602738976280977521996632598404370500958450832104257377643077873451954808593532542326826646211705752011269485575025271525699934319103144587951412317708111980757137967503145101579724753539647454776365653380873185807125654530006514706513841830102706211931422761173330580460576731657011846738129401941234821203968932920294571087597608818560967762424072461793893241605337290027960512855196788718795141274643380341067134704230421359980196098214560816054340916820813764947125581085229197078140326904715433892927302236795017573909257573069904207328073097666910687317527734021162954963810107635190178713380696689995084290033692077538672669666660339404177264400001568144076695154602508429057061489135536963542839226195763373993413010114410100224465983076829841928186061793882408271558446202899083963838497593544551112999918564034244351290866456507769424222491995268557941142577708719980539126455025070105914344395894290063911085679732554294576312092077428401519620657064627728420521318395998768181685178119207151618861786476338241752230018628980930036614213492562196117594496387460442199709909456167242661306564593293483569102625426963767775821100640167170061806890626965881119375613201987933566740641324716007176004542163183475286751871080711173615587266010773103049755228176042580040834649236678772975923947074613943766342883000568036481784930329128073539524620810893758166000799516184247746611913678305331087122417271768564001564273770969405027191858135182432524788633364352150885123189177117938191175084258685009664255735443240290293485808990094998154301265882863193916424647350252329894535470773410962588403612864373464593981746836688430382297231786590494999623988532098790857335858120876411024436270921694504678327834396817365732634661574025905077895433114352347537570064142986811292743271085686967080997424944628345727912218808369410073046807817521681422669490891066308842433811954439379718764203215944532417441158568902423674477582158938878375700307317318214842601138513035344092068656552813186430633266122116098383113195214821748267677574023516167495288697846180350671182950697242983039499642061130487038895714024449415725510826888704615920957593841872567268316630220273187861468472664714480019866437965121880094931916927195509535901546670687448588617863777397546548417581441695949040192544616548771402658576211422640078486605169296358422352974362313613227114766526531379652976201839416797349944372344334084307157949905916573455978945617862235972303559038005438527827582227719328532753079865992151634598962119952920941672817387156016112322531124083586146333198728445671261455275758366305742688654455244510574403226468301174319150269591412314990713806852180676679300536014202150810079219731559608913147702940563167363707706029858973821517867890095497979631116539469009337897891106695453925122953233634834804716542328597542807671222634265271792329020763611629972239133506317476770958348830056814413434339508627434606622012980749042348355778538232390646631381439411698253167419780438872080780132129305278561428074978113958950724720626480087809448441993714205983306959415182382440896795531564488530663597493170376171843595100696382686765766337557591606415847955171089145454727185138020998110630655283316555154101107511923044626959675337807416474831143473941522835842285545586307892932847494192784895950195385445352933426151615724565162407460898595730487380818037035728714011875064684911593539290416299879388186288699410285812595007819884243389086116574647930536150831744758774682531930833314333150078350693225919195678978309594511973983696523296714498857923000235184748478628055694877591379355209855804323076139983643423639190318882568572968015640652424886906093706759162194147113839486803993533872035253996487590891609309809255579690887984229426689757023109407401949004755520624903797170522035972586196129818472833669962293052331351037510218033204791931684172643590984846262204793104164945842298799029377666544728518169092715581550963141352710600127283081189435426239415425664199684804031067697799268824128117103161602900943287221043889089264762661120529281388687693361392043552832413475566617106992743606316668239258042547589408045765988331587213149326755346263471874226443315095404272121799036749721305628320685896899721854476353763402039568670330511381563889113035354952766041153052135427246723558450257559668382915373197084074269931746388611122523186827356890576439399859829956296395640260937022832265509923902101414981503306399041411111542376112143096149217747442651979967469138473509609942331779830045334377044036592968750119474497167648971920403502066504526264449641133766690723611507627436984250282623169747357054341989253232593805397803492561549479789609638208764933792301723177062198798501148714531889522918184121898134607969529941230708714953765174365794714543247807410648692860512915113026734607997016620566837794372144933389064792124704267641105262897508711696650575332968404772756197008365166843336224646634634367364842479897879325329395449112679407175907204196994831258464606629959112262810596073665265361785103120237709832337293014768977363442470740041266128276847112552872103649250876261031390271334442126698084973626696923628768737774313700116363435972267058813823052537830404626966709062647054099346133400925834661129036665700435493880160635847913369307651822398647958704133278459907143625744145197843842981234913037435555207753531113176696037029523738299652092589720833907681778011111989731720375307510682206254790132206066271976755163113655868223308466305625687250922531129482607328952750507646083657405942718387014184225035978292655897621421810678764991657953850137310599143263154499397149728592691078493700681427451739972080302349237326981097190828449085968212821658698897980402586657083857078990550801759249210189938082041151860328695184996437433711721968821157830008676326015694282963132087000442240629114110499574376237774496368004578184810788127458208808191831864533390640240623708892522542269382717143147734130762185186213700662963036459277351358306168933222393000364083406715708106557317521209056109536966189978785132329463531824647507808010475035835743883833926164693428642208545923071184416761531331400047339708751448663761057056544236038471584093297267910113264615481796767179189125504246729061919440813440229260773129310997070386000829692833800371706155701802845800675520712650516007678323464986148946213759772766822096079423090150502486425978807009227236139287157942584486446674981747878231155082418537298126999827285137976146327877938227407414228230812778321640964574383425189259618555704792298520799331826668098237711087218475096993936525780312056625073201597909604630223425313202880642075555524541389049503991836345547197506651504687469393102470656875120404622594967240740596725017185965764514548514633378628897976267912168011049904016883471010496087843897629426452506722231778288503100682799491051911912181094271677058821248619298814831358852415284861813516949745858828478283160369083549080789817980299169482336471378183869473561693823824157040870407681323838876683098373226369334642996778337713974463005284704173500657954510411059526985936932000394895728144337541422154246682210260232461680480355835947459837878741368598250545670321673269554259941334482397601556157957412224272993202534357466590242857496464653925721393318473918020088881374081107359161157535341883824486728600610307953730592114257966172167558901793613344418705643341549942302927943151747282524100126104319957707583321056557102608595748010457490893467274225763286003483089118688426128448655989920394257177153474107152660217839333503044331423603871467179013602823835782404129971110358890856150652499922683799419065315119792909275032398112950041986773423666080954764167307510278314318238493343545215391317246384879558836634282455890483575751844487299804919434420033602878140111366125422291830295428819528880868584998008694671596272106489830323599968773351947166564051412952788331710721577646247584291928057672711271905889526228145907340344360313024612702935198839836282738205360878183639288356082888840980698190161701651811656232024404452803072311909893159188032013455909014790839317364215459291564225000890883661039154310417555087512575364539132083701498454032410359578994796187241425386592680907973708402174139272356540156311252448856971573848162136878539968046500488576767747753257527376650928762751540110820464706227056572656727897381421356668176687717947188808100564865631331680099721000927218480948198305323074170240956394366387759138557556119214033767804085020414474773252540668571295640146447064629718394549987693649393655874324296709562886262735844714615233888559735935406695402222107817008481185853801876929994803491940880299034590468974146617011619340168946227971188797934235520188582068000506237814391825026212952544623469954216943397766993061091306722876687219020530980025998770851871195510809253423425917199203981271290451477514575128387369004977476974380216602471266405846965130069155309467869294206907691065978520029242520233673131309502198334855273503224425377825541658940400167191550281761735414798224159724570357484136976180293069297483271799523586740722833239410294202522378522850976512144717792893454611442208499999763060750283704674344414682853724141653172994434668210278914395291929665654072832401106502656293528835091254100208561861644635323581602215377636572931456176438018490061658908715423657487903325259458766860281100689574425976051965080152842679806143244921928149963675792076613871222013160020029621917889439332592961647189567982972043014305096828514432615607572827852809741212096342227034395247007825821536360835178610100818101590805478672235056769120667759125160533677396956006267358660349970234877861759661129907214185762090351899479592603603413286235184375121084140481322472284920654012412149750313880285281961657754706075960693214648824786839352237503082359940176626826299145125709212795844972091855528947091433388006957399442222753537100220397165986978774471875266079161245381546403781150425568489168181122681884203552556177809563297049911592205267078002392033706248069508498009216537861560805581543194148796965873408900085317732041818074618349984701737470324570540461449332815115095906688716600034858522703497304091185998662928438799718620229855573958232727288152902180461075468593562459767898942557419797484776065455908030553398539114001032038984995847060202931308293045367438936753949735421423771632186324327117086517224008296999009380474053033842316396057572846636204104361568972275207009496853495494334251037537460612222628209236322697989118055036575892762575736289376558319698681770677036907443123211555389804913867019302938582475350632221642234580784730555259908355010080843055660352844746940235620717754936796962774603244786467496237686515451332993933626078553642380886344714928611019995257587375766573272782072796732860656510018922279138352392469091535148241335493595927888282687070747352705675690674168406749689221925659656951246308229065191472336018678002276550434297437149523015261019974012910599335802006147490369313943769444273032827696810528945659892821085574526339727975930408079559099988620100965958818344700758326173241177241666727850416507028308508419301329782734521987695985858219455317836708657732077801661749662581287830911728004914490894723315724902645523346744513143440720899722872631116232410946339155661048115861428735321640345737327926025398087581426473788600813278023186420433122287767666212635196255035338498564987809919780857030122028309324573887956806848292712858909810236287976927430302197530655757235265195593506211242424171305022223509837412716919404655169564038087690050360224702919957263833569262929174126631246863850865181019941250752829774065925584620186403398408729680124735309068605187387239525240516951310954680785074145124545658100344895538261201694555272618751831762188373134351998674165980237544606786279734982126869275540436297365027470137599001224599927520004873275970613630040779727893007133998057413606000654577697581412807829597039060479257883362673260075267955526843643411863292381409793333896088976145357747490469280537712099265713762309383546335316166049419464173151754434295423876004608980454438840963727507123539638988202748134870476569541081611405172879856805740455887245332704421929954839933094299014043908060565194968001317030223143096318601733401690636823786582983902611715347583188404849552920113842504917609721035030983778122436167010670199558319103289494017404086099385614302731849473182165458157155630404537297597607571302734151770768851028248751837454411439217034067745175156981020801801618310720052728968166785499207581274419798572736718703665583962465071249382279352212549516667583730460133515217859637404704938640188946912814477442930837741430445142409549742157688647237231980417985440053007750756495750640501317471776135375125665806638274314210574398904961111092631024114992785604080815357057518114951253413331097406151587417844767510992603063064561955849006540337073293662039318662137549693650866283011247854258328467555838368960328374120971311707477727009261016560322758496939859296953334545015719038696955450797851383771067286517499672240979579683112250898385126948504418073972183622795793541027284173545387984828079653426095481870609230831498490620424711515065477975427444226387973626078352495721083441041263910545970534808549301490898489299428399251071070070903691892341488676974138137600288797715927263290584209048611729086321933087297719573366263783923702591663785555650668178528208321794998280139276830447512477456972526871932648383206446097878823291058618297090860766606877273478846616803065036929561592155248164826893938447190757730734806306766727146164471706461108051494458438882496231746316497249756126650542489107101141326080132135573505345187273220835194019043086360601292267134401785870521770917762437006031338726529372992372417203066710262041139353516024883868665373019524188889947143558223644215735208482855617777597326352560333447357972936441517053110113323114881161773828161390414828860382105352274183688259486940822275719740881506979583689309693793905466942099487671992428977849721944119404885692173459338355681675419082512752964174459723499936171919606815943456844028889686726750678420466409552930685161202277854179930167526157461234741166768693856067562103679505215858076863551639035611104974082299528277647692628356990194811722617242668117758966627128466837696257858408323213510139264309767781139445842117622345066561400208477631714476315199689781772325646095481795591312584639933143696431334380809707237319373620481135258952459893372254346279115368034333034100162999736662904222579522843447836753732225734242550753637906007524590055574240845194071996480227120752326679190668304404331630134892219351617442353710091504564285353930646183285989425006756141200582598032761446578455023156757706541368787323404546257695163735763627109979797219986375618077630331290451509798793650417116193337832903847097358855302936599997021063945042694572511010557406366433832821338019275573164883386673076912841596620025201506934253326605331700093982101086559850669795506415708895722929063573364274110237080079102176932165630400103031084746667184844607200074896209434492678074348917782123992756929678927705889672858010464502112840147467200128550219795528679287332291256169330913021826592059177476846613055221117801734084696619544541155633711832760521300719713285820760845582158104890739786311606392714927648229022165653198157918451279872684509210764796499347514946844830290958945496302371533859146281213377939855443967025091887110012434937685641719025456667502465069896354823530625208922047512168777058881342105511893657039487459487388532419102005884332400316490771570229815615489133945362328321350164673005201132374079928153553052924526403578423454225181944801079885997150631142570764103726363437041659858514869739232787807907771767449619443235029102929026995721291549953246510468730177685726070709242220444302373569069975462128814176672163113715536913587569493359286802846193951440991231107274258668606503527026149540086936700266940064109850962712199745103057154441921175716537657423429035557801184645307300319804728234198385799717152071979727112932858164394256104609203472453029497096423560159542126387181434722676246060719249187576085195459886901827720679669291516501040632081164549943423083159226217072726516608206070882231636672824784569549463440714682981983768581606683466505858669202714546357795155734973158398530173517768287076126218181770118925323223994663030707654251572162810076973274067124406703445563775531405118436566168267971359765393241891333847960681251776848442925675921779205816930318136765055022906839999703202894783195391905784250825027544151105057457103670140449275389868349528092640068240144149871421466321521234763780083333239399134996222872439813265432581333705406918512160198631023166257185504510965928300112339049025214281470951483182287127818255511942296362150408967981084541941119564341400464393192355355505478062728684704163310081267230180775302166899667648391455835748964878518971035951194573912197019825262271988254601244987108599879813456243792289077807131557012050486275826144441942106329102260226694202480329380355273695788794898609963341496260211664989159860478544996020444783797594803810722113178954118617674107612678875615904744308702761389357768063598273618136049799327771095378115415012864938320936356316864137853306268683282314943653205946373214255500063287100150080084521026968144623922709543011451116540317288455793450298823277080785958050690003317629942701508229289410480478456494743857980899946645804711168168743828041291234452839906294782989772795469115426716602580508609090873273213097891812627634680310407575846126552107919322762161599841753282956630949827353530786311902010250395751446172772685097231911617519387874227305795155420176535222452746544785748923762377447590487900936081215208312070922368921092968031771958077691729530560982593901285580492778028792365796788396217237768898626525370624837608879037856065607471878927739488317621684213131942758130458191724421168285933731152728981337091992886744335672892778565790470662497698773289482669530289221367794050020188180019806504724230338403561352283695603277090049491029924951011537399775492309371392712081134517581132253982390152345747138793960775906552412176695182547994279203280822847783031736381554512181895995205260221315939945812948778892615459894227244728497660868087534022236708159919887184309997693422637077518643921508467808465598524826860045480984641255165389925508859466333893703380216320144096549819257001665202101650551474802742859195536501182895868039700452430973819823598843919717259012484415427121223624654148916304077890218427737223903679125730057898516009268789826007203045861751718264317445986542113027292003605772260707031019304188938518142495214160877013622686572210650597162430278253453267077085231654915868573649654704282350228756558178744426937232089023036119073485093482173181917850659346319963110442548194084783638354513045767422767902873057882112808825071565609014107801899027256864113526281022973824609454273664786325441914262784950055776328033330834467648367334621582096486158537993013034999110021951620014831802903558542704768195530387121250789974845287117183867286268530135158349946932369393669504814195203456661404015332260222480900172969633788086691206427949460132154665850017840853210560115534141810881111890008117246010353043182049547233020554255556019735514173829414956945527237696992525856634508647827834609794101265269802393196238185705030434686136591063908230945642619200710686158948543172593124736929611577476443876147769184767407749631591025641292200907483434971139197693861223002284757217201180861868513761765183632347422915881629397130616691744094099119929404583456103116724172692428230569552933997783359653590993696258411107169652233112753955598209049220701472596115282432195325010259476500266726733218668973057320898931879095290301958638834129173745341119570412150496875757337724874713842635891921799276848224114779700988745248929376349492151299795909909612975236445974395966820043469075959510659518334535646576927497917107393800214644357735125744856388208051533555911638876959878392968837176534162568301159140098029250013909745373446082814224768648214828603430146388882395110896489757525558921213862072529234417157428615544359834434876724874854202173131446900228535530455197722291961354431160307354850742577760997648670877596662609223350786052231960616933900920197601366804072043360749856408890327708063285057554389721763261419841786632762786034597790058703612146602125859360050757056971659953882751660450477351626502797285453000447526543777185611712824507830805334302843045587898228307513948852928482915739077166307427665938905839428509959584667714793487726178578585784140719934623076836749501632415666001754269118193662052151474775090075578373492916824491035417240176273146836181826427313841346186587815238199152651577258556421511320109054215487401595033208706820146708357721740262309426339737085347390352356935403086514143282612557215697655693757991510588774246828279308847224015883171597924783963266214229201685546550460534669995796654924225973627013261599448481942869269183062204669105202317683705156707938661237023980179644603764308094478187058658142255217212673690421226951534549216595610052265180453671574233331768852776178290126914304534231329376795990732142644557251858175147931070540139854947973332935068579284562145669006956950489604817876556747292721211383714057014663173169354621624717790147030884833923942596254510491599411591578832383142196642753943817378505886568652732060827573094145046003790577304886681727651337571664112756183344336949899520580295436408871067721556881755427224349531618322735680781545013574287783367310908223491898679736872726499634591390323166027595152179784731024621161867850076326541673262714026937746667392799099608959472823255122542070634933090031742986312408737926620898729627442270108456335211917004129459800244232523986837503289267866572720272358515098301914561515464092307848797913177793888432934615380496623898364595351217230605531670619016579991697919779994738961078855985072964533472729664464472714400353735765754030818852857682975915385532819785239555515558613516501012711102646037680163647884531301346308016486884378914782024681160109593396137499788538862947257734758553678376949819397725285547190172364504515525611948215446429536020165601747826853919489275742203906244145841707324866625141000007545716886023741033246697699100937290573060649348038342515751804965412003943997049634509465066345336208155407710134835334491097200220000108021224241947450780941425634710124227645506119205481098700887319105106647299721134914946016170114098285374227970569600113721465723049225025554991518583529620866910996646202024743236552903340411061121774972412826314795571140458647705440034804275803563237049143432046254013421770891321950880742583625233223098864307769105430211157402219794121295731385798495946184303118002047952877722972707483415068862409592936226685575505743225889668961088348263774984367209311786904795829040033616370170596779530879910252680867876711104206872140221348238380085203186664928843702057108692687375824987693692174167004933561343503718149763061193864151155027859433773725511822744712088259900137206080547911515912960445853670135352741099546610703561487154403809194605814135494010538121635763864136765740172236108813104949711064212519886938345349524866691863428628106130366625331784018710049230367043482811819250151947232658658380054695704595697984140148007336850114124141529057607303580843012455759275790030549407233221035733833885479846240152688294307120686777137350815551304046075585581099684529407218983205361895327741560175133347640690535562261985232056191481740809421859474230147386611186330055841964452281047976266451016406022903911347386851663560799916956947153104586397260640125200820941481658324139083347922367059516175083877947549994377474754567469788384730831210716274763530002543326091183648798414584029694487043065048892805250636386269094934290176875150097615453310340327217200007861648169224382321254307177622482156849000784846689456028698781413036694128896216494545785640606271007886581507187851465456180392626158680572447375710901896985990590841565676655762672406050586399599407974969630408776094920455531099435415023563027689683596967879638992490306389010074997859244179744292686108817326628031239225788390762704557774612595051325608553961522035358154175553020586399183900635514007647474539309574335402863177569892793818153029763766860812248183711535392522080240337388560875835395293869752182682736040629124350323045130385181933195641229466538387506335466486364455708671139187370142482546262425812680560625245946267951454468251125052445416548683206951004400425425670567665476746536132860554538781290439530290025981510847406687787000769893549821181024527348049918626493539822667312111203302057766514939816586022161019316832628210506999772919401979431764108224569696557676329636844049418291931557119836923444957959430524269338913775440632239849472404085553603960739259925826020610146990957126357028783090552334101734279835209273672138248849339537455939855825054184994833051193219040297299013795914327142426825225891208078691659664157444262955991415395750424232882311701995822950142410092704337080892738375617115678378198833993596320268445926075603951781672354696572551594609685688351325612639334648349945025455734780186680524877523335036582511332903773969401641502538789761900558906407738893373986039443376044320746417127814947964295683142720209965133404340826304375160632266824187913023653775504400121315106741568215182515269719253562036919253958451395437979059803223690142453125006370396790199636028105952676388327832469259973868016870613743910649449644613420908243532726821238385034266156488201705479931282173970866264304571319542714404282506976517601816627513384977440712904992919209654652174435111397546168416246467816822692637511980812378189242345757988828454410139800791912102842546020789820254833841768501144521312239696645353211440480233082648113956186637196443466845752671194059147372196188251073353639624397329421028118606399543266741357527330693544161316527418451296617809576625214022053315703852636616955896991525553398659172071940675478093074165624299906635426403606972798638017417075106037604443833178031266227787556621024637205658389926064623779529301375946373663608351863848609959654012036545911886762128079948605461728704362971404391060937568616953206028528959011797662950713259541976506707099101528265372595642161346020520433234829788952914526078195698186343572901103218413702333001988973732040239348376870368798054726019556565481092976999925873714830266247672679457582383398352257331573149630313710263741964667199618031115673261132477847529037961847372265330670811759227991366921003110888074727013621068373339327251349942957999268590862645574811155409741303284337280584311290480228969076684537736507352974245214445028098811031504324049876692195727339433010945240153667256576024901372011588711360014158514514349690484344702140417275997517700115854372458065477880553660576276133877064845600615604772430949475471082151213065865063576199779714640276672041369648186993537136972368663090005224773844938047616190408883547956033735817686598760555794996783604632847126844233574436460953199811324136773048547883595330760964951426511080072184497035224103752836381469145650533758215554953220190140893769769865300536235572438950700763989743878782797602886399048944844497758416319808197479712046604796305234945504465104786924191170970313851221652233239984970106793955656768933666261239191028543984827797087113088041391438787092498398798180649564837036685169670491936076834864879939019178578858914167850731579734470366853871982190200285024320692797627267128719422250403139717226187303617294860203188111994301761211765983515811400078602791746005064344252854192716265371462076259884455101829654516098733833078340137924672766456419472588416190081989656318404586745437078585863386373261408262346310794031068307578940684762160493325275615631129850103507927112531104790203352664122150655856738160740964374542276360177046630490566263822666786008837767941548783990104275875475714745034820381606545960729380163013170256150291741800670446661581631390696777334798341592814749610227592357402187233705788927064108968566145261114857856607828926673247488490553246715746915331378370180018040705319854181822236004834142846849086213099834647415660209234385074432316671624417665317471367466142600615452387145697737385584586164825870034200207507274172857888576521167773667744672554221260948798358797322570516363073032354632950980871660558025960225684554164080874886385941226108350976835399272489643792786098978742402823355553543625110528335419225346704999748635956309884119266010535230072835335782206657827419537825294989019008392953003654450852378234122679746091034644424051577770420186911505822983897581058671966058153655617657517991003785194766827892998682391444760719019829240551822626596282529220469054195142829889238158901279867144447382256418021081818708555397040438994379756336281393853043168153573217700676814940965918547798219798210693786720572676068505008551899506581982443814961817556406397497839260633727631892034943032352882017689084004824287153918479412818281802878055905655705262231359622981957494306788286996675100042004739054971989955803867091887833825107872896946960689253092578299855676699976496014635591101137545323435787392088849775744781699491287240528484544349982962349634742995613360789016048694213669838821261404790066753570684416592156613471096324369343180480867341010314552206098923254275836520576399300833059670060013157516113223187571433813217110287604050269607413463441932012398511846197297202475492570939395401148807114772343865559830694144561641505618874201481855349724286252945094608217200998922701884204718459041917725420294992231050497854453702511702361289393245701346625670605231868050643499699945869961418404313186924627450642554131248075416355993705976249148032097921638088912451232764755622098939698921606959589725043917659974939053330760547263770745534132224950211425513833297454461023831031307010762615330509966140916887646425251092815094282604471027502361155092188681433709930098306117464127175837171008714570134856067749616047609468767538075378084423373287581175013927324535934339626167816014389823594005151720382859147967557706502535986006019548591672106332821111336422383520112195364223506721295611323676315603781769238152063515117420144953889047522835067513629919391242521410838392941207210378340587202183378139676221532456285441965917805412376878017292336230559434333847935472744139193116812053106876860633002885745056885112008512367138506499271260843716085111687873293932731424706228099980162541721285489465617704119212161567206134520675597355455113308445825097667998658978898629094896708023270384741986255535957962701772324024748997869107968680085173697248221479899213012976043791480323237906675989122325146240253232910658282659011373477924446825900193387545676648646529618346812866272744088819652974148016988002611683842408204907404116509803332219647000202509791500705248316712087787684912008356019541959109668702461482040851054132309030855360771208942974269069980822586515030214089067471742268423271542402687268213012266429088281372485452560903977074751078028626331748038997142112657858565484256194870620667981893581814027504929488253911102805492899623794534547730834054136324990835990659257054615242932008503552151207145656354528185112455208591588188989936827436462497372239692817393032447070593068735488933469269591594507067911513563037821644752923570027536109388470135588823974639066054345548150003327351730416172618310768160847382569921765205785187403493842361501717560902194339180030406474113009253152177381573818154077885335020125579418470470048331168071586376795384178043105690513239060971214952380597579426410079577764564885108542874498028151553751514733079918436319178970565188381790709305174612076734188754422714250899809528720114528876917820364832381432893211763162105812738540011567809516244007155128789639082333441454754095114262488980082716830994935813285130880127477794861823758358985067588677287160590002271338735665133102824859915255302584344848826758117462984696537882063547330504685318162187836850261981132254962814246019665323307196998140058752807860452057633275662754486574109924009238234587783263831794393583068721169308189412110391951698545119136887331480243978993767166342698525150988931403179971595404003120917384938348085215655463246694096616847678933786781793704879994032476210681028564483220585346283179616700092043415558145008924422742687937477637640200089885761375654116198025406863600943827720089652620467507508534927976249228271906401978603106615773375973349760564991829201071132913804796072241503208083372147706883842199172152907377695364025561251388643114753879481990636693324474869602680939588497115944570921022848830714978203234498124373890954352989987605870633234404447543558925322020280017320279683866170754054915836916454092049026140234820544704382405066735809532553613209064410520817522857937503303935134738586829511819130053667654554608726892823779406072811906800169435496806987392849581236073052054625521154309388549140031913154793886917549920297657303284546267694857889428375860243549412408670618642878467870547312958116945164268795914201996201156295941480647227726781277814994697206366791660607814878035954330148152053113920507953884865492422634260703251816101342924616234330440653387783184691577214657017101300190897277203500773138692648923057930496940291610505688864413348291395559960397689665563746894138524999649599773369434384750291587340650170334053149659222145748444689281210886712676085815445959080892766030883357434736955000491953708725291465637675570459801034136038840380289185145055240231702318530658987585813223112742102882701423490300665348947417301900211571874154156510567853412694040110276095625106226859245925853350065580612412366994208114339522332880394236933499697979954473204896300487446003607330257794221891639256221220333531303572894196651735823176761019314646786068888604871789869319244558771534933848636819409650193731599692764503306875517991850546260990199640192188834729810711117082867857517793603375461242781139435071126443196788818571623888947024524472676553494267773158128231167404437977547470032878174476354885306818695480400653260208153366211120470159719422074727184696791753083552478723524629817716460764315627745695815897232974142214816397704735349992059167804700734476301216309147788653344337991957119817006543193716848550579149318854975680450614203492097626487693383371103435463831416198916205281400171376956962258034529744690069273741288820806598033619271872992834393534004774226662159408951686297192217527989388761462975677790770957141846430269176340810969530517588571521153203551186685105844981334126175814389109783644377164277830192014060800919715955121907791751385102551948961737353981336332806911743635543363707814924820689115424605657210383358534271571651352669068479672117061147425872280663082570433803352460815297394285425011838419887308547518703591328527642742231286059078037450047730879097724626470579305702780522944287958147386129546083635238960158884667248784070966392273373017559049970750767930628897996175831993139315659710680351966230841578043489978240457539702329893617805817775228112461344425827325845116193062625179992908640665333568835083258906811197451997005079127854175115082003544695564415940626315496437598862332567364753767667201141568633919023279083260950844544022781415607560370534052877616755097476841348848629235559420220330155643289904839148425186496034326400522194901006449049883175077943080430913694541114467884577821622678550795691360152531675883187608155666859456871700556115728671127107022652513955969091823996728475642366444766285604811710846276535051629600698733075215363630748036169045613582154390858419027677042185950905689137120657653241260548519946811446199020092851556591092582316116407318494594320168638795140353660966985205767602223000628785640410223464619999406509255645047064474634755108292796250393890216287488836281932675667464000315215727022117527809109685736995636997407280866864886144065946411088135669751992947886166077792644172236329481505107875233780186692642515219452879658131054026740931216426083047631713719106381207426389040237118195279548424267554460021029298143966064025841298538612804505401935501105893019592598557778780031091364592374047852329125372761006771507121251424166611217672182219340664900576316783933951537204035221093706664927734498323418428213530570527662944063342260890544078342763094960938410327176651361931317768377499067899531099803261332550563715983907715419298212092613597960381619941960179954892609921941820034457632940746282378850568485705615546092454994419514352501272261845178213634936985845018031742765074046246485585748622786486740505959872218505395808140368175357288485904705620392686165822073743015287958344824947034402475038144282830970290750505029814973363264031874939138041867867193269978504927685792290154685684589473446642048532681347109074041029606002031535669930178532724877938229267228067863697364704075451827171159471728311425749143525281548554497373450557299241894394351827944823303354486161151797829855126464279367161858160696891578933025435361749793505515617779212299410066802211622447460519558424192085427378473884584701976755331807053842066990248907645124164304797631907570643593328531431176673016481453036408982675628252650358763853665791515191391223719074793199370810772388920428985583571099890517801258260098919128229618201184686554873427612311231928448328945022087567343355132934482219055873250622719153197898182444454475889710799517967021644395950330977575769392505683275055424517216434825897751872648972803565591397787491407717933382373985316057187750306616469183568596525617513419757987227483012067309094632764890875315997516686893444361697806370175050937328302668939396515731370099559113287572640044492677733840614552159351920035659003072787166517565032578481039804797136203079945917099403705409311470166206877585979979100182199939375587531281077201499730491717418609195850367357995606184103956275389831828667632071784448292817991205085526664150292559769650251397076833456121142252657187352011634997350072877925431184937728585950056914109507843195369199886309202706713963435055010004017681670341016946299368409714974561824045534853190482972939854516111013479012567994590453870098853738726719675676550342410170044565745978549511525937273595223161848013425146778342430678312745994714803222045143431720989324800006336307765907959576402210328710373454256139844931529593209351336644008905121562959775029308006222749362485311981939188136526542486652341941111688960843944586838932016683967694356948285040706289437068281136875189859752232322675923293815943352751510768853206909051783897671846906227496400818426685837807743431072996527319709457040699450771777044744766533337610121248435548116901112622183365828954284959198886811735142803403167329338208195596155825107908893827757732517943673930510733791314913312926074996631413947468213058948607918877715021723493412901312797808493758552950521252288241225498383810055052173284333714761372655423616577728288508511647199148559171207885067173724953782491767686400399882727140632768618071349823903680493177250004434235192607624533443739044699146730049645011509642063512929862167317748208401028105589267209355420711764403582819760254618102882515719095974959963823395322622972893553101360644358725571458044112006357391595358310203570737261091036385110867588756758420051173961968347634438688343086405788894399544011615456272496599179262436188131522966137567312243158709193764662654368603864365095729228677071331192214042171548900055435012766982158505457119903072677962263698043500949387564290187319985214516321904642439104209109902281888987199628262621551617820250389587245838188054281927022283247617712717608847889200637543624795327929312285871032579878959529221950194798730904301183602366198668122909152496594270656238089867511135338659131940837347502793776763108379508338245295826152146841300059882344244483208419562418433107655317696668949939630307160031742929110365032755113464503449099050572425160620284469050244088144271727995967822057651208063820090829152496411889933521326790318659888403541328676183868987692134936301287824855867088685450747438488132326202470981352128471200301924091817899896547980469492564444261645086778262814097307716832170594755315473850393994946906109386869087719968994153197995955396868803637423385903359240961957015138615437937796760511049872957160715043004758905965999242061649890447298271143825086538976738576530903580532013598630811594583382694277999734377399259174756377922921860149351824398331432161255414241638106318428588376377522770685809128994357238415224917447901481340706201056923518797492210897227401468149282291333481306397828958048409561862251729895856012310310084180450946738388945920911174658789975178386044191539533176023767331967597937904655053976041208187446261570547305719034725636869239370670485042376654120785295082266851236360051085432147790588440472253729670123662954532756333292024553074144328294161585323919761139791099016011991245453892590231656610992284439002297344715436586105793319420687668275698172388605560857804254556274560398473919208544499507518325585444891285479446520474055037897950572737938203714347990534910725844482835289698934561131518215975483955386789754827713146451721287714693738234744492962550259593834294573188490305293353026360900677782488201763615276329508206683983524304438794403852498858329611474745898585244197608842414292047328588745167251546249247966205460652163714483361573315029438567792543099239103613010152807189849257471058903221700389179955751902085816013932248737877349946375596444941467672438258865316555377930303948077107478957156794724022006915241688561811290715515257308521021977493831583048389644139939653130820074339154098858033340253097096789692289335660114293793133664169192080391149181120385328399794878332865415437254524078511338372966769138034598875563946902299533241253008975271565476101433158219688157672012642558918913290750386544021827186576659635337263165013650617542458174858398562881388341386804414491585461777129135512975084492763493802720392238476603877517730322789612998452073473221884903253720271159709046076534243053492587608557887821174820547987688851431433485890879633735485842386884710813034911369538869379070373949083087736465345530802896608101804009008153260983325990296316069952730525309183658632136777890187249154156961341491811066738123062394040731480112843157882949614563761580558646607496546521667130937376682875361389836269928468535153049095114917248391907164479996883353549363978099291672675298054767072364167460554291348271047350739286580911073762612711372681648626815679523185313677832877673324565638005601579121764345665419518676645278247050038559955969039703845084500872619636084678518285836137346612628108048999371317442483482304737018376685357276382656739981717207607784181485808403125574711659789619437609252548881135725262825235614231390184499653700958760637285079449339904038123163898687110046075724432998303115259552294528295210777885864239449600534469503679096098206956135604946396018024311462949495048764099778801712854791123287853154207014206141279336681549775679926309180849699732532618186219074433400247638568275680705856115546120382871504089839928118977847710248166140115935340009800849382293577983494236025069709300555767402193939249882877232430539478335004693349227484382020089573112597271391999698443244000794486940796353539360138603039718453963249792900650385604780925474002889437145328114327499893234060212513536301575277163400679528263506067365915134647340369047839403640205137972604867059668144287818467680267930855365069667106730562844703688701787693434084248641613071897824932738803765125276973306562383472875556964843320342418070198185199090131212859666510846455000286689717127797002088614105779796929550529116481137922321555195282168228353851565282299525213255074639514771508227101980658699127023164141307705949415478787394554191589361141015690982034774345945652491505841354976006255811721798128052895436014267710688523293957323138980495111268852327759470603329807274527793364049085592155331457918164774881926371723378075196077988280282222067148579153784947584315391301747409951669030479687230982698803750859408294137918724126391741960192810064822345274074367760310836233815714446928925421917294543985772538173451986182511307654246647710867960964932373240899438696583536100524855263971705577751821315487618035596007123687485432619841948188467792068427726655869620545800692878796358801744737135576450514386867981450915270023162237867217231797911344170100272042772878954498729871550272098743623062466465158425972859005419463529296043244899838953519646654957986261636262018792143008254419623038369856157552337330172894672405496823500699228974103740036622815239960327389433979898376005021834554430096921464521079168679079007942850125118819657072101800374813524771700931400851138849807011828764828920784658866116308556044531561514044594518232967153629738086016875633824597866253202030558755979619801897919965014452247344553628370870220427015237198493852055568581916101841588695957716512884558125509311863418548394515639301526576173568161229751558719334675739522832564752198350214749079993472999925373384878362962969604404313664973579088791768076028675915864646081614349960498554586379859615724684938700790522156129715620931076456508069345915885757611514111508345321734521443036727142396426570832793917501940687051102942864293237749136791782390328963038170483952890227840221541061866111757009485112712835314677269905244119708823242769832604359621948991759636296439163685994952202061891705339051441324894806904819777709732859821207278464442686496415679926547778149321553958886701774943122065387309210101350123700747680911422669489799117039090925142659206726077356147342474745798539680882670529840173531685686050776711975766672824082297994851582166902891108943059553342922070268168689228052887669912132167799781714805006140386676365715265047840181975412972229112893690506372452845941165105332861237508010071743883937575455826235492374848891948184371392738040261677666865740274864280026279463517784131178297311706425533972501742672480339838727256693951132621828253939905295753643134773096123030313242566826326213065845482046590254739259436181663363503367079667894647920784179082656249718308757532682243486068011390824056578432565853762055792496657288235181412262084351722397190062066598197124861735469083890757820314510060104513681988757291188715161463673072008490442509542418700743037967038246042003562903377475163903694743624894993373262648447131379465198308931534821489709444832405160732832659738134095385079291498770480730359047193666147174270217522701006003848687099665776137483616522904504359689924972005928214773199944823515945535045163687848782146291137486965830183763297888980242749764210724546977844398407556360433364677434434130506760409387494364208029456104948647033549751990602225062514119420110945716533290001986006883854638740004214487181974719693437485421571946221086709838924703720464095727041673598773834098835014604196365942959409867469474739862645410492268800949965617412148046024062259374938657265522088105889596621729047723235234343947222259608976165750258068961332792929866141078423759099983347908609507792184379931603295456391215592363467183926903505152576235302114774940202689633026978282134118055848748767909449872764031830763002098138509497443395890019945359998631034244581595494750346230963402923206835391692692368235014279035729471745034020031246824110151141696455729939643850853474144267532457093832656530882903119317638367122814483303246531510550813942562715323400958683669498735804893764983095692792496244371680664544542079295849212849703923402524940627166427196537100981138105472141688641648620806753237671629990840422893197937074732656527651740766435024327718078446198915236343517869508702467957349769114862227992781259047399619909795313851171872466112461317396087320077842698184675742080078255311765240223428760062117980041610723335132541087504218608386234391749347485868361924764297897571852354238759282723428479948788455985262351857045386750251548198554091581181421472949141612916531344561477270472432609804976875371725029592001748243954710222183982730454216921890636765611788907568581405893198928365361745729752924092475191756323725890622642044948742206519833129393303861078702813779194111694380343779694343262516898378266121381005052397680270836147016780670108572979483460339902715391707529912909565141452193597118308614119392261457392328066507174522121171879486943055476611382238418641698246739826143243949586170350973498564624354851888644672500404425005567660379656259313885213594452295627286399133108715198016591914005159072036153705684803550906927988115292982155203654548085555275383771385413384067067161542065521595021456364130097320442720702206926007178852082297199324784106555040368019730339421436459250230734033074298547083119179284703430873967200968069172169805504622543511893149943333230023755029463807066224433525723836727410678738223809539782896395066456392458959699635944492148337079370341758006352927457969920492376161412689440246113767107344687444523763906081028390561869846175449152018484521057754238897878870384839083911295203126502500733687893890227238457346368998576214070054693840955525540626424311439338722756557223770029243372659920553343976919674993205599446912179031392635338328617004492268203406533668062947201076500746049075420795105396916147982737757595989776888259842739777138605533854247467827128112877958436345137800335195563715099528008504075142236375480405958177921629746906925380634082480947713752414592680404105135271817314951505224898091855459691178992536040445660009974712080870816026403346876931924448507292615270769543719863769780375502687397004659388704793509876873530644454107009705090135273749715660660999921850587683171823190543814456790030149249030553400936268971113895111072572857039392719977851588577540996621870930636986497856786523092469239752462546305746171824796375201582929536264715881614742551998760377381966045934897153708481778030133718061071334308403923175799990106442792986817439562918771802551914927345270098375745171491328702874884331985711161080985787049473962868198070058778025900070659104784659717391574595675447587282903051006196568478863684199236182807123019328935852445138681763124575027119582417876967151808936765516446259203998013022617600837824681981661624507838956592283681842488118260162093556699810884791801150879741989135689371440287322041684512639632957286223882161079960535689424937786524555949044436079235291157564157823773242708603595273374109164850093602944165588322418031994042338290081587270832991705761220477396791743792908194718931677855602983769638651592202937131829167620970168509639577276963585935053976468338602378069544667202614057326492403239511219005153229221475136283278178906575084221789402878583615114951334043576612452828219231667752404104521644573043833506533930577723869840234559235028272763970926211029522008069878357598864877294406206741931391873250451349154280429172324022527642650821446347984581500950477610604965915360065292681906071501676725585639713268328743877573261375009131677663473269029882989267782465103502656669750466951106029055722574890154269460257111112864337020191869040899931471412580515833087392093543186625694585812968111213644867605737133743160297318353455177170351758793359583489393981923672701314292268128239331460596179247652309077885439463760757327138335419704302874307097966848920192071112608466427854425736894346549518732197186387804709733166691459991873974707727086602192335280294607256229722751764883519427571546830843715990421997478264481084413866808036443165490152638029406479879512845600629954117284677915753452846604597209209829622810159265337848220095949583830673410407321624600279879266602317974792198750460140217352172859431366015871444314086212594470325575447349309449838050589990986644539401324633924630507114271645760231994353630944397228387094617738920708696771201143696640637103682651097750087100873616931389473872057382995735564993471091729731162644286741448968044680262978302466260229138080384457131743176332273754155926810676336942809815885856508282610951086673238028610198085639214724507566829726405996922654432427835694378979463451253001973795393418269375564487343813454336456240288463770566332454850720009521143361512895479025634922330400369820536910503506282016873292219479679898745844859047412496541766523809997206872920814024593107416772161332317198008008056964042241157040654528847511752459354823350620552536684184724731534593328128552430827219913401576910326868032743696822207817252826169667815163252098157527247073050704279313155804241915855969764873231715053023127431609403205183572229967208491893458142624612095040269693768380782221143562865389861540762863022752524745041342975892304387696594917498936306929870627661872898939813707215703075499594572366489134183484892923490318354274894554252595225265771744379022148801334379349881271129490491161719773855412239917275060429046334661744264737313996525355690173328482314524927844919787851159254233401799911079872808642164974499823091757457121092922295483510350582001824124369922285686055843119601281062493516797356090161318658979607343284324083761103231239714133626449323863893857504386080225518842065305803862184529527647292371294647311018282949807627166370444777019292325908721484490843927980502624718668002735473006020174348059063076623405581215677377450014337710052105747174758156757576304319380124054587460912417876196583321406653005656825444288566392381760028387634104643469007135697396709793655821356737042256114955709407293401487876601254619681066461395296757304727926347632149386865289181255770546804740297886009619261046008184105541774608016838347060812630226432758624443199036824383685224261243404838391211588106249921282996865239498985187651456510905273650584553962753466531550604742614750923951467134220574904722006187328935900276776877271297545997501594915921631872574973006735003520870315363527480546783110447393152982538852985522368083992772422797995986554016605861158841885198949813083769571697461510651263612773447535110334967551451315269962866372008573936450487741567951505487073871341787894435754897821466623512167337144586882980600190669659033482490743693364288457510630171436190657994414907305337125744082927613648534044317091816784181467605232063200297679109909546747386007129668769719494966936049894434751967768998013233703039171270747269826133024733539447032772813461764782066958223212533936753896878354948653440363031230278793134802536010333501361581212878111909099297164117294460928406423476722473190606832375379475926759178981124434164663833710517000078538127474792214804220717616311073200882944823118018922865027035407255045062815875950344376365022805113617316373715283403957214395502065880702431377550731274150164881835375822741427292509957755477767267963631822298369831352344012241594710126561228075720984071477278426771229522033984021574614586557005377111608000469047172124258989080551617769702929459027730900160988011202151235643143460770367732278266815024673619087593285813832361460940418705736671114694704429012492103562456667754447815827243064516998841979328132078552760246327741340987263455849388352979888428854883444261184835152203647073965599181496567244793979554602258163934575369302568085085656088468247726745458546366755667393057301826621887311705258045668160738631028920967233352358215504566470002538268928767565099753262774891117766864890831633823786020850760910293732387379330054032929396399044372627664002156750744907739320784425226453068841761799360916181962198168122906854955019601582805238923674183639172991355653545322148034677935990173738394371358132026994594565975833040116085641924099906782913201613018765234981301414131163152781169523394396678147987833939504454050429827241862717999617296685096992755022429669368466255259457529622546661109166431040986617767786566791871162649855703835105315256316220664313337661346112456198317790970752464949754429368180151841091813118510565356781145336420604940785491438390471892938359287910824523741296896197476365605694035491269030018984949053830516890589686978587640300498000900919546253373911554236646292987178012675734699198636082011127015662270378709096284785931720471208096992266147060428320606559327744504426038900775646186211186215443453595520126206672511582014305206889893317824239663793211331875108375577155270556514291278444242529975890584327635164867807958481691565615996505463377208186570706120901986576262459509371166208914594985958541463588893723693543954207799467991438448649731669592178848915458925049960894332548014793931453240330870821143767903848359940772112950786275132286006589896891567414843161109357114977537073319657002752411644066484042611204500884761883471498998417980203394423844513603644685650840937747336341307907357023409635675561008396355245378994340854232766286319341988914981706628867626689551778678298565829889610945146810877416714233740627122276497774610197016275211712930506777041142162531423418996567820797876116393491378517821205385644810056515202842441436206596526730907099177654225754476589152785107621608486719217584564546924912274080362206175864042609981520755065132427755221909005432389236951233050800572762464287459884000441463367853862501012319149705721113324613133496558611240813983887548538228692404529449276521370867309439010769808114776528948436915338489097845280521002401065285067245547208179996203026559023369644348105706555782227743817241239836146406506402219833417666564519563399719366982758555442422268042112114661979464099448747017983624660196967501293512732905805106476954036432806737570925726352358901877494323329148972068754516968694438271388982240406796355818058322008125302388926565689052167815585967871004956788694861468149221019154848938255710456671574134138826982512258793713311014918752621590007452356162379531926138309550567461483339036051575395462190991648099197243934240654716647618406924700098667814041348846995156055232529684578157874513034073958556136805887023580827591082763186107348172359368069074842351247918351310452496090187644681261968602692681109911570319509511240127317187593558490732873725099494676509243143639294009017688228875348361103753007268281662954837085235275358922545227747920447973904619823628466617226190232466384538127548071400341427799307810402706025959749075680313324114982086904393781872517015457183208398463334278626682014623093900959852313354596831528517802836909231974665315329998109135895697685061332696723526766034886800505696014123926580108082477421897872298127986206005733693051228986443029562253347149133403668748014302155347233264023971495556920920621587039575815950536640777001573983572010517090408175161150941306527106829714152948374516110406449122800545573715530483717623349482016929832306954383640749706250144867657027032486437446474983068029667775755499966888043705681968192716933180039234056783426785280401203295562193965833718797421838505976615702814839170147223098797120416086227242460470231048948151056390302892441140306351159343766913170611420900161816985030275875119994724819888642274717433134746172622139677743226694921419020277264196411244137037404593582776305799037937163292000505495414841624275690693715078850530160953330383149297551799046928889257091041378973862777522145105992010008439821477729740393905925626045468814694976983266666647277785828675733576312745577128624832602400208746977514560121671133556178642059542709290898987540948993395298119415085128339302280285558064252663833671804413020719961113302571549377074607122764323394239013445014346579389478838504546416308825132997091324991288902666965328228227353938991796084232195643855304051578254391364351607430629529118816568308511137918078083092963445615996347087028823384512578146559232609418543048036256518014092146314738086246657700621663494935663382872195207741004025760476451051363391679396900687105595467853727368968297227946821185829186695538187974944380858582273672738108306722232852596115506040094330546484645190658593039970361706346973124216706810685457646514686483779903504842836013898411658346005518540892831020453726381548088031144840453830803520502414157121195208971739044687646259094743879759315730850787690772202061924185458502246816508273484166602028766635485289263683642154596890196679738195405143271882602573292060599998303385421021895281051335301364974822298890928138222218121450670126080290164739429552240840910086492018385597375066408096336275526277296492789534632784198517026736840994574495792086210267920978602983511936696127317377615965755285087465924834270914962041624952825144468702241737801970806183783958034265086238122738303308763292053292416792259843173595626220033174989942237280443371604389585548926961294070127367677309745745078370752686676235561793083809483300656300245027983591485867232201417193174182182101777775991340798879684425705641875420158432303044305290862879558997261031219577137237050154235010875040709606368634567564736111252124114404035139378660681082546965432341011897788870670222343540666026744807968684949589767459957893163963564526625965570914633469335065650168380100307074634105666358866148173556784429761368811488495256204610040301424963431991639205490119740979130180579013745659049383760580823119513337824397056748667595986571517369195949112659903600169116622754424965261142158796937845221568953569857984884003709604085488773910378821331888722595797576915539878835236107992245448888917759997042982464797376528832680942357823084610026814884228946822432524814580105847181371648500128602403120142762936768560383029058687108362328572014580507495892235267009322759674304818870755765131875328691856587906906568482516944211083266253885045560489821920250681053995818612537691217920548247614937831313451858100566973576937256351360136068100299267779309759038281687210425726367589232327487973084032079601753985525127543097506363464928026621763745557696859729347461036145286437525456809788925655502000402913504561587517697405461504737463967254673806291852284852312684720299402411086765541752961814111221345181915584782433489251057080313531356591677485472884665434125489228495767121200851453809457499029575451842876730207797596797408521316977862316185643512025813439347889148925839971178561066835835374735938552082381377981516523140622030908641668942454056710361600944767969477254799867920667628120426443235104986120378840225614323975487323813905664345822095329276895901123763888032152957064080377500333622182943319140897519602012736505598616591304204446371396186128278601243400178783986507666816847387198708085451517405023216447011745040406716877733316678089739185887605215248499562328760642375691621140930728055537608623145932930480986398180290372496302115900955315707155985539925212621970188731950294872358103233998226807021968740021044989008602779946158724998588842641928405714586535371758509951491747797100725166342772136699247782458612036672683077363484814405563822668679948570705022627747044228653992025060437403741979466384371303815839432376285815568345809145972603057577715131177691071117012204602102947534028884638664286637239116038311980256174465272229594033044160286692181278391904409040427487522165033743736296420711909263001603372437696817915712191612931963955052138837427867703413018388230084267899768877995444568195291185183418473608444588086415106229640755029569525872167743262718465632981018048443243966874984089442342416851836033967669022028195481748781136970912980616841696462654916752523225250058167454994685330122687645443368658369132486429817954372695099359913339532779410271417585879036276647377495277062617272591265019505064867121559442637331511417917401048816842004027519004004032683035994262804958877698553895956894055438354706143127274671524871604964696708856309007480012791474247292580701426123277432143927235555083040299031492637188712344990737094726612992759864309589783499627929579320262847847795183690173889401954504755073845866501989449797503931450662893550050898914883231232429429903103090197390857708130670842828417553295244308935983932026642634731577570626297645424696169038797300041618875537686712993245434858579739459621618809301591860053782817719695335043522628712251183887484534828415086811752454318498159787274806257181050436627648886129317042310085150654793937259410008268666198105962727838419166478672767399184056366894576374547783120179627999462162530859514576064358993879306560262442374442607481991957058540554501262534955262411018625922342845755930524920299507748962190794508522729628842661271229712792081345965281625461253754630799781521131228687096666486642548185950364878007743400210877210102820174715150217269191978978136568719418737521293727279540264012495938223769525876616901918014083818442627995265265824875690590687527459708653331595372201235585684908172657997337493051684108155517811477122790119415886486996316576924321431500086507559883556710998203070252463334297949361022004170268370837031934426056413794477078331972302153781096872128138539203750534623054638380960016845571680174621089172215264162751989095851929124901458585890684117312072351596144006726904453241206847689299534843179267738693674088579021565299721024042095331800161561782574228131728874946082320404112328010692543912514933226119017571362969742331693511268516739834211304943558022875274175095502686130292668023433670673126800369780026319872609524644808375414120318606081424227901407837022134039505063223598297789451642083852233192188938798988427922318483322247556611509846912515940300385629326600464395838736801628806090889131661040265448662865004950344570990652177444276687090686877700734117980967529369694093512438545483373632072519262569155492002472042703225894520099611929466334669759689720528695728085253798892620868297729191802801406510319609133124876498288954214425708543218903727066949812067495051420308237909353670287779100589845014348889438691238516634711963499596881317829911899225803005753836762810896496689324544886564407856012903586729782708800061574795339730489860919247758438322924101699700757256894356048706152626826055164519710634578568898378097818794686479313364039789346455465538834224169328738522539000780746799976474636245650449564142405996325071257211184588996779949897737011424408435152457428465495448766634561926377769339955731221130879943352494068031988669323195059148380804991319366524640901334043223469596870380536964211517316809090775472918051642072529998514121008065251266913373838131985333165640147733864290984912533245067023373147672708067411198690356841515450113386192860942356783503102844235694411978317027694514673681938663062276298707574430622015837105836552330564198726642366697581944314336284050236478815246159643349752112618663262356694725785923879470064447804041805123593055489603604941089310734998549124298352026709617492156562872158709518691528814329822505942245184962313009602877730722482624884310414813857577906974167520281172362398980970195485707598643428864468861888269657452672869376823808081677448054806082964891984041650481977316232488815010967593585830178563114847864808923390658043561359394260066865827032725489332605513944188318707312857476122509571197386712901335910582041064923722298924197154319312468420962047013458957926471281372389076968223334353403971928628507011636638180517809467485285495800518989367843644329504625612634091321227025196604930434258890605632810501840379110167109257331177454549072804316114796584924159372291813099590996984401879126999646573781763394108542803995614764035917103033585664739230127877945962133499200914396817336522372975323283240485533657369280777272899466381400469275257116475105979195380015784534059310304157690946642862524526141241557452410602287546151887755696390734005415383891821407397286383449305545722764813649895043632068840822885827129284552460510015176654194552961908874549537555841462049638686311753670785921866653339822756141403856629302941608487856916901817462410181002463925409600361763816177732170260437401376290578496742900495530373799024500501069403100821105059238285064134500659719696772574463211355341720346683618001352357239025631423175379975939710801040125953508370875758888841728615255493187404560176687932216244850349693622379487171324165945449559564909839205650213748509653874504076607335925368398805368603124532823711407794802866082245525960284700970321780326160861756702481824174630884649819226410313330279725657541952410647212895543355687361583981163686240462027057277727387839256462669626922884481726786197288195127018972243217662238937664211727527057471167210122757853191960878586761486356447292413975091632082657774745360889980843015803635247002166307708338055681683693721592213302486685394658111177480640899155951067405768210865973343880298500798237856715067956094916270179598290589418771673269524205432295935443375023112840255942821909819294420612377067766960950428363073010339303239838102046454068419716591875445862157500335713146498965751502461368052477045710456280341115492645155117325720191081822632293775592377326267669069808834627680309805925804793740451210312343503523002862746586884234251086622528206018824733846776702549656882643264317585564819658570524718861362120135711004521168664520921089936959185846511227243367634010310781770680117747513886673693586841695447055155544487003766788580337163351443824671199489474890723220603552450684353282580212987141543988173551635542773949278578233003114291278642184509338003317594731856981305174982585431734268762770845699918156251411535609633848298978245478148574742280630416976976332284331344188437917185177936366245681959061015701364686561620689117148310469053335912038626212485913438732745134381241790970592580236370409764348482205802789439191993025530262040980283695200088823705477238145442738957439484362312166809138580098572736763579415898655260848616865756922364970042469723437939630418273730171018468084735715454081178396662415848454692310312268894927587085761678006102107480211753293657612282393470623103295001940818477925228674738919087951458060290948055125803861836705188252571143285632034644517811929591422581360034628887522207961785804184810234104947941740892119795008930988680386749923061485400823014141060512434167269125566490637929744234630999897865721681039464213170401771783492282433978930183437308430710645894938657315629343031080062031615263347906669015086755275356765048217426567679657294539908811067961181234924686988639992986571570864749666584206811901078752890470626510463995230406226098477660937600811487317745902006470357914333540098562712979062229922878726310531184563389439430583868261772989534981959516031724895124652378972036673033811024337725688551460278550651965951500151419641766851942316496277380722418304120426197368330767602300304440825809602718121490814651782543640515177710255961226244537595645171816748725247963906234179216572807217850466255983713423062351094427802771988741551466009698020418483326572670787032574411536206848327288350987621266240749377621383534739574289497799426246342122886258837645996051227903865820002095901677431693978225400981928705951602228364001564958299727980594015630839620469554056770864426722612104028394595789941794906073840744748495046971274888802012132649033831441026371791427291011172672517671497527190542619780763533951622302916913617772869334303504386673845675752635527551992796983967795878261546637238870417812029805228149305229998214153317901368136808346573567041284601381174462831148099527612813819776508492457901074806186263958069134091862163811829681098132400286540876338997346109069813293787664289978821620039439347852492024717868267244764013561179271913502164797803875309541273048539478061631253001783799096421828498227317694250123019734212664152242413551467283064866103916927554916068799397333483421258181199040218322864216395225878868682396667304974811912297829085294196252446378907301466016757965240952859097312932443863028602178923613199152171052525475767582565996980729867685554006405676540797447975249511792375532559715346020751595999292219567611150268515635618837927698117438346912572349278536349539985078742541124438227590506154673913089259476812662688454532111144986358126047838046860068777347014758147898670646076027480332030825996035434919906268496578367296629016427874697614726598810756324837874559953735917965596301722844147404411436332815618235285963967154000996591234171908634630660642999042409775283513242712428594569663483619699594271097725548621378851356766072613886126525750667458095439138040832428308870679695281749862483948598151891148957424070302382539981711795109500090800932348950989914133869401028880203940147723481244238381209874601494567140818554534249378984125749788077508315484719999457010305320041807287114922831704092459251432597901844728666159037713919528253783731753707007258485206321760183849245904647165296733496150019846851930003223601863812323283626505312314086006343069831390063371753515658562602955801891421626080605196027080620320345170215903546542351761697016755040489445124336968501844111243359195729110728729043398062677744883112697570096530739163237433046545109904889589323698111306341312304069273756416964022117112675502520846398600446132450221262644421150734169591108386503166840042043505745259290259446021023887429993115396720737335248783273701982545701545541809543269152865423206733688900162707821354664766170914646167952509688145618337841592898966286511780858111292349445822486354633702290203484974370836397037104325783791095646295996998913712069596783858639507151837899112917565960378010798363199776068729346112313649566761025190605476936911876506919980417276325564712041502141348082939230379162232872186035548435929072947867109632827389412423780614244371764058436365087734164095178156721828471081561688580854267178971176880673493838204848116633016777580006469995388502861330718803856418779236610093863977774688273348011366833055094147849169155951515659527170621618952477163974638950568958479170370618693413406971745384456674507832695128359480573431264372004326714990242433152059909063699880597120044565099758081165375507036556852331917364730279331535036434848545376012607452879200843701163598439654595996330768439886111664041891628436776570359326453006890873005493733257102163492659087861446344140283725409043192276495782422678480995833225613195793713545488367566436179889172721853547936056227869296549808884640353749647065646471965469175536638385381364634319184261420890637559382198168076086259228585768152466599434520677898464551322222764053502092102422496295097915813291832938205174837641814369477095382019211792316192869782073693734203960133710384324893703067843540745185008424516196353177812615987967550019088565987201182638326807163471944405609211080739010770205689766590385880537951643173626093115789572894347541689067250012739048137517177131877670549122371418736440174820445121623759481424423957621869597933272615673284135370161650778208601355789548341047901535968164520997952008511529215853245122382581383116612392636042774878032798039849267304378897201228888896889111116828845300494638633640020867108518895425325431102728390333793512764751345921492165762796537101389105593328824305513116604010617693199218648775689188998794228364577194148860260013937957140727614071766166805524765627015025499394131473225295290184104567620024754245558477323786707988439882199318597282428126862045069754033802642248692479207084061240306719906872951113808356042218407231731116906674602646638514652355001311931016997496574508404683101750129485442195007965686100501429291208573355924590008117191089385940014662734909015233797760618482177351397283491742205002470592801290639077274670084263756761114616703765940285958644466986131872358538676345255532466061418712222564742348591383197389288212402708733494727897603873832708710981616944691704748122896491607148053583100383747687019337612775111612127063814136008363089703961163240028047610816991447495190121671017081462550955059367329200007736181832542940949360356282327152580008252394543528922189009860313811666374847523640884433660238729610909892871816389001819813330410925112398081078127376715212143924490087006083947181638581997155617950720206157328819802965271952810005116299643897718912515575691042787204576392968716817327536750313031679294857465636509970197079692633544397050806528509595263920584873517297466374250463487599418187079734708144282998190021133072968262885969433141941126101482426573506143214585837401897629411818032319956835380180897464486617800928523495748900506398724134671395682861841064438970082672638481985849239458533233364316813850483376324568217106895986068660051060354011656027082429123771488493413508564086643575021579242095846840089774694016690071396823943309455605563203760051248957379693586494641943680685582914184206663734626930710196190897130769140775035077294245252646134032853628377739045617990695101607706456489124726736809732615370567317297137453247176497152465631246004887930569441462234631601285002416316883050725835899522645433645338091184020631158054554649142620148471235097845137057865339514435641335497229083272852355329423399529133485458092493777171459484460289088159893059898114006850921389604347746069463900494036106469257057526089079330703936730502448640754602886041304152621249241040054289007482394106360142545724074208141218915619399253828786779356331570472153479384770849101390526443343680777597484932628433905926705393904695880629243441922148868159699889666759846436267319755913112892535671077468740593779268634107523917792705501766439866640023483176287378558203504046556693350419687763135430902332442588446433561492526211969851740181798696949484472926029299078854799070428905921091256368167130717537378257151453603469404463629292733684400236251332544694493222383404271130932798569782871184600993570906397225691259455922945261594987540798905122713466370434324636912351982997200170064454970088317829983296004287162322851588326678784521014259167988350783115933646230839573796529110478289132053934080289598030896882851222886924199583270100364706878041174003575485646282752185304901857609058732031599815050311601955240243095594647337205089261354715750041183168278144620180389451892223938906738211800210586030202569338438190280428283245583502899546748594693571513379802613923569280936376249813449721130692228915451326028457193894349576957139894449960491357354394607248371090996851410205682996637847142300240311983146025592439803317911731747222357288094316402342438189559263095548038234430694360344278951882633247481341150502505214118751855940781437290880329035507120211479288661549884856912106764183326113309601830067127860666187785008334671934132373355391387247225729420586926961409086897992414625358687249852856910561311739500009395238090961319238839329235429663682821910754961405630316521606957426354306395271685685564963404660476680250687106436108516875624653470392207820055559043371822049778296161133292639130845813194347064213214148180456631300082570661179165502045008316705955579006013944512166004979687655527323929248845029935645782895230470138563098509753602926143449523943178179173895008254330012723002024598335956716755617634507004961917591336436100563419365341922594425184134551184863041944100960087183927461012114924867174808942551347010875430942131972377141350228664118599173471936995193272717619883700493713496124138676995566686107754885016177911800859555386687383819187766700500346302611225298222074302391381441697838579546436046318995497365827700236836359199790330092524031516411959742730658360072977161435848692482029335195162328958123877958888364572788970721784563974164559678796838218290887227334303854382401786052261635949472181814619758046370003711849712392368031948235287142635569026137360342675885752229807244676335447050082641834930576511304163873312652643938336613552396739379214349539398238816706195220339469430261748560805870212101807793622998693081723989488468929799318564147375404360155749253833547657940817538026959699944765729632439336984609379618953785825557236826254815721905940515460345505294849821943563368887903451981379360907839403917969710716573438743138717548407878435905433608373920147222414441328032240908938328031705945873963472536417065739349079696106022080969390230473777137213806932340286485577018497383371989111952694940431334183010429414938112727849576595434459826550761560238839226235020036901944879958042642080036021904863981640159485488803867602488396422537443590077659504558313900471278492065188767616620010000150532068502037461373585109284411867443915406606501336630712063799680955151043499904946483833042727024266911129399750273638430880756141123020802897823295472014509303188047477921974143039755420671983360639889698996345877353415275760284143083119903945911643547924482743834169422683054755913297088957970101034649287036324295412516651338383850461389248772676450789722793632352264870350896628168866477745943587627630942949071089372121586268593421154459850787589340677663430069507883788202019538898850168191029348105696724993084806095965343590137897805343244850303730344091050522402608076998083984038121449432094687288369591480796552308609808525116758437533112454858907151848676504337545344539791642039960100547857820541896472850622683121519186342071881798842784302568604277020309919177823794638003136432038855996088105673563143844415445227816546801228756898820462517927448855883362265179753467617341629159135303259236841596100732614565771754629999993198789730856985547362063715364209729281684381817315123302725064657612667523685034942718739497094113986726892785135916292410523064884322384031913408913522688555228797892629229540890492350009101151442096764579949459700053504245779671574214865984458411843899999374029741272608833222242199421725218784875700019389543887845125929337735346975830460151773252435490259034870559188766210515397280232658245464104129912057533613177991684036791809302602898639920846465170715846750736980099807527079479636687069735741922145724702145766743316763392370675679630610583907731661549667865896129904325507614680855267216871307855949553404650413138248377573197871963024598832203570258127989880378760324542323076343402958278257146844996415003692692840892665264197284520947047228419045024407001951482037788862227865969486914600100092929340094818627700673825625286265752909236074495024338297377881681558380774943700354229697813269097878965801478445946696245739457941633940027429958834590004551406511590945260535118094185077616965178101155810311820884894011556928039199083767489268256020714340127298750048192336165678851682696781313137773614129445218361731929655466424022726375787000346517243482961941260464931116357276701756512391867848027480268627160299829279383193215319258752709841319570216328205526633820005536242341315915276219950739630047136718573409791469918709628958794564670277403684828752647202079367737824713324638558719745042956213759548012602847464522135595380175184273890609195698468368085376677390657694181688165776226404694621328774630627671374464652215882794507496330872540226680335122146180656286455162536964502084969651063305445915471688221697970760483208076441867107969100748614337659877981046560056476555773399433188247716213593506919655120888711288290340777278244149872584974932740559177104667346626264006991556323911102735965056461804561001110567745906087859746764690766929043568252179722991548503418693779394939725123734372720836609675321208774634170709688199048207369927333180775362092205744945004296013345644562195062472821926243876295576073276619593930262761338332533878991918972099238876102080554600048247589225659889320501572970762522182643974087611987209525933402655040049795777873641049717246284607511416948436036721398972107033075111175725537498037913104373295973517562753645927173001241754457864861277113106899974050852876085371715098782816328362002503923822870187733808443778446723096311135107550678297045650003660238391658808475763585463303221712498193965699293390485252552709750666493344652064851786713022503326910926495290815791352416356232140938121944985628201514718943876693287420480637051254483217304174978757550011281516052669621514555565868489629379096677233410487512172289867236699174619428417984401653383876767978154890738800577612059282587758901253249198316854258860850179106535156337086875294912979229884231441924498277698489406597717060143067230170005999052461051277040872808905083671514644979545271581254272170485519148072301856168659963685522043832380095586003645733647064361819496972441406089165992404747960531295284094879920465252440935513818866077714132571665901033310007297889008018002372653469016601331706741749902375706029373639858061422605418172537452432314471409869439819315789286446713550581720529866949525237141331561964666236923752733889254272857864600031281759134189628321592368297170506062012232702918118480084127965667354999867946605650959967089826570222893562950959204488978004594045731160682392601274202434570627054619768939096023214130992620105896928537259009269942403931595357980156094566237778667473065947304328336827521758746017969684845372749017097569290960142040251827275741756677631229280993562697286944756467615776735080580634732637903188161249405292852012454265289403972498151561113015396887392373283202381954777656877518446271167291349212271370874621988308706086732308410440597089341655288437543532720218379627911249103844377526407808157839908818068698274673525339763287826612360259561502869846831140497017107180712224958133006876451066638827000995340884863968549092174296222392907632831656251448312250742543928225450198673489452476733950483671416494747880780017613896172378016320262051098450308577300176834356787312469376877480362211526930585607521720532682434413885365058328613572341357091738146788181450884578969799951999542845654862734418488057231274105071572500501510496041036815093465970311189851483497783974672380681069314021408242631480460144320572675618255704434339486777331640517111692684756590194634738797544792785604717491694637699957986530599532918848247726490802918867405142443005913841506693867695800626934969729168797653070409224011093377160257054124332912033254131004490856946478014560771590368515169357951237388219775207992987312874714196018487971280225639359703913934476433936438445391784184452537589522635752130685730717887416738585368336989623519218797098872723321267621970014964830673923771155179162820917883504796800480952434843891257673185050273353164435327966401117769620159475923015116249052174136218594639187112164012362407861599875221300975133793241475632047552658078336389345477133807714217191569446727158253409263302274948709952805487261022741448232087918024654942765157600415943026406757231245976956370765172464575813792276055157881862321568282071693113199121015486629100343298861423706658576678966306953696273736194566359255749946029736778067833447376367061065604810637376881233699652743150549543196167797988287941750674664734392455962216075227836088847140796578446481196250752990213325048566577572526215948126633679307475448740623330347448616765361661642202566065744449470164388478457576248753956376863434035778409610085808294231436188780262637728363086656258905113725836037326600793399664539673430025248728936443710960900948945771318527179395511725154944192344330271178494048952316656395653107300097433001148505118492570740412711375228712974345264580549322949446657474667525148572775817378726320764317488562209674367051547237589301484385306669212182158517689176754496782533185320349818320483183977695614882196295500440133220026158698540990990982466490412433924243339566740920183389453370713232221021571289957905636893380088532117003885033249862892708241942673889800369409622154898893250787914588653620726037574467272553419935200761344331837804930375428063452823114444893044300276118443479464009387659475292585873383432380453606251422503165784133673838196452531389762639066367827743284510701585303392474816933477011082261907849793025286526795636194587573519284124257852743544673824613806610984678442448321704121673373714460601405749129148195883004739523429328961619032469023373699345286273970397824362725922813042600351333553714629122068249858740114579127860370567978945647249120876256323379665389216046957204404857276671078123496553578726646955135035266041457628037742222963801435495475148523332167640767715556585035253576560818405364980017069193741517457098192320811782851354711357626182729741450009849017732370475393205163871527613536056419218922023760569482564854656219481049542830826831241106396528913387743148047712387418556360873592111982720519544157915603569268625837051559724472936804695956261089861013899001370215979247539339279434340306268473497142476373346378099445817690967870746809880783017094311132144409079584434201872433655923429537839697488140209145392927453839215048609825746663165672083767613384473359929021304114100803634318604588884830226310192899575115794299155461074333208808716595027200879327836333112279938341869223916926652140397096584149553919683016404341276467822313067132357614630350496523882600525061679521160361464321739279297503439705325922970711864406879893140928581257195787665996849211586124958357160518865475223057652650038480142521725417710249523111132039362862317314703167464643434684202710965545750960438347447855069516630638297221950701333494124337952740104120565711851703702598265086527085051713005730997489098450350155339757892443504557656344197940199515690580916353586240071078968562286529359896225223329957471985457581593057486240972833308831002370937327128720478452613265402664569002390802546486744510176494811243537573779165124786883278401358195741059923408504575468682272213548079680705441059310958582981307916313737843896038884327756235955048496422627981909008735757399576724518069581945620619586626925495621745010310665970717394970640143073422834110426686825847896259026467594171693690300141791055528436079114415548316187313900729214850621792243984556803203540569611980065686690983108057775992108618634384204953057327658721733958609229370372387220797414612873691935582094781063060429346488055999424147936381413245757349401821728333929983932530535287621151400042312637632551434491455955613026710912177977107011705221535264728202644065170137947047400008087606935204271011233314644372101810434333202931768024451431186099977376698982733468563389785718217611053044363224246149016584289408848480184664578465198874927188101062924435714163290456207718370136158537317647467899547967996769385128588400964874389928568524431357413160939685476550813808258729497176347350615460087926870479902225446558868362620686154832810472136204321255427570410400646887616856570152667290810416805783002803828049942639350831487667878168631243778054229363909947743321943426301591263273054171214023796001237388899657093995525620026529813707155200473702937309366065339210639485303920388457422326396261949078130504044565714314254277785655783202504237526947745214315684034550315262597038465017835367957797649466338811809683561956745127748962326425690957602715220909259913170411817775239200326904196033786994387217346294386212804453550194514775591870041280652700186225711640168790540143451878780528778256425379341469721082890714808442795389078810031327977867566541390755624948062615185799990941136972167407016182922351950323682275828422477881122820673275743433126716740159857158251174298989533094229995787950544668515048644558754513539547625711114705965874137839014803744741021708302937948840928764970192104748469441349671642542840443882314078248775340131157903313658917320213959975816461282606004722254688628206478875937675801789965509659983402736853603751319599121578461308472285184260063138554570942179227156101410178865329501983201243456539665077660357144301759305459277749750709596365646526038266712462139327386096647511305936539064102822452812218347311946662650582849629745468973709736146102051794724319366163589831245483874409959177053789739248445511450452806772870652427475431021628280709781323248142006019512064555794434809777049396843590023287843861799495195338213989192707150633409608587912597880066996178005231704612563952852797542097581704099614469222063424078697514554785860557481644388690208902191039932989143364934790520395166890373855693401582740524583730853743950618349713471221231859498132637470996658689084665171576343031372307369129511569805360423247016342871047906954486411217330336545519932827905036781235424718743937120554514217601976285896823802954743813571947672671262819137799729558084806243454930514298233850363829261423200057875525409119727939268378158111570759094017046549925962989857867619277266284180243052376350809652212811125884338457331130119211862105158879850924500824591308238992076585998732761764364088166618323136954289946089792905718560482133260575728346627915760660473997841346247534756597409259457593589075332852842857083857541254906126514013910430541611961378778441873600635069331461427796703956817422811924926798698918382457264995983753531741162849791682109834376371770668220086480172334902470718215744864790777453648863394088636168462437880352393497217464347448184758952792152090720749401896670876594346277370362056735096547276908173180192440478687902832031713436886731934443503804314206782513230642988085307226273650201411797506132972485832549499239153601302212423648960343477059637125185359187485821127454733325768825242556350974660728084140075751120588280466532266058750003385722245764592735243508082917813894431811983331443738419701834344256124254456499397399565912589234657987162427418830037342982544489117072150299159506969249464308233151714943912896226722872956963569942975885598374390115335126903314708147275413175939479245761528135809754384621108739339657200234658866611141866126757847684618505312831795091220188497436990468966207993771112236340909842462777557653211678501893204388717434982942813902988537911560481717984991326276718980370727044273871941097159914309844735898479975782496494149153147501012119016448757232849287682977292666350465162953528901795396305891853221884456141421417501003015006391086570409991395647081264135434310240119073489020134941262381978147531267353943386852183253913422056149969838790094028556213615467977232544965249048583757976462135093222239441112028195041984138129645950671477222803336678423485827348439080750582306104219105737899832493656606291402549218468175662168776853448866653080416176744679575222965206824769865048877594907484467924067838780474105755953335102103094030572416880108208493808919777353140283677659532011679864208170146556796419837438238858609007542310551018686973401949152865968516307022086716954107711292570644448728461844342314635007457063200001181050165817633837558525432654619185196334864076641238056408366443019921594460658804454800273871461711096926988312048124367699327443318077393391930522203682291407844906387330255990637639998882682534594191590667401173291170357632471182645835590979800702519675866696952123802637981895876045629667242421247670829046668002064172012992585030157205651777337629192753294706397304681814252930634633843726487116605503214790929590478074390574252532428571717211089010801655024853062898483458405025222673545097423757194330533336239033937909011711427237644713125206046088108678976901048223254310418064823024652013331103513185973555235437953550306129877792898884661866848954345809138939860452786841432861788274928812768982412019895994107997185558852857030752322297415704703122677674770995403407680962200669279948561616766092920196047480562961767709304276065009373696290890412146721814639260188319077695415821839216146685481262707389943371766976298794962238605938736769228351960561046910858911120251175313859544399455553583997616105623848366053509372924682070257124205168244268492286199960005450938626408170321820947287332073036886987425207989409774994877510694963905071185771025846150245657137725920676430866623736561225274146670098133140421996601454894565129456289502698689677937976521940754382972491904506034743164675325087128083382623880804291612071732372045676563245387578419354156321774298012822719610728592858489815122450115899802282841755395316115930559204330261127042171133564237155924565234891696770210651490191053047236842205681509223196698401643600692270198133024491377524103850978119994769512653142268732268863174100870320183854329487108914588953639526216942352750266989654031055819599680321590211409519028568044250795447620405902641350421454476743442010161297023174027584701751025409918290056980115071137446157288394448284930857347908294688551546736566956420224607964570495993890267227551753735445296236481155068729648533551925674253594787780566434597932986874144940989293579128701150606542205150864212173173590502121299218383795767973513197407166935047843891690789462921488285079010326741408715534593201426921390338844137301840361550098384740292066876391702361745375717103672261124735898285042440486568963527975766536115595868686084137537849537337104374928792006601559594627587817341921710615678688871365837289843980217503160935723284011004097177112720257661202265370948166101468583266213335376760463002334604372837427692629886412994909163890674194085148612453723244932174863010212012872978275559969004796460798042365779042872512797864268739856877394119720890867503567029974034321254054246050093892536910226619257824887900971661679366141306445686069395989183144372032897715560541434192523317640506888734437396621987576619394814291734413863687512889266350269829138815308605140169807215904366148792211463069503559019505685305240615376612288238261882286313649521466887665659933846219573753358784321771061381753102115778526521181927109547975291694080168965153728017778784816997362108928333951282486740775485136098359311166990860718148480009205899234839014859520846116747699787044432019448041578450756205229929326198615673187835483014315848248328121822444567141103011999611716477363420397647452296552655602929807169540837742412266114117988922862378941675638032178451199295121246162748799888426344913083314484901781130622780520273815438199625990062405624346625391485858211052429600260431940278515434588071973602656950970941637004506743722404366077363642303185952533290463874554014865943875078495545937451280523748968649967267231638509569159041980977069684618433797239576962702236007637985846198133730701752871198405850022814579419844937407890106129517380753178801651506448052977853300848568214322311947731888328228948674156829832039076231051230189165380400740360392942768004493103567826018449970238110757944083772795021516124570347882208594627225548371427792011594252315771548730839740894777772891263200013461394002106969558367290907906850186654251321405807522828046878831295531201245989056817714958832832798929557864289404012459935224910970262938588234572725892833424970585479126069001759460299943005260100737272490713796800845005707490120880659916306530551907785829934019540425514087993058819790281302214687066827569288917041703098330301334117858866459906133327668790937311324549507026886265349146521896701791034854681202889687217086390351843766610275831474303916893267730948550703371831728362967242617743427725846742312680486689066828852098905198173833398757256535747314451526602597343385637941762233826690966275117425311795294542787260702513219629760401756393188574213122673698748301589900802458411012468317190781286029294989622733774297896266877336360312925671117110907878261542417703713263347786237222529800308208206277497615626925186170410838581295611995139727236212446825038809128289622975316618299087902935260791134179332842922247616283697459251534043907001756170858884333231197792675021324416291006824213797289440744474231938200135273555131001319046110683353598716198554395601603861880072289350080651508811327469135147732196696487503394162814289663997091878093710815794248987607005046600460095916710224170582306335570082056539372680891419711270389234021689325858735784229288227915540265547324914607865016928109485053652238298888268757788237784676762952346217769594997866881395171939879270771467186081270854730481293149830830509704652806091454364318865905176965655303738412085038937355246048600258777218614162421141832366462900051096154156649050302267413130182695289192662703652609990832617570406308679178070591756240164537623671661935020855575472855100070241991005506574918157635848329507007650240227339658663618499489103894277799367694507375444836435820529069358694385229283181600449048465385290915712804788907850959593640220981667786118718668580466294139960794660651858818990101309171446024742196786744120787692536116967307212067223538812137045010871039498114859867595816187043334251055918879406715227455473782049807051637915412578853903395518307380055537943294082474129556803740546291457497889152419373187767849042284098477730621432654092299213037408607697754046212238366641386910919247208811605996610465792871876445077176854846196303849283613208642644711038164850245196601681789191681347162747159340645392167405155850833713337727387633563397787761526636918685341238690703805064384812930004456062797418629471514443017229216272072872781461222767312341789418139924075232169641446450546509587908509303895525835941410217339011310215943385772816065274222382959424854344400702005506980880275635909035186000586920188828509842223253432802334276948845728036352635505155934412568946540611709507610911678475870494614051819938118421356156566778044951516141257185868175460202599139646884714989572930754470121405732539037480704570412039222143076046630542368549042887356005661410609422733906823206556199383280404975777749488718906340453035243678119549516350526214353088930689394614633094367059260637634929683590977586877085358522339375784104580820712746897063063655155152276016678835507006588767389181696989774701924089692587895829195645468778131877768767641122413653741536369287325886852995573518224406770354103748202034153295089569598136775431316172059299693912500028715987764383150129901838326411247929916230137502938823807135489118114963541339677094803929682973013901814604888224799192402400014633538832129880058298193244195567188677107519978012153232612850320274778887491630140076700902246932913287871716788065188090522903718708245065948606669364343010430234711946751534373967196128215368461844589993043688667655835623536049947245767949671287432468774087212529389947508289611946689350355025262473984085653138848261376695543654291728372527798567901454286873152122887554963691033122755822154556677203302044761605149216237284242003960447278959475987757482720937922795798322638082977053408184587566120681684589651913013418523649326985877481220325976289114828659657011291309674808998321034750957675856183513823752734181566383574826698380355053419973180634238789430841395532497122347888934023221823085649857036321928187898381321030204756888631003647404077204752648139919634947664051417276119087141780827416551564082084242139527789163508502112962280583453625723281005590977347387590077824820112956570225601729638618653544154352431987119509841542837043260982313070989040961899633360951324013764426646847709733192842073123498724554375553426550253420775484422049982487476705011716512080911937916870925049099260031489978652020506441729800028821667987644755840797632163624856403399125152954914565999855540156929440683429441555472971067047604857726804050292916173971034962495523418440056905432263897931323056968096015883685708092171301549734906429723178906054477705021780946536457820407894682355760483790100569462539551928043893773439560917404872838840179460464909807256220724328339962168724625555603575417672022347407680043458118602291436909974965741463283255526153107439220179113752472754171118544975134578611626904477147142391952820083620234430309135951799121126853030907234270533793709089318356846334155405339156661664645642706712775090951781699197521182073651798716848357285770423098279488871911550042298535425243810781920534525844766336542175426115980180810635000548098564855696680597029485963620276205879675675791850481689826599559639525321373627436190443888090144814385308460572717118455282599093734021754607206609735913948646589181383276564988341007621034277877833068487581987094813316030790146406867481071880594881377806297748457777944774241964811090963699312875253372792047382894879540105092286564011149604430999496465623390642045941081298732247127966491685927896924025140944068626651523897334840515978927197628733496116068794447616129180973498357727774593094577445453247795836531204478119322557042100331958842009461772465600741530726602729878955493660135178192086315657088717283535122139191750083165070332153941864852373911768074697298781606806710490820071502727616153722664475346505307670691101156882491291467946351475787899990037076489434537423087333938085410157726466736859344315814145544606305498694055969577561257189529599801121297685502307936147608871090475811512341290195674057998443873590144370658677534938058683073638863121025433958433511311071386093375545507391751427653874102331071374270472971551701246298691994818938894297910224888776504663911821372991573227214812873180922507690729873694249164843671855580202487727696168866117403445278861715316041736892181388244238026297636230971273586157429447810633105049754304437033762932927641485425494536517783337171715775153221403439360624920578998159913544532917671360044223353940521670955850803567463397124303746822992264285591738263694925613557149126131825760292614272888521674054049605075174606542425394600620493993418229273472785777073795373161029657144067658422261627779629221812906884201615034632740415046402029229366224220647800262084671897091035386080976756838798613000925716436083280872405736894204854068124117944273094563010255527728016187498920022042466635100161866469526244914963680380372514940072294360343931488919148615655822511957667527403012698617646755097665079046207150382448344250271278720018360561977650002513862392855479305295062980268027275821913872208751360201483033392587443294554767696148527367713275125074597383056624093689732712992844311812106915308195942574767325134611274765628076820167215921861977577339260072866855821363696193979277860733604440296954756381522625408816393600475142970852709855441580634359090907029232646869407041618338447786590474041758124104193837156995452199379741947380919420677496095305682949517155560775166300106982598233448882951133552835488974336313247638777017978784814493671860416966997334031249608053204386085091145969710405725700957305339416182373121856519747407114122240219226836719282246042929148550863363046664249997841857043039546971444149782109813927851952035892020149626477584319544659139808134739024420070473061425347889595509002073409552074015163679391820811179117864170723911774161204519993594012333895163597218652547760717345657015839363703657268255637082020118970151973520037510817439808435218532972237332998479143146785387964903822857836104046901364780990026990907197913122307541379466461186381103864974807338824504128729505741778051830498629341652851946767492087863045945373678347958358826800541759124880200644274662329074583309942303045146661159583853540838539497432430404925540637573322708734655434786524975193737410638106977986783484522667214532664592498468701153237741998348238607566596583023807910835764972620817254463552168662882620402895074868027158707267756785590918510217585053834224038006422184445994696846793608862587115225759305992321538976515784834176628385113295155451877683762593174875828125210938937051080112037896578508765475868734603555421527835078916767371158684567461753912434881369405605980704507173461253122573191251883105429466900163275421545338374524036558929840863298632910000089329579872827607650448618402053136303637055549773024089350490889471501081415408796205132914223123200521104123409038383820066637396728470947054284663128291103825787968029644749688962679353062152656315253245184372039595847860862917897049902155730564910149895376548581235973410575677779151621197057407764164231713684758730176552306350371833118111221221981345252982803402726013628647836042187979180424643299600568784471908001889153670472562367552816528324497106398260256371065039294412351953122317579776797294701853728924448488322440565771444070781295288125149956567082148826045158440753910530778342065734541515467718195242676489932427204011282407521414918571185179811411323770303339188963540822177354932912382218074048340758612847103738866758807168802656532171897542456692688766233311004115241222137386103155331480441652425855088565878223906837722165802747283861575089376607243886164141084475980741877849243226283388815961338643336272955801214493068495375428633743989425796654399027543648192363337778505644743522125042795399541467320302355705188395116812873463809589883883904980426714237374571913623672076483982489483371910623459978654429297554410450672164122450581562042106630016991018661965337685576908324719918381988338630962456950146150460112176376615612441028760497763040418348252518117928777786276004099247653598851052431828396409132211264436036688315527922898505838695811848964797458007061611300306105441099264055157333011973041967534682472829740133678052043528425337446697350794054153044805860466887374320110475437223482932524824884282754656838124341524960424185744295522389702703447500107530001041349401272744860561260058824147095415526653154441854439754782921473363996352384981273717706945047742225635596691646174168060393133918908593639818885532545071407494165286919041451494806224154799539061936197860293730752817083000914614437095760218727491305010891038265460285072382123347517948320961198772689162936032094778133191853741906962407477778442945039034808886693929135931297656513156379595978471766758515400905403995568992511787347376907535566377076512762476685055549863316034399439444192804840556554987254700100576215952586288334831530811792817423513067003444659269322876304200923339535292538256639901974896448333783448140484137714709698504768977411435620804934238454800299810359646254491013738772378054413452115554811749358009254749371640034457982117380674917843170441540468414261371989273774092071878841353984827135976948930575001039913923236930155749653213914461117157052982507462249648138491438344584538349550608867104044348264489298833433912798575597071820335378425125576124498700575891899232515212550538257488818893814525237062984895078831679311594299274605280643061508958462611763113971130892111460617479426551482599893031918888644514699028995450352128948711341578605969816564764727985687492209485939715335092388655027694306913260225873002110238173824026490846229231844907586590866685393973910393893598621738125076610153729542246070510929071534271718387835270122272023088612400335778324713427237601337079162298273127507919496838570456101241414396853042640535019150808989764188152540234998509779830624978093240598463791329898782921983865033775674928100284301200005727058556119793077399485134427834942715392157411341269692096361246422205048174438452522680129150948302259843026133647201793937142508167352051543772854358935862093909698378978348268635406731495283323721185887115357131095106954709463332544501162071371042339551676354315258297651360820474258864258744276844234055775987784982777681885935383545779141728192822015418467938728268524473345488121685001421985694992880250167319345119925219954611550589306446676483633675710193534275598601044312335948794253721437594808969086233300252423092424507511568594876195117892318874279088009337985525557611303781737824401420963401670710437449079948577170054383046213071674639936024802954520556539203571926643550584059201290255251009793190726649208933934566687977726043196518846103086763014008349490488310397128062199656604561097697761180305856078790568859505712571130335207069909543845559244735509878797812936073303829009501342240971594358510685776096509047867308841230844207396729587497177957705215244770571101543324244318292626542021654878674587633107397308216137318723468322359140081249963542791232302359243265132612954092481122660678416075332615405589689358785185525825772924013623165384834434488568179817777833060196516355617176520112960760528834261026283007443100012901700975346689026204805790950353183108835736961640367839480059935726390481247205846639707122526696402159060182102986284112855662155912020830873419933093540812209234154270393315733357987362027664944503829799236998073193822126284949311325424844471652800886418010128292091919548608275669170153078148960763787164040653415474502299391606220649114439854818531465007348349501514896080205047057683870801817697507052158475865143957587516603484366811207973797753044255370107441097964653286104201776472987767948393662278790429412099450394735393068299283999297927742530125269015570340665314421893982161624885825851024293227335731124191399045940747202378549097159951000374716973205855734722656730737811456590739976264654587363075003384133779691463068511403437243443952680176738885587933223144240101938874321611596245707408597411366705296813654742961285706431315473029057301801078293842873732019969697489932743368520871594151817018892891699723882526164400400189219185178501540119476581686551850719344441406551694627255583180111013559085334395359196123858706359788248821842894622346781146210748626203887951566850777364026617330820464508483012686368408597131224529852523694243876993675898262991508967461929502958235362641382931607598184230610521108939115280805769809195863130911548762940611963662897355903464845539767835633004465561113654771830438006073657067719293578963719437969370376219144482695987813971500667523085730061360616653908593418543913593654347200820225406421159078943417202553169839196315978539317680072961156599362876419956032518162420143968787264266365605698080707416107709902191310742377080538214832500356810010716607927077653344889645503708750671856957633991216120693029285639235569877439438605639381587296338358775902182276216108785535564056295713579958654383428027806044473314045635893953974327625669591119598297785967639480873750093115561156803240883742835831721777131342263013909994553592686673556908672658015167515002601122722200049374487767604856602122782262491784825766107125162123592742813695427752258526200104635487582837496580317071291042868971501140970523874717132211749112165412844303992086501041970093051483585620034281693687544252492265157662558950131705404778038063989422080284514440286795208391883939864185166020735981778573003312028740029763549823656868284066416969274230709375109766889316651991903779718360804697002987622377546150423212186142364105467218419809880197668389635452611679122625591736508198053895795479383229526694034908712241880247598206537446835265862862557167081772867891400482282051095324959214734556720727355766621650044143732962244040747354934869169119876967192035367342049012599064724997868325787193761436884154401726599363113584981639899272693046496395179571497970430455805965781964444763079257779571173196610770024235778093308236309541373188910577648052982857436024884907039758044095144311371002822991524466148806388494468811592503050413752543355119411633674019479343218758027360107192053138184149847309178772799410935855439632018630840501639234593933501210066572420654931227309425017046437360656876218066803376044865071901257145298259012300541067832965204793816668890474513002417402405369778751834374502758292246926850027748324367340039708709909448952653055304922976865610465377615709681713400761668228397792959112937322950619028428122203362749210253708010612328985611695989618349850454491230661361056534487990008074694241605922018583246146539821265436910146968563177469395869761974315555369748909230402386769425978958408569571390212768959846990430561518775990564303858143651769017715263563763881732082480948760289156233850689306690723585472468543656243327589623288391697292535294405598720696094238460372182214618132429219986543811625471206815839801285758669440221723841342435290676528786947511913269324417675642985958784193583420891150558639602482188919147126660579255898979131288004595083141709306784430709940687421272278383057697631531663015492255816208293580527045961830337468877595687091306118589331888731337850413853384034400638696693789625650653509008531817648028656046414521866543098834302010180463614949630367679806035961240766180807599310440863977106823521505738382239158984447880773633473011632257993058081562619904108658752821198031629725536827002901420111764840337335909708261548931712730713409993612124208113369255082616400020389181600862992437773173406998552015792774323747651624089586869549511645954197163725059670239015422939651236804869925034015753082767099015977128865807095684445954510962530493951424690656090072517855877560475577838842445057606412689203244994039694885168019400702149611576187437839181511476634840224266884041386517354116853201552361458025393624778152071597220147430797159426994409664322098433770617682032588952447315385967792661561542425725860361520643653200090708987274623923804677519951626811879589458743052773686120697739561908564293654152436007528574584126487298409437974216106826070778656688074189066061471992161789659508643788904430506484790919342858822882452756206977858154272755771817977246304486093850723041965940260338552407430783561215966571640237851249081065750668942365805140049088252152066180819846261915138691374791922971359078031252189579265568221995582785438669883124877901121271595341907174682853765205221049324626962454636452056672420058791520604929768694906672239933048445468625866726046788948297225964879745224664736738697003522410757126333648514961462454317031148301107169189144989723535178603513640727108698932866333742216215775079154778846284633330376080104596979692050470548663333740716102075453348005791323559396613247070727391361499667229951387112761385425267801845937612347773467852504583740140894374587988117213403681585929003344580182274752941770160311579552587032443412209954491112341174103255273086252851208071656614613503606283252819518362737681864789629430171799335387252242569441722844192297342891027186928774579895231003135156349336387366372364513185759873520883303874506814061862112120373785950354621055546829104376948736057085627187615346068344958122779325852929462281894647952575248360828881610207235462169940701860171829406516628177116397405623106669570378831762157304815942351858179991595269750116734941477578573265601896618013940629938092181473840910302500289601498729036065442891516931654508518647579785864556000908828363104426688364896849680342193859761610984037420580029147402410135382900763644344247232317463346699141136106991456105629882976609362284107420257420330117991350212209378557374855998964458221043230225600104089525183899574078455875356181643771411116285177227050976267768112075069176587200198447006392706977070341850364075089614565014027542023402705544402961936238710169531134654428815138579236252378042421180294276951953812428703823548576738817665112210798718145201907410905401876554911628189900765316949000157915084053525305084528246023597260339537996527164356250040468564671934208072370991900351023736765781423728024281781760734168042674470450143124996573847676200544348111782054455900387128310420500381428994437668536371549943749542918012127134794754578276560383098534988871266198025352112412043337022815265320250795090566001119648278001689260569350018953823864461602128187364145262566388045136648096451007753298996885412129251326344594300490625946451415170917860551350665235617613203602633699796502164347197023765690156656517339569861839771779772596997841922232972993495979732881981324368197490534874126999964588441314496996298399857003944220889242009993302806015764399645342236093857084226064411050494117945493967000652541379713453677916626696243477404432036032801308809119177851431844914989349504684896172328171832602446141437036239615270920340139825503158781816157317604243767050089045052179081352093776744789114138365348171650227572081449097124930147768347112273966981254848949395548687188071412460692612571178191525088504871147458525720011532527017790354052202445372225827177898476547489537614127381238660864326273764698907174087021922885282221498031184341201628045417324334086560261928796303649736807848949726879364782957799574022103699211114815727873124249348383328910092756280209345429695642080015931721225661851311889354079384193791408245202556028340966317429086010546992821885123088756572546024223471157745268439656885133572290725008816415437421263909197039731489618276444986586983188365804197993476343486306687454375854561927806636787773431460606191483844751193203963869989431152636385581144845661215366086975748860896216666283913370899476161497841067003925304844307602544422374224458477711540455189357797892251233497736307017865362087241435208667648196518836449827960665970932058191648628546675486480255718628529406756724048317307177153025899817320703893543589673075806846066115079312219645002609192980855934879361973031735127246844595333336139088122428379344785074348796876570999025934613291669689365749305155368123373791074484421438794298580568939668104051117844066374475832377908803053291416697991068973749815174645830119141460192118917050793259354042447556906814953753220302298774678780843282331345830372320755102578168433416316383735310725568688324422229013857772369590675560287166467039338940219608554256614527302991929555469080448473909716065800252944375842413604055506881470945860989267022532061592028451107303672114374003452883019871995340874065771130532477782743376519493288748537227925822378877330541652584323502468069048605385210655127093641170226924717180647475579149236001791831876365775802417488858493472851167593333572004055651965132397131443770632996056518768216135429019796090866070894879974767345471358271979550304675779001154475697252135125180791029411195707475683036034631977770955748402562071905260305689511872962800399063601205710150820644979990116118669989564404333590215072935195356073826205676910718426320481004130153976394893598724190861344679075718416875434148207768992615349905868689821396330990815972731488055074122574989517761742394717291514260620138067637452483261632757327385194102504372186846231230145886800540567874739306389389084215667840126248821110747199198543275259712261247788332411378877386588011337788695670578067956049542249994742119051278969265454478606134344819408659429257322203188649415420961231549019082714535056066709063628452996204216100439474625588503696219256301754928440192907815095300357482338596297460389077163449178109398224602275771568848015347646631425959970183915281414502124461450603116748150807158555003701178885112791124074930172432077512585460663796578932652823000723534763140933336618091197046170039019854425426572198398452177896106088572308152126005662228099900093158125846780933059272659378165957043488101796998602096577216292461249543956174139087469474031252122688938493167321784979727892697740501617526466613944528375789217127527303477885739934137933926663891126684099861140008245526121415629475574256708535982037707078320183171192178645608521225959638983824817363913501304609855285293204995620781102161587545085223822420728352538647151545162204553130140391695598421877177116164650275267309128966695415834885428579132131793937349107730424631293383941105616352298999972257088124752673756754543510574350154041890220031004733292142519810828271982829395067554375907556000768069344899919007290874669568881345800169973054107947805827160846064068057866679375122332443675785670318091715469304001317228394326789001683564225156590929460078045114161857828839386267224362312468889183854141226112939847957406867144411860624008482068150746762755839437431893218223503135508237905169003945510932335035060875924308857273137373685239082273278611354205880160202118746642502777499417887456415363800096966818711045284243424907102821105308753747146092044360681282669558372319600840093279195814965862128006822061625667499503983457694402127372386804910857979062622213255851227621699353188725299623687922770892307386633136523476587511090733006827400615065595515813817828677590566979939371583458241362740268235445852710529615073979732606597752723020082240314027443862509758963786131284600280652803417904216182742798672904765623827555751003052307749408337465937604560504242657991368450815682028980253842507192672404627029331145479942795642145686728059176782698720859223062893316282307260974017678453994760000791186244227888736419069342150754787789875889717770796708274961810236787185109478982757641633693144024667225883508506849860061291469582054915855333651308934695416567841351162519901941227391002243135041862121517102876605239734822863283618613626992763774401655772006294467687684872686473416281590769370845445434836535731948611953437196555329088565366742449244165848237575763552036095978179798998072827420750265876940896041793065593084627391370025544992931306192774913143480590601471032508747784497793084387449520902708876719780736972108541536651349958953031455184866482564388323504043553005457967352713810346608410176589659567633118418138737295243778590356356686365649919548153553742931756426715050762933208981645966295364272901928686475789705277424591305731314125284759234004476130675500592745018678739195105930144449244546796936489147271190333595896333553234859940233389469006715693272831631499463601322563881655263854072363401953294599497979242861647369630614876786819016011524232123774399463897746443567497316263190876076914703283795224272799983365508384057551121326241103836189970677842389271199994237503834398478027945799591184138219924038903425028275551345723684528054923200925731886128000502511934842338368377959607362269164870092940181978057127310370243849462784930005587871406883914433134168354293744079058186215952836467572880792689986573963754600986307492429410734041742544359928324821236610644800080041727735256550063591735856880973139005309592872654725689827538768792583193158720280931677872935741506359605294339819706215020952956746539852361814035518501792485829025044928387281235006508459920176588996415854526683192814865484975725806754539854157013298241533710027407447355411639651784360381775112921071731892953590307399071198932078685619525878913845167934862584123152856361821685167145138115387673713253856614681536419806953211862447032700142614489226092372597248259754617150997818257915286254146095485387034354262633951833278808959597295653964996121437241179617369498702829442970129003210058599673199177115161299664304790023478257044865736714134135824048235302272351417411269605491197621471859834904017815034836190765171171865155456628137102076629195220214210526865266706208806807043111038855089093933998249986522858027035089356466839264665574515669013980648361347374506994887382225342090165093810369544603080624060956660727348997621983523203156537872833440213063931752583051210010007527677935941085997490982385843218480425096650805903526723414669682317440950017050646764762200908774724376116328908878512392690902715630063433983940865052053951468803880466469172951073312543389187814662675844303882099842851590803103686913109262476714728856207587408918346426382594014254832852036379529751722184866023384535859851635910800221349516953456563320604251485115994315426901679078043122333830303881285942496171090596349217757617592828789589247844297920346958532650888351188890641880255345624255835332637473980378077097715739404963479980897032404520449603443004285212366209723378806516975475974875540779974398738827831012104100016031038063929385891907642481124607058950415224296543906950482496957408884198279271622822883515766840882406787609803065871057384590533946428423507797953881569938875976535914025537205706114258814531694724611047548441058538472298358592120708172806596645343837210643687165843055685152801975003209419613362489290162340262289871117246547813408296341278565162865542584076633532182464261312281048697484936789623850408319963515594021874909465911983123673352311581582863902167069521224425766937728408584041794943568268679201652179555243315120330761521905819666725901745660340348906753283759417468776429432667319761516000397114590404504430838375751296291455026246365991266347487387810014987695958321840981796608762989535870277124715199658507307255398778427998762102219564193321917870321565709798185216378678469557872741611970286796109468436343634398216747712745710227801348868404554333866521358334647422732420051674637573235414166354938923888709849277894767102537591952331918450174048333500787143588912117504172963080412105621266697057576275693506215180366977889379287307233465544882712416216707797432124071943490177064432738906114307117262311940185493033177869680097351246536918882159855282637539255456146040742417859686942112329593092757251233749431521336635853185979580059019954523773404702977356149220030981726746218829641016969747421288731266964545015490899093067008639881300124436320597525603790294115770565126301738216802963474619407290852967399765561511628418048087385965912983800168957223566205696579601868728748309142345188569349232196252366741838298704136057154944437293404205860128399654069661053610609346711306575109905576440699309751845332792538489563946602037461362741550474081931884164567868383238477251976604815368457233062022720086367234985777424058476058919859776052773983968415885221303275281168152559777498680572414642506557551935283739658906648913919432359177703143382635686398291439272200636213375346762177321446768316091489631933103691397785237785693941891245076258677909940028161626110336472174932923638646705462042797603485696999508767182202639952492251066544072364312214968447688793245965990548156062154573930568067730600380918204443001929131885643037091286424689513015916467068949463886776431342241519148257382753205767249932082195778475551288575655646401206799217767145078960501213564414767234149055274446334760049943438985694108271964044933412873938266539447824065808938937151621839649406436027644030319928727317021121280953759278608745982406243586514956296637332826302203743525901240918603653773842449686567407359636449091701725485602137837907675914672509296313975031499795722237536050016282269624839940365356137618307907761281856762391687440577147154289165498095540751204219461318775433403489571843725172818355781270502119171564067810309901821433854193882963141615101173086813952600374630870539677567747380566578370734330945698999614898207472411675832480617238582716308483193638619614070052236881369713784791486962930128301097184115908554911932802717962660674030095780370345718265776389090770739444300877485138725296517331264115988375705977583055432940342178151204213674483623695866755974632419440704412297463371312025101578853424617486433645184673913857968912080848802432946481313867633276612283220257651908854914928124056791256381801236938162334472302156322107544052519461693573728715864374346842046633566674091741610436965753387411062398794914305677699350090994768937703792653950804644603579586690125223026411497042557133503245878782197346102289520060770814242900865864773953011538321886342230414754973602333486540271323473277596847896002035338147241034928399462999688368720048427274012689619438978536540981941257869259444305840183208507447159196480855598026400564053895349503094240933474592816045076637010157749742780530680747998718307156362449986742633182685229573425095739026595114631777762262286022774487333640820992199116628733365793950565511801269898625676551354683976807777354777431934844773190940702392474438527508997995007537181780474370995714992029114039532935205211882482097312686986302847132994603131147546904409206752639601458260788858198882575944255671092055837190846030208664417469215227019554840081047647681637046154410633234687256701588525804047744758285842628693153893304007367842554695238847012781202570278855918896558395151769336859288153900272168855326385822514741364309594842333404454619225785236445841962782202886847860241615330189261126041024601123085376358863524232154837201862428701039498212059873973800020728696529877811489254918348308625737112586475576689106457978366326963089055141227201673713771158748961936753820184468026038908109089744166790176191192071848378756100533455888668450943221983880146791049906849089141940611136205036174151385366927014528412249879693290646509981023925404467407376250356790578251206941359740687590598791343216061333990400301909232299281617540119718036523273297804917138414230005798178451022963480296483701903559795121381599242563687523742340274203654053388087495672539573017278553176137182602877910860650741235907725284096494124074468536200796319616070341101906538769020660438192843874890406589044010066651417398903616832870771147943477454508852144790756278856340281125597873223038134581943708600057313204703100481958883634052001316400823421212954663073944118152054746288410849277418348431820056176516534940415236027904653127840970018949274921579126193884286084809047547404230987826343513359329057169250125317660569233986793264510187915755740314603780017352421764432986908404733218657487532735726111164721616358596757584190108289642328819309850437178923730539890867457555443278725841580737635957452570314203162447721668885584243512020159241142860755900435710560203567138073518531245866930888586347933779905303159324060599161582339185612842502664218862549542012953526075273330840089368030519382317612352147486108581836870823043278666950120680942341017836663807886080906608002097493750343707745378928663683192514879888827023871638596511905963580850182890975643433897206894701646515353310038747432898559121040443714043473914184908560402439916078175657598737120726141310974438639111809599962478274486597812298654570942074512913079638980510686235001952945145504379719927336787372904876272646793555611083988645557551299344963535287749001149201789319998280353591965463604505870458256672378428078055520667886021073856044499558791199634826578012527765586817351823923249953247325618282567910450375514580369111019504546198398252387714839436154625555168518716352440671144220955539217638649350728211993432224743612585579889085222837107669271477966476888491550549425095811226116885571709600742057766312611258428692175673415599235936570932751323844640182968518274698296967516250382201038318721914221667583212799267033213907652974054839006930048371970829982575376092479606426459559272685299705197098850578225055896826504848393156494032783281885408939846321077965408978476312533788407895295480461682892351906592159731808391359567496090345798660858711949178139753418569395175867098718160430115373749465003102992269354187176422367474782909571851650617462319676735307312159640754687787283276296194249133676661368164947768588978756301035383098944794227668968367249709431699943747017418745920589958612652879174900683433441383580120143317182596013769364463067734287106807786319605563424203421956336086506991297021255835408466022470480182295772326357419531580241206380314394566238179171214048824686291139984213612733979127988259541024127123989669018174103702813868158290621095047938381027722077027671883400861750204915915833714250764525532767962450983319621068792036468361904043250170303173622560620907799498761357272520164135389118917075887964374327574765040481770695631522942576111376242582237845341843050671132725884302585664485398383841148018178263467156967371253548197760148427095399218420353946138355288369492979403703636300559841303910643512047040006973613976499658514011615179944001283610666282968920162989724541296055553184939248808321049052135288873203772761676252924161045932425221808107930181970696180687215231433307091530374200982937401532955270575331496193397564340141977661878514021230972380892672584057287934289428194801743604461535258640610351948464936739271802375630276884635092966525036922959470381735963954385734650020342827505688286382625505830072140029760315502106705498750133864547039789171663055576850736668176335379330470141606203148586500083160568673116517438466065101068380495865359453965839649374885349597701236078733576571674713132129619103179985343241626431597979706248115876608013120463049965080211249271202892618688818333627400049510508693386630709680143938770020933185276176411417104088252157807950673830532716193930216574736103028289621170125464461917767968842789547480424367541099184181621026662702163329100113743622995873450199284460445184962025160468045416862495467471278354835041420557601532619746271765694329514021912282837507997004348263775154524281495948555951149443527775343571256301811471002296551771194087844178700684329301414469666148928138231273807192763861024323998220569410496800380701469103485286033648691272617331137794421652317621208685947285874977923124370295136278819228885798851762387306767368652739050358341151430566227580425941680726122722327708455985684107245291121356447619732343003585225313823557484569533383135218332823435470994945790446611850517062436498073850577728260953929172688338924198916580009053262767203377453371994128391606467396857162670514401249308743209924242277799895155528662109379666061539492777546150106063092711741914130048247462871559656232337321123939015727453202262497047943057944074228921994274186977061906015566570826674013450623501362415981924097051605697263891320935013606144896052397035900905182675061647988135222560985840502095765324765404023219201446128828505571008471161713476491823271928278425793300395816197467340319584243344637703829679281436502612778714981896342364854138381038803143005524059590483116817912631462996346380108711165922278963095044350908996308146155605433177585769217630055383564554076385508427976242340777360966125244178028605662097475441231644077231479096366419172844962273076787010209616485415333056671915745558837601572478164375114641127015668514107348421857055604164303158199515385082940904451459508199641715931284887637283433986802374888309863531828718682892825417519335482633138231558056860987197098217119321971606575599921910202392151357493063471602034585901334969697740709205917571253483804213610051061091517056353820285375818701760373097234884739966113571161944645171929613308942517255880884429996572830902394942194020893737775917417683158447453076516281445898392667037535146513577414884316962679822812080124230456618602575668002192381248256566660415428016033107215718776616049175381945940101177043721127958847965390337468329134721176297188668031743365064201129508075515087203143589698141407393349260157000108450381147764631212178532591405377368202898242895116668069246324122657676271275603983890265195400262519769421486567378694206450361057349418529734413417120460607716088984778986879831522245959241107650842032038287264179371010799815383833255476385841824177058221505072936598986654686746658887236015998087468807652508052587978018830991827590073903623482930174764396813939544261229340702502353590103310557825301694749382630166223094415687657397002503207411792472432978713473666337697643646817424911934944339642136437966298738352279327613566956993018099922047887206468287612706302492165599716204287318258325950532721272010866841113879985088332297421024471656904869051267891145539574189410099288365268513785348848792313386278957484930436191382818809460114816861785243541572309724355332244731546963261750492508376036297644597801444308581253673251663146099596978848934417764164103520949283786513594401555653887540058554584340558195370030143784273053229708891724218412030069909387110816575577337306643240224415090152577028487869669496655969062908619618212997865896664190405157583201661810562274560493061902465129442134256133237449737095433635956597585638581419576279778796865607745403219843874354329283143095926510692019930667749396906877084560276551645591574870184663913910963885546898569787934152585560442097735368489140474200795139032567865041918271177004637428249354931892947207837678197582282928742163582185367465109415144874718627060381116460371791583359363485759154771486665257400085807851197497100785326064144485769042226580970027495915316446364341004122560331950198204608142623152692279842961937249531071608330464720710839206221675194010030687945406157998255515701186911755283000240646781767175543286597199870601208287309218135532408188988578144810158827199450278890912247051356121627879838552784651899192627125188016805495934431078851577561734958326615154891530597436988348226750356865462410315569461069554368011466397288904499227484221687741420526541828769590194903608183359521092327441243600098807616014445678833969906910014387122330303701858129920788398584468601991518945361195654127727128989966081077417767299701248615033240691822745106559117205533086400978329286995862414437636628789936296430230797777530085342504872990266297525488065515039642899224044116484534267324797216031127606081691747488285835427385205707344394900810627672632611760032434998275160530060957860720976748106886211748087701342789897453950082340420694042671569643799765847999970259127396581188961163439727708832670725777748888893739497622882604428444332642488527111318716018662127677883058569984836101019883660238289653155515658836339851857277354769942733108773619980824198220551629799191632875336716757965226869674431375630090092007549163749892800298338261309708839953046655946107295431049072794844627459208460319759773119666445353606356429499249573867423631396939547424462606784007498424325865749427262210439118457983112297284396161726254764317040599129077620609977001630562789971800022469996596811218799006448597678602196475468351513372126334206969121559130039934028039835396806240024870407557332721052801982519740192026869210653520369308492050083934930792342499686720778339906144421160592245091578103094617722334792835345629424846598825918798343869886677812240908254344015303628522397481677567933316065716080560258460214733138956393636090582094767128333071959159618728549727592967687520334315226412395408482765749647810980108906517196791588053788837355538048673103560701113341533592231570225403155587042353660960935999993146386884663434140095574243395938682494470858741748282953006634865887032990345680709170704003051924049623901505669656736897684965568087447091504095870078523131164197756617088505427550968745594025760536397053215138257659110686045433180152029626905256148856537640009987306225374913379297654406587323182502115556154361311457881215847605563821478010666082115812874055119876399193576178173270253344293366037208611854434506610354471774922765113829239835991413690271224757142113173633212745520079426226119019269200019204941940557786104174794480052947966632724107623125858140104602000845860486427694402552595097371258480650903560766478435665347039575396497375393726059998878477010956794834854504083635903998672561762821342752732972262880650555785560370581919245694098642202607794232691851359247742925894686326268607893324932934889855687820236588796951542153604578695968150432388548188468753774458093496171288352042225464208948700622713105464507748765551296504681503134654054508167184322075071136619182704242626864101813097683076042345654649639560316579752118737100459655998731631009038682698402733671872116972256718029098206452618308529201515012556798105304794139134390365667193706798807338609930523557371139870729367169372994578187915155825693390128310708165309453624290661274189371593913260484951695099609630119170707304893595023712636394603928203760600877537372019598963199115172236489491509833722459554264354601567211797061048758169108561505253946622338495242137590867378305517641907954665230253506357067770029428154765211521759708473948811959251262890502752950440137378757870422884889225177308699391131767255448196519933544920347464003771167708759403863243734057487925169487491764568018722287934739848031162965213832403634629686664259925741666057862339760521977056314623357426030801476769374042151354144495042091713390512293490663810516327985819371898212744263183506617906560862406656023114119034724816021132610126347045627856809056898209848574941440117004497785316442009557899438556343483828231301043717814896141874605674038809666738032030945114868522994470874420911064995099201165000501873528832406523318343380983329661497226102193418183780367933511416679713742351825564808505528249845151598042643903666601474369928740965358427747605032579985696207208583217724560816945401716356130862046723671218818478027396901297279666394629137088940686552626255941811993183366020517120179943959443936846235290091468813034472269218367809071954029195733975555087776731774261413405645905717723151797802125035256639937313298754320467072435729749997337657898062777547495950772619049666805884878415408602708778217970380088561505976354888126883016048115535250776538002740108989264646672551605944008423628488183274182492710491031969561652904018377701670596897990706163988533167506599006145508991294551392991958205621028950489962538534061426000697392393387663200160943471985531449585146488521416408908368698021416271036438364588122320434420186098118162218501993135095430509796210005221981583305658827632447458332853364325040857746819027991391522537086176207296806499762963623158416506212905140554114801608271769344900582560265644347796551707099513340166148731975651464689473256587406905336363242418547637305681787497810217582329822125582084656173238811539921162762183379523284642806951425047428645208999854097274815028690045214854603919942320186230554553280738965713780114833618802055765692100000369839179268203695000822021194706340753378271641344494528569316315583047720561347405292174828383484231796402797203057617748290976437071466553994575684521653012036594429131216583740181696280844428540957238399049352497946460571677198845268587334383903692159157388585023024465512911949846043541296121434478362132263152946180709948477513255499112395958628603173354222394602689311593755530742956439338600945055193440290690501936348650884964461980008416783677331551669804510281602336747805374588571314246266315779588967878057870982910600982059637143950827932860570470501935276596161577932369506981312292304168752027543930119052927802621423905584816322589886805175308048381262968814826878421666276948412649285058508945992393623225156308041657968908229340320923596603686674147877860844976095261561121600947896454589376867480186088683706344453047775573226552707682160518354615954542415823013346602154062021524391453435733675504323061530900455190837232782714092763048712083532368391454259582328469531103109124853579134652775336766685235915235891942438989497809500380784641593249242684506151723639220172349083046555872292751473055098685066719534036070389911224030978229018471173360970340922765973133821146932096463606104271190497123405800889277960435134021178347501789042376973505118126308716839396058567846582628645190381315337341248727517447736317727518017031486089602712613891690061389189184061124966041019372779282860561418210217542078486740669341637408017886620454541367974798227016208909658102862010699263096192887884856604240080367508358292484275773218127724612320949615418164227020646657727882421970335435521956985254427802373852853362006313417335068440863691838023053986486648933573757303269093975901685731893621245251016810845590709030105297672128263532831845639949557224423376939571213769252270142093832299167887917766218293806736991875881966544945190803279916123653256906575539026516601360476458283415259633565140929153356715056672430455618151534762378309480661663739950515264637279667999837838074211996635629639531250620024624758560440820994434031259040417962661298924417700524251579084881805900409542853863168066161863349936124690548211028392217371975410293171580243961463776085900199602072018997124809022700760874996976549717039942661491322203631571184467589105525505001893508161896512503325678194499538345276541062740017168753838797433659286540284980088742603475168469718899482316243399705522758845049257856747176765196193907132974396112509690106050304549006034097479232147698108132327913585965669301634258312908259845943047161405502140640534394237791144574521097947460052578543882040092810566688014572268712083985068963957515772294487288083970138343471244568124481187261687486656039831279593962552453356954037223634113197028935284401406384849856284489870629211391286315433810587341339100576515825856645985882396329812450573684128942605163754015866163077686918704740887880480295426914562367779914240249638299174814563114280984181653976866046920527022205051507888493522294141423214592366061165708334778593342522735871594815024639006533372039894402132219838346894342720916222427894925633711173565490566847846435822572828740362023364220131468489952589454257475467477645345007081275918334115483482235682029687172143545926772552762646002069143540158726610459342564518778821294167720833142494625312928583666949974680194851016510355501682186787132456194072539542402500119293454867324656590953244482257132826815073457882199031344927019480676702737449152952676680665255105341108486633790292133657334949045596543081867633988450680710962941034892447586292339031114545600464748368177511257545987201619967382778651796629394500008243454491731322782254240174231709498367114682597451105704683078512086437783194987561216132579389419959442541176128881956268997537674257354249421793944273543868816132430851583366706278630824366633882105423142235107718583395471709218188962524650354474156585367425518738566472831157474901438023138890367811117301243651886778014783740188278075108520137364397496429838099738051696244067703111286285206061601529611478358230179517946975865966514052956385425019570265527910283040330169317119668278869516486967697410945521553737003547629539689299089219991804798376185502811015557102798301471330616852768184186276218408065965041888049881958656527060199360583698305619514538510353477436934811908882959215569317220284312122559167251786334511195397410776424361148817055554308541504827369269699010378101721107586774996006364586299413857238615303935178627604411179797130285042060190316181534829084527976062540329996126025193140327462073857632275016180179496895345521969618473020683511583783352821467055072101393018044277972223564142614898963893296259684258463893341808177707203390790341777096359367404476282598420110266336188691429265646661493689062925283264373765975642666594532300201736977852130995434988836947062966172446934605711743755965688276746667301345745744529254750103127462485033240234097000311491505981353759949801159486986881276168237158314022463554359032765949399772083261234058850645587220939169156781942288963769124731254356329362670509271049078538692239591527806980768156357278113391803135463027766299799864143482817854740602958564473449108603664965222147655303043511715112503735916545160193988039399510961790584782194418969655371657331544126896109615577476889306899633832579043641414807923831726785195745998362774322699525756271222748027554894066212748801391388658904700336223659716077066134578083143870276520597088280016057018265129835964827356619008257679965705929142559971880823404275751916802699482158572516217493203754590932339405544143217555567156877670730459629287622253514448202440758030569809934451680806239965202197498588923695846910641325620299551458169744502796031870674553703710893370740400091175864885728640686760678411398405522627320417048234829135890984994305911391059425219005785410818744689542254938643086559982748921267680275378695776771468571181695501651028710076374506071648086380258799984470485050537597645109532470874699850633662464217752259490492146717721735857770245303985214336822345650137972948368867829348854203223003815106882211164734993039332897498309879140738334840077921538503713648517976246279912860152310821415582077087253546471479044938230406907550791976693055134243044754630538600981987223531428945820066416242828477282942101811939506548100084078570162236634783727252583258458109491983995936870741674654506840173184212428679744020450624613798663355290402517551657323830706693312014603364679561002548654085822818762671378641963966083845098126386435987175738702784440244813806149089817427501357035089299973705469465095577652212556517186351466293813165120874321902777472203466229774407514020992703732861701307442409499979942671537642012050480914347900083217316243690667125670529007481821824658351783260124597132159644055979694165737751396304861864347729276394044429576831917144134460548592425626554874953533222512288647002162637571816838527474455001340979143154647124374930618596239849944038779326109412377024990595090282028646150837912392414974789337446251809443882905626679655960779835857952585224781978866050427916439777100023988423507824566410478246467561942362872677217814952969046265732629719562623307408938388234140719268078712943855749239680293045499575147490531736301070502918222809039616912007725412806799491877399352902248257292045702997543254778464458112340479074465913156547940155005076680047496117705731203313462122689565934031079070432125323509099584940774559530850151481996344259991544604898516314939861187779563010498730096365107501711917800347833430370033670947071749644307766596507629954988125934330398299893886039084523812187165568195260975161945052171372615760601103115352470851275446639805057387027972686648673822401681381786962062988538299211431691302472739097773604798164987793527183977924958641645031084540567046477389614153074890694038215550827305973750398111130230929928365967578025419247486645747719227820905113695735302624393903233738012485535389100870417048449824933290057599670720650418508144572517798520373422249284357106101993836141159905148909623800548534686405884098711778338840936074767250261912389515569591485187946573398653404460859114650991389445266379989287100434300315136793191010456234924818342810233493496122094542076451895571902289394013899538555082593793666710463821807058960239039570684584052980182848783869564006870568081124378880710311043674853840146538313428217355051837354919365172570051384380354685318613756566393631334268158768355350542937086636880676535873536167495857284966040538842180898653638339101044586174670168333039513891208423726156836337224069990335258971251419309344683710837887163340211952533519379822053357353952659962474911383879208111124289613153835819929898864032423939640361335221549220700658254574891348997802700054327220187306332938499538532426725506825206595726980243173311860154279126671803486892218241482816243881195569848564694834949980855124744630212593002475585907755512148360482645801631924777823475839345928780366415614169507662938709644343030210586411807686782804208369651347107208521591685068707842021272185527570117530626461441697668964554176036912463280230543171700613786853596413612299601801207230320255009609766008106811000972618449683650221915044750184583871591601757311768371457756606434965794163297667727234621581937669038324667977099217765214220872659813181662946544717151976497348040482845941963907429723781157297169941252861646548736880328668891790724189455767785399618311650446098420443955561517813340605443989876654321282966726275880318858594671242200818817404020850025697173966471533564091122316250960519409998561113144057689744088769012675745393039837184708165802238364076006817430652529167945355243868100913687480635025391826967626727769488588611033053990316500974115362760050211921955316234819661706744108618355723448456874971393721895528272600871271645072264656604720041402836669273232990005788652644452759350847064558821738246455625925551511218598946318329669499113222081493073352328868069713602611875940579297840015493091627002152989754697397571355746353048209784231154879977120894398722370091604368654073520760703122160305102404322251450699033029422537641005852197426405770968466457334977722605469846300461048315703508209755258767094904876284320442726889877379545459152144858962909002504038228437706540583803813919775000244079028842752461707779297995261252403741703118884421307841459525116885654638576272783799026054028194782404297821894050935090389714258729529801113581942702236131865196932873083877075473985039459114190697334426659271523389940120756637129677552209199018466612527141393446009373904779290280731442345141241678498998064368916542006092894604983975932125663337213900589557828926551378182686411362451544104703463695849238777554204128294912306084329771822191943435280065489021518864267103010129353581384619736008843528520627567966518129464186134340803342511832975271339603641083279160174061288033150896930303756650847680425498967981233230479446752231171384437618696540268802231572993017152640305666943793234369370652740818903363337159463690107577713756695416618171109387381105482563407188572084473136178591888834780384427583532998626389576053245251529192208091014211482819132266507893851276325469032174325273833988635556923784534368766381493129617688267314463553737873535667605539303470666117983925936375630121715115126559086139802942328952352195066609194146364427482194149659710606523913096071184406764729866851266955144254975803077243015329228711689248621078169877756533921320844150997506507266334326048381543119622154284769869028849058074059668078850065780112092941314219839072800374454754491235661977327239290559790602624842464101835711341743501183941983157330581953762760810157016610480483739245754713303452837443563212965695721386947666457284871676106635935196223762159785132114863858537656811324617865541006911965240832848056010474312226408509184679719975768414605436316952820659608405445804478223471718539094470982607940746860229151173241818681125644435800005919286814576176479879923468737339829785382526730553583350450854373191588322398732501346314378072105238384689835839905066649697305660622419788926798528435789782764819207003163545325396651439739258006104851930199640416998393923689577591453712830934361015604413785612771590169932418927117734953794427723838589577444432208897774913766349558814482972866284996574400717087840545347243071086363389492428927092943830705129679507525418843531510606533984554081987635788208700035835032140002185138641310745015687956380131455700202326907926865724310490514831607743090667673339475314964842925315620879953475643147734717540303754027552746470999528889444951617946000793285301020420417914365274775750192338155251499430464193098841819300741942571720720274071173888292050911994550113809534931237197872841910575497880020493308274469360819212448267989888085851345941482359741425470867704907088534849448046875458107100069293455111519020386824476758193354023141413578836767230010673327753994764043095296711804227699929627110882465194105067577723520014754030604045791646625165213066496382911920757255170064368940993967623336786060066573436534841120697171748015432498714715121796773776604478409389534414056997867742981054425343978599401768771734698836089217453764459172964932685589506950738332816797721744282020847583153611118561101059367211262964411297168323984058934854713400233993615165448764283207223720657772719774540203303923415915477479464706394825911003577857629479266586483437168077932304464339659460675751325118995568183635800562212643967406183084687475569556128652709198954334583890533067099636917759204769302290156935266711693298891111345332956297582010911056534838649471372158576918379679013599137770889676577916232823680563753304409225427978153809135744869593617212333031671728724752571543028695171049475643229132619269525782405936121469039796905295215021640860578730477612677131776504454528380273887326906022324393815751853504082391721829461248139829131615956642537437625536723215696272799453583836231271184730968118840420253031903925009576936632609439445658008677926815825888361612319833757043159438266872097792456638942876812430858803858247876337749717411705298447577619709029476905176415594123328118801960171492126490749317920381208055170813219162027339946712436939785168562047662597828115326485915867616436605664776492136623437266518595835640995701749804739541957484699570751012068863060397473800018085492617414551260052862531769376107121582487444139414436106809871174345859446812585508285829841201465383916764943229418957528452671937086452734587559716162276509539818411888833537430325245223077437478316812052588433408392468619001606632354123511531073212609095732225127015890482435592723276697863474876224616412805080703823869170709346063793927135223977204348944052791793625939781477588971256547081885329435969007320790297605574237039718651940673653833480173535481676020875296371235287458973164254993153529390832363976951009206742982861839368521876824665183968305554885161203485432715589634658420305076409876955492625905888956707748882456105635694152309313882797070376018550575651775977122753125163823765018746561769788420957811379759171277315592267494083704353269759300772033049793575290648769008361738609736334392598541955423357575442888888338982223545633894070786960011023613320295382155900821448547648608232613383618414917984010009470524361157931913610707200367011854653436611117948303213896327849751303542100854387743054284846284041125614670716790971303126123498124316251585759555186651528180766899106823188763048320218217296982141292272887981118930951976778703730856933588065718133214762525909279858665777916949510050121206246059009339960993214661872391042879694741093267880669904635899228798097211532412596732831562405205178708144973011071362052498845135784772921668754753261346848469517708551164747282810475966106375377281630525530369621888392721482481492143733233913917775577293541593683198202542188493392949872977124038269788419319983236159700381866448702605437596214511095366870387225164626844802179797991502101289861003056596966418462188595958337443152722309601661352014181674666910779325750252165127008824106112568579543883030140577682773803820894840033996446997546446649519225397346143932247058672367340966617546367365227417677075223089913607845082206523150195907966265561985061911522828334439744754541075749152727414976581691968017079028648167836604941931536052889493237686081357140364618516688158766799188612602465645198455302485053154799477439638089797456797722065054451643834678504164033259340883534350738095706445117216460406219596221158752073285351398028391408001988445852103729684003283807997327221516402528515746472556360807164652136375139795733937980499944285734426585506175456735098137184679254719810911460800219227185479261410062170380033776906467880197358348286370243135435576460448917409725693991796921795916870212373635540380325709013454734949034631199790436206899586191762619660859231880148706774463920579481979309307947789883513025160838586141212588088028186664448780824534598358326111239807847418480809380575504179021488501258745311047033132237851813979827211811643629077515818487809347266723516441841802927664728921745763565926871034620551223082546314944745930374334513898840282679815363455445417768858180458698867563659504222988755669449702856821935013915625802786930703744531397552571763062751895910336339477346185321953864319363710147097680575342025761047471244662961698546024518570585497157487121706110477219485472199286759506408615778730786578572884362077443214856273257191836057004092703108280990023826677914978529728297823189377496182717266327786589948970943969259058266488262398504020655960311628548274757681107256203375417973721930818455353481569691152733575122771798537276411081234952086051181431711156486037380965089892853272795472973814802972022628424167899361472176995590353855949871109857011074445470096729312459302988677409809051679060423611515931217793700582775596429110365551538877419088037196435736719380048483613799734420941459758126086255001241565903173370989106690269981213128858959241767937335734953554134295290267721041351113648174801454474982874611282761948612707572352093460436934495808990049252559546273034775514793036741560780159368466340347452580139106605252250660070664405824187476726627966219344125932007016082384292700523783161244666451774769472094308754137913589031691301875979657189518562886866110946330456467597467360230565450540015456941211960606833016715515687252978754932565812239559578861865600029614468856139854536461481191922329275806030690891944314305348228425219501638460564581368095353425007988214073794461373010991175155853291346570259257410948692882399370310534080539064561986135727139180194162538815473089446146973820828932197709056716763591559308347487436487367131505765322548425907647873654409731383676820212778771315833184440114486008082746249159205487596478165725466907724111773530973632352400265093417328954993568389955185029975738265396660163280208071471454326668911267543184308466902476543766694554576448780391095622463500163934818372713492469997688728487883342268254989449787579460840948066954022195698084554521925586376406209994344921147289674863030236785072720768462850158957216580409244273884828812320303074658372454286247794037429835139861381920655463194072574492897201446950117962082410861260494220825565373996660502944321447931153570914280882136636726672529228437958816862910478247829704745755166481653040883696047961680657646289165959898440641056072800877647304161419993295989733144253538198650539200477324916675587358824243634025580665592488826239961676298305735829413451972351096295112319746841747914552288395669686677581947385417496267018302323048926311494290372217046898673702878852616516648839124805195454659708451383741969044070538265157797246369500170903061076623125318753270114582953569397922420666438239914630702147819621198069869217107653924449439595341275496904957507289356893797331606196795844678199177003174997326335276258734290674003653396852232793191041535790937980052914620553302327762097642528299803387456408274719057832950688713792552204909162820833749853626499112598361402057035761085440934342710864792574330945038389498837429124624123382720283289732482750278711013322810038814388903002940975944901970294664429625944140814815054526554310821140663216710287746990474641458637576451330327740886758076947991708545597215224671901151613391378730910234205980841390437256623264125509546906404222347960921009420240896622944637471394303309507429916162503946378456017287172557950003629392176366633142547777983413032195291817119419105115334205479813525583930231168187601382312029828949879867502045359404055101418916314202649055738651797770153783171363384318405838044170500472984902623336238124118189796175938413306917053273103664397088240810143459156273295469711174249023104400462075131281594659118558426781789718253943975089251592673887187718773629832107389909816808697713718842862167488049704436507391522623847285238936522837325929722128347998588960752129524270970296051185421280984125215222727385245586237139327231205845457062373643163828958311571648988111613968804299241735506533223156039302904425668296948346484221583927840469154864696803880503625966912284701425276944261920597307715740991544748480488801205598845908210019408622850529056403195274200554025871081265753651917563027536806538956807736388480461958510883411122198943012274085987339755564132510770681348899350919633796686819184591135790167667161641517756936514905765218001880207986200705260790033660085477110824773278642053280180691121607597930218523082712970388967432727121493679960428069800454351521053140495895053208208367537231209975865676449162466794582155580676751788553073746726120462044630546142662756768770229275805350627081169830188572770162944534073386791104909600761041585106613564734358230657526911564031643339433210507682375842423624988531614166315074195653573567813401149066682331902334286854339630556628187808836360582913422264149704091306247476314588665692278861313748968298393610780570088795058242409575520859958565646001410388416067707196658405643904691389753411826765909955301040656306134223821551758639389648430395516740458955500095239582691433566068998232614508616379662176615298433672163889940659476195775456726312078277885713244976217361675071385821413552628336220497822150973680813372914295110707875354892624022086288312735483103020567458728130999912738874393061092915105936998010243863789695476218005021756103605893506903591343559135936141897620493115007279326887099772708952057331027015354458397909881593941999947366188996915561118419304571340376503205744924214583281291403337177541660374412380426915312261164265536073080172574697671088814608016964337128651760988919032179869995636637095942056096665501227663794859510369272536164231038522182895815787834767203034698024239053258894748277264689832453994132852121603445596256755818598268114780851201357033258714039940998761313489694474198823462096062315188571795257456514283780226852666482133047836495421954303625086843753012069531569737035565459105895504369346719536541602078506376157626612160410995059698508735951683676272256362354719225711152255616351505148186859739042611589841911628776008043005866672086614112598993795201766846296903284815672504698506438291820909354232996511770046805236297248641295347425453133695960518003401182407245191919661889169031829175278924305951952429176825353603918995874467094994068261797755584783805224779393458495064198802709073179617513439311115229112774097046553516240363274116926165398146445308257033388745336597950868720949943661804104128764325990124988283848987276680968263763889174342097622874546203793576165774547504379306660305619741861705241573187752174336254629574253794184247660902733222135595489582492937812552323403788793987099588097579591703798715467184815452983059104856345534355270472555371124917638813807689890689008440561239105609643205895250003562318207446241502993595773494970979409903820666301390357465726741137755804868357257904933675790543512045662086014064338319189215724291305255179427963213069314826636064381806299926474894723427301032617419962674817145123291907086265607428710003756575640630619927711707405744996769226505413327229184987649236251835072385594148610133568529259533633091623610726958338156805509722743668388481309382139210645773198186863397527624483349956917635408832642410551734973468053659902003269982740526069562039905702233927083456418611869636210647728141557909075537113621812632444638255742234672573987525108613153514256982356651417548246614248174777381047119690940240524651546803121879765775635338342298026460107067008385082377765698397858469452170468751419366711913961934056419035291590920372290026462560177095265878661060229825332743378905041414556187656004620897281281070160665639142846986336252179974976550386904802627189188354413301580508507815573356630738163310092880221602262658023237941680698842999533724281776380412344031204151001297644843602625879773685133126380497439574952602130042496260544042972741368907407419249347159238331344584875240018592402449379385069905567971641773061716206286784618814412703736005936095941525279005066035700893225264427033954820548895391266026086056860278528143081139518441626115655664606802663461533060909682366244251119789107960761318088766483922180284090345908648403309145973137179050692712103973752177340893575861359746807528539322982738740091575434706296117135846106438509348330129702455377203881015500087699065489970612215449727149873345546699410865991858094395958974239126257554007934469743755032973259126559194690979658396198339799705024651506646175404663522931120744922870737029637997892098107742721423938190837805135627884902223770781079331240571718439759854650151539352430686989662108717728346495759328262829854587735166277711057993553582019970131764621559724595228411369215631394463524889735363425107283983997180318448892521873144306924276873451311570256124286565643369236688335570340887548401969349008162364990933873111214767318918734623832323084917187602142419934294761632814005495927359427617682182297118768343178958293165988996844036500769967741519799217111191196714686346263667617016378676622210656326471882840262219122355920949232226842980624113365317303461481996769861930179635030949465413341468470378284135128138044972254031003528052077747761805666724601798457998542679508176508467473524605116617111583866855496356136014374640784450252011510400511717400343454421987750614935516039276837114920146289955515788163265201032988920866069744168224161413218741086269510468584987468451749192399559698970261627038345427775302736015743067542718550251362084928439790358473492733112881101644272289430689494455411464999357028450775528809245238743316489357029870655537034668750280721387571225588653036681776829804668243616132959187153100786737114644335133160413442408041290433845945892619676563844371486994345118997326609127566520407403131247134228750334895413935482738481217268232908064784705517309299039570084500152091545410693393902140136610110635949072822398817916383281195636757839572895006652867522828566959274475943968683601736629671047785943470894103049614465093110482941679834245090205767997666858600234249691310245598363197609990622185058907636851683309678187084983970952014390070909378115421334362917569585494070849508198864644575568076502771412408515032981620582183454840496051999324690213674032330556426905495293379493463882231125197558972854693491089369932875176013724300220186025004217393772778546412717731270575034378493103378038337652785404754193508140490461573212047286035317435787994027118673901134236005936067561456162004194337240335677937102904551426171232282192287810262530141130982137477810108539493451198090467340145386638357239015096412951637630286354862722646721127592951523794177599979450838627046964665721093810802463163755188753588774783591526987414982544010938209012697754228967527939028193649915524485396668463476965883796912291198105347300339768714596530065847689239948423887262630989074401389472621653869393155536656620569575323573617452874768229676465880654363195287940268380136797354780504026889985440270111952195539190531921371227830253654847471686462644299323395108311049720221155321702108377336035938191587660883019778911076454738733047424518058522369533925371844308942816729411480227359017168257536836388150244416847641605604031897147523182280189431689649993983423435313347307286486272579884568325341831338380456196702879168967893676914745175651841856129151765488038609722414995783651215616756808974850398844529692042081676673225870952531222791155976522810260014679446235258138909455819879086003805060036048685145151900338211019292639940663477781038607255389773486474712540878042258973589312463896082132033099466321966068889893052888636377119254673247615068733670677469127466471574731018865202555900337300056575254148577868364572035428981947304531804953892665897639172141241908162458724695879487200730691928356752320796040261511918875185699955588682659807328355759866079492932698692301445360119749635155785008492307398182562573067625065572530722527670386147464654563410628302823710043974631564419260412190232446417675902724566223732872833843668314922739486090915116734722645735973846329547521706378619891472474910449845827794381269707117569652098100983166276902329946597168069734205760881534341514134261682142653144523699223230446807458442759690915751824792181378303226500578768508445649214139485442797721168478126093131519578272658800409016127015014060765068674371007589334300962440860262657572596945282799329348611275857649757459288862259662296905289674997471322889040024344699625267348424760216049629318809140928134839980903201917537485303368910042242141190554421818894105644868832834427517046249295578750155112674964824012227340549311912013210144174595208686912680522549732877068688822414601664452871967166084351556191908726751649391346201776041418554258857034382316098003235075891637572774875486815813694569544469028496312220572510965263827912454112510320290284481666454881369251460454537041118131368790779800634110709763508269940132936373378652417222591062547279443941732447401161056413539086593145510037030466716902225381089639570586309255098517537241202613527418298133251531283698289838058498603896023777601395645311501802969374265765182711943508060460202296793103961400922054200233722544029279336863931264069546183959670762354616739748689556240183827325568377322439189129968538564689900630286216187782321353551956615238934466148566684849330565154842232662245915316870718183587749468283383373422310093418428259496467190489583148551164731530107823080844231528256933642967179305673472939440803850733195036555310649249083055927569559202454053024114493449610915887496462569089327675300626264720208520783781438462681138092420152369404553733924865593232774378569023081548090983453408616298344817121230162744118989184850921588635292221641649942417799267289957890355572231376804811367744599291612990858310873281599972707617786545338179871308442286977846421337680129086095298633966897242197581573328162610968963134916503957236580694243958528967151357930904966756663356477010577586263262461375673173695481453901329737756149716839785871532951561226565397645541561005293383586013489062582616911957087266396454433031802291412895538078094966219285691626623143945062930284689638715734504298226514550628912719163970810451259740322928090185612850857025549625273358600160230004238041174444689442146255611869980572479395068114376544674802334784569052315746396600630141356718209353691205428636276085504900118860832272148339434371941714994539652064075934809591130693595601401066432602232227032865726465516344547031262424063856123112101965457449265208543930288835743656919996956089428200870948754060200214744530169731575050199874407569066803868021906189837399802766534382252215667645245294040626802471823929806619161317563537708869556402787486389910590541258202279046927516800486423189515460720928410161845982133894515790323952222439103408968709963497847967080633918459978950857438251351454868776238859852672545555891237156905304489785869121350505581510790678469613316383139622773766248729785925680362024495252025839098094675107574943847591476620410077014917248033057593205296564554695621600008322395206820267342645435390990844732204418351290310638840740802318238179490335961656805235551107133546757658796460478301990195285057257742140401957880528365218869679104180273977072395124919468864439594314831707567329174887171296369254413710226257459319042391083835800432897353619759163999067751620178960491809038852730653720582226537253594446298737873981732105959579660405303892981055335356079911007237731638330782840366010050650955693267593765670134329280122774286869630769753523302130184939946621821402386177132827390818953560427239477890967184214083249587715434861533580738723175040648768739687744253800758112501626339453026049395966882511129786046666247500745545803301274210540059458858032062179627509318005068514179915152451186812905713959575865405105369760617857997704552663352908369139750976666280677254725799507984858551478002147554851142848120614881726216834213225216866165679401776273006790528449083977792529898005684846066441554731656907875722797794707117132423120393903028085806897137134650901521419908995134190028935843198122657808748646522367893366677695308335432513504611598785094699539576394319780222440722455694868969039386622945693308030637762672402199446104069425486755985632058791051456745782325274114576543206418026451175201530419258099595913167858942335113039169447707502312723703357391799135958358673809234204053381745822261746826413407961683573444794853550115420269144352374424481142248361829254074865027365766517645682097657305910054387740394878474100051350164015104341172391176104901605171793621776081074547622535705003132481240239477612620077354521969878692560415199905972589327733791319503509392822397223927898516594186447855424683695870690835571928627498950013453422868128998665121796485267322720790796205865632955096102941035878111501193668515593134845451700333153784812425074718053301578773322257349699433301556542200808674038885373447351890444836533118300668953732765970329181152121485203853297332871833260753634650299690425400496566046192477912395571234014380548005082053730954694083118385251262077644473892082015125179069026115022338210176314927058573093706657113891096237846796624505884963672913758524952458019838702570124194180404919176508573943054265197440803589749237042141585620156491606255536672279681874660357746920784979622852879980614316209229623251981282167616473808396134576768882257342261644234575041736563465797118875837820501614450879087793663163171022486676742617029844676672567809157479381399977227518771225719572280020711800902486154348515694398503730691743036644322498367017334728658932696825258407310937582534694127331595653747405570099248488820950948833816439081842226046372395707551791851211423929328778504672735317983033164813663717868234462994301050125847137150194808712867295165294672618713394080530760793902329559914021487025316138714182008931159650621376568089719548808904971635742524529783158124990071639480892019991065333751426072819609414274709710521320389098826430591743349869710088045579414144873477188257171293221825504481682223397247554214858345808412619465946072052530264148430262054915142065125843884014816164063634121143099645831041572500247387857982999279645826443826894646981885477042267505098310739896748131789061349584459740779649360851932344326955265098673963230682181486401409989894517176936108500120111867561689367345744488182423706864535122836445791811457034394169121304874923809631877282255772158295316560235427892405521680695962463047442645287338846778769709405641929428364636950655679376151657429841529284251350644049350354232826613043295695257471835942141533362685493088165132439565330863569556801240952899772145617865629316670162405599086609060623731452850547009190471229010834381438166191430822373780863636398214124211251333047508341652229915686655566304060856388599520489393868369540043277817143795442537900446630329685272225505293693631006695663088196711099682363095657597943323946471486496506828134091655619194215513914345629047046602532133219009333533832701374307854254271845511431623338282508062314840675970955516086493016594066221581413815714159400755294005243151864143645678112235139986263355577706016594952722678607911785676438154245032928850172901737231655920392421465435385338316750589864092673600477217459518373628951733772538150972430911454874678751405312802248686215733118242016765492442187319695190673710714891557775979528784947142164903607411806662570070603398199654634417951624608575652323985098835023553790080934611851272899999421695348444888435336874318696007293319531897803265639029182778386999551460917980547260579863312359230840964209117698859027394401795297765166809444298362687925737530673240006893700651910088988358641625699883255064035396343785777287296019426111679478667965245306288837957019719715067942395308089600275043379141305561991013191947723110413705166116135233960926994226848070930994812343464736623151783027313481906566257978975632106470980265778796703479655234448615189604363177241856491765681312707404185107066204368269048977801246917208087334145038217927912083386776800342293836034002885380947851887678060550647425878494133164085525543965499343369698795515394269916909976553659513428053629874310275513644159667294980371425554303456040226406798201121548414156352080889233010764226712992450917485092178675850028846487098590196329022915886648549542999420733904867844330928326099749278055091496436870257453984864481282979274840919738383374849850351284013499858762414936304430852889967732138839163787175311924296957194113173481112511661459841495078563068138904445788341469789499772815453241235780600787247422511748732968577943766145086751099321185130531884326397823836259174899388638982981365926049596237011724461134510493677678966908362419969394471065271245545411703152078523254883241470087963680471324606442105951877944669330167375823925393896317436815498928281280913032183629175690005584343438680685931301551089083112386717388802817591644418634813632178241717220857346150193076622594592750129748836855331787483287445708674596461449123841159355006587009451717614193602501255996337727235895437158942002211820459612218039188834566165208347069373607261309956292197604045983473721393037913595191237123181079640955696732084323828724690379523666074541654352775662351489404167854640772528083831981993498453109675666697301182524340153374565948612731568673725057899553569968407459008057362395286109308539435431606269632230291964060581057970766552861087305040309008368130200926506057167188312245384344912962333868173574270436013425371855094020303544889147360649349481340053494001967520653789898726273364335919897284214476449221759874894174441310258469249581604872977849069617890303805177132880057310631643177992600059601950194066510701408618881371285071280884911822887062446537504095354973610185949893245616725682015415349846882663885874019546636268415251097768917994705611939119408931578540036089330821993775345804801526610908191786136139692008706861750330439037047108195613350991344071855296052855510243092814966316495460316019685957577970407792601720375273605616221464532068798091804706541281937871009734190561060751342162751753050785901809361841062487837268031776403746599087061378993928022567023340562450625398956930496360577479600141391768108414339750476313274615951896598403672812216573881154331342818821793255892956808681036621891314987894778471454272559217879423630395404139228788768022143201160410890014206218086379624613296280079596971814036790569573307349450469294033819698856747336670561082332352437616313510942861055597513570076736622681133821317982029643401385157821896503848710987120059109485133688947101145893557300005209146452150565225156205435503240647834667647640445134178055793287790897795440385496233695817278458437875714817819898272076284368231419760427353075250618026918851208024275760353209015530059014319828897842038149818384510119527260704679804691128154315329803617756448202311219107214072854402213950150205025644374505143090619671629203928529145726492830353843389858068828431054113415164386938727615973542031751142781557409117456214635688358732140446651539249832960441483095590382514054949394045504450124651809322378617435448267923112813062541487672465508719475059121682475318455060830822171917554067800940528534717049887302578591873056022969766222014197097571310715673496976081239062822757089378194814255049878690827904123986425783853491198793167130650311639281309664117484788200725396673058161999480104766397047370121073878885511867046796901541869782791561457027041770154902612167295072792246009236313871214615375945027472599082335380240427626399633504650946901831193212929061104619063443894578281302621158673265511595904621127118346331698481258491241177941098471465073213633896582828122693458502496408102892749036771343015146160734534466110338695199950301737703157200764861639287580366618163969387830082283867353721395859517348586386249932982065259502038297808097707655984016544448546756760860102794098432824340661516633208802235209304091594138811363197111039998374488982230041954406983462661644288054378027274988090722823741543360381357854143347870402443283946305086537097767283764953811896727001512436447044749304464742912313419360475622623218578371711279959858823856959284258634012112926026657933721951864370061079314008079295477483343071174829102449620813261950240264525565210816546488050023145973853224269868232440537891357499511275013087879179347309525111512565827810574669926220805972916483391229600562398407908941330542019579030582183527627270775325304319455882523733239695888979999135080276933964295543572098963332635231857808733059490455332818143466505323086639085348379244628154880674934598590881415523810760243173591566215716595381234190513604656935097967072735021528919938784461406007711819658760043870699617472229032218474320076231841494977564074268248655311227543632902854795486026318674024765213410733892381983558792373325897085766750767651440573771382627773100959444642005447155739173797391491796206395599579650282326507695684523734846014229792311575681404089423815523511006302034955676302990155009791069859494770368982200659754941045257654264071802656454243008350999515981405547844146770082384075213934862224897075079882872955907488815657628955734027627066695900480975835415322847700665023263530462498719049469534551435691221771374148939680959765003109769176510980652816010035332865322978586124017147116516633670711334257899449085287344230620952347740797324184642373772609199507596624691894043628096640701772442198934212095682032169060605685871327385514146122466422219783053217589615955730457029438165208249134336691241246994638680645646759268794960302372863195948445968753728886353721281108008636890949157179128299145810105710873323403650199179066942433348756475743462450960645828199732582901459583641603373098994370582267193367659582113611750628921453798870320790080697552565165994421616209084945438889958306518044949156524397681614208302800023277746897953882396099967764955242228617029374096984298742548707276083289697166441849429722900313657413804441284936881917649582255182137238222504539731071882076068602066890829700573894414847091903671653501557572373941167843620738987216288989439330523391556383294494029778206819929775993215667396537824919835866956621805350640716750299659191346292759668703206709033731704791401468899766024208931407567888941106410044772682643205864778263064213594086379402274917881194599178272799470533982938510816795354439027452869998458267128649052711486179175839682915297752624649101474750959709837817058105151441692152027688755093283368027682749676828138251951602989560632289864188289470904705013495655492633256791511007649444548615881263027212303197683869700516410683722342761285225224989406582535211516811855400451364701706458020971802468743359157666051513760289443035280852919507963377575868500957476606480361405854437288620302660263474476914136853641704016155601709765535397916248888670608347495199164487975513524234345182620054006729087813504322192655150221247117302488729357255197647335437690945255141099313097233139597693543487764335990331413879960286567641260303431204961188579735621172940674138383282391237639195455475085801563993603170429305856341433401413161535716621749940177382017717485541343216791895104345539338527359271474109306547249804187689648177041847314630784275586158368654626292276704035013909782858466254019834884471887903016004999893473775109317222351383906657028724206070816675428472423713924856926681530161592474286338147354166766329708945798721901206852633760710595132133649459041371696538564709762214050351738475048880235754773683278594703212486268680768955584757188336190744183879913564003302858832018670640120203518836352391892697719347612713093955376374675081956433562505806355654842944174874728211581057878907577979726729844555907135508152389933942636109824612819977036943452142301690255904292140717095914511885629512024955516601826157516685906112375327598090267270257193489957378037864480039718884519705911070030687028795772025009691640513172369192539670468540478886602887583647662286477921618042895486360548764916037552198836286352325485268889059067019493825607322799559554637175448667031172920663487180549996560711388894000133555370637127982642214294125233378974334427413239081568697609128854812505798088196996297608923934061606551020805870924135864530554872912740392932239704326209046607332355009120105161534433286278220130012804984603153320477735631501188886022678458492597112988687844808081632739738811732113430011840996469308518661078487241758290717472207361514146183065864323005663024338541908552097802570995457856169490126998171774716756276395798074317613879448275597432005710932733646208703856151781177039410077569138899853819743328089941143454957865447890350797304239060696538880933634306041652150166260183517289160862670353523312739126854556845844638356800420353596008692223620538105596782144645457111546669265550317892619091502018870867624142332047298335006544811295886808017399020885545161319436597584789682124457405694088722260356395468490559613100467361942094051998189058159822678485981382928714214134368761524728032524669255873965135044132353625805584868638651658899342626136994700714481662773044302903070699494314006164697377778314660905798238758051312658958348658901360948070815377087311154089242921968951590658821815978717420860056982252295332059679108913466734084467682411660832794667325178700273413620062862356087644952909104496454613007622599838748159254708858232785415972693054233733991823435293559101312246188064498240831764861014248288484078949269382776129873854475549257157669258356329655135153238675998396232104981842293297314675649929283502247712147864900712581075216517832424748770674376947197331923858211054973335833196124052015783859167919723438593292553251181308644270195381155774173005738963719173112492853115297001890494236402810480515724541166600277264828165044185857670532195936931158529151289606013789951487774256796299416078459745774376037371514953218050575567022126194998412124801154156095630148160037729306073932332549638556124098279839368297238263313492134215346649147119799383252495517818663524374203325222451802908839868747173271251389356016353166224330941655153372806513329148147797974063566073706248519009444317503538217005572178965707888895531531479245532729874574937095609880168108288972681169162874045770259339799728645324424791774615725082030156209517494887506843919488073534039650110915387905619175808664220447649350818860940493109432052534018726334859474087644021820824435718039657569612396520514676438253197701261731485553994534291872513350170327780295332089126186918397865004037750090916068978740531722469061106893382052734860464220034711931217217721363305171104639871926783496213941378732700509756116379391859549555009435555997661967710116686159819332033257317052073268221092345280985718846511641212325348705331085252799409882736288518822169025134600010722459332285452434918225449010060934316622207124778856733039821829891000860138123826159867496853854193397942545897656711996499698427487790146685589818359987456677402358656740647615120637750683526906329716162028042651478894246303825671491732763018062661795791381826884208612899963758328631687577461136330476400422083149360517278800262710842443530566933103231917716516064961094432991825221285015494638470585312750914792605877236859938775732734563859315550537601198611869406079279209892380723489470227693351320076538910440095754988559736045836479510989991057745734782399499852391741827836734761146514432605805687847822443454759871989617082180321268064604505475105186180676935197864665474245739907970915693033883905581661293060376263588557179961338523508187901641140701903903054069772803034352916876306575992811136744123513709382529732867940806239654704464643916739365687471503346559173189700608664148193500706281466787705747192730777369092819502902194087924808545744757993473521204163291652292384353045046756518995145249592536913851588302369391996145030551846603102364526615124297851785405664963021227485761736848825947898284381198709013313668890303734881206346436515640563788308582998020772046220185619620547475349470064649154693939445352289328890504273857637864194051029251783107330533800319110472948289656200986541338442684013722395072141981572091767101978527460861560286922996453224996652789731423205883937126063957934398206475874481961577189621435094620117634254576587700815395391399943496591427091847517876464220119541640193079365569547493154577411309077027035183488246872483827664422618472149428490384468730850550727481032765997199237819325504587848626181335514879927060405054231217733522560711160215542363531705645007323847782557060671696919973899930617901554315375875200301367095839077143146276963789432472020893524133930751279534439727351231164673218541311308533170954262111650758673302323464631281998928969515833201295971551660513313863751987355558010134005791156189767098423603458895175670497652166381117020108969722760153678354618374863629651967567635106276214316417659625865901252547276036725443460307411436875603775658094399506944812134575526733905304560140544392743454452326745897918304859739127877451899043858615680401489925285627512183399207823873118511391900854958373453099174272946670387449402884797253097078996727732065752661697632656032061304063850653422257330620451904531549003216759224444126391091802598185347556753318904036102432421993724193758408308581978329918678874753135995853146629701805909099956580843690105620980498296971185217486614553683672787229603072395321148353595144462244914286717355498010605766878763793212990538817074877268577077846348734421607398232222855535478800650819551561297539420859285847034963714638296131663608771799578362240883373282141627921084921561471714759067516364199560172599573878786685661964900768238630298438674089596166123512697169548556282616209747576240953484368776167959507083939005889493962736930468125484383879279718715856220650482039851637153170597385766336428538702242350911896666977261118189549865258378277882244318798467088083160445683744232429755064722114999131292917296522519653971495354392722878515739585369590694863919937828034392318153799744035075129000405826534209140562348549908049925679265189654054278949950315391422251791210426342549463353974149030467624351990244040239006016830133590308407364598152837776302663951937817999356583065005291583128521632524257233604739485613955922521112418241123943711189839461065225411611083111068234679159247892874228087009440985251196025515123573632157823423910099032521950550710374315091278676266916930954361899182768135060927113453360524668061180913773897440112172588265529331311363392087189353968573903036282345361517792022854893042153162116808016883954521039397524535117649100617574632168718301392988354478707153368445550795678484634984723675916861688618011639164022123009460402033499419306732091035395689417378419922544606834393892780935734972362300655309397686984879870351508350733488419140127726509310417434497187752143925185203425372618058871385383811607265262814243919658391633341545128690892388664739778274964075727840024352625149765348328186102782518441039061562557848312734846556418085773539294854023773944058266923760632823633722490890771889964453095364534251502183578454132719237043824691069000991469534733827367194523382742015593501541956932539467006708803495318025207591871996988784864790149225272567751251000334939645057090326209205133969056268890537319476014758403278128387962592005845987858851658505575936443476098582002318869695901711997192784979258165187781414367536421040675993033463548326183028009826791965391169911678549339098571550974315522781259909054180445411440943395140185914883630444410571879158741361886800262401013905984830641270171822538336214226804979145929471501997925160245626025443371931904638946878506162278683868851766385014061608020699762041637091666426922707443193417967596414174128381381804284083451633804436980720936035081424416557508313924219948841817277072437020053184032960413384748269934265819740328053694960748302707622001893001181630425010759793003085611862823810265548646287969773010261293734228792499281447230461502250661969843035760581367204883706751797329821190373917394017055409907009478743660882853737804716284674824818282366672374209081065073214158709665394686673868287952919372133124017207536861945164503128432948814299607878111681438278983079264222992849526867927621198956413180449037368867248537090817081912844047933571945727927468644696043805757938023943184331403294162402089965051956432681399505818300092509986535041423076331871365510577194246091298048869051307907382630781586498714635092527989595424555297143530408682579744135836260112849297913317895021664298453871505125459661137554483128360394949454839310975372591697068295416914971025078729013982743075412234037622815822005291611460490954390672239475602865687744861682688016900081964534549513062569371545323194262575433588516829587561298708076260649592001126075500960134013632849895102345308931656078604667487716576309437890463672936543609663008104885748291534594223641059930221851526642864151697105072622757094290463341207985215883065782569321431241654533564942331351822006847014384035840515051878371329996879115176830852828110816821142458721363217258910980340301534377751276765603114294813747858204505857354110521696029911725888133141957998679639415885067163424945235982526114478235662034782903466102988709504704261483903193206364361137936494994222371080781297584710840795699863581183258195022058426092241608814658399469200447538152369326040971759726573761369608600982118509488154810907251423533861259146217136977901648381027402611936501584851896260648417183151137142241031120531216020289524697448400989473433175808658970561407463316257974212208661153028633292779951913677739505186902737156208688472983508162284815029750062375612672804599960444209477197828167204012425416127027674147107417746029451723488333490240148613602345944591660505386949893075117734238185141523390599679869895325477440538373426583045834331261698019591634581742020464846971381122367723472812029544289138332664151243440978031975714702620128468728769164567135323605494059299187521194795966550442432464002140317458885703073606326195565762662365316643653415346515222634163741407926627635496281440350687453608127082686881012132097920847271999148324172692025029569959663803838978915330182949630743960156326651715581771022737570645608003293011962699850512160129662668804038832002195887014208662972340873319052852326372147602032481948850712635720203621423844015880319089938321531864759148277392051913137685476537011391029238340557165241949249852492338149732650743006155542807141268878908673010643826403018791568949713389268183042777570224459470099779538871708332497351653291926342368580116798061063598563918654206936621218936426058695595343859251801125514193419784244703188547402673587025168847581273048618419726680917765564346891050642746548059217627679461474936560133736836619763440288727204056229067024639201290911395292180473305620577567244009132207479755037459783863215813415104626831106980698223029789176768559017706258030119065276316176007294130158212471877853715837981404003123520202769160505225960293192306220209063472471066766596248224740640218472912970900066933595173531257188792945316793900089721176326582164796456306937624115813870626384324176682391511827594817445661071807107321344946079247955769253841222498366241773511995973124294098755879876801631654566243415788390963654635866270059080180192779482766293100856915364783981306530179282270245692618729571811736989448449514175390766802279759177197558510104192861278934272255451337470912382610075531117298001757692441361282853003951796698998983632653316868670225096173918592293292364562895200166281185132715661081382925919942659643939838026885650613390248963304354496359110282059089017970706964098436316648783360150381776072068546890320208831688312328506211276157552402221252367398896840951242226196414769324430179651966572793720390032641777393452666695554328583003638841891132533695141271946092177619304484287291865546699307518687724282963411240426517734766101547890794087692552953692458918072342083337766965746923304675642827341048469090264570813278669742342216290419370277611880813790885844455131479564316777611069952889795188035972869899000354479500214634846044138571416360997069395489798315224101440713019653721249526319625599711854134476455410239384169312507180465901938731090836161874365351672988209336399150491274631162657710897306879662984349704222717994817616914768129392487002239339151322733267129870371483842675781437984518945984310344990962617350659702008652088242237922878578977805873941796249952664451009264580071434823796001397727614747771030745447999248286202966937948732908650200749326564947930474291963129691919987238661100013810980371568984734263321796969963934801742209178125591648526675514140627230790805440636223183316240780431849018446794299473045428770997469671584650067649728284829433391877580696040142056493076737454622066211116124697350607382010362528575374308034589033560873409850772656568338223578545494683704693438261012492392678173662990075830005970871314534715961524031871076053993720213474894026890716466337355113125907143127445873145239114252504102187854850792474394394833083379029411669445960286940926691823698191062522188780554279093945801749003161864459446222750141683053568596830800728054412606405572210612921106222793824608247333815336777364205080332075460557622297528501116511445409619855883921995230643781394463208323505660732863307755633879043052994035862494997189464330162164821959159865060576577192948066086923479479303442427981558940244040978468198221831426424713759484940944717591221924804926752382284497208715613120642511231233069237848443281170742911214966661599631189729509633593794295049649339380043732807639323515130602357408561974756606734949123711204286608425238508712222119247554995203763393470896975639742586430458637465280902720336853722949299028849637616036018426116352911079341148504175098469605875505764927620855535380351817906472471086618712672852762940868783315488348322494215620722362640530431162996300143377396610319028873454802222919142643917582717759635883745089122616802959432316405303568709978367358442142767627844188004266543458138602275835300431656579411070451406118540292989707960626649207449124293830123423740796637096966124049834588214625571245172418180134439259050371006417856651060924571830658095348431200004445119079362720518106064018192720635736669242573900290299151157341002407202609930430474206703185256480108351883453191205894075207462510711404870013592023824815861407613676908466319770198059960339360434846398347909858774216974461996716419620395838630891713447900540588713473361279524985002834104258675316986103048343137345809225423202710432320353072098288760210785919762162150258308347863731647104140753092250443171544427200249982892340486686842851082654050437243070267624861605489566829880260461202912419502424211329962333334972453772038022728586105753602240021157630369252330928421260204155968362925650598577357796324914807029967748388273089167707538695789510610900607871252442144279284417823692417354984128967405708575534649575011154925563635314406765280265108288435395799374501114379999424546734051596884991246996357623810735496802737627820410461674399424504837030695934940001538083538274542908115921293732877678946962561333894383634520488514113828327276685365011083603993961143669764041483412901731265215425632130978275530570383621108449060996986630131027510064858312510098404211360985093011109443704228393089128684094381433563184886879357046414907098027623479361765230845937399678528109599739313977431774620580176158323164722819335157035105744789431634062791747975189763740639310441706457241981641879755423159266378245943137442246586962767834627171400614798928521102720618086575065024288731444207380137417887589656294810074785503496797484502718497862978969190704823517868182085502725914332976109631043806665437503343227746342979024254302760478712484164151638694330345083144237610683379030966916278189201723780941751743188086002136227444817715389678556539190869775967873628512683628117164749325268194298439729775683093932232371846437928961559868152078675902412013974458633104965300930247970205034324154909582659657300067237476010228920241985828139044471395950657721277743165123142196436060304541031742040623012596393800356199149687897267152488040115928779221886809821868458709482884677667181700674901126037881980370310047720909032210024749475693495808169894020174328200767643435265465379037686636060333149831462127278045083300000577161953188506663351459568110054411325463488301135734363761531509599975262953344588843150275328363064505606159800873526959165530778017692693043747207543716837764144828152608359728560462641815813544897192728259732084507236862207886262484658425987981475733049615098543902045519045402484151730469872263011277280159623265700522414222279642156585491402859620034785210669116922023411900425213745337473894475119269837202243041394642790741431491585130247476712365477614929035115692773238322226225543610879946793952959081533602709722727672657316438003554492309222557343234749451094562124045510966611551936136504293647247884449982567128307503012929327655248602170175495693115019203428431495243207912918192401030179607432659236742410393585216020651375167174412645584579366957219356047194407939464444075643908312119534369238782427902596850422750902748732671657163674778788819053928944953419722435194891767578389881469027495550572881761398097536677615987245411110874659470807914522509847707659157491769346246343740774338649284566584219141930488647977736636781221537847005641307964411793397168010483031713992371043550145711666020563107893450588338258241366300273446425319449040679962104405486062684721016044030452595821543021058936655853528489770101200268292508013250157012361925574783957753153855609934590232686655589910536892425146918349595063617101427379672071779443301780106291412520364981620102785645835015533087897290490350275777153426892192273267361646009931294317650491230999921578357377484900038181094885121349359796218587293637730783048353689144438271223937458289318390985648164783321201751086828983579982912516827563300323890111711958277808745964649513199820236291561333270094156728492702108702259680207330734537700521292715786449774756648103744521059873169017763188949491755031174315764059586441926706295682085445091143568417283847587937930550852013867203177241894343830274432740711189577999560191184623895814258535811381634862606034073526554037525417733436422425914012668972219781585953720011976715156886621273233781048560889078110869852114775306527279984263417131233932554732502219153336837323754833580062652084778939839821742423344191551288063599621128415575061128627233801819804969208659431761164773082207736140787062513577396277530341329666941357582267055637302762282564464149611253694683980183653290457549304525995775248843495451537116804646273429743292279234319457838240488919572196389505664699834417732991534532527972120507738471230547155345721858313938633712683698573583702403558241179173013760194150522815703970783412126748883931660440568882014812902480004138846168991328199495826788134906668063794543709310014356123436737992993316567342593208988400059713331125137302017847850878876096567849689892199454899817221130973241265003487133384747423694027088215852859132078450869412550389566201489012126833479846775558291871251732963829676738208690221916696125064372517328323856987140171736972630098391850343027172734489790059186125760046186093070730646431658687915346970834692281710671811308542784263965122149715850362680738361734587463731601610304880946982355102798972690857301148576473185981675512905292657108224639179255726844206243624867977207008911930780653894751665361032511589130303168755090432710200624340352741631011053550563979956087624602128724381337499665120897446561612055857225674541179976029114658561242439865484818089033090237757162645578090502705623775263905508473808226946084832327481295640210320127302830181703699540909339492413341893516011682236778549840561374790290257088414747384977845015115500306299151509039544137358278235623050996826254745008230301865257114548888261079893052763357319912992259557272480740415036358545825907865498986060721371459823302636649017677574693375511317563136462443732985346511149704059914803898188267844386407280140236215405174879706541204738968943660707731664996212570839472301684061520457101390403541505259547999378456307227946844809618053090250408905277254901067233011297044667389651891064644923900412111168209454367626241212989857327577992836691582218013292771902701500081906190256244979009603843676781590872775606291866941961092866862988736524427376179212840936623313742562584657853285423138578995655364915809049155502139411265574097542998121014434362117890377241199709970215664681555642545266347959537475331235509025260811227871270961963497910454596605449397159175416869808710620552062164716173471155335168171250632447626260498838220578354574772658410914595612565622180764572067330572080372194507841592404711335767017320514925382652004834302433168912633707499907480416966982472788289303308659434898226937031631366609214806358504171980757017744325684157692120684145335313035730861993278147035941835418607662161635004042807251433347458359364400831686029895077927563773820780320466380147698805768693864334926840553872046494196745946947509256411333579380163252818589215950059300135487948719095005350333891854703367459644428741312667063058637614325011425535343378502462132821677803067463167961926669325116423918951873872162494521465976386829920571778293668013499018371047222696975890270823210488366873738450745208911072632999994229379460262849246698886168868072630540142785526506723910038091376989859497651284699774023440192704248211051514061341080078956644546949679673960150915310743074666289725537703471529459135158681546035553120083864615932749308872398735171163270256475919628944616914118706844779286341668383920997045312631763146273467049754416367604363265183120896328034059437117348716501149668951595906544986199611330883610249822775863345814077839763840597483698965736520088103236849538171456762269668963250484057499831430899423463232674757063314080490516257123725539308545755642550584314664171626869711842315534466534794093633069950743804356894569014126375889475885728842016116952528011340828361622653525511897175420743899652612900452799561636236136496864953940191211698961199994819179288021573033440083071814023878836448222054573861516952997318763548024374038753113528967254494001174449500311343035601608326299683694961509323476672643605470824036899612926787847879176433903795649635691239552946333897562294962191272036483644486257265396862155226044187367203833692959286881657852514607319079435756936595526664399037022894856815192594087774524163686062294173777650852492038263063983782663488559200682147565594143147174835069804801558256370469883268369931044853779174481623766841936754201053424465443663215093462301755837831619310289742002502307679277182353475919269788231366561884852876024217165945428034149769493959755298418670017721382786670004688561652395292948034105848429294135504972151009395026172442056820403833350387261892263058514762528555466826466115914841057382581121681995705617407898921699285750330545877260911976202521633594539811385976654339141109496654258103171765640600793730676100317924170777061588643348226395999330134406119947136186918414752456860865427794710822047362018864964447681511997096087002193478975861395750805668297663967549040202447751089504679185797330339510235822619591484671069147009676790905995007861248293995715220852019846371322607011358480588713961083070169915552341376851482913269117805332276905732497099273877651957482144220912587133892072406347346594984101966122218211168565286350479639122860052851117061109784142777921063823559071293115813794117981269102613104495138297107903307252156561052756166020825082845409170096653361972006746722689947449959081660854732139217684671004812592643155043233248113505651904755097642078557378070544929708178968087144799310866189406928342071684319185314236603487758101816616651431201179733787165575279697967755075406627675429843465274595570956554120498164366268093221886432662870515081990000987823310033476122047740238403908375817522363622428276631275083639824302645177849401922865412440591656105975441286902409739091813884310790140777646175354438483089805533599410427331548642482233559201163324654738892314449733238495764145589303970096133684048796720406736442923297644809149899009179040841565523955567800162290585255256320585384779533878251107473265369399543276998476754415943876602441225548158593261897362493436169634500044921165572753570626184382253217547178629135226323297897789245884139999436844451574147789031364346449900056425242970693002901652550403645865150382787970894216609247341159313221762797535314078796207991220646779734790921545588581171245247675502007651708350933669830765698480116513761871452067689046637482928130531123265682924805717435371972325040994602962299088216672357141815837293559186472896798807038366731606806550828278105383029116964459284189111449833189296687244666764649246696893614625991103306141029915640775381631738962146562555116265074671537852335722277014816958551067543640107252637775469936725135978242891595768377797115715299138602723534472808805043316602144550188967752907927166186659909278779379079172273440524642011425917934969148599295775298196597277079949487887506761873071817840835742058714989754672345250875382716930625259048063165085738210789005651841578173331487770707800932547597610693051073405805217619758437324188717677255329748526342080236512830709503244230393295572673364477086649546068727773021566822516562622687625338575532699588715951985375111495178772685857926246580363189758629560707060977921426149619981424462739636260822205093122838283084555045150825193497641598636735759928823845273548378122870201219413708913540267529578191185039702362351264127751589985162253820304546582428197824976508159003860558684412483696628563177521691291737926113992504763646007413410711699245194436432805708583583745775413205061696862883297561293268074268692033743302193563294948061335883471312984258857404617680955664746255264448753576796808345114447270044202125462131412137791997061750939635089076907719206050346595826532516403128348358701263576869207901558838412895867456607795890653774436142664331484455266895872865982237431847598134586465842288912177098474317793053610964246929374346576886666846268868052695382519195895121140280497296621881818449995833872361637417583190683887469875083317009720533606885698046995913327097427380205364008983499991459295734293727765641012675235256716962076327757742195489214117034496868932769078218568252314113817027858553303659947479088069895472215954952867197560655482499161754553087664644883598861345559670924857138627513814418599294814788112434032100860691029398434881385730828444721591052486913004323105631553373479862839104932545819795009460870600871828083140392788414497479617172683413207299625591132260710237622374206592092591914433220690128891429665622728515054183306693099558799436709197101811430224593993790502596410561710804879868157275888081777061722607403029942030177918063456984208878878044435191523170303266089213205800684038484282225641716152734142952284561967039235098418242844284322455817217617805856032971542167593473360747043966283820632478396718995142777473754158744583997506143061545105032917294574027072468043847128362675375906925961797794271012092002263187813300623302520098993159559575279655535791370765097916154410759266751302701878732510959194784734006697332494278874158805455021497386090865691794987838058537495267369574533434861251419137020852730271058556052326359467693563918375315916329465455637924176940165073722795721504637278152056479358640023507227027703600285214037615356460684981194192057129366481844380856356221091287910717520388728106809784922224530148027273231653007984920812206483240534029497505606010652454106723715741597768405909498177879460978007686038808328168791360656659694004246661851596693865171792298989007577921146688408842497157760687094055682690137687887776282308443750183975200683558592248044262924723462642669315581661178150617908850148042384537583714177270686207405667189930569747996882159704953027589586954396197763476629796526443575868747336365893794080085711949915623059812243163750237692728823851919374487130464278975759249874543653936595622142659260812457279797668614675838433491406072122548826850103843178398666117393041550483648809643378366192130468395741031271423209427938770683957477538935994666767721790564830303762311165248873790225774718767158464338543244272356127210807968356763886703568788533659489177196955417786047247761631676444568745917683278233506140113946251780164078355325383906245636003949710517459121696428611862336450573785657106234553857172367954108914910297435180090126948901221841516273688425056248838557041287270025808158719994958914073661469726866450261049612677861285406486641321013043182582929865241081655337258075340144534352634042574815854113103103091338621301673414060659493685957281086940214629902252840629806708107190938930099450011867869390527466644190996044384707373187788358442866547492072299859280354370508154167081852507372618621046715100921808811489866324443496306337306354081788779722611805104749331671111630480568143921178612969790911092857226243929991554507477358326840251194307472341370951808264318726948052635216972405332907505532337820815013705513226045942240946100168616198332495039340620628120964052261432733833027934438621606422007481191892782969400055619065351392764200798620000505699610417079452572387772870763253387372369910135362155567744358865878170680406238799853183130222098504334718728327372037673298149576533363195917893735691127828316297184480063906588928652715333494790799431280361256998969297022325370788734007155607947032194530640537117300698354957323631224376653688782929379996663596711011470539569957311681535187419931500582520519332995394782896652742966360288565199818369695696203984513217814916107189227012520599282411196287141732853991013001205438872589841354251120672100530697012857580758674366324304577250831375310387432220155230729272315363100168971329881219611284244619856743536338191877503452092112358396621048171823979412477449970558775447082306240903700723638766615593814979308440092964323400515671908059291962553516228993190137297325283069851756279012981860865619090578533773556734617732188324986041366335912324360474914089267413519708085438357764997983424094085102336431481956568540302381772348769484651134306994390751172788374683782560862876955143994087299034300933937449156513155292660665702927800730016488424856415218464775914556210885515265554349304550927728378209073171345062543996459296397512562836228569647930299519604340697428406599213195596443274501012428624990730227102605048679212482324941463125207518517501834114241070274731042793414980830247958601616057312041487174224991059393569826201245753334041839738699514993930555227239267107048532504367374735888268878189041051060988790426303601237225318424995077042552428450437388294233081338821015712016832975402634665357549590784517178016284052250044529929626792002573691896458170803205649913062840487100994203801260265152713162415716756108798597503023798048399582525309381532480767517543731676483359729765084599871197444665627746341388749508821736556090480770597192321790626634775196735216549490008041803819245530998142344774201296256157397406793945533663819623743121298626362207554937515612013189494562212216868035356130841703650190143063859860049439825862161685368689378149728901351890106428706747759109986964787478427012891284467481951249561030715037886056033316680201184116970037057640749732188617824506208972630381863755254966202446069792065946501269188457023059424365671312559590333953117811479470999724876453509586853139167444573333606679368267595689075570841053301646234058181573029412751183607564105799333917756411537257065473067259834901898548387942673286891658277879419211069850481405551641222931276549121783735492633052550201003338788162060207289584396526042858701595713043900152230500010664391487240101000539168956497164132802642094320747267376764986802328304218175838678093785958622437505533057798737557398126605496993263908591949681217341228900768181624389234593303436477981969659105514946498568653595899739357898659637183832983399825965420957564142840182771511094835520731352612807048189263175799649781198352067775585050927136268236868801547523331498740957953942786919063389153138244286941582523617810578410373141442767801209865625202631736478499603480288830192929542773369539649373233430642910848766347526295280577459356271628974763335529380729280355147902559019155270486613200916933422756717977621151732370294096765599815388274393397419928234455844814130781883762268938615025382755434012451313328603936159070381071041893816359018427195307255670157308514403455562953895687059248296776036022840473841291065382537012963768040757119288831650521518502950957027580060646170615427859693884932052251642429141254834523744618593899335852037022273382505810848783317199027531673834771587615429165223340200922292215316293189917472035382325555160774907583725793398698990967173050292075580988342980828588488925640886071981250795068693719798549032101196980769330902230430962772549717317562894589267088786262101213042477426121284545114213398473103152365204536431159275182267274965002762003960673395181612330076738697914416920000675345230504057381414202736613366416399963692462778238551621959145984558299912232503290372749790673880993799043655123430215992665035661592191627981404317827191732244624136018524112685186993132751815087497720415640141255712702408974717563809646633682097393507821539136458100534943842204304723996445230937341285595291206872710589031702564443907797472419846830039753656751750322845041326485556843576992511052250030894144472799493350341566919343438923002619558705322790894618029343216955272953473272628585560446224803956273874876780708204169285393619574527952478188563890420009835832301026841581855110322400522757749022375486197240398749959406018381984531160178965239676016341317350924243638001711017127271124860268757189415769369761239177152772940210282075994962347368277802035931122133206912193965192068173118152315650355689944579146398298189134176048332157202783553765191653011938388365525111604386501845423124444878076100624405920359144349987476778738995746529432056769186803151324726558162301231198689533579536660936872924845346542273489326790112940379771368132858701578251601827885989341930082082519871332710458418094038407314065837555242776711435569990787880747719026488751866559731281429343117576032132146683480988334028385424437661932416121886502445840121392153194145957077494468941623749919909773083997164812389568138429600935921927721227343791183086670537862647756471484469773638957520484373606284772360745256134586898857684041638250434700456960863123859655348769813570264587245310004371999892635890790592690111236444626226373467620492881994999078097910273628332525003512832364863946264546715951644627857672421242064120102501083410723734553868521528475875877118799068896088571329265413245252503286386754081680062791722480000309090187024356167474967681403264788358171477084521799379349066284759138712145288801541250040135396892760421201105650381613297155940250013458471645770224518530912700148338100885935877795358058107665487876457319099139734009355522334512919477903677885022421586917612378971405165224084443193344046495449167675476512645280883671796032194952814030664649921244181654380853662744848748780609316833506361062751285500535900968216427640518761893353820858709502099617504539337143150346387460716403452176795487275257820352293186750181479835702925588375566301741814086081381532166282283094855105522750684654773580760322386530990305865537000202150791397720314964497967605626164894729222446308149624853461680346446142249255740604986008865719159352365289246642832824328677146723891811633371020668789546301963861912541460837128169064323299693590538921149794472016016955189933242974594288991773746138008657180114118905628621945250858512198192827426194056298739003704960768649746220773914566527828743076827218045999893400963437751335777183711847722766649343308535286808188099345446822788114460041153231092323778550351222487000554203908342429816222383737882498655975180465970499915395105189103420342915519187197387066935525925761552894648510727911046919859591243527284522804192850397463527681473924866320947566384631656122795400082042041245628382772205315433931772382830519211632056164303549646259336881700473902260876756923754501662005247586196598860585772185053038381261382514519567184149228848104622754733738574933457376622270395628765889988362502695265712876171417633470675865176606291094567312883334265904886642393476658002148635048082847391197923427306399142844165577338504192629297705707345106285868088364082603563268068048344947380322128585859189535350597530517651277641613168637773894822602086903480912790210262368546845166308702449370176885387605093782807186893900843718855875524911469831283769454919133076748561962488795223487281745856067962886308320463800710943525314230956896022001499957003830120811040773360379503097167136839548984822117978450447884980808949134041934066493483578650473858226759064690968859488691946909689269453629882667450775108429136007166388982169180010757810815837755152179048696127274249029501841685792569329810364496025334173001217463388238972843248576481051405063239320125505834416780164808400751992250375587313953361608827759118902755448761965005577033073110040271227723884528305756455134638042372161718218437726173996073899217297207777060727083845371772562284403308161071963859363814223720612994995648553538747887397085820262385892172493915395125946972349136172214972848019831032566266829862615366623215053267060690383864989198514095081522987494890891357079075248678446499619602853887767185880500967934666774345266433318354623120508884268157781010653639552413229027884201366206217746853678907072103607569713132541933903316539699748301222160884607079920866395826627884289025113389973671648021523287195627808684367359069564526255579762209314086305608879811039391045969460111399800063884264090506569028044120970885602786589582570556239022877134237810718444484887744615943884308881819454145738802729460878152951497726544046961501695169861701294285057112717327709057117650398829685058017696065776379017490331982698097428213091888644054811918023855169502857603589842100360705090453922264860080014997123239209718372745632669572332561897697092834123723631057628147839565023436130102257320548243884223391982563002494280169543953779428378906827893554637819827426694481586992281879119309848636356566772060347056753947149568382089470911114575171007715158778211415820939504581833296038205431152579094659758250429802456850460513965618979178353544116376621336582947438346360970826003437483980866230032491390244582343260099141070289931628008136166364501767768139078488818639787922686098634145388972555696371304541390235368911176159245159400692143081557127249608904753415452260468783119961063258915203564593279376415679359177604668581984845337381030482226613257919202490072379553591161335144323479422364445777904954400324682911364410148685715263232864980290147953408591204697050273578238612214541916026175377200674677087285650151523085637119292217348414465993854318393698339864953252921622801995969092998839158357191722627364007525223055628037939880606835074755773125926591636160131846737841981469470884313539779231093194443617649854570217319467836317607963411795676563035268908843672772315149752275564836544099247108101116860588985936751455769942745752343924172312624746230650242722279622665019605475832889122386870319366837899784199804555245654556400418033357941826128916346793063734916350282109515706182645243068275759905768243928055821597362584836443462469518885434052471344092345333330834934744535951227382236179262214150314476367231794788609707910649426497682456042741178088369026553381211636527142663968978593060423168130430167266067832134195680860038356709199685869428195293398010406663382950105595406967830157330026900416460026366192945553593061619482485016751667986253760609957982106200997140906454674430948339865341190691646735472230615181448562189282001967282594874065435868369015720689813346734794366996893773802873418678681402664399603665916889685092849178342523977379672145072556478818241766434000278584509209105808766518700224038790622608354668109084298492032708213883184911776960492848179073756067950460804371615775939551861547938240003614533513039738500202305772905292773423390750276741503801957242133999192765658500345038275505394254502374074479908469765825305338163135040614253640189088418644392252573277347569601250007550938480906745579246534554282187696920818250771109836828706995615667651781999141940872274880385852386336276951825329438255056966365629726160251038789321589440189034080638725993429795877050241474555176206196585308551993378193317302709200720271466229200297858883369448015778314889500310003306689700071262640860168201352569572074610371611133936808243854586195349703352722448928399382535207695868146495909125205302490886763917993152770101636032076685752856019437210055249987598626388176714913326643667351985580998084906983073669287723359280682383576360303433424728416798095381346925245326782902933625190741596017092737348958783847012667306917231629973041724200116220183586518979926904602943637836734119513323350473840942098020898393561768772824778462717658901341670463055096384795476174767134421664470547613051981438736143397117512346227065762656460426166470582729364927394855048246623795225394643963154553176036601801709149766166707719885111663605888800013581037256786820528912018890150893914896120247682916777664844907284329002309354974837809130825580997640950718262577804913827108665058943051464982001006523630263839776790711019613942722062552310971591274217889743187104616316152870717714028073723361453993682048595024704680075713334405070174515230707776835897776406090553014879866779603609776282423458541302673116217495495141364364446768415020779147316208311670155072401868784413955867588575773244879558624632208669283962586655002375911098007584894108496816683153663530749726080638038525798770665992264079499572168796313396233302319002212646337556494162471216968715912856454031529628630661929635890690190010236726511952468536649842627785051785301250887183471927426179322095498797838321445890026951776255455640942925720703982984261407820785990122216705742542603516424623730317740301168350590629403815799701458527543365008725033054242328372084185107385467143871327397709171133784306195937637116360172823629223705454693399644616887407537318612173310930037563241459734293146086122420762130074965950354705942547688784598017644827451157006941484739846025369948620796012460512249534915567671848269317952385136404096477624143792245224664758430729247753966511341928462405375778443404727117895490556138075469398193148161870167739058547410892939195995191470631115206035165146495250401064518440788789308347785476757569621570738488340837540094127660598291838991312445095405181257846870108823359987747534242531446071670593877287627091589192709002630666481322214246609732287890374223250010030416499409146791252115061264223002131009615371306047281186697877025798117971206436235959808610612475218186803314162716635141692928387709659767779608711190316571097440716812702482831408638924671606222163212320652608900781449675728124259449609239833213456869171372334844748505381145820960338083500789666298665849254201468161179644900294464010644881218136116447242169234636365649931578100367231002107137362599112049709342479241062585058276706638898910779261385805069506437824261187758296253263881579255599028688208161166603734514176078135390105610098469902929957196197113275886418706768004569372147435136860978906966755101268696440757323439599720713899258876752428125321378957461576087676781092217830621723694992968717346697406592105703391970808004250736285573969324796326505067535949278697689233616634600236516220257190005640270378837695216654630691024699404578520540140726057428109759292481437551710514137413342522667855236600638299993647341294140350145269500101478785172118512846552336568944129581935958453094972136767697398885858373461033995363497827906201430646972851334701838682818349670808247435061259866640437550243878030952805584227803048485133060049905411285704962346668768166420234877740861430248629448872264199185952698798140813919234563674553865784048560383212348685542460260728527629069598434578162040886916910339162931919133745402747458478500580451543709474501648518611320932304062889327803035045469429761664992904262059364342773251115372867764771654564681001181759751934896296195326226072277979823014210725989641800343992352502846977082946072238860536165090443013987331450733379535368265032897780004246144218674877417980131948065462332667705115613675872845333825659885385939138691429336133286461674181205029029069743560014426003601939270830669805058622213816893201127498104270875452431111884470024425685219924940670996628290598829493527017640757397775358942838746024193430070507266954053060864660869952743950164373207946144346518637336061992287241197836696510212410700361950422547451033477765542630390360119381997767349626323807456781140088976629893842750320578601490301024533542881952058615666928561924677381123933177845167333021343117120483205932331382403812335645790427462855163751676885227269495940619079419378001562902166043993257936371534773127443650658136168055799526871311688640665545857882942564056191752948898637444679504556278027970970651786331697779188863029787454683844289177328415277278322072945532442464725771013741016736248826623376208282483719708055722736230781072765308838655230059318800697083862989904595641156910321617048007251685756066466201340188596668548408603844814852923826962768560819981320893596182662122997682726775224227091139415893254819483583153757757338393163413940203918454003898580786252392256216090107713944704877204638718372639783222244154572459065034046367055819455733999603444439253104187973231482957092572308062448794227218549618920795058146029000622716996068075175460440040452026361227424023347237691245324776588642024567945621840351738275048785034570630029534932893539730507744673484629235655734877477872330150471723586420293553590037592619155930265401898837786512277252590182623846644114953272158069495456242650182709620442457362897045524359646963165988760856090581187879596712759821542461053790508711830702918778703952017957937391567831476924258213519995539366178141481437377281449565819201419669965161543032826336798742437363036731630558606938255660309963508378852206966504747003307975477885485957246610969281808554152185908593943865089091334168323446482700155974155799644204663401127243065311496463722961299046169737893368308457253784210402372151077148916134912512528180530894905523876125145479961847545709078458339869879038146715302678887624711146967047311265382501761442793803645858138842885451393245670127480447416395991259294844541429816210291739220914520492449856795544892850438195485898380283195351426881360679609576182754374621015527204729437521181360871191953534146920729810646215844420401317339680366209756269976819307168327839385637888124942136226174610741369074548708299602369849465130374691873591714865302668399147693361602473887054790265035162180662458184837735392835032189303598029175797560893679832762604921594623662978290000051475744296223727574928567016108380911778825677595173907201662367955187806767657989654426365463775676638085631480171686708898669365322060853921845387486155004297832661572973313302733811177905682046200796444705410092445680866911510488124552197633508136548039891290999025828859512349918907868956750556017288329690275567615560083080779656873704385250885241210961023326327480840199221737213314356756368031961028857797363607131080554522615474305319882357716308040716199545317589497367967893887900681392698372523313423594510318901172191466400290322544645113613959496511556622995764186498948576347864340290647216134647523161422943000611119168111079810616263178654967040790514956706295022557910191288345391007865715880886204312013709878884694415225973572866988326728536739519232699294283531449814954943184513735780942238509019576130697170671307358109852764441939416572433064273926687632405217241698313295585017437380416392598267869173297552348585845001569914940045201857470914991852909741569020830245217039302753424112003763686017391776221780689427169687180303964090958850180069546551541180802601297924614884352375839474829688296237658749130852140114910126050855110842201908307640123714645554102276156675061788676437312730652481840241279310878592468791598495727971666561005934100667962481394618154476858065813087046123326577426705276749393788389165538321781745030249322669852620339216927707706838543054083411726818701027225058198262938606627755693812506206000974938570451118029613321678950516193688912665645974647064974488624508566191004924020868124004890937706216352096823055879423617046834149745794655505366874848358631147741471814671432515855593088748159982985950014873027634126979310962104003924909981588325489318318948588140314994045148247230321457666185344749924895953708115145647923131183928140737520346368287411951974203294234192658824281161750378587298730996981637961006239564924189073737231750067171412596519581850992097643610244867814716924105212122814520230616165884917551425812111604111549561097887075194073102747520008688333029914035205508121686179881584068755009635802336412614374240192787145720935044954275946150738324380683737866211366321336810705207655756519930570669222041645134844579091967262469716044048218685278530901044800689570916496807364592105372123389794368964217798197323315632942080640881635704564120062868613378186343439097833522736848688993802594547938764523563375697637543030522792190755450221006690407189135763030973918937715558986462694892131585455246836410183526843020885410523465662297718679977794777816307755185323777183114628032375447113557223473268756451482730097398627107247705809634986521536756722598276887520106320844748910085170128005962616123319090377602294362249486062095274756415900492957554740520697468320423877443627905068892512181165768177467430011561046944755402650192860172438113630143073973662254147666935627097425431160512350880249295038631060051510618168471864432382819404328538683143509270377587323449719996895221077787371251216813436358530833416120581068338125046402096971452148045832980082767824994311083403023854433643894528079157617645957190594432046125266597852177849488819744833154917775623134731283039690585504089407377121358323654118872828206467685656118751360618656694398043726238412774782456017875609350983811661063393312395815081233030001030408201156926845507834165576609599668059144541827960849473404186715339800373087915424248753287172270858641248147289451810141632287146162697204473369581829722251148916751433949539256668461194052085659261779312524973316971403855693908507445455801056225203425307147627602756296345978481802971538003695003945452391268684535236156714105104506420591708194379475919518893706236298476099705300273822530035257742502230764808642445467811750257395467640038961351187284317588661253852790855253562977038281841126900777625340615780888459157425096576799218635883819590486013798492829829101929084567905009891688277451241336549583711723657911983115877521546596857633979459585842604613140365988442131739369626989026795025454803713446831848856342620939073197176373812093811734401298477567666880204888242062581652924116329418160410879380543416955958222520507735041374156381743693152337393271875582488625912624221921484765290914372423197751431351836702958990895161102422743013520574766447854527426808598441618047754885584109219551643538750995032607634338567452284430414958187577408056480641383815902547195025755640983852367874641925959164764769023082627286651979736824859101165156537802986056574697314896791102487398522169057637143127014685608270515185023660848354150760217659074729806157678208867069128776138226508521759944864871699630567058516902938212771729634320777669545900294746563016382570366479417518286316635049906791772390245134080121798819999548020056052470773308171191755550181422674641302188526631501178816074627496389768999591391096619653239565503825746218516280477985317484385912875713248304433948757234390500191669710744045319767857001121823239804564886669397045769577275325466239499602423355640426639281443861396477745464047310615479617907010721121998373298069015374061555214388329857338802897454342726857575902453377498317642164925212307668776113704704656491193267803374044832073422226276280191189012350811731053340853654219830426947284175236108018541644816978423528357764742138700908133436852197241403292916047382658691776082538012176251881143910055529759134331776782236246457174902551417621635614484021239416156195932129370592657863809015255864986222349764706379914441263198500719529543164373880144672392541780656196249847198950276940353187353561506884681367912707785486632578606159126338815997509226416005573549852427436762195434007085716144047664663775815693574423211969072454037604278969154037422244695902861543899526221550616619940825897116463171081461084757840732282028701268837331243367999122176704007398527900080864906986380405464992867230310582951053733111366463583797138173060407193729007742813963339924567559933320214006152585573371761069313811077605087060245642735522252508945512847059167071115344325865874204462717859259771615653572185996234552063792440744552338934705415631725608108015065644902485901576162431780982993788879224567844012124067448543820600761206066237824758073650880651315917150342139788962329166647256643798524928978639551178440868897413273933871560214226217233150603489334797600344539996407910345615516810425585952312169651593937059047945266861092803528641896598310238716460931131871496564761184581544712629033748916586339948665490475864596672237319016327571961971841229007839840785914967525027686671328560371038771595407173786747605988680546729369378516504196917833971114391105952492356039111086309768372848138522753745127449737780365387325029308649164559329213418222656669598141440068842084002764026418484701567782332709472971087499693816568818122720254960467768980961361946908220713504621977350011413065635892750571110667556722834825638651640635599749120503333425298597969082418968781887395844875199882815518610664677597463572734298247948027326600458372079045485575975713130440955233245004507319884224075617568222592710106198613839777322831364500676733871058961347400085778717378241294421551462337935553477115127116941824996088878473165731788013780575177808268082188650468466461840217985627620792841492774423102341891616667886887805513179664749033437790876489936040069000108271993922747937752483919310626915600736203807249051054962878205880687249180049322561743737142192645079039563972177533995594688258201381885073956458019183167677108007359229526761597318015954536179963228234657943554057858211024941672949530238325896524332066733158395859006775879863741362391120346581430190112278826146284756693067345767738782787573721943624842027799363201603464388124648099905672865202162492643412506549013697765904631660995526231477183894760402814291863667067239106365541330042356045478187922167064264287958453480264884820169597084440331856030382248156131529400590589583221164298141850257717428842087293956818187877689769355597283622044277203886851916615386850462147443682077024731837580342962849486968722304239129645167878770973891149729357867314046051767957007766834118967070575858979822315031818002712476318850280663697365116453466786017340519415378065008463480773542675611427691438759409278307189197974740090141519970365220410614809434383522959584807017453948802579468833745769945065647215087300340586836840652366128544767567478184831391852940064941415471459435016372313536078475589594974689022738741670469376407029028085422006943204962483580009119646044960449422266237707752829388792455795528585984601465146031294024182496023510130700213596753847436929335748412637315047217224967000872600991258601002554283393628900166399688886886458995987078749646875371560157282505868939854877665164279480567834064050098081295578512627494550952858345188987126621841823606909730573294353030709460605335227560809956153962333432070069994945431345636010775250943650718194352336179034736741349383388016175664382189110822172550985978228953841754980769572450465740848926206347637235624235768206466001999984133182749088120850133060578906284173688699977884370086925973462032056009130527738927914107269351933153490203848567369515524749419868013854153434410043919094641490086044867883032799867132120694549028585235791151869590614651647785262037074785948543863542326237911347004273042826929158960323996641732053424218227549223505583952647823966177579005368939930739415356309498671075322986424212378675269720205741758867137074538279162341680802841257148803678206229384611160260795027722617833588625182661664761362716960852143697411719268531317797404029991079357321099443714413478302112646398618065279424250359414132554910512885522407300964627085621759485373227919074249519556170923855140403970831554080462653515471035846009708631555342800622644330049896524667268365217587973806617274307121616748489858128747172609281455099911353164912559826964437631632013003796178174590799224998736722268381564173176638376083545076688773535952328860177983329839550412299040870519346422015162714223745347530158008725220055828624276519776276356920981950651813871797974779099676186476841332096805726484329049927611079621962058448728513944351547245065264582381359063568436975809591993666272557154619120706455487623943685677834571888339848294996808507600420984782717151982127521287306412929497010634330575316378687826995352208425096446189068288181028800608825050012135307766817528396069160261588971784044957298800358324359492868372953523648850616858905781540118369697741066359038886961081427536121785206506485068255636873043420520495821944893168541924468098888814350223412988232686230737025935384464541725982200228436838903998591966332091510018478991873430791396570069417582936918084316231218277047768611043022888103719403469607687612205170067773349659082630307565204029899496882949600804312871036579705302795025657359923173280709774443989930724884702501046676286880691255172548951699853181977210255989219701060971131884389543954905375317005552504384710026542529592651576279132063108373215982653028475364219265398359230354273028019894060300908062323520285458611122140911597428084678615830004387569670787465411792982039911887893273331206015713824715214193974367761690523099614501539624950648464991054593168237908027812232770348251942860324549130713240524058506763150567413177563083498108343142135228815899161407120697405934628130831049164931901494559094811596355625366728715346644807070621730603977834443252767045181684816579669547946393411643384301026677791056045125946254980956255788964807330297472491215799083377276786325394736655280682415461644114596060255073276121256177402550627898757958367721377733233805185024079082550316327196233814358273020702858694185488187694576023633324533226420021604468436634952772191980484967324356028173592410149262802277306112499336852834256188080584705728066922495166900776429694170335832640918516691470566088070722261312677720793482350159942242252278540867693074784285961980873494224703356338501093839872570128131552606437702096277208736994287371565680718537200163710884627253186253311210706415107254740188725632935029556678714673432721487260026932016309858625017687240578157890391806493684792261501823849391505060824659774908121296649243746444923800445448002765598010253817461721179878918187210041013257454856685847895168798292736474327684559938316356105604099283670236014243016902352413472295729355451220750032708829830160843509474890725936404454264958311442253526849506790273453298786481049651288728055659484987486486539474873714384621388796472830645102588913609368940280888182745451974059377955357104646166974846619624880662625755174334253692114175532821086538372764132439413660798953522369247793389615200200769186328217255565620958838834450358476647523724606789487563556837856107728657763176258460388755952929136033045980840896040714605455908722601383142822476258797010585445472836880766806156472688789012316758985210036578567721625412180593142697304421265508132213107304074838611077307865128941035485427668265226958686238150968324276380861945392203662623088344770500465155900212978641623682698731721192427450032278429797171560431034292905487834681872098128740325273301509763672274494150376515049359971510783320934430145980589160538195412448297530897055667880329735403279853910148556770940917207768732059574178203802610694829813958864733595447323985745124932198046657383788980274964309351958029550985962377936034924257150189320142815968298515913311239282196261939262705950290317827200191819441881308327057727257121102447268133932520289172666622003159078608722083933353619280474985908671415647131168287289247463526944163222117798030125878500589589743685242343563005642542827347488477357355109049023460301985316296094038987583561406861017008205070779378929808129967432253617079584668041742826133737001389757530897576737591979574298140569537218731955265144553563409097323380192053135101283707088827662635380602444596596254698031287023673962313626148597815921868220174202991309398112488714252401610118118121715372146787634165332492177592792113515576489694227710696247046986213955054158531745122030778210727375098421010506825228074297777617302559743293464827473610394595748302381829761323982386807099899636518861381895861110920496735681864333946761133140905643300825530768203425430021718720933905901742468100768447859514392612225058949034853971983189100567553740157855898201090248895597316972723189915452065786540488212827553122859885829691855089163048707785557526225057257161316402239359330716701633178539424580807816138808679383881927221519858433968878724112686467172359056098161541797655088931883165675964821813109638655663255613107045200051501478380262569267848131195273276054283995401444326777462492899917238553029165253822613832266508083544538143484409799761372712859133851247942628832517260596366518387190937981317525181921243898840776407407687638459052747200019734176234518619709825508795293503603351335243364422874261579989486369015115059362839144719877666901149834270353363817955923033691090227918640294986632217360152081946736369832526154112372538495171053467857117968118486118190577267375023610133465966211213545964209301054320311024452499319545633239038315068503095286015590166094171731981371752071399830382137143173506772604908888689255733914749563520188620465207038158324821712117121500365054043155892594746643712116827192270172890804292182545898622138033273913075420889404246692521553594840488245379656483834038644559565775897107108637946794342458211944540058650820083100709221529184212962860922693779959216588212900955438211619437703486277486432940117718097364402765125843695248474790704492190389450415381180391033170964320620531220153660848537916755081877222385104120345703435292091017945195999130578833332703841388876949297031234460396708508105072606844988146083426265252176693635045686663958728099840977170794889327335955501489364039305651331463324506933395881428760300557768275404365973539468215334562506686030697655433135792828720494620958298569572617954102060156028608821843598009910914019816382912905229768509680313494676387362285620092785997512004215253457851528022526636540292540266556674511695838245999356362599024805997113157341324135599979696793923621422539372158420476414624548472734783160670838850877309999759094661581103347894204941375161556032965031978807550433952681322223716777296010754680889171520356289029196237275024397591465291174669698969522605205298536585017239628570918289885500798221150464364311889721553685533133708491006526714350111372618173305354061917452138339505643740022762939824285850882717706075254961569547156217387256340519507401316154335487707050402107519120835162347113916453781339880074993296110267905830685654946939860619813034825146383307534630073079535664105298723498738915485440186101334527166431012981128532625394671701983334307853770775734942996073139228711801701009424522789304675396428641640516038484706205686007643872718310431040283795010947294261206975587318345900321463256931403384571109138746844067472683408255271878846562298441652000047884055154115375790170410782776866213223045450346083957858866138637509498503808048327367306320290960839404776861038774401806057902563037309130447441681209583799988343067959354017715854434503183167378150840840258959833689443330441525631250820618190446174687313467521749975962496600050403996435493017318047426798430653288116063495769576164400730139980884604231760739382546011475691431900241362435967902622955200731731045221969220852468088348930783452738510014630506015682862472485604905988844654848670941633949294141380195511507377351653766787869618482329560760394758314022510458081794784943867638001873210087897504487356382127650394924153959404628031904193381255660420174978350652779711178182226943740497695679763285803092347259594563448209656612530772504479524648948994527295019615335439022612366312536567830237065563709611347417157711688873221910488567613913518695340122332883099292752692972346695291485528620570935484846665432742095849985758902838220555709144780975339898097729786240707021195586417777901539953071393267701793823764861283292378699189305020253529932174605818635039322203682286559349200305858080953922537802270626904611546097742629602844739388840220233991920442744798222909161860766474672747776252966520949481085396083001620137983793550268454987738684703886007181891547329065835792086284609970106160404798103606010262807589190894142786771964399977045306036274023798742961875626790465248293754290237403057193345978330536726526095107812936610410464140331534743968432516090030545069945298634783634452670223491834679308209334281093158353367645104572851008513186221280177082817169202479649172445369716281655397202627781334101721760445250363025875678473221896101140425349203850092721521570810306485110447625984253145851046367973259776759778908796529599536197429548067724869436471108065750816847192501362822923592299958523543498052596818732124986242069603310484797580406688552240407735045417595234512319130488423442359546563662654019178847370096181109163570173471480037604532184592090234357635201762228236901707797163005411818107351582259660281520779895927621355786048916611906365591980820709043778755198618417490250313757418755008597017260482658329539907937956284560741262115629010577629876392868354778272545795007375085252663287841124340611461164468797095945691679891374018749345987268988911267553129803477045596568070158671249664540108949070586249788320020403034617845215062043188792257722711699832830253644252130470875409790164825193487667663260716799445673808935036594818356915910750347321334403779797031852057220412962884871054511766461727777068318397815331310173753729935044141076579783282901997122091837178934773460938324330825073156700690737941878150740468814102167120757493888709667719593802229327722605744654302211871051466664022688631023437581350745628119309303748115159449567845279129554042175557221531953611374816241220768320440378757617898169421997318589733416655784000757986414255850611481628715312193447631086041798149787949256894078906685867152814801041233664657350874461968249424338177944822015057119359933928351636258898969052769898074919768682465300881650601589459693009973970860286956099638227917688002673726796127840187021800128341715857405523426832771763376869459015701233967487360193889834995270165491446989687915801653229353058875350182541349901182057606681748079993516608998272263167675336316699803037668753224634078486929142116909782274505525096206370412949736288646765083733207323699226410157867783104183525382743682338752271054930311926422578179289730591462506285196640101947837059540189500773997836767953154553642079854059080383409789462340895724906187418106165356010502921640968927882833180368398918040210851500663508080177098878543843795289025912545330658790298635033990834134979912569789030178989970539600223125486147767123523683526598305540575581798880478186159310548079048834766620033864827127141436510095346301522875549572830213118129272423289206820774137431427294509757251791527928198757625651519028808596615403590454641962573615391760282797291050539970747674894830376130211395558498519940626422156430066734520099924258994112319991721034018953156205071571050584988758649919659335345131058320398751831511084526412035788733665763770067744763063852610482732760345373495405996932077906806778033414653962089817380136785734942323542410469992835015878580619792244233235886956779545230779215715306820072947481211006670617953638854568871290545563054704391775993703198359818479874744175641335229672365634105748084768222150848494338417331088132709802902320638067025518586364538693777553725266281821355180438842257192047784707656182557403602731221392909375480519654008258809330955984340537939969843888430146537718389127419013536815431506688554342245726970126271982826525718901628032610905941892633504850274236105428321770868807477105075075728735827494724559415552946566662694516028363203797023391531553748588344071867167837343901602952823323133829418618957557086364427051290497507373552029601392726037860800518970450962266379747039541613724751408045691758522866552606863866822835471738632291514294241543806739031147360013519311834011932593605318332027968067044559995548551086303425828880749606812869188734811530821230664401641704351583738820291227623477113471102378658082783796987180357038475765714372986125642689825310991931809940997131464009713485584904346444653590295245144373839368194054233752766466950094782660573640518891621559258928941920394733576315176158966557945695515661025668553945315800673413736145466883936639811972590360222208941948504175371596572011415946714110940842929932290403837064094858677475555185333830502064537864467038569621036959506553891129530176520808816498540774794794772552706789265483348207204562201666374698453916648079858733007714794720204590189426115133899793461937654987892243206517623852795230863279733785718307758115185843430451499320476637516453952020096859807639440802734964503710058564367367821638965086196478500747340162435972065535518093373132600882221201000233307609758340539928955606706208616419668483088738142888070785129543754731453916425125742578797157900520071788913289639710572255581887631371017841893119086842310713004666541108657909663199241956136141678523505667763713390291201178641821374510636293514425891049501475893508294046807195572137117324222956221479104173837642970827988273741090155843778102332813262266944318764161007981493092790995053136306529988653004140308127080801163956239914872190474546991856816664548110162529727557010531290482453971252021877393665181788713284866213903566324955526665062946684571359556753173322007463690975714097031529813538239140307606624836762920939326162476416541973244762644236148093004405467477661964895211570826617312176501363634950053656464013652728841111674049336964124628798565518670590867249258034900540806558440456921830173704442387702336195649061967087889410152667757090681648861928281127206306820609830745468491144249425429908959059318538119006436131651359692484076938451254998743159947104887270075662376402092973929351698846724957290522125909141864108730125306326319250867488301187525341121865940199783119327518034335643497543109134764131266603431446893331886568967466091427440400299461649086525957913888813240790416632648045516269310520669692897746611606037027279191271793255170632621936903938653094088104340272934291358871185906189386234830806209459043556203406617301030355096118238405609643710605583084564002151803472006772405454012085277363123419689082427025222780479262680814722656885455393910611774291472024714295791497781316709874058884724880109460603872229277054585206694968583260082715092750069882528362147756778200014870398563062825824054105828501890058080684610690494853741185852704862821757709006407605818189121190107185965979277064414139444345903341945533233247003397439563015025344620392673593224876073408154709855274344657372669692372008396493130601814426112483910168965391384067132331964508221887987314825113226115170114016849038974071977823158240502360631356290569041244989698524251174353175444918919512201385872147431100277756983126074327831269538556828033762989227089740125376770336416371439664768655055954551139744033474451685256759579656556869918204956065693157516876336140411665122115480735273518781130457272160595940418815006937983579242988931485605087617902928994478787466071350045374202905459647488652867097120968732611419222120021191730291491501698902515715985348322396343562395174678451387995140924036068306937889482644715293992867317102912143810955263871613230231065294900658638903726573654902011253400012095542312473519928321506434345645754848365739143553545323888134628952012747351964528316233866199850862581866188288700389424718429559123441678597651863995990937064051479839372462731350474050378186344843348059532577484434648591945103783812361867177252254800286948224714042444063853612713050533970826106371573637251070395419315779116950175259773178051114855642903105927889708609483692568300424838408319890367455814269978718531075781667729010531899903539350752935116332742200200977001957980472157806413086490177717359284991002363550771938836640251112420727569175755380883576639373535688358543671257652118104400372158318746882497519749090814154544147185666132927891713798201457707414197309954569539192491574741411080102488951947754159579543817909602933594305459450388642610872159100086370688135819309039636103172734165296603675610896787357253565357137745925383559116614299771601809033521901473963128757192739004889554394541871927377112625945185032825838582354434405756522271132069269609963834962096555057523790397288164375290576335199769267442636883383630261356680907341402039179603720087818979418015105219847323803310188971300683036780597153012032712961794921251161944879315783064440008804263363176571795938944178543555273922604278672171992998998833591286255202888100058074033903274895604269290888814755287402622486218282838192108732875489376800100973341991416117167907901299535071711932566895613639045620380781015994422885726738567477154459644721969131608501803269088646087557996992874822640057606064391687036994971054063506165370130611203227495345172059970059784728963166135842945272456093266666067320450477905197740083695329571173884411335068516425106224040340240531155183188677659332340598784822674994771583720819211620646798258686917730001301825483641983035124546932062605994258145917981203694708799469321494057300824380508966252818680824890820573799035139879159281300121107314960950492135092684331193464913485444856452599968963362011561402320256234284831616500338588767052883985971371197685173311738354431208898113728112187467502371815033235756564727074035473816847709125833118712983965909680167124269659143575919441764878292493694031740069485495395174194358434116983332460476587963846407008935235574666175767379775639782150822870913341906574130088515206013687109113035850140358323864568104190541687229311670731709171423642760992392538889638754915982933678317855813923751053726726437532241065958602860443886756717117115286511257558914188769712255815360177010734346464806269426671890108325459475818789604025213347098203478677760503663971790264189787045331943122596413840167199575773213467109577984910950980872999248289536790662612515520676563765085113681599206822819122481413091942637619666175135961038750858572584202826058341898751000868776818040884935321736643674286243943696689142179079544170185947065168801452665839102314403270455333126339598162168594501453720412846097678689468148348342116942851891111502783407516751634067580628921371750909468342558617850892366630142485149832478216886243065984210055232759346297934450783220747274400819661109093170383117988613565036054115946476414365003792044400484761392283722810402026659536562461251823168036653074962190900132568897994979580537496773238932091767073750527135941956791446689517328231882817782971973931078958236862419264354712475470295126683654129744032762854965442386316793238191062338740416896919284928421810382470032568490756340660552384313663281188374916876318283105828933658913751150444327953629718255960933019345939590382767542745266221836688185266522563996386724616086509898802315504950681452695383659019441422229604667109315774095935461924414712972900250826811546940332074410697100925058888318228408016584437315980071804188736858102343502602460645942718083215026592744782086267837152269734500876198132677623095271448640425444820309123773498598795945222890170935615974428733394671195687354123341899480597888206643850938156879917891025552190356888686339619889764002396426404681972858622480341143395263988454357240248951190236146053353346639432168147178198996157389826922007739358366200949766836832750440890302201213582247806823769638163339471264183344182897656155757448007784054749957063310803050228378060917181211594310997703521794886083597439929493797679490385893115363302230387732263268940066831335229160925941253636525690120371464842063047280306278543532611065905402993053093470815440849820238912512811728163593170615264565492113081735198739987843437972664141960137296763027354496143789577512879899623003932540649028842807812467683712646553916220956244564983550870130323996750911143387864196918418314025003158899435620074062245821148549004475103643767846598465085346368298036441386047812451458148382883939894795708891192790943110564860851971951227523836092732635139804533988703820309200440455015616020640719644342137263212710683764362216341263280381317470801360714697033510340203504829794255568760962951239718527416132869836617048860043018222435645485727685587348507619016517235083548499641724687311923928735617001807510671524493948175014734229254991631345875509089828216897063871548164547938787884919164132527901564614814929326933146575176652386591302106911662316766590233302016708338156180214454428006693005151884551668081268951447449926875840232950493083162776182538734121931830381082108283407139931305935116133504586789699901298469277024629198604372208420190935336466465437697376725217104997493320397328582288203951316008612819346655035474079416832751505445368330889127284258839039586132652408500477026909647412767263571838299513803653656205415890823380806752815855537566852952739075011242127474334384857600219928824658839324943311378209480023291123281972919214979316607816936664182238149248622665847060365955485133318003431519017608310408902182010388801882923176889718704369402017167131638700725789015599896083768051295189899094639167119871123518549676186436876014219367660987884723696025225664943398124343763493759067726510330269559789975620595810727389821089683399821187604046991420245905504586710372979672446902065927121456205586127768237301662286480482468840297554123992384525188973197045140161706012541267626408193027490538469104230182145239506442867922792836365028994938919732217949192775151907621341332226469962337345365158397194720779665387290615618832476881780970568657849542284321109497184126655636984625925514858358829801089459572249755858293872168134218512412596484143399298685818306275835498110508622942628511129505496559432300605703681080031011391153844430999484602437559138055409653088910087628129315769744150477991291293083290719544655457824256665058129106379554433199919383192312343398787333524660329554082799186334589932786267048894219186688451991482813505559522974356137852267690352828462191523033572185678389328557251724907018955541349889713460886107459233471228927259456073410200606604170386847749944757438800457905824115345497911408437163300419758898263231793689090531583252594655817041976482015645955698782874655379558644607289486298302401917990925438063777750168131410577062509750313901057878880084476130314241152992999374804352669084665801874989226532241382958729136171958542034566938377316421086243500514584332369978967169845571010415947312356113707504661858485506127087770110716990784619302856829918490382524765554782070756648814012871268118066467554021615635467099138295875730444933352322751683796041018754797011238250061557208223328352413995056378053558813748086383866628238743054271683087623202742215769519301462981799428217543869135457934301253326979972312805269729276503471593145463386507496357915716255199432273743850479429208127119168906215932700718708773144391627979612461383617483956278011551962069252466852610127982067007120573023955934934164862555546195407375406373958578229478686623053938911912082942772040050693182910763634539771246619196074615089991496438260589057525740803456091592656096204561248422564614092292125361428910295416609495628549941187342676482747508182037820816165729642650121070896169133042098158241355603440324438291701751704207681291492412821969287991629391933631135378489376576348672710370065049480516890113127545108579977079496901930368828260936537224239042506575010547593057273950033211697512291299458809901624097741092978259621969760866100567759850337820427792626092288550460626995538693380332358054153191642007093979220492973742091126010505221575134148065163103256221805452533499792378393062933178541897760029093929020288808382146661110967680508910556646695763764610456588849833892963577496379512078166868355321644945056491721641489092283482784970650230631065456373939424296269261254996439572428310130548748406749672804463550624480072352046091014775456235547584758967304052032693725811434525100054117668786807795712788351659935671617072047819273630745904193082151439887937780064259444931006129996258508899375274296529825525389953340654743028049514816156310102367764074182337914243087869916022347288955522368796137324673021048619283078206231853516480212695940127904011215880747184446702651224171491106329461416336051672886397127961571721972210403263480497084011031010706826229994440976295189679772410087800429338651653571305569133324898097220998772492241360670665841582218147419341586586004710251044157467332890839081084831391080914491265091189182650536467815273460932468595943006813346571241706888366550555651103565392564932607385988530990286192913383459012836935095149586718661742461693925896553262043904042849372039004172325615376104758217849518562686895940801816287574845299680798602994273504829620323212059243752833232113616228241753392654426773132451897236496924203929060744773090377379450843676354795118847513272267813447154446911141671781002651720825620658999467168907002716087838400239340562141216473873343894751756758116613821991225745910517256676609459081776962242077485658435680953851956577786091326881374211571709393357271816341323648318748321348498787440614604927956398649971276758770609853247265409358674624025761511791567400938452103505583124961173360922727613230684269021035311802260367516321715978673355523181868246268749622219541672189342757994907768510487477499937962194490120897707688504963179460896622984208629715682319408827613036627289356125261918806779926672648899253820178609518577812712007176289728597519544765955972071379987353782178153701043438764632263338806198304894483948295240467798671459489182458459908948194330492471823147492006774233995400505552636220847555462545631447636962008218384546222355821075698601549576613142340410363098117867858737593508571543797509432664855463733872609027669507070169100786873268559959855023697734182694420339000648501883021573966065457956080459434434535170645773785669269815517086648360592132301852543235069894585697069488289821697926708914173527130138415743036796616521264035759751444505090106824269144977094509573061423549582932538108048675068575870374804477156693815637860267269035912531107709613017837628390478639940776260338879895193756659590497818447164344173717217615736566845008102487063152728671261672266536812073588573659303834387990549792041092254605130265679684826502798698969734005819794570298836029858753892651890803118388565046373980183461023482699306022619257894739873816382027360785874558581216269996642378328368853520983922805866512267595456302441367584952033666923925228327515213602513399057039074219923534717308891057210948745949755751693366306802831023031447827421317506555974502360339430032237727355790715571501569954056050848334739190094947168718009266162024594557912086533969077313491845910060854352697484177919836831067568933559954569778752975698944641061619833270109198584130732631210743851244740042518155705906102377990180683849442841294310166021446265533998303070332604501340644789023136719636767767291157831007807000926265906778201435896849684149789592803735771317893885599217067766225959590459563840547273822001054734465881156284468247922645356073140200453425671677758826082498174638792947997839994301276180922471778096932953344552036575297027080468278073625107952950404422341233656607909827002251290143666466684533303125930176183597890284805258912943111110814587370948857475894102874196616170289458378931653362475576022943672621748829013796304556245992536870618661352573358557542665222140992089841770803356490722458441723586528331665313662245409870544588635448334139708182683140092514096208284132907361890573821171543172050513998472301143203732964296035323142889607141478444070775615864375269755866794986271673924791799815098478916440643346025193277015916004012816523409051911361070254607828932899752013081298785237725871074973693127926158386043593289501105749376800134729684033579443905101005427665715638577820817919769081108527057717032010251690478837859804952113348022497728010502277201469335133007006890435577242139916119054259260070371029356676763121501684908361310288541253020513641799141257676675044909244031579921895515562758600686192562007477354405293279710046540299306067406028796952740163074048382756437338012478219735232197585910818484539149137721403560558681750647963503330234768076210979539712809097387091329906944586356485799929321778134458651992533459856424489582862678695346985457779178470205846568582525040949796559823977090480263405923788505548793066726545556576429488018010038462104293595153179757549210673121743475392182618388794749736576238386790212084464067850406007556328626266091413622305993869099012560484827115400252663186334596699055437041930406118727838983717590082039823544773734265554120866650373959340750603446682521828632503799048079602228407571425404507568508931104070400776219726493406290671876209100543079453202146783514621201448688425720926436132550916318008698397010404832297475783723843931532478576530615617682378353922104562460595312537164405361374032700869004519284177689298206113453357307066644392559305445363707891549699006508091383506930069430791392907006361022666875145459714371755244765318696291736723514301258788362365291888531614345032781125745423606025008050083584991182827177371624703389762901049330810429582500319291362783402767246518549949038748701607793150158406808011536903433247226154944246969183178088643820803700504968865341992729657598370950564375091325021731631975415319367157730576433312286964116799807509303781554278825922019686182103736906531744118703223603479202048014474392698312939203584391296109088771985512447059622075772797831536526004561141041441292262434898540575896924901839218554465494350597185346406890169155036405224932524056125649591484656980166077072669612367200502633504270979243174442794709287143030640734417742014277879353109029833308736967095055118896279297116411416375393153892789290953159188427051732545929252870998990604980101490159846981604647743130177346251098066436041599875989640565480811569101718642038112391966824202813433930521366141455451846270163734929366995962811562944636109723070422070426381366442055933222563795172622674206439671768114452198677252759520792323866680552812150874763506644524088826247026945477790461593120039440268724022132109824320165641529690450257320626109286800647136565958114329422666050071963374286845349728601931909994302608341933162017640236801815521298850388676288160778705676414016559884044360843496231396532540958217139073419426785254193391639383909187383526457101259949747628353055653861032896465211830341068623202125591893216070096735723296070399908361934766029667769190557005152456070536273948675331498158666737146598246666312435731518474290157224235716658825354999688452934903162179579995335443037634782245392787150759674998015353414402309404481177371850572010895841631939829170827347550389960416742698538637182312839226755414471409310912231260987907296258929430744939091027133155626315498747837171601403824477270104644948950541659115078653911327488227259700618784079377986419808027087153092408595191358247154652562159295019023657726446383877934508235152513160240686887423039129723827247256423079581529899031111870547350849526401902713598966116343090199411398407763799925918508804080732250976540478199730511626062429729589992466841420584849986594463632389123210442530787695481191812957163574414258404110749544200963749433064661409224337397332562848864892539406701991945240910333028190416269568757165597006246954367310196581261722492270917806454939444390299394595910766799935520153967238423121542869780821505498039622908883526617089630112748376502570888124011342266000276457777514689723289012636824516624898521067687103111626981164515673164771337846499502044852477339813374395808401594440527582843011755859726387079927677806748093691152122226242170439189529166396926529879896091830255608084847452831209663364455046222207324768523433716697198498577431693796811342492055665452097680975901589254770907893564983343717008813864313166454186661101603012839138221063630802454382836028412030037819159772292109620000240522423704744327896476205341617619314847721822038736683077154091232461995072413822278154632994944241134200831441929536319918082214146659251905144919620421485735722637428765367878421220608693043948234228335879032580796439837110989905450807128863215035668272896283554365524736577003450778553907970711831110717059079544094819488294177640827622880129341913304868128123866081926881725819326626732432090487674785939962190319786017231263575008517140069549398683685094758374993205283220597946054514379642757073684434737165234861726030861380603067203951491254100491497028516784767699601054200557029654715247315854038855283672764225107205644855707292072907138452594047696899233671851037263249753720633160944488247178059344592600598136377666844488326140555415302920888071630580564275254037528382374690961954211717131487194459390806034386192206768061611534686984489225112967295984586531439930206642555867551584133835581413704947891174300429621916726563074019361332235163979935237782247743711385508771587291038625514596668744692483325013335737684983770680600342298856183144075106740418776252999094876552011077328451383234119187134977321239436196138822374923108185231776487116636877762959522200366093299370679492458859873359157278507855291474628924674738313270607000278496547834788411240273107730314295528519791497448395140682619446865854880986118948896386274265630087695103839723708358328684497786815019690855495689929597190048902955986636996084782423791019685489006615881256775298411792860851429538405034823606142907949256891549501638281466208705435225399197417435285589796468188695513578270667830799208196784303346133517974022918577226930046355649215477995276737034663594044571837820863762037414057139836333893439564330842294753711626479826200719518014593837177065711296679151072503381535969571682011335286396813161483288624300864439630245636026262183395271275483174170036697636564089028126058428569392767348504262473751776438229510447783909273102594604774701725682412377447539467817842761315954357930358897118656673042977624081034269752564817256220648921817047947184792048577786632680439921836980681683390378692089526307141358281932952577377801109940726916473165450874829140412724178162068918613703685208196187821831844127679744497729601131665947147592530095476528255988154948057470804135842780968242793356684677142553945167397110688380044296901494972445825614602539823378729752405977050961930772456102571017057147871141059726311608626028921497834201610355403849608638130036381463908667570980562187391569269023845655259897048675030180223222430081918189790636134935372656836342876139561583404489932269045164724637804361917846791370177242697147451861672013922261263294929713917673479894019621106832602443078203750698079426787141007748493769493354958828934160531088563509415810871707113184974482925923783187755639492486703916933318190928743677202643465930916557181490430110852048722189038037514196245509201231590654577065318006518587003462137753908920476343029660281200232911751813783221919673155958885650159773682716824122725687821910277987205367739562504514825610623437343780468206005242413835423793601376458581960236618735121473815744063790967013932566588527589397098396914939727683695516484736992434782158812737396647534481187341788947965746832341139465322220646784247688228413651736296051512191495611410560187418816617888634418183878748192971625055808945982993252633857192718675917458799218441331993159008001534050539530633432683255718321085187420032542143100519218389629644862513955421401911311432014726561753076113900107358213244138309126144044424058926940652772882259489442004058496240586686882728977800708764051386857683991814910393842162483569719790472963114283886535835947421037184264378564082832082198961263539205143088786045621296001464095060946890977007282801707307710661561436255906607968129890070719552822159738555459452119337863385378995910371928478873337926457232448704776182661787031426057844570739490467274525305777793784894638984520742735658074442832373927917205228674497924278189549822529797466421074933611823639544698364477825147800616037112614096246228865447171100193191024652054204206993885428955471365351023399241145811010747006879721431882291800226077921207010755021975086105755570813499342361889765091512861930088880068868111646498075834454231398820955758557218513981952222833381344706315200011624442868527858390925384020504740194641616354991061070097475110941136384701305987649227793999241761783528497646048159357231765235840147455965353113218060139928644452714880701797159123573595602320173401435388905819478193680284826723962779145580555176198663018267259824386148879576156180535242068645660929001781690958719384993528389165407129606946809494965262869658139812355185367167564427253589038327722139948164936560243823182075471728263690068510089663184954593176329224032619884316935330925916566933849048408466679494380908299937353650809362531312091810805064125061424853894702373772521599347797128622609916120600416082256069228696460564386344893677962629038118671643725974440979982804635924659532225841944844712339129522975344010653982214865884810302213451664683031253075017281915090287076544094621192742654569885100941149195345528910665708919945803959394456427172901656445833415362868212614120503166075062576030350565825075878222398593200791855441878007900387772192799678745825293204422334074555563264098051308096133711510262325511181491788232410566511791668068589576501242440370040352593491941003619434101031149905349232818661432114203178276967605878095560304500166225124854812966891163714178228348568274813482820087817312553755590772521209394920380163273034623920213289223319976058526574772304190704334283529640044929255782324117019049976203134646137230783895061037214222889145596112202461467221349914451085289880555814908920614242497956525346196660548381536364231545250934113103816271583779802559245695380242494096889568381541823485142040065079757100309520124985737618190378833422805888823285947770573467410543656122835316089206825712661549417219937946961464020263145299778680117322657274723423021082120771674399983999928747801961373344219710267127524464696883327273039684041269669168125912679767893589891781768577133980771780030501479127720753813561174949139228898058850707371879782538724426268989923973768902435013483324579224474620260575210721036901434711757119285848763164391398070385297957083523163594296095590377902555974114341552251470316029162799557384186284093157447403137349163761823056194113734595972906393496412821762803436754468437994396503250120548871482600671736152691264803444260763191606560835605716082101990336515629326876647478457778313106577114837315027168753857881400158650198105860428058608061590266835007362566045330613294192515414907917274607291631421159792377375710166826011143579491026879474343670983856186693228191108511797662628504069108473855853609826903532020685373859746132364801579798924093050294723022715718584351798514825270160223480684031915072100556477620848313706428181135843811335609596352086483134230810734043702810489969054513755490753258610048239777598462584683764133949611844421496745742462429544929089232880870352421563310264032910767985142741661318804000589890524324809591476323875221866127115071718376861738045992281444850955428145206454354442475607548924842552841231101607440966154759089087819135567234432262760868277108909528594048617088856203931309180187144000387769201992716470694403843130838710365435370030540121187445569319879482388886206822673324027198251180118290572387255868604414298854061862453502673431158837508107784935563457146584135885561732852376331955814667406077549671936028006544895566376102404383739952856415607258338270044306065869033158438185641195357285957418889413329089423200015179459773772140284275954340382493796012270135434663244216048783416909598406308916654566034791167389080461921053851409193319567909395356050544723252285196582564904498645072914933150498227507508682204176003280017371802421773570815494752834652561646958339987648261616732287114395594278921314333799907243571399438790168728605817036505618297072829632831930586995287661830259638863181681010087279962470874740076292422469707582058507146956357563419594748198673184625512020362652328238155214612401408424286577705194966229193069219585727950316450683034178825730305778666327731212241479714363038766294167591413880169816336722477551507645423020915706404341090954913462709763075986003782198066728318709026314625985557051711659548065432668619922764711350208400952144531085142563649925249440973563132681580290697898564647070224385798277125736001114231314034670436243195706421055926055223375840591037503345828526036956816841941241164995651009701562564152991715717574310418528213843066508798384051930610286436003245250421030061803688565835099248532535224719132950650778870730667848438983174762129457398681576403383816777883155709505820813951486025884496842534621488801651296600638303099336865160586901600872154138691736372318705254407493313309109403391371532602638962754591052325187520466736872259663987202240525993231024865921785061114997111331195372051490592210318301257269974682058751342065300871282699905744486060663599685808761477278398356453095415472538946130903944211506892028054777383955395271993485580199534504931530956567944880847364034083706857023511839182597108684040913584750506869362221131313680140355759395218189246776888401779880996735513629173268937132529599203546270433337667342117945196704152929378468419457100612098893887418069416072317069670648077992991671363559746437504614256388526648848924111835364482697812519256145628206684986335449600205941371762207694707518891257373011686906506783006744634284681367691297562453869603729154624399124903157117077480541915899958963326374516728359488026625600467766813566470804619207226744655997240149150480723683122332655966978575421849697819898266966514980436777078490082401771101901368990150764274633810149834519597351384180651860287686156676982359582706676224128319804731756282622460800817670797530506416569458125978982284603894352246785960419485573880159087028804042018846313228441835513079380200764093634100679141795808095908170906051119734271690693402989837654916022239914726450923072306773440147725581699812367090135176638645388319497301969904028848718941519914378874087579108573663995766143067602646291942935684594972325578558703289304095428495280497543021647646005735543060472977307222268228921157522784683482447108682805468108431765451792665040338792897499644900457683678560954962184514364599773587612440958251170912896435643142481328683536454470497372580416220291075245400244045668037701206550816997668381542967180161732080096490404231500222692307794663918078839971473280506175143546534978084878263564707913066492366280952024303328985515402274490071739035161434478121202558991368874493660307625583953263361952530349722253154663120283250503105199046013943323071701820834222848974136562718696856768550948237913287929394623770736604301112145400041937946729358995497294536422001270701517430323231111018196321114721124425713690399512173840067551878287938143980643283943438263126518994720982605541018225443808859269059853436225367215619918294570814698113261525584971189410606600589739792656916376229629728304609380116405176870484555656156206412310544502766643556389694512597221619717045711398142935561958868092658693793217909059883934365616880632190818737555406040340751034486480317494521032218774929747911050097748548382553253430795460391856926975906901460081698812998427372570180341675247456827113223912785778559457416145566856488367029419628762354075612438234201118635437842538189739631774887638259992452194652787238513326680562488216727176168608530216122814880983797500685897990514248754260711855986060161035414905460558088066500696643757655550032150948043776864854232125044191259376354772928786230588501338133715339055188064430461132058222488185595987005980949215730375696125650756496505675036329934766318335321787203634111301272467348336063548614567818164432773918804325564029731480905743374996606471773212521005562181491861950787082454100891322161633091200525889278913465700363707501818056634841057049287624674672072976938346803382178751547972802340258254962540343171389880200782700748953733420190762798815099876877674509576659960512373386339695718379201430655064476885327477159680957143478278812439411592797308004105466487041512500714733985840258297954714038465237111409101509033125937115902791871203661839696327861067743676517710985120054091018133314795426924302562290989480074373782362425385476148738432033054720386108877488065767272700264589578381488705662712476800460277764212899159829148135710696839607136973665289899898974246740706582175110569365773188013180697532232441898137749142551556808870267371795608633089236641698300749609783057612025659641546348659647616911949370800349837500599374620643060162425417327654717583138623920260061436618489024257394961486776828579448420553251271025182814914093274829017497920664143252857554496816833227373240485692955013368466924922577107584830472018312002349162897590490869871899037909669785577156902828985308306098473837284068719753252538327735957935008007519610309335415676949603173352937539144558970424108371787314369684310197702453615609723146880663304394104281470238403414718637312276172224022442486294406351784142233800542127095090462714135866787101367820796215891255453517335479058928681097778426966644921368986066937236407178308518104177122838273514789592849877034787031630206197931809957996535230364489511088014983219321085446857175254355891093052925031212520978191632552534165811555852646947016928571139455398034087782844283090162346807815462548444741883209830717197736066485129126421465981305365784188532109214166614896224964469642089892678863436660678810300350144693883482637567391177763837840055338617584059341816114567351107901745098349411211631658195609673633056701247733616666757489773560097913400790141630287597341211342807057955616174751325344135166555083526334764282727536849969353695796963328307383967982365745929233666992386783491902607198551893686642970853218201874170689710677191657507017863898361056932124971733694780957570727355990462747789043313454728903130031850059277955822400108394480721455857572160359112560856180559511231954219536702637541388568045529440077958252224882224989557297539406989321097664428456064518262938012154527745359522168795833818029291441467593567056298356767380052682340125215918682636441389313767497378119672325205570280099049387705271014809462130371450311474245048195825851359238956253053516739828227299629747985742164270596936447691440872995100427654421649648174003317732933987076145416672108572380269153048329213729682750801910556331872798562911456317749361410686115830437481155807309380285130583383786058940151024412465161487174340558655335693398622539566487735343599183742141146665063853643997620197671793476911379999506295099585159876894523625407599074369141487853560803362124958133635208347190716398118378993386437088278109170491105988562956263550905779109381381519099792154037980148928410463566040153788326189621983837178865286124308701162877840202739643784684515463851978600435003900248497454527959102122097000045138082885565471148211212456509649253770516239809261289738147492171336777875993083698472332601013450528558793423509171181725380725196105418995083050239470856052795243259434664089736042688685141454079265880211905327226454469699766089406946634286216742260689733315701176869916948143961695069117330964065263412566308610879648995491620101991437573328469274426224020798717461258971667708746245009062203097099207912428774610144855402927622453114541140402916511536841085396979296785698669867120782063159408948667305152597421751768463682329657684768361535497625594277919821502935287327545778703775254305714836902112322581832926157839281294963518677397409834078367291096051538048215250003255746602007445603551339971490520907984485393761817758463483928543828340103390985019752190339579754211700250142487877335381366975956390755338566756404971907100806522103620577832307019671221682185122174535818844773980012605834975360746228120690271857335478165283925631878452138293007145975928202812519495956340521511636011792214528373325245782599583114329218004002317636790159458714462284939295022437982222166938538358228077519783575113530864024994587753500497893204225809350659222044249435703915138716312021995668010465097627161811981186036657412277139008682310564939918784175677870951357125489586785264648152620896235479410044778282460576081171103297032546343307895868429678258383714378406162305248056168313434916677941929808886899089759298384401006670226251664328052638755002701053796992028390752859300007902893904364719412297627263655632372385066761819275707204692475883760084712524918336769557100023757991652751287734474260227579039920246779038334730916765001098831486272693034333604780941999887366924101132825265466592261249647814823172891313400324020541636095588874484261767078147833201721023470785696564679650176116368942473011268467764781322727098489474472270583966324762460161438341298914329837061290571456703653705132418615869800520700543344617693000527642414511190823258916422234546554597761769220016884706820458022461137030364878119311584500068294616701740444752175615021266076379753602105156672101613354572571666733480663123172397273936690418756305129058962821841001469643017544680933462962020430953505432448817907499801202583421174620058727033965618746013563374252017949066663636052023002824816354339614739633026601743509136958263000572994878909119215682603274071921707379705346394657736266596455638045605597777618068056761331424465649224380757757393262939119429539324601047881530499067233228503590376101485804805549088261453255659575916243609091262821363899620896851900722708129349019848227147979940515722043424344230527310934738021927890549687614434256152511402363480411453038783118355016870051843161162725018004201195593428831028436668485083045950098670065854599691022168324786681955215297716256591256779268793515158794153599873289792302650420193106394359702489363392258796110557964054757442743357562827164555761047207421440609486929499512659579128525931998609988912715113919998012967488321468543287544858784212512826619926607293725680935995834782041714577759075410806418480882693718948656342867584912138781226955217907984051025323379826220621604911751863278833608596753265745542451357093154766357463551720290615524968486380027668121614871562422673004941206930301881909930188661905117595287772120009391108792036077142646011851647660398989164215228184338044535073324716424437210657207091029506231993274295636804192661789041489014921119577596047283716452403391769638326241134905264587126674211079449885623025792751132620114880095124736005094468779672931223661142872290175860924724091857686343138875143954684195833156597277382909027448047944703351382639546880909402609374985275898617726368311223990594895627644609248854914434816020908046311039144079603809337641286098393976799189166300508411363425199655506061349036932982506687390904784866465338995214839533425447642944905091391462151236402477361528324724878134410174962303245795327027282600924124352336594048363672707792832746509362235348218106189574753536308754965364844054246398151080366158517302327930827104561920093587796019607397824043996202759106354214739469406004102027234030421252845808621558595673807956771882090297517056080919495656090881784976556061148977997893064688893258230845132371515537132076474012119092558274728613724494881363593311847504670011585412450796843175909918794294387187310393503992277254895314902406378981463650329561161954310364711709889171282397245710555244765877225459460156488648146826371921411959214727402292408415688236621243707088238886901504545635509129398161665419096477852158313458483484957891061109833569633523841320175981103990365807356204199757852011685630823934378038159493898576889124467015867518820352726579810226379733906557916072827182304037725444777870288052521220787536485060464650925334023638546022265072128812614303813944134167282625224444474217196790842848684058693812535652770720220339725477528061535896197720566529394209449147523058160782377065009713553108491642092923642141526575175835939169829110641703538426068551344709033238825271531131578047851711764140397204176558581647463888704729092573112292798084783071140674483698456647843592823292025503246287044635097684444045368790530573212675118113157321139532440175733660384372490256615717646895017152042130936778682316927905740560559257337630270553557739171844172082535949656253130997935183656435205951061529763204141420282694069085494164861579977674885354573621559346919702448225102391144270797786636715981301818740691716825690712859205864857912823820222312913706335872905353907531002219144785715928084082382023998922034282315421093257093724942752804330439117302767234935837527281425198939574797760277532367089307423027410911019755438318711690592419478720955663746791717895962658752535241870359713546074798522642000773904336541124572174072262383656998477658259650171700799960751783843522077304823967029224936141669759954347380240456048343236815141088425895039964244504187368210686289842899344931767038217229282891738658947171985205039023054722848890577373647018444640064969563865427540018036209946373896821930631209095519358367509484458966340631844953666981436442727606925314745749557413465054682931345935327748490538099317476209404106008395914335829841210266227280308528298367836090163432209349202161739734490720401321490009114920537902243044037567986467173444698369394655094327368213668833923024665018510857139630322579197896177528836451193901714962982804729582456367726711820740807850370339579650943856373531572749443067107940580729831099613493323520534949153676514715072170355576860299154257902358382442396650504373339072666784880400085890570125809756036916176606965315674087365636970311751862474821488771870782764812183848442728979885985980516479486876917189704168646740132288278239917034494119462495849834794479843094639927365884673745387213327725524201283536204409086257914522538068516803363285138122573439456831530903624180429460793356725087769125903658227236836461795822265487459936681793302289525002542936890093263506497522991252338817860265977170504216685530959724462784289583037118862463057682447868452898735413709748600896999305007392971880231488962253128639035465779920613838698778811998282644676988717496572570957970191826802198676703310065212436117101952900294470442350746958183762235628525778944740389074450521902292965322880200112624197977270846459042743799224444008116717730756813430188070347952979886632127129784060357406382242577762996102591403190631789919106762698670387697243427113802405427164487838915992639949651331246869971550484347200218213042332399895032895113802851953653531184665336871501677983944158693535652734390890540494630612746114629222956471426638036245000665868071693739446160005153141177523747883054528103653159533887656404869409745396088619341099832058937425486325673865347096288689678303610219737743197700425580577338250507257596042152524234948109857478507322723474859418802414283508026214895323537910228214870644243321111452321985260971372027971359773837367337856619918503175304235528014957782632802948106807133049166046798390486838949308133316740933055417022714657856026905042584565936752225730320678216648734601904743298818319927424326110290169600659032175735351895719326551588857843606181633137334119417624346240744972755580346454337389600865253699490753086428074362160874495869132523677380520785218390354576706427267829097010745967162251156662914376840987020524648749606064380146099624255969133770208207269943462310411506038453933196342201968634170667318198591171682478213950089174616905367956689669550630727417003878838044622940078790193096358101366897781658761627491726629589709347922067637309328177083868614404066165883759584993253109588046693096119182404714478512294387008227253317738093571449938519086792949196407838491926956860133567464173120294011245457047185463211820793113476518349605884815199082101258996439221771727541452961252676389606176881225953775726224467400671621516513963748841005121111876235805130491733192520616920276212329074177566429988425411624959768225417678480965704635629880169584075462223878676763021368690489341774170510134046227877769509027530935095875739268135912998330896772820798464814653322950300335674227205090260145397212790985438927731512762677957433887293846383695680899593974735980225974516703447896250254430193084491024839034582484953397845919403937278797909785517221297952908993211293580256799438370283337723715307741087140530937683405765963736456959348182507341063867437839978442901184525854426590941535044706232017087840341540853568009567153363816926536435494102516313793519955921432779624430952365942752010737112745691911041283236888024573908413509854881843744568901754895234913565912181739623150127950245328063889330613180377630221546775420048582993210389608380281756356242627881725109060443474090444881905832430355361033250224330060183710771112680173724956100293888406423428854226714621889141043318966632350527997031232121844088538980862167646513513259368712287570842551784915092411117883367111263007810446184636292717741178379467155294360282213432531335480540034155201778800497590088739201241656268247627301919939739459558108586812207288347539910206077476052358016290168294814125855350551910915677519926233138963238232620952666778644593552010452667324222432471727238513756751109184273277869127691861577743514704047309847802772470146814444170931235126507499727007216108467431160373139244215879490844103100457776063770903076222453205511090627783432615541799532053096033994733423945730533015909731708402408160203785511573746150599585629680818842313181276169517615924754672257009931172811808479712599241752494235883553125122472877522049042437377806039530414872516383060154897733792541159484093413399667275785308669537134113164202399844102420751865116179988328368687095693903412348837035906867774610695113975354341235534213527777344362830345108923471730806714901355416153400754245654776960861881814321301598166408601536945724362740941155095465478471863327638721521215503390015477971157692133442020372462477622997479845308223548953014325594316119338177360699612272959765142900243929790993297515040944301441783358954750553713826273613446933438036453546200720618051836273711006754072027787643809387508646812649371683645483375914936356058217529001181935561411603544441897386288323536021239944538012387427740226596860202054567726560820734746341579103807144657560947128349427576547000877740271004686519675155078116494171862480362784741103246615447478722773249028987584079463877790492793408173713500875787492808719631563917126722248444457091378418529906314129356507754796570302581636986846815773154319896761649407761689934873331877118889846959169944451467496740810809687403960553539985663878521993467131808770104248109487970335509220419128051797702544612083862896913447624249869160010941652504966960481626478119914439999443534785339079865388584561098319267881491390706629152456730993250925871382372484075693677911741826850213988030474651564444535435650031855593124769405883550212681041448559272187793790355770195840134306732951626060623263921351000355740488866832965478053987066930893874106023554091214071553540281772039852375209928201040079805772020320626007306227819229291111502513650505874114193391198394259383825148602096127043234237007692622144785286189155316197742551853968914009195652553015078175688494995236523471210419143927626043913289313951900884290308542101252290755199030627811682659408615733028354966907324271955693595059640870966486293039860031141746648922980584281259982970491392619455608226900038206461195539220675060899944724683936384270147919881670077796934804480312199726488454984742600236941451787367315253905730336303122389422484879671870461677328180670482501904397246776842607647895806484952908620745549918542364186163588033248455985767811864684162663721484468348434806552616556329281999729469634190262795065021542908084654925664231461284871587908757983415520427387836360310244025704351909927267964834825949806540207452386106946377465497364945973214535530652018100045582587339145845297407292660495951545701739275830799181265563286036009294579144134465854101862809805856860534131209020948595643505223749984682342767114305250301938103366709205015112992354728059731417935799418380387273914315057225355680415296130261936589979029808892766030303726222975478950967789378184252382172827725195097068878333219176633802784700051899477763950557425363622936897354101494040326881461482843548796545250790364523170693256525809141296934227650648846013624103885505355436684888211017538003719418026413861547587406880831007392662432140451173191482082457001984700887497236980606769370663650905104247948412519957580293908282097041728027735643147720782297547272369331836050323234965886245603045558492101502719787394248030245322471333197899088023114483998250860238185064678542416226243389614103882075874398432428279250977613618708093806208001948964966115742193234549797975062948345520231806321064556221947409589042477412933732211350591191739642576652971345001414071001346089319818732686362861664318557791169983754618215173794979150672405886106061882401089993197949595149435672955806274753624839901014982097334364766939140610473841749161944344613204263548687897787376842429712187048249769241949510592306310921835975680364677922449153932139575092409094808417848284222182339665444323848526089858796807190823965055115539417227410778555186282938599590833811346446970538338201522363152117366745953020492701310997117235136571170122005170588104518374051448492381675388814143495213602306600144356377245376365061267008160571600182363031721403767532585448453642769095306857980245314555973114054045397906283118002104334158851005998485523419993040995566414711933756825736514618029787232402069902474058214259804731865249900853547593747493446651418390581078015017074128629200288946884696209861057961361178856392989642262651784514383608435477457507299721516677681280919740723303643774756092087752231185941057550320031990714835112734418800155537609213778929666447459750765243236489014255609844330166690726713603158863172159355906332529987745554332389518757635302862025916303748050485782817600772328528883803750841029388307337170574313733741321364586300244986143250160459464834479357086387894110465352752086114844373430350613026247372961688691208818494964309971347062410571709240784621282338410029835628310713002600041266239899576056306804724044640824376036678214995296172910406175027722282634403842146846192854148406036118492457872079031627018317369533837512874577360612365075999338552313825732838591264932746417254192872664521711384512015411688951326059251632398789201640070665474448919099733841873108931796655840036952507870457648345687276398588183377474213746371566106464440418630616089521753580399929806726409098814690345849785414703414880998853926378093219454711831792622154842193131078591558827341739891589659909295147658748872877505224546281072278358106147545758813328220147464451766872497940847381324010740857428620643945827267268023255228879784142393773131705482972831799558220338370430447607748954683331491682675669105295047196782417618732667295051686879660486758372237895493459294255849438110051453175228101918671102431439449405294998664293604830541305431841877545529183698290409496926767332338409783931719256306252170369858575692628211829504144751072876000513708891549794715863097110398337246038161610590309265934444917257518228955987577474631468088707843552457116253657354769490357665034720838928666798642482311470869456689002259805645598277966957739626348176417719734020662581295337910587342743883353787000450769519172013551899832173367000691710630621644090081535744896763901774048874701069395848415347942741467234447831120107749984765489156724005055399414744686477244709456921912335463510319569336496475270674438935131216960143276588704003576200956080145555003676890891597990773340571726167538412023581850662212586743802346060481296286809037293256910657681999882312899439551310476243943043645047203982833830276806993554509585243779227886911488492045538531372829311814492926346640886099848228861997761580019383816695377553944571326434687793495291630661023254704176560608064971110936493358483970023026261123830313770672578812550899348841126633178658104558272617008084364963836830947444765017616512860380681533450011336476338761439285742937777170669866096706012528944279959640914288995229272247593511399280506082460876555963153576095119029210599772193201842091100362299031580946688332003998173930983376411083782124256059061533589568097376305649667019663066770058021382424760661454146336733538755735515387053049209047383782986807166065629679976138753564853499112584412771839839859745034203770144104638072387856218178414669097006427023616773750750410419405453332689174292786917420387608072086366920408196249051714514789404595785903122251606541112672838641468014951827879867010606151651027040948097972962737007478512914985121760243950793863615759736014160000681350675307378719010196373619190497222146515787977515979483907600440958465355609381481263975737670210669942935137895860986795787719780032699355939659407665839035983704853056475344258781516174133287127364342491742557712100242543163754669078793020212317185378073108785770197659195928495548214915440930201127909437946083989785370736847615015785111798076111298235210126432875966104111020176646015437380981767746619165849254443979341012890045921313103184763299605511987073519647609421473417432455264793078989252329094893047431564074613439363887776560373530780843025200422747780169608534169081286355346824744350380784216193749123369056227773752446678207813934084860823475258701658906465531589090684767894110045479835408358555463372595999265785988176236651478457423530935963664146196131670918103065839328637281554035282043080247703787206078329363349072588327450572278322712303686685479209810134221121873632431614338692235285688726296924494271761262350060077176214966961186989459996500854763899396599598605636715183783504152730864167365938594421747469446107443880253195710349997395520409490726261045405615504214253495635657024951364930156999898201962333744456221173011623368417121241409329329367703978446741585586707204330357531462960771736926558945741850882532589775256788157854854973981612984847514470027881750823599934783172821780390038796537578225932060356448058115915406194642443479333934999378875060942660558943060818266612796411112751251073144623406692468088986867996205363635957121399558245678170841523615171618750082509512169707868909540102037390376963219279766013385902464231292792226395838296138651911664052896475780567691991257069597209288887233937373098750076062901341903680552780069288647637565942452588797132704863482174796595971960980402431304655578946598408166097571235481144153951818302223139915730431742243542063283341295037508866354878810140347770901847155647304741323242618938575905037833475651584623926163694286328058929934225662152920998865530955635930981680507583725054865691028679338645106597019999661103874718224546205780880966710361967839103590751626286066290557139954834956112735550710643735310358282676762819125291926348441672829619772591684155930711919322142188083390236956146505836772203464740861335117862051629655557178513751947103484197992072643491544297727077616220459864449230846419514663342948467959993172293592733049219963102722196738295289301810680435730642282532632057627735541096776590400563014217199400832638083347127488062421439034699548538760863473389419448375297843934576652957008394900952899145870285894324281376978644274907180824518528978443393066683884777422866441019059181214760689106737625838461875273146654153436786345239120385086391946187168901802205387971508504771206324952987762405768276750292137816673026353559040378218368777421999268875218794914929567291533584699670337655684866030836628119168898349975301854887631099361920432662552847949876839382660998966582006921299048132379089316991254546724432154578706752930354749474885269863842576788018724053954845839085649119184253406304713240002407001286915476267965656510317692854548545332430604247461896940019020982315056470473362373516494017225187936734598767842686320432083687886245432061887934960448371458679637106440708509877719052897178365061341372498708367826384912049673104415482313765126747577196365681775094827448414464459812269228019830161050266744974970572345885733426949987453410018469650337901024637754684139597173960316080925715804688788490387870356391501121682756050487424131256676184861157874221534986309494070416838100495535139887554888214881738036430645966949501795753834836479488451278663340680850363364506193604099774766542865615032922248355650204849514718826882379537325049870000345657962887346848329675304737202083308635245670655434682109262867436192896569544702269189475073177140785649886934702124266496394281475303335782643084478667025214703935446478929402694533573011835822656200904278731536230885963960210217829601078339136227024232510992991290234735585074366391137615206959281783457164255958215743292965310007828771260032270749558089696874737657280694421499679854819241159071528753500054074091128522235291883188253391991430605935971220836800610179289581042177909043212919546523591766471513674384646264224426579348194029213152259981301343653139708191197996230792334934339687010030411423081654489682368629663566274720602278324687299428724361345795280837139256118191796617604662597881253368167916079780002227975523965049415086595187286363959874032838679126534725166473392325872443911593911984739771639029713449315833937703347949406984402721360699050500314085565845776966918465690139514360957149221421424764866653200732027950149151128436551850697851344437651507545385130983138857508472156963581622067869640748223662064196889327489530634207719149347018585041694790485916373853450103400630471913326375325953151595601101674092750761920946110562054218535554330266882579074723494792781877784081444273725009068257573261347798865989944921564439342074513137022612417975133986207295766553829576362009152717558542307154686441515223689365758005036310161607401777042606507771960368198062933242544084585414685509234034732352037383187570286732120108266424405513005540985814268222490039687090385662844971081020257288511118156874649224304450906615508859118280499432292053361469698853217845075778311870097084785960357152882826364691292870455607074428092994750186186539731793860361116461177998862379349920343631328375870374256069779650584268556555504693962709529448678638496301166437401480043180668406522297146472192738513820975768323741700021973106672474261595519952536232072257026298062990605590442220103769825130971831874847191603307717739177753422751645515907100601719795757024705564132662857194755418064625730134850764459077215476675821481991707773969247327684140816442990058886956462063746195558316289337454229240351906061052768769979480530703643244105072450214843573102267339471089800868798301147912146119516716477616097822691955695230397443689711425421469805116534187232464836487417172917240702682422535350322443356656351422601646929642137479418563285749919394063160796366239445027817393434394266862273809345003042992243027014026991179235679459609237171062117279161337189450438278202999728635806131186666035655513489435794897502913089690256765129733247142562246984931703169126186409774489491591286597579610705841128748591350655128370201748325835985758026919552982015439673777675135341645436646801476885810951807215010795912566766386335522659905641123102463270636496711050247360427920597849426719631638057391588051635969927989231874443249687130254952853086178659039318289838609190343031124044097621372735793640541889671283541811187240052371306467514711888795706734878763843112501737461161678712042250603407832973055418031159920716024133580173365846896310568561685869907798198101033311836551282519755312628022770822136168061182763862982308683792660516641903592105139057025706960235575920737149363331700463151573756401280642081704925605787291749126075123714437792103766752852812312140348957609553907164069763735650527140191316664203415992617950713273469996014171991204539118965172660555166174518609527458918875440419926041254049634827021633430469178485576332820317726339215686081819391835571969547216297392752436452918880351850671997726675411746304946653502080448159182534816690445123238960611793029640788859472779732178913660053322334178689834457767264365379807753689212735853029574638887481536811803309087270017614551727581779738918485499159968733243808177943902822999188859910283115790761203364675534657758273482875131853582758817833316442915574988847497764712564352270885885987188432347482862858565016181200088031452970145608308510906220577411932110373878771395429463085301200279617050265417176939284288028032688492772606814562910588384767476898823642088757200226781550517120899018217123256504209821959229175003837807860872664720946342579895462897566756465487063033832257865998681166507533558764451610319272401879483443168898871058562205758474234816918633459586413309644883669581818421943264225468903991715352353152148022013618813074794106274874362813404630265244144900132605903960538926050708843977543141373173449722957726383216435373730844283672597696176584976269563678372290194647528327291982388409047980509442909055167929836501835985022593802875056259366266936329640563251357156986193261635767011444094177734223177531436358284195546797003386493868517915688484167589770281256430874845827589971884995496951062648785064266448104383419620063928656975009556707826330645454103725590484252479849780495406592154735048533957498898365029742470953993703589636281874910119629517344500281150329881742225421537588065625492160610434857035671733782472944009908403498460018585231656296753486924850874217949516309637822778356299101149924933179547133001010369858292455716382355098381087497788287842447482816495054905454657814835594639983374027934969726095207156696807734919063866463288390232067522463203414916674697842995056811432698237007393720079600862163397501805816167316704526353142078473475607301002468660982555091417577659719749450407342745336506321884045199987338960039991180860242982788196000561742530059751864795269513931611175780846367178098179992715670720812954966715484452742193245134415921148888601211071277414805131618097531538717734945932815060302071290374550665964531687961152462782343463558183369998842940971488415723005663325704068209478113524338746810019909142252632953511049380662549537134777237021514758727507445610087660250869395033757839081335431582079087151373730854629530560600612822114516865740007711513225934636253196290351229844997737451212567158181594342475554058496375329320320065128596579169589276574975720660388034860513808597957995112181298837644428409975533383201316786615977723818941779363557415876018029965500273713113911485816518163532748191669987588104936567784088582936739211090143269145355565264936006672694262181411503649001869592698790699561670077170730759725898233757621971155146780614420883634039908999679600709133837332644087429102575681427375881504620668609744507743128914847653426537061950914451199189440077398799822149238711190241959581849124420567564587162438096812817287125786575645419868187015593840637856552609687438998542929439340601303498438186150755684086883902018011536019123497129775237176874350759218693892141052956989035953791722336616475350143178049552612467692140742968056461835116943779243985658270311573677347922884152787863846621695997285078701923921238184864986008083751236642501935504914141539730369365998716312308988103046350177894796254010851296310025416836544300489217587189308786622425052600240993568733693724880633861224777781725225113656548348537707398446381564351025125579132151450096490558058945836106325230139863327255248514879245931606796216403988475409400844951388234286517062814402174087649957115022375010245910861270532344323329478464676190834428135308374556944176177402145539013797401404090598510075192144929621325997606123979334000739080443314029535463323615207919131764330471952180550707119636411802611462422084175720601980822940985449598044286215704542974087370414742037346869104918649433201944832691027578105896912024236929695036635582649311802311214560538781974663813468917138854193295398992235900799781913723034443205072301457747118296032614365395843783802198540507201253218356302371820512147849547423256812863954574092265429869797144800027359630697167875121560418790973900891759572041447863477666343004493197775921372177999951124004519808149959696056764768232224772562138938708337050269880287265173759217311129387271758497871468238671477594323770494358865496393802600406864699247748573070249278369909793447805147859531475254045419962950005547466995190726922538845084970834075986189648870368232635935621774254142573462785620177400923974392588500255514314754493528497457363032631870414489340794919918085568577584724266608423424572345739847031208216305492458625214592060111338018735210177691359313222030799589353906233858902165425063798574720858297675929129902643610916799401182210865376941977634112720875609531144556287854799948562236751560814751393085057743731967879052656283564262147104535440420016113370670139430950559346413642833854919655447665190905448379672581456789655933429142600068623084487691358974542171465227344087414447258472801283937515621112678767036303944537335068967903563077605237791328250403550926533911965942243939600000019962364534859088230241366168481719049256231961468223623405888726740299826596831692978521950945096737362466964323316279501215533709222702651069665789341151482368584991079201491178956734353021976575850887339640667688597531868179629283360925016910291002310350478337371882056263792250029073729076512501116408959201927674047529116303132598687706396655311527717537489502006841720221328621697023672606066372453511030594392276851790219416870574590709266288074058887380953719880742642269132636830583001364828268824944218094570993342845297600299172470866409687128246038644560283379953787466483786337537978628673306007440214969860312054099851998359462090624933173101590465547313731738816567492931341006120157363342569598514885682767454400483771183864426359644839095854044822018961202125498739319898327800264392367351672414352030901494454389294813149692188031592147946770438763310497202822998807454134851371864134572778263005980642275641160979771018282568213570696367489119015567489507268044119146090267855477774899455992012846299454782538840456626080352607037086586123092467074689647188634424019609144358209205944062680856478233776860134845655179901325469447722778591816485195017977374471208810151133230313272768281744077655657695735944241330921033892333028657804538413417080471342497000528312697161682300459944492151368763334017489693878494799093820792095396333682238667214908867485404164158933293193856632630191514148705712256656935753792359556782867375064334587903355649975208837541176174551869595943680935603166924120647014843418271878920055131555659751370870442312491461863935250391677581600585519304214270707815808904848203543657561686750773406065972880585391841169021481973965565310883364859413220797051043569242913369321697542923912389553231682924746159331476498400445665478010618039608194466359339971745430089848679318649861458625299892099140842538348716476214113425922647909787808736848278557270523310082168008772172988859827270670355153989037528065623265351374112991898630164156462872874771689995156735820521559588776004118333847150257840403152237740909186172286092111430576655682215410929222268941586041294778223004906878532799339370795528816330018092406099298500695810995656485728100183576697145868864802920787357391173337341270188796554448757365032933771716984222831972728684053381088760511287237047587722237212839995116372927305938498920681063626871231568992259472698674708382989747289812645495897159090254348006075742285978435887766881958141433360770680831526873194402197174709715797466778071173203582318333861922646127270344933961836519285326676871216559084210485711086109230899076366491150392370628624985259258611715401185476561406187758933262210633665436431317157797016599959189703584816634459296343836066621759891611483887166350112974220457079036860621816531349333328329353133762777068651300739269047156539100152545729594010057630421966685293541759185782117900931522509656226570478407074537413868666831159302120613541714037677522989547670488846418757417186766962672270404524731291122444681095502904905185565433931008546956624035089084158148148196142564845920228919061814886801220503765364102914067533206069318767450568771459267663210780089397175906831601522006654056798893756578414363102350505735652618519661274490518993090493351603856548870137998955413184763653514484479971034697102469432942540249681013032227952416735001418837721995493922324779722111921456335157046445713908482562602913876376440390741681092193605464975699592076481738288963135914695124996269881519021556314826702627847929124278069875717883186358550799889291932564778443395365030519260227405334835821378359653438654113360988241303890337049151403801352986435107549735470845353949322074434620708776691478258186155147594532640470310511918469791282137634381947855081210310572633094371720995522298451241897646996509117418211247956724662004234633072854337454453295704605323192841683623558480079961865559235632888033033276533677258610323960555974289693571186096458630779673200858437497673337960976724570555749735484917204339555729216372315316843836641251392875939731462044096632079179471700336223027930444281576619823571775022682735591903093656331854091894589879322236361248726143060010641021591314175188478074081279493424217756000946832798443730869824726694113230018905870493574921994229534474138784726408829866560541894431253979184872106864322700124537300403322199818564858888647458577822447255738604826545555686815639752249502636268030431751590770755455867265728414300704716652309945037024844186106732699498279313033838325610572164600713129640786513593892060807494682955681715300603982689014109157673920550917195519213773621823305235342889904782331305133549761167013624913060767999012349732299400617152169358819149455260305624200341486721983232292657416233390080781712339565499254307466738552516551224635141084990574324760402393939410376720148144947356471827262493032024725298962292752662597461060674051523900724978300027482477783762316148323861998983184900917890932820215087664033888319748949410958053131806300403073317207423228088093426575783670435504093701958899963005178393767781053371641437943760402449450667709354970958805671165230547739619264856169207311302143244042192973064835662664640719624066975467744702870793680219947711348269851602180690097322461020270364770196535404921495931720378247787421396707880765616866176562437200664493281340196257358354112157616588200236658661322404501273478675885875399476267820085164936844192635347459612878463408561530457954862900355480104485139608933104191800437546528575589739669791426872285814390954274161690368679252956529517500918095960650934834644689163811309370486009428032575763793912461477258631858411042972519294618871366843119713059767190017628031751388978280865315443263532184745201673306425503388398332192218976127413380667203434846098196521740248148379672080981000185456280449468851244972430744108402576119870309021219805905893471784729486786931301170319313743284688068317591426914099787769437978768470779622884230511480030990944052559349806495241818907313496918066461638866616246331814659450365214407815677266936235001029682050205060182808728429781771113827514929692713113134457942256199005222244248439713326372809123860770755038973575663732782648088061142910052583457921500431066203129240141133716095718754556962968969685024003865460788550671487366174823685400969131540900022823422717183511364880858428276916568606533546950497050804667665677233807747393618665206860499371029944592010900635178368109234231569618679104428584272210130863025159674950609332315070072400010664814809532696540977437752435531304040555201709123411560664216430907029413915066722408407675596233833288261617044706816015097917239818303739914085616436311161631050964896334621560969644687365946588886037561849085639703605942594320952542425972243464961816990804827057717405113520878217219747848807401655795215513601008742700052657578335640266543182902221591034035377199549478679312252154766926101611244286966444730216113509141857720278923653564726415517234013700812015541955612223829412565997074234987612605943029540804914530633608134563952022423298707803798783503150824269399210804785955816460956864178816132949380578932619038350123494673867245380504413902725444486951162938245569804988744777057621767311104627898856180523115216661774919768467960257056290348211571138064512989335782760265480628463940734394197190452108868647169998227757134408206375687463843932325758261366439652499109132078802892488715877227740669776620795881246217221171919942628987846039020686407750831809380472271480187469243576387080976345186232324220704186343799314701157079563824445161303054925293531578147530732149548851905611483567583583019225134193933412386976134961604837709628539474404980619954336606444707081022601395041274537213374489680805346213420563108516334799555471104722254037265849443925183278919557062513629870362807087309954965086321582759585755337198526501138544676623694187043890040161309095608662121867435682927224958319707938095913177184150137421635508488958474007987976925762148210582847490024557081735504011485930471697837309958324989610611826046879345244953159918698228181278414421224976308863927579745757272036587721451797247133960962886425965891961175563581654174634043287492779761473890928378035828697738707402270462090142847906604216659498888435825448635371477333388518866889784720872570994030686555770174895066374056028674703345369285825753895229986055204880267646551618898377101304073237250114658800945121567691970167228139670571708131548599998397107594129804564510820808281252031617207389807900344364565738621414794917970358510177589896543044680740194121887682410672004639180933240179692349062711845280629325260263194196987784185239849433970056511058230278473587856107569280213692643194325506628044033953666583799638799168376571513676002007960893211914100332004652553731691478105614751189102360217187614972609409518044771605034932230550797501114990607495045433520074959113728239514625703350701848799761568012036208292799637464777152606505659534542490412782523806685670031434782389493301002801373382538785653204293383612628794540007274128764022602657862899070424984246860565460887264787023716783408722658875510662762103894385479031400856894839457011469962570734328237849639914130993973608812327470428973784563558316667416149886503974398411010075381917991351577994741340872388013837195627897846587569015890672229163010477240828381961908789289670145313931851295583420796063549048275955314464738585094517987064901543193727210212514192320142679550419406496815517045768966712372514711088447209994375542277079252786511513085841937049981352942144334904747820587809865398315789203003934987594584707098482618608466437240406986881712833732891512668946066121572608824082710512676933602637602854930403593573366266258377813452065846868673963914838551180756515857614787318104880244300401581122781406792450815475783399535804798864611679888118828157438065357840812774839775740303182449296760426912224113950643967633569981038314048454165664713574979065423718131045793330698679994057580952055675672082387885709636680152791544973457160590658505788532398186544363518732246157057085827888453848673380088581057216734865857574030618339093836841679182773537418865553113424013858034691260827157196837154503183620033845981584307449809071946722777836765783228152835339537288801679355403360940017537176590207504180269680939596920700837714630730914543138823045921823096817779495423158581000709850163448957478320742931035199382570219420790379433975341248237533248953945667106792069253494813464517528137999500157932863820839912073603076000487478504982279108932804741148145656829675795570974834452451744699035156105714720098646861615031290921444202876973147123536725472350200557021485639347621577659228069241141017378164519843526655019797570944363775668544713380279845719945001251015494640896780759484919789591682716159212490945263248730076477673637568460202891168854943850079275176818198134826616050130376024067016252296758972207749120236517594283723734708711325641723869176869840970299422705972054620467051384075133737934842026540174396014307537238676692906009217634648847625044262138723185302833715871479427802924403583172593658230040815652505515991567575191881139092608709523712005352825954262606449259250017636652662638639337356231336341131390151492696418501615225351898325903081324238452478169145243293202100878369225099422126875351819443648829974906525075571773033821656436943659914028460915783211234233394211434612491334042065092056817982272122699373782274396519964990984324408434080441037549445919583831793926652750448425821789074941249386028477221826326058152117907480221976112780734402343938231710345420626990695558465322369466028052296354001632466770350615493230392648724006596686104530327181808282174230795832424894101454945333284857525827781461457333105501258761518590731645928319812578687395684608884224616506964262267693254357940474159987575894423627846786114830544992054458898739355483641569338219182804917448303454896013110570825183257989541320585645047395984835206664967359554038015556125771467928766093314854526217405469832309689513209580195470996354138338739984690636052865872096281867911596211708216421540669582463997456505645845845516908066797347530608079507179755033991697247996787522063016673600703362624992330616861555054259011303253961947213275508453173402180792876078711807804420629588194579114621519639756542565112469620580190235454369087091986554466832389918471051319234587033910311983592780001436972079129477722913480176071731464198522796040840129678418212531899531133847068150786180144948039502903468705501310965160404927742118650033116386941232003481191222496459592679119597597575041300007578751934887604085150200900368814664257489649817426745097042807303684563403455917388610750798065943455443702207126339050927639002449599843221391285998885752639993677202991118228615825602461756024279943960949617382567371432540326545068877461679129964523551253003288155352487249822949493934902302608338852926102879659123641657492379837666794596936602242083329540298268416276407545715213763053237551109932267480428432409791947831042511269960393724998567101096280757952070791187507314052416926461842382378091647826619731322389529045073948814720319907052311971552569268351941398131282504367902470347703597241387581805427215489947559132219369827101949173792843417399977091114496312137710185912497548070718536069072446317967280554235654971972604723560514822291898082760119268887830114778410504677096189943017734300202848663057437191756300826269584887400017185161022746916349330163468011500285280934625789344628480687972193329934418596178039040431994292449885073063302519007637606539561023941703423034658730376301125331329687971250161954217471845074477337081381154220941155968839835626507177203746501265519219378952903251994305597834942166830544145392410158788495439595288469705502611289895116192461475907498878491720409486492939920153555001135477462861677884688939582558690696262388679731215895600324787376847869640944255743266104138476796265877992493731762953838760092143309881016026204614568318332777329883951452951028070907133210330970467627920358800249858603615108671946719936574356991937107782964872370227614168462699246761006866772816074949383952119060646831768488577031897806243347424523555887272102793704861040435414967353235208173688640789374794461958751517079486687420948153369832068993707619525442824940565572288081336492941580254414944291156286937908320541009138935691197799342027500173718671518935792858048015771462507138968631618404940656545465038150450057021344905645919281020694184618246916877040560929772789401878024858839053589184123109379171680278486350001939107131198569479789145029098183128878799048829752281987313254811221754209376750187950897073386926673812902597930041881209859817392917020402284826214184058762213129491790620467692307512714067855520136598031958598541789853737532525271504571355762192308728824881977107485420851219123003765888435614531405186962079325332011572393688856146771594383796983654372751139508922141047153150191050149258476357928720750609625923597606809020740927684354753890751076590700048992889614405906969560611916302421864929238555494770017966939298517077254594300861428226971758016752991042340991292813713470974337273652445232886335128937870261563407476589305545886193704869847879479724112977144527140208428877752180295981403188430251499935433197259597936407616966002714125116865874994902760047564357186376635345365281970811284058143774648370587664776063389531508264129948138703175030660699016757660818837828160799907020172778221775934098780323625336323847952652058456835747106135629735296675273605169176976050025365739823332079180850657957986019250611912558320320887564516162349865891343374228768491349624827508626416845965910035505214760676713032492409868065124821340418056488604799117575350445504424619060677227408740278355556394391687950265609553228182746019807290317474260329203078491564071483042536069358641711222256666416742520219625086211810955109654261071167589064185211212082375980763984105032629026026472759357094078217123418256453687157171277337423290335147954201377595117179882254650854995617219170502223424475816828050324090169690122670604922138546123122469305211640917319858032003528467512696972585631055955685184070903278823543357194401983576466217337046508877970806701780489974599841114851423325141953345760302309000689822713688029283358780548996239189631969695692370681805106208478729334622309109464143035540606198526209193524697537539772322952880177388318383273903720446293013617764587176807222104613038309250817945122402927846893232165341877327034978115855758135869241112582088715063020728461636248613042184277011291589924039812573968876862371411599490165835257607826366292871845391450360892939149454590377494123971930522547294707552338404843927068666984530219528393629656644116070014146967276117605858897645362402458522565961847556151837441532145798435469141333790299423769964857376182805257616149721241395397795187649961559495505161150245067214718057002245647076872834537022639304519767040658633707919684610835939671813995482721299834227310637587722808875407812604981642778339213710757903266127590115882690676607611189949364463614403499794409562401038390776111247433008565545999436175680590103012214857956569647724111246679685541110863378050744808223886363624144045445798817940836215316213277659818734765847654480433081574694609566542815096538507476498621877400209343532040597195951131885573917751414467799761582256503876062913511597717121027167691256365602752733594458004200248495086847883602368124262737930475340164311172661060743680497184877213572902272268282999667800509646181581570826166959746025214082820470404469518316085445342827339879622526168759933110359629339604565981770705498082642818688611273807538311051613272298238257918435018248101911527605895281179373662126217021565816279470758924037905241568140724787464363698627181650967511288577595520917211492902112944298300589821020042770117890852078414295370108155962911081286452401988241133954299707639479221544446694190390028799788795021841766843426666949532362840339402279438547460926556570675281091902708248991337219427689488820470339421965281160403905143106671501856503506706819215819678110362724210753365490138317035288994035865904563542774823247832583510584166579856205125249836033384855394532577127625923624770268896409947221136015276805403862908811382036740038813729908320265824341786170418272245746632441791862231392048556375927854425475136341189656755264053845797170227819765528518681365733397804368221397508147886019738188863648119454949820079898536185912464902487585842814498780686437334956497165436335747104722109365237171472651920748685166248385832505975197086553209068691595885610269276498291828071425031879401636338962386259179889932151316164420372486959919637584173255559636622713679142254311826888519039888558780304646113901088758972818845114900106961414852021518769075256675399173877093991706148518585562054037307352271315229193161408651949160294592136488522153764894302364260149853775608252692597307578814265631712799077035444689808913141180576070399036645416960593052506881900662278532320359376855140787926316017699357133978310647883876869118134454598808254022638497667565358453438882826179172672433568812861566593109522757762944252512419641568913461752135630946291670775029517876168596816787515333958035182684102215475962439371895154335918965006242320945925976312253084392064480777359248645145937144002033401182505252447633568793071640711946216049827241733278509406013619774792080768563533875524435388545178432488220831003981797941226884657539433446114060629659720053533209066725629715661258966311569126038731231843444737370020989701533956469035457001362620830664559898452693704068208855636860129843266092555397355470350052974781975820992919163730453675097968003433173094466091025813983094757257476474991310424304400890272362670389581799757820745679325986858403038743345791174208109903020288008737746308267379595474476423365126467415389834343971920422056044663892783070140784045285602794723688086143583475206533207176440643923436907331481295850039792711270227110055120908201984396038472575081775483922047788869513208277822762181623308212092186586905608853129986387353458104536905233192876513016559638819700268658868596645046224007952812326928383978131132403916351093276041604688997019623533269210440870006095163182241480989553977483089841813629578948794799221490474147081552933237665935562431720846455714378885895231836388638048989226758075935540402773014007115394988938946681731367858179677221840560575554477732767722491034506838836453333568646655703763025574331316775203057974582580155420734087737120489003634968182725192511399099866734937518590158913488843730121401080182128324351817482810462944011192152801218751147739525981226763280233706193239111796726498551547050893667842807225474692108402398417324721830293468275311801450646830178827886444313841170336398195880308282601800069871603441465668422343501539456917837287564268782464025915825558187172870423798087957104025256561816463989866198809110649400402155809749035072040112589082782773412792130491037252449580031840248038978267953661695863013478229889677069214801039404345198075624902350124587010248833093300626458243086417281529188100629330663184966575838189545985494867651546711435943741851118693952858085619215575897617761003723557799191077007929708670541291223623249239555379994422223698795117327971859297796917816602714408941310123840682341052709274374287782485876877060594124184843352861109912488345251766667859904358581647482261073916080569352076316959208292314947004716434024385091148054715605632908086004242349474745513627247862324503226587288841989197404801672190377072490756787305688446013776836089298484356884177845831417943450974869143397740030424184802545033987785215221972097042291443543550591075864175437349482629360123517744512104725666999272068919575385509936318605816066080334012920329910846393872882792111485639659588401074910891852426136222646976650338235000745945295043783066174005271179502748771790474657816271287509009941338758579554129388693119827357361253476209597771373491665121680741425719168008311905707857301594848523594870349962759513294131944273986867944452847806376527299656638513314826434679582314006708770849466087454324555352179748940820930238070840300018609274910695838626559211646818873269920494229493891279671834974354353991063587525902228786690337174810529882802147065275001653974728742470851176500891718386131667502404940395188207752130527673203521247068482234095900364859047945731616818137530823702888237426883204288851739585340640485292381438683955393334610956464818053782267690429798878967131378767640182399866466402218514805219547559147692361964631566149945292740143335776388307557540412934665016538798090516746994080603483613071669367980333767573371789036854063761956645290749609907133748311213696585082957499758240661348844459637805289403532152706580578417274601446871054291465748775720596927359734866190501096628576691391916731221201240039918971667075609078343154094835473986099098392307283030453728790675484784235954229747506144747428242129828698474133811451763967086983714468627797937600150318694619993463376806789022123538550137614481740672694874878303005914878038637265613153652262479042760511233385635508269224018438925590529927544444499256392551149582012424794075552921660723436836790843483020067673782763163879504531136655088539461708860196301716853709302914307714660517565692174971345099126992260782103646689306202070442723693680972132922671945724200244288408783515169305402607722516970472682589636236524589397161052575104196441614908248647686332561361715307863576260952285910891217907453104129171119136061801025963541058386757674034661100968099705695822032429087529236649842238449329547653259190620734196876133255922279135873945249145592316843878353958533366096165085211236934868260652259343048373037849181922631899912765811885268326527425028035337821416828582157453901361953596358536379727931121533091354843000514453577321063948181211648770153940530133462651081706097829535081340584932069531255803871470738924437874943712729265753548535806183459126618015379157018203100478092229183333327681088828334626374343988484438361688392985201025542514339488494336883897070792818245829885409877419360217938766911911449689573634305510213489828235335637010851433473089216245289317269353835807826114047117817558430595515859710338239324317972990012334870636112519930610638346346099370336187456898352719514274444381195513239501588914082408310863534203746900018920312728301781090352910224900551692746767696110724931821137016274006475487209217025575110070616855604285242076345241987241850550171475780194658677701720257155553884547860148512845489397682366340148533390503523873955584396265631424915786975598000710796385762311112151813385110349644277956767363524563894660792289687439181397347562332338283738252721037722284870718945604241301456542834361772535869517278534734373597670796096991039879392171777412032528859287352037280363271761896854812336334860952102690364869402257383659840372550595513027223257607948314952424166805581829553620152096160817131110016774508975421025365403112877146887620935789800840190218431546613442077950821115314938357666354813986411789234398321215681294556495417356513127926300149511895254344822563295060918985594156543829730522846529525015622361370932658825684918407819555802328095916963959090301248804561086459030149962077008886076379291082519443944240734568455704928827055525584715604516548238895044872433048472877124669011743985285788435146197918329938142250214430947087720050828730200007060886065735006126692345443655480163683477747958838315145053178659765838601567747664075414888300227141289408074763228052588301234758570306750034634609965554771793350158115185060774645853765237972835920487543995014260324733549129521366519591260988264458876087646550089615725131797075561261274978434492465910267793393133482624643829618025683577466518502382462455111101412994568929511790223323830958327428994397963116601937896472852323419576613481258730614432065914832630667065044759577412066613083321103875280982064561541124439344574418866848553216518712746161640232943606498371900945335197278852147800096897649605870379363168450949632693105481056077499718440892599648532546504427223476872221961084811928096904778261356730816840482863545746404021388728750734921069806033650358424931387390088221836674834339286211123323810585952497608486142132437034554592079504071547046139347445254277277169645495450645742711809167103912697433069879543076507465695624641642793802542446551837069307359800425308158402830563135388949258436094466797697125955971265541152802506915047264285789461595634256158537566457942177661873845933537746165945599098665973399432001571680296819977676134569789381192887772530533170526304711325009123339548845980599866029260292044896831836492768555866418451471354642960180576454706822375699480711449883658386978636921662257009713006756203487370586524479355614387267790059567088113135970235217087791498055140230777167639975327042229553150688753495076351197471230573738108499652371386480911356429475068103174915902343665403476137213285231689415153933289736051009636198354377381814258066764461508637849859642117854543782453807395286796174590863012778432149506455553781971569687542764874227737465751885039126181749865909729756969752755213051391893202985688477232260818548053504634974624808186942113653795445132956631056743588711414265388384717150325901938378157406317092602395085258159392820963293857470159153294541332773994801130026203006603200404790117096805629174162618436207014716855749083771299500550849655834675236086195496980936914771701433950866931931158856439841063461733130238094733775750379481360533414824166172646209577955355258884228614548596884516779272212593232931703791728179568120498412453375282039228260207259277956787074684675629282484395226792653222618881068913611063587406436662987915012799650805526862676052140570219109970709125482741391779420609673956689065274054315772937794678436402835627258615337063572980998596455757681663836177833566527724860002573380202904824425266242332005210763126718546661731935119518155390213147970083678793928306382707602205941246369054211114388688878936687277831800470922076958987000122703479978428305003807326354866794122984120900854771570637350640891314967709110592244891017788272570345562426133472038309331324785379801493071841436732076515212197975428830324049611277359035677549587284387138937015093805626950092802702800308562049643871342511189128528042149265787364563710989654880136296406964086898469185344767397060278533739996240574236620019702213990651219645613975638055882675409372193220877246152086037476931207778465650067343737642786270253684346917530043304069692440598538328174347789077573741043289156921056959354619514463315743137079001823173746224390984720970063482414674510579204977864375731441633265818944248499953501410860740241148879736351904087707673080691481969683574608084000578955523560532716987652097800304364546816432951817673994673552399789912049184667691414792078872050121980883251170073724397459749925085011581572400483172364919610596488521934556250529255963408790812570601023473054932713318934163129382503206808314249285978375249503611289680303691118059295758402032340991525268162213468689492774763777797258763334632324509898870230568382283997525666171172667940667273106855657076739336025168013787233454648861739064209136873859720920810659710692778460800808606494638626807592604732253619546863262351524131103195543853638796435066200843054018696908283177695167548520031893393525976549835698869156945560032037771521111927105746041036676050622452346847362201094151474826005969519734523712195072984934052163278358348434206358121318334493479780422813914936881886699345048768360610105862919902741397643904077943500131444612314193847089422892179121958181500542214833997284587191521768633906136625804791520916895328594768194262075936278572211533094003321421149564099563551528731117543441162819448960020916422132832262324419803097810738999683076121184637013313256356570986606306248809647078496440609111098221167421944373048525349628471744660166376137894526715947575143533610426708442670321709941719416417615541800185345646177244586114572580883075717657386595057854100234734843712776730477462452078539479237863744122851291921695518178044871500976474051014660122845254604129673941480652179530884270155758392635844216486286253215489276986106308046340116490082063329058641143058403980362595571339304461975591522462481746371435300010254790867613038154255047709901460604239364585289825966624234469051752527627262056404957029206080068740232715018103283669113687679184026604232625331783321295497332452673422489997935385486196087293023801133176570894060018388194006450442309027205871139135719227736269112801231841648863312451539505856874579676191466710620521151466736811640070711113522063661870144705026547627233768682155456549537667805389233935901680532143848707534894003307221280913626009023573810825422205133672138366190558195399181106380571246565678102923371002348322482878633470792151931688324275728887056532331966580191320093303885806084756357760973356225505963432935879535823188660913820535183370055086801363665947382114305779044997868676078189919081739673011484879113310445066990260922957521304655378256340562356516393393394387388534955945564181332647355164139780218967418765573306193669004899373199197823375246591675292156437247313030923680368047746041871390738505876754635027983642000853644587808856304892102920994717117705606828734163013601486875760683350554922749821542475068971799981883616381642376726902625597268421867533052837498642489133414568228855630262123946785517418608237991720691528534319188837527462422594041315295674790181188215628861278888212420331075260190932685604984092899503831129492984293704901425765502454141968949165780616914978183742526191272985897621722155994041058352841023611869288854884139888849872162581211157439323058750303803261846008052967941273851755982876185992883276569358334731921946377791015839164807325915359722035058813402505802279659931541831301252873821919229966866275305907767377256551391787496981078878170482488825710083713652989875014665898549910431949775692901767588156302758557387429070649191584273746842941715293346313029564695412756489539934839531301604270515961072008700854052803232483202466738122118050040774268832665167308220733429882800977009697237126110947764369598221541568641572416328901016200649068230014940990188669217062357042766603773066286920947346816415236402801904950616181372301005363513982362296474144790859890878248257302154874918596249739218958412826117782013147132972319894000388681972085673135630347223542187250905809308614367979757002395924689003879470514327313816922567668927846629678793594961871105013631059434358193896485788098092382771303615557431999948664621393482645359457493974900135011177573499014408794802231124871631090718999691195720575311930364911136581403797015018311371161625981054751983425802176304014588684327551717477077788654360853304972972461983043386285180774636658561396549442713450707497771545557727040522827565158463363497884579120328445398308950406056363679784222843901741495623056258088677513103260406945907903803633595893259766142948161844693037822908879801084422906401046130084930946311903245536626875529282101648670965254590713316141355313797622973020851653694625716099101404242412461827274395176968835828374115646967056864359926839019753159253187323431837617769586274653488980148853744798355507744741102610408262187220460084229291261260855626018464938819016398120378120009389280413057350527862756525015852995793782753974031849170557874104793533053196384087718103453937191148912674121665809667761806764675923536746113899975804710019758520082544532476334635751915177563754786748834258943731003636771477924458530769692360955682543740474487103359879219864349745594566175092935929920062128917927303000423308390772963082055081139945897496096402340796827288780206951189431442553312413282935935034412435466646125149760066906124986898819788528038264436094122684199858120110692861120532792197277181564026009862202099518102923886581628290129401026945563354541274831617820271317317718039135501263140390334764870288838726508466145052061141790129407187499106441674348518844536469146100947151104613564930917549678949780895449808795004758838267915575957865342152884203380349013771141422800116422235845599283123468060657771399468972194406042428924615441105435300465313679716899007524071688400686533291182059925146621472366476641705477663019805584011051906562112887002813369373131778302317010860768502418540609827579842437107175630634060062164940870724114801420711815033986165620894899271065143299868993244488422024332146589999100505961219076445422759527651801562427440495879837422116963812364140390912564372513901512688092699741413229369467802767198851862019208075496555473644874987236904642418485704971979797674120232964752340914976202578240129622581931299401337518610233416980580994370752608238708586608979061413074034678639533359483756775741988230972398488117791016736391621239229145959298243218772720986020759207145616242216413335307627249141095432676868209862864120946936591111800174200624871055408840987288958811695086673536117087774712732048933277579438925132368818165735105766310545949784079604325536713568874555937540001862918959045467542205575148063319601413063164455638063046770975468397393170631248683010855623835485260848710403553572909517908141426928911610044624356090138193359566291435762701171947209809465553582118735639321572293605414885989235629157625092987960669454482697333778966473281533274837803774086770344816142551456147844795917468724366994277945883418157297494796899515923630520570605461310448005144542107595034601773857167691341011163517506178329607100075292752603271399232939843319636018448657278886557721137263571330631030735888709024081846966254064086362823351105442718082192774541049209609017180709804442110724242844095559473526362575799334916577364180807331308924839457140828377380171263502353677579606179009085318603923965056173327881123084046122261680621051474584839687661356182635847953157562739112347254444608872490769212820957121712344954229868925665078359283878200452546513449263551540760658229120273910022112593643942263665069264754573634002998685693752340804596756629694033779814568447518225774840199391557884638101150095763367585757116601989599331325022512759613503752116544957092567135679036413501131777306522751811659597091321228505076422988402276268732894837353556464750189004491568124940157356002059425541749711728111296808177807579731872594777932678203363265872055792678721080378734050500475625483429297089200836034090522145863763572658404410713952811360643114017600882010198423086530842020814474897952249613236027805457582706630379212348212054132595844292302677463596997762227354532213686692323850889748275626821184596564005653776684176283233084206370246132616509476138803384633395094604715366110419965176024588296202509204789694112697374534073511095592553024695998368777806293367482870087040201885357829655760766774441873065101221942989488211416769384886091389739778925857218472536415305111456293282149476580294252836675575784060397113595426161787796250483715713467097844351507159139112988012710241479145501082745293416147655718713238670180927433070179117213164699762532587842563713293236827821063755787368304537454935555450855441485459324994516601802910200702546851002965754538028331870327866057117567776443758013209287179034618589887414280452034881680543768901199661457490641731983551602755989043630479844240379454498522116598924866372972432630022133745088012888837073262729533389974812423027432552349559082656753923343421513558818006230638340807618770184774150354239248907172930656854832095978980609273196740105920233211451720832753851760520714527631257519603730581348351515834110228142487913172650879404890775101484611274053551191022969647058865646041266790467349290128725206132074251486966598163203446866407449054714567707432710106537603860669286669181246510829654983716479384239225259212919368085774997627244131709826749381758667608457420682446259577646791524896060807860100328088544944066102208458188200719043198892029975776701161971311626384996673412867399088315807415418325305560756045071951651924242778033533725872940979317142074868513273121144092745400575486308400180080878800466303821777989491332634377772030755843872086691771679021253996159899161129077314347342866316562427071360102238400779122011659916158272820024141614476998685035008600641284684250997821641903252689757167867335130467954573959040403096014871557013734376683048018237166197830269356560005418383226655943890997939336440018965579138879063320985998759911510690740343874187389584045753177964508639679981623471532789539559490517714588219997927144230423634075820834785621634013103310134470094323766855256623741819958009510852450363157779337486880608228535202529400783416856607943972141667386276512425835638305305480887308663174386611290221294607678005237396839928926110079385330733875911335239308951065131828020252174759413988489765329580635973751098852245020937795023377579949973449717302136716508794596443034909143290162553135863032504735210127349694747110641231807403713575014894604539316719620438796036505279777663204669622367301223940410104422995984925798931713771830836887546962413145776622406068348721094168208415674472683678523470364038832321643518798652724216646272743619319677646983949497396592519645716387180891420652146095499779715555356206956935068449792930026282579412809052886971018722460613077307219481764905103647918797811666340557055069456864356385045206167336490897135248194797776746058691355499404772254547245825274406104491243427997897565472041590302925054249143465572353933584083900031072043124140864524933478012558598762959169473072180839976949743949438690214478159981321955273978771593092525378757854545790305229526072877723894569840956174987337536659869043921408628891962548810762051709835249459638773723411335007051298890439913901539169349776388694012203700680246123410159707360206615921706900201243663636807703898233358589430839423974364339904505415591085836756801771315810833136279152788974570723700027900168182533619520743404993867790286098042063308404288021501163724289835848686667532699229819787993201493890821482718504726517449603798596453305243648557561318336028679618696418457514505931734190405197891508119325779717722902236733394753588760947269951206264469176307566155907104774063553356112016174154400809981749398058993078325462500895774213454927620725695695916395975283603835761667854365570632745481130635983033875338999184812885496358723088862262615732869049906660327619839900572676321646473682830422307249698144429507818157091782832554994390848339872737196719664626701545240335639473379428364891464170301776848870633821821038837171169000192865631147094409740576122201721867962554630334961745426747192993976900185559399675638533337416563731988516604908208868097540285538776077776835527365900577137419320341508337925338914922338839883198840387167987672031998583297768416092626360424652314756968662687751004088329835736146695630541524365773285832373899294668632893448929957585016439490973921058842558534629480068652443066747332346499051387074394973001563506563036743073817811019786522248288474588878589443915967068702330645099194471108974385202499984435932434161311257914295246573366931990205573302454504691942100330086497053774183344033044724235984727669494419472401960409495305375090401945769953783696422642768444957588788773524101636055674011924553120699294274239114430181280921113704175056827920637789581823564309959830252673359779588583633558026032397458644162635958786563234336376617869702711986625887592680278106611922127658200280159003037169748156817486577645430076088266227945981523916809524134997690150475320321720098742853487334935882468962400537131733904353294624014933679035154395921541636768132845874635362503259769333238115948555632581044122043073777032090860051758607203123381192070340173144739541059619083129996465428394835364322624349570322564266261934700593280263837187295661849807745257729152289348007493190033828032799631683237757078323082315119287554322190110251463794708312425958468285239092132262226319681902843920566789048133796156929210137979570510599288283759217533130384292551795158113799973374210126833535887104881274937731419173218606739168372348791069164795888353068329039222466027595729856490332982874569184182149530359610184008009905758355837203285704421757947977673247574929077114773841129313146884401644797266482585902954564596955039897885692235095108596378107301031591737961310601258448551064555135807111290664185520493984516927763887918229712625473910706756750424335689237175650325467508784020489975429799277312172938554172285817680925646542129589696835220331541854896592855069663982047276371306073766290200718194343874821932822236365218762210811221509282406523443483951486227629183298788742357493740183104910093662390943414753773516482787715401123232133792055572220579239172534844377907606196836945235789352349518024338767033159623752655879753824507118318456660482174222979073504920775145678996509661633571836509244017452859387631697272108281875683206333361316203825083655148675179991609338832556571906637884173327771846843095145384551131522629141803163056289896748088487680723739168171820135135454343015266405707098078284931179215490593707517596078277355702646777340413181890478332763541473401277142617292594008916602997458994984349446529826856133947232660586638817485175122376149293847834829293836679042931668174905731790535071330767049612822201262013904843910978495516930780072645405589621188402114256704384853992172592692053745247575395788981901979356685429864202486743250442673875672994926297640934647548696697351728169215590405830002170760190062501679567773106595204689344930598715283385229127696117681685868947870372228462836904428098992808361618114263563471673567880479636829793245594162331178852500369854803254142089266273677036056558760504710644971320427098161472708151888444786843470075750616006238939788368481467196471839658175136023419128782683848263214871422168414423694882656542026969565896309614061693321881223869011506934459187769946397125987602316115313403192743804453263785569773444594771700823757493748438157437078190176112386850372104655511311571880306971142853166264107216367673727008277765208214873544301230465635186822844950708875242955942883323580097475915202489152212604080396289103652814819607589741418457192132183756607179441939258024121291352370395497567188461505506585204879380657106380995800564722666385313470060203403732792269733077605438586452054183519930412655452068653576662093038898204358581979101689677702225082580306633012906556862804160603295384552522251515532299907491903833069689503817887930117636797020262121433478808266945708745480152517629725369801070983593397339372163467784354962649527363462261844609471160972208676775428431530262335930387903367109985744752537155833150016160595097530289399417908111241392337882161410852424781968686222836124501072587573271886687541934946004041757742405948256993651756006022422697961039001571262046989745186330007151997862839282156740591603944298116631122143040435701708340755388806278866388664646961529371130520206171840939317740934137826407878889047982417853255933337704748358430629836855948943464947341248950379230652834874958661892764878114494442644558718765104176184809216373158132050310895910991106094567854708067131646642402999846721209702400779131868633738229174718491038741697826956767785633474163547602457734416436011178891971794091768897994356477946685328213825029200545819709565711739752346438899486170184831402947179598566063523376141844831992162804204258625330168776571563701814783008029112888482243825699391495051131858895527797901984308852409352693679456840715001660446634573412424755049380078093707627440475220252719090641315820095677360875702923498561355091206525809092128975542455679862409971129456682709200409589632653103327203483633238621116664672076153235336179586392298444225023491168082587193800658122628315458676531878439514309068481907214542316873370061869714524037807182355564678795292521116331640808315610688491882673292894275993741099414415144734942236263309918866017570222396103172696180037975954724526776453297283883801471918755340053918338166298426649389427466926013055548238250380062945296620306868770402116041135782686649665294814876029774012406886695899513871142233687475431910860163667307305249111550275543062801686410257337191342210951165233816054704537577391152654443314463284254054476521492134731055681393742430261131090969652624340873410167725894086632629124193212968003428108356040244863653245634162235311573667284096254874095534580002622792602117174288012145814215385732767728998622947404190478021379533697775788803332404407174874406789203524752735754013825708824675234221607240767732400659337500133666233756088853899248350373663470685785629304581550502523947186223121567734721707729694958134872543068171028316792340213952928494978223022358722904593813305591239613225817560078281691882180264623302372366925421930819132865657492716660052410618073780876622044199445613143191412955162423752889719532873359181306436431676032348093217032616281449572366875208414154356726073678752553824890993052829317220727281659327056686880711404589850447382717585262593418489302201350244118393978931770707574145252455049272364280615391418742277876282701160488552652841546613147157585287695650472807725141022102589503480179981887728475791650897400876725267940502200059226454836005431171386925484964189766425801295114496863369986306934440950659930465342635189893561376589597738184348914672344171091346720250191893564913976772877296643907857837131451977883576535073125627152863084322614269094194822144650884588704826117654553868464398014335901408679279265690406797122685347562126697461336405626919133354087767219384910415294463890902043474498429282926419242725632151696898115962474014451441762310789398560245212455593501665066054082801621317501331101583299564684171869302964609123190652196757892886976730611457346989773830981576095275102769989086697075961371515455468050015377101265888362356825188061331723764211355744385707129361860002846413967191407827968595835867234370302677148800592669994832658818252232681397461813573469192488182976966275464833648429337398705117145553590334937304330229991720733728219998390123657459198901973774806784931699690411148753810769635040148969223500497191151722707157083493867038492622718728848606873675516333448030690847672166178986640563831299550317729704012426320598475858227457188098377421653826024387450157955000976680851191728306661252974645455276667436954546749266813121994175615221684224473093381299284858669096981010576263810428848885326940072739389978583401470421964944112964272430624712957979791865891667412094344254881969803975593651244492952435976342433707260938424182471372774563980874769591544954055299284179259899508707139173667079357949181932175977432627830101629870919240989382670275006494328462996023462444156371200869958963109175277143014649391358815691261302574075147279725402639106841450904623412753369373308460512849013772045829218182708366816810330677975584740257382450799741517497024909613655389487543293045095208997966086115255057159187079700071057781957862115779740054665710003652859632410598507437318391241529546298763037992135968976187130692033721997569946474696240335289236182493092629863294456776979288594076241485015141439230653955969091576433007178423549931183551043869909650154139838499104451690300018119929068218817018737329514699772205736327566917983079878234390090930266418531673603551976841018005754587750188675000115982203791173144231887046844953931265237045090175641203666798500155377494103237309539520593181338204396946962207276948127092798659386907478548495944731982929712687572149468383613291077642200982974596282627575543865199418004569947241819211132976846350617601378939865186393322626098798979436932451825977166568431666036327783653634602853373357234671441063057045200036520464992884245244385171496292703443316815181525055666512787248770749126097961462749846887381435425918961781123086829854434286367152188281362004667576662417695503649842899435079192576948395034781602610730879540193056540593458233433469989750325005200153021455609174714626033511802097499017049341048219658835968664810154059127435231452487941680645179842747639824392395452773551660349525322838790170227294815873676390751789295339612646687374705115129048146238751299418331511849180527970439111757483607457898263585881343227928044070050240021805247981483452733502498021713804323388159678962390424687071586999347761686487486619008406056492640522303208124052508539839927633760717315559967159054714236345751287734052827720952524317975784252369823077016036903038174599658805194750714807207294076655725377385863546814038280785476042763846181224230761027415024692582186301237370172645923594597245551732389353767668827662915108059275587586737376453505015903865370867310179724715934625182305146791480229267173661605089072577455253474825397704673145300981392518663676016167836051022411856442578511309731819271241482407221187792664598868598804865085246955528813607907550181519009123807299031214993055701361539394736382049630396565649501089703039703674822897990429334836619981985518737458108756917083742872810835237494062486347768727738833950313359760515946227287091531476621605939428747856689560398399492863074256487240855073693352775702391046071289741976101848299342622998943291440449243955395376821952754911267926207367789294284360701480298494275628071646309363488639710119470709552057320121196359191295702799717512261377351624156662157354863857491265511324970120742493632994801338026631855714684393765422392301336317639495960657794747283495789766552198383325993194990149158477996155206034645107087708096875446392743821818684726197566443482859385049232964293903092532873860771184743436140592210224027891249157365632986943306598324002822152290914143690717590559002717116909911400182017192962275003238955322764361984112334786516882075524309222420497625976963859079624961579434214423062900477156359489957347601318665661314621122132402816339649306744586402977354955955013835857099498274568861102006611652195129963247709881709729002582213907493222909292187237899678142367135537912477782203392521342229841068314159717325434065762972217311522839988291589333712461422708859811163069705969020310633496724145656480654251776352816279392279942399130221234876899820069928091598247441308907939390319930656450867895830622390848248542242349845823996489154356451422769885132154942487721509999011968383861858427325971871502151239993654088356048635743223860937476789819508138405056645522680884412367990363301887903856548443587157439826118295699077318108186184175430190867956012916738785272046951531042521382365680388060965948035973367576311054539595016622730588583713817009492543232459077620903424459299218256733554603512645625901889719885562017400944002985153745293647869236228055024971974609149483269335668963346818830223711115137721591145887217686423790108645831198277166126286881835873273719026197840849761451799076995703377332714382931372848744079745868456520923584191977750695743499508788021095124815560894629636124103498750190335400668271866741796655451911911588995089888608125106919294979847856110728396236036351085894493919469618767045308043622654205406892342919877379278886932314460004017924216787790833996318198631114835520092418858750879560256394192942028800382867885184464446353619122273481769428096481534737071675818064148202331580653322199705915677677239379023063129467765892016515481020828679981546950089813249123995253571400103519290023557647635364885389233945344125779202498354466099669305238774311466727062303024126884778018548879928615034249215389729539266158393126377095285931497976796115805924009380961489441488077506950911397731931010916972859331098225818221904158438935382332471112261337102117178163416664177657961236750969749840706962670362061915197742755540702937388479995041324963273622152827758644389353481075700714913390606664971726293894126853394635726809606897915065707393579652741584590261573081683335652258944395191360137899964096822938308403896169976450411100971616235931807115588809916454612305187632865656872462693734351931136384840982986616161268820906638890287124039949206265260860821650419970514328091120728510265208154883303745642545891575198923512862069066895733941907163600692488936083593137578624099431475292449164558121094532210573416384261888409912590907666981627345265977934015611747837144189853654405490860448205827729296550757339075720639944195153598688992152545122625549964804477311768484739332868075020741349343991049224493722972193739368024525697385640480202565500040300665987287204229101756331084508342517376896977950697306414763109991361357389179024699616362420815014922947476770127274713629575452357046289143277667241593660282844466547777643862616405061188808699800546527521345328623677877820193278000346046422467749168406354991125423314796772293684995658192448771176214537158433391623117160650932006631070323045557571454335132815529304819782441644296805391045012165895665872632733157523654139768584846479542270890962634620848233038615323214385728995360584921550338978319267210994798490445910100746531390621646446188201944151560286341306017777997876473021204841387748660990383785280536070528653065425557830268154536232602887004239515212618504689349387353437040639965991516415659205697627554517451281687735296311452259205755533144598352242540388880107638276465126976211034338079532499808697903678230422420235658152339286146213996581086936541381663672506328431043288148741087441275170032252535015404186951353676168037586792993787746530133375534508329685647720822523197570716772203106821971149425724072276846851608322622111831034218598687972201357832507968498522060285167328001161267620097320202937860134899317889431651613831062138447742050174005819752951666157260607163691170164799218549756477560460084074563936646610001208391170344991124580679738509558932856402268989833536966262016958380202860607778144114978873130395459611823203180899593337336115265498666641933900500066381196432525200259027567341406088324981449053942639191599218248785842500207013420019289352114730834048824486009404685570356997236388283206990989174361807471352737594387073084597057377289957693861295344611259580017932809695309319056926170335653733491446303314126481068973780566741614768703018328286432975811194700541157035511658929165346762638741544309601793235410738110977149887702895576372649986895430138891100003933180004464544274249122317653078545277761021280271094105680923035684294901395371678220742580294746480574346315894179904769342778488671464755644488384170514195966299454117561709112978651078557553957217576671601952026051111552182776483203786117997326326350960775399063310769244732974247864619498220027687125572727172342311074163337829921453442548021943815337249173161303040203815519451391869609542978514879809724458282946487817257216958809189843234664656345923443405627998282025447196557215104768063382911781530459493522860050962276186796521442642392911347706675916319556429456968759971227692277806127115160159829376065079261230000618847580254903098750191229624063693893120918270559186801628733839422134111575650821742117598460940052869235264998742826475446252820696003954037660482815456939541597146960409685050832665960062516483252396625201929518646528104479456235704142817123427825215379343779770324656298858405286200756255988838100169310328040950689692483564105138293674551755964978823340585855659293793966241099725608007338715529882402111414030347350192604152983558131592648108196648563845122149352771677017665240126205534078620627177525825461065332480630710149020860289519487936224688960064652862485694249078473883920744440231515148776167143896936040190651166756082090276225408911090069863160201277111210010898004033918476009907869004001212398114875285300153660854471759578794943810023686913800763308843526375467521030296068802089298589773104601043404217184330574917270108054815127788680681922475949541173356500513884047184013666104818699436402605483651415007049381635603695139320041971225367008997613002044868101087902117080080217542441802221130146259420923976318435601486856224508555987725628920549400421677823876284662164217543320337792897195467281718048345937866648813058663943450338889609038488324441979839579583475760122262361264526390750006179843812476908762917758576532531262695695942147793505239162373521807709019183039051007335705804720452098955619097011250580500596294720889646299696756119121256835533474073772564105285373514406773886752833509054528315756075555916580928239317190944117980636120789817140066228115157070000444808250090616018434384191232497292946816785648120466243786193649757443661986898049284962597762122366833449298958075060882010457147211166621337501519064071915814238119041528907172718329024747684394127308462177270922788890011627380413936677222773808498958028752505887912690971458635382207149685331599343459762292982745849598996935794123974564420117933974420133702812669201043536282021808515663140750604860845136428032363171046623438439264201116097153308259536389129215049847227018058515304644915327870490252859673780226546213427653138515298867313990549844972555258142292472375976362732104361716611208639574575419665572787610940509838139980935628690445684794380936392809485444758633630067119302705944589859975164090420627679560852009255078747917996174506498798657055613906415574337945260943761331693634916414107604570201030725648395124621243746939309989100256941347242383051552407843364493452283587171945359299389970414950552346926522320165984933298628814064646172654494475517635495798646489902140408218767333647971219504807454230294645914329894459765987555448893139146044315985329048203242303943915652007697440064333695492493703848561920975041340667410185150916253851624761682388778131183850768535198938198974897694381883444221773662213478009319365429317662728538303807254174688533986979545120002854045380321804805701804945803129609076924252493913282656230424809309504916096488390138756435294020085431050915416159744341113453854987016242751629048568112561734968816199047332390959205670237126598351115314781058185145248405969537150417234461074759389845853773644040559053203983861999879819258492089468504382086812175835873415487802470992283471050317292160228115230061015195056559790663118250315272952191935449295305737853093878506366344073631145105654457455864824183352953956479240710461052274541708263375328840782503448294438855626971790186462150321339218693161232130854509988181011429440544410353096244191338355490147101945820646557762129736584953852366583944555620539704169722578103634041356993640266635594577028357436961149100101043801177165417823110570563966367717213270595435598385593673288297628334539363930379125615663775855917284482126894057160275751583822826439217000320810543189949319355707589901471275934052138740693607181131135722168032364778291731852565304331411608877365535017719440498521882083320466122759849179892037719996998760160934403286652007872278107764100571577963684715716122251192281420133515307031576114293988495688019222705344728806184583461327522091583500150423578363925447338355254638912902316055210960099777128911217375222379325293111528492027625255095519607857847804690211429961637201812604885284667090195427106302745438627036033275982658578441794125093120413366339137886571543696213180207500320865278054840892822305645691644311684525534354914294902335336127271068495534408666324255108975973661967457821673961842221616732527355749032112978395727777338951803207927347594376173154514493260528455612060162702934356843569172333936473940894041249658126703625106709093801322401697352924540494646442314177339092311218634004192992156706751261608017728364424848840499761581417658760805272728230964511508912651486371696692102431920483489683814060950801547559793210792955808242265978138790323651573795808939250388749365176184128531394307328427875183098715923421400468827421751765803980695385074217440971040566622322414888906143857453710436593973391932615058142085097108002153878887960644111011661959108011003756772394439887195625245485898401135013326110095994273239100108571122215678285146709622516585637213341482146291985723004747052711242414782338526986473084327437795164731443616925935983180507649268352454588501470386572782879401603208946762960438144218432052717538338745812192468817236486770247466247951922570187243418798689267207932005688017888301951395490274207678104649978019474522180525710485801442070453248243097074543504773190128820436801164872556926240395237605577507906335633229839690255838422495321032528445534313186382649311435289685184250647164706798218546564857290982602985148219193545366295179978287649849731249967107631355914866822544328583975434551055259001724286344679012716537779216877340170839623020124831358012160753512699128971045038578245892130857548163895734541490223869096608843088725467457125285683772050440710311514109871229232930199475311064209326127658138074151317865007664728576457451581728929916553643026397275803235599575994761791123353217901307679338149400588693598792355865237496913597163428331287315150506848217493857042982961940490796046775711304927590325129742106238480330166294665093853450396184375776754073873344498832630900619594148636981943936076404375407580188137066614057733311542672599324604836148605162807053612560920496637165816803162789869535252628217218434399044760922556816214200871677842073341455941065744717301670759689456087635133087144750674968836894976328220524153718532255728943094986107552482335855556541861064283309986078183208553976029425952277409227235982273829173007015745054009339203011068038599793795374680189545174569045903595347770450425999982111433795898669985858448293171732975673894617721550545149471092811870734767501917944862919053947019658863220182889479684928628296587417297251541987607909120122709919450176241264094780692780134351898596082339712782800626468908944008465624009523646224357737842450726628347315792956035407191994876334722581935523872216174141793124619696823744103504487508902922319993952010770319269831385846200847824280176959943274851381127852389405013153537674063964534233062044859167685274548418977121271820274014869269872815975693572813972520453474888093383129653918644701837483327291569429146652601106345895664099921119413448912973482605125295429150823374562203849141593052917550165655818800450830071600314408535097650466969657378759212792523371690812854981539190323801309087799824665095282712871273515583054309229244047164675819970849400206965874845993279739152305882313699404747250749011136004073537025990617576290872997385063720258116596005100407925511138461145253347714663146386068856668397694785029671664162994540901747841746888370598493036437920226884781307753521199160377279181137863553493965350241095188066568206462800780286307907925476432529660916219999313431955456051449241792296154809569368606833670280248723730611882808750990328137721251091001953261071760433782522337516014313945830389357920265932840824965408158164116807868467690813028128955731121475191713637528510523398544641898435634721537202889854609246225464361432743593528615418030060723212828429236618685603410320855718409710421604518603666047590546354092021184116630643059834845673273284702899779607551338662400166625549554356328947242439496344406036510070560977161710266590613952656990987475069756323107526066997238436458322250772916392148853246253547020576921481654230237672163946142717322985497908109707348620208237421012382854329339273749374717148349588925451574335406028096876030475345045199980405118282009138359165952819058368378237596869388622050366226170082253321036879260597532445424456704175806269976460040329993277788228015024467141420694406957579044339024513546999556562057658916259576474537581220774039454665616218298801546822398760471565497404641371926026716909481515904086730866307463649191942435781828327992955405548269913008121041622655750961020582233511077935160751097650994684433148316002066854905831680529922410718954141292126471145490892792316608806963532910643159606492215990816541862344234879920920394261719849690351517209492854973818225728023252494648289079313833519203127965276171924034093383777841821314587297098167309518225832228600591440414799209511079555205857987461307215341128193834272261927793917620175567173280393369116478073664175654556392011774534497892575755118432986456000090569718858421747627103738872185923253700882319123075897570977255040421373540535043380629012069496143659992875175649510757567424381233567673946552715610537553488348265855928301446422783442573998331327790006067130697960434768944318457631229359098252007842219034684062767623180656946744987980222162419294166392014898191251554609351303884813381299803390312958374436138906446567880746883642983081629201124375804569461444384517788878004740878031063418910774057846872913938752149488162115045091570786896627131538338222520592503408559008322925419307076552663578851709517819787154404917002936291655224151028150635152778437009255026987164098204666281203110487589361452583420854990671800932772652663262487393923975252128437912794721513816522280671961554867704828715049211002733531891392129871605326135680022154015223446498525675445883505532099724179516081213225544687834712547863090682963536690336915026785721676863275255402669785340417876861434973527784405936508506212199391431978882231165242787532388710807169082185059100570455994453050586969303243308575660623486003850824101492762232077621796090527646382961054491568209632867270859212155580411791608342685105037376730815351697934317161280199889553519480434154895162646625014643088664819381950742067081139296462614521595586835391535380008700014850456020313471206858428973902093379697169338819797659758033879124242234918420068438274302517845834783629322923194173694294921835242189915325720240299107462308608719320235398102413795372361728251911918274468335574715945030564366700251185188963174019161458082006179564795573187887820207878915724040165490691858233871959171278353013391180862355839353686958764312371930240431733283357133217668717267851732041607970740825124683708158318252855882458292459859161718472944187152810110867843074969217164686401508676669701614725162654492186923060785007436757896488231692060116520064231067421356290731356474131329647178679102229784143031353100578322987394788023134629493198740438891835268832527313744478407577644012832642147938234286238707460096873078082988549553160882251771634914004224610285611768149120575927043514998574432356325268009588287553796439778266432158374322067024655344669605027639085189504722783146320194325187923847094055082519463224779455427585046837756497752249342972543731839888096877880055627987458444549303938279418217989314913688987046790312048462000951465649618067287572339099849068201303469174816155257566650946452026986377962609170432097069412266621793350437543686225860760327139947202286215951527857315214479171808106085976995735560750375457500190489371792605622716448899710179080906054641527136890407527707936078807768871680870167218170479506081986137410295494187385573533220584457610293470954516695333557107152046692428023954407816332728668045973734219039932281204438239443777229439429228956250443202534588278858848477595936815250188407982597766403110966612903892480288248538087412747497147471320743364138456163426250508019569678693196384499099781886764414153139606742736047965144772357813667386200991979438089486681339607097567712583607229689438769426875679193844002776197029599272731344158953815210335210686529182268534104906959657929844089304364843600133913112076141798370743686604193812361308696751179782545365874931806512498632614737955036516852848905711054127587771128799124731286938911112976527690338165551747766472835975160984532336539437634449573568865734281700058793386180529825397340322662192296405995884063267337196117850223946325392691291319130275030039142389284240257311643488973847261510955775232788966316930784113829534944427725301351037568443817417595102745788410445272685067099164971386970627129662752163965574612385808629981986974483886062585162872890646908256773537850790626864758900488478639604348206194295149662133057233990169566422260665667840786344886559329163651069764745233491567626827097025254270745720503520647485382917151499372441665243533204797282553607753565102064906388197702422242386592316721249530765593348392640744920357367574910342218143387659887175582812263343584541932741743253323606277394678323762015092332179595481607759877882971681815386651507570485665646984967912796675431644966032193921374707815889868359294570835090970010724748694480458520426326485385136105146606005597676028670299371046654076092475270400461506163637460542627582218684119808119653721157837064865522358972113882280932174905562680578665446454303807609809514473271479638252444265605881406785879038757927303824055500726094480713888852632079884591580680071076985708992423012412580725798096670386709912672232401770887574275489039668085471049620368341714386302976379076443036825378885016962742275547815555877887275677976742294618045055683378264331545302045004474950949386151852306664793754717457870279310590003198174845599210352431212647255124691894001754379155310193112421072662416335067832406089134497207651462942013685182460802193968720532744611185328676806146526538873086477558283457086753217874148135009895418928336387178495084590869057987827177820891107691441638632420967614398807591397512983264603144544661821821059026802417333746491813454864474269967758176683290656569608004909877279969530161280500546256959110708787542102061219811337441592154885014022739146603796609915369866938026753385526329307205247232360401524565929598104032515698721217324795268405716117978653484489104583195923264268338898644421960996570353710825763352380436850042325026527479445722423787701166125897851792046969030670252132559641329832757452389998087126036879153221883045862295483563680508082025527163556321066102223490339041239667741718292527985102534681451555747863085355745544675960663274051694134284310554481016582262733249390222005146912514740385255594077744806314318292609175533529068518145607488681124219048411950133388837427304494670891860961332901576928243798153021355810652192606196644532832587634156901572755533350029813590110718461454647536844671325883272325996444838960834276629583989865116675943697533992579516526535211089382673784796245260998093501524496111962743103155869400341450504403827928683075287537704388665232121300158349306158321446808590336794332013967940254783010491919491355993757867814651878548834680709622643762306438211831526237909058985276844988793487628781988283976344134673691054327898847907854916852152519616687234961048740733950977758587044292366713975287663056287300877317233577461245231590722576201685389422607220088414942654059713891892796845358947649922763446857862196639317758713083846881984575418622014751633904728250571057015885449236870310242940353019490665898098646439235624746920313343331054450850023898371086542813336980029208061257619048351049264477405050224214297527472820064518108878777377950625444248324404091125228602587109205153345614533951080375118113077729549769302844542668358633309928544577671451148142018330826608033060491956023478515902481980407150900794698344615106593265597395931033636595217976282657926081855663599998338982375728664269683443644984141484463363368514936029232904629914368275653628122462258116038120870976983385309760837873897655524328523240130693695608788712083048068849925248700436794790423625783957999038447247742525467725037351434894248320136538901065451867982496110564391093343194558040658439602988919815196366831835033662757639258938315067406164316995254896146157178812339175296182613868691736529512531600546310163136687601457382993699570328163128397257295105444271766969045231954786776179216615041848668627451028933797571570003098004280562913094839890202672682205892205720211936417603743574173113801671513466490692489138093254491830654825561258632960289786074389875864129866711032741550541635952626980013718633953747631985635439874412762220574471601251964280079502848377263939126940296044016214702778000958477950600101021295293212866058284110174466755758544138928227082012580889830811531344019117367509319008885214851768030442597333529177563613912501740534692744532404544707649633885321761456328040152297316428429752137106955284900719934783900974945350489982847866890865186182589030939818803583276463649680579719515216817042220575252776724333880045467364541924886255309429166522913662955002443917981558965524595941977405042893216670768935723114199281712270004641910959299066488606438189989609486234892924091375501164546998485119170720458777575304330302052999128744170449201233878401403344265985249828945291830321234503370215537012811582041548310512147771372433596694380676979785651230548810860091125000604918749085107684096288455260046366828785146256848458557328407161419641485402198351448393405900168897952690148068443021099100246175285348971528246545634710922457845144382168747776183597556879691470816500323529646296975349559448401676436969841588057247643229133921892715064418378640326495509349001508368440602273426645144858343996497979472800111312304777803318171884446990261267926475576662518304833305064526429207070307746615488235564551500212337567677890385201261154830363139077556760173969842909288382036587635961795807279781017582578417849699752486738177320421337367610401790302061573952890537296567751071507706333878595857404380809352141417048836183963044409569400011007234470087960341977557682791735634408955667935081494517250682590373726128800518147373186717616211446466585883508101419246720507176702232457345442914646296984345083246334164087016807064014176850971668422609434545206902529542406072637729046942254594798778817402900941432273836069635763860915254730851911432113379679947790170309628759978221136392570843792205658437348389579383830599919700992556725856153524939156568796333070803231838660258598665076547269869540951939607055069390979006769670177438079611190147306484194568031325960319585371006320496991376892950787379208667977806527424220890518976393574393518002859865047733931556554039454237158981163381791078258227597757422910419125050334715422588782220910860251134716732079079203186993633074963946442480964643199820372460202165080526984510103575115582145653770284110455613166425724813474742331250532529692922794621558437725660447896900694411756092378417373914856815805854111904850908012586681150936476162208598625465185933232397401393235707133186861602769008474905936923415523754408733983979947466443619952616683086298300576640923474447144389429596049620343087515928058845553860360219011750011395165445473170431377399908627561996057521838501146667849082918859829290814303766337740674453140632801743785506045926414011183803358410710061060203412436036198952194773792752589573795260428557696405788873213926663673087304413069346706675401740708775188423851461769948060236718482438307671332921034352279767680831996605265098080923023677825333041743577130651296611360074830742277831558049803418398684378383625426277179367034850680886799126264557965702464274211851162340928383676341602768740631245102807358021293659613565731009451259710407573143992055412025076393956142487094583888958999080123264757151186260349470648201530766862085480775964503897307109736264124183594044868629385365007428855456121251476245381141203614698529981984880515066945253412608125510494635202886646623835867299777271044817212011133208589819286673982197699610017853720978140835133696294658523581772099831689787207538863117319287616980996747898514365736056928075248292890564612879214545802061004691851444770489863504243491189052846122199701504160079897744579537653245198343503841946364978395905056453308921701559748031121250413706633468580023501650590465015920371489629586953426247331133457573337678533303121391210768933447187682910990538233831861455833913769456339895488578227961735212620798155117097451366394284004906745741074533761918308459893090543002402900565835477503170150337132332515684922572844558358706657379447597983251405838833967510487933252249405880008416351403262229317607009038801521543385461931245122213965846014722728717837542288773953362306435019669818326370885377848740723990088678507619772294068122355492243524795571573315712598644411044018265206673885108991104959912542573095541933161641080747499409546408619541778797302216210663973187310483027270969818805690617832337804903550964464320280232344098897745270989723760797103012281962296877337430365204896121675373850048121762830411131176829439078493821602095117530102051680151605287136953361553134185254322651796461697128973291211503842957377881068153034428213031629159152300035751742435828390240985972571948280911389005492120675346698548616398109257047326181783045948381473299036234574365377971307454278539375036014609001641645722594601799295234791449449123220400474413654891497705846649441161501708476976301887459430857925579059994276764068135819369830757435683884144311095119028109022609174498788063596245967283939458562837497763495932371970154086201147729254744190730427723409950414846525637647913298406982261019800162076408292325693212999341397639633308534237095826040511912215842067211370233395957844005044920113574066290469845290267805277996829801348732288569732397319551713705647212710901044577273434221254546105848503224110454397977173871777934130063711863584236930639683560593695588544889782748536871762982579859699949285215092051038611243603685650709662740974402198110322151071142056438590270225876870238325348395906715521152188119625674619963365926398970688307619381166899898819498628184022946722809628353922288328047459658291454033042230025177389697330887930391966136778721018790787821963590404230046862798778724837596412761103731963887316426042444752986339432435963905415176987971573103977241301691200743167578165915373950582824382694566701259325606871282007292311838771367801067344209593023930769432471612891538664685863888543290648805774517946792666885657851843567184336513438421379412495955914579392940281250609450775612763805579050957293775421673951337968070074625376564680459371101472966711521522056912896503937269719708189327457798284307265917478043018890525573702890014025633697869067866897563733349819611511184924345229320408051759022804924719076292877539774180812758967409846586615980307399008638169155342612495728888151602121279697177324654979859816943612880942385763672658088163199853572801999360273391405783030166393866093208364813406461370625324053469363473992546666124744437866549311392100258629905600504164437828326148613297555941521267807222547425444679113051469392697452636759785007016328518019253462104407708875673444420007379551687785662684049991402752161211300057575085431057728634436034541186206707112888798787563665472320745718233644099538104068357546499166410191622746131202153895189455687553526016055088364611956987682196263178944188489033572922094499796718946196008050725972766900793058127768526589042634985109298876124243948047562887391450413827870316249426185548453900532413128605066256605998613478169752282651329018278275518426883956760569826266780042436039340653149276802851340034329057178427531992112906501547335568220280546369564984695609385824540035756082078287987687815222207619678352062421895844474963050253168391191858522326483974819095599560413248988012317569046943392473503931114371720045055864486864571581991772161054543175180804837692583837052330865092838688086482672135948452652982946728928388668713757122373991769279234279251276359464140469529003283858888932578723485701022905512413757082632063741112496107996570507551663382040059962087200777318518646256784290823389598732422309492583431437275268799580002930906005983425335993656000413511664121095869613775431299251370044771710261950930691446490709729972531151816828511543702974825017187288540372078386644822537742395630026529977024555685239890509426493350049868690696779699523030510690491544124275104614934790935143747481236771308075485695959115173426045568270534804863210657745731688586832880852846081065823660726999198956530128872619593703561575370477744941447713176020676667335304044387922633497226086007319148555893761016085547124524260596474744653283405354513858096768788176610278946918873224992468116717558427191822050143603253610839044347502898616710267553802037333264380977847361450819211501474243026064066679592823436301126603881518824473090710954243424482117765233875379983799201984428750190019838609798742058270792569516171683407997845937566994382883464624373243266108831029744830571800461948931052114584813407446211272751455640871451138725477761970073808486705641617221777845032196431211644561106977235780288607898775363813608735199390931011677287126126421885060421400032868941195163241043904376559001519284196155582281424573511796019246150843489366575979853179069244867360807033422265996880897442617605979638267447982407018358381593964793820493569783678828572604448216478918545365415236471224634214110460311241627703788356369984318817224947295968090036803540049703286565296978880258066034492490033959233623653335041233130822039257571816518247004849901297054268909718969973682418434709958418630017520634753425525284906779055118476295818747326689746759367146957583186959576457617519246687324418205212247734515810086989982926204871476236526754218382171164034546225796777055479671310975251759603691828741114928019245788044961609370026684460103563772316808729861802920177978864598429724409605291059125710662174945324833575534474028887530574977509264402374320390073390663205575502181725884509897664262614459690436596333383008458765955471894368738368072658459499892068347497341994295491913936068388787427693923811725427963508504473336978489340141712385685095789216331557178645263645235498314268469873174544457415623495848291881606139983235787552205005230987710467848844030951075143464250513793447251792273300649694394893457553479751677507547890474244465703278084151420156851859003994388895632231985051690311395871688486358733210101540171660923185837004972659654601000855723893423890030133242461292189997215123969801280476011952374159667167932563724037326137060919765745623959293577707334232522883795131552059650050255304224302080862467782936500487088599857103985004115854519327077808863108649597590879451862998412701110018460255597958163306380749676068600084019253377491496494559495665856425628059922577279954275355019337259602012949068369824967048216165958785548184793557608696911161288757313952023287632094985263091121624656317126133296305538049229337040481602439596593720202507870786930916259256657711745735475087737017839397173388319473307705613214713924975197982383248310257664356663969132420738584414149446787736672558715547803234753431366677808074363677344951269631929254262127742777667370093024788816521145855392449522419854062532036962043609650954414196164515931159664338164546241277092081384356691957556846321355506054031305579728285775877868807696427661809368241110468195438601064598441354596680936243187355140147169003972065665643222397263343123253204000111202746941550815991837947301178055803573772225077330936090278680669345824630019250539024299768559189254733695126873965686360130952244592946646904010954586931788820401513998525198180234563322492539044030952786316070925895785860271296090786403557428423329661823742693667324730810851322867943359623965974196204899357301128484973874963301250188336567884211705884575006703581549198217781568246359491250575078425110362165735072350836142479026009720380392521617790312708977294261829611294803017048461612633051181226257471481741615997499991046360915281318979980570830302570275407043179570117403666435106851103372185959656496808059476790633093438355700177973576336866350808196269058812902130063828297544146099878221402283669146516554738562870033477362242164520469848215265098773043179289663586327020355893614480677609801973978790154531278008591763056052763081093751594142702276683455270553581807176349659076116908157687441322451754619798082312433562572392924945310480863383123599787906797754804380001637453935739071892771431491004613057183775331118094612662572505334854211795565215564562270469391447147798990095949550161681680595855090061136558502905076631900397000965730286314166557104603016900332500814562582612389617864249033650480843990483611931909668393369075647981578474586293212008837365059638000810162652812246921624859236216717257314065606850098291221047375710756143266329960474133888722661272937444627128754208244555600350992796486945138592580878406616421183776640497269625124190446322359676329702506042955457411271928423767161260543859159963496452935808631257125792364591545519117402723651829444308446810485161559974210536007380038119790811064767015509494231073098457467112080144118125728519942268690754248474293447267361258718072893251544961767197618487166295856624290823638635485782578933017148241345272171696074005950564752732561180016852179282473692844376883931801914878977373227958068216873708338974187103198762123938016100211805168452630752536927111761468171424674046972995063585649012195348958591695392916516011705424734111252839348992856373397015297108180058928378200084726964712598625922166561400903214311727747620527400252814590911782188970513014618524950594049305637803455254367499168890886409867141393211174432806670425791331900079894243356152019594048035950703092730831478520301525495005313823831433039728692346560932935705263297465983438610356521850328371498317982000646938532206358651226747097374301730715505865088090338722410810781529069756071601648083964176159494180311363374862298159503029717197483145156912852620933806746414678915392639541026043663243576412813087105514652266976059929891181098354881777156458567571217318057670764670215396605720248128571850762436722961950937335218297938858613033489939649955115189717212033164598953083994002851598577982091737993960333946430420147638910050083011733809552376510676759679826821024623274317755161968136846971750833246484100770021597368887578074858863083656225361046685917707559409638029743164531213162130440370597103141910227235949905373008081887996246473140858428932390897476843207808749653519678752293468339244909714680988577696189923230552296322008255414367704719150412092927408294735240464565137045806471343003097267023267642252795492325004257177248764327442621147313519889370406526408101786396838006577025869439413819103660527554580396949009865946157260648011258976905246672875712325119022395390805561612028139878173860904573017251392507869718064747457469658052448151590563266800402362134266153072627724772035046284684672078013465344261107146387777698818488315793904189473422469492193861634284579538240686846292847289970170528806605976382901340088434767719118913199058955143602081046896194384429666461434539311987736332671215031504057572486843286068970272108132726469306021032570050539304708252704484725630827818301809876782749849568817777456798338009938935953408838285598965884958293918713042943202681497378962356197150327264580665279510350750847169495670028726404533099040603516751918892307266466503898219324861936123860548286592105193608603499456143583922309447175066780360039016060928398577576752841235143535296587260748833865228159812327382817157315384455048697926856907044599715824413048783026312538490941988533867574691454421598847747812154253810595785370428027436040631087240864264446276805780796430404050994989400609640754854291519516309525685460606378303562123727142703536663639870105196883601147297263683115780517563140040933021378090598192761713742305335306270330965558025996740362694532145932048265259525120277907951126697836473552221342831598277792242705490232242520817236538058398205690597045734574727140266972857518350067485454662715015717899106726837907972126084667419579033896195841995921379235967337684535081398583697378149739575808711994554224056358381166544432946961288702886893873995015520509475120319676486081216804997608640492821385681027601576605735685916697132402600503096506400064284151019059792747623559825213290744881221739874326884735470543996270696009162780533630726404803502745486938106521169508356940401047588226921455213785220933086999510014684729988750871129636723836962054445272357854424857834869700521736588021287586381116447502450128733549821017504677409080785999169425787081171361611688671232010969785151200614271000622579802101185988562625406440757316804779948309414355033659846551150838358044783065572134117639854856857982278091896471335807180762385515504494670682570735878187274221929982245289798685065098404623575848401651923533800566334178322602931832553102324478191813280920563221108520361030752089410114321546604754458059390844098606938861800630566933636736820529308946681817190924709132859988269638656093875460776637201654446099906584917779164714136678484190498128331166662439706493427033100449789527896260659298818731143130719918516249766975954196607114762607058702981727042980198221965634499287782068864912930283531612190461463578703482470076420172308779233685415950637818064851020940064832816285600540735240665797717526957008305027786768862781460004582218270232278826253957803254190032288103890320768946504178875230594383999539337058774940044995993258498764158404601676563247816254072643691587894121512479648083825686463770828285044390652754868116502224133222887029924665308249534228687079721187496671355433891102091867965240208668003345944016404924444541141471572292259063919342569250127526856833263834993365173992828040489659561978304154042616391187023632029677493640051017714500661382189544186083571250707994784886596078281615300287736343339778867295426844564545205883215347834669980469642615962265981996066347256273114904829027633269807365588288129042839081158139610676530971677757527385653929913266896186393469947679691743836973144902977955382143582648023108547901827690134365069241263314571778248989364878475501935344029026977314268075885439541116732439893180136182811119347076361800898813693591496292046625935051891069647741632435983722669054307801808625119709702597000046941607841461487083689409903354004267768411357461127902604401944156916723328990453907445826608009613071070139153275086376115176832602491233281537355851346237520748335131624344246534988884636985208681248719413841908305818553202498383066519581414985074730938426618298319933730469364062153268408900624325902976024095276067646042900294792582776753759768438883356982371030462953481946180801657345151865953630722834998591178285248531097527805043319405313748569992224379920254813657967463352464261851198684642714190242670925807989080727607001638518708331600856964102817366428651832749249367992466620224905688745847766575992095472630029822370074171314274877947412131238671081152439308884320396669787986975048647225540946524062076536652453931107396898106290811631220835817167945641032176751801282227103867578302106018513501393995796613651963784709830157517520616857842283436084798232624163256310124851769599631938287662428010890506093395850307291606705847309108391965877813550474202896672424985952990435195635981254007996244773058026085921979108011907949573505602423195382631339194433862523199326880331038117995622825184069912184613875810243677718895856554847811475405678193208606822296681456274688144018266512723375035336164950910203194060098128323668630216403762608721864923141878640192892016852895716057704113196527579476934098727595255874189286937073091210922326580724795210570570494176525752326504248794131032618382815820646295151381187432730944680902090632469454691275337091649511847678621307157404833530313577403361174863618402004936524952938670292927333871540000908464118220843712237619693862619409151168031784379118942667146327798464314156817596233399035198899739193362465109762051130024588108403036274342205677576702564861752024799964745592868401379652905233675610007786484569052272560387882454230446116704298033192522375482781676704555277244964339491859353915299526420352773996435983125522355762763867117124259689770439927062809437149344863472331868227195895460289794528523349963333401243680274731459471986015183593456508141364266090664980451072847385450928071716604049972570686424521559090447708349241804901201896888034248510160703524776726832289975138542937853732869918709770854799544152706604342688112516071681239004702598879956887830236562789653829882585145032542326425336936446017249560288734197497616641524995387256895717942903236512751008582064135882927615596941319089631880992650743404057674599386474479009518521591886089927759335237120991799675194202003207998491833340104022721768034352624086905973951547405581803878036778664652333583349263644017104866051589702352460067757666925676327405024895040844785752473021561194615823371162247470358823158904972231846110808897279167993877749254202647109560788486220190683301070510613062632592840814709578356517356827672194461908699461258870605724002324928676372131101147572491007540221521156665202500943998096023405998174381413011992471461337102351091229004354459370317030653233910020507018824883274608941056561958408493664368531262376678268041178827569452866801938568838073043971144193483016514124797282735429832138723854124388714966487948058239168403843538304343751494019706378959263933801338326476142114944530448039654360873062421697548961149012419064269208838600174496897100969030696388137052589640337794896232232544732465110963761024027075070440019183337379940934581107672920487489477612787823681329735331407746387730859245530671320002913548245994323437628812115967299836958491278244457652376431087772997517133974770423448134635640593739481587327826091463711431751775295114414179847268399514891159811429870397947167386364781960993237937311631825339675549288316376380808765449402561029181765433881388681588412776763825204460393583189630966304983488967621906216966899378730425773361221901404966959944316861123747299313022827651915757921448114135939693382826385086872663675954466415812144045159659578109360070541726545165737132532669823037410452565361503040849703947728969680302156376761585163660394318369339174738126206152954868877356797172140100649105932226075866676216332297594458771057300926393128741083219028543609591417984278651978710533840770374671351375519570914264715232901275297306585279333291804340688016569789705789906968413308795192452749244161713656488154693222223335167741924084428361072462261848905008892320238510540494415824015978425279290231885141736189425916734026778292224473422845842778356253256915184514997884867494819925525908212783626426710837189281009929488376744129949377610280838317577808114456650067330770929045260818782027246294057113954838125564789270987936914580399506289485392164002662981539130752112965086343598517557098859874740452132106357494369940345982488043075274237281557379309670686372490347357778077947723029721536120138976922282423653267744162050870722147187951822865975625940213452493347645446692154260694075764235487749636899700494946182118368296767463656553694370850582483853757144571941037342703486798967999084042300670396439993222455472886701640227348449374762346917530998607816458430598457061439666192712328816888100713813330828350111353955038267506172703002647657540336919276197793434253615385461361998054287542765233896492324336159407696560189689922464369190595692618161951652526451438984601373166899228208405673350103074526323790265605402849343356777069914449039307771556256066037597422886263977438515981130341086449008325427865773406291363090686571720080018700553931670165531485239717003235688741452242249110289849408178607638178232830753274420333209568101120223340399179907590214789009863110639609792574560435463484226340735702073265271400627126902551048751404502116190210037491003306086215054899958645315358856613314600331874181039501220415455782523493596635844158524073074610206304401005316831612665849108454189543157648233731120665119425577403309083081200259008288841104932932195706039499537798563470242483910830558009759035938513392841105777372790582859514464294011129089911676456337030375025999549197068445605480520137562917255393756806349553718952085502570162112652649854755062577168320801604327469486427027234078790810046623424166479474577162410043121365840868002349597077839304439213282822339498529773313233669005281214349104674734493519633872345335671116712411570460831346637484754079798288310566713427929324856884811640763043149590819317665055189053264287028009169586851634827764174300710739326304662518051613539668974134561922556682997140398463502855337259910908404346092063139387233418175653298144237153095709359850218363378180989468859114840296649722777237529393823785623012882424034639506164707280246431841720081620504131373613970020259220655492420945100458566023057601599851092599463252582151385150030905359695821611245431875653338401319381899348010113544850295647083299577772762109709773878367444654519907673442706760572158994212264665564496922912434154962896275523874533906892093373648603120226427297943613117095721315003673178632584828779480709377238792785971764271895348472185128199387431174073302385348345072038352177787378718764072720992980562035599999303866960645679398188281643432916097169944448241096099988705981868399988654946748789846338524895472782479837307523067460922723019010299410034158794784278385013229392091147390532039494009379224701875724454387846994533069286097186273784927826004432389118986647185707871414835376840448182583359381301668760049592886844010701098387702241998492396491184360864349620758467733843932280623308050298895679329824156409987922621507181126560109760876104018139385723409894861354606066971836007423046344024022191625068515575373101743795611839283966947349061560047702207933476477569984375930693177034547185027338550748304360397517276167726153406219483837423814033727089624844333184292548652594290087986308635754290066515976211955613581156485960169676443531040171705905197303963274838544751975428140145006162939803489056738825668864070896178090225859006646375950928648926490687326811274626391105626368638682103195936480529010486456831332403700509969558852654131697974923316270890011244887613345334816123674450566625789873948120936212794111599788178249580316788861586304452540569949752943933036562493900548769121003169105730453365712406277346148591392131942372332125951522390650024414827263515959694240313988527113917343254687293350881535640239330333501703745327075829259297092385724781791415248911713409042491249712774317515388353902218402549244225926138990184108182654781781756030428278248090746988104189379384525711997524344935366388245700950191149373999524869303174507209791819702564409931941870008931600730618536043419265796940888277397794094858922827265358318360942308136251486471824127956833360835824228599902229361127271847795392145341550607180795027661803438390053204044165395255495025876577039880366561715848083996863836500182037256167148422475730651239481095087354914296221304376479023886652168595726501522357897113763687947173365097067292430695004338399638995480139724600785931707752466357564031710207048612457723914399053875919046395512189416048179463835394702576405230262610660420406122124241415615750863414092477765160110440938883313328750114466316893816759450399515006003326341290432115547715844589021027665956869523452299371912946051287687021067300439809067919419232981918769628895965848856576929890983971554938228090115827817439164682559160683905430414017715007498793600442952078300126399504193847517834860050413828596683956592531448939866001628709974190499515005815875762196270830611509552471119909379634780155361370373657223356417455224394857834909547626239247961068322905432744175356238751082277091784661749063618990697610614812431544866228255295943941372848733131833743958604828000338335404801017901575766436459143195356645708484844939325124969428191906256066553345801540383711791050636647019664415491689718126667152873900241855423965704057395147859804517001957210760776994172989773845077587968975100588535500369034229350030669380847528823251246796636886483283802317123843217843431499280607274942497828044291727827184477152919860053940556046977060329907695976181709992317242421785021874839517050106851344940294811891527918684772413151901666133635258325925165553089332478290218477900521854926595725712531365949528101556540215183276513256179009751253545558284452767484591541107368178720202898213343128821562956665429619686936098562663373053422091377155388914934886360590495059374831792255077068998463722040289792743793682931981097828403629417928613731026110127601714913084257813973654241403545683954750815387300991671522773346854752090622680911120943726073993465219245724995276351720846328449689411253801430225105665505872489754816261809589899856422831435629622678663077487227535073034784921797421065766548202706643668550407317439475809801819859264743132480459153236446908274478364714153005830703151066126227080006479356522355562220055790170594779023965336160508066375234956606832682782796820815306832471085330499277211522903427004394378171279038412544986242077081873728663992230519829829472898529658495958545881555736542311277225078949995529744223441681711470412344472398398234026824943553869007226849377489830035343021867540057021661458630922142318882944542121874544708214601635370497674313515190362572549272068414501426820410677182939657303578940141296041934698134709136182062630290789151411745596051000382818141170848856080940886263019348443897426982344724673937153126602687318625555342425553982886742229732101876758163134265922712342338850503111189708695983137892698513575796414631511583873289750742118364483916885960454667354835672229864558722102164824440076427064463490373899007635331440951660533705461640247157826833823159993759634742241366799408431481330060296039940233411955213895020876109444054691758037506843305872356214822386140746400940304005822406217319820069797904424390002191066589566705142912256403290069844263699201464297381755091338279099328892273399205321598435140937465173320871060160132096339185388620665461436662649251714701989956584723738177456486164160878908084022895235347410332330985486199631711998582894613977504197396423539063778129232119594828086670466892140482533493429612599840604552803990752326084904932227289006659177943990920073846252957973207487389983506906075759236667812065076831926725013790836996047714387368950547383191491347967817596723432492015522385712606657057449400764323663901129345308862089106849558983943875934689414451471647003372286786983921594677444547974714935230303077346613989285033536170692474578989529767712366378712397989650025981628940085712805774372163779568316174261846616577044358285353306803624109601302216586303498788463840015462921852015175497417627690619098878758418838289814696642639441853014554026757750685149307939297854946686182485959266542097624341438893432227463455487419708432880168058890508564158652230972626437955939933376974949691381167002686051089402911550137950765593532665057748065506268620422322368891661909025753744195444092365019796423509633116137974071547543961065914588460052668133972979554994061767748822004227827128757383697674836216941044459940898450179386447746830234174987257923643116150061241163460282066961247074837904775088473301477513392104701918292110437647294153188630988885429621530423236092257115809484494111272696963144664617872675833797332917175112666478413670735969549501688591528848901533863343210550544933987458946829893916400363799812064038828619149247542717467178994318260978792366387261126997364252556039053656512329488918343462878716813197378125956334313481371408473074027734198186426589228963133390745301928737915497703157492618975071887634257623232120193642306299819289249665389904532041603149736107585746453931204497643738727752032123196383749586514591590548853504503339692463738860474561324718521148199806534143225554573474294716206653923033753837351083183387095507933517098194991429393901343021993946638521037474327762871298232409198913608018296682649955858650770978787038772954547766521291620123872190662558135938762768366715725618476553248817299800726250562833209738521779720572344010398007067734297679065463483668084961345795371560760288505312649291371846228628557016043972392314488820177433069941791098831480502823579382992259090835559028946400205189048181482794569075387500096965676740916634884523744567549188726603682771438678606470693798035544778971181196890480007923150162721663431838921584386467771369659281947956406815808688289084250824779608039440403410585061013247606180001882345237361045333959352291962533849216966824158203772621246612304235198230191082150887294058691014536036803139437239155303670373512288174446785977114743016546058717248986578860695160511801986365583046648926248610231481079164356979274591559758683341298408432709366668021332749584019641368154064663808746340099303854421767125789678294891012990892764643767615942653242990482938380181626526617181661270553069183181921550414087887881368089151104075979257845399543146057748991843325690581014897297208512941225986130349503300570871427267461693879853029004799789111869887780020716814613254689261903541219638465653422432008116607602296510331766142799796734109360918767384589602407497884577906451127913205378931557686243498831340205168035770750263761368795852386184473322701017262850691789723831931655642149177750906844816775066542828634779653139954736249819118821642476067505647067925864685109113357276111231858319361281108526393916171935167561525629401862996790878883732353409124291640177675760796971519366446717580963326496371532275881312089363929228570540384380753025110904369484633350277765110230971871821409390947427676515585740821590694278737565052744508843078165259546783600558072067671792271269557185784418050938912762567277770221205239004102744817269697036329096537999388503091169793184548793026671453064454285770673415103151007839630772441406670411648771033740961380165124083248518939618322886310683118089210953232418434628370423431533428442180231949909339299985552327364228611339821316615007912722050465294956982223332766614020594453574744225394839714259293083635739889791349737900853473934575766982706023115784811046945777694406663358170377787112143805758624087702197833619959165753026482699535225640492682888619866034301313114485127933714742837748314976671452758856501303197071884979721363128068877720084210770386904470959751810628415853481150902537723929198148859802452012672495243982946718160946312703476049985176250215725273487684089423087925445963036969511485926717732651724456785670272902665279158762540293882823755025390636226824344585615458996971177715929029879431072227230168808754671093946151878853413093472065976829539938812085231199964723052633471485401849988326156757036696222774660749932818591956291419268784516713257816643232396776198552622954836257020597072325828047622184566218972555025713150798759355820162401839393226735013715885772111484799435529930715329156430770585246692925910549541194967701817131839190655895376749959805369468246204386808141568670274729040475182839244350670250655897174868060329648158662919937832096331986688997777926303051860816379512879105961141553018028262927347174195850441792171792803428433662093201485762212753236306292614552382969310658784892609432132467786305615209669000961596703355129490457895861362188673605343634863760709047353176650005170420896807136946591651586679504666429359285744104166900080389532133446194025658391285485511637627020531092524203121553313576445498993175515269730257663879191734562691290426212173809413514452243575823766084210877675592354060715491100633561578633371143815778484758376651806405911996003784855697433470693278065457658516935363927426902064997490354293255128847526133386027122860714617769680363247876729414303596496847214239172033826979875803993613615434436002001411264167484047648953215337832082219055655417180871330739496941344912045619782950313969411296956050133812197806035362335271594867364196790925266765407754135985211189856415050789832325039329665996210598340664272302028208452430247264434757844643204282551940852269256021270697226209852784134681333134111364676243183900655446514335278801066156604599436899070589298163300450327781235458670005104627269441731257229085951486629324787738774265470320544334072490440404362051096482022987177500780341013520545849732406270558581314150474344255369226916441588101332651944904941506645966657880916897464894338691157567591082222000683122549954620133799380935952558445618717896596232918449070679579846002680273492928888453540902440758179754568405534133297735602348625120425791576281892572163764229756348793754237945878094609665045683728855563525905288729262994048975548806231258180588973762091745352372110208226504030189148598762997549499261956414723255560673085227000499862556154498335493926824794071924459444500800904696906739579681714671999690311987709708475273547753114350919657788209606423166184893103979421803558193518739657837177119362450523993468201124850711425160213555670714397053811256277687725500188791846292285389905601423511745194936948029681759698640563393689232285985137897210448323644506934346391481684494853175666367981652081043589075547423445457099116798084135760008886704363702490195953570633704435908060176323964063420494257615206134103683724772136728676421359150069737577112961579348965694256391970190953674064294675395014898889859545910219305332648791875388850056808509918214346884729207331765107785595546734779633794778250615310955937245945331007936907688857918367838140087895185301256902473401813126620425551369219152145630145546071462467099945018976219600671443835080581958419805293824492649826568332041982743718072248814880145118410214452148909647896656857962711899302627727757649079461865036717416943918933967161748945459827035136415289484039545763057309002880751795144195423303657741908326807838271465262429398659193655452138794048738762822606129461238253879122919757575463946524940902932914070378942039386230457894443779421566531743098229666773815255129715427997680344263755414105529781425931887042067682760532835447951986365297556435040729006671968445567432289244981622726337755158762072697597101277359335790583052006591280975141004691273875953775363598609314645703570665976196259591535080129226479827864910783323073341934227751505145046592873752434882423465099592846419480362333866140265408122038167353783031970329064500609665038439252862972655283301699050987931537774290396820306633438485939686866881474985162147071318209910304133096461897158564087684243768888344858867618570005925867475009505233806139353623857044548403359820134868688307020531684543253937863100428293088640689474904296992944495183108990312908714613429044701427655294165255809776745815658425840244017569450985179639547194852129138262818223820676718548729519075997148267504750520894757685478822166758445989618956117620503663264345615657954410756074963269239194146047642523865913000448476568528202441466157192965163054648297537361912987775672501993862782356113236945113957951556251299906857859218786035264076859982543402983023141538549824195363179108508845433560241584323224120176256210667335871274474688745160140935221770684175244601190856568319855038062043374684117891714185080725701112717881106677727453991029605836349213237681786804120628609049298569770526590868498480829967322533874963837327235666320227214324951048727333405363586860078068719517250735379068915330693306048746171257113751932223738263809845326344256488765297497896638558096446308345123712237991660142225428731620086826630056782498955491181258624061538954397467517135276777479897548991103241346508177509746015590176976920268815236105656423685236498276149554964989096961473084599067014210473104790750985640904901966427034674635927161557995701681989848373338512082057918730946981139694321124984724799648234197838607748094681696553780393420932942180559037557936960796596851364683896003929527352007634732209875157143634635334254130123649690259688025322917976957685177560555961380544754721640403274105872875498498056235747724912019627409932462329047812533210323078534518584575779668326271938308327444216655685465957729342778324625799645677148968026368754758935096575603677555236835909682372828023685169191393209183027932083228337270523790220478332911297320843912412553158570570284080266233058168362726433681025608268221752500582470507308282553154991486237122318264714307826478402275449992383526548362103949844485693909660321094053977992188380488492218688887342002173238773468344930877008662820025448821590699636064161534293401314244718522843940095323310758418711759053400129864026415067539709362473734618246281494655856153194089009387195274560125719330159182167182010502225319947085791509584686315949730700644321168832822419037430828627213611044889615784287558412706791230003284742362204509654001980806120591821184236621418619931925977596808646582323583352701457351913791001478030944523938722733545857607526630942010313656415563184141338741962702880819642809039179610261296136503863906440475636301286099684822892079457842368765278115010661557072621681311801534550533237928460608844911809368881507457840536836976323605330313076306100292884712852868805292567363637607259464606982121553523794223963853368550124086877570267876465470821456891790872143891229313954163694301163704481844706702893326895727886334742657393170639537070361770839280057643941098550911973278982887618898183948968089582418336998108708622104045018919430777270129707838943549200634020808325139167660018067190756318713734863444377907783771984941060479784277297705531325647893348810162481307711124308991656095112980005573953574249666924142399876255335586612882969666526913850356704569019257045198200485606113184674839332499089078315150764164696219145780533180290194842846420004423101396181516420674189545609134582467678386249811988593431691716022724188699242997974462728874653013777303641032634094495342265508016558650908021499137792822010784190048220168734007323667495354131321048042116539888368811344619708774185319866213305844250498262978364504347173673206771181358815878772852657439514565741117647308826780621836188010038445799705378699221641943552288220558477677077522839708730186490765069194280738099719751146455172146619173723444506453100573923772301766022918698315775480444483025862149125276242961348215448592349508164360253303486180184568825236418943257313581009183482688468601026253253122812796128302013820463077243167617937231200817892155778272675735513085126757736860045210226846869867087286694036901573540983258923702468283343177055004759039899640533347441575456627406017316020323890791478962330032695553570641148025791449280053944846215921354268940875019880619116487341042088019634516155183975198069279449305757580996841544199434893439420102861457880262319308867217040123002072805608259460297893242330913874423392578922872668575698581786297457679508296491359875685204729212949906843386773555885519189196224353690079006322682703693831705794396236083478846191848246909400316447828287053292656856988907788770904889758369991868997484836886141257512038449728206030655794125050246460172993124920403252194878227563200237078871541411826958095391925594656640829467923043212025879587640861722506563438334490977906371920552208670163510909008024532810380726557103476185651987252052534765080693551610750736910831876791222454892621809050477577248844640033791398345093579394171296740351048789374562322777805208375034280601902861088276918012335289659664534537976339839776696100491788430200631839964623803735327696710919257947215694685728440668299685989872590785595118314154576967420749633346192341371789129622451449949727080886172897753415648499330147807649775252249499355215784260684585706656636198934530333672070379433354779850571176160289423675995717310571436055252130956577650389618061725756923850729464528503143911547900530032370745871884109631599519177212415582645961479313441468407063930254567861609052699032186884771631518968725464535103388753325223745361664423500361141533114685963069477420928860985352099685889497394014095646501112868459365126795987430056751531515878192524503835386684738162218516904863898941561356020537133125150205422278741318784655533080868453031232585364519995693705225839472038523245661402109220428526829482807962552031178865392989234199626565830857998333172165655043921405644113873962999389452690925451018028919335909432972006886934768960385203715158586166679839876817608622491948800629333287444049809646685607498735764248960198837638603603679422742123293574390458735357969302085656711439565112209183605240668912403578095161157314702900755662967462129367027161463282118780941224819704997537682132393948298448700571786287987375749006786786984842383348046705849835493252740106949466396436373906010066794821047164393851298920430115834824901893544882331256692864509086659382396803008244991449215767428414765694740856453586114608906781370490675462860163391932256947579925398684777439388263256538075593893161077422526494514367351343194038479526913626464788379969661050231406585760212613055518846731459903784696143001566325691699437561580682236270029470084477067707704072597064337470230530210394804866812681208403727839678261591102253512435551871106419237627656140761153893773961378442715986339679240236131242476566900304190865520992418397816674766210094560199816484421939954482907536237357532885405233915949631673071181758370092710495534368052993136526374222129177982746862447066269388268797419778959132860090040404511379843683254134092957817697138684014234979777546454544953869323414334060982863366488576509404537351205445092702882949128379036192776430642278700304797691048074317236833310705059090342273289369433088285274078023156342466491570241295057550792200498709494457415986898392663436337277995352770881038288510721585354544248685028739194456348359134489003382295629317367522583781712871475723447168421485315245103310964834042845284568722087992631950610859116739601941204906435562811498599918887233730907788026518985851139988619010513750566382503866430449243103557069336935616322780858864802426889889108852961470830893112937683176683942134097961936398158417561391270423728668564330334108275912476343248376826581252892361404034768673382197417350476596961363654390529833699042170106165439898926778603085353325231638724059510721833833714608207505050559525941985244180831351480589524837337688436305963321666324511692231708911714690446954310560831569509174404953622346033153976562150435458125189286985268070155580384514542885224401168598523735447016961318935222025210276000943062867489212857500269029226468098688768242627327672906659775798377786011830102531890455859213532842699613185051036008206916464248389348854366067322861252233292476473871508250816293808216575518170602614647636838785718250662442204092281087707913652001133015191760441350085945736952861985938781715759323762563557677992419097523113592398418090941731349876495459962405755642617050810061105236733022387842167819878741905639716712609712447362280654785708128824728115732308400259447987405016352523901433226536901507451976279444038800226553994057275138267080974428313799915799317816122175811517378312429965340316278513618785403595680915876395412088681782092477460977390085363241799412528393985016819541998844197279185911006316034342266172031845300583576077660785092583697686382132727550430007590709134552414771606890129151790179981242333732542689221914414474978605780074049934473393527427807045487991844631796271887641749703144906288900045346212155104641837411495168065734551491940345823564246072995713683472358353845668435506306240804089861059052445864087060690192902250816050560442976969599632175647055137956067643115656165159937387598351335776664604389477933125583543145296226568546457157398905573244339917108795031899902286642214572267064749320774541927603961342154631657965128461372238487603949309619344563358605990108915740244985953431391975066253240286936310305637409489863620707830811564191537353955264123949322809526018332921184187515200620725978585373716214833768529270594831051744325272348040001171191487459037376315615330180759314380523611337760908847624667241736241791633443694136958214556828859497320768955537086035599384122443986223320427493752274796261165002650073275725843586204569203246906772832063870907225362042638001218086946364298504520587841542263299444158831371175888255431830658285366561849950069652376421871422026474702796862841199048052196334224718115644407143446892516489725441112864280915787866359325681672670342411107789417638473093862466144288564060526519508923239146415719482962771922850063334572558978050757003432568867774713113117905546864513294077729653293686522971206015343499151549175093042267834761186312665996506180159943761093202995363191396734043552105902495276733522282684730041592260943061204122500434099669762324363191478159008226183328351898513382999160377273252713063378303719287672830831536419971944286768439967538227141631344887223416229884309468862798672195067052431508581721190420336625700623344602261954616845560653700271573870443171719764713858906739641926149486784038415821062470293003099260784988768145009897375301892242432663486264861089716881020416189724278892464896292921726509003315598802987048559269335714310084367202153473248349443422488126305067934192602442889134722468851844561506975828892289476807227654765858756353926146813348982378578450099005391206549896771128683846012724626957571567815984157139041207560640693172942762006502536239356242229115510354641632662378720874709644149363236692435171472162352696098333799316296909842638413534411762995139136282973497744572804855428835313599165485166587723482449895524309782274392900359453472608758556375961465895881251611332977151320207626278784164958892250931345515544409244391919500448909874276912326937064668594338949281636007547334548607547975540427354376587007417484079500790114184365729347255362538367725615318743749133624115150844792695466047264106428717224415045422365133706116329881773135161822177355565386693961266688196591231096306416269682964296847654646094665629712665212720119741886065051322818098805561933144671682670941182560119020292625796998614670710422408529721341150458057870956100729137222383456358788864908304098034712930698342260251306781501161546345137327736840180638524406986786400646479369192933226576253282203722213458941158527783020724833217195078085781541551588643724351714776525599309964037872067068422058303824183370149643009228416870703090598329629038518940765723132948806466295275353203928836891533754782209797497531208153726381710786100384466064486513151750728512132252489054276890607963949584725062676569083805656241107471622619869066222478182035345272277161792584358949739494045136705438554921704835145336035713297581480243215105973332212724958211332969794708105746508536266132111998485234510611890276897581770928168113339449884639180323195485689093308394924376089412732648519235278588961545645634714163100872824012030246037654663018118921433273575685261059466840313939326872640387144890595529237824037693768339609295524901056214982888279770973618785425139528745895047564122765261558082435055677665407552666247148594211934127202642702309999525297844717494644019581330334408975410868863100309616014861402434818030721417671307453180704018626731433960582008530145668347057254342044247210504993727532470167926507506566268188224774376102906684707438187151965770830964904608965600052244091206391905399033116323590503149738815889782300751586311104542110170397206754973877134540056114729919816141861890745039740133948638617357081991071394361708893505479387679885168587808528973910064539808586722071619113596982904233959366908307582037098066629443390078315012996294886911770676306715044547897154742898125823260658187357065361865393179386521871821306537232615083721942091295747726985331984244499529137749987362979567117660926368258317863725349618279986643679432698417667226945337595960246500084949450836483272401740478514105558281748246611100346346482055512536446321858191177092859348845376323233470690483383032070590593599308870268104861091305473639444619554578983104616765421333675374494881968269897230055380419642821973747316226587290580042178798851475959179834404875633975282335036403808222449736543344628759266674578705092874489398131850246048938362335510628564937336441876931469407626016119890766295707419102765397850677048332215012374381296896643673003954384538602527745788570416629246488571734507468121035099727556229814836681208637816064600671122047167531782346629475109791545867672391301086154793477767155903497663103800465559041869284552061631024106181973887982074191273238857654336065741896460601054963173090799665072463875396114128849661670840847751150840501720277461264651788961669503487976427589668908066582877450803413546447461655524592535598465861478866626358724105012384853410265164211596663123802572504977830485159197273970468203805799043474096204423366436665892318073475577337101219269504714708819519355361626806586547649172087553752116605320969645312569648750153704979156853736342372735712898581281235337326795108253417078748361235065002137947853936367144472615171543234835929189084668536379971063022265672118165383003563255191842659572796842483558495713883338102401624034648054593680406018308046980000053741827745695045572019163802767482054707649609339105804829826867734375136833813446829565199615596366272060110978661284848941572514120748879839820099602032523336718519665767701096230454184638646994272252593678850191998835136306185015164319879669174040884710671419798587682149930420869100284376296635778192337786518709777477820964849879822589592640854595273470781261871294347402791377524220175969314038729041503404051122277402137004873423925896589340309903134541126895448875560473451703904493525849854383578887049549899274640544042653839204613878829442769486808856414099285313599465721266163128876380270599972464202556492438510408200030478092427742162932949608747695652155408684647834237248163858262033466649314093966310274261747860583795153037488831414550507936070045512402396940544923963151540950383339125137944905165017373195597244206541438479808327686380082265912771548610198913008541536201387235616159682883550380873757134688680581169412161393421164763005897291996662967129716023658624029099243605141162352734637833727749877878889624955915224277200584534332333728197736297784520518473091921359115173152884870520217779798759479520302243740756772543940708878412355459366602191789395622299745432476941199712814018894064381885329215933943034622719217107498406421541281599475913797625162187788575031482794378957170165028316192547238221293926919294310294370527076851150227319950940461282846471715440893586863353160159697362575957868343159872891433045480934591357781315281782070961363044628241847316062223063952845027666342649060016901108447804615810385304316558297949710101846164043892132487801857488053886021099918993321118862727778425838449282523215714673977882500403934279321326227536037745365783752694653385472271357173985313123981607660315148833069590104975006303300678500517666370084695393610428856540697372074617011653338846449602674496167853980592943475114460903770063357362370350370407267996800775229070495513814427307893233758084318345534818995955713772097150872904368575628438127456463861221501013271449670491354189091839316929405165590865513937041982420449975173116612998764402487586859777912071229920502968055898579434373711317978977716461351183065367318030916670059690511399820527416939567236774627497723623819305768331247689457613451965834531422643838040884354857901169691495523856484144154615037327091888680720644099634984130649411996534119892590212760491957450510801071173272214513367103951371058280852576693925876226167443737737661856180766847297077411117260121383239466791045465058344305154301597206464905168030111582789601610902484252135538963148383632029120406113686309716240923020212461123377647526256444648868779288406108141137746280398366422494190426250217414310713187496617323751461464018825088076445328224489017593604020601220426499637984365413210019431918033177358778003909167355591585061448242991820470016826578011693823972165108583742068334635195609924709368400084178656929172236372383060855678986801616902370298177576925204207711016305441690447404605409592359491145040960648099520712132988432343716657649727447121107444242583784760480822439288814149322860674442038036385058520284894997417015289874918457997216312171439190921122117220094145312747290884422093929849319443431733483483775505838185435952197508810039052284514548809177520205219690159755066806066200793671720572122232209961927684098959131052712097305193194899720467458680884908341295511258087095306536632937087200103094095643296342425401646012419363299102782533598610539946559807587396502342495821477715863744099686387370864610982921215127510741789139576506242397841814054256024674647693240935401570777665904970930517217687977790239600179715799549217415464816139899305355559812049919886149202934068119143485404296333667869897224517508436393757771072853102498916613659098459651311262399260446811456653164672792717005053364077914515742321371450625964468059687838633757010458341168862675951634839498968277799997863347644585294548498916087798117279783210367696453614697447983873611144511979467122818241141621737144241019775576777646052110887152811037668739507582763510119394884516134610844395829612572341126554689124829768961494214938533802420987221972005749776232889746835952056834393422066581181769023076176862929735748910044319327808405362527465862829757834331275505440829788081689606513980783881754840277505212478812256364034152936840610468437483632638088171656748668163862308602166314789597653401153564608544038320083242792013964712083417154326611318222764166404364760345398780682974550290096682568788255254656927973256324018279020091434272893783198542768541947727691010757517685120087019590095984283114563733343758114441481195163716540684001530954587275830275870384921439060352111577511490542110574781630321447888134747561957176661912590122075699426258075911102670534974504994693831976229336880765465705278639742526955113888419069359949746770731656960567355763266448142212951509822849808103714944960077742785181341936009768306207127508741808065155103476372533802262330614707530363351236418279198199630527018361219225338277031240075287143526847987088903915785920730485974302198920566326913340980309973001232870021409519540475428905605656576631898382088221521499679448658113680327456754360094992811497193603969126398803294447875796055863605234636574485015474578792638539160271431114555507308327012455446369845660950174133536582557953501611096854169554036279935218783670210398121365081841702490478554142126213929546208460246790200614832171313231415379639796639432017289938848751848147936742806624939715084331618009345635889745965801908484460293977951538290251100149447771873755951704571049082286071637824586053606778695840188092109977643254172406808440382798162260814029164675351736539548408557170568948260527262096346862426219323527206980178328821850261239217285478344928460606739422680698803640355161693727578967170156323572365313358100483631510741634181542061275565354340640222538085626723622719272015237219920476543359542127118175517034705731705110273773215800927900512641794246510784259063818971489016306401652522316671295702543702173871797025162882995026154858186815030930292783351776030110910408461226527278935520119240138027117738553413033992518756019937586089121909736698978953946199069676363861898090346955604425207560616788938556458665583825280803152816308675751943147241467754431494093643760697882556629395243831971335655874996255191839064599605433704391826418858601285517634297417236008416482544359815650702401033074393310198910491155746844944130398704730704874223557044390826426834664946966513305665774653695719797603650197006036580861229568615344966768826484759570018509925222746571462049113519365822775090566218200908161368574300690710729671313738605398476821927539151223185362203192942101386872227495767947604066595517318778674848789367445605434615389480059145848627700977120281691960071576920627560198845805260870766260388881358986961328074266641454022429160024348187685848390982022110194469908751611663561155298923636022119283096068155258852400893810446718131161391242157560650649166448133460050063629840989172470590768186529218260570190471026519166727398818185847595241041653271435220753277622334201319287057380649830038147282572722308431954371941250675842443406764066326963325689017913264655070177604230513605480146514380435764752210163025509775929843434844170091841207499150285937979248844282648706820938445432845780138521488523504296485073259957348294005277898599710839615126086566084683740489802382326919751580030095414181628545904520083542710245103519305069536632759744876025260450093913479958191983533527925678336317607930829005052486522995776631701217305136559362446808634306013113166037086645934755383646473183699351599886346614462177164737263050999992569647085074987256283097825931834064237984509621277701914673250026960971599266412070604493888287966633373160829655884950030007014532150089055358102510105164079787826905706498412299631017407803978621215743206150049603184675067606989073436706857486100933531260994093063377642044637524534998006860343313253092033939964884324966778089702262340212702713823112411040574795698650272721637796487048154380385279920900598336545494787185649101615018144051844663015224268676997997395831138333825810791511378027658606920961244976810038829237751053061171133162241380812710831684295989313733136689838368763550964756414670612015770878700640858434535082498336025130502152956050146342458280701425610002617179796567238539314176733013918722699271484038106728613281408453173076570080604007362694133269299510250949440905412284543278028934560406596381894038854426318531399954133469784645895943036959299152681092338309152595504894234516492810752727168643565898770957052628459928929092202719784787596159529111786080274315356850252241749770377654905983243810298135297928774393923805737654005880661268968744179087199521579208486640531093064024992774261397233598555370239334262203717652960488962619965928327828481747398149672908620332055754291449326861292473282664697841578900227651541829780768831296205505861557911983336687376575580508594819287052115121470594842404676473976203613843700671843804365356821193075490849829401297192976441828830916341756585031192135459176292799150655114165636925170216187511024242862811151378074446902795347206635656542966524552235144240911450301119598559619125049520533671891483125597737857209572558435132912054483577568771559150097805238892732530909443067543519949063199606671704509915600882475392432249015877243575094557290259426624369142583889391239036315082767589124326233350037638259474417082624525550841757606011553966184713548472067562806294042427823643166894995709333660466913621751433130456701938750706976064389421243014524183990661317355539128953677729830287187968726077138814675150171048558501681529390999097362708792574019353861469260206365968380312218735750772302484181145187831906528047095046463740846866641610670853466195600770787014007946877986264997880019495487090928560669867486009879132907322111201018264647148431862911995385238931957613452149515765005483583591300277822926590586320620679111445249612280435514806751085312163511228661583878910838246806298202887437801851916810684096392625811399955167865380697119389516861407148198094417213514488549356988886426637398922209724602647194564775515210665206424008163848067866819957434559231962607159299112706119162787923073484791163920840075575737519848982308001814375891744279294490424344177739616337276960330743224724072498355897097164412127066877194965347904145071547610090106243112451366849950884449353356447895947556253284699710402480191406413216650361043473166313305430565375015524835106209409253862969304676880191504675125563774295515954260926511101045261717405402247504820778726087776238531591885630755353429346180695301996082416302062533720460854459919137868825853251499491198446386474981526480899073811617657754351702222085450103260156868590095057489110890898271908197462182080914216491271066855990748833338513901611525065908094917010167765057614349458409629977279961754929134028315572115110078886913992965861705505316654285211888809827684693739265707436390450283441715928679983816832913438730964337860203016522367075116828139966115622122874386553612963092159149759488848494319945708396397553254927614010220457502651212663287034783980306382750372973380766857791502163141242545070192356572317557965356679618959438301458922642495431333649081111296561413154844666839335406838858773617097230747544747815103451714969463165646988367896001117757764261055572935834245701442784810185249586079768326435570162539964292349228480494896919132962604309333066385485123614559821621262248530448709585397962742232659100332273186125673426457498703846857797035234862246041253156580201203327841005371845152826118301388905780641575166813755463021902437154622536336842536075009068393034203545296074911645043756675468863336795578062065110861120655675497094458168575928729549678982630547991025576120149719891911377541299329972191356044681487424630585193567362063854659543635436902399540970373038134640834678875562840256824517611248733231039864735354882086035265850443935385339491350448662732667299056480914384670061992957801309192125715061950261080912902363149756294643416717580383012174174099909074386527448288127328290898619689942688061088194835455883499193385705505944526852615779210100971441397898225731928494165080175306545200047861152729908977438299375480734024891888418013888514061880472859180238263616892813132666813908128150118580308782240948265675668640981452923160854413606224388239152837472338017434506691786129600903462365317923486511943677370050706208675013684488090591812060557226414248437367505245692631828423540305146378579103364690941708824171371454800129268872386629048083461049757560318166970044387211000022586937629674430595756043977306958989708828036791316745708894163715608391421801606217234825075448169658114049410549006842631479488894594585951225250671155638730977860190660127863991135043946872866075349915963732243447969315190672755686379476633969295140970438916208736548087419990012952985560781325752703109918952325011475950957211147505054510051819990401406551400807885260393750676543668087235340353206445906124664708320225826328942327568621827468923847948468157352004112292198092740266315146593980012404323876156995976691039950074009250596889129698578837616640625629460962232648107168858287952481839804719536513443841436230936544217357828454598120599165198882667808404867834549771553958601951558670105392443121491967239385444456011358336397369484475631461964517707995205591835668053288349563299831206109449777461247200133335897828638062808000882075150876071460078037826356840488999479099849961883461162616143548105350624882517964404190311800941199051437527614998131162934438628132243626739989657578307429645775525896376548759629124543180691612577278938471522115341512697661139174063241659892129882883224402618538929483821257570955543437772213561607566672008920216720458314126685568092513129523466662345832825853745695917450672880089865571603817104009750011380003603010096278007819668719526685491094564485638262328821407616035077695523917557101496602260101813359992794288515717430577887166183436079868520579731087430701378864562336094931469030850753238126997838269630921538737053353576397773617185817214561454501634976271739756198681547714210193347081640055865371075093001101405319535064939513832582564800717761502870512102514886405712997258388336698474935475362076344766291503798743474378951125665162789355338823674214920208979032359432603356228230180858319125839557498534369857178464232754750388723097500339688140226348219438679851700311634940828187929490989543207049391034316995687491348607842857544144856346095610653425500013375634194919590285270975577945692556755029804782303527947230019591802843780893558950204427614791004084505174747484093972856092402943782289345374476568123295153129864387693725736122156058487182972463221222369067327683687395482665744646364087728101768327394977748642634196661952440542466852773627195199976235716672777091224648660100385824613408791887087975083061029984019591365840169882959638778852975855532686201427053060491452396234496412686324082847967245773915380945371247168133563073085205316491385878556213698780670309976043888272913401082245301033092143689645817124753626533184345062278807702021928040329792871100115812191139550057608705965139190577202841675027654327618242714555655024393621279441925225041242098800737876551057014365065787023766130306975665403585012198651364273721003013939115836474872274466979596237424836938226779103555237496707319471089143696778195824576903647992453248687126030242088624941541563430752892063523087645691619630016093465081993883006829247509652248011214022376995228795758499541395039285476766039977842948654274082784540400991873388829454961024971963099680916180946679721314422796644027242501125194368710656566145112322136129803349238733177927437864097169780093767663384113029386206024397941463685562066687537506502741625756373982761772596271316075973974306548229068942369600771119681330364982150207877427226574725115446274189420758650923033275121526228648217070448588299448874584879098195053772841143814348949355707413692621223883321805091913581450788628999796125427356212224865998630927885469749762189316740293018532340051383201867734641062924498369271198904809448931934171824213418805374120006886263247863360901463162365762696653340998659207749449225618616264646731085310624466009428618236660588753862126065925504191910741525954737066515663941620554963628888552262416185613676796219464083804109193285836225430607104433930851984335955085665845387294951653268034091971780024205892852765863790768309677495336082863049934770604451577352978172720780399545617529033697295978795354081249439512337441372793259380604937317663615605522701692994677009342370894418631593853855765927515372358639625998288392933557297668960917351507210662086261983756836974764983854541621881712421900706935901981264465830895604831030474646972853889122111317832080790999472640403756801780896626375052145570783485162850777242941004986969659533920894947323322572257907765383433379997749982469059519173257566567631569218898576548379506310790371895988979284654417746091129601320031284468128291791802759729606284326026322065524633158481945457381424291981613751973753705879555138793912876590854655948163352535720184357080935982767717691964269199523092652618334323685518452504856904834077550075428588192009124353443684611106638032912768761469773729090272772320137773931000153253805484341552466799576595997201519468018342210661396827516753655685815787474232807907842753110584759960052951024559337741287019896349331944785544642103196439251352076631549060644076600162544168551502691139241660713266293575676691936041154197432372936582816450348039331788806227079800784777536323481481001035724767613503856547102152489768975046023819014190203591844179294746440799327700478190742084681556292186710395287993174120132768096539659852326090898922553055207196724182705348190652034594863669547583370760412200716834202989283480877621273872471224034249221140137848765369399028741390379540635102241408162705098292415140031582953819235782898719767356060020542745869168190223133461378645946297447693305534139009899436107696254792149121759649487877572129134698345141679545767777150936120116899979541597238845010838594249657107745699814242507763760639202956803164283264275369383778697411465698320840330100623928839719089320093062132150133651610483635539433085684140109072417079537230270472860285052138072271767669704649823658563078209877908404635916038535790942466424366800148813106869070267077133065977233143474779568279429063663061621406493648803439426044843259360164716279397004754866000344075108791764274901067679106993011025740952332859668719201557961992181597851595388181230946913382004232134533645124357648296188455446400276354464500163030103306662021191392117366799550730680121671636131156120546082336943801020425983327103016928281585703207186795626106498983512314507913413425808253524861936502608249532625100868079491761813751208995624398671465004182935472427412148414955989484376168582455018197521686181375789783315011064842491915513445159472569470764953194249778161231647682789906749915871255633698416748133074694455751859108497716757803364037416292206333869808248501753962958041763815804962313188987443269304020731448711087489741852471796906834879549869338463730927516402853457876788507139077644540814422361947724196284681397141911522969316164714402560447314209130505205766674777139194374325252811168369064061065283961242158229074253532519090379059596136006571970485405483894786531106201862774879442689072350170791743796536990527726518337033266528513098495844716087246595042933177089170393627579730211203235301151440862264820672224993325677624025556284806120419373763217531589264479281402234182205717847032651119763660835434925484190917938095587354483887531740775419247569413071820943121251184397758211965441192405986350205249651436844479407301088331832728224957849288483124749819136200673101615728114127231310752334490452744483245868181456046148237491459953511168523748092098614991980296702550882102188818982810673446979564092171508064282409611425872619614511985835292344115663864224716690154951821132348600036434426047139209511414661583792902374710789006378608980762520380385316323653024148367427957684504160754839207734868546443453407349022587961023687473182909068714175948161997173789130134036236306654252954659155887647685436109863595269859234147134178235362790540908657451328323634955427088050217789930217172590879345848033044996703922659065606559232071366820687842429452752268754448350808243503658613566205536002016567466873804517051896585074665314367205279820920079717831236782560353454274674013184102193891325144156795062550006492612251806131357592097896041025871913990982571527642865481409598756863795276556470656239024041034332787091492871478018340180163339654583687035439207741430841798606431457748859934499942648798743261026140082155998341813674307159161159905835826746101969166951895811979159217370132667923292401932394327678573346645921089607062074110783632297057364670678342014593999393478309614124829552873953523007317731753678684058910760141157464208696625007221224200530168520014514493373663871396966434999654074715549582652949260336723716480133448557947884977713311233784693486470290920969993363493832951322219732806853207696589314061214313090145691631131431856194604360471905160652133698229657231572961792651482644301699051721929439130492244005347160369990244571604278179600226179956502832975141836586960495402302806855761161081620589293128486454351048363949284567738547637640183718930820377927880595101677635588894813283910637763732069715277027502394459753618545086225903655997840873567196337495570551300240324853334357162860331921499559760192649630763909455446881205992515326196628702828280448749307863893084942925361806060289542124790756443950459276951731865811668500530128677682169292951997770872975904244177180681966280539006709484218531228261523370285018275342545427314528956418473554907656805604926504757100509694875039983790794389092436278194376063160883982149027370393679358991314143872103567639946772766323511059926021356404964767006017466701155780198761681392320259611469859062965558979254651274448366465233012995248368949682815016767905726985135644247718844833784520266280791652320390456349590683231812759959552946545250579706944713618468075493175987985804065994023529913878042204740322089562530946510785479564892561743692483844781565028676240108398538535764938197668588000373042478868874956198378207252177065163457987231043821594933900931032888611283408599885512940877169388622353631246139837962692865959414132124487258998601882081634735504055071136005294998144036581378315518321527663194873849806471899355320701051281222880206889047687557162820293940582140444493399863894259576960637658166222532863883943350320133794846972818681251651322583311558741726865951486624415244061443337615125835636963765223108393307171081194953888589291225447648219791781523401419681220909422618109314328065485388669532749482609548562122422073204355057388922911420822635643067696664238631613101867771882525490815000911521207460784771582245541112515229258479470561382142307383205861050981185373066562599958739102888226949986000632074122898022937788735967083873502397494210772947205690714359913157112654892486357303745401191091106239925797803443430352071027959553199497527289503125265408250106309825776123429030861935118038455200084747901646472560361353323568295855099252382840895823690603961427739220849662393171311984182476407399370563312963722777028562077004023962255277755441155459122960285784075136116633645668372855173656448238963715590326851932034891919583056014875473250440012496088944519353756946966730273799692407375521945158528108859567805082888062088855727316754880770835098508576031132300549905941513552630618512659678889300908167067348491444460437768168904883986823233697993253636480675222906605902641479956396679259386123271802786834564114471311940074476348939335112101439944788869888791062129712378440075423246868489129061005780394073597860472563974300590639193923565772604057226280747358601502970385561722336920120207576459670345575278095793904507250413669295294999067910399485025370494889077306333871954539889428339135454976846863288203311345845564432854489232757379559983832435433046479143675416777228513480531087980874089262732894976017450683475451468147736153265225047458686014070199331254711054542996306549363001602782454800796335801247626073542793690479341904902413935614146453592745730337803645800860070511474741164123040731528294244765686528944051663839468835654359366356680751526412236054926305124899630452131841090995921847755450272544339433294150913396960709125084199765870019608990707675708484517812131976423157006881136951290696526671742206302710005932983581542276320620661274791536977139569212106155091177186036704997141240088768086653647240760551489491883449925142327315281878068010888049077517084574867726575897901169714513333810969130775983729521489822799207672405935687668683307147389554549663739170368155241251944302976026876400713213701443241087781102693995594739085955576149621200095775466475544581770892944035240286328272751203035183012202533438839143586832042082327472950892084621411737156835846986416448365487143164344800825269531455917558496367256696299313754498212118924270715526100737576362128036485748963169772220298909409655419675638146058004895318909556376989227988039048126024208906609127999128412824207752008413513051184905948554934612881112813972198406214691277301154996682538279449494295042421730617712781150234315491342565365783039917602632871564676914037700147320369071004684940179269903560856021685593892532507870388107747100839891558071230591212719064071375544438150316104115324568452122257734239329543290414075997135269730097048768736177856329047939566721278382495402572929235066122099708751337518766405624573932399060255469904931049602475561535710973737434462099856390087919524111780209174784026383368447599764011845815159646933009366887676991446283063970662373313227942382695126522909177843600525293784953993110424140807270504572048444980005274774071361052460372320176223878761763492352736056811751558006342224735568160195521431450047600652708706711485204940983331621020156097231061248017268485826445225701319749081440223110418106614920056672553416440782221278412213723221079582297887084076592534099302629505081699366844202242946161890957395450063945287780336746347330587153492433102424149592534771961653386363124168760421636134717908268657556553326139109058112587273543820694866986589531433361125565048165336530904955863931641836030303415276525491645371788919607652034490993026128065513112505318467804298802553413200435787032313970705967524308856711023927595268223339201838525275932773143673992710506141681272545956898644642851083594246718215266571750595927412328054118874562974490557006190012166430368468523822281312075809995660358404701780300612789777991924589855042039682654034255672858356770519401985413024779180487798669044164064330021922340287704210235240110201772865105024698283909817944808147843579897782901483090071362430391505124728093597746658970049180885579036525553327636811927550479769411795442780169152206798221795997734224347579041127278562710752022269185748422305621178397209129528077584277979273910078080334532410821064319367829759937431612817394016268481393258488331639431131388268190187071343670296745010787205604045093109155901399339852762024743640105854907792556370688212068644334251986893299132619141521120216053141556402089829207353955259119614727684879366057666081264253955511973318769870194608552221254291679483344250778506981868064060913119030743834136525821193622147948058064986252293756551713347049792662849424144128033833454333767226907661571372180178198717796700364056020803822745271335800252514176374484349113658452696830549609335235179066072051108850536061066508610343784976795492584600511353752904185881141552612581824050566679571378947306875064084016963108129421123088092927046541269103102317048904441868096962917591053380353082644707699446075196392728413200007572299706862027860847141521467521674207979616781858358877731187856372575515869559421992378233584504855577545523793643353640268954493735923470501909460250045728677027448724579696947365019159388939941970061353153088820927507978505330844014341662543597424203107493714465530017495984796802647425703286484159271435011856369541069421968034092159731164789278773336371050394472840625671326235819527804652385501523380591909705293690628698039429707880795836826531133205444743358267623724686262026624561076102166536196212047689240641872082859755400253100838606565358780018589782822952456152735987246955375229933569221039669761475921990021284936504380593482892394432420815403864396432253912305021494166652289469772081324229195802153310879873641748196412113171998036992184672837247035975814264425265560931072358098222966294477237695435170734879512994511427294142098468782098395481486314196620482082604500037014942423446410365769536141085755276452696191010153151443920829401692979189627137435033497344488106296591627362396945120495492646001931581129545140453042664217383029959967170990941019171516912978932472164722988369334023848621183109929152395829616679607767498459888775811438307825520433166490347200832647157111219584572807670639853635812659503311277216811688179027925221645660153356283998020849352229581640761882654884109031786581968496769541158397579918349343200696564769700225348302908190796880753008407850166250127653332425517696879481457079063455660722830566421574058188742115080474630265988532922829293579157793560507554120187477503961449431697969437544771833264112767437653418221569420197286449628453199091831553973798149734364887569743735220680525031452437865167932179368553027638106817904877702898706369876955943168409117972045634585055637472922422573746737816683385745663663385888470094736483669945899806195748653023728964720280557670223760591190760033595738088432822550451962663559603226628773459092624335302790404557861241725538468136354571569461120209854522746873179068199236627363372506207713402531659134334481810749166233202553876668444681376959682227117935346035843722416943063764081709262612813325744122632694797892223659956809643571794680516586549471947263191488043404320932641649543104395662721467638287401066092712161484251541589261552705845048496680399844589855022982091029429578091996578079743172753616918625403283676388023254110121775214002327176998506991626219937177546916802301963676522022848981553732404835330824102037623133541158311280477227747814871443355105929513066770426746896160711430993621197523590332699274486696258549683871281580796702116305412490003651399729565508698332601684610708869195406471166979092695219144288022532519492032508664912112883243060970959720295674489665403265330432986080670351669315091388746074310439340418702345773788454507989989838227251426016550256557484595924131771057007395443390005367943902575804268191027500393800624210341078286618976686296852916064894383293457345142071345917312382954604302363158975989502985220551522798970179071616393992570373460120112759300277399265903408338686869002842023010723105021445664766892993143757030910810156853106678971062779022106388307384475899283655816219216630155321624202798023311074025415125987738620883617300447949613617773592586099897327442003710813381420486202669006320888769547371985866466804747618966343358903964245610889470609628446617449974220161573975582827982983909509285160286285241051165885611377083985362775098385437108254006548404249576450983500486796607898823007857638603147418182871552033424420312581810756813083693585541503069681973793946129386742968398217165205552015829151077559480261137731693573298841131525779908632472710557336684433645330286332370896583863927643792510705404992965976596374236448124020563042077707828928373300970910888100618139353989275770014958602813446028562529300367832263923814954519645652642317817386863691311087889896426204921130265702068959395941763972227544209791778823902509047598602360788752431568892303851172182133888044424558229930483574185797287225149302496097121388104563218881969063674079917331896438919434482363866006674927590139633567981462512887646889932414762257718357697377937142021188381200431703391141240635842802363524198751282384458542461419444642740406496677955854531292861879871926306766634066432346280543955648180887449598926070711459568918294695534008077067139092225654905217265127125117248813929468931998354145290297582795652839104423725849364502887249256327744857732059991790743527296096574007323227833051935702823619378458281073000487896850484032781210877700822323121420537577486284739205038395995087768556341187540887004857488394237219212649735214094035522967168667337137937574421679586665648617182556180606438152149971159125156898758333994724510149862574155798228198396756552049172576952383956187249051232339452112880874022704093441080962992800140560726108247999751285582400568401466172188786054580787357871661046456263103167418902640776071231501425216498135127477878338183887921343182174360334746713659931457051156663404429687269214541623511688443132851870622656013359456351153546282406089936251372327313107811885477795409146662170053806693359107829577415868923309515727735419275465871620150481431383047427561961154492783966835609029818786742285687470206318786113008625474653098606154885440024652214938467322505663134975906007091746926641784273249182384819425661930329021379824061885929242015669334693851742648946264051556975992656529151742094109348980328253540233222969911840278212659722520422879182717500643441869741406006449208714349601001345078267500129206764866434949641963434923240180353843784282887471074979466853790569439967892706695274010677552847323696879187595504835614706332471123874251076363134744893377896829288337933491713656205029795400609398056039669615197733442156881358706415787883116016109238036352094489104351902835454407518814194516022746904647772806163647581091800408153372477532873173952150777790277333757483470140219933684190406046477369492744881375979502922025115969326977352643060205295097717807346178244259286415954029026947703756251683000164809024829757516200584704081446333690619931238192852431208366241069549998304211084957095849408364623940083156240606818710582759047477753940045250036370174575765473527908366089836659188818303686032783302087823285077262617158313448827030844631018571686530764221259512706830871962428490613502323490567914122492406144655789928735577941454753098131751679686282044235864268630401639504349926986766355964137321008576779532006509285944153448917876675305303503633324675933308316725455829572554098050200679780463605468670151619275433231182827967047328991146081672513631172829472682605925502020729594549218352980224338571919489112306238263548247837770701198427052165079421638613174305825408277964556949164852021428427313953236119495866596840197951037415375994551184332338539464047811614910770161583285353916749394417566521123056380761674507721444904574238920736931174389634757579828565808181216233030886676694624182648318028451428110779890730487393543419458346990166538411341257425087943369155181433544276121752309460111478104632248715572270965495407722784284044120397990154639520699071897620533838396699627807930118591773824009648929810520959557925971871377351295935148256190526867641397015716901508235598940876183741573913386991564445990252866648467794498126758642590117270504673780372490737343395589955726114490206299315891449531799461565841547953888945130794215967482521614848411893636007265278693289728518696773009831091082889140030391037864589634387928635024053352333621105135564225709522781056019361060410161744960344906522964707777313423045940365131865107956379715309400901186407548799657077540162859731414220237816015906648002725208368553384819094348743147935187738695422573651868486660259418793036797137666699539369482129559771792136133621490011987893292045306215182261709039779389072221132926836123969868900010896633123753519671988289267325623104227200948598435724637219460895756788194959842030758829884844630403006105842693418037966463072523059057989542613159677079269817378533701642354884760276634945238996369255765021273589388276328279593110560070787564587348115120004427263623838482312676356733747594613159048497471948661607120358204941655947271593815587044242492241674358568212594222845325670943233790717728944408462060742655646676651940181903896798616400386565398769762315593356159763705746748693555500501911311462488660117495922415191009010117209433389959793103647776466751861688575599579682905572368585467071999628562590640330900291387270772211191399716407948960661048310172736040687505314504310517893274918426257779512781442938518283726702773031418688989587743219336202096824433709362111027714482247863066506258941173614451800277745074908338450008748207820129598019431987456886615149653026726117134886762202231645711800321263091804402734552388460256123404191953376915976039048169748590839389428381011142212941105422944009958782935493776351682057578483375701984651271021250929725550925227387062468347602545547216285120627965024671646531013451704129886224208394121707409842437886845640994513240151054107369455265041497695103250829152898287997570807122567696219779384495887325848568507846956447104935930688771372734264459323814343315021440362621694908563621367859099455972625099883190277233353354056647997959797925784906675326778070146390872477376108578797752153716514164363648673058077453504553493549227475061446855821083780927205544405661562958605812998803166832256035230924943187240197993250456215120701225063023843945078206327380706500983748491197081302797507057314264659027916274385097133468330857680062916434240534036188161638405857748519860421322793698280664650356354110293714471376916953360750723703556735012390377386660287521995954624524723511643168607168627097955772614657589055928388161554609767798428712787651284146599179168111359833984565970695214418623996644524248423990745367009898977354918741654781164771681454681976363888560778440836026149257781337482147561208877987643998411435557769494521152401863351970335577349783428499579116194317276253843177308501005332052579223627755527077390872285677459781158390652281658794643586366814494325737443712648965628008721648745226425752917008014447049716005363232136068823880409401395514719345914538708206147214510216701216563511521027629483314889119963965803087501736548984851192161413933977937049851351356793270128031062716130033741974922645936589483270341562188522118208636690491653299497480149468041496501823354427757948005586455847149462407849851608640649053903478581098538663596491883566597915572970627832164591663770312710070865337164097959299028585819269753166833013491946789326214374799670678826117972437558994647249086995299546829124395639305604539842447911841601788836169850256567831834130459007870187448518783412074168699139292528146246198361864978168662545633575694567087601584377877332784065992863776668558956769845794416964366823218155462098620745531560603694686363665229225106409693708134211690986179644957253466337557910431805212195809793523565799654538177935388310903166669896998353149489867163914476157901096849432792799652860339678962053566417153302367757650580289720532877246455095738548097796477310837169220119299859126223559527236096045893660338527946294318695551594133659389464181818351951936825108686696759012011054358969839529391439466192701406042037679648006917165572077494595691773375997145243068657179388659088690634045614072556610757699740086854111318162104709408769413984139493588870664080543571144955113834047622984428067285766696237002019403592603410363241481615586996187730390711868232478219433558047029688268767671070703767205241580975931601951695478523140089508336569366633402545483385714562633006126649905615875106854196159267594278151188930813840413397275961256267232619635640609170774385531820830156006086053520223148726930975734486043331490168131924922717360934746878581812602194616321190992455984307472389542715736702405605912366838372179002163454174220906520417944223210236470170258784833694923738358697883376086101289598320804812843781175147088081422013879166562607274242691100102382268109530760813416150589378615503984867752116656538608984159310900644330505273801563709174770372687973627415286609052804074574818349206073634139513819879309516009057885100186131740476015108922967770365908084842684180931703230401036170082848340036936608361659929240429961732777135509530690181868332457359337095815573916136365330887929536677665662055683772435231232870901168734112551515862562054627110102857376340713146915721158814221188502751927745958483316661807040681227693665957343461395640356155102865261062451288805013581929231548170805418421168869786814231101817379411433460901003825561416057530358054957301487174844353420390728817479138693731085547204188672541176989888009512525652171086634866911644454507734844481089779029915777674275071208457801927315135567448104038550314142055904739195069781031540572533921818586800171970336124097372962048773631694886683542250527065919446503823416086005146856158320466112550642879934617087990790868517822059258881221716406447335816365364466782760943392781842744445172903451478361245512373076420548069695688420003603088461244615580674150156345143669603472085837450655280073633736605182974415463064994920602380107387996164228533277411537752448325731822254686883110939796339240694019074674164066995887298209660350025318122070567093328741165807677258647872720624780105281508995119884637475189937422314561165484950827182854631280465491122656973381829179525036591749259834962745600944925704631452285833925049772684419023472729900392829331434838521125819837382806854816040022568610895325738408266256136350222431262972652120729717246943035173663123188883563290477410921027501818751899382991971155725448833577632459237563236191919494260535269224560582948229149212888549925851326844463538141151115127126043307738708523439191756277550203561434680577387703605141689377094097879444985587423104837716522681457808005090970929669893896214757476705717183539421931343681643704528728011317574477429566477707340822175342172406753106850563256346329868467623505737884071601131547573260021861687264763599502802705654031922382043636183911360284631056528761518922509527177520045453173553543158155891663862388101173961049745371168569386418166315540753299303877690569738536920482137284512977606283270277433339990073239944175841609630478696605437188556457688357453438138755448580910491414977282720839028904063985771033321878122706030329622868254844170036528274636901958421632201449319177404468054204036034864426596855502783712258906582236269828494760521934043166634653421126531286694089040973025003118494824497086753552989343473606636449090051685600039486085136148190845661545029065655498010409793205014430516854707257565586416807094228640421861594574634472773612862772303742670036363212161357152020964017170059702852937099537427477526784254109408584151122454763458564093823306859465677252879306972334525479884005158164165688093946478367596867346384095860178387310667865304962297260887540649644270647519901818007857679292245357795498769988627943649719384487991082368631303798287683202666679824266365602312673385865318644961056370009202470107883430549246531071604483613517725798232499174140328903574112688333362101702709805678973218904310253431874830839579656694233187321743578741900545820090429975546058466466125640300771616648150839683647958637024350605064940845143556724187575762276191862917692374150944890496360940676798833925940544461991360026523551859791383825726892982933278211994168639081686310966367736637917889082346465489387148185140543993463763072325900652714768444773604510536736112273690360467522485465919089919575223644015810728500493179827156345236999084452089984971334390886676428519468598860398172174176225027537683520780600873573179853631933581423429899738226291534588279596545826628907536812424945539621635316770591435561790845020524356918912480083353310309871952218643969530223498669927155646883211395811040235985028233693305067352504147571043093001326638717351803268355285181967058235320825283170554409528823910923953410492545892055024115970065922795753946108433405912295462790167810937355469997959494409018818849569304205762081231450223141751868099494000428219730812138086277254728282110208732793015953189900286786743771306424604026330899226242886977579178109111839305779443878467375831055256537110171757771570252005924678783572711995212896614286166569610723263879149712517990414680886658525510477478926953825115959515563965355277340805171796562524883545112122425814284651564928098228343583617785851500895108047454158621238300041891718803082723669122010675876016576946504234745824222455512262272905857532239305143189643145228193544788766235742780116696487918144335166552401037834768210995655595029760757150746800608146095881341170929149055298873110553680415289882653400957093682056541890954480444340710671038848955251207784255293024277890002924365534865927023881315926029310971792371653318494648547418051334686641839996402316707251005504271235125527023434269008185999344205925079955584551913628172547561841598538351565040300755193878661141454992833787372196674802061682287536708878815768728975262081410693531874037809898477481440016630815497007371232280565323592207352189618584640785288917351112919393108991117106849620086877051379306300124628543164833934853168358315848867540821189729158174051393487743635706175262581872057616081588200550387093327124899441535302309467548716245650299472448000629842907062746132579753421619377518373312037070796318336606022415962872519202722839865619601761825320163645121984748395241445180903316238290107978565937754377386706389037389993810783964300348070689995850831722524707848883653695834479913875203641411884201327811394133020852670836932617358381061006020124314728938896055484933959273279169986315378592138854091243000223485742408775103195612714165864896105712850594404194240642644581526831555768681875865361268035140446447847817566216650620807547006463799547853522448514378379508257543276368436417939363402169746207233160972073605752752958702898078165797186675118859019551688340596848694155025606304380837371204596746832188535235339997036356437771083749956476371271385343149113977091871351466648667021772076042262205434230652135084063837273547105314564960463340487061130077147129198124759907229645931493690222418937255577111756540062950956422379053414529040828984097782482496154053335951730016022955683015806253558934113672095915404602888045515907901338302660334118692816690568021302698334730842523630313337590450170079377466116638272577555149852565287501197760163977276136852611838719525713636563369720819704791949511865251594418416429217646193996212645420341806965485688388103338254913136681656688845361872056787208124965610519036447748611410311359607227860074597194108978939989325891797122365729243663134219004861506554323395418922086117219357109318365038952246495037952010462493273822147161910929365509384956503090100441373522143653949465237834048768661245328551974790941865223120012680812633715814953946132166341169626490596939939085896769321594238616858181159305047995100852465438269244950617788488498792449470027270921453134791825871218894236270674842073572588456274477421220093035840609796316627158901201981709695649166343957357271231452796206804608781130350415737707213495434686484009860557176121046734032189899897880269482888416383158574065463128562468902994968723167223595777270232426297298232753410005884194558925507181039691295188318017519958892303052473750680053199767729075640772619843697714723238187712097655155722484408384635933891267038673794437637218152017631960895899070740951430674824203791919707379801884095492674834227656212488626313201745468890036780296860333622372102734005509601034501900580275352730609168096843820247411696512291754037700039478818245760784960205159320620738710986643616631766707498764779736389761216748477789229958514787831680580019939038184062922013940264516023946428656054260014457248967807263273927446945250236686190183999316063066119482884020757745794312757586309742085052302175286687310981490600634067213445937840764616238346742236811992557447862592524454040347795797747559198863715565530469893837026182309269512281001787772958011554353675062025548435557621425969883351009421120413381833239748469916360455857516690204527097891840327089462693857452978841333873494171780879286754368876335052677160021176428710003405968451211668138781540701611583278381140939056136782477045294431960082988690999280303954282952643031135043683483223570221685247916375184439558501766987669795448474030660795436132391485232290507167247848234798146463571354355561096769327039992992992651868871351316388396794354781924025223673963240688253930525664555986670286016636846273918800474384708634789410911124119379917600156216864477861743416944505620052401103672321423650514553122053206086701139932874160687915762629764604266459845344303579123359080702488669294962940933648475568076167228666165035524569227091147725584409955526094213286849037418070030067397843342352892859416236734535466432988801346700670559576482024199522292052675269411202449629087894359791498240307319711650064754996113903945216550117037767253471808120898284447124251239481890950055662386718231865624192367500078318311246631915545248860759211089887297901113001956882014318307790045972484715814145378615359805500793515715950682866779172554853409178181887662555658109378525613350022277705412926797069836721714529284891900135754401176523718054082500728916882495809612237035773176013038288202965940849600489099948510796373155526087738773083989030315702924130601495549690008231492808220041973967652139127306212613307172979943640458743013956528236077688783642582381804528728502909219148743663681058360850715903498427056397577087521194248166928179171829972147853905365109404036374333485715218561101573678409211023779322018464578602685384360997199930702727372609419268638284367418657652144065434906029216775732785686431273809870975920283667246850819448411181961829047231821540185017151514861828332920459736258199832852879715478862504824416996942329198861196548564050587547191683964747163999238554126608376432293240814661613597823678180223959519308498217597425774823574118532352167723101889563348155451716524579494009576900658089974348444165743058643922871893463236540847510057240555498004056960419399056413016359908697964158668661031070502928444584749442409484413543383168860882770746186095093197996550818293572535615001258235595918707345653467122589089456965695275914715088017794826544492143814486113527867986377739619191602845010686262875056891260063880109877657367975862384439430462004099796242429959847398981325618161627363488470047827378727626840821064412153674702964287114736905983528883324735147936366182657407110211834600062429208220320391884436507866495743918058921591539416482932995672232731123718149701949838975478559466902016459908874550161605807743414283835045498808681007107319847383987156726279541096326031154816218883096653912388454639984694462262825257771916405134556462968387684964762510407249913016990491708611018918972780894851878799536308854341321851452648470182425077445017467254767914673048539147449820194409997408338487603158849862598811589390572208084002808105676762741097885319153043855980792493218214527409831087893360723093721507843362436767792076390507581785949499873170151628930049215949487051429217898186658580293975053120824511767067700593646588186330431398451001744927232862347975668696057394067356789457000419644813246956583187870668970305065314852002404867419495412669881095653197497209400299288772528904627061784031146073681032306203758716521339941908668233004175334739389327798373508313916588172860431094054997350350459698372687554316790638711248162456486298087889833237179690535645837477761643402096531565203829077698938902589449599942907844859610459938145115371185656308129362925613568534164681342025335908698528324140526182160918076049475724956268138221581897555583202149127002590240807266076380982329110645676053786695961475150451815740646402029374606046300479704457283649356192299520395078418967878561744261659117850635166936306993214272430460896463947920833587075629549568929768190947995820290176944928627521692208205565740393834380510738385498521674864579198725198392993858199987966322045116403752598344736542247123618559911582520209709182242009305408062344755056325604231708421377971678567338447972366712587465230774667147139026895327925432904224818067979253804730805334737391844749155143092365385940700735207804408673129509117442807021693344254580488771094356784664873828676290978676423109800337845362687157022449958495850695285091789174326396603973824421080113737884448996451589856697982938812101714303036296023331617975603855650698329651984116359864600498632619042897265945881836099306012764892511246292938232464144456773718719917518731363944944976318468072541920477731615393416117126101196186416518804849113607477106668710027582231655224165227206764822096529644617345129929399722663247273042707582408247483057092382220424466827152631310429790349286646489250698812620673968391163557302816431478099697655286132970882428036912850450132893558623262309380361413475240346624332047264816836754650317925246034674986093344824297582743858854409125584106633991898119112034048322950214755351761793500726024384481356908061783217716607059631028549259972818050431152944163123258064578553212123304653445999446123227359963582470251074404987326444983203896091511894938015959566524674643626735917383901241204320594825419239346186980126207011069756321729544629995284333577969069208167278585192067184722974200340953312441007177513428909386856191743231208367782308110967985762479500848209536184632041474647316293157763281674561533819349596368112488098005705241289594400850667889384631661171560108431466688612738290559887491374208517221418318292984159028943371135407113099223629214365137001489526647630587020992275251003745079512269617540260552347194020302562072178953707293385423705978891388551735330904090651586205770561495035961012713229548842542761623638644062612530118173517159694009240927699012693665952341961545609506291207372361363766712335697323039659018756490833853335982008987704073031630478343456594604656943532121332499503713948927412113402211827293027161225509980408740310405625009453086835401839232364830984941722498871091199420682146260677523226702262877054427930930019091194195375933606495850302241926284441440669772611756168250071318665809618267670037084170224480554933395533005205828404940185447946742508042184304915611731385219050591513075065257452177376924396031070756023363577100344962076061473383224077483882617215557638213618907384458611705068203932696237067392659282471156950464963462348793980426187619381042069322843616867847278907357222377641891542963108891585370940929390926981173691883038737923293231643005705425057644543231938744303507086308232096189668809461089145399756080645477277965663983198567294468040726163338582774914518654160333867484661892071747984016539156541072508241662341605212313281666013688796353245823211441034970172965867149510840989459468245526136853333135381290125615620438382857435506723269153167832523821069992438705787607354334555362752487789617777736575213118945975204646277752913234863853263334172570727613902476185458907800190708745284640882126980884107249219906098271775141874872807803294570797996311262999765341556159519034172124108666512960432389193493169907048461868087814704815199547689094324001717273660921037139474706675140474189836598227141502611464593102202945600934807752026045638445709983383592927186452373738392671717569234214849152985894133575374934655459589165650507891537312070337155094490907448843783896930680833971682958757196003144637683264225529974646450616440909413236671101014286229894495762471883068595111494710778581319856302669232352456514064025013336092398293972407279891591476865875803234312232115441055666416928169834150417434238260291507368265114090748276549478999475837632915421695446746833430105286849215497625712651270061271056608453834031441779994959122365523189938314762918663156685768524405892932797389882900901878440416025992074750837649286791012073404586097082903215929829162233886259206136107895051672313472002021134099949664068300081068673652373647350314516189046225341066940423023787252996966971719372993623361088587241254027514282674457720844732289331593279386218006250118062803241104305228728760090557406141517821933335128748266949740938550157161073739909244046745322678878310328779843550993525903315586075586498444340795911771363709472827266128246260202952833564340956062500393734119066598603236681329569124342658275283871043692276983244763139897613493204119329641446766890111363013617241934095241668994526185105156090866916926707236770157536051887317741488389539078584552355153896393728198610532364065770857450134840311761641259508648807532254400657052622476441563362837297084696725716446318849504970347256418222000122933040189605716486780909841711976750254426116905660169083996420927974859868316264284825870917885945022669656715254618338238033793830905936434505831227201042527462037202986629599581132386325096255922131752540448108918035756118146818109858078241949891565802437506964408292942872235058538383381298856719983371725579433806364527684165122873149605277680112020447350312019018855560071104455161239179153389105142301741325129335405230976947327030346786740201506544572941151428196647486957622399052261058256165504517021534638862202651210895363218786273482425097064126373919835460548376502889777701051248725593614015869684150951891451182670159881430622312417865704275039896203652784455711459687933065861875378477026913299279929288229459851596108820832724556329650709142812231564034502721631761083776512762035945604668225744363040109886490797093081022302433371569084103708514663909100108188764522570189502773039187686635367716693914420148751148327460369616818180085550227497241130277859035682900846787960875873354345028038527919791790964905898523092840966055573933149942071314282267407261746164882095325187800982792105722059182860034450697488917092579099634743235685754312672674253333704399660513297595048922963895529102574559764233287414789150245016486752077407912363516457622746513186485995066128153316690684831583687921629260183137126210996675520995256337498591574472067060436589769471532313033989131396519761135036030589465691357493620078886894217104451920850314732868690691385793954951987774334179410308683096783064602313974609111080641787290492126271124811350627579912554182216901062820020936919750339649144866847808741366510273502613881031295207155308348121449294968127493504378733399225586359206300119531131089022622407565168184192186682291317113693566034926162742889615237123948850438346552682732944145780005925243690016674037341624984299773983695159912547651671820937202965255875965429936255559695819333361811932536121246736566407550529941389239769341770344683670924649216537629479801181688999304234450749929798876392976453521384651059726788070183575861045247911306250771401291066374495810687789990119066449746415706424283357010512691971077070342626815846469819160709641060686448771912091346455440282949468231673879234206621012671412895988627993532660909534680642026603112773155926596318382711625808373508152253834404257907753448661038179043756136699658885759349504413828796540027405804518146998622064718785702522044389158719570655333942789151678394380546783303725446005705470211098947633089699009652644530788540146799690749132431697204151240930628578661538617283512257753778857891466300946660110611903568853105378531099885227831189275316149217052936977414559113286924667369028598052382815464576694440029698984736212671852152635072766801954965740870867826098868733943548557426294125368872830960385629179805083323926525583896928831587064019579114785735891062282325355102575134295574853372303289602680257930091644884736655965799121816055285220231005898116866176931163585490220564792100305873737066187509903826706984669913936484398749789446700878786628868680871270583922153809848853699635179082439737089773271135292195063190736718228831364061304778122444499726327039898267670661749315649477577424546713538398108410231155537974919468135740151778034632568968413377348337615338495261757074884036873622608213691351415170016626566791026087359543052848285817225983477897391750834640631066411677299842385846103997035435168206067376043208127436807159969703994684188485047662097514949658777042829804234857033095951052470048619020398351344794641463154699186241330419416233584832256354044360517629988560701675805219085815554999904148822160845501434818421994739031525024877568669410714774956460936501762286960166670093811853392283530849980734273981800263693684855916241598207168305959292571521802137497424216371449658957427945018173053644245495144482550598464098718335165616913891663888778255573615089302095396043045039437688789543498967478233992326759798103130783741368411022466621887541800602979899851329637995038910386605647792749680065396867938853835339452837946367067607598842653132253391247265554853222486259862674410776532364157370175375234481761590374981094428093595543844252023518448197891792419514412136122930420938128886085850097473747363145683892962900804567739231044879124878949498943371241551120610409272951963075176536564672896520504655104415080868035500539378685279449013971952386501204195692234659827787450813986407201184171230691489073798588083816402794928090916313316815180008525191658997576791367976598131588756377450909263351037011943106505184689950255775965977744743767638831768235783749104259709406151662682578192621932137562755105076514235476373440162128211518824151824103569474206652380506935677204994746580701319588758803379732263651497226563527964026166562606806509997323729340729197612156249520242942303412154305216602592393703726143159431629008550786082436023060282574441520243215133675334021638099572032051343628712531409894414207282225613724749476435936728090259445329315724104250559387853111097099550978580148116223146315471412533159790136201368251559953131469582668354839675063453543962287113158284315286947033470537350777915367621675845598718254584334756711865332354542685425362521437094585140208747278913181257840826957777515882435709053651291071282353488970915439395845824343403244399549165806360242387177112133953415448408634641927164276357752730019373468302509663887393293436874142703431086636172209902565060899693412428952245293766049262008494928932019829671124081277283823977459319279934193191305382638604799797972006302310772048177455331794322969049134747858506757435234458412069186776487880034739131925502009878842370184076419383154366260942368237265664059752200249277704245602842134750117856614836323966188500957101620362200395867702869250780356293042533051351774397634362231644867341340819019728205098405698578997787374111176514051528632134012436629680020225997405653867844348792465522885455556734568888029377187596221267060146227852279907889945063072634713993373140285594830816471093895087340525516288032346114592014211731105474130847083367638739693640324898950426851007591561224652835350688619210274175856002502927964146717938694237174223071286803189115199271054462376693329940417461587883671081512493245570871050027097845032851910312921693994586481947304515350467762411831610998902278659816613721700384119828508869663487185931205259210123923748172238904027349474449043755712893080852518065243384025972641574054862771717626654252908085224540648491344705803188723861899254743183606727846718688813378571125160805490978018866750921255781266664806510560343330476076639843641820605043821510346050290984462553656776736459848498287796721895022633229177930286020346734534749970337223886057707845579712630778840599019271005191344658211277550057958996016996120166172234191584174919928858037217226595249514425242234317440412162848866288806988268105364365727165846829104354886640132658156832952379943450988025377075676108909940959448511968557994493672114246449769042704837656735235022779535653399727987073480060608072828266133420333804508023375652816548594890840592549108811342961463358536055619950028944944894733163204666656290392651248342912490863410258133426615151125840028267133373653022496361640725572809144549038068480264601403987136989336724282848837981144562826433318488594063956276481921042061770226074081655027884207968099627266064066807952508046264977315695780577787502590135145359686171092041914206014314965979690730739650529711648628424176308396926653487344878752237246812889317414503077386627465301167563158866991514447602267225345682029798491684042936766157498312815228112567391270687766813683676353694301293354662442156017084727426868813274185775335051748184704174627400179908008620198196363581751525531215058842905690372573589029963100079280064835214810534583707393914426826012591143773136254674909249673826999601675664643024196834953333948121924018106117620148549515356562186866182713524050523318835004456397929217836938421491487782391474519292474734550497750873473682286848303480331457330636989410400937072306351676084534512785831984602576153618510748165759701684235247686057846587796297382103227518358257953773855475074751920583884855043370630259591346799972326280186443440871447631181520236397606063238691408446647139513842346219799570939741182232291362371509028871764412561098558380238060909530962581445372952150154058404974847952091721969739011318495206442697323724062847351542433851580751274042625715576871376340833113082955038471600589928914749376211575019159038380473951014466171355070765259222885604340429386748592491828483055929254134272429457372127610323139715595075660857527964165613771752528038495196264835247916203065747606517441006476539598281974453176252063986035016901896784814680758143106950546146364709034389598296943106214986856946622946054378590204317135305183375984172125801093343817911827778433187334230752583476127006992175733980416521788516516411267113007820811628501323408209760826357952630215831415078760000131454144330283332805314039892029504587081245009901896849991499187735281422745935048980380595406364769340850268786815409557386460317785700174414763814745359314494746616900284589480614244930338018379696560711004318443276119605454613319446951159715308930959929589670545418414684194882387748230146423776087448994320177992202349374041126694502527997396681074514338736084080027306121975234590761927487814740264582649954550148645041213758373447356514144094726171281533413887711064630517013497241735760063795335786412192870233430140985242127184310596887357258243812298561478386424126203689903972688210276976503290690392033613750629843670675147401614727234424786898629432895682148424765048419554187152722475849644396510845770252826622454454202974667533191697780844663044014251446715146941958267503087888151835215187646858183258971063905187664698007299885969124432233468943549240336178846685716570250805731773265668072807254293521705644100698582752066291727761856738857814937083450961447683778752155279858814091127314579660033969566112675925022975218730726313690197329178894935594890100330414529492313318073133055394002649671049095311480774404661153363532771107498182067802108913294138288048625084211169425645709231745511461556612451782281782808641780426479506885214694986471988980797352572848526709067899634225770658426277751058916271438692711197376028892794768955479324122675464382497910349229270711590880536878186620903617773108602515162116527782231569540556647229382721098042239332373336821755775965232868645703551307780841222911252493183772841054829799838898581170205203989888340310216592127043785134738385085487130749148342172681050362016905915895495903211662180774214542931535597771936635079950332620339570002183898569184776387350768928837949231060891137653552526001283319123081849447368656257755274664948120969476300591167034609578017640668505276579798121725921271245306359034234198471968564756963311206891384188588379981758478721424760575757193168255982068069633329028832024362468494508859874672603394593294737973535864033609388260886424694990223621918757851621756975020556528192194895401528381714471559620801061557362558794238198954919477089825730539826620552072152476566598712923318326535375886322110042493628992397100084343824900433180666801233183380821705521064265796776438031799694449429181325156433766332830011817267463408746979943447622866820975517119298442767752945640965463282154223517139023337487210197627799836442621890423195640005463372123086777991573533186307812471046772807945600120488114896537778333622353087988332055204871581474827428348725856283926868156537965350827720659781066879632619350061860369127414323706933295933863913529467446290530340955515113579721811262706379788679631108940310708492564520828592248039800015271011017752465094206056780128526321909684154667733999944441279428723857622750261854755964511963678643705897942835225519150928579448894105812191996160868454528251092364661992131882177539565417425782624608402368454336432529818194419733107268272354754157625740780462016934095650281511881546663455868238107065000429920801921438683651099267183858473868505233300903470961029803881317016451697463691602745003347710442769932374178491747770665491751633853185703767076494176266625657621750594655628496198611250838381102436444041503882049301284345145747741616712967652888536670564970814448779367651662354191710637785648319834484345471785048337503331609617641913860482960638011832704810917281752962318814542474714671381893495331105525043218216810413843457381306176393238589499434790251556332949901397335267970455743562021149068413411189527397591818613309287557421068743567468543020313436093805224206759030820275585627551979526061473463174586884503824757686265231492625386070246891846162553353501368533358701138518838003439748686937620152802138740398802577436005334034214972146789649070173534313438665307664310761502236150005372174888088926201246244660373818619605960202440381002220573254329056410242171334438799464564488914496786234706050286337673618207960267493985509915755477269284837994601445903503661872074686050481852636346508982359204115427924744493028934032438023371716001301628013099185229020769038328965046403767054022521903171912316129206880140019774450456910327686807654008333722893724585943797119860739057128381529430808335987822208050524831125104026473388475926480144741556211740501442963092679310581213947693301218142997896568470144922880932088139510104572589509522223277301743030197620112060984248650350722178615741501004338830275343479758443285481273106867959858612361315114784447314589327191011730547803067744947089193671058994342644536047777924712768308592759391875485723320353520620643575219435558484080283938007833500595092857486449564505685162320628865129356455339453540888571257439785073926438680820026465346998995972013095850401869648804287427033342580655960053228263917895973826921901056709874070193733977657088327725643343941386910095104386224046420106526335036066198503579930336838355909869850793369054368843060426634027077596681489338808555940578311436247221157160889503112676239550003756699263013266359445139547990050318476094500986665796043410996376315855247763998806610235426414147597430896279304994443980779495453189337100556882291789505519779284526408831573477642938351888618616341892078800242958533369835382321562763401900693848232111392562140279841483782406497864605823773493563785592136336605773490450512300444469269702226000960041425382955149706723738161851934532055298633362118781088277389969311152286247300191548334391189821981955157982023946706614942498006257155979793260789284262698021951194026229081946998358553195974715939274480779827315323429887046972681597079200786625369147945042313466564574534548462214000592169438584043998319955542799569401632434507344385679966917149126781755956201448767866229120473427048506467415231980471670909037600119318818996909745496660901554430519808429014005832080553253584001021419695490857911361404008761327990810127554764093362162919298014854613741401498561815455207806401870295170311204639945078889686568296452727091215743782837560249537407707659911820592173709920059148985125760113964990280838447936990430520820065672419766711169736177228168708583641462819549138504707834862029184260331793100489557448755026088515198440553900475558901255760525421603383496414754531788308134867115621962800615531753914807721933345738027768071794120176255957779147378964581058245325783993486112836421666970873222508853088973871221813877263165736609669491713062978239013810404214823567017785637335888960877155608503228057760951505015233488857648041232592569719045903735427344493831878920024989873948961347778990838677982097260475796429598861862077495193627361569157159388743276564642371198376907283801754414012346635236100983731320703526227923969517744199931242244948929251110269149547043543692717618461927965051476920962700211403061171971493926993939197634862937388206478736165860274023995691889431256238626758875060939135931423461614212126249810582155905638420554520556950747530057509551719415849933742651808324702761129906381811048415079842848500214065451207250762143734080025914229594502693897614637429964350473004251949760451305009004649670084570156549403200344109819458408100731046135824282260257808118129177983936852495925539032073231345697303957619870455420110659953498096199477586451714273219724213388112174950530131498108327120122518933248573104959818063183166894660834962303977793643704068525927779188007822184978378501832700478874030859041387944797424483747736115465126021499017936407675634741983096322675018239115715337276550087870762633659667787422130646991705302279145647722690084781681294262094264771976483681403395561113402524624527968011220168989371140145227447576310813970511721010639085185730783540821585601718778482355060017684156608454921052630913103994177718707882236183475074996598980301508164982389253990888215449178356816111662848005881011783668996935881228971011865334750130404945648850895957810538853875561870922105591140572427989613305203792399358252289636572191855809802029446597157491658982091450676675526730145717283255139198336829558676858223699629784060958318067738290052909996880115922658958655256499398953801630740851995262938084021943163949313682370804521226851839462475341322233854378949868840275354861405577893341868453414939222640720340155920317824892229105040306930888763527172063082007096298762856617187696274828823672493991017353300995784501108445483638225607569268041974114731503542831729404766822124778920665401745269376935920201925646948587969535934596711089621354935392191573993494537943179769727745104520175181930530617963885086274828192540718613243112328567743411672087766153109773513260223871258900543625844444659768580969744613453209925521347057256799286040678808347501232739330177425672577790178503819732110606830414921582186047102072326601145167646154779532973346550698717539950297468630303332124412549977127003911004089954456039331984266508231377821112538015520004357492636929031760872112427526092985085434587819706853078038524589967217240526473785069918767214674943074224248655144660237154954863333527714967392779389118664734239147941498215675049308910175425113816419091576386940241815787412191578962200287084287172790018497748688663353508160770739428897718260725429210162243015614105835182380883469257686769577170816050488414106570772243679197362170558239206569243102918471114946167478139419607336903429218579501698563072315157488063248758234842024853041007379305337085498585495087821315222747133058532347066020148582980723034831287128818573988356331467169864064662987378378176953689332116427147906699851519334756127816306740789947249520346270668248778063223872226810949362533143097936568005387720332270677216017757681283025257472603634161962107924298485570734657634654836491607759159834063306800456390075813267865908760023858572127470350630165093497680515136061254826595694700328058973611720847696590546520263043777370215908912406181422005094259487474414182916916817561942083211710935882803484043088649848017305682553755280194945249220936820207641411063717209540040495155697213187759318407847366150578413915045650508615707012154047161938986161204687848462578104502070443947636882131607812319515974074501552363258973276189138855813114456176335361785983118717446648165733041164940871954231782916647447019472397297194806760229832929758770453123071660360873617140588303146419018246511025809870601966667939643274655059588975268513507096057793107858728010281226829044413618675274912186319970164110791007410142548408440083548167955290796764403761340964511085573747043892649160089803542905224535141127191614431602755431215604853828189383928408928155857821224835528983686721495232766301300216205633782001720491633189096610004066783224820352388298686749092920475421683488083187901883462222619891075243858155653324705985210438807003011443940679086163551345391814619237991150336053178186662775974639965154768390374259549171739371613253584317395407839215113424431479300575956469953415383530251057757728031844526228604026463097962398391756953700420522422097161897151550655381452930388135807820794159864375545372986111762180849655491644813309253846250295431142222112838250490980677579258715528853039164789768666283064251911127077699177380399123754861945054266507395518301988880685743868515286172486591374697060793465271573605821708105341315495788014494405484181647511945333370754097999170006585920730891414779515720528380686668129200933990901325985782559180303088409980185293055729472180133125653418089626844248962367290510109447260669238690868495788232663376576844561466994470463823689388946733961312339867537318163381942346945982778690669326324649254394063787799128909416978480991063105049001806862706386665689291178810185788457843089199769447509064472554248281055542974064879953740101070147952477041519160722657373013285213116853754152866329457368805696955421472238973990906952029553586084970895296738296053566727775627452888032026666070631009706039967086123439984632049137893233723813931465481688798277546837627315372976079651655875996883720779945744354271447110817630164995106140402669247373718426655537200065475737222453909634455414674044025743718261922944052489762626179002676625450470337057333084884781555477720496961751383553433013892202471668446113382874102426971368737363639143568776703032488753858287799782774499261110864328398857354774411567840019310062754247307054823620816743217308454657587574812870540416878911184764057371446254951177639494092742346015084890734383228275749682451098671299404816464390741832535996467434999521652619104728717002201599324499106612954084337603234069986224673846118991973221623404189081055666602059885829365004846500807944831650320464521740720510411408578622099528078752802513045332554829960329537797084653996232064888409623186503585501240873065782802951969138088942473459937902615041626813104980187471846540922898411826580345437418332168548304187214154966537729988800991484944563050734472815027812376449275391705574339050416978054420327322015982325398140898191412774524383597967560937593286303907997178876578248396057810035354037368701080035448641576663097617844059429974750164859869490122229846679866470522199162461881100250692913331199684555458094122952758399423557673174828856642857788886722250841632746404120002303542223412102018563859674617970000933722466732523108738656637740625147082991477812807379993468399879005010527356442263734157834999045273476314967583107604491711948351878407502832496786990938523838995217593750065505175391257553858032848439719268358824757638797216805083028208977963197431419313298830639985118135381741920912480130302193360405156483388179515203787109251796985132565956757432242650884506150654357930807585976153734035875099267740312100461736401658369115196651095390214014247416623246183583203448614518822628999755995047051556254563581122540769128392744212905260597023679001838627107864006836494395826218549210160683843112366019579541856765468378152716711210060720065918377929613543856493832754216075512016773952666733434307592476743788642293890725147655759047817545007434024251662292300175505411955922164258858683413444251706033061830085820466640736422753249701913394642656481536155915007145161676112147280982710096635469442183364270257605971598836123602470283706695695283242416602785013975072777257168963725244438784573571481200059553370583934575792548378624599502713312677207197964275400327120953616346420120426331293244959948914018801161239461631067411804612977496014397441898398766271943002776284226629546521211621493979301005338176289137242709214480427758292652676944089113298956858986232579133743206583695305441004499283863353808178784795532906588481667970705741062076919514741053932194733030659293106368547956385649135017548565081420427140128375922815831357508170174142731441469471794878214167013373798536557095990693424080609606728862175513751051538064592127106342517311529400286229605967364913186937334195697630594795178764197474604961093798495917443452958899981260539679317098674141201051005103826689522403393264055089360047062589234921261233217797349492499813337143721228876077809343252115751625402134435973771165333924141175788797442006255007943935174879776947756435618786027797646395378412832992359471081782288118765344240544874510165505272157696086328815370551068381336862941035470298477606597124594940746223976516901385207368916111378618483080653287563092565331022086538651927642924314175505873319455735289728451252589674960079365294054631493935048041125071385809783018413781489526677546475976624917174411032617173285819308298149663928732143624319427924928038110291673305670592287555639524737761615542922499138602819531282167000194428891936622200795314301045322534986648757397782606198671511697856800139520311759862417907385280874125886516819988947825040562485369448321553234974969245897108483477484728061521207688023510527637054195320894191291934556512440609241615890806202973559451115770479389263978806545536393484581907071261031613585096571073897419518859769837522709552036027764240604603885448669822853584282653635481923492831433997243227646298596662961384482171205435923404827245966124768670945323742480492311191946304549381542011871321076511151358367486711871958611630138832096749247027989957680804585184815272472908471270895064813151727587296221121742977360692239816059279115913357229869178938465643652711129426577665737808362673860489761323255117974930709898008354754774977895578572333351819275504119301686345478295196991418098926400762194913451044059632968997408392738654985399143623478426450052283328032828679907645940692763054328703459676587391079433852328362173798575906945262271149982802682364062142005880058229746166983317301639328223226312366545343977914061321430326213946372761235523788613011653601708304671595821103795292473848556813412743515605626855997223791418427659229886121082010273133469764963619018640069683758650557566262985813016395863746873013534315290712024294798136440503047697499597415137485953236732269079662546051503333650218438227980860948142851389016729950558468942764353160240811616967888948459992653786734810879493566923567049273361509197113068700609052583609997093638430569575500695177257832868044750819592656214957594270327081020437550511580108456209799722645285978879514677966605864350248582146282201730287009741477251505658043489000152194813782892886281723634717826581427016325651078484023432482005845962293449925369985105828535959119245874380715700607363561248470860271751025397386870012663864278293138038881835722236869763713283686656325585252461755645299188441047785354863759461090045688632414960883856781403628425428596831066587239066070844712331086493080383538438782623159183613800085000722354670511730891298640000284429022420170967706723886103209872528049545236903201766794141366592432677807873864660159359899586149840965220354902654078798911952226309586817953202505983022619966272586108449358870179457985206269676769064706614831929250317756656182568648075858655330646327084766847601959348938615583140848767195577743289480031687161805745084428935594119883607722307916969007356693566909621522085207001650505396714472257545446899126992957556935956558999938138570130683677170855404664263780593674835727276647984894230271981526447026315678785064418619989286545465924866960919375368293059011461631523637649738681831440241631370141239501224374874029834309949295068433163458940473699962319291730617865311665689804435900197193336899789090891750922529848153516009215330485685105466731269458536597647039072291957728377616483654368316104844364831157243439809917172321487322339758071387145936309953178471097052186581701418852983334235222727050799188589757793874597450546093785661352891348483832916113468613102902509568092695588222818942814261278628040332790669328239058478909157854410647309901102013727702489944351935951689883530460193380124622198923440404546345469432794908020185063689842103616837858612373737395202105798885493810049855021932548032204003844884167561856566296797980692890612348824326212768112653975918049841101162807622607628367505450024962711243291679875597424953879331833038368477333740811620675680292970337365919284680703813180060009214844803388901234884754029846357122810869393267609812568634363053420605174726129172609824205916702482635773376062040835306075744764407321200453724886729966360264617805099523641360608198328812074097990088980984664815057721602101683870844156595427569484634661368603842749638357121487933311396673251731277967206992705040621469783344527865911250440611152715194612350077246151983628944000867209266235019082505524571419234166143361641563681968055516464315805716899245421534481348011124776671963266197317664879051854453539142625928261913758555585944418496677397945995203486554539801667617433853779538142261246065461909753245531887796974664470767304296437345168523912826409338917469044633365033166616173292135459404382297367814700099219311237782636621586458541318733370997837004694830884160041020336331585450278876062550477649865191874437529559344051880365752824418839480242712077983305152101361256041656296927937103546685071704453903511915064269492440444443106702486063828354160295408163125987992796094094329031299816170290896630548950483100894065863269294002561479748989856200421005917373037901079564354192435836665206422816370616821858418597666118219836023154672605211396301696157796415673934983019546715503503214110389654231259482053769314487829943801394275509569398208277734225427331487765499392646919150662076289499008829935725258366925396522265374752151969632836134903023345385885570352226437367980258312743431491748848585011147297952032442724288751124150679082672667942358456906892461736097003311745943677755806303374418406706535584092309762860312097647973763074524758190662814902227317805010201002645217334156144197190413886088366430090949827128487291221159107717001675425554099349375483803248087373054839544558658360896580477832043807591206452606747670706642728242517136794734204516425930389479961398607249795194513800169131944576436410396333001777432449189310685854410623867310081077666687109986233265593176391883337411477888412990434844907345566130962492729070599870401622142811050111289840956900295262943746303690857907458344034076611287202907591434055169244144305275777046264541395216756443876364090753998015137551981747454129418388879013279574344671383566632955256111452008377192144142404733631133977390992226333591264913703668900742291252948235171738477486770672477534442561015791750667758874323493007130342184073841624675190482030473906662044202661223158468458523506286920043636626639674073764225125589356302545659819264364831227147271505876090057813418274827154896111269017752391783130826612976203010559119330431634369542858348175679265711035576711325570100681689048137364471571088370838473259646739060030218811984744666579687315804232674103774669558913802191951049083257687319418517013908666751401972126193666076034818349502147255942866441690189037025839886392388795629399496397012212892768373693086609217361793352428916602638857867839013794585244464294239033623341768762545829985957566470433901851176037437317119002003665742681323790356640607933175749230076514056227305677388258738058529524361891476625259933721077376048375699657643212676960999636934315701923428844742608484488764875603246204958615273055511945050443277571459558725770708875423648036334385098655647126432463542732031586905960305800600833703830922343421136562330209534169090246192832764428554058925802468670106224109952678078086587648965323516416304803576655892927420677275702578140173375079619713644158609927691912328491715940403884072919734935760809280001956427206246708110648743397097698015919236418009786609856419035225594849472965823960992308798973438886317377628682627762697853828412377730760132183567110299248241098400354998528503477431014390912511172359208648228138865381745743679998757152976463787517282260997812438838434492901287214016760641537828571403567925118823940599491707119115824752979687141923798707223543646449839058322833260385840423688899754709584742271823153764699126209838134809761776780174553400987493817835711386218797973524730231632462811809264669948894519693004356189621399697830295509427571343903494149884976767261116498266268301023611849274428270263072066694523013549796539867110106969294467298130257372748354195130620914628112990749444491236251084935852060924620723333663063714227894855569296728569392077897027797763690136624523874372438540915530477690061944848643364099002543327402783334229592578776247874658982718649633140331009742252245984307806090678985351209951393989046514572270154701707351624939072819888726911570804433431297534292859063188418284157014160963791169347842996805185044638793464514597198468830283188335519737059808309952186233098705677951983102653314904515592441817422401388665030389088936306286912376898458681898683216125620361102822696356690331149863274923671166692767507540976120245088818283117936839888766208561240711761043495758007359755426880735469004982851549211108484066389985476762166805866392692310243832811377216401647578412488048368810923537027365292499572481504936629920207058892896955498949327128203579690273232321849810184775267272144812548039493187328112192659140015593007770982133261292445290228921354439879206739134036890801160668288231915562274463887415062741600512495462056326650193992952151821853294065560068797384111494060210820787661382920559323713008553580249738754388662206495561278084819237855485030967848940564374151669037232072540251639584773372112419421236714649778363619455218390770643727966925470811735957534508540002804070415621657345474077440951388719672848341386916948444210800019170067069320256103064114630503701608777774685644661130945525807901828801657045812922632061084450043550034503602560736851905778766239038182260555725597493099462156942988744816816110333811861423213045533656549397247199744261956517534279855634909732499254605275803378533583845299706360786078927273888447932325163948879932073061413625933031708012877040042628479969418587000854965374607091653360338404514861492388807515142561604494732029949665578805617903221290754299844377061374129380744028555955889952044350052721846907342982514220941726300381431034182138650949586586270236975473554710947582770300975140537692235472596568907679896978001137370909530546462297271437983316224273494273500168935309663535072280311823688109694627304034379894661785167321502939098326963842938289710868806681269262366852737557027861340150338492598165549306090091169110970531061340097794677005032319403934661241645605375662445250663405349509751347714708338713665876158512168373279764651908856941407693187723445900638859271726624018349984053569093127098681514202950762502076657902483990988055899422228548285917252603938285242549630862902236830368509923278076437045097622465941844305402620240449073887530431130024189576214465851873620346766870874668291082399133432120899271897219172655157265349362385073969258351157639673153577190271744931436535885687613894027482146167236773690786263761824126567558599401526514622602302896987833382012188713480467048774651518258541415977608975569654490610959121624890264899177831460318648069894659922903970760791099055241294306324769064898574369724791159895770707162542549553869420098896311214058490475574030446367051333581213953301089783705523806027288297354689697322212060995609937653541540986445073373632958783138745652867990589958352991895592561683885744674142059354411764559615191849389157310487068416494597078452616908601972204349467025991728362141819081534419441525266568591099109473667417449765608896928937674164363719869838356928174989315138230907838591085864600955907188680761649142547512356625362438878548152535780910399781397711834823379272067782353622747302054631806937170609698770993341419352264378470140589812446302712940254876320535096987533447888738263420572594501457210516647794278269746136660019516262649574002769573673773697225516232469733278438517488476414481214954410527875498157167827744469027359869842171366523614572461035855534586977700651839335334153908105610571898436994368306873014316530855510975274170696603842750782308614113851095869495682961634771984752887817788809472995040951646412149877293760356207616145137086946697988325207883222863707462778057850965968677725682856568875680799577275871448351248732361968138944169831678093283061454703360855030147745599229274020872296415802627070125184693401022689735880966098215602508907760931892995857755465657899185360748712733250635612221801683773736615825765772676654587256406571161479634546874467237413231353594321233148732476640176181748051962241697211460086087726551460426703506916876904285477768635438245971436065501668642446501768406794204308138593950791360233105591249150213662495615777479451919288328457603787959353579476949036010507392454168692740381847021944315993054133270927842586945159382426830949479129820304814078966620596970154549396047275111516631752074126473515988173064088719276492415383359377382270007265055460943320940640831654476375630878419917820986807802545457650982486961810185052574090534294875762390718802866091040367052036704402592203289219477551040311502503754787846747462180089178617576036024649542295175720433364985349447529261032415232585101028793142834543881582328188314264077610159634263592646527013324437850843136737284934792621392343663034977770710233311381187698585726109680504704559203532789899534342996766441599513744345827615144072294068794033372524664607095846465789687082229923162813184210209401999143230337025739420600902106678113806407453851748103764057180313060067352059596055676704743166704822152790959395466581451889019017346955419961053330024579907355024611755435553817885059111439788496965784022369314506091852801024682501171603170369929955969384290606753984754653130287813513016393544719584616583514277629968155116359669202595305029914925249704812965743250622199910331129124800959470763028677829742192425386980211613123009623692807110689683223311679643550846130114455149414264574720749544737624958010870433553338683426219399700360155986567745569270628769468265080315873145150836954415256151734142117248988425827971434365713566851279172708935121283433972464222672437476222628799212933441059267097811133910346347444759267133332454998395461688394556761813560153034725374415193009062793665425544200667281511107170812818709699501918417580418040624933732477179800193237386779518056102214429557834174183029083777390291330705682652933888925151684150323908790219845445395751023775538712311087980324169840612938180439099565901500248332923791808798327918554097081320498105030164505888283048562441892388677814431925140497938120042885488101859897730630219392141489698064404289684015727593006327500961468639608267881756413206428776480118544325087293621096590673903502188335902983781517344377998272072517802245516033073761006084452757503350305348800859422634138745806302942558042410480223910063199491534781078904107197327815707881794333737078838839646710949240053320823182350749780327734259679828734554714277040623966517487974818279265218943451732149963613409594412611461133527562319003205051741173545465402694240510721019404253010291383127950046454414546967170061467374138987944223898817058355305197159787192642141628351971074663848944428825759727270232131288241101293480761064325030446936394535877074613722459215494012316960410220905234968343031755481279277382531023613222572492896705930966776030103523061829706519265843003715704521538772082123247078430945516498787781286595266390100551989686910913513190230832884686104908342426005363061938752421146064895994689415554708652278873415800009619080870314311842256488311635076246559530995964777311203087724305686457250240555779949429382680968793615593002013652145543530016614117306275671971913044155683062831954472739549109390895046413268379823648816810880598222211618052747914382263133199635255189064107155157129732444294785668222228156689581901179764392635127105004046341255053172043557200035678560731710214547975861833416257522778738697014964430631282302167035724408901008336517391011074826094312206389615216066798756254878419447488441827904049433228886192864199548283712447577412075513549415026799462586483137975797479495376228702246590433692925371144967424620795598352586739152007468555722135553282292758476617744096483535186241395413498118587016122783676946122892729195568140631529291632006329547315868344738606892989333289464024088088887374267087562270555865331502000918341020804782637752557054753429174463445939277689652325220652379357619225853975238269024944611780903067034173082365476745434999412798836126346580219322106294023475066265183251602148546074119829662705126815932321979299778848938881708880862894018323733641415179865730373353035930965950980792124066138228355879624003388595576811655104343016972032574519420244767918673466954239315201501476377794144413396442982300034106087279596535106833962733368377073603037225848070280548281844142571330046488282558082192001246375634568865745683102998091543180501335868524446331548108595163180288707778228462270545913853304520937680205193921511595924251095849869195539646266144144401220719354140914560094770011569937028345857177191685660491005048955749214042360973925881857549510548596574158480434488556444966382320424876502530747215760826186441658509100734258391950904387190677022259258390888806135098411609480300027630067006894454086281259959738167683980172921227736984253015800312106787935723355053868619558232768480431374286033369773654087667266834471319950631906079263659627680261711216618650273993283880866887037584039698825716511673210019276468182037778606351393102640707811543998400816821642738723746687492074596021889007223572707098909146697198649820534873325445132638209096664140144706538185487037798333558763867289545164985800748212163933948049907428088855271945694190732624053896076749200140188924194196138130876506284368369309016257796248572325544817677329399630806443953150164549186754474545293356653088213815650659446858978025812824353719996689614305009477803890360906514436343721167986348633850766729195965599305305812684856412664131769715234826728189243190694925276377567913643835447900512578366010579187331000484413664093013889563351409577492042133694368758347560995249179858902070044992370852567508837797330152281029756566975182139233093586302763383629995819228134724190082312896477077538780663754413299342487558286754242763042427742480419698380709377778811286109203877733168765401757928037542473164719740051771767086868366882896026397416139035179158319745193007015188752563280378474159680444423961406732851082039531041207887478533693244705563812775542042489918906790658589183409097264602915779710439535456437006415141061962750056520053757690858361133769905427462365333537984405039084631728872180060245102505654216656976319551086953277171713280251279525975119022067008311690719228680930230256925261332017299017426970890195402308714996051444879341243316862300138023294797112607603758687045392267520242710204862224169477668705683222614324770160590589747706330398886256973182570862451681675604162422911708504021731241735105947447913533317861522318010216658071306202875390540410077432026667663179980045543714399463889309645223384028302103308923095869988693363167971940814881703104699572379421135012243714406277071592117817980297253325907576518681166979597198832746502278214157996674466770758958434579289918367432851653967016476737352710145545267428025025596846176412619591973547344370406859463104460093058867304303842543524887025891630306528384994701965469388395462055708623549498523091680176145349483879233214263711523621407092797344498400628814959362879146336359410610606465112268680424417998974508411790274472757446348722249345555110793957458620258265418053466471833398975061253029190579175111043607720655967532139957257619068340985352205779523937193387271114615090714666686526026352130998454179664261110149105970237363466745827976508296907837524250236274624688503232509237484180251919139183348189471889049804930737088132018071377025562089635370052348214535504929631602936359114068563489013377237282291131343876193119509405088026311500785827051510622821156498619967179142765843095292689295553341071920706488569484854675764925123591184988445368720244122671066123899364861413165892611658373107435881884882371399594261145866387346805515910401811397117874561025363131687712329297865910680346317111569856514508074696181517291078699108160186237839030160825817943930064185508044944282058144901148085634488236634299764357308998857970636045655288012675859718138185974639937199425692824518106984124470408336092886625223383264812771404103304852792386315367347920069858779885015092420030285651060956642885398822634720164939111975106269240074412775165990198815551667557165834227428482345697539325760655553160120181197099570804017163376491738148352766900336710696651239996793983774591494645379723818242341890576505532755988636413782711135190177739827421703773549353727387376036138136780112019605566808831807369085330057565561662938176790123500459445608207713007286652491728198569404515446432612465079360653243063642594425289849358729175432495465865266465408714371957099732915044801428249784864479466360437791881815993950466846023925446452298735927723454210636510501815838682124982395076692236835040021016907582830208940476888984186731204144243814879283476621484068676731927545386266056073444966511440560673608849886743467276070836875225744387583241891846784741383796572507873485997705351933212700087317831399667482879811626418399750117429305780703169006743902722745197356466105113290179116797357135361456884138585360471684494523838551782314281498977131590024938357133292937530847665191055627013091598404116194133831460987662280719741926199658258647735706610733682198180368561306355717189043552448259479392287148089529722528354880239731744566738558761283649221816199390341176452286295356213896792544445892822208970292044000178556930191871850220995444744325522636420569098873360500252714983788200091219916981989407178761613886933588599639112662847244050296109799242963442988793776797282370510212013491758826657334358089358813017260482400574926727399508129235290200273070230899033560283494603332184519086856664799315070068426872244093405647015552906786282291724309118866752639000048362960731212639400738835864095880209630794435474085595663921955559100638909174731133201995597950292571987075105068649475026531386071662475879571221459096635788001148085754974378816994899178658333854686133534899852367496258867988211213197026419372902053737773312532856157447619867271467722489094155720060169201287745484533582309000953979716167027196720569817677385047972135612034438736852138579572494004299303257762468238150075995665883307452939678765699323421529883701185105776951353647852044161745323868108228526246429567523353586108649336826347823323443815259278114318628059784098119102516967404861326307232633629869977988030722220232333281458949039047882013834586131620859209197926101261383852372341103709753073218488622408376297337829928262930377521968211137963960288628270482822321679581692172945853082080374971774022849041059257721348721446626428888618454328881139788593005373474300877727734785250255884548356995819662059922540373778554763703104570326412486739482366588462078353329549315575932034534418326501940948301360078030766197762815871062575151886650950274383540256543608315569720531673694434219623674289390878320658094761864405912324752936112722914094929589350122073770961066045789615795076602926778452562262026634370199484048178604752041898093310839094779163214661838053685639936059379194859951364470151815090401275383167904146719167542891751398470345548922583500018424607506098339118523568510462336871697389477815006214946407592736010258853317812952599196553106645402234178595243690055522850395795415081858714883808405198010678349839526066559450684678163152656380343972863220962380424714118428858739688594818309349199843003945846725653086840504546618231205742512629791477275249883247595086776579218000597642360828051158932304107331691769864898341222001519398863211734068717662841461679430703045026647799638481921555023875261692291250657055954856000382706551681998791538598736864967365556152543988835670112984388508881564522472719588692443960327961688476566065702299688592662521495134377005360207023846512194916489889116550184141842308037050924381167914770537818140297480121773915747978444842300667957985620532071387703248354728149142960087296421867138439032086801129795849137413991470725758381095984800142910209173387337477680385308012403621534277262591997391011433067623303549420923501913907906601206675692359090795588615950385867142906035599434750107560910206614763018218086724841757187304028602842143376846454339815734617719460494400644727749701392885497138945401802067358144733842837176616911421351282750925110917338854670045411230182147254975538319662540984907037931454004031748683872638424910820132857242938751958100429818287040009360150543412599328541137322848839220601274943178564956658740823527783451542187862595127242751261467072004598457544771735980564152430964389674069709181976679411363734417652581942469409024123629188911112659935207008080020039900879090229028776783644305809885357699751389542578345225244374579585473806758728714680834112542834584903748315065919678538505856297181642094992343136054984422693013025700240154708384614420226499202457783209417547941309643395676331057829035507734655662858311562675795495997353517029219690940650875839689667897117920494054204242756861211180453799167532610246574966157688194368929338198115960502438898302869545012262044270491353228751754722071607833248428580934016530654749465660662616835409338832847956629011467417512896276285497669103458185103612142725120168810754339398382837716715294514135959559582589244301027465964848117884603213833157757733258531459434179689631891355738924660633847137538577403214665626965485522831103295809276948249812041430557300154531594782070949287848421414467549396523210651119439665643268084415434824317088869260518860937756125463208278356243426941120248147427407372804333673949073624985713251677672074444661921522758469845087658132172123252725859855062017498592294060681861015997115341895329857482632265004840767496642633530394195229385660473481029571220675695916016694695230542596403549615891585458964500379007018900751202171081050453740672473501505363602620580568271646859852841654900687270222169930987138329979100530697071880950846683601039310757278060258068171846287457164156479507060900194823598814792790103023443346911879311614834558904920548417987782173439465045827661361847423973404778309506763061000382696113260065000134078152323404850725771629245788350049421162126489944529613152566144250762324748342188381479438757592522038802540542294441028995641687270539138710567027516766241910791449118566401096534618690772029694621471805211771142612759219369838377603092146492962017013669939749650443448140769303280081774194529571125319510344019314375388828851622236738595771087881500607143946093200548482111356177469597190060446380664119526652155572711839227077118038870252164571855011714968344786900137336480967419973491440820470231088765401124934821329232412038915491579633823952796963464453389616136356086122215587940156502028616257768731145990480783208006716383435072639247177794683042834824556800825479332143233674210256403988489651944905555794792220788625431940900723117013912803492279738367196378246803853283962544361962301279246290196063672435507280556870998118107045865797894968581334973316791305907465072793691031068933543986074503735040122843043614246847220583559839478218323724637184750273397986372494165864128553614082343907421567450455629031696332938182520125120749961536078221682451959326835912018297253051521771031884039205266738837796846412113543139894553423548043564105455497219863438904440501801962458034644913189780804155360159605110221525090944389457616308876295415809410953831564628156661895158379178139877806174769607179057760740788234536424103338751464350754728036711101227066778008729704273145007026969649712246501751050493288371030233359317086946123930561336912593421461868648361026038348241249851363995754778963920341100060466251383152930614016858063736499703385642211152833379524265942466762092066817825513369698237882824030358777782192044471729226131898973685912427302902536583274278572077653594883575532722053292406244640481430839523139970600468983824333584444177601303607974827146955585253837154222686477297081891539374118363870410881120429639912660293703590680123235628902680710724233511928808032501119631323789884731578256216477436552258342277356080373094291463722350829749475975647549047797755794186719064281250913015089203620885662158260974632628650565825046939033399644369927095471672471895037225998089122406281673243640647650113052126933160797569423517500202551219116223449054562485788846198988219260847160386297261672901065850640070209664287898987221437407430503515127517886076608621783492097739877292596879872547965673592741982476393099799718776015826008260396671456808123283264869062439624917388775824214729233367912896911281919225050759659109941750236547105169757267978014394057959464809119376720167512883491733136158603565504651674914955412459508809359948196511504406434677493977521371125403708178070189260803933136052718319421821745534492624695324974170954991178991582491769066131570602714970858913959592535416414537501169779476732462992249131910044281935171463312262606008022474854303103322422781566246095316704510118694834910814687872710534233465009378752757438806380613849912080384942712763860753311051022187623666806063159255360652696037473485372843697114366719302097071397325278884224412454831037373744132075039379116110487833136814334911261149774103007795922678914366453177603381036727009495930128204173613296546476913134521493359143533082408642078425371016182330976868953868495703499214180419614343733967504419454989165971198922538175784812888251913253864934634050064772423266797625392820445579341634540786914280582966610871484196400466206655241228625637179418189669459647367353064318741025010623028335490192539879238565072423593316199533027219869860166019575391509553769704340644136747499196972326174678754559793634806695109477295399464999386739796219885422409801060209738358273254139073495687923810878673788503875731095099582421880985216359919772186204858540097753892845629209172010815199262149572812053797047921425708632197159614029131215047121401363684075171190322750986693347263154775970371027406884609502292248252736856783235997535680817144236535641065522622446894121432889212094721022216638562836169500993526257552931117784224322630881664728975389992820836367949474114462420187045863601542241479293201417647535424781431291099858237805979688778131035847582696564553855918408264027837202828535852121383022863067724125933306966870601335413186592375820946527939409112178564072586185446497420003833932429151663068657870502709480844989210517030885505214598067289783359589850173834030379396952442604634828019733412254943744729059531469788999559087973681346184392851607219318404001456959073885081684703629003384057371952730331490044906688493623593952941093547304507961333698058518165635282188792663128258170136838438886834285581199192316024813853986402672021921403313103242554672282804213047787716512780312494937962930417362096764585361287970564601789033250417430985802347624615228451605465793236388893060280941028428393026262024647130708993977818570385923133213479250750653257686537542001657854221211653072986797327744163090431463881373504554355766883979773390338111752860198096767373598966958795646064012927346681226876340036685823684307419557237208022345211871854434518228255158666966705284113832073366304459715725576255219031671075349240600639398337563787948629000166972140969366785098307955962867549178430127011780592309266193503994144233839013905986218775077887468198783722667901006142698730921594043153301562302511889120224831754551005652186100560751045233090117661130369604130420044773426782909627486376978121461014878786647592902354084642854141017810107411858276831084841789468302382442923934320462188754555015485165209912096496425813250540794691446652896536545257766850621754022988917660909193105467130114807449534340017058266645884837528810427965789199034003422529568118945777119738666803508124107020166193589308564137853867985955181106207613160358913546375393916519354481159190197805826607738857037699081748559397453293492744522728424960107972784198287898816424036901070386752700311977247158042129712440512386493003095419820777508328605740434572073540689042166662578140077211070118538974758411044891468058295271866471650609202994246536980477516288353846306547911232921188098291574769821222158269456444301120900990033180794787832785102542811530119334605489692254372681616930992743318247994438260847489452351748340828561338845182011661516104680762427146918789344812013614197649712374949385988243591452920748433892925694433300888618411556744458221097290988900593943414217034730545563245062018395274353160464433255272013545777789981166438944663616020764457629306223735365445102917912259133856127145668903407780391492761724503879870056144240409493774399622246321796846302130803205358651834348449358777829102414954363109750883550465774754433305033065882277343280453245349261869516560477992331766220344170931934500704064098249412156579301804733579949332780934886212868701084157665521080319345301127204905086882736340096542634431220270532528556455389749915668235410039563426683099457567350336960592688438646745081064784053302015896476782645659639917910563267688003192473354463201369570698108577860823094788500705859349605325461509273986203389180254246586808401500095643667606265096971801128891235557468948442311528516585652532080211411063399621276555464163020152367187989607950372194492453478592667672076588232482197543232436486660606275033428977023407257102972684978203314714743075445825681518578912015789131332897803126790333882407981015201017841482084768846832366040077702065586298036410372967863681786961794382320529001452933362916518811502329256287774381591885105177819735248371238384935953436467305495239735677849908213750542903144731191316083738553381030558608506218856557025722957228707274549224663882328121157315664572190040235557129263595861611716948855519795691839614617723304200879149631862070285596870467249863165234763592863393572931876368126588349418690265344821869042044927531908259449422992946420463466648691681120635081583325075440707326624808470487192630093991765788736471959046427527145239866920335001280405988359390544511288366880648062102474182859089963391460127414380305863645153633188255909042869821962151665179780149254683828180783366573347651948177097086438052515583185200360540022909282391973914330335756386036119479998043000744180297575094530267996745006523137115829137868766864697171274497064339916267183038461196550233659964306940009139054055803898838558455434828968303948253047834712994188862631244152959652859629277355300100955392815750612027365893006224658352459942057907266094436541214070670331846581678246610860158999681511696137391725283795786652961576726776217349649119754156117741907128118816624223735071549293002823915384279101581198709173107945446267250210035779873514056542283417196882562821761738506456300009472941837295574540271758430180099921752995988442401564986540497940293221253006724724245980141086765948143860722379215826797348490197397517763101183584840671905156234676610475117258956752809474862876500794942352329393538460656842977530029297597635341617934348967032882780120011687916807886201875284177305416066257160658337934425017884028122847054800270740258030589050741574740277747508275256152767390185851761286153988845761306038757087361053336583503639292201015634415570882215274031654551384830664878829983527603148046895320071618310420141479445166626153214769533484994621679028252460374050670137730926373129436617909456711254558912952891943931990041477940277102683619149228174625914130614986867887148270473069190285801609690511427962204342099337021019681222261464978461067287691745274464260105950933951289396631969877055540324996335075141796692074451165845399917064491970725601886237252553106921671209931239525004804547900627803928493988219181740438704102380410417949584369963074186023425338613698697023721440334949771756827843625093914334058278577796321833219708862465555445924019452775238768173021930211253151284496513712813970520325452620314527798977513972560615488353711740017029141059850177553290183266108920114154775005692514482623770914164418561619432039837347698750949779305025627411768608209935035563037926690524182567226132695537391474648533252499921626990732579723767886898336576944951952718437411199745222315399967927823465329075646937858273781364842906031769589559259715602235699036656664034936005730916550704879424609008517611949881041502840437053091872259003865171727863225210537796558429902958687787254254181929904786236962756227754102987250264468474327497161488499555276681529758736590166965916897754943992207314893610605937672368690628141979907752042413688478200005905643506985580168059498658074076473840375231049640642013554401203608547349407673175889259679236448545811283626624280187329037380112546041424862817457217225870447503489090112110298716143613871819664565370444170495336199828137269003826165827956541486581867603195835865899608558694200069167969063844846759954982508404821582893930023575653622226616235402828736810803411772296318888420731767910406369000958464418194639206037564694591676431348916854939502768832561908811657408246485731947549389759601937245498081124388849772775779981364306159589939125562053476730200659801116123001779351052745131825343012867878504056746278846202523536444365082095727187753809959779616711310149264859183692396622877153680941320400149465658301687098073800753972699842201292596226422985102703208615280436757561500110627406395104338230966343973302824809873760463480169143313250226022225428364285592716302609319649484502519948524463924768255606840655537362287481048500519031035763437599683562453188677756480489708573404181272736964592759286279914442412071834559736536431897563806605193401765162914927314961653940936582325229040897739784531260796410707784155303105826223055137228971511177265434421220052107956449757855343541000295724166495955963315354729123929997492673505216367039918652025153476260614278235652052239125734104843976854743519890156779739628067098445291429584867157387710241607540266920840695122784828058017550916746870741067993508576646228327108060100564902650853441035202998543333985586089604895156102126322391742261005348221408483083056228194716505495623875795462468439809854999045808116682420337443376237515712686380712442223548111834393528793542673267442006536122410953652973585257909715617589599472424920133870056323094437609064670895026406406081065303458821976289717688493456100581931067560008559821567373842836237571909299673611197533561934828636159177997675962487996701814837666360254573411896026153691641536782870993370586783102195298899186863592296453184840566875533159542464617909078993522495611171261624078724461404693128058645917670205369778604359257461566685752139338537017509204861222448039033126820875816694241771518871223819424674356896662744241158314711449178967489933010340862979759238620719051203625815047991847166712779582964205780485651622133874496979951796083541988278225385351803293988020838899617479867516450248876497746157342947987929249661761302501261823507982884097369545466845101865717153107210674916594247874009575196987419882984898764652477456520850099663512036479302370772209436605604977541779961077914757030092801871926623600612525286698580223820256641025834360221414937359604936753157019110768282948705463945868170306811425844182137871132306632852335810964047448430382454055295250489088958412016643576553276490241135864286394335383497806647877595625838168928110747875498202345092969935882235934302079684785926395830842065333883736614896217233405048365866319934826398821789065522775944662305010045713544134675090848186281547039319586720306310840909246240467670167516806477272469865999209620936521660194933158053899142196818220296871006132840674021697129229333411872332055298326447825938822757984228695178161617139313237953154440441207611090986051995515059682519195049759906358509793169300803134380618699084900094559103531746352643099864592471520501062299450286542368306217082594614012988664106873025029404036607834198642726933856483229355655909275662729371965758312791938320167930112380806548468123294888784669933524418846110349828309634217412451948620612775880665144531952654492516089444819209689274018164209517940385476032855804909373929902712753208806285601461575835213033696296549154387778838814150865353951832204315992932440452608077874898452488961235697156196276094897503341817166164882798847516427453983648944285825524948700277564087206167553694152267688064932041977423983281867949640406946772823151708235333933239115612505969317478427815782351050737204231877610532890099976061468558613644017536386697042823856048300664059141024721449254721354809517044651457352355088651705206757421928662228828816332205560410291075696322589049153851973314524324825241154229983905968260562089563519924723438359043033036428136665227823780806923753429472403663842589181014278269755728224231386422272127185531722487649667726662594937176398236808755023633390407256616190188015481748321451341832715223186224313543000206098691901942529413530294174226550727876371549169638119756604464406353526443799542633299730805244340214408412332670187343367661087122440655467703159095336073187882171773726979921408831493891065935144761334712133387275953357907946064158881590153220569030465431705143581844210685850896707126657707249810144716515812213344409158557127770459982817503946361224527343772704343501059863183526727693981321343928443443951052088497246299516687421580130732054861831697516913678283984184734747063016638043083254877636081745992508466546306738934322236400733483241375014959690545479836101887406668162820585065549337016407527918686598488764387997960975295039052129815682609885625512978579138461375888588018673935981476929892955579937508634833566532154358156687250308786521091959957460269291139223904474267684655279128577108602904440191825435107662953963549081554817819303955045655052097245685721207909100090426901380112068566626034998682152900818945324681346159069524883209240132886499093816140564798391441122663858012550268073217289958108265383506837258319405579379116968950781260303889111434467328033414467396854403120915217853222701978432477453770941290159833754324642935004649914101343500134481262134304487659575770854692371568430297000671786921883928410089336542496694201203353612588039245741112347102778466531176665220448000540823181510775138237666096051817864166349680344930975764288441565945915032662714657999206303015919661351912786744037597480113453691763058003052467962679772340503095623836971663621933105217054123591697602316910354708863354452939833736914374816712234575921477243538505153022656699414515756137017364175504105852518286615650853737370281753250986818373604356747070417497425787339100843992152948795471395007410827685266164280523253495728972636478194029505001730852546817430777609370927540505907896222162101035203496577627623192911219020992084065269671190382231036771717256309550381396557283555929024520255173570902807907970818223596169820909092477585131351065700925501268894839674352510977818676879242523806950756935284174102480253727927892334871591815181646578766404493042259745345592885118606787996746877864960334138413076059523501012504038501808237883095229934687173971097538914115759240898332153406898803644947988533165042250140073481020637319333668321878058057376659787622194126883453932687501241670941727034927788461401796807271578335825463086611003367132968688062715822592545821499928816842197214284339091968576947823014448559986683920572207747892016532529224379070355324630838881531240029425235151956185872921926837893330316347014076654704852067593227750603057417609719386030916123469000404067220318970532515863718230400171643913350173305933660454720255921079718760605825984087295462933546668735495508033450745931655509383314976892379599467526004522887781729995783082464544100187858571788831934941586616062359020460519992602146325268585149239230332410439724451980894340114124496141140736960258357140653288629454327071456161821042473112884822578672883883072121684906479854020062605565497465291585851563115553903621482703777243885086845251353072939032842438012657927635705339474866659713574643299568011393233241674737614337829398408867727136963580565694739040220857981026466465346124689869735844726967294092608340574587914019884875341388382045527175240778207679472688557730375149377525841751997860296447609289956831736899167490269992652035184164725537677518833204131724419848286245014101006728572821590586185886524600882705969720407550772766315150744621484443851294503979631223459300031733215624193166684122274852439024483023807824203559380683646198168762488013067589604539757620738134278842952551664165473703713266191309639417201676683803818618457260995752152581358812233960856167085920852042513587365854273157512587579997202347203899037971478133151854341009177810307076025177580565058886432076595635219187061166028496213812248994672330559389627717989178323966008850731235169249249160344638597378773474594633063654264881458710133522056497550811282432276936975508641456314677393600296131649263404729659552502126002245334297753471862891864681473297500413525814846458388001765466841141078916171307768135246282185888328457435024305374280988024861015346219637781003834811112621282848612705092446485422750988254228260881856933097358249161983106475516310317888995020231663238596095418443613368838095700335731025904054972840972341985105650902389141019951453720449846567442138622981294621295198729440306304149926544437506107271990363848857183149124290190781953352626042137826497734416050040291727719854597398447560984338962702170603495394147621396646294673950828247107510756996870797660921227880356047113672017922550517493805318267835956295000573005123857483330256408720746254277063086388488385246321166281570166577176023299188504272803347206881948784390517558152113842211077055246293800534969098978103166457475939871973336285782050798748427438654064265217418304153939568418986742943158556879080296772813511652025647847274878384609890556294246081512699167996229895577496746869996726094729824337399905053362182248489368997474845482128611521693022740158292429807509516283752999704484164993969158130880749401442960797979641254859515920737552197365494913341223729690966798353578092361368612131740413285775999193882256651697786091344499810022379607656676270452256731052240095547903848698526047459860378562066683831107088936456280014994971511658063536899522125180812805504310928976687171190276801781491862322721715728344145138918149593177514943888578005124195948310156890827346292331980191885189710041972211382012321261289812351178921060015847070107283511768633176701602518909964070061441815363179221554619964337741508226450450976361554145858281182103893924173833935747766129430882353110523115707111475342807851689794270104629312208576839285302902126964877854513282312611120224253072515091399771052148940593554316480748301669671306974209748944041758658731473367521090611080466961783225965927274613272811418117283674047924973398642206875490429692914812848271736593774013742851159671477538294901021742325008012811625735290770180437429904846084798491563296084069280188806756796725644126458221871478999267138115924913191479857544836817754540266528995650205339256933087350428046326130701790824995132541680771545702753665497837273058847789462165634269421428847324235818890275814211837027318739654610833453885383529641570446503341339747495154599216762680385360886915865818167411967239249698603183695101714602607556732449116376542267456104265098609939717038295472504272243862722414340882816288728439095013698109178159383780417169178088426640729838018910460882004517527118220031866806811151263402074032043240132815771310721510312509768007297516399719570697321133143280988743110007222001021491258770783690621783308760725450975624623976712932775488762145941181547986361722890909393689787013133065335596054809887809027040786903839522676254840266936993972290039449143263582497614124385472991090841479259745076806646104653898727278793809161447098057159345801927046325692841428927159975140941267166749813787265587475998808274913048146600088045230429540773799333061789675859160296373623423357249853939018855571622447664832845100262996086386004173364252772319366335953795935925318904800309042516558219736691037190452238345919387603445461912147321615579309735830055092622322932460235697317926504507902088047342770670107211328714241338092132209650577783840290348153137856149245806853769361656313719884601425794048606913285083275675605487685326099721933231093065231639329646485807155405221190748762360464623210477588480327176434763253493642691153662048132670643920417343023581119327975454317653582000081858948575678355415636202907157323205368566537998661102061076697270768743538758158369793251736374062958668698565572074180917840443517625562075199421252288913441093902368013758084667536849765127093594216569213446973903972021700341522681566940586498312758616483587409197128897379053280691254139418372212025153049908504272669502537255753125970074984602509962458227785245108381544631648852910513244380366957702350272079741036061179569028079041826209698041891846991747134289828126106621839144351767046001445577705451366672750457901433118449491454348607548703285986755288316763856925121014318860663867390366648603708038338386144172847023831824791044367236815136347540845764443561065518752145120127762265235948700756156670633305958093803966454003354455117364937803081390130809507958010844652718042410761280982451355185038459167442271520168344047599710893299208958686376701748289792467259803497440069634725997896781225306073285540947369906310506873343283454065693819341121086638751981994997844710860462587804781163451415332392295150683759731408740968231068092081742489869917424828034605086440916221561948499147838804968890717296949553568086437841165488979541975653893812315891338023335526650183148959954031951435155848110135931687460382954015160680916302969584244412514156692215747804745652423955203003793578171499086436799581241396510334795398614895510854563929704629594304485244783828292327645686545601342060617092680549399423571459248414325909475267293799015161578876088270354519084037780625590904329493358268907250816855144516228744449281097298620874066107781988442037409715980836258687560810598272312057901167617961286346284040307311003101498153770329596571627542117732310942254260081114385889209025756519667101101337813031798491956425776061835722042730446965189397990310026936108499592321855626998904371791674522057493064492234214940839825019779025082803908286617554332858202238067414208889404306709793226162011568342235967895047243411575643543730747677397204469078752150528630515456458850817116722960292384343306722017617803732939670269067041423366840642431982432179602229545096577904720739430284881890554289504758509877481213638447420282284329660479222528963670869204696553052041677254031737781050836768383965456349259816356360864659167122702857866059913487619706855757198421992268988912475389451052548639126879632838282417416132455221678879429217891725401682778588730862675252132140970620171156265527550283147889500918963214349592589992479410588127802257467562256070475711490151261709638151617877095120995161230061689351106291389665491873313866668307162425140381945421162440313283051332173618054014447108885880223258886594372788076306335165934241041954417926090019887312645195384412824323430476385461044162697999465140013205984427562952046374570912128268423183597197139807575048394354129326552908208893109094912873384847772148431326209241777368515879665965256433479165030327908390859861552515015909713376413908388046429354038997062945829116879302021914778152276662694957252385253394939219120880164394180107678149065091738487027589035013917963214295372744312246936850238243152486843429437443521270599894423783566584437773692261736900953078572998720330747021682312624946715975594721363917862346052402177060384922201299535380645363501735990296325873481185708358548646952337527162834920361517919868666286233637763288232417974924257333588732889235226685320967613285589198128280790052959080129413640867103046376752812768259605062357862825684205409887416041408037973306655676164373733760316774604064319456434984082365902697511681325643414755129119691729720499309625967027066644794944982547439189125108351151290066944670105275161832707675794695635170889552123317572950157305351578528027408045050286491271960951470453629850432082526797005866477607048988442851608165798331513828005256375626692639064114210167514845962783014073868368317647653247634868879297334588693318535719256888730729319302697250915444340550651762465593290419696005762136825474686199687923145401680373379488253545438297914234240230811812811196380983323963422364249202107847145282945474500757572832823960985907463246726119477980629364438245713924720787145067296827264973209641360926373895508310625506652610550521386575999460532656170781364835421726961605247643073417949846184774580004908732309833146260799976133170059339763048063063746668085932529476201268430301919197622676455048384853257133606750155609013991797402728839828890415474945802632980618194050584814904938468951757611950985336726982717106968650077166169047881186648425284789538587180205781036338285371125221339545624691693359120998283170479353105137709994716729295782397383134480826204068344059063034627935129271510208641023806318974698528199888423462943169701579873810278817376190427730700937622438713630369906295086771487931575966628422909674205222930352044481926276835409491470483646610071412279264950410036060487195069598033921772763525712994935196995879129148601288554349427098479731728425742549483104130997807610474336585451416122981228893966877220794485383811217894897877211144653904668337302379965981643796207999174427369986015664059007816716303385428476026055752735140473883464313054659973821190243162503317973941727889523859633218031027420592689176078135084624205626477238744381320658426516376043631646701784338473904815712347785145053178542737294205101434354538073648153345491773732186101491620658607007792758008149030985756942567360295062129229553137684945306111085134049635682897936097429010858658753899861877392609698461760483131404781163559819926297066881093670851938835315460218081747507909630235800429304652645793809653534521607672668289178125061674904614818482798413153694846901513406824164501133418681027080720001518645191815963284303738653172652486847954229468238033962646201777083193877614593383251838040887091451720899228965234446699295008861147990832229254331403103781764988234011074428801538955023909581259991344815322547555468871881645566350550092715849241782685249764463814236523271531240637944255643996117761815663174545423505043940944095315320335640230552498493568608034653046651690831124421561174973435468503822842036183632440093630315082052958465087209785888344953225906779842601625907596465782755603633752883515277151971170586595660095622516834166847194737092483019799108133498730325265720357339095592564488968906062787330331957730424235874481416477660416351149535483967352774418617941873420731588134096540362566160977653635771735653903059810920429450201497097142249082900782215854052045371005818167807979536707344957381047183973259295305830419178092100684148674342637057767759862018473877492889154751921240317491333772873233620229610056917310951897592587252053263687673305195897675256400067490907691442678421813005437221264931955347482821464813553006356784676493854389134957682570596889483427022065291551801428602223949328496243863493039477409989032954455142812840451711344004245166316240407779669442871062272246236394956790673962039020537779321713365861196090060169863088726637149793936790164594385953299625019600718322358822208117060823334326509270712372051898433518764140641917156057410407176528976165788163576198012652536651312977860274710144588352783980427035676832051451492850129835591663151503318853254253565325494289547885348507597799402275900010758178241387809424791890096968725415600899783560415973155338431256968111880951562239383404766881807817568689008014856260367204621720800414902389514177209299353675935310121559713305439169451221970723806065074705148868236790170317901563339517777088903035520747564293407904709092035638560917153878424522036215671391692342989193054078712793663580781292577967769987134400039028486442946617922121230399428386626494046700298777947740832005151090990234471157792707136221693167175091267992060018612016009864769968880628361886226462397816604713645217919961200985350054887797582178642977115455037012745280390187467767719387338840095427067123507730230994544112274820104525289026677865402756373244133153626193370941960634046847802600858415937952330542319396621562168695609198270834507202229927547764162990974190315548338399158039900320667595808277696879901079544508637941090072369486464295283114213995620409064441222785314803024002609134061977164632921037691522427005190859622841830598436794918027510161994543312129722587913263347076509820625616259890608461218824896526571627102810149090391121517981817672158440098741601250051088664126708507965721441110061969769994419443013344930870814627536825647120067327004980462224064328499729596547472643941199559722644792521602403817473747148705655683408081740761291527199172116279246070390125757272530937201515390088442829194752441202458685326357159301194857464472540634923602204673796961471864672786936130092349656424031186815404012430276188280376691003105626652622786111222359236857010666842440067464541535298151660058772907017598709916826059356990906958683566303089025353139240846374242122282466652319722850394517770911818507114161753367050712280502665943372466992142385916251198546281213772490769147278390346321819769476847885995411459803407038207441796367890732126782541197796859974015100220411288029604471145538106291442478887287480292860431912812377427245086745854278802930074052960427520374388738152532183763751736277266248866700085257582049412550003501336849138865608188980167408357885484822039735256556436426283810917135081371856880424489676063642981377325842512093384556217021356109332739138413395110562129955130593801048088389288599835463761763680653811660426396339643100469445582587766910552393314040926999216448683742691527004159497719250760327869758540887388333107989739320988712042957901719156488729178602323416242533828380540325826637531824447683859131300892099331348444777402843718703325052803113423806265751628344766394491376199557541300946452944318773237860670448167608909061970782774385663326562036623872285406036932572569968368218904320499935138353939553806152049722923831982064442770050544936447655154851217569562356905123685138398191540946866029733765783233192329966625362582368374978538944692333092036944894462290051834941238037269334746468313857811634510231053415176097180060752348709427667543432511665331554983537675080816427172209442932646636931711164283813032497916417413058841600010433559569524190956624766976158538727444114554972208332928438667048785370910219580579865646212843968978531530435681244457673311749265980910690345955126002694798414500349876175526727643379827036706587712876589973944059859573718821162674014087340163741178435086880252233746372175272640053060214946724354673821013328418131984278933313898382849558846823718846047619666058272705235729653292099648272423982582364705129484458855670991494450613094258358273052969894819262114282360060278849230232660714577961231891630834006699949011948572821742333950216006705493658164888471981435338979386195818764679890561443847469929049415541290319203944892376779337713821410562195460059178675608387584300046197787792785106577589372985436771449798477792648548960119172471602234474429088968807574999096376435177696852866681756187396730233949571377421330243841747569189211131285196195359698699990787023168142549619034381954350330582234746164095459718319190017213741892205121522767749487410005549557781047277253177890293629035383598130484900108510634851397090631490480882587296778058091653674023396683626706530095734133969133938418198345793472859780667351355056849009955817261020780546174645126366656774163564215039882889731282079303643120674283750679208722535539392354425731855579164276347972330654828184169840576000924802595026455727273044386026067222554998951225220606117484829779717539734330795430883223752024924241679912123975636950433791982259223423764502736872910954497810736683372150348569750080004865307492242246188400504345145506596246328003514512374073991009358252719265964540993762712953047986432455138184013318666783896460184191852471429903456450376114279897206420947418570914273646869723403509392865978640054586795627454930394853771792738971628451245872210255399304292590551944508433964484383632661731972391145282837064468245009649913252039348133988934598732421042499432248128174677135816061607640328837124745751387977708854722992731613560492095603875110250160294739852535808591725158501449865153667959320455546636902144025342818552693487313259573463120904634447974551725225344831641548232628597686947375394251511304703934648402340044409715808412890852377474657526428459486232011963382281012884538037232553772420669564202133185884645038812615229347338813525048224454310603679587860170673950914356195152766230523771871190560703324815696645037528749102296020300554107180538891632225558634672469476825958471460007035417017418560998358761509029198652661253438998730666967298842487844611924183263991650059241924659431864622565939398493442612140669459308718561211188914380350771847490520991601305658456634540953944374569621402781439219113366113524574554113493789262387730094191273493694533832960259913807182149658490895570989995600830413533057880791822386725541697567582484435054542196602212696909039734732961293495160576849531021776482633625614705144059930326183238991392604978221889397190200941460889278548711724455972850033799715649433868386123756515516256219122593764202867999640719585052836024060682418341158682930868118827775849646190776995834380471285169217684177358426390655879252469615965322876846903824710067666119904483755540070759846667791346146853356835574662906893838454032212954173361463842898757634868417550582232417821649180279539158983890484702936391290016060474792957193975812839650436326696309312644960256975278405169306976949831702005272987581190619635424377518217023611688052020595951365507115674017374768624141855725208273472568973567461306994623392423205738254169910848205578485086190494146918907901764887300852741180412867858113142281787970168881477084580931414734132087377710884071236984344613193396399494724185964276841620128440097224343303734553220478126427206200683877155744704265230836049511736817486928508335337172416670018985416168246847079825985290958373552368340089802260029927631945112564455270904977672480510767955960186221949258049869410981681360793047070036287049350203166777402522704020608792723212150484079963847830942133353533611110773483822035050030073193076732470852883364749232649529637161344082137900283856195415231841707619766064906638295911413268701043590338870863799906357756577194311193943597715701992194223209089128345400138884151675447910472290259323840039192089965963704690298594451536102390862258411119634310863057008706698253857211681722159078292342646035326859841518207549365880280287255491191194959202303826943689974118790996008571104758373716536160411528803130126673699965766907856157629616838360159241486917184925140006327549342504472792642049899745482981474827420469227742813648365687501339159870600693012544880356704791168493130300180282938835725976197930627143037779565762553032863561636800891942923593176038812503803070554442724733258749781952874257718117132375070338346726070674919471781495801262837829553050450928851857571235052276958634448801919376984675870150843296668577318769097933433331802372148332012024095295141663441527977961142541962894978874079103885878661319074175177971227524818956406210974209853247089730376693389663648599369421927153311124268269688878378561334008308031861247893206951512375368658028337652301855455706821904309049399980798269147549175590721166355257484701981423625652611615480472198677352433434579939910113007427799967378817100015002503516526065010270683834241355240092519800339216200133953020382684332002326355759456448224357179912564400105287982535231752596085487373344572281126002646016068301115628917271583798927498120002381675692228085635896259764436298800143757863749740739368822652615755996490796597359903598035268751411895491633932863510166799998207022896031410856449935641529133526789260686370649881731525273107471891005630891385972657094434330747233125743526541979127224648395285920109248690946350271002586049926562768479379822737695618318517647741099820286836949027560568547743056800924425676244671794373771571313283574876573420988335698160885475493428516972337716039981100713260092722167319534346129965393337373436380613459032887042833447497428359290593679883841406736623796474760596442722241407659252001729156429826733269097354827701113511984039202360323373358815805568331699620567961037898494372880691384249958202318896127430500177832858988315715894467070754984573029920577136561277820669607469981829514503015799863062292674396357529139148358930207448142901049081430733666774642068080868896613899972786342735068901779178392321062052930449723585980966903573333693055853973717527849289346673739533442406727030780334283356486732230888235271007657674001632002418827054907233932915153658906009893482961956225280230802962037503408074649730225677177892693895665515867353332697117462920719229161052025356062448703164950455430722196647507891698547480223240394360098482477310821469351087820269381217488013420191212401597930058116601519930940116212162216338063136725905485657249833218337956461287163145548650768956774934231924684807635817443796515342057090150658433963609363164723495786766520806518175510771845013208264967430923625788929083425073370205612114002248070476158478300678458549606589487356109903029026171152318959729555601283155184690793590465748700429225511205873498941514959525270373537168697817467009291914484511229467862870315830819925299035665367733469188765891777280410768248902745235064902696630501541655150215056673633267965161919216726808031604317971202903602398763892289441589108512758756739987937805355066152288394662238559267793189936959219768105051688973340200473897346360386727846457057165035097684286312461473216403797931989062151088898821361545618326165122710831394682799748347245308998660195616926436551917424545355434714750612953049126402881659904537484831538052906961532530861208134745008518855748845709220642805490547650075539348600745664483989413431723375102660009330329154082529072344830982072526144994821640185394045263016592438219295170527903111694781620381758312871851384084518474353129892721051728321806463614281856528429724735948355225790055518017899297136098406864245498962654380073142597027311251840267419597757000716680129598755265139818654624452425630290120141530182453534468786963682309326454718787367719840544847952098982991544212764594906499160240958638493035899361704119613116923465730678684514895478110688819488916943931449642068381745602799152285409289123277625022645239642881716488322541768509147797795920333483819062139314066432587160321377478271414575736915073646778891828115726258529096611262263672402079270129362637624787920412093087631885265619132897046829807552753723732111595123453029632609637655081869055151726184480035533666335933584728599227015567009556620429061464670186757508063701779741244855968176428309875271585580675058801516770387173952977532245235787881031542105895322560548565029377349094429598683165256116296869539450888285899218925470068658316360135040105942625275856329039515605860272617946933439300953152247840601470573248631810318063729066087992769995028826285216747897861691380891228480364809751752888436845079497188736306053867715185626929429312277599074140487476293996799581683975091419016680998002650662340799156260490926441698008565738194910764464537474488197714254559331667542003633359298066709142191821780390755495533622572819084081819955306618411358485324547214797768193974976343253126976233891718479023562163546671410127685185940109496976936670435475094476969620423373390769997729399387287823143424160067906678921265556608150337248732072302020683336442898258622089328236475602174468914247150920788205692298473825220274970015042601245735012321347297943111370477206387403815462768817602570056950367281041722347195756644993001372628662456416888830721502866444475899660494671216445970781781536910587265202023295166985665997273765267501876909801287872171784749095787314671917000993395263579616734249751459379056296686988132097487215667335914056163497597000837793037786584637681106038552372590728956122232226200945903169003652546860603161459814608017237878847835209295440720973319539498646933968163731428515845568854177043410584146784963207729709520654661654296953237952650787868114668211875162439320934908733087427938050819586232789259817307863777114255994396050543611001228193617859871026609685304681352570740371623444581231581409049454812563466110032793782523410669146377885624496326394028952487952202993378634371751871953997369318814998047052322562453008300764539947696064413884446869268875451566589114928750140711389516091609177361455404947053939155134243920699635744918636034206023777109499002294750282576162223012900664351106521910740654487669115732068191938525852587799891387608783962131643034279058910141243188999252158383346595586900793574135369014956323434650943157164664840079962597011437486414090363211411956201328359489808743723736173734845486467411307383471440059400735896963407155212039288088473046968233990827926635607405611154734372996184087524347444491097277164847130228410905084415150043511661979511445323782309221181875996200043357451714584164491124696228124010165652407564041608041165353727009239645822465241218562644971134148062443903643730835445653778135645759872397216764677462543545786597023075506107145918246851414736045416681068070702531137855842716228307140464232583128573888990825983367285512775296148301239967771656109808065167641471604774822344726431387170219824412131793257739024723326696024149288384156537200597501409898332609432813950279422018104042859040345488518908726520089344110760442936842209434100395009869042794848063067862071629013645188658838016909726841701615694560498999395612983347067872042730449777899205151061261379420221814909289576707873035632256034908161606813629841457417226058915732574573092037660728661731137265809714149421443336391366488364756519434630482723470079827871504366852969501740736812256372315996376753633753129625154624849050159429847184680964266234716435470110664664507304731841030318382376148172518967677744093322813947109243165449518044075803795670477196174503702123367120966681673988377901738949807597312866530378615957707175366421622079912245001523544926850907433039427264512104907965697429661106823748164786821594291318569672789061753318869957169389592904771779001205876910909564026521810153423792839911779449566328724312548636971373081082725559193535051314310726941585820881613211918308907155394847802444361589472241620023848937744589204801150331886042367575313187215612635156258307068227102782323536239526350958951181270057619688942391057407349966161640273950986183940396830282496389304999919836170493648216604588032927610061365360163872747928141487839977397692624664248582060397338963571405273724997614568076566278654541755463602536755042398824631537101971591201057845994130417761982324246804626222809815408266870865286611555309397870547353819480615693480994011495334173013071100681560890664516631988421536666247978294942160495216092371568526232895790625948111182399912974103822909541610561174568226724422150684145077072174258550851731035917063035569335324687157187949958697630583072041236092553496822024445033637028340145457791761079034655796230567810702577656144171079109655022146824824641319270899193196507440517724113725323221174153242507676838815280293121632661047914716342343599231273413766259457016658270899018635831749636283993158875446506159846865466981154318496016113167425010765480071521816955617095303170122109535754740758387856908116000614989272133233251681423214223184515648185405136287470828352871398996125219835086949697029529684915206423725543638951035052997633721249126576299216822647962226409633264888699928226479485757408038740434948222194615562443070481306031200166706452805664331780307715108104648689413000862152245424687400398793628870064814448707462203876294870542413256503361067491306463939465273954001103989774973780190736272906573154334661548898212821442056296320448563134483566936096331495401263228891570092846188310908188495965020166979927706072745058738289861540688146128265437430498646945974202986252007354790753826972961789859215610347786087441728955426214197272541409487593157049874875681836161811835203229318642791961707136025112678569062217131138162172930280049421991065551591054042281073697619413900138104797670385671617296453799750938133997634868842315625853431098149497367727987493008763730193899128993674659844213108863627231523252266045477475807586494285168767617362188383025776185019471214709455626597343680578345420770208494321947703337675338545818746307361514277240607511644333955987390517815539241772983613804062408860581402771524755512369414042897824014282212029254315400544095683643285608544791339431732091063588904383075677211878944651200033154640634545967532175275373094449601798299362742476668673132971449587372477812857292689814544283986100473803856502265598755906863986218997567747545538176715153836107091343534085141352643366868617480963370850579869959839008773370469868472544352851232522094753054285948109558515165785859474920164268812113914194255949939362179271777564608624103369266645913999988885292658891742963680886973405162907325713773223238390046187326494345536407593743708423541729457808249165107924243389683702133830971894099862690009670202842515219910560358819115578353212406488454930140622840074991293838495848303764975158061829367864204592508319111688342271645194599805609584591788689737741930392155099997956442036878640454882027533827664819773799176124611743717970904734663889373535523196712235426494703197597835616476013099324097823073192037277883252581960767927076323903439472016260865938107735380293070751594068491296372389341068910293322590979748985761994520347897484053771714769722252000916240637776563190045237358835045338661205581084118996756223095977265122342688351427380939411469359186380851083167396206850499954615993520321938531341171018601793027400169607252048465840116781930038583626793765474282341332903406290534867332384156306252148817799183640291870717556010158788729146553905022290703942222990498801749884843885734467763923319464683580184866623082795664827710417290490700185614531729891053473875424346458385697569267567465557758362781878780139383459206037085476232839999452444104748525608662963223475067928933698430495479322292516430575575445544383774797193746572422080024811845429838387856536308799540655270347491726293591462423903268396187587497870787924852937664788026492838562974605336407528494911149437794837231734409011590759933649146808387993350594356689910078171339796446786523438630589785678348222478267257680195683051851388962571942948347261390891788716559328413583558492453829586520490862034388289808036402898907348316961433195913214284793540609802245879490746861016850229454001773658198941468090122970277794319713837293440838211131348370968812644114885282165291827039444446578536269945443621240376897678053773566961728636200165991028065922661632608723002466695742453342793882447033855677370338523530095320618002510148196899447732515375646883692585572017207376648508783902290441933171961192830210050220361723971352445732285444438701403768232088077217231444836520197335575927655304321442580303323572867498227403629870495850603234571804984872174014239359257082455213570781961238388989298845627658969869830791349940579727339468201530511591457480951094119326573652585825897200804646570238488867400125928707448850746217932263329800992617557067811399214230022594659445134079238766414358318267167488859288592533399970372154408555021955991849167765447515277420756059450506537828334275451868675028996761299893153332257453134039463170908553488458919718467040009209842885148490813803718665332939261286977517679390306336211547003075660819518474530821079185543586780321375434497072512186308833377792589369474906738796828594840650558424075039250162478469589389361082817410572931880526705793406045976279400216044388401826900419606454790026920901325115757153895196778749479963532971930591773799561511000426173429610623390905006079082706155962742944790430755916335493500805565758084567914223832682862088677661599291386621001725724429559402015232838567981933003769766331460475738124068455462589761444595163876209511078658096105758874468753348153572212163213909622796209451030734523285470613932291965658393896039475361229148249532193914635786586915167498420196746894254103187434699320895095035807444022831484172390153806442723283862654944748633442185770197218095986471738809009285524347916497921721875889704689417742313911422150838418812431547102335717282796443580713127183545980752027875829424177555923962945576893005899411682821572555560030411702233150161509909476897430511790677060179447216519986534045125171225770213833107721161602590280454174115222633560802806539868563572368467720814725723723505891242133845414599750709006202559755181677083398023781844081335524811109751026147216034729360568947691779217844683347157073599107969460565534836246746469540727346923240936973332209091921229623002648476001605584881675432755918778789947241983328345003790181092755587714690175534994338584795640482671638539957324783148301824975436804374069697138790668536651972530456923723173254422083966387456654720702518258571283384614443857580307869499468574310079316946394825741585717346235806422569392086959561712566891290482931754443589428187830704575592690227695616618913108976569507976639950518391985293985902658814655027947368349496034270525017750541712949099729362809043924604155094820927405886488871985577197674431801104992162733190180967140297290858527462894804278270988283764289651007047349183081885515722571003720133799060625638960363927174090887836365002841717549695917869199132039458482258903865374601702231615105294451094357537459405452577366031299250801802845318846706762229109645864745821168707789375469069668818270807578804615578112561460325539825814531565071679066231760932619665596345606361809723949118017975039876055748001478173956348214751734714561444608663744359295028686871888333041655316629247882413510246996939621565842604643798793821327445062875872101426624204254878238744599171443104982031373776321129226738355976923795107418182634751030189557728109949435707244459537937632434482796584526896980338398861327314866815835039823052301768591566056571318602736214662487217036558168370626138302497799751766729744841129504308230320549843133499134067989056063971630911643921148706902577243849735634872618277438476576365206151746550296728622525396635913105405936733991754642495205859389540871921037000723220449480549752902148743831015325088666269533774623302495225191897140749643252163817473184567561180606497326821521167954254456543410503485107739769675133017419459228171044059572522022331459787596165785772998658071026705759162637224079271310457231686216106269875451688249539575871110486137830680371282547968636346638190457427166440520253126190507133836729006822662315653070640298190668430123624002298474395925885239092750995333215988543909352569122197948734528738499889458358211070979215169843514978211335109413822980290891825795513564052293578399793720539045000867514743456224780369669896864716912087644892403261512821148794178068006758669550212681046502960771303235846394187736535033128215200210481727898027085345389569140483180324865810190319771265746396712810549120753821246621727166453301112564471994001057819327454351436237719329569770361457285932965704337092924369010354039995586827040404785171185912341304863234266770856977912816744888112932705935486653919895772861690232183774436373082212762513131389328869828737057022908466398619851875626576510793621256349948563451096946770087832594618248868344289612528069843287028235387075693739780696133874688803443610241884790052315712943654111244278971994154985400366451351559470907774110657506813321428180371275438134899040706290389780072104723136048540049010552762115665162567872422859081534629374277250057478464005747371707224535853324886358283524546912758487385517896484539476931018201745130192010513696794498918102627884636665450720712741781831031786205079316422639307016499656946703042011588419169895936192747600501960985112660594181320183262231808561583657430876202347950196695303476115383223596523459228493394156899963860211608748040194923066969274777354318994792040169032742505671455660506495045231920525424614288123908513406766228259155221260635156023119159910208622218555739380569922176974973265831578405652306661426712244714206412471345209425696996334347887721573379914002932196129805532308798653158578335286454151555262497883736112279289407257896906823063412161947862087378621320718969341691101094479721263445062871359520878130186707419181002811387542041824989547469312879400455548479423795852828037702087897728056264400592167807780379151729451983749212266756268488289570959956662174211999123428458331065481845552819033259425005975649891438566484145814052723873937537037021260753779702984681310512954623474005539321933863318458173841770455890844920827855837908563516232893283093932670269532547518113197890642837528013382437451634220316375673868673996070304001124814462855234551352902725838343145395793630290251469585291246328515423064971024330936472119470913764901370919398402791555337737090031430445330769968297812841427024115122614912264165692794407990893562644549503931740740649297418256221522563941821715165080780999246891967229241927950336177017695416499663383559224317418962637799812792739618246988469798282079971202755833486097044926161906834525102316273644915347588614258349090782297941846797197171699837012058343035230442957386447158736660976107312335577219420870619234488129743339787156907662912085868376132038556023801820099450930886273106241623061117834270797271003688748911745859239150998115550763603305966302880834633007204542624130924366207039500287939046053166744916362474702908155646282949829209821286191318742523281013341378312546106757098977164937145550947836326300431735255893144983789929375105326244834904136941536386859779930001152913738589794562535435356461785561744839338849702106454575331672763832179453881831520792529540436734342793330457996684068961852974695415155076335185995782196331721916391242593496506537241707419417900317076336318112223524873555948109396685255223949932164036073870670406990730282776189713117406510046136384413350025084812158965592569885741246059832251144671190574335078061160407457281707133606764682530896416610608132432336052251191497447390127179368364801151015013913047003721709735327035346482256447642459765272694010337810301940714630432410017943811293505150520174683267702128648876063632142747135803144906325468354953322685275053859044791692825258265755010394282803219637154731060937529109782020274796142067669174989207592269096076442404563457721258494295530446030088637422786920548374097500792694309858462628280006762286888486035741154595018280517653889683289274419463547071376476061172143094885517158908510045985876834551170187641656471863195193038651253648795598490259427415602813956180673273699369583723835094076586290442558765731500088721154052472317387331404239911241816385004434483812100425696228733379514249873255413847565808380381198420579416510012632378619038633125670371514990975017840438248761942799909235920366934205109486524956490228977854854277094855190927048768201517354716884800858499343185995013338017494897929871075495093652459840525994238739764561111232430544254725755779200345750582423429015328979777880291146867041872733750499810469536862038745660868044272051290898142800452254233577338560417259920375658203981331099215557430997762144491103888298539435018376777055616764645207489879977237484687976308511613493995836978118820391361842798196849432005950361575447325882995079028815539607116441078329258348082634033924646224466302905795868301936070722666557757778220102837591358349689905736439465704587136585124008372645749237786093762247471466671460004652614365111336620924317720143469656719093719028534553899922751234398705301380540200368118443439176189552323181750406861031255267947216134771082671656778091284602071464709634019718278395271800217420085274064262123801528368055975504111641933065329510487453174858465691288534098011007020780121914453093842802753940821102468244929991535621105847060331518244242884347938194979555265800766124958678345296762532396484243206457469482569102836735035216856866978440575877758215471672091468175253738127053581161515797952680331930024408762037860104108876238781396494388381614106574965105870940224289845811288754221490336370072940081657272542723708526546310443913970422408247940148816006394986657679728922106799759791297416213246785644484315688324892251791390161264081168387255783242328109836124512474546900965422781040136601122051054098803316386644583208697714387541822776847690290663757731027651334691100033782206635291833176597200812049241684314215894853098731235496559959052674293188302991454355700804063631189607079011853669448934767287393719270194209015311338461028802610469896013063100570519069635116043286456358145329127342536412235986705934803247543679273408056279351835090716470263212496888239447137479778436752455240715764990719885186536294517413117812688634436219905368502028698735210269476489295802374812900893043122689918463078386507651210453040494797005519196623312833134891197495008561297724968106885925485526519577343200593340859653319762355421752807998834895120521291198548670544627326663878492120492539172953150186140484300888013266470268845697960647093360536385539897882446294602751375776795904992528684385934361679388460834361287936968730742397133177738823370518610542102646218357567957664345986056644844880955854860163506746060633580171816063303256115911587521300977677951946229876423661315908814657668277546208142182876983103572528889088371014224898471255182898426386392967047576721058468333383296687211898441916139703678822349739370029907082211708531132097804205170023869492128373961795396369877262899335520178644523560326518013640811120697698290325700875028444145674520188274660773254100210350863481862932686489340339260682716987970540721198738964146467749014373367822167966345295297289383386933670252307317257284085564029901364051782186351222809624730843827024690013192103496879816953729025737084606319320102883206665832114100110773519038593653486911067703537520542270154790191448519573315828636188562934252321696006676008189465721254454314468776252796018933506612286452345785618079450535504614387039190307504741130815535364263089201817020496863996821420675962321979786069268862797467123530952303096123464987020562972913107591143305361339453342187079461773467592915082208280633818852574853416686630444895190329451031953409483609142449968058549993835839137848247360078578025214276077408790417550850191518934100268122384577588254264091420389311245835647463415858166685213406100644733094916797514344358127695038175940350555304360864431400715742810401920460472230978753994250802253872310148982682423822353930713999619465060642601178202062498326603352523095425064606933855266585498246814178389767432028462381686918593088395996165483016152805915731636059468622619000174949474810630985238663399802828720930224943797442244285245677011680263232000696693798074127179727958864433073714280914934304953509822738942565004375415264607019557363902949188778643034008256752966665164104501589414124130104615185859239731408251561296629170379370510889305295411049715226342689902134246808533993287969539262061049358929271040856519871700407978045567362680179799793554699389891686525832872836611452653656082466102781786420221267060575132298978729789460010536351022196462429304283487454870839581382097629587507253516564117256211622048697035848383621114311429205046509087290270011784041455674411144745803906093502674390976879074413738681273719329679922317025113057382995692392963992609340132693922398606948540966080064935952662510257848323996613686780565282280762375018384996499032006734976204663372540374023127884174780285162082818007389687931221245339516823075608311461607044170651402413209075869796164900029863811455471248478202615593613645626679078147245825493823192738442696916113773724740107890743990323815506905980114850570282673862007194622694350505075483756946696686095497998435858811147794086728868569176780371573838021277806704980207029648329511413334422455117022487483730740420830155181718530647227923920387253489402899335215294667775736520178589458665802204301205105403840159367917438278942879628679435876290389453753092076390847161288355098453208661094652525691039152902372219206503832437798294578174356120225352887560555014216437504774392767711947190340395227450254893014267366709402155744466441819528266774561368262534013185895421188133200061212183090616003043671901074718773052053047765307599575178616668076071017359466636702060302276089463948518944464875286401863200920368252877274973065032955278238396044143126729543657052437556443069845464305478403243996492400759652379061641076062615816187936730323271970169119918825610966464579056848886270229844202346114292202276370621180763999293722819605429499406910392081307523667158739717172902779254616133246238881008106901682595782248277433287818031151863972339770885389348398234406848659248745289101251481536450166376618851880368282256075607282716757203038880794829222750059437304482316080304372552096484521604921737264646211744075994968236574830906580202697868411113558274824871418775402548159900002228202682826297607215352912956166505634264121056110630183795737628899086756106738416176878370518611246115957215914482025411096861772055741899973848726304185992840123539902028228056433899287216159431115175033916028078692947341539853396975948282240818870682680972443808083217919992903315428321883547318531248827124524814430716498461437137193463686696200808554949097572882694233939303569888560410392541229065756492210054205514993818090081428871943265330355423399739453422796333514535846344656919337479435625459808412073804728318354453693989616728567196642070171812454183436929683024919521271738919769918348477965931773623538180537474401979061614878370643946885855690179875842580150023998329681779594877162790486628204651505033318548560822404864358921306280507683889921644182083570286553786280310364044790731198392564376854675641491701701306704745127576140296678591458764515934604353439030671480969091437737010857133062178798475128264385764261594283431404065878062411545369996479919853160171441532905602727561251221151710675386272020878798450725026148317629717228098488741427842424476352710854979840271882225678390947887740694000730521022707982526838334310088422832602647928978344471392034926643688523876261906008000878848670944381102135314263384002803314822753079142870998559448455114946006324522223992694240237267162262006311167021007773764662243560448732211680400519914210213428199635007364699038798092189240504812654121079993203613287046363401968606012614962956432174419498513801097962788365166493402233515619682781111967171140923374593335277667014738120132626862894790498244229852747353106961669985989831898034916598084394057883184244498710834817641880923952475823880224748378122655141567597577925516491459712551346984110343780331735454954788898521814770072102057878096739407565542891335394414053199444854454807865874324479233187366375993531577825380278113723167968196369602584351532449274099641125389887414392702037064621316483966154517744246154175661323641047783338990224457851410558404160925307806227128653271471813290432038553793309776401662788106116138910592073203833269116260029909045085845256045897636328546090823241062542417711523097313964717531632123030140497564884897955873606914402686889819138985210270328349738743885618855230741205533041833527625486920112769628438963643814482585413517772595179447929925273533384299396508502445305298383734342290098425760016779247730797441976979433643055648641720714469949586099682941409036909341502521373784059820425060941060807340683560581510237436374759173159889704451518918277944315904340749191621449653683548875960376963096081993019203386531164275622747795119258855485278784402752192367746619852796847269276639274400520344526215025509651960008724468596068213009968814872400973429210513683356085707672399716596225928023508436535958030090876369078788188057768297638478294266694637204656521777632734372968587644097783610804987649558859911658927085929129489853334198776985855484758282006757307239236352443156804018505297855416278677266851949285063742775404353376557097756954395813567670985863681203109290903686452175461646769085200725377741812008582982515007737432139090345322897281249516498513109706046940091408793749501609153152151255428372503313539564803672456450466700406772000383130900297368971382573711797855526184817954004116781703640863462356731855770234650841495743748797307333925170368712703006066516065841777671975885128840192204632209820686842102997957868724839654708688842970644209932349322115952613494852095327934603241897936729111622541914055755066811950755701285950961578252421357559790422076036827492540744595394401943748327200669892924204506823456397893023339026601797084743739874303390828774647581942410750945088251909547172435429043863015833707065302575540614773406570249579161047208439746819725853525519473581329290261354959051398001136740351965586920742563857169557765434026334398761132360245230046166803715401876408871216586439931230148987641124722533546900714073112505669435387061427514707888700584059663514065238169938941602604324646156732101478074737378655697478471318156439927935564913301847969735406797755751131153329106239365640738940834919082918103747803346126882824974023206440246165155941590979042057552897168399022181936398653914330712689884974026809225481115066589736912515179694349220283095847175522629217697488512030018984858464513153119498126945268925793141590763260627467098669760902341722619966309596429721918983025298467206986442133786269049300692722331507803642549767886375041842221927954547488867260608810140735161738683313153706941434394454369136763053946325889918527743401981872825243772126193486856179340690706770562860397393038418649290008188788131510740306158887102471614405810504581573354939089780945284962311362487732627370541491730122030512660956018890496375352923342069528937271935574196023219718688370231844274432800953409284442171286001210603226909542607763368170561261577265968287240902266932177908930462233715796002531731482998006906169476777818850162673873992586368827299737050237189891347284644822067968555783793288432477713472992323098251199389280676346736019712344890209622205340056183399984332398365572095266710380710222055436474209542491520785704691614876779472177485778554161191693060547653739529261725538105083075421631472490706210055851929315003528547410070941936440241956930689479033405576384289721658044226318507356434960893889668972649380377909424097750581308060533157250221755252960834402816143425609926636523364785106842160392346338993910709204702082371363047786960193100150197887270593130872591860824735361777524697374899824998918823484022935302380852733749505336350992047131564914574526181489932937635363077278185586061615298174640713236946413406127742574565986079166584919931784978175786610732451953539427621648900523674509634027848108327633826217186544218331239949100600531509843235706520053434560713239322915264006187098037626315575736217621114116018075976395945308132384019911091265126724905968093594683493691124509712348602740862394080585395776658232613372391414695752132245271531695699831256493888945445691121201975057126583810637325149067354115603496250386910071275991796949291890377216257060126388179107127303861435139555057637155803719505346751914627523937721103989657875004859064998106301337464038282329334654044157219635738969123511476907674002104024832579154859689998227997006955545273126706721593013690818422205981139408668183771584249714386128206711042672978331968026505685153137860408868986794850601814897458654626790641408095635056145054132868642053444435844810160008954201699006026056866123345242899688529166215461522365542962237404412184218771528768558967837607322710092490265177698557097411169088455670917538194054909108986868532537799802400333700913965791082708282280324891881044710463261266552356103437900136058208562132059894570334544425996624175836972263733187181218900529456465522325163376349052800277702604874136692465804332100274597885126585076042949988645351151411538568065059539793542639516587726587895072934364642488336923670864980109707517333281185697761170684447417173558076956441564880968488258078838859648215623371408500253336934785908319035845980532230510939442067815813983256922310704784330894434011420351633324421466545078371953059417165540734448230382314892949209326432178760915290172812036016745029949869559846786683460178173218975107860617818064020426964490643859248190698194635543029497996403866069061911835681563156777787945979181813876915339776896702913388468825425059137272608437756496990768428541163595266395240150412462098266224547594921549250688345835323226354364750769910564470729711584156021395456573890046660546579786560055888822771262212162141854360241254003442700662073446586428236349711429459021610195044110479795120513854428134390252047439453050083176517429501513814852698774858215968841244222931329178836773871582818540852915932442282292000832453343531852156192126283705159001345742757886112720634972738358054450043915289109405032680790150194498728082081443246519698955301443449817667719291180123991131681827328682040634658764634974969243438978890719009959131663814467239968315466064989353899417643715492272979341350733962494593851814985982397847006268908398364235741188455042068624593723189738288068733801335504730823980679399412899389746448444630886660146641448126820051800545676037040261058035938951241953524204436834896375229874378117057039351259324890172442752639741473466049328911211012398496342771208123864049403153997021326594336560014799818181541314841301258137012615619628967074828920937991364201742662035711359836927713504476140554213032615257638026691478573184902323433906477430413371389398190173930462041067820175553661658521109529410659984350699163978893217219562510161564411493323986331951892722921847692730146669974028486622686552533893551329575729007893856186879224854016683500348482141978519002188549638485839777953868440989967139298922527752876759026796208654268446278568998776947815830103277478870773003210121884092174646766913301641691196106837613788645313656640714953821139548821858430182523910210671906001074683704788555393572802097381079262979292022003263105367759761571796600474065959817286219006255643845709485289662549811361489490550335933107665393375671790313023488708189577368212358882328874162730263194876394924794745514090930631637708443982225945263605879735214893287427936508919321351702747649473022865288633730292276570931880322792208376898366289984869536956387961451193566503496365552686588062000444726466048316759605920756333719827900931745760160073360406456546524521780925979291477758883074735926524684707597079290838266809031222589904143002105419378576811219509069270644335501112045248544701249740818655230670090206316750815956638450213486504639146666222095612896651501734463287621183204630432160781977874535917530765695335186347774983555093971643160292589989904724548393422322653979203831386593572673847070681232567959469765937277815285545765346201419648733672101751876738232890965321163225307320002634393052180135031478078308040717684663500285577180818697080904716780129709036173843521286852528144960894548909750834091960779097661062278748632432245085442425087929224605585229926082433050334089628098992384440989640084559284044130468166384177276637851092522029353523650936559625461169745722615291153767437109654808080147138002745680948892325292924905012546624307481747397859113094796309737173129209605257373027112428067322688280763102364486221896590375596416543275247796858753271817726514265554012831482297450539574968867453115332112746094509058008075796622109006237873699824038177592969354864778887627279269190827822077888260337624415718719291201668273863888655048997612155466887312644650767527245123990474384522677647470464391712758478690126142149361757716544456924068169903936795131818502131057280623365818638787313299412660380904648871129826042582129180780102008365643066556792296893276728712295776255604394739823492354168666364803316049970700184675225634984726004180707245746158048602333263692747470190377612217910860458118341581261940729968102252183683096718627422988366722304934678191487331836291263413587158470206643526747537690442352140521778132909038556565273366187255012665180759362793525733986174075497023700523560048591300804766464924049586704978059232439463952370174877292963557760721039806638414403792447366952211938331672834769637258456088960673081411410052289443500940227832924503405301544361396165508595102314055609806882210955058554074971481593669881085962589003551214844700814042344326681667259619900927647369648663874023330590470745560803365263055237542047718058225767708722976309766723251223281464820510273039303395908157169724759200176079172273160369664565931280433668863643123976859038680893080374146521089709774713766855463383756684595038704433854828931687595370415547124127942067358464426167246962799473269313292434134257039753699218260442341421423908779084356401725164600043278494561761360908041671108169848633050483066688417232988397612545937231703758859883872998257172764595364546455766174706640823985126600359733425151341336210059868422250380461799154665454703172482666179542366699119512146965867307067228850904892126349136426146090665383362957654167520283545400433620362984934701510051698387719059193513466177802407946605461714967949304489388610296082125590936648783109884139879079878401008913155832533995207873425777095666563724449278579398100648964460728563984811500130624708565480603555454310874770132593740905981159946399735715957475943296233872109518118394255072457814726308971812379104256895782282928630163512522699852648875165012936969370734020273694888758347471184462992533187371818243534269500754909664121940796583956132923167342616198174980977534035353148299942639764685226609086893539440824832180661047635300883817219395506433340384390253543298403555277250916824083129484168986578025417338091099147633853111764525456524543603808432773738477202240617474130882143719891453214725396924352134238564630416536935316862538051804509870210600303071149082570905564227700290223189174426247745019392828531313686220960625767690325102164931866788364171172455331801621490512456425519044578674879966263637475139053659727479331954350791703701147243461488869613951176477167830596895932170545733601088262098348708639627309369978452108436862251761248298669675682908870621279318279010058242709011798695704781539604982134007385030257984064820660825918863749504412053782505729054967206529561905999572387928261588325449479162417746610520981252869675435225898274318839469272121421590518688499140855320571783755069720033993773949898745108695184520813878029548411251263386342792043555312303345227250909231960154930869556561234268386462091938015485177818737260611891258258919635619215592673982609706991640899924317500581240054277285535405896632101200977213389053744190778968244057560048357731249902800760687364429907564731899114753300643079557699189773863864050333271714601598392509716347014673776156350584608177074193550405682344207169190317417521473445973888982432309995660171894089697318521900732779172440500723592682193317216654044990024635533253130383359758243419001887835340542763998200956198153191906280925816080144119623021742903153407350992371592509210883237252131154796310502933114331269115167396692345019058871407411323298707447379366124020460583607191713587227080496410504743636162357237821085935517599391608328485784765377149214744467443033679439060858536038449774535695448398623422099761089733826028699844305851109036003178235859978655367192540434296085866732388393744814455600856227961753267992877979043263788462190348433933763789522458115367293398351345599124083892425385468681519078481575899154848113450995753445478233534686137827420262163916220115518365888480818584169118828755025656967781901088581082942443044155830916017740332897070594460829662215399804723548208570682983623111149959187558366106944302271018996722354746825991942085453741744200552840193319457550646298703842838532035456375248261315985319609450524698317145851842202312115441294237283844267397314604081124837714422355353127712252066699017834278053841137922210489428813039019366122198163211498270827735416275524629095538128592476651191405769906060099591589718990634812729159550977631769063368311068310900493614812290462593685481939614502953586080864774474101242399973245129893337854002462651957862071874013162988072879399129009153015454083370199962055302474998639663383262220894017022106493390067418377014229924316773157804548756110393641720800422841088805210309484575332261967993425728816199252180892218348065856303844471595336132845752980144916018314092315909892007627542872343629822983321661566284805890734265047676326231182875666639872898815312025890894392803324669145218999898848973741299551070547387508315608127353339129086340108080771923206415230031639986452597862472774326209275126944845823484609054004893061652178444094042597668898955581919834316230149233459188247112973564228845795844205292272014880768433015280699681683982720800916448147856945345740537274342017403239401575470512697162959511186264843805660084478310980554965522289153847966914583408674117699351250435150676791754289207679504849098524951392422028554362107025887941486995807810878417627249681276330236458656095739875623456188553662926983979094696716799117651161071702643387973375307413225690008038919112524653400274345563591388768155804304720737323048399455513322591445824127966538387174677368106080050474048992515482876993521592597617320845866054344041554008352534882700849163718468241935100706154404135875372812968303992950083307847985465210831121576847548907574591305794409038744905395911364036464825125874262343667157436381044724207208280590797822681240940766901438267346537615245840307949173976359451293128881648769770431087227446734564537376673182536129694018346324061779022254259505871837076249479269111222751439164490411882858372636602436674955802518531643926541253185282429001819786411941927595161121413812953716540711784487008534200575802481793989482864270197449943737870927623798061321997954569431844014235873671998671400457983060521542478236711755381348154640659134428658029539000974170108016463509173905089751254466970207596466694385980655636017837331083928911252986151945722071468198046527915352689507746811315687825602017256309632301679887837865982789323576687495434510034815125014067813250444152627386252399271676515441898016657784081251207605772576381101631929620935240555171948749656689111311353497414256830653110301435594011561763639505788044151517705394350127137892681571846937163096609699483362499963027818989056332766389970636301112775899413265934541715991708798116334632164693269983007995561356867756168980426299705862717548329649848701170773703400512034186319456307304484559361907970232789961372403438793557706250963644320690743209928423622000296676454436112178315018575682558966172383008260153787106456267214151783427278669280996166509326199852203477189354317877039807849389479789453520184580361572495390090530396706998460835839242650449925943198702671012300537214700332313146761685950885599329935917286425571226888540460995703790968458553756121368354895315249238227332647674437760793670241762136354190363953269952039327786101357353519418339880728941799888011750120000858473540132160599385415826980319108654810861196359476794252703874576973352805754895139712803569737349905429708680892659428927398418496313415440287828893642114703931989694545155857668458048832399956856804371072116396052654015359620210993982946726774200616369413986661947923688865865216968701844527752549295517031663577141403857138688586931288994436125454754798541505324090702516179505248818331924577596818722892238063096660829750612002571819783356989976457956011550646766086443301065373630883997225000808913290088111094099014878372257918571943713331587712275019573835836828744899479843692146320981635228776797662268984655852324714465448552364745039722090495766587804671408116814277552695457770617971302109739214706117124251229135185249831518471639405287652290337150550203773764283003843060049623357305563604978028715069310202366616413330758319943123528948301518383439431841828406082354378639477962716831543430883416636766180568243776726234138157625202504127348897475888556789460406088577897905228166645335531245069596221580096118939542225775545695764711003249445189309855376751669582218099999138707677909942573889594879858855460048722912666313625504201260991515475606946987675489110016652221809976493507965889355268621825246536242075910924083945648465316245879924129826917153010099407917100018029996241444190862676888594530511722882707707855357083165818586380474344800974110274275618418967136434961309400928501867025253092444844002997980461873775854171521286654246235927909774037456455223912206234552803162138283747952066247262407061253455820744672321918441359030968680531849595937475128672787992804354122180427691094492396100362621819263997177469200102599029688371635420352306185111277261559691878652241586403890053317765290967600720743471338921856196319721957005394829483317750017842601104961685873595522453651141782215850666897493911424000648810246723179609443403609665849109661134508751876774648840150687867080497422369756182786597095151784772192387740582893471169822617520347981947689610836006512561880492228280670963463757842524003578062175375671461695128665359297553295518776307801872441700464190022005583094286157935731344615133038624477473794608036498168519224357944925113920886311811515912378815952129147231338268063231944752211305202482801323187676677664074957066267935935415307281804644258590553851850258979175842641106333391437386689534055429690608177366513580843550218228820999975207301998762010569383955971854472658721675543165679785705157627120740560085955462736845247627100568245756553721900370636110499090976484493247984347372512610317790688005342628280366463577914783440994053562855017759314547603548753742513095251247536568177058466616274343849553617215122081243625282509441191346868066645121077679953320876128589935782654714520396925182198932209838133859559388093082804608699021496678390827231039619805119101720524956800803134180968817553401626656397971532562915613776353815223786322336753472151876532956572373502802174339504827632546556655771815081254001955307543857059189087797225522213439478593502335114690341033570384828575471730705117210640907193369920642067733576464350263713795158796691627594122121249094386035991478030029448131816909485472746661684957818539395204872856124134580542556296618970250388691434690363258254836952882977788517364117519264450184702722380181398518609032440402504676462376280037752823335407119601928995498847777008508737495612953333451994159885508018739733073562858104938186030836229054239167113449819438942510497627451187806740572916846242067006318081703048556560570990251740009921810595161469388993971935378956033844739733858586239396608937033684253975574089846244196915625821509543924607043129286037412025674738263048243088607286970350439670336914331397156736111904624764782852569398507458787807632536990202391460943430876941628111836030270489056070236449660639017475812889814884576673632824736501261884936373122104110364173946378428531210655918050600774607724608647850070799001677497331973062222827168145722002183549660291021210212822481113667424862096838950260351850020087271967167209992564853716298498151156688263172277504030375365730474550206447075286172499429341984761409458920736855239550002979818639325631279020785919300980516936165244750817911205264789643497278427851611843313297708534876294219023428513460572298551864412709684675478026179605465743622661263047172675285000023765076432557556850703592626314931562389173191839073287419171663456565660254573846447322813568222893722091023097589497100271569539757539713307989414132437240754383319533895844373699767729253816588735958803923656599101166113154564495097764672064547804648080790477632084530816580893739094957117648078224243789580513465328134206598090147901631390003299563774408209703416373640627267016757433997899971856195013115247885015994913633365994940992150413696865066115633153093840831535350545366268652791802193733891276333248671015960742568540516842727563277904350966768312328693645264793128723176589389710892617506071097644987923008702917349126191250479843245448971568834812825931722249711290542959486391163460671057645376129418103006183348095461590266775969398569770651427312047639115203677049516079862520792191809571592161160596599871916331418073187588860769263816631579335494055689070550417401543274818403435388768990868540801017516450629927737140901638504827992964046383047108015890069677453775602504921233427549714808757493227036515726935062763587907789956883063841574135490871459467337739567627547362199582158640058786721883771739757796459369287274383873604668622144426879129719025114043795770268606759368860864268681133187273851047491969754400159487806447693626154352146035220735258098781373704724325655936603424161779227737789259024908344479766998547422735230622187495228731059764837031660384017574179485422879832484583657577831831182595714944841025073524317720776963124564243850052813578587366774896150797962568626234720290400657661933245538633252535882669845114521278120372421014507121905327647436281749511687121319821844335078588018847162927403731224432510025807692137396679636757935425600142616799843810876244551794525077801798453792577892925418592738813154028035526430304730496805041721688706387651699368440025964576373601259409413798884158403215903795744208600944868756762582461398788659742970553189551632464054783313154252621255345492972547427533594227774336160021196995215380225938316460684872747153109061197047688187511936097585096977182635525881597991457277588458272765279204535652446753068032648784189409757272200502817428216657184863411548692675220134714692199604560347745892619918950122183953285077684198208611530928550917460861370243951730150358086769802468643833833418571066928273999164788012587519306586767531275295769337220224664190049488132959128146998590156976339328073562033368807751801403557558474899137044236389764541201828239041301576395287107260862629851114395358565780208144350590941109553806664650858167130696190814323353361620032365924531987340440459088700802188619951945378547002937338063184091600669156694908471872488840523859068361637388075242929917501282500551464775743481733696032519374500262964406920978952801599054229346806871296667290481145311208274895453364797057850825605541779758599934708015433511113144097120027468920518012763023283166941161671405215904328604603917191133477161532884545650045501350643218502696817679037778113498084257877190819306780347936324655532941457769949576911542623919190173949724501564017267087857364883849550780525735649226672195837566621119618266756604245496813092710442304034283738093476517306875347401842880051392303538544175493247766472580041220699231234567146062201244263550796388087958129718136210823610463579416175117662884497488104739069074985895095690907909190436564813310515115930654818837754139298759397540245768219261231120779843350626072916407454747180492616682317776136627685560350620501973691653090090340255054309771590096415040864816303013193556555262513520848541992749966965471348914462110659474663372988281501464614820491014578126885149980148577904749850223718520746534794347002292640282529364116528299665571680487130057969816213583410683130934707839351969176262469561538397463281373697162356984937960858208718040683293790652816692103927646337618431987020878548079195408891196416916600879248264503775216297694226027452618503709211983149056345202661411403328325716915131056728924649806685190937062446347470594888956784247657741316298474534155280934574165593646951801682664599741201630575148763909726055331438101112698461599516955995818152987361631755673432399551884295370790849490697180476551416071277547398046104008199369730295547182019071655886710934380015406050285856420021948789894780215820556310446310933181886198184316207803163559337436459634370761624407838506018743658870411063441880042749209634106876266828709728647951945641691627135211331781836187352092077940250311432257395425130740239168537959193315892111950727344297606903082241347033072867447803984049317769613244347115880964235928590744361741250705738239875165021558533327111629599306609335403924557057591505799011116208680223319802691238024019755292834762359803363119486110819017095905913347368668217615181559082449600415662920734819846791035067477801525147824448876008031215689053710188114919428764392587921761945549187438309760584759160643856933407429075948235540361530149641198068272640437760708065707203332351737300641015463907673170357626081668799056069803056183916275910334826169256731937331460648581203657761595954373098395117884057237809844626185552576201495116218311719614971270246961378611803356487926455305428779533367984819409727729042081638149534391535750980865173353205742850355657373464984562026557720099757558757047848287577187121482565345626536318644897752794123384447949764526211006719216653482906866480271480744456260859631745815264023699034171636341388005134528461673532680311497345011616505397301993769358453791187951413820088943928777261346591524807220865856547156801051282452627812686165666724544520647747848039985212230149589369214101834963621959372706916997344064285709497676252594421395690421958733723010873400391524810982992045417273650598576048909966258629548902845411185640310447428784533674900570481176696554395779921460551704198468213368430760989853934424743263339424489996338075443024325964417703644491091783006107573602686813301156433324497706810093219990327796834145468231863153684416675027204379485768610264716748269492520797409102714932202709244101466418556867763343741803448524093063509017614811881965208742001103096994189661975675264320316740226910086224057752920698161921999363300998512128764979782893909984129167013443805825877876060391179199236577481419520126767570922333672127609235331345662820187969258043046031606779366365233364347876564146952813577939029990153817831348516788178585057764475878156276402367499180914956419724673553378310506416884087237983647096470918000890973766814893776000544398959621793162663592820015623551748881486193053799238657367660242698698759333891387762905647528572253938523597310381658138574287015431090849450248094051181580130803908378779286370716179745686289928468202047187844058462281007638095657430076378561931654270080375179026235574180465879626016526961217595555865872623356357975915875846518250463968484218203811575776333852979877802343989724302141805747581807768205466138260612175285212227070210469910202055025446807481422545932145356998114406851147003808060254746013205816434877339440563623497534816898785347586453358096906870403014246231743182391685376509618804957255669552992377311173937134610465401270897560887612025175785261946113543933798972452674418736115296983664565504591522184766506873195217472234111133980108447280040995343274174481920416141805539459236732150880210085915473704976349212178867909076837054738383804757774889375082901682711016206249421049678369406913840314332123776201765132603554508069968536071128637300364457552448709896393462765319648502652550839860765289621038944787701845780275552540028955757798765199201823324430493508295296516203159278824063871626789862477945084659995360881943289115321443046054271743185906160874146168845794572474633500274606841847617588298585368598982490195754051237117130431222689292116788358446382202641129938860679640944756133045238168443890809456636679895973659043641932355968570469649039112621131048944832107517168576787653897482898665561755785234869422295817285663010049177066654323983355890176329314325986357767020425276216714972422531771879924784927205317555810482504219355604257671959874978445119693881089291253134089030306707610582099553541194214004819708563951110158285102163929994120134972488182877191289609352674607547880127534692773089520402048061304865878566878438747007715976746270871387108152501106337726451777952795024829520081097832698010956990596087495193605338812505315009535607368117392039372885825738467475597714187374791175520472412974614233551187808772558425376915938641236616674011627013815106418495653393173949148207701300144300097815673775538701290302757776949575977273764499107321945794621777845238860955900858184813746383707023455936950139083299635954512431492337830796113423721814758449292557513216092084115191549470476285083787708442564282246545510110055095034416812630892640773323693033173901495758340157241102777467206750745280340679554111557327701177163924322950268424760708227402761698439958161728412885594827814088950886886965172274093872117895027965036509275534667972427054102964684757678163046791382983530598090542542580259310194978890715959291519719241312946947743698551417775315314583628859012050512716338784705247740872720968961991603409822350585500499547880307245769757360551039924843180061237878081953189737017677449247660583660546759695226181720173824422317987284584273857806490480817168658511512929948002303978960081059164480440998952612788120407905297488562346378277216809584967550944220500011367533168202409739404065517501366677212484416790097376315298343214436872694852638133147150144483104562750695187026355952935086440620703755988689914418762440228521187884748598200054658020797677085702926274397475532142997047899984726497147855812544093185352189915520007803626710971870857888219599633106026586061991967620285244002663458546442217946707734539226795387310276714651427932986738435565002119150707234322076151954423634593961724451794571381839668085980210194726511336751527140521585793977793974948164063315901996857289118083346014559218251401998995654303937118653676093561869604239201757154680765404602372962836079121043603262030513969901862591851621146611014871056104395529761023203896436147046740331821336068764108533490864395888197570532734886149913727825254310128071661078145444039935456616468197551537712846047218685692253521853848776740920096924826160415214550898796249360238349508608523382238698593193903238971398148746602786428771074098588695758793207291698184277367470527044321878850942183029220211748490468554574593760817333641670355554857480534366700436461420833513227643464887108056617052925655133048655483231268522951030161312547354275309873333309526506774964393973077556840833322239322052869528819194202705204071503922019499099332936528366131937636207444205806672005028955610869196249487575372330566520538177752431866868236864832017212877861381223628192827274386705627232963263908009390886585017189938293274504895391617207294172805620290864097191560025554249788378640108114598102455829040580658202664557324150325568873484189889079796506957906581126421168072620326687328338531026031736560810458340283288507718115672032968178624623990484860844109490312193456816149307722314516466148628713930600218340363968242278753433644786790232902707657480939264667977360118204033907819326624273142824410293611410484289453437913428307731212654624234856742242511927613508384367049375492571629331068151977148926661945300190819299740902974066533827658622483037162202288353954802717493279047840880774080995215419546827186086775312779191270511333087381244496576285225312634706694313515576859558360918719676821276672965997648968873934683045575678112998221066591863798319955101489262102025432171889567129312290337750385159745410174869228272334993107126906453542870558055409956356006668942967223928445514207469360579606738324044193064694889403558300057259279873863749551334666703288998849849516916766383610604859877070932412971135814619507913437513200432722783310738290652611859116887557360936123067131215115762499547362187477059164135928584084418752497731068581475199693195043341745537859993776743755877320728632804851501555185380267825699992625830422234332103355587168178153245628377176757716877264236336311338672984862651472139152565928448076625686852941017326797730921726462238119988989906249762850856567432524268148748454486396236194602972536090761680458992541537410418973034036938810965667393391134722202604380264542361700246596863277944662370298233004344147168730071994202172725376709196432876297301964117605922790988583980856690024264148608339550412278371584314787780566286863512256224317498072699644028315877422551122920499695872930569951770315827215390795110717977448137537302652439051720223512743248594897531969761039604388724280885336086333957445668916601384154306459710770706737582613814027713873529494903696011311926188777822617267379115036808891249963353946700388193297647552820660502443851180030523573231013795194520795123265321583249186965769316077916479949513702185900394154575580160254098603571899037768882006222618754530915088267846734168168164219235575887251778875020612624121313399926950958186518366028372364341263681302642426142247845323589791326268656255884994207449802932180622129726938752969566937930838337424280502436974536952707524589251861013368966104810014037455163384307536472391975654646281870282476762713939673584723452096758128176034240571120354584562506532834901748404609933072036904535545439965655750198457576692966970710031103790306553116314074309529935902102883161267280021720479971825851177432128373132430085081888124704655830064150808236932628584161261696027623184876350692728387441296136333348704505849271709890751184608252486243691781294268788357395166496061349115458930584132243051327510618709552043832267125067822581054513821331007515249577258177663189064627699493023277400853969455418984756237863818469692960080592034058758024678377377846043061895248151107676992449408562684696783788745876397378687245272655442522045311669751345988666768912189609131560336464648730249582729594810033820836418705847284020841098677128223546040667372668657994455605816508913621719640680961283297018980192610986832909445856682412127783677555333698105306880135557391258164762237230050709355671847277337051238031883645584768067845262275071404637044615497786300751551151073928307312564448021227986762903930205635344210865891104261295576499819360824955854905923939335123075121656179005641898611469257556171323391113038591781543336890564409537648110729721614347884623047806101921004119102343906643949441732185136273989818031198620157300854997696565339293511720148315158907836165382883413230802282703417053885736995794013870313365172267551241651907616433339943893983971865363709359675307279257151617044114315180488049941365656058105212574728912741830884729395508915532649018525808881517440382363117059922277405227726468060135650362112647536265737296271334226481491127657935775124293065948501245426483499954418964348375824444550687523641332871588723490460413715115667043926765952846223160899550279114780762057054203120803420609532439057939542399128873597263872023858790300756434955170594679698291516483539890971706609637573214092842182856658001045060245413022586469958398034654755347470834144779826417529156267419882215465737306861046395196481536412930367279665308837337254580274885037784578126872772929543502449050939976382066973807831517342154336532498900649386618538250823268815359855721554223299402367559573429226260305874062565092307397584009925424633249470579592376120297969001371152295507992511288876242595985832671277764298066833253790794072765489995245913080144196976557931860682065636279680027463163267275443550468298210191992334587264318549562668549058090129760211624434969962129375675624268846102911735989905431630691881170339641526656790062331341358236976256218867439578701383715341806284231863658991233340467830519827819179380186791540278166701041663790341709840177507276266565675970615370992634330562871287622354668334999078087393782958983853136074270820675326781537598313156791793403457797288184725246482673242352648820032226621685606859828757616395232151908423084438734184259551881123726299209721297231447351956351476787744099098481944834597131435170180475184799651098675442530237666396957430937048002371897741217891816902536890078889361226263381393200418521326402134384143939235377358811807870121764635759894904138949630005695342490093522121080278476793995898922499639270744626847068469721454672084149207909402452696893892204328958098286993957281606276479760388344011479391983111137485014943469021530053322077648483097569810516196913626059056547752432374491910780428551098100712426515120344712558033468571703159139039327954983876075712668729349365416048364749682019442320764330141428306393355337294045836935179630234389922087735436644335458165504187053890284798986187532466293820265957678738080721588825386606992811596796555639798950874448086059780569025062053823872358366652767463151815150715519600441707087120947533080322510423978324385444361074969219008776014002191280597546692707418752109998736446483601774392818696496775742204760146253481305930012736027869600671432120974079830209342630637533541531965030665433491230071387948993147760545753396591301942102545746975133363029429965012215604456819991830734417125828643312071671198708938932510516689813524215481549470219004549166261351321657259161512899668177310787171494650406301492647025346388979125254385176280780988397410742278180231435562969345573885306717419311354600501072798068628407596359860750746558317752970730708540462222393215164046881186651770189345895963021126254416762631740747946818169885742441031035519787419347977361874946084213253713504753897000128887033390107293601905739704364980584398078584450822130592026584938637846120652875965885256584140181722931531368516188825407670319364669337729416955076169330518879064031572605480055661134385107264942874154504543743677594101950906313284200463747434484332152289274168282931945343970838293070298682160596046685854073565046632621211627571136112449722779690252101005175198308857574954845419877330227495562470828663670266841022097547676944687621989985927290713611060025903973937155409566456731931026920160908806346824599360647446079861022794125902064270250109895331006360356372686732817339432037216770970594591376445516402396702035475288808838595889352686142719264820261032570993311418835076748500008808665351148586061405595252761992730744928144638099404139338081751183290480808253101139733180185563956350782387268368760587964872751589313303603819466920911107847585055680885948815997776568025675448242405897841600889296995921658709714900314324596573287466543128529291011688843427593510164306304945534048337628484252053613089754582172487333538600708722577756947681025948447363465001598531592900418406293374492093259538171129887665462183390902896363875524667456263596572614656442856910836413795800956578667779277772715488120302885217171552689608037276929345247003757494950096178928566135822725458241429595309097646029371229687915432551219740730125228157119878399043611945428415991524612781161567185919300338722828519079487860351496195328914108902645459663971001384910096859114392524496431254495796347192122447221415825606675601994480812766110568439055428139223668925918890709365665561131201160049793862957054150588273837175187284625374703478901013549764493441456320266729503899403133772394155089857777935016212615528838926832971777160485217850121597468971681108924775471914237887368922311910955305670615551987667179988894701294828557393586308091914495806036270304033768440416006838680905200606864292445755977388441308142206076464298649008907001583547689399742924616428645748599021414723578949791560603144866157299030954164851081284379360118199496633431136526965866462326854572184129462580696767689465122156704489074114655377185343277694238873265931483372742152469884862249686942753530205780650380126758605690898420532715455750510828817317610389549756510693353116093206774177025791859811633582710492320255815858211562546565889190496738771513293790119274348991951504239413576468356790030623959758382248429282063815496514862400291498432472936335610505471494851387537383775125569694332810616612501350762220838238927782633957359526783638779168919059704882149835449636340138527291842517258729090197958881281317407250133870475372306504710978577337382843909140169851879362168345948168032430916709408834020557100610746842857578622829914795004812652600834782398928260749676235449842945636861685444425308715577707020404033807802588505701904420325274228764635298851203276759576752557171146051915195922769469765269210149411585146837829976033044771789031343508911543809963365698378166910293493089353199937311969432469512017833200479882171919395007344837902550895895516915480060628473438661199895378222201869906050222386026765160136921270382663999095690533240053722124874587582944570950256356153854491318939269824325598472195750967616780144788619972095220207267079928009770705222867017005435152884308954372950458130628509423176329832024005465292339877919424409564059091977550638123184696233921704349751150499237216093191763906578973887070357257996501518537825304487870364607474748808523966949603524958875051375191027285527430767215279723545238286532122382523973794554574197563941063723715044524019553384767766323016887475202947028950146172089869673119970161255475084818035706214734604162185036902971715566809755393198303308617996555524283832436221243719965817940594762310086073763225345047525100687901814361961667052742812053939178297433095103038056013609073197929134823603208476444109466551757858702874833721901284484026273956514771370441142666920224652276480536693212082730796783952601694903632565477445776211435509960992025994718677348792271045832300147301604419097222305786378622753431512061716182802606136157114467329424187128098103543134567835985691310338081089746725361072925371118061997628397736720691039133943740240451017504555478385111309782389880211517411147038046202716044529362942609299784570409011641206756227491186987184401234793997320912642735744296526562063586839570123252258380445667968757713003907443155716017553714356082079423548240198756260532882040679326615437989880409970511977772335306360825668643860340338321441594661010253370872372174261258979485856109287575810582739600911800573223980635960761854125530950579094919828047495517682596964850223995170270804488124058576983356239178417203203894476911172212202562796238537828412447631069540486100525525883537622041274640125091026353043836041077369048900337931631781891686611798061120161424773128577545367405335754263273307210146304727953212184607129187575827181914925798794993684171607291209567152627578323594924846073628697001841085699677044530587903963221335497684265992092882841968657248512422949730476896482092920368177382560607877208091300009493243240887416661852089561790207160212655525662950644685323763751152849843911140587766299531955873542521873941875862015790615480989872236895383591442537564864608545346362113053478235538492776007312223108814091816778998564671316465811776500386868794461959391372759052655728722315095868514974110268047708331122572306458774030104430326407888728491716923667777885422231959307993294529712749165469487081134166983882335821729538541628755383602026460945447398678699469577886108163351857594245957400064958378248744812014972777071996797946143037021155489874551002198641023139753954092761661596006166520578196579736803110938983571358962723202940109735189454539545059303332844336912441674233427573703926490516435604957124191560215113889115239046993292308887792783008316427524529981062574634504272537242232106935840271588503114649533263782079670921248169173361104178594791526597582249326395100107344300697896556007406408766218993912194419667124922044355846512071037214321069920292161749754802570179829539437364882179907684521857182398500342323133050256181731176908547294755463979458165549391140614266745798999419702581448519707444586189190825402421744570377164276644230362894709197953769090115701334541439038133388325089090243894466458636687549514882226114075501853905036144034260245330724831867928705608783909745856539606747542590482742018753687518935516036199614532333424314794418972424565428827971148302264981779285945367029234520006317968184075956077830343364571101491069104622614149113462330154777118936159626245982516601053317838311053159851763907309103474858795948765295159891861176224368940487880455915879899855698671911196570151769952384583904647663363518921052656940785404277955757436636875956300294108559997664936271504162614663301234833984902971744815650822750363624572037610640409120198193687438349210020528742834977643913815717273580205674406185927580933703855410438149300820776066961650227510684826158317704081360220031260601070163545858029080498615708306292531862179242802890177802036827051390566293918031731797734636236420518385171412044280385903468017790099811123685803621537365246876412187768255198093026709203309914209005731148106125997987263761582275883893924873195722408006384115046834290563376207798502168672189293364830149217022182565033038223510752847070147100011235455491097783395102015550307582689775659239984620431081230350974751430476800177479641062309120676504927509636090795699842996233224050989484453011297830924341550628430862949970202391968104131190582657850819197858063901450073923052975331383715663538362981795828238091659079439105485006954508270230891425324999806064546596277292053625820171680107844771856887695487941222772755338214952897977415529552729187232457084571281097792497787442277214336817116861954336117593414367771405132804668017444268525541319215072066846305599880516379619502135709215653889295376470103237739487834129337940223467116013228062634430650468539154147879384339039645533069014649651301238095517272721487946470292530347408167969306298431946208500731158306847606211238791305917383875390697612943121182762677610165375409753364422110655413761007198401395011036131726736046768160525032206783080610126149253902232710320875410367775396569218070662615315279668827487071430387332357680298934878204828256344634709006610862898954126104506511085654327977737694326721278734420659880702719312244511652529988476323026172173343934289459854301695377190958445880245550851734498951192486012220453240381817377666133244885995207626272923013583550765491939216656036320149597057262932763304958222895951209738156896260582249115717102966329887287722139169969003109272100996284350908766728261589484567734992898763564165927123451924067844098042457189823945240084318466146499556433510339754213793326896992497436850561373663854686924761037650890954818174767429161666202384137898855485094169560028569159855152000669990476988009321856444142759829966577053970208485066264233753721497379476367957113498064492312116899911031724002823412259811792438181765433927352613492648332023375881441604223212420490794164027011744170937060746244886868035363256295575847660563295296001578000791656355974011860189703560583770483986472233101941906490924310089396905471786364244830084505672771366670405808875681064090469225958612631163528448027517735562918647895379109590372781918664712410356866976030365486140057791267164412360974358441766145687936619924703199540836957761748340658735617047890122720688507850717999670319710595138995551996425711182135755451064273921192053043255742593930198980681557508313375543157109101237098620254704559207600164611840488557004336993308707704789751144814876958710445089755407875863004556554685260597452366049991130622804887711170221782340254542742083604031362639724437739113583129493832158933260505391615132859450979085744942403680610754383588462004924840870059641293315346690377505629261124789107582835340112766835028970655391380109036839469546032834587836086888771389208485718573071115135679247313328167864864241842642176949816272251109287519116257975863740657810671987571639541103518497138732345512472387193223455890584079063871549125201811722500568900106657635009970612554794696822094530708856812162471246473394640227453679153046740913438718066166978453986625300950955577528478781509929726588332468093888188275327230250202228546981969825669508331175776843773467112269087853977551476026577592927793437223257537945998506340477750785005153498774538319642789431284572952930329165765326997955017138080958843312364476039720168898986466474888050612367829339273560823545534066218704625063320593777181925381015279075855082656959822449726604553900899663414130272772628720778609539604847626282037574390391267704498333119621580136451760279989831393744935347995169280753737600174712971007943766793752076985733779965821907754052941761190855775556015348463820988227489384015220313364219470388552937012757937949440849833534884308091590858940363964573351928252217492917243977667003169476192826636523184599924578525304832166984189852081998156178851156556148572259525175991999554747895508311826018988859919723514403602014937041190063410842944946562527056477536154033407858000543391017406187429895881995508478336454602198494187972711538940096379718860196926269404993440644649885449972974173748422556356741857844626709312633531274373624195266433752675209843871615485901257927329632133090444662519771204006781938945182860375368095161093530212417519487378551079200571269916368641199309006241475166366205914870470699390407820773745575569855045187334384425101749747144710660485879261980128911807817671801109517594705356051538115687766884901513443873790171204327830718376274013020997036358289551212415046744335754654793198232236123772091124708752383356778955104208287845467753715739273713789485536113439785927343003843677663726164909322969262844556848557228841681249323605867132058914931903361101462552382205951918027051546560242485139012269314734495641381992502906004975523470503840208914631371218166662255749511936145139535760618251042361259483215022911316914079296016888326477975693516727013978993973068888528177043557203838134235709648222538281109712161805423983664967296404278374229790782342835611405744230116902678480659528691072161606069948010092634073298040336393495271963646541542301241970314433202043678306087535429998124430122026605170373049386280977153989378102924879618357279798300121944911319494882192875077616756048992629364367017106036741233144596433685589212868647283474084818547856900871839577629075285033139793098168573719223906507489658886334089288056474520180525912698690212379896480336101910836656159726249477772134403738951234894809199186973323284308833793874051818937236963064857964528933289020678516108549695784920087218834095492270652487268526590123005451438835482453355232909523696780666933341887031457682562569720814535321707008724770871629554455458827810205856008221341487168283986375417581977247410288535359761424007454504990652122715790497351583349257004700739786743390079888554666518846062114380770031992439270787886494116922547713095595558631313300226618688773646178519633952227390218113406394795811465836517236800182065413811152995892994501234740299691457644798808605605198269392309021578891434018523079892871425696993673134030417644901616816898007799127449692404888243593599364129367842483980175890470819934480545753515058300660278866754452248961086955861874567405952100746290307616201665347439869339984098958757079826362616030751035973029266260069987964371065870103291309548581818312007328870749600908974934983012115329724224229300067341243318157239956224015285083440041514977039348569176010867339800589791930126579731216605245644181253592069445826077844254176016848731443274533303282863774866413604932546272849637644731198198581206205332598822918218970544310359155415000266726076491191938009236603277097210497348307275920684957430265778248862398948753544624394411206611774154470523494575097899318052480652155210684768608470906370417603893025459042289526780432422020445288532642448699701832432076340305914974351466692846289078404848906374086752178136386372201289271286876772769396268661199336286454331447718128324936800201712248565380926321604119957531857429078765970348861719374545305803175993474812091504983181152692875868793528139432777514009284562991688326940077067180100072235367836933618893269168185424907431814316386817723113512205932444091290816314348645037214706790016783415387103736731136567284891282186088073170786529086487345979682990754690103347781706870472991541578565143090027583634777147320601637530822749232595730498305653723196191369969762660881135386437686800202322809517306722209369002697695865888451552736784423614804916535203594316961005781572438146034665659876937356965471534202721253954851380117107123413876006084569106042083790151354401876414611859438114927199366251910462438726682613833932609440842419032633363000247047222368528593160583535724470703504667401586450915315100550721300551430874857623548867030717839621431684336501246321064265489503115508896653995305814762906836607297846366381305508572707579685425936609990142594015781289789687657449570583596774982571917469717038949493378738847895129874971130271380169359638275828135184343027917554467328058210955316242591543334964436748344516648464462242059599958793411207680742654965055095777441983056766435374346491372067066349798120136517389484192235661094278159258007991387261229873430936493024259675618129497064742762041537672878041218415236266178638042275476564808147057349003725781674689305468175422050772480741509869926461071633956778322011364676915442540160300714343984748405532318455682529372684632395136383552907020749769639432026852615654875330744733983376764967898989671804905855083206918254651084556531888552282329013299873107410387889944859504772971883916475712674631641029972166784708696905399520315762040845481093352958550071526197027144240160100392508694788484056739474363305125483977781738373419825560493995905359472726182159824165385130576773736341316628130308020912590096972805867727706842478431204899984198656882454915798300208713329211557172254906931673686795935831701577498059780535955198462501649941465748764578584916874584572277251272155742564480839675711420290696714594612998591929861854598250411617232465058344111921847731378228816614712192668747921415968981084291523138512998339378363684486657767044300574457957362034559004225423724166337217627032420226310066845383780981146112781533129226716200080360117450955456243187679127926592996746721506733112441713344727974646124543499463189769860124725946119117109473744631038806966629708397211033084998221593242624356813757435175633874779431429843377695712892703908395977038068051503235769661012866527208974940451689079681691113735136787389697672952614647460059770341317553124283101137670582747397184265758858973190890929324492589996002029745240794094642557677651245155926333182645315115144491180286216215189510777829552672909043001417917184870583439952973048314576430390140584808922682829000219669626622584236327522149888608489068934096109301510568889035306447345037334851371040266220130771021065070786875229161865625210614915848701663946226413254114832759649437330444144213971426316211189331285062062775467134444180017315126131203379228262479397279578590613480011781934743749068620259555778618362563091521532431155595826055853459756452953404404797060922184552928322396510072753937720952770270747074892471244422026278471020292585703885363831341003087908198501306137404410126738080283827815142736882069369171801795408129869750629982965725520653939765973831930151834685069824122373262737526832907424446925738075037356976911845303612158248080851671161588747778170414054774982629877908009607234379461438492320815284015276561278693195213959253697004467569487530158225096000153208913115755426277250370955693334063565047188192827719121405913080897647637011248607371802404280025402943878253384681976061273712654734771980727733755623045215081804355198537300170404782913930589608498579417994347919024710351281273131416347550343958386188382164396557859240360137183354103619072343532361257325062985688183158164322574819471483999021020669106622456512399812936072180024380308634256206366340593035707293739347730148618755144512573955134822120367803864453327240743391082625051834748895689445688105154807750420790704354898373921324454602739886164825622547428966393874476138632729495812593127116880200393883957456648916542134811836586012497827128034081055152175156632695273238415679237124026736449193549845888315295135102123292006970686087507765441830991561336668207981225779999367936037958900253650238748952001270960934353488393513757862720983298200864057439141596773424782142474767681343593839662041387766174185537878333293143386971962198685006033945136099367889111472057961919068958024099091578484937325325944065967624323157315792887640390698795073961327406698121618430943133957158050334811271701773561230636437634417967570058403205388666187891819277232613849314512961843436663236143733587092944115006849163605214535407232996963963698907648996170171360563890392190011779029006947836203399043837484098107033044688494392290068461547033054766786177898438216093988521903565533527158792106478669487227555542628408501099044915180092731658203741989380833501405783027884241922972360052197649312840588477144641246331577757901609718464496355642684541610298402685072682276233663866658903341178738740353566751016733771235469750803606418831510481384775921545016832754575532647357038848832694090429178264829062057493128957902853119729012080441133950019052391012418358315995566350685830951417350507455959262841798730375650305144144994324725742237374169137485665718771903300470523590650851303004242145170146497131423745847824675372763148245485239360005661029977786235965379197581188569726412610527984461369233501559166322230688422394619962906720048243693578310052167248660534410385047861666825969223119040346337000349546702518787204731313308825966135343083548166912662453327600982679456730414356089031947834269934567070869191873031110471127417684678785957568499043153748750102837291357552372152244442602870728270380182484446949881308135356603145617051742342939717022913055864005517921270597838075896431275284435286043516712870099902609462044938230880678162521997826036922102231160402974850255843731969632473234451931343691174542268933097994964241562070803534060985532223926357966954316661122819170010175900658393583452834072648159462795293159476386659883586768945873919692694231117805706730127876052566142372403731732011727716561253856006326709090296917710195974225513351585546003219279028507509008457616328626070512509307147404999576691897992946653520401599698211629986855347566537229314853419709523186505994668794375358974967174951325978755189907376246773812265341068684538722938928772799733460829783891338117349745594198114454158375303009839621346177775604779568553161750154084829839719357155993489816439802773097688912270365399165664545538936735401409545019843644001529879987663331995858682272854729581956330898980640941584374719196450011584625030599131512914275824376513700971178589569175891519559171810680087541203121740621543895922482028362652021851973594072113644304823431860859107377791898669982717523892832923889639601079637426558249127055267254307482169119528354994290908305278516343531164195846408999013446841313006476639147608898605635749414520884414009583911152923600127966158131241856692535897438109245731206897547233536040567199349120428431190531158937376193290263608716197580142982340780511247928113594642590505034591335617079194552115826874774308572712958906891395380974793823079258094961687046877421045346189697904809961940876826841880924077242746557104085432085177331350449486049740845983913159594421078660909152829223753226569735171907766474651091340086556739693298503012401581958947676736716600781206311941198710650312784310284416896665081985989303362709217390922692638337552075250878343798482333068965192957484909567430309672314246830917717094329071206763159442166070774043332111317172598961766086448173484580218871330630381700738293050030621596621467812628919411471485862216192637110325367853710871140413078670583666360829736426919948862456741851157059830972320649870044070032636310793700502551837769609020196947080683384047220313738402720955078711025286353684124920766617682692305262821460106496028285364167743703219540230653391214966718687919768441785103111732798034299991314820408255510306768028396778776237837329337824534809208237084328761660919075887836537050023674339132876339363367981484779836239781636983167051044149075452456183131251352416215542322008344438390020969398103622563611510465362157296701258400496124871084619355383495474651547993619186964957230294102186933151864316924705185261963382523080862100502162602618896899866826887842793246804182906864207469035914893463206148049104563309108895110204585285999263327795163273132700522602469694251943818506763754979475724127277249746734185620666127375334983430442947857085666391939498527804070520148227773691920954672163306847699867706274031883579217117308118671036937909579324037688353768493685828412247724829576878478367331630199402928372980405613304132062657726654172863362383146489248774196696639297858738013286027958020722169129987578931666344698966443604984592294145107501869051891703146300293330010626252336307975284871001017285871524749307610728830204009738803634011618726090389450953525487813911681137480740492556818694946735398673274937644500479731562612705220808121662633226617438912318880174568198135274261625924760046349891664655544145904090518947634680851459771779974500407301418364493361821227557785650941370221569855926439471232099910776961031077085041053649140228629398413753472077584619418761099080687405105321772179331519437202811386316433984310405847235362022329349635646947842260582408465744487337469873007339144333062235798256820984641616171503272614992339723128124011795718583139390402948901852698911713981282710965566196728643873199121153048084451492916440707844927519008507730387451834555983085873564495983576801912251324052477015439348784606209191511353682600408177320472167991840892465650527679257001557814038851147229951337921812816659045909450869772705369005139073085823801272059820422976465218889994527402624722505581267281868615954654998315248203481356208871401151589565852892960271565168243915243560418204715936145747652982672120040684954864048375837466029996330537939358902586511312196109240887011913802051803430584239775182328344378287563235951021978915186001026585635450280646139600009811739603147468428298137713966899426837347437080108376096650981232655239382735152867801852319028006130465453976059118984591341133901472746943419584182816002686741337907031729011131782592693197712291593095749167483491802685273197369704030350429417993260291798665117075960277480425517592714568394370617548695320485576523120291454092378834225696876687369000599356677600280523741807340617109650255091144252284819959564727431175613795624390757811432364491963479442398183019561031609268862006815695939991711050456812101388452858903606338033218114523865377446828902242020545493981074728103998491759984942477544380307135254664402877748895580504430623588312207485673497732506497944130073375076073833302541748222696672645902686486870348424297604823644602136512643332389970419884257793014801779937618658090498180748330554549257510913965317450035547491950091214508258260652953799824856270148735406754908353828489690077492383907309368987489172994537340216943787648107455225063423884718316981837934307099678322151476380914598829715970006358209296735980959452725201312049411479222604137134584835810540146809773696521065368564630549778078364121561761151029001331743289413196275004899710052588753197838559023836560055034163718348319548791824342761262104817203122825287797419047709190415873522408773199719328047051872065911626322609703865607345747719821215743995478122595320302881478714763020981813534960310563582858234544372306623367211820684021407564421445761155442455826713226985624161679443458333744459326922232119598023439547668025237133902601460759728196044143017296003731100463023057237221334852780921532465858653203085875914536923308068278276382979614729315668120843927461062606775791203463228717471967702034531903625618418889465771584759190331275088775703273153145663938985106976989270827156980966132012640355371728038236955054445558534455467086447587870521804327976313885359734478285733703230221154199468419057460953305129512086126056641179131069799783844845299401548615007478023701331529623961169244036903668284462033736846121086967088112031012132996579012372977436998465596310485130815492413538726107995922405511973021611145942469959839883411368884985811355810026355084395621607069655192095778168500784823331328923631803645268053007085789545188494401005343176833955224857133424544905782227055664404938586632888362716299019734897930733495587580875709522553738097355044971553890477212900105130700363269679786069775489420843607504127518811642137704057067743144579201811634331795475214691710966611895035776033568874783870117490662650959817726210720012825719954467550092239963626952907473485781383806821350157109776982578132542010231569012855547485053848528245479913367709778047580965264145015629546467772182507865783920090520165410587977368899241295392710643898533716761374905398141427755669693127430221006631426817832076248120107039428303447970690921026195985466962824341451848223262349522125360396766789515178327427430665089241524389152568967107105127734230167585227574597885327719470087352019576942653182014989586707293077717929504678018022900545412681121360685787662561942320342898318994243766623100823076846817104377686047756054767162419922563839527395571083656559118204588306297000731097178228314869925533250326120961587912957931778733146420903878107129742986623552934862633969677569378154928019037951435231312747428096700242144494082816718724670010295160945903981783144732018545604083950724291695659865758765163181658928660493838115727587205516605407040540337195635633646578173753564386213069222467095208126803405959526519715035816406865401715738821530430711816379220239532112382796826483238544340228923353582281991347369441483541532966587569330626841445060851696182768049480962872232576735190416615685013078311213550277409627623399794053292153186069037827015782198509538496587753993041645013213717428164419296378322193017472639288333652551166304571322812905118088015599603088044969498931789326258699452390344235420949029748675588667331748973030891788651057472751607377902551071632940198566044477257452865810081607054985651495953365469163475459255868404843159500816235242268414112731294355277513359129418261225663589322287377331376155881887696094929740706127548121385970202911731837559108775897144513394405339230929992295029745261035823210056238318575001419632419202763865964685790479869600196196387493613547920814025821807993437204360433816126704485187619848770290996986912003329718162331636082174321446969444219832148270286746567572442162706458622287534624626100534311401600265594689439185783634303269586824422506306540062573258641991649077511646808497020481551776797484649026351216806741398870760051803498735606338354512694951731876259880601411326830338935700317070941135356927087367278363948490792482681579710505212159133066644716430056771424219987206526729679203301775690352379021223302724060631560868583439294264413006380505704638939128637547780501342961226013455969176582423104041059190860818312226623180232518182646498473054011393043750102146358425924101544731369781183869440134521901375657564454335188323044061308102493210983902674068431358975834375482890440651159760464886727221839807423286342858450928850986615454920216959179133142791322014943198054572232757903635430635456515749392934392160016453147501137908498637289368179122657436545940217040063227842072808418523125258191594239002610656550917354581333753078693087006080874498588623204439749642858694418760854123678793761376372687675750094362551032913997170300050391538784113407539444912120956105924718918073547355883205373274639144783235909862871107625426653227730439875857167345269258162635403175278262790542302869142637890921452585605839139573511902685863359970657067512595109507408586289051829229876112299496717951506632794650787676751256254373655997160917292635169905448528920964240235863972702757669668490434749310826505560794260476777632011844802719659980233932875578346466400939707386168531025475636917403185389255265844626900797717171274959241493444649628504531248865837052151110007717080148908028129056872175626587967197997069264261468891724828642068812974563088067151844716895634413610764001251380476073593928227354287837358791061055173929877516071585386513256087102796631558973523419467066611843377855134336138920456935387490544376412325745159195409957118895686280702464024607050428699472880299351927533375986215965787809922217800492636925515266140564759214023546287259837302713421678713573798886329678660092882093228768990419111886351507932202474410652738696023991135223451786509339914956180496676040457119744501374322784072239480136320871057639528704412578365469480466828748202031666723695435039248418394500855909303346790255487615047897593886357496640983113267855747237291713207526657954831267353073237386665756267525327925619238611174824863332923683553825179989457408682728536631067431084862712810322590738392927775833173739371370564779627909423918927413362430215488448670348968041114974473869795292216938752121301344321393068569354227319520119762395944618764500635402614642120933905482984505767236751280038834546646379050732448141600201794562265076450522955005454183599499804970761350350770044084239914639411497746607851235376661434912824760473431955977934404017524898887962765728761532439042170296166664087307971965043848464168686805486563840267447263279533513996433785239421947965949844775691594929741795125455657233353824816422524099943994205945053147941985180513823600871194329798618795842761193224708240813520090055608016006835551694421071923194624301419983410923268623837454682615098736394734543530274838473780544558080081158333012487331503989147286208809084328690950249244679490915837241595106630334033122705847244084880656860753475082665728043417788241662940506476852644479634618956727896165184788839224661702895548880351171176227630530129151240688434513091041053137852167007269435019164439299220006701633761907135967515835814034656296364806869506714266993176003273276766248916344028803985973096227288181071977872824635329166944278755684286346711055142714928857182975430254918628132396923114092564261202412297146051258192084032874295969164870460211670029559940369465931892589818349922280882865080461686882209238311464356679344362090636381459238940006524164172893011045916857043473865966115866451115624208472319135224970671539718683547277443914094615258556359581843552207458427855511957983616900522728986061752886795672427275575608372430241876997580355713233370164340771571538361280632006788985914532177014046564257183516177380530917063457017128645008600317163187688754313740771833715223638220956297781103347054546270302766933585818529991285074618785704323186205980432654318752453863018572133744204494221768131858799527875268087211428376196953332360309354940458984324117918073149520923999526051180163241596049503112780041703687099500593843978034966608647067078526896217393244389920992666259677179294783056281308879028011748854681330956228056441417551344439306347033441423104943145453170175285397717897728919473704858492755736267103105207529824933923444704692216598105669224721998316546682938724911783384581499215190473924155958580873201679243756167180333787699484282406428957591554700065328339550623636206899790903160841721607940329761765050124674305126759712947652666389451909639458260045904265279968833889134927438221642288834984191323523903158308362328682404518780547577894713128957485034040366208772695502292924961090404311471110103135864659362379936850223077828263694337261109031970182902286508736047951543804271807245078029156493797376212282550374032428787505963652355997752953011050019313539418059356198289781292402775278692145963478204751896783926092629421672340768413805241214569427480322035740290726901876166657232254954499561877894074523177890629861634189080913294122440667300022216407068150317730562769556573701328778195712658259399162056058990271834037020875321918399120877623873858704183645001382068213099191389460269323578156645565625550755772324023195079996426622962177491845418908256729619806996431347433014893858736712560504629488594146449246830583341735072606844685009475911893460518658751322310161059082059497349181501171795996929522731993055354906105637299439791932981112440420056206802218000781610224871543139866575330599794004525032105005351540524015108862382339205770915010005432990845673280531840936342348789934742368006537008406199429093850599378478736123435858312311332947235423116240011188156955632085225474276382349444647913992280872586114521026376702985038748909135540263554907583003527848191884391588180506143549949730196133817203882583642864661583606886509554731778264418337129122550173065950169995285264545388792628650330727579847627660835476861249934813610802062032861808056160441218999266864014348274006186101712144985404697123931751653799134811499366390818873177469438552890896114896906098596951517554932867766710861705773074169579471526377642255499841514492809519395349837915557473881016134458762970552232752131149926141066459734757452309957530962092025412733790741830815595878455748316601895625202915827035831878716254033876728606446199386763972764555399995058690283796990050664131743228366944734803547490183047613181078573838771006393072311760802888174013118437921015461530296035232819535585010573388726227151888430978998728168812688823038633455030298204515061686388566380993569034782452538617358721298262117373251304394119933904528639278748197175691611863845502935599888340173205546303379438615289107859206002371803439264918509168015857154628420635324204880737491725766129916259987320260952983449356718500344295190680706242673527559830405813216309497334967120750205099199428625608240034077000332071418387917577738982127889069296155136241891915943405672961010533331256476204796414828435993660331543656055460530020349106168026029792411426943910259393471987743115864528463782237842457347193500723107586194900487012661257692068181652390617047597286517238069929405015784675126155895677843412270574415100143004898627925408694624544887812338958443979257827500153011675010166761433341218470408533011620502363115576585989892943642139000364035263489309558962594492473502582945716344938755190800236975146298694114378186652524050336999343523919137918937582826494384327027422875154298813672061195508791935531767649553517292747148421787839873391055975106822643874538189437477227517174480833200616643530855801923689977347204906793387457403806664146730579655832099285677966279883291610277466542448036074705479357380119826297627619193198535474607617675888816158020956973750567579937584663438509687570463970583472671280115449405802701307529563712427401732149882198116729685652910711125746746578004713210477241025344311324605037462269587485944177339721285563516731253247590193081304449434828908483623163739678060170206486599182030016987507116697530685492548428634260372653052090955725462397362043217641764827212220129661217176852685782517741524198658400665524268446805354356653304505057979040585895958229043502151651339379198062001775073357412442064422968327863738882589330924563368198900765115664071315897807678081447071579578478797527576735560586087779160702576549759688835232366757629038600975310797578357609088310897177466895004632594731258234068419771229892995668815955893989790866570033976490929904359807239341150717426448555262670180866670419369103158476377927632186771708747164369527362967721311629563133812357273800467606335451459465541060062483281015719792006897533376967556880787744661952474618837747315676292019032668132344349890946881186745426580665013758595054611678047440883634607945757639049383471275405347197393068495483867653894139611877245296727161178850967268926804791568203294902970244415792640947952805546368692126740326680817622315204456866165874038316619504985385617233050676265520809559867676437673232872359771630943124195408097254959082439430632094718002851978149229932251937210173723584290631095124739712216871723924798955401162270103550156846829299121053501262516518994632290181534215069293149490347485931207654574231488932680839801193726538143822238119945052948197986776834746112534415274136252854356165663796543834797855198295246844337400754154036580286646209887119056363372233642165086886072278987291401679245746889551017367376148138046533550755127795358565889894614904910727536280742544147938708021374089120495077092606506969449676964808330539989645420757596085099319405275892211616473885819375334059421282352380842963267471283720624956820275247907688831142952327913253098462743472289657608705768939751771828035068683454453985259654335942361440750791654273715248736694614962834727591448604965972246365197063097166741488940339859291676527618338226969480853135500979051800197928448838234071213190291397009213142546141899224443910134032035773802079726968266140287945895000745423095256449517508882347323741075332184627878353583851389086594526341617028136680493905759873843394398395637268210795886296078264243318123412237014632044797733810527326151167936241211934462000774846074990064951603866448207671129733839853162552395106317922461251097204384851718012245145897508167790740994495107207916072676791582513211705504176041345662953447078625369204309960821254747857456962662827387849922023328195637974085821137584046509395534232771759280634576702288901941574609800654856591514453427736111710883551076963405820036151514811293870996325138672940495788043637228464346027641308319596255802004132709497603966326509531745928779254915119354510246818224999722129878761960538960370747134676626880826669458134154265607345864824131932870841908643430969223795644937470834984866062027426359641412180441987136752071038702101113465800111354408391818208261720148842107452644691989282623819076667316987699391943993284300085521889958568170705204591918374919171866580312676408015221080694972746486606945337639070568993654695186117707624825664571721958548373403034506366685261711994950820470450625820352959473551516838603576727236496144059683875615253819258699931407657513478364336535293871478797945166219997546339306373091625846380575430834857312799109801654193425196893680099232535405609936827715855831071062762751570533868019093028891162518996671041257903763352818999088172600328966437790866322036843514635041172795774916661996320509189481953414442723293312738297763256039608306773115405694174736034348234711996259772164592548761665962638032800395455492555969292596387700184116772322920293458948483066311938158200023804931631718798036378026341768040042192957233068666999104667208184441529752947392299460825108922929387472494528586827342194716803179546769908111079110438728254524093098008839929960516588750617514020889784231233757901404971778871986808409144369657900080814605351727571923190796172854294108664970865295081475708223122680184871331657014150086380894257772571938958007685124224445233243241086897224835616547881859121616389048457423531624797818928172826399133319955302315158572330002551307366071069960278230860415244022923863921828379366334673238215802682421173066946273809852735463257172132648315002970399258620715697284656230969819356975610397284762913295414371323402374953222934073668838273306111263459539233155781525209814280919851645220804340155248249726623866266568415086358705627558070979660980419140240488156724945755658152087539356635453730597885201403003897985476481305009683320960311339318080763113877042854813915072506008721064980240480659284261892290202130274632631834208801486562668462835022487136342545501770136449221023720833512925037431906005283690771514105353372852596035120910571935872909179738406746516007733090677180897151052596260373361557516886695518532104513139841493276859355884419497919146704979813181466792859576110406637335367647140960034174540420080704493788519825230765651895989218076829472716477387926221416168439650177732999790068791711225408545632600816055941438916534272254698689507465664164894091258517111063257250677918931758527751434889178090367656802476663822002784618101396815953670824663538814462501205578995071847071742533741958335599732682378195326294481979724604131988713346211311993305278136071225371480977342698209276368962303605404222753515225891042713993159907470433861666244024095675785642525671866426862035912086457679917609663178312137562130938607618123407795170999816720159475421279751281305736122457235208424094097853246193714347455489235461851740781846332502342777667780222995783234146411826658741601063065784015349260060271467804391630632665101209733919825101898915407033209556396012479635683061210636123876342759988174043653536748106750221538417596439468905900273600085650845148669610826719648410278070831450306745173571891981499716083231533297093477304939078352074158191532193132146990251514552557611301048532437658129828309199948960968529349260610429426813154484926395776401922916324093275589627463175717930226557603075787720428619590840194973990336927319439045323967441983236784059155087688172446403232964047646371901595943974274784215907686785211795860719128049144637566182803740724863825837165660326413320526595841898000771379978015704492183017970532870555744133218623383548909019295869770691471243397153293071001182515777936980814677435168254345259943204435733332492095319942336158696764561030971180412862295158375608738245271952474849040809116014314307945728038849406499692130426966290089901048039792735082466528513305804615977618892170717406292288786419401659931300223758795068736449499311339240571617338728988391957182595719637686155765863274915203000072165287619356643759307006133797986432806847639341952882590202621660920268458989432663578538395213151393536965038636530744189034772494579256773034385811857028711376714057980072177391027594397908781149559399872076831200469505803433430313854235787851590283348134220021871256054901095518040585727620538212710689431228850657962062058858292629008354110508612025219455669053612498723324882870502665641097902953467256401449148218357338262754082072361708684081250723572114994313757789360419958717058755557213185566916931929352561302548071381994151257710381697486488295651832381636775879343216365274833658476808585054319154100102023692319857791883438636370937470269753050604506794772090963774955677963449684052755403715100115428950920279647385115674127285445149609382331423808071972070204552439240835349751191912734221270891434992249177862251169203881422169700726217252492202979787480157231826475478063468064739659472704454956236195778870236769111884689731386624012393799801119897725617277358904537430048373511124551588449003602511311982379145828515567526847046830948708127439078479254740093825470328846404921294315062806160177667195303796150144389476747487288605593433421964244933761934035805571769091980586569039673511562295331302966800210451544650475040370596269569828427787009386786301297563504430246577609057194759873587840164257231334268188159914596482623105056139248373114087949333533146289499581178017497172453020977841087492387787440403642959445149093087311421817128480182496269348888536650674705925275124206810032569388427680857842980979043381417509353422795491263072744037925935160515421776397134588068381370459645524579122664201631951512623817933238774160100165439200593521853845839407410075564026112652961901623086602458544766951561151849072186539770785033803668257497783327196578133082485922941230240562014046027267153710974009386552477917508606038216417412675964507892671827404368450502292878696248686688641386498532030573686619666500315247771777006909922932440372625821298983632847982153948865576156835576342474732535690262863604810619798720182316513189568235549355709398509821937152068482467460652907354725423716789799205915109077525957418602586697699344152215992876314675742093315438586820332382361160576831148911835688891646472457410348376224502991324476615964609528398141798100081164362029581239548049949165708562592550475598796241765162604781977109508832188112795453913569596898461791956815040101363718385139620252790501836451216549538266139087303199116573784239920486234970344065000056228280809263687708611911068572588972662498085047351712884104664325716723002904085851186632288493740922566162499799978235568956790086112084172763805164054764487882398121311460388454409036063112111204428812429212229656933727349291388218308380465797669407308884051785483845153125833246701434827577284955828490860196283350263596071711250986943291886074315257620207665952994287777466775319434100782724473478141704264983579558872725214358565267818552034671081605865422537996539863952019262118982717456627021358442732954074520201501359717635904392582352495060823617017439313226987600332342720722050434334209122291617720271287996432347584937184129746511386453352631742532111518685107489553410849612782272386659390331298684611634230058098066868892736104744015996806700481295590213896236164110586885907577342505243648143174546169186901045794707071193625836023064201630381871622269908957600532751458002198131809267042701039123123103508742853930931915835236629472836593432826267792583586990417646001420386175186515854915218672857280285659357822360882188481872646966047085758471338227904275879381942375925704496755514513895916601135056982324477048104343906146415435587351232814560002015795028226862739393797244655367399990622605036493701955731078542582105724638725504300994271336507475113832158223841890614874155239720751823968611884195844779567525152337376340747910869011494102431818824855346092503588266982077785571340027515504603385716971770659684514377711947002643351363427070640506529783116454332665983844393456324996538962729512785794049642075347906197247071950785683376758851006790342551373129798008515736424145532032952452293078581166803385346689402820658479643326216695551959972406112821313352149213592325953833429034925839038812398707351877060717842163424016934378016488902527276271317506245686794394320182008367516921767364324257020081368825832758001813597918555375987137279393299499590220128097177771300106839028376370498425147652283214884895198382830453814726101817188935880477076548330512291918165900668695565320564131734618040007290443186597575936057989974808215348705288449367377351606561670418605982019561981560321626593732964339501500351852010768185727989383629181402669274827825600003312408824384204904430767031840012008948104314363494171235638827817984581059665707659601958645468831292041048398551552362012487405067660916796610967082486428712119990519310491671363792685954457953481350075941751545459412587806581491772639373025887588234763213307901945199133247367354901019914958034873337910068076898394832826797229070367617512720882080203922556893901020032575068985823900816879399330216379729192772875401154964961855327811428893333990450868951890777684085153222547823079863036936587855930215682694899401193957318827088951468239737642774214175541364604019610895476901435263533434989649351587723451776725925456135520185266660390865314989986792436402433000157242944364424428223552034056504523931550432783293645840061479644873445441696282212760396860136509207750590855583083499069667745960057036155276373741491249069166735240492250714173500978294439681582052804109902868005448464689561046394917985239484188167970588879123931686151757520503459373567309987635267671496125648049699809622685662448913459869230040937135103453264245541391354855804174190929055707342830240122905169917367744384985832377725708466843574411604497632946579353148607789099551317035653397629626596262691973202866735266354672388742077494169740707344068497260476546564585089567694828675016903126666286922122713954664002694079387339143190530288263741548135526031685890562047657176656791594268550921439788681112700815152330531619327501246456396398598818899109675406498388269932386705035979120783190239283963222618221399653921011987188012933649253296763104713344562841470134843911427894226570837577014486559457816137184902066811516347434789514599259397734343899806266415156202477235561890729261676271691947368952561939317925410725266374783653260843271296054503586565212998193252564336475783257761640461511432619700633168876701262801786300721663852453574256156377944285442162284684888295309211004116231534246522823281888255887286487822082374193699990938322155565394754880184954869358567630950040141251208436809123916110177025909823045041706510275909734401413570234692961193863835673346660597083962679775881826781007766775455185829821953284800210044261290968914447163923896982039484234160887503845677975924871527479957276932883138927087335741696171608553237333770927220607686779764150779565415642399050661665416021037861410516143275916875877966373330046724651660730762353337061027393104216011477557486614767932897333733893866808389541229074621125677905966799306077348225218222900547683155624620112056787105158792903087140271964619315035171937200271745418874841414562335577842835896650389435481594774485030484402516607869094484349522550444644523631840654463411990805804284992616386361389596521369484703725485371569168578084957951074012801590337427058277860458276531240781156873769263552888986326265192176202073034439338519778772455106330849580410728487697232682292814757065898537163825070832391449732573438249103770423729399686396486086034404227690369178873313232018324130147829666820226381102172444451633614936533018854343314003238411914557834845165693611740236356822829454725006362799842854476801586855644202338979592437727947792901957377898079557199769482036826589287999303580325824339391035163645046154500104370104063076778137606141183227695111260155109097457332410123132579261548253534379087711038399237619583471824240884353643962980285993843156898441862920078138848566100031465532110378249071133120715673411417908710778670582802170944462927755527171988973570115692670322135362324213120204235985554602061254223832594049589760949500672584505322782488050499284692857661133825798264401453190922666008329101884905692124928265470642505514508164711617318416414669724747094206343707072540462632975725136563224957544324291770439636860404614390891119892493833379179400165568198884975968586642795874438823225221691744147076246505373434432983564491589293299431350832036880422874479500355662476276180223202766475069686060041830193927705341139175972771187889060919734861930176438714585103362099202108444504264207028499540937343427277724406521552513497858771417260497955231642817342611827965767742834537963989529632495604202276242822718075259768158466185503867371340081333150604996359229084022495991071580322322560209243868737554904747045203357795254405881727366892618108443818114520005989734605707047760847559371156170085413852895469471918220113743424152268194376828425888046073035314678229357166444128285789577056258784044894069973515430227639470197984563303674592637014740959956107820207148830929162827522150591803857391448879546805068214521370135356365982213298849341996873669196540062357515453821192246005955068363513422398192354204465199554678275548919437799737813247668487404564494029170629305605742150853160935719060413630175651128797714801933083479202085085252309822667620441834836872277973533206069910814222152121047079817274718872815108421611464242353540268071886113873473941079535940555780819894889304509820845521414378516287045059447747078336134189441183713346828738543813943638106041572362423603213194124828649802273823382408923746405028965658998613459630253160944704749531182295968336910676221098366560134343982746003824849181114365282640087034551296317317339655990457659026500230985563474333434171215273223129943732584609496538892050984787906629882359272121081401866029210055840751045113610360421045693678105269991578322313837973999182682097223734039586492901444911278116769905556559257424547085643551581119216442335666638059333090710564153533468581379776202459593487492508161843168691681283391952940786575714721631630512078518653510506467779745945066994057074570418115378608810537434595204045151408232175108945197706410126544616026608305157771226717772131430766839388673435427712414851551412977568770903992002862805719132046471249948553375932646778808770839542006964801135138936017251103189099432871491961786375773873509113699732571579971760886145822570503412078782883559295574481355613857698626824255331552047299121899760705021704224964213331399392676737557331167160866064612113784257856376704766186812397256850449731143204294538581050800155655686506475727828833656487460580911415928105861039119678696309982662205752808474278443971293309323271038643535556478335684246909010593808329232238047248675744467817792774850701669932734804973049513673400304816995946377143994708732443329745905442796201316285361995799546501948590057082783762039561555424489165049521944055530403979968709734648910199234156410377391177450903785742416209259802150941577996403024249233073584869180289029855196994605246972741209670443528470046060413482771720162874114566903319132354316048556472199380462409834905684918467662017795311455913512858813384396208755230008471999384736614229918310443630061131268761381532885656924771363663554792473517373043105723468058125631035070165100826585502422926088013411478760922031611033803454651224890536395475966642484377524210134278104923332368561834297228134969571372580482058251202663271275258615518521778225163563486290439300121933217519087711210714093234727497504519557462869147383810584856841543307341024758272861970590804081952892673517276039818810380316331355277513254121553255848129323442823699417207145719879734216239478351239508357278420888058834825509119234448655796648923470493814345933371162819315136768427718433217281711834490005038879614155036216769528726665567110213658682525500211470248870975870878782704238258422448651165847444055904380344618639341378866340793911781637411990931719300462668187963332907665001050956238638942115980466461198683932402634605253438436180545344076979872905138273974357058828449988697608972440682139085674534294890578474147453779111892001852287507460076655029827436492344040891426358456547456098038753209145260233252589066721171454953650716117178813760487970095340581998280623975074081705095680115042323685797587018325925203979774614317648795218428871816148376420855076163066662686025752383088062520790557037872559327749922866231778394907661325560694970181216175172808937802963604883248372536640600172390993754011311098429998377068496504211881040422248218018773741563137842737899326603456493283725387604388892035899699642202546955689709358632008293306776473730948055370218737797985580102765365155107335301628354509619672266674202726993493571951617423297473299695952194749864558129608345165128339394903230601544643630778093021601004696901676513771217246970144111918891788034714576984265708806471861302567837055928549115869336191037566257304894680105609779361208122826979678651704028279857830391221066541693608205311434381674565801138722521653069659802480982578763257939879389970056167071112606461594852267925252746791480725786983143801680157994936801922811956437280766027651379722094325817348481512332052083127253645418716301997874065492012196164447040473613785067714537107252803739252384045986663218267190139609347294274026920320529849794125901663994589982139205066297252119663131230788053525518861715492683885535924358980033169152123911321185296436060114806670745744042191383540241077786144360475982343031745812151084888391338990751124671302728013154949925453450600830458179961790681917185199092746753264192004931795527723156903271007845926761258246664940359081853615148605135260907447366554078928676806083824816738444728308358389641572637356645741934845316455805577764217245540736656591667136727889543918755984689738608757787844187702006021588107784398860712628089953811954853665697691980171830977817983968221863926758455897541392410590745776850211284276899385825005498293274781048829258827107489196789778130617047981322509873969079479392876219002704078571306971673809977574024304746290863714384546961983444169241952327175081539099853822199802617363187775974974484638043436569700879280574765735849111191199690426878509843027317238439054767987871975377675272052504089561965064012022995396387170011877618147794815286287432575566332189192436508038492403432891135248962714583768278621662243069559242058774793175607438585193945634034096741279428300582165244514942752183698764902499658248886147491537089089318260085761612165202347548329699701417020349505346677748054895396133665764872704983381862698720498403256980969710501972295799227010179792306014285901520390229302910642708914657654607842906087004942760005443361229729002558324264495496057742386301729074097898442807381104780349057700692516829075530732616932286190102759064127237100498235285389065030376799068441193347016894352196930840429191310447562115117132417555535134650199724167728901917563380005901803980791447838835965528401543156291762770833228205245560435197128342802396808942436978839066048327530519394214919747101772875455628101476145862073383531763858433704291607628536210390191358403385053270672700301046061599511732792825221195213428840060474841983322239366837089251417595425225690359714112461227172688819848684104088919834731445376107217770423640475614256178247890504029133117988908901750522741441248567122185118765333960996942781016693217464358423895317602219488027621860606207433504113192425965422571073647478370620706911365568973359194745108103101291988020634903292461659258028383331784882063274453775720695555006468340081583014126647641193569324558760850370160277924963321613780386895204902850939661874998883295445959416877844654145534133197830502488867088320657827957230945261848626936415575153329738403366477726041439852840635106586051651802912551593768396418678366174883313232162441798445280280023957756881262132368300055669531504955454717215017610613633150926152446745478391737124921693349970072184589527857922228539432853521104409494919097299685443925087560494842881363000640075938561108925413174059192611628681717294078139485699839220847083648964843190337388217264676730514908897039258748222085030798011336223913108368718944765722299230195581065465520522284911501133264488607769621946314326316566751851318257606569466073700343363704858703053908415552034436437522248242142740758772078123285573357106919624175359002811647562636355911782946631227713087180318643313035978213637416877016801878270590034859170503009080384960620348034314413920539220360509247560668368778294679137657034368863105487286105014781273597759428316557767907001896308152025228199511380874124708161377391401761563686714864601147071866955159542289215607965038094179109279962638150586173597123217369795831000434884043649241404432431642905133205920165504808186709861399059070698017379901002878093155380313254175396504416824009134257712124037842199820980991216813038153778732524290626232656310960920286026789353876471444134203000513047454742026415042035375194389472534560456605278250907129919900398388232818387848398796897349841183481241181895150019350906624055140758514730466208268890894337874469058377749385716729612610419543985542750732209458055690870034610479581706560532865469282796172123007137597951655129119699733892078889512334347853609673049979215114815583666428945279862382328282682017291977322010055640028373047492556016465056533748380018846182684176539993739646555787457359336025997192315012992336334342146413647196845455368947504156360070223079282134060653743854405274450633202052453814947069899321610171478822490582592309713254219858027259545605704429865347188214289420213868260352273059289519141705774381205922837038565635646431905384741214073897946642052324323101127507539050018173826479035818235669315549365931744490611667398235132596666988472381277421749999688528401960769464086772220986564597158756274347275015939161733018438411072391365502897802866007164079005841230826524564503587700062489483555871096500755240076362221505344537039497829620006979753721415253457508594338514938899276056070083301998039652886693541423635302811563533178364790112507213255811949398673673275482566886061543556818960871968573032335591686746879392178619732476959469361802800830339663879520011968838472321204711383090654697546385410180194602694600595165841750728367177429962647432665986505881858327966632745096561586416159650534329972423426408882163454045040545307352949297992330254098193106121667349915651768355552668325339921751544340318194993371903308565941614394453823429292565268284957360434513945625812101905871073021443835220196621009549822545015859443517416943172533707366736741239428671249431375920129565715088948285979859520481749851014470650375579636697498494492126673289214709736230846113765154095364399927474800570897060571953222809914843953057015317000403251011305515129055972750142315482400491403422791835737372833826306990875230535616852816105714864877488234308547786632619345331459141901403428574282607203630550595080733168522186151127079020848299311430900207776452545182101826685244951630132443608021990614055413017323910305144517902069604921847825590095880855492104661786751139086271542470813267444037143713597474430494932254230677610458422559637013111552359467808826661109753009393338743956927689570395230571191109234166542937245893202554288566586110802082719482687039186807757157372569825978998894312493460414204745565329027372627142349260380704969252875467130876984536081769692832768338557944196687114414668825757114851871953665316164807870776007756989302595167539435765755579256587785149621375007774827134301457051140134373764967689164288566067477207253921357004322430870452250099089928890979960818796330436040031734382755820664782037390384369625174333576207263641788514405733440601004638267687349096186071434597220670453996660296976980337736675966135316113205157763537885457560024609048101908397351923312121065680380307495980415002051416351173640592643401987700780559594152998362245134000037262388779011807603252104225609000476754632024828567739769808390467045716013888112659403430733711385595180451504475443295146787671655756001929449357021490674886849292710259969001042126125291397348811502547216780493142540435905391846846845582104459758311545353079350758975998825584715258293058237847053441224846523934394140894550935659344087231157219109557278001253704889333171118520374731844539654520492459645243960314696125442081907413494496850327966600400251618951635971452751383556022051193400577979227429328849037375086964440779735920582224501668763065256762701705024382662845889966077590692172881473828697632565634188702348052816841468846225635242120634713455637434423017837077399178513408898924626102453737151250616259532970538682156313113551560741321833631411802180333557041312819274711656192981376260447892788506005124074918740824014801968049848914582113370577136887220542861074644070442578150418208879436544157992060922077527010079329812310996301935130588126520161967272360617408548888397153262614734663315375353943287680414306228432513913421221265924433631984519142252608024067972318059248174158089280400984525907805962643267829935643448268003179876384870387649822334458484700754748262810262659605977845512902761790315082042831242865781320847429415380957515178956532395538157943559223285844159938854491276707067498080474336856552182782330446072271750996527474967324310240922214611344505868889347188392340535038409604427808090056598309690267967408898377030319133898992913120680715715953381465169009876276532491275441739545375042470760508681696476332400502703752714796826283366320705962631667429539663469104185721665679853690823299419564016663100849059992808618116781133986980944455835359979963625737010377793277474625139861787296278077959936865271413599691619381497143996391403815600651449171766302802614428510879840639306840298009358417453902546866835691552549335602603962337829272154194487412284456405566518432136823421367224120369398309894598185168635812583475925814137905271407358119734712349743888521067144847190578212210077510844885633070202623713188952712819670318407557886890061314599163034831034151939336076795943569941738279404508509486377342137454985169984914992168062081067104587898952943441423607119537166133195460531327446037934517769535740762234999783703516289558478699148783565806009606941028424123173757403039419995007887086190928275412493570068949698594434570980515300476197828673527817247521409774158308466410705209731501142379758770869718424979194253638821630857252437100817849012773673647003208572135822733031266904556473086269698996741743495874463875185359415160548688511911196364870801428904579337947198902829727806466183900307634743139381502849807200262458231203743034774233905296156654349292213382923146804433933094957057190147681000066269787251950788594095849183899719466864746253075445627706534494183502012502919084675346105186498922962319468244062464220610928118082348166113665393939423398055836536867460910361559678812298671663594102417447619644455641866661502516974424723737404983852934628940951890730371096455792782360753557850442854529568191119498962609545131451124187089405887363349479738156986737121602373535104484534828569831282615535479461447563362777722391192619695341416046364283614203668605748125131771444581577910823018836381273321932945778533062433841289533417088865503543234427147661018329912574944707901801929019554549833019304945443701630702460956130894659406774606023212658618891814355193881058384157359087318853884091708675165220635585598431147295658243230745388999882343813661335299758407617540015692992346745535441854658214926331204802647724194652227783385977493965635157284206916195540952677325392530858460141252040775440061830959973217031813976200461703385824193343002581590542223181178817184601080970591653803049640435763732227276082946117698597238475106035772221333362508092674255710710616760946873426491687006211219244543898887816734195788129279480244434345216628180562555939000958766846452112313132892560127974360864558657286349243333634228429388904761184669249269397206804499791183858085926312423037537739953129896978292737972868304492663255640217672358569983892066809187001809227081206650643770289720075347073075890659351044878574467480344241365277203049521792966189946920634027899335428077357998459415048345157433117147603516488593658217411159271714326878736167877536982158056924300984153551556798032142501864173160408107810033957397506144004943900278852344191214277911788266566346420996279576117260646075907708282150891340187570914576612009681448853407543343409616399923219129937982635684871283390853594803232990377748219421248110624852226520393987127926860992597646617091522132847456476459290172751404461772559085196632924603982818877333029094886171118633396299191737868717712377748805551212623790936927918887693260145654427999371698233672734256002672776587311446999840868690836679441976031361000479136816409651389898060763151487450445114069165041277551774437656602082384325244431802728143378991278745395600756463748484848002080933181250540938049096822285658263551868830192631280687248285665119057538824526262460647129859507143995912746123983234924951350896281695730380068597812723293113447123016403997450648446367953595967733962030304822216925193466914370845554002049589238527432679229803093503204958021761123341188904029389966347821435457896524845434019566754588899296806556498242816195294681245846988953743722202043501597834943590654018886429900613625412880553127732465600823198264181125081014928893724542493382318484218257295951110032404925138278817153287727766213700893826582843261426313292416680449073442797395818664697796064213781469361513868644071896513176154975834470777675580727516138169166224409703914791972733496342403148898722133356956646127078756764056711771875594732969122186505827554247763049638475294017321188397585687678570790267128234614566735689692695988430175086522031933620363002368152813347063334563371738430661355392082763894693499152919387462654688997667201150499896962223801667046739391531448555626790048672377824881689072831312061957088242818927901168438462876687644894574216250165483749376531535305000729146689030004650078938843591598673796720587454303062517791204251588112061458462079445088497945957857407655070998834654034832331788971700452902295549380469158375861129124332410508061199966127150844652881686825688587755832075778885749859781158219666094292095531388600974817981357667370373404002606871528159556919380858484759487926753060672824188406417072903866359896336176260732703161124653439764597785273500426013144896681213363011981252286669214460449620680807462346689961475780852139704686990507963524444430928448350436752241842998772058233303545922998051581464644366042247203845719615832765196416868486855055924782773479546136524505443888679477962925899859878441763044192387779711566622852443972009780010881666255621829317334936868173639651464792231347473934068931873307766084851417435713599170583269614281356416048318505302553661547764317939838570631506414675156414855252508967507245312368356980175632900571474143968678498899549846433557245926165296097019056607779317233189600206890234576015663708175916779764954784984029352261214540703924002750608863347202434000346488805120879823377962218486602423469010125595067668418156694572604369123413534129366029639131762536425617737738660566916483414098214492575044281520684919207185751014035640080792238316258212310109760447543210254983575103404108520405560354155436896709807935107503298330817466624200443975652863742929343526884808784247471688190644628093828273765167337934336049314801172611597755632400558795490448507336468468224962240761321902297930161172866844160528284744547667961693522573955452996012868983125037816726261920228895450588818434490780195450181382042306613235157289652054436615667243687571620503795256302964095337957023922108137671241999674061530771529421782730346795395204487544989760748383399211831196945298254274994083683211675752573204022553736387511311927752386412342848695828688120882835212414129335297445334546660569069060372596591798173747876358013122926036189801363893003483685200783238953382980093320531722389698349956745907600028278291590500768535041836311980570972062551933016799163400821168064840192668885582640324364934280011785265189297004946229902384117897525118359550816498262270510153312451746991543359511202985576873973771126101911294273162134479046440374627396155916844456049911972703528590404601354777951952274062412742833783987042890959422321815243627428315197147836350293105128111498482007570115269802041116674955408584749227036586694894220855400509953182910061806781822636818797489472806667998279370229010611883579970542276219197543882075036339612384414132928076576852800528638149540958115830490266846714598709912389190369303001790571214032937312699995385893667345831784064286421568390351465078038057324731978847252960343846812867998087010625770049939613893074147783602088924130441820010373755884144770373218472125763574580089818843041986257198999086080494786594531446089310787292418156656305296876419598391129441954120401041327209602601579684918415629762376854056906456947006244120805692025295674904809933660519220309982865758898476157406314855148291384636632125007589243166325594366391507391148366921256091983631264646413006398883394497999529989165176840747345993356155250146633050241170659507386122090273321939143798743690388061160589480913984043014203418288620627390440822407829205357766117854397420569908557783944920161616973607720954622050556905931699002226042549062801301050109656867963863887240191943112451641623196935843451078352526554839838251980060838987561928067294112139430561023197033510154878363765273162686478721813091054401411665763885581674160619529179986584344306140196581960290232893192176457868826836881450248454771591313331976454511645092503112009348641521455826712043322043367205855115861747936040960462411284513208003130326268330417654618474311195906094186250270855750300146311879905536044075201999590733662484591326060372453852989788707470345845574995087448340492675807406425184803296289329034037530437886194248277575399557847314900706117020253221518425615778112070819239265746452656937705094852565752901511574225454585122666687020282513100920885761912570455166404179965974740499081614973470015494764198684431369827445752857431762679004534903921750260318637632377562326664966618149175202191693820289900960869126513634415787530493019529575194669221762195395787703958000268909024445632616243331434023566336481105218626924379254587573405239249507250256869492014178117821790193368728479744744976489333670571506212583988437235732292011567345563054628708343961653316545454444212669692292955465716505337500875502813787097807136602700383092282133988603014883630282317618833273518977492767756095749983484402812782675376775500765944167422671737447902917724738922441915043083501172853123301859386609516375372667169357765052061090711336329000291419925946629812056207073029146638531299508295467495872331941058276725379473629131860491591520704662913534536018260605265221482661085189218514882849516713336520190976914148824878439219464169864832386868230872341010955434945173471507590568896056893177664110095179291846507809726759913702012249162207927248107697117461001728973252505274794425993269386840442492096718181555104333147425537056262484230472296347601878997462478277220050510308527341679459203018533625037506237306985913478029383401804562133262389969260688151565742505956419953701268883887183288055019212531143070500610535670113693233327939819873629330389285708711097084839728952222964567678135452414958845299703439981431420660141944437239666359668292567555802806539271643938918334945051964675517922768153123194069701136289909049178058770957338638559342710314918299707748899254387288217047790887628532665756780063783263705810001102916795909505994858293385920221905402076065415004688340931238697039263533414141250538466149177310666057798646354573461159533138236281502355137976683216114665301003138450507837373429547317098613138845921238924544487579532011568541126807480665541808040784920724504771670858858567074240261151387132327715445606468390343790868869296527064975259419806266094479826632741783653255456972139663922800023220984386516535985782288329896131476643031524642072736960696207049010697808644922476479688339839044911309321606779248545352719038729817721220802911297291279847649953142001510333794512947706092019028313098150744366320819164042420982029500489980427835594621230574406636510593284223404853434568492620610078964829852954555702762188869755183236044845586263944303848875280699893223087655542936266463009018782591438668767868080891975924343729022886398681112716625230659966489319326141637587823013900709622046870532381490804097048127632521724620646262499960786039797635893180437366997601845636237790782384216064151214466744761468160387071773920259872130546176626990258807709920793948069927438786113509784940110727627284548008240299582860933268051546499643976235681635001042678046833955940866942188403825108807547198933542695209414263486003256380162351141641045386301486070550479276393081702128963985601070622049218827768337150978120985180849679597245153979026500306087866370488760543234844463889297617995003750320939820961706749599794290225058559950404583230043837156655441174313818265677160900328202844286704327661578302746174502349889008421925251173489548820800527625880213122821635065332156753007424659161258621289706525526129255506553323066932741850200486591672622282765496062137100972113375305405054297442279517100956378308636527709790862877658773882386464405148537242392757164676037768586967530896582314215740599692804282446774160583265268961370030649521802657645702042046745748679069370678842462695781888329920568627385766362174971224152253753057575850218135321435486687527021496435192892773040673209272302964421205808896472801332780215123792591751255531798581145384099023431173741608098544073203694344141658015416684633991039796896842452496544307654706639025760855360520419186448674606856683441483344713901602011317197123919352844921914388310330196291448763620270231198242632230766471380520612242386115671722632009736334192662053630771349946512673231939912809750580940429970800701104833754368256849970535988288036458911705011451529041074570681663779918199407949359411923163275987131480359849104442506769331156473528818432923486845680132242347445734744550839111799645167178168403779248451422583839794694709922767179759611825360546170174631849650064127623512099395237253685642178870104094863850650714048248684113009725912255774932932359229905687769987093412594608817753438364117154928624946652571968534255234588970418140534453925818649756304206281384913146586099757389152754065077125596037005504831811872126392833622327385196991694335822716339474109642770895017394150668323500934323602605251884784630452755273359393742476097625025865860204473637837756935381162010352106620159844093753776890414706588218128628661703447542986790520498151428226894772158200196890470503947853228123774944554888617493575447583953630064315397242428338185853659540088363367479612392848826028792699266974270272216632130970849748838103004309892078280658045843763986704207054416383075380134837048883968925586571619212848878185940425125376225746338897471951213852740178626037045758017145429329204782615606831501438834411817863475137369545287225011817757869850562710672613933976175306919128755919865213896352972668497560545282179083275205970173058956509811512014892553308948892563566418512499170043590468456327118400432089106870391201230216446463502033277791408622294298202767623205567191061217162984460493446204689976084189798613081309566372124684537464699442304136934150219575324907643811837188786766416327591991092031165577782780188362740585691475968830246548943360006891172502838820567718231994439538652133601593352546589349012230701290241700541291316986700374108308060993954223254685000452184582825894127038407772059537730690976153674650296899695581828098877374452694325642283456635955892382797460366508209895847573961564051618676370566483111731907581436497197521292343547835337086672610728220914229475727110284555406594552066724231711126322656616689457910587660518253159011823128333993775658601593814583744312655282090372514653390025890312659572627461062453480250916981762734760812998375925446242527532910284873946914769089773365996736465397135151302449899902006147656301232938556671519371718431562584819373308984101938799664519687774046958304335689202861977871656543995746894520591602264841749329082692041294005059268141031835092196681275191645068275747280893408412051315654413356941351896355894927008096476677574416461373676051490132238055484318863242509077375224930928144509010031879995982984666471125036098516177905550482652681661777954919749194189274646630454844168479279713734589780123538988549736111189121503237016119088292438995474538014073740602967546348572479568942716184539989746623900664602531413310629281080653341736058741448588544401590481128026581312961816001801195464313066963226748769997819875176676799723576160929900443538959068529725651405426355899318879532415115709623294047691526097321399035321807602218792230267317231511607357255293946726675833417963288377421206625031238165527539270538141455044450044750746450425329641482633587979811060597285040349900522531435313310376573451445858916215082373290936366561759149103245413656889423228444301975129062075607562813847428393555271472367141215710311166732682238845757114258064166704909179333969845380651357253644916563630415634951756083300302580455337346601061728977003641165681003017475283459024787690789640108858835667015431902923945661274455021705787429324596773393291425093735892521636595430750185101445722544721715587145884902542775615870873836986853260221744813052847934355486431718001283981304571474847095470474233041015583702220137170830820546596759019876189016231593239376406213499960251119761614132144542083917514666365790221418305524062650743132375471918169784906896816692854426536768314889881781307225647016872429813652349969433892344295019386651894989769330831886890392572127864361642008585721565716970486226146990712481444638378592052836462535258616039141016103339054031976493810640206670765441745040179952888654379333636050341484865599564115735294777400859344324885648314601009222563827853175315315001090735547373433676024972819367450672262959734226112168005178617529234894806379482338289072857449411238046292814174274120737273367495823190796003823522248944535991346604509228029485925636663059350792544259884847629415693889876707082025796647786442388180444275311695297486854377882648236766923185250134746742457784041632702202616354874651530488268999453686645879608255381901545020520118678573112937728377972131791020250401766455091946773622133975804346833414838610879729446188520786097795996491887651195639932007999003972387679607674656570451020717697505586423951838684928938846989489899428685651084977237894839030145590065214245511786614598989662813711031979361473631402954625005907470128124929208316008250742070984955361939100579074123427961071486291902812089688269310276984160424539398268982298845678941748861327367975989721682849613901885414033052641552092772762220446902460538865063004352917318522386749446347749873623367951693684437612570499493283449896591331628075310864272051282091322578043430142446180874938824292667098175036351341312451589240373818649161768735358389622207106537880234248880125055517685347391511507515222419578041116939452719681117758663021210861989834558696374421266147612037894520162232770205385774275904663862015630855983742442909519912838486259550405683609004698089328976833149195196377139061586093726680198048243489363623508711253044602956495849576663570536047097798360775082984421223219529949281801268371004724565020509831239407627598209151882386149696920357143802598236482535748399414905162175559199110098169564638690841228155212702063258644222834890054661790471956434789069632543614638373259796576893747536465207127295210786396317183011914811753843806114830838956969061527430392171896097701128423869665329161250540197499349017432226499221996123202955605597370423254677744302665328472629733637025652122268118115811382609693885462517131129191652364593251888744341931270924947112871569154653275945597420317371600550818264516666954713661757302825056960823458233701120616613019985215435966523898518987036308882649859898357271737616469372805959580643183948211843326503211974293659190185176365106958321858006160282060811750198937121509889470714047547576042092387739631170388748085649326581332257321999904412743400108452378962134684723929675900780930560286653737468016074429626579953897012808693834018136046507657158974946702215596717426045428810389876967356352339556161998458780058385424578259942493593840105020341156024434854195184538480279001490514422528192414041346147156299620726592794072660883196180517271235356983295802718539221138997311350178703395641527544845386011441784665988667745948924671261102371766404210910277506171034400118671705376791739144034680104969323397842695464207162727277686099637079539617326180383011347190273174263377759030127273973158920283809389568587443498712883109813060031708192660408011315931679105820018907931294108870296965013144498214534563926160155643609832757764086259953284326694120854495083362077147534503922363426092704602320940087588343048223206746066743350561753404283344669012632848397659927406138068263919897887952461829838213086726621765653956730352153701885376087138985489792699165306468470753334303533677659173888607034810210932656003278387557253268321006045234850773847816814446050027832956068909887864217640943505713205257935403097657121471674489422958299405371033223935093664241461276618623511722440388793442915305113774649026882176579134039614943225365177449683424160927036119135284182444294619781801643436982520449179068165376580053154704325033451246923018451618311324218587819435846760437113366212588302701071753703516286377697723303174344449013810889047674297826308611082034734414665450787357620189356259998369469103465781359738980721866439611270709341061495151230474737186874502573809334493898103769659266115308136674493314936569847936040214818805797837397803355732145365928674050829282468489680471721711076586455448605456641305430156896061427951064515801551074341202420950992237590988996136932840253028802161184222474116635139728317159488137129828216160440531798591982443065753360178654796197831713329835976560100391591052016904551210014088607630499581805743795089988084137518996140306893842809678947328442599850366935487645055617239322403308285024099592244262234970936687332020055065310365852235979877863232357047511742600097815228069155860828772604576948906072434280304498052548886152951719360892454257010315918799213628562367928414639672660789117705968748179704570755007166353355452150936646737781040451106139348069796509213882637529444546016421536793847209766253723066928912585425428900427314607134372257643938571928361047906333172742726934436042937019526486087196123226751634970458791881873703029035441909825967901400733829002286404637327925328862629223502332654032170924081701382425274762983426548546098617340041436463931565784555033736193761915287853102926200288576064113815679151739129499992386153408815286165170093546380560676565443079585524076449398200325679241646950412412391558787785854223863710953576328207594892254697191036656304981635284309570922344300701727501416641437296850929837656830551698800060181480297021435503928527663026619091237066530242459635578125151596211884992004006798289200022648641201048140096539499513156804137374455399833712523162367999530567462270417845405111058000871268892493708793236381172087042760319407323182557513107379402163747906125201583735610905419133657937777449413055560621674948424108713638778774615255914935547792439211397558888298421693301828881729963706685057743272799868796494574425919398013688948006897523423284439337686765744043059175212428246165146945000843928853344631870715810540359552721104524406753185911650819057494069375000438482739649969017405561675419370373598529004017292604532355334642445368729603804034343377855004230566636042775906140322983309245824004021994838871280613896835645227882059040314729242021403009260984089965385560295206609337001512095490550304061162560398785272151532429369510199675045140797760686973178461447823284463380574659046373187228846363315552500160562664930117929881309459682263446246177309465632972086369671786603822015260973966563103400033151798593107569268967504870555491430410756417284961967570337374718522043787082657110074035538827152367199141283444531763958703441527534926667482547520052600445535636383526630460138511889187351588053398359817707213589990571293392418220379957586771198716216191533125813387005690772118231966223594798442834605186216343036513074542391117786934888129427018974869837360973285443844892783076696942444472010351796162913792133428900981404426169470984974280652573805262705004080473018307619858859659056744764814915179031300198600711803803068221327544692930791941181104256169644846396715418003425127935123817713267655446045691462072809216695351333411796503357358010703964202769167401791171966483869653536431551460646683084249835702135715799956738381474507354889029529468326525472185546191594071634506362032096043981868718145259869652134769719146278851937796509715940365756632019358124673100793678192730294894188521286094843054939832235193303206304133048457250408025974447286811817028042094852241306838360300984434025262882608592759124886011788567621420586926581756945793395341460577702311716018775474810613463112415589269460814883813697049544251286078603085172452618392984068622407131940137364162466370080651084503039570937773941623435673610735612753792437058663642371683532579616285108567660106873525536685447849612701037850293166680187871880674369529196786286447395179458640634239488803386226425685072807131016889362251864196843154144645568403767349659702680721629628379607697451730848274962226895893157555115867048421261310249949495354959558506591451861846861476251040402603142276352307417490933494018587508798625261119496267418694575101278493713630748909029075233329176851795535769088153752431485437528503525159429309789447801764325928973573511716905591078187536877185530362231833363321481294616252299879544381295614749213762275535859513379655794249427472688270672470251033724809338114833010018429149955797562602953265502584772896952914428748760206634057509582934489572306113029508886937008682105242491585003697310725223869002592387520777780838081085461192758296090146463253296695390144994904198462571099609864875829101354540787636697737936314469596657087506622702012065403441607548522441281028036697462116381135346918513613478737475700003332439205153833681240945207969309090842049947205397967838806948764585559651879238802751945421436368442374187315589242732468654875288512811633079349890310838394638976051337734274024147848396751447541791568579928866018139645210579031280528748140542846462772062157471762182466583564623169499373039987048202560658454570558120843455730932723327459673690822133025162463167694577543773940816323632207828692726042679773235402248448399348890493804863770936093724823521104940281028689016890432109655326878213424830307280934792478419586165180878781926077795972802508792540622443132328354193823265049565383556088348154535119281576739339780318740310092241451272883344678439765452448895896216144276047413100870618722565295995155899602227111096996349672293257677952208914354326307426003379104769150141297810411599154280837361775422982497599837022466435732063729555158975711992649773569202731762119375988897554879408257060063562164904577416026156671122403075471042994446880168901650753951147894955122573237160431613157057965024167287675045671374727664568102784375036395564823135656748875157463673204098229872120165901355885504873514951552134466202496516439439696172759546772731495780249913723375455803199583021083917835933953470967050699522504919034236822509329119565810971862460689487067860001124804819618948767812714641433570519427814473445388836537156932293989358630820387255615441963649594236031038096111000917898316890301903189020915566536908189700582494385821055491560042743680976263381139666261961734473862264728698111379597568172656673338182011660909576079610893172803609403694492419807881537938450250839026999444097631392214939002397849077438354165842498325551055437627602720346870827487279466885321362556331211604023615080662304725342238998700326661303938060209546244397287811281997092679080488264816634265877291438071252284439350569395584003684195355821449233786944586313128102947272675475225691831649359459301875139173512218200806688079010368450498970793313818068200072097732679786975379960951053759335699941880023269356787166432076293719591253774560013320939668191180545204753811526878891864273205393288827953342033865176038623425804383799001859407583433902308753251740637180770927126473020359187867547435476299524409210070884573159012532536656520234991370194216071527388598058529457159277143558742655635266820906924466584684663404489031905760646393969178190277309498515819318122181608667548659278891712055919159966421698732283010870296514306674051435508130864760957764755314159149140599123766614839509347816452511162214172750754618701247957323052545914762292895129736385090462951139050251440909333543160250629822959674401204887974279565213126421000690565993671446518601820800388903442614703240774768491690844015092002947585893512980685210823207186980135833055342117410691403451265704442493210538543023032409465173431689991367987796708793060598306236526099230950633871831258614793942170474212328344189810588238481905690547001724204332622219064134247176681228522383038269440152838285465584781886309924447304003927031061690922971504632662500925778597913715230250622375436640585980812499394931814621417954380974341681417507921615806588263565987455718303184622047942823826211079635908623604684214929043129886449850735134417388223983528093995336298186144609977254602690752860976660070698456666625227322274063727298135433292306310200215814541445492465921279464582010658295719026538271219178342280228612641826834847634653961592316962205615199896699733619716731693796471714801773212626012249699059739034380765057077468279381919893663797106703628736489940237430941303227209706837081591872164571750243452888582463447788282034453519644704685921930296403708470146804797288096750761285482275676241479924866105352926245002036615550301390661479087881416562544717296979048072876806333220913986424454477424373555731498014108793762497517252534599773579733328736760275556333640406920570424774112301399244916650318256849624624867464454101624602817383216933837982119977373853207236613597993235740887104177000788294092621275867279160606246098924477756561254059743012564201288457313254810779551668764707040457491627495937856197041347725136734572205245188262819803887555334233357224740967075521303698404080127975235228265631000754215289129508179990820233822685460243809974808836715118207564195623318421823998347294198112377595477946994914257404952936065538973829873749633290525529689817023896990966920216434152829935461615751115078421013596403721452792023018136936114877838124427309003646737719606041662714436707705831753506821615951162099747127483557528472150862255086641210666661447953152379225578280946028025127580909121243666295603886844405520450878770432035026363148393506312571131453087679933871017027692078426537469802920943876169672914066193881273632511974043626795834398337189563774057116771254144349008415005403988256418132031016184461218270766796583892526650514243908071586396163730589905039291444088445701484428969038380695004632028192785738757103730449513261289730726439524281818702649373249301068530875894453154560762084565545375160626926355585479525296102845903894185877355685579632788756494892108454408537615258312875403060667862123173535515004244351941042655804352915367358553041948970185552192337751845793071200726935669510389528696072374685360540465197979663263684612641547304253117037498682638802605399132888689916393766826602759007630109239408510977484255077784912446548852034088547882740626624036032352836665561641733394062079850530858114577057497423473942780053314130506339956127421843617524589026248834533388607741959697918723045433110147476150698172038798603842654018574487018264217882514092609357984812993809282421199908406794684590421241369364929943008768592084834269153088234831588503300411958329183915061634266462129015622438775056463436098762468404892571175651536823055635466766480886355162124632847290866868971776640958081161288395077931125997415421414072008368956631337535721257722251900141327566436556576775257294687420930467868195091423451455384887395304919710781208435723003499412425408597724218332946213222342292073707074551993088061267417746309563767495636470748924134239330306801334313735093759671602750314757934069511520316289125837153283166416440002309321583753700934354986933839531772951766277539202630989695822173806042318505581032034629489997728916060972188331700787561338321527018297192386473695347098879238464890208598918990987015201809922550563306285966264994796606414503460022382178603315568036828125445846614236370614886194789932890080087872765306708115544022658793293902115972819715610423467769665244510500136943664692943681237998927718742331376814881863634053840093191630352925344713679806106955965533534142837035909804177687704492538022411610347880515509098567477024176584558143910953737791913496824706105952086569058390815260477761152283851346092549625275594555060320883599791304479260431684137412450833136211939529768597106707599971838296753930867600413970155454048876418690433405324842712072875467684409688172634937115850439200359420084880040703032759095071446480409037997481264983774358195124806309380860799443859934655131500686958355180159287137117425965111950598168151798277877772861051804368207088400942114593752244727601387595873068332907650826094585317552450333727246279940629521833236199212662613465865136489501968476798104260693930753037556509810782866432011260592435600415389434590148292782911812532141269430134712744540748539237215929631770174986001962079830585167644397426184353030767268572040729363756228655035882122516531224567374448682450853479321803093759826796908543684195661461557717728196590730177013546944922150035289721193948092334865837515342096155193890252285094197180887569313539517401260729735766443369193754415228493350487526797171608915592844365530324132568218017889025326862324640435210543064092707667215556376286159784510061123681711287286838556462594629491298640095534093682468435347963003724320787771227295859990515432871521327857384568007156496306219418351959545765388763044649021721050321788901417056419054708012992487005934586829511841900628610504868752936598338130902416542731308511982908902061894655023026865257037097853484454146099442683943706275745328951479172375177721922384369517432030547017294113272260736414839861325843980219768251387678389499297483778647240666978957870468399343204256065677008315391887766939134649378336983297303694376104884554927106082302438915868945357192316989137502576799058044257119122061232931402723579390021332111842318894127955678455890330386073800818770612377529843328215198081600574528252949889083452305699135618953331878117081727665447248184418019666917944819312533759126573925055633737826241081054488899581648378629674880502887405107570327873800343005440296944164480311007795456103266586236872700553631326439475309692005027607495107528589125779360330910940665961655553686625057221163772991430722100203604745087386276516003068152989275840192182291022509279731587170760756970686739892281590652058270206368605901195488463805739941795739816953668346621596867942860553913113077681832300223503379456405627992373079827074412722906083290040736260449387121565976129725646308068566134121370917564680352967569428663754058398778679176050644113233049304019992735295947138775097349342208849154741655421256155580211662271396193487825900973330138847230879214647899871449732760087483473465710655916834385927280758383852463578416157531831104697268170280329697173610563396904563497362437220795032277483447299301365051351230519750136614799167170609452019779720955524109921017966095708396322902091542705277478626109586112575444879862692455511032553444324785213781569125840320265203024093394659138504287405964116729593267749335458346555902118647030491836738153081148634645559319256079087724379368944243506089807007668660149073313315739848998349508910198978416628806462890196603762881050412284616653145962366333264540901000396768749830727842508436783307744883466611544505427136706956381944506756319855776168838627943478767370422854836271894493926686827582981132835591461692545661033391628457920175609277677131017624345964511639626770965770530991881667080846988367706083067652299632178778159402012755080485362365735225423315168332803505401366318783040618959495813233838122856665140279821551597942310175878274277330037006431528893304525096722808029209177683867216219395483922301309958108627667497463246126694922087456314386177594696648509309881221787057014852596225800938347715648920696208670759713928597114230530281689993021802708633354498861559328907708883011410181837590626448796366512390302594909549139359613733274117119313170088701907003104842623559926253776091104214470137787332209908819060924274268483287110697148479492158927255760946283040189729848259060542024407987206945871213330750160828687753363878726789004653920856995375659353732410803696663684328082862307255763144423992707686361824541070148390331053970078974841129939502175417646088118980308650989804451794794757402276650367616759340114297078353274998387303945051714363379051069274401959478260100755844083858433344374574335034498303433335372976421396532326817476056317254636844289980616839259984335566637936702376226135421159921650751164352661583141688377943509494171340539856465813107515539399752684153642154402326386629232221664258774544797428815866414967995500274426751572092999353225172739583624795470418792808604782942296004603778017702434413645150532761015958538552043878263915584288058481610634652027592051180443255052549575367441642693944763833581380644027894408054508910335243985802916500088006980601813386978397572777107409463795753302265768314087061314091657513975459030420898380234724268298813821524427576387348736565333224597324171462166244862297323777235292067163385847661528395131111280408952028698589799052881963360265799088823782102039191564612102723163770844309875987880170243719327230174413374021814877680732442480722926815019885697066601626592505572768647687616581117358683347539773055312435698142923859757648542991961600285129483942343184947571466915920162465597691923640856584069117829709086920456733447186895391669545841526129455158735986678855807462523779508419194987903216395715512868870898276747602029306405909234606277258892088152871863233305404363569580961934419230777387263508718079521237126556477840492029273487201651944156973592218909214182585279811463662554555446813574464640262465377551279862161418892555152448594778456853141999731422265422490901864256744306968173039150510001900412685097856656754971980896766534209912670603838337530474684917689773368308185466630448356599283142965286280854846619052492932582797808805712760983765042046444911896097357522529900594979884516586147979379319349019406062421888507726671519076562674942161523432023194071863366282655141396003844921927117368251798995106751134936927538743982224944603976080535759358308836086329120776914517467225363696219413001062633585671730499540216292086025621607025902764706032589438973982048696199570294779865111326155348801850425289488028942598709969954333501732362602220702593721350169904023716677669832941852483682331523710123690908062786519811880615241953667485976361337014554537177793901151997137257651221319348554353338152883872259439662800707969202042980784998440999132738521849329299435203695097224596177076927320170242654158722519231476968734655283672098851019955431651605409982384491631797950070390285596685889574027024933912029654077608890215000960496611247156972861188047528538254245785934988351105901254114490132634675505410257589096260186171827001690711507791738476192621498022159198620590228532187098346343905541291508845261151398989031661367989529737803574309874986468819798633398934062398134884707389979504081917544657074065561238575416303279442512397203030502656931519206754223159119253593157226661434047512290713482632566112271931880560213476282190186884262993078918174266730055674574011642137375645272972534982951474298930053497106964287904563961306586145928471790242867839633642881949034443679987276440620577887082453286817356168827975993994270417245770674899475280382462240329074285062741470735449944781113633945842126138873243996289881853168386482548889797330543010380553263913787640994932645061273805771065181888019240369374424170405584754667119476905312219781277712682310438232866089832332097289886323649513116508348386488271795449069848560114477550605219763065011060400423107179686211196265412729600280234033564771883992583024298885035461459401876322274862756832782866752798945916768802665486684702853661401852574804278659137799452935983610093977688568109114024621646274742652823726265006996409932847225997755395600202034757046388539006181617974291553010508907465211845708146052970973042402830899953327954600756161827833331499306024533862113859058271092138139263154117893137335471919176874643842406197445269773555334371661363723188726746715621020643425805428724232038116906922393130805643126069864114305873086585830304234642046560026531915997606945426442579297608836597086421252963571703342293753176198160733030481094155589836342672694296267184932678929868183259700662834436053305972128222819635011624056836149434280389873445112022711188280107229590633874618903151922612216831009922477572607840471129764702374386946534586774696532826031258853408529348773468910575229837923558685699051729016071201599614525025490012951955101334243580589288627740633587552198898558488502405424023549905201315958543091139104775205545173956028057322143995661469253581444779884242174354032938122423567456476140981533789548901569917402320781191184284207678431047014938680243361361755396518756349828203214655052462796843818394734065859240635671821702257152141752642458582707749078156740718057769257733880044013997344552568590217663776103491391048544654122286316751351472070714789554487710815830524699856909829948494392896889345049388405240626758049238611609045985257240349890952987622400682003153785036203165802979008304194228788910434357878341955486352614352621406749510211154717261756557646484297529803136721684929171104855219464331645411679284134759209577070266539833624625350275538364458368847629920153317979013294833422194579688199658250079025147079139579709687185273370786918295793876033232919592125391998592030946014307378156353642671741858300772246143757082259382343123624533566246345619747832368053644367729833322393762541172311942403369713061259962063708816002303873616103413704369332010067199969632794069513394203151370204600633673533836787833157856545522814238401787731948314423308338526701691739616665222493969527765265234835429824127479728874255474836213011584897246626164049146145043287346794339038963791151664113924026980729078973569012480420448336864511720097304199651625950447258072661076275839235720802852801290329250202859391289654670177141456781881523583389435409602197458297942943286579655701608293890282889388303415552799781518766182379651246456356366123271624433967256638961401567973355852775939219869055866627319658702399822764779541714495190718309123029132782942991737625728003962364892689999139771829309307327899360105945323245212961574202559491408336973649719614751818992725229978972761989493982508903051656672153969493638443315364364126414561578199757805920031567321232998566569403683620767854197702770368003222625468866255549352265754203842387453846512914065564533889954706771155782278414242205253557622951491933648573722763279926459585260191035680094719611296929622848177426032007322020459637301285667165092086601199793051833490593020431026587196572312182573498925043529050818765303639004887210347637579857589878819206674169832073297488553297257581622943215837503195040716827284967841873792743864812412428792345172555771197480733805684989241765518330318330206835434606217250220865733885119188901164079925871997875304512774929004865528192516190961884954635511563096235862658368461941761368236568074486976922271493269123509629282342332242605618115705329350213482815677148790212688688195463004799577353817378633460427294120833519800209107466623986553228383198255260414931800839828216123300438877562874801604220051004218446016485493408608966490226855141052103052673138972581033423646447509674817087141732604011650601838828886502493083818269707595596872418913897436494929539412959517959265709875854547213284743644923280695600052746227183045473247995997482530141110241415268695737534612031514686102001992369439468965891189380121875954766268371904749710102511073724837035355878983272728593763669700301343416792809225288965524532477254803786045662563023580627604512098801362840929371040473110039762185122624393429898420580575768978613984492417600014685245256685875174041386473685117130760951858939350965738119381537274476206232244705066472553260991298009259089373611820953543905848903514023988521239220779863746325457908681541877826641826752479118251095516841831423766735204092807333684307485204218976578830337575741109572870650134167733071618944432155700094236808228957536614877277509024070174797822120767149727466036867437705600970159240531063163102229846596379345913034264068272707310795906173302187511536793830565880548538594609710972771568148656981034481435496205132338348874362360210115381045866749584450413967581814761176312025522098848450742473758402780491636660422844892588689222707597689163188390515773635340325766690767711749799471646509556812490972461357830821539391059118116560293524251708663274773140521667097983620729522567221214716344463828646627992275094574663113632434901056612078846389720608505136368231399013333190081540135355452621190089291101135753486618538139391253758548048282852818859242894003903926652772009564851918440212658959490913224944412306713473298681196893122374554718928366425034427509907845532693242800657209371321920021281350522617420634073923464901872406874955168878141338718827523862023860416056805857655593728047121633210894417891762543998368188433629329483603831710139756814608629973158984886518379416288103606071559944263930598519762121212258392727613891536154836483238811483325797420740882697606449914507313114718686202752249342467717722256717235204615679682379631762800442460231381906835973109637633761656650002397570944534320917663150700360459424116540171085578798556833626686999278804295660988545644686837696288880027455667406056881457596257543617239882887567491871708696893933240476354818719482317204068351864393997262131263319335960595224484551271057078267387952839625082460481919426645301381969529992418907790966226847198103385319692489286464935282500267007679709617732018651993602251275338924478621615124140137076252521623586351876916189697864848289922469038204305212114974014737960989266829359577931085341361187808812109322436114471178124327180642281987228292202214853609011398206886241652665424715060920773678094437463041913617718030203115570383956884979607652479927876168189931842801413568166234892925184175326341903970908829457694209742442048699865121464350428713801087165740107727544414341145306303288323401495720541552263542480787062358723167666646044297847269490279513046887796159063836991854083197792329703630396536817753365200688068152665755895886221972462571442409330271024007745380648589495208905742679121077555338384350532900060218466650324796214925176732106797776659757031161490770491248824246534617180662761091676763852297070199451415770867135161000578364267373709108714850020696823764771375750714694480441923677521871398085193503190004735060500763417515588733742906022089403006759233726648796783061666362255349209826843030742178922890474876928869815550039625636346490266227554195815370591951429309293994666298443760737923393994238753784658968234131341221273544306973914231665833496103137562558182014662271291584798882922791497054892757861672832375618016246031695513384065880348767496660930721771722023117170873139443858146984662777341340300019063222431658031582021696252604225231700773484662512701916141928164336211663227436457978818959924799224887016834359024820274545908542903666971663491481461878834847087772422785978744534608536391560248265583413213802729218339716564709311842447277088130702269201812188065213757371612447187757273163454827401778175731799554048955100402736887626578193438065530420495484308681460793752375230441012274142977396972230827794679594148836088859680291725022454925476245594037636393220445185138858256837076304929183358518985758851719301965663301748650826624585290586358187635018255879366852218311334902386591715644418861142642618225222425092435396292579049630129907236967147133642556604160173441068004741528396392639727779914421305818344235664767942772187043967383635990491999473544263265771835116526666123195279427839688254457349764865429134510625165464264115769814965795163574147162192691066474047883693322850970646342399034363764058478897095475918988394231843342149951660938529659875208179501884456769271741679868127984450573239048279520277338375060866907377742947136621284792300972415087501008982480953253416805213137113421375207801527362334785898050233266230079310734895176163563031166162880280515306607121466399536912585546232855395265304493638093396997458075437752400182573831023318513948030666437670611192686185134957428333931813188118932045500707204939237484442533909483884225353448148744877949777820507789819101464645768086947838268280179150642404346400467383467968727216065374271055570279529510290725813663183640443600168238281959807856568835895672623929715392897528468205655900420745780072883249476026990622657113846713616992942048615440752199944585486909916417413442587617241051333863777820876522372991868184573988755284456039511969136006631113052946864939764009046743742114051806696974606332083913262694337133579243481800892473951187549519618962339366406513490019530430926303003925824518189598842450395501824146324605869967049990535160734611087718679019285006455044180753734656235697916859747473694778703557482835571716770323468054870778385698689597468831107752516169197580202530918612913876272111164560729224717156507492668811865053296567653606135105603716168831869993350638063012140602704338275197226048227294072128459789234900997070389333853833442772740146941280350108481140213971713144447373289422168612773019181121580811483437655408250586286163944555894198150448819278553119054325822590651573575379242635989511303225239231552078899576361529329951777704513031120735103444614838638288329297408419090353250099897713043885211569416714467229365890955862036698311138648164652266813929924288237638824452881384964326103665961360161714082739896536401226898902283322175194507406017514011994180663818340754193733806380849645334859954573906648528793204039214749314679691195531193387211847742251311182447005787806844342753292374559298088366187152442881521436642406770817130849480570567975014207152323004763283420539092124833332883983625220770559894488961333916778581303642950735932250934947753863845842481584912816937701857180721116198558841593291259474266094520191128944198839281653797300596736908641141798287276309691864903863482365152954559778416165739496068188539339077878325627189549078560830484946584637741681666382398674080236672023921776223044280869606190606817038576878960911213248954417740676873751194273738239050173045431135081252867669495486400192978023725599977092610920709815624757304353956090231065816344256338321729001990368156156204109915347672050290221481668965352601395660601330423828938191157323831700920287479245779546062667606284819485330452665883906365858613873084216034897506764342515220215626302637495167397898223150438528652594118152695984599359148669177832560528938983907016070539851686740023574052196463459908174110772764543892336717932837108424888125413735810556510674622388154318932046200393481541595666674884306651452428637867294502107486132891302822484290476532585783868309185606346213361232100497855284475777142338972048305815891388132303917430313594521438819421396730299123923677150969718667942113049998650959094343673130594956618535667105928177495180485032145826131941072669617288145727827764788811390230870174995076157374022039098247032983314592235413306222064972735439639143983683529974458305084395215479849605623936371707029757720899154980210896887004403859031745632194225393739602097164085390988378619581567246642280296694966775183762207245802454192238607743713794268284375516305834665672670095248181505451073328321908624762887708559871257965226743389391340078741968549993773445901177355217504782068436100020181337407055752198006188280606655852476709845898346517401158045474038664696070651751580670419878571904155253419293582067459832556022605412354174853665776161915645784499126014143465854186780183543716288694597000515460156663777711379783380292778009344996755136174826471903392320039423378917442890837383047330110970365908372488866573107531574530133630036709368630714987248195527138233360957853009245027182278348222242296587426623258902114155702384456692362449971193223310596164075668207138621254778968601226779702004399958950448662758771730064843535404415657144893605470555978794619478757297723339774110966281166672731388443181250277299289804232987072062972938579911144000410128336800134146966170956458163991507946697302368671181859181428769920626240906323727120795105334503533014935843587449778091114024620693775960596038855662700479506447743830211955297108179350109323669539672484686809935303282747109140012901826079243645549831357438424278383053057126909645168146214746324810573847521016149398988891935492081058481453843140306464677641489978417251698068769427597102075104648604454119327554317011834326947032247795440019548188310530839322241256746116324622881537784616767035045387835247964319962068069948467800368169671511476707814509850900289624048463804598039901955760036182776611048849243660749448089114609864022520469618439962890578828125329129911610775588925151426735823166701227413814150565561074068592787701933233645969686300268367417609082100018945704432336740257862065316292589643399854584196648385344266176880680033142246012807641171601725023519957699277005883542914529045707477302700150305504466963215097904190834303457634593108658651551483588050041960099354195512476307888029444491357270290903514634165823344073335949402849451322304005893650160732465801971926346059098333968462711966375570308565436800033833316877668232930942298821266435238289314281283246351560342079603281997521364844824076807137871202943764570318309838058452956847254410969027452265277142310562996261169693138052442410063122613328653408750510484101219340536882348443292423490949562374351242847131181768849364455132295563499978231898050398980545646600017074070054225189362091270841390022250393424401008095450250250445145563546703421675242821116052743708123284848732207823844038868359288228454025365562410974810970505087128487524028794531266987544340577905210300980834761082108919820862369629289372000318810707522922533972073217351934343468556032957557061806731512797588744606438714221224049060194017181959965043434377742546181652067981063441348056761376772138468542907892245100744329474721526674213539285557292058446731909388696718727875043011306695493406721628572435473249446868284651701636419870405714990995290944872545601633360841880834786743012518905727069137513739779591864934626841489443910789234267358970970198897516725864263138391285200625192808379594075535578628181125937028360182561435250901128344794284347506437611795808205074442472286898693830778741002007614263879278099345106772510451658651194019028464375103603502357762938265642029288562830388735103004221690105490601478081083500194515840812931326554232435835648598639608545471429179937946766136585013682657915325472486346274307598136256606234234005691099837528623708714141530970773773581481366768900508177516383278802867077747663402886801659515942427197057837608850387535424363094644270534239354331034702572107742642724711364620363666458650427041641777590615635006835596280981513321236653227655104127347797439304889382815466457383615334549729617748594270870944257612718558633781527658669654689206169033743874563394099854871421337525991507960909447503753614926685704408025277596348907462942489255980353224708549484429858074685424735085530958506261459644466842803002847768004576454409259870774225415339762278386859981703482777314485568909555070317695473611318120670092331355203451890477410964043708406144466154698031227055441895964257451398400090735567772732885718881079482601490556964133952351508793027568676368891726631831608812951018239187380337940055555351904233677262411093660241383091306477909583094658635895881086830792089639691758817599982757858411818348678452640278964021567132202929019842964880776034883963519657236937366622369036218734230539626606566166546897899055511064768631387943929052179946827298561948531785418283833207724969209437580963821803801464677277138177269846380534674633683617846760503914006995531801155351963585058460856821832805288607453648425353825430558963339530213077424419343444248731990963363111057644779679353682226757095360069522156073272641119355384897610199388799962924664973424681405538683495006450520201757578545081271059429841612092849810277745272188117081641071642920146872151872201714587178630051969781159919467765314560629607677289864268781864576412631809748014301936785444008961512943609356693389107495864871051876784091888603018882082006801188979275800082225231648546810738546917704723363005846299739798149299079600973613719459116681535689059990770032640658206555529045590862660166406323580743683863432955850228649271851885329226204107231082595919196508184793322596387920815614252637047308528638046190103976350501498751949271108106435660031540728401435171864199772319488411861713908434422318236150545771974196197006353889304528373556358393500144663172215899087782350571296279625827010294639522613683902614782342235618811242920589955186990392837339556837531301049040687982815144654268376531545321019732943676296059356277119366719402537843876218637009569307638028361574090445728890928735656620305158669510973912635179461210368203720542529309944982818156628539506682269360633428962099712885749545525695673945714018038500369207995093991496456326328381198092824219608345342813708072353544236573872193494032789490053407057117401306332881281387306796333065562168788171062832034730479448233940314908330981718496146966519013450018788278082508345077924860901213387620499286685219778330062824058765583332645089309239870010559616846710248172199213232005544869849486678812220999602857837483499860233518016498697322946734689752205100633239998983525694962557052998033868990504945450940180826080527648079329952419129017268927250927062785009309569468844248740964795346597626358013274015884959696045775078678158504120756724870992556127567243164812960462621001121699431830917604032716122261639929935272460737326686132926044140303331806271342032445691386685489535471662768640115376821881336284095166578067598762337601628572762062049820727385965029877448616002207472559273561199700796599147418141506896006904263878063626843910267845692864554214162548965065926258077093584742183599137835168471549560706191403628350729385596802243040297161155523261785359214474478997713065219030535375587606850755514280984475609127949130379624222337851120208445945884578956872848266711040475638095854792836866877458273709904546888921256190892931111448360468497836522924051004854540907188294654573978511996656335339142049783041615855509011059269850242814810681230531919945969787740063660843429231930102249629098184192478358081483279610431633829975435649037035444871018042758044751048506231506022395296139481964385109698861323610387801463683767973074450247448729817832733975520298946139860243912424432290337146252994472804748720931543484617094136879439866947638759402199652334909454681435468804272492874810708150049086616576632332154566475732924930659916667962229653507536509362496275473449496191983759820710610699552024003714389814877997239200591641220206453832298160147835781508156654884059541718658133022276429263858213826718717224455755223115321703858057903901633240995132241554029791140846282024443865339837200797740669801623156770275269030633317337233530142693816805794215405990848595488028385763428678379356149807420046286777721297562951389107000323371031273500877613708689391023576849054590453255954074020315586887408742556419859426665411628466013559425889055312082364566578449000419782550375977419932891277522795828982538398913590117901041356749113144898441592909082030456194973050535943426538369752395301431561068662996219005079657068691467465837498829215318544191791820986671676280247312387103259162803279815116096647362976080759522410641595248923774726814341000136598421978293995690784477196972541337110912492790960648577137516450236127721077125820475260323629833423915469734505631763332551336448033667004801074438948020112913618524877617016643331114050952876296160556174912704125329433394489240315200583087104465886290427732371177295139027109335235564419778243648921967379809598661462093127751453669777922421401747015576272561652119913982557900943825958022865807273371734449131547238068047338843161730146078800824386664350478518788583208299236182649977933745046808905818717036247558318354988167979102494369364700245706052310969114647213885013664092129582819501407933795114089966878085882017262793011238963907091832396197283283873625832603734373061467440442647168856021469877129806430366506990038413498005461186378917191200994798204075358374289143801100874704512550927521198784488392602047895886187802216162782812502012340827499938544205418832135434820971896411004184307706089250794455441279169566596478415694784910976662087406027237683870482059592918444564310786121687509916046558279157366745970824116621498056025550008671117265348354797104805998577623338777977194541515792878412862708940410761795828439588038834052614136767277764492506327270789012308920285334801514557375358398954787582808159822372833688074635563859268340071402919469974315303684694187035794432422502877141949958231874128524535160736845326299110353180651792880901107278992135205985642902374493043240849494451260667168496770116417351078296254026258667151015242783461594002306695997914161398715585139979629727281884479439966988476889469433662098353278397936507826842422319264497750052569299499794557911018264150701135820768027856474972373371061366241108490172409071747546653271531220207801654583319391388578054611287635561037986235010572299613666165344885362669093346698737677595082584775296045792992520214636518064406707165749725618807146003521720715016275246163374688680780044954027961505119234659939189675915476406774136657756770815353085905698178834093649929545624353519445896199744078349655330690701139623828493356247041239590492970909283204021148460109123458092694295515160064121515357016570670104100287426301134666398246605504559415312008445988515711878400455684674657196802554907755061016581133361074337986439967922925680680485669628736714872955659842209086804559452649850079715654978723110650077710651828437614750204940576565969806754851696530590902041249800526086820779189907864675191577792464937760355462234454970098737269885596299531976242896912669830326604822231097902968508725362029213936312619597681908903564708003234675286925191075747505853605656608984991461879237285410351259056049819554497626864599096765252840625950399940547421744252533998236832918543655878345429354988082040501848366569505536320921711843398074441231054700957713642470346458075776323439386791247923448830324901608798565505696665722281560762739655342474519594017170705897430632614766466725389005396365094390161961949674765065566992663637721303122434441510379122949167061409330041949667307992895305656099873204398926788766249123063596877177058010711334502330087695498229844412601679095113705317087793745244944300986746159796921292383513985454136009461292380311099733659000025607601301000048745440617969808031271041920663085448579591678617570665743888659234359175275787050250761067572831486920889919703936494505851843598375757328419461528901930367358657747228493109178436684332633681901730362803024110316426083676100285201344057435896253948549723826333307660203758674533176492174367775216586826069820433598860793272050382769328621015074131847103494724384856030142031170832003016865917332795172698656112077713724187915833398690916428906718786313298475193122699002825066717356852257410223963307693798261752456911606466377741480286452190667807570993849696321184359414311973639655878737950765727493509713927366930354215286732213270787601877706811374229885282997652959385306466430686862596137460851842111468251255761352285620585001558962727819450977658373884844102812245735526874767264470916973463090180937778446492144811426132476660163046621715165111352221167474486649098584176351157977592427863016669700323627877874507333015413956573239692820029061935386132847367922218179560373748504266314841850518974044407128520209603043246106193421995710859275984980948352482632041110183546785736717759126522454570100467454936194227173051339605226456511107229510995335234369115127813893140835905168259231070122314255255747749363778546776366672823634209736279000709760248474423696292558460268330083602010542568611883215595687577653217990848481750237455201100090274878238968640553045311575931803593962574359755097571776767928855825155288515223132492980415977492623359809748351990886769724712722190628069974814429317551661712847898454984371827122780071119085737410615108084169589650620517722254171135443866136180307304361932303396481166974351024712041342016509475426023934410378839675226341526923382349224686070976021300837480253827087498529075300909288473764408373051450883136402892116970067988832337306354849707007736704402323915303832308082324069225820314730804465916548984778777479059384366061652314683027293650694947657964556895431971053423882662460855140826471375360572303472029039793062705076962426484203047945386881956219140499772549153855320265466952466899991715216326668449477779225397234280346863294539239727887878454203675118184569066211714333081627035475906737567349858661219596708973355292678139307768378942996495720925512240430037512804567871652916490510810925406194776166018923609147834720350484245002625986271884496807923353969506377036915998851739198555583093608836326515649860483363823363844860579107022724711438647337428637466582468084267209793518531113684383270934988397899415050815563233906936592181529176665242814357746573924248417159966798846210121997173693726408221605739023599595954437597598147779527881914813811375928944733974624688599851507381921314840205764516897293545093246355063040630188510974720085293477282324484906908562376361166096362191574462529858428569854581992577829418047703055898223521918414738965604012850628063073238127580501827058010728565979187982802502838038522157452787952584479333372947251236386584535209358725913249461313571776616020727340498099934419640229209262936546709720965249163820976327906892528079080259812373636856966516534261172534033896500920017497334302669447370450636964645816144423305502393541336035755703810208835416719801286560678301409450958753607409254760258871701194278739309766255280704249851876313569056394981520089914127134714098027711929072183251685338746943369198743944368692990801260937941488147549823527000469687770690568565910837529127898184088259877299718067661000906322909840558343310920351156333498213525921577233358993095666851762453394990150158197250482922821155225823813547803673424233008644600805183037413224503090031209595786131645301688845044067937674889566661622553477809290619179218496650050371805816158126398292325573082113037063455299520733475439683130067531204464726620326950410032211926333178638836085446819087016794976096298065612405914443806047881687923514330445736609480437666612358182081860072378864553188813310004084452274330470838890243451481033599004519752598251610777221757902548579989729669826216871276694989812370699736336715501467708424400473202164203251205624878792840220809214695303674479424648762200289941420903203616634389845314725840556597681480376430581098106828485699839619140884651378015447801308701142078499259640456996290887585247093446101863336915218445050991030750624334861344907972928470408589642751154717491124558741356989878460107605494266697587869999306712355464751873132638362003485126779915584174311528694758881828122802418517047008777222132281894921744967190544083380026631179790458725583103098777843271853854289162655528621830569123109407025429590324014558242237290054371793798550426412072902552612637663953979777247638099400392160198521131052205120209258378473364694850165606341417380302719806095965513411158740740238664880240410581300665622834248005464403872886094713903723207444709382523530626187453639128489837490830191375475141881027520559541254226266390127616349580750490658632641261215591577592244210235943938918112362145542948076806523044220864410530545621252960785429912669517311339731966026900534168155562492949501565726754659456735387923587615605815904618598090556212721053089015027758765123746362621037583671073847268301515810848259515723768214469704592214667020728822624649354981613158081588807297313818895075989125083701285721964957967103165301944957268234820618899014435726108644522061631414719300903825981153876179013827994720178293660926881183216552817756006282450405457598400821660999258954443473871195849153632234571818931450333618688244386305659368655698050843349102701409573488373143989673153352473534991831792497632225681177983812553557163214726153723773218391516160732646371024243876278684472969084755345319037007991326078831849509850340485215114903164567602772659649525194877214640256154051097539226627754238032980378931848714714952002439101509964509996234370214755581487148669448660477933128459442240199055940793059258143898533629635024038571087129952944192020667981501763548800253350686837808763427587267576153420189033022537392999497066408721537062398263752485650980989018559354975570818731609251730947461124094970892947674666304832674297688624392632528243585107658738456079024833606156743722060860935931739867796829223835579593932585603403442617264712636165697562670797929495385570797104386577560317899354990661103033279916558756798567243616210728631668943523755007213984605861358516942581063483609891640115796002680989943826720003803832727484270777496622129129268437435384795159815673372472091280084268121460606375784240623058652219871593631907708852484402728114769353882349157785494078184989552809411668563179547496314365026116318121472385445521720314426590526910869132204638036195054068427159970758862415516012033537868361139586469964365334132882975009330832465590964391450303963547102356670740036485485133675529780891252945677268073733986070622941117952549760792038163180000686204854140406167221909960642481188687559289266653674379482715134817880888228003747935366703744152920686811024806096972579619379888304583618476413772074242482853167052582383284092612130711302674437531583510237957846812513454851384627325517980693224135138838204013620170232869692380259245490563015016418674963306267736208612940957900983537249140794101105844569118301006105559910088867091825233227703206053209177268608153968939078408184705703396332218188670421723891989601991718939011721400287126563914866448310514489811657550391017669220029924757816341035015667889403928123850953159149247807051093362469429516612193073227148971207767749210902971247885058127335713703062016718571948341791373284292021401179351483137629199957266078189123911959525793583182140401938651996124790133364147449967672043844173558269142278817790325861822155376090073682000835764297211490873434751419846858298492473220752831351005416947434056805392032520821992853363923078005686310863782015332188881602012704736664352631738376632354073922203236150105936902399044547947851743911017271615624110837080374587371080770090852999270788544716049543393467387067237988619966869648495936536612123312719328661141568569147535737284248203752054729272773715266382992962913806175940718118389657995837796950853283480517876814505165374447196107961247599781409853080008336225345750665457437053619122971046691614420217875726473820774853210880458394287211881328625861323158309621059710504037923349080625317866107545195923520903585523444578534728349226978096228877516303683910564649237004597052428434725352500950883863257969346389786650067707210232317085641016150907366746776565838622475267049887145705175042544870875800315582776291679019183137394002968292717572085009518552040136767996704063144119364165505195448502475881376156515066837972700052598123458991417127629006614265141382706813887394613532833928167287579642860638842500348830103394255130622469055399519159530807631612744417137389778649946577735471411877348074228903344286374672109398813491435222267235905781253297216881116927196400382778268445188636484286520792717653022069168620784030736230501893443156114048206452976271699880107159863905165806951947438021427167691504102935653094008585059466098090550668658227724785293936759304809487963815542954466314296336519668002492418954920347761615198995868498411608238816371147724700800279722732959958875055355449436761134782747676250698074632873029786115076709859712030309944019377977916690429970524538195693387636142026445375402604401880413410069552996224623071403651736264740187437064053775065191235693686912380897151010854077187467240347447062830892733149672421092379866083240190459700123933213581229957570688263196945881871402488231024095737436644476958680150797836282845467916187163431523661507988938133480111662417730897044497571772492200616117620870778210505078896498243875249520236376776064374128239349239749131475846479883333793986024124791946065851351268561044987795684369425064521633911562843233996907094923934631162868630882886614383530540162475855261255457667984869864182039661345442058727699149340666443373499974215624560734463889776551075177520737462138262602155552106783155706637388110364189608863130206447820123464533814203945229386232369699827121453473708251772442622087999747853209504876400728967433919419920152053475678842842841486442645081970762440315534375170028691936489417061028923474267715897463979078866374092376084082111122615557822453856407152406063952113312251332669715082800695436894713849218268682721529815760034952721817643214488472306337618906789866507372763698971466630489744038884255245943479012427705911132544536226417833882499204277255074061782581263108445700108311169010202680803748596769085115477389098827284786788962957856424032928629524080995751068427446275489174641706850551807672553608960788470726995145272181333332653608901264032016272365543081845046884466019791412337075570706690804684668750198174320536490495435521365054242958920463045786681182144285566689520311292394177619285030569112554331824206227800370874441515499741708373536525513045482878642751279050431292761469399756553654648569672153583992638428358497241406326880624672024295263888274823165600942094114300172558430340959705986280484672147698959979637479822550331042568053832863810943971946506385424613320467615402666356099087837527807570605532260221379578730450204439114002256751082211728514391806365984441856432433575034761586453356607915661902231924846391307897593755641267637937010973140859690641060900926995964140551350840455618994964566513573433293549422581182341831689598349491813922848831124497843428242706836307830801666084183368240712785835402229097745328500805912365636531540513839568686145704390855788271556925519890409361038738939659553510390280045159302124065966744095808117403929102944628615120705326524691612237889356562040896089510077010537985739205638177116170171126291467818024277864033503538533431562734643541641215801171379357054550637006370302455821312469008698831883154255452922114390367215760518617056133274093103768951947581422827848741976421589827758795233390915815573053210811556033580938160148082923453944106206069694222739944762221056069188598447902887951024376363336284241965593775728068702725365014863254863446817224915764524610084323662026239081175129073206274066898059041121012671414394881641749420925192300373545949770132888307609184716762015041909234225632760692737656068124312686145194827857786719054085697662591107513310093245670607775115045712650523483852388673884100602494789953853266541566528882542355359710923364933994000802442832883689088386470737216975553317495128001595537218106180970906559045259701837238010502782335501352452322326473807383621858629825658987489156769237729337102840933900997939571491385798200721636436174309150144644877560976176395171211536600756050763897121255499605873866168519980563867028513440341078429952869365444577809781734868330375598736955177438951055175193850139954728251520318278835563355049219843621659505430355153306796766099817083422312395493058159901857748354756862718999624771504597170433359703062448709081217572427189012884773238916515820845839941074830366228913578722008138347666126533811459125609381313500722641776228195199495987539006925849355664984215921159845384046281700110839217296852433569415998473560725879474982051084576396515246138681782831427132179343271298072956799835508851410812880322050783506266128875722119301747279176567542225647612112089705896602614420852606721308625639855561972749382786908796438915181347825139630691673180551667045319110062085401553816676327389257032380549636613258186015965135137051825167632445372959670013742949973663812623504863996107014968049353797783211775707081392210588909401389519809166037759630015216600356473186575073430209675966399242578951144676890396828466874331797750823732713298716784769760475409247570314578325466590092167176786446684026879891679426748462396815783269410101668248726388419749643857375442853084016411647470130347631452138959866045510773642118548525084489828967591549228404163797637463208479662110455407658368888166681415278809210758374478329087537445651019244078012231230407555857158771257915587523090083938067656080683277444129182919351243118375550379551222448036744263656553077802716487201140572650200990447769185568160294952569395568081170174853770713412340985821057884718541930364158845122444977995203944927266342452799573508393566492036483684190154376833324597935399977553229777759876856479041334402268138707295578210409198927962977527727483900204245889113910670699726297131316470423310140169628376588208431319168626664200265077075533075858460970971741228769962474401735107177841736470856948633695760716641148023797614809854756000224769003744610566644781134163776604438401206805907489856642645795719694432399191802411944015676926290753615846348570937867452604074082884065499753925145332120594569519730173329156056143021217860687691734617117941732078675953536572129307352006482332098199649803611690503222829325428845351573835490648441859515926781143292666987781273699156666926193959805701220955143718362516599912154019047682723679236817093541809657370678349404779063126206712280085100891090127628625447141051139024523853118186344348298350664034705684159955285498898577874745474956830154485145112123955400970472464836527106689456004190675995233480830460789770946042986962424053022962604393597664882328215699272519919395009029976798122759286734355012286306978715245129721185984675200509359499739884324855903618118348912972195416668759696661915737520284567117387485938376695623289238982837517076189608498050433973795175148396047999184854360325118448621055056029612388274964436253306312842999357825452692978875607843979739768339214518092599136085794541009772140375854435609190586542150436079460215101965202064632030602132813333194147190594630891656411859125598967507072037488468310817125191087857880240671043872333213367009559998208100571572214173346853006380279750697510974795485682373537246374868696850936705257460860289132321284358277637177493042006047705229751970156067408456248595223683520285923350167984160169611878328452727508656950771810786441882566592774603721986829490228853079445039322012697072507068105315368048493764669171455717365747598805541002412958759778610632974743858129387482928090305345291804541411764182402546598997573313478589402869294663416129207880050650183364934788841688242168363547642421079169962663445224344797517046163616849361262609950207275723047488792937924042586754234747308841284402609484469202429470051295708346930672233015911074268240461478284288470610544525027482377243608317727849475392644308665312679645069639797891493728229770230510637578291892143583468743592683569936003392163082057992841184375756687142192961478296549397071461595824229051125374127974094377327905356684790106295499880337443848171359222456715364895395638134133141606940835987005024990394340521568262766835095843688225997174662187999773943612365043704494793215102951098493145911591353048468706034756530391785905741971581128100858758341776410572810963365496074388259284656146735430078831127943131805487138643604391339968439626121295936026757159624724360945965427140117906200231792286182986880631816710839423781538789981111589496906657035923830750484976068273228678826893814162810222646757129381483940146597587320346307395577830278965799024728673461627375873362237937943873980352977196425576759333233786586075058468897610608910811459240001726943706729235238572216152025081096373241735881786638998534656559880486782885153226631878157550548116118341051305737100978274516213937702348983810014861751392430492973291618230013270364785739614090395122798152609685532735639494729097063409145420288740229409569551116809084065432388512919601233451065984533581860690445288222206514725260631203181783210867932127596119634435135094928925882287409298818316036411925171696515227452661501695563247139425025979043330956643888183802269411307722684057906817996536905667428156407316730564662116196887350302815991676010419344597306126572848090506121410310597098408207128446713068272718680343221503333451561933983354892234919592198267093857022499648263579404093026959922819104283086159223096363549591994232096795217465660363261031351106104941779268019296337164629905155837899826463779347606737873892275287510325303492974869976597898792119941270114135190424197008135531510653448873768925740675919118505172758069122822884526082757201275828779278968988735748282101229218870002199052071711896893903377741771793684390343830165832642412169344238038076636907470567155426501709461686779321163069114533344658410759576219202164000469339413826289072605532934694130351029813344813208726188311428612563847040171656068680070591275237128001748309654710837026316289009805095344260445092649682954460871810422140395277724387335774690822216158335065801629603786386701626820705372079721248200131312614814614773638912808986510011758705890480646752051943287499993648904684902023626375767389589895574191673693772088178025685142504057093866740819631875941562194976187910006134470257253926049069211197138043505784382637738796682746106492153269420279768988107134926034157474457834128814580756597719606898542711806069753330647770037440780075801902657667234247948718739442163499210087347240120872770319068778441925566700113301202219339812591986751631043888139470557407408973257839532071430382639966582803326389130415255095343857772907511125468537243477533039329771806482715722363693892283205094671115060269438826193037818590491656969709354870492353014725289669108677799708885339400306451269128672005325126055208516071009491137863817463438332353980439153827761603844180710708001615410512539574364116563587497982845536125368865829347596041913751901812752486827625874695053227390793927340600313188762110291170248785954899795599688246912341000405554115972805656973071050566504718493275965291434079358337847807270372135183892328383960146817393936142676580263096412250887392194569425934917098870878318635513858976104761058097635502243775356007188456668098658415413411579998095376939141294784882075217086474702817118054738085971213899409294890472736249506871793069404961984726127859118971757004766204573973763863298435132748097317312089966476462805311168998429666749179126957885423598889418562194633488735685817124645097961760690874154919317913965618441404012432316895641304944283589941273809561338081243621862516714020975987470246478137873957332755822096204165197767407184783377510846281563516730109866181885281691390959679682178558065853796953493862803569488203655923860770168217526469261701153696934745791058114207506463450118220418094907419617804042425811950821814684386905080439795788157654344607586692525011030382582240431290353177703111535184446116211648754245090186515744986434971786960504528704925509722477096580136343330365739734059821164307150999168157872452848678997629252084193818467366760935956932355034288987167816071014349554362924527055851183552456922379948587136844785242645639382910803662473900459865492894388006495172012136216707536150081337718477290103102875484632104311099722031118277879730077119819314089866621067035836086375342108503292098790808685173378590070630208594976213094739689699921939120875097681538379657834802103982920463871778856590079518581682282769372322432973464970452867841655222144118529007913931366778327302312841516376402622767181137755461270624054812104167503922012450431554397756443138418419951677114841932780962361002384984476488802113411122226767879284572040979840328953235322026444575174414971610251555044408186620509457718969797782199736508791394802976883549841985940339846614528349804294008685127489491411636121287338093706756638588067402306419188300176384501205991322936652791099187315705792032653418307267794067226556543387487923968716145888712023255059815672903993059862752420926594528281652524604708489528961101148232418082961973673415471019093917876773124359612344935018442925773678696560453655773896276606889646482715537010773473364528144966555545543553481215832589206333809855975173483642425177479407433638883599052375783584898719779127060020768216668021075850659553177672764193212039021858415159404126418387135259072495694151472894424260363612705848727467840177379748282453376030045990127681539711324175279961831961011545811470802838048438391216905292253055400374735812187235955098275327667004202251235403088324284667984034455156875291646084539243474177187349414546807424632710281837757019911565075753514135578064224681178637892309400685588633451054749865383889290118586755724153145346663004271255524122306419999064036610788248319005889596872147536519116976261907949939031254911360407613890307458217177700124150245747005969876257929009812519541239948153863233785141976297554978535020586347769072870687313109405162285362201953711190635334480382212753097134607189093636024582634564062095600758920570203899002262653189969223461854444615931700914463913471235332399529675406377461356195746902956853188681927516606153574552220357148405629600463975544275009299058890128474797878274069454861235363990276606247954017191712109075906372030276516631490930730316401090237921306568528614656941529336168648376386343864017450873766717458822326102530775840491526662261971176672706860905544524697795301077074595132072265958559647275111230955740786749693867908761657488303710499461512150745438958672622956146293271811185290974396203437427987216589462202113874588925864108700018472818896810500859071788087693435971412516487590055981967100836533595072343915747089621759905452816626331830275931299991074792979936744951517138517933412958923881310704664044930559229628215871358956171172230594605268371575934432063551213372796524199432627134233794887765613419317091599698387574483297612384103296057900293569580509197851400341446090231133651951560694664406296239382449081451006642175525239268779670502628397236395005143940905232520746192653945692066066310731643644576911385903050769993767793148903176617997344818947423648128668260203057559450479864237054113586960114033627501272647494443772173084969051718364584275903283464252011601190199491432690486126149315649483790157993538552716930693829771289529523372241956865811428734967510187348722919643559167811250944339270648806661632221075312688395328994273794814892429531092018650358462382186561542654439750672165620042569408287757131352408181719787927051326188288454231907215642480531505409972458208779680735866532169482471175801284526167575958735567639280498587426374993609190752950913195946089976813776853425549574318790150959588468003601316373363274219705261680294713776111885010112374519834046218457312657794791257101520903694571213807153699386317161553329057684051580268692008175768335724923312954607001490336603992940643567473485512589010242030474986490263798461553728177283622580255372428212077741499366146486638521041644452299018009995764053671608999179142050664222402916726823312728944306441136117424334596552051565404998435763332618634119550967528830565069620146149073566798711641494064591963090345640873812831075801157780562265234522917014882849583078844959480523425371760517600832476421060496043838531533327320183795329357236329583836202261487301219138503645652659063845187572808016259504425032046794435665951812603193975887991164429037973468342690935281904009001897145986101247346018936554064085212661747994201688510755246363620562288002913599678052182814412702174339622653200954627492278303217624178736379658586719340835800034138129004442322749090520217527688049353818111208437615092417153907139798239232157403598079571152955984626439579545074209566202182173484109862551090153617670966168885651696024897093244760600590585597627679689066267756228752056374533895913475182153490885479173242666384168785516678659828347268304179146982096724027510028883389629280600003564824223814159177995251491608888444346898107802835542157269657200305990352512249523944288611483247373784061095839499969880240486227331025417689076603480141499646810804770146614476248467032505320840031233407399171680654637329417879211849299245195948915387949094410050251808655514453822843502439964715116273815078283190369836954582883113607405804450473483756277714921338395284714231324558415697433400031206658727510814493056812978705370157189668882694664329339610153098470841721412664392260718766351238232087903708527475877513129576496716023488131095358762491188326149867293324808027144348780789189723536124229537439754196980356045511588689115827453482405382939682619647698381167519308685952695047057739436775982214834582884712627768038011229244101883419308459471658298293101439188372349239815981770770797890588254777127073036374642869070331880799708745967472745274369033629440531237802119019626808000571927064250247476305444133858236568449580057328598654826122988380852724183311389559112518776669356207897174946530740098115410663268648213001838073392563266884294241575669401975717140949094964971860462463811614411766484956713479734200870009787833046106645562653387418611662561401345155853941281121877361087566351237636363511769389089837690269313756351314522208416062006449870796322250791378415649266917959887106572809873348734767247892439593534033581373018274710533934226215363078312779726370947809445760338061655439528128634627080892647361749346000828296341141747076735211459538402247762352640363108343915669443649144735244036598434287796594769110750814368163272836049857912135922897971606630259313212255373006939956784171213950338412470103891305420034968564045051739546287899021236550880577618286109798069563649951219968549314935154582733263870802812745739503040144676647699504545681081164455060045217543183013568038551038044166973243059174441055610194487503927324544095668038557251518891594992501740802058611523381736668737449152828302991649615658486663693627486520444656866581377673486036507945179602179356079545249479912859293210935580403778813152538508940840919084417082186806428148532048258234107392652147669339737579083414485029896270013401245879940246939754005502389648147844668654031309149611815890266858969648985213440178258678091070802472893718407401006699030671240838307946814624955864570056797730710170736917908233723197068630344067054364774857534822499894690954561711296177802824283769934649983990967853063261552040174681332175924270778683260198666417426612491695328949394500266287894222008744243095525404090640863091955071299653891742326037357697440388383934481079003250780400869350316571377622136653798778209803897873810310907021040346320314944764164504849922211192680770370753931231020139201301380270773304860846263823485824663885192245630825684079188715137810585975837664213787353666385564876316102805020758310742357895845242770645531604338526302869485310056359480494710965813610040705207540996988442179532500887449088617158048548993626599928994983821768825343723219560263186300715396561174046891095022214152884090437097227810645968410162917373684142679888001416185401680406034561463021053827194707776096289614234711561721370628488115528206506073160184480607061025777270790150626047031758554597006543990955213140452316682006786556625688672140863651591825155238204709016140352213050151810021135612425165275241770316309808576760360638833370443503176913542867824166089780584649119325415391144922164488713691243261967747577333318642855678114819936566644830475959325062095425640271356429258912548900982743422719487524247438702448318348858295009390660846364842648320873701915619584371916438691893920276508366117703270621618851115324115968039276166904538461615920856550957752227325943142312851834725331864841126295597420573841738624780906088695858230326223529203657951718754615006657830873331768717360908779664568526085038182543424183638344460019210016764877806185918856472792213610614693202634607562938413537553611381038491117772052720079170055303663589329703643679944375014954876558542521975297971748265555330738274586591118970110861148005159193158637369321677462388319766356723112594586084246052987346087763602294244029659890409483680706971058116940203983958705314028738429880917026025663349163992567485881278503892035818283792831742664392439828657631484558635213285178375524557355626474654999455401754687392755350420557053869045846465193667625933471573118765224498946747807631782025510717345135485227863584097325101750153025082179720102322510896501223314679074040552359618502067839365585109366882224410406405866676462342683475450421569558683543479003259599110669075279648956199579525520807098104545733541654432429029901830884669548348044437111503509612649868823760177694535477307602427987738201219998646667699922803187792113499650907922735030360274620447878907264403617957789944194268536135968323724788332994712746965392880646063655994494422299499773965831339076577149333860801956809907363040307667721310258771194379159668622002283954318543572049269422019162627801876006272826798548439257458781798017689599560712747121392970420441170758551890904773572194975067785744163103644545389149795854641221085329082941341055538061751759235783846299881620277838214762912699350715397881355942287457584727770684372320163524512724793769808781754703255146720640930856972589962286268727735261902582569027961206411582796903445590145342192375167096285426597294963906292450916931903069849842529714030217665901526929865908308758947528116109170519686985441984969106691661619062772429324486365521682883923002651752947668916253629034764227204953643096309526719862189125718218015834112852557173153760896478261113822194573777389024199973047484945532261505529407204810260959571615730905812442432453404506906116946929540695554919913777690762519116943017691694236754710443130724967163070742664618919389484054237018070244067650493446576475761235185051751221873601848961194695204836469511111297771027162545821648981748017561316753829754264465074356434042464876784084556890964843314424329116210960129354261402247940605189356677595804806262419137404311551706346336763306485604582304410879568213804215201491770951772484405191639076380280837668109446903899578951256882713683542957597387569867673697594102848169571915341260149196273356953890362631085941489194815690026312394520144446507420486138726953831860527364472882051610606436728365115264793530061828970123026237390545797801360393415771322155289156579129649763576929126099288500358983725393887268236818022140021765351430127304216377673897401889615062768458811764936922358184642891385385147681359403126769659203879775375384513564717982884878895880528952901871998610333255932164571387988280332702979361904013572548294273764276288935334413016866527497563790096352232337949897209605425962834588747718827920110234478042238539360476662501688903814125056817683335910827931687408608641531124673420016302711119440601181960362698685945743918440322397013443238885639551813398714068018014923853717682632864444793123174042489085184063685249843431920811467519746378243425356660566437512414939860801725242350272905215760474167984755629219945334874934428394432351418300557726181849631052055026317230259844843141829540982568728801401191942096000792063045985007567215679815875173250433132611559973310740947701018955323653722285152435675410314477835875916305816427246896230863584218067570467123303106004805729099711362032907689222894046349657760950726807827894050289767894814718216792341279618167554540255033586615752904413888448953581140549728575419423178522042829666081697124729457435319383988357662245693273811200311436242901781072352913891562111802030309887161259767625435233963818812409258451070186728531371072158883024204788396208805167263413649094981943575580418591740679369318593732926659583191309655072069350258277538782179238364382573989703754172166157957850370351989396023173469563258931487657797553183741342031399706565931200968863815655520814873886075061506035386776430754400141751750467971645929402206405750676234732441604118617562015762199029845468478283811117828854884984017564286896193979999360690552944730164597653415012748963959953915721949817935980961227195368344307441631361800368436844096413802267670687840572849512540324183312052269116872522769699555820553394248241267891911355061426564486248536361082689888432832396026516897271742548746618832376940130418896893272798114837705158159173747434851641421933049419644478225358221562927936121270167226276006538221368319284675852539539462963880467795192518857550276018158513894006527674507368059425851310104515092060350052621805970267028811581037440486812516736735025258933749349129729035861906327414090144622897251798660488294001706637601936622712343532010548759455608944347398813635330254237701387293280660918570907654345032801525535426037939894787561359913798088795432214131761541716815346935879511365991323694869332005404121700124256682005759386402292511488806880788780818161730810415529686266720749943403570632714539316356659240763918004530627305341531444018842179689805882905011471246474818308349236171868220653407316466448470101311412775459058545125258888361659347488785541535116366208565668858596358848332437603645726896663372963612247022076354442939049706423972327738750944234426493594649610206986467637869907668530648125897828995786992601659321246409378494860152430145842733276845040978930099717359713093332956775783229452062064889387837120488130808946951450237312000542645483139848878144042902815784856722717456411804109440906869152453216886990247454024976004411857089301885165064501729595411819440558570417791065580385919648371441872553716113087592823378543789574052400938054714655238696915609248787373186454512532674994387712865079128112284855882914003958760794112840210688722184758953565724179463409882115237479539827453895616232968375473864220369194057014291928795677201398265273543744401757576097648147188286682095786936490718182296405732983060229652383073176703598851395815845016159263157051948790031724630121904473693714853542815542440196755499528756358086117711832189735143265639594572429610472966278661019080781027352903175211316282924205670886012553910820237757664748546699107085741045066198703265439051710209736732844071946571227403383954757528802703457828294501893699666618292062542667568320661193839612547667906102297073197814405918022183316992651110293001742968090681337735234450883486177560529915820041016577383915410876682169366787568625334446346823785324898667002971406635642507138687796209099397815385394373650316722546501443275575218758605922272462388313924881154224914707160296975371322989469303617352969570203963835361841449641651442107153872542284665483606474342902524726378231598472861107826543310744823349840982949149933528019172617271749766764357956817741821271581549757144575460209633878207190433874765408911520823382707389148270189516704530084154870941784756040960164103286588821933761702524601889395469612307135637253923204045350840889285880081756666492172295742959794766228831994275195719018589863049048921073434678409260385142113964213529071440999788722576786325714759143426899634271929692396898871383426127971998150476326801488241297998070299081637486746448333907523804702412385041323571692977436708167794805494471206089381497268002973735969650696235644119449946988297827083395196116525763490717392184060039082269987912441200194907617693634343793844002710278870071576327954400266862727077979032678884563130281328474763592271886593560114737686609944355262177814004486072411789043994488874658652316072109905487712560639991739884200381929479920943377156099608399198776519684771527525094963931863985251413146211949944230344346015894581262329256559686771989393965637172806686164567983841978062372545724147051959467206261446095336047464884454446030957693086707371319565683159625169455491247735516501600408227929557767110128441725960960884901513466206305991153196318609478288721816462716535610831050297270562669044882439852206722273479547827962886029113305164885810038958642910391713445539287815002246986733640758393575942374002922099016576497353009021503403194465404023090044637334847571418687601692398555960596586084005914256065183195722764352968933239148198802087327605874953999404218895975866839508142057954406926097675914113097293485680133122605669570275268169168721938299876576327256442341009686626652677062658656700171049773953931174728879239402027609177901053658058329264342518619015063757851509012202206683780037403927124379876895950195841678450479115216548614320264732847922730557203950463911872041427105160471598646619461539166866531706525491882540136542632958587705968168300937342242448943030582342038312876674787311937836988762771552214114216079807194496408323136132810474208551389772048462922157924122079080165513233766509169855718674963527251265695288906779864911485629566793540182487575358252915549711365461909672083078769927099824048402886684626613320110325221994285790415368239413433905721161274392581173194638775489031872144500524692470071578328028743763830440810327100656491191314698460038387186186580356874916893069516832232430007687859518993838716354087222318642378030925734028161390830862751455268750689073949471405194103439583073735071077947560437872051072846909812297769434753586613532065226290207239000466562965256860113066714235878622818552591805888328170525987307600449070637869932308953659124138826383110796241369528095918923604989011942530905952550670698823511518676675433831911782767185095081405842148135848351980836506218192913428152456474701983904588123624833135834173708196197615460562889685344997294333879676054062441021850294626858833744397180777889585434536189626321130026069440853715443629808787809825727604739521972669205617320162308737964877613823449725106697430685572525958992216060232780306528171054890601514286900874848151460126136143819402078258514910646152193781666679022080517301619735028818104968387964054021251219117180349410846683340215559566419923988070970743264049614173222994401261865656925678598296100932258300252462199015108354603818359370912346304541249733118076231357398316805134723785231752716326151486645966743999684306988697527488103678228433728509232433296802790131090254888388822221413050506353823526373862048899613749744573835361115660084083050983474665842708655061846480646234138296143586580195030432818467820674552082727338342956105426503410334183375443490749982552626987262848018683999068581791111461493735040564194123274365979913178133221065338669555238589331369328236423373132379227994525925370626215878445330029235209616791438178759625400507208690611236455517536390058963149595467747917987828488826875490249675080217408548746470216407072833869377998629944661984383383894904692819116023668008418192723072305871255730214281290560331500627632407951475767768236772314105381595795917078115627250384757813354237026136692001050961487791779961285531952827770905747309563062314602677815652347985307756355904056695788569138745843434231549906762123185116401752812995355270276404695782318364102624019034339102842355037102865839937771555211640950259468128401208742314672100057993956556552165735269433197635902912312189528529343823732198428932761869944193029775862914540255823624216260273507327312871517442235401753056769199920267853486402994625058851477364500825475099213388264247917296718841563040770149459154666722618261367373909424170384974585232948003103145175165672463581818480739707996204530640021564219191509870271397797825030584537448445439212788376467192269999479739168922506642937568379401029883918233252812553148728471567781445813936171367708163669622820183674203459899886571761594997129165784128063127848172221275346635816789967334787506132187704362248961806058914671901828459812491879824890942885556214025646902986861193218904989636144082327249399262639729811465650591642973239277624244192656715586316703792171827385023960826794699445483737635598690157813764166604769651330874268546996648092200954826160440635814294707133525294003389970136585502178341159768965585349205204657748295047816153673655961938531246535243045734977116236681755447550904639671821769959948836567346129952052643282018914777487385670602041431111660539859073331089290216449401015162042210802574265541473350520723738197856203789254044854533304465597159445913294439270816099739619746822994636666969121338550420376749326855984150386242550740444659748728116459093407191333032255308030470299711239244696368330474730091138030637036501119568037391247621558541787326856032191224564568261356533048275494653195819191983786158429035734545221862859954270842608302120450551365674501772548684874591237634724320577400581369451268180328709098535648023119036240629655914639983531491781277227441012160476092105782568023741664239091259443524613774192174620806048223170045791650476826120150676294907460957414541609227735361899000579002706714721988120877781409577020645627109935827589300956622316575790468913380541789016466229650829376066228176556943895300735095953154493928905083791498251670533210679979254426847554258321523369479703419089083697043082318953082488668097339359018791916294783191541816446052452819801043199459723466727354491718569515040245494959341306008394441720042019769073108515481429766530408369868477471408199866211336250144734197876282734312610261284258308982013180630431866688605842810543888961900017750472678693631978611765146976027327321062675901396917367359111627167245937348042790793975361624574198132609955462183007780094285422653360592625597459610370700465838808099850630835847727650637855428046056735102094593392897413552848497237565880719480535048543705905750923909039414369704885633106847742474136881973100756229636557248993448541893083937420994171829623423170695265341304918830660411418798040205353952274176781637223286057923299862592656989038282679821136829706051818229233678536615494714297167115588169103918123093650553447885649386980549682180243321077389454369629259461838378059519236242028191813862621867232688278960583697922585930435940913032763953749779193893141543414170622790240711672390091871384333409168742268898860142918903658873636823198250990956200586092044326970851207823538870166520353787967165583173267132221712027223311765105818958031171084937927966060569179267354167659274504492156364380928000006782307585351475110205524897787817118680438523659723534876326515435766639839077505363117469801730055383449410848619662604787330834816198139919719285650206834275251580751363998438229354307057414276967579390957479010551274823958612923263448850445552854091971579809173899982649067255597846814177221508508393651000707332080534704912178389264962037195789520171726355763496468382384541486483432147226251028239470004647057627050317652067460902748907554913143262310123443428807366993401389718562453432074504567279385366983924015331305288789811188032158041323918767353659457820236916400487796695678364655360174328576031342350406293841654150985677031564457786088842146993952972869423033652071543074601979260320244604586219141437754284059698770473028358947718365326790664315904579225637541539192382827601513136868770738911190836866197999126432334349651580574724591006564946097066881194725088986415630726506515577055739055937155097633974763188814390743939239680870161557864085904269631317179489058059024870503087944360393183718566123382520855939959814561814931425274928684141888243797939019396088146359793126056240249065536499881531296012903721176198040625568320882954762135552320084717077327555050919211356068400917324309886091176974022840956069843637483953112198501575761395021505640862550125242059963963547169996232533935354392152628888655779722637241835977405884727830346001549417642968142654353981989507017739849973183419388596804627892054220658183158921323683426182024717560304171252003305721305104382121374809975753661827595311798043043007575935986000404799904181442937022395384354288684828662109569981133987797640539738107216623493421351554916049685267518238737994982275517780593090104505248270976150135487795987274257723035530386012319508732923592790373350044045480022959105525368064977471612606471109290118901372327834206718295502134619074104793854903114921120332766695457924872497603139965711845350797008419821021479507002112757229986225900485829635200774257230302999152641214110370953417572229741364511029577755004056223877582270823159777541496457299522453182601811564793690829101702391565071383946025108909267356930703754793339778020767862491580168573629202521422475746284922347859663840481639785117267523622425140150139233468428655119817917543295745332158307170600787907646203305807056554690578249631817810778898329469543821377442343371889755921122828907200548708713324825989952486695965139513322274731153899870363383153974177223740653303301517911767524562419016358479405017300289898005942611544694921132989650216203480633612563416509414821793092495575994405221456608334295152501005903196475750850500070079595968652583217160062880197038282434603893609117164411669197202856775542440024863501178753761454730733426314209570778803937751252221802169603732806495640086157962449817658122838993040952471616392733797328934568972648401798300407078910213978876539812336273774458028576097781418560804874967385094636117246873454477325438471800144612434748469891957467102114065670526830932918516637586739817265267689937095177959220282874601323584169174260202202092674580023918014729162774615201398850811575586424909948023891576186941148368871466139548224878685025102455475617318877238721435260427397791228154472641406993033441686289514874013155404381598932358980027250394023123408058594877030779947107038292362706735589315257685610354980809939709226735471343232590625902508295827716656278110464374652500209012424779942198813648981344603220710231985844998204564992888821522076956422315986530062210768380699149285651573422527055852800295037910419867402988069808890615683962567712261644941947460388633088516546407259180813024415361047774418692366575246571743064231626752810144906343073105414219877896327203587674667509197117784415103474155214248834105441135820119903279210542641552277126320988918317311944134062360647081415513543541342471737859199861492571747179857785593978284277231619188399508164582522790908928254576244449438279519462568982942414654977858938555716422367288745490724665682527923549080025885346483023056159074895469419490537177853273959454117221575312345630582961762430931891494332102476689120954812681786478334106779318929797807101932730059695039294985318347064961852719891339622693337760028399800443795321541351820049683788974647168452249887266261272482701719329995781047706083902942632748614809008071454680228129099724649164098648829178429982703896824266760425199919527678203599951472917506284823730858890845152968412527578909436075135337708109087634781335983197244179472957423825272760673173785368084535810225067636159486429990788619287003482543660295681293294115242422413810927906681963400720991572308599525563078556818528934838993255946224135729956772794353910005579594951629787081918117757921511922259349507163159828280768048040268964654807838265335097181848109937428190961021908294683513209531068234261562203180858030038909726299650161766116509711176417371400197995658254887407185122730584692131761399557074749614998947643883707049715893248840439775876086991424911257021461443748983140453776420333872246187448285513212965631852178014427991686755820764318139468447973179053606017925845094652408744698645550299472881449050027871743480788784418606825715188026094975546048977481238625961905975421071130800534638530794348168311501529796000190402482053665020768656657209918807571743539642547439914775448725236296092774087280587016271616575314225289879257416244981370699566530811718522286211642001473520468790264488061564740552708660825523704110939847264747945935746792675041593105950939559455368749352886399617052499440434667894570447361444451904072378890292249073737460414268231410961363232273746987363948008969057819298068871267365629292587150977985833476545992292374980317490789125607156630240255955234674248526696734541982890901529931904342093302995763995771392767461643061494444556363492807264408743365580300234391291754460963508574000643311334983177644325619182585990741098830595338885476387312807385096915351958542667818402537116190763915066535431020114697000353505428085366493166228902466813145164854215194196420566797844333316059032824901126012069227742882854766779262303480951792524203214142219208893970286949311055473643124316905957328450506339846283362480914278401367971693488969926630007622101429814173355625990236717655210773297585684458215045354698227376751299582002068431195044097360117929867174862268313609550710220995746603696024526271242638992916182289140947822058947234357321039749136930462345173139643319911161330491986630877023615771256028382580302755726592940526590887766783688269442941905692337155253507384571801558369543107518609421520916427630964289802384560447225034980337264050972536028498262413804330146070308494909962460229809360491269531225111071513799401001589720413994158653543444518212118400204567881219385622161996368651734726442250342391897715689307555848617555138620578937479647282397156386801606884534279033462715592476890992328107869295782125083982515962993801539469755834894301610884249528995648433356458392875924561528494903675282358675539253068209094321768250470744936186624763175606262917866613344314348535446528754645576284171973662715103494491203388284089412382664153588401339721651097433307493079346169979119752722476724826503730836542110898595060618496230078849037434937628728487494410929940349000199322014417746514074276938879086960093385105000510461216222111527545284996220813606912944091208844108236219167806205195144008731868451761882141036448036921996627399447016245793977095514781712973918504690154584445286527130220347180606652659382248749822605313518860728176456549332320325593347986419333704328581052791377572886317150271454933484202740975509304568834966020448925065385133470234929213006831831526134552187843488776644326613350405175955742740833473151629648484622653089587577574327407341607116192417538216327834282231334002831683795854331493461706809723201738161836805319902136537603713695520751413237153510424152626468885217169999935960467846321395116515261972318855167780777581726703959744726088567080077005955040819399889738250119523471898156578079905999424760928223134273395434568337571054560514745440518277668958149120384828290884742768864934386915262944934673341785082627327553374939350961093055650672473515458302703227253616126983223541942438734550152344016852039624742492760667403643881628575954533870616714017845122493245709967247852366977179732206869921165332619092447827634128867077438476633150294302385112353616536967312801251639925674331365950118638981701920609448933735040861145406116813502885567590528623753406013320258888317103384519176590269286442973209134130410467931758569805239493077233181324320616937837512636551702354155217039320238775463260724940085528325264086955258425978065357950062262709832006732126958285072156545101940415677699652869061176527965271900219434077225686966424909570075818122748019070083432736227604448239598818302328712592278506071239717079834882931952320557681753877936157568025316204916072079027135930764811910238726323763122881285231389531585658918683237433260613877083213694103323664931119631795993742491421336218707652806557764862158114284798500940959716960084607307403792747010458936179481377401043001601143850811827829595630652891852950544347318338337569191831703396331024610122529506603868318438235542225927590055907966487756174002560006058348623090398837270107605597561463425029078936724267305317600380051898565665656597954555022973095970485974790107343220622933824802415828486118002620419504325427368002998355896261809792529916222285757231666974769895584342758368746533540650011413143197157364181503525703352346546179889322840196044995258991362265722896121428878307067330545312961770345428717296117578806498102996516773520034323112898392247400120954027610231632520421914786688015514342729204467662178189881367069404118892165214485668910500155070786545310448633128686891693628676037918529748389263717067643042998430125921167703096005331350183411543902001248292211342291333919361922015378725740250302439712807918339275023669658988189975355944363382273200351570414353659769674785676923285755264924825568031712709889200355304824100580162535656716299108529369686128331827465860122310448226810428199871326730894590225219684561527727847240162993082689003638878177231845429204279375262333851186598129560811819939577355520779826847049463176099556544401989116818238525354464603275720262731581186053590227928451444156666611466835707940193977396535645804459723635617787853155390010050505695334921291920230862978429749013971612685081784536866097477199125763704628919345253658563635581187920855210368431480426110703051931382870163666184919715789845179369868285596617600702587153298183650879922289131898639255270812405743557487184819296364556380574137183365547617277034310415694301563642029319743433292582839709980937185812361789561569689138025316277083557289745675411227701560787130164275760157567507709914675709632105045714659537130239896015441714565310284976177121457134526552811183485066956007541938971043654122246534189500495397153825312614046522233775416757823703300074874157934376247184273753477221110685388494023722821768964409874357367115650989182856367659040170544127921696138649915378262713493013764012560158030123145752374438003101268482853409092307434244758332865705149595542847941959894626433212394759078251852882926464637152055918078787722266379618390031042745738573036973910823072437948490854838321632657354813694907614691552425163791276817787915152511125514657216274283498634887341466386351352168559092819465818746660464088963934453288447389904909794730575019316848716606799345472382950724475298771791698677721340809838622567440335422853561768547168416597192597264175201391160094329156569113530181370745064984743286910716318123216829564599246931774406678325891969352323079265696674636655968002465190049765262927307363966139403038123465544557463725408358082896875635557192186668804045435182193721272780201268729909500071132822349173803385242963510893645090327478447789408111858360855200102508757334359893638639248991412542807280751546540367600162327126097015462381803632424492038909426473217475652414313142552392771546145003433988590346775102484931449043777022038854697087725929493200069926564036858337940482040340023135825538258697961909871695074263485264400078165573711949938655945759779549714969297692805693441771415928711261066364987593868982514098353808690157993677284536483642301792773519521725938203970609146328108023594262194623403832797171662819144855755864704191888314151234570082982655522287180530478186536105877526388783009631551728348882953368181802620888643522316321416995058242208087538665753597208198112518923838022933702843371691805129305438822429358050381277641390310484123746449758132180254909945055022618372338593508795923537307806830854632363052365471087456990324524782002241081187772172797144579410209636021354267455946631763553649971570055129600200655796785173271047906344195166178307179871006589736346776215559981146171931656019923579960699642468561751698456128017292254874679342861585017444256853353934301009538073888310806445875169319492900864321049539424273952320435139805292382484043609090424304846801478113115192532531737210159706189604678175545946978673085128513072613848534519424935868227331161836506235299422322302828126364157447088016643684297063806477065492641158669004710641712509261561919216928469446397238058914515190116473827045896973317432196671717683865867833151881061126490894377463014144956764760119795952322268912837173847077829489633776644657597733828616772757133949258528658940197468240894246695736316530151100151266037921786605875704561187210400394681258013117804841255357427933316048519192087881000862173369649847435156797030311706071087424090386291857927184819530517337587968845196266892338989501207470638400450512340310589082710925610669889074938398340866908742221094687571781551072516707333937030086474074884928219181104716918284487390177006862873502168570803526955725186754062907174336278569771396826777717894755271155963737717843233664322705132595596312549648894159784876767253741844109919380718077192588950284040444316687290440024483817428681823259577113516962702929200366893962458287616133729145934187168196698416000607561868453137018895053640383063200817132492531281259783491437853096497147119073883023127755520197325343230172715041467180633463794158232029811267087768489916578253184571809149333685861094326088508834888793054771605620040707261797944834692450334029604723390427901597841388737003697113564747979885880512101403566083447586151733859310303050845068181335679668436767041919445274042068253575177264357646829777155916789651999924920025432217110839630954919550850423463685452087980663067947445589223785417472515245186089930255696298880387602926776250758036238035868137550617006453291724317895163431121332754913145660643586284909841935221692474450013885168804991961283129698991743661760633242322090354385931314257965934339545567874459049123663133178371341806047916966496775958193982850077616473961777185445926698991877321086434953978038849297794111390582197133689431926389188955058349792533726360846181211169977296283729431094887850025780112496914568957431282147732897544406068004103842498282076840574897327243959326779388138145602567759335301356096304953362489379973530757215279101225899160725753671609310075270393842205362765589501653472586794431449594505018518002869935463417734599180259382734286615679655605511132932701158741329499799947361009465120238527907739155952024319161009527710329139652385600407938992203585452207214945651983825499895656703131004798550911399887445794593509938826156657918822420566143038393589112432896511656655606689151325433932602773640917362451524672934040587630242801573126608447024075367777687236031369741366237668616272749502466183335990961703752776841412660591484217450802459677125370047688127632284510636816953728394339027365703930231785725497939666415950966180843086941023961881883933621501324961817588448161943338610535205987729615441716619364982350755229333903486186540859284748720590922862262676659250848651311260597235193188084104329416205508637131929484689427249909050842276531572076938577125230809238678265707591025096700618796014317775341813762531842501013503698675100044009063313448469270272821934333192128167034728010231597842872165528045290759230908367011549630342513312045458089322447610076500147200871594988328788202643313969730594018292427677374327395206657050205929166336505448561478309922143619394955199077284400584092346192393138779134254795303038623832248273219984728110707022636649904078922315851974566169742393836905489803118781383016256048757335525645488108634636940060391136675886293946536466956707089106373350689946396198353399642021268389948097801589268047448049071328672713858957078510643836155096199086350365584011386346938943159214415341764443619649685688159932618391346880003164559108169473621187587385708174086336372958212991602955908499601800234724231520544139901367822109917033803822993630907656621940092009460201963412925109347880377811432808710685827894052696304254553217965852712324899112756421821930046441223538471599405630477123603031526205374929499505374884071515810972955063099547172387378893498777482493852019147396979496665029765843265473874445359761013790440848171796703166387406895068483502307533421556740494855523683732427615128767412002260839192229276888934961148252647250250124528923879572284496658563324734058937839417547285243968089766427485418683541288424816000479130024922083061194005687379853158031077749289949830294147739087032255424729506111388887671749643066877767108398122349917034626100569466174574379205099385722012991802983977660060264755005784335516028855309479885253272240735040507454775739817860153106621829485104370109938453703434661010992192522860591669224629378497402134532617376264366745082123765763422528279167614405456490327640547431340051877716821239437557654940841061495342981068593995591192375894749898032827988479150596797218226674107133477337450345844251347111710799632052744719503695229550063546584607582036916804919143960759266512780691538777445499644869969806422152263580092796602109512175082199527422245806203573937640789892508994314490811776606466266932516633166517640951556272816696339934901191151756978663721673716514896428997564851977330481285462939253477633085019636812117313922970094628827217362268024101187243752011261923687427529125065252246086459111521669051853834869607469038717497185592558394712660792674348461755945174435407018549642463553335279925223508743084034119549417631796537852155002863391934367807977565606076467231374669854639213110605587928959462670805821426195939639383913392036328857529299661538128562936408472573239896193424107515247563874510488512675372227616130314759531157549398278435936656168391754395263589281672722835066166315421927355233694363394601560739996748523003513362232497188076247368976214425347293732175694198266403157910770908042797619651607421515259846182344581421889462275889693312418586817283323021377611672902928038611111086080924832676996306089013976860507343770647175475939604593247674423721391424992160502372950189146697894777500340685340586047479740137727609949054731852782508243073888192764406226470010974393385579684234000593827513547237000751547219879700776981988521913098441682397675771308187152788956738655603270661169723116595567599508221251538947222228070522790032251594607423351062304659447453351811608533362721396755149495630526933300040896084205903082903637109269477876901672192813549282378190721912663263990238609019408307449711008063932326533465962352856207182924380127772018695434810202470482882074997971245335767559240013944225465937244718149187935878436217024085601010685611993529774599941323548538395720539197477596714174786589176277139128592791394890657120763450506175022915676572636314289622728612739961630910286175686297212301889568524661524201541696097754998652747508850938563455124277223849829943960552082403304816815393728726112364455881136545470733793581742083229560699765179054069326523769523180622343738042764007348231217721582547637292072674086147307604452415163715971704763320364679337258255183641633336757564456220398216248030650702450651412536815138792469709152160438163274991914936946172874397745522459264787196403837838265899081179080149056244999963918254685949049919869583861981632395129718170851754149301747506296618297830644770351031189269678637360510339697975340449424142583304416352055322972206624592109520319763977291482437883965867831457267289685539836991845929980146542311065496277906454924571521378950691353257366869044365272789811037084930622083152866420517135220401413760956607350773242947863963801188501808179123070949882311987491940056821695377976024850527226467689483228875993813793381048864230594112624454444101652505583722848110868511525225516226529180440777157969093492303539955270631755645390498694853215835348463794424004868702960898064133155152478053023466181517501242179556921775931657039908800088813824141129580662473133147464078015746231066079083051036009510875863885320457208395436567100387267308253390707859760842575762542257409514333991870115350361947274292016602750803680734337012615442842918561975600293592900968390941443010164338812561454499987068904232606830548453680651283423327723582984889175172628358969714981541622479072515140474960394066488634417892075457121468298926509659834425181355864635460529112075792663249052512348720967699119652471149961753679817226650044466241126745405099102794195317621323636735731668994905115730672932914042484371974314565840052683838073985286959344064880899347132730653965133207538506215196845757942809025448357547119669725498473563768951797059315317094814272611425608480906738850177348135409434199685107855810026750649415102455140441093320174205592599103179292181802031236503528424397402220917482919392593177848048152361923455479320264465711855194085029360490483088432696179598438341556422176514984567270412958630550134266795522645213128592345660687740396982408930790757648539662485901757374100431071514289665705784396633776380906366195733020464364730773610373705303038475702257509992251600244180749268233018920462537520676528380025894988034374137012184307638802654784256621089435482760420952506236307004161787774889410540116552382503229557415975346558744006840483510241455233913857301729004133940330703287256339185307584036530993665415476704773284505412057345506825704695779268810565247541756875686606101366310649245213137071789863823389153586750740083846913796079796656574184716057637971495546369077165308549276249148338322331133043677272368908686878378826746210523881263868891267431530784516979175435545563679000839667549429824150594583856898037105040976166178909767677406145449725136083128585902670795448741324701985975926987407036136271434793535995163679998359741108828996748405477246360517868014221516590491850700375375787081935144175878362169578838569541549672950802208302724769744221251923038900297745958575844077005867947953977683420748936334402828390396010301590569771366435382561873315629141345334491153999755563361828375722513245751534656249916721824890362796760766428919401495760272032315313387535440253952883480732091319055706209674952258153271837162284399611939156916100772443791245968772964613475872069334563567296636000260656904105260406411016576336092891294965891380624615760512032735536454026626228839368903142401059766628855235328646849039482496323781830830885543828590161279782334195247825517470202236010808023140525129103186788312360948181634227430801281904781160135851521368904971996393416564929371030965643815748613260924771654581307287025798258379206368811001416748151666380696304949543894535753166638073229619974020243608502244043121319862317866936646918762889043159205347523185818005699299330336181397612410680630206503026422073453358739349117711035641901633248567072505475457779445807513722142662409338319558597962019262428324861088633250017372024419420916011575059863830543423427298152540194302576500066061055769942422715948684100072544990835313706712792895396362761270210336919224489500940583360392888823884713624206435415723336806625438971816172366414837346444582668247441856754215108824637423265768392502888132017669532761384961999534822088454773498962726007744418134628758288270235541713629391080987410620036873694594939002304936032377586306044036134783335505507526702749834294338638114582433012277766034454585652418023509687878798720641655419876945735131931829230846448842761181711220377319976041087776070421973761232388276865715743364042906039960122903679779927625548216629860540649104656844372678875651577815942665820369461712494344637118872848626208161819124691840882596233527895451636850623724171316825272075104870028602584380201012029237405518063504377488592761861239575687051801872858718751279780251537945581070386563352572234243101901261951505580461193542041263761982054389845398786380591543631123705301019901828905605175540636844113927271561558616917270617432850483924582525663906775693399264836783305591346600705313397457958559240700990887432544309483345344269509605139346940859633601990321078742057554365431353666768951411222735270031427385312764338196094157427851741196491304532010074178898480980553175942381958122726024465413249651548957290060297047676659100790729633927354437962180129112507167041746678766321188812768624926234221899240217325301290519688842332839423453392932340200680770140587298803273650115217780275690440732236764803741829566496127798650661409596197949084117579808380191416167429405830154624320805316374455804475301568191510868290359110634657142542235766103233242750270191753557071976903011092353333231993934842197574409248466781560885417250495043170794912063066952531360649886152137781553356126339260819465602450688885779282856122187195540409712297886075105156665189122024924434418962667879906730307407922098502666219913754939882690673051795680932282177571160921166228112931020830169068215918206510384035638935651120279734385551500719946729615950676869526171549444264650924877561308187506845568750268970548045629229838966852706998119169193868734924367468001257896652423929704397938614893386912556120395750015074734493537510960732161058385958717170619008845962849361546386011692222263540196998654269355295059201887677269862389828402501177389492942287611115538361788320751310977918422494964032664701031726959979429513278471427643154778255606369877007610673375863477021880742185198313701684171036125603962534024304253338003839885702730115849742307676317535385478606852896638750871053922372177974785836367058795549070350762005798011430813122133579126491631634052940403688970772364903504029136440508540470827766826483178441823460422227360077494438658151660555421679551593555206612000373645252885386672050075842931612759623566548404745449250214486402343380886970858200312712632876899204633760809708318466891959416744476149328074074596091796403642700811119502527481482582769043013820893471532023441621012481740095088374240429106995198271275831394857618738928064079693842880424296094617480118558686603092925590198398027073088293542794947702826956625033893996099690552543211830157057856743330315498306126384293560089525105840938026710352696559792553636699303705670389429135301474559944713628252880667216956309481904997293999047789011945951487533857945874854726559861861467205625616205125309967312958838007250816421586604216351433781154683086382600944887493222344224379181562327258341851158906798723474324143969628892014296044545408394668536458481157092533951857546839854212150650921079192873192924603273555521466744745952570533358191899703142397080479372062242353563191416588479579427878796649432327769272982702152380150982669425553618016745048002917682812093680412310976146500515486340702701636008716140656888143649968080074579232394983784389287602077599633924634093852261680779735005525259421407857309665316518781392354224988546905828613113622646826433948137874187157085312635004019279494416533827292993611555420368607336692839974928937999588202233858899043019110177884678984617457805772433242420548764945620698179223485220932268203331133256014632090740562951563955184200891047417671001918613417648049882886640490115433454635219699588968898638798137282964880858451809457323539965488571366203547781384134866370260370609154961230249757525207838308419916552639012713248227969250334774832472996573516564987790600464538902129181505685434497327135321352678723676756641189470326092465148784783872211565294525715286550744896317041589797037918581323128083522418407608784980352415638994417278838793054435335968520373676092125944575852177822609487040731482932572855068321553687464743481183791449901576502348792590161691386597750343517562855033023093477498053102679393308433277394472550713484585874059125843919572466677430206591851511398276306106624735861126678736568776897533312494119033471291556592155187058033132715467739252503207324816370922594743931989863653636124694296788658550080234884877678795065061547101415845520906958254484993541547854038940435931146487626727542255924041978008291627970110377714536962917201005080747743185402102482252921376595902414073099597218643074661517829543700752204807891472588711632708023918632951038071255375737834260931519075065384936573068829134149054359466791612755137870023558653827573121175501031564639343840294582999639189870783507996571586679062446065294700554933754501664197450424384415631512227385559811436138277189147144968486301342405074641245582786823518385961184872835235119700330321933954307499731232973873298589251814325934410128229438177322604474665951957236970491321617594375540303175873783321306169408827639784995425832579315951566878611138442533445980053650047672988257641445365031332898978634445129429677122642159990372277439982665637557322193431941545229834240325860358656957988039420975077352906339650027801217147913823528121837999222258729489185166091148700962324860927408062925765238859810949917786402775160990483274944286075382110661388994531999460144091008917155666820774550207544671833036986573958011642691797256565610182293263058140002766482821982046735020231401518714669771940879374750297119524700991508908688318179205377676885510867501894963516125352766230015773696916437118927258574996265790584462515417714096711740719822695955636757008201244506464086032301688717049908884155778807790921083144933529607562022423916201147538323130038329462712364642834617321843753184272191535354968433918025084024519602113500727114585216573946475492983440386677730671818503724963295390963892430809701424852748774732943893051044460909766579747761697886244227446577224470169893605977628689150916850310115084437919677751796371769921513527825104543033345099334001346480266903416355954675291787074797027168676677903663307525545184394887052138254206976092203720772471091671840197496297548464051577580602159333671440334310030159296731834917122961564806875317249725268929698151927491174076677852252506370909514888067662684340942340528066010221202284659718950038996499072998548717250607125023966423800681707881177218390073541298933790556101421383534720714381016279082055209992058298573062033046243271396450280434784444493873768521005081413356104647843255663583725974369652133400703698055772440626802326584276985874959294726854309924384258403429747233381765584562214235756721656590185867309774785627290528146498689449180508334898328092088856466677668914261799104741025293222046373658536907374244961910857128937055007619154764470724593130130827369597257730440526797136257162520046355151342245679901902765560698078846741706366714057439824663964628782673003781196602735835026661378591105134798159668367112796184658364219208654084862689317901820417729088795002678421227049960713705915202922524966818325165876901414538521405594490076051878218070723311242912272734314227046548647907884607463266249169500753599467734789979518474691990850451770076591691143685741310350490738847798198517447356630775119119751118305444139193943776264461930933173718922495307058605807744901488657642053647217233149156010889386556866538911733368824921084440216546156522366690281321509606485412869503791337514534421113019521950165400512381111276072658308792043626661610924839825644351943418089042206606900107221459240062419574705908479704172869261283042227014498707969554819710911194446438879365741764794120207601050384845015404152615623232914552638073255471712165607912126216575338352215410812325265132453766166880822539327374063269733964884816006883637205493021776473645307142934972739791514143801414887914937309827176517762983383634376520026262435544696055378614759097766568768276508009290995491958029393170955080994106080934028604375398340846029271349144712655571907520365458855457024747220681528907423643403078311189881309975885751084859685493990394785981776457703822237137924718377490416414770127688140665178616615866802734825565319700774720003246715176669636816436598076827303192382890912365475816077516797378524344112728312289573705166027550060984848532062871235523807167575862327402468505714219902018054766316795244572641878112419411948897942608671770638132558806555118826423898003637273272814993763686138524603584393714613319286200711425640521079360397586103469369813784600224216179880879276554165008892003069874756742887397501324005608955113207391937377617901980452151783577739915362448458741413722043945900287529079768242504813097090366192359149399351132376706979976347480295061821520303510316297396248660882549746332594676980267757843868175010017157472715799103635051852856290472725480997288254545679379667892080428903748099748951928058987864110132833399006197653576903106187212780866754210035821053404030092076310369143172719789561007142399577432778594673832971080443957209527795034803846300502068551626596834038136549041695366586695264722939029635224209477764990305990973980688601429018284968069145259794825174595580791446005504776896900177851028065505182797755788093923095308767738350489474001584918526205422826191594366258539691223551789168865303439264873641102667365328977805906073736707469439647172159306332258298757376816974623006842966603466943268309860822916840990504752550503911196897432209751388679612662742792842434000777447786401747980310081534224904549119527999465569690093769620879973867892994238598188661131459854975815527752004712978974903905051112007704815691261396061743857675824935585174518658822831924198746597243364975188507588053582156828943357473945774333430635778388703473534929730282931346130104300294200303827550580840111556545119143219063128953084930816678597278818951241677510589832998792443431051780798183204291402201593006469200273494403215058146883362824529609282063693717221648671225441186554388794574350999884421183316384192919079599913319490214622205826889257322373875678027659562895821486933490436326569705808347242239218204336504540703267873689211551952750349270798974496082928254473664214816462215761210966922185838288304267754381131204136898385705254576073421232944174290901219128530681628667645135155641512443532750247258521668880346579573176928709050828019550303114505112029602933656346907643421334445609738253216961441155162139230322518122159299706399046532393258289261919771477170647983443708789381160148322942601881250530237227972469249468968516053749008431785154122401106817875742957086872740575697881161555775564949591276475812256375607119641717830645230597642055662114313723682823626318468453854739564179564515069717530226696092528484389532662264152251206963495600624871311375212916481139277854298238994825996665554339951594491441256122213575477452130759619233195493511267174292925792254686492605756269543579172842267966060565009333141396796900471605728880486593712538463384458796657076289714695925499821782269092203419155720453443611073230647568672348250605261217303131063379498554176199878991543529498174136565946174177786893484839272328896693280931699793334758595897306100521498084968962159162062646746668748931791819622605830115858247991740868560402186592534509843988735287384803873097881413376776213852055143008868294718417061029235211442082462838599596400767838164538228138684932829208700595329680913375111489524539407310593037363711287249358907463656320171173253535453483586500562431638384386480038021150139514082279003077169106233294952533013957534652601382005053384096967930003701104661288573750571075755076800358080495428843503420621667252298998631376400333997042670369463101957768393920254858848150938798301165914593345298726927149569796851349987816935558133809096418180577791560643202650240813143406386932651194560638943112051931561281399352216882967923679875803299057629495750790481472721205803087734818722628990515836810343593787184523729928974268780153228625409531968200665784642312115286914633731934937448568166323864653313694458421455851292173596446706076622491447432591644717416831640659456948223009344897708726424786488653078129551573238176731998785792019408088682420943263128700358525282205100829443952355832790621535415527797618000839559411540817861662398002371671772673243952505184293839026078125877620884404847304642888503258586815573657986064984112150723540453764037181193323060337014972367913862693065577087834400805910309459831973964751189193957539781168228919113840573563159472017313160144425126979155780209291733710878397814481111129463565459066562933167783631216026162276095726330389295908803151106916117259428660777604783524444141513968444759461917930293315640715709052211803221651687357848200217058858981401904160656145285148037076830921417591641728626739614407893732105712160852750973763796772620567001353251728692655366424128257641946995289837695935120147954137383711291574381775302488994983138262606677878084413321565287057081541290703778842690742419156581653905876269083279135329798088067442431926081039140325075652373115322657981487583399413042642823130698325571792895946091293027200724827945819650403323639188688240306772790869045590857989684470754103858286943657990820250248716099032905218032383233935915733624860004422112234951619495013752874671869889310349976451828559565081123998982495872980522483506391997612303146289632410364547774433502454168399275528463783382983928091521799338108602939477576063665830262259192175090028189047579813489080982829746361522849375941778914467112060558172535523198742579943524369732386096804133412463844351300303879811713458238836346499763163597802681229866056088491627643426924044555621910186757065431263338815502314796965624037215391537432688344709363196132980811152685610113750687681935850162427767447269563263174172728079203386292148607020769850247704663847035965211234476673258191547180304032170801010880430408574239307798179327825700400181994039926390455156778156499864460870502975446882734291545974500939343293939833917202304663670643008160242369251450936561972829816921619733273256672376299694124242507052413193585592470073727823652076031270557889751998726621969869902811375151953882395796824848460366380204424264202628459526410583175366078346857261292541824105184043378616669073568432904962855420255828313809170293852490291676277795460338899731018021519541225162898798725664363674982136974459810605393376899122917462249042520575936209313074947324578793110999073073870102233789736428145750185952893449296189647818153856556100836166965964451086611094620261569719411735159815752725451177038739418892269775524019243284938830727131081433086259030548046617271124392423723450099601888675516104659872814964797967252676851070206889981891609637971450589129000736031535855053375340909789136567535008216162281974555506029098745859861809675780612732295692494945794013842951306052217620953389151977451850418047109491569751999008864824258073641714227894023365648349768912210538302961457548881741595113573357786018262249143113400843044134982480047182730260892557610927338119974322666261198497539092380439786872052912313117535132431306434361136198139217706535441665854474699848337684837672070348214074513877803285371942585997336990766419897793258021325520528640401559522608066877655647875961828110915593621300221865387362461558417364524700299452045103114021773680852184655643254094680142816235523259273728460809086351446476706360412274985145293372037121689963867985725809420336069556398794748853359501474267674909686475270357128800837653123094448439886648533018824421392478073455699145610968321913268016968114432795595759173243827786274898167734904403395143382820565888658053163818378475714737184574790036220069899414447015529585650692634486827547358805374148689305739432542736246758503993857891733174944369020831616075937507595081676754835507058264565699548613075088606885662596493701649509546660837993640150731520481616791066452701727023560093611423111947007438680991058560953539366091368548077407035480544291766083754117244878374266103081629942289754657291877048262350620592531866650819555267440002766661337228570830093094218205422800372148971738412133541261981852750632587009841919041054782846744383324442350639197497658933662196355724618669043597867313106058307832979188881865697177618094494862786101861944102046733011624984442273727874939880131852585496681876096466331386262379784925722981036864151908452318751863188154478328753800673250823429374826946050358368653475484628639891067740635664021638056545277371507266984390350224946144412369350059733064721574632808437872127171937640394187247841995090405230735911224042318652129154012600718923739249533206971950665488799139306505267394721238930962578306317475188827115618376982354137058156413796392187954627698374082009355241420673412701817595593355295986347872520071316811214772190101249906246069872876987755953276512802340552983685060756546873297497515443036549837015190661459785891627020848663771979630642564572875549263312183412700515600741073267616985775409795012620500986727651288855336531445090933822811946827702917947808545408740065208959253026294994682194246830602045683773506725810038463847387563188825291754949373885526860911132872200165093426821755845291562855839782904368785338519711954018161789817257896251854222303266037737332655795488291490838932961464474670450727796094539601925300016859898453411722330045825604118654841674901127574705675497916389195117233025107406411775764289783049908065029623178545636965662503844246385077703750730139816521981114851713096814700919957884255232274193868176360718745980557008497730977530012195090924407596840972023803236906855123685084347277671657189045919526604798485967527356287414679709364296568642639387720583715587472121585434273068328825972768860251164954870507511993819605434112621933572469434219503276548733858383982238534489379567933028284002949367524560397194856633219403471170443138791465316700661907369900260040770593554541122794236305962392523047246750222785892976041498074572837878482424492794332984015585270999003804945475587842896462963744832468533058689986644945924022831016852968694004114168410596828705429685807590429426734434428561941336571629681289365640372421812720979804111902083290511136154857311506151865625589005231530519483086523088280165970368377897613251194582035942709689597826988496974969510684702369764779131045005862764278991137621178830424137265601656450405613870353618427774675017257836593508833923913163222694289192991208972805972998982208936065146800032014304619504100866257911701854098898521500480721380533086157685336898190499680193769593686258292050888059944092767669116057968338074638578356288908590289958730533362166435652928235789909064565055241936362297422132190434115487990533984930667547515513357525394904237995874949981142566630144757096746282005463649344645851311453212229744238349756355283418799094788370121269264984623927590125386857451570855841198059036351283618862617376037789645697670873705070305114298696437191668719702516931486977268885094807254191389076995253342202388329075408744251834373944045884206720252228018504627118554473198556647264136112719904693954879151926778577162359649799812526749025377241877569666352595938257957705346419419102647287639992582121604831812117117086512715381850919954911878385055991386322335822845729058576558942293374486124500985367020795204041728611291606567081663536943512461048291507368698688994886416835024803963942350926913093934722724573390847620458305735157219654196544859831602051641900294945249988283124115340545956318586996463825842117183354089490759339772624940646531726922956798785120979195060225716660200059146479904070699987903164768907921375553322502781268169630777097927164308642593030316232517098411381098067946214157398367765603438195651311534553852832551862062022226488454191904011458582876902868541521716219415286495902287733138213907454731806399520212541591514183604881365010274800483229932670976442598300416875267564355880984179253889650981065400293217518791198840906460525704225705876193756248410382029296295974347791086657334272051601088392899343180995352637471383892082581328237065646853038191154785104448020521842365863293520514240714893253596276805327694928927213685666947817228287411867402627967984762594479730801689685019660126913969003321848295060592988584676342718530715443605374217604138257930913647440169559294597112058687090103897628815329607591258483046516834761307116573020905023199515110586079404814891775624763821130925637636964916284902977837283755259953535486064544189112673651985149552621210410426191671685177588248468378277624168992930401663895525466968967793805860740259595435910507627853829421880015047617384776893921683084496310949817761677158222059570822239674457110092514508215563706040620701159364478999622985391570502573308737827733924974517628867810026577486485939485807279581036417243688390164370912934010625719073613058339185497994976350500370821831838696504909014983192192825430071621776272133314964522164247039600489773993706196032847580850987038507217852181689903346543804425461920070660356419904358499198222409786074181548229246650503486696187469159066642382205942695770853552824674389382471497093904238141582896285191979275938997896590564729408720557935652620100724713390978072476613627622370765103720799906499974049583116281536748695812125427822356036291619647523330362868068527780148235603822412989805406138953107649379000290136811751454855287716705145007700438210233342577055543223173302068124148943386410678619067155978805322405231291738336476162448330782952374200865318662497916648439138653342951668757054411696705650135960974015952099563618919181366144419264562688017756290691773653153920700553138448961453647351621436962411919407152604319725696904722807026250689232355232711188443249503273598805579729928893017375384229707532314109165028271747042568589038104674082109353017600218552594999008009000064512182356488258305020441837140197544518914649308593781226971980535279254100639099633747595959440296881380547996975535384869215980473436493700764628212508673438970039428348254028075368196237607684728163989638372917731667971771938776612273993001769234180465820887313548036806347072704898171843284650579948398044718029073551903919309400056745710413205227876098854893063438428549052179329032428071865085074550675239493204557171873915565842813816727166955032406458102943222287270008935744125558943470622326046473101827274857139608594158246622203285732550788090722202061143779763495195416305880118959783228917797830840855418646680197340995715817955821322649741126934495468844994655141176108240420117972878500799267235631881191005008887135848066984163413412952195648059901344035309458476529380323773285405708169103121444666219191128647972617814567698194726742028881435692082126752648375748155813209953165095953880638977642876630978385814887097673123660879161494215238912385230391576926681176871267315783631521620547722073731478136612713074739724795209943847628566257323996040523156698470068493939655288833713739365379936611203633176121449229913530940855709909267374274207776489303070441012975694804530059702763116765252822195236350090421943334111296759547796884696526774368103767714053864569205005120995666614032048400575715689269133211241969570422153975290825163078892428088035702537174274022150454217243139735898961072998793124924362139116485934784359231065792660604985700164576024229519585158131267170825808245714516362746041484246002168172789315261613938919546584042373321633256917140964886576767205918205547365321811696510480767320730944199671510516062567061896458219011419336657939943481263454091789759856985092224801027545504859046058790040385719290100623218216069921952508718036736627997113007048811012553814817979408705436042679320580238470420138849037287017665630817231227214617730087548231049681853027038912444319578292034791885457766948855517045568882640066591916788240818481089180328360555188052417288595558690566605157080263593686851661307729354364598375343610487043133369111160286145466418557131079280171216865047583832200477385467089634696218386818733544255688206490668401648597949872328524430020188513298040578683031691913033730065190056212061249673174596214768902136441857119677844061622662758742342211602469509988901759867738682480076021290123119168729079612819122579999936453961730467434307809923962458294794041984763320335174545862757149600025300485742013685274442020025181577788800429022126153539438844866458592401407612718856603470895522356745084394199377424234714730804973408438627954647681177434397234573017999918049716562864084203463051497302547239681885353347870467516472093242966413917858368224339698190686580615115738875348764403577906956522160160491164222479310735133141394957965075379666520926374151024826803548445324953059009704088841078267633220078252926093497923966809545101665444170537398176110847646470131784872525595787529610611676501897815692811466905627428810528402922875211668740647289104580257285638805643751643237858896001940285558881815131567324968577888613266780599389680374324623483952406621894088550155082047982681742489485127335749147710714902162568138622061984521036531951779547430757848046740716009771834486936138081727483998345564447393511107343745104510818885292367548168114889149909195885215221253004388208682576987934717723712336491467927089764038913928311186034922718274590775844529515486649978545994406783109310567609362157949613021563509102641943789844691139269601970047170797100204830149886519553772463218468984832609984838372912018195574792698593206894826183087535641211588242518280603487883238095200602123209273092286430559511118680507338869172086103300681186129771461969608042547046470396943369390119170223412919149748845094037896071453443116037053450868124698123644254467488333133364255425941794764936175029574416224578934405198162270270949356332014287108746169127976240729384178419119590072152709420370391167041230384578959070097820137085680004523311584088801994538646288077936649242952284633315246685498770265620747124941325126660190632332369357526790936536587274758060751810264459438878980740202029728884339937663272625027527185269469087432949466846931359680962042087005447548958667997077245743660549275853982277453662053405560084627808497110818498718638447210413466007801215178420566243679901218495581062059980662895837420888502808256303185982731972304614390623396297699778852402404257526891302737313706903211556422497058451957840840092773600161089207397551673151672253439546208809103690224044065038837859985128961878485216724187814852527298898522714050077842779336630974324879914373647045618142916880535791995018062292620032135768323880269076910338394588267520207705781565344800269280290825692031721456549533704117175886041729036106492086050481131381622442639000703822234688094893567526049408664935501788386759427933181190383281587710514233346067291417627887572923912990286571063291781639053246588314261793334967480103284813161520971791932545119048701574472643172788994475998520400418056342798283053772581744486070962873415726829433405049747790486581661950497162201157244864035171100104870669546066809156557912925145090395390511872771782199752454769187703156193396435926465327512829933783164657334262680387323413987057121553336641360656936790196124850121737012382464785737223143875672771364928506469306053989192892294830786061681988164781975385167662004145820259506472480104018522822461142205183015217780383478843301107653771409964110782399986340189023357305483651725171661804934949897251283629161373869182830772517180247341557884266887561579195046405453267923823678803083306113505898786443220290443599463126264304728083920759149137322640674303108957412050941825724909265117203651630946088268375228659767851091663913832818891929105545227568878247351903973877842783961871379329920296668398252350415912752025653500047464148263451649235552796940444871275268137128808727841895331137062585217241275641603120096410941839538939995620086330049966875108870941064536560890872363230221358874055665693043147071434247052302059572497029632499129538430675583405838800406476946720852180799429541328137077215369001358373741460133949276008243206630084677069046302487462665494897364632955823291475964504258994640751693657991576611465300550998202643036241040680920383734250534431244320605685915516846093625709970167739903412876272572395884579408466453443108983625431216280273482950642640933418930816399382957594107833899547239896470284291195080362330796484892236825267346048515466198482340888654294531446227225616521276810409922913134173562553106359258763097409554356907828375665218313395298910335224195055597480219733596685838886162214097989960068455507483916600821925355975684353001108177121199931840405940964184198378358334722379730238944736477703545908656652363303360461796908384962958990911219006695003137310527548275169260479276638854378281519434964266496839673253563336388388134248986300280113925548716907546412030511573920913143927374671815407125530343318326353139757942307225742195301505254405669733864791069028030075190144048031763092086638278370437967264731845605116458627288134799869275804775486195977186585119804625931088898096939283038159174413429360211017036005927305368146196783685877667138798260363718200209557031210830515927627790074276121355200750075855691402976296792596558982487793932272112118716972344171129757291411455032877394330733661993533002986033507097532175898995298561712277299345028840132076390637408603608931688737735509131653627178757192717884013164029272583540960971838332517198029837076589339006594816732787645389197802905490273403944530046336350363486652932666589619767047930704600152701729711898822269361016730313662358767628733507253462690235751452646475806733679251890818567348503608171066394848161039229664651331710299960257100392090143725652401159884741700579063719075839670984428996374247873340852855058265177013044970014402221963866509485229109239063732738775591365003752518429948644993972562180441011104864767055855850866835391594284624923558875064314826428425285195177254938932752568394847610584401457149392118648330928182301555582678460615252134940077542185453200637556555656211829887100068846447687668071456023959935233500787065843655550832414373981319721393375574671062579727284954343471993451295617274577850235740701844985679215717825424195596373572897731439201936506854788971188699148903401118538628125493526780232282751603816795689992848114565718977013391466858658144893114567668483572316779263711952610001113238706205826401459322641670001738175305178507499427437468162314144608634160733800098183702052216837455934418439936933407764499242939537052382126398549441488142933952539069538935655301544184590480027658218192395373137361502107340430682347474590125260960850610621686206941439719548216799496252446617054024822610384886059908519288046416854888577209213202801088456232896100835812056083342951175605896427730586631550888523579713075162488041155629148879956554285180877149123462538195295979172628290989085833206773473845300608603687122263051956722807982614199157635297358007919600587576143954197366974575938131215470348578219398092440857136349670593785837099684707963344714981123706668228547250423672989531634944036496607506033599748865951572340701630372113541460589264922828349503909102673425972748313974492135720199368468819292507019034826722311513065590206967166627673771886678722140250133571690055813465556038171415775292586150869468560363748261368859059297579306907385100373647666794500980469415235656463601857545290590742091961648644061557794147996865416214008757436496187861343776254518379218945660048641793623093500939799122030004496239666683689636739669993022638518415023053868465852290555748636136843520302605340731914937645644646791724991517563222061088387590114406991353064240943047692428280654408154455113984552426406095017690640742154782629914467068085259288180802336856289757567931867458765939843874065011041240539534281460058891310482717483375342098712968313384921256914328081769966896308476718118672889530376941778319383479628292016504402678813135352361697357036861345001487446828084464030928178058241719710272949217997367674751749750354454245356071707513839276909319846347279737563460719718815397666259803096511346061643830035741204630294737478560659144818926894314587930839135898499854338261989590230452792965317271153242344582296687172169684050204634906583521564520760398372458524251250469957889409228194974397172553200233281153450954283091797204601261498228240060166598016218887067988918886619125806218055065852738178274856171497967089587204631823629824463498982975633326814569807732843405735262783562415352561842382319956376970169671975889382499157603363443713040157284713543724334823124197380873587770687706859087237092198182480238393852292635109449624122906724852198586342680069220796301689773069302695754145180166050194051852627078952825209818302689464466335631113665386391245621953317587811952444144546087363419887587327123784332810303757525798347933686252677577046570312794301258094125793872730291749482357172086634896105804874386479496463111902419927736925079730176873607698868242617472359462406004851379696850484977641838997471648814301506142426776743239292290086990732071154192147722954433285036370218551187791997409723184768684136303940475525436264097571322901793975033237201417223038320306486286020181022219994758087724395717900377748706595878538348417939505866276426135805137758003056819858017469816630700623592745980367069537074294457425816570686291319262653984445082984221037187628190438371873858019562270313825184186205311781400293991945870230933607167947067501815041600112020529343376987952978026479735931624365678361073981511657819967027941828363052611977573601603790053643175125205053758662749507751891556580678464331617552011260985235370020289090151160040843061336187714770623368455533410480778467318236710066218921601721701341554980011357093744972660614338391289287074206461852606963206385512693225099173162412252287060496203507386328819412239915734452597618986377491065629224012868803775093415836135623652102187417064579267600752214327352325520612329567554290356088435387129000906122904032562126027245338811564184011753894999033624749501858621356099931937745245091196993047134174145218661090489589097694236597068116709779469105826210169094197000566424481005109730660247163942938799003268466155993718934210439808876688988165323255374370914223825988285857043120350508756816399732036369611830377585333635773334760113080034435056777256602003405282413920668242075567520726716229897317136207274617669134236277663379730703659033128117299190630973823521556842099646727291246687530137836005376656264392958087142937450390076292379662400740164590513655237931349990987392158643472047516128025730474587376588512824925088573596659032135165700957529970312297051467174271226058355496915696919301777823929355756648690441389954546224123119049964474328702305581560827385031988899626671035585931021009499806496568062102413217784232222853631271062705096831408225726055033331908468685064590680258959620074140758548040200372154828466984375883482052416671912908445940722012189852433277160507761010738228598220685011054752490065066981019198035542967926492135793642767290450764177138379933370824956227551076813251485045287884197346246710709870340283976645337595359156102240996043584301970454556420622028581426404650471141431235228051350798921770890797563111497410812515496898916358742437932960111281778408100862496226310782057038192794745168812494677323395416103758422439995246590108139789662053823789652128529021075143022168095320311982978030553755314337116632376494869899136578665423276016766982769749979298578665582662494266585113796424158492018950662214435853207117173483434741368199138722105835705418980597324132174645320780309783950114985230783986294727496149049898959769007648771720141799821859272794423813550607311354351951336793718211435718492087077193403785184395545805296245243894288655333422765895694837541161675644041508849555078506316253646753170479999482115305053781074408008694035988122643947886453242628914726665211967500779444471029899210821364170148444212051886490559753186993643272247786123275410377279101180086974228810438213212659718973218445861183681487044445569214677145132497535052915204278996214394264226544129951362313783568315048202160981810962746348591412809596532366126980214528728405559782780300550610835996641162650793541868248741220220538402307800400989634096628862452087827496179545709918497020844108753986727740454387707566159604165956557075283241386233844856931601331295662893246447309125812786300054228967007394542279484075714298833245093058428830197556910937793433493694532585887238737411759529092355551383737350894147458633237949521692327410304830607680603849799051617026373559192914215599524995771984980460606204045586737780378101942129355834378589786915927420563304564027278227418030287994717196301664252307653788092828892767154774595886262601121389930025312955364035372492333042731785276206330764740955656727089008059709761947118397866363725880627352341657627763181182908158659533902347601110342821200637334409457419232677611454219908949792347191282579240599607875491805797923830661979497208581948072454208315523212931928924316386040916634505489971496786715082940385791897458701373660571000395611570598427370300834121699302765481272973538440585982605728338325916865003143755294454545017042248039673823594335562158296990207755132686365776983513533475537933370202258010889572011256758054579869023765357183798909224938553185017926225265056696897879517323516694314978302120487306969139450911245592097393411804193555994717315180118072068977987954360923210470271270491860601894215707446720770660160905436035862851963923543086784175168670499634668604341200640069807044420137634556002152263540728320349775529008004769398942425794215250227621420476162042578095158746555054060963205610211993588006711692556240846150171847111434403072104846892954459602704859855172332424863116559210153220296454058108479671593361540681461689672402440297725608268747491514879314256304394074564025477983097277998322184744652759814015226080409926094593023125318984731428376704115460530969425979501182049650417108027233560575731986076203533010761272133639682151606182403879689131089719907845329488873482958349560677249249406937154574554777393611861793685244523452425056233885304687987685503238360354407375207782648947756439338130152236319858952404592039161145420318207428155699627436434705477886114739737498126842336599361991873668327392139934874322188480410799719182065020811595858249123777683533881786886520501764383344655220487177600311385627810544793243127688022717454330652343865562551175445182225222064114005840864349295003771995683407014183100234678864981809388217020733054543858252819434730229473036850932083038804819537343131227259805844067713183518463407657232789739302693930529218369992427592743580641526629815300563947934611157844450802476290712404682208321981419804340375270982279477155628971495476042151369763094743651514858908368731882608088199303299210944980340668769322175113183197683954439651878304950089584384052860279574758862944245324811858517068674073305205804283246624253451143739769556785424779264612914177087333131585270745091972162267856358768870246489147135708760884524991577048851415209143163476537558938815455788455869327144030130471041246983988644467122045289074985859876780958610035572357949291378917699012624847316162450218750169825922716470299804617681553779378254752537332688897852809722890200489656019567069518600715136335927272194013244572620611888973572679750539306039918023820827538572835225038242817395800043418814874626651839854216414687527637325871141730093845256211795655748619533111473068548047302345768412842888977862479937141490499445383086209967705894443193580681242743448435796098621126574415029070001095355913161365578334239081602496868856665945545205793880177707395046857097261964507777170471341896709439264626237896064811973559487244985269594678972479063298928973525682182764978922236685629503771132468323884501698303656005099747193416777232062982805703755203633863594363340411425717993803238677078232852556389847681861052609505332612373499332666159468973099072506589906276835674130023647656091898702011641520594203887935976643092348684925892530667551529203886706604676375390766576214617306718981289072574466272216599159140187640310997210478668212018221974666969213045587845242274786999186968586052453282895358588276123649359700344508274652820343188663740959288543679407420835263817207693000782164733453228014666759204462174950657346914407382517156772074454771924982352346352797885363417270975613493717338751974143585505917000227884049772896919742240651496454842861523794568010145080957706655102243459998104494932125771439844876508432952174758801167323405569056166029919166841092345922517317942689899915652098271377519883436396964754070630575267734525343151982306740226670705307531482117672446971050957591150179406839426073610251639989245814960025756362506374711987720055956020695483492142374657171047281464737568857136116226891641960686850961901318831987312736038354746247488136806929942787142338918703136613702759520221532281477094834200141260542390866913015625129546669796995489686953159764597153822832908297289438139694501475651533155633384689418533878694249802525094861829208177129587622548246654735705736654831599264900044659406518278580398817179493198152980631758729011742171396188870415157301804309143996494878261524917967235437616572114601587911845034222542831085383274003917989405884943721429693147637621036093643152330293337751656194620443969381297987975514266290053509528056656207569695948277051041971848855207864618931344278348907964504210683789790125542237467450193197056739387640553537486340731944239938634950031658317213645676462108335489514535562092294951142900001854969364829814040907970549030089614876791011010528906187970113055451985351780187018028305003310798437222695804615775621159458481089445602416863393602201176730315645884235046925449798660678988782887916305677042620768040470959941812241277821843019637717375059144780321745871785767562449361761995801496249097840042242207490259605026251024490978276603281569263506233455448311334189807463220038505771015310068774070684209615264217619043206076480466716234352256824513347645555171105807408036077839129702887903212028370870476930330811661844097912267747357826028330642380134487900909823436427827209840979815080468902799081856568894782622263368514690543303065349678253899553944834521529839276260454831377171023456029969061024981732188812865452057804375525760849855982670461489980670400998852971525040375507941052620046432290672067458658830972788895883091146791200494228410189109901893777681978460296031575543013804420975606221673430205255574104711879274026685691644396524345440531686594733997183328459193835968754146298921147922960451337697527518211255405851485836500566930828751834447496001068210356044909368651313007248163490878455641615388402160814637338358951157911487341666715567094531012404454142303218247722188182715653442760249304969083688433774534862939240477669137943761407356754295876411450141099916322221397129745245244694485073777291410225654207706938302466648025598788917378270614161249315537844975894027367935212002438884837158807456913488691730562091731785278841863047115295505154200184531192182578314673174049117862530101044462241775274491021531945996029895436428665423827056187895616196748358277445355838008395050312178862076974507461894214677025936523741817875587008113786677486209040029637489253444278734315836237034930591841522132349973246068760524996634328293530315708763578176872274525092164564552816691044579481662547114143257011151635902735226900495354724160052351174928563039701771035033719665536572864511455332422998263098678140881290572464216354233340866997258463341439032183493274853454334266800222749006817280433557468401213209497129887614619305409003981911180928873885505804590926641328149311690994311284053372586652079230971336887365730391695791538072918556722410872850580164461637216416898517788678997473316456767118549539607059989962838997241022569912611604276092615115757580024801858243385618663215488193422858398689959541709454486725380124087139304410220038471635844774113789783274841688059050052997232114593329054657047596147345475953287087314389894334556608650749564070831061707231270387992675539908355457735951039087185090637689854372928851428141145622438676268794772073291670570816754439835871374499608625212057009333494677371713201495115828062911479636470260083149924124270111380842831169448226933877705336777024370122462574571065946819200212985152473693118497820121635637031229527163577228794262230323702800999709437502161207098174325628652932108441014870966109194697508065860767558932857019143032939412263930863452883937602606535452535251572447810259341046916125043534577635513477509757376940826627809189486999888800385012239753633323765263829008188458714807740585968404079735369448677011635946844236087413448381210516973649581975830215135493816663676728812768796411251929041133344187046004368593314005737067417807879095218877708082352929764923191475035125375437979146167804314161640375513481729638558767997605184416157576032092058082247646365625290771824447666702721651283434554846618791247894162835242531522490578265639555852922659699135127874338932747762275589383975371777834249111637358205571885708892842217388450355082145557256339035667197714816513765501238139367555801455646413298496403815897022654126244750236286326723853681296122201963226114727586998497100904347241704838203888571736109480582854621789542018818646155736982762091216839371221018486333318307681260374422172636400860881722695481783928727502692257496108676704423606607100039427931582405219776856104185984153944125451521171446553213476860236927026338721279548141830066009090650652385982347120077466048369112719808913680574008820078854876941101110973547403761776232023450683703521138313845345553350711210614298137393382655092832277267643464167849613679354475260822799181786396278367853175777102925361286405546307005499729414026217233781754184885735668026997284209457527346798531157948214498960160754277039246512027336337421083462744181409183713443918162782102739989823993833671717440769559276333698846625340257345191505213898321321164026078229691617387905045096900638185721805552561655066143219628999038238205606984799556661232392525895117306570529536877668950284558421984292618660921911065440919772156820188978963797319486150797947557146211404110816774279000139350238510235871021093642264292371744280562576636858250653481698877483483019417947294177001371979587772015466072696994952263858041553761946549423333901978207792699166147908201648400576928724928671178429423942005079843562278363297747365736303410297604957295131667625268857755191405908260011567716867452839046339236129489605620537318487285716085126366547065374803973618917872041046218354657081622937062351817140314521559014258972738984597624563062304594078159791391661023289587982192087824210273541321546075014857286524888001799169731268247165557127961908995375653332524682551186389391284869632656889554474371183674392792564774228535912611400781202380425246394169416902275878459441825359623212827784345702761106244349199447964843997016055196245183274478572448618240950300513826363199225617306598678791438006183769621218990265961612868532369579175679262385141205658952120706749880563421509084777133249276135828536686858664015558978080176678074312207927230888616887189799471380329698519088825240819051288273442894678030550244276117602123072989658515502806121567183167023282697406805479325228093248756647154499927889347658530538422251883234685386561911457453698603770822873292321982893378195421659578035870300564016031493209152175480122835524367149169208422352183384925653063136927227941551242886100487906070656062960772450151618681313023411854223520877024093141914225075185516984375093870206119115216165424043097241153752909477187471988110456141037148236203005952309061100026566314211437453912509816233440106052734649880044568901899270523727670095226719870844534927051672241075444959734483787368343826141617522136604291084119600888064244687266209565039922594310818865094728371833574476074234754519224791291385466969119788529896254765612600373910360470893687044647062703518620406281145555487035365786455564485037567456607846762737668809522858523771424822565161804076949180370071906996921897904016657929106065646366515138173488846196927270115203509138915317656790274689092972041569054234645269692929752019404812631495462042094429849871127973900714157710681339901185783665679199565026557653463205944933999867714545969353666273872026520005811993888669594186564359601311680027738501544061337901447937922369285475342182885205579602214784325625719932962872536612099617423872949915991704484842479003251019119325764019561027083990812573505999765647382948300202835244649536602398872383884452733369451480551640003087128251371938787367815915819638029893870235989716184059676136254063958014923486159483840105830335569776505013332939603156012993367765983422732868973005884499458549940889723625565063011389876019465734965024974394195161346825294745656535269582807977336313934042211803722070482252740756261485068280233093169759471601133259884335900201297189063637613114009045774765416827809076389747664364343712776580859490369936684550671597581243068216567411735372843473991180347546296574674888714433689873939929758531138181722748641312896000606161759286219792197841117126328485728604186457336919993687766869794392888457111563926401981642770024973948398267678375315862426679622975344300442888014890658498828074268194134989711364364672717222000920067562143182101431825224265910029268869277522597611862229259478769129122734621817041311260468082120805178579561432142032934401933902759960206032024474731151496563128614532930815465131014862778987305967880910578523752128292606101992678757488384214172033592683577160770707145903148365452598064847540637956171163654647125746069607999746556450918203509659816736707574544815776623482206280265915329882863632744130418875584238373980075366035329236000223438956832790777585681515004049566773644249306382495836161047465383393234829271467339137695383966115146026685144523667450076719831454481775657157408197557647952853014947225035283526592336392293867965102847141791946779937317302618423216231996405302764232809984792929096843174837982139305285318986859572682852287241829629880243628445960945158660907003739640512069146021108431864177450118841011642136537053718935710223635314022787778352801864296757561949077497787699307716901361252740297425256050566936107919853899009780984986096905251140512400751992799789796964811881158762380005217906753707162820605458900443774655950358249010701944412143000624526965332784265644010972302372236142617495686875553818007841420420300602417921674617227150621947629415647435690897959593524831681441103833046240706684712194032019135705807227806922054571157648697276874385312184655799708656497893078855232962216989897542747448004981684001143520307784274871664868711623132796538929774375078275325088378147958253579143180469256663716081523853462920343437462321360300272455799050067311009824249245121276553890821841537643405057460890081396126960774966578236621113694512650937490746794979232967086952950002104934754070852534807450622136781108941144783384370663498895055410167865274761138407549903751945819559053439940796163293848488734729941581090059146535584902891813779922374098056433541031609667971523937490102248890687258624135032581056914341713113789528346957637630097733995831810096017668775439998270011590287445061944784344107587441510096994649404878313893266789870791804739062696324612448071448338654504096211787002313702984718203615654966615187388490228754531530481299409784004622578551774218588849069740121694707433782878827959018630109061568650943965186984139756541370454144156889653539463273928044639629131391944643305396160007995626002561556532533729304876612386917077224744115946411877415174081406923578501070108642651216867429099856630540159564242912574667244094695193326310352006514394355747276286090727558257329294521824995021443718365668576350400623022716557628264477326321393149147503166390217707433664277835342911742019055410845591198751628449241904039424332417971925858356436258875014878603295782064393454824340078967468326511096693174733555145080554283259817271408938539136715465842265822646881916057882948948972626238206871698030437118640436885406182239319933719475769016339878252300385055604226465938677744053037848276594154826090029992309534871395782811889336579281184321260696366607271945441541625174235444279704191551116199304249321053247121122806239999664838026039052276734233299272414715877519582442483225938895233924350140286413337860226574007200883489255395012823570344275462868984575570363322683664944334239218492773958006587901958260164194147749866342889099325753504579546993629253734811942197120722885699760897800771640778599922381666182214948956607090484108596234557580436247224012614234289902128228719415815456624177942150212577492934801870575191709294202616455754023137787688384711618630370673275936105343742774284062392452851085206451275939638001298201474153076852072604291662953803073218499182539290188870417663844587887576990411081691389832316351688378479749238345971419082591167634967217853396389286090561887246970193693209675703451017919015355039954573973331300032995363213354084309003150418647885041802380145313508799707280240225427126104776957711160478068686623560798158749825966365165256778894962070877516096128504442785517199619063937772876123026139980886195980743917233153670553792384724963852869356347008749031063790385396157860650619731698881827334904612261871527589746774653780343423856394774111953716760603397305635225627146027557630714453191550976179890107135652985133468982078572334253061877227001783615131555831027770779831420869944450089424524141049741227280341461094689206188543183123011729477929909901481077152293766122989611842417064484320494489629770530576558937681025298412007879093854808781282766147338597761209107771081386837869326654747521712119694647115359000379896233176656733548179253294031399507721297399338592459704160487433174219291976668166584732885293849718933970339246329899527912061497390873742734138615177614215735634489221790787833076988774305852103997153691799885698425493448793666821587639731905829269444094393983741921262929993458801006145886375796811301719258152996923104321301763166531371445361082665409246205496002349536351513930746549133187163314697320268227616276890408286126757181286067823033167082345930509010306845066723500676937999121527775346356218224296089449989697430088996965237122005562260764164809856984273928588956309776992237177580034176150564455109775315847355506581257888222824079873974051516483884222136182592522276287042169235000047968183294700274932945719300603438628581412161689827066075171322003960941119409962142994078250237234569923536630525282529729159918439430702974270224255342454239778112902823771188257199616813855532462683814968050272075760509128576123307465376614643461106015704891854499773247828830070498612366469652671368521677349544841068102724457297975620295095693211277225847743463679414292277553706122454868415463624776881955038827254848647668133872754742039311324009096227494101178058814057150304391416136046037837747055381712965870537254809082642974435538930890543005734270501930627725594499321256187376702933628039856815446320628875539169988583083704650941166676637293981915063183368461203810186399199425804271763493170575878189935735436519144093787554904267058912356883952991918298940244314124565354208260723243789781517327095283660013919703203275547440941238680806579833446928070951509597353393467714739707655140467811892222210731576547322020034182673582366598978280802719754922590111462248620778855055215302399621539556275266296201393519908403539384853912778411790919676519463922275998099319464173821384272747786899178486772240122608604418688195156281929329135832797570389082780024477644938486867726848858910544242254743865665857638763329117566104425508547286029416452480215684734618189811857253040143380777501940725472382354956163413790113268683263938223456151485646693316369932000130554322224016388823420976026474091866628379559692717331641618684523529468799056867927214854716775583962057400038048898036862281398121972512337122404674519951986494650645326890671387224030891369609162938624054422943066578549863869901638431785418160197916248857262332142273274782620842877379516454921412070247233371778530509692699058809352389054990118465818978123977407803978386535393895137554675352178508112139854177295685136401488339673693269420403571483487085855078216286209711702222133294855704217354144615097010126642737763691125056882623159554025126639123515215701815409424654691615184428629716573381873511813872615522296341040244476648580107831083171430305811945673053384638498423113787711405009079427808920730477753744987303358951089666384129582670830942555422315564809128104000297877989996742295912929693093019547526420755214366788566120974172808699245345013023540632968439678033769729985137468025758434386686715766793564440919707433487259769519266712509124941478406807016611510525905122296991749944292250590705371007281892409348220347710337718949298418654838839448694291130633255398037718355741911678880886805268908039749776610290613098332874206128215579389432865922266609236463557475899078217280164439042764453913710232039031376312384260552328598591305813172799627927786588509971169809958155417078801556349707430772911046239580844195117122633201648219677105437256744520333340963817800495446096896641255005288606669121813918799447688573526490500196181719183979696202910801100655810289666839336793722346789254141751162208097208131174252335616936739905448779733220335306986335184988614807577569860897973450159566271673861438304602443633239234593865520608072216557016503684224727047453296442353863684438838886901652820575012543462130654617535630290616709647285204465662913256246775750846894550818168422110831889378583635241982584468728003680557138003508949958572427435171901579535195166137420470587099280875020054887319122269154945371451166795362613763818473389449093125389312927824176191328438460365197587008252506159761520474733849869612326967669547585715129981897444700159457970785318083956252190691991126393418281037279232071171040606903593689858272893307513619168089961955445919724543103870208478763003074365158456353058744235209834204109726515667827612926058847518310572148547317141914602376936069375826487804563583084636647756473978848347634245189671519252767743259717190890082028526927184752805904650029657606012768949244631660636520479104422493995008048498781249043447999827162928169688945834915314374739646315539923091130426358261553398454686880840954536120798046786292849433689030027323191601507527243238531380442977503907284762006385632633854878668669381577485733977279128032411246688647362920988375564236031021389111233894230808740490707041538005301717401409111630580644516746754242817319906785986749374959025047799127758621854336876725645976358988693283263206791532185805704143286605804505387867143146963894580291793609075679256434455361834874893562158089158198648417570016141151976273049804103479528458664039512272636397161445662262943338433544478640975529164149319356425987181620456043658872938151136262802288565135520949052044971719516938784256719536023208605039663724220787695201818381905077204813717239399261025260467001558310774137886320747130766552722197528612650614093107023649919633195425877975440236203836277422826641614413648874034010012538577895420782153483125717289771106137842793945939780219469634517021680474859703730376230640132246110373299090794632232221361504698295922410954028036634724325201135504862328416650927533981971471902104100052137015862862731175361932372216928127819728638234658395676056240820668510475146531165582746127512994786292450971282636751293681862791102309869643325750231668398949418725901922252367545317579218567609829192620322251775756226942919761313431169988259887428428718987207174841480006906752860623384638865405726103000499854159175601909656342700864908670039422465483629929153309506106015924618302588027895709624384790374059502174613844601427380607319618157373759234758801031788887229772161450713506927974195122054553204947717628671434294710326680530840323867528326954962086670926693946473217820970011191488512916605888232588633847787929960356672014168970066319064843639231259504584985943317005536560819147925423174566063523576043667005325422790734295945749777131649498939972990536856367006803303158242157503996833480846300890704059486693804786701196138098759129564365419955290383629277574035943293605217806145952330735724735083615418455139530734769644922991083179931080009451654291704656049906879629669881066083636466790766949309902630146603763769802427497617778482504546258648285940990999998931343732289703184141963079434766263937953308540212799823207874363273662420730850804662626221491412039346500497127030812434292160377843284232715333869123088340881076522858034003319586019748985370708671924239927927422146809785232699880552215899764681905291520380909217448651332553365668208528133520293871468104116104021831780503938813949927019939005166756965018752918196138672498034385771778419660093369487647737692640692088222298577286949254784432523519707076509207120890484072451036770754599059787667814947825861381009670655015464151434263532301623203082999361004155939243766558472976708750724125859988902840496944890721289168117739914432523665165625714652420697365108962885354403814261364832738584773263587997187084391938028032130231352561751217031997771281522264162120028980643329895547490315324916174789637583542038765250636775345847872212866500379614512848817010087331628073662562084271787765509565078276949594725616378901519179837888732641985589577698052879006901353897580517294410935573548291509708858130852209434682126794861082978097938148372419869470957643967847194960330624882240363134883674100066087167281221766269055479188077437435058108493358603257050073774901993901596374885449170528724968604040710204965145614403575642270500086690646111174728191191551432925903789988179345039898296800658578532606659974299861782643272416421016696472350370391053186337572965216810043550837706036248607394036464212212005310924249497054254957853578806886684514818294377635187910416309557994957438660422601850071036025826854041766647951184973862148944307537492556874424327920480415000045219931738299718454422781540437941206646812131528322378378142496863810055431307889116142483657463894933178765873981158879889897060482838580566923198344685935136257970004685669524321157954941335420950483369020879399803106590785313282910559663109875754445416028450900239048506681433678119389538415536983096191538182483669356504194478459839596950470553794952675757829908189447613855088606121146498883883462442021839735277473639567076212191006764881061607898272041425650448725858809551141967618320315356558710273400220987160859488155198594462423328659750776775971776459333098070265382663225842375879914256710920435740264929253563966416917545791212525296562849137961040975680883187079525484030976812721777357704851893307816935683036922045199091623489405069125636249556716224203938332322923621818051412275778357829037953973809315220436393941611688380461021147524788965666633296058307059061498385148425264532717478363835088503406708283842229994831684596731994793865729556381351489974235284259204690938030100750440550559266638017832778577814227491156725958773233274173199831573508217379939383879746932688933364894660960469849081647438862545434396817873453675618072651593072079436595783641984467156896716247945073064146831641395686386938902081809030846158677991427828790464336118476722211466096894052916779740746153326145469906177823986481783400685457772526646247010152602956551665697120762137643068569508010758035935143358579456292859318776553120167285248266137115909743343475266469994026487711829925090396936889955673448446192364027847661844676423448132893492364711799023114562455616610709991279394177237247719922928605908112800113561176138244111048949984930089261586668477373454347120989539367251349642599006446070247251951705489473854046641441084916198198595834689671515258539777371193763753285984801668168189823797448987012919305132193754377322048166297027991998092185805219566774352391177869722763860880076569064473323430264837374744719713472015339272891834796573530142030022490328787549159659954998093536576383753107527714188137184484809474905471485442467143809680826505208877972285806578340835296534614575918459876994792137036427240157683622008850875086130442832793954358405048961990680396529184199234245861372077169829759821878269189584224758779545945267877096773093323724034806430218220205468744852393779769905603828927424310628475931336430895740684863124176973711028739718120319973443938463494111748844377008210160612136843040936256606444134885986595925378969574784910997187684849262612538641989564651925886023575411313932241928810810070709709758155640607090963115630739340704755893716325713831948564989244502847970513388021756723692123891458275442398407827374406507694918602250656925914761701964739177164776007338845440501274174062416968449301519314490389283984432683908728213499790617409544946664275648157363425788809721686611415129550261452127931693693063634072621040138183462270671016464776388391050092772114866373011505625697689470158768177886360040621429215771992986653463022579289981548850396857679791072135687775605550139169247190242278873257036095685942207453506097026635171431408442596057748535606811816506012119450943666950860819629402368741641769270160581111763119165088767193136816645954764914886551983137041055061637504318023322511255491011673944558366065314819762511445870022078599464859697825300187468288790548554585524894684068247424855045040288443711631889444726674217630630956722552874752511803751048105663398091650863927679621414330115805636599279222620203936286451242245165926354267472491374532159661515786982345793185591584474721472737668197817606870839626124489638700700291162560974464811293283355874360673860255597147316891513303951251363774233817757356867102130805483119166535018435840577167584372720331175520688257112590068755401121349937611711060563791930144983980087534714327169811839201414903749454721271260887369869311755539688406860551916116742858427550603934991999151724375966443508632699244044530624968922207598642328358951009964172913982253964234371374389005587625409293655147560645820079491180396226735940311972354346068691736796807436834239914030350858174793578207037814896659259350819860560654426558935587333625280100301327757939534826174235783591329292581433515568553856328049316809042118942359099264285065590693725326160753923394224127263837359766648942420339377124915305740778646925008087076912272160223249613748714680454644837892487802677107420643709286693512594677187619933118548019032180693820798144023966035511100568287771397113412181245630406911237775685514821748321957435881778986817351911186780443586143565598019421481477958802988274522002258416008493383292792853800276166528890931123316970732187421545813826801092501319991810435499376677139958031523677442549555014478031651184996932374013538645568821144387599134509803247144736632912592415851243699906751746164672755861747460169419693037394848762528092282460478475296939014080354404960792515778163205062255383995857350106724390946980505956943268439462168814646911123914828888346691082999651666414268692542845969150389650027827930558436048692756820398839698140077118847302429734673721672846071849610090334971321313671852005396291224529656249003513750895354992670708736321439589826744992894171959700531674948439222499714355807906898664200318078543891566604352010936929759529910022624736385279139402615328334345139234555911830447138751670200486120601396352791418726573461836288764452186491257062526670074931844776973531628196490742688500724042544535611312437568594620817420511410510488583717187834610998327219713108955767119555800535368605975915494541549179107098470458564222375780504323051537804167997064440808622704513089463244468111864518914153792473159094913347470623968406512615795507034929473815321081001689417891566670830386346747497536455307629969785472090615876579419847584857512173950206953917350910651847561114820592796693613499380852311153560209101123715342620513556480525487292381117414771995522594554912017288799540599424807456860619751779370543187617530419627850899750713720327929046430735034505611097081450404370163285731447857184028997973684782755409629087358472968877341369270030745528121929524747620933487155969949855471524619940327556072783866475647110953059494989762470311532246404963864662829026648203778915598171146629041609945397342948445545490415119096258473159680495787350798808055767760485686005742712896257462197321488380587021137564453365533922833547705346010570205340725271608492079948870944659748890626363180238616839982733227797681210748060371594203735130664532500374472503396765234972509490539579697100356759359493063328090434443404320664801407819709406550654595185232911280379503347518698819768136706377231721768844912220102558719361899323790975624446101992343474089685829861372806796551743493923725586256494118657393883284973653850521091889385960498844132979739293195792248660584025967337207232861933309299838180368253984319302212025266836834426737350903682261950012371641875226830993061633684363715643719347776517131366818434242741223676091897162188991264931309078228695044026948306630021271278311832763820954339206160057858992019425616297605439105490024937889329987717615641667165365153263858327892088688990105149019090145599246971394671730117088883730365202815090107537080806754700657893690198605007223903189292098899419587568586897211710079669718622422372732761353708659562089194640096329827218308457564579965513318991190523047713868069682010493279885229211253274360146331190939411205481087650181896305109600032634886729910868264889531452370346415272848199431314122307976998316544788534996444590097842102253062547171689505892676484499797912652574124279124609242962209874358982704006767782200392189664601981675613499183693215416914591184218045213889505404235265862836701997000576809760563317157912286224427890952832687139935507690507820110150914924958071122488167955135206181192889882718743929984826883052264639079481006069076965246522442398199583930247515962441713609368006366362380314004317813195313432565316912322873035354868654174197016745135822984834403344338575584195783251870447837159841793448667777802858316903613231610381887687933775864742812127858769960614630137705336580904552167357096258614076387996428039240663759836745085405195451725075415197856360402783257514723963134521679902067186530290856090190362691016888860517477796330306803303092362229250830128587663163335296951294783904916794964918775611416469370209770517479354380707481187947642200587345303882518083515268615530832361417644364291251396534777528202265531631595770302394874640365786794784601359187094228804559985717649233132650488028649624667408181080487126023993326497425161486037225429140930917137340126986609574066961592592949868844353720437787812343528843715997274688522461406527948993781451338234697517079784627361362689893908879852146435251637752940905851520849116535880416435113403733360898443236316175334846592496593974004376771884113885599503149997482454661414158449873170798213520908166248468977465189584046515469119987946810257846925710236205081715091762118106229274816760534548272427872135481171072941162760122562836780977897794470933736530606970757602659438794021721474461982663585440968777322766212269369550068978350636274976620270724495515690409162529366395732953237277882228528053910382575241885285865812831027414172411703864183825194244671134140405632997269196987518790723061837263577079265283241125832413348133214524958650472109220130174509578675526016042090945709451501970975925664632308684213945820747318648392915108546952336383976438260589901789159760995223498561861984074160700683082743227359478057966151917048110331157708900477264359299539720298217778768647446658336944651241303295760378077225755198819924662460876962985278316178555576166970178726263636098424570888173500778153656861551369287163047752895615500738434801993477027743244503020261592375131790648320974781067422202284818752533533843580670550449524826549282799030891017919290396182777333407097390100782946972243341692264130350486183689010152462465567130313077789461939239124415012003060657581382792411786978525150290211738523445740306158317319448222261072175961257928131796432249196447092564657624448607274749645280322174792599755477102334947483801345976969826741065776816230700047172914384545781639141013447691697577061264036145518697247822352162884241193364772327788807092970127423591960818142870149642644570982847543443229500111473385287414295505423340238801324050755354452225994350435982031069174833760218635114771818966223054368705482535267315725483368532387145845161818742486678610099836699106168446039503584066122576559843322258975208243583795204513268266354836487992187136481807914047907992515993922945365426565766490543374867183230182471981050331630191218639957920949940643438197952834709995279154636234214535688475733050632109460239865336474986329851359403271743833050810658620437282689055899591814101677849957625477367767847170152252078802362561956754946842339735228552940327124383681372299667704816829387511192956491223712087593964854854304134383006771852468355845288707907600340402312375170134224278314521376569757477573539737520368403489678674598169601703621927494455018556642249761773138164437864934705933005385406805604832496772791081431922170418653206175685937947052753547575446924556217679762686521968651074924818656610379088844643926663754595473791641550778304251961767664055288566543455898055692423502930622971300926227506494873355904756228145944268230820421943070023257712074224106514659576991379316523700666978285665131756085935875912009678808741677080247168730604562548068300870799694411393909995197913485895677920692165156664356496441157347391704801527870230396417719147768451129921816737272210754379187803189514246825405695983197559246947115980276262218416101859818757530534582901184802161068094233586389558678638870311224502845891776572804517706966762057463944463552415208982027530529694450010829567287496187439905821561709231112874449996271766294324788987578762496130792267109510215570578500997479346131644679712396464262961541944766564782315992950111932772369273732584526369271518583771237838670508003807500098855941487676815083023356398204211203565194831261654820880019369817660027255234539197617654165314386556874654056051029382436489062814761404474892595866526226484071547431926771417366324826596763082737349147470857615859811880830455740936515488037262006369839175850943900223033355978922477150199230934673498785229268505153952110024260426430783934577815551585599314308962056302045483670579033541626409994937465762678084998846722984183342696787366740239704158100442157911869769326038767232082533054071651467462261504029713767974190198508937173435907286967922623694520365706578162361485960528821378356115882273798974915629051624988008713840525792751625026309372119059802284965982356080346745414655516407251992396804779115115883033817839073546089330961283271386182879328254137391149415142215055013168127642210766264576636850473950129564149137039551673749017924573378543355023705055910007683632566188081735751143678444633918664151346853012941672184074443074927174643682564973764069303129615011505719239865293458751807369164940913283586204679127196030899767064404674765373116204487719712832739973307008108447238541462921732223930591581076305813647179652164210714844041813337828183368349761147473619598488250599041842145374997213929467301503108529002244917639767879171629652710147208361536864518190245860585529288150085192373475621084413242149166442153100204970761275843465231920124874196065578440021950032910868497931305044267728717925493876733347085220997076791740085047713316488283251820410407362792048697572126978391128100756347072345005974701484194376586401670330469649115497054826623932820583155648690442603826520810888356087462386033229979213259346207052685690214282533002795484137450488737003445912759254059304448155219290323106239670093720643721884488453116568462119359678729823206924943972907751300994318400155750591232855957113574431781544792042089279541587614955020490927996357516435571013524863479451614987303264104998180553051986408929809308572808842692885329649911923850897386131317858361617713570624410387802928680249101998082500920685677847743167491825304210995589938421849530077403189184430213211923493386671400053659845443498290489378916007084713245245713092995958914213563139625382180268453675483192735172386625157421635446717554386302419250952063067803038066830953478127519056831026364778191541520922287649347129845049386668022232213335958931122824432594904126903600391517042139279975553725845570569269268989576385303857079481845587097001437322061099265430934645638740450598340299307650666594363136215151247499144112448348823770406858080962539406941397988302123435789610552868193121307865845257422425660917320528499786105797989588972727344987628716576980388078264557492025637743127306531902561659130721549288723883264255827061746211124617637788559837776753131088233460143054548160477651354899990955786374273269677388163710173313947032702861637681847759554754792375061537190296054338237416404241002111667933598147008052394097744596604999629592795814427113437918133494091454033039694905560840239187700581978886374274249577701233136748559704165338103667869687554744205541643806767700108930739967156556861647501588602526332681675045998552376063756692076424705655884288421980242202417841445142265344217369923986486153331678234972055534874977941185848883876945262297284225109766316643361410422566403865463360637723714204561678798205696339804087470361549403932313696916186805333303978114751108214578245343838389223592150359488261299685467743058623526465615451662104219288350889756881018597706761958519251556234914946556498113709255980010688272777946274615511323289446285415925334957218114933823836685126057902034761620915409732850175464244588663087711698219566772453480685076722005522490807545261540182421112052319804394650514854348934291023763431328005875710605659416917574067942016706905558864444691323021685750313778119761634520997666357568935665397176215835865449298861239516225998611597537542489503238261419397770118369924660668223367741793238853167873915603909400004743375678448640955149770645578697528890854217927756902351486573837979708050065973495974214087150582718426728907680968951404516556377949468946196548908749510458101077003659626602724473434770656511409174082778673382178066792986937140964581495312980444009715271865197345938522778356629625369650667272436547673186424898634640622915238850892364655017863622890267473080485796862675906463317876620214595878591708082909663813694404585415080830214622698467034284370478882951945905119856804945390108271483991427931771942899097455356609080901130112061972515334176675984668263115284150364984806330529473407865992360524976933518730292871907000361379647803564320538072537134969100946425130611469607392522684012796602505322929059332402708925357404467551495302332784250197337567675270123170508375352183823001124102753976821565094419626299238012675409312268208862982767436747486674100971037024472272071147856891394421621971905767776235574255119139570694354465340244055767598452803159261792698463091107926587132085936609826154419772956582596683026506199188523903486108578298245084284096563234627721027111748363678191334897781397623257335586020208031305094072154926123364159001930295981173265257999893375418312634992545218215756445923410656507169357137772619732136456757385718825688944143789401841219708877994551829974878131211567034503660484619479224199283654838350130996765456781245526120622709454123707776081483617692166665537498956290750654006761180079981427641510425336607820823280949411848700335755632080377313637780533511117521286726380553127706046601728269623619107776545399847340095393869391934210673057697586570087273061167983255486309364016939276814838853476261220392635453415263415019003097255380587453029803649456284935296775854367176659914582725910463568452107254049990563339590518471229304443710709163583100097615772018113722511862927224416975467776783995956090521861233265747424375563590290738370359362753865060321398011933892695112140632572216677746271994991574367352570710897197299309055424001895012158126498910367735035791377318025270732687596638276789597007203015717907009661052929801204891925669094662074519654806565523942845000759260060342310400931688066658528082433038846176317824374230162803910709467804048344014415522262794909969762137557635593070126305166383527098332544313756705275975066766594035538838141065514756868519550909635590138952408147455758538753844337950393476115379060974752803680902452983257970261789435197398557352002991000902268868917396251763031883500202686438569963393067286682331624284095215330824958548094536061530448168920478782325025453598016609651647392399141070809982916568182842546404344361404842224724630108558820577365769752502255559214277675923433069825450821501724768268194181668675580794429216150303451904973014523413737045221902537033694078684785676700615135359364966336676331575743478234627556692301114740870446746990362346658762533157816068275517448418724649134357185181503760640006449657869562930299464708150595561269426046515977092539253398198023843243604264088781290946145230441202110571179769126283237929791422429425865136919949623182187532726459400906803136919796997289623244241128902637040840244772842171598116957102348658744245327248748918909413485536365692829994629160939302216703735594890777726387134184360697922881073564231683048404849577906524507001435813189131329764129638561469162799764615714805316623009877391997596008563459891489309427020928524748591396685084450633682555218584948528300664290067913685300588712495159097459446554401153079403262152237455834209911565028646071697324047305568865854781315064314721142114551692093158446472849343280245504240257832583633636007513903641483457087031522907915112271796021279973839360979794326605973016605552697073573348069042183589655470406559127487947543478024171422707281143986898625357893316901231900127323640474908185099661937027169922839013246590844537776466048711059469020160969303764402120693447007120238052165528639858324009898358792333092960899504614452543687281795670298035965449303663614471226100703627248589548406145928554613236395533589279452018288109061471501911617420121530523212087111744661534899721697910712371306494934711027183055081990806088480218357131248555071034473395894495580837698087119992830495142952046679404404333331986272557140983752363499757197658109444260418190160500754446372964678594931483187948547221789933198375348223797058741637894795536781360625453967057985490913172743363996385758859298529644407578883252248874650982544782497119725481033761436170958304802846648560903752990194130620163721174845004873094773086983448492092740945752191104065775238928914630837879847451298873770494766472669902402132178127594922860458039343658570409140969805070580956670244942873301950309390429962757848269938320832816780929795334097663448906998753515555987971771777709358207452232106641158312333286607194007578472745615935266485584426758279319795463242011783246068652806763904083353303689036946099365132138704136529801959034338097191449072554377070277363781558809215776762392412423614662283841752821061507547341140721913897536249922563460370914892354021430983211324014390405613411331810614205939062191167354637178629768661381269804761744600250614715264343264175789802488819928142728288156642561617213260751436096967015470896903138631631882398525488944314768059875380283890682804004173153830955431098023405664845980171350665415738045491983696090986236904441818602066788895194999435762237453105103648646826725642147503588875409533813932664023431279380252478729370239086917620467206917942791748256335653837068172682087691567805627065227484010155888285368043096013163564655150819995184701364206102896845642435593775389139566323864655047035461631644995530314240345427741950443021048524421316212343854814550867877932853803801621188336993355125616334189538563407460227746668033617304147267530224895333640526189602461371399959502155427791793571844274946070151712601353753545691166302321054318845123468009702341080969709657160221416977810059933087321357585627791952621748621922737627285930414025934139290980426741649631829384581635516927075893151676707838422328698981670223351560911642990611797914423427466198919635668341945262304685534602025241164622082986979010664083626776047707096146345454494212370996032462984029763581203825806576379905205996261883570548432005699113445345767980502049762253857360241587877136961243377818411579085025386882100143352990174235726263362456990559225113658827893746096940080422941881241591137763844742307590506655945048796169336947817574905792887603339738676753461956148085456177387382619048268456191503337166237838429158666242047065028517689280952933352885857401340089689904306226073264884536966566696283371532591726241933917032604806927504094712466953588085191117262907288991260367743561177108890760104578096914876649473107227923617270828716045453322876390463773044266930130118251110330984615359983843031402051492273464771671565939936621483637431836294698130707098268187013917634082220626668204996219648035367422563391912075229536147694336382306822475306765536512764367994941247912970368372098851328570606849153227988975402242174609662211934580192447472347603841962502907328503073681581218880571572576590812000398225417555572395236776287120742759041606415097061092694091221208123188475084877047917990008586374884858223905822606732264103393769555168293271335537333649065222447144154298749245011517380948909238610781842785811551781628320160079763994228473812058851238074525027743056360314675454646837787109406046884765283663829651391563067296673853088559180343536467649569159573587805187352475202378658572928170789731348574791637553856156760471904323022964170535302323983006005568541264934774741790228301498654903239863227289350176157164162631800922189562648191347338019766951609950782110106782054031002290836022083171219345962270796107663436401448246692290681087005629354860750906319292958522321179829682213873883167712459426122011075628257621365669310190960688755615516273660229642364478699964120468854039734968474692196861579396000259026561726553506826336560928598277186552881550570996434121996706256492261809687439018204175093171223746939582186132980297997992371776386683702770612164031713665751406224198172360565695464981773913593497529125808979889917916844978669539493866744054785782168909475783009040198692195031097425956140772232873507197320044590017117800135318757555375535338176860584613106801780621802222662579135833014373262776276779672430648250627743636741928608730033376625255867468832617105787917437106340874171737791893526335972551151349257897336546474390335213834350837168868998398568598170755423477173156723141393044331369143249547413584890906589278266399868761314945650545615363722012838971305625203614329405854383171388877718025408837475813558185803162883456338354146523699383947911532285474882270202386828458331861448501732835740489721551479196425195524141094179776844968314966298523719460897147601247836783614496136011797387118550373139666482738235101902824099338219642034940149420826028175673871748490886672660758825441764135153997841311234896227948585053271101389911409976714558993074901301510748524739729454077038150142437563428258823775864827116149251615711550868044338013562600384248039029771310182776353575885355764502231140770749891405732581699773300664525454166230691454337872150523698177538732266104959186033831119032453010348457746841511649661894962867952388678665126079569945599630922460542414232910627336083786717980383061655474185545172951883037276864835568393953836644493249222582215168154767953703965924455235631289765444415866003564828883672526780699058732816119292628914090804922661233263391828786814066487978947175423003974195115755874853725532475256716173449644446850670909612596118267039397550696279541101065603294510682977215768157487162095088865218240326512923820561643175157591785392093854020820398797069880531026517342836474528287154635153192598003670469855445087892676430205314766637123663333852435732941139888332286540707369443345636071351077535916493155950284170468747801960776029484645998624532159944979870851173880543633473717059487407932242057133625121702292479912035525006450426041223268313937350017372949282831887258354160073078661013223535655704319257450818934556596074683660594837439078599128375172437326501258021293315430330021288939813084504438130865626343369779093408314660390929442219219043667646488374309430179109488698529745153958087336819176132886269139541330020559108859355271929843528969115287584483828726487474344077191237878742743085203227405689081469191888224649339341348198810271274854835026391372155757930856096524150429146849709786755137120962428715043608330474546628435827590940048289672640246531915795510043747621399746632782526618511683176345836219463932582482087862877243821300287712151612316242623774201863520483257018949323971298942639124133590374027674896560690841399785766583901205617509263125787596221838656761090352083804695340963256344200693479843581442192375054250158018349948352056826948512579882072622620466454262278740296562235270745384156959873584970375948057495139367071478070840752038391532824836231989877205590312224479610453264175700593628744147753743912753864983434885375035700266254205950044546827772101947993904744514415169534791453728443289960550507637077380115674574069366102687291774314885263161700461202864799085787494195746334346586531384602998524715022315675796436093412641573829727220882960339970748101208104398558323067317527620024791884878057241460416064131610070199569281438031447629714979772992092882344177796984675813286654554812113094147813598117965390518795249350675419872631499177444301836893192555549409380592507373720224416939602217219762228434641073496744302986713676004168207166896917397974152009084459354172266953371398619165343682317350610744938237013941581867123532574445126056195265837185830909662752398758625077624584910013924818944979511207913958726191239147829896461153132411646411727788405897666749260888001930947896375346410824751137254581471922437072575050311553597044173562684660177369859186235525302870568071042281902116141856767617988962883545444704587543466608256811203867558935001457705480697815163229380540216022018194112416904089959482264022104636449801362176408562588094394709564858197661024303776014223720591453347984629160606785860971117315379570839242600838879557880811855860001305439142813750303173424783863279237125877030008680480263049004575769034494243593737123607556871180819906392356898037154118988799290341543235395284943916254197822102177235946153911727558707686432212383879558220338113446773959165331045416522276051639166325214100879445184953669371065537603031123885401838139095485337476710909108684302755416928208274848988527149622331857046248122775500839969294943243196084358974221240724131073829033391236943872210184265747153177560281144518834822540496867612242124467045021927608050825420087566471665399929192906194793861075583509770464387281942787150257054510867238985650870908649421536700577071312699701917835703506385926879076341450592451321517389243429231394587242254634068914029543196538143939710870563118434768854042025669353474093692300973080324699650473117825680913115059382700064115773950493830804580680733359290335523522946810203282550814198020187150821294976500450623610671893245522195893497978267382551380809101852535199523277294939919975793406939041533647537269348026386615675099007234251416368688110961327873235530716792862288239300159445656215320450324936819021391555599806560775846340643308837855345776221592299812263961705022583990841184186899047090238221542864435984271921742641079487864080532734418498745351648833570292949494390514261741075735533782745070651731989248008918449309024002648969673382481560354003292629749776443935867863125452884244192102560763828335762887366602046379289098053980129683671085735952613306050104296661999458941384716498721464719899018801237337268783675568799154740532541572424633249183105156005904051649609536146968972145732747432217765043660696758860199232653157967786403726884174921146241945725229841083980807106109819674373262606702081488489996042532827734184291237374419923993991803644824590046093175541858756721216536093680318683376169065622000332934748636923393254865886818531307469021820601780718139840793450741764998075799916768440345338147177055016932744298768209999756098339660757794774412880968376061335580119006638696975726882075205861095330971721048424347567740588018950867081687079532560595955807265326547255788298213787435468827424664749241810026616746880397623812135006910657159034599977928644771201566089041241453744319992929542853980690266248569714138316314602256141623606913873626892592583379019635212333033031855833844680883711481385311282386341212952557104294164956207217047314557135857656869609176449296029495782150937456919532629271158228007631341361796509550079133732297891365208124786087384300929917113393487438702156377411492036234713182390373397226162767282591824081362240490941827539363951910010874562872466380748237031830654215820434316681507097191552673729697101746710197938589409472849413781198140348673436158378765249997425547053734244259963788712069870731437280654621848062551140664014752629195020870002965275278268768496224919682820216150909050671535733277630950395973062947133352557684101605955222537645888719713932809565228111802836085756562287051152638837306893602878143097325002595238706945646327001743955936355896519549091843870001665631225201313403592992597900884015670783162446447978267061946090057728266488470705546664296018533178915372802899220894638677183093109009488586813827670687495385047101344680536814483077613790500886726948625132602130043676746901565520543851038629828820766234453200006570130095653285796462182029365519851154081824452628189234108691927522405162653968788241002870697072633119105148844857366361849924936891610810478959448556861168594260040768763701492806545132107587261178736743833838744649293561640335910530695955504842460311998790199952024179638956629216620151500738447974708864763486749004471033067928900572144129041899892964630984326832737260110665032067251932034804224313598768854925496791057568002923935225788764482306153079843669922734202537174241022148963664065437931336344409946179991068141854597872363208837258194796068205108635164441267787644447955885502301417388432429820121775277992436490181820285362080109300551920282990258020871784847504316188113365698449994461772461281167878087519046148921464335553724356860666753203143233673287333097184682633521042052648600087295427708361090372104789913017776647292784688412355000150286643723355215181555338937380959634613213885879108291461908378512730019400966021950023049313072901636895610407300434527769060193043777408676785636430731245753034827636078495888048154428606791060762881546795546056930146442052222503282290817035969740934172306310807737012661043723025452412858871682631264846535942170690558134185907259347201945364241147019559013478765631661616110450633562012519908470965292992747716223237544382862099462879215888043136543213306396084054255452250808885790554907582041772904317909046532722774828168298983759868285967671141839686204862788617666094340624818697324994183880156384571779352927065531043198745003110446109928644667118352909704569113426504592791744091871780969092603815560621315397854669004802134812510079759041082715383584529033122829622041144031692360449109086278798994578280107329783336543887791528660161077329778552079966302978818700534643448916378465313772734551584874078417571410728835990360707378543653783411046734258207511122675206307324612827731016600465862587982343509942781122360838877526603853555844368605754843032765867100395961793761815192223015363697186601460413619059205334254195739185820018407807727102349170067558164628637587223803283204722755849185495741105692643644193814097983876353653070136486873159309702195829939370387991438555441292576767438641440983948532526122675801946366436297442337769223681554635979188527112366570364115722317793835984177541785699777806595872400238615147924040563227051156798092401332044255745501475944777155776524590198895711653508324522683206998358323337610120690053106139439097010334609262631450770403667333233252564097586077676086730622344989940602196130623302208761234980849357989364852478865399297080669939459418865482912690362490953214861906144494499840171365451376610489894421517164152947279645293915455665582814991992104122408112430972087058763098399380128077521176898276472632730815855699668264936495571410460608773961703525961954868719106375205648629579184177390312149750879401183547918194246470033000747873989643905881345768615420302313190702881650614099059660687288228811834857232361667176222595596542449092044416017696740359641262141282960313070593903139892827536944644330547931599428986190554839200522676650369745609756767091741672719573786878890345970366781789104251007474314828727731693495318594197814812064708291708732765973715569935056154384879161143542506924241412941447754842492267981782310416744106060408132045221680777145237362380047517958592717726077302981736518838707005077210939097032361928933687348180101528852850886773877716673721083979123979310346397957216825122438583330550208619859110152547337539169994897419828663758824726775700015996067767721398939177260104491694120065606177711116494003252542142005986702222141805019385122679728818014228631748664455660374955184862824872646842945438866745686982937306873851152782665095541982031918216453590741518369708947372144518741074068218853051193445325162369374231478233503505033706667817590956208418241488527116307386259680911225752285062105735397003744711819923653357380910534210942769423235964196067574294113318979385108549293294791674740787007425759247261155204122585913966203456288042238756748885584020411768014319752732716988093848114229096553670748850536464877204150966566139500835475913785542131508623978769983213898530077879873559566573101374860045232997084579198253971295474431631020449627289653905692679622613837783807080091323504933889410393046729805835472025354273705072530262794797583342032295185029357562496817731752484436326508186525489838749179847516952922500897660050906328869444421485508773821228284223332461156407773082839724673156833992582549979468149627183803774874619869728971062902521259592949647995995001935028025987105342911378854566565893354340119291292132282559623609426487236044660484523852904410615528822545653270192450035812718914359051950950821282442623940720125766993046222064533123530926207440620791846986941922330851798800402267708496326478347052757321706273007636432848222746640791870242767046087050776232771440430723634702609877172000914045040082406358568644497515729696657211557252958159352178352928182296531827063716909069435799909510082497493081242767149747001713906261461548767657620400004178637157834860624073433011244924090284762728097241669450730589920744640054550679678436168120174393124720001089655234000128799973276614091531014850573039851616339022568432362356873627393397357061417657303885658717563850010528452463342190735080624857917325707330541217583740522993356850059112177527997367724610622262014237048002308268493127631708028737148338995868828765859826715381075384216258997605416688149914003598388076691701339070893195971114409733778169354867739360196688791084912268024966901852475638732050818727092676060190230403309977010268851418320713645221246997122116031674131334688743726305274104916108596609606290921859992954465149427302533140869169920254299609513542704263964845435203243350434149266383750118874878682798128815951766080777151193494429078932834876094624719150078662142332087845189038527308726712522783318032990485023323766741556100866643521274207353553157916942526695975373533268815595526782388391512733075081034113060560311394502120029997791817069531441377449728092517765568342314111812043163810633674631000882135010770740167275659168764363837820425310964662765835084414679111538187855947252851573951545496754874288389001410238629249733459465308099288665452923998755406552052055233568893878001602924028712592451403653629212795120117374783824715348228231054734884935506245857932135578250864852445059383957340980841566172341142571807860957020550317284689990427100670240265780808374273096284988673991790069670965841523490803607062664101905892188837875801944302680632910607876320774179557043496208738270782381822856368843990784073668489041214801853630749700387010784002377211876740143360463306362876130178116363914773824603746079251110585279556142892851115180835798051405068506135623844704340960910716878655046878957462008198071069734827674634096289634536600239917071665383945089970961660661165468500915255047879839440711269287261532378565715086289286892472442337078367139755958841947219368250477744745766399778425854839283728384932521679598195430950276453912452307751543968146253565716222254907145714554439474897702859793019807028554041056717836534777663229504194092795723437686149522976493757054422909046145432599154103632307498425439196796897805117788662461929032135841527817914133439968616252252607090041841187667650038636795754340055586547888261403140653820297715516966693361590057940093504223441519838355529965573952434139454442066170480095489674930028738377767071764597104791831061368418728702493854560495813835639289350295046588354609319700916655644132574045793504039637712624479880388965388226476951987349709227732644940233121718099072678180806529753721344844886143979329137946709667160324879203398250661991578597504729102002082138022285107657248114792513002374652433868021159214795060691795436174266978760638145007069572897233959544244124427711816175635117283989368008509394730026058674137153602562479553392915452275485134634821093625136501083391905965220667946222464698873236161627437191758037681895228099890102485547584223389779684006221478715250897803831820208744886488854029075708261537399349289646194462257790284064399100482494923612851378133013776402170337244069430194793315457780449443453940926190354976299726843001257298518168339131049510140982090741201400546700830230064407374995626340356988151005553474080035103921649773509234503872690942486177280380298235454377717624493769148086590515631670784563602781842898590864162603831448261968334848962449211235759634399191547245778597334986637121503663231599859889358683018008837752366124725098721261798568740092221688669845057359322486160036753820005705834230875407309229160299019232596315477816051392733769084940196059957584124999512430046543229694520808282513207318230171932763025900510836237871847199524399107373388908210942251653305027737287041537390967530828571441294715319093320470927355757034827254722368679212163558188113419978740840739408664731513322663409400826670693737684206889913767742604911572630900462988034454006983307889900860478815712455051991669572817171334324220533405044149598353480242877321455183378131055241813712056468369559137416146793601838830195191535317596205248666504225868471885115136728883515570550657381653697519295416670032051382523047879906448771137650082227199409026498235282515418642374515222763217956243877796795511605053707143672617502432198548482734781880995655368341588824722996317900040764659717352843878253442527008720870382714409843450066790824863623936756440403992539397927063048274670781161527869315705252096219969608686989773494636865800639885619468037491725975420945296652346978270046256410145836970885284776275432628179912931501876310615776369360858948699702551116540836499024366504426257272785918350896146083566655563070882744519807015742620362417265236647138459693348778058138071392718437543276157038995173834038236674758093294229604076372341207613467017264473956068485708806114575573374408131264785863806363903947159741897509394601466140598121459129987797823777298714531464946619793662035066230401547669276747483411763134535108435339668587095636210002209079854356043679210871626687274121050340752707571549002669834295315178511195414798880981166786561894325406700226510689456404044858856992560564909525526979762608975041997440581734130023588772283673628696256797169972273103560734943490475507764649720632834625572785471675679756630484583149083847507217433966629716963195489084795246151323432522933660858540663487307558765054052406891806651745004814771669758529629143452765900667057739258975158642252238094183469825759850855472517873463302329207704115375146806912904292476153991152196504204002423417714210709756563020804211848638689567399346486112762876168215237049577725297344320569888907856025657550562529097548602467131087374468507289679420207081538061458988421464356595912989295157640318710095489921709396170929683517045197298125234133959962788845556360033606017691440183522224238718351337783609144483788704102469187726685244587610052524244713705637035755844345276275898103573440540232279072891962410777942478933840290239004400950107209700803514648507801165499922104579619702879552642666812063297589403083013086292511479623219478577506335655044987966354278486564945498476372863894353249452966169724548861395339639942665638468633892756908289340527382756431352224617696705159983109727507852927314786897853024460075989720377300375912497027636689052985911183917106582828756181273806628649249008550126576799610643637289626435181751385815704876087190108147254255723256734295938422328764268437609945693802707872920769618181223989995007926684129761214736269502622726278678560050692266066956604451404388513560349483207804253608651036382586865261919183378916626141365236955996097510791403583481726194164045403167076589832923477812265330852836516425802949460423553132196811057158875367631932151494484711310966103141850280010823151968302674886962456603426939477558032222646125648141059207612477623941688028869636736779748449016893245081567669694026276948418661229556326253524115337630082455933350586415716898751848917003937689927514736417203905083224578277343423656805879189077478489112980540271060860457128878691225370792910753345884971518014755894405455656516682801213201285813076439654072967193119398563695809051363748471500916102017371935411927879584173397456194220273148538589869102367945876938487571483303803484601396209253632641872530684457684199518489143650545504730411505591742730420115450111436683000956882566170854659800612874644918298586902768629768469603207599709751170389951439396963271850550211527838057958725080659670978165803703960484263408081872051806167031820395218651282517127304638512055006037034141391318991398362306674422740526297102848204195985276806597104541548389364907928984803544196783245411974359183509531628435092548943173549926489233841758731720880920833630133416200560909723961996327113446589758593013056438364972068317126043810711879382639140364878225843034533697966521059142149701922414993484133093861572612963394133557991482089828887358645105636783295905422883867706732152155992373206577668527146432144532522880257171804132259302603811170375015620429975691714506852070120339254517365498237793189284918342730934292913304067295133132626516249932644198983742036758209896034013135552842345939261158026908411509557999880259515528525678464379185020927352879257938936112443755200877854006326560573366451201692409377717797070820520773089307237196239823716630163077950871888255413302065435764634912524019290754890632881739552990259953691376586455155282659748475163900321826052926063741246795810827935281801217033603545703819995732309450101223459987490450806322380027623023815108586026125927020274956492886594199510372055904196988206429889843772378170632697360619351299931760024818979561477053276126740098097133442232097887840420506095631021408871576098540726556441807033943935603667339167239227290037299619550052286085049047804941326893992688412036669159591375167512442421828881893616716054773847955927963982971453110097423382435958080992129152711307031799359665554605905225373605250882828582562692450280419329555368937150569015433092375658530246452916208295370235814341001514793163149312514134653818240434620563058183528103999757672695578098361302499029809804762815986202585132702221349409181667576356262353753680518798709028306170450400398435014795418803910278019985846025787361434243221353356488477329917251740877603827237136641315738438178220789158886959140929138259999396491458068014179367770047895706700721807492591652390558154754397020510859640047454733373478409221810112588534280640027698193377357676925343093941075056030167797904898867243369859658400680873962178352001359496736417256070979806586524618928724458439111035199097073635705866655350360294749512089942673757056432885495029514084361471642867055169592847944247567491892958636514089319054942897690717589052349065447101049667590124731620313449185455199971845840439367373675916650130392154343614112416459221341445323654126530350531860099301381710478240805807865829091316120439518333488643530144932221045857531360172718144906328150661480442021707220816628665487395326804642504864371521751980486643834724646288258490293135932778228679012449135034924283780597025218161644067223392848762960981388287084095387888090328657938981433629833551188652926149032160709125075962653480389318721020117501460715731902276220407214470030619107977400135249087125381541558106682001751094848829985906486613653157538204395370000589664241403949251101818063720019790404776823348641208221478239721431122861127215196262203475778272964619130691945678496604137302803138672172955295852145452974416990219929584987751470446866101488549379657040608160202843550914785711831544370442523587199515783197444012927410911907018365933936750026227093143547193432276108260024246519478594128533350944202075448178229201231986266920821490486567902038346104915094955715480557028908692926563245078433523433960756362221982711882011093144088673933338099535480986414968310123272637319765891558348287037148134042610446571205778414674295797313818594922403974991572397980688471860515999134215278038132853378959108469152655969291746711226140419945089527635701833951866391986577226521692672536325462794454320417514876610541564891259387384234922116138240708005914163148256131764043751134206937261901018825096868161647091071805329448737163625069253958630433173778511102032507461218397491275818383978400538996554069006853887526299143829258511940654323189224058373733758990354894578042737340873612154667406657728682968595178503994954915669394473671205232019713258977287714120494522598015030276212790479742155125996527471713011996519900169278380049773339148349464004302896246175111078187501793572392569607987096100776831723702886595807533871448466364308301591445086803680738234336661110114857748564176113363562326451960835247410011669147038340125908216083785427888191950125577905327142636666999809868648392495560121978081740989690689877235076709804225660721830946542958918268976770328834629807459317022948286463508681388028707935340592990269754560792281014940367830837457561291397953085991077192183975702844376477619315682274108635259644890693475865314970385003434545379683895362711143290476827145213654069359708467789152316549352242296824112443840850145373584051882233048911985508906941318955172543872228919457723501768488601804894996952575310591457912176246606811375655308835153781419556080453994804212085050678182370110855036920417809590354649999992988439394610648543553020786824751605291431442366415848233047098839351733466200685722797901592676609262785690205157899463052624143881853346534402780232590245588772138503589181819383193970059780325839615133815095862277219080358209734441211832145233921051353734399986491148376872919954061076817531630817527141677475106899181651753564685621479414930114989807453128773249054145644702704488946859669744981482023179718528149284178327977734048669363759081028316631016754457759104708438219522229102288941181048404142470617085082799546258169051000597129330764537965136752522128579068851007477969489912088225477552748780748023248592160755895529889573881528652208953007107806806619292968740887368741590453304926202987418042576613392509094217874770288015785497861483410476017944932096925759580983001524672148199494592200113148851522860509505117502516687812869125762936169550747428466888829924860054295531699421862916389878748684928357106300035955533801328345430849330547137705166812003650824023854393434186669633072167590976756195487692416518028985205007852566199825356675251778613348199030148949782816960905807700283676191613477592704965029370959789395179089357977219265182344980861952736711044407263941279399801773275057266961792028252053841723903428131013806810841844163707248288305635098395006913836780376237048240693801879467944404653513315019393123149484864199193448518483094098289567718495845202565067686905281949240396009236037201106093919565967621720785060678204692443927959339653194208253206699606095549268465286400185879512463390096726356134806125223900723868271973805027736213960177968665728176678300452698696037006488536193648941056372366877869562489484338392547858702073943925436974076505911372664643493665359404690612243778869336014165672604354361722990963144927998002378865602461241127513333119464001649832488788362173872852724237966061664869484496408605319501777936407634141488230099827574753997542843381867996257014276633544207126313931729201450801273594683010712502772620966018806142109536383564091260948195927193728243291699389323460750718041424424593417067013147278952546536713121294384633607210006596925578452881960233407364972548456072022882887879450975179067777011249003073429463851396000165621722414382768991211429729064904157697255956699615101999022082905748420609064766815354925683857346976448820781454904467809238027242746370969881405125088503132295019849709108585315441403305578431923320380366293210370186920974002348601647527317257305564803346858843837900654898110390705718579566507810004409715015121266992465876071880899602745832195685805338163238327110542025776983309684539785418711944872069163625203763875503517594632958473340467704853848858846521845005634268142683078234078218076269574411814450453978451797446747119339042641651137988321606143088115144126314131182124188504097544020114067600459547923274150919664555207017880291491689410840167108484236382033975540716354510572565234059446584892732178747143034892001809523716535532101441395765204500236025266532738798149990685414813630266388983556443356109520383958208476988086651529339386812687138126805220998118775725357539305789642496678274811560747090958716784585469479608885668585417682215342989805459377167949119262536238452547319715352810895368114665898357663027750196882518593391386645479137316561522560221561187981628415596926491823164020925427222962999699830644396615450970459989351371823120007473641667864238786805061872429597952177854413147226784819096513915315877843522256911393739543735141497063373294985699168760749528089087040079564933139581604895024459270572002304800940546795914685114918839720211610730687571391356681370994929070852412616929930489301736243977401813407391846436311219416215499931113876516640169362891926428349694885509091296733024085615553496813362701953582660942897471194146215512022572816960952714676529807198999324113154385194600116474409468033187338070051103582988696789652219859910792231970213809319981019508555588147055649073177350603296000139044231317704777049681504235475783905141411411787590651500513377023752496061259327448946724217001521202033844025455512070614397251781804414266532395750269254646384657947930631697774906602305819705579479189728910931461102061963625574663534869214875838009310932815341798065979394550671989054816340357584082742322866816275470890404691059065000630191928155919348850070871953196898190438834139731200906228889722739725303831407212399897268284965743662134235309640512766272804876412595287991084433641249227866074695218218440487398935429599262986023415045326430515823805758243299951387184427410049651526640227970806567421060892472355674813330695842000331803706563611146210925069028455825733154279625383614105377528133875073128212740258140147605868462831673174436543279377401200201492516558141773060254593789156332506730634813527682787454600649849063763445484051818343764054501994354998664049753048730653639241898068258554110787286479478202642163914921695544604348311372698888201994011852544427869693045877932048296531864489206386376318893563984943460287495732672151886704365837189637226636967313071583999388766195634538596542872862455879006003860633000387326799779362234308225589598488711887614328825936671353182072422087271602968950355611911574662188797897317703958929281669125956106790013757838493630788517324799007374663705759856730303699287501624696182902704144663909963659692113791377713860490287650456750191145631339398471536030807808476201187361254561444754767253258250319803062255001735298539224896702580248961788962034710587375236157000794078017242017907790595547859079281584888045119712564639383892382149039104931356376467084454657961220522682134729642309735072487361157361604692145133258943622842944903621625106214294304638357746324624921873678098495408293249161396744212550666155495173911224788520317858165088811593185617680560840279446771714787077785116279873724232692155656691717774619608576589545475643187388515738367481658616993872655041603176427133448603366321511807355660905942993632085918264708868884442626703169749536674916372675837812411493704450903208780674019457232779595978928930262058110873006331248467557490903867940193136866495969571881408712210931723036751946743304055165646308620862180347580338405170661561222372466698321619407998148460252480894008733534364953484521266839239044625671938330221709085536860497326212776185319368586271451901051469226082329932509124442427537713350538379311386485393017263139355024410151965726696123465962238094829505933733858367180897645446868760082425023102027618117217687957050912620038646805925495794851429116302329217716654178507913623284182580642123808529637254761020642580771693621737264508575151011447765078552379032328190597772899610190930794537002197728345417631236072596599892730543312743160204699545400632046733555640553909037716185481137924090723401787400620749099624275716967580808866068438955531053732285365714208778528212880681392807721698681875420440380550256634856330685393083981170308399406520418316534193312356612982853960892970325883855686517332466710137047180120911813785587080427884084750923530090752418520688113105725101329376091373332212256953157698180848945764234361605303212015904475725627797859231477661327905865880730771846781315387258743373395741030042717667253439986201387170671544689418067895863156112829881769322349458411503359487258170944124112908245957016942953724257309346534737904809788361106144012482103071415848982386136115434499260946942596949920656177715735192583409318330032644649126578923496741785844802494794056475281855033182050553013030061516452312860935304883798223576578308174021217639626011518520358775018808199412216682120079687008291442209230288495226924942701412918474564500223969964621158227565958728212716927238632595011471791451652861981023606721080971794080447354575102128522096673552645262648319274107205074379663639245036300118910616094458112530902833614230345421904095573701788353517656498663009149874653231316238904219865762555699281116431267720313315246026620484636318732257133072972103355868133328111464120157278616609616534395883386689324266098406301824088678069058960143349500306674620648869880914455431488769141408118134362771560104110710965152216325083102199079599521761645536867455152063656174686192446320366147990834812387892559384399734510684349805106184869544131586837635163342739263124178878873122693410904995024248485714900302576585971662731736350067420272693315520409949774521142900435073033906562123109897505601362556713474109140183984251245297301308172028881752106926525327110908597112847581756989369407193089011719297375249963832417751834313559562191136722424516542677849618031694443897458464735648894016907223388729422296918882657687289052413257230415433644962575828609251493431673163356470037353909010539588811431673786760336843878317253199860091659181679883998010328297160565456964466886949640027168425551293734796023044887374067047770211689371270507838474788829814038313762955653348973045631283666614043331778627233507871307810308960528089369912915066525698743574607527335268977607376049074547059761868492100438017330588230275513431328260709912447636848930068087097845356589454417159796908472546586186391143140639077492868324654213782686451930552265640659587459092923422413902583003715424871681564568389885709765684060007670330523410425765703597582181109965271905764746337215945831592256104375687580909532565983227575785220965958541910845443947268138193318706114678854579162114987164642531098886302246860789164882264224905410721149517534876321416850922870099224355743366351663990182639213831186364871379170818221295896233146759394721163931583436666664194387205360751946887479858323385135318738930095830527212483143515495915614000997487003463472003746115511412469041505709617188874371969594201511218528657889937873976450431534363170317584096399231143714996379948969654503494608362040845744300026670362841014266610228040573384403184649148624606868442954032768928621708081083564352709874492621175959914045653497482521074673391738989655235661060643639251216615980668147152932296206054637493751942740926189270281871699200523232065301259159649177224073801711969202479673024432167405934646107852592808751586975200809291748760130250298630446652438149814885296707012749749263287524773632556458015550834379877222111167860260454645497621084022838735872811910684973579791480285134099644712122776414445939957454715264404782319580643346828157887834905430582221897585334148188109224158822538393692734416398496586155413072658818165477520332063452886462443752093513964513486063102191601501928315129398697280963919165342801096368793957291419081082337528443278685174803047337538954998990115377569678046138063283246908816532842918191462615634247094120917340047144402920409222541216512712270641575104957385802204408441346578949818295606235533645507269894240543131654053764616688274596846446429227345213699714478287698693356637381387610305018042443476608799488863191169337852533405834418140125893480018174569372895732797566876234876627441494334594750887046226119133341996831872436729503837338256971150744647400287099870350488323130111396250196057965194163201942123272224840489692467001105646506717231932332014340587963270107728780499278345376216024065990609733153583300604055950113716167475187190406915978679896246180471674744069636846687749269857304956445683589370558282663574523795028106512914327549998910969630117051006189081802186022559710281914699419916427868311397673971002061976842615147110213498282921119999294800721358658462808537742237402602231874787100210275587497156246466514365092464397182618305978701799008374341223627754423312804739915405084428585801357131689495472926769629637353384884557376231545442892342723338365155295070922602062190031969959614914211993735843921779914497778939379803623339736331644385800324721798401672511090929820071946656099929657283524726503768270369417177623281019570016580379076262111084129371988566023156337369561335837175759587821540306163534758344514120502773362401879539275734249158219488889844965245945120359890512655656775628425908071150302087397814789054319068165477076541222245472588872821759779061401731861515472295823574613090735021081450083087627757418790880615052350926067703571370652198763753819827447515682865075733163952322773939949142745467588157605439723996562867369263438398669405348159506282374975412094880198239628746750003222933723284217296405066490723535653843405383780962077426835848329990125065407955393987499962659913825426411249457743861464505471045483601815948412718158601008788567760717190509353960531626644993885779378318580679309260411543268430464302262959163104971531366804861026581781593425784956499202640827947538624592564666020666623007715926191817676967832118631177331943369020865698474533095014941207246282645848480994671828013721383920778242133256644741643497414528969142812559924302325938345189013008359032063126733667032020369483630997036414997513093802642088853125743153188514247133814582548057731313048691465345206481396137862850133055118089773630568092719861887725582344033832419036805356520681823607027569649585824670493989729327897974688088262131091924192367275952535677368966773250803554619215272779008082668967756289205437744386095172902113681110839740794180723469723096592943035987423507332282506193941066291874810052672757468859404804696872066327869192263075368975482912376495343179213124240877870128353064776082444111377776812130727229077073005263787915727281880832390236733713848348702044764378968170604299686753146918835672304690464877369766751138782730817008829936917637543766824572702031442750881162178830310762839435415807610310546954988753833076092661171680078035120996683940851918848181492601045525814474002322773291963891062484391476082236274914655641346191194617459250361543248733921441926421642368652982010259668561463441260692934549339345511403285833513497320203581359920268566298453429120000933682512529940944649484259410906178941032846494727916949072973196136255135193483476137020420638498796421218304392994175797793662386212721425886657292387824339260680001232472751621322694585749982493642651103208618306123559965890512621180170620828455376308566141858775516727998389760812476120631031647848962589824575391115460477281381200847896113866247932697894037186375196120905635941873154171926317833273128040902399583256910688967446243366717329697420766959135630337858057461464894095822740581119063539031693206338320319443671491837776065513439983237295652074689255540641444650918972133976366254934938384716303298875231645662380456383980934038947637200591134076685143516120597370703484501320361684093486322072656059149048627322927848158220344853282400239253657894227277223995757811051127929934722756195488604232191850838887897321115266070382090720670748645029564861198162414997167542161032135012635105975095418723539572346923356046796058144863060099553890020988872227470345531066660525923357583858600878953354128787024585852149978338879377080240438028209882950212373000027701769901670367638227357060595378286051236776855371217811435820267297922587496820165162948844954063456011467953396633476353715618030201433897272098989093713433725879610611469148685059447825911419058144266190159475494142318957016675945268007769545064274773302548870552337348362556614353798152147849912329132165149792109833459589911502736387265619388168729522265936640936033090602417599347458574337974692938924134597663417653314456637495759737385750450885201982894976843538393044446347471621677961237686198680558356851327845400724665088502679959441414737985968246186748117809918570202111107828505901294003306442288730013377406476398515562551025251762017215357058437333259681417021058081783670915514568286714147564988499376663062944012858054583933407544296681978102455356679054579076045053410007437600274351847269050415335787699360571653196668737612759927381016038619512201170293144716230238533158952456854292037764382725634470023408481313271771132787397123634216802182399049636298482928777120162513714131039927431912312730464720131905191681111718149016534968434841656130646097443025032026468336275261712433036894163584014278012208514351037606660259865565355846288743423545893590253045741054491181251121361722213478903421607853542854421816021375542903485251241135352469105887244508766483210542921846004066989231025393189090172660363479151076918509075003095943689364997875927092576524410098382663809014317126355759078842269293641460692520071805927442283323009574278059531915423169075212418457256129496484527941992252598354419571812642609853276566249625524157627312160453098741701462501993526667613912863316892148261472585745630020817949777142322398591343126955879821217083706104810256072769779172064842384041158658993978734883585779724548185878772855429997926409740935673747041479581457209990278789564067076875627906827382349177636196507991348763962537022829496554757132886983642243527781319488058756036825568324027172138481888352999083598380613274233624138808012610183432486355822487764205512668876347002583407574869822577238500842165877976419773736259786676461400703486218483079236454709600500151788236601251890528354766392520440537712513132164380309179787792768752837404579462839047056949715724432387061030108358097094883859256003611048847765454638903697248878102976325513052668667568041481606940572296508904744576802903357455160820055868852960975846418581295155020534012685834043019440368419974607150561701344099058603928540675874896818421046020152164360616610846497590367955552956134755248665202812470761059837248025475691978375418195406278610384317415682559497794355574345485365798444851999836424857834382577991119167926175905971386926906634620059185663506306621049154758573816934499791963196664198173354972804811426566679460650196833344008073242669257922114804683438070013367111698385121526472519083442925219969574859869846766718313308988407040994964933439849347186868589182142810679937634217940720710867102516604908446755266729049035355497818718124107851596207727536826100453476765599354081502056272800401921330527566804222900404001962294865763363332671414800261248782448675368277204868366378015765963553124319871150099629164523498557268975966981983476131027488935336648093243437907390086119172552150346997540380898970696515728779208744282840534349313789324427216178086189510635474327170028242991412701924010500209649794348838238554411500161586666160499294710813659819943927844220169893445095153755348948670859116406654534863148327614070601137934121524136904170209391065628808536821496488559321047501761505508117286300703362255734696288259241290816389653925274903699441550317865952304211622458206558606458886594712112908628597675425610317215851850640126742529044940946289347444262639408695572822285424771364760873519344165379397411841826457953835350052542585194719899519704845055388155777218132418344907445106608112353537659504507908886106816449627514069809377334257588958536638338846660873937967034975540697798130058007747955391077564160060961671841449212638178423185156454833051353776555430719074070054199384461953370359208525873024907364200739116891065515394801947912613721362512918103562483090687658021383583545309834832519972910303198466306125767713226745707175893665128951850280100802737870160518887434913977245048569735329903596947793795462815032099433744785515471389310256088281408776885954984438209925356044454437591669824182489422141133585535601240181890528185677216123956789540349266412310353059822028155269389096377751380288631432556021429781470373174867677053244314820535147656698633424302369756424841516087009779567466174394555392250215393250868653700315886145584243380855823946938078786428534482025619092213363889293863876757377238774953790652332382047516261729665603420307149119162230987852338053180465710691457736282611430954950016777534461905450593496733031052919134835370832087290903701963205718645604201714543304323914028437160363002177232878959303117961872797313539706714900704826530979914525248540811739867434682420503975557166917220177349533699065653580287442733985933389440087287724036479126043808720415446875516165210336763266411677364197163327620094058105324662537105244345662630496398003708634012136210882677545821318006771371928782066590899112001906156442723078784831465518275360037501182903958248507410010197494704683850813266573011669064910036137930997094510667553485847672114907480132051333047156489476838367920247774433192811296082706974229447759062312319780295926903121407411019747833141456141092338484411179045082837998391536758821840078249049742876981151061658418030020314564379152130990493247885276532716910986456878313166946908265827312934438870621437673112721573757095084414517210598328258001893420092621356783560647223309036397120111879910430733468076567234582730101017633325327039893561302816726742363931567427061181516329348844520843177780162175645068318778184290246803147334393268436793460346237490452567283439487364216630691578370820170677779261644047397402338378174037233842388131003545926464878138931781657454186710534020947156226016225044907432473543454681185740127708756254532200247991428180691281313290200581620839146421955134849620964591841115636453988539208266776253699475469525538035644116527919397290445400422457562787986188459417895758951632776282690485329605918602039916589011337726571540422410436126891691573380588656956718756239072330377900777759161362927259871066877567798658638648134137658562951705389689831418206360189057505268161365829969718748957119491553567817664880113130308082275112299249459486660834545679609285304286589191368419756778864770568125452892572185115032406290785964175783090460970429386138566127309288000449273374261924410964741855671912456428952438234478012133732696364209661496808783385118808383216484382076310598831557972700276909383462512193962940860219737475960243394676325536949276883855099474281770922439017101123139606925962051519853311172197350677999724451719292409553033983803912140943079134155655273755229784381127816947153061893561632824821043390732688710004132683988907847391241395284337347690799583180933976528858680365479678701560740729976500644584592602306667222795997576457900221611438610169308774707290031939369904489534552420564649038456526069457681237607263187235323384566648877288116377437471872972662506299568810014522170215704266162875427542295612868287817856991095184294594745891911165169811072177157546879725520796541953544757447983684216290958001640347991413000954315849429513893143671869587972164765722106346498586084318507578629762062617500663157750745542838298278485696483376409826697511098865311107863898171510475759214450722211832019863349849440825934289823554818068795601068189111338935440166495375403411459701345227570807411109910301063687091183932699844344235595138543807377733167490322962832370127530589200648573545322672549617889955205435927499147142038003596827867568529714679600284429595494645934948713508040711041201578276870329524869731628225111083591721810636388978999156678079945974079051089447498199802365431923648841862243299433856703436690710403506714946959493671717862939519117981838906159472729175926266556324186557084309345193242852904797031247002127343528491157162758373357571109120127211135107478385640602113926858782795537177519676573443862189313231634941641240638641702414685141611518702149276112974346272116380617095572577016349311708280016128487980080157252449442313678987946121686945686146622992138283243472478796572872350553180975883509959120226437136752897635587725143987691165625872415702900437569563183049480280917903261363753859225547003045326597291825775365368757337066587553935925941417561702414873306405821223232978258691180106344883176069534573160400744940646705662312055838552487432759266296744335753639774159997554246076032985455319468529940453570050025202449058115781574170428586604041957655171465171009744601559602522267673754332745570397352593051606412166995226155393156138374012848103932936958312423451210131827257779360629123015849975096031833589330321043797233618594845507832878723470927299599105369566685093730842395051052644123054902675761572134824642531893836381153866602579512826976649098026146516148883757151480208200066448242104259728195509969646154686282222715363333166337770375033958391317722432940872307729847464220669220772768361007217629279368858315537611995081783618235244029503898998509186841732734702431248643130711782877626192886069630800798002288128811008047782208338579519927059919609562438177061380836308693552476599411660285425763618304912272005585395408824913034366614712041580967200428346184513092927323297648286161017846026327848223510866551776319461302485032477759143902442333100756956777224721654217094124329317704059378059399900099895633428566425187747698361581260388731395398348389133625914409025390221175754462004068892795512272105831836538516743113059727003582271347994441312223976202934660557594610766275194295202682788319937193912767374445843763662778046716957127452773462631337914448218769187380333366020297216283328008152331480868776489753766963788229984589183069119792613312929254173138612282939754814064545614706128608670185078686019596552384738878055140011370076735882929344946563232429060281066561808434646073560741408705146997213080441847571832226685422527227610516738854029736053108428857510602596291378313497406109721927910181998256842803301870096257760459126697907393418298904647167385576877562521829935288301231601128360651388434322295717663984720097705966109180896180675792846895718989857788360163559381383860538764713050034008523121545540277529119063034940593384900695270498156960730070138111973699920014685497761200389768088831306514124351206706974654879809104655998007811460941530801505393715771138278632514767770670820859305833581756525563967668441531092028334224312265945188028266583702337616511821792450720402369374079796258689790277017382815807324542499284450877620956056304201312363223793995615204157913477062880675754116000149055135752003127291422707063613230832763032510857068737177710266779649312570656790719185245290898903010574815772563305398525399667068793588475067936012701667029306160799510149910427494934433854446003552409423742363124699019624614918640320883687840675732372410337228484704681072169734997505778765442683848473759422851242175661529162658456526908877315347734643539096042021950945975319310249487914052669319702958091674717017574615479198777769673689719604483561469393304640491112521273050372903941991221510348671707216301928938868595778420869699972632406803972807365520973381957707770811948924379931926801762043615076913827402500602154692850421206593500287252480944221602075148266670930419450398692431578155692472563943111289873940612466878472423107937494578163527904759285526921536562216691026200782504024328179567223371711367245880157974089349014750316007765164298699227781434241389940014015886418304536803427070198162218895330261636400126609936911294432961472327776820854456346810918752393539997404931752924550252537495255083308657499036088952464004454489615600098599745436781400625019555688781402034416494794596779433723957407448179060215579343260923113141268987124579709504668549745858755849383198110091975412758186605585524074184787229317257969423425818680990220840528762203642393405495663278981766581569212314084830080488020286447151374666049919696635155178274100844758764769386155611361937918736003508822315682617279210802846212071020174645012156949478543668631323750004016557638384357258249901534769316188090684219110500460894485589679804300335220286847121619409768262306656648373856174351349776888075064772152426912265797322444684533067557152035396885457432281173247688232753775700942275920397855966155078350986943979571143731942983893603531707508504647315395692768863014420705604089310578323411983553453516498004163361013214180615751116245091757062876878575650753619404057700757517023208255737019939114105208420982107563241303279010935881006405228815208815351243188419317359991626494298646971702407868456085013156089681931629095191834974947180738138362878769307123847360573223038294086896969873930205610223360647626183598263050756854645945381842115832695891774491827227988680915529916777595159384118042163378165720646157490951598987494743268602164559082331744528306234917938929554427003376596887459004659633919395045814457403465414117768591406563920052954041065949272741402360909826872780474318846870093819255041306384200155833959194072610897751595850136156290768054900404692901374570013009799895069617119250179376007000437362141853881541286909650474915071948740503308869954798148180179576588907138699511859806497520477502631417270062359556641116655941621087305568676456053389619190764488060448844453225276583459551298847046720762222249691392330368783828781280654949019605184561472471852604897548560637405214492585089276106759478678128245652962654348638995778354594411458274289539427905907897291511034258301638260666234174859029597332161210328144313870333498644140269369962369371809702024903478680198475972995248720796113995130727867935695383707931700761799668346580877615211602819071967994205593582139514663468849999931548131214782536620816952201223071638968616371066709958469877341928328737352764385584945059452924522045772844933253992587214442554750685170308369912952574415324326971284735056175643611075537449409643132132703575122572229001267018188775289750856303903886085368906516503887211297138336504963243255237464029949597708129124290582494156727713100469655744652510738432631322873972647248955457231649076160378964747667505071186932731649188013747863706145232303186573368467748998000070052069029682784009322859765387664406879056442552874260531658727050427203517319072938114382185370352220506301651981470210054728481434934167846258404976335675063402808266557422489586594822749205951914977122655627908701055196619896874234810096202157804872234938126814594654006351976134926838688249581609592750673760954462260489658159444375198646346761819719821469491260842825498697914171507581117152391427009349792479383617689425345151215185182989406707403494101309714160319603953924804036990064136130581178655529889610119459710821317234449774077791029224706211622677135048047396171589106655424716665466046337144239310902769366841482168267712626610271242210657343568092581720238957207804031144312622905741601688276885952267545411932628707099685654700164982796583494340582811286251507675087332468938016922927824898259569315090190569317628335527555593745884473976738896916008561873404148879045119980323062652620065401802522537684618879140418844284871877080038691568815240124397592798128848008716449127229925885940438017690706919981790380355856298454578050706351962083732275455018276545583024289882092175464312864788447830843269980445588465477972207006159007258293006302512169828774785188228413125533045007364670401129670020514327119564959119757091266619985320522349237132192427601046171432118316511339263655909869489465491308418745883642134313223625037519565952255789631620277357170935269513962067421092591307208858061616733945777643426334765314560365170528738464219086970465668755807511972137017549366627662430465828024349771606483398476877724591771311794849253625706247140801651967302268622430911400122109373964738569811804298481159767221933285598079184712374130384625944103924269302151729693472553591945663469071585595037641417268498364478691843681085686170156340402970801533268168733669680424112953588916571119777375703410022588761901467475431750853145085960917305968950153441268167866747210949148292478640734274820657770325216787845363511897561929245338191867187091885430332250563988750671257537454358294379749706489265094250926977789849533401928462965522256584891116056078946867011129345687127263996783795749381498648431900905830280506258789385284997845380162503175399140395475687193485924474067712627023265075550424781641814444292059454683645209701096862267040135400328573231078920574498128468197227579454102997159066664612059470554432158478646900259091651364086001199747084616365636772092829365031261861639379443544206048334762279330302836358130476022662092670933019719196105188116519968198252847134377709787139216703046190829031367141967860590620725797168988207172622966825660741749432520257775592832624496700859431568306351257345631283661383769622303879181007575022835106388438286364773961832575183522571958154053302638636382724683690829604675797043033924302904249209958903924591091918408976312309396470508803971014360239588081241276884136566479766261181824343169313053667698718658806254571057505715251317563312529545121709994990535296779037133327047776538911846039665717817603571126782589747358614194399916596805434883920368859495999757144818940107384378450111080461301568061995384693986269308100998208784029989167647814467024154102294748064421330408387691094642155370855534355140272853380865610261536322802578090676257451101066856569719820841639007872737882572134909613832217413548468657852851514534841588662296631037043893149037904010660739684130071371443345012121738797900881312348227431561923125944046055327468050922786541879065093148571230171624739741378665416594689315600106054782880504253956498011365953710087775360241980912348277023988857890951956363562191020703507242298214231878634077948518033282744986192076241266651151430047724515925709483721803067135451480651121240038937587841771933328213308343662961736096263478412550003776170294161045413638541776917340232616333611737050027956150383198013664087609130556184705259703367165640186538164063599445657108601186421720644366272401858616034944964337753811724362244325076535877059404093733993671118300726382420517861676115332845219524257979231243650830958387640226432833008001142581127298986400448009556968746839856529775482786835462704898149111071232594836054013285621818252781482166618563982457731574514586396283286210784751123978828421857005608777603599759151579827744898947389267373561300936102107938343873288196834729672093475333197290331320918726276716226732595205678184774892964620135493283129226266032988007889446896507883219982987886649240271891845946681348978592384416132399189008937999774359782726238779541271207037824086073028476330790628880972869811627050906741183697897785376840908255593856255793882613800686016379854769592668345356886887239546088388878142231102656055043734444138434426863594444564769402539656719084582440502689632418362533182934166196280228690371560074722768794493025207274576525593849050532090092867787257935031657372155449242064181346569156274108955940398217615543827419001992783622038097410344629972905497254494387020312039391171642176782330740011077134330699267135975138901908680633314193228479256428859686331746618600331656898065498684698199418517451770136574603852912705984724105506759826791158230365600489859073776889262993236096704026298372605533138031200734900939792232659199721362462248137503376652185735678982671378964402064666694956251494241605245241486607869430932530034307209183679774958662858165373158272340486472970726183584257280806494652891688729098814024300077024038245762496411290798759871013596776852040644914489088471257426505429945624600825298407357872448696181730349211360522027206300080571076130334546845676853418821258211415758636005034095847349103334688733012689961341895202301904895325720862803474754776142543735988233885129639624990905624286536733358194766408483802750382243405941444433511425280181824883289745670130238498804052563906563523552284709214751288027722986387289339453000038294584214702411237756261578137463829234081771172235178816350208469723511216192689820271249527322502838968438438977352834662346462411103775708782348106642769801933945552328954562795432073554250376522202242538381851722656953558083810416138426109084438459884776537873144405814315061727711350676528173656244075488198219802395397681520030301341458893443239703190033708809350483342188902377783725315996167753603168402709595070914027274874473616671525490923910693876851669971107344902015638409363578353887341901529014658672400158633548042022065554755856728231050196641974598517592464636539786395137034537729378919960483701934063137349618906952394298412263566992638484131250573112961921423770720631773277067176676954752219070077950893442486231308731438371895273175328515336548463817831586969564099541506536665520050541819222085737534083123994788974064790859165553336043578223364831778491541921891591765155207236792308209840206153020159294237937811226068155081442775409034216431519006077864584953775568877390533292021926283674452629839839479981410415925210167131410837345091756077741681467102535872672345981586102476631663197629236651501871195162265204030103359135349446780521296958722843585613255966058903259313547742853639348219900994443568190248856813474613403574193747226499316465821019873980029646214413129816322589644487359188253191730161083909679710319536538687838952746232272160424671156084562586990392566016115328505711875727032251271614061948459399910096934937528241035157345263190886175368787949500418803509245399732715883252853561506582265716743538944383962588025053621888289346017475560147087072301239948447863496851762588831164396383353262997138567430937000646503009281353786116119451111295057175289580533759528926556160585386207187387915818413632559143319800803741101452793025191454422208227565639057931977825783595507221639306876316032763205985878342369396738253287920857725644440596400143515090480803364009744258959971611641706920526086560039328085471856020474864169259213308940261039993015394127250715436842347712972969053319770224232809916005873825768135056294419929570655461633237288826984250699739639033331512384030710361614125692072093614320717818837290871818189232823605901348125494782631603824014799143065212512067074480293099474786607898400206042673655862654929573171106615090846356254112539372129269410425015939413278582765796377134093333263615560495814359638171377203647294693995917156807688560029400468765149316754544814819231225119191946783742234028757773945063311516501811806910058262611841749110173657240307072658759283744561479458098975935030934768885850443946843276765727950468135297306387577075900220402710679729571954970083823776152519739563350867439535580804885055633880793614741864514621965968044347790137352137690192204243039789872774657866427098465797065038386832260749512905779359236015461667467030389892175123928342107028620313379740441942365745220921441032963819418415702559872121182149757019359448230798507049733670124745545989342234504327001155709737304172510024204924359567337801963722683898341567624622185624594826032876705293599004987438676426255787620700229117266548410581172659574020416484235332042665538982119124557490664415351664707380833879961537378756491442280086639494687357978691223831890938233516357477625163904839316252205724134082974224358758936545548208037250396754314129801526157362584694002844884223139648493009718576557025548233455513968753955408201336967556551490824877762350159479709788571030293836105850285917339977602320047845149735543399386256256872358088102972767139526501370429005857925022791779017770196304798186095923034461495321566082341961177082288729423236185811934849887183753209592888398702094484457396623080248835542970572448257332197815465255159722008644309147286366872660016653722604021271008773771612421719920458019031931312239730505870472790263037269919195228128460582253854596422362396237433319330198141604989113313042005887600515940992752466810891063513667760820282448380971017556264345731541287661326766862526603317026032368949134335700188184418354622448600612279511958984501328599057126701210896921892726672652595027801274987789120013232921809923593071006247846258455120606148369487559056630892838806943129949161286884284622848017597038045547505835671782547886447844541390151845020576119456883532585966613799393099157138253896792052221892561518244015048370737081234815957279436772826631789665109603483964159931150119824542972600683367994745021045451569736052624304612197004121583676957161038682796571023255903060187619463824403207525924734788645679371345511968955106909623723446576095706105670337799309718872015114948548764199238580058253748555832588588820895863417473118650126117843634324328138148484389625267360260485594737614071370517738181761933163714549622000447636482506718401726467604354410446545942011698934805200721052257952086433400862662944398349167394470858864114269474446870009644795622283961632440961664974534662977224756684282646296416756678720894854690553875197194404681756220318632218250246719965115905626518524392054850290192720069840450193798045007346705335600084677528521820496640566501186519890800873807178658486682222824533341226623969534280290031428576030409884051227955202741821456573012375078397474608010950752754566633338927510282501233535228992089936659825630161461364824056931367281390858162532114894872927710463998016901209079737905033323701889014259494409118110414487348204917357229058326457366532839443431793119604270897101127204082727872741974801660380066419997642630877864753349385627880193578674715086970762462710141353780933334546711108102090026516346978755062700447840048197464159424159404543153106997758881270083733242422820138667833479841300230471100102614609952392351115388089582252203458490197211502339314438752714536821798842858021074269051166533098532200682259714681188429416253189682380950746411230310971614814316441838518227872180661549011328794192019478112836700210555856824389345140554889556429729892314006709228796213593222431482404695793120937362440819066564346269946346573866200702259882110292894055206989333786979067469178795163570944391680699701556777235893416182228380073679297275353339398471479153947137656955709423038346732950341639036899584890518452482456194082455557069319720762812721267543333782263508334519737884985392993606405877222944994171678201027155039687778603271306047779774342903289687932524514328565698841548853794163771750257234030785228532697272305566466904360714401219621365592982441747224483168446927825371024950684261773303060370486053647456673062904599856774178934946697385423065440672266153480447000475017934757228595878726873193680338524114222134222753276169968736722248601523868317230812040036392010466723314633216876622841033352511394493972891735642438076175797498685465108887314542654049951250482725208689919393687840389190786113969786924759184728531305197219999406506174194713837292215786322183137022215331237050929842945312974133941801622838489036059722454633544869944402354856994445538337027750868958325054177798174466312277236846756131664471892405506825111874628591854870133838437348194428966858463352444459580118177896352632109855419112189130533571483205400962419221714308148947987259154846356459273113283368970512883672464875869380775689358785210056529404906540108714660551683223396206807138653190331299461882137489285462372569957811803859823522989041771108496723468132679840708737414387216693753749196710508176280327288841943807418240568029519046561294245461672870243434542872393986126371466840026986552160801481646324670175341650586706680443422763551342601383776546597826264358874484334874237949579835064855708906632028808668783779582530755528266017484839802654465636803782062902226009157448675910439976746965463632015122846819409861782295365957694331520897813775531489172806612239063882557993541555820937245226548152874508936029316700299381544309429207229976760414708260478754009044847672231893176826318200187890943568172171658063002435996590231822543020289037169047202850056144748784395519360049647052945331471476940967135442463106551957253839985681105827187304096231977308396284088123421441678323835687545038219023095397082140297644404517860638882441476113817224773369272872759349181593604395982374650170496730348660837856973479911869038004077233375318703825034736270687628463900489446399347575874873527918909927275972664592380102767101961827666426572424845337259511669557853619906555735155510948557052765023595321705078815362011335657571445820864714261260093239105009928637680256781001953776855907708627980693798719852613378482803110627273730007630430980172738576165235698756773455390649591269471776478312014809963211861542044415732602911082371503012636849418892198871669674064697477050421429234659882783452862299531415795641372055118386194407338382456380223668216589306340048556728703842762897016440101912052879735395061684986639482170564577713896916161790703401421258649301098128902982530315813184130461158986439015162680189633175060864785810634986833308726970585502785951992727898586695432146132713533058956917908752972626162643732503897401772880847945006654807806355744774962052277380767818157605690097857662229381515127591468255795923578469918054525692751274062333213302510356402676596004082591584959640235045355380800312783068575285480697095300106113190161569145340107854850785836999903573643116513057298459685289216640213235569376426842689293245766146568339988416436593531452597975183444062366096715348279060585630969393875459065784880188972787364174350084662319864314900753967702820727025939300964270266977329792900629637637352758963118533757968581382066447290819511337124624139602730597842249834552715189387110001866421323155839449473130628827378856280839051482469007149253065414011020456189781623277719485980898359204065366515073889798290515986815590693211494113519972558721670060164462444434400476627236805007611576300354635532695478266486524591296184777876776268380366552338324689829898609800675229005599129653585844503509127220760132280197819277249678199494702387121607244073618063303893136639414559343029245468551668034905669222471108754658473213232769718686498191159646740618612571904187031404846661470106086746316735118618343795985471868144583246052840577809852872711191982658301197791972412568853682401717260946853960051830523622678451309351337478151136282502222308800280224300596737186722921161319815832678051071977235928373223091995940329330293187633144056939841774380364675980014783664188532234205802412258296667179317441897022691435313811674288670879337946843934658554765406213874256086070836239792283078641429097565738143903968440661992576095906701528741242854238101956148004448731959478660631097223167625605589923185443625776993535805722203976554237270632050244816029320118881687858427297777129589127871127769288129893622787842637999026052162279536452466388456841134644853694186629338173911130635484741574486397915741774755616884479449071377216122994502646620831695540466279201206700956003071901346330257112981574013991618757143604524374266768574634201242297854000346388733014278368618262160850395901723924824438514481914223938980174916754018936630215956152309783205796401236813650976356366624184463612320542042762856025910175818022784817553222699423385093485041107494550550353822012267497952889113007295225310384066991688789965993386870969284250842670140807129315993654089480393270703088765301563382577108969460771721090342091471676169921552156318729938738919012019778321606450091129595571658803188345192182918221464746545963881372242568385788452755430182782456465638960671066824161735534530441482190068160824736944739400782123598710473847581320770599911031226794570215800298094540469265367010297196160528907386709804736909882193892219298799018545930324225955596294870802792945541906127890314983561570043250245768863895051371407854750588157752699423477999553859631624044156852996766971250632586983203219922497145443620308110308933812471415492318287183516481877068972582461436539034403596331972459955952732801594730172944187714815139924878071310491866957192715605493335674652040240352233647667802491480872957904927611623932141876757999116967817176189684499240284621564519461995878591336696339430137804133371843201771838117919001313289889958328143667309642102183845942459571337332315252031021833220209342478036995976326129012637232556427739281399248451016247296372835268799882839981674520185368411644258452361471757275058508444157681422202528952555603931435479283503686797319404587530160784832154359662801236114471285529349936337058942893019395921597408371635156129691249010816109475546687065611673726038073771567326405741354970704200431214233355887911956273592309388106212960054980802151700989944799980533587351358170084546471116314230566048073606611225490114487265326753934615883685623063686242560926141565400050811655488162228034082555998835269996126520703239010563563258785109326279790555585056888354691537417121053082835554156341412515886362357215157426647575308853599694558707973507321723865288966449984648344145546372735866107831146428887088977050572745836636900609559792138582087602482155282892275404571616251308373429590196514515546940161092528959099001507895610797687225473861245128413142201640288347659383258917259579146162746708389181867925663945367248941397086802864691368824178931631154589863509921657048024395444508140290810805858369799891287808414154383355175447946088852228569327795673722021566865994567411954259010784792323735305880504356737968350612640780021888572263669314512294368669536444006529219673160731551740972746783082230691953640238709947319260413091338664620905157908040229226575458246489394932644042244009994052025316557384938263629950851999277521899908699177852320809124874891257050830199059501726023477694432806894426413948206384472718616667015266573663084728630097972895789374604660135004108018706564329358769557670466450992615883102430483844696362408869857303999989463956117063357533848922701460038835572720133330559889597377203022904289705770672369205557321554244733038011081728162912506010848098546361915040565918792473125992562488938705239259791706032893901330375949251549421144103066108565509113593802388146053130082498568393541005182250160447195443476496024058884648164144191187826827788002104210570925673608851602923473402569615784316296751792743669087004192964963402674736231639525836067528887511603277997741567718121955655762941434741693142360393934929566728680541966729782798797216875485088123712231831399166967501776021985677750096018029558766094359434944081749278600486909512932645510216343395609006071537134125763424064887760324421879847327626638702781154328085889637503301147904312196316604077266608568749902614564065841139569636726382687931090646883927081402204432543209045129212221835284721839441669009060530458111016427331222050978388650813182557838179417324846602149895028195732017464954728693154220378827178691689307995404588852400957116754451416006782205308908979608622944089526789249150952931347265596755421359349950445874345231063327616450103947894646875730059723530707432913000122137389842822044730974586391030590777262235164530889734085542718514225928567686196077239832605608549127985912710594883112026600402629703642128203788654101782690728679441014748625753658467010146557673076387270232157609601933839569552767589842452098133898902859318094993560776075864133163082895361214472033474468327703104855168865628913681310460373613951492655635985029749548213571968171067598942095718102918606415426976085844473879189877992906464650230043089357697663668496872257933968256624511631334549029452367935002688425660952202545929483029271799278463388024471713640186842820374096744123554986230208195142051083759846141372641475359225871283258641444608334791353690903699361305289439441257655131163103039381751671144583932256595035401841361205881963854753755436631730439655457526293475804307859123018233240485036392225980534457208661012383011354000506910972626035268056103009716050406924850959866532013985419256585909116252040711726655381404226998028345508853938258836742561006938415749791930125228806614089397953921126643514349212167125791524522621938332262621358891035468310670819512986114006949851681818742519753959452684772235424367579117860392968855480390932150577121882783582891097246844343746817177514656753995665650080516791777275136118983717849000578528529526971602181332021071208731760853991870452546202688028067159401090556412703671896667244420593916731519740489627832136800195197618499649947499620539030118375403006070073497381155299257181375869104204077017541649767694756951576852864420536866901470944542918912417831330611210422070952951012171525592785604110586550159637483183175494457052522287556524508410196945539528560442277841094540134492717920731701539682793177652954557362354832321120742185849892962071026208342422888447949308550215860116644401516199676213146911567105532105197564282695354896502815317841353851327908751776500627643342321131489075809488882435686831987985818692791513236703517790665280684871166532118227038161782002409789209952992352969509664020033720933696236377151140225791885474928741280989447473737583004046946819032745309125485303016996640015181906211662624162176283892608525684096288844788471156974942867621832325821411766127189205370608184116222983191429188877915741956689948780083731810155705936763963548413249083655451867791489806344945819992814039713393706562705399638044990916545572462836847354480845712868034705274636197215186053100485479013595281056476082177699857537810001404620151241258166438288367827112879916049220697892931284452806888649299837707679974776606566021297086800839165749030405860741134425300117845415521923005527075425100987587876401599101252944128707540318552433258631449513426171333122465292660835034847094586001829596288923334913673835961462788405532834203477368509036085666013757934232800889775502902795774001555552561654060931074671144848183102920851539614045487367233575041247010935261895629478399600763031811552472665216201703525957013139415432421423402244151245015621084713984829710194374114459085881085906214040166885041869351018159950048626500825885821886151088443720686445077483695466005544520490915280223996525434085409711739565715704593675541530039610146399157128474197862923040142735134471491966545339817815777408884598894116422726541794282522237369815905946385146734287773597054780291562575907270042561754699859869959521873225791465764037925004716466653006208132004457444904042868453815996521544377805415902098809997137181516259238991168367165198448774940600396831749149303556109476739812271688203310010020681146571159742291710245088744444660603233885653764168940298530926286184506090664970120407803573066111797192341189319471055916106403117528985856819607491372273401708690881922193249828761568208529717767092996945276876102121458237433133714143274103127998872643682279361347904320802240302949601242457697353259783131597543381739667430147335838339522589082883341345055164168450818030769968249082458784709336290588466485215578379383040156954879062672606088012880607954581005984865031942616619477683295526071101885720562295563811183422632623469527498730318960510581404134449740673907825082807198651317970905045795061287537755214412401909407016532943574400723341075277085327152130744205979371837294945714654909646135812230303817847628198351565588129990711011337619216008756405971186704602423749265321977006159190189092535208367623253147782448120471854614065300248428843584734452643154440258573527566280449750888319910909603530325599051584200435523379319491729544135180889585307599350497426184635642244090484722541648274938289125535394060931539627078838084157787461173075425142840894328159545273271983924423174836027766770214984123364684017242943604828332328369168635606480318703064308202924372732207522442106299644888520764000585386714806101175147155967246555001944223173818499669821255310613515116666965111789807842307664515035458514335829928284210518043727449981236259875186009622028088107170086628082390209353010474458265155331438071393120555018691686215946993424762366231916034958605335150147340928730480724703190408432212935694298366805355054419882877673319969560662712197301399021681883735471339166745480419197637581640130047099746792794014322889603526925463944056891019966965030261965703273405625797581001911641770111184189890205929310734051265197182650856832792049267965504677514709682550149807436111630076131462836063738265304119900302917443804898815474986341247313293529258014124942726860883361685335025994843650697427961512862736254177354131545663111642057215578517690365685680234259146858241457451199934578389563307385417652113466669455461934153719518417295593750618526793433798443560844248065895700942992723914367503338899991410106046482298885778667851415905163570198424084326999489301423875393581833872594354396627627550399170763699882647810473967991701536450375653610995845664066565773265408435841707541685411946867095224184774645098330443792740682727531499370176084406090924281637421304666303808644326046545223055639691073929416928188026148477572116543278014256284942860618506086481152632411544382380883809881354594851426117401124881777907479713332799533073734908810933355132872620988060115143879736863110048963414398386915231032338270635405172118611911674382962723419992893656030454969606053110199230293531936288900084223644299104169229374927686166510466868136096172496075344818152851111243671761255501489788105778169717159291695820958960301200561931721471689127091468014851532249488958733816806486799497959427298144908634910719339156946281657360841584485189794688493608917946004647182231507611395519157033894803246118315110883484200154944297771979373733230486531426076016548461655898777091895014854050369016255704742940572082162581237620796670809712710854604766691428614362514245219271694142907352608774325032971197011801277154255487745095696939199267919763642214771146177353502799679198927703408736419915874584567842427245490544086144855826574781287674038992137960340023770221237333603572691871472968206956127584277135111689315506261208530139699780552388878703083913553183847605320511286454624494937456889876633158385502759497450353128713590171434390257338668609745080809714336362342834815407259487762597903692140738413766403709359628095772435606816157188267868643581751477549465910998153942557547357467282519019946236636779098359156679830359260538200639472380274700332077494479424432389176649236627133047120808136841763419641498112135569948046190536813377054298938853350950802885549476322327943846675229866623474412834399262022624678556088130913490270161761549823591243127014134418139900341243063656257501627121386995204357479752217951033275953844442977404611931355896910057142160636438253125664087842493340853539869880239760895020668034377885310174356560324007950708787490394875301173173474423964813545786542059853643947942655493417084087195723600088954160224821335667680516161216914062263771915851267550182247913552324508550076901840295462549771183923979248957467518627992183157207779167366402507550906724399336800533141978841587780083318031472401978034597863717590099161868829109426885455929313245833330810081609653154597911602545776890064909124006335843195135085151857525177374618074217447417628388632484169463672188422853824579118395795002111127800839289352227296463354742328614191873989311388201982818682765440905849702048919957200587196032333700392714272927905210860380653848876551451955065406653231542189476008249995364198759877938176978673556216289028779557632184481328831316634524962908808236212489593312899657607448898762584794405073539486008001982292242253563221123983353812995979977204014804594236979429152505270194346544104177582970290630715359949027627374267024651631518152196452337913468891357531163884275104120766520054094828925961628740313019772644162204308878947770576079644092577725570517498815325735005425901813910228554100476909664296135092344359647095328315163453671171227333474278088980570518990356707678710114014649378636785730527381229172560311521398677292545402074514731768553981416734963006241455683986534421547913123909321672052338238200820717563001954157345591860579443023660723314629513696478525714396839061127662939913122871925686268477851015115214575859601738764300778877067112708929796707631531451738720901682972796063070490966965701421977524591041227818637151718031152521480123963396308288736226385417905847996863559886444465146915550289054202025997202411373946677184859549495189098167152930104003038353297776141130815853653829212294244185294735352691625704140718538138090533733507284065254282146118678058017287905490959507650489524408303729764775079776752177735293440564585078233481302349196162513438824602998268520797356096184852904598075882294956143815277552140001750285260510839020499704179598331899456309879427359632438538590682183201061332144099422584486107771855722294249537929344159385315664992213176281189360126583133991858764847671765968955486557290773597641499058183214598598032475017034953467428977732016933625115499274453902249126528338948772346563727062989442903122109962613375429209262680683502040472051229646799949044550616226958587674224479054098960502150187734649014004068156154634083621487132899347765897074604335109157697944968307547231702872224910757323013097544355511559318897037763608098276264821293797706616207440366910683797644563065063114696709849472661675290353843954349611202323750102035994834289305289963428038231501167040201375455678688584670243313153232193772383374702030685102303238215664970844039579874487990070999807178344929673413084741223735774243109055917046488599906071681830151776220124173640674143095961326304618351182143720291067252614893380385265738429771015543721883250941658063033689579607427015201258802088185321670098917737919476756073902086297628620813824933782905669960447046551091119102489392959512349638129617219731461553407654089762478457141871984546794784696402577793405506006395464038427588631328465493579606736385845864105108873537838112303415985097803565512756639907803920451534307941644300721224698820164527131449390907359963626028483934791644126543276506619939245184443160107961582371125672942400952493990868967546155247550109222162474903321749803943683803018774696457895188569315334465651303634823661022477270385975235889458512672353728928000737450979987999357630992563001335881149364380147816225770481857628375240189220323374400381041795368986500745763587158626779191071401566252089759035791186636120121217501654006672806904847874382250893360457634415689463892533058511241843245131810517980414404833107179300383734459218890753658595621827379963856362026515217690680572533960328929308711980775656866559368795424913792955327132663417499672523081004941137065241215613784410026377073499238291310513889805905677139621005439204792816655785219922419400780322148306848528248012005248660758172684224988938097584324349636596669191077501136023526559605609410077215789166966739683736538011647766658853720439497435310420778130144264105405697934007957071940693365328231404324085422402372737066104651184881463886002871088372875629651843317073997974043334038181419472592004307945768379467386720683272144737597752210555571086104138884299308774450392327819660076204794366856885122221150516497145625858491667335173729896355939255090646897706847734637711612986973647728076328527697479486425710386198407677307410648610575330268220386359916749462469243155291475627244220637471680435561169434150965045986113187030293563174009921263994598398905825951342331281697848261786732763751332911316545611378211101289406060604367204589081639274317247869511324368292079440207694630068626305179124471313595556368640446243378849330155230337033125666256231259892855938018872737342186133818321064982724637412744133555779642596870228354795308262296039530735925539936411732038725097852198296460109520584251574863412064562199702906786798507138848609326847867357906690461410694208256058299292918539916126351064972888710932597848423253840115650515573450179019169365115225539761234428002094804677345498350118129832248718257152421437823941850155907341394082777523144063220016825847396464190592291974087863674814342049733825812414156715124273771265100437438970590553046032685898611056524558294297068335879362503886798880499184535565991446338021614822388630940320239220925921314295115108589302168876036450744389630296358547346397021867023163342054166367059990058784683628080733447644288005882685258432550404073806506969189486288456811170399082202019062762585405478337783172460392730357622342448512948092139572684043334295970381759126990335857847948013577290533501004329354387971856549181683244054431381999887080576665602449689649038663117574892926846256825326882144814328915891554729030721808475579842472241389477867042646450492852861470178363761674178722974232070556470449446141336839615644106330702653771525013688819274361866814576258843674159775176416355854484510428849772056182249780017890385277622639833045049345704461892550359847909440518260306622908939321365272147750951631264257429170896899147615661460880106721342151452237676352428318287496187496032884874681167443900002964695857528175189471102210225016992650580689874887738298911484641450682982878802446469654358670825612125567031591525514380682476033956646345980500667279037663095905759722257105780934657876694538846698866964208983682482504176608354460393385412764457014159891216224241510528717569801239755372434026134205544953130054167299539583265056218571187824820641440176149626851638528899119325911811698792693705220381208493079458165568684427356458545230216529302594522496924027115848143842007209773602060840202822284649180870714050418980377592379339299713662980853583943756435809111999915248650390899733311026927578443775345834535834282615651531824633531523796415011452428881594755021222250145591722552174790310414411699233826674173977606993684938511322392967207613382535600341811905518103058328931095114721617347647015100286919071747258588567614615968338917869324447041992519032703466003802691408502183487924278090180682448896102986225892540828936433991360011729206482004567073041266056445970288276136074050993175054516656686790571611081910146744869251486464045586652343973644745529193259454984104529166872535518915165760996103448170093417577374495027325748355321828825294146358792331658128896125008475654987397318968473909315832004934479355666270942199145663430549989669502895859509214747278304787618770751805028737554689143987783845338607247602752531096552039341784851778097462352601455446445559980351557171552703150025452575023523184997577824040467981745596010748135532217329326026360637766323926805115384101864802968912622603104850307658432049919045293030681172050577213514337168609702075642787831536445875868888836788599464673798237008893797022879881268121811368993537717780430409750570664321675174263575774492505921175922949392814909103828547681255100200569752814683267697579495446712782971514451337206045634751238042515713476135390741185967577450189087749815913596129593467831852502245063057718907777082802683515575120288036333168841812539147069290106322007926548117714866009084221403828639501935685971239925784140314399390656214889515905013953055220848225335219681594481324470436141125935164789463303414322638947298531126394997608708059326066125673757063417211569322435247692872979066795406744497781200247601033866852374343432171328885156565495056729631913662426464543018765805115898908877656653870123705815623172480797477041722396768220479322586766035361909808276869785548010553325182903399532755952503187117875708007840253185129629237892982016477628397118910261237249235341020745145666906148114222956234516637133228653447987464811772359155244337974594816494676616114183638981349491883429209628093095569751634777562364808806280791868527631019213582886860872087971827935298814093172546992218564750270574763224537273327776472807831948599297653935946960417914735362863664607451457242429635190139868636111685194629852754354074314568173845683782396043716813864166970587995786017805812466111670128453218492203245976403208014863905924114158619381733554984320888838108789082536021616504349241514636915273304835096803584135722329752198495628050523447884520332803991785306542175321782694081705213432186317013820164690856604250660667628429578937053743505925446123312976971426082354613739972502761369268483619964163967795195275317388906705213337512386382085153514437512411117762243249299439186177715883409310157920643212948093225495490977061937652897782813381030739108172805634134442529408205737739472143700889361388101001274879213914330478036474833194660690927574365618969714184703947195319525355892884220062377229286505944546313593764886013639140828192971714907992624826181215477655819228415186526218428806161326517275362386600586835668366017237726221236376870721820675432839654519989817605166231600348087561133800863827381504588753181132832898711494410840202018493926899336170207116864669313238306845087043517055645089915903584055148990122075471278114042562051906539750973992002260386996513734016928047589952205339935926049783529832730195798269673113261197640245387946467280520390902189888027594179850635927982496746834549394954301083988765479081973440298676976191110406085729385750276271074571165441514402327934598561892040160748580956323537093918495799481689175641635638784531088982786482978231819772471035602333293250019419028883327050321010929552817083267165033139369391707755751482036767650128297282680307653607948860479325028389299869922598060851509773267796532002744195822224002095185374868176676939387651085377253134393632619975517623726110877538859177434400662323357901431590027285585783013061272562386313969460103365902460927605178767111813468478712561809161071327536253020851330516260878906255596021526299134330433397024078421299899268069423059581484413454228340445476733046433590486252410045567069648150918847934499853355638540560466228650254626751143613326949579601937130545964302432975673113996367113893896873288045335199865982574120933836402179708600600716034958196057537406273312292361164982729330951384904107553140038115924212845070558203567523064520955676470888965219058388509292661655054317661766945563845980001337832784028636144457775346531496859711998438900541451106604005181666681874241523891225599589377320790082262254084700262856732912182692384356622851601775638839515331319170384865045311954211924367303507640120124581047084040948623199638842448292577589715340017196043563231251934361341110344187089034197200325621115914720057856090409581000915854488992314222417813578116918299113723257901084678135104259661218693133255582526641976419416312496091202041180246138577129076060811992118148951244251079954945783070476256808197541273985540859555827148789200785067934956797064954843930942039968532584056103026764655355486723994712019740430772677681268559884846099461041828675585184491679107941583206714919851522229946559318249071679899543550632754111886649430131232261730354243756850356051545801967359033280436429407955763160489926394732319190273439331299662609953515758259230825580941705929259224844141715349321675210895757233846874227334819504651951909224773654394648838306961840914487202338581027267286100198432482692828930541034739646661091059126709624130948165392205740078710438294408255247493901660581690701932770331748350685234300304553476963819184580736672211677296652198059249833549758119836698787067116983105404785151696597855494882267344526051445474482289661482740969763219296239906647563189117620081482612160513268855509490601547390990968589256624218672797084761442212328624287882345309898937093375874468396334443759486273012692063587907967919045757045301978497351894631272188930993395521812885429255995369142918619200755069633650711745946594321275582087577449076315432758367556293727724533979657808463028345571292460473559563541168836309742650293301554163699130740097324879876458547949285298159282500381496846472014112380078121627635213425994768031324544703923379878843300886942419887653005913241758314182011801853029093521430260121959406164372198808917921800527587637999863439404615301583227080382925757658823337422552291230129487540734198752693202925736205290864891841121458055409419145664526177116163230537693730834334566094721311314952174158224928996871314203507360633722384623222016984490684250898627774687633891134706163220781159193480288154020698744561718307449617949188214166118154153363458994732880266993563304089220918380264009864858434030910309081047854674940627990702610139117992490103500979695689905396510734234717469369393061669165391260915583984328154554655308723814448357507596324539558618086035330416791561858014282623444113002121851742257814454016812987845831478442310134167352474063294090901619962431377946633171476209863157061590487695557633933969080316270293827958443657380259418420335371827116146741380472455517418919424883798123040571714651823540670049725946574196847240033300616321568607326393329998934651191082675717862997283048728466905959994780244052360276992366951952505439828574495925387782635963316979726826297141820406069432874791024482774876508097754251513128848058840657423208656101071677270577386607466019344424379877280116216616996819337425168578078040845038340264552434791193777156287684217975744497394793885306283890029627411372232591397412264982910615656485786329935765614715827843550787128775974846750954475901941603721085848975292305921230270359672988177687043589975119858094115560299728489850698617704929671673149711267506151557862147119012992093681400043948173972260762757132152528592077942863949072809882232915894553504246366410997872138757146923458430154942841876915884601430614088176424561427003138307007022267287503248760266183491581860580577486784753869228680072808782451133141400613914215878367765804969938738102541839579454527700332289398825496010889485906018867141534313920293640474064875486516899669497310762400015563782064441475287799941564212705975982908675198181763225234495936447408824350342844726845181160825525325653253218662589500084403045854994836673578640430042506915483956600292362696121633827263720259654186627105340018637621015248411004860562965634999329974988898034076998712222329590860668984233606758098430142970154670498005598278267237090355824226833654807958501350694375807067237122063020462896525635900524804775799045549294472085201720566041063024354443965929685148826369766992040120337186025678076393034246414772423153453926984644806043962415420498863277641321788964106462398490958643888269337403115890062985004419848469923333380477461662253138739290182385720467471006189849258920713655584279340176961605517064145185628768353147734838340093704643901777715062602882251799549738566325464674718424409073725498746495333252862008385377842657146346762534379840977923331653969427084555291886914576884452469702573753911151936114283665489256750663710251562417536600445972956241985922711890207218619341036247707563043332235918323301902686246482856294205257539533828241448612184634240094595713655747542003351614198249363093446117737986495731386291287523215265838945905358395558867960829773955237734753220712809466163862836518933037044270713751264884028296300747232687627585475118767570773961697654516743510999332465755063266261301695764145830596933594094741154500749230676423260515381525082676476794581556878741879439667605858602787424933523256513037955489874309862670012642344981457886959018299447529786941879135886000242235322319654545170762398091123538754870103887534761162166056663598102237683440626081011941701751106152745669731603889673246530951717570062744707795653906126497521096434001981782490909225100836913013060747178707278852370569292085394071903087576802026513083671768225144448907291356847570547842142004039748906189745417287555999036172762687888371832889432424328254413911400733733219399429464477600887273126074426986260501203404819731961611184590041793512127453725387439780109532690365960691812320388290173952915126893544295833140844896932951623449093748540470101105352289833254887213857243053478652552175604862874084916752189158598384971473423199854028337002070967168067557032097979664601385443101403597986566350867880219304271658805831505129972364357612612108924552191900245292565742709163770745936251469689874501370743771457897495680739947840748168324244635346137954883725991979609306597085002873124166106107928130792130376413832263956232260685522461716302586487659055571954752159062294298843771555934538477677598910181656662788605615769420751580384467061414339297753611325101067508396646966932250595061695103853660277408458753560505565230867253693301851501222072861705270821106830638067439372523187870190252179944456742087320662268892329170070613768945691712695946697676423015816171203165631040553994254717653202854913196035090931133885286762214592408608315718538038586326515560388480057976075679956143952273946332183679754196961510781565381011485401975688376890478278013850715299185468906614944069250409639257687598063026291941915387122327558005661814086654452232267187478023841876196438490867459886939967631237977452632565986371737991407867480736742158519416566483354330233868721253037334659311736437012930652232777288572047132734121395249365263496276377201102247268610913393126260956074231537961083192333436786502485066708006511075585176062266861856119962856379048761566013004056944171134302002936321563349146605829791076768863525844256067415807377030744364356897556356853876955800371695631215995782975670392827500070034503791941840081433582560205216255741435224774497330776691882511419751190365172962210305831931169656688944734040427792094217174981207701521107079929462005449406424270942821684970955824959379356776638730846856941536807071601304457231529393551389780015949544871045164519428485869206004314507821404419774059694098005514676311625872704053763167107901439270983385610855302457626510810810839893562059443352657253997772313073734551583881098377893302413606223143409591973040472109175176052832757447672696048619771547833802280682972539720340531311090299913533733920281751442378463829353809900110482506734754268178226517524547911104055890828738916522814360785980014021933254009196850400995719437710223188181863190561214536020484915090797458412310309868813040612180396871489100199282279782718026103273285073833537771463637233482667420998105026685496421871459753611848901025982983192857863699370817213047171146156207631268191099764253522199370605201266737674194721592578581360740382216637990767537030075061685693584599289795951908795958003202114193147013310499708219468604147113612919835447823870522215588810221239100894177649400769421435875797268559424215461917179565271481938693111592389119639507704144084132140792014435771557549898883257168653264521539141917292523588132956093845628489576091415600427930121928302519227387005350760373459794397965322809872209491462913302202016223537065119912249886575684557956965034173053879308774002015337856185630808094197219460066494868683833331552176379100439619263659671488417028046112409073985685209846233052822781345606871242927629448321516298009322426779424990058761222114203346491827658873881778010835377856831198785476510292044494109095581307380502502593995410858560908937944356595585376461092228453940618302295002966445024513627119216608259590391868288215572669497002863020117506859300147506422527179377113806120522799515866402230410327805859672389208115339528685715117211841852340021583711071002075949514821366505747905057011847823866985826724769471745328115126289563737788926143336661987596562257317390419077844639708334106061184326677308522092336860470360015148870164028218094826063834451449665279382968452374288697347091361962482135852816197886920261442379537025763558126672691164876604183269034084188684700812334910148330587940649429172084210343814020708694369693114908653636182234256180550214208560397621576955980389355665973698260572639220123002395381587604476209983066049320678090095485071437653044453927398291684149246786968138735491131799907277330645938758070017704508222263119132826839020040733302307021744255343534524994386148912393745725499030397702405469915757220269151198190961597840102784529846185423528809115253423511545258867716504430824829232940119823640695396975196020188541477634600476219385922544148402303221995937726381783214537831880254549467234364299525709744401187318989998670726653936010560603750820583149924541558102506849705864053902843897845483868447570601540883649452392875816424227012073732883538849395014907490702009433557354453734399012474586590791823253913941351389202290802394038879299112320904253187183420180830062194242071425442816549662700686656349304294900773282737900725551471043222607745821076455902345556065221690561771760944576862760620122458793193976736061197447769544584586030914972343257049763687175077956187674681745969976095252600308890482215439290859761128480583138851513000551213113359495236188268821499988317392120586411314182911913353505713466301991890254000762592907169994569122695614609618338068631739188416457850202303062553154297570576652588854780237713091989029447694189492605045244545145113416000398022127590744454281490877539970022840042971673300409235604088250506241575071648834319101221289944440709436897590498288998952406798747961733947841681197075952237384466475066673642418566704411836087623093054716442416383945322648583185588040890822743219424714015554375962343455296384174707098040265695641688252967996859865440665737127538718949658644303778094805807074847988140438559843639041284343003538603492158549837693625909786293991730181686919750431895826695595674399025988224979548414111409391577446065602689155379025613809742892222326701497809141678915390146028637795527969685141654079334992847007191128111339867191850050945654315938254749899051598371797698961803894730125040059185993933807111833290245632643604983546724761255760293907718816397558245051161933573492787160255170394411365302761107150718723578831175572747386960113625154248072597166869335152582517566378901476543564103664845547761090625659901427775966125566165521069405298020746159736823648915949682468160998175100687464646070496900838607094119870422031603409859161764307566914749434164663619373371375714772423674946926627545201963089632848905702260424873139819254815681304859257625971265052039373532763177491091595495628515697910539245818414524938414920349445848116457739099652723864480424663898267160038176812176394182011581603483692269338767163025888415606397121677533277090287988242757829939542110181054695327372971215585621711898476000206622203738312588982512333093996346835214362961848452453284195358645576995720543168899709754628076572981969596458189407515082624553986416896082612202518011825152923663998910223225520264075581282646528801742099150353235875077205052074449554686636664166738633246771437567621532738820870110359796910003160620245623904128763479214586987271329164307374130594431664767868596770394578407041853024555017131951222652800607335316192654066953212279463422948167008898825587975409509353036017820765821994876820153209743657318754316210740555769143079228298572856754721900218018715723438055371602058354502253924579674555942960140593440468341344000064743163164399858447863161723875189858369927570177632190641273629799002400831701512623930588959931117633952822288702114123540361610791485065379838380003080989508874298964603183325005291953425214028477721036170947064665650115611172153692705490370797431135040995987616106394992367829780015590981941475616058428996425346164900623900630383600246455581437356630628177917451384424802595919729111402269766431399024582558464949119498247594457252102760236001518350511665969594432251522555923033700540687885156915935102137429530021182464342501040539428587013820494384765134204089278422785136194965621580489516672092819862924492571810442327252406465587412186032252168392074954153697915774217724848699652934976635487379849434295440065489757886237717590544900670033657716166914704971229240572664491765918984939075019697894311918548798364885207754227566755676291092677558649315689405916867272907353065256157003494588476866774395853501063816456208938455872351654032352888281378627644640392081551134390630903468326365443990710495050237483177813108762017161836441868309202837029478900151291713093134341498800442991648617398344339037039733366827312213804104194465760744424860563941419570593424518820472812149292850404111806664996279895449190845518654216900911205489265523293345455553564847916231020559662066147216033541064820600169454107571176921584453335837038213539867447688233892109847490300611826612914234995333336139606030605996536015162554812671482439026640937026018157585579825779173851549677448509571351105889571064084632526902120208988165732126104727917844624960802584230402359120445018455267763664465032657392908187247941731281462196797339932592736348770008132717178362154298900500994755993412561130188994916613255945615104070387569871679123774491078322430380039047995261811359104558956707925462218492513830846830570771634389463067828051182651769935393564739380705273671299130940483093704238543310551387136961940735128177067580768954383621685857699074801326937797458645839346071886003339796270754517935205074310256870834008346666573952344927297201422622044616274220230275722868424868238008409202367697722782652599351981867905031079858447000083022879153368177884981054486615995069374364617501201484247032281170640046783724899985054870978378049116884361141486955241031475885202662555002670710066018421826309532011243408355368796213785631218233206150822986876930490333219699434192975894478043752711934171431478792269960582915783632984548789763511261556459615974802541699542428225003563629848398034327027091672271983955818833323020022849260118927383276664746166630639452128124341868496999972057796477151102894436540464321775262563948760331940210599981212431993946621546895630163284414149660231795379966848295477148664687105954067350829014258002248653243231884465533235008276719801408973169468437015379238923349219782560774904585182444905031716371804607807673414323672792019164199310730118250072451264586455523618902870730194436627476565644059604234110186070244037391276191320122182880154483855288736088282532496828903688023586087858855471711928407025423848409582720283902802150346750083147478813526357757036403725100462343299485243632575676607623908001068821239527455416277456931315363261002490479284699153073494571042426461290136513059350736879287300591200332480568202842787478571656307710354169939037701107935713727900156346961173417161653123779230429951457649613009544333110050687138437059598835848131037439104604825438162904286832338078426984973107368242831284436719707156719719151201277557372518645513739742246758672100574050642433079787491106315525121378035370347738447165320010169428625356282487867306168245481758064151626751731383682391472260006718113562753656347394158695965398422399434948451839248352872955794913218513534997552801980181958253139224078936795835935614485094707787597228283207770039209444982792107449439032832901895920972928380937161954448599203203254588303265719455857442978962280817000657222688562377141291574018135401966359371613012696692686558096948455314210248926754659043473498526516420544371968528091704654054847445213322923476288174189338341993640175642696803860340801256152242439655260710654656082003496161832872387191651795751014226486635920356457018737980007361755009580826193510850812904902071950800119144403607969011334336051001373941397387072822068653946684711019706431039383942206477063627789101310014404925282303116953673437215352296346866809343655104992547943079166180316418561186822821369690815354418082959433608086240742496845219828398621601492748997397370241609267253798505507243924229980381655406120938796241495514145465596253588520308931250941925161191242406064452036937502847155546981889244720121133814896626931825058633958179400849214431123498420436472929598828300399478442138322022636865593538002610906428887669258023793177773371716046888241454343048540474942935833891379827908064183104952579149593630811707825387580529948944502274977181939517511755234677708166363532787453355150052345680353004202415078876262283296242839724743846812550495001906795658633859992978062121360469978330055175140684773567136842410864818327975134918074728591296246221022417250110261277877767996020152843223926318204969727437731490252077288810257119444305173243486391649423727485695791512464688627381790717931449650143480057304917176267746501909746135295681357530482034694389799620059390606489843534367196318856558694531999859281630672432816559368124542847984986031617970379041151312091359232542119988048155485139768239767354037289884637756521159536657890534772464187921900250172151334391533531451134941118748406960407370984283203953037372183910636578829549742450392854492452388848737909150614588720720971719945677774408917968912483940797095233143916825476913273261536497117219704515605612028900163230471477703139901371947334488025223300557172815703260930561411318858445195788671175081453067240963813200761414215538269566813632309967127200933351965273042914455513100292931415654345656403083556575844736276943703314150762486234841132742019423442172044351742595533127723183846848577178363589899869734229159993126213715288840553099027262405732550112584966144905156637854217876215399343030156776623355620086772790583894617419165034602801042123596559790706548638944449563427660253128334196163077478712147496314616424667138609606139969882952734739624896860025070898086809596063546681268425108208259235032644153208976753463926587490662817273969668376139535302159341382946239314548844867362930024218804657263652865386748233219479531442161030073746321975024113405073179083237790760240694232039441913556969652282255889330477477539769793697857603091709005831969835667416936637100140910902736487989219872435759706864115244689954311683917453780296980520655661079174020278609551194909707070497621799260566006666872008309101673032533175587538018664513262836529185944932915625815464491249812014009006538104710721786054266147890412305182381264414224563036034038013618268419179532823990040139156863944269669768908860869256877387293705048623572164908456999650827232201191802621268073133914799507851113900572788073381440940692125462527648422438474028158963816450570887098658186722899087223588643149430115348694639497791759605514762763937713867908334771602978143432329515585516954149932812088094602837886046842923315278593770268246875089037646499739247141305463993627759622519929108913724154575587349061031494500551365969316460086093557722026963094392159407989825226149733759761614238490126786303124829166647571953384402352822800136897596125884402049889313253764584632978962895383715565087702322579091650311548596475991541103409629147796037747169392910879014270952408386590493041378797361283037023181305799965395868984738364991729484726813088714934406525932528477910161631047183735071605782422438592370160866641037710048976430497344935769466939117657897006058438549822524491024572981433006652404722267774742177213868896818395835403503538329146148251637836948049757514232929362806466244023617598751619355601802581873774052571438353135049376160846271593667681778382853984776850222859583650026763405923711407926247801858061916343692190753901313717122120211464392480213031534548497459553780826048916253615420580504294825780425055439695259552108175545416115300347648994091512075069202803167948387249617909940130599009822198683144653536171902048135519161337954750093690962620602953972582607745306243977388903510181367039412399587596878347039234998871604475981575257774453685205065310104777143642104779584817237995005460475516573476785676003884812116903128372114748263010097613197678038043645539573741519646797563881337644457617893771782053652270140859697906325491421168860239722597530496046599327806828728960649619837389922131221346734027795625693274768755409672704830641255027837264484924784566761253429563431061101999967989206025789448493796279600593219999995333238681269585039696772043976034017500036286840139333572013185861373987400585550457314130320054510755205832578433356737139164133000160042968877120915128520887664499914699016846712690981883147528223369313867285905985070048169415377392497321693268762651782022020691555925944815430137609708689593396966677692554423204014816026470203513816679240012201443888041404836952337710235596079194190802294300489669165948419789985706918832549288293974900141808801725657584852193165363700048137062511029509486074295736343095204200967372555849218547321197341754490587404230406192144478558653847183080326562606146390645986784098169975545536875788429549150392007198276874159394081015485582734920951311727719012947950891864437091910559458457307155086364145058841994928717674799760504683753338841711296038931367197504504748093249884897862028490285264929568897084258796095917131784914795466681792066073424148775903842973214107499856061105173003705868026107475716397239465012525193259262008983607194989083607102335160739266062979105361855687418982856610649178464938347247712281410320256081001423921245881854796763587270309386321723828545503145880349290298700728449951436559903540161718059035268485680633871660360618182373643212939858071174830303879962544914691382362626060765755057277755746206950815126971595281163662007566889214978828240160926528477534221590982317230915724613362232818216390484444892384030724896264602660039168723290426245915799867098986462789369498401660158359090679162946808251184208176646288085695044144838411927334962042010652028794454759156800573314541566984381216354100318383571823688436049258164144808511966539889173841142956719061716807598509086338576788933231930572851885150445219619935760272333927603319031467633577958899658472672466769196917109836821097716270255240529323785213354481404655951598085427185626122821966706440945687516080089565842442351893786202351854344756392593070721203552068117779244460363850952641298031525857105103376833623000948693988975771615126808723136224417171475032869568609080403235489473677725409406663971618150008981397775880026626721101014255107465779137802747935210741906472820154061985956009844513716225986648764268896642721844353552546952510078074873741559927487735737414331443986570976176227411518732777683419923911903458115591794400038220604057788985751958630022160843207533476412079169643877920836826570154915418266816419778679322823724268350910782599729819624995847825020557307087371605557094207942730268442582676447893898475855319777311873041276235479052986728757486684403783266470842492747713887194086660763642687041275086139184851254821212077771680863719836435611430651851256080732157402181015120761726968293129810994882809543907197225590446638136563462348214723606563078668823538588185419530964249355877070589505727998662258431091554264938354463400289559518134008897908788818286515999409006261914073938256727359575298979969222120448822998453733185073272256695324696842773315336551845554609434860907724886356468299426644049722232735153105140607677988206204361663576446923578476301218030604233235982962355243017661572722900263711568593870186638465321060247935672387270620362522085958455884731847757472255909897942094100134620762484179739173400093227609276628260947489614617490607685203680003611838876455580728680942952686584989337571683864109946147706173273901912980294255934842074059119681281335711663784314036486250637050981855418688313663854466532231318321461031620395874931338472668977851671207170486210377348316150912806658616897091951481316050862654190547743603139306570348052447438824429531165845968014601942177090193754894723285947360959041899985766118230982854299859466543581882639391653418100774191865320386721713908817716274900148176450525840144041013565207782449485832426930590031723983669402019811138891165701771542336864645737255607996498337854199282648407481960286873884407517812582560784897725082771986431415215189547536227185346969683747332276025856755798090168185338892808809480829185953014422869400212250376825957851325900193771919707958662593492296294910019892820061595648070217402800650233168818259058922403520119193244840705797597848473224994512771731008887463831885450675897757786145870517526942158772138247944210188799980844936332374755389648694183015400232591370675886564381288777569595717551300217689221128268246352217198161795763242389396700057140985046598969064057722522989247501639619009605645885305121524161697305039570806864250487073428150528599828004999528839734912288660956315299873425395579441393847173227239878778085425327491046660898787170959997070820269772457396737683025385491860874284016864573712430271070334791928863345990525115736480648353237701586850703560114411869384634058004948804250164594797291341531144822215722883451940088791538894221487359701084624618660494117492311967654600739771965808653103027306714927447673164953692978127694983430472730099171176287691246903014566466941623443220188833064125214704769391720137476511591445067662547614910430418967531131303114470090350994738463990159954735783204380934594744819244449806615000527835044627793412289146589605250866340036534477664001497065288871314176183927298904126139841173226119819037580543897072641977509031874098841583572147533637635270750226442075953404454980978344992605000970846101858616425481513339473722681652507783362776223530944301549698319367073137774879275771212687415590194129112695125172524521961921194612607035303945774075185668855707289285815249679380321003216490034998049332561638282024880387175328018634813792834071367215847505922907365243882787341704722333071649287882504021009050520383636622691804250806342184934795100060650378887304086185273254657169616131747349150025749273898895497932764896237617164050372507142420006804713223897682251665227549034239932207137528990672537581676667216056262557281384131872081020145693950861937165346501153308333454996718139534342991166372594539042828975619569842929186697729880002480398247492373445376293594941872660904355188853144300780468243091917233570234248786092787442026459953402564942786526372746642858501345702788925248152499929011034129134145061147021893262911986593930386191628948139668521458161815194022756594225242189506475379688779077249761772168666358588049499464551626148254625636021867862786360328457206659279935485094136462954641590344299593029658198911900574415897719628207962117469303809529433217890728110562014111417763732005108628463230924000943215553521255673974394913504196001604302799545548993931086333580998282204035065651890266034971554418162205959205453288813331200370098223988076723743689408971991037350075518514147165471294538885118473831646061209457814553686530288382160467289467720137961588312132402109821086841604667178724089837802257971718907279183460236726000465187344756363754971811436325530105724667311642048317439207685348187792081137062266266886788635001906517214583083771598827744102414358151730654282217441346340706048654911647250250427031949152471684467508280503638434667600615569029822748906716712753388903288677263575817264284997814087582472721518158836166426642914191045643849362950938523299222845233830528658883361912184648798477527493280067908504803087238833673378464728824642495989579927420757441219217178311823903160670052591194563023292699589060191927814482351850156216010499550198057947133061732488422110130246553444193574857525149916578119951545118679677836866859394613761250898890783418801433942476654649923368281589825902829931024939215868482501175951951557792218806937228879646354015579273422859942943618907818134890091164805451418988368331204688741444070745724966120684092715917373404945182711373819139388756059848839712690611973389420946789993475915888758479296469379660674787425449626236091117087546662439237320203252880299250460614868201017036953977488734929232214333259114287863218997139717213445688498033247043621539674354632342703382027758685959968869685271327973710636556876624563505628469048468876483111161209623932191685755290876212958049122087517513495134437384181038422945909212176809985519170505635764464780418454659621915437589183624172453527570716122758342738943719408650460423781918800964528959493157302007968358831396922316346032369675686958040399478134370212997765797410644256102713773109641863153504161749191849216268210154436149261405956353253854106139125272614548568018361831742134070159802757298311186735213614840125008132003209411126789591425467674483365778544107182372768529242576750214289121087264927996765016132322402901587789417023342193620443833378637984730723763516034126985847019583233012947368008704740649442702881768323596600843367560390111724028330990994568488778353770045515241229626345876935932903913724887404759413904633467445361386531446374986673691977089081043562100124904350421579542773838925820969941934679450927219728730014782331427354046683124724561093656384945089230021889992034796032765345957461561066441926017585558503345446533541730792761435259175777732848533708850080477661546168613293559818103745216540765881330023440380611487168920104901653365844935079781193273708479279175665086896498020749214144038673165214679567013924008469743210919551773420768963153248426058765022356902341422012887455288822621012284634447168710648207003258516495966022765043303473894971665853368006765826350654696389484657127575353386564591353395378903180245505171460517985548157623699934277598602512905340959810257792026400579714003721396926908959601179401545270150420611007902455583131626011791286349338287288089099890366378740480780193892295185271621762985637949663925351238563414210749574113618669709072719314495746442741159327482165379239503993551390286232117202864732962102927001975505390240474556218853561490552447705654100675096695644003761855770341408599610239265193437864061521614442391093365871501935298894768579478313049715360658895721714408967300215974253995566304310364711125361154825647190866116787717047368522400585023803458464059252393019540445674500946101862406035991919171765865997181041185595553819116061600512012439717729032816130127499076108142927389594479437879050090925836024366004719028744953423740709256180236966842060591978048681911406911871504649953681143084534578509111976478721739068260758928047041150157777694210643122540847850056909948103476460995118023984549111392576306607809243224672907446264828435553317287817908917004424891953067696213275246286799285428582116808377217641861675213987206006726489632476861631286683989090479733005930881961505457889802609378951282120068756380988404510315475225187263651439558812690859985118702848432594138876137067772222696962863470027632300629527437203977193203147561829779364419807951859104073159389107180267500416909626826481540870968652284503914878527492391238035711641101243881323042837909955244466856508402419837997141020577929505625688517263254380670840829573362040725012094960756640780224470840729604147134457587858940277100923391622723325806402868293312502718737464647757681960223920863719727972059526247859865572620155353936688441894387118611765583915473439169684613548999415018404967450159466031477842288019330019209076792665458225029496720481906542751575435722052011505996596227295760527636335482857206127165247218054272322046100835493308327641804618580202649982047604629836948818229613486759929250462232802402270323940054081586255217847843191513220518824197696881608787778839383023492303869715606670607856513775923158950691751783850396290239826214074651065110412127831751169040229957985065197222764345536427881902134169366306628143869241987674235700102853706441670804218527246824095030589208100877830989272037074757961861488114928091027052596690526820515454704129935416162953667995023584986057803963348962593929511048552939338346791328626116054048101683443990137378456954996797041686163191281048693990510667882909655860625808789043917575961102346959520200019404514169917618054447789021274847691056482282727651334902340525081690671099891619393346515060115574016825389998165863792185279464210140241199377307606149545431963987518768904798039231707464300302285601713980368861515747632587845826744542767216623482014418613896250944111928579486341869944715328796984372337658182108834412748916719097707562890649161245501304936858189829596900795193139171645720009639994882762980895798261317462654847319864445552704865326515636010080157715225331880859107454436697897574996850491977662295332964619944849551551766800750263740777144884086806590704027772227437451202346602929634880169075859044709572774773537599365922629418051885348723850494823386006483245712298939195032199595349146721060014938118406857123416074970143955210261736558766289751396383755779766876980728174733896411364659239131469467836031101794469272339563781494606505539385352150219410105877325706871515705717884179095763629907502817181000129010466983057640418199642163985393075038256523265355416228375931117590381970426441405330203309571488085672550756351896387388204070577758938012366816880478065718232716608668761408964558289478467955280276544832036713527729996756476079134952266226655420124677177490865690353881959581173717755554146876910790676250579632272283121466800736398522865857063593058570173856538984996938769423482928525110402548294305036103450237519002681107702872687813851385850707932759622712473545540456141364358640468015820815169435190337726161783003992379385140255600157810439956839758567071185000360974313904429327186043636893369923021104210464093763100354195251113959871297924651720500375522172716718904617595926468515136573539043695362435300886786595875752247542808538514116274493007858366894442269626943207071301267521201968309172998259721547098056227472189652710084705087373222711938334072462473916048316472803399772406398453187243587229562916940465363887900327404717921995216534653448946852172077422926750996047598343424655157907126853186472341927628635240202088317253629975419227704458112605896589622606831643681594141608409408595548073686674767063033554876187027961349974127362144925145020430301748609132024075510419374586415403915640452204464669874134966233732268691189627121044366788763515690170151688759996130109836635422749640315054638817505394535775901618626073390997055438965605960258399982096678882967223722917554811913752422987630972943128113577922928076846654958031415389359394887482148156548470157803685197998278838346978435817967232795291719811550521200137358693259001994351309071771527524982056663802992135437588828779038458676196484570288580322613917701087365459251359905650902105899779146429381093509268925447208555445788508925530242211217357626897491770658164972684305595883947019712288476064591808080067022734672205377432325522484856617326586507030162645280831354271125068542717880302951697406959544251607019654103774685701407068233455051400190533138876199152466228347756095484103161631433485504189062842371202032769000371032445358894129723509872089261492595257296269126431676514117910660129351573471522973236443998574545754296776251044526049816395061010674216262411015247475641081191235184705432539445375199630054381384746693498451666899436132175695935744744293349582515706064777466371053941425828316645331648903343889656859895434670342156678157672533841003182957252778763409509186244141283656137279245670303261070501774050566082934110981721512245403647414354820151941213859353311749423832429050232547865505221554921600011891457136168193204949107346447777661885597251474574901148230467712446773408614396087947312861150280647986212534546532212508215330973720977104497145496942817710893601770987206817279348307648910882254801328920212029204951728522522410847266246757012334975857703112016722730802914496374398239740550554929707977681606398052047861840886612246635572536401698586102731241254655942995798766151567341831686820778076752128306973333407297074436731536367191217146305698104056588821676828953601542838862744073229476015549140877942041382047243558206898351559794534596155580175376251348071485539027431826553662337847961754972435880629409344001067369737662797941014415313272626729145787409311642703293695083305899730808642582485340728547821039489500186547350643545051711656138646683320821681073632937146117233214886740499858271208775779060918755545651718064432525137793009071246244907963949880802770698728690832182194822574045554696737473995782016105465482760508945683216678530464037718008723045368711354378489708636858724100591610944964997833784792528219068941923981863498073502670287475414417237287707413386727950116174701596000843545503289909355492914076662238287946692365038204858827928670455452946099649378987710372583387137018982038870518423216961451934311200966272951291690185762808145658093074776315919084100195934857642842093083844718618518453109893598076643655533391416833105673496689945426207173990596547698358763469942935770752860007297188243905237390501660421202160355017591580932707750300969367342361599049499928075476138752596886587858304867835956423813852966935109868064436591596096676610099834770720724894164718364198411868992946411461587732119179932118350780372554471090240318654905026083234655501836502786358222059877965228058813888916092988391359403551562419441757344610679178485045814288342073004622217108711838991198509163879353409517361246483604750338756080102044655002688396549565610975693569428546129467488878193415655014096889731255530043963420937780514026143384202707063412155163049286018744500211434485206776661626066444079426760580932866591582779276729055306692363670553350978828698955573584744669428978976872979544645236678059354045771955559963565423184848400062617583106263172268525269998739464721404898905255107942847646412434096427674069234545505456628325460377659213175127592623930894812188399818095019349207742630966633066895387480564873784918944724858710879150030782092900730753701495134278488112940097611687177607394411844451142888103273326819909041127192862414687401247905115806465287814669533885991975046325307371270137405993083889052364105228607499863921743807580623458510688494775872396040347556352785434488416589043160774770530586134228985832237549766926397520895362272600793541489632003458362759568502193028542900333845384976205640745325048930743865643599200691766138632892308747197429632808805918091214020598933764934967811537202789083892964035115479547841196287702104280674937321220165897241114988004595564858187359369844297177029930836450001602201882237528307818435885505799599645593605758937177711096244479651831580732467606252369956787193134020538064796910118580463912776754431132861151140445274747618881846210250284703411098165399563963098432874016473263277943547914734935861576026824084706119266068946713329463811782166033108032159111527374201480915622632055853827117098172947575879264294324796040162560003103925736691174337730595480244289600146180240084822872276805656564894618559174696531122079102937970850731493669278448773613766599069279072744086812966233563988525839897211615984893703352486199930344993750571657054923012206542163728299802171850019592926754676339371650271864885542328686770862851502932471426098288643912923501259156526530227663465951714552275675874330454368736712669440185118765619697339009903209457268751628168493552974995342372621858874774684836731172704757099221067437054092492482452102329267841281644997789517678704125824108785421499848104472812999468141127612723313169156668630940461168778326993521787741975647078286673839202265542064531804872445831941501146397833845252824033314482416493917491185374046560093579395102902628981531565585562859108655747466853234084553892815691456529111307464287153916499731533807611901827967292469852099410581299779413496032992301618134094041230124881051403721298341442294606417354377139250453262625540420614206376415051804946821328718036101857092884362519195883512749856829224198070925537666950504336370109651176253313073848456877566038751213184867552391852870889151402897894427328769776300693526834736712186406660821257304950754780222875315972701893180154639530831593243009633997071271272822408603163226066687811214697919309454172464048906065526245945049043983172776105907707272550052402693809906908475539114822052870292053942051331401585957138243567932701284123905799021709998423923554344590043559311289495298972977676973528843953590848772962565811603125667503659156559742949454759419247124246989544513680681754640159557995150515562269821416395265891839245087832190089442592318350194924397390821285145893873125781299447618629594952102207192618767647572416053513673129105661301692101536311674760508727161359137877193880880420177700745161888507110542696862411877060100148221133414177635455897483669516780183636740179698017047999598074370296236455665055641471787000901597304191832273848609034984877645357586013459757941247933548728742922418994311540950445321955971815146110491522952999470636996038812266781202252883856095952604297017377910004794003701369151521414310504662991514476575884837086622544410994904243021950220342402004624486449400504270916863151340007073507982062799491617558163891748153835370293909942518019892298402034843062820046052133605509021050802687004985247994609790290844350499507373905749278103327200237440604628898168555579740675328031640149069068373767840684435668056198684862756444229238089789458365863431843162193590376006207108574879287474156166841655336706874999257350915756219187479231178616891190523776762799198930044750101772815250057214455295643001646446933631155147964404726629570613686745296389001311422749371411520683628296597348828674626843909473870398473052418121163716006702707949675760007705521923252790669148674527775570310488742893260766508491745875070140744414420840616735457880192963892275660019696410091308429874235838079165123979707782772847140068869580908618851252804219095982547170755061606404397720580895403906779805442026655999272867975057042978170105755182282603478346480699923188840322739369545842072397779933175231584652712587487620913584074197526814854953700139795880277057560933178371681470269979747515450297577420558584950599475530957808821254983100299063579748480529295072745571329493857301394405374496730032136612561003994398427752754411761229078117483124647226941337277736477052419710472215231394789524935878066098138152432919783831788363355203999100280016482110563887619804301984152698015285426430928438399510828057855378558291915060805475502447403516729716682638769907571230553505319868165981939335922959448927757589819161829783120639901228226042405345883095025289479194215216622676181809040582012543229844036876154345945593167915511590835313388355951045694676357135254318225279771546044881320150355089632467463188574153018165714177261221924132684310281761400189313501700312586126594177301113951869669479404504904661994626805954110268463211626972519703330262429308308719530493676213174293783773144829369223188073631393181329809624210941408086044106543447510730924740881777488154006803898044213042666085027785104386912084487771659312863220357089083856525844808951020009073082454062381080355491459294308938046106563514686878571293744222030550757077645257770404796541548199821739444375851850911579038800984938524253342953622521261323165292080390834933408058941416701930587500086798834395221211740787627973956533945937654185738264468496852260602863377650571219382756575594134987710228170981812076452033942529479181825820010864204190575182093818156727281791895362164028220087226691806168013676539860195223889134116104471498982041336713224628655459846984433930374048257713595140739410276774159383648822409900083751757128014533629387625407074833827920660084903646198471389880850984906139724073330670171802682116298371384174358103358202444893251258848489332508010047918215078498200736124615427056192578467702084665220913138902320607631763600933831577614496732878660764729710175697216281830154002673997935637307616932844795656323824238162453145309805072807616602823385739824373770403131812935002966213307933061419521222071569997925759023997325698157150534433845684776828657152112492766458243515283886073029197918940754750859145542517818557613627085689174353299361736526581120816289778485242744382833952223771753138571113489166364626924995813684433014394634676003888911233556399737910045931224179399020922598025949493798638473590293677280689025887411930949730621500121463761267239033968533974117907770226065155607980750757179357932752424307665607753406388663136349452173911970316269099460411967240694954327450679606452461503776284438889628259245753941183699299365073764458607072382483558852486315794023806797660507912942360489627259040998171246333585943890189667940111713120922889357941928549657228247694932507300636480298325580309155570826096373711607125973806517151651656567299817425337406911983918325563412763149588176028159889875278418350383611931564252850435288685956253625700419989931392140005186572700351271618880220251887235756179568404933925608219388241276745733669464264775102796473467460423922027754886932193766356305595561310318656433082256570723210581150386058402057545716465407473095405683210954914373316150708880776540441857714166618751602857932240010745979743197329405444278786257774183438793843765541203502439246774946805134862153965622497503864659970816043743593203499379943119543990238977999104223444475992459117767720562220088049885282199651408419155188085813655931692955974047029107793261766033476660163649484414424041726989801062536468385730021064112358632267545171538241761764789190222578213399065891781904114551317557286101755662152824874454103166323263092399436729749945551633442278669481455059398149154218111853721316230364791831181532070217682924046974340526309007829285917929468589839484727057717125756184522439712967097199032508743481022192412880820513465025748762015344135640828289204876236848446672852661937335299950273854328081506173428563024987728563895960591253671815315858107255261480518010672850931726269440374863355181982900739082646271464303840789901594398259607949634595136058815855913854069510134505896293146580882908743937468146972078841423240689371171364550313878838253325113715099490821199466576342718875997358337744855091965308862574194151520504474142306581106718677785763530459670255796695486205901417494469214697994720114398953952202539320215848285639300383650534725631128160545872585821101578838457044407182421353421441019013627397038006443299724953697385602156096822016805170466348290888992795346645274155580619903515443998575264070518129291625376753104590385700661026367269136735430293278156844301583874843426805326249006672123927145216669921329591258374726548416226625782367247369238444263620666453075236961088782249247922295960065502315283228953973080401534737850897666727343290786054479449020816802837345960498693829392201516700960437377619651559297480108532735735672439117630827890445015439406198539682521543958071722156804728955476095742664786495012365844176488454729784075385746264089084921194783053273150570399900090690836794467056192644220517591533903107018838169348662443267247385054823738141911441671074412919763204330989356885434487058221203433158738754986241603523334423717796486611784713201786591970746625517566320173767070888789282399022342587797349075229253599142750542137856879381541953376264586435443921304315951404978700769874379188200281807025816039270510035576079258540395789042728880992985366226473489177409256350330114483709424688083510929744432423898978254828674851104516302600126544955663839385724050708730638180699494684905799481329836378022054291623624450475001032053063145169048895264600014278252023200896730555974171100424103621109234630774957117419497606390901425410353638667342567670996915900706339745431153327328834342267540280328028422002070917694432797931466215212821525216185734621977524566910699046291581077288465863854900723657534787162423629809747905603947978483645264427427503425272784162772547054164502275807453844441167221008155993556195091843006091553473315759148394416250123333061153893910870724787076235609277493281533925263371184152918161913642394959067405751366943939779101947705751174556496034798720504983729576611509879674706343177273362285113213830850760600685985252845149073734391958496335753816439564309797385309285827417105461327453390466633452531325728676660426438571009509187138121997639199534984768317952349535897267480448211939762001444102367262877897956055952088332205062224885385335224639198872462923702992408077855684766626748570197997810562430902136779590149735665926627349567725252206372881638263348917038417055469324499450926392662681012673445418027591141797796719089680009741853500848147554726487292161331747673705652215117936134010226989359103725334320384773450998762301777679172308324112188180279806674826500027544586001163900731281961583774549947489986272061911844479924241401549432956624655716663526119152274262178018466191302200432457033569434278131784583426841151116325885563902294910057606635286410604471518193505673814765239191260337113893234855027302380743940421543031535810493307871836046073415219867322384310867888357291561587299174188219067266052269857950236612105921379187996823623462840922786031175941625519303115588189938268300387911294497641044692396221241117213545967366054465349019174696536051134876635394888046612762162676568687711235003828805600435773437614346330849011251281607007698996303233435538253222533392643012003477631328031581969947524833254496662741887946204246926524539476656354336210936058604973130545022055815243435332625251079435083037326797533917006647725256390818840185758846193135969060131059267058687243175102832309398848524122495595711215422225214165514190070755174491827640919395416576447563107462604848710129559451142832876612947420990492868528938981889100319539070993242154090229525992386967277372487190336317715440603305656554521410376730334200911211473048843972631387296993919147685967843933757684611381875098091857507975802191998829546573791644016589574076970762539162790079076689498289236448268662348372000704569746136174808331268468878259502320797634114022515324918447714980595093044032809917794467450222397546883151166683501518949106861311058088112042072323655795598427142373178927163275479058194959547702182475653586547709229717472870801907295091698798347123713008123485066857477068770405357290948131939841849272286143034496148868420151711182671161057274446583497786106974347976187353502325506309049407625186941166770397485764130548963751524308354390962561381999980090962593326681751608461043188700625500094354885163569019908583350427621733834229097869986890834799763902639632865536582066722182336243839373427461974645828490229408505790704226461642873361585202010180369552538639046669003928996482107370205127396115395392840425317960138769532548064802865197730365441876341556120140842485977679788383116511502527048045254642753043641469100461962247655565639003153552557887050365933682519386938909933986283860547966982131396188040957526359476779407004772950728427583275403041886481803574510565517742587721717238419346910401381081375441289122917920225194167519913825841875860836543833173159966607643289504146558127402929036389368450415860022295715651421292101439769435830460815639908309703877833619696304040777308746315111406289450075779426296025583758571182732334091686441767531717958359281303882262184227628983493559177380991997954649940259814626956984503238663108690510394316359159897710529491864866771427500391809166008245792034607240690771200325819500457719487225752459819880769194419224240057847447721706696610181128150104698190806897192273048006773313833458893274173796741872115850436743591171440459298918240801977784164071620481026729526355389432028013092609433530176537747132048255903167822783347968992411205131873057445295890143252944713466179589155621583684114483996194879231324043210090540621297722629357164881759776539523978217568948920782074388614560172003637553792267135318952751824415199977148555725812646023302083632767622793430515524098550932017333853612963309717148855136719588600894466496384694714198467229324046192104386639248963023971673388906329729466087544565092335358242714650385604521134955405748797474679208662377140176177409832783270365471602225736838546008703452680697876626477469726003167912813027449001902572277321931850349975515783866350162338904127716702564420013182733015418320603859153580854961374700766095034800407687226081001610847382509591884530567008642267754313848666899701309393967784214234213510422477314334923911617027501530605330549436988650622239676137176879112602515550642212859146170986868318113791095986650717186740955099209756993381566779227295993362088937200101731841430730637246220719546256416168552884688796669321601311403379730026397920100296951344907542139077744042102395004387634898855196631674790536518911111122431954115894925108886601045014828075760499542301097361029944502470157782562836325409066275673616171039733561975979571813533954932021997052376249378853191141035073943476743682552094927039441558940148710834134525870073551751315917863664017403528487380290235968208188962984549372780565186466468220560201634747690345793756913336475881954783682029779575515116094115829764812917451127800055554009774887248668034551320446294554174032823656530410209478462565865665060004166343248264371636650774030325411460928423465616964707175654009413301829147400581647061153881193329584534213929507697318563460063443497821767986570294412114214118171459915373547716661484848568379467185671878855190341044661602367747565860916757100080687780539199388379778496506401089560185963981034369385754615764337748319304994146002167794466408038099146006685312301269922704358277492011213823347283812241304258720950840158470100459798197005386859896912010057482621621497295488386579382472726958520826698683944250832627376258762784603048210074741738396307913400262698724879661619824001179567960043991825451303517402837599778344429960378243741798759992191841494254796227221795592888334011169354676927776962516387124619959551097797512299863769014430267153503412080058260759444765332026680644711121904632404683693483043704641132223736068862912562421766981656520337669699143700378258535598638780588042134756215933481692870533078709823620276315181761968423707445403131804357650334258709619302375756470826201521403972563008613497223681862111491373391303655918900642556417164729364839593165020659218132561142113667157742349773745688725010286217025509429564244153396601841157953283028127919110975729380405977933909675611986181249019690792987824407703845553531454444110312751702022021048463735380254701311515146043975835436888230425276845181553696944019159463718109475449259295377624630958323205211389303760310048921626751590407214614443647738900641554738264886900000815526111885864434723200878308023763711011899170092299431108850971388041868415419964701250888118245428124900243014439280945954841390051060588673148497135471860500700383428062496445653191685066528314272350452332925659897170716878454619947854772005062432738650101580595232727973451714067319234492661990218254538766458927448593474173097264276339625789479218057375024163939493892001756440875026243032712573997482096446666125983863850325452501718458717285999653463460364415614310815946038179686105949068438829655569778863054623101546042197078852157364480744798434754664369713434940096828577153407237881273436519595236288799394827139063168249469214459900382971805010732619684855653884911028198809005019520164570885703016012727844517051221127135878715765454471423365531106543533056141098917667325957226035321272355726192592918453980213183505727439476608098966300392943489112313220228960840666137334922091001253623938149269278723604020685679273200080027722312316481780990094422654614961058966768862974118274555221648661027514345494167310181101831419097934685189591163714077664769031596694550870032779404637732748753637716709716332743101449821827348679537184695423235164791802488118310968083880948282299018667319730527047117390360805716943732822727589217858548091773983008969073248987051178799136214636434678913060924930463387776894810222812497164133891391918250276338973794266983478426073454924198560683590470420072239669885734938506410615438256550368229756360777129636852074102560215018503343112495091881520731943614797997147436235867461551726454047172167697710311407513732909230900595981736984438831617289680305936905365884933379568822520966346292653806551079470441514861708843182962643044576632739063450838611866396412567265171921303728609522501626138538314684851167185251050217582940110995510551828507132415642211964222874365012528845405291871797448649876085325853749825745688127408834263873721779614933343401734495097799781727190977014537084063570170069513950673154098432795838096284935705176866649788441913460149931111841598710171811677125215137572772522217788865795145153324237691880087316100273700884719031090593044532777637936807895477030069366056493467994478159084845827804658696576689716005837038194983033404479069104967076143485069175612117663086688548300512704622824450883025121920741055482118614218534815454697059803603924051701913013143140846669476960596911478026875192034017829006630760877492282337983287082705861550678496775338018687504849517628497168267182006289235013745947314029136806586319378920901146049328396946765158597050301773300670528751221637568875069392721871716498019307321584308324457417890764500021020635497458113270802051170129842752068664473362991207235517077611916244516126589188090051455903204176194601384302590229545218634257704277288644278857423396793082462194610508745911013591338604729022353048380878017743545895884646349933218660672196437642860035985303215464337018907094590267611640049652568582577591104205512687075887105966598770379658289990739427457727946618221172191834561306211779589589772765105281357116934134247770992630209579145080209062201261277160022334016622716095436581086382126905952530177971281103625486679096808467119779731223005109667782195658886178653348849354101057505377066755445889079558571706983986038621984597718059671224540559001165210668031591197678619267234135320389378677139836120092781539180353994029320054005127767153249007595304043277702933247863055287595297178083677043009601095562729306922686897170904931568638291910455400668326729026672094229175127615819722336539100962095990869324274296120485898775692094198646947626304047979875165377351717184477870581413587083508516032801959462235664995139615659161123064117070872906815013040079212492479865149586728948158421392251046708188725880734140771052250711541149216169701451089028278148561477963022307357851843611077809358895425528965599490420956101032711553726986708639525880255519405688452399822359674369470724173881014641112827267155621797007210297873958925422855691980340660548102016340329498000028969856004843990419866087153080836519991868760015602623214831713975123693834171280673926997369532178150835153659323175850876104061970094489678664491142270980317302574407965374990500256770947710916800719191026859626713134035757417799961302004823444854465065401818082388710335283881326271775202929978714900501396573161471012720828302108561087821205353429358445733289685356605659598064754595515787512177375078594318574352022772121506867660189255387720352195324008432545722202137421226154016506080773012132778474606612772404481004371022605671274133900005494602363056244486469325047032992979486644490137856499189332170784940511199950359873058028377051831668174047205907168334134009841282964730495852765709059348253867170950837075846704918112124021412968806046242064203587469656556622491949435072545949359656841075636422302231632949281031847621053669964489863649904843769456522707417020158581036426970481499285490201676655883412089088158355918379253260135015404178942648339199177767043009390665843174123043697538581718346019074708896079811151189152929611981012890378652886217980362599678270532700816881814273900590756039371347549851687759950124020398773006832539526529732636956530729149379945779332233282663958345018495802193714728893436657427782879274002398246418192174452808719040325392315986428621122168591347137624513542656073059446191827412124064289760729469929943445099480359531366395280026360542984215379984646730441386095510661702417081926446908090631066230979376483657741946455050800462668643866985209055696523899532032416125205036492055673795245511385476214155972665410971390788606544345222357207330138195399298169355962464436696371915693911641051797460853579807277365964152017856295257109346228310566148433369408810515121753530147307950492540623049476775081965080262027783543475076911631954716610128833934027580574488529679110835717268862586802137497112210301373350847653138666786478415879838563285131681013928626570199161277183924202554763048912421975550655268160919154992471372792344067157053196579035970094402260194908002810336778354075709013777848438636846592620133023937113961172346418684035314106359049653834582967558851748214707850519135887196292230690396310085857833013691095468655569295578248287155823347988606229400557878807314118593407832315937372404673235825328070430418932489631830482361186191998674880623063768596813154732725059995221151987132920811307022333127446431746248387832685731662858070306011259676424750173051448280025367644482262639582692936730056682939596283934524151904372240846308349571901035309160493932785553286964031940341716158945729795342541266213443052979273978169356956727632661444845436133507284971220514194966554926580280654053559986831209271141979479191790793246894119254584411551670887486134037162517852640056297086956170680327893060210315395061313800185401438312560142957500530924016310521869007696153075415357059005394782265626450059515796390345537365560599121189103051059924600895111092875600320820547037717097626490222497740891719172372990437202597813303340382353443069453862453375921075405459908843525692702669347508571499232211624324476822072631393682165414128222717435838484353113821120284173474390444070164735001854124965463013224400628183857533624876413513683782210411713523275950293513648980833983572890287558103438126793017297045829138741412020957846509296555522379788480095148366972282912571654249438741323713186090027444431844700038937315074505910508025043898954197892997928028659416980064553799663431777842864114447380387721200545196838608364774917982590111712112178880017122111553783676419627852599199896820060166780645423988450305686177985234926594259990826377409857528141878520789766042846280604035129763400452412453659372034342059481459533487542556950284677710224726072335459345909513852366773523175447773462593800619075932177301206006827713812683975602020062412514896661387933094960719890577154605362159505420478574867474410978644797924919920950530375253918137742844193103050836724033885338197360090537804547776053016588229623995668623164107086028135065601651822206470506442047523733063685089615212906979456480319536080550216194185791161279645336269682683244114775616483297192713538660656759675825633103343739201110179874095511049320186682239024771549538724280261055608784039365379461718935032085188965543138326739466881757337640483224425905925367457967059582979497319984057676659425290484344388162285558771091078763481166017115642606222792143669608698113565061046500592972066818940259807389081877010885503219336343678865535741634350343808871748469847456129694490025852981321271611303362193553367390332845063633365025791189538131036891542734451312752539992142735497307505687795169309883101184221657005652372045271249159627537940931673803462861755616158966751207944730309478077289862995257571554996425915250977608136294820279974669003785323969076251213621190982731283570223014449650125438855410711878353351798838845541358544198869534952716726243162943864469157435490604201613211105214317813961047452421326253602631670079477097415936866229015706801973752999584601328855058361333497275624066237707446163414123592191925784226391259153823244774384063456644088916680232545320091540099584530537676621687970928431585810217344973602497471790836877197905395441409418429184261474642428050061728897535100265674245315400166255856114984289562516737568090069593101007701547888389114193657913071058806884989844622378072004592978323557094041999553259471403731731382549173505579329783420836116638589203173079873226973420811217046807676054366814927507250391497708719899387455418480692454955831880739158299752987097784560140030026543640684141284536336902318982648076245764226996413464013001590769614178029291759131674183509593790685191412694041048601272220505509847587126817304286539304288073716904867498489960444831209459483902836230747482718464045883713646252445769876448964993443906926726676480986582742200775016630264585289185184823497031166663763882508331687894267065427527053647519930446192138708852467425756575837283847852494433634884153028328468479887415018442407821623956331093165819532849473282520392471044791356545411058892643799615274038120025541372434799832910542020826965947774040248185675337545571895030659461448761527405644083484562467525750036016056865776008592210076897292482348841822430695527369348982638562094270193765782742668551001037486651767656166588972203906726381248532427031520801804009637741716437389041745019847079625593321447462658778912727426310370086013771112289581348783591944411220479751665473315821836292189366011749171066554374287994076456522486723340457485984735337183564707842864294256184873166637945326124789295573841535287335943921784016543953802358644105793542150285877930395424817749415382603077063490277396697597789704581181553425904909824112704695427081169641055203433081211044257303472131846988312561953934098207712977447242666655833161883061283551570335746796396775661199089083070920118238049178568761180290906963084530194240524957566455281481483288388152300041074718796425700985433641771978612196787764722413333165603929992149525363587204674146139701911442966788537606559199336656843429105448313931590608533842976129881903574812832468563451334417198973716274024446534142582422420556734701592029357623769613288451848041139011116039578682134628982429737070912060163689142838099713573180935517294880665207791485681966515184233434493670823449280354587453564040489108631091377710500271035435742963716256813715435035578555681064819925061398454944429284887928195257595497747810877199514182770358290431636791330488521955127874525052947502273990070824351645407948132493187372651921082075289457275549224322598914741913740072029096358978105687945956156937331362678162951330818715372039092496542624887514470058501209520396314004437241449547338541740411041351141036420070830623001404626351038236081065643227421031088703689743714735336786222627023580883149719527780409650063889838249629379781241177551853263316225517406383792507623588028236808525800971850840035245992760926593516082556394170426040483374357491190716059685786827659485213510258398476869894832852136921836240133617568319753791034102565744511020466169403480429232544148901655261815694606774409436834390290543483604543173852905675069033566661471170463225242869412788331887626373956635919341297409395118228607269741430939554853400851121095194987163388735622223498735839512492753776447770967600751281221501586973559429002348111844550874752836660543081923237500849872437084778492016444388323535246206932508640225242848031052912683508505940746336829102740809568780599625789720453933148231373555666511707936337370380274371698891512881422391726868744953066340978666873400432703655544573982463465873580613655222310778862110552475417467238875981863206061809299342132282195472343708862253720773544806616717434187413972484050910738692779010840350771714790349226800242840046512911362749145570843549029703574937431259825800040832822196877500874127862506961888257664266774678880311347002682035227256841294629031075041413022772260165601045441142155483694889567978477374256267389493287413265818649743438957094909534659117232178786050242546192907340409821446717822986798589925636171317298024406334062193040634157693969800733521505126376818127512446766149529300687474165198792326374287261265959326516765162369418639647447243484880326066820648960979405720650490829034917189469520720986744145481889362164064687699264242253418060241311469893821751263025803492218604646058082438730965204771678592632342747933240804839335889565573599595113104852410723316520617701013826462743994607555915295418021015154882028096138152342431735985978373818219633119676273148773390833283359385198521829833048953649151733497787717386029661680745470005505079668362184583297040726132024281034686673989158163722089844355985435799597903163711391012743002517200988018965773837059004997222478924563064400872600158957831256187961901656976489465625407803234062084268056496843558057467659704135026512981628387495303933271684293743087328409307848775955992760775108515498059258994537960689675181117966920325465162465064065097315163224606513177631445024407726674461172624736474587448644965034637004638432978534105597286186112377172222296102394365233938869822630328348141178578213226857916453669936304067173009336867051706352536092778044618556099091764706972964845217699908341021748878046468136181749853645773890181092155296575947526066778886178444472168426737598118199159380160910571691482163293699097932102261991250078566161918777246261977161464353740981163553599662171491374540617168713114791860159647400191631166591644634146911880682683496627691593373277487583354133876791282841606296254945735793101697700595245436106384258661060610572048680839454107210204738327226053918650289506045678012985694919547014120592098479688242370993177870917654268416063653235770528023865989189358266326127582150173245672037469514135215284493747886602512815312025330428065962835767259667994260552430655604012000111932295561292232521025953659563142246908713004782096890284687234928897658814213042270687355821385954037474528480953057413926196212805510714508668257384258906522494146047490139515684039733515436271240415311711621180220715497939563065279245869778661839552303144424414679321959134134420281469446955691937108897426202931118244378506483411272613706299708358571500797807469297619226126390967767580003154871105113141093230023905015014676836124034994310200730979041930188066262826082793108979291699012714199911371178803355483289960519777445821712611961328709294257474904995877001411221056875613995330651680803265195041561808865173167297250605880618097105285505786162070027387448294354678281267900691777650629149533096742581993981661974789006992091399535068145314449228070039916835567958134577180193566069802612611776119293943794371777492329831686799408780370387830916541115836543523202627767057136565092261012590515947237437889397790443997039109075289294095269510430517006365328301532690671577573187074192561650091114496414130081299786475802400546324145744675412349686253966738671869577055763292522628454404214419796673801668702903706985209132002639153270930786451409564664224796344997685613604482567960520541429895808679999275508728742123409538255357578988117881177479838286481904248171596480599799863862974801860615577884250008644649313920062292529374349298409463567881677068054390596368911178242142455599532970774261057354705506484059719902853918090777462930767069393771279023734839181150658695718752713373950947247768384965619307374625207536384473858074147513732674851200802123253549528296678108948851430640639318562895869362637512418943376117430523352981619642978491893562207633518399780994084099311001736742180375813442215067142819374989187150480613873234375008183726091708798036358151454948796969695781568764117650843452359943820092179053044772734677474401668715514507706869821685662266229788436336706207909866338683148119659665667211896818027824216237879936819554732912513895582871223875492824484235567991262950458547770549999127058928503265500145623464536623333794520851906768775625664354373230386533581148507605888804723707514227114342795237007651847282003118954216691525948580400738593179901622891972810538565655448903937308023282791171504338961154875354477737093690487991534452941789215317694622192349122282075839588010152889957854053283416937612178483759230779937301600265883472828112631464701523475985401799173127337187936434769354055439844848162479553176128098341398360108181192070780112300969600619934990628883292878142318029968770674548675085505958632760685059405172576240790399068769359579751499759529113620368353065478605253802451751041964096373345132548319512289456919538018652126825369377317753560534367468740488420049233044003408984279447165508955373290708336124658272631726255165385407755502832840878543334604716536597053584971832247100608371641962094672684573765845957127729566718789329382176318774041083260630105344448726623372988563316933595834552327472455044777340722038817279880074795559393338331726142704349848734477917552133854422640421919624143171933351922776710383145480789011155264205552569221304279187749741729769297458034974367827991100781236179553267587173254159206176781111608673688265309303612647313906094928997281824941803592274560258391983633663669965370356348933780347022806937906211390201488911085722194903102906317257141344242110365749781780646373775214920135764416492112823670472475047499587894328874973745351031562131048789906083525454439132825929396243032129121900518614269840388878378356578389869617488322519766466720719439376024187240633483281032540762099639100000313738792688032982516603963565272437690124921468885162329546742721388478611633548945803695977372457490414724420646710399057482817308390330874128695127892792743830776180534683007187724328953810288148567158098320011737324536235745460319487239776249997421378446298955170337275694693861978510714214359310092722910687230244366630322842219114447921748499827147600598245135122065174291815100808111240860182185871436540149512773137254120496498159865186870710575723071292363488077081811175564488800335847818590636615958736500050233824759326898097862197197247310806919059648307960931825343461114830099649131334067206480456183799855758885817784354846645625612203067134111329997370510475584559359905797620695340437080293182629561484447506093754677429885434416622234043832353350874367132224570776688126512270041752676063137456223792571809300214408620186330168336981234334101138555012577464565557994176759780626483668445975528359010105236173050003326816980316575628245560060516490197229061916632062530513684627633493113751765856815901545464360430943833274501720776045402734145107454985326559040847409364491760003307767028575081259143371082057346270937234135344483040512394212286887728543909222771345982069210094222291836457584928699389057353322188130849073314056629812408706416558388694569098075459926984735655336434459656907885081397493173536743696124954507841839377797983986661515124889457664731520614018637368670713072817481239498461550823647612033177257945564716366526635143224798846366933913447721314927213737756949896449014790194190436437463549070619558194334961723839323273770131853765714505165553286367237787807075471313225106145624265917645003303453500782598850916786008160916690962651207808695526181251912807785817174667827776377893646721878942161534795031659143657113492422641171353985209065578833309125930599441568464288596096131877021149294410393385387361398656989862405591108846031542580247345945309885982094262405375520956696970991664836386044514407633087148438603942192858036897068128376081219942940712993486555547195309488359575563340203949027488992918132440065282386978082548054276186080217646316403394222801387516657235692643510380356067914433405095117546495807084227007939540364887972456865607762705560869413839907726664729757858121661130093901528968465059515430909077171111631603463289078303521639084552004912199885853217357783227104371356109563107246888031701446019433417384293286304939495969773479544221482889739916326996438363558330686213923536908505977508624881819027811276109030027204173641083796721460196620409214430619083538593633696067782389525739989809174682135353437627176756469314709352330668428576353492529128094795085446437923563727069262556108510637987533674975503626877977322080454731727824280243403187879763012196604094616467184706251012799610060983340579288197885008639774162718633093618701420197147481624275294513136769018131646957397137148548804256983011508577159381699803274565926868563831109344358949397258258414991584142822308223578108998786412351756490457614870328864628944590600175438349003078132516826663572493854637960866532522793245425113431992686393909655697984263509558636903841092990841085208733917339092703405483209293876268698560341944151350279567404963490835518410333366648981369553589231480468368375117811799193449926546757566774109769561881326691070168697123918550868162339645871304294611087289575947121318603894377988345645885631204741969225974229298174879542681638066318214408606722652927675264506447012147023709166828609666094604442763951294042020175185004103424021308286735076964664280131382063534477619338237456965386140498174490104308978177308474536430848882581097857198119062296672505369095574242832895084401358974877435858828141315472618629989358804296181965799992445905978631004682993981661973313532535401276143689596425293681143090576764822822933043839605642375291156489985242783695574049208733443316575928733810639790694733798343760066513000038103782747327763302091649144930556059180866020698242545395172149375790896257855486697892953412538163291440312547291954335030336293106375796046833334582864779113024932051759084989914035430438924939655520801743540718197897934085271631580540296190206899310250744842040958145461039251250561916962076906035803172519381996037194023947003812251332714275020367587182574565823418634182608136303977405998422422539229897612964578429494247840699597468826366287147371604118322139648556660893776673277674998752835624780388760972124880270166988591182106558859933883897151293757002678755715359886575334060504082638509276319965091269732903179208963096741849409421327867724052154869778372809097014157434843812935898610713206926264554223350266055232870330038271038602390630892783772826367563369216471077903913318665909831968593938468618231286254143920847380396486360575386479153796416964039870901695122849840819210312222145424504047552063344718973208004120488947893243119816407243368409059657923317138323679195924587655250771255436803872512874428931359326626382998773469373199875181950608951028356894736467329481664773366206164662782689843016270157144598826668817506104687319537231642961275509417435000611053183162155227407366339308869552447119700745330771880471202746645970129317470048103632323988783013135425823963352552743432516606119313363950835767291094464863857685532919833530633396424075078775513488594614979650885587002206497424413587963120776113271047137552876603492234533548495738444272494403050770829930423113206505747859138894172737952727533041895998258933114631620342700749055977770985796861043549451705421001648989408753703263772204029902232787309451218786380354023980932377362529591479080072676435657763533962378293417818149367162450185190879594802131902495618728053169391834745878275287200370800384345504168239968451832145244826073874559439570966635272156158725542587573249700301015254178592939924316683006356006374167031759928612449438000382731992768401401131647714011475457992563705002415989610489056652929607388788079527191911783484001622044840446811877026901037322181891618176934044048736292777002992913850562349182875353112173512533301988748464629621375805571185131765698328192584230589799117089312600733070836267744591118302736416183246745459805913918514313742695097900389526493264578398436748685221662053105813896580394963380546684422655563297784906321017235184362218065484843772272070249507968682841181405833624451551915431180029824619508047135704639981850738961322587716658724101286817888853150760542823239855960473748939659238114384004940650259503261166511764016581592872744699376158940269455009987197231895263532487685051125896828244108236505612845402361798547796076376175857490407490487063298210359876447000268627148915507551836504293418530519463254809218797638850540833547454504880550791456469629934858849456818228493441059591757327711959456880932262625549833465905135355485302087121902653248004858054111461047328357243043770358050139846650696956518157275833963824255924719280368847527235275739515033982197500984325853842925894745248884507959235339076609938201423275013209702680109302557102219937631983441905745120675869368127967267095880711946370377620354369091593759752260148996462660884893897530682149779233453054358911693074280364860183373312582020197399587270406256029002170155836521251647452265437838978532165520971920694040620554364203762654100751157599186447727397387109219991704843160109521884367697767444764431865114729755827576156730892339144862841922488793891849907829197060033774507766468620324583756565231182466711480132346917283920696706198392785525639425458555800482956495574822139134992497712506703787922684267534968644914394962404695946251681406437393634975290145063383184618383485502821624114352002852779472558070515422901257353681667070671432911032558453048960491796125795726337825364913175827519500560202708950713881595614039083747034129107606429751204826931103738053673187254210229787284952710957208279687944783795294365878485300320188623260255384147535084354372710529835166039270323342943027735533123256624937345140247022206851186038731310747561162861983135388307447904578248737464947701700015416623878078159574552452129798077206145575565630849936401605504968351790234755593259772438051505337592959614511302500518879347684810288187214969729992797875550849305421227679185712734062884392375055591677108749401224911691062566176810872815979366049980678950268659620372555282847508675931146436645613004642387610565746113520985617676258354210941898693105455328836605666907833414042943785860015024616167888632794875103526986948045140916871094926128804107514939146203978335440976807311039727420367953128372343408569652981116463678585364931341519785202105350250586004204263258200237643422487253616290365503243319165168264704691497405714877479316876811882244584479325302508681581799116364921689289588613477452912367774360324415233189914366728083761691941756110478527929234283642361061928869679292436738103254047332214365947546847864249984678470013746129734931847526630446371773318440768863424252137396525671765902078526704580057276477995277903142483080984333508028978349340158846511272667060811447046901269856947599833516915451984783167978532582485590829264388437646397348066780557134672791743673126633144979726115742516149420536342667327116041927591545955539579871129469747653002116661041364274871010320842733745600977071028753789884005210584190206671032014523587331219167481210680361435921957613744571296791632221872945886390879888579914898859777212887957813401813164365223326354619295972033407929395746612214696267976917241700182599157790579261447148723940056122694330685857477902283350775032650976822784243900251922281420335862739162906764954191088942456964830102547193567415884427928364434580875976666369198286553760631100466014874598266817943958168212253214100945077021291086184424504012136249148522886804185849827895184038147750798983529556557043363865586307341684472489319031586645937579731091320506414984700095425797108894112643155466190932380489067793356313029208361990691140649612660433164861410294549740685017447581654224481263643816229780494307399457642334971620625611705024054985710883326612557784695978684277442506385031537622401993752182888387594510201610756255943742842785081480926883804877698734514507111624628485050440097959000648859878555911018680237548941332029979504884082967736651822092628690958345663460893079175333143378323578303329466499418713309142678600612768270956237179744059017515423906617746674373334649790031971434083076096520626610402470032480875624781018812076146437677527189376262640797846999840142655398132044826804648491644175751776525240715119805504271374925166825071333677132393676670158333057375229910219197421114590581115700511735496634804701292028684428730036761608298573510401782415082165182785112806531159654854667314831745802243646005873665023730076345374266806834234932811232969231221063138569157575810752889680779493088846462402704435153353691199250672369870288891658093902893870790099937668510196491420009340755867782716982687514621892737911281182926852313298091029272236775232633686472443181547453154868783105872160662280941971885550097544005182977560656750705525713513150158641344995567723504211320966272768314146660689998155199795267811726006089352081651405626548545431885978398852968160465541405789219105466835664761931191939297399821632224871758218227467676837245862647949364516945183975638951301589506035974829325004132651203982321500260845958655543919824979784805576766758166589146747626371155413844670989312945661402639236899233096150803316680478856819357933230518926978408955027009619169206545007070192133191700555095249289009978663176327635601759652962021078220007167496887303148142954242547693232669282130450224930914944366132706748899208147300157633560924636212723613208932343604851159597959434914020866584575695031055374690677157041553103219803062547225812721036343736032211102148451497822201880503882934592495400212630656683412439986199221737053479867793538677606970559544660285290414221525645380130741865134715900064625588506130438605384251471373426616444053788661723329981268868457050523253582185529907803626607662529261564548691148414906068729215258064317098821806758363718685874547080020492538250238628023606974239410787287040420263349326470605495587496623072139692593503863221721724764215086956095109582501908445419557580260266777047409498142026307304363162767874114940908650761586582374397784326269694513500174004117381877047924926338354864289118927069958818681859673416247615725857879202453530331562755631099576673083995512672610567368517054572992089176941928889738863123472655810450059565954248564203479135734351733297397163807262242103362057279342223926819613061178626602307963085275200206161356018081785071198739362214785221637421430979575493763649603961699047248991952806874572705174288035542258375422019715662129740342769919971667768430691366103985991748714938945847272900117412890832408604936514457309763064560413185060750149444665192129451912262105730962927087503481959995936893009084139114860015586447826017981553706161382860799760335116325124700103528726347948213847778894939897419385628357663445205309110090411131635907058339688031412205062413263102297695121437912361938842545020455255692644639250593398630269036264473740910244572034808684836573075921464437568727119570056677380046457592565461539246734979701147509488192884778951185171431959331435264192551119184714010565238071195895807926884538759019250869580909677594378652786855960832319716134287937920822050800367097352121064351843384422131530234009615625068565850316928667276350706065313234142246443555405283167459909408712310816935727137758530401464936472298838892389973565727375294756547105545584841114150962370277403107118335441433027204898507819017189985104015812840726346619777070306429621996949258862872796858638644139526907267573829777639775646103310104341466699953165986077093059700140169427610434044841973434664980623838080641682989533127436018439132570127073711487389211764754182857787069436521015972526402407295822001301172938925137507289425231285753429518060210437714497194253637807995962467762366447784005264852388388935459229426501002565524516029724270651711579682012514832399469296104978103084382508218563774890496807524527780115270990627592033490978397505788249855015793340650543657040130159925255840168221752457012059878175564664742701947695949044723457825545531011718686771032206752240643835256195134359605186625972213257838873934398899029391118991838161983356281379501597576753725213365388986142273322378334655803774790254657290867928177773419508212089981176763638988727037653407338214328484051885055592870092441684014899879271958388142648454754969052966576520634758761290775788968004666278576725744008130076364628509656972039712505034739021671997348560316701387968610986492495160504538666810349744857163080174166308940349954893378107209800137393948567533181003580480248317710441878863633603951664511459415299879899692863858703243032503406625166663257521479634562170290754893952099527753843869372692112171079858493742831320606421303432467845949545474244744454242738318000158804320656231154721311042069902762836975269591615217854743126428611957324067850125984037170400486557355327386377003467320611962099440728398472609631947262390446955349735914277775488696590276444652798473351005763679763669158919104042601608287525160072423063035598376886976535474002381081569722543919665674161196148490903425822519705474518759895567657333533527688861765497424051004810077497381543919497684369187579804775589865562198479788820784015597220112396446677143786921963587687755135449671142839733557174680458611424659723750747467948806063049528127146805336717421199698083880885977837003327900752812456801961209257661534246830627856994996032084588099481458546949922374890540660498914015164787996408505775464716272696129293924409296832495098723497886575142292069203049262714532033339104994522764075295286502673551715341336396435780075540226349415143531977920661481475603290235709176425163228896632287542423122926505514447715356945122116843791964677664193257721864487527089903868856564785832025303279258455687105922803599344317367530391295472791242964899058428196608139982853859360894276780231546165572244892349883811828901722436446703019822316232199820321354543901541619623931651197796270743301978342023846565708804433422901853212488791293037446558419779635058250565180963432936771950269225422690373036622815633413621373610972600003139919596757792780025071349513138776594704561835276365780644231983781502883333680363227527048492174574740026072922124578355689824341434481146283997126886010257550429591920094875988981365762614150927644642464975567259522085783942508211162296428316384251717535303257690614520924175017584575734201366870677004116826708215466542222043455247316239016045086276797172880115266518195652341944558945706422946183880155491329035964860609393128374929093583253101322991784799176495471530821825508757703814259796040734243828571221388349796148218575366751306344085987506680411588429946914899633629523783743215670281640623379866368589825964217441713059173072691085079456947416023321741075488757144000633443615675158381393135772753634305394668672437605257236988455869818848663040710339523332397787434168985216521952511655554073493970687319730846561999866899052588092321287843423484574884452646057185372926538432480466297623563198324310631212444581699768128439764160438613458473116217784177438399189053885542800939144941710260351562006030728578011420032214935669785959269590567972492577617548777922471409227541840832376097026189710672025474462814381163768926471361712315469898580556687938053070722005130130008449161729576626859864408315838151614100905942571173218061002644232316490158419181849330118571366853248428557442297014352678509330813029692403196349243649791797985038575022141073642487674223832421993231310441141172759499040670563377292090672491778182542077623189704739565371784162338748023371240127113911000926224026439599549697824697246909616903794578343254622587124930608511948316319297785920709189714792744318443560956053615725840413918859830343351658301919662316261348548627731242584762591490551957780984579378281673575618433328550941931864739386323586348434344616717441450188187744106589585070361846321604909346870317067741641432854982890674162754330764722785225123394027377455265040556942337313033860751411491515678466332248389838181103841510076360034108194879777017875671834931351984285145797551455224629339129864390153398861648837836417182577602312349578295797447469127469010495399393413549321435578594264038886521690008626942380797727138177470533782054844877737605453612266697780579789226695784963263768567578039146685245479887262867444244356579819233325232839605177896548370909536664634801987761456646593118111292963136578222795452456673066733325811174866662046882092234674706877897528451581330568635900219221452104412341117593039546137312270527106388832160194698013670838939601202737152881591013671487681821306049076201973713400057141735060313380343546988160360188378758489828883276673787131015149179732885676955921451310092917793528272401147439076028330634753186883160527597214817797794149124344559696153121633386185538614668988444882775996282276860203840674013120582812160505471692360434955892923060515548066911931444240702119979192061231088539555717637786172041432065354341316146010391597573108188704641973278061196138356703512966156220639931944876654314961894033232279917887203456271294224368689265797367236008391718681934823855232938804985461030077948322339288659509047701900663431782422235464807920923072382230590344760097023849905110959025550682112709044953699455569135385466516499621908182134599930611424866636467688825704263370362101659735065470786223907359147590382530356045044645678381271365721850042767815778347927353944441497466708030968158195770872357568017031625476765629195613284720227621891492898341264415171718053947722218441286385353274168193196306720783110558759905845063644129550717667393440024253032105385843844590963839547977789261394772033243257670116823345410308442864549863168592034088734944577887601082719749580603157286949428704438928794413340436064989760687733816793856341515461149768231818034711292351035689271359053493447337636581060395885740372963831794133655755295048898977959916277401328522955865138521286034404360312544730315142586542324392441356744872135668869544141398296378651047428681117416757128684282625508234190244126211914287941745257502630719331142402629178862422839860934148840670031490807932868860366219109548890455211257720254367828729602081534105863917185822143783308807326132826402421516517880775613129163043652290446619738368493309367534772266485393358747634397678331274151280451345300095969007204866208644505901387140018368279550756768969608695070718776615766799497776335743518222861993640668670625713172426704743419661620371296658145414940780817211114011582118510240830208613925021880424636924336109954797248691503647563044740612237445119478426083281979388160087889128063030605630258816237927089519682100824829762443045790150832698760101109890600714801966560248909466015000564915243360277218738398225486400608509951395427456404883404864693698456278641613983648067415549895677939680080219729921563668000697509256286425724410871561725095651387807339932678364106956338329314870981110614184492764668519622227662411396974795848852804514129178505553321543794957374007627956997188940476974547283469738389743030092164812365675119359975910180828315916387149103656565175344898293597851179266149126998731512373873690659560825718150813177190539855385246160650802541589835161849080065232341202266057120039327573050633826724256755963471307540152554138882826727463619051141347769694697483117890954509473694025963504116928854137901837755371858869737226530076598955992193095483217050753509120045248102950199208962017244586742655237289737976705850435085801994774814594536830790198772890649700367392481379310339183260696381133202429064400214891784038884977719309454452805151992161792594282887247080604572108796179032619022265942688824482411324540438074742140963856944632219397616534442758663941574443229669234288699182148850804638481575076015294071924319226372796357099457201555460300427793568728982861454602035636232171844547244200744210288435042253497214782575993323744836481480228939209193276584041107112527677766955138235369472087772774182729890862091421148458986893316949296404094305299958255104730006344873647827274713411942079305740189501091901200227033289042121573695573083015380428047755580094454626254228804661407007570382874608759609125452196098925695781076073078673808322853474969563317001348538028658852092149308915804765188838210391346082987095323709033309597553012135291413011616875426651971776274543455787021917417867944189258926928558958123805291464007561933116555029674979242271959132558623524735854757647894876025213980270273967160043968026820777563338931609489983628533893852004243159733096899371446741801239904091161519979374602695248448290159247041823376948760604267219279875119173835203341129782783854444120913791168765253284085587744208074205542116113029580506335127507291842437810188199168949064131909370460152616867952336726363226822698736506148298702664529694599882132767330192190811517824024614853811895086876784591040333738188151854591788538496838419325745363477678203297055541436907029155579437628344946521311517292483009318895971893358905961247815012622909916728089802054104371530053760429438436881542969218710173676596902504194901095059535188320071171988260428520695983568925422469879104415324708821197247114330310016483955733005564297363753337734186610435143128168077523370745507207821650348107029909214373498545065485898619297658419986339683020584888543532668578313080115564388566502203901579235905515127775862129983060533541692624392417233543597465231688702201206954744531523360151838716505834645088489233833075777789084710979133905736847049213398513179718917408888975726634085544745587503936007105619933824042760326167122614834331181578392517322600873655504885200945483582878041533763797346689307732496589196302385314302511582463548776093513672054755270917857632926455430834588219233620715415652888764580808017349019208728938115957746301324922306224158803943148557342105006431329586328790772672323164905425304503684355356526273844307519704982196145297509287821189904004811857820034958926736727511152142803219808739806940245179381042210423799904294095902535912478672547026054011378896187514370483601726501374586109046451800851643173256192845774332896141132583918193490940590170692687355322880736959390729910576723950596044691822947648427122343872073413807524333713491958508401533228079227597364209058190984060181884053303995698920680180024600385093212676401676270703107113849481257645215080771043415897245674340332189906778029937564158783879123050896934993149440611184824364311956952465447047196844310775439383138838663187966303399869675452443866139928562746165903411077743776309038236492053539253196313928219860489425813321191035306925929649032746301639063168263859707466461578095587330710516090574179778394970587008972601601235914515319333526783829979911795176930593402677974091184150580905110743207260377394412775908068523560085762110988450521470793526066869615231497459854401613885280841445340995651387531794835032722186973375650858740291225033719973227949744643399515419314869757149274826148416891194955125072779876021379956626455934197653857586698051761027456302691989533608202044545251988256704361626072494874707948953180144855453633076105080650792653310353307935151480099296850876665118100803171410774417882414159835465251036278408582822808394212490950197725211396345235464533565573141384449441000767345944751045089488161496339039694385736766193708726351464713943087362628835956832184293722974964580047442745727797253721062741532552915614425827138612129632152182170181595096809245516503042090129869233189122651226302617550764562191837508868246263220338258808130419023834463169211813883342281514959525577511798529238797504548301139585801572162148438576355727286003358980885886014649459706493644093226096350357478931089840552957437033671867821690516236484986534163562795983690509550901106828013814030236076624694949046705546928159637574705029508397921491461324896740491597233577911709186388349366985955914391379973890573565210969956427086102665367802583420969934729760271487278487341872734002705190211385893487322391055940513063084443429006794633911633002890069805608837346093747460615062709962938401316505071646067594985407717162226995436174948911932060077376431702961115867924219364854135040612560967697775287286224684630766177117496892450191625589186773350124698510572236603524673667722380212742834138561860063872100468343054994235145080529583994879881851297819944135339745643079495021195782457721516494226059107273256685842308038789953837257719346872579284867136752486321416311571243925602538085820414604900287168197333739117378055371178912020922673568919070714929364070016196853290200754219149326021424072681079257122621364755080724246973328710372218754452888204128669107187480943124295271753883180890497078420683560825538482790078689729525759965127574806738537106325090518300444020961518246695295155857795884885731671265651746807615829360077395796971017771486639325968817671695316513930057853915122122695258026638790516625379966227011056444483660374156654555704863904306407962735644571752879711595165980574077526541507804345056709208285600218925446414918199240059455447736224071631603294763738694989817640166757874037843554870268424967895723596223788566292607157285512859574902913614644303543831436106578929448928510069342605823156461597617089547363305835006808106282979184084434867191946672445410533340486213276526193957752064661744157841219602988661670285901753368141532631474036451966640794814194201322705264476606374700832857936612507722942647015210709603217049563901573792017800867172206228804873570808528515760131983938633039837814603794283425398052381991141239618859512207765953808852757792636626586080660662027392546444341450354884675512994812094379468339335001368685260777474572673147888510078002802489958152261820337306397667580815570409211261153502864326345466507936031006594462449634463582821604961270401387695129574673088927529979611420993323919098736094578242221954375030630727061218148169315417097417795686747413704759424112394793994911614540810154634744474470836351549346894417505271052959784825328179020933594968666879397089392875146368252694089131076701213611867775246021618895721719684436657760525426545121527803309038901387873542422840576384787964451534726688659188939056754850533304269392147945524711851692662599282582805493506705926691677906848885878668009720499466266335700824836863342793265409719223175766715612089187284033368857577478490538637611413461584384219649071879716844360315970614021012310338105971251559931040418950752518903754808771739664937623351872352531419164406386006787735263531654897887951151511940931856842068494654999127343415505433299569758050839650176355941360252631161847052617165862746658041073278402523816380047574446189564269845778844055335492601022127375052781761892739531314563687747798353259551769772756599082323160803423888798930790876399279388800003096664944855107370331855221379343355525497969858865471680830337742204357274200782166823863184446014976037027834294847169614721494329872858734334023288563701774154687189703441641982897047400649376950406499316023437430089876063506548483511480296607177258316165962273821670135505118340012256681628416085758407381658270856749063897707742554677420987200535379250719139655851207001060459640889510984736022160961855712358441526655143406398220533545564180469071596402894824775844356627374455831122687867711789445915275590821483926680227880599064725252662993699639841202159728613514067704537757413548528741106174355141277708273149406048705773775044856232805999373816308258922144339479663855606275183749012007660904642287062786935803384836062312451490768434592082911570205423050896749763164219310731824498708816752577488622264727241722050582100481097559291094742960088060075911745877506806147318629192583512300114963176951280855227914948216620768661906450242995045503477166240002779550320291284536483257467865492608948745516268050230089723152165695017843141662584208313290315404124688255159037368158401184799273624760466282321663673852745735428314572300763301074027306336736576528059146495636453371824069399585228506518505985506065433429392568424610566330878786465426956115769915502806438004276942968017069385155691842482115190839892771051748485978051382103634702228305366485691314454013069357172103709788797265277863458836011974105229603249906691483161031371958388780292149000192638931708760539524242023850820082758530258817057672108784498882080542286479454510683671564332027887058670027291327851009393387641968364832797169756999372828224030980099314917565001510767815989876436058315900464265932056862345919834765093202440312163506700109952090243746125246798628454376023963599103701776131018144708185463790982402964587271873809387644075884129420544524204835450191886476376474104763984212704127239336730716963959559013117530799187860897718326353530071493004313334741830392907918915016412655570203151196866176322756960495880469500411216571307973554451347366222037599671982292727245357411572164501627344394028709211419085976026313231767085401007109767705897501089626134266358324675195179653086659547454747742645413515873673193961019143972405479184129169693976113740912880908624941934520252668573520360474565904385770248992325620175190353492246161289870691920242147151651321707000061306942254118461199094097938915680217841178241686903200740227434502665617071021775357625891284281597269530371244856922949104900190674570645352545682014201023704694232732528595247320188549053108033356127618827397443550919716389113774531280148111498983017183401966459758359497556641665175540023247474718297121514796839968526485572153220605895314973044189937624694707153303897668068949284289151907501773985774687672396573578235230726863036959789917055655131095088665323681349707609240682386897809894992279382651370597132678635025036621155153208489293295113442674954131230048528288037927412917247176353931513463076626904355576794946025036240860406603343952047253582432162084329329244552994302645848288002863529079637767367604834039249551341317615563562780417121926722315911572991081993920547360665174609355494793551448709824621912100036129250721286815372290404946537664458100945908159736376512816831840764541603178085944554761428371102077352573814496424844495765822225460764037969253990804425125066584871479390378121326735099719259374828386864953541676751150437164823214658196586338031749267590431933677470808363361688281774808684981374122002396446182621152135051094569040247081893493551866770374973586664197767765237239831392569550893973768728688053836352376485266988989792113587271042854564362361872702950207877051728999121755555870672712531780873986435618237057558881956078853609448591336165875807175160000013933249587879866946715491851489747269638772295524120925459349627678614448448352112323269448334973274808736961233923319919600186755838135963942283208733927814069886957274304597049858268169015964252498158947230659470937189979031582369121890464536274971572063936384154017832768109722149432870715758139412374774067792660807786409188182532976147137772772342760308782806242942875579283550699529799933360818178483737460564334047905862837473389596285796255464899087269123814377089473607671960630264175145758679536107784620721713177837139739473056141516667132380797803777059080842885037118119488117139495646356873886552725640887387308143312840969671947631457185941550944141968013903865661465771047100320849794848345042819745592691784377952366386127699226310872757012741589870581598051404023565563508682052294549768471731444759601640149469053775569611494386300558980306612068263120089917392637289160422506945198576774897506093348436560376704422404303321529581083495968875870367376554115195100974167976312153424256946527057935147013879474202334421293024916352033901150556596861712189151965495322359425518921396497163806084773996174525857372993181155729055083720697318639874921364258296236641156446828938353441084942664855911872645790889595758699753751986903652877556441222435910349023649856963667658561157532268976469906832975293832878973295349978225630724858840934986594700684281947492174751536054935298984554659912132085671959241495589849370021375282381675462435652291777749955266026912823307600480028060906168975848286246544387682847074610063453933311761689441990595276191745992378274743607871987230545870320480620383062914652045016001969234414565133962999223536580529660305721447426195544497096994183313313150589419171783593821818336081863720855014922106193046930688100759186865896120970811420469550067429233767996167270320412043586095870120734097028524835210808269262308251251320242385442982862616148579894428086899711410525528444878312040340923551708669978911995453805178971727442674046443468673697474954237255414165008359984912362470634486174401112364632168918379311852544304349396685487282285257667253091717102598351280413992149871650353577870134192436317876650845718401318132844081430562186785091119991895386706471664882403762067411443628935370011405998826544600799555846486264225915196870433087305080102923879226869656295810773535642776339921914544049483058590801686233435291559248943650839696901220128963718170773171018726751173861247786967139112242115396611163564504927282385989127499766560357235056688671066665650851632043908944856458982233525662599431482610932988157330680367652081587040748050097180169948599477223596680417526215119600255322030934813831403704666417764693726774804534586191163397182216296356516661960558892510516448780080037505375126453040086182589676653942182301356292609513804588894118764138661494054657617730064168946952534676684617882319779134947806034576226020573966240925613619536620417127289381023669627226330164328173124241146091186208097033202056556812184872286732174968126725961818242215256422080781995686114109916924456900189533664589498965454165954962487304366772281977343022424356613963913221583798520604587238763701077287007261418608275047748820085563777788217613143385118676397029127570752317720327625119770064804270224776647423759941434833678466249615721496926310924656010611811828239009389295055170473779931617363937444360265608999395468519963019778106971928150389643888233783335081973992951359011043353429324012539313181972537906031463545019819119553986553153236825943787453833827401712123361780886502576240537880447722353370187872671072448317073397596956978065017627380603461174955342258897320051404179863687883697218181611263437631323792259871656863061442043776584600467447304790539011960628678911688872596436713473960031604849724880911729857420000461818310477315750759830090243373077179793832781392615541576076961624174773220782414324246971044081990298410810818971726288191122827354909197560482382773271672754749485452275003783933666459427521021999674699621624718682794463064868108807178434436939733751399459205365306225949303376410513956365934402327226988040241653849115656905710915566681906386711624482470372771034094968177091911960546060542990070338439054368325720505022899034653653358642615793667703582985407125434562419201626412464575986035830859697908909913375854818795759662697078830244793249254247164608527602458682848454518109201192279208366517103406428232965407029871346313861612947214749259563555380330345492031084944178419601383035639882248236390307712258692066522905802303792521938267816471707638219554202320246553132823912065356296723391233043253731792275471109869471762069467445615522233113028638573960909969661729772001542713340185061571016833472457413738328593859686403372084493272198147673517502663051571654298131705932801645829512577324321891358673581804763349232925716435182882649507594193539322559685064449857042002669409993350160333163181780838527891442450650704906446381110767331200817188720890423300096191139982264298840525721288315042954189539117917559267245989850806830894535262916701382020097933052142403815401931639648774999145995040368166626394125427508790265844814993975819568949677431078104716836616922827626299089556610130047523595957977707042014589583083642136049911590442923996665374292550895279926376179662942866605403258600681845363364975574982327071055025673554700377673692890926833590374530213056386246019268635367387737184441963114768703950559566479151107045932475519187369203917235576616511297403378354707243412993104668366514132344941720365165199143588704016712331882556976657432972480176597548825098699542349870083556992040355043270730974796443342017197000589757059155517100637782646909561946735546723702700009455391595934057747752602748748929022919553196180378215890502090923842365533662193284828394291241382461943512015976601096885014902500264600855030507650982302953739530734143455487756952483575755714432069319523349382729603974940707321108597805446800157679967216676202996207887766370921848452746821150952162213571439016427777013376093384698746475271542800682245281859817214197195117524137890360806811798664200285755610501865377301455501080443339515314685539141653466654524834096672484914457697320955426209093809570617897052853535271029352254993273027738654156669431387822657177762826223118575775202182375700762988503867614055435132801591901881521465981379569993147824434924619408007236472637729518418251992523456353860900252688229520125647675758323449016173325431555705187445480136864345190473224901210498608558186163185800982736594852280622495714795693240538333513888316224095612142923400037964700955401289184010420919157245332842360996499966798569075999374390098096642708748751387300182075649449245910979902275746473554919474817148639746510232624788332064956652068374711074739559222560323299016218917198218273492289458459207761656635917552966788053393036901363839247794277043658955944930046365563668355043237745184079868583027773612456493841047264426473783193179785261609034174531490536415271660466453774335677670503303672863244079436843727142843041164205183948729338775691503157607208328170391150975290816573617371512795389375253844340644829741136590090385571341494167840590882216038720635391511363188267258953068730514216651118471868958657062722660889197102021679890875737127778415327649304950450092529216504714539121308280635111928339804115754716871995126833568466802521435714922307180982874198932183256057306329438659867724203383636507766251753639883968990519709975827459787737512281149855515457581407381665907971722190678940151244560140030638180413169011140121502112831788812348967955353459866412674739336968266287546449673557149556074521446509367140436182770971642586077232444223681363810269986412837453910453345872436350267649973204810177342370139679297081048610333887821117073850772555575784317725548839733661397482501800383910979569875253239366393650084583744583372022762762849514388938992300985769690240984546810701570890723272339643600438625031479791404305766340263920268149185577871262125601501869127610905081859559466484047333569006140812727588600085305889473463096967870373558907914864875884151085724923539651980973357283863958886686025323783868894666742687213762195592522990223917329847037023984465968354770944407384410935870350483300842763596398190087220343113772271719422264866280385517415813567402756937898291811305716153662549941565938432599977283888214736073510064747424603621186047723175022976208605247685061170518794441510646891777687926783849023290278173224100026671019217366058521995596038152243289022283463294192627388248836634227414307600667699099700060206201611308903970220400721344597161210895552980387566141934867871976952148413435128776936620766332272976653228666963963527893065671656580636120443946467838715347754277175786160782176070243748262140607940703964480982456409899479476905113953873736260052846600944514725599766511874897771516631848332378877671845251291846164342402249716747155881279463033341326133313537326921599043425126900831489646306257477751641401018647685226863219085672587992885229805043711148797841101216012167087121684583191174937507107074888009829439035093769309253152439259855096443757342893001026314750983569840944949270265288082966812464807434850611960606697195405138493027719109221759741625248532113861583383360579144750368012257900061072293468932051345306805043308377910240674778910458236284866222296208177492218782195062503147623148200860573312723282593858558589040610970449802928365445003779975175435645405481324866909283280069707762014984272422010932018873078064945757263790952070849712373746006735032707772001409642732982081081429803018405811589778315488690765375218533598854386098680782279731292570258944600516914265482799148681878150243354584993801733576069969176375189934088870597197118941502323675918602942370648674310810994907075505788885108345280151194716295872688942333718436520242446199384474292720986374700896525164171450383760487046595451964138889400679113448581115259435845986406334578067421537879917381124893214212921155023032556652121385480254280609129342723585707209619696299671759875334724465386963524043471013676413349382149616757742898115249914804322162236284900959049297797247124985806380511322775232089225912065292112641842160561855184494909601232140865802896753539255186526008587500167493435624093885055109431820282691062895361463305940358306385640671021202152753325509500379866144491902256188112493774033067065077284044561396648451962297534734329863865158833706322164021414750346315417841842051294508863975180319413531905599977226450115967359284478117087555471217431738592196383648164257412941529944602898047794037493690246600753729175137032842392993657115679185383571344746304424653698263316347624612104734804308128006684927368490976900699480999558085042842351514218068983363389247668425528849897089044995183676873597216561556881680235452670191366912364738983571715207857454187990150535330611009161634835461303506101867376161100014077764709825086740043207613096475069530147360191860273167356890163254745547651029178013404391403978693025505347664223497830451222257520281778872422052318464884760876474011801057312247227621073144548841309941446729530716035192487563002184782032751885821900342354913921167985850739291571466744456110341030505820911196975189066046867704545379875542925879062459601839594128606892340381958003569120927884870014430622854069772272107900163443958011157134853021522052862026494309436535592990780538052518061715966812266915522016746253682804801173935405846696318727255331256663978119692984329121099615525710209433114995074086335659779479227160441612990295374297949042144674321039905594730245967970324743918861078649515838843575879718258038928179428557149590382448818171791721280393983511880315229966437622838084624444559581190047189971928045766418485830893159138422857469529489067662107665156401862670942948308648808335826715634562788633535617046833274275942974388887340070363568277610152068251533192767376677699123952311735213320275849986031105382858922747851820250969590399308156870107932639472534613004350898390515270227897656195093471797434902562698892124913169257441024806054429916899945044457810846986684984575043857711402925932699285927099877815351820428574695046153233465792723204430730828925963032499354580043544825270105997003737068907711317810625724424611696142510017672211821345520328217807435732266681394416301523973587876692199960357153378161665695192123444105874543657270222628047944945247087923244799523233358130546613673108608238817842979589475707602849275075993005231281185102856112555047066102772253574179739968788430475215004229647022856150080284620855560674658537869990121597470307173937091145696981425125473939774691022408780421584421821968910607982247322686016652855023229827810968117652777926072069520980333261729145658563768288708732935262645629135728061513603478227923929362797175488618209345606355794411388067878865006902690290647277218525857278535824415051749963869116697859134200696543507756040707436397442115312424978673407167934144943560174276255961472847096403677402846057161604067397484649259481428981003929023971811203662245302944721997781759385544542919249589677834278187207517167491514227113041714826906328580943698509718423641834103398231966105000312090691791589955541764193255487285899869561422120016302865965730673532535362091027621698075627592978973536310968814766073660095873167827332610066280224657203138848615090174540713080605849421297290934395932750309220074794877078234883454852959528884392648717881181037317110758224619426060375654276939776303909107880262320548740212953677713312765283294116363241753544860460035048938607682797467041902673016621605506340992209869001715930042030544373958906273584144683190514964715420441579023315401865509108164999731150299601673639016497663343018389512115949526822110364867102365915753285784692950836721458773856897353179832887149955423190268613037037987228069659016981293043187842172321902583974291144877305443131781553966283299229848523379276973203166855529108514839866732831354186678145485801861532356505682214513850252284618549373764144900790268768968158012584544949005536920793395046205989051531803753045031272050435840096633677044104444135366565747706866838096680341070801557585225268913991798213032539854986851277811320205297926094483592646097842405222405147705465566726236865565373275988175456778400994841575532824202757261717164606308776519220766858826130023565918732700270149586490600620240221660117479154572496243683985098194584840262809443829931618953734290421500942410177272111938101906031152903114813887398936568643638103906342146060698154834367572782308353273030032439881026676669781323108965028883458287760200042197759339172780783764862668334349566141399375826233854688015083869943909942771791802208797850760087884688111444792801504432257198177389567026676987214107309146990479319472323927944002709112598503981730795896810791756445385044217441366919717949842095237776950066175858297585311146622986026338575792430535378293792242857107402147614326101281100920497892433013234557062526452403135421712004514077376316393668868576730057423953906363439705359306542092161841683440733620451530371297742500780359943859936030311264927265646559487607124625238684516571781968647684468330578749275842110274807200716192109846332524521454219355604985272642966623170559023584297237583581822593729038654839236826936696571184106349407266323411185273670709446173645607975311072834076661752943987245179632834301023814286866778939651297899643497049904220472147372805437059846056634937933004826369091418141276893722388935751216336901668761925913132066757715949894282408154365048013959356210086693284298910218922275774993982399119721710092990041004162434362149285021089839367844134592742912060453441225967467178558423607158034863475096591408425113137130842868859626685261664305124466715816754510952828526743949900998956703751591828633689887390999064015105749161619650909240623398813609726504561265332794768261663067592033227759812430680856022909018537470762456639545131965670636721817767322985542975999814254885387540946666535013195338359150556498454593362947159055808426401004740379648548442919108163545385585703648052555836436884746063866786359442966852357579857346311428816529982668712648541556148837858719425475393178635134441586709653605372774339253183151669268664884434431077045826624431140440849967878727411606148522816576330621331321730663571392183574700919051808132900698473007078833715525894059032624780402183590272283187106957107880485247096273551155921105330502306931913266361504854221177877835402582060514692818029903391792594373350556479669441530236929077895982580401609541268331430578502497810961440703461811995644320659581259451478391684702301082857978992687088420271236151312712303846447990283412331355631582884748218644886892237583077059160750022901386375324172665296238284282518281432358778169532588113449143221263232249643818613480834432868626395224026866284937788213928961928015737841253931554556333238347515931577428114901903149134826572563740352156932940334294290878889266536975672915219355263643896691470783190706638399385614423665813269474305999021391889460644358935702258539141054433173551840648363509136090921560193565484018970453752432607136695575038091661681264944990797579063724023737536275889629533990404706351691971800295605906570661898001309130958849056534783334337636399765681391420901575458609015257878082687492687720290859114546448098345678937837499413890036631953653641421381863407278386597307808094260555059355349207309701774037969437159985920356326814562745580478469805030118032215250206450041031248593035819822653809549241462652123593206052420153844538849822403855238397443181161686675002687332688285956763633419911296601891409514820127168559443386679791403191712205661928878727349438611088181034649310031736277938913917697626483851251820112789764634704870566939236904230240480794884965918006423326798298915456167894608263280213084076497315189295707353107485557088212382492251189009675457001478632493680608990023032069882045390890782590058519642063380073544988589337380619901377787154734489366118575106776039969994642113902090242737083326751746991628645166577211554333252167447437999905207491259007932606259198892241868589402964472233848557486590861658793688560257446594338338175207930147109696407869820289068064478164943601680902014051055217677323991806127610140259644476926127002732734171985024180364139227542020449265050195463783687249936429232575402997373640072482702664640785362139478048647217292036297446334678107970257054940063242255725331076849104138288327305094096882233871046514398675985048026133785885662898832567370751000111790717906322889874441609485250901369535858428384078036343373907205440556281835234247039621244630659914397245869241908611270884551771488342090454086839702533419819070003803669240708392566541860457673859522943965200054340497431042731559430526273502961040064776063496972597876941979714969157103794944815905533411764447188829439728015740124364194822777012086991495140145262710298215239097083026313337628922651427937842662820608808705303657551033951623571544528553774495986355804336314138385852063380107774559460300181462173403352255206483971648889090126786384496498235786516457151004123864022270821759638500503991038029836946476958723054825241872462113352424302807156245554618860783382716724058303165265511996363585391914848943023793547440336263573698085363528550449354962988726765609995845971558535762276886608603494031285522228271603984288235603596913125381861755717400568415753599840743957784917871604821316050886706113611468709134014303789551534747322367729023254944575751130293255425505504550766161757771633331658250891893926914913102939758779099824667519305090058650431341636764750745021751193271945248604931232677332282391518089949645169340084695150652234750987151393082444544210103034516983016692722033402569836643523657617606228800775192607419664669955816310421483894059221673538180362794100446993663901191189523023343153489908690147944690358557612091463640229732559627536516400968506433698612358110688997040962390010932093686324290181709624102886134489869589177975313820103719695648335908148782689339120098813196183411935291896946403149351176623541909433570664178849368852015053010116836674368717889849697020128593398919639838686453872511982476950969524995839986987933633018659980026283783014322814945748889215146354945721414778762569446384360374919134241095323480397058934698242107338483488552167145301000035012902422281773162936055611081898135357872268181340522713834138357673218857017843846225376343139601269093302823686357973996294080726687052164122601566864839476801848214504957724030735698468445880759832433996493657918329303652443984383635880471694872294865745403503971470892619227138717696051106389777606301961796174378465564603906604643433338321150925259580213615268556053047488227920344897730564008087575532218780800230679554524097120674853483127453621105824071293522735942778689758869230369266099574896464232896256102010756422187052832828276259003171304596824212735694832987946488567129068536437696051860720679212045894951596989663669723543882625200572061355093002049249414304926622891592235320633108929780956600436263785496617858618337974824127447124822765316684572991355306639569520309954957982462731393286464254862178028935246121466190753605105622788829966354710078924878490615364793352271088956469548943384487057585173773178587980245032780356413971637005354350352199520683286509956786526954199908722889360033960512849584948454574968115571456761294331120329188310037262917702218813340855528706198768596318529447848134998903962199618803845003811188353373132724591938070951636979275402503549941169626107487684421236237652564456504953537509472107409702025368791036645442836479311148422474648869842561366142593101480616417607022612067449333268611836041182366483636560795526380787959007745135447279557061113506732727340548293302748810531056125800845942044641576521351344257018164476502591201856382276351611008510522680896408309465469144944482627770059659096833021181680101337802292902702327640959809099778666132289281163566435754545454302287046321452641212215631881011474787732485244143260002580015699281678266051201326996184854732065671942629746028421278682849510334150470031855258011871529155072590400843364762989939173416163294557542710782380524795391310127522718820529044540643499964156734472191407625372216876137429420963576590825111853314603285450609771896645660656077424146111406745467174213587844840692263531314852525913818708025849120573120915775624054103032641770424806422997203480788412649573142974774379652172781600781118365090596914860453002129188993281231329582224776727576978101143658653510298736471710365461895582949930186909478209549622030894255185550038442841287248423796893004230460621272043356383166639011842474009159199294869353318126227929494333846184606352428132433091977986206963139152573718259943947817886664998298005692669513785730303254327735250542245033899362170596328307804716873771903702034763204239603963555675751782258977762672416440587335153439886830678507986461569879369341481399159696024981657676522520108697981403778758850423697968832671135954069572978573720516688485895630141766402506713609771013976168870729934999002739033823882600415968314368217906990805948844395462700375698462294484177217204759623573679498931816915185893067286362411880148328122838255800112466009378433568245637635525910277997295598092024580607972982327541868329309012229973021615659667378337907621784875456454306152069516081685572806833113805513609927334852772069523957240603087092920411949454197384912123886691674421422348610290153510980817041504162403298124071395643627991050539925295957158130665457345631371745173997299153597371649216462529762198908568425035486771535060576472088539103028593603949497332001014950845772379472078779959989031763945224721536175593655203367427816164768421545856799224302267033502473963042453797086997730071032586405642183169381126412430548734125141552080713402759105854619869960613538910552994190892925856666576908471993774450403086561229327351068058358328974611217602677674963950675984146786367614823908538220792560966482189411856981915766954671772803992326877096472210768790527778520028577307991758369561237536523669176333699221179277928429557093862515799041687841143530507048799594723375187171280068280616830853115930501336868896671204529293171391698366210729344427916187722846668214569350992657793546262021054936322212648329202732450105142812017670124686479759982459298027780041422805689143966833037566313958771779231573934035506969117084353585690082027146343364827683734938424639110493334507158865436394807180607526239342667064107488772604186292396131349698462761358838939884965371167610151973349609312415544025970761021281021639565146063025550124996232749849444815030041253252343291097304568257181332510076743012616891421900627691301198968401309240607611352802640424354018068242647488188095132756778487980543252779550360703817265166533731631980255744354749351781012906278159625414771048290175240690219996789413567846691763128072348759608907309903349176635267729369866691625829092878465625473716855908151431851512227926244183674482753235992191890918574898882078156882330500495983587142051450526443581981887800621557496610960087448704731913634278523067196617951598239743556201620597458175261071143671213825320409985864229284295310631108630268666401355773618377738032487116990175393398092083339793174517321433596372159016022003245448297914097602734696017832035653045993785713887481623126103001775626230903941760404209845445740151237215537833787530066885476037529946405910903124915373591948115513454409087736986751033731812410449423622478758623703524195864031717272682210251540870128401615680347695705944891607530676216099056292592769325335482533105644871603747740056174284570269997758097133704862180413463124192247818830917506338609395761810604115635979469449455760593007628440072703336665820586826404447935662651276402423597505187342945709799800383824753045334864210051705142657730218534806208321311275707819781421181785235044675126594516184774694929087704964673534880449143224784607229930176430628828370280104271036106328361953398257935401475556548588870958926491839358750426146679734992450421526036053420180594559396861368943468589897290644513281122297769124413304227210107441444115816625395124540881520038955014884760828036172527968725053832757806285480420548013723996333917148103443032102295814097792488655059868904815560578371463010468216712855386823825076256074529397886651022098004872589887728376931065448724709041631742511163052410650040743560739505281761723538242940609995117917817491744842404109304589700025183226317812579206037427814472611966230498347127257834694508790857740084445152865282314293450042624069697542291589739748181862454542618803340352227805578121805927758303973454599837266557138238437546972618951876732170143495931301101465116478154082050469375250408433641869178684001124906987472237683958396930699732851474423703813870429723464825604388605059335619428140355000871670075023062772798930576029724663434857723988183605615080836986906748308619891073968310622964601319745105791535019818204860806562932808659523611897258073491485153864973035030446996184438269859620668863879112954874469929281267041520868533445790965763044269873881469895646992937702972612593710252849579201595339584937386309368222003350807821412774552944038811803832015491745084957962951669750651428330641431907448101577856149437742724544478673018577996695644479761870869821724741880920416425979150230692965018066585977910484328239292543319470142849759822296603933390014898628711850956711532702418851654957807876475222153434117898785438670888443056565371051946701834040047597985382351340315703502648163396703828625753072857891690661940531141718267518619847568600099654966082808684987999749063400619296377702719609989261331016524500906194439038675948901939375740335199816745254152583770832002654554230875676511838757624147671455681364117607976007456056390584105266654932484342833139196926817314298473994090052660067945791916149841422926070970350199142211975661788831077770162040292458024566722821951540312569562125310474488066037404165984274354170696184526514494315439090490829481853849569331529004494409486788329246549706651449097505537687198055988554576563595155472059080992760833333152904884948523398955295567029653659323779575574859395082523571321394379190293801042759817623828694249606418522801033496394170972654055154988568091214892414983775674900643071242324654740681352001345506768421176639064890249163036651016389522303380807647910896006955914430605197739755106449914746871464851571143540352471139553116246161326648129833638992002875976935463567930846963095001654047671372723551569518342796701594686374462529952244768517220908231141587121964005587415077077238257197987160544572488752465445140812336538821019112747820614582622511349765558898924129621038153907644408852857999234848028281206062003420176714676481292183616040694294889869995010264737337963458991524348095755617000931921744632701014300355078942484424955710337431627803739883256919529279786739442731332764449707857148611802125642055020560977126972310674576243329615757062031629463272100051807715193086059766205616752023281382496198418110793244693591343084178097943404777809826465787266603415466309550608773076058713591262507686777276937439275006129912829089851868089127715335282489458702746555018005265522815544568996439778281531126079546725920949028708864147934338154116004611321978495546367686197796808685250079315602234811928183411897513603209042532158419249986386874803892827067523368002995052135155490626069890511723221036000513337674738531299476241456060286778076234053108691915317282271279490061142871894719318710391768846894750576652970034844813274477388647179243826028118521453857322832143098103342608347803016430216720285156160325003018864772767257262569017581313350548791546240084327782605649469537844879717293826907416829047680503425596727326304382209831477251428792940107265757881151836026172797937781547180738224409869889483545755510257842617702303615344535618235324866459588548369132562855592781432391919718308529675560293191124102991728452067919381382729310940002098772803330454566851313759515948217074169948269169628891651885665569300408549054563071644910269747977320870094347899971617900414969081202868956366476734382224930362643544082245100237702115409952357649916830775191573161000386512928575336729244255386165335643335509026168264629046614517860356634736067194244232566406060002009031647427762177630865455921999514139186229005289736716196022343023306872193182402137507653694738503304010929798743577330011224931278847650948168123937197752277584512203664072689155730299951385007925059541216452444398445756917916797963070346288884661091020518697864284040118409839320281103530332301476246211880890703267824475055948400556647995598622862876956580063216412378982087393645173823007857552652120393366459961185186958947782581333919116937455872179780697320697708976054411273855546388747830721492842115629683879436582218905204578905798636578773461293893977346532124793731346320695650893233848789764205574629721489034533235871630451603296314274076287819401280916098249214286017909305732372418206124434320125395660879989823768825819758684627231809023276297053928935730411631190799850635928126150793444272626571489676823914794396629044324624262997153907913953120082895503745599078740642397823719352566593077047777419217633971569347264567761256464929030279703390988893297162722524486783997869648977567800112453501197091321523610858002897361833825921487747944515077472656462555239226695846824644271218152305934005917999604292230861900593531176527385507230728307750746577989017937749830011741744032301279161716362128936096066709125235126957019900116690078746712117646758885520315145867531351295882020571011658496716236298532458032113406244666009737756677929850713806603538667109198639246029956416059483989109851664663770058503351604049205782745105541901992332981777424322226102020891805530146019829107271265024719006801274099509990546058114586513461115283778590320391016298806046326096755510868169661425939262710509306455449759458866401476138807715011760048701119614672081000568815243115851514140851572089785129188589973470239146011000512166406472682441745434305820282900240520717021724680147352030578866858992537615969490230576119987611323051722924447661742258732179462536697411041837479074929297249050240267993563119654045559664912163764804665256501699516974970584124818739811835240885705969521922088764632791234181558106295175899993969648080019252056831731879664411221835397793825151735132860492025805090052052731638281691879282999283703339111064193565159674950900415289246654752273703422371088150788147805337997107204251749810162091342947009105833945941989927814332662683347699410797047520831590480478710260391874808137430206653520695413183514920244546045651146808172173039340418805089216214349311082158939785385593571092020435470137205350663793723092716965955781197798135040152165740569424939881814297337736240445820171940421371765697202803444883909577407543344605242258551496574682863637688293957473288010654929869324122064585344867354881919160390430026078574762881991986068127660109651726906040001660365105522200289297083218801808484325703615614226243200242945605268015825129384641606397531703780205446042084127691092650434311274807396692131197991342978447951395178743127972105032578079096887791724522740499319601514811192650154021262231927037739172904472833559738463701981302511875903512677641294742405911871500384034229396441995028855133090481247972067901782736805313280901703194418763132480819278702008986684931206006875804888867618673615897355041054772915224095241618275166099637487594928743500649328704919271371836354234126953450312402117236941856038712550797843213200038133304596029516419149808118706901577114988369145317177580427688469230169094041564029435102583324960644652887720059781389241641187389406961519261951585855600137553069475867099913779272751739307092066362880010471457793837775463072672873282269424475467604913971057980662587553000622016493898777401991179945001507716354985960257494494878763067298799785685291532305080725354526569065156117692085208668258091145427483275801854744101060400403025587795967170706283331291117646349431541561178485991565256303580379807630287339220538486980346350797948751685719546890284559959275327596906385145333949561916112927528702070730875584988397370228084851949288603058511415342669340251300880422861185171531873922192753706694994396126618205318923871292886609654188995037142633652298058987744473957358860115902822153231225417195130023740586823865978781687397966398805864920791670343639509763387359052636764229529987595577646080526699558988147186610702509153399261408979321404391217456142227215498187456854975021555426417394701370501021760455287516650465998110451996630955957875708997198566667228260700153259243227203856254970891144924646395502175192094070298581548644593567963577561966526998013667997722304540574455573868896155482421852076520331876820585173954222105563289701170086272631142310743472292678855297289386002624169502453732261197161830688079217609254753626785541957304646112195408254422894413296975760148542460883920352075072753763432362586015128070280644040430210377230423032589305686129152607014957874673288799301090236297442719966333057419206088062707711311761559961908230424288706829436632841438049354464413505056232744166105619786605069667395682891069517226547453048991001936128134846847862156641721636281438800126842625871100911068049690992944916698466143533263798154155081741360853521130079379706239155356390690908947800920427267103962510035615692825225154023373117337504347541372535173888238847713685894564376904349255066852811765501152710720545762687966428157085539601833801989823171942569486614047182245665081720431641945314752662652153404471442415280980791846299017589995060710833484190010400223858633681409931673258299013012304082491501970325870482360094704930723911179660643199383190779699230952137561260190005431665024594691706991829259770695691464365326069126636277314470519021203923901847804798797939688798022146451558506947311400006629960211951986087537085021495229235873578231319955586665333846400083009493627854009748744198883719948218391270230140584001602641625492504037408212075725351464185134763683360557343470815327757191296681525214412104606690918032601815284935300816232555031432302092154584325126988622024682571182644169594447934258979941387485667601655459519636124717564895727382321769582469415117460128384267991764591832194045740656804036125224104163589060223526685430630024624550374900088890660214469600206803339140006907170150255088918098037216392326843151855464396417617947191319163936184267438086109406707852820194367133323596466961167780810034758718061008314921830117045315474401723114170467479728434293637706119466699090694856288679137006733154732999593511197126196134988194951408577032073121941643516022108472000903789831312896665596584526775352978055827076550278217505911933787303163788459369420978040531878998729107893602532457796789199857781055208427511129426705217769740773001494326543137387859726455593951368378376453694526007705329683366044532754414733934277234816807244165761563247470817577320765843222671527374494367277498482860501280581873532190074202616440406941550896823894799145261072524800005849637218397695848173041101069582746636793995466537858426314535664062346031961429806941580722873632197235499774876034900354513996621397160212330026871173508209758793272932317045167459673471357604029502730621754517089210099680420815142024173876054016840625950779747032631467552023324347679667627051037306411844653327260890638665568721823224874709603586661887991019576546732610587445311364900397511621024374718514256465501706092575583251413683821229954385918253957347161026469236172550819415142478951803204526146272296545290575254792538670165944641569048831004888276427401502680691091409044079073078483625375030908769825726232053028027611252069701453242924894855902728668800359849411907122636444863975570751059260524480370388326996112903924937486944843763882192066563036791854734444682963128064450214911534099341971253201665709979066947922940109943515494280514094160115618909139132008038941473550761540608508474391084040257741270498584980879349566917270750909871404734368238084559774090829047365045867216080531488804760197133865835383122693014558197801241489988816087717717166398227575472293656951471319208651323760631628175733877956573603690382695744313314976031670340695928304636664615617213861614807950124515781401721521450021350861429197610348883625174839067220931265803940443129450428585797155622364676631567851365021854118129803617404053620492990893789668219799171730217200699461258135956134105161190826890484666376648021375735309787533018938687343832595728369988277193046071935419864292462498684898093353574408442547807891424406612125536078166835166296829975922976174397769802946691101258948865900903903266387627826438848462063788402373346788011594828865260202004458656171544640214548596340084465837305742951258741147505977594250455433119331630406947202439722738591353900037902106062239522190912148196182906118455975456862773207645359104878720503328142063775850553395594955459307954948114175657099850930917374257844615936779886882654648638071474289178257834288836997966740832288042794761959305492000206928674739466133866816588523542245682637703952717176276496924439747716209326665259387833443937610290660213406134565411527421153147624981289227515804022195366477783497916748366567232572464568826837062674225425139352713053050971169217578721057660883500051788259154812065389089776706904617045861944044175849855516640945142639107047785397922104842131665080101488206395789702099027674826549679325508430703408461748583344235611677076712670005671718195792603417408471110241252481657829524051458868093783560200739821632716573716639964780743481669522276887375578009776654360451906104325059420365338257780301422280287046431434861557606117161541977296278073799735196874988156295047608375289741965749380331262009139285749768648358051727042252349556231734328606943418554551679462184564432904601764756833646537082281488335111749992709895819305336051116109010747788741360277284323856041076706840521853699736661373153883214987011270931896357389982791765168782882830589727386681970616938327823655670431568016525743965290781519513585888690644966964383746766233885220108503607721394415750919745803358521006090882411558542132450732344138759857660795842909523201217513751276913332811725135624235993417850173821447569439184869266948993484632774286153752523269065616849221875256181373120552994520344758479497404534720346681233078708710115726661278542439747999163789574268262969177599691071805572107901118086242722709064348430583099491057480656254574278119967880299979307227924524796250174791636853914418963654246233472035238597269285221406373516686446344999098542804726801058818832039933174757035863919029219629345543091949695838118926702958157603411681915553279160123962243103134536214471164738127535412638501679978434425278277597102267400579236960643606975288609592969367100621444150146714849318066121071095702229534829380030930466874783066047089371236864397420772878815933022404956596164809584650989374875890213093286778951027821214276596324301186549258280738981962177486295995252088931126441437163051849506182618461244634499507802903564600156971724174132704685521170188782103789884577672767795675760188530458870564208106020700989940773169212943888032577847723935201504161208774043286138375120347458014887727378328211086071403584314541409928765276976802025979094504147828055106323138317542965125088180730666952350007801294291889762704188662038207669749269989131416763793228044043948548333605032003636829006054270910081698418800069079568592349786743834860233020893164967659527290280014571276077785170219868775085422917170949894323759717132459697382763043408102528475107968785306587225744406035783434986919369852353926830147546494672664439341878736317779735645981549864385733550064790130557297545863386212580426873447639268597311297551006625794025421883024810188216049706335409269437614322415009965931428704852796037361631033471161129888635212169978904826214654236286655991419650307457902632866178541021761589544603101043430684073409932549652155632495918393646429118873272587605252294281660616454957674038020060879636579315956377012114090260200254509793037463832286342861636073287797149928010947966436058904764061880456815559767810474436536829744715899152272276400352208937978190511191411067973042611796739927918754727131747973766194744873095981819525928850884698186111529036382817068923022755734368145564011355786780358794958503523568617079484513697755703640514768804317340987676346548404522515384031156764265635888517454217323346110457896640252639288792355990072328344033924535449635656525458807885196551671545149130903956332374962038203080041537628524137449341513034587931867315499414572237057781551505588204724796363209919269441319033941277634900679980770062643546567211018264460211759627143469830662582884290067373633174997577778627759192095121411356927579907520691160513027858501405962015304517870534877743532870311777024376092587986586713224080206482074496724323401310246512212029566697560394921236893580228161104178770767668099046785662032040194445992787045096131995112060949223456794803921373619821333795512150416789646635402585380075784407138003508366986835467931120311306407998926964989750178412768464600137767459189560938895707391296751657766374191223744131265317592744310878973136973924401423614226456430758851344193313941808424378506241214012088934549016067399445932885816152669732330453942086639210127281516266300269294199586249651803130528778755395067016248359621808871047295141620105456128061145613860408820186364085714741699844862833119899695425218306260762560351516610635850152464805732817317595791547242343611647967704506929728819335406075081182251955926449424786542527470989810941636192697602609498338257326760369363229251508366608012356120790401302536317028440948823932742762902046907561381620965153939091086954863646485818215936582373817827514300871798267140965152032208449703687060220276706844934533927674765876421000681840020884711861641626484320856864482420011575916725326670408409040768959645289631160605823293704971793954055984517013385146440265184964196253863828106672633945514818731452295205972434651630729149528750082250052733617124246998845502193302425656786000981750532459602800569030859318832038539066933261645454645374951614112140985026143032380240503234069491239604028572506862746612356521631864853850204430667593795892631556547723430023720970820667857226366099544570800798168166433175470358178290850085442872441275126259695776765850640044739688718431081552575180646516098008626441007293187962126255760512934768517340219221471081358435686582558455954374159124197502443459726813845804445187242626373721502559777313646826336865907799462642234731067596676803534670574323273666599809730598564717424968427190362845690891152405710685507503751225619411780021555355904735916449735414200052275399390627110105003110721905441364459955961652596800930614880955211913484783704754472810534871914516360969142651031259761551623753529002982100494266977023035872414608422007837515993754529108249049564408695734948188635335899546145195919035625760459792049901702214455447531288188193683921687712325330871822150592183000465571926057173686823576008219206757418917909851272844547711211283498524209285335346246373763785287484739151115134601452321513385184785301623994168892869183895794853389326989504916062093469437855668653736395142445517155534036374646646855423105157844292176414153308742042955455053259301934759564526193375417454572973473471536719584587537086722208128075092684727809722961016532613558271700273033656876264757584409046871091602968300827537310909115961049175464010707464540006373408872740979767717311113600050590303890998873904182318099126770155412074859852638943010602655506293248327090472063399108517754162546247993716124582724996542425556220667103074001875152504803234228380831015225143472960224654154144842060710491342282394797409522633116834175850428661577973322099851214037050384153369001271010647947394445279574042727940833460839117053228791442897043969845745756859661091637219391999173643607931089059737161376096906192874043955600723055154289062332383489517514059700239082579441504903170087975891043051546710752515122196254927697035823298385283537888400006711848002530472778189493433964137584157419985329544560821756878370560952544397537572843583348555113541049405929931313569973712708205264627572313046110931716731391248808344173900593114638564159417480209925556978362857524506335134571132844122227737598213004285027414461147568208646722273149735743464737622244841618039544268656174263256656323898386846921267674738365772390705809770778388135617791368181021628133074591652087417373865542441468501184612989314947940387230698440130427646145770053037329064659101034956804299221813062266022614412596024112096623538203659920910134931040206151671333010890506280730289716586870964436495875269488652792722521522204109827956516098290390782235339423659790078348286120233649130681811154073737884333361363179453520537345058366141245907460604496372092504358532577999413437018381909926029854283546602230050125634918804483133074590628342988171840317237639629783947214779690539629717172427115500194719354377411236556154582359131738753008772056607072808082517471450507064352805456569233697501606666542460315340050390193394296140535905230401818049074274892931707718363931978345420673820656390505451690522946680619242304018762583286919371489167101714208537365495163062645787869745919134755052297444967104355515497497691895436307309809736499231384900496026758591690208118232557519539139805189890534150436898189304839938599114600011526815117277338909064888990538117203065906560671672536243602697941946515614769800212628076216739489487635429276915449569473899841162738420713077275735005345836855822157336385837391159572864793548947526017766267641579062613716181177248971541417416950498586682339373068245970007596658801710661657751696387892476503075256394672493558301039712458908051608292245404456070229003988587379753902451525049015265154505037053894411799145833976369622280017398587869142048123036338647296455485858117484841460626912984714279998766657712366366440783868752191583787631825274882899727770900161964052622232938966760088903450782773880043325642511854096197313357600791949109058461664440955915497878607436517030394432586610395199349508909951140773268214475727353935521644383855173275402470562085589795166779304518445273102757356337357754484818295176958019078463724250149140252168876751836064595213315983690119206916381062532877232632200798314133102569361122848659852568583352813344936331564964381919477234375409820740950154292443720329046717750616168637829193602588739575763030078978803200859810923003341267600095310725170910843321646656405134631321397346319316214122976941643476965780444155277025231543883314357584581605679704342100629158552969454287005100145852387767370158497155735145528189317519936466333698992615707170188755953680388826591920569354941253038519233362130894445821445277297892388384216827853355935520635046631698992554271683619306420600689349022550715214094392803102831961707178383213789430317398157008437998054139028859812997258825287455569873166576622760989477940347007734507717854511344647790537537740631246333163212379710575125560488595301739691471459013502317853701604338020935101951013625840002549298820115335703989693601851394710206048422712752353200816702159199288518167875903048457175509763074546731406041995024823628702475716154288800044608705366043984207271011089454899090654304368197304442685724523000152199240729459880700496873880368985606319351470454399571395168523803990267353370596437606442799735775649863708483786903163235263775483607048114190004248884253894569745114209866065502248921861409466193802244884213119444217304821883860292000177215206714440820864547323262905294398261669717483080801265499377051907498044779019817406668604242447756672680274212798890648713452338383237609937388963420905156019418619408211968691103946849850866321477944548921409325808954800616762621436424909963462333091735145764675409299138157841257253594152270513773301252043652666839886110963573089056678569694907057866561865186529612415922984379806652208477342895558272362849941726210854714543266425660866283756931504652953557223515825155559766998534047200469742059539139754646059250099996722336250257174602129516320024077008474003501429787561126098206948051327626276632171826181730834903499281728328723696399329392249664190989606932640717563782149883928928996260907012535631525186356070483956764266069059065482767716532299247001800084219629933000693010497542208914246340739825497751771750202859881953510371010474413473356020168862905154666206634961401585506687118853284903787647067404611382363042787437832633581207119921965756266539714298067512252311499380513085504453624016814280677481469186905928255726085530237537504734585252220463209321232015586585612229376168025233281084347385963014242545775621590268833638174331532873626130764902215495118029411635525503911054379147910702613034106841169316081953432524464200251233706355398852445421361081337941538438848953919850529896004029545304331390667118795003974351134090563043230655965333563975946346648405347243552795247287897554693393221628902060442638610878161962728930808651372653212180950374704686470570312008640063639134512558273622166828589517448640585941649229565478784237833838773677864184315985294389778960955066699186326235646438309431855447159257644114122878185497019984806089629276061910363789357876273618390347638429495717093491448153067186473184585727427534695691718843386918625815652932359636587672098998159629557851764292537375239690822954289920785827375457420508853319712374100466172907784896733952840498297715267411055926439025731663167138804805424823652147966298195885032005176824881928014894258345478629905566170992426692255343760650249447613822299109921781381989010181474717345478640786812189416073667969626375051359248577835293873060303288845357161132373708255894252072476858321754826080033025173737924866157210319518960748280206368472254720169577785518420647581012272764468545724402273371863179078363841209720952862566168423044120897925330382699220720374329681862435297442457511176897553528761729974533598170610687637062403840802105288828682075323838274054212323342876367065540792808199776336421810399481698746445999289366536906318728116630793970270114394957442241298140974093693733706139806138366404061150580808689238835341206998231637292562804026433568456585683604073734946459879553767675948834340768633297278631052949343877083405062067465034698474710084253953977265417671996846255202267125774759215297494832383329975763473028801639797475077474281247080706050445096863836514141370101532062563051458044658661248457499188056001070637000791554113075656628212964857771628236030160661849187233092213823845001821864206177051102777081058506851409817793845097623704305530137253185647098302853970385602311267069995136157838733394641411217966286228647920112439272844217892104477577000449933270794693666822890971618091969271478624579564010668761704946071315087591414187911260773046318485456651482895453248621984051021098142795029113548429939834083185220452637511238772634056264945851675874703591914844254497302138815925840754229822207392322324695746856115747473927443211646630897640193311132519538368010453321472738887123272628777431312226357796671131807144211782241183244299044971077712025646567441831321032099095252563679853477236478958785767623563072510439881463199905119436875098184147738030132463385648098384606326780637344744010555220330519812919098695968454112356349868807187095534404885154784417888361530414306710807301290512237635713692414663498839122427708363280661909361115636334630676548495221116618307554714899913939043920810917724255728492330300055695128929941655570414250208710776626102955350357176023299775569902577534209791807973391911755390041866070168736080048800263163037725709352666172830999828216866481401977402935786737257260619836677908065066103212517514877341424411140838065865798837911231545866519102371390251377671233236905243457485939299491335701607222873075296001644740139163510425007650552446121230476627248849442018638455660023317414432721849622774241360449371352485632160053214181461471875342245897148481174995608889503908978964912198568982488252089824750481000032122500553670219198783269951000274656711025182032112712382045210791570516057967427555956144871416085216446134455027670164193459128060382979051113167621367516439156902880939585165107442236194739674298740126279238817648102771650306087358055580249301316038550874810018739375942416118506973321060632304777825990134974067042810541890651376011027264006116528827622974229151007894124747563120313020770946329349303862146641890427008508651274039650578552034433635022315361134687537224314328046542821633171574914156454683858463524055077157516703850758624388299649819893652194927234629193787360384250255512219936953860969231517052294389788629566136498487888782768836389216391522057682815146807759526470688461739300598893822410982811845860910321903951531859384516486125544827662312033166480698097295038610897766572086635778184101834973983569616654920433686370629078688218572478246900944636353118187477376783561757461662774953714081272248124209346035332577857017776434747095672569746197976208551754777761434829451467900658545711400534460891040425742583795012354995405811699343373306221924048132950209280783431256701887792007097786366264260129553065964923451974310887702764993231591712366434537751529587270530023374911742624438358767531601637439552814907905627164006390246049021603436718907175720547169989777095839103996483025753247644550453722578913985775154376674587338641481382752075877852343165501586078116520941229580293034042485715952399806090969070301391035010557888977201171951857641924343961494148838181785034348702679709115553103721840588304752864462608100246397405041402627363388350607077826195243768245211865601475384426047817617391315244321246479156252260456569103782945334843409458415801843642525818819712699513260479634649575133255396722624937632299782100694848775779066524879668751702856992657868183045792887421918766337478078137693334849312763293636663400616337280991134144243851889152320468866157205449579600278994250804802396459744349258979535737964400466074770590295121300443705584157708954412717733098390335359020923098589441923370859671572233258771716140813380048151567075881048440657949532435043956065756059614879908514207070194980245598121970158807579672166995161958600100581153160399746092425860000355950724075552204330234143059906791569263864212592818161335101188066613320596211630058551836188422847636505520873109311687322221354274834634219706247669110648722761420524183077677485244304840149890234727004653119647477417829806574148467668422669389094806780937949471211142164685184284642124072568467981991569589437512919403892602172709493177618791531256103575873233106192060570261679303590175828713150734097742321754347872602242655139842436077311063424556288981108047561704346468940398397917287522898554909733616651806658426571660230768314021160432524523088093162517158193089122108770232824002848895751617474478538743236071069802982511630662381056197079225418048768234055992453100505733630149702613426495668852305781200328749060338398785393947074237702271029752662230155737568675600826693404124862514697233154483049379869226071099447641998116378421317730130120102929134227269658008741225753655396447612770343276905512114645709562219259870943529395483929596179026952527566957377732075517447922662027911266740811062567192470387491180375627374124241898767759497328045782272079107960440465324428776992924890303579414088571465728809217360046016801851236882328935436667721217104517669846098555251210094818419223727738163703051235263567533285424035471856505115463240969449772033276879706187838116408924948749686450520762178572268998058704896665466101281326798243031358792965342450245200259999966581099854629105403439632088577180084649516849358965526067147684067708165354002715117957786874799380922167868113429049270941969712737496677436742458909935481921914461905775301826206962877147899085760148217968073605001163247726772217944590822197855477987072696225270264884029120961996517084033614648387519600921920563708141508546738194991419262471251986301856756024772703121617918199069474372118239276680356831494699239641214608446665723928131198429387977302987929235392580703190540789016226365052851236053989078763494515468711543679597345959158807943318545482016239707202894629163090175523238500476473611044499753663657795150488014823691303700057344110184444390144986379008832999472149232533619505044328414265814784094201374115329436279827544069029905712104092290318624217957327371277745321971261447114849716107917717902112561876625687462107827671204549523661522069011139395552674399162256504136993426755701440867791274776575461982666455385817528605848584433671523355439730691874115945320601173465714438450221724934163622916470632765470978265704315941195824123884246546848702651603132467417083678726153876034795401962195328431348306911636221185219758570543925505443329091051452293805376518753315732180099197443071581402124588871545130851660445825594973230478888209678565449503582336882473975382585042769046071982587769058353317609977360565076220749152544164770439834695254571261940146713288129530995838233786285254132851058360076719421551098855155281002472190409718695247994196871906232263385583517722395390285448075385500366424149399506534438564164846959903658624201899316024743574537150387766922671668141651310403125868655092883953800810472570356628456772060138667261032719946934152475581428983572532629777342138210463358605806609553259958619344076793010477978520024840608503767007961295653224528033949675870958652317700196982968244700862288445754601437466636624069879710416660731839195611718940872442641462993726459621293837640639486358001113432621358498055918057366008279129670258343316136058810312782072930063349324485105711601906690522240601018627263224347472194046858487184278124051850922372167502777522081540897096496274406680043078620170550765406346182079297426844597491328904479534027584867445940668158024582780538554135754581748552057047677475473303004963416131550531343243693076960033040471112402271007558010113143521131038428545270433640301860967298285963951488281723961827152240298848917639656801761061501050382719643129463710478710587136835568385213834879225359773787429840445364657861810827167156221601387428585368778073618808335655132928898211137894949364783505719911105918494734796753336669138455121401901699279955736132205274353277961243062412156261867303025299819058044445678653790940317990571333392364794950878793575425764433555737990118087423977775813690164526885423452458261860151751168476131274168566616226707414027050580156932589001853318832652889858540800564545897701013792173172823438769389291954753621885657825661176926292581842859786582910933207644824184326360765398888832983596734578639074769552958993055430969540281941851182215312979749437896538058473088125169080892415392470529425711533314150141890251806138073821245532750764617716792404750769813361152964525258921019834272072994263084018472904250965588055744879396483071514304602484933983548211691870888524954450958709784950234323453308990796226400297203596502238256517778893766855396345974174384011752196276575458195075592409479735865411903910964229841241182120468820606148874245078765232689539220239459651429605694368836800989754688540804924068794623530862005879429254457475235273659586617145718727863300915470504655674451271474198643632262684009463162930507874355938601079356585872020874095271760068994896297034090510400192818287574717465223873912117258685923515160086407690877693600190238944836933724866189612506587596855774162667982988508529725373446626207237726031691383526602561658909770314725478816929347047757402592587256519057243899686920598340786206127987619037923435600800113039478160764761957463116530414107764613068480209105383185621054199116014153294675227203295233148200055338924322742567189499801019210254244611811619293645518940885321247149673812143488966728061138527183024436117893044727028519448587771887548386787334284056313144915529485731433419435627662492706731733170449475815482985586923443270565214015810096114135735567040630414514477281555806922231123189189053700626585313689847392928290022829528149734613594526021289574135356960160408502583137996101331419955834816961878513193694722059890839519557534931556295514776892600036568128962848212338396905345989296480610437005057041658806871874999936779954234190937719532469556995474902318802667976325070313892580965280092190875974031555408043685690238426945343799912558705287048161895273402820576702139989012284167311271112240389212977607408510810997596021406343455002347492577407550575769949871323379999494866319154449360564020990438411759967155857677070689565415310020301774814582597763392334979761950861525399972441238699545734741920943886165584099328847118535175623499589692727130972930634216716110064433269773684835921059195541802871841942264106505661801361814560375387074693981669787748550442838529322451534132378748421278431259943370712512903888060583129919157467504328974067546699078221531006742373010977599962404144429313473213435037888540755908681853678099577966982211818979839006658449281410938894950294979940313384406192654444352022914819111304798926184414574632423895385123080014906515449945803413911256883733987841278586509804835944364718003573524689587012329834495082180252975578336433037536545700772390412574205559745913335311151488791452366866814480659582310596615304543585823942384072384037708020157771796976911157432488986084660546029901125663066652578692123232805283981899455561611121328363352441748339700797851778874871865865788771278907458656706573226999714553146948586116380713046687830233134817025424450972149833569855880611129320467081883030148272106115237526824537389775329663924602907236557186182340783566538874215222743018272040958736272500774761739775218667652086701726133770586634146570628091478836562524227053787817408190796645088796917592552776789282423522708134458145863756136062827619962306254074407503475047721339667787729905153885638627274696740915745979836565356226340339248817529157031184802528925852628617325553295850724992399662891447917782954704644069622843331192372629160005050542035462614658940865050948239526398234975661260057856259484068847867559189340360634395577128305980362381494232155012164945401349534203350691639285116659502934911777934626042514333271268934410165213606856088753772449888115137653026862592591067053725952197192760489152776692256334358295854235421808893180209054214057653485614435399864559049957232747353905376563366827706526590217645048414884571546985381779137600884709836729264779719919158816992305856848348217864963819615787475247514214056037281337931250619077181287842816521285229942474797730306631454862416892291235987342464738419618242662899080645998131195054943238631858746286745167585384267481630970536224362425772257069285190148392287139213995591689195731828794442148883838106024793590949081948613285345785367347206107009626499168143280562356177647786857181455382730386795799518479232911436898978534617553871973270244112753373521627249769590497411168610946275910318448907787720283759547678309768769587327907673749773921280415566439923159730353942544174124012717318299796078429550820431515673468657929397488349598585266774484803422069859324833473082754356575181576417367560276193998263192341547030024145375290363490653398410516957562394049915466793338051563326039864644392495528053091088378409850071008217586085180699523395914744578967080883131754375727346082647373695975036732568829934349075040714244223503310580537595540070563137818647009130068491217419818373082745335796731028960361726262307441184431986041032040296776534873632563819811205625737156067594516908558345334125254977115380646210102368597645132755231088189124976561299516479367766321395510584194482188359789272061395315472196499112989707236593514055455922434085554798825918998358007421401587786006515885036666591774914998279900506431727727538728904976186784709453823693752744287205645817920709403657094581784218059631538794926230826940743057481336958953745339127217223325855369404333958604902090861020078588607669846904635701190010170721651018136041985728203667411122430866430961957003815793579675983884913444002623284930136325630306747882099322440476310556115803223350747937177012407178098394746168771928827740691460995337461454102205161321228758384478715443255312237166857554919271468176359009257761063357380216950736181857729193037834679096197372348134008204401830892875029720372430388698726935457456405991594316707383139254316997190508962777753888660511031449403085543829042024924667303330485692865068494578213398783706636000739709265160828740139093840055895082308710858233563622616804216813375430361989609333024292423769376124116223903612480552868466905419331092778515305727822061136501053406708974961165149228890199372558725486242394420746194344869953144122703651983266399385320317635250534901354638576635282850695162407093174867861053386809586010948128853280183251947688815591087113009801798310802748894888267040997360346479174034332058538345992020357583952980423785119815257327310980005708910209178749160546209237412741813495284078480570809996640525427579207274626761138432797148098563249327753819047856439607746254857223451904329357048180483604064151189311462487595526105287360652922569340756077241824481395190618961535118931594284209476569618920462265386965141302639510362572452482291318982349020473347329244500935937940669940983366052783237398068471536189761151116762981307022270121074306139449056769841085126565251637320625334937139404201767926672764561521056273755373949241219349367124214021079595698005559189594141072062770289948404177976731551354825493020997807054103402087043843685762953624674650066572312852643920575604576535086619259741698242378579385226404716404326498122498204575003195269896873016904823120873302699431114153674238906867101405666182524154972068478137982181448054420430647146516298410824014438300548946923095637299296863950081489511910236064274536540869171584817083434742678837548679408546304191938050708682349647166247035541501820012805044886369076957632537131476480167601529420104978792498485690906894842561146933013236488953686774854116132846565128510974563493646953635679040448144710960323152439376177842063578767227272356743365571829055169020059961269942611527384284025999094506537536991260704489455337551125078282764159719492906872820230924812689873846086948221488056797282988801551301984377982201565319790103186999354918977651205703899732069456423728314767741765206744721961914965132299759692655023605028382652411490484746022932166442692280714291061234907617855838769968320921195395421812879873494937630370429180341512974871037839050479293657328397868124476775070944265237320189592390334472024354015506521312474716555235884794827909627337293765196779308315027504509308672114612789954409101140709078468742830346967889487755585787296102282757723148290597876992124899162871759053614066041564641451835559868506232610669664089858261355886100576749349364105628493584056327784143898417279764965957201966789970250672959486505062944512994706068009658390779832867961801372600105842397875477510807402654212813797859369993941355528966119058810703141293966123582292697532849309811927331302376921490499626567333594533894238118808190969653426759212172658963579486365070011712408467254650602989112184749128370735578133154942564186932893399383200979416309480065438052471806777085500322253597110708628064866141438058179848124171897439244813356415544003851371548543011873250728408775800523062046008572358763558582032004762321178488754854490106105997476287223553664347854012702240903757727448963323592612173206185825891563833522692747309660487457815919421095222312293210044749231485736307363610423055140883276983037520934393986846446043961853212718081125228880625154117505620527340392571553288826297901566316093300313425399458004897068347923885228236142098694022823654933369262175873832886582111107288954006549843427890679086496793390745390715487970538253848666713463011368082103967244934820541401930981176349708163229850700795744143405752372648284871963007451775612887145529052606978497198031462100639027758493861163543473272613338507406606331828675241080542426835228882505227550958813895876883918339596013092667236620053505462564839850147292537534663607222062687912268402943508563708287177957167572618126526845530092475961240054615505994154252456401672800405599167319273714667793584752098199664600323156694029184383657913035126782687055319393188598283752408210676333422970422411246199300351509411048743813030508808639929897443428107305572308581668765533920342407757569278227888262151636577473588654883523565516033784001972825806442113447777728218721449459239491579393432460112668598638106409439366907056065862292911229001475407213983381117106459766482919780215491596002558426221506393178970822918970228895225675775778543798030691550980852905459835012373589864287846799551783682664491179267079139438739838644135984730391787060796106075131774628041660007793410214088752358414127715662942537228368466171769441374499069963376395816050458197580191644895380988020799552405225790892433048955699608254152532410269805633116627983684651986790609785083372010236914082073042765458629615896297923313885459183242033169953200938371204388166755322568563295072827949626515488676716785082069187605664404621528542997694646796537685984343150063707932592934642871310481877451635085606168785777052000986098683459505145480558115288068235248906866066973718161612616524361507450222485103017946043120732538608541020697839618883525551239480160340962401420932780871241145590346477679915866986392908374724460232336890430928230284888815960011755483127616582348351140049283170277743751958319705288412956525758574261126751429449739534158151087791111877085857372522377058591976608058679779683964409170624967863464637207870633315229206700599079686170293395326506447822118907216919407619967104502103326343118438469129237353578601128599244871072073818206913064716417828128672636611920739880375233159759955162129901205661446709809560713891357499417703864024103633571434583408615854436299983626174165714436537302721377809151211842597263839752389884076234364502849207588611385059152236015872565070357808152139337798804563100395688570209308241311845675023565767616758267150612694821997977576068193779514944484520005106396694032753164245950179908652126273879829915472027916146008151524217213003636420175349568767075212019910718257162404282206135663948185870094645231322581292698097769142099180174458023185153945423235865121989830415710498815692911406830171941480430556019951038186690332112078601669746940892698007573508184080425226686715206766977208781664419077427317125079591189447123687655117632275285021312365812602122391341475435259737622945162376164268456711103187100744174433631305611934211718487141073759371399721958285180097693260567839483190585515747805949447666693597511800620310233560693566526053101908645031676876260091888333359679431534692168067329585177708616197026729185883134918148238832197786130154573272784449397580460509642975862343309540865860355803099299468485295081911997640343029794550724373654121315439345473011073028419116663050437404713530513738390653540939324318522259709734920203555440588043757228650023696022542743053787887745723068105931785964409416759380800488317361674269010603782553191612457042708373543528495930446171479681825633450401312069252097301060291901685759596755645509520276812129461040873129128378247511580939801702641204657121818155589389203316253766845806277095263058165647925565309468786839809836243370495888225781689051032970254324456157200098577474031974848005511087897172897471010965214078625424471854596951422256940682641400487586140374405243901372587422199119360681462160761604517229372473393504841948809532571601626618749141454391143906629467509207831569533335843472721688111399472806232213566905788093375875624666848604837823756513248338976389485349774785257071426073685569137777933004742000747490567048325510751921301829576955926503061128965925317669581710799284166185613842041463137540028845994690783478314544036531043992367889941230871834955149267696013905429455735250809570924774887447074379906356445060917625315136605855098998502794613040331870786331698331920994070311761052746071640485564506516025828719259325318963525009207295795525891486502058530115734620609649562911318087181077300717137829101476136321766815592418906564774442699464870263822605679224183215666887830276800645565856449110997213872758392429567788159472258214067756657821951786310394397621598839665585101422802869872394919254725322126628264929267707755149512767211150117316094839957347872079487262480525267315172328203569965294533281537727929565985933144903939033700151437785022386524127406816573291146981975723747562769506177692764805522453287087916197460117414542823305629042828033620232574274446840812551751697238479934648382451958937557836895404118987720209157705535091016742944992001057318233755323467159576286750432854940193141865433638718849736514663940411716292228942034157792619517303759783346415922059299407036671842935344105976669725706672883453938382264350841668929690230888636569259656949444965987684789583146573444316330357690180814682687454680579051173042539562751057909563518836422296849389669139388713876281158773717168791096536165800155390811414360593642789221494398056326943556858933169755013184984773380685320750584370832830731394255782259405898951562651851555760751949539114298770237952116470510092142253794390223427723212827573784286297152016360008613884204313071929182530404449270544471933606073050751919053013249744057335962441499772673104563208109152349002255011970860460248438042564268459655997133920836056338662541437676317384283944272726892472695953531567500747754926289990056390398673222769847705185539643018098360248077500182957362702705017851484410534084200037891428001458017826332633677334086237154026773584098561093357653219458824395293568610073240749610497989020104388717504663394266992322918410426095160657543220227719985339993425299206308757423349718521294535221309181152188560991955253539393859879189715148248118880257523663750854512108932922258664903110273370888430992489531583340526151580610176756609966931631081947331777587733753587108783139790293177434408055157067044149107789922357933277365808802106352854671994546176999921843226383324118053898695935453464597124589495334179087474408536311553658330304684771359505225107328865957242216357238598197724495414420940500349186340757976771541258032148031904845518899806017533495108366566507776602358399646638069112487221328301861271655394073071659836379922051109108177007541871713930201214270395939621578389171368034932291604693472917321805514676616998616332271922597587159786053639284019920193508419661398318679528304455817647480752861708678855718723333128215911674343701092844789523628741982588920044934433982926402676994351534850784692172919782952225692200840533538450106426629066714326106235125360637900250009494744820897592332849009114948477017542318187134767794747839763510134501133460843132087254399754701295807116797951363255786141087348687196532862883561117067567638466330088211501297499340210350304119203850940868941112271153035528963138961059164334052362529826966617649270449838272396593094323789344091747323572404859035941520806848985069989865784917665422516444981325593389161600520515468561481948785516488540389870970371488730420231561946164761722175605113865155906909274319304188117716997333794738657699805927120784240095719040563616624982815643651615362820815759343802277706000049342727335327647411350533783318763750503418138141354383190502848865377863242360331320425399354021700041946623064241540179178468303757555335749912054824515354737414224150509037532702728926466692158500603799508537782030823570002808663693405825329011548593639336442994543143795392635766941006887887842295834205287562812099904219862336440978392099891938865534795066519159066042437677999829223037505394363757293591197533141558879838002947490124378811644337026646034975129740555682536809919974272939851260366960529387796687456986175951648415373684396719437285085022439121746478880033776958242213941846634934553107219885918563154234129946074145577938893009177948170726230534471515049382385623367320643444186104894990149757366313295410169503306746333554243923511091980055144275204180562572276405114759926399105202837472916259688675929185737712457151932222292436192946727452434624605230214774967085648191384701113993811784147492876731506929580655067690040020126262911868156923136239340837230279015824056947474357317092760624648039598932789784518105082182536964540538644060414312924766752227453362544974446048065855408278874093401689632507772651527469375997880202474714143748538925177673818727849885710048423125595450636409357196331688403726626812535444126989970946524799909179516841376666863279167892463911840011200472118778965300451690353004336022337735171959667350760929149391539332504232387990856503013165201544062398153690245378862887305631137414067575332558816809949547772107630063197828706323414591652590281147022989543650724904931508420788326289905127418323824634511735270017504026327129059965604292852233315244336523794106604424186883738185071834585139554620795697686268604868820399810589091838898094162489979656715476981419360488146886444297630377194791938162472698006628660624993655699954187237931603387534376474877610735359442994464661850827358127831473608293103526559091805169990780232301417809819506756915472403691848519954307475067898236605219849990946067243039409311285546348910895767455158066184109085614663402619411365486293681036015843462821362418361719242249014552980389128595259988024995023142203621492712069913918677524855381127771719761418315579393972271004835605369490126087562669318449583784140740582801704706846501673963642395820736395534464343183230258509029818149219605496703060605707297181969504039872878437787206558991794991363018805298393040868890623733882265638016634831363102189633694027148672857097286146048506823051587127814558956749582588883433064609892740149522945252779021396059293924529496462122159010872611896473696043897737513183064055154351524614791099960422056263580116007967743230995709433135383854551276754115083503191142333406880853835842579118915552493807344443709276389282405494353126965241126198711274515001917502137872514087187899758394525861116050085166621742439926591327986580361330579077221070671200713313424741584161399954858402226546470674423573822509684753445786541784276608872774676293560460444970143746805229330765162223520448008030546867961835168425471005342010851953801812131035972926455230232564511881488331254206355225598994481241006782014375919493706315455454856155541293823190268981651419430580959038874810762562541780772472965467013924913708446259603862352085335134268977049740903371044595807974366248377419181235197070897052871446091702588916148818093205895777005372024494232472931856190409809180307069608210907835907622934978386205943135072881785052124930818016951158778868024925079155680098525870527096913376935588913146190478694557427453914706623197208959732640822024504859788598920554830099376520727955544340109718156551093251726433594952230419674811753258026633069985477576730979258132062042342254844663905827277503625899758719187996591346264370331155527820949498671697717188064941397063603265690203630078303023965144185362503543616691839091047142282600934883566010536440436816357398028301501411083664128160265405419756427698993633062101471172178457953549974270229725403468878440666228767658305067547428681289751233314027329379466880325538602084407333146952801449263603607847549885479921086488266469094534222147916001817076940090314714581799783141175419540781227642994593594556218664561766305050175683211897999947889855575451630917392485866852876012299303120483883116126524273166509690735089122154364764390026243866614907972583945150506935418050368393872884620523289379419025035097548337223178366143209637581897611782052929379736459193268324375611013489656877587969686360184358562831763753612019703119499623688547731507861612360301087617414482337765271876178587405609857102814245240111699616699790556996136957593710421290931016953720283889748194219939896221521683117019525845478535530082864191897562382057789253263211693136964109562282162997784511525253420295461415023834457196814101908383401619061015775115199783530570283521214998694828793960702224058873314643234867303883265056528485466636049998600430202721826511206218517211670081868505926170008797761239905591712942520103420385843654869907895393575600857445011845278924798846614754979281603190979002370975116049816796834395092407938351781237788982706131638932436702096310958931906393604253301652944868464132884343233460353156493817723918602907759842175802986068802542894489851204389633367238168496784459049356071051902150672366052184551452113582511668171700753257483760540277769804583943716265420521759378749456385098359847831898029349081421532612690577583938298954626740654474560161865573189459109314712150866552469214041701414300902440842487650859344016452989205476110401717323093982432937122306577335651932801102816504860228600102278028950581218407151563883366209222776711862926073172093274519874895867141365725772451305868707426056640783709916001175611516366923365229564694561925215330910714276850897087464197022833659099499096566458937566791698175059128756529478023277277423909955569224650516231828349984397241680435779692637370554715620162210678349616587407811881719462823497390996866926400063051543103680652045472442185603120864572635594997300339728356669545690847432438578317826607012293164454365180774907401493495177617190286773239911341261510349853894060628329373878660800033088349322274951174365881758537571054749844874117564478454767132944313818013311735108349972658753984076308880838131370241088811322837540522416524976853338295121880247215451654271886831577467510184596317693043206269858524397215581353891439632344180526565036500694192764620887009058329733517038620444510514533766984914107617951251048719733730655868560975771880209974855404562810343304368070537400206168227180435411971894330409876927178834567366695665421542845024409106601247314986489922422928952770350849403350088897026808289410745192423130765655398752197781743200343962195710313370806055480605890084267166568829241490503250230961689910228416977426737171725903907839351526981494633999302275080650249252535271617018615353330330274682700248872070463332726888034886761641959867808000637973357360712363508887603004129463741232494920999142218602367583664265047117612884138309248144989297542718614121311367601857848804728138385457028762262510912508407892198788895410157574066860702106378516673423900921841450300041388649778910974520556255077538061571746536849327579541788154899161059567395579725010254502310539102122297126959811418855652041609944790828290515245753842448552523619484235160962280869339147405072980917633009659100069093101881474203641603454977168422071592646621720139850405348338476409438572893190643247511934574148259340758661369021718910504472170768344612593160718642581073660271165929437782951972838208871213035561714511773641197840613113526770222427630232186985389023013658142251516118543334430642423709825224971933274087840604324966450429890659226313529929576024595416957473490478290513203232228102607640961170757772140046676940016521121081878830225375367973492553210985151630932090954972690577182042299995443599455365629780747708428281291463314190734208738783031867888636970321996515558191377007249735144142524708844286785488328847181894210855233972149960261032674265092240883048984577849131357070466105877942945854840383104866737186258526416335726139547595001303964413831040927431635038120716717465679403575628570222884619526277224481856024870207655697196018933023394499616925890088107513289203152936228774460849218533940532841565066855039027620400841325827499579470190994658060002820117770054320445368834176533135007274092557801420917969414712312082933916987578708055369732171682268435298942034637613675858669863805459299886867603098057568602054872744452116739826269706889139431171940712087423123706605595703587246318500985966518062254689533605463907717881511688275646846775039274678416113567051480308248945818491059336158370200543595525736787182947253142223544844453233944452078722929440223405383040134263523276041439947547308636272721453164142280374067332477133391643161381218211694824946246063506513035738777943902299087307241439919294184067010720369683047426008101081702665293137502825940184888860999812483108746562681621378225660246474024192932793686939179681209778880630712278171761950378427743049725880539737169661572230961685147239866957550520575151186302877811066957632153388263450121619425582272080104198526430007154630733679159218913407871063614577896370871841878155994116686854571053222688728168636235474492879235789137595046106133289195822098903506838893256180449526047332749879555793776593462235641368134714287819997241558632578106811953618678824834196776957408366325848890731944111665137326452169008366114765700213828289953071495632366807032193655112767472630251730997901213928761888065713636017143164694001006490678475955777803895928488326108223264905691650405511115479988986279807893372022466450109759601572660219403095513669902214128551527354428343648186761106069463350873248656501795868075677480726870683658205079002936701561841720151646555674834894089561096463023462056831950481368700215541064148433208373790105856249246881592089141988509098680407879319795208046374528696955106559783214984412288755472673417422025506202502256681357382294952321699878017192615994431511366732100487128518060914358897392976923212562518379231728172564187190756482493886676490652472295063705869378804186892583562577662007362160846691161026593712310984503142988617386026913942821306430668881326850100911375911710321918359630943484350760409501968617172458333443953244308062866836112963682413520281243163280475534279782525701470812193178852713511313560055300038998877977869435269279037482415867870300371006799144132700834085194399903584438175979887236583070430993132440837066928934017791807277387472334195206266776062354283726507175598121941820504573673278791688327443334486298633550219997507008457889734149064418215903530174278770002173690650034673138862621885008012629179092252609295865117088528788891083849105106787762349708764491918984920888375347835175469675511686909112691638497959195245171486602851756565949922914123937369244632093762108941384442888772435243426547504956119879545723283186675987658554233430175985809483450890747354530120281132914087142640522276896570198719628880948214354972616736535679120149438457949170804145538902223978553157841870732656910229153757691264703277248573658865403599722794061932836715365401408921170973044953068881654810494202702612597048688338154951519983829494714797160774764351397984064938497078816738479518268119457607396347345212004402788146281848581942348669505160214616599181583584435022917183319557804529277794260812226959481395437181904962781248557409210664457132799628403659346684155384932420044757264846127029556761637409253079474302777740149915712096976538016990579387144057902657785958387291965602909730299694392147564149610081187523734388191217056250004592325358351434507810987553089074057757570431175552676384207150223471079486482605789821856269507831006330707619580584862944689311367548432936604710922519556476588974755129968266881521634509058533215151985572893668563908615913773977394739930431243380811682470495629800965849332256372963819872448017690175295473495986782624349520091477037950204084149995937290526928261399153902895213124099934625041383321229667096862310027154134671625809444150121181106772736304305805142360362080224443081576942877346387713461577339390590138868777221122271102340549666828594086501626290397544519765637733768987636623843418937662031263209453723139002447586616199066943206835768219058266379205392123465767402674067068063921829503044750468168653762835828560159867905255280299421442330490273306492269837799357392283319864273172300583161365542168458401717691112386212245527868199871647244338896766231165325161677945746343688867081821848031307823586905556120428911438796057532854974956825714704711598612000057017125546596550051096482568438415490905104930975614663519828868858470796715148225578962524580095786983322397271386396380637875356336286459941158055457665647627240396660911573033047702867200910259317402905987853849323190728981282386924987191376058408450088751590712649293732123285749944185052831983165516308502627898571128449402638204061361983907186896549301893175808254968267460284536391322776843867250001591593170868646692020505127000062437206108450087215516253710463995883877361949960570971786661484165641433039583124830908565545173781088517993540851220390605480969824423698360043302992583395406251449076658092825406728303215058486388072041862842100418297151677432504428303464452843860407387377673666795552807650587583029852639691915622625811405109506141879083181069789777201817855904748381257442113831289730107207284367262975904379115529832344922322817749497435865590005662296451923581790093050268533896562797330688885910357000850970703081386791839895497348268754346763568483128781270075372217333776718237471747575773733569835667509688349168129005121902528641725560598470770541109992717364959480537827938267576307132220773387906294952330960338095634280851336009791008800131209176597486170083840647359859504763990366795313770813733995054198274463270482429411477415733469159525932836693750080724340049806127600802384208404618054100287346538069307633951543665383948453173535147099969400133100600197955002302335421620300317639006279567779548460958374689536042743932000253926312332123976340064865549895798690899006306381992685954248306519030691202136371533749196100986661703498461569315372422416502914369928624777195188489134298495792519162494228485996704815691511801055438453852183349606746114564794364869639489655836348538787611227859173065455599769214960144677446169894832677186656052596494056314777923608938711826502041761448389910952647836828663720608489474492269873150759182537997960547054316915010918516502434155394366141547435342796273692433190314703986161232563585117539267228039996760960741485297664249945125698364545267615379293673528216084085893587103620336037015076028211328074904777620342391789026542774151275187933934816545701436338122077930222681974480932169153068065321020644548674922562239153321011021489929141395228817893020396490617695730894121906107551383910202748086118705944833181939488035246346529653410713931397474875872050728985270551498930211114122943981206085616506440168736078107642707032547896347434261994691728806594293191185711090995543928446441095432424652135659991721973757909597381621172800497650527009525527354279986630041623704368276422042422549755470478995366578811017602196474861083138792255599737366281236523141376610149199927604164255778245377490136116582134076991243121118136034416775546056002581462383788098160876133459807265882756807435251346087872643908960941773312436523973236281583088865037505915431052119494032428944861994684212954495138863150454541148433036721022701175774741530210781171303040165645992889748324909234539722106639494851031082716725467376257948876175048607370530188986776228074945135177675852431376593551128965655040330127486331864278874147511503956527621388408159075903000185178900216988561287853877530708366734188226061595532993051848542369584241178489414877281072474364925692942958856491862951575125412116541528402469050275570518090509662975392045104950611442713411627306651690220206223887906773223206413482881937440329508616441338100147750567760895866999418088528311357613365221597150002240234686008035414541669814774569593355314406267284216020330203232634312767633981888784289186644923491207025741910542684333863885409154821916525160958258632389633420535672914316851774599591805815620129591134336587854983093442935258022869318668655061491290307430652642088911441969935019778114187213440270874989954480453543383503927752306114542362496635720901072875737225082351904814300335322681443884603277829651840523488101229664891147637800741377642088802010082750191612777277389478419741607697239598939511171134009383307383589616830365233853773536250362100605928152530888921173518308450775383517426252901274355134940259201018885377900132006246664219981399249428910813039091151294011460770042222159833473228774059181331895640231075451542501866357085039526011928592685081029683216314493521868347238064240883337935240188635384252079628610044961113670421172186382609578511730315272230486968427955098573071808827764364576620554633152556378601585631861814643198721944457783222558202704260583857341458799794693785205882573350274009568714344648149345717980616666615766646783457222241235090274880880709307160480371559642850247678396372028189998350416039760579505520985345704616358816018478336893652101188078839159800819670959331169956013594719450296931534258944092100090851764439484672068792027018711171287216586359061138789453090376113955220889865697930538992391314090132192659911497864225258801972718699896570876862535851913605918366405402562158190842428076872976774054605067726610954459036397718880983483609704922167019740896359510852884332420867574196786567831119694076300581485392045473528028315082112506650275229543257209946691364491977257588989889936881163893514411706993449158204698711245148859838004148980708908452657872319755148005833064459496118916199776207606328772617144923997799720829645733526763222058706493961429886099826895751705069248396652266275119821892377343569500745322425196911127247843022113871340964478095220816152694191998596500138511985713558384635657544515919287061218520554677033949603071775122091392596484516098676981964221305066710988960105428189814869616345943721936807701797180064222900994014305565452337399650133050388686564505185972082782045070159174960960591052413880962967395805966134642464391616582567184068115865111642328209289295594470339374364519994149472232248595591152278555329000476145407477268788384855518763468978952779885445704744961861753369395605628217730736109195418022617067261380894316364978944278411945275070846998769913907552788958226971710534977872336334472687527061380880209544874010132867452586678178087752301964424739241220557352963017257551047191824879268147062750916062209791492323024394488527765686888425660043552683019586796743152524385415207903939890649257125289488471810454288470205961808354979281609300717648257367234022933533887904182207587252736670469954799328488787792323980323012161827783381917313643336194097251317325829188646248268688637133689102692834641625640499863349391723551811719606551688478260686963438544862946905214263686337080303630459198334432321245884880325243941602312815464789361740606044241430112531584259371237545377923831668405950212207724724757398580020618763812555037906756088345227088732440211981857144378587151108308437811033770322629840587537430921010213511557162422477586768168512735868720801243675632275413966595668311766050334331521739647079255308421160804480884303483784365314498362938976132156215039933965312229226776731322253320451109983998889766203634346306756363171345866149667628813526890790569288651819493619354829014508693198313264201822491344798135380808478768175762733906128408645778607857647033702866465000775904601012240778600833240523661457614755946193289240788754845903878299472836535978770518085431584656155463823155896280581729033410445324623530956081052640036400449505600838852407575149082381039679838800590551362874051344205271134975059828893434157541134085457098890670791399290480158955376298668877130027603997446738447577933528190369448752615236680504423163984258704806806364751579075938683122345152743925867947336570550137174921211137242622749299219333222314151128279369436281036546391416756761111340922978562422679437796832258883320418845373386292174651648446490077180560150161486484152559739040665720164900936285773520094717934447322893516236514483395563442729256082866703160988969562222325422628304093262331243386749361734928801215507084256471257467988229806164845410071156410198762884354093721706044709181529816945250945373000255737066296789847947515302603571241025571326238537234713166047246529499073897187522856836706041642148978499739793345928972191356491074071805068657748983240286181972173201640599129012383776532413683525319367539170464132046986817431791103926132237647750557040123176574352122725474441667774234316410747500267539228764547854844457170821227384244919236835100490110088068922522514246052890512975301293116960170231976665280102394245679600972407194698708942166285805470789949939845638120344702768411321786860095592862369154189935968859945948653321393477235009951352913505751430222139064726183502763828493205147474364258911387291334082280409998013329192390348918213992091563939254758281798410224165132645319100024085630333311047069097716116220247397683150019834491601724464939288378427555501700592794763554014085757160476456236460909192818424125801557495544982428428195892032532061162695305313018967431407941264482603874300479012349706218436768648156624092043918689452182878549684915655618694150143113682179358701065370438456040759809539870291730281104111159539647796174672048793276768764548563269368680174533500101162123861293941323822858531193977652918839020933361055013530456026351814870302271982457910706721969111351045951768296977296209721209596687260909074491158724128866796178923490266791134787830795515996460165329105128257166993351074674079295328218908287847324744882336770147217303431666624427494069320817261235328715221228885527918748894894151564788135858965374468809435442994945473026266478088154827786477300054413853966980011556474819878297326055835817974780720556488881747087274867044298294257011427393757878250388318362173301426373894464557143177374938914384140282091601578505693403046429675328442603148476007574386338754889829222623793775621332209112721723426488880255891396625206199246280237503383328225458508294450572034500254855929780339984201430713166065148468358861620408869230759209111902367429922619115523263238824443555661222557169130262073502924703756582809983769130964317840493529205405843327670779372329255364333248732280401324610475774895450709756174516442426317157437142822429555569925223654213274503711413876521791676470791003684868732009683294357658471503570114410763531732597899751612813121011595222538565116118013150372211130165459189156349831247142040091380644592816679053940962713509880104037075518619977639994497746696400421103515533292733696315961972145745961287690390326092043839342190940424678741019721171491952052315215860375967826250887836537854152355449177552401287270326827152344735680924683939207022790819652646091999839324052825970752485138902820606367808425377216252509703747846274029444976598943956666240615671515912764529795080761734599916853937264524490689453720523579318914922128374873845963346403973889017747785268396142726152495791032869718250889483723292636246554425666848941947028418247493612296091056908118780743227057994635659635979330894883882684450828426759596145040523748068078866197836544118509464416427582562407495635549650550226649490123193561858700040432645592268387852045132035235951507375636784757954261617952163077303968164029341224528452573637587491467916886644572355561817310608045431014209393748255076111269553899644532642115067153222006896105919249546208826042626984671302630552006285333840674740424882690762008142825543217934066382564292838738261889516346118358059061805857506716058496714351630891911655626132908019079949632159879142552063488347634254801368536349543976745617354361340235261948120587852144340296509538016015598484514982674056179144718116207753996080920559924445546292159890549060630785417691356939099881070613006732548152767633528299867044398897855199309524507096052410653183087544866616965454645655096649134554348663303511225703696134506976398009348916663540965463334460121199351527786093840994624711958715597547144165330366554457147424366809602321800442978061297984080275149133134461974078074978524420330095422443616904720634581089859563891347206051810793963103828836968476263201978161231953188512231287099074061394348875837684771994993537072480669244349644679300753601743149459138321391056876856316720237427346610336430121319895056703323457339056601181706405825995636220276021432021441797340565902026704140555791337052655598085573838559845247541181703404487570357203457450664692072359190391384720684240298042360616016485288549413139048146296587422442412043665301152508122005579355737161614703018440408174883553688294512064348219485552574242334585569703463944807683771881296242447716694680946184492455137898167666498649921013881908429882022871404478592071168432638464526245445807912419167604339196308265590132581398843610179586519852816369125508761125863717702891784990338014781531187508100583932036431721820289835034827569001176279059937323531218294495623084354861577530708925789213360917654009852712407574806000682871002954829745744832842741666311465283011813976736356494161019857525066085153937176780450327787024065250187488447532289070068279101868027301906552201148152925564788093769077828801272052460546913358110837803299459925288693451530607943831024942770694634627592285369191209021666505266597678443694190205256883748962986603356810464533525721888821305264909877770006193843568419281663704476197117021848406122861397959899535092841185443121350991424505383691479768587388775228149702795384071751093015539999171259759089719412041273162058692462176581782446961097781403545665394800778692223286877037221006873153384866522437948948981604190306298525730395324585547793213140979659046977842478432038631132863506761287071283423130964910540696850469290736179369114467203832050368109551203697278536509898595942263832471213625624408363567974613595536601370157862317418362436901686945001248911483347411495420437286105979673770833444424555022239461425745834742099611385505951374339915385302106204376595220824969047865891379933395890674973540379705331994857173394741788714283476563304830580744370678753301434092807794136228812335740456753849808280508624608102480983977543497130434682153177581401522240803754184419764518261076879676803276613068492700620647795284452808545140216204310651119167796394102756779110827654391404909467174938318808759263059601597384595770641287005178269370732518573775130877013093466069472507889160631202471106649216414255872426167715014812688302283289563027765297893372668382985952022901159430645673142766584376164163205535887565722857417094334959887439840941491946472852546908441277592364107260556624179086096926671131203419620031366039040359988121379271909607472460859118406326656450808541748948331023765068995343265790575425028308534208265596857441049300113864189115293990782528902512680254780099978992542928112951594462822078777845578231304712262940124656160776748906399142175657614068369706816567116536544241363373979118168564821285970671756852399878112187514005296023491353308944809309524280000338994303595310244045937138064185213577344011339958140719736105516085007207607928300661786960230740254647116347948151338208502420359811184818466465985541637111620347603277865068270727983233761279025521454101373873751661185146613220892706142733880031977381767079264779231281735924485335243936246877147230146804069853258754880246067818771645530307574776318524042158356444315834800729814319201610648982771956879869652430680447895724873753685417880597116181950945174878337172455500726830706126951751059737238960254754774963194740754229078535370231200665501446118378010683157448539713748430809018343618768718033876717523184857263236220313791588182123556190782054201856276412718305167026581753830471330216030839665135602376916914502768362174059412895831837188174142637138164755728389752410746066050273863124522777675645105164650857584716893675716228393651883549928377195035723696682957282265983521962697204849310071833037053453514516997581184436465471660933282675973507639415908314067626629990806950080971507578691961735263342762502189260420569929515057183984544868391826800460291010889144698495964270034324542356139598872831543883894287352585390417279839901133291374285880079375263915373132505810384019469147472987561427453416683502573911913272893545366816262120267512701900203564668391497066181523509648333291894391522842175467523563537584593950752086386718646073111449344081949768946111969409917919242495823375423282089617899136639354759541960144554197669854381315495235569436559423848032848066659235781957893916094598398512292199734938213601983595640856948812301536620841158340234365151143219391710682658545408408072471324038834972435042456200342986584458857176201447359477387252894361552042750630068293140114128813759762447502644817150921608538449042018596904372741436498247100545324362942966835603267801522045594864308669583813014705410898413837789562421892380443061471780850384679162420775396877663230843448173155524178954485431020844541403708092285481186477126581471368733150225422992875333331201648669293337864922829395293399493836387699081390258727590821698678863403188271781979309470960819647212405343638691213083733033151072694786922799927766219885291780446264436231749715995847661971238258912501032173838857922315370700863427667692531870309200263381271120294698337567754846203044714886922322848444760634402738925699260710726704403602584819828952436322472245718537526032623282685740483492673980210385950150582831718212754068674621315652142603105264235785818733248334988895836600030806489039446919965722477192939468545007208612510460181394068694207161952089154576164864818992196062610979299082497956914356424947836094333276979265340109995986358468660507182052132199181914703441358631657693259669376839940609304308766711236527004714867339389704431618484523940097379142667268778993298083320796487725857276368062613286241281139473569166104123160467356459321278988572343088956266096747084732813468415897876918263830931041843513095810543700014949086682204143638072782653595485559762811077245909372319868745609843727139036325062702326080973648761499636461782930624174231840451211585034363212699503183519482378962632058174440668185083250164225871127051330455074069474787979263166900362750151031324406725554027604506782760556127185135009074342844137224538712904808569176328237953023188613134569551508126630861766511924324345297167781649549858305125713997883158366050568064757496498090280315493182814718234072459916670647691106062014505486668488486819221888498114417409604598066982777165226337476181903007115722621674454743686912307651451075561017123615010997244320431785108371356560028938606115511417201942983441914389363009851345461180327522279591645150367750867622496809747791732616256387668353594753204856362995311320278911481160637934332849063705976958517375182896507057129905504114667114094159822226495679267314391966010252771422973113772422884824421670125687487150189251756021676596193115522252694247544200473669537399470551865193264568507338811503485544296429554399397081478119498005533829470329331200799101591950226766819588333516667185932197480638359182724374136755560013920262652053511337559943225032526762641667098786617763287589346251445164023651205963680488403436011051785325326801590022082347791427345824658821953785303863670008656887292776876894046091152520130921608376396168652214567853279944424749606116273041129740171498949877244486144669721511106714254308075991303402167049559747854231223007903990831606916036848203002053453878421289493383499690313863645807941836234265600705309700831207718995884382936513066906484243243915959668301371655063215662266747695125280147139794646518902653979635872575851759983708418519323939041266499596953954262717979483983039196180293699354650640672722357514915719736133115425714381960541695626502282847783916585319667990946345955495301333940335023598457695809674489925773522736641008048022576988714140994316369934640429001085994507132602097003495207938573007385487912569288816455641418078339332496714206074969858908941914356453303510017175042317763129066372060977211321627058360859403796421126631511858137770181022581431032537830842974254831238521530518797798888834776347804364220092921133057864251597111116255389331603719799373756298027213446100846285049545597236087934504021741030086458014830851709531971394614711403146587560299943962459584166902946222724921344065296394598377755862457214743652138184463184995366647301621848014973500164544268219103943223111797080283875664339210032217337255993678506875583490065177666650560623902389607840230897545536848509281761507420640661480370829054946670480291849232109699183073629503620332754236212712774861545268010668700681845708033139370527023858617413582656328926135958209188576844624375035203109626003637409810625621802052732979022572942276209298879368019096479306529266322840003493050700369967793020151420754632731414861285325444967191038158879698062891181364194279569839484630959651255214981153454553560051848515732609627598918102359188761054680713002758383043613028459434784784911890862214323385611471975995685258442283980190240632919286236838551043608176086298040968139877553024457948977586931610736819802141787683251766807962002444135452024749358615507415353246277593933891115280341255315879562719177476847226232354450108436281043739773852325640408227876167763793290668699626230241442698467954192171665615768805729715041942894583497402474865221677262717108152672368761696685824799946052633289650020019823084086308296010593102525547338280413670796838800528630556345653965369831465158587075573575518388692301868809616466452918426188488567239582682859881773038575224241236608600134800045040853037974399820787576546929031735661773723709533559164943782937943377871099030516998272993262449336693257969267997413618181980217181653498741499439343468114438395387318887869397263160168947622680002260660836098031533154595061204179294491438018825287933043766046178132485155435585047364670605156856367204409077950793021720394739976499343378676768554867526266529945190501425069710435464547976747175206743707353766861101404785589629701389471288892329529675901073258986667638687593548611427994815209110093964024150664597456225032042052571751560226753365053265332112944983052559272403898054559220792165055015065898381916541136481449025178145125922530551729976073437700799409784923905506018095495330564545979488866805672923885993956764439762879370687350485950231483368624253546053892105644605959049768722016185131235556562650432421633163001573998644009865378442186868201073137771215415742813444286475445555965886554686217795719213083551136851041020297645196392508614734524693204634157056912433822427711195670822491415533733372055188311433344130681883593088424510444760570595429199513520556001448597602408925724163052237762550520954767070045826239968245854605459297441299356525279340129466399875412986463626625909488539887419412604058607898181566939930642256861288727018607101517950996146317786461189037088079131476486151916794881262583853621978720312217082378031253001651226074221543589043984172163755724151067979306832906122574023874738544338749290885778558464662866679246471483962668290080119687542952068698872081888604968859550137518346178327820225571954703679914344132932681868376403060267504933022480458046473572495893597393939004286201017674619780567083502560037227627428455970299324318031815546109348703747932422689286265684753309129503016918216705865537486926605250351496617389477661895308624244869697467236524651626533929400662381378133438898714483764017450243655572772746355580070152265984519125064690557822676116473702827284995021259128827753969915055383096588084316714140442233038134261442562368068037670320525597011216777479180848711954154860042378944569353571502432897672099082164730721895725597788747163896805937730513045335578224848390326243141239872512375937675632480123119771500790220615236040534586780408589877819768725439571597960295238746999110147755840818377914716671934939865980796860830043340853446941105442185181073273744560788142352513896974656685785636892162439418489800643133937234686741486638546867161924180899369960000037222664153494824454556786714375801074791330819549094685088138632707458497185711446840233338040971723210714852211323621464877964897414785951369173663302544154950736502631651059766293711336719476289677351719420439808589716063009498626699317020032289987088972809302352061228509051126605595854774247461987078587800611324958399619904203379627008607714156284751554647184192805891478105015919841774530767078403501773586977746014915732846147006425415118793651892455441160406836427640533019338892345866260947764214492213572138263094764858534593920337828945261816428066770523130563450813271177484256839975331850190681861693383260428482897207158795356496043320392368809558939328025838039559708160540299060042534802002490760170788312248593756704496502822529902742919950232279930541253869828883545917610070976218162040803302535159987020129862759240700067950843024241233340550177336604689363939251362761816272589815973774281246055624680582645004338731521075727162599475665576158407900449049545625831288007461816390812183306527996921053097745531472020762121689504848229312312612815649656778095515739199086092510786827517541056616091725912042703271044975157199813388126709060955238054631027058400089861795703118968842733736044691173311741390266955328894319117207462651325585220354339468296758181652024679795825735685296050831144998257131703999571300733333635473214567696189944839047938105605176307686570547782192208517645811255430701935604501038547650469698014404127761244439705866469989829520249797303204841464857484936491856876986342581374643285135247361407867721716825115030739822457074580376804231889973788342702831807629939992238962763907252570033945022993000322850180897905714371607279384124909518090665784182297209236503120939496750231578439445997198741070635364805686317926583153591965429424030746972455552966977100562899657801614529885156243416062078391931194849805782942044778714643403359007834466534758761484377698890397533143500319050525921038862091766746292898639191911360531702885243090518069923181626172761785993384955044693440132276446351366681558060240475403999912848925844482871395586385278571553381903462385785089960713757777271197721396242054280588037462162229259777449649461173939121954990115447514995687866617476059282984195708195366350605077118352530688021742961642327140168251396714557148414544307387820325425754002924588640571492810512630511151396158527056431501240310714115349184776885868391501154229993463923311382595937754724828959767907056704746673214285107941702774405517089634515097380975945895240838670777821917230661657282808286118573613644249808036958669886150554531848861786259839287644344595850898563630617018825946303606493038352477889191517734625637753309360791718210556052986735357588991170887217674334372304102616232276256920760129318666615663864488511292229657630025715683715453206093678597100376053329693406241171344716418980631228102379807848441701353392203580772556719155865792456488993340165832612270659349070961824658911883538391428222762748569798958318799672867345300574129904253463378889391972898905315870892245089166058497089409734856531757266867218765685276480856994029391834740258325687845956661619174800444704015331068895711612704132097642338614630792063141736526315415669841141111925738934591638737336941578149968963015786426795708917072692919163008940340112855705243436345618578638217673185496172059410699927967636838032204343866047896291640360955406291540465582225972373266857875102455882714702238017000281612580263172475464025865170964062429804621155582227252315849346993157508615574839818437026882756242279083660940233360715432891131952357172393396919500811897407747649071038543938345086864181058477168524195208329133215519773081385108742257083167348726499013332541272037795298941112867239683218778435332393183154359744180038712773140578094396527752322058681923026223015984548251099481848790347317727017961989619285094671429995941477665658749238051746694546650160532721106849572250408847432824066782943917410695808326070848113560660950114360448928171887195119183167088502703500600795180293027373358697235127088783098526182690937648389166233424313427294615744539631637420526627741136468282723838688278373412551828304737480696900185567424178512799476453557226477114575291367052117495776312454742921153134920625124776982106192844926792538206998512868400967585553838637176155352857122106428276859185266509243954713875021960812916004132028682031738734635033527640236689057105458883932215143582950550551457370022392416216824160912171637598235244147934857997827954849767649885303413679280801995161561532278493961352931477473269952608589870237988507656926725844903199029741879542197368978393489281484472726595663571915897434845298252265445625779217556193968997864027761317216269025276312706956362646103525990838533889713212207792556020105084304980711699018784714871344072190435379951680469891556857877159976947395194793673511009552837117396339751006555679254844089237596609547945538257029085848097933886827849184177259711434491258694967542697497623788372942446578353809484035262797491934077863071384324569562376974452026104046957768995308888723680356660532277582709082119567623766233131899934253968488372795511053429168253164230023950612780925612940213101889608720861971786703280264374515015148628101793049827952274300371907865867571718337242780209590925447424287251726461452477323443825551663758622698225245967492002902949473637935587091901890723321201322135246383852237390409942436060015401006203493298713663005441925745475972091809461311772216122481222154610063829551526105826407120786003582860038044210408661980608269572688405792264201166571557551969765320864968724773894042766297181387611723218898957646519821029955941966876399514523504145093539955055148882120962401437961697619393912305822449089592912266326247694503673168384457337264552721978524166504548243293671760481987169205398309155939617488113134728821300708607118484065640008565772325034337375819848998792430555927707258562610406812523722787274967223178439292373700098765338002362943621757661062402672442438619421665420453744664744543968773770357304126599556247025436282912503335938652957783160016483133877708828140048398693466819512465988463341798250212423642369165025156098874476981626426056560926191413834673244653208528441854058694380506252308580582626687277586429031559405290361569466282773095356898235229926761094169612008793778290926851769798318641859387159832417193774597961269899034274751674834582097338325072714748781902660294970675975396006469215567969156132598746993201361300192275776577043919244887079588883479765028438727603399504217955854826154504470389710370612680481293443379611762383876175518777691925449297235166959789991367422177443005471309209464305694189692943792264592793947334065486338843874845942299176401869655420539005904059399073075715458929023288334261972743104832081325279725558170601941203405248843443284510917629157313446936022695130904495049154880931602592793746614290422596374774463016241272056253517870499168732599025573995454601233238184410786761355246562452616611517397360975832531343864834758155273391061363239446285613935202753698655813564253356892913645047280058980133154146681839309486791657609094933850120552510895294537172975680616275034410582169647300111109865539934513157912106467743601773160444447351784191524088716798098493525485396462937428011381979797189383855938977470490944202304770623944674122597603488201662691183693039885055105100900675688951237556424281825859039901878971811111812527534587731275048289692570177082578468083456948154495849308306264098446088425996255085818798449785466223805627489273208675717125027250949277627730608881547728243004648218666251901580338857984122858954435766418433476668905069452594397171240162360471933911501331235523241751227190540999748362056882299944549233763867400889537355220464264159180010553760292719286407638822121425583252551908979905751538156090482089284228140054192725419708512002965471407739414643770322931401145996370399333408353160123708086019680275060985682578327667141904100796037070502044046358492042357267690310730549505447431409424203480402279962775398456271967745496845042688069514194232488154976302967839019666057548250595553182478609117761918282171674043172468540086755055201922779116989806080961627424249370795939012655818681141415971632118003692683208000646810008794394843855880845116983911917810536021322407809068038738879128466800634394668268305821288910197495095633001859445144832025147851848519308893611743981056307228463732949730355158146306735228401301099042588551611825330583114660310784464797995198472592307388331612450118912323104836376498354877961646572796797367529621083545131368079008368488675248884801394673197384816241098468498995903136506593715289988979847909550347388083861393149154603014532651832662599765597240695376618138863063742841788257372117608572426552652086093972018638420060328452629686047731094066640185304638788179155885126460592984693306362548056625025051881063437385459874229860863447400105984608476113286652226524447809294620087287267893608601207598873024048816688018507746371236876615853706985309965310083265327109497732387781339938132336800355171192667794828721097054775076700601407777654032095097293455302930504763152715597080998841465393071412816191801776789718564075125015186329554377826893678467974368765030791022532686997939566714783938762289460008697042827410455428955356593454576621287602028954919234689928857791005316250844756049524659697787896092742072521327954105753815502529766817119570573755458753682100240649316685687914994355787253298309236551045962266667534192409339293687086519399657879410458775996369184537455241424795224423781738245847899538967586654208001865995654292359379807509364149821167751660176259322902333810386717773243485438881782363599062748403788741666501549825620799726633548470415129302700707441051497087848396909812600958250624949342119883793747497722317998844803986368162142156936929179604456437121890663791272251456929008422370277675250669881155775636319244740410821202881748876418994322196068305145722582659843980911085593266788581955119784210354639694525886244106888884801621967192384687405410309425230395762033387878461904039132011264398757063849741331295212380504964484232494273073453395777147523012846829942290158801145379110262606839264085066760949637388859591729431062868248188520780840063884020932488672729315723264491280117447101181960139814156520950440554543741692409229739219038151894638036716730132116113318268034927108064590229564785590899869187828587241218953465628532420427338721812041017661315082466519148265830183740484273263546701425129256515041840793875586098774788580831009412101432020672793436345757980761764967869699163103490221917103269978569407656777614121655456781962610875969716542680528453622910459898686874985217952900561161324863626013688252245181458265214453126185341215877820053928098340086884853970461602074422047351213297588432646635163117610600113360503676005291141030411927110788049815825921360337347312064003509389271249029004290157329138290330943376590243978744469319570972473083319119841722718572931311152511737632632379040126218047570413184336779756001264426076744406616289259657664307643867651902719760058479209896128000311760750842040836727156551253714932103460557791666721556448425182845343017219447786929647784942081005642459028871267145842365741305382991556658311286532347927353410887828048457568918744049610738913395259458260098988727810738393626138541723963038783233278706763140471227458316245906506039760172256908907645092005213791829106841291293609543347846917614041433658378350246204423630473223196413324744062163314658426054381543288102156616068148838920659588789212032816396999203450927462604444339221593403180606584228711355322945920325338989622725990456121068894674208783767238317274332283723172719093209129177635268041852820961261976853158744868259836288305666667488990423151396761626364438273888982565352393547612505361891415366036160714790416907887441505347735424699051256677243095475575972851439161912072612114849420331137933067040685593646313079381574216477992640616538039980335693551108878452661056773661040001603586678059687706034817617689664798297005874757211007000031878601560982929415125917552696400610561336471657342209756528202240750928923396581633665199882146966690675875094557933997033653710240063967249926809525326859517437161024532638675122305810940147062186294069138724897032671239024143117471692359547243695531408497787590649194358380615415289923201311800429817355195605587008296877012423209106850462852502718417544882881167349074138277625033533273862391199521590758032330465895864567339056114100893393176554253797111222722452487933349884034397339237530080854474276277749110904884508604859776858610104244353892306285578512541817101082539670103156611172136376020832862700971395233157180779952227356103176033854419838533710712227179171138319009539004407547289712358849625534447200492903373514174345206189816738257268161138222289966019524929721742294930209564280722873563354305947444365193782218889852815339104046798887290956323813523691951418449844765236699371715641191650932820450193964798476524107617670837542173810501906994601916958579424175345235801477335095476590294802561475295227160271842443102433089853894070052469180456218206382529438565069231662857407399332403639638290490102606749857678156953957468108821881048636457244582516194965730323727076660566999220550292264317147139160769205887975061576711666062213466490041131210689054659051861605335295198120203950783242810485149577810982800912760878823919182946550186553673002261629921840217977483710744746862850980857069218327300676557843642908829651512014416401241650628457836875786130258779630500587674294213265097916665792057080926105597477363865206902778528966529940785788861894941405451218962185066098865120377017170689534671419174674861559388347299673811433927831883924149823975247626361717825803894524759112913926127063873622174319718595927383438693186630551966858940234146144633463118975360427648404069212432526866552255976466019769604892000844303242221123820880109497415165573022118676301742449401779211461617193296722158496354567642407361421903310806913330769730395479236497962123899904710052005471067065261886592568987058912342884296202885515963190809155176325059005074622355854793423473394810789706497721536729732742132323492798693560309717941286977465564785389128335123515360973048445602849901954827824394666024179783270955469573720436310742252515902331768601692672239304966030806498474375031036559581861091713675763912539090200293136657870539762179953341011718943580101354189150412108180774377710058348259839546187668984645208171157743332989395207153120140099227583181040552156660284961353279400871498984143588784222215312143432742146489995409387356698007762545187803415909447613547043242599645875201645689772217277935148762020164687627944426790029870101823051555940977477854898756146707474855240807275193490780982911434583153774386330374952941050851582816711110472140838651559698191318976904417597798949421729337897466047836495658384304740129789800492914313520896042344510373357212172363470559022709820489698373873391460987248979577628644196438145455782575093997151905520306570198916397011187239924470993566918777565647645896358174408976051271157075714814335267518716259272028244866360691083212679740258520360857864048457612176393352633538440887893620988488168931611528070470334345410452107160750148020078938996525266221419816681671197743836037464231283741825619222787128251884122432817911664830959634667462571959291581167103334061634551547442797128043983366688573849298864047709413386347138127182563714128097852925557922845492420579594962383402266909929076709651596235676607802181215537898312259326043368105527538694471414873101658584850177468778023937984595496008544305818299725245481347735388253625660506711856323200484868512450096676321576945890013890887012097225240205541001947032360798079883717941113523791752390515214865173075500929333676570667345841152468324030619399429221619760051066613955676940295600573603369287518822510258360302614823926460260945424827571602735136630931772229740738211871422817922771624734593381716634725831506755299437670639802485080810550128396087547910875955521643206125664471984873930265567997882931055777861972643555959017230556231879057078417196285108468600590144306166928431234295202510471427847070202704698051072274536597557387875242610876378283157777152339553917956086508250816519095841665555899218883685166229675946395328812235184510174324673972593756778689177183681691794729234965411881335379378095470584221560664393935538501220084459182270436012290084892777850615675166872027765984695750076040017930796002105849442873663055793898407012275920280958743093836480222086854990778563903319097210401283352353787235060295906326329713516774335102248457880774388913246904852689435746079155607227212399223683970960652724291244168212389315861349295199426008141144633427029932081948716008151459798781939667178430012641688678215320342496818974408699951196624524236192027828789869107321482697709018605967739058500882765333167041761134671137732625488074064472189989865919064521323553099605087336727392192077706385160739072965572817848533112848940936831561089375531012551460314222485062978226477995430965709121123552724756739902399079031303054505229432471909184035624299697046829249598703362711242641500165223311011134359924467899530421525786062860445235505465504140962864441729199467838433500024337469751792954866068954910351574402988129096530245941522152223784253895009455156791005764170445463534425844011372778177238802366504997967336771106656226461231966429857044867358058910199299485735669122869089846746940434692001124726390154938865513238639887998019402175488531497006038312330886016103729194008028160072172747767789685598185371692360251448669538055626156907019996614081075355005521092739338071942430357008815778385184383785333050153639412629566148628852208480228674139738257565319272024546384959893980393501210438668238103250901650842531005275319323317788696979616276934590214089045756610759460845061746182161956181410972614865346100213877197945197075395527597048101806623244020717518974007219057802433191790018377603821343183771002604888505103482748122534002066113339501054641128069806769468548476192223532375025411195993209008839662407594047465818338142260524700964729302100625913208567728943729024860197931787813593144095890431654460020030460687563851883508309877872589375438939286304934485051205963821879043179132409969410082265283709259739383993615995967541104907867982855827296119560212777906466165813549103409257788937545577476007157947961984446014270606019155495525380534433966964641090041608365681133143298563821309528727187029368561538773361692374741976935546336193548332036382662669682344875558495868429056765154668951569298212405311358402713598282584903884453387829356128772864867690839136832112950944733642744242993436723572841501327974396627547446905008816262614566662763473104112576424173543898914872872081141822927235862478388066612767314319497633536426251209567969615206353287464599559042171539736008652169264811092904037190169694413194967586875734928900733265261453637539974581711918281542876525202406017304392441555247515270775263239211323232235073624843563576165556795734430976529612794197240759371720499368891703519901924517117719351259218529757353943298354823042650678541843321419694095385923121777113318296461503636800525480808013894292211862158500500678792654464979307666835411946907594595640303967818678299401581024883827054488199456784144917306097276441174659425867819541590925890073362555688785185437753731643184729492269432095080461291059877295085811070991899876790491836856392959990400382801715928854846506114327010258568865609214723682513047900971880261994994542966790570022747041558119901632148292016570418279624575723565221671632361998927867462692392709744336841072637973087170930101619121616256578644999575363670346915277097126329285164991639889930731697453546685301869047751896827457243241373098909997716583273481141419947592960668468962938678828565597490691725303632269365823195998885035842571914399418576718069028061436641834404723972940361297992623472936874831920125926227109236766983221225770749420687942346321736754983808672922081369808348849437860631966503900076268828905990316921423516114947891536729337009161207491801425602846844768557840208841726921977748138750039874831667546799594487718587155320335382249543605171734043649768641800352284174980958922439107545558738596728879104521524757143155964177847144722169204321348955367828468301393111716960113774777828580930351216243582854099294414712877658755108719254329725250502316145379065966042491094609050640718412511480310255167201732995173481246010358618882670942733091883145023720299960887927067295494861061691198023466348629416631307092831979517594251859020504156555048956237315526416252038550704483220434559892065073881651835590407353448042751891331214493970048829828785650542194199870096176138926768675616122278289833880945647422501743326628962823282423264634951200965946744438167723739145391602490337458011104385019280748767535978994001104287606741213272297307673529203509876977614826417167122789925199553227897378521868155674488023342145616082176682941549827684734408317719943688078815921236963982724550658228097585844234109107459776838275440944688224708992984132374395973490298207271363160421642287021178621679995229128970821892599957833715555014469810649912321914304993376820087946064292011298482037177278950987055149480394197109340754161632477733411736818913061961693445269130663334977916399417178128561331562596114343769202670933469724286836239551310166644394761131577306096325971116893621683190509419077292421050175535872147783246637839856557501133505592844394137355919754219973016609295393140493873813080496298981603590597083019346473461585046798284608899462543041512484487521365020107695231288326046267348125014808236130087331541100726030627614772647806456506028491816425192061208626490827617726251562124795144810400154180906974508543900110528639350092524539163564229770987323511653885921871098375995483293386844246865370368545172889088978174795366059818304306543444770897629575886693012021936555836734333106780145883739853641219382912856318553740076453176083824120887118841254506381166515167412797769851485591902453372191192741085328103732891827458055107785687238637634761271543275470965162865479485620775566713124466289278439115076625418477924488518367290953407088673703612473641920294389347822658735573707189961732812793494549264570807930322717253828067828835876259577583078448683592766510461095799715038037498947427371612914541551810119463139902103319851435709791208979474822842528851140039245246869080928383646784585400225022588041581614134934515032895888580231423062713927125823127042698037968742740832237091502695436492844360137033330572730369251220173127232232344379596549172263807489262965241134550281630276271639888132005468662748871518324483077119352911909617391877004820036348015345660953604003971861641724977705103471903543195877797770005205110910517534012126393580991808761100309250552776236578779470789496998333503164648811370000420594833039709900437217123972640825252875685641988719010463580032319528239609837820092559398751081144411131512376436143935773033443731672422632680682887210485531552835668035926850393547424499720441569386410852892218504345300542958141513046857058506011134638532748562821547113063876103035829711846933467141667010657347850841512682242485532670871046441672832718288794505038940808449990134975772764877817264198330340860546964125507285657739303699109444157967396160898932214793410870668292652356346874387040547719876965671973365556204849377264847335732417579675936823997910829402919988322408030234504745237206923755527184495156000836678800835742100121082272559721244881463827798794701589344876270176913966653189077004938050572472668134058936456979895677165960227303375942146478519123409388771968889696110235500037095982773064868494480531987422003870138073554444239728781487394903173207008907994402893505341196373648075691317569301887939946721218461441789675428962866486093969924679103567652491456019721427146528719830997913628540817790216853098474191647816226738353380227020807077316054859346855214238544364429015952313750325797898151637915346772264455285080046138405775600565572327375447851495020850698122479397657322210308578967791698816988331549488980967614529801519210433460740635332062444047112078124170669328205808892811092572534552605305319404151764691108673610310203467070045911007074192478945691249437831187344147992069276112409036031450712765758529015133917560717784813530684672370305950293422588634898916587317137307803431749338686127209428932941332486893401959473249901342340097530430239932083004597854021375453714850099935689825069110962362417385717553404741504047262378169578874062636778484796435752988478189717239033132649243003193947899957827441489532898098664075034095427910077890086221129995650728293696276219542782137343456726433417333269553436372357677428595290307426969193486136306888846458699109131833719374651598973109828832608212703054621673049606239987186792033341545083909029568370769808752712880354599827768803133857924732808932649177151683009769958443452116686523290905358607477691706713160355259955999269897416593999380169299040973829654312369640894498021799960507089828542205771947276603318868150735587288186929392773286688196356363303486104405488067918848018730625893368765357764203867256813186696740713623212210387188024373511118513242811044591722987899634663731354217232120211528529784136359001562766585465998917333903813289647997406126753919651766825898998888234142478707981093979559701028388812745661180477314906647742947232167257670255128056445947530592754605786721026248866228536265362699920140017096428320619116254542469089564969537417023432644284839340654650449383200194137681400516512675780780479558169106192241813582233025637034605084936457777584193350016462091621026146336889926297763605707549180511773053940996929484313399040326572010947040277417517453165746952637505394116021324584428250226971258864619934524612482153152206955807790319975326286365178708485111743302389803453337540082859454183974558671181160032984002493081552876554802434168347128870598662034390091458995171849529231817010269754007012129445232250422796694680100271607582493030160164506398092888532658845371994900081520071294992707341798037047313957941506269497996310192940634707415523469833746086894981158909874326553660888713662869613679379886798795901686668494952605429903714045547347803086276800657917185881824127280154732678965480870335320741078688730701520591280169685969178780704720098138529076148607053800644812422450307858493455453496148542477175204648489342441999193129804865724107924581742698849678634274537473395237929662483835090778964888447321815532046251123997533676495833631037310914737636321085927615341599086481481470874630450382258383097191232565733793888258010679050189227522221844473264047121254402209189120274160391084282704964429427998064746053869563043327798409755699101051238995385704473807784851377133240648232330616609379915779669037049710786906343624060469672180909481809503428223274351105949196888332945470920667981711760736328468971283282011541550271297586177469133189565581091431536544159565947147815696529279896988662976677517872111196271292907849965150006598168066201744887856830137644076523283250077225301012749492600311861992099792104499935592964265245809901882089865455740561992144305331857658392995415047832244927347575019556919599631926925469123835795716157258265184764536589650637236438822337353208200392237525470648333301111959846585781583606273082781225800294868386344586224619489763973581887426291644110863853080638935870733998373293878451726975935465299153624426246344386438695393408526089594906251551797604387459433834040275323531816855972493325077143127118726358821492360145483223509630635275383515697191571026598938985969405174879536716650505794464827957423603171208734176931043898583334814736911058389831799942757045848877799790962178530580423278324524806173470358486790973443548271576762699351827600240284815034293972388097947703273876026160949353340467082326825440549951860474079194567322659858648796473729926389715494146542097970099130532093567718607178599134220482608422134899219523951819647201857676006890162302871504880648393569095706384402060290817381783926652188555432090883936575933086223130281816346437616160444437523892198983124535959231915533685187046731339401058904356489431521436782960318061317302443814626945874344404411767582790096455170733665247487471820969022930770985837800044007443720457551962443276863853776270560816847157866995325492423814640087999095445361327190632001603530119848741789422923925491339559259987458342243500787358411998904739683408771862252433068528986349346494719006648847357995840066155225127086515790925868673239982578348130658444552309247651914021548060985304315847610507796041560851398583990446430101971135429761230347384484407397841487256226883688430034945597898037155938531802590833091587371068541764747223824941677489434295426556004121831090844178920014455776174822916141767114013902635145083822474962185914993111308368134607277436797090794076743485905181117278555292840734697120225250790823268510824982900976397217627244069769783416800527049865507859264360938827247035058238522143803145238601241861851397181256338794578700207334727132862615856380331114535097154823709869763555902692220716796754033382013999230886970563203053731939862781008098450915894992258913899463049580902209866641822653296606635106468595455043939841446870310105381345245368982440631260117846496097748661765796977924266492217298600095967943726829165060897422091329536431894466176842468164844657166841245494088791326167135608481285050863994497376005990160619425147421658275177749548145208703288696396110597818900660254717031686641521588451868165332245349384544322544413861306922077136427167982266744119381192054954280831347125974941696067057004247128361261499190841125657207704613927359067268288354386418889454723573715021424730610596086561591380642766159285002095008546406992115044192675799024293212885305959454745849244660366933734670606545461203099588361425899746642162662469804959317848928832812360173353585995516249302746757453180236781001555084295786334871501541474342544204018245867014125885976216039291999617795692947837874848440923941325113648835943348479252761067006228733024302322192237422423964360484755776834227299099915565377909221810908367515573934530705629818824908113451129757519830497251460627946370059862470745558954555371427476927665999983347179584445572081676282820869629345110415973889550629993993703512014146017832129883744742850797556027134195464138750170311448112940136248125469293410445370012584997636365088467079685945428234661363924852336550834144229667610250531861173811336210379752202006233283650866193631797804836919604893237562933307544275055239478738371142278170901172754573245551508742261273632539692363760087701006311151616443946119492580071512744183681253652445759179507435558567538354501281030464140408755459323442478423992578346367381770438930142640202220929778788027825247695073971223081691968915223836947427281316947922144298838573867392470852961530659885229637075130951539239493071704685702888695855071452597203397427747923468930160122813302819947665754737858884189775660670295574852589121307508379191071460149221567983263793917270606038614860839427117891350769220182838204841664530098331001957521987375027666053171156313170515177180466648560272319697646856302032853677340537592374271438982166090799671717460272677088398128504671511094070263335833740833256907675206233110746948669009613745467388229663849185343082216929953873079218930859522211829240371876477909859030882180933741542630127534225360636711043493279233636435048370915182993156106045076326129328452906681654994478052566317447251227633993323561713618863928350913115212774324381368410124558018330915723831214393816252678798821640440766812152812245902778577382880607467205637402161049310493010765019455209085456460506887169405539863421748730827299627725157616975914847045646385735614583501359791790280853263221670234431097854766998974506955740594134141328614966154089944700170869797376592661691028167448808660597438145122337417846689887830691816231239455998715668281416535355407566259193035942686824778225822859060165093333790986776145147492118031682261478264385923845250452922823853515705005118865773844968164561077370616904069070417465065725986560360399958086696602190942760627850881880098770894053410917048418426265473970665018977073525326524168580109348867798293237824439415593047838470755224214795656182250975612591153802910675691868431328991683737353890805841487398343223474371496893454972390461299445492134013742368340487483833982092283136206963138090737357123740156343819311958643228062616039180789501511739586157675135977210649151754003159380931288912471730304663186288732814459129244913994600300994958344409806577712907576290858669417022395062800094612031092750328542136224457609902124204503970746543929333351687020495319733643814372902768837725171239944055132582557076605921201318276444870826932884056606800782423063712871008966510524036556980525314038203934014725741031776023170978001721320251353427054871747393862466564835338949086417724709548645508098521890544096803305592502528654127332553623030142543616908669427738074138280587402459971490770544164232959224432590909648954905614489265340881543608020949846243101673367719110651839102769929475654250738268371591539356092590147661831752178799631076448554710307789154836341217286813156150661047416374156034031721115423331281535133218197201081664637852314854316109539591010303943683825449456841516804941876692912894470579300605364642514621099335008829198868028797019858393810537221688785995740970779215355226086282639003031972149394508137362271866121051684940488380832037189245053424787330213832973188470548788782880606373307927939262433099753817853575003856014006858870506129426080677254469747458404199982930506118565135392086368177701065805246208091939814154098863385849014964474403008008458399006370381642320348458385935328904285711749557558183016326295320918127244184566305664259692242682262171146793956038940338911133506839966822925253329352646374804641123424612696971569738073081070064321941258812037038333258419643380194143273660554335786913896802636012494328039409011679005094950334414698794306592125698383819755072086194385752036909095874462865339454768827498528113827657933809594723226035706872900109302660988659988977256068475212024031489284165117399409884971018840240826137750379881033201199049974304872028218614393716887846273624073827567346816906029630756002202171267700998458584129668209539422997251725302604640393202416644475931600644246262591790029232603392959555724103425602559329119771914459563956135248319776689171784985657110628706209888068098228095864235137415580232756348733860818607534345368250467265762314200817837166347565034001703275614651319221186942688876012445167224618442153399884327960903027193978691161306672468100169060169005374470747273229034468258281059619090531749382460479602165024300910071820461989796339927871215162288598647284645029931897327454934819695660008754627141505696029755429233958410134614589083361419457319688571388999193257281597521493308984167911866715950361746330771954837450724217588265781972440803046005304035351350989701126296887852391650878585044060538119091980156712257148581580442812629855041361257945534817915853890702257041721862668392660877165892281097834805918945295761306926762901382576273003048448329191315188477229916647266707094866019130204492798973304320699492240982116073547740198254257253932230519896050175860189669940411581586409348243768659892169479796665986725397902703031381606944661544844963196014585682533682010259812241861521623227532666031564724754744972078692351077021775186562272898201737581250400892177572538629515510399215620763377393514548226342318504309096866951102602571045955551009874296495175120090019640341353659039331159544113075108040551267627235029231366756980680091943157275425719871509037491023987318393939848900223326135082796606141252644491363163698097500201129768880439540659019596636836305474553819696596925409414460515317065738417240134071002262195181424592480304896787933903324661087107213580414321516648476419688940587510596823944971616735820214948911356726624174615243968420914671224092987101154372226517601888973463713927798329539802375271807606614198371794682919172618587165155835613348714948243386119297648796658823925143028021542802851205339374921454384064594890665646912292674903543021790200809251300604008687104913339843201869773184482153431409900085350637187458475425193836450458882862471623301847196795348422892558405641753356208771412666323578430933785432357496882316560941888390016699858242011746506510786388893935583214450587417435753345650514221413552312817261438535471467430609324811450593962592042463405200408059208565510277502439117777718152845683520833027376618145701237946969596349114517864601619746725286083403803744479956131476805945177676170341608696647537842447249055081145807522205099513858006232522168131066717006931569967256866543666371130592739929190369418504181021030356760360085584636544084308555964557182370162158035228559611601585796432501521114949890465895609591737245533744022715661579783459427382720628376807226410422751081658407721572153501408485290971925967691826851220567210981950546963765856350796399255836606790841577606560302296978932500322585841891153996720627960600266741482583275590084582812538725664222881715983809937598229153251396572038358673900999218101903537711659788875239520948275777096927919177156525027408404954092209267056008822668904749222500031957388188175918156120760581224096452991920017897032035121626976472697006805287498520639882942238371339246280691196682939155988479258401957861014884729640328216189282064752975579220380538705836850359392455459275688038297813197418157495972684078964547428121221774301546464923160469317495040293702754430136439337296698555623658190196892468170111011806815321607725654163637823871909286949492731973918774975764731158744483962869041924374859427966867680625734947932921559075215207268364309603838515330143263203623829392445173318846588511053288997723882363254233042575850567143373015770212836888017588024673591309789619474115451949407824620366509664856871253926025234962766081004646582953709669320812206048117722148629231881044939011392402878199878804521480917526378363256297313827960389774647793811438800596468590712357943492422168879969998311729081652967975940960448739060934320237063680435852548749018780678663963951102953320998220041784443638874768654144868146220864234635850748792771854183233778819512813659551645686744660242654244110429417465135049927810750496505364244995261551281058365713771696942503902856135809042041436772232109242985858310402218848407654727491942187134275244011161746383619823188670249781423186783867968287315902421558190866714040593748014011886862652350007077806322933108740589105931235607661542646854089857909748553364732210876072408340908161431745399010636819199707483965455173189575894837468906878426675826987205922479125049235738323169523197917918659549691924210321817698771020846743280412327084895217965254452892751729044137361571145417262607894920814466775509454285943581300444116192565524777042888369523957801357180276243464834590279868738371435736552704784499430590786207855046669132710227050999168074140715582584234478268449587019450004794375582415634852960681450483947639879551365510618324982296326534451462394380693064622340399651654880601269120370281780405601216959575602711278250825523533810458669346316978257712881247463903586308744419551286493201590641473989342243424334394620984604288240663542783779772138153131373134879100710028468558139680620464148966161819426217173645677458807810672665935512014234994349725961524170299020115430659430067346401603035952127995316746712709175693547275169313775392942577257484524924976839102605180172026084424872706186043724228327176873458881391584385094189125748307050887760081157620050637832341801693454381215825029413119942215069988812817654496036275106119573323423043341749866657844925190607447569037095709912292216662131860115561360033143756803674197331423130200112732844256105819563615656758625060580986393187517292652507119412605352745040489865796025637451873321046390496613893576768114715740818596441972546066317293014399244412319973670194615676580288585719111926357448924809627725857619791004867932157218437366159755905172113716647115166634648225682435530659566342905559085581815216714777780685853309184297689314210256837901258512025071804549063014321371623966597457866055524542597469518231160669909119440670250620434167095484293857658052598053228291218699839506469756038503403534243894152452336820839992537388600389510387653121350428283892575484628925705896311612300405758956607273271418053768582940145369698001947464510275161446448231171635859544755448814667879822000457266693617242524033111874338803449923386454748709608308955835926794653754083548614809976792221980862402889240973450701631942923463760950409944836174272369268024118160467837521794589031667438934261481721348971270693897649534663958393102098018756469228810491051918262019168285649779584515328586260670033809458052496698831478585057821114961170211929737953823311146796102790384599821582180385970438223256290814927355083794386921678411470397891768300072091948627785807867899385819804136144443313445700338197596610134364028202612384056676308982717972805574090450344799654509193653705659366671085672470874945391193287205958441824613965804186312661684777905830720263906558031004610058547360035932168858407708488183735947640014256081054925479043894962183350193423052013442651781989963349070276230492648557973422323538959717504337595402989054594736374961881332197725875523576675423226225434212018967711158766919570723784659496352094399618412639352603683807320145915616837363645354734359536083920979847910208091642649470072603653743151278179153210885856984714058714830624480975335257742779598952799767772507324462956095270934348386688408802070936149480015956663379711369395386597636438292329424685779195709102982927315340672298912185857502456944111216482224894834705691795780745392775408710108631431857529790669299218621255916346412883083602005022361734247620879718321159736610719227500152659696091898348934020225462007949290859760069344963593276168978681953692306722332905127897931139913136075185336102329301769693709634725615168458482418183898968451834095514972869721475376739325587301676523574398714987127281485928441875375581670314925749776805440655485639936361062438268665164761618830792771570052132462212320577999679558042435045006353203442302046550942986910772909317605107232673578589914459891922531966836123215825018080895154365526045352803639860878405821684237307264398644727765140108760330873135426455390960223593652992816551692169386071440925118831281897979850212218451250821482203085175291341806237445005710730870270875556532530167549352930170959967094566918732071268247107969897744656267951958732575040274005368471594056362089459463813356488462941132906426349622923792903112835750849379432651382973489180324686128672460550218232730901744607837556044665583553956710325706985588928348410154482382914312904525596323312361160106162578978360988718465720261966814103821175818862356875296488623494694032516515033127469745823168183674013032622851062310155622229252756258549037990177411291495742934613748143875143820156981981034079144320831121245855763995235872601839518652197020831189526681808813270721594967685889833307694580230585937593617521035563778380349392803517823445261931019475354016688701610591461383104784938530551842536724164411305096279584359546392154475047318949042733499181967621674820895543601948128173976140934241016223276531688170805817768462691220757762507674653604856264927657764388651657549504909176815621250414388592414809348370412921247259881461942864693510165107779977898144909922984366447702876737826580628688868404417847992468059503915871059906428558211589067806293013254353571678151144339535839024819112707501166939694303201733689777415545387689871012266723266392941380658392423432300594802182968861830740679398245193466104028563603050043846139620535509762434947787617210703781424665576501722632693540819650950615751237756454035743187261227508405027822109387675815289062410676458718853969338276517884795659904869207837606438718064726956703910879054850163171171249741074852085317280328065320920534975932576035454044415797147857313359947224913205068973785961050163140176461861178192647699249204897122116331418080022144735996608118226532765102622424060226236150319317442056416837204398977913677263798128406026585971459218695408508151317828473651795426251025599515242784454056201354687275102018812586644153654834616058508222212282983737817832544580517932478511521230914453725249191625364539765347663077808330936814023604233278586794127024216539920818033688249148280111088142725568819380429164566324457916984462212881318620772192750666325488543236777625769081421514327241051005176210581098340782672641124372875765254638007758151780909987103972356206987861699834307961295493598831772506254745303191353429335650600765498943257561030834546857236340960104819958725098208859952386155064346335439278422025307667114184100975591772381361235261584047360816487720720851919319034995827889826306650933749110123198565702964923665218145227394058080323743421948853222964153086010688773178798023161002982616302203371779770554306356453514525774898635538460759609125959889874385264289847065626427306464414874548141841676046246793136359874689174708518188568615563662973491807914817812949870407870769535152136637959339155948584550538557552328859578773302709185490940266166827753237858913476583868466187946444041538330729241210279631902426067703864987554037764861954904261696106262478487803005614408844456987149266918697673317406883920462766074596778750377985683915600026633517109606815492019496860937220733537099391679076624056638093414469569713222894688640917217013012043696001275172687181554666569537955666831854328094966466196320635034619848051576642741443054957043444058935207164964975550909964417143365057302200498742957039095137724396416235649756960736472319097990620159921765087833600917753492577644551242445153896892489181578689588341596284782347964482455048541119743617628770985743209299730504323862607940030845623429595360570244218298481972679102070571961571008997822367189306302630449918473881427514917005622139032482960124058793642449096219446360077859582055018619035392075526532748445522126596867595881993460691348424619181795912399600915399609141441053029699119207441299833289047160585997230841623644146100866488049442029060189341540653361850548848522463173518006457820159879789077172966458913589678396720344715831405230623059582027574772604398962442432427020728933283062933335221001837900851754288783643409378465604722030898734050184608517180253616461454202129806351012293542531709632860358145573478004160158169006116799795673974267163029596810873345442094633796023642199232015441769653862657028971943540737752494262092294306904551852586437942951443626359873769590018866993013167927144453684813017580587355156295071493186919724662961024278065222953806218345950181821432268828751837997238655386827205861340960190077485714197722405213354826775006320720931209727070955254762072617117127078727803333253465675523490753417981025461792418169006862005288784707679331758538370046400325236648709638272074386436522559400585118885697408784385144478146219948504943614564191493108245832935845968948368596299322374206593592733177480710579862489901167201050116877770011945860657917792864136802030836948400410747772915226328090207569629366132547759590886054282286124828664711366827894819969515714768267860635940245267600057239367187922640168281904737620269302801326019965012390250037214840073572479269677615945630755563444467416396014935701603695310296682164393537384588923389336645810648772494641285400185157208480693077185457014328242563713128342581747762643086885275924229493726592024580302415905800425042340683914728521924893268021607458893649346273188093210546497340859091993966312949014675539840780229126576886628177911690710419140622186217227347089824900334042542703418294822605018157329814130068916790903492135647984130331083332998396184226338773470997492801391530626740635017618579607609858660987524667807464164358841315794408189009348423146786298326456316226153741406644085092590622888029943406263263694342036087876854897201813922496766165356967609568635171858702114990568710420722173116506679502096549588424513549156756127693031852787057976727086700398093661495881096513327759436667462676557708876881946722062996673873189985741695764789475785716285360972003536313009075911918272279122277721677949432178843465453009718906621864257573151529169400659035222249350295289221899436873429143315441534890181762059824909313067415704949886100221644232432131205465742699530845206877862962915612546967544866617836742900744572415072472034278216525462351455741919108395012256780142403679910721154232744731453776678202696017299042132257055474683772347516553527044322142360064798806436962124921591884270246349094604739473482007633505160044668191278193132324168401105250365341151183261869234306236827532757443135470811538027139806285827080088501690538384257408258846264227440318089001580679671785915231407191326665548040144403367397286220910075074690721248313982265499537464105683137940366907790037376460626992575260766453418752832170413372697575149507626852438167547506909361592777086658942389016834209268051272439716174916007140422907345243130349313925725769118355104736241328508337067024178322073061844844718356199239588953201549717429994826456700354781928520979871003005724213768657598577602550969037951042742283525292132393612315981699214793560226692846526824490461297373173668057109834251725551002025864586798962559583768892100734126271951108986445085205267685194056327839885393848438923812112219006016393027246566164975866266786381002893156860605647527073469070662090771894131813622760726478361135957154402305290961506750533094503148890833643166820625785210899054714809784695780101020625793662320758011336345775926735912576942139752225294839458370588679795686266247610427420163628453486863013596803675892726622541424094687367903390483876759875556929846695881608798064431897751738277645857160806125874548957327164510380211890256985170767719284203574907993963396097472461972051818789089072803189697395358702308026565471602085152481758572505146488411200522265744058397185530258617891947700097100295190332391409537243718887924330175851677176475765837610639926058882856632753992993852884873177227868991390457162297545153007191271964597704608843579004935884304736968658043884409217724193492458435656788218884435860382183223310569459489931877216795944908575286162848206022278938282029126147359817183432787559727912068226358828513957936889117945097392363805123593292492853216196212908629776286608365429949834442447814329410690581355964951982092175828819291655766866614828298902457955242957902521563764194789297219077473183108717790834100345442636531557167845854123977721983664528894959677334556706165423986731794871095374939426502327536434216564038815113518205215184376461406917911818816022455599814737364493997779524962414398821050923778972310942212702192113226990194972328024370040789736936259167833730918734754590117474253896545999110575430922357646787979333547317360112183534704059763394474914351073231232444418903660759307951332863907539608270511881079432089216300833675614020026407845284700928079851751729383447747933382730904341288629448479713608137040293346963347078722963099487105075958845031062102066051733008660938624666039334242104353422350846046699237304873773940612133204363943272429335785190771696308961036693107427351594408365447246630598433475656190453537769353980299507283004188610166581375042290757032399012252664367196040983441177853481853785778208892836473419742743700774591233323432330795879268917404583854078655016202651961420781651153524429349536237136282165321090628625919565010377126019559276909985722327305238200873266800856002328996535701450538836596992147747498589019881660328138972365102627931858978829926556534900223311786548533663770798097844203084845387685034044966393429224740419535465671036082883689277704388801220285973418794662482127297717595807613662917885126689224757547144601645400825803405568774724333225079428396985101946754754733620921383545383617564051062733055195405112739339586637181990385691401449570496821111558480086644498084250413379844462823917314643369788778864619828351305945175909190866818778001028168155678951116839574447723591869222065475575459324296609246587686786781844222468706829920220533602753423634009785421208060220671951984758977884063601891371807469038486854902715281161276204253843309190494112411481570041080752172689088959106658855292860175760393053305208710993577493412613027532607045117768799038603828863348431726395332737785791130088452045826725576489681660381831420205580658330824274154222628130007355260165685438098545850169430409412677167410951572250440156341815380202757538820488759067818133975633456742220128674291505311553210802716885966329970593017844661448110629661780256191213370159868814488423406196131216003749111867125864732898946673703172244922319499134320012048714345263494537842141079376172890021704816619046218888993006924548351974997993928737007517472471309457146949971214225434758080212090717205364957688355122953443549238475363589015935411033994141274547821580191292977181395084092450752604595633854032702751305499014665163371396843855393091052746371114510789117476791855633272026265231014467355886943219952663761304575945662969669072589408064452889767482134619715254629833401956694121436270033279308467508439177761772263557082104047229902767908360686787593015882376625349690616907388918463122767245939648730205651808481291365925257147954112552082491195903220204712831798410093306350125284310218628079286248515050104936596200003114679058539843915268154446515408126432238344403815222924697686653398666077095263204799677882055806227747420501034679407316006238069820566353641286259400538041896693710862388712224591129940240595170808107139639518555033346300665713166299657937205219942505264993727411180833493507306926257846642178913995501723537874172885376757920561949792017779584426920904185805528808671994939965042948141294055466772022062830524100755673283731762068876779341714260705540192633463316914568835125967544647639345572834502442383084065257637922373292061630792729921907420768766446776029075595649552059309595672395906668344579116746645108700415379524604385994497560579457114690567482268873667266784687656772270183905239460432147801310124647557118413905132398760405166747032429242207955624070527273050449635821799299573345352884443427032322289693485978381878588803540608300357618869820050068024888068036439573983789623087138195132442469669674418238457359618256231441139546439876834809007878013816829969452692289515118379483946834243810504013087715814509702366335159724589694809923837156641590384499361054613005406314415622360610444014439000995484282445277999804718467847466544980351634680895525536178000500970372453815315150765828483314570000503237068711496551380107479306113237080013364146561879379499415287094207151515994889344264506388229128088669532484266871647866263792850152892064396660077141272763703596768100042819939014077315139673726732937685604104170882713114271537037057827244495860807248267951433917000024115027009083130458357515683279717447643573764549139805827381226111416703437321671785746395801836616489429322464855299603303573398613756288880742919300442662742382563248662073000197638688792428125132272194447252518088612109170547352450127658059684109032966753145312272440805353444961116687733666760220789335525222577272801174170842734637963875920956275879522641834280961088532916852139930122448747419304202050919279003796523823210736872380171093037079473007979013086559184510621318407952448179128992336553037142171852005446345726502153174794359862739501197159694450262714732153279736190805009522480881323003043048310005272422699345520710182283507915566455140142187735148892689128439918136416201624080852729914991069816589303837464873018872958213624748517668249551153775627291973241597761892153584828802128662144762992831259267851083298423340281187022619708266049996735343256951998861662891337319113767065324216544434382322642115377579681049074479932685646055893836537260384815036889644473088064809948942485439163738684943682571447731261455715367657065337977601628853766160265287534125446972673448263966835170763917169358784366772965078304266730031184356522775147608426568432785139564898838839340055628900582899637233701272893947554633777659506237670574415061126911692301168721516249055529049846085922644748263192706064213028639216199253504664023144778233665659521308756577630237461184088142041602714785737721615563941715651519110456858138234224664900755592720169053379770656744254362339913558004634639412962469718551070676815458632753393501463640953417308038889077356800976871869654852635603496662315878736175700734243676632858348915470814136357051316259522141759059122236387009707107427473607459736673573500990762863809389469740277085713934232030526535192226967135349539142618840194637139445161327016806914231070079629849835695787745556868589107921713906973862203761597749592095624640776212692522642287631591918029185140851504417277172615437835896616864263127056687407329165679225876601323707132152452962555045893011569347361370748776373776394950485339858412024100268602591232611946149995032885741742103387627204688074163137735139338351982525316495139109920028871030489936271066622361753906178610976392414698441074927791811608872807868784404578129257221142205968263118202481573804483212143922427259832394974865466979123801299640825533032937130277187308475585473551853777206435774242882539722524936823913264571819688704708584136627839165832948454917783497357758805599043088942775705310455981262331953442165316267948087416099763866715836146168712998346531440554614325312516921143476087465744104076324856984937516125682414360746071475645614196747728802355260853827934851510649236164609726111950484672704828813756009596386816244495222142202835562223052067697507560383475196866004154155136426033759028143859707485834035354297319157045781299739250368223441590446811601136510237296669031319448641483641318745603123133319894216043788280849922248981497532642240904013334111784818663877885640540600325605848983312367794659667021940394464274810279515649058501112546946565717868297843518654981874013810167809137015963261502901895026071168106391129962024374728047770993869607019545438735629645204402584405633250011255951906358311782151363417654849583604780577332609973877271111977239583899297314958799136521934073370044800483729588527664943257377036199264318371070380418380147585901936323056450091188297017321253299405862307055014543510193720183921070356118415229925618763596729714746857448703875330969665893252293690438436181450091032894115450373054650714314935412404770102187557167894498191510476615584733874296782186668599764884306880946158204713365610831941824052653286181857742669214482639376628043523706952953760807573964951736775609598604438990702736132192699572365351619638366529482930823586681859747437762367819671470427714362078007611910211148953328528704527527276697980528284539780635886016814609482583898051264043765879144763777038286048679535107960981737398089066811005230154226882212922219311520904642108941162678316348099171448676257698810561237841332326800394242923715785441169705767079766178277095110659663802031299975549029905606204016696872127453699717545135139074599751097453713139128095845060825383771944190554847773789288375386189724533759319802593444266877833998506067133635934984827850529810991244445001158567223097417792499837561332452994581330529765516918762372433865857533827945424332277432145074754182242643838856688403440378488601095966620474761922807686128357729035763358123712491071834260989900935074819465267583381430271551014093779967460481280933942977237778752114841565575980756170344018581369544655308999494515119281901000057854562647031492806018747070408383686865421624619034827428068063916092515495095839476136569888821178255845925605745541354630006975296893963263021310722095616397089976677061201250810511181539392584854260013282284287834439677617331480096110546265495988053276653323477303746061249968472292757148598592100438135240653132915732093356911674080689039528050098516442809917831933443791337411590080799448615048624308665943690035969269481819104080020893941827069717223993300124302152415095408303167821948430710530557759220106198859203119446500986472991045909125794954007689429857873274142099891851329658439138016835189727113055185851766320257159595435049695158762672446736480321132378513483712756109420501255502659879797314367291405351509878720828570817885818266962113395570303284896661798949660191101576803649660020881546395023125749883382165523161880563111264492899612313493598847867525452222940025343982464393399742012878835433755869955106168411930484280721205022295157728465583682269501617686157966276420906586164279686545714210798782860003200336954306109948479715209066092124153180448584762224426200306663671779704069598065278644378161939606972222668760744928513847573400487568740568849158159901077156651537667045914589877750450615268618346968274412495311851145794273245157491722797104063851274483457899897606776833736077458492282504455500431895881801498391376975050958548611819957767444107295437044759487161667019157106551082175804576280164546304809115686866431099004111885407679118055635268449793582726112805788890110509402060024208907964602646163119876560245101465397741135938581888539615732164945133230114564173984909421710256026939983139503251886422526048613903548439076456921104282519389916724685804998157720375380642501052106910074068713524704829247592987830823668386987483110308650909037550738519990377890166677489859872536550811368930978822190354718501110422793519496382076804178579133264102786766103371030001731359959372452159654608206690990133440783933278275201232298413072754579492014512527909403000217736697433068303331693181775838033597951293170469306945456603417421274595969260058653945047503177294001108157179540961151411141398602412371653411571653745960600910389194170485979426975255818316670557633412031557535760784574476291644591558041971938134892655732784791190779646612031245600462486950190664053354311291660554300621701549441521191763885129371304753081031281129235657675943153700600402338013426561116687618696476971505738188022579945254808622346896745372251691834446015444586811545956224561461825571894244993665989442848217631223687737504902628071245188255146543685491642665221593059412971422079146061444082212828369949738295931874391890148894935040707221803351620801311223316045335287714856482321879116392496041190699176335470997392828654099239356502628870618568192300997910840720951810317034314372591487659447884137710695671789360969474659358081398346055854243300268482991587292829029935526041162435639441503977302022040580997759381037946058832148581246383089611571497709088617399942656331447181799878516149452565468320523352274488177809290378253306578602430584459498616726371625173459261965967820482631168443952216634945614289599570994668562457348896996943643846258745342069214703751799023954769503431619320901949766553408759307555239659000725189913570460404010326096898510826206689951540571248641523058568956266644241443778638687063892820195474167412696080174918808244352250127599158257228701853232310171635395914433166495416230294681890904387131919124597342276635402995520777944799656570087131791202690968756749622369295301569704363459409424108989841174146870498925316100006454596301585714991064959499834661517483907641538725776997591768305979966058156122361140240646166233267111791271239163850098038089124504651104266460520363873252646989995626941129960775840888473790374599932268348932272235287263115812251904289305098776404612813803186929570830997289541360878390288150450930593488448944891388027946789267010061793347466627471522724405791927460008587484406318721516515667722301363248315253360809832911285662726591574877782811098163060175877618097334804596556609067637222068398486855994868138305708082747043755397593701003365695407991270242248034534674466545101675791801729015079384127464761339931384990071470948222507350364340111599154134911659859669428376957920110646867734793952784563338554048840639427464819169369484696287191273370031205468938125853337445211682041435488406077405546392417015429425731609841243425143881389559787418673052825983762028374074367817321499437571690548184239039755748087779235191979291204138345434799939597443623257235926164858649395776995265941926802213524576542381178874658471428540282710247272171740336754811338221765855105930380865759273312606022570818562980285012848822463170887198195184943257164263646864242842866671394681174969295036782217432471531161507585553849541531178443842207727747417893300822381378124417656624486650699610184161329419285485057756874206630886271370676540456624170056714914219646080291210820955979508935579722989339105621545321673484925559477949310301218931262321775019158260093979414757641308296287165006766927694737361092197075142587240539439724053685666596549135769692083841283180530164870879211612527688187332009302409241570154359635092405033542699726576382318446358020932920757264779934548682382327018301673995961560343808801751996441766315326105533634632033635901263606069421559546990162638406155750442474307155029111273080212172652009319292774321293105687893792550635809937785562165536132735269314975654850554073883370188930209747229602055505560463314128143036019448730646736932461272263048066575936360946626821067925761777072628675082233489043435045323902276578311901547920585198231614776726364844158814069454413832202373190823981684529591407198459296639430137299285742247886776033111014321202452563509456147303282037650465463441818731307018635885659702340564640977464712900126830193460727931728232010933094321246147809484835697062842419326424021473450252556512070476872118875586404244131607564702465910158680343325349796242567567466890289885367422991869151469954798554918124141519528442149021703815807427312169614183700583905894999308548631643510537133999622659264867343237722052246211161840052877396931467331181237373913390961422644199297038101197317338705071979515405786502841581559640748646540834498293065977315553763985491815519732212397443401899738193719260159952443637338586425870965977206098631451448099448792723497538144705657534347740101601774148926988518259704508977497512555887619337970904955111702402245473936642165454679451491542514241228894560079753838458853386291032124003488146624518611479405362923031211096226005112188959159157116257772634847769494268983235749884297095047427673285787745864332052309473521870533902677139634784503570587949763634134212857614760200430196495795269070183376878027374096108930460545215658872289406672637680522183362566487156751922541992362039326162188512466839725049072016127184663508608608682004135839284401117646253190873219825924827959336715438083936250149827393940849347403576836347402711030499863073084698119729009705861707700466405984973850174343439426793224366197760675122151010284438486946941331163692361403994594700587067964278603767425837217076160353870938262587019178976253582844875369250398951861900107939543027767958681861496193010094464485649921394945954774919832420150254159944102485346069797298203566854989802386857643080533657413979657971899397425419691462969831803990172281739030286210101448582781083578350926835550180192293858867149897027422172600977778966438029341676849027916740014867714170689996179503771446094086803109025498193371158934168318109425346551561644720825294038182370688696582030693541402712439887207604704848204817726413045651583836394786614370370126782673496945979957841517582786885174069002788129062564276857201924571279494554055211383796188677904062264847751870342238139660888998841982853448089725838081948992851758759466148015247864703523415359530866368887067413968666007049780215898146424954567243918632125942354008927425297559055933008535714572809794916237143494249429976514016483735017055825200357846233915177216488827704219240791980246847606465395601333941758706567841635637303451016784770656544510451128705743647631998270409398408661141493772580189008668660075297405122109565333597580854682857754600291088964717795476192103894133112385906988803673114191302270584548900125711406859673006779689455284811198608019765832393376736707589349585454076443663042212551240360690397836899317450979591718765025420651482213897467647732334945464908956873536069584132691654021696366845726293193008329651998900552860472395663406356428762140600499750521798702459712800589910698172574384968753170947178839847772779246869106137275236320899743865754988226642801611790832985403122154722079213964129446831177857433747277786320854241883564699053119498969196013842675836112841009464363590438921772126721298337188738766529203390980685867702066828885998449703275016701906041510827459796078255034725504380746011992795800749977405661012323438040848101417162124549593056682071501865774096557207177688821657679847291629218746990165133207930937333141219474471164609995320767918521030841575293115637196211738086098949617512989057259070739549297188070244592750814368549279671206580049110491386762676919726529667655274963828234917886546390256408906243719420830023518019711572441810758195926198269922047165905779736836040690473126882495572193075958898612592890009455807913536140709268116126708658228555124004481185488197652104737396409429153572920023794676938514663899040997428855511314852138065533754469971606237758566982306927321592298844795820983491719038646685949591900483047487068966305868198832073244077690496697454076263584831974359400420011616909291290920181670367421837924952376228360759102390965068509367912029105005118938648050286522340023391068210593741257045865949922387217320748858041911000294025781518712231918690055498274186669791668785783894403350637676338551598189950157017433855802988422058390865026683132804361126208116938266449326285570831745327942977707905397432946951628135284924696260131079030727797290179610297236063366653380924354859600194744444845095368534171409948769041282224810005380528399518398887287650198674950719308214484005439171567594512336447458960966411332285161618522053703364311886697959217489391026572771123602065774630081595010237330852915403790900861331918830200431562501204555697222267813239958446173195489230557534308610463583391525925002386607584721029648864045649415878078734763612404911348585934747390752379094625561634516411580061636575980131449016241907059619505579989584131855776545221796309109819496956123545087447920672902773527052945467517967043470403087626979106415446116966464335467067209489120535398512103157042024195464644001514709570159611730372592061369494182432439851495018292126165847884032041955977561160099635755760419223415463785412178832535291135058566413589086308246449168648642282992059113211124766607870062189085187629342306846848724011484624733274393600281927633330716522188211025894262345962137565160739987552094057524099378427521105497317091624537584790058625223344372811298884933221200192508233576178097970859283399295234685551124919323761441066020756810868929439454786183221624073897195763365688300125494140931240836627292656577227571697184770527358640009422876805293261737949147157530765389209848352019460158459785628260909347969088903031908921541841294130756381538869902893192960302031854774847970343163090808407588404588097692657669880311246638172942723605784311104044087895856015588231091773717367690699139360061803967623863813806788604051813940332744940290225564621120144833995222268201567064057817913478746628063866625380021710694216459889170227296809579336439027646998353341006494514280969710184974738514920592954500255742677949554876061933026113774540165195761926250157782544465484884306106743280910515865701517421833048565124930634538455428911525554415549753408817147472570756936474800362308502431687895755565643887087276931717193022512385412184880455583872498795445794171643701062309328867354164147985798614577708511871038629173244797583500153874375579453358375281142005210125947331743945698797082411705500879554852985340346728421929663038074986828178603990745952365558748633006652435493143290578092409392261163211551193132601380641333608981411108328851319462862543270660909490138166037769029382183704288409046547765816481182817165462581156347952271835959809514299446282566210536614279690452271114501200792141129818948854551066180325302368656980499996239981736519893943507588999971837469705248106240881540905007044759982445515122888390486416649579593729408072928639514968180128568856296896138275791152106852652481034467730396424239668726077805609949366078097779217257886486302500669869911506578806789699311364789138179286569404091116307534151311410121880449600341515971329110306026669154559680449659831669144056556496611899456387711873649929368825422021207430983783215940448744729530116884441096282080546010620352744128080888410492615704229811228356041779659277852769620011628593951678456438489728041674022351795124491263505256454628060179456964801402697426078433587393332790389209467355012847705532192158850783032073891826107920110043692674698698391008710337959941381874409852975381791434482239043293040162053347189661231643957699922596687902799593931846831289311749176505067968826831031755445084528374292473502483080487986140543172394564565130507203356262866326000992549425304403762377859032972980551800431582934534401237392720545891797638459518244128776391155583200340247263293608875223481025005987834566368623504281548610184406436749502234838664985765384904609820936783394592077256014151314519689939825217946651802319791889340227447368531589883449958381560346565583666589164255058188725609191168212669628857514131758725887871150890704900226209580445526607471907746150157074081801017850150359595519969717983014940345131272253161432865702991918124076337030397268642318185264102413461671975085576189690088900942390772851864111030374053434950360720285718277574048523787846223984130291205848711711919345874898125685180735057547182296273239809649076886630789895824170836243139386944792986427636610292303092506673068828241605076919956187933063551558382204114298387520511205257837270155373217695385628296056167868354833057005423439285867605695913900151652220472310783675113837062667727088052896623150558379743763800681490765695964454688200757092279377038260545889879813149532786190242360954665868611539922346340349705227820315861126190811163977319902924883276079509372503898247755469083565199625854587762454142835381477596027004863645489995771447329357043709571310456580710577645007276813285736374520963311923948467637252865060454110669260973973880127072709997078208089094865575445110125213247104073247887417445576159025207346922227003170650108407238831777032325947446023392423001041828517995386222621623400313776416858096002345809514865449850735175230706483263597533389230522775708398195320596924732799691468332593183216839476980194921308346338718562228428544200957513044669390198337743678808596048469897126897624363007259900466025752396122533534946035521634801894552071498029848328568288325517789809393614941421525459936376075862001964627644739990638257923830759875674546683999904301839390830062465788307522902657377867123930151333636394965689377309403831618130016623021352168242778018366167562358614632764637612404713670656732422316320533222505664515493031814515068512019025713536733511133975961571676553871480793087279621367595397887704303814566641472546606552769483819637081964226645803631418991969198290959929475266092340457610073032236449693726147539244822458906681798801547010692229570972152068322056649094910265351728789991572875160032899836177023466189209859077654795731254424359074748900847918639645913890591025597871085218001726413471113344333865174034215991727529950042910736737119430268163736512323642234208994768401564525309685494243923909703592440289212124880063228522622078606850314257183132736486795145923825846278348459832833735225775763463170680102376572035050491880026158180469890135682748956878850008122013753599483552323323325301635198225851152569996988294911164392911927986173428940497870393718691368147756588704540784958238396513701349536767456784460025443308460021907947598095825064737223304288968641016405815813166032615502505162268426968767127080003996676295286788196116762436234964495949147728225626306829203370064042255331083966458263597720537669633408947052031325814974164501413785346884043036388445380735455036315153188747305722467084144463513382979851962693817702265757336583271897962866630518173467737117445406168700450508407155285752448332117003582968832631578230083701811104583647774767962569334650424454672185600281454398771957192737151230565940983255389324415128754074707800392023884765321372377158106029848428218650211895122661405533103962885823807773565369516722267566174446604973759740230170364816527879138127287628231429076576709843847594660786712511408520371272542553945742615986461589040188522945600383749716293672565475769041244973171481588361658945643977690276849205999477289728204570621232361289417528314218059917878067761076614287759336830006223585142697944834403983901276810214581736385514752761964736801566502376465626974026310500385281457987957142283416539800217994616021578107539523732406820209695669111341618495838837532457868663198499970922274647180846569882262019566900794031129283775616199658917033269630699771289218006935085572470839599856199695791587446726916779287217363623297180156322743836242657990276061761250803041009142822712216027701348565727905368764117050898299755987756590025043141998838893937253134664768175415184465334738129141094034964124545525775811358627491300172618559099633448369946615319650425028413806510548445872311167219579823727262557812708851757523457504129734233185117445598875140461036183131431770814524460740270226022336136681919314209648414904442343186881706733524265282399509936625899533254570151981788233138621144568933515028930531373173189604765519180438909394794973510352371622469524847283908216051173935412008454030545618159379728608107449530645960384416399792084864683656981292055119049383238147270042564990315909755999038270068088259279669734284559103553500597002359366672158021064065967333395786110255677256787975272261433182571372142642721706127250718551445863641142767635923231016672383694117437989835198365194933097131378307644149896922556545225162376304325638127148828021742373485976257077929899070823126024007442394147419830127408050058459843507996868889207582254584806206742855491232350149785488719588969220993942554215789221435739099766384172312346414863772164691608752696858945650068335086192633065820367596921980434874896790727041489196905077986063041336467060438088180192884852634165005232219365764279523361030624479232537962730448866120436894915932759806608049878412203354343861804887575571660583248165274593413293299518695622136961932821475762824671829670816256642109057064999326784841512812347653479252460068233624745618155474370185498737477049731008111825838317110113125591560283214717901286757942816342456271449483463763388129174710313234204834685423504415204044333905978550085349720197227867499819234423743692696143292161641884468388930614444651833086891953338676923988606487304097548883981200867099126996886807996894424769711722730866808877914799101476614226305514697755950804578994147198599572868909836331308459904789525398816424581243729533752476330054579647716196061146635854600475053441262411113529744769104834362387647072066592031490864964642342928596092716155639349477838964636961279319002656913314280877224660447535337926303439160635652354422006353541363791454207081441761107592688474295741894530968268622179740505709474797383095425263677338383083089216128090354957030491235513591609045977687670514863838347018550318015484302825649147854988260907600365900393978140156063066182593099758663261426580125972809397554498744464539813078756673831138491194841742456143115165291840787748957372679788182778121535976951636908431862549180288277672083708250026449777656891565965050760143695637133271648493278038132825098618029392125796687831224780729034949003979025431393713090581232829869854298640109524694288087090191668678558896205094582863119406677903069065113469824154829947496042443613759290524941403284207123477217567154833546832272227579497228044098773170970451062514064864905586851787891443460609956659547913701910625522109706951254936150015290724073516935218943403240799437937136158959766316527933780514129233445838840644423938863822370419071314744933605809115337032141545673715605135949605233782664304789898392127205002318385112166805482935897408480881953853469086989099728357109649920282159193586037319115110665192616244334537420472109171608118493634049706351457980327731305071655280590318471612299401243923050512013589259241975802304136436505129299632114466099980223188393030850029881512830438513891478776494452111620479518972998542702342695167036337087940988709851422716672184525491544817668192574801495752067691388807188986989949302241142071570380377123577161884754081480850977322651552512007703691741074982732658483680579394718244488709972621038800171025694818666754044913707519580040375557939517712949238882925534901317973405870907466614993113028196514553556550330153745462580785924106124871536083129743244160958154641118558649420614930650995590659192882988941946470922515140844763409881721495508066382911792816422402397720996322299324348616320314827823930141379766560017130154329813147119871653760789271772531894704718956847618013555523184301569522512412668652771369964338418447249817424988294518039459439202770885686229152780080091398107918419477782557836567232661965870464565785625647744066852767512197929957059346313633314747450303543361939858750160277441915358661903548703098945189602647270726975170013943406022448856873035557403426176831149667641415366685087815104605354176281118486834947190606910759741878119908922108930298195171155527181404742887451091138845602609543645028814218758470776060161795165856865518995018402876772213747845687163970443678483934420595407434242126424228688396132993261852875100873845444884604248147101462145127389084607620111077203315080959573428083427651387186893261283948269360265188997341563124703370882753029495098874882508616116704242164273013132690804106188426898525185249637482388199576756428529366669166487173114662545527519075589484664821826337392987553108945173654216862679977916032287928874775241308317255032899143882768928362061106989448729135322518918966850005045674853051243823191579318962527232094263318556308680628559092665848083165237962673306199218171996529015678088414145207646799398499482761244948206181210343953831986121037212329492746684363741245481873773425450050338617065264643102961911523842381871460594744888484590193574243772298392887494771709824568728939009009969460685296483260059201233998301899297325084737853769134685199807978182664406949363360996195057840717713841400100425398198188328931471114507198090437146566726690215012836321411381208010183721132893649718772498391944496324902934245707880666182801159412042151535217669413576507240650369636145098491708544861164624853105070219579194480275562737099639420384628909989878078351141420547859440385033624130334107993907943796978263412997323823659116539342007637566111502564737430368578770187975666713295162623159290553802699343146240306820700380107943451298646130936746980363056544158277126905162128254230572287585618312071297119681879404476716338336106761836730994518000991510046994611601170887004351990437089632494286898838798696843836834293563625325468327037019616401862555056124416544127930891844475669833929432493616842565584977984755086269992020914422532747937639905060604893628356031423393606090946600583493067090749246685278120756179957182250091282449909919974337175366184786719203469554077491857346707896317235219120628087669449037779702417481796921171196141213389410838111212890598689419845947809098636206255851654119363739365733725774587963421831822298297995605656079213291610738409679255861533977366802526787324676807970694865581776838989047651102763848029414634875577778176214748328377834212210729508292070542054140294193194326224010046967964153611056185145820684097815093778606357501777073280399945850357130196210174584896899176462015255197165961010156015153927874965071052552436260436763630502917582391945901668818145052410553956095166002090176415192504486812731033609689337500474320809937259758993138895301533470638181881342862101176432750366633719933308758772861405660271870712326993479600756727217984800689024418050202178551912468740836415215643558416103095780188417988665034518674623202650398242959952296105430273855066667390154603656297293166190313671099248682101922589962260128393115438793332349550912167342418598831838742089404629648557907284292179053078638100494122506485623627782643255021162882588924549497850998790629896891451903809806302590277943922499547690823549358993095430325332679870560223542553704992150027647067054267789954655219695639325752243914640348369687075318862839928194970918458029041160398299164617961699473520584962953110344392462728323197596282923727828267062237231529062866368470004085610782960899027836296662889308902146410678306121103119479991699144256947895971487617496812397939688899691004289026855695702722050859825564076826023672010942403838717374676400731167295573487008574309259396994575574202511489992981761174738667012738895665057017132497527581054787056219439303358524437676475179156663023108287042859751773284749454587411587868655481139698546758891418324484035593725849275554430812004065795188565494740472066995258724009332000763532090971924405005779029295391486057558390998009135849396388350597577599343519249989907120391416130888986612524673024511017394440458905630619564087567836377486052330475091235684044784460162241941309709209080076732744379075591321924914097263829792725701717784662424213579921125277217673466966242155856331716673976180117815019243833712450429758974247253581512046578877019462926869925680154075973691588856494180149631576800646219925817429197782559784539740508520582014732864621222647363405938217453802386285031051352033354959489501610797096261858148179955661488068454798781196972692286871893065086013343706031826055603930868364070343599488597186479335111852934032361131226918037343190663914961226708606680941297140295582626432494949345176830328873953724647631222456883447283390804351236873805062596329680103142948214500719511782649502640093387777535811093640457504603074693089173769911983129266601680772863661191293981649035528639432677866920771770035118716385610497126950178265835761112670405069833644675494612306112724207291198874637672251622515922717072433724790698518935647656083737969279271057127254889656331309617510836472915845191492928072382054075884787285463378849747942581440722797906472114336785931290133981560081766322967722393588227310617216952167591688462253810329277746450504973539449293784610068734810895337534061957536441613763605942750720451346007474042378297894107554725257955860972949247087916252570591466536770922415056249527886291865985298577851866137096906465706611968174592427936766653490219221516006393244665991867477051925697196913326874948152339355727220310199679936529164771069531258079312045453834461495469472077462627585280488707243731305410398185182205536703193350668744234013651754326389362552841667862247725618293363015016819216842267370072166295301247285051562353195879445464877095069175505882182614448499201977313024136503603945152444108518601457879731299512991822475441839117479913347653610959953571176119912798583582658517296337206198986547811520502222044141973420201409058035552411138167828685065878738238014760359663553493718197554462583783899352382555426603689022764320021004898927695038014600454898700019580920566352547751908627132830318065834406071499808938134350189811592344660276509874306631253860533413711534385427805542471723135922758039106350450900277498090376732383842541207681615040516738053489384925147664693587941703519165180932322931097028104558329655027858396328202719673371378952288699394062593267148334229881484131377549172647391141711012396853175151909999512307506257945285651166477772158651829142171061047963986799605055536607455411172628806581554200791518413729980909098711264521983127513491304154186842210205310324241877071319509029114238092104947011107301226338408910748232594666045795645616106802799510261711638678000896224149167273188854817843061823687276055648241536253917456855851682316249086644662153652401578311794840223944847777879936569414048618661007294560530397443250567221190103694012517091719435482590629237987105264881527526476995462017108665671606485405299768150144088103400656551672123209191350729185625728290297791823275723482646392202054831731309344599067447739533078169103081493117132922534648366696304549740697910815960024856888333092333167429519327366724983629600940075931266640431780791732770192039873030087669486974936008544484177069895787181061601619545120847279280006668173238296651555175041144021436760159035672104814718709125667994081015609150112428563409065220816308241868768520897605382401606341243677729369932623721401059809687317580158768272531253746860987338774924139710689591267428404922931165076376210225319497141778553067708140269408908033726323516625058141011081926036507414014066662209155302895554239845514662331583816133766268873957479353125769318420300596850124554991037402263359169332106761131971029429700606283142848658393808754638347258125948523853005097762460787661923995264562736961490459068656092399548901926280575491888785855772370517128647237551372018016558802580242938075759519179363269114405850129128398551241642838351736276460886750318752965497071553919551172431830544245609087186406102723425003209850531710027319564804422359106272520430960820303517850460551668653004206706726875002444238140079695752548553940893943993364971828781748976411958732078629968508750514812993319451898294410222064131571310711692613629026988726621298315943012207245140057508850500386528871142414711704180137953880059167770353513636337918368809819358444602330041113883707380857028390628428476809867404121123038223370229606207868307357779952818110907469161431846220914881072018344890300549180020297464069943508939077640468354749000137276569367366606013858056313178353804762208652243718170488231633329923307063928405396435212348016908625988186218864883946233091293419891218558320518294408444512223783746521838985204581606299364971303333797385384709654895547700120033185184983236387736637861909263359491543601589675933043377490055321546047741195181542945579611739184948815086674268288345313325199150539297389272673862766307956723259533453732970640054641686256375135246732187268132611779902843580387404946364510421482055207116716349307641759940761527000811042677416410242797260167535221593336178040678091256424843608978238313971920141378741189198158177607508272343637245544791927161341527435633955901587011747655558184192786878452206359300231218649766721806210736830167822135685867306569639337082505802957911647161830702048321616877371190894368218840271466242425813673202819653215119145893504618704505133428354942375108366358280546622498626074270721972422963389671283723698459758223406992836954002148419239757857137399655039321737764250760506578222997465536403314387767287014173103564529372631254649974492750237559581990068176865231845881395997528566844901775495757416043964129167537988422286809335716715340033559408411719114053521070004725835733775563660218498466937095975847353573361131791494186069314230988415937817099080630666515275492524701369550844744980227906769151339668515721454864484941335209156172239611873406751202128982102062030816685403861827371292517283466515073113580146603099868489116935423457429853748042030166680585329158614346583198346792289084175576950286384795364132812088725243954609258052217998805270828502465283544012575495518063957715321951076458452065323050439849576857731443021108921674239308414232907667002952147671803341737241547767797943391868150163390873740542673887309466411958275597641390248667816476194099098398527508332893447544313384389190876235767400578525877872884485852898863359134853312955959183432411071017864765518716167869350055986122212132806261860848996681151664419489940064035458253016811779945213094856482394135508514924957140986572816423416832484815793749500633582559714840891383037231854625659377260918835799927298049425557400692639474055565905963872121428894591648254879633586114462742788147424602896380355816171969057244823815112294643748078231306661145023320016625311131689426923854270169593360421947315564454868327003633562244457843331349327673739225003711514476433801341617593497406500335407160027384209639213290052901177862560539013883408194134572640849915312141972733192521674618415379856861321109663682192564460491666635691936553115509458429470069089886537300141575240486546398794756152534706699717699016531824579641686053288804672992232316138719779565072079828364742663616571690506159130245894501144870610016069707331879708080619563153931288410782079591254172016990053665785334839911041407881080250507732914638312414291501346111309593281908354040710843311814106678333493741511656168317226454343481117110902419136333601081212712393380303238468590313765467904974808408344243731634906496178268690004702316848796958630646718439511902250232694793141872664476951177930878677255243631641771942326426900865641106637476099823239443886095775133455766293010793283089294431943333442896245322644159907275926011887710467961442493691761845491443544774141207051548923188879379264550327250614449837751543774341915123220270191816221226456576064165167477969623123892817784072285055382952955891380733334058567763169460204796018097291773895430203277042105569494599521474009386242282832192151593496379112226431811480016464231273016113160188566056639896796504609777751095082081966749810708013797170245148458432908036354039269155819082455179529585234776620599170247897809220707929713773835280545346915475682317649225407444523424986746632818528977236587153161765038467564712921989804383394862386159639053481887011490794875393645685388068497521062102830865333852922895475083529090274190839532308736736756559227226266557569910871241926871119876452225081138698329880919067771491196509590710673994151865790321527728279350214802724733345825460515086430363809906315856755218358460897583496722885490771391305519107687389865857282103447111209279137127667362249334390888202644001648784663462970732165548536967677075243303379842150475938622791640017913694957633033747980069966575789646522440115912393448349478854518806467301949528141160368907410746399237772752183937437701294051481687392530083939575959517635834470596327648487931222073319193201366208516202351192025459943008874520473489693343560018554871276266937242881878177122063793459140605951038403081359827978214508369314022487112612377590161541821204642462360897869017771850754238729875146823844834192297068118750478428513620542674451386928894874079137940749851648124191733239950558016218708677616604310180309639919169541222884035089136111303284144431629708142168360003009456674604785539228707105711377854778423740119620842917191124784477399855629700420346893925431436573522931405750617495887641517853602019115791078832889712427542883658785131256250252630431212753024518319705825569586248618651433562005063620842132531128880919530860497752201441268054791957048073011150315710701680076860892944572543596779450798186453367096638128107660130519193750255744874100015289960936444131366900839872127116344045694842365994215694596848641721494413936082833748819505936868520128838109026300623672282548631617413718923613560020783278760687885483582579451859849694657870725412388098385018845191438820992434739158809625740351683123726103617001361173553231696279464583140265774473941866471664632234433974049205263593018638571697066187304110173625223284318034833923540944770227235883386683499971722153233312446171883420167013862773019980917641897908661541768559745480865677768867748823241254422415894322879513080220009886544420361404456027327989651812677512057822512535766400308743228974837696509805630231931302440434261252563825695927703641433044626877079763088749013494032947140683397996955392859945526168143931424745981382269327990095685736448696991251657987591550438371026556241070956428051188974526397927638169305126794401883860550954679726919409173726361708721138819199817695376721333872696828058511430982456698421220537300013863329287661551016600241520762404333953009314106868202756183736739214616888345858616326148946291932668611073012706050491391217666521056434052204715615288405918679986554272520192401261482685875530453832058059143173324774280055546780729860669511372535168478005132806910953689505438280610101617257992513378656831885037346534109994489829182867320488342370705413490323502827133132986102962994118222212125067474557846731711027053799882142910385077943670406962791223154854453419181579859405137659812714169383767628524432390345151685561144833446232439046070599045613781172299835427077649738438749864586723228135722688500381412751658894972250936331379475403178440783236891358428829319026729067901335770603456644784065974312273097423657878935306445121130363986954420412180284186528321955427523967588837796517884150459512385895937286323504806248388652546497213518755108827891465299897732890246253116579846035082437072245214997166348027351271421587667475483157594150818436971324754229587298784289677528338615651157897609328087111688772876535226047640089079101095937291056039181144453151960804325324146464948387343063709734535674699567563084915836146721530434916341740545668182628475277973259257897600899833835547898176620263280989263608218051640054070532854028190879259904723532139528823258617407803444302322530801440395269175646849176652547369581295617279724402950301056942240347751146750471672715402436208158829962839003202163700054829462275941302367122838962933011048990012707265118637565868482417269085506562583218781354130111896705458563510202790595862218558886320192262042923921896118736475635543565217329518399882391758099695803816939228001394130778197019200035103245432238705188419230482776135770835923852815807008019869863919109205953237359593091766515828598241110045206154120998047166478729574189406064397956251773745617354520171157971999337194627071106087931396133032306345192634606068104356261816639501322260935748641536146714305803436175642139380058377095022575987165914058585295730793296593966112995378623151386695190360741204203524966420921720538256679478175386792816057282286924944128827344206581592918589611654776031999517044194060738313767006203680296254091864864377214738210938899953663013484353145535796007951143699026778288430215381514341788319898219118099783831354091713905392322334264890801111425251278423984445901204914572091293236934456800871015411019874341577938140450433582381215279636503175352917736978094144310247006386451855796186668102732367997491481233521237236801216421633270741049896237144633954989856430116815791863641266273223071230658503054813892567095426221688440192735879108095723280715586471316747791566527623814173209901577224476300338529103353506991431430567377444613775204743655167950988811027821820155352276739803175378000850141285302406579274222103235954589136996263634040122354847306940893522514702875426898158266367153067774801506430334807332340151517323075179326462712647196078499896437646702004341687126152016053871751527709708900632175602970273333654564958530644200388130798464654163350745855701023292512520062727413194883994843818165841064631010022985489687961342991482501298725597922010741568228034496478817393793083405940771570344447165202816293061165931197706528811131841869022594006549773510986059005937540006602872259191120595068649634687888933045104432099753386595256481935140302896907112045812197298515278355660508908640479433351645696988625301441713297042180442009946122363404192498397213517366045150225438523799370994964713507432952877219364467987627761872470570239692117417066918125450441724786262028612152236948620569978876625970882743248048764003635771857074927544314852885464121544722249099166406108985036388946513118248930950972753377603218321033766675971823200781399451417006774708744023958335273314812687334086203625725382087721641055282501800798092625248711276203794312520349089960639620049562247770072858858800873875441508921058116201093881056142530116161884260363198380859961338187370174241580638993054407703326193307409347515952792299756582836806762474590475315697883809404101546307771611881299615352774950000886414491532177934597513152172153849408536011490180011611936509210514024138614721495361486393040077426916673845890555348260180378187286563985717382822202985728187335710036941242653604083932239493074190113649539620206934026503876513835338166411527370172327796373725604964628749405429710571220606303926634565919178054140750311963253742806432869658068552788619892872166993380685524205972966171416691639818666562616685915651029367568663554351209831700156459446556454836114189226731162794658171063788913370960357693453993289688977601970209149924598096129405774140831838195384093307126692657998546605623550745550715513706821999020431332484178523511849196403540705725651124564913106187112906486860319661570461617101959282092977937472702508488773199413522197852214321920346875785341900250905670720183918627873109893035237714105629178859060452892341795930962105640293131280129948854758794130234687486691099186913409095703822755462070029455475500952545407746463664378851779701729976711772249873515689970213928384298188162120148899858809378870519068963508629835780240057571502340560935237103571598402440494163168063225634211058541833430802454757505134208984424417641597736016775859457216290014134009034012311693091089634194573206801626026561811800570409115679386519351208762060753745107981860756493209415737855479973545399160539853851022529834189037529804494998042199681475049337716646341022573800103825863770363372896076264090373928134398039849440648778387931558384424996909330992461093725905019018001496098681954641185538017071887029079907421648942581879045575472861368306103551050932085951439813717751614774229297222397540097704981584832435928000173301734649507387939921004292720925126381904754420642079610662764202225699027286360714697761610735376717360609534647038514384467592661077818748967747352778105046379192747741321534217852000294131400616659143562285369588847633063388585317323994419996236454581881979932483032630278471159817017513683572471210527090417775055741635819671137187550560344340328011071660254096583925841379105678256918793973934811771382008829839455301449380747917049133832227651823816687910242754838467514661784167427335122671948808429681137817097491266205445775471021788688390614002589077508080595249380174448156519407846560767651982847204185009845465873119953747998615620345635149378033485329424929769832656826039840019364747064651984451941879831654751969724266223641612203186931082399235230625678613810973567461377426449905954254859757132270904233829502233402841358371420179608953633510983006311221481731765515079022498921094099247907257166169930901512894915661014632784516836867789124614798503374435358480521733559700267426818332987096023228778524977908496747045907428055143808080155511659315670398005660861207648684281600801880057007340143144883974378530813851037074685666418417771300865289006873575280837352624176568390586281889712253364127992590846697778687272890016687786067338071360537394098418669696283404904301982402326021180991437535306069748212471536474192595558787525786092960520047289622570294721991639917618926455583754435717235330090305067528545328683347631750531723688764594670438222286627171450249595679430801463135060343595054144192884198475131156900427475375510219167300584640271449425881279642042389506116503511002959354689358392391101993018311499736981281316504717458020616158530893510398734298217965777200459510688109216146245362771952379074963412035713130284862852818039264599191601503133083075432138250079482671819212957521620372029889294253408089846673707588760856915234894885405766194318229422344432051051999255531129726151285074043126795961496059190749030778224410400638070569318881257341814657042439970563116724806886983504690963706042989697517664377203729539798625953231802978216954945296877215721898583551680268430619557421952677387328322210024162914247415588903217935386454320522782320072778432159405849171145878996081912294054489043906797627562311858154457874274339693060725924086718617556082602266513486616801233649567558593351674263209924020351824406124482684620939051028934052300210918558341965343499687268057194541495412727581570848670118486332671827462171459016878496848960852342838116688930422339806404024607915492989368299824661110066102507404190730567471869562587479528737566246201801510136277999237355051410947091068319721805338524714737945686992048430619373998960431791086650938127710599375892334083686833273375269509188987691684167392382232161833949351911988464981500879112401582900386868903851628267673441533309241517679505047685500391370229148538424442639246913941500671654510895955379513093213155823632950584788735796262609284059776591351734424455442815299331832989312753228094311812047954150529474430939603896943216538842691343353298983148397257232215432364781303064539438083986445104008773971166450579446685368265717455852464593564912565010904076499607144057907014279287680589869182013502051599148154254092135886572051867066670585794268094914521018307782024810461191227898603641968939426988737154137910912615600871962790048248110825367680569147856574670868086135890606954898089334495418086849381721886321159205679985723402581151015175771416024072406833270586756303326137341584645475635824650403480836890084659671311303721246866639834309516456112990646186354528703346505641921916952860864288845405578770595806199852227870465923582110201979470603968158433007009355150450290980858915823912709944996381411334969425074649107931878103895149073671496319557156950663494648848141128822790305143044998239996427752967467664762411039317225347534648708675674242604286797663291262447125876871732957035763957938582012910765515850357260650178536246542594466235444732785131119319662371376850400102112952134806221337580272446080178677578155072358019994896196854280796881981866430811454544391758965059231114454659491236747594043242750398593862931019530777759227504439950757547757040224559884008049799735171501186886568154717061379610408430605160495927025003604389714820868283666480110236960278165366853204635129454867982251258360167306468914599995217902113768094948575834163154493081921400723548510022514741528667372539457353690601155270784267724019479621099676547975859976834751872701669417159769264228765188274478642002127234185854603159677943611899178873050057139290916035038972976918342817665330782628563441374855612593961504263582084691810572678999502084759615584791879015542944510648484268257061244665606169398936583863563366651338418611194394882451147782243697463871449042243163013466816165437633778461832134958708775385374909619502440101208595392882958018821164778164953833584643195886577993063248393788922121488933125054215651339156656763024351156986880325637637327672392500230978011247610127971750246832159651866595166544085656805251623374797556982545225241030930666795229119945423794745740766836554832977677814816867510955867010092650739916701772473352831632602623043206408212299815010851585697268048859670500062005474442894729966337334854181371556612332398282167691089434414673212456409305283511508406637582646242290451553194984128145717146500620339468204646010500546692815706941876353728599332086980816447783990932732302116780705913280249653584742919952201641379065626153939873826286655873300106739819166586557154155286979092352288683631385388829278549824473672847182309266694911015618359304654521484589084505230345138232647707428078417144265356225874556493387199128346010089628050070837011108533076147302524705793664075192519279294293154499622525136106409569853102850260006465841943557307575190168349016110950580599468790937126802717135936742729048874805219911815980115937499684398100609557160452541075168092582673382437760113067461336683293095221824433377330588357613571911542302373463465587463314590550375088191315639739010649959326111678759459446458145730442509943282925574922367365772358352054548516949035479830393777797161379816751981937089154329916384529884862237396015704712017894133775020477744403635757041349510718956046728645536412714140199818629084769871608780602594811873924331843948446598889364331107028487483986972067727180804435185761129219473857326926466681003785825379020565299945801132146355363755736302921788512735017316716166583959997697545678280420959152149550642132307971740595313302333088221820009805877118466796097299606903305836826002095946984426823633290295074231100482022497783814073834444249382826189953884400974756685810065684912961956150651887696936381421200319974135074647713150324579568219416469777556662766294349435511884935666746770835866089805269590362371626397021004839147100034684493989764360234070553180234091941412622829905865624074376280748940868393016812023794406333066784621255382549581034012192027687509779844553799166038611801532337490813771744904215694756952086087608708294529182651457975942006649044288936003237495035522835262398588900269670307413124220056376979809601086754275108082363291016367673836517890343776234032620971834638985991675365077672027692133574386561766842307453506690604814589928179360400579538785608877374600911938171067703089184403403613923844790608131953364270379245917416792740049696803026013759231546700011816500113636354034095132994654887226286767414122747133494004913590728455682182341488865547202255094494661848640782938033384027973859775102552454449873212572345163341017693947494043850046770270507219946368677733036565445245019200198683142543175822228352239736425362582302008607225730092402786726259653943891096707204859919080375242740171318634667733065180404145976431288877798355600521822509435366313717105856290910493210572585065617462864548946812199798919844848895956659088487078462108756155521240070630550920328323566682969347900601782007638739926752857957564170050411819954784990319101163446257232600630876894566086984767258011333733898104708243734376143568340224208818255803542569436270753170137533069610903516368690127702490435221374055211610658737477043477236405748233949124713796398839242297687821506879638260354685359214371161314473893415444746795349608552903096962337465295021773989774080622669924938463106276058297862030512419159909971028715616702679350926003838884535464423041504897080496547967216707528022334024708661764040098426652057706953208392322113712140937985189911059279359232708942972588324625416801798353212395380329835251495832991937453247745317907008702690683490004706537861778056538719616270368527145395233334991870984621291946374146125095959017467272342822808342578218377343484886025750283749513709777161258313638040782867349453058286967218730591259427587967311638665961586016368578869337590379119095588802621621318647185428425628389503678742856455506023991521135508821637854139758532900770735550269760469027470323828891086008614216744977633530543844794945109473270174246597580741930839672473217212333968261494076365592685838338878756639757577343806200030829197701154475195342812114112805456294419429304441328696359668440901080884794585116220424361923901334732747721587559190811247872540978601423729497222292545569391904897724686845777302114161706248923510352844447132378468452466447036104105215719617767581215856745509652165695017559702048581448570719362430196698004661167465627551090899507926017741915444271001287311559850605163155320607026940378778374835366714997080486035730551714945568938704474418597450946142432115950907447919773734083911224542136939672961997497275120074879036341026641068678345552709284067029291325593716417292629074115995361187837485560558521898845843923257775483871429587538737236603603223548697727190923282939521624463281574358401503755741293104261123795637250647229855973874707520781396636453796242164465676496628763342146845768168031346821206998631279642370776576877814621984474692709517905301669016018527064391345855118013060734168456421937713974889692425739381827831850410888206054183453388146557284066366353486403115065488314644961219081114583055960073025152040570448199750056918927357842367603597215056816346897312813698753114861178949965068331700034683099659323926813011340459530773205006964348791466923408632060510922955855152001363867496224212321099346610668633607133700347742709576479925715125884275840740136453830491231237746720251304872457329991826123108605981863623573689430876158595818677577521441721326005483726600774236435054466895686764577776820263806216707570136674505477719586708839048137687061846061774783088037584398853340950525023667747812101349735595698364349547226301857827837830077483903362397050084169901011446726958522723358018169948199424727934107220846387635084624586044823955317792407396080033935980907628202915635986023000687639039222130581380423366501409442828917991881313177707541554378354868716615728206608665105393685802441319860248434057157615933099791599330219034521407424739950352307144481218028154700631184328829789664500953316500470349544202790389732848277782934946489044110416224745705388965518209061722605949297354004222221798745113666532526096411928992355413601379258019326884126540617020975019891898815642553945550969278817640195635025963341081225805818220347439334542633209382586016475196899528413487305032073700388035087427208443020643296454757558452987138954313855746738147375401119336255362114142281192343543281526237649029745792117433217976892478295871277314724067999230631623285225926336337956305798251395961594562164907700073502630032846742362978300514130321367469646386151526506100128335549878471981718910773789737230238324957625819424013418155068145471512103474121737351517967296370300491648436888307167574954348953665615732864896445104887732118389130639088737347895988677768287774939653151732932253237952107515668617623363152663920772464549576030111753763557655289392734654450133997628526401824987889046038378287487330270581269825758671427065857009916466212097174339876973916945702527065824070403266653335829598694074127670892735288229782822738764657474947121829936330905654957361039729441972471310463274888044394761672615347422035546722588719008471476544707102549954312476322730665172598631045742337092313628344348127662611351851808855883220066953229082084667476975855617955288855569904001741135603703988546109904448245026971880173642348612427023295609957528359162487585593486305881826262680633235890961475926037495654501583681808847436723716304007644348258235611425773972713771971062086576533531117551216664798922322068780187525799827246154275168380697965557709502247904964088154356895859903364674998797759477485613392635754442976332464666242970959135175647538988763771313764666778966010598199343021291072049963339699726943282828873352814363943578632587438866066771327202944630057911259002935411675685570701624499875411517979089859181146670729336004012647068842826908671929520797809852409501806125865890612611978003127741199550069268371866948680871576973100856227892209969067074354411239407615910962621886227527074574010094548695442073150066769036648821233656498911406192095403433789886548374849159099991882774064671331950202331439869115296083511546785244296886290329810411864051090222675396604570125733653725068960374576958724100436521773213393835911519091211008649699455590474003178784075193779781804680137826704868488282582131692306554825034511030087084788095754167020333357412657928346484140697107018652583637293838552606089284898798090217617885758057231659806862988771636078916666868636635842220639831453764502925847463645559076529815201585826413252885316329925827327023654409232335127024462442321874618412050694383808760492031472271714434677613099513173662732453968027946387537323368579684471879861487755490571404795972794151846644343052437610010148197936742017183556032993072381118934969698209230158835992555655602735255558299317803385893354252514101348400733895255982462561082234424358572798102337015822352293828964327659234184374168338518509034527410166716256657720726184536643811433617240982251208627222516118033810849714915073597708878803481163773039177268398727206958005659841420271751134898615101223364575518587382281376148801027916801981184313998200617979979567331438132289633762664352739702697474925850151528085075995031794831690650915535505892464146696609390925328985165930289940766753382468805632808216335669123522896766917258316983205730031798846607279303519791428924056199742305461128459936005654402059747591772402488283188770678740610543090022511647292981539182977090088141019037208993898006670285748648637420899584618634584780408655389214667496560857185112942445658755211885411557375304258654473739855562751277200811134592734651359148481900150596081113250112519264955983982459165989429612312938860620545070412759713717078388657663355902750243942347979852121678875214314833775262700881285764066756680280486596793432334240155615322053096849623272470028997750000957627242329946126174870704057901478594703346420119354245408002120584003666019588223133835730911012500727552459268448373357800278877586349852190545865839336105412806242562011175193536891953395380652287038216907335425809781015262782300056982446701872665200692297798765782894875067487265379918696986451720838531844302078334358801191668853299529591074655168670803141782927237474314232381051941142003024526545495175609362321021615799411993472788045095997557947860595831181103804688463677888682800114377817451772761303882298854343242093248917592860090500605088913094381806137846354054333542093254026283935847499338105545889116192596002699354226732431721687978353537965406554401640878164132729778372331443472792234610971187151450673645032663758841109395395331799973742527339569149923884898979005792016379770132294989681421341396432663912487359951321134033456037436999145747197908421672255675541828895529449820153148789204293549095546874156118973499085241836527542621329368691169837791088306573787421540689827716813235215002063669906334780765506414535574723302372944150020437883767712589617343568180370259891925142506796448493441153065947604179050071498390815955212966527800692630343568528646089556012178429282261279478491580717731070365196622716364459529525523608947428145667957892153344177874633392472378238075586239084786964461263829470169354530269304766419082955119308309624373585154827649676155997450070938144636597144835944142438273623497064381004144499963288386494071172488223549206451287752900626420417319472948422104598160690357195786726760767792275522876610568901050074462657509871476028368758546812264127924466485048335627180335367335628900725198548194483979597607443126234449860015143541022559230523352812573321273167597846378075866994720369140034319374729975937667568893376374335970736376998052232890067559139625600956999819342489338797383611615441761915931768648797591345644790875516429986218704300866816089136042380417925108380413224874284517420598007522369156287958489124860051072860431859413914902272688547708404900216438998033426832631801388872340154862998127645381987936068077320428514547801582153608561144432404437236536847293788255008561171202410553532691970866799374383162156379204601347796967062072454919972411988725224390876273785062286099359086201940079299454420102711987989439694842634956191320120543479210318792054338729422210039423000172296633073117255168659513254416882340463231168220416513862000405347180026915155065528086928413339141749521489269971142356908959800315239840853577799617948734336836344371986347171443177695137218301957267545222279272956247375114647752461378106821875141972114626948431337603924967997390647144352101007485760943959215718328487684062754401989659913802886392717432118296108476262318693033450676175190592730232732147251021014903014575075992618419012907063408630992295413388534574552081624941051235912185073874989911664943661127312585139675899957334008069151986697269305969204858776785949157431604769106919196911111367474844312480471571468993048558940685254229882333883546784300468389644071420717584166861909531509984398858831110300973060197547454291716370059930107402859979127544784192227259409532372458886710431673880377154279199271334943228465452366271605571865390975714098960260044761296032192212854239414670022267654502769029487753813207139278756977835056204206788618232095059201725675612994663074258464850562153639554243797816316165570409551404105528777138808295504852157097207060465179938802218550831054498634227795780592398103854929677453300811393681757117869019719937505410138909966097581380448704063455112063086610770944283812279891770197826803071914253091923273090674421404521233811648156550181111402603259215899010468113307844943028366095763908462813471912368602812602750834809558499436547948084343461907100644898163899947619764435194943284648206953996274623077997110406320953978212905959814022514852086792553716621509523218529071533673924073042413461053224938420902613650505335788562953944652763799290111584549776739611933727162838030071791204134620050282032235167345713622000025769260986354477791377498737555901539043321961306283433050268630479393695114628673997128081540935188594794238403776607939110142385621088476469675780922587131426177405695434128101420449829379509347373139745509471337194585220519499692004949400470687680490742726057349118449626459172978093897772093787035695334463914304752760819538915647013221110434678245458448417153273513259277282525901430455993428521081901871230722459166679527116924052020601584650220139627423949681518067338499994170967742319281165917137044879321565278993072476976224093154901324987141748178373683471998663983716508042894469020368424450695777782988644990122035886083059312476137761337563508643355419226177627704825133403901153701715819736121671153241405551033491125504399646499390966448628872156772736469033618529509912174421352987565770993789249608110533642825928610849083392894101276396580283277911817013275217468643311897920393160365652368875822058939726497051867244949418557395094380524760376132328074073860687497114831545203676124565333626701789815506871970485041062118539877687260681685379701925720553824761904313533641483138454250970594738822647589510809561962314720765068395499663278486624222298660391709123208033363512863181637819557690970090917460507733741573332445698149337424330585569549116830545885413673411147230461935823487297230065056116593114872740702616446313945560667191867635208757847599729773500464828204092802213480700834068846498843018086072674774579652838536459990504241541279647894279623968083089212577991794029139541052699807039091987183400757891845134597038390523043091104955179820139065917296872040442792019695470536418454090244448847531897878144649550033892150050325983618620358392401164991248982729743538320880791691863292780436230696785358093728373357081080062182089259707047013175998253499077261286166100744357991915754794912053791063646590745606655015652108712557386553983958977651162714750602395957849519106176323128291902202255764265210470170121695333597933959532377276982896672188978516225424120016674602998332552050032738985704958652082971852949642098233107647602013673368760391901451047225690018059177006355482658000528473368374389143307454078901968453310634640736483355186454349861184256285954330481942614182164102974335504340408285685407945626827729600989968612230698671647060008758841897778739246068383051779600874392606356013205465330917126789573065803417339536567668515068660781785978912948368203586872924270905949951684428501811685038827781369869577150501527979248304935265464924920490297169424874029499541592023493766765964985318208664906799547207642763287716571225606624498555216752225915866119222219924320347316908294348710619990532997736421125564577558105092892133877584889338886211233224072354789362928808861725135236720423237735637107987738343645097598839704085032626216279294621182947477824913019690843098918080402445437690297091496565129547191730421299781740122017709518175285807487272607239063163946309800951641666049154267353148668446238371066663791188213725549240114022864272774070931031177270073582110292299357539968304719004700812059638112092820696866692120364712973788243954395432132912242286641548485969341577503785480189164948418864270754456995336122244076811048825816903578241616956457005761161764251802041767163827361549180044746961059829445453903934604500832261734164450893854959860157487583643632031272958554739391120907911642042620875630663466727197503592437277898661822723957303795401919757748816171809783436913782168816817318216028239057855921933934428735806020344541191207946628751292386813163557563698661619467978174047149517403695165137730777709948309137369190525677055708313867487822378650518073246842647008938299653950146384076080853905513852924543344581923493097401067526382457254796537053347812532167345471089039132504260495407406465249164488649854357387059436568364236793842547846213643959973483990774289402953952803828718307628039387247454453950473827932601672014895951689230593036275414340164794578401420244140581045362201798821366610297559462230709791882142686887422079985533126944209141980514886847188992508049590027191043470467443325825985722557842686929325902203682595158733860052841821289715046471357978119963396465804895302112219550315976537314671837787586798562437101632062991061873167116825802600240019698217783901136125189298182530775118030360439684871335976188080032616100348008184322812921131159491929003924886147976242334437310015281592875930493110850142175745235745906333179251654280882957658179872344421686733213131116621281992947186244732194944350838750651888621872831920306824165384930995896598623359781699425584907005304519445597211172406501271857685070324905993482764298513718106913591164129830595398966224765725854282594246439283731388406874380909761375359982120284390823203460110194632080621058430351053569903564167618651632113769366781116026810789384781574989444547240584077867397320785146086542431431919710793928465907272392458262888521528239635034652367835115290265387792592539333505466593010844165999467320014093174128770956218059050637404049028273182005772256402301257989420988435189795358994976140895465128161253827861142591435706877216704642862954151956446929464880256815374724713353608944324167965090568198724182211372156866813115554172424196520642537965859839646940453151312108680720883538210955577939022611530320900002957176509324407081645598482818342545338040482249458367673117477628847852921818806161688631763728395373045487634922941597933055641567369240309310161831045345640741322490146867675099896901051574677360533436953856058106262457135937881340683004460220649017625172156566680229059357300781086953692707265314451676259669885162870121622762851111962104703204120523052945222415374049648928006414962421802683391979810174399684875288883875689701584374557441112303646324759372260695845908191142235085532143588282463062244328753052295569565563382194693819835534801588746331392985567389755033311322480642058738660836740678282025510376099450248289848629051155793915476924154092155206943553753249007502856455702835036710567879113515641379397601972313785676063318667060380355223813661279642782271940473835669684440421426028079401899641757413231839327343446187491876540013177808469341536016856948921253063725405678573860464032061790997741481676241445189331924527225901471291982060382301581373004513321905734796414109165624655176237174816801941407402387381072120372407123782700072498466405169162721052179750765442006074271650455029674085297054612299573639970280149686969165331980927373017140349730499412755501386937147966806971629587294204910721637242943270545240577282909537659652779547587320154981802630874328295478551843731940659904540412697240969310643770011419877307671295936944683919631239305143476280366682734519449503097618402898940341057406707860893293708692457655334564190521673470602905938247238917528264339985329898430509706886799849336413377389647167848724321058770510144398716449516836864439587237096349272673021096755849348408018224854520815171029369125997172688615441908549200704746488907388978392573860752166104998691003290014936151753440441937126925460013064937324073930838268060500916562024508610798150350942004702603547548939369037729320832780013702913160172346053347161837833021231101791885850268793386876712714642663845447373490289632323127737488087800832938123440716145885121941176862780407066883755207772083257795509924869225790913909473734323365912360802037771968002205847966859841419220702007339225461206982359439494737454788844029372970481591867510429222495219729906367145356152750196257307962198273663606543757160195179210433329559311521036324795561948598517646294286156698400419811127050434264011378980938776425769496864639269777445578974374346831721781633696684925160272952083681857332190758264628696129662775196202883685101464789958215498401529334847749432931220195651775327209174737933500058968066263702285579158995778929821425445016511548532538404404518026586614600166546176303773871677681320135766876296713498721855490856737646860234176315701652945713734542895111452040622791471333095659524552750016103306029033988003211566540114207561520477934791450646253521518537817645403182683812750957264908854156963966598882140292522505760175210277014938678040662427869026664340484276486498020009476781826209879904295558366092463789809102725131106444419068679372531448831480315495466911716562722062809718888320335841385642775971228058412033186176464104870006465358599378453323927656626519433971092843077760939498671999000548438092809281043809913698776232260084941323003097433136687638542987529058947076652217631972031922472429717125144426930086233576266708945372650587206031681822413628767691616727849894412412194209423200945600198328234055543450347675998126623202733511300004614030809798061178542636535198041321020386135725933795917297342955074973965948399431696782011886765942119044172504600049660781456727789554395738745482574295294015512365063842436296470596799338453766776295912339399772858798053141148950258005655544900539561403769692811315120899937558764974207019339887100596596053254278333897010695202694124630882872376260810126015273225326534305392050734480733760561378304702362865490790957502673420606481758366217291951474171643776040684558753948988734516447340792177735045061040957907453863651357888347886680726294391192308413090424869878787446177563131829727423328707170944934788889228249620382651606280205250012843213003758748140823549187433226729579374420735626172772552438247205990038653891375153224733856333409231310864482204863913875161061984727919468404399465807228723446240729474378279120532006501722259160522327600745813528074671747055911138850713419994836365258432033019339309252894101295969932933706160932111963524654110480164367532866466246819876156563922793096131813577879576031509022172734521434542502833997190950382268985531101093179386412751094544591493538905947189002354188505743302435712127741749679126240983882464226446721963249807382079728253818437323371695242121881682310030201572559484340184696877417678513566323031195871635082696831112066210635532918246855142505715787924709426225735282306670601968944574036146816122355573058456035819358579652074287036132388417591730963356722520492921837307265026409830673451682371960265804922254849670055225189527901206050614618853192158513198322530742931433768570085928534932622343446706150579072347626247984335037230143545902417602768310977017467968882854302902258815923954695852148422779578812000019770305117664576949027301822805802632579377761326770970575008275683880669056581431601662637842453333349830674861847173016569019494211253799239958855649742450855557322477967154492028850416854144174417506586463341971140994528491611582736117232100888219912566182054207838887560926509812914360705984129161990917967321056964612789593058044942945622432209053715986318475086158657618185089622768564532532023892778324534278357070172314965634772335369927531500646562933506264367911255399504794996087096731121150641885188861184828864250203497084360099076099063254313950746785883778350620828893426183801655263044839163783959871805511116219336299533726991078718360620972372846934330599257706291570610217105754326197586360585009977947544447951370985419783079981542483141232574430194180914970897045825936525218260704083049084516243610309567443640486059190978747882535827504859197892563577248193536645530720048503119243325152080308416731306316755747106748208396795210670303265656353056929663053361291193471098760774523744670025518609063739369171981170007372838309243370599595209538733736622372493991014286894771988318108273218196961389316819944354795483454060309703038372493322073704283863615291125601575940157276242179417144431689675234677295032995811168694881000542241239548374159480867834335520308154936070456912508301824271607769894731011068125735581254865469255006854817389914259747721232405696591827910357796267584068994857151523470997845853414138526778001098620781143663302453360399873018253745043736821301284491607734132905346145671057399646506034298270396380850324377734740905417115290595760254738009498987838620226490139695175233813725301805151092308968109139636384579186651323158359354643742025429278138613113553045769607928946337925200057813924490844374910590357988575581217769245349110720162779214870676271733876762251220026878153896131326996465743248277945968218157008075629288831349672423931208059012408738871818366764267182684159211961042831778896084717184190859558920570581586185066280813217318342126862270189779102167614067544404674749283878378757888204911379757970273982541588739383261170271984594980057784797669093670526784629787116380909090116452742308151822172994091053384520431865879545922104745110171565169621167697450829341661158169278513118877566043002550358786518125705988487539013741645278369208858886656032932558226212237451274167299924241500859089257490319831699942704972734003815081912308442150031749892589692460583730619433176186911765024623194729728500775925332734701040781457334434363388856481253254586644436530375147951058587625362870121319432938143439820622230482599178955522005817364822132158371129048841545606513528242274858518732522457888350772037105656202933057671422185288316928864032473892394453714820293222002548706510936447920232666009383737276873000808822297625318313682032851697347631171455140242194365583816400847330441695105624945224252347466928651520391136520046009824129557163739573088452169957205953095894612516689365501564072505886248768415791674789632109384069963291177150670930258032765196624468220720938332506117039478892618351195850222764544277739838749464768573175447218732301546430078056797871239635869827914618230491906387195620252124742693233338008672347650642984348290732634420142066841040752807245000375609623465092579228703429520101247998608001881263631289598677100708288583034711640051674158829422743002808621027970235968376733514110721260774383205294838686241275380373632661159598057640362341903325784275418641521972033248071651881327916181455236728630135993371348661551343593659081150335253396601580375781863463158270275829261555156364643602186190952768601623950227841123891352978724931565483223237888844339608892619013574205609978576095200819429939098701283323262279186917436971715318094916800337943912985171794605902908541034533503699910550431168558655912667641540570870944129960770491679250184029503872501430489352478215426886924532869359156715568687568573495027560024718549422993542561764908869427714585723385912359022412506129616811605747436487102291727208694373789990052340194893728221150748570185963476296344349972111983609095872604389412135043155742346681377252240541350152285781008444513923083469802373436995504922905010929017461970619284766903116047456973760143367146877286487813417417628194583094018714043443677161367529888819578000730011986189897709519930109145525149336874681231353736446333055222288910599122919726151154838544517014308393229196668170738269814896885938938724927780722813976042805750448740713323668200814512342751876725535158757545748481045558796024504213548674800470225637178831377076706061200877077611665276835433489053981177269660664866373632316886267447813062889669479460818197131103589102337191051833902900956897272421838902460710709177947856213491784244827382489887499634037500785235296839192519995658928323698287791388717269400751607940991825632205628219717153723321949177931156070041374619951644022006707808797619350931577085785600227227668122484263579555203548270755693687615191283934904324931181390187849757817996123488057256831430008775468962221897112136217157358148922353858144860827308517149211368977409185121803050893360236870451539630734797507455781279098583819067890577909480512954353882593512811608736227089585105265161047975241844732007367095795942820618435027565831396326592488254180482281702213965614661159538990423459799199532989022851652931474579878428999360383670450145477408063134438748202539683130734745395061095440368459165684386168653980811345447725582849710170420640813124621756330581468536614718088670955806893005625068703631006712671974935841204063511553486222504196513038999351442447912796981582354956077802849971082679676888405693013715974434408815115761045131666125959431728281629474663461791482210209195099707864374665895935873172916750894785492010577372328566552375427650017379897189787767004810441583317145071155476168920360823452899783341036294315682508999070843685138542266950924522262813460119907726191566709641792448927459222552916462813563577957768592114404293497056626429572978744022846245142723920548212619207456847514980538197846606706109458143753765871123000773680791444252229084159844519058793118551724457874506456220608006094751767916802172809193956091949496548670929806811557678172048105915984606624744037353791565574810604650547525108207188107520434670246049728924670772626699529138034924870843247597250894820899260534083499940345718347285743055847158957667744671916815084246997635604251099311469105406337933113460588911041010938501425004459552579942705030767233651348346539397195828580586102423490544386258588650362497317387410654368334156127430998819295664495839572525669864994673976089578124974843433671562796350654239712318718334649369952853551297282101463574277362303833276328600236145535707424392570325318623594841935927174049355055985370571677297888369672611681079689715698579928631861087641373219296047197770615509628392109127528051065105318761278032749211756628963328954392879750300510437092551656383057482469406908572332036744498394317399296903105202848809854660605786239103697016431683890286891329740599615956705075530739544805939438486020509542558309277009702679641740570492286328268615065156359563380179887366761223712015672679920418357500320535576367200427020991425286123506028700877028229117258037746849203818514388029417207852026867183927492850018364461468978498611667197718723143069670824713002970833551154577809060764215567305879602961909413168086302477425026076566237242159095710222602551351557590228736239236293285892747118612742247362949075288999943191398581443888897363835553319088815170456701120607170600228307628674845686863386540398832382406173634610487113274578339434105667567322176243444283883446578368672407470465288514113845784083110586581647788803968778291640119425203420002335845127167609021387497857069971461097120355478643507562017361662079930442217629265106805601223004282140189065550205422851033184694886889783994424843068420469594401338900058454091279267252437936679737583175201259034698031388862224734125893777301110536947225160917273848362488146294801131700551142441161225812344497559902392356192273524565957070934838926256132703953009609659576699954785480168141141937804061465903973800743882590831102320905773658699776338000631760665396534840362295734242958786793534239233930686077800581002387334112472058089872113060602915048904197487727260517038211689739645325594051663574633348364931028137646374196271910583317726879839276560760384030468443912257296009804080128048755861140900855205730246655376135057711881618924473616360108589615465770146149078928715183126318879514480276190977856105538734350298516371532841149327984952417236170627411785352403088834291169759009171195156664712697573797833586195955511661117902729399763942055741303368496884155595831773058875028158224540183561221002728074936106774917564625537369625727418023731643460463204297715524384534188032150991862893076964265059829693779418967280492740314260140930870050124786297317344965011154616386436697392632790995432276542591598215702083372733812793126393545461730023189846281645377283759378174802544198096062814055921195103626445539293071991269905831237297317328072246823848614867290139288107747835155475680581858970091711884271934850241554731210571173630201086294545082930439791586708184312822160131012008961592939713278635363911812991234709401849719190145453037644726239623252320509672807997212100121922611193454113878939282771524352075735283524963997471508281184244179090876117529595021809822819204893503578922570797376446200987525749922113683134230643239828769591797885197404497885438475436972539363914527080379179438017939538490118353001691691948334276299050248030465437844606977115687909994279084067179356786799451007075549798305143461811764744449543676781339951397590878941514458135597602154418937671905872648443103901652421071602543566066029613184304668612876424120579754793888916559890803584673308868165263567901649749643263413954826909150273593007069879284617555921906656935318369181238142949166208605838389867723472702957212992531981555648144783947575759470283329274747557350880077287079821093079311100485906786949251721673323620858906297383371093764076027005320393576799595238446087941438673889093884014437000227570171607486893172090427812361980901480397954766869975210830271293072681453710053429483294389517093024639104626787948275178165159615096674221711009061262125824251610471387896590254802921333897625481071256564012092112464054578605334762149228028087045817199741631688232143576463984701978521494163862607113066529938303522161996146865682339251378375052742986026104313541857161660901398035032766381145150479610028793910164276393828498010940348615224882122760099561285850158190446583179446065107113666818355865020143104328659414544314303053170500505122751670117891845387613810263096155211641388080794037189754240478191807159615522870158803552432708909618927549309369844428842984745126599920527402060726917436999097505291508759396398114654316882544574424292838616964145281881641124894215017925356894862382912041666195214097800327315897338505818524505322064523239831522312950200635134726968516732964845608267689228887994541361186183156721216820086703594789990380570961690793260713211744782575739711084977338449251108549119210548408201485387223039910801641480782733035909705524223798791485705127884188824153438957191780209612078489890582665832947929017906599299204301451516845375946480221852982025949720784961366237357277153058067936398019370752894163202236374320641028583301929570807915324600568429980636350109168855272818773918274115846338992129618152643794005586593035925854485749311613079289438690924942341052940169477976450142911529560851532674181631776894506222635240462605372283048000418500192963422430304821717789198249289724576505167559982252076167199700306217589877124451893176254411273726185786039884042762239117912154882187987313213018043802586322976310968690500000330660621990314676935875313960724983606185498363081120387911026193375372514682747877221437139911908096079335937689541482686524446015387251678020270747244991080962437442204228543308807147062110655891229274712724488397382868831796293348362132015210889206436996166747799347958245244573566640225071089981672451946653841640006492072070017727120923955269102555808715998240098022326618645865139709395304199806968692030189108064319443367781504531644308011451439319681763516693679247278781695728396360280287628071941195071479038666674766965235091800908795178870898444565391915266112313714020445620129580644402647383039863179373856105426591837242069129478492890455033797354506149638618753791640119802373411423763831507634472966193844025252604413537588677788394350815270344041979021887742146572007019361994840637277819831824462050736013405584277057746944216477974571204374832550297513805996383095887573599465729748750797653180991670781077226112947761100109312288960959821942113898025713727120145368475780321780653870982195004983404219661330475924900673954536596281302334737739198362124485613788713585588189149585577984923695580974996257508887378051496824381520351434968291493237023975615337961051724201890467516536183456059368333479405924223035368864376950387319458017063347168928118815450486987973611035677605101334736809366868513291009455849125856364481597787734083391299662482598319553251114291412966324244819291699296627437936973641032813424616706415049143866314410902046929020849728120945738497741523256770358791812028424270359280453433715488510854752364917753768561758253670936876571578725507737574893516694968868650004565876095845443359322236430762932297250221895501139565397979564370725414103774273046632683133986383690620229883810992606262707764111865552929595155250586204807790134676153717835460542212120009964409447904058585123869671668467718577489806456224626730114233577099432630012886022225986743119356455680382295523197319344528536454561012083995298526403582680630548940650678783847865682299198584930892576789260601138820370164102939448703076622605061217608407903025934533680435673217752759354909052290819129589771754642847067890081601986960666174433229971338907497491851510417550765784745780790931277078595798026044444902252956063890364012340989565898223455208976392227042630845221329242779803579587387094616118006547638820240446235474842711271961900304684321705427894676486635594627718870988921405939013307907254066685460562358965452463034049872285074537215144191676995533448453598125944361720753976192509236446696240616032806444070406331097186163210846622742378350237166293438331916940331631564455590770672130108361621184147462128706037944345844118253599746160391141239264907987855652996228591593385853985056727817662794438090480007044452431199937724890196137032362991898301824119538095890913408975564307159664216401880968308258306096497470769993627391495357011514889051479720807953484220310032446835410530820603801526563863092830194444338401337573386785198198852752049565580208409195251065040739171848224505204113073133752365587534552829925342880301243506823033708206056276165080873284385161089130595079559827216434715065486415988767445241641077995928143435123194316129360664091032823266458410253478084844108166669978343005028717167424818067901984975885333355510094942469905925313840740998692703099914172276692948256197856749278738579509712044409351971431337870531117314119382806327687026237931986611565440392974823009241897348564816715206051816768435948231288625605405663995279075861255558285599452393033470934705963681218755686065751042214942884209504464391643871809078672990605726357116761530355417841375752041449949749117653026460530029125524420073300567662364248930202645207361025866548316061974387652989029197851835623283597017773048318452819881280897876901741515179496600111162188223331588363990499514084960710944384313972480140043888445230645410545578852746694432011352248867114171562210847653618615880582016629948369229100701387609097424573085968971341692028819229423584719136664064011869446951966692185203506866241073097520229508106051718143659802607827373581319184290487641326892799600081972717637743727497615023613366257781724932692216553035655384716500294517550950460328199588959922156156770873194414544253929540530845723414997488975488729681389364959565791813041890640960800109208220313493320456520623395041339036052462139354350357785725005059825675700988745695242850215047840809111525859526884089779009852102417422123199128347251300129753791052350309761455320887884725398045511314613205200879797083768094776392609376503008827396909702262552718468342989637891503799935239586358145302475951756725805948707392975725495306821870803852166835698878017518701947520739680736880581626839893329321531047033205615965233699173599830615677142324964634219211773127322748799149043884732177600977272669813821344165493275839998055102738075454238629197521168994746321902688598147900654061921286488747452430895330990946832412641177934847830808592313126166380145194525900402057813981154478207706681120908690042756703014221117248413576990170896826644380958065311482248180919196095434207009515523660526144707364865567345676185856104727327273731878027641286455844007376087257040981013934768695436677011716801475290628713320253359144701376319881238603810695927054665218411047061333865676184174071734804466901437733597481762432996875346757171971503646710881354920939133475376822959306604584796713320644028720675830657841100162647236301260198067902740995803357259668367768948954634232278773378303595421562888060320016976365726412020207825347733782020787334145200726613434124072792552326373467556232993824563555287926768258580695654397994319569558408615382633262318107761852315262440225101907544083131623116315936288431672221354188039054055932485466663878505342393124517542570510761706239825201267019214301122520374402443753897760607278403551734681406873373808062728586925840924014636409437178367243416410229765137557139190932320390186594203496071425948753875607742843445840612430325925773430517926333421951851724152447700463040356010267277274748799570834506854495506143402427483914760751322022883223077450645050829169339513539731001003869401738019763138029608058338414260235518062907233563818453842119359761007567759527004776127562810275569758980705952914495311463990335872373395287428643544111947621578225812248011344581065861638730565133076521734429024908587592505869756996666457961413873674591630112691727183433897691288810835126164602167601880125192537620775806969787609306792928213416972253732926685830492753351958991199967094923331679587811418768398238697586820274225836722115289936670283710898880249091351241508248866511993203053276145892423788351837255114265257218143227364009973842690952071531697951213168847011477398310688562786832555093646204918197524317375394810836761540046592512307771534936939775349001211109446168510553027118913460881196462380062333324929336056914002662580165769281080980032855709258652323272181096331070506765959761309834424324899723655001123098508774874511791566583598680397019857207222334515703966151659732850459338231125331364617546591786793566208971136775292320375974212683582573804842284300395433449355191797549194757893696795805809328707384860935919639595865647653548007985140238730450415576828631681356965663901595037204175219799789895963266994318079145170117466140887218925272036310707337699761532564877212429200396528822608682655776980750748262200399223456013916309370304660566904726939097103728221222107413031099109527465525526454949718848999580216790665334075569962333976009474091678057289281038273258528255934769969515637119587223320757825120914366849275674581938442799174283245930477726247120262869520352985547760534036710193158972436084721925075168816967640746890045410487936521009549966421602347356497151168261602226520105434611989696134585889289605469826719372440353690430244591710591565009697102211441390752260668050024237196101115482235191587692843315573325743500782251682281476089929451418234221454644516858926024035992523076541675268861268177530405076231596299160662616355929559542272670175608397206003900186505955932036263787649330078820266466849796271831097166408681354846280360692132976134210051037945933694200403100965738096606960251946471082026682933782834612656834936852265824566161931400625432553790025244302595971293626987438183180694918146919974756124481651368272215612632722136478871428270088888170509424905405838866881702932243710022502590220384259718975328954671220076450772799373192232480872568442073911836465472469956806604807068919351941495202614261995280139570511149636706190379308917289128623282427789098249380927016873849163648319491660319830536274603144383804892066367997765280108880584043893376173603042713098557586582986272080425416984415491462811717379081447760324778589605398868104105206918929532277726241751773425791167188587456749510045937391636333932773332503153524560455202921413970745371634924812219270067461897182099975101967245616130440736758039675661322049444580331842060342064734512513862778633058642523777848008827563866167981626170355471643774839025031165983772459692057263203286940326084649111676691901902428368725994478341473107804057744907139615383771700716680127451097044455690531939095470809736595137608473550235017555136958260550915561533578135146269669226516215938967852867048822287284591100981943432727927507782505861976632485848323668649539744317612283065754615731657027490101111613105800901686817137796688996713728584868124755465331946028512802607483459402918629048489014126282466356846778057043718779568652180281167666111390625858991359114470633286070154860167122755217158801215123681506392132977183134246424480257355246299461447880243618064019231553706958359485905340723344207099704996286797689257002184557731568471002346903978671326720328142237634927838339706721181711026708772948593918183174835963243167836816458396142069839743978167157802365189975516508206186800192932455723301496686014799491339955917978446536684429892565258677355994693226064905100037728411859837670889276073556483662817041523088581670996200859932615786904985944161181122382123810295369032263055806325455431494324407656529381687953471218671937282257309488006487724646711218275580506543500453243339754875619781787190881826478416636701790283860606779911242143490728478734093458214565416022179772284921383514482988940805443472177278556033023157119172621611921312442728536245453094727371257612717119396274021467422414615044923701219398963722550012081826818949257960749080012918830462096828998092590177263143858785888883976704319964206187055552961958873959503139948459326272376171485148301756446124579938233424534364559859719491451595103161321908888825896422811074497108601165785458231189267859885418300215639502066686132994887864962619402410196886086768558890503441689164779028801340269086237611316641464629130022518151410966047589008921251819931439967380856023053635882872318377264751363462786720528495305282996330455652728922036858571633911167806865328134008833455981363918028388558330295093231541544648448113194195215455688486583202542944307753408301246124010874722787310677231341623201120734478399737412144629223380551481831470890591083882218915736174164851439748218405428689611120291124880104461971015280535867058965987902687740563068971392466572862694668737904778807630352662412307766522816479492447360414930858196861459281393635498518596808960980584954237224024521713289882767989631320778822402231087406146120178496920737037395588034856616769363823839760466807952170110135107229927708536835313689042622614744591299959323366378188346030256793422883840792296341164828586000807515053302051141170361739258033707305435895650426615692214501269590768295061904327262781642604245650084877668274713635765226553229216123238737248230083892871266345093262245299848929706837144072656862238520009426575843347490387931400022731512733983041127591818501859165351609300414652515858731947199926266917673331584833556362774790246662782315045800413631042325414868162537350027589128986004260103322439434110771663202356879212704249256513576841471457846100805888422469193419082523084266239166140233461512837068532712759990514426508838745815854067877995696874100476017606183141256327705827879929863331729788452475524578156209187418111004454627819967529968909978490669053161964073944330344476038728938254070664926529115961577298241090587994037951190740530633703213252215657064655856435146473600280901159734897039979972686761381919681796848935082606864140277730989465651954946553342800893350474733611326300584221198428179209407151825135883334883965777949028798784179952164352117096994333036090389953952151651356931046892620316301261201099973284377485972961759490090836803928317874615895698429024265954164796106870963255367768133253890374452044798471510365878297554974781983023185707839522346027007399459830933203806731439456323525817695103769932537917454450240505992737685687522421851561004412736269171382691704844744108186609524060198502127162342564500670561646901931717284713065513998307738811007529157487875819468597205638391994080420183743959583732872217428487376997880676979862376154355971022089543276500893419778275262337713766004835115776824519831326580594111501121835075710491509958047521960829854775378075354948448374850072293336185491394239931884892302268065875327339750298104169900532736396601480719993966956438328132989670706585995760515793615326950308846234471664891655666954903262136096431628363008287372171887469329036473196585780296824124939985164918471874641701808811690359445898971376557859258091570818301787689313843589771822576962345705296766053351571690584346651214470781225479637183379539832147172618532755771608358703018128121324305585513368938483149342227759090044657984017855141371487344646663804798975379685439222067323337322164037323908519767419863309874754160509039475941000894044534466451670512243964642649201981966395693370153867099957527484002182441096798764459143434376680491982085087309932772395458821568029799765489077012755931946075599346890556082278175682607054502112738898923686519378202085132360781829923751632211839062991780078867454358597459914999217546870095089888236765266485009234558999096051819928481739897979271196286414638998037404778451929704506170717525989278822102050909068199412229893559965841491794414658875033364648842257781069125995578950161781855490063698908108455507029430786464819790151653631100786211882853550380159747249008480971726114369802456993339799320283784695020573663605166542898573456352431351187891100488391250521895787503813772481678956478820418702602531528910171767506054904161232957407188370925030555152081214832197237329596672595888185131740416784429072157457772723795233117937359794555514080362513823640922911646272398388767381546094275797032333602848667642080920175010658276590569472953895897022663814446947579278708836108450575965183858536487571203901915062956868786563016866183153643487307938730104070493843432168012645650037978348810259164246848005271074521521686575580783325663278088559202264635514564165549936059932684502492979494332708732554633368591204011585078358280144745656084995022111284104941282589098794712358048041361951781735750723284809118276127073481856227893333716699626481131688434099656697211236244003310082566056945153274461691724239679716297163784562931744064879844366334754949817367844373165114851674597173363676082089425789287746240049245223710907696921971925986836173425679504161846515302644576593281096276101514971785079961110112467510356341963390175557580059048491755212400997539872577782417192736128502357168813544144435103717741557543972000705323752054175289030030300668278426120629492822411804614458470823564459738368018834260511645328818051272777024826398660019632261474360721977221511772060362958395105514226559656485503303976827895354750663793101570007300127646693748227116185922412825072683974743534678213154120296858215583878033371449871150883303112504043287404223085308317726503951048180198643284176618108217672114865583619799251241311400577762260175685242646143994148343373692812232873538230484867883792077808762480059672293404673485529067695057999472438829073476657985137555814426338035338092751157543389422576973995564597676016106359870803674594631768527434421320349902105525318556204087603596794372728719720165084796647711804716401014862245444316812072821371061295253318181112104660835275147934445866974731436815413284915213393267606137327759326145346546806821126175111053180822006190227330284640482057219322686454558397212589136505193559367054206275535082123056456067617197162648482573496186259462241898769379989584041913092299829864406850322439129745993529970057843551999918889619691952647943491540567955008171048820384474820606936789884581047691715427996611013039183239577993754475807180660926652474051729874836928443048324204289737231958797421405818902576908342486455134619807400275575141004837054461591499822286450768677790602034417656974953786766694087104768163994644183295040019060601073216237256114931368018789088583385165402186524798905774545159487047613517175894755530559356186869708726449079198732262581150609659046029426912473592920980822094317830276528201263674656490554729448692284845187732014413406340903923544181737194556270145307090673437915616301207049731751260897904707593951747870324293719482045053597231106210530788159590305096992155714580233475868024613031878954877817717736877667023107562786171009004198900620420575821871020042213184265831410116273913596722454212472414130321692231142624310809923610282400468941958816459747466846648477000382745513555281773674165466988164002767150318342629398087521479366639326269088527029211272460151010141650675268162495826113693572330423204816542744838548135957687776867520121317077848677832547340160726859151106926767037787847904002949109686319186354693575167795036004863096672775308029626729467426858514249586719534715771125201745247422971755934320017926860659564919727732214885368497107508275780167804902953914438313028767978355893627486427765452476111063217629035060748458525619737046974125650631904384982941047158258747564178520722800306222895380202059529245998768181076504625897331309485794694408877433026700116752535470775628422865169874324202327252650533948962402897688751282109031401390253334253312418005550682455170047244132812602551276199973622834106396507586974167631576396621518578523474237064938326978191566964385822295031675941897627902999257054945862209814583407445868056841973918462339580706595115484000845367226908373552311131905745984913835838231148631203831587585670570474908117210974931732589895438679370549670069041654482976960181717380097243842719181375345726895319816409868596452274536772258972622745252316376787318583142551526576156695538557077276806329562611950664107155545342811286588373577182489542945672949680540378485375018075389604457645434772204281386552518827910400890515462043312281986219933251519867614946477177700766745672128046005832888804051990289117727576157546750107315098467293427281310745708028792981771953369188908958463298443349560223359162228208379470317660033833350915336639213976319343872265377637645344214991243982430741463839810853349685793903700252177872749003007052720289193090575215494165814707463839260598029890621746936260350836483638471070454658594197523015796044960599028581025744515786478776854188405229028625341096502244204786933652158780042301453368904196543318382703321001129344198538787287584401729890925011638563641322081439247341279764500591918327380604916587710109067872592680975326469665360604048522151799603504014902556905375241562132116656287605765088085587844916964962859117054473514737908605978045277950366838128769750999207056866152746403024799898752844502777469534092810051616195742569892039326984175225004243364658704843828534463947985282377691062363717299753232850776588873236801210526370545362975258905477314122667776681202472900768358581954036793264601840362116107828143698141655688425612415168889593365747507878053420881851879059124336574624807672446633864501365225006939633384839831418422150634361052433499121929114019107247887813861080954684787083198007187935802825433835022464448210579174732395294707591343595471910736057414076622049703205996249160108269118876275384531555835315484454860670707151592763502729072700601499115308208738259669604518381984607629726027086834154279229468464699371198312924477137994706980365619363005882253482276426565991960415483559867950072005566776712969901976761236048653768202480940250162778761838736669003911485917608423397348814005487246230692822374388113071991818147793708255661816631133697216605888163625581172868975309146680162944798292634127365264448324525557253905651156807317474793929018631085669825989659483773884465963136544457011802584388645116664586140676170864855452142459523128659774757856688219822353043329074933808031479941545419092604750032365707985571852871688529620387552759340362547217920811756622874682265895876330750228237815223473654235752282245951790497323431376460439036960821650931927526883509897126344457358247532066459705512119488624295951377056071372597391733936300185749030341556884930498484990877840962349964141088866788528920930314698359059608488356200573001583765191517356065506603780085354542165665425631486256275120219363790809797854276550937466633304421051377856674302132609878901866426783793944825853203907509926607211361072506158639294225656787776454328095107045991793392886662014508490514664412807649096139636187697794631742193717691884745780346257077205246614136305880112005427675810845371961476254408761739184446806055244612833696712374961816133950660999497767245185872504468548836070188377884138850166611872461014918727466160761549567954863122986398845089911826382973071190654723099101129540685769087345926661074231649389683543558200448165798820018905800643422612965581912048213434829409332560644159662014623291339163754688959213177302934317569130038476807088514795861890833016947777781460689599035609724928967357114699751644936321846518706122064205191444738898896063567913163932352971872330209979863693155504891921308145016160266977153833979311559432691475279716326812110477189213818024173325509697382368036594946207041055565096700271001315347541207164259593738544232311568213579447597376674477730647944918985996165297277322870841117972808294826801333001660538770679404596645848232788354800466660252870803605453699159915468122740496470609983714165048304598045170348780509381790611807455384061804992302408638243609798085676599391604797709269264281715869286497057459634240106907017906531518065390432747102027795703491552486738130836585234846904035883015858905210839490520817294716817327159083029644770196559086504302656428086031599597315901675442233053658409567096056601711755040240471365437071558926185577766423450340388486361610506847357094758077300551979408413217923083459586467183980402157758348692143670164877296356863213179468098094381623499854088851378070670919585586215873967905943291308975402179198248904733951164307281789086255037942165607000644256579640050232551845996164497803583323998284720388766542275957292704176417615424466977590261331049227121435918844673980744503135739482311998204117861425950931312890526724731215945836792542378700749692130429529280225789813189454853273032726561757176223267968664562147767453387715988565257815774140842848014933535672240102339589983556481128845881487546745759102801938303312431791954848920017551223389286856983691634615299176470702064242502656331957096211014346797404543213770464005779788966537196022388425977497615908369777708665785082191414242069413787948019449173447257430333677979515557748479652795739287040038375188013416337924862990739385364690792751802503138330583072334680558699621238592724940678043835291589836234952798727969102864355117207905154160407668413562090637420289728754853518172577093285519456562974064708563211299874614891390693576480164471005211179772771168784300977931465387319308650013243884676359200470933820826215069624785970609640951036927171961292874904460624869180812099811880116456729364254327668248632590195809710396738116334224696522001813594224226919298767637330284012958901555013541456852772703169754366893347090759634006754136888513911354023671945058109453353112052847891167720149114923779041668770693802604807687561800856462504742458865120026230050209418052878563076001764626291196824690313843166234568266784604018430702002480020801911918401000899423113079482353546604095016414060681308807466157449058145996738231237654571983591971775231603652072141989625348525217344267116114967945626655308634064498150250327978715233942053316604406014133346262503855568768280722176285976558251316801590857178942051335470872818169614953541105834917783913321660368122594573459318226978873512018003950595674618930310791042472204409727320738748252625504363520230013068861878325557071667549727859005591865814166488144242458740940462423664444579293886073711008475351077402779732290184189576371802899099568171800591429544100448290139903234544251338799038306966622700661911131595785666529407145137477022441201485774909887263254257885250772340958737402980008480517635929714403209972190095255454014997784406611820477792864566913406385041423369913772659457136487817728912274721577418567274082038099775035346619550012668307180890476268636774576264948541600846300183019717627500415445937217161569191988986644779073873219829356995812611548100758708604526909927029757008411067819006818659120217875043514007883589905444773461930793225826957941681730169804691645289032884732175881071633386808658939993877346013614326195673380002048407945480312262345722911224303506383660883697724506055266182889082074937155914948373279601327405217096212974195631493600204434840259442026997792753081530104889687286758411731195945469173254348781985056347044626671803790540167767552604781577765306429059187570999627281944191395106644510809566856445657016497730702003099958532692758218272418545155340767241473549842473584130315748230494298384383586422695147746641885361893243273499033848126297541117331011331685714213792421351056769750532356610687021659988649352993323023667479537253919419275921313938315642792497565040647478756082062017110440592816751637824951752668494516183005361394180173330587898493726958304392390695610659616712354775140649308608192976816048279817244276549898404983512609903715813021845381589617589994235671836695683761510665976796725683311648013750557584024202723278300779875123065358294038834996125667979204632831823811860961067344468004706887701677141369724377305868770450387348907541217904581506233034318187726398565326725686618250071861275959116643129070920238110639487278245948044983753908617996071618384756382602656872756036811226621453123961470761229836339527882221247377494425480915034166075323590997617135545510129944947963876692586370693449895385333867301679323402738410083668205539954227939636351691614717624099006825864730534832282136951008918150593875921679951726247198672013198117067768701767843969894144432403739834313017335607835621902943812847191131839598138497020251900812423469208782097742394888498838733102641638832967537802192511446964341631141278645149686482781412493868568695474648143535976551318537362835723120541173317610515244231324016884309052218070426381771394231940362357637389465939000261958425254207099024608806435502719607398902605057375273992130104397206924527544524123795961029807360821368651205092905346483499604843953529699492394197210077181379237377727052428089228168979846951491708806136266659378368288983799250451521624269897760842202818094994095858075057660954450289262210579479434725762082938710975695340834105211969616406073466163793437010853046623755578951109347815257741907381169965664332820901578216524821741741487962988774617525035874751864163061227716985616211523420787434608644206273244147058586594064774805242879220672143301292232722500730190374348717348572708296609401999434998626390211468231582061977242675998792727851487864774601550966204948197117966754399133034690952116043897875031373543211807439726888004618992302604154571281116936092387397574573578163447129016925627824877100021338555583372739972711639495542419967970483395410162871055380491270131557938705268606335310416064283338540849442248104430076412199581341866658927489663954055238314419911405427306879552183270734926089239317070869422086591250494213759641195624907697493583576036465135869986589448484272926088593383800613505077668499309115167496244541593382408584775512042358894980955680997196297895497948496844226831184177018387130423990387823057349527500477344889075432000343934430251486384005847392250324260852263185604336038407440409010322930067347426442973504408515320224742455035063244129749856039604011970375849368394935764920144454165844849886307084066193456307465435259015038679965447061258507482332153227835455201000387615750962619273279944060933278192379867615698108277448166546322426548340077503549381798783905425597579844604202592397816380371762298564816225344203513939750164866483003998546545151147411304515625264421818152445221873448635172841356418907162730582021016226529217960697373062020582009324294783909801089583179150634528243917449262653949608006208440129934012209399337909173731678514198681613644138733635501484203004813515006073969196595539068549333870814482353135613769592851520322050867420079680416583190722138290251777287121486688386210977693078005270269506064924657492349503541372592705773688867412492855266245650258822777845748017132085960237151169877308030873110611069086959659507747021130582642924345835934325260187570842101599966893218822192526169253490060646555952305674523176319747533776260990269375071185893481521561576124860864898541949695083503517098600200924638129032314861694870184929933799571939506469797337259836456839721433822106112548716604092050535641270951558197998805061724373136722374669709128208166532861321693021843538478452317168025516077527757553779769110829470771006313179147028450294032047899715451473318454609687736219790105977968757750375290765656632440889834986711846486484185808140440894358294416105841242324568822204380686293543575846265777373157784223634043181162338673874757876528936525705574991488085017504360688977377354718769143431152989819154830605365146490565045590819005256273686834820120273931706930551413666185295050811735871383994589808715784059587074439818291178965201794360848487188586167120213444814396212450719932517814714570731614637194112777189759935135212655649815397620844332052906099987599829065770271033628559232064191371676628526471663133791746704055082215881723234723128631749440600831944989563725182624447897796041107428366799207327892834671195966084755059062337750962652356251400554920022888460354518611945823541571212756348579740159397101435956698345329894613963663285429357276665788980125924132106801481138558993128312134010074247713147361253268046308084871605133703146048601097509280554835136724965329037285985996335437078546068623308431353702616217672668065725799540379743170255656660612172345910273747442803606763432620792796396759978605324378851612042181326533580804544255892315610937903435445794858920579216110135375126546021903292422985080504558780315869063955072445246690893349268869186614944172818056064531396685403219725686970123247086038364628092695068263343430094656587610431743138634074346937167365028962951934961416707245253299453200519790456598397738232961025788727887527800506834565705785294297591826969827476198544357992017440597242271693254310836648388414015227386954373908417555021297246025806374560650367855187223375972903542801513459450651850708919623496255994241336415478729676764869331569392210309807806944706274955490413128746755333612441466934444422661031979762436174080487567682246784949631536694788114436317831421176264883210248163285034526828904640459555425673427161349853949616354841558860612148140988303347984127280479120718900366410257933036700950648420408195507670095099774966910431833139109877232108058661388894774705324559593609357691241163131913494986791239637515644862058880153551324051392475309818812069153130980673545034321943756622656787299932826785901589451183673068147195257399670279180746566938384103498813831495605677949986593765980914441194237361683072536726132312906483651648291983420384616871290842863048108989201530960407603765769917973463944504296049047540553953537491247519301139433756843646526798302647249308582982429317652497298146528730573922478168352242115948087192599919941999852530856269668449651428770913269105687953820961819539155976546455841558132059408128974509723367893985477678010491559980021893794218000304722807783180640059860630171950246204890559708758284350793303608581846523338910049499881266961326593185779640551538199225289505020409551391556088324862662327732637353292728359904027866851831903343091672040301392958661633087079813716543770901445365920682255518139633203824116630452977649779701715073210105539705442774439744799823873706248270569549661895470649918901997791940048650155492932404463493772567229407443826044199952832594341283389057741623402233719264854876015899595837251683443970913496200376195419877202340975833129255565323276132519185644955943337519576387039241212326201446092486774796657471851292287392858905924101436216683779090271475017014384308010015556416357171515150299525250709907003163119741453843897512624355252796304455307787408353307942763327365307526002927941344036623775615168383291461007188803118615941485688054688393860768857199813669015619312172358914910164702064850083632680666527151660616504036157700537725208274885750644577808344362494308013451591492907423108579543493400381592097212517040114418157958399665849393217271693995590428190666742965404219067976759618173862566461272435143184318621038136857563781748241943534107090127531274432231365602557040540836628429123365495893239284092107620655201869861610096320837695601483190398719077500927552161736811188498748310210523234900336021866574632381676042274970394894748367880956460942431223638074082127382927855245644631033227861956244258897665146094148751158062607484099515974533326814178095700271913772192476680810267015152647019396638271030649456000672507094370321712593736922163201364183628896148144980818729636899690921079084592099057068236598929888793098909621589713663981712183834427679276400444921860243517968695942122671351783080988302456736903618806919766142905943038673822425309502653874613438202782813126301307792011274299124204757394816482559214167690530539738715157028896897931004335766020074511324076766282027883404813720464373895665345462754098018180370656520836879020020597746074649802217913795127723403986675457469881794144873293951957746579540064792624654206581816170709738178431281181512022546143745888041420614043659783375600822209257105105919027335492448088262331199634801241270553716413793976194691226234029381586924941203063988650151019589904567926051267827230389377636076308907022331935304945377860525714870394017302516382867890641000478617948523056203898490051059819151836716075408112852293534636542488748353963687171836576623615949098516532143383193979702272735583993819424193999244452852767278503104957867163717295203234642757011956766946139118537464617785425299494467697490568712644297853160203368635260685121564810586077886994061498909477734001573897734216044011002637329747591960076342195387814894606744473545438118928104215623066723761360147723595739398643936826062048825326222048666062799369015354524180163550300008601323286756529725471455937196741836072601495789674668337284892424010343423041876953207909162081922267477591913449700059643699531792652500015063954938997822638572607744759955160321982215566044066711146472943373363126331464185158070507628856459184881454318976929776615962393214598603423155137824103349104625228186834455115637044750314786400367416426003202178586016805951377269913743186351113074502926069446907049729863749891509240833691772202721785249345939579528871040789260326489151351672493855953409454834014614463491552488606830360344552703600054930868991417429788155291978239926679633312211091399077230888305790279276045491593788083691600416509240299895204070258051762470994178557709373336603853483351022466798466076411381208777832967377571209886054535669767358863454805369596287485734075560955845623741602326933975206789453025385908914533209646702152866351128064911720450788074026802310089492640500430546542126833509368091290459596149853433192186182807635288802031767068951091625972845898916175806867413443194974718912420270748003171391019918326936991443935399500277331275149059911401455932926525852203481045260823120681289286293287885693687630625807442502110249843715390239466874663829701454695900593528580740587311343058835218843252233806757162624445547654418900660675891078763206822992033687516792068538619447148172797433449071211255594080222724659573806015212278469094042700931381233173091154960173607008596741676391264729733423640530654821681210211072140018519244970490639472246348503351844097068988708805204234153948720648530640686867111544493783065853737849948060126234946769372406878607618916127884525461060409188383039993097464883169856853271002117887685890654148344677920245302354779406099862406826468146360706662066202542391641093834650226956601923493926914281940885132623767946634152611247339092037476887522896392421232609136666533309506842710347234741152254935327969444769489004298768707857852334951632350579602566742531411547952732088468532145702573613994853414845466775660039802335669094167658977574851630438175873437971695726918343160641708942269135047681170576152703837418749035855099552936337541745940421992294605277462155702988998611707999580927242757400059975835767231907456478317210453109614079801161324670001334972220941812635827506864986249145016662572115701961564043753162797044886857240946294063684356832828295719469550099339671147270033438926356534299367066320092739915584852993920261915230104509181607993310749782226434101181388606327220526024542242549348322800915006558381538762519564437681256971580315611207064299366713888688312131531091668229387643788088197919245733260363819417854326285865392863885351741641308582477754576579381225356466002872535158330476345157638335989343220214831375107814447048947654783832930558904359214913086449098837369942916984059321011292466785378192421532725335570672637249758200024332953470504186807670598000170967336689450699694697506966346496409005607331129169341088554769631271326322588607916393430879069653191191305497946795323135611171168765620277515505069150505541438543993320820043957705432321721072860066294776130619524762573360694467060375794942064166938804576538953682140681872154211265047518636570418408280729643271077965350357796164859686802428681736369306782355562694688845876489034357784658619409095376253936664630342310787316846973426899815202462935484037181962786425319144128360391577055635563678945809861565555221061667196277429079527183670668404836401696381769043579828029376900092847883683984910263674812569297299794030457138576625271035750981814380496333522181296143411198194029461763702587480524791687250057295637575324120765265869868818706039352728137853047713571201779908022934803029032097513136862757365227517615704436566872327094363425868138034268890174415697089607324842654974659290301495364089368181038957223833392981711102121212008046040647156745714683849707776197991351380005395231061259366048909687933787776082799706862285723948614303782776947940907025872550777879860281158523677482782199217422455013995490456432922028002085911148003982981344335890164015317239850961639309385086149537848514031560144952193013025819756770024316693664597169473587960519176785458255774247474926144905822203958760414244436807240645686101735042295700718787826701399212577655299236230391418030993877745492562813042409017569826970115314583239070517472451739087010236039746444775043798128829669603478861458762336757145473287994079747229482314252587283436643356430872612471909350561440851419410991562816078612894020415862273380737592599063464862970939192556990187337068443106816705539198947719103206417071851542832196244669000093362920319916782006227236430667505089300891172543339913593880707203538279844349778494609357519737869227113163677413746804813397112775570770471007139928121334451572932282746467740194059346783295909570799750202858628035746655454586837494330104588242239912699507419057632885823916051511723427095857302905019169990243684414711656949926616136387976866750705173468676875263739413626401762874160439755616915621926529145205260979605407748141928691619370289411090090444381356567395548031624375637338539404858472664105270418334365558639341700552745833952488188730132561975911773710194858683596654398989008218060900902801576079257956508840639614454349958446754209608793360275293429592123412125024109386150909966849945404334746747950898063152068435681580367610591537381777156741221155455345566804726814839474730747670144014796382892288378065522040868992175032354868668718233924335169397196859284003707055501519683137780044228476365934983479036764100541138829510318688927628076041482816495065745810300770782369813009637718202617617543623110931468422622492418328544087767011481727594860827561293580246816689328278641220614739766253043214347444207102764546428437241227558538421901468619832854998318972108803430055410784460148509608877282617669432549436326617626328059900815269976508370837532712502882442538177917844739189843090136933487639787301537400231393456753138126083554117482846608262982690855186471294471163702717406733984529738446411595752758061433548350867508317811079322714804831107153926149414269302714071138859576194087462696372677163963403923597395402486977870957619546641300195795272626133605138051855178446117540951383360301313137851969035468808209264859033545860648186546719263275766442317311951942678003829042696943283453745024416432090775784892892477197024176037895748038753861269986900196996225887220904980149368868093738298295477059780101405101309491395038246146742003115546113070768112117676798989203640226167700412740419278037684351613196595125159031381275472999491199261879120504799584376718892834201533181139292538793264943394142244725375473593184263143179591837862342996674906019636268816696650354412015241886197879300364590623830282636168741854181454724070619250285796930143170866274375493721182328067290337171633549049499000277124539301990761133278620109400833130781651636298137799056770794671817044034613024551312697850414461514187090276987604158016108226523635922301241389171624882458702113934851716320733335233290608402283397638756921012309588313746144514515814871406770731468811777287326940613929090444911545583700899137031672640823221368796195712798837608411443721930170094948765380820020993016092668872848718544377152988094575131843072399919382663181788806636073330201557587845472127783248231374964965218752229724716745504020070379108148694713482706452773215978042618888188917283754454892005866407622868926828343440438187090224040548802353206816017883185802850182180432032253023009643436161205933483327523458141536834325439732516756035839731790998652816835332278836327810205565597216188304187650506107139058683351702549942847117498386721074293757595202653805888988525617702755971912274123508366150970071217616601372264892584709346775289758378649075584129391631216619537130423407773715855303733314993094662882307138745766401290740846458239759043259021598239646623952708530871675289061134977167606762975931373164899726594525294698999527966418442211473705992326129776084319011516632705622448740750877476738824062237654377026278092313992204394330236226485867577205189813012072478847330848366267213808791521706243334158245972088834433808213454411801113133359484859513632025997875191020737930759666645837355949668209659559551300303804671441766851277533607496127626364647379256504716376312664668679295744287709543249352883624942880155901367369932660572502933885044427199516773466875401620224223456652986750152222955128631648838068123462338869857355613455922377720077400381392107219213182265618038370111508090622688788669742452398478595836774623617866853358898409455450114880277171788857011010183925157801091734662482119043201070470229681793680289137037006399393903432659014008484931832786857124632432258971872361291932867248313503032828876747631531748757543160794218942550159810902462111614974968199218179219036017242856737087906712504621515484804895406450510591612593260204782684357018878453075234961479250608110178928761913695448346910828540651679012143501526928556899878435818231580459271381432923514416194721767092347543945137382910956000706777981222356686829875234370786124225348744837195722119732297242712437671158820134310780588374062427552490662676510044013684636951179975753211515430074860923601602654625888941612401017690965600817692067622291832132690595115008043675511803980481560085480983409329878336056396119143272039794457943385135551106032308010832236215175202637096987536087964147185456986756557542805949842273624150421895312409440774461852630743735535702358040746202916779677506819404307550817365256590342616298360336219211982238029286140007852276445408974396281948196395878534097345954506911013627536282742244053121375242122011956078313256300262915206161397417876272823026680460302962542828356776575257152488314609929434334068950760494408307732710090356778415968762428590654607356131446888473984737650281400966689018424623925613634045077784646053301038925036872771626038108443168066986532961051288835685720122780776497083883851026974709592809649125246240600236295330894181214624555058332512107467711966112347279723031378320494177774669845089517206547710441504978598941432745144858170740281304442706644798673605447747379886428460295930706341534926641936140197975656078988015535025298027092445817298849494280171285176300225486401866039058550484801361298438535452047001651239732626955205589211266327330344675332324947470283614791581586946394627471903651495470208256844173253832206275736304738905049442088519989028647478275487835107344075127783028455397898433278021933234057429450869002529289210684755417869354828891969129713803651222933692697605062722328505986424428008924188092984460296373772518246183956949045815119742883022538309129924700633861485259121846458141803276474527930951588787787489583667890292902844795364862434016799060947865334206415963721166076636570528202130265585688847673798105638327972705363306696865462381227990479397270563466568452699692868171300782920933903844119412426091361608653022842100572900183957797437628519047321103184222002331096412606454398763941398940315584633095112689495439359025656340999084519719067931989512709993864858550828384636200145197068808802733824441603534081800037921594459243882467005813614093951196804854804432355037810579118029819935915419811490471986281383946390856223216018173994179110641975099337875047851631202409832339391218926637412295400932215903617576132772394473443945793221057500665766674929747103924204283384282981644120612117708031544500647883211907195944611980255732071648413596636304367069656568650734022386971003376153366048423403330178014429707876982152521518444443008576211258964794772991537831070382886565726115594897213056968672185754073506069618997093637733302920166651173448913953305162525647799965060896620546594858189879354184076662550067277270711028749722170885295581039884033360894761376000165492170136129896651934120831768488923998613735980452560444868970380363700272311354891140742732858951369391405086541236963205491605859942206277896306963852253890692554880849683469075037118683126085189250547369521016991124023189573163322370008043728311288532638354624264595231043554200538900319118372292649244434658224584590189581293153151092550471065785056768740014766115098459435347250717175877935954923741550944284716457856743241886283867980529301452396288691370844504757615751670221467824603212158314842134599771869558443767200454344232317156402606449235244418391128604352039552333050841626438957144140949668799174834738032962265731229477302081034418461023514638777762039005854986143190460791923598772056938622122962581738625693455512539091793843020354961092205878428363763271810037711514252393064180299934197397184889972985922312162391795112203590698525218205739667084313589227012965727596515294906896165352533298152774922680534030214667329640336959418132899795120137918449463468689979155345997667322380697405309174522805504329632598509503497040856847323426881653178578806660171585208260495852825347971504743288040110970192311197515068137962435304736319098011244488236927018537381777633252592012658270513030949077760198868072425578402690114526506584191806687863568151803716788401113742191335585342802499867870917007979619611195870977759554344078609336202224722634258834659601810144740638342621335948054174285731704311496194723150450488729923005244430187513137051574454673467835122772665945700477153774576073054959249557715663203363452974996887000774889330860814054878775257240592853536082892046209082537867071166584561802089493836201193513756391526099102446001082635588066354368843941412043532107577224433686310631615729934131503488655754225861315941302445616544740447448443846899800008615521417299180170743106065835821162213342107411935276286572925837357511529824682250243031404269033483007170002998128764274019382247995157885639333134367556110024125665738855272037027376010641173678039029354556958748526245065968639120782815516399709761955594782566698948587443650404129641583444774393391604415929050635481440733147399840528783410106516456456743213022244870782476062046369517815156242919111538553966364362022339602125176634590362134164082689813109963565141408572269962468905865205212853427779796249247434195031877356268387667657517690337611734562050753896163061990128451198124103937111962254739623908735385451457321866402265653118145240043472115377414903114458506644098714259261574855250210121464524630576690715812346712682105253028675758296094522833456298079644365505362043720168591887184431169310449054773026624819140063325264213398820713637419908007319028001497524501892705037868980483611187377261099085171739757990321254417072696482292542677110609161398657397942196555639182576396648716557532982990595353486738640837772555326068903778719144400979511165375474296729479714816962649391292109667364671278637921135321832711682956994948916344560854192744311239671277961469439452888086809548912975414417746448144643652483196926504719080339435977710054251500112712771480606979423112277937007467333090434930707403408470127771662262386272559612370250351965493910020490801939284093452566760422938818545571980561656140503590952789012363455871639473679700227597817534151586845420679635030183287505942497649972967881180775954263161159419239853645737089579105665873772442536784289783937537652322830552837711120307144074093343663273530481702809943430303421838837012175554636255506617956860280714904213067209611935768956856330785160894904112466804157312727009224692817146585027409451537469815907587318748806350423839980650356440223326114404695130552850122135632794603024101440661871143842970476734027225170998708872377828879702739930891936438156851633196585760829626968953970520632229955041902161685360543214952011983457192843839389216335287472473060064212681125081545026038598397813545989130588512418449104059624850355974726874974499908470302052189229214204744284232649613161973768088670560851031050559677307936993818097589401255448918679678151415180884052254688349305288535577384042726467656837445323664973711160584040785453058857152936179505495232097287531463705767947758766440394268257652646157436777760844567316283385938816533626385392888729131395868927478697660363114407730248264250488736057958003780396740904095161258689304665340475839094600736997910940830415314381686479518439974925120151970880895287164227591213200638459960863026439390102772676808189154471814382924179758857189520081546231476490842100785412451672115082209389229627547837412148378425372548350809499784736255856750503146311673124299609008649714023824183629054894883313763914979917419147041226644100008355893505080249549493257831181248521612302749432845781648446380037080169724695333625772401217973737606099950196068531407713528958931381172513602173067922235738541979424105144008807574201892180073297549649204968828879358441432123784589791485535566264907311324027806329379025817933604065180802939176750775298185677427546348360939755601525558106779679024673571567937923888464397582264618033617387994274662755011202268389242975888799330189687380158009491133509385663483731795219819055190879905654266861968806273855068447032695840380014541540826282864968024509291181185801304251810722520336763088017985485178710548935181358800975755993500743001040483442051135783688358283879398252444199337698990823885680949393467277664104682312725329689166260417860426109560985530693566039468067273496038883453602192612321333799400859946151360560642537905444275506020366729072939002603526794137416663081911027741661403002223530820374790987353967133779746815288564633549314015907025357127821066580066228039921902968273410706513528781861940050429580163252966938265685722117077814602239646826248142613291674936426470174919507047267835440947573174037459680050850400893464321558129702856730178962217555281519202839291905220075151045752029738001954588885031858713012641484266093546278015631441247946939652554958717837389189788131742752481459059060436357828968646922738088533278348113216246748932977775505089263957343711352343624611380989504918309874132175115711091977605951595750758026060064864237794465321907669971502162924826303453376173595554233970775842461206199180307663038995704497153394032592211154461000596988569051949298620672739145210683203270851505493991999503188610030110140383340146633920939396026409251181011620912934076447958775274581833910226354265811755872582078791519321501623443869126885415056872921557716352490394245171861414932835513426785042888416599163927257039534167022803726483871673003018595469721012579150791149191827455028549902729709537066925213387010553163397120281032056422368860681464870911167493524677833012147253765669115609862808312422220790029140279570601196484528025576371635670748160504323804279597048794724486009363480988293046231054545998320150763217321313759059754615886643665516002318616970447781587224286571514599776194860864308564956259744508304185884029129682707952827386910686172296361560629945300636485600240714458694377422552382646921983739612610413990830888570203372613225052605038717447802730650537218660071585741020323502209406820485059189116172064927322463625822712282747688170421734822579993559558725194078727058919319067720908082225049738336524424582562541643880700673636571079189517321153063817044426707089966658320834583400785640747163063023661777439261586216036192787333435515262526859042142242436678044995027756066909646834014737175814755842535732778211546839804471827024748644209254372395992272341574235934193182601108807423944173194727280458790189172695113277648261474890616388063266033065061614947326833028343967146881452994582540899194647144742652445467564319954467232512706922549318717769975367310249361421118618032451639946595674454610387454770556381557796962584647426814944734890099313408542948952897436058117490961980763709475810512629710935292711159834988993422280227412006189327876908202968053137522742032345146836247046210924408486870336048408863538019727437182342781691257122044287845870049049291869822537015698159350339240071767615096317942189399510510761258904986259243319371834753891597446308300131319368356628853156693364575761672455461172369232994201774242505680247768302913130526628044225064291973846040571986605468495885360829806241186443810268003975022984679362686644419093413121011518156354127165300936963092392438413643567282231260464189552869836129891535077971442313781477241705078714362967321858874189630894080267654639817163760186090918176677496934538572361021120175339714437977086343346167915105070944728700054740133004659412192022210336140363586493504530346577055301657725803782202476820925095096157405643287845187283526997233964003225382152991267318720883937685484044520862936499869354470831947968887607231947072270440137724713609792455652800164798010252589639791514545375581102130145545793648901008575058618317899451038009326499296030174613992047979796163630278587502348880450117415974439840299504683549018776532759026081480628476204519374329330372854121356372985227152774916815097122541724879076229876011698464677090785130854866582527203154854645791150770974129071056272992118544412756460219897696810066572952601584802265545099153965955023928934292217480270302265801456766280644200739888711921154200856992517852908012521491972564999520338359680525028702453514194491764463649766589218449415289578351848424431680649314669181540270985139246786495009072336251424943245964753430759749447600997714511543208804216427496996805281199232819238433366578617589928051270334293710493208193864555275017502756019139797179906043562586674276783328969781171411904699282739311660017283401030037568350957933573190654921955238039150149570153167454659414952573594671596231422359732963891940050237344323772320916370671074340004176469167635805203953876047236327406627073732527649146774814231415093786750023931891632485658745538462903891649279630546718680531271178692945457013331008035546695621282379716632983412092639389787842344849933940746723186454176035665581703359111089297631675075185716995426030730138008248313994299565539815768029983659884933992321968927533490065177729755665832803767854400987158373809336099636517846761756377981179218055896247998039129863796026570142349128753387118718849900661323547309792604088191251471836706541277546925824109370568592701071548631186740440615253659554756890774689945786050126806235946302269119876724894734255177273826116012907381568030081288539752606426183419525477744280269495546865815738192604488696489947666430908657425620235791801808264916806583899055252485548331066001483725811857771380194734263236390718160820437454789965322242185191028852519724581966254655492205377587934154017782500116643963626059355272505311555072562294489627478387217011188851482677627943874057793200678123537271116647143404919506052973129434432525650675638148717992036293106917429067966907812342397722690927112620980570916769560858221346290313933627574280335180582345995201256329602495081933349479599010610560414867651128636550404158230899467012600889303316645273918531355104748589348906196438771684598310286760016835641628487016831952001383184913820858370502909887311520510892671593948321531628114802461487027617713225595881018870859277756520888614965130750425486292449865926733002890590247684047398565059375880720673034605298191155564286016557866354900725422804471788277532797777656216279368564338176822608946734668196102487364863504837940284664898874289637154787724531802724980024045846685249258992174854266277400830717025138149066244913294834300381017690850237269149689194519971846555608751097450694480830667274717172825482877783910325900924919634637687860382390804809347819268606715676812824876078878998654032277737310698765099584245340129555330377738848111926273683081205374570577341890018471137766487302784269634456447901219180260033823697952954174163791326229898286597244739409419806170198223136729865279808001238933120352583969482237520964060056880544492210136093669464532952936585401241480482205861003365401758997764854985051157613188074824654950983955158663226811601808497765578112813192127095721786697737234150033131412880328275796777395134797030628985854655831021632487398137191339492018391564244923029673019905370265686270662484357080373742551539751425260451493940402212896419971540374196546147841410826700482101093859405516710411700696445142203291813165205116471607396440728218430425513892388410774048298298150755579541358074370448682456688599312318984107884039729564800883679012753898403080634077049073159064222170677468798459866170470251425862241344784443937702133307496448999014235445425154646397521002270814156260499307579028283913273945305893389286607007044896926879536560926585265283256900055788429976515015047999270406586590061815617495575063282394755700562546004262675815006507380023460222426434096915382019126914361801911008314381506439505942779749956710843846312723064428908476423408112085704521442214409955871144276929374643953720553076734506184720084181372793827611043870462055382105532720868199896604604561381649578136622295410898065112590035008350232352987628246669025500244450751195056225813268662493256239265313604491569775453274915585507208268317975346217594546831029490123021857455474714426907306090646904757245188662993735496973285555428099777203371763291633463824560824189126621840731150859261214617781501899960641835679999320399407315554230230062616384543875262800982121583320839316981889533237267242793633304472591827389676840881505973867586030477326313622199962729243560414444274507115947673867853444207309424075705843246865538041333337432231751111843495011676773110723068238960966536192785499783469148867765446576947608947283914874720877548715631831545252099944499731300335178996910880785172274417219249628334395805803569639747853243657035750695580373288305297600780211408358717892958442905557414666414221458847589739473674953854241665644363377201677058933183612254827498241438622041103743485830194491423101669814718634333827155794929903282390474908756466835474066465040348094936474391461989657294000063269713833553498244619516316097431074940434405226802601602890995252518168158398266815624497421051878645539774111176798891116508506057668151394654151848152369900176581729418200344639386030091879936630276562899391037327074138792412458148518649333593925168989909237979411939624555234939223627025836683522068096729973119813221904427790288915694098783245456713321057406296763160291556907676829336535673520112059514874839916435195868777091189969628241545993410145597804870272178164182341489611815529304700777164092528012130178989867194300002442911437647578987259417036466986248060831237102527174836876901467846858061200336656538206403458671620930796820086421437852142720044530309013977754457608205662929809678116833312627532262336583258480990574283843285587429949236616466900745041865906792617952139932719382745156275618302804275014730362437499390394984587322530048882587154099192853465277829085257256904348892774788836375347672174082809174284132950761480004482982981361086905751063092558066036289629050105212409337476391836335235222445000528580693934318505140285076161276996983770485131340144122475744407184077899864133214336192253445944734362244302707684576056698959470437118718953708177893554262323969625770699793026580604628407322346296617155593573640679619905161295107863585863584325821987584310491000604352444324197272133913900497629226748372834034240620363239233345341224870399079974249661023966524338030107895232909669122821701814466747799481714429926407991642397463030737413781774370763281783557534017144041812456441467764483137447369374892144700915740983127027891096577504803176995592644213096759318706445649285381612930546215885320853039183961006081914904450935525178344612540687383997558100419868375818186956838999684299625249751617803483577444186335799683995668140371424175491220836045068563224581256078243976354629291193164039428480556193005986804937939739291538258448706103118870231429717480270380966918223290657936621471805619926086238765018894757649264969913955332420013684295610817750040541200995072057318790060084232354573062602442141466910555306707367108096090979774456156478805917873834844225636963110747506420077079396987408873735865415891109324448395573462183323516076602234750193898426930371665285802687156426743600215968598057737533254740458033746478771980388428398124797024216235151295395024454365857074053436288701540876520275264847376530861678138502329784009290820445106740963275901844147207763057411424502026774555640670869871311628256964762586905823303675386614223736290281807846786951689095379246724359095344570869386388313673500913501917900794944073071482680366039108591154301130569654766110166488959023094749427571617020054630249917634288538996591223680407546138969909547173368556859687011481815322320068096056626355989033048930470110621629379573998815849816507191634962906907481111086937663671329369763027901482311978263878760321500315539923583014699925399839204192814442960907634673061514850700012613172702547265182282794484219977001850403257192178767012786123019328080912003353657926873276880999382267688112024151405460140668521850870503868962335284912199572676297822813830376410295094707395900827904386893831384484471913013299937082638628980225580266473912432573379769156478668730117016985522783701241256242637839736655356902878847153169058860357082007140275345803392631086645192105266248246857616611137444035492132993489396999660183190551442107946343873720689518310816993769816815469145631765591632734187800531832642734915204720183174947435748048914524338249624788982423151344183603696070534659569554641817986936160227138994865605996814228589733704796561204844025947369122908918659423635524204899828236692381528536723554607282131995814202809303248340581498429817649909206627787395340146907915344818206867533854791663621938011142262462993815335100965969992717393242333115944477252831711050778430726283664771813337594036873294095109759952153745304869324237042984240099097565360166498667338887066667091107194639236510954930872531182937497928760112791910012224210439912052480313264267086574572212381404416183237065670050408170852657206864115428109960600072096365136750786785981628348544396815836280543547777240798850063340286479794921744258361176873099600658942012004776788468967880159465279095965085883343576785743866601684606683076083728136209518636016285640335487846733055753662031823076618196358623516405819349883016418691449808589516466298159239743224184747760895881341189446068037225288614617662758293548219062382342079838431116817975090737523958573723994907561977244354827393048510080074282605116810794840214437823849080405290295796999432049743744383298640639046363369295030074165532413304691840283043305996605159238722717061383068853788754863676806746866057293057056696946991505458936133011716092808231364016440578883598142195587407627187977119181862729015684972911824489085592769987887031861336481173646418995415677854231948045843273237054369263409526659876688073832968562337353609661825752177193116919486874098921630896527572461001597335438656127308507030151860967680204031736947070131905833252300720371002612685556892963495584345075601314309393588484722073486065114939425794960231395971258989157928240918126580363058298258527071513108539990524906273195254320757592342617288203002145583719903336525129901451701375777969781303715353467058677468800530511971523149577300378660518272098141935776993629363520325278080720906505570163813715919448227875696152985061652484688482977195574795677252724827666392556149873110674404951127414787265089666423862043635621926161775183092942194164283572488957045778638659242909547432155398319936133357597537971320978772084016499471335023061773598369877648626796301502327186544698317880474083325164875526964285898547117381493880274685642510691890210879202958975817732884215860048108702538261421125289968432811020821930404097899283281100362122120417740764800441251927939551019463319763073836894502003055583531798724089551238111066155228976795606908831956696496591208717021661192468171344300933002068754943549297602014691464453092259668380852495451562522551620858968728912360229719290180927928871699538963007506852072571048123770340408318939452471458168144461876111360082358693552525838481834620679597426925726843365296029818607128706946192403816080924683955107408575020265142180875030402827137747802402268045570580919236875298971727646624620668582130535411108638646391873203375708805699497472679059480647656669211078535458863788996768144048307414864598535587296172563488992139753727288635315095692969737072735373059148305210842902191860938820365729110954313780868970866677748231690679096939185987779602788511448274413027707440185129398211375683855547002285876738858617000940988353075695622611529764875075253864442585986128048367001938610312901809676428756136437979037212751555281368128343631925277600808627197837237129283864446629345151777069576830782194138775929970272686701400057967820967805193403965874287870120785665481911461230422850383758964146105621225148921767240024255238385823517851879527937566194048095267854414564262281419857332155472806826053112763250570330619895880487625908085311935939355863411244013049814096925216931468530547836903769318583943080869708446826350639635935681418713538518902224949337034590499372260148302609646466977769709288216172013445200567911222437962749175434351312710441643960554816436025561489536817013787769132461945687932697482593060578469124228094859669496437429275002311011214010499843732140126012591913492529106693756971514246198584478060815391830849232506871496161425148423193486122110986769541304368699279924374993446782350295743929489399123751022727064552874245281796599111658079267964802998140662704007523992902175875178551766879987678297069222398930898561596088022627598754745911733312120434062650212750314862901285422264647325030280895272337868720526912780706334146308190821597137320888133599565842401548967216951809625084866347188529014643801973157617689385964337515834294413433794485663304448185650378656864739920713344039954308995985242323618806140607208483770956786920357660431111382564144099960045947333282419401040556390751918685236386419367720479821772961054477895323540085630053693495868612655167700810112527375097472187683513831715200703332229433061049565327290602670920569761966260946467940595425838035725281188273827808258921396647087813477590023932748275839552459675567544754870173484042295634566422509987631805958435059763987006092385247516325637553858376518645645283441749521519394636427662562392521258016972608617235488650673302068892815899202489652458253822923833639740982341839894160249175024144666266863429992180489805990038019999919644507954748708465763216730668494810712695494125478312638640203376838574546625629242869633020408355436273336265658377789889337173734244884503068195285558976904770996992942418446631818547776900182092117616607045492866450462116050368493554241603505277906524215083212053699242304235402360631138329269328343750380136665198665145133304488785467660386273377631857861711032871195347970306601910869548277454893545507631664444721392920967751678939869606333018675920497135310012186270029139303542277814883431950076906529648764663459837114116572127530103420915894510603700462871022969119051741536288773911777938771931423473885330997617993192261752002542734566167953642949971936843699544694958378903428905100616305151534402547076330080063865136450339402190457839921055876364478338595284763308552540659361031098137917635891382499084188239410391833808202997381442201205624150986812902683639670390785842351254767080335566964581499551666462827193317308174396655824658524982074463274779135687601264377121680556610588872489728603688297629363081841410733941855730112907392445481752815524511784792873210371858657617656398238353180305496583786676653022987312514734254474383992111141160135789367398649922075006296523140696605459542853942019500052097769179850027416722774206626310965181480337392180948255692508479349353690300515590130354769833886953744452696792741005137763749931465686200541959831890622690669487350835092990258848522461282236251161727823445917177227202105219536364818934511683151708127201114499505053490988759922048307592721378016582503118539152475231999060761324399198173829826331728762013789372432018884321791953604025657882478057518240827778116719457117521239054728620742792065093583935163804966584682592733166849940183921240700604841261213438061791984795160434128305474010022221983010882043470936561151170943139304177168025055058401109141191690830654167760341155560024154314155830148368546995500930861538341540602853898393104741990155743587277979273860999254108807265013677100545611138206707082855808235683365001565942187771415453361231269345839526327124492488082720690901770927821489425110545412996737407362706822199200172147016211971257756517880197943027902888333345933062504074779345475528402180299776133186356721922148736693006597307166047658148617499252191023100795907397667360569708233441626555429625800679131022195968839063738141792952459830363500650450519554347489692772963634836668612360333822093238685899250159851966254376794407837350786345803737682515434900571644537189166671216166656034309631345905937779346607089690511589046514877811988704712317116344627675318138129953416411484097004358492886830944546417715837770560639513310446953633954360939424157428394266841683075336752844240048776144463201382784763339428487954268394015849825993751521531032045686902825839966159212741064568778333106055387107380866867687737974466417217469941457814350852294723176181920897885176916344973758820728788975236087744463670314484538496626726074498176911376233829558443694091586037041147435089726587373669568469651310397779754641465564866263455413910894448258487368037953471065463708449266980657634287639562438463911099663283961306852471425740246645097902807220943072950028925753010056560283982704467220852706758378606467790491244061635841290001957140917700056398627661087097396698037018096523388103263742657148069887613913966953941382944576107493596605652935170823567801106105911301308891847311562670577916004753326833661921322879565205245030813843895546269418381273071806483064807028172277263438595555084836219174098496047853857628014408847943146630095603554629242354811207442440932728176342031965169329654312446675295890425350218508659406691042520369233748386164145912182885842266164109846093115068504292152714210723491064292637401800476399094471373373069613898074394866408940057302338990168239971498332453184028568482940637968320978485465024692035394535852747940131345564200677087624393128797865927260725613304294978562775357288217000784014400781632044144772260922996888426154976548884220282652329211835735963189097800318042612142501861870086740845388433695233033740875400268418943197014577861224772537785574465898849580940295847053300773921402251116223292336327989100953487622772916275752162089357015962998328143948950200933940988885979342690496017514231139520272438206606051857311343672185109709487346541096362000678817532647448380864016180498695322119179540262357396161635752393227189537445801467648394354388667861443911348432835611259204294117176033643109952613539003547073137531212992054333829774236046231665050041926448121463102706148046715760076227962207230706629320089991752277703428248248055146531796847279736833470759808279355213624871426613754231293865775883881831272482269207207254085721917574814495884471560269852240133103500724119588593366904033511955997564275738545956785991775297214649953894502610302923335827434237817888886227587233732737011685851246718322811151486826709969176778036685278667304391294661292226262464179064265147803192199097741424861148477041099633457793200662363455058580339448311941044714890386023466096205058058261053600649864903919405048575594231127293644801170051153656856951711391730822031451632450801686371132105520837314160553917849523131255604585396887227219112140364952304189444639661607511351070620703913453141602777614267855241214130783673572762210511438690474878039139952732527707758898250717389605236894652685419124530393941387427805165659406097586192894126927680550573235937382352697129883084405032500583250302882582040906491293618635424284512220587555287216913914047128055574060892697867415807399515385755577800748601057161199839055853196298720831546673127375518821911596862670032819465527570370388523618112560390544550395141578556275480657736413669782269567102869157131606616304904926497220850953915022192476022868217825015100438130199342324026100191323774477905597571024081793711546096447478001371216439348974878010202698444828868603059905072265173353723989265073408731346754179139803955541731986248384385132770596431436535332860119283731859030755020924515716071487008100828722062178146740080641093663563133300911785165619344400549034755699240356913475992698885829091156580741126231275937759074333936685203768604408878609517907160448955936579713950877515575181283279745096072993452518617239815502710245527026589317823763422698389228297855689642966728510860994965761576925488888491858332658003363731321663688212590935955535009453764975662786882767449782215413409040952609205509470858926644870071259029122283798048899060765045514972640718499919681007452023438103330188155185632583450168070197868081001931117649597739795971956297903226140413800690712237741063726298665651361712651231011659198689854007956709840797731416371839397603501062491353017139244238580206327341314404795690357860375938104899907405556745037558333071456264419457636872912531175425957048310752376302303509266460056717841195698431966714485431600496380416121512864006791742217257011813058095918662887248328665938935169046707427308460087761082128261483041993747644815948032972280489931394686754545530994462871388916713685570877225601313892495787842715432607516911816070901995931617489022565846503982928219876821304896093017639853150244361800698383447747992508245146178138589808332804521124246879045222549483583745207048469635370637919284329550383176718187244845700012335048542457565103675889903904090344851176512496406308136007317933175618995622000663911767029050955692109375749202184824652951227122539647455054093796582683546572835926516553796102185599459288661210056620398104167892576425783694318080850287869969753323958763988673665403848891781876105180951037028486762995047335872110362052474474440217077603140089183280774839806914857878278872470314535949974775030388865438068737457878177276669794261213591720580528185514704568968762271659931894164628650810137340788408210883052587426712646216236874483571457766701798966640417073407818431889792257271916146404539481596125571270059991411497721350327223024912769313721977033812919141758259705932213702138257923340885796195076823247003410983435236523846916951403269115924643119412818492816153634373921999346817697444616022350610431753364496656008767067564061211929698961087712209669492290037757174434871773944601020611481524508150871725656058933359692732998878242148619847317503803760572148957165740127939264289682820904531789690954946146654847689662758523529104117882024683023205595415842980258924526589287111521493658624970838968457231442321309724455494613546757325225741476441354136926645147840854321651773364093028744693170888461500792268667042110712212763230891587036658281920780790990868520618464745276453404622313666345732217901347404710406443594725182647407526339083879186727453242759530518046710133505393821979628987440768125894011737963908510093167985673599325690604627546217902499258019720135252916750280895137641942334221187468772449186345543187394123059027310906850954316106753193134072517765515849981884838180795130953101311580187402914252102175699986256414855626462484862207747841024246201721162463463963024848146298047750893298190699123003462381736238808958225737589695931138776284496466508834406359564646949590057578485180453434326504028972988023999752260770094128569199694790867854476802487994899395037643352360467298648495002831645826570101690787786087247121823909705318705308877468121135808223395377321036431875465997603003214508810372990428021970304371697240526545235637182267903786118529552367124273877571731096315550447691306721951874877564887502982598361676445084881367349403102963499798705658168096316067174728399646539619950822782656416259971906480578125702855939026551964525558050564353107099576592172719334865239368012342017562694074746900597732284608898019207766067139233576581344098200835427054240507051755278937847716108607757160842299785676964052447246025934399230091505171993810704762554646670889286815617769402161121617880402006100139132735188368627108030497222056125797300847273609551446700653803852134931871555145104652741586466611386589492224513529365682314508537646036519405820007938641775415621390315530591037327478626453265254677919367595896510409242525841950938249468524866812291929231095525565982747022812443596633631149660933236937860843176629118374640005793921112734114548470496804023558113538695993524200558045131766354371483880901204429065678587813501340823726459111599836042985546513657603902857213375098023164198941844539212855888584480934975756592810908771170066745919900638854583132715533719225997867914057038795676581288786286309691417990536540101522584501218566879285307954222202772687312776023154020241357799384210885738022588228552173852444046891834309096533494417254014698378340717499895406126967385865545572617249967093630607256859021196484187917142264340561005666806432463505828381718300036289977102768973385849804293914498159273018444302193333866115605163359853063377387001600817637781288510559581776073456632852583434216587222669370065815767984859944658434736602793732542223382612590214749963332167578961607387242115202430145317140400861870400609709127981608899503569597432741812217289002690686081939645121975661412253838344718111583117577173672371042077807115215190020461614545382140549554993549010116777767512878443271718047820193032950737724433811400033229628676477981499820432817133041427524931829086216025985280445233184772505715835310504035288734164207246519644110642516751680942429810177022000333671883607279374291174986573094901954616523253024235737910525607464076376143481781069604539657097970619881408258753036190409357702922376262262003185460801028347825829336710120517461589043227735010904841253533342434943250311103027433292582411601882950077556411037448792679998156168482941035989748871599146443502119982298532790799130939623954931685681748833229374263991480650579992004279760220885698111712646521717595387637403847873436755147482817218241553224273176956667154684781202241350031010927834637841801924001260255072612069846847708841112054538329118833017128119129811774414338284547630206959165424892537183583285883993028935818692783862392036431014527961982984312253723885362468429636610583502127798354361861381492258303052858029090449121219293754215100553844730623550089620268953213005896654676431999024523389414900700337615245523659823269339773976173797877169977623736467104477615838393822915152812153049200190869250891920557991755156994970322186031842137235271781626352359938601617972765171225811065265955358515642034901985727784731394439630721978147528550865774788288922121944810256624138425769115734797759179332358488380555857595565128613246144312889164418155649338438355730775026546499725085399421811611939758459124378708266967756259914351381636231981965930186628557060813002279213309134951344018614376424499905459062586669758731049501974371237165039135799939373960847871224838277817802735888179379997563066794957484607544640340928397892857846154281767975567623264295178879801910546497295005953387667084512035736072660669067350304043022210921668122349452889149974149393329120917790263432253841933014729109280457321654831713988303847046060193520255207615533794148960287030584414622707503627977119933153548841464498463629757046768845196520208189037511308327918261124545635275000787492213014687610919089113436982879518971737489041362359095216351288872109517027176724240631826521095473065689256627254091065360236041879531962279571873835914980509149084544363904286724389135686266392641662948837450239059852071468572602939676181366778149058905004841882168978032744243640971483765056626889721603104029203160958985274171678602858643937853815768884582208308931932548205009326616050567928066703360999541624322999373366898724301715064511411748068672522603995891682375313187381122272948619844375690933599743894972168627154267766034234321782916624747318312419402679588391813410747039351132447456644243286512754240902452725345539892434019713793957336988208546929792271849456072724926847661873210362782134843303790438291781019141664894886133428988458008835302776783780537462488553873093484750633020479914071331242501525643905274917540941351179614454922829368025698312636219344195136816567523048278787607307071571886386742187672980704969208500183981566882661057310083102634658757699980317683273876091467504622260154140449310208903217229409869885876462619308502563685777488942261314247304913692451643752105068431939691199324878256579672351380140641868515220888343446828476946727609942080805473755911932278134405284047602690642744156977222308741470012142243454377816571730339960542922306436851477664023037967066439119771778446434122408173505971724330962705389344322792787226864635305069236765367062898927407431963837826986954340480247123389525627319201347554979659286367444430863900482078573564276404313710987728473478735747482874599370998486060630715323871236060726502971739492538369410976156446421943116359683352301344128891874851455792008158721011869017176052908331317961787876167501214271403285243462631402008063947138044920321833400839352897697576407865448910852367738441850476743733321335637313295624163014976621700744842255492134439664752711282072336365218070267217801997968801114669891196506242655664824832401598748456556031878797121142829629763017656743079085917581568157147849335659279365698750907482102155432347941433244756078141300475047652382711404083824798546517174853230430856749286245650220461020704835874758582371805769718044732677541979208749325259453734808488342452158839383787730784132105780975864400852938514820621513596347089438471651988415128442139086616263365091754450825296894219399526917616224364841795515470184243547006868648797722546202593790505025612521266570990860994097421214500298348470705034154122885100129890272332549983795547205811238532371057142198946046288522782853083682792885721827355715054261881862881286858712263812203986006612552241591548916969882934839413359157547891022112022826786274998664298588228189842597435976081444892771109344659368462795436144234452957282767824556366691584308285020283549792842213204437586939276757510346492833427164093510261796531377414428869630109587247537424463578550096899494598330467724907995629028710885651658458089883205383343136316667970810127693721221444413316506401818799363323329820827509134577406779723481614744384082365326787558852752703246484996780786789903971987296165492219270989138887447847837287440342204262877847232027679876039134191978413481791600177316308715640509856165553141290395692274259110315734356179068330498792695587605638683478929451377011544073093705896661548983855924712504114225837233849268678439418559083887501216431326159504856988886780117181593566548738737976791820841945168869820095600654480465356878177027037567212393077250597487676287793848172509361834875284310106818378702699465620313997300976041894452839659849951102839036464785043304042834392357813468764251275590337279297726264858948112817978007054296278705413313490218904229326858927767865049548005135491456243204650543143304001576484683992171118595542923727098339242032655429615338344226107920187467632668792660551305462026900780935587463323786642350267638262548929779107439084312260144212280271279474873152592137961742706183742546708767206435251693850377874579137559912510953914751596098664376254482679698568871309989739545932521196231340241637605900564974920784442315630288359496231939006889748006965738028665941776408670240830526710522259158637504694971153708453641916405783611122768389957039788328027589547228663334116168558607967153622569272708512399192032828796377014594507521706333553202982070396341292351197653493276604069153241228474266876144340478554694497595234289724978136589057334147081069593721091667726775473867972844701735408711787231019640831396343076681792612004741256302352634302346262059412109022137164384149335277436143475349780966536742999001306429393745795009526055192296874497513271271406547839634679116565775126141410649322190879629903734484241627590104532762105438869586467787670246427649106874877386746137478169036932601862599567923225714518643417190261411471624392317339407468753775048234537416511095206404807263490516240403102186250514573672560728784922056489085209645816821770143316380915231800360388212589734922595379585326951972623987016371089659779835793338092471583495100788056596390919749305516471174035248804398519130523562758486548064424802080424739571789296168720914251151026443848241430044241275210483588631622802791667342796872759683284141809577671778974852489909671993216750450155202743771214533472522024993538384965671767439790190406030068084420496925412795097639349315642842103593059243057784160032929073592206864632960531815626973517063026836490356481514052072410050072473531494028465690281419445507461533013316605553848064747432849490210213924931393081263153658447421445455033417454757785362661319139595874832236446873835968481637830235156847154347141481053479572652911374147754202440333353688102230397113478993486902888066945710064647444779401545017406771059061588810129144870451687756621493191790881695698308378601954363081814400953844129825972673517567420683414705007446225324909249483851396885379374564459849256088520784342984463334798265094433326243312774956642742414927777198081716544331710286693746848815441779426289829428558082517684452458020074742029384087815296010553940900243551924824355465471163014731537554462242729835023115366052622717551299283947614102264207655868148016660848517320953151172631548070350899516812172431018854465637937663367584360690767253344785718257072171846772676388459516907723561251467730921210795094471451639979918688760530984811577245728823301377698478966442325738755679465986007766834364681087163121458385095453013765949907109784231571219117085394971339457471921203349959841375119557089637006438374710147965258972397259550762190262372004054012607182004110869163517984460486761448588432099428830190104619350220462215281608047678847128082453140405937346739425304814333561220108333024492433369102018905543328676044514262629724630111842337895178894281899773287930950287291191529650804620024761284009233054068107775701780168811447998877629232123923508443759950529448309156378429501389882052923561905579145591822439777905185197431485253690194697464954278608007997248172268568930742188968480356143775646162568398043613612617521449994704510683714981675815734595144978000504136473061526362724494082625773224332982737856926629000296221254596380797164169135187718632417847371708977761625013088453875993668774715261823809801255770772128108624206107754884220326100321098769643222726501916627847460087097850698592553500544300884870736079351841516211308903755320562204020062185076204833802703529157812175835671212291478912018126804833908054034964190376637402097570804468355201254306151420287769181422935130470305004584284577537161096973826707562880247186732705114473237068607241930714205815504861179285164030508954048350794048484347076397522044729824318272917656487390702915612927801131888978812396377572982415668696865599093170017743812037496732894005817331740958100354265382502159714580797868514245161860886450172895639502197179015064623201188291234165865985321991356914582347855147191231429401523438016567487558487754573793367865209164752279601038305043874264923840628044474764512502245678200932146203199363095370151935164343091626634553154297368232778422384468484513591287131643718132627810619153416627399780473640864727476219027977785301344443028077720312222437428346225495783838294123731501199513759120859421668294141585897174610048655559393526667862330776791275058954641691289542534381794727409668065141151736460989496478344289671950185594558546619054206368826362901291618396580539549670846123940406294152100649688196086988345077268847098772883515827439208872389492551252052795642870580014915349691430586849743868267185026810828738343582166503467120889531903589525987359003802409080036907661646452314169347375815870410742043287964578890384949417369394624218049454129453941569563568978204540508233107501075525234796330806444230150764104209153641691763484077549570994193013338751591056314301391913308667246960433381265341136314579711436671370276455068550640154117210590464708835626671825816854425187223610045925990630768329815325310640364492694038223071975588244702382910857305679896339612925960994444268956377216232948607051026438442702842385466620350788364882970555757245529657862260816511918996849594852683666377216391869472482603743305171832113585454245693412385429200812491669288196272232152686008684594215760835792822319795683016486679734210257470048766862822062147868849461240682742820650240348560917523209857514761874797104591193369674053155965271088317487269444500134502634805456011283091764522571637677814437297707603317350429529241052397601068709756177270607894917899919584723888849945105936636069346072384989666067888721831819634149501544551366287362190618524702147968132702097715735362141477891196135031327123811439048147419677292587041178509141544510891929932156986055206547584125459632399485206296662633841091946507135212368693678036144751869808922687671783925760538998576215464094835897268840540481382519858418830233878656250612442529161193998906098646758992417754361882594198109509434867023439730415269006494353948197798449920579157552668912077266465887629839190882860115133603229391250952927494783172652809665177864979693063395185415805897920635354985156197422948911717830490787444112324163096518073163239683379692242654172271711723623869534867632571869203201602809209795628307901263784393632313698384511722120066156651534503637327023755465232153400717134067467304206825395596049828147990488345485465300159378099294312817237815130815641577813396985498536632108996303293922163730398009918872343744710827351176104425956284809109793539083783725996517578684477077353013085262168484041252519732544430898222744064771552954281186354410063560755274424895046170613613362516334623580568770647311977044829264198076409916760690154363442834976307278840402933170551289694145667062869703816541804544814441994354859665798171660423144215477362888046404713129638316631664213155478524057427113143308735835316724793628599282708741796831815126585538314861756809865492051356342970390987043550570312461300699011001302905037163927809936061409950543396416574635906461525906067427981340666827687135574030145092217537893804122790145758335838641641053104447157894734687210779140358232971825725855700220661950429578888094187090290583543195243129370907504687703330822972199268696875234798584456344427786751228219643672176115727447868454303253109102844264548021836279896009077893887782479768023182440281222084851203882835492658914120183876821436102017707746586925750732398235437097705652763929678663807438537722521461734418771577392922339790829935752632515438657178257690741268196519874059916572005036198644341027652810026741274202565639020926692105627833759020447920608034234343966656765612686832640676975737609163009689512709979696091872410890126244061590729071863245348430654455136131346895092550990015285533063858276108102881598101103483639133969297601988255013448449254208061558521412433884060715420436637925803645116346630148283087826537837113463668860660319089254683484657251760721390151054282065458711121973823611921018277113737152307415081842171483252295689950748543288364930375717793067746643035951983741540413743947192474767738295312134411803526786565960090791555098184852854489973043970343057496410556590336247794964144795941589440985536468509940588177529150128898356206113783572470753289877807558422163193533371089235909988763388357189596820365021552622401926591941076667009193638107732961128519753542588705684747976294766355671312004541539777557873637403926400198505347940658777047626562144254815435828913966114017597408686275106122918010527698101321824885597666455321280373927101835108937274804593512390262626711075828049599109813545619683602631908790081466880356530759859312256950587707586917998886714744485185359408579950033289268794254462384670415745182397474562376187716908009964822931021378525473218500412359454221064755721960294404965059305465539833533859421887348215940175045957211655005222246924750540797137199376329593274050256432373618544999993684726393163012339396433366943450114854902124488466968250933467977100443856581506762853247652527178148202344814524570456328143102524971744642620544483706045610983865893438415777555827682215096142648095537545716517445740133087266806269461751652085892696148338820350308611011306866096364995406314898875763526974003164256988405369697048026902263831772902225685930147625594456304811086437077932756073669076060183660548154288640685827552568584821759616290932039742872874721959284516054268571584459774261343704725970176137233944760158916404435327285401289238443113225256693516457307833051031965655693787557465310736386076234001013833187423165116166417276167729093637599521313004654695311432038772622265568448465327955096931393900869647300579074184041094787230526907209617921961448716128195852100666063073225707293479391786793443818746772522944275332380716923367837420179640310833927162726312862723697137517697213268649455939120792110347159346657146209730069118733378287915091900393539489272930215718263428840149379282469004541402245066008732102168302903130303982963653980836030937429569664731627670750176581974546737000404240431872113894102682340358948360366547749110872709543333056259514452052843451963577941069341029205980697583540748422065947322543073985646221357651352517608620347992064613547821936201828068343878197000903139411247208099746587346697409694436968632004953318408347141530928334119227990697725621683332999652875059957112558169398903726406099287321858044079413213606849095022136690099869071415147462713277983396201864942581730600329380661218941300547721907788089664068445262568528796827689545922861015786796518516235696638041634227737054827496752681075296208471471684473594859108718052013540876091940231173322923397809711578514662324857476455995724533855530939048147053681870246652688131587400899966413519602476625722837657891755772682525801276519453490245297622603532178501780532385489799423173348569771969995876252106682576181985733255050491267477286386133124031742500355564267853125929762336973985635045820283097921272972810416968154070095304656972258473636682788500774780794437267061693162527839246151539205080225577822020441699321602851653143223306082118490529596186587248782311364249005239474916225789439410942722223927593619109324649166640599014077274035001801400849815340032084153832776116861941002304821478567030374649250608653730853622078853709257630790790472525410368624626591232004733306577272272556660818613749614364833153551636141442547486232015774851979304100322391320081695188277757511640098846590400882813872917878509180191731615192663814273334571171717640544627514958966234408432263146913511740416084462121996582295324821642227173833144604409017463529321369980769665827315612300364445482895031932449059394786726022529753253465123866701855812210666986364720941640625397948894467642067810219747256458682362157750267924456775875659457251440559531160480559203747446263370932623350699711904593227245488114856695321531955590130934000359343917569730258030769310390601795082629546573564271184917635774678454853964882704083184096508449128524914844377683836824682587504459675995623424570497093279615770802993913166339064495089032482330423591894831399179741162948496199969309198887473049641046848098292293069526557205445901519731661216312210122191303156336484253352409603265801564680671279192249299573866145247007711762535909495980343249506831595045613927346907605011891295547180182629730510966667565462105398539961833989984189166498295763254482337728062295766850865339379318733468176790422937620910669822348364217498205350697065669284055980761025872279507539996304311477333148707181305699243452651833014314252833312477029323502759477973408006959015504957792877055963659616182431838933528511237118968815465874020131555953648967808098231162020735243930059264877190430069325979978362129350475912468497229358650526220389375032899521398733011173694820101023014034215315924615283259410169669874584740226685401035974032684910722860792389225746063162248316832169389338174470066991049120288868037086427563333094452003508660873992388542055659990278952449703842205173814015415952715361883540995082877777020829829941711940958284727205912117264854249746378256431258362668064075173465317713787201824922872631000557074194803143141461901229575928253887550810816526379556774687230486301253610827151062823775623013805722674475880505774788788844687608105720608133920226387880035807941175595568017311489018121873871632740560885984968898834663210881173425135103595969317553700736079127385619580168903072749953713013449375090370847999556506207119443559503681823234474593265167510744266620128338178765002830830404655033381350184998527301075258804382877312275649081210808164621030100123457075272121413998001336885565639125675563457868042314155491479541182965915917279238939612957293163124087949359279141297025049391212939188883335685966267372162783216947400724977360202125900613871459707068804503689855459193729659792474020679794145747014545698098608004795428427657278618848477209643838958233784433898423568618922020492007081100576743876383306581907744774480691409100857085532394174030986236106844948872622299040396106599595176243332848201874928382298940755790244100918237670233685646194939870913817027385333370832512209015877796706985449066340911998684496687325082853654271755338275685086060568472253604772615106406778149045170741707569684125180576320755464492988549004848849035747777718000498625547124124437374025926449018654352947148287353796955275780729898118069363516543478789930414875267062477901664139704204865828128605291733253955203568839802708157735445629191689586048092894395179149887859502783581565818605426637456427239983627039630389109010227253984294346894455403896591095134468901110321571137640484601517901452707104883121629223303601538736697376784493523200589271253667138942814373272553360443208152935442852744190810294962191850161621309001654254491451466959604407584362929805805657801538772918009770517285660772784850691262547002495556078306758460694253325875910212627652367974848487033759840712527644386616483617242404157390602712062607535157201798600475122705778363629556420762568715872781877735416663016158505694964882395728371695386515620577650857497787797857036608310969403189149846034975727844748616075499247850769319883647033399747262522118539465832687781397612674453973748398182139720818125094556305251817265204101305695864076103917068190026355885481800873165327299131413281848037917308657544694157043541479704857355176025976709931520164795178891514639483872799733464347084577057116743342770121860613233056441325098430854489437204726564376002434484517948914295702711134838204004487951387513822707219248351948803366824160515862259699216674237377274066184865239980506055805447479754821780521112448213981520791510826089751475646421138768026656868189417679637032990252918226481767379671676500658855569871820719593389750192815591150885206875919345169593144790713143703229741456084410318086891307000962480335267057843833390258448827828604763110459611392387401289712262951859531439624456770983801064443598339284160005159407430290932519713731738774565883965821734666981383203060042211845802764630419267184063734217002213969865404805408408883265698601952956001261790710961858438607931743055196710553538014614418281407921207910833994068440036032739030750495796235662252113083366268522804601562845800122931650830767122574679711759017492601464018616422253779118403579178330277468231311192693783948041950192330162118574446628898437514588512309856384792719180628697785940586080754426046517486837217436990298227651556842210491246559400204941346114377501145185676374189557196490360417323461521457620549932337717263463013306332271257539449492985727513476811166125336394641922218293228131258161512131484148439162253849965171887125180948635819552233661963384644633131485989146689881547387414021479301003721834609753976139928501010837851298983098817363920062833981805326243537957679887093634054496783242985166763975971041809468661812624624451769638364268208664972996924391494068433265852990689859639568339804328695274280857844286069398500162102424726160984567039210056045114131409776321754761588767221645752283532692965036439409132712491735736559541512551906551218706243002226684181573444722373400546665476290189508409106627155386805541313314909365572359603947913424331120677113218663868623627385070675078101658965046735346311097985647102130965083829493686254558117846817082904823288203957662999473960610788738553112511703054715362119442027208234652925561613881978234421248418371578655159777678535584374487370054376421850889799063201565549823499034144163513132507936559961754645085359461767140813352822896672166377028171568184415112951909347823456889166420450626451818638847707738221991152015745165614726803306549713958262436183018015519263919470901526900976817025102555880743910498256214300296250337234551074295536077842378505570887484061106748651795765014589372753122161464921226224101052489920193337810899238149000905675587193573284056639833243956641559800504543539770804733078776328958021679516313137427106092849191522329170030541275224619819984571829572234233327226915780321817035222984345896420762100435616726529072682553145967269704411225967173998177559901683108605556197826965456997349505193592786419549680719366476534968783002295885998406355153388611533995572962136480715679045174242870830683327311132391614916110985573487323807963482282166447017093345371775271272338799729037850397912351802057327774689992532091074033507515558008950392588526109351548501047658371303207427064227080542455950959783628846398844119884055654714803935800517348249861283406728114245831672522703474262071671382545179010172316523127120674564336437393308000711980745223486624258395869662355325405366676916309923312276622849784430806740633750320312152333025736451696620738356943357785716657669406339418892855254686728870826989986861179475133110649283701503888151085465296409817845973157633365148245767513824932895529677371014192442713602028455189249731557327655004547954288526575221597609624180620274397856125917271292962489460710797810603944982352632983885653502614888041254455544471955235281502955659261664012759751649981161388260846478403572127492755022719664689405628798701110881588603050020503024227128168947617344842007955428255144154944863503806822233124574876869412652652595375963351576518735174070159535520191596648839554092302667917259746465567205852314389220779438118664243595179562558147937857511843101207667623273823380908013266187593512852519400793722586143985940548285766481755232250229851677316196328830748278023943167885285833197441158224401197862510296688900880216513242147294975086686380960691415599310193693559559221065051223072165864940241670740530370460220962597829426012155460537972117614849283062857053630506940319196187173251741053421213812135531032558122989106932192125186211289688317318263926754889688969240498773004832890945038605595627161900094665786109376753949217849817970889951552616672923221908031060335742276629021751811389161389720906790456935947998156147591853393228386236921067494735888577469120956825675686722695559522206775754582345744940681882827669943819278963676523136558649492313952303346265857735368470409488433573415745946031062404913022810161850696462672684018540894233494224094533671781470302594216755505452662929286338727347541396529322757023362137462222290902614792256628116582702502809977634863847126366274998353704357889590449534539135423658735442072778123531234979440718839191544310925487632725565875482910384021934126433620443883807202897358595236830325769286962607687660880748048945616924847042016815139423065527974365043997902935811323355191812571832695297871346944165903512602165525452065302005242980546608987675082828453004116114016807663573498707420869289399337552947217242612832558102379218855926319868921984032850052143603709599201433725750647241193796237852824649821418635409857730856804468458222783863308321914220531760783778155480498090809536458272159226735856598609613531510038621310051416706104288435046507764322928707736771663707092450763879161051630734789904122414962885014352383893130308864300907011698393022604126925039448841756243184611049389072070095321626777227057687640451111697731517740230956574518405360983561293689638362602847055571293173970392053756791532803616382146403814019186739092583671932828231606473385495897712369768651235209772750310642893445238845161086835582359763481418635637438713098553653037682241873423783657170687913754026139594515826638781568552207249355416290121089777973373391544261624746193256631852548384398774988719109593582014612773805275553259512696257383886250902577373931284571688439392025009238052767889753212880601379182161183303165544161318472699543325888742017141527214576531961071599080233042307780631845151144786529161962357567061873325447755841440778077930460536579302368133142578687798900389525488735135358166400664624377811614923189561460414636137922835779277337230908308992399908799583922754740267396972039728956024434433573296349243935593331294768343009527208213857494449115841287971676784276392827980250100465280189115802984734470546045854723283006576219589344575284313667973904799471710331699522478438909512364941279434261169697824409216427918224657606144963055073134608895952765390782026253112456137463973544917371284554593133738019991446983881512057549400076258959759924930526500626908270423724911736087227957455987927449081528931443308004957284309346394771291430152703520836477514857993848107539962222058106151645040878398281078514193120837506619585973106155657057139614090755447954853837949792357107271574522223819012554207696549970750917287016734425020089338599978878049509296524920163245251524088998906650212241709200172224022072477309429690575722662169004757411785223736975935330791814507223677496008037452959170649081357151733095025201671396195659099859977150740035976007984263867620805224029089206256260026400529353008311748102914765456919304945045899030368774991360346577587514801393523396149756903545777675790826644147468929552599369435816707453895449950924741669308821779707934829196125806618918183162779495882244778071289662515072228876336348392372688088158105796787215072765998602913031117524009211400773202180069740256510571146134218021719864727485238505534924118716115243654758780172158187665630225609163299105297204148304419508920702880950290780737323526519958274010059801320766034168172513409492037506091530844460511083033854826030227688688375824933336584090014413711665731802304862042984299343595820475717179917464275743844897904351234696626240901288141933136654220913445278574232199385927852394068270631422966268872713649980719451837460328857767432865420033182806116989537846664670937070830633966566069460486619058534487312382263299399972252381101089071467225493427244972170858257655974488813185505804753577268551788115612995940680877267298865427765903678530106962252446086641819708406989763607968198041217651084297947174785930635983189667447426285147382903314755291499459362491337260897389270241773694794721348995932840254098788149284305756137418567981359066667634749719916951672783959168562219109482765382146255346352414291742613734482509501694270240644569979327983321126525166438954903584698688804287944257290631918688535963019452098233845063351473631089718644164863776546967659202059324464241850149527951124469378200669366317552165918051265764290193256854561977611551945424095643380197498434818135793001974683470784465632540131821585146126147782167871962070591128465500170213437178138994856528174554950701777022032168518401214082946545199079104124701305313107186610060537601059154003947797068079465850406541946041382993415334282290978282045293596108581364766951036420836326250222293883135571978651606611865729831103474164049073757535862176785728993395185946949319379984891001963091870057401845594796789723528106614035336635412826262897969298817044104390117612331966008871221575394079826544532174709760834310972894423013559131941287692426269199473421022143179014062370932524532053581962348284614822467348220868494899151172343282655296290001048629763848608224748457518086981642140458218307453487447896479494726376455245210793894105196416524846609248875639676940338390826282009504736202885123787619360112947080028575027471494166607097728415320370349263197939302447288480615286223384647545825374774574176687407028278867161624352989074219262889574073546040544456789759122533363281268870563508884032164732716748118236958064714964665955778333734005802331702510617095553293417629447333669025978189463542150596502290641466620366190565788455998066497493406429010276031233872313197914661413088611682082959563616028885440091414184951061817009489423469350675619888914889855083002432101290102057272321571647655960642570637916640817729497791578221643880795398791289286822823302691630695092037391023630005021431539731329381697758686629977590511313553412311785480378339853920246438248560778204567690042537775699914475862105219797704518442312362539117754365192788457601222348565760674553721444841742254545503688612594112052860873426611038296888564277509175923486567461664397491500258458483669028358933964880245063086842593179130076011626836237759733118040476776395193316530406535782506219606568476709430173822937052612545840336173124260557116534205229307124379370184234401980844526748625426594381439290223560732339046023623619016111638805250751344699109527440282733841249480286949297742242855399674418109486883283576482911227134541404847589600937209464196600537053672641137370903884007585858481950006229111729386562302859050021568660774086078622710349061248323062939873546266912777925531633663644040177379844697482002900876295562662982709712542250025500067256350961191029249354369864177685635537240138983782346934057535564252941265342876833607696960903713757737211159259392537139146736765426253749994372712964410043239420068056744652325980870038245779705192251054325735641687147956264100307885516804209320346701813546206218815153022834244507664364196334334242288745601006052767217477771358457353610330306565447676951505833018056564287675193918893396050813125194958832989867537018249453382964410657942079963573720032855630502930113265908508781482207691832213296878561531619841559113542173411212044232591096098204525086902268122234205461304011940425937413588198690033812220102312072400948385138714695101244970038761524233994258496283140382884275942120759659971287380614147151771443098003108129051359852313307449925426988377735137908225407764916849324109559977973755255360047871956409923902787558548564261926322940841061328222929476450881274325356409854355406224054483948644862447832057131856884080126576845856736019087727271930860536600070600736595706381948666754845133478699217154261076521227912399566248131516814538488485033344504282084250259408433655080115524765991053661859859517486589003636617409290533296806621608240181268099234662542191488075400916538380766783451228692915672843130648301444891556908588884359872339304540251499176634864496051792925109323525234849291638845422681839752743580722291016042923591022593089969212871842075436957221523400407040379364352728572720154832608563140563300675733809366274787554364899051404901342691221344975892595017531191249386855401681323080006246810184207192151798767258064380072648343142024535968584581428104102608264562036173022148207491928929324821559424057058925220665183716719098606442576495170267923184121812198296225480498082527296687713876315705125137015969588691640731582111668279831630285334031651847720476983766713689164265062199350899115613892971381501221996954382273793910826462696738842501919857379585585867227654816636367974523716488510542642633122167205940183058706774253482976666171997742558974281301842848313030728596207628761152489204568127099482452694177482342645435339458254700795067202885636673674942586034594270823961401597261539385141368086801036108353878318224466513036035481876239380841862612378727510522795886203834061173260846479801415424798037871236060409943470360109744022501794410747575894358017899692193852971414987510446996565975956485174447928734655907958788820212156265714057336041727879433307448352479782124855358464325288987312490962075486273658766542899134051899834370114897540916820055698830993956831046901416734236386424961716819013896833076409639387123310138931368899861497771415208287814906768000963133432835982811847683161383607613895919622860381560027607208496698399390748061873158129561158804488171351704734063571751883653382259390853809167845800493647270078235447224020566634724500912001760513121161278328909061790138295944743603933755603781886670057141635841882857824469976161558270950465187399275767151663928335215690383332636569476527489892079159198789747727785728754133771629475529366035545834103451017931724416844416424370133879206091278426687496801364230584659210831221283293033154696587193212699063715308907750692389607639460669127507804164036990696885060720904363306857900267277069992367549602913629912961003708738763654314913014400604619680762446898444286575473904650418694990425411505884518672719372176261046958662115524982160306991358213969623136559776496884785136930416801769315194137408486299194577116762605960446490482227527063105694650116040808059148701602281354763127640274963619466592387322293635000811439227022187043963393334299467026077931084348084364705040558750464299008905932298551345544027296866518045188183498089026355549297296912907201054684449349072892222987713508894931881357568650652434187435610801781344109279044241789239400645834680279968120489621540955249084384655744230110491668679107552785349807742423237116632607879454393822387951868630512676250128459034570655258457415529367563779497276838446380738269990260623049654778641019772516506307114006713883339021910632981109238495299329698314415097720142438331152730675538701812287586400935212068029927891332994097950166023610534638982277104420222780060330263036749123624787024922016700813365213387189599247821480956871976173671486522915772161188339283109071016648220827713860237876309814074094574576662427390509927791041155800387442636492289634896731499669636429860390105772923846111497940360150888677693285083204337400423562422861102323979234174253567427001587749789449357681397476467452505471443196709952338774316584347429475542509868413763511180514725736161355762360293889324776700692514543777865621174421211176959539591540882121895411414652296254256811329716537569900846466652288728715418045449103595331027860907247506262576118944505527190452136658784252656354389776977095143856899132170887211907806303857726222863991626717081808192336880401901387636204977013841595459734929520752977214135184907435936097154944195816183662499958526525677390405884336651552186855363928198211095351598667039738689046129447434820155744450971287916756473792975308016812828169217471959747035119002673058399227289353700053448775580264300167205493626978907152714695084885483455812689352917600822988849078740486016149189357813698388196145105616986610439394413809888709772813101241246006216993263116491772383567998701091631850074373520993663949748393983715721491574600229801026185683759855285464174062230631509044886309823033997884024783304047579984467956001737530494989084883144531148416327479813049390825974142330046389525968504428182229495647368205871697509540791334591108174188535041024798439618183389394070202702469231743274903079496484599022301564978390995089317785448437873640492028567856495269482351194078781794297632237631149523928654357815906302683382821494932364577405845270939639497857877000477949960773712177752369519295707621799596042582748001425163819555689515776896536339999016367576419923646004902536870700406538508174170454031965905405532621916500988921601378046450655476094663271881509277919991771403441091341557300886640244814876014142091362653718629648363102032726960652268319431564392213892561508036169343815898918587118772454532994192545960784799944357418161648595727210614359613293369793432219315256974425187169053735215861403537628488103225706453584985243283650855892710747583834414916330322869828257776477681263717731062163256519602049332557598651393274661945150807186499708562327504875576800478246559244237029473364961936641970445893664215925097389636442387648204101564477344222943400903158940102618910388774551673531839564836562420264299319235762498055005284252251697680728622305975032798583744451938993181345997803816750313695434339559481165322373480945573525584877137369117048444841042943748098671974621033299709776477180657725696762327405263519484250364338139888194838816438604094331745022747015307224710539795939451305028321958965847457191613588833919924695983598438128043250156153027213482256013242216573660305287042113168935045808135857627714868216272192130065475913005651390796519889516506242770690944798897703520496657926103264600285770637574454989183595972585010900416294813702357960385450708524340741017460645068129125434104883066602959911461621567153792832313072107036790996452339073941558732813397005711985613343467532889896523498855743619635946105624042679361326542707953853867287481616377558190308039301663780481586288662859710416489334572263500782382022921409088001547043072044978248135210537561771069847477113690426932912343026447512761298630383433395396615394116043938239256557998972212204964556424423131071323688502062502173463122161141837533467972127761048137366962919781670348300417320823740787586701418286090000420833007855641682423851176375195889291542348598782601738741670489589024345923800825912793649688935749796053779714301269631018779711346367159206317353953158625102205284976994844729047273361698781317346242901047023094305720019437994733039233387231831605627618844493463892218965523100826494675069890361237593178763285660608637501401933527733412398543080120570897254695140589241750776320820889874409589469465514932857041139509000204772162290878667743925446466772671262795148107970217492624996550384623445350381013767425241293846268859923334758045964838313040844781173243575910088231368254534666838175988813820000940627956089335173229995965247262063903239294740432075054500389962904384180805842558922511043384152659029139978570041667647340794645500648811713901284413601991758308844312412103057942800786855309527552410490644152938145934577102958767141203098049616054126019940207594808343759943563857479074816858142484770502567620638055770974632576904438178272300921705971251921527163620820330679434834768049097064541066028951519053632661381821492435321154597779567393308446957876159121410251336566274118284188875034612828979426393271910122871377823232488425764508610054559605628704328087972877623217302885793761646786511995668005339217967277106357996979342905255767455230410576518511730496287901160765323384542931387657548625479506426630649226938122463463241656217129384778768060652431118617609018361842971623292600758849479077629945596818881543405753182762392147639529865110887806817356086931379777599783354447633353155931219212491830154552068198060922920929200995699744477748958426232568804538305615096564497253181673940612771113131856606654694883618277561440144503698796739134792266931552339389539146470833317312957418307578852205244481176380162218253311743092071590790971461039216824011463436655311418677247162811254685319072536054231164959546405006758514473152218027596599318195236408777413682070102322579156463681247632255341549044815644184956209693463053160866036646551929026735729893068648672419174302840053159355591270710146432983732264977297745847191539174271629920016562058361134325196180447912967194124569104826670925065284922427031124347168823882098569497117139896002177821120184213948734612875639791159802183368921520014960906366997268058465077927260824755309409436690451495018974159729515744250353460220084973007272497181979233205935366656448536245836868069253926788736578660358319225345826632209063859365665750666977226859933600274237470343633500839741210028057189185060782916104825265169681589267790684345590198419175902297942173146872126606566782976290766637154707684426360039374697061999673000340953720592969038217233037985931904391884026732802778337468671704086482649185147150997115600963301631522978950102872462612178008989222982228534033182203901371205563776005972907426119864233024761044716984753381980325173247782728445311738565585699908799205553158722487842666519511957946887450800606707272179726069567131704833877050318293005478590064155630239574464902023038302565405123786199442853413411558429609031714083247684190799984140353849066830048099096844952943952165455762435194282418582370881242325026869217368601165293431617574984248658320839722680131536946565553863018420922138758268756102394315127663821172924133277941817873344582096115178430623692791478814256974825758341887485508539598051776111926941541166769319454893765773143873080695449797651948361510011308439042079012938692081206662971718244333666879692150350782741584842855008377900712531901388337443341102491730169875707988276372929415826019518360462374057777845813234101187251126510003475965576073783277556863100872242131746814430471614847169838124568663750110120504759880777703587437212619585794953205955826077489172845436630000668425705923350108747249530620009196808259301786060979356082657109163733835191075647865925292737956280992069489034016964373059633629307668888272137080937249289803943493813381117381739712808796428198440452519939226597180515350765668492077712079021547040617308609539670648895822021323247593943739213414227106525372966279822888635204114572764010910896915583895330282531977347664852408106518065649807966895485520682942832148579808374372499260204435261232836466134987393690686895968581389381306388302787022980717812959490141570510344943721770540979744181624264313429374692060340360277224927780105390146262493051467958339627427540990280300563828694787858055809297358857151395615319405592846200781242493437904376661138900808178228444131909840558557287745956330520147632966953714202028610418366071248492351087957374943050889892418019992118759874456262954154591967912166652039974932308723742060807967404805811198905937220957240017205203061067250431685421523975248354932028087085392406986256799565204719947646528896173941275224976660042164532964336135120966128564282493698983271223080384633022424444994361059645549763459805467234764368674836984343349262672412666640625943106597717089874207961719788020979917047701039008057879307321524482843162614773673475075721572036101891605997934347617455943220905638333025883583895674036416282583509443466506239645261051194651115411962344121512818951661003247049155059462394282600131410889855615894986964412053097843549024679718037659127086601051742463998761572841029729429705921943048237738143661007099547114995545160667945348358778163602647997762350885275048201775972805049268745969661092448297833467534234013859824667108896306209417281258970251906483614731901040680452805722704962221968729910188568141959710658573891855380952848572593991742776696928577438153363589779854439227240911402167164833129455153659752411221988321214173448498582193830478076556251116909500330583866771719935900046375580687482343084199540346646875742017444452255680947580063447683124612975324391047624932454597189902436544676172945639286611887834473057843265872536978484551505173359951862674163096147854308267235810980796052409643605990398079305636344652853109373984408055712592595105303324999125910817740395245484968521377937956232642505636131428820834745804976227910981542446721931522298558041917016119267728272488915125257815780674272706033338595556699811955971623155640847977196973617467155673736496660839563133577671347561982948139819418261415569708144532390955993884758032116344184670037292645963186603783682325406463284776023793940126808069902868997477945037902063817036929802953555896334648523293107176600521296885468734450715271346578404744232634414523918784387205797148460563480553108212603403550820685340944045864885227001983524871269195396384156794405702259598766915971791335541313999073763934994162702290507137549372008646442312236297857298957716664610066078745229699323914402243400143040083882801780753562081108698131421657498464094562230238959255300692813440097360889892853661016977366493400295433213301634419194086865257670309113324284809913930352694550809616333944149881146261102937789417200292178428999613999340636630278359794347409092374250132120753566814666157068658565184833234758177776230605369166149703015786166866478720595608072551388329331697928157389157750775446096040642654631317208079247799034861747850601472101905594766698731046221004057780716411304216474684909944482178186439800039383754864081626493041563382406634949525786212320584619005716530228761996020620451538810366718712702749567342447795357426777006849515170744527331299062019390387327830631740837643830585524162294579224576706053584635109902862023225659482467812704865321499121094152185190223341922989101042617605721094233989933081305157732050238182968756908810875547733860375799282486216923043124117843414627889674232856017302595539646987974851746932773021983502811010704889082736118891559367524845784108597904420923018326638949606675908248875252944830952089798106961887303943020253550950777030648836066157689696458708683514491079520134240201250037799035339272813880776063438036491052123740505066346362989274926935280292672099747964782217570892370569137984079818301376027095711064646296497566722750132638776405618249496953924155977417354228210106655521491102259492752076206904068118296785510385868107553387012053295388779499371431320561709740229110115802147324680898985449861607995630020500436003321820079784049127874019535438341751616136113817574992407622534236932701549685334782551005468066806178013151801430498727212270048271643142110199295369748318904851980068536437373806942130340179808167500006953960033384692652555720823105889141546145702381166570711190913657220649397210111602023563209429031389133168273510960386560029533321006994775804235879501261387182952530581137792892510927168856865887221404187848400940709060841869900203117116315421935201660969054199789470054223852826111722488321622949868991049010862176935533933056103480419703811093899456782038187544975248644399315858968427472643689429914070107856873865632348239922675972241943116866684410370409341350293337185898568548431014708933532785466461805246894812374748144546053898284047338300833019492851195365632792637270603347913825729011265979585858319040961437159523824921738993959960373829220863671122707973535823972930814625434988490474897396387889095612131432110277026436669246940780349491046842922973910550575453411196326768709387072418581789422541413497816702431606556417009965589211994344429610018345576247988571092000131119951961495674377128035735603497935609059596775364045900753435256669355275810424289595362866264858536550696206826691713373465429411119498952112179911322243131936819991914266423823126507312635117677686051384060544734270922490093620862098963846474385949881838353521958738250217114494069609420682883248161114368531422992682732395896496438258164247330485134104612788747339776603190006052008450877413833991192887284959698712819656844612464408450246947538296007832328463595149365452812243922804532169908353053364365656622584772892217151334950910216671133353278683151042988508848175943399923245632024977673082063075337498473917558631148375846385981954940718254317228621999733419252252585122995926917456741440475987304248659508515048158015421317950813361603680193577674249319138778077975749180964852700857705865753607323139335275924298903903225155420749913124959123588934372653845476985712904777307284935440918497501008070809883529900860746511518321998019453528794586992575880227252911371737849533190001840500066294347640651258084304428483403149240226435343008213362070200285106429831109974642237219372280619973652809323441234682527920052930789175479619011101373748300901125086348959918304542300942500058104767159901443207263022381116492397242211671548956954348482658096684197707416568165884201630100368736827227415175082656285316403963212040919587373854624239747168130425031869007766513022025622731768236952325579817778331625871096083331682601525227788944719210072365366836164891069069133999380944432038945535892384520142862750999004934049127086187149517400610051116278914831115611477405052837508093787482361547925074671377584497773369583915222949304049584190154899630780168808040238386808295057251190228537703826753721578607040641496618718602571030793046945964269623950884727279106657745804039269635188625621542601951580622343500001433634340961720353559805690249954632293162369522862893188511908175183510374108180284557037187534140263220534497908171592291247462315608477457241027340227702551253307133360124136787801764742436205568449653249583798557301343062202092456274483864137066461678678450267731839821600382543333703365978409129764290726993019030078841931596752870289984334139069497124317678597706596460449221928752590124362103204670561555162997100256462579625654375566791672268824502855271622923056285090828161373820250604158198935653659397047277226225165878884563897965029243042686751245999551123957908615453607080871224783315442738264933984891669392512040418953749406667105033482999668479753643586511527908212763359056585291376130795806082030781963247387586924336517921714984438304984060078704835216104322068323902527248029516727481423492713949195606620426727537429356715089273804385300460095489140865731027101457988075546020699483580043550153243967233204398408805386429445678216597103716967924525049187811693570692125315153101196922339593982762593960415104993106923247767859740624827606043660544755150626731842305473066928979629026207520249229852254665071207514528015876028303540750182701115867084597921364079646361321054085324759191847568014716693385028682251937389854111334552143438613900697960495185095933510210103277204693265145114505723659283985831734518839345537955805007973671175345799416378298587461976685746082592429407600726097584254087013685566895434828671829736942820489896383409949566282646280315983662709734707179646471984805666535225342902338804382118683435414362903071048119640345415701110854467957480751565226825959752571652217199984742037803331030134532321322834172707029194565335815429058159506006545516017877113171567238173335052592304652138335976302955822273492257298542738487538114277844176236262092260117535076650077928847853653687352124400450389106712859335205018871477462741619617124416275786890532949168518111333738178587836820628735842614281396780658438613954739659606862422221564056771208666040609492533467841218792020426333511147974315370555301017659073067986133472637383778194485351549026473501617983887275154620992590100136629748792290036285618263013254963070471215923015442552873468791923579360248642033902721352096903836413274125538152582920169588029852305206906409216820972305156773374734613909794535205419876986012037947364199294445750644609667635636503032412673637921935675345270012798554098307810392071469974037150067545240783692246484312531002504931215813635690654378604426696191714071316253851281708159096331541764266629688355184654227959122156690756277511715737664765050574955334406923290876544780661212359544750874309667853878193076897949337683402960930765149137090497601438595686195826995134216873792067515917909999695847524320165402741234853189145658081053463607737342945898029769195092345559224764786640151029878059493334475500565650043704918425066508373998887953891205584730755442626159778905005041630522267845045862833156830950553946581886437207895984715133238493147149802179989372802757315981985276540388670489492286677170884139472098424652781638884491348666482428730009690410160713963543394318207384569241566835228367709923009708353173658318278917943176213159331514228789197630547616076887639896308586529875385504707945655723780616231018609411207827528555537572888286355832683525979353650043674704910869590420349179489090685612674178058969318197178574760366293301036216359780611450820112095545528002095692596591293760001749666870979242115128560855797874381017045823809273397466537851708509205081425228642655694160841889815973354451029170915668399827631847920613261355670845603623840025859383139497771608481408469905854607738529446373754235369142877844472477814965769309316249092071356153765511504154425915306521668269739412587389808492617844961665194409813722763191577119785698637945971946963359741940358057305791008098205662141197553923015114903379765736432603407298592092524363551716881314601906848084483890337098119549654773738627878446884727280394955156713834791627136274567310360477857567620240939737368101386444986466402351967928278822738612843263100054814674322097109454574302371699559014571023078958600711869701895947714764096605040738421111906593377969993471272173627493149250129382532592954725895176741068724908706501610844360708483762091890082034020308280163920840272812322226587932430131051266097301969544186669881226139926719000961979770642016388922819944675006055065337168119817240273246271270442672073818828000443362698058577921331608171489493159022623815444345958520043327537520124936773291299634279527705392475991019975935637915906286331664134890836114728524309781996371102885382908315414543771261847059104956961757359142836576227268145817633714327770883683611441265465733325326647533296531048781344364047941245236080014895047486886135431928927943823245271454153378406922226245676216550038172843364253960146528372385355828482130930210507698742852953369758925452766079921877672526552488815282295911647783484957838268454636292602878921175353190310932701591090054933624355589040442855357821165642309249179032613875494188309514538314749798590744490720016140611109852887149531791373527461724449544172336930221518045411278022177202259834354303930410907109988807435949471197965116725372662697946998578907829939898217590390258488361659904009090119690030372137500506055702979183186066105917361255386940553073462412089975134000143371274228997480048523880703902701986161204180006825791353756665314941965777527634101331631293533760018618995973495805957944174695855078560716392446612581656999174867445542661130850757510898565908102620898654494382534577225910861771765518063820609334736588385763035908933239937592327604555266855257195424038613357693740047897798666112656126498087488076257378797504606144254574497846847214309073400110817327413599128249919627541828719239946798156400450623440763433735273800365743268365491536071342762296159936389617869996165268618329964067513712396150857119278623310054441490385762236406110021883670858658274578643244107933933495018243614545280942852162273467240532378027665664321312005246625895636879826747422683608501055187829223595525839617140037149351401396390360105411244166351561286920621818527987620195781869526936518235429135830614764857321039353598694013270113651784021548086363933030165328032584976111876853872326408206791263727362961986664382113314821928136124006063378414267229491388116348556430621082690261015758996169493732219028257828379609263764977964739369322440842693433728553130405054511387821831440894257770749526342193178623128495236815751438627131386969285539825849510201031057526034353903749964899288648262682521463147935190098559207530024464053573027408630750030728443523099911801469459078382107404010910996137069495707172290270177552898620941072912676391384323412755428735058153232827857873258127607073978302987701808038587170354108220623198217348547665187406079924351830976030641437233900617434583723489428031112781377366510918460236580393414043192648512571346662008570815289235157809052495887100371598612049180627550238175574178613619957661384791506063927346482469875086673317856517953852800741478853406278909812730878856484040312287063592020366369114690813088842679929079124963122540121777505436867380299348028747974065171303679265054862335330771183083374820119148519095993259800802645376329255764815852719808352163041113922925584944719884220403067513601659532972133111983950085984777137307731005399058164239677462052970884685621183288614887129143784245874416265736739263678762189080411232825838689436517093647835753603041469630794497176075495095241346188656631418400705442034419265805859091406377095596313975020682887753114437421345967037102456448742348661384511799508814285681400538296628982463622055182748733449849187819994290207512099218524177675436346861671033762075838022144731749452520731911995776099341979792459677854236522548462012992811679614532279163791672751693355796117734450760625366607044315158081299067500429285612608502460197890164702894844738647698959907903074263894185865279697353756621749649403278164616949952594132429892339189739668740805464364329436306663295643113709879215820781709985077091876694801788166143599796522558943856110224868228203884245149033749704629813274098100498011517655473643924617973107483026768689936592887525420100812691771569846968305633581383181155985234779558059425559906830067140170415876521106099581230034728129508233181159021826287227020272049235643227911172947313368751496676215898496459982139148357053129491217047844120019617965960894674895857637376662764638029927223870619755501897031883802366555773483869534944438974817395025233652979408900142187580254116929043901572781871719765980385585847220733951395401645639390198240590546025099986441580048334269598935887338288732823746553369305349824504604745085610303908303071504347211254218337773833169514763924304569572795994900480885095837716357497322620880928825975255118420265080554234842702723296884082182177402206505034190835569660053191550542335990696346040701421871057798835833345401322773331523783463707327797740525446004738566924416732245428613232306380639315341596387157051809432447087117262157782464564734444963672975656405575943233119875909087212280115781179665834417021042786057306348987833336724875507145120356499029080065058278632837230837985471140304685303620798295726517477039099711133545383527479592074515728795767662548327647878857032462991573374645347913134361311542819895125665371774794288664285189340016173734816730799683490590298019000545282707288270114556086925549085291919286815994211113329258670816571338602295833449157466337967075323111287066365101934145906607115772838268150919198311266068812695308224136008784777420911011297698560953981164186920218407448149693601873834545993187659897711103271419416194520111565169028903544689017445382978636616457374282853575687776176965433671134919674061241573220986303631124719490365958396801417817184524216464859409770898030932284192930039470519728843808896473036065005245900294110486858456816628578009867851464230164684375947466593271447077066334782524782082586564649470557372340383428773203690293899163185188516479432074431818259378340692166899412153282974495536567890559530864670481004106035580011778594955107379624446416865319544874631660435825634355390305758027880101829008202040969109498396041036531095094379562346693186036876058216966389141723463285025993470402760623428227263507325215458654792787880559629504803510003856193234690176876880092030639129792385622908525735363030749654209481566893833532919594161156556977129344765452880278375147468543515400475419651917731973249351629773565638005825837094152090584888546911860105083754905082196463501208220575030804013926508767404400369060760179014762298265690439954377111166663562567485636464058454874253651925723428044723120122941235910590440977990710267804998348186600680346288202336953031949049271198851515660834984338570369648749420299515182796822204659158582234426744999492471141288503768057055764919692112435246271731723014055925014749556525687267296264241706458742890733101836910196047473145958269415498491766348720125491978495604331470601405942179460547492983084817875936969207474343846299319452229168887877507600862665221370668757691243581884836897507800536952822488105456840284394930596163455626890554858407652947854080503663249254401059365118383610487957096768089712867937097950829315286025889364879303675045361679035071459885722793432112781695710343540698297980797782535167176000465946609132951645028600983049047563610624150376658256278357280578192072214489299338777223009688792571783407454737259098960790173517704904498351358249030494256325772707410881472666673908346785322904607044010139327424511647779487628601842783271619674859816472743745354460828560413883160470164131842007009856995094641632882798968758801069149170093093115862352129733942291036781013730626484364326979912989661480226198042830555917102733218310664031047145407235121326203875808935423340490758035820065283551104155642271220859386206928571513213817823909325357394571176627387921321504021688459348293159692086490543759424438384189618942113800327787973016350142871849803862343347630446717403529786902230771088324552920771763263489925337846835671271502214927522787366135124551315524653675460720397691134100615544720555319420319525470029632373621174117996583432615051706730826098473699502342989462775492042359291950299810325362573830903400803894792345885334980257936552318670546162038921108190183150292553802926828351378684938330943467506375885263412230617976237351215065659149897609813841137932653253077983835192775060880869188214081678100338023057594820418141704764853843598699329349440916757841866779790892005500683831059757377659698310826820160996573382364931814014077676688947446176361328918871445508869162196156628277258718784714800804682699147426541570661070462572170035383604466825189549489367125503681569107664960529596930509742140102804931305618728250359702797022170332062332893888614151940819047432457307164716872483725027392874215516074923020973318284913411740460957780290660099902161552867628999230964440181733461740055101959042169561531206191811660936466418128642463464952616723333728398594646559225817956502100950512838267894829045662565223905532755062801056160809279008932018481985945498721510164711677987975094874182977114009739416328014206059736760563031495724960385993216890317874334344451620667259184451388893550405176572334262733969917895857102103102848891658598041817369936505265051674195417706700038094084005331923886661659913982884725198819326664862269876077716041615844617605261764621904583643307966180618426032648016632377572881702819228113080879806101565934167175299118903588162731306756756284495175371054774105000240146470451944001812276445397624983603408261729396958387765144347994244020702273859048152374115256218896088146821109577330101595711947355631024031858631070159154313189910956510438736930600145786639098313114825511424030156342298150815967201079421058095162077441942779439892180169802635922029519985566149919802865731291243875898263911750343842928474251351087880049091634370266346728701705370076124338267103486721746877446727712424462225881109178389216435614582391985056221370626902958685530560534718269984821047835688260070098225855511778504120872676159603928596882800478389814630711802650984157697710880572868726819332510008226406085153987000987960605464833857890831023335997130842554713890252299595434901311480156906896807647808711682865232374617924754998541699684083506565496269266822167746789816616619865051827397932863652452905123366381263696958438551534581815113716801386358336908547611679766504698851725913770224328515079037270949307102339198153984210518979125529555208101263147583607245550734786465933057632690788192031640956775644523887880713299734752078591354025625283128491716980969102974330222350983057601969814537722238953699676479494087951339446890678678840161775116325847612663705567042148539874533591899201287806104671175286541417110111374587797950696378031841673330334146453547971208476924007338788090347370869281732186959309040197618370380441397926465017366525207974061407025978812599760417168740840872334716046383510955784383753137276150307367252440941561274627369284645615486863912607246488682189274931972139002256692761922174562379539181539078779646150483246785099502000784737804535388453739998969413148725462574628983504986156715703529648867998304361359670702653002281022878805823922832576189279221844476308276043500748281825984890946985042916304958611935506612331748841700564089216679305190021869677696619634352694666121071274494517165582012405901617734421809096633992570146952442315963762652189390801234578936925924394384558405801477906204713766752063837556648682671854857617449331935090674877731319384749539396331292630363656507249133664184580990941986216644795796426889621202324096158249650134673328551070604846871726968832050391803746705078926512413649918644673203870916059727978552706651298334374587423764622601873028979307263025079783700026276278653315032930297876077210408449920748469153150141598929973404136671337150657076354859798753344250479540191080957082947560375689270068900725607484496108678057416229501783360209922354668108003532406941367378558957941006909386823135208597852275159023712479046059279649310276896099965329685686635975203526909148320046814244097358231839401649688824173783855830011676244422742516568405079976474488253572409326182410161238755770446472122020476905778122134635330311102800155463998246578103895823764405086947900731487101814367112274115281466162397752858601540514140315686592032128175366397672660340711584731789027033147455040836000391732906305446158508365322506969096138762079467633196061043294759109988684535593579264993817515853641350154462251272339180677686985506925469197616962447435698855160187108706703470545544616529169315712093880929884109424559348705906627469088216914516234315326712042026695496338044053857988720449733523331533979093082558030662162829915273744882396027627569655785303182338223581091976228020300200358820351935573706942375929200946060644598238721613004309418353726866894865098542463698623843399626320337055925173463661769105875068658736274514717804257271376786690878352820506863193828771011884579353551820565958382340247618698936540992750229996817877517579416035268877043475098660656748442272724539281277280390624324391023038318392780389325525875593692797447085113664907472627937196405456147612737664476113550081893880423094537675946013010981755885532387810583858911201312524964000691902790670202951631175543241392028961222451121133614642978539107889612253866079358962838808928661896111124156994131121000464599809558211115485507039486618759454763679639368927827043218613374485215770938236562919424048279114114651774324252708289652334785450065639016726546784114537359492516714665267329252339355392587588815096540400772054872163421446546254632211990436928987489605450661441661563447866474854074259606535279700641396465426782047563754810541558956295250083671586261600406608955626134638816742527108426593867190390864487963975462502413015962790154018419128268781489341135074870975342723901659125925695332505935490973692805211796928180316905817113361462004950364128418907599335682706182395777734802792520154972729863681707572605457314671537605459782537670064335982532018272109215495250818944415497989040160855807742081925172710784222552998471361468730428954094930321978199617916154025630223720656373427623842393906531937802804219183510072066230226947195210141247080769291429521507168351474221829446788292552607162511541507283201276843195607882057876033564643758021589127366634377515371073736829663539235240114936087164213848988987998367206599545296408069167179584097157734139207766535718090170393976007506428044994789951508463643719077920858660951081346103895658212766593047922210070097376252649626873255305166838080845389779911624817157035812673029883477742845625878821416136644917869980359111227196115856235651147288116682432329283289687336644051085227614079312385666760294108473185608335575514702099588894689417032692707092542872529266133388880273242232085916548000699726827905747591098867511183326169177997180237152755233192525060472999507567108865147963318601039475205437448073302004625304015383667397817772145490863437757567656363019010753038403332821038932819287350412587338942227885491762928126307660289875975028545110458079865988819600906802813520776838140233541503807741280338276325077727376549154241881822761363015945304944561823105960392371270294859493739149579838217057529814695237264244207871215018262209171974226631914872760406399046480045547035373675115207394907986589851467470223610813849801463717230990687759037423285817729544815392362258791615912287178725470921797716105181409984936568313301593658090839294963281808929939392553140262482670059831179918975326353366764561993517793318854081726268281109903819549031775390038545908302305966069423595270761436244955554136482818240037245032258451167409939394871119151644162088009557144138341003960095702499765868603690986567860255990738233837292745456148465472557393204963803558795365331718179862127793271266354019592920850254881638078755550600214507803884650713872229423934070262196632162164822844693340468222180252534642726332704329724473949188667846571628064388079083216988272277717849702649270460652900763457210751085761492243930997353168745605533143334981963100983090132814754032765650966897246804615153492146534643925645895894250332039852027476621227809948234907475790387708832137215533699346595310145982537855271480216462219686161507386271889424336573034078308637773098533450774586180455687774025522471525333445346480119027895218931044945647038515541057541519595130020457162816997312992860544089612946028352391895021296430828158935065165956567597322082995020290544937766021628843549350829277144157512855181712087274213464624333381715453273310084121389030222795504080609178351100456796899990562980089197177208895917591694101424088006308661716182756777640158223258369639557113764539472178931640817687890394580614497625373754335432174381729479021943784995652795474447696866404999941292422031802729438170317254145271883372940022370768288938612644066711656145556894674075336061232255386497492737652540114618837660273793670582569669207389952674479353606723112430831081813641621924934329646390450019666305346688267663239209153121888050849850165022858847931934123820275665948714704874476195046034317994936126954881698735617035354951212889524440651126056749701978225738848493935652584622414862232624355864178326510202933657982018513209875301879788083888833918119200872079898596111487675482557882210448866833803548803819201250766843070160567785023252774094640501645941834823992204819429035058405323526171228377551340315685684742317680564181683867213484230760821835978981896819636253640661630793028416715614689214320750247856006581794210216354100396961319889664870420725857259877452045819269709387793976575319221457297330693723616808236901019746182187031513019824116543227101587587379340279703714984164537292722949838443376460318185983300654025182231758595347384670628663850566184619831113065782888290261511622561014110855523686202703523059043185686098073525715745904084885509212762501424730835526619679857972064472408722841382743408315990609599432526837988808342809436001845820444697916407272613673526191506578367820861886070230671502895513955744727126439608061713215914100447239122379575451572291660248268318192654956101281764081077662927490215945390823946079266121336362723481447157755025481087778710715673801134604947373712616414914358815436655980293153174480772609359556320840140245508046564626520198168596216527684369310589984687582193827872329892088686632733588451038561627143020383562281448320734208309029179145632390871963723528317037427107964847615470010346380356768595134173656598773475943317811117131885395840873314252610461481773648053140960427765872982539849808549912885371452587591179328487886339038242051233422013709023647910036317374585430079923663616197608689114173134184219031896382642490826580009841664197711704201881691647442159173236772374860410313369532260093533489328305374879876780700409884524224197538885833836559255470541045066430752699370876035762421677106915307355362538392077239082849144556568328167827368818783843344957903794057075233802281595169090683427346418101671239849291423044044594854698675792415471945892227930108994351615199127536727866615934445104454468605615819438933204954393822488691985121161072530519377242025126617040789467624464088223142124394140731357048021098741335018020481116217029692377109351683150886185188076955118625194772432312579787804109259892106676591522118958779832222887656035406931061646628301460237511890542669257687676482369855824275135975102349459651477835231512914626919641600155901444115851420461587095593312783998349740450251559552208286701793548757705777844988172010924992174435383970918139723253725585472217047612958998503668677526142694206804189619791482408135407441019106135549563970249392422150235964530719922000651939093634714294629002981780662049233447794767471887616872069445999784025115845250131131111508740325237935577338443384691620833179853220933539002281372361125836509851355696388198056557717391530323877578812453253402228831690863173224043544732528072479439648066847778211981913019261170412768850811154770475816820025065746575201779365568319950661680615846557098598996296331755636088076994379948039188251533877454238937493362002993913105791968924899444051591505160084093150249691768303983048056440782394878043590574655212768076292343536435599690147789881931726831187763930033463801611716258151064670056317198903429147366340555668483943652260545051533837384291684187842573893077821043502910792406363007323319761647794579555310078045011602649721574684097624608956740960690220257843402132582337873960512698753436636002081295464033547258030572130382837901747210237607197640512966094841668423946283475830131130245325601580601916021242829062252625105542823821430431135145203119408261858406573808664858830215214929655972936225173798479979950996847396454251522446109757496169998683077372640875231073996138057270641429483083424026794721212932213205467122564000852425336538105722557358771333833218730674115751273045903694626927475475561796014962321591000784738824193164685120027333371844086560655199910977002557017112526692249954750917514874351823094837175948306773500284572466722525251219588701206738416699917316799368360854205961984906243810015415605606049904231149034246577122715177280228680373685169767681749700032088545171134357945826673930291043677290964600994010236737496547236898048154150775201451741201260878493218718632468440860484328115724968530322220333702381932776611680504774377821943314705169999887734023144337565509867879665901449982528458088080084474731020863038365765529909647220511438101959216756572873714338835276250910682762398069894223403211794962201867254812678518678126572462592098114700669557231594757162828429984449136344416850553179938179866877532511269349527754195172629088713589226060020120160612288470752637784027161063923877719588366960901490160568103213320896556574619773938536511533773142544732708163812041300484390672627455031353565816696764999112785251060187802045024695662513594221438439492069503764255305746979559510111443981921918486335247326939028829245150025934308434555070032994455239897897911827367338701024505167200046341959706207657350334507426114401090392749698888503973303641509561493216464840432402645968217945562777878867578622962223326060020259037909847054671576757080836776558633895103109301784299941120283612557064342827062759071413434495818011978619844118036772032283334897871395898939532366717007037598499588654872183762782840578644293353454550349297816655629998003622819781511462504945050862173229537618879540899690709634808337889724476464194000232669723326082144316302048662001642891504804990951596423005037336160470144295397463005904240344799218498234604643306319284937114659008467204187547739091266642170719222811265308777082862142043011065571742044725439053214768852480356426418464990440148887509136014076403245088013539085067990787923306236468061923555676295703463498252365207576838912931017542387629367956157044922940651696113300161712195776338407962497159476288335651473020156076443068354671231158113725041095876940291128503662827591046231402013557794899938649244912197562874059876687607888531753037208225884487433162429039649094182610378372618232331014198762633541391139029688797135946608573549738095907939094499328984059977368105071110572905264298014006774784899566775280610879776397297896534143258175808369998877166509819480684642176316008287272806210251976744179881957827753398307749953686478628415668098161140821447497608285524726624878514946270374120274640353472207199989360405454167780899635387161385646227823776919186281574013346185190798839530026275192825575552860613834013393730515305464846466134294656724894082901588329126490865075194986904503476786210919884278812161479091968344920944096504366320948503231385799046931464015869181583696961418753095929183501750413636426144042781668933469767737826506656928672628351231623819982848127965230731850840490215830135821911838789787373105235693000224384872645392446337884588276519503157316513081170934313119423617729715360189781624480149649544813973204704381366888280617928186901664999532972279968928511695593680949314669699415039907736099306839456621437165742707211116486114618100773032313846008709763972636584354023845932261462869769244734030145906527807816306680189189928924994833284679281241873487127983393719626173208363036679698367666357199830270894760033330520669048353271395439074487544447014633646886366454956378507133999637564428704521520833816088685397442209680436674050332868869286429147618369981468418998729739586229316304224019475532244500259731512437906814463219451321029645991035492098155190709233029421125655202109049899145982275695850189439578581620405236849975639302404554579674600946000971214284123415718525074564468317212232890434647760190137626378522951350968193192739952454499429424595720998651367012615300239709982227909011450807816028896884427565147601223176184529126636818533360499193471454867341149071419020799732012313413814991435729102624861081253067739445164850310650613916756018077977341604227723984256945359963835116157579964454423166628370988014695465051520287517908143346222981115918024854512458658281577047747607984113273747359489772916675930033932998350638420325582434314682531874021427094531215979605688229524155990761508747852624231875352325957911458962951903272871176736319366218016760100673586124035824329305774681148703149584791632897938705089816879448542476307943289832348257553628594459182813377126631799565743532166997844914577134360241903343566849466773188720225537730329783473405114378343707710194855905672937521352971625115414147234520168817029479369893196879664886052789462085701170977105172200983155976883305476645852119726023241058726641295192697283128114003350444100662599881736401230022480216728485142237523639101156854466887230849264845671951457414134774592658091843760557643526671103845759451716448546968433765530138242487439769796303177971399415861227984530959248127539919669396179672399637539317593066867917492690780394545889671555673894564509398137959977892559672715181381392322984714149711411199686237870517006327223592254826504404718064951203054980996857964435134686722981857859819532627932060694921882264240182798018037583405046230563648866840314866076266559826801932891729777554565185309118640052781453404333750635043733306812550503043445914865162231619070390643408557768456654432479251128299719270657558101621206705290197622753036841819695377449273319968380928919655989811905625641577848709417323328869776556114880653846181124503791194719762137741837898625816995048082955888986275590130464126430980639941893982044437313605514938513968150504729367729939191003530893740184906089834900418471239742350311934789971400488570500998912363841844967119906270290251112347180000979998016297101833901409628433405361160966361042930508723003962388875477068911080660660792311115044393837829713704567877619544885245093445719240144673456404902456940059463422266364997545108654211775678275953528716166894708869462382416623323996642265370334606008856021796720960064784664269533952200434704394114822177823276714738677593471659699712828896648716470326281560521841290169228232150898425626858657133542004218241170933597835884672987618015116406748176144788543597889559655263639286063151695898698734690512866319052788719895485890256985273753687505003778649298992653182883423240248965423990234648745224178653519207832925204083687574033226917102652730431636852449747077692556538144914433479369593255318584803933537691963794211955960189871075261706703409170921453791017409792432650302573187892587322792314893237825371600831550231242462951546924761689539435145887064756188782304124496099955368836698290218460694256933733404210188813594497929627456089572115920767923334675214581449721710285062076518165586238629751620334083186424326643547120399216082509646487117947645395923769408204002348033825627317988051939369301378381210528888601631825865868774627242801305365470526738343490691274028158625966957312709743698463738703699475830429799553564211091482700495055912329472184418814566828581252527363146287255242952980901989248999902612976052951276663396302794784530327144933551589925158866480550771984755723610838034232866020526479180040102400891000088297304394019144036010286827096113162426431825888952396041788127587672446146875873301184254272145381407271691818303673647017617628486975464845874370455178574210612733826890793232751907868647393080040301049163188630050974072553214293497731639491457680866353725900347794638201380795111360950167353394609525706596185397235432308598118153396622418682389535545980627560389739068786014496054377807736369106784364373391991847382281517839784123871317027935789362311827608355001106960829322787768048509403330901832511502836725243136923380146660700191631924910544272249905175767733919212401183642756884138379924264225477310087760290324893780714265312087412307581882128850459256260878249801207780535139469715060845712510209437771091986004382703928001094192090139946130045380437573179280652680228171517801205597016337721300374523845817320874472951124885965298089714373578602908981958740276606448714319360013078761854432373180887231696886032594279477835496376931651095195804838605718117671065531341174870735386590202822017262533578606096421637592283171487664543443819006019611580533828475744660877718019245419219233715535700216421250853245037236297121752192289806636180972203347056151954845915978579219295200660873306008367366600646631704774309593453614294414433003855503314811076794662589974939529088886006268819110209852722076252581311161795464763812211917557074106558244639626426817634121998667772659782903604296336087008291804845917045753706173583640956348876415427793072246022908551230674869210021129418388661794577861788839619258204770462110651473394055058984422736455802769505059983084226542577374845947217689378683889314351846036371468327448660230166335467158914678346292283195574338819743386109474575998023946132467667496131867311038844438706445063986794960497830374855336862612723034885008516882329653243737487032428697577697790644598810554381393031139212081688505962104266352989669853014063068382462530045780519234644600052575241868268371722254192654654125511417976711686003520138167984472888574815224074449900836077687381721785409510335951947177787549865357759654728081101575555158019278674223851626589383732042519969313778117357835352468799829803838593880199518927192826225780789298486755805495440917477405881148794705109852912801435189548357286362662941062188650961915683421233855443947924177890658421551801378866748051970764114612501742323368157633507770052022298987020659798117682687601252137200083043863158095609303648299388720976476281064804925727139354130399913983902677132906938572103964819289100057328771573127153448089428039949416048660095920828014231282450524407200119979205629090056584946048524654550551825679535672216388806458402994598790186383455020188538945412966674585967729546365495911861332162404122365197954043642344753153506523970192009486803636645516164515652804935165775578189735075887474137309874025669425443353302434877240838400840895771588527786587865351018489953636452043641487919457920028090043381074370895897248582076650260806607988723281763720538486042842198069844647548595016327142366681604152491610828854006488985285037353441547679291978123625255714925291417585960784475867634087878469180269819022514958626973970912289277987963972866723294895941444973717718165063562179945224161454800790520695143547125711872190799260235248604098397573104330929215626675842024123356385352639161112696057085855733074625851290372034519324682319604813703372749020687729021678118531695526069271792610242687453409758321995539057521242811308651783997715150168380808085153024718757412984753351099287312552115695639885834303511806457867113244361586841255075340667683630785426109699531362903275719628330872080725635830883922135642902402333851818077333852416665649124447189620381272908552599039829880644951825494711354443761993191955069690559399672532901488656776023910205144067757487434149538945889050624025544689872579666215889196901305140967301073370067795034839436410813849696664261211634449583639379053138335809551113596242236149168772298558491571837761399886122643713265679806261577610347194578158552063121494425060186966933984898643534394761392256292422676674369359798338372701289147435513622315496782181906552068199380247581084166754281726045192442882016499938544946327283636252383363018656536252429427024309148093959086970163960481409809221777057618688878046985878346075787742596504323359207390469546022304366144361735062365249796055758463673565098426378224972666313791408619763193552007960503692690107611626168310310637655910658345873728707832546622517150898866322709309050107367600832004064105377286225833515585931877837022782298950610073026993642455804757770377783572758346895070676598106726171115696828673914729907894004552256834800117418368990515856287007854780204964355933071187035899747609260552588310614367455010996624630949408823920384964555488948895253580012564571638334150746643882316887866469836297404502669382826134938079440940055457315651159143821033514254084300882308070210222591455986099012963353476266415166160168903963384714170045518185381689612059022933655388026652677707798138192617717441020360599376666948211853330442297593504319506247739330546712866549308400277852938794442710853277586793264605392140733442186687347401305387490417193873213665236050322281114615380624887313133830017380484038435829868005372676489382770538338730575794969476746720856627167845441504610869856051575190294762497035186681290378303190854365258684541197862656485007742601028613350027425057115491744550139488064560420684513091627032760758275044516201423701788240764104969851832271723144092899296880434328256882021679096812070156478832278929616827955512899020755427418518331861939962823247149508674119600397133911424232598396115884465959529902674441836324643423475301139080486526982519574997751683818462586529750721167009952158866720038148744828955946952463925255640539361480779964146412963472930102131854464979650607698717177195637818326041649065934688789801407558419229359372025917000399755976325363736631257061739169768012315299191521529319876841428902820959587114249516842253389965343802356882383969696396900510449162340833111651685335314672756448785674471697968692572278590479090414041332672128583356384164079570283844241893883490176772589186986204382279048151547262073829836048713958641818133017489247765275384406481637516643587236556160020301091177912752302254678524365969415781686651318559119528382354719444747645146083983641921413709753589051767039072997853099987060010945072555236370841479434495439143560558074513750657322851164982547745772437222432111371362710662760569689599832652949303465870211368342205443584194636296259752391281647087233567681448333653418935589237835916695690812567444238157729895740363812910463756912385394398851167671224720307379760893206434851966370375840903623371678432591392011575072284293697686539080787343709446121465590763601158506525367751266762839473378315741036746917484233807278224121172517559062225440575890949007625873159487045414284778718508171819643583307141362506249726210891939295268690543348834161153600317930926371714093206662792971402977479323798544075510161076775420284987119540038258428413118945201293166576049843093115193114729164667274804542999421796094144861570883967698995289249487277145500967258830625446154293807365504326779198559900078911585558531114388110975834538045970102516810134186831500033394070736120126829332310947022703044843754887683590189890891613737547136943039248764551098374249623029162627878843690360745327471087080554475510568279349728450456483692672223980821833963887190301153620672540349233081082675862019157095427273647381546071050981280159796690509582331046026009735319764674118574615780377952240232696826142497977288894985774262113681406004541653263568089825799401126308102755619837887937220672304566368658848244968089556274585773508558805389942339839209089348428819825644590864508318883220178249514638086903123391350056997919121947934262478099068991572231463730405297085028103700563924269110205635077402565286911725683238732601921046594976456786284761772895531808422222259906693643901185513428635018439389436239216972908605063557935614535201232873493181105708432740326294889171758000622290578616757062958950100000474449546377188389492410655116805701152616002453285837152076551897522486967617217365379353968856474650145717369428372580872574876660063720787607843258335698632159567934377380520155469500491540730730799956345728247231199491721214778061684685777706737495904806097235574128463253413917731136547843478506431832669166590612890656629570796502007185449332230899448741435723518451992465158608205189438087789083314021922718512058577076573983792456165723398368408682036358828620572820306929990343068759582215281815665108272337491904943541006862952692115998276417106990200912055152774451542620758104032315484794147996347173055733097670464431248734168386239906373619854588137365875036239854465573207410602686080784910956279275768367490971442485406822070690701066110712136428923170548655273371162360445649312474174472093768468362844130584731287668537550186775170636459893678974401802807168645990968097022724070000445439137259609865570978495052752856867163403386333888636483576374901185754831331990199201432639377252804283299920510653662711672652338245196922858428438328664799141571074449848321448495419252422970953677612286615325580654647731580842545328340710776742560302235928523428308449735210442380026265100333234628587774203962311700343451108868079085111460675701742230134224270375726211098034935159603584955933915589602401656281323806033833538892013441692219305821438074584408036205920828040161315977674054294107639953488811953054213073587200958198418260365578886150253964059827423136465435971301894060490076381357825742735372796832126266204969004018605858824612439843636773608712631693085460682500632319334183888977942126229654704418176228176571487656680170035781179907587525066866866587909247002486688156666407229918381298701156649334114088162681947748824771956466150079905360261719881520241763485111866095196539391122680017211515904292393102001578567388455451300327208712926762973932701955855094383395013675128439368372256808810686108210747489791574742414119281553045375304128857395426075711374575380233118244920672441361202028887059148413182703293607406767050422461964998808750694828685529084999000352929515959385542660811901783518470300036462317012896293821390691387779021443323320418442272759480983734424111782788452044409770900661461611929649007171955907413436800423470985447005299123701613271526036574667761104459265026250399740104269648633022359714366732964909753100027796050780044563290269877508193051012384023092208323036010135865525834880202888295980896871854275637258155008853020516348365173933211652548446364986262607692837201699502466058922908052107810464621456837030441550395602529922951744023097744528764328503747093291445468217735781252191110947352330191119713966664558995995463351229510615573066016795330609485172039935934074735056936329872636590081180819805027953594213381179083515874115469505269205076313675137219892451906890041498981468097883847557978076412786871218568189720854864947617259498298980434039816827716581139347924621667404860362096983077062891843782074597251519308126996680454241106876391235836772597520204145195370300558986591247738049504627677567643522635993159053241014922647375046505140569637004615146630777002547521225184797267371773527652430907742751691918021251956203275224047612686946376345265586714207493532194188595904029291306843631319640505667301534837156727186031924660433666231783034978520622720725980518195301757984295986301254215287840037807416210207363999397098260912574661403857850400487790081016863174262373265820535827077810417357752207357666701937002399735375198047039565095627948188444268095341472655194753501083621030475081589966340842930418621530462957034446644620671926225815590411835974403295970154677461661888697534566130022737229424878117392604229200384435987718937288969677519379543620307825199013808558216761574681850707775925087542043608644310697762546012671883449749711556920842155350448192518149719833088323959313300559806684849547182379995381652842644004503081402870356426133737952336701740572485098599539258188340327322414819264739145275700439544820552974865296120187706647133581379686085725498154691556704769015179981014380944572254538213476967323258462853857768599169403381661256401640532633755057142893913164850020165043576151467282168589848016382035359541028525114897273884936409518462509383628643345673214737915821213372681046095319037503262873836455667737838847464382942444382352178971892659339631362517884563911122977262152471146111710182919705571071123638964310691440665066334231525506519112819870943412146565557136499499362515164777249766502314034071179996277958300894424739064984606003831441568101702872521478319355449982698835133594104267426758520809193786103598234943416486732366657366317839122436744958603983343266827826710193516884122466870265743805314880641630655849746334615668917751884551246068059674658698185638252153420856043017629561625718952598853687160106929012413867605482113715109268282868630306167521121759609946452745330155655397573745909114643420639899180238572628712424253241962746033317755050340825601930991557481408799342016301409891674983846297689018488721495644611244560898653989104993391123737557785367736843451263041465305559931063736140684635984886849558416331615982362327447006638659131472866287796569957055698612490755148153745318295425518616149543880485131674942399055204555273646592350027798967487667912482416903659537291544749629517994925240014985909385957246586384842776102764144595010019780326662960868038114470475588068432063431885913848917119008360125483576746482459277922128847503844935123768340138573382995194145113078355663442160940762633637648513229871085500290354327229057660544264028017628558500638609188609880265445651550142760798739209349283213832664481938486937806187732379433028592395698833294507152751667561603227316238244890962584672592664563978323960173334226155286528955139390969397434120218129192840599619854608983070633709996721550629238079090234736234841958024924619562367562449156835830767603021587858296789876300464491377029600836141630731066942823215086537342267060148335694293423414234394446427006953451810035608697956852097846444796343354263522127110802719797614059507354565762864799805014167612550207423709937677524714822070216684767897078866059583281918159738634778045685132980217710541342358791901730810329859341351326602042515241699929538587478876929320903354572530790820492743650421085872741128106085091002238484736344943502540735627313443382048342765203402246731311376129934009159152013778777017078677301173236907736329397847135964183411852418249745061417048203549781246647452201928866618760524956477026224880023728871123977615208454076619873644573067018440611338592008563087558673462642194872186292145232712287153809918465125273669428560520107677379735304880765661645776987837486624806216349809461956042329369121197145981495896734689061378658461966564171064094076731976523052951312241200128357907978610075901228919468788981926654281692842172150129299885808288137332688527458839911298058868643225573440785108067595916956059907661137466015657761112867171818385861230581914993426354888638111334034697202757836819607930849302817904280409865452052725069162656188093377659445074587284786594762856484353604652258378971064469849284254008507121608720831265459952944653210222689740807948137888694098825603282159050200530740429304804410963113151066827855564084166910663593867426574997401775099848517267013471308915882317471702278420060700151472866759492543806795685123938783068519693017173271577234557401077463773084029521975650061164519002405013145660597506203147678887999794470702885589829106074765326113894890796416323997717589336366016816780466359969017864891990787764448267133747619286568856155934750953746233587683796229473038971335236860438104992178269887110611465330695892923524430930330221317701734723112427630347042913312715510302875469673397788248875588757594680265855503610521661342511507074493317982034510478078332968935456620876995349228723863542945893989989720734619520431728395731337056902328728327650442125295494640094052806752376682214211628612615506703646645942278438439747138808399894620205105593204374381583993226071715273155278722867479173734586903365156433714969463107023551807177665108029385556227342137698716971882114928623662377544462051202401358852024714419520728734935876646048605057850150273186970762955047338322545755936800211209440134017701140783465779799126654467187958515677631095938727732328336493187013702447594720477875278157628699059369993107352430419998213117179642665274122607365178057503490747084162913241574748804156804638776173200841806683226432011476956061024760158542313039287405402078784456964384332436653083004525031512814149350215407649866239194408114523991124250809018531051929141539259772397895117671432037373432164428231648292378279016124863376200355819000282156745908568362828361055793287482979950908923287248021669957876174068115748721042720818144476630003229297371822634582700025779130127659662460804267680036477289121229620156112940493108380276631657399497399730330995263434185353463966880273185613935811870975250977446132683835906982940104169484822255106510581487513003882877127375564502083150710712182216317835430663330182800803612874689776603774036038550846297023148490894860546800536515636472324104483684774660058219429914555830975006366103596400405445999476598973880322619874069838159132696631271535671601551027402308313392472294869335440171402449530782734185962602510331118186383296841228276464666238595106508230661586832104656641886288681323102723969569464423496883883188349455305723017552388942375732336301912867079695467563548734982282584315489906810605684000120124468131939640594401989199343092218635901142889775945675470949236467477009139756926831778322390902589633106350047805787385845201302692954322545050256900166207647555709988759054809800054293174444047356820295943455472600467681733820202219328250509648174719101939178420228974768092474175586368803380827516765265904496402835553992815963791758957432916078163766025313212808459494470140260645050417361107903149831983276536653009569973622268576740631809636620105419924178310237550207001954327593133584372522029355916574483229790089052797858684913043709028575636394160936551930354377666454305803121229672530455520341799329871302361015541033363715867244751729504062236233211998562857540982959139587305289460672969765277963834347279280740514731478082429420901834656344999697460832554519191523482694614477491038998834925158043996102358462005272936331236809057842514735538206737331209606555357004713468520431430704742486136508027551026232159923971289340769788902746394691608159904254860637629576976628794819861748015175512587494627543326239648380474025498452417092958718817441884532179032386304838135915811539613860142142675360756259323947010385748366130537587506297484905929932628017074198447142516766243273142382920503649068955339081307709599586759458466157345337675401837114238050656012054545711564740945948633020552882393079914019166710922761079124425347123166321950979713531024859533009640586928124338168901532139795177249785261693344223946448450282865315755663977055866194734192987272463526684269981700878838716064860154404035847979456961569524063915753800430250052437561252150352700645652395754719477023238609090807437595469172395883309752574485917146501863966369271012186129983089577921849663094071762308934767321030447800431679984091073880242532220146992505591556479420777466988587082509252082056891532920380076539203784810116559052538382217904709543507903741885676068750686462098560590253368651631758485351905902292167530914523724959770835604196573251646204148324922330079746005662784311854299763629761039064814062011127589782703518851447909147718166705740922780021731078960254711614842036277425073907227047087117726001509350289708983749345028127770205241432864707557447774928476667552529355107297360402061684308101808676827202939610218545750193825513339215090943370800831850232524406761128357489806883915003669903318795116888090388431870941450109775457581250031683189918342731578875871654724576921360840615067919724958813175238463810616836928012023452040931293580070126552289877132767492414099818641485782961058372655581693044848375336851577225038020279022162490675669056572381642873879520516396554520996743659301747425542504986771240926729980154283052595993629957601079053354324779739037345264186604578802571106831059927718554558415500893790662084414908357588738393408774839503425842790414389575110068898669071297834851517817766312896898209573188038764963317166325312266536153815689469645220089143906511744075648946517707682120834743864127654450802042958742322871735495592916224375472090167942042342704844257082087114964437705204676372454876769847005816220358072363276809776024525958339880875229443284344868090299060945924560416550090127752639178460672758480911791766294551194051257268764465050807154190434727675816537291959353615513560608967943091495907187949218835668446439786397545164963808788080830319204578989293977058665230309938048538819969307609504456031142013218687955924363566240759205371925087112212949810578234893058022391491249505781644955167558668154954312615418893308796937592080549078601858419191481797368694161534353453913978100084564016212470957823377964588149242479263814557248873854134784455509465146389829616395062762783890101897398618800406357804180612034494798801580898934026749602879709344810936873136882465279270942020835888897142616809786529614994548960620098746495167035718879718595141405567686495839473132327612290435575159348095628208595761200473021744064872146095441156344149610721338067280741067608307240864607993915692302074974278943115990409847455355932835486444642959008184309909427549561091480177786955782653376268451884554799458894330515607570692407377832167842984677939267929131417181322992381361094741222565630550542851988295693886090377522586551669207426451495682411036421739322976941328487551519376329210262566384823843472375710190854135356350210714232098552883410055714011008516292414649299560316066716999916785453675239926547674559815339915402026661525197171466235026575365188113151992037216720894298003651097444223464869281234330634304121316111647457121163552625467720431277936586101448325750825059382184152442310559045367030696570219158407328253034101326221426939315267976560008892040293019189877679292464511464608378977165098445197149182157788231512879305775075395865292968899091158296829643774884014160511225791919178278484185203517535300690739665493536187072355646308948386326161664309701475269920649291402429257782149922610224086667488304263043695568516445052651339645219366558547963747441859482238233779015753580981034174442140316090871284400469982314552010347319018576416678445093785199603270707028902695304269524618989106146616425021642630198098113108671327479136606215630571492369975103963490252408869664334758041120001358190870550295231373121081892596010393147382881306099856353182082648442235419712673507198666640598362360976989930684352401441776927857359200708749417148094936017843134863912278911283136886078175935251485229127758595151266703582393897532191964706973516527258622581821926642167503058615489435756963508681453029410988057935842280925424129843452274434675081757218061463976574193757567049301330437797816512685623018764225796373118888647801858198272460682312394812061984079477164912336628635480142189378595323007314132714044120178322878951479701956422319896366215745654293621420844337120109227119019523736699351789243665390633253504969035220160796468537864842751070623251082831949436802224463626431535035479475828064264518707513120473235335378845884701619973271430840734352239970238191020658028010246168320678780589868263483084598831918137798512654129298205811822001474321888380985065433241957482071858300050630927767029524894691963671649320294200406133275905954110025410765461308911030965677883535053028381838259177016164167671718764138080985109652234232771265543103726321844003584528809173983483854724405197578105980613463295439881457735763678070910925365836716413825704962281239384147557924361123731421049879331942100408213798073064240374181263336458022046595993365329657468457861991309799336426559746957115641994014535223807082003578165403365620893469849382773569238941678290100370655100882823317647857006237027785232328868844533583766413329592844554741100660196774187236897045863483977749504676526479440858113804373775327102763280015836133886629964868649370502424526222499494509665608095456911621150383174604404107505343654464949646655612770231519347271239216757975104214786128906327670945018111586014926610877389415211463895850084146777649673242848750265820007953265142667742547295409902650874165111366665741963349024053018105459576694702909597891067704109757357236431428785608864359129761237302778277373900319247819741615700619377043516184633534018832552522373807123541853718061123175719431452441223086277484370588308586906031460611365230728827679752206722623266096828723554973653666230221808634448450288003673468504949035438024818683843697848156796685155828917898608314541055001530185279028662030561550237170062830673236512524179709271202089121962107413757298477362090287074165518014836113432309103997250812355491867279125399088502614261638023121672963664343163361367004578476057704034968188657485763411883364073741813266929572791335975367825355604226796459165468371075376396048039044048451059314670360273090152954047225821247201642126512000028006294883199138761063579976960738493118145562479965757808250135789521595636434387126872145520484225089788358290183067991730511300044165891864796447740528135738921933145836274337264626559457051232101196043216795324533150638614876141676348952622665392550831074149934988313500980141010038663202790929206877518024587109560343781024548699181781866767325298123085551686232876269986827382639299121622664376142853635626649855067740548071757339847667475702720126467914176681764595366135870445110941270451025954698615144282323433324115226897399138969872619555849954534584197931071086436896932929794663976371563082545401647282322958292036380730439672899598927565193570001493237236725194065526437026298362238315952778699614806497548673357251933536156682825212101771433977869412294994228035993841179439122070250819944198505678249411049184309115059365374633244405489547892920151342564392220001869455575866192398908176452953160741753092255052585546342769542113330016783351380296531000149554806972777546818460207860927074748472998857876205087436082347859665331066900744525187886131514018465222384779474825744728831297467109468428095236669056554719355493616929274025559811069263626848581045646015756346949152082834052327514906900188350186721064313790577891089282642888024087095328682623156331073111458758796902415195576269334584786416191570730196811182077194036244095469220887150984556801061380609459986223195910225747700123773508856261387072825235496861693454507754274784816379825078293302933328181590738938123801795961915252345990055516943222094783800378175471400467907912338741734870053801466619139339846018965887172456726165676480548138420169666153098443767634791464744622529345631603385248661628799199747202355377215794309513790266997343890033757449032447865829460076390404819539804384894746897894730301259598694504987465593034408168598227340934565626109900276018948861669527338092614875976044167951390153680551317004008373090020998425802142947622638097333526008769688496711215009334662286540863609128850609004558218172196367983152079536904243363744309999891201934074514425492561528652701805690353790536537557358134743302814720844511870891971032965483200780844209706122371986554520411364990776076550992225737145045042078717648652328885855038527980469085112914151840506426885336538531606399976774100849476337534086921373188810120116362320061658386718698495992996973543477918651378544287467462725338740801270293564077313722952937527675137380030141749872965658316642700300577375870450574197226355212772660624680428406204468522717736681447021548044987335753388188697530255187251553785906380517906988096233445334111559289630158075478355788157715381286090658648021766205494554125814704873524094635950539248191579302200911712476578735357454385544282242179972348603226935769476222622482329067333309125093579926755157242519364731833807709915794605788568651361159577911962234012554136882036114735629940828797037825569694618530598147642364889252145696592845365039660409697953109786314405940905674046660036029435856655133385664674460430975172314782364528479690544927964621306361262572786696525900986577552975854596839190956318176733222122581886748125318744676749761372902574783850042468570340887551100708325050808999867070773857318826166863563708985770918385616070741523395663760344543064495262422865247271063720612149248418787287991430188929827456126960122167112122916844048825304394748745203556184317659218281577459769322668810316754652893076184228503883911041233809430466227700356192247769156096970863300047654427012498364821714029490030531329649876631940041614791874829684821661586985278568888959744349715785862183099888055143934720236507621501418299586481408815229825093037884401270359595560721520349266760611009993252512103682169329845181735607786822223555128283313041523406265565266333115389531435344670945607467116763597259444710410198904931699552767356436110477537210075085214796458986297075509241327009042804929171803411236878649196544504754206792456676599105251847036043367482057337540685688121479662472747330470984397916252136026901441182783216657215325358849053391124750070185883512340269758963215025715227744081548259380652327836969308721597654060388112233970218753206000290475609859719379210737630022993048878835920523050953759143114428407376909144987292924830425182151757951604927986025584393883196213299571276987368059566185617685598283636028034052247856687793914469433445784147621221188288868098388931410356872170059132052485512695626775626837115131679249637375575438527634267340227038028405668418183834491839136038798767932792320039675722239343819775066681194010746382147813547140827863917856944742873765753437135296262833988023033655153225459322683394667629859921136360957761104439948092846910942275105864818317302570280956714762416114674808420719256457546900465873533348482551432288336310239128525219754172432081728478255357762137838774443491416724516353411769922484396472256063094071493623827731619526501130218681708711889185440977142572250182823673955777361420323964502175865984331608507710135751378744550225647161619129384635782001955253964794546250590343534505255661219611082670768644880998894380459315766477728129789223613747506382529324050561953332387465572739884920319625179503349041224729809443340122580671500205369488259918163689127843123899858192305206558717171252151692965050630787022630653505670394024708074317596644914058465803400734964644840573492435872636014398537749597918719958867572062269969335022425891799490193856375156973041137940776907634635931895730774409485419269562622122187065518022949623840512578493605651657935693306179738718398915146167727438538678591842051695529947831574521619084464307608086397377550787103565749812847039986857063409507663344526898575662900457242749083374336539382444048905120981208324022354795577670985528612433713531863428083079434676586038734795821410445205773985680559642025778885573351323901619834247375964862135032672706888509855842304527444178487912630626960197868280328653022759737594961974090198628512519100651276104512703792538468753772675988604372160033320365563167545120771874837932390897230780381792880396783956168293032149619744131182707979718716155758029326580649138078986365011599519993210512709038354451040188808682438843780639065953171550365283172073537209605959762416068853223408178909179700528141292036517113499658745852480499706872900705442341532041435960051785180425258078093711612923548564415452335555261852945515723197106865119604181238982932656323968691604355014477188509259005494239939752964296682999373139731226262516823300850611389284122227115643084165749477053452366397399673990211481761039822811881210623635385183642351656281549851028053233336578529472893055042651528552946520504553107778781259762261952315865387198858773955947658826036281820489702938432008469680934442629187443285288703319674713825645749360321683263105822347309452858831784568366402617547039662110978936402476504623131435365424399348490754605485146559779871539898168319301674088972932369375297849628872512706688172164926897680532471009005138436828671114128962364801641568715780716792488972091761299292443422439591298075371337764003147758796774697526000466224267747589580520990025720217200240869660910391039356078932514623427715584525189805049394812974305966986101539981896580078289233882680769520150339570623197585583254729145825101098335700751391597826839460042590559647791759213301739780180659795345966464579958368995961762175035402329111950248019483884053318524630828480123882460772961105668684098787667741327522824982176122177366691107039951098297288128984178845917539569261077115649162732456210195478750516116757020563516225242442828922063013672640058934506141727800136139621731993360057095052533303810788116089301730363446908492537236913966762043221164243433259039356177047403194593494526277646577030096461089886666225391386441210005821412820497529879712065407527904214333513617991021788620363832951166262947248433476945282439735984281280837026510609307506316436976100358997874898009453751717370633422872355590832397356015033782338755867067419424865163213483388691904002958408358131033754940504870902150719616331843135098440389065161460624202657157363677457640720601220588785939428966288943734320414217511284086890544489117673114776365603237832851627896205997733796358146250586614577352589299539596272073227462830787365531389276002522780884169355320447379989491684090988199714380044432535999439532508478471600592875067309913973712638461283076730563488270736826262032959938327938580359171907803859226309069655446922162887913673308495841085291758014689981775120421890963905073629700518917371886725250586494591588631747015460071495711731342102240711231485466678111796365697214448192397099075265453536127422355596703977202202709405200213431265888215616781357319638751194867855997961311682320296236699808581250206065055605987614969061439990785967567586780147338247628150658880567028129630233454534190554774881430105777851575798881444825696404105700618273807662610253598470324208554681376990603143007069300784345924358366867145364822915423208037090430607985533724319587968677585403047839234649316806114564350989203843335090245546659577714111063952218533219827102263858645896106275818800261988128292777644860804409502658041600000169629565281189191733465460831364166841125526301327057495678980896804453382020133646820753173487974443796624874523502265628838060945567428530270150415340232550138068462038342446736303481794472458715430015229820189268730144300549098076162765783035090498711742192408456000165321855620865600618406177173164274459707285548209774861725900613955621272604120619535515800450876282793767781110278107891402696715571432364446623030472701189210922201622559605724439808954813424215359170264914443080804523777480987569604908965592219682127605806253592669004773448061787306020879994326500556288491345994954924663386681668585314090900292072664804844443455278709983730417697641134201246579441913525587289964843127536948756112624200239152052608435547492911435362483288963601052534189320596565797236059171145838129856178521413963952014373530896376713620675146101360495728848594213987032964062832522519940901693598155144182602221324771920031694006658744615168103209900896777576865846642734993747391316973241727485913903686190907127420766507706940118721458114662596916900019261505613526376740481970784360130647394154273034176719632037886864054948511936144761164532570908819781478221826591901232439624639152254642483160925661757518164699324714726665122252616145832486941624683181137061200345814074265498377285639803203778155785610532306254112005188791065261114886519219477286828730932242826959299889267864856567409744935359562164384452289349294900788220564954786417476259009604416866074255581035892516294583532554439125657773888988867715308777591412716129030894457058815235358333304172714489342999633754195820316853014991382817622515671989883751432122619365213119569517517212209100285343454890155849658547213993406931650416058600257060702464880337676162186637614767731889366354006008227065987442331951083950443139390904625440804735601203326366061600458493123593961448702853029165667227690260420684271514381599153039084169482541497675636863648460729732406529685331600316080865110290654153490819066824258179468222650571834936047341937051559012002867580991902082987211407595365817122117720973026283435340368005715863294613288175776112270809139382331296369187629580066070944027865101954723454996339256752628120790535279860952473719451731684696953439889627408096839697119138979147259852892220264256564620729022930477986351539217957324598562275817719990239156696558857326706473929544215671584715571099600665615792724873089389756931848810953199569744273091061938656727807915488511884221814738861340707366099756094957339443724849451131895446537171378664816173939433137843278242715273193514941374284018934765486620780278542457978903615132268489856993555412251666331497160298380256206173725391031932826299363241079839725763370779303561800452305717608018854401367504114066138026982223938124171875796294799925067937923596092771291922610145355838077007852694984479966963003276649211305312820703436522689290968161310816147675141830578753006308227806458168559217249937462031167636504195825751728760160390295676802691073560378722460346814361518540587093364406216315903057917208915762458184405555025183326246632498828743814416390885503425555394766753397893182585925190840571635692181439320000662771578524198423287911112218233758218700682039165676879472328625456661430897108489496843277035833340964898417096029055439530608278710531631032560009822554817276538131727079762256618588122527466413140717040894435886348320053875815402495078550009400251416817105953929240503801876149990658378765082227547771666461895223488440743613175852970937722077282779600259348789114470846456113772108985880718635046165968608276278360148458160841331562088644849238800756084881314271565302228800574312922822191049583446907036918398699677082313999777855163039942561000843099550278388366075487078089026317547249839605351700894481789091802876441388875068960251671770035114552555953106875933175716836506360390049870822858786503419100137984769580034353937375450432006752728074918582866735929398720400113997600596906052366656682305339501780120669016453483521504185322025575405901835412595428701179569148836162446171444271151973711551302801549027830800988739670461155490185287639637153759666447026195356612881396699146490124798490910669691449742893846001067746124699578385513951642233436667403718010547518980155768226724450508093145710170473137258195441601530262424887311214915338135312395939943247377864890919573820601229821025626783909689745604407722980660218851265426542645493910104441020025029933049458963267353160890419113511262865603292782109694034931180685452396956148799850877211823846811223779089089441586737836464636354045011903825350633645738661809188177678541849859905813012286688703680254415917829276274343260944004619510607990875560354564185391426519000618333835847634594669946319022047500136979207743868961566183118293509162939242523219523875025515611347549914467488561683269523124509542600597905733644101585511601731080622852908496322383281586977681332311763831923379301466564351739312236144943500823853864300235238996709570713590558974300244108032681620234997012862543943524521751577709403075090786734769756861053916931781390232405055649033111681929610607968841106109003333922094373859735959681093272408463012336456071574785309092137624746015952360687716866166270891133113975950310027018638647217411754760155729651251045809914333722663116517202940010930536219283380623287401158994258104412871051541701922767610110933904468624290599656805436504901132985338832951239286912665914256585763321761475117663691922491960445114674239784055954332026475666544827841822536981358298151893707736484240361446809844268477879283186123277662015092037345745182007348081730949534874864560970589057005990614989828833224678409473873311893907234345090550057621102933725061230730031225811073432907973734365547793763986237605702897154244406585538526894261534083583953081452596997695255007128318095794439883911843529491120398006906652637990978715103850903955298708749108570664160183769105575234051882838283859222021144667826905960824031527555914751188223442562167437975130504437700649040390948458249781833650026870785444542120576835534269477494768226567266502553581953231514762002753482092886256408307997630507267523845791735382434955850025958632141292440801280761050288039129383249532513497304167042406501156180035271881521514774930203123153783013704268390801202433514901697217116477895376658932136019153036347741505441607865061771039480208578340629372939836439928289502239081162153983617201661274303866650234244367131062088324294003798315724602762854246990156300724713886841621986895312057412457597551840543195186150258958786320393485699042834882710834226946134548001586184351268895984903031452136586986981445722877771409166275916129575071194057013887688397594210444644052666867699295701565244777775832517666816055219161517202261656250623700564257618294785039104616914603778981882553261774207447632430683629589868065115430928584260046632030362832899678102348971870549574370605362441302598813677532756563652211122732787745434580418731845028360254486132079079407632446641298610903122694754474867568768069043533167315900299220198248136872984551971729659695072162642547142455554948605884214582535017634245677644196099529218561033285113622922182379516799842465895171287527971014067628055303885803908846961044014275471105030458989204998230622811279486470512378625523516488469520627679999850381181580376069955568409477200422467129416192371274114399419833005867896915334356679633626463958810623510761841953995180450105404537388135989063317687822733410242245669200729014376791442899167249522308329172890803483787289824728938911640684116733630898213648179267708083811372033369379879777259513077272303987045595080114393685375688612231089070763478039215298049460481419222146778233532707730391969461626461094870667336664351762520708835148467612293817375392897211717705702307091270900227724003144993197560836852205657173509271013390409896947149329988088139237808273753513207729577332547299482268033085118301897152835882184109783812905150579365175490458235128650606608289804440027423988099325077034263653905466813918045607231947340553003543887375244564735229670577595855062649144385183547163038013244826613620300548467271100753444994844650145099553891786633055824089297078596834374814076838446310494846793469226217924595695853256323828963528867431884524313188663514671376036486651380489750926191968506768625521412448564157655836167921326916337736408729494146376606676629047530687900286652547458203355014292366905816818787356120696890571712783596245471679002979988758023546322753386469059559607994779097291561587449096089177523434323315583560773052729453737943424197714276886136354342236924198468054320310822378942410150485579453028748413815141013980035465407007841499843425028914498962883446074334352098496937053374932637559351265104427555795825070085146058657998016928406458827282564033685877101760483667873229141732732605924309411102737221833434377559844696405789734121284239618144429975865912709252724276792258321089140212318112112176652339130421325162439412882635168110036019044549472361908721305404296915805771188091062657541863161581700704709991578773764859211703439997935661938982608240840199764347409094324414906073028907101967285733481385500994194911083943418561035941860346704514015964848596868650016134912213467872981908603283799353087353681050840623350389479518740900227011468637519338966598894701854527376860249947885674489367497867737016403940111619045646928283771498952671199886080346901499405283481304315911022705415982007052807207453511680908496004535169597214192314042217616306885786104858433832979760896747059280560494000784212991425005255119870091359355988655691830729996922434394553281101893858473367599656651268403360747249768110845240026991225541468556213485376947177565940209951781476962324049617479338674130290323934770580075667498001226040337724304946799858848672336726097284286387142387885751656975364517502834509417320001823059426101717984827782812666749453852207221300747158808359385806775716120369912496787639559858233081136847321561013577706242532322797105456697737547679643275851470282492055314457588912465328646273471849601481435150482305622079172453374996473713252288349733633316509077733210581204104915046035082581421648176557677298136061848995905638502475698446793211297673991161124772198098679180571117524620984051554633655673144445478105187572400609303836258391250911452913183080880778978896157419349822462771123690611805417370742864518216209013914236274820096924548493793368245323827802827411894269143020145480137668788105456287923808728356370363410989020484158545693894020218052871930775305188740825480902202223412161921361272518140714020919583984938913366335998805322928758665842586152219104288939263105182891106101737824477360138854941718268573862583394042371719825201616350042154922198907350515578582596878999496798041752256017430538216891936780794245823085281984988322845684541334402937128187814542157411469926036229806825724359965067384075118484192015020300957961524036086552871464640593912238491712238476108500875688705929735454262719991025974051584386100680038382682142778564371042503755406695593174096619769593783078407088994064938904588726923783757959585598147547606433130189728125521177840869482922405949270103108321234692354306476955658681591882433364488881137838536004787382733271539513549696934815121154672295683291410071527731248454156926010760518044494086111033625308994360707581280506730761710696741092161003436265411690290361292018095238522438513702105962955201735257194086929698418797266315140725629721700553909380555630635438068714728970435509262622806752478809063103805144850480770113841522400202781202717829925363563450777096129643218456069322880948386828195360898131481680487736231947302061868033460022996760902196304887590814369231365465312758937328872539409222191027975672835427880672666229964971238088314832010518491497526022179798141197153309620226042620605372121416415733498652231775326423011307576582533524891635809862473263996334529950872234090657152212599288806569212418569054728464522462784593397177308677865363872506565950990342246442362134660232892359072044681255169833609707153697641663892561048412769679912014246059411150298190852027011944839026995104149251383956225847883106047545076022676507851588172166677222384784099747414823715879206153999585162609358439625318279323876230390243808274608626614834768106852225450745422551688352542551353055706721580938769695032810472577653205488324842956660771858479512210391041672988597135572727863691838988378588635386464300527534765659592856533756749366958626813118828992661487550905885379408555713026763538709725686624922821051012048856188416131899342161456872924872660873097264775912035538533783530672050298190704692395491350829948463232311704678043679894466660893592572651957263978665765630533356386756395779780167312317521615829812343853297875156353091659983376140110943730712559715724453378361687311152793717712252944437243392789279264399620883943542907895248838169286729770838506476052981621762041415719276979165951232570957025480751094888543668369808421114516476079002671559835436649312246256691828854540703230579392824805368030627967783107961016146336532612551289406303385114706013534561099134979053825210081434549650139704599453090224525796250122140878888157033035195766476342968892927430357347479889622654509159310213556450094038680461724642111458127864357852486883114516290206179419922455946221536564193083682349406295690577191176742923302768047123726922292089053755370327288150099927279945202417770310908724382856600487068062544968003771463597856717845480456128368217528234983842574967137499568587840326811500771655674018166168641620618023837083167091312803289413479752422612749206011721692938531370940592978008188432504139025903365927169897083133434664142506454699093185147369483736183811006287646367007241906294510027115412112605941726842138923862488281021155445398653339061522309816263343519562772042879542885265083885820979614715300251230029819397959996944128003149162961492164146161571137934979646246772740747216240480187818447257188935554857014330915064176235113085322165950894585927483020775144965303976449694920204062552863688220813617132660102883772198120869652734041976983188296508006231782754495800329760728539170203328669529784398361386260918452829435518936971506691194462875282002148781491431282533297313248880220016306026395611374057417408007157544374968905243259385147250687810164193088675118117346177146680958386603920074140808113309175292783547986841059351384699433724435214307730547733339715867202904346629088375168199471296051827544073918540638677648734064537722151288987923482710820762314008518728643416762849685592637376546392299761029577431661436257349731448063466423611387312919817583199779539140301289899233329448549558765576445643824505834670903933115476691628564807502665465928480323637034262565305938201935720370841046344695799175525955841532690130933768024270105045523721507496864915049065514995105687758691682296885855116666478393703996701071950837142962114607349755410279343067738424457655830367682736425014176706769298391167433082133171828571266788396107615760615854858432875229637915872056350699881759179670932868997135254518227873488794386055479685447064490700647535169347259480956217121947331274054231390133887840115087706432474778347394338527581265125966429106057363667590839470564661388420742094437973517403497284651780993905949364114413421657108917925254230074375041100877245088420126633530722979704025475117970264017096974201528946180764009295428172104013714216279050582461812629106383449057849844471921277649140668267439811038528172561069915581519922997380642525542252440121798375793154228637929442263844499112381425087276408751653904321731172685689286773237353966935495348169042098614996402308591207676208281686994095664524487361231371419355688530535880086610201498104922975315495447556859892416151408759701711221413791955133620942229197626532359108117444167053926206302256456487062689645735716096572958128141256078300898891884290658105694644586617460948053658344156187466058510200221638886852451219532748132190241277154576005578770431494522021101699415854158583266429649067489355771560675894178471032689910698643734694353492952889701153825944812213951461281126729622317412558525805446984241882355719156457194677169208519208748656680578775067658035330292965073617608977243024082475654591056528981194205618300757475922787030739380205654773537628267833106343168825413109912275357012136338472725943821491781954894469256941448124026051791250532996848249378196107175229204447170496264195755497171080612863931835081462533586299091639624448246942513505033652737427871438887423733108146910820104276094836970817099955584686219782787641450174496591550596480261165840308841079619164092825782674379833749736220334426771386734038233382187818943971100141187455264321932930453032467578832917297260659041416595511888898084021462142536215713355824114627363247992067063465558214623850778291265510090270291624529105078726861175966878116997195074634961064785914831556486351927788842771471236578567089257957693305173778048496594182734158829263117677764843241949575993606812152463419904279477670430297281282339178706855731110578872730354538657740910097794443656708021535666327471844545051102243390140187692094707738763617010685890823581443279628328887102728781573955735756248558480193172607536411560306164832935450812447426883312723173241690747885060949241783058339862726629495060754011188446721018450306688762991381267886818543986177666961414714603029446600655633732103624027509603892154164208383208944848170588778686222022290147505241076461425384105528364460142831985685465345973318118396238757854644628892211861264441995179698352281810515965150725301312031569887510195776702959964389291299614910157871832725356965825439038810814428526297903822133769533433831400334039527001162517956203549985593744691608008773835263523557298439383986490226404475507378701065066142797998505706372801323361754376007397820356893870334413166118536297513176435147599086453108158230322155000257892439066617067177559689948728161379400464169791164833012660349641218577103587685044661643599484106644595964448575120967832959485339454506322730250136282126091970800281290380794378787733793875889708461611910711662831458711174519995857483190792954098890884827153516422612470837847946382153907717559380487225668878524486849399001609688203317980418728554017426507798789485479014003008222291980463098976506936260120992715608133355640769422053473787255879965018054080913302416035206822939399099091787982663462747736601839211735829942217879177254817121572326571547285429834496537854746221971212069307293506336432858868426123966428870209879867665836864508379032697512910071580963310544709824921726103825378747400891372905464914302629336088431553194845975534263926126774517376719450612992189115396822303902587638767094787609315408112078516064651072011180090134766249371194135057656612471151526239910734322001056738006387811446058021412485721415268754277611896209097726417936170784314743470143401635774768320567387762590983064858752280665332946258261145224066450322580745884235706408357682124432698973269782826044524341281672886310913807134396806622232801716670819179501991943365252413934059001333400536654922996662619426960777642907220710058305473220840642824929580079869995505208983301438818846071368431903248356538530742450421021086423746108465766447178764952004679720087855686826522760055964394444513471352282051386246669183808018285133265930814461111137204254560123320974178971707541157506137589568888324856590486149478894671963334188475521136860569475160793792969820070489088186808017124652468990149912974904768101406507970693528943784032312128361958536669903257334703337075859946459140734890428985849583420092592654750773086894442622234333201993963031894797195115256619318095074842406535122554672768705096966968642924781114410376274185676678106093045754894818308618601423742840086036261537494425346080368296385235288043999509745275168326448915416398854261456462812117986797537979211120018267009178661701459505512313834773054485728468224161433550895996844724778310004755259218668264666496146616146973172066655316972145171008885050720216285314270016169605141164967229116006213081743044463508552318544467471551766438875294892877474273830671497281973657333625701545226247289038453294698952659225030478320595022957748087538117812574163283556448844610878195863869548855320141646564104024611635268478700097734755119844937070715353575172492349039686971606129809585288916009611026766132190290716079661686502725943234892430244642963679160620281106291298255069928307505426572192390263228996087994413727648156711617420631855045839762823878101508338279373981997748249029461935570510869869207439466503168784180245073304644331345422626077763023335220461625475937677946749885810073260866918590976078626745635748273480256707916849414573276941578435985712982035499519767062192815616229776685541386004134873035250221901448587101475729276717197739431927864198862863311815999536847529320425718818139537874643094771525156506365782980077958532044391708378222976034120711436678855611087047621148593248101700334652186157192534599436350406195057755080342126806036986409102173426603085593786139797204783976688850739383523496644238686735934867136427446877666896649853872597205917173783408220933524141935214870630212780339273019492012341170465419499676101411854804003122251232259346165010223150361614882161623240656865597861452341970625547895785784799538226864051155624705731781175646339292709555982375140500125142458791011812637498516183912330727508190646762354200857455674946753437224941906615070586951848109117267503008805328828278333405964275023341441300475278671260388913206096592922061462254406923458408310174027522610569290999743051241492882621174950004570447998170803365163537234032032015442306205830096293979181593217675207133467041209734815093645969466130340327002453091359895119962154603597806978975379569075420485832942283879821141393197097915026127282759045361759111134575028329063423351634849588172090738545374998820973995851458974211672924176597126874735696963257212499264473429305194041136040330302852164201584293456518129307814607784750242316082275588057769398829980883870775493546216227523059375651603245565320127518552909277619550169145287943099829155311241178984761397580576144953889150265069332769634290133501177918347410920145488477169500341965809811270890806039285318789822711939441897577719544089638178993419309528871398258164655335168155778667051319952561003182355114450044195889270073543976501498001328293354136160919365034483050224588826342834592578027818893128008811582746462782954579518510723759018951966090894732793448655167633935794433355100234669885734183898689936175782045681410985812467240065149267302995013767189553192012248118444914349224878215798284098081272055304152868094269987466351798466995502367420162978743017790740980871041568793726783534529296861265222986078063685134784069163710569868919378233038449722109284505440605876453764859956550754005173730666347096268566753827054630346436897365982120511123014001513307075390342292029816130106320350627434434095399683923684173165193716178698639779219224502095838160329254702516253495397310943658262837476243307847977274890350282526774441278361686532603399692495644860414544622979354036931102964438488110914874048063854623265728096570180380505092087950046734282935495933659015986749310083333024282912386555999027748345307886085386283965008981669217128934353908704225623757490536841238189147779306394990224045174032292449738093466844027348558760351311763442592213932892426138753870158372450807858478920508548524031531558812869370561299713388537249854999000685940833390585807911700472216625740648855477727140150225758931286572635725886213605545176195513578704470505530644950023480945110994735869267372015245697293037587520375399846052959422858607568572953855733517611067949278398144180905804863094666008904934528574983545294500160495372864784401531084254237564840172329443363320427358606486977849987777566092807665818600728793351524797099094089853688485414139279201430346395531411421232704221133262964543283010057561553439467036758512468241828918364363052181701182499077968190373310913464992383283045802113497736453491668652359370227266303078259561516877199463839315938139390354587446460570746192647510653390142276798390924951006150663530529255951257934583513603791643466279777229935813801140776446004428145531319515054826592215916075693661657645250293610561526944528764776482300500913831788508000246643513928607013481449677502640212853985431303361407811460038920122111046866383695636194376717676735920018571510907975764723105242202479489037351085572775764984223344808746577145681668851704186161844887952702713217867100497962300814587279089663218651541886964100063412784748237376130523278987511800479014259665944971744679899940358933911334068505552096340916119464037990868221297257151134997677209871117593960165593793691316839455508691300586786077934641717265996270916026450655389325493836706894379417173601237499934357442088551047877616093384150444171621991537109956024667808932829716114693486159114384791897740292755753615296951162207469289303399970089373811881761532941311612968865774268814778837482372412577715158479403694633014253050020664722154829074290691368317180539622019637510350757343247867672860094965981082004209318251202702004760862369815301418897062915003844901902124053640909057024206892596570051144086354481244292889629159089516368219655727495658640267985544113131031527349575734672747818919768972851120913766641998754178224816614986292560114145254826010791949062702774259105447628360396752692791315152582920020509113888592363615869597401754895640504922814360560005168436800211048587303467166321999186563412509832080260776706219845648654305827252249464849740954017885440415418437136973140718612387794233230066964308449021251308715548249052143649950542156850505687343229190231079492816283151417895863953661249550959338348296681745429899708083956324208102699968911183492215444535881393413528256327945403076076985326533244242433966057049468084402994424704148604895877636682014356338722728373360496239678922016395563129386514967829528949647968358224727642106250104491976607594349161842285720510976035969914742596834483424341442581081415739704677303101912667168539412383051129996063376641796410119782362079583406842865482862636029522896652765152289007858219749891250303000272778331800395245211212112451518012276905975295841867848435553771391350782471588637897237199530140272960911362274418147561691107696617091472473321192777865247945579649640985504887458472643326630174896900610145933186633336315041753353499481480510757180046497467805135001514024114919933201475072930601999016874040782520160122015404392924031619840516254732810404702862906325186563879088356282078523686646928118140508687355624654472306447119184716203932550814265795785995954287564342764117980065313726974419041259851012617419040196935463716685491125018954089474100977822422962095155177616920580797836250377913442871032945040681583335377067837956488939253845741470411699446245489958673173136807317159788948649564604279915350620201833431551226705317936433216291405070715366969667154649031968902504742672799439502539782258285330221428957412413748889909197603986315764362679007204582761007807414341195718788446732843080363651150176483668107672077404911823362338047107131409390120738486378098440040792366272272618133938728722262801280286599608681687364730677060622517393097107180272803258815826678952922128573687752731311022758634697620690122169967995778466513365190772934504321916998336575365148336570792998663186373047462761456468388136971531107322690698446264786028021501719066927627129698216115559531554585238737842542930084717941235784238083511671483915709974312863523563279015541413439889004649044200956167134957774354947978434451287899892686428249952952094943305150611213816469283370780799151578559240587899877342890345492956486186027867344924371022516336403732195816278013145680118807638034268403743830625630180973761412820214907101171029132434790672470716942979270474434568236148753199606255761138825865939286045053826655007688607267229838934312071054682333888428697189973442302206044327336575343151243252778702611439739827189415007857494013010297010015167850978987874695374390568918309821280794646139913495640177850941612685326802599778246062219679095571951318753593217586080148398486685358669828435042020336282083924512535310730149660900374772400915158275279504253343577866685790942305661160728127974380046987832756977599367624613231466432770997563687201641250996052951061814617937546200999016157482060398713954113693455408951482613673233845772910071144411035802204615300278693334452694352699824757782149598187692444997195236734829228227780589327596337080344860907503435933805983619787121284544276016429132012487819547795240749208414604663631934480698722553057754979250268869031205449388264047239810704179478410816135263877496410996784139704626767176382755192862730898164496900704280442082841818063635280362794450502364953840374293922068402708792608439487318442640354383356776595975094201788390812074974953090778021609064595059044059246028004749817912034469316165008116578032877070975891179069438939676815636075794757505286906499597037219246061166701449224726324182126795208498936713560001495543114971937239917997722048862240688042587305453863483929794061036468651400725434147163857395497280431059377176072110198705933821806821557844308555312292012401003483786878125338309200037478163238342759541711159490203232869619658979139182497174580486593289628171893788582701951827195910284709802034523654304075509382906758373605254709733896767705589939041520525703612794865473257342691450522805386193675470705226407026131760604284159621956191346793041777929765607930550216327117527091332610372578601655766281411845733595972633529105262098290185096827712748074469530192329495607640657982212230218042791320274205243963954665148934377591902407342012228622273928866963483305429764391709813089300936292634353666215125810136699782837121458202451185875452330718810746564944095847714947212222495725500007294740295348659096985427897541480936070909406176755301983727240279179918726485335223440463901350984828373574478816428393296080830387263021592065520615288598348200678348008795016752365386606937338625820898280549038390356071397366742972846908111696328071520367602759675605759463659850963328915582211647459855551511675873596063357508873331495561566713045099979720082241841611276127847496155745519818344515246007860353436126355584539962384399658381978940682368802235338887577974409037979039800177542252419881555415175042155391543868130557647137813032589671557695086212596481991479560724244831041290144092486443646093845832122474274843082126022163468321074781809262701446984851299676121438865350888721383201619711029619311174425916886720219067799843952437880062183604633665442272516926949616423617337790181213820694773623060830658285290077123001358187475934995936883015583029695311113560841015017551702864098259263240138227853083950019729816783592887169604686217826168705027213261117946984900367200059921610417495350178206895597474691807181218835269533619305007234095939334886618331083202009780518274602686052290174601643173179206417127028999478746820594509306199545166637336206835082420201244473257224224735824883583511619554628272525138543975662240952044495137716037202802781168638421412186726442597533201259947813731601217915230386273358572677702528268605783754811708686632282697914083680877517650959201809418171485385838459460673648015534304967935912413653136500044619178044290072308081938444025576055501671518985362235322004843525594277810716406405299165390659818619111933971204551785968290661317726190198760913061170798123398589222271232943491646411409691311460619927269875837452321232674709831865716396533616217284461220720101684456009269864172841431393945761040831678384516406833004210631938284519515725646856389063331148207289882124266203391800583934416160505089780501544694438122139995493457779632225978892081622166128550597543730647066330563777892989618926483278275023467681644077727435064276773934405252226060348058861082122509184802096827379020373707653543023967360543615729100722059231928539987911130460664963734775112753906549276153151343421792011852312589943043976450050019615846932464236733857858985985833209590319714978557362099187246016021906380899963940076558833762035408983418443528149263218787421640842353680650438243079557032341328712967966546641645745365717161491109658309965367464219983845052422531462180404203903752322989783361791321569308532001157740498919950398887036564208874839876559879622386486966827640624664538063139506707068624185734976931957758759924848134842946540239701563290826987033739263374597997870034947145334045269619487316165471838272873227925948980934745495904437628891061580587257963599251062804644001939421902725304456086567320795997069778603455339995748964529148139374214980719317196601872278267691031575646076668433334232570861570715358135164039714342977295900206087976287402409977644229488036864243385389823899859213660843264016755734745328916369835609879876667955428659839162988178875069785941135451321217402943666017673842421806167502336778941362507472628345841497319217380894915692950362732449593839612029465137461495995245262958741102390483796983429677355938642719048232755472043466842716075632066034072973695885453036081677686402098223933073426420081989222230233302574199605731354852975960826618058053824551968494208355332166291959431785916061346899395336247643453750317727558445599307448352042433622316369387827028409939897946730066217131858767274433230136148841968120542773640686811155582653747310949776982799454651407206136569150792303520764378716205924328486280021301716421359536502400382690017135190365627580775175468873072132857987973194944224154409626213182006770954736324125930050183716006687808255112772977563722639923151468958272193542609160671868988121600084352052612814988433818828838979098643951123004567126475452482189414616314936414071073728067546373447364057606721319401448935546776203907379902780735846459025380745391401127795260618128918263536373476599298050788376464011044252460354318073294053868074811257937464552668884863114902463556679294449019332818575366320786174834270036838492235029436397702718222737735235427846946219763860111178873437447299453308048716574100200427078957110609303406787978200953139372390745399265002635671743936580948266322521102502432391534839350029064697582131824744721402731500195629055321230818703409697737917503991676176374447226218601637072965511703498938355175653409473961278756985563132187682254276000220376825494602898820416268957084813607896684390841479091538823825778576766233781798608216701845737590425138612343518312783442633227154612758958767717313487323702758396365767828452832087089170678544221666318234149907490627370663316352589837554767974332737742174924249637167273209407440882958872032063611467828375661737469901528915566893496753550791091005510242229539658070199498878776901688614136126251481373257162180369507481712352029232958956523389756587411517382208082270099073864140915127846851878102810091025559140423141244624953902619308689000499122411544512653858147775042263203911919164271234010765191037217003461456695645687189396697007270485991439027183495840508155315759208611678565686724810285323192345849411987441090346668877091648433136872649322945114895271623328904821018820410141400602572010615594940572000753613606851626353306356843531731287381582637631971093362373303767619177783275793475147155184091894761159790898159904810040810957485403041722042528918544776811830143630386581301524591302401462881263139497162139803488800948077109265727994768086296195950803458469701330630756451452414661471295045596482837246385671660194213383403398014418335603793893161678807635948967129562164477053446009209206058604340249853485740318897745775789168777427235713031355222673454070390589115804380948307073665808753907574544831061715903303742160880295282936876869376275116495888454502915928389113926025054743498687591656089565279392921346929368125114531678597174482147087446005699914504039875100814594011087196307383720463601002085462737821382023011410481108902190278913058465061435693497512057884522222479472571621836199660475042873342982043005600369924137208064125408826457379383935293786681442749922141616472898782973560488432051863124659406246402043958318014306472233654791319724486896487493745508061384345481624713967102645724968468745115577959287287760941762530878205881029794787477786372574302288399958104530766951937754582454893725453905439126295661044420163171992502983946246533549826553315327371583442252546994933165355659403838953896669517146238004259443374896975729155213557847363990055675354661922774502942863769942225398077452985885054417944803653063042899201037599107222044845670527735639422635389274143741718571099639624667530839690091133306695572656695187502299692025357937337778233948388986291304236669122666964985887316978883567771692981225452945270636208765996703297802405196481650176029310856238168336649368954684628169210615642598243428360580425014110350635140242740954963855245514852764149128945656358927755833600738321519848958630581992827415848855720299233464715863952880861004243713090625872856713914471807452453381786501317094219562342550105589851511976660578012134829964204422607807851503753733821073838778522126485141160352523110773911254331952192427423283699203513669837617511892690305494980520093066832535264981153173795616800713785195971674785856544340743100477640213259001956919442068316329600658670210589218658169283689949765552473249665730457013686321979875053689967235320083323482241105914283229612006994756067600981610739004220514113827695205246320205704906474743522624760784433514976940182914188608351977096616606039475456705120565101078266514561877771276166158110124529840826308017830452888366836675827691829857870542354661724350005831259021280111551377668618317641051555981052830135907964314576277891417577191897203169139649670417393850024343456438569162658488332680755801434347301093875520005384263387165832111015031097779390853041935971840829721459863788112320825445624423750012872277401566477916960997687470497255227484446009772924524199037054351771554209911900420566787383428054078256530994117782662506207340175423797943153703959778893718039014289341423258008007065756872316327827655873890807522278167716390884047877000344855413266877431844569153842566984622532632083235440304112943249156792565380209187878159372748642877285422423549517445481109897771090265725205729421239014507189733441038346786121943099038613377195968585701723849586767685915586595145741229233284664586650558296821007240085527154683261242439619716514550984977041067480617398709834365842721675455794367983624161925688149463297995705518567432629000136667476504012059430260099804302380717591728265037353471477914085714995442296387813521261554682984432835973570358183348174289243850661580957197538156316900154957755654259126750141031191748336344904126823902085063127152340228378856938998193658928321733383914036732852123547134025432865251371578004442542973298252827595517031727899998243454438779266958141129310490916030361906350840819544742073900772349731699861975436304616568664944819576773652991610134366733837918411049457060043894873702551701060623074193124030268754080392795713055411976402859296948934903891510862458470305968525459160494955672328211357409156528663485388330766104071579385478596522484447194496350368394152171919106676905829505809083458213121934540772365758918978226408235530775408590330389407116664714693342997123789913109231507996418427258974827139560229818681236421402696371466983994554350843611865949949546245834930630213525840401253449655375632581824288847752580881859509332095360000985456593467634892989809196211791272480164541279999706404784405987759248780844349694224258474144581796523801261376695367259271977080028925296050142285916479854507275871615321146699110271283311609784190064064477643485159252750725877880522152406825370472712969740084390613116049861097839915852425701394986003520811872536446560278265493121549311820697297264607671746302772891532728065686495942799312588875740131479701589324952444782499073062008186586472741455137640798971604381775110089107824096776188959446023381454347701968548821653409587157184812386679780781619553046233675678458375580590973865915024257293874839826463334823067524461699635083013575735939744368293358730976150577506012090683143771523464498527865983317551626889271184616652011237144662039360284844696235625220494005985090775498304017885985755493505692297853663526987719281021879059780960391729682989682592791840024012265466433890890322376571838724943978318498066978134041851672388708882466281572497327101445428658689700026553296492797452430418226410582565790088387348765437042526341465646145508623429308218770130777910392956250609890438980141345076759888901813818035498954216050335637332108035152653570730279804956151703662441252887711048651720104981188737901296059724535968237677579754199638482692593973348705144922924251081822917864889227404101727592329653365423192277705800448473237570384248808359916380022215987586720159781795933451775481763916029952884085662970690651460489730429290185644466470463700466451931063941965242479335032871506320111255749725620383489000947955028755258121158547347491724055487691616998758568312028045134731079156604713767935830937338911565507357719401368674772989079752236682588268591619928768613781441043200075187688676752036700481402713336467722417391735006357620864054994491784431319663186865928637756493670282445929181611089792224920076986278104861835149035794903103478095811844810047619828544178594175610878809482204974628777772205719528437026594657529360110829961298280069278977112833817413940786282041269441874617149260034287354876115651222258840009625157945495245348566246437936640362666986200604560267534671498936596305933383651447417391527860491219796196974505193867457383746138455366192712478512171159361742725562729359779415030380859607354465699584514884860562139799249713387773403148955292914191953513325630214312281372064563789794263944974951749731318482253690372364615334503239739419579118353317339170376203981008805710594434627988709354044181871658362089833089421395511436434178632653455929346810663770545736573116227428055353018468905511333857944280505521540222817956948088567821752611554731595754013170290562369840713631759542268351895732002076895770886380739583673022950105572543759821583723589463258616439706224115740408409552617677315667140799239333108524093288814583432544360390184200398798671143367023994347302458004371490396048861024507531090658464675149910313474066079148472888484858222867472356152015203366286283180016824547546220137255784766793900996839463896166533679812101036613907834379253133289344699294197405005789530250937446278425366259125776353311832298911703846204399859766352138842215080753107213972126497599599643534269090392782502051368383696964500478371886759939583591546631809836033842941145542637779064661162358406971255652849551545049534934780300649964472035397608421799637781747072770429425365060933005337241212260682144596605833966977509571868886785496044314161359872872867359568356297849976981944482623714981961295926885655679007737216340543685484527248974134584966239622312071709032904686105130104471008784523516493388869602990126438793162388066863908922024896725948941249900577085129004590655164240011654735468748332144880476071831059176097794937334727566161868786995062821186170922201210687538338797320354692619158093597691474906369584754872261787710909292616114038125147309779661207281896711713162439467792991071269670469454463025316177785547277839364310813655108283889447772259175698155388174030905782496923520113873302795510781109803880201461494051011096428531418310152785420798460513237306121027535665998675969656523692443027184897232123380210562318328093751566002553630888089437650155134326909080388624079908860386621111813748106730394665929420583776897245035499261275082753453595308347933006126199656642659819973028743547240206845733798716746848763949515801024015667143926430247333136791923691997159485498573637153570421281602671700124817927400282259296336505129289442766520406755068868789001399173825062693390121160232571690417911087387410275243462496984285378703642755396005677567979607701958146506986951147009534214199495373334745358528670752779307376786640077982355665955894407958751152186516068394819374810633423491542790306342860389824056354963042893508482272180115462047956196793230688009375145129808599550641554681146611231251303476088579817024272884317314904972655507484209782630485284201983446471858171365772542904543410220864558304081459017131829723908770617787024315930579899737461541953487527950887894934162027671901106415666463776534036723364286433266841347124452907637971412713452836268717213453516498831516682037460250493273623354371366734924480207398531875218748420495915522954733103400610496104897910423412217222410622261331249362515749739985997066437023851494151177821606132938647910572299611633382090692490764084368284548026268102767117856722906620703515344469562006842106469252657111000940594370357334151441492091566196504839939590396292158006082153406208592815738678863057963564277570266891499055484892221420343160763222195531818993903173762874164772459873747402240812756286607394691871423256803069892676711896004724329509886931796727350122526226463063708798295907394081100745319233200634736447351356828083975164272226034548606197862243868504036238361227185230933016807216383312902862673907368386420720454689031263237828012742036528759666984065723727364712334433446296136772118899872581817028186085766289963776456385481272211669753266883018442838686900650788178256873182347600228230390182103034842339714531569661222135206048182199763223263696482991178763230968119549537828181349860612162896623215397336242348492500892432845169511065202559267095472788223010164786129719591709178936806880731631396303876499072940315737167708423760198845599037478292175414232644349347796488214972867190596447706051621067409134908272284210786683933058139151539706004443727111532030450661542133219773215380522102714956581663394671455674426880359624094702083969197436447726608790765440893820120142036789142842894583451044782261213483308048494644185031089753081667670534198213787435806180407015298879017510777293553099261190782333945790035940345490120841971312553341391255007888139153115330242386617374614843923363675947171982315898616918534607301845335315897993982930115791673394066946702270130725296393215145049085018713571539917256550787592759045393527812042002557535062552517672938852512485378178803895563725970455975678674066834602129042095323954059219467726257921088992980796565442662675678156219656554618777271790964929270566624467628059236265588861625119591400875372906596456770874132522073270679427692493381305847735640483021496423917798438704687069520678265071292954321144789808507132821303970635041497151907458640373160442575596037474112889081551132748111035203542210690539096414060777218006737361186179138239980521765487533586680981247673580659101106624285912710842496175394690456162879756824402762091339132571683657469628831423541623792589051067199341100683987188982053271619228361723244649446497669726656004682144848776276454701577655904792451658769369143621936509782680100343310518674772291427148888108088989165308845680085362287248460173566628422334988197395313988416624881452813862607870072734256449037761727206019024352443051071616742498947751714132940874824446417981402985701051679652695166924282664148154726745702040521689264203869625909773292108874174639414622584548611516018624832839035850117736485412751681567401869358222858333407618717036845607653459238746700015744097501026264186906042444164745792425264646280964836033515350824820489215597669404941246478630605245284533133775186377405324095252580164942080421171947673030445585454544606447284848154948376398831070555690135759372200897423253314460112148332890912593432951147357382411703842048975948323672793089812694603400545090649776457827637412791701988745532713391468666642397869041814295689349073532836453644526089219746287209961929087599890166104089839142686216553342425729546979509684267325401887083747264791451610134469366937383435268785091208082615006903830854833379572192174860042415065484245891480399498090084751073190791808482337623739559203075515090413749286395112505686723903993172107801853074746641239518264945657377915258596453031264709717173233798707356520388953698803019849313607445327600489841725651783226421063513472047473671889237775995263398713146223018330932197363835145953674512435880279432555092259674836340043883609774491439924509390785242326199414687502406455112970902521467573618213748387508840434841632530837532288398071002802268434004217240903695126286030877692078039736104414452255535459872246370311740912085073322774700225887412066266505567424752597242539418082837174269175485071460717789819171203408345279137005071971398057720592218516850761623272338651530333935748963589245379865581602189294857498744115810716347182302624862070437441278355324311868517773603239904610063565529005470596357065451720978527194129113568468337679579699899642904251502805676761313276243593386394226969548493030252131496980906835761268806040709220396488958163478094916317814310730555150235061982324253849431071271299241668193791783307482061247782221906371685298511322068365937955782683586895218253618870847226154611292089418691639852345586060261957681069624281294316372914220925497866246608492972537568632061718250002694693660842145330074344783847392602664857038821758637201836789932939146173793406949949705800293998514285893247987125773796649787772397904519591771373035192032643246271631616140182158529738213506252266092897817919987280600773923384166214576876790179093773911785499498748107910834523856029491853337046403161741559147396622714501027974931091824082116512076771967553158920730811209250462160341393836421307798917961191922737619667976072081699083915018146144111572803288979158063457515892073378729547754728988475580869774224136156316806170950397901236247707463632418309707880840666332879970213287836119067836725655825008643084190069581957232510644404594479528664241207217046912384250116453028341627117373723174108457771356357902579098369942376818135448168165070087044449888321462506483583417362031478094368365183225737468698768496844791451997058237958576227239030469670256210575024284027133158737678252431669907446555243353678757496385092400381482696927612752761795397536938137079554871726216813537006174422391187907370993645395119335928822397497813964355066789007933494539224974421996860020417564758394189111831753210882890921958292549090154534144639269716602648398454412323279664754514196946323360461424926986688709780450723190533920746313829626963939892268608656041302900501334357415621209098776716055172266343054748604048080162415669423385374630459423812679149233637768358416486218554840867044911944805122184427670698693175947402164579157574081994321217129509649791587727703623117892454819278952510615361053388503817074832970518156601684024892593844197528033212133665051461785633688316343017074907825431999127679520890827156333303291596332778195157736225143886490508591692835143511443932970540410010703375168739481182479377009839171591192299988421445125362596354068820431638466922261175814987431775019845973355336046806770011232394539072157755357747948427953407559723428913685550157341432976890360026817663792171742446873809600792998888280723091247069167960741054430405740711502648032006937567753130120001698419680577456699292705700232468581892282419377524684260623619200345773640854116420906424314694242715998763346195813698636881623211990993069551721262324826725324545263682386984478569139861171849476663180765747271627595796973136890465252827328561774434690205286178457673109211370221399299174510705631925066141955286486793137945619046218790558880917000066956222080445257938684310110423769680329152105505112495539972796204729867519716230302171631409062971693215511873409760468747360808521916586252375971858920848315288049433164036017951895370439877046605964691793818738768903266198213739044547230393770980262635291015479880649086059004941246429728232887984145781225241227504007418856351801512406196413820102037741302325333508358295647728726065093686419836589768693921633144645633031829752327254879663000535137280041465716418095218234696377542543108670776865388035510134405651222105889373844221768098237529382533608590450473506194376936623868682453519160806511291993881098877022243506768109107807918286174353279151499361755687223912561546874451252880038047153503932829782044157847471167720015666993929014782874289699352956931732500686325081551454689775785836432095039872586660944944004463476347014256583838427303807923219580288822646248212213335368439650019156748681205286120271422766502183462700880695433783987292578581669319206233414301973780816234438728230224706121273446156681465075539382104257583051415559417032791443310053073210430388317089232849166374654619987913704998896257396450692522595430159800751615161467257270613147005139760892311515507258658483076006095691094420959748843127219778104247622699725858359008345105692690191302940527292615932327948147316428439769039779987707880127778670524314451841386694742526059477060412810763018287352528098131720858211209545471523819325162159703798097274761517291888922757818107212659893441767380286038716031366154386596154803217339153598558903659726267342791601036189147678418337988792372106895960249111561678008992888432617954263713249749083546828911139941095344501103567660289360676941916356872980148510658578747628244184851285656867757249880285190144452239015524243489338592939936459793356597742399418134282704117629686513203061079682436074761963644491382135960341513562515598161999407641776600533975307218955571095819283837089805422699281949863147801309506714407334983824426076714416500867677708746551377881811849831156974477287394281166353326216742214107859838375394720427471149822807144721652745931943738107916181256581839358460704870836268732253331319177781886092111531518946604654157414434628565295662059572241302957269814900388559956112690423720638322825945442269930707701602839688840162359615016481096354657620378801612405268070005282925467663844239217367612654612250918536538353870023239546558443059268620956081240989297602876858300853967351857709823144444837067701347331577589279289715386295448921620900392789830750714894880422860732792061257081324663732665947320216697004982911426976981756087128826769297217984974130787939814181575502557753258370651347812101628163742293340111045178206056919779412654048921009420761846400486148199990570429230871448496474763421601794003048236390123585986756067686891200271608246866913628508264106110598452922510715627265926074619279309800666243836268923113417235024784529844864997107655136567833123680115428402210165856047874748281856567530000798122687675443984690849906199761729600089944894024487598745779992956879150190586972483268058180505416922634554585622750641773745834049513657565777707721970949913754959048725190257190906202459568458607375163196710635314507192920551481568065759086626299642855497712877206817979526807807066981400336342492453621612286388054147756767473596169485835143023999545059032997846038550562075282758877809002965980942330311595770695463989981100725317118392220497343302732953512994426562400613668623025808059964608690203643561285602635224999956575676999080900436960874478469426016865939989283294108209862965278209576412724674201281657858953611955024443802438440188037910218514104744410147084808742779205568673072374454154650012402442641644819742655660562629652526866369185806995134825896984410096489739861854875165470594292884231344950049543627251822612483680090185580325882503485615414098081510488943274260911983129520581324981649694128432507211616598893384542317502806417147722543264346536534197243429696572664243084187488152390222982301360684105204714505856483510651412771127202286919335186529639602844008848097534917439802827293167466914305422907054313914039230477888447591490662346043873251074260760575546658140266783003105666003960101677860005868181495859325296598418989490184016943577634812457591097418077829213662633019239337166754090033109629620075543576927275343742801526834981583030094636509751081038696724227375101249392395313455654388828359395331119383304295080638443686899373354555649845964877761194782165067092438951512333906306132883816447387747899439580697307353090198912249245249450246955861238110099847854779640889169472895465588598766500952769960515342995770721286857413227289586271598344816578942450120209209293935145194406848648399969909983616094660411544661663437181711715526847785509784628261709651619715524971716739150858268007004353417631387902562406420751910438647118709557113946883243433532351617879084155409078410716148381012480146336744443761525466445695250178790602935722822493594147310188861882131328190364801955384634246352680144641140389467242804073686196359006416127062898579382203071040083013395181856201795636046104996093203435939188575381829745711690228360015166906072078978791104911233198524607031391413097981568375404018752720743305964376590953351009456595116539612935693008227324315589452669134586204313599204633194539392296870676073408386021888874043739477321576322633766665957722342946762949452487355571835231142447222687416053949259902590160031982221223779493438879199232431870345732969404682329530411721933647365754630507438095455519074510212553497020857136993212352409523756342902940815510672625600280270287496858467404594794068122239129566069639348034498738969429760339704151231621378388777405526028034526587721754483494053652375066111565359863790649045510621860776838810171129526662208065670272616184885065765596472359964003871971252836775379069024340021796596421819461487130588404682150930475661426451872244459544961971969755740004237102671259186503127972865941583062105487396520097580367630752667141021850436080514356465958437720035833362379568688719514440650758901583452917494544026048764468312020447113601664054098458881328623787283717361050801096549690095076214769641376848507845352718016706063999743963908836439502320489025439087011017911082731474164286471937290319470664763995067119073835507948474194135251627278930763512682820371495127806088177823997674782313332391458145767737100202843831136760538925211693431730829294163376370761591623138674211904845464996625501529588203974827293427971489016790050763080168190563358919435713311762372995879347132339844297550402910342555484685066608656216817792491269293969370095965594867239016252427621305970317378130925531581177817130099815603815615900292716898612151681158854726527481430847013998018038800492552763621837722082404316610915145830665861507664843184549039408761136427067573884180651536620447225004006785200748562753691233206739336850027931756467596657656585340818326900296473584462691052418432239201525198882662822843448633759648308020095946329134064867631604525049617678602686458087771116512773254915784773847898229108634229696464702080424789037518153360242063877884533815049608565797584958500565568375793183898591441248968560659727043817452989189820539343365215843194204217048390816024728500673368915418072522333821977858177006904418397380171709813436403628919054061923206700578999206220811711378070665350724015081273048262475133853921726824916183207202561965710313984621817037155240569970982077868725885080669581745017238375870782420911910693198655935197143728940535499129104437120527873895763815369528110180808884662321716367578183137896652448902448478908640836919647557983227126621822807398468058410198511167767366429020787880637200991536311330885183927733639793067684245341528613742912819854739336597972177132662430105493033047717724344963828717713835347354215878697990224327698861281836793125675797198420269583480282564928920042214525048644600322085494386781903325853607236043937329226157218039915545866873761087284602202987912436662131864412940505240942416666092760609797917605676758174551930463842731041112479537964448800768804397237911526819495283674395995331536139887931942445736059980586995434358122199904123441340849332481128077545248362207767926786498830885744300883953999694950342830193323792552754626698824805007777561965057121778106187289845721218401734607694326522533777300883473831555156193960608679097558776430053157973473570310822201326168869377073818683810868473316293699334710466545690716541111319684812007166158168700617832122246779304611889903429861173096541830433139923344219497317596332304655371148000072410125909897774266509569060941274286075170649261412825050485265823093338273604137185476295129160536649919626093789454562082944858321351356817595373990515649528351532407895966833613541269203103713083612464734320776852089226290823251111926699204397735342329061485815086744142429197744011176485221476611114773996457463744917131893178306820054044680902231441167421260753968954733553382575000589197501504089048573837766678550638773712532742307285100839854393067962753733946979550181504801727321266708032646435964105615013152399089556820573636330441993865982224292949730347596762121350683788448803245721236723598202473160658287579569786586683507553095162217197549195901579609488337798537641387349980101403435002264826243503417708523325224324524934726151899109015619467369690674001194517776756756231713869168348625358257315608285659344819623183124130141247080508118328510182832671164147026494484489827667105871620916887576808947307676092120052367922790745937332623716071689141486979454058385941051094414824001565522752613918621028053277778908234856783060092450858826627649269929252624218882434534608295515872412311703301589152240401562055912282483015440844321312142793913192171167366271309212360223933630556082302816309652495441701716549411392190515258381399309013476683975229461854450130531652548600760489718721815205639733531878880239066986363738844922261696356913245652144260997910349411092466195130277220098471428835783787451208269589538661799449155347079908843901057326206878614906717169628538530527799797133186817221608255553117021463823713828074826287245922897339547464335199797994104910236600165338807194196947053555168259409447796048130385537232877787392766676680876944279510747373499672982261812443890934132220378027710840948252425391892860201650264922715946184511793965310141518864951056816186831105292711254750051903318656223322018135745415802745115339679172985395412981896081409958715098139933204491701171268935804043621242156209632255616023240199215202854799810825455761957303834312170737899563927337742612713448574431481684294143705812433909306576212989735191320602714463475385926355153638974422492128187835875577639476172718863585127012614875862297237970316328788388061379961571666285937794570494718055836647334351814548809463108509583596076804386512030927615578031673501498941335852316251945337198218645489507691752063928075273076287521729333051510046578474753533920110738286656170091511230372516495428851358448445470263292566087804610385703237613909599343827024908376144316757638167221470540003911526707078410548347737758281533988060566168739362503469436189935928148745565949436753510248687906173432463684863267940761861125229629707396300958600758898559869650920898151633929980037596026173964272686393931274655907762889612837680472859120353739874558525872596481044644957781721156917674520408699227844395321128765536587083463760462378013368401918642813744378976409135759861571387255418893190851202802346618205153231043903291419183354810973075491010469508845172456912185948523767729994762520775415530604676773518572249869301356162020231359085156690413926746615411193903346023738389030026886702002989837303293107587272717155496578900823259398598456127512947381871320882392763852351543422758880078707554523430131038215982685200691233167707782039350352442915730436583965761285897540405234669079553284682575365242071020021898480308139043286128666095939584982064181534654015330397551075241317690166453550592365241530612459819502040478449570241690995535253758792905182625506407029723631484184264986094060066315374010044047894107728425336269892882054171218143973657245469147297717325230218426214550878385509779035402697341914300704059889048515200700733930365795300739185963874577190419192143344289180535167112439127766162083856792344152790117680137892032292299094371235064642102138664427149933569816869289615002143520231996113994170643652402492166906453891491535494678436552074180581836946881643082263541607741455006918030500554910464489001078749772647595362741858319637291009106161203446330445155474303776809976433371176360432354669919406251734898257657292467720765635540910502012120131921057108007374308008475159968666557526637011448957113224903791046906152795804083084027542689021446323773442576667107793556200334244557836793560640174695966629350669300116047618562248749189111156269851329691361608540546412022985251223988544733908052848045579881047168833295316405900320605496388948972989703105557183870713526582379846836145718132003674849458284465359543545843370552375099871608137254398728460870712769573790229330493984690375135526616029757223328107144989237424682569039506611327859910850495115252300229433744772616757628877395723378031192469672603513413284587535056440747163936232978653576958134140588530501348448195291544519228157990272306609582401602032895856406483083787335095396749871657721241953326650152025270953950677176389907847943407488398829817462683567058750591043109707113915937949200014779809326446083969043858687828369533596887074734047882018916830705131914739631421117863160869396080326633276997454614439254613488921875674351135329289621654717513006341334419327627264939614587140049832065882037314463528591004452505136704229277742759830577068246996547245703957829503992990304484001543838843073137150845747458058072794142255554756974970787010866695168000012874142982153412262368849436949070557650443268884151704683469619278761867425167148482331876870461554449830662272276357314219818921105665855930510374793163461154981021784608162212340993480514951586628796697811375072155725793339352654363523146170517581437958111544625427283417609748972544642823978303715950407075845223836530014240095282611733894067474511322641830952292214909987772999603860283641491319659875752341705633272733985005477853692686585245243631686838985672964875929263916215950491197203456543696908477444841372294199798955621089722704530835707232700697940033196882350642485946507170424282582178227652084887194948648906932436543050861408687054898538165851079615093534278699214990429648567533380722263808445583381158673800371388155410167974763429477490258510014895015069891699821228565879998714977707570570720994805805898425585359382546775459698460541023216222238389491019200347006713733605480707936117984005418366692605111019482238613607675971565096550063941927701478423554959544611741506547543381446633786567374633341900448484025697736744976830843043001646894620919829000138518620772686663355904476764579792658513238977937585313959883876117327002177450980768242573847762499704158030430373195274430282932971654549290260247634091766346810127136512890894307215401494573446100986717426885931054642285160313799877453182297760124312787184850216207076422930745640732954562371810635883662076948336194146028420121656716171958920745576642548683614933354504034716299876596029558466592107466843949425184029213073245865098065792474898094559660758943202071389951135574161350459867259456308295404042881824550502288168202485978062483273906591916094774209973595754649975561582281282672032668759436917898762719573939739670837639771656701544191300795131597979093393708355962584336641240616542066091537572053195219245474551076561452416347002004174709866959851478564004923825436104924795506153192539692307595918618701250493576367525002989710568380312378876388723264239165292809367558698471864536175374797044853028359634456290488912833708917155678448633836071634243363434357561197740735521491793712806167587514304907132764279026400609646362829796151224365071052800989107915170637589272907967631846218736063795258219649316485132390395069198714386839273526615638979570896793921169412582219918282345056971338782696881549107907051612347025437514426386549664086137634455827398190385024885366661001852199652858638299005031214156252606800568433687887871715062973767566506610502618578150624076398474187764634960384945286781507453862190101335792491733643031942973988837803917562210904097721969959678118118636771154775082555718007083875985132559732883601867397506581181036137433997529664465863395540372708932357340451064266158735779052053787745172123854084601399289438139604909346609669959472871716568821945454777111326291685854756110562775257297332210201069126230658640464463567688199082581981287157038713507569825076906651341229790079369526815117181523840726180969243775518466410197762348566948896890968416977708641762088951943325951411667375736179286200404097191190983446006251162116322712226416572242715440402131990657175171564333619886925493729394870125944318481374865687465525388107600173079226929749923937563058474073032088196477260204279522199680061652760309297552702076402066812320198377674900683636839324545299228820070175971417371121828307941333509649433555130213737522455056191999809108189430505226539103546167455880739109493179781388400955089947862556712036047957575345610541986348676729568214683800562063737061552650467246201346469468777735042568985840020837329274305868864919655018935699971087750175161655565776299580877154646740742635550068725093032936146919370537831964610266445961531006664863721323868627000542495204256132230420501157152335636994438017863431977618555990819584124411887251298176188668886064301630626583118795674794293985353530982061810348000294188237863257555306512909986556006473104022998258335564244447890295571344107860957842424529674676439223057827911949712758400929639711344777059433611188036550577368420874475627027443803826418229129706984843342810135127053778182952878926736044523251395941387608803122327816702133860425699596389385088543107355170160519506449587966212943199480402283176612068616016076220455219249291931863919425439512628492219142736578595228396667555240484613802900492682988883085601250872514546734772447239897135072289642095870903929178819141892899217555653113667101145508625631652491899018163821675568321057823872534445476366356625423588720905087043871303343924222983731742580619258812874206051371647571362676263385611795182512042243901747475313720543631032575532265012689110120711636836974592061209781770858050344331643817397965051213679012114530152567524733064047432103080740046065636410489984679406814653318125831111589574130165903855940241578241993737970452914949469425604509188530443066317089527340412014173086090489867641816201023512045266962341935185966099815714793567399186215493846233037635756260017127247399783537417792560522200539956295624260439484687406479550989883171192223472747127147634882345592843022712667727596417252852136444765890074519435455373210454581134520050675344986787949336712932375933146246927447146653330299440954087890922544726558119348173362442326502460185718513084447932518204782472613408120081023341058510596238837588268993039110147056046191452461649838530638226542380602010296210642744631428403609188837874826404665235719473323331810440202300812461195406651897978902729211679662402699002012010069048474401797602626464368153717006795777684462560530103290943241861251428227391460150363907285716358143842100726308740899052866710987779963668585265789956825149997931048985930414784472124487818003549013214268892954994980533868468384486279828309406813521248991350929056137823078331275944691527193814975939591254889402117393898656785237419224013095523374633308063036962518539806063174490798867629473174648424707524672396665629893185206332807011239770729617230435839430154159649373604886938054284180223186158409388387278484919310024165148725197693923409979273526171327168314389820920958013584480924030175495812506222197210757650622346043135008985988434795361703432254872889995055163970550165530897014621345867859207421197735291755285220521344223803808600727168265353069607706512526861088227494569725422925930857449598902893813590077043746881974403681302093426749978792631877993343321641563621492982275091145346097220093513785819736638450297738439588723905554000473293989358603294503695109302941085849482531776097100604800226497635873384155370129105531756698681581177079625709482550406821321350116820933187926396624756511816975307161399436916118117016728592706396451723584560441478093280065754500910396720056669235817803156668150868111421625814777290449822279159158936649105385491303922600652397881543085354905089709298507497349920064832172508954811343143283712229572136818495563777756697484937305056517885525931092492987988033381810342718915268324838386988379760057563592839439494589089339063502919894115183893619852671578518698569815928191168150644287565295220124211322594983601092157978007551349079647009519398099296191479299649372846802390448380826900619755047273830600297766499304116298721555224464019834309886862175941215053510450743566525128155431281298939146154897377887670171304671330190019010677587297005021924802836049504998801584988137219514274844888644075764718994398879571949231956030203244741637573206163962936470820515020034311735539541673842713931059006932613561822930989787921595155984979221277923401641310812338247110961050257485990446580779572354751912513507605388311956750473261009624785296362232540377459761192793511356119562106800438751650440466019585309438922332592546904495867420404202504443785619509297700721948253050467177029653436929369609101591627288891035913181851121409090688458164051209053683490051311721935599581692599027308520040269283921754606370683753331741826510925749884382321155718880181020916047402193760547024541794944500840818314748099583214154872718060804285713331141547516311099758804017396811707532869323812745468122268018726049505064291597854950328977962987864406409674799916280013130471713815733373644319253154323041311536855913864149322647376077959889595591634366692392451917404743950417241196504177323711714673621114459726951535875157698827939022833430603005801093896201511927781861091285019563644260730178141996731709062067494071168763835585478707486604922950714210081925060725912178753322104948915888859115182235124533430827488577796308048955321184633712636834796135630921985630405338117635862445311711828880084346909714556730491095740038688269992225460562623952960787301636450930135571051987503185391420439609772056660423109694383583259074375942705540728093182705582217104861160816230676410319456509207524647885327213262125364485768093125084470987916435792373485204632080822535609844123091591154342240477605505133311227820951096933228415810806218036481081308832181012680627475919722224736114782066004305549258463021068605439028203474283235838277740349481858431023584535539191036165969567448069586339845116011550988950500733423607976044987516507951637831512211656441822884593144709000045390312315624180288350336763580092262458661928384687701239036729907240593598585777646523421393245599139928260623699750188030522255607568982565291515886379084554547733457396456439433035180663528087090438217293368109756803729223857184608654565405085621297294611666430745091496537223420294066568953657049797974168166184724710599374757137073175606124129597506675752996830356317534928905370950958696065228280654278811135599423026197170186758660594020683121476432505883722660793157669838314433063146981306930127207808128403427360945569631642283408646199195528420953460624873184842990769255451425912908251216354191322646475610649396595163588229396160917499741002114633619939353913561600329696520174580778680199222473081990122741261881006203109516789679442650942559517468334591378662758449309234132091860687714338414578463284536952619146286646844075699055217351314642012069945989106565274156633268878707979456319699431374808989048397646696321768706316006370182590461645789124552339706134758129627576557791583305503690868155682488377494347442797895631873333170519289466840158827940507732390117465150908241709104803221821171830490694810834923409840424090983604533487863553262949854579499295288415071553187986390766565087834998329653948436014638412064714695390939274341370987230467620661987675494553308567639004025993828405093228124678396495723111508776123106220927990342349865245621492450524018467340112664445965653786536311616939707134949741008464598830308436277697705142197052237693855203913800231476434664419161332811019428659685417910749609804982753498912683578696689941521240407957737861683737045259401632607933986041716478113886256751240417042742007522613770540047079423381724788703184863425798711444486934431480756953437127965031290322580600857105720591066377848012189830228653048427307013797644146388892674813096930586968531744592658447809935215645232278441087197369571011391327838385579683370831131470368015941794687789864002602504520780638451917674092827173094940055907735626672805623288820060960794034433841882206976252900000553859837218919871050109096808852224540669056947944618665844427873238743208736590768102545979853311961932893248274948928227923526730648982535998546977277935330898019615801228259276526386624871070205450892022098214835743935338070835738371519667440789130952730376538354404316125548526000839408077031108721463787605170188958721010859810792707490370748233838595667261563233971224284953968318349378404179562357613774183004993636098763578971929510866172284741613774685731477957716978897917280373652238107351448592771682857963268530290511324908098748699186671288724069124247315482130384914054769099761753061760387774642110075574691712512223224885045616371281610303353651909186141008148238172863852187776771118603507871698228893917670172408793915908214027395422691356274056323714299589687180324132569269873794385757016539393516607232224416579378683654636974633095398933502036132885531402976617765071381565475350639531760386891671768950223174514096599489525041638407683580796702756812156116431399926040646805288861761947372055349609005655264152342307361538737260185081474560980471040783664880678140166681194120723893951156585709733912218456528159048707098142586424931511314073193057768754450083049415473520925000570351129472271716546694445160326224457249538071070118878770352784547524184599463479357586633261146786280458298399142692380931888395729799202903516842388710246552987925895947809951492098828392539858390632907784023599643578826913246662582494818811313384677821771749344608169725353736667018423742283597727890178370410153130533938202185908931795280998418092835125184288449613582191535302485660893833289211394510748933414600873885119509554198714775378615784773142021503302449745025509974154512014004358226374513456532338757062023305145332972713962066268298088308995093876695415562503665547284709331439558319254049258490601581151142690951775351735600061393312442654599247716681480097308875596352983906683986005354221116947332735776930852451161748392906837984593972613789900408643970311617855093655658984054095901145637007038048314923141819723542355657075322192551259991661772163004408067039421853487636854000103683311859003395457098894555629342638118658821789829107247683492111694851448202811213952568031554802010229261732612489702754359730097115705391605764076741409698181867711334135015974897551754466946128230713035335425563722370462747352311442401693018957964686050178820910924509377213125640390486657318979019385750622748256401000777538901952032756385674335991731001106188099366488614828056168065057236505756463278675603301940352930050123924329843296459826440683924014951878704140647137319087265142980863482086372987253212005763723637429861335237283703509856683211781435133758458185978878281954478323458645021377685382109531764152583338070264117136082903869343179544698730313305879532501445917917396631612899012504176712980169487821079567694833337663161668247756417422565027987330281657139628956107940158095524769396858049343527338101626679634671340689149319515260764833775917901036641696128797837370221813640799100209766168780263532660592396663687411321676242788545973898711646832373230457644849848324100261933378137399767819740661185000169956373480140341850473589963342223913616450894766766186721119855463040384247880076597577262358365986974383678444908805414751113672900344457225055832917603431547119735958757379412839847642688600210046912748872851968306260824294413748262657833640509465127969159244899986944419752198226757591488828782968445168321074195996672527423391252062834450028479315889057143266290796724984852117772554138661694120529518563653371740563728356238576587953404177631659663482243171158219767505243915892019251710259858847158161144603290732623631361281509886325420094332340940576086799594890371607643371172583789712678781893733974240068069692999978805199936059111616018778065909397408983098747949050691738892759723421078858394045289145603520175028711698531170154424044480627255354163352261893889678971247982586533912804963893413199058061539564857267905291144223611323880987173558726655984507781711320985460429555884524010529604585858269273083390264907488199598108793108161156287995409266381927344470971247114181971196752584593698580525130948603787955452842014822716970520090426378889431911013533681573881363102057399896330274689207602027306691380972843685935568170565091255282554014230592481829065629247944041091883615181087180759711818833541411965696304748693573345037679063538536437565333561900481751131136510760724493598283413846118355793205867411944817368167741148922506862195785976552791562868757858910371384897578115768531648824471406436415145173137446738213027610187640271324791852375700563273135332924375672193487899135562909180246188465092060569291640325302748665448762909027436332899943421245101931908246241403948238691820916109532111609870670714377977979541832441042636483350709680427903352583380210877609281586197775638953595190045241319315217853598414239548352502886693958492595256393028834245319240947855266826755754864418872209453181840422741304894322277711881596794141556740688515263422725691192114236263848641970597332602759946591477448102556609339552785591713773893638803716594991735262943393663031768353987137827624623284870383272124271771034313003644140556534752478453431776615408282031180540776818227724703931750737802295966398488326890784470206569099422777637918252220539083075637933539298291911775920922876060866952395683123286848984094307517788376227655345187941495832027132331993542988870996629575402493511661067982667908990295370730178614347958791969767790320436573516952342323632476587129905994107950171760821425806221554464161386575327277537259352695234880950013545517018784508270026755046532808120356969426920567709840402780077827452964634122397624996556146159610995144366146594099370026945663488271285785063809167138784970489223103438367746596585533661504194984590346988515734833843806456131117521334836431136856343234559951254766432339376613607105014712011626462476725159481507146581619072790950517449438257999838633149080018658411817590252113611102166112673732255585625855033052854445503309976046491924798167731145121100602204917049541574793620792982996854958074009987373275980428862150654942027926705753802094107884789932730339184835013049824733827269263129209825558115921499551268271064237306785802592419348292784691679968584304328033332005758906573713881721234063864897134543481062720741285960898312239810083646695791298637709459327755423914472725017821377430079586615519998661546684519872639357236615527036265427011639837449052105974393289038334657445227463033944338816162232948416349439837793235345502259655498200758721426841290546065927320863412750057970680759660923632663734710211219888607627255150369103230503603557342827100260685081850879473573740955914917597952428952917943258167920234442600881768373520504296212627348473138904265464655412415632175945870649337469007248358647742526668785933352354721497615142575103409489977097639268350634989627206967260115808811802203052399922730427712480709698792219414782107630777659199677812340563407215160514398422934802604944004162312914485014136276239839716579786890077680098695138454300759662282417840762770120803373782960686744722657118330758915765819887659352950803124239666884365075711219701585636957702391822422284452015937334385732974245201682037426551300610265004550447559556289398618550987829663280476599956809695050245857259277792739269967048136091823825685929583216754389729527084350382599437600553293188386428424112898490147962310711045719759618734428569681607998595868770275026682745395850071726398558126462940738644380372952081032843609156356838196796336453059059083299280534006231592385798761930459786464445080535865467625949566357573180467810117729882978605092317441770374152651023364931102262629226897060732385976874505067961812401173165320284507794659490642400929071628127909843964233060369842396208389652898035151079248279590688755915197694907235986341232163764726040900718075911532422399738724900564085928766824031763077416167392785300369164610051220427439415433332258621280899203770053579773849754245261802267347374241093860246210269601547571149600309566109529549622102764494528599365247967811771443851816178298648360173897423085057555569907299022555658588563247022337194096638954297200609965215675109796424826076055526731661677457389788982045328168585277016477751012239223917734931590377749901446853579455635182728215850550652084834209149148460256635560303201255225613329326681705727908420193706267170422084932385119546316552775161740582291414936082821810565959515832817018042579633890470438279989449331494699723404113129393920775094073566653367194298336287230405739369822063523169568882720110278300221023431339401568313930662747580720911863177054616982318942057593714759511262114429317627957136959679594047950836865115329807916364640679055741165270127871518951803699350712518579628340443746074139777699033336514715071990965692499128607586816220269436187010182179979396920557072249510359307944587717822058836286608394440652712575175681798123981525413551363314124004392484777335143427306159118594442235028532376659328533963150566663016090523310073498563869378080921998560097795829897171303920064209730045987665030772411261194499650159718416236054562400646046576133552131593511675770477795438966215420243039676415937085921371565733482998149435058738384472659881416577497272410056715544158672806230530856279505077184139650304241155308194401016297319033142357852013658865855541298355536324525925402866470577989689159492383353495397600199141617312992793467363755948694024718919665995299768564209935606251605915694289967606946239524769403103634658592933951699844769683421008388879427985426642518950372677448605691129864077355172700140544924781973504004577456398265423570042317212563677737139855650316019680132382948020681651328697879622108481037429831868541405812722164375136529703443893007531149196239664125704911926414741751896785418916917940272928724335446000379008936021354530071883739790688956231460095916139309749638073607384181627346043800179345319148492633030869488767974042660281239100292666075714923324591913719011383914371293261868086391796617180704837860857038282286253974677177575566884817256521890601007110143902176385317213907298299387155072885218821304107076690941765397348575959668576285230034853380201525419000566644574176447956909665456479257436476072408172156981953524204022359127566678910989682655590188731705523067635407111419805796814213729224760464565541396437654150790970494775099742601437166795829966452668244156828787230606813308598941663414861291427933100189332586054719222838682310491379405925446639881233448698651240309886314441119719413520604326409259073627868999859610612646986760992096237046182240585031546774749512730277732588210591571714893742037872084259472524673967666825379404819869291227074675992671160686930141839305592013644277212435065412654099290558527214107514013917412565477689765440785879137800465410508184091030183839425455255223831252186348665969131587284536736779842296257292322216435001184275243653186648588814518473700520369037391373239462403366497129611111809140413831318719790253019464325949236311206506246481945757948378557016787961772318195101811300832060202126785299299138540406525365996467763409530893398150885515081466745441571983725051435278995898727389628318935598189645653603262795617402759180137687867746814607836163561602059994908539597627227411895115771639690334833391081519535088917046514803102505417357668358843543810254746760273946119335056587171884742733180179927842525969409226723740990953466780939701514844795285508878688480032446159500596994106877236972815262728423772722986608091517524298727467775715758929482760927962039693958420579209220303273562489711909000901415254794385371255375862320765148297954921322160200839475781478703354066794465634515996745133461015708240958205726062639674517228160886480269264515842358098776569694718062904579999892918927472844842715633193352910528882005347660336542013308562964738810586588840715927958228608017546610560129554370313221576397066910579387388451314918282253176351926279314124034899271055392952328038006424869631702160259921007729324727919502199072285075036808679015329784017001717092179684902938803925145697388914956643414168060015906946459366413925396336629759633129843343224254908339208845560402106589144918998176033953239496069320338256460722062403240131139282763575666327902008238643026857152501683169691205398442425118246292648647943234949118156598078184502987378221920342230632859145650438902706498021177270955925636370411169033169363527072768401881714094638886864934982379027827162727095778444551922667564780012808426234933702026679236601397006913295525806212518167810642704722700124629316114608196681525358534736630894883739509979906904950115797109405621774020584602568353970976141650472471988577863961487865652852429337610729201490262761946209551673797558991506952024808784204687724364000754403281565916330144708829276043316638300199956121929965200150165235316698361970892548113659299809564956585478642132528595779599588933946835309811157606216398210697900612004331075012231945215386751927595539655934342951566253390705270371330086941431144489894295350898760927235310920174763377758740693772073049841118741057246502146416892767392894083970891278740341198425311643553129279944098859095166130267733095520573506220614000468618912400942425197655671944859754181288330745675965740883071177253870677782255168610784136189530999015744720249263233037760324352218215117974795703904054636062745906182588240991898608648396770045466182675437387425281324148342682391693487163863313353281719202513881733588610179515401091291327785579853411366237811596776325448888817523083523459492112768155470508053771568379776353653541973400522959737800845408057104636513980387749707478563021289915347917081488252599674686974290064581354524948000473210729494025867230731067792327312062802372194776678082376234907170185260951591039932501463352894180169525257411143412759203325240740148729707291674510299018933961598351817879406896334896944154913589319447176630714969793422565296051953417014547892857358503659911646124901646580274858712004844086792762376564881863383825939077103001469249817548427817112169261115835306730558705784416372683136357273355809414937658572963831258102422286259862446078383000180694639850557485678236691109544150908660838201880038116894332059581404117714471215777075723442068073140847155100125059872205714490701820480049188957606350504967871753352045727140433866439178725936577499522169905800015950255474090001642960999571661343351554697045103025349567589958861612045339448828381800781840708803263374046046908585383014169541379672105450470973250938478798593283107704032315734589188773243007329589156441540530284180532986951809161092883696558921926253199279911978377333190707693885787055412618623495257409121788078754930419903941712139037289008803731124380273500208075973035321744071483381246570775157808278369999842328569489922756345092507989158383106729881973025860436931631105550134018489477197986093871546442479084198475545909885000793751762255416455730531631264970382309483908137151604848824188296622571446604578826265442945872947249811765969441367146710679833188549818302192216566948612189573688312464348421031233661379631633270606345375427845085071977854923689543863879281380869614821170641342142164538735227444672179029001243544720374386164900160421670433263410319759854189545496992818819717582331693754973156355781561230910175770294336568818524893644064554229081323695943826261271968804059971864031096928472356039608970038396516098965872777951686973542555700939236072484142714715154496695617664922381663168903456825898683510219096219701411038993673959854862783120891565995016288335761997944575386986617372397793089091837041477999334004134757168737624063812721761848222458410806299444713637280827762900926293556430261276834938330406971116822257095995057167482065734137460326339880126928094143435734322187170228778100844722357981585492489229702133530435952609132820394978498587289407687863937075630107778475568346296467678026563655549927578969564367132307460948632541331802163214395647672664255414128524157334735685702900356187644472051789503949100670022601222317188354880420564185724785534518968513655552242774343612987058802003020399486809219872442572214707050244041234061796674780693251149760296449886972333713501064746386052686220377215073273802418300134549662553900411341075393628517244576289036016542831561966571295290297917846334383183971528226960751279094486070550118389250583611306414817996952649676813820891306447421370829359524970145626710189690312058589285711597172074973036138768038926593603217810843201505800525495122330904705373320722995337259640223309939185592267176594217673089051068084783098660873742749981634457299373922212660644128198518597525847162792132753587171495507810605000206204615936549826245651110313099503881892319459453282195099792472860443724387099950920111144930285598663362646935065440400978177643030453029336105872873774631782320626780919463811798193193978553133667114690831333504275642948046263855189411299422379141656208191183833340486275875678289983900835125870409547757142415419014513393868314358925769607983046627365706786556195642007724508408096026518814700757034355031960524533631606761665973180297090107146684701337701950906189024070050558877395390865826658222061203503201332184219178779973409713605487962645381240954153235878826532942100480113013615565386081736865697732998313650297035730322693173025199240529175990467715788668637520191408191742985060705282656353879872858914750553801013639192875272652287263533822869062938068636436087536003796501993946454430868789340124309923538272264893740151743158127320112480786082046253772843529941472029952402036189536353047398775175183580602679794238062978056988122587929844331187476449830117607418288365333466952758259786649984336902518564177650877436204012399985359325849340015082427195313561354793235985637053099848515301284793726437485396341795211227567566353432532342225828961856379945674098712635967768428469576969190308277502365324787420574026616966623462882042797435405421051491968886053938044040810390073255330565176167850536159926067524830584131839722783918517128747897458103999278252781457372646829303602783276163466834605890294667940959324297651193780248400253875548881359891622675292016632374290378368270472995689524529465734423402994569147622472274717895905740712475473887113523306401109167976968925603596422943582998993430243185897142106989988686380121476994926189303093162744362030125119496305870086312664821284911948740669881370974931946303561973535523191754029658768605965166025183067730676363432248140776847584901680885597573576506372103942039812218500167304371471190159892101350846163103330746056003779389918662038530548534640275958690299653729314839701671039336653469321684313058492125065982176913692133084500906530662094215073137789921656526363570181263734135999595801468642861496056167919155892264082966533850234583729841470105707865632029150259188652564987917864226684532646137822167648442609974054256897295365920070204639502642408238662526596279957465839622709351070560292222326283561230688302559820673824924357270946272980900909531123171373892585478298288619729275199781512596253733839723682353947081917937654922502249009031155955740049029111303179918447748134033750664539208685191324971068763722421014504090441965248996721174656707825843473494925881646473820097924286179012335565920955803678583396511260152059156888606516883519017869654801255987528784958548877938813565937922905034241152697719874156921848484340667916113268467403477263836312514682165972967770427601446185372382589700014182720973174337474331676632971158481357738494230234246012769979555026102936485836371119949330417005679050201875816372570017446933910812517155572775946647847035950849886269191424497947951343903710894321463452227950761445403468703822904676863223334103475830265632411017885682799049597577120471235078207528627562861365786342518737840913948066271628063071647209284271592284684949056215417204989339090246871697055177333090419008108315389170754469659885699327234443977101150094782396708003942360647406864783460225909739578766944603913334909940486665768311768884771517682234735521260525183668191524494101319689575895389730232885017387577953326625800116250265291035616641922609086383018859445857538520530961070078784293972757146218313439284287186888817443374921078893568127620545359127636628461570374853398681146893161798751199588439089760090914382284581762869242215155334573854864229480290202738615667716365315812019173751137551034826795445024189007662717719356904887206738434822439851698347578713743924118520059760360938587278947623546162323502756542460584329633863012541642583736308422472494954364807444770628086789385905445664178865841709859462607546683195599514403346902440640336708978821983438021665778540644371058063977634045299750956465052328308246635840607228996221830911004518875912785957335177869603080914609061154476007603493733964422472059946904081932206721211235286763240538498278899626865851695029385260501328905333976386982354105832461095560327247421796064504909428992797073929775563702152836656200161305232018906232552428121156901096263644949249201677136195984812667301313198764597051029643737123745716944246881148586519621603224452025372308788822701274692444134908405592698039706880622524707674328116693850868679688030612632137209954826455582238381810578644299977050382919301821530755725034299681006714796649884286555155317668292911288040995162844347403080660727093911368765535788494052575321459304518469120775119280022919501675791695884708688670889348959733042046869047238215045714385387951645182522564816548603468919419579364518112933557714368369027878640581004329323011227235183494454634331477718457232323637151944278087474816666675264432399428622496731079021222627777592471041260886750866115023341789789425773929342088458762620871318728198921236332369625368937941492500950128964089834150976788822569979572917140432409183821121139226900538034680010767346343424962154901429349656206251609116428596631853660042577257073354722838450527223745703771717048778379150671774354107678851773378995210332719528393688258852155848161562778388661289976438137361477069204747282552361141306927648112704458897629126799435605101229305344997089292767609428503339070187866341586170567089420661770849576693817866550749500305231844172424249501879696094189743443322845456698111598582300413989695825513848055640784672152439049768961956959602718718032796385297594269907882703962752392989309163924842314899746575719336070321686867690218389381661485586365069187143149978848704466332754473528497022041456798413200598265000599668960402645663488868298806459914698524818005514957604254853908094459939503698830578215319917578812574212935222895286228361577651477791978026651148601349969992968711616187810803090178932447357724070019885776445468106325530519003266460162408147877566631540472429163775846628745551427815559932308088979722849969013139918615629327912494187766471618215644152867434937545870449127690516573018337427909837183060186647031286037711625568076905114566949481080606141932993195105942323038001571044459796257474876446850679740144621514005346382831591903916894320987162366430676558869546990017606184117786585271610163038353666013789067580696243599305096318216968944239648413826597343884604330882042364730658463767311270728726823731150046011537478497384562632288982650217639777398192539539365293042968619979703701375296500773411329135803970167441314877856376585083749521911501472217003266017507282912031349515391269199870112661384916033795759054678243145832776889757333314031304502776293543638196860632529884721356641820783364808160112754286022035113348477323514135728176174864497454297776282207801035779117470568047701055577624587129784542367878017302558898670410536971450200193968317983517634494465064200695298972502880039481716900858323842756353948855849540252403989926142172526099050204301913374564529217853264536866733323697439017315141823841339778824103560806143912399381201198291863932677107756028530027936735608497687520725576141354548355009700059202540014167173293419636595837431845315649290175955101970278714202820987586151272083256489270716877254354172313834787499476964556911850481533611183673347681908178475603107257042656927061152075561889352521560274153287251064159422616185029519414932687939059632724326289098351688576449106604631724150680707501361943379913881646740500295130877993579664267359120546248273895213707871722505458255347160005170033823291352916607102453973794119002138334471374266515321207348100606676749210903145285354171977703341819525095791306295777625478182315014441433884066444172032637892997607027087179015956307848222487646714707048683567239026354394341052963146695581286256215243159739759248153721002791397249015141294184991371376291886044420978471574879563481762696358978144902306124089203244095489903625171014623466571239446605071705358527001745079627160787515351277751496704727484326884320563275690730501423705629756291263026582447566750230469582201532526182001907463451912164190729213067383051399252765800097798544835425481551498139066367324165690728854931089263952223399094622168491207393476763817942626397321777988784526731021484306949340270148843063935918174129789096459054330045224749643232912151414990094967186554790172157830790905826176111284472471140570539969343577931102618990952848067499006329094295943078089508430570888101222018562402219903257918092830084381190768031883457539883940521104097107015525855227542385778667398948317640577650929589790702427904137404305013550582167010211818323848302638862778297200608538061367014144247764881507717515935806986175555936182776889896237814948349344644367000630920923867286339495844227746115579838804016286115379774160306337849505019493693567169356092420854307417381259937842999313401973058741447502743716373319414186216064972090725136510632931328743654137620738180947896775477498327250725170177301842497801586703652880457665308205732410430521476222685390009059658693274744669956367298468956778914030618869466870334436485973924133186725843851968115249799742203158269538981652658878547761736818644149924165294599909978480395832598195138845699108532823104343071869257172891022956122123421225074901351626900816931872417951254998640802651754286118616568104050130650051941582118355348616948173879677784514515253776776585728057746271591024241964072096691927958387063983496258557941882511289626493587294951978681362501422820964635586397055593656811855280072197933759783934472895712090562220216327772770844811564659328051153923192843184043509395436017707327877674578900129593621586419518287131050912065074643037359169226941458408251617730102480589950009186418410010217090376873889671414074524027283655299571778643334147400030221362280544850072751266909790094573241092108788535201105812348951473387615762257419402034519435583017410041574810099279985810910616183839802773453382500419342211010262187380445623742747388708921465781522631341473931900894473067860194917519491257119716162225859076350055417597797882978141909724900862805134202306892381206251453907760202069886584262513176985242981067999427231926635820471673223113643965860767072770482609525114159089226627794864353557444170939094117532910789225819964561505030414251714352487653211120123590795251330194208710534668859551083604463864700808468264234397126677268804807314959917378032132157048480440819522892871161453220658684259702595105965370008615338362577384766658798710675410345616159862364188872124599063200401848592358507437337254103604770575231384653385470392881936676538669228891970050739345154919832906473348442943409745319586091580226931149136170255573729921978876386917913184174851939695697724945740136931622303794838287434328289066718797355306173286836884438982669941743066108302768645387722333214096966573083671436303556125968845993617238807273727428876883629178504326610261616336325220764671137467954366636180346247149059457325227125138521595775143202996064836899465767666891537453423701969534522700976091179227219129285998559241036962787313784195359688269852428805567981888510570033175012738887943192502206170368295360942247373503404390944271958153728330617011691388819732309572960641747973184837367698099986012935682650848995531527055832079765836212973030185555726975261217237024388683572544283303247823923632533416670278282558721403015111691450309984832281823423223454583606428951676449709022708940981337830476859104286092504601311029973231584994700582192901550599821162166947739081383949287378262000319325810527268944245842945819113644667021203865750379439275917892780657161142593469252964851583699862093719605625632303866640154409486219886327885353508080369079274309397656817040080242744907454414690610629351968001809926309233445530220431919565998117774045837367806046527671241332444263135350952177731448754922500153580420563024028552819767461698539369034939407404611205271070929606377950266596965029460985007083539631028556997185046547720051229796349942794849161619767333642659158854811169816416221261376470162678132599040608418866857041915444182450685280381020055347480752152335409763794468170156429425470494054048487629129595340280416281565320696477803470501979234690975725041181361957813164687652271356509323338813442917067859206517474402741216862173837487663945372357073060462693224073206573723085807633487515964916334606549066455236785489473490496790824375106811621069428775732586194237690948917894943199868797799456987076081859735041417962345414723617801082608303330577429283049996180574091736839162799916217849017276743740444939933035367052246293959551266629112915347868594423053680572003802415554815514241695192696646871156586363777198088198916218363689678967025262257681207610251237910603062251728721108522299925170956524169214120565754697332481790045135891629551736196707586559305695989752155801636276586921618531824322794738664320497018835435101773113391227852805156925017692053631997778506992787832601947597996400076023026838107691120196590565361880951831067731495385377513310195631096113306198802268128583611075843933814762292500612191019585779408210238469148451368556177353070379136780350575457566814274504586717834275045274207385078638791703946143047326489959075413172678901696329290284497839699528399142536487051444035179603278275240245459870094163205463771788592679753655153432612977686194502149594769783052473643597463212897063681683638305725301990131194044585158557917542350240738153672976546119480542180923548214088015247765106312129269932549001537852667292004427697222387695953643603519340405902025427303699557800595300287091596744328493400660609738730284322765516598404852824897791545516406380616721162461347083004335013570147179406349341150465171920396112663378767862911646738089607672055075983024372403126664364326620726469364032257962469516328342091475871828039646149090981698979179100413281572446517144360251532973167125010166022402559276810626268937940821481854300761699145107806592599246002791457672730776198780145497957858564161304211870011840011379281600842657643747444398287384202038868299042960408499494280106098525522041415511245618343861085014257803950208613458398032135692758895672054029399268547029239732530671143502331912788889129698186076459339436980310435367942759979584053950242970131393470203001685383969988936409661781336244799834554029979026308211996542693555362708190845308007572370135167609115302619372571577254703766224601252532515610832818515565506274225819400918716993973377100538833525555102855726808797682533755264559086956824336449457769440667490451271807781780393426359447759742647723456955380750559276388111678196913104128594832639313058291305607303364971479415855247588483798306243087323235673894117448566333047262103172673895657809675807691226325121151002696920759682508294462875626337131013491247145600020363504587542001298967039887688907595029562135518326524398596088765434199107521483205410395917426698840759280892215339681476129543766035584258871270399411673698792208612673088555065890698108006826616140069710342389820037899589676692130819271074411371391640523877211727665874711057086363203825912551987417833392495342534218290851986205264372350679854223014326007168676184460343275740525246754192002795715647825073144826445559479502665779101199191296250383676724498964015429101994671615844960538759052659800448468872477552145308396765543706487139070111109022959204346174032661928443370893148075494885814043826720227948101166479205342495171178860105498458962312325614304857283336212069805368120343982820868919056537261392379739103063377764458879961278510577691762261100083728020848917162155853514631879205710365340479803257230441776981245269698549807550899609381310176241175950469319092212620048601080745683629602788892659347879479984021155396970417420588655462577390068541061598180917738640067849876900392140470380547124312186779019357894803381179560288794563996574068812821013465100942013330484466587759051982142153774776652868874171143890972171629295241976600817015407832249405428580201501799074154429743493726000747090248747817276103240586446871103992000123153300727072615176469007659284974769350969972063154663311544352086396150708047304249895885259877157673212556867838444726144931835025605068614861384530405534419820563034389883557551323381258264054417963205415467055051014192198559286682851784268883265770116236857737881097228067300441741505837978203041304919779028855670162995180098588800429950807729289856623323467198086678809253179499325419426166443151697575010007657493998991206054910849160192265949216365084095365369998130905233888409593397868102688309476991910106782017931611919310803206153805725684892027474832123296951034273125780546722816547925884477135781540568302326626395847170584583000961851450751496119212028353385731955387576293156470285663633356149125652093218544052540195946826412434444982815968573335618052882867677903124712112929188643476913342138019607662503362216415653589798839536028234969215231058838532164581060923651970285060665708489560618026415377662790732031110896011301813246008530752134349415612616214121103190734314383860555622618357557224102652716343896912571998770084806217526913061723408702530023079764197479822317792765497053982908167287178653595798411231999731131735324767124962022971513028429400839584201218651838249195354950203961636999620414061105949528623362313692622831728951970635906040600324038197216174115318761178956063537170580558504836113234550454566970343495416170843952492466913066498211698417942936366794543909880045811897594032541873927543407333368403991449922643520441917729465947136368869145159141749774616815232437369170822374779881564685767792296693026080787955465638462430621937287168380761219826852069356800616764391191010773629637970777103902499702304142845352445539401612208567701354110275521945331542643029469777424995814882532593688348386927656026721701083706315749581960818402591423042443943988651991016596722503209310856768202690857154968057124483784703278638041711942243485257838766795936319833328906264400649553351105654108559504914104381777618116770286301440613150135375737274369910839075274284647406410809998721834886791883036563196128825018332599732129134801171368340807728613758226980896908324651257336017699240044962493314626597728628935299705159810808153058738134739319741355977020789460051714455372282500397469093041649598895403093193521935344448831136934613771724763390931952693716707390167033315995250486178864941515425138082375068508664737059346456152617430922094606327586134755058705307134247754426728368973089705742391892688934389196915735850329489797518029468052424113576448576965505758949631425613078476812488958390541478580696355962458602750064873513195518046742617808385340182681899082501359214828804861339295360320566305016484375185098692380968779655398498890368393766036580451124029545539581313062696553993284784736130624731090165043197617329518551536699054475399205777634962652765159119671465769187422446080657823669796865664630128909037618994978785347761179802525950159662637981184094466960513205637471309292508211612491306087872159065431429751838513806446630037628732212322773978488446617738782017501077883633466293514569824735747115830595887414867154454271738880424271037541294648025507191365562886770076134748717865517882057807511922853032666437404090026983812036918776779187278884881924292686910726512038357118081637814942919750232099757703158963384215733835142529062585564613136285821973114897939705147915438469083188584906871565120959535722668405734296287052656453087179191382242018065279670431999343601775033274091376685288104856711790264051427180977717017084632045511105886859215014063605343687809718823772699754520738803610575738766106324215963652013179218753161821200560756404261098820731145149679157446670323017696612459892671427148058483925310381524739745327908011717910702881276278100988573144754729165932754521444821694998121797566247189513874667980583640570025985126904991694554148697850725273467824034267526319205334410621601971194219431072528530117425251496251817034831601150688964944814127410963592677128341047036636276973816630437909824821929881462946524525824917099795238644685025808599032504765272255312342106964725389211614199017225231876996841159641960313632773992521049933839660474206323218276817268689428733483257872483034555561868396535028265311409674751981702475889793990386328194837032154808128935400790040937439100405826537014868251082696456503047693443842198320539788005217859934072609125132167363383273836746697767028614008934628316160174455702486776952456532878936451257936114228776589878670071670115352615366382422176819467200516357929737601163809032565540945299042240838666253353632814398929426976045248994958513434617543770911978435315079795407434109605440269344068540704617586547002632392583112065274325088856734855454766872165385874262439392620815115105186684758571789012409410300832349623579091536535511619585640499899761950388325599915287316462638237364633675834276128114807018026760650764767017540169419660734427386397704043741015741709716066716059609267428653503317776719484572938307793310960679383519519024913534095884589974483904891901307055436676446559198500390807049192505038477256430578577375436653229882035948105619612950271199774112318982488470057923575739285729628710469774803711137235119866467625557843021305823842895774685633442206229900584359718060911581969932890080894473679138515475281821127243563747398957773183313385923969924738388284658830310451627116426050319992094907824578647392260083473361422301674914900980866282773700047297501033996253036358857762980965472030744282044172560333610805890429576143497015527878646389292896870446088967694596440508941507527802041066013285382148467822333312486036491756039009202142498176099319715085742116426498300382115012285992115570942697968018654830623403638529484459208231067396285825577105290170393536852513030921757273718711569641122789268017335631697317260774481806481117203126122808049455948441541780951728118118989796165723772554560783639650631100731226233432933955578814794987085877164728463984651921904449517866101945071457907885086692677366068831409044809629847176692814802684258362777841886090668653505568677687041567719297021136687745586880164690440680046260787905264044869304179397505725467328843534563941627294649966483224200642356692588184141586152533029165695477670819011055045458800150846553891901465024245347070327534669680399963489728332122050584317462311765292302501809630113657149397806170440785509822465924783516723677920143768837971679037644224317787882602765822832903878898073927199264372308926195368958596917663079807498378036301417249095651148800501325415470997834396915642007926310644164729737048962673183950476427194854256492251092445049041843780186535807199276343296577961047721291899146502680417568226248781231280867375379085504627783819394762510393732120712326154379890915068237244573658159301952034840812454450503301849492334288865446974489575986525424517410556448443326270215587764303097511906461942095390148916245155660464564828017343702649837187099883192171157808481044787488167829790197730291647089777980790134013965184663803277157338745770130740122795660796781785913466975726809277482933948913943712042502183698594670597873061886346872361921866543255707839807306049538000663206016980470712427434005663330973022066654470168493975793435816649654657487887478542968840260506486655505344029699190797009296478383225765218393482636377159713553594781555695411379698177090098787229454778974268612076016703615643128902074397080280244869524020597653079317473549716231744265499694675859743066485546056276883530458773525871901227691440842983941140406539094041225454839171170963953791022489649330314992125018939678284226174638949096950292391712051764993621944284736212194660050780421805534198443662947401244071779629976699387221460728703077332803795552077626954603748480598195021631531849126112382285940733489886164006729872715037941033984107479328621114007740332056020889672551874891255087481147629095471011525482380053778528389954682860523675653885736075330412536391453780632445100376039668202396935239791367666552774183111863312872383239728051615761394142197016596818682310843198392997070597409056297700907066294474961098362813180080714001129994238468977411025947641736969487282216453142673119172847159518522293635241211213771239043947666590846370233659199835472779831322097470557402207711744097355195749432691221436853856246779578914752999587999400778533034214421290547176940994548760039591697247922129490214833166814166214247650140934351810657051523174610714410309088925354028058871525487507680032152781271553951448060127745058184119309515079955035493993868487443858689664371327012290258824062037511891017362036890640278833603506820760553398541689946706624635837235295116041292752058049141503704095712286281069412941842424522423223359596238641612212987010568430704723598037195342455055465274319533832800039065059798926810414630792313141799096817130003230706837099797916352235307437718960049642647840602894757056416671854848185121283310503821690333810514763985018728464967642667779858963251146297476922222065735010978281265222497670156522901872786964634421231142977846326894584994668429497522669471967125017921739182505059018759335860626220298915508925612143885864211958084001673071380036819282371767125496638754454989556963722243632226982209373501759167829299576574360012895355137661375110395145742899808399365395065691562851024347585662166765572580953613806019272619099683662085957316290934302762791946400910294618564840121583990950048828046350793672371090693549904645293550996483541397626531411175559358114897549017103958513239912222467956052354190119813592095365413631292516221627138620670922759854974581443742846034495355441212127381447231159803794654891279548145678121355530558166410828991422855485757188616762760720050425918789990080245126289064993428773586252228234486021520753401708753815292567354411842220644781049221514815510349417590265161712440679388684812068210711905502614166377204887551225240576799034193369389201350882386765817071069820468976044647116762909861141661497287887243694233567584319719759819410277430979417072127284442015319729088249107706807478971690198610846783786882485384256814731003680360668612471150377115949526138274515105106876331861634301138638508379925073908862334017471373332016145233988159201179052494191115634295019150297461794254166024443685014180213194347774444206295591920364522052103739968133083331732375727994164089241322316820474801105075112653466840892972503051381970368313019723565288899121667595036004438142498889643063759323622090061974838704194090543362802862523558081285501259498626952133296854078917309595004762278013522293493916007807716800863508184923670874370246657992806727398143139932521641548116934093027775189824193466834547104258420855368590888239507924160946002318541911926685290183732258512938528993004988166816982703258327089959682657324745697920898364498958522760531265998352943976209731279438062950426727991621930611231268274468360376997436919163568450882191825892555629743435888961372809440643734952249526203877423811336712905962357162329383850997430111684543615748496524252987677484231260184937167489498542706690544765074741564918183222295623177167752996680697751480295692572468438019662974063681667227671565994931530010384756735570893927643518650391215098328699941844250891321238181057123994314499808824171325251844692299684089211617844949011796945340792517704220734693185902440129984237773565286776774896977659363564242223269402819067059574971139023097577732048630931619768855338099280077517072588777083251396917974480616039503180708443989766843004536740929751572554889710291626197090245311661416334851176701398959330006941774610393049428061484808782531425834517105994911042933836979593163857471374223029054460571526207322758335352958827151635883290788563072106591869851299546615695324995213810299432337456122336934867065466012492484174586548899250960132470971377579178456919223416885785884582786975066403302682297620024876787774590381450636903175946730796771072661861533287639045553657275804555826414536002416755883487793472352467918304158052933305374178814514646388810159898726210794427093093120915251350130651758656587756074357001800432167234529315419733970307944457800418614610762290213441071523515763146032883523619232973640898308476060633114015181422794455372214925437684781345370488378550362818289308579649922771860116655528909172373420007897434692451027143162733002995866705950143703000742168004781855895337240551597263909498745088031004044905416050055703905066307086907448200435959637371967770700921000320780121929877455503925254697793188041631942970305191162520373699625874774260550283895966655228742103196027410578269920947382130979728890065846823843271674602040207061065684949907508958076771396593217833283262949511218490450925137071041836046604595190774362083547649088632759492376801394154210620374359527714849088218746771391354761400290098395161166185247209478504407658675602760495213648762730958011283009827711083484023512539095294360351946657273235182947747726231147087136072565841581118299443058697524338668049987132463359160379589313551396904169696926588359580695464820790977304462187656143284150449427310711265427312784330390935836440023800587297831771758011759741871352009252873409020835021644354787426817652307560226389541691358418767021983798848359690738021461594183215923521730672781286658891480912260295221467115990818613757601720513711181074945242422734356256209141118712246800199619641684207875788641374851494128313645718826444489096373029697174105004415344695296153528521864458757177650903407503612971388797914585255875398721138127299920785985224232585486215139257740579206826096677208994555943557991598249561098717544566850191621653609054206721568601800036544187804464012926771080867444314883270744750995413395445154222165172440035419839147246306662131858800360807862823876009482470546886423818028003270990212373204476613536741181528538548512278574504443008031312033326505251850375956587869957061837828588740594590899799231013737218722479954175235379213466503641262034577274627995268545122646354082199586288066879499639091509484610226953150531273369898473283486312341210598128423233661142669363510871108951561511449290650607042220006100933055068735380465644403447598469104948090584620002368915209400240073921059359649180410499236245219669510542767451628715248106603744674576831985650840458853325784353799631222430129740686441208246956695111384056318152488294304144478791618671885479341270348225654121527725196408960861672689163679696106239894800476392860556209855576288065756891398413078797613606493931164703704141769693517341976764694888313449445090176439988473041032818355259195670347725904463436106123829292349939595341165290920308434626754371891026133252645045345414252194377012034741435298299195487049463448699308419295566714085512554080051492313927960195486191528450434107087774445411771522682864459624395261418569521738120374515299452833856213755841546466049718361089564462393012247818153034664263658754069852802090188629809968174878882953558891046866317388433274296672491045385458751286744390356961791742813753915707536718431033630591063401009514163963302130453835644446847231850470826365337464596719705536846102529025120077969015185046409472374675811223836210394563427877297125668140853898048070649650729978876261964416418521096057254639019993700247852787295443255853223316648367102503048580747951867835317331382205145330782633018670871988352089351094077336875929927583541312588196345748589930049256477570748548267048553102451566614171475007394124411891172698816716632616821827368802419209579454298546341972017408009930093443720779637309298643524741115122860189145942933264176541649874871157734872970380624699417285498294682310851452144517138879971858034453060393427407927172080487483645033390942237623107778497256691367885457774401227085970597929764905843344398533219330216511967215843604682838505509892075586216979542033156000704544434582474484090040952296368191002906548382741609857074743332212305062169033852047146534346804033828085179577932026378480943438845420264024805401817316221165231734732435680948432350412833336707071102665256831545293951558552907101164521247154092191614637134777155899427136513419009789752424844417894996704844691739903522683626065906070006372431192305614340038819770095493356614601526144835197694689012314734085940949364888601195941673927540508967283326968155355296580578670291968862217580595867281520860268812427338706769844215196890496889234101869410278157413983248310864269050334055120358397964907594486796122239207912331652270855821588913043603985992506125335808805492287593062305974034434403356196400330475022929255586998268421803079952001655033801195142995799724058618168015232019420718465421470795041003390883106325009510704678069956992039666894507603113110787077705597470766860728618418213994525192525367081301906000038456604797279437889231860345031512939329207582922563497673529915151665136597239441559125894978671401930461460472673817777660766150532513963903001234549795478622898627607296710169673283615055458534346539047976870049727744606633165880697385768742132398923501891823699013384943285293189111801742962569037449963132964406221315363551528826259986014833266399539108101413939877998671982537326564140167772035177021712740099087101747449497874625012160970508881476502359333788160647584417779675907817736270103041142466698238894174046590043465118591335750639118583518863466482778500973964636370699421945067867169049872147856747166920816748788426721910882108990338941307131675898809341949349323621416527938021929134323561750661191039170880050864741266917801805322706190818675409005511584205945018126640721409227728581620148727621536746215874849290731060159216880298885356487715221594634855984953417945856479576428841447236835463362406824874408251432464813927635470802788956632913432351997032414265501487407349494274041603682622983492163405861845152807023662412361535282987172120476665786824218734597586662378323043276739158874098213204631979879544746612742356270608104668204588057847063588505396100548994939395931936626801294303398270667118448152097145113972650082680390928762144904362889783882021045267070653134904607229816988523137189477926119088793053417540825280650153021216372402263160633495647782080139875323771006358782086495047169157561486439682303137244510102607913089140879416611136511078603808751222685655832210956051271695445428948692448356788325515216139163278518990490829867408124595773030920124244038336579231255503344436247166382207383614396245351518215367682363214467385919202461797858347052101242439442761780449856531979150523867085538710859600200000113884548965023857267121855621993451325490872612804759361325666099999233083869075367842134037098623893085883560562310191106782810957612863311356928553974317787731696881414166703948831931758837338006365730616268676861237983630052759311798353199285699227871340355914628287675080126865030270283161172031728767994297218552773219021169660691914236447674534936119419599402236824098494014197028017896129779286961022651931945875978607752211779497931039606564607120117087066087931749791389795621667333540359191886574448801628045029852089763249531672579403521880053961419360591273637929945042930846689554986402815103289455581179142721283348948704356289270712678834336239691668705891542481047759920436421521937008480951080310611032768429387675042426142055177464908930166982150205350014803576252203037831115934822289482422955146986775988787871034836440279859758708732263130515436590262166978236355348629793087013901426684205620739598921672797102706674693084119532414024139845263555477701107834669849786498154573968340628357911887172916325862244823220638493230069527812496647215151540334758053153096355586806977943689470648472451013644252407354462276166232735302502601879315950415424610720378873659281689887050690855594117161441019912241808866170031396603160461033598038936847430216254269675059137769875498791092556279563905984196165233494187487414364081364262142545212531740934480699193728106328584334642221910352798094312692439295088884470164744021597118044719844635392551078804814107050424003571358000615445092349520510195105193140900438945488033813278580713195230180055916576904072104660879026501947909224262091827498565041303036304368917161314344844835499924063161647671458022257696487199342096548174927805677783232839347665697194701316268120473247869719441993224108949409331936547431168518749000361188836063608388294410988227889915686179003358579413648798294934837955897583606729152566924033351057243598722254664657233795514554425050639208432826931317316033559017736124710404786524448499400826248219307528641613081133293499990262666158346111544963004569464614355415018342471615054274964653999078756440301634917074206090116909513952137436364669438765798649869077872663306234758760715618581775049016276808843448630636374484376287434150070657245473015028976615592476444280711063738907766257319340652434483912087029458618138224000505782231108649984200401651856894250793165757921090856058490364906291446615118397038138613099914496804342877303880257750944153700665921142677279732619424559840888217132468978897792547187296438517830018672531506643763418576751406985679948035509903800744774649455317360369451793433422119634565718904425893175520607407537337431563640697078638942242677536623215262448457918758990219695604962657893148980922311627339417784020676074684336111456402079084214646224176239406584020257273405105062895942111144394163906404066504680728296753451974883973457953846947069945586886139682488614698002616834661636635464333978250640978438603411996849045456775869746768420199047180868132242643968996266282414585586311228841988812947246080353790165098882014639126503832309427568804849367805991571280962152696432005920078638591043983545176297883239234128893587515184444276721868471399570642844853708418862068892241046394944374778620260505857191616762425013415966186798608302333299337931653055313449406183273927460079153420575846315086928337613558473128524490843678649101615551493066389965788726950474252686832050171048210278413202600607760299513024811865181824768681776030246738613316150178810102407778656267101450841646556972680850005476382139021879138267902882222428973816515378242655206266116211302223801067406300689060309811598718134389085141428378935327023859795297035571664621366057788419886977317809471697635821350827316367999450913632691931934045321428629168716590431358134099308851740088544484269874950110584609064724177654508943692559943456141068353711479273829518455049836248196523300411082958903248365752590070807855913616893065512610863621655920650718319673513402040295145823019391477612013225022201224317839210939394258013539446565418227770321878824066855475451137226575483996286227100990759111581298778495050828671750041804832716291920825037449664131980530443437509825969682807611108699679041790408586788221802725462412717814587734537923779824804882323423444469473381448309228109360320162554002359026875479979541422657297616933507510207465998552395358899559555102549372908009114009926995027133724068722110090535324604290217488251357062229316944263537291482119391122253703867379702265292809558312383417394458057332189944891327206549408813884508761366798539469466113023759684011532401425854184925856470806867551767977888683066241208749756125798888160298498742485875811386135655475540781970503877334467487066226643148901270470189891697099862158810258401847806240547225274567265252764931179841626353665289877267911797949519884218150376375385134921327683033540688067124998307939519966428270293805680457868646327710751452374429719846300353052650692755163825657405922155432755553990712455778612749266197126876086036233321464742441871403647921005312410773891015576119924668240011625977474283602672506977098233226094787010882886493382237217247732359840114037564645879542163912511653678922603836409163508560810398192502779063757615204872236603403369611739786109029006237955274907235088475453004391299443449441063407400771321336787851481005438126822227742229587859480381124609848623522526168128369801394222205520272876408225688327902299421472760421186464824698513978926977287105005638760711946500627737520329218025138941659505529126235205902450499159586295251540644678972287499148225303094682067267317301392716689114301658290679715117450345363065853519670434683757761882762714033247617263110520641965096690535522139153491475416569091019621739024314466835125625641362430095647314888134053696416160935119415827008112822161054152122037469724021423173078119193000500436214509119033286973195218200403405273706744092357951263417303726196304306455022608160265506848530438714536539432521273987745174895054003866528318336715383353876533105258030428663100168635226967859035173429514206575801081333231664994068126994930550627633464771869633683601376255286239755597700007768422625058696285305878126562451456793213838426692370169433946406455928369485557868062765666756467420927335768150266501396984518951087665315821504744577537780166699632647699882017422755938091500251742263547076092909719028285622164328223540078799657326894572506760522010218518376887691649033960732110017613963918604124898448110028706702455761314098710420815937483478699552639087621866049507531327855507943373620677604471052109109730034058281637182751782390199856121986283062755055717127626000828368663027083536343185517162775104965801828240301489228305205896979785210171149593605370870816235255263132746075209879767534483973313609720015947901626313494624282205032814230619322706743296863655834124635553402094579864156971227756502973650006043289692157854607256061202690519235612424269058993806770909026062617647139649986964314612574132263031432402334651802543725434340030548702673073538237053606291917421405496967311742398410370331643567609745686214489482029777113763629395817396969819521618248568715811212605268000681195901152267945669790276416419887457587448453553435929224514864350726344214766277716732626893197074537907836952299987401359734561355583678869967154215041247335798781409516044843307711021489694634273054052837074918716354362178913200895788030235101899629396822407818980061476531545793648269143806599296098850381783269171301247009893795166260927398499628641833410200089494681892957789856430441935528967705453732114379477724661423123417329412010361673462074047243438762258945190066067941919970077181959244257139933305557766045916970600546707662142779977479246292521305802522336272887357632390490041068204256613290769624340526613944373265972696436308672262410542375737879130451724867857303154202786970691754943346394496865203992156425747157886954978276802252111898004414973081912543418512685961947319126497846621503128768374562936297444731591868475720382206592699756079799176108584052952543271461993327854735452747861528831007622807021047391454340309777762014388098357595225749312617539105730512724554129453346763391014346769986318861304899278275105388965360107212046448356696331315603794256824447089584342492596352369416087351757902377920575905731599700200552296599254096382336374500060745082850435165190232630090057339714087620915367242769034845238995599602318256381642839889822177704793870086704697657210912733976605049353691624867221689093506125501792627077600914111218596753893864811209156696735014829251188896047584965661244450967127447511480198892812494321095227992065672450185419544405631057641422078274274511314517915285471724278026553043900851504929965632697216091180719856628673173644278766899938563772624177584948615282368472162772066875619873957828639854855452682746401564015277270016347724519390926636787750603862681347956045658473373799645352226235185988270530326562023256983660827773112873910489965134977520766281667172293649172094955602873936012074325950899832459342568407208632562881279492266996174640052490177044203797195773969267118967354196219770745166311660570459515112797301777214644281659272730098243393755607928572588167529487434323974949888136844803511832837973697323978550021076782310757529226176548648082468424743357477552157584132921621793234247259829552074140368107163028199264925197961340743167422895063819072848838489746393484487900083655482157616097692827492470872828005818521181935520046274267462870091167317745250374078912700553303820066013190072555032092825742677214942718127654352558050883987424770690007679587661381167158571559559568068647957820715397614496053946361523482354175722915739264944777788646493995713813422020192485461532820003857658895932776654826424310301167491623160586859942489082140772377522191803075057076604167544650769423592702134228934735870292663759641570473303771461089196929741725725601516303270210042190170400176553326380150092689268497444698639997482245688023610610889141696208555703159824221383177252522433233761677005304901029808462600950714292424999946097780986019915742127391862967998692943857815894427124104743339322363130794825727019222141001566936569429444969046429343928170855750060488412788213752011645474815645539331450571932992557040026637663566214234382588222281464562785015584496802352578516193818557557663318329598008324712586951864899561243970629389539828258909510002606797672038549817955208542087203958668071195628367589649670449442668288829042694701772811609956511384268278327951620404112323224313562495493739590703926308046870871091296788278326711169655913116037458724956122374948512960339885758008508806749017442628352673254581759549996420129549261587781689979393503567539470003418398470164844234156736624006104016124383992382799981460592606507539999210449747454106479971749887885326651759762164823568959219336992687057967058199476543388401856172118762010239576916374934228745448199365850834128750225436786491953386299781778981707400227379640338218121881096156972634412022279970990455492021977517249203107080039459916190792395837782523977204184228490247222359470766180264267329108312506803504887831118905433387330551259006989957238880694580883278838488071621316783107799461181326209807158413001057513751581567043340029988801349273492252458671446534973998129176950512388362137804833793350653668987032910706188162334569057124962917723746822231222862931412518416132755613544786572255949721390684279237018807230798047469598747926415844048979179974608174180081659606005090723172942891105610604554155552197049033210934541212353510759196288454914000989383590592133378164036514454320529725068935688961870521755036238958597808204952999862694417977708501616366078075653601107762837751152441198043124790993594781936265090313699272393144355888660851542427464682972486566588131565481193541245107296446676754619192435660329826410215103809615283144419482058277572344480015090617044031618685207033764247125069502995531741835309612784539182793279680208220573935446636277603988018494007514239584848335145095700797397831857957916040332558111564570338910501967999625008454911203601689839917971386034831466191344479684192507175531295996887190310431285734696342481070588608535755597781038076605702685277617313100984452390913096135097871694487529682785437531700612500072257996324971039383221721249009323043140470040904414576668699637379387141936595725401299421144727597898143848158141783585036962169007578551682004059669558996313050616536134912463450451723248483520805335157717018173093184008212004147775368058464405063806532699351771228752336323162190298096947308040831721537359262371164856558169758217603294435245599174211886797436226806259510292311815391783748837684677722964022935830858170364064993106971817333317762144538679718089751373665382377062012782979248251957078068661309148513638644132353076917330174832321126964422665183682762427581806244651828510874806884667651630468803671170527014644165649384455748534389398266614610092046564795539994083044019659230110483748600800222797573884517320863199162446276709917660888440347322594645187831381487525667883476320340537961810147730189541324466517795626112074431214043513394457770242398653473778237772097242630121394209426611364999245788835565874198015602342046115482625753063012746252758304912555681859140275439752512043001324880257639487899803708867918225359264394819565294032155571588599204233602475231057549027122378526680615633570489654539022651733016663624088469592136617902307425383221051562926600969978664372830823075089584579677621135023689274505175316455431284931080720165860564699757353104363790575727292363181970792440600226624260255775171781168513957324253970941777339708314300515102398119927243442942601289588435580197556318508888127793498340256470961958795272395715363312094155202303314148504009992769086080801580433306567245791254642632193140477422475187259815544756117128922284449968109351400424017747247794453066838959641779555228721302607418813195475200442857016626241778974332912623109800893066083974642788904481064372430558361439879954668073619576125225500373509069418314668948492238892697154131001800366647660174538107229129255496489091705317203609715263078669176409718785401406198192546365052524343224849837616424768181601441127472941206536913458943647222195508483151967507308472063935906667728095331953508780772915634179113076411727446721953840780112076046403113312736989379131352357942547414758142423209862346871523676936349389630340374804863355294227858435415075737722873245684039072227263056133428153349432956145396248720781474700009208950329025135823479768796149554652468777309359567123807907582957682870404833421964736910275339577120369519593156990070222030521911446979864523928994395734934901184089565850512373716676241802277076043056678612399338355595303776493159073002445525139535507863877489035834013872647988360196942005027247577576427610325032841596847015234563673811511630184428895921797676290551556309590660049818607291957896077631955428224670451887302258172879833542366806287442934225205941812313415370487322995937676941297724625250455047996464183201202821901175072674112849583826569424231210407026234422589547531058583883489314259712839452866938636407483239156621371518456299759609756919021551232704031818648398851502732562531365509759277116569550530794952344079069259123381798161420778753539080308447818697991790716285675911277412887954360047071113766586234455176151832779080137072577264097604752486175258339378325878943393488458022847659912897154023058590372991245639710353997286453482775041965571352439596811010358970863496146452004804139439418925518526878292213023982169347243505867136324581602260186767161993490806777613762280955847386687472708883137132052791511711379229099655080871608185008141315199979725244070513593093456053077767607281110635386159391068158214890148295886364802697262450396796731471827914383992225745343095177129194290696969884138453232932419874732350999360890552008751065336652293908976132214869885059721367785123892387495708058802766138455888755765867467517995423681622807987037323609652959260543521847284599369953079436097457418511609591878045549437955019074123194454502811871423183470900241777020406023907839737783529560565791431492836653903202475925705988634021406783446203931448028735172632809110475650275554842068675761211200976511860925908029198331918624908922853702596383804231098611497173595358789197028724350557166033104129544114958543532072889780256054154653269416043740358206817227198563093905252517482864362828719925582291999085067724421060504650371037459587578126863423540336712853785336796085644934005038670583893769684661409359170098497854495091490142004112007365835182678976321204773146438880883854315790514567263941019713353725340986562749909512517076477256491646146099398944112378599583190020270565869687159163250598426866907957191212290620026491891978330592747180454320248092130265990313968277891365482031425642238176786193734863937022785407253144690387294557493944777880953479415496623535362084645629643426496028408492119013955435136571514617486313110133382306194137430610523306288678060949971469707260419723919535630555552363876379366946491556047256792182738042427225276986577835661122005150948131722721763417585031453883307119104222586878278296883277713939851043590126246158672775406214944420483837911430039229834686699808730929309598324203312677239391189041749738686361500655172389295241338492219179108852900774000898097378791053824939051012455875342023736611761699108718654709425508188925375096769091037358003253515868987615779995111560935339003494972374559830403742009441251753060215263853551765803917857310017659894554397676430610806822883771337097368987336518962623268963061881663110796968156520654025100296049087558341999246621764445588687680957918313539564292737146854382132407491390469162861911482246567321687343833662854859705742219073689722803261088617550974080353105949023690684680765082492348658593584297645645463605864132340047721604543626205657227163079530001377095208177717079629462783017332861911553903340246999111317953212880145941151855667284324285304436341946529212512450638595203481390935797206179109415369601040010476525934613793297211084097637410569451895632685549442109827376535140309687045722586094158585935197818348899437136663423514065929860896377055338214378030535576136793900770743728427990245819548736546352439512576147675069996021111921570667134255599413865628131042446803540988783054155342196714197049642101616889994784648126969074040776467445286261658499267003783264376010977507215956262973995536235513558335256877767721566405716881555695096483751505967624022823008298017062276893297460946768986195784712675024109797033888736711608442927083301679504147532750585647871782992431896890773536854760569785414068016471987596488820135095030714822456623450623382364115898685098499189275487773875526710834865470028866837801646518148541972514341655128037284079550234113928905802305114087555078078863164565588716757333888747456050666922972530692680205899106452533040520854094969734604381908174172850170559489674183026584609877573972357925420492912987260040729844331781845212593940176944207924309149053032303531702982708469934237006795465345951557359790388592333760615558363679010326432508791118058768283333598227594020687452852186005236423278907862389973308148028340347049982920928678642137470537999739861039865132807044998351270157122970762015927217724069562516505090694856972883124477376443984813143894330427359094328232952900413151166466702820176975471569949695940035832955853761064105067190700062034824588095848250666314421329524082786533330540985380775168421389513779631344739364939762833300521665191601697815518807553637657538701531662778189223722666439139169535795130271838101482590988507890859404108027608158232265436339798394588059254421769583397260709924775572195909865665677030218103047667871519727571448756775318762554311248755884275214701833494371643036894805697014813076596587881378843593441061242779918831092999627729223634490732382815884259344066799950843188893029964569167922587478370238710055071392176112837986191947294593648139004067187409974790064020050142607219884507894372474088045321705597476984251965624473850969250872702459734573477427004056797046824456913033976371829594685733353338696776062648210276004601605786425783722949375716055400420243226894232253513448874153865575310389044975400836065938172516546259344360647657613305355729594311116636012143214863324550605811257552135741624646333151244534895411294118579476034442620360313770043750579711838374883816870603828011080610942287524521169140450636868985001998996037250075397149162530671882117245820277823125464236695045396263453638212366462891080090544833845760802071603755104803759572586975604412542660459392618929054430155264268977294760267737212950790137902890550135852084855405253969168302055002215901034814269830589163301032229765806826799798900112763171646998950322477241700063722085344267694851071712460759221329554935379663417118466250236179604148241182899726307073538061906366696127248209204679009467508368060099983059281599000133024546729867146300920782416703955605417050481938209221722684518517327603127896731703896766283609482124092677035305687426756235557668317277283241002549777623307630711319148456582583022562488386158384668136426394251109891844088009995795739970489032725877970468277517696141440754930365455183711028666389946578977635656385416897791497690980765887991101309603697695008727022085395570835431450096345971369869350724597872320909594413191204111374728992076828735986159792808336287828129539669655492528805104143512425313212363999600943257908644485232153179222814114307567134965440986285683579974528955383900661238999965811336901960187894577442977226872271891472979384314300442209034343281342347569480297208720041652313078071023425943690211038147110017570262091485607319771501830073677693797873570713426923512308414660961003002880888489079879814636698634807344936599967935161221108567495959264846573157139232651083720140152936502152265518827773058232199722537181735666300395871797718638920438542687354342084996539377881621894903456659736059133349403605148769813936080322080417266420634836611771400137001187333734163625466631876860779775491664238126644684987477595515588723453763446888742853568720635979714612671110659457047561079436269091329683977763193612496255756863083624700597880747103574777915420702467040873034529476857761082796968396152380577804675441542921743018414498531778940484029216686722513653976076960019345366593947410212153809288277674058674323873869714948690032590777882458561664472898646333020001716357266861368241651167484486990553983982870002330543368685369315068746156777012214627206288889105399163504340392474799032181399642936720694145097650130177360375923060864598557468148919855880397045960289696883869866399305821206199379211713668575475196477396784752420220426991055345082489677757703482285766952581258938780779815969267138189622138972326264062105634353792723180724340162744597887680279883611153404158368524447908892433635911582815013747988100584080866974887848244707588257235229969393464407878617867605519641501173774101585508174178002329111910769125706404026137561494441107472095471992172963340183304834137614970950849123793240460837853036701878799121796016561160475363215292665805594233484129281037819955501076524945372974099496975362586522509132364029578059743634932863098732617379532175448936678641952892044424078245475097604766955345227973669586198496123692818907854689593555438121592749809038756316372180226058862752995607272754396610488047172106724900053813674580037461009581683991456038786381738764499090670998865334407021228881331810990695282685446012155663197262655433029184419668911272567668218097625750247261724384039570406900569468551891917374366392987631522210465430592586236204004435476792193974573309422590276480025469839219534927462295109411349476904834852971511944153926293441180196439586387747608363945555553318421145442204563384314386909339908865777450671053078097638851568133584346955397652393239014654469370885663643224740162133181969063420451744072113219639970037097306398042751155206590830480858523952523150079813848770174143090194983279245342230243686515521117099754999516648225614921263737508426461899299503798638112492713293941819547367335805692546813005349391308683684338333424397708787703600999298998331806703549412398235803666961589499949879994904687280431285868372898648193082831529944093989234071696813680285331469252228036599494653374596836328359357918478364641715988555552490582567782764404763765941822434882374117374772478565062888127421445524171520781372210599331235551291191855765651142477146179943723300023967333788446044115313411480928114975516363010350895663060440741718385273819508415186052252043237855280217926021043407747738550101356612384636598887520201030664472069525997273578841063004624401011473911018829105926246694947768965737162024776404231475076017820178895475988174102330701819722727558278044040527169535467065333012975444832514613597245196180059586888704698604742767258264630736337307160429539670674777286480688257857244550544363227747911861443673485512695775582826753986148921035715352312377007985076277785316529214864042578788216260236672008619840314389082467325858324761914814926345444163921560233672044528762605763317786533149664779198746631842483303904963596699472258218068138847964516914543128610586779708490023817940099301166771309277238419906440935350305455643617088802412459270566998264214887952097782994248614650360675444853885598631204318545483220513864912164732107731917189671512051350547190832057586658481094725079588931265045393475297395854607617317776512429114760444288220827063991731854158407826817794441457852793845902693801444162430343863457195717954724671600828668803852178236740049231315831386385245363180081159915513002770608373988336057599772446877322367958444690046214579665810999434110313455849867801267336236022227251347948841732764061159766692452287627663857917273478372113428839603615837330785464385470370537293793510931727155593055464009688913569886082459986877204281267689419557389576191217546291736689088850795188013910120794784025281698992899367343223523990445668513533869629659950109008101141830013827780798632862751937303828917788966194998518311157719170492263275793993158676802878939502529103463195983827806407550328163690336651895432279640137984995703865402738221799051887821193354664870834076633625838820248703741560818347276049300902292198212467336384659258377298477359922961880991776947428171151773199747007822550208425487756568374206977761726190377759776108660482672608995491279755859808303216154268321812744959569867114144115108241036512501590158440335022885359156565101192687391827552970333794429458121776411437742505935325010057078196079717214051705876645029708970148147023802777594572884777477309283895570815041527517144441969526435325017777776350910619323492912497727171939574274696379368052949715625467132830344171611426499094267307460250313265388421395046782200005054780774252598075591168338252211770259465661456289180069347779861865272755657449812802365292140265797957936046218215508652329088524640800460476107814135103499372719270693390678274270241706893242163809796192238771632731747721622437304283073587978032269073245078243952569758844710967235892983876471555057448016759418369839592195318368256457304047601492001787081210522484713079189315664520002609085937600188584789614672577981123097964407106642686371224187063451286205589668824600643659528704979549109838806292231554805395104882215022860974521316009881242831721362228707547339678456444587019355209642908392079690893918534841313008982659443758389958009750124048388544451210665355354006005309627707966688663429403790902993186813721295001170357280443147265091601478659319524954937081608134979807736196237573867234250173511363416519920513501577113509489371116335811447255249070841795788415281736506801435435857782617726058934849200275847634077508046756781057952014523838480806824295939757202747742144296866119819317444889160056878958689559809904088548764841860611594919367510513242490875186322883805833357812128583057451551769126613460001444018715974718589055548107454283305824448634873938435634147189065455764560945427422836101508561760111972641654523530047014845624527607469613910399637926957126353803231712888343320111222222928829327998129239097138266376993924673905512067798417002393927235928129651760953092600061083333778223708215050464944743767782812998990748456044025173257050502055961113840342212625754226270386494719455752224090934074018761107648445987743320021746024692200840087665349798093405501050170109616153401993582207037255958310099747808233685107123459279852329033251743363936498234661440214123978767714124157150355275675308897715913760196870193300704325377070287558590176318436682670153454768289738721436241150998690033986438062555705625188179665849721597113040346166430508527492802625713308959701220047703654190293921305579486338933043676148518250262049663593211872807596483812892659770199494391752364868847172229421914896990903467937438406031608740362784758958163718445316665434746370717984634772986219690132237569749623235853168457631991953315844698721181288187857403100883234191164855281846703899618245612762486066937746736522655097852467771167687262573097025813533879034009889102521433408161892995698298439517074283972877468300694733089921250384016613313181233762322803968399634745846696663149608122548981817564198628916582868520513873682915015136473919332977477564763277975828633073825119079631898111127706119497757109404102311541823933193610307297888652882747647495144471840136237655743007036219586517154752584313334129624523500537360018668217070421218785076455621257433386063297773146698012674122828730692247772445749060384970399185347429808280788060099397535870461721432672458852449865324765638287901261864380831980461365519332556460516686298662462837004638825088568460814244415224721707835917079329884493045109639478959571328675022103339993313836522743484991491247472406816005152035194232751167365741728694027553264935522297058720799109525789134292647100332204039487139613023887787054981067907368162737702690783192585188330610735307489636303139315950693338376964594564355609576144795784271639709948718752553675540720099631544501160713757759154125579721850269181831311397537941552524939530482088036909490340371913183062723132651089664312457445808233850765194631731004560769366137405084383496660566679428630668715078988295210999055173033060430002039944023243880492633482445126358394894199316645961634738050752797477213956495834754439945485484132774872633790628622537085896069864600353198039105457661798685156928862568944099802951258358433005222887429298245448090149059804958007911782116254083321968426386885009571901953559260674594850591850811066885205075621032445458573712564353813405090159490441741729255552879291914652984567242358375064127929523103443807845874858281572879997483932621519926708891614591194970331874329686269027159009568441837496650587532980061106668165998246947660948720044501079904612554804150626386280037255483190658971517219768111009028188372946404565237490735204406106899102394479322897882862927029252546214250382135476400062001754184882575556907501562195703356749109005138605004755686348328896596426450547708241882564587077783164547160372791745904149036480725003564630177056929433029929507469194686100909402518230123413139487644569091397246793794752626396653696872225390306424066815469181997938905651720893271237301921410134708099692513946238642459945983092487522821659634363494607574179870243999937793124649119358390675608890148476322269457130033318246192480225850255394854086017788602625155090585162603212195834162213374681230076248777468343153617868129269421830752904021692510664514782634475318247474870981066087678062669852001895763338150585222187117742711785236076141199504706790458385225460589437447958470162174527047795529272444227292259365101025170406020015238279354674776237208286062766352963542339429692179744834311542427158448106380385463677518177399876125183613195024114726561655190914967017631343185901201538927023146787815375361720045753094535745799406813905279635608208675132700296526288060455037137963344852301128790730569129039805602354150095091096159338410685054128475632827146145015632001418778636453678203429795293299325042918360190709406635412952559227683677066426309451985466034797716374917412752381240059597549467843024511477293045479940098630352300698982999995884625175785805700957049023143146229282314107491592911541588387614217275663023260508100348784550195746285990146688123887142826259728228122641945522704571975429317526651393215483227558966526740022650406165656074034846769979155445413800689773439967420731571574698756775019458239412542311360279997338659411464632845328717899097632893903781179829902902637114673239185266557663808942735395862194856913842430744994100794695662572344651960828073282318647558778293361894645226638331877393946997824377787241273289231611650385783947623704813378713303558124392422751954034387743497299344049916169406652964191902278279865361418090883993738377114927141758248852349124818302261830304604803055572113733458969679065163582470002717813436061078926548351229284461575802308189960109238889083904612977982256066857261133323941351291164404243758733521858347142115128464690770691785484343410557465527156191330694828833329189913971366427575190312436351752817911576710469356431595690835868536746278230040244130524331360756977339247206750920639510361204876192811793313239531464883088840304721526735551512256566729960286128122327982095110965426684764428740582381883236317913393844772563882518296705571640017435682713017657316132661013146344286645056092864068964474504213911970692270139793858298070610805478546418400532477938912451869496684128552976961124067221750651287076953632370537315427660280113143910406812360539446851429340666907654925806229609831211424488641753874626088041546861076063911291253037133290838938895946679380058826666712657650163838628624912762625636554841958025499921685449965738984239175939519730852987897977793732461147710975730038953717179018802588076115863010387068682594123696460358373450572249307169180991429807022552413646004292117468292726990519744743837295121035835985747390875858954143826835252944475890248415102091697108029242463664377612091870748344325339013400687306606641304953027970342060650764314221231721405622854494706853639915429579629187521421595317041671647121956381877528251091493327459754426088300378929972854899165523236916076026939110912570749002033580779321996824231209850966484374239233561995912949485521173569721074213650431797926920520678592228887840131532500105333322635673993101160525993269828758478621389280097535489880731669105687065835559944415833120739664562171386480168512791519264286020649815938024745723604885261267874134942998931014311649356425338698510021194657932826363170646695309564684697395132005858984642942980504266127672742697172721937514695103914989150274306086217968575434093317042160014894947536135295115336452490190244887693490200825540875925002925796572793881199473408411176808813374761265806141166092584839297221179606452531780092178722550957816614273100121013975890607608633422785937165635615977518041231881561772078359773043907903477954868300507309313468426363644398667896037498464253657248203432397996361373741087548894965560845294859352473249414247673289774463840372756074200587744212486530964893053337685267634058193473250885361034679312754953123726324173012562117460476491023863610202937520103945683597273212771141081682038426714643249346696530900472180696901020364683882182028127031810561351239153266169372529012629305442640272479370418062535632132763669281619426542798201985455069715850571506871381504211695361513367398992200428149090246793349026794069977715572360376065999405142239219969585685769268164221177749704773405107879559779661582994079425711345694930694289484734981109349202347297661696451300200058604057313183846370214761784271864264162244631288446988321023604647891972533214068352119898117088028117697569704801197063746798846148358395382506535960678613376933490554008972673384363216709530447169794597180141731713414035281528002743704061796368722941751208840516406461527115994383874836910985790731999753859872237004244467354379625787181469819298386971113235481851698322513083132069923748090319789541527272107435088868974540209583402182448388283024199666548933321976921084289305599479712906959437293801110524807219283075319109882550258734566496135269149950768331070297369129341807782379553514614388500419315849208832965002433696268435616828484372386581225500879701817483964258385461259960875104632093965550496339149843189905977681726963581152167774517242533632148709549275002343048928991785506454721415217429011657392101136941130454903219214203078926052845369691581577837476526909850856336385190581158925116833772935289847064820806540064362406096046854998411622464146560701974056351533313236880686717049842976735137653726778616063375916855314335307986425451835637307143507172445495025412476483562727791371345453748462667799568773071190423955273647490305217150331028479148260962523952228250981593417105885938350557064828447880276895964103149256303796052143966162765776638308547525064956216203215430471939029794835557371702772854963378240499120799532850404839597589935884984785046092023798156347929604596819648422708047854729953952245273007286507483379381749226588885742512459277050371114593761174182891058794693693575860900657657524633423262399076041219065068832590790658857992496116474478385622599472701972615341949761471006703496719325263206793299143134167222289931688130370866408682942681004063224602655799805445051525109746842009118006680631724872900163015107807909798508666278334577647521964405933168569564371782318798476408819655068742417932497614892513589825591189233493040291985272390956261293159598440890508383282365903554329271845493445350080183054106168436386159428521570994309771601305113353439543596089262832596015136911750452592641196191595781447142082747078165806927553708244676593039200425623359430316926885262264138836928814276680071354281132458975119495041819482658043167862601133126014784723589748379999936992834665493657233043009095988634816141142328836967628992236236192760033211897825754298164506714859543967473362283038448696217168362457499094299126041058938383242140227868907480279541501456157461345867097227447162787081834749892996754253562557367461591639383636757397637367719962737798098490530105976259953028679071692242700848372396439229501484704920526364284683082765041264612338576998952831706810884094244991441632467853973031567923290813952491162096002170995385963401798686339692192494196077916695566842187799573914538194512427581777547593161533861982674134030612285206986884024688740820278266211897527431246754585883827021650855936531174550370441285396850813751683311384887715055326566365575191836411283717454163315119239787961721781122580423727623125059040373111480976612152118348216642818699158512624057698731113224096138505947961020445445479319109840464906033676892843732728236836326004154115990133115967702131577813599884865876694332703472122886221419824674724196790770065455309578437065601684424460432096523370396265518551182863825383342091872799213408632089027019416905190995842120697004197844003624503897806693211112943059322033497937449061620791514554050943594678422130009384427342898518388516321213744628430836977798308419743292732423071620275433918759025965961391152682633765765616920489247955363210345706717634588021892068459668686281769052750600608175042998486056384030539428430945014810764375701830740468972840238819504497200277705318463829247542005440163301426123730225870192076976096762862195104627491785106156310399658892187211682951369665691065170991315300356768506204856619766054042975703068962992414420299551066418814908524432970945902533869970269514520998915567042401292879536318154129112926752518655900206015460460420830533362547775366911291486031387821430415016492790496010195440918502384214940459392097916732653260071206890760187437840082470799085885355894125597689433716997030372584237624578606085770551727342969271156026270624381810343325673857459136445421684823167657854527589187062822163913429337464815714677261780827514663341296331658513320058963190256337220245592563426015322041240208943214836706890908354679558053831146040536839274724562493643074566281778648398892973240323730484783979215764579289644760671944300922243767276192548511856764453341852168743675863920186838204566912087720907777660110764468762197618635082554132633465030078511626730434225601427171891768415077789262758132634793665625056317692319392830645038243474861309319053866466749745615703922182779917894998227449972750446253607820200032108587146066903764688019299020782201439393509607092101637543233126421989653027204204587737011301435958802309626057584361053832543142510438650816163407988706921825016373176199950465562738080854981824720778817611734225152207537670928628773392194542601720149195373577340957304037887864050703344909932847913490237283639953131146591733797615548875754692857536404557559270040188783784693850843612100758475246294166890581571836088480706058715989276036167637761938137294195373517007678458083055688682252747081894740678787628084155022759813207719915419256039765793155138341865876248878410409902916057073868992891605769932811449875029226791040476737863961232561226698730431825020957513448511995780425397142294629297708910756363088309411561852351276795496120520286027819532138020419761161019195741109924473171794910031568096613084413369737987381453301275218328414532226940600812124946835653815295414536304286442183576824962880902422232279912865085605924735146806346843121581402072903853726420237483822336029357138066943917734955453000000919719457723548972159047343341692904657826380141888996080984403901580399983213348249845324690350897894806135705582920689869072399221439972565403850867417617748289987560732639614843023384720298259275841895569474040935256085975970365105927543462501647480854762982016970755054565348729294386242998626577583921618788599486517596920251718985308718616711377314983996334858489901288036563725744512369251861129226680535151715282199493548034688458268875374536239771666518332138935637324235295971172563346419793223024974088501365816136106506805096863125371569618893334121132490897970498799567109865020262867793377728640617789693537358182439117113966357505258092594678914122444370681742143120994163943792499900670694335899508494108150184683539114670495405541427214024557386627251680604872780490383429637583961619470197408257124212434202676432135179166856671902586501717396707712168391983327878431011394455799463329733106382698534277693957153182038544370268043666935185948077694478203458828880167884163880655740349034051980763928025342902206383329343910567978860293553013958496381567011728111257420090572769282537275158528375637063385773442648490353345842937425994683933683797940279000713391066455308962611055400725675099050760355885530769430075458246895045077309373277704371108556183098805070878542993435697397485889146637106701246676521298851900973947052319799252476403685815611436698636659177254014117410566063361662569637011992755880309048426139164520897452660919062735872920673248480052774382161399688911493345771244751515692874062950092922019489066194450921961307221363102010567555093020599339150593619271793066843923178017804466958400637420895404021359227428549564925410058929683360285311997218141633320828378808564304507832563225458494322792671207446217158465272494784374405556481698248630021426176171120316225718719750857408978429022867924397593325161405332459379951226887368470678040563620859452583164861559105969799452557480001281825244065145463291233775770385563384517188884740963487558198663583816828800587664542306839215506641691260764875989811687589974314131347735691817219091704076633653323139604918078913791465609008900435817474327051897457232943349641343944903284339665379269356513697456183235210130608659071613459685305120749552205478741903384576856269308897961210302129143187898551797280772140395638050022873710982768458456005503109243472179974723979176049571349202976609800245307368911174283753026230505227183819016884190651816943522097226594831190444115000372301405095475206363569706737026170057605164224484272021100474665556647355545636360126808614458054352501237661371291245655422890632988899956794185433195823692589574974454373528817430627691523116334379026780803586773171102788923785709778979178015954269674348798786198843083366324810016601001946990974424155175838049400897941558977265388409302626596991479348979692256480610755319436345644781491032387014996898843246191538038742632221152240471387793627044037182135700981926342611816692474285883215135688781407702216925216432228656865911223088418925634914278966286422117703206059451130870858578918216509439678719818267799116490117142125432883721554907056079398930794403648469051129565445392560882485264036469315078281221594821850959017621332338308013927591790874779186312192025598454351203017276820759611306447353500704676597232256692661440790288450369282666217176559346695960539241930117731386730241246393466602338784536231359284942831833705582231151914849208998160936885999186805630254235300598923135541468404966368497606711430908729375099933431440697763446616216120459302252683142029313953041501128868254996870738366766974853019783393915057003614203876226944957464702182113981207752374726294664314429887830423342594936104442937965399055416799698359874228599731854291193781924840744844040845232520524111956043274563421943900515582780228859635309086165539186110582020205960950850237838275223937545383682239178594779550435199911645573475920565760506312744298046405387059581386218380401014973952010675045763414345402766785281204953721366771867813905646726009278549349826044501001497263427899860513137543258357240992369460532689145456057442859131313189360444882383078752305420035834830446223880813727148223630098997966284149343730047918369260285492590678522456214478832536351301307223511095123543785124731985558062391803238691039010315672721114549412422823263674859091029001976891263277138435419507202063362727783396781390142732850509359516490571650856782280862510387469489552532824099573639790595208198000086311904736572072474696942851958788965472665158141271545044812015139238520084250802957535051039885981146202175835973986159581766245104287799828445680974252133414852112150964924713143550159278249224628626406900709121425909790201713223456528281412496162060024136055784737716836533562485820139763486382507311823192247563991644176646243760484910101861416266378364819363163102138887153332419652349683878805113431073222584226396226919325993006750289416774142684247124766842301972740629749247590208756273331462062346056769537479397176386989835493923734387819860113088678558790595475494336361774480918841403394149967217412102813962031691130303911950059970672369497242511955262124201827118557811898810763372119717515778079638370710104308632394423927610833143245756882226418986645187578236764326474919094433650122760285380602657330495664220109350863360963131037285548382900606611049849099335122843562705709295778592100527166844250699766745015497925469533882783647754927786966125088455116228130640689292502244997115412091655619079602793351880220864498886980729676641125398783348112626616849002388272832740671543687079590905685832727218938086914796299955310960683031232929668731333960687869049908345585868147089531114539740469135804503754691087283159638017721837538875565797287475301314316384442565767327152545141717445024062338539778356168517370939826231991760347448305999339985953103070316322980680459040694922072078702847733078247897499057918035242732543252036075795012973232929714342241221653452962686316996298952358281956800348641005657067239389667798536075926236758175085129423935481465530343265723952633766548584840110023073158572935020812028991496955173631978475516107866340534350235013948472214056816214573344832625468710306958361922483201924712722386597274249031412390178752997970995782310103927725981065286231521214577998398023275643612619051640277184906962911321397575456539756523243636185834349554763624896354484895430323332803171426046611525615452139193896897315593036577594768751819814362623207510311857887701056584448527691046640192114610171700015727102512113595792234188726851897535449683355355460073621853460395542185516127329799793381683219845951683848242051500666241776152870823974986565412697688094999255555133330333592291410724070945026564940983732379327064280189871745743940614355427067695152491734407524384631500305899126869450535537359958759685375970530972518574465828139441083661716626583090542608263717912160534565583731048028069146934453489094592819740073578394160838047585752747854091219109410668302575756007974823951638197030959928207364167503402113522825662501183048204331497560323044157603817088508354238077189969132490400940369368318268838303426135840995474163946774619706196520432473289048109110255357545392030863403293820383404633499150091508331879558918261562535814453767535537835024612164446090163063018252271311955888070099771049918089507032585244869912566364601727954393202216064178169375004055162167526220737163660624540872837568662276768876534665962269130973713819826783730736305636327850083647719632566799188418867614800176348032858189513556699889634356636899570104856875621713934465898493323585200127249828472107333849289988321403409181412125700725063634215818660858328215877537764254174863491928538663066596688853215318202049242508941867696169564558555234432117057128747600027927315674619850851332956018764276927473682299826638803159566086090245282763253037744194770924273373214442548521410588310392895503853960645590814091094406832652122806505446039939814183127640496556883535319218535857210952445599288562573045667936569252773586469748039715091339796694702527046365189202084363485064553204152715280156676289798702120270764631297692481852476903376559830363380440340268869909212929266147201132620727274114294417698138521831369145798155044746790907473341572811875464527418538410860151476936579173220148070282090591027106721206199886539291715168968758739839382798640525865254450344444401015084209699174460997880476132545589699748466817402482972031900559308204282143195804321768534464275145405139186573263330531372547285774556850550501966328191290955223332536563863468915031582574876585053311990487435908345634018143402133847266682130218500417572221354757711811626049496201731506596192886815339850475921564169106534041111544482519345923126619179999707495112141849906637637590599295504280817291802366428436126462195923204552740390122079702008151219878737587229575855029912120157181892798545826828791598331634089377705764004056073287065288138198670922545542656918105754997323354176265036019866110383814927181067418476922989839249041400131136726302918948623056349063072304350009397069517449337445894173427692450806552150870394785862587192463967652253328870917047255044379370548073404783364773480340100089581510427835143409827643486534233245370149379338524256173557699697188336008924260883918871338173750840257655670026847644922330263435351817846982575023812335067930179282682293882930871600914721253135436454417063791715592782626421598118132870755347594686325909385429716159176445989547942362487334294253595864270957459272050173806402709209007672434734838570805126534618881862260150328963496767831091720547214168404376791388437072769264057343537437982924562185852515045519444230967962716077145494049877975009060351596858323567085372039018778991742795346906987248423801562473557775994958472078108003959460962146576138222823075341093090090587820831947130760629942159375622622801155738640059092911553154505483624710517669146865156315873420402137419224116149263110103233893465407313103259540402268322166867615886403215211932633714998533907373787563918740674988210536606842550945881830514701229004857994986633833012104695411111276760150843764224758949880576139556571734114206839755329501322289292244269509591308848478878289664746018463610497897920097080302294125056732323440987553977080909890550286782663497680529153421343252520318521177255283199587169308332060364396428629236933799163301015098350886447907234900448454925361463840347526939299519903941274128822721197504411513097743074267400970323215497360147221644221831109150173230686061129041802524751795793510916615641961588248084988533641106158631873670070456199429828300437008999746979460769365784897044685551315915107283722235488624027489974188624046847718383820521706294773377099771755956693592132973026314824306238154985596470043172769422789850940662357916970062449581703218796365237900987674095449782561149549160282823499411863657036725396680762603871171285869607654517548298253087086649923159660280557356309504191874069001070256097131193321348138744058401472215095088865043889343640221267076742229709172980919980908451562056178959634576036014691315396965658409657931257604932415421799722688358406852228014762395128585498768502066963706018075039288456524222279467500880823977883895987140873400370331368921768750611119061969198062102053544812845750303517515373725546087714731126938736443180339614856319186937110517795957889027953932785572512701402566107644947737359606729102363955869486280656326028151571453638898609700181442681124152842273698865295026356989993413913498941991006579647016879190643571807080372934161714040451691296695628067777868861645794114005492645370137231746870951833727864708435470324106416303789842834057292993805310786547467723840406357852761292848424732453126119906612971910179554274430142293875434896030575350922321155438518532129901962937978291654544948925134954056911837080866950885069770570680743691068743758813861238432043679588779366369966081443998156437441983574512424860222112950101692685469371216024626290213094476644673150667738866971562217538225576269602068728295220566989731235100570854061805084539101544639007856148511076857853365128406044661838572181759473452157882237173417376221332180023126373297846511519308218263126918129153801617683103862566857346516347845266019241136811380613581492666259891081346167821492989753862861272378634893464007712887445538961769067700435488210014467964530321957101620471625461342013796559952829239935208410441671568860403450183729107227350481002137212447908816089482076477024241667675300173204733718528304063669899884103516295456251093318860615223610115570854371204252141220336858959681985963598326473333482318656701867310378845429900576197440692264385923036373048934744198572523628065943561647152677596403290424050087660909915415149164807866831366778089012216949447473501701035311973809017152410778033155288959314089374648468023655410311750413248070133644267465655814344915909605408325726959401072487738286616291795565477093222985274383595094034524493930988166140210146401227547629811921494267265937822009070642225326451215332166021513072741896074929712713291777441781148526504145160692823877277994951814413879837452734245706483102218455321656287276102972071891344780454463317104924251337328116747779226936818033037283289040419729267142315415681645602127789199090366164790110137654633574456118783713843638862966198950877306289036733907311410665046147908396173787020267554111749623354797974283733549154169620435407548092552333468616919943157898944066982928617159991511900193646103758091760803732796739438460623755118214530213682250300353429419450084066046453045644545174477099432620023556528766455961880049588637936123506902639143127370497582236852208113914952490920691403001458951967213658273920406085640927141804815437825712150842660331179294104273454040673785464270328893223857440870129112504422948862520607233086270688233853227825698220218178432064435459060726247548727734381597441174602316687419175027149643773488365718585436344192506945813391921289945710799897029329469311967989473524223730670473077369677726393537453973095325707035054351253079872381078818414482236623787784376800824926962144733835557988996190542581740664489610079072999762963531388840440974289145500628090596479168438335610926238323354675360281470778642824183511611734052032569814140148197532161764426512398978035091794162772850714412587876195326896808114455914307615130182313420810972814400267455622646661901213469094937923741961091723253485293357841301322376087020472499678361427277146449224090711391568347553213976464047526315602225907448719880444184022665839928995882001920426098190331848285829078211415054954739539237720871513608410846637255231216127974075820622984712015940135632879177652370698708695947794403731210020128952040513163614365855009690742637111963295590414000547227139514244925995591781380381031917522827662149871110184298250297905404068378848985799273868821799908167673820187147535315858082421288451087454058978300372574764485477609667080528427654867731718720841901517667336892175796027186750240423459058198220841428263566252006133507077616805841322509391493565073692947178423284993273525669363891741685705521142802602111440411996683328529442289194676475183608638033956575675678364548403961548113571278882189890754319731722705671868686140607797050428937319523941076482982763177308896202352360527126667407802461074356782097744558951858602298215423199830973995526210250901602126698887086254202410439972988397554135385138182925552700980365415909223019263821266229678058506592375319687327407665939547525978831827863918147306761766850371926705580718721919699146954419047029152375881164680912588596537666596813770183512847630424279139818460855239976429956703173688775036744872703980650007077679559869064402144546406896281924836584894635964877910863841998405258080306781338799589741595942128688701378198066205633365864818457479353809411118682518076966746442058040135711567256847403628512139104885397194014072376116817991539133190242778417451788297885579140490159020896772204639336253797614575814440169405057727133323536260146120292321136341737804823547916222371466428837715340475487497336665155948808655893611643984990471343528811861529340132607318705445319160875536027631791447120210875030079347729039669676964184834201536380210499675625085362870958479857317461777952850389163375626978135244147637852411141500747699464387287241643496544333492752234423945308260565169173210888458843489643689069588751700229445387729791264818632943219660632210062517554104815322964039935393732278596417457845598312685727572978501536306508588064220024384833417716511872247999894661929446085843678233015357296540913607427029328272174026395941454538825780842625558100095618287124296387233055017555192317493837126182426084182242752775126729282721091282124659205148255781137222710548819339751799738862499258398585905519825911161183775706074556552644443323185176948504761961881823745325431483182253317231536658635784245552248340310133402857857683651808393890264259393738791016996162217049963513840230122790148400098284185157541676169327755760072831244694597387657902876285129526071697232540502948741955475479079714095024819046767936227689801422546999810148605934175253707645913030700707499249641836121619946746127531327752070238783157838423306402182747358260982744353050753217552690365665480333323494852057238051606494437402281843774009119864708361127257868565979810309500182873265900151408241583734278523378325809751454582812746119112873452948296110910977586442132597920389513383113514871455089144360643741768144154262429641126152902289314570146363527437941438958764649565888353624081315022166968061751678470240845970774603001770433606689073092381147599770842382737786063790988062027945552744929297711082106339229995851441967967107630082525528332904509472935772683266664785148130568589576517202416792559240407597863639965052480233534960467356220953591321096655040154687850813675052795476996028248437306087698502590435682669365146939875003994312055176318381792198067329660440773590082375263900295291227910788540866112596840513913723862326165291699752584036899228952877987582250969397017635155813613045238007553595200290894518466008402278044509119327630502184825958252892822708932943953346959604482860696943277154172111367461093887430386142057501834356863041695240967292189419884628065208205217805611792088026403406750309048920511239894882487782906488905632101115272209236348532167650549002071591461112454185786558208865586553867190332976615662368768107710398283370776256705420401285017644076918653515558099021949508909792677937903964983507923705050753759001283309893846834741166978841559088494458022048041087891328649921642765650268168588792613053923200377835383824681303290724607400304895895351523250754583814318448354174350527298221246640740524172226709957160509128811564999830466668256464117110498533920240888955910969974722639224410164422599588885787166478622321861051573504690488512915361164336635608226850166404540360569835504087207598457532616801991436995232502738736735012173691437276775993660396614356095804001873139540356206912354424368704676058974513194948604540317125313171539893487451991939291843515304802857507480557831209569187977378832977720568767477164932028904023191083075679274363558374969348223814448591189369562569444750711585678215529026177060931593833308926634135007963457864606525963812913460010772015180673789264725673857791224023760715065915993900209706350419373426616343723628056715972268832216506634269025789347196884265024076110029219759937816507408420199578271142292237870000001092514053099272293789690769416306410970867552949164843604365600234412743407498192367485947256756230662803832815188975093379546164213813566193862077541828612522699054787905797951847309905669756443510422705090979068945873001974218914666447267395303259137129793921511197745721631014592761295400780698960927337393546893727255757002947927630731662874491091442893289497507023536341325229261141817772475902498590013947689353377486133893844631920633914877532342892669453096874453571153112560656229515580195329005424171972661962119920978604944243956615860887437107044196923776795386273486387670593961600117721763443929548274459224128973970992075309570556602722180167553167001429002930583357504618513277357955703373836219827398223995717984847572467893989574122188057554197450535090028650231474019016452914668466527845901970691743399922826393768084233961432124029319224092593425347029919154945983084774419247451485792875230880642571161909988796446248465123822832136891884381347606140643126609787937075238459373669179621763078542712783435334026870304165638690065442528713417227030118189532754849982834234474423085449372413919024682235988748271839097909109563448977476257803664248173487617412016422522242454969133159256127331051076751186979630780515070157408049669090173369933073179774432989949310219690638730875475424283641818715653482787050254318569854795942078164604186072883697666276375615956886342954303623738655640433761647033798438056148103566189757128755064171508388979372817494690514284198164854006203403075947544749308944646324574245188540192813504102083320072224299417477938088035440826678883749888878283885433246669606551835628912978943730092320741862273267645365836824031969329469680533017051306824593837480924636597375441693164287429435189914502633332644859541676638571421503928270588773280858528022519576408710772933172882569443184595617466094460823497777849763743926239623124784443698382222201693075573737996980344180907604584367329310310337092539594264538690856413502005181099226932350032861705609857865992987479821829158681851230553241173730680060632319808786279514017384156112174742190527750459943822772162277312953413612745585383589625708084673494301006127894479617867513863477171254629673622126211706285633635049144752424050693166477532914291714027155714645949593155955125786377951792030298523278767647021298107744076506455619078264280484108944060876262449086004050583597836249697745160191738268952613709438535892261050507784721645810830606649494841404146464850796060926138157353436506382773351936904780620341627833823276170485068018920191220896529676021587638692511569323996343989970118878948470008316962111978352842655957878627021596492687221506119012381586819810401779089459690654285557407550939670328238192187392154850041367107533706074724324809325269297810494711512965285278746083229994736256931094240726143458507466951692635648535690249527275339958654797849857015995779703614481309312661955290862773650933761984140899338307579102672039111286116028035347550009536649273459537038628103238561124699526113690206655693399083211981976956589798132600762492888589720787566664156410171574003019260640206993216135044401117340334837693717985148114974674006067027604236929166631412433141536660597143803433065965483500777691116946273140443048399959032623191974952171540246381638630292925927960602160510634253675087530049273607221087213348909012014577455122947082820066017475784264275125034626181662444640840010907143787261234767541665311609431703535686103174233332635783244627115812228348836060894045776035268454939296889349900251262814421324024727033590095803403565872203416835301432614931003790943192191906887337410862099981728881991668810360835144882068893135951027300689868470022511655683133807686741520380387399289541927492251309729941343233483459684504657240770541712284990025231068595885155609717875981395689317808062331699031955436858502301016610285198068577252200284762511793331973594355193331754792874507750317552334483993825025592313111803097931393832287478839863970025081840366599953645949105106920910967365468068112944805966214984578783769054735550321051879325083622864134049381975299023179078214675044024617906520091314409789503597512545924894821284865844126837474136728752700022997179819941939337946719091125087995214433577389247024629140291626529905790543728081734183676089144031901983936936476218718325997406253283151642395609428858240528218048295299478136286981570271162231972357833715348954047648547657515440864994790042607201155593747016861226797685806905857214118007662971257878510279180336888464168749509674067421621032231565449077981481164572811654385260449521598045125244190852373124738926625481567074454096200406607369878250913890796869933194195124439772466548534450622615582197032119126967643898697195503847978538279027639217482828492559754527053493361747076130696477912630626130615531806897458779041834596383396099074103455625396212619626677565090851044017215045997781630652108496693048507605007448726992688548018024045156961632180108163773712411429504405360549573648211658139845036429251189662939464729533964528672638180440712515262876705805507677325854095339956123776548522322243172077131812563938456992366577394604398237242974858781293323209095697939119040986371489126738549219534452957735506067389987042556025174324676445410642656638972009209849541275062815840494206117804667841937735092107241287667358169203044004082400986580193515347150029360547285687957782266609182001945364670907956077205342411185728009557060145065047910526519234659584059611563058206871815054461017575464804923998144478788482153011793173076985352552778194280313244464316923753861562386644421820333265913799392578460791890805024882334259518471469704140009236020886295584493569736941324254354063878725792854136873020792207560096129419390221724643348057825757076255780889781231029695049234905281216953950720294582112919603859426875657444875214738567103706504794077161224917829225304197546583478711009220965492676296987725831911910629892995339369989943264579770083439316142653349275809906261551525730815733082179551753960989694307313138568853120135374980253552615194401766315955783700584265327023496754171983755703224116171063692664362092328094615691991156956176497582362895970553402929103775202276938091429646313126989423593014135787057235844152455878321828025821784607331253295215769750473794799206927515674888802939228102622000288725037236730351042290101594315915386094579626473674658106660486984482006544223694806099597122359105252672684822677870625532996459056622614664345610717597585816841470942639526313438053540031040778647105331880771289054779765125044290575847715383345065216006816108758794410612874817751518705292174643822180110893022236458575522264331340105868978528913969908363976084813336452844165767742167608974950151615192432832871002958811245039539901162169730450314184527872260905191810320606654032287267838258711843479210271475847128118810806986236720012490932963696916908929882460946528214402925700144392129128869518947785929053761643735774619194734095317442630388601922463330025077547763336423978533531162054282504077258524900117966563155510446064749106049667879810968500467590537705180878686690577119744070559402150272930591502890978507209074067393948812217724354518174721548162658315237722319391767900507653943393584999245240876706836432096783056740473153324265784891741249070146538466160723582785366171160468161496553098704746674747237676127721619625003710919282947400388317088197546591596030750449200984638915632754381725171495810377178980803348461600369699491638608906805654030101679127952678593109499348489959879915947389268220062348455694217376042309502162633712038551467229311513535559886718717387894066513303221942310663288097849586048703477818426822121661691614456343379988268787338081671877257213333452090345857660365116405189773134583678038811349037542281741314805189339416656748720083225111234522265912926139397129531334961955248703680411536649526800627503754711286026584742184155453831717119386615393592435809120744929499378766027945735869639069587548346193173827704591317471977580646268137428674271138440495694192693974353506101254354595254955375636364594172460152958464887226158161213904361151660939667935658460134937998350821480032624071179617539950347074780370125250820248071515251725552504129277389377679512501488868502242320669109086758434824668698635994343263828059311012987024862829554868004265698803430265746140036272384653625736618265516515678376134985866887725810142473625877580416770346768511490060817003134798396587948043777774349717440783106923328401044768747059749187951136131957912181948449686797092219222330952175835171043791125343069877748028189429938857223686206878732471423305470650022219337683159240641260554805344339039939138327812196162663467149491452384332037300727961005859900205178866725257340347152021207239076153079754576891826024397521655844448429297908168180825933953623003963132032928910967477616326097891871661058224877153195715696183755594504105614312269349265615628572248860220004138155905410431902928702133419368276625634335428375040005327875471657894544292240768781661201721598644236946153247721925523722259517658541514074412671330942493502602158917653581276955541470481930094106666762248223777757150484280477606310737504730494595222954531446298115667585345477492958261748810796629376473654949876379820877696726620071984022256271816824044249816693060326749590770442060673040281915064946576751348457185306212299196631219871507906982328848666157110239504190761820649915733119630701857248638989331475742334533464001917336093198597500264877226085437523466468408794919862494312376566489331279813507880021204340634845985861043342076089199187331351415212511741780123450133204203323454232384366344633355702077679789675478129306141425796626533481755646415533110002873238383064441234495036477242199554915494318510887130333891434520327433886211930747537476123086173017151559053659685454234094848427078480605562497932811651151399309890489073785450824685965873423318671764580411042109374436678800995247428330877646439004022042400673608077704515454017401533503979513342877647741458135595521290783970122978325638223907546786967522378350388454122795556430449073046395506679284305479398942847437740364188530775923998285802504614676849921791876624723126552375587644358801830357966087192061092202277554839569643042723420607482079588118312150597410292561140630632857670658089512396734740906656245495538156272653165574294656508164336610060507304801741680877166028321117702366482019666608097831874611997935671394250062823913180972780524000630854676085885055204087122286436103378382006621332570521140471128710630235485160105187374261886744744538341366224252549297775274058490303519152622827722528656604961701183906926639920224410125470970091101972921841810507596306343421904284134258779121334233960283204340844529793472590356851538959480386294258489856569424776970639510007410411271526101257576535326516880274668087198859983508400255230731565805047722375489118180908793328401161740401397328096213497915376577153094804612302986564308327164724672539771238258704304961875333049228013480404473258621183193673252888282215637971628561063174988162573530052555241886340390396280676299917274846940184104553693072877603551652867534494387089952324767917870932533285852989359073552736044009051545523908340661880635881157130617636857775799204743254281569169888800119397837849291898900706532212971950849679780941904656859068380405322398068679397727336009451967846480407524488117274509081111857903902249611702073356453633110040303872833678314741099832421657096915001709539704587911386982054008164437768868901390469352206539083883323869067947625053872984531191770693021822203829984773261832848984316532708383938873811855732896643611651496643470270648235396454946059599146664430027844130854581037432918226273429208843077232159005021580454448272111097137931609444825469274652785203224548352058256664739514642264348679218538093141355128873731325603782967884184704859763142621697384056731904898788547646759997453500509939315546286519738672214986075099261946055683969373159543766477199819393492725274562449718532522580963075817724746691819437757656981184502858993998358595523078120326294804753517196185939761604659100929436351155299191809390413036742292825399896021885125769065413209954943545433445341127352950563084385766617956050849646252791473063903164751667898305015155167144164200953109909480522460170551276062386692157859094047425956536779237541533708155809396141434090057034185425496546916757009239057096092128381696501332725244097569432919741584118338274824057919127914904728764870066336226692038250524140336148225545540313072592954525603428386352477351952579186367529754129414931340865786406445645677950025232967988962713138714379143080685098023652253721375888052540302680869864109539876845125069316082827911668984926413773460179748825337781471931031858337787907622863903441285438576635849030569303922388449486522617786022164036794119276497608159960037285934025723687541274415695459332454302292059530719364211557780007795717383761158263079454082133372223798839184612695013766713453959265317877829907693137514544261193848883251843841046000738405523579969728141330325490030465695266782948051400557997601890586996607191897130441163333999473630064641289587664332737153386309769768852733878746927315821846039043008889132577095062784099071416711053911853798323777656412980283672556083606947776628452328904668333381367530595497167753169172890752159730064421076995080082758320360180853489099313371468542739567147209233748417558765883003416051963951119272112473673392886012703387692956673437685727676166787225691814139214802937609060244339892903583070887678906416589056897520353479845127231732494601754732005829832776018829798928722341415919703548523207722117498540812989667907290702222705725893773616516655347042815421049911403387298735144516926548777589334402700537869024800049419786941727370271896256723130758884202014386511210025511537230828798229804957273675387146361034909257196272530289013332975878217847267953558816354658551330000076945977699892668469041296035007452880780652215236983291419266620107518730406193483785647595569823854191255337199370515924309120843211466834865522699765895989987134222689097974004483802509647844845301992950083482587408078559475731662291055540848231302237955402491860750416597051356503047352424068349007930860028850533803669700264471207005498834614688192324801535321546064534468489292051562125232555525480176643038355100374975023248206642251213605402527610324589821622004774867698697561997186130518925105522404412052734379730610801140120948504369988338714009630729443270384733583143464833553871211113459873030552731096228238999622219928373904068121929926457302195973911429426974421809773817001653395726220202606101043875644320842237235720554235885779677311805916960324788665399041341279653316611162597156511229390969629148855830807538667596901827432429110524923670585848146966188139463619012894744658262262560413484243578309937630763581415546450818067481594893483571748182645505662849364040457593940136235543667792314753214488726411391737974563242568506016440901585318721736231279830619265023666919027854118250344547731565653731196946223324448544485355198510423114313337236123857186749967545453205777803311421077862652589612103644121650047552290343787604370113890105900638669675955040338494161336879792187052671899180984797982166479546363889026808550260257858278097327142157790821888410383634349930401952245904780574308602575966951533433994529033212680025224295891121140466137921638711527226650055505875165479395906617643384737615143648658157595856621486090862010860961037783517982635064101860286588283001736314555000631447579470140693765687591510922750461638141819678495661772634560760295805592230312780069659116256314619070649724231001184182950865293543011237181972915657477233526092500251037635157949943221988850463240239732715662250888965003798442778514355722348635412594803499383939055797465680903119521349869829678248915854786875126849259483142579328503949910813746729468042902999471076143430642055941903271973627239472654376905564142173048641443306306299980322376604552212633399580042519154107857156669234954283881320625750236535628749727197193068535747882692403955221002134155018816070930768836322866266397599162984734276071192194854492200696356440332127226128547547637720450013659292200369302684948167251642501738810463496975707232888209383074059968208776795013644992028056799733466697330274468264968687708437468249857242681058660521244864486484473590895874875488481291153083469928013756171143001329054925412118207199828160626518434821665293148977648368294528157898037158365775827446752684008157342921633837096823016096148235611460054073489186657354013951303191827560032427050396648239217018325656670675814849971587601768271926312837768952029246847131686746689992690321340330296379661184926956030266974930697898739711228289552054901645077697611135723677942978574356882716504273479358668133537601668764703868491741463635397550351181624233562463970303575995315284043907399717880804648700931333907371633927959874936623032856987656033900347613215222752292913013490206827888163765172373463448994015213319428592087812211366456026847337090652924072953899158129881797119457699614222129370357812730129450925653308636894852406632231909619792096231747657082524831725767112797358370389234235460798139153706629512349070508461997755650214179736045199890151350747594020568704090980157741268482054404635890267644357794020678874648746007067646125504658885826386572502001770584299044273940302523745444166135788580999992214951104420993473424747232658883939795188698297488927309337671550340609567048726804037787313991736333045371344484697876045226210308080486070360449744847870873416554615032835010065924213831566055018291845038833558206920407022265757842650974843858286433389270801792000973345000387227697816588168174971074337708268446452606359800362183888313781713216767486608956460955617727051987942744580352344553447392150665935965172629352544027396573134536081354814844756291622609901566812769238637586288784053291264048283612739702460148255923442211239871047586419369220706166571874969835168905096705526190639274082088711609080023418135200427868487186531472896916928059901419287732280204073373302042861144344189615950113998038125675554903999900950623744230441692083602352972596352592727302936006991189616545747495313968306681816648109772119722495721430879828969447749271009755111815210944978846130914465365745318875120994743310587625642720015747916391480600088969636440577762496181593413542057095975891116385662584877134459770841119081925004606658221034466985817571727977726169108429630841316634624590072955994598096395929645012656285172971171556981335021197515734782487954831185517555625442333766289163608171277349823099642800647645282658920235614376481821265976778339698823471135502987055213351175822012601337339016016013432232364134416075598281341571586209024412757660657297746984626260550612057710565311730453791030022625774756768668725749253861981918111444332928049653566142432288040036871248965900530791290106206593526463192434465425484878055442918822055588370820670969745193268550273202669735273688081374609126180252938470901365555508009535239478741728625935918496220722184082238263836769829625132427477504910309763020335838891549479577310939500133410672965774963660073065206222265027037812838239902669990333715797300666720948575813852410696423152881014461556583556463151314348991295188236868582051281558848772936987642654812998676408549786814964301360659788943019372045818641603062900865822366488534934129249809094732178934110937004394902591804598386297144363777688065009238639242506513212485479206228664672005267079847014007605835962262725483053438310093153186025482611203773214268340143119882075667148854940149770409773014447541678093707381169608410160139311542120206577163628452306912052599273914276707375538918838580472281548530278462770389502210186707330868294033578207614323452509142156320341206300272028941902785817562356583998830287518806207578062991924099752341009597789709689584448340826973037072108147452444092427226802317626176843060965821177938090436383016049056149785051705079335983484193330966749490195467848067495459515284739059455164340268830783896372957825723677131953039435839038421023164263285517182778645820514259540222815334738783752622259001089478115837440382867880252732581412697150724039568662098424319263019973351270535731554457028583713367987565101082778245752917624644598275953086738282033479881354558779771483148220178285864042837690543874305179803823178641156858043387162622703675861815162334918643675160881900488669906223590195728446920075500198237659170069959680083092701777897142236765345337067129873526919839230215223567795510685892464930467904521128793567099275686517489924010336505617187845185500715409640656486838090244763167815910161004065242312017291631100540667853173055127098291175051637222979199426527177458248572816993738431692294473983905266327492559494191497694099824729835318321582697280053594826194625018746820146766219068364574956528455930003692048192602342492603920865645436398354717146083471351588576101285287671628583858460085725244093911289689975254709875669138463166419829522093827530297048696891733520655936021394017445550628822413049610185419278326309870406510006569570012270123429496851674744518804724117477224001858189861517840251189651972075676882261199681515454808062173398592410157759318954769110845529030253593394266459093869348963176692227363009665543980034723891359560167823523648849613639677046186311550255330110912060799306741620112811538696057366167346732243428137992672049292257445533124284480300544932578922995386903966806259134235844554586364811532766569386442570240619777095890693916383363127628643809951735970467167682218474491659485284095980520675809861464409663843700348359662437086901042182979767898404800832275882082407306540718044212681505189922957461590318810539038078159742106992240433981771271085518214073350749146639853128597569799458266848646661746234148288969120050536572763842941787403179762852652812820368814745859854375482820731016293953038239733228917029388228864162708030659597397127762564201628862210432273657092272386271210729319162131257457185829626071098189221688690566253180436341136274923973828404025847641490928757436158282587392372168493400084155867120532092693613760202061279615221257763073902731043857154820016958608792291373877558157304224927507835424546620571631009189411843277473543371284445163191641983133618679428150972991715807148303820670061750568528040697114599264484876659596201359211023904022653239677417250065704239263544023375677652490805660536160583425236264332265585888677107863277707519688126629363808147150847994281006667903428944016963891091999486617209156789287299716202940004053029874314707931313773380542511523168725664468351805735741671162053692194632373598542788490675449895310578568939781666655398639594273537912892890328423098032003083224500500137096219555612659873395530554933004305839621208848873343403370675228244907022909349788411650751974887085969599990268195484759252390884835889215548082382003759334719185032612699275870354041297452905138170091453886468711357887506946522637522267695676322526093196271924795382655801610057130998558924051222163150964620507157207750599730937692234402413412767670630465313637726196768126790935807727577116205720142618288852118393247569024445074155070902112449557877970780565206688033580564736167317047164507194069964373038611569548799006928096145811041598823894561057783800331248689008514043533527727154869469636624429398613516835770903902373646228499843497040396282718639890167278679064268679114392286167862417936757168642073102166167965823022615284852458879732788342653609699583793245671321070576286482045818630721138028739017724482103229794764454614176327991138250851331589577963174114871363439604933860663861275099061156770394381161340753362666732230192507498225516619089882162697528574689952400146317062750071016330035823141430816039737977152395784665906016678412514010355210894655531811708567380161008339283336186764061781242228891590036351849287424844977227876699061220488018172273443704930865273667595702361276677401304158602466267470406894456804400983957363761288577213564614985233824089267752752041175501029027383168397796875641992283882060009613168141106708094456782658799162219545935046932614890618747390204894866938631220007800184072299362276419120013534760309457920425884911413558116537481974628140564007801890003310338246537152436427742263366027101919494490401761143623830047961763999086646685795075380285881988643630714200810265104123517931211252356198412610674276319730598866586443496982602794869201957467917250052380035511141936377263182721142493170331416144321727374780932113262120927142289648207996343916185163491472471958704831758687834282078571576742743752801880244632147905886042277134314996275899750397636928031427678330416246163534499700081035176292148677063800044751918365912745995864354580864269121952600354803541236958186507737017078550642504175037676657112153538433381652890873287763974692100208578018768880877424462302326188501509937474924892089444645082940334953297363470778824227885712490780312594766369620108026067422545248461084118751966981703053551496615385383392472402262073154782903854619472050144315768203661861119846505416847589573221311403444173983282084501850404734835609073922402866163169048046876392614183845748582141203700275106791076534117683857058016068553881398873031790651757820102802160511762557964488327612627858814213269518240608049857847714486477013999236163441222458493453146465624043363687130855595074299109874201937114752225788141949182140625776848963011302598080150485528088307691283299239840248194504085722651551276692000180396644735562460849254873247406694372260938441945745475667069857007231843100249834132940149043311156827803230987358801016519868977244536516535055212199000349742163685805004101138997046503295148516757988368175760176610918585455823526402161745909620226639513725110621010987333243252562417111850968071734683921437958472844653970802444593671205664653378057585999525504104737500933105970455487835740730966380576983948281391861433808312773871152352072917224911749387746479105797418257376514675144812416589586147827859301419416972230050450359695221270240549924123400194974838021118091258601315511923555866379186030384482887467834871892563467553653569142006387638983432372049022193623760752649361277361066074022591243146001113988431051068032807110817032726669269997386628672974324202406508476379797764821107935631012702116309805825684415673473620564399352433892728043572896259963442321844044807863908416038170840440091462245057020949805026253669952783670858164483705480133955329316414837934741413071549204046962778730241460484209640623149678838801574442656882935074287223190578487598924035957268452462973149545041937341463147276093559883511916430775345006378556366884697636817036736292159731528426396063915378180795949040464406864438375824601823967087203677244427573507386003597720699757412103228486533135587987188561039246187504360233988282097731493398695473052522785685354682969136060354962243504618263023482855227139651082450033386151409389610453707434024816401766772628765494417274901777868613385855938613454475113330373984388549609590584537534391629673682493229034627099974218112593268943877501854613734462606670338961884285904202908624071302882846713253969436301417144330470758770099914797126504620738959294174385172434321543106937700514909485849812511416048902497723809567189668377333994964008697304139342512983797717982696988571538774517347932234119963092443368063023296464623807309398826894116195655451663852741896693759696620101632363197420884673880984865619328612224414663378297626147621937728431199382693874207771986312502771785583463231052611307092740567809816853015069164256372086415588343280510402318033884542047092309936267682340890236887348396970272796936556581148581413301156719924447122910378804175243726097276778435455855002716446598231692141958890884703532161790146552699891687013345380113981698830795879686446356999869136798285008075113761487425061755103958679660267909117322940056748916714237238891735660846321669783439856498397767632218154086998983881595259639945765168110540871394148117213019477201510679418437582229457374117386640396324759823754452182716431806321024909071178028566973532158242729882449989176748769139696998581387723540780583964202646388755514387569092366870985801974387593646177917672763436471782293516504744380673268675759148803988168954661761313874301952083342208142194232948388273012893552824794129683660488830246137624764273321462759579036255183715981127145469562999595351902521502415945316107082759588541230827620966479066033134321397498651318522148624615838702738803770953745499325183904054209418197551558599638754975444464709392508463370641550827789648979243605064106014137718212224668357866478290251667074006156725989222896060295379885905785155867971698556580308153902465256876298957768223564465320580847265246771686615490067652614856615197596982465450297976013530821044930576989685156567722052124766608178629421104446667701976396983278045091149276831005619819994191980469617201380255835180297089506616761845778101040819601595737835823472051163705225399801036957957977075428418128394359013371717720738020298691682768254742289744183692030544367133694438438042294600694485080316951888256812938762270072282256096495631599249417117202641876518502480838071260648325542888120318131437387448095545174821277557197128503307188317096833301893544814532068146642333773998264142605916941096721949716274742196561659816446574140505029720728648511335782424972134997688728895254318338576419504817428897703546406598635721918288573228336630042895445037577193265855681790685475207951142677424469159514354582452247899160056285121074775908883815450596179136428058739588843267259693190644046637177700307152337208808134792767733930744417268464447018379062960656914641992365545091874317558580220945835848726803199608779592972021647702658040968532956155330714087423284945520357105636591444824658156085682816876139944808253323466463995130045619040572186716696218952479690335964848368076609110711726571473338068432914439223742710153405908816313810717317591447687615314736853963128798428690522841921829533409936334854235098595603915420776043786317212623273019468398936208579113612158634355043181176246883836746655995566442897960771775397693112581649483399716706912979169287116470890442794359909693558572662993616205330598351463251971779245985531774924642422130789012020751969761345503804882968237657415630547686162492183451002596809954448210319130810447702675553325610012494356133824354613482737720760430583860150796715687893638322810855939782025654582018626796701765035268701580323418822240694621294360005118234160736173597239392052404567507973420379024273834947645213722440244481547323335549071609566684196406341913907601278459001781648990192329132360279384754053901540819840276081212410763138911702159397808529129315266308893739570253161486742927854001259693960279803369780862130805539838032726134461669926406081424711431763973883644536057246884505548812156698147866487477073731932152143471165123307650428145415794734226245163736421798698658423758937388641096111718133628959537724404280571234011412516832180565905517782221118389234465033114484318206677447874510260946380727233437271707656081330011759647672888362985996795236227667011167803063840233658234262738763210683809364987279994435606388135156923751534301607891205788761972766686776546828144745519288467586340033369405025182534203287865089249420229407402331137839961716236202446436510115846783417187028321869722850614708441096996039388638407952412478296934665557124184589623724832686586256009224138559212934540010547877824696152912693833119803596224368648481979597509398317104589157101149676886184843325244170641652682000890845408566151795388282347885540049548437578509399099601393723392891313878077440251707403763306282583609284985531523909837907156641420548771594442865530279229217169691577200730223764478925104569645971521621701294955516736787087162817179045121049041849726223560938412120727899484245017233304208518091905972174150978051929311173575341554806137315848697641326456751573066047005451735905922835003845088194875148324712394036676742213320287867746553973791770646638166904158817115247663765704406061461801534777220014067575141287022890392891821253333206263475454977121563995216595495658860815482624984796197036851564049083313027143415662278166973859119198664704307825730135391671675827613900198107251769641183725377742690314048264213861080751740827637449053681254180820690635638887861046207006907625063557587437873023961736427513830376228013187186939503560833590017037199897220894817769156827900281555540453784625835386412465983195286927714674461301548051873329807273066560775540726442108660196451306033891751272385273699037871740786422169701868304500011621112948374017647172747748357045427945931122565321244379571496949943361536930045569623215194051035026312231077935858255904623034223966901633304937681019011476285541394249972864150132509172727009268202426788190162919739809586499318634744006734034966121120105121253532278796355521744273447056256115120939681480932840935314085368265112474052948616329561097232967712095731621326056414601493672237179447407006541893089908394972589068101446977889639148655454412346061002727544667342406415083186130756316176478630148584774533400308803886487828222247193020563942107199433141670414477274254744685489650503839722149856290264564907423693899565198966105001925342173429523023629715555789788940327241766479438313244895146708845194157244474305539176341726486270977509989807033263002461689669276752799838844114193451127290270217686468131655567956163097604831280873636847701949506905397639133309116684426568548163550181576826198007760063543781318934463697981977998215462707069585081949867405763067799790114893107302144579299177224005858488942118405473789585266804375258041448407685209204111990419911884027197270564976313093237291435618589115688968987060565878503970406382638758673570682904422378508468257910845898353988809749666072527976408532227286334494122974925066010043579492065363945195760074625848017970044237136924211002935497735418797969529687964370338698233206193217943928031762529190494642903544649868215113883389701742688354545984585620381699360251224221203362046457680151167767182572391883766498378526254814273695417198679755258866985228852068619389899426131153056744794163347793347471551038571224732584027528189752352108613022487069015272588974109689104721112285033808561776826755278824161549568410512789334863200293204656929941928452787926296097924814483013797435271744540861214993252774629605821196909373817887338412124158820655963677969807447070624194379863769144697676314984920093480538748192127553540507637852939344340248840726564708256575864880390986991363965891881396375645683377506602849745219055036714035444958332250851053748771113149247347120923564881877349421753109754879147700396886287222888185924136422224129501045322628359096609964442414361830274177730066929818533783136330619343427948559975149393750382788847773231393196359318528427849026679459910252197601464428420739031669290826539058978386780715621021589517998529586239835674363531392320081747107807078033921043344046036686858975505783797968510098074579246721667781290631393933958996385435733164667868734288279799116666154926421999341137449634384205070501119767986661312776338287839844677480584005000277645652937479082169659163393314438951666196769094729040897867952080939155576110364748925347420170544570952614091373730875602053970887083936965692157759798708899895361109354697986212004531691501408668305650087063575559651762350165458686449331884048005141202975443156513918797268550432374746258609616625137439607515890222165657081051673419931192756204079465155715721924222848217381172413474241023777381726905867193910654697832777537534351258224330600606592637331441930737045155413293211936949920401435835521062155259542305277234574346913725683611152930668080195489185684042606803941563572270574023340870774100413515532700427508040177559397922550019057261868671003755545780426560445002970194538957936693968046098395815589099101661974325281033462869759856152386102707716865336653249901120253580434449626498753749710864663064458945745027795839487880165071533577080366965315041888048472995377773679478867840980103418973863977189540311598612560558807573375718561315188139496483855474051097593115518887056511093615269580462792804107910604513189117617164696496737239175653720632077670457305396672494644239654715336905834784276561086267250740649646194359535824503447540309010133730738566095319826935946351999389195866645561025200744533863877538775472716236511476778302550661507249557677069795334367006450295045633746151284093256352802484556254643201235647837485306412977785654655640388224736721442251021277271248144727735926511197964712141186663541939898493088589745015144584635259363345856973164617100872706553489342403697598402919041542541550817861967917088600099633923116712722633945591742076249492256042461413750800555336955980072347484629501636595363771105072742208727669336967228336998525364981799339672041749152552722177238756745853204977004407110260385194236194284210853167769103519453484083945200081108023819809728826850180106717716737527562521991885470624092140749848320978137374828228141973806049602643764466016609060233028216683635836496346876575833290099585185825173630008746833155235422094723088179609706381402475110106079547190964266380011117888962649104281759346139795816350789790189140591912550764961279118432555307645962053061679582264337172872272198975505402990882662986043386310737614783752236678640266569802849135117567969480940917087170452133017102935093331421439917681480269873329235141755886790157540962384433415963974829233970113409299068202215357184780108189080543382631108290086456417840416976239966530421572073623955639277964692325638281239778032718331521008514340169033666457941208660896448443152639366695712205448749887104946405574968739817989686404458644929026555297853347293236556757616042915840227672900822577721052653401121617807078035617907563336995237253882616349096460796212679398048993565790361749632118335594412195165578349476804210081461283599165840151254156631843630503392542851247004272232033940344309434775847037744537762777560166103201622651317746038859065090581508720728745279484247424775688327864160350996671456216424680016353336750578032007300601245906795292529255563703893562355176032071578751007172919691078824374402857470508019128062560743989005276356753679299457630460811157059031695246038076736323580768800561559452889912486637066627644724634990894043412845527204600279006158861659194606696015815062357115317209094521195259595581177329509942617950108259440641335282951694684582736973352036384102580632703643229611618427352985970734276713457543028055920383649015563561096628709176338124454422322942709466892360047739741847083309598096142101453440551666882840901136208570160438011747621017632692008819033336982164199190279148711905420269393386204835645453333141613010877453449322328530680563512825445117127131734239241300460714324330262478729598173372511488527149285471059648778847912028075770294416066668142245118299716460857914410585598292667016220892921803201134460709125455981021296030395551996420720389058935799633348583071850358177886431280392177247011258086990184640323768705618613297025153933859698571690203247564208966889032184342523441691475444313644646340965106719687133685385166028360827505860134871214161079025145447737658225060178719283716306538108002977532208292073176453726640109066975912999330744302544600980970297784906708145976682899289661574569657321475437028157933168157599015189718635101913692397456998419437725794303692012659445921691634343243473947005031663255354077580182129257508242926153103465944654341972819612303343804954796728125499112255883492694847952731293675799276205643709466719396978404553239592964989530275787411195188427782380534151016746609175634273834066379556383395347135188297514141917342578176692189937132181316450682277571260011310762538997106862746082402155380987320586641752192889112501847411444014805119587885315824664632027940530451741643143493014844349174821514775512572644352163032918412964058441747544418804629199442346533362830687145660474277360367100708254657780075234548618606435288787177329690817172577915125125192565782474907108898227389114297492641842465732726668744940455126014087917638689039773157904346983283350528457109190754180323004775530634473938802635308712897347204681973682637105558994976040387952971274238104343814021599956411926611271965977787379930243587369541517474758405987303301388540835210396118653916053023588324050728137454687763083497081790292230359992359630761244743464954724270587191898159093040431739872293895548680713343482766941845200549785533959404373492712006754780735019502784102526749558601254868993557379886799178062652302918475728011527137894548836316599186562194729362278875808315205769975940160525949364976979447410818520341053151544145620250876201899160385236191076086663291866060268225771831064666332468308183244132102407953421411294764358118824668002823202433332369747366228187928695273611679096611610376425995032987317967710298166714459923032555748239801624672620253780781124208788186526948933256668030699629659941126698508101649485100298259265330249382051133325391040643937080854343538244832467796467299785462333854176014731277744661623309760540076637501050985366724743268490553032783736762547678679484273756015659869595270431140965712740078270494331141547791665535591392083577334000537265035478458811004535279772089616841002227711742972683001501175481307612880975451957232337807923745294522743173120360917783957676689398626022232894130515833025369377519374889568997674941430068228034902111855211863110739895858786024078349304912507442955068158895996399956981849312916816468000907828727417153941138493392816980469864207658820971306665452239916465312401539725574273405990591607358039121773991255265780814953195140448357088947938668678195180921573735359236099622466742522933315154376251395529050784834941951327551467158381736577593618730844859718566584854718582885289613634361020767647517908476601816400184940228349640546768306576425394594858321240216227284993170443113158513316071846118895124111311437384218470802323689518691641411201266914789254582719541920214506957089321522713021381583509210909136027586466997216871884711726367973606679225551379909434722454117160956558394795435296671152216047188118564958951514100827383130361171042546017816347162225075796707507913810038683864671564965938732921253421321278374496819493199206360899472285543908175917043290340712316695810816052044077036754551268221776839897679634385149975946696623113539985227590402208433615005775977830787080477932625194293437188021135760818729235723111756436187889960480192902163785153335902512076485973325146376839828097570392419877038186029608192326399154874936914712422897413132905816551156949954746251986728583247478055213010844142862295611816857593631527820023445022209266129332448180626721179197939254644260544206742837330408710149067952046898996671985577306736537752863160165926063525704577026894530047761498800869157793622629569647916527071414494366085105605987965227574081956166007405659416095728853198818120750059219199171555565898539498625096276578609864692165465724303803241551295932709473703473922654872427680496394012561623697963526982432011896881623341348183327747962154835430554168089686518533003227734864026062276975447563332461839225188949332660734144762630891249577338221770202415837026783808771562071343504412640871767187347153296345067220764955422534451209164703445713843401581969930070993287076302355241379178022596716378437348161353822502926300186675292146828259396210257237270303467204119680144865597283916845695465665715919919292965499395221508523859003075323599423490743156610575461383323786547015181677583419740686787618825368348724370966179121409013169518802451191391255915088852736040997317445061147494298128761029172150847850753737296955653998390597007256394649951337962443841064086108657220694496466482141677039363630610312754864625592462799218592900138191355254913760703793552892813886926157635840593405121833413900269038511568774491347488952532903124583930637852703533758457250998248297258008549919507844630748108982778195698805675941651318435591245796627044605255146684265762154171443553846017518207860822437465395089327997635497152252279169878819994780409543255994203127530685052021235264249588948322943538210604422185301184841583351850027547917676684185761307389684480231903211724311306313867302735204793791420025329992010397233808900983457545575556324157195696827051495470298898872712883071171742648529344160141075483257151822429542401949447279182566636310965433575646485590850548780924985872914044119491649600661345744101363875754398799061828773865240477388586074278733179340060552877158794029067119108571065393985580174236442694145432298599872615602932131760204926064734461323334921501256478029015393880221978889823326659891340007844037431015671867046018789861441550309976098666292045836000215966584810631605203900781004305977580695863255795907439375065096898553133420609305802205575149835820624325850500985130673762121227529748271168262181488186894789100297662776427145359713652653234882644620531522851133098751219600209179530480668816891036395381276427824128014797314519712223840877683085590733609113380211031438345825167482100870491136493976679138447233626413168177278274426984886362783773728780739138420396274215913807876638625666533903184569849597237342947594095853446423283581251900182421623461789827045665308398811203414153181432977229472354974133429501931582824248682796018209622210426293924198330565590505270620697416858821375557713369353722126981919595743504679290141024892792425162021529235728226794338799276370798843786932243948059774860534161167180458627727264186501151568694744614354596938512450512953564978540279856301397470922428856254780548446091629213490788643127641640330411213099751952715217732784083616300570187845754765249130328343693212511646104673082458108659563305397704744235168278334568774263865234168022089999623485831796203637447660178740094281651092726073379013615519462350477777902077738319600729974917746928480849376684217504264783138148787094121974235460482953390358604710287112790005085296083841249590592282547450976532197960973340628286634699084292761461319226103923021481860230899004212517380249267487778076124841636210839836709701928838467982772473851866836494191759524300187328143448144508498799204470948803863300899142386743184475111889642328060107316656554462892676747389963078867366074155249985706015019653207453008543105035777428149807057847077859561971907301048094405553599603205345415976430846859274297331527487881996986877738072174482146180834794811157127103673294378038004853668103081192625056898726057847200024485250989481696038121053175705606051136835380619534933360655078110580206064794380817017294055728602933085391346836998332636464001619320668094504695556167634576506192460678764556524812248327701060811095341626885522080945305482456016252381549810368105254985736464773267666345727831783785573343242039523913831220334859018280353062729234250118202218090111438063937301243939444258592319106201249432856664482398245936313925055883680333519809677116075910816776827876180961180648865117906346065582813296814368911882794872457499699132281781688858423532879371201600566809416095049010721663957305113439710705387990054711149779026503166031719405813462438999488880489477580371163830498309957428747076247887744910862279233011997412220990668828154834588300245321879979191767842712744274102654242616785608910917085658534052008476495105176331977698607187786513724619137005511544677505462574344838680084151404018155162461009288810301763548247884211862403652423555238912008852982454067680558094566590843751205764493985277335799090880576393476699126089765686795202904461850264924858906176098079836454026735847956340849822806045508082079319295309170621323117145641762623034336815054649170439585535731914710170951995809872313572102841913327064771317828437590533460566898050139844782045285189626137996422423122189879670561328802749715574730534386364054186391592718736769528009795926933579528279252535948648870577141784403219597149247798075895430561863483888230443229054861839485946212492863299896695015160125485549010775105492411737137673340063820005015306424060368286536115438779771846633049949529639026100447924009366306750852775483802027018424649443874933268939789596019983944740592101141520292534402815578069737071200416575993408131526982005524768657179976454344175495577279045662935254583944595487441986185618638461209796060359211914524712565299624822157727539362997579773939167084835928196830407854121169400079427720949667493500613369522065179305681214548670474020418543578447425300381539883284997526063489066405969078387258057045562125121851114022999743431844089273791767448749272614989513439518056550179421932098918129691726210525416278652994004437796815032688008853451218781416161713011552169726399322041648382916155071627957690171664823514813102871723322706404329555637983244040720744472482795943506484850502248518045865832365836202587353515497012904882431545135006500466863890917765333485890868077962522318083752006355921093838439732657311500377798704292247783251286411486292870921112036037933493767812263242939122114667297365876842807011979462563644516890572073233731502995671114851370867023609310193556323527812078636492379501368282512668428677264920199071516473323133242414973054336662395714405943363931664309783271084220764048066668962729041757110325877905990018920829297738905255943440343724595053461599099464126994886966545104924314077320079292899840461443602641969674167131724909736302844724775954093048316332279226027629755413394594853494378997435251237061325614443172551337993080816349369665124754949814839593120901701393830678668655407622936094958917309077420886672222214931068043937452733519634735663105254500285649057251009438890462411871472509416243631231992783448394305393416753421300020927077622959217157625509373703883949596445927881486142124099673904545268947789206490129173217687114741719837144860413569204417692128735804405307884927415935772964062442804141913532906095754856762086450853044957213365195592523213829136554327279830497204721556189889605233924014779557386989827933552407876021695764995410103522754897618869613658580785759660487162398415246661608170549184972322894349041679714199026839048199056106043656234688475535657413510913967665516749099937706206724214023735102490129231693098410774314291026482226479838586010372212157377259950010638123252073784550653494426787813901332752553256258570628006064002071723868735411986683657195541474739458367862981972597712319781049736275820296392525844719443872488847781426129104308141322051359676365216726780023461936657703982804728919202249199527257518179056130049062929211138139098200588241758612950205481603859870664073581608733066429540964172346492540381378852964766635296479579356228761851911193397982251821453462329203184164447176144935352371107154233962006182633179962721609020528810010124609615664326016012181241865553601161362387776159389475973631519269515440708608631647942249120941616798984043253854776071697371911760840486625353923954989152600908094232226827725946800221137979901693087662251354208649727258230297720562403692393693936674015867057829247558577582160442522914318316968590458841310918498906807549909322288423407328377550111182940951977703492964048197326602212507958990307363515208988625927501249782550811858776143972173553829427854263432179151384990883324506928141596615669804514426509603741635909019027577367953377755705287190820187610269134650387110244506869779680872522381402953406360157101116811418527057993569027910266851605102653985520156065942619245862276108874073410313501380744112787679037341032314512372825936412933160147514486028803910301374290301064512999288944279275956827765298248710655680155983651080175529936680898495249312343542852995318360129232850739791459134510498023240134538838342998539734297119823453828072576899012780946829945355628820746603858049019293185721122540533902104848023677619482991106815115298190597237015200934684977267001908131090556478732601177397217185233272350531349613969134914188850889760125186016429438884413600600623381973976361942223981059763908320595694841975842085054850377847480977792446103358353894307865532163820770163557083925359587498002982672612583030026008973410922339126181192801782419288790454905481836802102832852031221531882130314655091582934004212150126438864119497763065127383924416085125104670209921288873040107303498225806149538196656539004050467482469678678899626300980579350812330539547271007909132233843605183706974739569317968348251285435455518225864657967932460720118924539303519412647317077189860952628725462562034303557662412944296101964332199935374428999087682839086895727611226342777113008982069095835017881870783763520773861635617478708271936814087073003516338306331495119192003941266667974953762008447287198744710272396283661240747342002910268115812342127004468038881991598381065429067334227110419828779006739553527740905639422528241612123207465860635015484719079762421788634429403073919610528420047819564128891206666254865216072639677621804823941009806085571483907845643207819025736027328504261014887096318084469193343142897142618190242755941205763031397714425550091940768174806760222256651207198369198682964079664907681421944694575725710402313717857688395676343328982114439367651328623271554624061074535671227213901986307650139592184315168509856080778031039480604840143318789911659845944588602490996747773590517580825766893259256943046483179269143577360433585271508616097526144081056098940430939426727315928741602351281075824450769258838914201995275888454761364000408438088612057338787009523536076990892756778503306165113986281819209781141323133114291029993017170544239396276672347780663959989261083890636046214966182576561469965840284119170517726376395296293377822624780902555007596271680660717569510965565774585756118229336630732055473993938782928605112668782493801714068945113559980449368805204717560670932358093391361265267633541849048294675818003573013959673669857975959071155812210915049523528348036207761512886660454057608913935918948364249997893724075492375767678491288921860785315651732330346903686296397029634471116068304609447093851963393480650667228768418814207603095301854798835414787738274413552740915277555884839714204112545389245961849401307312446617336310209618167002547250505072714726358707990438693167321875124629873951256635471955500977928213399855540057619909409886674762321133349149723867975508622316508679191570516640617638662220056889145661709281785324462128375716143938811285412788362320064666418425815463640762467004025083686484888111508183516528442091656098046877383133666812513611221701153814844687605583890213885901539029740632804779548133063687096580010239698418704003284684230688217236720329448224497944700088702803419922924553298103573214170532503408892653312764490201831473253548416822912764867125975962607817160028646945229894855947099342420803959276390610120155898214734009300461589881001936042675873867281206999963799624385081685382360020366902684928307122660874267051253213270055877390613312510675435777956516978117289034717059272332462187528661116409174243841609438360887446768096159880236285399291816439745056108437315197258933268592677473561768387653805384733542101739042522894798343393963717525994553637881405346413910856421940417271877388243539800420814602020716395356496457340707723765483387785406547086828038662022024600158935542009677849858593677729194067887068660690379054204179045297316998023802649470433320741397508844241836552995253228527909949506273244785696802529632444249089039114843508112943449591400521210593848650073605649355720161255957179448109526136507005194462402637163785910257810596911847625249869500940781803320582687211178090190284353365580710342087460207169438987970080651861229994314786491691174118034959288753824990946071744794549084147472323512502974227630448956036730832777614836616855430099137538939435825317724584195310657905445639118888972910016673155414739426756071892059477938526841716421303932611687377866717643239013843331312861986588260112197133759579313930388053601469565452633002249737445521994602030811629973193965613291887670468375519149769973105374503882608393781120156080341206562388637418903191380355370569558528202317333234218536443813755232438806221366895612790545568121969654371140059934218354155419083325295761817923790793782813148821571305868179788198549922478368249799900057835435882387210262761177008485520080487165315729896052492245302254182846205657008234972644936174150659981797050274629221546951758054859380302124078517006244093925154964643074500167245634531704144518309904775932651366829150367642102741284310205035669803191688864737919615339876873410722699033080446840674393411993045651496762743781531310040049789554873832253610964637429723954790821896691771054063039843947420370870652602576502124765103438325360801256052647527158798385458199555252703543327382516635250267737081207715224600903442086967878452343003850686647785414255175094403186732971579529502568287609343529853491188320240517978522741281824450795134211637103068280174797542111091514741854924262620488117922006334766500750376393465368675468229364582954112105126856865247304940228461000579951262729658683371176367794385949859527831637769809368406647524678404032032735812865530283829507129554382726883605118450048088112056769947858499620086016559458236041942979094406042323065106945155352076254542256396149024656595841794605863513994034745296138687265550038193070987492155946365158818020155401567344684274992015322636754233587455055175183523381851485917123058104004096909970841988019905795204411514680844896399240994031234793668735362888539725152342184629616630245824622734619297723622048286269355825751259643378932994157300845570450906557624520342964324264196047803953338264190433172114833624783550349484584802250748968457463194988129670193145785956008120664077688669493129295999734572329712730511512908472428079355881097039092064980317172670529571863367658226557416039987504529542453795149716551519041910849207704305080037626048622816401196237941278643455462453141537939573501945356906016046930026703103629283459394766393455438990936467568416050913979096963315095148293020789723679717254315461027772130208406442090203943742099394748853868679306725639111381192502741042177482964330048845067841005049096073765515753333000135936982413630398076078176711253615017325295387967317819624198440147738605919088382042199187845852134617182755994189147418970261844875004938171405174701919907943394954026502720299381904742322024893147212684077213967230315210788333113137254679898218533219500932277192273864912863827719630208087461794973631693541036696559440626186052233171432063564411534560972811268984717678193273302990189309360616342208641487327106912867758068363935972596191929644672172962376557867348768350877580606790540403230199858946065439137235623380274205400155881825392476363538240544781136303025412710332069521506481448362047061853019505227947462737076465347624316188626251114272453460186329870518776079247390310677812662789736289047499149377308882015978967147972527229503652752688213305723831868039111444891856782664630131208824320849114418694830699851307302052101072514852897725874311600393995772967611561895865539235960437174129908479693150972116436520799567618100419672690845962128030848583835809922056038865846710033355398570166646940935685731987450737672529873320286824607815246554411982107546153400777566017603809963773334726041948693113524119988595073469878097913749839303688820437300573992352811973830556309274999661888334171745936240236318608284869271980838477916103633409901955394256442152420977406046726929398971644550240398408879893311117302465373808083718033399438614207771107754187677272531150740859663564228410450247339990298137653423283769732247736584287164205173335085509483947207207313941128932576445864251988732240112788566522807856831927716144158643029689154352908539890771977717424058839604069264539944821549369081627089078232116193485772665165138120292263078220591930600945155017600286844628249061123110279705827379335540420484564446624573957025508844270017043672750918264000408829093038472525041515898715922645876900285817164195579414429707501603645156250902259778064219188813304586052840400837612499647384911613251322619172195913446067158841855550986560242463207656544668456698321543184324746850854645632421514336948905949409000794582426272427059347445624809311658005939963774035907574716787987467386264815456271543061227433189841615520696095252497356054447561403212664082859326970083121168163919936639647620351790021359347570161654925215480601331228628206419824300694725560452969167505247029346630896165180973805591001682672052249716688534089949632652429239944333359060389757008295486058003296185412899211550936945089491696323554200234394865286856760069137548940553879984527551556416980617304846571882451125303641166871065367184924316859258465285115127407749171350865654172347899340712752273644052441513575807891576976760973119688105666040212661775745700305007574609006971687143984718104639530634451705559499598917922567350841096157632747892137767363240586679746887571604733344107419888991970784107496812103228958601822907723632447698771271490262803861230303105631565776997544610804675359070397212345740138271958275727258764462235347531012538653115454783740678080963233078334081480584735531159852646342047938947079560523248137391387924138178026365986823910150730276710013307721407038715153478651681582157104822628597022772457949819460375098365363836738716159006829767315287773441267917705590792545652764290176811264918332870897522906006571725429723479178519561397775053801244768848250205444555768282447493544945262726785673911653812716323889800412928177561681798390914670423002214265838718614662272877496160767397678173704748781295235635592836326110936559734753310123047475495312442863414119558185205276862621126192232332674112510466912580398062571064335251687834326646687275200246582980157610142764602865819285462156678465877801145080066192268788202369875718040783517309828860392606824209187808196995520651450639566758645148347359255158859694579858762557832495266703304242683520044301442233782549771848336690066802063415743851213810144901005822586642085893851925104336969677733632452744027161135873574859415644984866285471167338098296074149194788814681347593269928557729072043715821899048188690108037244586542598894331770462139309089524168819193974649747630421354557513924209886334451516695172361819453309579436513104317613272322855278413149420184422594497074221824960300055374836099412059999347648430237675002061300099826616298681335043900885428849521274844472320590328487669132309908312168949269324715711988838795382231911957497395145233126644624989081299806663174518804291182909331877875489725187819962047575057429651767619220004826874443378373018679109541553034629332850889344993623092567272419685705494862708786690757864146491567989200251236521713684024835737178104574305783435262516804474150071084946838908772443007458079406729985566548745315676747015180298039925573397672668774092801131708073901156816216418351279157130567159680424673415912423016241648363223274115836586285883110137864193941153192783636737151032301565148955682762003404813207608520449999661012584220934379214324593123279576531237605844093441838373543736584135409248851221916355480298477438179157745383069204942090260928874962516451734331496986800216169143634892840560835146135723059880871801547859692123966223314157680284096455225696802273797467234811614043004566592387395452008235037045644863138357057703779645877350166507808405374977856588963196082275489289159056367640469856080262610007048243013365490210936869610113480027229408249148150069257720677667734429050310706512958596818393620531956579110869779553939006611149008357274051039928391358845360909588611783141709677311507458341456419750280047231506403166668191203416682099837036850723472428342564222357175738375465359156334203057344192836062587133329993308576569299944798084835095839374278570659506750746984554074237477060248102568071784356489675087155367429669388463726512577740102308198874221127578119095102235160187054027115991285891130301490039366958938838976394320279969943274957477039024941282688177145205622933015394436176882657392897775730537758304096387674014542913993449353637162256999995261985506317469726081437323859564669257619249390441442558856052289128552519542456285453097713195980873012768200596902734653121666072043227690781692110072113390725508035685242388491151459172964396830325009907660332299383614937209162757447699645196230549448391658753600000557898255219285642286517600584780141275287214564040605125623324681797053127852302943123869877041422180064614773539784127458279218011237410113096619337262360257727754196116609664495226381552879795692269356628587562260587525199630922714442166318724906921517759596469983223650470766055465133634610007271949501505762329595962103449734618365005751682370427770608392539420716711621563714090494628679294438192416281920342252308826179486336010063054979836724571772397398003194057806068461502230105970697208623262813558654489438827174658951320800298948009959934342925706363585945153058281428563114570543464265823085885160756968401641495257983665857397882516905999026360275549649222614432693135714815236621691786551260698967716319207927740315495813397524845743167579329660847464237274883300877830047240984758057698558079734966572899338494232939301169097576472084927529135912439700782924509715000113432970189824786824816820290304118178192437135958228306718993548721848915334170527247300247873542240474788634588313245034710422456581924822432147029915717297720997481067870511034177254151104439562565334478428727889194715499339572932674169321989831520270681266210907453520253246064954062838281927079832958780383828978689526854733828764604914088060393314142920537552816163327840719147775372875521079665213714056810627128809827034005751032015639463213156099671822196358430106466613277187787312445194038551000302560518354781577430716823759572067711839290551703695050996140804907090809430352198137904538784329792206356362939735853652953663698687677667644089045320493015940590811452488160805219238668809246106355633613815158415130268597024564639139162086239251417291567192335261829960984997623071748685656806280733167870547668258826200765204081482597170840886000142919540416418095124592976106432164881057970896100286821289075220309972228032714872303579119994173324574142517467037503922871487171497741396853529033034218849938872343345358836242083269090093152416707956450721791441260111407714706367509233478789675285164015519287434168224669123314182045873151205948306584930752531128186855396844522613959136233200392529544283008308979168788642000585536301739202730457867375494998057462609172665526597862230540828220566585128979080306813216952919351970045829899756740022854136093407251254294563264319370410843600483392178128064097211819841665466337150459675366970694452439957229144510350554659029437317523764240796189504693861263441302547353869215057672236014114176182904588202422524549957603778230964304713257757074420589656420930474705866706964397598956834415762069030202671301846212525570762550148072295482094705339316645185978331722756405989785266356873432252803697981023182486757831516410297229051016128389367163481782301654557493831055624496688702828478930635972696984234679814621931994777328980030096049806085616020744908853264863875658815749616137517448196301846451515766607763135507107844164355630687864043700518870286993929743928227665590678771928577346241847911077321958156192683270729639541250371168554065576446513909902329690574933355744503783198425724706386055740369946279392091235729936144289036814656443035351280740848234158999000409411840032956620837039235041174278768460439337762117271436967237603959658040953987357524403981998404248856904588358035836908222563524377110666621111759271118415684399340558375706578289115053459617597964677987238708599768768515204273611503149448462624667282414383960665778587810409121900938003376562941722663994213245711812427052889570851061466452118560983711413837077747403294606908139539723864258387921840820605403934113319572692041177491331882143921078215425997972034890531422354813504659928245623767785390732702410232626783862053502085644051416265544441016324694708295087260002860199145981137523424606716181445251645558672839437009465636540083317235315799202508337853977776899336788066329700857756477350387650037859674686749796286781648892036519564576234322700248721624351540964526214089252338971461676172958599588435883106192283038034680575803382881301496205230735364602288580872746967994309777375605633290567020210632271895236361135352072931602429450089771191412374539572710250619929469655434617529139864207599486074095382429549041284465568671549372616917043383184923272055728485408130243406512019429706724340553630160223394439028895615942612226613148134675874552115206150665577882522686371130368473515701504883734894017605585319839528719021507475304458661527669089284414190942000832892101060153817967627474557094696964004479319587024534822665009209592366164813945681146457971315945805046924061888379025456105063021194999501784132596001682912751529555346639405953431444722570639647798125373685987631128606299170975771470660641603018539303161679198814525832957316342491501831408204803659288751610395585840132234500969175485099891740443894021092016446937381582141562905984304540687689474048124482588984435380308290748457058787150343945230821413293622733596556292535073294774771500864435938960844719861810281393082498647904268161178252317588412802929502106928597295277499130798141263916330176634387459393669201008507158246250868617344816495881077989007812165371044893071008922362863495444510762564450659740774069912585492074633884442128530214632437618251707551219064693238887579690809126483031376984601213127270955278175950143190125129850504078045276447787486630017908318060439771822884169767896878293550326864413933576066172162936180911954959295264104680957257188901551720245702127705945614703377267299914856422856902965505073376441652528494935464731834153237222536483893908274902901922898347067197749013701471054030465249352123359397984760438944744624165157478682379442126256748699635353805104177004541895990900239369961831282239438140131734122062697996612958034995929271286111001577697814888024684301648420743654647830015242533056207998546100417178567194481045115266851337453717784622960963209416981328516260319692321518126281977647951516958173120957459296301189999626371465496050104625795180440766453421627266898218468589599630614486525410336336972670127294278523925360498834037567473728201998582661602399029089522740266680770522749341722016963695247499863581896055251054477658102644643310787032278919081047207673152229053786110061634957094296156355085979299455094079073520577413419870210380723644975998026761003854508697988172244239030174345576471662218419722793224116404913192139728969201660394511331666364898199360328503179698060888042229765988119504002145027838457629412083493652196960870046120991271716455468718106225234163432835377905533377113379742964528510506819365149774538501571502420510638636264342797890377291858264056205310644460646956098732130608806341544109738294693029405643962127996345653610372973383837942453802332970302191129716722220016751721263492419047330862330398277986952371386319212803891634704189718158344058098898972867019695849743574923794539670781892462271697426608017888484535272071191597826447080874931474947311111231318807589599874638578208222190093211065156526905461312304574882904814061599865190990121886246081002833672053488080416671053733200401210566591584068218383913589867007696606653038936270981002345733270356962342018513132544380179837403692425587503237839307889536983178118075374342038894612777002727959771282068436761749704215655617669208132963317993833352293756057099691330152938715162867426415212436007909163096968109262885040191184139767740975140835059187252136242714837196292686702225273329810568934952121203600234533884561003140578711643663462863175724633188479596554078134267589836683413450240775509806266319021639609213566538345727099864036061418427529470641800431117244605633860283406331208290248630669122726981739390070114305016618399016363236737859617091752404994492613547304826590929609581481145029565089584043411497908344946363881409525755359772118743168480884881708384236886937253164478334228350180223980318171075598697701043602865663678633555612670534736010514120137213429489517310811305523557726203888057710927390036812041897782683818818564950113941593441646149787117402226903341198543396284062154766366106878566590271057509604823386107810030810539568916415996772387133605654720471658008991448088131268731433486813859580880904109363313318978755913352848929010629773602268179106270476661263927756233978718819268806188235130004688051705100809812248386041142413627219163700987338704865446899750528122457231244645610099388681347731427960149060011142013192033951163555473455499917640467915486182993195563180117331221494763351504248898040201811131675134777821343733183116986513215645302393250318511457182586334374512771960657423558728982820745508585354548706271037211358242263274650667154701312170661088228820960546536819089916389295178369789540636218865546208393870381417634374588338902448028681026668152810518641287117845841084604047381656046787287639848709307726208420801717586451093904570977716373694223772535849263777374843597574906948349122873997685390358118920285523290611980664326056174710353778685582968616881645944929348333650191728518642364933279136501180262389436188610769117259370674286165090180408428001743587261382701065479227326589423446675277379987550494474290620596269122558229623390771523893402198193068189949657870368346230719044923590172932920824667283146211798989608957885194566365612938591880039859206849615344310753054936758996860572963137780819524012147834413524244424011020628003420469493687424452328892235889456506509749400540206242388105291102790067284647316546437529461570006027520465481166421142794409145147632455436389572433994716312892305087994991543649324118258944742832331631023065440821023277403492103301254188148536768141229396610916603671062779685622524850425546672278509272827879968733054833020509542616542565398333262688180879522997962890044534225275082023031906157807605425481239004286708654450470498015095293253820484128566685981002095182518508609887795554642343077079388791303494516902763968120148200981222393931092138702537517144049592412107102778139792720490046656402764323030889454708118449981094193525346677222405814013047112930218006765640961739525798011839902575441347124742645137857248254919528116487578069193404617759631524718901608469692377398465750112782789152816380491806354027877743223310188416041444622944011283217921592256639642130972812732256733374731170655474167320418696042020519197291999626962501993051694752723313930317829402715347343688325130118954533677877533985924605519333429377469780156598246797833545712042921393795637888358280244859795339888318527285991553956490055802541106369467022902115801321556773437145270019607321276700332188528832329630326845103836827143551719177722512000790920443868764717516351322959530395162129564080383566499711277691983638847327845776382937849468225271129912903661284419236985997027411080372398472497065901887771674369968146903456140083375517395507930905735778194223210866969429775554659159687202025970785302170601443422344268558911489716780209960587783437611726802982826528075110941133047311595569220345846921235825097355066837638812166300862733644372906007503955917044904939582611510713353261151882023919609721471060103315064353017032237706092296107952240962502730675194063944971854862569653530035061601423319926522247310457449236907149399847137253488001345309074109226772503325980578974133226059044101021391885243000168109761033362830114928223474693362939866928929533132549073045936875552321073195750917960964759829350045145039028194215366531184918174333442889077895274590034250992338534409857000747935227783076781857932221978875232256020751527473090991591612440249429147157661563077577881346265976734679164960154145686060028768329117033279511287486382431223583938960047174399006849020582694410479882144113291111057726214866783798743549810910743661251569666346169672153630691242399768148818365067879770579069247293349986073713847331078897844798876122322302895070057939053384366446745215770217930613053452696097395999707059467275783225981096956594605628574507193723122917155314059204348893180970492147406373357779516674326238309024633821052169870074900069414393608693436477968707910536199073561936202344445721832864428065120008363680011429090423768365400971953492769306139667378692588680619279391359552238871082720809668843872306668196036056086523521825375997867319914257959624236540471194014397285530249828914806294270839144080893239059814477362335423630799336624469068849528259654852505257378748861621403656588321290704717581046643212096237333089966560282026489155142470021446437211046076101128213452548122448619622827888631152300537552264925014934668784270781130079497064429570102960563290049006786002667282802791338719845748357782871248162339312513514910727661122389483367691041241194131475944964232892931604512686123515445924068332490954156852300615465294490412434177958101815075973584459001930562734034675533247088762474656750183923101170445702273565757803222528235874428936572775055338151001238899149772395356632286893604690140454176210611428311455912610582677852440661816517398737123975547661196933680691169464257125915115860151133024715067180839655635323656469792411662885341876578975660187594151087208572617393947830635524988248212436129480101631127448235965225122164000282228757906802826411371728879176373934669197568095282830885135631041650128802558852051102849652962342846997041346567512437159416144714498174727828633058724441144701716831723450321914396541088294646182075768401763231673305126424672139017401441570261735868353510991782413735019970722674163713633771431949305110491314421978210499813403793741542133599111675442233815632614476701827166205720433238504553783660012900159881858536224622794645968101187907753948082046345714738085404662665469972927863545327088390193870592864468896723326106931789924186174389865996426997418243845588334279691974499859310217062045850367197731591873299688480902684753364760035551156759428625699276243236436616436846164139475958540353749768108072453475148031569305601534892674736217629177965135149423965884040577296049132254477161680817820884489074464924250222900889941662742866717423693838653100631682550908557236850567148931888095127793346714787966754481430083486826621430058433269479892674027836704838283867105112912558042778227508122175242642857198235928413660678517881287396110231773290070541036540857339311175078483729299742032279974993959141225801368529957426791369804356744980777170103191773781102499445703988802754961134545057378947068092582253687174975024916276406339774864743219815834876440732237133884786378521400803061033712172818380963927228627888988666417743077275813974631182265208769205012601024899154407806264611897492360255482088290998728601219119966422123790290569225167360857839909371107421575333548706850768727201701303856088142822400900549261164586747341598489767857422855242251905018965533738082335490845795311276772488021559875279320528484708231416682241446801332126418398716593779593636818846762768471625482194736186013645531416937228226769554577593953061967557639203432677948095820682445361124780965354084111884325560650917691974713801589206214827432107941896783927850829576571061687859696749534163226201791741073224109675085490618780361835194043014107884962966184645132709115430431088018026660026758369628371592279745795927258122188080447225005089506688203122010600512326548206412389361877255540338722445405847651658438829556519732517596142356226132078208341660018547868214717266014845176851260379630413440034581993804270372199772003758640133808828249584682552089613864982729145965184199088282377575814586419389496425512890836736144665182641369527862041635528934170462074942867260806060033333898788061183160911002794119297028108643199811793999059218869631967326368230480695859018559842714174122552499185586210708506257971061379963161071082399660926694773958704822847089891422956498854864528079876145319192436438713397011358026701394894672074026967232514902602656530218338919063935623872628431477621601308397249803392730759576871950619296723408369327364348601375933592267466391107925069075687363573869969403120299576911986034878405952196410495521480220014886430241155107195879639565818674123129340060551342880275833256621423004935195983036872477659803067345417773979423800130055428188602863871535469476092352966075550673356623301822299646906783208310379079277747794116521568448069585422427868381389046094336717335170899528875111414947175717806300554953904710722292964416751714033754275954112774430394828869010393615321154819110021450132660681215742468638919654200319660832574355457812664616797251529570463754662216325577300737817154426616100970292983473361959655126325704605577760007272938164609481612668938532753967651795237744041932464908838514163598661346395602389654334965057836538390419869542747046057002575946764587747945491987341380255322331407611799177765311905903875777037816897768378800977801450629280517429928447949866457536165123904004979424115647114059709554658970464086909164090315587526149883657734677676002363188387350107300960422040829296751697812015466685030531868606370262515105841247106779926876915306815671779062236225150106446961250679182535447493191585411729856063058303020788143236788953222031411931851102537796363507900738439921414891063510033908359735322035063903103202471728845328580526637923951551580695716748655755031523705378637046728014597246252942926707197588819226105474922675228463226216598084988783288274330733777488545839384401575262272566130210547436135624154469984049831938822214245959127417893685295021960464608507056080091622485728913553098586842803351067229153592066268520347671438331480823925052688164672007689883871717005941066643571992011093298975290264189529697267717174955764034940851539820330984474227622163829549302568553604683458183872838706638327542821883177653904911840067476623880319088678431991863221776504784502154848317189617054205402393191291302607936675939749981648336620093155208310624389605554632136195845701694163132346376231086951899431075204328383579581822986794608874784284588255639330493677855223519942065017199319987898258061249549963824847372938520943081503077936137253660274294435158656601135741213240918674511447516623676391787136989050581563774533609970945354921928219120643888257235195070892456118511493813154072700051015275616349651737186761865577009648680985614445385053856475470267076681869176881623220941650174673355813607641376642258630254308550581641725931933844880979130420307324118695400465480483519349158266544151204436972279775535546437442026686008367511023433421253319925302420941178347269007760425814906950832028356463978322898821977102092415059212933122543388155417253027357392374490807718130147034039445068627652744792476922870760639562843727762870682970112122990601034299879157163498135817461975947777216221752355222495750024784434239976393047823804889369977423318084260017262297643510005289156531345926792303115372222052713892726798334530504117293249743942664472553973933835389658991551476454415927938022291645580078730163458440100538395468579354877581792448548854863465419110723839453134711052788031076116141653408462432857683290860304154924804196690744111235916920749843386464361666876349098540578649789603830051081676633221530539061809953821212323789837587181151327479003073720384970102309841940237660448513783489500984445115628440543273901867184930671940699347357617481100574983419061839474640208574884802006162554851113973858256148899834552838555830585439756070793543991657054555231478054361516502267949811660935581434036307120565162101338294902369644855884281048887300476498981656738764631083813975992687063577102454150377516858076291071946468835789315792331885648359817418229214879075022025965257415977761515521683818048020946910374645715257045395453981483805869125603001716386786778293772650881075221030490992190773080262048964214703659880156120704754049130740230642775932523709122451048747126197805125932848401662530884142492686395944947008292508368639750315147158324415273686379790545890894754254839350890214791667946534313225478810320071359592007095014545119836373793851375388445897954694578029575485081458412293668038430784082532271781644113860396995876080671449608889049983339343303054677532643368627333088176442065591323963874923932043001105122567885499986802536479715815143704362155113847119011747148893221957738097915552826423318435369792077262969240764009277683074106637172387341409167229276298577629703283916371609533960734336765531500034358414213242971981453266299358030774772094235460599876300064157826062988575841369210168432238283685398333322550510785717389963399978242624732525002555450349112311888827780313467031689092965037521093948871842163337455098760163672335780806717071714444240281431489374484394510252599537354656017747056748855261761622753647965724996284367920245311571314000899564568870160899088558038386759231748114380213184776335919380030760818439002802036914471084588237714544130507904722943612576126435030689510673700048306810875206494835330991499397423305560323755740659494867141057511538933144031498499194686930527631167466462991451365895878309662097147563412900522910016112480914561147036185532225316726501295252357008256756950520843836804531345174292494161131351009709575558127756741097507977950659556338151736761778674924185184750396843991363172942661772707776773695941382922875376522076899999532224897834158140488393876350877046977368716778967521724711168929898626506204909732756934591533856559397325001795576074096744803275624426892026364452567507025155496505496824870904315264949297181465938859331144774840624159236314974623601814746299011915014858351086863195248953879973301032053608477525169602513170054130582280720158151241315549854703824383294509448745769285297819216710968165211064264650424797909043617135554464256645111283769018115914744449560104742701349774223558665055413239268871069278081229566759670279402773961688907773845625331156839279286464363408696748359324102031762163108969164774255147779621044738616135406634249182587397416000205744264705879230061245676043027963076485957591405240441779800223876828966486050910893712220622204627367924940111539640687984882484281891262440571521402664221055649650959439716580909782707992063782893133882357228480765936757462891685600951903776873843138482131076684522721752926502806827837205525904567722728501544919446464361642422673920054494054997710226782289832377677735640850583268125582139904335919886668860274816415423509527698702668748338187586495927833654060578307000992779452410655201110466833726676551946781226158971228356664769463664317570030655768331420849341557075746027462300970444454729580105333320983664803659677996608071547969588254894782172428812860580708936199321287063658371811786682524550201577198320290715221761629680142943817765310719789568449085571128938232910840650624190041044324932803224340801253301697564121285839026182396995711471018480722770124603601465925431201961960602994625701896594167788566049395406310208291635793186681856262407768106725729842135383865119995550373027393079242313021339790306929491305930155569274216206277243796471952320818415296026095843739996445943272681032398691928459488048023483106779775240735896795497318820716790190211715788526271511928138191850041231508806358336767730569602915147619861686409318947375214546020360812006904636068942674249091889123263309203557027922928674384384481797657503104126909577471903158399836636515509851265431950484968417769836886941038386568736002615919473214559474649278491653949101108207731686804884207752826196286467309699173489918033316935387291641454737721739058809701636312500763754639276509475329173547455890874495146114689777020551430614172833218721633008017229710165132682233018157918024665588120031143215558836545720105991136840739641728126612108016055122976546004777350129772356466450412387654634620921689893211669552971264920653618431638089254614527787692216013137390087949017832869723121286180623941972640996369343996342228113089561729531884864183615001003216009427026875766517365703647565952189209158618511146846714025341417356925355355709445146920197485010776112297300359939778814387555111654642220093693775385257365099908241140777711939011905883513930950240465952291831899012490384747012293749147300697649740592418182818805145923260132537413647941531172984907309398320816573682552583018739293478812344356437630189431372718870205435003177672502953288956600981015993976250738341009003200938656117558762067415437553003368422303068683845689042120440179193247210760318766020170851940328425661900072005613507872332153114467824751527276203067011614622232903671525546517344597808251902018509876970188073791037344556590583265170028197673029890613778123283892571952590294040493230217246408909213561586877902315135732467675390592267044753424117561220726049422711435272683583646519549500339051867546693558801417125581158098866526902620139146382338355962410035772469785191069824228196686409980318462988015988612924232021379055932045165580090754323883196649919841621021861962549928471970303080208079697700029077601769092960029002022774677249755741225817996654836716216578707612282190689056791550626142749167317039112085765803025629507158977122129158471180139466407502496286245457911313048947416551091256713371445131090183256903453877389458167411602060577989340872198603385262829126608874984471334019131222438997798923408543107862378342576477225800537315376294444613401741122166969111256789972066722958749077385722440561691276466870547522840741548045119744914242768217787402066351206593158458901735751111800594021978316901943747926695235790772431179151256031303700239531693776912298296816631746730445347068846599272134857057561082642022648760665284723604431215427363029646450456681120872382751168753659840097056948045967314852627493239253035625703082188125995820032166968841082232307748637409293022027408499080408237972830649502896597483463818755297862931873250760551658885110842082139534213209693669703955047164730129950876422071956786278437623291921491514018453699231231317031372684026151588835100277347582848157513378095236440125500644841042513520112387592194458966780122398566550571330876699574237990638302327971448352630338016141725264925084293642164298629095674252757052849323684730026358154412790482046073703595816268105845205600131178371062049923259555072324778281629595238684039440951000882054850976073029928082344231478684194766387274856381000106549343360762953667965549278048623411592432711074026349318029641149053462264492634838323302050057189530682780927495700960728650409673496538149629876957248738672644608096208187421991005840417988904151363974951954135009213724504181822664153174421183343251688939608319087681579448542625948025261863143556971044364218985824144112483950206873547453261754895610589291367462190684625314185145584531949899235689413298188463419453544548289438542717443129732809778841979895418302612551240732951473485706018758893725386667961207385116690838154806314493593235017202159441267064673985957105991421851475411874343028530405809944012614121576028968850936182281491521311277056331955068568061128168594973476819483439252706080586364880189445714246570483308838478479574194165170312953288306975024749041800383546829533224565927575656034659493772840402447535457782227463933843457318814747705556935152421453682215397215767305714562722580191016070840659394567957141157285875720912450972394504058654382882446548229006419674974390591902573705130062264794669541892772085474938002971787981183585148908555390910626940039062067541512008449962242769656571183009906574326396780359277409064227558692578719666922116191858366106829180614800443292379785092610277694079950893090615675150163981475558044507997154823841020498254462418440254103685541221006628059310062653044174830815272209021610439117728890225775978318233725183737309250981676671163911284952579145355636977265092560190517743788073748150113043184780129914257725460393598446030936867546397945394479036515014125083519300153837388360726818731933684208764663889680151293509760750398729732057640056746507521658651713139093267904340604654574454311821924865692475027594678579092484074864587159668151856800568064544126093957770572404696548013999146448084096031987238239584468898396069681505815088463238190146202080521064361952380771849088649241965594911498695565045077244934968405282611142145177100466675050738121875086027133584689461677937077128742296631708237676520747228556381187200968915530665582654736864381132516202584300369811911534968853732318494128605365659104154305524962348669799777453491541957814199087287949016004354988704283563292995862706653880789876943542635450313436883937134561352702878041585094125657927855488902918386053956357095770341849337195264594109712350637366625173018191833732580570568522039828098547970402141596011111234476638049602636554804800800961926903604581889027422824188441536909656358118872214208043238186410045760094722897598802647832291656315461803564632670041326858816350089739855188220996528840020633347946273943399784799333605330435076043445038593475684639990757667155828974983917994227367417031286959385330500308433403196759718481497584512050726931639181020731926427107509360799228182777080638978577938866980613590278871589557302132353755614701563355848079492680085423247581728219449268041264189334475490570864406747260468871501199013912781819722698119934274408131025919204658365007419442099218075579651529621491870744211846172606545266301266201449851853370112016507392577259448341660224525121135429678428621824326083252659561457308043928854083193281391381091894298657109250253613287997785000272587506342578444684222767541787219533250679562971099353244409604407593666894239101994401112548907606982295298202291951979320698695708766214909896320632893502115742380902035420244741269876134890194268807860042606549859402761573448671779450538854921983221986378348484031207396401089665270557188379384824154745786003900336991035638919650234371263817760397042356482606660633231540025246612868180736723243038802744365857177002121811673036308527883447367384117836558532453822063438750002731429686624025888289051601001999956869125796041077369270825445406824331392085838540464824931483484180678686834396237562735581752197071728313860344563892247402007018015320512812109253221693948054966076290456495255546792581951476780014867664029752622258541606817662851577077644438977293115293289905173140519031836875346565693600161801409369999541157387802126308383246145201504443496335963445979430007586710369366490783212669801743528130124880950825123245613705686705807435644453198098437004244568777935784086238015826744392994093028543898917868896065573313908858504370008859825418219209735486795096450830569876947304539655082354086797253850736667746033454004239125309370534224463594917834400955426588382174371123152096837365677931065311108080604180904162900392065566094049797358691681805955792396231404973447972018039350422617211430175355581279242794870773848092916387593801493968973561231555985733835750920978632510782787580150251360061341418578962999180216656567776826703622922465813273786859290292100870986116003242585095372743523574140147387160539809239318073099120611389876109394092472325363077996290564463440819603755479504397636960527820736746527726273626304747173959649333684729282778537198137861081896030470965994462776685609306971325210184693189494925384235110310556305344852469607246181657218186045723741684780790089354038942290372508545872810086420668950415630762569252820214675197738017483825435509113105463048716988684377078427630289003794882662996420583917467608582108390481210517717634585337737580734880149345902763371707878377723594965785686095930131051000049773448466237364112445602720822966808574456876626886260109486017188985529177747002092176916830123524679956569687375842295723265759116683187742289443627375294857932567111326545498903901732784784837912681506497979324527563497195850549389922206401031845462502953423955845376616259699618551829549439051654997155543184213471136701650264592501308220216771635253557826515386663002622289616327641326719076602775224034057784998762382645255841399745053786092991595415033754116183223106319807892802019906779117041150430059839831693782358001785268190597053765323299996169004064647865342767587967281762830050847127212346516892481043908974801107965948795388380713027940874673108365336040689119668645758105932510041320027290244252469596072925049269591470144352864953494127189687418367699714467011674923023591388542557910290417289340753833627914449673668401113278837630195488101168706310168836172266045042280987305514972405842562124969342760664765098328216722661560205074310336662581172853590223858729789960852614542141217824651840485760106292772824801725377428975783132462604740086172794658990420714208922143300739934407325080077853101663563131731290075779168245850517755070116353185379099413446654074158423624949515253734113571533293947074444977671497411860419760416397435448315855434285714961499110519796306705252219687748552312013826204536329369972919340170166586841226528078570272623635270509245583945578883215769534432223189033047235057522606708735284907730017374293404182671609637694246635108765266171677429804772820527767533966770003269154697952605862708301978055909693713158946178729506778923017289340921429745280895882407370916344549080341386374396640929271556237374371430216811356062846823301894074567960175578579291856021278304309980605405423581593181534531396171689936927940026012320462537322229720768662666144378004869004615400747414170608519416541236979269877081579134842781237870962249883258925247921232839670462905482858571155648822416475734784158585772400266475106055970425062303552008531643855585281553246860799215481458750607437609096057428058589075828111622478395792754804856557845039842117597792355685545918990841748046180713230572114395814907023182455115186591385696034213938870555057101086650273676011436059175706053715850281892491692427851531165468318369374872016930032742419857240139652558849415198165129638026385347652630575880488061575403925991725531205442022072450488460432137068147407273264634275307322062940486800416398661060207481896209329751870945744661908459367750910140735049942762195804636901444476184788785447057877121843480004247461969683888497403291200596898812674867345987851290580410053205999063043375197524909318271856487767736811410158004897323977853168470408517298820524369349707421595407094049089321499251542558000620815163145812434965938700612475941745738326098069129994961658316714341850452643842063752905015353566986478984494097214588839408331795917634878741974520217221719216530619365858155391835872261243549814534377399896649516803965062009309040446808427955148000071386303891638696503829378447861906202290102879776084770074306666781776810713678950910303359110534864845321363585697695967409487732941823992841910788690022000766230564166457784721558962338858615852386490159059865597138852554607725174499825398598551658471804312140743474820963380662845808525042831100681341102923426446482647825255426337089691593785152687533978853967379744809016850809297144958372926188756127767473887380018648162734386418855325857896343032401784023303672553578397606763629904204380000573757357960466941116051237272189745652473292644318257550848088249082911911570270902233573392252285480624580718683297970503013466960863515307411221845775368318604990788993910266425762707996554249599901528048256667591110445286848379742044693386293033059288371357513344290939673625096936866166338306799270127451037040131233433222966983264291370650064202968907280822250514956471157284994730594169099523249716187140645976251181580458987477496093948785077273997650066893150839414279710378263498478000776571476406697650973042569793846357701357908418590923108334503037989106356161113561216336296729530073934993161618169202995421717708497038648352115564760908621393914816943262815730617984274341986512144745723807778896562377694392205307355677626546684325637127342282648868198078351575947912603605903689663653002404805542670746844696700168829274764136056182282645270895410020813225883809780249208115571518572861461986500691998552410232675585592984122913882192042781095174106280451956825921606192123774580112168439688502489501212059396893965190922088432428267966156797164973603844643259577707404149498757663898843380312292346060970332100043404538822806619671681306571126233081507765426468569458089770622856223961406806669144169919564171617387987130550210386505033201900931473582654396221172560823493843917659401559696425163820261574494605217220228111060406678859674591221034229225333334440251629062732061112605506407159350750693364464649046818744413313757204966566081798836134027846559714942030847546256047637260556013606394091431143930070438033837186397575794346068180408342416997491343499593179316883699181214301439144608328898012382602388492609178119421293806153089926976265399803824289113460288492683058333608922521663360583054713392572804994474999578929798166359797197060923347651599976178808190671237585055650421643722157896832857228560258893480106035031070623844156895639018147743222654337710948963154903957743501830734129250434312019248246898015949547372649204675121117714843782017346985825316011594790646693303440136899379788227896479007115399211994195454049770863441882982371228501140265496277073043170972877104724185438608465234500031903570508628603151460007858487557403582918978548314447553760500581942255921582384300943474234559934539560662026276428796781101927381218607107207496206523873696529862265637135789716392448584131343966242445352510889283510733452255679849617050984789769433303331593966021574550939028287366992133252778427835698829295843620848859642017993818321056390432055454048739799408670411305941676579125745927253306217668021669718967901705989507384632887139928379305841492165286410784818011847039908220022033329506513638961787665906991672062916052408934503884312878827493138962262432768901614445230514152525953388661415373426491549908609118166857981917554837011362633547144801503542905133297344168973569005569540868660454895923099590598939853838116970983274412988739610896650945201401332087846092828989150072765788610517164346861619967050129031853126608870788406610934202973597294175665248326648551596030375040822775621163911551100824327326786982980788779819203137586785493261124111018372591746038066000323215837804535369796159141446792503131766974048801496739247486069195285675502028641987902716558764964122557510062222806301193117243552592400383684521126104903979644892016726644806764217844149012115722234468526214229313126547628982507894075810935564710221132390797812127764579068851276140211003358530216088872566911189318438334913931248393601877621232278343941399552939419969534846828190926374516544395824784180097189089599537476732323445666441928591884899410241295127433015517247834949475593395057942123126074682097841684187036885352208271087587404611482918885870151847075489358434056320087449233929224247181703240964089859907980567235761125623751695051810801151884378409133435241135663499907386883694167590816205926820703319735424189040859111036119747499364886286288366699210395260713989501321288009898170545950839308509200915219250189931431362952780040390194529960838240953312593851856758314230770763195641759967686533495866228172809859325249303637646013951520341299959320092221357486785521377384525221942426952549499866141877580347164793003758128261104817160860459681069919128828059535365672860065613677808271364037303810456854117985254310203298138402413607931417355889651698120088160637855772852755846452529487556162187473826104274419314984111038140382297105880438151796730230236273378349028561860988716817745099594663799634193723249412552527216326513930805699294639088304867028908742054803655412319529932091708422871928770626420974706992253421066845699243703201063390937332024999296419652683360893549461637973992173741072158061181417642931512003709420599203298282613180953813224394249349427004591504433810202605646368227290345825646409721959064495323981642030066872326213961558992448924500450011269351735206684154735247713474698688313530326116275837454659520790701630679177784407219416911076128392833002854239115528063525552612024640350591896265741949585012509210735594968303710442906515971291893942121884783635229236672093234788715712048759684245453440158454709935348508064654525029233707444590307150921550443353025020540482784779320928866793890524323952923797652700230523689164953918171329036307583390248707321551505727981711345880952267619690019098020760266166387600139838283215728301241893133820365445859676667305089946997968289585053324559926695645914016865417085391795912963914875626124330791211145702047061408455219214409295612188365296007110689023414657040960404112935518770738653335865723553334546388324724174650513202792793974945691294635514372734328778805970451702127264151092185199786336486790504645497873908908566122384676362326823394213306498262227187925183080698221249562400958404284618059208135270201239215633707982746005873181473301228577346171742981298513568698055381382544021049057480539661899612968593138482736635015245894646230427964281570670193556061826645282324092722196490491839791679542466635555524637833389727949786570005343891898754106414882718275399824896143871672329077162823602141366615632340763013319425164843353730232144066680498860831762255002945124636287686196025054420666625561320053528030171990738493601453948915560826786674274378230145911566863381845720815135266485592001380418815005425271003012704094979129605055751426507183571764811551261665181037660717178392196990354492483793953840744742563583087295063389881409815346617865591716375451322016559810491067534779246584860986892014427779592504021904303020039772159824749229788697510869258200004213283090522812948119032287529292788829718146895389909438567875275672905734037576383762960198431918815813231911987785702707045386319272615813004865311095113270097831194886864016073838479760466111769185049883546780294047661494241006891205474064635359764609316503884685198828368933876280032173210744737829527187193076803344836576174384238146769225902581286935291759088543286331728042349422294456570709395803921551984032372580873155889023890925440848550635690715755813696583018733162889907873246035389961170210550060814219084664656263462097324987343842650401502855671981759650147376487516672927311440457001869881601079831731107871062365872076821510244542952846496286917424103472266654230056769090611107961636138773630324768096790937710888621070239992295880178410418909554241342150895688610895325846491644324985787168304310544785188517721992999563113265716872757417554715860412388132957216492332294725920514866382270611569712247559002991867319553176444993213585421151457965246558960293718197665212429608165111552484159633921615563813795556947473671593660788401348078431346307953342219764715443441021270984249033336745373580064447941402736840018262862687866248129910600270324660034678464125473009988433608107609740651505220376120742272042336702234810521346693445708129605949325745098432095855902770715527111784044879386969789970467416301442188376649656760037411547138249639717791079374020551768088320223385671589904672802011606569942609256504028008372623748153135197743207207111608405496550634462584355066374966296233768851391419453179711293019296795980172458935552208614506346616965704789469653503627130660073158035251859179486650959536991272355267694395942310654026310048448257896203058831427829564079592458643499261493762515121696203805256478026913512070002109780789020341228567783512978320724207713873644940970457600842316207853512016975548424138728516255361960827365940613224449158065375282256869094817344165463499563613588320755844976256412415596289761595277518931469896579183291542114276953306740671040805685017568467589194681336424327800455998003420215361386255887138402497621032506163870820180709922925180832037115360095616934377741409447532522471828941655191251789736912955185940287266260212714307844461757546450054351153606722011211339752042389653553037617719596026746867114407384643135871363758712863461988216744911827522328061401508215586648744183251911818102878547981785625508777374645372416192060360906025993095941834344260996967759965659758728391302694929320233297795951370203145834275797926636555113799060474420826015251540210467147151420259557955967540734570382497192763039185192592183875144168245798749155876395072871258308393819923938373352051290700963141342479304061525071791481754622110027941853193254447857354267318648851294340442966291965408045507060013076358007984491663847481652479356508748317022853444321311936714216616174420119174223680953305984505248806749458675453572773109114536672847480272449131385679746938979124004448808252852888649450367033392892283453257299767145814436048474496512562477226911205550675664121574808882637423873583275009338043391934889817198813597268714208704974309396617546388716501898269162722188494278854322469865722248698529502167399028407434757603470280233418318768572188924432227443192072170403720008271027156661632365769597507330112017789117187218071536627031716280322365989127713441570424922686699623632541793040304126431452300090822041857023517918614119028284709367971206484479841001742613033209033838633325090081927403004278539871001214783292740051123073759715508142673595256386672584447393299562469257218924964198438183551175774213396938546133656186653954800072437999605978342620412048198504705987572379165319280272892797149655678609350796537213840335696484515410751934638273974506157685461110389220919904497404655000880181730186666070094972449962082983876324245572623290726688591513990077030528329491007957813558242520707490372417111407414580811355826137617609485638302504669969155606662712198377694277679396697165302172596526223152287413704251865919739088297319196437493827478058229066672416656505689705696880553867790855796004224141402435837234446556205876220186890893682316333549831111968432171664950865324873598233321056285526335478844228909343049856732193000664054956621022373999802480235126277177171774000786858276592660309201327711119733047604999115120602259131253125412006870055872359981797619391848583169229719696857778748649815606972859157053427613813008047583301488484891754516409961756376032952351761900716128654933382466872034662080957944886498607993045988105558610998457537185804394005197416500208004286831935130276327610764035930037255528647125183630554287591976550749842885325849876118146333755857594213383808159021537344956990999237029466479576427439557064449742355027860253717528778002914436575978127168851686528745533861400976699377498919533124319770913428799521131468324033437204244288733374282549971869603270154063654050459258637201938736260344746259981668935416496753357326520094469705609327756069291749911432883779129347248665999211112889111309120062629663238651059677147999608224637019340220950817259330290327643568171705747407532775340062591539742873114036012904165329789789763086907137090414633508505426882992751105241406271723741457564603962468465336330531645841611937467859080844078250761462061092432794933133200450947641978501661184368986962952884064831124115026103221384241712650618603394092722429942215301778163941019703723717397623678110825974387065643969264290346925268601292203193533427926738124449689036339034014647976478307471726644406137049347996817173639333743594708364609791223039015640572200611038119228462900268957690571572042173692700727173881232907126296326696831637446622588244814466963825867522159165537530215647011500315201692657750847937245068364616984490565307816162186701870296799534476387817780989961787238556541929203612496568180153597331082108068283323594284435066647201867402369449626454370115622244011390146431284019290841211421814927714805625241455561312212675872169697058360073262930142041160234339559733441245771764045436879941494881273832478270505954031526594611019667364111579627036516136229397468286495304838924904950717353383647023223435799596790082180465290040677196051905491751195855546958975747611676397876422674073945735337061182504098366971841659739325406741477996162498480162547298917774958697075869783654484875831774607482971356115315571985541593632869372770943583351049169567081461232173084836790860659158824011589860089689088710562832202224332228972870109353036822901893243842607726508570909827335862117063621788942431759944491356230367301151106295663046624846235049600620476115149985257022774069498351225022844982411555781924475596211326818057955401386013840794972102506516282896742193287362679480928043302503854406892188743359042883882302787459412763695238779672884872555846500156787264995759968563750276044379278820612561244276405010147787426490286618551664967587639392492655980007985805252800189454494038450773889186605414935858065395898973127885041101715747337388931455590213360307133576635807462774757602383813534395574404496547336693256098394290990349326052299438074325157963161218771846233226174747494142766463861479880706881914557457185842140675360767758775162143714480069245744137900017762663637414192088545357640512703650532344706962556668981242104706864536934354861633647897841217224754304305209138869356432522760224961156158156928457063024974522461548485680884462138977896452584594379732636915967605970690805487765655280843313124400103665316646621156676339437507033275627258686572984601587930532944459361095231003756655454972562433566156954910798368237738526259381723437645892246866878100565044310907856244186735414915926206104613347111744570955459982529889250672801582067131809610234929636217694106373223466848593617481284257545278441817229598516542370631607509563990008392698803752515125451305122747671449049615759410358139659540372679920918015214229437808160862676221482092355943721481993166155735435831797758522021626836164637718208069011536914055795224033811972596110574589109453001939677295405168183010537689196396759002167008239369995825665418907428571642832516444956413027494030903444091443964575957287526933462584352407291455701655001070165206340570190422007981523994302783329511777102717766468360547800849428819136880847411134557101347569664446037580706568003774703785496326109864786127323883232542561853956765401980198871499170826580852376005914819684446549473122968715870799051644941865411879552921008553887780327020996381780771948500828301685605325390930444913068982569060854483504632767251525939662435785752457617979724182627575167191096545868154057887798900095151442857360642722389242208815696678763603533241215480648400813314067253826805705361987710292151698161249363316817350071976267850762706100002721553269228908115442974106798385681963582855286539762061445218988751612434722135031925313649347748000963317058107677300974481995948390180374608595009011275314152438017560003088041550759764055503971434801245638112069663264341230083240108175591903950493718540672772619327896239598390087169269444862041313410943547367936666853757166628800201277116806752502289309543525401406818278166806635433569500163490420262524915363317735869104694179539573402959076188154779988178966528993282610997484645392851566736133908894733187273637929300484931028119263490347799658394382708095262164203804851650296419855387955614115591889877197713726660423325295729930373369715028867835785314336807458391674535583258417789676407488994543717389578096605696431830334429199388632119683445434483021713184029477389420644737183407006784979316896920626739365473958603424092859729730130964933293574270453824943186985589296580711188819318169641411842972331066526353677895200077879075417374668525211226532963656709516477740319461231574440552224430217417263439381366392914789398292004155047323729840181162495762816361456927116507820144772700109515644609515237395885674338204832284833720539894187921121741413098309854229120316139341024648695876624964530994026455172642150452365372115834864922090248664313999460646148256002394983262946564163245727032392247668460683542721651192817900694535481361593390498953936790265364757422858069676697812587393984940696102601638246562752406218267787245658577292950514250754804941245683023585323941592860268700819595582806375257040735054515190965547177794643144836046848230081516940058910515391047725804613781356116380766578683951186807962825535726656977008539581196946265164873830800461775599133139709891352916970930759491813517635500408339266997626786524734724854994402896421004721640723530416755068900069039912686986505861272004734095567114725611496611543322147505259662166451101347434701656757702414181186313741155396462317662037901185833019931263620410842185184483449715300007696860696399671243931446045549754530539138832022059996943487202361648029951170788812495866319574260390059174400817515031635952931506660371380872158709318979906638590083864939582323369213942777155271594689064817310044880223438205262895629557299133003614624078559375365252153000599880221713640182687495676381441756476319252259674420743936028477716684415266136914466427022993627803385544829983861621850953746947037821537282525549563379465496483171401775585235213654744314529824949401056430573599430430886415178018975922107378823530135385910965639043539179056194303867312248728149563668694195279333003105074982273544089915838010419536126061163130418336744004791930226863604996865207444466026611905472506381657976464197161479647225515475555666951601761478323136150635702219558247146955367341725781641835629432528265808979227612981155031679886749778248809426373780932288273694510527997978823708609107345064872233836996332974911063334873165081248541102665851713588164194418310762027468529512827102350873195773407333565347530055658882680979663181612432725992201871118843507536710755680657248139048291606935085453737708165881605826200075264062067059087386804330055934019428615310219295136097913205074489969630235704901499003741453601279722050991402872631899300407203035361602230566251733654808168513657354519714506077747785527929565929104318367848184851538775348819715194913603091401400474996021480876325578892812355964643652746852180972887270209946306293724894858078701541957551611156003774729203783705539710677759398932761721258361547052893889095802265791925834151917966873414613506915125052238932409248154732721067750842117704253343348459069913580826584460239450213673726239055133310521860463922924576712138819741276922268054766030274362547500907112659126608224920680262363248265225341975753587049351373586125011583768455479788757733143426310534423163314650747354091155339019651245389925530555563115459192026471678754896662399014697783006953522527953715407545751349946005894476961728863852792873258273158094484168521683278691538712258925987235323291249240383146777389889088946028509344552364576089746468538038351366357931255039301242190272939383783972845544948872611992427681244020381131963386784781570188854370472908199336857162898069077593790451085370912264466539337787466488203719460685926677199149584472001226633799624249006922413770354602834822027487617676223646724314027744815788550465744288321737554771983684072135073600969341159285514351475947487221967624626473955878846340480931993783064942605272333944670098398416906890592975315384409261974320429165974131473395745123661044746274568386345338777538750591738031253622289417129307344268104593156292409191851267213899284636332226875094826996750477220981818505472170996105648650310839117752208076375636207793862879156100474602480270431551147392548479091468154102907969425374286486650069274995572092891756660479946792341928580574665187856005180214293584191931217835837253006451500679094001095653860932367328222434847357209238916866092879916187160024797584338536008705209729830837075112516392043880015743489199760523310761139363574034976396568859806189992446530455049240374573263506784824951140393903088709504253156206965526880782594901767149768335010247227491705691258888158488297314155379994125635741571820150358817371298430758306061489713437720102645005387851604359145952797842819160745174672758090864663867564304047290097709308526257457896788861457387865449996759027328604403454688413881930419211093311020424107389917402925921048265880078148708053662637149721323761889024329582120447132278083603946622436457638782960993592710719206324417523128117562045528492847295155225119783800631047093684655053015470125691361203399843377922945321045921603995640586323055853614893349941502225684655775305792679136066466418507926090099987276359876531393296311696263754558255481344932298509253627335728551546814618935082271763739090493681047372027043773878308628834582019626184587111364685393004313433239013681390283892367345417981802669927932372201553697958035132055434963625785685148470348522074125286660451100642287253770477095866620422985054146020664275922120206253295682840588001684465208161859983052285420532261313637560066127887815443930803571473770640440667036495730136453863913895994765783412696464056863174544716117483208417801782404687863414496211866048931557499087111748516835040811801799160167188243922304058016435307334426562441438171269455479257333322832209182790360706368938354730367043508873645370668582579907550091453519046723399478224828986017328583577142433578884033751974869278655770114895554068306301498034980171936535140797185467911205050089237070772647192757931867405149676677636588142684467982675163937836871356872388327531124325137612012120159311162217028450638365606700966871505576356303182862266380554098099876648288057554905515783057268421045000415559450795704905829698946661470930664644464207522437136454979688074148636750715521903751241945887869135114801753148130170860575526551440212841002048535421272063171434848289443499536677312044695609352754618719628645891619832170835888906501269631747283115248841785856568770931472859023502132093346551688312320394627305652833026020823534900207552521992197776901665956124755575491808533140167797239975667166769319557709595352961096223088388489234396037678423873186563360018253356597005389686738436781205392721420579130154816283911442925463745241519056330935996839379930941127064211963318955743771355356483631691021527510149320237888705396564147991453055905563513435173662175935706160009114857094281814330350294394732191437285724517489072232923888708874277354053606818106255314333460636828104012591810718232401563922900412129005709994543576589694339799704584646006112448353140851424677113576318008524736442031883500044582486328134146706789111568633197265194109851208983537745797336820634650288839331079379532239990485797690737651940650141089972126536231474947353899983097336817372188658182131354348291111283244581437934489252363754240094923678086349534570336418679876682437032758065652944919801050887968954282843443619655676617386943052857486620452675785063193699025497945826081828946976978479378880347428965615318368589877897347907778256021203649530485682016725248027848417596068053122947920688318239796460207639143664060339341796330528653831370241935099186324773682241758590222726311745536897006626816969108672187172223739948378014369910353503464581809626866760761228988784495441623058334631248109369370104232230408133774212907508438645686820098562241310595644153097277701812015790049224001366637427507140937983493174338405953260983395819908506478927869782525021412801733989397534706228229905957592125014279918256406516055204335349938727406229820367641544177257321549012683474395333728729040845218363450894590812466268483916650368883856150195507568059939353155993478777736844641708820005971160917219021613606603233849801490398042117928875683713100038713025857210584021481670104984001774474988044492822260306569840998554865538863271847710780847467697191700747511526424341209223997266209494840727727270280619676780788552486867255963812510417749018496270161422823418832364846221782478491287861035675364896402763337200092330493352374276171452156803570070054417144159058388163855756750126115769480340091075693879810602008277344820681363791329285239758596268706361220828904800052941273767598194302797654522094172539674240155473936583570515938596594498410677242727679678219273886140873687226227655000307750614885366836374176443490829894970874925661725154722561376541551805184252790317667019777677907434793995503017208897736233470677231772278202368056400952841893949061095702184787744550671245187002284145561312499541542449384119672193601643680421120486985478928395480879346946721007999181277928501633782647413762494682383469560641356101536592491874986922953083980554662705726693569865253143566476343919493460004889852689273458482599311564326364460184022331946748936741770214312850500351350862460350274457606831057627724268102099304502438635281671524000377555180000127124896327903202672542820427751304058354899106910253486285093373863681461540962185448315145952373559788068331606006859388559495371755709460290278499804894975168488805415217522837209193642665829153626641530265577122401346919458680479618041947523652517455044941367452021208624064698011444121532878448223568332106466091606662461332627770883066482824830960218821561481017849185705209715093530585533275260767949877579788890673542576358363505530513416176442113816282261875902125964102119824809451146569104211317306399781495924436783992159661697318896503118358482878956038545652362879532233459910511867649392775436437080472295483121571956703902263884490914827619013536167655901077061258807383019875636167794930878466790475492330158250660551898540594605363654078463309270361257916878749941964919395977768712117157385358527945177269805747879317503426914429511001619760596631361197959376341008870035822000415394757981548151410681219173226230751333390314530826206179155802295832170761662640760195289667235823997062906112495216223652668169485202920248080662804686316371973710384308315693537343275315751283479467130992854406570736072246147758874357654400662164512989395355425830598380756928736153987196272244302482634069599648377353378523162622573477112405071108014851546840412578499658035846211357043041471232667446701622047867298991521599168209015022557703912087203762330194189189230663717339389974473866501492578186539977238358895072425137711013108230187102253728736947911100617167955856794487444802074664612099840340854721271477658502024523429282549700178149743599967194907730515826348047854101211342933358402335989362236257265847109642666031056390439798328507325090214810657903463425778370088374230232367243580731732816654107378661324985038726940623910418733502336283810253057026016418747373896044801229705570300861411115240731798549569349282281310581487484415593621272737037373505811647424547299320056822269203400593751986828939746283975616757173969064632618893366476271238100425710473071756721680024105222184015430624485693375920640920805947865763095663141371876439064314392315082738206712725606725550208087686746351224707726594863155966665070782271806166908123031305614666067000712309910921528295917926387930373596533214832741116527218648568881395108767534970520900759914126120313983556532614330425982465803145044284005013779102275346546382557280145439273754570200664055048322851392563205604791063667469839870588105672667331559607474016234322728596271408239688793963871218175249739108589484520844176742767072578329634740062448508539888207791313122520163349606983273047647382564285248527288020240021462550169674819167669457554578098911034640121491745310568124652259661249271545725474236988743885472294035165634963221385016085533559021871371690404948574164002945981765148555149121552135297760949342702281324671268935001588208145241155857957416609277473135215578047545070703213994141309864833417566601681328983408923572683529622028208204518051664194418916999626360624415615651219296385856440367453731574341211404500622850387007630626882128526870367546173279012718637738740109575347410329416797570800375495204939918957017671093404988854127164569324589200892533737836708730838835364596150632068331059555701343628025549444133291033628976630716315489867872178213607828474384319402959621471154798675467624032708341693983072532780090435722204922944167827428102979887905891096353142230020161339828331678572711392411620099590318077550686219743853459908428031038856658794327958662359039066215654402756842804653515091178133233825003285284144511248363296174497813743022929316164980958321191093215084744604444175509277183688941657734319429527503610628024963043003743836830327746807890035139283942563298683983757294912962656309620157657124169894385967762593183220815680846478061845476823178599492171954978100841278082172233564420377046264537291282516213644972292402284929748346859411449296473929353222648879172472235332136013300204422135423601504453060135195365738439656186359186974553795891240434279291246916912073796308666105303535329706148408113767590094079089513099026155412518193467650776455868362270911343075160125614209069807523771025766135342397333896918802831762386783796136186263832079833435682598949819259541062031374137821693026805866583667823782636758563634251206512062447848470244434727283150597991680696267284999086129002956809185825278192777594044573135383074498003207770025315857513895930669118638201375329503789283465662051801509702443752797694063594465407778927165291453470019993330966168007431534496485469077312933728239376640202184846761237420186617240528259791261654849417699412287066125818231502770537600638554624298645816277631807700327068295029287229976989242691441829029287020339011029188031432619855515356540554669528086392971058389612395289213171105736439587631584909061477192064182885173474187547221141749373286167340151713189717527555091964564440553750135039111298063547835265627893644112196269787700466903220608485140042518564424987702979087006188881260369234176357906984171538004262379802450736042106226087766833636591738684253446363093035488929076675325482897706578211174021370114070506402758367557858811571005195632610071069514341068401219923764355206883874217725655808217259525817774336192830341105850860634075811657768264936397828917760983804430211608114882429702352363238250895186142954777851712490704399962862617096477199674815853970371120719340382425214297233928615129591866702454216919448671688600104548027452120589384667933727125801286351093382173694030644796178926702790320553465589937974744266240006531811802033081989118801431929856332646236751699734796136183980004869525545864121727292061197168763690704996266912152221447468707881327296587961611483528783681970966415430776515293113951914274995646404206129840278162691656368832374735449465403282065965204055806749618728539057903568196656186262486580578041643828400572832935039304320197703048969182588618191234384507368926155913384332696797414834092623831525440906905251786102186508699435021042003161962590897188918411301004126214779727300946350789539162366948736077683420980133712093996699795458364000978768540183497732654808911855926944291840901141228894170633776616664134693756516509928353804628374416917383033384920601599088451526698371438362207539649198679469364174371575623716844520125703035532469336462768128566090513893100880658219182693214120762055972769865129801787055964070712540892576814728628454005461430363392452326499600625998522565602761943346421913403882303275159541382093454205089485190693909346171477979788647134659923699511507233597054346687813619068708700508265789556893353597480268908459829450743720984288818084357071998405284336592562438570657781426705686468740779873638785939242731337008894122312070018478133816744071341941807326838067289734741210726983585127872015121638056967881952108655623632032895281799815131126551720199411877969509670472988163828990432037018671287502639858219297442904465120403582731239650561598319822211606383415424946821082800354475313138744138478415034343846314160526430443018858035537664994262732323819920688896078180866673963236930548715748723672148313162293716501959469713016726169459596165645812672657841277818790946136984242946110545970273581346697759589265677261088394365886653428426488435199157771303478979118529484940330042620932803351104822932860566990306696337470820486648267244921474686461244631097694898549790318538281860879371622028208038260293519778763553748400256988687189866639570860116741095228107783892054278449499202303820883039504632981231719361768783555794512175054248918741496539395880761056934746754297584008635847687976050573831268456124126875382171115319567917039772677531928804458615167641041083382394590565205829202156103259130851028244952141059992688109813152046202022989958063435165048546089662586555132473410294353783072671164203031337779397427787506049379167596066397851496336250368929526142384716642634523580757763831104757350214431758585850223387892359694530509646171071188137845469547578500119831266799511002614606321989399947559072874263311180017982022518454702710071997468364930771134185205024493508139366029241727489150268903617380295367697279251947121581193733956522415985086367499502528881120621621935492454453404077445959458339381887468901847749261770105511084029534451492681071936200058655577815822736542314739007048683412289151511215256775386435936109274881172347810975008279480728198743995134756688247838284418134193466285364803568143759752569066355972666221409097000267055426419293975952828269513056267044712459134380733427043212727545197911081792299971271373587806612995086056153469798895872404853581982014298750522635744185720571328058150961389970225871380473079400155825322617138999064062506831804820666409522505148573644248737194995411496811772028273220036437387251981708926025238307975268339783718667547130655208839541024403941958905318280188959427596320675619943876397744058782479620973779938577508088234020860685455809811272142993443091377939377431910276146431448506893859380889395903614823128534022363427648339582174279145232856111798489961972498513389183936434673781395101976972073540375716875420302553086395972671192798658033919776659978993155621534596956127803410138170285276594928696035383536425244540093659830538593830045845305724248107408478128985107408273810453596146415525101093485791214819608695323036874402578780191898760272731098541731946837420776883989052045179433835349744425567540329392591070667432654984024842647209899279851212876598883819976692307863482511904943283097816753085164915364128916823963601531399626814573161428892512468607295184480414801103792132571282336031995300241843823673692175957196179884675399125926869244024556027517528370907101208723090428408779486408684426001612320040115021110894398459674728998431618865848590523040309799415134806492634895729561354945198967157048953886252472292762441448380906233524095240358777865875004504992048465431794064460392595536355968599811148279426362666162986363364759727722085506141383484857519916934724274850711993524705001317409378889012851384369094253296681954200753479508378760777050343153466327059199262462089588382247922671847321774320876424252743381844885864259997353970795590645119137225328358647804816539549504826215713033267002106123931070832683938625263765384852889648891299216774779522012575082282442654181571449056495769446500375655787302357061021388865156259491413932681633330713928710341125313035127796688423806931161738461528719439988386574682033638802796343648649184032310143274827915401221355988335267585827976843204663329829669304458241404042338075041829926548792700566360077834846452972552481896161712360486545059342734345147556587992316301458479823925621426262247853507599129090937812411982191543143342483164286806659125364156346697654567965047281830830837355733852059057669597442662625895035159462480958651628682041840540534638464183670961427280781977161160551133110182228588141880175322578525809221037701911534507227636409662562940205505025939691855420702567249377656584409580791826232747019768304383424545102287221598814039165559833593866960503610927117065360062358758578668956921166457993375329505192727876869688814560776829841939369876174786201929026727087172315219254067267999205206285445124522593268318256400069755349364392404705462965110327009154939958961687471059794827658343228992893206957334862117152856748904196800269609682361671326957572023444756656253964393302525843001708733698138404839941907080802944876071869001745355783513269092411862031398137985323886275896394802411958568326511988983791008457756254978858459357895323552978756734690429095863301270349100936704932886129827085355252336052097483201967156553938250687965832569385720123558586163293513351715049375935755166186187318935454159819167521369984249272973962043643782884449320901423737598088529854559422540831438632851736253515399644340094302891061531561939139300179897889615429681325561645187823404226137445408397802817861523392921789711074096788386113509659000994844546864001500012882966835397275252648264235753500584658748057530592063848559095928788470203571927873593839817444498860645381747356642885433234850222864984190512531417120735801210634196820580663601809970211458887795981280976432697703677940536405833615343354550908955309273709778719071935510382163284472240537269036405877526118604322192211319322670292980245843857486115911060720320385190022395246375159385844347790344161956815479754993485896107989291682330598513566841973591430167698820490920111851553940367625093060849336123735965749796122861538389347605346744173384026776753479009123397378683787670090092840286726925047468300267421379866164661333052893572461606060823254247603586028405177921817212315789829002768932000177308210979149339028429944466916239129125176907417894933744352577216680302312049717175466802697559681293924879297292522215239365312704919942607267746877964978485297259769472590457115015958600901903037984752245422927146202589877695987920106321597354699036021937424947370782962865418704891805737684196321670189026178210695587054030231755509814434106214373675851252633910177206250863557705308603935413289028177140696835406625201787396625015976961694906616354436958756293189824639237831008003124578907173526916155488385226225886663378147700184825088900211951543393452513812567717116210340995465968932281427955182407693646559814115294367755415223487840647788798680776658760843594718784759085189313004667880158699583082954758906689269513469951276552169286487252927024217084710335265104392599562327420368316341419459778695621723049084000017518155141399732286203321239225815617814764604869467094881333897314536505417393664808209869590146166090684001195357482865350985006421694671083488888731733222446520949636283157195928934090490187610583482694207874393569685591340341608610875110744591342603715001404641631423086494921568994165374604784863319453015477024950544196319846543657733453958947730072528532037322199335025902356367568416580036088011470558918049517714888252776458254882272715515861544408103935182019911893092732300415210993194986793020944806090847882484990315980438918348279785408949837885057562015980804326903182317030010901169748205290581051761891633527839637871683301580854056190941466004497480190546570640075100572538319264807130406804676803269862779367157722334238411578687151276904463457251023246025203804001331008898778431504107699295476910343763600920236135611678992051012157861932842041373404235566163237990108743899317258079109660229892083768131509850243599395425330236610504425264958450437459192773572561344454505575179739475654704408888229633335412240706042966004689242535108932737587906361516173602840807596074857330102489698935363643440355980972770749072131600153489233032389612216377117206853371524770584149669386700050361285707970282707369807100140119429849221403775746783356831438331262793208823543702173620482194329149225876396964677728971890710063165960106940821575408540744501186127757088070566973196703165015306338513917203575945817943774503255480560245190289805730127462818731607137921165735814213826577112499030742160730708145402150666632093870965948779108988504401387047041133285107250454891563793636427392376173651541975187106427566808905110470800138405913872092555450214273811425413616857181658599217944768943824097368587377927539650714706385653699224570165125984055527956159921585989250451462258007510123635419019791295233820898379751425004669379437894586143644658875779097879635327970626158660550888268728486462422125240475024943659215000579106888843591852530297799719214935790582969901776358279549860566126309214479578778381521186225841351943036180357052295809069377289976965370685044014159096782683190437503518997664018542393675095325599663345907079712719048935935505190908397498443287158512500786043088508211714290542513288462626412752248102444005795851690597344962287294657572687446394221600181488584298109424165771276972246940234845823910247249262457252359007478672459066246890663156035091135829709229902329698567422526238108802288223704893561951851166037740616355676067431648224622957679645107448104040771889689481061299180484577839397897084941364907247814688807198297809263770680702203704525930327364751666556096789551059636686265951848315339365724993585170750509858943297330932877249190833925299062832171390791070403823305385501802191647813093459257809249839509584211163398411432731376614414053200106806110408843827734574223040583586193628050427679300888174235007322268365917683520907610354268986682223660368023156738834570627236336328942229245411596148752093865876148066166860698712753486832745479081382270927057613163202980557634094032046630795969558017739009535091997066239258608837736740173595604584487711164457349424626897509805571647621766154789295080061648697595159313004947103673672131172601547309453626671827262598730336186632881279555314238193412952850066217328545031829420941571825515449814681613263266951807225160559618222809305374720089891547666560438668116937415953191118449442868431342224378834121906912182051947513498344780228803842443337922284441517487264226331978955714676592037987440856540360493948917444298309745563037282116743889685241244605613436083679632464341413515031009366732375872319352933520844172040398917795577401647210067516654468426062455267685159010903943077738224277425139704293912969879255038967397205998591113878870152614423481328453533823379331654938825180235184950970667405038314247159138301897093678826507020062414159764094784141833742378229965484034064968370487957334600256879972750208898180010011919766000253128576277026087293755351213034958400255726460648151600059052702696160995862724019794231941543850232989134925416761247567921125382025417650896997232178810812661972288485482471715468322391857002719639527314455727715820961145514716018773308263937859241439104435900534932422302330615551144902254992067271566654311147330383138491418542755592241335299830290195535882471379658152477544775265994342760469280732318271949695483815189248127865051993660758216632543249030389009983294943150149986469553279627140610038291817363050355783386214786128534895016623203599612938539651677570996790627489324788295381841036337718283361941412183736760600451142965122204175018330803957784327871525470244178963897241795717132680642315138787831125172094407640379742182176714176283717181275212909978496272328059244888990195296367132520208056623933983916282080291825878362212157898257982515736151668421314841199643668943640054818669024674408188482017649400139918222602068877171235636304997728666291786795232169976319046168282534322771879990545672847948052910601627856701674486148272568541975416017850230107134467957013664818098964102034019055465460421960740761599404489945117430734558802262168002767703635129867080323278516634542089012787956668077520462349263458153993981553285495575223256747089792583279142137013143648019713659803691431402716276770484275211243892764778738236533464360256070560565061376805164611658719106366228306956637463688695804903281561863663692791264660244893120090243842978320578627466193797566292825714315348725056107247298956765391819872272234426637430657712701214774006893784688291065000709656322433472499968317632350333972443785823463051627835386673690769697702137953796933036579836597538636200217191500278770461494809285584360347824278177433410035435951607693576039840190586772865687431271988971637262279253031414290152307530981289592954926831829574441534214046161391502417558417117245913237923851089143547459800135676019101288261265345519857769813063308132364137979281897156739186447398726550309965487735404975341209057462831356584088727162325543695521840572066362611778228441029788977948052720660360036781267601163984872606601941081371463137014691387440184071505322432648844344486345299188264381396740710192501216645465133853185796700274705409513595239002237995630905931351831426212279685146612058474697314926820463425029632850944148850483520202233109719520916883982039160873866333177027834861841155897339294661751553976560469904033308287707808549270231424250251595609310213461201792231940015420888558569753225740283649173717053429556569529932242180990266052193588950167369221763533533284132279444153799778763861959810518339332740338689365522529133774992030308249011127771341243760571479231067592092525193868374875874171320961646171316340342701246933044392246357240101839303352244642003927841440472438385401712831661109627238530032722827239513063313441842241277920777904376916114795877398408084315744985560157203110220215911031640836417794243948726862369977188189026432390345298647219310415069017802209622266015270253742938118160349832703815158838085768288838863396559703870085479161325920717257688096824622349924709464393207022627556105375944161964991429949841825515705756943694525150489476009493666307967198970704142881263735600422970360566025957770463583352617605937894484017035241818859368111155366128219411034015406266097456230267900463344007154626508970154250772224910551495816205908437410406507096372461146460969076183779426123170004424289267783629754045764449584563651394648975155831299225542799028432472743982496374325103251783606941024575089349593096498314491819990459032496966561495773580997177569255276252661086457369227505219727024664462879888971426517387713609007086170797857460791334953974114554418374652718660658534599005816103505974527247064692296695415264262128495576183452996431627775137625171319346726841057308119924529885225776632119160950269775345469245000169951623174549906156012321352936234815167139222823929466742172609038403496040747095525253183937541041718927049024496072928153742209365497731115831023511020645656253589982473332056669858703137574206931507657905212002144356835071917669183081266018321707657812434853415648015399359589371693388449298923836555511142486240301602230887925189390889024200042253060538255486679082100879659656806600643430745955496985753848098577313467728932310653415798534719258299475782259156531362180782586173118619624858711374416371419910795903556505159090377337718741241709814280312876881500624684448487805086873127719319308772886651817293499711449866543598172570284820869586939172601373050474008990924059042001658014395936456530935950906981326199567799129892007116055038237378547355762632459941142517000591042698093692479311327272582517021976419783723373714110096578322214153119257421984842991417784015640082644350988294768316928653131905765036037452048662269071365211120958009396703362249707841574306184256754142950197211509836854159811973317693317052165368643087909601859177816914043122135649796247597199011102229745414156862366972617344417216608992416147606502285255682244991404892159890332248814353962266273743316458021965241914529559521421046071153723340770197821111295824545832864084112370758472975072273202386774058720610409859925524487714275042013130717718043241136971650953648419651376619312201488382020036425591947331344397945510439968322678274130211977219708711726719813161228412084939364892582217786329035439333776236979860381891098522322581637492830380102463136967605314331658479650045793279327091217857691935479361904592952131500018484619352420560799848373290614534397585867436750673003636390260363815098673580613128478103721193077958478571888547157202773368037445966736567551488503238181187824466002520807469258884919694546687041542070706735811931395854394771625376507265589687329966721105944696794658582542213878399294864229080191160865849218855541140694445718864643743651797737474578386988892552271037619877856372846934083212837065462137591776726875411715220421689131456755136860099500460147963491976600415851309638950725020878422036808504486147711415608945987499541606686385099316220973138847785092370466271040381051336906525978097445511926725621925607868808770803477615102809787791935008669289384093570446552287018846916507002618557037033955518158125900114552488740157229005747520246193669142136116027546272594757542568886222716764896782830871195916402291596359084113331702900686043720645652599226567491014912780524148786625775266694088228286231094051247121802886194786205777511511022384224117935156784052537642769370309349847097112218721539056202964512380489593198111000917096963447195433333759281777912511165018980352150467036857829671123435017282959941080956233944627059551658158652007117080920053347921497750292595178883852642647133421740197850951828476839407337008279810910502673583932326381106235052970338898910225667139491794812371113763248752417611496851400728104642520533353399715444556141710909018168055090532970978764541325338300094614693037611204472926110238155399443844174880434623682073815630080265926056043903296538659935717449135897401759407234435583185885352806683204661727650956418566329855131725716592597629783266104410439131385783406571820793469041570975415510479377759289236529137059282069922709415217870476996169007434148989093951385940147096674668762453141391870040083601948642181798406338675331362731370382874942793300587426807215862438185077192946155308667213975644893971769963805308566434409997989273342579889692243181340142871883328905148827098083089759201850696919832028390530835880311311214537780902782610868970117304327154794772985412543466314699330814965175447551277401006262761025397692259338629358624668658234919468192942363400396897082654793753165346182415867293534332332225028799079528680375332606856213334955827706456906966983343765657406765851223385313951750487191006126006616150674061223309399245180405263845719547106799193059939704093424620356610045919237418111909747773348451792618428020430745167510037170250901043245022605748130589993465935246563943103311977253429345547025614979547204718210333711963919960777230530506030301563015792968243871273909251029290078112391060322093862839542226375376924254927063259935103372080398060152147736652636219823294265847296535130626813343864140407912185724256925379504159370470234285763863371009035759045800810620828570132221513209934461447247977037845001796770371592544262158295219675059517363674521469859025215499361149991592806039961417615265762965397431480260808754716952955672733574788783772659161406998243815839252320378170196483606832205025659000283437337054175605509409392343966379066719887220189205621717282820422360596668581804295983389454547184433750836423151789913980703223799718624670576839985372117946325962658721820400817104545840385878603377160936830724915475581283372131581375548343760790054735527917595517338169359023223646943883110495900507696180887403809865957622429348621149491420231369235203471050520750575981531360327805697437904318245202775362486828198258400039232406679409960482024606802354660591647246763400884291396937836644654280368571371883782057818361876865078972138997708330497802980843329159614830413234887555167748439493620376617506259903657985793142428360106239613003137466083549355640627090850875383954884577045314959220689931783756437134034878221157911158477054308216638593135225050194306218214530472221528906792255561672137005664668460175956535037106086887677167577895540135377413793228599220008723361867731148271736710334526917391189159052533039913426171407426454405012583347390658192633209408731104192106903925259387135602947500235481537526318600785466019038666591776032408881241561027169079607738219138989765397491833915522472686166989772669963769790099549006249024986939395743127853746355594714528595630255003980083308764825494628266815864753640317552563886907351572378462810990083188998827838902227425378544278186224418856692724861347323706108736460550294799436090191366007228077505399300201765244140644534270211162950384186758032817931457729609762997991505381964410637497434280269673637939554400648097075838691338113396666474362564156286098670645954523544335131275343135448250845479836353636922698625118337779092393988900612976583901651001492329531625926792976658945708193884514207544854536463514931574531494814205964845250120071408211819684488674884809288989013938283456833974767122689431756356547179464437351199233978577168495964075051404354950102100833336915926656518241336005742507137473838620160403414649419059023337940426980484931722164196872098416008740491705026746673226144931027446775539708732966755931305503275359633573117084311589347849544917522681384182719960262443973466276420683153620150359843961062982273041165285573001326653677946393494513937797917288217588660255532504100308938051909159344196114398868358734945289059860091811138049141671757138179973204979694117570443856562686779909927451628205715584437312754099962060286052429885010021308833079804779771039026148823998439628454086180659377292553522068559229379688352855036450803619686770159242597166176510750976136533042563834137355871579581767780438465615359492057098868686480166961825822620145705667156901946836096264254981990838555923560657051178391243307634325912243613464858918148634307197451263185423410598826942643842918962428447740923229836091652592070139307123043691902798172080294838205925991903731834595500927156239116900365881446507755432083475948674318663920065266362116214301909820258479113541701179112813155172058516374440320841776349185038320173970212567907298394405029196309338430404563999343140173036870935649535930436195986947833675686140103746860434154162054046367005627474992944259995833215281641316039241665047874288161972089202112299332677112947192150145538940821105802686888267551075528589666917371437860898124835107074786455038009714668301342701114592580820392156519890820644002384574232875409307026934747323894818867935620571252385532207260726697062197590840526566575922541354862666436791011262538667952673013787859911096078686216068855189731846110820587810103825462424830570356167905849997783924396648144645745766545283121037179817946977757616332861490168097519273351330766549436009448659467460979982246069168994144573669859956458426845860434021813877708301833453867773556057004428739225347282412319144421112251273617127297289533755607162215604978103307065686886214371463234303100255689307355135402070294344398087539068158082113978284954754370357102784598546031597422025804948979839431548162500092532189475528386124063986220088181421488919474122846150182593385235039434582960258478607156523359579729866136766392439270606390006829980334044350763707969399507957241489388218488026676587224746406863887963721672971898790204783963280370523537180647543036189739493070967556077553218049797966957143040305418654877433758669601043987168760052543195333200932907706864742508248212407705596882430530306537389995103869143172712491017590939706643284200488170690725064105838495715675726809764542869760326544302011650416848098012468722050481676673692213790049406103291997114450963807357990249660562855751754943101091065317085512531723756652979359489194556065674120358097914587085898770015253018740499389166524977847759483219612640041205053431335034757259244976472951052148119537439751052287842128791690156068857506525942663413010931570688713472629930156253241735027241674405491527667198726927965385266376753968154218154073545937349968094675825952940189451186951393076352279106491271843392803183480477932938318358146941673867159262258479427137291806321914304331283866854915846412743045172478064904084746484987758287008121610109978752125656902205167929195742725533846281131076325232382361883255402409467679367918520140907962090983361747445240738362094014255090914524752841695637767406940889655061912262730339277521209794395474539859829846824739014891854155812887784489422062210768658738389366885765550559168963654772601417317948476005933327275416367116888809934005551059209410524910746165181922568324169358033450859684780053212970015368202119366477630408024818547358784198496823165004126247361240897896868934594752083892399367820069731557059265899733524520024629955447939249861797995883962514494696042544022887582657865982927383081176980248680385425235102917216731656013908633649587231408877657731178824508218946922205574769745053833631529891839532480040289214463613537547199187351898844379411844323752258365347653845212165805765703846280877452927808180740975068712625523171497751065564195750386260399007387144732912803856299165045110069312998470748196794452237333388565792839908501945546565631607844660132305758358244724170195876344001026931306591976755182249129402906107613285722778706952394018508308372514268925088319328619178282667026100932172561271344937157137810987581388523456716480058438571204561016112780073818415794142619786651873219696268785388700108255545622718592242547499540567559043437411170265197938734462804070910657122738418211753111516609970593205595196487080831984572350377647329863078571103950861258809169959490791776553190302214977256752497402685527423191235814060166762709937908614774175094990995514757598456514214827783059465389560901522210109447261536804172435324812730932368837196850769791970902988199484729170102445315444312392118389174718478152285889726651988265679640482425461219664088027753595738699153988002310271399647143289079757754555843390226696059079842719878139216309663325692271571500640943493158557895134363465518824041198812215777805005977667064891694254989614493246364618337377871288205517227304306743062908822575837285080839072308000571199377858777968183950334481158375600823622936270818344547737610710559906790598311135709742851395903003194323839530998333498784220544310214140479024432228541414109515360172167269065330981013892863847365994050101165469727927597549148953563973035880888608477717244122891438836658050981477460081960085640266262647597929328949643671200477844700288509758443522547723305208698449133686937394085433485065985260973234428715949180271524034696839867352430948884498936461991992387737688164258696940527484568655182368646718793247522260552156619289080822826836925514747327603839710988647886960734095519320922187307102548437675299685837983192266289946019648457309394187999741255807917123906145920263733673187596138038020049732860057908357474456041037739497759004502851982216343585170282533732252815001186017669945017457452788791137780386085022205611151216192748718979070110424195404756474677724704888074045404665002496790152794436868943681468316689043986102149028050521076561993933190855185140780263566150781116833666676999915980273828367606341368226125728227996391077640989688144683730990308596322882201229488427894295180064400858123214662408507275118080245351817536246261740396020408665854814688042433167647001450865261555783877027954679381915152872655765245026489642834682453365018191743654822098396907598224411839414612445049182472334905704071422593383115774335484626747975447281205975456867534277704166445859026340285708931501968384542278952032466148575333140414324790761855767665614089098034562513003194272759173108364190589078073361967335064396224105196730107110673514837898752416123890939040886261918437411318478906260458312177151013634082042874261979985319590302319581248711265120360778565466889247285090848831755528351496237571506815198372331226422177652663008855491047392042529265946539958394031296831641518951662955115937122020273141385393611722463290167288790497747774229238657948297526654748259606101562588802546221934080960938321688955198085350146830302905878246970263638774783837468438750534974449000180408631418368937959168251721613826818267263629152997180430493423459261901113076655528386721828205140305859295628616623827849715247750431526647955633558261329579912503147734662806230070555484241826461967376145503885418724514675411945134155086458720113424730849245363012773011665108543232843592519450558218838842331329085810947055213058246652609268225044394725185253701178596788628256237472665150862545622690354942608886467332272434607662534396620629189387692364940816538182740593125883113781315817293723492245023802583273308742602684675377855755660493596954063221330617690097279685010610140345012541736673938661644594455556738408800437988325823127131328450309444796914979473487515065792224599802343059108687966652166838595135252564755009935154988401307626603138787629145097600538802738572125334822134637367304580910598445889609997054692266356530154873185395209825185068825791125854396244702815254150225996448177554437421691332078637949172454349116407658966637624076183076504818988371888107817427195456110592483029164390338757604494388153215676398496419051430626230497455641511566869552262461417770031940880797105148131003287819443475459650494089797778740012504201182753076402093983757073820709127189944282163038884646290494349817665989331545086328482399724121137003767159288431150492190188647480710032916364089368822220058305547877163378648255383217219704514670165281345767051667686055620755047968189024682937107595955820486634457721888599766680315366602808929183299591657329091267726638478615757600125982010381133858976121075755980985599416888459658267068011904127788177681316795514843409029842117393965657909335561125600840947212395160321881405240353298899932044542926255386409942216213540650137964007638042308892082708814300259071069656598732666285586511906230203855619082610821828965080046184155864793436621089981054916481482166077080882854438475032196401186415077802132135918587136495514719904030034136157430748390922501059317736460039935752165253518693030784853063386417055207873224228966168319134048813676803737310020027662282494744321650392420117595641434699298568499814255874923837348001010374410285642501260909709640318645633564257215296575025329726899099154715631332422748948720382062151139611537188105627134326183186663883258320696082241866340806720968537112836732692229866257965464305608140302641809721744882265274953399952123813767287916384604664476042987202633377065495909547547242177353112091539553480714873546106036463236401491937328353115828784682677787932356910533220452145568563192022346091928643712674126675837954380243471777421664228430534520341019278143012674743558954902828924355042499553716925097074227086117496720850573407635226134791650351938032169491402696416269828722432873087723384172098046984894492154455970032808704044396029326922855053670464003528415733266716681322032383857231008583833306158871674725071434004270157731637408829165488333885394769967918773171989794974650015573400540328695805980249350186460361830557010995994191453707670665428988086792117506457734929542973211455249810340773882145056619631106076056032255346213866689982720999182561820180107500611019764050988767586055578530247318512683433473747783395842688588480257948932728124843948882297246144876066261729720064731586867479764655686549891431843041952052812511078618934440393133405440205857504752776061545104242805592728088079800113975468068181366008559185637305069163939678968946328544256629861049432175709069887986416265079380629120442665858528619448032653837328251666020960050201295374045811372914551953985017102747648971272126352495323575394570594157077210430929626590300970199918772040914068520989294396138585311600757432054096756415461234301205199345789913512105729999704632414514180434950102273196612678359149820336003315427513334163166056851141965129327710411305484963368631885079821529049133801762937346389838958187949525134079473767906433765971563486111824718366522277459355968524933411014433178787422512639726909842693509386754878660141791081348774647128277942752563391668956545021122808078303049242614612250596125440025122665083648932062574734530211337497367402311698749777752994284982115879256920446719794394154103514544084140943965645794038402068549746599183871377046217178611866081170323932189656548447574392889417473272117454064417810770078886641184620799358471380223027857397925501059178671287450118978288697293754825513344393923397821769060919377612438973054296656269123822613166334214921547038924215208188320038813433922764320625520970345654810526328782003233139618520472186578229626032699262896192041568698446366760378175190947786184946425979714013531100426378602454534386172030074637981616830952078405946840600692097253429603590656841484100711297095287850094083608217178703548132302829798826805943621666923736164198052468413248182474980348321519964575648556213658599865789453385188536235194404501367058981818890981707713148401995885871593712418844342873410089498820837067661169721373679578575304640315001479157327844694698074229660937378117003408140862642974317388960558716605364297164731328498187991046183077526940808549152278487679825014689277196998892179415591894760331177588151076965938666548657978618352137628551777319997313775481150618623883494685121223937158335197343678368440056799963481538761992428474763546739252611873041828937896567897884797067335077083873657829168459941110776868309649070828748869300501603668800148262369665680997524366365928577974689121745415902940175017123883418122105451938424576414502210513264910825628283896399043163468206913067250896029040756812178363193257376892099034893550041413208494368021038802618564043954578471959535664071377697416475413870268063146765103837704610201599330053508663682975402896946648531586276488259327279643896460193763514856504352702808530774049589980864101889465981359734927365680060626341637925143149610918850581119715094761334364451954344138410075289892861387392558461591041471758975127208052329134025823021300586677651041133352322598844420323460213692853864031800042616334675667557115546558119281859161882128280334176014481691561629537978738554561246042902582928875753161711244344519985104589388629715802181828458369945628179189836655935007382372422604399106180718160478941719643797443912933506458863222868092604646945532034961628535519413153504051562154024106753676664770615655768676939537729406234908912673534636764782337190397868159777250104146044729357940020024660081365291533508613725705390488012470858178186122517764647755124180834776037279298771570259124046844784917556041125799580516612022627014865071639814616015216820866128787714746336353260097547786979749198358233498145969808478958240018714571630878729126567259962220008211693107759715866116998475159919261487198065954994966014874068036116575505672475498636817333669411216965820670736168768284796323206228539759475507232201654433546850739323119868876871926212990876725591946593359347858066050209364407026318753686545373585463238159196468094574989865586046341063240329686760906140843010645342320036204852015259197594104099398176181039298703748931428626269924593041560246343467840502804210366932804572161492036254281710792353364638172756905922696772220398205224107972819466530234967640158592457484347246307145620502613284028490510501056362285593176807936554159402900898158718960425517113301136633675987016476758016799810478319350584023296524873105506244570241523227796266191494217059120767978955374244323245453535498342323684642030303205620265316328163921007798680575156788556884319352677090190535898422941238417840645763177997943595598624695468067444740812578376801250835919581709873740670994408419903667944644889312725940175548301873236914785671820377389135326307187260144794084065696203540588171305488511883027227762701910261150702955306055434722021556776488803685335941610889378746479483410803837296461423555165580483290696798789240499933967765895037989925329164898064915646076579748878919708755051014565352208851747944068616537594984897333724344124714975584733875002536119796668552709664482107636750614454437004109236766062706156659880336350751204559996018362808085049287441325705102246826687268956278656572674841136898969660291463056330010819693609148786280160163179104224609500994769508908500843718049983392156317539024342338379748825183194516095629532189718959150099940219497463739962786345246612872721284482136609933326005862027135407383357962299832592853534371605938850948326333863221831890513832758622666768895179414556736539679627712383871052291578119221282913346679162603730402499524023470119396523858859121133306728199012613595080486589459131049707988574474180763653861927589515879952211344413411517482944865171146896731681451871355720203583044220163003022530277249110614772330198161421672193163875228959604220679010079139238958904184762446538762406299303851203531581021331093701394094148753438939045138409759363532246801330865708583579755968660617428134831228142944397505056167033123494135698278235094529885065489193464620473975453329168612961267387160177531885439819334964620244597935210611928180939953603129534477197906427676240454035893114996930942483023930865692236083944563297138692546847836352715511635350621797566614019934558697717133706749110392974148625295743822318769719982398326713258062507492327421703053385126269890162988376235733042463713434888392101018221683873720152682366010911933828924923481454494370192323008738744164236284796244583380581107754553981828243144713558160302931656150331633725298769217391536086591590377770233367526483904270641602591186030886351564506233180197418893768713967356078227924023993982935779283065280612526712250973778794087199910306240214717728397754153978115574513647164667487005369075608900611270100128472313059937627319456493886391765710634774174616678213498381335934258072373471491525877285618982103098356787570858170259744972380206512671225452725409898137326105225371990758479072573900373555669432191763153930499526624789700546107403937585489247397397702220534498110973437507929586546574658593491555262916677956476649370360143366024802657992211922104070329933888639180655022357808141839205542144873151291219497352537268856199226502454235014668057939488258945598543154700716361472434148546647486945577357233435581529889048556209586416231254473161114938802586320477234135009704606190815672252384169956397923975440770886730964064760773861368259011041084204650259652966513994016249949770934212632929443296391972873226810265930377364251878733873114280615489039653235406863085085834479379407100237550793704395136464689615288991656165026290282111874393226036861326130378139118568044331049689162503476281520844119957429797460667832583136940202176599626788090142583768393839522602725293784408573078005140776156077533454832165730937827113180564540927283202382634706983010272116970022979490374924644938285152876295064156034240908237147012040207778577064390048776016710172907169500927115621208094021273611276135847591121697153210871713279542774922820454744326101396508228189055250472373776777810782392007200251582883360028234690924755858029147236353780097223859943886707508568034703278539730549309356639284040095912081559872104841706519506656621985873240946934689931194236343135149370875390489725367909910883041325219121538065281148560640230948650012875650882269713968355679954733594564556397916946542115744475551829959334564303762578940520675594705353185315734705553701846021562003871664708507727608002768273752934375610097959938692971129045299141575354900529272818955710788502999370598458188279950279793885701741879335538019720243972003184372107933046604050237541017374939885559482562593877109270081111761043801441396599798721940587258552788278069870618989510851468692476290383617243037515709130619787794558518355261406076273699283249715086344355903789733698313325680033738500465423366332024247448396487139837528392780094723160972857538595277047401091615020487383398441906808669390649483402560429814253542997778536140235220553977072760606552743655951638361404025299728407617681187979427827498858457089726344076417855309396062718789689984610789089689302619313619952907589677285362896377114056303566130576977412098520350177826829574879295653242043732432516641856583717089822143809503755187416885902414582098153223070619470058275796421920942597081635273248093923832286453571284665176568830093408909715724877136551527775730703264808388531053609284640344827332064533688038249615783480555820704481950587363140713597703315670891781320880016356844404468391909617936433479395807846495971467589652543334882767679885450331410896138088090103930295406616722617876936234229376305483317901458348767921184071037545050298265003269228209431770496333627063874802967262184422253159046044558386491343298429188022179060053659885965017908412945860779429788881125011557462333301309132794546201460796205330484701094560273627800960663779173145262342556456936839496133704030384445760404564847430758266212407082180090551330266849958605246160003537148770323520332208263251152241849588624309240567313439654475168338325856167605126289997097756681210082996545801336158911192455788160865846839082836455136963277680043053435349453561333536438405523797366785791555511106792327728051863318600383601903350653798910329755399677367922036358344944292981860703832864141702673062634102834644593214603791718301176001654170013710669219011584192700549937810722832621387968637907400274740897903112258934371007784322851228884976302594865619323921523035986363951093578919330321819851604628822192916519392448923382266120089334702726630400029232018103092764040730547507724855426008154436574626849205175144951143874159850078424903760837611245198756157589237323688326913847158906948327380762287934186486088352325068220353170992626465315890521313277794186665008593319307814810431800601922677175705097078081025632127518730985375365254990759432082602404415171753789154116828099072721784704440987685920517605948490716464774251299916429592493742953147519942607452189327138392366774066879764480997450599975777098158215039415457406205092206950783479033406297142666574819471546938683749810948678754324231922769787506275027615438088403136219088782546852677164828769642456829078212215427768082039700102587454329901691787528709129311404504660180524040956871814009900083108995960042053060113991406218824266733602436359290309788653222353245414036614862331777095558192463550719744006498969930946711694623917334756554798566741852388603421487387711227787000674194429337681677982838238501215087038025446539667450504260240939556551567502802180505053713121749083366028469495780016402441668528864297061603485162974046326662804000245186384370905330426990931265900284233051421858625968823497795502984053782401315807733256768258289842170326107547533630150045522657096147292602145478066855709723940438858904163619594260482903811296593356378884515331846500518990899896787508951700864598577649364689530655673423635341817503753724025819975223042375700459394076795019345396654693843355514864238111937203638704921138040811161516223260659708859242609266447956025291023439600081245203710593605199494106896427487831333552682714146155228382294761850781048789324707090790452906395955831943965786837655381321142521338246177344298883960986807395505820671541168273233832662244957211110149652186967124170862561717816725261269719187142417480680405641950989503046076522063224584255747798102532869068142712212033337008532771325361514384060928109184734126078350999447121707301448345219966622855808117814330749719595677247979350987060564231332738190486954673683796742980563707528146841440251377413390468722935193422281073920676727454576190132483284355450844163996441080423471532921519736468583605545087727943307708997111930566987933351095831699069055548269681392493411113277655867763399387961368884554369703734730130306532900724888224566670693945329758098585381743872989635400852010039641235570533896103289494992246100324281229930075194223814587138648115707581301331752851569320414565032457710809476313594756361673934077998657248752063211280759939579251654941787866423423374788869640157007148154120483592412049272750097678069886630902206019809115561746356041503815189017858765226222263399946121090423012885984201469309369742915267488626762075417454358772002097210136817187814194075919317626658931504435093156912384154282094881763397231287456864114629975093577402930455675578395730680268252011931841730711925006230789981114078553964970894480277289447878719521339282511680583167303908142058480858470172918837632897036579775271722211641327913679059933452444777276007056070734575973251705520592062916331736003659842349874389471394606905645076749328759294135705304010705752902431848913453428014325038530079942937964825380797505086753788607261082110179688623501372490530731484587421929086952273088999764637848238835147252794137808851516153925974724828828853108738134953602632866403178319143217505460000095121990774819728455031210774903409516466096584329034353470624696115648749916555590292059687179915017630271775186456338626971775323750580804948124255082543391518973097899440143948954038724362729033068689564142356194243975469788864994085683184568440898773919344110255908278988670584383147538390146614105193723265374678561424369027536323246164375302343908306089115293023900175505079593367746181545676728383522553386280248605110454749145378832143457147672141654573608429257185841682742809057969440189366025418266699463131154475240865700912404972947941200316172261455010365359979380338262430582695583691108195608575303350442229226920069277453894821607697336005256354097799682055708387450283834118427654286346693762793431187975665332192035758381453562412534828486247439085599184483193682251539281056082860822195056711328989414291478626383467013106496930270048725569395099352647768067307787102611651931037569995104228485632119678369999454921260044128966089465964663774092157920823165920240457612813147837175687146794045373155824956266940577935116291095785693725088836606822784612575158976576417181848933115833376568410377879344307869848382417396349709994298608828158138693700946871965626005990924131878050039402410310300890509147017052143239711534192820170715768480916578384400587010832215613953249958959481526748738540632813419159220640279886558663934395227869700331247101310322838393105944473883905162254230079628877919474831623501511427331114047012960004467573155619455165208182392989348383542857134793739498766440979012746921498680868078338924142661745805981947848890241885269418465572756568492926771615833493349737972347170474947214317961450098827765181187738169060819432561588054022094670469058930566302578165061752248431598490511832661008416064603493830241097059937439726984315908312697913603480952674831771326764312837402543323124405183850711416031740162618349423970221752939578294020746259211558654761242733282738845511719922550050572224711446218855299504203104772226741757283848333979626314069346963850205520096887701771360718919156964297577573207277829187704888985877017287446292536620529929309903541484180345859730698956722680772724503946697847268348923871866067681779514001513050056062258139210169953623936456275571321265115337202264922746134408142955187076487248185544307899344273016606092361795589241576193110160719193091035794707161945952023917945129611221407056239450706834186580038198889298161996956778655600265423399024257775410878752721870556995655866352116542533137377893653033562519366324420726574087878541578860120928750260892861452768240918247570722662954510611321619672228743172933803694371702998051517201939447189796310036046961254124363604627836325172078422067568524090329102595646954000731872990184614165666760655932321857323634356383816927427309775572016273441582725846459137261979232932104996395494538628806788147751322319747192265325872468833283548972703920220864394392725301830024848406337943631082234149190462573547771580067861104596785543400506676501156998588097293344298152766495045676466094281165764142499551303337879784720861888347063681236602318658872806141322048139185494084714034785715211680853471289913012591544332706303681559243734856726681793675664456767685920530825142997414329406870040497667727506087141034468533357180261538753966655394756474247092584993029049424722936973978740278854150118974966156631967477598681808075294436506683186933370395097483566791869423021039434168964999589482205976582746294592162027489911468666215671463633710676683276997797328534657288113442537096230557033853767848866411543343178487183605490816300033885294517124214510414546679022394160653291955875083850571220671265957319529511547287071503415111867607622475810050507280740011199400451846269264915063125794838256913583593374648803545809371841121425667304861175564408071736390933074143179515873626114323962312923826627848703483917134485863109696113199233772620618335458103282795692567901762187016289119003046678186779282481961147808689069273906843232175095252753872686669497323250809726495935841481553498969821292644526563258077883710911104033379360553321708966676266614678923492684467550301613353691174115853762385121316898074719832823097689132423566757165548887004669568894014605466524377154950433833999029240839470579016510162747173276319258929502995285114638862807037528250466260740746155888471677266114315358261450234295588515954407418029217939149886665674502298031953352896480057300216556758316576586999216315303193803441847686187618823037858236584575285190801841329191621707031663506618515879383700059142723027635372413300231215090585919336186338248017872593244440247721566307993346110050453446841756532751954431528823904313400392816289030398592518375981951927459398574996731402482884598254752599323415577029185912289435000727551313079753873661187185937763200530240219420714769546401509894028575584572917639133468402719192996208038380014353686753453085083436365282128741735105181465164288808792429981861585483440074195077498134659126775704438505990990588687227152278771626145250870863067809545895474838442495844921135664706445994130550274274266398918693566996020700413940015994654954985071466608275200662655747953640245992000882864951362135309270854476819904979696156818153178834995094958442096091668024642758887707560788409911496241218918664883800554394089841957720754621783484131011955355222875490870885491074873533335840478112756988826648068268990647499500559248153850104415068012483194838844831706326690448236277910131917071887062307741428549066859268681904828735966917567792148930644398644258494506088296381687539677853158138814096374562214949614707369592472774277734301132621802616079279563374411036995439701741452890223536437698272125732213863444590278065916089498075334423257414070694695006943573401061532419626908774817272782260058235511739540656569161847643921274838067845146660017104742558185070947856350996495795563429786063614006323588205822314689684538740989214287096447836537491046128892732000739302076009925649786033635686746418069890219276272036044627141245982792362600976991100055777533685452495478325597875937930035048741794649789990198949378972282049045788480209525910040955562875564109320161952826241793952861610027536022203969684697486559498350805258890788951252753978216874407349160309864172643816664311277931707339780575920091762931536365831361615285126591703669526962636870392778682441813754199504190203328499379961384265454979209009713019902605226990678813215715838742178920820084394930818411360907176796952912507016306584527268484286294033902219200041307420860337486185231778385932381295241820246202130586736167562695141639738245104095833286467233851240880302621250795159817536067077691636060904517687648946420999919544979681947921789914090613617798409952876025734283349045097658891832656461514687987450337329636237152059453934596335974057597052977147655108341598148327293189566695964881570877373350749929024854515639116046277254962582305026628147174127664794017129197622645398381113173507372536030640838269411492585491905818671838106520606849348423798306343301829046845571919256904624230945133591281278051391857330175528428845017593341431559383744854921161318302984356121378401235270348918795143583856203552856505332173276790781860408232001806788508400122823333513328624705934537489314603340014553865799961315559096096423559736562043135215892624170605643521903776660907210945415294962048651396800026960392852583457724399580386709646424432827185972654692553081060610229348399667569618390085644905400025237733085264609260413258894969982386933099819925016790641313648276439221146768398167664140765146694311814659468644549431167903638826957412464534894418670535012869466855696398470624159077207309293166614678341773042734715899007197309097888463329820582736380712040272853845389027885803077835449307525249422343189271044695734945014060241445290254403576550333048959817062248405018405516993165456761467933832455917764865999707124750589614142058138939669161058700120606788705121915424274319960139432760106125986025312406105050863825190092497918015620937600358397713451377985736391312747054452495636316007190350072868827698327801963886899793857594573122135498794362736962216393075516296798928208981422868364725233521681025474437340761320209846457806502181293714956299107266236489865599566199151737311168930676805956623282752724391290214240549393676607669431589975778953649767206950112082659544451649006936859952574249998329526657601407684494695617477623858197359758908716399084578528304042912663285896703110861342816922314580649589137281227931241943388675861528384803739836235366058210223250594479799248673213891846909236478176545605969716083315429573726983329562275279008284413522502140295738943243447134375492777942744199394888496270230494735138950409533764958212887929998486182451011651523066426702928287693190152848046624177380124088655229555492187651368409431047288092019796996662023347656421505189535694725438414609006754999196152725249604934611967423876450242353541563981974802048360541072660568331994654677557582625165196409494222288621363612363545757567001249817739219342567916850598360487917536403128575693046280789814879655654171659982283339819675131211100969935984670064183657792989175694841551487914724086291250174560968807364769383687619507698904815313410829730665099628400970022165651352127584116582198438777555999366737504341143943759251372735394163382060425652231237493320524754118321345904559703225943946290607597130204474027418189543581891971256420809238395393172090918675140383279393358363447559162904671559024324491650302327383484166577091317181788835081468974078739166717551853631856139434410988338762526719596515015271227613428931576220828815338145805945793414804058194743377487615267583489909606668311602917727176375654206037590087189028865402111080406503536867889703509876239845318796028653499739403318596717694289003335040568908253792795229437892206806782635982816779493723619481013365523099882648573459320401427746371286756250689395323098125624179152769099633846174677325682286694996938009510179864091202931013355153712850300661127373457003164883380915735135702202902313891893717486452621953583652238173981683353168576712644177820757792057230940419831301787330209896266629674721043713825964169977969810125606969162853538781774002798130316473544120190657398628509122170544711408225470557756597760194109315214830948704401812293878892846817677007706235131922974916641048799245239137953929132144197298605230481721933575883766538098364317477220257270254476312229298460836718314904869906730050577974021990288182774873553257378645388107848376492459397142384652737190428809114255194109455953027341153525394544379089282725223161651601771768491396940126311577592004742799033756628156253626472393359256370745606993237754378446620469545447943148589056948625942892650816567063984656598700729980276901334253114157509610877882607331642077412438331052857701194216313681105164958966260555971713334290485847103135655193849555916715255274319486284389175943633822341854361496734928406370227244219284532029883590740497865614616905690287872864252329240454377222493443481091835224876226753974064068398199840760930387773460089905257168765305891822832251697294833646888017074080502163469459257211838260420924738003024672841794249854669028273073540306195460163841463800943061669283548175649397270467556031524985201290977097401573540498723574827085992564662442265218599085340487177144614250518332206353120228416142931268849424600564329300710829971342697581603096291791948138893865619276400521091617297190621269972401229439572630746706188555076131740628846679907476164171244431983058241731250206132539857111850887911846763981986277294584155961085102829460813994075781507492854430122849049925243615349339250401193237859471407643795286846437156004720130618089821066921769614608125180959531652428899061769807964555697323241166305798448098810982397694580969028109814829598102496468919591570853470061438780073963981628201781980368008320900584184184846714991757490948962430128348386310588750161872920783955055488167506913899484399475280860286252192733868022219770911672623554937538682851107384797735038475424234181176922869151549804325236079284646290647201571558665058595862431161269478416749926323139900103773245014808818469774241438568612367379912748922263197809185321735724394174246233527059200633789390030643903982189475046762221033564072045314392070479154848178782639103115933682526253461207049195428732486218245080778199687256298166406544508075276066210602501955219696254223502964907548670326907179265435489781497520840943760429943858261416281012396650271633669380259469190775327524883938986145853504255133564429788825861003222275944269261396592713685889899792184923038050769643192252336496345231822074987450429405781897526300079795768346975327802643272914327587520486698704700657956183594830246331852292062785826615127311299404703224658007348791376647584973100461256399206871671969161170250102341029029307354682980302915862150449334022179380098865429325309904776690404036050993132617029082229564070337382391069280652759433983467974432766611254391060106719867176983692489275119735781956575590591637508754928957603245050605957934922500709487193530693094850017286720550354629907105095586873429153602042089624008810658138844256046713338267973060145173044215017549492673269819078535198694590987118988482045799360884465194417028292300563926720659267403459151305870329754321844148489053239357790190040859553017507812084043223339123327180178676252447418570104825061974338362103896055588673012547580872733545400011409463038471698787996655115305176735640559289198280544774230915339257706829355864086821852259594871143769270063642325739274311572630595110478575373905401387185607261534293843162316963012471200201974480957786949958406877009327343213560933079570899103992445585383015444321039816627689446313267641151669877738250010534799579632861840795875715816775406458174331931903040616260555055187981314841181490084555090513637232072422327917859122791424690480546188003104518072786989091044696089744074014288918064748473971982778582798479743378440844091410797613569246496950801501324068034857675340778543103975969942131408496474038274809055373534169276436509716786925276477763054073770674262748798271050983001590231609581155519573324030890282369846372388951447661228533709012526298073485499266606167922015036353724501879725277992768203309079775227653856161837750567594615971352757961450367402489304513960224237212786261004919754354548356704814182759398639792939982221281045017203620096418956047211248838760377624800325786518048039892148352902379428439718834241726023288412507616455142084555880407917267799322224647046068077649460852439985967539318972218030557086800913612234204986128912432271183309963266647799989471294906940124049755190500082876678130567498148594855222490233842580441447136207292435103138901384999171734863499547734259701962760725937146250769854142750398383216458917426564552895457613668027691089049224111390841039129690882672143630546127417056186702550881494521846252450159619439086946046084843429346414608576060052189077165391315081474703260928417658938386970031459721622712806311401173960261521211444321133787391109151534475292203164328335131894351091767097168057751982286044970374060203313073905249586480383221130322009878778671120962447768640016207157474327996408189298281472797025874414837775710721084168956037596572564133071177218799192572357638757272396959967933004555046428968543815002411852932841669578024724053525382462640152584152400385843195680924829243452436208003698945940204479270209196249604755970439539063496517323164612838897918260447757393761939374946144812248093344218574540232504453492280375446541277199819649876516673365912839815426849504772849706108368730288573481044497080586051086030179593626429870007536863106598940485126095043255933170368690918933447493859091054467861893116445627263983041828600288923294982329538271467090363416166110723108030340343490270723619830886265147078280088854532695511579350430506717748662241286829032290821152162160375626923170967445409487045835354672171500131339860542248290568120721667565756595239320013889679812964321926805804709129339380691586534775320287034386599736535586351872672294979693893794202736624707636970315247676768284469310812835659970862858764278941311256351411142632912138891606235944469114838009347207759751002201307516736974352665904629085074643826509294175633751324785618410016864887611600568470718902670043230703320057159571844443239122959370622223462275282356231654010994833737709123612331786437219116860862834529159840850183812526782723490585383802506833750724308432407336100952032655692150790293192049550291840429567098538948701006608533989388894637317924281005038014423285598724297633138135154608065677571944371496840748878246074111162845268547452964035332878575116503343410820798246747966169830007754662084669713089962959469885407711175971374082738359982055687120471477365245183019471593727450105881836610138302410833365632287267418965156314465456111525013706184788976327081906165851823706858484008418727925695758279309741635091869948840872443215587837112033569162486268079207118543190590650867931945368042900139781564525733563894764997634081024026841134484491468811014139912988480125571191492482881985777170855086858455007145392202725055838400429492543980635367849523861769072951326692739591038643172197716928215422984538700793060239194353812827983031215247549372672192104496362692600839395765494591441107144697128249353657446632600248710880375200385287224442618093435065692054878888138157240276478749005282951282468191776657033251210252881856215940318786366413577327363513118454495403142681448643244636733305750996754763727200100553637043104378519344681798301387949435823925428606984472143397796657371074843727718773476305998228841038947042124599231021959720844627324489404832858015159812409791705698268493811158042259299548581969884723224536939975463986264449795245956668913188906882814611964928249683140559214803624140910064344437621797139652721327517390825210866672305508949477701244317953251792325509557488607471913266965779030323095640322789941035286050833952342721525036890852748971209876629331190230779728205860156158344857308157329576539174726470337572957698911843496479402692565611757823698215679605979799067533819723873628353121379166975644085095281322942267753052867583257305554844559514253625425829103906741329303847318329095161915769975590231613965984382448327863303739111287503127755598222768106337170257362353276651070530258243843587850746062496867470406850034894922137067560794692805637288943855070711438201715256734609702723257812408771418267660483614168162485123078315711058333799173673584620519822296889041571822135933248246664733899056168726936273025913880198254093348358787530800134749960854362779700319812367305151631996458394062439183587687012815002990319501906923187647248052211293566550880432161339588695154072455261469783626352526087531706846375793851387606140930254817791699215530735469455113385923635672518151433098230321974620880346981617052645549200554877419550937701423925747532825226401135846817055524261275940061148905481921929235967692042461140732728358694838460755949501624889618175669649298846806660656282264019483743738436001919827598237196200281107084481296680780670426109120098746572345882671547302735513396656219372868838457573168703870030574844133278735141256573726335335621561676305747316927410780715529281982711005785251313293613040577317830023890313555511020887594387121616919903545810602717710925085815858601417260575375261440865823314134078520265986523197661192420124856735732783242005570831772690465280139340458009345783868310957247728503368828487677765558886908615636768843798086832463037524152520042096423040833916320824902601062708449345119880055359701943056872239537545776578234386498987819102542258096321584890521847925793962162022538789954608855286438332026635096607757909426780092711207902289607289452182518086528771339254888640529992699542847473406155366997004650036315126960645883409324528244036594446138206759174560499963780135588251400798241683006940675275985778163566403101091979245414717744913593630202246620941607061780120832396727889703907432244031655945726906886265770896695596406894782507770525226049583517878357796171695081699353633770640813944167705909640991411519414807052601286749945140006764342940404564083616096835772837855171270782019402980225974336311393956867976129018811466452478539947339235846683753051307929689369213330722841039559364729949126320468674551393592295868377868005142549122447994239499273952822988186567885041545290437340181910327576908837966927869362247430981712140285077861758238580431524050261716351448634266774773390427018933182255418346646589736367400059529779478915699167747938017309315483937026043059973957830261543486442734262829720157762634203776376789725804289133353834851964059941190186045402417797799039404507094942894083028725461590647608495681967463635992394639657013885045573713244168830885004235769183525760686193425586385173444309004805340901219692215282433471826550906286573502549981664657584189010463533479756487689089593404046574005408436732666587576353843626599055593944123951205226643173831536471999178719295765940336339529894018622072898307774980571413527627701461853035595254381019804110017866803409455015199098317145158861641626011578759639020993345843721453105317186770811642080378936620513281228762638067061096347339303381854690161959978360435469447536789732448659437205060029427591883232405767948059923379819003518374560004323377482516896430636549132517945250763292656428458776115828718991763490753761399998007525798937793491546222551363529952413054963308762442554669652179250845645105965392946987916428010181955346380233669927194578099220157923321994471047088822349609143315114484748265007708841952771888312624657186868490494556079698976139203643734251759752911763287037106203185199656739349351990835077397651768512405048487398413878972682708229519210549706154704989012875681391316861128488481685874207259659375868791439510074446904350990054926880958299515563778271914733697331669522492316477534041409208741473297736651165926423433149663058642315961150652250578849306790862832447089474558799531269413519283967147513226646745158327905640884985490435058842023350061085873024771114280534678827601019866506909779927755486511619121678773971200337374670378224365415012888081409079659366722152090370248050164424026353519718511105584254589021381901962510935005830965741261556276420408534289110329525892933159962698309169380429740685687728216821354455754405287313194802748066519252366532757775815295622729411122239120993406949448370400220375421386708918511889768702082419222655112613899331054461877028788163857994279800836074690858752867097965298674484290755765719078998387068431382311055425739206016656540654444703141301823558127525720417869152439072573618873955975238625577117031765353509757661131242737853809486033203245417204655853252102931109346384273195792487866588647682500897431950827181388524851429903161636041938668039943297080980823668734142258288172192342047080748725817965392930591455282846914806640975898467615766849579669007524200258936979280143252607852845272503849460667380240345618086820321163972195319063455984611996389160235348852292254720216512459525946221056099238884686225366839466732351527397539455531015879981343946214221185027260243717887689195013324889662302746537981551930773192232813441751662976087079293843507828532016820027370721503591977567031118758038329818017497722716210231554932377980007306746392810116525627104548073522166346935866550240827458276405173643771039948332905487357433638038806416561103365424480179771536149991749725692353838481295402119304279238491300146346640088765587210510044441195808378155157784849782028972578260878473640521804390409786927157743131749805473039960139276600981643004025243979578630028343839427585546828325911128259586848732901571942475583482179815251942593256911100950982926562281271053327609544598487327071194468290639660452476206268411919350184146789492903170451082531247286286104550514989840360140697462418115139900086339996086502670552898337098753062078734027858111009375863485049272406835278875816933693708101044902812634047261119127381834723548419198035138588404083910767876984996302698314216108160148693840777175036150842861902329934049622830084089605045650693531517550079482497234134797392180755821334023716670612270370845175231452887340945028674613051556387261361573488800344224741042554937589103444652948042443591510238286334488080783447414045053344719200595366887776107810363703421253843301381117931753651686719623821646897764477536710165884024622577838499768613213394085343166958603805952120282302803458050273747547465121074020338222558280825831083474764440173679045288880666848628135031429626853971890410457175388864330025364861567082526830303982035394025525994422840782696310195372853992275811979859033205112113359989372146095262237112488890746997333121031936929098253278402099264912229091261639945815472319545993863800554948442468071845729500303856233514939570451187272941491931410888249175374125673159229622488417099707887588558320504001303462393642702894132272313567453241509329081416298510218282386123227032839393641052063628999173618741891974542529923882577498500994512402709058206402235018782645473321703574878327120390969690817576614797368936865139667994994487039271202800843156932805534722232786632784267561526678098801735524919339215573135980261621844458325917802053136316831436649872268157390923906435460668451005778795006925765649056786733230240236651369686796841289293393920423768441877713453924136277742145048079718567232309409919615511096179480351656017235928554573781880030030983823341870825826230692020719427321431622922656803893753257934620928564382475529824798311505760250334249844540066902447733434082266474324737907623705679848385432843844636464321195456853841834923843906066371189288479691966674784876650007107874706832216953253648104343404408185251502605499072752100298345160353722879412593928203913307795416631816315337231679904773184267205633376436212175351510638028310104216933883611710697496367506756859478605588415921159550770540284133817923540775498080374468978218357136485813869956129634062199158000623553183837455488794331513450127559123458486659644062305949131689432920180815709270983238123957209221334508308885541774298045403237104620747055036590952282476900220940751966702832344564948292427787455047398696001785449330760982603156335989802571806191529007197198012801691857725946064372799944908371392749244431631841262002904226554139838277938075221513185920507234671459613986768684071929527727077772339295870287008064346440544143862995842848338469585331139099769284913995100353894181901128828798554519309390753892935731359269019969608948477840466959359767508092633053377061169744614652982953767361130991131072505705435870440442728594105644314013630115950221216865497975851484561901496871403020181364535491457734870877383220910229918658052039565737207948190012419876051972069922974544364551476330023263223437791242668738710633989676106178769403151286849660660277094337629450487814357130905790143176258997578215396563953014883910562803578507788649464736024909806306939149868439650740475073074716713947858921181729686221666195738246709375906947580007559000492323150274615245357531634972067475855569782645750490868600344007509281715347243317448186614068820234100603004171633421481246016353541532700668101763073605776639409806608375289170210464740635455192271151243535092115293845099042266077375506143256207706117230142579823724638821611049793655422967483155791902327023615837428506945990122583650273454209257284242137826813016494277463096512480507084242997774250643797220170565687111737559263563206054399949327267793905607745296167205888473168462799121786725493343165202311103356973523416009069283643153490021345481871513683709376300753807525060455045717649250718339816090708515709312047699348930473892706575608524061236571918907636934286766549787704940221764327547293219977428497237909184023439372731154346742051289535273557966921431816711765582348366509216265153941119828584235611124536644552778978644663832231047322483472618697841020372197958235014177918737793270759782420481592343620978028040369450286370882433387477260935746360811302147029749494522966545207896920190497612048711721450607901399767374441995735385201891791538140584301714620084628598880108639520899076046031633964266497834957392780545922956541249539704655020953434394060354646695649312000797109101911942897317281150639460101706618875877565834461769181808265117161236581146676642731794617685295362332557895380177077891771554858278607538283150654117293986776026366755257015794054391979241673468024316901949687062117403915053562416729769816194380593698019193750390333015028438415453844734753862172714812682080229254096134644782412200687538660988482010550344140897171896602085232470312093808738203810177920847841164824581208858219823165730511400563623544108759778254228033186864214521686568236629876342918920744509235786290498561347522468354803975067283294447713563156532560901161260755687578790940141637682581076765167273044660709142099350148817016731966877286313265595006687425767147744044425468958169738043978547541890158483571844475902270400259650581010622828555579300519768023963634243312794851303818873324757589652849367879982008979098857772172235380570562417960215566914312985235745884553813534847742037013346479344238267752266626743580891213492199727113731411284694016243219488850243836250708424495548522187304054623142546631300014958479819298817545603620058343837373819944118066825476126550332019860626921819314789865273377961898380506607396894023234716290356655051042931929146470008038370706550324809768345306218228782641289016159929050101692426053392364789203096004626820482659829226047281810004228859751027502687545616422916808278767784573824299741212725280928283805626325945762871738899275168333956046415735178088325985401994323564327951416106625307548102257198786384465734606680193857775613423710812341551688652439428548954493398521527177127590963611613919685048656088070408627840648278378833721283651950741488690820975794478321253718714818384651916140861264303429316526787969807862805016871314189967590901906136413684712919167743395147337631517215976934828625745699937601054812399522829108451218565290339248505244316933689253699557481807314366028118995406554400962799797838221206576810418587070344253536824452958218133352138919702118595955725369952007824131069748901168915718613309053381786491745158489210830498228951017918372930295037389541143489466686655141863324782170849841695822108576405283975122336537447112481911224259970143697146492063883549603266471081112727589994533159557379307298474460308407782429715859930487841807289849877241048559876748054916991983348238618163344238378121657739390761666815763026645697324388986506005845376823312787577717179321018900163761927354986041726782957638951380411751944328964702965308244074609437169351791460785962746940980477592730624642178229354258213994070613449279249815970826625107091984227043721988117951352493367179341068028865738230283992650813273592103906059000276370205588307015035225727236638737410766932468114651777212271432595482172892109980171889436769609907621151660266714415366688155240510161549653993938625926062886004919282050698425794019419466893084881019842388939306439250306162049959340705492360780963041843868328709569195638401973995051742048721506858255623260036392829279893958569223691572838729626248181414011943372818045771849231012641334058207430023065282489764614129376608641690178958945648874190342121836423906895309699522215502873512038210127148685398529974912290112804898435327476141069565401308895826224982940510848877693675039949183706331077855034359880812643367325127017868291838545597076564736947047636716210628531387651054159904729333703036558435765098539885373751015236802587867696133490400346072162884922165765507161858177610881447881554458628920370580768613244913700612977201214656152706138852681131785605364153234151636212232850850635413031864710186645614437444944234039499788507826922658995881783132363074924608128110589652596577215958149931859421634977563680853295671225347065327493978275706119122474088713674643037399399123359304956817318841121738326053864618808829877180191626232199766585880473302687080247180885341091372006023057654518728754213255044587988529493954283974966082463764347965788915529409557727108544216521498393023048540689859725614570211667908415019553281263393202141996065127532585688637428120648965020001699281582883953995646420365482573174559152620102116513872732580491169661855680099904979585458897091852120598367726402585410758162211377307465147272765686362297734030038839043387701246397165764137033997230259974842965767831565657129337771002036184549197614211520425672654677628844214551671266072297760319154438493153155633525023491381215356724989661422912690925631626499386303887513537284582192356446753576316663081833573151612989851065138933209394234307383329576885787892649288382477282936171988227363163763424532218805660191211255450398019998535829787575958333229784705137591545675963411862389209572767938557119415479467881830989116168215767207689795085958651305581718451694002027886218996260408818679821137419248085462839127951185538921168657878101434436284935232251432816098334338857194119775963356477045911860185131734736460061671321644067103306573233854605034953039556949167685908905893027263757407371283750015364875605710778416284340941092171548162917791415421789769527150859740263622372496980723826074752539810566854865985332151665631722976796381426988707303757662573214626968183758190337337984002936923759638077539584594073884487622937948764518637411467158205426828050960364927640942713650107642134796617756809543055343610449459575941119647959269058362806848766729068070946268696566540811119400743808610262893996815023787419746989451929134367936612904935907823082560926609063999133422707153151270334071507172309050939937264741723711164633849455720153138694043968253358485439054207353235455902514926434034012639973565117906115374908218575609443957107853016908974339509164553038964854402718862459442252400157765006909883444934087909695422132570542709412871835669714828189281198865440957519556517433642377217422220157594862537326741171697628817146421140633060247262263458252942558354338073601489499853273003949480452518894718064767765462802459756012591926861252164521467923005514873416142945426863866446553405312686064505054638839202436442901592106431150606238652641873447919193805573493589428286339306247922257388777544817097267987803976808755990981996904705776671391196891225954759206500147195506273313136660120306912945868584116158835015443118768576505982212035905107197264057356168318556652848068459057403655357081326929718514835058071931275575049862818720435561530524908121935719848659639432316083070797717256643498943118841314784826928875789979676039206948985268961512345617223341249081220155726245442074635018297561691855156034310930781403374445423918905769488760709196472170108699484252472382160981890008894839927908529722545753123050323005590727839775464766919803355645656545953574003223453959957860852730755869034737961528949346169915106305301878895821862381588010371673472849596927186970959616043227936512591016819270249414027684667391218882398184106894590289768616286265724560404686730467026029686943490381595789900446745352588836488261443380055478167920628933450164194393262697470357047631045871510079952677431818987428150804308505860301517871042138406722055031131559739644017032670914515750035056814187115090124837389654404264926875367322018641167695971821140585195205918952888642304171820227582606496893410660708940654812428074767678120386149403371420300739648127019085307117833847749689163432269621413142090065542223321699826897082917157289910313957661182441101777275288332982185341900866549350215276305431307117156368799482127170139367409826907113140077031551083532094609169797544292664705187491709955238555482834380366118915308899845277339930336184038634431429591775175186562491221053629869471408431140500164108725688059735154833665146470858375063147463212503223295493476465415815311245756650900269321038074888876440519781496706058000838651752314331322447617545762486774878539445237118961616311608107948308977426092103767549421614662382414588403631875193787035964975993900233183088615222040915966749894130315879546406084694812882538376160720607525321332888182114998398637144105264702837018940170549937430443288956370640927148584827402712953771789940374288383471623497946941464108892421229159473698437163708561987242022449021528010933782657726368097958784587054833766386942035586570288553310932727721887408513086754403472830211977902745773024899685110132860387881435620221114224823948001032262637959390401142252536833849168163346419255416068618792439494976952843405686945805262223211619335371556599275313926424003008821688507159775639329911255569286688757215279492178153572087732301010686912064700324435503462807208973670513881053325058905758667478526686250754122616149313406943290441645156538737933789486577251239386613914799701698685598858997991774164904337771661877653436236605191504492887503799004058469490576969989964427291645765948130207964261646805233633028791415118213148815873742534929588023192690142838075376199277762599647224953038396700595288974008303813744834941641487305219813223725021371675608401193817318670409842766646471903897307804398508957190447853463124713057711095948100683437836119460141786398870156189485417236496889772789438891643094388620216568344511290543456421428254257329170974956901282120573347352355733406777538694737820270820625169392587556216906760939686663218512282738398500642471873324732494981012816334748103257759666578021205527693690943442158276031562962799734854213852518622908048668445840892883072165175953770360344972155731702854543489783759821383950731559223390290228437514605804296853513850125614187047280333497431100113853086328043043220272870778235526310877110905155292506968067181055335574998498824095629735637728696505079999027315499640202796574970595104200862118928279169469451413866964966852934814435281464771736441738007222627804562151094235627716659459186773363176117931794190306753602477389833327080230547681780213862969064678639418932599070422217481137843881916257762463232591349741907550504420955171968721866276331326824286923233967626099050179018414506149378685913761796759689123276364706066220441369460340314153228970794631205990537122125497231380017836993771562390857480688991774230499041187537429309571907470436886235039590341832681296413003787084207418044534401257370843317764912355100665844805639409551149190918999091322804482830978277034231597143753677332259559190500820367458367481657158389372883084769453410517077199980969351372730018713498308413202576780526373309893499150120459208043368924825397960876049117350400587309849610390950527493325637253281312955844821253922321747217744489972878768382331573746263908158048389783359128704946836777902879063186716960053680448324233139047576846496850960943612586524441590361168303879223689897023047060168578910543894424769787005898037358571896291309333140661930662709796795773223263643979396302760573839518881187903987841250692164763063082552654607113478873775992623569088870702740392024306045272816356147716039170251362013838068257876457812205720416692020522925673052408613032876038133766928858049198077749649630232940580989188560503645153772489263074712764570918720219610274986355840353569010459956545210018267250031177698068082830324322755767231024839716687502994950893882935405190299933618440655406704585080658276683556843438901198759536807127634719730148653649645820318797353203491376202217413242583541045784772245429234910824886114261077406848727743087614827005525747405258998149232953723202692387037911141162617669159147306206106271146030385651857979926678935382592422649097693636174759273601865638728463714028361407120439603824224062523920599787663767445756677201375207046987293098056225103522162991984060724395525066256738592967631740227153815299931198666410191276807792752545106316617963865181405042719044407862764856152065662285861216518952670159836810438677110003349699571356143811605491909427971285419267845283308596348926870301455585708657764318288590745003329459788594429817015724173411217019662245347022774397147884209867679655930296195527040126783876791191850196642634870030754068382285143793087971509172099979549166364947600039995386064981743147610902989421788873973250016663339822213772456249071253425950526882761912949283926071727544649911728332074604288538486420038658471243969211457089930381022286158765863686915530305893299065721252749615719464197781370805665936756095904029362968639722810117197669199279730320685162461948974673889728484863019865882857630410931772057029278359052071408107247663411652204466802184238767484990889697773304264878787412398583924468961570954369703499894035543075226816503696554472892319105806362255986583177972373848217019866121359606080999563851948544936343145468491477835314807261316356574480536140080549551919262682840677758554515652416589299681792021355721828847310396308049016136350463568885899667106649186382419241729065174850092353984623028134367332672426405215459387615789038260350379987568166439468350880640149224180754472459526919051847330236977568561265483772211451242142224859397389687655310302943025034168781107990006135224002925948970417933786044959844932433435663449318951441368840662659449924226246834760690990126229908625086905172058140388129313522206981121974258808706413607942807178497616688582936362395896181119348751233935700780367155799700582633331374949249656071589792331423923764161664154932101397516878019581899610976205664543320917276872997478649994665150957235044797502349250316132687439019751725861154545877630025153363796141258574630879497169359471998874450382179734297535932195464064722134609107870368327736471890386748634490493020198949498971441501848033380887384873150197199465727036743134613471414370893476845683263785256992756585005681194359183843232810243951242249872954892765304334109066573571942854744013591089917683898949414433334726777183344997710434392641612526520578608885557454335693226436872844031812886954932592257878015705820016763796737344572253188621085631176199046138687729017030591735494511010134672318016969063487761681179565207507814643452527946271613511683685979465640316835904081928901059589022952168672278367828443480761808759487021088777289362979251458750989812052117680135796214127698631496510866853475189544839693837563222953183912679639858559500530087505107277535374017833530746690057296010470448553124876462399906765639606820187410211164381985329771132172170176148132493202854099531847386050913821006855538844903147106060962652846146308046148574467379879010115101080999420230985880733236404279261803456662494350928880334487524892519463920174278592652645741862419983283183544759863540113842838118360268338289083098000090490827895979391569502024328565125345525013251887573665397767546511764405207935246855135561865804785079362319040987471029972826690996826910146509641344316138285322961006821122535400558046859260583359621194510503006591336568639915652633881475369217414078010866648313047702300340559167363850877598242557730392391239348509469379644807703967776035589793675136177885414419040804805190854884196699098020512747453117175147130497717450520006798416140079885766483107515375383005517419825946379981982542787461582650952877277302810893241525036750424043441339088203622658822378881081084150678766193544265636272338561833570528626753727181473821659414781959026138345768836785614046581363585857998344384495134326483413568027000372441497197093335789806461055923888183799853029537284429411620849164636593850388633606037953293805468976690265517359249584469471890931150974923570915094401320666703563248766057488834290625544290513445585955625392511175118433717361781704195418216046032603938026855764008803307471263880188002340230404444302848002847349399025875858646968655301607776892570849805973827362932527487965124322154234474230202421625321140442030858513635074631572297073539063483360823751621514829816204749001116888394097039678633821727376067126957305772267231242276563751457096215268068484569814841605303855323889690831047577688912711677387550970880030085858476947508939876111783147081586453415846990354662056007471395662716363413022707777976408681223889386938418001430788260202205629554256299774875329841590822299661985990814561136712032105646804624625778690025723193405386611454902614098927468007170571342540745303875985032272214040594705860439947186102082622887302228538980916793255277862620195609171491076810394088093090396739190978364037510588725865913202737100610089766075329648245476325135145420453853352962044159769796756335514641067122124291580522507640357732336042868027537947516464156839844795474537689661588384187829932170472005582081902555311845510883974867740653156995047265833812373886245805847276949504799716536798102435961221604083350782776315790625755253700986567022062623972845845765581534384698842973970957664676182752971298896355534424412555051472616893560397589051859617794874471241925604560642358390195271282475184830031213963592381689818435174218769986107029702456489364008256452887648462204809380517825488789526372776113982748521965201646995554124264465430896235300049040215276035085600973861427462429769361797407781421056592075357439166911354480783309556826726741450223073565842042300583880226457293305335669359044037592293026781258297839909589225529410163023230273300184887008954063834167400122133076896741075162530771549689282049639034166427924962886894819439397081208418319572479521809937397726031944729068746194810779139293762629123610178186447090927940460108178410401408960754004659023868254736114279242786523279165885806474508361815409474453158191261684647795050462459222400862789956377708169195619674136991866809953320572754627890749812730378888290310979011809081821218189806735613518499557206040416657794363893885767730241845504574704149542423302164439171530012679613556401603727192194916480056672023624859026260593116510067372698673325547960579978154010824769245741477429371585599491365397774075964358889010593779228792238931913332023393778914377119281721020477405140898736902488236117696025436987530101510404183414798946414648076057592908103280085848702323936978045724052280239923823942660514151877318950218948132895608076341525448871161836329529408726130136225598679684949396782473390420111401385497550365240699758199781988112019662268628111098213421318397478056143242203100563255350830631922604229729183652972271981244124702579448836601966004638493369022244438016090137669624864867417040557995931269832353635409633205752562991054087377435792690613082031970934451718017969178380987174409752456029573562669780870958732187403956575884521756632883403464882082375048419366197182181495162041872379402821390177592937345297137520746005292884981961214742227952141970463713060457372921924229383113465830949571449465688971204975943009575609808823443031303866404581826690051224082700238144697852117141999487680332048107494377382701292888722065468425111038559671497626079439194745784186425695184915514052838323330643838300496917594176989437614688763497945268856452983645931643012294214225794754292589023196179999963966715870447021532359113450502772121356302149374998201212866711376159905315628623319729008890288605626426486146240840870084296418278143625223013586534093014279595540635602726155168466142604964450304865778231368761390151718869625177009442617998977643596104707582613423783804579772652073076825791405946951350497346872199126333752874751193939826602288500664920414151971431871637654897817347923347188218830656810513036449801542062380393956662221757560696556441136119639470877241810612163173531132196561959981136581881835258104547449058261138559740769379535820326131860073795037437607204596781542749768049103844334946051387204519105131238634930270006061162116015749908402844733850765235627365737272201533381909476324144540840883858608607537039264587617623558504989642161548894211973344331436660295693194951802366681959941310477575241916287693426226163887830971084609315407677281754149613567076624948135471464018881312728175303175236408575619435498137401885549017729442709300606708394463759869666200697931666894135920128679459429630052909396368349570993670103955875584832825286314781572964749065201265626445464189735035076987172735015731243994795546128426743850232845547485252770880025486029026832074075068398461891559522721444400133322884224501001656139846018066749820507273443644276043313775209052569950405014114270365473931294527538870631501187276646135654249807465716954928942256691253878963479510056600930590855708319356096349973746177984064624293075272858120063112959292529089570102522229270348921230088513062362856127246065715826307849962121933193532386427827202427212135831899592006548851849730743021806793971403690024732277260469086433411515353193284656360102993200426393802356855119717560795918902586468572664810910381918043877850130961120481884468497163750442976852756234822324322818437769079442442965518817237350437458459575309642181927005596318459587641815476955124264230651058251697561154757783978372401504413349018067151270388854331656183927566269105347559864044913103404150174369625749819518551634434704436877694284150189895418876272909912482665343792440589347973451346331437721060112120476869144315745020170718174815923999090703471831830620549369507337128957168997594938058815924629373674720533792830984345293512410945188027300231231710991600026698631701669923973948673446075975417703069141590222409873397473946412362637065619769664434601674498284438142232799250309427672057532305574738109887034630849612065302461452184646468271716056416926348417710280651048946988144375089156912904992875881609576527965904161667752470281503434061588749373487818092046687134225658940517842876140490839544042220617939649866605967191447326058670414625752973967863669654497610406052431631229043415115926911601899903715731954266588667540981271465902207834706588719735066775034635106283929901202340930605201965938882736739595334422930461536807077698104892735078346878166231965513827383431980172354261797668843078293338231765143175077257784166231384033588086964133731278084721768671725985261350548487999100338452222893164255262567514262006789944972257287611089966772384967153853358225360448871788537072582283045159893679259739457954462049510951862383763842132191203812141463547566670378847339831522755276162461178135823466166475568077753339696008061293082916850985437637543901734784097642038898508039311157879788751155491202006716030369498893936831435680410507446135425330994616877060833794160894498339283421359960142669962346152756335816429794524450449809371148469276186863374206497811951265094359750985636039794685559789706937350713132753920451672234915334032501529897779233918984654371977299195640184749784720415259379647799249622244565099715791426944908181320154796497749965887497797255366082257909038098871048874063828605564586767572756173952089853293565540085962783852541856736863023721715747047204002502387978517638463684698590074359033808380491708733895072808048818002402383605619778494160540210684715273413050745944411269454750247698582652589926832503554209695484204728888627836783300652830200486951366083379784182161943309324122820132215770720871182628741017137492911636933938288153844381043557819410932086870193992528125210351489728074788092195397673212805215089752515676991046587292120641886791237317859826503518599913288455724672149230232913716136638638819037038158293828428606080486123787131148640112205504545132903421278262529194680856102014884468375143576665180729004565134822533869629491226894184039857721417158020708741909877556115607159544758788054032063677691583304566271718989391328619284557600774046478801733954145438387273263413264510918874068577932455384978155589345750603765865619949235402399754853574299970851926723808099913614242567783961970232078540251825609820052223075921572237286359504135929736571329076459735144459639984399957828660450964058797693760838574929210344237244436885576995147659457597968934707145697295053749579014048711556366144293265535468378969443927790893758481331902001792852024471802375861045668540325545027816568575587431878273131817996341913300545778748932885045588976408591521899253929627383031098904837363040892474899569760084168141545399609307362940906694465855829417267121977780482802811007185639060844726246820532106723721804835039872247776134780011901397417261575602099053207536102747121964517903685118003738290936682407594890928145563464282541253861632608336134655825472601236414846386562008869714090306360229527124770006414209295549916770416587449331168031885481104031396705922493286680752735916461806794531668361245292363940681514628688655842894271020372882523246390537004004400180977562322092041354078131934466294681060816278871620285943504354116367958625036542129710863265030836656144881464008419539738022943995143603591596556501574568810956017054463170858838764547035560439337928901601667900692822181294428130051652451117879084838819059753129304277846762430023886309561700330286911057673894480607905114304016487636669573101276125803226811709939805769839252021288094614464249750315863370462850249801752401526787953107993830252971459124832248724282909682696807061075127186651505329933101506486257117411599992347961179220413660600984581948495982276783443734996373713985781622881281377510728374612699846935955092995649197319893880565950287227380066787763330981300133709047833516245739482134433726999809752772408989938583023899176658751435031091173649592502542828741806819311067220253005756914408168610017658958668892823330196489380291208288550938764316751210076750399833957585647067354866855683290482676598180252315967163638470362859508226043753248397850481299465987816721486692078930763015337212312845303373832347842496881483524081429683218081798559629617782506569637485223696529592322213365034517452370147920389819995640272554049783847927138532962008653274236881358433071079702740851906305448995505889907064200543737460345115816475519960741394135801544552056576383730044760423302243268862177494972430348478893130311606967272268799623538382641379175439334964517705050893558927979325497193127207130168486942809894672521313122555166249981993893109085607636068916580211139486390154433277335404435713528110782451262084367774249218763511738616497777488974971078907743061716359847933664588757508935973351462145051953825270738268478506820657398269618521307969185064223935092283350628372487323892394609273644476982303020291902556078780996732645184575928070760632111000586493552289470920737853296735574333814446422081956109877433064149280013517984708664220541328290610405528268616753328251140022472274922903558735016609277914660274049649868976575217456633375016262347781511141886950453338055903252712423806670631888136191858211745078525456006788391732550419659482245863890525933666503941947602553295730808778436118953579288638638957788770875623375958472743826348648457882246158691688729031153314714149150975542721215028396063790198573618033567635758798494283399395859775557279322523026722802483349533359180407290715979181604155751086791594258741742594351542259438996692764140025224469872949904446162376010298403034786765168146682061433081712663751353299654572847805080695428361028309982518625834515274236301351373200609898854787982668163563420368356761269778319792068808774037734277737962683617986619225743113866887446018889821252340381484522464036216643289137869700153347790716902213987410633829780123631290224533752909304703188333235491185529049526056187602564241357950404642767470619906709518139933471772946838046205615162339107577928579404490866735639031023169569485096291268682402413058406274881549657454536249740100827322578758433035214533663560691623761270570024677550313771119138950104956681688179883984398444673966785620411603286776128238887684198841972848463355203497883747375234724440677404181048670382522622598516651569817092760893403971042009252074120355387205427970131457646825785620964015985680685522227893250062709941024031887157995817796598314664696495306945170054762437283705694426617236436280012054512301505046320687268582928284894349467844075309455230028202396737080099688323249419095297336765552182522430727866901066671096866244619541486837050046160513719320182763984972087943971230607771616563610926076608875934154893556412070098005663758088099180016471963224408497240467229097206865729033414193062295791659845913449626643909141771227349183121021003980624199910250474407634196543203959148168393084585685295740906127262516334639213620529829371561463309204006406023839290022236803169469844495602589690643807509131162046404569345014278558245638664866669185860298309868813629188057651319920245891292691797092982927679865711735282552000467855233493420358409628604715948091240902748840286142678342264663933577060570913137531732724350599708320538606903574488038879934603619612035217639283650836080045830931451921292564832870391203969676540245668723968362980491641571546698680047134539777356958070483173393756452197359995720820215178091237576575902737205273893585510208164561223128809566844214011414892186019835961187892480932179718134822439746224800520622611841458494615062761113634874994684829787583745102510768477821658467259508343003735556644579483481581181851762504104997211326363422753364975790813309381169895015540394879130875578051531041463691654510660011873072774691203403346419961434696712894898851750132291058992982319849977774033587800344316128647522939568507571949983342009920026728221748681667729816979396364014414128919783134960879499132613165881539276014507455254382010794504632857243043587691786137189736444239701982269214203244605730758209253901014450542074368506547652876532991281780508027452998773826204313356499565186301228787077134949394192102652794251811186481666720098994027636227511780372664052446095358722107055962181869906980656743991512394693620312406649604737578011556531598871667832800763529626915107346365693936849891757530728967942414583490006945990478173440522868942060641632263837952994418604359801143303254413563168812159677983237229779579071401371112306210503544751905296298473522364895189654484278248825155421787374162159020580587619966811020220180275035594138747224110294238142914161339354260402144783926665293864611632400805112463125340902299073392272232615371116645071153256495047864336112042778620324949777536627743635674775442808060671125154689340367879647560671218534148314916934721219776573274281156515477965930250045253862067564745779595849959249875291224831061888829326200389159009535980882884756077818531004841274735887618782400312826675375374278298419105704962272668001665595123878147736084938481326973013048029407507983716738849444953256965538487064840315180747777061612622149636098885884319843166315708133171315366536429352481359303239427372251841956253717354504850691897073025447959872300661672570497665927704929295791127504401450983624151407810517083671363246822058588895150752307746098197087724489179510740843222855634739409224534795245170236826782634933094042381143176230778992241302840423121674743075684744408834094460919555537635813711732660291640310071908969757419765312351772354358242828739227155947841642469683184727927805189364615135264767532112217102361578588260168323263182504827018371608010397303297609074756679521466506976883280053566504275347431642355389820386645008098278997991680503311236396464105763703254284117754954401103795413104031733739538163094329003322955446215441272416641983925363243703524608337712887618339563991375567969393584476284227349027143174437453297582057198429187470042768574804902020636104094585089206931645956783636504070418514696660884386468752886258001052578158303031262694463236840085642230979199417224358508201191715328862497148643963170330224450208408148201157163850205133313587297449230737561025819072819622285547536612144554964793092321717406089162054973765844124867396783341870525562573975056673553330395016803038509684010376573892501376762582365532585595595073833633361323634425479617534640338469954731965647687100591723380995912117547968015733345118008840656343888673447139838505167717202771862093816191275468966167145508844120587592225289816561928527437188265368792361238231296573041331742146461037176354092719249427082910323166306835419656003114613080029186981523773289065086310277743616406363869338181300141812597090197711489395528924514702040760778146859415556888374794320921113083278462639463119060542048440483984191410335043537506021155958040421648648765913593740330688886694676756220321731245722623423962161451466010806505845254452263237655469993637504017848582625951090733559827852408355497923714101255431599725308042814587999408431985118378022862124697396073526797704623066119834323875400773606090978346325334206124360804111874355802303337353811446820797436373408617113168561836778615145202691815990139359509977499515370611344877140177453109940207314603755684497533874660035138894856251973157466487897740006606625768911869637992996143218799763398080199344178341126874192767857559424158094132657969448467861060542369707808550636084805094215814355276042596084517927800617252522401463029275747474237455244670913036459526862140278869373180556882242710226049559354744406074525097341871686963226053344590783783124939596782458093156495097855064498822624876675730166378509186466957777570515751033862197885064058610656783336927483578118743235220148600101257081736884869972094901115193699568864797514843666923300529686804249970614871412983046701329021333510030092383780776517148069345962434951405691795758244778793288424718953006354144379557416760964843457205102718476367707701251469191012567747001094730084696098387757999977358556159292203943167710117674159287329136289098328167257635119141621203011200195273573116475885253308276149968553963972720494469849850294632887223840945849840390329651361075044367091964553669703027235956737753740102940575201199447909612766271465899242998660462779798366681358140014909696595495368589305614751887207062375141369785958989970660858097758603605513471315280562711342168447750615395388920986682516512006778835575413515475783089245218371973614908373636303573857237043318924546761808727960857195330160513328513610725828718277746129951857322616536531537385882712345187495170293571521335961655112669865425968597062351496787758428852537852918497107719003294990565827234602202206871914221098015556953220173874176471641844818538336212814150829988264099249093722029747705554587365998094052307619123590781401037099786994335373865766508724432753173462128480912271715849970945101352274875204152519425089769072471902676513343623981026658815588806043607941826796754076550443645756478671371500763438210133626957567881466167759381667301775082452798001259840013290444313912833563195899635707674808403755431278503574550576939230859465336949551949550882299239056625561386748508714153933623264834466370161946543971770253959112856405916040255006096881660542013159233367172863060438114470414754759023071498556962368754553712277170192646468495918845815844809112747264742940698138726778550089960634965377672694443819027549841968044495201904829953654975571076931637259128035546119817533496801947868960665650207773187820482841092536394657420753825852179964223037620068774457394315411624134214494409762691550249709703734752279272122697491822048027142976471477458532878736886757184477676163815768490489903077404203006869227689356151555148328149491380026387480986110838536147630664878445027673014278443580165978019732005094901725876020743468641588559393923129648190862930359237082703408093179728122005549521514235667599503566877659759828361247404702046327467242876858718545151794872308976576881429929378259791577063252710803063703224701209596629580740712007513014175165536612619925135670854188536554732853168532101545479811738782869544143163558319202758771652168198132664850029975716689668815930573947246282586916544621191600438434344696076189565282367690664703240558616665374221897222009324662962783532579639808577988221774877831675767724392618100731159262351251873124745947343574297842057406323375585538230887737825734045719652700528607777176463326073792640116988294213759763657751134059770316088507253122828532447736673213588959907852765409544792831889868531002586246053326924562893577878943848672324619968554652142962316007008596855742350516612228114850554730988167639446536259578466063732995174664666257323206532463074650917577300624779990435836892514693109631739745457753118308182572594860509258404190890791168305559091874566680499371934392759391880177336965933515266865325389240384248914830587001844110260433297369418829594586865909793505892922981926991345837517741365717166896581059878232765164429079111356113763119299394871278955897342560516860284421723297456262872016390403936446225069690569403741406882326412485832728908998364846650401529035084435631726458659903238492527503502797973137526885097398154717057721790714737307814633031798789090186457056412110579218744365852381097021065459645536258144554926017652550880208676562241690634660311222627021791009586110992984772929657481086825816343785787997434777338863110653354754267697722098465098616897971250572695960114175357575550746091784881610469389123564034485071768946614300128285023781741432574529769612013937106249563955667225870526304333485755906114829472150545648626084463262068245613662521710526152366005051435935044333767865657047863529939179748683624940196712183237694630689521681084205190503571542214823863649038447550639881029132671312480756297186267767935752555877954103493777763031154030982843337623006563507885854202199244573749065944561758298689819169832223213942634761674217891664603002187528202155493322513744104606537805649539691807212066671299733225746388699301023559097889271591703176745942793376161621448908532780673345954467532122826700955935575052362895585340877899792830376532490978291049433594554200203728799931440364906986605612588815878700769588868890848692427919995477143937671424264208618329817135414973656517277399810612936500009061124220871169959285211460747417620297968819292254758306381982465682743641348447430098446704840359551393492322669380468925772938322218292809077430622371120402204000791803492549479802331495818170538410755544077454370561252596311965592880185198256824334081289477277996852837879713369972705959714018266487224506698763801979007889779463821833701471551219925890388045596539150711460593407511758642324334101805457558701488011584586168770375511126087200357120042583060402874932498893125338239024062087135172221142515751059108622825388538479517238641974098355291365004082574088706681245463080727572816590680724845362733831373091463733403495629642473527862412268858512710297774876146113845677645471443483033822211850937445954592297754505048832973115981039484925554983601304056292079711657238128360499586962994182316199209185087864197666453377774703845450074282915330622550271909905950754770771981481357858646395775357170415925880975595031059315056055663351829996476260598113404091192975918052920503546138027219642518580139453054488803760494332615702290529037567938743088179983486824540235826320710273914272021467245921058308277142246565050350756112347463697111443166375695021929886943982478037768276838489151393228707878450053745639242394537171025955323742548977136126876190296848882112803471598722678201907163460446486612390800913801775549107375152945719351384347816364634910034920448593393780959705603419066155936279926331117574750609133043472041065078635816176884365571173810022452662306117307921957895696162627070649306983108273573582291887198269182307946238594373116331284874338790081327770255086439694518121654052044107025631518101991171583663602418587452830802196145146802822011554669443984954244976020920763835673672958614594723382313079387324389826225382285768332901139529716912256513831905674287743737932802732279464230348720683976812630698263298621230082064911906941815987914551972409856674827457540456014533566961667835196455964334550715417733332806408649205449663880532851082877301142733032046034124692242541347551038735281076560198595881916246252070724407416173219674488571197304362559978709273101831321446289649234836205033506116425968758151517238322860692549675472898454012712803015109652064762912893594613095926299089641624703102595791049536626912514198850486440579846036618974180222419890608073773383329478440083096739906639221576183926985842585294249463466493346499480301572975163952425558169302601928070790228760850560443814907956051165853532375004164191679535364794830401286402417199585738777207538321295147700294217534508313431264363961871598060360407525496161435079128084864091074556700163164910458059970040909714866222112048673256346413884595974326125680029794710247191075146925283733036973187399341512441113445838721400701742596277535009578492956170834627678549447278306527527140442365429857359580526671195985650435660864429503455719503534260900437849664415119651597189747835273345916846663794808611363005093028415861325743343095667844417781339928406754033322340328811259884542119710248658878673741759687434048580681033719562103078351243603862812843235288851950058962360583509664043515085665410097520582559493377497904207382446566537828876217542009037353985441814233299474442807955991697142568947983345899597832685536542606611477146922843612222789051865870303462456213528510388406873452947231320295568069023529887206713943569038788799108748382813107931424932924827329677567942250886449286051932736735078451657696595528155454596727895528851777037121228909644549968335894198924441187708769656307043762168480086578414248730247841662974070171030154112725248427439826931235184137013227939755498299848505226613266480440139447914736657743768839025562014233454356553225880996122796305290018296544782833737415426569887989325966181351689012327332088659295325652526181042742762312441128272549085011749893765976540674790291932942618534904956986433970257627097249871017916254933360588176748153248249347678567334013414438163835415423266005249066472869676700437490502985673466802767341578707353888618607696021614118065877851609698639334335114807388162707447777398106807528205907842295462984281767613710820612401030743109755257250616010674758731938523540270912102949485468331242308000361167703418927144956179588657630082854678280283297336048537345670395373622198340107748688768576732517265161836903989740982879080688284613183954258556449216775856278012794755054617328469155202013905642766161900805168076122464285051633574124279519648652845393159533204538107709949896267735437313110018367209204451373091258369108680758246670238330841166166399195713672160913764418636487355779571646679758385200462562555297420624906540603816968524311632329432040929222013785261838532453533175054290213231791145359847241597770795155932667743382818374980764243924780667117618515877968509662381426638348323970566936576578578680663079417346406208507530945257433832807510401472724240178809223097802318772461582746462455949419171736956045258579131109565744721044667466591048795767690958775906944166820000338280387336038250150915760629408751746208955141467848923781216340137583815282694976354263688307645876182191933579190662200366744376099247726993166497687275581708459251139774756815814955543046219567765207920851866624790360548943041224928012043141465967253826451676563426523017136531836411899707976493571021061885119240026392444983452891906727553097621287668590586993019557509945932844103151693404346011516728230551661808957265267244795988538446005540731313741522841694851438942486996890387938521923514110070928020753911431149469939361660041949653179374200198304182608651218567073305908371165505087275760974192448533328514414025459320652277688313700569064705357806691051447099862031465013789271363894134539934893170516406573186012404177667264342375086633577126923519467720728038178522604701403392972665194417126183750753664299854228199591730987117446881255865834186602373557137325106443016537577008981024472076942561845553956441107036549854865755035718147086262219912071560926519245401128504761175691612814045593008404631279803124466558728535042312408732291829031622093921768293630883392396551481687894957264850383896131070120469268252826965793612600649974825768756126284861201112545809411231630623687168498783035817548597120687988732560242414892542855994101958309253384721603834620953733665899702187702430154814207647910654534282294705348217354096099612124387019994341026171608028966668333491074686495987955935306595403364889950291679922210632900341949894827461348902523503067881676619807930200372394373372770311178083430879573934583364905590189797712821559565085224863226906563029351512388134395699735569066541003837035313899119076643152597692118994244583183722456401614654363374960875136904218525480850868896966191214488252560821031268355354038466854174466136126826284564869658102412444427813551361425257616864612819522455185406934861105913653694994090208628658438653165887993334880107875085407018022831545651139796208809163226452025035681886581227505228380116020661180804301149025942135731887585902967340196539339799111774297120256591148405224778673212101242958847718417467500375210349732031583019557701036143643749864178842348520441971353886450659622306119922504098930787388077104383674493540575844877166467275472421256314430858480494057047528980722997455409180786906103288693331585945935994697622240403453797644027358726815660135248913076976898829598958186680723614839593541201800790378414493621861492727046545230862088574642155833508211098168674239357910314271758692448823344316087045257281508097939290235917490306966389180783307032406498920424756719097787384788239187982825459293746687125378382913288336909357266137518812062831063535124863931806203762626619267957301717933213144936195375305179099468683461448449298148755296758993219945157823639994609930857995387344167131297827770424869029543676853858962011763480087582090164154750718750456243456912884630656044603940121086006801046902374602321625861989660328669915283505992727676806753182297199814109064291478323859443936354784294737134293106503077092810219456797912454027078480392412571390514563743786978561300432232854364485279269096375529436256737597527179198964907913038377066347939166873860528644186100720039513930071083033365388713691655555366916947632448101539768066995179782279283638175028708219384723301693824791868662023665777102283349200773744905320557020995399611107018732214909215993836946836788873669683671684891061490012607130111459258720100349115355644643696130521256302146824708296044601050086882186581802200594825077246974144900179345956073548111147588369797542718876627703501206124995670609892285300555181723329462854929213180895990858920975520309974468179864990809732841275352561387942938054957000928097358014738679983971539426711835924310558178541468555335010312227974047321174946214458341150032717557217343069874462242710669295750416348204488584108301883433617358259167339606506349017465747332491161431889866103242110776281961692180471727749948095266841286543099771893076278916332274593666436183153924165584251536640462976649920864076283524431116118616973510145189498390744218436189674650735617561932437004479155230039247816563693611623742986242524616867625115204439090839158990728922973722390510522834073262169744763425702485755773645176521051819197839682280378804875053900238344447644729008373903881299228305970788005487256223810752001624523752124792163639321929971006192441382804954863738012278466006527529872684945145070941978433678959100275734837722711499527221418714579269346795448569743528900178272996936114486051126749881120390062415915124880976700735636505253985572414846063139283588604102836767259732986792325994376307096427320586231515535277903613504091762631206704703776241010740002025414581385209488727596789337592996238121915945798302076502160704345511518301162637090132790011424437706701596391249987573351103366393159288535180463822468482363261925953016140378983068961377813821215620339806080998356992816720056905892024840889461876909129226132959320723384189028335144826354228612410833618889345983787376350550805036832043531172022344950414902415534198371524426016251104861599570588626543844956969331354564766869362669592109212347556790414155801099994553900527698004924475740089760836299515725003918139868164805734782255742145395296699200989521765717908450002595271482666241615414102925888358559040726536368111593462568329088875622482440954353409574278214487998265291694289237801319066478623886735879850562776249622922679279153006269126509687114060169055938137038803991411441421659476328839109944523124798452284676002818312454785530272211183736422972050633693461191729885586258780275091620336461222706287960371285147570439585423907420899154453338878918985965669384224734136004326394315838423493377387764308571952019492403291796134147357391450422414911286656949839247499433548311580928165971140834612224934144959515984451583830407766411442276976930386250592258264592469784040084742158312944129541359116063739677380515622258139204910888650162673616054960854334282592832928786739539481317390277892911316932194561538290564942844197091384847554104868621524710064199144183687629208529860800665768310983219780486823362596558070875763194107072449550257141900813181346139514876302785005064852822382529737936520868548443929888541004612158012701538805302277469760802857707134232199876271014014698153260264783402051231092750927438782735555739087648467924789947068623227942793176453359527033853004895278435809948034541696587452732050263334464053959099969453729526415214877374300172210252306545960723141874682720961638407849451895858923414646010826833048254198528331778354410339640531184780876352550263536098942506780609482872267762939041954453591085644415913959585233868367995270664411712762680754380754679996965578985877584811371721112204998443651693686166494435136277753798973947489191093594555672988372633187993051262804582950659118965491639949251901867531343656847682827629152272973414899549711262033554963949392958904688949521970460833630081813330630717429590624508019016277109496153254511913822469575712473330450721986431156603771620698781862185562334114160460390253963141417785270657152942633958608003937385450709796483150532747653104663823243325573998019663053705539779251346616378779075822991812060482499441917824360338492960547323715300408623334091308736726657286824223215524856067598029341505082598188568740183252437227892036209815758011340989549734350416244652253336809410401369826753998944605709115031079277981956390132235919727363817878001675177888075163184794017412687597298979610003836468687967046446571671432575573821324180525771308705672316256283201607566746954495444129488180818782727025081789341498990590553761784350113716755340047452965680783264112387588905413125225028004287240863237113948543871414034794232414746060077021299076227171039737072422145900998501402633194228006014648304695215034453332538462281223303166358465266834889992537573309412075257495978082681429025254708282979495974387437987780700761274485213029964949082998172721456266016780409374595872340486418583858385756175451634828222076803313531537353821695191343272638834734264721912147915507906454291142209456014022583897050953887452324912835237841270804199866597894917893144437539122900033744918281501982992141477298264519757137489131668383632503552696993082647654728079507406591362304233227703525545896942234046085654152618912575957681452436246151879076564693624807382964305398891531858779993302277093783348465578398189218376027839184592096343410122396817487019887679493319612959534117161031081898331353727816577136087704547504639446145984883834305542411751071079057653423582960512986850375488723922673485394136570406067945645304847665149287851444909803546442516243383609431874660022935826156757025316116687878702100622183341571989250904241991093931031408025357916503467768141986498608957306231638640043343564438548598682050508480196706601070103797628779314868755410487261025534979943593980202964324829320866232744037357348721726834314740052808339918554783650939143701208834046625802357890594268820020903164073765295686690675136117961721065796006850331693380920046829390054913852655096021943073021050026638256527403221403447139107845031488765767670448454230293549922251532018883695406220877372412913057710267655205830532441943000127795725257784555848708049004923586009300663967376607748817170980450244320596216713391429416015693968127714583334590006454047943236212445116923455479430936362273839224396669348357718348796642555349799775256669605613544310392467825658809269607596514101386951541922425402651416035657359325992961670267357174242868490285099447068500694626028314604691552356972114761426679767092987385078188495830142226364372657615079650125603355000405212378443834181043129558633752334479988304869120523516382261035226566031908304388969948858691485915541692578145842269627345434983446562505525211379633937004513946420683586373406179402572628905084934269697134913424170055276556812408378667637319261313631964670613034917489847764593008713306774253597766955254969211510342072440267525338371406678437463130933664672615807277926721025175218063208600328205811128202479916092917523082136619507353464143111333943557584489575374068064295801651678007201260157409143995652094716739942633995195755632600234417005943837212566272325126555395057701148307706344072255361971225620532215023705788770332941037253144596507345631808208775880657769758441771952547616507334101154644553724235277950303001090255591435626009705809689868962418270849676629622792872162831584230194573152003807383744675036187776460875952118994026534113120128974092024565348173867139285190741671576985764403561628777867974592473686772220388738686016767994005418158127527152895065449923037525743870113001462645605552793553748685534141976233326157451255236483171608251474414539677868883759549400471310648085875820121782087591211719032456498280646406588871843646668243500601538796478719447778519793576225154575510405717179398859772325892588405087873349213402323354933500236601483146807890195952397000341647929441243926561751545730120201256919864955306990562950457891038598125858362999793311644805993449079834623009897321236183443692693563464530409620754791785110297096745834024391752812014019414452240526940062376535803630222792184091890862416241514445755964962069493569983700210311330901272353222727622605209035449435038973383045304385812679451524959875151090264987296009842180592011250059583308701154686033810505003293500165239406665073240083110314881884694801493116216202518148375024633851427371232926966522651681280305974236929504962367047509757025039788586587198970949080914060849721127682154570399150590466604357847200493998874124604363050492058761416765513077336184470630311386144049316960399956515545236021106849057370715436491232018981617727328253513163565730014011101204270456242315341959412965419459700089846648525337167246276155919766774013083628635039662292891476597740041297821261766482520101647687593193348988920085099318839286577932804695471744212110271099316218703405712926848141376842921340371889851789007049749862467657078968695858149758050808849077356283132658825480621419347836840310238893474871832944764675744378112296914587882255203914938782589599819415557018613014601969193852986043779109193650685995601712593931120429464557795658668682886864890701869685661978289620248161473938458589212883734435484629403847960563074586823420627473292261130514590942457358014969663846153344491765013559264688233847793791026639426342354046798621807511809728962982275861192010028069659836378606086248159880559671946304711069387385151462055205124786565684005046469024060640781114587011821044278378280067145523017679747556531151506397543783788292185501975179193791436135059440380170175795393476515640421457918887571855768157823825782365379043821293463647587089048590498321005077986825295669058336713525343761860852249610895294430946667277113152384203941263490781806450056367869031826535942964959921847193580838327429663223434525628918513558933296520637160553850046006655162946812696970277507096271550882318209783114812415392057000772925347280947862121772508200030454547618317401333209970301245464972906983399327223852147360796932673928147365286327864650626734707097371862670149909171371476487876354545906062045101158262222592526591449672077568187083864116636097923684636085338163738128282993887341890739289590770808097849718920735964945357262879230289985155970671909713630553007391326937033645502553685666320951563521195578920569569720929421846859280853904320605310630790573407991056191413133303958571398037863689100783871960005644591203515085553521502805886698458146654890778447121759573058935963001985037491691515456776139668162415189300619537846945988136010347362418228491052595655334916942100707991039617417714697099066000200656238337611136760447512645046678264942928337726067284878939026643947088495325963645937623144645725532117941448186243365924279078634229618225895107051356078737326989112219224038269287865293883249184797197851662109237606930350500293180944756186781648444425280271337859047565624950209459517599773299660137460605461191165339933453971920759024326298854147577824751817935293653798568213253753182177325453697884761312170958478704176415626315202385725589201397519809348252595812287681434460077742981366714542684469333291551071336767221823481047555139745575244218076754068378077183406644928627359709792214490886069221904535958185249180190901693168264938899103766985473362253441737308175585677432381783918845291220711935301107251250859316468783617748436106410008083729846746653081597482316486963950906934872086820341001120861941030399832875963244079916674135143582264256339591639114054035856932263356791786850608417852632148854271029964702342125749916136360880365539252496169571933448789208567022778363259246150112186473742099226375703128008990613685876637197881773131454369720722671601014419076431895775211759364684287099510483753593593256758073317521268134570802592584273982033896724799300304750380176125891420289159870101402246903988060916897278869350036758047209409939661466792093108867304222914682765388556056473717822062067982933697644965193470867318767997051999638735020137792907647018101156665910285856815725001601974769557360589974892037798286256349111175147559625140771511435446118543578799394141018806979473228589600970668468579267887149656512216543096798869681739909065225681317129876976409772986862827422887013321825148933201333275728729286774942313412126040549688323339265089575034138649368244971127205113074891295333879790181761607994014061139590833098727765582828499732871855087903933826876397632334874591991267828873821197725890831425886227119344774446537887215608280271920203953756538861122988827834631600792280481684627361338126317074393964657426350065569999486646386935574437367105286551272581835118434553632168885039256093899512647144430171287110992542740223391737681091811005156241975252745427961151657629203018719632668010610089731534419098622724280730266528913341653179171236070360123904225310165846782094401416882435249609556869993887122791435271644529240741696049539695229889596266136298687200429649958586908808004092020153104590678676237612380230893426502206494360506727044491706429085306622366540557392689717824834717316616724454049898851267328950740120329538979631096107417653357174936585786806551431390184863516931511292693060842985708721638841899719799495853339689244763944654029671234660611680597867116029914603196892542823232026881846602654266585683393035794165846762214231005072744258453518369147389986084535530955364608306434896066038706645683780034839904998968323732619370463803912043638138830732628965370231525505079017914718637809674094322742845575063580246787318145482547378558998759304877746850998541588577178089216180246289785357820876803294875854168660663611209238455452672080940852290762061967827834224877024382245902122601421330484258410850790407883386296670821478562395268760806492792167646284762265327118702236512860797899251017386585026839602310436728315335673287622129510329485167241239456807906647619690543020430329697155352878278416746216075940644220743932002735269443662524665318207939871799920478460776650005563751250402604614873764487201589835932851095123815121968790743644453855195636845120723793649479156238375542896776639368679760741108411658112567338657812657409171496255466893992076660285352517787191004297981776597699763417324016648530900963311744926885302136800288141750083481759643370836165625799851316319121633939052624752640564633566084822698091792923348538873405183191901478160569971096506949732792893736466603526996181685293711509268656793758826757108274497949895671162268632316677422983312263499167089416241394016665166595239747982441275266696862564991742807817813241871033289811199656512719227945367599474085499760835085621977436780892128684345114739728106799930121721560140032442090414285376842925206703898510782245386333164867845840420648894557038053306221209650536055271667971925677237996810655153264269579635926346436829753853773479823542951768421620315119546587136440336156298424481451561650933929186091513448322296663761015942389677202510406578024419831198850067044439092661251930001650411830193136357971068928472479633740333173521675018781196730611920313599692945290858716431782912516693224142756683537157776205550554481858110826681161151529856025985714998143835451058834392401311142438994323131045227864237429423228793980721295963480770298746569177882607877770512280734295977694717601617648230539550611467816157160860276030775999297913230428307208480896002626499110984234721378642864497440271141434023745587281407359239565756858410027848583506861739676581464245880047709178181587257303042165554447738926046480552837002663312411053724766111415319559515434206025531247451090164785165784228130942847018340445955095574429349830988060248231693720211377541490245265628972191846197433900026263800206469851756751507360907334966202047900716975767428230250885279949161078799242352896672809319866800052897533569586587877429591211982712892679134601872962274605206439699769489753242524923015344740019948569643621898670447174406980093255648211578864591866832027090494237630665716257603518787643025346060611807183192953911922350234990672488734798931470017007224933603205991094374271096508685550327965100639397008504870803855961667999500011909742630713369014787885179466185784291666331155392846622666422455981470651662962712581934375396582956938758714759725463982218762624190935687827086113446026602900531010753633167961375152512401748619074947869962166159895112639159182936123686349312178723054271389797767070911640466246749657598721000015412242569545421312163800911113193463625298363539713194078607712106245054019916419216411585655785646003064209982499599497031714471330210401685990480581067350693100260412679709513590777886124224314527761144616599845277944112702627364583663635573714489834875103662793275473889304808162198227926141914365868667535542200862114138904706379448251632491238171718645777962111552937779730889174097838520863771769783309436191870396979902002602085376312803408280095219722996223989778354235996033032019353642420051912711273358663119019966147766900852573331134584673056306705566887351058553722746031822823997652197719049951070997158731290149106110036865818724331107539284996762902859035086281485767268710087980195925755666989247682136979050933437390572965078570243696657144459264679081487433999614095057278919806558174835846019933313370728136241662166726999402678601811246815158351774603106115860415569385192570950446142184735651648876208766388193833500643880850156816483388788182817503540776963819640099787499333527050580575822103044082492215635054803257727305069672541811376497822906762585534310569102903387946545037490965680280852479957675571227783649735044687860220057411554488080855539189975593746216307066068885360109490011133896287984046610755437155660811856688513051241772771537559977709101044848469812003027892094191797847148682036371451526867348039955801021686110969290837023104931398281988128562848679330207475196221728811212273208379105478241916079324897833403168923419672007713663971826167014342111262160799104599847926617186085058065493147549445060360196989813403549533702206609273151604722851962307621083493729092509421495419066674683593779065942568942926689560432491268678969125880128819048500862690416685925090765637389623205480339687156170693739250679765244708499434129737743229809396812793749564592118627916174174857855296251706160748988351615391999907918508113586252736165235836744897547195122708297444876838335682066095867903998643613092074467568549553656615875141753981421239210669490718624437622332841518748905031403834973272669907983384260491598886405301296004525451547161651260701890668032618035811114969909276774483241011924990423797854806053039378231566719736517033383487102805821951630094001453522454712863327448182706428165074217416525875990511116859467903458678220180298701584309646599453881902886830385477980894886207686485116382918229572991674814501458889610542606847716292490295416284335570661608461537809576026140513713677196952254416601874157498595267746332684604331072402881199294320624477225058814510928361178726127580169399452244183457474430829438406502698330965966509373663753476114987646955577254920428560463227454260473065541207315618878493884653977089339111214113069251925151192884409067936793252102016374589938158275130627811883559005160513081346502253138293115097222301393848800403849120640661798616842742182543224514333923213252974351370816792788090335776225163273270837289684280665908508302399562581225904003744357952266543523103903739269716766011035823554988414503728272504169426964300325429010050343681783756082858819653949889614409722087587478597023206488065894062101011168631919889192345984299206022383159756916938304728879102898469690854773421278376300682712379375876224009763173908415864625736381563213577732419276579384539841916237890956458060299829040839322830236917260193106684407726954301816948980664693388442932124270474822443394292277810690552315837538688535563284586633428549699520108181799220928891245795772608748037383749005836940370160547750662984093674121586799231001344437074108869414268000815898821461144754072979345244480330688767711784955901124632521839493903620679616178545260803937548353500732353083109094571447734450053822054158451007063142421167356539263134437389962726992446019354943367728162308717133812999280408284280457920055720608902208235815619806649105783754405156821132541897778942692222971232853023338582552059359132579228213933069242511993438313172168362816992985988827652838356626442897421065498089846440270630251347876566144910486853698976327164609091443220917335454926332746708602525808439216161860984024537359337522293080548068544022974030220431297562197654536746253947385085554514791724152809700397944732515483207904709991882537181799023459512821144333592945075835954822477427444646799648270333368237529913349341264944229748605331834959789238258313507753704537025204208622553209686799070172040827911872676036086311103550444053217384914621437330627159917419564617587325927136764959531142563233721426365781346767357242858881870654350531527925234396011389194357370928823344296330939838813021818877214096120814419635965746612782788372761010051940137396386442661827522325244227378262187805564621463499060894205700599296055371527649554759579819308073160430789076703770553316452299439276375888059693134294102126700031723615300375636192553821777001113785244135577339004234642892285540681244770821368387884054515216337465562808570622023974724120072888832061290076059818479693220428393186697455360230423413250409375558895231280031211055977695667713727009274283785503680095362241867741382474005230279536148144772212581124523470119160227509420971536285214004940448172916420947317113752024118520957427310096834657462508842952131835252141312078083571962710418175707211102972331379699214389613557652830257823911873374311347971648050019369383085995485654387660935718118519300692100402104419860838595388280757056780966390005964369678259372239443079591537535092929040552277366085978826161979912259126397656599433294901998513703896557197878582994474200358188607858270986078398780935325442973270805052368900765844349063082283742439936431260356585486162260443727793029713605012965443327968631182758686012904882642897207249774366215034447170222986033200769985741592198316041748840560792931099891201325506237792899504727498076904570810720662237837065310872824053798722038794079239489297761227305661984265952549268356901959098958245887444713397993810756984540352828285685128825407668843366983814202409950444732833950238895519927538057576471057554723573007480967003524097260523044063277405034700179519368785866954031313879955278320322703395358611334636639397809656268005086607464518537026153775191045339000814256006376009816929455698264006708641009387625743300161204020123828468707852383929970894660318464373793855163622036988633441754548886263642649117697896124221599233051300658782663626884871715223448370808546127647307628721567144979468545099565975000692447562036573018847226556414192278525502325133953010183589280676788651982273672255919084401161035743466161492850661808541186415801024647835932400142997433790274560744075743694828566643581429240210438450823581870440767299203106011916850949882446953760918975244428736437628934126484091858079742241631699792258807966634682716060918212281819041391902201617195332591111671583169620268436592384323617738376429723573609370296354054162747130927973524629778012141676332621068507920198008854651817274649135473188203790852052704611852338067804152760912939094219116161823970218625373361530101974610020479753706286678843330196188161248557512575824528607722313695139443169515208397090465357309414412525534045205318138330126654929499690721559400069841726201974769903399995704680145651532499607831774330105043094420015972191155782987121383036572644221095592955137090676739432078426177663692148664547402553293214635918853410731251871267216944207495504754594412381782019883417057774508626186597724838574725751653754133896094756918260370499326028759248141292463482179715817512277041584461705227623073093172144357715668163025491176377211958037333421561845297865528431116660616645334043057464688671417974499498432591041226570522597005235208302316623512971982678713698760509602298748464880682664988649930141496714751214583951113949752115971024988399411209807898553475751643807068736306107344942829600374535778602729776161980384714223407941821437472395961905237090218757457914809959804681673360604729964069449224369031692058392538401445919392170318627760193369414045892525130212860298921292039466930195791111752117557417175880917860000991069996574943588997298571308770629868566466855153486348626906896487366589821816551091292775552281288124967222502410062336559037161531679761764282366096875979333381839826831545948156788664794672059121708267607253308988567997630858569554679534050760338356864554741657963033541125930623578284161391347118075000225475473712808669624745832334956921656950164878536852356020185849112909086313389254410543512531350594571758994734024215350972422665482489474913491016664808148056735954152281229171908132990003998921739665680582543177695478959572544265034495216114483542236553831175833172011674099554335355512732129092764082923102960930068500059965960385940127334261479929447697388822994127647932510423904874588389586558979548727697378645664588200743631014120317556545090139682256198219381308794948719980740487883097254683766192746028278238912392176266884499016498301470333050411227080063793596259436863650819277317986099994991082871631639382765736210679795411596570060412385826336384490713612615314324358942993670079191256674843706561538676560382644822108019455001551783576965309525895198188233336298674868663324768360094462502715014060633094526871415293961759708705919558649189576102925543566020256476927859963174131413884684964989880408381817061574685809677445367014509286658796867642496771359314552924522802430782747802813226667279036807810928129530197292189310676808487674242848176302102458324165130178299545584236065648434896594479685652765453984930841383490007992515662285713064441227634863635795833317593838708041540229435878053403812727360297895237778319184476542102381544408192500405864223188185154914930013226656952849859379304246486209462200134189258781595337262828609892209384286638609906494488361335222144670392457133211492084141350547092430838798989593061734961591047205674366700703745082972949193643110287812959050785702500689419760056610984626210878312690334652535612344397222893276867574426689178840071783319971428348333385201129458876416546190342764857947388056733645551832869256445792884359450749231952545803528932016611061000225395557557016695049484373832576941054259708275351049020234043729223984499318539112947471981484476705920226773277497204308332409184326271157505931562248684514669895418422449795439801390454157508515964835087314671334928219338356543913892203308299890698095798850998251861004001770120221769808806563645287407977034849924423020240578076037532352182887104573983358974463623059146211937520514161046219501752580604247770559429475609585323457341395215336796872954330151815578921934030387276569911904689272766784936970599048390267239131171569044040295237432235251363933980651347253116117569116991165495714680838717287123263458245425696066435174752846190877943506717333353234206312550997912076262292254753295863224692031519702446692617148047550081205293470637498006516111305273400032115808192686841874015516306828779635986832286906882108153829209118273611712155048932415741104792555033620439196972657848700337893036711865628164650087580337061187636455070103238119463146716212858720542193587286192061361217300038368739021612748657127340315650344629702693398340482443188083814567447018659400198349010206387694346786812990771013629632538276231345852053660285161577834428324449394754937107784312304242353827088471193438061734157917926326937836787396563099075329279300093025372095319962016163737617218792543419487469078990372767361539494154134114266689886178723865590242816151571421009273080584525905825713251618057286224270275387301630470517708798915361983881815883443202375953607066505651431096248374106655878689045390711934048487694355216574581194765637258843299257641169706000548315651825360669230870001744600412059922354612932642379468749101218767076287903276771117674700682335267762573317670440170029627797407882132252220882025608658635487988186859799352214424022723090393021423949597815303903577587990862324828815845474593662847775699828495227777501602794830044094617255602876798897676963290025157952562405604688834441683087767601516446805942185183123536100078515570918428839374135316358012919228802840833544517875770832059376218675965621211811384699141917826094369629943403702684692323128030051960798837116317807229069024779322494110955794720151617623379117702578120129717547055484992256092989768695065742629840355827418561324531511969818247999403197735809430836706979217475910947077132227954510819608555401773193103521519217176259697245842779714224306130538900426638809434181599007561442765819630950499679803899645604719078462797901658482332282802504852161810608644384734726316424901264620483910947506536246916988067010121892332631074104942747359652008098779015902237022688070480362906451045987747219374141650089445787709098536654190190097465484907241967868363470887525677821714902813602080473310991733813160017098255469561239611089992828719051357289510053111443017263856714994586009341200303166655996225337562883051592261278129850167347363872076507589231625840546554330957256653068482534293904331620648387153758608419635921025316638405925096374738210464577321174416645020944134596806760982620868473437748873899836740073541268403755786222771912042188068602967152574789385296887404813493267670490020944413986719394504306809052017698853043071720518309628470531831040805437202713749092266942827679155233663066141074469258332943942599237852228921767295168315375995499426978171261144233154141716598209623226093177757257709271526576020498172713060794540042960932190963891653727867871397074155635790448985706012071978986181574009720027811659833955892473063954869684906457203581179803084636563235497040680925574381406770291285233642633961760041983114880983268970842494751354113356023407612415430354118064508827524544688287852942107193841300223526943209258564513251876325679229162887790306240190372792685723502221615497004873372301895666006195218048697399437480537725752598001207349593505953574493818708052576968518386539381926414391404913590693627995828847476377983255391552653741726602581217961389785834380049636019746277228322270384595333043060380163535125883556743415259367248163760423911756890724863594510252298264723931804537635481432720811275849682559964601901633430210408407951261018419721989225348866672263470966827911565872244842394471672050662764941411474881531309590409314452781095360966246152651417434688992818229861596517013684908383031629660521566574194113767417368300807328986128005956503958929505560057544701092760636911830866809678774772081569206586549776541299448822463836304483439025059658409604504444298873903443036207093827784677770124413090893187412444521061818273220181912707179175515746870079361316372852752602586698680929805252089310760376386416802783702323601726691953200984336184698360730664352017307708880299581393405878335835267483056642911290156670700073499659056144296443301357386350057769736854788060460157635333998811430447042464084031703411382063704851762617743269021480581381318256031028090196255493638021880393432277587133469757754709967722582867111797932543113374551154288836358410596824158298671486750575114551323644078630987048651866646793195545719648139686085094453506034549984258649994398168324072855245764235660241167681944030839693815353654962707879916775767300349300706900179967692996660726733594220929230396426557113441967504513074829647522171985314421976403558013438883377880411464229736832298511320027743317256327980636190271409928139307068260761997274400057589618802470297190791579883880171707656748908233959536583631254191822164019319068896713642624232022267610402853929097923646199959338417541151007008953342389704085284366330463975856953983924962076768480856537482915987478210270523604384165365536066022896585700485256547649110293356078174535721066276959662126335211002460112061699064252695990506016744938959152633209447877220926616118001831334832923300824548015097648699055512701049646900457590932565788825155389096612076375726507625006530502240076982080061554173923764801646357189321654701241255427044187686960214093198521386811673335966049206543247823257441195426410921995136200953288126739585416260582889012456018501498553227288720177246970950065988171050277138034223697827287281445548038375878815000022965429642467794544332297913983812605959679107957620481131442643737884741155724214802866782473680245852395822547957556033558134656467530113113484799122621611950057605573521591725315119413208986138724044082266661058919234519960496112695698927086896431074272473813459150913426524536596060602299971643259361436266801445553621537979961855696986751896806115806567938986309884214375317261531770100894234370631510874026404666470065386346252988503741334592941960284703344346360762038533968185029679486501553438478592421749357339247126086180816127130995208393925122882418196421215896849061717338185772050585723950861722450338337661515694530982464007290422543484407708159500347459745990807817091973035700676228720884714961960206382420630577825158400813532001179813130849832453401326373762593868341588025146277623299693516351521967151835981796821295841839988415998154596753372517616690442700534658802430956503526686211807767056315915200585732760910130239568387611653551153587005366223528289769019215912400214413024838966479237789590688639760793843269443553976521258276927117684013726068753104595354011990187304155475940758177186981115002653383058466561456398013075500874747144916420622339876228068643246261042154455881546943449222047679276169026182280611033079294375851901288383972161661067912260060951335968221763120022680927777834448550822246813439153056190970300915562622466252535895173556453547950406545662781884323608309919709876868435444375547504709457204697354659953679664547394463892463852317366355159388791218025750927548311633433134127413470541891144110938870505774393526577391508188896353194377497361639506165604262795530986593195687585510947763713278209801448740439595856249280572886709243422608146453996512705990409710800365587538623445379389941814715063800014880023519417131757313702253532132147042551163032060901796259815279009206161876206517306214287130297897805461960964458640878399263035820302822872701061514441478853388688363957932979146957910526730337776420557412130893588400715318423818566717152045235483542618181611754661455203449249569487063589485756300393574247050948647343141770519792305660101732438618949312856929819016920378750094028547230300614861628340513395328836903387685718851777878381594274179215089369742295880317901832661778059049327155573036042929297377061312285482112091597789804479677785306584145946169991068057560249434919519175228939265453045768196745009589207691279140832313327124265265273725375222041438131347691536088220536401781733112883802566293988327335498360283673012360979524335207239453672783021982859984329028226538510124696287507422216443606656981131591881247048602788804002766288778901603561650251193488111750468875894345957398857251450732265411617567555928977007728601717195104557228612027788632420960106399156593724399291651539431536717016052705984589769272396095185333278601243327912240737029156584081437927129043733771314083981444540733406573905588180160649958935894482902256951377737370485084573620021448472488488455973540716257948156806150107938503017803248094874362052907193429964114926753480256961591173219126420236701132920021793150509707708020704286639198689745855573370570770261082476520964390462118615054345508779249704150752671761425811009785989722070817553363014010601626366043805887432655309708449695470291842915794357711093911476914950431705472527711639144538994594879569526146384927878082037798948198383933313483096596840623173444623609939034108515045526056958066076403637653232302100096421610105490056251619363156997667838142159752140353633429710142664465534604888016541144644970004632406674221372133371776385651859339829718669341111497542766278124780581161353859158496754958966579087682656112999010696536814498750343079541519306191798819543681699190413466982864645338797278027616427544714357890478336842356257017961432689309002807306405761764985693076409670032299425793685083870591123908432759107009004552545183368999571753736777920734883729820355158385883112815311314932768035928969787335818625935146854889750930522501557382755882326021480062836591842455766935873536506849704373537910069469988122008107060460399959242223082800250800726878169926822490572706563528547592266736929699497719890233844652629847712815551442482786691819419362201598991889072942114826937703248937254789467388097176777116692720338807586121465769872532249408335536306783683305361837972972694355548789512877929570102489584784883183683376277847498855559232894405827291370866253554541297774046010091485661599897127743309193601679218226497771142499034858150678140350619296809207610185870674558878100410992430461687136841796699058354925921514731341553818508341056015847288488194089778906485575423515792407336500747427343206135675877008672083924524890074317438595717599515012133068599705181764363852200201778119849120310832890148873356833959117471358530893029901306902069067573984667635061085900793664620749074228875207281483782054366310599156520090820445857883464652809150507909966993119502673066190220885331001417076963797741686477788297604860092225033435422366789090774612873800362235203503694796090162490934269032404657917872013420055032859634907278658417883753730269687260674638572136800066710680630949471668899675406395944876219592202449381470189048517003608087240097584310009572296747472689050648866788451214670160031751737772160809165661776591299435647568536912287427405588958232952955253330367995714555732932983234725678118267943618125511903110241982509214626001965135690632535270981123425627571064201950151747369405447905170321610176728763094778972034383523890635480334080428064624717386556340192469081932203002692571795896899056631820881270579576254193727891823724590291912068320272830136835963989446708945336186109444945124434681721639876620874338194866847735581300465859402380057199120640953207998604810768841941320139539632289864716154102118831368093759633277064960098058806863064391086365413808786312755115743975036889229879340703753842011086398956551229544387982413437298156841506166380316353598845384350445078849998791756318455010254121361077141625778583475112253301979367424240571732952422964589124110968467507129046438016387992897181252408680323804908028556150761370825008871091009040552883783433341556837298438035593300075675928626950982297230386218034640481547446637486243515491153225310693076294706752469852141380328010399114875930595561899452307381999350848022683636366856498784812738639778392863128722893450158951606530318742725727644447387831529887495915136063718248560795206461183313800943230133185951735253545228164917555449128140475633955389741389658273918963689443658394840906853158638402346642756736118651538768997014437115497186894382653677809077753208342586335058524090548746986851058945158781759249245510561742350295935589864698613912050737498658704910431534722930462110507911467564883170971669566069467112278571341573975252151812204578557268400219525533938262614960503359654669461371889718708113738861333199366886394541408165511201480723459654224702776979115567585328359311533058003157038517744775976551207907349833786842351166475626563964370532543770226139915939654675553485267381140056477483442606820019991420743839626264063047338750223784672477832619382125389203547242247612571073288274118602897088986129331228038577236310296403269019746836701668482690325581097197634424141146673954473713549494805028454176413058839971468326013897510761853202028398245982480741211693471880169753027323721373117282248178401414537104641765512601696871165207443099854070045600342718428747122684539345581527470570307832653662113005303997735514466277431701694007643806569427425109008954588305940937920180809914665906593005009128310308627749435114433256102136346003478128570356205966195198513299239834006413565414136055114253309123394923024613690740695080038627067002037327882742395285748026702108761169686288232725846612434819089366064458262425526477026244242908426694221931179507172945932763214392283366758911964787847082525778107705790443436936914373269727255101603440932879545334627991696360595365949274453280347570514510462444463688499856680247760300553827608309670682856476644513960564893999331457161989787162082487974428664105793130394731899179837787471450598000130512862892560729389851426402300629778945511892382201075939295266609152553650725084907912926753560286942527734223108927979252788961817108143863610081291741139798503559695059860106239388113150571242703913470554416288706402858431502209167265985821489471703549380579812346145189063959008909113092291337914179058512884535526431558282140938798667384157268555146964655894551880638701565824929936180658225174132701474674439556271234180165441163946970888288736783440782252030525173553516829374902326104625759966868253931889829391017542937221697403835993518196632665094749426888878681720859446296397621689648747281442338459929653382809528372895565980518644386121546594765656813213627635848847108235137925969296764518073886646051759087175705509396332483467146802230306257319712086946033475856825180063696524967576924935784002738533482303657171501294549351976779318143462651536493453208659398386782541522304234627413976783335626941770472029544692053547853984070393687036374658495068243849217621503392452203186566438715972146359649055001249238396803922287787278622362399162228433695847631928838526373615987650076993901182350831332979480232970103969338096333545080726251966438632756537680453123442185324800051101758382345214925463197792010780146740102727494973603669834210710385546029723138456283050410596491065922574595706982222410083941056296394630597928235031225597939905282482042407622582727865226585521757057837533080864193593352954222612276743230066422785877700304730458721212588238996353268036703710487992016578806342228663015861195397450018469577754811483678445039040779979345916571403177599362263254308570796828981946469741086891816307042369322805873785294873852541280920554652926247648683336390369885725111295126203636224235496485644152874433096581275501037232859171352451894493944181571750688415197193879069004709347593866002085329108943231341173223270143904449547296518607715312866312068577318928167795377592613396538726181426876077983361642108517196920993478320444533993358590552954783676110542281322753513503856919651898896315859938438990680940139240039782390049398380109340320092630591688450564545484133131098728107894879980128709052811867905217521349025348780728387458958479494282813665875631673168063859715225157223354503038546460672043270987917128643060425610860422949877159151165729929618443191271494988143927119049647344351260846552617669274799145583715990277081912964530834202514818235816198364390528249507752598272248679121117894170215473065508620197635806010631155123110415358391109683162296204376642487377666410089038819205171719203970671148925986614535318933937028235886642561185610856697103569153997731242758703437870335205444697481031883186691848824099187971099564033821560624574188218221763274799817259476833611395036186958206467634947778002653418284868888869417767127480421378372845143473926665424944521458998316776804127519343753440318842974041547796332184064738016848454565556800905941892077823342611566585902739914015270374836272630063313061745287095187818466284207629800819950617485500584375027423749080006389375575075060249992126177450273061088660160072809967072723493543453369269825065149958026163924192196084439985832467809073653449375022567107131588608166349670429983409311807559303945033541003979327580755575348115003817601126076845117628407012468655129334924906786538209202665079568821130448170544669108337938331656437253865438424679617533951987823535360796131253194438744225664382739911465031776258663875039134277425761361371799387159092672905448381994563221191844833217590815478177292592076874150117031639532720370309483661037633708807791622561067255180691098518507933305129813389751126134242520365698079869437638125732029625930991377056950252683278106414321896209762366218830023688046597781711467241720047054862937973750479285939685428881397452257038107293465842309683603522376204135334341100954671331713386552405291079259367466124349078846857763711758663454088177086429398655827933186751914134000427580324788100176785653667473343171650127596940444956038251075416248544973911547349193311215928981492292371661737400430446117953160300717043651797195893203001204432702145989529850887623265082451007678155971329048326563917577302899447580168065510823248896427158153858201059840562617091839106104033339543520412696210140600984367899320553628119675830777422643426172362528112148383897155134113973891843978885192462376614245357526472868434303646521286726119010076341256070519836975188667095213159378958616700140527304859267999837723970919197544548827602860908966254876879512618334775311588172476133449369547429799071883716753777034939785318206324721248898964030245580180624707135720937428951958368519022697156180086127563456757230103893267150622931692540868123775715285598688850735242827847972724403430841164507785165011413935549096428657573363283358338567022949104452133501815500273867135677654567297047224574455103952400883928567397736837668330032186026343576620805058746262432141820429421330191315503193521831990541873280737377632311512485324139729171079746005499009942449994693314029503640868297480815431900867238689708493407038346332748619484949438068797123872834114837290624423933142525333699523856370215079042902071991455802116039032724115501769846507710574237757766382504089660446471862407720194760544364899246744201131341788726206788796452730107142674439154230568108984830067826389741741446035036024901668225222243691776924226589665248474590868705529014813957112772691287512319869809360715326376239603701390321116953555344981745493298174109233452838812410445158656428749183757228162625728337952145092133143814705288644065648548867415054583634953435914592329357965542720218371320702791461114868161028391416501066939831286674917985940253931450332984233270435862218518615754848667322429320994995876327955522381681325024456783438155870895384902104983219466462935443654066338316916201161105567150639594047923195657351827149902553845034427247156380626201368502423789570394614293761675375453136010576045308590994539727978119704654647793803017706399953563709354994662805303773422846808589446459808165567350017344424217772307051032955433240856272908508801072034266427523876510657158741065427530963914028769513166158472800808918817635354152736162190150004127665481113473583578310017995157623529394484848701714263742431262519497314893058457610044014263584412655409379845299548444102684888534102670816898055194457854554123838480917355696895009502200885614755544822028603194484998347570834175598235102120425410499901021131596268864155679436370215070093023249762141260462217555840549596746035040482958766468860672299464034997358911096017900360294415136328334943662845806182260441355152926402362466390238265535648570274503782762256122356044905372857337954050366615093959144148406798398842028249064691905284176467949123012242576560402684192447599690178728968546877373956960452227575528133769543949747791669801875356837707987941653651087159628265581251033114001219558068133983229108556253287558753843145931795874094471217251927492844671034749579902553920656987588437096193630931748274655210729768958949622349375255852121967266769051374909451566029758519375870765540116910533840613714042695236956057589147415586670968316754580890299639704190745734045454682207372751410166763506901856551848137616258921655078772985655975618161248744997554259712039565772004914426703051775385076008268541141433216309970288032012897318731553359147653168585270430931514784738287636154074664343163544858018452565810828513728545483552266137369078680464591778643100303463369924429474941130671369681841262110867542624965576343085391997751480087490968888278650773969663437340287138119439343949630297725528073342148240204327911178951945523860918462293245305666021351989807569473946880594068867121964644686959090364323392318999390902241838064985958710201145854116142415939972844350186828993779454195597809516118211979961188318836367067201021309360531001032004247535393430169726417766537067102734599599277405468835084935972998734921824614219145336331675449115487369977214129931091751640221124099444565378630592132969435963341982558239281168325364363084768643015106951672799019212472553059604254182379561204820399048882224022047752548982618633888782863811969585128740941024088532840952869834093446920015376809760554953650004470660859562492863315059753527258912491892670838243006614557784049742426899480190094840456086807207289235613054635166717188075221978108453732489025489413118444805227351595344058115018616951718526006291720532807001031163482077331981058230482139205525879741717314541203737608786535939970978242645220419206054797897316246305870811960902996155744659101205920895928691130329167161845388601342730652731357326014591755977160631118150408159888374412680404952934696391867839755793840561305133661794291939998263696471872739199977850113734004793618689214824190982396270055733235018705467039060283276189019931946853082120468060072163274428965115801018844012138222975534883530676317562729088573394155318504255981068341437003367019624606987918639369332141673465225510823179570934556919532746949973274787458156571650753871552454388946421336258620777755695729940818296099936414706193164460813712698198090053742560372845022253679258132555504092907062738717560194395853202756871397134534650246046769714490599438698877366597164847495704498674766274921631289066903745317368082960682373494090244047233775997616504780814563585069599494707004753902415587895910728249666537861540524751196363321603195366267519745787561517354938331924891968598336841333686195021526961353662549793579530157191600424002261956665637287948004908782018509347472669962716870704656056735260439987944393843011774397888668214536605362563033326883618786432708216905871543196895223015696071603041039942789219499932017105011943016732217361628322290055624066808633685595571193813640605203289184372056181983714147206265589722923649060189944134206184396966944683244193845602513476505279208757884568424232666229779258835316468570835030858422151920229302296915001740635075209493165403193278206865410788311239244564738768806818918542150399887952969309390451618658144700267144390361089271314049036550638754296024286412254697153131126746424918491150917712261977192948100918412949526946032913027280742897911458399274048482974260818350847791942450550558289721994531083696282915253186407981367734436594931756385194947612104543522764276420134907160337629212884542120211775469464258143285597318711147938812928643093687330036032523407245201584673770797198366421097408169174610957219124037081131541127001856256478567574713340372987037969805834562601534758503575366679148915092497281166320763808277182039215436674101777009628179821409250235005308914156732026445444404261887152742782265144096885059513197574020305149734776237810590514924447186860688590160002434047673930845184348509186747883626547952939162997701335980376297320588288408390142487557706169417281036759023100983898072334068745259551932024627812782834495015680951460923639887864655015450601422356613917065039347162001930538703416830651619939138842050238493218324477380830126667179646440083561303713395679015950655817377969531570700380773077285686096526075851103068424752887771581939682792427253835562488743892793685375061504968548598181931773848648012506024489819968615814838678967986860459258439536896227010491767876489510605121288866258210750674675249351172460065491752500739068279861235181447949903853416848279387734013298027096801909997804857159810738156569164004190191692023819113161315724288016984148125056895261395895633715727064177849983360613681465180192365562508473384587244687108674488221561706445522433077938808921695167112377248013500287433490837891948282341863521896886416830928238316337364517125477584497074646968331262676709848339331271967330275064385272501434268571540064262917346004020843855188171413637716478006390222085283946258617924925532605430581258725249608827259388721756341433157475281378301006779833256880890714236882082345451582582131006580235382118188161038177270002534271839032073456557545232363861950043117553349510360368788375785109072985400118359527401976021329749115679787465264129274256794491991997258152462784997852388287806833628826137268967500955429997787222241928622031614674167708112611567377262116122755191624665204996017696868024687079067261398591760698440913020059288349659419321285024518221395499339736530250989599397029233380231658703477839682159787232858767788638967976751820479399961724344179282037281292167652861780041644476565723097922547804578997297491728677727600891695256666126577442621464134907813573912091680340150706060305130774382558906004032735561754654833380050769798794946821743805620766910990788060044067066288229849769132268132192932555672389434637760299027490343743014303533760538522455713144001528118682971257414691872811209138935187878934756872961069631741006838385595841863028815951255533846706578879290843568786510695962646851746518647191646659430844041067689254807538714852638483413989776377833589013749274645058134439883511049175060331699452313077383331640485501976873689835294401100042382570430655334239511304761863659299722482471795910706508750590381626790938585643099943888033703397063327527586348054769555719729519965972422889929426400891158472226336488721041258210520007337471129470501406429547975534741874637595137098862012266558258970928776354934420404187527862429792497968793715744965518005145556023500410332651840964317085996901764977232857079458217062376941366727993530521274606212526920327692933297069191565679298957583736145099343170972386847606389267597082169277368942975684249924080704012136592354177565371267256734268820037443847846453446663730572325080475814502241759209961951575092992088882351536369843948559542822741654429722168009111547966423010367185196952177781129002967129917209381987375631412661269020537227652889065714161097471006292795150389099885155386610280364604069132391413607831715031823245353649960438026996487059384940482480635090412890984140223373526061075457835325465874539734488622612672788263439058260541987684753543805794104460723226969271974691331874412333009734526877370474928512904239600483648691231012098715706931946069111996404737638199823376386874166334083405559695590854301004631691014511280688169108803298753304073640058058056431593150612919113464325679915723875126265607030564578418816216486707890501859111498932460833037912423606286245670421472700057559518389686246799347301412881935418485836430635561370814080041032411994028816923319240133777532274346052396848941025479062437987248981855407948986168472572992205697291038512784042742680017870865733913944304724491721610279028425380823700223653233044415206625672922226462157507307508192589938451623019939055429426152365445896766144599113013240218407907519848313260732983912919220748224111551851451488342617327296327748461416681455570858742035654212602917382018067749372864932976669653177524360764952628928541129615685468944359592176886139809434470587613849063629792930525340021994656179900111354973170303093966128686394340268707387487440820516914009319170522576277719773482152469026853357875230270226152645940570696471603996163309447729294381010433052627934551724179834355041021457626494715151706175072094566358041832563277240739516368234805464251838464536076735806797486453018921191081894371355803475491219828285207993648091803352903288235933567421230044441914126903894416155145406958219879763187840374450148033035864890994085578004627144239208325519641427739713918386839251618385964161357591728422396401641641554315988684531967746352350394606882431177420502662278543869045763932771754179663764124652810232838318467285366782372836237931532680962668651467529781824134799780580925642433763060135083362820793431959112452662704666273144100226948107076187392535949960919249268869604320605188003945862909970057511514913424748585406130547493843210997314234261621340631451573537163908880010842236271921528371002922988088959934987459537220209470205578672889331329588641738796059606283352173843088113732472420798924392472075637123219012881999758009973751761164061424303879927313150993956068965720656598840876055226721989884708525741482249851719458469615206434743556476980235998713166235980325257407779396786590136607668791518050385814001725131927263340882150192533613208125306098809724210991194489605728665651985639641973067913896121814640792146313609577713534599747784040068769408365353374676954498060956617931897982392020408367765081883626807252355101654828690454062673948816067512799667024954919566126496571108569654149281154173912309856464537151883726987585696109703077448966060581311621363189466409315605754398861305634075278816590967679769469654927858060333039304575669321534744804433507493541191550848506653454848471550046546670256725032157846669321178388044651530928773614182947230229462178567156344662061000903184764370532646979182286474077245608752079140894282832004334282753149826308914196851158874920210814418560209713348431241045529651030503472178868725693147084221521240162161442007941260114958850091371805863588392433381018956028986772770630694199797017905719705859828800027072409178931340249580081922861411629678638974358671964050224805523909335766235624746797878678704378406127017908470832224548799981556954602940546001999020301821692670737886920306320161614496708130813357977058261852149269331720692518641117858488164317046494365431396631361858582549911439561991525818635038704081339878856158478592426191206243652622042528524790556002193193079593375959858025025352499035866442939574779762473436755405281898390381043401849205550144730249477224273757823434934254943694796804519267773828849222819773459792242845609316035848550950587797501367835563006298132726247333586727900949267089551093875775182988119951239885402195994885200956156045659243951154286638879877403879896077600219677629138807726943842464824461673098723929914420305695832032680450520210548100097481880578983069794324021004308553859531704896206571469139627806313649169992746637482046500842207983006988568847105615164861775646927983236692363509287593469183257610128485067074049778053517097741820359722572353341930881212912789961788082346216215088718825862577811725808532980337597524850406722297734344979911834927821142214326026738874875310414288001189903138960886295488942673143322463515743473619743391438045850929586437582747017677877945924907328600109711131243456158516570904919460302138136523053777089591411593638396317502319213360546745084784046837836067060993790055959043871919117694698427946511610007522456139640793671383195934181197210330187155335067207015715157237225194349881900181789955997489153632196734896196468213550434583718607044563968697962804459776236555835088018993889370349922810306258961605762721115400751612207809852357386407505530931954966696762354971596242746407233787622186562234732245019205096878632589707828608300520182039069796111701566360892657383838958531209530181279540929504824360055047192563180360532345532849753100848104621769464884762666505836326122735253781341612189397300235906231247028353307716573341638859728307620955504208034022364952434990399563032601116868695978004862711367805791349108167958979703452952498699980405224858510099000082720491703662539125698343954067529902516048116280465702107640066160534597868297126372797369436365547388411618285085780656116096361239864681662665437456406169873722621367214085444798822151288517951840974035819028515087450487664124075467757884914476128237708775247658507294707277108375939878656925924983271550215822156268021534478804911260454228473824234696124995977001777753801115305630725944760183773846414927837744045369461084951358618910824662816753357353726224198133379992201605053778784718591276953410222923068730589301997662572337626221972042821698627839266240292357362607178185718057842095320142016108844057723171788508562441519053307704450618614976642092245881014001500070359836020542841784031300627551146229230088606830512875175561804091496624551111980519924732247783054687816496981797931321810057902924347405288243729633575096520142448059902745526378148326417009287524459887359694731223980409715923583195768294360777070198419035863829572177356624052062410840769841083035120512609390209116876708344109547206527903117867849774541085804945415441171156253476558355320659640251067733034479460926137159629248044495353266946516660756235407692185551608593201628281330539264041412870113990332407942040162478572562293468408350541406957918476484567591394159190610052669331863332007242377498057385657776464925604936650332402244127189389058393313828317944040200448539963231890906641934987260046136371720235334153733437273219755901365122620754377750887667814220386161831119036046334516249202265361624886331732845934818570680501512688821525381579606303234228003450216584495185124014918675168848153689461452183871163021869702247929038816621314832966800218065635045467265708800246623578560099475798346736581822386703538950046288363210589452210812916290414776524481549032228456637261563562906836037106392889232643955100286262495858314880683806830726477001629795761173185219792783551727629785501135957589956956780067605862553473643977945945034022791901857922061510816071914773715685349009657123831091287353248444641139545595126919444028868649972777290279607503207231463395766756615541832402283466587812212696051632369751882449043995953503691282630709408738578596839417890348417463360531592692716948217868055215247494235253163707764719510220641148893643560636756741283002723515415014427342875953570175429453805531826314649742451901642613240232377147555613438565174882262431260227910249813525739533436537898844723388348198950203744461951157525460086645270177957716995363609675434580065632354515545398399800450896454741642051139822023703336236239956994635056271088072300738321709189858951678220406982917313520959493643364776760450978922743838159847261717947331595877490924801960078561496699942541807688415749833343646809840514717782615426186464822819264821208163707963499840199260848839310034794955887349185222843348704993039270557758738852222820259872555286652560013316175731880469003905793312734053672624863124787846067244961370308476317038694673419830592641084980415101946286810581131961259831994759449525862524453609534936533742827243185969582986334419925250712128098218873698321520728769896958562055301924292152983149232623835406277061592613421847924015169871614183846851488951498822856019333758085356831896577786619397916116329282957803804957124860409891642419878974903388217878664178144530004397945314623986812348860823458751845383221759323689586030147879009711503156617745996994968755983977992040342168519878365077151900945578610574073406541234770022353641654480337606632753461774134978762244940604837672685653788099383642553208140744458184910091138908331703858064503042410817334202362744367184324775029935120422024980067352398307752363272937748382769590154430159939806865715840729919559929593242117420158405459152343282931422563684856014210821777128798931590909253464749930113215512862576483639998371147749277090896050390733369753363776663825767344659762091808848556696811694444991130849282398767919334608253985339098766505123951398701211851453814161228513048144890063389274270346044235424282981724455736891366152807197452068146553029057413321803068518721145545911551253023928842483222130921946871992094831087374270979345932615443014423659359480090239765398429250151340839016746244793505885682093993694337160286402602454910369957749619138204238821631729781181080444716386614859628113306530272701289415564445267412934640940644991458088211778714237199019439442179091201133560773013220931869115396850296443520822356465460101548902833979994148071707542359618892241587631221813462304373696638590031178135688413155147028329275218560829028743057090081794222849497075636319386020088347055455277959415221986313743592405562899034498589150258694055497673265104694325008232892174172513387972755156311495254352841454682472720761238088009357050447515566978928578117775540098393916633257715028075890169679077694085180323702383146093617691863735784998978152964752495723504998036630598703364523131236845060161344913062291928543645839116602174029160491133675700446868325828296811388824933313919770661373665132123324097910049035009869629928081530862354223605781402028189722717724735843159856216979778453639871826624878698840641132087329725125132320885630178749392850316116475339194354462857461104063527720829209272511130173831265162069257997984878683779365043812090224927723119865066384798112773530774196042652000644970092694465566969001601454477560556681671063136134409077977207666345847514666684484228503421093643425048595894481712345861031927655020541450547541359186859493962932543877537203838726460374913863457212802179690857623036021835018864398944260658644315927583314957034032592797628972522043573197415974500794750915022540446678049954192170221746215028248835273411941890552480655617882119575657940167989321079818231884261359854419249054928091456514504704725633484516943589294491061530258678511245510405275097433958925030241789832684789869707351939488768949459326103297777505084099548934658556390881198972743942527544568067235227295046088912304035834269596861941801150364806534976006924449958004514118502837408507472311900292114179078947709675702075103940042360612186065975106582443231136940388739265729674233477522819562128043796546018666808765642285427198368655609873131588742061568123871472396332408475332759426760124744324053064981807933327870224537027075509231954772894772634279460499051363136407180443099420334525426728295291592753072555279699784653910892771910704982328754500025070612647974459440570171558162547324373633511111033561532567731238584580067629536003776597833114412146787704853061057058284370050326743144370356140906975593064889489999295794321332833098030410521655577028100379552997889904073464886092253030086370825544606561256782891462794171342258245577808030256546249732965576960543857100944980437137952407440134912929957148833860753061385158789600104353158458536678584465437886823943603671259213281773944975794919128840581194121440509513437270562800360349476806861491652263570677492460294252127208039528933719011731568753132086702160820759148603251269389085489281593913359314766786376973197664707548714174736544654607008083330855656092842269235037179666237849078579130007960713687007255421838719035759913118941831711893528330954430959192925073445408907378350572191758437088709189818543328374013726122097916812826117948062379143151806058598526872844959317975848711167333140762250470230418896673198357984083992735456275800573616375150864784463394081582574682135716275634257921193012605299338498019751963096952947410442429543789865537315406084149284094929982667953602250549283869844535532773006338720176980701966388747379262836473445896656820858168582474062721298421523281728866067821062026341637438987245888518340388650529064234731225977119923620589620748655499489602481875412438150873983617777027089325075677886760001536105840975385046870102149244677002708637876765287979074790266675896904139488574935843115512660584468072174906701279850688601178317149706812185260842884578004482123553226131029203644813301547934521782816607508404681741724762228715694557830481183635811933511856195295642121044699137897298829286224667346120610720026040967130489039736828994965477447058491965507947830743892883561176981875863979993467624680366894182777152922070849410176750231626111627056223672785248396164366586752584648841459983086178964626167879619199879279278911917226555245999829052464612744233111513536477880739282529731429812639697473088836711714343459501085950980303803325554087465897996673235341778423183783232769720685277778625607335759125781657885722806413230470943284881527790866127098841815044114289141233012661628371107007642854891228189327555303834983241012558494292063848437889228839444667175659603038322664879071612820973994319432117808379512351583182126561561890093543503830663533630159887804400549133557155861900891619402651879508535188386747106882701291202638106490113881457600948256130991260020905108620060640235866482029432915359282437619791177084167964560070058086941220035756964641333072902256032776696521423019472697724277124382636947272085281660033061900032814160783749612523872660583228022705049025141778900076758146861260214879423094523735268273926717164845104435072480805764894677024590541645025267713980946049670668705597365235672065935733430240690869131098998425219878568279267166680392524492120208039848346002603029919403906567919685942826468848207245913169162058625604126753900575220603634639920981323297349967840436778156147168880460689133599997254437808665971979672258373478636939221614155499095548740255744800660194435742906052086918409593841684860933316695141690623997929186548987215006700438595916098797213536445905545022180645016990166451476546740081784985500005641478456483292275872297770390917158514883974154817818504531547349020843116704019545633652214811663665619966819837870773415293279911483636167267450264412698936574145819355815761673640617948131682407568916296469889608007027013983711882418755210575034230200551547786642015768693246804573271091544890198001314608863660368954680203993871227934220964245772135347483450899095269868565034767683954433601382993080286403014855457877553163678452018364282721340793460900535155248343154128599624705756750153427954011015347571850855036390031347812438254275570601788283861710990723212559321622729336570141565463924210506941145372061729145478091170369401176603218600531787898490850295485160372592617550889492561592846582081851633084769000383869282330798868614549359628048982860921617001389928389000792023451140680434883015381844888701016610377427681476943991206258923483527879288093599024446468929996348317916798422587164971823496880473202685306146575662099784777172207277473818219764914258122657828350372942833734247549340103500099529909985757912389307256695508920102298924145978950604626779752781605169302008558044705286671587035697861836475178257268195645995075188115186923963992255735471424606744445342747061919328321750593090095508309447158603304746355199334957476465866783034546933216005749189518902733216247545884280188385063881992182524506200934302402701444451339155281129198111745229405632807146798495139693895556230770141255736756469680576181150215570022303100787588210755599843673737393582834208756322740277900558531887203684086981033541006623706265763970349890508203740698980470415777750240864609899094253854318560595008812547006313477160062023455688700541410401054571449646287795858968458673351780555471738415094418252998810472390291569000655287680291847093078378597474324902223762723258727552358326843053871646144401245165368886089255830026416027222093067564852953582673916564311271855201943722470387767714332204446283521168236156033228368153869181668492141437286867577795620538698661331571437732869598250575296511160430076242722455280433973278234624427458409160342342490067560832586388613567349619114244918590520731897747560707627267361836444346862675740685166402203936735466900299828441206456905167277373969688746487642831689034506578987119477710777753430564492161162439513653265912167772694226287839130190583095297229195935162611254919286930352996218395293693485033639696771520076593602603069638882472598978046421565413816701600968118803842102692602820300981456681068387175094242016316999246764691903204669321698747048565984636593844020507570113599279262635228653113556258852757030736899917279102985831415250526060936509929844033865876324184762307288745227713589679776032404162325310865029358179140278298772284313187082585668603117334251627201578016514007267015384092717593360668585789717624468170602611292806722637754342439765044595366170265335835359301452571420879903065961305645616837758574450915814260102936488588848072494970832926909090586446583588218276939469693700241863261027309083901620710052718814836456745126085148017553693639068572323993180558782809404528549484831527986324034276276390988775720603452993507601755068614205231979552228454350773610998553414877842158593849751438576183118027353146471123829940943521578313434046448781454614323509212735390694613814389327682448162391953469110830738444424099238120070471379934496443497507739746152642557814670278895671171206323437620621499866471356904789870370335320590772426935969717150851994691819821879000327986016538152654319095839416773588763667853859120861480895515484864712046505418482050312370996126604236352517423558338390563001848484767989605932634261484460955749334281277925882403383283981563431600105796695502742934735258561503230703762565350736689308973176091030275203106779357203587082808683520850562791901941423537414949715714262070007898917867518419326689135379291284110480088977132049868352538578997989732453208360772131952223073385510521633921883468398725799676965749865783937823039814067866507616782347224274864337533267959333517489758498669360534489459546270681851460155768293203370217949947201109317897739364234194870524107667893272955330879038801450411511536446986288690685489072882181390992379099919980133618689366855474789354444933819546064071010608389770247839933193715436613430368177466130635783746499565358025858164998757812039339424221155991534058637097619955068516563177418825134327885700153392315612618906490542555573692627112592682336920070321345977820435548093123256278232398565122017248028594409693653830759812031412205506466388207212524838017780162191912686567639592175220514739803060000776477215745292267460615734317558118609164020057628526696802653803083082736944528329456694576599049772651969607977099867472443049040767384059644707882458353142228904371754813103054429174535757996645587028566004134825422211192345843683558895538646510016720255131226045940547610895911552869297105883153035256888483114791180976966669615719087385371569581739364562494386448849834307871620674554050375026760140824095050719423693401698033661769669391075790817192575797836648718941650199081941270149796314102169076422355754024849832734205396660545113576871616021309224871365625057241035761110430797360989344853092012477526929896995830825202808218441924570169351809224904221388417283779644434776512154380422342469023770919902647929476846396059475897911863921336168780644784780710906736923897897143804507608330893056914733859502662511503048503483413932449947766181611574813194045822960112094596227752991042578399422187944328670998957486427616961040563182296026215738667071446435474446050563976698007638446266557537175483198538302591674601362165598993785139710261298805947827560618783109370717858842435780885891031303668746368320184283292910816140116908533034704328042410721714594542026815179006603023492660291173567030545596199326553651945469213632419202025410111808317479133668621390163707502206425176243337478874992141562741530894965872241221130228321009253995340456618683145955826254181379010615515988414893937999828125027561423956754450067734629392810272255432768512401514662362133690125547934561516353764157385454458542594206198406867000588711163747676772733237603853554746232805667771504725853071293669268750421639349516521631635364634085095037090701608224214738253717420324166107339412437428823328653469706385567008369403071917519858504825792298365707274330073786100338090020722563444319724410690417840628188424645014748485417553837676794650349451186046148631088712424672008252597707457529880276447247971913425056086012492580244338081421744238572186813788028668115884165904053599768484407571500363934510296687941238433690467096433997605723174832705636506509979433908639053675537230718026470354699866086699151640495199030804300347474007062493710939225217931592131688737823100210084265875426935266209288840978047567257602058494148782208080650070331390848483241038715215122518243440765349981203720910889548786416587656360006709998901993796066902461418767123664567307065126246463062493637565298132382480533366066718192238693255589253267580353307904709926415695782660224067458297716100092141394780220224152080721471111811828245668832469968514381069508252316352709648459713307402921357067509873099782629142645005999293351259690583794536146325781848563772412129453141660547967237414526520824851300340738437358493168460960683983518869822620632275126981196276384349568321582550381729744230564411852798219057946915163586311047251470396981500788039984014355967316988539664290393992967184525513147808202402333855100877655313726699197364171806183680291426322072774008179963379249932429227565346053979564533019865297234437038355467246019945849011090080060862948070265853506002968918888107138418680718149683332848363364072986757744228873455526509983454324304951357303860252114698817011306490696152560588438130515328444316142562207216143249273145586354597857824927445183219125921434340423981016872100432352537833376551498462179791078850958026349645483283167632879265918050852606081393316732271448579608124517506317001142623461863839102555205982044224835648821599330588313736966049953721683211070508208697960402959629363393810576409995082865944214729525251138550957156435443873361209400137568875813931709679922191142582085870844720731013837334200653776878509404099731705611824594639603396671437903679821622596095406768141764406387987294018712865445492415562335609895923447533384790682611284229416181325606273012654638138896583863638314590028992973218944019370911163451859897940127025100552522972576564416898071723631013172537481883240419541769662683861397963474639794967865765547248686819374633431914344247500532741156157974718181268174697194951296975476195973767772626539193724106344473035420193247037030507530041714367154850554225119970795539149246915888604380794313060663347912509784093076924049427351963272043479293799579507179674311755076814381821407001382689556950733517516907362183776921002306749871254280849500709797705745115890949608629108098727781531034120426186801624752003700569260358261688504157731302207077873364246994268899510606715464138420634821614973817418916172343602551158944982930907273947552954745353119364565927898474612404830112639366642143758128205314885237672824074546632255964430199388085026708787707694174909710983608064888387500279479066311127155195002602658298108859563933249979890085140836726374061415354818128760125321940402899256482750091803476846807365266294895513981897915508050350511382459485565306433522950552413361922231568987071537383048863006608412338204360071895756042373353933233271880078906476593027616083865651526861719108306029642738825970894994027184746226855954457243934497976708571040840294623948246203702612395419147170077422577519779669680875411391432008599804124404381976089080561221095998957899047818220754979101819964933845461984521117237528665323537051918461683695124586972344205796495618762628348684331772255892526195230638468039724508136854156361461850777200634625405297047230016192920961937259026566935517388897364812226228663383195531414732803521198113891095154600359282979533496992078494079118460628722018601335679202282429340201301007356884678914569113375675570765380745254018896037252337146240251322242988001514376411161099454066240439904053860960316231271106910627296294789718947815034036962957818535218540241229977154114041223432799418935874969817854882020834606070105359865511169885906795542075583585517972500643320022410171334894362238782820671326850907730010014501894870058973790747581789396739443844475187254239558718151718701153058063714116957727110927166528474197725359752133591918402553801238622773155267571784848334131460078701067678581813808758213621802928915235036527395554868937780280452139161562542790921609173099492035445105472439859964059521109523468472956165388912481220238880711591911863920013337458940682600886669384993164406116882857529853967929846676034678945050243980879823111420199356133298459284479460696792019011525076060307891619098256178034963660754431723396595923596051722297353813586950394574949244125943118969352377807755369991456185129711287397442749983247452535969091762931931075661019815971016179069896442872753115725620157543613169346614543942099329485230387409113526949338708221496224993717911662426934394634756238964713211532291942078253491301408344436622433756277505767577134939208401483649252220379355709653434160901316350604794051368836835790729060457412198238402178510504352310532283638096227954504788406444558561377724246461727738562466272169852180025190536061779851023042022622367134344946592672056043841353465254491546336035833670362573249958250087725007083751636811960613225843306193090487771258103292327217693446891787095272532312087597187256738768940561727117396465880745808519046861749342871485265453821900270579719925434971022893631437373980321616873261974481962244063385975237887382134389229897058717189995804613737509430410153576756962925843585352467958146578084175065936195220891337115867234302787414658252983861980517807077845792443916653759548815678427812824009750447782652442618045983728827526242594050490937371325646225586351439741770268776522409585135848961302733565253453700506376196219046817141205362507223199522126641738440506390193305237944044582813725154180183294031000755763209890173204272174431220707986641527819721096954508113389996513828414671349030492793880223955839003674997462416318219295678830907472043235823317116438997594692750829764872289296081237354408183635132310776840575589694802423471293401846960198952146807953491179865596358047521548529707992649346034279330023965902997410782555097606084344616991874206935838085877539032740159824048797305252688390473104056533195070809956856515587933899359949377985666850503379973438633778251435649637975113587947054948104397558311920071454655642369746660492873945066085358688306344826244689462766416399564078700007070852422087858331061053695292830248817994777204905079497275411207567992098283666982814131670476053468741561028351464044008314540924877327414400714792719207679238018885838171067499770533658200981278096868418986759348969207466116557351769455773424799638464378392295237420286999892244076385024846456417407384236405093309845426285695846019349085234326267540776480431272387280998069104683951832533346597421609002609637588048317539038760301656032568387856564279331090306307699912659798467336943213334416690355224599891946975056086974820252489340108152648404244178862639384016553074165428162649025689889790498091629577775169854538835916268450343928137147946360481312192764690563187798140258190758219070258963653923352280212170806910327263475597860662090201187778822726861888220261647843937513681895487449828510190295864320959576562945312516693503722147534169647162715938091239473554495103191873752582677236570982100451164064494630399372655500324615429697842371953002122927718766727396957818559762809031350729518234269407362662664322985951683588405391124321898192110946086936578348014042658098374657309242821410127259844942616816450609399924072974550112042180007743048910372328185744111074768473023149944132687138457326994804469651262952796611678633335343182390053431748979673651269286485033477611454888464964247509343768835481775280993192024179058809018208402753216816595559429354163327801194138263180383251975670676624839035730110496933474921796131573046775544651060392171712393399117482564763920422823540022177761952679433943833187797005372277178036495402634959140125692334680593278239672899471628945423836865605710623882122086766889702810913444728342223831090591180787442825674461354886217916822237377370948746434778692799510042514656289572004697617868745673800190270644302286993754068292132657999748267410684503315104335592474374417419519752819746333659612259789149191641516675240962849687387131796727394133628579099676617044500671216046879491393553990928058306934461656512590797641121170642658150492350635119052288140780178828335273420406326834602097459415664347883857410574149036956539199955935521140523274663523247835856780571569917534075087942355376920962078734469631269754507284402188642888671191074735277007521460309051192010366420260783408954739089850047122898249243705746673958234814583763120149311513777216366726278525367504109243822625868791331670446398142575916158312745435527545018925730724812385742148672643886559517984297701867534161760472663508688347324446355044862335649332104948805136588033944203106172371903580107095369658875659021602640092376618883039084541387710751191000055727934112893737014003695515691173985124509541263900104314239304903814593393728274840244820497637169917022220143671561103418822938187667606154293094561878440655169805990739465111733155287560329655877787556804107933338146278929849894205186096554432077923326645765992896273511563775574023217696704751756127118647056734069324112639877744090434306587006346891830947800119696106320674833116549921972422944165228873591454209786942292904266283879480875821337570882125162630368759965994605307362013845995105180031075408994935156033978593813753484429521717830291302738813416121293760293438339050784662317556268373951959813388825644837530848347371737560042210551387115856688149216692918543048917279278894339813944697807126392395470395351920189055618803164779899025101165121385514551085430991856266619528938921086245098523547229174422400525601365923084488968814132489702532013046541937542886228425989629678848284774873753963976548210979351513876246678433152073936251053972580356286345962827727081524680906840712000396721909529840580835400255530714595501683773991922190796813380778021537489010310193799441724156552062969838549536449891616579695572777869773027838627530002937303187371117932376219172727280550303417177406204182370802316873035471030081120320625096036923580892074234630184154295678465162572785996981316156593293640867087657494891875198240583241553172781201905101886039671698783297698029141302859692397977452396021254126286536239824555708318551353646601006109262974330198963786370718591790065371268554107534313423105412320389186529818685636708652939840879465939845323772119335179817870717526372431649128400782032004643700795012674425694122772059562731962648666051633767144306124813410328070395732877657670394283630094363397428564541852778068158488971952803979088637428899019125477368456728600147240053817903165956047718972509321068948674937573953878409431419347130929216090029672534003506217331793889592533254033681163228423942360777811481605382495976268621709517042782658210577870837417017974371496969251958703054919568927047144871398080407127507244578479260374823778701601036677119233582054378213231260773488884517342800577692293482690337493065384962610553121940304456928000977510635128310806984940118323122496541665125768271866879170121294330297207322248285467641441185479617560823335009907137534508055625942075658084354914665589153484644164342473922427509202018357987948566401162438883948786342637887647585192210667093051294757706109426081568128642749179886551045611687593814787194568124555150059223569951628470154647543792874569189814666741420533001188623847502869942431832985517946191189494586370662230033066232958197842177285394419632644668351856877512273126390886360136939117639002452550760749581922082078885773332404321235310356995499972479791686686718931832667092514039619948034480663565484812410521208292548542134414465309066936268113778104938277265520600779895867432388407359874937041298264746321254721601205815440642845440360649421456099667919432656150110458570134798038588819096932833308622717846538129849207193180124549057449232699613126291614476211920597410945697234707730470501491833982967853764580505289569165817277164873177500766488366273299316957793357191807718454424212625132061532708699862766826011258990904318582205770057407125567323761895309509154400693597812033390154578011103121384054417718997827891667779451556808403603282343476955987021071212395930580640242491118519520270693213106795966028030405402053739755920043320241932914861282475587241068208585829247734379807929560755994896618808162556052351996345647254091010566269366108370335224520923909087151709908293251618062259123000626114480525740856261854862246668372394885126928884778081518024776834293402981434611360594864249204502833998511429620896650345712276230188816629121516218387673839484152550687582968073908436388193280406898426045925499512298547613045887462861790325348436934368083314225591367565671670381069302321480213249807207954222663024931902170518676818959569907487399644009798313556552046595497912653090895529651406611418546001172508054741090704292868791340424386211246943726418798067251046483191784018437821940057969305713923599338953255741474954426822334549337531845632272969962037902930093561903662880532132428540463700082567799015649827734764180534717498972288609879932440973609712238275783475275867086943882582365558996136684170626690560863568589955574899128502086575975224726626775728138699862854332328526237396700024000448149027923661731650649941761766917405933100231946710051570228267941074389086833819315968876105581483697664171764840209196757238238036115211369203267760862356693870737356235044233647877164578040361788091750113896673838144730815569529977875180906440625035790378009638595362251034369514191594607530326445077354343586095973502001512415883846799249515959062459998619735231646673555140010217230618302900984158426072551185076565156077574413096574319841953035394680855689539974291308065460478230281783926643949580011067255777654737708486999543574172517481596618747442613722908783537508087483930615529741490669395979547597019066001152797802828073021756757920714528559655194207662614602504249331528531838434883940077402229640257323076685833794402612297047062151408105627632237191136302065565934379899576051381464961508923850589239659009891436008631369711049541567240965121281969806201379093562936418257016290156181941392209974687559417163893104050066259763689741079059801423113487580089618603861564063236754356700923676040685420095404537206175250141138988225273867705529872402078029996367370975808161896628155689289106739919804234614786451026177911228178928291557120812431874927579588585428657932865336375752670575658337823240969635975087031233443096620608654990715080707818221656432963929816311759512463956468899063273463912527504486106075264014281712179516476538409515912429264085264687629365584052321518070465810155792895885822773737166000176056661289856391108402275002116478123741414130408158956668231540633285586283153580657884328451620283924234895636735208539186079585219912781242978638655265833360787928276186424191006190624583642600370626055210732310937472712488055901608832798577239840055659725407464944610020384903252269326914747116724782960144564544322392934343192960230332380247712222309651763557209572836656539545898371462258632987201575464852369627262623844088623764089612414212013359959160963936704378829192854974778297791601588143114635891103300756218882161062041186419055114755473357795661823000285833934977769599344894788323091558351628082214379942490321892331228053611592853623904336612069413549327322434122430242205559779507998457040978757728030500561513021638413488155528700336394368787857864271014082801664558377324126519035782666170245056960840963844599974440626822786586098015642872690972266766713609777623928065278408489995375496929546651741113441008414222249585932341706979418080947921287046592410045940324616093830745188461703049416238146488485209570164743228229375275779289462408034012061434871727474326154112083129751184518992656832382721342794703958600954820857613370864249522094872857943593585978426438996975706486200673243996743571087311106033991082898500484233652925231943933473677841830128361684894737415725987753100739936843646901004909450233659530241286784694722399675709674997028055094738782670322198726183979366963713663758733546861192591003107842113061649815637222731524015481321167885608353389467568796465439301017244894086776160596602862342370460744977963672272654950182477684402539385599650854147653165818297040581643743786724621077060415298276176621949325866349284897586858848808427486570790376642461667789501491580918155526756262776181675317029732224299816569086453458248370363478078920080147355636336875137109649206445516502856705531608011694863515028606014330549459007983762189762462351214067887421378882058943736594452797044403857701435897436244426906996518868966432422604184537057847271960970844849162479956976181998938141294184904232693666327862482570096395360460098142915345291514458425802204935445587616957051546310888997305785189005531384907629359945376374298939056750870239887147508980799583656548829134929930575994203715631384949301641868301971603039366897203308642330512585204520636678594317619706030992010291864236062401226655962248352198784008133878213843449572336152267567274140852774387139925525479710122701108166773694888511526797362992599105376131523960713593582078250045694987626671908809320773438954085206764387314014341607785485668272190137311388295554846518688601058216288336338577429639882781785337373046542646865601636461136731148091822065571934535855252270003976407672234498432377189036394738334447545915604341616824465490770021928789740481058935418492815655859050311572555906623545428636649315203434885339651569799961248746488280259407568762901411713556880751844558050968376871163901259828929149384897651321684569540232196462715956931194462714946718873782936729300837519288645041908482319317088076290833079666888043366980242484586838740244982384949451486892607307503292368810479384369937612006742460359027354098714103533800690263200550753378132550437780955419183903107161428170692312281719371567582932806823876515062182722477479154100259174943635879076526332263583940993530524372718538399821724291162401314181744047287579118506034743375981399798454776498233264194638538047053315505836399598310712761765240317535096759458462132132464594073709051595899187496112056132684646419617238830404116626073212838303577782437963222348160716076180819742736109396270393172665480205088506685140184240674192047579898200441638333904803427872684002890860030365932457554711105074146632172879525512857141706109149810010492990215158191071276757610841803004941354666094615117695469419527028681777984509844428933557881913796632324645662225177263255553450968777421750267122235363758195157269271264199452272513349008701513929512299459700035986337676955630785204933159500277019936256346149152249996517916725352031610004553546642107911978309012642015531179257306987946027167604064689749171593652570890988959197337981112968403995310496631622445868327258239344502163697175967590893541281017819698899102986217231011506988255667182619636374325161350370436055764466387690230468100662138414116516397145785235678038718055351954203305335716706589065653221555188796151112232989754659648275808546286064175155489618181833083747716973882176615778972088228312289690275607733924960996189398517771135317952866336028286059658850084014472565764266424779117049907526799122295481618379782959787655553475716299554540635565606510959940675888353232235632537543117110007950165894191121285720972460121407255237514772118302253487034933354174076604488536971864889423742057996537623662401830063347199270500584536670911562784805111108420639226096664383153091731069083482296051798858054812163414793686359717099475270508802188266626543127339046987488425302696979500043173701009015812305255398922867421381892433868497227581201791692515916746564030145349339759813247422267270708584215070603583692307099225447506130439174976495612434637021094517591346679331584326408951812241276793011455337592183739957563209226883627068377623675745407299635300631274584902792982192402275800693866511876686209463845975452326619739418820677515982369359586954740543246705108086776093963597278902361954342837817458702196772301787052389839749136911321185038887470061319707420909180468992535075224896313644884114862077770775252427295636646871822800986720791787704036384931824172155542534668930687090676082195295169545171283666676972252670510692475400446456908773405862762594278068300852112911402823560266209313734324824379807516465013747149796374244156248109596845528710385656974434391753985162700110107506276310592204538506733494648995877431089801857647595478222819945828619566071115257061638309623317426463873477199634542043117309478445393333681917730580621465157566858276857629707443041006994644643017501138268061302189893056077764273206025701971257021090779413509615608452589730079241686722378258867061320473515788339677288082460186862742645200605260139537327086221775644405111349195277710622595308278935783037555891107966813778814323807542090361492051613409891667203110723369481904234083353394298147059478611523938836237108485397576056942851759018097268904616938238161095468609496693002057120787288516079576020673305848535263791399324362929917774228671957172975002388702099999604951705007586320237977025995092010920228208215301622986168938093690382259648122459982031934877498388227929274297317005237341004915899701636556111326639316569075865099810604239222949547127333339419688205078204315827502720547913297499057530390912352157370742597972499594349137308274779207329490334168893201243092731298520372651437565505117777248508464132376537102153284348211918750237250502471985911348999513660982599850849467485340143911822500127613359522005856606046497674167804773630329351646587567781712750931959860276230360902782938955009857431256969344793576660450225555128394874128732492008540957483836828704450613138196748398226031792986892448786304586175758757030327079284440326880434119316001693905743612186279556351372971257876988873916593949269194790980767732952068504378044012620988678190582450269484962007920359793518190499396068654893272494833669854263791541453414394971780389818615326531328840781376087581218790345241350576972246455680609242182547848120382305239760367526342230082014291455236208299573030589828002972336802368270912661088279691258513717000281164967592086229935940901669842800321885020781778642216983645097622488793017130822981212187607150531140643318207342188674289686380614066487377044196138170889732955350320609223211323397521463315060966241577932728050722195745591364794074414525154856540905332343182838364317022018848216058514106914907620806845834513253671631111996649230171928131652277132916554572418037889321337035284956469965130932141850267683199854428765069733847249379016897187813141234337507841608671444340964335904321909364212025638043145581570422381463751289146695204682681779774671689697492593785972859162903177313667596918996539545242612501909450389569104093222175924096767603852354963087670081893146513421091718390037703243151408865705549196639717455466026299856886059765087804380991125399848298410327230709996097298135901878231454867871100168487293749448071154586609019450165977694382526384450355944935489588424687611509567922901448960442637840063949362912752516365953478638853135800390217475417015167888101703447657777422318089280621980618781619075661259927034089054133087732656419331456765472664201458921856557795844441657847594589124264420752296218412435186103391649246905083607593347656553766168754497934898478711885519881533996949895470351067959807050510377958246015234805085054262488959505505510570831852512199717925442868488413730979776030427959325850861110811981690429291111846883664886264889552074367123954612318579177367394716086621170565510164931946585594543589085647600974362646275446909120598662768390774748408662233436927971765560969408464500867701570420892516499134149131498474464012788928985034833500626228570632603119848609505248833807858574440528567502454236162081489460838007374221895729041143695678438207709453876184975930345650731267159583186717897626289976877556046339452617147177116377980492497658617340762828523357618373812167465162167332818455832531452204348400411933395997921745019519634469195091825792381407426911169104735694268642987951890769086829621103763356822375394465160257418783954268241348791895201430716100295728946662275313600101328166298079401574020618646772762477395469657540484679677101868475905863878012279594761612139921732759700025391055764090096472275769762773620094821169944990194927867032644296483296647371531353661695880111226000001901374148092972175842227577883326763080577364548737498209733282483038147209532567969402171498829662125262702822185963445965071589056287382125820137786599457158991692419281043608913163536741602485090905462002971443854144404833824321599803156887067136286610063248222553938762796169606923399376781843652169046443428425409201012376056274874475848344460083399012389911104945012103088779343691779413675682411180704542970941770249862095564355898600191705502223699714326182009511081911852599655140164141408111270322421850203228837370228374904098121757166085991196331450842075919117648731244626746562003066488060494383909825965419920553655393532245446888297579980619304557283341932259971839823540748289641049387476434871499763033662108044705780273411672169007736824751277107674300310822932502125442161082062156086173512701654440410343471557069458522264410654290592215639076264370932692690003124586173755824019443137941982360610890275656229553248307843495995835010945289156989051547376027246604398967354704240498916583738909139042975694737333545132444664474207502404649939019020109028839517337854249850437148510743836398506027960204419733012958925658509968677345667659956165787453881687181052294695722685693225455263903976831509777387522243024401219508027779467724645533963443444676790905458203631127954262532090670746570860867549712530648097973146307066581281113234767492787933722588203217635592889587472496016108794539035320537084798682776971792244852275015746515884521887671872913124251186792931113836003068066183811296490453475564518304770036074718647885221552160799741405992877494726149813370770687205340029387840773445264248902681964033570134751532839502493254225362800900267423452950237018687118683292451856150114287675529041093587877856098756369701596166082431619879973806695652090088376404198162713942254501632501816779705688801908881812594871284451521397949979585442182885302668375350887240666418147424160992755319865639093977926190795343462687074599596733369252824098068104304396410337334390322491257442046555091217739196832789785738341089272421874159889934743559022778490787964867162808522942784168635120857581519238712678129672370209112295285346379555923236536482511539556781858926271455033303569852579980321987697907377816573393034473332452110084515604794677214356035037506468958489410538006669880077877088642611394440571964275151223890748451723547352296205710816423360311147932875221591766402339256721000991391621416315187051544257226930972888009303817087127829898862757733536845743215315155564534307930766100898248826869570534970779128920326656699391704314373902310293017116244313501911178401878825166466730339292294664589274286537928118546536011558235402099836308574087001749247421952406761806021857953806165223452951694933977172783386784384963788642720313753957360923357498776482702336905368976135079376403905385216448445465098486410389205172457776013163821585293438789064286136749440404673568887488808703464072599872032641689963214041871130007426374013122704707688359687245759992529025849907980344054158075534962738831204504264375390488083063041553748290752667759168156648370948328742159140049158874905965706126466472892804265275934327535848029830393956553487352638549538392387528814497804850890189007714648758141886095863350564639855193183521914789711435367403119744955789847284836917385193284423251735202245020591424036470428858546565214434833636402090585066178267854226493660363140328895311712660745626650645612187888443720383136335158612016953289421229951157926676385498560888973662641662436310661958324433738897781196842129050818546129658450889001330172165284194474187749568078084420679245012782657988551289902101714233700671261201784030265627957679545186050122255044790885559620775646306375196919365544360494206875587670899403784176918047236368974349636662606471086046665366203202597029877401145882213327301613042218010507529521917048488375958623034866824007556410088233183406127607913823095308399356752814500269682652216880084785253755177507078678476649962570265727905947303324661288777523952164358846417897100826592406780052167403450756156926118000894539538753455201003022776165450006149189324268241720349159206844989251410568530303731231787540418289050689777867174964696584773805109040117133931885127087498351508627921607672354012097245900118798486543963798763894868470011609703113196827995684685847922215391575656838292210420326105316517594168115285611456089411482093308778311791948963044732007817002315069720979619319586628364836510307071862062144364917281068842533325089883687082895233462347909312230895430898635377378995707919958483023861815949001637542812388838037950071319551617834325393421858642097872548768867538142378314030096381066887882261550713098739415574672818934579082993573271721006118274566398491172870839264071521806297127167176116628126419753110820535437390604831674746917069835235211764129422642494914596009175875548849020036017862464662130755910918953445615774020618372032179639689253621005709194765414325799207571797245765241088812322366769228504930805275906785588868149384434376937024576912943876980226756195737136940652830994492270274304623372854502490744287234197198334002829687393448515241020747923199550491249324350207502791176963430740437649312220225626250285934112731434230497033640724202308682592794797205598813719087129566484367458347526158966633786281244236365132813790213443570144676881206149484450205591063843650387764072682566763570961576298718656188968836289686140910120684935656173965754289012174172214596703551655352083550081982789274919516516694978517972377724365170685186496103699629575972426556895188872803785202726171178582640948232593268227084345323723006205705076575617573759822783370432148063035097990845399224524282116195110463979129757168197840138770509025043764955465236987967801027894008074616425765989957523857258630578517494586418979532158750002032009550536834883163510998104930450977133431743028498389614118476087126268598952039694338464619060015283883184461200288882500682937698348950333737553401699566117603135458530113675198877624988371139418549266444365525101267515643969683124180757284012876924628550796010557162893020007295470666425719133464039930575261696893901053760725774832448598271407621759089182896217339179409681653813359966429075539590861679296582906785377481693186270923306769126862036459942273074857641728801530664481904858904607246489780416756674435646685442913588833320511921474080972913035031486653504817016049465894360659800963288049751190377225302590840922990827846488865680445636842310314000592977393996250215322339858692625069778961039842651682959456636547768793432178906787641263115794455875935920392980346160353421150560564149276135114428630746616433496149889850247280273686086858208022630116472039356600363569110893759369719702184196863159580002277887720132052296999761307266677525764175088708542342602842563211367245982819059509704806083719979079799535973446843631662482656302598876604327005356038314073627844596204885860023019854290995711660267415401233449436881474501269800077160928475785556795970466078196505202268070788034965623157484337924007953429968721989902717749470516264936727740960005978703062391825240868383792467733959334061373841266165116715010959761628311510170103299595991962152872510117767747841120222996847507809816191723863635509153266077735256834164282012559231971216955128917274909076071379973784826786748978295875496915703078152951044153389694676691474459641703421043321514632502065372523872714832591989217892266925775233060327794770040898352325144503668517116572099072416513644906118868161150760995326302407075010911525174291206744240842362545216385021946510821681339971460717690899900038640114983953184993073989861554792682112043443621190100011359555905219948026867972153631510566610435828767468229458736678528180289203235577128979079731975472425418772346560916757436987445896802030491602235415034539254351405862339827543089170580418659409407602195787018598950701288891004394694508776129591771787569579613414191985662380139265216454208263885259814705324907075302723505145477783554353348150055232066675402511909853956296886505984289969428283802217627491864538967036523688697471857708912553960980019330237204824383155510692013604917286946744678622092458719611845513450295526834868416289268151162102577697169626323750903238119165196519834027603074549244142311595877456262499777181655885958931209053716800985479000923021190532152937267091995140908361107803892905610881337781161455293905216470062508400038377962802450968943741381054811111661180585782564589734242544937206802235147970045753965912030205366250250329280478152334319009024465847948469702639122550619943789237305121383915185414541779932062065082336985021029002280650865088185118188918782055499666650209265035451205359913898959671669544302433084144964768942334660497569930267780159844555854604911122134635874408495651980113700027526575800574850039049562823282879310535944275739222262173646677055226263241507781592293129214073783734595400868648247655949189172322001925237385841119084073036256163405345775289797374450417026842110087051301741378402917648179905427175182943917366239298581655473019140645375092842271929846362141447399107112869444180363692504550498957528738440403876900582733582880116758482117989284664998080224705249302427918916536088368799746662084761219489799876438691473282067651134026480744785927048710417393102518460285617882228263021161126174468702823963277703737883294991244982090131470472148007093221788046059153262344455124217148096691574315632623706595240190365936468255952935367959914781782081046801027225146509705489103927738948183891257860216743046525906385701588681545037376640674980535179277852954777751146688609883468144739773735393057008614104884104066791868609704741627543074034526025970416668802370053902944409184973287514673608823348037405180479754422991789682921984794404875241298948114068922711647745997331827734431617890426415443863102110778093584951193533099953178780427840780626543595916816340167010413765617859515651144621898956255635405591243366056132603164477589671442729325432736120895689717189447179793358043912599869660522857038829606389750483314160628118604579976737620239437424679933638178036914501744521461224458793144991178344303825551693409275422580720249351595443595415160602447396831861367052674541939418988776897176343352555836722537246923501983196639698075410329231787272900053820242675514515482009031197680256667492404448105262138389237955030850646764249508719526080181974229693369257999311527548544719618950122396279058218965664800131818078756575411322499559953075685655404693996085304526496800797876861665780555190998238069656475809822326664428361728135037286219508099477301183797510977089053973031917807030122201765240189567355481626994299540610826514914286634471941114205625376205683878030744229817221466454209154803115243317646177487021533728163109921863025858047836319124066404600261002993515653700166600281915500423621909132091286480660819420487812123024612481171050115633113136931143614232213331982004300075586003730591860921731283497832639830983079331183840241432975360167913121878563659770295289891805062152739540354132969906458130779587900835112326267194391094703059613888404907683222074217233081473512725870428687204821955619158091584365106799802995524585904795365355806418854535388036672782919156894857715226099352162667504068977559837976979041613429228759314392452487270703002244874607560039311907199289998217179883014155964419663521874675172747258758786690064270956111074656124995214617695490893674911548000442529595681088114341206610072739592586934833186236556155770186683934931608650351236368119198517729770991751608175568044920331539114318669464290536839211870833543007854429779443440667797394346034756420421320760740429708877010623795511208245388843559745667997917254147702716446363561947101817531311380856684620293540762822844604976060966362250150810749557286811097911430172682712552940870520986950211921357879565847369299072317765620588755946468711073284620268045254538258175937989348001885721954731979265057272857418549160569074880949962749886251514588305273476155705214515471418796312031300218742707591121128520237375598222216301916103069479641255906347571497522993103396286298588829671025267871342929700242668054346707244955773427927014424507824020064829582341913237829554206243044144369608396015978962243276963781442369135884810107240589945427973231250879823703084724385503055447312064838839203434759390608003119810786216617758835246594875339940681721623853262721562499724302094515331032760947543081915433219594101844670025154070114608537537433939613799016213314590128480647295958351313757253881259569963784157018886397695092344404245517715289437234878994035507438265857868807934168097333695475572247092075552854740910768804590906858550054576835802795674137630836334177815463127565029913601056865170992350362816390286648277855104507061835358547333355026898604552091538626238471140430623572700317468628271586812097571341348229650493456079065684278548987378531134647284474159982344158526889647332017601152160104411744925400112262337106246029398274192431994248808749787533668731136829839941008228346533814657717661150412103315947132794325043637045602909928242055206601830549014967055702744340418657435134002316242579487969561932783721421846963604179417945225137861122892640373381255957778480271450491526128715027600689720444310819668247162042004903934281421213445428052739430636687967636445754443927080376658639645270851117659244266028845854596374612940463199496578582079254637579148700176814384333418430726431015150785867675430171185476806415168847395200644048147077098074151174534893251413567100554128750264168137213750400637095654356651707313443641043812669329260793474084906463326417165489646047768258432091455324419063620441963897096924438598681684219050059665329853790833924835749527646542953616360333303183266933866283407113312333772853983836091068931135026397423144252530941025926883371760177281046746108455619183211453370732240476146019291937450939136220993782890497161652843546041195252677260815494776753591329711825956933809797428012745345157264685878488706110228831936759825969806365686766416135820022158161594832764920629037788277203113319305441701874422071604666989489274652401589590107424159703005380155656603918337628044851277187139687478903679957071426715059336690362749559120607290888939595837727915757691178592739523899131277439652987748929640721680169765169933180867688300235767018146124787654765493726809777003621111976021623725614945689512098129688087309345701374808834671546632695591325466238085182762046508948678857037006320902319724966933162203514781527546218928327785901505449699924238440040031815432862881618076320272182825007102131670170717471843918736319524773774665476566734050120632706665174110742245358841283069858532753338593164462765747415103811010337968874779684616755095090191329594336154825350887419077196050639422395637789259906414751858415303761649747086185237350289136841527972291732328796667276479721210252786882716046923840596568736869410554520712429767890848747673333052587127974000444149543296944660240833765503389402886714051363838498418710525646538110818357274484292093551939727144704954195797079439748083526743693691804108479217034216950439277291353906353645082575946035157920851970524556757225942162711193831248755315252941152420270686974541404542990371968183858318679124079437667140078330085723804063666541226246975624527265780190851196613712070647894950400442313839296969207464533042773933228429934502901371657931607222450964336161046578171980632098111043967542199767884477870512960417901282164507988980253639935974151662311353922404161957532605721761627702416499922448199402668267538766070597191623886910540522452084687716593922201166349629492288615754461256773554427938897975348535378913835554118674808905816019627302758754497653677130412256133768315598362996744909310451473546845835021966401994963790495963260367284815573132542343963176600123875998559701444391646563214277603005505747411419158655803006284552920555746948066685853940374626912023604968419539253408875758915266175281888180132112245334757795854915092722286345457264830425277232472266456105699935148483785566196645806021742018874191683384635657348271909089514750005671069284782617948219044586738994818407522404574245995075614566845098541093867243920478733071553424383465216808291489806192357906001243647886083209889509683556831928561261777051318974777654368755077657808664488045497093758793328146819213324508698377079549688818286724132332545847111739181383848401455514857187913859177017231797408341569845700726828890776674114595985109854402776272563779203597174182035398920277196901740918135189332082456222781876812171191596046249578815080949423684790070587575403590750836605587569731804964285098728777305515332602806447935585318733401867503142977363971168544217188243544499068906598767952848915677174172328295579357995490223922963876929845082820436683391195116470337363477415721844841823749477576191458112434690998340451036014430095441917920359506892260243476832935612471522654139355106069390731594311512247052062308779037767060069828844495111840714930087214995103294358669233678710846342479385828352804009062737818562964411522152322590705032081195465466367133967306177786560110266915317080540974287392921022607661855837249272330033983742821361865258032507765228926774289379714205682813994730758758309289935604727181003576238313198007529726855377519430446752636106481299561387002374314359386562447714907795554874472100096104966334833057437012383322000534612575154702953842562427891691007428870612948387240730478419005665347430026862271956891333498738153614440017554505990589354911258476144307338015909584847920949533005959871550344452651556074372277711292082615101794973033661986596572524581117352859082635792063017561517659026172470695259942213703694049407355807279851413682729788923777403907719103329864527313054588825471502021220905911384273386051718467712030820607706763589550079875726026323263856784726519307936170656347362980472783098457575633886415028575622652226189974094044650937819748187468190980421350503097731649574212436762941751591595216264619451204863807526340519435618382957332412877232392054600121756990781637505258120024464808063684015858109138486852917184820055378881581113748959837206578780039713189635831871662657709355706867845735140917812657695660211126867812154838305791636506038360085882181345236766270023087857846857224577191695515588527402869833045521274122166680782406048038881494165511259630717962757464919732444939539291388925731269621458120412782795663177001543914030356316858362066560258567637827483499651157660848433425996290241132079914177171932340920239022079589094454014655207001939133444320886226571250128380093222091783552586178654461547244482328308617363433014659332022617634524108171100238673721503373020010468509338322689774864575095637171497711300298177915010006152635400237279985520828284833426195067798009217359176684097085153277737453401459988128445062509719886068002098130941907844402964989926283770564678722924856591105682164912544418146625949341489119748332569473518951949151933466755512686760721960582970733462599511447206497904326401839425734682864386113905519470928571731236326259181965897372453433597365424639971427094557364503158130748401137840876249015666964600288166767927036149729172503270542065717440456535015295611554514695425629465581355858329357933438353921154473308395542066318493939684982118417460285856702164229947726407035099214585107413919654141335349030095627912033781046340864360260025827515823174809247888487335885228955866913944444697377842350433509557947398280105350946903518685513405262821367056918811892601493272508978190078301301521368942577053314300052429924688528011804304461409224981381853408813761420618091369783534748352418874581663009764343588938508646428583463278303681720883662802564562715137649711117346551524596811630099031095731689811750753854561923055890679990287672237496809565655861803217940494807944698650769248799382529095782651055277019073558783489016580924723116045806396513557864559402140633265923841290486777575653731767078002191138996726319128785009263540079260356633715616977245609014036643614987195418380167526367515119821313483194750045665449518817317357730499038979926457672386638201744316073879706527210401889410166507221332503775495877947227385890668332167506868694971091072960824396306063639907500371921999727018383696837321977470615555526468464626121889581503138876303725962638154725766277756046345826858933101425958826243968269383844653064816698182408090927688823719051044713630911914211416652669507321414108709487566859889031058936401703608882376347856238117172214359908193614505776807260246412658426172465001185830814196545412735244263692111955179709745854491483346464646548910859764421180178261926304424337578672339140763987936361321300661355296734107273981450833157107438871556591152329444370874258272538334328044518397717918386565048632721118997453188244585071914898975454482106268993357731529138977761139987590861350213796036164573177023354023879036499188100135721434660586378552811115304070506569092129596183360164696613533533346364578931195597565377801959302580590141588021230872030648470113881724791012159246317448896919623202405549184300956802901555859651653364900072034635828310140035480880253593848276448822833273298342099330710733718895650140257250288161406886810200963097310556332945071259579849109704541496771802600918707165706243861535173916742009334237987261555002898214215653175504213773965263040170485267133443544724146646099157090741936100318147266521839407419074283229572153448858263937674114607377671966276281627238507501637901155691539361555159218784183712731625191560054195824663747952607342663472004183024213377029475592758025560859369191647742981702106571377609220252846355502611482217219756321423677458006489979478388159543824867987024303674841256978135913995804683380552098915460924075546037240977955863654741635352106680531846815357263793506610371643914787981119776405264724575499160790770196905250161684579445637251936333307848980367353873416944731964968391121416041628792601998145074626673036006387896303865847325559280085975853517209162988974693137923198313308976457514965458842767646729700477355322752040352127131551320537056147952472425334667309587621293018425216373783532687113496137287741915536203045041678794994618546222963041947097521549906778893146797709973678651308403056300530773227472269249249966450689095054681876142338580755196685745885528676175264041953762533496746343605345272755086703504916650839063515530091613432684302675011348012934582806622708647146331465569428208142135538883104137084014427538062244775008955254609568474184243074660293094511330332268837194677939338859571892418492266232160037870781606146312298838374330927488510707364907265719491714844850873983491858783553256060407603187696918898522439385903604992340090414836861227969521704372647368464719310102521143494875504400125570972821326152914057495788413481387974958345707465648571775608412665369134410482257208397371860354567282628937438650506761075078456589848226455743265221946071476945639285976361899903379483328144109830692664986417492775353192895980155523653475163041781628339519483021444897027157675989465934413135411113203095108588070630817871474229427519828260698492851223940667666554954956549498081371000227628785506844749860853780008300773656959073577872533830856435932050142212594308330623081249721836455483139695212326864659732364065521819257300204836741279745445210904267621363568107794127033429967074562229763693305371474842969906345247583133358387002641241839730541256754573775646972514902506085036690601156705029186596176071361520242069607103780229647014003092488300878282230809732879850890167025884896207825065835858491106559162466993330549788334555126763786270804566896521662396312667405174148617475138972552208112789107223197613415743528863116645479030619619529678143020372613417338587800169567568533724577931558067396983404349891854483008586546922170497149046481130937519077686441912158572906863202497594934408598782757935217200492258787839543302917313515966893127734974469176464700775014101843908747467301156453246149799193962163973825301099623878112419860314417906002719219438120155123834214687059465320288307005943845186115674379333025182492188546381088364326489969440360020134232386019829838637446520367566151142351852498761168729661464675309663118183148044749827083462690137566287468250824017236782046342414342307095449305845774831014773046246528813740891839474225368054881544321118089118052393272885868541456815626831243863322660922912782081190994742568778111359368737833565522874898328029254464263250799929872121210293033267466647553319663000888799715485211221243014875971995166028968313254176494976507914963068884159107822464025107169989495158963861153258827933365391983123649087613661580598538349662394257162352592884671458797190166129006898289662457569601925803250131078868951130810973672206471813221456427363883587972757956629643113220329597351824228406789219184958010738412967468998310150580216514199170880618875839407649761018456153294315737932765489781154276945329286827342463434733282050033335167779513461020321397044403289390450451087368449265910392492053550417796085052221297844097209716977054712595632550903591363364745985225086289882530003950122518471502424804867166336603038058666047359300836022707684932204401404465437835211004643689069132142309231721949707195894616181126826598502926308051737129442642613874314493650210972049308810028980112179445771347033740312563119710738029812478734970628550715523289035097618619372030157421825129204697744686081797693881472498509697078886577932789234462400008538345666302101941981153784538030459109645933354534130151462150949345029946317212784592666662438237693436543978557632137432313880506482184362029365162623277172663384106115798464435810707028202797747384285868446059931024063579034958732259270772725331118380276379643036104924336710030930131277427702929848457999365963058642361006358076439808707789323316615049921444703445764202273807633876261369042700308135897574892363947554855411802086811355183347342712286239858814676818600494726904141812823519122578503156361030739487838184289159378422812028882597909528127170868083755806256867233304992977872740943600957229081178978321953781818498348256797669621114133653990038199924029117950326549582273294602881933074073199353568272921899840535523658096715829530260083251619055668909611738472236298748854070463974372409527358537682443565091354490880660648896685499840051397370595980221835675580558463788000442867211225878720608990260727227960634741050036081170592287555978840274283218614722218141347616556996417400744490725198044856038880094901297933001732181131506724846338779424685385740025736856340556948395961730342325143844469427584078813416332385967238504537694087931574386511031888870994897488995431008371021365745258800201603307805556368864687251664940439847447114000307907557766384713836527592954538931931148245626602101515319327681855132588836125831879540892287552881322315889292046945090721782658710989486569503591368937759850442153225219301768796167610002545338199994330095074535325949453612051521008477138910511279416652124656146297339478068854093681729631558715791186954476854704475987497503505490110789635030818763528589746893150396590379530608053255401298442447662218738508481049142848891808441050674997650956575297886737782784671373562447878750688002190359480054713228946337915858136270856338825599228566893237079862181584102342134399239389028152021932782566376923314135746561989165725108599716362644010560682223421077583068742155669943615477470249820460935290909797176748017635206146534153077533432505389023955571666309424895884542228020554762707226049383629828650340766168310078250499049244660855837796365820407520864508956311259473696888847862608929733391346419607297158981040759154205981829637500025704848548039272532483874041315602482043111852026242704901493117910175715201810295912946337132497734967181018494559854189545140563512105091921337493298697626452485483427407149990552822504164564022128317174956305330019481858347818161732243291811585601308931416998479956305113906432968438213607298508157839445904487710875305273209281396525573203120488062681338587194276567913445222715977422811808818459218862288767961636449402362011918010798386949134901234871744576928875473952667643156183706581465693003633643733908279513720032702990407328901317602300444186224091332680592770898442465454328542403421019735581950043463790457259834145191220962550697950596986542320807817542353961273635722580991165461879734497300622080676613265470239429462307249716108559401925522979711236687239237980969471716550309194299524141141861663942378639382543735259169117332430742227090434222010867687139160924539617574155313855480820978090937117159910958679003269510747140053561125336921980695805436699536870077129202049037389586515010699757068335048504968131936885466013243435808316897265087636862067675455075494867772625558157704279074541785558464120910366410009310822854144710441117140938469365890580630615653594215792622702872544275816039221560992885848620200705702315394809918905286360083873626335062059932408167378601148023512072305739347707576622246920211586628545234802989213003316975803390971164652904002214694326473121885998103593080010277070794968475154996099034211612509574713276227050470205975787068846672009704233281327761213112093839620363133865751201210715859808037312267063078250538664721572246215441232583849615756949131644458565754846035399553490333629336392273935603580393300772291396074793850320596418610095026247819995454204376722494872011656941830865625164783543490233479694768091646408572842455994424520940392687975519108488389485872960717417542688950556298957451184499528583634199499100393983050926033016326888679973025545579612211148583504536512376390137889831281506085389740274071170251450266594851479320109338005687011869452965776016460678979435792043808825159216967701807897978608693787031318519346706478943222282283658224376441147866805926767035397002050499108521117206171450613571818472577901939077742158856412984304029713026829238051032656395672479862076080669941617093597121283241576427565231605929226275269862462201187954927207522609534631509573444726407061426173756743387373905921356969212966523808959464239677910802178004126758093356399515762736871867945956358138532009250287309329458632870081038366141282138107608739698433282976698804465578395444073973885568649141843590942677202009267509982298262910591174831097497005199686177540294723551511358317489987380596205918612877241190115386393691172213612531867556196059756744178772864266299317296337435351580544728050525800962289041499649068151326941838781232879112621807304836235878520834105708315347662732289479994110309500508359373335651743730513725784251049121485889277135323370751560888901281235063237608112269517222310466367068207003928766720082727322222388255514054801605867716707522777804374509930450744425385280707253052430475015472396323438141987525857808059264829892547510507227763645124119016029575063650214789327102185813781570887461823637780506874233414188913160397356684734927894857484069178523050244373288353673638703686345508574159692111301117607818088211187980725350351459380719257817373314725057437461654108515341942959704986123209855538461104046994991982484056458044232398313734054384486623923946725217380093724158421773892461404966650119097992936609626464785498252595378504653205715800709012204441251491616949841367828228865431759867050149820269645258789159162932148955648731399732661758839079474477986033719503539756161157608496601522494833160397074041434431120353489410995594408599538902233810120068151427859402605868072752328192701563539125095398556478028628301002467200319092386835443559201847770545776549494044634453353634743042153684641312350332255473574854785441801980708656715313908068867292323439412316221884039151096381134405442857812520688282761133457823695847259078120517608465398296572970224843117233181003402196554171361749349913541629985478301383700478390585505925128034214754417073267371014207175323112825466777163981197425011643819578534284289027314160040669759412229446752540051030663151712348644721888258935625137769491554733857705991714635284313060558709869537765875639034563461244348599234975372691972897985223360093977696628612021625043482002525000741094436181205191619204816091735131799514541908236872014781562656987212858813454756815563564054288568900940957272427455923790759648390398946439888515307918372829020261456772058252880620646343531533730428140988123679971725075994528953220356314994728325883456212815602767455823883345114594325615517189578451876312650371314474227656650560007067327208099611602246255431184924067518897526230961358843391637845458713589202995265057402530273653156108169113715226427916726371633732404074125264989178219618618046382966552918780073656305918099777947658864690873260186847778327995444371487178622216683317105275383860038600788220058709888715964434416621445426314916510784541913247818914133917053286366950035933164803673500587532420176113529300669405816326757523923144612580653734215065729038342928956012415871467878468222504740010767500177019598791361627960585526435117097787237102063335610682588810809794440933080464492331399509932873271201204058572425875590746107202453592728841386365948076007654748985776660842798242816496992831827031176098610625924940517119436479688424005668174653763375825990115700739034970466675694874162754218442253119565004601899715509933643408974328992720365772701526442509134873830014280294857246738311555804479611195724173164911692055002995296299165967281313217883010202447612276741238508473435319190379927274971836852458402017177279704664572060588947987919246411145850962797511286379879396706530873269063310415186302435530721860718384122558908798549775788739792917870873822369770030312128343471365441269459472447981684439788196082360874621306155930064087240737420958839973769297132806441030571988107300308854162726297348359289832753494023512437482736506702730557295093974123198360425651514004315519742535968568578850101244155973409609456620740842314908477079025339773525686280406985004589965308803386495092735329065067831939521201909629691522996285686621549477989832092365837612430735026502612734406099194716424932961788114025584057880065115834901831021875843257572016947322365211236079819287499609061899582160189709588788753207932365886171262734348334845003675299409833536532718599709053237479479057630369806235352924539580135611057654475404723674806434863021763336731276479231442737678711057849011712604807747058841771473548437771118554434151877542836320838664378718793076778001755894816491693202287139426291295894329407792695315160803346302855929641935090898188307637288868306591461680647667406986336442017010896091444452352529028607181492740157441617802717487070504517207417095082848995958854882400025817402101682582754077768006239176170534905591442479987462034115173033915586373547108527518375494403598302653522870831466365694319515285191463870329106115006630164712162422916561323794824639580592413156097383247458401765039324135479283939579887911944622870337568664234375260192642736579297976458025228694870495980087514063791895073717182294456452451793893703659712633456385795810554566150836473004865757194107296867407268044050361784513174975564695597516770670455543983675069166354064119269115939478374574102361773603315990840707170022947302727813568713195990867182814374171588656736264570433938626225237442980826196560356071019407601217836572922272606757851583056655172730657876627657385616200432419908686163033177267398844866126060996812265227351141862617513404827358040206482617154369502976106766195286581548432439815747661163083351833498695368255290631009792926609370897154135264464947437536373615605682133435358409724601307916619902496063225582113384979521116471524262601570264597974064364300529140422209805007405226337254268036814976304575356509517488197038722770443323986123939001102009353215736912766346080552833706769205343383599688202157469620068814917118972755241213026252716235989618616426146917971544349612195524004776117127876007256141062712367252520126162339613039771202464116592815429092746144136786891217726016270488584616533053663328765633019135495826652195947895209218065602280956288303374713609693424721149937240585754088856967830618860726540524781460861644505109524690132437935200767403333190645825638874831661260474814042076495707155546668084574204742438931101390832404943476178780586350743937899577490584287021959681863905197922958347902872056913912130021247266670962269962732787403336685511015266158332773593607379211349981506458642620887558803769243420692975191023749568034508830365436269314571772623338900403207487817006335853329781781591535702887370873840917529112015294931663876552028623795264463491124436863279962355273608113601004569816639555990872513163971511580356468564453590785426200600237176305845285799511884703633963512878163488420503078635888986984664577022034270757753369699059131292488050932633881655357689434784287466793433722596777407563256098830511106072527160539797256814131662631694877749131715967109327100517350201579450572514255555031129793481810892514247944134731298143295600340100132577140184841152820280501307005771678325877705891634118363257038787705550219757232950986331053989832192444103655976208290431463178316970618268350185254503134385049982418339418628618590216182500628991128841175138963876122935380042711197391209475663676530585905102173652685903785279803664434156363921699563462711099061636180976887899737929633130811277239929436840681831414943595277018916764597213366761473524824982656926288728596250591251636736718863765575163968788819080774549717458226096637370513033075922044732625052823753148056005442329335110178001890799340017459601366811632360223651858975433046340321658108767049808055437393911847942958542804191260058828711358495148864313766663786333822455229372387353851101440827361318351866886507417482731758652602654560287926333755021095379589656394243530169394745877683896039608224408469755308233162210321629209825287967291078202114315688090120679688298173813929959182244249908345851991863333860842511997419732968157629918939096338316166031577730884195358928162270652032115731735961992317540129600615156734540844054274710349422930929774339017943148003854659117093316991433542024180360770276787540033819600534400674084550033284920553229689301707373436108620517348498539181173205740332644597274301326859717283457792378962900765875644957511087337509483217904696843463049933564315845324411579251603520517143557282241672664672815391842758509327407100748622572343558727824342329877516644446454380713471566850172028314625316068291953510578620829887045021174634188629521845904567954545839221481198982479007965050155929214709165605751180879819380638449475423591578816452032430626883586678944138358720316420215557382811032274164354384482666061460141524395831771921418755768737867749021473811095305317608296106638856238635235043141918197929675232651828281591946547524420185375666975859349626189418670061598668224117287737855570100425772789730447182852197409883101795691994549941620218813808788422317888115268207706721280333195330317657000828748531241553800457794167441602751081354215035397845286703369618088957189646556512764007896402338404773427363901176025483219889483354891220147297307999430043651198724602415950321581258791818981972304594007303669908531894275123743495750188852876614153184602025277858979719203070099088339027039631974760049367693232062226612613671351451610545994490418454122973389374659047609189615795585286957961885265889243417407214438100537679614373022517457229897138683926468964104536415874108127591038879988638570510095440537489958449145299767549916649789772551802702836240092066385281841919636524059848570536137244410947241654146346158679193313620933632797083682031107478528674957166111835207324912876059964276582462157192166541918876672418697764703607990151989118095177527842335937998210851285409314244056879646140787944532005136000762796310355721780134242180644368537154499497354127739896857128010191171503335996954321633656949156995198801779895547209603401068104021915058938047038635372917464791810767118320081394134259360476208528614726256897691651162426065888180723160822813004012826768050924912151305579145385628684213825775401282969317770664008805036076794585840623675610659702121538861300234058600865057564417422617793596014370593877110891818823751981916809692774641084569501215244306825720644090958717504346951541405865322238761266133773779894124776481425355522916765419666085657879705976529164228161232188196849359626946539913590666035068036353638116666399349656951526934787542743258894254952337886554399870884255605628851771643597621047275384961605797528510763925333636459278307446915518728679631883979377843204066605431336453180264082251007401684322046092625836335885844500212525902950258197211703709548076091492255132948141186839446006921209493379500024261136625585711573326811288876478642452866860671568913485376069686142905106969496139514440145448456288264314976136380089372901759008549277117528278251863240220812350532662822952755751072691328357138210500636308436867425130453599560892052681830191027166246900393033687969166925188978839627907435284161733914571518520520893354319245069836368588616247748725688028711459406514589939064865361547247429493272757848843410667136702252758053759158046820095834466622623423103299190138985413762798635005099385696446002179941526564528882630722089711198506459509390175443639803709583332928874002371391081037748226099069255544426990292468732902799438662458254245308081792793120613481189288404324200342065788296216254157967661646479888638939597346354369751125677751587875930769022836115218222205725279186881049569741383120382806781720475535720571063278599517657706242336056109504085912427790277307014521031280108061040598576805037699493866413021432411352072804844505178325925495074234335604430626273331233140238726228880184346843629754583840579695276189535765141925489695520274586141766100155452220820661177526381296464832628653906945830511701691113518282994627516959272300540183749379314686495356527585716321941143275505296713075581015346596809974484207578183159912770814676863467302337167178088581464508963056998399775650327780892027666846036446695870499094739682437201647867540045368183471118547201112739511312472421664057421666210653450048661744775732866284921279503853258878914969535960751889669155921414993737258649533450473826586458737201710828472554214893360688242772652352038753080397338449065345484304891680191541358196502947635355801888659292221896664995079304688441279352971988625790036221956204919443042316847711709769894178826808040406126213645144681957946727392368091487083091744471813268463271969594622985190184378267035354583806203989720032462920895102603006948754572180421046792664969415995333017497712124769486732760765572508505606066585326231049150943300125589723735911365677871049604872275636336897203616370954145266025851290304895885732294174778397725603456792479875848967165899749122080953063975190129592983213912754416451866672783356344059629126664946376644116392464742205480949817740624848648787167159413525765624219387722116912088828335259597014696901157597744859321318266897148925749847934272064047658018259959384469109328471568113848799312838727733072787123462332717657794743857976807865254467446559097306749230092701346736724101085911980624678963642253691149511130140600894124613932248598890807540122608735084932149474212501945913153167910046339279769095580081386617571950170437047290199591154419990226358852584680755858728993229839940945762526902718163215241193965268334281296005260709163065914478823722804514543678169371468212598105832413092994270241968943556695414937185756937136403666997893665828787534523222005633152510476693516315982989383846236290308055167769056897707590642445390130368695660195580405137041259159787512184613967720591168529931325360901528447264395531078659700459481295391183742231680997337222539457587348983453614161251204087241040327196785949032630481115166863379677539532864575230782321864671114364658901798490960881145154718380599862156979621298112034175982528158860737680120922241709521498459243711199388213926598056364137228160653229309079294506026716943076477823145566663057639747966869988472043963364814880337850261871167303599174578207199853623291377911179486799679620224415860657209199963598854251612417608272846572339002397917725415557323889213071328287179047445492944410348985518309486359952539150990737751075682803397811426403568354738729506616362893239954791115228176378591450448817441386995701220936506851451118706498479816629441471496240291395057927314335851359082760429707772662426216267749037872394245190052740522979754746239005919044260893671019282880000102151267596714779941146989205174760719173700195024762863079525389372662202696608224068764584259076713943212888623437365351236538228643504144215313211830969158139978225437361163607210937957093982761923039661774587816924373002036707715240287442514441481061829847468132042656039787509760109178553209099716719324987468543088741741569903533054482260858989371321676181672295654893333622972098424198799141232255499970033265188749995511020118174872708885282709143230130678945085302188844736535236004318859823061443396243890317419041895406476147303583186218432225609423872276135893243580618017908774661034640077514078647710233493627003815596741777404756357458197618745417165077633301188885101142228556720880741863750250177676142099863396559372289562047096906688493422487892586012262299564272725119676495013246387505451583087560493696458603245516003752193931798328966319151937237560265318165032274856462256272040955695322127556811956611557452215479957536650663367264796808448981145099990192645913415695340634392033213286980088631401710211432384987461560548047565594274925692128373512611934369385479925436962645839420269736181623074358314136308229959778119649166676712243313193688221608906927830291754788810275919961301849402493511616902157861002779834389923122423529354864033541691053106081544258409117438668909130878585646324272669475123212523269526284726387665919123088534952887975439739804511413144658921402153444672592804057100178106306262214202833092152948845992488010381961628274340538670455620749649856826273037098142988942015946913505135288241521957861267627610112756204748178979690492156454248377367118072473892027142227315563214562652641961398657745049688918186088988653532670606372160263409217209722254325167185731955121528964498296045126189373227564017344072776824874161917262390919264723991275599575883729706837511489723096020447071451505554559856228546592160680193997543546238381108342918181274681115822800475509131841887099865098778848895110019308872247017832438641713605815778672594174080223336004072545972391362364454753956129002674521830362549105640807126455449999132917610261220919765771175846808463663981026361568153344424626067022008298854331512494262880654303756512804043220609306757482233048944313995535525121859016541146987416083328583350953557630649594202574901441504328417567286688382631348685231152569133736021010482065003143032528008757540277765287402497937576096090391107303785739631430484681476726022211689609248652985889942353490979047231388114350142982019235866429667907577481446345602160884997313307489945176845514585696066345583781576849763978276931028047652278237402814583428390580100733715890501617465968266490077351170547426602396178332196747784595907972257254569443686208349436027321692659067456278240523865796196567875054459070282295614658726106835393455355090077935772184192789393094297121603729640823257104901197604632316670369618599703550802675252759785098585243659723833617340903160212039809949990295211191590998980586710546242027048832820264896746855284233738109552201024138013694470869372625402308721810227887867256678454241106793550844416545471068620262729536682606099217774523572316369613391591331303961916342673891324360597128510508780478060326155370002523402389977954911894104145919513935938217042029761629715423459803711499382078280473980555461824199637990129736563618281469210062521990447835946150637340234973857519568191372503401260762650845959919971705063293640205370548077031090866225859029283686796354343246106656261364378822594206447264469555287975870408605268118222180290923618075036539018624804499809115059781923039805700957669754157515163506903743489656530871462923325042986115061695714172833739253173850978071642137776658149481173650309886461737521743871586708922849370138446483619644881807861350963045858964426430097219559656230348964117618705840708306452047275627982574103071139042722935668432166931185947344642732198459009035577776872301489012049442901011386975403818323070612443450597140496942176487657070810480424487299533981619347710601945337239280304369739406486671829849063567905234626947508876536160587672310888933438530466192803556385564228299563167876192831890386487857689218497718152321614249548990133583008540937376401903607504144403656754999477217158938723542724866266265365865167924720868220465733305480569125331739087284241569916011759332106009785850619760294709066489047875555388949410931488476626404301391735354216399136763097762282647549872190820274950118753743359327322594298418806961832357903191532458060057582674948891085124772040328229615068064430332666680264286117650553075561386133082955303696499907532384181777485111600123847600237360495039936551650694399872440290991782283290444220360137073209502035072785914641159768710565035537374940359517315905259823682905634398269322608276456393800414309968815494372727039472544314765674934455732710114337309916852502202272784803590925097337867727875567870147089606344625864174758076385195064209631881651549186034027598427688451657370045313730117871692972237740660279655067470139594502722968810930734004204638895563913489617133440715797224903944302443890464997348204499353390114362839216423174324261174322200928314012847135768298685769749109124089581522762795593745826731343826190637974504012952007112864473070626518169886649950817946763904142561497531539758462476297442494918891996154459853245172728150307689652385437407892754830336211919730057521563110216333020153111692227267017650865403435635506745064154423892686585924394649274141408916065609143651192993540502290383421421146626197076609864933167218533053872042161519464506225694729603098879082814295467297361047786374817018389976208190057687294626884732676042030338865813701581511821909945600861140676788026871222651477820595469493097510214980705175382454115499084509382689652375313007136258807648919131036424990527712340733554621075284437234670809487282456036299408968170992981113308515821205331977028466125345285120567559792451488322346546598709308230872664860951790748473649483989411695277111015350365430270803182720473401029774069615981530260145012585106268945393288813413733686849494031857437757607778455144349914504526053487223855920677075744517890535458228114376383752836825407842061007834316165711107600698228460415846984039392900095359842703521401482100452210413839086489820913493412528847358604462410192371035259657031750472390169854047783755607874290353085245711557090428168857537036037966728823834521895748562700482703807027797438939780413662399253650498538529134857062042831227878348808376246483321254739863532796785207617469457254593939758288400307955978974958358877054302564123891856568733761479867260892323510588885287154257043775420631205916582653666328792154651830816252406144693256691126106593095466072867579504768450763460124731431963011788820548752477945554756739630955590695803849575766377629284962416534615771679228067063956955420122976270865770092459065361881970373070156020049081016058460414973660602030383477103269314095564268025279672086050365556333568026818834263959803929161214557364983800673860890352676412344065657258542371260469551161381986794109712157647044724503846971723668808628539334933618584624538496315133622995083115333592623047831998647185754048581731455236740683520889525221950488761515910177165381093355893619836478127473861199388375090785669335996488397589688437847974120900632524276403080640872923671037286303209305297605246819355396461419361213407687317551627765226318460656586024434615626836842716509255553595673154653066543426898123768937324841093137104474839816204206687863942756047455916057393055069206300970583598836192803682106280278316698483350979782336930485457088540842187255021599294120732691845480114393084101832585822856673246630855314638663372644652820710385764242645251274497597042832268910206903716646165402486562808160030512101355186734948869904456733001615312127957946446484122525087936740110219660367482932629084634255053782377593518384966730180593209923000004319408670674873926220136877198145331262050950646276388678078564855796564213318735272374976822712766971947706139875745769457425632213883006731673405798383382829608443907825893681263740483315647467672701825169674881644023697738420876522390884259595466128340422519466004037662979059726400427744005992968575205736652238450111062507586110850701065615892354088500494747373203302619367248470078726805315888068058817181763925559473433694879301443612906439313648735552529548948557265960500392234778097516271465379633259901584814685870482313713067761966403313940147090330697952180865520278223174160797164364193761490116382829927511856861581903213826185904778431184163982559750718847823112103305230883002516686228242454522954112428635662400994583943047496521753542655613148426930926051300972289565864439703560156546907778955308024683536436081829198992326587262776451092399368361062602454425018104984373127429687853217007154098387937567730132026257421991536254127400869945979022298807440759226716704177672025766462146001644479699958746679328712706296081668999200472170016365678599879871830757331661706076699221476012934444702718379490194716157120480352917238065996642334111974081250017301646721589132151140535164693094872284467037879989391794866034212175477266743808698005620978582440595775262219033529817285184131784795455066328209033082319024562263632128630441755303192523326079419016382162484494282030484291577885086913920545891688142466106933701536144495933770910772544080597061264640648884269213971798758710737407764200236494140136730601302384824986027413556221638801444164644165915564173969478053355169124596813672171448149316824099954732180965626212063590288826694458640094176095417592579222874159583694507604835344802320477070019639695675015990094285822203786403272060179593402057198817147990587422071280957631534498994378628604161436430842182226357068368151045821998907353942933124744160119737221670507446143675516768587037918818895330464516948291121849029725878191826552833649940061289744138426090940539301734366799849470825486550077234469319067312848193647993161773496897831048791800935083411269650656613299386856864552612579222348071949942003558322079187023067484511787099967193946968530639719073126727888453648250873314053293311407521889186066516704170042244067633538241753261735214002127073011559712844961611951269729618614733571676573520936975324145613584898623282049576449091212705547165091891930982131996110672438267779350251558802952479707595551814648640535631780816834306956920070952002102666525317552293794975304712449570534379473957362413255536401083015074655799515666940516935313951549116138382885364286700081232901105828458770983611649832836237354791127636210282158571702791066931213582509100140898118579858021525624321211492390514639947336873761200881435183120364273722832871722728205908305862481986749075628286097876827689369109745968818125109378347409191383077412504819996228510417624533432458802506612265188767879154001055854731401428669548411501160257910318451610085634280895041067988892477083986103930731169076513437637133833753176003618740602972716097267828169366389026493152761085554367726009566715886170829855175183602292307870521195374544493890618910776462836352473455914101120412918654574663425570812901467021184485640591799834898824363525975157788356673026297347698831662914382165903361296982242119852588105309675506340420473184736276501061718941044706256186556730745892520087226996555530760997604458053558371059608632448363983602373716410801939124562968436895231435775321435561245235803831757985353934381846107641594455116046466137816410196141208581858325921987454205232156073317084412639098667248858397987237673354670136333107261406512443225530075102565717766957429055184773417324887427786911646120359908583089937112946128131040824443089026696043406743978356353987490619421982577691861693969387657076928112436330087526476685232123042344594812765189784374859019842979418419081297907557399402560645368600071268016471431770214856682478585931060637395589555693988526941790061722550694742238239479252743791358431244081796358964241338566765674382948156520975090216356446890838165385799051049476344156090910740476410260576453365860080038939409050635176724130037449458032242975333059294936115084817260401694448670930896107653936398372359995629351083762517287549960757256118477275176932470619390221123844575640370159021577149051598006378385955404302235654610175771682295785010276985731028745664411144106378656750164119320404894075330348404346942136561602191645239491714662401059646161552628150002142655224896646392758020127219406359897741385221405524537936827503854516699785376634924574659100172692079703464341247277019903954148600426171415406406705912711297271481643357021197164898969375569494097961316749192784479717324576313754061669813119351163953848193880894239850510289097010566949962125694504178301333339889934009259422996252826023153724272765227554080862932985858252511416811980801833383375444078235683572023394254966690804893343607348613666034734115592782280075900641274088932510373304545831747491370001960237476043285525443750178023632418310809622535359026609412284526991436548380457754840578066724683159047971065479435391990311256493732937095500507799624245029024541001943499281647847764177547178746563891732387514307498308083178969618001338683445943060586538906973440450059251662260110618137011408369307464725665655355013263570665374762425066883841258277310509254972012560195704496065413922376072251721041147406917689951535472854112077347748365969762875468936888726283887651261782406399064255499334888977478975149780492055605470386516038479765976209107312591618929668862542945890522524637082653015319005161031912687769945882916211604686677352182489037966859228640772999680685553580163369861030040216963289671794696201565234261530725617109640433825875798483242784770505380728797413806737388122709759453257838237992292839190783682253822579289139739968047726417708596675541996551177142044136885257455598909404955321804999699551792496440388175327042410067526404658378273798136193125197976685542572707572392123447969363904697609635526084384295830604759968642423128236308979312709044174291438578646518348595722219100891216304922022553399189573014006107752603668762809058451467751100055867118789066319290655444340250769631834713854975103248863679794291108647269445812621245042314187414101469849682560124924601391844397617814984043172146928874324891909156804082102273194833376204306975636999809058693897764644195344562842852403408518962803358429316572321431311316863562441782933206647941417974013666233650972860398366366917752720334607224748503490521022331262857274818336768546717529522911648158005963025948811854339445266703330964142333373908237814748508115563965519658934574335964852691061034667812792947061815461943715457330572054933494619369923586512573726849867796451222991929166413014520092609864936833833461280949754913711305527555973664083141239597270740622462430675150270318143923989230853626474629907933520267481318068765092228608509750441553619014385036058965705746392058619897369667137313788557484261467593323883901720243846084065038017160081932192902102500135886772110296401186904615695297026328250177728077591421970754856237785384736440563844395188964501865472070435819547350494708197350756404633024294861694085988788978583564153255408630014801040114701896793429354725382174287823344697400420598850126992639722162946677481895669060567538710217001708907466461694512288254177332910573153156105974067986483297078994513805693329879518268736545803642113628086181585872284130728723519293217746577497407966832702211203552690659465809546978957420158640919102886513440740437649673437090153356274411933795125167087650382587146809962954975119475998923583038366396332219153543589669192516059033790014333145610331213186535331940219543950647836524216409519797859907242161892358157891024627846418967973780612786523779684553492593982306811188245389670519464306758708663765115210263051310779927015276652618251141806848780390378235327777369586239187798984227576960699940174384696908825392268268864763280500675699611876919118531861455234170113837572874057396783670765345032639748848997425284619462769668912302762223252986378099844562578672533002686485253672651615221357651319495034764764243086666840578746415907753501602586995836295830513549333841552389730776477182956235320561785322984467056012701041921369219192921988664007428890095668896968306120686652175271817137493959767331816688142515864380240556472174940438575668935829177267749053561757738254860958547046967952262864774847485813601747470200688777496034777843918335066282621915818900940386958623224393853030260050683475260122217616061238776661822127707708243791955455910120601015411171946960236847385878719776491506096199915860055029859529500071581170325732290123339263359685362885976452713898032862216069783028639217649794670112531164814097787780374906833860773529414717215491176573697663430293152771318886171160155544290738992547899937175313807097822916852186617358218220857919197181110836174752843257791049303173839906760766230904119063299741926426322285505870599270695479576396848317571725796936751131949065787747569540380295589806874046995459904762481988328282272610750122291370539366840357741134718885451991341110114506024603075206198417481320798549252426251331939060026700128393848329393940587225463708013135195999221401259068372007794270432123293563558299094012594712835016933780312815583326287723494889915761526604377807328746681954370265304695817987830320669596537530336844149710413524470810253272859023120158696478074439085752664150601483789965989802114009906818438842517787280484760241238602091837510196310466061704786798709438721582894149943091265479960975223635157063039979416552790749174516648959272800051440525758852078354029301556720800606420435189118581232045536176134860819444365375129510476049433737068760819703291046276842054740494519481623026068991233080608532478197470889087636106038845135311873841476529700884437941168568246176548990973029835068354847224373084161794651029084997510669414556027748584243078391463630739717296371960560318942900985903319462826345014156718157369938931383758235122203437270757156537157793488246755412851721968186648981124444740343816338262158998898854471466486517346750517664769403892718751209553123307280603430577473137822146011665112305857276040593059980522790131597929650546252201336654822803951567704275261021330404414870390396055281660755297626226347818170484052097255940575017998336031087006108919478541281841958378142957214419444533713670818087698813850605278623166605400129331271682208618975507152322530674358929667777263941384871962037099551114906911097408666027571553176153711667149262138987335209554221779846978183801728496585769875938925739115005526963649558999742751541123986092287460765119909663145251116730438907007608916959691909373128659791639921828330262817296970269506733261476030759862380617539983671086309632339877127977485789598607842370079361156700511813798128988932720252905584572614951247989213432550931419453093664382523704559515630561894052943222024729583306707582938385154639106286717002095389600493614857335670476883383115056401299762161682465579319360889527513840820007205663993871178929331642210545888417714147236536870398889311663697553175741820409524438176205744576764287256384886754332989606687701479942689887145535723752836764854041242780240232328449138155236643114083468123359970610145390328154905684671443619284104743755196655092748574597131233237052470443375522328881871759917374091401289946417663404653035729191512860296705400998685641511175852867515174445530957919063347650900507834956673749825141248001792485801671946030485832305241505290461083511054026888290997501534961563336536756300601505273979149493346725751626037287085443772586757129970568559918835647741588329159599495156049804553397321024982155244489364444506566612344276864491335129630035664191532925324703672696441260246581431971245832335380176912387622328394828361922990630114437001514507228420166585321921214687266841007434349466090712728160735417670538666536963422292686001622263941383721719192179050337480371950569894417750068474505868694462016327046989629509457987242348269284907941090605785047785929812519443091205719574853934312274533536364928093424434560534155664249783377372933744441458283824060488273677995565643110449260531375048143355362818059196074532107873895595861803423609460263294391614091553757895515590085347352668062934368355651860238647045774640265700189243986527877410827886445287663024011253567493554740372767830246474651768319291205830424541278999668414933327169690488412952761907458760956105329310406481030834222763157894827514567493719786560202081075440113343969545916604662776539083576854640323252594888532026124694037492251644274229027513339827669893419715790729956173546196509843897602513951622920782069616302336145955468853734488525252185711639892985694092130007362029189283016943787075074970664562362412939137191443616075878934174787797301911333783156425803254475006655910056173175736120028555130165837688164166021468859198194274556123839486953201724470967798617614687803064156974491543375865425820464669548124414314862938429638353253689265291547760727741850837527882432215597998068681261229005540415521293384988950829891252774168887898490529372123076709872583272289148350685819250188676497106043938791873867717922892913074164268759477169314481252359011604245840762309058656266335962455568149705161229751538263768062323819748983185726628346144494855797181222450471216774991546198853108242068874341682988881468292583778646936467350417062996426711668929840210153411256008230758645699169273364022239035037186164161072329623979185397752248257110560740624498708289952485554362263146863100500596016549089854412372722680636304895867861143483698670021357404265264901413663330812871198572160555654232016248214386413621099363416469213623273578153356488992857399095797989250041645944634643811268990997975413260300046340129385646298930523621758778911132881414724275653840952383878048899049957205055696369828808130276227729670615175681578849462803810523853947857719102846982108636532324526008986220366266808416862640084953279559722355462685542030186007495230345346836781433729614844925117120002175304333058097629892722608607794919538983444904620587851569909717479398442943507233873813432431651237947191832917334583221352920097658919927677351086295686876930887884084660029656154028581463352175802322754451716381913346146301240021305579352153243711326072369704948754778436890752863800029437747586432951150627042476131792631879848355083089856986532042735566740653100816769831801500755111592676508418080629617691154509839486461958100857144584385177392209415700951090607343179030765041655654524276218096055040934968110010061269079149005627262540620499637252880185195402875778731217428639023963512008501480278505861287076486174365589942980705018427926595204414143934651232273284986391588924407003492145387770187928527772689591044520763423135643926498341264414500003584623141244116745668404516079427816537465287328840433550141608328283236840322984611387481036156801318026715685486484027052906054697363050927164205261522955278394981249277869031526106772805072707269555864670329218702256649872502605491428938694324888922015495223901079972089390616750336108156640271316605759993782987089335278645381498865641671883904513941486054438550085529048967448820528316400260453036136708373367611636664167427388132194064156955930298579384551781650745268014802775690686054650520597655006305210545723640390438745323612483232641815422421421545694432404272066626350105982287331418795041705301966471009797754788575613192126791194356451637961092820818530290040065156632887827899461305799998452205004402714455634134036263904223945088844914408644438257563018149332270430912896095376540511861009829176199601062325619453604510418983770191636487468761713759927504965099887301133138777242478449707795247026901892959077426691846779343287675594923434809806239050992262777378668091247707907208966706545553488033408525900402158084335072694371867906266825557336958219093222925782292571091593774765561931627138357265047905040216721039767877548473517896312828380275892118328185080078585687672597915382676312023262352559381479195425477721893418709240319140888172654783467239040342584769855657600965692642850666930275110703671226297196739358702917464678694612396155438272498541077246090763430775659817542117039191080003895365409883715050266606468237507241507304330620556262301060697772830278778657417723950437670751865061877509300894935006817371835348335757299747995718189045603920078047053693303363371080592109494708055429296670680761939093477496079411217241438617823517184091194129995755937166755637883051681115987292064385337561873935747732645301502320085710124917820676054369613728437617855737057090353333472665749913324806393924723665268740338500613163041192427704009439554895607161158714738431303342528598891838217115543618694871342076151877392431682248412608372534688408564158805299374761521740717547456341050643430872335532406533090944138757563115912582452940753690231546372700888891636095772850064955025992064716893363073101152870078521589361232317617691433286606286513569614687301364152773341062055866797874937463093486147602357781325044760803066094839475845390240087008329476184464257041855619483365194015770631428359568495583975862795973963198902520697319785725542121474169318342744554287782525267808841650875397183324229543340784404709322104908226123640514740045991734157003911720882670022379547251742580614472145265343926035365303029340627478624931758818445079755464979096465212328498152061441724287592877586220148846744489399884673611918049221991648008900442640610836210230883063919720681940488897597042321799778760098602752715076111417942696799489082763490454594151077039626954689913380923540100891716154886622981902310586410119486430884229520810296469316046973297992439622597658305658558336672074424233723879215857221585585067001229908037435687621322522777463858421405148046240655257667736571638538996473320205351541062317759719573917427058269315050329670572688018458768173741010194783108046689628157522279096744957973007056363236205839780574514493384323159981300535934501089055319541673026117023953521793847914386748652402496714296186082321449958589865198114203703666442299379906293226364999313202640087063684241846439129262528217482713002815135535498342746617257759341167681801364825997751584945380333371063547554800234049447026964163004102244568041256279295306206608214605503802321867468231172735911713461043441091044932990688577654769629683356150695915536802450684764955903270765633390874217412158158767762809193781163666653151275309792262493422555003232270052589081972774247522532551957782593811332005345473084794419967698254291443035220277219845304697698499652247817416032377764098842041272350952452042123568536807297523894288799791670297341666038821314420530620567861701540252161596244262534518368699805994307247002438528407173999546053309900607638969423742741453874608410377825204469514890207642774670352652475957033952751390179897956217274262121665254707970031598250681416624469895884336366596076770476201546882297496908612523595325209368602780541621713620160172223040196281183949098459459905886130331874108876844792752435254007535804182920526005145222150786216010444021680613909131228321608106865122773510015244280838438066513795986926288365867342600142612715070403303112449373213079247084871299366479077374702658520493575136010196413709383986215644950442388292241211468918416723066439346421014456185594786094382399744960518794537618775871682718960332390544698741744959602671994366027570466531975902364230323829487226434423429241622615191546217098767820614362580183406452126237147681319954986344194327899352927625918938043704890881248382298118928754849269102934328550360351961583756186773941020191627427661948130799410229856583047995935935032866057146852744070805984264146155675507609952012962492604188563581593564408275838435571533769555183185593677981384153511791746863836657366798954261529496081017710135308677490148159813542489684697230529809286069481314375888089998425440860632319559201746103361641934557346410901031250880485556070584044529417669615302331469930424596601847212610030217260406486056662403922136832930297689841709510405496719206013554380207900930518550215542204197826486037153744903809300831723543266467617141245510361216914327195165684929387367171565903340069440973344026692655204921277353871588280959521914230499453719727435243631470523642326457811068185258257636238765233759022909749269519757326548338647019978131633098329156536208868999305074638764191142814707856332781292672874782660610827927952238959865647693686049919253233200943056245162934792842561651018137352676900715528721468910508617838944240607953589164041969848665442581907067963670325215055964025801947843751232894687595846576123302342174345966661140873480836044775734935094851431540498916886891075719996803275807327273997990432612940910313964948350209856621910237479344730070056907503356039525992146311794582780460863454196599034497329418245198597454774121613080594790427719588929806959056931399161086726672029993244675039475242406791855449898776724070503931006534149842605004726786229431233087827435676411562294051534476365082134121602899428978031142029413209609977382634289405981055705338606509508550916330656796196455435664479177788436664133233728752869913823421024060303007645080961211058352397858145019754806991415743705733586539471574435177490313513817932715143710251399297346137315982415277222503458152839668233498956089364906805841142013064323587238263276498201614247150805145169523040462818933017506235301996711619282787501300712007582566341793784443902300448560642450229901900126113088688945856740588423422621803048075434344223620943978245162037311362322536088550818285768710519189277209418975376101300584254507222374727427776797106343976199876473754153336232395322493214203635126902105806691186019893874387077740426734575329774616418983170420766193926195150903627883608666078567665189416381481016331374800762063722976332526544877023037646320296671844467701738573115866413911116301628380934258444766099761476169944311392645422689383623491458809618557566958678801328105942744747317195387345811511796604979179125474434638617203846954768015181234027043443689280892650519159434698947893226636324553139899234996106361917776956552089681699325381749352174579208721573732396640023123836664215396203999087762111516518142654416469513339395408375072868391125490625630403675178141692835780165944417463793115935743748969290113289322341738892513036474266750118116438958888711184352358682057660842048183446476576324751804455761848105364458719679393259085034915607108200513362391874592221543746693312443411930492654244317909757550187333085549290443913893409378431154430489418483746362317300139082623171308941072338789045780626619073778952814806620429807958409054592128493983985872352535319435000265065723547680857949825630300861776273514539107547626861864845184081974547156038824593085823671831132172310739953132894784769655458905469680107755583255147158570584374789948037387270198805542091089308810381605975929194788845880429580006220189637280635265585134514042675555693025148066623608850794814359506830674414937600427364190215309956752944344908408419350299645341299558976275096658809591149736920479660563528165290544189128026597659093063677463003282959405179124871062894167012455448798691474646456225210374144396970115536335818865003884153142081972653474365802270820049486380625843029241287401523184594029806754498800034543827665944795880927065156471483072448381274663752192886580123670117472875882811825733807734781972071093701931854679087682177397119715027928352706196099639994708407870942024484349003299535384384145343182311489519899815821877156696505190390747185140538154469986442175993932655049853621017473956592616390033560855117100019241221131772575809442685839243527594844629502822078413113094403192844497056325948092076624094224731836018577948439073319535700353867391192410886315356025485222873785110180090651320440556374374352372079605843079669388285847815625320087609548794224410781407832489486618456977393466279378699207911792485093124775824155036052136503334830740048243143211939232882830977803280856101924211627071424375266909034336519243092050143522415766348470656347852467287591634190343693452235777017195108613328321582575810613202398920699973360136306119395996755607796000658622269768503246964205698575437369635064856272580193873360782808187490595492725009513891238283466837795288112314574782185469321792935617722721189333005576489736419338307879006847275868006449410019011737272414464586086116381081938407055185724238064998771778105259354611118552990684755012578782789038774821690826676626647628740929323638129624429087375825745268195382626462378606621274409895125400323298254482826955456815271562343230432427560974646411273521623243145690870861554808822065919081455522301587632491736177763281430982413401266105605155254297303199354875254777570160143229809895336057898517351825771497460604350253043462557866816334238475635663107435768247806965097687242811552628032649430064389748071683449532272246714397547175557213462720355309954614952517508609573180225812365874855366319004108976581693924256999017960316959667714616537512318530619339739134217769056676598226427476193933895243108839375377721719860089132416979122075595776416568947756878375235509919594903043326532634581040220155231747077922877383241799233181284981684044661819330926748309604083824913077625824065886129063874919001525418951474333515763174677809357966707959063964270943221996895207201408238165173864782057529605039591243046753083936867573454204844600810879427934567333334919258005066790312594944273148558448282089225125586828149738872226060229089296464586457181720544335798890561075502210494531134977273212628891789394784293664306214584707019951872999304537762069296682667878197613243980333194616891557909906333693544187896410818003323198160850459717753148589337344721212483226821808832009607337404877517295379952612642938066331827545373305965771073073166162175274333338738815044443805255881881205094820507538811420976090174875181411040660462752311129669128627058504302752506364938106369005585875956788543877451220908718218208263731273425303954884964434305913728569389898069231631497261112090109919199782662920523971018382204842124427049347576434155321771867453556825042885655793939884954246206264326192275055720745740432297944349663767639188545280119710526080983606866505496162694207526427848402482036276333752331389683856209278176883069254588891335482126214366542959624118001440891235229221592815158059189287849800632505095670230601405293716624557124805184170308795717408289297611549008448565293867687664086871885216741769972904724514348421816993934119290105543103385796343522135745706406189751394760415700780282246889185881969454388606712253726731232225863655123153793969967063307406996519139637725889172079870318569399715474545278325937374095417011460538212248541934113195275765465909899841831989647312035361691066055215792188158156811490657527423924387966606440685929146660914410277912913169347902933289005787127363755749798595147865376587733969838331212724152265223884094595029812497587442492980697305759701082839978404103307254961997867008197267365221857989878295119332991381741298046041985987564673568423474490265813211009701592549744364343598593363899518020759603861585838253109759660147483138488135543154369703727905286143770822933051529755288829004824533675867975256331671559859062687423743271032099139601560026464570666568917564549703213925667308929988754521214427075765587398065543856234861803176393395729903139533016327762130371154578049044409844758577793035191460987869104391884617752151731583562016906975486896315454348158452172872161493622408394352869007538353141002485126845292901821034474192587702407019274710807640700026661376669399820834782670402840729917818513007088323895963743618546821547045807763923337828084799031937632617743700467341183820581110292327419095247373682840494655993579051287848460717292009363600448352138870308876345735187482594847985805398282548199732038882270387206566067686949408153555482078802337589522076695839344492368495850894429430666175200464356484380169912717584674662738667967731901365552761101129476028138274200900198411343867192071867814069805857407845182361556979007294010707155402356435819545034823253845965554367089812431553888406778099475816579236434103244431560344406888034525992786392132788005977494985534640943799183964196679098252554253790512187604786574320797862476976923594791678034166926342303630353825580714057296942054071572123322427467088535423823478502187545840129120093120383510417812278998779520154688024723647015202573093857632510956816779565384236177820670009014264014473562753591373689078723634109866835644034071309455494046820565819784524759241762484303142107434217537722586671044625868306829811352707124179825903621452276196643535752141828762258215511995593509280292360732278690795401913225053616988238093980949597768708066840138909086581378803120922074099121544434564094714201031209775373408449190617188591505985932528210239667556774624934609652527519183708548333735275373405759262268254625683394592715033768844551991665610601880016056060309533357094405864654971473432081382018077106094970272589128689795462644123983555219079528072631715112380140957443203635127755097913266050017774595158111583018487028306928356913536566263126820131027887790942612147296222193152766303248618283358597981681369422462191114015365879616662503309518759178905884717824753375279878193941304157714225792843654260759542224507967170211031732532546551071871505746704388529708406928131609196421709013081798462233347574876409352036595230596737874723534621690459441619261698191338003270093615054583108714785943263622159860020420162278920057976297789320238046535719588681395959251211419496874765435109845288440438782839963944613664778366846607540648223348472643119133535185979403129386806431022992492101077523453957381750161151151573535419817824293931578285912535950256571080765363775948059354033280958341037625549757002711227584257209038607014344804440933000945356255991353616658538192899243489675932898206314528859986674016128429160694373721637398455395036322216183957988188578106441481772917408919008320924432090924667436684758238081079166408881920204902309089753416255763212622819949534863569013797953397080269981277521702130171466572400613081911352051193930925055749731630933894265914153076200844345296204301498209047836329968205880695475527964812705781067195563101806771328675007037415759826101400277801824272694534269775916500202255376507474578622354505984191348262566289133657611825265305756652660721011815514403801058846056173890075054471282393979314978133594493158848990180350883876748192097038148448789396049712418598492161000868431598560357881129873918374309238421148311747429262485351444512784450325522214787991552351429394506649494828756869290067985985599797369147701257737404360007421780105314683860221446455520233424464001820747002391304991360656942428068662432418959741329892427008973439090604006341806772247727463835802786373286958006994792505559509915065007125894895650245936276064601397549246349957026740936085072980935528279666979457837868972212696807631705810944249469898751095877841485873332148571996215314884688661218651362622460861283435544115007926655438138715535950739644391789242708624609142733449335227003154566346669088962063131283960878136391444116050152665864299629255079812415466689460237090685842601204039673498628019776556476904780359552525859855067899534937791811899685165078383827908079293172001417713029810508445999525969044602309425708515087513812207130133228691413726970539861704377970266777095527083257458937049350728879538440790124901842127097786051983841601710299472807082523740007670814139630419472327232284401176745670016745928318468953092625536037388555238823697564079239716309809225829925977805022778456667655647459773446713055145216798026080427554836033089806059670780507189092583998471207542641184951258378073671053718267306813282043369715959839322545731849100790674089983431089330491088795691126358919877341310455409360936287224175457493501697613759008607942604609044026388403124047214927561366565271055987459584984170980984394515534965958225158821985121881080683450386186085901439599959547491506405073838371091143232140987620697539564064630106656724624457786459531008216981401588571226096197791201564444104403280741398573768469388680334242311716054832366764663495125068133352212098656419043680714830735677481141833787580952622742797487705715053020002490865478252257049302349119542517359677470886307753036301052876555336075551933977555148297962890952558072758851666341172760823888356511887893191212185811910333040952771960664908295471378726514460042496346190507279558657249568130443507003738250805987527450745939873272658543743793180999620513334557211710388010779061429141994427519106676993305416092744295090103134503520755921666998896529478445226037213864891262525584677182866435723923164446176711708778833563867291601165377920909101566819928637488639505493596708524666957087597949442558008640105501245035297986107405756110616132506195970025617400461186652109778851016484757957054345881569811428537849302834526535159086598212483715896250631762727910392254356693186520849295356944203771109139999304734745815243375960611233707475709618047115140430334202496400522857325258792494516975651381194830325962058198679062318517375418139620761885257777130642946930874140799968119619666951764453102839199849893116683609071454537104447017646837634316694426332566555366046328463798257560840294131171720755825814359042108431821910569316389199672046078159846078858615192148353036912491981416684961232450902070175863405854869969784855284944078759147535137741241920490904241096078293570216592627381806736570835426137455688953821066599835169549350694326606722596703438994826821171920223650959297983936412385600152236331086653941533988819986695035030337418236547215629877253490049788150377984221011093905555003805601990545657148273019416762875277743061422510045409257251034685984342126816033392302155183009240861039933942288973277251397160355732518770803166063774742833874777593690543501439262980573530451940121213837654884208235633247654394757888023410220050837383227430081997783960501932595416059363763641358568609426409538406723533649839800031590967221722947028063898911105897976042548180349967630974635242814525475779305217062963746039070938348612075811022959979745972277621125778994969817272671362664743117988671090285683665635447213790040436797422337190408883439308378014341295712841549160688859317592127931432625306445791944583950030225615328323156768776533924962794038711498636403344185306838589718667942115850144667256087761055699533803407965985269215651114324881522532938052263283994639092839787160122043376095621467022656875251448963546784195642109711516955894754197439466685027147757946983914548394985665754269943066436044834318289003234554487239237767003406088399274165611182478608761059610551697159127148274463733052716207676441805995296582798745712813871283769652742583982384580424652592293343158865239345654892298071904969597649268109689553504716324226479415135334274460011501146209801266739298613587288036809618311026949550982175658652406535924228804812284433991692422647966237411998871471333130162994438541991322285958439892133009505322936946551920076523302016869075075712291395701866733097764880641135236936761041050092831022881137382894666137720542915943370605434281538856485669442132708419533844600863336380101781737814902703989961439281821854449318235845533947777905039775336068958671939938776830928774697695808565095165834166644317761530352883127075201739215825824290765350979641610050996221566035653246216534867960723653333073835102600196210983826834348251250839302303181100467811384128700763865463099403714412857566552420332681667245958886114726339691939061446777296536871173498753866644479268457542111495813563873209332754505079983740099308190745516539653543421680970213754999140040462869322311714977105666194204803428601914667237722976750595112456127887097483352966621443240950334990422631409501218075397579819977814990853299915977218845795479334457804907597139656531258478234543111292505545953752262927527113467596780912448072373221238447978961949337146445049163625229507367544975747691296590862746710935182025530245567780598147608747110740504285117529953488796822352096876409475845012204221912445082800852494872713726896011636711075845348530701197765537468560948046190878379180699241816308701492491334863321032126534350362457237002341148224589568359348993173730548053006320333721456891761903829570938008134702160973472720298187498155405656319937788065922399811452383083933406642000980515657279383058731805424789142003358223392251444043415503711250506679143868933799308061298137336414871051044426669558888036215094769728463310673809459692861834169310178119332887372912299433802090968781359099673177300778959107862721568693415197101985253332125924051016641104775583214472908755195906232653928143722428393130231050705121268396463721756997725444370763935306820623180167125520950749673550620150641730303985021985594353521856157038329250293662442221626950037473817648657487453001501142603244393439149915261316972650645327346096757659101889805562231030526461961247856758878979848906051148493898086794885632235556874832942912941960994450685532731528356661131600001175346886606312509138408350380487980865720255318016675883518485868480000122192459813904775607676860330607920467752383182741600274644055239361914855492879983352045308417268679465752672806386278415048645079809964233041906745127465198359082313483893902554197572091943246256806748530062540115970632720117298621399492268104493474405002440415274785090301685813969591495731086021745996569001897595693135023002050330249780430800160901643134634707823316586772378854103184649708815304707521189084833225067408014474557132549267609695870258540980742617568616610070662511784791175201523625986399510173215815996610341527815726825138297270054389905863563692686818918804714345020662538341160643715855415933543624957736219864662819678387984298142504875127757493026948808125805299404066529205569227200401483645650105927598361841763028749395575975003416965169242074771593304080009615753911726833081903716772313932015355867211287953345191229762807435294269294213656425069124663488734933431486456038513378928069391392679826724779275931113172189350659160377962012293886982585107723790948116994350033326098652942737733059279552243576819648699070183901088978835948153592483140266622847932178936282892274194249135613639191741765935170475313883700063174623668537849838283271867240224242515500697150794058461147826900917118451806682415612974124956850312809672414118751885780686219926213842271945591565751575219141915625698088667523680353364056360753812808277649964590464458527672481520176665656376839885670398232128149528336335927540851689735851864197313329967040425441424599656093972732969738869873455109516207550684108332372821748272936096564278194931845206657566603665273584556837596245261858353336784868530718867096768602285102815950391522288544277873769828922461037318456413743394772781582817539650694664623586183915552494235206442747667891251775995774207020283079762651121634777439224336164648677447311668234016480682645815073054176444829806789972354061929813466970181006113017086977839023998014935784402281629736510273195011741164262472451609203457639567685407585615394451010166081376172971507295506283627617902543789793011834681225692271173623018788496201758189780525271396987985778230420848129751351525896200102082162037732177764395589577322748852032110125076089838780647497523279285963921194729313739442995666522319059428373720684329593717297718970197284539696025683664337798783534679175612598369122016492165531527150146497753050010584346958964449627659283848512640388942964847064600374532064388475336106991390962038738462667878788245795192022820871243151815731438181948190973990420056077958950258535518548461277116192792021318157323053012780250178381002202261671008314280791501376470327822581643813189167406535805742792145466622690757057326242135806045703046073426828138987308260961791248187144906547564131858806996602404292385635672870135348418077826110999106452019094304545348729501411182734228975967044222407659046472749597227812834598313004135380013023718419135698862141800837985109072787965673790671362816858178236839816723685637093907301893450676193889652221373783117604737040022271856764474836662309200980938394537893677925825385654596904844372796743073783791330699489547664351579644545340658003728726990660838566871874214897008666827108649866257404033343854413796503914912131232926439352760325302536662347577960521881945390532514747096040179957222957476157391462269016448270905435026893886204671430839480424530844370881804886893354459031612432975810514937745578367093837852834554350842761710824508056483379781753032975200753767581986620064056853791469778514180444372485914999390691653916944390496801034354592631292061499374880792094167281048559359504145475168886281263178429550643437760061211515850031195383814387490398656410456462858425630123144682874056065104593562845653970636403859166211598837751397012122824520295531591650283352853665289200825790805227603182475617840934005391411616649913519889184373655948071754277407971492329946233183446386216497785380947882469905593290173222143721082817778453579524247785191688234970643528219995390612566506061294893350476678836100490557546235497656303300501475894553147085838646531167198987463147389466868205278458772088242895537854702356883673024969953091048566250390161525946898914272204293840659554545253717038131928982379671107045420946140204820942807635150357884864473406751910302887856331512780555138100754033308996286682589859002232138497692759197962739283284266796135027647765729839745353521462649832348907142049479243207227834498177948312367931001734537049315315273744136756307012316903178488861655000774526619416713760118993386470319939387485852164115777098088988554379624649868805111258784570483046961736722792733989888050638540574609717417042518121005949308389812523952540169653514878146369356694885940901673375264043941483247063897884597434267359493513481245396592286964874874967470848539244345172626024840529089018694403534882224443239988696365217289806981712202529404972366097291286593438068396631247539156316979508379275435950954682132969821183823727879593105650369761998536546936869676257658123388076430369150459549815967289719344538702134803604974956931644952222726504947693920370495843690615151943334996260833910039888238464741952408107385179632984661464385741661082485365237849733698105419799392605228478042493206293616699808687048216326766277771761716066624006671316565159723658237344022800683020732523936405107426806662135856647901969326726290277158826211942516046332091231030114517673877559725538551718342017297631793523653132081643043806746047007265601717865589978761485015903153863781278177138024876916390648164480432340562841379685946764242745793631245528128980258234121180963546361283742092239271334305882917433815186877307542854239314249336547839033671635615614946991754839814159845701798383418620007968384465786002153700796532683698921610288034228991020000472285301940513686263031980933713294573208292551961991575582248585050928145262229024233708747309653972670739306905811607274376292044499124231882366076326241362649906662663437693589670322375728525134543716289081949974348051617778728153624786037081085391575909279622968694992698229468386096623198255602581356052653413360225289396177236300462211487417137295030101313209541937276941966432968227574478868206433023050161046450899491485295397508445429488657804327378817972276405768560408579184586398961416094461025216000136903355165983316944400331480120322340760284353451198122645270649562155967627420674478701006095420174132082677834748906469299451128445145143325244623196599721138760017136971935841716736721881564090461658800804753686390447180118621160062200325091942544348387234097069164373754355974205619101936219916127941637655627691369183123962283027245846337625442124917330356839232006680593640891047268450475814335088490687720907187921778343414813183214162893169902733042539114205379829541876364324672568842579555615528232378510314882057968027793980028456871086241876285166731426596245736556411602734769650770212194765635297511256037852896363568605926887205517552589087336039449197271392960837487506070785137637194224662664587270290495739743386344063461467644149279415420694073127250439899647061242730346387277114960347431558484263206667171493891805493458521216465780933874764979269392882351428296986062723398826038447339785689892201239844903506999507641858024772205970110464867335853683917808423245966388984487591333570553757922421768656459116905977734641642862222299772700364404677071290012529546047493169564837750774799559885443804107534913687190857076728646612849532336678455089915892206131980622567945335268600332010610002168309181354946299479557149803833806525043326415113844224033374854813492966923632080718977837741828961050195623975068531036652812278622824601366718498463228811361879378219035466428914372679468468140549599726484073164939493034773673380762065507671710213422545167542414651806135609875112342972826556346670192371102887687372193501412457091698689938256766119477006235258572581249389663795483554484837075063828000141234070940377121366268990766666336555503953063958859480224352723295229641714818371685970506140363086496880293752605036067676546775480922682964695138829860165021395503205232685967576247536849213968916854912409175525912352090481510006415425109112851764816838285494910209850816090995563330996903710414418504707326717112918233999057356531689034147143025149057678831852343968110768666179364026150048213937962246148448917903669667192681571777759822236340884164334398767258262728306737372256457345458983648580061332061589246646258533608855182548206517065790266799173961570654647878785885506918000298216409089311828305841122695741989091215915289445476987347185012877942231388076659677494950867154592894692441681576282105757781607860843503129238810085302469724854242032837225007413933281486244436394601179537863373950968934856344606684373070848164269546583687945760563534480702431600237200216492812847069761992685557044228783907997151775461720444618851493496556993890666507608311156120376553356010857209690835399479771195716174521423101336165190704319148152985090797059016099946951300621139957109753923677004532867394572471336230067122642328589719973525030784479109958590159493786107579531309933422244545844916627585326788028175297179752091245853957734670330273308431137543116937204830693946251658268841256889591170735881752119821243727041038764726207244876928761290795676188092898389989078177995492619589837197359552281658641124742503914151681007131335755042017228022330195101933686863471281795287237664657603505342086532420901257788232313289271771402790582638112719767254617578689951447155407838952431788910603898895287168315767314667430673243998663402967225930844887965157065319294952694083527791560920349971000305343732243386670578590999387643104236913568077354150468536479678624582356860160648726785228327770257742029172731855554063642715374482938779352892251205698835566664885084293098666948512848516697852067599783976820769988557365237639814347079740839225148290962991462970718500021793871874976317474167348770968471063836800530977174225301025915255189447525438910189933621705106475946127025878818999381926710354604962439155055358031528060675837517999940315200342500791555661952169260660877431617210428561958127601101104217241263866573462558746256648796772122447725429347310845419315755498553085095980956280523149468669197325892833891767994157012522606722578355010885377511825397187883443383076432781459203786930353231642851198974206377683238422235885351124778318053505991234857417211910805530882356270713591825724708732204599250790795963456061729971555835241033118372792700711442183420645355707980165622706447829543213910226879585230298378365642486160422520610260711374495914495766152561659844338308729540065188718642871607315089455834654035504262635652819067198520685937352710154353367288248735190666436953243323412477363231321417516186896237607808456166299789013811684856146288851884086078276771790389498604802241980749503748153661943820540508704402820915025324464927534479297003723825489710232312660785193158921635961124847009819520113321312059174720791928208557480342713104573996823733048692220208315846310838894988058387320503579605799282091932698169739328811948064480013555147316415981167468874784841250439276905836344572242750725683332688455980463657185025122914379774557321262649620966616530615794347969983404680896020359155900894508140805661883815173299594660005966708190746466013440228422640886795778100989203506737184366792788113844221698230401688621152969513986469355298227123068501833455121383438152015327917985856852143187622565080680581652558007670306543873620288361685736589040136303413268018187124152712930767208785122507401911916372562057759923995118541120731876022614439505665165950105025446000491233232638775323853372082113513617381054892980075077536342594095278005661032019358180445357366943235892129001883314299004960484341735490064773642505856600274372957960486905985709940708359575468030795449463987379059337868546650693333004210486249034197829676928434688506878859273108131743471580824105809258356153976756999647637417119032517363197157348467647906152925320243176602695061715378920162186919498130728848595779893085178114157292918505130721388504093060889758134327067044691778899515363983228978666043602510704821968701897437366132790595336145235341430774919228230870635284956069373370644331362205754982118498489417727276695368421062307978397983423342286733698249302186263173822032423082408652480584380467950778308847749859590325543769943973986801486477616987959740590894214614142291392941575365991810290048278946849257181780056121140649720545222404805477147634743132751244956988299597233806126207996533915921907107243992080648003456981507436116689115367976933605354002807705830809091542172095987792042037067096638674157716053152512976188204594423738545228290789166257346573819466917808984398346116767979938800536440116625576663130334481508423140234301822455425571209184734540581227382527371096364121866237748714890637721764395475257464188550556041222379095432094517829022367102252384050876162188958046111783399289634405456544617712798190026565241954649400416724716128936661256405285323146535788824624079627421914102701157505872301701068352583707144584099831482694842283515068879636664540497365084628028871247405703934277546743526102345065375985032416766451847752639620635465174007951151661507501470736993951600264215735212523984837118263060501912601139397072931755447863857217834460247423987151927709208846566542203529513934581124103998127317515838836228823101459355799465377203586476751964232971971432886789576341274717589550742135806057901591348567320241157735424641141665915445549433616844262708164529719864380240395956930988480686842777702498229254774208751523236687567820262238756740816103586735482541247326252424689974224983882096656590920070908888587365438982911115891433233619602287977417406973493676863294236252012951191313598618690916318438668562868376075532387988587408805165665470135359384347114549369278928102082737534205828334253061731554347628550157823186864726937009227761293255741113862838535871601984509889649939880807204545972500330869719914823464297829474397278157349375754828845927111271122893209823813255901394786046975246721851006538639464403811930905856305708401306884583763219134330101634340998877094574586694815711383413464665221453339302203920148475610373285570175488116408781608952469424655140423200812718507593764395485322367650309353431350576984260428255504058750105290508449843827688384340628649428825286193756311904583150963153054276787905110505023660987623509726867561009213550446969839442363950949109474304868142125146886934918165028831022304166655154415559605255864301493576686051198995938160207695740521581084784864620822353279111379921809392030469537759198104954506795545569215478618285720409489698391280652109859881593472979919599939812111433872243060139576435634364797422700453548339201596137805928927654265422408160249650566013832691134066920590114607779591494825103614471983019013731822200469160559420174488901382497233162185406733357548142252274366744549771213659885478687125850607211337393997229712417636357312462239601605108377817518718831162592903107701289500788007712161973006864198772707614742953618785549635401613951440267931878448393657744635896542729792913669214837364877246926509322195467292250038038213759647318443495110218450618955531564286550008094558590613027460117419067569330389073679791223331300557241587968774122651177644199094798012619734266780135334389241279029390859885308990700023495372158200811477755399408657657726698513072625831302766125404199490331452213513188286006597060480861317333821028941329785497053611668880196220908872255196917974145535278327682836503104234017877953921448700891873838489763858184413154690687304209118070172814150669374496261544452161127543683866159109747245198633433282791403947245667187279196540744657910365875955515019132387204308253049490076485938418706141545455070123906810413406308157138987136642991711412241027015337124150789120959790629161800685161822840569097593791774860666239376098034923192551615614520637572151968884727994099946843384023947765528824079013501070865030633340812918168898751872111047621509396412369925220870942974556923238530641507183697678423485172542317262903013205607764754469894027225271811632609873519933095095284979487993137464729001467766547633623826125957080147801293589733239955899743286337425988595821220144284800594741030183985479653607404746959921147114366461892569482620957704235630690194416066329228909420511146880072973194896092723742446288837541496676449993894166598514002464464181516737893124191259000350561677940626878787982135849733342937680332380502283359185065816206784919512252036960703640569021417501740865901420658272562786400479061068705382412393358053583801601271983873689491811020595871561737293687717134205174075649090672998705954536228320198616074735627215325174633220618011835376050807771138626513215069895608146703426288015029505978908217439409708266105397838342635105756605864482701831668182009759357987318467001642055884624938087014659604875369716678034817487487459900258848164234012674962902174710220144775545783120443327883315344562402062978324874212983955700014765296502264664875302544565927916312385389666770265406193449274440885102351920067255419798189455279054544120821768224777127578379159050144580461307814432199855368645668749851361419669480607139439678281460267123468945876280263683789403719266914666597955760743420894441808257611452552358360003876334942896201251018486937734269400330764035668099001678795028556092000571864546246301603452643405618306595816640559785215249563806002095276895639728454174704136168492183839383256359581986683012623914820847113872038182426271680264364186543279560176125589348347595519334185322715340923575075656392602588910233483050181507384839551976679051480916007852545951215832388439338055864500069991808591455400050814047544261078003896121587240714032272930062235917006308773613572832973645599976284752949156734457245173815279888006222598100436508987330327992217019336809264587785482358618866278317301401439090979023294422456972561276415503958297114240992822956365492893995232105037451757186474595797545527444797192562122033621658218830949787453645909496988974395543243790006244711429109153336629721876506510743182584363005707700140897725913698829656279812320571928816596139531656137855542864625833970840515989431628492535315833332673366071541234542638077622874184778606854172128032375760706177478029701853618186170203928648166781869013593470898314094101872179895505920392720825514972255672912594022651206145359625289929657937150302056859785049224749322724299214256753282496701000757881496486473483768758696316660958408393917146196029202019723381763009425890066195083488676668717277796286765417002357308042894948968649229375156629339494311285511672697467100358295336628258851906625668587493266541157127588619507418377709522335641416978055176861379919146838195305818829390148134092447520954744762001525358788224985315434687700114681809109995922892622281441712078198747723700144182493946429363204024922505930339306793278641593615677311956289789110865051620132587007009439226499941011484858757565268724926897588885059975204935051290462606818748010862664662947301286085325778014322343183187388189157079583535877922574432357923979382890754307606199741382165951113266325528941804875972035990011968280212843969816421962731509889407814442264933479371851938727131012044594566549244547019546376423240544969831357822781781590321215778150614527968366619316690516628330663286054390790181164543083258835870596872414444592254315185225806103848793503339794035820633999109995703438330230993500013636622855118208411743463395251458652785670724770073258998027720596095113799570748290472387479996553323900136995259371009475490901771416588518273771588797207232477221374115069886782903837810789266365673937389927294061726737290203938770698736979971894153298510634385939137771119409178450618782877013742607758759652473715511480783611732567878692587630919964216345357467016381269574105091748990289232300221204833266494322483760647044171220568995702322537940837903883081192844020748439691197533535482958182665678043102919914248274725817370898664041583289495956011121108420603131086363547752944291542353804240570905995949282216033961162670959193140557748261064566121630231831193979233235420768316435386930104610564381852073386412572484443121499822057492880259269455764993596409022819726103653182476296498543509857490612197280771482234666918366188718237237819836389300035437623972230848328778681070198404725560341206921891228820258718250928851261341331181978399035271283887049427364950020321749316547224108824130407906403490386523576891106259441886118504261307354763056721479419866520205316853351743502889877013463123802139221597646923219035721238479803296107166667859077216373746996288051399440758378923603209702842277605060445210902796992280231777295552626994921211660160629713336079731257944811190502931282745547482632765699461208211434996898868033812174858934621854222825237905480144565903305652001133874728203468622147316662109892506947539917464306983896995991172410555940352703741707000542692917751508654793360370796595151532934936444302494295652964668490351626109905679318424783657473332101996901505970027647703725592043485010724533840778052872906724909513715927405966795804480380895500830074052155926126391559199137290289190634809029706364719608861063432840745683323456616675855587568666381050235950724968904906221183492698784507077396060621417549198162526286423471629759112822607037010159868226221291862243986475540229523324461714660088023469554565952174051386650666996991249970109290625989890602706906826155488130567523400891660224860561972411070684216784940356383862479346687821640870497555257236526225219246003649263753424788117909638511769306377777837528333709900458727920983252919710679451352606158023668694884169391484464303267508296307389671074154805839595065736757327441911589185137608590873544136719167268788220808226847669465419002429665564126582905208063902961032785936491932633684980137852682675924532587137875771571480941728939173279955404043014082141852430930490768024679587260839650568059747703541064146285874237750087916546404609854936171991786750892180939241801042374497985531558209741147083261088292809707825350205937416294511716616908844071021048606427304768525820255261517049770235297775741044764682785905884722275126935337586496768928665632977919662532316672490238040469750502689213358943013893874901477677642537820102565072759551338281234280980655708781970259754407185006160755741323581095860803809236072962299318356641018681275867929954981438216746194810062668243524641492231393450203696080658733085596248354581299524358295188824922324501313273368158748499059077096707391634162078920729541702703554447493916254321385735983610868640053299657804035607226688733972135734201768418978275878526432044126080553569272023020665572483184572071365133450071401155426849068004290697262332442911809846190529174963203073178422676670144690360053109798824605977760440305690946236273647636377605748788306193525360285213492595288829334532863502885928118372623986220921571865619259238751356844757093124734604621877661654278605276135996321257528797087824618951199449578272710876449460073076393290301020348200189975468331685584319444774363199721771862348733799321018460912460120389880604382039816359748902618351413425161264050209469509721486108425416770388071434626541920001257356664035423500738755327273395648037986476137665958535917058113625805366062549575109754534659870289395021151979780025629962533978478398982960656754540007888573607372148967435325950935931390625860810411343345725450998917077114477036723931840356152082054753528611773052677008545750203535814345449542719898507493029753770967745217463462685667626078328100555401485086355112632911199454876563623266998411380765083017981840029945401650305141718538620776785095958587150656167460438746956870455822716244303911642501157239087171670506246137639665497964059085327096425019867710641088676964454223025262165656326902033854102525503309447451500630920899555515584086171544505228293571026550976885081476842021910544504461900771574224378111036075177950631502533869509055792384589324649268424548896416403111243986026680946649235540774246951359187897837681890313799413293988238435198588426127084945644694438897129811163819789034901252001584195588689848955610412593774689375064367428403996947421964448264944567336111759709199004592581879402316799797292015283017117344292136997868238710583599565047403925125058233794113075678692609977679250558762716359569058637275216832112452311288246911062549669265994768471224541260995308336667428182449527002254381168224158972689136408846552819884713342401156347780905455566870927802869614313339575693626599805481661313040535158020835995659743848469403248373503511486073461510721629648522997701119099931123910949075771919045687514670879532646532321192257472839279324926107861934669578893641762742146428924446524138986034908568955623328949779827315291931348936630085136317809224072063523101891434549895559575319393559362256765965102594664411974919274904495405363436337608523509587709068266129533938062511190381060319964834032408856584590971146022924975113427998760275737448744416397415248041325955912944201079897270326146817284353716074741016235090230386983259245881067754679631911005992333306134497950421429813559336607705223024828330490353929762717003210062566138255884779969551075865114210461440963527219632028153279094704250000638071527057768179700016205777159388122454714554784261861138253946893411365839986587545191888648900658918191076068760021245865652685677289387912334985642801110064860161770490598525506178434070390083713749540792386955710551916726281548762317076664891666743632356286587611394486908643165064621017426402241281797084933508389517205793227090840324462101820428248585323085382505752399317929670880961729018752762161701487724288286977456851551557498221454067834716766851292871978393003827292323799464695459392984971312206775713034651228375780106960197363508267706601274112430672411935742575593556406084651414235663146408304604432919424889108642714151992121364637591104493178492985792771135319009557480347645971686688026549792617473755667576077209609594601221610179023391108693285766896451737669937155005024965706930000324080286298415761500194913924201624934808068283611498054581056542097875700176542348908083707425000961432828076566961110810732712762481031383634687136390027432203129878241133311429049261268449509138407112118447722201264327184373006691409442585178126888301845498828561092017382302113529541255866519821189159314916553117652440704357749625573688440346888952385647068941350379336490827377864886609585224769848404935616640898653285432192509827252449087727103124187710250354015063823614054431029028193099797312403764875751050508514807961670884589089637023723517884354836041323335045366767264693255674147022800891719456256461163172055216561064112599679614039767828277549107578702907162284060908010581546762761146513311418427827138870549880394306401276646524240004001447488919820900133231815215491600661565980648185377216592608519348823195994037034300285173693260412178172834960702338838869398015050203169837712710809335372781491225765674599102636519612229772139040723876926509355103986570053248182479747052789353215084968090508704670311841344774553289946179015180942677572326752657968203856935320936683603003325854769635893360227317935940339353983381579429144207685142014719841651058826598765462416919988559465665213232902531010584157865384553876045558472072207379529394212890954985477983807947255216367040436142459411198300310129359425123814416678367519411118100570199157574213479969853620156446340379826985847824093374822513349022118828749570019890727133670674287473771327892778700758241189942447036967439576179251077005084525537424154361765619781532520917383322561542876192283701290060338628161029100454881099395305785691109978160157906826714038703961785454387144368723698370963184307432141595980091226689573472761854866329879176698426018229196137432407033045486576825252700453553220278903459684909152778578994285881284755461849419146504966213198058796530109088579194583136675690617097243647886469480206958712518360944920039532259101913142272646384507930402374722964640463583159969724590125933134454823278469557105777488444248923255525972735426452159191802013064703902396150281127828596080208944451755417860250279974480893452327515743516689248955580811102066921706850905144082576161418181235971202445544478802335333933870182184495040057254674971057816497254652462066052448697816526339017395710449295370293960099146479848647055484809261379018420360896050292247098003136804758292511945885344124938629916249274662812106156812095046178512442043397185801927039225817379354282803075450879341863057511903867241599246044057447154096713946425022606321137796776856408641880212444596402527968002137606168365450829228375148927603963932511287603092393511521654392802034807324468274115119229508889613112654675692042498325083251386145371512055103296328662758320827387618431001385515039092452388759387762660152487924657601847100943427454267627997093875576862889497586140606590107899886456467540648917373263974373282781865128829938764127005298103038484413295945413333748344140070964492311864182248532925864623418221534592727218791189358818352456681954658181648625556367612808337818862397253357866025293080614130086255345793293400599345892522981889574388184478772576956676120274012904986755407983351783652259760565953755850497065046463896760425818823427399345796508108676065406396155461307138260815927106580417451237662670562407712817058239769032787009934337537874024740472597641536815933366401060265152624153078925235375439557517312682327990052622620718953192909053811928556127957172268794457652580116133450452735188056399152725150239854459787756582046695312119480151044413546070491478359487766032806815660711450277391412187125728499727694338777613249245275935196537222295086968572250783044904858335822163871669931488583038624806184019329640974292400147915634994918147257253412344858236566137897033396315515464539234537557039030977125236231506794287333999316955761594718035955213193394012837058453413532649541238456298761287341291999822946533006946059126398906141512794023466217181909209812982052253634763226483833847397100067568035838280762232022176978693160844007626817576861125386030633512462377921580298556643830488382704351182334505407342148142434219111699430354415647130568039633925158689746666666549641268075229708799240312248109587576363239552485180257398336992568911222502392107615942082929713602724053821320671718222449080861924181229731122880127741608070249926450586716226822829501978771449062239767508976338125218805870106790561698507444397852943616506576363681254391506358840724018135007870222443405849903270135286032819101273038827858783507463328050324165878381258691891875726330526291696759330492510461354071949896859964209011974614349367201007891720348956472453450667577424238605096974821465134854640644417962622077384029364024426126567642881321506750473033076092892186881712647634813480436996612713316172282431287556860579995430136767048144188171013602540978321123433840766322202807914692930932390237372221572191435560989397734871492301457999228431497508603639275084804852869850219082437032376232959792374805943731992200457962640044780321948479289294499880687877732292868991062972644503625071628260221077908035979406117075571929692243817182634573494676051123378175842081857131248451312289246954523055815377194976822992965174527156216117699703438472725873520711060462559017374676511504393408872099905678122226211568414983477546291419497408363739992962208440123731072734440134405857675921745284849717012614517915254618267357321557858129660514299947903545587037236275946043475123966754793651738888609641080869554662553835563371775197730098507926593993691243587830080487257365192490914190935783334769920290734485703998723659870239864503920653902234884927108735437663421516956337835496670652632027830348223963970108481283613829814019650500180427310451122718628943776445653011081753866996830829686618623142185369809675599642810975677428568761350165193150043057971488244778387574359514936850056436397446170530123428184219277084679996099600293985405640927099892802390723969561729214679193236039097377353477865734755538424408251195676556724365975139475145894727820084430035557278312694790948711248553701675121863447947712954318282066531563824911216599418024370210855915307093511618555004726701700148439302745041415965913676085408009786853194972058096833145686469335404666344293320956945076737270018505137565589073351613192366026014659180030541645553041987445941466592799660997202129423118389285384020279355054194362787663970509324158265256437398088220476277306035443975722915519877019149140690107512863586505201997467400966138049170332669225313009681801396550762260033466413914115804823116988179800554468924710932481096789965325856827537211469430484650397649582578940549730363933398624316646715264012054362412703008899400690372573312489398881796103339315038379573157703140886111285704988312959238985776864175138845786544286369018193436439350800185541150175879008106497737634901224511623678245581053370604349914592265392325016133268957216418783210347647627499638312939549773058274223569536427020587192286987842825687351711786736030844608992368664467960514716521090308438665269006434880226221707938045275454161799587468682973989469875373986779008972065582325229028491876363844227050348260508200205745446530889532240594009609527831579044986893166075048911879498604825065831666905445937430758447238082240937271516537214705541583756524007350680391171973298836256185825610980798622265795731029402570220248342283250180036696196069801947496434463365692392928765830908945726499883875902745430426382350825926197321506556054014364911105963731626491834730871214265299236963749776609984226113048568992181126848444430558429590999557729499417936611383055016081089649070778411097195749606460946124144838965425454995759459634043262698965158347991633564661555140564936372119315553495474159418539291155790874536616953012648533086466276335871038340667014051294047704438783417062427468064757843763787960499388438022501639205240956203798458589800184324321568037685713721940628432122496101906283543351832731206436254411973822588617147665586944568504624876328895289089129539285360273773805063622261635474089517136888480755791008464918135696393678899392506144567239199453871077087807789735546870672113175386938944463075792638923815843341807277466761361065336916881355543843079615975249869102639859840663598329126293298295646046583562318618331902262446562208080470750993573085983324548166297136485700854930971987148609656572984322560511022925218835402268141346994813818780636864088928621771787653466673295258609675052317060106117572685203148670427517088523789336589650753497127880416618968742664131952561827552387600345970034451299741767711098350392495129118219937322280442841623241239948990003133225037884074794600453079419929701235346628663429661357313045318834085536653222556825423475669032167403317994722637405663204857551339296779789733003693913253494515243201711303534943511034301013369979363708959254892499885504919759022781588827194387670385453647259127968736414100862984456730394367851928707442236659540985766853288216087242351908549290308826213588441057835104427367109185763378412330018306794830772742334373052670683442140203072959158029109899734377931687343113135637368272192596661011427961364952188045444104771504945443067369685508017049680323068175352595619803412559786010133934422437917834013456840171864583581349928912208753833215660405073930322473770834627077999909013413719022805259571879656743158074917220648737783769774439915061171506387012881434334423769824261018235766251117820348023068407547591648690249360167273085660489154523437475951772614041030470154659132064841800738142741496781547696828953593000168567866924764889653725390666597910504770230271270484533440398251202107559127900786528667113347534211742350976214718916748999259976406022065575386574166282141611534538518991642303152429758838401930346282378312138366122695395535972496619240104930051703612307901300507883942946221088758024114210221342092907465715464865701552716381946789618596760775939026147445913952796117357934460156871203821105670289438826521930781867921406899734417840069066678743471779384037911055290061863563471741775449357681293078953813905408270541090258672087667662292492156672996328822401486379187895048764166884504293798024370347151721831915500518366652995720074397824401623525785374994400975895066152090145197879059434245577226161096615405986733878619995898031007012212835653758565237835973955904078088597672090144732017978051622695293595070087798681863736485051918585721229620526155512389122726185616451321717653840901737460115719276429279087612296173279224260822719796109841565299085570631760702933831737834575820210900928555701872903092773137991922273907839424976239842730752689234452532035260854256430313697826389667898993505605798569746862290864293839228557113625396429453220581093795468140583543058545822649428308689802995864372176763829060304027904496134391299070026529570341696739917807543659966444973758370396658050034261838041893270122846491864872758173486175148209347753295314135503258199679218886121095906092993391585545433182037271551481216683015255498475975969239103251917123870577428212747666837043745196395529649674079855995308559280961535370103606628288584428077633745073441848381527657756186431888539871466796392787868904839506598221513198316152437654904378176704884702471240253362318588382534419505020406406454348547388073840611008378057665099280631452558924330438181734991850521029587738374464499263673798885525473397427588848763985791069701313112858384461340091642129388106406534350172289309648146914640491631270820697516095107195323244440339575784422161555639031885912629628768130717161742210396187464140902740053490439968698933697923779640162942217629113067969757970260590501664143805824136573603557289204340666008808841110301284726741694149952430789447682214576250130831549776511945001695196906671490547674279288211144985789782610160881034052132954722571381927480336015653243835354693877278410036726007369039366149524717603885773605743806309397537863875346219044315214927653766526161328362253809412921081261185980607461735671371720505438863588463486559169095344018178281285370198434880749085990866321974093405423991663993188218816241845621934765319027703731993908933320524349330245412519139355481814246640498677874493871570587310255390453942449067285800406090118875056602454230525462477047397165189676475066654799675532619569085209836494265545303409766000277736155379331129531037971236169800278938523098805010356550048212543955892282220037409928976067545736725027170061591558052417243028466253948528520606403903025844717364976204958895846878611274582448052776839256957626976070825821548983773142449665794081463916023603512476654436532334182103850585567154277055571530408966009692198583132243716199127000144309969780597757444177955113771715080024344999905656024817640026541984081790783052081891262337538129872031748262438241455877716677826870838446508321273843901812128600296385268596045693551357534687449501821622169156724071554140289378309791821381242104450300836526560900680393567934006820307252013055000007947836803233436315736825368317220424704830591284122662130896807255140484300519915963645796460148193469459431944904120976659256468720159451081939137791567735311585597622961608163878652546544037238050164500013655927326484223970389466807335487563724040857033225156694937066953630033153712139313553218185895650686727668477281043631260083339113651781632003021344149139842983006527077723272594790662254544288151298128046548086581399204936871831128276788883883446783756684552724159670938443560287864998128507477829734709457181330010912666540587891631750121430030462398939048231579833834891944483266906838901821432703780009592990127103906022401800930968864830835690366993356997331938574338750117297834917802800969904260399770774556022217757214706704423768644098207734336349109131096410971174354747083448861155823053420675978190505371558124871044871317038902275315475283269027427267536090888426070223966450439965690238904371179438377870418325324811019129170227934792805678714418015571513694310922539922929207856531733261373319338095945225906916240961330443948312709992066341546264494184007674373978168469250351365355724200622402020517182450145081955810930469388939117162572833278564828198427327764563765882544433479383328738565710526942715313001243728844599986977731571699646341219322052806359903555560012047840539696553465566975968764453405306216249845337794942311822034370792461587148851502834005343160334437026570296110711849491403292040478007829119972869974812503062579124180515544884288932259534952250494717141878859176149628292329964630018524034055948360233033942207972310019862915278214028735074639989096248758445484468752508244303395240084369274209466412851210179841866742362448985926521071176833342342992425561394350426887776727896579850821295977727151483688444180080620959487561590660156799189239334772121892357251847719999466681865367039660476524509588342857086552904600186915739623429471560065232798125888208693605040726217550560989519896112400135281323092127735204991488486508673614004047369721655247701504358299195536449168802021726239690744698127107811038612170275393876102707459518637663901856276124368356390550364037562067162687149642430941461013371015304575115385651128724357883683107385296764941400276458996748943664357714333926611361970855424454983591834762506567662750787564313366931674317099859083633765810170844080130362263399171668405564900757039201723854075357188692654032699902152810892345849513963992845618457011325453402992769604622844248420291028525979642094165150790340908266172308152239151978956682061004497044304024945675697403709932844645984442938077172134449701855534029693221174202530449704781988224178061876437064840096819008619652066185503385853273468475790179468679657701836613807962675589438948301996713542229345374663884223459598762113647497421866628705665296524329936149338969865901083358115313055980954066850696553111307548976849488298043202146667409377815877484458208743332698671957871607857430878298231962807216882404149238432527700760767419771144315135616736163285898442922107498887285860963543813021022058275761319378448284670402604968684603387252432863298747793074763452306044795830966426851438094234297822816458851916542179256776483428223397141851529446773709001200660864769976633007288447248456634010105746065551988491777250829225534144350648286760560216979624731113501389363381191427847929731959210898677052496133732602820152150030767343893273384486549890989896600290771482812971027381359837007967146158149970981307233326130547015821072240547513431831019995084202887696071334762345716510691844257237380703902670469567986840293349957404696574075806885322062034050163572487401851106155649731889541185571780936383546914769226838527480430050382193538277310760459312546431658941112588767719161331728973231278725974047442023077020452715336119268744120192037959524892970218951263093159242302780798728978425677884772920714587476661184462842172782478325777572015176924957043244783457172706484335423677800241077351307775194677678638830669819720962931674991032328481405780404198325803588540650278573384649998246788647274650949207000294165387458365996257337902038870726198139153165463578393126874988346895330831771218800496815073846973126329414597638627841227112912012341921819928163851025588779207269784239446812393153655047825857087588220771876224343114878060931475924549407658954034198332242235266844242327879117496463724283183365952604657711386345609404577270456935003482382948712877347992088766672047954610337557751802411839424530253619929701253218043455895208594737230125708356450875565237113717640395769567740986095904575238328610550724385125344726265889134402442653576497944127279156741408276509344137798496910936747073724770601617511238932692104977488352802201483176242782846278510973466513039833413224597482584179027203239315764419836323684870925826079110887550663886341005258773476144359832851934986334645895138288972336698087148079270443741991481752651341965095536314750584794969298059208552384834843964670555164462350381135782122965126012463370120055322558105379357817790118820997528664329837985509419324413689346439012321655119818558641742938121040628720247469491038295796118236625943543144531007766182497936225286157754214526594127039601258937487280953101733918912473258272780030950311130267599647424986750163708502674364423651686210890934727882400779179067314613710778160955310005543363138078830644454000897485159362782015676639917020954897705530045997790649021971407130817150150636376238456389432303933425577977431727270781802136125949369577066001924691025029847740175147448978789758483081202399239174677362075755685167091131720190398363639083120264401569383630176263863236405744404085522379022030601301261116212429817858498561024926468146320000870150572594853810416217603684999223129735591192013174110483101796729248121836425210542033802784422514560265077322047131026683977699617644430244666895497763655577683718256822799792084927282869457518442226135824362699781794250887237925039395763394605885484010835288675904119538001727471568209442980651817021220445188590412643573188294640676392773696865162027741442353511905413946427352647240472826771954142248468030706219686135887946381841826630774030844710389723369441902734581458399816735656898002526581460427329660048185604141785604118323385923047735772035156027466570123587299633442096066543555051659495810739099269978305608474077753466436102239007283558040525730507141546638269938996702059128779935977812877896744794342339360119986148731890958442815551669293715601290759067721409102473512514018586109728974761942137973289137467376298377071086283871285619121785902025653148773685688739143388032653370927504253958438880976845005307970252270143142329149512592503069476307592438703691488125821639080222731822525520207320102496570189230247539479067714464193141761371961205710578678779673378995797027756749038247257731958272569264722869764950952904089608099612778769650420094432481639426686965344691337670478273400444125615083153122185264431365188175934670745537735196725272083549760284460696222263707728545975171839587248812077549697976313013865171738421051258127320107108880003563252696182964699393996863383450384830724107138044738727687358982383183807226999737994596145051731967234864377613470809614606272515329942175414004364752181464941760251938358611187937823354850794091203926096588459051863098977283807625330048208193283472221268707880556530965935709339355797387260595874733879118804364825753912598541527760582228912898733177043826722366777190355853178899414440275363540002080877634596367334162313185879697603226940860656700564845820186624061976714147768809822446690741646022549139657883744328339768232541017955136576778418625584409701867371790887093798864683152883217445379122474496278582230731240237217337535555342046604073736862450711776619719303220634457308845712914620586288301281242746289218520456916724805142927373609913550347509668139307932468956692754968969182487259266443076807601925601079657220934626494096380210465544402393205029969642808527330650521126987531649312506757431231483284953893203741334374610356593230068310980462174082198522737790139947603605192057425961796570139279444046172358493171355951091446011156140238328663364427819902457424839007504658321607296853173424174969780840729774938817460997131564298974790369217038879205081280643044438541969930982234333591737797147482116122119517832856731195531376380195719002525944692516184741352174570246274660266934772918499536239395067056397345053416846350654156180948523647614816595799740629596958968119124189431971172478714028356903214060320642513947249297243506404966291062549670227272183675730760239330242286772884089023890327598382377176342871020203925431545041800537065760934944204185378360591174191930764997717812003475672104895788348779842928226315296203647789614095149528966812321063181457044801729552382602067187730089768043569365885791889719997384195672444315484043201274856971911922472458140408355269727817870343097368192293167116477985343145248769934322719804196429767263522019859464089994232514779524799576265589080910343322195040488705854583295568729972707577366256449879556748331781108211537880102398614418646923809149724953926842603891572891773235155893237618502968030133839119491362654676252923840983952133208204073287814739985051506896839767395946296104409971792041419108520124260377316720448631468880040013900207891844705464293782776660867474403244104725845937524689015983127737552736274335656835275154929348169584275581978716641144122354906646901015242542213869989446339514831469980841050309669032242982514426359872916711776592212216901574697494407002064689062386006945193327352372853185343297929576657012380759267594635264599752541865407429705121080513702680225988382609038408858403345652336425304763595053686980374900168170244102245922425057807834835276464428398547656279800138654819833618019343593694554329277402024427586371392746350322407986630571308316664723920645436944854561342284947519470266338602507699433389382190180607660673679740788374708927155190801627373391575806012023789581342819867558888115343751205146262799354833921344404225833448219887264499937670226491718479636436404905295376160135636817536434931761330350013702318256714825345764524990055225355762096806549120980791843621087037731196155701378087450418146457713802121107364338497587983329130832200779571945809165447645081793377204039879748711913405055982126704046451854408607561348521115277516372731607378224871800030973639811727124175234597950469797109380100554314725561361582991609195861690865348221999884912418322706811146420233011596268174454576993925265791366288388226628835193434751689658280828449783149541970242711576273778863297510826716105431179807341494004933044081667807793745066740603497797732358404544320647304624557375247371401196641090871057054023518194082493582133479131431880724678289427688147822462000582696543422737468372333252169618529032936147875738273922220345452627657878279108676675266305207682350392402250135941933748734870872096902284994954627828027708377560155405950812993002208125736360965306072432149265625184160875379704168688923054709422576080141455266559627567318612526950257583360886712689224397249084150242674696867733556222209953841856366737632687563549936200461146432977516058957282039219431888951400788832043752040541583361696058137046760621586544330388911392343231884937755592005281996213021043332279564266545648644590817767202239209804276725056348966842890333901214142949405400823946174357768035799299686898751788470803055795687769018157333825399921679373306049586936159109166945763970293524960992386661215527466968840630413429311382829540402839510785158105533234951728366337231646188375210980765165761667535386133738711069162979724486525824131505651183740291914759949670754538186917476828075153484934534521885002146919805676559923173481117234827309634611252052446827611869769178611244175705022789332484818744218635428048730184762194074395665495778810845109189366836515572358182124959409655135037684091321381532153334961764131143514029626683801462113760463479960335573718543977338391244922946612466625832307139892340115846413853606766490165303243177343842652678061481943648499385645853055092530740439539622810907319089652740573602240954424756056666086385808000039028438536675228203638502476770429631618942465439429230655558943310940118747726750430743026387239378130391528273172583226039645143471385055371513881367793485550005892022296263169695274033853319610115346739419541000136186311073169053427390775678057790901871350461367805840001380857540729053618283483402246718215866989901589790698538801993555774548395773458814579233235669473423802653020671013703783335711242745109098487340580744650910954429126919753956946869748546901205080102957706988504276207575561494351422019235043603468038041116678628664036218453122007299219837362716467015856855762743689515311490071761210622759392934779415832486064741176619473221845391067590395486598930649189963807515219285323538647245489262234705399686577008694458355374127163936434250454578159048795635040878360658944443984648912577156354192447386824134439870354961931457231126042696282586394766756806333281818640425083560164038569142941789309631382000388217964855876645302024458939153631818611640800279051697162373569466758644646644975017761306688283513808570579364427729470488967151946572658799984159924329629392164610056870058586787474877244078924271505986968288707366796213061816813511966542622394270329572914049750081776587922265870077331126595562170604283275301126173146350006388291635334698610286645357908522251681611850838649466351565577350758870129465625181141252022531299644363045479790654414250915228869899304193458829796811676287127091411849607984822159097168465060244789815714464925452143461108554523969478778829112499723290011250487245258626453291666780577432499790190507286236475344958188694022103878367382970027097919001659601298664092845854434157545794304541850067199904131349432198096644095971336248613000490407747395395522636927397284284068333641069695302827203658944686355730941898388933297238343172100200194293753675545208862885329219358111299787497548012047645689092553493553421572749507652220368734458673816826900806994684811648130886547516114839869080102275164800563316016176524371276224554178877743134312732177792790828569552644244248928679824907784990972847104092583436652514974716185706605728926528117341763297293477409073708198113383257277510261779120022210801848708756533600160220035618430997635190197559394967733798098616082787973523973039935082739351719316466994520737822472180718325890043977755123776598605490013340908732772960284433046917026592316257846218233292984856099389719571855857022518215238733706500634869766467256229441981028422681134968480362019636080069666755389040629384549350853221454270989696654862003217430460126169258898382360466489595420419451624181819430095721482819530400093503761138441414620582489719360621253267639987204355257685747901706740496982633413237783519872252079086965636911913807301393966595989903351411618399197403159172369708994622879134818966571588929413396346667534303115621815142801457497200113751711123235112060200243515550328253495637886822384297983212014729595727760996038979967717124583973053074745216368449082808099571231018756481036542380267530202200521216441824691620533962305450019692401831513641278244100666444752680334807867464011147837359861743326728934654223536411291953828503697979100032383570410848944068839032838884161645756139289799371789741975860262329573195967109489422948060621827467170091777523155277671676658539000584914435046697173460448602700848287553862365655075222857832961149917762685201307672160341178497429233574774328141246519042692963245766193256639757226896392346092264633061810324239702607448398437496177141243875168294032697633458006864508243281891463824432567047916073885529488442012749852874883944924218172157206063883083969241946239450086217297862275202248600294221355081678315775430277972180715518163116758561173881907418870427962351583122935790476265294538606152817194152252711252756525848989478002494394386479409170548426246910267637648721124471363443229792400569663691203610864186643686454695024488755058043191836718054857367325566775656427612345147204079747537732769536587770412858387557504736377541140873357207533042049907545940179907888773276271002386867473462572222535044577549275345944127643147102306104794006425783235037416579969967607874190612162530398394844596648536798252289667637624860651467124741754717001135524672999560368558739851532921797099610916490084664613922899012354520150364435685633999756783400304943287832532234460189172701469203442853825602291059547196565212711670742182307075076769049069831996000405874562584759084797750039167201904510386537088636104611986444630315807142839895379579549566795314086063237071664196675510336871644522854326590889880730513208482411123799476054907973294475457997896019580682706828851225014427818614478596779760742236695188893655198646738454455432495701118725131857531820592077082744235379921426148624837610791423428783183855701531623132022765177025296251628038641872685297679511383175402969287809662766412115814130930773146105808935015801659708530442923415459768450231394265819234292658758809257580360312684980399811497962081638012666598101814237980253651120658363196876338828488360154799864976716422559731901711900631137208879871426685251880760679831831797584986661790202859995930728474718400780503991627848536761627214740045195547226455702410698604302869874576629057323997257121121348822271161492864673832503334257873242640379831844358396372860029767924153483228414296053802470217569548176550797110957723942469107792265248593413661544660914883546999178265733488683317197142142248624234245008829895028454129035045365756849428982331513865773447867946464633702853685619909588230418680812167358294712585155844877632310605115996329528665382916415604227207391201565494010236599911546822509877384729933139501472961221174896143840920356780019944511343827394268429281382060297417380241794162271444912124628906171453477119699326402289092269353460259652956678700102706572975914653074575911755967149673530376013440274072947182410740941749803473393939423250226574716775511485773237102135411363036685681444040438006566083078108970142333067026105735550199798516815457428941665993604845509671323243629407661785884940102577265854805097181788687628299534479835008987362532945433337865444687523392286515992023698083261944094412777254886057640935797009555778806189520577820257946842116251347966867024101700131085133260403906898494236611119047678456286832906727498618961481318996243942506699341697506512604275656532723714694992198395315079748499197537763254064729931797974976792803892248459122688323312013387401420225204340649990546478865294401285034680339922947015924585352249548507036193538478840400686425291249268292122572872094563792081517201690940716008501642468938637393824726877241441634095830414370167764901077993992525933773971568219307935465004026574912898721777572406798028620525037696339721749998402562977058143182070766544386220245220359295780089988467535596458918173569313733793077809211089106304953626083666187035519998699481490035312044913075689923016206941241288489006179838377040596034846426122835880747685032116795369023978607468408660388139810171289806141630133762093435115381034218814223437023802857008455483005684792425929129428223442709690124192396220242445012567793532494626638051277201749216052818354172242820927538502185575842017926455590812615061074170062031586489715985016941375962471737116439241263511084916437486527628868664052829861784593625516365660109062409524193742846168209708969812544592022516436852738005165771253600429691466856684245086054702249247379835337052024046580664209044252029059455538579472378619519488312767161072028739572229946554691549964795764461695782340255095821100949111248841432124387766885537123456790903572655766115731884549758570747360757177179958150236693813749334962005482395448745841603509570412510988226045032963883804475675165055686655536005233288529107410339802656199710422242963923529899665256930991928952888823917651537718666483913118063313985884288529647035271656193662755986322923788480307583391856570944255354336751299208142826986719489548116208168081733204088231539978061090449834356566505121753410389348796807494061834984478524175922002978251982746753744462738591682887313417648412719883591915322929621797208338306443159220483704043842414870387666134399550290072660959059884883972605896405819017763221509134550894753933497684814107493346676089868450902723982290617054309441636395223404384485449929546040800207957729866644920434428724258741668683334196230029833476361617632230870803819517252585324379317865400195265401209786159346757894393220873493669244572532538686560495858957939599202904148508215987109251043058370005573355857031301549214710563504368853928355848080184649749064803443198845709256565436864859895362138906752071007056134060040552741608968715268487050128535275621610939007547582608605168638964855607703086574758613741198803056005211206192306065424539263844970635654029497507698708638505255862115799110275321755017011990360303448821448228411272987770165325115435733919484652024059515172167186270800919016364546217358617387876109596346075600673040717715182993881002870612294874442449367700464175338190273191090075630115662257587646896039194079698177899876168797546433952802847054120575977416420171473811817144130088400903920883979911969387511859338606260961945878340770550342569624604547863384649631419556692619017726404265998795729634685096091428342397920913047327706384577695467666703648977173907646849235128838944560617133426543048040444424125651270412923697906690738903341784079032229591447703187261231115361273558419872236457716243989315436544169673322089353544589825941307103431410351627462990442452474794100451450823750588245007803102605474731975049979848203116735577704901626522185812244284555110910980614245179406478728186401131077583709655326424343499443896727368487398687635388411145514764708101453224287415693323071518683134354284578167253687140861306708326306558736918501551007732821745245644731655026594988802704375570784821076434009310863528525017704827732158925598463668977345447921846819070507257556338427905762095552161310633017388510628423416735204884933202157224442181336318422754878135561477734279148591165120273491414152181101295423915600448548361794402886066678444842570846056607701659543198445404078002003708809590173552294680276815300455669060532185577973044030742770453209824140306211838959632773633461032987044167246939662600311695295333920081012441980223634391287532319982071137324540898324614585510991214979492872547081419812119917236441126806079662774937100981899631027476425981542350415647521537000514002206610241677165887848221307462318072103629175245377810541601328183825738769080445348969590016701135020250754653389365916920032388337500439509933401654911912058392527564348868270966720027118640810691918153685232261900259981127055658731332927310268373973046144292682195539962866877960604100368318972485814892123727406050515051549559635004705182590787834821928039076510549576739350255858636922721829328195735500703588368578434915103530967320021202385959808364486079568248084369678138396269494704185064662535643566808836897542759928791907634235650532567931372808533267281064788155760497592008972762622967072073241650745944829883084994327949416615935861811336464372059418989659890432145755789843633651719135987671925547008106012700955996020432371948273210635180217233870276918435225752417879010468785619988094398818144834191646952425338382096828237155309919030837258892396921558333247781362131613689740741847507967630380826148859916276130410730731829316112121408096896834220550201667530766304837473174899124684854273680974204611176074652226207224107966576918697698669271244206036607653173097806111050920633681892652331831310035567363636101869252172263101108200472299735800884186354898158477922019037428730724809751978041666236826492000725000425082507046072796153279717064564089766991522270031201839171135858300901792599643864376342395308652567287424456064632526133890068307542343343680743223155136745271509538194730014745046322466489879224911679794291408685577879812903133955795572755020188545516840130040192089383070389522886931052361851719296804405115047767336210861404685245235038121723700202849315407175074888654793634463280848790766247508434112448752707392806633287976391223903134319471714254039736941440764429689854754665238516742127917261870522762295247158002325386558315460427982017767173474299172305523986374930767979694065118391650065898641448113128080810808819198005098203288885529437526342252250201298813662290264406494911511798229077807578163739128252345442450023675880526442931005265600846353583417049520388282183657711078999111817426971022086131516028488342802640005054812683310773318613874301173079935539412185514462692440636787794393382204830644898082014920306504938779314484666794921386561148589439994428460449963247409911043814925017737810588150971887695874561049404255549316689630707351808091725015451061248307419385050411605603358371819711718169289703610519379694589990017570353263345454091598729718090514282706556911526379387610644858310045562797517715032755419392895074523811280022783040018031533653963156824750700991160475426713399619607475863154259472062396015822735566670001723001270153625534314565159002664043497523353741578791554336946152699573567789710946455558184357510436653399595569953865592374012855309322922195086117577119696656609183918313269707095715596548775771916878683835773446503798181000568000189031803032896199269178012345531215731782304996383822440944646898382449755995272799501464620752459490454246822855324279897203686640126311096445687993535521370957617868623768588777299848847338442461421075688142559680768999915670946024609004348539988480415146457658084165599247595797979449479987284141091703642417847097410792722112602631145141982149156083675253909100305155943358932361855367259507832551874203627175122663325505165067671019763469685399993239407884258981860451424147198668456729758657358803819162880716311622628521863412763809324910702793777727452454722261134930121614900824103713374518496838804012240957606117212574484119367840344165302753385936704628157049020232671222166339671677787282257610970789396342134503645228072322363502202384536354753109584985059192502047093920256214712225146436601937087216358985808754395609221912901710217567758147118717366761301092664262183743863694214591199852223843197937145946245626204549781283148925667502345692405032846181610515033191738619818503726088356747120231242635525526686582865155284277505810875033456578904352657308650073385457461560071137805972604522076266706908997429378249413277994567191344609353791083687873285615223931357858404597101685921342182940864243247014552867628063467894581846946283274962713769258521689756971467933702418541315018230387725686129087748882064929212279507994386515222179261795142461239228773394823387486952833508463007579488983742223219607071420884012138166403499463664721686142884597766945904283864469965519834804409329418253813764524365990234634304409607355857220145993439440478988763441308662294880125880109487082722686835958031584846946443777126017419193452212421407158066158884264895713090488250744358511748320897780731223036901305278796650843006158332075323505055460748215115884690136904965284224280094176404790181375406478617620390564523091318710063063615893176253728224699991953773170900848070097820147798963013301751551216803642019074219752045062695482202017805104599698699621616965470281872588631282095628597346570695804445025212439830543358826726834755972895201196339744436970386976495015905882098145998706092348924484495133979619559697849441997523096347473357987921063657229427529701745302021355447879751800559702132863658316595946082828996311409232723202672998221290657211515166064773055217281242423906471515570504021459052302392362951048000089272698614075432215339163444480053259798792694806899856509915791860956025560306472865682055644782807832436288555201123092996644917324694011688350168937761706599249355174751199457684857286525310867344898378103310381160846048891128872734875180335996292725341310976899982132885573584512228710120652618058529757921446813221767806837276176490343997303919529728791014623368428896179918264449126833505319751355620029633122340144386969380411101327189795861349636675238644549629633664224622573451854737007085965758029383806387987856143166237224353758546338258922032163417853950698872714829728410623484937047191185096805074975250959287085574913519260213277374320395142962184325008958916570954210954289732021684795601511472943890470389117876501785221142662705308396986165724744025708995682599137961644605146329581963005158182809622234242355293515106760785940956737981555765210836900189034885374359722775748654069339628529139280141242079541800427671796250597394559026997403598804800354316801250365317618619694331983778222617507768961052551983335722986940905018585059716254021722805303938268761534336964705982573359102136070820380412342739184916045846513858669724373584379281215664633314327763001929426056398507628751626544035047628365005575888970153851085955970358217048193261729442229250250831896825192524880701870993686185533228335917345754640250468855354355621110313592629076242394763044840916339804441143765969681901731677820013006660262557796496651701616113113509972748726200321446377093395192019607883812820039406446098597272765991527601330259874053541856121565984802402883520380661193215602711925767227868185010477171007488567651520047569543834764300865222889459645044866367442250117296502946822307615879436434328247668006733479985619511020138688138915713677358354624367808743293791605383037433626768154706262236621429141035713748486376071307892718835398651875951154164403347499122233189191306164950963853313966814203532346701688999828723936902110280230336893178640198738986929502453102355776470528734380776349764851403115121091501691073465561587094657400728166018481881328523279490299223874668558740424252481301096057447760501155187278921402351820295038351912420291760049470192907656137466756549882761476376533551543955608229894254666675646137096776884457899903734645024228132458869536898087900295974633465478897942496032800634790370654833540366570885751594650756186559338741005869778946561046455831009715489330409678898786937917935378577505068161342039415482668223071697118970780116545163534192490905134486030410013257001556946406522668268537554251724505532452627806703693805876970222223394620630484195382393685829225211874775514701150061834000496007093535594374322680887928858970153013034051020503923905572772746309405476213894762426083293357369635714098124107329093357882415692513361914666471315403516684292921741166694273296798584556683958366200345180951608732039226538938236241327985465806562202264921302231464809395885846576899806679515478276733052400002577281628225373291658559991211733599331283749576242450371048275410119614984283907774117937869002004658118602267365902494243453589596713967840350538769922643772928098618084986887185285858951210853275145489242063368231772030881019888387357107285958752581581605506759085669291289406414077276194633346883808577140786938876393979054370822591847727257109393936273108096166336205348704220792404254142924856616678672074609465480785105623574364394805952924389978762388672503808389886912462572953300841344665263985029953126737312862263748031652223163507243748446219414801051124409829354546543420595398796762157344187847110054646710768785323689436643973200074927328975639394839957913560300150023258113832425906142448182992042746332227953271119984521215095112415334697013223043989520302517441559749512656757319927800438011176078794834815757493578478820819172091416389271668252682313735277117203430516824170825811839920708918636341929492708881553717346680394647982110880705860217446702695635353701811387828617446480185108178988892153809508482944711733575072260793668509278528422674429245522768351224391042709832503400041871808726817574413021858892776914732002672401175681754973630540903396005080829387131088066059087725402793468339369427255893780592400256796683149021988671209438899017433025462257017272305316097567407918828075531460312907368783960675635465166049187092453839500550756836820439478672876597459941745406099521823217634070903163989006882681029619073684315150121349477040282444494131605246609462881456696402360379439340290592882995946494461477319303452948899933800186370644218347900008719212471669860945574511265463901999630820070263317726702269542602289508155646491904620939102599449502330686419057296770195163815131344156882086470655786154568051034351133100708772521924622001319733401524910337846163385525063070643239689375243019146615349513947349918478700320436781334849378571061570002162089890343748594456574616975468594259138438914227054488628276795005696875827246319913596804957654756735663184710725058043934807996722755176278196570982657631481385627634724235794668957411868442304501912230490740755697152204324089142781971123692339205806826596523036384446183765288191453149125179008063202937939109606523208568029170076921765668808051536516617384277048315111943107964908122905238871846889026192464745172489182899392270684521668039536700620449428061643186402335396305307199739346400426822835978998955290646201645089849424134746989258045802328561677193974266378211133457264897205089094576080304177159503313762730601997707193499860343711959380324411077671638067199294845671615552588630558025569771851931929810728981747063358112143845105100419422361948457495281260428968563161052793086502904199403895292159267907273292866055833657418304180861488318209969977199130661157861732057830880180983081912625114124284451411543996788170962514126285293430437464965144584842639601637223137949807982220617106059791603305559297337562271916459867500987838068876858311223478973083684564327624376968282436963678633620263988415330506237046328213640712326426908703508923936378883977700540621320526635770754368514649089650885233483910412681681921082076246978940860851679714066691912847784829976168272894380879705045055293604270778029017907873470554206841208886466095415203641522366444726041618599565344644563027563110211928283866390192557754872879908106808803680124707001359305169705585555150257694932236866760799621496454139994254714352326299531027523000874166230359217436518426433568982180476505900267503015915295851632606383085190130328600586924014953943671345196458657501499181493781954440638447328849972487913228656304529569390177727905972696403699708039150498144802420854893319559557525589064958115083895494512915267754195057723821965706553830401787882864991926135583895570506086575975199211403756494765640825706698595006396632237027585399225246402313759418016149669474511129301576327445753483657759281689862626074659723667043155806161562992198674144788306714700010480033656231466172421755535580485279730495425665619571581205106616798556217927884200339233074624050215369762435311285582768028679094459988817304565188363689683829498383368885835445344945724050249018379930320255344974919817568722881786495109733194392669438018911080034331170043963821774274214925253860071392365998013719736934345960838170117620079706747156541000186766216105769199819173426745336046059510098927548348513346756530189674748534914013486894259777428318005253031135345670431354932557606485761926399928760984664862434614424483762499084306989336141746061977076887072869400774324767527537678932000264954507050685680337482865845413954987268413810451039790454760369089085914212444752098621846728071299390891670391805152669957436843856869089264059480654034550802467837191959486770007363390013655421131764402906415911265690641379312394753412585684652462646897649720496666378493367725783820398559894342080759142655540536627203160814466941360378768852479436667341919103050227180247668567424964481914013441859414999725088606854421922019769959027063478786358441614828059270166110789612217695067560973788717606032329363388877825978916770972992577661681128838080992540838936596719801339635528842964413835245945235041935920199824718044329108972878813971454818718025093176283409347989326422139410641045161233632521538037613020927610868102594087829238925927920678647036324242180233077506181569234984452437706414332474764168720471354036785596301291357690188906827690402271408450508192706584695081339364069034090134740147370422570082635381374466267224449253936684271441661061235753960058959655190664802431613718814048775752260015463539188860775906525631713766910404498849273375319058863784661456313972954317433277299857942888213853742150013849441177286716228635951499730577333017435315533079305703197085621638421691810984256759502383924830969369266570034962157121778792700548700993177552681261555085750060403554749983912775506205030862056446376133809990434947392748138602998819314271986803325321132253423076969004520217803777748997493110608882159592904550439613399661114521885807500613276523722471391875872454468966589346568730628166554826260482590883009197969027330672102323564592353796640152881872636346800229449822731384412457120664127382645684968690271497231040117469461952164294125176285206700493033313332882310122540828105072506779318514670069663206480402428055638632340455202783748506997566324990187248852097779860039627991197300170915692666341722573685387036500933457530513432661767004991331246948796734947546069271429765167093527922135423384233235699903542045601870981073008090721469094274118056465528985068336938197193339708926951554140174595745048710698893964775365226500534403313448000350459538030989432133942619821129728008098992659835629839578484975157913732036188421979546569707473281058594536344049842129572094168365110925959862285282776424216614617587015124856497611635546686819472897422901058883466278529769648806817457598523844603708348156226806963750576936955048001121364981816865256665422179183001625488169259070076221963713608068796427756527991302269638704896883605108783281240055011768151970540352440755901147824475468928173854829410066061957528973239082261359395824388326327919261282758232421983072987950634441360646006386218509131590228698857199967588426422567704031445919247157972696791169082949131114861390267069199070363476309459314176683910590384490275430833463963215041623244773332951004082781135517544513282736517226083884884745191173074084369576025970489611734876009136093559391042464593580963951721658165024210131401095434515569685765642265390001678162971309079085357963306082974902621010355931073499758707178940991184410141914357823475006754175619105228580398225438241465976732800895926333732539564251897062625346272074174607208031830397339738661105792463038337375704702486665171349134357430182420727450782763478712363096942504275301744963951574783405129731154955089626847801607322549042823478636083358353108545475500693768440622581931828282838816637519968578300409194763460842961517007690698763237106891554260450592304224541511913114700377401179622310305783850128339914617470534440461565628251646157819730235149053772449339488374389581377298304587113471360216684815926435712153532607597112015904597879105533213447856539629970160802587901012484825105574628755437524931980059168384831899695431274278746192627687670714469767337455501300985565991230876947500805725079770925509476982696193298813130186269155248960270323030071182849153604972149099564661217593459453934027292065488153940587414333906107542418508813206847383922543031258538378234347403356743682203145648922733858797963999752988062841517906234479261141468232706361736421323613219929589027291155498973148369934403231187270627589023321944481956351611024304139155745834365636123810218167126486305342145053616091541465370991029821815296670877034723826827261411666648059705493585215201057926217318560284078318966400330425339666082580544577148527079291003077840699615333012127103183808190816308940933696497451483190821761268667314129180543901171352458393509226573616835268748937207006271813833591615862754453704619755847393888352971678016530827381682299443764199667625565226669835284418262634338626095873592955170263315355182343647565350066899294697246707835952276255187018848432889627219949764195778123675873401475648892768993909963299414983690951691890102427815222521934303177321799594685993637731601446242427509347047005113655347378524137942664814992429323389356746660362135688616094264827651242416313738028784295385766348285298002705697657554070065189287695615409441392204488692247783894501924113332411021107745046988327734736360389048287782767683374618394313752863304360746489233964528742623365275765570477031493598244545950502687094012387956441858985847217646240157194982515583376526141695836936168541354345850140172218735400423976903079150858459082888607231189252341367097024384980161104381443330130335031227731447924735319713966298199335204067131257747812312079818560709713161450573787324094500877163815947114874422313832704705038966893264908624337787469595013364557055443994377453783847152369958830168305053630828985627103009745127718980547436190801919194445197109458726933478260129283952785734862698001310926318199426730439307177640204594305353891744058204101070535073743992622923713399472468870211262769361018975935856650732102488488392910385713845756349613706284777517311213794651146726985434140589119057476253198415545522156167605305869916741948329679759153248378786965456100142021542427648287235254824999485500798893028372677563922748958918926596569093449033293124362059609286947752994249016475399184260318412084931255671604065424319268230054425800680332057840538149451418958208555722569981937662480151061231663579876815892342242056071740891221817468994873279116437907252679190926225409776802587154158042604822105336724709596640280641550397087465653707210353686859326187847620660560172666227410879062116463021687379585192453687899817065297894950396434329360177540006034755705028961108181572405164127376544439835903720732117858110792010746186529904120952821448986647241954332406647768512741223456874300886094593863623981009622317984525524541996408978646366764685677230680685735209613536334252487032302766014661524151514362798779096738608098300198061895748318561072260838328447181172468729999534431914493352103503480231496164915166292780736058514795971152099313782334783844252862660121994203806566496447072272957664349522213988881590837166372278352938271501946900473745565557518310637678007364563761770423718430064189606093279512202083724425284430569373821118935501235468579634622415682625808893815043580397887639047103491379869868769764175791534916306852010005180408758105641144653254723545473466269458083566226774185098104506992965098285613590340800490247253172066839250262252005841162226074628606595559825466529785492615192161574343648433064453961333453066256921042506293736859993464779092399439654759696106672180688844846392958139783490520056190262015862445178766890392759841882422298382085211033589566314851660479104188828887354126904352109466349372454443622490444643898111857386855421379686869617395929537983229910456233405898363109233140237186467640162747083461473839126416990174334026394379651247839318654043651538403596064128172205377502089637148938499187045635903090850666432706927308894847861845479961384981929047482710669020220043005395578540667257368331645206261769174201602553488655199956363794446915945354345084123687816462079132268759878794687156492394047362463668590534933810894590510907444729790354205575678238264486752464577500260592755332166754678213696973182544315615228844645503458264370897487426582783707757275701408839056849365761407157000169612427946143777752403324465757584769378070497217296171500198749477730285510152608798822777816596099400820456196961542725859249332988804237979839754077722278538738210689720861752227455580247128387770985564376065285981017347623851116941666014413740118040717028037761791550877659935103332319910919903463069647510885236766747484740374558083487567869839874181199753853334410527217079082010579740096014489606593751958579381779276542600306855584456072766391451114790332288000019222167232948966341709478006177373010285166184764113175316761589376733589397375962851157354023100001684868164711058835774911304955619804087588365207422055839131746088619019205671233621330200370977908243389402385821807005470251682867517479208067448516204324342295579484436691438141173986760839462742556776294720414657127906783846972368264970789303286457496116681491611484463880961950656520600631147803311160672253877381741968673209901339896348331584146044324525157825325121495416297465240806521053525618843409688615925865466832020347995218144197010385101711212948837214798659771867206146237098801062546120338612512219750440177985423292192223211345019622142591572955481992774871155386346323794878001902932612430920346904534415671110780828213209248640971269254794762156730331281607314735562599640441910198538547972346194907218467512726446334795418489552190056180266636402281659880330436910102051829089422060176052380099132623328256968182338219778736094980874010602412509314073369483471403149242142578955970091784324499856503712132389737402537357837128274001563595776587118733061172606765271185172685690727013381314138389555979805568398223441062106137669256926232221453250245720392835644278001163548504597923875123155805314388483787508743827775722240378482976896975412036447473584667722090999063966971788384416483306308055995908227254306892497333411077578840959570635126349473162925773472404613243045723770389853427808729622889664046120983030888139699725450842304913941963586531141334610094805802098880500364567440140729142567686317066142477831652886338070521842127576966070644885336199667923915517969225000626492177424581756639799035181669385343938916373765101961233202975234342783216184549463748802890206632328827657206853771442458897498557716048344633489842675246275208750106348777747988453038964706736989600617915342564409847744352947820503869136140364678401841023333926551361205421795785301660979362559362464276512291370590667903775615032956355027277043142193394462037088775468955541787301076885355210930454425779889513595202084467688240234164249034667276257691039674255280167706684280874231182835644621336207928965722619487481142340176079070061690645756914761761012455867143494959012952019458708524982998585128879084482349208775233795045181111851735251157227557338406764697811572091555842726745177767986207122208847182537203459366349377492968969426339936515484581476388296721323987447807502186874770600569852696693237104004542671426054025418057446957152540868031124128225987414108987741422515806526607880212042969984829947054626880000853560350865604333807659632166616385083533188859164481068136351181579062871042065463201815239292815024536766623475189241351540228135102003620008610575991441667842568204749159233037171895615663941390093581798534627146059434737266341924954300864742496277762068912359491313305364516510678802121199574389200204233549279619715647615766046547704015234688169754985554601887526713494247559990158422623825716752914580922673982151240181651802928180230517838829521789965744149237578282536340526928444460225537790154797044487944299151757860231603998135766157832829305142696085377436043582174753450737963872849814324600230281594698806367272369534077213517267814539032552772602839341310037806073424666080578672380708422664678235332433862037047734594701758622056463379493047286982902845679443054693604938344189059224514003701911040543206345349501525431352551483618360883802839713722378162541343047909247148023458330797018200668114529371491674198574241360643901553455268462028907437752470643760082856863369409408689241284657549833958458930131454348182036489545194772156112031326142535471473142034760712583050290815796693354959715523003970083561030561579926867803151887449211625935787631999289671898258885830742359182198031858531384201911809962843973014176433467564894616402889215338221995078201202004014579856620003833489774185958639982214183338907493828328995400927500679400655379034398523549151721160170939349354676493796438617255309829655650187660360148183005975172985374357509631170361667269187229184282577245057282758987159070947097751061105415030905390030110924188628122736938202675039131921859831570215124211157764490575415271716726808511601170623083960505039672387937940835306663404893166882057160031821399584235459403890726089668357436015856557103215907124288005666373376045957343694057392901910464026725944679080516530191748115605830217872777300878185757806908995965762252152788419740359280937730603277270651619964116984731459973541170284017236122222653173125038545043211736787712332338051516035156079102812025577994104535540444592443762307583451300333625595709796988458782043642847702734477389936730278755275157258390906791010609706404806239575164403342334582471802867190241510609020658345344329188170740735231298100051957776472791972717725940595081344695472798898246866207511244001454267880108212954009545152087915655537896553908968263365422895377432558623059235449325405006482531292545787594823106824948167455878924152227457869850550285394156312142182782471813271076390179964384949976006450557324309348619081296787584948460549550002124930641042276350226126384985428209745078942315511301963224744209359217566327176106158705046780682134962729473602571952731546623261392621268696146812051287101821080156223740296836902386777679170185603564248798013205570861776826053353728042246978746184958059149195575556352954946466394777566788453220414306308223696212195879622606299921418103942535322033567841240726356374058167989576578743170300059490334001415056155324098532366435670536625587370030128255547416153948480618796675175642702622973550691671200557982601516769552679629467057621991989658846635897434206542479458084659115985391140104961375882129385979160579375271488041310642769642838840745647703650155043976070801764852633912632905721218970428259256919985883444644418486763771239316219259972141279271801854903828370360508484805668995140165569660911682642750557310311120245970075392332230308221079158819666894408916493670197031012332967764282958275473845821151557739853993802384036953233989894297411626485946579032166309606377925536387584037937973144000763911622688469181777717011541680411874462438463285917952775497434086163939329272184692823774719711055433428030386977599531680329768360779429148338465666983692051186620786908373586304031083066044409684143258365607664970939707786253390348911784812455973894599401594129592721657116688487113965612972308315300816575956969717161737270419919538701621984729004418138749609294165087862495341022536445073686790093049157368693361901101706985273062381822809852726309500379205834374490764722719524596084056933501814715910285886198601140854813538936292341658959265644928555515761912583180168169259313404719851706962882087191232164803664033967681403748279526179916788284061789836231923280011389556820518004363833827751491635095597751336780592565777298232618506825272101681150110676755709019173944642966495446277751456743488363392934438206734537914682121872713341202266275053663182476223197129337150499234159903635014539975845350004332987144117387964271338692486748420277096629937480473064824773311435226630892968101191391395891857086317400333410422634921389288085246944928629515357499220330201638565385212235986177726920284563247969200646686400400289041721358053266390171528468055208245367479152401288881561369386172550785742920342913819169959528919275540395552806288872601472482722800407758686893451888897152358742093660167015182163389016435961271248240565466434398047581333505915581558490989970127862292945660760224264178185951735925089835532423373189896344596760864816339522711426165507927333804896891512956651219711888968066936474604603465896730184362526464736978795093406024627933351577524376559697364166846420156771206914686026972845860988348784605447526911780337144511067459282982126388510256162910655512938920029135283660605938808802689369683924825370655758481308103258634469991641465861903888139732768639284556250358104664171073134472342266479197948538885665949737946021717895244812725225817828399764024533193593327505834753174952134221229028021460498053529487009362556259383031578232871267999524506112956417923559068621742422471099624666030351614929408968968207692998054773663605643225213830422936125839041133823462958362869586675068986225321008447141688269499785059182141122223504052078922759184146755258587509105490825452969088385250323310576662235445125019399673168730469352924861327559332425297941292127570194815044545021868170580919985479312326151440523861918127889369475526141712889200042311754822219460428774643740972708346711474227200539373251804021382736111689072595044285623550015422865884143843716916302906055483659198184227422867420725442193896068623081863517303807048766646439402035887893451102995721001293993932018808129589051309685091503794017391633498158363291168134940070690718006486991886918946022274312633530932893685768242118190804988090826171411627762805535110290021292918287470567054079154329154078648930550169877568460639552940126580121544580980177807893834528773219953437940652671815307162513300948071374916261746483191171468274439418159738358345904051477607654315627063446093269627091197840979955873260570898793672722850510457535139449643360466677494448315330718417283284542517605014786048126278238242391382700266913040716791190751574030414539115114328992586869211449846288196346764332050196107936260528897951790159423455440297298657772829473831527234124522547953782130199329397754400456187086772672385658862911232820812905827413619183421118559969448774967963435484019591558338915897426976073256650012761197134472358520820958927380590462372106798922188384570072272135534156093767568852238381271719968674861708525808278311850918951016687292801481292906745113920440502685116334653798679252326998954025676251640379197543801206534832809041720638357159061135432000296599389620484545144338473666462267589334810897442785990462353180321878644486822852259577304430963615788212467421532985168954013076654133472938560413997297151737116242104633852021956853939641261613555470156208718022814722236474513991751549133229070460886739329555711367949591820621004630922391104185288469927819917753575360337383035517621675916311380606527078494082566165885396726120321627121024385927086715396865269986870401835078462289275552741842926507420067577876862478362731986007772872979569396240857957863047869278988176940318826724708751028847959252887775807549115712701740559176104224053562881184363875160351068267256387956896445484206260951517844745284612503922955434497560560966749288993477950124787759850034544160179501336652889071925100837947171611172296689954122456954391467550806232933348862963892356975356194145474193894025482461622496912910481385265679560434777436638452411409984914138703726969125839476763578575427277103524081956261381333568714617573133904253132972014075626905666589476211679375904924574346518627051257871064183370859389229563390041403370159374697673592012045949971113162468836005328466016906816171412366476414925245108771128753166786248538575752489671886113010936949658670451428548298513925150025532122609007478850317337742271532171760891605737397009094518369620320696155154044808647481001914643524898910532621168999101923862964834454296332705127039779395780061786604798562888654828218309749329559591139506773560794764336738926315390551668668501099111919650887592442205988139757669345690234720728439252735698718456398412993023615366935692386393042520387943830837168910882789976758612403842476364918984263934059963496138262766110444261912874091781958665437086451381439943347013505441948057583759475290195671680691108219049615998058108252708915585791499476920677690956217113777876747884418948471212401778647352475729626302501637843766203562356846255630033209468567404025615112620929903603454293534061699428475108218550988178336824999531857678000919819288624384008000035901879068815922127085307734585114449271498632060496832665719879054662885639227588014306345599497681892644054802231970091445135326593336145132421605678015452943870028259431306568844298638407999935487486182529721535751500972761722785999534230860363253927183945449926005849999580941844314583296375487388950693036924882233428351161880159654719046012933428028634079183825681186904761733003717769732498006639709430840507471989602133492838770923198813888537049337846267272298952426819716935968684570005230891795853458720524369211458421885484869372394032628488614932921261884857102029220509577338944013273519615430357609130209023560003900205300188025696935320022484969616886848690003136141783191887077070811330815032910381202615481647910392087860520481723483131605866517120864982031574075794396554591582988037109321654316210992085832489261563812449125110450459419122079546227101308085330090013312264744747928635803970817270080705750347129710552112040958187242356687442812374088608667744883148308056331675391098061573938720018312046313592633731252339104463873215796622319584381618036423326435839216326372299803133796167428771064744108391390294541298470494261998358794903438310379613855823434769183477547648582576687196187134786722751948206734599904037025412632357267611027530243116894365631873518419176611772448286690108320173000899479980924249286076266257692719283389394770773940302386137984759432269715135950660365937068413511440967373005711047994494104505821097573398507885810925674363708485872328029619529366416076188939963097622768434724573851824749209113386119315304801984794799542753743577243109670704689723187187258302498728370564900879588014489962200642272648337814932284156768779338656877499096312033547255215464640447957592419560254871350523329312176773841781294528844873640849739511363701074652868300069759746425268846795823748539188508564916157274592041727624529576937351376706217224831982739705980878583493271052082819483636351968034102092425241256908180811949475182279690009731900442878213486085838240062322193870209371579639483077140633283228074500190993051338460233037577424215672411436413730084200751806059823193951641507657917021999589724127816003325703776319984061741017239447878483402921214987579780648959475763323316238370618225017770064848556453959830972810659427611067242438344198768489393313709103475899054581239292169384007094838015806153863637428620470961095723887945252390268110690728941772118415020160659270507323053612432010792543208599904688500316563941008104746865145201395986538122862689289564845801732418874241458394581262875833360762590567858104975721297366613887474972110279605426821658722495697811507997588893710215227444481403859270939875683124304057516399116927153763317212689937790741105834678598304763717428111777762726304223939512939063445388873482024809224411222085376529916065222106614074070075226796471140896079387774705888927405294771609089019396110090987372908662323091506443473520855214743255592192324652698275416365772070856337324649998124702491462039681821083495776659523790781493527878672274358545508155128785885950712452962295436027903020230148897125272135204276407860882611597098083732352330532405537920176606812457065199378661347562801194620847503939225080164046151419492295650397129258063752119066972212365274420075436182256347249657600923188726000428955101250599549491846794897950485487959312693409389456137756909557024816724162990337537634331427497235580937779122086192668101348162619846109901099228871715867335851221463646629890796891224703171910072065793238795650459221324676880392336323368262145967918404541550944599625307916436100914197162816192034699689605020398993490668492789862006072458800016597717804931814552958322939616183228246716437993035375910321882227936231716359143228607625561323440049488477430177682303894982788515857791520868755530064130340841920332694647484803724689446882071157488066637101016795964782653353410919767591347179396345557968236885593117081761098081031797572927464653463513897908322989396763833146186910447008753706435503813812879109429852533289866536699144305549280124546689727049124633142533523668142602265474152251763051729654115317728947173043235341207156694310121743631163653279272185755483714441247248023312353028665774749647803735854556415977300743070250356800630651347734614621180284884796232218909268364291774569771519517892763475777927568622562751623106438489650634030659792768698424532770653078178511238170943478935409834887978456592297530112509728021791420458954689487305927662685944651883517499373653885378531985951456431832714968825032003049577050072658425443737804724132959980433402714030260395675516918348400666784527250599415573464471160161483554175455173176797987523687235505518439297976231434489094460257573999374021666968574373208679110830263007999609514779440987268033396312669080467882003809347196557975024366788080950935569066198070642048158896852117914467548609456737304688132888415040136085760349533143016820175505974343842897723649161812650036178348514657419706776262707788452772167024994916424157760160781859073892884637355905200289561482822515188029966916902135155953901993199052103937118042219336383618170035168185043460973601808839974087213114232901552804850995004746448164038704000196308271496837239681521086188271723555285968911132943865364404004447477141937709095327418990289090206741050798283175415728296806445986645609897299917544461035338189652208567670349963730002782326097261262499523075546190183068278331237786257227564347842205090750378970440007993732704827523584631367719481360899188135188096669858701420189268493148602700887384266706623828238549951019274752675269813406997194717439450917067407198247687848412737179253449378565733492081518942082793739170921095184920641023392277571779947980886305993719276917769905763147017682293814602321970929964817487306335633082729869037510077767878089774230292951497718798433810754593767459922789462557861265760018430463215294832886266296806770869062644041266206439285156226705694876012845145206824028783384201689061241567847553726583867575487089382356861677070099498815545536063990199075134328948800973704264347903946614675587124014051724775352352625980360228346563608241278120205462186482089935425095405527593913876557572284792815455805879425986015967947186358457555537123837975218041652834954874195165656779658338808385398612729847822022630070234109419663449717724755548500379099905895662750775916973412365958850673430361353434848206289889187100073748690905948887433655430660752103587357995843654765595076446136949144661143488609502620225400586493417730864895684168889546300768629443665747025651645679694802768109341204024042495759403215755971676586679202210067177611701990046117477231121285289888634718703006911437268359603892812048400040348674419746197891820846053458429464740032335408789743887491094179093537353397816767774437738421486181846397740303951892174241052235420859364136517154071260543630613178101393002229170637275023261585416328890041325125998520115537053093278430268450058954957450024517098993871778027168727427291442887717698174660443104608357025451852695603526671879580287777520023963104036717939442736223404013165977058145817070434051589606000892148112579321635611499670525270857677104344803299437356172288335383037183927310054783523603340634803914760644252640702144351628511685589892406046545136418323974459150137777206698641482816550755190090820032101339871885045300213389132885986164568761434652015414032189964517841522434714580835800468411561607975143332160507496582447837479282590336594248359744392344489656738098779196226251157121953754291679619345266609707722200398347990379253170836211204272294603388106243761014274037027286249383164475004348933555246869997882767241798874988261330190735215396228210005119374213506575844834171771829641245471243588196882840452025662890214597785125752777754444744317022736815215833738447129973573774781646562699473838265654982093003663281793071179479224153873934694430597920824857362069240062518960733854474947795064807465864827801698285527266840353983736058406447195170966539825825482018598118962278098995901859576358242535498388636670281728300839213135021847335003935789608958808536888920408147324696911693699141989733945593944759104677964416735041412095583862569073966677881968605152007782652865215389936364946747147950881606335923674857027289932540536681221238296679737374025109594925877271203680241288825073706932731359824038576832739275744760908366716486960846683616833395654290136891847127271804246149862609542309640185624815254392313011916922230406018651664596291735461586178606202419994979582381387746189376898323215599961905517679744593322691669465324174689378651742937690234301938873060389551855603717272048904915442534165705564951269640611501915983526186914702180350701197112340836869260265026903077236217559975055211683126690728167056923367190095433878977590916478703274300520487966265634897754569946624508965841545762328396984204282553072519040069548833691972682421993324238880966386031914550771443349262592656760620762863018837785063487792811063746801549632814356471085315318339901964249316459559416439169983039180624661546362723917659896501999758767388311925582768239417722574023233013924932240715150125238655883462119782365244325186522131486535532098139592767565966124925998098850937530527497057131183749796906014352425234860898562487202662397416198585306615276078882623955571184099460211847831786986121993649099325294743928015862048652238996747811743382816565956063374712457191194659738851625173591057492183897865134932488160160887431875729971058439674445784405378977295004883371225869080377321222635600007169339275599362775251888282710043113246515214157390120093657825258066228328336677003506131207385527962173155462484457283745885398775764111449607834671955883554838428619715687762747402095271343327244087631708545459070702544333043220905479748365586567307163945318554471601422848342166203738303514612202500737987189647114308900070729912530530291191591807831675145736396630322779874715763498504116620743274730907487578485640128844398110658844588959514875921249523971144553092725081079438712598546798945105909515924050990532500785528276872964373434134914720753029919299532271297707003465525174468693550115651873996924169065880306073848431685429146316795775311926265454612369786685608435239971851939217589204501313427313536873662097919830268794657422852033698129958034462698403700267248109729467555433863074430925106386440789806440980535454698583292016630383351839431477302822218236043429685591704680912294624541830135061111663189169651190807080384626346718748798572292769443532769495966829332100927607609251098208823696328912000893675097578177840794524834352081627933771051054823720030862349134761309302195052649252729185876148163121768532638742577389143728488064973009447702539831630304752096817428828271093113228631908556068858655733990597287857661740168410223133517972911853982636435656704405690817931905971710330765035832704450971349765838420960763174824018927049760293880755042365541496921425363131215071600648036590139102288103030580215864526105945428426079004303525963472460765900342322404289659999612651953711057256342062895228339405126377464204323109010096787814442634306266574402671215981639869884281285936828715200184664004478448952796077181799289674464301168977905063647951481873157732339137794769353976189601732107555682752364196799261519945952762002925373566295792498446247108546608993531725896924431923422014981486355006099281889905343618665276556586059107752019949646421747911340684011277800401314604286556382524352936761335396455617841768705663221909538060045430581502084307540738370100910939954680396981077984950077104658586820587597783885261412248738664998371050383985754331073541155666110726719346747513107254802347942653219399835027435606151375531910758902515255388383892993046498943064384040973790357848817899515016441643645428976605061950717171016616751740423727760195406598632807191369333289120152720588790895821761338209872271839105237429940464210766237432942647970114797409589790702657109188409968495652892758766167705861617327218532145883329533030691310341103861080784426988423513046810433653633825350059452007938446355041475879249957749728746199236561425882219467437255376740926713495293447995886923503201085519152618468225558516055894854148249663210393308516872220684787217084828139828951685072364042289031076197384737230466661982418439692878559560125662985827790019738879830142315723735433315656328371139012681460799676345139381641911415100013120204812252275379108480332044868493780679395148575207996686398861472604433566122692393314276108195630742748235817215144206681779302554120773624240807474940907307884588890606331190259986941334758109670158997568155183784061061149758179335670847496174473115215145516613745491701236834013969373292772314656963045032685041768142746393252067648243481411223284106311526336327549544167778197020148362789585341151250782300878653799837604061938548388230416487936441196619334064223261988333694003031894908874784249702654862306197468172649351390035569879629303144116245340464345684509716620495517998019177954208848568097069766984004695251826541756272421970124408802072127994300998008085215692678912951005078312505454335014450735929313134237087479377908519465290302676805479345755197377914633045146678071840704070776759676248003458366374670957278069414151144884259562629229906563482663260085125226572286460150262159466723263971385059744106641542737023651905252622552226623865366090291878330466493750080312809665970940812291121118971637037617588109083003353490870648759953769044690277980381212923042747374574622353395741088723268352915689838489231340728200514844307158432276424552636158860279481992211663617088792599887207187458282469255862803601886140454251452563441735640908303947802407931875019582829421086898261336431533869232421682702323650324373191526977278465962366832117584028002780793316698548705332028390238949824205703473315706633083456110130608691503413322480980874596613791217787348135951048526111210852459206270001418051063514445230071648738724978610704882233812530127032914258657033436427219235341212326227627787894563487492420802166201685853852334955484894606584263213876633104633799188056669949476732826140739187229798882509975904255509010827308006945304941599802034319338573351896145878903077520405198987090283018550846055884218174669086245424279910148074748193726888653316250165616724803017394765048599189808086480272368902825018651625089129436316361525022355317380660399862660469479061459558768947408706504485893400029088692827965251340975335645225570629762087895405609340927759778297497926196060582406444231793770672994631192748489488231188780369045432922968950025428685062966078409758334606855343440490883704707583127878174280922265404037421385679770008881156827011330840337949885148298794016448866193269044754393496643053661195237904245083114792947816007463503560540417254775151713852124485783942267577542223009947997667940130378198202209646872830357885947234887295359739044014035988955001297128030559569470209041510752863452728435486699422654464394408079481536750573149180672313459652983843594747106498407907043127382605848474612886155944605104567697080441755068840425972743370674483712978993446074507085181993184060747597440694308221046805413232450160209689661925671961762345662665697078949313621609274036494289005128186695927752051874585919964172117771717136743459562755866491306626618379516497513982495543223278033280025948041775353262569129293450488790850772424607387731420265017418216326340195523718564642541698434880996234913507099928673589104763850374943916388394038796512247424108510881801989263789001591311838942583290056542870393999693882061860581633626256879146284213010227690446107569301370976320713737902675608412066220431289766994297401055313135095946367602230497147129402669815232718524626542458744085763125613822605622129167619305076032781020751766022706918217781760227333972484040831442474887758532882322170052354777982209534437925617426828642160941622098058983182869613639299794094786421572893961271677400980380634242927649193159117579955491420412805044110775390980913542132745256502378844463830821923727855365710977252630207523472086686628039486949827567652338435524933884286903866125924037962116145903544382737428722264375438909539639967704446156326052178486428041845930719076971033618100217573303571116820786328904100684420490938232985131454392629484886380258438129754608778911457996220961327275153834406897517831312808151355967291705409797508128167765189906235680343794084778219486379668815189364243961443730873124131119405599023699000109719428080278831992451575881214361674479540154227656941129456205711178448582667678303486743923809375097546060904166793434002001366207725048114293014739280898500433683396826620355021997658699768209215016603824098794803094356133631742401930716404031515485706165015347135141217239218391708548849811086252117887381113065721996671685169531828476894998053181154496978967440530744915509591427656633243026029104800925429853711196276794036852065608578531507490670441576705003536778636186413335623232805912281404545536803009027732158387795667158148564899968211237536374010357011981587217432881538091907954829794628897878237578944106117179191877312790147559263555178668231957844979778525486722190808730082490561692418926096069685598151196663678353560310190453603284991979021746542109108855388073539119328795984524917710521291512827916440782671269916261147440250131059570809998917072890462508031247268588744455493398658915101719911631524267140429814088711723569701123938285258224692983302067965533415988257400352049913213229366143888574944374454160484519209373375948286189222317333461565232594943817350115234396569351390376182993861236211216427120522035885456224208548647707418773138663799365574656834155687690910434031903885185587869330437239457042373763091758144377189962601416914510430284293194472122861193948376818761581160458326322377480095536324664120227782615903747131281629343724990054572648939065380493520196523236663977107228488961373732602832176678458779582191502300049147785593259213582974829709054633837310616759693375486259320932648293770750375252532553931108598823007564753231289988642413536214681038906473572260557298132358123705945300300421184996624050767207571097907924821408847649792946464597354321774375572258754899755882157556562022630826832015442813596155737035828378952480157015689145421324474964371790067051030427171298106226547262030071224175832940220463279443750511967869911582513693600334501956860245956236146591207363589159865293858715157012033852174066723370346896385730278726602126323769783901347616396728570516405910714036480309357149113682554869942108380672655275340415828336877246671481672117248635026650172359647588255482170488095900879109905589429274094597287775610427358207939187326701215338097108679039002003340508732681958239304071997481106214826284993230213239302962249585191941397379732709521758100032886682214881184565921182682505541481389284232457566367556812097299963615571708107288988275944366234194287555295208717741993988750458972711938349198089603512940869394424492435201025701721947765186729652552664763021325305408165096943589805997184057158176292577569284023798225661153968957026585208657595899865128844969586854605465258920834247504524170149316871636601174396580366912240864193599869330284700519415875706589515199486428617606506212798935066004616341727412716761428064105255979584999559264929462520098224262186819694261479504193474146893824881566766932618909658887732660742269449845789419210762253236365622927047426618656272979260403580307917329969913984336099268734475935797633891624321624851794857163100445430671865019329493040616128642602066152172140209061301344613764343525724240845398007554669572673916719869852420003202243068429919616511668195538669327909711539886215993117973458185376900009548383477302081295269535086690223582463158298495031322589914252444702201855142885553093899391674477044026950278357380326799423125636660085683873247004889669993837186987438374523036866493079804729855109580478875271225734604489714269579917392409101804364648599290730288826653182368380639366942472963308528181533807746038393808581549437407326534034656756606915455780085741641251438887857781350930580564308310701635586007525097108758210066641810070337235684087762164404580109780773337290360524546342416678012831768275501127102213190841210888957581807862271198825369533497978013439284527020500360276735893228309171962220448964359014705462809352089874084581501173214603168779891001883182322083824238695545959767285646686382056655211701764035189209060715266805029728864138011837781961590082147489097018789201071539939313697060774227681236174705271427260620990371618465378821584147102901872925190326862552626050501857216893593149184428867726291254720055899428235994445892985056800995424200473984575942365563216203363251331009389350473336549722866342006349022803332016601793849438938338073036006041498931424615900836174241297373432149115572227834515204237791856640958405354689385311008057492899648999923205615580673766518165110085144284977468477175432061332996527349046105003262739783750079123959667325772743533032587819516952958951854535991766371171206305311211554857182496377613474597876238758020508624184073589862296138353384404499179140582054679730623382529017010407522791707736605750264391245755806055570442238831065710165844726607461564482239618974739486039549968391258105850239092608090642422460908806079109210745503820377855664983235002064325130712331289636763457812788050735149502015630112008314146174174575817485795249273360121627785890909064944099484791197485781653637787290542812355367568371176003457155863897365064691266900566166578742120343424472638046315701667986688654039936014506824166861794804993859950489030819233141667875689488945771490618389959019990261968540187588010525147826573784426511172519719470306540229139789907745827502704143452943645457975033011684223686306186901209033643737204448564867897713481339902798762388602055514575839003823378731975748102391152278596738363536517839569680004797753214530895747312429766575252559075470300231656704871386240410450009642088810300971577244830101263492052466748122294988983456374461608027163571013036876232545574801706168110385849118042818108066062546111646686669090464585142289753093130028712782702973317725952248768677602284946329582030607324646880470383299551923652892918339116131003661855441142773469668901386277398041494655024537272440631438425201253822382375183159101130240032726978269518689303056908718249473436497225161775132211908991254578764233081608184612372573699933810603297806948887356739532532424633132813437597622010771240867499133636032318574076288663913618653660020189294779771053561197664755664592755215694011648853337033815306413890507239409608933646372834713810358383455949203699533602313267938309541418254767147817690378029466979972735878690429701141451662710681299325728266585071166091394771151731478333218398966848185341920373725912261777676764232942878061297824206381405523867314170720853287258005903252274620733477435982035823090793146926438126999120587943304593227858057437954441829001934068710588354234096328241035210865527314967318059294436064853273544679739532892771600782905175632946954156955878859084462935418356828891559192174620246836056314234768336950816659455628211363950072650501043676343782776678753090479404205490495389964424339285248458035471124470260704744826903912234032960541970873635786626000723025166474330334337188712640943421890124329418368125472778960958760771395391984166758179767395439836375827082363665883572877332937046103016359693973161847876728259731758553090041223606920102296212586409122403632354675850680818895294232732998954177895246108932420932190663404991389980310326214032629848273181454018838609772136732479361868857691990344201923388623430152765888361307043916449985481951106717995660016535781771534305069737678411285379976937765731022813925977821973205739235114198413248208453836162923421320884210688494534724698118732416993087976720611799226821155855679540082177321745225571611603687263628845050940974043853785086584503084812697344581515029209604651266422934797273527970661151512645695632269813603583346714884669044248974367233463325817713463029537024383026746996997896598873196425955157102037056835319484837537853232440019092768524807562225763114751076717993033778014007572049851264619161042602195368479594964068150328375987572432114684286963984511016998518405216041627772424664580550419010483673142507852382811365010495664942506135582588636763257629923755014670672246671124008047456704037258020480561054363622281990033362162347647298573121559916300773834459880042322757227006868091575208716019872432191737874510770290195416141753610854163679782678046662299817711361127183945795195827470733693300875768783059150182655113737404454423474086432247409308637458947042384858415873995132559445720811191241669902527532774053036940331673638285258600740092841886228622567192494677280809901224185454055019942201942342766193370572508408811322861700320049038749350496506179722784810059009733703494182676986720997160318523799046554636606959334128898331246505397886600525363069614429514657799410788094796461233227583836226085224810083272590297796929129101353519869380328742004403174228748102969764494351883342560377529659333298833207552465362567555326528470925205979828596545740616624001784832412626464159588639852159969005181762797224370386426891965041952398615029818250288692880755367818042117238246459210368071246525483304808362497220299927532334341298852322514359337957203171289963560430509430995845616300043883753075656664938452627863019158825659610533720345592175589949381292202810460530257350868086380391072449513020436535161166510202531795453177920070568182175092433623510652674717750610883897403616240324712833375580742038678007830467073521598072689845323008025001568769911633267264942403297964531419623186483172678198244810038298386185982217892013613753192820710689914167369622171358356744570973496351217728928623588268154431462971777789579083410508210072941053135008090476059481659114994739298406389879591679665652928069501440970508549742884185539417922749937360165325391929404055715897207019744007692948563716398617670347677598009184229215612804928578998944287976700073335173006271663062394104172570782823769682716773828824103493487198818745914359848720423618850085841872766838720720367818552177373725816676920689997587677397460555861588512751875118724055202440606123040619341838933201852230072453832627142086179604494378209346262952817660163490640383904589461445801410496076191183702441737529395323215606008781647187574653922287660902216794702205694776377007251125279725055656408165831707674615472354475457199219569951695088778242825803136043541474096949642252721927188859618539264508575470195710359053199005152644913910488990293906687899034805021145440696886132796151713634092340929449847757297950569047742713887314839554997711292926512574033663246516250164779440759171569157925540513860538102472184804300598843793282336442661176233322194554573168195890756856759242712789499765649104798240262085532626529372958753996696868330298967289194167792677257305597332290707444987243046824665838621290721094628070755895965884441376889508985263277221606321157365497296567265833541175514192929900927173311047229218243848407755566048011958304021566943882247021847829455199951143561594018209789385173704511780733831221137334391957906427801094495654064004037136976913643075345422437193872097478509790077197245393656286942188054673295750172143934783172285250093727589790944178530124470699011873994363733932933998597620497855511461249157990803613335774199891460171981118781460086785548221237273988234113619230880988551435454793279601164033687167514749509608950850163966051474479881700252227641731695108269461526876527389236159769489453108844596569742912697087076726060892390179218552704179979846231733878305778369498239753144026468748565293771855303470346070700894062834009851151716751674562308155462844275945033908876844155534396671598839872365442234956310391728685767353404064665407932214664497146667145753319777615148189669770457217763049146012122252528489834893205159582163307487683556462620345878123723137236003072548529153509578791254347873797094018186934491641200847400219430914573378557993347173231970022994933868269927444447163755072059725792953053574906578428505795300384329298939181623622120144935402437402230657976661453168525363408144079315068241551448094616197093802323869861471251561033474964075988723353143955654975401388917396024868011965960485477198419620946146591117961854420238655215589888282093562696946430537380837314618370296900836367179810467946235509385733857230249363937781302519451069871002764697147178810190611525737874846990522277055927993589824627956626041890720638555143878642134171983742540583627395240437629314337485917880637856039142063007929366384383554941312204640285646709080065628795042036741203372328018095898634971641969973377714223074836776425501293139656960891241054645842866877458587075598735594075078835001010565194579975210140592254467777705146287288212709544608196849651687012048434978263690039584273116745074591123458002018584405253532391074517304319559017917800461814741258933215152492070291745191751246631954044725308165655838820881977661353825519872093595322133886660776227812151603204185198513224210713154176816095410019530383961504077898545872382113890713795741259539358057464678719582601739121421786829723337327355850369840016716564879275650429136209565994842995810789297500879333642196488152186807328682204362804574674232286015522400710385725584033585979621309499954020577278610083080810163026344093741109921495136850218122948552140886603016475211599131648557933846695800074300493806420654922060730725869625117174996486180831528775357613491537399181183124745996449913363133453914698465889182661019136994547526595201259466470245808249559080604468196494828114228573811419690546969824336406973392938789690324938978623842118690234666171544873175071118783526117419151735489269458632839767160806098699009936041789655675461464775304784975941591012327305675468309146480204297196575637669007175449871376513142499287466108962632501844971426074699625690742502744378397446091017439642000878123583330515738045413716269856496821369265016312528909974116348379370249019785938505980906008182574664268900863831487371687755346957865337503216649371407409758966977156545932856682350768909297532678960153371008797997225729750755641183971806075612786145445908601459952610115398913307993705434164118265476809849564179461992931399093653772790415167038859617629807593747579360477847527607159832339398074695513320688020955586286644061761188959897535896370742304646316389237339911318626423059377973211780530041951389943264310049535214652805899492534360546045326051874576013363099194772890926411614173107606350976485829051627440380276675375636438246254783256145804608947346150443952497033625693101441204954026142064813882848025336510913591548894710891795434936688767605088266479642733880347669576260036630937464011894637580850165343102646563288880546898258238870644250245884813621810213631425352152592063695278030974961839271588395644243287876923174785149629717878473923863806616290039599959443657920872685997188337396014534328297368896757271074714590066439231687900395173142478740674173714555751376264435161536266562726580981372549061927742238088124692411429519507420049611492438723278702117301890342946924868307251139797665884460238492418260347751954630833188183616659105095668921881452101549862544036414177858544890944629018651948475017238805838107403763760298259865397855140621703559960583860675126608583225222590016345180344776928814684785381898205267150584641131831751679161159764699989471475148121241000744671946997533665259078315110630259506988865778617995014111932367918023864000611953108465827277182712074586152609602677768750802366910854156310140401021468144899304517236922213540395832370879496377442435881870754672695478931991880989015198649906142189080849874994680803589016132640273264668404787064402847895690934285965179641077432289046221464588240979213526062928848345882997806739115436615758312268037485592307326207361103994165343372683348902833058338973039091445460544397992109899891247378347804258457895464413905527755306500143465748064157098839344664051755706554111883621847994430589369508873906838011479096249471282834986928225306591590133216955834826086786784704242721814843490397029704551432427588034283667524523591211215192399441629229478039169090811590434174991046434238394904810373890800109879672696008684506996624667778587570888816103350511633049470815572534519034667333453813051321170870160090818273877708806624712389337143872203410666409777982002809791230414933520160435714814729239346466475631933507726633869663974254864404902370181433867575885759518912945079000265997739566157108778120255967349932329202635840204332092858706957063061932644974045886708681601254718478572089622924606638710702866207374739810015966712231314916637465777343979640988792583583337706337005738205941219846482827881940048329001028621527397628356835453879471622523537282330958621027051263771515663453213949148171757650566639511467195903949634680421062045576115365044695176977716686200383126877458676526182243280740140322275632502735320841093314097237469961033754830687750660269650674926572250753187801695044167539365190232063202587951114978244156134083589539611356359810723029379344369800488505470357960856498188072570377175918699226856798874913372172684672398821947406773677854495394979867331732194251871631486223235593260950790793071942281011390293677822609722610054406751485470269810865727786997301147265713531588499343606010887782511426573788939526063066629113799424951515322787079037998174361560603647579591635631021837770792260481686202967859152031928069377832554015395470799059425097375482631128369130376706661829400999804529053080686114249879827612429320526751692133385695099123813197652984164101957773854053900400511972198271212049843653437251017801406942691867777428178938900332926396028311936914421209156462050765208987179441334243703647498469245355709468671590555930170695327380152664180471859438016772104041715320400675914037479707558543680371138501323491497784485765592094972302644630047671358523614949534141970142186451589551047476292434410499945011688267880898165021620924906571134660423276892691214966337435802782922183305799585830776184699767206194486212909737065455471005221627372817090670211685953516407330128586399733408518707913361770544021426917359470337583807587568728476924300935728659514801859532388099017072490300381040850397439682539436761626666142974093399968182383825854160849062226957641205801710250158621841515860519513631041195986858245233837506039672010087020172198612980880167946465181551433893580964960250008822679103924512224875172847694458728596016530356919900120898726826392279928629217288959232790915435213347833236561230852342244028206704297666004984344185547065408618680620501793464810090608173609369892479394366357639830667479455566970102057447565548294210599950401203665436594849182666100556135078086867017844064791462870837174257660371390054947941304098916297324055991108898021043314943926410550755753301661763384846553835727820426888794473826244389253046414080074014390887661513170552142791487293792193535577140813267157245043794162592507365877640501508817682391768686155252693437772475313648037995673066172779215412767463108903016716813819404011041349460123129094741771296120137434906632757329725988864799566424814709175268325239058181562675753183450994009625787463496440675669052344470902109108175026644684707150324424979601372043322203020128790142087920976046522114724682886361931827710794751601540281402183016532658665749874537466436207955457984478637956880686445367556423468353112939231531501216977989818951101296121913285187239997584559084709244731619939686045542282428778766833784612279936850031523655200478111454681951145857334107393024112299981039764576971829894468703989302572097280777297969711412833455990081665648860504576567681640039748615424861788229845577138261919237699052585660615980812088907047304374243846190667627733421993573389391792424370934436591669150038226958138020964836356325591120648682259503125673593598705615156258592799080951760411548728698155704981417114879471646470701211021000495199879484151943769260107587859981180791464962096684040996900156573325826746048378356901643350026953223180666794997567905870059814298123942481526688080156187220640958584823115097546547614837258300601905300294310574021925550856289974502814830061342133865485827892469231106346903457185938217241231563202336620512646098881572386619755003500214843025820855973317012585439329420679353706723167293455309801357395600838911690613991792977160899006090249004857738143799262192412502052484746559909444177028025687189877400429426598611590871611534371782371288805378024697407124027926759656509616129564855754020619778389979614340125010949358772825830276763406930803262265473612259033845818739007404822594490036224064773510158414484689122835992139159418155277908730712964989811774696211881857217569435793218424648103759143770612078739172620709788336631203819416177045572704777261879585041260158205522999789061713403320588863774842802412190298302170661231204937975589236516422212080739393843200520366495538024557874632626180301185069704425295683520347985606360504116965993504660433966870414806039999243391964043331057011654294081218057400334112042092557416526413889664718789140592810749342869818082530568241947214864466308077746949719809443803826841689121965841966579908210312967145934369464710760799524489228754061086486286187388726728225174572956655145894965030749856403170673503012781373676285638308049799725423754991025862568766319940430074097933788204260442169161859015087947566797687536182779343050980007067757422168041628173460804012252091694599330814162598515787134211708090155967647904466488198677550613681340804954173043991205381348058625008544522380022959438113408683074989020529947561155095129444007136530409868333639818883174243989553783608737238054721086800173891648739926281941825666609558933247123780126478583315005238657428310567589189595030539409642386818943241907936525536366341732852661230417899894970435579897377990119387675118261763794844994604408290594169512373983898646575850882528904845665755737864977250509845089982804997689813350450612989489194194977227349159309799354057536303564866398344458695276629411385870738276814399353787161467448141185063319413439674164990801528942955277481200256011280563719955186002184416358451311568044701753294402067471733767861400677275603507311943278779055403996660024242545490385909578406931677655267359884960665065946977089270198794751567168702153984672707254631063742240639590800049695802846885020481170150868238987565996021492463940704462075481626108776535637276615350047789780570531752996439217637349693042772875787629111048224460920405105252334509943561540240343941693479000326498678155533228992236507187429974325122032464272717300118419006226841707201192658455998633928312684390291465150015450708047429631609572345097564649447147958893996672061748595788629800546439411302205861391969358892868350792441124640344823215298964165884681833652495479928550742679102417031755663181561390689584505343396058010285486378106797366184087454590866684238848265528396766296598420008904822814593100349154832998962294659775237361468613559316331417226430004964204642367584806574143734861800526781406171875979870305314605127191842264760725238598691910127430995457392420171976854064458297263981344022490181147153890211157336772555539598897119377565538340586115618552174871969447868342320926727562721680721841766026172097648889719699817155263928839914848907424135209424264831454290564549096624643762847598620565149997795230651508293918377848495395877550393836698851641079906905069877862997307195743170066330483112196385889613862904597273631374687184453137591722627211059034895573691709318452322282092283003379268335250699626720155287048175661684854395878216397510829147608365027490389098594382932630667637597658637839098285885981405043119905096361660965236751590258655393677431749843422804464894154547632876398879585291038360625287275532353611499273526129900316740590634160656023758228153257299803316105795221726886541479421629341301424680497693654285226139248810470242699403880349548350093322659592356935913020734686156525147282822655238017312541851633560724828213883935602146973486813038587793286921521401856632082376371821514097619702987079218385804004063122819162249656532576759300785409591291476324754326845605191737408191227771153159650729940923997492691088938231748614574465845566187149162778221748957104340874462003221634283345598382088211964665897380817864950249224090042079157048857622305501470495838978308714651834779475225719325299918818867412430996281942739260322997182111663536072529738702211237963652189440571119690339531314296886318304911790237776990785352962886270923760373316653807233296971374195717543113706059263943559876863376803280341361757123917759095241942803367083035521853770057230227886998822969131626360102341817227556832228734497430087888580467948218154185700621214505521802282549738092660220612301110401281242181020550430023454716828026031900305526445930843834069628729296831220575137162573509100428547141224201550084231086748334289638736615015872711410591309737825785356821724711824169845217702609869276257709730708410525888704656833929883447276786489369044084151042918689939084892064018926177801928225907701987483024931279033056776062883651186039951632968834010617646583883167486272165259927446128198549772799716513515914721109773779497651825950713857732835475713228463758649040778959888383096267215054517830883131397462446182386960559424415934343969996310148599727695235294805026288653572035780810332047640830060501152380486858020625480861345831616686527037947545063767371591247194609923888854501319621347990950982832137690306400883255065782402433989972523455463117342195163404130166382814994938646576806239238983064416706813822661947777631717527522817817449956389742082710144149421108831658090610468541378884802051310301237337860077454105028615806508384030911753242692177346127816981362993262743308431697336707100975842527218544131553250938247763619548888288823045061327127169041273260803588337502408066480661971740288414570880087275664151587218469037510289512869626062642070833295307015173277403790211682996707641968156760261914451926040443154344439840781978938462508314762303867675020342306469044102614576656820054509443488867479868145550125477490020229098236622541787677868617343816485277172590166985671558151263828248616173833744326309663822997034655651118298523563997484957186072500605994079537396898235200819986014006849279937802223811610293940573266016469763850253986582423623680608752550512289492672091314096799102843270953598660426390388304531324367727438999150348394609861484905076126594943918906175592876259347830126490181943698812047511451731357457862571291823059195051226893564161722855116273271087798418116998325679798147072560308589079765443318238240103592374684948021091944490299549875936245613619262184199489404749411356722716081592129937184296323677686853491509555810207867289607469720730357562714998226298596216384023590165818563148559381447558391727943835748336694779693298248274635117853099921760311296725028284608589263011815955015775665865512934573428315432764317870370763012608987050721550158265959709507900229319778619709288023162556740167441918534654991102488259840489830342923638126058922426788066156106576898192704591314414796455077253978718933182552716345729388137570802929417667546032923680451404329213654262246458547238939097266540552672228115022033919088080220481785287792153909504537884862871311031274270398034807745217421039903859712227180865567861140879197179319959717540041892084422447436374069133642350010023316023382297567982543090092157145446198721205449970071731666496481107597405965006140844876789754979159838067417744821726265259851630047030511229456717487614584831556643719092963851288517895713413679523939551135545556248911790967697978267037133021144225278114982813321295175226545758793015366307339237784799539953211574488740541412705054093664561446892049408896772390665577606572034346975844595017523169643931492241823773451588863551838723626600076090050366425741452844559283002752346658004368914533993359926732662696964492844014007891734764193615496466607691051309921606593869165680538485026628670605935929320520722553217992302157256741918027236988783772602703293541919032744582516892929038672582695568340677118236609466809200428372961388713350953560318435690391605943426287746562658216722938698558887941622491798639443650231807292680663955449143386492467838373184079689586649711340198378227712850461202680073337865229096110855202426777624998001636620309300132787705135721282372285975883249493441048466943137910135394324579016846881667064696343609043933917620962110852192543397654273005367346677906693788653268761075417304448574876523059466861197882497695527673870959959809039559897530044905013359404691710989645706523245314332960891543657750657413423452690541914291137674286111317502102801595131424430498441808812489146190501532044073836642491838484742485677000501822318299629975602234265589158129038471134560487782835237006072077106002406510489429612741946676483449641691301474848445161936507085458586969335794203663967381098898399629658196217876128561056226279419984240700229465231869846078181592035915842713575545653652183709951761194488232065653338217740008391253076247387561642163949614206357649500835509444569836417773069384623406228970620537606003752664342531613118161710478387681157305656753188780664714060310673463709285942803425099782564428754662390000230039694127631960754533736691588739314747603136092094064906259913635446876941012327829915091740047436882687173805466177583209671580848741294583095421416622997822271079357476382851814058294045839642191558441102656232272943368564763611330301472014151119523914803939906411613519102911386792934797403993041109727216568621879254876127035895846138685422373024023350760806391002171673873319232943718684457371916443589019063260975630648332870678510600943725457580060212149184621654519966178540540901891884288333463820512780811695052392948331520594324002050859586135984706841955472573448891319906124165204405934857150943069417861451403943851993281305156851051087967704211146064558261816426637896324339495690382443418382277682770920708756383483877435904706072799415926885941119917365272849279356598386723144689703180496389713769652170765137527621958579555322497131728941755220546290528095042228977161065176962005708599714149633228689326530510066502800304603091340101423144034333898855176728703592606326420369905247382268243426014868329924553828815873765468508789558282368604658718843487526791761276944377403670166217605682660819326364751381362999307891366778085920335730546858610571911843443245643774034767342699105532310852713281729706053060762371710169993757414464180744750032519567328098780082247580877616804040403302138807412110122133086328707762445756749154835634295624923345333144721699918632981593214295663374310091514093237829659034757735085439006611576980534564370043586024957190806599658195577343007641276551999541362191378780746994994698971444298585538391289897140330660624576572068699240107980873171751856695018528375080005245174639552891938393419757100953844982917972756140958555809471297725183710520306242146331707684765351553315495730210475253105188908324100091877827456291247526911232036192180271601049053687013643950319375901780035496289558521666016291817554808254507162328396486554814646116693178595420607495967528258180451516662945468214768534754451584307921655281468234673481828699263503366458067685981505052529205225066631079427480837383614295829501045161130353068593942712110372846168843430498765229006331299301411688757997438930189218055730500277985128515463986972775193495377989216713517542941158416466854909981314271962111627386257394164399410542184296125898825952639690577673027400993750352083526839915896163162173424986541918811785045688293788763249458217370985628096603424400087085905650471012845206407840831145399143784884973494116203746931155411235179135953251328259561458772746739617486812720608537771974930464013888422673679765592566662011128229555860795598069992647092807217186639308042017532356037558762877255250659587728467872278393607132342618370055868586339759403764366178706995948210111283653823465606084986920578876745669631405296365428462081913230497812120648272981327373716252186335080419430800981995697194705770743317901818597148828606220985479372483916011168020679759842383164972647885315297277185222903643365480632314239928331290951559793935196719979741115197787522985270896144980296825657148516796559601163189824812792834330595357074386651183972557303243117245007543614577046763426513180619292395569436279779239701043884074899501991894693718824346958619721762570900520257790803249627029270183663630403909091521775960752452135105244157995520374711068136908567529343839058005823803121014499508931701675862997314548580788999568818831102201689116749954138531909882492275079683250480143021266380353176294564242559517385426914379014046444747070318165608195930418904958602814446307802461447059834569550962953447083942568980235145062344480767790552315630875634153031567810127056498777559753901260222546019078890058378486033610744026755776777822191155059296313955630552128581812094940580956099499960175052934432272041701068044185088822822159709044177323063799560675625622864015057319016943321916932687341690789921808727316755551735438159408053955252016105126203708653481346032749828966791407776264165171332382860004629509933929563238537068207562588601086596725072218847351009337298519327882518267289388278093716328071811965391036937604897395776198501685379372886204875016218304789301269358302543397131906600020741976040779967483544990924927918647842002290535226565403019930193703390969899102917501470765355768286231822613133925648790709487657926221841748369206594294634659281636479969478929391033634422505409206840153243505913452854420252121813165761982192788429032765672070977553752783516010444529290709800688206124037054682954774728660478409522327626473339567740075834558611609684601060281489616474330216730169493547873549751305901071496340719900324113343919043201873738204135254151431932631428037941470602980154896397326582390635506607608150689735680800568252952116098434200146691384263765105876718176142443519562174916917341674206288037462639179641277056282096926326995088913731950102188340312539178074610904651372559571380348447216046893749911343493311590154918068923433828320773533292120518504055589899435288651220410010297417616236485404242934833964309536904606530661811078666469618574310694567863957957865748583068871342950980845864697237780907317881838868729246537340067570483280727657707330288019671892555968076835853762312456837169435759971417555656144521487660112070860230125497893528337808443697314492082049012279541994707446520421158332155396572764935933493635075033778911135919860952565462960794536266289839380856368428172600004598083160548707693570022925840934486768198184834165320953302308837444210086256324352299424148350929151519064251622380076575280091176190107613260898738909707802837905443373427537530475441919942516059691187277204626144295228675292547670885205364974816135860355626205915075460833194192598274283483713930326828874050142315067178770125707913673800404975262532739516886711279951741221341484946083569785034814967319091043811345367414606501433558298826247689937293781590194282794788646799970470696548011433179109095154339093707840408500493839851380686806852163503199661900549693529351180154239250060646107172979832474166724443470518900434042080989023476408907606670537711285248257217289481949295054390730013651366742267034976948531388952192409594232646917129895749310617855615977579321994674881925274173781108703121538951476669871145492565512443127214084589956445826946479294669317245300975841706839219832226416376776337009170559595945348902844977532344212158629134765838589342859822974392177553675408425755669515439526317673003152335145750215498945747493456746678835146546855398564148137483714176398623115708066079591055805529290283152934578842948993574575717277996103292909193988712107119535812000482020791196255357733228694433906304973134582732623739230848213454412198789181246460953785692066483118043409240554125235560650340016920516332896809748462978454631448569778793898519243405516478644071101962382339546522638062172264317836079483955980064397498027833794438397429390023808271886784563590158290799817441642855003630401391033407094369141434230148160356614065644353429607788411346815031432834467158546764925871778698231241712780655816235990904561109925479017302552546809413257592245978963668075231967009085833783133481480036277710829650820329796262881164512106642664084083114801833622013650861463985111334758144913501502269490013175137946353658296209568713192702494863305679890016007560858340970854805630362917247847583136531849965926079489406069253586799310420413855577214348722412580048231466425314224540847759421719269623546231967172081836510912320839355433047811657046691365834326532507753063667540164714339649877231338991836040274446675953916103039416802057465029810932552803927605656268585323087251425687987302827856861933858513418469993457392976275117815070356262027966916125749299375110929712291103048962511460444321171100083946229158713021364494827790145674956365779371960859007608450356619677640297440669053129708746654840706416144531679588103376873900347925262082985044959734381568019095961838829540689423008335188549081113300158594885917193136215561798693459259022983287915541374047019955463898322309286643563305755366501707922680479241729206218120756656900697825799567999846114552509347476584571237478758792886437174616071971953811737880104128465501442256554717300919297365667479191955110683027497281060304647756711264900948541188090616956175777956022268584970678567204373009580147019106627871192141837008216234609360025167282972245319632464279382275165343648278049012869712487434893662421492186969064008798042982274237114819907388947161671154360686026478857636921828542854056322825706375805160856870903521327507462008942623735091519994612063696667255928520019577682576644161196163402338201740434701345039191021084114503657268888869046849401453025348897681389035758759494873870209324728989338084340017467178176330385495068514755536344716260386772071121384126967167309866784646909434836407789751185169260634935902984599133363375613199766108551975315172812763205541468360235167095720153783896820696978670464200411194962664082713116430898565409502914161022723233163615256535519225622718578325517277426537423925429933426508767914385507442975984232119098733843117130931175459786094493467226643917333976058341355306025452917259385004277290240892758770084468195424601397073201427530660315952254544917977187740917611834695090424158621610437046293429994487909762071773913622576219759166710034543269428924098981848930828594903785881921034394666285367111430212852568510178192956034945326656963742650189866522712398686761235331630341259524547804176429549524809390091941981477159156628427903524528323736434660260194413964933120483735267253391367941458964383564899215824413768133394055229919113537904334809682745273596848946109712319502497285494494838281166234501585687390804379534032837140386416189493247380655953578560980390545524811449742848417289261657146736568843927510963064424412199588454030492637570673448345907568002521950835665073059760988938926742647544461082257013349432869769252620881040011322446472881712417427578294522781110779126958643467241835013881335985287712638403945492053352816406624302689035915204324742550108138567105960993061215248594184337552313037063098713353301568832545425828993029270261541168650335864564250894499588658669771546328767392077703403766836222598587088618163091792249878861545057363007791127209223918617317645555161530546630129665985171355751428278287605654976288648747033137351883931014450240017737257751928769128240513883826939750754868720907574114234398444218210577371605655181540746524738830308532618118445112805002298385396948289384698140969499535707413088742704118100739182222720723794100742683300065006976405047791170264223959066812881200458682095629213492901433331716954903229042544687583565122331799050878300449566004760440241745469303605361272856559755047497421839760012861416186273024650543420715231700242957085284856363390585693854037580307597007875328534060841030533034356877117995783367562881662821655410844422893717755298108586723582450313228508652483161123166557613987169591765169390226550004368218461970617580332634008791836507381034362369597251237352170100054038728760168701448951226136448535037044472902963459233312783066670276925011483255319557836581423358600083408833708182794095341136365264194606487661842707620183809844181943436087686432643388611138487628624279184858046883673726933619416314823442488468243689018871376308263858657355506014031862175235077351377508308151132943124594084534877698591063093639213314178265095165073864969240858930786891982337628053230778621244137095007130855193404215632198713743654652136227902017125906212997385966280664399929071450007991470512417790891939345696730860562211929509852880187769003576082532170053589065241650052955947800675377602586791731250436432849013939994806475014541425251601846282170299768212760176732428905565135421972226803480528445122476701651202495324501772310139648273959217564545427819682777869163778088886862680912619560720635766346441795297357500381965883085848732994160002898955787760165091677810311703291138346505476856604013023224558677910171278522150007213807925228541228225988743087332429164292041545299518559166949045105781982480478193305479597266669185256260832587210122099375677986305859162643157296168332973150264309812534635055359714109453180044221195849883145237414922114064604555252012599040330299285637156342448877304856196617113017665347245615235161120398931957086355278649321568166947019007431471670748534955243930812723428122144388853307881139797907216739675986132792387900345677899044443779159055113495089773770435763195447117515093197193302587681283306337408863825083725743112716443473274644757617532616747399166512051913495198453436589596038821998484489194482445898611685068573250377133964673000633541918551655034840687462769929273140497779630975137792632954896954461767123195348417218474318773722164471996612949725363532420808693010943820232597744476506961517619505484071106743310180063577438182863063855428384934850369581650676310983559022749012428235171288035978757266920839154670669986985830958222660990975338875063030794383671475746198591310086435777787814056024039233276186860049595416713193781407760223626469289550017276289029038533184202401468147125587701778550890347738662678276123460435030474598117492846598832634075993977394987272411683977424570120324755428594409766211479876609938270996065256630091676977298629351776954302148456004373361254086084568804219705447357339377269178475176519171765014065171974043908767663574331965181450176453816032903505193460602878315836238398599074184924112060245595871357389412236355656479489739886079006030317254685377613088883033864603130490347101820615890379951844223253697656842940234088514555721009407150556110908048626005604872971064660667287028814668290049434854229260178680467961487443237617156215542228524908705865599086957607605782134415580617059094867095559381917784774059047047811782272145745569104810688391224974546059996124353767443511806646832395689996025444652056759444312606832060782301777023788088855018796718752491362346346780310330266371349096005565842674763212711811123821381533232112867388316993590322768261472598211453225210822627981801627936993411774328274837254344449665768518275348725858147393498198222004673510766796557464573170036079441630327491784352227799664967520780708048871418615354646347089343494139688091093113679010055498379308336211212358999559925270926424107637353390372102234458460024244405341482820957177596213836797739141435849491116181045605731962009358456168103927436960663845205408103604599352780561515520367890834713231930598607942819642311666628571717511364164684149201725719977784964218235058068863897547362236538036281269149257356997840096057836030910146956697580339634139982133427883424438330417575303172580785997917096795944762396080768429147060738213541658318365837896517987586564198481545154956804626500304226544885339934541011498473187279356219169031705835746610606447238798843346884438545321582056466609562481787998233817787898331460988862051499537106611515445572160405998504835328507407746820140437661969767413436199536389695460810296178768893482547054229896841888148243873260519931256610904547938386499235805607044580008480246331354982173637506116123468989435606362525960142621112384272475451687751414886584104011925656375762710963643566822437230403351107156597672744795495576278747454304813292548215326986527899261375939044161270566638981510511110266972101028432915207107329227195869568677126863551865973521272988613643893866578172688850006291611542645400505830698068256550705764116118530796023260707273825050329964082305825977496864436706841922257996785335630939447208076125347069631668729308152979092135033101598363108047087817840877627409020261614698610397369435211321250627960645361705826780997469132083583231468300609236656083787435502684727805516736084725248313958206273946993597317741577070769977262257942428977453357493737111719150669104763906108072573051177844547577972339908549985385013718997032912547888226915203951731771602525847715572226344805913549995503056768134453347607024873368471278901631133154579884172800941477726758960059489991353814490418964612542257081712124343052495372280291986031939951755115547795002126663503794373655484565401343125292694337904596632842510174276716412994131480138118553446674495799033833558374749325647726205850721471993624075765646719863607931835329602840630190283119226850820191902519166073174299373156550020684782422636535644056911491566491406686802958390966581596729350456181837054661138403659064577971792996944044177074325649455930620613079949653261687364634940339315866949493368211220618416357219374974163340820283334175095732759917888305574531628962147103599158017896487415509902001825899844810227074100177862321404968474522515289765842190486820081576587097825495145471507602761194368169513520892978003276892857287977774942046022820541074917285958504007371037934099587229897021360841123852313017064482565794671630770916963974847335870511262563129066757370056082329500171845149613196956580024300235707721719932751013401708436193187000159008601085739327775222067688575072973238346980269978320483812660802776796249834051438172193590319776457807339411252967893538451875233215808915765993577685211580370221905606210892039397930431060054642415113470811687466466434768904701833666988554405180647483266794730650835072767929719470607716951089216729780145779747302394128148898403106899562095737761679281809580288407851909294684704627410647018383683041423984471232459443220587163494278366103061380307582732878221282159805303540246956960937818014466877832225775580372887067362668520157589554161552638460220222875528738069087367805373597481473962233751327975964211183653004168915446307236937954683398457644274249429528313502473588052369017883549349301019836691578067676548977761982041192442818850621391364757510415509368513184907937794246634570928391419495199364878516677996770426930520408020731373564587527247921995627196701122675481609656193753785413206292766958769884755430484432774428611226168302326893744861565789611243248720459749778254412960415620046315366092012811986456820252646957153525512215871767121492132063761179453744586689086772807967865135492983370332031793786884839660894067800957332530072122201160832356081363288428369418066288939309459053466405025682990589870852803901671108487814852797379132059850965698626421963796094855459299573742349089250763453102097470777372592554542512716053534424067428866434115297317988653488050780851908303137758846981466320387764190161688310636234723575708149777876470524553695864233421784780381818206960752532526890205739521345226448598999991842244410346506782462844852553469231610728846643738482524353455707765552868313058661991373439718020403002051883405623505619140756129922589583668574029196953798139164297814099442268501033325778936268741880590872433751925106952072828903380394097597879673820878939631809617481488717191136610576714454457171628116735778774598027707428800000947016214496702237260313557228331491190222371690492784974553604520477700025725654765442915827121659675720357277282985685068381355870685037050254527675176869129735452377799626703841553157658289145453821769411018737652540340791611232225809738568172268812452087000065440384338189620082741977973868828771020430311988663215564893044583527970883413404150759866137195259217624903054513281358603867906833121686408419460933797843516707448030635871149985550337804433647522562691479175914365237192647557501702843144614390599490247861457835185513955338656443712389153080576196685079130920322600868106789903272445134857212392466021836519219642027277104520069931635504375899356749218491598008346777218910050450564632555280491950867901748624870669482175854843013627401468133403494090881669015355159508644281793263032736041693495311397016323020565223525805379855747027355367002082890897915766273070334988405867471849563473049905200380406038988561207475767003188375525874036275037050039265797930212389076093833123014024969967460635090963579320105572866687368067159287968382811355036463671360896575362180885392332775489724970799007492604938301245346709210654017687072781039289632316753732163065614185254155599263753699264681326067863917841205734904703853533275297986879537984865895384137989402611579613761775389803309676095716687653426754411267278785029780048540352244021556117252831658578532810895517414715669476538492512749289153058959762558838922720834051661560407852538544956649423201841494757800057379013233262549644256801988602425577145863421532993067083031476437668588377187548085270190455013075225553311782140448860257663673435315415026782134086284935965859143217494057129822378376055633411715657379942750870634714327024719213784453654587251819213433158794260046261523598442106282131446881688651515875413721704693009766363649747768528554353471372537638710382478095255955957287790908740081719511754607838088932068473929461338351099419868403301184753317888415269819000224543265816514261135477792966980661810470363809022185631380869217538456269945929431703967399966278637666816657171582779962847841564599523688065731854036561234805673592455167622941134173297156082483193219931864718031273862386605462667307865517875446027166630720976775409765708439810690010266018996581766534663395860331895103553353888125318710884162655051629558026369927246193779778414302332802921345707549155141479638709439708670050192645180415043536553490185364384999241406311260985831946175752194530934003759846669323879028198429461985608085716554348199821860973407391842288321198823022292754527544951035266572881955332207871986997200520192978500713625514040939398484261607016593934995801253066584071192700002468150820368080347462984694349539099738548642700631455369183044193169161507949332293768499809027911317811112119376719958577447174671185166486585628390897521362985273608238379118865091885376543818912620310455442898111240316200665088509142785346680302301018782842752374129345893519124735924633751519214093579030489999433936001871720924171182910618261341680014428502183702790847565253399709620494850288074593169865518959016796128530567041297450288027212731117299075284150793792668590805916620543261704826703050318947137485416870659831086452389178299748086930063387964905490524828204343901509975490652924027744993618873796979847949244529918994083242497505273057287956876753203656099297195310952943530478649640128540423043754237116177634601904611981790618539451137189739883908909095989392177195487347741619612144192477473142896998602322663648328846559612284411294711915148175673123892392552505096382142750022809055120320191945493660380625718802907191615733416223476102908033621177110624405119401968118024519234026541783044533661718222248720253737829852711347695656779447739851021412609729192621988891365735301199855120229727671154106551166802785127159792747051300326197147284400297441120728801478506123455492744407114849197176057896953064213744677332156350253964883468783611715061758038807108651079393419228428987302957063283591922188900515041422351600984233730345836711851271316835289546543792122660613688451328237573893409187263173567301925919779018046680274637125037238517663979324727044729686153341049498316495272426844521861638509964684956319291037862177332113459263352912031501957272037487461139933648793414643724130576882574022423668876688781059311704106306725274094021009807154870639876702944631936083031154515300245419718904225236098693541907039688137137917854848120091364132841126028778116073947408675243330242933231780647065950800902153123686965272572891092501226618420286450410850114061673418111732601138881285063028381772695471030197877309920307054964208017727171932025052148772851448398201814808364637260818846337581547872962781546045011771908455859348170419163869467340654074147810159372626506328939584074580144263041513335513939601167608200828341596904086202726946432712563972610541266372037051120716131857316129317880915595496746181038969144749376341321098751534330885435720403438144058453410342825770674735236261354862249875062148599008993040136686584305513383062837762461275854218264713632626321236923556090354473056486061771671918817155008781165506009272494806136261401388592511989260350923596091170688330461721808232715462304880827356794937461428276501923430805595062174378265826094391134685539283790101181509562230195566540119890988281963866110675538612631920522712214333076818460028126781860289668022723175433549886490879741014993493750935056020996959953968086237972166223076191472298353266863792490215719530573985418861594787930990996718771001696334922821890301810742029907187684432180084692155648102724092221063832811124774649632054853263967612795025744289892143095489523267394004892060126452427240056992082743271295587461303938579562390057639905979678656789693778568197077366052880206642601964890322995044394259829440701672953458264424416978391218519597264199852162634021544465683591183892837585374644903845165235451333122478025578906626084531564869818317694327341336295922884415678434958032680031731646029063788156994485965087797732748359365007265701429680100127818099256035187449687775144935054146918153341801979598099761318180015873498258277036012651159442081975755639150258137886325302206857132078250007059717949108830265054730569149893836883222104293209944342205767138572831208706276401663703840619903242991931558912199399166634900036563469131976653394632002086627462620103922872849280805097967773383251516035691670638344445797036929897557130066192079604846086045201030917613138077100646639022028520165312729926356986620581906259100389305877445953226477810755231033460379874088896894816088506895959067010126038697552712758511886850819040119034843436993492063564102783939773834717622275017164516255644577797915220871859986595350027830873461791151946083976719303675602737959735770718636384081706213751057041640773061015148924370933389992108865031800679650598602944541642928497036444015467408957999925500404431971269475724764084912815763707343814321521802018707358442680381102733320918254350329118400299358419708665350597550253288626368794267969024591841039558438531700823381321684258471040377742529140359523942556180128324934622568677872948886394809419194065841355562210087405198212052644218204446601988449305595609535856136942451782929535174652533395700680116718320189336676552216921810768933921522047404725841978750345780963932868955312472795374710625889199291524958774097777959917394893233273100289269184904287496716018257184664072714506483421240193054770674881122019609284771093199195376361008869063357359996308925387654127394427483481996005482872372563214622903966586569912795909300661456199398028200295634123244025114537649527717300845252970526949084020558014508996077838239787668467865268306990669440480412111053804340659863967044142568602552262804989252402013978399140625691513306573970039363612556654829138545193724747156243822915223928480152987245691605124262745300024003626326697819881723884835420696347675938081608440613922976631390770016849210105136000480368170002082366844594887933310107095273071985209556652816412034266253483963715975973851428389645376247332950530249950703538144379604003898771515267523444041160256506192954801450437972739078625997931373674373397168187841963667571583982384826860050595428408210440641453893333769179657436246195112316496827893630847251484787239887387049203669249115807802634360705127404287227905526725634911919096480100284358993765279726004352902443995712458298993079130056716890051680374247420431659454698762899375188535408037311891270041110618242976188669331993997090623007736721754287029852732575022640883794063199216294457364012206196098928018265074760398978435326056163144100368752975025661244373489097964472105806227938722210043470992895780216284211751616810410329192360942284142822420844513584080110277309404431524093323729258021936631573147766885630519035878035092786828725619259417054677263954273179677264200088927581256810699713252038450510277535331103810359192513240454549227682481123500682446296778225205100310458511786522760032391447731690725873704260732304493468789793558455794110394041745007975141546119167200428795823788788260622524324141457134920935898687416222315511899364363662531148099114057614833300732803141741565508161465536114481682930613145562358253530287689634909553260779325674838659176080196506049126643775590049595179923596979328946083595689877532746268672204710564337132416969542086457670242943350778275507801674325134742362982742904216820865003759912109264593765021952750370296667918350565329537915592915436827135168036873520819085870092678501143562049701225740030317831277030518652359857830637803110559679236951755233597115614772139565859915550036862272402392396728332629721590248001924256424534824589268589320364785401802243063208004005168128506884038251013817101593859649998567338312959383309941095831533645887033105806243720074652588154582409184276619492153663161274935379730801337460288720419715362833644138466385090370041450172286584957233557129790503180537821667330001884566775712605871602438741201294879078282285700652580159126957623797081577562724361969251797301214964509733430440697747297266520300381960866483321533588370893239397963110069053079365212170201268032175780248999768133872417881509274197082201270730722184154854051169506991610089409121412114252840782949653495679927453325852074765595487156604025714512988115409901024392672062376687953876475278652800349779875597000189808143075323545107326057530094132755191017703061114823501510647816232476349958510471151302741488046299984601861154985973002422419020483600234567108167752546697392779177038532986103595105930879486165915134162642165014150147432031332092303259494659044585256596069519260919109165661224570233249359833380653075672206615633646623358280804743125811150749000054561174625127763768841117599208934267946699221480011988062818027245110356412048386788509901834045971220147501063111236646529509002718915987953842492240295634381990662965491760126486331359635905958089357877207217605397990876388566749791597254818556189795565314717555942298014245359264423624729870327992423746484080068637669054458710953645568396572608318341186927280995675863877755045428181790919524890785648474828135755073221942101639774923748963321831271832879413822492140966167826580978831489366496174866410388640923374633582101341251431158536523782132115223915947483827086437881276128986395366841238482196174925755744964316835491040606118100007759984236841108150255078221709832808525927921103271772813554577424684754981217391891388429292947698048483775537143396580270757505520923319616853681000740498753976922788889190442511957893426140815735593573417335261774392788043362873099101018589460443500905229315796062557416507822290522794675513653755573694207720618865565447195942739519386491224627305614575795926342040657685541488392330104791703291171216542399455653103075229013027485389381354229803821602042622956842510487566434557717866336968160083789585984115031852996043557959903803029173157789698817195781386002415731527927323507101913807195902237151536345652683343226050126978319172059740838579878773280312494328490898009244371512399163397991097991796201346650518135765778336256781389623112340773114549067927655678879929904128270355471054176010477020251900928026035102820230171958532622417000565110503441751017180380210379455808563990120355791778004212890850260064124899717563756495637143007832565302666533481447698510587461420949179237047108611519725034535446796596312237668803795575771058301664754551471258655763367951897851565225512841360513625974356725794823589087695246992060572954313437347654149998066715420453898634018121888341843443850003437780173372038505996746464277011057824541505267944700032174063803813451526301426321067067679609224034512041191337944170584398607678000332530393252815429187966561508463774241269706527820123234088724188149355245873825353319791801862516478882317741236409183290931882196759513602037267800793316113561255854994354075184584720213612319283785712411545993528037979195341897788146617046125009084877527929133587729212838813329355750126667677902555037466180697332798582930460997632265106140933466886115924343821100922944696037644551665349785953496400286539740195637070750960683130871286424685605705933722938747735579460888363548112370134213150023200808325854109959167988551278412870646747843906049747173072536013572577827237898553796035000708133168805777980540647708325572992833519468384727638801441580541535962021941308630945395531334279607610269362491322815909538767706596796723536104097731777179242413995190503821553214234162770032811541678176487165311679218486149405061023975312610383916835278609593472830621709479502218893603302242557477989621959303776969143116327950705967401023677397150634471101938014968987727121693013806669119192015086099964449490698104602291099696694408968044974917734438706535259473201563223849593055085286897121832089443224058718152293427077544821416208291165136161008432122922777851117237643004066525079198040511512418790985954968155339378649608526853564568325660367775075923441388236174344924300841786171913663929275091524474125524157697096432863354696293364252612415306012587438507215516988110013845427716329374701186926331960325234835062712962936503307690591683398437500979958791336299984326077291224954064605878009893961154649840293304211444658641427118369743485390540478614471090546850979927683449354030056671018872691065627171689830930313115824351490762749203424092489473575118186698151598257940100133080841199487921515711473105151327676786353113708803052735871591550531962832226837583587076926137712309000063260330235343682339910882639891428900024825758752320727716223009086971359390381866977003688903666645413157238137278973141300668972172072036927456724466119064840168961697036158729304106995052896342689909946073913817942298261864142679331087518056054258921103890222532384349987334202650205540453451250980968512070490107119941903900948812683248245019966007567507596838681519908380375956216041189302593068407213315994052447129975513716617474674597033419515609051649785820985273033921182203710467973822445359779238347549628425759882358079332453456248963494964244888637450165323502690275612108436381260759878132743429871236744879235668388048781840853683117277799449836445106710056371359857086221482647857760381319820268057984807251532051059516630838435620280638744882818962544693189286593758293926864145213578436384072750031286809554940520156573969236931930066668628539911395892064252684370500754832693641324670631087099008858455009574789139561571726350267237883982881639425215270412930203236217290196005850495438939330122802276896362185672990091730912540778224134715383643144553727359872070907122094657437980979139711427653751540341176081056586572884504082201197572222317628095765280695070691115348984886233935671666608960601943482694170707949820289477576995771802258133972966703527742095363882867134430124840737321915706604313084109287227306699456325171401426187509476629015050674305428821177829905534938315961881531928484371261303356873203370074220428284677812450842553414973390518176126970220783996237646876422468429236130500545489016900744196972657543134830214784681876688348784299521120456154721860851303789063624202981535597341121653540055909092535529482093542525299075024227595237020649609757290293462319947891057242282267110242013199153228538765353667014729386138882212621575451232717639271516850971854752850470030897517833499014876254907681303180116416039861312785142109064056279483923727966996534913904188588892267725250969319088858439538213825373889631789683474590672235787556231588622302056611346391571163802759754528072888633580961885494218489414042212438738970886946730944461744407260234990020375006593413222038583809613514532251884387397901844355549796462271046735895377707844736210660145297368112622944243078878410239751587428607577274052863432140344159240192647784169920993392210300397828719986194205391754415769028566748638272679493767918396208516276121012099450037142157445513526918410729035804153252772044881156406466590019447027049800845026794059734337250435582216219145402762656787227413700275634783123525762422298849018233759045796815629222774642013917020342406236594773604274767257162040488193922086035639315765409457691109642441607319350148702631451129202970940698299337828297674341559647204160457013098711419219818254967144500569050357882084421405684003829524216462381569509551875708291257474875126688151940026939834080831491795670893414604749844287799598010609468895119437324721746560785692970248093652468355193590474779987724579982456130074448560495486643062741088752260984921447819219855075150500021960422424829634052781085725172661736062938007738580428488633656576519900973870526452813527619403087535136713946586466227688069321272188637837302365199151232749167649596073990231397697083262480403018073959345873733014324509578089308268010699849200905580054123852075163275829778104082409050454792945603313327154599246608643431732108165627190826986403157688806952410284932799336073238524511971283817748611780704068667392107238414930741289150748513169184049208208625385924674544872227485808801700057330222232143988776560754732210516721822265151006183749197640086939175612480212917548914022313586381019871807332821274362216477122773952077408143571088210279435195188592946720264857586953804249377923768221723035384235010971014476657928679074973092238620841516115409335236235400078603906855400979380245468748300726129318296852954258989400240736203850901969836077510584604444714763824350817990312155908857768764035124539027550042836049325401363358969365579882031547577940587742194066905615867347021761642489512760277711993556218395008726707931187988655978697955832774471953663787226918989202797921490273726697013098093786869325670458663842325567343975663745894721040611993740028671859461505503091862271371452970982826364874295540393093355219960501578283672227623059165221133708235860021180322657127209993258193807357464464320088498679556585769686280162242171895847044343293993921438720172669181631470173465814718664291515843326938601834677695952056351061216548382668575801423255697485076064246333653935438246802525137868931291454993099953859339427960710577318672275284726923823927352515391058366719540859005468326377812192886068506739373287420436231590198454934389546023155853232931997169979300483482876587545569064090201555415189551932688191988469421708144696948015727523300178265949351621439105185939674931117404208229740849455573416116460438981240266406067910698165811870113769112552265370909636344779611756231724008451326122218260280943404208985531049353757049920320213822516183967674043749796468611808779693555505727407871518602623253010237575356252649342493881604273940357863240861971601289153678243211612021861580832090266292593998961253692873929189991961600473921043659595684118651418281992817037959878556193032178725663356730572836774529164310671105855617307413839438915882819687963553368226175394182905312709537312318817660781255455126496198624186277545670577320665264990052588669714888901252932415390031569380522232300809011754411935353903963530802686313723062935485081462728271473493630066947619727106812880326397529294586201344297070559762923044606556504065964660116568283454574904905963013262469111691097216692120443244974444138018631543755000578619083462907857051578499237088636180340102830509715765827734353526589985264787916669611475927481072163213310205062266378285420627564935201739297908370376280082563737152989036560178689803426477981100401888935306287831854785837732311184185879634201584096572820756559128561584145675114547777503647065088594699864376134862915448385792022562095667014369601257097410661068948986874918841560251840885719830260129006216106143742661205202260623170814247109812871616404595930159397845642278321376122152420792047942656195953601797137858359852553274400204095937411570819516279506777277059651703059309665657205320887751022202711987364566107898125517517353204070951843381757850813071638426053779667077964776914426710081302749010702024287260350947867665723472341522531539092255288109778866057153417154571189579124932834863971387302411088314463167343391811390961366850379973891454276675749544247647584459526552257866474511821509728132304357996125477175537849512551034978746110445446528768565684336249946831619244175325828907731380799554158579151519470133822313398249005725074613781966818917304419288347047273967727875571285124782652737388541131971371944212173651550589255763207679516071765953598852975601461178594094737545225589956954253516605859159196356334262372137271021621552930235615518187009214579708553587597241633548014988963307233454040826965944658159784271998756932947153237444368988716533033192451589432869163087312288562232436148817969807224301659181807113851326619327588745238403447228397756964626412456124327048631096887359353006759999084027161739619305962332450084802026521286845041186876787778603186130810786190465096661816824151911501362077597553841462891529573113954710093721928266976304594078261863611149203211355207914829062517471696839074655551799931698291546003519053120736726214509673911890238186830574081946918512159042117142713827187833042078614374456566849638174554338696650179316223660128766692330106431079965502875903116728006388630176507211782695088924603644656018448516884109415131493615689304705957699372601281591061010244291437963824292385647198688974660881276667066201638433487655186521332850394742223859788848029183529902522355127908527427118555456497280141798587239562725817417993211147512652954842971396102658698097566652573641972660002450406470753356845743319424450863759438176354738985749051481321099113271947608210656667556327164772587181992838411726326612120430976196990305064005783796756681363557471427962227331292261275420875333678594322826590598957593788154494403858407519622988945773551559866379470955129178921978353626263578288640058447205547927846626232234607640637186596496473388290158363993560828976791227190056304051699619439528366161407771027591271317869209451719317884983681027365571271642652005975910038011307362557124547335372054888319826958554860416120703417745871363933770077840013730506160540707475470350994681781176619578968078663560833260935019987551372675370841672995516689942634350291114477100176968224630918376892404376747387419045600474130483643455084113251907101001981824156068674818690543235393721489922357358163041253263114297627719222712858006012101649581623849435842388765292614892688428733310552146247384013663311371114070117645021444137430916440000579501636603016908213517231227020603925730433847703936234911289232406240489251353674051774704282464986914874898083205272842708929843196085477392507178607485331901787254670679845346321712925413403953855380054537545992691840490630883580344880772131096851010289118590582374883419999239862861622396579200905394241371004818124021064840472495014822696605003129447156695711787783023566396742855903885321132566406157305141568473101034184845190458235782725796645270248506621766401687649482781548985792211203130679914379775207628377624507004596561808405915572901412238023642316020022954153228724104351368990776304486864201766310132905861437416523861050035201685546303897293675322762312374122409045273672612424937206121848873923457128942432640609059376654595690457673238830806355046855061222961182802295281950179611816280993781839642415639639635368140093922905008726049438121956469327774401323890816691715149922308111435755498596374264816337697198776379668473465863429733408675169012252515634203647389814048888411043127812604914548170872297705064551677927707792509831990008878324927795829363277961209943647933291703877770449376427319423735337033502241896698108604197506532889204399300197577381710331004321891855519780785820619490504718275068141645842747833493767360544853863304909515418652921215790449311447770691059349192125287323539885177741385659330334119490603420928046931821710274104266654201597508278781631714673542731607321911205038595557524039350907302327976019846071507481132939332990738854154054043307652761818459055518882691113280374970044123076939866219609697297333328550244515091066904692167988951454899425352790886027463253298059479572932953222944373512724615864961997463081972838911324759312209913747783208001291343787567655819718185616190986915708565453867948514136491450069811234669845905745814187950145220469351444864348946472488715416173321197507277405574970280302166751947688528726138051237129494201886669256041002428363474595444000104831467013747514899021814990883636665899040347598991896789325411560579609036641506785735359723657618542169980548530148931048060000226933083918376013919010121577029312235270978379699799526672301423706201836490070942105142955810762586832141813346313494875676314747760581923553551352267591457852357443578942406355216584443601994199799525952656039425371584177586910992888891660050561161951202428799599010770001865936275879953519362231377410160254446744673380290222009448898701221975508851408621484522770156177005371414055786109713002772762977765723528782841353026395737576580775544848222949636998360453689759048206104036802355975550813201114145960808227375188988562637491437050507197927569670088148922316574520686989699810561842302329491505133327856792690171745480071777138341830022115997041294839516858951295770371282509136292941281888654375746904247924086179960383684169592693697265822019679895419799591826262829098716072982854165435099585149281238686965877264942131196824762311255917375655699825492452774354470441368644383252913319511374548767866442279059903413675439422447557585176819319358861570822336110775838677265383944345665475294601925370750462810169037577198636776013007367471291239975266680262336583952881978783008877064027797363856516339874187633232635905223226374407294353358944650483736931639213102097786170522764645593595508049839146592514706193428826230352659109694225692772699973515379718885637213326932736712305413224656093370593345080022480632511821072496209467243717624755312457626544195769552676456979066772154535289842753002386857307063783118045225924622712679780702814996297787828930494252431236036119235987460065818574546236302113649193050823212388881556058282818918526667998867060632890287172640759226184975123605801973933141257215040377966049798398011783227552356771647535149486059669942094736634775778272336677551330820306611501089932630733326942401483849126580315086914952178339735114866468416390891157746807598148239557965723539039896729765708445054341910153205106570254192133819238821973962631234213604226212873629710690486708621276709680189462433503148224542053830026944343122758619145193548113877130445128423975949896686060231058319185979230931557407900646261970398280623682553115236240438643128282434564804597231362790389498976090700735812930784137368727531635395659673700391137048239140245773620369577466652029236335664993807835047670122572358840779874819088208664255308389632347765032755648457466809982986152723904462751915328060119340215466147296463561206801906531555320586831904428766471236699697613047718103751125276320507150518275090899805504448672351050507432967563994028587125104824372130752642948767589349973507277031596381633566187250124752396972699232512997421644313991568092928939381395884728705016848663961288817150241361186935144826705139214588370210530597899016495513179412861779432729756603282114228144669351192508087395095877175058670115754399219299474480264611579502180646224268126119423742772970353847744903375798284937793240964250744008029307970442153947633547754527516145560993535051941295491271515747052121171789207498924701586042047764259305365243034428622765249598721056853824055637416642778713507458590193598229480001327540900394137937397391285336296208828251285141024974118717712713572946867617542135991192980962557916047508741224928273310018852627401849493765588676870904426750341902297949920720448179606728705723102319977764731782908181997952554849423249154682125512175911524403768554075970553994306235039394371019933329146218941086170519351899742711634310310415162388371628919557668012219909148355015970151042495889561368349330994364327433923570199292049534445701447492959418648192640655235294284826711085537917637389607122131704647134324764215998336965130420179134207891175978245369306924653988809843357639259911122361710120641659425437314776029661868766427216190832289599987397600033943536321642204114373343325489881686869221499201950496188383216748849977783886551449394943949810832678565398421724269186257029933643771790859781880277167523249464923568833866272716665602838800781052192875267310989498259806530835466811810651532663431165837152293862034544945229324646870185241650671070778556559966562124151821181386349237769980886313942847432968287505084257607296149432625179947134148982639055088731755603362082066251246083902317345651155397697978595531338870614095137012614760745841797629100617343842049091102789699408113240778150949879819744873998321520969634268444636088637460744779339537433343934835096709569496771311563461055428166783686395225232001906611564514862293523251207176496865176420966937664761375929475749460151865303010897562930735433450511669213828883257571380466414956149872749581260599850496249919375076481453327243943116492817016258945569715185408985101383199855169263622286449637708849451899370275155676729438838261195465079892575479260831858306613535594666855240068731789000327828869566189072493395721559277082815689163184061356831701065568710578302236876892465561788080354991000937662568685293183627343858978458478475686343319484103171291640292130835788996536979837908968623733982720860778601371375311429379979368720085265245398009911123009712901583230211291217859987574230636415430588146559085713492555643125196921278073709046883974052002129468685117157945418948953517119495890556889497448521604188732466331556521984072886260459008959128744758667477249699684178064940032379298050377116008137817478176477644729497512834651544452239174659450515102123284524423756581032579295414177990262145441140962683264696822959347603051161761463562683463600791262181464056414503328440834189424214641917476823161296841541730104381324490553168707786579135813836013454226467269772969925961226190883982903340567795886799971688715725425823057256554986125485112106441266446025938427363212827383720871998830329973520206393234381512485192397427435732865364096210341015212700886033591246446169670320024869644748463558338362244910490740276108565156573065799200129243744228730654195522274786433327040479721588868054490796516601779925129370080732369704992412535512531825286406485966751374100230020627327020112059151867335493426396176664311863718721855065281474415068153495808372689736095553209253145220536836054651350888586862674805608985791066861454341674434200474073605638941822127950589980845658526457363264142585522047243367367263175937947395717838242844217678387470270968034300333062598528321424307363819433105923970512613786798434171621784349502980518125562890759308890960200153839182967885777836434964920812991566876613184268393602710921050999556495578959072014398772560324516606690209894518583559117257557642281963179705711402912441575949866802524553408066916875798987360869842404714168403466023253551274421755962001336434118319962500874207583655203375728639725379540411024176122913394581357025953112166948626538528458105981369116628958239543697731925811670783139190369535182865352271424586151378743584960312065970520159042194153325888395508590055370197199901579571591418978247313446542979149711716720403954441715531972929549225681412051381150798293829381922013989307625572136972165462532607889073938065868742988064520145932445724519378478284496166410449966034768558491844250527973477640818163208862754726534280891658041881979882634355014142779864788408599813084004365835655821130503424855970549409597962872814725382801178506941418989887735497393079957926514982943299303457074062281268313366851550766427844245109875659875472445289708792061563080966907096950163492967331839436670000559223605229348776199356299612785950102366266557732137042320179662280148650256909533486492625740984753467301934211089108030795912735089012187518970567604994547880661239516708398619939712112856573439329181520055024655055809786578328841181596403759148274800061829217045629441264296370064022111407175543680376854378239233780169150890912532826360092580701064050420364697897542604911243028258017627042190263434528512295435594910544718316034652824278416433040855026222041685288471424810633919690422240574843236182059229064540359949419307337071799403650603475077042960707501274045993378370927839200560242657947684143599294383415844398568757453316768248367574004853988032098511753656693791315008451764557012023478900162922783475076255265032204686934466294812125964925701246691093630563165356947740811055879493135774537317879411449437227727191688434490221242277848932669475284758695730280422362775316830380843518435085491280398638223750002558778074645699444386741459368768356958485788630979666804199685342492742153785013690281489645366597661300700141721629288012739458503373222605508645111264474705814260378753446882436477050557188495414929293604678427624877375871708537496495968550737095246590702034132978616560157748686732418681512191962346543722460849044387519777618902883349198485441034301722546214226306165061810176866520677222760771516637202441663386503292504721040407278466220667797947805981235956537088783886146294705126856395420940090285128046709319809505308180028073603221746066947560943833489879615459293492605186347204018839984176386529576998871953087771004685819826795616212279142663915459652205332209909109691474254532234127732494086988411676019103122338938624208211824132794320632405489255943998588682351655820225643615987439886516131259418501683976537782601541866462970755368923237678657385134358829601932501388777640053056663990904738116851910173519154967647651683933855343061349207655796762702923814509572359822299478163500380032170502915895126130206506743275692571215814225549081565423584078821220136237048367164470811381442489482482254302632060933464833677702377052526333034576046094777819874396167799337142858095444346680075205217317698231722265539999872655975565489330378940606622811836481242807931892137636882601769514935373667239466265476144957488422612296139004817632099733984264244444106610675024438258961604362669219475794239743149930264643213381325182301119905066090208500149528005749503258631848382908155758518683755560732729552456485460375101891518149468227889162510954326240448380321477098978573199151803724766852086845209365310120183883552723964128538363722645016187850264856634168425561744193810783933208401512878468841955584437397635050094000058872030766138814739663970496785654665423935309721824101566438477175484480044932856117669048353911291320752895158689520645882081754424592846108906826221501281195485519502603406567868555665692023650534209624682415189343044997383637775641754709149594791677171422021305959473219369355857780779676916545254528885991641052667841979272363294310465623530512249247563315208367719991518359353281539322402806046222786500260614920206345180109160001145049301319767516710107312790320578093937304619724380498736628867490070467390747237939020421552592849917924028837734026031162094757150612703309515116126330290977395674854877616433416996143075987976285756621237664744329265921432951607979487550591349198709157243539107240785987244998236704585364462568730735406172722282048222000036104817185702297622489602077618452973147309908204799049907798302376908586945162545239737254555829182104471378727459689666298134527163155370396605911912745803627581704998399545562130394287413183694390765410602900862380143343272006744807374065089823001721566302070798327190041252343154052387099976913738965510772916388662797692021416196751986167398819249764752672036119745642279610419425694037494057208367469081480729895921673014037208138802491838996337906520608797386972306345318561991066840225192699074690603591829580119155572536679146133092958238144777970658110103395024115010500390042955251150878843909658041559264645896986194583448819156894118282753480254169729423811520114687041862308789267067961383609070864221075861600330421722824393693665013013910585924342442599655596388773995183538996609730681731510443980942779406831900705068589058248659465192357912764873647351694836493663281546398477674196980702080206837546065899168145071318064914084748817558697254749848229776481358467529610470363436805737272944498524638112108016574201163039726021215390300327225346307220571315796876303150645368482720138498435465755960161868888494096449712260078167335361255022786735202071184596161835253045795587024924874213305461600439082358705452188496963817347943856902446016370884853475063153163080364794236891591019196928834155276820509580844171199690635643642579245852098323910627935018149971650087032277350842703159565981012180063089633173183200289870044064734507351187463466765797602995910461656912428915555059821504410763066872952614939365545395581077823759852864885763029968611839462945455650897388595806040684787602316912794190786432022078667623861806165006436491869764845462338377216288914948384196099941455252777855726292499437107819636968321293696614598497653191571182428919591937024784523501813648593793442003488375773998061753671037629724901103882806269617195003697682889143357977113465726527498858670405672256956792832015586898119761511327495897845653172022433095503356286221427360865945326239194287755084993382575068346863682385360249878383466097693259265161690706477130960886982619999292983021174065810124473974934652244597036090907310681090035772687397706026002185203764610491505839487191036181079605059811189785346450588639831877993927233553047027349365399091923381066008602825952990004962471282561530463326953296301228144575884822492758945174705377169348163321375140234491107861591121317821786301199822978718999984759784441333737076945802760776737105004938917194403742442827850483731842322736667683613317733814367248468615575840462532051678771976584691078378510021308177613675075551565373621484593854918948325569909708192315837386837884050501867280889629371237998727067371516835672203610688540284090682879837587579983464094185286494888801155112732783199683189987949705741230257203421372473315033349837293038525906436792794548839690782595318263456002116645831383149369790739105399811227330514546548527168738500727251654038470546366199942175103294445833079400718151058444672878341404153670331703457173598595867941813559645868135065260977197089060040697552337145307112087041929071142732619784530744780614530264493655006980562535267633004563468492347019169390966435410127617512431515909401914569750368414209734066985070323586273859392756219683674592088603266370665966189349498415262131235754219589285844974227384327864040318256942828336730992282447128408529462439190744962434170180915080810544267612849045262220462196101214841100998879372429421813291710874185517778691618788879479049314510462878044540548205288534015566143519401390571131886928434566699708402882370025842950092589141678211078033699378600853959704272277460030938706583011006200471464090032507613220183448347366415660040798363096306782395801812279041111742676406601261497490941018575732634174574418106004750805897437476464498970824175186848480104502817833195818117018552670336064643632771359961964650225257148321717066864021002345757371386357223441660390008349427163871601028716047621905391977366291270842645486118208104312182876033653277131132097762924556908789698883437758011292360227800605397943073461025516085955099631800072225060010941743956669593226663076868249017851741533284783186784799642163715466541161712088111025059308712411751707708327555156110211339697177511869557947276362168606195204772259597471884123229447069513301907212774821016071427692199621604602366515095068645098932177009148899383211185775506611483199532740962693160735772516923588094319183208138662658688427179526962727358198907363066092241146866921660348137462750895558768541385865840610662280082999546074896238937015587766451733902300755880078390678468597691525872767943517019638386900251741360483403996099765100613289861388951146695357009750024303750104598621076868425161771883188734722647017103503348438752997280857902808402775721696628008511191273374792751019700327679297204517159772703075223125732136132731751303514221835814056278399256393850884973299193347489393535861147396465472490769388241902810979816714060824980668575882051878918115730985183017617196265769089822478694243326092476101655427285726137728629606457730026100184572865597921999866402080754150391358987691265255612616823522661351388097378558899973934131227952447145490915740538310016822963927003172575083929310119199920337055299793575095212896512545933104587073746935494238812929784319490045804191723687848807131595230707091422719007724853894272668201926186651160652450281617775721906051456948932229912104547294016199829790785454466677656731200056511906931839532282001421525930422343487315441012978854101005225807998035608406610906212315443138521736666698109380504765163928229177346280314501446185708289729827955577449674174591126157523126412094303846087838105307057058406022739650912462823250615738079365907711714344695190527247908540861023879604676493927972765400020082654445612268574741067883693143399242723212049916964661093386606635967985579461822935156929981357979338263504917535045049209289589367243813438334696974152985550890344478201501678145183380393633451506253618657435150235282285863032449418650387392995081635694176131426027436425673526519886554828787473529888888432808839619206836742070743748956739451543321810887605503630073198066329641439817693564732599946751438364106440070863317593317555205009449661997778061522112380726497301325268219457168176611199033566067288454272789099569441990796511049832949367077814105082863969789160035687249960360933143839921562907327938276786315107625565913474061020273441163056033794740848374203637456386326523611109149487900094752354764126087849650606966538555607812395219778242236386549010552381635818181834846532431430820989767862626697046652895814499502749693577551211464309307865334618567959535053804288874130329901988269883422082269454639004719786491095885587991913219635109215916987555781188718178305930776203121711144815662192454710093805043175757129435494450551890634566545929875507188694316738139492417240176827849951543804088507622466184424078877093804088223064070118865861396603518400285458845975398880511889625077462664245226451813242302064666867751023795254808000267861629952004057180334365913522267575612634187702257577892182681461839047125838749601742641673784071097601225323211675415704368240491213417860356392719127677416469314693448444374749143793836182752444292858972419651869074534077145037588566066391417312393838623326011370230016088457914917999266347931679308443700756192446820940812035914015465616672308225004343438059055475434382233443986094904301523033416039177660503325180773430852243470010637189067628864056000465164283652078683391613682384060705904882467878010595525068989233789935725110976902878244859995029246540098276970594790739502093851446717597107336497200057523122409649694645308879143328250733978481079500142232351207528197542068314245301699187701104615815935251575847555912550153891472286676013876643585953263130766787833938517870301345335971796936304265227529631726726217872211962289427672348249291806819672938071274617577633224145885794745342578292135607193338134883106492698226608912010639433234689965459300278998132755280136434989876604276475124856502211664971210121104834549955512095163309961449715801168599331610328564162388670960422964056193529736571631487697205095142524239032841349748710385508493282834198503091368230550142200436312507147479696283294331789829463870325949314404084609001064975881537744470609862426377959118343603729982886487058298025815666956749789364210576273760515121649897884658946768811529868105591275824658022392046341793790861855062454368609990350260372567103646546655453901165484821242781915874060093740926797790928568719588574045916061626748638903914384800308319535104353381233087266028384566391830051455653089527268446344291715418840813516170932370061127714733250161659355996285910083106627679706375421443365215881305957327399627175077546832562094384641365755178529085160918874469128028982263811233771502293646512826015706169153401949532271589678065392478555409655656776608576524731185945015210536178751174218928837866862206823420074815388964680005547119931123561419113524739481517377194720148583672485842182210813627413474440680816385385538067517461755397395296903530916148763882964611888674104791491719731315502253628309417600302980557788214559473969059901267176395195651211029678487393989711190385981792014648614700219618957965650956617926640505256933093206102325450045107514234520862708001695936366864575108359003448361527716364128695680828764987184640203593781290642032591265896372390617631321141828193494875290941549862527228523150481355191795315148487462975792080645564996016546648200465274661833400567923731003609597359343274899638149163715346428383600771672975209813723458148448892905473685037441607927308094548651752157200348509872889071761943936050669074713942053447827646468214465987181544501378853580861380110662176523565493247807653381341646364867475941887910526238676680944647694469769867887938000430777920874467804251006130014642520538797492505154695571030379506197135174664118758732786702933769625877769107998469769783608643883443917841875871187276607706883879079919008018563174500290566530333131299750558786800942077131075105204261210573679682418280073789800193502090916061037533401872297776026475292440321532672539582973611737435938934373067103423411620183412167705369286208495231857421145534324070831235727573064711320942555194246252360928279940445865806831429980883055492956694695478618816334563078582997758287103341513485635492233981329357935100915427657435053062727118160457447925317390045858588599455344732419724332768974433299239633893942698397824625422255517964112422143959499534230668759167822600584820192098460091325716863367702805478052692714864054414115870739825489931376071443393325848449193248742397692091473767685443965014399290495592018904604655392025099525662893035505572637257251818510096299478659772655663826425012727500365215228745255365267936383096875245347927493302112743636698606076800296206630630331351300974044696494866381288800786222412804066155490382537779820436870359428440471754612554594700825002593458010423624028803282922798333439900553458018696404148229454160162030333147205392756547110715027958415750698924172107729361156597378353258806502094838493745948490383752548136409938323729105205471769816045687314290028202385673314880153615097630756676512315129322422299550636473528059772914925765684422088876690445677598468872349659481826261377533208735128755753972067692384317187621973413078986014693804618957297769044127953145114603546354983881599655449376280268596830632301306619947201567355172664232807834486119095798815909034561599859136111083149274976500622838293289385751272813143400664716925764045865584806035400759326731953237969739917770003460598024173327635679124585930306077193898849974499191446239457511737316233718123737876702800912835379191112389719155427131525430420298537794397330568840394322954618151654067185212417339275247344325588459090327350235177115848551648026237381950848812954724214553506738161835514919246640290702396801745125476121563476544142968402603453310721320545361094339099744988567580692748492316904686098252106364116996211714052864600395492189554549219772788154076714350037352795174881738834068836537053218279694343081903254930644297949141862966359971452173597662860243107440487451627847156066138112557454885742032856559814775859786705127779005235807268868162200079020614575343064818038287609565282199124665223047751104845163357151924242272163055128777277051997910901130330346438118249491422282143411060640564199776466592100287696324662378977900764419382336478983022255478586090988747890596101488106980854642401529646490824743437080074130007140236811448120586742980557788186255506371990408379825256829177822783615644505486070143513564023692399133712300701939215131688990802213629067166935505483272317617067845374513645716689269644153240622878784653773255082446917032378375461289334726387158495012991143969945240068897097167855575562358984257171686190717618432168246313438585572456212494940570739717387849655542461757116351978121225928597545169281868871012879882018321499520116366000803815710557459534540115360756611257031398552979775594054947510575869086192015349858031295815806340714677092489593849197454952558803952462570204464731481983586499613477070323933014410868360035284602290878894915665892054589628719213882959696323216302094774068080586927133608238638835853172886038304939498989148794237002521048541331775151968983891306823633394075048246670122358740809391998656463297304380180396820513505124170822165655000327932862490715490234619488525368846388643879073755611965204909254425881048369858929042779921208636119903720462880046134151447432889535616772349373791977141438022996746741669464095074394585572338065738974032467999542298376954058594294359391483943378177982856121312402562503383916214661586895321899744395221591437998917904783703174970366842490748733601893192534024777189840286341513763887557766554949244329449584451504973986911255490356578790582054253411531115571684750160506060123448113924744170998840861963953993516307725321672519888578276819543965162200148297328559181862581312008775600959197579945703186440587102127411121261084086790787512713202902510270997247662882474615113441741369488598141140478971221623328933736860581545307591687488439003564682941942806077068123396226204117239476343992610767606164690683452214458190701662574067636467254755108016297117368068470140934627369477487827613378474384877592644411965749721813576375089961492583746012241687052437108709063175783054024669243027149686585391678792828103483317290668586797675620562012881295087602529532086800728771529521491795872272108621595166678554497493505473501680243505877381128282967075536162155127285132348703388188769754517832814746313542170095215809524297253468919223128051928084619902560732815224399332887816438207763969896281931548915291187026655590611320296788844704600881165607323854555693439572457453954168503730941305985975505660783901643340563749167625420551539144093193660227127300349554664135314929009386240768689937581567079061494058588643417308198243939174062224435282700574181884652418083096390121562675904650884838519715721504652913499975639134384153387602700402543142891954441495975713990807879606996075322672268854131847790552970089098325123748548293033269035903182311769074594621314408792429962160322070013178038627553159378171250273997592700835923912914411027177699804396474896504050471667235070328676390051203333345986152901183253632884020296734605614184577346694100935772737970450618628840342970475409214565505166351596237519841747484439314297357309117771435293997509132319632936830727520668722425377146208455054149892972928691275675780240879391315302103796398806766886901290661995163191804642035718867763888139658626555937419468228683587510009628456079535771327370415338828293601233695864866087212949663545439041337203096417831143822114288321056638442170785549670365224920490704101772064238765799707657710345995656775358378155547032890576005705338569414822066506354315482444931421306004381249036057236511699213101655692755515190076863264407208744840538934368725419210663540673987493315493267730801830624599171968829874493445501266328578361028842015555672068829471085478269015644382030927225112289550929613237541125342693043165033282337644710473606090031524200375299281726103687470806341458198450960533034734543426573600120738927885041642258741170327739608285216493512096684218267979566982098303394169528932089398439502833725209483320638741330242185689695851133552864753847278146693734847123243533865627613648657748297955698084453517431728771570280455903144565107802271532749236730863428768803990204797841230316357347934682378149297327498406850920622226514858011038838724882217224294333897782480985813838884047178212832119799049805113172304280541229934038689526691943745395060000879200058815106692660644097173132031764896600523196230557154075317388812236124125587895164226052153754104477711900152703801511255554200004068157747885082972141188898857244652103094250837334837839914741965319658217574312234824854510446888342147287498081758631219210911410283984420536491997512610428183352926666205013230321199190787407184570253737176470379335299281088722363159228142155401589954501687065859853256917663849914311901793571829999028338833416258765465899597384311075655681965155685095637020094388893988179324732209878659139417939304055025065691159184867397545157689557093148298193668221959982115993037057076123497852734819283083990897707450164316975969139799893503608516548829267933834196801863289266386881403420449769717920405557104290227875054194059546380310313857836577669750032188990759819516106152725479394831101370706336090239721540185292362057980077703180553640347489163258208780800993773357941556019777992046971300544704911392788771730057084506283614568449822910386504973993469206971788633033250418621814502171301458933277997440224283537465067301592537230121735321971018970766696374769722227402366516888601524683929111862157973402312294605015705220950667766687329954192031205555965796566242931927618100627450535803970663311258788216924485148426310757571220056193952184392379524230203464083700043850222391146389922280550977893657050990344726006090833110605789615067358537634945573968630168717427010545061358424849383792437284714212403148814568221670930111007141817666355734493835702050804401622137678091132437791760682902272222433148364119921829254465169494403787029611424907870511995900395968586737988335723952715567078081706979188037645374724969780934125122921516093513492628153920949939442039343115217463839699795124918707313873724612482252044486675192259050779417144158726461856932501172674787104053072158388542667062402825768628995474114425874466920647488408555188749309274739873921687947205080942098632415062459214415257864411720374540769686810775139967404044189146800422178316860623420378423732531505074112383276073837321818543637725273584054084295160890454154919836588977377417949309306160700821807568087371838903028054537626927790443478383255043272525011339911472550991738954545152495561768428041701820731467842257219094401227696626543366410075916777160618969597414802142698532074401155857176202896121651452150183707911219049409543635077079822598292608095854389831537307444382116322002100429150781730821672488146722914705111346249206442818790916997025404245316573342387659923367711958581506166743265864395226963797790242954635289319680742919741514783813746266490228048372618513643025937573443937350997360982869249042535011692528248988674355405076231752035454734850644448077381149024830887384088429158298185974979016289939295026432638598356713540180195713211846178860725197676568790635678943234082747734772032588352631282960551818270687582322121231094588278558255789729734082203529117405840085046974256018126359534293118100884219720099364685975457010403210792440743990492033380658473731002640483630336383742733569126237403276708493011059392557688173964886566706843424519627583426170848932377838498993522517638225818870412216023669636329471010843278969662206991175662878522831986346475780370076334755708870218964976263644826135131071835018462948916095036655531549678946530276336709825642035401151049056733516168861133500801477621869797144224134517751610487580135409007921859107290452642532943244741132485885785048170485348653823239134525527051814343375357497958836322450244079028038063093268523790427122226300168145275477009307987050481449411960964185006408024845634457806201621419291009067409715857306436607272714112967830945119552846616269140378198879270202575907414614683962729221145324230257394383532108915247298641883140602927411400997736400710653074264352666581384796420648026937316793255570753242720871936731226728631512017709498579670576464653957849891886512309217561425925489122813521763999815276893891729034746681416157134165639443332172921225771206277363038871366975041704794923895279180068575352276440548265230785247273062044316933805927121727847722063413190474879516836749277427989663860647184305715226579821393646786000464308975184265369877514546945982551193492682562762314417615692889006883071966336582555634825182429146975025999365527317794291939324792518797701659782531609109899044291830961324954716477245322795493840173969717828359606797022703413446599979508946244661352259616891661720903698565183011708924973324904204368339930589679960464373210096239738435952912589880778315461833640921199185692887292495543127107878966503904620169356347544904775766215842190374879478120998275634705667650817788821433882107866155569586929784527328294540250236440808754694416797813064357940729236523038393557623832043267459328705753521749893610547662663445828363127190004685302080840674020162889939591617497424800544913533602893705685247516860162659691712187852540457960153343853680552608010791980027245178011075258200722373567819694226958632339388485111777648671955986875379593214783988725840907934482954320120672051159434147964160213137683804748107014228730893145986067068951466165380185101404497488018750876327319649826487017294229816940413086536603121656817423682455906928688102530588717600147604374916660648121332951417140026876777780123441769715136277395153014875558628090881880470772502603366817602508573217419023662789558236178295507389328001749464805219042542663840033295010126053903272104601053971490654482296888767152124117973988191793519094736205464940688774759129040921738379806086181072360058082811577059308335598690726970447406531050887448737737539520928367332087724431443038421045546188305808304904077645901104518109747124603536522008381411685403069738817197989710541297653933304871873380654784679028849150696412053278571926147014275084255639593659762861616810572683939322416804959273265512094915495327069237234423764433140396682265890004206768788557203896182309332080099996899192023408614548248610279653607435494160064422779560172353576385366883184884731695184917833860175797911329075767051912163596899307321651798827817823676575385526085702350178874300607947783294324451028066679605910938331393973821309527752871610489183023377545344947610667676481425307050169822176253571049120383200269158670933190211461074491036819423364436831735537688106452257063932262058029077784997740534371608730834214965415830007648504063676997009888941991086502206351107162352579781950669305589063111661072646870856481446489832225540001204761363127757466599697297311019822039082523385605724142581603391751376191871210199747870299484536585306921506929825968341947564310499201724168825092675667322964073477648329323521572997274762608974559394964762680758931094901371656297403774681602853635791088075784936945072111126080046691048926428793312635198997949651747197814959491736535053730464334406794084919184569446491983720070003648466384006416661311926574113165363809481345383567099192689400860355659271499277055299793671936037802216175258753706765206134446275022873212859815408258252382811963488178500926490401550932122847194164150076317577188856038102880292466055510579504551722086931392290578710096517273564315032722828357124302050127502458200273283753573107983297848734618228241304597575763959925087897396930182804324056498597383380220896661517566998068501987217815909880663800482865722985993319155980902348841263420320451243423849453245573461952795774848036306012094043957861464456689871062516717927222341178095415461664405663036549790168725956712878099113973352717814469962394695286556565740990362322034576039750185758169538563670502121988084398849202923822921758736648131340555411457240012212460651423211224704387143972730965404547994882537118614362047696659209430472768009497827427925711364829455938938769404537085730868566853456667342594054437856052884299760103424333483373019880210729533759440283449975906170008614168133006788609643643965140763925867824162263000275270492947142454917159889801746431260716384346912587000954953582822314901541167802108249542523412572983563706962822374913010505182928680525441468415560759860521440137058813559277604713915121855197207110880944720447245203472153344922325848088835839326614593385971361146352074938590910336183522137687724114572476976952035079809928069768503649593077909961556007790884929300089994942159034225489268378884808014514541454468817806218748752055651786762705539095662432447142050221560565268215151274921039190163673232240093436611131143473420537848041442994670798305667570808633409150844038011289705427009875375690831087865172771820176965436687169137488182798862960741176364080884682532376931351581724112530338463169479058552055376478666052086032748066825872847759043607146427454385958195336285285725814269332255533355320093855106371360332711657870307354450831523362413454673399105499650172557388473861360938437962560617638867434338424245087801903500351133651998245984763151529375699432393810875436524463082123722354006536537559693112797539458690740910991956858664492001729859386281330094761031644835783885894439975317597395149035892348704418291484102441803529195828137580462337397111042711502102890618444593019139315656923975522538921750975419488842815569854761414033980095785215767410388005311430407403858692361398782375365103965693875739971038561580187969024963361652171107531937698845781762437627614233884177095280254753125366729490454507760245013659987832679218978575212914123733689944753723321184849606304661563151178891862470766583461429159571711651690832474787704717269842448454274532210039585186569343615570632731107890496495356824434721666020249797287820770911944628023696156947374904071961251715658691031402806255336091236898381737137945878101888388310290848039790450394699408125444154358461974973212033726123227006881573648277547548006787774058889454355236346335610422974742776045948615672969781095834716756277239497497991817096272885974646924820917023118500172582657667083106544463858229510875588808970860233943296394694983414291883045328969272278518576624953426388573956552125488361214462733244732880618712229491254812855410371875045970372820336596348690006752806243398156441772387550222074443400098155560864668129118836203555523924558348705686885078475035513116446860623355418203410674661645382821052460322143609511329897562430490167377796624618250318340039705947334969315899107052604615282656896649954517738531644635227118178737348455720309525466313841155588213486552733438967228220608208955055159698957332664930158016625568622280370424281263565335647830108204022673846812838449607862947031572850618903797906643817928691719629743138773177435342537238334892173076108339711076012290534214508069153231102626788947853986762568507362817667028531571305201960371627761090434524547069067847041470824934550387296487500522838474026937404029413889581066377474393748653418961005461268327630783682132307197588801959430693853917747392332495390559612328346816402193950586842340617304090776149783442885774561039931484734972569234002620411750557562522499079369091808911991165185308718298937793309445793810525681877106362983629738301174108541922376806733144609771387708450383317731222301684348676726773493316195932401358015474880678337321794330332836566161922834376748691349445781688938139674786654773756313423842930062902996125709844888616976342358128806647193954208686647796751077433706376350270067980373876190759889539994487059050026774472246397958341423921335428668882305321577019929888070487035837244837828457025244609276307254662905065397821526769995695573812605738503352258759392746693204785395074927239828508343145637623673599558718047197776199999656034413036161619234813198650136394227324822820262820136283400607102019055041948029381592712724402828849315718033963570239088178316574094607895991417732174208557403617066353706849270133833090805431868541196628582615890576815587132288835256321474487995086227440585518230370484238279329573073793174878138190020678823397940326787472095034541820724953593830018228227411491157535307421827866238245507359634856031696653116472388786172006581999278862730126152640484204293857196881314688405343024335817942892307118333365930675365746289832384860321044378092860681266450626481651432810931786280268318824379983549372697629325874558721049213508610828665711331774790858841062997502970133211243941095088431952848558579284879574352890889737213933010972690167415551715476930390463543483804178738828114395598365454582059760060515452392804115776983259703904580881377692532578953570251911956098374631258476400007580652381599079677315849343761033640599723428505118212557315356460811816527055240698741754290538635442674161746364701146354021326224892650885553249501320783531224678426026662229282689145257365495665973877812499985500863574212605677135674976305775757656612697596582116571750763763829399409823250811975548281900303149884152910260551362207360052391256919770132272585678898726533919810862614488166072354234373058316749141129128891285821259637744829797420914686019844281774650464874335474017404762935984764130749396306512125853715461157404553115429994576345129334137767369157586128653407098713967217032725776421895826008167428344277431286543046398850082113502936123894275417483259737557851919054107392652543553388409036632392283920129849514836165793293588338799306597378198071388201880987824569664425519497466755624858870135428250483869130754524468310614313659754587078382999847894141647233214597830192419762910421595952030521782964873299236193946284284786464348338396631577584237008697589586482192895144873887304666166823770701656565660190673476449483518000893922910272453259277768490975099325466340992582310771262129743007723696974530922854232860586606504577540822495406502912220158377766833328970859555682531334180247749433022611371502992467274513080340079165117661943574212140611512534355361482655704280293587832265448987896387721551302520843083525203267140280743763713900834429735321860218992595009832363237766842763627181056854208619052290194506082954593987850565122459673214030158780682603008066711888702754332782827013932389809425532810042371918762857387816264082216255336573916866790961671648734304206458540717706533187326056458711845662757163594742745951865181292683354080308187866131442050757898730077952566731806850912406555848034635504287212057632319021398625593548671792450810415010915614481388676457530266789297646750181573734088762415701900982009724435837774683944288648471911970131222994942853410789432718102480954160605126141371540781894054011509411640650000366262373517435111021547461536941188692095420670303096342382029538955094226388329272692198475426619600275275609357981780345931478168991927376952745210140036888915878245157230621641844935926276384004145396298965769814568572718721727211716386540500002626755229326955667442370130660272411890641042426304368560912089433634488976275165935540628484296352921671610173677915618148147682912243629024771721298474805565002131514086040540817061346753570397095686735494185588827623546856968091043674417841052227149800581845611226390035555753883310288733261961872930095216694900278257547551539754927550492568470381815510198249407508758786357397234669466299912088802202178324863361562872472405187358956253771955710627779934209919671603869530563790289122887998091033825409095500851720002299173527658709728726712751761135869469367657480711278705784151884372853544236584832662205581125754806920162948169649818034823971405313611642837644270673551501918403684646154349898207185206539938012427291159507838532989806185577217534926425982058607388360134715811554845226244468108613365060931218939313754537236900418124757490465143446970739645019888859116377799601544963879216386453233732355822052229683909987783346561918704916306733803546433397119659371581942197849757959644311961157850719832347584817681903357075272686873590340080104858430048184252972593489765073722802384032454156745577114850532966934660791646642585571310213780502396516550396323350866295542632815422069166820241617938558251974657102527856996429145931128580671784859223863066301110066355870765744569873048785156848853478609506736346500357857442119990004315431248808239561821810692081699566889353089122457894860888318089709280889417584258201226390511786971717292253514880252527152864285398356506721453750503441600452778724310981625952222636616409112703888990330000602495666350512814787618683301348030321612087609346832780933028637106984744544258406118198274299619561379030662594210885726866268014350459397102961988704646537581644000541585706717699289157834609197587230278606696995422713615295045311923506573029109874746362322912401317322550583330357473728149770426610496205522012353943513843283014996169953176563816257393826847034384223336135240779365449139474298315424222732019280261682292014415798279585504226953292229873913865340831915460930521200441481726761616880290426533632457631373957163827200872574337264190341071549238440804828679090179557545513544865674299111951204234797623004237028060519338020994384574552909139974529136186792383334320038204115658494194638417313045114379390472452803827924177872042933258200431979341844612818673476477877188189044696639986536907267428000842787230985853554308739030795112597055466164739146254432582981916406974889726930429841952289898312465333680176665676936799427108523516927505034212765116035516496542490334452915362647838128416152060074893354004114420666242694581140313767253882222589237810879131985863472362392795212076825275946726259026365788216112055346261323580308956337230480462929381524313041574675464286568006023316072673267577059034388099042604586841349409559849707063291389755997244356638595053822055386284719745816817091104530718346524862241151753660742439779547164610790164599507691291794127810440097666352194810119072768340103637799475170756445645853194671421605942952218547607250649157153776834085177827024052998658733767477894611836369992813446070286931908633868122579871924909435769921124881499874162064365209405847039169712548288650602694623023989616841107334719345007543083133145501579403847787659769437189062381523673812352085962765046268229550045411000657427531409454777950028897689685919411901763105667676239628589215759497018180272633560551099619516301812077683321360839107371619852042855396695570717725628697934100602498446213875719751846357787652961667489157681355688198839460825486254387934218321347324517564996323542434752472470395065094514432710402640500934690503569116399368957593683955476227708084429348820902170981223672715083165488299740242232617229987979311504786037889633906396655915726623196635919104560188033537943304941766566353812605145678132208843495057935306198600914282373620421594096625577919998564440603311177021802342739613968331916808162526323819722273026993355996782422198610159081941103435557564285420669886349396501176387897258919685769281330627894040332523305243466288160168020523512608817469005857061798427648471150811877959143874878843589145409564671431810425095284942864732123652176917857125992442747425388716877546884419741376418262887497845981060550119116798054918551284055743253545767961790099856122052806259305337961332278379495433320638416510324703877125670436527142709278239771309968153890961458819618791868073669393587476541873441390002426894538533264107383719457308174736759947791907017207512662743632829457622335240822956645705272222354290308949034531985134654430686957347091129534584037388694702248127634812608041819261269255027852861260368351237307903178116578130557330537564844252994781469097444742666451356844630501738284079060862226359362948817335000828274903867466772906109819576669705097605303616047664490757167068890258479014734477286490634533536039198695095899165788069687819034365749664579175179861898512344422144703105152233443043990690959815583973302778841490881687441303232778832226571094400722345587923818724585272083562882043210538887585851732118622398922746503500990636217604362778131115320583795158459219793513798626006215546640649124122836930944672964822202794860526817690146180985146189229277261252856685881508659921072312733069046951146923712282272147060186001751362681025535691789709930484872959915170784715052620574817972411585024661740483298543096046479160344725811768635319166365514092941124580486076276995252182332189608234334130550145998460596327124617096478281671632464047633580241196682750878083688349177742477279803215394382833368194937422358852081675334334571490855456448452922383956194529284354257105381943437970806401619235772885580094672451615414408564994983230904758482357515588215727105521679262632813717077237502859766752448834165912922868335842414483341054313874044852381167991442347990493676360429506908105926238315893732793368551682396455612256675028893793401811709318802429332701178141078137753238208396307796980609890866409517420458849231512377880505655255171973583352255519856686398972205722158259570095972760796276098153327167416319216832003570806749800222556699329894570264518153710564380991704565216776568528318297450126185363698508115918216324348920138198501121624691933828037377327917928482004582922424219043807832996181020752323987555627254593737230957893917992927946814045322370435099771680076158946270997156820754621414600760522197224097350331108283376598342544146594271826717508604198292384612026495741777317981639324241347940918991311613914461483139047716982663184737544752763539304927582258019470327891969848755675105309174344626636846450325013458215017796609409929205203491795911362471653860900893311316862759208433007148059056092542142806355295725263413398177072740489902931012997713861000494374222985278019878185889468995672008881374162636912203215358117237109839950464365525011684150242387262341597608834921708500171329388563854135263760628484128036850792888255923223408735659657967089097351188602704393697951901233412490212166412247711277263728178304629252239912047818604815549425392422605242410401806637232738620247137031279184130270241442919067417594436256649652552244639616116978418528596953699728503093672740670523666280843404522887303262873680837226443504708614377316571511253066051655814341482811244240211992778087922888751065765702375720988066803770405819305075430349466857162284883514479042815226974798147796203441181162351111062569073860692414278987013985554580135755029658855093453361400721927578792367885153261721622500312073644232687718464696224043243819009201387048596302644058297724165399588761988620967947099983139712085892757490074387266181857062029876022123014021140406244187505465567494526136871240988973245530221863119355306941239927500349218927843847687790044380826248655793967452498559347813099327157489739005395182047868399090763243903388467481165963682357753358200315741478079659105474078964305732421121403705988882307060450548339141762757878944031395669577321613187444024865344136345752079134881932729121475405907450399106342967033756863830989909189085725364487268488865416480034166661621228293985898644642241515664926641154164596657835242206280794789254291162089884325936072216473263016470326136193655109712767413718376636674074943564326811106454688332732687377819695672817563020908140637165529746841346626849642144363436720393736616173732237989075840540397624413097284581754463060869724453783917799605798573470953690257077183858613105974108290415332007028567747649833732654264903070683705067090778823130106595629788321154026649879577732040082815029201168244989996085420714874289730924011240280635478211305212844614520392274090335395809021884465885410042060311341329038270746467468516055295101422687595908876413749010681960248854428803444883065490800826423300051920634285463997657094884384003204401524037306715382164699627673527454600751673492616089983457907649963288526807959006630113346117796288948339426083427595718858176946433771425432302607901385575301012706170304876597344451864501886868256420783370321401868076944167395051125816099896795510057589973377178431345057927757654189050414854548161777341941151525143782323553292716506306926171392913151041322770691238289631718097573786877342135524045670658990861801364235707081128114749346284637063861513338505776417447839489222555857105025564831881412325659849483490679344540072201975859079279827543812930882097010623790098310333714999636827460839667415275014549265800868185487979139805071913877239519750304057824256109019533516677628922085889090836465984280293454592593660508054649332818964120436899786938108008151035693193404560382992972627873665682503391093646380980379393654093115769027402619719897881620580983547776626119406853338470688673913480741975379031063036750581354260510734664080308242053314638564420321938583420857232280938704221921441225171870682820075026873371446873011198007359532288881708150127416215492104256395659321687481500186226761660628445136805201702158764677894878051336765071546887509161039044514204666856732399979619521254770379684524271932585204911690881914752485469923128557919341790334006690841380594736813578420327608233290797645965437540411160267834608266514886730484338578471323793987505590681756552832489099077590033057548923282379473463877023727412348426937493737923977942624039719308639932104562627946219642362153351213618361930224672987188354405632221996158322487994494599647872381269401105225326596791592362363123182299609256345239858160409403467963669360756773483255877391091333878784946060259577879344516297741039923794204695374384078200493633044313965473907317847939316624492045026329568845289128526509025193440948007043478546267796131310441048903177128819352481980677408196744690701178277227592660703141353074941656573125865356027205680168536000177502709372796383440560723565298253160365803957043429085921289650964368946712606498161042883370835804491550661649791549721971528068657450839906934499731558125157867637655595314684059750761253454761965200123240847729089855176544933625828256518169840875357653284564635883376682861771268356783642250291248368903333791925846059278482986795652900710732631072598692030815449485077167606746866469260508936151914677169635320869792003888095953961524626996669911164119383293373251990503067818690164796389974632965448696674232928710963461667052251611406562555887783584733815288840117666993530066288006903095420686258394343835426809873922805880620194746839491554599265263371034784716921582977721830022966791412468608227052011592936798252517875166381081659342261290524303907307847694492212722563547455729062427496167421770862772766124844060956799007882522346864266009085364546109834191843486371729722930532469560146572109699799105483346806330996466045489559229044863560380299795441835712380935012246642095092096802287824989142175706291861022762516760596119028379744398477538509943396124362712840861410404703135471097133359019444561739001138529272680264499786229989558369143734006475764978315178107082251675658445597755810870484475249893018866311802926662251375105340650295155085743415188736730282152322383333339887963230088408338575098462869291796383825707248853052253883235303451499493964923718620823892087310347064104095965084020538356427432879250582793838238528522310621823292742072902554751990761052689199983824553463216350434872019097042084932561166036274772750835908066941219892919607609450396612881949050517493505376031231603738479988260275160697293461247179786891478060486404022945788473971478605426648581800108516456396054467418384464064585183380087448701037856719160422695135995102061867722674162190011619577549350054015470912547982979854065535211035953907197285448662234135580312060736157479472146016588978513767928193896712312195835332752022592175919945898516627220602308718661487772924263485118080612559777582398528855640748307366451201241782018838606802473077368364456691839711064855092634949893111775253957485471085667348943944215501244090692854543441976060673745385820849910267229053971069296279742668217621414598984585087496879787348707899185591944181595976036440981501919105325632568252230562180553309009236741054238376990994869320920532401989867305679089962403366726684216468341080214446449847057632137097226280736435262962123454513064978693769036570256091017123771060296057838302988509518267829628100520191638579081969511625002725235743479766263940064186133892174143641737090445210374548526071407369110606904262629428013657783374926328065701247536907736139029623605786167043516760995570455243127286764431732008554138284016412764678952946868653343878443417133068519169852749918365671234503298465751168007882006637373138140568108696984569824942314516154366820769112176541032652765723784165725136696785778754143974755209675376005985403163305742537407160403107989316912396651882471572148975628257076983761599817338291506021307780716649781795420394782384463314728232454678040800556484954156226898841529417949833137840500070198011177200376302728040561592641715948191763917771404112340428622632885622250025120972470261509222065061055100140233996844316137197765320670936732375682853710006898541734320812739557341772552993367421771443851800067613320001468030000489468190577312176034279997497336012641054351557961279380819096552486723802688769797594072142481423408896968934555378749791739315977105176862441148771812148563447210573627644265636252950912955401617360425704021337024290320799336861828909592513083286160948267984062154539142062726158458809349876172747178934247028268837034310937679818674078985985570097740405660161789212483818545290624940536700408204346643488967833498241173826322910058557882153473370795516376937297568917068522659542427194825000877394345493093336056300432620790811641853650885294194709388182312268815021320568177259096515791326207176077621217372369371308448959889012333152716429197288732367213124933268398208961104476205171467619270740531877845508692312938975943764944948057005636181406354137390431761028637201840055892348882841508343325152099250100290885857194911571054172745808930451880298803597866433357287320742203767534174953051432927900920440192882888443168737105932685529116761100256326536875474129624566769189066767099185755732437449020696732289258058958917288189679361765662567140252324794435315003424475540910890505660207339411906133927435875351587933746273628808812905248066622389280026523444397029287405478542583684735894591328089141197307334648895123173994371326166367888462217323723919061338488416790518876421397826184966922576537166386455018139729112210582874152266656294078466950915678885665358777391191779505901784545114614013584209855195753735845754856397023119149844995268192098213099508168333981883004496447713913991130928348400442537432570009802134562723438259336911493118741692973700144767869074606647824960677306088990889451065887205441896494100588960104359434905311775351107659276056877297240066940421510558942842081224209502510468483887603691758638058480814302647441167920669621123659435209777062653629791271882307306607634406230156934390954412875066011976987657312944684449270131902695561528755157388304184540482829473405170558646899937933935596215249644027974590152005680920607622272058995228509090286624343003073955124235726445067019630337944239726660157179570906183845366949486183835664331061673768426506880055326080457101977121720027490733679331755347771724938716482557710582525917741778752959494873242197032441316369296120379876316246850035845959542486324299167333882151028328936081584907426415160439567906545489660199158702003541532793571431729887317531762504824624483260027564563679755488959358762389097972952204727590845072599756369603338063810823285679553760573716153519949837356762981806396203614478961441559252042208078394848538191457701094729501290857499741242505439172592737569783127178572391517647724455302238492507064219681385351103648562672063126575250647041046324931320908371303579253359814168027549120526824981401717309315254064219782595071713692387247513192214724039790555050429664204402756635202421064872808927380377320890160187387197013082001087438062150015064224893617052921926491411787959445992690596359316182140539295765547789380538708373158586121656902108492733753297770614531599177892037620621720120685304348065482269689424079258367491186565685770135976770004204599241030878392538880406749764170246611311450820238982820477565320463246052294400213986461353796923425405074116484595257123649496250879464107781663656097089454347498261202586813693565656267003787722989807862020855599911079842842905055914578274750579875359228664184511784890128824156954297321515941598299185571779557308478003615994100436031328219794382482452862822993885465230054413164253709361978335942439433092730823418761250504900093875897775102856460968902438534854227581754746553213473584985598751364153905971090564665569108081639555064518934720650720798130098010566728600064049266436519879235991596663277351584446430186122709286716036951135934807831511478619439948572194750038143368928466589065452368996216903331520439504868884783227135358476305906999254541465575437980687442282615692473686557279947391579660773936220710197536296910188953426033536279582154375061858840876996649621300860653066503417496563324231070320790936051534819289258079541769891515607918952821855172525611016811974038262187445959431899994576731616716713052902013233751547045848856828761530408675249855746724748994864161862096169681582867181723277412518048934950858134403598359535351606004831457168200710910321161071910922966534109307941798953220637564002261211452054523792937310165181341906213285060521303326372846384702360122489238874798204007004122618700926247684150413828217707592580115063550435538189494673346387304481825006410533988697539747625089055806690996068047359748348139894946277513084333076069096202214184819672852666524537432851594806271271677758642990669440195823778345938297445787430130756877774279157899396299740385574469112574893276798199940629151578341010929358902620682900447836444931421845593450191104065382463148254506963712273672086833346444843013567121640168161854071283802394508504571185830474893101592292248633501086689447688949427766482446550888912086152198536221520371536315788150616714415534742776703643412377527714984299579652746730581541684736630252675508410844021959050725608363902838678163619284685761152830500440613574652851862161989585185422829091556283291653062376071995028087878829036193342398214904655799550692179613399149913592884080006754520271696780736129334328106710181258300448356240656774392863775113587008129302796311421072103786891171352569820174771591867965454309108887892041022009585517538032238749602602746679188215303886737686749355033886922457090071107121161421053042282995503143538767834682874902028767484154398247535715544179671031393298858686072775239481770554681730687031277748897079945065095615139834174291466576611495966170161197097961338998506199146536476585374931147228007359800413146877967418250798550097988245151389910895784341562567666559448992845760808369065269482095320361519422529117581595209338243137100033357154949787509865511839718015136562655642059480642654554836761083793529465264096343090990323076325982103245667525496977454359492367502824138147173326825701642188707013694038859025965450449504402651861222310676586639412002249367644018255061327462797192493588471866915220006845349444036541147381405957463925318767804296042705283672165551777744933079130271958655041124779337222431337131225031045465269209160647385780345634452515339261170488077896080583215888395672806461973263672008358429214346573240131656646280466591522585296187175321165724539402165291761846180008465644638620364575753885224777884309125152873867961115735548759955046834611766408543426983448420339049070703690345317574308096273951785285531483484871105819754183686714790098801211512548168263102007955795439828198479339905619246221022102032186978657654326850079992846373584228926628270331979570547019065941391795059863689592545235993266416745648856395972622170663054852172686862110858039447638444263384549732919842299702495799264028390341758009357065286081874088991239061467755179020109334874972665933962696832124042314759668677103184696518585019644006505646393637457786977677551050738182121710809523045975330221220110181063919086090260446806748158174522369189880875774197956082051628127368491634891072822733035199212270379436844586766607410050736424825049103991942187065343526492148745408273606986744378845736430208763415965068044197913618079532218762291613518922074787028507456756702022429927956746559566895278275457399781790326732284097918582877137235707046431178894642868616974672950459999848711109765244327322347255595761680782308817760200805820347903567619803426722023311611829958831757948350684433161175848617908007726421460158580578820197533354634062670964206683153932745360068281413965420966597400402125205606588702014303743444930673352485711962525137813879816350055950296196812574500249343295585224865000577921233635762145837314531226272327591166426460333184004504993306834539114790802286984360999387300457659025715936467261733568371647195093530166938486312124691689816376361426071984648222418443337115273815399020578719996416364456080539031022601580317310098030219379032424973482951360731648759968887082624575309845069070146957657381676687091030406035587190247304772660180622490169195027298703846192687639830843184656340965232824411240452200751816936525981213645903686628093832207605610518952797744043605402326428799147158478338734332400109209807556545963018902408576850394720362433389348888876068345454913915214580961739818139006148995111428027038842402306500718827795491399065315442821958406417380184896128230134330163940135284054256549829017559564701141303566701532602691371541460865745925577303049661089758451687168625114939589194788575978439926441437566579765355946210100320282921689825360869635082783404633275763427251900126859388421600275500761894263558201064845536022072012527075243327771894194859381196059995805041226720716308930974392300552521119467232276385771854348585897473986077768907119104203689781503913389337789594441721051985711505194727389803233623749932970790344894910761111226441772631255531531602485422400059138399394406089952533380946350225663706343068042173356763387111296503243620122575644291150103351072939786343209735781819036935235844585059743603338955546026135942555616766046148209945060692086822519284623486022370126102584378401327654515245540661347723174540514990255144531830051251691266438935932343662261534840937191055587370386225424413788010247283711557690647488783221290818784450716344302156367994379610786966570543889576642952547120098034129812895568632477891784963344442222092000088456531530317485857972201970498382085136192640277469507313062127046230746659412283642704101783746194040886420444887915950248412044791782295843784887254028687988454500645032586902354476329018759015947950801399063332195977135520759354848501946815696873053970114429716199427929079894568411918577688772644135710183813390543636272303268980836011304191289483781000418175643984963355118925208643967851220552760262298682602498041806081451624270384557917763614871329692827389408018389507977040887554563219189097004072819469032365313714274176606902007370139977184454651037888130443215106017209345061089713305539912305379187895296411246371353983485279368551252066684105053708761890579891142560563437729200960568406720587780065410839476348823435617806634634128978676012692085776037107171189638932299021096863563091849945963535367747044319967021734763299893079836495523717574602008291691514804497468165513864010939825735294825913254842844763585073282799778939712278519516262189894862866385574306185013606893950241579457960374670581436958289206174070628890347844286592835566155038318683063868092153998710533599350654696167552258705151646216360021893411887617182253321920578463207855433201107287802672691124459542769562391719458354269370074377163678306734227172513622403991452795822238312509432464734414047178105194591741018786176646677648394342223102320320414953169615018373069840496457270152913174749274203118121790297102847000779217260768997531114562803676906140226353850563417648380439669678164350359996908173011650240711549631309697653840872040806791387736321032222705968378458052065074863693082257097979084009282886530477027547676961803385262366907504327000958427782674350352020190042515015339199947423853048796926728274383727115694980028213969180575917457410064430986409032266304965267339820124535167588549831213084881857698340146732321622650233266588589584451795419892708975066763950999433785590383820853775033379508544217315371556870925635581122428347505442177238090055035643520587353404691353957868055539538316755086884853452061712590673933629795022626154187628315538759079343033580524893572980215288832411979252346130932012936242168079020798836220392678998418494277493788916382452182514423597707505045243114904343096909117560543146487193111044445315824807456159839313469483017374713893197837614262652801467990393796719866149536060097058103587165993927849976044650513965605385212563634000150909396242324054993119348240405416004861423811045006262462470538706950360172193499718712046193117051587511645840268499006663044455405588309786373333428365657964467368993189521586905293764792367284346267659164359641546442787167509977658856014929421599112988123770615291961232666561424243434161463067347927357521701017414121940916194790574006411981153760877569841177656956745861639445038315386666161809442202646009809217069786628757662950509888712838416561805401684154956490487369391594702483381392119221360718214689326554720289169474646517606999947638968376787844944728009225014624706935664206381087554612455141990511783969706429805193597168550224143603418492666419580910170026678186674666774637512116065316307436228605885424145029503911813139011769014430284556096096546183935552790831223854342326709291329898824356276266672246084751280197393045375501663299155912238782743000043045986336961227287505727389171935452604823529206773783925778051314346656670036280495918177053393487437711803378447671458377418972294825705851176907859876452308420904996739088493588167229816961863404660536882559127527340504708538875298696441618353883249130383803661825276364394720199458048966799764003887781179017493036721475331167023161348583166439329052428880836011016321331080431394250298616987965522820866348341264501297000058777371873916208261440539944251411060135159166144396719631852516078596975795727412995367302009498357690902337358616053674552953209554554841573666194376582672670666343019031918839390944960408311511278088915779336684592695866481925217990039723898496708161566400911053755663296304318456180033362548977969850002700683472505204246046986389243411734408634826219118145337471153914698339464769477692280899124801338152726293745243676619051166337008387493619079938538216901488321390425574476953991298345113061698639489747700867932373094190950888682692731200835383838714035578109384531414379621875383199680430354825805404537063841306698126505675957690496398005997219956524497493854058419546007289287160315461016568595161752483797743229761369136609277490879109181362664384867200052235608660990430069240606782211951842453344694545996715106840114144857568955147591419879614475815874990039537760796162211922242799916668476394332627699407612647622494116228801616532857410771775535756569990764697942428593275407711365190838660424423857507220576037469405742340631600671072792635005274813908956545803936565560969085152022626876140794422085757969017711789461011699853507617699079936369087658424417069823222846811437919362626364371219529322419373955163162984411064980270514150854691323768426663481985727237314937813878955615993693224144699719219104661923533105155790269876638642668846763148107116926974990172494329358397456654484460026319319211717615617794639501435431254619736685524974221583414397726074396397204483084638342018916326250320761399535152800820707641624385933606697023827600097299545023171561335250879075323233845135423992942510407559734165963833124989899309099499927259078409059958349303120972331370224776800902811651861486007200184564045097550940417419131564785024233127565183968816546194389450872216453543104699312224499921048030762756493341505385198373781701535426744289567065605486765953041875014688012979537380043972243757374876381376224501578610724421977180954645438512783046078587103750430926430908911521969313178579030437087779275308939642044249865267204695621036465157180466893515293731598591317706726935951061756988462450004444835316648611253692367015239339562493046763039720014210076687437604667318587377066178651386317508697781479818336133894326149595814248797550493467306422123927547307717056567214524030028773583398216374715986883701157264199509198092627281341665575553435463180239207670928639097491626043022497797275221982898871750138939295006315851014245882325711609000757440222310935052796856095537640782593457333923677779916255286706780392852394729018667076458691298870397202699978164350322648089885562895353657269416909626512719883709495861402009797187565918894838494306123483789501324032329039543419228781993103296401924955623884278370452093995473894280039376329258179190243169193580203163218000704647251704458170250650342445651564591190902097345754071064299305293999701934096696773821118666586634833610154468587317083257587319597493915037830270728492694604009870073801504400842275083405664418543753357718617202962023967534888115633184116795311547810496843239430022727921383569389043283489853130931317251192619120383729260785337720025423963001015521778229748254581442406812479012723001537776663637224239669303696009971713619185891866701688330562811654673697775873512439644204447698015348864941352275980843803847650173971458829729346160159874263816170340517177689958697299398639662629987092088764118152714798869674932049020938503291100683520222603863885335016858755826061628891774360733727307637219098478271077381729600448696597520520127817180818304625523011889006706582602730252572199667723547127458932462775716608170214248226937610690555864987521492082833973630589930252735771141923170455682166451300934606289778300703446434016807407857272101850528999733536253403946967502413249434690131769682853862605464010379870504118052463712711921553277094704411844705009673041851464870016491677227931205323461880425729874690611824286586567984976490638913278006204720717818336225831181249239113774882887219028907111436569946079874536024759177586360236213279298538268441161656234036426800133236016562279064952435149373007534387867402494146356819395819953691296132901845060442706161407612621688018847075297648865180834517594332683933241476070866619935199239538417783502960062311938480391290752453514417705135128908095263185084511520958006694037840253807953215042757672250490518873174816680750022618741744883273348509221610108326234811569504992219748760045455156966127665569068541354558927942001883198461911620022976338279184487131047593689968514886632993854006627316573183141035098015693230144950045036520359962505032531165070448123937394652380403177129447448747580992468435937421566511215724931011647073984784506177278168482311179739335702678486113296800002930356067208021131140445937041324682479292707848386879138616936416240574301809461759780927383465313402807865897269068501510108529747410358490074751205718206067043239921281602855879978523955347963053713724794901970206866940186055111093033984295542280700790827672311111561016552077162512318045218662691352146657895591366677258812720930384907552562708081253310286566381821473927028076655679932121261413480926627963466280339976557970595695357474298027167558667249018652283794718906526793844332644176621283572707004745549781225788567470231335319707652634133035408047541184285192487654979312062260431212549463710480784958390607079315619625488309167778794055184217600525877890528216226545844998127210307724075645508156449363848304982917064658831870516446322571407727244261909100828224857497649519999225384711182602078163116262656390191425182028914780236732736766609045145607411959616771672772872295535326807919797417780502953212531835866949719646269628598231719163618142254455767834230393819757561796318452881116195160021266099230245493513610435334874901471006052163633287261896385741929429582194000730526313839082609028961484320187957526636693712168720818220909930670843504910062680558970227977613021682128066530764653874008927658826050007547410456920472539744596170823900773167774897098331835129835245178355052456925587318271636576306005774944534295698511489228413550746990725643309001457950051649225616928095871725656258638948818056702996948083868078107636648851524248606686872710554563613199843286926031501679266155166328308529244484855840874961542458939170126039770340706560589364857395691006227987236163261529878960515826561491857332301298969656772098335719512067470335885369133598730380023222873679404918981153248100364629113479301642034859742087315624961312857657679151566651564857408582076550000391818143214354544854150370456892517274211128436292750291266167854507185235963625216056200985216699865786931080475498398535389238526496860798097291708070677724758015874244297264531405892947429368435935822863677525373069272398985640539757204579588049349215580202974761818405844411158606233032738136945338992668351273973079222762875477540297065806363587896688983991466233509544538243085144697995852725548913653238988569066388559356805047439468653027484596190301214386786698981535918122729229050611773609368783559410929474392575159551370829912808096233264009174617335259332403367015044372846313568758114049383696060243457788602320781128680715704069177046084445522584727796763018846272913226964295674092258439225204835280413313706316163886382239736717279967900975245509722195779395275834657477094958083257881453034644415513480338121999897467610643543596587012759474558269041574282512315785004218148559392318407875045338718050255650058199062459888382965981049090111043355572724794079331596154272430183359400923407016018279210257107904964783625820910955231780485547225155461579728652900057890414329019839457390887817543908577553917347716604298234978013407806865314449339617858292605161112453110524385904924630620062361552231449456449948911743317646702277500684083160129288984781789142916363608101753585523872110009155540151013194748531279331256892553588459033511591488287543938134148408776394136028158674636189679775914916082928947534812806106808804504723422376389621463964039280456282617381804446025921631511092084332586234756107953992201945541024655200886208976896347401864692715265297880733041955864251445367305573122023883009687195572609520621189826550636287541615854122888714281178546499855850267740146839289297685900203946424211813597211033035604256426906027559733735893995636320562416897603422143767098603056508954876567680405991837830218104491152566700206233430056572837544781289702360017385423925673035404090123265274215260295269316878063694754876424426090797581116424423942064774177655091042106134356995984334193457150546793024148915750866862824889178164706991941768331087736817714808269343838236461972057422087865365442912733986430292608363625423566197021664291856185718906595849043544731119281188926467068705058663516743888781605041989512504261831710109123630869845732470712543561060914338447312335600030297985577404275965635460255970244539512865257062611827719754125834014426775095443869217054883132918831506427336143020382625416164354926714870116938568462673779712583534003274954201549130144707171448310217543867399460347477671873488785373196491598424346313267895402042495840159628259993223224142299729118669666081770390165160937766594823566980557484172262013007917985933400835771961699350190348790449766883823886971660905209819154354946945093792461171860894125605483845600363696794374815579231757656636784172377079023137558129960962307335585383188209325770578455013761338658384035572314229550158815212013105400405494227243603425388066225793588101119105716369848401162860362453857574371099967764174650853570622721335040682300680283574829386474346903804987273062909811717223701633292659550067476041274927745728303283402715829735932124566996798821920631704963354900074832223831303581675696196189290402643336364955236842742368678079834049019839121553987358089831040356876876596848571941419725792095327391799865248377285488966268378643217953142110002432746885412616335844178494613270342550719322570635130902024049770516601426404712484790159667541036430928180900303574413174087617159681656260423267040418503390847624173836785514072576489327367408741428336227974588168387494120310502581191768251925184722019274526427693060871671573969485555659634857756133108075933355623556136939839372312399060706848491972717727952494055107795163875821366648242884726159416645332497976037297882426153386744560160993656641892982903035181816906973658840903314070492244710755936224028719043579739960450459662705611146959857647072150808235157671306346921964485490274214174071176456283544517565535736562855278413630957450896431186708919823240372223567829303985359766128450661093571548043014110183979340415745571584788831646767659917889583422396257775847486601062993586061718640546629758174877227156920716369798351761700643104437178338909496825120991778076430420066451480190780467923880812019326668924960070921680131870021047747698328316191330540826652480407195713549329991456250464958611874516910593296976165950197556080662949825886854808095873775836471043201283675489422578430746805015959290908384557124223303625067997407306865992153584878455780082303904415828832049094634248173618797286446355085905191286632246471663743970039954844203920007868065887967253956877470820688167725465452942414795201103598481451021523375755845716126947620964500527538657515455353726659011722674965058139795725838718539457805115381093071757106190416865313405102541783013831728781512776035699867375442732493854684029905377683363943494065256623050196717191700135391586053180151700115638003476330152186581606730990609768915869436995365757961054848283876558027053824831227803075549365396157206324623788809431772419463442500110159810494106851782073196429231743364891938257060303146196792605915974934103936542092357658159231804944996764595380710519062745540114380132013839462642613676794680182331687191791517453063642824647728392113291772808297163823858527800015635733237290122369507000215365855144643293425389381265786319203940192824362642584299375959917965722783219528133031894318658760164388008804790721698695307496268293624145362036178343329718491656824373549306983012823856685017200640058879014859996409229039752549697123787775070376216755451095285139652874278140509775140066972483406776788119911681216062127828081113583751499278619557924307605045669864219559406999805825432121202932291430861633228837059551139995668967445313594641154511584715503664890443268674985864695483409309350647875215515183694218459137693894716004337911418669818331804231870844147113212058319051803460944439623830236848676507064395531282321997057237582079442120763537617045374680647505686065539603388391376179820829789351722439977022933195221951673169949166848383757324244423087008790297584458131426645604036353780686439760249059996493086293311632454313789308241178209008249126986079616792980283351113384003607363014724713624335559647245190631161561573953631156133740045449879630334194756525420199377071366686981289260111371635033904003095281909786539143942347004954084540475177360811532327086400104603127141966643340710779042673124801160873650303170461056942291698113982179393469670663088642400239951053652430672015310633428935541228740850021493930915025979934405608504162302123732180775070625901959856209417567157733912864406515198742562514026442934255783580982172589172932443293660092021888877183754955074036214030129624044377413352564309375023644182196159190581364843881892807837022082129572956942073505313949374297824265356742675400820884198146033621391875736814103934411391388848041914607002005936346713527413824757030367425947080716807291202770093219835908999780227440444640648566680972067508702194323716235261192431529083605194159179242715570498565376877512432179184503018358958974603899260524813627702702721551985012394545026542893313693799861618165279140042690859922621456447610897521709679236031773768441320815367304044851078756186098950845660996272274721778767645529895495224964446115519937783752366703531753187775405561251556584042432913736531834389759516638664467286207649301527636071475409608947155210862025555249575027298694673785323683655690568190631827078700875912813283363006534486071226076712991209158606368286509949222654453076772802243261183774560818900337367170902041031992313170315523078852913661109294041521892868063383984617940021030056241170245001520221399813176329029320308495177857765807412933312044918504532967000780412111845765612022844415633675215392307561493178535430239946129081702564063616548938221544494054777187658930511191531679134538093521090491830224802667059911616618429293358915527204823477914576053140108909115392070828818577764356207609230461058331669436448181065967483755951294300507037770838566863370918605124364551116458601221663436200988588115698802053568627632758864840298188649653672718597889106488599793835043328527729534399916798122220105177338508356778838325119042619898844823360383263764232299726898984700849742880272690333950624498244284519179888827804023982813611337619611528888059333597918029130585948349743471023292973405849917481972739925413561267533385244589937691515762050303938698540744074326848653545609609302202732282776700964333899175675216531460754888742897678840187347834057857915599795648404996482277194875036594062363019349377086686814919096285222602447715362181767491672678897921397757036712439119734852900069650251816478496583316764942687878401819193949171860527572746919257413484176204779214204148216982551533666596421214261799042814294719305709660951592945876820146582889595570367862489905771778777772745235770591338657184220197806190409016723234291206509290435226558146846464551780508792821529562940167090404586811090336827260323059207345275539900542476934664342244543984151660740705383736855369235907571201390517896633333793374191871027349141366695922323037506696639793559957889974833850053474991609490799050070691378677916562297055420322998877904390505911644719322282889449021244946669644654448276077042893975198055994744511919447242382686955353742007930505614246794180570354245326987565265633103490374624789140438347222609277075375843802743846168380896509890214257055679281810741604610410561451009422299349137232615741641866309849832832312002763138873349649720075485000197449061797489425909303332569690805311212859012257430266910247886145148135535778392815243924803239429335728059749337203416008236303304094283890093512665346598873360364736331464420323938367938334380322345150842816780031128182935143597835811450867169184765303617134120608081306731536306907033501420197771109650568452875834285360058051698971126137153705861448969047995306017061220138266072360626118002454811617828974021994671288153700070158633121438900156928354641347250929083385309362884284995335292263120179430007498455505779869655870764540181170490194976006309496376017510536944079730645775599318534783183934690878046865802371730991158678282902976063166469351424392487922612299013625353721917258023989895886449718920920854606969637202686211168759747038203118032493356581416538610171092180084189031573895475888186200921951644979814687268207560165842288329082284772488451112066892980685632440626534346631424112065507043803836393744665252556120067239317336517546324944488010096597533790835591168423086776487629449952969689738650415785148918388263594879446858123345501115659889763959295149502648434402208576122387081119195886323869857929741677839589959434665064394208582656726995142549852889070975225839713634014709581503431138209140748188475896291473499005322644406423198377438196776187023315021076674032715705205640244102032486990054656148637538932421392451342773722411371503285116002402382265521994372400584570437943294369204379150679190454428050487093746536166379677377347761490228348781315805450060448618612222056109819867568645926282299363472821233070462694614036826179065461418894665093541797919088806993470172221866341296311943485420214354917797172419271553811458624470079792769225817833127322735369445661043079659028767565029543120872176282952233164617587564999220777330821219589620974526639826602679504618153848112831477486384492840761212777977184010652908495696285216927274335935938834821213323303942549377023460245028402490804577094570121086859851562035171128259544984209313532218666121820558580915449513390054583994799583613733368676766740826686169534688723806468789574127375070328619682197712025845630514190801508463536147383604637595938457227857963887197969171564846527946302446044007820043311068583992221523042903747572640350483786854552404290017463476036450605176895460900567089326615716215489485674660432440238760745101987782877257381177247517261751115598995986448107705129216225026604912626344989512328325665101189261644262174089843862673301409466544612738973254016823297314164164298688144112232324474655709612642397383331461481006612874635472169886042141441356550231362656658494180542775047322697153959519045441357509529065208792944375488862418113169918522929966815466510996054218421554153033765165444097772391461879091138226480390771548406482290303200698215822637212530687731054778298451510686829965921832600671954587414953178487619852613231519389616113312808305936787623112601882333621191839722748731080964920755833760633182518772168847466235664927455821297600808778361673246019628150291639800184364802290112618225285185008637766351612807644729300192388951452405459614849974116018587455450003646708343415266393445699716042566348900812196682828410062736549004865603860198865317356629216134766608140341746373653893543871261479529176632324047293664329229000107839681204716666264090114209873571220669001247703252819600444712765904804615326360091364037077764522562405929679362227639658187806737414673001204835971462312670709978285791421800525429537702677743539912037389678600767245715183774883912776495434164938574502183126352242612198252819464379342372458362145862825151448806260062559470379963747539114408701990790914317795038108384978378545029788157306578337733420825031270359489060908365790480322634270504425298320860715109598213213577935076875397941179876526369725667493632979590097113738589884693732266126206306595435458463747178725477299903992976363871145669702225373114389718106135408340846323341456356474908607442038029854579617235534131897203351602460851381531798863420824027143709020199422590819003867214165688514229691828949751769594098597487032588430712457547534809677499783082488775869773698222637196328923301471204553565308059128088659083945824294008391883611139370471217564626107602368452524335717324213248451836355539752122992603052109146278039769778329026768266844493450690683636454431022804698966263488329410220439875985129122052057439061504121841302324429442212481859204224833462602363084139561962076872501407085910948367243142723815293555282485043205995161786858689695942037634953118297077201348878196279190479198038330620306647538676203788597703546543687414640888641952831127320153832837666133345823451921573015314152117025161435364122457908040809563812789511328029359229186699308023969638185788347619747618379284483696273471313341634305309058664311559924617823806659599301877570815358963071694957138461570226521959326660883719202540123818837927533681180694528481697276620542879832012627953731548203704209358718908363695208403977674233676271123199951523932896060863282060271839659499356256850787977443734458702172834968353472566123457709866213333742032815199686944475969027810391767031358143975985877706211266620857260558216126592706381396194807325739220206413032143547962909587793159559158287185030534971747464252176346905713733892234933159087111334404145236352574550386473505343550895164232679210738216477841832782481144412317920450632162236769723719862032099555727411286911149778051502527256407499419148876031939454759527888451505973542685684476528873718054178962862283976421092745878307261108686452254391988844005365734330306450266168505405914631207477865699879444509601252913548627685997455369799670679423193904005345089598988972381454006899214782463502760344964579221036550133963815998338838244886859509129660857326507614326058052035268711687046811681957723052347874416686164025035907498703172802708296185660274780684715310702046467848451315997175706188728942259179928531108623465340786378026578317369842083608171146802662391276838443924832258620170562192087842285416616751458109609967350591611239401258710506862207596883493135206672104374497471132946572202376125277068569158864917265652940195542203699593393912374775393933468639998090996016480734104278368297098255373063573123628773426959555475099691219332176767549196022584389789340287720608075624977282955904318416870695230310214981843152692410310005584252534883035197385858266228038105744738099831355975327446305206924943635459725151371288365231289192091987794450887971872110114881709122021426876030688740678232476861102249524522348596974790977536987597469969657386051765141777333567942184323036675725059116942209474767117925764426201687549814972974593150749125620067648957412119890717147189202351460708622487329753806446820266768829562832566509817346495905554550253972180143650239648505294311779777650047152845650634325200151988844166208060194184105381052222534165644594472237052084901760892661536951260775804639511633688317167190041801848628842844818048801433564738950629906387130886178329275864332831921416275477470549299436712280685797856281666579096142321156380813891454885804926900377670808432767802732475226979956893942577864944597413935895441703119728965435751252998415254543503656551817240155192757199844557704082058994091300319126122293046216531211374762965481830986270681459920306368173621111939907245072171831494098826532256527763626999981559683137455616736261569192748480042595820103581792794252945162431572900772804230942226218206774342828346620912663630341765847870821727792620934468517175638657384079215776315038047422272328214851125473791461552574950498837028477389605983044866931632716016528261050484359523664623440579940245766408775403958814465619361547410505403891359801997106009828760693634500793061707136545470758644932552901717502845092239015145757728938307905489060741157873710598360100334681283618216625662799040619372254375523220114104710318924565860773899998279703652483556518090602461581750453148115148679019866405148266781434665487781362869324091921266492830082656306318673651593797718393820463337123201792602278504460674379564663921401784149161947601542287158577282400463165725778256365331465107969953828390245439816614081263157030223506244304304651827490344723520773445178866008345246167945903554649117395206376329974090431142403038068940954401326397010377596927940940594456837676232108655503287360928332957416517270578194870902924356903576799352194577194805612623201327592975320202768899693615385526420313537051700003909597423524306493672160634464845738648686977269237464046324379773274932902124593007959779001152447637749285058368299758369836061639473100166745443310164872128041407639112926564483467172750138569317180861985219030689231705204253388814201921043201257190873691052947827126328609027909844236989944794612076613108950301735364049691941073110620494782708060705232826547630013962414543588474183433170347712185542371627868030741930820839662690323898692008030930284577352116761767858275158589723902034806001696216359803471971435077940852972016040903639381649602228695972112006122885510244946638588868528200374757330676197245827950879333383774041219461605744432247530640862595177635245813143587766511295667905411797924003226255958517096773670060972349195784774752676665669102395644836259457704054135915236685908010494539548485023610950469921860290993301513996078187496329568178806214707295112468113169904559669566303778129967137537692296325250736516434912407089382660420792347740784280656994949296550566864594578807035700485480430115306858871157103059645143938070414503138595504879289758958448033620850825748210249601395651748857925247710218000487241368007326027943069462696543423679878282342794079191858519134623170268441494119279598672470629649490854917983486916727447047976893009061875586080728423649464046283005968679119953234596815974187024771504815837369642354203703034814401792954171179239242883080437951914173939121765256670535284111430898552115030067281845760866620414753245146849478413655010260040864072227718443298455917451201483543837131108264539883437555431876115029477724569805063737976928141760381229888301920073055063042255023756145670051492382539228351462930590609349662594377542176650671155626255083088962470817761040514123461214292018329542467246518269029335024309492500771898671320318799718026859705584486876121872278254688724953063501010840700996190793675228155076403460580399701663502746187217683179036112739987379245109275292690627961052943838840373943395043604556651035450166466086807739944006984528711360929934364613212505462070843121218016716067343109190076233721781803152128457996560448128947606947841690407265339130671669771472875347615466070097811337926360637208731188341412859496366553174344717895896233490745109223151070325848416834040390419486909627130438628833272652919441762448548436045678393415969680309289398598961385718211003758400206703997548715614963717095237582720391604297098297568629934831580673712365505324212534072642449394853382099383251323959710665504118952630047770362923495241553362024455465270442768510449892616366565324409786631806383511922798598754833567637436714573678922652096847591561247249472238477596654277011197277977391505606672839288723072984614600393676598526380799774899657895614815450180384396892614240681407111954862205913595181356378106676920389800319445063352046094621190903833392523291551308140157049414522531643475528016970860675944983457250392067111677801218687357814557891386666964890364524302664107682155546425106426227706080155347573904605938499153074276584465393223204081605856838491893215968384473238453332284218686937565683172362730746100933111061563397199435228043386226800892352878647820780958122810592376647586606400613864078431726776289277527962377638037893727496184206452429158663535846305058229568039451915340627598195393086777146423815371676868951398874338013033787700938457628071883692760636432091371375335740139872561387386810366765480115693691623141948859157699911782752586567015633318253906106503418541164373946707242959390651642868735846482360401914812052059814567067822270493717467863650938116336298176636222107429270441122110192984222248786940502125195294512099025626020158794348279945039295852046891042890396776464536745053663847514612764170954020460770775145381033991550069037741050412737656136738539256011496399154529982756998103394685532769009490466418383832993055809654223488767160744871337991704315991315339548683855976140041868002305247877654097171973489489017247093008704968188680913784010181523920222261853793275491193089403075454281559575962491787809301891449400620403189068673559295159474263039864633069514570549355869002753045520862498855111424891474533285083610356522896609453463882745872527402629024332989723418170662818353361028007314074929262585758308597669825977341258978087605870891416193246050837357754185135792768497399202528007744025831250832503468899281092538297479841551880258918543957385417069936048288080366553681744383484523158773959568352388069978416963436610110276940128491376941360555147023039349959810761667915783010840561341100470475162433634137209513442958237771765081062587775202726096152943232935339230062331738278901773989118338193923051339678310670368879049011661266227363936187022051195558606647448463380409906829867027253249075537180688845913348717332781704646538572321973464677023761304498405944354789182477549009309800752251800839439088862329088526121655892795910552233101964501515242128540399494971168832111093033829047297803996874081700664611668826873553522940831749408363225383417914625580780999311692532901025155418294064411526923716609829870960160255951347486804888571009768321627078120528796397063012565430865340225998600964528615048405631146884965568558632467176026041586187014639804327421989242923844130467685015112607698547611194139000135279888673361289795696701780491699049227814138396451291425657557199467352719245456030373487771293850343679537045505502922877568987671424254674154811910423689113384834080818312669558188788725607263051593771112273924937532500320988939645296227970838076034731967908694291187954896490002705494109026513301421980562099313521872641917101454801698675436900104289107265681129643590987564933347111721481278264674143950439773932967466832520584119986261033682036540263305710982253732162868868678161293138673494021143535499720621363908650883544055881790475476148747669725503777465156547123179397167504704134170501950502201127017332898450446885783338799061120051128791592307914887598796645882891681462599762326730285166427062881228109493427267211553399582571050769015773738846419620672407480456287627120408300544159611439070834817357297656541923989827727777278841249256017983116000128845156146961240384830143964685202017798190545878881641316901143169879251643694096624656645668159718592596474155801798576688536184612634537157943224934750708082625593588502191005151035461359998392534908329532265497975077949528637422721211661142493688827157587311813611379328710940484063181681311110910899797604774129913017340331612611508009496977467970628110289383306547797351377835004412038727350021759713289246551960343830668621174235225555120358362075165026245589002593481126331800947642311218432321859578436833846117665624273599463096514564168125194734712550053396381551584476082095145107598656476595532397783305741044356159604712980799586385732488670150456338819501904804656604383778074004054436892807459161088135598991079389294530283156062685963921048630839182310277663218767968322320485941043675424764637757360311757625833706402872584694146063284985552620358680468107481042585136616909239685304464352529743978847063489648778655015133502504933662406076956501492172188519691880827647450221524361920965736942011331747281374683096199850122994427153990705157652928361905423122160431374371649020021138813238404350421572103972127033773783357753558306242735818655675360916064201590140172594927347556527502684582372927408880640755945912829367208179767541457323316172212952021357959650173368442618207054781993698742349979057787784567870054405753352658609283738763151589971551649999607610785446247427960989021762881240506067385508872190116926822909717480761066662810581491400301232007454147424787611294885412359656413869309869862441891762490145074209792961719311695200595144579503235957921168212785897939885563741938622992918146239551208000792566750325441416602974058092074289556880306011990620819373410120450077362165404404730385853450297316679773634752026707320349973567650287138634482249485339760015280334678226529600585646444401129904924031249501033005186548779568871319791727275371314395058326096117690249126294280635567034993167774142896394588185530050545756568765238540136036666822968611632571528067157499218958105244948033005457633855443601621031663861382903892633253673025345318580728310953653376508563864433418732854153923677097954384846011547960539812635468538027116771637333008309994874616522053834032378390415991207226084768201460722708870247158841262226977751285402240329572586310878103422131823773681202713813043132931288926810591871385749378182496965420845262929275015438958711571026605148563263139356280262709681357149022350190643479822249502407093967819270642674364218749773861878162477485947917469341704797428559198934296699873896564830891541395441248918243962377182999104642026924785770489612675221767482414928733768256652032129831223454454140430306965804760713368526229497678307883177864875034549524841403048221063216519391100976505750389846502638971098839239656468300690019117277089025717793557764728828225238173634841756930410754645522760444594322501719360197189843996531332694334274385972376311670437103955501296911577264534211930521782752181952884854674605628120348211002480577392802751742398912835287340955265613532365572373031586117025826681236342752368440595175148951008464404185549487805377150984804967139167441370784179001281795259593982459176886638120245664960061306437639516398715657007110027130555801377587294597843165451940480007580677040424688487664030071812781049254334333645628634972009331768810305597472219944650394568685847538260743644042800497671753039334770191666840451833890268157621125692036627716800144384098279566343475357428691570601400350280462994430915331972094802614534809293624706912708849882366155273934478459865706430519262884038315221841601556173295203649168746543255307061022650503244324737052026278532796111607571579580375432646502453651498300348860975846807346817276904272428551985575268652964618086240660486364312501744437555515179729815514741857036479624002612711444502300753572780630814779017619263840532334793469076012069639851392750440073538847039532692745315084107983242590612820792162157286897667287127727814091116725173143493405813671692329044376722179162942686848231979921600849604840627538697901568339765734036907731481706202909225471238621841261123579404769426256858813007644870759912598339738506002424182016114036967395651803987126909996125041751224989760950342698425231836297752753099045506764275839736932637584688416040512616153251947064181660655816996725321360461965878512823104911621951381061699229547068465507578993643136997614578577655450824269474581041698445751224651924221288089426219669407728387688799039832641212262289684940349236731870787796327284380320731083054003074453162731270356057324551712315790838674952860411106658764538577610098132122751412477302797970924025861370863416328519784186050570561687224432621941802037370551868986677126124417338813427154203395779316529324295176481784586968426613227049216689537132975935170805224877872380019371054475947797935684382952649152562671658295396507032090349005744499465317311007254003309980704645016793205035946933125346470888878211097236559933662258201887488637204042317502805995331846132003432469982658150376187172253740264679154899994793194811159815291055356010557737028115526594786438482417079259924990096981917857330817991000925595117144648734734893159385142931835269325572457680392278459143552004209036729583202247946829183988740709450368405628550648608010561542467065560785364970234650418618676389663040871466295429141875402967130746241259535588355676301639323898285507970688865011768851096153857046698423666153489714804718755889092995690106741231490702933096474813222746200508385743205519767945268681233146605191427969871714888241635965855463116389197031487051970755011629297802143790219297328155446111756422371508377990999825353146158597509163958537975170005251708369007286842729743798832439899457942935105466099585355428180465503295612699971602565133615060221654140465363633078816704440935047685894060349969587597342692348455745972564706600829085942685012836835890229120246610074055927241061000900376391670006271756920309445839975749043908298148046465251604300654912125596657323639984183291025418967497394701147846423907557988127281387181605955936524416312488476027250105817778075316553050208947447662685231834639071502943368571147765375704034450683790193130350457240926991463072683841883924340638420491113691165737250563245754158465581991808976726522557528999560674579230959477353396479239166200562541012250527598235379330895887902601383889212878212431644496372392118979496493394193345176137955658246117993049730540972500916114145747340375546701646914806217073885379377577576195298192554640619078070126621232488613729418342371412363735437412370291159840359907909725072401106959588080733285645497818026655787184790258398812749032153005528366180350176793167011064564001207851246976145174793717800353752274015577393206785362776612227777660942088852745239970477857308943695138519028170827815905752867950251028251715658463177463798791545826282722517758039016300523718768438072563736691805940187673661551247974699775445246394372268325118462517366632159930719746617105497565917661942129157341059132832653546360127652152772944323808782139335195860085062224446917494328110729523930420086022482229126038467479445174358863634454092638583708354925906273093868683625654596006595401314558932506563732021470066481137637944157143881762592830167185283687399783897335452105899323807063387765856376070797726955785930287005325976717062355918031545379789199246321856311447779251079043432205495334025513053413893844468685033380864392662975927036998508439185531984040714450474953892692523623691950607501819164661951652861120862119882711677966124990093513376020048449126986078484488003146115233096477020447308435974373066593592332710959703995283464716856870885320079444294831366128014639280436544597705174614960316815557186138912531956842167134369339217441629708296302457740359527309564926333032763649798886038995034035814692603007609956720884665973015245004433683306639140610386467207370401516316246912665616235286398092145541439924393565606739332559174945387307288152427256875852099003072509725942796802932539325872407956850229468484613534440441070770412634618949157210230380743251757449246905194169942735066074666190887537347389484027194866584958432641630288461858091111118196632420793373928884134558206364916682544855241801344531518275772774782489752735873887991517794901894371861304805416772522791577478938810272607742490119661378007167142644465455454451271150226659512576474811762193374129918923591693670232911140629874385034978720505165298641802286018463900095185730651122555591113996371722397926946851771383577608409048336833046754422557592810489801479856737485176631659183883043562033913220242755340602022576915398809318291424096129305364924214663590713417228895177415994742597424213638369156911359380357291408884120432408456240242423935682731954083481010465740271016636564806513559328916856024179701427896321304951077978816648623043118476174014689882650910550887883061336955205255266862200353991655388882124879266827430665117424020996889730653315441071836084422303319632126208431185518873092421158080701359065317688083180397930287093670758596965268671549221576634041543396524274707307651303100105895282932082964125307850096025148181827954711880332059664036019204608098088569014152635386857619522467826745808349787384710059736423030354126757827263401644891169518278444044780220153926610091552694780061484716944960618118782413954718479582445586686480346909205766126259374653480995204692807552099251899258909028967371712623409006907944544848255081446292352234486233931003188145706327654584405266906565155229496016785604601393232815243766330296685761466103299693456964746955118550041889377457246060975482284211975371031551162264500309005635728480408960256846806372025923915846777272495420321389318831845301062437317709471577178093376574033492203609728352554311155675557539187352826126049589068562120339138790990324060553893491835290330328016394126166594086399702431290234590634472032237061195975757922956755241665613738042229208307152725965365131344488021521434984040274516498149060957969072018822046338305261214787263822852745859777911724441175657996172057030692576675057246601004672306644021804865938753471141584436481003929497350478937750369967195793389246411708961563479875427831000939128078165172386226874829322643965969347367206387049192585539247342509279070934921201357732089453380692863049690742881896184016627906351269217678443629082036529311812705796434687763453285099401708506473779237816107568917308839945282151749366980214039694270000059888838895661036723612037501020057429807399352623942866233001351905974656953836673355185686209831206541054574171095381381336145530625524314876413259446209116463983738775977269209171838602469442733690238308657003726994290638657183285393726927873831542517975837802379039255005837478773701751910172380555978888025252679975249234472406549995017047348013127797919325873009447412213429575556980074010759629036220592788592944772819020370600739443531907774914918992923858762902606104630473844793067592331868034498062297340292840976580676752163677959352376186929405666789789549519030922332840259455264404238854690859728293918425325243485536705841256148437305256785395138334831367669102266693000822180556968495317816156020862300324907552260051802671981443391185718095012952089315485878545676327991635636676563357985023776649860794383519430753028924396191516107068594735714914708890852694079317967562791234152210489589446120079493879161655009133609635403272537629863754617011857257947685979324816284716155178063714175790260472657790058811053033384497154191672490302512654530258861857059229934731089990707259387648829025189672365188072961646708929860190177678248891313798764458448728063595720493470563100361395888724998551308438834842128663883284273421602590217372128698363074012414134605736398815824757181244688895022304926133088731824076569506355716592959651434852214704423624946032659760775492296202619571088124925916583766851048326630381613473013442667382935645544946667358435804406115324392091995758646031070321225898975597139042909224730906776966498542013214415519568430779892826520933147471944398083004858903932907111400513029347250574261346243030661488207743389628923306260557462581628405236243043486539668665676466378016763797090488182947531391424328062087411969151986448316181478133709152757327984461743907113826441077781945675888315391872494780393675569201934153698478097493678401675923319880528319958396740556418124638093734519851713169404190363513585624665330495666886197472750197950436561662393696203270109947707679798552137778191385065644356208526264596727301684574094190372798977995603565532903782174205619116739660713426756378637640214373296960846641774627793082741138228833425800814425107192174059554823162781755821042602158302297100387959396265300630673163938400642363985644143032373068067980669111518891385801967187727273139090933170692025858506844403062271780512318101485008915145726042723273520729375777254125378416804007089468283115425820243945771594825419471653740607898483892924774052009334804434205147452407470428176544306584759615214061304719831976300525970483830217087054916770533820343664793989617672451263921150570436750133310781538951305183251733155297806596782742515037814065486133302349743698238981068783097296547663210573587560246349765961375486650234066629572730761733434339692177474571849192237411528230694133861476534346179525541168767964848815846487235597127580995666026454589186473917924726434177016308363441535133112707143927843594662642027260040411165932432755121558043394468491098713094488049112723791528178632424851986865178191964129988047634635359718665629761198143213351299248587761365069804119291162024127630482430775331144234993508889679286749671870530341520960881013190146844390007667151861669186333723666502550533051851126169437624108733737631179275335674447775542858745144746299224720910799376932042287182729286454562843179856082354461748166330476689296798547041871459191841238424263462403406996281645287944169125321691991012611680702621337896616644435263957106288357838425973794109474242154494980907474876387698876531991617701981212100101821924412864298235526180854310247938990708710977712177239243717914538989813430085476393606510193881389217097814129994809820777124502763526796721331506414554687152077388717243632768755073384359403251898767663495118972489775048432986527489283943033053940121645987325067959210720801582852504806037737719491153291302989723657167634442847789541025974586110000036157834450315316361476914003966096524695651502075962269294992263726840817370575852924321689958756048680670093023149699923058997732310650942631286640600401233104440553537674050549190362681780650090859062348910709625551194196438125636904069163656792193889785209753157503783151578565259218561870527458869714243811516544059706169323013362070068794370656387225393389640252979525592781814795894959810416669725404124746623526904505421879602332413314768790284130498522304042372821584988292656679169726535298779846132636627657018419491336020100665119697195322629396612426436542554756238782981132599728720675153917576117408600048468097005987328697636825808201913119649798128194031775112000371856072803461569400713250626751616275475820580902331110552423980133742811104019840825546148420816392037161472591028882033146586471392189329274279200268002185328713703710800508563971683853686835173439399907829689693936706777803391500160286748675950031442220664176598159623075627031313748874827645526032214995043220368498897360804819107295872623228960013839288112912448568825007701368034696366017414805254663232681352276253729321018107410794686589229626558739854162198874675966088635317735929323656453983332026187850638808681678817119482022186703456007156323028965511208991238639590833819401636464565468610669464055309834726819218124289167291837630179757184790283405742489512619620706204833562665877034443100117417735382144984025237998799909221600925335875638594701323082083075956145251014983991095107258740662117950310768934141740318792048922853644478978215257984070114207409964319984842804992225098888049251937612421431600331159629748137574581952255219999119831746950498482246318793412740014342921074920595210730550631363997435564737243306943067459707241190903725089209404435024653922076678424012066479514992294178408034183808053244958787568289147399251134408459261960708677371390360490818482665996212505133708452273836357346234522957630995928035996271323055157022448956521586221012985248854571202998015105352068964574385109344182391581434401293229663458006210242039393402265459850748632032292329578131334081304139238606510678818124268580138618450880882416330213611461117408266488805748072397754082837916829332889586026084189044532829340930051764454095859845668754611201581835121247216838702724690588924277276407068464253073379147059209136882078875934718847894475862575214934664234768903587399633195223641388614935750978590265676274037611294062444908330370427991905519506250662104869246180664539338408122688704542809316033948482363180414617613596579692111014363816664183566620320390232801912741244662381356897892834552023905141939021427639702059658743652719953601373207164996582510318857283544501570199243605955957713098614041047115999097807890343242747898219886938209227817872016155358176717534691927685369394848803101623577468019221748743445824425153507001343464629159922425253101926127070254150207758295482860618234107083190083611004494764003069057426784442345030476374135247394804390436201540788335336151621064750294674429874354738340210137025438638552023076844727534642307874211167210945741156974402715450234469075328772365465006262120234978159896937103088555134548616981065238990089507311110514081035276914658982899242832832749256546305040098232642101537142580299033540516869967748317361119820716943912637989577218742500956355376454175183981540917633428409624529688991411864670543256910030615616387882307263168893841093754701059588517458852081800846611370457053160941406274985731355804384032825637227653062295000156773164571753808609114743212975808817988954664519934646989924492107181916692696167646120572141597128790582654858369470179464779798760770900367515272810932861665109955986287924174301212128972964781827212718368779575510592016633842264705903375347858034745081336430796842505261107436735590651237439580345534855629528588308455026061886068834660386042590836363207729794224456315212764333047895862710357541613651952168134000626442729620256631964567703885775557728445167708627625820636886116774429357383710859862419321988821288902075372707050010361004783858288574380968668327901253784773076424130689920853231683277326712891858783394364454795599885966124055051713845640415572697469267895009328806439671757082988605135679728339750990922778353934417764688211810542613423627735142673924684805196563938014670851739866640511287792695073203726116477688410025092096062448267837581720301527433122225426090328672796242643440031302177190539441910910135259633918196011509342951923985621345653727957960293399454108309196680242943245691157038583992027098616549510670624437514562653215660172999308751688062592646175696074829191179908321955079328709788642095803861109367398347016423195536130541901439661487549906084640367265423061508816230871450894541328520666148262741375269229241685447880542589470155207684414250557670509880228041900134737455062306222111437334572196222318390191011085411604592734282178476373926402429650076779178211935404082940487368753929250003600271043209672784683828583847425461884598098222635019953464413982189897154510526807191198790938294143097955200788459653511442927325055569397796296276788079360596587126538916173570220759872087171456146544357141477421630500329089967751374692510568203308993467006593856935398645322574748302873171289216416661003781501171824363511717166835013919784807797229739671190917199939095489670472416002402801554768236454703478614006490469043036650828389147248278617662019730913276705413665124853140246311261341013558070057428667007634120975151738215236798424352913637050232283985969219256272589423626592127552623854179086995589629197645172571292752063677100763363826270822278498716858381415229830153730960010370888081264563695556099362814642751575177332131640479872180646264109567714150672347221533884855754468834918442004933426831780680406005308561300290497059276652950830431900818689758853979093891743250874122863312150129175976186569920699307947586828669726182771566601280450421849912142320481979345438770801912947383396144897491093394854851311515488763590705460630599437548468760232682932373925729171917964127015343085432026694824876569253995384818866195048256442289138478963451113433140479768950615852252114846712407108962517110307722917120169270816612406011993954176189787238673190855396969297366587634602051690874811508366053255603577484747653174973200496174231573272916507708328455622602533218319742628149664751700811167733016269800287258619246093545017732246920906012161594606147463508082552896290119071522469422065548222563192513225576674451376629430518883821326245284006680905883531487614386592939236183873950297437214809290891374903861248485241490010016795485079113716300484317637063224060554594592948956576842399426932568180426445849605734412247273399859916795287622980441441153717345225760224247722891787774995206183628373614153412411969038916878002153860075603990168114729188503461179994689820107965335554429775927832550431913457572534681732776310931546714315803774171704942590590471684807776023567244908088881619485759519521327881207437537198697984494940143984935890920211499036293631302335206037981465418085733294795062207749324328194112006136565329917959833376218168544305308094333437820611451888266086454601352283267282440583059223187611619366772612410265383708948950869299981414286936296955659995507263226112938026587411883451599564376167091041748333243581268714371126898584632481304886992862993405583440899725198112228649776123756798904585257208753653471986011985497091174424713806714807525121067676477264229803633126979463575142518950661959947382335308779378370426417050371273065457084559522903525173173730478686426421838895587708031978911933435457717787941576805021182346328143384603863642986658949824715511810949340679172591441819012601765885057457553491865727840175211525860353581143749445483641931217675274595019961623568280637448510361778279261119573737739511673646154540382717124632452967036583955548384562437973014732616793493318726886149655443290010107490964515026023111136513349435379968077405851872681039908634797026470550838844469423690001167290802287793944715484268762812625833098990778880306824964742602629177339549571066295587706285016991754765161418254446838066493865466243777531702060455228870062970033855237925247166846579944174497058211852446701322042255797408081561736593519187555172061771150489091880093763935585381072514477872710523029807368656812205110332324154670750396772336703841483446641655302479753967358927369190765561809934526701482051961516852164277525567621619193250917404447115110674413604209467134548000440729537819854805622243771770947198073263709138840563051572457869090176396907785556194572017937079641850845543545794243557590252171651953564662711015536277208571841282023750066571998404358784507656877720964376454827708564666649665400339535636993895905905730257899106620409676332195613827190809114683293543997235713559085568418842519467951951777020726369465544514034539138859647331881854242216929888501423797098529214277343743600689370157034199841674709638116766097689197504117696422389877752888175777697601363157304219445600947351056459520300227520019000442718407906921280901712064813265781719765171972412956453586795340065915996522542365316008455192485944197941787839379061219527963816205505594195898715564636443621514865730682605299516548339719144065852230584881425699237734830312459585818799652158371809350778795212796739132503626680733577576731992874071672980101839085458986360578012341189301346028370536381962670800387200021434732190572557122915331409160939193124861428966693404627149837060068612656352404794669685006543181659183682323029564941398297739941874193254930328826971678707147766261493267050567210864012886348778121075207735758378604388363890150817876650765173238449597325257735705449856846994512983282702708343064364917142412906232705806849475154252662897368779733917514396738206193000602670520605763149886915589159899997943876969168167538707319624770203653607986936970476484471000230365043634990337083157858899287860476901902734229879170148970098124138121116011773078045962542568765951177612810459374436190627142882299661910859754327465620178079737351208737984604477321819566672712030216963098857044807541713996186726663191031498246976751705605255936766380661403836783110560333334141134428407126460936383265885027967731982655103483743279481263965197037371686091374235544034918627762449980839256397242611163430278957561880505895674977359276219494658189232147685316776109599422762740362796978907955200138928056347094300853301360508927517909786090536408619216321358311327479039113732721413156607271899229750237555004138735163929574297346803153032483117400539604621775952136014963381374758859252325916603958106791343212938353991675262083301890762523756704218742244867168891102792231038200932829768113160478480345667912128614311825355565063600774178306139227202361974867840489867013858760332582805688948666646185277105276027007275684034126870640077098578642650057507880623272612324531823040899089758984368641823982026305773203043659485052180437977508890136993317864961904740819923924334601590053707777171196946964899386762736477333052974238951995431409019591993928964295212745808097705473967034336910143046870633885096563490343281497907256196624103281558508281324826452563741877831040175984461200906183795508053543150194073993202566115894640106656651311424403454677006374378643984869059524359570674447734195176403875928140070682566772160933122005228963141312262215913013781544776330485606196879541309933477731423712465119875647833489210491275320763174811605264392636059064460013949825810441484232694117642335973654940999981753988816893030824037277907331025423362888954906247846788287821676655073842785344634269434181789593936364105767107753076878131837062142463912901664201882164294023325937304182323736816058201965329919153931794067622713749613488188455912265214703248133550281806643852332754547661342245037105679784425203774653348779423358751554948387513974245326471013930363760393481328058368770835104235029450694249950869630499810953848271849597070392177517245936997086291217290330895607893805418877797946720482218304278997063484930230313073519290372804120602707583143526441431909624467011278027135100735683638709579668921846917586728102096016723555848077522595041820576187405425362167942559165080870737807769602773634387827655084882844722297788050148595480385535836142139871653223903154403266285278305279910635419003986968917524774001340551071590437258385334607920045464845176276901397767554007551345623592730528574967101301959627268132428186595052989258458190546560229736624294417757801628267091355056094003578522445342789977466922646947998949069901411665219572535006543737370262530573551381494951082864520384491751898458468277071641663158233172519343359046061119022092413098895815339360379822671576404662201054490385775019580241104978165507519042795066530202918484140162409807599771272713627132770365103077793220192961371973587420069089303186217486975376665145184440703226221618717939179793733227871291925824575537030608468281957545134321836554436184210306358187778911003863508217973968982766472204248570446322193532128812801299697827310907250871968197939895723010995789868871361221694529249959646412962833864112426496400302949716039149744149815248221194877781502134025577216459445505601117997584238118526554566091594795607636679092326668602360177030561323103020648221197078364868496599485718935625688990306907930646148737050945926184156876106057272620418701916313253435500221784799853469974543723919373264785055091017965971263932223269208668171896816419688810586476950143090776539366175801019790163991737425598025336834524099181966916294737435509522000396437015398816937744512737494986255713880573652780549336501424223156804270611685799252757730954259789713200560318460790159482279720624369545264403382451321000408361122529272884826433175566625643006374075072654846558833037835062696957418458479100391749801507333728557975440544861206330924640281729766840980757063305569591220876170775017283533614638165686189608977284616707918154670296970332483613835684918156452911271582244531366126281642419780545870440303567142342696840153744986801418502178928656459879539695145201949624850272793885456109898457181913019877850541963204854767197488599011469682047621391385506653650894218042159394060702754037838578180425569778512855615783308451695112592054239436265541183685117351795582103874794909323595080103635191445587457325832404122793139272187118263827386107015322761318227362494283108438557975282067087540695347005886089717002108251459630547438214383077627156240280937140254120191249515103928106454452483111667865733265261007693202255688782031326002298566794722197499311395025804712812164003487826316072773776196670678678885957382725232265469923214755907870517437199873629433022688319432452425933960450241028888558816847348448628490313614958520994130873166026597627579278364799580835071115443289609896002341364929628254983718979318668231356663824672573133475511971406038244674828616407052468686742506139105573346102811862732199284943425975111153825262629242304397423980364656580650391672073641500045043846926559060020454101060138963866441286678448155849673725697485478788662095821510269095573450620295084065384136497612110856308864274309132417858250390092301768100116656983192326137862378411124477250019415452774630839782383180361086502996929997449155084611371517021901011686086953101429390529205429468168364137862296564129567683378299753696632647986893131666074498130541117333433576344294196539408699586710384899936481329764143173422308629905691692379783645021557371951912419328454644122938958338014829706564123279343098233969615836484882439381855627558421259377388629132957344122335195927642656624039272523705797416115347757949199968550131745598202830844597208370770526227411672548928027563882360351643171728340811393714599831127926659985920650108744268517862710095617304777313504946805669995428006952639250969783972681107235818970439058335364796223876580582075318438313143245545500736037605008022465747043175386707891073059337446200814978711936534091415011085347434115395859146158100758818302092973296442111153517670105746613682334356988974158159026753545787215199230254287958291992460871302118823634827857309805152647505849837570187868215927785396805362463223350338063134574973394416650393523853116722603708393398591004477486691302334872836433340637479883022366157973994191371147107916007214484252197047512596557504536947017344624065978064748648883489000236536892298625881897726606908367859659571286971234840593786057987056365768781599284635906300205407396373585982766865717070818743880246044898758241281751399793975744906095585696923905664542920765963260063736428906411462082749448229320551350313035397697225831666328889945503659726762643446285397786600669775911738270166165015728331631413533077032412681438165354461254361199408764040165470479095085612494311950016554619472911193449577576825011589985333216731119608615276364203412491391912187578297997477826916608516649764843052384203625351557639555217142500602543044134631572517302702385075359194108614547013146533763624568040748542562482244996086319976301603520993705759886022398467338593845074136283996278553398524590165791492016463814415085282880532478406003852572420560166663778208897856238047185689022718030207443701186334142083280370668000256487261501762801445567879521718462375601528284636696387944865162143755781551367833194030799196357423519506934893732174548091793821195972430207045651937920137326091756538166580491299302159025003329812281980316731145358441161216248282195068356131765047304412296553073009446561304015268404097432792051632956793055942827493964888651972186677589820095124083357170611328750118930611298566874103710493841090591024627309128885318568639551504007699277516257854116046047544593040522190318761437430086139999161615405966474359734584573954549238439567803973966374830745448725194604488373944208535356322425266151185328622285692509926814144985689395861124517793979342921905342626958961638009074484158911608720616257539868291602593205197959590114683943175294433141783607760620660421755331446689236100979217088672559730331912190942154389217091961887391576868598527487530038659391085440249428478406457432070928113938083155169941859144424347381913798138192256128066135740092291440960316937127535014813893330604039518913983087440620361565750871285018807962594307457341752790260407339809409770742189219184884487704422576726858597748933242780298902171793098383962573047755114569361508470598399720973859478481425247917651663046634823342176566690223975043569154534627676629125415395309958132194323563289478076992434766883284764295787252263598668038245584415247499553789720898303776587221910172341434730456294394486010190618361392583737192880513464084841607459523557196139661150366913611000946166908741207633915338283396862335083368094133488970841352200117044865496064588940690267618511610392977220057104149060348676862203729557494937926976986865630758470226324908749911232803503280483705592220359145655681730869807957240572405265955435103549774156323853071058463006283368218157214177986330377381404277042291028041082052206060749007489683975923464668247896199889973550639085701240677243395911107452299636675776692068664585152191449417570756106729669025725840164936232392379018105280484558414822169034146667269440623622604999260036728050408420699022620186259160996243309058164414638879506783470563441088306972373983962680501318125123119908865837531724276592439251324284098591351968582978707093612797805368606574615569956012713965162567676703802704819367481880378680429625908751430807487761451349114111879472116373395234537170894665991348941172919963352624436605299927098100869952395428941088296564440056578158646443871994175773852464237883073394245788660744607986595823332586220459320055801564854086550703115166439997073700067719237047427292114491206884427614401659176113021730256186449984522329482638370482822030988394944268578668143058127279369699436622815496091775443694047371567877537263295541881086615406577778889338592051219011225996142744450669071795569915145938659807253570518796576100131359902803042842938498019073973702853694246370081284183671417589898132219363873853030367655779598018783206027466529876356174555187444517750179046691774131036056591098007250027528850482181717162532545754288783296251187481378220527657116975973316594644368826757033557526462737164883919729232252110263246029056907288743530711851842930432208332535843967276685411340866070509988288843368066409662840399678811748955875135074581466561940233555485750597866461160494462134615947585950902729991479352994288106639393553926384452485083027491396048649510785335172693352748440738598104826714628674464092529224646156223648542584558546849754408573659510601551264250506683464960547992722528576504386381317876805153386608852239939640542066324923315096322918340652352636255574789236935196657644016688664160374528877924017680218491674223087448508027414445870796288418404503375088048186960307518954611664786554622353921640320737455079129301846510430592262899577640673375433155767229151407859422060505856486515515328677903223307125681740110697752797740425150877722563897042101898989971219243219432407498843483212269309749734564977542710723045205108193347303654181422873758661464646712103681946233827394376101245427958531444601372961330123052628033906786400054819596715980815271179927914884051775747751010174462842941357603097955382470241283870249007882676682080525254412503520785584534590159953764231370047641926662625872244277609194116961448739451404875268527943914517075236070003058379560111346922443919584855288911626990531607884797811906740348598469123337125426363207638963972838283655100791883759451635375469503632721928676720836809628558162552139500168919374495701327815040332991689702129332717780310552796817747298933092823257693886313939214670862545588780184951406740260129232967709054758330758177356997648286383777952886176770624742622333169163639272233897991628920116424426550710676881037272485804919459321853777953632357148457779448078781748663870511622971504832471059801221476902985281991006310819011626282538553933323024144877270696315800073036421136696676761222548317444183641895870091933400268021774133160985168945994388750380829752217441809343706563133916886533207730381041465108063342790574998965729435664567782672367613987291790948211530571373459908210133036362297774953774302966339469954966797992074199724468602337407948700632382260935543871505725342908319516868807251141929531357461128086233891537538685194125489204040741588965958254799514716658255624281965631416302996814051583267340496092159788745014211461891011973783163094331459877180632640786877641074785016652033715829714608775341568204659476811146479880910666618341226976656027017064963015546779443494683891969402480330855743044140338867171931300884062407225083529251028166047081106088645796723028751306289980123698439641729030102407185559482910025088051599471283704968926834927621879971714768960887120970976268733198983877675774327326450856752069645158657325037495443941103386337947374371269103354967043175907728538023462208775472673731672703829000253591679491017778016666449197037790283189691176936326806229665495808537559035323002025333787038028811751473813729516432428621616748590116061016144259017371934834397011194558137928917884297772967361358273873929231467597332193772586362001139113218723045180194789804494794409628094128496243851674102431844598366811453828599044290737227633412395095919298266674459387591577874426372523115448546856707173417118273146489916479599541316559005432076661134188000327247361286899856414354924509409283098721925362876446881391752043777322196439444334632242624202969828571714828584136762302562489141582587436813342729452577160150496919865117422672094626101573664900623100893238430019908301453185852593795491807817515013444638417069628452582923404622009061711616008750185449334477208844517534042463383924817549899888217208772088478828522203142447920992920074202098484093935095532408306295740088732308446732539434304244553567137701968538697296865473387343586805078695746351990042775584495071742495711662112057888655235971224254560257172644652238367908289958845386829298197840463819052175338106702433959616603164485243668692500372257525522528929065744771414142107659736571564806107972548932478966513019615645091367636851175624946171291172441749043936603695058760040326238436694159009800098295082231519555988603248074951541351059776493468625813210714529403695385282748101189749134905297636822639927696592161465543794132758837325604061123619677186465087904262468273100531170334440811807952720130152750148874760648447832485900353250382549606298553453808479712280767618881599467292516365279486266761204173447639351941644082196710439283325297695178091562793893444827689178172768907379507509997027955698772724573997848703245334799420450018558831139339263096156718618745332694470547079295380009029582759614532495509621340338854507425155118102713220981477218324698195212429711836765117763805082557022437134119877889856189778502938751916612499754196356675270851426562606586307728694271414505878073479128212124168162325553742691444794481913419865476426913879527245106719892405030811154829688853671717217207288215427315597445335307381959272604442930295541112769592227310180818988074637475082427756160792041617268589036717954907186954582672669604526820059136129439250003507549434667336865638681658434489441080364116351801398617388048720223891825404927824623498539198556466384277538466843126899046625845312254819390151357433609237338081206841006290228781072517032046886541167720753521344899509655429365244473894505870097115639989497396856475881145533268770775720324605225622884936042332729656971578021951725992400181341432443364601620057256823649982359339557235219128455304581438789143870661503693894527625120478124732225604062961463404141121648603405815781755724028688683283832446781569474617463337390112609244455182695240759394849220291636811472050484499559958815041775146822587810526775330812967020378395962004679483020227867542788107820897719394231517978820560938880008192543754042900193059553613675318703445972516474108527184930603033478082984954340417426880349977607642566410842149624200078397297984382770557554033935282082498829524046936454909056655212092100533597376772755736754877346350808926914487899417129030606604430112888372083819758845600702944112121120439850133880974461335273553702899213248984756259894601002581906752598802923167659671369232245781306089891700581459668447055165290467963533805154922500029347871000524139013916189527353434747127607226246265470797180884514727280854522097734928615311076550593601591975811964495621254342911202840809218853548220807962195827545058985268064770984379559027469744470920326464813228244256681489731419650785668585110346352216436854913604358987042538919901289952928736280610534658954635081511987595632494841655039542875710639271648337247226673759014513274923491053281733244937871137077936918668830718342610341474919623423091896121667852033957019683173959269538453674356181974544481595972737572923430067256989339432549964465980611129125187641259886071044345229664307606970403746692991063054001792297113628488577158008512570189297597807489136470057884382277583762967235198293774246231783558263235474304055736499224142353760975414654449472906776917239520257267217729664420285238352467360757734831032379040245647105739234826671485955835789926325213844732235745117338545276806637154292929796667444126948677124410743227589672400563114181105865617921193519857378472518825430588315319797825645237521816860752377335229619797710294037987844398410931959977046483177480178329865361360148230871638701444527226009597026765933758116786196013630290295379140885840816218647498527035586659918254353346668051101820933305387760800869053374499890669058631715389354470117345842286280254666170361872586255599590873756543092435145250818279859752739985465114161844135873201882946955198145027976858531116974469515328976619574442934501329133114080594639980827594558437138042710299839031264352981662974846256090654076727063306597676838411218154243631541398257409840059750776750412146582457243095798801467850300567726143834626807278929403454650802317321142000026926181580308324862758301131854957531802000037269448816293478472346216132036050045407418833041478335402060012602012002716851670334356092212553751736197777014462639220076930516739442428812650752093359464605735298800656633389651880981831544299120182589514033254451742459304006707243092487310563686588200205118698269551942373488055413684816279622596324728465142942697611784391003480012672084162022330113077849757368373456172937212681638879596120243377472676706712956781991799059168492909630027679530495555654635211347976782848315407484293015358030448739671992006036090736217332308127473838979380640295107946718683011484249499801237303165021323687200915721974612535143190069625364392138572428389116839641141997669270979171632985291668951643146237019921231501291234638570729447095809644253750353346730269608764471038946627275318945332005947427758373633922298959979392307187019451939672211501821681849279924829937128127624263265903862061127713604853329531395912684695339638534251805523225714389281039887545981597119313987515907745531345560698272591769256017374442797453742728583539427935739205218148780311886713351093811345292177017142504543531195645835757751200992073478273574131651920114782047809802090129488445848413857235427226291347942883645139435848240167242300979362697309924316639333349998246827359337565236765039236434541249031715947026412515068252528780316998194363420051759980843429720326261156873653936951216576652847103698573409062002744050098357283145049818121710760265627691340710352659859461752624033991129273497205802855631706379076093095550240861841663443565545087476634836240767688171855197400386869744782915959615557620562779395184470655928926290289486261806140176671886742108274872048485641503948538261079425254500850089439409040023802785898163537561491365338852260511149340789817240532861471054351660533009302485140411372160340293561634183255831217889032099218483406367567433982028837410698306453342114716341112791228833053256574701726295166281192804602212365335754040802529402111315618937781846802697079064586708906047939815294559641728440054091725254011991011900009993857743025959263055541655713699776492897256872496224075311630695484784748590239685764490152489982945903077486649435148348528291474615031182039947330300370286911457349011661328994325182539705614823458375386084414506433822061033975737455347373005049687768211387010524960818867719298268571521208078146256986284518802876877850339638364209568752598433512860324467873838664302643799159435963605580975422563404536884390906563036428700742320325012826264220584695400956877281894809238696909953227482260230942474460096267556826709373147239508023856190663300718574879244351918297886214029439910244917715048220524242781255278906577605551531859183785924034188834972286832344106664689051734588858764644913470296361775578385413493601418074366387929070465076039359995653962813597066845602388736227786435870176225659553399105792800805587400025417233784620806714002100893142560781881301411973113484472606286633055328033720904008778572031688589362647350528575585020688110030860866269066763431096382733727823212061289670864459179018273839929758928337177100081148340198139002322922283667443772706578820538763622656253610508065435010946880263578425594509922530202486543227766282229934398463998565168365526774831340086060453264371350215000496101982484284067055212582334104617028631928213763992175639044168262851835982755078407790012606195571140419803454572240378489600360467502773566775311978357869341329935178419671136834430418919673034185370175555153566627412793050581453580525707949501548306845563406531633172453460151442583690568899007145339882710309041863176047566246099492629000856892364565177740659291990435442815269657743607535441356181082066371559160827397232134227805560924677589809292848229303658233283945671234337617125466882740405821171327581739811441203003869406162840226149939777661414414620873511833775123480194580295202043873059085861903707309858274650403585548568834684510770985927318757490489038073048134323248277289384159437077572000649480414654714519884513146676056774286665600998154009220354534480259794357078661158258740720542858692411307689466008176125415514727973696259992664508608734601511827451748770054289943341977088002717597968450237591180598563460152691119949651724828514879531106387472032302032558909302428536995674668733674752443612273553812448917017483078599028861093519572586272305295227694961420597970705683333659198819385348952289947877954386707206578054261785945436317423639004214235354805233443157295500423153393130140218608977945129235679934368555434731769520448099398317620501437677549979012979512469203877248091506585305088678613742152125953022371342691932143726766288222727063967678780271637971746601705972006065954896665486617318020403446335869705937889082757809096908783406787643360538543543896533431703832542821388825886178809490400052818905324381160336478116343743840226619721576604909974936984394243530836562476963815089086308298664972357721939124572330078285651731707982061414198568395722936715971638806463676803576480462226800612913021049694600567199899438211164089886916465586523064437168075969892330476516383189068538157553289233330576178677311883348342278276781018122499865716552175877363359939526366530249138584910000062627115747885332620249705778472065917750454925751903540016700368295204539388420337865887368042984773224550833521785529694441331935809698967658840133694000083514555862790845206590205742064135419318741045105001256363316489588062785129367631230568578295445254635870499287468962717652521591369624533727119332432666315278538230179592063184810979203693102647962342009425122855265082470814324771809699736086825990515343083427518699054085910898458129992430843085218851808946314601866911645481943909401205733927295115499616442188102264333548935059375019742677864426109502044038723229937144823284457438771679416936055256835660231739247800706715623081897508269683473555778733751640612917463558613412088514807280739369528908667388262830877110159608686363814229214543258434512926967726418013548926041030817127780243242802276749995961134002524037099564348839554671124711510073207140332528604760950469046829953644083223127101986238618492546670193351219795104466397448964271109392382327060769728574005247160851068190819483274917823402006078146734225691761729733420602647876288062360883746351018810935618049417346355304160055526031831772628236653384628944494802021479244573092737807155583070036638869688321540573563230242216144331792262481737616496045840996485002224501941178010471780031807685923642970334981916653343695958113114151709560128118290265734397041280660644582729779265064282638150899290401579056276040879857556887613107921050165639953146627960337172757530200744059028834014225295429729180538788503393514838469500796002211532959780242872346554763649717171545672862341382427135532260111976921321129573201046861504456020878388623565926401005448502350766999181893327765678479070344489443939470451483930913746931896682815545598277878143883770820611293614002974917501314193557088474100351545395845741302121467525729248681722331757213114078764468809267370395979621459227960513289612207083331117555418838599208198181571399846671614082288587950472012440741696281408550223206867732301656937610023670502277376972451888432370816049515259594680063867528005813388914591242385210245146535657235420063976580413451139369871366817351572605657590846275073251271645160698511444082382771623694833907971280241700526775592346290962820573823917360513365724782992927116106778125215417797931575725211058096869317226156762614052073790491873566977430424624670441688694256485298807258371603638340854598985440745888767619257305099993622402405353052037238464751071833072458187838913742657553863874501641048544908419726169997687259387531161544211175105286187281754214600000359302036518457594493463653503884350963787759675309811951587524285871173836771667420262478617492178817395879071750618415726857881304080947867968016039276812249112953783843280003417377885178837471198026872649804514714560974026578300867170443696474648730229899116896356532158313247937774450643141751258503856166988925985183806952843917311690791114292138080316634476445253157518343317172660583728806267223429455872100743278419009286400291098821511464795438733536914914434203297216795261119431404556998277477155238648127786453079960070515368924558179310863314212430454276306003358248774391558161802430021120898391150904018001912313225354647469567727122068997702586186523101764449438705491240462931528923946575506170677649645801176748063842991420057955447091781479076705573555057673338475921648563168174469158988146562278624147947291619745001290131735479765560868083074601113838963782453751933764911733240510690540792585081428895534435797956947682219698683234584790872824536811896006998767823119125468364092381206276459027621451189830711533955319227170208365010385218595470871599960573305960707759105733023939337058185974394746499796324944261297701462313842381698436866885218042942667106911292999381590514600187102733924375021156085515686595118100468467319655643531419727031463619762517206691596042289543340649320595518003818788679138136185698088249052129699926305058363007981065248646442497362020581818524503952079134122629267714353316528947227306540187088159305616864674307105112953270151894053511287079879037933286497780000439260831559188042231517022388129635236564275426836523746003134430294667527550814604769700619223393934924295643384028231687310504037331374840960411200205999824316249730562755701260258812746135763709654103437625536912535797469979230263942034257057180721623152170833436087661192890815136488421107541857131786880315006935626929879510461537649106893172081038559488723556145477839447712660154949148478918169681117140192636543514937255880719775415715718719778076697078232832310077500799228596358246223321108812210852823786422853083454696543236077933921750252964084922735182204265186191937806746681541271178609118156098895748376166007336108232009109344963872543294649252045429682628373457989574678747430588745301356364651660766424537340200127166234038289977157718376110173016387978411926434610984120003356755589004223123635608892633475393281370601352278455846846337020091252969507272923276532280485913826557048985292237733999292818030473573298683875041668843495931716704822695502521284102691407359378368461645225317077409821985719706813535991167589263911340120467058092774678542327008889322502424351200867147624244885204694636137760901398100389006771560794039072721068406824631131756342003117189591857014245408793294281193319889607006445203359201986490268418413022820296950140144243188384245512129648096755292342096750025819129237468014064986129346978486949366211602904605018443691084693825996497654031270499082333772925729557738937342152250063755768056589528528496365149090964242057724617956420984869103077374421198229961969907797908933478344678629244696551879726655877724214162570063106295815424756239045969041363824242807034831987059859493784019483285043585624824402690071976306880507208556147814701941360838106955917397096939354341039918368505194823443687507154373519500333545431393863141529275260885679074400617845898349381457489819855635641595771262294281682007676198980571458483096878642580831949791529812145254301580231245739851262675996768210205226370166282603915815926985365577858095509792204581790929401389568256724524291536462403109097670521932055595215356821434672324493065949835563470056154855875289607312143370778519110692730631778648416173076717507012061376811913813334459286159349052224733135992812842231188982796614649219914979955095028869260636879447325461384947434998706826794849196880182308954748457765816916242553694331957656826053371104090938029269991649247919971334361327241492653810081701470626248500973927970607925549961165501196692587468315879904831417442212048620859591404578975811435924149366677025192308253507936749760645857964254771833864589560768776031938321411472679463982678727019156511960094487520477940887522170377002720856823571611654768577851762349759552218943023074564244634177440328880262718340834867538394823135787382405196160437571347269099194466627902720741952314931240054265796377726103090690567919520104109912676605088667416280492403310861251987392935477947804953029523085991912667565015119130704068711109039529859002114382909083787574143009513286584968737819373402573171480131347319630395463751404601514105460022769839528707795572520482819703338160536898700784056747481500026510669146780250208934070926773643182962755769629791792153001137148486179133786560558951168593231621884838371315239376638182704853651279560246071618840887937762711430933831550431888670576090733901446785726055816250163199589026316323662787089550360637501857631505704583526339611363684175975652996997479893616128892744297130209807735891432986024035781025920429790887245751731144849897649520614571447832430996955691172749366205289336746313214545004319235161431262172358281230805390940184345125097411365658663413204998809507313143426785340283390155662494651769536179795204535507063575943393864903319195016969910001735857907345322787590812281459314589994159597830962145279814507791242621229815607267855458162752569841805096698157040362213395348450565836108719961076133102538039014841137618373264145654275298125233847924534239984282665302496382996227410524014481208195754101605248600733458888207486107465227398575126276233195309881803721416857758721086047572236817962848469524947443960120142497365141217668386424105059946449059518651075317190784920478141001581722310480994615070903882107455684158167581319080133780367219575339781798987563076401314052275138630894165605232616682945033422417367330499622494631847674831632043617571074021272630453561793853556736441524261866829738037227281759629348350346615558498242933899065672350205225379334288470538224394488221792907431147247476847696856656605021436395339267478601302364561097427711626805205574388206210320216275648170496359792845927875757966117120051914720359492170932694681268001646037237900356991456851618391942208137157567920811070169136664190007574040231001770736448809127866686435004947946610281325943363240280544415084509727914884791168566979552458116466821335038670807516684587284198816784998624728635025174550541071245940407609691304599648630446937168477689687854872956822736920491000443234807511164363489948017131084812336427097291583573640852094526322088355113703635692826130319096228427201502136527614993044427163670611482283080630860559597489957073577053145849782708801340271947205486320022084829329484620279482752834920057995648116949684469494917716939539408265070592894067152616174266872960371244904251380119787357545241715149558600935031428717061063065037580321945149883165525624147384935772464479764613713957561215330430316390306679863527896506814662903807975264562829459985208446170955833642883308266990249004244716732359762376314804792997264888852120468525839199112400521680571683828961846155953078274104826827925893457438030087097428745575678512845718062790638015219315955698968523376631541627237362443903164603171885917243725276425395136339969695920483270539313751820030646761834231974766018645552857835925168395032274377774009493715343871972828372271939594533653147646268411191835918166027469041751081576133840643092201164773569840939688097495994379805243448787942613370848078150775557472150210162541928170659527879599942816396064595541399151686271078976241832648519763537460271324235062843015444076649805831779363551411343122593700434987026072124853036276340835961383974125533175174347042005564297647480119030919187318590281941706944317189244795872739746868824103051085163129054342614883934789388367979648060336051231789724771990995103381478443001362978133898231797096114806976335201491397497285652616847656174843383284565585403959387566070063601459851338899760411010638589769264896715394102245790681283412245720941666090847146648693245250409646196219937064210687433956566865863363645960557844555928622526196503162632844579867796386788575431632097066456424001854503872318179056388545727260599707861767382254488707370225206300270538636801188867172505806381452543893614390603464400913247104949836744843301038872106384440484534322022225725685454351828281750808936352533084084379875156515468900798614243940814614848706030415137354925731275530115777486346355186723527962319749210309300149757346252757932447319173533151628350865868730500375920824140158565581860743627124147923538904133404794762477728205187697633393991189150126004492348292296364006009323266201822841483400172581894903645759093046778794067150754366916953500857046643532035130878317747378817219033505159709991222886248744571219858448813088420154277459804326769443508971578042780984353201243873004112647409796363855129469133040569846452243086560020255819226574077995491418867872389997289190513231318587013878576115627210761804604101078007647593933319141958535966838071547984730906254161225164724609457265741152948145113791433190227071053161594382590735516676272420475012986805953301420584975103498212264510242933256075357377314541179330118784892457865570295047117485724787525292357749437827099139244565976344544612269818576076180752425529544626499452897979682035329977164663518673470436299243127254766133535494652048718351628038978165004143700046629788509907446289327756548647722736458188345973183324150046292649655407501494813276212305801153969245184383642932331091759514096566119502261153024886023548854829811859758311463177436862386967648658862206041385105746179492868978144910376465885020637886073267988809830507510356538185110465907774919940266346478207877768593451449547325731395576378935913673684136728121858188456241287368032572099360079757860197368286899456636177081354911802649770112059324196228393109110581799128122810895288453708696419022614655830717402039065350547763854774995013481802049359744142987884881019431940444810946480309016176013445404855401728957728398885733634501128921131723181381401587476615465683943127305296898296235719332276299706858810988838346924739281159284166816104759790075687658017322540672000639627486420799181308195562563384723816328642997642261576288103968831466440919531257087274710214207300661085710155993836676084547916208974600651908032246225758975844683976150050535036868238424149883580426683402884769712990898218503834703561645047774389477499756464531100616726715977590155055720115822583111025668638761909893348827525880136220434808194005024691173241931444276553869699099315461201378860987292932583379502736737909681795367415269247840525323085702663389514716421738817825438428022138884514902021661330819281147844261323812111040848588898983769102591734216509700752183028374691076851206180972982579466849214308175456931406508886117984504345278250613224017625112847847933408287903863794651373443828632299320288114727148290637701536320037197679079696755537698670608162554004586811319603125684363246312503332607034742155842727030709428377384774357587213121218810524835616625526673704820722309884648659254838526137504889384065602550069604001395591492224428606521917572229555796001799845160687027968629195464972100748934502978041736602456600633838301782987185328028623266434759488476640597076833453474712537287556985520964308356080850898790337704917711181172122338824664957780516428835724581470460958857887668708538160475353787121542020561226454946034833077737668814628151648228588443201140787515320471519733030085857218313687743273511960175399119437297827375340181491200493070583055845365345076889763314260070738098546095702990887306971340339698021624808508744837068251744189103753166240522604481004565147462946000921826086175186660171567580720390786957854089137351832410915168114288982073508620248864265207994863795934947549124680827759746231480307964307307967731938338227012606090703103163457991882857364460722259803571679999125039362854299608946970662647010021760350796750095461788488018920232312996863810001666855407522266913026196680321917162848550367368488216186591744683801704989750288035257364238990885971680296122092037399900742745438235285727543284031574534722853342599461408607630966034453418936319689217171880731507148584361993759030788377329814692030728669477613581350161242607615365162313097759554358119929713525344143153549261481633690062387175992257140900545654042793565731071183613819912399449801584343356957171170806497538238235579543879644751037325277657944784365305717631054920664452608185596105086541688460304088630565900642138042842305852912824774191222375799466859205394566732425541141697216685175519126229031716293268458019103313429371546370616932947216463289061315495941784148879406671892020452111196421851760070614322582282093385502708262083117509396565610669881642454687494826153874567671645158962891296796831694833289725600422087557569158408822755960523619020577450497177208992825902517216313732273303336771972100540952940196091860351457837430504633349393311454779546517089918893960654188490640480935944458051903320793156597626470211049811938744059749854571743181032908986125203009410487004506403869165680539871731892987543330146230148037795744144756852896641870076541150639192050486609882009761208039058146692922582077434148012296481171127320007463925411443253711934496264817458005254597692293059498260036868428858142703176808475101954844571665244140071656363387944835422222249651497335284435643899816650948513051992588736759628564461949699898250463858526820336845989423576047872275297232177967712500453762485439633158934601777563603689902507860372508008419023400425134590779639515302749770630617013892060816347880077869688756880294938392107514605040130398400651787874992057816940916670784296248008339895359301544798896235135190225620924650352968890506424304423337492473723313513362495607036607993795955759450848126527419382079911082644503453014589259422538314323481243578838680112103385399815452036879604538743025788184361814240305976576773145841152355747273543483797874703737647047438186044186056345187137887580535525660673303491963586625535678230782180767847889862735685560521012720985956832865014214558881417908925112903909193132688921591536013965013875684626603012913574666361138722619310647499021610727412693482748525623994629797192472521696184958426401857211643308691717391707852771983721481223939972931160613078893559989941595521086040189601556397651988260161450929669751290143980281119796144919572154597193020080883036800444864628831177759400316126049828163563433445026867429577225615167338736561602707538777836549860393128546574101579012656507726528427920193104317195205854373962372401802847991848323381103379375846019034604644738209342593317435271378424714183995747014807179234860627114738061257323784469037243542026615132941213168361654550288688550647997724671679764077437585963650150720384666370201903393038765692697359869493093133821586807492779720088027435202373511462376794943923770042201358227936038158340769290566219680007901841092839523389953236170623144342687547299023724318603809025937382355000984099909207840553425657577689056448538111286028772617522714941158975935275388940078593624762651801439382884280829049504766318572441441597691587923396956924498949343434160924151417354779637642100784555756427333881179107868974369540000437047260243028410472130791904756125501115762167005167657797519039989237584850992185821513587423148980518330043147075216605916240041396968517368481698222978402823507967025056035575765789018339586494594254592677187774537026542485800657571419123514240898699163240273466145275786038001086068406584139668558048012637559196841081744996220914290697823710062642241145983970582438382079987941884780370570730430718466817234753659044528035030737623833116011797402937749021523192846744974853350401007448934332579998713632258313331803101903902570263158371609668858459390298902948314132600107079247785326479729112019398036611314759767842240298601662110934115213838143360188406830608171871626454996112085231012078288418242335628336121370082196230682336069171746482808746481774319959833440159662001126361769467474804608807083661089672982996518752751585416566635261802160064586717434211695179564235043461835949681598557362069511788213038688030003401123141143452995860415693489964064808797426680163489563239796168061631570847523193165387619457682094485325243458960415785353733961652087319152683327553312269825150550221915730758091040302239451744088068979667093087417639820099117329476006186868811530148334289480866199929206442291506885490569779337531966626563998554465008393277739048087576891146782983674204431459985788595016494673350601792929977271627778566459568803875874736641435281312727820848868173288829756996045216853712520319325113077264265605435416139881484178734836086119265043321811748787743187034303738299122222100261459260165968317637845107257047886443249562581108021387286020924515678469158481945182168780945788729937170428265879721686842866463129604856575887687513762325684259144205902075841219132528750140716825434761151872859149811028085600037350355638153143287399983816754896454715102301415389719682546347860246931947469769936504981295747290485382069321476062377606583002635218504711925707078928809075772157433044044028745471500508225359573842265292341606637150632202910356200310170378190971703343046110260573781712208687739161739233316614728960945161199445698053090244547715931444457470795132532731595586635139136455211540695257780193855390526637185132725392910585836077824797226996533382871377375590094870849802823228816981581628169269921046222803395469380872188811199639159701904013645390244607298406369361293302263229649338012309760950079629206244936025782781786231827893938332092113795920597844693996466933313861031667608071740821950976752024031260353045776961490233627153804573297600906262897459588914115042799287677451825631793008160853274563289249515142230422912808646529410002288237842740293155578431378939224883889801842223392270673336887374951308494150603277628769236084649757094142144157427263213844757843817315222856564815020093364476944416001327210778869526352435121029124017301367640210738138464711124837314605479898467779352785297875981663385372016340510116381261267695718328627666141775879748371473816356527269249264940821440187804223437225747305100164196775329465337527423617496815187578515793475132750521440862905389467725685116459530154780965768230308629175917893117620853257616153747434677826603027506138584262717043767649809443839729135659790854778097395717870453837639359898656677856331890104613815767869694451015256622496591204071394910006788701526732619424273347863802388078461552312264323343414392145614782874650544303734063479041130687100565093452569839298304910776482367243036496590874199587602191220833760086055009676106459480064013084227273111673283371320174842150643265156539129172859685005164038965667735282722794855170182397561707918013749645679455293294293556565253642164697318015778336437062999141578498728078846137138979393764560950374649476526072742156563896688724789062879606930083238031904204653925787945113511810032184207775306615405711619069855117035481201888573656565649410245312925751261805620684618298765305616096547642128474151979670082993359369338675158331673728593794480797166194152578275614058137446046241755838075917093272434731824393180314921082801125771095228675089246577294961624468500837051189334578212481626387440838496971113722811718256564136613428962222063201461323146287565033621704156054306321129826965524327547565810903502689234488951595253866785870924350179536146434807350257377618840162772861515555364023447597797384894919892146315053114680313171337718645294516064943112014093393265120210474938284020576292885142178586097323485763200455284188114864756483531976594609722703121469500783390132439291030925077583847574467052512696052482276279855837034103666882289260707330996227180368534599343949452933698915675721374031911385254986391213230509861301204539250869965045027614019420390637002474574376922527866076311602493982653464772780924869319210385503468512890265601488640952243137910805901414320353279554628294109653857417255901918006353231407103892590252627486070148860480043200699277666943876813748683514267473297335713799476102151282202334041220927517001800414933329549673633901071370808062787678036404768981864659281305664006281011601104440789454049978801070533805490247246286513858331281932137349555648233947866700524948719534319396931355436885607599211230049633651915339305663304869368653481514794509341526025363186510100845709475323803162512861212277288546008059661352416689821513717266196422426121526178008671489547750791765296623043099695666582830526301384664021937754119238307798208638718266766291341214333543433653355784277740367955029953710679538643266246600215912512787809457222568801977116148110465843312401999600934976523217718957588675662316408417758621953764159263741797527676431521383811461720112182890241910752894098399990129111606193118122276735083607909068294621633624318018427671569744298627187555279777669007298754576314662968993230774771388692031467666241829662120127240090247851234120371624732504502444795617109769837140084483451672245783935099307742258116282134329257217439591415580946397385252897373859214202090200757745784203403535218209481496014363203699072116252374570357252506441424030072930233440920268280642892634153694274627220664416701843363085784877643931867759823614829468831410824152532001794868217304956154382110297287967239534041376969309790593590953679190157206258854772369309643156452640369026315563953998921934876517676395073006851716602487180548385602136153402547447015566541447298377958896503600795639091007772574920336799458764120033979414675490478629226347325155921700785207568021250573417316419534241383228374870423595952145974414823711238534274785063840895193256480598776163492906832843355004744024551263709782856371187218067490750342443530892991103995492357774559266548236049623466684868037867493715789833997996182386353557641140670231054888285456251262535037087115196849580295464902511652276217971616681702973055551330524732355979234401668453523758828349524973863233907596983378982716461851222723804514197316023497751926977849994138242472190557700347178735401456386286132379613682520933119114554348478979443155794919531544244703639092095434395082276060523672332805951466323583498385757475951874002350971776759839325338888436669166240047092035451215853441257410041554791028782157780417396540976928134091988205133716257174626220536782118811884938070179999241793096447043389673433135566590850190569916997041446801492928927180187138497854946334673348076281144782091274543117010984634365092627190256828514576735749208373156207888985392369149022372514827206049205892859122140527502664365181431030417395753925316859563427672723175971235624871136555841269036991142685143708599257273678167858554328073894890588159355051586279680401321606316862272951328558800611422302621386046476899579716168902009181636702745130338581860432036285338352442695827060500931404319601743343103929943238978687567589728767073655851867946431090354258453154307025591279088995531174635520534466184294901648006738510848862627822837447519511952547612821561340203762487412698626777253241136193401554202986877491005816249846754750709418250215376669956870868273930522458009814660864836028467241920465668652142971067503494744375725420585993456397210470973846274784634510448303730326183637372102975398791197471144451713288491568877434493908987293470709927114310987268714610623989742911335438892478418248387463268111267361637138330267853180664212978845536654997265161273034981955477534354821829511914488862067035516146385366675889816145305699225572665021449488983362009922929934838397754109332590750899636196909649771202842042158460556684894207531540342581114028645138232406018502612716748563669268582804421465326085962701094371806124081654459330728276107793495027254405592987092944179459414335822897980328175573270934883142278680083905409590744885384378814677626236720647013196114828601136905423307345166997791104660461793845499469011916989617675478783904222755911920830719442575596085821504292868447581256882973407768513136619127724612187090653445663280145301208140416022118342879134168299699572193010347462039502846907248324011470978741347645592225335120921442196279719286611684873099324165893442646705939314299130395768244948253213729590509101790924861158492125438663906035851612886428216258597126596461533442259116620578257296992749047933804687584970894444168746403181836768142752669892157955004289028810156212575479578213054439601376567135928242569318799146531407338379849124806688789229555244766076849125175792057839875729276389532501114151929617884793871375571523654028498441208598106615968854215490641541189706221413811295871410337291529506651967750421477839936047305150932170569858477584700603802137594134787229406041157152117741007280243457757366590096552332348966308796904266363117912589609712737170562306231424419032159932265449970049813113371535016104204639893817305773090917808419212069082727398155215503734255297261536924913844715001864608609595280551630746226087180724393923118042178544351424415006725929272738031637406445058687636479122564386743467429224422555209887587043071937956567421190187357893621956098386731091784232349357019302736511071936583139598829950046327920545929536158579645418952014475911551415703458385448642063623583993884419672270251440762691200687665878964595373287468317086172353661255616506428321855729448144496585607229247783564332655647698650178657395748155521126468249209418172255429810408509828093204807659957402834503061244946544473811002523690380386523058206175681476628238398789471977286885341402447246169285619982210611002849604040206694427751371037798507191690621400818340046008983073121613073261338085734833481077551012106370823673087611018389343807268153375968072111439215614424590581313581461223633034253424267343497374963811156605003928395127386234731166961604116479283653887258988211218576760632915987435764128740599879285437374552658403210619569393790661916483574967903373870451827080656552701023607402581891841153179105778735465858734095561358772942896761708333294454994339937020662993339132448623058459196776565072890784546304380127322776132811791352175639171844739696795981469009250613724365210928371284473801905040596420552809052368440559250075277960691839969816645858607848425507525020739681122925625265662494224388847138470417883515765285904148449754068457878377041000469643443751127223395926713161953551448393139428657231279987732909703816526495613837411218192175428373341880389455421876042604652653347850911123703073744358827704548469796946748664497845832808965159939286909479609450959267037465648028014667714585180136137726962009458148200074349252460736337033581509698816578726606300453192036190529096337952269233461972865483652755998497788578239027158226015918196926348010658912706267809385992761188799760875128373248372644958065253727932377174505375609229976712731863223023115947471066779659786415456907798568417929984884032610020078521114143536632376181440264308284646146947114105016597620391523186737829456628410009118967732433744205590074435500574264027635134805786365250462583933859626831847587647092192647812343818201827883083858994790427271339696505592055036498604691975268969330051224154769258653344523441949340240876052235003900214575627919964503839812334990921652471972058443917647758825437107611409223080826971417242785939048694239908262425986811509458608700785002627974553554906863458936193022286099331543763193349158808942446372203606692385252844046261803029355104389622436044944670896720206256406571518339276458423888300358387782647799865056010791486075921307002121176627639575682785600155501900491816141807415741673311945519311512739857387617034807482556565467596609618801957817433249036553880906797987780386474259603357081294950012866401501651245161947322075199085252832692612199920692439236545614943062363098981690424530272741878130820707645063918029652892024546402314036307726193122217119646748876472851734593010718837752988222776721047667843524879786828814886580616487651314392956582825140802701263628948321906883478433332071675832585065822126655794884275977858991404555891536723237598826545049024801195429161334486318845886151523050760835109214583990049071137969488342303815722369415924626590335986003394681302436634811404325986539084363057187767804079869882596656138546775339133717704381844260080968719771389288632334661567244585899373600783461439573405431699028497046906641590690732375255382582627592742895277558449154800997760792477670803814578220666531947549803873216132891381238101317472148509327478942406442605050049926970560716253611121722157127083253148477455445650157941795069013275721481971274920712785587445706043151377117597773231735008427652499197507573625895852011379289402865008389132446620283139241211899418481747680435475831959222164489236959681533426594298365992738114413348736041276479360896826567199266008107057925719292021156935462862546497254856767441553716687230954774465229805123504525689281533871055506258000368581466419908882222793060539803527698068030576508801275916230256772812010722577348782280257272141216259937092368129011823960457624285274710328081152943290164589818519869307805360259114144644743806775022934379110113629361026267680970791160031225647150430145352521953959057384650804168184180112524401623923347285265962586379751665183704781918655357582393812074046463053913657905011009152896143134206931192792248163689256102542442823161810167307435289918173832904706866283211820588207406726269957680357178627910849213741878284442454713967368995170503320843112857261963784711202493344806919516559743949601714816862750542917155180201971812957489150494144271478682225959387413473386531342579847391208623414704307832903427811757928213003154678842794267471768236138042490752558931135669006405036383860383229093444541940722603640775048692673641364583608711421758505642748359753841998310733556020661843668941923313020527274789721737900422137428413670203563405303154631893242423158592605111987600488685852616427924753581174278701812513809259769503213282904391297195567345001069829762782344283964291187930388028318493717613104395932996120783157381890461952893649567811034267987335377483841440930808896986381595695885826746331286799557049855879490547680127124509675205358676169949657692644912593579285899751965612644427386592977581381650101581045828064039153672703942620708240002442959246006906262144416879847082062993799211885835922205633301302294111642543537635710747710545681193173838878305690512228732250823060214645953760582691828245710086238738244841942422638480139308860255555426431011197647456192845884900390449080362973303335592417988899726607232737969849478681662296494773514930175313895092777293906617411485403160722898446421899350552037914517147291623732645849926759475317419162206355745837383322559436469901821566426411492434659885655540220191377112948767336098730575159887622689971154821870184351968982793906476265441818037540201739091543897590474958487501510769195014578783264965700264246444901309587731930977988558130171824613250478931168889066168969952060557600905006143562568701265463522369840776458731010414401297133726295009326171007468391838706534054105217146055463584161389284161901070022598111464741658496324558308593274783337397520777713698707111873232757737008893791110863962816605525440900527074767388063779705327929345274143252351888982781439797972530534756973036623032370164140246376855027080645574766175215386466087771484006305089221968420789318144115622135609523968877674161706183246369097074966008416777502107402810736830647363987809211995513264199351320156322656850841671083055770141180604670557987088865898062327245328962379178598105079644878039370802833324273146176362076804490304460439232545414780768419411216369105597408484631072162702353579975560170356039118545147311985491426739629186001845218641494717354013851474238725336501031130559917444550990122272859541958121605545295345005168119374523181937725993227339758581488749088973258234368588027460914625898313917272801463648090128713472572467704126074411099944511997634005708891537408958075259020612067491919588802632270327092022788012826607298310691669366231762082641798616326374707086067843594136927614568780053934166718781492847642902709813013466992098177673835959628454863473185527645723156524044935101453924771638457300038399434580981895996513793911004590100471200542608333788405699212749812950203594322361667837071179763939226797312582282462681216895891863570854318259591177202625409440684582710796479420442057868735083718535069303778092631031973050523334441514682480787842302865227291387918802466430995530871643482874588329517938661336279380272261121382521237493245172267343817872931146344315635680687823966675417238001582339616394525763112952349887179461131595163595987951204375127054025660170379006840395777260874935998006864074300123749790588647893252662926129128827022247940504108374789465593676349178817787988820563681941595712573651730080805306542018884186984052648807077849216787796128975315762974604494100938716884470174809846113399544605432388659836809142932534726314188652568834929851712831464926770868621334902781640176339741276053193261615708608189739870066090625271232959637448818955099165353957422351844838888544218775665257133660549726721916984433386630412906755609093806471689886796981649451428526016732999489675197495028650866967025309096576244238619833282561130765908330114033198360086202803711789934482011072832269702371651264331776045254906222601470609700630940369670350044129292972065271287254579590188277951650824076100640691934009745257332329765929632423750429456979739395716756748675537727304128326028860578532213145505773630224012119722674257411289418253887864078429417541767574335692419247386920391025068169680652808868192938659399135937854134612101297185496482684825761308683310130965351590874381945822978144022274237915361680273065633405692927304626811519896488835237984509691750913542246938089311211742450112048501932336995453319669970304296542100843065620983740398475467464853804100976722970837977460159865890521049378240206481524181287478821044660990959053602162709867094435295590197035601066565804859593831023560594354653192418439093681107544032951775111595984426990247084625687723719691072884076970990939895274896709853861936149253670781043594819265034641899975684109312942526033968304648758468214474462958819210442979637201372499325534509686375936386765410135232318376397581230384945189551009049124723139855855117983255888254964255901402751707401153053145298429109752271365960427192253714048725672983908265224164508626898789698816825657572455070400903501315417783523298372232627034917875576539959925770888201161411402572069917713004096636835531694544595809298853791455766048695616544806800312940534163210178367174942078330908099421581807556433030404157656669492863662267967156945759632868591898604699163740350530815904887568938505874715225217013510250345438153224048138348289068090396823391143833308802796828929653814904691918287390555421927232305390146842498717155272908234288346637697933085082166558107521956841543923970974559291818762953019126461367748981021198309395690820597933691840062417622163269479726980374313080817464329921797466162629020634807865372689131852661514475779576486917373521961976532028126176919013205877167225419707059810029389203993005809526982923454547734045224075844041158355549182072955604663992457627146469727514932706302436784206541545305785866993400994123070510236969186415539212109313418730108706000550523400996983596787081447355268825390408079180748615865847143142678345689916581527195705394034386936209870170220833887062559882340505414210486815136059847545890739688917060298263115409932523583734074068733384967597993097720884994551219338393875831056159600306357646403735283835014403487296067159853935060987572126238060417643993021811914176407792538394909315166132597479577666356201320188852608260294928343436528607196838021754949352733555644429286887222236056563804214080220494490367853145184809898077225756468259049728469795381691824471199643476932198583680649115047182644275036574708133228471003981958491557277119802325012164055010104272097897083073677301447586303956479988349375703391515064969089359610185479795857438161462993267017653082802041597950130766282500429450527393752521296023940834924613361490747751865316058340388930653600227754822004151650786840324326430127061024360008414156847400129997105931002900328598828729583157132655722848050682411575867480991940218164133951273763883302895506920422310004386838502605924443040057785842575672907187351469438206582861904147823183654333960529851292229194799673194388782204839820754084049503079515939533931108158831745679312156720792796736978769311463361952646361817863615895383814203627063997319987556526462870262755223804869300979147198242151882633851682929530697400664100251918437414713952468827056836982032516524383568893397193617179290142672280351497485078739952882588012485061891779186970152003678785510533121496335234338642453041625858048105311069310760401584045822887694484180629786303562414505267169177624249324616437850460250702573107497506323147493899205658792956635890254087668687384795479519840269316028395810315964170477463861331237332699119080395699132637728566441618141565623220681375430316186712914803172137004836808613178136151169408030294399392126762881272104854369661830440331072263510987954953402152849377938821141248222048555679423378343118971200371202221661833379121959827358101793528791135932950027031369557624092540611651033414081251702062179734555553319318643355525909538838108229971880673769268919067655272379701002269602420927972492705046354573665790252729565750699194090956354685691757166685849386377585365655299400075531424139949500426505059633608505458757664825105015644849962617442565054125351252124868807095613785034852245992512035052646150835664620019644646610400380900322981043732329642095335358833384544507009950535196160337243253865008190230057195391214607909069019448081381692917694103578096066004996322086853463444672087680172435999045907220066744675596214032892259297354761462622055879981891709558175530740674020090888207120508438561284329832388697771704929738840340369166155350678219955890337063186820870073715799729722228862916179860146237660410437631203474506937846121391250616615901746953290178229224725577364163744142573781943980481519874054932539702196874461813345732586021900271569236826207501440115340781460610043194115597264019711942506877255635364860327332748989425104640717300660538483696601634185420082583097749755853404411309222019407438959283706158292123651889909900409932758063991426160214308093826836801737523446201767838106367082135974124633907335002215451986867007512608646186462319402806854000347760598919920762220824286325664838169169239181862269765221115052724639272386693329880636129185471783022765838890555846558814783261244350397389556519329237584992819523028763192689166546885456318138833818057983125504009474134583204653896885544478837339784223092388130521453411871667208767512608749341912916607047331458733301709515962330697593682466558446295610578575543404432714413535939884641070362998902356112569573257457318334236092173152648415316870534104321132745756460236204376416445831821927370770819998228754202849848033612110991746370358017322607249050454119714740523215380312875170208724532762285338236352201874017921042836365329068694505004697843083692962748407419236248671446719200836933980812364216184202881230315015037669858021174183082687489502585009232146732867892203942422241310811857835704297979357013210452069185216717905605756822393524884690629681638708742031040126201679271449066238760868221861190237386315193467846313532731517597386997651029122210459210518232496961534523146180870304916803128736607737173979000950573489921908871511577592580640048260577599178022193003390813583098541930171979860276501359389122705067471345982931634223003042846838786501203408337759037614734481323509025641322015707473271778784967490861012927694998487606593388169698299012317583640436838633291694053730304691713689475245392308497590023797299881475281584146033965445048438186679923556935963712100270447270025088824334814728992625871178283236070819135603377747959710137665116335740269584386832198022346679865377896788099884967022805230026960733099420112608885905900051175257238190983975641144608741476221394375269227496285521289495742622686162362629680367610382837821777159902872510670788280907754514465201179189908441925467558744845611551309296805398537197799727901754164043969475554079050191004894635921617663972845654181312810505933249732830281923225638522732619626604423720731748005777810939985201833111403577576045263126932870027138103531493012589832152540790742755266275506976966044740253226555230063451731561837573824870718710162539295073204431698290806570175221535411004312880561094043900537331968254611925356063659881265592612100382356659234971651295702621329677969993322552933781567293591496719763325916589054568102438837015625761770433177873658011607492251506390248022911863709584871235426564997398302209291239382261772711487249386778879994297534726494402449609923474928532141767144274468876271934304991843296289793474786067702286812020499230153477188859638029055883089969330332135793087472884989677227428315677733783909927406183317258426413594527722452863256814205294554296151676489572590174077798428185801824680902068074207644458195293275779083824270405590788979020139608976667701568964825138896858602376999281165140848938268936544214104296181570972840461796377620919969958675399118268315622869872763077978432361531777505550318647322508419967220084921582873936564636735424748436386685796106624151847359921441079855408622380441258429419277807334339464000502302298764121040517263283659217887908142461261433707472700264728109890427653524863059535785856730610363890800634968251695798946785240468639899217854149620390899168848539680663414230274946351756224401976195975048711804804713574223941817402094182803350719878868476140530881558557283989993150115480154027684621778744587795418549853198583490920347550901446059781369754265761244433737332916088762538680453141665887762440051148681529576416037694270060100027919281549897189227109202221275362818652656118441300300381312951451029858334949771543762108020704749971665093489015268404923847434368134543342229481585496691966608058822955821382665104272277068682231817125161235802779354325583346553629195735744778195337661518016654218279700964647597477756852066288630353270774164110917897006324190932846537353035976409020274455624652320833102397285899809234380833473389099625868843538711768847519552011888011805747418929814028579027920046886791716053385631150221273362790635636880819656882751296803191379244010518501820427640960910323358227697875852502785550620548088258000819432236163526391488358517868221386382257144103153634859091513199894044678168283084357845122807032748232623831898009103422065815932573564766381123391147967148586408468941360897915570033738759573299103582772625552789051911862010801644632825249692439664753681108091416165121737740695748990067734151503884592287678862935041643038968625343403421393948752276144003136864955421238603146225195410642617936741547199404512460830767928339981105838201518771451975155212809454804773934707275859691203687371678016161686642499226261397480761157782945808574438280268360498115796939513585333292124929915492601457936829539821395190688945226092216619873263695671725649649826254910021845561820065791562724618271846414517263710196739728705479079050781785936550739228161222792358322729103394971441431330267633274157487026666361693497867704770695182901408030432754242985466424340533619405723626519221036245601998065266998049240862815203904238525562803451056727970879191383963471925431857748297000874891048396779754629476461035749021791012742864668536975947559089628917905630463837193852355524693821926754330889613981096045019210445915882889641077935600787057910929031357091141229843475790350686317802030145229114780014537228765566997957100319230801208382984026544366204568085577238096368180814928263316803587892990795216750652788439002531584341487402652143587042322087148227851045842616886581840937601364716897387768087806038008339172008007771295942319032542289206315430878468947929239614751473393894744241629913684987113723377557127958098482334733800317618086803006252690493622134338269451715784438255224297259519307914175666544072871378103590667277418532746914181609243921672699471173141578590024202658698213952442006953168588580340230739495786274720040271971679466386611745514187428435586180049788250498929560763387213230164971807859467240379929539875238629317346158918889682233625448313895108710559657835630672217428871446184555170435556454444115780713848275545712274562320975062332666888153541659028085778663238230786816351976729741001988257790110115328310839685866068829675290111715985039109499097999100136676674424814889153158427468717251376003703457339325427873524147600913532231382626363482063260247076364591863768378042334989088452419218702913738681614689700419322783000383711389388438844855528003337068829739339479415235687312535219175284374955392774733717142731611811909884445833643722483063001525378083313712202327090421918343582496215610614662148893802552617409437939377584630766372823101509026006660556171635936623703081189992015913644582052269410716627189230494700181902817699432779232400613314568530237992752600405966192485193467960377066783634674527677157561801241370153800019569315177494760931664174782153452471653987502834526550559808045583932009931047643144086116841765435353575928844798046491088189095371305151063329165628937155245503608774414587043640568723128150320691496707020437962089785812537089748490499277457198658819283318242996552990666856083251816280010365109313348093585997109119771844708736734616329380261196096885452654973249893935118371484400296869878757370827535950692440066298661204014297217185184627064698944195686021547341079189596298936557371832010415100618144123891231834241657158965509509834574260562070690670265221787437506481612268228142903259985719413218134534713734827843437920548291217564061313836394153945148497922891100111960190533836270220423631832933032891166041996804140245467004533252470375410632108546285235257811695395804014264121544538283102852862064239451521907913033022697370806321290534456714828643684152242842216469630714275305568872366090942416314972298596470619270237029654432916905414535292818596640381744672503838534408655516604144460543538053808597945485228288298337727738284213089377587569392874641658088501729397902010321707642540241899197406556732706229886146300083921528938144398909421142668773985504040773358381939778072448888044689089179335321908870035964632637657324579681332691520612410450110050359005227683349473892752913329101873494171210706585850942698886244565197771613130229545722631086932479471047685313433927953932886278296779232259297977696367169540204030116656234480009933563598780158245994935948692199688930315013828782066239518472764387527089910914971799102893845207588757996337022175747324578920989045778371950067360077178665569776586465688893806806571440835200769561576820158893520739540006246876751185597523521824011544384384089101494840307298458262970771630081966902125656218218993086213362341785654847996194473293786168894997661083986496951828705883478625843831839833462357617447982107572241358191521642598700875618194608001030546990977485168114659668315052441803268343538715042392225259246334880405622811610861893032959457240473718234527152347936973213155975905270888378666629944746222348378338981082940768619105927244601614525969707661428132266448280297448541990048794196854797059207564082809082766922434409363588374905631887579964320063007692886477584608155001829696605920626518774920769382260253950360279744249034620726397508565035011719365504423118068672242244671863726520900466614220164925529907882582635728229847804827199250699453623063800891453591141447994205734160539897473827815831453462224813847458740297033825100582316339905762719510970454902237771545253698697647010648234426303402339015518129825314684341009022057312941744888276890548946106870514198734707800633222673059764288205617873859526459957398778418519034906686319955177648773371682293739927678055754550713604101129316022013847251200685628639556379059304187485140932251522146492919904897332302190356261633051332310484604988205217951868394398262927652325058374898532670538210420002564850235911568384613545901502824266150304619863108362120482517014142811876147924695247149605273229420414527753489500337761926487670093068314544364365692937764021443512496928697461522329953242712220220712426865582919143600631577621779003286128914238117975291650457358787908466984328575116024100769702775095787954036120378039270133863690169592496276318296702140666844331686660583742958968532898410268350298253194532586633854448269841106508703210310973451555651633735173475211990840338448130059352263591309397804384687734141981711722795902729389386720041919737078998782300917513995228063762846106705233981579028766918228633217106157304595297092134911697247278713138959046832348271200109826308920499594304751292191926616012759211364436297978966588127579716506996681987494799784078983188523883915059596343088683986749135865647471718601048041419182618756069438067596796684964424375073218441977494251996781274047181046255529634996348725347090614688835798117491611983622592269529831694760620511038407117705453669985864988318111078899396416310402788308634339731100386709763028983652351418175640592103034095377777903059457048796312365119850780904121452309174634875643355464647878146700724370266615481603520120519614615713939408793983053066792100907583964380223531926138837790054225332062064652023145480343525107981265268612468070248232653774679315963730285811441485546373646007991953570030488700362783642317339546152167400288351315885375799247421576587791804749209780380081765957133393348903111935713704026921750923525246565878089928215868339921291162268291966476409327943037654664005240375094067364063521871784943469620370852571745882351826443044933717059926074195629577667721293767710134863838720383714374731470082915621706542824194849121749118785312936204129590323941644951898160269029446966201077121951638521632336010374786102039213072422536869227296504361671939317040117971980088427252109374767786737353521693725285129351294097291584265269015312621340672593525750575833689935695334403680821234958196136009081923461341643064433247701169762337171613465737904030145682078464485954576325393968465203067948679630481742009888025412085227370406481163680047995613381288001013537999864292399890511486250606319458825003116482326985441371229805469472142367782295874634358580646880151556100260539717367651859968648886134377303374193900297986618125767128636112764125466171909042042752411419138123737926290568255821485508283532056157579461193867987418133071442019328221680219309261229603025547385539806347794030911573564316591279171030447714517069810957596164087701466407078015788830428936353969092658008210154481306688372486961145247183024510265567397814911087354567578684506509823404838169751708507811897898266528398183778015186694972397474170296082559095571467497056571018910003871766826790355443795607966475990524529512472366023661796015255515035917737982179701746157380929487398123062326474964430172206153543388975405057767591022239121864680030158523920478465278019873786658015359992369103375840960230339322644349980152948345898873191648431957493536662105320718739871189443289116946547558220260496655812686043020570469294729189671827089134300262021073194735748941366625342080466608733188633310216570018031747212794181015243997436364127359244905632966843211378726979635247149603473627426307809919872863170483949482015324724723923260041213570980706697727669402744143989268017952338449864211650320206808590985690174661285743976391952234495943914155920729518260748974007425880864796673501527981238877460329390103711137650729772110352650283512576519511483439362841418317393175291121458546341860911254661323925443303499150215517339207616059830689543308192976366714382035798066292062742932927468519476076383668655263973383013700968836586999888646644375027426392637172169990963088253895767795942674148690605540004064373399608137684890355265311276162840486620540388825724848347897900469980459236464200316757213724921786712529679471370767002482268825877076486877180023276881239932867762368992163405385997537934156160412373710284831069450636752999073693250989630512716232852826588235889136607715122987468978175356705199300088357415673895353497584684253400685118311669550825397886103025212866605913774542743121411818914128000620163492720934204298343143007064818009110538186675247855524638969138882278923035203082540753422341591238379521297905887684206663544842196501417019418641164979399060952878677211878145221510983797992837471659788775249814808729774196365427562172027513650188756251089538336306095959412370562305135799700873359732852672706150928811679039425170628730257738011408973435275869939146143773584963419663313809752870420888295835514569241871483666049745166929100516721734043197029890576550653386684773421948034978806621025569084294408908139116643387662153513163506381287064721943059868574096777773348051139786550143056654720895344216633489440058589319471902411620655228522758921151139595326002822706958287436444723410050720180782281312808829706518863362420555780213411454781271112982914588858748619061316180720002946238174146295980166094457336228921732991429066866624656927925311020154736463340435989554646723681204914228131640845449729674590481770208332618288052136769150582483135854712103912942230732328649709613081645664446520443786641518328085797662688413461529265364496380827369785884026206746539119512135341908387130872789781184828420915022684689703876126417360838923758811490012652613739372812935170769301915721636781287659663579595035176024783393424476464206040293914327036915866798294237872031117602372988056899780241502531729982460189798876361749443716124885086007311012295966423490861859305713309520337600757710808689594931621506902086763884215730438365419995533957648646674516510585137442643291079229410863041434824928846933513446187254507436140746042186503163749191847743460899162194943241174517935011006308785049064684562017279137121279349634515447469849237997800343139569581599358072774248406272002309789148162153194721405819925490330693386219573007489576810244114566491838565154060128276404223274661669469862193853566521239658705959283834878754130260316683461468560715267877387556991387067553503185374598823954019519400386605710286487589560608920404815964473149857155575303969929765809862204337012311113578818139592708055243621439785096949660717879240583594500068500188287691302112324114950424214531651053891384761430959070815281941301591476876969843840026733950708648663163805638085320734716077660740499315918256823603595324760436893441207010532551483926154640688599818754664769116071372907660167850780218412530789015220178048322241886502863177405200718498772277794005601624709519783289115709267217833896514356822068514585093196804545162749756521709328733159364494890443870358895507017509496522419012436423536440921064342305350519019756660193350857156430536051443467937072882226807180087641331989368500796484751095934577864430934399108455187042095677423571597446530107859840067303885432986418803076494169434614963812934954925654987655274850871578068638736076035225701249817240209105038738291913961989358071922104964929340369095085782199957003336108146780358113661679850252688288012507558185054569551096818287143247519724946206782071511152615019509615553084411366103667644379538220583810276099121911288342995295577217913659088734392422913418701129279733988822158901339495109305724153957980847698770633124332227838191069855994724087199704893626004852500690893900720195647543351323240890336882741336431612697685489808650171385996769769290130824308064084295139002119804088078507159261853114286491776605392779539329928881015436808723570615581916172657942527550015830955704247237499492970700342389862589035095030539633813746108810134943775381551421239005911768832960351447550918498190420181077208114723392674877498843106331112476317993992209500537779752216109910029591519132622021876863735533782580429676196433904484965984416446016409592304750186401313769976557203030513309722818121037313624831024923694280930806357323093220959335922361293427977245260099139730581808949151320707489533015191688673749867311522305344352347190726869954541388428822216163858927041179765658689306450481231354520867194880964099958655250386546254235768088489716772309313355222607699401920644901754112741707816385002082781665700184328693484652652249416698623738757238113124927203862788621666945691216655024983943852713999131486228149649624246646949197674700138888091979472519635255525860633448498926334768252410587433183061736755094049850372176149540341869291007099439025090999449466830755759868472896090088016761429110881759022105080376874152183079472006580366561307497700795040247155702359970670233909071305011662086701828907698834499359563305180008268827963268975732851481773874259054842393825885044343440266654688835449626323626011069876955527183232016552539439650248119629099898463378930226406720012654140458466531958876923950912882575700374889122716526842461142287940608338557949863049711208151911644279189992186343798731486006272072347731154411549468699672027775221056140180621387375454496123221088544165990221723039598593282449994320559053587092658255776268251524291403553642430140121017329020737826186947897147318636777149406679203168811710054726911775627485000628972434459000075197222870998653715933542046131932952416872358543691918146063033698816902445560588840765130877245757016449001225604857946110153748200975567035077149333722526693466564482835703814798580722292384215897978796656693813616261864230165341498184957753068869927500945383695558352248499351093160991016638280142394524122369973443348365828861685601580204635665354166621241542901056398795915297132473041624794782963633944792239732225294035799625157729211001412615088499012503575864347890522569744596122103835246474669046422100560585240615585350135707416885027359637753098244453018931827967882481599779726262916311406125532927715305629162542387726084168435858445135684252384295538430354911364363413678352045251606218565519744690393394997733601593247034162178494316615405009036978205971484463223060478775784432952573664769399293418044807238858028617912145019772807031814138259232763444904132587261926212993679564974789964961547437010198612580551413931760512518618619098326575768332114526159853450713772282361805921051382990714644528167337205107100274462245786378900511560650563097598149969086700316898087390249273815223741156860882112571729283011838392601022059724738535836988410754944879519332484847811613718147101124871206064161187648882084794076886714748249168113676791174666985408892598772587117697609457733076186738469482199784888901744949524009991380368859380499752261844982885834629384503660185691050640360593138911166000341354292984882716771415019013579284606842781686371301523141508490074751412150841737668539663768508435618677776235653940245209331374399539509723670695145091441886576125718312617179784762286108986634677863366484891859433192547257983240587002524505936775123580146376284998919041957552168992443901751194224010245724208932678899585713986380678838135266539473911366848736757375826802596612046920656151140172180716814165443873963255630070451093260167677546176727165983339699999285054666177656318866720895073328777633915041452025621058895652364306727298198226607936769421016075394756242379919428630321538198501607221904056385018440595885282246975948420304382446475862637200611943354639333294600030602421949098839248491270188147719163634952840436958909163648054466381335003403777366453347718434137908567126443678885188984121430456510102976184651457852846179050915008601400066682329076736173666870698848200779142863391627375338863035040858123067802218942306197890284229855179109616765014484604826827151592140049373746257207958597299028401024502452787236464101746981379312683005264346097762733792671829009778313655789329626006150142213833283714916098236906223291090062580507463184104315791330462536894613816328050249520476603176436538381618093147150864884860762579288571690613050671684405247901135892761343403370525231688558687980948704196612850272734745747024471007869400702696008306643405330973713538587066890977127106645736528826077957628654105982829123445696748783111263790664676211108500362019337349076785818298230003698622429745352147009212113878207849792172947661513945551389362584424684092043997000148944880342684331664730141661326247754158421861104854687949163947086971876823007236972909992971394416598076639873114111591529661254188168079176424930853338597661094953826443135330832933178298828373986213206402691618226376852623708977140995590305279684172207525989726816532165175983248517713370442445226567967024372601336121300356946344477568565011481303824558594727007009957970906002654073854488294684508024797440201233068792351775626007240686094308236164408774630205645697894905985762496235799130686045075650791436672859595447893826887646508177941104101798178015249008099693705598596380822536754795414103185316548321329333688471375225729039315252076710493467889450729362893568769977655992357965320997754916568108638810023163323244211767860451209544740010854900282909743035282408809389204837373721589178666060156946193279819240924681002303873369763825452840799733018969433854426350471965473538875749990842429389420337511910074587254704402031773253870747804970527674686204290037328973829770142849570417235502218095442320829528453671465746141352195146922610402827104995952101132659612304066635567643747199139666638855750207272260787181104142311496537712656391099831436561847931603749730210541896867367026693655482449947750801368612956301291270385253898937582877482596849716921319105861967088119009439327979635263823239572500885399385672470628142696312574973773523892175933168216086659999762734732939892215287163848301144253750423196595405206095571017787172615021584961806271583561791435366181463694755071945994267506161510857370248229140240331349926793573468392481990030869112555419629166766872257494995428347271246849522167224671284223834819658295804659159564198082216033126320131160522018640548264546534438208785543299160061411125987571610230744617050445189727705744938801301265034502720674751975709766472140414797583476982372081179558151138926731159174349418568297158773400157718105423277551116958674209441348574237064446512756561934687354499808229241469420562331287752263334070120406841793508247228665838536543835196523286804419139921030574575002942366091220876571741200783461880752984966718886656683915535274268648896041340797828139452991835806421559198662097156932388226860698542975385822577471618446287625196230678026358147373182644587870403152751398921479940093794558501861243926532604573188408723268654240232757169340850103362942505839323330087994629989953079894099688422320004646795877817897785274408737762637569511638376999923519825709222607388307476258721242686833039805341307117092768387201593338279423763235487411179837940761123006405593829810969066653282878461043245776724284554784690217322518596905369016894520388927397444784804657666594867083111331261289350884940359391251754820653354378373799685010815242188795239673773513052641677301447222967827498607933808628984120974529115732169806121764981205447516167228289778558220476517089630354675961343381857145182637863812740650789457204641419793459398074497157645770377409442753919963294275910386104811985264658954090525863316588529227865912246968471906581246530907203484614963057869769915151337990276442707031544122193917786986870700630957915620093389090131639133153345533225839617270306979548804511007348902592590450956152326861901938219926007072736932650902064467457724970270455015367154550610483166024544470201279185399899893682266329558234811995923326628131692176054276518542239932384672210817499733927105282206440949847267408438462114538325406463679181537824435495153048936967186672001423475423000270922891721557906488875018458224323830030402499764430153954269573301326643655464219208773228311284039521164211536961333867564391905472738712478895262425299343916334592512258179310139216025533517547038144281869102425710291199664575685694888798675982401811077008667932701705093922124229961456975352920790727238628406341230548053088393213503423920472773979640990292409378268790053539595358078138188266677353000233905296929828468880280794305788022911740825495602325380184841973164707431945957181475358700244644166761069426852152978441012141790523914475526054703449790027580808441067829237865498424661636592011878155801097147776305813009680548757030974164055711545202822841028522853083079758028748075590147962887449243861757308043923317441179323713352029690116975729166768185047924092581931436623695316474579159642013543812024382969575501063608873456744344410520102409039266062983782019182817875905774276727530655368498650927968547491584604934611276099876616853195281141089939550770749232614990350171960606858395164597299460819347726784689471112822699762113015842113050175732952187308746504709895636510142453467042572976515219490578439376596197822111707431393170572260163354606746703534285511801590905179425596874914192352927615740284668340613124529452677181583090143232537206195120281148626880851993723436313426561280776577673236970536922975450273187088424462424183794318281308944535849639371012819379548033520205910666503066641371543691533111241048811776998818482605655365914061196999088345520548589704614898603544261259224706045581517236483769084188907792807055801929762586889049022433924840208527035728169058241679742702028509962077679466994301101532861017224229815773080929165602044933155734969344168798998531966668279165874229334135340549579786763153666803747357640701039126219093696073349930020738184028761130653501397069170650706242566826551497760814007228528154085873506381764669371530014749975030056795697579511322576165044139236425196174928023981229357627667111405552392772374090094665314470247334665189825491281886447129031223100289127564431329552465006239365479107798054906844577147110139912639929477965206062580411146993004455634810686816835683641012707329799504948343144899212735928417766440462030054464657632068787914592984506940829540133438580270449629597502546330396266435477402929247573812697056663585897809087562701695678499612479181409098979595235744779826042589690519050118493478930355811996383796653149846931128945689228209884929149660694395479667980043592825403821795301065274268605751153779265793410164466754287387746698174071285617477904660559506762717143521419679073214811426134170578275591034572795870253067650940194500062061477424462460011399450146727615798919951321377723916448316708997599811624920278729469928653708342402884558635356585369142000509693063179323403622779215124887848977922832335035952077536211015192800174809280182873788417611151814805026533749996481550612718500583114090780580078140646317471140770300958306588088918957119056327688541281343935703807159474205784767598594557135523109528999799145321417890523642895309526932169837271307092937375488612924221869666526000085296270722898765862428327792506306941128910033912423951138650550856331850457733540070467461377355348372337488191658370864675324560370450145274117799368491589001304667980842549259435342133335262162061647060115744329910259245845865961631654864984305580977703315439449335909137818762318539954309976745905220842239354201663223116565635300041975843932900975990668476009843467679034352714701536610912307825864376422713807346473049771665637164993141721937359289943594703891383211793054303914028176365730079273753693738892651578043124233077154477299087469947970034748954095281161430371267093217931631683780498091062561243584328480904787713486423693506120863447382926893146588591862029208826009539277873752577477751073098958742486043137355786277628775823110163611333203025828835508699310566142658099813072174978958461070798734253619988566144414170594280590576877135841119743049268619492204105967907930397507454581090089376520857838128104984871418329263155417848876775507584881100836252151075395716650934642670788540124978890489755335251985157444003075743391028843731642625557719633267216459228076547949431460367976718849064129617168993893698891830098772871689790253814405569354477092364897171035008763564885165941592285621458721093477799501055854156274712221535416406408771654852017126511096983810287149571527422669076229379738220451375881180614903456292779823883815207394964068944822720750033125424475596277957378357398544219772036685656464447879061020761536296098432134191900738845401502626454684402615930990499325289126758072273961035262418831444229175972914787927377917526451590401028287746177046905883301363709670076699882480231690661882008485153305602188992923329158270752023091726287252318750630172633376382326091840851923205276096114029332408919852637667922238991033776995601332645009055811211719142806305719358506985609334627942537865318889840067072502981480640936755245553060733924474496159432444858355868389463936593968644112979902066144135248353647197706059970946270518535361908633500409132878833361001999899145243580111520949462991743840213395260932037117064212157365728052867445322289723442758983283715638063478731541926826724834302868980214878902306068686053466636891251000713300842841114298183621332188330534067467441985824540220187453315273934454621348441063772180499235298107412370937021478724888288640724859711526894103241062185627413935629603764555347670602814916984098780796653675586039768568787629673565621193464646270893622185879290236238721670263709144282226792217564046875605055338918794752827411230582442711701520594428095372507724528159092374621023957374952968515807792701201407468411590991906624486896478252027137438164177999804230474717426270008311760161627622777420304793697663243733648806760494127584630025631391767291691570678791425387249362788338475586265435786369920983062597275410992507329444580473078582707744371762997256182778064601243864892092052686973016259853917977436011942296694308591749531312325150825239308081773767420474280493987606186353808913945028703211752599651494990718344298396307060949707148476619735800551736361990824081965546667289849904320027022841768951583569853279912928029894129827430479716377268034241228775594120970542654983099990975281075706194118925195271182330389210235624063035260803227869971363250036130518724716722014072673088525119257645318185658753408226346337812709733519058541016995510222185594437413735356496669051032289066645170393055996816031167425932073801061836687649036907826891443059423847792461897048389536488423216908022193026862180371869429973652823998742659407582332341406550187209852965737781600536371320138744939676921247232621818314796090037717735468392298046304975625655553817364804941125558844676447821239329337698418204919846486359137461791483881104603823036940532628472119586682257717464823278799786291385424480626440315982810855609831622837789211475091934013494398342622147496785400806832208414749576219193152894943959627621349836880997105537849748060976925254401879836838023592783105834139928252641548815705120684807735340390386575149538072778203118555677917419264297750471247860637184962571526840850607950176658950237319675521436779843542621208312608139708040557715998894846825638577248818777197089257731480729311455314867150561609638866193022936654782687795804604711125023650161261010584004094954093195879847730222823223717756990432926031410753066536921569665221667449326836875758608981257510324986317821351063734165206048081523629568245580681517384947100465690846382606768357210149964417568941076469374402850732126171062934345095990904356517176566950719480660959896030168465634098119395601274333558203110704693510503438393883585474946348470708071945223133388701839953263313851518479987827091036645093709291016614335116430880376915439441741363149045521812348971266736333983537764935726494049803251613876587383674364830608928524723007069690325968737228769392927074889875528416322208893058167447590443993215172725907773358677120450303100326343424971858278531938423279345578706953071643410800170202886238248392743343340823311099437330648682523219310944038564389500052927209235836792374103692020991029032379614261129503018407425255742162640129033170477385865252132688749405616340287131775187154568211192478313576982673050863564163607716619888871376711435138912280748803746901364028184655518826864243249983947473350139280813743860684448451371225931135683101277591840991851318921541822061389022443085951518967615115982126464121312933264865388909388345111734865844480791611452368313898086517053150938224414974653991276973333400860708203223599067347920406115760744626458118038593783482113034710464813794451256500073242596899681211640038448427435510024734811037687196427242862415312552660125959503100028019230945460361686371314665962491707748158836481512762346960486227767346726859831771720626848593139269855906020181779232834607362646318184117061729664467439639930880056936710624082288799404766262498570273829711522937883651398569679086171532501617331628027056755486099504852514535341136491067011894286235830958168612371299327268743891941712211170252661632638411401604801978040527416739668098717815060237312039464197847836850787133967725596963182011336118197490286721495214710386248628357944674821908369498187560540669573476980847400091842541833899748217431426830638181894901767035369801019637354337835457058764629254349284801336367699914918688688348024298035797101393070385311657910138481979181823166315009371943209944069979105498291130433347309672229633965862927168578637596422948512904574615565901584578875622350352114863233756377063365418846803135860011269338891841156950670844230785556067955619654779849767408721368609810983897436819825700829342504272613990173352796538375805748299915771256366197385284316575038824917263833950174046717471397704922262648719768833847954606461412366698469868942064886000000609967073968176948740837337241962238866559557628713917607831165707333778667752214459229111099595795661265235672594818522453994672288848485879153702950071995944524310732001337103302932598051413485892872995489595493182159195633922470521986294477921769321176932708565520681108563097837517388221098605150991408940979790661112793104289078713586898256328991838979271404792286759865743435533969961603000837269933442464615251967815420341276386318270640396896944355128747475133900223633795523562175767423182505978488141069274224883474462312503930896879589790918245491772449272975177271257523665172033492540984584416787313711766713031047058832343182848158040901163398339455770035247167624798172508282500059098948871427064371060512359769838322018284140579330678719274267433294624058141028779638541120768807434468703146206188897426245891275215202506586671474614930794901327331700582972600092576098881848234667402594769816835895098015205287149478107769581007693929013045949879201341837732139509758467058194220906671649239034527693775734521591649551924663713680751454330422636010017575278439843248028997678504114725736962936496463723806352859624350098758209512091618977209709869674915405602401105530690518307068403293815861164769892794101090857239910736889585215427117212854650270890844551544889282330081172694282325290512395071586745771688256142004501930151009349665549564430365690950042324284810987630256533060371657861916607111676578781665607667738238128655842929155511610075184463577327165112114113911702395115518217052252436554235831179305639794185492803956888946093038874272201858783857930420611986708258920339376534191792089627664793647633858894532644940859105694529418876192563667381853282076123745108628146746117737434561606419105241625203509523782670065902528192485103012085897396947684949545042288925427579158387730083742117008451906963305138009401309261075649938565424492549546655334816279347992696204126085427450387210371183954881753436760804802109187939948440171628079393640301858125013823604955012850773796529605230337353522978396141345952162071162366239112367381485690076841343180945123232541281389823204096520937605008742920542090113070591771634212380728925038746927810349945590831100292438403758039629970298053540274373794718259486591807293553293570354993250465083136702748795008052442683200822275688544500948547488291135948345141093300386098434113398793589935008494234557587898424698498789244073279464308260634782623394712487713723910390645619516031393540465384237643791023823528489939143018727959131773718361937913593659722580940927413527866298550116402970451831080506877950051184082869861395848979080592509880614581026229938781033491103019848971911030059877384257309903724770393139520350060855605812839852824786632261536134960885063469233294124072510186023632582661897074843649035524915571864206183576835518020144711029272968886952150615125317270417868944726592593796335400651140202510267397232216911966481078087269029224567079377100917098271100719428100587450541280928852906614398054477579895319837740407959272869915718878514921027695128228975938293547541970923743138082842915801548256837180748416106442916113104615879453035782619271455944658344160320991276663116050451674766458356629426100493989520961721470303197617043556689240937212668471597297906150689124001944376343147402433821805615554729693727115585162859612128852744797414319742820320753707594536004237423360969724062468738200485965683423643147729972064933270482275317005388979999220349812164558691242776915503097293875288532559388814250769592604103568965343088701374910906229427740932693994454818499228952331079230703679639264479256614111200038003926586751825473662214402460894970233534747464191562020439411921502682700417735714996418489022389196053567040478599637333638434556867070960526323887451796334955077908305153285858464543543626174412379239171929996756909017720013684302561652027375258645889426819345348468635117850209624938690530200452506382390492785779334610171910600406222769008091074881783644832896315578380083212490365567092944739544280339940058859117322138546168846898061541195765950332614519029601455245265723544000869316028496499572993447594879282643942653149025463742230266905306448149024694984839080921607972198100195044381130822202652487971603026689166049396834243220036444013849639385278622747279948342848791223820113534894274757353151944303687317893623457580727004649039898892806215325457834396429946185107659153579856642195635807977525231990031089641728568814566999994821110518501179052926643812581944301094229770277498966331348598226930641737167143410765005903534404110027283801040720710179210555681692275425086959145347160376433103956932161647462282633900279635925651339015923190846945718550613185340127994347431699741610441149182443082988057408945428142535792888341150962296901062556488015984046365840096866544513249386147382761950556180378464640514286985950331022612070563966066767208374152816367127757916472265765785573277307793219025571934183012193661597721615836717680767722636584336891226044996279377267282283859240110822619210957382912275260990459066508173820123037780250893886579636442363794847111700341131344922814607074669030360243442416905587342143758971968354357036148385125153648452192046725739139546318344331133900345378447721939506980274349476096807602880496837686825009941248158888079574385656854763609017838012659971359118264631160487895065346212327738414120678268568112294073703322513499944918980408811620796503668834220323133702979603571998442086717046047091141254085616566888948055541451667553327807782278692387776832456389117709292269578347155562075499938184378111122376563646471473760463464742096951563718377526542696346083531184764757648797117599912145663566209011580026478211023601692169595814496626571685601918128225663494304351324397020839975124228582323786614339496651730019849889484448550505267373515830451048606984865508756320668749172165656987595945643737137252080651530614879870160446850352967627435266275654852761206298492323313142531415111638825458537387692064119016144862807402594751641146138292779833958710500852614901288392229863705031280382903020367185447553355827386435327426303149370949410060918597435224188527567450841297146979490283265929093598462906888529228638471121817742356415647466140825987088589442892620108363555358645473404829259021692755788089363932409860230431844874445004338745588825123128719994362691842367342588146204380150129210923540893447116526887014535913887718515238669315087994203063627571668547042592808086126155731135289197690416128489059155336990216044069584556077048149827002809244892805617824244782585651143114497541253395127981309795332803549461122829010312195264298965170715033824445758938653924823005851669643453980599124017295230486228526821273038012230774309783884091348866660631930173663990506880460323964848063586471006268697208990326402365430248771921420905686982846517028530038997451359709040301657233647724921290165643982677469766542756649937961810211124631840334219458071318348196401364949518858114535205749996610826001618602142581247403496026480223331242126464324605772016634947678111309583923935001262344118708596110919799130332220675706503043808081772223834892955157039678704888439739756417729735429525453672402470784117071504965626713535501424698314402059885825608969413720383737938846587143815927591479838558855027243754427333234956985073803182947990779747839313179737504279801681810360834906284448827059112639938264689654663423696427569910551866932486714616341431569122411645559317343001875184255720784053039227016804935911088339030191866066645248937073377487359722905085942367692286493580526690155524492568779949296368295017297442622932383084422965554964760380994459748953713553524112782908082361959084404021783073633446105683797733689880158678504322948656125077550450945431443502250618124167336704880937282226032056664997406702478972957743039532568619573132648209252768219326737808220642308471030054560579759796902980564720832000118361363961831970461009798634201025419022240816792919087646189763481102277744318965130318199373011925887282135844145886606990304696700745479028942334458606686535964204061311239831215530743189500045718393106293212066492100891756615097609552257085881815123952707385896038578866329513610063859365952420522642188531696520795405359538653777361460938547721647804132951153045352735744165211827250882761774638393301899138125914217149741271853437795649097106802597800868025041578486449838569442999360358341809863185721390397879003767201118263863038522034143331661854187307975304563151120849377545489835785595925518119136087608456657060439300635411495546822214852721512793224081660872426207818421224997830845798619324126128536198018482222504321482464435187078909622403178802390762826977370347413658999119139618885992230027745833656687882481190390507602559012893449074816127978296748722045723625627371368455692429557357103691334128851277966539643302175396100221248239109780582199967855862673709967912955934827912880206686511466136040992013011269322502185374543606669395308068662923788446807184966432688553262890899929852584795833219853248100618535435971086954063961855383222430305443425183808073098883622599933029330995043177847923755415954875697869912941656021851734529182594133724078023066947425044000357351928621246570446795412120786206099142873395165251748034207440107740815847593707630224107487973850331159514596278515635889471172144536577308365487378057973100032100321217028355887330727790391037281133289769961253482157489679033731431760891609108285954709156662439215088564111620971486990502872644325098406565762658691773252900833465285444218106083905249574798819211423520439777152283787063683110752605865466207293422271365406244228983676116054162166341594228208090546521772167835223203990556035243959091783165865633089249316692639188715936253128393230598698935207541519459748605142826242662354939791208913473452800723833666214829483066337636011851100204489124344461061181868490439529286148338229130821084261068073284846729217692862337959809706890003294501506596353233050725830844341639200958421328482530498813917130587671646298807186418701311895551355606977124154815811334611015254770540896310371559878985618850930135064271701056009891495394098757776929504931544843801692920179404253692820271732207737311580407635776138318756142293969650998423157932312202912970782897406564345315206669372426961010371324560264421679512871232900351074332108843328119617068494866008557811425488910121674707356491238568251227746657711552900220476963056610777529408080309333652380409822567581696771486082822636482512250512042234005916904526005976552330392869742407951555139693487330457216590105971967755786070654728276414465370348024954199319134289067914861517689962178948055555140400343039653039058987936785118318602971251681804223356311742825371338609383738937951826671328138623796451128632632065384219692141612767599544942702319646886014455400824411779102058445624793083083663456774432906321757224307674473913493645000727195500205210155959698732503122876653557396525184630378006370798901766459879642403298789073404865981713563724857876261026596160256323338654646000722139723452541548340009124463937189284610117746113190276724147874712472781239216102626648740159288073563934070516493412798344470022374034358312962602376021511465466078672821733306930156383714226318161291441148004924464894071107624054109948425665401733165926146663729163984247584874333718260224974423157445769815845602449750111805404483405204619624646407172548489983722826025749034525649671552102140890069013647383273621982284613790319562655549755595285725346674172852912423644219988847933758818123799540891703722486216170916863405179005845587364391660464281538591191698603541691624441691496776399236290869521718279298357085493154884997117806759310705406249977343393637544681981750121501669818097870196278025793748137618202246712105958660531826434740309976992754251833268145645498286594940836992626551324084564331381466683854225701898879973182175546830174911584564267237039104133909607235590333233972025967116520607334446979227450425704898200611037020517785129510954588383508051521097367715428950928338151943797243328755910300259845219321363572224101769265010884545426602414225491575279131631790021121365823722062456560872372960474440437241135672575714119269712747083963771039752101162406891249017759778341584758246253973684657563234626609644814709653054263872029414524760800091955070869211761779241480377778273689939964911174809834648908259295798384947329134172852845397121007693846889484190517386286439337883900083054155435177289659337924757372486571518748746135422543696701165465952508579128421050307600909382987630911217845265359000895095501015981059889562329198448976626466097878789146901797317271442995610948121434431467477754396360310465908877743012646661093528790663518834564148381435149609087635326327982809833036496906199644128389025836505820316612306376305703982276763826057661497231743466711391493242403352731560498095477842374709693052646464785837757863676538357700610605232765141593052767417290458842369092130817144808507107363560755622305067117907778276052144189303871381714751987857202167667215826579843550939858289737203272585404343085547560753775737759845823133809428461077324792517060745631615005959475982958380082515063490515985532835494603302507030028645895313838558781314193470083438716270171880613463989523929880569381365019864476418619501323703552956274836219611288383051836321438796476577918649847266053542465545882894628735149742708859663517416981127068525434335558533986322908815609013976321858054086105162891470803573285584754620063419206483527394838790629277380778782080371335222936365314690900199233531084390194728181912375543508029659450568085848760506579364601780240851260451395699978961842711957616141692723840845775944687206829240896332889733283985753519639738657717762177219175294407503956359317449116216232236737668805980151820013514098458917203376566055761704422579804600308686543768469265511034707300566639183589101351616803858267074960352280076820502990595512121061244908928908161703773106232003636392377746081170829054960887869374642686618671446343470551461788924295032437694330767517459670165510798477059434246158393901926794323774641642723344959018159259201556082503935678370719722523548106938216499849191584910540139810183819620960862333385192460426734695101374612148992971701372331730671981273009804621194553574595195700413371267626294254421671965073569009124684786590296454304469922172745144878538657051392503117377169748543544998881705141451743678104239798213521927906245412940550781124532504584594219044028304928894100913963101974702144782755885320686562789716567536504945855245639197162633005694667536592713088947699737043476890124848770699083756224105209673078416168752692580929364654166165194482871464663073904662256188707734295567854028975938568250693689859786255943312813780996358272321521304134206053401882662006373230502475120891648783590962878718132103180479717708846979966353827898076049152419312873297745640840921509685934629762075227859754591914242216767168672353828173808670273151800818659594413007570083653919074747940860582595891749917095135615200860567233757853110367038620017287853042432649085368999214357162850444094579396433941937902859904579468008544111427766244792657318531011464247870934108783184031629449304365072862334367306716876937108873447366589870800479991186829254226663388871546124491907987797672500176406891181490737112487350483311358369661638163840746011575690789104770049649073201185500275919308561160405153820662159649489754904969231884753144238401607392855328672904135205149551953975451905759983432026380094249783880896579038417970741677697178336793247264762672186354444525088908286411681031919319515581209475104583584816076428791689575182188256927501776800798176801805736634973756116718892762864260074331549688155370220357460410750639665647050354266095255261431995877154513437981942505896063126682127725539664337030104408903056321925927233397855108298358741865838153920428377896157170317877171859532209638903531612742758747816401574916292290142968716845306458606519881513305346804801773737368048603903902814456683444706621829484853684166695650640250741448883640836024944135244966541869207478584682676556659064014919310805806271331247025229278623857076480645132277944767264400633375761914214867778992325862342680063254725920981468857146055882938955762030710315783422486152239575892936948288293951035803708356279929948076435319384460971676108401746357721029341061632772054564709182619067615751398893295765619649275598470702997879494849056487165077369688016046052746273017786044947410567650105853244570572201278098358829416750973515975428882586341460783791264971760614181769771009900644744357689950182861165953940338680070920965117033147540213033828418159490051593240519312152430077585909597885726693685352681096257874528292645266596271273121600553895512702843370109611925830576544103483288187736018571332532098426540306092290277742606817091359366363734840334037208877415048797431784467284394473036178734652631740533383548179036470652571222000675695125350219532255154380673168834594908447938866612637210176045825752512841343386091492136395428703935835440819563964822468037675543589428811544441625003844725752912095647799715768385704991016625138498739440881093578856377029380353948666769726599199778447945161859220410125646067109397466981385951429068651778660877753431765927972941245559478027838213244385700008359593796339104649412204569791659562907076837137548690567030408900660739707832962464764582025801102189808555838952906043235725432983650433281449896965261658857520771644931085526885904842221255850557614246734254394050706222677048849692357502489000469704376761943867203795201374597836835958247204532396196066202969865330266094567592034206738790528436251528680913612847870575575467305136924448912635113404353173075779808637396461601103201611045603176773504617457057492520980761497469477740820973736621154315617840604157372021660299930505136448092014815133913307932801702249929852608991667315491335460729906255083117675698527498444046389921437842992115390160099275161911641478780063584660048047386852380540955983142000902018741108016333320396838844285734784908690821920568080901006066020717305245206513294421430124660032412312232446936612716098099027860621822478847044162718812483686418386188877659205072814277004168688919424959196767473156073983011653137659585353765039215286153698681794394366870565446814098356941251726423287256362365807738067451124546756032030118602331408946499352276954416408429413211328682930896514585896556720296316109085023575269693749226453226719999481267780432959133103047903032518604699617318800340746134661759285017809433202968344634527384393736824736880444692212659074177109015031643850791946831894906152098510682456675399053293320771960040758936375695936962114693005863047427041436037651042162950859608237356197468767963022123369130283734641911231729344556405448281935069127520429049048178331530298405503227405289125801359027457115224570597476922040429997174374001743052102838953040527051211735060483017369538020666314870327325306583102242547075266146187594655415484997199494515358086810723932907649082111798666104323472893424162575738022988541020357324329965417678097350982963652150791863051203062538024211617139269632930584683271325603400011042280537525234012350849122728300905931354004881927745277151480513795506124367797861802414442904621464960246388607650803985108425319555404419380110812949445361318794526489509293547272122742501539526724738911844099630690067140854586992527586855727993103043720888694708781780075620180086487456834327369183047475291372879712647015583051989168490161304786257215731980346420530826282664825643748712107225890308764757967793409352360637061097310384673266173933706078851634115676541163364897063697165564503584366344581111535300459553404287096215272929295022270771648659464509969709167890498402954667769686815531837358013574916057569374413680929118983910664586927117793454941886400145361245868555070605270162194040249545046592363073133269553415331485289469441482567422882842091738400080605429303994996150224477264583632053611582327347902383693717517960744175482151300180140761707677198244008591316790338859836108933723410003420376478793675054859978659988672207325572086653941834782080731156071804323463287248351044382107409942064784466445027094919203772886167174634312911556469817913404989106608858191574278081630893216291161760108472417245362551911289791301142834595468017559883782655183005040246128699348040683935085702257310686635040701657523664462794135969417610905492798626307193953227424951540467365519636860381683432083109730125166321124084308289821567188061883086622838687504435200891747538354493206789291392781051484681951399537704405243748947166073672447347151817126892236589704957835391642404825309404190412696470593882241305144511099438932138348435593408648074075793503247964706833606701685086493994212544784203542200924594831725082470771619043263593815820077934620867783138665928059675280576496007114302652990288647039883470249226775884797926563278741184450529841320576857517625466595303297157716242626655150537650101298529164388770810399869070507936493261123607781288005351332462032899791948235279901663424686388599503249826068972923755633841300754283015893360277685977142554241142827191404262694599547832758613422246089750154334790933039679333858020298487200453454863849649636990293475248554783882559175418521528893607967472863019755288034740214273734087577315768177169322231318214888949985870390141599925079504049603759512980830352833757110362399826618963652330463597334786634091104407257406490671571705317182819809162721060601359699175365061959426002742866365437854880953961458863855291125316556911013863645810807885284023846542755836701630019490541944529484124795606647881197268710288733357808104421686543261835498195605958409999056825752308815772142646986872985466639550961785679540894060498784294296014970252178198551452068789482968707081142628198537284092471464691177904393865174912470427998124930432888414966580025447699725439959885064987178493199996194810386041743334494933271340730359902497679712880196221896019167896322319587693109537699140364035628181776931864162839885750008780630177007383468173525767448981143101771726669228489289861147181612099390753790829127180073110668500416685933459704971068451766578361367088509345394629241886858961418939794069441983614783327500734809199682934334404834746246278548276555390468812664488167391968215009272222328288174999067037738113128303587747751840119866971256619716611481507352527911396726905286932337930811653908606985982309061237146426858793011504063796879149818164816160885952763128059488610049140329017600189555315254299867267450112612383398400477201241173526044600544058177158060712215004271213046111689409922092001937008209456974576698860845924861201485079287405963137429450136437281654904115484342138327394633807212099357156125858015381587346429764002599351781881592146705562641498891478258677332923003498383367922924927758558545366621429671347568558871835485696671823547759651876571677096633627661162208398414970039801445777628203711336962434530604968570860971071559591679602003872642321558598745339102848051072436236222091379735691966585057179260890373123986478826217620792392482504835876599989507243242561595195255126908587446660335827426219144174754107939905616052676118607357317524272118846956967095598692523813402958460486729944342000708334545549210498692363709648207594519727410831788923272495915769643063151506381516315092561371173203834469180777219112704834975795189962383980745342651978749974077415386394526160808700056237995745421407758021958198299688377985083555106593567018920496269315306549977213032389692424278189718560453401543723423772074943816353629754416017527463679356809820038890643751130659401053216237230014699791119525245774559836210514788530327454907513173918011796722525762719156130714628091359554196605834773651999178343516163419450742739901182487165637188151458692201878389140764450884917781281981680005662665705604830246399448161141691669132323013876094375285807199926430569970326112670030170719029390047173209287379860433297115618232556381496833488390537118693580175322170039310526341626243887354857131034495600920925518015822514637579924799894055060458298442014606518407941875453974521022744434199695632390423225338495584643154481392778371332916358318518140540125317766852991679713208905734868119900710884967131197940905877950831060142944444239032101584615586986287011521811718575288069832758881346309638395099493317182137501071728107877795153605559938188646862192492975196370552583071241902983986479580653343080615010516675710753314340596616097616954500850425989620547359655478192004026276276116579211490906034255166948888360904949527958895730493897082830250367827544305364829290668656636159390026055088262281795892134246915768806528788056315451310950740793950289911293435363741092302644580482250237533572090390407880296819751838252030620034945803774715854314467965325715738056961438718731802412430873671487042948514559072904143583052460307258641248149771295716919860137589178293481753481385182199110548651304232563238804284544255957919487417409358699809137715099958020216782781193528818067622283201418751372494464421590309651952750989188878661562529142747351095586864635460346502514502921164461581452507884025255269172626715675525802518743458133753370497349858232890126344646513623800467625170230770656074066428791297118390190812942088798225443251201703399528285329071835444100190183823762143972773226953292316061973754028060071808766514531302994636441632585428478944287150038915848086856798154063866503190489788112377339154713739836840811537502118786323478792068083627437118899125500993955072639901808229213761735886117010718761747257947792279551388770827276104004564965856492870013335734250267445307825059524023190920278786484509978671127510937526227796134516442823276132921660227687368045762446620223646114167417719919718720444832562108317793820731497167698656469168053286522100979746379496386821801429189395958100269493413591692138539241325551482945472639044636883977666379575507344356346695289357735003897082088573272543170814698486022884729377390907452916943251766213802936533760087111873913404664082841075270878884911395386299232792196334579907075391354944207814507754133560874624051274046424620494511859221078129309455779280928339332522157959648564185177432591925447497693073425140109212944006261761287898768033274425604609088829009489181744185165713265257460224265653491021053890983119353944481195143065176230409910405101459695692649549635997091091859285762383554706636624620054868027612330613649307178444888209089301555180580033015050778234035634103179468413193478618503783685448152108156121214377899396681554515269259755345100399367858564878001034406903286498704479981827932985384233758392952175888308793715013587231812086411597619080406812838039108773283912426921361786262974353029567251725788720527447889444577694491627215390683747607533788687575647307540528850380799115537367990895240327839194728798576474077981858443959406547584899804975113158857702757095478051308123815975174216333322015356157737247203560316751914976009332280803489514563494282026943950585265585048467456398106593566645491930544738583333177745313513644531292386218385541371574970146925805664400531527588092284161750050102542552362884898382375614700987754243362466252175084245048063698166122687256688344071827034054871625812294637595450329482553463824753679752195182530646959225242807920944561384370115105187678095990150910168203336403558674866150522041308338233926394054080460296919167976261598461762611236573196307686590448466506428986362192010349252329384148145924244681365734713418377443334449319028750853278001364279389231532624782479600722808476753113569397097382917694235591936544573168809044141269566154019998713557996350000611835508202103410457323910937510927507883829958504739450933996622825562856517233171798723930574770415174973964222388145211336955220761636224130114566504163253055889672041210179354716477080204405986739809141974674387182141146450995075325850812949876700731445318717438935194898463890800415189056621094580361906788053417348551476800509167796426414203740554076543916543235320666853024507588641171852224405163456326830007841713954029579813442863704305533009016942083473041543144395869666886036817399386988310400152524687805256790507758524139404791320549081395411423174487500421579523755595195825820140867695841767636935855274194099773978846029608359666959965329165718910659410570384734038065217116544312363688823996538028492561854396480855374420244876421091280330717038277260121547620896030973313339301522128395771108528848192639382452638578076819932157484235567075269343137808800119732582549015593581284203662588523191183113174591428094321874552863883498752650053303097677096035527665230727411016412794622188267295873593952412299942181307389755986848634117382713736466092143499020969056192747536589697784765519983383847939925940900551483599770504394375663445238348519290629512366087491765837405422384044215726981260305540170479164685774229636532861610784881836093048156059034462684709193105381221117526201752808875247965008781233418597686790160879872661966921047109967073356055386335719464941790317950676273107978589289737935331463473920572302352669049538617890094973258291329679218553953961526025150724973869658225093228384704070199472551655157069540029087101637077568961607375954694560257092902216171598917896285982505465731055075492024251792129511702281987863300749596496200763624067379171921588736614894060005831412968026385500875797613037871224658555739126583610511864587273145761093935714406647741648306460078266070067238664977775876199037919629476113008715849774922120536273989026444512672055390554860326989697425179558093002032485918248146356693174501202315132691439553669541048091769085548842727215676607501478143681087562563664441438075000406856536415404723096118180588963176726124550868733942375784389971523459142865075153357943365153916279502334907127549300538845314350250706479164214550231512131559601341185103212097962332403134703527801559989286933737425523413516517411120750553730124438550249431767494601126243365743011019232230667793277924270560240702543167513028357361945667633395398514337389985473082575285500689493623788293038385899842802189710217803272988360892532094309696497104453219449237288536114735276726187665151979933319350535133936102732274635424085230396290059036911597136192085259046959948106443360328237726489308772607108274117892907871063848401328682588663966543295171047020204793872794537596691400324960038408190812712180962844743505804526360695669803445632849146263601103589537692679513877564166154189918854061476391244871922291246653283404696594812786805147090688147335159088854589490191955131258883137403120229189293902002582824368662048948818318614973864778233504967010324633259151697977064199735931791055489553370369759544039514161663900917674724504497661883434464479653964871436631837420201637008070184774072101281437899967904627738242930159130556675453709750697651766781001646566073596579199151402621200459922408561094734440875402936133514019274788304129809675835512581611016120686881144070050252971531358431264395729051460190594993773442644932776176202188682861088528624538534696429141707992327399555441683602618064494914614583056881625763507300199383288261566313809071417898741222890004053768692205428815301958332889507897275005594570270414486627623815041891754619031910696403179337094231940900300818359805939602102096489460835268588843258383486105446508169903219991258101344617930933290630215637863165718882237207022527696173734329226364947962006593959961929666993598983733247774046078583259854326977139201254402822850336481751603880569256280488980877010281276101699303910635503503337846248007589919408250070932962249552781215454610654370350828935194306116947442065622604993558837160234892026416236932950065883253185427228385577611141055041558963003094768864350685718853923410245772469786195652750929993852298163328979433059416391601838990587758750684215865326775766179875661814259412149231287125406500778087530945201208292830430597894432107787237250676909159489765227799988015383039796227041581198137532809245631563047131945809346083554764039443499832985866057904062546937862136911184470464950087899852787322261985426933342364353880871311761280159522656815080889291565181469998523833136922896836512344890429547301158140414324094595018489036650042425829975917917729954608102708397391970444265971943195938081636277880282441402942117046468614522095896872582874032600922385186804358925106899034311295019306608402212825751840608536108590101729404661516487229695745553262004712889174182469920793239106814271499621393088207829275717781393475959837559703077926589018009953751268764399744166488505598718239520689712771911246207800515527485386685254014665270484270127204561423897875353824304400596285243027657267795953185389868543992444628846237476541297057277156761302783803736763142553657127140241480655047772211912196877530752951813197367155337799128436320559388437313090902571687794936323591532559431184970032257732731367738806307275854220830574045171288523220780162903002304219822904375913161393623369682070328790834974554261811866157285024891573906955889308826765001856257464320891313356415023317489230870649297159670299800618398572507730046081963618751118587878289452222087117193650745247534446566673288447006224594511237880256948880924700075638108466667774741766144916986480869985149140585069535230777106870218141322116347117720259828618972326198399332178322220342602577606363619391788945191532517287955287203900628039952249043369566449755711715335085784846376122268218665682737580291097411666735711806340453799977046568126614770561244007176435811855418258171534974048424524747710617376712757141677259176332577728190358656030604136335514200098926610924160367891541281995377402193399819572623603709080095657877285356521458352796148299277416754521458463791935260530386111551092826972494728791103088548603041723957956930451612471688535872303608241571223624262286552360874811570991694242171705237004376604274927890228581897995367535596567480956798593244652346023315478555936161320383058806976856734965448413123438318139694960830163515748241912186754194882112265763953342328217125239149020057203313570334878605627471618394961827595255954992982256247076336496876949354825024900441744985897764900235175986949180615260109031111783141061690656030997814719854033576193771769271589536244609603360888508116092724030934562287548196368265037931439593377116010219254737409666374402563670149597253237053157551957774982842066783974278408159564362320796711268201506955755373053994689250513865288634251012276220872104807443415271084727330623403470663102460337332353036129196672086870317266364759679863334677262717344201488393777239018508411644657992213391165232707703942369668155959331696717729328113673374955326615704104180253361658419789929466351032411439194021555130381511856512860113379928331044830654415073681320044682898838104487286302862583822004994891243307423838259425834655244910753064741613780349286670143068986463044313794867437609819897096808600326102415485238070180680653352666155274524572773989348372121728823324472099685785328750847212937524392632007918780267996020594930314859964039260064952816434952970012035289084965607608312785303558262260731202430877891022305589608417914340490922891334497833682097808190954041260247448282228440703619602582225594386743304511664951405941192662521849655625077083862169687937847478649945232080872492334077777608708636816190813557547151229809437731321017729841016070148539740895642601797531066521000829022528009080661559462571845109269475477426205594323711223842557759302104202720066352336950405919188337940225959764493168786035154617512423209361406375702604196797871605858868783796100449619851327461472763834700520934073765512402606043606599712785043128893257998105971309294585421902624428520477897800161402993302162110403480188545603237609495046133460370081994300654846138032680421824426096403063805590706010807570542488539984822074960547806054999893379525306408057248671446790204481659432783546949990933266327089805808832341390464087206001173322389730126801185498848565530199265860238162689315342457809250550265365396668326380552687704859783690363441328391781577240319458407194033794271511277411120959421637518654515788173271311048577955424407919437634618829220370667499524836984383768220893946022074005562158277696477637795609311043839471332046404013189399177564053322470301322683537141169049900865529948214022932631748547925705345220715373941864577425794311581236337008521300428156649272458379611512079525553297846477730151011459637212765908274814949780171035934769015853468802352982240119807810865268394742242190264299415903372866907774923864341256202125053333740720724923195819230995986563374338223817058727762209463210507491494381466006377364084765374041483153881907235519979633490934393564211943985062316765095494266501519573085312242811296026394352186919524009637710280939810016495298988011124208641851397962189596439390645067300613022826056746803714401754299356144665709701456626644440987906988086319005798061309584635768281937997396308601531930514601149079743302850852529717404852113095303912377681556422732856719918160862726775276659504987641417743334658196984224410261467451360153697783081150393675079281573759844371479254673319062182719625302103321187933727198043516225181410643371327203465165396733302194369962346592031007365103016792769330809508432947639479743955171396986688053557019891070282909832396832057671708747716926129169332077130626669791747833147689392646439863493935405777117415767712171655181562141848522824151258137252354282542447732117481848666969475237265267350237021086601581494946999100286910454126444324799450006009183439273983742740895213031278350786862511470084783024799987988138671397940622049310883526099946429164327383234697529104946671897982998891661721143007292122886769907130735821811106756740573597636597524018911248498085351521158974842647390029598670029549070419163578426730534987485737580057348135779109784852984101010852570258406809457186345882500121367963406186705926768534263517373984783577984899974950805584012110212346485655910357390973221768833589575248487228468889604023706629687330614769887814997897898513167857746894970335731943589037400482376888861778334033560534155480725696448136231311471553748995752647632730343237672033703576617980355695528090995732277965270875179776821224591105439284000283459976892561873206827996109606800915095093699388622282885946494955679878289307048270092888570523476703882761222082143158046320219692666691557066840168176227456305415959111363668105637492391642943758204925665628084872028995516691412284604298896238786676193006732908916709636448771742443725351165033946359399255749074679963163145867879244655797918133739380709185919444566957530776585943410276983574120666241121944649155017555890193747676644605852488366252635906099822706605365978062276295442835585670579959199375322908622761775040402490921937574560318270289687669279443943700276800517794510526365633388825870068226844820049723538535430008841992846738197067686903905345509769943179077247814882870708443016803600035878577771916552486213843594694023395901435416214636491716424513941482401501621330373681382834051466486960211536377426262662634816353599938923786304824962639207741374051908657638479571787005763592207465137997141217676489604945044437750969605998424899251630228565880756027343322035012012855830710628494700106268378406008374955877583966710272252394695566892410614772782852370767489342820480511102129041283540611913411696798122371453564923420320433492292052797914863403490706004744720288914032307921525408629953414658094935397781916492411904568570486731854757216628773035450682183104820599727973712973497597349766536401421352452876606755515627832477607455639339773332561011411754613550339597008313593261731948859908605130637343832531638621373213581706764960733183257104541522306587052035276576215036969285629832531391723168161757418429435362526398751703972233655072425015404488129516054280250626355192928493691477010441468846624580492104870502691610798776350539972319190400067365291328057338494410772726164555586764304931894232630919576195431406573915560298807433633201199645270085117648421754285588916748884445645113778263443427792319778961819165422455375355642982821760685858883808379392126448272175440685294626019706179621048408024798288884362012076840861618831001438871865111566715943404419620551499617323029266239713567457563340464002090761461147039769527744013267827043940650605183741083005003128682087369299634999164927449200472010122293264608416279450689863146618369355585670014248459026348382476366297876365121480293496170756479111138114749449391260869253148197794126992833514273053875477988888201323715277485095701947026297093936354691766659410514104269922933546799202820054400593561881246887243270380355785280529506845876855150810186516371940012055416736567999788303081063749297496417913245763567814884298765336591384611217329255991183983791347201820090761682083405839106272538705299002321533737765952511969356576282252814032191208179159870344775741732990045886870946159480467125217700650499142839977162294285914659790834432674893303954840185213757293190079565708947303824140619576337419762944150819317423750780011677818247740476284770663250812198825639151698106767638772945282008031419903347911288191708037681282779906310534677831446591510246586477539506320740569612269372960513171990015186254298297607623880019919883417166452625333086979034807365885884079670488621872504628394768711079529673317238664233158155874439429179501761003104234019497122849225885301118087141371453436131104234343977380521328703361511885409064777351835594194888589608027975287985833460987028303383870869788444138005881217890999235406010909575350150305042938198279509682109010891219133967230492844280209924728060814781998376766305716497364500207631477018476719508575298299095525544807542672906421972896347696564143257020873309171669890936655679604291380271519985404374165535079931059366308009519241962790165542303437158640737613946166684873526849316326030451799068377356807223340260299957034103790332463040342038698154178137017874949246090085387189814054624097464068813716867910657962695502598556612073088165064436012588648026379027871885429129648576316495594324703651980245167316970470393568510322444477044572353161495564938656162083085350669708416824515643787834040981734765980469289534317229946788843005215811446569705088065970932066642474247106743020100614657627381650274400887329066456566318357368969382495402875334691447951198429713442143883335004361140419436922896465256697632574049801744043883282504147949174356429850127395357151288197305776709590618569867810177211463109954599755169237581790246754298226184000470641526952541611518885050858462300616541470786883842864415920043567198659881630847997425710165889677481283608859764490795806173130159185191244897471478751499542958356966731214743545313219661672951952759908581332761983600547481687676594741251177044083663175678721008572519423714011305627098769383588323748584047758162955492495158544000851678697204840757538657851501964782242276527211144904937100643782522323170370526069821014427186809091121639620166726602513373942182257643464510563124939651331312207803365410077727902528678872369896447939086812035540695626763269224453805401948345066069006549628617064622180841669834766020063764738113233587535808714530214235580180178239291690903803586109569400797560180160281883971747043231385656142051285017368001135471692330484365778159929462399554193676286570576631020150809177683480302151026389228594672012799037755895409759258518512496540692695279926164093386036230846777286719870834833744461342314559276027558065630469066116465299826696806600602990655863892457473052099044760430555091659647070757032568202656101058610543177432299225064556711094771299010849303771869182943747808473924958111374401470889332496773778525964620198966675990913826560258443463969902659628711641758643414788231605672967620835426829220195357441118075006095603357854554033885500179004475245914929505777938956101942751574477633509022210579555417428983973688995156840117397355272688390514499616749166009612343173544716481375441742348947147990678508328743050591666227953922180790514085221648810325753660877254969111935616201896148350465000001094897202226756263562640407317006589265739184527193186598734108880971190261394124264734352352292289482049226375925044619551256831040914668763698935304278677767212254895688584092354477615675006501174499221520131269360340391266619775997727127642624758176603281031201160017496587730372065933534159739412258536978563813803592590507628957060816581578411967633132225885337526556482477562396442008495563682447089701994323275859449200484617134379040623495772666499927845203209685794940712891827611786795144762333824502051944422136584230509963940020633429707184098813708570021935003543464501845041572017035705225473621470507967789528163498464198934682635892566282401568663568671624779773254378758838585251299084435425721058941553996788995802607335291294629271639432362759057742018897130542652035791149132501902595181011985241525872164003271776053139538927532688635965932992244911565855364454587698460477539024333890175978825694006365078826909898250533443695467751678019471408889778331018688316233150452155135386719340823574603393158624823370878574638945278569438418323697946244785405920298830618884095102540799026764389541239124837973594404064035103616469940872836046692890518870123675966513084157467780835085713798231860130189335863176175836833267866599372841873346799221337669049215700831876768218625256305776018514917695903791435876873778871138913247294388340790858005521209289913011371742348144718720844055050837324373368665493586707768517678992254545785123251676194055035383778493447166127514764568367163630721154241549002243598949178752676968864588748710753799934703877591073998029994571724597841295902084185959327485703719224640481882085298387819271213126718350810094808954448640884915732378952664297866023350852749599861740943833744727967701759244141490531149205492587772782469605332118753772628305279884169059176150035772445972452339206284762288891430581585944593833895289957252784350132540610276929614172593945393924614501272645152052345963366234391689869831641787810805585675677634152987131954877684033873087283975314591054655887319502041806207807448652327671114915154824123396848515107197387733179882571402036715573720344385664390030014434332614645705699481771467529356976209879414572257290361758009024931988263941068170844128427709047073133877056496339066290741173262190577314644365841977113567232437133088491513924766846119396122809009154303451971296065959622059402366657946141854165265596660109451906926976071319216907386137689759541825356264690959302325915034397988662145259404765221158841641730105790544278405289838386407287202859496990882726195209485221800685516226532396695721623379951731235036606126156740600896199297427550641811319072433628072051170456818390218530782753242203012445896487625076516699118133576469780661056928784575995748654204837074365754374129797743122605954564922295477814342817635550933571135099030675371714507483310315617659464965199806756934196768267166791598960274853645370547974275424149728798081972713218791275102681323212912149966995481820263881038978661439572154751040150129449434028327840037451431843059413254962126742297369926497999980326178655714835363202822281044527471790785392222035732828495470211767150784482647446367178108901007482731761305955683464734820768079949961651200854768075219412748047201068336085048824974806710362511805867647363316748332143661089894494961127384052281425442282730463159271126351518479811342116929872003534485719959328812775623423275996770531376226261315805260427141442667068447717890932499252364894157393378900658446539154980008531508509380927019683017600361381482476214888392428675346865232702677387050161030576211654441471579019611557070054664744021721357479303814555561696602453319715320383179719846079363424025543254258484204480590609016413138034554304537713472376485745407030426343106008981367592950973207750732930970329612587905252289528219244084487964271802801232974683930903275253240406084806744698077872626993292309995625237045861160378139303244610931434883712605905757883589540161857555985979635682820321022820354258078344528813899300123815991877232420943869435160243766591062983957342458710888179449631864058718747145498000350200469064100697070892769890128450049059227870774235962865578454315852029481963192540963575445439807049360810105068146364422528507437241259311178359574595222405850653290239957278067825194983500882450720621198153507693831140103960414196188874750412976078951742704805379099270860311953999784438914524404434782116634935446218240669753134934471225237404902535216310379730789122041500928421802142508451549449692511130989289018634459401436395033456743812469409780163065847592460532226937878296868806470191998921234993529316388370360878376911348064942444453617094762728092537044332365120633692433519663822922521546026067230222973627116465399378089669986769143946308101267889979914498616994945779408524160164968799499340760665443744942687861605511616286800751217256680126270296082692269014653539545508538010432642905068506295697140322841074531954042317498956649656984229671067224019064636902836942204705671181825040489617967441751569599651938596952454531182497574134999490925729194077776398298108400604764258466887335741535197267473215184425861629630322929902571419394524562878590102309655881053536486984184220537290361223513153632026406090980565394940466118342613883866341656803396684599686363620248009866056290195559803067950731032884324873248220714219040434674523339525987135569170201114242170498289576677767299121371434751195191675235775797429354238088983392597346491744090489748361340505163237443593722167831618487403120399303402738654813090550383976798361295788924188630500566144688602706045476565677338924193854586854621131788300541954530039614296068990951639384403629676866660276719961648753292945319144378512378578136812021893130070518766941201757686216663271516123518568950520700028261243752163674427167370575194934241165035179582970799392038671721177179424052122737983255134690163833033697581850525637579855796486909367766356835250819920558900586562613262745217407193816478477804250555768988376463444623443834516751705139047008484910841760347594387368296594744431482011883826897256072567714488496870821672104521066865880532800607830719566562314754309758072936004290739260460626258993268113995531616275058800430892626690946428398278954206003227764893378678383517186326699351086514855008091748416826969845568594409758352765126952257949081011312610148362311448593343156683668399047119919446816537946217656615121694968123942868126114906603272780568588874426211843997948123658031114263664492722432667763508074553897881775273254204397727163518113340255978358392046332954165543107628246983829125420106940839662123404470220228465901764262413179547180639742967395474918575355134880007109021186915185580594647220727032806877294890387855560247627376063905549200121196609753232638669300016904574893731131857004485974679075439557763845016175467800103977140952645234005320784238187801056323236651820302898146780064749929987146168800258048225411418034806266030830024582457962816620764956080942239267665810816193366762568610959578331607940825300989472238551306540860442454413182692292015566693292348167738917877205958415861818970116321214023816689918506909775548214239365929560926094718398162849955817012277705209272338223855229569200618526424046270471615937336182038821452992003761073899355995088398869310037321977482009381759091924781024240299851920713910081996698872621065515770143463077114726131792856467191893808948476645559428527649065290407516783833590091161407820941449850023685280304376157594726545617545268777546541458700620432368481642542972155218182937456502328041412470800452201263400751398251744289634728436183164439984637454679595763739150703773017375929840993118045896504967602868801543229818793551466835755691671185957409191373785497991957873150620870474349926099535549000012224198825620339135326268942301582433868569108664761699890960811070495754413295077770806313338237072006588129024231106374414028541924885512432186536671568376902948656934244983726034530109612546239352994861294816750626979229931185037785346985285605522636844286492214083251945495126719729839477488272308247193641392666014713696291134715459990740339196393155536558935355333455339063316100799186461712913344678117449323500399491071784920816255405203047332776170272931380412555388249651845029509133835831633828014195408718887644259562082541397023279192748533635738220263893550007937656946836988157379890917923753921261263807547904960748710977776411109035296745065591852533083024626397544818530036792673699615085114023866819110529660442692223153810231354348354914708456832222062623051140815253663582439052179761659092418631478060219730344690438515901680174792908332127115393901102513292647865887826678241313954659388030252223345518079500472949541978777629905199462612505726054124222824981494821620353623006703830254568384009281818903802010086183311104504445070112197822286049311798999446873959653971331036918060357424397023483615088099986592587142725094746625646588604250637022402764505170040620221458691987575411812654663743249544130312205933786906073877914185428544527525792834577315574274062678801780530529861202735875908164661885809174332697807714549825567476939463927906773711830039034866562781109194468731142665456407915382158821540394346119042859576339376790941302690726857738773657630006619939790208529587452778174115337592364173368228666870989527412676140984073667335301836694092665970891904909668846426807515336264186624985069664936599694640675744901886351250254922333145039062420912476119861029804892233954633175003720721636566317822379441411863869350380453190368768931913497239772844126514091515720203874885199189803398168855528631999398275144295582932110212959552406742976705703200738058006936504385184932717878210757617299474575128683681412045397505314718084120999235694467561645249818067108197537988217960800761461147974979688816228094934575847863721636448802265389056113714307514060587744939279849379754824084130922669384886257137547804034827080284593733271806897271308782641416911904888502773732254392465475962474403853163567215024505398550551211906686657422900184974074624798128492490513892624675339854416912156515562821476982918180862001674005046898263694033651204210422163189613718431825658253343152795355259925093193202262326884285340074673692877072021920193001088543702549688955395212121430960056820120169698871468159974109560314691129710814915181816770520995773772019688090400977016042671194566592467473530379370163370329907731237183960713863701979643031396155409143340237779009490938904121391740280767955574269265109348358531007038879934130475530821716857691002646536615386659199671108709998916546362422739284156430408427564628953396232148215258108720545211483391336034227802695405642095094552305230870991057132020638647759413984980813467575148646285542628496688511996645315659830982588880241889459551557225455765454921753505379324175291135998103812693070590295463396950473698082704187205557936613015433857841103618247998022837708784679301825713603882779893609408216324557287082169558565898532865933356717636064759716265636051459146851530830560208523285503216725876466652147631649478730229482016254159766697300334350677999590595290405599633376193755237056745437827233821765175933825060368998025720226996699180991476217874375657243134074924632286662508248886607366043759848086487155636814195695939886649839331100290793149239391145205646843567218178274563883688866485925299607161431320831492149754439614958285432803239574425389560925183511567742031186154281273316334117900867978156548744011725523342848817877630760128004797003111502420270143354366562448598790785422815783362514564421113658533692663427536875703079907120344687023013885484443574266852291114517397393322860575034334484735577935953238132680531153111149616370306173148959720343839713285908700984711331987721879883380538785397725061313965424848751909519728704548266928714276052265414864743578116786681226755117811603862839633007786962421510789748580801337125930507179531108874843523814500276427586827212034893350727882917178904026640321305495872688835765106781965956806851880277645583482789889209837677436583106124283688065315168734567286389241901077242997218614016056913072884302984454856088442329737874510082294694938043554426941006121792033664315145162077232393505847580626476228807880628502905648368795720264136555821812232116544253477984181446286434601518212873657433689217740002995151377415219476256718539325271037202149480889942741009574934126637826024745586716154307601283125368985778958930236545944371274348597979232941804577790544002124241821800458689565890915016695617777043066439428510698733971515275324676041062111982144569264146873176298147421591754549713404581833252051768466345231362170572235724687649414827406570559734117280278080019306781211773064201579264924009022688351584419724230496777545510650805372971443612433978658724177176437052399416374120659333685797436752053749569255863001921942839909136333533230554380396148924605082362575452518123910377103331288385968241258142997696347790800086578072234293706952021051382787319525142548055891418725797677468236752275124990550822195311895568469143028704705515908021410508759992753154653661775574189820963882867326704684765682686300134240976451135142963821194365093615025218394626459103917380939590231805757588557645810871883330941970536482790963235384564140109523806123229097585884718452007002886783268842182841453597144794544049309140444333802056941698953546238120504200004703454896056479721600017888001514093500134845553253381019568395719377231225089146223839037165496525171990619484904118452669992692887673951804125642892124167546051074340656745815625063119538480958831417093859593555998885390992210902892805370616121717756145842606909950325135377036042010776613088966924672403544692830671800548195756433402742368149564427261696389617422143224213124545731351706735900990032909407474595182501437086631895620367663525693738738513850707421019892576217263264091588065360686370524598079556044212242992682937770532650282404539566374325531553993344830422652039326664804592098444976737096296713762643207646927700168754109216394253388511233429202561935218043825283855734243359865304215049267359629577145142854228615044251832772235932376677877132121335751889993965971077864936758347333296472263345686938259201711548087810295691285753679029375560861682130808358305354853737520873591889073863692407469708892880851189845764789422386204299249849583445710726841227696811513610529965781827092920411295163904463613197484147075992468779450927761148052742309537805869244717181553875546967137925289582048003324707474412710574326812588831704181721707496473086534250026594937722811268045908784928049307946800928748443679395557668354614193149270587090842550049750167154572812230234398934717045836960438859615449295346841099726966945627080285179557883009673635446404380227123248455467986946353511302994730332419844849538623547419684263621623961797861178791607463287994180493571662121129781572535578017833365566827208528801674532699189635272832101511453371311516012634415410796980955091170311197613104583910564169807335566804565415850220998108001011984378192898919545136119783066623427727571539464226313326690386638770173499559812426464917634054004345086856475240221100183262350357515001943378797094406644471958295713734796913839888657647749471424308648580202919048844153568719832656696156212261920353787655333883264402726011855307722603134118407557787892088944227484631457651538857529331811268039409450498271730097610436608063826784032113546342090914622914022121276530526539905816764358036425894757837650632320871282681428795996626532222381964843537670315003903950677035643871699968028685154585534221415902560521815845387337041396650325789845299323675911995998998792909921621064600018555492400164161423168482929618620106852556509232839563005076803883161468915442779339597311266036245407150170132713962443228189100395489306756564469897207585811537845012811875770239379475120971999266510918485298503981420572226298382948933875359527315390117149481470928068239796078137431946119582887512463106859112936263342548486541742977785743080092570405684466898740621592977141354352809915577895005430926066697500919400479118342905072589629504200738893426809821428180815442153288477637910892313316224012609699916954273029337283522796979096682867887107935403219457080263365593676693570823760872894699373076100506053563830440845583210826365860087554914008504651795174620713703315178106233227675644220130380106897704903449841911049941335857470385014127896891317888827168381097298804830500794674916641237292168574114427993267524817407825985171128852482993104315183155757880314097524108613636352675067041153431542741588947927955725022041153755617437818584074529448184794563530856462795397357506506207822297545573230172970641938441225744100061632680159682441604293597581809998970278895519226585658150316511197742800541374084875359938489166445858169720176818506162608621774753240434393586020020516391716979371514681400694869664316950801281027689650555613815982053038043017463310595945914485037701779722434511714401442758915764556958831375049748487698209188500873353844284729189850259360993443165963690168486618255423064925144092576774727653471340589027004807476223209442746096529138927702128521604076928168851389811277883440310418221448944104706127594130250443833454103425928424301158107820966491723909700832940391586436783190687331127789616881673289689532652053476414374567562631275542850909691814023055281064394392621769980663114699194623990438368696838567665167411169213621477224653287971430141458871844940077462938034504490985591525365440293595431761139244697885241626355202649295304280769603184183706887635286242495175525570842335173878027230605143119399650374003788479301212187336231101818958774403215406666482321833737305571541014672675216971482280883607910862333008695831696886627829294493976436377089642363559935227474131400418679272829684219177379041434014748674255933767008452357786569737596086647466341066850557197807249942713072518474603330571004490427833575726403612886427099134926936140268531501241929028563822057917564350413550030348817890986966255901358336051326790467866960791621246446293861758982581447806578207568614264152771649702391016260658660384249262497301460686952405861286258801579345075870943522599903865585724944230697799224232054584236090662766262055603540494588244126513792323983984839172980823232638994629675743298307230371288202812328825669994506518787019919665329629130278798117255088245543313399970348538877362416243047763957316125097502153172911298109853828985539897059945522602984922775970874635813723630901723880031594015811578342791420674128571185079766005138509604375240540319383729551557037599188286847538736782986165052141692746940423189263151793764102851173551346923494839963781316423180939259589102212276449267481386875469870219936634423533274157824997321793641881836183045580474097503980043634142102241328011360649677417131664848616611321335596279032456997622127404049785839292186934282017694080428556296323297277958295189893518475207990849150630848100359416031984906512832095102564897577475409814474117957647863085796935132463980464206954827870645498117514654398669594370633728829992907945526112915000016687231664964169441533318024009728701878134794281619510190026317796316982350465230108744927504963082263917995047630911260225453777135286279413790549005861367901359335056821211186752788525638793196910653847838586225467503124392840352662103198557650636496456679134858438951773603922030400180557538992680621837128874317858305791842982436462809060373129948670095433196292041668507292655127861973958428988001038366422283487578699083707052827992608383504464905574535573425123361848737853557794950713770852308957575492369735899922033459891723742931331431788983243061359183054773051871264682031132070747120164604571390604871721642091925670912446200067996379199209521502584850206611914719354266797225287095864195592743641579214376265949028973791178741178894363879435167520621460262183761275189955968402617097322511298880660624162627368041335249358905288536345571067193728268602930825859554134427571012241162108393983992564830373378997268563014382806704669387447094414689432930437605787802996103575741117917444173454711767817867103204996662130389487943557512128869626214176149506836047983714432160610196962493950976183200255866469662083313029363527886522540410147663173878425425858339557815032489130628234275011714292297590689162811546482045092432363733155809508877688977670415256147426569846107558620926859763814003472968313256322845233628550022432447130669725474842142178807005432974097841936699081909703321176443806475564910433195552468006935275028331229422132852608917727922292574601882535993183227332963533744454619128688442006587436336146590225182499399316181181809431154075111706147551229487392888484624099613227190072356982406602715198793948640201369471184993877191338900178332355578117391280448288211315237359573972316729112796196901130175154196802374045298369405507906135636405925413667168689488165157215819810367710531145379512275861198239570060862745148751540595885771491897628015169229225990913119509725456024017342817741746247874256841149672287943805079356413343039122476339357694291489751697743969506471638293544582187708768676802253198224988147126292716955486760005546317609615895027450514663373367200131155994886923700774181144481824005579602763416258946713043995536244306056962245416214299853275450143669699731441868959044367081454202244076614575589911087772307456215422250707422763161638578591553994128487272515382762913188064908357027583836861995140544135571950863650947996769958799709549065839214273512338183661249282771238527106868318157502461188925581866874452693218468645983295355934967492787433978153348666469611351427694075252984801376459912059818381533022614948701103399514992932210386502857373273669855548224750658878247631237481797390454011570525900934104980354434266047441528720224019722477629365526883359806765899718595395965312767446877621935108126935002326982256001344689518547074485713371432043796741758072265907575654220392099106718150410405366435864121385323828380141702538085336917481947277364916560548353272600317432708328054673697753286425960292781389362703763000144295080483921710224337814386587578343057937066079639630921869408577485454372351018806726924316180828686489975268883182118423361164679682492208449506210870745618241129315001995601740459434726192341328968493782385210895079556817065019999102164892538987241702828786905083528141394387986163533691873363753001239522001684145417191124385873432505482528395837076911643187090374579288599972619909616797709078282414254992399560595261850209000154857417268503435432254814632415508072691392698278979358345475796279659188712117110619881537936522734738214623242331854170806106062659763225194127445161333262391845973530286624350097796098549654190209148094581518094349053982405416175185681160562320499845386837612936371254371530537645402916734999909173212805032419682221173155645253991088431276793849364407745563587284959264321441059957263077730152136202577256719816986102421591400538435128351207600932879977630522743247454001015009057053642755683068655146842995324072148300048586047017533740596786992667098702108588923721200283044349905156667379176008828582179426135708559382391061037965924737691030843042127385197010673013884543690496677795197628013826828382020317601751768566841124330313596029912553317756764285501546298124922576061231254749919361004200451298038466136900123436324116462187638656695270320685588251747932663605089930626158304458719121101062966116634754403831615502214214497675097049798016691474664602858263971109181833267741283515182692901452621515875384811229111871985775275526113244172269331067242815059822490842274914623787738450485007757641485860808153876953323293717655750656274228561386815289001903984253202696423653882159601841384045548825480423688767961999335744077352492970464788571101836470928093227976896639287845788613366378539822528913262038469533843932235123986572153351510906186025912431338322302446489873138858333331859048613726063178288322437692575760516555693647256432169219022028878041690958723006875608153910963648607108184408623251161655090936004260598826810589558515170367434309681467310680314493356479943340592401208055306968925755914161836350874244172872280022284169504151162215373477429933519491932396583279493531065716771456338729042619057363771384905113097074563738355167078357837578689447874970813271856128566972442078980383463946555903147093394034695156829040666925633652685635630574939128030708390561852094698326523339544438577344624467538561510677803317238118555827960853858640335829890726192597930339144278335815425272606550144219954515934679614339272923754454071529443864038244743480207087300029371245498673743493359944223375188382047978018702296096193605805597462817246276459485735065434885477504344759238596956877893291295463561671930100286657842626242134632024587395705572742941414635004854609377656360718609565549203686312012719562166466265461048900191945833327034005067157844100835422111396508126202189091006914084772779250555913111571520339303764610186363720711852627062846085060205448229401192686739420555128090734221000989851039480055779086625112127544603149548891178869024882670130949227666104070896105083167536921556568952222547475851809287417097967192044732389250273860112109064770590042514542310694361096198739571941625195515118751071830993055119850972295812407385000889237276045155441905015067700548011662230328249737935514313227818053718483506840198460407775340279327907479279335793070132046083453598018584225849990787934154173967222276051941706588836782098316732448853759124039901507587716219186418333792620730429890204557292972704428576198012387718039053750512583287196218426643149927438067829533650036194577233831527938997791594256449498843589917503458472248785694430658573239555336782864048753298833972882945612339088914553061349360475442257791657385835661244465451587024066332914856869834927627798250735719213297257499021714006636098190160563230507299762337549149076001178235414832924222082749595934716007638924989168819198467496846264687420211948408311790840185058752879703135647408974078082286079335889330199994399537513402109172717873972248654830611427840344686728307651544624077127675937654789690934735027595616967675108645152743558613152873528691948412584198861228778014598423699903569356021174149486092721981938575079342470733324837743648044852669019507376707571594105801100770030219059957348480122694205376529132977410327752931194942373140751349833864552826848480737250977434621305086750010657316740436229709948603342345507014681986498563144832511883138387224459790755648845603580878354523406345838953664090521834939024149645315031961362333768207020826124407910705523471804917294381520384537944960360048298520879797753476981733588563148188398964985392582068792074697954837181393321283936894918400180418795454233339266135906542450350348996905680176337444873786207401439203969694621293217405007837732427233984801631611990739996605962267763924787072103642881629428515352020052998457375447517784811577316273830478246921819026234772522331388303729144817627975038888437223483835532231330211848555460297527329160130067568515905658026442069306894774256281555497186842399256659765185288466964786364514331617067957137234693748982132825361064105878327405872091520836988229502402768242220173583744078967237539716110552100373262662524748784562916882449320730167800865385636411353037578425748962541189614571030799081419653478706679306099920021398276956991388306160945585376524184512625899849593337384715319270042945286505612490180195305364315788688655356114718276201046181536494170848513001450501695655954018466855693309092793777296419188082230582169906186972598441805846572369125605563674861173025394194148389194059904374880037102043142134219946999183425469311614115552065996850890412578410086558545077661795508074927449749483048362049456105303723529794891642483668742140257978790992292283239397935143503947274890095693601350736709980586945313347998515122061410643023166653299107638411176380046982297280380268852304671867019069607803451596970150196800051052070410446349936720757450521785296095614389493630352856267503457032090266043163580845742645717404644620185244311237715421018494008705136191970334885629478303301896234215820966686314070575206053775226362624428932314576950942115308752227823123580404013631600154432599046712806528799578364205455866987730505691730846581612260488486802622902290858477463454745934082988252571417221900048419631091975409073161394458391796494382534835432209993030555823927030269672403961250198244479662115951127425903656570044175385781483739157448299749264546277011988260143761287675626762478019165650172516735182200558412389004751792402367265548917228660717842990706313873235480135637947593916558279386741361770336493144807723718343182201977372370815105563439476502345695104738902965245379321103375259512211342911178488009366602519712538997772773561869560379632873765748926465396381463741233307486841515759995658959201054433439178911330097358500889811248374095113294835775846350984967173362398110965237898913181627306860786734172853146377070768894371322540944521113818243119872121185410852352544227043200820914522510814376898280450154539384616397111119550486229554079434977418042646185335999368483124928876698850372219269421049609253167729274875796554709555416759851263270279989549285293873165418061860450037265574985913118133300135458021959129523401644563698470384287953493599137589584373951270304427985891226529270053560648748593624643122343133702772683677201581850050072304216475530653674989251653717596863248649448223629595906403365009591684504346624548864052381411372457392094957430780707807043540549134595199957099396519233678599039961342734612441881115233164394300414751804640618725301926295310696491569409385716287138902921803747885324133877962918079004900487716675685718135820112992096708044332562202264559432662537861871404307489890493125809836192347692883227683244498235214652122341405314552522622519006149395060563632716706227443031852736244749608569135158244223771372050697198030255846873524187866475701241030902672629679296117911611984986319935100544739699995570976653394738781805599648132946879550221303100389367080828450378514152340728710849428099846617233555831295162604732845644444451309664340114664191176421316309896446719320316166489737025587618261497173402410071998967114615356995534232354380906169715233063841524086927933057060993850897206023453854666835847575481177661419576533738176770586339096733548260403291957021391902405340995052936176870620865230625659001340382465804419529424884600738904316903132338101448151411747378184132812104396374334462060260639155167776688477826203197470814950459564073096228419974056883068826642246388931942248203565942019982504673560642176780015544892949794285942987077932136499440448686218308241306697019728633586825007881612978785262861065788366911598279081769005359930596018750688331968205645413154986772005099579159094044571896911043957661376445102789381102694694451916002353168921039122299778902715472905706414186453131536491347353873701560420974808141727094429341283439916334863639768101873146030821132529151641420014313607586284551826898712078049066435663219668987764424115633391148796098946397000524535975310611836955036269935176039851301198365299312513269789521688544698180212844279529681877059380590362180228545740045161158766803783048861797617089709562280669308650913931255137817789511700006246602822269078255909982718584272969098059309337678521567761695351922531114509380317186530938420696960141663171137743107746516644375086971148305612748786090176611565850772410409194960227340516488333451150847253789532120788382192042117282712474658184358647884439122312726941278958901422776999641517446274125539893670614693904136998470243616957787147555129041231903763049356455466384058868688499967230541846458446520821465086440518141708080457443053054249684347504744339855152153174833187032284417872258254659450232067525671077881413710150183553810921209526585299142984132997157938139536659610260845938094697777000754693636759795749878126342524050243783068615169187562020011700874006562065062929625784548466878524833665532207294932253382240937196708893980816190350019031783133001963162774956741021185798282906559601568399195549019914576769606409031346214859883866730575536310791236549321562351036797408935286575642854139588427346102592014286007870948879459777902605438670274541077482120877517631767623711078264490907832833305066290437430035453063123125209912465560632478332098148026649117402635595126254748103498127304589711104754867003424205579899208607189982870727356479827336564323005712485015472394796522477346962591076307760895048085118233605627782732541898913722305773554040069212462626895954294972514375613071756935671906243756764362139962099191447229761826398296160611293139326373458251546004876446417410949531042620668132975533997910011682878911746407182654432547924537568312125445423433470617938850636707057228979247290879410198430777530281683865482284801763609490739167024326199696408474314400692084179996924313676217783138184654030074216381719670459050689335123722562999273749446320267581280454185042965732218812864621412786023074637173966975646672903150434817841792707094704044436072971362472488410597773013910517719676038573827055655711094830570049567747564855422617351548894644539007465288208445141147680616735509221189185370176061685388707924967046978356526729278074239104967724867729768224695818248112430550297227582045387345948119384068908730949288695100118321400853150217439183645588304411309567677727099397406563630764324867385555945538563085820267990843293851722466658949516386536698491066907922501471760327547407516443573679277721298417280757936398313279988979695975305113599943425215338335678272792627497302614783143648445101486693431752968356125876191018495818124291255770825934579651127830768704249412812352492516331927275969404903435150124519740629369420352072293953518611026382371747924383374541543834321061411955009160825594808429187419645286584463573137765079803460269091409036073022917217491455241192501693280889254245027362289542218863839035565134992530474936320465584757198147925267008104829241609481254604860047778634901825219622909442197403720960293486159821865663538204156576417529272533390334194414451931141210280236328006246027810421243967791779053277020614195176535657770865491072518072488589290326318491288993083465474100017844867281200563844833984293437859400153035688849884761730659311327507793322067732033467605673497838432217977896135999171511873777953581473250573796636617259414247197714208205296318396517413611727709964986072723467761585038783111657730809244432396019818418949839759984250964926781601931946811591451284121629128495552914253746024370474461874218805318395598198581573035266844840115524349484580831079592717855211257627275937558115437994909544392541540555980790693353684159606318794061511027659940618364515750425915345672313222425320435066822953101746390938193428619872624180900410268083836354339213700672755659926911361619082788373653304150798799915654618822717173114178848195258119907862227347435240016820422204011201271060360143786271323979107281924003925999197028520288873249102511588889912139847777377780863703449128694713854263213245637707411726500187994171771478511771743651705277153229170900770627495365685214333714597971920428651781987235284436782994588329579023328836968668500428391600576834317634642064824126105835248898918135276617831191634738289981803741792049680005781482300273962247936607778782605157065602924681710504124337952118582767364046191064945665640997631221623909964446882086539657323332453951124709849697306239775820556935967464003999732112412871019642472878595515536714958267690121027331207280544885807029919243852925107000048245169173984839811469544605975262076746104185650575772349885160539711914401316310105276320363840990267236152730300730570069334040894707696630756543359307131674622083672602440905716027594134775221993674380980557202046295093664147704703121608119437640817789329495816371991593400304648935740731431676107486344280261910724615527561532133116461623819289997548193477256192482727972692671634283636004182106878720356435758991797605766152363522674791751400267748401897619981732645156330077154438673474250246278357213561617921931543956818987817006277825627349980756768628219545557033771676097874582846806261158543775317698294431084572146797623072997849106714121222222002132085837488243098842487163741516038600570415526569452604654024748116481114773734198783093187672487697438407100605021828573884172827588433086469120067006984860855223461863380647196266527161295640154700250173144537879333398984791582097690442354163401831891901532798318668079436796368181636730903802538897520981119045377872214995898243855537325171497878230424841089905568612726939142898035449852358876168296790484854838690986606608467661713820832293836143026687463373850330635890790293067424340595040326317311037321307790659643361687331856299352417487813137745804613189824061007070006184724359667371074212654332369809046721980751895612517882088561356843709605407047949475524230636406816139815306736781555034479219437388492058844109882279574156684128403174165674084380885556738586981983256642927126059891660671516788212976402974186678397396692534571297648000955100041467175391050218636244085147923147677330828533055859482160199305657555625752963556029980061228388621455230183412732037293042358350291687544928842913356062087322891367273140685439952485430761561816373939279243318953307936146236772489048461858711125652089407749987385490492755266219545655654372189240198030589138325864868050545126390236964463355641316600683034787329307391613805611666359084029561016729206838362542565611202118570553025567950152939653488463402591514364902156302544647953209997661454223558889285173169476914760706803290604338909125901985542324670542703100682227027316774609469099878933228066142845946095097646238600442105937253612808211843159631512619006253361914624120948621842799977562994923361493622258978972965485976448676064923886290560685252128136736144786041788935839856798181383861990164575696753562226970782520877813313516658828037637473789906964768680069667477302858266812426373712252144018124826135801824938110919491430260692476889019867388423971082183359782701139577009951967839635684005189536761880456491229368595197134986564529527566244713055976473287896466865690802598583144698783927811779659780624577677776850871084553648755910425584626601612376652136598313639636153818061182557654553190755269377070013188972073120887528850183711164531672681179841022985733708457323469873077240851789242509029474288463218582492603657888958177998802892992487127701205860727632938227123650383745249126172731738726995353979738537288216467043310909422877513110927322834758531482926757959304179766763415718171327265441271321011749455907198779739776873570347392579634254314885289479073196378132141241342023061508677766761144310095252286727250799659758392725583271772512228275041625772591326053673994027664852127283992975863159685616669169871393586267801038616214625540123618880402208025571597874326140836954575027253434982868421093779752592293022764033099425429905454141901948565860243175784143908035780281615501193972209417655734948007783905806644259276821886420557978639195391019051220954229083562447738071076040806043744170555962414598143311027509205238839259425779789170104966831292881822430889767551603488378727223573049862138762882189908151502201483390915572622121365893867695758052751249591889626215212987423956019144438969878593230761179220128332205055096453157958809636927605437469827599544287910940857280226495073751449821413111353299506077608355075840330273104403251056305195704799337628046583482804704161608484089132613005159615981304366858182311341664733752680812319268111489811514961178576402928658233575029249457326124263267726570995163964141784799780426129131465652580358012248559773830445021074994742624621362209303267872231371516867875202358145668724974229541521698039102036625878630180642252564870891601813772481077417524409682457695108469392752184706663352619059685251372810615838045860071773850087618113016301063628226177184599619213771725398563014215049523600963561291739416506336529318747615682309825011392191577472407082911192107646450612089592518607662973284183410707637126666856947841348898323814066882359496195819534056266358161144643373264644329925955862936279923282865985416496628927928636511535911025999225911387677677001557083947990311112783632483617894367945179773344331376427990237274230201488916096397623702607865567285046343452267175037411284957049012153857176138529913413133662509031118628237641165445080518673609013955188167938175081591722216945339848057623399049660834667943924820120075466618313953380818697339690615732382744367825431057515614838571155382097515339937617732406352496546564349486725671027662486526594961074275473711878942834384438499227805363014451617370246178428894730386246652308375708546553821790230754817700459950905329799961139133878873872086664544702313429330163580616506166426342957519470956699321367806046782561626928066199286265371783892428754312288697943203276204470858116062070078952440957604342456967651102400202859664911314287833723962962364320436356823347314275211187592315284599249327616001390643204072604291604774275850723189475794922070765071726758247714417022403240421226094952126928417076484811704452378850994158061780344042188343823460344608614989349076574469309620015631079018089345978421050557885195218706370375978752199711711747702671512107788248806040352778336509669387224428287934778204712386975855670567657410465085020370012132010320329759939205038605865615239378230568547214935521730928435908107318688222665470528245663953989902697464954830057933062381877828869183848894566263258834851454571182926982075292451038034121792160108543242603161084136984062655104131590089900829302570199140621615576024214829194397305231167598967986609620425565093457013552291289959282244105313593127697402384565709591051214975856611344243623914011282835981398801846247846722970373586160303661479645520371223853879658677834994519930660057218692348584126728446797800974012236056393116420191938012321029708757089862209182838257859505887983287364892178166468352147042556309522693188376949902981910566403242683553823797842717888947922231233979551398004931224813773309128511693773465874407943610769833350852723404033458781240317052231265148409530698928615747836073973414118492827057857229472916698556282659401842547096874487206425462188021769640273629761678562272654616634170871992645022451645147986243484973115915531576668567877331532487594728360552595991400319344627000266386348613168112759494652183728747060561183823927370259114485471001610290669473793045288230077736163270267100368165328662403224173929999496410797606972399240527166172603812305642416106296281911716280850412587826752693017710295476339906831333157048808918931037161742242295806696444338678812015199933060980609507933425218747741300797372863360736274041876725869530477320046873862675317628074266552272103239536344286081345161074242751316633706079918009056541256721865269721054200794478534187154172250689169399461120832839091818534722128551521085723772158396936217846278034076981528456968499085719051474836587461541109120155827584157072676696034947586468468986936017733102786717103577973445856308231605367939108133130377597668928668091888872448795367145574365023867964834069833356317281703779223369957684544865886596733396419692436248430667823060098449182190444582529296717788135031066471114866925540247247112518714278114811731587410027325321983758900826313341119943323222008837703346456540003102261146934925075894935406756707431925944135150509341390670902148944145590053198861154511717316796055067215197238329139671144078139194077902644973995643357679248580099353258248368367647903001221804827357714542837207049555164457982273093231036267817083643712696358820810104609320930816817789961688279075624339138709803363901988446121497784073009781146377050227379047077657685486434865736584285251157076787961447078889455603904370709317459703946188186654561266134592913260160585403957514180397371137283665914970735091800450243054591396334758540700342288488107873822892084976056606051583599937252086409127755243534311778802722728360936042645525440085380068623004821030740099323614127204786029324237611249523542860589678241886693644939495222490204700320359281621294633615520741460529949451576155850070220222858282740292075999139557031803450445924307580314882256430365272852244753827755529383392998471147350917447491920713973718157866043862894632108086174511835888728080136993928707153828768292930632465094071541440193689584083742662646997721353736978258369843872033962108256842414591853819008928967943799555428234698665399422587356729463301479226855935588664599172647513387316103219358722368074266514623526258558469734456741229171945519191292061096928715043425365391829694134549913731928214786207679586540921697692584681206940181235923657011667947533023331993460825805304460913603406263583968913061665373690591846913549394918720805172072871597497446871006659070118975078314619190971270495650334310947610717117342210198924861256806425063419458601817285305691043561708149186938436241182418142691469574748039414504969975044612584451525360409294622432823841203982935194647739364185835312485676121333479226764849956006244086907617256828047446541914313329683365141039570926832915926814652093295891770089495786470521020458673333711627084597000359827968571486746840892996572994270582044349951458005192103562744500396867672303275885399696636746745738623462262971924805213041090950139517140157585762606188739793758902141907278764848485051049978315657489876986863148625159579020467536110259803041412953062850298654688572577013243340297359866794983441391546337746643962379552926008989707608550449403290930925979972408249776219455526031500429961349503674646336107173451327152925123488367109537401885872347556831033355119017013095576150561783964637544696249269051640865944456990370570138655147574856109770699492488950941522464794075440716686316622327982546383209946408042134631573105728946167127437585798251377508954102482339480303173630452250290400116518090331315869636037715389399381496156779064079412466580563242922687536263787323401012090062314426322986503203764913197647155282854317560235186033569268241611237180322018836992991329308480458829203872786685215232626339746565400718520247661062931700162208519848917350020464997928957596061686972778109719015622209256515520939115582756297958843036171155594045713688294144039480312928971724122462755182565118557605972666032290402355923078117020259334982438703293198319621659939680419111633250272215436436399650448057296335989416592459350560059014138607989913839568088192981702193697848746967724018020845480764845175608840795507366313330217847356833081855368688871498284451026573410238722820779674320069875797060720893798650784075130206179054841494329015374312697776538984011084488663685768438646788435266789231190110281529306854825103743600425017634509878174608817518995097266292267077878759039262306447512956758783290776677428914377593739621958257018451605172322770823928681708216985890228607793814943277095305974689799356470521879419726200158033915990721510854301556043673546584445724941781268509604304427465989080292254942810321546281294638240323040469251103338284485008119257816704278793374997094779591461070445323905746417099550619643385935864990928445496710884820207786288043804156254575598407180905630076677981062354799431052045797571575568408207555356015253704095419558764906057397925662319382134486659660473863644191981309707321830302747486542146082181891568382839390222549763325956238473090892045333777785173778024117372423857830651601340999915448068384507448510040124826121473822159159706165427966117439574232075916263104450571724644098125228154413096958802710460252036556647334236475772304631123700638531834266037237372768977809921579896107746922495195309743042503868839488904770478007700767843583909534302504515784002880729627712453161258030813442339001507003341049455470648815059629185371770846420432797988230886348000754912359904873844144880082337979930243860060826526033120697511795148978555816995875716203756195345872938174055625913754939469573706016979114458473069796720566083130365998396602599482314326574853444645846143896072794669583389849247003279831461431626529717455826553876467662669826447234289803361959714099549503614689155457720808623261841484207480645729669868270753620933467144110117160998265494826963580972529651352309047576374565949426230905733632127119930452630362664112313389157303340046362560689149640352757194806268127113355567989094520961995266642210881840546563488309865159694216870512949379708743111492061789196693882546054092275345699957736287804456080023991016272806720287278663633007219391201830235102182109408737077423374562972477868445588018475405871212951056831427902847814141109200481641389113617346807153169340938372855618366848622228146614783971469080897089861262634539629120928925221895295260461663578303247486640560574104110709367768422282137461269589783443333434037521458730935331186906410526257809233841314113705735922874769513025861144553845707244091735275846963662994441936576996647293235373808272708087747548463537858654334708820646802612531494084649596137219297478495255325676464192078885305558997712539623775965201151731738551353710556007689595404390694501520408936277945921317851008581591542975508069605589896051663669901035798801192456957979201349530449832402556485253651436723420717731604158478171956470176432417623526129797111339349894285203168342943196975390311070397649882458435508935053594322278715258509594329721492584333100830043053024073714418892679094169712487997936208299884134455165550288462358794582843353489130615311994824799107186023777324640340671813038383694810003715309514150046210232316507010912045282803597581979572218400215722671809921948354717647555855539459023582189258948659805364803352618200355616456060692199367413167847201849120242241850976869586785148494343361906166535810097529537877727537467130222216499354365186033061195289620789708527639741152507832819573989462121043977627774641501376467424141087755071575759327539472732599954459915926717542363250724318615801318900010828106029434137485054217965427192699870294286803230018813812438808419246088143789123092497570263467228186260423538557896119423259197065976108265745196436313607636875638924307283231322837177764643482262182554184071176139711849875571979360146285974277144234354645839647072650143715496468765064546270214257664963365941215368202610113207054563985900074669223172982271555744705598033964112016219381536684246077224367781583973852897049773625540566295348889484777515683528091822472661369420321909037659405167217438123446620379429978889446140800323551030408620221755377425741285699057990186159388554896777143241010829832268744341975295885680981150910829239348735814833934704450261920529553259265515345009779287229117687742966233916432009716490284036249825626363862180257524263292011042156539945296383695192618237658611069106335343567818839233538168952162014052026430919879320455598022855946664028516657625059047186269413518054078871844937233325788074855929547927363275654118373152477044972593904822247984258170296367176411373137779092966396432382853001286563968083372568087492676705052845100932314724452744349264047347625560391706709272514644866502601394373422260659770094252734205088106047278572889279867850510780871944402077963197923865358715630760388758737454247682030023552667018891736914037604508487415575273979032363187665835147336589361394961113619218364359416631101210511566290858258862675893551270350732853635199642470041613051954426347023568049871652395767391844397404222007846496084261672850828680312750094969974826664623477297789006625256713110786155071066108633505342748934737347345510505976402339672024106813269306307280483234550147158068161033496871903591364831156526055533376502639061238076737770392326553577165331302944804954329195849638712235524781430944760870374951474114829614177169974765278168298828865500871925486538773287501090933430043203420655889809731357957729930791473302761194517810766796967304292982680346850332955999137176970514208296090193469506600655736894318044974712469419558085069662923792519912035916848712071949252783881681648111941091018259857199589599138193906547730495509464337184383390630189988617192457838924690908733340008899778950100995479095821038178745570900977493870590697173464058436610111973221235112976949542256028467404907860029890151243367310849880524393716614288948910843400993311053084938649229008618028864727224713968277137996525038378749307268732605830067448673621888319784119031129356753436141724608204538874299795849329906664151538563687847263815513458188938328203735687008969420812228517909410213458969767865131041372759409445989914487365868362619767607134089249049429783368468862440355972625403010280150515633719774049945585814982038117715474082060628096842421836280282008795893834899873223634476454313851751872261679350260398223173007802920734482670748912921920838564034966554081622032908092799577695032232091860265563911732580916183339557821712330839461913898537894929037689038089885076170000461826648766463935485321155904483646274731183181658066486974443242885456458236687570102356959899805837664896214669554085123133306507107356755205079583890579712716239268019832559877625011667611577533834715837839692645129363957957305164368726687379881594563746368817515457881472352580213023985031259308944552684855621513588534001450140522069227230440466945948956460297207021290016880784696396577732762675343976107873068634297786660381270407531124908528689302300959012583909307897342400153083451298049723579290940261554276732015326283104243168609088628951937355802911834189663194336893242322544312689589591482136432295739371270008000379752244456240478828978067269705467520132249322409322966976465994196217771677518068309787859991173050524223838696304590748058742368219911251178502879197309885516577620837958756800383306882281222278126823582136241832888778574872926680798741582161181891273702400860682435931876256277642328771322922726823136553274995476205439821947981386780648786896163780549448506970484844601985652512255628169503665315382849789452377219960041092851917291083034458500368049922764184939116863699910349476243288383556670075064846529867220918905642957545572774005518051067106451052661600550486276249332204217001709507380253542093358748723430186898932279904263764591036148111468372073363070738104204802299632203720657921599578573559107586511163518098448903093353272643680171351171187935192707062557132828115837526505799771402700786302307151441133048447483014997380955529629442362672727275462362964225399484495994750481845006007176683093386515256228003553745812659179658798714955178703593871512122457276656283975425860508610425461252979107625532056481916695140623383229114915472102445009453667362231972256223922004484893931356467937085878623636175359330622646020617064158750028496570664490940732160114970395965419299519733522973579331906072768973299042139936161212998508019512143236569167317235451513707734620968080430613249438506257039210660820233380051237720778253140143742146281108533965557606501383782225936632703725603303501453586464290969775722073967721487458327454774580892233679335601114815086377845725179146829728021522301131225167667092511054309127276956900313383127232958793136403622355153651683417695452536092092542985153988441193369576271341396644221570817163412744950827189951627535614429158767619671126587633303132911601428488690924520888754999664274743230403806097306628338741670043754136605780536386856185113766196221043485246749093255726006938040440901965999228311971481342438498959425718071916823138307626928091139956633570479307285873950963971238621248063133381038833464680658987421357762906913257276010466167689111761257358588447862611369289306351414257506260367659981641253826278130037626165566658037501361240911327658551823408068046832865606508821153026560016136276282527184237138422097380839543936960893501984789235159805579693373135036541147054937456270063244247774512750999396591240362351945394268930995729454291532373886727599700539124398283568889313606997728065699742753201288180724493468707772674087294603927676401469806692065039713982293368630085609175080355261061778628954749497505094120655566334144667538396966047670452714286249567780997121503953903379085768381049109968369495350759021194876640537900556660065776168369711519278938252088820785118019591240956665268737734744679335375292709190329056463516818411703572489898370945353955623579349098357245771731833887211871599623629309145047513315373923281009069586598522603963593660843415563818704605106911871186128820992759056264445757620840665387164602119808924361936506253603767433085661294897465072802160016774718288621702463054114864437999690639335286431447844698543142103530134681351153502899148725135443200178454885000353025916945604558713038086836859651938071648501378840547476472533093145751485471978291632288509688757557032255253130697327367779610882338053694543474560661957146222429244192463060164657019037198792277046634285156315740736256361005116001441785192882257476395167341725934568790455546133589230874508340583193092742635803607735144977757848338190956991959747691748141558309231804607436606870820815150873049231272269404147158848741386063895216592648941778468968009123131569615540187248768455477028775497982147531523686849423362512552254418532307744941746175558146119822036161719018778502740534649695523610860388850467426932006764712144499337244156577779499661260016037208127019139246847002380123246637610083084062280779864079532320713828703184446298349074138504739177003404730400943307512573983084797727464645129801677293975153181410934352297800907098394973022300313399213326836942190805311938542673888433567976908439983879961495128854168688890078970236760211732718857080816962075011417207136924074790321393706904828553746303933375793477323876378650627927494064322765040799492114700135600929905729810762861661859557641076101175284195318389717472590665576369713732512508650524332180308925032307107723593216911249799567339711469749000591173200684426845920934434498760370293938575784189943801101210099493379427349533671344640460903568022198293831458651347567535904334837006190900973319330378467228045799562923570479796995576185342430009967008005060082480342490127794067586552375656852700817712562333423144063458974292821576417495153207601559631639520833326229514620378519804365952306207576240602486093436319084623650378495714538918444176010294928724305365182805913873311892641961653628005121634926221263839693777196710479797891351279259723466760772148454570947697285816502837480648944293210456490742077685324966891960964058983663645462155920604984280081505371817468430747714318671682561022649118753522522310048908306121410531035559898270841569082258205715491013863561525608735725349232119565385363279962421665256206834285769831419003711287758701479025728002671004860194987134480943691811425390579606005587833678064981043927659531582446168733793694201210606639407751480149233013574502077735650520755095387813356334351550492372155666936599938105641186791310100017010541443674743069443397122795874403695801752702681510304590559344484876219472248505275645766060438371621750079085871117045895717626640027023666212368037666782524783182188209695045837077321007435259898120006313941657423787329845334709087463424665569671969683137604486119320678764480134441025444087027265147024520786377911365153302312745870945913204237006126112183968639050349612775928172662147085494704203263806443653367967814567177364623705430579474704962886623090131341422900013021693886334736222704802740843675780832109057726182954374019287695329323479094549431191843663304405921967510622888294404823826476030863798822362734034673394044990084121068218944464057333709376843709598793103578162202192239431711861586183419940063297936609974827982021490839060669566687006122465772189084651125386813017715847797688575306613750996470026267799054920993281444369606639342777495363771609689172651352432881212163142921186296234483832925825891940973388954162489739203318280982751444442641121206490825182768165285332061210604499253630161506795421075597340990658745480733698889728166428958074355719770743722992995024675716003878867847746894079065525668769909813993684135042645140084341752395342306253852151524412389431389887333553571031059896495617546211506218709512443362670153250247628342922206020274038040413185967163023916945969448294489552928994823676730105130039430521776821712970766177071439583231380433721534374583188046298882083297141573943091999986415947898402252854423638503603998731555424097663553990101425219445030533623683667306450580339203509525469848008410232786425967710237693907511882135150833775791097089505631180967080070995478126567563467044871282253299176429346073069151494605911622335630123792453978497970735606298377361763002047566515783994966432673171806358633193749059448946903487923503452214183524047295169394061202168602005322549451746013276725069127614372031880330124749677107443275306321542748717764463163460501329619057282981532034640072163627084868516371206412361727747283261180777816461589791705523504085830823354086724400029510409918552100333479282505027070046910573341820535167076474249225628700338760184504083076909276634951862928798744060521000761135497377918099511744799775285185345648483887580556662266204693407624222253498808556468954681628635747735083650034113110863216777049309331262581977790166969001450483100985078719851340557353920915245356606827028519232253908595682408881526118353319071880405360683729678379563065082738944583958287137333445810981488996887130888446366112895548258915174949342432169120022684851837183393289870324604485312377405312136671710017553965980435200848983607525070865340144570226148662550799492464970686751128841805074852386927532539601672854139728484659225044595005231597076885882711692002007942968337983162393828125724180047631441322954043190210263195258337892057014832727061038021230959718981247164030802599743800032849998604939684796183938548082392438034923423665696366080345412428530989322277985554941356989799217040374464455040694469744166126999566927074900364229081519616114421176871020294218470136898645641279972222906165251051515599914007350095625061975752373202571678850371671974379101221791234058881105823428117238123907157789354739414964898388270022567307544199659522705217796066970080869167150420158795801685178051625845339270376426392667969758210199250269975190060756105075593332787031855493246404079695862814513001390577354708738144958750008724423689536773056222446736772881817015814688689971048451046528393362283136035370014577284877197778763052604214600250973063609465263805720284456997311462048980584822489513750936007377667177146236121942178588235504922592539191660585781227567184460454242156327139989940908887560990135025747141003538024238126383786431565871452908660980625388393619772856692477829746265304589829805497898731068136013012966904502758423369005820410000421642340197616026488233568553134986790786915290361462940759327074184174153818808963263654725587329129376037635263636312903750911773563615761639925588873404086240198403898460571355238988338069556091592703277407270694659420392118258762651007582077059228864923068207972589060302581880123895104807052679174558194454649679084789203623115388756994737987388887751336392951460536492815237724071069942099924066365177607613645467221841121565385509063647007541111348909193048065157609944829666327230493575292356746543592727936960200813481255804756825468186876885680599552878606685006620636137028619273548349700469256916812968045881842125907786016838155878347052685870222750903434798678767923557050157722884039842156729829583473634816549498556055476545114714630368200011538523898630596523632063695156213564628804119963991522594037748605253310233733762407502028294673141695180497221008974326022218204362299671794797377955852524138131204998307831593394121600198918618053838762045812921490478793126980665483461584939970682789467269457776560880937304535174705391734513096115040406720649885873952252184839702741072517459548103759588561543536753733855598205869457150095743500443873251021880954880926041013212538279668212735334823336872647600738302279500581699600122269001802799415566232145056183757206281466930950035123002420753712504123806424933817843123641754721518070036410480479425307394312907571337206826419439905658334649417816641605028742831101099406565552992263451624334225175658448608482033807735854854868261596224019840154102575194697505563993238816498880669654819666998696677135115536022226882320125813899516188626205335153129625252362349744327872245836098425436097059024760324662896374941910224041979896849602348915439334769668534770741317854143534541749709895838895112729562476990072486287911373374668530959719645346679253238339062987117334195195793960606723637543145087495670528908026727019239183667510412720030152492183683282120594449191519507284942531662242427840539969678733495046574356477646865573047934281783237866615192612702570044435691420625297893797615356131875607471196206477621161337075825454204681791853354439118883306620590265227404286966042515889878455040921323539848973066841851951110360949501344364602545743135647855807286900270476166747927447311119684784013640417666059478273115404145644439653971511987497443902614717949826910740670480157568653503925231603843166556048430604257427064004663978950327534409209377195356272552245914700177470293271610281174416751549527073626115306350718123375463380076656263860771897923546698312025590383635737647411579560329753868371078701989791762404742701762744992839892972488647866092707291315392452522894624824701505833971832008043985719408006050131623199876604349263587451881006237089661337573553471750666443734063243637260955014931963538841330120670347742308005015450689144185036716713288271964477374173675213826249874107846215083240950013738868441575848947786567814490069011361906441955040088600753041467937325786540649647110646769760023292783137702210319446209077656740007195137402496551266526314516316018239965743340169584729638786740887033377981345986679666566565375186161101987312122358647672834292433192382208924959772651264909417042131228729245702011478458103147458427124259693728073277676165887491914872172216927389075345573460099901599335456010195654346549436155975774581534818296410118787925333900202596999654665021534983236754751693122585974802659165240364526144102058928823908151669165019989333622095860997192049844288130209179832898633718638394215513651399369463766364133179543837045852474278520135333752814139314119396398807266045145650909244841926559938932754505551667564012772832707941982732991973453203906414824191891378554308635775094282473120233331362851817698223240981788581653973390537670085376685225459263782408070391270596561812696909340897450799861756890677726547096032365931250974131555760980926433318850680538848876143011974731119013960999806484115186045974059427937871848169522211755375773382493468120345340912062159047703967387219845326580040148498660571056207800222283860446454972823456682311632863906727995206279546641344097869912040362114375825645582575628866655394717672119035023887922390074602117636259415330366383866263946240821594268956419928772190198186108171967618237013368357541800695305713779160495621844526004934438613700090693861292465164566391342389681445502122134904622474098490030274481483121917399812560569325503010214095759787114541150808385020278793824256958177860076591283031875001379240695742017337953521903916677444455393321494778727152943209572873415566047507404204491942487143499795226378634953398515659843189102592248828597966409781934983427138307457971306433033961282331055677242755465366189773132857625223012361782798205598640234773791385860132186527763314112963233527148237452161468110661137052595132089479782651319094966733483978617363549935131240016822647470113337305331810156431010759814516622129899340995027713490777240597744278199539138538987892871558266473670141463942677783606893961631553842074843679625249976577670680567644944864179326980643050770147259042620899816833119320405410177373307382009397207875821812173170223297960483304101750564682402504048998595127342004952223214982484975230725052917210455834771917405866842062003354869291009520519490951861957609195637497674843636573180556120074332832930285622107367458161011361897500340872920470948098198015639006401697528647459308522559049245642917971911163562915399584449428675397730296450246992700565004062478662078935861519215187458562192633468732250868348488890283309447132985545008537330699875962572770293273085432126048002104418742837773764766841568498117195599148529468777539550971031128501577908410763216806166148514384083952074093404024962151388918702735009142349046060024393778987238545381402360392605502304533938203240082365227666072383573582334320465050380717059568295487872129975964231717549218811552106459738548043830156146682252192705551034740310989747947440435910097713465905621230162034925517103343712490381750632423692387241512767202446338191278160634453140836798907329072027903390076139102624004999204892220548742211481811734233847312252568471406832585515480166753924392080131469607640398600205410904193360598768340237620710205381602206378047908054184773555189270159622322671167388663368337475295505095317595580316295058472271470507632545511644222069769795152150631029920376964336303371529501903858246218510436116494893260307276274422362837128817680487232897889863053671087027051769895469356535293296738837375809457656059653087580674178702222858295452135693819025531621383083874474913794874630124754151503191557475431023953415439150898703272868587749570994881600524221663659205446674505160450262598838640213982918291025464926033505463642387334901795833394614454808064245304431874104284959824205421107801719708856868895430922733785708076565016130126368079439180992305871757270210939628796782153415700580349584363774555711819717016539103125909636139286107178646547450539509058786128612053429023996311789112066121126049622725945529810453626837905543180517000168602826173761140022393433206528116716471238800259509045625497201856761674062852360718506121325458391080963906650504500011834453464934760413633979472377485753047536580073347157013272009242220916696503671430818550774818161500557335214028593981767063570580175350844838412268925098906677917406517117163023938703619935350413906093102309624583148510977426796801696782962258132179576518370037453922933152959847334680345445856628645813370478410182681884707169308890214089680693344786193371516413451029978587980612307890091479355388166568837878083319760083262629936313719302023409181227262274518103537587518098156649690033755080650648152564222328604049915424587612469073656516935836774166841289852634622989335322069033720707280398857551300052966806682807060688666734481319676024035064120675120474808482801252645023897361902484598333381589415544091162807705208535057307333036516852455585019939139893361518480598433806272806258628405721073307505303423355472907818803375975822319807720573748194057431093594768720150783454943428682314902383179988241729389318706833537281172548054496637482605624721164985727919051479060541508245683556214506856178420114520452895701883473462695449388775869301770449725237119475486608068138721240795265640675011375795019236415750605032002680690435962895173702148496477881598943488368846688966209787920017101705674708022246790849574544479317073125078896957444425242692715229090777603047529854454243912608523381108855525408795629514603058641551031101210644949818197500271089329501822820188982702181170408082472317304107295002845662975389387002689270174605290757708759526073889671003511003259682974252468042180946751831852486102707032280291575991348995344032794017875155042266974454117736749759623070388804969676291403089901711178624096910750840813376248936073884179114246790209549261181541998122926727741134029135001272826436470985152640220349113726953140173187394919778193211067849121230597465873771684731110267394303842627581683846729524668463995278048117334121561585838814434351505441030057887730031883449118832720563704851378942581070276549373571623295113845457921340620660785989258530502196199657408647620427839075195197741635410868285667767034410356423192998885089418912481915564506585522311397067057188767442289236546950275920552424373859144013234152235639183421626131503537967808065725954097892864475925993220792224086967437280168510233030356684950068659022059315817824146390407457736097962248340581077900889564486118226748620032611457765553997577614338030971767918000392895807234943279171925116195870202462827458155458025053001639776813733415358150449675378070565125864139027757806333177446872920382343868843293168231035698832692610393925341324837426591489878608976755998425377769647086716422642700118047796112862083877775958573714148965574164798274525998735305025949895500874526106121904583329965566481179107445238097344070266386833325563527936031600462541908867428896023970905393869598205066122070902452156951397443735387951730566166507743158009721610324169581475760923262511182782476170421802722418006202673303953459105043212559275769256676116752377849154374421138320982744237360551359132737880901571513386523765110041346834683543233322371132060186891196597284440856202033861979881634791945910239037515284158279229636897207322035859061008199484342115090882819101401810543341843620979283997447080520829768896807382610829415312850234922822174418528662104277426754934000002188804312227401518728490909010648570396765422438023195058947915026555658074438491426298633411610189481655120544301713880756958768976172855819411948866100797213957282766023391133418541143103916575094180105624099991638574812171491272758402916171704207973720844926861526470648765158418408116892880328844878677646365682272267920917206502990212735625277591334834499406016992073801447882467762036294866946312145284492058315846631039021098812233385428770521048877315269861139330291063237735272392566370370279006453547338424498763308564409177341246208571563861202831144213070229226491110018605494128591219338746375948170180989603991365291365856086663255001867604312094685357786012365819691111112090151477701593543793344646002919722900111548160707214494662234808644369894263845793867831727655288997031434582765853230788824695170903586587591935419546017204051431574050831653651945624684683092760317461148060635503052024532311128311383533502065108342697650154006218891278318535460750975699171215017586334488315011233587952889177103359612425987617609265272373645015905297376550631267595827758096664207265733950860461382748940094177213932783439088279573089534142452156034194738754655889855922682475264180090261388309275261280970253374468668439450087026156104050385785111665025469039751298054333909187825545931717493391026022038799307509404532307437511719697831488252208718808910893064615934988133041959976301288651779628135569439396462889916577975686596605913128713932053237938854812696232196188720229397319824283189915180541479083022193338062336066950103700721479216840404777133058375383675486582741679051818480708072479443316118911735920780458496558157663727410224893370620240862775294461297487193179294692293579599458246554823789805354410032740149848944818163211065586223683066624508502231956478475933607456676655845171576256068870198724185772203824389800711114171465127598149373644763422306416424561105645579881042548791466199146491205040349706326536351061709521369831800284150322838915810358316395026799575253216357296646347724254121652890286158724001167199999532652998660245278164744510504962637231567246863592712459854200329190337245181604925846029853379919731883190053308362219367614414972429497493287550569407299876091172333388823047245364079143385491354731742351715628299903469425344123287388676124926057447845169534980260790311014190471466702719073475634125563661591566925958057503213045022099877272477799208976449579882033707490292472134607010508506798687191225287786238396517770632939007844446315614245364438987705135794286041289849471854756966108557194806559703991797062129988218882528947344616028414722009173291077008847660391621921554170787366886184123984480679059256452638257717957240680950174962121642844907703904895604618319665204294286002425233462365622736148199555438373178377162601476661056744302906268304628507510604759159319886281630995190867753028974973342199916867412454493965720284562717409106049433388199982643379071824519966040127759385874811530288289285168973269285356154383744814361682073508415275167319010504736094771140592062623959469740900543934702924244780185507130342155995645524906198657637786913089570322926514769030430712919668219593930632989087494519096144405982326004320818631749632577653693623684892126494521198695721846120776025031870724546691393224311556310348948340079564349239540386468258815830491573346926470634522614702679489308393918717372236530441088084382082746669649294112836256529711941752444422206402160114574906330455445260000742959770925657124376524798342434564699965319938648844992695235704984765920375122826151040639881860441492384407218374940211483782246676429810043944140849384519498088246832180595549733574706411661410287871772902233174848518705563936767667332432803633497517992928759186477011758138012148378229719655538083560452005419516763813434947778812252341516937482963303930480935284199400559063287324277853966975421107024087580816613592619832741473080967541178020382356965809213191272934362906544623449504183103048536164229297540028186513674835056381557385770113072912011010230692644757817807640941440465073047308080311832748836425097127291778592815874238394940379400898373677654685642410973454700410644998547398119917903075904599978541579268954162584840167199027182759715974625690634568968304203678536941230518946735403018184997391612129350529887094807818314948515308854726360278564333898794217238687935003214375263125286380832530878168989322706892248776545272799129239835106014638289591816777021906041239001272478850948857180887542892863391211167792395242122463524349688249622972850901305645295546843771189992485542718180917490188693225113658381906521987587486405934190091584964647604640683808854823193291602889975752301967929385938490892513115185871828716489061971961584081136002967853590461017904076652321368766826565636473577727370849177139746949814839109368234033502585962901439622660837578187378972089558573082341595960675341278070107669673808790967281385716154403479396285289204900038593243209590872811073773500591815864840246894586698329241507262572558017491975986515843770988448843237716404186240038826361269980497373375582623149594078249118579185392878139532716153691799691320573719929588691637869153227617424359515346778500174698101997418119834649498544622124376718745352789158415380621315808196345051959821731420485277344059223431142646886388028037392074617762980869985791655285295007462036171913919694986264860988449653045670166950930201484494592851460984278081869904152964888137166154217345726221825248368233584696609000011618321334543948251670333914406669932408984405792900504795053776422187219504235742761094422828313240461263309307375745486041763779141771374672557222227285745317922787626430491272569732214889600036961173626944714023428298153472677711950847326085621405155650888998283668818795141304410423875515562182020821042212687708513332601699789218356457943895117299783960301236770380737288262513560259805527154210912123900007771689738864583709916080790875069168638130731981408648053336716009211490407276158139560453410987500657717964862515398468338302380273378030668448563868502621952896595539656219769776918811339176501043954727746695909189762594290715184354948271269088697116798029345800428195536812000124089106982270066379053394792586114276079861828202498922867395541869823539338894446078061488937093631641905240870655157387411351659567819431193747520784993386733707847729715217670681121990172888319138030231036020504274655338854893543251429413735680267909872439398629070718440738932274189594377736238335465483831399261645467776582713525278619976378778256594023390488059745196873954064266541125651276287913203435839670332727420589715089593065482671569311400177013502818440146006505656268370402188998836880775960940264092610338033725159002078748662611685130418603024648586185740958206772688072657928777726857915624961051803789180434004067025324351620102729895038343794334663528026254997524789881308784980129527477619745208108359795242044607024959241807885774296842893215556404399797573365675457843789200659397440851057415715590796703065981588233073284704797580095623060721122783135875667744124232577054369335581249848284396723185841182738591284951392668564094593845286805217553433809922163229664393940771425112176138133847970295811321971410790310141556304100904241586439733024269446324761406137843703317584581593801601298870828791573303344748550958386824628811608335755459702289487638766618626412942908679349514790555403519127817244804219010078374851240022570375021858465427954867847069074444681004555753287926452945841444881546550098679747670289524024822280396347992770878356047268720341521145934754998230845246865829748487075000442042112494088943151297138623719155028308416550844172997229634464517870088972097797530021934588693356145360067392693251036323690772608740389188255695959437495673519419990489350710895843005279207904093581423779639115390312671486379047775828575918545525363986562028870631788353563548203553730896606486670405486217391047656811152021141434632988345065772094333193052615832379095356702328686107273381696691264089829018600897585321684899321088071200263409273594154437166995307521647817681223686587877316632547754770995887108527383164260040345710299159082842641762485224540896754739655687541987412683597783664342743286294912141059536097294888514893706677712105507542769971220363387471804664640347932703417844375073835598231105830443845085714514273985982162953305456796388756607813414841906475142133506246222540855832975618226385949907518157083047098646477714992658662198738919425753704288102275952084173484842468948647643996732238412056198954236025267899975975368553199518432237598127039133823870189968217114746198314937462512875327750834732438911331109462997385174669254937798379901366349090235138078758082035331658636558043514083104062672503552241671490452015027327767679751309850436307155641909331923525560972169510395615350790285219011284555620675831312748802845290796160934398038711668211286978725719922077570872308859304172902014627210445672062878660477546326537093249359817096836603058435620313113016487299175051027703958888289084136768088831714570961001571827321680192658567660755106630674159918556121478242375910676615417034404393222238937680403109554492328046027125919132936569895048686638184817906336824247551810980216691817855367977807295025810070298169617110979668779254288502279435209216661775301935991331683980851666742945491226405423504382659185089287656990065788381337333910989624267268667802629047973793313054254476429023363824932959011510393841884605589894569597659604530600071013744359326808230476565643342171060832912916316339161823385106482948786993804252812611577424262939495833421107717896391635311565470218086753450698744880524180535934243103601416927051076289657517197280967296368360438973416242792775210019124241373072633538465303710023959635445864195082412906753077128233786347252336839092586025267313306662339516334086870114733192476434502464530600525569248342781289085168770659852889306403821885498717425806829660604502926918373231611381698950686596663489830654656940284441112605335566745978816897027756841330113110056342757851509955664195211340260552486009789932295992550884923110046191009524063068654848340362295054290478000068709629547264888240018344339830597075846569116494795422121905636560904298599227227061818716584897926950756973242842404230334778084280599845141912790777337327654124565686506374170039645676446553409954131727075273522998053759911178802503450922115945676867591128266508230916972611068394868655807495427917646183212186082919085186987361993043487458136695005369612828151338541321366911971528323290570248563000742422367675776065639123128164180405993827730080359865627620312902481077096380081484555660487038658944396393615218531002219121924669597149212033058958750896434234619181316772737250968487886526701719678526587527311580079615647036039685962433471315717131358099307223749565100126251853445136880304700306402893431060628780151396692892495564043183084989981219046727856406369223357164584363319064561516217177708541511640927472590775029104877539988573539239366107912970403792404583133940132365043466956611859474730112803258343500295011994448312021735398368523079360528104666317932061644092319617678762454767326713094084650956705153337147427371724923314619441192510867697651108004319000287799135672948063337145298791607595656232136325034083411151719136489333333733256672509374925319995455742219802043673748001822538593409555447386812270414459486363823626470624147270916058698490079593694692381545256373037601054712403323653593900909625178665304002415040788898013789323914462317655902683333899967929508117726901450996634573067609279488222976839005063856460520158764843311056231620627651191232127192803950552033608137496691354365821032413649506722181822909333452033976296090265053622129702509027788482226279909649642668834703051701445744121563891374456960555394476409568003627602832737040229755048766690709122130110274809644426687674294543867345685254268021024812227796323648311441597101811912222509338711942376250353874145058421161058566513657157736056573372252249554218984423834236506224442508892906064662777982484005610513229474355719517688901119722804337068752253640234796755312999939984329980346425558765361171501374174318632137631061639714127143553407760271410021845178362769441913693966641356852643636573415793091464974498786490701808773572448628354254949692194942479677192578488204615966187216628037554778694433051019864630692637756543907770778952133060714455924041183894135439484553664295708401501234603340229092777711182071022330232417831037870619158049481365510500267598168340242506425491064413286504304858256957726321827872817321486939153189449624823614768407834855040539016443444824361727044945049243424905187832807599724649154145657891947326496334313318697552279120397510074966473597441608443979726731196077511451618856609099011471511747155410695354976250855580722604749660102511553415574255895777269067409459680481222819400370846008314767789420232758401212911756286519543082569750820192897564077310095084901531850303883765895618576162634236957653143758191908334287998268942983547805211950898169107510392271314939892385485169130573109344231897406373276250453945468715583245308097114064764848250649403408400040834565144577501122372523275613784862953107504029602844651039367169309490038149431520797804608627086981790308906489552545027169471689360741628768987748280674022900475129152084652451209776304683456536486621395132033565552906551148443823201813954228175964220249957272250996634857113946545779152655732945004378081136392445055522199468545340444348244515526056710556889707977543083003143478337098555893708031721471921464345253847549702696248558450762877669198523987222654036572489059001731169642322825257793478272579115046655524808495218555413853365011884074677468245194389438125063369829249175832157262168206644466128041779145121174773374631970919580285326853219327780079243079506845158110541111475797206584368309494904192229781315877055355879874599050935127860219179861807346829662520821860857974460030202734970854188386936081623259242933738268592535562415913398257803563698107268875355801970032848225525406991255358414232080914838170436005400278160363546100332615227086679526787607892333545725100171989079067480379452056289989088298233898839663965824118324505674846877738713835545758075713153959999260506637496649603628534613994378274754532785044623025297191579197447892489949497152004524430448713256264521323175921658491925807671156300051943683307371033834745738336687136100324702444729481177123625734839193850461395344146115958397873650071239007663123868213054758400837195572314999473745191816244930142773977834362530479290237842472444464994209389699338847838450065940469294256079205059621515212619085265807682468207582774838293321829375161440033186828409748434210568921127862573446888741775151830006446587720360543222884608780656513511616486533713358067745422286598711934264815215990706401940529941799690037294077309747027448669418646156704336346957197331824282197941216932621125100840789347142536695136743946343999008220145104816892660556570491624725807725981490227144933591214406905339413700654024980805829520414639192605213059083241537333150482460571174595750018018278784194295358759840070188700409669604485452874323792544589593722508097744109964072392616212345405206433396478716913172678503393339378347790735129080069010691556018892321084202712918327703032546374253754143832957579266704741004434356101900687905033818006437445273246065799044074804287817031404221309634078613937493368237273657933472968802952578161981574411371330015333757050066885940272986355116556908331675631595949269722052823142120886314222933018008558336238968241402733493861229863626820074235481970206839253839029222991147354679867023568777719065661986695200269367688506037385049598405596219109737519323444686878539224067558156912054672985646609144283583401011052546136455286271437418204081830586747362497593583174289825142524424241883111063671152225482188046188593821974877777117317423517943989790456039444823386718287796303585179271191861165746548943015105314829996461119663202347641149709537230572897429013403869555273273879751499038002858158636491686741012316030377165098799466127124314808730033990540520999641996657814634503451756238328648750320770745799102645301608291463680629693385492309076359085087175588817486304326213866062714249499089839144493981686180863280892185933662883380377829456114862057993006356317708794987631916239959490360843719986668298405729174645980631728803907166588726140597841490333007897299325503420219368758970226392742564383947953452058328584825354114796160665765631642164753095222793289751335940178064269495808372056163864317804277757292305578637830276916017141943903319001876604036537928592279479871715922365738349762058555405110043625077163470280799568720120983854946173363444538992301179184588477058612669199620214372258737824917747117252616770516919462142384943253404915702882571004763432961754311905184048473124096315255554978144457703331957273603416761784885387355112687809615460949730530352832835322441670500480322576311032141358816530410857938222754924866513874538187622430710232982578628506962793585361208453503497352540992100163374904783367179643603061757503586512565859524049780038712549797242829720060674143241631682612748836474678273138220508648139762105607477864109891799072674889776909144752665238256494514769275961444939269438737543750523923318344166842414524998801381546601190779858920209833373785943078767836563903738395874623664909374919334783553921816833634457606919448494055783990771507083694264960760739009752524116303643245005894152845241962001617901936237964953157832895226371406065676037266895082313474151862177534022823883926870722884840860408144950750519388561637506216545524302135195218734231429105323255969242433153062925388614601116021520510083157887981445223475113695103026824136705172220017354192426969871445120100785076471046290841984909319262080357072267442481079880931499025916891663097667971652637509096815102813684553099872409818305777382833859732585477949571511607171350751366181323909473423322508834162275898382160416895665073738404753105785957501836372678614629630202353055803961270492778828834265700441115932771700297271136213334951123500995524773388466272787540178342400778591928455185787021216717664225629908395139858071091889657706146774239242074496911192709752972771583197211326027223544798659438892834160939281455097701076536909149951442979790073295552840442910504836433943252076290229580773990965456394397049743147417604653613724543553971480080468045422119517319157109910175192504686419567631487846029616769191885175467176352892857525987336116364579907162909165662306938882208805383009486670854454720687961048006537808216504414704615121435124023227824078296146073421576882793078299699214514123673445654595196861983473691873942239669350784396263203163519418117508987193247679227982273108381298091778173926580110394955573409486808844481027560080286746105025535628899384696122992092715071967575423584838405427788279479109192279200885746723913133859669667232450002788090019670515074476311026834591737910926515338023850193742526203759474656993142849978961287697428930364892354073578725452407636202401133186870723881363483832041575941978989883325151117821963997339606055377349031022359332709204552006729288891199585090057981581878125342799191337760348290234876588621298893599996094871794240490210916465735670827626093519498625400082969903162038217205354638830732083804807360678169283403926833960435467123350977229942814721822312439605268248773554192628700935270279683128146429507042408271568333602070145580043749049963693565017500866310321001876378643262354161392881232728298433658638333093388605865367164983908319638189400277503798099479776136374637380369932182498763575023980625151895044625944535994747626667980840265272572752564887738368081002045441244394999199012700800030628055776064477834739818236728230699782803831446389551109193902600248030522481588134306397961880928420892533185957515578063583721018424841702157242510469477910855030951089870706658765887149469284958100130170016974204755984864669685589855889412990392202195424447707536381690269042410446153659566694057703685331790139444160992949236125009230100077959916159160309045248942583961066932120712839887965679969067998860001125243073405179721188811412153676837515866724752025119263590821632332252131243770465758849694684777240049533274484792569654848053007876831623108048770745398778025682283745256195463462845055422540225655144916366017434388527356231651328469418366302839699231290398659412350023339700545189277579817894284623855747620334871646298633033673871877919908426442610124808354456762146243333611257782837338459310655573219745060203936314730038443183073421164541682545898491635310248196048097850714125098304922217711467610188767199916890148757084217298190840449165900511114455353746905853540836072670308494083425772440159500466954236414101120739512709668468159864141633034633855907854499159319353454510273565041063361025969494869866630768019447229877073635642675148250149142816719741336421373750612763687232296114602202614623892189522525934402346382097420852367787538524003245750482938015185367664682617837613851418964040103342293221751588392989775673126287272899331952850363304942703782451017567543114832915096103260210848526952364200193913103937759199064262026499319978730135819005928652053480848998889099717815773852215213692559793660071452025945252140872586882040207377270925732837219607135935288054473566738102086166239366381341008295543105462904945095718694492613161423605091117993478681439068251043323940019842740592341220683028033770690786503675078060303443576033556309261492427588070881939693588401653970341583923595179075688591134548911624345813924129028235221594134318618387722188901358187785279558682229341565855053026134925518990064590798315485574614712741367646137460357451117165216744216665225379519329507641025702149415887797314456532085436251456645347968564400459837230232477491564608298693044893077726157159947109779543016169585971307070205676006977679629373335795688797403797950565369503017038638812731488551783370262798920726023549869351070679806097641101383094510689865997212689945374030639138864213416340931752897213122013579726982023218257909278714094642069798918500091290497141594903006845492792988166799577472678440067405133938050209278779685739838776120215225472371876943323306711677399766534037600384603313653579338893119573560439324807997924883875242957850830680147584184693613196864703763272934724337668519587016326504282704874834670692438317215277015641793384302624816674127694224640018730043052395804025891736005964024936882336773584428158949324903461407111442603964821065076897461609991071006497188758075087635046806267687428837413584096355249131084851003110836108306745934223375069416713525226273643486085457929525889387236648400789562820301001900683848062633109817057974768174557906370431338025265171812603469086586546245308153964629997618616263766107173449636065131848373670054774117608053806840377358438922048543826018622064070040610368793610413576206872029529335432878289896306145389304084789319146144923284840019284382026582981545622276556618314742613079433950945973046541210493955806554253079105759483062841942279125600433854994449554004040090236661447421706605969293265855788309649582576795280781777111577196550979697990454370477675768415798047275209828930604291145381527320955595572773219945300357496041264310212736407546322349771487967243003198977438978696420669193172905878133492034225028739541272967774616630983543378401145602791678778395200396801501279655664888582585825224639906799394905810788137091649419852530821002748688333671658078408811077566318504229514453844144953466342761753074762836991015984469930686267732673126751401621086697654327368957580316998522767018923860208964771590654661592356427895166472874799819224578728196396972350180381878287939078024887535157227068304156520546531748953227494423434495708519059211441492721131170162348152845007577150897499033871046833755550724621435244953001818621333780348867025943371448169979472512554455514755352386088747792752963713686642922809173286042154572796710851939609980750084654004763604874962541476383474357121463351319373058515063229768247222148337868766125017741355925507469691852048747294555662053920373844818627871005668928682071920402801277565362665861307043232307196753659140874244505182690196976316106940614933733261208164172729678792405052120725449279034469928965035261382982240123187002397181218106663306943830749289166434143055811903338274771658645190296728848999608861353561381877457441213879200790016228505447339930600558624366529533351395939620326458897775747926859560699664209385100075318144741916077744818272871495683700112636716949462191576229286777392859876290846238574556247556857164917537423303367858600359158346853732666538695510205832759973416811214999969732947156437751699725706143330786909108577789643866943529475181121141945151669680052475446119416530081955091136301989953129794411575596724691727859417121359314019874846943073098269964252040562997926234136711690401822898055336313332044528831851549481509776544828047556352192695740092086827229987609848201531767827588819277168032911354440245164656479180191859787636999791228803499219091215401893478977253045841943971460369114981942549577535945856355278535992411376603453306915668268476711516639228347437626112843534556308961693791053397632514826454135529610069163379042498466832145545518594054227465995880964012487401833548545357399154594620174867405947881966115090551942145883397192180148431185185259202363109337799351229371527497279810608107686643714112856268982557202721537287744856306900694990108750334619498544033636279162875034960805900906563006501397118178798864137873000531794707449360805871416206524382779536256487563019160930790757725226202509901596181231760213698974011369018163780774553615478542384107772427031956024472422575486801311969307066759910603550102428496011726472840910351681040022090894733330290197051457466114780324577786804685953107738073318327445469245525433060053816676418169020860565817862456442524789482171585126318816361409253652984498139522027819030543670964365970976229905661870379289948379030827465983003936609056379207656729075613144052459129987045114816666577839812482642242981954600377712357318513367807208819476443549090325030527601387373247956323565633274170750726028407880184455695979801101574681759568276347769158292272411592891827045279933970237288466034759869145524878321235010489951927895697223350869895714417738214916125816999090496537370985895589773419848606980274971269796952684326358567053899899330693302044457218781239270781735189743718546331717010263562184426902064323762201108703303554693116700838042331928123106399886012451416375209049616812544467251698072117405522359637745062646867584953555007638134749280889373832345744194668872137720242029559416985196565802265721016950482993287792025339451035098092979674944175938064188192634907482615958118094772429470142170274165999816236513000611266650020675679133120377024794092654745593978591094265032088483047145952954162575579578695220735628445128129377693838723365497945030667703937070693362955469475767509533445026909882910953043691036614785284125926713570643216607848203741734000241157635616912084406186345611677944457221685644758113851451516218918326060864044007203434711926403636970147582087733542618864020689699676922436107355804248294581079797194412523974344657573157945623157094856067433677708965468438939121061933980271936127897184187099849974954473985151092957869311132214641843555193174526643501351858487907596514041660100274714058835099235729965333175428901124524494651376741985803652974933982629623760786932064266226264625953449631870521292823443045003862546945454834336600093077823202905964230184338436042563984874339147508083653216424761940042748457052204032639519053775797112362490478617088680031801210102881611319556261797274933068870778247430297974739734079576217323119741367251434782614981919395580784656200054377380210639081726432641427114316765099487327266343148331146775811297648656207912938394838371434995725514252925447938905106646475885440905028564874301205121666074973389856442477686767379337006870049258216272011223060440629024240604259614153133870072592180961876819402606737068413828473984398617583984552644793604143713369853451301041639492387722820509917764189653345332474905746876927170440943649373348734405676311252308818700898379592817418748832110549326100444569104176393075017215489292526452277821334047790745379551111982663739806823879944964175054751091843202452327570973895777648036828132044153846653811624284834369543027857385837019054143029315999655198714968774104345233618451222312741174665822571494262796551575672509838591169084051905775394352638980877068449805486226970664493870966402258338012772162488746314376544422342716948694015915362236612287953129072670702320434288698446471386004606782186331526175152026806353145285162668796994175957220322336713720014101817264869769042664060029101956298242241517004522211540543269663736627486993588658547629883434797439801174270613503558682557070126718419262656361148713892400807299526147130640981427499541118839677827628166393203956962470333965956328054861980155500672436602862109391808978766990231816331885601143343878990017532132067318991582601888034830000243293768356519092306098164111093324427888794579065530854663297220030641654254073551227506035743777372536269222196981169572404586221081516063448710171655346211894014556199594823959460663435777722268314475595096139666253360088706332431607760940884641155291371157844576221524664559118397768427331730688570408732310999598051567589209335496698521179170664082311204714713244777329511220187268592775851405371728826545672320801384458465457299885045819151902859334319497604689590450173208178557742593891781086470628647744998461580123130534452421110842648539052069291112588289463296059181686115314737873209175277531021507984803085490359122192147286571691877258222332735714287453618709825454243029971188133329792433394040792860537180644850417082064175818002178194085110292590245925942822179418908660138318839856445793462861618026367554127587249578458274198514505452588919733486123507118114825272510448263306309387967279430564997718442511444163116297715591022340630180874588495524451372919015442572212704071582367520168108125998862944038052860495527378302383950628463324689294952475716111934049588017188101674981124344048300553415850677297737274505612950095874882550032376107785189565545496309129649582581228380536058396451779770596504864798852608442945236936467611232646770583593445351910660689513215273295247682008982306085317144679189021827339679045572998480451363076630885226806304982318450881431543544178290388245632109771854766543812272755155473744145970928366283778644190911877220054304478960200544736842058974791350727337364837973770480384038435112628445544104041682917024983618942631083950099362466214912316832118042433659120539746345569723658693664625766282444340768745295924365526678415074318936334115585547564468078214234832402813318128514987096027633842482203742476230049655743035574190078050834974293670588320727937316037166161894703162788718803124887415769344471085707167192358400460188857845872302362381197565422247982388020976702870749417388694897231642845789448191218585759487987187035617873917182003478216841496322489852569878575479529877600605070425483172579444933346202447561046881460861712552620183496170773367454554943717310639920383013708033131141245070842608938931785551413959068143150829391605674215931125829809992015512976474538075406678430992049267992584557350934557642686747502757422211895341088802710492278989728686385625601189552076503339194531852198148139833000178415458357449788267943542484111567149338886031441000900670870998371558329969148043329080446455520928446143333643170261853491919824651418762156356829645908673731511683092745690025501967013654308905693146008833025311454856097908253328349269611176621813622098315794564189027834986932782663087934333741974582067429347412670321895142445535064785276252237695823910704961774680974769737886619317037838055850655142333672407935385160633154516092770646342106015198803480963988115797747597787208220746563028575433341728501454270926774606219635985755286601469428140941268405462285749241271482453357815662407160542324785363881132401910295977593660681058468073805319780145190335696269978070478477016139531781549482120142562460482859762088830331449934401541507834115168081073014387048963485152834527644295824179013341750513706973401298205968493850874690702938362031609594732037706393820163798200414451391863696646061568909258036456505127362293236600473749915287947828736956566919511511762906123124478703719221278572616336217622684064128555215403304362862616489239003611265134187289793676885006396512256849776674826755296337978829435110503005645791392581830174275952741711135428816834546066821333933014876367608157078293832405101772918534992847385052088752640409119858145206081493186723291162303453065017089491259205896270512635884905746102657779111607266263106306481961265040964138074633281152445486983720738399079611321600815626827095079233606098753271238891223101456611010813365793353145759036289393043894261996359902431681669243526654821374697065170199176036601650311736791264160812046035360764968296913618121704901883960208306258670687608346719993066782749089244429869741779008534184958553642469855859878550399373505042805296978109759248541236510810889316359793833388622645680267320812786273609696096459293989613980338823103506512362397068800060014076572804919006264762753380496159018211615087929014186483927560702444573996671388904809533428462474208401760071916672749215355083849795286167299713746515566084742466237876477221657569118235368045968632006629941315542634651013358572332425648003512479901162448247578450680383910395331069323806930205643246678413439245895228873904028570400737604011139827616005636758110713371798013418583359141324079280067594076493934073727081008798150720953975925651004867468523655545331377070936512329104793476376926527709842470326565609237193913091737536882798280191903827724783538558512508150871903559213989055024875926520084378074376360773026746720265642261255999997759186031920146699253783123679780482761743346683189013517906817280621168356939073745899132493970604871312081625661636356805001422441635347744223415357996368175641939436467012754035164280146822429776582407355690478440973219307037021951936767178497368530217469826381621683286545402315592574257299441752296472907702470030690849773123247836591526126550111475009205707874371856891188697320837964595496699467575310523457320181923733388344092179755346592078570232481168434275360094687827390875233657058327245503322208398301710794559549772158930652249555963504654203981490971953081036592917851440510355596061261806439014841549596572928926033000106205739444057296291312020390088496856592526822243311066057992994766668216317564329147105528595019944108691446706757902249440811663113254549805512657417097441930139010583266352314257738453463242856521279257346222133494920258548947604082419241394376787411580444810620005663686907863890981369321902524050192796600072684064528691600462669127320680643760682467615636259555780324820483059073556566884614171724979201331540415801796682939286151444747176364147090744271764673789202484107776217653963328819071069181841557536829997249007433539695467399260689962991158103390542908803105601555697521526434197158712152756709646660078944725091518954638784561960324755985974199886192253063175528894797335723436672986785887138911658540099360140866407766069042761037837523033874200126017498188124689918424911324944225192103774866578433680252370706240263292889935819292035725454500089178531623410515904324984806648470708343791617291411490363696024049323945197672660905999475531391039156036198299811489119238731677459906904324277519401692048072320658985571321847043579800180426347712537183339863292289601084063236774303640206792948256444317456844375612424072614452556243359496583183265899049024772566230988846667128098547624701780284231936902927193724190907085142233135111090077241845617492714328774209509422964411960971570151659056138210119441274731504264790560072830178851531502713641553916085298291548140811183532800144196931495320637928868585971731526378834301990580046094533934662637676723134070469985036797201201662153847563742384790185429379003775422490068901731929835037321407903330232876579868662364665650107135904246224910477984480366006577316176602342993643123463985588232546233807871012736389874886181525312842683024684069246364511041332003884245787544209327056586471779378687714885277891636008469952055919542005078701166877860657628786166575031845116286611634737687716132370921429798386495079834600421352965954872260450235525060659726845977401696424770779229420896323454213752369710862340106109765703864373516672407833845761410360577231497363702184961930822448066746142653136560593264514649590432046705789488407104669996274819705152153111608208651373584361715288806090709988269531943892657775474852499489312266266930025144752751354994587266619452134256286922332678567423193121511234803247954727435048754899196684961792734716601550313955214101023378139655781942350997347788241600070376076513270399299034148293940381203757354100508923831924658225477919755720728020755486888088789927503111059062051778749033166299294353845299473297671223812055605863650601391662573968255361195729913580643343160504904325789015540513262045425952236232668279241681727161495721818159120271399001244899160638807583126101770719905780670629582815142093081084842928508268640218798678458376115249783696074634561759583127560806457060855736259450053539130521650391809903780712259812132084040611693749512258972581750548138341276115458033441500960636515861442906805360719323673097400467372481235185662786922979762123862435915260882785815435026201500083543893915331634464345191077541905047033530267845224020683183544775963897528813456048061285686610851576735863954166782102143957365882604837527410256680595980862136388580424022866647426465627424529011733640314475139986727716230809428062167637575178438371978751570681505876686731585052686369647049644789689030157011876138947857351799152346403476769721493748959270342454795419246787553720885952859964792349524552548247158601063145770054990835808385865786932876818929977566203010517795093720345552909105035913600540237168998563442654084655353870836941929370804114009155078091481818931089559796996982626270162440567513609327769610090335924721524631013954055620004512342529949327287469676999303716739594580776838373846343998047793203292402130360506015124269918951192362853007602431147077993414116359922871649572331322961467956072506883870769940331741299613572955707509139323517072445459520258662731452334713093919602795805868351037593457512997748905348341101626573285477468601002935214774259577888037178068347448500825785223914490209336409032674000699397571939839143657349428831003648845902048527241756655552541405983355252092725576750044418291060730321488198005781855050225507826256266155297469794856401862089066013626148791334792573589987694398603180152488521318945398874111657889366273301912792604659963682508183225735341414203288203410792089667226196311743404854679262268988396907558265430070717932547652500453364958565844022256221942202002699539922648572936203110930187621407210345567229231926278705259651310484187817370805772098769994827263357518738213715783817535730224331915862901249549820495504164505934814316297254465692791413748629229928647850172517197982032638697614222666598726184266629462724018575967259560115482336696320621966386971844218759401829361110206501607176074949310843304726837310067687373443714999016792397976844644453840169168892308164909323085336113055955448559692590336316824190394547005653420811299336977725082948184934235565210010483954288509864161583430242248465992593797030484049115095092296414491126641144238867354135576724453297718860668895314879926295848254889550507163905151259983739452869671138595414508569429758391646363131209278213758900706796248257039873006366175206308612086298823431413658707815235026219330329543992311425089644234833359140495326629449454894900877120127023267944210263174516363479789303531249697203614116699361325500365304761522662239880098297582757628063957604208838912585991892247412840777236771228119456754169365919714714018458286985271076729552835414807642333091251969424034226516821130031074893223359384708205791347823740054955751803965582640455548487592263765355479812701246920853256382351079529057566771977546208846240045989476485156859070497381458522633114964290569368519482198538420202992338388304783152614760421132975085327283202901131654810337470966198138366421481600351415507962074141703903176407288372707753771289260393110164824398039890117840734581224048359332816551138578749483698367334868118696778807700358439775316341082776526267851622793047761544606395809371050154942510075430910622039873879541716009875509461951735473229167088939238628090385827806405638814079382417528196235222995464890295776338864223591639449030206643756564270732002880900045415471098003129452721419661552726809710274564663131242667748530031230414694107721846460286718834291380554766150577566985697813154633353062979067162560333341259378167049265481468812381667585013243064138529624924384991997269562758406169209337589305022344951135357748621885524978539612454381466623449917038221748011530781707927143666871067937963891040238266212412530763755668995661144846751307491147581693137640809375796615699087634491816450471721312086112877392021662280426086107907366870712456514543754306437319039545901230628520283063661258213926543772173460307912142390017534805061994345730418521024897133017846349877917091988934839093363367726548277503444932365933961757162640842312662823309576257330060683701331766232899189219898986613353472493538653920243206667390680073487145673473086455811564226310335915548948260215352118452734025830233963817464637022378895174842746345208025793028115075898065398909627080139684825477995931131037715561670137355787580283017368329813188361385960395417786584275679567276138420205886853548069271329392751522289650178423496368665922544216685798216028649418008817617170957638605406303262844520320708561549029509360542068021422314228484965216269247873123669471418039001409512548789795416840093865804318089211101069494052936690358554989993182934732448462953458230471555520320912047101394091729449608788314151718380243487613808361100035286026135697936562330909125795377099529202580066481101162957135343231990128427327032048175142348897453216664869901635041099466704169486974623608681084116685884791275992356020611067960779856593065551414426244046671622723287721644816643551804769744499197790117156162246802504710564159455834796837732803503814025281366129512731584841764268796026134339408804527284541794287612877785791043217147379418014281321633105372524364097885187916425622002200939898505138821751695587870638779860281331879647145366984820423427678980356329818190689841271044771112758026732610338730087757176127723827144774384062363046802453105550977964245888469535360114484250864254447446969459564548467518390517227898378813648452146850158613562782429072749468086121879071886173996115596678303165630379422453355204130175585062976323173212727916805728176180878025734150369482830767138840551419670636283721802916309278644579450737297431519981331995426586319033051879201579639251175246508463792154421622069586136867280951933180283166028975788922489147652230351186705724509755989861796890858238032891035852344555755602424095230975023139291314504528685517300995695504930937932584684553423397150564762064591104341446527319031458525639668316435221192987926807397500194363486415398830653465372700222161928267183080518980103260004839312290726405249228447465683523545973724575835369110573894479876408872345806844672878383962379924901888076665913758038257352863236753422691363254275484537222672195325779622635570573801809346067928137471884915006217348579739639102692641586314218382453542519657726957498033235009765751014392705576471658893799647937509663144005664669970313799540426183253885001377644238280358484054172167347174108185715517536712645109181410679305640393624897111996132748275910837854043386012144301571657379578475102343788093820765604978116064402841792836603054730931325707471926590440429749919058738507491640429880772322253751377911800669734825155923481940584797088564767608462498644563705827983574824290898055730623392542739606327232132095125722923634074423347212704789832827947981457826824483822940549609525739596769297495589935725975260250106157682878504271026937540435865564034747556433561295416856864591855968021898747093793782966545819993924682408330466141020227754229140839189054253334592853339027029592091715124097380707720679135606481699494915439761875050233631038627754526218947718272728832905799164408125293843043508092238166402202422714832007598270451645757179230961066944987380910921521558247333260076369983115466721530914136297299882940103964022169299835096251608456514723187111556590535490361255807061843234269215958616166722587202344262299171105732096344615030181620782819400732958715768403722049797288532676673574483990071166189349807839853847892359141105785136391761472813119108869198712706124350166622599033351878675208928713985728168701477130567494672965410015824945628118798919036229945125651433126617527804316414149660205772300061078315429502951875773951382815741231430489086543431278498219201701801949890828469670120851508560298203937032662832625585017031499735417357665948236411503253027380929569646943355649613537017302699061938240875965808242223046917638129266177430710861860108617481857168309067423806978701210038900308294120456142201612513681920549133967440308149030902559875347477971464460268519122974672747615957744504135968738205965307535957877138836009475746004689346920751202711627758024972754871775152527714207121887070424551965986083931944537025165451706885799331729635719274485557608031350227385540877924042511890919556851651168853861301818267224247803512110543635732051223600621803066323508615010867803470821161500531929947226722348795025671905115310708464813154885870615293988036408426358096045411105845404674554857711610275764553613805625913130044149089097082753579669594930435604377619258956171355040009074823024906691593211448834683118638127021179748148665948409952362468443314048520367301464634509190978280249760391210554845756728215419283312030895291683981312748251035179182617180377877477492834042992853193062500603009964122816807709074400732281015362533997569139310518697231579524901326398501105733030736044857361241599474055200688576611195733655670075394300503279734109984908140410153252405244672159833129850766675506006431607676805984969158717351031719933363938850400540722210086637243768710735245080855933309324222254150880011327833254490396972395041963827887980625959301511112038441226155069330933586919489125748995045895832602635822665206458273319975425429070657475119415201152327192546567981836294845969565362682281514697595864793437308835329844587932718724940137608596770589373238059345778894280811775932148256545314128652899955645877892786610442565237745571931401992287860308984418637473517616895199010827845991267302094362662364205575057726653557414456363093731586471946573441981866582738161597966712098927568034614427688894821432400542174505899575630232472469405811796277252740716838237061448222110655530710250342374854443576118285749717754144357892236426992959944467219824568199877724882759843767721704005759763869449962288590948552354180546006317767650518354577474579733703976756135707121635500098884211403705557262449014994555530235492504734407722153455065796163462397197719275604758624910123171494521774954456125495876699485438941774372221725645051131620751189324502117411119261361148579766425925953352308359777295581497544063433306429944176290385071868856863757183302263543714088873917610202393375787309601900532119231683346153000104768912067006021585209785304889328550218558462573215093619917061716780213494044282419357484914517658123261872026256528716749972272912492504709577878136096693195541825910017183474848957758969272398184363180522034154419588210351368615297802530027045370925018558764614582398701162903934267546914157252382554950901026548585306983289204479612500606825985868379208363108850988095615893210665633172802930789908723141692270747397701538348756749894953776440493410884948523242160476762831360146776630213034128405866264238016060441278185711713075983300905603964771171832288003253951799966536677604570001395240428668783603680536204873091311892948024729403463999334461554928052177847495032373856864095340082937509452972801041566774636579050368809757058204672292832031812788103988018331594696913317653444134868006476588862860291713925139383854380271237341285021611809981257897657511385118742107808337686542734613969791890193680757556542363622973735178076009788022942566398085765275767172314115467816436387516527561386564215876355824251132551541252940707390362423089031279216047775607520026321367922054187167052424124853048641026448542404226116983156907865605402286006029431456993895275506342835529491819242780993907098075114314468522509856746780308347552135311574998904306908203304642517367749738929793679431804412887958902734897343037890118438262268810389029932129407585275030996599865228490757053932436228942663637099986629767197708891110147257626109426371313226744077540202380655786984206128289296947124904251045522794981154574819746419585573736553955760198064042053445125853599010695215629347853175663874329419976568234938340788025054670356076016088553230341797272335371252475697852652089078366576501146005169775123290880101086127976104010696220122628591882591369280590187589814983586304425443263982457257369871897144688174358092520867733107430208417170484866157176435941932409188296175627318268980671701077886666343435337683599888784715006383958013104779741281390685485859259144143005232103494194663118116653805089661246938732711068209370555315911245156409694004130241911706283548469628276353467654267938673763512215278075034627226900991902516993437654452220351600684418919324321108996471103447245938892159322141918977246980795432339418343044229562072031826372572206314622209137769226949960968158818161927632826561717989750297918662312306446284562379030225066880042788011955836216428004449560290304201676898339047418083793544183088822204455283381410665896436681741189339953447546820254725137087676539569536004682854518647803993072324906753758151803834333083466803507735501017343850402765361624470865879046129545632055060621074346671179953499585744418076790382365230521427898157713551433798843304780330721171332756274494528454024164426963578925784019358886377782802288585068613286144976253638649202681241201725562952081964792143662858928859531224551146190253009615054305701843029163751801779066820269325243508889579788904119183741374749719559492194108587178602302703047839953962137345750126713749543434038652738012681620044460230242366467308235348903713351283367059351781864431809037342395078019073799759709194092652109018887592191295798107987843115128146196818301121740421086127263072987858613279818804566193520796091276462403983633453554240978134691045149572019759538657334694390811742982444038304845129078540296358979457418826584059987452905025159194867192360794318022487517739766514780580268453360390825833599606135372496723154621647549736200756038619876434037845714941167246297154099924267870982548750262555311662008869232151838706309041110994552631133409598745239882340341298719828745243994076758604645797557445081721835224365292866337481111066476552847380452071655405710054563825908861914273271735280751116208200572352984139088538934281366191707119745616870188919376901806550565200638252931682375872098578634944510505574201461296249451878371416569090062880062741589858049555776083952665268348965028978851177278327438300694411890457861037702276417721638043204057193167456204364722208160110984934323626193487321305302642638504765388637203563595291376036318915832727132659530377060893218508223885288880110873209610647220722180812603829925221958426258144210574699115271047571495171328558824691526751472629256418232371159122255799180392310779450890351673679320871149201763568410302877581029941641951142547434484089109096178996131803044818361531146258552214298674436126475484208701405087760164033394774943770307779388375756043668104642672465708560927848044586855509331012261043512575181509628375321049620771471926934050561309371774834910172398405040883939536675176258859077078493438377162763992836784006691720598576050456949934384321606115906552186861460848138231925843335825636217631045253646970448735002855079964698280088245443748100466998642837124245446353373255550036431110650958447638783572677198119498925849623107417769433058765930405982180282306459665524698681875173398988207411131460977410946429016822639011874670867240751413179521058514837677290737031301569565009394900279802311584949895580651601172414569410716553758004978372043475231752573091948990592111565463848511337852691350979966187930974488518810344889618367390804962220040607450151546544133588473446584763484593073772886027482121248125286809676144774455632666806637205986530623909282005311377727168902488443322037836385928572308903589497714937808866488981318705510725210839251669204537961739845425433147211309487019994212267874708322585250312065823083160422610895964065204093608321584254789473357878745200644191165193798281138814217328130819433758295366455810833004807172789414161130059595383744036636531163239252641407390158624097615950103363246340647338077539276824653645198684250586727220684360320124869580290365113795040291240111455508793734895871605020751728502332975356740076638560270961325690280220459795577340222571803220825930408130198794331497163341152450162446752127080263519293371457337074518651223577625438158349097463172437229707800669108862336713448752835883676760248232927540516112408986208818495128504051759909473623258398689778674053344476768807860763840939825450153412314956049090838186759516006788674175796689065215211635030823053273819839026107013222536038333641470593550853774424581860494449132963164746584941615853359141179300818619550930420842908384564379169214864331602489873486180737156555462189131608190970875439565196334450021301253445571669495398736325668422209040760299111407887341518653748303229414434783031557679180063111711578865341846122591336020108581254011663532070904861937104502182748923084762212783318857418592552466457073756700222411898831609648239897810678821050822025503969553661200041527281943224198773974594480940068964990098439533747487337928014672459052356129880902694883072851662897864386788219213754873362026380621396432611857338363120669526240275258922297935012834757019037583487510899089458170606499822676090242426446281487251896200830828627415682513555679944771361010857373718761012342451875206773301394569374741717912400867474043514597496404881925920505550401557564620232872085518730573044346441925457509853397515437389992441570764611271412198892155585231545562876437036103298767563438698029496791985581796640485291657066016538960039211946896001235748583362081391923072259932267763180416284219474393037337398754185059340928529197292586634966521786946350719988375353355941269165874507206563463795942780859950796453714598630694478122362975352760847481512158208957899094469876642073063416426041132522924468979307822285278791646867402200429604974500969152568559257057229121722588919731265535315447763083942326535080677583808543314895815313761002087730118670692806043470745377095427451725427080074386214668218282698341904373648377306671599774856542915279725677062634552180299631322671204659136195976092074595807661448158965396245044763489928306158447503699328559849959924699523874976633060285987235391549507428357105200107697741336694007518436002392403367773745341632644719895445129726191498043763543107705367856250999467663187606923094206545046287541308541578404185319882440076794610285704004378682941070255882248528339755304322217600411320938299592652903175186284870340018875501470161168268359730226119963606170693383180951650980623032620489003790106464764882902668864995911406464799229967591904767708770381253752880208867382014318471522177118987911118797582257096540934141231964059004484197254865582239500028094549674523954163427765449876998454599832766185919486669093259395044217787163794956367505982237138699432105595792662877799229991951562422293004282272447884613450829487088375786713043556302154781686266305257774334475099222917405002211819552949501753563994234590958872720962786116206680655376030867383455642823051867816026052323293949655682429182062607790423474845738800616393148933884757362051417972433281172866233960959354803226369728736253105794933247996570652365802005270676201873924208504289669007918235999500620092612126889332358333969832753547988908810145815249713743266322403178177249202115228236698069844262339823834789421041544052676851205358686964908146609099739712807067639405927609487155411420074681273592312521807529267463719426056521790698081604961838154864375806673523280226262045623647718760301357897048200261436221881340781754349164427195956451210605278876176075943895350255749259300222606226569514247453973070117075286082238599060637833044902861946223749542936354509166608179022978105686465719038405005892811873530468254298397198216855358181017968052758694807326409688916123895552133394435538974646798264451343964837922595375375096218131370456622880262785883122855087003196779682287668898229428304344657990315388344762816420857229254567064364496826735071668083465768299084990624543758877584940368112776803549083415459722251762816544062329785102143654551492210474549608195914424752276740416832361600288454614922170491513379855463135476862787168510140155295811221901511817425056585551985951704998247311471075117013287568273515800715011049733277859110132220575074320970077791945621837711885810871620243015932684296715704613162988593597779680412712458653989498172465027227535848305494910238553577444873767117243164057667114917084796117776195527292957725230930862417154038011888090107318824784306101457581162013626077775478631967054533977236925817598065312053131017072874699519191734971032393560674636096811313381847519943077405349015612736287104644938664785869914567336462571280630555862892803789630179549420305487434945421119457114712943107783065314185436049106037070315903677612119956413269867909093112582667061612666373848338600401855317034815593723328755244765183377611712043662964771387319405100515270259107364328123028214064558843555169803879000550956022410094581726933977796756642743462405068671614007805014747896012259754798119715323342431387594937674559671619997346819395309567031123706965593052402855483697996912129983734585991427908204061640707714761383747145105459263126658434306640583802679250987304125497449301346830217694041271720781295544488347256499347237146654376573585251071427444147796196188638390278464959658129350213167519610126360133322148021468146479681587825858029400449922868236240492364265394603197956423951399519661073004020749515386546990423736272495330701032454343028060217093460620623072231641128704126723633094134330872139451878208425356977429256264997461334681836312008835240067595445286975104616398184820006419181783623252242708309340470438236697988690172777967938161596123005037773203942933431627019529501050025960914221508240724852862345567004323354937927871517232055131182198425337709778412186908538306595509790634925099511066251191832947833561679560723992785058392483005080896222030000893642097892145204252299067263164784127623368121237738911058287380723287241193312226208911107065804843193596940517623024605290727533999415207302443676617391005721796019031681253656261058911461885233703019537887463069919522412380555850674096510300974473345525644771041310912949948854100588617328481237685158447455553496188484379277641090490926204962498740877441270352418432492033296346347395577012161748544211480633976502418741083465976545145982624144449948868773106863622790700953813885580766348459208175102137918530845915820073793381990736721929108372879897558993960875312925279787987638694272056730234695991946264099883229080778087259224333907384190801483472827627917312937404547099727717241347865404579251021698393503091262259533181470864333143793200137723347525570167987176572106300378929951180590239378158863094987488419984785864229558421690263086364711646928013948041806969707959371434962123162125759958163045217544664974266155174706644499486341234939285189471366017957557737132648388856896838430331342266421282065207257951406261073497108265865038437849347575192941455540418215574547088844944807468982840909916400632647977004087837630577872063662064617775743682955547674195586404224961318930869992161046809260786680174002951863596642031672543930428481061920272293445227601105485859661704640405447894462036095552682575947479703980410075708770990487202331934582140077869394452146499023480560425244495405423403520018643629251438318007990482961464499274478530759368317857451353718917302883627399379687958677716499097375288233071858547452330312436886985212905034342469036419645440595838105581243936629404403022358217674848834137198089705404675106044404181923418311454467331462930579300114394674282574887278807585164901086374628819771541576201363873531458374320251772111858022370601165200624738647780715467166417651235678502091582481104632457157263289234166106305415039873164321397948412302225868913359882383299741936906940170906679611695905844240524057188631592147515802280409736926267700687897400888699596676890065155880283513739232065676906272049497528675557748064847077833720458682038598498784117641326677227925340992454613211219517006502522873355491195044294256479350875299594554354774368305843616976320208139039785017460175293949277512329152061188352850403983849807086421610651027579945355958020728629478910285157962584614389047193228372991095470059778533534981990507518924399717838382093965067271620695592427983966558057225382266416547029771513538138248767691762966505467657331923005901373451049035816356758932589597721992898491932398176545263717462401828306247720538996720221316523515122196700148904752276701479140578678859377125552089147560668528976143682082917787268860588670394910443197100485590571514331482814461664202429216481118318716764354956333152945403757958270278853344974156545338204072687551145076670457927959435701825176826499436312584323489780050646199541561753590014005634961384920157973364634494842719256363726707199249090129183731071163722607823023496928982339299061734372743705955220611553205993551426652279532459108865413405507152417589753937764749689039507570138805122411460318302317698394871614772708820639916521564701090876669099353408634241436395181948940829638557859295771843147820377212682661522570664933032658184235267193313361870507114482401743082771670844604162643284060914178590462627923392916172443222961410561499176009303067710292269028111806028341680546934003904130960632866138226547697143405406806239915848204191909161290037127539818778492475283617784010493952076061803337858456283251352623994126137874628714880151980387509635377856628501374194188830729166043261535288691337017859837382633615867683897430921714693583307505886788454557188696174713415033268108864540008181972058905441267973406863083335915176738128013819405646976922541334016789934330764729603290810639490103403656094802437519749285827368415117241391121820734092148091902821419925247824459075165739135590879219116273491042432225446881479626679477784039776016601613805004943969009057432167734497551107128640165891086444380155188445073425402715076028499517605718564674326721424071381328433139099139576313377819439908912453663461039676526556448323334179838666754935784678351037646571419540224066926674007417022632138166139147918493324644798200510902048316339002226865502987735963819962256519601687298159222672791041620659413255476648716734640040468428145289735024379535415869535412165097396268003868253789366838232158467714096741955763469393587934625132679228057042686345446775750353044961153910170011910833859258447431148603093358070519915064839769645204975338525779028315297940710912774135015942606849740643758042794746356290294161225575925707056290561081641030494895181595302433997190627541079700628814031024514080737795096887345579483012637841633907843283489212459209824777718063844580252946069835237663676794937002581840125644351619432426092614096763369239599702974437319014918334027341005114846227620235561168454007174758598103461098281872474765558027594400375526505677100796845899439622824567047083488862415396637303688623830915373115954909368311464919010960823176684428656545906356763550164603764751082304041146249971964220937915178146730033392047494156324031098967819257942734511719869230547618015187857061879250707709301696886582861398222785499238056936018086676410359668933425196498699323527704267787588938714651864340149875776176274601203438338352785463030505034805285170782649419231470058120678146398814992933738041576349426633361745578291153397635007289533558458839711256713893816011478726376097439525121794942382500749587350713575966979220077371938083173101902892308052960523039707636037343859779680809296370131055658860289705282550674605743563705069621293142753243313933640019441082238590229821931615922966251611430883909611641821496230273427322608175031230396762669791232843862410247749059894067254690112725834526564814377267072749840993477524411662244127408067403446892709177701631235188841371660144755211493513548255030079466501566687711821435175182292775358900288897465178594824380474324864825794449067828366247460218325664521395029318631421070948038671490110381634582496811940531285469374354121077257999152386802780125630712785893346167448016324449658762262074369364698885786225323780351515292157363551997784847740462981956366260381701047024266045956040019842901820448422069397147211060851467113572065991243050420344431882650823248282060143932546207376934021723453855757473213114450796481458268332233984616813396556278989304870575217414867882633054455113855832846303510109663526270279790042145727558284115726613548543663101926167500334470522733102008691734312297915360859321046256425252265655779813121425775095784358450861154391812128070712796532554861432393165623227102452078422051882692731280237534561559064588904061641051185056648153402605017092950218881930551385868810872926345320533902662390707729987335621810830182074186532272034738608120473455165065113302019331763918412764411482476172017506620562414300518097264818207750933764575163778243931988629126100234003861418947241053335274281096153372672136368807646597847385852112607406795940498685943697947805366297735323097974330766014913418904026914942972578599162453556769034638613149500145086046679896656333284633676527308980714113102706841524888010757998135112329160762031512727761935615337627415468830858397640913858680589516937225800167147966096540206363836453284553948619897881154074237123697603086932421764658981822976046606283093018018025867916900031011851292302845239018450621077352443413723170547285030030613459736520167374817040708532644763089439214345992046083032860998208501644903088983102220344904604511126540478887927181014404299906086544847079898060115090683853452406951500352936335358615153063002229742764808065036261710601562379740043922225027494950029234218644786680306424555073328062081164263278964386865023552565924136471993808433868648468171877828135209746872238601356526477233079146666138407716981944470858995634080119441953182754883662624952890256315302035388171189144659381818367179421297507791866823234134212592888585671560201778799180499308977052040246873862986584678408374736079666862620497623555459822500402962750122752105515398456052490551270893660126971720329574018677104432066606322662325068434067134849011327730930817836853830862761304650577901202739720478281198269562717762946473766468188924755113820030378572424149872022882597030436256811329170090483186241273992925294238282571483307315911704785591024564282765789536508173089020600617417911193301762580532348580954182605253188791062277061727141199181776697424043440679232532825483493759017373144989147155212546215238558533253538776291321431246258526094522629820166169472895431481833121963562106371664321701787121774500845323894123678083075549659670203172090587536090775133562808256278039393029145329239097567540909336875688058812550539165675855440404554425873216111981533352042877826291735890706443079970738652134041452028878655718891516393905039750115066961088598050742768287635365481005538414192028348970510771438107925986089111037760171469213328375985965860031461683342887240555177797728387854297842386620165002392174605710053895276014592728007165984782742859265913481072009210762088350326321816657077534674999232719814861413375097110391787048675352222645856755582360960216394092539427228545164443444949210966769003809147870300497563792218534335687806739058059049359044283262510725252030546134487595253201324637201317201702995480117513752944294856859237795114793771341546700598228464699102599566107184401454417339343739324402434130890718467171701014169847378567819346773949203580252063401677510496259820693354702793278947929916091410113733954246054132566594099322925935266878622531198398940103980034438117492366626230812412856823467316769246248904518387161102682952627606247507976062143128354999710141015646646246782105046521854855934126583675993743171919414906801487326368952884192439961961312639458892893760451901163636354866692839759754086691284708904518460723519340816899063286570830153816111273489416974644567470959895895779461442299780203222279903300075459145455644937178124015251538722430145620516412662028328433810847750102898323170849514921652848063404942639722417958982942123014946489869976489815993554652845514081301669139559959570914048644374866561907679630631929482448422470300736126232780991903634152658774177166162294352081519349701186426262434320139549203938652826332968245964960083170717588980777485216588452304797109291231603753307025683967274154115816521160001894364455633493021059236438922789133797712771630224493116421130677297362731426192651552835088003285947853705245378051877057144373646938872875425988844769724288361847143339643152687173273069871930239800608796095099526265026178207014035551136035806000492842791359988001575413705531292630600390867299698647028523115350192697573621270454101497313352411230317527991326007821451443554126711702830913612244026702266989063195218059375455749745585023170637873268130191958357300323622112985898882201550617094058903027038418134830358797673990065763241581362866467116330775330343168457575422891728245068623893358735222037505430543542384276577791869389132991415108918122495090568731748728299895593902057179116303795219970319746490238029939871511656152497779646873154663245047833533740289895182028506307252236102253721241906085657670710444354057562331706120121580465566026170470087549210884306686032837590161856793714324490873790353751566677784629196328243873312306123360653917403516317239746561502658707638860859393952161903347442860795092372426714328853717938684432323786532237549845756385017242929367437091650546963304271527966053351371101643781080368546232502123444892256353444565048978360115754815315982831400459753640148274279244649430845390987639316182835330456143334577153477673381441087388102147366324588623229153734431797699437608513194517836173718688323341312656834406695653982036026356475426184009608743708272476965695881713186407210710115473235529778796385884287931080931259770737763112889979290627019078408378483797582705506269843417958132693594071684031967776514507056083664336048150973137672877097257315345101100313728852503057380895022028603691453041375664662827263521908455078895110288083215104453718248756092596847020329979189231523986646138450821455356206921825105047601126894894647674535051683186713361515678475842507479421193120662411565731020633909855400052053600783027338375037929181691531137128733501127643236930286368338101861227280466936659310754316904323477599631882751828661421615546452192836555137109069894546616848232692887711715762456478260283302074923055445280992535794730120317679486690686010023995436708338715836123957401425486265202184808942574454693191916076586785325015767360972562150906364170180458740144278037583589022122345837487702371594446255003364582487716680582454027822505315316253700942387351529901004256732465318408669572983800457699828524380946188495460045528027175985905416096223488531529529541098887999687487768101039845965278918918437064761408631931756028115954983889036751614296040415455689957392001163448689159389907006202447410505064654325759489252133648046630765414525555859524466149305389557042317457342471324964335052309281854756876933994529139281159955457599892592685362599128540627857592197554915885606548096035594904997631085743721179831619268708638451301041733481645610986950479405218319412141183576703715151848130242955558638040446318999916701460408445990952889793656840728499258637207957853350835927490386238833786025998076610895017746444089743254336730073524345786802581734306060450667658820561407237020019665361005740106247025326040065527776500858766063611355674943125463948429526335405793236895176502917021913927014820956933497661452600487936654252390894700316599289146197746640986713339139941269733153777551699915426675444021840595154255299063527025882901377397123365129103487498823113750106941601791437548568796590932253829566320513419734800439235683418271293344702479006244520011503260112729827816869789284691959430844037078076152186893652750112025254126954607129223409619910031364082291866030974705256908847053034211632395068930043198205553582015091036311757364588736176997768254894985613989533073097645353223969871673502214266316567974416363751140962514883832802508336566116463050349668353317820926225788067871897814511500173441828473369932322370721396081917262299556903075396437902934646113555048946018244747514279513989309108717361266374237420683243059283760660074328951017444665419194955521057697883257913752509559634658103605392625017146464499161412509078770788944456657299431196881794153622140926977691158630965551618791927184969612626988727700065721187659302938836611648666628691944127156730838727136542786710599232163115534395953491599586025657119022441194632091832200785378461351450497294020683984748066658898058898798294783590977079135245148071855109531353932493623098272466923692629752273904610762356290556201899502875031517815174533515662549854449538258651451285911933275166564699948375777485978028558613946034076655106186662187081971181650830356810267815399993052791344248363014513385700894664634015295967327747035241419639800627686394543624137600965467917597180957317279909904552501861738467602499680923398107250019606550210800152083754219776449854892884506902373136323600344178335420789611033663855387666359363921368098964568320357743962408168751604854496082539353976283170646142710991191934617681895596498376156312922688745785468090679203867995361212245574623863668561369078826802181197860000745809058804015195487954700798619556305641473865518315586160568424023513889085875355376744848308412362254606001532439721265673117240924599672969976523211695127052005193488579185021787686860601119202505646117709248378926346941308511031071016168268838858588413040831335514352139117751585852606615037479351888385772224028041684703540767436991957856286092426364642165080309848400345702570453033668659376040358837302815803891010984470064075736440416071307663489489746901089906702914420126260383701257831231089063950682511060100760676726410530170004231184429505619828513643858622118660037680594123489992587702879128382244683823926608758965599326611109547114050551276072355985845639272513397069544695557287240733855337280836571497785263954526849368621612912965971822938571271286597513694044028484060641912833197683280931418426590877254870779216273037397419049305418531048292902723694694590724822855104861648554388812607695585319979432968450292652932769319035396215137494999702856095285336555161593929715164312345950900697603290540069439094403831449193318631006026257802669281582277611789054613857514997063026103253743668210843222042436143827245066835938662993969552149517545216122850068832845429963937160487039354934749187480539595756855280959386849528801652979897167095967229376166981406410545301200037344258499712512593270988300230436477628880200327466852928648179721493674965941666937726370811921497329800316918871423264726223504289321402700929331455948335785362880223093845026180300202750182437240656039694250975594493604709051015010251418888816235087168892485437450486634213445283799398170489780026590757869313166502928465035515077474778892714198981330239570131337841766055106850107585927158653246412319309337748847737818116978843850762970235635070716323023446988453851023772764743153146839153180630262870583416669826186973484394539958644269216564536748389258532512710168328617940331847783556638201283701213319309632298208919804432884392535433537720426488239353586831920567784180352104943405572518260312484221990850956312676437309794040073429013028465075257827362516772525766387366082117484387742577469434007228228855467444204748310013345729907526391520197769605381453425534329352064925527287149426576652691895749462854596660972939853395891864811376974609747901011372322242794187293138753423127963303380119527959108227710006873455052858971709858180171665050801671070544763991596723433458524686032765121277750470147552274831130507930578857527478489099296900310189670430918130421279477342705734264581790294745144186231779751562741260713714671718952037273581009627558478026342476348351034143057730437514863241155682081892250231231707901935355290021324099126813277874318402947605384120717169857221126437831145362082532781328456747186816984550581214177912957154411065426539534729424077950337425978692971577406113859398489112904453085583922341434906789493073844653284955209117085107428079787490276326758986173736585952104732737652230556285954121406086556248208684484484865648059534299510659831297821485505885096923787343461662487202295936921806529959108071826243856480889680253674911601022820240060759915713073845881950518333345480083279285999539068898640005091847847405814295897868432138610264119640509353613619227281912165667777859127077443525276633940991970833743068281443876247424798739183749722433477291663037727602523064559323412608412043427141741881982412787747699016156494357445558263898818194800647559069602710484556705850220542920348014561421949816217091602398949876438899872076512193381257882824444216744843255559348585006168476978218413999178554467536257712209767848742148472778397887189950449649878237767226243922501228752073269110331007015104365578740914612382106452094692447321380736982501539897099348407558756897309816930161326182623146749946849635365401706037414926717609019199718266200087488963042715406789781793128223022397019379873498278824050083367334314712445646252051098418769331811254650730707806144874833354524999036836549787045713636483547455136792450749595691678313383086555203908078641575239713249565438962313261178939582741653944617646526945346717934935229413999840560633134620176760850660624114191802661770381182457388003238309779788931539452754838018549456702670488444045943741021680984409256039228875453929487293655072858167488040936976557762447724080462946312839315003746375258717767517822231612509585519935960969638885126852433451296616212874251962166154243715165612496689180626088104268084535473554747149606961060694719788601055969155191310123187212406532792676215085400806449241216641526794844189457011219496177927997541561409977108886821535229322791581575930289767972101440291210859670609574780494071156891690381553519652085692063412152752063194167536393149349449263528261870594135136187119514585280783518711458043776203326728796201779474653060845731949833114691863459259719027736741781158946174350013223871946611361856235936668616561207597370175917118409167348317793018825455888958946957628256412487420704633958857123064812477942472523809806998103685103235877799180493643194725376884397577905309710797179376060382161748180771878243690727203954468506485402327219832048267364967018033835891770508388315527716902812922560228385020543278115276647971072024800932461288261533309057966693926371955913802310900646959174001063795037977484607074495590602299916654241564901210240037110052205140311094400076931026010266541211897331586922423831781049074537052653205743874294334924004870746820886512898368818876205140432896955923416947999022174138983185656793564502065259741364192946429284241348535792512869274177043420757396242495687853575797924410272645527333587795354855552936287223981008083886273577159090735447173543661925460471333079501790080649857125194817299940254530651009260589684594666830308996799041843349630368802763280004087753085139272838485584064228432088944528666974888372594627985398400627316920628522542414907116964793375508269259976090803682939801207324563242332765080315555047938864487238159807021729001487917336502799775378336245139500940833364031636249153532122453325964704839996771990850302747667876623441053973059899018294680321843861404146155410646667860817385261013659499447515428022702985864452012653756788580450721180468499599235581513474237022306432772730075466322250028958492415937177112247309720035299158977645081757009924956767317271989983238531905084444643911473894850838458049837088476760221852213418222122965852141700805627991960399778429594293669645889016751214939057447864461071096347800245505044979201732254813809325872566875609637979458643972093578153315106039008922613566319959878262438591067692322658799673569831746901389417760900210507925144632926065567421183622338810529074112118908325540958502137064428114943497214242938174784584543740643469599239860816574271621564240797323866518812718387055345821976642640962760218941031297088539466713214698405086685910625838022836081655132987262219806049076739873627633975506835503986373394862107706299814596521869644130558448609913169914448920176332020421347161390355146730782346924544005809385607201457483058846374585737132684627867922690154058429480514404422659895438267765797751535350560829290820863047651153547043466757681714591188504872602062938892358834578964488976457884264965030854892750938696435142386148235786455331865360167581712595469262919383765619108204723873935611979140527973188120062667117946792935829247083254050995385906218021923015056590847278605703483453359436995373892926523926100806840486266371764862694755775788940133122361783943130674561486140533874692007192015719890328051581568295594490928300374276934013955517207730339425160507017278395678527984506277519836470479666943243040124305611951043875026074511168146391485756907434534103301189897929251707451007525755192540457886893022261019373121831080328358614316516219339032888965523970134949180821027231480074806372881063047057081554454851214366505473560324745588457237027557405746361499142341585593830988964756117284845828116416870854100268119878026820758136704269675722375748532298993080497581599012920377361508378213386113970749485060394469266456026373973098948964665112989144777812679379964001899998673834310503212282809692804272135131502607833710494934154156602670810557109094156198265233133351401412010916508108811775543344313110582746359530874176222253959671353058171324957902878305710122077079743546691077717918872654390112406906567296500793398051833136068516182935792257792894649693361354673075019013052963508984463876541749240825465189929547148239897438800348310109291370806184667645787352213434516416278919987524552644296370153129146391509144735751482445145323652249654881149066974601165247536062164700051458717804175094430586553194152931209424916969126212294250328179756274540910860049342467723334360350810982304602976688658575344901822044071793310759788583644629272170993169419655429185523981845520855970836643452104933266687056995190195194565001011300313814397247769087197784285419324394923411712286831390405887939298273536260027283123559169118471600924992972570651247940219841785651600745473660262759476828574682757983751907909414120115518860613089387024917551936298550966826709910811345100850367579158748974888226053437376389060471309530449459832073842745019488761680875225328229083104121733724053367797765296032855740820244330449241538160157717131585232116254115417040686901979197140947626009079365855656963171654204076913821620440129142404977677562371560270466245201384659858243610984038485526907512870156094590603292323895166872462485296457700571984252036414583212391883361601389484394323546574220713897118974138492679036762698076479399107495310674484144026279229400252104519231573655981101770032584009602137626191583964283249830591946531389279237496201547344141626448479596831648529256702793883488695904358882934428152981807699893732889275879276178567211234656115357852790067653919736439397982524264761376129885281367020474471650904196626710216117504657075116440871923163765098458068825067102552040050713407381838258268629971248429553683072599481125192553187886966512329992552164162774003227431039642723583091426241837724680777150656535093795655370321725475532991960547505841442422498746779462151561735750607588061213470204720984792483937389634106568791266628301481420033588450578799438102583703180900742684699429060459534808313449455748495348834015658416772890734849611451673024227387417488838902137309458454325679714464176989544444874153579143164954718530171991483229586706329915014774831690648296371935034669031379279451171172029995370113006804810501505486259934848567105960863994083345839273185698731818109081875403156758784307467782229783719750262324716654965994255984996805504792979959110920951097608390812257360358910882628196009223933357235875553601760821507614220690617964454615716246773253224071959874263381052082629231944108311186036926792700736745684815654386387159429237720309068650959478186485461279430126338973861618116864666177465135721188383172008502663972121445764873329352368530337532934625945158381148575636332966717976956791916214616155283738727659940694714718157215417959155351726135619865700700153728069391604720270514569829348034400716843860898292255070798352588021133492819758253514350408245857383634403147599166881304899270739220325535322516247970969733186669357175259506152283427589771318996603301973312217454242052390825213324351156864378423171736976057677449998956825306899103235279388631629971311752637738596550591628722933377632845433653818992620681331068443008749127938656921497506307662095378841701976179054609829579201176028249461696823860180362233349660881554124442834754453709898166405486981998088874404842271705471537033722066034582488608273906816544862104624926125125608960651270279337777158953768691735390558626867452691709108876582455126434755437544827467277607263221198628477386657474947709232334306711713390319472327998580953245898427272128861084351506307866868547767393178302479770931777819212749878396243458587938216317356207719073656021717395660417772224287779574338930172188267444528835056526340538248950855333200419499351468908386949516984871511902964858449126104034343722062056643162983412509897762584694161357408888761180417439863074231001605991800626180890755879914761333232159598519001189448575731997512934166039063049186459772463758396952958728505572028629723023035774484444282933471300316458494560208435642215156862269916640305816730655224849880269813947061678503224714986793251179996156442221396386898605851838203371326206113862883274760384480097008152381382856938330140056862969708431586710304161718675188022054350008724816198407457637714712851818490993667568291922021115630579202290629486336604296535412178598450864695643904385026786055390416516787603349119688113566221672084491997929762260892830559010205850982529924529827437368191659438140538327937399538227971322973831271979084383409692646695146688007082705396439936502993010197392227453326015369926177635253691719645372505532637886104219405718952838515906731667817732019083896436110637948892516887976430386601699943405079607896284723344187160911710605996295795417979787812438212257314011215649100337295092412592991673845530850633023141354295410748062548668949563685937127762368625350395058602452230485023553111178618909709792495235435749874675621400520081704399206393222839801927164817266162258563697760708066571246544469482527943774195714280833352198522999256525719717558563120450891283764011742292326512427636526213595764759539998032061338472834568373184407834927749140394314593275706741543853021438574357110929235311923914997721601193326653869437233684106109091197823576056243766612675997357298773043997077064603908624232207575642897445754332750355541433077305156067216982420610864748701648565043502266431673212589730852444019108121720800850190562031458651020783869187788921133855918018623585934505968312772063001087666523708847226162167893626541807685695104326948343567208421966311442130930134027447845372774615964687521502995164412659611532054568885051390661366314944635698039896332955144854866271476078119167853855795919571014049576937661989580320274030497826351072771526035672033627860410704083493473411071731827972413489630847814897652847816173543004771068528204826428279820001278976128634413526085380398773804032380930771485394024185074933375720689955402112488577508494325399560680908859151267490136394245064951528391309316203920569366911387314625206965280227784463730319283188255593535617250272751703425389256518237979665387089582270791740163503923966989923902290240427992143675708184710086259880129480076517238357457064991035568601242634105848956156595139574103337742081442333758354045859470834991493457750898286463279919427015846672174997500333399919287241114111849336090730949813245984107892065463924732914174490853545659609036216679647165797288082392280128533884378023475179384168051091737865693017470185823114201754498969523074904708573168390440746588109136778817759015416948587040533837548577876195333553442013471596813449463182799803104997454965284108225663771168976719226882457238793960504783655513852113935719403524372917801340809701342294981757744357543150443950874303745322781798131220915095815486001874980325296370661569038482406545085896744339334124117437159731050013600950717543980799176662276824633996443010795719757175891492145034580117592976254427300251041935360084162598276788212013397578852230148057751338691117303947019637989601196384880750481531888926609128945023732735904074400128006215810839926232725135786774289089289399057818409566063118457200042728758249595235894255423648828623130407972588499062085606746341284486017957754784152202049197928231680398326845839581536504606451118974651494373315491721720086573519198679874044294937271813711720054410698928619645784315172486357385508226174654842995712154099547349627968818201424611974057654289433672982191496692336573737693485139228167333038866051649630126618110425309181173614953668223543946482202007387645517901075520606194742074174042932060073607593742048507011485439440229254308873295268450678078979055890215837094367831231146668501473248695295087225345129844243720695804930537437986865564487891049944182185051873840961225889221421483734569808132544302929455331669909233227326553653017820020153403184105537438121246295242229233786598321541465007240686611046446498517662712176130512415761783881522858381614014295378566548338539519108449317307771051743527686108197676302514798273469080237066633648921693253173126832631973359098158023748954580895233631786464793456547219989823927725740290464886688003715942406799517958428883116006551179751495072963160840357298445260423321727861229751874866044942473508279190464281828712987560321933097008918654719037162926055536088665100764529760290003672313002032570544220234882097887830172392906845787006256183511949674885835835873240072682304047533888476929405502904880754067879718904329608668458572827712989775507267732378918157887563916728022470950047018107145236123801188743436044757820374092796042755058845533501003429238515781317154883211068183806824108098210063146876807195301823802040454438862761256798087020981871371597310561480029631161897223233447528921043557671782858412329347245997537993400079709865697454147115655595884988575846656484394229074133996542275655624400719410591318895711988831070391511637734157758638833111836632884181285118696575298061696434046556182700447991460152470341338915768784198342898028980951700008288797809581492383290040179744170109442350682205338905288344963543680770040068969328973440462103004156967195705007276209219542503625455259740507368207076998243647608725738770848284524523374725489583552043586611627970606271271421848709269449001578021907578077343189125722963571849575268423105508089784500183690517813150767320395841672151379105668448999732568462151674508822360365115001946255499095609216409440940918437873599209043090110465001672470765505104051683053485284520225902418457488920669925008269276890406313472008211526360285383997733812478123981489313479986263700539032055416568676777138728525699947991187233934749342422585596539500155152891682081086953031928231549353494219022753516271490233625013417087328450299542386203486030116703816428318959692141042648517609998432396708330852246535322038264395625833851581281634522345714772309132952296958802093473735363800135496477752964752967534299656749305038400013290201214646181557714791831656737759684960412001661507607406340953311661696260359999762114750828731464314775700967684494796109104164515193334918876000183632291101971379464727416361949431191077748710186200749930976564571708899316151643136693981702197378693148181180040330529906576196736826669856432860795720329464403842399128432611903399581575494720902172881290985386109204742541794917026804773657496085912526934197977319401441542979908749525072548647909714880746249387855439681204847615812116031460679237854487249693879979043278877112509451713888405546236304544837093526215246284862275788236209397670395317833395536840450944513027780817623681924329305335246478059740282533082846661919349725849808042615389540563329504798747666955401850946546231326813999465556702545970331250747212252350743251223052603914663713818149485043229851173612746750894129091166916508443392880913884552554594645036811418689414230995415454164175900868980590150779288081338748022079932228034329497557219844248250569958040258074871925512092121254241561992199520486842232536043003740672812507097898915070671011622073661289623662741301754228306579802082269681822838130314386558638731229931656054290239766519452237429780735825961148755715449385147686507008394753637852524541808811395018666067045866427458719835587592536612663926151092286978016587315831427381068643542907604953566116461108154018341632234278363244498371815767205439338683055799496290935687224482235250813454147551207137411632613081754525843378753100851553022579845645304453361396173875050624756320778809851512566897200435093979709366706809097922680388737181478775136697886157689566524931983541856927986127054340237595381925620266459021470093893319481431137086779544626516468382753860174943196064399283764029011673881508885864338138868083952262162874778495849135455919011010861718855118847723433682986971458168184311963480687720898463897509338139580466690379699690563268153293380346487637616843185942212529684072871995966955430513730568426975647672263915573478336950616801876945596395521951467440217688069834669666485189881244211838051036626977682594104932059311627059512129336842945461599854592665398498666119778591378909403200427484630939605775957764011621040553143966652076776765877326703886751283162480025831421882590385735868666793379359589620054182886628928040304421915270261812464543182257749468343761529525877653289736479900574961389556983000258370021274497726582441160829060920041337918735760392471265381000653903341743194797526599516860839672499305545015433059066037952978171986773902942337511305816441535960109196932116248649639846870611079144721163478983209816568769690453163235618832582188243482495662071265441612442690473457338531465137009267587065365382728624716186029634944696332284655852113336361427314597102285635656337313721391077870638303131337807472734887873246716250765557529010060590696984758465540519438945796303477230567120137055447919596701254230578972199740617013190982997341726023209880059854556800420449017930947110216970986135498558130765962281913260460585326541429726374753958234025052072749040566676516628993551601631598270002000044861309637329220906540615791962464209839831580949560297309361796014666085846247837412012460259308174008539304368367705932079649542587900755193740559002786755826275752867794141459724506403518612037469578098837675121153258929694438326758478348474143934533177651370031199480256970653720961716573728599863937180451583202802532539222376926000972609924276620844616436279224190631884049712684655427753309720363239206149987386890781401867597801871860815910898452103215133471765887555694907479877750063744137710483362568637057720245329533096699021705358248944686756626507507987070525337704113821498171754808981563065671346267733328652070180255990611662694946971727269726852269527749613920205574784055755543159556808817447063122022861149641869588217961997847485747513847190687282535197778335257842882941997170180349609708946558331448225607881183377805266637354243219234826775473327403931056491736550108116891095270603163605229596824615266395882003312505844570658985945697565397646093234831111269326551387612068242348041008571307937630296444013196818124861528773579539780820024197809341029160825077957613141861598704336824814864018432264507202236991686148883209446592117692301800939580494400670822565626326929497334389301451574742806671381505091537522677301626174332293229384674650724889006792674215367201349353814853619231211803975582798615979934057198537767097692574688009680997406428172092308810488994404738134982125291032604847675755067630446878726546394946633044151953195199070892909049660019851876571987321503044284966696098748854779106369762528701244718822183981313193099864378774911679731444016126154062290535509779147010397714800443960757374512286194132883728151903542628160021113343626169646353339668209341414806939128344644770872212986197380844642500615090657502692790262889131833057030230148275177486048971511952841579217292097964281877086378304899495252929134861455961359467745331344786064787425016531855864302201035887085712740760702205351486067207558702812397137252063165509427848721375003870879616233816080455769293455474173118935545535986894774472258399600646296350581692145275832424563734374618921067154765073279912160614149275794900911022634167907862830041623123381142386887535688483890004609815261422573309400005563125035545704933703413599690066642986235896554081282377554689101345553379891814779454051722434091627341272495936731957368231255117859773695641079383930454927681426270388685249169486404147263490123738159836812386203442236064794078763775195471012667270867509814796517587598707189843502979817518209601611314329012723738469967573417814577000247340352632794732529462934752821362987589379566303217992333196132606802773348482726083990094538745699490003785801074859538841365325248571943230987743381313280357356552281565122936568166746414797457819139335155679331084763642610124815768614106741820520309490212265946980190479016214967842120635733684448327705078889703733562251991737821878121912754757871824000658294035255996577504819327677936642857781509618484137758298132688077024761446476016292863186871669584067292109902787339738892659340836140610471164269202540881992027408291942454731097844035706035425742269240883390336073909003603652842480620598258139203725574504100589608665322864042193188005223805001766566096217277599179909130231888747137255463517903064404287613715446920344611972284184130538013445926282594864480526570497991286477391365930452467531724636160016305089293623699562334992907335536936046771921637878366327179156159294293259150643963276302500027695758177019125794411096957678986640088506196371321183684965533232215621326984575048296338872699320512183489354760246778654058125875368028562393529333422938052829829923067396440322309146159170640718626954100156620439288781167142184372091124572680428113064091515288062941725213268837940071718283949979977539738418005075883125620602049399294004674859767634390893792783411332877203153257317309650091146890192443576369737725503283651677857728855136612819032681721169646359935004257623081272835488857344614125794677040531149370800025647151740466972966129198479427324582158441928794082500626527595954420954919585998141275912725838365221763201948900790331134050019864247547618868884999700096202123076627199810261061403064517316045535492093669121428384171393289163988440187046053087206072151292726196336880945621292734093765351564593425923679939899158502291657182626187344455658041266598933815013125053120321503949102356440938473136982102688075391175992740472441624147593503464278121661019482898620133330197279037425091316548872300102566383013310321150354197351983744516516384043979465544840111019735720119914552708982378585593965469766265487766405237045363564045732680573942986648280811814749431019272671088899798642609414848162589208507108215633926020994197519975419499081548332695976338851440994452269519431328800436873646439261094269418447295894777236161186820010004774486752689271955826952305125266471546978620134612027564116370196033474060892590328942071057464344364553887996855875291692972885139421449370015400304332601477622075305545061165683259812763972754579121250702732166917478458892911153970090049098705429713119619301958197503409698494771220758295657425897834824112320829385414715966491655719638869376874749228264330624968631945087283323632656052646944676683300761435258390627690101987759465590272966157795692360090418665731895700422156338841716292491247731232361523453088975209142043041821726951262908795838468425814312529240102494783173234896643983542461089628806274415051257047366330814588046324186566048925016936203403034172714096307586685144665814379815441475095069697899000847983891800367065015947097577460482147623184530815609116755026437256550475945352593188117648636128567395180687073547967032675952066819365678802504051150824494773009178670157498978461979551710751114224916761344939821107595952508754907115847810967758736055936867692839853534457489873020374011416492238982286708296968032354708931140910330522845261962174646505659538378430482588963532848471320782566662766015036714552509355251376712391706098427570755632289099755616527931589109563758021465377946332939602116736876596977906482574049441714260055008756355541411266657299779672236306444345090589246697866524839577124553800952329470135201126647658703136391165092399347077772063988357481017766411492934800120159690146572449035453391684620412773879187039663691057714998626606183292423030555371660335516257579450837471114563447431774067343804341719805516438140083597405503967565521864017605600067242670634792444064153930550700393247560781149004066974051677609967348177324355917822302847962731391515974385661960962284616885960153254787738352797682192158229052212039249820816294122028300582878411628782887373572061098284500537062916807088609846011064582684996340353961407635536938046952528031365361224485271867800145970552020714164961965531934831982496074455884135607517246276512093400345157812458085848167440413055591311671603951640677181739672965443955019540437246660211968772506194948477749940973244611318576399581784919178403678151619012550196849892549888640618598558667298535920726729145133912203023671209402006921755762790643028625787672096927406256920021908340157137915602114656567578820463115680897560205165022308825511622734235304329749941162655220433203953110559017088137815194444483112431567196163522668849645580457398881086817966312058829056115923764865183622592963098497942641802751077179780802660594445820574750866446690479570761524833316932464863419670942182143586723661618202162338727280516000467541610592068885559943860623262185731099586679338923536350867582544572868116456880033412267377590382888102774908736840686944339648724174384792531961244877274572692204133664319419228309842557801090954556230070241550210093835873587630533855591129044042486365777179854065812232283285804003502974891515138091242244402920276419445144655400568937081902261796114047628462318719384569624358902672569907697082313808459502276484189037335993943291113590033529012085606644159774173922081374217534087445670405532513699475063989156851094877586699345023909314870297871839191908247774789853370279759848508820759477099345276393653255951185115434157829891660578011146504931824729395345520568718428746917671984119876744742282300585500988965021051595897561764132986678787970907545047222590802073006581063292796957997158898370295409794457677784235177970076972529426867744798497158378321304224444396854194639455973904752925122276329511734453889619776214343028827021894573356058532712133004377739086887465807907895825910911161626853383679356019796563260749454899162294347976974874462855011178273078984998789986841191402191624694286180044246460987696899360550170631644533872478169648041268027543792425489732839276633778228672322725131925118213233053718052275295483906171222911925760200773374927003670796332789540149184713687983276847312892319754902882546256651236439043777863360743073569141685145126951939256202304853984445708391047215734295486449815724744599954337723510832873225876820340450382384564115028471525956535005886631481914507778799169479518536413911685465398642419794371886375422900402335629957056079818783375454649947424749348840367006190555227958607321493925461312803293988325172110128802944642957518027657352606792636936124792586908838310091317552037318587608627873527341519449895784266127589525295279990737411350710298345973849682621907486492352101562297897013528113547564961195124307028114037327964839032486260808166185749143461211796322434700779984230799163037585070552911961531174216672825757542534170904558254945806702940865889589673625396870033490128971611964575043648933479521068822546273040905771961091864358370651009936476466556914624069031998568321435769705354956311507750795724379958381741392860796226375957352682912081121774258483858586182588252870473092916960619446714573205382823260494502935243557316601280880212537187203256244726079273782812588436126768040583629886125105967011475331557901238040573339534200611863415113113083149936141177720918787840542034731961686762200469443891546509899507860937256702072940170168077411647923731199118127991484105240511067051848749283711638857928489108063996255437912759446193527545880458088160919698467639343915841069097089063601684989806247065998018861213684075587386018175463846150070484434596024899116815435249953192007300122583034690273632764454875439073794629567492787241591115203140660001576627515615875102804143333428101198497412243175356334256698991649433594298748408046981958321064126016008115795074373671323194635713781834586700304747134058349179644427262521739841736763503273022126289581740739967205598073165949797573488145736048070738031809593629683851778829533550299264778594153049351302866907169920680398578565119560584149650529286700709794051631175258698192030567548291043306076953994214068123890923021946733718988320018049782787219587716523118417091226733725589748669652327046396889701644198566010412898296932369536408333118414296282079823085569650273516861509740109741514348507852312768208644715460828888727663541404937737482764997329727556150220386152049325686810186712539980876846227659943613530080870933150186069960526588114576466732317765946357806345608454202530988597819817366425600402921531424468311337150634170056419793638015218467913530807206167266099951861880578451100365346987702730992055979350013395289642873528959055518264552334218500141631116241002185319175845207111637727903052499519744168883566791123875272157100789017476208822029533639140501542475196080768950919971395933708461500620849227351013728683990457430458867843722749132780808039124227259724188379466075449512228168411759184030035390155460405832039814114849460952808134634609557653385753159006474495000751996836574455415348400986258017202945304124372005465617938513819163420457074150780472682416495750972722342506942666022010465433246533450792996490971141569905305555272817897549164938098164247893266896714035886895195064492597426355424543368158321485543935707617720056574393074773632465254104233510147077017473520674552140697774440615036638450734943764050899832273527769939309930612064691327221907182327657474867724845333308921544982508232201851340616017779480996303037427308116516256054499871526599076026074580698941069041990592895636326984097413684706906487730604815433122752878739909925264256296256322679417027716949136629995555396346230511088625159296107158673525565447788908361122325206176880017155377743122401237563361080414188307711450598438027052948652136305837894758852601876530340497540185892065071640931661850256781411315276090543857238253124808849847149903203517149975701874942823099731832831688058191115844790659166636370132325878327431310815967365000417083353956144869915129755570225164666699999868577734809279036833779548708894290090531191065044779992673408149616679503479456229351808744443751444122885453872764043014387849690964051822123998001864490685094331762724739732695949289760813736069457851504078653507020649380423862639777246630415298186134734594032956745512876400432225218546969187064431705879872337036888336052986413798896714774112068455945377476972790325166857539358019286417915373353592195927068330704800525338714836122109238523987668444935167990393810446111812540999725449060369635188180317719846983530739619476631951740910425848485697046491295196771796907993410274752398254218856869937117160705376823623830573014837274966846126973064918400197939553159237083856176650793046382742631164325390837288157231007367039490191224030452395094479396486539045459221517984386131987539001487144403027794871166107278132193398595747158912164781900341529245262814475358452632150598534200493027898405965432889617069246122936000505532135891987573261459424827710781334795119047902834560255728514745488238816374778099667861745902921764883580501159398876702692623583875601886431797992821107666845384242730085624393371972460684297566108725491685784834059832565321284889092715084120954687825935271296655554324488777200560374986182797018940249921769230022617728518542633100275773584872359001902641823182045727746809049459544794662510376689407552092021777059167395976535075287726381630137385204556276167885878804431609509654727370259230170696514670265783632171132156650884687225881324626214440081721629917471070577530316405767364260174514866926433995952629495392438525972054307973534359100218924182166872212858639401217103616325787739025638007294796822354978170060292236783567564657594791745159996534506887028781331895125245751677288667790753110378926356027424280093218018211309499093280740631696422264130983842143748528839857992172905135974858043151234934447681200536379709792770505912297004075817726449715265255734498528331481257241027560171604676270698630727647070137402865878439006390208543179010532604891138267385307946307476459096171770046032662567580570828207566780138811151941626053126896500180722130970925306671369080941131670985838776232096031825283739502724289177831639128138423595539114734201965629439135526998918054143979499671560952301310967994695821678750792457900896063848716648125338495350193910722966173340154355568980329852600893203351750143736127526186135480241373187897244522871395843285515564501327871771906231280922416067096845519983477423689271384462263331276680847458929806928532546968190583119828000697068681380052281059452222008678293851673228805378923175776703092687948731329127544936070304281733564353879148598849210724192490459375485388683141010222189947752018956697961565175525351141159718892165931199238154564448974957887592787292019353916069517101029235325062104082210444853609446079315788497240540852521412207623378297918458024120215513264254636559317667325795763855258822810425241463985165363491729005725040446890969869591678486454374477439714508059995567627003323747733356563783664725971914598080619970163151404264082123907844771024432399517149389636034799719201789231925563088736638414675683427222547016456586300639858034470466746128231202174791442570842178953803207965504756482806331811999014982856112622998551584754351857282126892076382579139049135639510618411586988828704350402437113363521332371227136105809821969155443414486519591372279348903034892588380284586077317746410285671849192743498462838010263384003918483880353962965012691051504318689805488798980133581022357037474450128785547122124066914029854933383792906475842910128191063125939180830726635230851987559823791328420256034417933683053909396978118061180513614518597999588101308674810118430723897348626331314977541798667825999919557915376671427836798964679066640541510316581874589435010706049462359247868050973233463991857904251249583969946541733574773819831319630829495786614067578873096218372822599750343938623212562054850997864952690344475919897748915612415424410995361966625842127839081016942584006273139390401503567885201802387476335699427006706549516995068740288496228535733045330276253329808896537750624995239345590831049095736977163016666583806244827042932733775492540879519605359593273714582091501872741637254918335281368221126399648806218464854059145490442195469279905754223823985750447781519945179038570505811553031236289345564714099992935573460402135474227701763154212457318688863511532370474358598780043669717473988268468890581509698489437335858409119734458618312000814989298981690312954605665234354722049360427119163267228907244936763315351711411484578474847237636240162067929138012892061850081516764207603449843589851336160062330536354713256662445728196930036851298666121135430088583193575592597990759888783074896148003106609756547452577186218121390286409815772325329051705311058045682798139196822869708849348307990411981665445589948569263648677799274726290664888334662628954935462254580889122115269893361671208082176737692129647561250032362917589294846190166640168418365069757571717825806498032249525321874629378781879293763273961012379589298272346228097944553891006163369786776589037807088916929644247233344604423295300047438124435377118489287641258520615654763629294635300141544020898929853016197998672558070339257680947721357417757637274719983302485536278818058055315911793318123483175503748215543978095684516611493031681746795670270581072662561627201028093607350394268229332515101204804109736684906689213917510197129423038098756863960527617627146982745892955067684785657705634735425521015237569663659748841144484292579856133145605277445681668107577820418856703921732302548479619360403291382896899181750121503890805274810807343624795241984418576880221993526801021936547919178528525447613651724095089455670000796925514240142263549483348493096501153387385702117168061712258246457937783010365492168929886502539705094428596840478828158501002574973829876735388340819926404179923114803061905849644653592122585405186281603684139962133727055618039242475895436241864708067783878464731312598695037790605014899845439744792122218130724204915868078605239218979594024402358254761777087648479751050753237451073691445044564356326992180765107739942643351177382448627712146451257246942925499117511687284668578042447029739142842018576835277001473550051144894309880424559977726329374539117678391195878479778510399503965558122966030214660555401402591508724495243570757464271488114142885601352405836401446871552982812404584226921867888871964713379988096492311005864708935106834977768496829684065180597839755747455490664692827258929914808220146447592202925456097551912661155834360507187268478019710559814790406527473489567418503513233688019288749532326981725058244317069598186770172599585155276929760066242688153380289348074277914980482184236561761857345248144788451730313337142111155196900209992800227686806173299892644715528793120534804906741874419964336038882898826589146974202706318885880047448164475373951214047889343678660364871980556039429266830204646241397019724296832585133256854993863783414669251517710675500650694244870255800457045338121309679360208784010413954189610028235714472945478914778184294464286587107491760783474517133952192403941614304909726030025893711055878299639054989901229247129369557536637982219886005569816397638130669555213055602606958025589241162182939004189247446336056765653667162129474832857026107495623588945291146618715925036512591905478274590974293979693343737994560307166022831400535950395897403647646156522830125064306661883178902364592573950003048654633517030761238767431997900400832056579663495760071076274967999199157110970621946899594820370665740595324319241082338936765744820359251681009462867360625727265784536840384591671181652828748787514575780744834587688372559747404414743397102013120945887675533623214660288546540230498409633944257000392118447116527038085705487235880471392424404960879582585762450816763273164324678314967954018137980869083774109915829923403358462146751912163926067325582155483832315551047114412954358034409151231636778531694414159310674738897644551842957557293294291999035130056140866578368852406160522269332334630587545565478036994041721444070855516893285459488774885664129903027826074578418640462543686193617800373023813875694670717224522757846925528880491587452155135601386029271855936688062896453964775380249344735997686135716336865790981201736405278998879524367296930592468276398397070640064828944634120914036727774984694250355659421054014078078620055757597213544924408178796676866590880176961486263270826976256431787767423013413679654422966678525711409077968935394341083120412735534447380331081689148638791870582852262933801829691420185348114710265712373893608686087965996343807746443111858285855018384946313999287821849106065247447739337562190463694298505886944550890718013398976184429219202823285453588936442009910669493581136176442860034597324506518659717778764269840845215563049152294379319774821454911210652570699939117101956051803422514243011160725454220116313862429434842365435425155294399481578257077112038417816749124934641783874135993163140478741695966567642142162343407212508092999770504747894687746753914111502575597566399199472972982943367026791113531436060927485944066814300412653769079926999995520044815441997832886766002760593223485908977814880943448213999456766096941050476691258077568774354634278855406287882907033725744244396625372993416130596149926244223831372707596098221716764689562952695514990334920595313282008381867252455383025349144472474356157503435338255956906055031504342066682091720015600188173593102253827340083530633206274404244642879596031733308554097226726712643465215900848078673490730589477969976058940416407015928981833862364690780239930865167347516549517322279368923098840218085587187737672736396290673828437977053129524919152116082516424225559939116158183094382129351285149146628225727403590818204234483020979098819595351334010185900243173987449628160816938152237944736008593327350788483928989868919521312255194038404383991504395997587161284846372521496492861496697315907900048780095270518853766050659578436097823481604820035058262903403833134857435247238682959870093233221674080882778501534466976149607652099420951488138218568824057931241520849059044522283606715097524489934723734806772095321924309156612100357957458238535790848758143691725361890830340063902380451014755547935586503805972196800829072920339475109559756104917706294481186997896261543760204832112723650734963624620866346227465814829780979958705564475948756399010151735111180893943722138927829982522447083032985429082751545717293646826619548811824718797883910950877990043301461148397257073033254039731304192512391943914683581599500484165107946603799045374671825461252196378428672758475271136567492044388546027457243445692171592042685924975466482496776214948952274865225438806162116019785366331433517918776218710296178530657422513724424141724691013496992584914609741244314038843330351471347218647883667701028495288044310539792226935413062111037631932538108136747269637543128422292461795339649878754644474473981961023913476968285930596449296188994281921380707265847596394567838414889117580478206879540189579820772034973012961298672785375286048129736122483008153612999486147625433657174482934086953991732933016966364833884030379936390905883615594773245728681056757480145629749462374756100006749006392003633730975213700747555768312074205212240087879763193827391232898549533113900006265045292217675519300624193938287188223344599914068830529265085725902297582989605778150126250130720402244776990160168163119344365384642745691085535034699142269854352744632771597029562132671964375338898643466898955343112684709248287546461178806648739420104270815919171606491391480812988160050860145392842767816680308471862956955686506572954997541935931322757600690499336322277448855039800223241683536412172350991944183337762898806900280842554561197368136748381330513981915291963890966480070676417625931714417713182337008868333823466039399091068016217157223166302710782092739720050249932210573827330632786920286145322411670916481627618341327722581944850352552845300867552469533808733775632239130310901771445984508156475589877668775371123104644998646327081520623837766630235033022116784883933011846795909480539854502449345488983493876804531622165448020392346426650563693295613523139737632039994494016464560459224265883996951526172866128608691444270690785869552433652781410718841334590404511229081765723184335241877290139898469531559099737602775803981657523042709059382801600832793949618370632356182946813927211763542360478478240500704804122835971298439314642090288675892341312199930543577224983284328072415727128419412699004135754585068045448910364129899984873684830315849985969462771618398812676516103056694583108932806247531602270130968303098254659413922231628353751908206610342462296883104034070250314353010489840655940876518543143779497885689006009070191068954166598335936002778382314040530605144837424899810657455954732590179811361933144935173110342349391498726930309356118000482431372372734695524747897828744322230497841467227496025117412508052661649970183126161970577893086100733756582001286495069128881083374624237707147303615182927460230253092839884384340995646756357132080546890744804036332390694464919773230624789488381802166776673317377788963041636364315329026208915450304434658800539811572063574576427920788495196120386092187269901252373716235766049659715596127663685230163818292505710587390540203896495112688169360608731172264932922640300289358695250720417790581784822290360224458912210117739565499745917638095520670597613680709518598842035217309124936618559406738551872073367970782433920733494704189815077158525067365049554332399480400033593476607216341707222341041660889955259570590497204895910721263774988915343353556660079006627379488656849719387304376304184559765724675791231047264825934172995273708253343316362243541017542282073756507571715193260990440743026596651513524533377467356328245588324809678740430426287909885356393839354555795272862667396327383201958605882398007205107703458481045671451703539186582358991053206077697161020051106387404595545500375933499329119049800767738211335940801692882020558825328194957568756151852031258008769870343172966983008246381796549582718463631611003820098485965643463240097823223336803760900732753223386066122497360467182977473610676802661959047812779139164868575285047857087897106548295921550544248135998239518134226995540485908905599725354133223755722389718755980316598322971685989294189528327903215144230856953373643476117798155850337441292892292859436470282742357478612209956235445088789918248936891788887060841015456205310413626142418597142693071386327823588792623449872063824962574745612089466878072385518528783869987856487909395398597964948746288342638615555367361626308674444622438406857084130278394336988152426103439305548450993528736575046457510318126270489320470386315966278074592636028080809311113171732273727533383176596665231601909346111786814670495150141267403796670512704704103236185761327341280717022051561317238385630260322293460893992815132643120464349405835011633588798623300003893961198622422347379723518153661406332236682373764382617842554775749385157918524917283191075475230659589051809950419374872208725572496238910864743162780406791811468156940269016686764795452218895361592152100088653645172917744850683119210333659148498298241143112908118579171046486729664466384940115720158068863011306627659164126835380244267625830665852646929820090182656316342892945638057241002820942851440866860705285509462514584049796272357097854563547508436943306825074966597921779602091283203505303009898689814447864982549388255215555996174367120160342048917562928858308238006525959613031672152126317048810231967674011311461984974452347452395116271057780369694010380588389505337910774683490107107661907968283947418772904087247817655972343288408608625120568866286664170956227869637482745016929754953948034365688719541074231065825906013489926266354787880899606895764774556260477507654980191848329871300968867466133336947431737309873561366470575536238519484866363712231883061397351506128473729079530874797734908246646247826741233631688773895344293205354673793047163117577955194386893283432507633521190515302184982219062700431916955980554450013475243365673308621545098901442602189212085329994941690636579875024101758956568968278102676262598816363854190142719472768694068224272283221479615715131800707966126293360549211685545263587653584067966885614597233415008494471940774929150982322939939354255243356234053561126207860785659066977344016745209245707896691718192135368553050793181145885992573385274555655755104585478775035652573727228619614563592694701487913600419322155193264166564759952700175845527610772281996302661915785988893787852934649318620466850606278785487388292188575777697144262201385637501076250606671739232152881469354390665336627394476167278403575531793397227958794038781559876830650469180359386164579795782506523369647634023883168156423769944324309275492819241092405885999234983863624781822495590615638015774569641286730812271466444708428270506376108527901910353199396370973660340171941318067376540656643754978346048133902770314044520868134453085910035274884698899327321055894615066152754709353771876189023762380427356292846372232469730105860032279499511717053368627633595486315854566087289810521342509130561999455544102565061246602031019119934942567821881152207402229000924774990775955962839678860076399295984678581119649258471828714275601719054584482824070942952865482270545744427025220845526736618752297906497110258483795998683206166238662312793028072161835862711726728638627781310566934059071430123094675061244667128637856552767764636309760007813479514246543010132721544185937633988286577568842392794151294744499754480346156713879367557765819462170135399452701129354664961771728374862223849641695479851594925635708213089850025146822496981508356125520863022219193397711641653184619496434505436842697865695589842868654928613906085365694944353065856085376440889874558879184167189257671637008903954390048254162116784412842568881127639975729717315932511132442844738911165232119726853614355772559062719666119469930008983490231594448677913801707551230221812979138727864528530184565268310635255628300734215507317349998841184064849644629007228916192355709233914093833561713983267492640614802713954789425219663742539899296324159423543516062333428045291456125183773399341628637173020286398196924698789137490994528936056929575388909198873488795184819919327368458781731244354377527159950540413899483334497933761781367062997174933456042587491416062044068154827114988741175685292721164907165754044938724609072730827702215451035960912950168598546358470818043616688424378227656388742266335390280985349221497125908526140839468156058187737271760786054193480955088594806820555521419647318162602199000440578197391909925605712604484346544229037750111276776417483922918126037863259242552409686717151667810855157730719033626504352534585056122600888078241935682541328129774091534447484920699247298141752080541349526854296719787475675438822786649148429335761613073236973667709568146643810228721134261592881072407733412900984275985127151287846160578990348284921705167949501360175412728845279116564770648562122189053986186146681163457672249298411264667047693910406724232067948404729366079357627848534071761439591726321160194908319758463128284149344120503517848514750339921542340784319096599668210762911704360025678996158776591129481149470748655898667710619515627146788883336833052984170354626703231858640427833806765030237249981911833942213558285299393687567523391995677624593813367179423225809201796439317404723859733019469593313030464493529131381543160781088215559290515238135038214868009164821114717908725684903246832806008567276569350791209979172963596750842062418071337430020781612217742255702956483009879470695672820683789523608755597783869033920871897257656843488038449431902356368356559568706830006263728099716279176462585732618177197509845954118540610647077295431996765337834170552434536519765207326600438208476662757179991710282059516654590803149517451690043389010492700305618072482325119799370621717644734232256085115628117025013636326557719742160120577629698244095899393735177175388701715289579708470251061648820311720799495252335702645885403899056846675378487148290450970715470687275323473029209121432675536382289654405291332270609949955194741167709643151585721914155459355728776238543889348935009621553485064556980565322983809870146027149255485939399677195598887637912270043785277253492657062188875963725990753599591152653499959264110015150054898790329304921593649826728118360029882157294991355618941583852736201085719313364870098771849489686275231664401537181704906849217851527398819038674307842684558550566820072212130245076376121551194285815355205388053059703685471380324228966032127826487244765194525404762875391973911345406885875107663915290105294562758647858117401045584724994437586876675368558138476912268001788010769224702855290349623243173554165629228970531198885653048418128680030727999421141102723685018406877396124605742416902306340780253331248315951872631992709418325124136237640920167083618061478906276410454418821222779120042547103029268810163958364260019942168026557142288474055477207117626005943150330196865588369503972037098501155625675210168040958529013334351950166100609125555852001605559321336871509078453083703616981205220779056045006428735366993378649570021460465905584749570450316358768798551699898782113768675700373111910647645185597455865042005341496832663800267059526572406286381534125308143013998192471693296792072679280465486242800244759292311446108257694130848716073076508411392347417786873432603775751730269830014242252035796257554757060405570384778581824700307194491759421177536563684220512954769432536215180647778634838994539357925144321984290061418231547412068685515811063407692275659444224637970272597552100474215307343283471340522226662469004052887401715818110948108375391032266644496060119238896319768929478568593047296222836176251018051291895957628426924718524072450336751550459443225566999064802425181749104683634065522978654859664777397923980452953021422724417517461643709701873547679484076081672012366666382463488650581642744850134481245707702957077924167658340091933809359588273619812838204026903278858384188728477718589003864334518528654545578029725601910379900604863990751938423885450963189487997683544930781972798551801736511756027745884847880447881705811054860176237652263761522230354308746933799725562055058249621688979096424771838862342928619966409509842578483635189667762489080287066030992612020691536901263417523573611763556435550137805801794786220542654091216503566101114301642106237624879701750031957425520154784327071249889894493570910238922596414155711108156769256079355725597974071623442242851852617985736452965354011948978528977554415518903004791409394720015749127636962601540119617145885073604225675472561969505840645416783403890401849935329372778464886532520164971078146585745116344529578728755064740795168738170561775468353691971124556174421398585401194616859809475438003594437424873116576883782359778216644144130379492550533766921435927126028575779227369149131537806403266411537521155856360855981547408898533072889687154890570503446264958557398272261408936726309325198607441544728665034434333508116189454280026304242544134439986029646159566822968182247540143284078954917269391915540883110489454639429780017285824691452292223160378830368847878367992750333851660120958085074414653186612315823507982835428776439328328083851215933708408450518769292582907718666444018652180414464335846122788870124988527824659711825538564796255418789730030941220857512415922481477590728181762499295937635635561091426736255097149006517388639787426099286613741962097817380715363726471636590049999694364858377247301427399948878094522600787683244295579990641717896972241273847480023633628001385198012748233107852380556211848699968580797120958156860739385664622954492923250523740941899901348146587404072526874510590163932409832574826005090644239777364492964257461447677335845513039051031898061884955935427375558811911810097925219836683235583804315054149613532480233143207577402776823471695061601287326386897808175103798289642848371775143020012402807129523362027264013899274986056513021646499888850214706009492844703418814671882024230478479228009171309330795042628451703628767445745647627081803652434665238138141000154822490496214380873028003672500534430276348461780488780849940868161774793681075390803056064648269434434880310957148581903351313981886859394211555547916288441522169508120167786092979074439590680604229801957032538372821490404173781064910021807875317751561026005727419310329547983080599712128690476646950609194683311886903836401633022930368435182673158259155712066679732589190325185614713406369904247388107604357049289478649072210648187556510912759753228822632762629005281933263674463913235596918926887982091854382104844655607909961324814994575816979526945210965720861056344754528378529857902168544759541127176824446230411816752744346643707861656783354996830113792515301734399338069251993149721609564836102718758188167019666248995221989256856764177394259173360082646924661205921071474309536073840330533378147649958774926109697566859045889689639415761229616161570116323590199939356339010036839344758283266527682411647201067480155959156982856662644060057040292110958699811377483663809887962147343508849354456423970307365714460315883411538777394555623043307081830563678133622273934732114760205531116337875002857785023208167281819969298660674492294778740840898469344613583385189581258544671257841927146566123473350799567647620866903346649671142499188462577594723852939007800958389065262814969802795172467651376274521290220877320839055211316606331409897370427453995036879910997022253512966738422270187931688121930852891604222072442117984554304263701279016489803177915356060456253342529963327025883906224282661141217225684621322732398755455763745596476793773892594555533730305342566320518344266590978835575900299234436017948341504660823492785136951607640044779396685470021061658594073766383104458354139237208239216528441386305570942185550480948444199378143542160389808112973738496834826912883432211380062542966957543197010448365330475732015161447284127183509540304012827831434878208920571029505698376276145386011886163170703707627890991680606580780948809626544436368569321599577994868381966084157117021254401173883581663333526139897474353032659531057854048748314623213845550123614846136453624914336625758274939309490652009489064736920541082991931446025541788858055705742253021564031628015885942733596542769958938214261340591987267968328983190484850693067005735203787770975049782511182913466736115480248950876952224617253491504430390167565830566930779686578096518570275652207612159195893186373399530708868716545052663691968900710416324874167920955226952985433287856733963366290943759693744396870722499955018674884775274632453278024594040208051557350306167094890684520416939874141726998443720626763620200019998214346844234183616593669296447598248646224195262365233117445926795591761641375605147052938796832926604005826213681130334085383308458331079190259190982725855324416608320857320119187641658581559291660326488543972969993085394537596214870820283642358246760191622615494561810360376879146948289953044657073800024469777872773076509219943900264476750360355321593920827190765962199087069003288354730042624708386475720947999158908030731953887155970647370977087683921386650769847789905035243096198485483347556281681017236075907246098937092417112892012886612580948271300528142671098568080202999408030054567190668259515399405527287885317496635188698719964373285540855210032153206724820823726401954580098263305343977152060545074882430413054205484006796878767440409756875134455714170281058220278928547326253709655527133520812430363435056776814704567222816360428952414909886526601320414588187510677551230550402897527033270798644898260714899019710969846348156659511929359996315332635359851743363129187205252106162014738720800766933673684661135042560653098180455005451257867251641983335426209871476735983772898271851505887173203678672205716159611863884554738518578196829740747483714367948066220918839843728452884905391590266139760477425672331729653390182287399617329513425698109030956503258279273242206403860952385109061083268643878604808480596201331382510945422992954877384093121912405491608824763209042883150530093434957677184388465140734510324133566300539171888633395023380786856490644345122555669929117825982970807638255604683785414048686408788734198218594569255550380111469152517868599687227522293653864873508537362665634518183784283161084800801458722050748347352597710235783553839735742523440944393502124922953253960133969324089149560882811310367078393421030466732715743146009963086429190838884579778250518910257054433595449157870874957756812317724995063890846159616086402395899444395390069661177530342116511783717004986542636528627931045316277667412970869669777741349242704431383668132486418573692282377728682992703991491474231421284260850199029729132275862799745035625427353825962585084642767043677571238159339816865118166542002611892807288608425111236887402335702175245747911195156798346742767603141816304404567128004230237819030779707148385481384016591224309028401879846970337492568174163980726311715547939550301750620359899175961894362606456478380464871437789388020213748938923566759220840597254572292153026901989865966682162608718842800649732435532988322483476718242452668771665687289670353241932791968007678820434019570492120490157286159055013223349236269172256496167716320858721400181817711421726188977651507826365621501580507883020691421207126703097301938997737633404759005653055692912792749842090086043167824327718210790139388964204990821834761683666658462047793766566708043789892495373123671369094953186001083955527414280468338820308058499735934694471016811511815531284343781421593052654765588096105511462594348314458344633842758195647206165079355664310819268683302453298111842196407308181472642535862502144602999584756767997469285532522631654042081840584353471078249409275434426724038355702232605919800776496788692633299766841861907316240987841403812642253419528769966992898691764749676883571530151228133944692203389252805860931547286845897814935166268240294596745435699115627189781623868929700620600308691425321386588011446482963741459495219350596235400325130608375273432978911107283606464908837571026190832548109377268288095490548456625866926134724554624906703794332476430728769507580872315409564667719794984931290430274840602425817220327870605152766343395258270475274847669696512940209947756955384045310808030411281647087932204949195176929348022318997426970817800375334215323620366746119375796368367615263373604061582522530719398895444136858152238558559651453867715255422226240107333513181269067588299053263937395431048295841321721787597938983975309436347865958498204365709941253016447735147957580392732092869710963981774190695401925252419656215891875044215788921707822074401067346673125669865578998445269163616020417352831793668784497143108247913463430513261480481503314249709199150596939117161377487142220006478711679934043274590816311694898978660731589682042598879869740640294702951280496381327662419508303476211844629527175447899227914442524411860560449624703417112851346603687484533136791091862923547767348139229175162024082062361975060985727868897699636584718901464150282479990347324682551512386129205080759118404949088817461594001265565023980704423101686723732156006673572243994825967751829218808999303215608922754610459537646440149259729017135236290841506821259245524690106521762068842917196690390445166246132167979773050301880720881709581555260782871320812742112438858664960894130873949041017975163267755471892740718115887326018818057640418508904898464945800440904588057019335569335319663421808445445625867043124135417543123738153707664996064437277997743937388396465903377121721056895376116384180214873577871793650075408757213399759235036797024793247987166311904839163930893828556214327274664910938222766955618499515729557161376813135660276554954421180757941074856345821124711311355787105062673026365799907776361357133731468592770050836192011687586376288865024480000770072706391845889604540625967015980879042599889525056278158189204335434736897953048005393232844411827117057546047379520057091697337576170533801625458408154757166030676074651629525076344756968662310014398007815087983292970685339583458593412775421134433358062048735256104073223060513964124258378130097217866075026550298942336577649914391537705506641783826527594837568382994133683881735159812016145690925353784792295293943418054138126816488614401238241046397782344763460269793330340632982761915049870809684940167395161026382789900815271871101742565446774032461379714435167464544721521108289414881542613282766201111232787477343770417132586570478944748531714843626013296465774835723546642306129987799518027979127615474390895286865452801864633612418008459216644210983241411735360703724674062759097325178980262273446853527023415580979687140633078986039766584750390952931019460797136874396375346614902903606004019404628426075698532738899316123386493818747204042915568385797576917305116345123783576623792755618725493358589727445852382901865720544985272317492011101863849803919972745103888871954772088123428996958951441434741682042331702665472040545240707722585772875263275019719874147909178551904330265499336861990349700210892302799695518600655823438644672751544137611117449304687362970799728878733929787375142203467459022663422146090155153710304628878893618469390342067353031687393684459816078059131410346725247105316530929363026912049544032142235885538371486334533998004045655424379003798936118399203986217969667385474905439216515648264556943497120181628499390189412938647389446445558884924968470422554727539789359206131243601475415749131668764437780200591411349777274958039325697716075307362483332491050748552930364831566914842099225747434845780003907658556568171067273767799018630231376508258280168869902600590172435309152295248296260896014349215334789062498741376122436983485883301564567720119567101206566205919605708021253242467196017643678123552946762815738986105786955744874657265083395340300794438210261409538879943104120503877029358277800571764745466254410602027714432883038866053137838141996425466592492079582688817348461814888025655157070062913234183403958320547318377379459986512779876098578570920075559624326347564394614391309153968195144411190812289140598201167280177549389152520565529712288754341082379299898593185579506500493309199646402916246164762168106983390166078657168654187723015275201214109154737002074424439696919318033710807256283930122310859110086749283411102235310468215839143063112142745688945716629454921501000786999351496300586356335122549018967958918628174551824023155488562900262257349728208983375292037833737079555844407724549523516624660981770506886250986631933836842748604841804023621920503068573610329615730789768296815486158185825520623424424010387527661997196160975586950882730315166118857144888038347962206883183299185883850321974549911228141946897258192185186588424022672248815035890574878382550658618973646563740181701541244284451239464408086732084000965741541218536438635659694345987246805386849341993040777326476405187181499184937815450375807662730191841264026660891866712817233481466136616698268129395509861729290552582285636976549439460186915388199079711890473005373777283749481548742009482161337215686548659342050527642723519733826243373622877673334726483591440250175511684973046394100037979728064510012324215924890393269901331817752156282987467285192789136067318831401706092252768637607388030040900911172540469427338639219090782254982605639616686319188870311837681481814250904732762863171571139820456236583646937940010607867760290713138140248809840394900157525471031224548430735631124726890628295095430698617593207845663109234583604541539053041430744044365344373097784842928873203940863083678416993311194777311379856581949336446364599309085128276805785475349520348657416023851461521603970902386400188935104031849764273380403475111748387398914922185513063090233982120742785844971571159902468864569217930802945272374607519926229525573603046078596535025882131192962429313275836115127399772417948835052633722849590582619798915670202064462064242520706611830813059606187321595927565398797848418783919258325907963090736952618820772965496212825822140110005076770829530762796435534591783800771774494900757156879252849022592074338494571998191906516318984552441772498719141702375418303003304204055411661785761740218944428177444618593899983550470621506472549056908283938418520618018050892583610597070915012921690334100267344069332447831051651442128301760710576372578421802235257957801898779255289650366156585147685216124514239156774170130686655614583988517674819158121648348545862270546808300292219869909098372226675688006756601402123300809325663257154400836755029758800609585767808424107550452624734945434183506060939564814859627527148666610967907690544763957398374209148725563829267266870405752420946899548596603469329817556831253055103460600731730080090927105681360641499890999597904299478051510669322081712551885078808188430485588975642713538207548328590178824959936668427902263582916004684273131212234424448158738927071590384891615985376978204796367923835061360537494940151261159971683211639848747012390981688814476950200634741851938148002032672482895608520965917264648642012842836631302001059420731745790088737162610455176490516537416422244350809861694102199081851127661496731161073307055442715950347142878696721187801783792446371475803322494138600988999770061323576130375557309198712520891003896744400764302484858207016708888164111555657112244088916852931651283354909116886169065242105681263458922197152157734638852088354164864599504593305652593525380378243655124757333642665986836327605138071266586233360950006948587928316725525618994685726836095159265001174485485815612499844788387069888207129880289677014462557543217993927952004155634933734989824721419679597684636050527057609885787326348591377554505088245353954167961927511791065870413449879861404980299844334407276160317809193315791307977313681509624565946037809600243935225900614451567782759022775060311254799119952185017564538335424364500727995838578039078083559475709194322833993554312320023880395737757200435814676234463365017616415645078308182060044382867069005849969460179193852099912096463182731689032579167806825987810546794066608800549632243472599815998927501093059411781438640207431754770019601993000395655679639077790471561509965678095693918507599843187661650886388394025357038229275512569519257938534022617688882706427429617810092220298621995739622852889217599954757651777123416767912957094956980617618946033043634754330459582685037469916927571198554307106738413840088922646070691432048313123931053250310586594605295625553873827454290451628681628104795996412583249934540839129047901584775813799675497792787849054438725624401733655579462407271749714349706383378208530655091828895096532261584896421068088610378921163746004415191443389166351926780036679553660142189922652304210872592077556904069680626350890427553838578863683148114981840474917103754654900854166019043860866799165636238535087084086711682269160922221701860939690736006630243056804476899558394517143348289259171187450307071939863279653523902928577195337319260896121103752453846012066800048476570980342603160514919110262407225581593019816945929958604887380746050665226765230615138650435172233243927929536584991471327233382692299071858436806803054999773401828160885387875868647630700003585911664192295454443740732465574675440016689708635580959116917665846924490262366637115167213346580403089223868791378796720019942659248930991813693101007077739653549389573359981762841456650563421962208503570952589183284721735594625415938770918723621973629120110704635710038740847056597309876227837504602289196554914862674502256529823457547849366354880842046231597473270819939043306567145892811934745815630995639718076215881647124480276105097601922395852884625018637293673173159232403664270106240137220786204569621590463106397380094879717129075334317600369852251391494994906489657388604232141395094315168202464538730704140600670651519472969535445512623126798424960454860942167870976070028573541163202503287269038146358544150204682166927924440562847831926115111054368554967383084405067973331863127877365856739090070077212763673826391188513854414656867279804919439834970112121828486683775474819735780565454427635384252186713348403452218041186336679927857584331140008252512318011741462943233433875495798597937785840971638969432433556641092803878876127217441612600389470047171993332120100778889271431465402926941449631031917251262310577089270143492892680509471378927808949195833281334582743013963661164327539445789680528154778704327855043869870056050861152855930271457468231233760622656780578225112456136744155453915575643007564012165339922852295989464571426879433446199306157356515007396633582780560426618216179136664966807575115268141261460170231944584739405258408668343408016207732331839076872339849368740852371429815997040327143845690293376589802071840769548622550992636021525650108994615754194573733804480337978465431434707866529853769007379244243877985912736548568176032590479591634825483353018782324570918164689456531459551480374167095988195940593952034340950740524523855462331191991036474463894167223336945923179577223913227010445771667101824116783379704170123488042950378952799182168927678659970671447308311464740756151899696428416275086602179015417757273491124812378166309716289306756471637266119644950772125542930639350254248225514413203645684697563643651563996414805639327427015095714028105246190480993342827881555484822603435032875203306589911712614715250801318502022650993454338287864745460110823612832577254435211279262313945167353047023799651996991656497034688816472277248517958024521366318321532826877074613893228563099727975806844423435853409717799169851967404887898723373252018953361706201693067689178876461598969900121978919737591899398453295475453332426448104997352401332297727854252469241933922654083069965499342924802464370992858390603506531492914802371283884171879928878918058128162272113908143860090281194668206481567223451229207407088583966551097083329158753424873439931027491473182125528594878283526563622181489485382221947941257504321253038627091680475226972250973510869698906179863711888799076919412224305524430807988194086574854188348756328618421180499297663055186746314164441052732133120336032208879358698275866135135825625635205370570734733692922937203045962106727088122807091348757805725078420834826046328621166655239276544690148844441016921927530225655647965267890209944165265964260468009275496593922079634088093732977971369563690232228029234671967223765695473713610112678962790294307770758222898066976464291529117105995383471850765192166139357285720098542802786244763081030452207979134780439945234987788460910619239039673571198414785660893024203353835867372882044671164684894239449640926933249375565506791292090598584284767902423390140918209262642858949080355147182679428637658194069688283687986076588300208066511511293450139286599765074955796080795751914286545094631914968575331242641848598631369370264578298449995927923694492744302283711871018317837762382804088899112030968719561978268015454765684004056215761345906026264353345305446467101779289770948772941569926360001552789342581871737511704112605541519111224736564162101042494406675642511162539737425774076366066759316779516133473087065245393131782074679437441264141837698626552164706966545017286329079956122223486789646669136702746283062245146738573961541141812718596645938846319721810367330490476243489922350245080471534285531199229248026620279938266982478874780003725845793684703938733055196685346551188256534641022131620865456322657930779012484227662821701487734454317847455209885904465954826225558796016809216481375249781169516671848599210845157787611912570464929470705896579037842003911501649946046514302057618591592072784784096804348618739867611434815903917755480553824899041560667766884525959893074117633957087235012451904485239191041507460060663312260555644675161793713089485402717660849655353813843348331050484826629507315383629491059711705278950641428272457229328449258472100572680487654129193042892402000566435488057054114166139173704667945619070201107573267670029849673540572466166387972404371860089488684626451111231105518940756658407945102356565916633591356232441391392495034974862668786488029362150471254696811562201435775628447932568554291717142361054394519363418687588839591839140756049859406403726468478501562309334330092957000784756917466357225673427780225047920324067462840878101492367760192661873410595342479839892894536411287287795431130572668227082867033142097635354885352144688563494115717995447972600073345370437720641459479389780517179011063365169970715879420030357933307229301096442489294089847869493533614634458804801437189004333365741915775292491147612408247671128876055032817273673750708903971292088811108197210882940192987939821534888658705433704820566852510753649456075455214425798484004566021235519893820156110655190700482155238891811587122721926396320067798288598831121499233805343535979515789621441978172379096820223515628291076489164553277898121968662012508359155945199605712529326126156874810500958051588132978878979811646412502391103026565971711020736228382189825826343832141192672829454794952786014852405595640413169665200023843771923693849551901472982558354849207092948365373336825690379564271941825259140324690235105083725363703724052365360050741611744441677638023261184276830163334730771322717416955234586562453553110138260379736922620990054532533821039729653006432598584958018785637048034628988644109168173309192722191640622287483475484746319675383052980445245660408497935006540796213812538213845568874623654415283324812086811637967532077635656352940609959882308997513664897228891927289253480648086443731417571684685112558584537949274305382338892910918330476306390511452665390539305698817777557889220893034813132386019568601445282861330750275726838614216694119701708936984365182262487696975181758793552395630280857840729764372969294859483911800198646608088051246399062542897954218504023521172433874420974370712405139617397810877153051893536813533444418372965927222196876506944711334270787831578315935113214765982688446887825885198742890073835644211649451609150052060184050176891026545260730889313390122104357295008016078027653237118786794903088735614251763889765099817218629332366160725218980874078610728345298900336489525348485960878782622667900086956934188361783920952364342907890702956298544260776531778683994713730821919714082264139486767324614181851110788319562491332261873286030477655207144444786689224572574014822000435808868726580105189072886521763317012239493640854512297964069292327838212182594979752745963107735878155321812113739366759052501406275784540394769104489016098365675820264045384434552955737013654586703348974109767905135043190452777912806516867066518101767241931286137196191353466938402441083493799550025649592452930278019377340586395713818586729191540051287875514287915283955963371839287932801348967381522899425672099846258940579580090860716779661713504842630977493619627694366086692175466948956704992190334923228226870891948810631783131752015199543832699899376561821617226339971458399585248651002822861411943596842522003530405923449211605925580456984980467974635023262568855119443905818786639030421801893780985003031514537162338781019521478447663427994641834370410340742568496141018311423537491799991322177626038935260065303180134608400169303728764453484381980497762102421845288712482309056918465347549243151351404038753472579759704267212100617886047797378803614186745738742963204933095905072357552918188528870436590690760192401006587209849014551588475613688424294755862993755249304027932327743093249176642497044601383567703453148882659365909830864202298970997581877378946357568687579834827628623802545817299862625771619967258321007312818933986298926938639511685860554497682427200408643038505778710658645661499024088299056528627940200276529214912917475989862177678549943217938973661773937258659995355888603365031601266432816368682226269668901091537815931455916366240665417110513109214976742266499223075798886938526998515705925196607002424260900449951362670581313580139843018396828445794601897689067404459181978337781047069334917451897045927087929399471387902203217353026908849909440477457793792908982467280516758907478231456973701197987288431443601293281107594509440965932209409452650313896230987217163154357237529169103463922525202998906320051752718686612820502522392010239645378108575551357516398575674074319246357657199281817439132757990129697215926932423934911911762407634295735087293065179304253664893261650445190222566741186528012145324932977312176195060207589690284394761013615987430121165173183522382809469949726030679055227803708242092956741282169808797175123378121602112003306183203093265322803818429457717880157760171969369116849092838396101907235253379998853456906528495722798486767076694243445902010282908707928488449083377462693375188729411745373630310737426653984039455337778748461493501267854863907629400596713969830358241483964333884827175409179169238195766457881796014416416573311117807584855419053354950868048043592898723430422733293572479786309558462737193952489222585827493973897719029396922055681245726820607914117095790865583214201339808397804546841556909269501753810418681840873214634168741895563239582392630366133344043070013331845213352548854394931754239636822300715247113101313982870702393587866035666984518913146622832664529790541994244919585725745266847066840878898570456062765228519295439508653351383851634263968527396558387972555048674256549340937026873613333123279439360309733378910710732222625979025939039432847146163656423498429650675590258279803700208124514048438133095150743874428775898721094093611047304903101116380861545613478709743154949207727732443692610688902443971585792932347126260112932597317580602528406486134557947465667684670742411194850446492484938372472599089854217086180475957880841862980488019273287422199955178123985242410080770445480369086210203193386305561859926498790712367992670569603898568056372569279623367950474248172381190863854130901469928667594935422560651984767925032971361941521384035316255959225878843980404691404168195042116380825739799406990117583948081570808356512946377232651330838101059728822595840609746941002127140087835902284390776972346659812664818203501785631388163955506705332758468784119098707750800205276968952009303955359669508510668354637302763227069837862934553248632130852186861510627817932690208661788631239600917449376421552593233657149767032401877044792113821150927006204068590401445241670872434034093471749621147079643908462544422917812709456949273986139961018866654360328457595836684231998964978058594239078178581254117230281346282997468530556539366328529683315724140515801049341512499505990206068729721541070901036368203842510385334981960236739058583016388109233636823074030007162692635512654414839903294523190240483005798384074276014335690819347115462123949225410881779540172343575204948103015620672354660144777089507687100024904689733059464188956076396119713138109903909946526919527071309842671496222358053715823115279936764330823107499875373456757743167192585625874517813868304933160897561000001136502340674850258704390561805337863107242159257078383971265501999194231493887942442338374725311160057334139158829734997570738419485521183599310396714068849322579434161122877943070785434379599137013564858423828319597905232041075516112557454380164800671469495851761141620655747148280255034613040219548044298474213343270537822708933535783103352101417899816682330097145920473450714927448053476159281167734983581759609664173255241574866919662658639047738725559661972347375946520150330370108155635836793947085748677793223831038185951297513871517132056761002270960465563042449924533841732348086609214153451207578868260521148077842359291572037120853118672994184743037516664681924086855093145188852009797175694561524372883355697382052688790779621439925741517600247998146310323797984164732131280791615317936412931621084608932548247368383748288076553265015894315380486581727647688500413934410387418625994196114262001581804910453139085716782512606330049278577077711854416249248467274028149859309593551782098117251107719917842990662959818707892759303643959976704828202510886155464805295178169391998211066412552234986823557229997122286612776413049817968212469330476481465211914107386304439402688028491656154253329497015985074856097537136843263113909757110139181809480438377447200314119311977497830590004328549114413876969198551691221300491017593050062939952626680640640393422913774582892338512473910315715455249926927615673633908189841612399634877750096775616226081778452626456132647464580016615924178925591861487499652326886160777939461710129289914814155498180707815622101823412512042916753423808086875398391979323076183275606365344001153265078987411630505715494565411707569005391010447053058415562558292190422842411090953051435090243804764495132625189339232933335403257362163232849301128209288867171082441961667506017619608312148750975750224338161961066803192175422608387272956874616910674007424053646603573236735272821394030177365392015719163553755260244897822629967149516212902239170194494573753861051899560456058990472226128326341145367524988423561959393440533949521821099913537528365956939686607466549005042867150967458042103795968084037899652096246343211470158240811491466264413967832249836138223278641063904592984999106621512263274256665874034873137965826798486343715298783552859604075449474272878731318601013609525529631157867013604152989980406262490693846228385375649966686436886010297777553857230688555170165053761712234700619115601165979942535742191511044110130429308122047102886905506822174041320108976148180295518557872180625997858772860648584772649474845646846411495240413391518937215613070246162696500012156323392803121141121893717417483194907941712411869725107012279054167339287137548398782049676898822314432268947316089686333798859894620068954355287696883969663806840882738234410982758783648223801056088873502481679416122810496422835138398501131978498359073676844673085367559889960224074172088461094374615808400112110334311699794881361534620877779245291846054980974437295530142392139759966955801465230825855645794084497265853084841994347203360737620868816210093726766033016906489922217429553808102071146322143984291537987272443887385032925252524858068245164045148791829110685605577135662509946102526455020048544507169134045016833710009743541677766471925122448721429684797125029127134581950065584741408571069559829836275574059940766223557409603269288797521710759090996106776559528723641386646638609940249426638687835929620379858142416446310113595688426133792507224394823486105230288670760151807199662960388864919663812363960928460253979833859873221397492502407893956725010142320267574569138450127494997660749413888671077314525101533491325779692689505211947547086280114788098763130996526101356998332370188419541591538408218939456030850453231199246938494056431616627035130592120773949505508396831833413041035745399086590977000277012839641670867277804371648168379754316129188195011178701069154804053374051567444070144364636917393275283554503710068900278838957504798066091049043725287270674332438034339419912131185457084170562766118405329106984609878260318300592729979986906932017583762227965320853452709004385459320173123662995460954959745305782424245057874351679871737666528762386193329988055582010634040653113929911353792456563046680597616438444085618867514275208367976829126886417440040133165944775191206084395371422923444259100207831672002593142988809277466605897491857987021433404692602138199157065099349768692798382899691467157230106380740837593053642432122699815621347648433643849695007244194943787711481350916206469582721686769435118013018379187965249946973067601501579573712352006536950146653482621399227008391587301178845665374485829016562965561457076495940666954416460278012849202741515880020511213162217919332895035154574366402384076478031116917482421730309958829982923314197193155569199754070951655194502087072364300312107589093781511512030280824379298725838763923840796866831863007476903687003131280973337265806655389747745154686768546665917133272748661594649654826805234068704433617033291527526063372600932220035771372808130770134601268302029260283891076757817242073820551863247562264961840894087245225879240737323453485935813054679798519508894704801614181383243393419020003523560480840358861792420958110048935007655338998173289165725299340145628815737576400827093307610099315584365413114316732379490332677893792418802037062158161005263297527150091299779907448753912384379408456153295909739655215028728627857516354721960493171227127942613161738503735855077164181594317788040134847498390875326956314473757558655021073402584343089918800774263986241810479929436543253801505157404948763384318853480115559298754235491952854426380181819235308929325222398633790091847153154646941310341676054432407759401325088470687328310999765223263802635986360593719545782067419133698373798182250391932514024149543984173618037727448757537179370396218257655933462165960009259412860149222543854440132495537523823392938589657516312268649318357640483385402967007087652073477475425665498140416523692343064097241883913969317298334023493920196741467284874935298860966817172271180124487252848486569667494154116799582133592118416194331814999480948245598471913401346541585506638611102514344630750080427513317653548372763236902883531422748617131858126193286048498709204699125644263680384053755550715753544128641969759156752713021764745610020346125284345931315546800136389507239258294399207475517869031098166161023245070837253709370394878886435373138610845490531206205119588419948102042775600816307036544300886172142016888336631259392475009441377793602800895112314133800293438078256578478520312015894494865081661495449556470525907826845289659265177272406914325802633146932512606551972599985599479102599410821488092129403155911645439807856294758409904424951769787228490853583139651617608461222497988822052157560474476122988059166192945268580328490604658861323869532297846155103438635441447541324758054737070788697781793021379723624680662241066822136117820411538922714055610600221868433287382777847352215421231224177630904370503199112505514572274704796358823274623404378261704882612901040328955715374317048912115968304323438358459536372191665120366735771279817628826812425395967676018921238148604868331378663238738606638278703738516608635312055090453777896910291670332514203625185435228997665329152306563552806424728485216119785761655912959370188042037141982608246419531749181426648486734185802603051481239276380613383479810842081528760333991873215052492775330178371893464282310582228594455150381015086649497907528426311337024512158408455127634508703364496129445810889236719183294831183101759622170187353156020430418057744273798677102353537283213192655673855961540244869998352455328877993564967165652819503603600664255192051123401752430379946291457203324225808574385525069897381814049027935105064966450247100515769751608696497965786084865797568072758333770344716698853226935874752507270469081263732870231272725489316515083016042990167886937897883927867446907598002065078635322431560371809290213894691107052620326958674205788180576795476951860647111194073974864496390884888406856241056036224047126149237802063490078172452451094194948053070074330073618715456311005637595885579670963693408377006694926222537833249744950580321947283096963755088660425147115193373479846918513699043818894335924301158745044725305338010979057120386668174925948412370865401497855155607332442561387571343495888318022820257060503645971872811029630759535903296339071528317409600130128676871530748721296230839342903336116319579352829750247963173050934970906412809290174901887252779305615864507186904709678507048272880483483480382915325526516917787674320441389789458726872797088187018708021719691036014603319583827721182513867804525326032861928125669644236757077614759330990875627236696192930806247456546808235963426080106513009269427839049201995658072566121978438388263114361069517703780695165922006701983534371854933284441555027141883927043626952636809320304115815616218169313354936757715465297415094560150048730858967661049753383132959568102141122084195387243223092147652318806196641304071674634539150467867527064058825827488662463634685416679513496133384780220290150536457639921900474172372239462100866131479755961605451253128824124559071176954538938017602514670062251121440292691818272276700212123732086595801645177111166096187413259733466516798765030684173154012285117977779130635298966444206848609356313169621266844536925495264052648273906049696515190036676610332998431864954573897175901473938707302185888437120824584431963000144316210269041207474697007794235717439351849816394665172845209693190844720049505129756270213981387162642986144608126709441310243618636243466011668449707101804610228571006408211508967840839454977380879776187862166209033302160181444927313592030222833046107992867258506038032649026960158040703421250684309258091757253477451010133574635902635890724406244317650497029547166067200991600636436100569120522005523008239174414989371001783484999667463624289897783810836230188389994056617161503193194567081039819959729361292137531997739745163178630145518328032024569037247591318172734147925893892401868830288967176550652024430733036123734207106068848821937581774094531259028492950375342998015399878545570962958830899813977297818342490722117980985373898561910235901718248921729413133850129332599265473526699948867317275511129897324637179481773126610559709449054981233802097876055473783881872718457586280157853942109551112874986433678246703834506180190815886164222801447653394741568840693185711826261588681230836954667814428971095926239295538715065731543109387569583120168572957528029326004377869843413372164556896915882790372023730478428006505242309609979743413616437828320544550438661003101072640986926514205095211136759181270170930508787564901512565899377384897990662351582537299221299073491486132180414712615032414196662563420169996074853957644088780817269158720293426337379622755548158923298736377321982519377699990159161047506050703333770266394235970006200985929547830187635416727495851306520475723701525446981946633653551897927955551948067330759301709962112505352397557933622588496001697841890403814417171402900214515468554025452326715994159205816643951819830266644523789673636691392887440100025712605823136931286049975443783091556125662710841296631697180377965393308396379784077723035664284284850716836445176919955762843217072954503228243999640522488082935427255763037454699570812624549776586835624873189304471298127578790620523659077985069426831883744396692835981787857199324133930100292134808325010746358334298733732512752531235834901785613205787429641528155292647619590791428020677881720019310161798877832665019013338315908436992315220571838922526723998014287836583349631453743375124128773724804188254664562052413301156083691228404172339236504733978254102167361092058590163067091345082299501401885170793411256692431713078439128810318347611300015707133901748568693671028941321973238446438647957895146336574189723450047410141076054645803645843731068085195693116196899017647148345681764113181695453933038397851996739153960407520699422263317042954440821984026183311605271226953123643960332569191153588396497806533663491382833904765966132136995104024241191226279831531805198383075660552707136801367800790186539578440282680418268678845277883722392336171156331758724404873111340554961131993347007996373519581541622130669861500811639477514195651503107789805065313647440591252861641659068895990174145983316803886489347745415127801645807906074578619567200846847571029066276751023275472536378435517105597181429249251613290269870646472471151600360004332229993121486711918274206594391039055678505591699166768787566284668288423592193775132019768164626866470659417776510275567718721303243299890427890994542032863821842313265852843761355616989738759100622143651928372774407037353630177341026276962994939800724284625568263090212710692601489194756896502827319958276153300362936259829894166028576663045942310177798707467728208139976203672142845422763797521617005830698295133414374597684106381117574754722004882588157731322685903292922702630652508291561375689239495150248875446033202197105787438646158115731908306943557121414950659750240561219642130146881762758110070818447087831017976443518412815569972165381549042637567028040914678952903637590923873801851365485151833391878811575411234747189738213048614015747769397709214847686811974332609539825037458524699596161584372030112394825513511702140383112519681187856438647144150577835522096902462044549732892976162651083216986266521315317865876452644542914727258549603161937431818149966307132596508768363841991391737103995355436551184112455329229173266785591744689159485937373312365413325584967571956054661861308564274666155075683310368572867946363247994987368682187479121487243906973170691435124969966883334735824043845173002217511115482355150456907059969696477483635053501224479316695729928267966553612111308895433805258740346767308519891202249343817199971979626686548390699866902243630357284455707627838814532661207144878707592340790046254138465094230838354844451151156797096819212997467752433248560841774625828804009242609728137963671671791718533697393895636520555281469677771944578330763084204791318105453672134101904755594246905578495364827808780029500892312605685525782593805444153842106541264597699684194595925918498073224687955915899089251785896851531305749751416874604557416806384854937879593793035341867854093274187758911774898175068599039629759066196263651892885027047938452917712910394203682046782275300233635001837987226038448401833809124684460176475695649437074699432410326801729639625688084182476767685175227519926490474451849416330481838785921456937696439264557410980404930400975321340767401432515170528606135621547675028698035939243875056499954961158947149270152746670754087288721311703374932226572828142941388093950379545795775116124360058839418216479970411561726316577784839764170405524187734897634900102414657201711851794153479865805640711255419327656424743948350499009914876321602668735661923456453166111947682883488143907646653118366657623119946662824619921302183395827180211983917871090106881797181304630771509307680475922558889091955688104008643699703993296844950558244560558317202834556169577847550843129686958719385864330502347932384262067172319055604049808153010708416558451841008682566008264376794639117227606419315237602564890800482842112121294074876581491944163630312672468669130137066358391653558203517608789351282848505769067423761107762591575221825013566794102849211815951493496959025714164589308566134581325938027923154339516524508384262389464170408238876266381608127499752083896255543319028136333826230308851420059535741326903541406672014629237102654279693038052966358003591437476622499606868137487509763219418689331459450548588553197624360618375808889138106381430922914032832157858856547307976962766926374888294660044202866397212803240987398673852291228376896833397018695608839552011133650722224885589815555317642156801692616144270156525541700176294452017103781171474124629439957239458870570241185389622141644490168648661052394703161417050458499040131838124860276092736457163139318645174460792758666106990722527206713195943190993529752736387190699530256854382726925894839129938967930145141946463827448024585826949710517857782681512633180260804340629744448903151859637043344337795328333255556755595654987206106383707025529222899555523777394131995474255379053044506359402616021603429474506548100102131194126759388136936514406698635289238713108071453636421373248966537222554612375660780764624043537487701529907260013458276867794295632515041992954970005340255261009791936385646987781921824521396173250885131994415891698653763995654964950504566707449629541236329259610037886830165725727445384233327911724008528056155702558973762813369116712450258993925137645361529867471201847450432627603225787638770886374445707080797447846579759855144286538283987998565717739966434706988369780657842959019960297317474847811006806987949450925445218827651558616428653215102317096893986002471094188642167240190651680565220559508776953454478164600733036072965908289953472230632991888855769042105354453161196177057619411158234873563117697844096840106293782807983189442734091227805857698778828962995779803284893296010329387630063279700272367080933804480763563318623045657897870233610631527078532318315628968278476582749224802770057293383083315613851174020785803105994019680153109367716712997163777378693870433600533459050691886489201202504920839115900631720930662417670327606961351629039646014332740480439438976324377384431648268929885876688126982548943342812186557713450912946074719333671169192406095885062456173986088294722366684443938979744456370224349962920146478464592541074180648445711011384208390263082041787037264387860442783743476917274039345454055872157729117454727147534368200333364216245435148162095663447832103535358595588416628935893928350519593449049576439467885700841206881936207083622745450503743887003892765024317062590327407472489709499432119850367549600667407326873822217960184674911019820020717741785197189572897521872267877097871741681750124043201781448100045081404779741603611124613794578815057313900286237044507311738594074578143068534276864472383456485652250125965179279721982251943480827179639371825960975917679749723182335047531897080805877542778754403136160559008695817556333239613330702745914415516341107045617707312752333296705447096302493122376874180315039354118695341866037297097900394819104030605757302392950977390347881305229719439825201006651110748315669167455191954683142465194075655974170778407975183955988641643198367216692147274621611360556041221537082913442969227449201026832144371593617813143313705991136699138115706307700907198549026384124686667875048282524674289593256482105123594659188950455421632834410237570204135659816995455240922977039599293955400822809820914985855873465580050531517136716139226535746043094644466582366303367586110057755875980186129880720306464691199464115230554891715667242593172062704439578232174192014029915467878793546409478721327449891439580023582135299559670642010042658621016923390212892657185879086486850401732078863818956415745341347598428331834202377950538486450025821098009167952793803338818261068807784406244047787750774921990175238351546684198132877861059915933718005441516774722921215763590144000946814821675026553830655566795245653920961441059210246847762537943482763503230083495218316037852157235282491784016996479899518933915684199017432734335312131827200646575897935144951087927894058903026503831017314946912155302567153790016026910773876548035063470347217664195944626517389492468211476949657402597766702933931235423160098620448148497207133203216675913685403333597303254291378221431872228211896480158885583978263607072504539685375381403098033491990534015380226594254523541431151830755966335467968626468281329634095924530382356698146940344860352642443330706843263562826986497035066067275397823059804746515214110467203169090760908381958286536973716518307228623372927547150689667973022140822657937001888647126593866170407089997234666971596155839450596019736520062593280188534533343930946957660262867896521026025744200571668131529799038109314229957043559397398044233385661703992418291027947569827336096809977866206971385463163515468914156997678019612766818612229375780941064525527444294180030787952735232427086941740352984817264176831850628639966110258480808382894203669024790119302917109118143681575779967280003109737853634759957809620986793499165777225702001588968165431300572582920010647433145012114522277282984601225360908725607068483583899926555604706574667122632796227187247112405614793255858349254307320231991961944287494389540714108381918073630530572347680894864689379651797787646453159545491042112686049188978817350446360060386800701172077142741240404172130246195352699087353485040981226107450608710604690170077684321987298383070331587425399295336697831242806545699140573385548832241684725040903838626077181734978182727518282205925549864850312613581113816707130601560369615209584123950486054448720267829252142575686316831727298736962513014167034190715424314924882074146751862247765264934826890891982868903998322767564854556173350513054088731915071141303551052743427113582763985624081233636698736459342705988020738055305658950666731118422893828399598828182242294724286647154259659466737215937535518615817881893591505288285708402471079136574425543215187332187330934762433088749741338171145556576411822172432636349772444774364933426077616113940789837277032780099183222134843148492334213900659498245695358578039336871685681700399958195681179158442160272821972159981597547280953622043870290718800682636568630746311531373227581109819466361579904977591567929837568184103787812243585645013319158943691325906286239558381297887703988920561493458446496032419979686091951529456538547670648384199707651486822491947440775018410243482335135589782417533770702125338817314362455282508389489342665047326581933561145311834699931262815042773705525405229958030503287973751354118673833121082603450662699844135930971561787047298703429562855977015020844218187296361632505302478438460785016761876720297522122461990459888670005458925519897303274766446379646644541573062641447617400558842983475436781043510681839174739617153106734224410390165357835915557276583244123665140295576375092367850297382226508088946798994012439384020002368809042250238468560588697953682363517561853798064569864972286067549082268864373211202905076951125225735997685782071874728275994649855548763625074364726040713771535540764236212652366587973622044266356298791182605598287470533643526659592312051991550332949793248513794649182354926939419222352839945493311936488482005205760132946937770475141361452204230516668802129672364140645599994810421187398210089789847931780395515047996106156817183223907007217383423839622480510140732961468496073383593070952586729712419917337027540246357822894000569293406289965391789337351408562521843221773332402477932636436930126217620222478584077311443669917890889892540616810745424108797914337910797420842340245689930790139850560435091186996940348675891874051120090740449586476250677467956037342979970546268742555063976911699274488969690938998924464811854291445889945038389056489208039558154042760735486286959759919526879778875116696945431172650965065406431765179968884974957175284879935196010499331251844308921725260956810410223840662064940441914242619574698812902448067353330889940982962288048401615526158512730107540073809010513944826877882976365263163304475542874603614181004295668122488787057180268018683600133893367557138700295503707368273598794258222802379366841183987296861409744215415724190358339079490616922456327953665168331994950905697026533979539270458693817142907078882067617301095342690909535495770328394734445384889074211761942856584754345168396361114265120692908090788798608045431898931374453651111713644588827562147476433533143780955324124622498452894180454022227085496379092702971631090851977591306848135040008393781578534895900692704141597439280717640691627356594374909807527347589678091439317240552621832560980250756915726018225321177764489889108388291974673996374045959419258263800772570524543085265465403258440350362465716791195024252851205382654996261658879097898416559744454703580444878222949657210961385448710643357000964719312250310012055980483769823046953482896583494308294282800729223390389652253863132705897869377231051180154172380288966910834592663175570511822751502954247005960516172283881608199351707351272857425518715467213919810022158161565296047403744831443161234774399747649230687762632919599096184466672344972369548149540476898174131064646866799990542070633723830440311082798689380291066795872362016731241066821685697845598537593687710643086943531562556962904352988383197027933928559782736537525035997582583816760374742810314631859562433371873959421708719041926256148783585422951549312146283549474850913992355869461973006577543737076292324683869884302762585720876270300031826276216827447026216864454504829082664843990577601650310604187326918069706143330143089362058273114507546420034114430730963174829863091684403122573518705725859311282032525515985180873915701756221379236669873148301921267959989652879420611584723805980689217591475059578828609057585174356431419312870871839078681864966549978164045908115664927744073673823707420441101355007564159925737058433904406474704449552309780194051150061216003633355354431044256314989925373580103701066755701591914778609591178880692343661522446277935609275850403288243306069415811662311664528041295000440171121463445784374603766479931356490857813539387088306397567988700871838237514999601255143458354614568514597459031240141045517759347656787201139272052134552772786815701219575918003263839061973895349000092962154955365819475975813600695837545272103310692731204130009913943280317521183151405743872153991332116475604931087348730867132805493565841488792626785838421370400271150502896710473620664493586583643750345123929124732574735262512302155300283740599001430285397656052397298633921881844854677494779717262974906927183490496094825367608398700329872485399459174529145843342073660227804941831282938389638342076464708749661882394080296716137525949595585189978395335168986856034086442483514499468183680368517328631824151205484740384397578434611028466970964084357371128988809946700505012555207260950420980519657718809392731181564562840375272588253258572998832057473205898970973483191315859357417256559554123750755845998674349287581731485284279375790588780599967351128145663025412270079131960628584578054023317500959423230227409702293871747210845989391079151280670734411960021905767599056865435768808983568281166956332247729647856518050896216885452320161418839879372403916999331276725999808650527325110984037971524021556420058807436585040062223739106458078088067900245723916894889127359605213885039832982300340935677295234056457250509269115908294649758414840237335435567186727154952372453234509131119228569082757516327449010627227263600456407982836627853940153008970132216026832703805534890606037929957271585847287058727703345550014369154502926579822898477510394169190917773108862066927066117274991738999326676251920836841496915631715435428173895327468416028727939535630323622434283511705577323289415809368568717537302426487226615994240702061157259248341417610725516471626789102477739887150962624554970159542482345054158474691778376671504786688027531270734175600467799914694938792004282351313676611696946037382874610445360631827270144600739914505433723306856462198771045232819551914389626683667835498591646091417059372096507968941569453588578580272734610729856385487794902557399912655212358852362952355606015253812810492774591515053448900629127233080353643358168657063848797327583342213725158140193141920519701796917809335889867142015523098132608534667636816136957632237363926325590143915405635539029581147086814891607150274771786786048076053569213294136959862874290253014499811441578238438585380586434606033692341305974510391726044727882636817654840586166355633420210582620228312229653823102259288003763282337827451773670253786192862911878156018563571069595478723520792918861263911252151263682625474161355059494823325500175975075621983911759765325540475678605540895370215181618175582487768676072978892674104532433865865314141793093972228337543789682320105672115964796822960115489901745826306136352986054591890595925537825079804353313128600186483995887644526786139801188125754312629719531817050428975692393680088486176814579024398094302091176374196920355110370319040796682840301758990089641221766237638177880318680706692101636182578296330776817106448375375473732395179332489050920868662150424332474800104127072984670296288630209604493121807659440972496756396940712281137117171356240986769044087003521241261331402080869941387011232620769148725227314348580024664967616867767942917023144309540217244060038202618520510297125292153843121779961889900702246219751652018115162575507600721560600932610435233330522093012786842787294188827899443335953869486448919820700899429114214641569210644219709781950467365876727529737011325590956416123805390354645328241662523501489258139354179068815460032606006764608595099419882587615370871947855396550230430253914179631745247163600256356757031581171658636113806267252084472128824334274598924906859876623932826766808096270547218641933475416767320710935564650092176042789353681055652929639089125922317673263318277680909137697941245935261869069620746799019660489865819686588382149253427934842720762635935101881405635849352390024234187828751371667188711264425340542680316469246304861072121165015143103197682243347362868054205774535393931363957224921820064068602201169245170631181294372179290756193264534556106563210504699938535488668006479116431051593185908455662164545487440740324105293527245936089447732728945190335829158500411851679004257876751967186714750947526738948515788815310701738256029678805007032722542017589670484577462009067159943246321819150715432386765421029371144325740554346727408618366673234856789684926544729780287114421446718356261264876193530818214255374030706747895853076300632323381695902065011555081855479760369940217512734347908449880863522251689339766530582207624556602438528739107920111361529249853463605133220075113260529863128324126220289988808697334633625455688296034626634295289961341687086042113739479976696931820776182111073502099856745578090122947282677978786798614018838250891696542340236486015285919820135946456079551423517384738509257824474076985170599476421302639001110834346778697169552308784203058114268786393757750701291114433579775344035621189608822074102658087395945838278077277823326947166838165878076621760756498335886370568928758809481677666067292021994629497691861504257655864852354952613151853644712525016696832535004489628371053364640643135486658681831191624182248713545191239207048681507856184571854157480559357321104007414816533414967297477413683713887600256536929407077148672257270862096078164674982123807637415801471172260438741368078923257406408631707075985099303113298743852022034911375181264999043041577636193112223195226566621213508947960121960626840758410198345536792856749402279324062350458840344736163608109883051991707680958912729813247244948926912496500453055366622954497148381128278137016158644611481438980874860570584914619624348400115377271679485519069393542140459633215209096318314691650268130749042316121119402960675807698100264312920817932043321276204755963340021109463687811713366049730417013107821686563834733247635314562521173303623842870888933801239436395705950065874411777470567420995083605222278120908377294767019775876614376995699384393772032758365013420547917246327286993813213102523281355474348298408147767993233262000153006920772374693057464221606641675618504331728716159558367124814890348291954797228943527545770071139823710153256744649681082557312437058414041411177289664276040942865693437085326820707184851141695820317924498583493514512461849747998861155390635813698029836467220504932267357473058273064391824500998258840999799181590205312637869443706637478973653772797050014579904110337958175982617801206376182247896751861487761610477932400785899730924174984658726413371569259388725747130759759331147252139287503948729045764613195661538870625472157402284776902712358602364779130724134317833432541893004449596004553385537250786938588434005614220027362064337087664848930558571039413801995516190418843188192034208532663280322052343754273188160708559487717270694015424819640740271589586767130000193549487291182117784201958037488512244331992081145883792930054941010942967726331185208303026835793069484809272099327408045761932842237822036223883854105530789394232457868634441515009410204412960419203797322234558008417587660441424386621573064645499312096128170888256160965654159751657426184896409935308183606247378278496001743314573473338015286519179338092012930361316626762202870056996984769882210818569653206282000195556768440092100495668738897601190427048061043931147894932204237466775983609837631998176231173191013093963340019197351959932834939429365650980217526958905467370390526915364363234902707782484111125623100348538718974853521172253082279043638829135556347036244579226845307100695220682284046288378244289203273854692436095067864150130648761749478915495796889373308956527931728543166837866836961020381677521451500487725438739377618432508162651492930755869673749840011968481775162945174779924530653356252923289939582820655086365179026619424216668272607346842185942701229398518676635947879329807695978867869488247248460413125876740640361722658349240684702444596930004979901189074687415422432525465424927046563957165328139731936885739000092372766396233359557072553407831484552763041681510360887387909271568844369158700500517270833668165944474255714519750663315461891981290779135692610887718777639083031238990663792954827592636286638503812179466168539992724731335182887943712880549370689967623656394380851219316435916186690270997602260327026396451121952618871970658798147593935206361346236189463441767281876496412198931134937933174174445309847429068237083060059260063964805193488583897329246711756943143666845429241376039429375516056652389786981278701222316049828903452335598319635864666989803976798549229419544665576625631172361140632157342514541562343267664542917897455387486368766788174868055364172648267771767073944850780762242471505205971138213771069182231117886192414411370016127982868920910748103663868914028613799494575027844449206496168215220930684807721760672797331446856046409972778394372652101171714283295235251528497062425425204198282282427194817621582450736483181242633120235456694442589564009204066557644227297000185832972575581713783505373782746594465714927436596591376589762645631746539246225432434416261687665517302410172685618899217651385268335602274308166460226626490014549973101890590064667257603570017395797285712535907489463373664173293141677798140444322114433474357739846411285944722096920641265582893425828252066266554659131122617901680868436103480568587894439338023119123892316825874486234352431122458685861476436611867262377531638721953014974720065184052324053608004317543416246031495783064727020323215274830455162566539667922739999498251059861040658985994478919512758312527176739112052755703302337667927081841250931187099293152745356812814739976792043175043073003428776297569809074827058600058897256020521722415474960184051312023366491635623091790573506564521935705551917605591710178651103895543921007404348323842004469022163622097023811890727978852308447535235370360344632358979177056910053133888838417277422720747374639981588325172232540922179099234452216997854394716676106841527939151518240482239418700905829452884072403217754299369010476223786263308675113815950797145529659554229448256405204675659242312952498288885086192270128817412537867329295725644739952719467470624266201409976551373972555980427721228606560866375389848003328250854405211882947765165496294111505726272898771078068516995043964464618962916324497468861009240936525443385370307160224338044909281070279380779774944502031680167577863675908496383579403567584331700426113701249546510757244651921048364599571805045965462503081579821186464864945622368372560120798693696821934694405136358678810863014681944137390956421558934378036249918337903001373755525664533575535151621005158319475069547989636571988028225791673636001804565802617209517717206268412630052722210320616253210042348808081812238314239672161206320993488012822805952628305443832789429689764542105655176031232425361733204955319528190151231202435237579034965937344645830700307554772226421713533038864785082295013392795135642323829275632808272835478581074050060845473196116207170594490026703230039184326104026861967092875056180468948480604380601116307823573655981761838290658978076757914655375053008600471647627613248739411284564032144137308590174970766021194329931457433236058793828405405389138083259668536551896606373879371852316116807080296253295270772470092811374288219206510205815950981183910467356562651714515018536061997782108473975192666631798689692820824622770087302813592038683406549582000928255951044284440525030446377649715965421496029523040298687737282337271753924323039463544062933434829122170525133326943897747050772950550612888425162739267762680580189960727481848431639981258930302961738292869071500996126563728601370384216024126462769096845007938454783235868471173169834229111221492819022314239805183104278773207430696334557157603385647904458127767047471507374878923228865580702737979527952225734482962674814539242338613203813482913849505922721884575545436870006589794200438755266293861021893627221759199635909437138413535418827674446433197834931240206536745958017991878534029251317091861089725179362702475559179989724690631634175104580472887237606622962712778831332169616887229337407822971415458103304819702392997217558845709814670178724673779172669126596019168488477068826210030664115266031485239256875996606510962506153030446653737957943154418911743138779433867719326709473790342335588997696734945960416028698250240451707867621748963893201616307505072854954166204444871639441171085526511128659224089875163342231526197672207860599943934260096720421052192007627998203847718916710532561745647551201935081653114334108506350582956661369092146537716827292727351431859185065523034998405453109114933367828294396647859832421393389694321184745683125428972545199427137073564782463872283496834899313205800735996348624648566339186912825195691025329356809201939795620125700016842288677196003669520621528946896670070478252089156085099502698388928272827867324529536647515990073961354174557843528448137418341220940876910752417380162493416586264669137990784867725108010049694840397759423361250624132663823680488123265782768552339322159020001741576283243709519657894615069675637068750025756128054629751379116081771756613553956123074757192042154896100262330978720064744595095624510205121566432507794278248279365738911428660831382504903229052795375121088070320596249453006750441803782378582565022368734085171827457370794087625173281380637122756513586133213123350655719448029196772756386711882586301013818227029711762076697835462260381687430414859791991012338419431128345427675900769509353530940580768064172209327013352744429135439368890049986019239765302215670541372178335074962756560795112860601594337252172727131704582245970994655235657495030977608857839440974707119727546303450522886818676033104215733576379424383399945923930887398223276615804714424768116330738210693818151308791931698865493207200065586933303301025056597280676257173959939254001184192162281647601370705228089457282471943694375274692180157572834748445287976752524674050960253478681818886869046072138079139877308008350759066077816478279367865240963029095408590666136470385210780415960509350308233914743727659219375748863682526590157272675099642720662343188623358148115746540212238402931527183693788519879911762303185593597011659348600552696796644601854065035579460736019625240283479384623347393518822702750428868320617868113406427734201997351010526623199490031958879172877707779480321753915409508100323233248738849610043417124677986581734310064890132720884721946889272162555984487213279819892955434022927455512180760570922687788512415256292332383707485870781885745601648291504729777495059873631656183584705412410122280893036232285218785481349155852707282190245891928478419348177184767392111897459533980669917298009617068453020484399273144939937480072776920123532478016127956787627188460057234765234494318793777772646168926248946254971720616494836767658396249337881423545088108586658612390173620579100097281519759867567832511572910829227831130654210741474208116116132860218269888658800538309127701753535760462445965053641649307491771379229134645261600885773414016444859453820883706140032441026058680307532922065055067843026203674771122151511581996290213245831479745317102587352421787448545093834983592562549383851965769165751209335954742414818194921093171338623074819258165184298123801466767888380221021133048801470363865644996002414581059127367922737518655208293566044398402820156127264988453479100970667175922196818965009943821933143598192181991625999643241299685009220302467288038642315326048331018865528084068656120702816991049100766688165802100683184966458043677900598962084045993668369168825423637070053755895246569156632033097157786676048051912585411736765372068379617856816070563182085548878539183918094844206525529316226022063440353841947836866060564976363400399554813555803765548209837321363586204646361801814797410102432693465508972811355652710496795045058396716800392877032655549836925888369502836615228465746547862981269907789736181672725695816562384275216238218072427722385103012265366333393397191933301942236409863543430255848771843391990877410725670966169297897946229711420794746880068470371206753304329579334787836048559844185540938161525741730127755509243198078300500033645495933438434409469279585341576607265092182967758755099237053076412246246641233069903681149314623389938150664803852440750178957883667798142134004243739355363692587009523104587928210176151692244984558352040482999069957474172647729778964058086755730257086630599543256850017090685470497111712103378738920837239034620029727395221352948622562922644173979836876270680489308166754201857532453293627018229576214871791637900462618517645149289821136319840277107583913507218861953158377958731552624454143975613988896559709715498977654198279758976409588925028481663992833306940282482810138276263233622876644037215822990535395297916661169727127071911484102919102356130561799438906098480870342055688637294483361580416895525393572577511550144830213802707348385530288367114387533545414707639338017927461949697050835902204285944538813209962171872127242236200370921862319378374089858419854795591284622937011858475309964462982528993576738907189790624907335755947850216080439144911429515127394527744377238543543174035811154980788109985856100137511747930109280286228538672272681826922280771603284129425960021385512581852906779450374310683275163030371125455607963251924707756477746891198210136672182560056380551979739452956596869723094714117180640100070721308177513029529198628802967185313384798483694712236553959989762761863152439999121318875543521410602407249586043310664357212395111692919591158000252078156644687478883752177517868606678443094428939386532034552883723095619495622967761032956911289436221185114346790579565659978789503138176086894703626040884422344775879457976965838929864324327358924216150933848924147607632607940561005031549933667722488528145683750012970178598185005274031173127539436232557365385268778756134161545611866848584178814773428892379674731798010487465729945213022911898226289554565279787603594894165863197036749215307880868093236694755644219504123613785874224210896800687367812163760961154790854874900789828049218109604001954705784517418865720994894009634091185424472206527123460555863079883835594431172715024560916716186409563158564730489032431903060281865871892747692105341972802112510569060615297380610082200426026326086096932657465380657948339440481828363116474869411146109291168772726831177544770728604526320246037970949424421106709538837334388002034719494190074368385601514376189549203758655969286754948969530308371095889147514557115245349658369745866101751140988438124828596209846915474707478144750843325202263423117471699515448857522184701563774559317347909763635690743054187361453659423536195072172382702802712916758526779604558332667039820871023266529279268656588212098295407155549490791349754904770851169039481452929015872723737806462284980952197569766394138573344707030385552061733803643831742907445910072818772982911027122671395088788361153147545693618366282761676497943224437450331285224130822097582347869684976375373101673123393762012907697252424831543929050961003691381443644637613773274522305679793346052008160952715544089850377569127180648602583058812057422180761493928846102098252710075680856809707409418536101988271781078790783277560513665087125058738416708046243479717152610658884227028604132634655488450421852763369332028053240739622380278474863607653491932881813645252654618013339508103285199035749633388562371739948482473553220562022135236489560454158703155297030010416796075964789296455437470579357901448340450375709255894301494029963677705615210715085174599328822452454195400332379608549790048688436017079285667443062664120087371101899799197948814256536369374137629150606483584412797412218733327035174105439806568511110863237665647009903614159958185697289902534634248451981734094511636806979098242150331990072136478669141046782332709090373048723705908534024632276981108968986208889901347550069816250746896194770094043332216787493657757384760304854105088736093222802220946373314420303946003791116458806218247634150917704155993672344621320858600065840541926232544248021369047688999131389643732807936757257259950310504322577941704372260280843715901181987134857098773981694618174089339192505551736754226453823216697870360915737269532346913861229947333600242737026018530427219735333146044646309422957345763956074465007026194512579465792889352792037350201403251861717047417692919492999324832735152497632700963919791565000091521824766175914840274016121679021678777337255614855238594189362418701116574064485737013879098206893046743606892350636455093937405139006719198548222509355321239230853980282970894814773116458548579135625059878150999591408690403335993528115124510196252112354092692639706645675876608545482450876524081157287699299448759071900942733881092904738818404106221083760813092888469446361528292176662036727838524522920278306287367376284665604542315032230513261108611077906973490917712018071938571810153218212985562358026933188764694857181362713717179681678281558167174528678052414021735066758296548316764340182298558859042499250132631797558629871587576239841643547966338940571076366336053050395748349604190567904772877742871622104382107506520322712900321430207816977747910806502787166253646604509608311443419575610141971187167022639875653130143882964453202569852035692726444054568123560861206311247053996903473176063914385385353665454480078835289650072880721651220292856654736563425165018352501052868468083871860414943540296542490419077889200752128081763242421833092730339691809653229491785351778298144255867803199925313106467453569297385573899825079760175789925238990005307733027043521569455009783620393063271659070778659224184017242311830555242678552395510190656448903563566036790548561383804443885724331524654198729451433635502616992726141196792355140071360739130047644153387582040448785696182771866602194804775544600503959176965096210527651025663886175582474037978049582998644026952827493741618436859900904700709504701573001762883456246236719449504793290803678118216970750357115051102443498277032615276159118058905521371926798733866264129591085553924149580199109115604838436414512189699079625659908806499031552885071477648289080061388850508792389469834731869542188363589170697161981242146300874671591298841598843085978232748263915896089420208111362490270125073778754605738353784976089395542410905424588771059456565655533783165736044460583980001507497913767056011026981022203412202180042314892396262352399454059361952811411272435791780580549078066667520753085476972305377832204571933464010721769970763095862256016625881114061169829369312870152107420972831100404060916240005995128462939234698195960736456027554849077381294983039535075886296811618771936719770228937324899514273823139803620359326683119711824776028963254944219632303038821084035283561951726848467602543555852222782822888129518199544225115652757880019032540939188571861172710536237209561215680415494338394228890017660817358505347532824207247934083180008856409584700510437775894907881261036287760435194454213911075204565873451421340429358814684706198882123075045357492562661191708034681733845996114391807735876287648632453083666939428857005144923163475170126809871984171004405010995301449130210781934071991389290642385382924669562376075782752625220448247863560010663154121115995356513600256340628745482725274898382014339847815902044901658085169460042436785132219966428697553049312773971674703604053940691025022090667737933172510775520005874497063101107457703655021156132538039061290167233183731364173145889827488701372490218732273612453631414159747479973967348757688772744186174495224601421680845447645433319198857918606081539102340257511486092063391973612193849673957851411854527904195019615701919393074895121632262796353045339531561886838698315165921583786194691359604525038181895233818907662968195739704654530015048988251094436158674695431214575584358680007436222391765982701041568784157904839451253775695500208389904916006273154116283288927736867082743096996594564926888530411096256233117475056655796391025634597904346834675161127783609287567307638882626315971685348841045366563715122278592990615484514738531537827997523359797343170303250010687624145717771285601848223678154922211775018039727735021505740651559191824726298970103991525096899189952839862307155550815351944020507470327131538964737306200031650567492430869710677614123536847017516391573592434059535994872524672532236482298576889743664473785073549573237263436668407061458031611502367695225074574180355436448594398231516871653358510536595543815900306456435502368193059634093835320782167184843277816831936534270275431362235878359742865646691821257759661860810757589277596387567951916025494954107489120991618080433434550246407425049650279494590188130491572105775202891142967425816664403982474696714471662191306842491294457299925294017579925192820108014647897131271306104334249588908290736885713625683198354247134759686853263680100470981642103094035780308095680194396521758983581540904806916268786065311284813871381644325494805152069149618537839075188559037361261616957433314776522079532199249050311248352693370701181930666554815410497765748881762314879537329573604607656895679961921762461076173541868910435507822806338489945918786346996023126904144960152361180138811425282627292166475450810683789523035430918887713391873521164786899813503639234904605388085132608175553705817591572124472882429428170541719960649490664733874296743159585788275947542908704767814143054808483383031169490306475884806837108270860297746660923684115838027867263274943317496016569080239790512732148877354470176385423713737081701652011639620447830198883944462978744379403887309640085219937412642030324526951792686031755199389983595959708303434984824586745127603880198901138301637037249179883443568418599788766088032105376119190529034465679385868384004240392176218969851361832639757805998103198099095936746790245826530946907312534774162570787837602061544347793462650300188971941394656676246397258489710092394177246887425553100826089695552873593034004161920927205151313003431959730322992848220352707017654170734629320275449849314861423527476723476044640766077804025075903820840014208074788291451323053182876800529579605669962070382153025774860412010749917311898492722397444698701840480198075421702170133327128255413873662996268050641163632352682259394578924994249044511517014297961928643421035240143188595778131157284353662472644734589827282437359673129900805553400539250368100589645963711251784924167112092857394375090758671033039161166371996257033488870792458600200625456094983027559504989720275944211826208043005348961359155289595026229441972872038056413663564222721001835395140825082930923935046970358204683887413610968640011452541864561564083600294937727210512362957640284017633485285103375510638155755322193898345603936369797322680877252527501846948263355116566557456610938293606853899830450847680900709059533710066027784631508864632851311801005860797134752152228300358024053911827154127079614599083376463082461332108744451379848454200900208011317325865354649278570120916216840850230273084576442715181455151769280195549785312208540057755468521902865016940783175214705237470561279817596555621449938241343711002193126516308910790164159260425154312297759723068769955980125081669692002440089405306009782769791694416889685144114618775661684674159155177669219154817068442530901165220092786878543755715991754442861345994926168415102165385461682804366818925848462300353872574872469696364750110879345694761569958565581952311484879402206369438049255944778652018493435380598175314868477008304484343497648172834899732645067150032746309219991195368242443537746795828659961658657211563406006049524221867487884092068628342716734201741159739482320349302564256811262648817831782018642171641997627036550260927415669273800858755912284905834944100124513728519332527906540735446516389657769886449490390150880202333027736391741432090502331032127683119681750857393391110621729388800380159595224304265178921512386747803753468533271033508895445219640673000317172384308628499875109091511606541937850434220955033525611405125240859491643368679752056119273718938392033166315992211761506277470152716371554870939020513418296665552012149657895961995222425816350941969441948191835509247448649005387670839906313500630072158117026594098256458714674616765986936869589132417137595907352924226750015649728956356245716192900461323960656845192804884321303644522894847755439046536102564177850496674430831321465173147787104345280037723598274873363034166469341196205845416845303946553352961734502800538066184408624591206295912047413674745291810768241729512131568213549989109318768017587560895103736061082334289196373972033589986080269036943325910723046670805917173100552201224059046123988409206431201600544061589870780521649752737837809364066504308517095012397050541827023602698945737227581392982147926979310329589936150310548413253041682873753812785065766292036378014371454911128405438367015209039964523597651919774394374486867711928315267089649816085887161447448385632044773454216668876282841096491089635182626646297277359803423272249425422269080307808424759819185680075736281887979200295425344617690078056029637124746299259246229938181197292950875220742759060099691670400799389588886232305842990389732324183771453286707039758127052903578411658547952541855436880401838355915068260981047511784420587179618296817652032227612057855683947270563674688365732330158498742068793485286683827738872657101338793737835314487610625010525298210816738836575795248534883182782963877597377668738579601193896479031067838485841641073984212092565066397495888173728610863460329777971240695182270843594556397332585930723416675161374548173156332772305556574511851639268358454743359502762365593133293200266442400054621600170467764351380427789042433869611617030398950607509432341783430307358207753506011108457218405011877148857266539640643447350829174829636811764286684236656184832963278166551837941444739007804039996619034644941308093690020336903183544888768050980135076389069358461471012066880611145516048221433476827030683154932622944099339970179612330576161256173054536787397049444999584388896412279118282701315613090072968964377973663639636332400905758573372773375943675067886904159165510554073602182211177435774265771550098481463891812428793251427125156182623513688465006057451032299524964620497877895924976092064023534646971064896369509555728324298285793180115416103630403304920025443034626761201073641437650926798385827241382823882515095301052208689953317592413274067343484354051172890645886883439981812387000971990197337569244082247209306988443178652938165573415538965047779283372080274890039113387491488542451065579654361398505742844650589981306556529270818081209326282346949533562985543005784610346056027964793388855596001501313332712944994881234990544245622410381940586897904523218022410347192953118239634473880696745786904725982558795310263492767041017967072973798535718362673784321244866186360174722650131895452380943882070043626543093500394019913470669188803487557295717938857644102028133072163369117856504648103402990460094977395771276319657787777038746360162100514574752121975713900030010082725098747945763229098387371039910362544145919191775764113216878802762688535598939013799268750265684891896230650658135387573428649635435962223574761063435737163127684251292495708020364015436609805147751745353927787577112620453801164477277989887595005386077121525222477261381606567634059944604544907711356756593157107518779957481491285499054625915350548618505190879297935077538013097485165069615109647980510360481640230751486334641163715560238391091059191186199277375523214746940830174677751903870681769485627330482127663231647478091412345974656235586413486945257855757110660329395571693016872184235921465884479839504281544535551125910291600021709426624284607722276672817150758838659811517298247485673769075337649373955168086825292580741471026575887801827055816734412507213419883615912347231767532424447626419346600837051659914546100513691909726322178891976343809614952828992338597084389453752709555920529072638107618148769935634632170099551336744626650430770583373736975560286586057550015918562228382886664174898978777016710801596260678807281243046499174427966067930046522672920761014643230574990519408859385004243282022555029709139195836553276270437859071847401984216365029537154679712604506464259398082469366778746369018366680797394229807906522420509202790082567004142834086496984548779023643002231752189081066771521389917513620375667039871228800486628120714279439274923962955418596307371815662105482719319746623565945157199162986063650373004772704395255943323743264585747978616031786194374474383214623924740325804720196508919853205034210492050471746050611661567776048388627101077296311791291922293488273605317088036056979991502733524959073790088052741690049751564825246503418505755255724358634286559433148810603197230781224093744805394840757484501658471087515419292430708623615917596765778397271778597762137750767258324508634655856281461289198023762358724748154793228752447529040342258175485544593752114739749937805083502598828626075538078175251694148531166813530704835728013446776570139254144933382770930251125883106664813041984933419798653940985875690715041229898136012503340465542700005321817078827497819536300475892951548732186483889178268016369620722505455274893720025924412272639460277148774303710342359098337373042166718941704840134847025103961363111937505920367425622030826620826546833632486934817946483254778740619109610389286952272928901978048291346049671746494169317150087023108547300449312392338168480710858095857837258852980068898281541818490501891334829939109273734959280801560996443471135683226867008855506064050704126943534357675230562972899200259639092838176099802966239203623461956723028651844603270115994767339377424766154541475199973441246338756891422717616428373136844624973667128316799689006465927571288360759157289331837380745754330364720410974434486716134440645457022143913500575128977891208650578981455009500841846410104144894487773540411383006002266015598127938636393024823946485418785871099897926318448361503994531637144750926324806728952816708404196547213616093696266348692361008027333881352303570684903265517075559859178140577998063824831464820780621709910439394288177169432217274991877411784623598476149951724928958624617370111494496032537920686359635512486976293130555963044337870751792250446639369047615632611847455205924135759035969991017438104863302135250921609469755037069706521724897146579859101082520697348968138225254146128105237674500738657368008916391823479257638225890562336096058038097994098749895029631940453720115514245089668738726338112228119791660888690606128697297245436736881316241729370474289971779605441321866634887305452253013496785776105835473446174398365545176642240702464649914834131935072219872597355731110675330142201194166128076725025269692188972640820794181218749705223480885312321771651199181341666083860280706757348749386937383085869996033695250742461207248456545655620344960249329624776560965074487738174363156795328515712366801580178418470530506514445106301053801630882815873719457500595275593591492593897161327475505256584380988399575172872347642249624083480749774006842602102245742810869174096218227672794427914838909720452677219064029598152911364115372378116710573740690361358520520114644679221508471217627424055080306356987702055691324273935564186816034716069146896212952440877247542120915211135684130253089391836297328403741054848377806079676675749791755884518428092240206919559099407147359299707611414382307496111449602784940125190862264470133791865041693066710459648528032416979365608190342328076462936888966424252340693974853738916071114483938159143513063267107489249145521222957373516896930917943322311481389778279814983958300029978969758381060126900970212064925434503913094978166264254658142227485101008954471698964747064464149809371098121963441665690049908718673472053481990709176853036800310656511612211901667237427857875138043648416238110342742817979364532518708067604689235935026803144295560275974448167997046528700623384193240074522941551177432962406059743243611911356108461452923505480770718433703336824352151908285236727991647543358065031041219257392209784814377787694149597087834720174822046157316303491806739999617225922889654205059495901314208394348453970562065772375253117026928550941733332298532732265500912744579795035506678409182586111950247748962622139014849136664350959930961209122730638431756394672672996283638619394522428924956367380710935135337234249913839435376143747531730579769390295635063693592502653661060719361184075228438763671505133015353002139492706232191307324992465944245424934172603147718545090570752208184782904755005163701850804365976147725717253022001385309099045999413957083744076584447041527653849734916989565364715166995060781410982500145225130926958117896592923445616352850316018009065337991859559271654929210573308594345962048027520242951641201594511171972603226707333097377009142639165152331147146734001850531686365423060717877047694182945955375464970446420410833525483101140417327789484625480800526944801087349663108142805646636525944067421454593694571441349962417415571479029572809305808854403830061080618176664917424055627900792199949702322472810031545883174155933778434047409508066599682532253637060656112042258709953605428518805832370093516928857871111655749022115499458598299230535360061926889828796951575675668485909705949888479531873107653138775490339067031230062917746225641921262762517409842654030814644083668363969590134785138456709376615627526434652758722314525439410410603498761600344361962757294698278732884058696041744231404953474640769451421824560350805780943094090772868071754023049368858167275979319392106364687144196194790686725075321877864527505820505908680576241789685260259205921988423500364383404546400706748017336018551562954610327456735089564581737152061011138119907089798996648721010579022893349922335499432326629026594584233304738820698654049785935696141926945242952675775505952601568166935460759467252859015702438347240361106513364542451221031806537671271443197763755905323142167460773958135144229560371995722436579901670824376381183382922222553572417663153095863528155681570056143416025417615280048316289210121815081175833745968346473833390119851726154520634090892360589283320302084222929741930748917893820951164663053784461959035846210002991277348103214735786567602455420919174204849407126329895542045101363910084417750464881361078607408436837358252958981059850614215798229642757508392538381106165408899452690605899991735147874984906385523445933002490899511338229148135944605647926773033445476975424303708470880357423578433166535618152711466541119437125645802423213968864043818538978561280580648884897030801302518864662150772030300156622302466709067309658207569971459988551124696150554067290333041942113009751864549796100598449238285312013276301333707806444461221437177565674291841561976569581872695595370476723954960128129734160964403784408213554017623695013636316906262736737617928544771196975452712893887878082043161311661137030846062376051239471077660193827182706725126396435637442142701601479567822903327761176809333663741866898902067182536294038245094301996612770452055840163151880637076336769626529851845266753832446994805679267907850414254929125510336020860797064723052569509431723867277881741536467173848242093336712331459238355010749418391044817392919790137343120833050063370808201595135754073747060897172875535073492762949940229227419075549031232673049772863236762521573380109390669503023696428971286579000813425240803040619130320190285518579828605118214724656561354484540263480853241528394982017773483938568095912136731310570607090156244508568939545618995134937018643770699319386056720353415669441945144972252863448196562645503271808410532513015025384410260995754155972138793381859627375214313410925692502842020784765777661168600893419737349381277362385179400608822285801840890336851031155664345334004725568017875923913109140541378481163029389947145669259521730757643286876532274630063728753530459397420910735166562418449131843403402544529457003535821701310822559111434104541889993231059085161211432972067702395249407518987709239194810642578984482117320154959407071433933788461713096065536496435419715708792624511432526921540182219371646243423493901470307725434136683703496161117056161558181364427274694475863449271358502609771332871743986863073115860249520014397904561133064874982922512070713800149958930430036103336243982853205221381892704002296172998418072573288552881848709593257318959123419232421913730695401665146105297198350734212871570629871816087987920433715967459295159211126328338626240995997167552154203317475531813496116284459338531488155685709412535598121464177702419034367272413495914556569439684720020552459735833080951881805553848150235464468091869184172116129660924323374510571877817837476902293887582872315686585758877812854316532063213533822202730295958193127103885674931073644805425980759168610739977621837448362617632251963584302693463358134367638998587724228826156179793393869829758869671718564024837024972176539208024997826199794539061160929569663095635690054600764246193747140964354433085108388735754149783521476713516759205164144010067487609940816034849147149961948978246560680551643196121730771824167601450868263093001052179023323892529441963110515974880186152859871900181122690126916378865526475384588808684913543993554356096114376955519696478863960346614248256170527125284473276382223311989360048786088076305780130344590575561081978591715990817411911877279790359144622328299457699546875643175449582134231095071407042219497845334862759176417280200191610833652511379026302707112919227095090344502848071299760836315275634582960974050896576182472220058411774846437933136386165102546456597652237368463854368230305686152265811484004743861464681678413017370269513051118696761487708422875160221778177836612015516512507584634646326411995977734131329405797605451158352717619954774595682324308665101863697407276599552604306544447149977190296513502256435890831386186460739456264674950872533082701128110379120855216887452103940527617149580050371576081910992924717848545845612480788150448177935068016478872057657975042875994335231643711023511267921827918814794215809419339030993310553659410038151275960233412294597713860364027765666104810168728716259516710017848920486695485662233507717256851302111412544499016849437649029832324605089137361976176441474965497052801737831402510748346757315878327723862103693910271428002184778914736284805512467814929438357029915305007627479567335589119574859797082699051052899458081646961662563344146325549997704701611243832636071115141438797446557641632391805770710227275398402447655425656998778858926683415801164769708591968089966282625227551657581325107164009440525491436025084666376201157323405006328163408349183840604676610148691271384673375333350366836071643451163592747674348697387963133909996590117498259733676603530424496294483228617581178178044606797430843832574338025948950929742278542934550927535865112219433650008361878518609427451654743444988911377409553640963248108684706819349083548558287121528873283911589864180617880665399168773097768539233043193008344987635312271979487869450686955789173743425711479430952446491240016859359026153553038794996051577964121468151711216586278666341679548968356716495147817470017354060595115094385518493205199700068145906545758914158801456856774057297278385632857954211378442361063166285349247353661871547533626835191363213684137372133652847491643435846247742866336243665964490953465811870740013486381052892843705651873397892353047656985171897913349321805850069927041427052006685041835478102269337798885904970124849194103357896696861547824474040275123285042651191308519789523120225129713889176607765063227034719638384902055699074522699378543040597318765423911162038070668831563728929081944201624411080160593751564260139431898583585183382455214726908477931176637765038798750326423837444175018271421655258893521431658809436077944301188995309025065790272337105713376622889206720458488846883109301728335477331898236660765606981005801758594612239769865601936721902649651969966062770050555760920778871699414601778139017874844115120556585946030261869133094767562738702001142168279944207111307380822686545000337342220787054925901292308848773521227076393055319640690658623262670575562160707016183011164927949608814457260755530152266304924583590542462655881333656863238340758746322228758525327506171482785585734414530235184789037843036080134912964393119787033980264898572299581157278528705147405755747508321580472679813482677694607180584546357599650058064000090229492034986340211793429283494566640544330323032967320894230062827987122028776818170011497231881248368033452587717720735597364634177604001870232376045726495206141816330185348109622857469008565368505814425358812330454047769984824406300585078931155938857175638809984482893461660494256781224285830577240843253530457849864651960739655742055946616260115407301721328220290613635747666770590632087656366800647174789915765180079290669485720995371029934999961613663555499184602261583370375263126940562471071820417325665183795264976619537926601329854461814703989192141717175884583574888883754292559624387016927147742324652034032553734633791292704157346659894676068395933039054582427581676950902169442758271915578775696460230140600158108473988209053839501155579445424974477550654960702716144216895070553429955101637946866997097227419696971931662237537012005886374151824835976887889868796112409596377721740371227165030084900539994664982236929019522266261893920881631577894623281476520768068447492481348636472535332205303427167977924682683654975541595063333188689379867952126705766224104731530739067172348001073271244735381026831499345541888475099082020137312120588176923231894381851450720236237866473709415651433860834611175562374406749026006218420414704352060137079373087074946776039357145850284893938134506418969791629114255038395191556886677949705217750164243848753381010893097382919607672348938170634572717877004232910317903323832257091872925159985322620921486434905182228268428984139304971039613752649725619259890178400715571385683393384637648100332556166441872541627029756064824125182810865695309728527453255767186263273674439239424885441249450556126276831169633884499347220803816344141758651025659503847451242167443162218001508774671482238924295565671245752141503936580692118158594419849426052620305064422721407935756355231806852502622082047123236533536350389322462865137111389467073373002159520042289608813403765122799057317429039485680119521181479908328063329224193593237089952265301660986789019777343232801158891065573355387832848876561713522349087944535025501328517697723784957388352314627632714590117886308996071091605685170074936591745285455580449819284025133442687885330566005042266867771336142360916550252484868186509574661147005884775063374150103143145927287667885880050164931212887247320216686556054939156485610066237271530931763791988744947754610378466601568652055572207962382530612795392155028580433607756781920220168236703196514805405590276025879026043083802939002285707854142472635950486424288898942535982468505218985242742248870976804433820801746551512769737030261574354321766071931082363168914734824725995038030911231128712164499461534216737418663237588915364310773928721899761291430867832333719443621382882034568973480887585199703194455575126985726623194059236857917753550264451570709820569953489949972839978470579609019603721259423717793602905481143394244508272877297788698622591710613766673793763665035314818681429379310029700737345239082706284525680184589480207543202630025525214650140065112313397465282840227299530919018440375913602116120416687714459807930983026260158311906475287192804469483184706332434081573701947293723505566388629425688265948661142272285042466282955112646525710638698914490262337426831419104233677710864995502426113451535592263544848431472426800196724623535721236173030306268085841569067827559589980130012131279532479977221266218432017308756325747384480238715594808106130304393746189010909406996953926819398415644882418617037250722029454619798717868627022589296827313470138374250441937237842460489326628819831278140204644438723336611015244810903211968947765846198887454530483448538662265006265820286113964229613830893840402123333788532848045762513834507507499798817843340575548106943951937645084824464394394377005565999674039285629754393237075279362874184178137100987679881234412562170476411289054236435619754751786604329882430940551086684881622142396877304454846534112551403857380071043328514022538645991922110473980793654043101791217009067934787346741943350677099025171832431608510751520328202386507088517056410361392234732524417243870361978619298114075175148808876239866405898127644997712631533588538415282532416935829881302626622315413040834484116502744661873903208013741729683933787315516688268791031677597962537377921221156726585215452339553856721136270406714449336776852844685435721179367183810398901536431659228509883226738818258180499133833832941425045968372441758981080076646115140708315653334665913570045979252592436847679950563927773413635565833104349220495036199715141606912924520397358050252350732542556174423255195108375532516443952991510418311991938892784786527435243776733406502494947187488134885855450668813065453196860571666353340884342059356547238228137820090635666518109903659726780419417141666286639216987988689388556435234031094745929602048368465360867942517368448392632840659103396450583594298077587024668767140965218879994005264394875880310941610949817101507840391444242524315396890067691902403847926348705407856445494967570178416328718709801393961627944224041729364690278303330223608389606842486427603298625403238486256635937454406129992229989821926735193391504423169115661781782067762012521658425562957974665175405030624345124040706806302005185754112973499655131802392497350512462496764032210843517048528717566331897557553390245287213498532534498985671286826168113232935104232425881553071667126704029938808289420066057184189449772176588871084806152696281666681721438564161312434542857335928231385754828609353168362043920148182110493399607975440248791140059329262480325723255782504367301055075638321678707977595661629529014044577102341602969731078088543765420428440110189189647375421967665455704517327115279550414975522293354331864063149282877447120344048791872290122868364267049652358776086758699936664140130544171859972783644096685993620468440974741328527944271733322403650679074736031699913357498859342656536641571186534175998218284515029534569884831735713178210761174591065692551549354094574914927279049454511649439160753486390037424398037242147077596846616896649656155944751820724075813041880351564208800691974959109195917776148538983530873770058256515474765368221845139137061405580065657016355085042266429503704032093640545628143595905411075657619060806235176115192152618313035913727489901561817727754002744967302246731321709106161929476374441709371176580563699431512551904201802374394379718878690981098680397221860131637974177682102264529883672010521792655461910506254993892239646061039537329461796055653356556474558270869098625259318058420872158852498731764336889537511886005370265108539125015218120599538340540276715922178986503306244277437912119920802274494627363190970001153817908626418779327978441568752558796998815112947425350154737011525358970298281560132165730156766322906453627038758878191793299458602064361103859468764237741486607223153001897374644198991489005664708974110300404504605782915822136446687990244679820625814103338484870766778149263345984220716528291495649497968596923917921788751123314499924373612860600784287968796072918443990329353356141492071148516297741457577538713673511739982059617821440197565554229709228167935772349642310276613363133040823110102428837460845395837285196666254250483692426836373890850921799903180078296155435945720839728431270140166691214466528008877052533426408040570517163747942464681419827687163541311588926078085824480397063004284045686060807207869916952987362392238473697697309839299345193188959018051002457393349598506467070284620829093506143164597389465137028153436402734060704403720247036996880420592919844329479373700714888109926193643219571056764735487347985022267027791436040490960955240972605668652236896900913041225433730035717055677233794972960754483125698216512985921250500431630558848246473811410404239425469648565643784576774023048887147287176757982854506421577787734611734145131989512153597840549392379089065793552129902932496767746062607477186504687601078335927306842212443207959790444315297088137984666606581803756390851345669307605878225878816069475518181429822378755540055599557160993596600667327298928860261398698607426981661668045123717791095936876151096572141518843787872978920697751395167571135484790349038445244536265229062510504407098152203581316137025359902299628895217064346658011002472893034211828767751617861285157207308394051648469860651585368798486377312941615461954136360589500867697087556458900785524070293938438550391106142696319883979429862701244252097463025003442604986505449150838301913994708020329572814882107570924846343113838741049292520637925107979645933766294574514791200318722189713834028644370131086710150603501429159809762415735971967110980356570767783639093395236699630584527805546171637509334076967650601131073975975611760605516992024276007546198203192494459529671691226931466924249519953244273081524174059303089458893639481037113366586650341046621907421545470438562421146330310905746284138646231378292788697618727069505444205649273550981953973707115598210677482495753334176473235883680119613707079603783310363595558053947806709133192513668366244202462690762814796591817739778562958797369389177674905231397163798436602020166104601938624024628067536602267470674106155035672877773721925399814918184130333274439045146987998757757921736736688931212500113888396965104503443355229585992664177097989514928116447939743313628472869285694764908998773799437974596091003551476556441044151992578147478137399240554468548694397027943482269048769845221385691063386953465029951608441211030054480053261036849883843239767322517468684621765573245165416257666593585922631605393546182134428521378106768503587078282739413190972086130251028902934807251185648189131740770566677888987382275532339128886656166144122494752877041237978528324468979145204716186534816108551868092155508098191546089664152034640031754434420998434887532610483682821180738381552979079823856985899682699476732659144634999471622275539150685645720829044073755944959030267872205465061175378879980170758081754598395617544036812828475520567668509962640554117116065299957765854406245095910177685642809353971963744745507693699708280391257603845562727682714690063206366832469194681190744110521123291196329688668006301615834829580304580382853009457780785595073235109417097047249344805262367599735491368655640915134304036863904152158521290609518178594633981395918736841691090381096723570976583691964028990871472626263177887377132564682478215459129058609628097907131391354872161548860702527326092273958584601334603823010697194144833902745857873326375129980652395122515968009871441228987640435523622727688382933570766661226377688937548223407625528854850395132156297305958562269971200647362853033849954784825717167917816983576294140373585537171975956007989424993852379222121529832637051558991056826677947691174606476874050901819437041872810547102713106689400679833981800734820576712700445920868976786189684999832217305649351376938820217858596989014222518047006946319601978745489306596646978846268341708987468362018218971091982758331814239347183440689055752229214824734588055725417215445283762460435279330856790596426388097879091361102060284327953463175437862064703391813344715645501908886186185606392577074490343873565533728651041375281163656820459506446225653164322132537580150559057658297649498187277579916921421959649845098890223508443568845920521745614722981707457549831613891193916063375572730740429529875475834842482343802436903166469721061249620518734517412242463549822506408525012139347421550409131203859921261889282651288161839850252535893180975331302322648054265330075397389321152313245828092110129596887886625599089986709437373968080530259772595277428429415252850524005141742224030524396003602729470471837597958356833235305940717993863907189029257273040391742879724588690569531354404023100053813956562124291811014814073060477213795897381164537771648290523515653403581720667749361147289389871246113321755361713451759541631860676819094628665719347044029154711634859132215601605369766395175653053531591354068506554620437202233093047786030952834309293624767477995102444564328915548521135133519042321533463609714924146286980068461694973953123362064734858071803243218061564592121373291292865154154369207678898717358270768921407027712960140035192939226716882780791717311012577825344857913072509391740374407720282107994065146619366417929766104798204910691974566741078877751233360948548181270035182422233649388098745300975336182586937256305060069958081513362762778406888997842743435218740832080541954416150990547162790876207341027948727237477817910317506218643745655217314257596603079251796214023518228725413794805093665606283491926511965705061455182967853193015212796207568634314590428875854148359931847422343378036015820730278465286041730061992045024934043631758488530530275554170483601287660573343241509653405512862339240303595969156022321818268860280599859912037935191063133735999071865767709884079250558047001698985727564110942465661323463071752987754484404232985989185683084335608140259722561127365299156973365899472454429983121858988044778139258775639767519164615412747425346567410061374180090456018710030606884395547968353381597369922907924648987107321823142648152456303022453308419142404958407273175389635786650053863357536366005547740355609848175054783645923614185788152933379919199887452970205984169278452686941206729557324498148747556299855627618653214220837210805062575935382950510232460919138925449261614262116762906229492696802038560802890267948877258765082544143218567565691440427493076130519817724397994093388494496703924549523112770874896966954296280221735950201030821442842448414438172562413463513532989154706358188219151075678349842727897069919188695566987787240591171936530580233531673564558247615917217042211888107044344525302796572764050120195923868757412632979912328023274477704357883555646710788853355830389556190466298396703092640656901646823316052972506274733057714413432321220698802977686919271565308472234879088248182851143984127147485642344587538726594962473214463057439743767779771730408139742097035623717615911732474308370736943143847815193310795404238773822200169063403504854521006145957098208368015652433827114676991877922808813181452524203774166451166020378113341280209176535690638109349366853378974771871388858019928490770167321207952689625142806633472422865864130414807989801495225594418277040739769538073434602098145145144608509259172769193445506967272715460560016326108828735864066553431766650444565425391995069041232300349171470887400184150250147035269840373590254852214324421308415791637579616138197742018072077550909885892620643664383888995017363519916323675313838652422042030956575219081547996920381998052299301327272943473979321092272025369958365788400722144668381204782010354910850281096763031626343608776819875176158062857439381588202790955107928756656384559750095058343666547910378759525058005181245508812989102368400853015999858571305489255460595441411809390251439944878582622419990409195875459014019674796883244648368953016766769807527907058672890816162638767090235397665265872265447871237539735974988330839944769097845608661940808073397317672591212520076252234185874878257133751779253481723878326503663400570194392368641876917018155894926959737987807798173477326601195644533072390750089246160636523906551776699814508242988345836893732499365938188297555468821386721769204922708059821830622789931842562080338523959418831009919759730943612349473301322735903592927457409201020590341941639352557264864838323413664725622072461014910370524464244595379435311304977894780485319617197027385018785664320382029933429778141256812893944842723692670316972106022373229944731203165144962576474488832808345581497875645584146325473725023880906276922555180823278936904468847275924531688097303103036009812931293975748447987210201228831903485485334789413413392496735139404854325496715769326598097563594583929248327584004431504497327189393901315352466946552894589370066214306829931707292926781767056058584376845338312387414844027936131047726861309265496252512993120971907618692732399157318242650503637769699096295227659389541396024481043498717382816644448358995560229291697353158555986899382644808668892512266503744270649109675539328499596631682325485532773214973891340086050683000248719493281452895977029348970454081671290115423965488945234261636475886161934719936467820768920583700568203941588344863400084704985892888446904338791842229843274030423858905933959492116125103492966742835983347218194334714903610708594365185820998997176637141917422598947974525534119835654212335445619915810107211874757731448474796649611069947674329954959551958564228172914593147253383964326377900083131701035766767406734192730167655567954075946670866604574715303203799576717990789678733890466441411674636282910717419846702848993048204274291479235047891382545086115783030749133876117891682078216241418470426983425023731821306168611719031992422157260557505036522338222466512204148787563371217924105829534028674713282177057769162990060500099700436355032801416878380177204418289047443373511469658771863535653431828464793766402596915704797868686884524807408842211701344155223478953901253919248077835664574882142435044700975164971179485412935626908423982090693703914098121842655184721657502400609084294735849489779635006114180949509378541715648821085102619493197939925659855070426093562182755404579027341505202150179489314559925136737565844480545444916469505287047827100230484580772279686423721834050698427718428342899693974082889666360616023995151457982650333591091963365009893655918873477573408738621131596135940781280135457753141024762271579075812500742414098251460257939096306103924942436082299671422726758756998733966739915806963205128720304051637436534511271295170550549887548644286597012209938622242183333741763091851053092079226678343873350130279223668233414638464690300088617905297495976257455074131968303342987699378653304470047820141317174320957866068869530904995406627918479666327937658891794900970324029542923459676296893948481871384990538582616985731191512548816251881684043042597924353533579922734202496315228182180650349526209165446599209757079832831515146884573281300504100497848564294719089756702707021006288721997864858621924348571181153977824934392799016389564908638593485242892340382878103671551963298393508874274533553933349066197394388037455251605920821763355702664667721540386502735064868565899018815604251279334814541140765740801240644192388122292885354009626206280968849916334929126843391062928396444969295373421814488920431231916762319803274891212435826838913596523482885665038020637982871177379961537476714369930541559336468390818227619687072767165057045319712973899679291097428243419458773068199225314245847121505010296372126749395907442122119615968173875542957014385111082795174512757312914536222554377741163942925008702556427197573574875390102538076405656080280818754403115595636708019724928967592457837820484777997879453231438304254026276643510123971155832134842213175720350415819050044428726104380183636656685011034428977417851432505154479148100053927761052951506019207618506194637790086350691525592799724518785161390496364208188780885189423828609006007399217275309805875699547793912510459550106927721250138414432622652416428783634592653588575122613666278981645987272631779887288765383603542632015943197904016307459108935931542615482785016415988405075483000326831311384094417524949415053226461351006859878892173515150490409948458209380847152509363467481911988893205438114996658228942325156317595633878532244098329201414882663335807236843256713136810557101396069893250904917198089045861583769779805258174040219623374788319705802687877605520868714966752590363829948785355472952801965414734407278594146724369793757568596883032802944917118104004793378744502970888434740293768317485981282980287896328262188715849806742589527110468779916016087780164257663815721433907325155954749060549160268478420907559224705604115492944941474511211471644583157939786578031853292819798824970023891155428827233227459842188325692948169718826772002003558027447315904316414839290720169184960059425218153124088095707530076980811535420582717401332847066995171939925420855497932337125825470610682122125559013872526295553742826477539805895489354084488056668499369233319255022959099846345746191615998795721951982240982685516419151157545638486341310548418023598483769145253972987847023500268947410840871245299699351317087343619148259518558213539219426869604838887927520551656012312779349075532875564241513308417431558033846078545914866209812061862172312023912427585444410327544783506277036409738751662881989888518989317388753394880500468231724886396770362274720425960394711757638595146709006365088120543113598396180863302056155009700239065525119272129981674042863894834220904824063820095987386366127524152651353814087311166797297197468558698255598965098089470968789576312562416169871088974378123832353570406090599166518418764309735295858759755591193342894721917803225936046637073904505191507060638232657095699642792197201038688862101874109276187876478414465878496644723435230449286682363938947198066053357156909171027015598042566658100314467568775187116089707316233889392316464578663981293495588845177056069738250299156558023194501919145196490874801835573055366854487150697178677631754634633853926688062708880101272291274036433402724181404579919651939854963988101439833932134874911477935144006280070718355263427244537926014499213063837657627456496286181739097612597324065777406761020150175510311679338691957663167411767608690685515043737238329689280477023453245689634067921761632958115760587780489569025193513469731369144022652461253534430331363448668757977233987652738033875291182782048015327966020126122512739300740545041485229289460100063733880507829312066620350063034781922744357032170626545528574236573452450690028654155471780027686308851693428023358438519696107703805861300691014779631659538093212765186266730852590527311642239288592707258639703219854496068048229950184038670054420192748362861889839455419834618489003053248944697653637149928792565868741179488024203850152960568293486216570528590926998486186466454624683458339200867593473506605873763430880072753323413150905932906368777024723577053447683574429337558094737594771487658791787859042753319469225223900622582505260270480801250329210091092871061880002489908260274348264926809664042691959752487301525722817614371875668549504562319317130144000010499063227187902759582234377095530440873714088798065258830622427377460960298097282141030430051327462977564183471644746584463105741360877871688293628420465172959053999436977068806324719953890643090235652967338729818178388848934598641616355162193337618661729535606541405413585485296374608142191204750863836736262782853624418681043510349696533145801277636241176091937822370324378126677961915501500566641839595324816589910267266239296836976877278364488755890991786646894709438610409060835914292603866456045337946167664734365967035503692444810632027425971982258747967772773869157213407150326138965821327840083990160259091068275498828044885891736491767044708499943978831016018232136352393025088759308078852347967684347769129966727442648992580317359913717348957943862686998348004159324628610056348249916234314691301026796615495467954429399231592095775754196252807412497301542032600481225700190263331443642317625931622250192464464103557013687463590051676961375440883230199657325664705549644399314231166529322229139997462256776325500876283601882938639414512784240726658152613716408660780959291633635470631134666588566068061038445997001185167765114294591422683612837279838115098350308388774970345883712965878194474829147899730474126692789014089389108641996210194773741977042540197782922247668476384145514041240677825780057771407817823517536429189527072756283952595723941838007632425432213391925618252903123427133271677594932782127377550598618373750255840833354091317511659512566721437116674040388027732086531686418926597755882295382133447265249248719983651269666230463303676881701276925006839130248701733686256920143574853166798554457492000295750953226810087793019738689722465723178615583324800301554941080879827577650593610879073919323328373628609044644472285116558216001695522578496050354967026162890451263052748366506165227861751697859547008369182550311056031936920288211889890540289625342105719739805547113898381745331220782710770811171886071451763223016466257174407919009106460633867470786022170221081089211993219037350157604599998002841542827439607998164654337456333089809364419634690655027427519065165609066771235535645891047314843832754620123591529627653105640732065785161354968309588174667343555711173825076676730238462322447531053444561261968541212701650547280282572420739430664580634742249228983909174160228908422796225715733418903803419083738084885346940037271078454870387903402146870356109044974669952689422970795705957595629757328795300073678361585940040348172725799179276486449902214097060907364625222489908043521473814391396652754463457515467621956380751211126454354250798905936275017454715604831680086139977918931823983831885753541023719877949432012343859796554237402271652528363578834720088899466158493372529204929441857850277590099812860714907623201321576104792467057616600216366798878952599870970905477193408696549356728663181389787282703186818236766071459045118797131432627235466399502471951263899709158938709792489199094937309635071432512439618996598896782834041196671229532014326284811037712155022337951866764121564522669242595279382317105526594595543578698150435309616165036950952837330183103101844193866701330296183428198196360781220086979846488175606302599748866719926899377916089435693195296977685468643103031816685055817489616240728103433246981733893715919336597475074551228819476866006633154530652921669917306903911966307329863700965089247911828795501320343050698830490821989175163524173502060345551732420251474156843079943078095097973074959464639528614047292770640668806688291430439945143858244179400735311560549309686326536177093417753274565196023726532222606465966675779145286666033781529996557229310511111075492038082236857865260683597565330258721245811611556967395625499789516664123873130114599614372280842627584482053765949304486954335028243484024283324757774374390428017017859180692441107456335249556008095300042913555508383085567526474700544896690398966034781575629024394054005852542866048789387227882894150801853018823892413057257593576157517878569464800743873956598698025948598123085935322517864960472604586217706583490596312973424466502024537299299871149618888637954880854131701850732183266857179900856635040354589836352177257675349519668205612544491316673347482729456882756108737470919051433104355557123069255494497946472225470743681380244017071163786131335358748670834340157479254653076342040490320749327710507204669388463274559618921528095838690162977206925270552577475058921148912791536623469768743902142789720409376778739264035447417403422347040997549559776407671687661919957213085708771269829194831170449278999755297415300336360139509626846331964038309628978866592318630506536883678072040414052728231280402501943248352147954294110355591772795951265814812287043357990009649305960150936339843360648851364741279685986712965245845512302604666232216615620705251054268578922293071939763026549269952905094451373703063535250346089357797977721926968111807381230239874162123094747154646954076721079900354391801828634483877657614982957709699158569576089824367676424833814012732642366103551710956725773717691389631567474638720401402324044818156131873585001022816786120718102843611634743810957119308523541642685823536359643013885340553108916749635348021906443768065855713769678100695559801875207832324549212348372306404291464002361685220246921243992832900960909355576179808226131997664660247852695581916064796993970474277743318481406451219312902418970359945636704064026482021601298729868567674649729666306697715302253027662888431506823654020079307070295475584949456201561311111259233148935536488555354429042812362145475994856757392922650601570855238469095378632724942866906409302629725291454410709136359231272691582795638482892845111443743163654680455712461305797361912626358731969018381621351694794232700149478237366248767580882545718591951939201636478950313947814355308607237352371514040331564450989035861379688575220881520155989249030272102260170071061745556502774208020953571298041969428100675111984195934497438663912270135556763772732307101798492852522126928881566105225430596169510728860929976876311481451250343020528019219010664646082218678609389018418333520585248380751333640496026900057768201807621881334088996487805373271391453753502795021906066317708821879583365596657139836312008925768516448766112769361294587904590008140366258231412661786025781916192022519703178426503512803012033973123966486194989841576409836741261729524349473186009744796680110107919856593902048685275847795165153063292871732047751943855170770691771180271794209597643146386363243952730299535018722788065545795843378464675143525234892031687954684909976135673845551917029616437683479281517101596023813139019930414592502130145609206991903340499832050012391636453068708695695502656605747994473895847567752771755084790361326264673376415940245839018113208155839760408936572039430092635638332297036138259731878490344396076238445376951470617973977736165139614168644877579180208261948666051097606777828952351289397368022628309067241974530344909163534538029798213537804113926400925039120661287502613949497957720108975618189131008373983663396811944933975606945271250380111919121651070875157677461557880350276219652198459427911421344245213657656744855475019776141097023569436548893956319226740282777325226419629776988578746368015497393593593809366624752322060042216927662996686000645995623134861432180104160334455203386435734274607091341568056492907629394384815036042371985184491121590764660402327819043161027712957949733544804241608364627799721897114103118349887072140873946469975957471873330558722863200724215446865065340618434443031158890315248321592351674624156053107184078244585649510588171165161506933774145663526369873708852265462641865674236439994079609697066714245247556540864046909394313942710603765486833110188888883235932770073083867664803462875094453629767872206351644896582979598530870245929939072212487276278535402295865465280168134498096748974649037336512922270943809040740683569326914038775854551992824851466955346416970460318398646306568088384899826718367696818370307514206987481953463716281977095267336043114195837498280012717303146022595367266926844168690164617744171361048055439466230525357004861815091074847276593410322374794530794263927696455989058428418717806332586601481092490990987000722337218793237202204415373001879900540980630897678033821018299397015257928841932125232804634343737174791813484809437847149806663319859015101957147726762386440555748902320358306610995966817863411592140274472113641692711333925110233129544388032069662848037707564848899039973656332107502874326956948043556623977322555309772315586130398188563243835604716881517703832336812238537828786505804212403880384887333548921893583542412649225782290729086903580709787875986651467645627999810728456297943678724160573106674660276075262916197558268479362831152530056440348409699859993906335744095697939232432665267259866009794090785971430833724325017439226011287363666107711285569189800900207040873347797598874045644652110810825628370653565426269129199983330398111980593512665003636508347251479444766347849486733036436546235436870804489119024073829261384364120712245344954434137991627416293833162819241332365568623928163155236321609062011354792267037430610688437323241923972057902157751580874196707776523695292773341731896853024715530167713824046752432550770675554576397238860993675748953885277175672237509695012843580373519988898041932752108296415080008689924762373023377552673873938889119876121452881712310068755877823545303574044072348937108158695939845654277515932799629064382996546018766838236919159077738178329787229911488788824755154424327471711689328621665927066901942388720584263066201604049845442285314147898150643596610387805506412224943473709778933284632957784464585128565381422665823184310698660342689845678042467031966397087251306594319936453211497946837078161563121330873851458214067297785728673499526630317560056812171928835163434397217755388026914685326967074607951215004445757701187534617266509734838567633712846179367416857308469835992525036209789580545610324417125602102434917342299503100779047076618920301238004418343004360988375749363824861713168997933912480204236828630843192068038301142416026206976090290215586857936345341747936058097912409709583130961383837382744253268475936275506006831983920986292709657336240991824733913538331214389861636191219218084859193444989926036241892147699361870995917255566172712423736428462981252804227386801431585507789942093766963074021494028470085209023722748233919481966761333214860564039476439744343062715126081960286555523072294689179120635132740604703837564242788080701422600306995547646801544959477705736467959272467071445571807278087736051657337372233533270349289553587824097774589422461416062819261454810754554648985354013277645046036486049332387220908544116071725359892543170381373182120980287933577901454840738990336168336021358632371944548699860907018543254590166529882897587384680841093199733211926100387125764876550153441493157235049277037843141927558694370372480235507776749375488658356614485239557520523156383302173145571413847505521967903210038697103767602908039622731565327885660605638141060169613932989229056612024570044233588003176718299317480557040710951094361997159303327249324946043047308605119672222409076817536297180667742785609785140380382057918665646715160818159428692703122584512412741493253326929333414978233741411800365065717524179097826476052841349164288615200924121672879483826506666589847687184642111169345740650707891780998211548645297465723562931167345651801465166621755239109232737455274033075921301273051752337711397150923721233351061745356154307138808990217881270733149256893565910542368271877946414876940570115225218759015815547161191376098046544906676998833735914711025133245632144294957672790456589709056696725442560313606899694608644448592014692859953249593259323620060901134066550806020734943252720634577794925454779117330364814506502318231819559738032118647772024373071542406707024064917869231926215651559970778303758629972237537554132943593938509055172222805008181156423909431701410385678011633872133793074640333186333654238363350959445847187600743085467489470954774612131651367476092369454217243997230641653643786276786220379270682286752087545978401325599368255555481402604077875713872882729603460113379553929103003654042852242665915894350003399543571317828312987921874838793152484259607228035783454728151379731012823672042746622554376614845055278874965767513333600796701368528403258047527141582615036231387672571824684765385669475080292376675259240532771604294919223213921755818353878986037644660513245090651525912176015791877090447063253299272912932359574675556885329529501760804681896104664426687372799486153184601654219632708858537321075541746215253328037791636838231126371192436551655461559648349692151554955683941526226684716369784383217744919604403340427190780676131501399376829476910553357161335301360971004880257276152526477648157927112046550207678843048779578962785325027954846850610970361411272695698444324750685930104045860025957257613022930216821124717906834731040870326231306413261419391565849961051074349462916457475214353362783364402502747059439515059517682487208771050024467759758820691763558449272155148205608867603382941290989304177287798920981734502598404747573070055444803538857824165305383122938366496090120556091921477038779280817053133314889775813289364095781593755931102642589027278469541096759469949434457664980914876770108662698870126841890553576988596959082106484227237039481516748978533238914259935183828884943181532816494280280970883649111920897444052150030582595443160683788751473109774305951465931602419909525832829278650082114139802020330693954031750001791100146325239698858026701721969852941014853661603553036776373208308726929979607257795512276187385613351158959367114482181568436070213840736535739649461043610394700832647831143494994376378943137051249897455955686218810463381111510535165482433320750149297243132336407681059579647616423273873976325876973118016137851669588238856672033612097287961578061888683061682200356213075560898339080916131921170668819064615005068825585326778876152541884826312040597385170110122984520214126944929953358789872919663068098963272845992603739763216535109092716437619010181712707666749411157137182061135013004764610513250772314338961034192420426388973309407684588522180755325436621836646805219343649646377385026177457843464449308368389978705602012949168852391347406278618734278639016814029316609582600272246621947950829990224363301059221650718570582894307196005997998408827586266877174129767094400549025986153677277831317757055719277539084095603040330770235858149171972950228471628300614336536102684458238830809222081788155046499518998795078797799611248700901931814481868253061314111114760193974891405690077592718739153833877635350379383927044374620159703495339774551556088662441933439659069856859060085240822464095824150936768891115079130308812851251331299352853596365558320315375541226087040983568925238272334329908127418420623854461780217314020499783899001899224075282982774743951826596447636113834170733257226811794322756059049810035322707699742957356105659625871235812477810792281453740009692626460218562703485275517709617482066925704341048342282989584543286478382229293466207108778802950216158226612695265963336010528261764772271621379157471730624193299067213250683982545560135189661484161929950514992917807718591687573558224386826682368435018986077954066727057331991483734359856374073818804382028269163913595338596628696175193847193537399169755199332405062158528754465315308888659101625628977103431195290980649377112703460268764343275363408498162142458796059227017596838592620424411395705525282078668030052121807036907306890267393180049291944338146938883487953331331769639495658901982430606545329034677124828187046721134041986497969237291638888187139984785385679123988471291186848268324513008112261361712299863810945110049766626966325241941803471511474578298274256379276869197540599206368415427419500174627434668568934215917047762606389346494110927979100099483795079105909093984975491504622972000208764350891442193789597935321380141388498137839155708139254894990985131594079839805568505573707036441878144284431001578503752740232113113174252785508558927021464037971751087150872143372642097267957099004096754698246809217204811553398235189822625322480950266231885457272930775262070340772403484445464812102363536870060025339663520063693631892686992187908504318757358766859505080624533012442131182102193622379547710920520460235205497018463733037999983426378260217262029506149633707107100608614909016040796077932045047408989240508807511028724679360032517504368891058564680059521511013124397181076430810705259984850410767308984956523109950400696898999566646239186150830451372753387374271204029215831188265065277951989609241599297807365430551050462323925198052546114049358340139676345694255975156353771869397059612189605216261707318802905981499014005830495027541576742541083224605697740007760471429176280435316810611123390187864572939372861154992142634867365703693084787935248096877471622576126062667040648668337470498032532916193713526018345399530862629109157259110864366477717730876936751248281540785626301833453061739891363362820754375486195907391702036499126239642769250020599064316027011935471081506084374313606475605001709978105947561093581916811043811427310398810067255767717843955095983378340009067826562974213993642312854950103046888003949555864638302929958053873195451765917790722191718884577981693032214573470738720743880262437684513045477186453320903050969258217757389976436161787534917219102860383310686640152455223067659106796109561904819334324863633858323239255540251415406342442252024261938802538899322651223080617181900124981842289152154510863706424424333746243847401445187186342372405765359948235273245996051674346470419429588858735913073371087288624291116053305986669384931880924145944224581358395322505575957634379761966225196068065037918115286589146377816311961297410836794825565899203108413353637809158780075847698994679254640522954119295444902072668944885176303087915655931529570108479305057898518668666681211695095822394151668089279959519919630997400931125187352788724627392284244424696229105694191651620248389297555978209407980992395514633016787879408763180514650654142606196634666042557778782469373042686664108321745916228637661435576340256969342981260901954656658708848049219900360140370676272886380234732602146169507437792004639731724125494099105999257625151403679060962987770462263334533116385396125850168117198113790715995844587351873014616824018293569297268014165512807894553355768677813044669209600082718807798755155951045197263688706057294235282072459152317571043951516456912515491283688487115264146050424243947414154763603367211225255443669736215712433957129027210674858865318972548613530325301624397770866972447366708886746531013366304670652730713867310778116463051342245445794491295616646385864645862888612570019232424988623583042887319681799625023581600353008170187836728707803226900288572345870966410254026963443865744670591562146791876703549431034698553829507971093507440034036834721796756095247521300858606260877311396732495020573273050391781427253959735319764073493599525838112050874433759747759406502882744812898350574372164887945312986413199569822890980885336743569722554916092834563158520735701990050921940450600629219231960074363689901022946036750558710965721732560663205483221344373624592006647241319290769088420729983451354951066008331641089803615827243841045280278949083392244004301547688520898062417703524279643163604623365980439422557219185114247000296675543508019140681064189878198140232273693758690677559229087566648132109392921171253854173011368282399456462248632209096735702723172107642185736284334105146537276626570322551410355393308840748680128133601042053408883033131038928640655089542377202197483807598279542572749869693158203957955558426428742991136281660083989901935338075318270996451049179799470582284272541994153826864051126915828778471491557867727686688917217788069159417239446359066595071575192926390912766034752516934501005318099290390369501609910089943117089114962953904693486712135033024505226515744278411183779636474390476422720991105100919809552556997815158301344268387540612897595567822048900624403438944218166403483300956079082631771652456971424155074394021061056905408098238720289144264833915655881760834072611716769575611017907104444053879114248341279653543173202004959640302490976077537046389911361531017719553690514369487736412637433061125005012255434647671576443054957841586358596713292893353607973837060898990095909045950721745321935896754047589115791220781372725738760020321849906773835167355293435590186098435260431681799149847448239961914671155764444747797214285231218248779812962010761896934128951284519735328072925473583738659335384144180967161781254344402284241790994938788457435782297218099650236722196609318470187614094033660163641135962544893759524587485191760049211258307332602418095139016933027901751150076554859801712640590746361849548831416985807454241478776103055230182464636204345118670703964333893798335130455841220912779715295811574570411164185737400900593900085532038496401140763306479230221132732166571023773303383226891334716039540614150378070982963869849304216909317301007413297388538134087208677559892056289402957204028849639708128939285411983405080410709351873818388406284942948947396592242400685369956413855081858705572291693320235095613452356956332078536219838376139395233444481900936074506239733403812881346480378969919478359693742724866851202318399954542736661905083666154437481854673022231240262334399358719669256143065574901925085640385407624830049206305415566746157780341706207041384172938615434662620573802033847196814863457395140371272210225591963537940318162207358413860272123444681157296588995286790445136150363723398005306158359476809565404654268630649903068615860819483099994596750201775670809422428351238047718225191043113612813953242337376477334974709844652065193202582275232242047836202910568421441063686348962105206682706276354971386594757541128137953936189789442036224823236502522587778052964914137541247896182753318807263899414266121480203504966425213594137789632008927134635370316788227040531883591781524703459977806096612675116096590590462369398845080168734196281265527850232867571243977189292388261917815687649794192496792600215305782628900555083434179987956548070629456083175481869038438282001891081263014060497084009133559608514012850524702266670003258230960130779664664950624722174705037237805031979796335652154143827317572312997077803363346091350299819164754522899993739363017445751759995674246437888258740692664164406146995687543413339169056937518608349487303333579128307956905764864411794051294194916254063141289407042279172720841309214472738205318765524857305231445825741842708790863999475179796007608001566936425612031413698734549841361762350033328099647995940717438264282646469080521769093087181327035267272494817759170115490013248629232644372009698221052409410767508264113089636861245432593597118012500251406419699922320030802027772807211757199000094775152746537111781296401089811160767112133791678059941212435717148497928250833537769057167277944413121267218537389828822695188349156630122015048141568352723059925682651283468366461392226510199090414164820930972730582863044112919998687167063230656784073486319237405035065061684834394040535258260766119091407107058045423822697471826544389749560444233719262863653792315619624928679928883165618388826763698614468309935501659388629078578037228801162234936373992326594189397137715718179151855761845663463541592491861757438524320514200904368619259733511508633961190903709989504970541827030267518630194370804258848107809577675147198119189149438879249805515591325537974008727213605454725320188638769725844041152183833815182248480410007171872996913686983068213161039761517430886119323151331131788906476959837389798012155255539342675940441510657613184258883570526254573621999282500153883216435077856621034898088283997512334376259427994698040044588216343586732402434819336394787786651885267751561306285722210929065034754515934802685087079568634229304613820659122876328516158458384587111954496060499423076760879554676289276794915263509615956071238656199495884599970692909941373569478495659059640606060143222802620978805912894430287297934373596670524746117790291553105026531477673781219516737461729554087528523352277787898006314210883915786201301201086652570266034735977460531330689884307583125267301231000951123411623855569357332661714241704237172204268227237215662241874641034509764585957971617429923883739970666987928180845279774040052916187578626647870475152425875382463105374867609702749530104682596124253642018678940953914818664664585514299097762664532785100055285387197346273757059122518399243887668037533321829498627503605899383889203709323851787867852124093904127281111556696433488943293590565220701299617995623007850401788557354544373275350618824757979132242074910717075358587672638473619247210060545834689533140391938520331380384383456442808388069454154870271206337757602936951847975030181718804683040956690925946472112534746613433202095687032355372496029784460537186376806433794021962211207205188551166899685852287998683583165163060133091938318594679470245587577549385315598731970028293116254225876578158417279171074352838083534975000659616018120756073926484999050238949914082773250921246596747800932544686835640376743842533675651502325294764924793302987102064997215091289395657518245382220618375060650796816774588172624406756706986468066325510487518825799499066454566733669842391609925201002842483924962706582514472838587499142755120310289828792168577561465724256810472375924137328937807332871665099494278307472893874062766635556934196825016140887896307600090368645517004373557699840732057741531085030017683428139515216822026127633204429151784719833143123610072229709693270140154083579165190842042623488275056741815792598186533385437528183567978224705562026699124137136745989161456604451718545892934897264814078455285583059656332684320779934711092000681073776419909449241944564429577611586083253314654140756557196711601887920969673786790656385315973211053222617752519806946133840176193365387756810450124848369336607219123842339770589166045779433317102521948750908389267497622237177583990458917375347292939344613866724308234031164025370487238556788576634929027823306119670566204496885630567624684219433266764619090694570378713149427249122127865017240965555002033323831780718280563677362165758763036196661630177606096743553507004861576878881937379759096918208377283945295107851028555419394911651595997031473199747762029279601487460298628910049307082924388303881514990666635126818159334617602294793805969077200710575246601675014105893828595400626001881031534702921486972220519770728776652464069763227589717112877651893376232925674182519767329101943576338602106466787929713498096820586185129127215570053546490131234485250902126030206277711334129304692404891994221716813152608703297280638284363924360305095962444852987539133062291281695964640180857846250348066268652796776347732705393683924341088290935320797124855339851336062069586445404574371819053594086236328265239816438456365023049224921902781341303907203650340171715011992338097810891836012890425376520136232382544128564695936052564724713870435783607457903567450802787875751008133320268622198687671162303475012505097622350260356775508791561531997806836058847592383384833465061211570378455549545050872472263494294353045676688944386811395563459866478677189938541601337157828698357733413041690199899694064092030391021079824260395555263042635401149380019000205837119561588827681423332194377459024424273894955399110930026279995449747531170685799392347157857594136401141803865691851083346042667998007330798274678457805084603336146851510143706229107873980119315004213246768996115083419733300590134750518495536317379704547990400719685313022349547454478149629881831209348884186988857931802003100306761498419825151369298793318483179860991823296659279747793760386146239850941925837372613474821669624123320685276993633908459097895979377860204997532756657800296882012527204835256108814840164992907503944224206425959664182710091384063221482853673993007802459209950704951449993789232388067076832592471475198364867820436257745960844453590578227354755792730011438577619306795473700702529729716286483346282415002747001075959517120456693137049069623139333287341907695834585397781308247687580005847895930509669288393007402114257590830453169578406685465967873706540789226073951449054507748797361900348128035228341081828596640607190458368368682324433308357913773944500579231376208775267898170382271726780938018979172050858894067973306543056743982990140886985322995075076720348124838933233194159326501459948087624018707241216247271239809294283393679834947606791500107305578479131426250203747899143314338885595499484562632852879660096403231139963754419316265787666849815476392122594448425283085663273598147212801865566071932817094445362624661274863972150669177615106437370067621671241535630887366285690569991971390575317854804612959798355722213669673776357769036764475621539538797292587142299327150755373994354623953253325964335716375838096704063016806535371837662879159747973789763524193830010808566510268937660391210882659898402507423716094922655146175076225547391250518295730316741590421111723483141191000661059096603126229601856858938813994846031159755262459480123000711508511510860137757293908505367353079782102110818976529896936030028924599689627393956003276592440590237808304753868235127358518420740683457983756032661595572801465936152118864032705643790956586743053815897741792912195328053447220014614905387555370014580571413584880658844198744974297230391957084921896335445529472165060965516134830427559641059688318723467832780309390169405681599554338622703433233885767928332010540173773516584490961272677094819338396844180884258897100382902794509763095677629727490773164895793891534480684537217188858860757461575046705793388617839853176174932683295958195552380838285257468767322975305636944961378269323935674074168975705765851095088499667102905444734111982726909624050970112355803071620207142826938034911131267804746189420252855499975490935573378764235658974241514289688020558584958268872077205215323479762598801149567701393909277483483967385212158455724781660381712353159540711417881520130389630229828446254421069558538488979421945678011595045045691154986450419488660982639617537263955708703055760676207433609040629847505681685758206467828532350865769119527527903024879378862161696402671029966332725723845452381260298326254272155247370949057485417491072003077725740939523686646335323820245573693927673547224561503493041998421064306527543835741219339855253069794920906313270731224830376811161312196073802929308273645314971914834776024933744298214308423005270048674065250906098152337603391485359304061981658408696150809980051869874312414943608855089639808705987047155241804099413692381985093002274743165426799670516418929030952905177008325633699126859306642457614222733713009793169136334638355483261233371706785222004281919044433158768922935995712501635388669789484043485268868282546603327100979489008985741826956057865321596060003795895262882733440714996407612472118862232590829941930354106732344804361126680086508175950604399868820682683958258669534133740821634026216284882185166103402977504414073147154649242543524915007473312904949893797058041951648709855084351464419406427919597588877073034967830614978485255358087018601714292999793361333788591009500498947936268319127042707868771562743810723485186067032944918930843441880870157220067860817998835426379696168851956673991077936302082933780297922783492636658829064750251167399769677735532997135668006790586921655201120703252791715466971970731192528850328535332850727365865894815672178276821716844531015948322182790217803338208986409084158154304604634042472722676086423272675196211859846766563810597941638048320721723991978481264806158743321907900562857661268123422131289454325559836708006552256646689983141414230912254574418704173333455177908435471177384685778861747304577807557477845824294001406743378096344990521291440742380366686762364812852567785801996462917876488626125899724993264573713470627403917658380957351784631933195195896691569850996950513321948911472367776021616638259840651696405639368408278525500980931365880837130482166147648242068551655153918909587866237032345688052967808264834904022258573446441787527011264529148667876975175962608496372294973422205178291586176312727154671964163518864636966942482202221167251016778458183421240395267710942428480218843960253433344039022066111075016308774057916454689463354783500919483983838804165248424160309810980899413188041394405817953741762043763575290862714388668094801119394610615425982126508300999695087089324849614044034102078057502103034532628957590889005319497422719030228854501346577581116204467457310409072963204962659335893665650991143187519261624258289518948428020556815574212246645661163810584450090903549012294040173840380947543345684564886299487561371643021523065294456957231239428937766990533838606577655873330018811704687776536107889660090072374500881666778388897731480834734568091309943759680885022629895605679939814299925680241136595022760279403822341733960759349477322886139026516098474267674653109778536601134587493004100135574275123292325347380751239080203202934010064062912055163476796883114314632305167023915465941608504669333780868045288567220448973521856762430542098328972385686027736754144291477952913098529046293707638405746489849654038949792057826950122530033580607521173316608577646939398592525902934512944032260093125153778774336986443770139651090196435740832621579478364142398456045351446633425770034654377245633150917250710081607314146823259674168524019863643556145004321930519881730058415511072406395579126108679839199570197142698789062099038343938574210347213171211773463012521759435761359424089667833971790875213663602438190987027388461904832483563020230814707010675991208529861362096152701338656675182832447602502476084193419104012126968855809331959380873956068108562203248958495505279876770152243631692063874911624964239389790853981176000119080954493502139625432074351909995846017549312498704966156983534925834145371219996938944770790310695408891044616792274930142783043654143129923755505646824358534044254710734834955863797602533984275493302150451447653479601656771647159640216660736658066356288947052691006515695869490519554242982426470145028524942474623363649552877795443895382344173952629497800279550455296102289187301801700578784457271204497970188868595278404258654374224391595082083049250685944919177191873605454604773385116574385240376528422134516978773160116415573484226550292643151398280059214980054447036420679019242310581030765101953213121709662568550595958340898510200850925180588604412193706240704084152762668834858050362955446173086374931017636919154295078980831431594395275510464313744893074183642339509470940513853673302329181560009344931734101795032037366550040971645121037319975078285968377915913529586862349197749734134351138474761329644400844685140749377888027140479668086365642137094386330293371518018243895666647533229715612399974175503051189999521705299627792953452153933879727394306530672307878412864106291716303755287446298146849578147059630543291192201281981929775930192683861644424178318281979249161208031492150967673655804503828678209643409957137938204332900888242241168341512210369892256151871910866535961332427746046154073520779995120712154970305830670267138421542811940400636719574180240706926723892623598174465557041145888937600240529807273314600878130416590564606095218154670871793672104027762220479128672500416057318968519052206606810962717127282048809026325795261508298576107118530985248414041380091066082227345367874857209102691099094130793331869056177294550070807721598466861118138267087310807189535956890230547783822687763032095023957211815302456037870515833899648661877777501289701580688051948552406274342783881177568836333108321224956131051789396584711737076379109707937135205347152649197755748250105104077711289133154257791123649474802018482946863760975110474989739196968026671989896155932478295134061016176388043061460697082807693737462404872366396578472483745215803974559411489048373150070579535920414461986461815933868103326210397096283950980618486171489759957782108259208872848193053713554381777466817365771382571523145741252356577882295866743860758695611354613622226694522501334068284785094955369980081395310165271253644990924537442561301538271710551664843731879002412391764784011524859057756024790642870655754262403623201615043822401795228056310475757430695597125306520027238876632036097197455059836898488161928016085807398363060825419728826880391851514432020542458074996118108977541695641343210011941603078212077790512488224674624635964226459544583062681624032217575629768442563052613295841636393176308382312806534224400199380234888352304239140028985124286128076102007437343091820019953182300028948462131097347694345302007517101383233985290551407592731111155444650173116085794886416921922720112321204444464806849860021680446853374280606977136867348192146100415487019301487447822132989253760318648627107855639119248676901013652841241043356059097103789832896791657470230183537173646139357987930328766581759381216973062818055881491285553333643593845452293476271700282816340151248423026180218926402732385750605209863244987285853626801881464733342077533519552988561881770650515596936639632331869109528473065722515939678494051271856483992531456417629734193114448147867164583166585626452139957724116458529055824123606825839660635139842173579027751872284958770788540037802570352833615979650454007838843156407833856674570624633638726614090747217115487712132981713309331534689240328606592316515008237967821862359355301993014482112149102437177947034580033759153886770337326362606621036980102111320808316168516612599172262764229534781545449963535820108618232619437329476516836940845803642101164909157077356375692117968334584108165286716112521163411497402993515814050841282226464569228375576134225994924503743328209440375646943951924210447739115135128552037901675061282849502049079557366623758664898128269828440150398966337474058149692116524521597660191442530159277529578930014660081411338562840810363280897837364735225207022325057657535222608086538751328067858292757158579558193750174630602576797273080263312121380719244995338365434364036815140953005599171111391703403026005331879783150761266222765372936460606166679791922613778925569382634259193594088022952554297669566266933752554950889147473373697132227473956174900453800367621015946603559342798110387736401784062570894597494528681381076113882545344702782900502309028977515156874925820432121674600991368040734650328262924435235199428246797045737303944747106880965165438275717762371944882523734955353760299080997630339924938149839035403473183450509455123477772552686176300066377119832234074250470719449763675410290517904916381755351026718062236104513148333376288680946875180369101857148102677787925466603653594362941960729060195420118662077362036538881389024993796233588299610179434598202981963512257339278297971560133309197145140153975393953787171017018240431865317643854830753793095039924830029493731795010343096519563460429372104513621066833521881876643088269883147489937305549214886602815360888573184387209366408953624012220510481458854129271236582106050786115040842943200237957010572831550415837842832046301231761593404100751886914575371564668941232013458316918768664421083201304376701383242074204644158550790809438998548430283255889038439277355961375997177681877356443916303167323232096762979446566168224701156453156910274920472364746771088768072687533735576958768689577589290110816712672571751599874007453696822838436930448075578723420937798908650450853412036846753859968027557699153351536043133442900081726661158255148808711731792451740515556147436655078075060150161081233318525830901026816548073205004850203959182228075012073722264554968124297080084931796179894825616251942519654815894524866632255270883322152970609419654920397378327616763460432883258157496283496256864674728718820087420723796474108499461132137151959418759763084335293049923229756742900233359714153429785270507697050281755220875671186081381309812093805132352746181722059623602771176747277791979401086493693717602962337589694280639062744034638641603473011255289121519754785253616308171018457691579506441402529502175024073966093155102635384971228964872296783017046976144246932238106202450786779113892269666361186116982287655979597034374138841863679969912803668068443385366095854398793215733962507213318878240425753062402753803064073354289319056296884484726119743875200051219629398701638257635175807699709565166556321701475168097243128244342855518385216560428294006932118263042584268858278795621093371401068270293531937515640250004600916940557851663285057934480218957266868311805489462857067321968236473118849105743811573072620734798880308278362117075203562096365613608260797224036035486308281680274660938736324050939779690419334732113491079534002773771218989255960339790287854002390048061559424964805329841584760087170949752428510750005156834967788200315224614765700995038722368913879943185558831008625039293342081895785977027666324265117084328976828857404625546179536181883257866111840744272074116691152666528319557209223043717992532061649790864328275007076106106355413333485063212228215672557278288503651792211995129671069993096926471350730920603020840542023831440816780742622307661776410407346263165903014802299718106195365751219748755438788916143486799081455027408563239013272640862492632334061299931403904896289983503830617918556107929209349855288830085225335166615506789939015898329221683440325962316876084065772227340861277158209374619012772846771060978045042807450469847155509389932886289477177286986400415323562097762782411873602237729115154608232204184269195393137980548986841205771292196786468927817198441476151396400585565945360487828247772108845088191229291502039804356565291696271614029540934607991942841900111569306669729463041477187812157769250543057103904826522874385546676012436928419430884211171101097348129205427139411711416840522350722330437189028274381257607505203674189117525351708845349606749781401211319154891482690955223349431103681721544995134024702428785754787310973494218651040979376666976548120084090700311993472936444802081064946759955468475827260267955967436381716632415708656233092967703720340152550270902677076799506631206954925225503062328428389373267642414245615458161333308697998727707526976707536610438788570110563880536543906387889461766335663423465921784820388965830883018506601241950866589845627148800258149427006621431199120809849505962138079500996590920055266066161504604817451615052823097755393786712194255277035856827071603730697696908531896095653957112391352372169468118449881468458026559579037940974674644206318029771215207215629181218459557475871100493608820767311276782777631180754365041288100448101658167347653990452431813505542836627756663760395891051891654920069475841079943346621643461828994934449444108007877666017450120456693168935636541519799145801568796843023487365326827903605758882704530091400444830483131443542703934734952264677656581567406953041100332470479643828651029182605737898711492311026457829384350933211234996010556744489551580657337930781894009896728936853176404745967728359493324988212267302047385511439199724810921987046620630363363940704932774174116588230887785872504834579216267301461207346517355867339372242830920926257826472614687193789551671572578818758251295154293825677655656895336458194415565188508220295205631755950070420248440276264837565227777268147855612082656772298672431857822502383721534170932448221609584384547439197795241016169233112557135424322274094808604174554791036465341014762008834212813332985130419061848715282187428065275631328065361720254508047309965366779208138110120422869773075433521837711524440636701438560016927601688710862766086749690922864861017008322093552565630692634914421664302156203056609974719312484401786218980747209255655431294920927801490702667674915870744555309727375037721874343720026184277585614101760739596101560773054739795958119089254802997853413817435370597862039285578551666977520052320357328215500028374104491439646875922331945151388056380262412811519794737598181292030771965292771839577716781290036200336610869467880199781741303113173220448130575294776028745144199419925129670987256614973473738426087732770769759097871665559315605558723286266253215768251035897994506572438452375381660653572118054295015568740674078067459565603283715779079807339906223461356984204240211876475240850289836098398331135678093284447624842705871606604945752648785176135209800790534672404542012312803978863717848085622757534151505452837520481413288301485427241762877882148891534861535759071205720330617070344462344087557471822090327580674164981381432966472414446940713899974459892063109934571948183686256123073687453398857024500968955162413452921589858536166508271845117828279471901649819190257229797066318517405962398064581336504293565438012777529276184868776579145737976753303015276543552211048152553993465692166238036493733698368146349894787454235818029093335381626939349829569819830045542608273432923914082513542971795188973569552978405812074036002043972130571488426610124943703966984324636313893441728498415429316393199695695826474935406036658709036453752529855179496203869428328490362577789052281623191197110632690475467410485685062986745413250330391481771795707283560699999539275396555331029567301997336034170191834010114835530776550175880979690800551132903858491011377350075112673241984216637706868207969746662457047402892499386087077156868847942550188576867614358758267122853757629881177561082921815794898584276429531139069491766105029362624241664805107784578422135633959584150162827760327958859278303664919437864932848198308125799935403979322984078716058889111737338532577193248684893469581861897317451872059690192083566974174152978406508368938232588781111202732550921264193811309554107907522125025731515665101091601079879330261415920411183770492873916343453030079730946136001552203056040970393045080310585311512457069242668408553421947230253123470238990748761658253399202363076767537360390092825929264657040733209375316756467790016712794991864392793156493845828336244566730543418927955176873454762926007878193567636533992308974837674395210271069517557148298487630810275163620872428327140846679105827599815902416168499171130860688757508771991370269366439694679424670790769116199629995612846585877520876043527602953676514174604288994482751731041333110556311841437834082390969077089254201409366401257297094153447347632788033698635553786040026729146684386769753421859485349891858659242486113068260186476088732565182190732734361215184691244680196558908272988462962143967608287899373940327669299316290813463081650072066923937637039888141753250176745160363099929954698993816422755413966077203097609485768708638735018469985047858992710010660724751908422369797003502673679574618791955636249420659200041138087960132073814124845813168755985503508031016054457053948707092011810878215026421505395389156803850361895592234975469346130406141654703692198917680162506053911060702212382588730515138819212708165385740063007198788869576530225927413052002214806962916538399651850089237097452202970240125148612005882226699494528991640578735489096430222478164037957782243557203034675543270280826901193781265043709083022297750458878952481520407115544015435007841251804317598585500510110115175198615379797589365681085512367540804803296965532275925879927826872567208346763960099194746553504448291995361737323941728016897938358209174165986419959442860085819881308487377699523803891968341830686273910439503830466032702990001146589294369554915053196621179952927220757679500082716764798863477733691597922929339829501912130355193430551809747637513120826118283960897660377874735947959449171418948749484144753492466288844288004310077134658136620009077845376584251822824196265832924615606999467865445029890646153030831445178098766148830035357393964140898801184570129093985249802980609937073730522564045062103767989523193768412267965134984772480944797780611403550660606834446312191057924205968424316246702259731207632510042514877574852334093543373352840131558716485892364610211243090322201913700419230244983396718650116621068147234228933000071800202481810243392314908878392136420652352075370432553893569020354210461058958982582752600871002233796687783951741907298038363534019146973961430292597646662550126779916195082643659244732170875804674083877735125893084811132293929629592435763814947863090167221981590432789132164987843018005127786779890458942306902756262601239320332196959932767692654919409919028253186958489605727839342525434053350946013916443081596097678746630215463330852150253580325665861526779414736308820046296206289203180014896370275299129266994839861260094108060422777280534469061812115269963689799323627849134784262909408140617858223504158738129895340086177179940816311806758335797318065207383352222323995141840630178887959456316146030772108608918313584365688273671651277736882647582367684337200806298074251032163429089946081149334827988785735412243985208766242878186599259582186829892510561099528798074884772358807566483348206516357175074376198757359695988765539930672506362724806948123133002668884275103851465242657824777188913439867539087924088023634232292088393491375009913938709003340609810326435247346887342653362514312490501054251859032422953305283731348169296201108132859792010880027189366485625186488202612409027462211690154563002875874361015531370544847980006041069999191455488763504527864111651880450724504587315373460762980387000268072457942051073103013527428695589459095910263347016107955940830351513299899523568394872129127517281978793896086249516660971753818013735115362309461822934127877578295339600055431437130723638168126222983859816341517630127235913711872950147319248639129134435114425212617442646903007876604890963842870884842941641522458241725074695173946200901592855197536869222971771152869480992089561375694426138057762010408913368657980946859798751481492862650514912135131944399141699179253060791422642960207083740905019286350602509798005087979221191135215198625154074134065662694030187344341033564938947759126087067030341667175577296492599844188828744374680744979166605201298561628443736605659933734516891702992181359604305178961970721107641162492027370040921159368830546723452947992478915522206824729777497219194281662818401363382790074235711864504166312866775601935410626522837554722188994365067764378025639206999560434732973709919387683954934716141312115987567263429923405320276377022675603022988755801268137872052758564372883275392142391700329057565407589143737242123600824917008813424415742972556253481164843790072537027379945931278438788740030754729227729335495735346512389451233498482957444013324400741071324362329016669034699539899721170613973273807191915082754667906513664463093184091527286824167574642523588099425847376597693956326416526402759132717307532920905502983614308970480284727135489175253827198568821111581985017487614775099424197014506824583665119842147128987913825798336067353986992267121411242821140495619803328164687526631851722389094454462833019104698459721132188439233042593456773335852022535088302984640434611802872340703160823377321655917403261714430274933305660705412482081752086952444725184641229040673088754733034767783200504803061867571476598931544678346258592824840910414922300150736850453864665233776994012319213649120345273202597072086127798578664168944620605754418407547508804066665881606977059310619875607407209791558628858995138844163821669305514665270770157768501763812747455331092398650072798401099053451275801494565892598733582386076573798196070153384389901758765925640274572780173228127239202807220648687091387781519427413400689592498044256346983519276694133103785125945513812197560067580620147187391003624814067097056568453169978254391177164101324581006306184071240192477667381406882665736087646160340653645946490664517512175644666062059685263690028448392121987608635402432684247144286383557024377055403225326204638020139882754189670690198462493813704190677987758427475599513768659452122846871760326436546037750975931317979661079065687118625490827743737291124429097050801322675435840788568536816449390955491292060133102123752821257129835890167477785424054551116155304897239987339662217837890435311621427247249852262954062400993613610397005860237717007627215416156914379775117107008260047100837742495988255837973946285449606746389203263495146880806270119092000116421091576839057263262550329575752055266631147921480660637166127447223894353046917844092101177812762967544474884110798133925093013756292808628410353837817996878380228967554682364808857103987766083595992888075924804210580156809469378218025562245921502788744284756097724637762243438655649003555353769973172046330203095096268377073348832688017219156810079243144226975210296186433054166344740858847388038556842950304904464542996502264923608717496282463783962369936609914372171821461223968548708945542062491109268476519852562287040630137732656089440064251530401354081878425792183497147419268792533952518461584573604930848251470199826761475880383355976750420301101682885955671710872733318281567302765102334806270721173522568752906954388173590906429320622299092109485264544567093122008999380067085832057712760361656183336679745314364700173293718478751929332276133706706291388373960378119349477812479004914846161070825181622916484991566413407014055838626537854088998963831436186332031694426431572322881554035320786248439156746375920132796129331197917780905980295390517124547073972262066346706013431895631980460804630268481742398785918436154277985977442007080089823523165356625983219374243540288224232858197719532638304168367703982317128710011275803113307986322500819321374652898728952163827696427842314692367275386433701215861459165202944853242908125498230944321148126220118521295837065670665671497422821515801760212882267122088765596542691896453362932851112514857140787976479233864898398805366817669779659454172619272714366917833417227157396065546019860330748482779862443675017350283903038991994050776492981660106014457211811826927741406538151392254588039896424796797237150969292021207378097073177995894353972558276634520167559786729944363385211934852162751028342199645630345017211250678033552926719782446970232824833150055206486748121240265405338811726084810552984204922450319194067862550154347228959578916464681743858603513538052276460154869236076036178454215746385506975628370947357432016974326389901054738536953150876025754938436860048663981427867222177125688525886296729791183248848289394443260611065123842014953719739407813649337622654700054694118077696570141966172261622856248509936868316707200708502380631716189938724554434245240863192128482764164975203892428313488091752380009238548372723650752700792054324328209382196087863955688823002261065836264670245246863480248385488324840903289813592091097755934728998386788317167217761625162811539222155831469341643541366494058115853020943960843366842522687860279859307302581921799895240455697297504286771051198754686054900857163343117672079292651434820959593898149210149977254134796241024103691453318922926486433751729537847864887874412738271306023120897725631204373013386365046091366605084131476154304938907677290992929498083640290130734023393661211505678404682711434203933767004166450620703895794900368190364410717491808222773584579266561231134855645081585361724606054724623934175930903569140687259202172396768330787119896616515249778788275973451737206960418852868486706320116830196502570149786091108885135073486850781539924388664223506056984414807673559734566576197981255584437631260006790811584033921055456065589213751804309821361888641528119443343853120396682950752220098380572618258384131730443389146404984222082774367716542919625278388876129223877117830063489413802540226438660210325209781906663435984803561763449273491590597039579819909337403982784996386742303480539412239499993584163327665077319598550427844059716290047950995032503105086002953641993753546434924517102838271553634484112062412013969135376604316971415113255166222332337607633328421439431130780365780323713192297758804393878864200816129238242102682727426138936647621031740885826204788123950503418352122987146828330718625914954784207029031537613255335704921837723916421558362720062328805868875950642966534641561893070662267247447188256044365099763153848844470452306308932808236754517019215738256971905859676970815527403479542275829339657383426416756593618009001554365252245449800779951859128815638224800542796066528608491298656360168854272103258457872681669174220591633307844497923640064919078596171176284974404942270354158902496525700489083565145812288522151690106776603400607812916999212891126167043369240668557923827120362645683724124880327997594711834570314130373139579079278526277372741885392839972883737915319221382617089198861501841705750490230897663986464255878628943618977230438219541342059054708002408639530356823633195626636081518085155034265583727678642114608410960113025249724966900421130608208396811242215004693547145848630122402376810728716984111888188173268971672279232013496840997102445027751531861689783629155607230785954000285392126319617081594932794051385381976941812027369796938255792527108248143351892582883479813916473205332269620239370073647669919026888718575696686596195961877927394044509019940953138564325638891504472202807206265099152235730968759632732921861119554256098822035573970845532950222683946389186808240872106677282659632713389723654751269568771180488538859432724935169549826850734121009272868676261318715507851014099935834967408365209666920843558186600784929478973974611617348895645665088436330241630014569987286368236891631691590018929257998426535429434808925557245253698268834508523865356560097992805534224542676668236681582557105051723210326147172337053962141934985385322779150511198240909140895274817075158033912085618323495051174105758823802328695564008504349619654437596503289987151276742095552413864993475397470721000224458111793395950760660038432793683685831222132446993293384345816523321931383677995335046737871193217211913257846713959075632915182626468462204924672462255187059195779131898990807843205736826202485063393004366709424670281422344251300105026851620604694587246482193685742899041983418038333213166699929990028573855904973675231482329261191433536714744164891220848431393326948840382935048811380628068937277299553274980523719158461422208946750413055684991187994662631082420321549002719588427318138127276842342489457329712323528560657166130750013456191643203125812194728045467773279950240223608500623118493443971780388380697971065197022164646763685404381830200844734817503938886460436074606675388375653434099511331107297466108545496444494966649363505928814546288826229036611528967777625556078806001549047232038540030370362366368530170638719785765346568832248758712380896678426023459120514750171615270427461730606888966403424455285158286338805151342540711607983894135889956227861753053370843787831334220572867398746915398594883319455149560869688574778249992031270250252296572570936853514179289170483979220621705228780382772299917258400617303578548725231027722395376134089967323227780601676739079948490582239881195076227214779415973456752080396698895051959442033747740328969220652125613412178938057124242999472283231138588060610343762486237741963004104757716236039137547336756611276444849079917950356219770578947759676878455425647537870549877808699349029794991368531941243651406621681252525532528522520787252505083747539504017995022797088754498783014561259043581593473167905783807729326178907414379585179948915042095319070650075199373211071700386318031250977801460873339985746785969106522263321163235967378339394542847337607109191806348641313043609489902912796199443161057933727062193574436685075184897105511155891485983734225148747350453003196848946772898427726476146618031261884117075305606112385537771181691682603444664586051995590228383322150665731019506685800663528957053772342181828643547630935868079044602434562438550426014840696498385217725058307642613931247735360061695801665573406365297355519548294083485373483891418370394342646720616802618023299164823757976280419853191564170889193562850955600488009137104937166148948705097479036232927902493862198217559874613788277176183802922413469528006097114525787560958085403401533778873259709026413505300457240755654315228814416087590103715314263895528790680655663932223329841988778858227240149352989546790016824588330833497572760099281506113580697093281062375945680549507610614290826044237425731380737666546390476214581763779264099864150082814782219796448289149524392435850065548937389277041388078427836295620784244944916942485687568888061157567503082068283363350323578341112029521995531690147322191704389844011448947859247288061627011296884127907442621263374750229773031721151290234847835211596189560114294478503939023666645394128617870668415837792794002046140138279516089509376235515781787107075467617703085894419863140594260179689719815974239972764423825686753446337451112866515169999324784226428628358489485239828053759240703593923852597496225871320067843146133395686458811008464461389966479036755243894833501889278761523527838457306921310442102407446041232153908277698511037701987201963104488633426649177608342509105861791119207833797522895038300158670348307229171859532636576208964997088646688692011728912379490918878731269962501398933624731034940009832292227708532951483866524395015879713896695549864156731345867277481048557342676627605847664366756762896847988667649044685974684639480082306466981389785875519344175939983231346746034701476705119484823130499649523313874605843160656722823203843096674386954529925220622577716011984183261050908888138749963388161786077852069901017258184938571557527594388402419437864883447356167869435706183146812525757458523950881439856839972269979441020832139102227996418917657127616446814889518383301016609374589136939742482329945048969190358392482035190501674058846354970584885602863567959248147976065573241128690909694248332929777167675715864236850281550807790741071656989251853868688484651906510756358117060054899133116421585075425075929054454991838187302687076760728210775576884519418967605283220126229230189471002143983318640152809099656169146913140229415392713112059083198262983251431835591676134066733575223667016316846671817661256085444237042167566436257267691135014907820825136561618762041673060597551041772982445699901811750442830602639503312017632812870688561830840080174187747326711162556739311180755542198571638331692335319905113944030811308714340409616156694281696003323776468239331221999636270485678950654665642625493256787152888368224529760340624803479723945607123263963913264290743601740127469398913213195955396025286155496299518573571960514546211059200378001433127931938670690321198839843791060075785010907063121057289774688978541593619152550791354224275129455963298797033302650237628475061184666445189046501862362458592783567851738383720688332200194739308414352432093855937375293381110577118318377196074285467152887462099585376020978074671619979218799335940101582015259000910719007997065015240389098154856556579587452236511166004528679206034992822132022931515427315533960008456430674153491059594944453285364545824390775804519714219631428926233993929491443107351225412284528546713974619733124486430189467450326273165550969214262920587766845842958258906713106881377800758314462670064512107278829837984983969024967877040968572991266566850619334382937531452156762434232343335655780345934648085497979657973287799559423817771008572093301373528033141784594185989132922200408863009908253207890121905737148951344699012619364443909598188900009987133928541478039586430037640322812247347409721709022984340090395300941619129012995812414177028140144909596227471452847915199274945385210761349208560792351008740182260299898953471570436854720294086125626110439687085116876062275522714293611773881213788682013259062919267618302356917660727709863772676650228465755347773263550299329632219235872548653997766769383321675743581449839203897704197583631075570697586883510081307096389404288879266867601166097997814991087086898370153206155349465053902469066432587014750017822293428922738793476498233041115457134477664933315127806712648970831859444074610634086115811254483319006770026510857049471455921594262528534028866845730636298918846060629025224687365521139723771203908190512578092644783530431700915208345734539255084500753715263739929090639644946456438950270538463354434937840762677714370637952490465866458187936676740201338835281647753785773249061891389011707033095449580735847156763992011186720414833879849769403233727265292380730578271607859084375704199823922239915418172257756804450267892496669584343130746830848930066505711097361521513728503979827188383448107550922639142379500866173961842972906185359863481978402606703652904665934742959288216927991771569147587760625185378087421348459405011652398812608664005217972738524394138762619696074357476220688837766901637568048119969735138180409913367165432671094454143723428507232601220560089439293664676766714375142205805440435120756570103100398648533435785528951960738096922143399218892061569536899931511374824822761924919681528977657223161917912058364450743621522579497776866699933969715242319741926643377647214410932651302289502174905125275888316440158163651437679919769082131421694003213224993128470399874906317792489164265344894563948270689753732751221128546690909992387108279350145284898885381677239570118140433972957578633009054686132726103834104643759459619394304303577408563293543982332923166205316315107752284669817869484268805350262210180974250425620711219720781377309320171413130966643965153743149958955513171135284997862291893592109350244207131748317761304822637360706721022352399083718109179050528408050595519136792523051495215201790533343787355989103006672444888152823652189794276516787354656576000148915507066130910004080289997383832092215974246849003444209035552145928064284981298453561329142401933728188783040693764411225536621545726889933369961104903998632246101670551836631643436432895001161923942350843641154646906497663085057009386259655162285928440088245486097539429945691155630603861002378001391581162336816984014052161546852325881149376843395785126220290834352696101034418658602087302066115051978270374116410347978555386125900776774592533811399092323883015106139229421205581354657585481577187447375816591710220535521371971241018578525815794086844612506856710834787513645391733284178212209645724441796335596880752842575602874633878019062812457613425341426212139831534832887408033831178565233782364421068720244529637056804824103604665117190986495507221833873728347760901631654148762749815190228089458046870211745115895721915164554246031394455567860251650556262360472977121169190640030704599501732686960416605599062809064795242839175042487461580812758484916137447018015039901156290104467833261145175773843095210513514970193999718522883930741417086804390460093037000237279448696291300704899594149633961499549417798302218644483075114485305938141725188355190687535956096139753939714183369470875677363007547308964413807787827381815459836880827177485573715890615759044696516299313622722524191321061137480608492101111323161026135292651881950895684652697921265585564245535018638729339506845371002375731329945306245033918023786797953143578899813560690436654390231511003849912704779135725492431880498647525485298913193835647312157276232510564135117750970436222380497696956638223545027922162832439465827699782787880188526119965808843089510697565974520403144407438063689337695062393145300221968213654074362954194842414220866433037966687628416816899890951175707155946390473802324596539654206393606877831425291448025927548719102728689631836605518354676808674772457431329500836521697041465107567429841836644651900171787447514627777800205597622930263354620719450321028673972424844866280441728970505148583234445086102718434922439586911107583028590619745661096270263620697409734042222354604241963995063630874745817435435106599312491892011168550242512644360922444198318710855700799850932593577494278537747059772219874852804834711511889872421375813517641683636861694095704471805506144111483917857265539808558655362904980886920360027033080965889449820490500038349223523353976769049526829359705470214220995932654580695971299366186501960380542951659628132177220620063676817029300776861730490085790406114161289133458741056245688941759736130015077473428565900681328674939779978280125529852803715023799213138748459174953646287223554859979633307998995489362150292829486807771923582198709306400655016505404249844700667544523981033329820244782696859846877620959152419442132879615980919194443954611557666416148430523828828444786354681712780027712910057624181123994409826632770570919248859629770725427869177509348559999452966610266265386180514005054571555615996710177765078875443132801265009943740535952891848726834559270441537431678090926175142629343521604568463762985562869727422842281002789725659748620061209449852814237168238639767429756557765634673591509139533932588079632526619179067075340270528226672121008459908182890204636085119527247782782655364145027134125797093235846971894783485686160765085601555954167775996433369036780269927815879311415252134754685229623306468335688004638349133321350901908060166186399825684047468533320450724934428185290544160834165880104462559711358523271958347921762011657084713945618808643661235954349032695468375916061542723009519595430191160298898068407272082343755063393206775187055835121360240465055397300491574938379307700705938924631707333901685954539988910381154180596162908682713217201941643805202347077753192773046977130862039032672443239973274824761452190277572448698000450922100422685219699263710410459071841390415872253404941297124670545734964219860635387579386748108817191537781258721915100063446578636641424455617930978700834696698960108542233442597733474851936257209215268829734983780004827584702373140209190349810154948138767723821210232623742534801309566832466472968667752468789203521997878725286323163919531920115643471853254339719953599031954204617089935979566641359411304825606760305712716876611316631520403444422814800499535776642728993291920082019568324430531657420873069092703297621247582411905651253474959574165803447936308884558960564400775529425156412382749981420373053354837757851962619544350679949774718006317691509327351223598813181448974098970087650986263578090267069474414657840510302108860282383662738020669983249848975769271234049496642339043556448326225578093792615738588275015448166734645277450388638245733141999761489039692085191333626870506058680308316840238775641358894047569735911628859524741564545850314850329546496671746820765597803074879956166316849987883982052399796383794516673758098443879690935826476239292135639536636153779170915473166758200251633942607146952198388443894351074844141135078392139150609076005029538718184889457793439745933706622017856408703326932003172098448424420922037713312617910663881493713095905742105266358987899082748709243762557166315186976236659569196884089257523766134133509574022894858247658664670035042337480018783385821007142233958612401448199611181565922565287113279591148926387676932118491463629441418972253798151596842159443363453260630216256283398451084676459722322593400596094490528219034044000902191816260582418078989145672584492387883591728770107203918807702791754125590279131537812859346466408737048549715845104555772909896737867323494048482507822735828786792980236912463185819979892419094218024705015980021204000017869939248118975452983546634879081333700433698530368666360942916806390291430843441469481741682094151751314651903381971048174316727686864096565691759653162815763733223906557051218308737330032303440792855808802340608285841555684020591574925236863468071618730397028388343940875497613247509536032392009663767742692395567785042920108362322195030674058445567004665454758580794343910206731440726067662261191987363682030076044782469963598387741074847461305572330934020572763414233478306300009434411735709748102714522208638987192174723498157197077510157195395611372421594137688428354000454918630795232262664806653985379317104779992346465380080318725657299700682851275636091964029153586981485692480748728712585763384918097900088691457369245077689196338007774511602941450349726122870099616457549903661508119868080789277081118230040689798874162768365757192637572803615112719618669905865835032473882763613718430718305751463276917378684001406714159140209378520824019312647931908687320982356778003739829610346867309607939341314784877408339208009791664582255731408255599305088267730728236876730398866084365877336115414435349991285698668756336554526635904374760338109868236483575243752419743523714809440046689655383585447284572548701881055876663649549922796949268507099726680549687856635849154650301462052191397274018226169526025017532055068023895718416540307340572481304899252504587759209726789252942396040346950385523334274419419276030489699360717942794671988243090597139659440532001806861400372250852981343747145495981184109997572763607848042526278529666142048403884322116961893387718878130678025672212030279744019196323367457229443037373488866781790772324621365761236023005001789991145020777802912394250346866627403960874967681775479376866055583004966125205144413101547644311891187237155184895756331464377909395757944498434516392133457538762938245297329527802217158644466165021245096019815758321350894457442430795356915428156321151797459871554162139461111468240403559263825563103625721192455852981018746079910165162644860595711032920049892297031379560205003127328719071129325051278468167480618845198287976149111432144650254351139169826007518642600875574154837331880222207149825842004091617530781917582531265208174829887200356477806723778664257981632280223557084966811238785044001913911886938098663256432979773145464198832014572326452382342748410360894759944394326505461365338797883016391455197827189959820257947463525692943369025900512105945576479983401807318556602280521652733175473251764447639060330034456553772003807536488654288521986882260194961178461409349583632008042739837292427574144164011231343198144691465079410944560981793669381673624329937948277286125343837923668957582571851282561428799103880638380526012723171115868054932805530672814374387524792903632113344098889994722883824321585499767537954054416022014908892481469630469994730992686884767875859518491431013800153155453930190081556271849948412303125912261106851490279680173038642689849911144628456101326162440418208635128850276550170507617394666355502000715326126460339609382848877409037816847694679276366713907826870612810233470244496783279889745185511527862574528989493426640147272425751924145817059634468461124588661508017174889772501443795805624196443453461788042495233388123601838462327643048733024550793311728623971690422155829940237524956936906043214307161931103667770947711829811010034080348466565793710093669661584190732843543724021778159118867931772081986580996709173407917283429233391814191920654848643998283250373309897594821993945259451731832979808651234714228395194986196979339016946394407963515053783212034653180074187386788754875269413242636569828179889527277725273081697080585730036039580900043378389457255007672062750731733729754807133063535035129179721190032630863827183484554013326202005233634606489573545403177307588466987099075326304094287549409191404316287307932792731890147556112326555498958886798681878002514848903891997557242744199591822948798025071680062608089880158831060745669236119651555799490317011071034029787692237745042741381480634007758475309937503836637577363596109873624072292547101168076958543455481146866366640435737474434686929440522505890155297294195888856667209055224501089629552690262981801802018598663605752384566036192786110872046559352825661649538001962266075105799500027184392863893219182458321222868580617544366910794551149529636934903302271548750667861671156147103591333323159124014854125359614379473737565180378306554814001032946098329526140106224440325985178963532978308085997578940476791911193046804792904627000730927082276013141229039771585391419854010528278166682759993102888812209956004943520725464025470218969527905152711692559686022927472084125117619282456597579201899689261007530960754780396500262011992318263257428247358471761607286579882151198995772111491414629188715755446699562647351374134887224607910103898092249424397701183821176749718988632247801781769829656695778100147567638946735377673160178286281097612838388404403740949911754450178699318783833307477194213281651771030324025355023768422011740971659320885808425442825960882257753477388167998935078458327721124394139332410054270444618606723281414548219770237648926876975110072128825242614872638988368105425513357044102019845538367510688032980201687399176542182103419365261717016120308598878318727617544952719979912287810849756942050350360670263693498581105005106147957510539492213627680236931953968040835478861334611200815431204181195561600644018701335345768304698809450256402095527212306321599514686040858944499733065764494857257203294624998060466911071256683540178429450463656002525888863231423388736337570815372925133559973270937854425583498825325614296160145777137975845460978771300108056448121815771968465704788720294820225685737169706037127212851974282306051205424870254048669379105883025095650791032991893535453875735208074525175430122578651197959577098515894011597837561465804133821542420519760001398784046214447773524404348134263721472878000015637567648973920396114372276163096231956108884055829056074101738442114286065538204530107848130283263850476211333399368420443352916778362130451870928998612343254777207483355196571345839698296283381540021820810110518503150097031387344315964653634141021810745665981238184461123320934707884619983000402592115842849887976919030448067931844099738364535263670073586898529024926684462419478188067630958990527564807447141820348419034562433294787677142143549464923336663243857624070216768926334427759350349042442816325032898058935364762148682556064547086606019165812506998213776000308996828065973152054827022217361106471928341682533695476023866892919821349518414218501714226032971924385676652441565603095246584806324507648421462409460459520591003394880885551888439272256242775922001264721680883361626055958146373237607848099052647993834192070470477643986341122232761319291052851118162523037466913247863913370498818214220172508850431416668270467646080115173397358345900016378770062581153934905841204464877545244064818591745638397445942750869663852091344967384565035454882429856526937806226671253030988555569288933748677684595156890930078910324188180690557230432282283354898333968100777013182582600633888896562040537093992501603678265175108811500726518075351346632005273120626381271216458302594587111386669972364274233989660585469523327281900693201115776206078039962205736124093216872202647156517591570707852266209698593551075420915138639878801686564354314370325802401601418552549654577929150329330935676069141628127539395158470117365048013243064735751531598621407889703627829126704975148484386407894828322095153370369703912590810019787087291723165648920128307735177936655825235005885656305584172398603659653142871069600410756273857033475599098253225454231277441141473353395734334802602554857141719202684836246214327630965799941383367303952667757460952602320440743934440101390038860252941565123774044156031040107516928722420625334745540726386785261331249878203629933358531868911954045166083489039329249360509697282007670396894119664657325293609490499564207701548045450420917278511121597295082128610332865196955236311794462409705515610046519133996808475219233569152712076296958672657575832641325010776108585474181439030799943286378125012550286113797778862289122823526776699267508339140307777649070895535846680079339972212053394223083211848975897049744123443989728982017189732424170195832715444183287363085139959391125312370982375570923263554248884172938074686664456298291150962366022429898136110843834052184325668845102244170530855270492380437950513537424414700721827753071044523511695823045306788228489264197879804018655928439250600290004783773756984035201030223746559269914951833413974908469352662351557722160966297567580301070869210634416591732325684226972482274887412153612069144432935562510296972922171924546849581040799086981608054483098550135668798910808500461545399040795298496233669929521935235177446465187684583215378469722438255782906783236690214611477794226354390998454687350374732983402055111647201716976418748886268224295777210608691146868791262170073632956814030787332357191494636596066274458452236746057287890177959747688474416063943239041939565992430723160304568549515500327902300606962955996620113718274702112102591549964190134090132532689250309516913189925678903131175585554227359790207341048499118271470506455991845937049691266510261546802058539021836192223112993060352107670885929696922701308464141432716317439687569388259248253670861158372969693577254654389205132638597759024865636308305969566274427371863703519480226736158118022944595318440272339846653200407598485447771206070681920314056926385638361298224014259464200805753477925076501456425281779341157095587888342906875639880934610083401598068598924319997770221439880893055220635148674164942656200599180238547273005935475207149214808487156399469270513697204031797801518080511725342757901952101883984375482820953928540819382858563122957489178652562387486204734691204894936014981718081689217392953405263471098940462430298601356165293818384895504590623602231428987691238697902929565528449011762742014853363342844599488909425439650391403695991105650411788452463813445110194641677213706078114462236853757336583209929400797058288504445858099352771783927234501892468338232976412692603453755675237139673237174180828111239908284513895153556194386186603303105385640204983706607793803631219298046685615364422723258077617869455875651649770511404108194598390381657827112675487344783143726967068727785316794972730402352592022128275627492864636988693011136115408042485105931986195791856681488538399792618556422703782756256807314558876145390719798818265285986756456759546201230884726097826191614303566658782263178333927266551040714574819516281654005865713012141443801253142517726650552552056627808697340841696411831782718891196216304985210150932382991936326694164280950547614329752305967500226811396072781803834984213219890003807266203306517369355480410012291077259900205114549193017573388771098358191167658622082862060291957982443692639619903991254005855943537218515312713599289133195436003481670710043988851578175025551952347258888959867201678068717051596898468774347197804688541641910704404403381729423070650657453930659528194984105090603493808685226192416886323659617177485521472989239144883870768476738635716672492101782995386190749838685217817399423872488523141938661199858775625460743065017270475999956322069003667740901899682932028421672623310687140881057789978161895994891125438094482090080172766434358881826896866894793837537376355535737469453183329337124425912975436759031077037505884828803262247569125644988332934392148906201450527956518708721953347217342096476335964986317397530052728990479648243032371508326194068888744745298012037107461047744727204803936390952829447876474879175256805417131304828396335299409750100737089714602534903532085819236283233807334823431736438404210620387270081847439345735789256001387108347222000399492045199396715792387074460598578451094160527610625575824895160575932865514857654132360660010358635995962425260879003929119834699962972307767186956674949670169803100593303878979971985104864234426905928769665549619263253122334050901309847733425837976575489546844804617349454051857627378124053675537904385219885272521327454672610765115052029366422348758988457295587122975036093857352269002482838037046523274360527162425884059615752435222048390645649517446946654804571112977645267208841168899552829987353933732116761060456485908901709917197331860283617743209439461898594807085405620412931564772235311730353430782899066759024118553193558543905958642875116614076282809782951595534588793707198912368265963319928732346741559098889691605179745041838884401026169640695380526821869749713355225054000207768834959734741481120115113737129292648769399262497674138294348040523849671441142275288626479124680993407360961969360864616610528295582017580736727399049777000115765647702914426514879451308235800720891976692112294608403987849078395034869935624406744286220676939141005720339795471517100874470173402360428629983403131516503822729754386411096690948718118541275833234023215935958183154347806589149134372304668588257217498255952720782149904813682910526499536427824266182967860432112529133948227877370128295307706414233827780285882185741848507965349702182077188434734522184279440266871811289218421629591658790720209591908226277513888988648124711605140908788608442586429495316803482650094952241980752255770621360835509837251634769904775030335301761401125181178858015713186635642314356716157605814799690996761040994987090857901360358832032555466124607333414864608964633115789966082174185706063799714039903410761160485710534897977957646992483238374237607006280163524306436296253556258874898293930856014358501171933892904231648399180167805379786785075519345485969086410682545730347325803334212691482869946053255476685500401973304147113508250189395881422397696952149155534297914892927372829508778914523073938830249639405293621777635729653763462529001550299338516074518461160208214021750268648290091950909023353917225244551725428866688346922460857028387694692084626567545920010313298154949007402379991350024579610684049412687126378520273312136195678158761233674931670157600632356031077690304987358451283147426186362198162898339310445095013371032407894574428330274029416933078246284096103925525277939200932468508420629333517377326507301810716662754370235440887710583251730945747318133854868734330469387242697140489745412108018843132152182022865768131844152644085693052789685446742005450015564426110946569879701060097298078056306564070352878589042939013014578398577015353013736345674778014496021689290521859710837361001488719113036639295469964102354256259203209064746569716156065971747043834602367182680020098602216494677579343514070716638978922045566138477402143071490132899436620534209991568444991671972358326591766622410664882093357894405139504019314554357619578587426730804419141332537415747480868105413726819566967586772416936237182790861420486412486871574701676824561858358987830085959362585288116405326387908183313078747503880242963792181802808229567712081292564891904935310085792175010865539529940250751918064937519654993045835098647498519738293677933435959311660552832439918531676415797951630259734468860660355443524676411991813549543136772487807145044077573461506533451758864617268237275041842660804948063746220389491584345157743233926787913997980082761940927453797485157167563764490491277593452876472275957738826660814726703042067545633977775329950015302849139664337872138061805442154694127850663186215671364665640722852143598954594655473280714683789843740841403890730629993902630214663182669718197027599305326637798072659975448109420921726249229912924624501260861018679603263558191002145588801644577912618255864964569058465364200366990038685724312699540526310816713222788296962569769094174150989684193683076374505018009603241362864626550196620396862992512945026944886159065991562211014846337024789591624283981062848815004323875476520527155457474012761299193914607249045076415844894013333418788485842950496115070073711394524572936906459111917539615545481290042523684254358177664894728383401232921383830626649225697644197608735681655652154375995884728771265569239400223644442386836412515372044714004830731800444352068837395735763264487700989011198431674783868989655968336175924044523360593403966575020721801941273272613165029388432302484624897051286185786906048843501815281085384069360367366122455042805433662755692051847259264542408044002706136695161980278743081640222138820635892652510208639915553198244940640473636533372801725285410449117407241061723302162177514342827145899429083733533029519395061537103792634432736563004982765095399359242922861860348260549955310980796829738996947058228723760367672574457350526284506411319971977474566784963642593243791918377318566270498476823396394658228291950738440901485511201573157993051668888315048594456936550523048943863056332651873912785292423458434282017399111521108978413802592551045657980945189669096605602441838844252288983758859616267315882020351168789240447717505732272055641223793118149804032019439470180493269476131682642556756885263841894582736453584528465617374477636080633534636146129733046993324570553983421896313510514993238321438346465554939596443166856460993142147870487752302715988726732711906500797856616320218798369592694363332845639021010065385533394573965284814941493311333785186872152729968081011262458720225530130166769001515485308488912476405211263107685449359707818449249009722058352748535474594632676698683225179404904739253345757233722453420766219312227512507262784360107322554782920457066707042508175475264190129052060128621594375499169597612771211105782359843785193564288943286496760040051098021122940815605146491079783069003676560558986884047393113754176923028200739994040774233172137273727080204375381552578053941811713912498978536349568685805789711217688429034838273740949746462344712238424152370386818629878065707382875703381635083721166635037573904784342359691837587810111342785607006913850005969685280918737817480822697746741944766566459741028817593169200142865905328136278276404965773641971540980422274873919598188873354923479611868869715383677322743696427585059923648621592316867977277545138169421560687500466730540438877353405122071781867294885961805763434086291167760908663512643760980578981333987256405948431966931845223862986867475340316699986835175597055646988845730081548906416224012936065183859647997827306935329971222304083762364772045525649353947265377323611405676538660368687468167782037699561803499795219180783414548479797582243276034628297744943463579553411904255477626890910585780530874238292841179195224584182815537341259668145165496096438206939860672622435773063496988393782236426046370224576591335689713857001712438213806294007555772168846583241849254441161965686277485497519845825988476147243865011309316142742398514504559450096050980740003297315350179672500964459571041387501080499649832074669081930925632346337143113604642990044106624450667292506892118169412765660896155439715829397396387454506417925756369562663818560174269130969524104416511288522215801437978588506575615798044821666831734957147717020165446398389508741191415896341021377234211607273797153771839855043460093428233381176549130017379689331213822913726327362412446888806037907476060287824010007786853815702663884169718962064199613669238822674998667801226489675267397713272514621280578368929107839108139015046382507548796314812704691100330180033416534662072824533597148036818927494627960325273346921910957796694204185707223099004412509370509282374890562556536971666180795211913236428777250780583679627797810816624923384002459943932257720524053954534649593947408118106891209813161559357957604456700063915188412688618863597753753330749787758245148379119588292492802997979308168153242556777396485221365302014345578546329063403467471615851120566523163963088017373162558510583675866328687147087916804519701208994148534952534832968239460463731846868072132514669828931622601094203482538925127861178006680931062704481582725984875834256089920432915977953421195122376018189334580444315843864534751923351407748281611159774459954479817366994884081797309550228066550687594333534614613339285001193630623277420241294743492699857993429909375363845113909694951729513204147443783608850194459770084668746560594022465430653196651881531071131331504686934380813580454304733850300522762228083935396706296063816410738111113918092490582859963620219976439485024018556531089830096105313753721104411146440876200938706770832023173627036492937598376728661412447575269690656530863956555052104512206832469199585291862250527309915303574625627620351690683791149062795071588704655576651197146725879642581223787938919985517512747920990284357959702774986891275523977938264936727743791506497430368303695032493460458058740785580162132201857233831803750036284556821868702487325860246618915372490384749606594068203465793387999546133499846441577453531865370129617243954666196241011586042773522928314094706766170986842793581892397221014534927148636921310952139534769449666397846776163281688416803917267004478735877949921402617919188291721203253167502495437141350828805313377979138668238435585075639122191211710134116541272560819618956428441274916231897967398723513060667353428715238013935914961021912888132455154635159952402140491088720743886783393005602218860825276060874401322233535120342510190838994053156758593342323351591105147276324883560008109140618331919546460243727004531632812642650035619436449048430045784256279965011136191671017825949025905120740995317376780834685491843551204344550436406958618975298872538347284162963263957924116431170139163406897979680160038966025959614873759308565208601081664711970982313267344096061919413626828312903876092116247977721276214666084289919222463298897418352714262810381011726598191603332601563664316431431424188896930830292442255630254428926921751650697067852913943292021600323813906732975388089203768524218873034072230962558106586941353998318478491724877765381443457579101863502393635397116354774063207257346501356580085213615747467728718573759357018804179966569244361493534178226639291823386617110664707102991063793696116512760464840513799731959511248534503868205701101424322467622197604002927581038035440195194176120643784192202166757408350374375218767054810144912665503013890942058150677893901585770840495143420829734535483803822745994111746759557063059574677980750335942044455401612284896893289832949262317896652210465636998100278765531444874500536214027883847723727587119513734044174233785249101090368130700593677504495473492742079480719249764128982236472648381981109019589375991118017336658756128377409860694819519042326464863826853996192661765903126624509415590152470150200354714790385669275781335578645371128654929099665352636208730755583099928514603616382391574361594557573737263018685689508290234567426697411138899156085322198286687590550002751099003630570876278557397774052945121616208087604526647154013913012951188351760494790346059079352048113190938168274717858177206965571322408380241258841112000151026901483435573467341469013704904568231002924458904576955672063187856435124533752753591630901327172644180279570377159051815122724709269981989599333705675391343656961415044138166966721859670495714304693029034958985513924178972269039110899445181145494146706004037431186745833248180251117682544296240354961115946987637899190721584871947214183923108778737330838322596640464703404239822158833333985283621710261407842654784757293279968435749817669404950116390626438024618075203659427413734682326342239536317453677668424356328806413121205889733914764883579829497612669247981401016950274200523842931682722712908583994818263197184326626984218065547201735107322633115918473480716013778253372849093044307953288828313198675645305480356724184659963560314446832325268703561345401142092632646405363929468720366908669585234501246390892689515764537301738108928333688610098747650584708616322707009361573588598857722503109837698100635940792645454218999387663195574135627821366860126444360731240698553143489694018049027829045553243338887700494944884424553601112984526765200394336803597603593132046276297788682423464023945268291870282547286476635002040150895765403043329183680498761662079228042657488343256815609101939325442191885381580636049627875807791049519092933767514623682214275575932535685731524412968101479524650910663122195439153099384353549143396258917696325089147307485372656189263477481074391408930878290687023755591860040751974281740743291312852386695664744819032611120951171383009722824910106986204687157603697194533403761519769495865306664020601309061820997734922648755541773633348182078609410887853904631354303616674542660827486575237052059333344449526040740048075051145957137117837517444487937466069432651577000915294388858052681152684583115246765809253252768299361519978237893897375635019184545330190115878024359066405853284742226412298052887230373993543084351352364901188878375465285387642378104336876144854458995938079933402843456817299248338306875356689083479085929643997585319150251269581003984786841641174528648244532381580676971296405035234495491660679331913362363125537300032503022131246009940446104071535859932397948724601472062416783927298843664281431775465302596466100139387000233425947121222400023652961402651709510035421801179260943621467957712662079821856684942808336788754104281320973147063918327653748562064004566472091087797076601626593437457331452995497634099178762421488995390758145099938080557814462304726708861763237016197649195113076931717831131509816183019647968243572790510451712882996211297307319455704536939759044246772703576510337822140471100444281708476525445943290612130201394992580535272667884986377094550228093555431556967026100706341975576098906837041562072392109267394957205748562517323343774676967403763501377398846981956552759925424398326440268870621262257760042302957454703174065715587312751207623668835185602426318465782844097187909505271879849731037106842539825896948208026591059031500804800534969983718623987039691133039532233697009351742653310770001873071958968453513703483435369934052237703709344182383439623458668664355345834937238876936076136918439532975248886259524926760345132654206608861985245475558141323647078148900511099500681488976747151563449276418657433949470276715337180363030109382480801059400594950541911982847642167873589047863844066677134816641874607744961741919696450822755137584833250504152601686093723404974664893693988216726075489918638953313395468169031966990332017708045025219704811449426620999697898655404937621862401880008357746689281413475042704921809085639077238761512880113981803097787799482111445059909415587850372288189800616152256989246380616517228122480197554173674931382304245725336230369512814656314452992595167086666423015146568312832623269709835412448516720384675799055931579511885954449777193996910814815846668386984792586681703783541169640569301071506465681259087836221359090463055602897969171288026353900300840993287694918718191595728155572247996383533183751034034569557551711151500225083199947733588035464652713606265782939816505978115513656325554357982328002612569033016115839793986404074856053883798302103602447083570849969981743990318287221885322626897515886998388955246525601152280011488599599987183352511966258736035843842155313751116135814195359588381166264808698263286028251641575586657292768439953312210567583492017459380606965268275595749863050581689216586594574108585291674633478099162592895619353932082155400741568318820955470563240371464203223447955096647107038307403684015325130743908442916130525656693442764037357028440457918838103516893437492375808703400308483229782316730639529307791661200096091170518005400802388438873632880751409463316856640595000324795528558591092463092435934264632750336556634736698714349261119116387788309920040920498088729642993866486042367467385169990647682149777356074344243033522268936856658371587823764065800529522074042359137306572128230490444433206297864744768369928494961918156329455792118595579513769392116919070815706233592819184240723597334419682388879338599894586896367476297165068059584719073672206726522396973349465777100397728022953986821613238582570461555413537980931592609713690396147424897644764150433303903784614621212244646094141232461690107390654138034556077153662566581920518931252428714751356897474176486948367993968088636572433805750944101437173818419694443551770337520692641661230294342178638579316860393954758687314950862909994642307731199411309801008929096376674584419407738382125937810814005953407176966627954097391110447728377482680224382521067287008502545233838253413250256377440561030630996452865166921168167147036981485011551332335293423529166905726078287246837853297527469002261238363454209959397165158119622728354964591745785209564896902727034087061456272126373659594440069505814436315521952536544148510209305014353512923018538073407409322901292224503455563717741817013351807907461658239519820925346898376166839529613233678540127612664215858227553860639211230200561474651175883946043940071831480778961819885203318304589326876587713860488720928626807995965223418963675246100096144494466911029135258986642456240529004112820053104557381198669338385421134782152650815965980016686516444233336747188920608668790188040673751604863398826273966650330936782762992576568948477088934208309109462656224301026248648095042724957043993124217871556763622560436394726825588375948785952289065250531640655657472062498900175703232619679336514644752915163144990768462854495568365089525458369461702879849487004535030252690559453776484474392810008331890792932451015681206578023385545006629879330564507069559714661396195141800985114655728570780342277867293981978256204239049699428136036533511319556258968560204603890617259864029220678010113299640219009478903141891751146598417750845832516133909900407604718508532241791749908707295948625913790006834742260563335269085708400218327147247291868632587363736052973600967359990115429687949391247102657879237997627984096298797642480898964513411983518406877360716075101300378175882160910384072908526350295421073858937575139039858610124920009762795660918353963075460571910619491440686415545556703869302648225376127082258424019497745260790436816746408418032731430286951543890751750822629884877795605397605072123541577739227285243802373949657053434397595129261767973098624772809637328466746501343739614945832680494225456673689636533039993292797941044724880277767471330487688501584496713787577247527333484764439443119610250761125532337649269627542708209942895689809954313339422184221348501060329015958099560904535253422024016564114549854018450293673932602757020687508764654827366525513494296129725959074375404566613644127320868738942405386480663285224218310508668031220900224911557475714286826231745860828609901466913065256574553117056261574617482382117609021736977023340488425702960726409369960064425431958796923863553109989814858723283525144251804231859269194549260770389047722712939111378351451828529534022013169389257115767922303167410198682413348688032129131874995533184823508338532699318407521164937057620421860445837059543452289336405086980295870428946401930040606911129818763461800803159741085922074181071656396742317400782050892234466035521572294136232485778287203771456881977463721359307553298471845856010066395442462275380716067217982793547278205980583739629123593536396005055556323198654812912006413901673235988207690854488178864289706724103076040439219082493414969314157624507453105428772901725234800435091378701726141890678882968902616235818256150433164725408559356703708106745977513619210128723878747018422694460398710666149961215150800515742430381824812959835601658071165688389367891797476951031736373608612328744833926558280337284339059553591746643207063286450698832450681155125318477651586530109157135195458052085371525611759977894094861695316720972153987616562956575544285882053827918549290468403845577001553423172044059109433432643955385001719870429175775408827402302334860964094415170373825967940881121493837890483485029134106478913028463531279596176696974288979216928009667514777907059589443475509773081708498767476930041478297685564349642543380352172859767253367523796736804494235133082109256927992674021776937336479422969512900098587149287897827581177894159388408007188113365526965628627745700429539871141831443382330160114468599625536586014403947782514589962337334142959959844924810608219073688837307108398278643937154831510376214364407068831918793971890802343583248765853943066917228523783249932188700047325180247165225055585991474584086129620459952475934532494188535327352571661630092417854810111504819025283367642347009411566025457505502731406578030839200871447138163254101218897020502141029224876512108416611065327387050383040006276314973429054048076063948483481570373380644288286231271472854095627241907438945963355813863834199918817177985592662993679917286751057010990089118300196581085856807842509951144171022828812958060778172080129762504474961624663178225097466553558360535033838059641579777847151699865618411339995749933483461083997000513651377522973222142593046009609025885517760286562670476578736674834195810191367041545116259168041996987822310490102580606395229597789798377772454400809673794893661591020243245677066508305530370438864121646643400879663391838564373038149032638868252241495089010336776801883620460154840860632855104948881415783506614791315261705671735893260370326464909882654917746162110111755815433941031101151736369002803623922879527542412105001449213782336649721797355341265025144772240697698876611425871108268477183216092505152887626861703800310124974191993675294583667802734771034085913676553795812531038069048274982078970414814678982238647986476923602353225934229545271958461660121377996890977021763846303155012656855096502910947575316084542973351777844815830054741686927159022927903791355529417617707511148647746075626061942355995260347567125481691904839096859557210110045224875632658544089951205270079781747207471215192331834751650011483202470443308778935312269658763943034227959409599739895219598231625995926589230776364989539140609951037765435136115026661111788193231539765191111673573386005705380676169982149756493136153486675218981226934368331707629142865055355632968121965783793589463434226215400426646405530227570311549274229816410026663768752208630452023172968337115333640144060949465813547218228473082903913369068557696272849651682553877500725921670032514208656562366704679556938104650152996427775336560664440677907127425697413029035781965116515775087314984872118193337153523108570378361728418616049403251021901736932664469369208851451279429301341571494077640439138993247274646393923809776896065491565839257355644057775106430742926838722212878324773956929127837049022782394291978705493656700804595095027744656672011480923192914197524649551873545813867252037025661870156516499116245395192538957411557185262472843717023609457888688493756729290237268598546087275458104847082021222014423490001891158407283881507095973942784574478553911197000820399553499705536407127716804266562551236131645159423292866448650102654373410396471801175748508710890553864175695394470144968525624035323386473666128718907678665490400680122315677247796852146791375420845451415497343001918892251906778530936254834933886672551788380094162495668711200794896647735369955086841578526461197291027980851275494402258968485776455212923538229774429286314306694893275292798869531322917538316200708256954922323499253600530065377449131089653714332708280781950494556749317145148375461058024277074597125107681515406743085269109925628043915322899701665494312607867230977767701515417965037766407750901270569684726330060237768361505692402135105427736823139222397393320046886130421474133715846614608046351542079779812925502189561710506056254642272735934875291589341127826550703013108376954219262180610018696232212030426258811527548179354058934267424415874559942564435018892381328918748382123391261811331865885242302989335298711495017369349092667280912857520145734731078099767701807193055551919240369711260851830759059605860660154118332806255992367660653979412548506306615019121292966200786596951689640131339737691808272326054323346595971545716226541428427029679443357525886757933488775279369461662590541133807639563061463713233997606373259410201719211419622744318792460219376720976601173071598168089196291892802326484761709845575409081709461585035579660772990617870289419542580163678414860354243033999115860642918017856457831425085106550257423619002327692985644699228467007391526908631858853439556576251812714336006653058869223914600160030163189560821223483247016988730519643704969879851862799919250674492373186036525860973898388921049693894105854762636152952234367650592812538149384338738983531814462431102250740583670185061353688236184205957061461678762370961870502740825129077285989272546514831156140253381136817217468420817074421624347431471098068108421108904979298960668712109140671547875933262304532130996735999098788566301886709091014889150659880330956227763092293137217623098174482892757976245400131886765009026055029042897458456491222612357960942737192317588505071162099915211089816104729502286019251397014280373746028821699643265959406067898584880982924980203742087138883500576652231907086224720985004607803959780936388354704131053347154969715790484927850610979283948533101803178088051893428562525656200382594201518969997388743505452723188303219930541297171665472722096016576289506227373832634933550758974376085957343355138860432907613773483978547772382075343747353537855361323631631466757385004894306669216697727113393450568922935458101905001099973896876163585932715829824962103215411971697340413284379638534149669141135149928524222183350709098434816396015474574966349559299793835648484155701710306507530563623780890420877657441315069249356419706298118697556570386832315304000378168546745288521965207920752646063254088799364789156516945075968492757325862331289004183306243878531460094917169553784966880366351605363943573444456397895674867049572068635894726645649891169547024603187661494763274886082566362247500523755867563533493667517549142452557449701620943353941327043895307107441136418296698560492672212343953342514406065650372639252096505726528636450180263643729341069605779344523269400723784186696716951618948328534244841714755487077474265889590431025017617619292803792797748129602382580667797248668122167367366491435912722212308969056996734321909659644640007016865047188922507581481576335010795326884081765045494248264344737286149880680822781622275163143101681047071052565406595695979650728384641908926120078612857850080966349040005775184328784379253623209380344464346762824282728425063419940234564142509063362035372441599256265307623238256236496388683425882006439148498221687030408336048869093319785980957794381978704626473053907717273360570972630529704987919253819400394903078686613591361440628598217590548695127362211727936335422264339967027314994646044931200366270805140645328498428748136861066672837670876392944669760000331676031494883133353664822940022300643308129413161265602129079077594025846971976723514771852431510710105450885139554338438514542525534682389580888754498324341274309675059937085314105604762482214984337814700803028721123520591375363615312959316534097185111886961512714073980223320547193181446180558812519715026458217426726278164365035066153992548687712425590394845922782461582360561823819022299533521381717852686629191208219762541835895142819021953148625820413575895698996701968645067186921992457508455862852699995116640188410580420883958185857205545405680694667747639886076964090035411638322109011697860858495670376495428518553045300203001538238714857954000968902622249350292930432913013717299630573474637252458069874526005330010779613457569952744852268741253531049798295189142783786348921434629307978982928691532830145310534453786802889554887406588582232460310540002794569751494154604421553402644485318178301580538506230026020398702788808363934062928693352477757380856465375609802824519951444155055675157030090918262264546370403440974305704640913014713304236407176449475597531452757927264851775141437128355587790602967192832884430796440483215909268253765856288306596866458181015833095201638691357578093896807004656902398402816077451110802862206765898103378442464456951331801932158982015532699749935139427239225775605968110296159031678180414163410889431951464837513922176523607751340004061848548082712724350840870967310938367593274671377870634954340394926691977585612184845491480488632199240796046737794374244088577736496342471003842715157999745118611842064434100512612496821608304605450600623731569939268986330661180467081674332629968306740275553808686139185791733402840863911987949268028296321984027412710223010376038791146394796808496100135836555719996060524918618284667080204078086169760095722691169052822764510795716279026271539219659986991872794129561120240384622747642448676839269422678413455058178121215635764745252367123850884275133973674625567873249047142806762092542811993809801930666566235157491551695374030280457685155672757098498134418643280944645190104458704128842058347751866959768205239571351693736388089810708696915748464058563789252786492807408110837854323138225717675141010694818183648347552945737723103587469120731085467242445850820002044903607951629419625006539631975534026314601123696497412005478215308689031519786096566011644289887186516950886731424721492656613710445738596602981062974926325649218996870311101176820914915209354932991433341267970942839417529022693585464414447851390020234278715823298821205919355769350993062367894713751099872179555898032421558025014936693728589602248863107944565732375165161908707017191926469198557383592410485518540038579857673360407208800503361367344307593914264079270940114448626893927976033648024162838182276544063542662994510253543050520179477668585696597275404188430823780983468361573668749224681905917082969423662513545449183521985540051579971666613902705570264053409370638814524616314111827332802997016989925402881015408167319929468077124067494515280956892382353735390572777318175954403994800633090655255277180541654164750511504383584095166000308558866776455370171010505139946155641416321755258369968371829527840089946936311244609748164006732219803955835202380705861807618554384665131753093087186684937526831027789848874913034304296368164977025841739833117244884055456521446830909978619431121383512214898395602656962427123059161160616097469551101899240888271908516481113443494515702732877108806441011355652066159110519090652627015491296011939065159977624136768986734093404934607157436690596341013407547430323128702050951808668458790258175096141110250149634870269424815990163967351694656805027263041151637360556106426028776301863042778657579021068028927850063507406075760073242294660909074988644203411474900623548137783678357773233548811526364912213349983604878654494129674483528689158305883616790771369168873401184074587329402033967156455709697465716706539932234055273827991838586170463511047110040670993755214760375753949419869236568696466059172697545839528890676602602862764588357913101363634877294954621089082188008008804228263703775917851551749513825988162164814870140034192950124485875103171806907802695918686630255200112363426328602817483987342557450727308236728861828995620931209616422331688884741981714386317903175932811397616681956879999152063354165001322792911062490213005375178965682707727689121770193326440698403267141591336809117575240529217987151335354515673606189203517872630006930793199294256663084057793672038870486410320158158431713387437140927671059961874592483054908499104769124938708322464138760992366888484865898762246122670298982518521857460576633590081401496904643590137858094955018448414460164934184844854962029694155931919555219552828693057924839768145501718506946343937024780959059913549639161516506287958029188707938387826703312931003046037866441232361194095416528006579225040364332666140144361476318474959467982787078053747769465981507141558784596854119565779627213696450721029170449292694108996166357300627572165626620279192533959844904304999810045817387014925578088011951554513896267346021301451303206695605662364041241984157352773303477672250594547359291509819320487470619189133935186189704742215526456388998856595703547350389358729763654382751411998000416202233041922388811303364188905442912035832457030147613672728394566729915859762047907415735204626124353661448588476190198040527321928919085008294299913864393715466996117600067424997089407195841707304642085317625772346092220805808596034822899983177964864251783258588627490136546871722733950607835518933504473367594483664097245422115000791530021196005502885897628943980697025275181116517717459180052312152889453731458558126041571883777545374882348898644495961092800237008457812731303115567885217979455801862997741384092202568014245671531856898727244799903810030635866945670406807014723392523266369916869659820166737497610671124842102017132483859412554487155225089773543495003967800100414278220766762270388671038158345000930620534580217828034721892977547221131664291949450876870492261525313132920398136591472923374354551044963374400703250305924216550225409563792662797298114308588039892423232564554752679780031822074257517196822762954544598515234080352830914165488935105203385467156468614536740405468514809724662334189706665080889684597781322690676601878166126838763264466063446265683749649629382335043357088070297911211524514275776786208765828179713966678904211637667700111454098948611261954547701682364212077397535809625222236070703713473307763036223253303037122602380865469513593187456606699524440981429294625833827240519169919465708456094856463901958823420760989509300315805203790660163070583602511483476170930696925930333138920059597357262183528984076053118567411071366390762717997720123654905537060044860375494473276386385757447907500987973398851765391039503930724534394210603120183900612982704973095376082261034692818285861188443118738668601587592913728952345405651774445994344417996676258466238252519266792874544536203666085391472644952303411684251744509719293734745209669784247297764934504840156831954167719786739959321421075950847802301817428444886010990203151556503145518245716240866949185667068804163122731006152370753366163313119079470549949898609804786135977903439087711506066123954639275940029163154357306391072091028720281273401569545138142497375436668295607140464914452972341775017500222233279367586068935549030815530343711060546749806564327907121503721410043678812455560045911138203628589618809714496090555853124474605705837646302734211422810181110830218370596536282712437212910685766566703430533895997687576142669474723074519560662910455252403713594462758036613036696117989741524797665825626802980495978231781704008210302803650034530196701962968326690385639028931399349688771738114577919075920833025940612430261302917572991905177514858605150450489717647983250925625266398461048162901952386698146164774830626509165219583635677631562518177388932653932825335577145422481972603587378906593968020276471131775093597112122729513331016204805393647265646310920846168538931360228609684497062165908442276077715921043392283505461549817707953494565008376706612881188993357536202236954745309240619882316567087573382935541743424632219966891520390969992652061519638127393519482120434106100206413013261018481414826457010446202708119104491926683702915629064928461704333375313875083583747710027511116224367086014470144055060759072894939872576265209792674987236856942508176587921861468556136948920504628038876629582365706845673409710292541385236176934197787379262608316539421361900339460106281914833602280539561404881398393001030069923313293617537242360729599940434960236845665870864413389718784336483629360805151820941358423237675554969186273153906356399308754787532904155949563437673368967711903102073362880121197387756524454198673876352856787242114904060431623804920716645147407733688473354567489526356511184669485252378925166943245069653073120822424895391223998096269607669331581880754956189521646180496991352237017368473034824531897938960540820056233842148576661644037740029219413296668003276848416216345158829354106984655043969868614346522574224004033161127051195754022417648354391127762278479847948144931814084627478987671917710142014159594642785209157123426988368605019194559872308379185138700208897591924401206037479584254607643846310936800679605372075200826018965604374532839940757120337887393024909320642306470437801746464206114276834258516762796115113704316299705703193271742419219628814661169840738218623849101944381615338061673692944236080405512460290026598534118777813948464163404111084948076570633424715046554199837264174113214343138211756410164488574454552785409891451311630605746698973591626559022272996152061882343091394055569323107126676368914781982802171013051967255163456714690832193839490592588642570518204805019365214075757243172141496857892494302092801851503827147293391861295805585152256820694858680978551197452498528515716971384765931807588249957782093457714284240759305266796005834283724949331427346513505328117055542765261672040918511276099966051053512183852169613585595124874516665493343825655427400121078496369036349582242887463463637552327449310195133187725676551245619365795144083184094376776526199203711611300933241347290203898371118225893256752801086254184213837613080489544693040324428531003202612558984314913439000381100656816153092954659119689451192327855457157568003800541161246461207286659037580234974502385474451276088071410549157499139754112230850855029223201601187098197002169356232039336876805817017422068788179763422742015571754430388885052146728938119448809998059049587575404126732086591152724487681436038263421239974951148943742087367316841957328964770996261000731902055052464682245933952484301051878840726774529709749185281204528762943510218293066710665958006326977145299585737074059527278682097138389057290895348630003970568293262355155624591859528844871509403533431935208632883424440087885893191917080142375746239979156973377830354234772138847010346869906790165112670524135915500154889579880348218251083044756947465160630121850973231075568462116153589131020696600885178039909228600847079533953928705009842091216080498095713165409595935218265156379244111442578024155426489931404609204326838567364295949964661351117120067378365922518338637759602585329717023642421740987402899186179198760445361752471577317804315983769125230118827586621409984173099707679343772252180583353164480763106756868738382424472033014510085174957491423183201965393239613065232953606287227684938791237909572641203748190054114694767674867780670872004435225301621945721283706067071814022832690245423749851102573538987288451862166922284041500136196019116035700928543216677749821580431191709124225589397146664211227007973786642622280514126011953624626281503173446999667334719302746288154889605101062817115611073605162131875488958803855863928115980894361038918013424742708912240184544352472049213096438997263064948148499550294161768561194030934826982732880969958415610009970009678344064023102052856596086466441603054291885111774532156662518972099659621814949752226610136719674568961806385285646571907095231119311587944064431646009936403762784604713409025670904838937644979841742832993844541316004296936806070625927886093556880057050166067461747331404446321710770059022099461303606075958760438839883149246614826314984189431051231267183391340703289912811060563056642907677224187419416181701347381124289077462662837130532452037128681272972471739480460611571475411793052218407501916282543868451285662299950687126324371836009339926718892670821846833443393204994877196772848866337617654368441857283501160653922128125952861923081718632364725824146909184703606723574412329788961600881495007687784255186891596843560137801605025444841320302053589773327999705448822681255802898855486926202266791378793732154868749637048149632060321111442067297925294694634556117661822639355284159472586991267456113555141015080064856043448459275270252315204573568319119558811038385673328114906705006373604529258860187283301093700008309402534498897237927651057320934205373282867759643169162747696889736186699800377900843554926657689676122760551739464226589787603117163212343319241868649963488744870969316673046698458427227771026278601668540599683748967608159301985256975974333989396516947478408947618341361275826585371326744364658039888251767270988820990346637920006656734509722195435457341384025233892562617694260414268645460923821215163711571422663302292184001854227749028830282107948858046626651108743777023108480561695965080729894319210131602740133602749834399566218580179708263860010244455564294394664306990512705520537827385244223305259182356010306377554052976541050621597042458598597190948002509382287985770456677532451579126831836048957014168173239280841122669920180250813206237307034536605449856541838264740020592505129806276538328118127348302111200818314082220277861738511024697600777541251262264100599916493857547309442709930650786451213622700405101414253641222020725014617475063235774191133147483256009091612932167148180539495212926660780279673468038941381577927238724680398721917606373495689408166722399264467724053760545968412437565134545490925728649021828337482127091757969795264274393705386678404206935839427422253945362939003457096827357138535447289953958128899136032115765857030860636778676575806869116139994120891077732375140707279949741526560782919041814021424596105850670947929958087363062952588693912426698831480892478123055066532831138603816351007270170478115405217871943969235846021457361783154218464279633056507104115713631670552103327690260448746662942387036729967388026142453282241945612672216114680756831010112403008953850746672590860863421476703929633239252395509022108071050742486299154921208605141146060833863316631954517973120168226450467254564935613038068854514883778219352854922763938623959178809579211657140702115602451948523327821800904564595274098574026453426800210459192771870643622865902106831480322014285278901147856918195774784500034914711501811401285468971337175087531409048171478020174548905116113999635448022134877513137192946465155059060462340919143653124034621302463149186602814598544669738146954884232191704011063728940676315946793037687093999889218457518527407733783336982236668537550055850390382653837871609819926800536219552583904043132164919328846442718403788013829892398170653165151488581278835256992126320492457845038024556033455827941230397712296219725852904991839541189966983867002729633962649634154096495410604618962076802553658896248807967079462306980152953867941396623672906892189179615650829477777691775462817243937788414521178972652826474354196364651916580297464205578295241186406269195730841711923952566516175985485036757172057086967222349226602023565624017086440669026794776520144348711673734369237932846281909422226725028898405813607293975966120557993932356085228109893967420126511310534309203671950998636075567162719985552886945460543209359402642931489815628707660829603630700529139322118640155554428703658944477380639378526417672616502934850178188113029034400227447439593773950869352989948551946598226048363385027767677150213915712909640710871823982883992401745250676625653545544720062267409063704502013304907059044532860927795296311214156642140486658856923421408643894349934194393643954278276801825977556108357536744614051466628433722824835809044771671287890035685704196665532121602061457288628405089133128594911599912967633287396109262627403322220474720562650070842169754481581748332423095413937489676639944890514017197426557168332871416158543736310680031521440397772142256662630315130359789599848581000848566689233529526904338550406877485453747696799691718395493576101616840247477333852319676039055068799784054544217023604482115310629521447065664662606713359547014780396695148867336242603552642314130896480603914457099661519667996496125780918452899638108322061774488548678039805616244808264472573691549270321116058046409707731181532896762368289629883778802617537691446787529690237140288315636338338168550981220175236959685621326059863448466473611587387010510349754954494190332742203349686448235759724951977311229373324980870685505889041536763120421199299593287098773455647648331763136624621371962863485423777664327206460862751041799482898097210331286911709847169680541175718016777020297215602864002025951098800133953713526890210410841233385545733549170280261735367686674329700673839591997949406876387212355777127994906173161880550514840308585911309722502034091170941170985109823403149325837366622508247073447296510086126924836377104727611436441242046984181817376033412292164950261639114501833773867148226280590625934039829960368637951482494549658668410045655276186261960558695521453799899815092052354888700006427970804781878491539230223665508988128051548575151818211706510581181639752769611567825902643622765869195605745376985078516541112690394378618629460165447528800384846489731469691378182840867831682255170692468193795728886773927069084490667307713589114248148801891208751570845804670063452377104648866540572362745270244895711948903924225942517138145863983469395494986849524027503387861738510603844465662459996205325411249436033304412044665954476226563745072041945577949622842832889781471153823591033325803149074126826080106636704498952959939419003963299339319141524076269578328969405599756273254910789158524963665826751363009620515916139572762117267252124933153894586965547996451582986597150976636965743891472602485095616695773503461622066890993950563655635204071270171719768835423507660021712856334371670955208711882980546891421377275256202953026268223639494886491659979657389925197829598444272371631598220743139302708258555776247178469796388263532958350062236568159900006384161540706720306605233719919796220115724443211579388769696472265322718006523187299597511474156772346901774046318690036633407862298044775153469250071391058616584816907782568656476908314001209634413990513686716895069929395672499221029275166106786263152118803483310137697653285546541386883649549701698435172154742340913096106267855209698664542598893824652874062121190892659655169518867646693526283650107249951142152540575497911898305263998818257611957954274172340502130945020462078558128352954235919795422813213709131582307871258959176254327553078187367082926909055646890246365262616353330487870966281743457874262234012845061282431043899142744249454259693529436452390635341717577185613085829358310063359762861210401290807962472093616604000026857471756511185116361538782836818054178320342214594936117687001054669713927765745844875926746590250297112315737863666444435756041690608123681015532785505435749504576791098475401887380697806439212921005648954736839493296002312718445840048124938216497435786728663701302804693795734272348720305300013657300472198157537364546902023969731953820428595060286868437182557027784798447803510438713508735511616680336957416486448660385378710535626125666699292396405418672759278280401017318405199461587507737897630754402886388883682516889814529202387052804814878925273186615138229462584130364054960529291163699394621537191292689024856389633508015321405635652497415260143349661404509168087172550516503079108419406371992338141876404452581471805936412911209490647743345392966182816578169194994479211158622836391677086358562921057374111667137285972166244212839139006701075694165334184787088071624315081785141363818441203631399007042235032603218271180569402211597748900867752508386940014568252347645768545146817951884523714937270781384189026894477290502766216277223298099890212361737408563985674129731475107500091196624965505901713311453247425572224770924342611192142785737425309775870620615172306639164053309422340958721219908900265041341334395100557841857154672651232629153550047106098722101527511447437066396250477857764651634567078757217296289838242318304866001165951642647582439547322074922864737683005878963010380631475084754996845473064802557967152171904174613822454098012471514041652184758716066755906620123640266007158029749632287820383075127894146304716927511101134856345533912578675737763467232737114741985183951417229081732353108227281497222897326914447515013156664341171748188263174389067189932193588697958213741202352778897056052486816603165675656307010912738704272467732060799340087972975244430752428811261786506344007731228603302681949289462442487346062886676672579661341350379500308289800398679373276153570178732287813344816202441839047164093075611883622322314990860782106467616222469598706480908816538644309273228331090488457672132598855834208275252307711409061774357174819231079892176484816371903920963380078945441944781261929741654894740652460863270588318058896151421073546561466526433123905698325044864534981530546008330450920280717820667276620594281884376278822415500546924059414754562269462824951073981559330943119701147538067451571024070175603000572271693906144791244349881218841430015959146599835250252753159554629403590246565934862294695214517347176625495610125079661354623007930719286640502552733518767058688537308684675919853507991857425582385169527836150986648744400725129202624693298963042382112469492875593413818290289387813802766169768565355992911852796267451507184552978306754663605640004656229677885042131866339306231694809766135904724138418299436650554950019483325353822058709060513676756966473813291613016280269760995445256898684790150471185473904821180041170345840235052396561384988072984996573039437852572957179803590765471737356301648468859411915486759628690491653550812207330364792096814015619624059081172673386002340081675940785751412214794447028223199511954953102370132621611003977285125559913552985062410600817464292665041396131518888413482991139178541957912850471530285044095769092402379303670201594986800882847716542592522693960413831535076824304176387396996574507732086950324796069063425928872046009080453624498736906265744156102559628854244728885527418284620619904200176932802937068536186508372954624062729542615943156039457581705656108683858189177858816169585674590956477193402600452176387471281060858460322443948521157769868238671761531673981410664024281733703189059718850164877773939628904772067457925911806797081732618518905168747462826884487308024389255001489466504558418024692073421398873778064505581794381357518805745136859363976930487709731887682206468709185242788492275744494556367170381241701771778119557438450588776759003615055533347589488100996914749167007763819266599589054437194117795231886380854747183031212639278256206121071767528334401833640722641757744581894419404730771269420342114497338027795015768109125246719796607490021007522505871375029347395057622416621376107914767623130064459538313984709838511623119607767495554111519273756836725696004861055692821427795159304883758802060539145267189161228851079007834557088942684430625153702653774077530389578323295050574629379659772750344524052630066868847976694983342122828538974390323994867169803842260965420866569277350580184094781294305395008501949492486585746460614246436027608835119891838868624868167187361131588824406273571476422881369609186518882149956219951844487405877920230791754735647480775854825439759909631937268836468700877916709698984298584758457047348033324988883140767050856526572361253100932158636833827713394928717128067848146162536353918222884769479431733930329541986806856626008361917875400135051716154336877235674442389541627236611787765111344780193805851749961679632342595250240323054956956991508382090951234032078973307811152305521095499283376206841856842845648810638860405153419653168150002776580027850670306625227168408266620647889890712529351975351180098349440265829575773822142169661465478340991776134673821499367553265508033537457160656800574167439483803104478243050105094845912426480118379829020714316839484569734511574112252152742810280757380079673612718873232469154164724442492621697243614338376224848337825484033055215249168598747026215811798871865897235698464473956940613411824205321214260461792672834805655170924344234905119679468222041022134544490880774415665704401321484614485706691695505151200576657701670511042736993518176267502834591942508538960364720737089608683784993616577311759175707457006416104695668266496288197851347176540080129284481673605631439363287110842485104389065558864497491248908373906421677253892649744829094732491550149810486543951301228806989928690491809086419209929562321684734659318800850736177519728823428604647840615709230562047180782641234912309435646374453523614128265360511721913753261805837006916930814714642391349034973839475338457449179780513313066844283890602893730050089335087881256349222175876323489715543992067798485534965480350079193966963118024335240803938629120577149469523972287193354172684294285180269684932466363094900156661721879911774677886583926371838851457139425575103770042077138873217163973605905279966263675525305210301874892089083506785556753536358776184186976906769082494209599311336065838345360988733402214016528643152719104386280856898989167223791359164140111502477853349891342590933919547315733719056906902807631857593078429791486404820729476591458904185645712213532512069638208483919856105556004253090380838809999137783895912841869199130441150060067418084158609457122254491316151970532776649786773888099221304336948129359953767905115937977490194949077132033562258276618690036446656773267948491415851263538222081973980257847862748135739382505456695177335286493991531623147987172449175952645460488287110222794344394323950882715612177653612539936188115420214804344060002433130424774357198825404345183731239698469580717102944334750280879535571954029585539721252744004159848914479190312003238699065999310318411462600541414637818342486099597417995598473319633450206082305842502985179242673750601434235717782368924868193525131942880494772865654940086826044831592060592847534462811716469410105535681388459573852500391032759251861228715023815866188204395663548948134505466753581139551767087335924756750444066747690558539072778224516492777339083492771309260950914083916094386453608759812633749225743457559590897907730062696625004440930582637616515368125953884880640737524427516492097723799981800617222314708778089450744820811404246359734233021829656052944212932051606594555554836235425647058007499360697198565456601729863958903136552213179832690242842384002322012752781843908151402398691895933762750244598029149595182528095324536514068624658293238612527718007245141775110380658011345294610238744821731210314751544551691829125423160667364614208368766560645056221068727222364908290198986241216602116002472509135514898138251126908694286431546472812446597097885949673058915500620565757281051200548737076974183267194628862891176566102768174093260254547895131202284018562571529175838066178408183559026910740102179403313145999783465737793485687075887086364671182507405361165097833332178812444574226116849579016476490499033069086449421953162547572049114687028148103825321660873028371636525227271920819380994645208143773227145850562696962250236266863171008314230112610197196531751139156102135446659826454953070098605860661695877264991886731809684294776377384509183635783878772874875221147923958351687532582236975229098613971640305058710579765614190469610177765789937116957255346433496810620988615138858327455636443317533067286802048347809403117469050451027440927383830081798138725350344595088651083188840807047410486803806836571811875244809309469973293489971180101958868680180044058716428961048105772478051247794397843147995380760887214836324879114531152003942637316188634633333691983751226439885809432311030764877756108882599736153285348972453689290238186302022894048083751027167240163933340137296673458929035854171823552104691349773369600840175086446459691042016788168551908114431061091052710391623605659139483501588461076259420385566658829234302740364614742444620068825854212343753785860695434847546718059051305740335045455738796100671376548294863164995709357594435183518580577677972930323337625668298683823818701313173338460386635407865128541771995920651383756868830482382557529141474964280507703588842904865878820848574497556428546296855814011163616236460578360015338093598517552711580410876017534623514581873090898323277250853651369710948009074746670935470315843108660746734296411850174278936088627401227390138897799566238762626478971957022471520272688571634971675925187857037373583032892375851946527458060556411295900315139539901229975566637257155760977940909415159053004252977427850566777561526684958280676581947046507519886402930454960984838301363504371915489623035546554110326855751524715618520164977483448675774506877228855179644702662556908564030470473992557132901503055759437570942694901532712258194912457399414129635087531197169474482996162571378430397639111165784812664587530791130086944372527654228504588573385801699851644086494170070110114459033379711350020841717958481694979806393414669796989771492926848893382100191713044540839781942174359922997232275572176895495131689237358372031845148516510260715667928083576735585394159762738666172152101941357723910912156647447212072269855440123250432286701333800037333242754486357793747826002674359814473150914022017164406163650173099178915148144804649275766555601595312850168999578302076898570554517686006667728033070995448554871614457726256139816099335577732822684305294597904180924233071293593770388485826238901405607968417327136122653562695684264171074591507904518806389723138914940871223519552406667099176340072142925067807962465813869397349547664295847094556017222234485139401080287557990840869685882476315574775391613847841046887056085958564548830153670473454891883295396502786264783407123720750667485899559496042378196476783581080101459893665449062503398362600218482785359479850436899023425101113410989691426767883191427322227969020776476560152687500026137863294400339524546103129390149997929378106779341324259580052715219666754323622080288970225186186840942002921576503608169453762641932177100537460419335041773401739276523366297072956769584565862746487301631029772959053858028025198711488375821352999654705630731998254108185750629267685172254162236219055959735488269830194470146339031563835430631133524720013797604099182007042354492511699171053072315401917662112900257278830608790072712479984352634272527614944465137814119955234026122608984648107203820869774092601169531021915366034163039731665950554264120660810320054657464326172939799035858692814450083223138221940257773149239125782571529740250035456178219750354112997742260618407406992570836458317403463405208594532529810661401874730215531697649869199775243726901161053962989512245628029865782930161776097109427531991448511092455219207636768216394882178281387190264634189124915136048427583438152280901767477252773918032710790248163933247478100290881514976532817977954799084481991512841839166502888800883956017857860014778527570774124218549484246126078473244449278599936315580597289931024348989073387186543179437154784912813081227235569932042607035662998652334829123678765276880629577153187108672198445456708394944608792452008990852833721263985321858531909387286709326745377886825896709156619675223771222284634122204872603516662247123870862523978788724757727931188572110214018230237543493523932926166601292393147714278690813111864333182340826606760145978291998625225498756782109382914402488865542619437683175542814196650765865596675843628538442163969088002935903134767979498967956137463049994690359348106331574418090434299918227808116118568413570499636721495138057504992636023075563780948587405530291003961165784852555591123155057983244787774220604329989503648691220138872967213262326999572958550092074033772559763239717975545730009339702369905591835409033457798652032491253864645968812328086183424350007671189671876873164310763266561024182370099044082076294568868951134386741296231270451619531807286930002987342929451858104871445973661490792304374169459370160744781097320634252488125593326092001973032730524474077560613078936806180662271647552551507808209832218024554778260011985518818953027063550926040504612863272342390461229369788578444249523225713490334069043121000606114371072762688312076760423278808942150632004620235191779141421896160319267575118915705701517864707615759636927163579278062580964118961329689452594753251044727408685419291559267986265238280152609613519147130964833946138307163977069120327071381672975136380732098149848661315043645515439285277539652159056850029768556613626401356372165448423427921041652841609959503680262296477211628488192635545041410629051969791356755391677783815475357083361783981825731948915955858842585053452600832132428595146439853434278984043076619593955602302747293969931030593903727348693061256939474072063946486765512163938233282706084428749132437813919158707651784386556842449797528057187602836023819432299174229619014256286902225882501715033634284860472854486935761737732040832906241411495910501019878556605812347447975694575751615619734492577983605902930523967374195060389693204812161966003208658941677423746156510836202801802364277790971703527844234454885965975807547365178004992885327977564737699254010552352061239869676572422552511856923347902341520924862520551372369742848544279127357498954272336288891971979751461084023500463547730210999641675842401701139588115754275446477974059781984134742577107365350921814745638745493078202215609305682810579853878584157251600033363796031212816005834459222619079802923231793725434564507468250930660400052936451141315930149940578130290447242266498904079711778475267003519321437947845352835152263463790317365006628815303709166019322639215858807278676732487262650893124195389176265292092004719239928320453942573207216202337475576833688719359394494852062755056411761837121093033470851677263209350496059722024593987505288473869075727496505928188321344544798946141264007452026771785923665090444129874827947233401654863959931872652020129534152091941238019642890103439337900500951203507140897192460988944956887390779264648871183315271995472094543961714313747682811141508143260940554709495459550864177141385323145925947264142737042254154504673763041591853357417161099267270824012332823444728763658932622622956749662909919146664901814607690779953059758986532447145833491194938608358201123701424055814546484344507331527161438185107868706498316782272770623165387353109353961360200101145518735460466604815547022342825577859393825934587311956952386362372282277249789947549348244108323170301205609169264662134915212936502577829096516078704386294472439039473336217578499505899652664306972762755024532318569413309271075720087310513215368784639622709675130131311593844379877725319191415745081640281834245362676443777445052194373148233170144991574772143076289207858442833926726032469011815220284312203444784733230767364172391508013043467870726271865039067894913108939835962061659353967341940288604955896163890246343279422630588760811928330403419183075408230989234680248671005425322404732433250981413836932084719278994677807681034795377189433752607696005938502188826841981299143692824205987735337269046401662446739250520087159404945176552290111163663376376929028124751076233380769049941529634483399483601515114644868981809402187416876940279006287989984840352019906226947183063164170817009204634741529052912917635900471517439972872792197288319561861687886550141630604649197002347872498747294751820320369107113781046218249502650176133467087171218817619954270190798180322315312573134393763875986756351381051644102605768998923904514033948962821052926460555564213988168967558300227452775219801877395494035948344430524902053681708280337894954033101128364520379476779971693216886280183694188120487329952100605485738095674381727254863265722586665738382414849558831005720397304914384328968043389855692490095698030264754386200530384749918955664912705085421588520246989698140910267486760299087722815823657337324097647405352467384470152191814851459894692523005391323140229731753299123942223344788334134788834043910252746187916190956791590749027282401495219520109432729106558177537446529623354116928871344046735212307220134317463643132963848551424865207012906833958036751363226520769801963549812843164262230366970807649974602155782645847713062654579416338110632097890128810879536858904928491478162745256920333259196121301535502509655507899381252957111310799791946610004068099063771698396818610293330913765339694396832030075322125869324864083798981667633978264704457614711959743065382618695724299177539339027655787745501925109901071247859976894966135111391306067405217216061566840116348257286151084355287196616352613337050770435936807684939317664364206074560118570189735329560340763229959127069948060175323211472583630691232107951678222538035865728274539475075983164828788824216829549980221364835292754275202605853755169020378097354091095395229681845210569509731790078890967600224099649889144791294542071945543791923907048559706618107519162204959072584107668170888674905152180989304045006418284441127027419078950316924222855706803150514116002842739160911734353103003927322555659861153603444270694472606131300732011180823889471553656678739046780966442413825632836418244510436157902375540910001670613732645774777680231508102320137049509302581085540649015847092597062195408411993475191888535828975035434644385649721381993521735785510364546357648606150790517967645188100417504287389931265341404171760415007105363391530394334773465095638813242454942292002921332904213091815857610621577118865600306198147756464534458273508325772427728900989969082302687681368509081539187861656641282615082886792694741944516290002105403326498398682475072211333960387132784813306265909620060084676938835771002392132805078001492320163002045161969935024520647320000888748886438425660138298200253201481686866476674686782904979930547359959460102902091917240351828908458317987955727742279307578479449063739043168264921561002928555318815104331924412321130682959422053936268405894124558443980765066328223577202976433987147499798030628243426641020200315218415150881429179268260994817343508393034765958148312783879345220116180273802764795147360286104931353882032381111417255865885372553628483317290485927608844157106558957897652245966441768687121183441567850975181086500879678055753184822863832128736920951127661945440939809770435531025839399867091422798377141973586674794648979191214233618484515874463697100804178709341374436582238793094860884651314762692146413163049468400150041827608984125649664520753959148712831485613182542817524473373416567474657383175477626745101095406655567732026631902288736068232543803467758119632289864481097744346865866821048921270287299239012757847768392785055798464216785660298140615118417051026607501167046314029795674669638950176448012489931585894836833757271048014194622917132846509784690150188025844035793534787328421015214949239902670819853162615289056474076187563092944146411720138025310578595684902737566144733775219110339722381953331429865629045460195312486386162173789223070295420385470434095906864610132858225687430515227953104317310568890700292752801663961820355612302164523496733573537759628296389591064687618857266168798297691941499246400137194851935200743847079384033928574310941570765905361938520967358600261735046017112567621344258211158540878104066502768259268686118104607848870672755107580868135676930766542844887702807109029524030564504250700394328205313268234547980929909534608145040164627142204760467674127360930945921877173122554966667336872581861237485149537048920114037011559049151820471395635379845402479690774364800460560740179445824418054372100305608322522072646029436503387008878104204220195962658911096715443756814058356951584209256668254375442325871179718405122952436838104769626600100305428086430504632386086647564356778869391911890618251812889838303957491344486420029395246193958471153421336614679327269996735737780728191621211756223061059309200647251861973065327739433420371814147589662377435217188510061324637343683751772922102072513784241800114658528336208741279458060231881783979296389684951781743204806555365548814042050202963117002729466384059822540774904195616980774797243118115809161189666071208704752727917995141334818236635242368214269481897700053472160080073385374229191195936751541524418344557556710930940558447513995410799744480363614433542052232894838003473892492040717233709794900125521857506826340446885420727008394733480272398314982689321894385034330752179207676031250414902275215806959892162573162978091695273667923385952548573961562561218670544190355439114851489845321693248354434479602311035863793302232077472671018274759760407945125924171557287413630211562920733077050187507180511385903094773181189287529582943536656777641305096898805093377426196850615572758041551882805012747546227011040100108198908548104574891932043696705604463653048967330054120717397033506694237200223637611304913733017575592971641360378104325066301057602931563934066515756353082301787578643207477510799473479202005489711498280163334142241265860214233986356951608638052826795528555635118487507546057171189126103498375255904005571692511525740147611438130695071302073928552590122162496956608121353444689317990430348206644498179736443579423497465849594472137036772850400024079725295551845079312987323219612890892204936630938410499160989793582913250793023162519328069289306079644132207252921933640518458594361938480893523826575050965619186951733388260414699278028170809388329636367027869864861877856946852073396239821645339249326663309777531686378157079889384635116951742730945165396082553879044564883241916537535535758075780853216040446072401332102697301457961706276297347745548786603327877100180761354232756312048322650623150275023731575347506440037318145540503985297121044983441895704297818362610550667622442205211165676020313078809663202157817167051835666684743959818281278493577464092088405664093498176865944215462563407633778542678641601884492214812402013935350987478044007936006555185989295389685165573154751586837065230544412168190076117276606148027606679204434932863679611129429140362730196009164166224686709669337758253729777471538739161968403221291019081705546414276043379799573965118635962843898695194267402086971773289490796597443706873334038450811700418498147643048296477765464123434297074624428584316278043239610958260881844199289162897367262916403075705305960001348156147615700442888165284212235269871629549006209933015991723399665480662644254898291916810680085247810030268184641415816165267345779364120688787922947508389141762826108369392932582275549468068613559596126819244813341793681785847956501767795811192057020179426712727397924354918766997385628745689527454484957332459433104848158632478173805414860021523081324009208643017048910633503501646296756237139918310107836293168306542437615475743092351969207597067288471885632763007381331261031441876675986709529028519857063801276182491666127027993108704886018113653168928190671439756614330064210726762223082167428555744849946408782229200184225008748458847567497821868782956201784606539128258995329453567646522199467990031414983580710600351700006298620258798283721799599412550088022546727090598975982295707422039718869139903267908119999786255295360020803096735637329599303942588379032584893663443219373703296761447079347105461847543045338923916089968036539553362038832570439646666060154985086089928574008109079431703886441814173590064370170817347991786226688004769098862355507236798352381300348886123647175134481035731635746472629476683188972227654251948587886971682059971962958198572814615771908818400968995560742268279127821591540559192122319678009842292355400063974777971648978000508709280691424057591831503136650094930539414468003136385361165274683861398976187723861948932431408074282324703844680828983709164516638366093029774084840966586520001319875430298304662581311647496528267933621307993566812664934916585227967293279467153899707851623462919094295959905993627432383697626641009468734788549579223036426317988299284551291200606417407588139576445387107418234249839559361056135226101063863845272591918905104972584725765218746595110756239491979222013641888295453453094248138682231305805655913038969020797600797755146818324113860306168097772788685581690253228360968931827176678447452884650775252712842352698102512697163666230869679923503067412365314702149187049255154399826388254208580416341845791457735608286015339908117390038138478218243606072669924199410912898085814391522264770315359135920546365531066962183493402879244282923387050426970766974863015508396536114029488475724265214507395011955498343836240343807563880129287703316964530642908114286783287089650867504452409052114259416846926931481854050985714206584305236786183770380356497791288539448989496369679685170226684568082897622620331882934579504955659302344892107423127642647650071040253285943524719279138027165338490531019952151979615246785093960715421514860920078157248042441420660243528242251804916182048287741762149277537192343600626234844213697800883322065043015560328481807723027956758859870219441046039694641509827524262744370347525916792808126156402177567395833740208034670335663475022714852439682641206329780273567810669923459722567590727009714985448944023927924669409860814174615186926307301438336573986337824001368959066777326496375251206055265375217549710804292425843297256949210877797940280074322970339579871271149538729429527134585758484298792707607340853941788409922907811634248239086157145396337414898181956493759826166327826695678655794729815721845654391521388262114455995105379362388088281999056630383781447368000373005786093764117278522672732152856701452800895380174510543686548163376752389921505760991911782251284159858387643198092809826732837485355436181795691533993686955051362178290079376272883724281372802744752702002595680045327870701179484942543728682993463646839979174580007524804362621940477094922166963779135000866348559416783583716558187768764937977473598567394215677760821750949691352302805897588570020555443669869370322862150671531600256558836736129387924809945402022916907898794676397172039609270943602111155668843268868733929241894507037398973299215306856598505207426583561939841656659963219141265226321353181426713259851368823713897441760032100596379163186165519515932042419377998955919617658044301814889505549211638064786245664287776302757757668038212628880145095854283501300243462779194540481885494401259789212186956600785234792862133444370870851540646776687536814868047899742272259948943793980652929137733191605273325619495857346786752329936914155790842982499476112200687450411972293782176822036396514473009527192572058769647418030281997409273065954674928956509789627511515354836355573661599806488663828703314302508528066941797512297387124871404738154570999838103205041348785601074483385853614701269899294683313049106223218116119865427230244620173213730898354505921285905927827614438532395494125983036797877391190404334012554163449271714981600615627582279789757200772235081981462061543942961956902782199570168817762229614900105250553909890528633659593258275833304513864587253881713981874352233126825557813300352746667642054044112363178608698175054302278973825438679860681425933698603773623447802371140792047418295640471656089053484747982533924142053315772965007974765190142832216503096518574992256905649421575726932429658033911309413546571893033435723548744721976850147869067875593298648131919325454416526613378276125677965105869055223790512395166195656482555921408381700890579702688426810797442768981354720057310356098726527405599406995161963104545188882856168756054041593379187982785988043724819430636463251203609198393114733364354440151490129995191057450285356863274881844351434075811888508424418322326286084509491330075654641966573368104857953727045240811665813786994412359305822007975765556616379199233793845918149286749496014805084073561312566199136035565600072850836504681906473602774824528142715766226343037347735326459600163101241221088044906451725530535869431164802736540936253647259664056762557005827290132364360270891798425578698463516394073900146334334020084526007348003411963786306169268674978865068801839238587596975895009489338338803940343018750915834902042474894948791756815719441875792498126527940895776262780847048320901126988525460003251746925245055565716335026929554235231438172606707747287464568793946385027152941620846010956194448274292186854494375826890610449618857652976693740719210397760929704698979963547207734758866692376965543505446777479870595430950281310747703338488094565684488202090039489034312589525026286998409034915543389392603611338104770336757891359189368025022417934599893697302485847248289081565318723927041607173984110365531134308609712137308309642051584404010335339381441127683246777523174567220412273473304073494777997437710065443678353400634881403617805634963728488904469016856346375481287356507496186123885589166948739868329453739877010781403223191988349942006325684290133278570974436727055101684760654143213021782194217558540978752272968264703271674632796016382367240945138288939425709816535322879377249012176792972956239971779362349210218028178172046521374306133595619594412552127402469600877172117204661912710263940199868275323992119412153785393042246617251075107260482560011355590632554837426406364198220554113670730739870017072069640337927359393730684271334571816356313065814258995025966853826338981727916831828988119611616449133643825913142563793614955727998342052043031562174494402280569729544000355460977546893336970087816921248507908923384198259245717965607559420315966132394067419995748311031587873979776076895621205779137543005991613966659356534726431777357812375878053508625040158723252632352196700601854593809706018701353804576600312888652463908935699380733242426217899571315548341250752498261118596431208756380732815698764251693267821380542132866863416898229880872830580078874707499941467980184996113216250991057698484833594196520841059548580728273276584778361583686541791478542691437891460462288964937697589133794044376693537939777773138293019931197830476367511076430595162804536942737514491809757935207735956531187877197894350315594435591484890461680884315797983582733019419574518191095126083993611400934641409152907652545388134878392627025032058254380134174348016123977214976233397366009674079919627412959249141995289024979539624171392383924122409533432768625368721888949928262256609964280777479511636906919680656665081272148920607386932148079683327648684005580934066959319511156232937541725563847180064261827135024361785692467905926706167430931884616317885940163008232492202118000557377615859670850999193788724154566887790767396209900644714711076745333871518844431686975707799319229176099878180052526843817124914128167489839932679813442877058134400089743894104005815374405225749573524085279031820620437132062028403068181006768706690055967904175853913903435989088297514476376059127236497599614437409838537547732041520390014847981897314554315938928603317947038469509284197009181603087426262200047756909890195188188928504868260813611046684552998133739450932537370302116835869556195673402575286777511475637486101717558232994480763171554474541546553418626090923907585978673009364288167094687582931518802460125254546284916740770159689652035950338564712096224625469542234719585810861802679842203121760097569403175814709070502674489088912151472461776291421235872556930463447238289116228843524965864931038297424620485156351363970623907406411629328199834876725877597704405472289171759900464145160314320815873723665871971328337110333345186669797678558056395425099209847742695130620788950613429706679378158000702221963422274825733097931502950705866325661398901204491610905415086492975782767183434724576154890933512253727670096348214316806292844004620794393756445329876458784711985618597922776191086413012853866851778011118602619635586326327408816706184670153553656533890648434338144389734400346932268190568032801202910863697177729311959465076532528084852774719484415527893366796604663686359580195911366052824521760249404373867518428707471960055862035658223651771060492657492241051352662435731655479715292978874641735569772179975695208588837338143584994087856468430294015038706308850253107033317780390399256022352538021394506687512397829341271870236747468591752781942876298580302460675914922722266428730398933086836942587909603214765122142188754375430837215836525625421802489803909489671504176401624230869910466191662674583559956138541140875852650686410861152294823752909636936402992673882551197191597078367034445542997962795431954785229697479621879206223427830949784593317828513793949297268820447713298744771396301665801823124038041230385680468876058741798549026028048668627404952278548235103157481585530915395441666726575414976940804238086963046976624891293790426655131373323899657121885366231798481097321731773166803351376747608182262721133208930871579653504322229655337087574970708239251507769042050897409135085868867480577089262113239037232205636825484700720149374087338972803811148810411936865133984364395781209096742022281458906793833370808880533990048065601874900868381455781931563325697016080631832095837626497855861464741782282550026658338623350565254119504407334194873393129395349414128700494792439286131293549791091868471539633416784021294264910491078108907814770598320747061969204107387745741220925839629743829283800958647735250192187118320987358338128193359253003254595944889399706791202482377593049245239038311720436943627903720099730640542428110629679561219781627147767575702368297311127122424524332699328201364522099969886268327631788326971685936155192874592895343029496644737967721969632327433642838133788964419364235548242124395006908062259394146683984284248144541812868532086511390876850875318875192545317194909591043155176630866637823617710055673248030297341419502421812124305498223607451763442714345225807279554246973854594521914953520158906253675442174809866432774716724637412813873759264231378191502211918506286884219600078949195926485255214124762046670041861783739305040286636414207651522463557029804742666290077730659582210033452415455237387164899229714409788933513062205796564182880200054001301850591470627188318835903897401989689247010522181533373385425978490097805222619512186227975027341519761767981183136267129947174659735203173420509775321873505378148801122036103003001502647077711308632631329311766896374308977951098959530690760762965620749142887756376978114576753528811938672111350213899408383058046203714006645107499349050860190703971362163425379075745832741002403851142356095604577155299774615535655650563744795611429766319767556278074800571075527984895891428553236219533673686492155735757091290703872388164202937111878988654782252770494199913281110480071779256650964925178824754230572681050023968120486857659280671171527990845708397291668240368847306418856029881753915680496230714357774566361670726404791505530916437418423089838924037031200996981040996430435575398812784125445460203098035869578507824400906238107554896201032337759157566245597736381273159077557903166281138228246256497072456220284620389152539098721998420944506255847895495161745059853111788833459599841487617355580221571166640307826866432151985391045467758399370612471879615772113833460408142077939829681642846867582751941174843297079553193146530911101292262384697812568636176494764903075750691072112387156193841767725062516956309028347047243492086374357445069655791514754177838425494929729173893985707631588275258848191899196183589347170652564171329538526348952951408804080683436030815553943124630061531610148122674774568888462135150813316972634880879228331532888600121755054903027278649016536618646822697930528284435649300463594092212647979053537374903512227113974265718690450087439781697040833681742659376799604743796508603692797589432199457081597564008302808162296683518408798091801318646078629852230538447889650717406201933678805385235050316886576847994566683629796025360224052085023949474144743970525942693350628923222199631204375854275314078375455069761039871976134468245520524904576879237329389278051043621829966999554017590265138273931149815694015497880759873211686843992634665592294675847566421440980772734939390876065641371128371078543999924465383855114713869232093986266549519975136464340805975436492369212613637452206064465503766701459306628074384159007890676263520670935072530453171070730039746977229424424921364118315344932171901027284206800662634041559618460539465460282561252116822869072452999794980179244196722176159950524934527654906209900521070699971467859200094473427719839327176609898257132000321705925755471990048383720166503634345212440215487972082210488803228576729892325461702651210569280364217070615807542006996113147971349266489727523004719597786300331527615057691785846143353317066809553671463368008516388633008011927827507856885780010009495899562143422716672104712516973502050757215736680478139869792272443392964118599348792336923681863760411001337691053800307419710658984219832871744433749903578524253564407609665670915749127494505707275912295727857222076292979780682558890328147527955102362476336138154254495708599681055971332690932968460964392169557658862964747306167529776132422230276825385644815927670918673506384053697801449907953876179403171824605157508709965925262586453831433811029427992854794378425700637774987337764595044354431751348016578916742126667562427588550645634241422525519709342049795333559706237280781024517147759913209752756492353629495777172900124281642234193151334628748616145185010183712364021441063313721169626131027335173666866618664400063603522700056386454873630903403477405916678153784771773161735118465565744829542129886648040336461775732838499247028076531019181794389723152918141057581117565470220944196762808637885118532080369247399541572531055430784435503985055303894247624531751132180626414842369877749816817743117825513859265094486738378626557205182427473057055808883911311329341790551390416550852974408799518851850301782956122283475272816821504489494793860653268706979591695499628601219364395580742201327255700061623823944574915497183849500820846705832906102548883106759861925951655781911571576177853626642870712565083294723148909679180930806325003174359254008063694518008140919569289825858892310501985370715528608128458734015682915212094332461806963933367451046800115814350882945707417544047700988142453593962593251709477005423901153953470797368601940735091002093718027216519523635253734259197289269005117949995761085737743870922264073999542547257260918802824120811921061580107050354987084076939234333943156538174963464909533844493604423190105327719676265615493219427466127892643967254058340221554094458271904085391132987857187172979016438936059191299925548332823334351258478443466341882883945919019426714813745137733609505599165187617676121900353211008931554889497858123765407442306759479882686750339099238870630145120982647868301896871785672335560929123324737214007625311062478347851910228983794259456205227950866507119447473405926078769180517111834239841515965557847885740396845666584429627275719564636636351698251658136398792826776957651313354196734751653458348901404766160031640237043886074298052397277029069873734231043435398264544171950489204141262925311763956015027343032527766441267490038904515731923673283549473612927514895785967542457260109367084934715176988090937670169088366766079939093989022183176425882918172966398376494856708850778433662824246343473679533584863876225093143581091379551512615328622271153893950376302239453849302410595749194705597847039645477882472800020986752547168140288284909988518938033160091931418915486368192838812946922759146745171289897737887129919363646580475264733751925795853571767547157295461436919878426422546877423174082747604876456806307505797818593139842361132738943533981849897643792673147433809898995277627851534190717493354885945460152835175569445252472154221102555708345474484111016751649547549859808798676615738070396448380530750086799124148375911465127195224214749013408664772928954678044950599669506756664663496990526708170572013820074710769946948199682220427399088066885852927133508029835952957585400220545494749342969312013058134841959407705589861730406649099512608975236295439993758015403869266876244772428287190008695880356222922480516103765634773797770313775432415511249753933373170895817237503857920364951227842781204765124058382864522201452489798973093833017063522731660913165539471797246572724664386872350617074348029204682174696273561069883481928059463423670799193752355868005946403144672346366981667024797843928646539987765939860064025435793095606106871533059490312528790731805913796672051344159606327429591245855203300155935546038864706064251093219979266517945446694687622015552473223151142430960455342316353464660370160996417863246235333529900109316733647442832532876506102865076270662990688793263776033037543795960132185329070129607180335824417935324484945031069830452610972265769765575636473899899875519517825762730128334351997624181131861887504518842346851672413821558434388915093374588884271304021146573226200391393624670946656626017102821002468950704349266366521267929478967199900855105398572799435991390619594508230295462483983809693533390059590322376085612786948734837714340097017956480568221295520459199232769249460712640107638454631904837779474403917959714057813035967785948666133821445164101111617998696100973462721214095874459780555436069297490965408842003042007962899878026409271698518882492784337627487693621329579735039811213178416025206231138465472352089922282340088949653067370020631519474707937859482083267360525422894938500373862902989812242510062684539054777913640383060863626775780502988352884938977170435515779575116291531220492495115502504166181285999022996841213308106752792902203764249688108101622467840545568993399018738458420624658664280729065164229798310337344514579575482545889836977870332968527128416987381353025769524344669729160990432387459827589346756593121135281621168367152010805163245496200342206986949990921313940848819374599671484612946313655340793904824370657139049197551005498920406801960549778293437227800822993852151043632277692901868044317314740610495965511532686883682421329491477708054371947709470504415378865958163717047174935938855017580295174693921888815482851403512258979034854448388624269573088644371899985143855188124314631608735639798858374971685202062174205877007911475339036913155633588480658738682932983971326946371563361756882173814665106654123484123806200932875701203277485259055428160748352711967698831360449514776973998422124817020498614425744540132492301214007992660249485408061288788762768219023928958825900444375434824251325599664322308065427553626002418133734892604366758833391447398929022625097676415811389074466436615363993265055714800713608563352039999408666255158521317162002725100315753831793173655808343703587995785047904530716599185437767656178673179921885835944805556188295354960585459149669411700419826385147896169640284183390037558074970720345241838634411933226150734847427706625097016549205453471246582423257343165088123704766598876138280240573988121549799509160583315583425095276973664247669442929682157144328779832876876375686629036840269769668082664084585111801298488751981213741498118652748825606797083758271516992445387589726615984402861920202047812639531502257663059388308608292269230162055589075372172219938033638497922468402180396775519245329179312170290271649077302141354925136956839499888738859303312558625401228717377580235759493554376217107702081548034638755555076716459506201627055889184620229198784366567554400276084855054946895150028886404473278101456745727938424728893754575811697663276601785357249150983674304081621467311388922643453414086082416286641214400509181232750677372428359963278500748968294219269556033516907103317543890725611461809946687269634511531835103956609416674236978160081041158369526574754985911690492572786473570873331913002306158743602552077791022356706199726741326750903754521859209633387832690821987626170845490460127804456271730642418795043994508336800418414473185284651487063492919625163859158599569418527810389602532108907584077644414578119644539741303587928582164898541692594939417531566176646327973739482662342174019626863854453733292358648258264084329631354978024681280004808133183031067111121064423293358402435171226502379307386489781913490397891125532772494533378174461752510398654311633296674072979066362716092045950937514451781942771172847940485695216437343033775247794416751171392609111295421291331962055485806067292195984321973686625649142306643950347693681035056736088384467872289758920050283508930482492805129440778954818626249577213638770756575961628232874794027861660563118066765790429490411986301868024860777886557083791423174165448456290442221742975614638258542423438836815487771751435355600895553210376861431574320669550022377600584296402919987558130586149925134286842735735848638953943061079852324336394855061023094427815685774866276159155219085243983675750776688950158406723109942207514276766384530433268450364237938916726380533129265283392327562505968501272747962485691636653145428912293416501177246351186610473981610459063646048725113193979508135772289599089336384826471545484160949583909023065360782479733009243087603850994107482922806422007893859776339680949945340143461656606879701118361500080254050265356515189877412785456802338616206619512132041597525845674496187749039962141408901634785041602829171921171886117311246982742830005095279840074320897196981721140411515141195034858553682507948170615790423813905650470570176877202523835965677474308844814363113588958055607120782849867824770671510211288578224304115146510696215991243292549806685758179364823770939592014224047541526859298791560101965600021145988998195105964767108720749335468814970626275942465605374137301326991887807757467314497054850872515989705117513659786708926042007497445573536513716167066976003278955762122104764999297457154288142737434283572060642385546440237284133812943244528242609895855052268993236497267018382290943185961055089112464445749274054322256372033154414795276866889132385354225386535574286809913767422801363130015105539073829078496936724996985491196713217994425101790024069970197020449111073739469169583758477758127448460589910770733361464349981006487891839327478421807345654521963929853841000602755258012537055506301076341979514415455570591846902318010434727009525647804590953162691837216619639659416318005257911917806588070927136315501185939379805680145174832324174639183112744782858457949887235478155375737877950576049033028730601659243184130479860453698179888040223573438138720164456612982863780530808744522459634765181514520187643110613148629043694829017404246323660813683657095435338883831383955353394661951342964876494952025040096846144743396735224003435568717675349165719275489528153485063652707263104241025234132152933802657884226818889295957890171225345308193907754879886065906051923153394582248268969576101034179797197537367002139650126854441081573950477687489205769238993690941637449228410989167786911652656880621695483197880977311831623729500192036699815882718818552503957798357610708431703872365322300472587241583845464345997384435130120424666716025998715916101870116097194127334681425901281653011747966981635201974043634458612469164228736019784689935344072712554854719669793331882439874122521721037214468251171923771931996754343490390542836341792965359884335685053383939232720116294328779487244236092291880715448369718384976510990850500639833879192669328208531839424188469693356952233023298762594181878176495196812241156379562035504361055976627521215272177876518902156166228471622993547583732266232094261717530220979694753685522823508018551362967571856166282687087471723064800659607882161943155538835227033878932818502431042586016791361568098664126584092804148867130906077479058189898615495545356808217297259335197868199608275430281528466446151639853464745761217333545393647630995130394949407594596719588101562549757144152999019061798425099585215034166285377593033297967535370842185671720255573905036081077039854069898779947231052034769688391721105311806508975050680389226922753946509212838977891750560980026042915186367415361080723856672031514215354154024617092289799779296151637617654699538146029991798260439679338589466728663483599544612262250457765377412531344110689975538994898572728098141369361185150081040082566939389371910950067248998171423167268430468899132204033482052151866913936957295455062325204815555444077980257305926132913846365474203925727087534412208874719701803025780678156227698485373755816214877421381914485091435132327620506550151452014120119164165108500179811673715209109319128743248686545897919998811422686021013149166429228435062045805628140722525426626151246890344046866738505922077353659043233274405913906558477120423955125443472753227319136707848341600641460475767244849489796790647103168353244905065802110803858348179805620178720343017099955566458181483686477876466859546507633066615584785313614690866754299772842694214170577602906461302265496053816022839160147482759597470666663057205185113326124617157602661367143545006216747281073251409198724010984360976740303761681805021620828813719104313423198124592638618872806881532060304414236372902696050067918308937372689645664077728282603358179517457390734205827643142343115151821229050099030178495436304006534265669871658630376630491555286658465920553082572329584808860320042927636778873076261213866119933629258474248906587617930646197479172172513946623654387118105459218361694841847530761195399892462208742700727123373008694744714124465721445822113894223683469669508587191605560889544096216240882564645467323082312739845296501662820730812994590922633099787667226839187365131887346341861321840602769431137858885635946809287322335627280981056919474206580100206413047403256039544802602007333854861700372776312358763369438689054418617837935232006364082168917401050626808233259124828228366087979551930246857463873130639149027370010295263823015323099598023552074095708129621072038531482395483612705258976601963116182932739271115818819306892514083662855638094387168971933891449871824546305847239361312343230361901078267106282809950344716511539638786944628692545503077608261791001080303293566548628596729158030210006607512511555243261260698931992209459830269443162665557950888747957883075959029987322758533947544790391467042954673844473697718727856041974744462911895588815889252868273670169039290506661915782826169492709706821086024161750197982964759803468912295898574697814459987455070189558718377911587095742129830730428229440785652204385740381010092383239425769139614211581355612091946687558014068253350331487729573674329130456310533679562871042145020691885367117750825285529541399267706916298779536537408481596942066166731179579339425434484298101653838779340338321730922503620235519572024617769205276220018018379344784235689894448267245168603490132079173887366279957704565656554911981242367205017930213926892646209517081493900556075870176533997552788463103397081432316065070414680231285249433735484799824114035320051953832243333802362092591721893637352587815979046595280322743425903617288677033693079318666427792954521203286078413428587143516511409298447014643833000386606315388381515145940863903546790031271428574784822475013697404520851817170674933516144935220095212028071576455608113848921936692381376251318133688578060232957735052181672024412982942083878017948356950556918174972531886704581646676757149714556613953604959067731375718726464598743187181192132458641143529081445596577727323015248741330019884428988915618437705294931971284400742572048346781901945767609599721529010428792728224880475817468581380761447421258631745425413323317434491660150210465232592962493176099246555741923842900127292896333660417762533682856433925157055769592583188719834727887748991452015301909498161833130776848760739731244264525304484725370377912599203497587350812414627203196705798028015654916631009002309832894510895102231447876205726808727080058921279017788571380411778296293772194977069820808723253304538910103002193775747077840849615375118739388779767687339442783376806638950172825161926802140660503721349953407770695457973189104653516077956020645797543634387437599835357470071611549083837235234042936618415016574430348354684630884388053366208979843255198747807620193438669138226198869111488873417240137918514269298309501719463509830670844588678214813726347838580112108678212182417057682811217802207136328876545297477310835788493237306140338678983921510541593410237451095709188198316223295804864458131653636296386517563544321846156158270925140380849477171176301176635449025703108499196422290418796495829443694029172060237701451375507470704429553574199060943926612389083778112609437307119572025098589672469963131737760215060497679424544343015140632303526296295676660155486004146054832430257445944600052239512313472334388719621980562998190201803617980417887689812035047329186830576185694687510734479901482184616685101843337669282737507114598168670245371126626937094927350765200203960606709699766636230611747883577132414614750045310926773194260493914252954665385735798296649182778594300095097159221208192907950771320378460830257813322906225919016477562213344929925137793272551038299504976848816933099803949195090160879607805523539517975605157709085630382074471457144996831079473856117408611452015038004030657158754987139765080304015205808799498769272466339913846922478319443683823214466847718696648477109085159988573172616708134153503025299097988950055813346648457789649314531064667307514215804861621386294504017160949792121706059417809505255509776210803253640731086829796806059804728115150193694335605919086253749997886017746839365870050029665521992938387310898243302679854341005607074092649070310667426365283259885503340114378152478821541271700394964251663940494492119497869273606831241084405867550495308704465453230404909794030119110097697972188031734042111138142978389775282014757504452910451663706148695907832009678141063354974386408009940254173076975863497106204891053932187147134827242829300912840314597333092267219836213528024482547325471699184793714639258414011875832565817156611451749179641706561944728404291997474459138531688536027887934596258525548102600506690917076506515040257286985657346982858716549263464603443170182025988946062314018381122295714511212027354512248799629821231267051248119643369195267974583997338122368775354887895055823135714648181536983191306552602983660868470232403898137754980465214898877721373636173761771542388001259407514826056392230567452456034958019504671613695448082049364752843513659863722710093662426101827520228350887613072064036014404816767442971067344702833545886722280929259261880586865687391486564809085986344035186650282591498396772652272757995390984032165397741977624118676041303421010469588425524651509683246687292173535027863109612082299087209473463143913698962011893861358097792583503895397030349894352844570236103802271428900174627189504276220106255115789167494371190678226255833422664172858878008791826340394486003120594272704171506220631333648865656493333666392789954126287028290446027306040081473965302754903893530844279465116621479156059984319010843796964748148962097309266497435194480514395530140128562155415106553680148142778677073883647565296666640708257900648373789330568749467029088889583278737133743237914738422979058909203881916571778554648139661104384820275695476546358168502351807094402450134033751693636766534129282479600373460276681311421612944628081228000195887442579934297172861595959704369508796375556690922871762363424816851279984293986616411110102468294174278885741025268003108000419232225339007033079215476716965960941062041914714859959164803047138760106534265528757281295446521244579431491423057643344328039365116587999742028245334674246004899336442858069887060244287690736378504882395473041835541778267047757072294362747669177992221870049935350138976673804570684462253080790229166321622635495437654741327593231675703592094945844159498148214190222306802104005523219257629483818959953872730956025011285817726113156448027256128201602249875139984473370770150537509627103025664834191117646396855416042735039896605145997717315765286077386934441572090539581128583353935119104944059488658765400828920643458659033522772886657106393788413013075689485082146613457277076349513083238069238934368526435602803852450934179051550363747266841970375243342422592108162123175500880073033745198256202388397604342361733172329846672287297638536566929353265878452040899270737115458164786643363918388370327273063609259529665646185671238264549032566705553670074026727974306203488118107108722106866847039079193532236126523902250067108836065220542151044460118168502536547192867674587596522016214004163904294393726910058446123731699469428761458798570520560332369520974423904524120685258613436397555643678393676857875708823160989957382705047458814337709217217793392733336936179089076359911459755728202212525957001422450859762429794558645725418516794220918462166881961742054373108540206576630582798174790033795911023215365948146500664598167155650512039440563509289305392647854033403968905223084705648850203014050863334350498701993764180728366537480726933446705239708850135154866712204550400627524202075445449917340606154021373898176872412946923043770429846451160852175224235821033518953719949882402897229581739357128962461150433762929892389737276406720144887739309792291987507264656468665993589713716977449160259488178758709722707635654801982610947663945022256996419892675095211177813817247573695991488894641740892059254847165775057029391246947041612437665169917956313827955826283182934520937357431737184776760786543261153814594760468220293081531735250721627365638679874324267728637405596679684677165036044134833921593619322640956071566671599147507460058452317889482024233747617765325163564019291899531397980601289660208153224895964063118721258866235556375398347504536796985974102391469965698368750573255577821496392496278460276682001956383028729981305799652508072676111344187437663882640589409658626112081163512979192653589774837298753361205675392519136228060629611852130737790315034347760909672495179591892526488988448696452804350826913988040971874158696749033759897416148039137925035312126369198145314224081412552278841656156018018306215066622666854777022310196501588269266941104397755812847535339471811283941747221770437862079908638611439659074943386081397566503376554708896610916070814811690469801983673544947032172206527451292683212933573849192891097126893225389664293641178224563085813329159395879788603519848085314264683519125430885921500105257585131170221606022789912544157837101559199730161794226169482703407015224143185965711615887056292632456736502719470556899294677608648727142749497870830160136009788554376805608024835235376107595451866727049623726689677721661532900025551807043056100724819730440812017582891550483948048174783590626103725519015205922245713709141142058480792893121573214490046188083451875861686542703500624772733796512846057315364343698490284479471720133908410353139574539159190631110817664975863470160041253669357388705183350831487424704419836630526515974918221473815703473230254425197732746447187447293838311335947109930732011740756026140756675692909559858786656168197104645334884896877032419426664287385706645866935309101316467194912088965860295024407302257446132522359120632303446810973463720074987780421048684564366885811557144042803988035548864014301117879306247838630967961514907183971196719472404201451062921377437885121606139062794409369652912012632011735452195916546713856194602728082021483696691225489710783460967706004381046985063059378225303954264196356386202273528398406246319729413605669371009367441661175033258697164323698059290742838578350167673800757000400568219227506503894328227495167226425519810870192028044931779718304159754271920545700093608190585769958042778144602199681521489647253029050670897082766036547963698036696682370460347496311766574461299686695982048328131885064727764575377710515299900867048426494420187239262674239528476453641087717937820382574664537794586583992670330462261993214489507575049475187635813491676658877973040686310802414699517954247663497819818765494810121500522121444427998846822519799065008405642943320876851723036664234626607520376715577244203835609699413329004033177815497080124647970319320496771736011615627725751591896868968980098471483540888611832788407083749796390024426699718149314790363447287640817879795808861731274958122654651543364266396186058302386058112540750257412384479805727371909612384317633550047358695394788012203483762979791298084053465612211769176014841546428133883192727210625553906171208727318947468099264373480350435283796656444701877275501892200561481285954342104490652419679132283896977310042957132550001836204760499354153063498804806175749755018471263513933323664384130057193149937192079636971624557435242943980530319219924435604416219578795300974001010927012910514524097176373056055894183032526620762357686057149590273354694912744968340763247486290129764057181254920647926921355547666832033301796941943548382733387608665227126945215206689711485193816781100992064238279508067527975981072213953385856180460976961941290175036828252396332067338079802499408020073162333761234125058753364248112525017093952086798294183553676995768650506890509673720717181940476186961638877568007848213736289302050202786278146891421403012670477509589593144323944843860468933304466522770566546722272705422918291023263149749955037440034022830901729658072936682540935743045047194237661731351835822007996237181678105429462176010634177354233213198661573220329081780594099682383581325686115035636247343794019815266211987449808567390592066212895290989873450106758883210207224640705192380869471503446774614745907417077530571296870620224222596203900869184955357936006571103824830963761705028749145396959737734509251862008144778427677459243182520402523546330998979800176584994416562831696788613902529868430944516235804589443009971842045546576791262111847664693198177426481048467498605170663245629899083548389822026437750496107035823570114815661277719947871968200112211585622785557350319335520457262240416542559635927267599990691013107623692989585439280923111947827006032802215083807828407304174020864344927098070401635591142626929477334673178962933687991546548294279900493733670971281661762467143758913038136135471118750527134185481692777155767522886025503802320357993027037117521678870337140859859679058068063118152163463581111524215915415390328027871855353617841727263458593783497598325190867989556331384385396490722962865430243436967023649775403944219299910773251145097237350064904336253680370980042772792069993322510992709245840010378625282036726178158867584481286433765734747644891154973115322737909651780511472566820753079497751974309266432749517975863403842931475989175855428480596417891481107779424967496970988792508108572043476888804778603283042122980279130957021854896840485165211358659433064967374610038693867757919738222388161166514173106098767608548166690046419023989316745358193201012942480491796515454132449915455942341306442344005752691746689534265818889707201378247440197262567564438545986243300420530594011685001736285371861087191610777412115673620240152436242251386927317501219565936843023812526627483267331039142016486915415566874335466394197124704731929003404684049289402262599296560062099647774849007349854852385680390274334907072192018785718688599076612152337358510413651913734152973666147283788014301595708450973592172438911015060357772227287849151577289347389380909281367993205186894152394922533051176061075050207018866100023416416947905396281840419570643262113780409639155801767359693017375022389333242355774810487070224160939890342235685422955619745710136134776248284495224468417196802129781505945307732203404294018822560701811951373106979816625594145448399015824926064860681471619625921878564660530132582612952739436546612696416747164844515381391452687601056655493019824461227444808817923009118167677795801755286192412770635858504490535593331986181069323821979728098611771838506937954474681188134964415926525268238303846817387093974333528942273919317915285033780874533725264379798690820366195533010435795601381287011133122940040614096145015232106381040005592109291794792524781736558475612113585534418384116206428373853521887802584071987927940479780059734821976254107525903123424612618391775395778945774137518788981060162670664005792135761821507997152103493556985188748556040263971420832173600622079497082854587088347220250328053055303216471193294562341997117574614639402526417892277778481055506690102104185192204807473405668562151720722914348368187953632622787863067683813368016648757298789023807851531203916221704142682176961541826951022162297198841022496876509438766364496954750429019076366447410977221413129459856056470129181129802053213612015789836283032887804921135964459905138977575069234576671671788125095027826616335866519805061227760595472344697346205669842958574601128483074956297341171776240738194283177614612816923105060336341067346809103045514005456015368765383008289965536567482796443649077608083292296985820510567836507063044305376086567230042178457244924619137048224116237837764643967905007848347350342276248971607289457178574930786313653445529556687351631521719914797046331763831325527964250290452181550124240076817716599575684603285159125257250131508483273047438378916966280659443858225323583180783965845394065577537750421714470527064713897500110084424199240437916142686474107030282928938054659446879973822083524040757790589962762627747361718138644192046962131443722497564774483781043840184910491870114490325759265194731014370176605004947450502478039543397636054067427529873644950745582271361039177357189699748767253323673778592325572191250287439671769891016334063446333629225075635269357252317845227097847478655353950570378240141442909817940094745702296335426248121976735810630851124231862033171891008686643078824958806686010216833430372587165239712509128959785608559430148832308243059858487850562542161088102394411688122163711082043922273093790136534886372600803661221496848597782828004730033724235298279591655246374240480344914435867156437714559021304952159972503105677570585948822603846780635643661760860911129368913688592114845694102938665645056798018118975325192486969971411322354036754941729889395255611003085277309840172104558074543833642423375897244469489498376165793461560710514487790415501680085539945260759395263226082398521114635793407449267085151734810156470297023322970046079340480447113209400813867493332934860445229354571185073845453226987039220259427682850354720394378996858574985251951198114385147396890084931814884972664161856039781769734191847525508299740896305527112049997754996475952193599967940713764532944186702830681853896755505265735498069128165662630873360281844686452524356848612872589633840104263067356780876668908124510810147908794438791200884556627762073712982039735218285714927955047809280768336876518879526889640705777277617262272487533118028326450468774095675159862680076156650107289489486130057954708937601430495139378821277154300721688250751694351539142016055086594508033297305805877234607225029307608158090125332048435404520562667086556976130692345115893861346410940798695197928648056358148635729705953450093696311954166856290248819426913478067183820244197328583697100091231384772051951306984461215274098283351978468813505745052888586516614085938640501132537634195438970684323488783593875793923894417887422731268717951595310712828018129232222862805235748887099397442119709003336025924210616313043438479169673278911048629279467900121009419700204260217918108185373630049732133895715194787877088101163575873217941646001926362135277036762854846427139123938050379864409004544676658549853831233726256496862622448995839011465888488078966950708920862429349669290956183793114512161339523644816200153224221802336719697691794869060250416274611302996485166329236475402786611900711949097334271699654192128175835116772999843528968002344664959985809579162491859347430661176481341099969019227055613325216268877966659010279744862322662007079498915811455111478735753960149817682312875787400387087969676322990687823634136211754929247664893044829521033772150316318081060562388456605417302799161734855804644589149525581684601796713221638525634688378973696241370128328176201294301412911840697365290800019012023172448663120539304481221228672260426655434554464211931403810751120223024779845095267990589300607120375836923117439768815871288271213908760001444827820798604904375380840338180377846017890074956564460123090739978397998155038436469979580917175832365311498777237535144306642615202870537289570813342827703150689975293337819324867429871326462712254811061592977167270101686078869147296654283085332696078429888852125465375216508217750106726691122606214702902925143708801168947984904011425129982139857144192463556946390941996610154628826981004261898255554541149695916553137271342748495181747447894944871981827871977373803067386894585653886750099780296806824230332050476489871635444256947057979064889954642460125457263784346496080903359233938379065191187784394244265089195488705188980119017920940095124350543048139827263847531283832639942479165648888889422226192164893276015705069262834250696425513661449866411176968085055180959222136113377065266804859774728137551248269284241165526792695082623758915177827704326833284090720205013377396053292893603897502769592651679549346123667910551324155194602041564111048274114419661366635764405060484356528371142525391312323576721812600950509023783086686115503466686707675148014008107772766578178423017720217330888026330627460981826616574340892293900261482169814928429532490916084431104113189330920089490288330862948093629982806180341414268367047354243240225145783135012958605034850174488035519295190792188907680019836212936863953329629009576953815863112956829196981362810983817247389261909437439217101681546733632119121424820748425969689623802398712015302493204015673768675312824579395660897984472164789833321322194440983423332621363357186173791273598915499676941168125357485162048012947101095142469098358185814765695652473532629105514054904018188626342725381280185767682591273572623184505484712212294617233496565016509439561593681813998794596423468989997156098424832411686988813526194121560370285726272358538746926944918731978275326889332441979586409204437112469559677861170974162826148109481215238764846007749273600267940611754643104958669383692719934755079677106790098493495236698144671526145329463377096279981982077606065138724159157073262532539494463588751874785721279721008732125588986171362656079743048914247452087958294256677398162287526316277350360438085947915169609187869335300401266305346457943781635813641016719360003624596415990929055211147904126244363165248533498982788928664052911700008977268416963848263740521715614856328965502439025701812011187211727836619602784773296142551994922465733533257691405616044009926001154135462046436771681893788198241006832464096475122668989513411206700568013664192400298295853527145719779060187084484494743116472324371444031600629196573909706380530320112170088592156610456952247741347468087895112081424475029305726503450521997731010420270536645674949526987667104380413265980585224626429579872357910362325141760530118447698913736621581069176206026163582866218833644226135245347802697952258622381190165387257050417762284228499011792592547739764439327788423459059292737225109080019941137844848002649145934373372289738417567248134699609542418796146544319103312247084251433298532963709105043599350065497563195384694471827989842960813910520532962034643875284708017723580353378135774653571440238776708331335354577294767337656697846509369971448675170817455751724851685665091822640940301276449138178955874417595983756934965577243570573972951271496116635224513044083098336397563674456875819988356129255133523448078155288398087723788845988931315861430961613174787274823553537763563907207992035551947230150254707533501873851505989405412981000069245909472493540796845893257309185669829637461656380998731779939500829425865912186569504919112649433773855659377764815334679989452155977008836876539690193397167363186599668466078500265068041211930882856818945850155500161484005559148680925002717028071584104797052025694270083711745768426895494547769734195776283437892544768505654606509735036059154045202599459034548589273241226288703349601066800705621403907769324164473286436172567317271380706681838232235303903268466244818492840623382751163745924957350648833779653060908963515218967991011066770347062268446096253874376674958682321255767250469777198618200568706720552950108129353361155621118206843410866965632594986193344103280474646103488081330686825984161642273790954517058374172028150571148425216716037594094933294034764656794643159942760049281637629265311260616067084733088106331032326462958779446743143004479130506704651637315326521600082764690917442351746839499370082741285281102668032884902434565278452452629454938655988003491261282500418661225945188991306082353978519860690006364778124889328564048098608480405513131582480850142092376573692473059924119183507585287000723740989436298564415355345384841179712437319111357282130275229823023535029228178168339957867299843111930614671670423224092984067093715937931208843224172890982629008300662616541166547841441585529477886411726258939243860656570451990462457332820172650993092029465719050551380954506882960360887010565941820318132504527972457442439657080626848763426020440379383315147700689835951377506505558339051258734921103634031877638125216670388526552144491572092397892198462870763826603030290445947866106199772485319304940379013481734569327923968552002080017408958907455432013134513673219609661718118695802343812937683204882408778933064410213314918054382089840892711057186189300961119996354414995638470168037059830547174104842733328289797773768518752947102411011527717650359072421370968108015693375637783063776871899332324562602853345110934638719097057383251333246469168028266238991734299423976165950149394793265377128790635167552327633780891774551476785319244476014058397028574975195574267775296642942219385680722837562870516571601200529595969506128945432439229757987446537431285738585173304235228380791724208396231373331887552716727272631679961136811200761924437288068115439798118241196892760464263035257453676639593040914621200728708325313274940290634903162303740676216777847105632535416462971262633514775675587835282064534541379532005487412148649458406430932119255319786758671756499530313149740958923719624042078232376424066727498651560389374727162847296053082126164234774176917274080601866058627807216617733400748882234390831559386549143567597529396854383035437641649425052607331277075809654095056314281947901717784376164410497980916364874137482151180915634610237769790186833017449936572777778565264816768547971542079314669492057544504572339928965800960403399826992176306850359135849759693493136203539787760263669843268174149660840796753546340866605462367156341658423862688405466111769396891364062596320375437422073749045377105994964260405557638426307247935403198449037178433489354645980517826560224718243438237183927734521344836661924923243940580083970872658677530790317710958263596892780628099431731974148572871966834314105680231290312476214166492004287020422436831726937616311139318009398290963637555364653638916509226791852046060764313851672793705358088338236381423499561676582263896551817988294239606944195371642959543180677072237147134856915226469842592866374635988553336305783476341650961392736499414797019529901302836675973277625488406066466735928844087693469802247710083316155113928681586417104267536011087737974189833900140500269440279023429228452251094906823168000555913961623401631915190944797106964381579151189027137914527684302866921237229053586750412831000464702601047475467049022816222118258775045336208605447783623520693111335003343101583805603416207202204070980419542022895937405174753596777041712059675676592649443039130718005885439715024785254897944986067666178668193862227084134644088923953193786525870034530427949384577168512377818981190703614586677399292846197678040656889086049117200911822341533720256630720570792999537277918155897997854251904665024367807657394810090070441750951285794022206092577383236523000978092394359379315174580776481673715710572305793009250905506026921102758432675199718071170087810708928355401605215788219848809543273004274287180406547486892264367994140464620441959402095366689268181540333622330683773847504416712432423880938764398457554910551327362160540439776351872619557403227206898102485759513552758487495051457024202306548632966129036629623454647107145146545504531367606158322255665414732772758735587424578198675678171938310199761599907630371223008276761392006519887849792964134058452433723451374535890789394798089478176941359384690492180480963701623557983045567246379761937273520529689375697845338775375006803234704999835804191127894471392083373428572323102444023031151044879438898797671012962747595115832682883603422071119853363349061646560385319159153097966029534302161546600411675130872079366684518076834418305717047370193160384490337395145993558943188131201538403169307093346144876466416854453058898430491596726282493552672952763522354060248062082936177135418033895793288906524835051644087036656289157838289795643684695554864463660833062947133545792136287014580017183146368875960134594058979851302688425551436473147026947046888080442705349209130719512271419549651359891112901349588643141686024387581345933434288534711194137701636096814814119947098987878465388986411798179617349644814789093665699456274435777231970964110638684100120625315981250025810246204933175126743128266414080293402378085921642047012540072529791792310634304596047963965809250524134991620059643016443358680768339636760613879234535850572757361119032504112617517685697275104284752670568439843886359913706961503416017643537119330675888398680518829630701792563807144356650754663212057816473658884018961063547545024122121849027878841874281589706013027947944499637721211197799552187075860156791768685920197417854674355542868228396346646295521556246126662224975956002196722910399696110072210239396577847428073493379504930369447499865900153443092072888891784959827093810228229005646508620147928976338667284169850540568239589860135094699801527636863233312817569285134525336932692288183060568702063237386920201730899427381440550411266210890996420500715948548968984014671027139737764882340861112108090018999637878053017121091533002727132234586078003426647687916224087990680350391297150089450694934283671131454107232360404585430535145335667591008035514601036432490134850831591398172416807036131182158499566725836761337089158594892786280071352888980520974483044925999351249453991105209564555556525179317095965486797537865925871520449047061008026512938447594378972064464118655319567072148152187462021390960244472259160758251695350593197701556302380987336968045127299086321172929842583141051916305999369076646481675768541446705072744165244510416379137008959392659493772300764287971148110600467992394892761344167302196660862091651498684173572885881630694579833708676994236664323665024698806506962862698259135228114514417399007612914406707805108834691621860347573122021453297532658535104647413257491129826194312397076489963179095766004755646233457884085979419460301187053553534535978491050592354067404197483131303668529756757314128827103357635018836632441357607609048743726048124083703638740176613307184409508151540550510859558990550546899457641150275645362759493567238504811150944931509270798713241843343869050249347117018824641009130943538740194826670684039355316620363768924440947548807362868744036478111483768011515204058304805337638259344799441615540945556564663651500437738526834150477841862840816972922325922383233392513301323659158909267763765461205999774717087640169661056079830316806760712512290725734792651637733704109837768590161838595067963249979650024422229631803136433253060466532084410820396855113443625092217746102094386151229965201766251000363373027645659284599085994863160945270673205368013530988084443931258511848449277245216576376415890245115480185574322978954390696714911680285515766599469957846921796966903533241215296499011943710849506036164115707843813654046621763949585178965068307243006406185347107768769310405886336601083535423969320800450074985317142269330023881802698160208935893734301613932080391683011202838840703330002477810712965354550696943755818328011795302114924925512233725528281631320348152853164986977409211319921107364994096997213143536774234959698481725466051087510014206727636139422421224319043499119882038759399519488216072351497665744737619917086924012160921807248135218285304437021958141392205947879468534748989580170453638082628253472463736864188846691164959991252603887417164989034475514279051913805090653922671401128770801042552230395195319151966502331417861680692851315429647595614830393691802325596496296615772673505144930874451468409143605571240129000711179435426573992132135246125805482223032822796459988810650526330438644695626813614586497661470694718335353386224634759479968946014200980642201494385581122420588891051048641311455350763006091461988480274495510413592656349128608760886059541136838922251071877040174028060995680499026699433606724102404033078163186144063509043096447993080505421916441062364415053726423805514043538467028841992233603198736411430485053212799374122936142438861767240076389770183220347623081435103833393656876940868075832876726585099948757334147761281028230475566970849315449811343007370329935637845289222789738240030910868795969664487871739764308668059143278960014908837098273538322917357014273460658920128756154253259380695237268295500772764525200378099831153904988707407025039403758368346454969073457940374868882492807099768912229215885698098379005493907316926267996980471245436546290372730121410589381560581554735856874902691021579312001580540856197522453236343387446451898094837958913408297768936806255507792605570896494299566674596742774927695716068829608917443403498800369403940194090558354629546246646757862440171516831605086739119474962955753320446857428401646666529510420636010607161202066265084351350176172772769539162949893785177397010178686205029902631146938943731147920011932687065425188244833207369243571687163855079338884180570179754552385028322948566843187376103768322886242563033295878708296991453971147374307325740998102967742666493072994468710461543334214250602016795328586453547636922395726567289981104816734552925595055598886013860259504330452608692933375401949227363398309249286728702564673722249319350493818399725654077688953870128053200160531166447595188168372000229995449026082828794760855925558366886387216227437998422991924466227087777640206685120929095313452123731795259470755897795917099327542919780950899579681911941358106238156568816506659281703157598827965209285468734597505476897554152744125429673947732119247139855883214892996096436188853315949491667956615312967249270701005476282999111567501775871839697097819753034671405560727336899265298398407451401967988049411304835490911118176966885874256650208649703924952236686371449661212538732842725724155508953470475767138713799663482975412039113111787127437651476502023270450783555304441577035552044140274993898624020375934238467772744508939851824008579614736863773354578864184596854457305156858283850373961863744103497808328447495536293120082741724954883440008283881543417164376648358413088546224776594466692103421584807257598437455262096566854131615876779500012171982264665841806154311292868766012557739044759946894166503951400046720917618729834239351457961759845446636241576061088910431340960566186140184612112712379880238507744023007302514829763454092414804831918564734177789172078489639148391486402657470653289383333642866659304453984383347171505936320450303092774581075061171803458561428597457266792662532046881819052939005249942403481714350068161608309135101433633446726702687371859635182810121661474297281624262017407453417675335120256528877352364412347744010415350153253643388719316241402207707897304938195698245130807199652241567465497905817966177795363810972429042919452330241061162808243356097800892523954985005570088457987893407769905120589323043168941655195046118926203110304604122004128962180642644541941393364057180669194931177893232711040821302553652796104446980872779441478922769851684276099187531062619532324765043585658232475603456557215941419121535194060056630864304395907279808311756461041621605353715770986295030106444882554628700672368952942107638477777281645315915742893384436285733841825517889563973584325687577825779779965303590232247020052715315684695926024296166992266272444711880927624422914598923796337063296959365109259536894308392482834348369522772168176201736990073063085142363604814420251867123679607825944069006773709328607873711717899725463203432080078958092920399133015818676482135578869685352099092798553573170176384058879494437702480906223550631432647608956648390480297724930434073990514460115992013389457731690412497192098527784577544454218045055497565498785378260075409025055217384318929634640520020054263839297384264232363478860749962068727364894914572768538246086051794678383194196099506601919002226054843115782782095862842342069319512589525096425498619056828426712997889030886249314430518482064168782634396960541901961824706095979090892953372271981488701728143652642165644615854365516588651242213132542077955065750564961115749276677856462544571319584380374068485344233543069341001904530157040398216537502055563884635591137864488764910253125010927841748081977633217018922405219881970257494168066620164589411090028920225199661538243441346390301682810534891514636654896949342358333819377797729055349661435236472356583083207898878572150340045240002258178365010802658667236826839126395937064521394331005089796129940139025546372712139567072974514634182042137632200154137103348705963360803603783556971523314396549687141701917704714492233245463154126335113817496088879718905966588751660785748238246395959188956662195753777773633462764631721234093411926923371557264445159602300638296708976545625528328258986004712627637310400756682249434400599213701390882094226068508436984106966033018533289103652881450061319989742659751072431088848851677445558662762882626520908170973059377666894144116395264037004869484048578824402239839132617391711674916925500810325752790916078324740556177977591734680875454723736824485111728376617866932454209450526282090905511774656232334332229788721962565229564665760176101014885301117265548598567730856204623675697810345358209332468894494184548704991546094229250305579785462425148791279754248547294109929836352237026813928081722580715589446703992914000100837206963448904378354234198675967101982465720417600859127221855060037345182528470153884231292030890709885293441233166148802536911282293105436696934667867676004801383091263833940624078507864787346539520432961720727847600680531935645479676440176702303798536723299344574318772699300810414960489895579122752451668036126267671017574291107151711787899998290890785484876226732816275048877051685230555918153295780653066233435640370654078625014615482937230295827965517367904081766043746682427153049774583701876633996361331752620772397421948095055569705153857805753270638119146099241848152355403690504699968494110907582550747052203085962202876062779417013335936486685834733498112425361042721291960816686331901136954247665526159292377582102322373465392430860639403522842082987257546388241250114210035806477101712523417565764965869515177097451031174294734647762203734034348516903574395274977336820167865487718506339654093622447837945252628535246293357536825350362236729361397440969530386225052502330058317337202852076893179758474770773694695697372649746496935776374963231319785008677983255519833270081090485769259696968200186428371711179870265784842768564906571639067333960126155021197735988937946666736593749966052630770795640631863718566696117307759694840705780716826671159957743250323260997283843322803350901999774182103676780306096420335020815718080035057500753996289980182670532277787298548640750784972059498598213914633217709798365886794414585601748160246957298951146901935434760978509511355317828512517828167407131465086078766912387811720609600161171540050231573415089867675074132803110741675658031183995131619435484537510402535105924457000328938213051622530051859366036499368768821670587421749748702897052824333412485922452509201348014172642199202439846303710598729854000007181480437146756347758788765182032156557532300899012079469763837511688166840456960775060977577980899307655395082914000414988997261885187692226260884455402118046238374389816529046357146601816656127962089458498497177758029368532410400529660126089096929688419677544696135657563950933457794299896908831111817970564380975740148837340388590529758793167302328646471872087001555311019152119310811953982720766818162957111390244802993532418962743987662465858455910307585778027525110834051949013152579384768921502678619865312070492898211009792937698437197924884339459367634632114419375559475015366145914269754535647909750008217654560479401056861470472002625683291594383905559425178495150075863979527030542869899631253763431993539387542936153156550106425836989758292529109112239621162856283107584736583586519247409068646419048272416581437916337569854661333634399665849201924800319265464781661409677745652194669993785815692471401067055482976725345429297463222700936436637173550835111931431647908380787222186530052270830619656766790044726297421360203962299719646641648724966798878263216828613383577644183426497959414341539119102715096981842658129585661335029522535751399022511069092421136747924458332235483828704642831275430914050122154142105974600866402863394441473485004270444427030155725977596618417098412492005225735684943705163849353446102058631445234712654519163418009838684314950654407567639794908578711763392984180244367032277444473867079406509591069382663113134262526205061250281222445943375512845557490901807103920230476813415701476809503629448781685554310865562724334714737737277847293553813730488334652125081444470392336682492727955507620285147999751255272889673611519334066095666908085496186051441286026834759544514041909353744437573105441482920662242197437134490182257193076827131266047306409397529338589166569653740356629160303063153471627366126433164989868343327088882756165775789751928090637672171606242818577816209919965203770472228262690705975722693217048584258588114987035683378270484853470344713493564107545513670954555502583667455896750252447925523292416327283269803571063225748980246821552508857064591317635336209074683086873880393840106101382587709089767217910124278251604412131811640306347806250274992530538985882119978557688660721034443318730485341214281849873961439138213472676288332386091244187276504319981769681605535603616943479149057957630901751570311402181017404589873712421946015548212207930651091291400524614307913321153214396193236859867267635258126963025755375422947171783966313792639270967576084138041175539618720007284192214092260051276282167940756880648965394476923165095412501187475116902969405113792735607285941873588219736870579647926322133703942543353420460986238693264205135300705432291157573785853097302048201509526519178589238790324055349080173222822847898968851478254352611021931884196313944271385171285563534035484738086576937893254688839072865263616553449244917696923911336058180772238767169343767635931500460847524493348632831506816013497091544095635668230911146369889257110673821529027348109372521683616122733409318312282354459935964904404894312504188701122883047085251050172389840197859581591551614867417635494001956952761781327430086741051286406424261756354816329695500906392047063124415949517993334478320782503486821135288987230694724671712439782815388827135336010753354599380473840014134122901229206869129179512536929384233310189337963368919270921911920069036058440785567943210090741088108740431907807640734961741142221742188200938466268583156557121085588227897588679971768239745224175507499101962955122445492835885330194937538773880797954802708608388335627487593522088434382506652737679852175710033943327566247045921596287239551845383039399358441454836651170980314137939250648707367240285432477405524224903277720517619425969091908961649409868929244320322637524784430583058040369343086017590910937899041725391143677904900682237666743492453118807367822674522268257240166534277670072483050068020426807735249660505289577173123332460186925232466872178067994079453975391595477095229235319835001564084290170240706995584325104713727742778794111386564926602240937079298180354033829784755396907445935394633122499994242913354415213583777917952916221642227927668322166697886320245587144429173520449540591310461902700618815610381049838473969248848126824943821138824633931612635406534484968939277983717598386564331107578840803897442571497935770919483395473864948345048218033075416631578821289160940742431564289244551315830427192035747591473221879293006539543329336042299834703271333243780912504811319638674836309832435221611743457878675208300436499617805212566917360874561950144427695595550635552434111325123465487706694765430483447256242516065416763327995808351741356532949580842906866415181440795816679432916171941167850675331764268889342055086821262469163487678605612093633887004427553247707259489508708037382960946862300023480057389636768389388789221984785175855269376256408110483831612052304484986294479058358166911667266093727973199348814797979073734180533583019174926248853861897904923174216899131764252235801492234504406281533586351080608680752535006411381934189675355816675212763098079118752777397942003723880035467630740849755794028061347525001740633393673997490973908927211453815223036386451295790814629196886383444792641774883629807751401666332184059852197045013752096199586328418109189213080600888381732159347167588925052111499259701229601482835280428588019857033885839518189889275377230560467329701571343293940994158909507702474852989357444523829857951250590330372354013017468187531254419847476084747141574354161462059360618478813872451021875465823662421456034172769627166032003489893815611409220464819265920019281721083588590198919877321567405764113898189449883008000686183673068502477089096879024136798975596514744086058565666134464902627668000347106170794586843809907365165818618221665601557349728383161800206365427732983200400376983318346592867625916710387675385780431729749815768200385811024881915427698633678748658070446411203035936729777918244099624485018849935350580161788845759086427753368069042916111529653894032780421784018661913533032669844176822419614934397769917684415428668249210390308992472285254220818229489890442233490139906125955469633575191665192773125985451871669589408959129256120609314405205924976209440520270903332155482701516654619285197307394472839490084347929667180219569718977751546423791563663627891539879253902854101274893178354638431454022789588596829462614873061956819622283885183410905514911594111965747958160664049088452559776638432362672941210370395010646980519184448603726362634354453777324893734623415740841247511976260819433911466839431865956850343419102393161067176992888844887946631313889678465773817694100186920101925482281578236648418799794905209128435006026320349144890871987922325441375439765354879513526855431626677317589270548131857808073413006330589235631550869149595397269364870167008650999812682876839561726600522687026247029263857680255024232681135462817013227933020597671417326403131466801768533374338385213462847934342986324072486746144982063126913595760754772491517492216378077197044556381227780049336566657029470538623475882071050495959241427475098514082849276522074470540942196942295961675835011464596910844673084950595962224439154231055987662709097678343806477325538104352076666339003759505688532717080527776219508336984103888555397851964158535662435169553678341089118708776904818437063553777284964004709656421880443806863224346208628689953014540530431500973205660316088611790814826625013576981946856123048152148943680068063226212233993178133898437856738693262504313680533566510146862772053387758229076194427524353540365984601235184257571109364531053519333615036233987088984746154464324193762229100995393315435165093959159193447504233631264727038863918358151618035790332969551423481089541073908719744016627754129401064168619573145630805600255771525335770771396011500169206720693484557479851008580020306916564839994157370366427684931203304409990107444956200179852802015715973566971591544897109987010249816725890921437056676713033527271894529099795948339036621207478228308946459118972968673443871302788404256324415010142698750638002687172970169784135145127900722877103481465124138074486399813764729625159495375589624643170349469430011687125722861199516948122030585031757847732905700494862689637912394628917378508468798981615949901755780172962603587340775437390494742359722246886869573423384081369936060868262072499437010944828198468427464769584066717399367339093667280207747645287465503674213415854128961742809416327387066594429944079996401717226034871926349318210193851490818650845273764243272256026021694547932031620903610036412088565175425163146859908617210502262132876843976945562291842588712088532450978472403224632863298607142162118596327800172240377926280895528193479352996279169360282627853815498713792852390223008682150667815558371140988610914187451374582839768426866442157343172399197883546054952356116093407500401722929909098469387388536486927385861092675123516393665954026232100764154689234972074136404080603312420944428387741839073270912833934852091800292363249039900167590090434811752599422017802303559126631057079370449449943166185619312601958149231944434936102586882838650808774422936788885986143447470527453253808453816706146344063643833273907679039676846045629052368778015372838931062182429527471584657012813942344904187735848089800036129734589454205598420719985792348810735606237232960557779849145242046927411379730199949358090364635800758067594631637326055037621024818806508048340999464309223672652867674473322198435565112066087919150633558952398361371254376684903972630625932260213152329406327479289736048508801680878799181295333693698167443425997643663264146806960533688208580576345568905563045356665291150117999173749435286712532375229664328916958509123123647116383128707980638364944312126914020313413238540038842858364521419253468664844489803469470680830486794056180139000275855627369990794549847905675726798063192650544275950567697699718121373130778390313393292082630273503936546069591987146620519702830769511323901675238127358519073332979809170602431983188543494983308537884644487029009014971619006507355717748303455338596025852411381002728606703650559872099599530143379999095152474382827039384233516859670886337655819679351655112072375337800394351860980885847525696224903107090404629069749344425340310856929310475709354179940128472777581955055787260538189129606553920056877088815360426436535879227582908192417450144966941015096051906963273400128212596621763140932627211101511580907426004147809517256880203821878471369736688863347573145067201803088173868439538286051925605045234075360851750064294173764184661341647938694625103944770036223202035313257823557034429961540539368519249722132587519932133587090389753685775990317118822609751375102644470923656975854762163182483507406592111505928110852265833318129009140353353134814981250550433668804648069700623371982106698862835155444228754741308207801497883330949672598268606152981419208095618612116828634675329226515929880601493933312535641948768030896924690601009720359255162886496658196862806493648045098583174612472778943121331872318049921387825318432774847370556021356485062368291017400605250352842124108247310262364984520806277165363359666001077008457389467562894369408736582403707483037308269078307870468631439472799378926768564337865452281941326545344463573641362934063603215976569028257404728753434428798682146919185027697807363415780481982630759201491921231303432232061194258419907362374554516986567128974884017909180541616951752599866775263820155192652662936037326828304602545932685622148645113941304610580054725640198519042240684470951182567478133991096967696993414564705297978030646083941048672190769683081026966352930724102218048143808680814839437979185992629046589713082888416447838519801995575262984173941107851613472068324595175384149713459217930750461562534129921864031488819502148892416020833391785630501005309279335849519155394519651504432988960300493733185412100077581361510433622559336368874265367702033190917013089178839935731126073750224980202387591147493766503429368775580724640507560300054758401809637846788309021905679172527252970276229219926622300424124295971844948664888370484628467424066170078353396827956779136338537387392357643943096209231146959414147079056742310182269096449554241918954663312300034226948774554984579811207533140253994646579838904539248408526117905228696032380217265498522042906881139304007633567319318766441235635647142122936851003465470108826945739653079770164091927301742099661355231954459063286159182210196138739847102700998346288124553882262537716816365594868608065911873342742848767750194465906238339177167558958392496889793208830424035091208317877452739397412889931403337836957188904520545585590889872839833128183067262156701028005274418720251689385857048055769674804483978762032673628245472639487288807862836024370141769250722360358444866859892963416131086376383730719430553390740749247809204091703701321560426935575447407682269546651189765754814677272134018223644657214676372009831826446747351406499830646482413240775608219921034088621355292614651016576965532234278056051998980619568708885040633445211332705004363011922649270598532711752097387193383465340217117645093233883889952149023842630679675405152399274308189232239694995523204983787901869887802199781884146111313296179867806956272051671223208303771968575381435624873872741941264100002709598780664345195449646603118184080589714659016182255941398741802458657072821891733890482886221796097617530889918558817977178422964068287132088429637531643966990484317574488739845896912595849042191136883421575991951518080237694391659645565436447005371860083577991777354467729213306008941846056389132812479150642789933643220563151399330128590433079981166802979261928448023707187294878637485027001944763144433333812156944334541526709285574081007117284907485405912319440092378781233395826987006949217802908717651831365276221818145284267471746124215891324349127603197816745881491753849505292106680948412333686549869805753888704432322308490886586273404902279364343690801282310676080983785101648912271227977617467148425539060850899800406194651707876692333130629610108069877382264436139256144935746807709535449968229281605961635580268054870331787641721430777972507432424473391097976852125994316725207507221389129835095506661046387612715232084292185317189501896285367158154001884938982461499677191999227516394795332803920513235723784397146240760647941730276060027975035756279943265417528471693418953729504404015615881748230703865280927225182267089078506741913921177680658680117125416697265692784234449802121159505236702750633184403747522152732678467326015351115706819230239817882057835634235637624176890007556503168953340939689049955935587664610730918607219885846913538528715650728348640037192509324111654229523859177799264167688201880339989460504680427994356377898042080666581240086316443320351292345557686532417750990737500627148655818059480181382277122556258227740812875379267278132207830712358501325073251312057461671273186605988234607118587545795543751651450315621559965078613170901285374434368831698814594950901813822281594731917246766720089525632048827955845114630881030866148456088025592422454710185943020085642753835870893622663806256404921237322003653783187362479568742225379778452290991606906434247535168417018605685887549637029436782516065000295433074802776528602603015458604148978470117187547071336170409270358608904167996931002431507243029394812791930111251176789932253169556725227491108004467691246283368102126789107140404776177431197112813230202743680735083601332390298866130613609419815148901151780617009976783936082701778944244713849592962767092238040105614625101551280207806746000675744202327934303819022126879522065526185175988067830822147262447134156868130744541354410019312799069081060836222770406152859985145154528422374662441573402240294747285269360012023279890805704351073663199457132103543259754720992109713784783411691748207455050092505889754203585115120806347622994053594000294624949444829718955488417136140706015927583836671329865524277525603095863859150030666097603266538961753769084555254791858023587080257058220841031104799636247010075793958755614617903447867167611646199784343506656076117419491756545216780925993729733013800240119003082339978314641810086093861516319891365787522385190588422248109088628100376409708350406095307688121832550698133922131916398888500566381634203066107307031993753078990322451402837427009884326955843482439317501584823251496611524670041302819163805360854322182094368003353735346064627109470069675512297094110847111756701956340214646794923608472780028394821256819415756665277329221859661223810038116136920141803476970655383280322256954610123913872168298179640296515771504839349952207484230197813366730066325253780209554535192255216423077038025494296014242926658908738607999751637323193360867085032169850346435645705694212890126267176330662299136382896623165123323110850796059792338586640156641413749815466434688821119045445581520769777102674603622278147033187423317920243494943731791840043949134005915153797731197596328921591516840437324031035146720694653752415958209828955665073346139410230341729165421693807023331636404925621527337395557566564873764606375402605750813016427948875768677281440274303224511874770069387864470225232891752505792377679989817010364716555436962290234468214236404819872125238207312423027819119053720700544301251355159458025105745252871007702424954455964923680116220424320240401082468425314676678328557721620200541056215552242782706980182063070866476223054864438242581091519952391413538171788132536144932889958741134837285497807942536714626465168009572762889280414044350181043916538703538762843243567863986003547195290888914059615958232595713065868641898679531543222644212397955089708372078191223010771426014604683174843451622056176490876514645321039125619603682611676687972209779435582219000799322066661620151240425232321543828580466002241978529552530150552683479759193449457871816220049991382729064865138261460791714525225709596617768588401153137279555370134545119418809629070247447316621562594272967060957613148858724796418227358544657891452326360684628201868109422517741404746306019641036269875592679063060738574576713035820669622863663831503783334819819231613156032168735391206743840262887704712855176792320866798215469958594357417275534661298701742948496481444590397962247048720197414607277822100526615925047077325417244236378695524684413230664488032233094293574076034116880853774518678839138482159070901249770067174498112647268235843652694045460149487360925175683320877217411557690683982301197018150191243734791285416587332363174895589390993353282981063339018047439611218830193327058993649470035324166642836651777127202125916294008736470015416966258337137048200294244762545006989120683192193851400408711239185248145233455769501413387148255117507406024900080260440212283962005140230072735813681286133000760929369438704048447819325369902764357492699381329736918134654669285937771087858346536220620969289597316988812050423507277514780895966400559292756948497518554296742073703724354400982465648846926436746176045955341362008062091731066365432962852601769510482454766548723404514949852365649320545712624482288284582520457444024126047536233288690354616127762958203167405636041076399108464439598329487630564133459783718440863471372211380614565811971649224672464580008456467609689488207533508054262929474873012300182900444877809731219467919482446701817767077448559494014057564907241266456259676572727584284959834540760061515685481523590213745850163210650511875394846716125067184139195621602190158295091412883889855882442337563702437274738711675601537933763003310907886205528045982267978859535500047620048465065155750803146284335397235721299175944485527636864276485339233531712707669687633737046359126195435156010285641648902599934436161741406866463295366455296780220004929554955976933372425036926723944061119108146659674029575485725365809828398171649637214855466942594623824973127295430893882767915402410552580652929259482210331973580262577328336976007782879308398193972787062386805716192188497670830737700623854479953030262906997475836957701598235034138800520657619303079428911134531600476590350589065353543846474557431544859635492094757739994391808261853752751630207560717849274225885686270159361467872224705409013188270614683434577197621038820291537782109532433944994937915279005466172675570921009961253944072109515698772054277861325604298792138788926307677498764084687271462808180573186133519182437403288310228467088590287422678653023584135001135854547522242885874422881074146431377318780524901241904516860372113918283377610575364345607807371087803894622553782946150471162401120245409430247603735854444550458245926963827312636950499972847115030328590554876506977284759876904269075878328327725952229650699569045327367582133437329725063317028694401339838162367333302766049792374328161289121313942603771360357480940540266224386916223779563010190253795503759886337957462422027055859914988820633903636562756471800645220913535439218742134532552162895888846236110408205881939217662005364871833781258488321963775630891673702826479679450173769847446804823633749600978157930547328639315549079783751354574912498878312627544211632146504400335105716805813179138964797268848446398271558059006406841121843049120842741361533292176889010211136546717055438609049903718454421132639562680342551917152587579963155971781845080414831616013494516378416655324106892020706919926073489595818121114058189565763478729687370413404527423898003683901951616010762181562655537539634865913552099342090703916408037670557752919563375379930117254223952311790120382219450724637545899587921950035159497228234345724056074349741477997220779542168225812489564544835862520737132282972111993486113328596548370464290659863329556310428689445773556527457324815091959241470027582134538868292216141647596377345807166270343473410942705033477160988108306562732544742243406881818776775110995750925755094559760220855866316656908095313270058628809346964679731237185420021865257848111190357762694450944062887667543788093840320174334510272483613648373344141792419764852830283350055740169131297793427166545285649208576382643598929385441875850842357464589369742413546396558736846972244959586592983503035324430342751366338906085722070228675275227649783204334490272668602661058290089749938044243766388474529027561713599187752584246538673124288694619864088228858312628686451369952113425376298952037368500401501690280339367860364491952872318408811410373776939369734087572905222448503230756458660525758687026035594184273187666581720746296691491986034362853027959531878132889319515253708704978097866674651513684201830524827963602869837193589482544278514112441316185285793556499667146329374037617343662079286737826338931618219491797244358680134964996668044849396875381786676103020871662247052334029311986710745468764049043853066891370648004774742046296784867632669980857584915972432382071114282111057115454745700338668230621523886486745456437260811444994805047048934860115274444811248440844710089032638977763428023608786876277550235479366111672594157926646570437585224927330687085653635602431005309473667183771231107025118363981550750008540654672924945618226145246626167743057465531245694925857806148237972961237721280999791722240430379216069113891240265717128768215587473549147512746866700286386227642920476196843088269983570300410180464737159560270125019778355213970078033931821938333686298933071736511998377382857175109437432983946647076614930183342832468948967585302988220007558833551375774307975691389608372073758988356212654730830077790021619680639341787529205070266026125811085509613379766526186563030615468482296050346196636875875870520977015932546921478262703459689857183939311659331612510562188001239189678441595446008632990747186199157843297725580481872942493893626785439144930183251344755899086345541067775732818169937314019400807306459369860865930472508479230418173823452673883803520776034169279360427921858876240042709999729373906593237564944973815523624450817541116337583511537588757140634331312160882928857349818196139367421684613688549344793804502936663714284726932763971961424321879739482900221665494624392918102969682212152570698401879007104169813985633206335771555970815490341889544455904961604229652718147161833256450428555629060305012921023068749848333807697901759430086364448301854871456260849118333602398238998164882737201958026180286032181601619144865699455274705397958975343726024445122508981387942380166412102469810424224839614795796170537936439011762778682717532487626984897554709113493814193991406676503134167414239213625454107392247093308081557790402171537523132710076182021474393885753490663996157379994820265564930635035467603896081342016664605533088154247784901231243402482644517286713761155124129048726077458248058590317340681300531224192480820309458431497983836845743678469290151874064520265361772372132649300875543163748993370512474334944442440643145156298249515922659978519082694434503811372492258985418653939072403355591658196588184289391646177113828840676042463104497356722281672246163493045953558893740866723856902811564247824425078285365549615485443988153310644498955731306176631927405709708341621248105221826127944328401620895066753018111261482329576310979497210099650643376216223817260680840172019076907630493168469624345018910371493421081525097459023226007748403515405887786618150984772850393158013381255601060910590041299797077953180706189645600020360196196679373622497595873218456995238210127223696734395062775436922724606799762630440826828995841369460213425836796639083863407035254916962386249277784269060967099848621866084773396515723238574647313549334311253345517083658670871715058793914366491735579184371847015486722070126309680159667414929267927834402564847083774649366841793243463691524257341435595723924827001626884521556374630453869700043552194489647419526097309432432182427322444592573313628422256541131271299851700674588891663112139945810126546147660462741653774059267417646879061032928651615479597326767834089542941513181775920746364181447500208795459294400316109528978265822091415382915392450081330642867807143072470750374425659106195526824768979542360320580362281708441502667531573748356276684965456869556634311227832529297837978496321361215851000309232268658327803231712397912687924180269461640322808800999347725606160168357585321850425090553936720552084629871488098670479784873663777527865179658742820076063152317372269338653220367554061677681315964298341816969691488801868317676551533149563704351621177775681494453503020829698089481832470017860321635714499831433062746248041531108692346110174071651195900661322349558653742948805379702013669523035560062493464408196620635878006468435393939730362504480612753217693257013256803796824976798995677409410000298273846058845934940334787647737133330077194592107587620015953039539369699384703159911578391274916479527216520169155592545590336023347627506955468514241943397006319488203237569381925533708435647489964952837575560926936184876318763050197224692960572800040669037231161049558434348724484003752450175272295420198650709956547238241233587557478295303113679699474763577037148517457078568651099547393032961161532387619851775427844421876844300671902189074511638024641320987168890907862005294800082857159672298301887997587380357550864063924154468900377349271278207942383985365671912138251607012579607774967268634249749091852978009005932149319046539759772350639975580356554209478889906070189895796298465230284424140747357356697205293530778936077291488811256399277288032053958306957519943713521171659501630196585917315061274083982770681395688637156390664661368929381869310115911297721917905773615226317256035469325073726362055991224615479562303625620079367669914246493922934445079737316742545335802787303946324125946830472486459502166306120106026373404900345889060452113090659882177113351930550421196919457649979509867095390650919864535706670483113751074559661878172968130410321788320899674466254089582700595933581839112600850450676592876038203920086650302274904305567897142040386213051352568310203589527075176251902807647156269067796821701034259779304016708288841225840736911114245995836904628974499999913600627889199169866045721745781817911761517168253720214469351040408018840221109349631035630733168086891764535830577125738045034643523743251748157641603943019558985057354657707244317183319122121464126933088832174318915168677341225409680953617417005673963274994556015442916090906001177202942075340453307989371719532487575911200128648559795128828400844483761320123805153438187467789324588317735695349022051563078092446609393274183702635175106012116019319133397594961010733424979416931391861932771173495779563346217799484762244246775670846309018030866841287040584805593542175515050510701024229440828980862997425296017789151963711613634708601307280030131020786225818248158816134661847029406627994521527485212453526439904762236287659015294681777966859223011058792650995128824919133913585008965093050270389867848913993165619791843940123245946646336329607747219762745243740261740061271634102991668567480290504853146976796755258755640467156993542211376386441701653071800558477564508436718540961938834402566917748762812134834851911024388151575833855866884487822147264756448935594286175910359288426070863244464836852681195561447137133954693208238009012725000757589549677599484534280059480907569121765155352251026881689091722663857102064205543254987765017785832298750344479391518541768992070123632010165438057064482123451700822546293609019501687815249574901378986428545149018902881941192265506436061514809968537076485841799967695885874963554117433720937852052624008659631878739168507272948986702502986624456252359107426592763950540510465802716718328432451781547087632971435441611813901438378315813201350480246046642387061782899651841958711870597567582671650967095299583186511902071846995328202070948436985724842448073500098340725305549728321639960590269078571726868410344411021321955040936586784784626697310844068677728238522097309845436855946659078787756787277715638871785477614076086761227668096790218970862424515695185827081816220447089205194785939140992574245124460974321306579535089587051144275144391013733971339249206869207301508037645638096167605840051120139897200644154041629720879381944121962565512588946937601422503416127264881681041625858954069705809113621830492046823080752486703100375334078047188392085279606277661350238863725145602843278955312582840494325499292134642071224631418406974380746304274240010058568300070737114210157743122916186057187844744195087331079670427902532368462870950080162140594392822582218922427161191268789913469205181666569794763139266618753877568486420962754086701427486588453169327087929149930790715062439872955735714740148642810723438047802272915546802796447557791204759684670791300622915858354887114491952927010531282183085053534163532737163887978668857036039010033935701850096688965846852961786716158157531391280003108010023302281385715586707698499434498226325372333407459953677484339083970189869201576259132326862558532018601567569390453226362463369786354214863963924906313551831251123831027077777229597096337376407779880949363930873763614321046498544818332238037235231002300545654410647532402256435307296117704726779898327961730234438112151921586289733122340882050899066329661694817377430662281287914470165954444091729687829888690754964224750533824436694376289296954736222138726473916537757159804337891217211921916620016171061510739769749983177663163474975599190032386131616715263339610244184768689816526581058230536172513727091128608890563598669561078033764102621926322618592527909303256151168826745053097406125920935671862515898191855137770612827426503631758347971483909266183848855433083686888196959073559719534380890135207481074088703839882846024648158354236647699398119133158402495181235474710463221270108196819339977390841843142125659996133880249288307551806847109620816588223405861214684839902914918076289154182334344124598900148443811250380875739502814777726453950894101572938398351088425683080675880687597055492693826255658666420415423054375734270096861795923002655957971791988892139594302270899461655823586358627056097531491472047014363990039517921189041299500423468471214712231852957435434798921725711294197208039122823183118049123497867601265946813684284383968845741257372500212497909125568943731482983706228790387371440432392877485162607913824547727373670072495883435046604440514468232117315058239985652391571059376884304241033486618802355678931408149519111889665707993356083685551411930796434217593403675993884499234691742462540860237675743993278595088675726674867405948700534710589680943504424854125910860965549836578460279331797266650247778475085614693157819720055118868260412553777491335853295099159055702967034447524769115549939644102842991630008549526021918796652132169685435167495857551965290517992429511594924024143754649689174411094248339074948778734152230122691958604870639971622045430717601982070293108221029332512384621920818035688475371450889887248642000417738905335199934488341536581799688852474336653144834873037236894118905682784297481119604712444475407747479553222414796996118988912101371777483886010322128327103088721433399446036352660009768715318154863670013276113286767391621177612381603005376217323746105404255898867201808492974020963154471117550738870283475711974243729149252148957593356320687841795606717658318959108851646785812596962317561192292821405339421909083479609862412503180019972264518186955358988812243562020315968174427034481854325733980341101091804986892689899942058114146069719976164381905497085592896859370022618330183384524472672953564370651719925515929945694321095953955879807929693374166624887089716876198586544217917399355920123407258676187556682910143775545577118169129360941803068922554165104516297202857108194574882552651174290674189181113666128343347213978573841313736471400880381701077232048862695191245690688365464651877854052125641409808183639523166996010594820761647982831683202358499589785353638005150166378381156267395804145023427904588229544692436027158556330064731818812268790684534440253268202101365328845784408490716048991315213740577816661023304222182332690549086978514521079809090110766368735200235861095285359730519459645642860180897812818442061397663355228427420831311688895473254782399581913871606480443426360312542512630072319077513233162437945903139429073282943427806081152290862220305619341441833979265309432689163221721365009074577936398859138571566415993030124664023463051421910530514217302524603200697067295968450137021264429403595795957610332593825320151152654926944588907594436239928941899982499932981226810861638641124996767284587141816983665363128545664102416070482685390219304613934286917851907453502152608713267564006137357408365112530551351024947495695197132290340905014585920729277287022514944225915483956946609680031664459224767246114468227748815859032953766628665856183449196516963152541712821017530535173429710314893715989340367652858312763873173308357546500225172557814943407860796881004874392647060803298493647752810610752992253459585327408982598167998088766767543788895470787073381603859475617774840088630668806702188383801466625386967227069102031385193682383373900657508204239977824671483636152910927209761133592646232390386614642570372028236069885954989156897906990722848767308023335551391197470530304879668349337913749527021427397210055461151730400124582903280078334607436112671558887301247046697210456379202037127610661850841726795470844219007505192385424284787177889503487111013355880210216144223904004292413262670224587567050124052973532389512303104558227031308873029137402326045574169373159222305369347654280620657018254679123214187877757223136008977770610361251792598265956340417163828971302931036400338288495219160801542319124113828527786449854332807891271700768388489404472533026542172726822711396250080574204546572425291588805224380108811046591220139082304606848866116472991041638185979509342178231221058941762300488022224664141019398572540590380598307773698572494691882475946271364896112229270470858620342056110708907422749245319833807880862512170074983342478031416733051132935663625320175897030164633674931422036832699586159175139739255541472025242180753972499679801704931127663630080406370627054162973506111221793205165099050103995306524413718786947826378955226847946967776652378474829293606687204611506453411636759845406080723175617958102330347189523271887440822502763265041354923712734124560099007673305650261285846573186182892665943710157590239912728053206293604675728659317777053290861654489100316619762905367245270248198944462119327690648107520487121497506554109400903325316929829790365726288019505777484050840266931461003789955022382412490692764245078720697378570178934039555769531971569126075348524589614678593053607673210816130125810994078370652942939152560564090683502165499770974541878976923216797017948916765618161854740831358253724415976652624999188883674502539225215016492666654791324680849925945601945663592607322815789885212581657012059527640311847150557585330189603617707178629559341896783819951803591137071311983546464239451623586641097299089773084527737993817574480156270918198103258678429651663718239698411651284224714524628114860655964947050542579166837967501683862259365164360999326234015524301009150881979381534425420772311448248985557944285934059763695100474314310024184055535662584024657549865754407996732207064599096098985588341657059690773300258656952037926670376042124039054973081479116121518357104545078495232466283388139389564096190982523694903786678900751916351334564251898135282937190464279939852600663789261952575426492866279300612560862723179139264545925323699991604828118370320593289473289744988158640446039259353445391162880142390895384831946903476257194069206602232382320098363646368305960958077499112778693819338407462614635176500395550453096688990278547934041208685673576179948642287711651641865252604905669653017784479708476549925779141334340816592763485279559355870649859928623696052866131915349993176086599603820228506983399026611681886484955798690630557178350390132668485666706721358574050367762209054377415665409137162924907819607716701079958494981498277324669045137842052097656845982480311444551466975924851629582440127306771619105605029949340140302934745317056367673849616718782560294027632880303216419973965943978658861270937089887499947026584585693906422959446284656733238131198040023825825294954967941627168666212193198188272025743293700593378965093238726015201085092677344029010859456582924966719311022963860130559077861663871655596833919400750639418834507834344327488330473460827143318692269566938062679219893173778023963032526427101605940554690693671218631406065891367438184935642605334451975451572056287960986721117046809655175865583818768953284253878955300874715414325152239063791340483302766879632331607807637852355698052141494091302443382477954128839422666492739199089523948101759953123027152272524441311660902107935126275803366620603544588751403967086477732874614192340482464293826004101327667706831611128430784583211082345252935516576740606392270072801532044535994387626549993109286976364787392025017270284039862793966275115603310746699285079837842094805448499168615669350706647175977758093232099361094564258190263505423393417487400017627604308943427327272204455226284284037909485037313168853355483581567483950763390963889216541669726674771452816456807080098882273425742692747873702416611897294186658806516920293020258975415516949875528130346087691718331372450641121679665391198064523610200911770371330967373436073296467512406780119004887233121655619389755103840154096697166711017918638542526253928158522557139818308581303113020662740228613064525015206082793772928823852415965432361645585952261325145667468950527524356238998900695544610195636386829557643754910790647754297521176878470023554118435901633668290914828644999516993377942109257239127938668298159374536794518510479282979316073342055327751917198922110829800669378925970239980671983668129899443006677798026501005251936955344739661181634808849229631076813320277388435537384352162008831627948900989358291947640139168180662988312241608703526774000632404410866433138598815594717494265920297489000690383269172992387170883144736992805551926081223144067862444583656474856825161694217346881337747223289383079668091198003136059242734313303028866772007248463653708250352063452398167440863090413989377131946769275347359869915193653966626935198147095367583801824334768456823117685377091484010811314689634921462412215328286151045489635174570968475580843282710004086155071678165870346770527429005866317062798095835679687993361671366679843083108279356592726714896691048247668631639744226220257208570121558158596998071856798023166144129170074126683922922131030003939723191010293176499126205311447275152688090252151167766653290620390149183046298191530226567529349026740135803099892844890011856684956161785594269924864776970869978281030296108502752111338540494089328227381566917087679967295992282820917965488025531795439560222479310301181635962845908070390417402795227099683042246170291674262425717946814101085706628294482442331280227969272449590825252204991817988469155723883864967910824278596886098612311299073897189145515490890027005900213349490516771940867675938743850386167622892242071781068866639870708855789355507633407969270979989475232136701626876117311523306975159059492278914764597651487266777483696721703124629755016100561229089885949334564618562836064166622905592317222898207917894058503634612605948460509219644753200569746744842232140731283298072887127552265050863603040579812327666017711256284202560037728178255981513914327965729882850050230768495961727560515881893790391982981459336104735798657782851727569329089473581085670141280251039236112855986269654603109751902095255239318230412101368770753411697650291665692784880621956791107633868550636358929387787865161714335523527321727129093793250336196045937471743799244440483320413548871815600233301877204032003359986579186832188680348617081413254809294582444551492166756385721605509879339743554790331133921739953292405888585121921222507367015293284509803226690203153671842980657652930890502149006918621559333857375961564380869683123840286101306563135761847038674463936904740129493218689165166922505868307075739419147982162649253164143541100100926499318311772264774030680585085446665633146552011012115538175087016525110984366299807830001973048156832695403897998149721075141766479136681894120713441719558457633214285286717963855615529904361432407253059783223265792076408980312622448022271560264193446357578230547889168860392363914114155917414431175229231810452502217923806239645699925810479732607821906510455018952836678425137609173341347542583113451749339509521294390749940315432490355352528559165290548611858411301968089906839628658593528676324201146130679365763569266751890978256858417703636127776734884022872739675187007645816464281139828634801108217428267295718075108043061678961225835844924121691357929197813554139714292645809373514158803737843590641451443088175348659993221907984621104000240525145788903435009270537529293456398104366087349277359202963905403535859879168966052131183692232792553739453294443702364901441649427931712668488559652782546574246931058737121915406914258526803883142442212053984442001111556190252690046523072928406887791612094476650587324026271908530920842508984835859990090255729480056913937396210875819125537343692331624317871975928309583650073760281313689596590782314475199384042922793197934791541616020395418957235123130706104672362626532150772316507495396939193730199954594314074719567844424085161293563297603650281113533265041075024538352055409353830317592635134173289881891702407943466378877398937029200005250743287203114971215114566363529363896950537190515341601762090597736962735114168905894653427574945339501100378787916819663108423709015081559357409765072391262219723164600825973224551362511430377465047637231074132860331267952694668704622819608017708978781702860256193365962831138264321981829521015783417200459744535254355960621944380242866955793937394139108276584930345848460697027542674127574739546667790032281371374125292396088295951603613827061352236237222989878009717846740521919005257084042875026364569616635516319632809857959814129795257839377185097743322040931234414947455298729845543560036482522079148129795362435682105144675602244324665351662627850321781838995452448763840928711373753327722317897232827693152128553465193934905846948460298450461005229791562612594295762580359155889434366891696034533811925432428490305588977629163618660173290072226374170086770756292434295329461975808879850051843686766636941951948666804779438633774367792175072653818661086265179756099119386784559189134758416717186243537729696584223778317892073267475020144453290987836726201420863554130358053885589223053757506619026262955648758161539309443754952985068477871730995134418017435971679378990584014837955453541515422934858931762035680111373699577554700935273917778737535029503602975333310763009416446214891295571233884051609623351138948121526178383979950329686982071705051009056887393301868368832381818124638576975009887940351329139364339315648844251252420038034236746124747452261369037116629255636636933348733974960021639831253868188924243740291233707121432059632622843191288674905304239738596807837013702284082756388581504865665346563131352501596624353076924369607025238805095741896690637767460597831327512937237731960385682447094581253248881906213199195988067979241544541326334869086850832600848043192971059028421674511322706758063946961294705264455531838265431558706157486162634465176927262071528194905692122975089125784658745746382186179913667114923429315349268541851558519631268529094095508301826073209897881748594387413309533669194385990779037079487890345457208715258938031342520115235694508476606425943534804171213536567249741648210836770463732996097780686232513508596377020413477592123519882759909227472055461455210391494836757503736566421659825490921220018744421102495288575079655377872039489949749367298158615650893746923230539874587879854426656983515288070745602142084710769473172144271514171691687128248534052796400373202920674812031980287236399457142248562872817821694391639467705876331385499529333133151893028929942602189008657814214437633240416450536706751591094224589655063427142219688624992774412604495236595559885117401210594694087729661583335891787616272439905190781768834005512188636201910389786783360056436607610470652573863371089567211383377085248070932424691735846752591535083740387634666585749329209426906229820684647396114736672190633868752203703578525568036986033161299499329351002472178695528600023051592207835598112851189479231225219946103073312990602691660886617754505995942501473199085303157307046699077067017413681801868956001497148816575302708832935311707973486874530184248276289450329082395083465850985232771874581731766350321810906382300276945543665171867278064165200558195640977585209695096596194504320012858801960533266708926301633299220621409676836521331273515438641772264358682905496187534131596665289665617958092083869335272676579620122213387513773997000010433114469139723190322880459664999762616206515355332122239700987237689384283025553390502728201785716456824263302708100901317966197323581782154418839638299572392534909872791904138213492981645873179508169964117387889621702883993920561817971605405085574900754197937344822064891805240555098414229589941162119248990182600523504689061648003613195108685699496078184897873818104765026108447165408362862032292299123758757598652252964079383641111231605321678399640933796958139821137175196732260834241470629020638686037868336166364159073209250045844185697161719238268681145351433077324783601313954549526673349848208415712596415977068601699971835807583520321191717662125231584394529355126516070313492997667015041312913486848499609158801461175279505962157396572151808011136349068477222221118131726385947256086548040872237845285403248530323760950821088542061880933356139089949010165272682970774005758802698682179827191900486498896136628072349442074936696159844874193219048138547176205831586440398842888229050656647560108350043213894052468792196445351679351955349759116613522645578702660556905691376835963055983975124453392639066621400069397345245599265746158714117836878059813801892137140590637642759938463440732428535327427900887471053651510071778026985472434239997794120448300551406559218802341867525289511149264648665412604843840013089636399114482557735067148556090729038911691665357763407746824179578375415750408301528905291551995160048272176079176929994145244288979248016094581065579914810342437106308354437819152628330324768609673605000673825721858761865231944818616876285867135567621873052572689816096807033093798176221508756210299524371728160154885702661796476390948772741677248352849252576221233507220855253769497555829315594439891048426043357715797761579351130714965016500777861071655937831321805772512876976297029429106809865959636790607109355991560809774794762728319303741403200850619583490654577219132383362781744134946406900466136506311687718687068729983433973640552431738332115245650816331707071523705149664467529728868995504324371556016982098493800806479005435068452999512067511754294122220123218903680446283731453068895003666191672433404326096512266512408493138172399515779563926358499163919586632772727872380221417275880432772196458278749256603321846847025990911206698498181582584489630615028665288430078929070034616436762225189793432757023678925074660552744802169756327932314889299337619160621793257038339897993151037046873141057090478281986740994862496196420384931302134662957579469155253174086727603010470468387831272298132365767657709507372625050965444277282494719987563790691319599523905007779885899919953675194425525604934331188620249055034718519630950380448825258014509591142358087128782297050979872148149614424848313316467714991096920972385220880296914963204200328772615507422400278339950401431803648876811137618943402099539386457761927661828998554607891081302247069927463637079941598841582133700942860177509285028951756718787573013250552103751205944277656361873546179083850864741544734952568297767378436275449194944060858008668209480453011176671698486555674983071090029505508961591674601689015299840502325506983489072053627858335465412091518690188441710793580990927094923129084248665333463222630321660421693757697213087072620626568962886981521941643416628209544792716767022861916991911998601360928431241339530570310439064121224498773958943801713346741777357901528842273523292919008684652755234340642548645448441019316648422663907618906459807125656064451177549760298851984025659428095603070492659087829566368797796454275137891636738897909608773375652148012523449747225129186754134665193567818019669982083477304630110566209768387748493268681106752229968739005195425504030750856389284486002668637888258909151176119488042585195250903005000379424097713951853989646936518371467987994038571026264987423167760147532780234985436649114202594150040228078940653005708914059487844587058402934269800898979885351192765741812321509658027700509669248886375217802332967138240720424095448205319250550717932771002174537421381659858448668032964840216016438399995283634647967014182278255841183202289648577604391929234152432046180737180109707108309057447321419184080320338017437691760981570314621157325225520631353953307626515545643417890853272457549159845230497678651210719360077597041561837833448440201003845078081150322196724539220732558861735793211527018069356981512188588992810146713443591843516933825738814103086909692764678635656796223295593009557263049320790446354826653505825345888716316276323685707947942391715564673768804305838891784741049201950171555932625424034503548650398317655168538251430718016516325268714213277572264278712558633228149196228694640733778190738847265373762194560274968100669751459633606944694224315383792218684610714911682290425850197823378639747349953158824185336815844675392894500843011917783998967208093945492163519666121739243401261957359563031697393721175298144330212239826488507381848250565596889184688681256315871117186973531899566082704262450464619653976547365074746504370858959674528075260064974753997441192068698326679766001946433574348149302696863421905521797877124982208988574238625960856898228095198400045473116316781398261301734916190844513959338386848810647115492038835301065522130225277926425090383947368095090508492079425942632485057397652298928681277115860539538872792900684536649955039756361751953486233867899941264800901781801298899508847380424657952457832788792350966039005485965812097914930615647742528062605430442067978858562415780580343510911036301226710414821832645873165016223148253053122972819146782135015765296929313313681266163940859320553526896703908068643403353689405184190732991020716923577420190906620936853547297479577725076451474638111301446036714351280660732299348733813756508065067009213989074948601064034697143031645122520544375296042785057336509027220204185583137924778800029249610230715914490653528937485008339587104622208843684873682680458576389664288158832852459900462777895202532883194337702706639320008986206485861525820609087406967062799410453623819279923558522793998641510868799769682649555271492724756297075097456159940207417807366780565685394469377555027534528324975300761143343102013881313382991201569754141894848333362634341390012592564517488149890763729644774808002854453211777968845005759768384842976308398912351373060185655455410195195151728447915421381264753667131900042791759034268953289451625242030686587693018909011924291967442193180482004506448866815558945618670092907809812362545918740472033607791996981795787860734232546534283691859039615264296130455334808229282264724351964271552189432102985955379642691657621377841044516185025182440261145915646740799210151775084391182809268119945738038912323308635724060484985660956839220628801589765365412442501633744408985737367974948651735145638683743278575336609759789834562983883736820270177576874715615473893072053074946672928030587481454765633696682858736805371349126724932859288848021029819581562060406929599818238909584792655854356859461630723983840441111042315049864364434870434678791213957788794998762376882005482723720548502492287540182269824320639237887948393741648150564216908628862783633386182859608263677103269621187451859209126132968616597335260645611028839500304907439547039657896176631659324151738770210246355460883369379422704841122946111568961483162076636730912363678739676155004123897286318180572126062520167159882853668354072859998232698467995130843669182481534647017703963525007500147270366773808900302346695657451540660310808530694033126781480899688525125507045640555717490350869156495414939299846194484594542177716701532614590916854805823598040860161748764007929447576822268863847935045723499364319509941484362482791670315324390234653050990126129587894971171084658815924246046408004835562913889518777887490080641495406996830928508762562165231602685318807063203646754894988180114233585448594899315426687986912347304815340537365352953752796834773913350690547468634655127813548280088778311912241958186157463440595278304981954443923945955255349997006900289081510330952462187879778263267923718477899687446210672756703252727485154565842555154818730182481101863652590894961485810759217585678334359019167518167989807978970859312521306087677044038652496777119054385222259925091493168594591117584377940159737622800448726362275855100164651024664354797801980575714102198375633810262024342262450444578805412310238758624322728942939403216932358685730743209559226906823763420519198409273521477031347969339468902362813243753131932958646381797861494070915881438225913052196047337181075738359117661204058440717017951157747821934265079272106369928453893424358649595404297806581529376904989085992801990755115515676537317112298707718212301373499931762512799931123697730246793160886575373667208039306095012434297735815048447589740321552424424075025369726342838219750567282091410391267701001435947552783223464378017013322014596717685016058571613514821433027609338515866433495981034564727641653668507574642102186588978338828686975084958078368394089070770789530928233574246103816132251747023472521871809181640690720941442539578394503219626404750134372617433443954719278745915575561085080923063504618252900703308083416478387430593260170173306682523009302904588276228245051374856485844203264974176765087945079400270990526661576797487362294591290307429760054905375480219037805039912756958738753491197879176479500266609992720747059444823824666134859536552365585150208345224786894962506496884022580486519442446178072477673242200772516485273781309263108601774064196328481627953161668060031841501615119215950715695113369864660148555572320692410579809518386113250308456568958222117927430719708087924612271832126857797839427615083496826557433499107189352571636495705372956219914022550874636973905547252115818033811311463569519692008922607518859883094116874655613435512362778995008333173342946200721994269315048303032773595636049778060744837798561906639573435166359810278350302436550171975656020487788909470870999546105967769687918022729968766677460172233650620234164179089936994794569099503161933884668106692996416486636702926297464925412185613320819410117535735313475007730066156511857120846118422658259095597923832399160144267354801694608916354311844458441072030422217812669447306505802989802937629020489471217278932253536754340007694364132111376794233378923106657205354484500524210804362239164583679265385300173399294997742646098543490642755818170453749970887483698897805034302326760718775560493926349149065485053807424320458654851036237694362263800970132646215867232241523030389481857626938939083663660013684503774279922737397781602273235093539761834775725640614655037417007811825125255432787085558505712044706645117185977424885342851539775496178807763218994354195394044791552572800521884597176992907753135310764964167304477094815269223876749689353498570067673110349068997788359563275603459504651217708338061192786405206219311607408946268517124871815463983387461722394778215173977825133839831898954326907521677784261315467648625337761628991837780900534842255995789976579781447259153430336662499546463590639272395308911493144301491013585150048762927302856485498054729924883006825182046243331597818209670784032636758000162272866361782333276271281010999591135318864075794569944620377670734296348828911682266250530277634596819810495314030069024039607957152454477752491613063551078286015400484931903578893629276069667903704263914330306214397204599484150027851406822394621503564016776173056065066053030333968722110516203063015789901564077538827897458982799306372984636518714578952889437820317187004508032350509225010837480345301631153034468387406305010856805213095768936495334437227246672420856897468771793331681973766624742104860426544936162185754325996472227823569238055436582334187942766323274679345252921485216864968262560531384030950583290466900904703196697421137274019447265905850590901347075424512051362239448256849978987713640756286672008505276566778713803446005969637886703737784418487445712350835881107916231061209608084579808359600183381098270743427050137883504253011391425011154820894497116649161676129648564983247330239295898935531956697973469504977336325980458661594444867220592959133574936517270139227052972350513788288582862480687631451825384492919666396738408807328726093648632246318209363333148615140108592636285200735637954968790480530083413027916956883559114880178886944740897909948434519058293664645637988714330879977170698879565223257023982062314703951954047800343061616045774812755174023516273186964889238887829206814872890458735103615659807786741436142445304760407024810874790977337881302185576045412129815774995994136234076256763176284101627433511764155698771885663468620887874458409859560444599920892521175074477255286057635680959907288043863956575994124623297471952822341234185253981444969134952460391271590605048685973902270144844460452152864917243263660737495808315455516804617642115166335092661506019225922561156911775656626498256473647086911146184711552112290633918585857917555792539158416072780167995170940085447364805793700898327658261194216426623116125835049656667676637903766199756847560982188361510955462048476867500098463842168099112329557574461113823555474619993796070544564704124026058660452813863443836141691851929567904086043098218065398322000168742251319811426963741120004078023577755214739332536944874763670748783037873486525147822139772037911781931163024033951812466553244475627418039319986819740676448304777636230511640674444414189202581562066233118760363867894836640030934274225919729382660430632273866503737577419150042056049487847310626569409079440890841364872343082550686436707766520179456552027160600998606443402334666812575813153645266203934933490310153376259450497648531303027118496701620809191619882438024175547019688401651915432743027846092794182367560913924919361417818192625423350199714293508048446527441932173094649746185732928652668963431371116091436898922040539947117319872186592983217574176084354161157572453892027364451166935799923582473429073507561734744438510793748270382220959741535130120317609603748255330070594546450663719315121765080208995328032174938321048219298342677929879894306619482266456877254731390584171440539402900364372003615698531799782919447219371446796502330286171411593796181010445105625538580237308607375191437542577485320332747020252174073569911840241628086540179550960593709779638043630107826325784340731134415115683387526495567112655476953417848392229137090861297320283385745650730385146889027435177546295281876196986174345857008165983448733732317705465227236694833669136046822769181709662615654853363501594822501282017963841875830366159854608015173710603523646753777802283014770231830684728430857261847742697559251596835019552571670264361368931094519027715927003852521514702833517295597237197769643324339042216501986253187180466404910573388557625240028647746352381021883974566773853769712418906517607555806154504657779389249048910009699733675261435279634824898710638971905158372011348874310818220657667826544110754349465186953909045852196878179858472057583929330834763003492512460184772309159321645059978493709328647783167934133034584544118773939104172940020374949131868429345108190983129442642912542691191945837178872558416392427048356816464339886088058340325961631896248327067512804032220869061719685920499061099759586388730798737714142574323050857640050443099805673074284792166186258390991848027718995420802613757979914265769229086129170914368571114188118163185147220053700799864896875191866067434293956145661482992608670200318747137632500076074487651683946597160781326775582177879708250988190362593264872601621303439275273782761505755566247511805244567222456083223564143528664842268392560957133322985302775685519934604890602089170605672130609289318811855495233296412249738034365671546249451758126334115397099585712275333221908254309314663316723394306709961997767067614644930145917730340939739871059973028759405871793694862121112854514714194830152958440833007792643573637874727237123147714654064695685223974945617236015660389750080195091350245584384514756728241932275147286156273298665582228169259872579278110648478078603216240365887398575126267404630672315697812481101508381609521839048124446799085020347826839844074505039505230249539254139312474343897990839391281147716638592347145152327624101688529765426234190301666594322324200452851793448007304701872458377992310175987158885747847972442071998907264788410716844945018574380567446693484300248866569339990646132505847770686758523477596725654808589809113031897885916425169305737098553068377484335448973844993962306571829341449143896002025019795604135395750690759721390312861472511066813965016606327207716207340837382243989587187840411595727110612610239169753455390473540449996090117201232490247661936567946586908641785071065602790794989453792002866556481014849293138823967614519872559386448656644238191104828377060665266490466334925828084193750876313430268257650612220742836161613410302383606622576063334044146988317983314936117297791578848494366198790110818983819981856264176856014054003449077568770622249391727093592643836521608430866558248524710232922186878361230379152090813479833338153815405600312690159002374277387007184880930453580355267342463724016706198253623497657970824580568348202054457738565141075096335452452504584692639467214924710650446685386166022980349727656213687869009261224600825049016797345206792048011692146484615709665984335123600251200153046402951263634623488242963069738149999023854499100307410209794652116577397942726979300137562033453400886672470397931878787915105780854479383895734065543748479013545286384753142036582632343586088119978072367161359016706618411028474849639544438659627518667979138518050662190939243736033418434530118749988187849843672003343359267658378756271619573592295657897811903299103938488803618892330181353956662797699428552650138133408702323699157929646738942217023112747655778889236164708855470679859381225573282061802603711281013767911289731127732461507995535323254687810325484642130926246043591719971690874890823698163338863160282920363020336780644151067887746394662364312738463045548684740767010504926761775876445932097169161039296423081472632450942226006323394416819393067311160799559960742141033274552662126967584819627676268638107101856979504317193404942188376210114561302145892892786688069562885263152041958270979189314169952784523390955749945617818435883970096309795970190891323142280173116543321304949366318220959873574529209138718200154866770514463637850763666731483144004991459207889140158050762153252095682951636757487430510598884103754131862091756217291685095938680973584572009128043213277829040201208493455265580318849249856688320543790944108131777155376857000826669880735916775507979227411710927776979059397706660375192378021035962432122165585167569276883626468093387470195816063434175511805509411548510183961178812100945818583636673112671417825616876322170830665872235353211402383301932955122670474631134529073038212742878274006411652006472876093593235201284776895959642599121805723297729102994726825785291152991377629829586741965140201723677299490358808909966999961067821633715961136315922880566870372324343945819684209610621206662730018845633709864259606159434905478425463626127215327512144034498429299716961683892887908822603607529240787306381124257371083034745462512526606293495672066712725667000547709163089297724771450383468981081851298157750615982960217274470643839432134145595502665331464939723745216991315985800689507433380663281691637706686535165105318963165602871532712663996482211594207668441883851513332536378014737509757541412830680226076023034439376149861387474661711598640945929279344256442262052752429501734652666567203494405458759151987738794629216488740418792072549795955343559141626809638015538142348192496626609423301214612092268054146682753063875436812050164121630405145119230773073217586284742592084196465561816446306775960976407325173256304300071420919699896289988466819792121396688158206974702944331290039477710756379477510858249807542667906140301491368454578139896183908494987471759083946208595810332141711264943640240815887490569203840991670465990738481076409377450346714569771491126816021111260313974603010102773669035179206716009894153129965038847038682409221493413729913712691121907535589701931968005617572671867573746100934107890483586692802803331024857972960162544557248673256111758495957765831895638748880319669119034320669803945343671919357135263838981355969889142360695870317040548566392994421159131079120127364591843982940150054895157408729259198711786397398215215904036371703090819671599235074530915814948113134419338240780173562701133263274369901552711849888579150992605773474769288680632942129409105465253950127508313262459503213808272246789552716396757700381175046232233340634893614112160608630243762824945048883894831661778301521927750920937032975238327189105111603154707468530366817023297936265109312512684378659704403788400707949960917546313631837722196320559967503995238157353076216053423018035615915792632118710606422639018717841631430767731785048528713654938020656422319908356147847922470079078195805170992622900534990781822195187271262300030981986574362522231264272343108230037961224105090382162989802308864390781508762094606638867296664878948508955270503441893367164038016924524685647092785670418979348215195107917337963128708682554725235157601670027513208259821942002552023601579609230448227284166892920535039632871371899653897149060664668434566830336699994038870623684187293485514250828513714396932953239505018461593474675515315133313303093636035963572684667716658278424749530483147329897772892861722011437030186209212464121906937715612515798334916155478557402346783306904028016297236007022370878306387004573089624535055546260577956623799483560490082119074174264138553490719267776421460391359988384645126365857702588340914385831424070777643509555174037318579275261715468207516747482230688410821497122744699620733116218129140966489341731315554163288130045462305639409939351554115056373747149663870489626917485683107689303821882246855850316337236177357085449645344038210981298878894801960297023625965345468427451972560712826125763090950286281082477290614415896287027458676742459585916194419608207817107284136975516358324658576436825943508327541851842550649134630963304952094323770776718733055680975613350943980386182111319059386735039471186628088195422437079805303347597608947661225310616589401526935770905946562013332807943383612001750893584525989164040717665820410161894083464751452227244574799274315840295165737560279839237537891623514565082141719755434491594930819393015823355499523543139731024025968538366939005276989929410889156363059524745701343682058019908075819825262488383673838813355477340099555749136944867754675673736320842728083171838790157433709150544581321295412372965792835111317105587648261282109931806972489168611516079534689961643272480924494341331289187938454055171830187142253035767423566173490934116175794219775185796693903511246585994638627430611833357805730607134678531297949871780145972952960123680644006521699880374789750479344851814454248893422362895215707802254697203854912817165909988083793463114350343531679010781062296566617710934389650803661690716804349608375893103017543113985299351012512020710302686316194488005311162003975831870736234861321966423503959040616133572189057148363168023259020050507385895254014567047804394627637968002065608121817415024131448753690621680696706300740419783954356053629924398370433479032307112429647382672809163524967124806915566999666117353523222177766663219960744782115439410982863345618020393082594954963240902447206179789844105748029702636059883075785911849987889126728420906800887467471813511652381222770286551337054921426438046422260411703567398370181436968013530705103617436985676359293844577049395646709583087307529688989858677174976876828710300837656606805019653691894714781271559241407665887501299933754863450579047614354547577905539251154106600734911539232803661406399191479563880019028823390037188826672893333257546630444077064968513045939992866636971207716660043080062847650195304698253469868892281740667159135619128464602061484010376118167214745458327992010203391294826454620038841725472449290922141927054308858861245816380599350195426994113675399761831560735163842760269656106916762756127014156071465135263883046217842526656138704424826047743460452038742822865247024053508436499398268918560175974470413569558433973622251927592222190497621016183242292384408654236578356577460982652338552926990743751297635948556483281809012265477377524562470734823507155627648256495298901933377464418196384032873773262909194989975432876617455265603575486568344828567716702168201354619736499939370278428590234392602778142686991823722464437726302298235974069802477568904134066297029948348686527190939883899617523278556744043903755843285500107859261224410596086707195435345279679267296116248837601372542577447205649261755191600583337026379111663252297324371972907058561788514302990500167621874832012792481842216405529438281990783629422669027809905655433055904301653973203912616862353190857132095170097063430915770262397654319084717617534246564026386265843502780017710302391130408886992061633979474787705973343693501152873523459414683712818287247657630983892275377187540173393942158583797538568818013020594242119707199037749261388169522081011255603619195390861501038320523731788600867847181012299259544925379499535267775517510235390924749981544896064703513450598288730706892477609417360794852347674871106112835491601299209527845002287431757670491865681826694453493528168723049462810105345638038800441183171567599257847187749345969749328095093173071542237055146838237173411523991058592122988325413906599240803860297996640391122508272554644767612811320734585804992605516609157023225319178808137466912259686691190232538016318611114948904350282832915200069991096722014482274157380162955391677934984865463892559556159507884629764749187387158426458464319424005543446607279972310536971736846699980772317921917419771340388030606721930743716869259928201171432382934032187895996856780363354278162555928954159809003034815599888611490787384849606767416192057465044349335689858516714700816342410824296043559007161018652534355266106820824468546718324653740492937659408066326467252245973505896519474464422810373976402731696783523815321120841465778851625437226601993783810269210497651315576579065505676582768700834458197392217037535616402634093287200526356117303862807812074351925747882474728920736165555752740588132453633423708180943663127958997665910507008220704156592490694438697939617076738004535802087941813005476756366461518896586231653235868124631490431530618101458923679056657441889069988292767950968915042734556459991304458760294280406811505767966785528613993846181576400351333478363407985001852280308799949129739027851174986530629918887163730116174857219720718907652452978600864004423426340166698519715874413190316220909533202454314414780085927035003763209895813411798919718099806469247015573449256760535741149486587624856612594086535391922053584152259545242547151338105963567388848136532479856461735315962607486056988242314331084426655323828576500823378346504816806330512723346188311597173152505587727157145283980840015938189453040564617195520350494101016497859160101241815624398372444783925611705755455709473603440292201549846809734131167754221965606710075588403159252640625680073386996892558720264183566966022248277770029855328757549373501953824509858750049489987216146652178098310087324594230087435821930332477859210597139006904941344357134441012048942960441644513217874898544772069752568269675266037133857836412192073664355398767498264468693801903376427303264032682144515661157133348097824864375314307330827176653237749288547829631598120654189181495486109025522824291176485124623512745148195421224888290309158602884561569042371951745779658220685796553565287097661326128057848695056455236740320570543848251706267517267802937350807065678929259545599706880530296564565056429842507267831692842497964949108700716440454840396989016310372725428342009096581249099377517229862265953015881582472774012320913938841785085539024466543259720191344216315765268303217278380411545661420640450898739846836117218185297526412490222757517845910302886659793523792601370437572147722795366087642620991782479872908738358631712586512674696371008965212221588284771394991653219178362261757832159906710601320359106616505097589427470578301855169805972991630335350354180211749292236672343857945596698263988278951962505233631976493814809040829873584233309177771894101742088024679575177553396240057189760800856938034235150240310832587847662864509692433277253777563736713593262338566676598915517274799151891186531657336759479082527698039413132446529422572481675017916930171158053291958244594969651387985677582789481593052390078678250144319361626827784015255424839098906894122352562120913712356199053362726975598800166161735354193827250180136165677273335471082104972477420820340108901502929539299707494942510899519057085755112117804723237670289013838469806270683543364105201450623416159986285155752676334880339470931020960222531415935121798543330622783917544317996736503296105770489129345157798832537970391810538666657719389260485723884792404132630400574714950003367806976019137565770591896683271613560929960296516401796191879430322212918444767591492636819027369356120250876504093851495751149692732106511515885379789419327861685575113549408628556395240767862425077047546089155881926880230977706497226980424873766705080928572571090538448847952767615962320627232688263169437438745667659060982307794856493997208424902181033423252222107051105662022248255736950473220616690359818796213446702830548003753886056090359402900827040869260799319296675702783950483140047799012567101303338717417038601621973257412503298920129866773397829088041951132266717506269483729843275020219282304937900894431813755043684529422634969721823072890839356685896609980232161717556581812600109501787596637280874221574560599291570273234007597937344852622293612567732400728613206150835480200881509995624268314178539757349598709052583444368562864571268060474536299606882599587542622974484568062390726917939447768951370400087635164789871033011274436917392867108390510581071070766216405380903500513384339401097787385003744003954137680814258163419705482543798522787049667395119132269806250112614662442496915986884110622714652312768085533565154692251648289713040396294518709888912624118927025430455084263184901747751166322891466060926107332242657845734406901801703123226633233126396286330715258057098602133767309532363726555936164314740615834229042476940104942393066118160902464276906961516306123156836110076507515130232857828018028548439792344041613661140484518027800653373834636125549765121665048999919236312149035371492239440697844424174748949946136985132027670753159371233847545162685019190119305568520166560912201987322378256416470388526960960322204128713327957378537330471305299641057320058944437866871220520604833459922940341482454259216450746529419105948603098644475604579235173132849760698992108561593760668160550618352841693335774139352473503649544102548851790212455765052413812398772229227034134302701324794934792513824960721010428330075245030547711133116311544667131419618006878018395459723477744898715256023101389927725456565150272483107143669449747191422944878363138586688982147508187524086577685423978325554835873687120917876310309124846998181641684553523784712636645300000881195798538125407122517254549540432970502127988154285833564254416606033306823530326084937318403624483009109216567975900825857248522610816649447079728131229523151159986668028814791090924174472277639829685098014961308145955579780800274832178138554973268419498192883999005296704229263044557664429893053889081616660331842536613387436815591076589683219097124971001647495902886010992938971831422717495740192790747684897808827391853098999038570783540576272131090914436586227383664824927620543011836022649628267719073240961058365930449185098190378322066921920101725690210973887082581638822938399264086767645341980568145161963228152627407365190638124784840183287955240632936463090233793754484753600397920078870968886175750888268222311810072001056388041609189268733281403647946417285319515306589291455456271314447633035474366754305678628805900466499883343929592831172479000899418730702359182058087378575599886242254555286233579431966452419666737935853942854761401347818975516615729148786358089660896485150930181257168927595899891854350449216036815955317471473170774997325605828092645650648705535040440359313972128390556206710351973927694469403373968958265373613176037086593436909441802147227608201446189923081335318494976536635632798278541572270043819188135689833676605377585008418021089524167337375086188432616394008656766617170183032211428166163980949598059103201263809769757956440921121374504152886218096789952145229376365263809414700554215252450222455529350418832164216467389849195073626518841125673426338442093359400886374607593404429415597638623883109593661568718023389559770847691074092481546815362816266535959761759789895662335459828134494420144216629603775377882246088813024408687864502600951570930585704771203121966067710634977021712797180944637871839432212285174100975023789403417053146537721222651741392300588789404775345648296786095199121733908137711946933813378968973600628613906420245856895261858409420167633199091611816560848221817457796824816902678110770670021872827331036301391547986248549701551762853635100691097474544030622591544023264157656327326492693721117442099675400885609565013298117084568832925359388785449891632667516526264401755226850074931826374441741455690989426381048896301229348826851534227732850492649989044481219835702925991645070215144781761142345621479251932407205619341997733688469399942229961670540045078083233939235104198714123332163664350964334429051276014641698543481499280781626587135961957428891585984976270855546991970188162148164919925453675761669265138472989592302524851472969976356955193925992138274991638814515766158379636786503920926184284148099841446437871614486406789461412482535045778101599506062451602024408135756616397870980147153797928160076815961175751999611006245990543413922517873498690711758095124624646869699189792842521309999763758699689299125632053858712984130376499059106473185081787379301842324314869952097577864392014141676599742066421881279839277199890718694484283278271357161531197502436973597005499138006592491039803069592397215204925300625203717179471677724642650890596647044037707082628750003525585709466420666756672587302856024560721771595530786291488755921511966941861947030061418908461191185119371572993231028978596056890971806914869584530972587890327648286189603012597608679204697390604724761624137292578208412713775491867241192112251733738546620901528794271522135742527280066876123369878137545401751004648003017049703695671941400213459608936185117468374197557800999752277843278918122922374060763202489144716839737775968856056042263116139918985603718429481156724224490851620827454223750291579268994516241930242006468425065539525857528768331968053222349676398858947463041039048083921114031844264034477478218613272503840663974437897266824329083008163521148255840564315715748255872120671609806017522198870915576758596444427549314693129901523385898391596642407517773822074188867952811415923367039136058739857738047050012285632080259224733589305675297513002896184309790725145701873113357314120764654577114429917562744921677121464925267024275209912860442371499691265305775868254455580489835803179870810882968131887532462142740794359795085339736888850638253087127063744942713497523679246062308506423277484307955748347189213913055321691204989867554090166271125179064532300728330487678902817566305059043869299060154576019382077452751968470011643237496645441427270815317110247686740931578404669530985316972384410243902978060630519672085816142309303632811881785299773523902408328644993595392376360767070086058987447221062905399588688311349516703597685836881955900362368930208278518071547025972994404253402009354733091288826553055317670722080688593859495720228239283601203310906727117010381834206582698322781769419064644190280427954131534098599016560591062493445858683884472730407688238906807515064496343083683788845109397773928785664946681753617752632464946270651099848906442488672184340672379401582475710402029817075399848111203893003006518799230736591265058296585840306142382907274188815269546138990461188801506690325727379565667666240554145623967752008665700979275822859909690565955249054475067579942422865493831234973490847983117443367432877258950693619133868634249884942522303625132034375984309684286467170991201488630669089816940996793396098892149741513909692167325248578643292341868117505186041396817519297975513231361030504394170416575723472055750622253126987385461755748436938837479345144491313181146469056423022318978950503398116129167100053431161282102698590239998887503619320550966581756408814106896162193427231458943719993494246009896384254612516442003623898255376720786022325748660946324064106253291099601917903124517249227330149151622274157861812468504133423385231476525238919336624548757486970731854623451089215265054223420572482445556836230193598828020746432009007488774761562888577494738841598326409429559723269377191961766131331047504903022853371782827009662276726112363588110406698012873131472828809746363032048898022041236506517494023929319953762365753660628508376736411519183452057140000986127576817787053500578525906365621552048594551780180892137330584974266377034141675413596855516356175016012520234365958061323923176097979921610306926841379444823788421147848578144871529409261277229034262418810043880347882818453295991768412807814074923969663996426453475045222719128071511523348188537143941575927064254396126067715180110063490693045131686692187790774079388540746985764358861371040556044152291582546313335221722074899072323060424758265337609490665197733942243564342956047317490449955194081123980388913192883867077136336221245073258171797206761439378651771119018480127539898734053226356638151749222545846141097962601106471172866108951123836502909575934786969010776742231071880770035718450971290667805721883532972835266790981936327076064729886914055292753289865201068701570568157359579806284562896344760421354525947495441479752006330177777868321835569167272420687483377815168688174188035086029872347061091009867435178212713675859797650070923484911846579069805630157325270718950982249420585377975176228333021671842755945901993663121449844054209765336140782265956310480586187806998326142000978931597088660118292908297695894272533717027777844128621097078390755147375763241335625960919809599495741571641193614454251800053479501652361555992572953828089037068159153069657997953930320670892088735900791299697286979572315140483379216812846925374713046051654489901814499389415164208803792762606198828479034590397466734196998678334103273063718208532691473141962336638911573352378221720555686542686582443231039159594318072118144483138505066331374563122706471345078139289861554877531353845239795114628975135271071752317097219319275134731728238156264117348567242346637107830669672668427158658419940567853746871726667528150325649577948760143197933305186595159252896847506497725473029949357938800630077699465502390255136294977447822415875665593166953739676660373059007632698243668038080126440606133402995544294020473366361515926331646732681402987854488890583515604007371978776299875359178820620965642697558789219997155166005906175253263254887486191305779598731091069632592409660353014275065270650164678358644715130474330764941417666061058773563958615964816470735459204287459919941736223452748364371676691102357977953347515179631284665963063204401208989746287217784578000681643078619879790059234250197371764004994044894750537619578124951266690284760891024601238697308467128250777108339375442291422743235321688804471772676817281955761576005423289419389415985769181032659868921480705503986414421255983544216246943639198214992956075505311306439767934179900268246610469569419706736293253667618729061640655501148792327384643841146829639515768324989062475052862916125306381872267848867917602990505136838774802771379278761955265928046522467410929983885399561284237807257062138570238255286811508875370044648497880866944733945274886942983414284028265436353995728836647492208247334355697782528523668747120671487524452988270725143856885140114130061034730734144466185689228743966777915699167782560045962290210210651410369300976628747971710664719510278898420261414768768751520058834259255600166657435351182059293180838945925728552996634826064676595845132836004827703606750929785344396417139068329558355390936649737618736232190860869111040114404803204273846667132337743460490488785073566164648767250224663897664930660624111643127752659655170903745721215214404850875853711901030301300760896455825849481379663660323452606441948337888635620110124289297733957345807351806466259876100927345897386222605603592254801193244701049459723008418463349975047653217136731752187304179595971965304190065035008173437498469023651602727696770926758065785626794780797320495168154044070749352798810320580038827107346717377513498501664368960717750967748065606160814788232501742469059970888222752963182868933809206376694063538658770398586654705964022904764468869667039312781960810991448417417103095519190718602473019571425931421927624299175915249314435149303316270925827150120347624979358349365348509640836221658682423018648179451367032939786581310884333711673374166818156461248849023664623772529558320666511633384759210310246782818327085640426550675412918968564065215517334984984561373097984342099667103993144970321562163561473202055257960093687030394123337786261506752488621672118400654568999284998830794683542705686372727265345443024242082471810627096510470921320762622374669071753942838669346418990768393484183283352527976295088377726953864290454377209118990615140964986160504314881605862216186176628906698579183514045027475785323916604766567699769209846302087764792531902988064476214235293424259940292247464797407261166393192376536476589478268773079278028093424348273375829183588991309237541558956559514332657191026614710465192524545827505406245931379329026122794756354229229179376444491120699002335676538246084405703457445205914527092630988531399922175981765006999628889568540513605968710473911292236737379891241037389970294987662303908433432132554794528953970157284963210678535876983172009813618686458489523728440442983591553718327095284995909127393628205857864270273772091946802342180269592473677519813507483074640119958753723950191742236867225830174692611563213145650729784621025336305819413664737660564436144402037737588118579890732255605452921245264531168360247781282243032922907420440306249729597209659199285116685190098552975827805851368622092178443690508045581996920565449450637702078126456168408272319564570708935466602110787654203842203661126165577345786756272124625374098748449524515621428710141831660654763891433487476209084633907085676490761539816592024272005601612651279562115791143597155627877563169435475176694360571837173236147002383437072022751230218407853722675982264641452280209532209772756828101326432902415552061576935724397601572583614181407121448947073253146095379106597381505493096213446368312949834266605459967484873009002922898811584752353027552193557182417105491701015764647827813547862497768920131421081265310489968141406509694730554008829626607344608162129424280650923987565799619730019704268049620449622264832096089114113973028445199569220911567524157129230721756713586182400360313535396979829688187781449515321569293738548486306869296536706939491894396995112928215949002768269565977469603950122889067556524131301166268890568526401054822671786965065915007436010660522448324799209223617162428456875080582135351427691708444710792670617875083617554035172473990850823678349818603551095131459856301723533527151353947652329449878486407904220222034323607178071829564053480292092834705635967310309784493346732546766709121681904407869112560539317595387410839249960460334627398837127297450934884581559349632768594632328279754403009586108151586311330923847348897963700008199755463047710279570338248082653525188341638088671318007325449864563092901602331148980540114600182696408482761188878358469655797098072527772374024556176807305010725605884753176374997255358941087639953037547883290275125588016645476138673882825376550323951377749686708534066486660442931659398066825196711436765300259952315211964492412472578534975030139411370200319279122897549279214149375247229567287783293624565120428160696366544707547273107154584936124431455391193531570790034294605460241455887448528689142947092282670166272210877588555964450897566209479535105492952377500544705601509385009648408430130968283436425911483572260628089315206081933760116153894085650343672794547279618858388527321427952448775145464929456476594853715481758557288744256354622464984307147216064768341665313949180897733981248348649324779143214210200537398516889674650815762988113406343401186829139160845187823837284683932733056849784823752824055461115742147301313031163015409991726729859042983883872720370486271527735311211056149951941020276195474880190908369544390480886004992956359965450564323813952343032610414373161676957437064929863262128876839578685994426468338552633836786790177748341653735121944757688413820218959313219186296213819169172519625608045653640704807987447698445806042268545932869423182111696402975471628296409400207301282621733054378157635117440337183338730936934083200466271584146641173981325915639083504082558927048049370813570091841463666551428513436909984273313650426117978391123994016699234932792909276145491352322020859976969140489969133249807485476621450824180265641465998165310422881951393047581168160512031405110166847798202874241521713685187935497241335021665109288652305976250047321413583026846254559846471239133766307066897048935890865757079722635679491924501198233636485108270779483647151468616311159111510747895496966735549470297318553417968011965836168370707364358930528109083288854486660117706710872542646707128963002941226008539877570716274666939926490203552924934718705699870793262404528297684405501000736103364232833305178987175508521978942778042481167396768588575288825100369914082545760207677611681340229621171172939422197736185551441942973839826887035516457106274050288132365259268354662170755629731410495459267061615458323498153170219072278473742400221476107006332873342650172023884062207085258687439151312776741801485114410516137314370030874127164197332939827618429310815859219058992672567698032691699047172685256785768304459859221149820956213301659666272958829621320404318620083210507154132713958238644942872093193180876772919935903554411244563114452450441542084013653656594093761631030018028645384069996596460021519479953829207757468848268991523252771007785818452487663889784085214518481351224609282450540617887728379047365334918179730268207356648475976327294061919260722759942471916042883950333689604600304995809368881418078422854911858860702977559277715471684021043961447983789765093198883375027833934888959737843941748672241931318925610598273733447881721033093035097523457642393799915898316395860260277537460350519249201123226435655313445295208342229136266304889454935729139004671248570773269705706164362646834344071418435958185096865174387361249691576065923942407428420259389220698277461643974365816861777987583801418195195220403067785365999371651670330460596766310402252182590006818834152623671553830427066859534175883844283568693755021336883553533694185072998609957918727235120172571751916721722963330028742756016653544846796312020581258551618645935306453617480927823780138608859408187887875490252470402649428274150879667704491504192080142768884229642754317771048360419101897638672554456305910283117291370360107238097046117754378789792870083284424782553788217466770280476548689901510663641449102047964353174295292727191274601976523839105807696502212777911062718088420838652073765754740466288258021803928642461927053840433209197018301327621830295538343853385551879429850951399741454852881870447444995065825473991796441847096849263773401658735264437348627794315918879422161570155819851664581569065089618897794158425111402346354626010966998278853411835940034313617338194299871103497586054413343090287593657659426704785742990961432978387387276825857906854167707911228259220691433016252112476124145115867702551366784715180009738779205127096302187344841495006742255599350590191905391940557260884930919990875358137038587213184814538303171309695151881328917039363256743697588709154413577192045244698875536792222700579571294686570671158988215156794485515930649322044800248721135876073665284348842665326795645280557035707873633070038827348010034763480774416856090983145413363791159106807060075968304354816200742358048175031585075784351071984864113136368751405081150569726157375574270128711953098028861888382463907110226678018617479772569536528727887899574549026409507254400930463104060978191450793867182304078759071398069009980380668715557364554644588941831457558411213255542725085302616465116166620276357427878262959407090819409300550463731759175121575867366086764089121079916780152524767308476193809414354484715741172124466650496964473437081030492203824717123821109064395150619427842596971094580223271499874084590043001352536263696647671826911002607074335571238781036426330880191942005960668551606790395333613190594766972205098043769369933508528507317315446153121563398622718086117992602993753243293632286813364575754914521861830637469340691507783383706294178727884542734609092253382166574165591905584083118374552458408271347665929781842242613388297458693887586080746402228005494132601947466759208177178781671910757073023573303645725719653937461458301682032719730209332744721807047826399309749923496357727645665225889522544947700013516915911419059372843348247263131931928325907783507213964053339217398028851155437110400274859532190568725870856011471856321863518147374853025295336965920314281932786402819378988861774574631247110426562548256290062098776871362720794748988510934547174763134939773910731287426871344896781620748641146148079011055036425259871168905958726212455991337281497197489587875565888047536738270658299798937507522195119875119524633066441196061772221700688687466125873081739357463108541649414142522925340261951753498693119681916108998261145467276289417019089910426344977437684128629474898848224573428546091757820946116827854457226597883478706185192879304673513736719072286644394681769302584504123319268129749907154082347102571613682846695463937474163677200324948454468449174810419841904496674299446777752501078141924816794082097688822840221106130892157240587965950843292941133177769519858041756744935142244861620642161914710579680109724792366120281906767167005435584346930822700108358039940657724950023792802762489512669716245836643065859699729676852644168813047506426824905089075975459282254197936435787502971116777417109114783481302366343827917240323029407602064353177591643567319971436801162127223433044952791761710321775002152697847491928766937743629613181826109432290222754390134245234151168373496488471155193859218333055460202370169904649100687754323062816189395195009271984519440517545954714445934227091542017404453835638951879228625508927090881960053294106889250148712249941063616403030711797772161690852706012144276283122175282256180990716402262623585386497709236976490495554444986616136124639738955370464216458637870344645271060232722954393295918829934108470284990466110382100696352729860428419116721810236034035536884283005563447159283582049665804765648155868187041300823053962428267129400465960980770494509734778235920466387440381771935034389929204636672518237148240464325733341473341801631851965636326531126227061661598731818195302737402402494117820681386463617883907377420964361224879596539647242442685684919872215658267757961335326174402205477218772856952138935142896202291242277872395805883628331161791305072846260786990236627869594140048629950491164874270392881304571090321243349608680292137615985132760058469395333942212745146975878693375542748862946285234737144059428268303824882283854711499543102001686703444439381823897108846602234865036970702499340268590979632815398042882335214316955229192998365704438784234736426927865772026843554059481537315919516571630048268059931832198364248066557863289513458965288811976199631995295432376009647100745549163676034035487136305469664227535878393823649199299368177373198425966537645382909923456261780018954362363744783704762082493130879054802673884150310449559195453164263677817687380098333972148984406526018347302876232639172640751973356784322015128383107639853869680427081456352243141143845866867413459048901334568882405432478119169727208994233211482407658712352867625713706883927893472211704511410609531520468981467199219399201305558501632117498537982505565555311859165836177886556771214533096116685541758248552123724509080066058315327971089396379960954868806892672777034032686325161422373314788483181958657276950436743880506470548593449020439390785740086078078008549415136028243135368534712828101053473049698913048330251179001436297702977509872835005636912215524022229680816997174676888157207325725426277397853993278192256430674906540193672541306866499783758457917647669492299416989399046822486719651600005744982965831852851884149888747914681663601885142872631615456373880989940070071186421450463074236670251335033826469110866017710226996919559263164259238185348651203233927902570342477664059650047012718423129999693688725610219581805740909854981257556789670671910526429181008338897389817598331820323567359522552581408915590888160255037256402793470870740825394854238946196866003439431188450135550774802830019856276759617687777864431139823123017637407337791547086966866450062384109898363291410646401811344517359851897908825410581284283410063802493083327872801775475381389664432286267549852497437575092712938111862621389345615986694549952268407835653218983703550378854286614950419247354502216148547657201751485362070580161751775454771550380413028594557420627960932781117702021328818916621975407621921540452233336054983898679423723206956567267485165649515707683182538467039916853749243225957014036070351248012257075003302905432547562356809402402899592039241544239862043104736134036242356055102130144074514159890863444722373833268430811820428647634450920696338332758783839528267315359990582593607119231817283794922045086680382261461432853721777442348103662755529367893450443318662885407460592245542721601725615787577528905116885097479625595530828017184340807600231663762103812560626562549712796772959888627736296866067795437323806744148050049445978465271223759824119912945680406372290609760973517144200911620916096795594748878261483880167486175997178342775989966114902969681555735419849535437277700467362759394998866388557734769188573681239347098229790856748784238592487895134619645090490077677328369056928963110951268090112042131717312517499489858515419921305781080486409631009448333998867039603338023267782869938015864553724377019738337460696979971834636146453006765584417268498393848211217360610450908991846624418182046763719738710745649656245219662818363426293093089135878540248242706598791990668509328684822793290548254790169433853912523432481898243252814339363047072598206540326871527428572975635303741136685545766979991445460809187438151102410437744811882256129965232246176581197321588430222211699001939048368238844715563135081964416033748609052464008004422447091051750246420601439209673667388369796040175529175951036660622417641359439918681154062148835847680586590162739106732406574436973828657649833579562103216333438600876216105658569365397883177843757886854285067043693862717513279857532845990991256299431908426227198255635759918290029605134549590868941385555593781386179876385176934278062499728219752534136645108278480482718297824575582757917074452200311160190059551021218562887160709582300430833827213967531488668368909474095507891396069767567223555788723787589419627395680529616935235570021627080688698673414837402578796279451262637752471869967213926505827776222993054287685107717091411965367283006651825878214531801961243359676441546389049321294194101979796516442523614696691904193456542863324801854232795917034504364717649237850333660123476354031741844873109121124322342082338101021702107546910351227764207244693395267425042202033000305450998626877948884571403064420840226947960089634728151290634555934650916980142091490139240988797493500933393415498100800926480067358196165927192739901780645307259281671018938368088599114616741868871852794412827382995114353589908478242402295638075431161301727963820365049537870496299506672390800643470745929087388159694056814149613464480550644104671983817609791142720518109791936779084457548237603245751379219117898165117543871513844719493311105100054522671722026920739355847273948646697360632282271623189537011192854763294305698340436793514127413379993589908288006081658973986604679859886180198464253160660588243530301278731400022530464179520410319729005164807655478177988619596788943338189721974190499152442843246283004525427094236192097946611508928540326078442023340916857564009253717313327938751484056908085259563562494076261096495167819855191120626522941951230167901625380005328531115605216500646679185748524164449337617499492934888422917746430409802442451534152038338325223244552493973090890145659908837919226467973574619951011583215342748678648663556252912049807257584709042859005383806282515014552730727770957198005887492833119435845813700968037095678902413724579744518791307149736010736923472112533960019906759295511971364506210350934761795426758543725304521524350327859576883423117548240576147274028877876975435182430983725324961378200637109520132655958693881945752208213966821801817828605759433173047259692473236282442321709333109328387240560897220718197278733055723187626055453015779864533278047859480307456375983571850862376639720818344080234745172577753989592893247507999159867424510627603008638665695005020343228265668700149206628390681469054510387221532939147823822545962756547696305925205607923010513905151830247648415058910134699301809956229954774840609344982446072523407254970344367476059959493181812747676554238239997898919523076847614973718405885198401495161694108743175652380009729447373756542958287927910127552298726164356923813135962255338103181533651828864222322655479764499427046532365172040772088409873181038789577816249003355838735657211756686801458879713951404827473489344722870545183907686071445493630108694813707562521538194107090202479085837013609881879806850236510926171721856132796263695823657995022419754250649322162901951518580898201036873552193689770946739766138086946283112734076059482181743011568710829994861109969371328739221439902742955945460548069144275513870538091883444169700167535961891779029565982613226438432649626334228055228231369230291193952295181101897691551019025112677837185550909519519490753899217061630144350103860832104029997266473880483189305643597158323088097045658118227848148970744732230948998837619634953149714696017644741669999552517634802241036275336317726380945739546957681131229722179941446159383582887165196885250896301156220436670039405019574761242859776759265594151170521558727172994355320752897990918627219295721484077226415102036085659691065154272981826572021460643240251366674317682757954082730221576303558903515451257947822588979095678030148526978608442933140197623218191345349627419848388043816434628302511164952757438428751287517243616366340503223957174755881844009503048190687199466965086544147776645423131732935780938149604824921896220152927962600362058053991718787658936890758015207633391541466005906533958278780988777982722735640859517646635036108583130416020196649167745985383829468767671520249550502803173252794572257844524513323092693394507422568904586292103855262777391162676964500924953307507234862506507178076592182917642419707102893980891960840084590056050093698648388439908354737477784484466260255581928002027293165240546823790880126991990468222959807437296154211665412090327837201190403214606240676219848551065785984575860917823909274873943703582750258069926187679675408390524783992835506893767655501670125667014194287038063302909272988041409457643590904874486201100433404124011335415379700809345136111053222442647309532559672724985965487747935856835222507703115659729688799478196016909341539194752924362836165239980620341557475790867116905466974616375388452159280416145506071382021617568439631109098266494154385276375169624642813601215160090175779054988181673469106631243986844758079878375339719022787257708416474982785460609845666874407721088428803105572667233686842283144318205649474379007423293032605893512840169741873015325176468579149657851101392233879489523488733697192325588264896343921089151733554357429553909072638360601107370057982348964735164735919561888220143144469656074058305381750881629296825829522818232931318997665536610974440716583770578874405394036413544673092125521176876596403683012415061595160154865010786133795566862974872621077264003639737027665872740354942482811294303748822825663374042659642213585905815953086512283304261194170408783245875208083768905193876347501673288014976754352765400325382756639663953798602521727277802849107470028101079752988357749291388886069738125609385483299361194017580374204660157779692695289491363533873776044206915707432798075953447989745229083015055940629472916101139928206786790342675319469456825181525475286598639143547148877082066053921559715380965721349271534506729533054753414976770521884920248455340635291629600974125895554061606155487267004056353161898433848016040806990597642283198197167133471590966599716271879131786811274446095863628695051320727778210345876420734284741888245054646718456008929715953239183630500702385213144588009076151588892542911044586574318765981367363452314946408383793622016980856477426160893919836783677272854531424473343429859424697892040461264187116217113357504689795604736903203012302301923815408802026970735872249846440398816443222887842825592546152994912385812557031196943453578615694300004068105091099041364408815599877223458925174388449206363635614258615022171015042511697035312665291139386784071792715792645922377134478583798740646457321559350173054050147688884816106537719944880333305995814929683057784727625336949192194436318844080594696728791907498298541337806984609308764905273167144998297318558127970038102463129532156306833722174000501841224359913591425058135624235874146180479993507550507148596168497370826558554641708780145886058938479385608883546190101407469229864355359474548396463323587305339463465955240033666366976320072095592600989219696268259558402644049536493712353824023280683984470802845557573996595047733778329805750667184275698425334382938119345169748946215557274346473317528693667790501205294512462328730917660495222745707860825549453455361303663163147488141020861146883073997992872340865694151366574608030638705874565592444189963628075245820226820591829047702693928569133571391324056773751598279133323339833034822029994003765208627551256217780631499457731224593588838536273782059948747202396440952741158212604529569934678550062222896743156598804902568122211546561656782269588008201954930404240839199158577993074500113756357540736077733658351566124688765242081669735292341731292484117282296930288144457515786713501938043760425305541229472738103110412628868458954694263755633648486025786439714932224503851223379074284532129398483715174872429663510399458268702384155098341285930523899919446686280611599458005463600541420113643955229367267546860761646283045599613174516641113445430462131193362813284914014071287775845550542217273171823507850656871538541578932209462338034196858297334686288256053006624273526435070797559726942872891832262097253166995827095164122555605862181322040020366993960460069238909054102905938699377306181476155671552424072493028616868620217899916046395727177429672704936568933699116655993732963726940835201559549122259773038711945865517309139600223403875960822676622051698952473466378704995182672620321059337321859193928441322996732199719000741605455052222347002333565891165467552272796881891208656225958250143120245920245022764121105787290810337030193957673669275269657560416833886712148299360720988344812093578294777397294327786405534006802503383869144303628422302834201733904803401872536764046905385264504327791117705891904708964240800907553824346635455002732119978348718863405973070493635448317768576712217226860674001609971980626433227097273338453841856115320809889739327981282730236875044830110533780924147665752940841911657495328618220973582820465915181608119530813378580998710169173297395290540709876061860334958754956291547705034838513608864749947610958110886731392995087099906132417715380348749680726869270156276122215648525239750055552165184665027504558956025139841242924012693487075199394624954676972911385727327142639436144606827910947136339577322309658605445711635046446839951521675436145276623677963003955411590579271043161658017462072658157418212041179474087037161111782777030056664111364566164709499207408891155047522833364587733533214052636605489607781778219246946000134930074489869217453362080610926795940130796006038957325914281985137697745156035521096288142572919642744588572339025495231426162730001755696177651959052539988517178408800576755565085985488234279022843290674383058233128426646294847139512373660024596034472473062506812141869264774638177221668867880279121477327031070195343720559356882569633944552164403716501418056021474305439637907119778701758266028599768470984085679951351405048391703724883437703721648150886442913127475108146869799399253278432680792293201227978015615977151309610014214803589061829577339579666111423566744667854189939504841416931655285538495473211201885066655460957102296122613334721799164795864092822512347504339744588326447190584773761804772690960795290682452389146088995950138487668733559933058419977844067849111242330900301242506895344760413102830934955757843083843085392992009805950728444739220072623972475927495442293495880156671115332685636795925318264487197894615726793115872089306193927093676114503256069359696085285497330714714484570840006009810852891385250633815852910933076157227768591114501095521572156783275768007226014535285546371393957682947235446277284194956411353365124293443217858997538250616259298858973134629585729370189767085818411743889342913608825621931594817236106411541029182731370863275073841927009340722842363764129929416151669263367899051412140721122731930977861424258638915252606326253393857886815450604431896792615036136378941320967885398026579135235311579521277334475537469972194125273351023688804512466475768165838712630547925873761803352975142104023294497109705813037927455856351891391219105304652868455334885229154175654484926110014800991346137124131085811197237930017040608964177308354373451578477527808100256430736934038142853774150920189352427540759107870450382277237158725436370968478264490643291057623109929556289651519206425102778806854358052744758488080703940741311793971876561366407161444608013499090558047909985076378083950198124932216635007955126485112374977279937204438895687072450920424663611836693979741702464350590303314255577553059772718869332628844346254498193213347033056778834031235494885812956173050538029087725188234632146563393995373975260696598922658186507413529400412113117484997620662500805157865388075623980371196766416803345654197538225492921891906157991804758901164684950701292722037964685132607916883734843333864425574992254901375627510757174530516944007986716664726959456898464256212625684103421982130334652568276880831388697306338436672463741107900141401700028645574762742046714736714789496649887710194926819519658600981017074697885740844305088726656814499759460693995826756897443067253290662593079433346647502376918079562920655893832448762484894218161247203440023989088226944527687297275824261298059513030534815630649473089236032137505618053495379255076222810458679664207798502752517677956820943899903828404904743099699861329569639335080932236080792008613107008919640847345514518047148992984717260333722196098485596346163140373628890289936516428462145117069453470951776141870636984524333730255696291948981380152297136944288553359179996729046068267120163047845491750266888050342676557766540164863726777839783114861142763687659423270000670558613416138173835451509092447537711241634149188009663170010824988831229163422589446474355019704530018033032669324669799744063305933850395277558338784385874413298498080483049930878470539563362105364628779934886400095131185519613633696555902226957778341325335118137994787374338839172690287257176877995876246654291498265179977744057593576750427990844546723257954884304511157108288883629157041968169779937212399666302033151713239860267194612289036709772408869156292012769067129561664516349916012943067406822404032228030175364719824427465577441880252776799875595563199782133068189957242888007143025498932524715681998691630932998010336721475568963626202028544426618369460118001023438694652157327318396109842819609797678420117879329266053311262960557794011275737823663526989685210668541775564594611958067886424054867412162664594882013456658328230296385575716106850854274218006927684058176491996948599993501028719704753750996835228917364330931882627317896291129247984934638143473424755448441704091794821801847371784923942812484158961664197593052490069143044663672732651866612281300193701283802226046505904219534007143967221805048933094794855021753728941617019205968605922246087163657481341251911301338964373938552807033254161988708832472476747688059926403231627467701565260664063318056936258542881321571252604179002631335374684681085087416974499088295417973495942759771969909400106005817928881469002395159812132887010605538699822900761877133085132557641326944784410829123620734633343268358000756291022781277963871950116447890161905815575308486190839181421374200994918028784415382859792311254077385575915570021831014041717269333497219261762706025288887258873488679696689420887419860605477454816501725204011169662397112190988767418924054602977154650101893279819416784905227345511954932350776560985752948009191884273578093893392687234287670570415115619716250617164314206284559396749256872821404492712177101290410235222580686426457595925088426224517171726428389400216398493235296048083716539821545454049477729359280551015565012390213833190150665568994775702658258922253875581960101949864671936354124505724919181909287176398769850718008531325723846670218160518126940038811638991255596656018332933775212440049537983331361894867361434332759335448845044349165243522723883862569521313223527401228785981812732974763979237289740429386035443927674649376300647398024967406872967402426001894355585229499918234352339518325283701465440967883541416564997255047398647193875008342540281553233741231549408436989197737429078943810659804329369137328971382368040027942890259153811063713810751006859233268442255947640661018867739611630294834646985990661409662817564382633484210807585614029753858768729950258962786414900982061583161168690356575063688803799657451883231131820678147157546114746281929629104966917272826272040608842918042531929699603239278425378503935105025294743508374796692807725556821968160854923068079430369116343947067406402222023403881277797105356099369441403578390436889880122916069466201389439224030226260752783588728040458600424490965338261855908683842533468046183443988806243330971453982113878255865413926698038113804339098325804381751169380152148894041660642317276791498602955481019968079866672813545030459349419455970482846589990794600020932098175942567546053321143688693113771811816219345974972937520872819521257723414179276878900785729163650739287332883184179496047365471919802228309638788824251943643462271471112954471716867447903253384821601920975510452142207315698670100218396096397690854269133708510253675064505637486426029574426143502643022246671907673742949543206948681286562238333111404627359134372079521683786731213645628017110560617250939080558708448080480179979048165229622737070035539916487996242105841968532366006787675537794257580298064838067927125973843251729689415375196466246758771775123070838046972448280372205531204620542502928405536541846887054797003166481201741546152171919910972854238866374248619402431167127452257654412878587748288090361507736289665334572630112345091599229955193409752980171646989109225544964565794169236445751945139659378512242878481007832332013100647502986731270144312455528170209824199603522362977428979667076059072930994615115760449035561699037508011252644156900745338518040796357072983133361209908360249536902456583825979141604190973295740082040357255212862774246742137642132680695760358121483334862683490837855021428812867487967009171921198820171603068792189185096361436444444473789417015046555267908124196519466088707070568996510425407365681026392071745657914483403307962080927889785351571641648811581249236211597884709244240336549328055764170247615248662791755174467043894670599024506016900130187699141564113534278480968366161684228341670851151003722694592217187538100635614990974979887439861755536991666803025659051335649778330993902059275152443202852563876196615323055323480800191783312612567951034746452363729913793034462542270542161364225641296468712921828242416310219823932176694114075219850352105570346773999448905551198207019196828954467695564013050841059851481366286192586573101294495669063170891377306888467252659460484043012647891321671246403755418668715699841394222364325948450502514143641707274194249528885643405102149085628703686420400238401725174890068953016452357450184996029841382830802722226736255882254616426515813773580982158192232858920865059062937932336737468916640368278900862618574713869274722905862929304444909726215825747374346236528868492337446115725456442608282139670944100767861504163842940462031101487407196457083328387191071647681309569394673771764814369403913920230095383638810729617778412286529187090420777567617200334795632713587017010442819546595983154177185367074976101053206374522808396215950434890547596918667735714387583253635112063539172587702449407115276715986853560100036652968971540276303081392623750251302463378097309048479801085814887349388048462582076076143594020720147551193892223847731899860481115180533867276016765428332180204856876548761294005853202672470810971985464137747902423026030403776077020222871122461713265786267929718589344088968279998408475869793694640970472684501430037667173870420064709058629346652875775753622476727387393621543668524818047399175447991351304889800581205276156083279749802887004284754486301087872543285910059015573622583229050848101881127285877405548248198728994888752494383910385468343167063380384261498911513917795547740230802486783379076470986980983403789436622768750092651454250321467164219562255113983966808752408886475496074439628287375398302595904892717801963841325081405618757159131348636187364057445598433702190069344914475250792840727370609655037023820619126666808280675000862793265339865513894646365737397157479757176326034565787537405513271742827212674330878818460546698181801741825716125385168474337964286694657920559296324528732657347689675013539717061284942309191724810699171287814643232222564388125170217818520702072310138882744613077446072909888111412674149216064493656556798666506754087919936523272712396046431634417660615981485695371504217915842945975815508225564930986090752415567316593261061780836071379602727997729543864784583046453449773162260513681930689033027368844597694405620629038370722550923255033539452769741481105278366796265857219438304277291230706648134796563051346353399158041289907594059771961201281726405097953350353838637850689357188140422870539286811550688682862723945648623888939178675735897602336821086384801555558686773556402808440794030147506607576864075502150557254719652703820729600185145804690822391456205058525844541001185830969444151600160331882336670334363208934686309621770752462160730194636805355472013889234536895834193371987284807377993684643464711789748762944647931869596371338652948358054602974081321415750726608819936962269818062471261253995703422887733333587401259256286782780941370993417552327880689561262971087821237183983328332522037852566401678197385039370224425117750565446729575076428443842799427235424929258456211949542963335775120854256231020265634010724574153883955991488261853022986482805978142104571915011002084072994642365049358940145359880451209829333479664971379420685220285955381454663293094732592182268456757531679970273474293046877848688506968011128100080950025676688007365438098099346872044768077178344468475504161789556518092799139197841331172019278814068337751531900881481910951893965094813519315108367937742603820278927593937851990414918398717069736547723260261714908219315084720158555923318931569277785042846979812294440348254389321369716730368582744788449238396434586327851812823205797849511127628648048445637611126663024431394034226456955331654939889182295834842217491274091293119079939730238960371709477593878009817667371557244990125153509206147653836005128263883640867161072174924219867860896345622241661188218708179131752302661868174667593065000428285563364364067673126637111229843018386005899432237478523313202416480446060610358421504737244939723190291223418727174739741231184934792573532187663453845204424091148043193223371305787900575253912950158330232600114031494491687655279821208289556928710245837907089773793629631338531839700821903281735271614152278132266048411346771786692891737014000586405359797777302533194954265628367629100826591773907436288598460810532750905055247797989636270091016450101275191714953776824703630405452089769833975269801493566569324536361893451371293847840332352564778989406220039903063729200839659010938372125128585980256981918463153908641899234403933557455920523253361821849610584499945906085519534794022629844103711711663897278398999177939696968336814025418340875142363801198638200498241169257736934012803577202433585313232603727930812049950240515170146542078163444597816732040952949829236342646265592757276900174988044546434588709820777744638591402844143263694769034713210314692025711987097250173616299143848763803753284185758423844607550453874523844240108694531880196949609911226671900554067526478615364570284837866370851813193475244127162286100737235359191596595314666810108147533052919767670598876479982199463126282322606952758384735611072999456294854269138635898289799676059272748939665239855091532482046649071703903934736957706700035095522475916210358373448071795794380141603696802635136018091684908879386557723116980112157019478638816007543237123888038609682281287660212183428545419496858942134121593226489873180536178525562354433008280822977790122010241392361769922986510119912359727439234793024322917361027352297965603447499920906052192591933957838226118762346070682435275608480165812857541142239834578429189004605405596485464699950598691888103099714230935783248470767012790255335257094940630966195084677369822819313678397522144308712375483192287383591445550805436356237437876152124399934376775609641331281106739804455312267242054157954754021827788456246748192617103240691763087402469488975920566615014144649348676042829140853093734214475068149313010042519355437170304456929605895287988087369403546006740565610747928947265466952348330291830272182087060440487326521057653745740637218267719037218056129977814241259368037480520392208368495803324809151354464207104673194252983147286527625166811110804036942668107224759223401898458276825541196852562227324756194270095110684806982990724389150045743051634093578313712947368438156733525579273773062423283266171563459164080466201106451131870531035983118764025558831451280011827399370038608302838100934209916362999579415172192567346315469951523924185492740529782326036171875766392545583694954966203027140925825946056463608770406852650534029775680372215557114893827197123538691690157142024860995703433039695284072542300321074923572879189626140787502184113890528563045635331863148316247445740548400477423864642444612743258353302680637587572888217525763343159476995982957739554359771281276506540689332719414256607963369928458326854336063750983853605375598874552906543407691075451631830911429711323827410624607058861243353482352039290094807646164064164203665280467762421847546692649380721154156414711830584555230621685856997852162808975494888029512185745540149994345805484324214100100580769710745757124221575351926369298738138853059480809719205619998946219347079099588247370429238666755940537657778906872171638911369616291393705595343063577219181693239228495047310044330552241741648708918829866966019303750549491369606069700859196857898544703750977722091555792278365975391145426100180306197948282012902975638979752289465039954964904222866855500750459495158983970850916552708808177225148744254853855289029117217034896192591641956370707280024262696161418860398475191639797751967610438372545583238960996056773571488687502066225947212491327433149885849913914184043635112780268757410819802734985857943987933633680418089217101564675954290824487996136896310918990057344057020183643946590968423224630778075504849386750857962054199193979144016407250226939957320140625922010663967562629746830917578854493438644453498793044686319810049038934396637732073023486616244100956503208210246913337802185057138862665563481382209077708424131735532846801479635503941999209900827897563197801668617514436312526574856913792963514108682626656643604351124823178045783753394500306649707525461850199341582371059272400736354213458337679377247800253346851196392914920910367993453198517101740916223875247834664649380091444689786961548125905246968872541110166542336576794737457560150723104256919880781459021044518296153186942434792610130234449906883953915380819580731043211482591310515814804686847132486619930245984325111946957717150820092896735010789630729552598196884260386775593851475508045228116562367403791768773259491281349347457595358789310045394306992777913421929439167841312619748862000797226686449344127862010360504057832331361783718050042144866070024343895795624055337924604256361809101464065355187301421380978360559202582740688060861836278985142263813544087986817689287137134081987200792776089957024187231431634402268463419635219865963630717847893123778931631063546738961380453860038614998254358689084807255175875977117260310931339005852873162450777742828115245979758534078939819881114230952173771688399611360749073970585680824043665312932184279995886364770627911508517339922938023105440326519395510861845851351522795228992676110572838889698675697218133775502366217018474601256334622921383834502852425777579976283889557293250599404322431193453955719897950999332316456330856813681612021523068697696570703531324335901875879314094518124059182704415208424774415352894540188735618054405388955972617411633954329955121677821007064677575642095673864259152616334938643724419665613941379444874749115385743687506076521372539619140723342235045060100663504815732575874953533867406339870806158515991341285901202974871610448334969022675408934719531586450169847982931523806185307440363005275307284345151634516522792777767240290384895747964450201624109060331790486814610829902861934809492006248291118707030478256927349450312746278417397166401193224697011329980575512310374343293172248413551155426035255894500114280871163286667952500342740678207788816593070902642119941431256048888173974709506117770597276529713826955373404509705444780495783106576412868389052899441409982124605556525288222643248063862918692867781428873541669004073003523298554460206665701404561845499441304311895352994243813526316754163129559198406508243876212089606202915349947060257116092145174155239564280086441313609724159478173282069223057264144232334278413479540502530249922531501074990107737128320002922866883112129439656680926091458050653518253324526251933396492611301963272320141235331652681121591790714162847427325485160452099459021056453022977484509318743513628942535910851496370780265367155937217328873874785555965671249688292123628156795591770780214733364352921887616713246892006668625110573465182374859556277002443827949470771854979985893113027168981070022433154732166162011423271750721868103503902635280960336058297284652580812257939971155475627999448569820684258574076299928706486958433774860070856361476429383746743034039191193041618627995038891760187373204763472359471529908013787709370703375763380575286287060915456980359363113823337706241488950920859777574044283610577274568698332944238678091467093876676635828421273699666657848862594749536206930186114940502723088407049027937692290248673780902063422984690160697956955240707798660543499452779877183025294924772176762070073417091828369206838048369854414208810299750024541693260515985848975367280410348522733451050702146797694873199071400721866001934242160122282753259866322277313257172133410194653448583413355736929434251902164442237902070224210028120420188046517259012188332097647768917913391194252011836168154547675106098497102474556463450983555690405763923215051450508741937421774978438944473998034613205934232610173172935179660885722481944587226322759768571746615660412224506064564225037433318826635232481935992688760141623074723251683582248649525450250545879933003480136767291626179995232317983309535560420171850829188124052843220012982443422641521906925646150422197127416552199957938215250968475679999908482495684046060296732045955904920868574321929391154272945321116629361183528846933571088280574638228627092860033859893753979923625222506338167019293869738334140631189938607665288604679319130449597901600050204734815249770945944987156784403937760470129131646676915191384179964603103382630105005971905364491405858828502919729274127165481411201033993927030541703957658433650413801197078737796174423982735636230462008303507038101577685939817098145450207014417269704927553060035196469152388469829126926111086761993282778579545680001556065573081659561429019926229434011154242170968580365951904532943803792167559350184405843722775325384464573535723732183076288212892725187609795842299697622691675426573794203802491415568977425732459944323392031033846372279936912778769606998566864052341017857706000572902525823727241288066504622122561476656142335681098857301000525883059447166696047084969829934516007643605388933399618436111825043148289136160622478731232172083667845424210074560574221325884927230185891468965151182354431871446669491434720128063270634058300149363338729066068887046253496918874526281977447750357102875958417084287002606836184125504328680242858897302366157731548199204141435960007478646926275551841198812051535179979034330584191941508875216527791668555491409696966378588625543170074843374441017486736469706084929192045499068931552692905094991174654685079845090390526885245042825142170602949690025998577656361970030686394062127208290301316857154863392179956946397944843713104322688770452399305680170683839107455169703487349434177700771247441030919161790946284838918146121751703088916062713528509103334309498455173562424820570140757972737565986586025046062201936785837561431006349821758791876089616166294082706038045991399211899631924993891732348588363736834489610068038875880373521999449457453937704154858641371239002500441541763477018166459044642527157442755166896784515144175994623835467164499046281281600300858167762516852910471750039169338619705945416179870010575036781016891540029353202038031383492849582323118874438683344829937780304366926884355689160796716341961066924983036614018819047486066219033754573085227088578440036921405848577180478972448678951377888780917998594557435473082957820819494290947983191190644754713095202210231098027597118004109703227787608864467164698978329285399418551890986807424786797700382208115787456347486088500723848258266592452787643456413935222891270331071450654387825892880150698047008195860427750016230808619721093605882353136618464095465134604474600349247053578150092546265993856914195177032262924981357514581897843358188961020881871527199364625096213685653675578615181052666692499529905592135338940978984164720685757111255617640186940004902151546141454558554753419632150806113186777256496868605786643673914631420613273608304760711539571468645182799547482792860075156371397196719956568929771135525513217314142626864574195412362061430856864660145609576422196860404308423086944683640327905622350657422127684475708148027558981332144035574251756493770347109521220506541135689853633797526089605156335010527404740543467487783333172014167621736691863698247286086685309465812821686992488519130712908677923721050112048396144845884515939365471271008476413532254132576702309427821996258197574901295212892744840285192329102779473697412126667474699673858120534892368126862024429718203004695662242866014632371119927201074043241613545224255566099746885616418781656150204807173749708697911967957939725946604130676499349486571566585394339130996535546712391793472195620532438188205460715538041267542571313529075063344565119655594769068448962652993741924142718154453684774567894989880228778839179002308373526728757702482050808532502478974308093845455161459774858427357293187100967549052142306089370788175289816130601188772471985360317820001222197959601035869896918806776256367129506064794655881812210999821352601139834611073730837097289474213460461943800637496606774700137844963057727232703085899795551803737451146405725137378145989732388787349960809668948873404407692964958622979440179648804249338103408569622336663344137346350064875736935990595774371031276254731673051155784002574286934907445640875776784598508554706557478456595627692260783649066704998727480654947032208595080699575621681276794148612432492493844512139306459957153553610458420615030439323174297902636091280266861766255505975166101566393052305428897252931296685424076484580967741982511307533994571271353907766856770689753105158426095926703178554952935523399321100254352116045239887415807448930482777043505013521100781318289842722135172597587423617666734160256690536046440310622667222368846159746591208783110924841164221942038377723705675624173197082003237804023071047642612703771507853976770447303309923153586283651183302426260494782751916832088631780712776981229162620277551365218107268840023644417952845080864179218373622449009340633103633547846500520011997809777527303385512351940537459021246754516193799155121338850431141414924132338602561987751912454220078097538231336592716740537490012750821228805744437129555990328491529862677433440027564756006700243516601101266797966191153227767720514563540664832809854198368418243256842612582804816815641089824099531207598189700525052931701191143767035440229390185096009142379960659648635612402997653220829862965282991883631838764308507219774533525828846618389067741392481635369727329940226817614568109158644719715853290338805715295343240218878347731045930881016677712518599285454087078655840304347066437626770355239811725163431587663899402387388483425054354307455809437422774603155520011222169508664034159591975670304731013818914099411761838072094497430158335114416033007218867915326273879024236589639604309867392297898171104517400056780117613807949934959912112524944161022708178273745226211644846219161377602260805051285794561561714716550258866786152485522905374668134287734193304380859399464756281026149013140696986609421308890466028186705975295201918168027587700234697956702842721835780823412990137703847970432958725979222031274251597167963167072664092271872781463745121367126071100276820529235848660200596050972296673317656314270692813832122936829740451131251038404536545732410783788465024354795054604727270463135938560584912656839164638528898131962922513182860650480523704661307029923476549090388490823990546384084399796415205667348277021284824698674725873554905453485622262170863908261813917097346465366245049302594975460820907190873311783512013081916142988939867932328064446489076413797783130008850642690420060024419818013268644355163249525435883515622811125968077431231402042037384683931288003463094630157822519993784587585158579331209101217894764725328719467224246044614390168012430163435269293200360573733744376981022533647870579361143120946672805619363926256166276058462853833797954433577410609971911479326633589397919680093902651413678317541118335433212992401108850687280739125912320035772377237807152854746123323962224086251506798882959785950089892905221246405109934538179053113750150754176081709441865971373055741536568434300758717016253128281334928780708647250889583648695430467895952237528664229913628422194999114291701763437718399087478024167895078566386914328564781039789065792884396835172785474307847988904009115157904202310784779749804506234189936393404372121138301780980058812502191212729065240940066167194066414130754700669662450281692960070749052716474981730254643929254249874233012922904582946777889274913038248158545389558135150848574190049423219633490714472078997953410838632532137875568770362600211907557186100906912329024667303453099297553699828868083824304456629225611511427281195662556808164285194667974312010120380868197372704138384559621901532773634289219208284054529943512201075307711382987987651800716947053659117336074426248469056308865177580739578152960144031221334849833921563511565833574138162137335629035086058756527650174033509740015331881336371284302154003647248111306735755721006326894933041073800166595408356527407454137163139054492078060252003897725498546110307225604489247830696403424279107362190739653167814869354026467300536480019161307436744567853329314384895408841419479720869613067846219180537604169608833393013463869665853525095717863495761300479759073571563959829696913283041345261812771836697437347460803317809301123506221714694360506073475423987271692250492457850245189070471745550646276033045637509139875371582414453056410969419448781069175925152422637098997443069527997432040860632259919341403934509233097712928068346816107272712638231852082567371412662997474249199891331382135891440951765539384018212016223093944114876904600928338993894682782352613084258404518460506636829275973120297267346154484282363623364632118153925762512813939497326557072464974083692706247296393663361079875708458386115672931954332910449000184613722388480417781473330194984370961611046642702898758894591414886478424617295228981349802296504662334250402216533973244706241895852440727876759607151696583237577930503003988970644232577547020172043732755316498699509841049513162305077742638587747676511348950120000478691535486321000708752586611312295639746571871215383082277117921358553782889721334341587737276573172612818760069991223736895439248386398097374179825052624258214822165804025333021728090559436277131198603797552268633909912095904506623777503965014432423270355198617044353435722702244699175501360854784213027143176159826128063491737349610627366299611415821417384899991622474222967247706238426064127880033124160920373509073531933343493178663917592286711837391248604994509530449822708787969587507248474288547875543951367286991194841603129788938345624929520222958186217665743267685674760970588749764356118104192150970564276688708889868396182376716265077975148507516865810703211159813107340007736800365155208513924990495375061074934372164006104595400636202202122980954628233878251926206408290259778524883662020745760372092732056727120974360353107980658070900977367978100935990255177599825813773791244747274723419668181221287470477253881022296100032364509380694114403294385362074702369556607254173156625113276004236104278685603001963938237126631270254852754891764624506719281757015891356250318622164254506999851444228689981466190048446000657098664502996818289233548290974840047017453652918507484916236030479694179837059852351304926132352112009620160653241674897837623633197341767083486389134448990044309604126560720355807283413205403859136219989783962962446393501528286696434840524619981312707678304679796153949380276764935345829598936486497347901753065624646778997148331350182764844465761432346253999295102871930529065367120888738348384498157184089615355197032246744700393900968680662018483916612658430904602355214408169567720414150755010840558046810320560026797987530314952729296613669627850869244440016246254431054762186488745140176340268002164097362257602012255434668720094342637022335144654253722898189039993984802356487346330680810319720564770361718674276589643405239447730053621353083419795084488010388436408786245047557036430157572916221121930875785544840354614012601308792387606941076542908814755386344040678178521764633675298018754798934290573656819478182683774406236379217373212261051726157038548312522739908344964371699854354372163506381960810703214792944372979229611576855965182217835399769816018771694220426562476362837151065609688734122315391049091659265556249735774499617040247023822654313115399344805738282009403505623468361848587705607190380766878453650936132101169050676650733109905986786651891426182812560972508971970375663645981045124221953108653748044050328909018920316447790426571762539675131742688385422915302391498041598376336561212730323818162931738468097334524371788761583507235011351058009822092417778871176542769188536244561436856455041528092985719441574534029050770388209411418863072052185060876066034311111840766056927038687399949599351011423329724200666045854184472261711303670085839852947938306822962128482256642741255585721199948294753015643598649645694056746315736581155742812109023168458377168148858942686638824472354896983322405423047116217913835993514834181920525871408448526906763432765315550433737248211170764386158612825690040543111231327308004874360717140638949769488305452511584260615322055220624986204602283026014232931002476769965173033233295599904348065937461362571868258695188716792117125043866225915776674151524257463886089643328155288192337809691339908950958786929484233731804827036373657451308393866520887585264504539465039404700949100724989395807881292630517261435842988748238361755756709185398275405136289858124461330112690581894838694412673976158407320656560894043594472236157365371406664649534202741074394198737503935186926399025401282789327888618696276972557693408315420397670677912692829641324681677093421704696386743925618225057302726790709353647593940049889140808189039953773270465090808255331822474528382369573351744657505842893568844710631776286904980546824525815283497049060645495323295403227146044681437420158212066656596412396510920574635989229451834315500629708091840721914714738154576593168578270257142358606082186328356993257892221645092816144223530550452769765419254568227375179937363464638403689210556710140575764268436201017014390787373241075350955176650169654793527838158708963735150458167095834636775895419678522007225416085607662578468282310795120151623821104206219203179209048519744101192112204266539112296099189846385348045859448985243518116082001628216655269839231047047502308832572339418222973561522740906402113286174260444560875916631807557440351946671451524753793619284425489109897087684682557989815639831922364148446329175137038354155365536290549479407742750196936704226738564750429639900906224128269584090675597984276482836181763474041864250086960212245041221472990050356056612282421541149837204289208436591352898161515564209220806797415337325693468622353887624185752856990926792843996187541156479280927058934428494915266221668687342529464703287637784659058903993764061708981014715740500747556147794903253121337115389946359096884153786690076134027999137914269237292840973317487836630892160018042374825513474284244684844003666534856898181687133071366267897130299425552761916874252710878717420175296477942747174814915852506883229863741365238628680863983728780756094337683898767507858802258986665068963601120413386905863868881919732335271377590080918545375989544899912268365851758439452947562574468838862792606958885410434277202281000129116476335743681133943935628540579951379575670620166036920846545640429998723664897240597874994813153846502829810439979994209047658160924627804534684941381775936486943401323768171226885977336467575376520016526819418975156467270746755286528090760559695843300599430221518028618542066626475760755030463240673663947128208097608135242871319945871745916337131297182035076694503252963290711847733648814540942936093322841053116262394636329046572139895373404153558115702519255579194161974112465906459098736491519515431331538685307742769222476308404835921314764860477836363865134109859751757026500700636322691714960187193969495206428112532070387908685109784637314215651130989372465813843365839485595958124792803953654721390552825053189847349441512077589985059056375557679002514204840806771390140635997787640702745632370823408518475863441745247836635889082267269746433287931689385770533142348495863319318592746099428943404833623642741709856367155122271617947600857811692152083574949525856209768541920690735167399319094783148651738559137965844267931353363512758521143733329018070213704315090550746346973882339992597936598377131040310568676586531009013640272523793657306023861418583318035191395837965548807979352544054109462536088364957010024727083217464843780603996485981776324061459854784130980372766372438375942956447231864659639404459163290083781886292665311322764555869919659742421272993398987786837836219567450092043833423561659655216869105814635618776325812120899765098396175843991279999199399693650595636396204108556281176125535219367268194329249174477158242085787621797431912615600977965155038807192648899986172532896097024713928866044502970166994371956547283152965112317771914531846410391637371620216734860268219151829186444834410300831973034699248571425535181793691867273949652486242717332553593172939992289988282134580177236747273206073801567911062121181875361974472882302745355572090663492012314213784593667779912879994295792408351503178536964030054689960928403709655351354371015295817083029648198366154224445061212399021922934260919272879655638150425888058688829963185420318323527582688598920443916077324571034585446859745890918058076924291712282680083736646355378260229525628623795655226836017001002727230176615838791533586472069864802278787699167416265820043860587212288927774069279044885220544169526587022976201960029814830541505437801325375136305770173625999820756628726878248001060641207422006983387300658929207668818109007148496632343775169620661016577336461657821332383943884745176985717332049016401165823471320189854249219680864247136284710962449498692884568234979297174848805828288150574750764851425230947261114256983072721599061625699684190045406104566259724898902037112125086995921874987773103367729436303912187528219675546723577923764483234954909662663625993183138997375432199483479325713693730114031826193683341145167385948410425741346154435409501205734988023000218701579392757343615142377661366986459975107491715004966233946508484231402004786690221953553522105859972404367950816635810681871723370784850083878622733405573605072803113518574992653338711805840731804995203285769380954479475855936499916811681836257255874336021260035707386820756057761929464207895872901611473898211387668049827200715923962743728754001256551560235930955955838191040253130680857122023629328799687483374500109531267944476972682484472239766779203097923348651759368307190084204846463080660015958235561138486619231396268521117314442635267299301001073845666217928297597740689752859209770359142080603145268102402955755919444771275728817293951660906604409341750163301249547231751604921658504830167059325471495137821201211324870809082667182862438920062301820320511892389744442240642108890950283511388259017795782220710310964030322262650849985788688188732661688078043465168440766703280434893424402785837156688811425527263267821699348349804317055532930767279391474307612619341634127423363090503630049825008435193530318205216362705209318505604193158944861302839193217413618384302201893989248062220972441904302650972263349698407886855236436864521792788791909978881816857061334654467141517053421052284714024836972507040163740492497388659032668146242892130335634511294246495290818267148718207439344941101169622892671547714001148822655458373152749645149339793195980229287146098773957984503367524388930062564510445480751640690178103164845231608436216325685229915813141114987590188965708308952450713911277184400348928241700341637130452400243145955803075363889670597646579764226826795650354812515793900114934932749823359324064568335135161720189217232555418069499521423739121190151197147822240879512343697124875102998198189707543774287822057809830759898627188481856048307623603960721344674261600254255738093950988263350967518178694762885586783471541961805293278107963788291237042684497818190572044367736006199443510494949378043365468014559528625155058086721214549691446348946421653007261696518002326002428282152458966189658693173332257925135045007991484394534492949069795255319140473230797363972186261931594457970724543407123133534952249319962393027831039567389833881710389414654763184642506209943377413550029512964135018478640167236936751589725395765248821146661664725321256498887081947905692992544417339436886536177548260592196582970309668624441071255905924261548005183402358197857652116007844502062873873201685561220483635575008693728933922383685243625587179191563731837927977618203521828036513373349817666040008508484226567020992774474492674014099332811678908118623367243101625578084075162617939180406525878640211804279083637216668410318293680676254691017921220798260550644485262973998476934580891929701327323018586727203717115631189601174299328773875499162552214963233855614295100537894354675156221427147839481031698239278670642902969540518185121911782371676990390807440762258049936726866524311874424014566867086128535129867211045183987162991065890958458911163484191039551198218604785519216963297148703877704277349012702165682629537766004167401046442816055219046064221243873088043186454553909928075704706904325526177342702636320971021124936574484321148592010361630253188535143491681414237574358898231480158585495448928182387386835381358202940235671069329771354436809496123296037372883044971780394034215755738605650363189902496217073110676001076377613937566407292864559340384404358874935916365419046436799677334236146840809818481407440768625819793170106234737245866315276444020437468373644670909700473059572661528719784391834310151293303096840053533865429601282276633017452841050095797328383039809390353692205897313983823252875874388549339912401973488088282107978140830370575952225739963172129604139054247821269312290602565073571243929789637985365915567695092161250465879017040611597425415709677238955707516597404335278888103585080772214675530340584438782535930634011502978542787646374360405305368429383338146837245228672582748808693841567478365960149817421027277786738101791057355598870640885214214559495586285774344768856225735709041122022766879649479346687827857847160847765809299721937494768378283241484689099083734389315507373543544292323048831280705732323062380410081631474263667248914779189521590049359614979555378206102772920789009370254065645324946882957167310111405261055856111613205954088956054131324178458224344237265174111020592311515927874530555582718128027402818266921318096930208475761448393166848464290343373118050761583215872053206632710901466431307330924840538438895015207034897585868261691985753874736310146366365446972794864406341427433556470731425241725767518487319954092221821195825678656618873935932508548024744274510245974470720956224945715450041891712333372445926852995185128094495837933815503787087074377327868183291271975428144680543587918075346024668433862872407765024640855801273436924872483778369521792001540951714215084753086469240186139643022888842902177657763341033557533277848106658165742339951702099582127256630998465356363012103309341394238243809633603264883683118325074120682603414486595255859745195948113384826285346011227791972110739604617450112113897495702301205485896771791877388014815374288872355511375815438192327085702093892849844657188866516991855962318830870469501189288451888925986503869279287996779205526387942328210252439108655005361484716276512529450956728110968245331510559769743771912827420616050618772002941355111674205835055665353231791049462929248350375159812084596773426223675933772001711594601153292516559741951344664867140833396586475909299938531129420975238597765978299369688516835942597637514383087634626988976191503292761423624337376526491653769587152972523990831102030922076664531097636054456543217848930540216922628061923664496097672450092282460019284115071234896335705122085410771666848197250192101673164072998573117929752529150550601147971880550263179418263465147159377050184087315631653294149988409491006993663974678053725107570344641686580874804750722443598162342194945476544549547661840309514234163077930218767403834823927081806631222965989147507958010373015597771312314464505856024901883047255791766259475646194729816114760308099395602130235329006372793019569452189583944767968428717865161015085100695761208113088477788478117321960684794725516740169815674936748730674765289341097971843117349929558118748651253567097751415530750254264523729757591048962168347447106922507824551176955374301302672462818983388434143551345659579385520177728503716627645717632444973507875323351295830216739048559983236470388525426664137808131628410734926480519971857214702958958513862202275519418062238860211291447099411921047368529416777710947685144599539573225265872373969669031281160830852904867582408668126324186660521343087131738556296699874981061937107581713951199058247193218174678162989490486668566374757524783558489394981405672098142955991393909067821193298848877043632798246011802146109333020495041416003270427607413358645811684881958663783414462452635802820760774675742958286352691140083717222074759113011608943734624263274551608017106068051675650445268657847333496410421845058663379296171812464589928104641537037458800686389754779412472577472229842891589949006451535164431837599828533064251521921306737433201920011010873525808889329259814494317865144543887530223375182268816636073736623966551052575227569407796373286725128781456697618053702498211202445539597156099916153196903592594674418099092124714486727207799822195190948945537781572064998354944954845141634811509531659850186268147588546185743579572339283677778583608290498227861007536879292831217690291202627272010859414975621489646033138242313410487345059745802707068709487051667008436812929325779833112642032073956337411442361435487954514622309115954188927613820531874506847654088106087117534092076891724641009612013892659232752643592089498612642675576364411507352119424092836697071257274319896744845133283110912742272681354502563287854029440942046010911829167064041992637822509181375323250783840673601256881257001310145403129366460019939685983452714872764371521440841069213173549391996759985020580577477551525834313462707522049989525207745792817497823551702000016796953835752884300586189349158526146968854531980335045332621705922993714430450465789187796818305407650234888970730015032613972582703761038747843109438888488927553135611496670309321760655410002550107523835861149656988018142342997412846365970230345243835986244423497184449877454909511337254857706283684038565644000359239696255147735111813478203858840466140248713400879507048488248283152817881004729396400167544693118491162876280248483808060672726100295931367858671727049524542551722932608756979446507706042887499729113409495085686722528095532975245712209278128948795138742430386329654019475325675034861448769127889724711135050655118000902774272013637114507740880310599006088082963980073107282902196401097331692195233893064854643417387433848257165914855411252845971635507943165577363461484666120665822355971082540408148305438227271095655302275271439907586638897673640782889400694745800188491688604664098117950561787590531298269956477634988776207219463373948791009526142200518201895137632967693470478324790993586521236480966909549165946702742190917072684935504127369754837912018561547156858086967251405723571373902701164715453558521251996280037368619827636331424475657895900523166992007347131864397842037286640796944211408826301902098401482510096713266749117030594323219406653316294520721269699696400997040470167509058745640529743026490487394079713946893731696798392455522513060264044459349834210830094565316839720227577704542064318500742033721225864644152758226438245069626240973865407627198184052232463929426301239683353256325755116089068553810991752115535719641190326526550208330964980756898990842453248572505858812823723491864436064582236926677686670468243442095677133927839954032305536907313530102617627947691111617327581427824953716629369047702933006693700892191258121503832758914839204136889451217477081223393432287614055365822353352079525167766353760515803896136939912678920701883062527875093584440682298571998642992003006502323378437926418698047076993855112067442420076214723632639707700602073366997198072151552181200750236139168036953775142760108983020492929052200577673487876063779783554096416568072741147438609019003862444001486237845311929421905549393683982972166461539261206339785137380358966987478256684773799544098250546982072795467138353271487548180097452642394106147265294702547559864042106784833295348607356316162330059779995419933010982612820582133277875381751065358420674969258241512032856998183920445273810354038574737520218225656610523903019681096938643034284203666375741992081083294849053227840133697388637847273295676993222256983776869327452843047072191428845855090118156891394406028883124770550039636546335724659122209279136003779306468667730868251870792761106835360333493949299866527064427021640034524899368880926418586479116215639466483675698003593971244311427116013595384713980901876212931043936165916487193867744749897454991220285181070579208400316082528973873940255219466164104485495109263103342199007569379903049978186713432514139786301807478107141727422765312650692242281168851078316974908642467298285381344432468952804087094524178815642971230233043732756887869448962887659873993936350499506066187545688145667555752968565117405696713353716420500871047111234749887744838599782871389777334437822641514447756907340519431340522300280943972990762970557634300204471954367346855030809038821625454522441657306819944774111578978405074730420676607392092130558039827193457340389243786867494211095646956351926765229680570749394569830923965336582992981289443818121253400064613271476178544879211782906136862025680250912632339844180499153863396574016969113474688986748274783995215690256632857016251760697639874031318655251919562104753698570093749161453384919925656966356198636490214886493004515177286247937696973987835528528891463597072483644216668503885697498552076532580122492202701796654585933806679581564680639060958568607783262685842469801212991654971511081273156257524072289448263297362702720912915476964466325264685496013342054363933612404743579379464312787550269834978259885892735579803900866792602559485097539274520834001908157626687145983237585676323985052813810674600562646931568717386654557765095988620472411808473180092749095007969940236808279130081855425955556827823008919556428973379199826590769829904684254587248385803152774670874885791313575516890667503013893032434878315573809515848258374853627904849895858276223413000524809529582256242693413205303047038254227497430599437027436440222321390072138565156879707710818521577310312598433421086725155636686700355435319981662560921164579980782248136164343118395114868360826938734719507152655542411974312811595035186495766338660384943741703979546035546813131985407861948191473886868429300590152532067238789773202413030472389329595018278815967755590280168059435812385762096483518570892456003009193701452547761080486227400784822146867288323376059141846706671124356585639986221601930775220320537014770754212191010426686283325015559544913965799317594797226061575370389530321744731344248932077300102620829082810069837769787825042730911562202112953617778009368339501831957642520394732736401936523925328277813531036090455001608881849185820405614943329183913291179062629118340520350946221864365356061911145573638282410439266034523696932404161710925676892786150060914920996271781248795368913471926425479208479119483399106658966479417346165267802916707132733277651187431536357547008803793315432665381899934658706184060811214631639009176299207558668257303783993004078448246947654245369895111483612555106292348140697159151898223379690733665804490957088026293651815125409534764753751411437924952858568641610962840158377620673418714600424879416776993379773741196479933948126583475223672212529723717533622738067822856642458551889672758598494342809514292095251100234836750449218418215875567537374106143097232786157652897933592064149034331229091034333510643556149960630947877730762143928317714750758811464240857138049394004441277086726894824424919975202175400542550521634984680977215912121617340973902433822847156685251930300431822536384506728238306407347655396882554056241541832729208236565140698996304473623495453814356676499613392899479740627586599674438193702854916656254912570328545633635722268693023125620964496050957351718909975028413441747124017534603043291322353762610178999994257717154426299222680622629081504151037542702831613708911029689615060696240840853957044584682163304468801965381069391576485170007269032471505314813480851848823154858966530246275071206475686920787585795889583549554732344398197899794666987304189624419280825971050597764549051020649433913221338698922641286491776131029189422920902941599430234646651591433111634281471331056166569069242765843878343982578721101284330906960309674555217851204811950288147431132554632745562955354167545123750790387640388589998083616559892946723963572775952694864856800169924658074935960230533431278158127318663861758989940638822605474319917138028764078519461523737007414597583486245030867298704072757443208985823255462967455255195529284780181489379632932595514321070864176742010570122503528798760651556091995625946326964234599654536221031773735528422343813646085638958632913732257030737001942622981390157587905178273860536102718022785689845373788665469878907256591775237686975195730205464228357054746853540978649180356975207063224891079773991167257893625500191417194728764735535216649343617534024526503468648225746825967555043810959627222188508091297263852946912632956062176886424189712574729355663430914602481529204421798800826405395168794403817974685666192293853272902617664572015179899306884114077319499140443972998400140434855519127552689018705568212423656367613459796565010899423674314905647663443321129860447491078451929776856037567889918211596575955930453822327723391460172555430543737224778973009638602077726138813520514438879159921290986098296715832640018048099773456254917283388491881073553102506186518227350570020199658150449626036684601979195971650412105541783616446654606172327506699108288016851103914453681309665594722667232318702075921796653060839610703653777952376708995205817556291501335422969938798523598434607378339755845899088348790850060471923383029355733843524409067352821430501571518891640285859948474147751710505833832561746775164465186174830513837269490670822773818454824748486071075997717831772660725779755589199961086855159624277737082251114373282110168931685721856589698060719524968293989616478527170144758103072478122927982305770315945994660948802338275197088350161708619676054074476768965715975135545075743929077995662725918109476187803892209949003130364580208379357570730626331238505086165800466171627206831633448800253603423754211583970524561703504312299083391950092572589853983025989478711676886342883267473025211942111353223582112579443095665717810726738289916053298677885124892977787136840480910520882816005322096014685482088220008383736013676370885804614095173733821744191907497844382487472572312818129017812076589537932398868555061705964269877079815405043547424570649766992504805418702604189323203258910401039681094516969370562453872421530521451514917477583913182472215276457530587393608411364005935333980179800557559978608176305701443031049425522924804408665715795423022726998071891559263449211627472430878038216262285609717037303436272269569795474337446699497273282923506138371092678728850513017328787279299478782275043687779543522389283399297878243277035295805032842366943429805693017099076873950269837657097330972922140815464395772994472258671048110352489790083907543536544735557356641585670804100219872960320573375815847809323114025041237221999037350478040364680795694637103724254256027178994806888228101081249740222158325075767677396383070791159004338634226695698141047226358671293674690074527067493913506064560730681088187434815581168457458362616115447911274974735430816633315334055073571927508976656931282052069634142755424643631821883931442106275227810468836746606427392864942391569638422525786241392302062148142730056752749633243114226265499871060249187697896942036853927658780645702733479183193236868448090426630835958774608099586131604245516331303710380011505566213760823745323579350900849437083818701227265441848927601282816095513766831397517485673954124826736125323410717338990088540673031007407929351006287081951823358496614929501549484777843380815609468620604184177580288781383098235358589819270157631179009078976445972114604831152601452159267719347285297466654911613328500266732272934246630451524194256583022953499661375956677502736852310872148172518592757024527264381072722306725461683362626799165087255920878321994603178991628778603601845585467869461871414836070407201502856631128527994397428939131745584129111475633091818463856276859477497773885088086560144747020177157631925588366365037631186923446298267738161170961273098417029436389156656412393033205919628944967303706517594829963325967736780082578388756548528880292122155342973461074455275713592390589127062005364553873002229909111244963470335638045457724261971743003884920726151699053405359608333073678857237609856040588929087127261000523365408771667336533756310720209842576280172590004382261239875960900380923778618984328130211539825645194964232885622764408200752282765129167999925829831433485338294697859324107522659825373324703000986848131801146796015296745540645215814988042614011520829499727701995698405322840647943909158321177934839218166490455928820195482980503491870528780873994276032074705319360890570329146667699677673549277549452511787682098668793543388909878946734694796380624809206868629954645463597731629251128077231670449569753725046568264100788376551366785319215963184155466157669310216316113601382061678271585180947612693207948369499461776618744333990368993722822897476271838069501650525375144043030312157033453619286341083596669322800987909762368996747952567801112521215450103133593275014218116622864904393719862468985726027052748326102657906417217484928222264314175853942068210114078575331161945085684792466049196477448735385246657554510140838021428426478037375406286153831800680848948904391798793913512425394720684266733325429498313440360774065245176535920101845431542245132620402682082244827722981761694760269128969581836935063318804834580614675818498772697898451752753817905553749372571489047318552104943352661259290121838295763412978924748680998605933507438852046756838279496856282896727490429235684486713257544399590743845245113784153491082262945640493090310330615495942666467812120022027685252262560923894562188542628512892543685863015110264989410501847581536748435751766441332985569716307970056599668746038849186052836122982031493971144808816244587221538353483602417070872123945372345339995173062463975169868777029983744463096259213310540468994633835867276463415131863401688925229198049834875599041450267250566499079960191446113757701882580213010668702668723838038227836750081964669262460538610251671065023168531502219013990521009958120269541238273720327786642809702633151839027005318797783220376778564793318796063033776193270999664431078624240718067229088021187814133791526717961884189942651636298636214266930535155389472876966059924947179001588689990833038447737986496177159822351596652574672268647108469144663530390102637545521669113284481508622978649564106402834833738530633871756707086941298777578900128284031333989033306528468765635302941922979049353445821347495081250834525357183537406646056976879162031661952769411781484526784217156528380927893246610842798623771432518731645090545728634753009281609576744828868110728312387794543494472255173734860070423900710639110911537235261118239723363656067331750031525304270975295627026376625298417687346193308798155837798805743913572531275994892833259788708240831796689222353226484354954729663445420728651286298497129845438615338786145436162418053425939927771413329837894925314934283508077423209830877293050194792708900268876269221632378975557285988368944979923463238364004406797985873228372616908027326209517700745640615631638528290302114615880882649583160197536051934592399777725684917987056000104414205289740620254462578180670134208309056219112193606748394544079917826633727464631333424533301238470316552514578380626916741937960367596925828494517889054537634054436686109529261356617035056661251341699810485712398878236551057355890102176926817732161369530487688529054964793838844727055525725835697110419279394819421230192576841971008616423213391687883608931825388306286885962947775331356687059145244863321267083834617454030292498803060870450083829080168904295313392570360708046318752121052116149002593236541668429140656988065755650178782114918951099082546029418047695650041330852495135402089276494568419113227245735258801017928610111096736008488038278725712320809980405514614319213214972264703009472967175244250677987596778377636522988526608119704779583427184730312558614434435213110166087899634287359355678058707079622276454464365911101219213057667033361615875449939986867627325344606070601822858718246834180410214435102693002471331471285947372837345770445174687727588167268393861646932730787433369315360398882136502617098603273414653321145007007294866893807868973165884267959098357354527214774781926948321859342506649395371376547169891763210502513500299913635702906224378708339642570153196212972924376737385613661027884657488249890074265023110653098971146621439814296546482457520325797700260106167751822977147285215657189812506517400188909379764152946067597576204779992142721872564276524495805087282637671405482788338448677886967282746453857656378475071957076364393535124867407458152321975712898125906167010304456005695273394304606179721554501074640544018274857280217329883057528085312405609246384441666551488384518005682620029358467676078435000386880388701770099892320404036679843414663538689941291251748830008084713001566792212362221613282216417066063108825689117988681584991963422637318790583121716426671705570449028020168842471313906730074418969952186017475890372596118082231735559653827920593672277939697851631921843909779346413097700388632539838316198873759154697179694932450890969034229934273206245158022844942124438207017789878504983078000918262197610782655815300007474147668463249245265779245897593090400842966611779883421798859034386035629590787142000709946478892316914037007777361369250646565429904457927742175062806720368478647106836171743109318558569436675403753924633728968583521287229796348735484146891776267933889486274766720720016923419316599403051245681799583299393710562093075338917422228754416008471533802566416481298252897218301145194289705745027644534603568319016925682381336869781996300168158817109704163563569612581484412545173611597850249937465783980857712403282772111118902224828048322136156512721595969234349274613400338916711415896514412144413935056452695815287759308724851687466094948822423209194066468368399189744555253223120638163181235988076363542240827161550596096443998912314766983105422083044845319121937203368457425564798824029461773830593159996794139272568040403345766850702848405525928981120651011514511483020595357157520564440980989177057004912159301688823643465504346468768875486067192641850929127637527915578367830913426711226272788946581489851241855082734013158310533343103218356965953437356285939428043062902036119103488992491976364827505659362983131512296429651401565010404393333287453151960788343159405265486623341548942640290404559962717957565816447077725513217985547899264208676455761451161184905704781020330565490371399554048557395619404673878672414394135206171802047271184534563741209134265544496873689859971134943863090702694913336511962497431275444250195834921629111928528912078845642839519955067049775421871394418900068113915555045153850061293358489897192852622750567744080719264308644894821513820827660901700908861813295354966446783533531816620142781078739572908665514843155833637918329650730474027581148501639133152164442144915785085735755621671055093508643158167665395325663367613640529697216399869719473579245494475101225674716292936167481734532523289118158510127459879875340928338699061054186346022227153440574295479901293427674399086040418511931993580811861016743987626440281789976360293475315716283057698501289973837717722628762303967092047361695398174718511759225910543294099799987485091615561876854829950899693539072305903028151740767519966777898376722836600837523659541106728941800353417277960457308800809469041270749959519411210061092306369284949063421411636532849709731713819066621453682713768028283146206708768163446467323172640907313888605592983789044239389140002750505531965398734150123992518173189949259248473660360446420987821189674936316121076715273225003566739992178135746948703332998106824267075764980630821990623451585127121683238625470401559018506003333181580571336040222825128968747299795308401307534551883745763303030151948428376499614225983435587494477968161068974697282244104541290382268113596823481196947367875150959580113386203153154438896879897266371728285569190990063465204429882718747297787823795970595521464421094508717822558939426373701547361092108860379487390195077658342619319712927399804850425576635073444202573971026632494658795556711193859619156796399037468658433486141691167396704367244211864840103132164003266979863955623054487115448930582241761345107381203848376444040448549175255310532508737044183337718477519781770146940201629551967032657993558103151946104657093454488839388102328354576922552718404406276838378048504879212747815431098472474507297101271615111773490100595751288571793583076454513680125942641134188565811684244796628379270926590750983919635305972278056294394581619062324868986082202154421309238222345769135306235583436131274733951778599997155121829098834950625694432477141342601838003175463073057074378750195801610164626962233057225813580226214951226910322782076347856338280684144632582494290073832354770781084289162703022831648821551703772588033290777011147484465902850080969339495972588066884965919401164097981030744856934355356590443891295572989099039395557533390956223451310068892004217849650643695879295117647734659985531573137979410510480919795216875224540525842685464179259739644566204106941814086249974310440857888045238023191555925987448212932244373320215702983800670893006752052259256727184365860625789764428349898100528941501483439583945953041709266118879147163300382805755880215381521578240878123546141487397351233696213750991734335260445665895482810278077075716710987898882730167395788142973228555340707447767967992722942355798620742816187982544299164833161909889688356302601255400242739920966743800494600563134598060526149846124055093651744370912952501189138267268796770286035401204119444131602580764447080908930494657923582213941524882227544718009681410024062983914993292945493028221310407019567026940808107243808203178332361739343526966625652920958706472133199225971228648022739047797295816018220582086962221372635663951560096820736255632344303417341743640978134821386042708114456229031381343849595500905367021458636346652833940805754665180312915139313978463820422753889737523884835490965574211452819147543390424544147547019646208078473542240914951032172055526842485775208724549470865224347626525558025697513839404585627342643520210104338919675655824703429736123674779782374105268127020066594917699890655128162331371142561676698594834649826267417219354131191263707791804844769396891183758427124023091261582712904165809350538895502264038520443965608816868495177309355961408514491080336619730805861728532211309774078509895274133755615093385121174843501478096961634808266510913482841320481946763834088011590757377180062806492909247396642183396140526105395791301410675155337725479562225000119693124128686342728905510079450581322925183035242949140340852763892892640768850128778461582878152898039341229212912793932732594899686186331663561327288457115173408923048144222863972294864722758059821526250436236877550538594006641561719408874969651849353689026507215108966850860055445867178478067751553080992892717638598050825402263404508748789130804977433943895832502421985171810217183253797804840276013932722543716774321033020727120254932970115455034498759042571554329476854584157367834749173520888369474339656066256713383103346474193207878752314843054105883827105693193491921746945101402481327130495359200667022003802160343046778163238225009254648191182066667011008944861695411787114870277076663081317727141144742180208570744337317516130813592105767294751244642779519444464756571593154460520221998770983573109821997834152741349183254252430283326801329569349471928173208277510677689810589221877618362173140895013981741833721017145087094759744207733987014435809548174051564039753452482701652504743383927439465712310677227289501259401781757394856907955870095941515057119727959918918585211111885242481741165357891434156835199356325004598758994856714459800099655677616609651273471362471896908969666975612823594093774985527717740077250228942698606825315598019928843456396390614932747985195777297189395583112286121482305878186019384344727470033345198985843737091377082549854446559713645891038198872255003317520977502878430452905922553001529966567463589296290188162058909720252647230831675918808066931776730487246205165792659449540114573747097284509669620622459291927576346631309632945971148871164224336652389163610617264720992467355886195049264247624723628538699482006906347583812087575697969189710454992951761341508922614381466066189336011974523489428685917433529960829569157768565726159498384609661286669164474911224450183963430759391365463895109769187850224590224822081833830093375247587692565150577495871164097639410256321217805699140448786015001627918343127264292875343672039475383722007667701816152797638613391803742389258721298096005139538213059401844994710947350407233322701867670913015558534881075349732073880106850567182045362078354329652553673222063555303056543530284685016505969626819587059987852616945684842901173212564058710814654993112199325623839104535418043696890475955512315019846083108435180152999752880502149465763492933989600126854734862085426684738679897884818272234045702004503485856723853178783228699961260953340192208189893270112309416488501254252863656670567746003976961289692160383290447615305487579882886494017452080539676344236507486026874323930432169666230851648485850274773912386980756062023364663304071107261115926047532869977002387190323662612780648188254830341933381217776417786266352869962906309761808583676357573364512077663210658675436762966636900075417455886778424443022042179675308129615469156419231300737877091792295453697298630602822629267249810825028677612413869705745313525756655822754738575162270721010357992527569795946530207006772071807456836738645371271349364351784026199593947725007687813037681173313019774389327239661026838047202313891127003020726823586829573523698512268776805458484867659145984772686371919740223927826025172222600938214782700930743035307875970944590666868121767368761691160628645551303341223211538709805783469646011765152360123663720157010096734684387671147258499282787633252601506782211967705202030228699029830335471620918376156316691911017916384838541979598318529625357071564746637470718952750756193608978981711001317112041427759665550091586043414755785105827169888255619306355813958333774418544774161465839271059874010765311845965966481877376270120300355249393790251324866797274086719907910525085003140058255343223890883330056408582060339327260058066715830862693830161081854367479579558747190076799489829185692432662110013256550938128428275880893220170444905872482983910248580921403681830647467807761258317477740999183506615706060592513005317576065095357901214586286874966673190181443725297669010968699101120649781536904396910288601973777272848040295551801164044434224061336623796150160041697171372547303459296673206779887882005614376290797958584695375133483022649663367298450333544412166950075959783215279463126566138624647901166083547107080518470331783482019355998037178818774430662375026132802012082248626103888439819183518280467481298214300587321751041671344939899447950669362391259340621163901708682834601040060239663729667078653518940921247927922135073344743559131377114762496363298484865304071318158464822136853018469027914989194898426735332118270103657986874856150331447025485771779412897586461886114173683111471920579760488915184362199624548284986729153021964219846095790658465321315337869755564556884948130485925595614194229268847392571490394425417458314391005976129780243525563309771452062833048332847954763297122610916185503840920652909485142060047601740636617108167485310888823623361000834410430739976913989177205278932108430896653555474078624064294898199869936720905780892352531568155071572237357803943060451212939587307116043588293335291582955617097606433455234906089365193176649252178375228284096854444985798194859503252214126920774747249335547357153050961109812407277112339190339411898314248190429290827037277567130813031216716675337122489455039656211012185453324022563854492520889164385017432703675165618896656771380080100242480736965894521768373257005310077969179180382190007990153586880889187681004840130892926420932850680545296532176503646062521169626414714531011936166039758225950672868327125994346319691496632409405410223247105990215803388440112985618558188508119326438885822312971630503636672577367655928380681618032186683909171087189627379460001831407258502832054599207152134530750169037252073341651106190496505270273966654239507864637724987360167294290835365098938794230558892493002826707688472118197391194850195219688285746784996069017336693910223440220451572293756840887036114356040527676986408693502105695630358133703461516326502735401932765448520118096866531134478736273859984681858853287670432844740005930626470992378649204876816850161436529793427884126679474197556256267430943038852287570738676676802222814833933141409726590614259000239554283935188274400849917987460210588462326269704346187440029196110901604807562495268909496833022687874088456347142975425126216225549913743293618544113420442992970648163445677966597295666404645367403131365782105586051044498179314568966456879361421946098838132322243118046129648458412489032696577723123906725437063219226881953581426884692613058074662115261067873504662297575879381384399843239831757864879931256067739931415526314240403094197019278311150742276575604957577970955457832085215145060311994548262018993644420771421267988263419741878428313024848554260522958782890920970016830856031340392422475403723350444181835819861797857279376851077711680468050058609651873834614132788285481715016101910079172519885485247998088778709802763980691352522158928884098219242979934083305810764326069434810076392800374332098074659621029297941384801710312814032796420458719062089520179229913543609371588990928157767952379074776244852061681100494946389231039073328047331279469037108576528113894831985062713324856618036993569656201136336298736060779951058277232254135875159368697328858789788586184513450317573187224067569507967990284007808534086394590918483698589185464479651001859760465633426703103775961816527532779482380454053427713571579945264592742627277932577634937417285806778326934245141389629951552864062087457293562513635886077212843857061716391296459200623882065533992353782566023545866334358539900772230262050101361083562767128332725634649828050063408765460761993969585069301822303434316619453982802277818030224655401649076558201336664237103704714071676955444566916612430752962624380923057134511135965708795894687666869168635699323598419562248514859177902194598086939416433830372487467907129084132215621798866042384023089558912958901617742267662422072219920569265911489251698585442721188098092000324803975067241272939797036181674438609906573217082662295454776921648073844839896136017764652660957964642700128541123508793238581623623022161489096460727367918113985332487876317431937349417855950787823180633433325459539625613891897562554216953957976908266308840579515927547399871821257364826194472121321280943966636782982535152108258778434135470183132866353507490108110485231938626928269881993049820385310773797823036219178408191364221694045436431449707777953532196272717086941082342948489319787618377228829289512794967324996183997969652804834593445507925186334639131010200695684023936091535257173317411773102351866445587284480132364036573806366209360121622658895099285381853113793604724428194202609955664876927903868432012993221200602623889131749957682350878355021453170968265685776906486064709914367274055105237224680666841068493498883069296543320932551273138551839222414675605957589305338998187651801781691544444313926468910642886799982491681605828021027241635667167808553323214081533962604874843014727907439175988790584512508646616574359116597163094442050032954307020651115197157324967686567361560798930054810598793754454672519867411728649765631680971340105217759163856000279727501990816305954001915267037472590243605205479323618310300110758687937788413368524044031436805396232335232302149455512907048635501174346033553308825992682021185416229636142191646381980821920041462278170006463232304353004997894028510145533685261963434648564355374174826862557255116495590575474962557248473587895476324738932649361445205570063332975499582649558361076994696139760039254656673892361802402556224567154454501199174282531088509937632541438542970408884601484845026827744784331702859304315017645423282570748260047018526243331848074968851046891699322889845536011701246094620352047464139120311229748375093984964034032152923469084149186939327006279940024175241049494638874501874093964221639862572115468343355801675660774594979274857080933415534405377263145160951999894145997249508205937325236063723574514501018005135414654223900262931978201043906096354437517279611445625174602685820149136595521631422016915858578764108431211000300717517131704488978274681397847507498029101285595585572976239697798218533726664837420446559484787469593755853002904324822468922648487664256448220399736976814928334237723736782384180911150684224076254553847517410157453765970043776366463168621112555522454301360429061594160114268806672513885897554048957062441253419101719391181836201942344522839512524355614153734910007609749540303931961284989685015040713698277990450686339377774260225707357843963184740565237910880683867849655417036727214845030137707357628931163559519687959192529857006629996282992268494770528999491539153722435476488436324070054762596965464075349860080768904805413773822108598014157867418014330552844557957369740652436989731332518029835034067418862842811518926025081418806688751744405530946964891545981232446068394463873767898374019779829829384927552092895866653142385846022939146530446096197164760178296023281649985633559991107311949621641687217722961635020544643107496838586460942825871324070221763725129596551698657252082503889325258549994655439191297406499825249234334999499852388243280327586263400804680757305597443895588070736607205647399869879197119670296547201649530688568740428106370592570231985388289317787423324999926774333109701597325037390308023731962312391748507643944171883768684016660417171653162096857198821505269469235288734471967547417757186334272472507417822904908080747105814898578718515701468044879652972747191873348112758922077808141689007837981554293205346143345238303740453109228948068505093348893776400691501533654406424412612479658198947692677529261816325006934378479017385535503714060121421091078804355255826036022242788068575413806282691698515394377787374526238675546960361551078522818436752936020235610961440973043842822322689082257046702602579097505223548422352356464223031310105306156216025735432104270040860974096668777278835070373564444023497940097594258165756454593279329193120068457952398764755969789517163319539275840126790583525402311096970683285904301469056587194501750450200263445067678808383847212279376245101200728466341099982794314254120876413882213779835399871149334267680276529994439996653438989352430735418750775011563044030120700029663057742970427476716446211586410339323857856828751433180014432158484521999852475777764358806835729906229782307243116741433795909252350736490010423316832354465040724753955300998213190707758094984557494749637034417811112861696468941765300766862782782175408488675703495671179030328739478401753957622176709827939842441244563344704554326049765147250259387466543235553516510781459290237742179019661089544700839291666308127117751000822704952995481606458769710121227892288843942794092250737862662122581443163040454920621965780095343845376861815851223496391351688021009445997776561891541850203502571434390057072472647626261970996074140954482187612631976515219661527329250603940754572114231982278166864968771167347129053139626942063281746267997174333635979974402985190063810365215667601955680692691092507009561242489828448393258434188585714810545751997915409702285046312267512923621720988965455868813734361868523420575704656787891284569115756333637793905716882350123247627676318911418845807923052485750944729665992082518764556752587526876940768752443054837812336328855661451307265689676464814260462393651833114934045226982264867198851619375870486540542990599001345563500651627917464625715200953774564863487018544148177570895663860815703706891295716435623061607251644274944173825630664048815812853650371858573350802243658939759471124823415025495784271152389444743320379251376956313067854394691688723582330124840251574199754063755039786271949709852346207668526442758942749376448008075541241279003654745877543307498334825689825957514227665081972282689551734578139310647166363858198766434719674007813870180969808717322849997187031131173086091246533829133508403230061920430866390361033565109942033856516589246616485765292704962826174828071863949796567055238924928018647041715199799968885442422744612411304055193090716888763785916659396117639203487496756539017707318127656170000647418320502469510520462779065404239966062116162148707429172822301323516576730036848977165731477254317140829784532451838660280270799640443569327289858591733920719490291737943149591765297921660098174057083844991920184091624297469484359543482242697230992608446885085987674237286989199046536836625414025995553101115451179447382048401509620717211229364258283013249833981545494625724497923373906913242291497186961388697096013013534705421433995250778317267491402852365451305771351278211597755062312642112767399960397042966891923729504966682769131046244243030427928245229550566662170227093357608734972695729341690640943754654165535712075330451487306781970166102908985817201283168691603328582164974589097095267847478012784839811186037406768548111832870451966758412418950394505270075394201918723775411174714922884703009041024191342146125855545305226155214703381336522202656896794601374571544713217188311610797110279014525469627363716620084888887024753883765956751519709445177295022221806397418842434360100794633337676600723066347540519141955924317845956654273233800954520358373474958101196432336931002751048278844476249040677521967123171532556180467228283549448783544616317757461145204592829675384636160131915888919477088090126548004386529040903527692172337070042714314923278615268768094205787147023905280661100900358676847250205274548537639954221785899425919511416695711420761937627572189881636439910700139525685013347212595587814863829491669726577562119871844559876419016621202331545498352056678539225758777341347024772665952354371278514012168828701298443941637255995911872502500308648541227174520489551003921945343314683334633048352126525683595535466017260327112214638199629603398338164485940210280130093426947021968282557877971129735700793372120203256247771216976063445879557844028148237663282827050768242492404790199982664924649381461940654299837956997676911949539341510716943947214485236763663929747258292302852678754429013519913406744771123563063746651596606525412000446603746205669106720092734443505171252464259342256953038818382535759969345095217549384157611084512403333978922678519037476071620923152329806431361050488644016886989289427310225263178734283549012695259930148825129103198826701049271314920226234805387580304257664455184440541288682562340777959044407647893214514316012464750362515693593478326922047799513427812728026983718416217306574182683279966892722780749083829961891071125068874111699332263626650847809679844525170367759338329803947569296960121950098324379121980156627185639318490509082171909719477836309322447033196161325698049832002666279321885548539102604457845672307289367966007876933828473542543706151892364407963008248402863608976400821837584460032653315278022411250749743586131927504939953282948437254296500859208836981835034690024278759938674283082582526583033986227842498312701099761533736255940748295551956917068708244844857541068666229666681787319274761899598646714632970838829375486643067824834078887110257039350813937063053296791524522893712117114085482402931840909900869719337340553082484857254132401586659817506071471980274825172002995812146060094585214041344597705626399200283795821628920924943678281645016797926278640636162249191955684212239431519333402250764894263668405085642000817207936155671543581225488916268573286534339789454058764000583278346071015354222694757405529221273573765963383930723611288022413188561154195670326481339228450241526764276716191798231664598317060778101177935956594836777118011467363146756422928836793963421562280640908537579720982532131267485720670778056630057505341434443224502150324196950409711832653674628814125487693593035858186688873180793501477699244795422693639209298969778625520226937048637035553463137440758086899938375066457670158508619932879819019986057467553396494654931912495993319055037627274384668887647498278257532367717190544422921246046866541993235011155019158031041610249357404384277131391757976732702972250916411889569278904377626806897111858642334446700298000476549236027812393138565073445585482212618826106576623894929780537142541839182809002466620571415836824170342619456817801723171945287440659902882719660155056964838965133643687107122847221152622776176760893602256579975432573521004578975754526937222620188112460252133762114141843115784766969072210706730111258387857601677483850592162703454732272828183102693442030395573811748998854120007916890466409957051546312158479123989092637867762019240418459169409163947665391389328532665089904274940643692204406137076951879446551459685970499381160534007216261653496336683831602264736796589303663710364599019053998976131572568215898601483991796857962510372027020089236388531280824986239840365905621388054786712790786264847043159332017296277799817626935648823436964506529006582311529085921201601659190852942257135093254771418207660420940451382992388879636336479779249782775299091210935574355948102634289286359350033215092038344723034380819725210448004326737381997353047384133788931899101340801180465631855355962345732986707123380628658458551990442391939623179645994019041342096599224707073112612481628892265316793722998006247160494978122166991232898939375835620137485286448559638499205517889464509457829631599774305019221181754570723593159212865679424670999188189851635810556176412325486887642091720508617311297007996367670338531658350123188276278662694937761880071306885230985556874084685359214287245338002947724653191725487236907145806806794073745589008835225576950572051245471329142197263213587344795733133525857337591835321450636694393069598696218587779884541359048490356004382484154368756537696649399610247517526875766088424780789401206356220738387926349460496359115492331091261376046235191564592292561919620776341499355172652895635535656244321698994304661385202471024356990863937441222398134814371635315494854396710484153767324964326798783000853485527272978586138923095813728651400636574829078820928300660048263851089200850383228131551988352983941247183973596338667402928231749558778670748868159477722651058948545140780492341910076565106934960413809284355851304339125340924157567262583364918898239854982336871296609213010128080632016932326709335924953763594530995449516722293031157639736410811190664840992264595337099307988496782591802000666990398593142578822722374307994506898837619984344911216661811496517299121978498244974254294871271463044522914494183808931332849066460347168656756123594744751012918202741350744951241149631134493705037366964356055272148579093380463930583625904960432263043179087848565697860698075641856011314527873178432917124024642617525242936091488817393926699141722053910497935092924410749235702347166697783788737486903770601849560410859324661575577964635134419085996654067701817824416413739281651474143993704105486580248789715754934556508294407278542276500334276618286197190092297235541775227605955395139818646754240751115631208562983681762586408897404223703540301173369105544489484273465353442395873301285359633078980163063455514711166001054176396837496473256208316304802431532627953931835166685584980384954309526936102821976834285129245333846691832898275181754574298548215934237641917419938669634897117610048122676169094499836477442365999754293211093002593543989585580856615204378496275015538717412958685702682125502945320848054239960622536868643585829450415823390971737166520035702833776272636078462625632215830990460528077593157666251818285364372065912250160957218638527664970067559544815179373242363987712939700255414342419035563872355899632161809954729376954873213554868076134084766452257889508343816510118657060400300684214187732874400358949501175659111660162644271447677285087040330873097306076111675952090704181581223126198968344425048644036394290430514711854476118446847019397285629119037188325041423697915274475078215656202094064519712381427261667441686766236460018106426346427737514696226475826886590403225676824386841895156597509486899760252755015865648228994888815929310401928898582250286814979761548440387264380048317026588616155307429025268949492961169294581071091429636038247785974339301385506778223515844520921658336620465333347999197340464700104782611564223383750251508612993434265831830702560901633898434091536648756104591075076399273177783442892782874263765093923192201696210443259092440756408310323973620886429889751671367338279764808931485328562535222941111374136562935597534648239545514774599508596486534765050193698732322702783066305345614268514870710360464936556682484370094315521815842879045141539384048457716064700802548614589933700721956069380668888308250875968573874973990235952262275735722689216259297239952213873317944926956383409762382900561152544758092199942771445275435562538480616758595014377820063613393018552630219864540344454223281034438759770580993344684795869616676939070909524718891208564386124623592349232108833111662528267590813860286870338741170970965375988131318895294056979789605891505450464423082888629740651542038664945382073472152482871487010397875610279973367882217167643891412317701863365101204637911255201074354009146757412719207279381440768482568528841058168380902547004286813063807677247703866470261054288343896057869730044770346993537172337932568766583855900889758942940679623759576824518250208336647069422815184852217414102965066367682943483163574273085695328496512182784226735239353766505179899914524813867842217081118887144933049365087662453495189007254598821917894076514104885063051115712231252699545506297914434318384428514312132738380246848795688318275354230123449919537833181657235867975504829054452317809844263008630109191301805869359843730616755235090934256178691713426961408677391281843156797800664735642445285296333872580275964223250936090057692412496466778714910169361687277724850099920100389996047943691457020336919085694442386097802824335229474747216334752380244653500611565614748624257543964071047740472206276585246234125527847702765062337802905494065356843047326115937952786246597475217808761759013163899151903248664812569910339454192754824309952069543468658950796659805510827231551865983802696585475356281423611801167214514613763203485063619156388062272655483408768774205783185344202742583914584977498761020130180917168334105443470041217327431342560083738448081628530813645124856406340563646347461061045995874237821716278411141945637669845889234354758480455801220100271699081148163336233183604183556838931118599867823341222979408507369085820501442946223850957861881849599250987935670472676792361194900122053174825992326415912642627593469077944878141303039692394400728622160369678675568632852677715055550310881584947203932577738190487925087293425884995581243622807011230504239460786093691532305951781100119784582065767358955943363823766611406068339849336507274718610930392129617886046594321211231054901646612964478303403460867482314792011161665245163937964590912510226952360427718112730528344956147094708169963038864302466057671512374557232978224244798250781763956750269018626119432454621456698854139861514930324782442062488559512916101079305300215909836337371264396016658845347229757088531356420934928817446886999019475149628353998058697628550457115185238744775607796169767591544093259613832808546978309278689460953533034755561335177462049817628422758179471523755349345273871431243803528392802525464976530671546827125795882550289774544782312998796745037013001061154605976812454670005011612780195843885651863257155222301515100048108502681546675999396687493056754974990403300193226786867615513070417563180826611385194355830400457357495599355509954702356981585902645225218466927096131195971394614344256540130799679754202985394096001808506940694806963368642854074190446583954227776782177350577195033557988902616056045312305945898664152420897013182386336972318452208299655077805537963485589060166009819273161688863938710067999241525426551119380630231328718284142112470027988621130590177031333759507595173701147868654960387670913593369403405264074890097412679053371745844691717485698038908975011864907332906877509799108823270457777640064397375162292465591080383918876236021822279706307986668827232911361641468863417824151099344216057997038576807225644473998074937785173857122309695499524276159867544640008291711567657594191993005995338235165862878270800397413818212903445232974980277751256897566775035244834120377745947291700338396779003617893980234458304843784361069016052616742445131301915405004394784903187093302851017176987297048567365647646277535426565943969358004215630508369629306024849527535975751370736487233041909493763661317234537311617882801746743272405770629567050780483817406562205047138130340880985821642956906197884485600214344645629304095905970882051653037722217426964358698997293443219004236467960147968796373068167590650455873112339472690508534330530720065619870628657650147256196415625469545153802020366150421314477018312332604810614069469509297542319609383818181666260212612524302059152518349255112133380579612084992175869947758322760595745444887486023380003757486757644445101830879573624973556035423049410479455238760336071563225157640842628020115152539602076365156783565186205914196286098312400029867744706423945492181459513893190526394940779053522443779727461920738791212600249788243423724953175600747170571401539414262966849111902852126370992008568711145040187531097088111877331814267453453911123173377190224185091690906062585238051301743208168297209881151134741852006633045931315243082887338189355794234544193759634395515023054282825937491922729096835706903548643959662320890732828660151683569308112787291436173619277938884954657181020923307545115544535746406800289321570198504155447014493480413298331036654024056126300494655732847642039342092340557851412223024009696872352687764484909838572434825701141879460003265444664955342328590244654135688744126460544888783634290580701364720360664449449483514304285849576408458781840435362389014106337066851207540338756291282394535201575328293317166003497873897654715137009760296875885034734151850462017087732471577403422164383722153571483495066788266072704689042692705838086416314881273716077875896225693149539576883060612371293004254754130729949884501340076939603149540651741263151742584422230179665889338524979848304259773529955171253548233523948409241134902767627447093288605605288445049790728997070677103337106878405308559799455937971213949660784432459247883194868125968101256173640371624346441161394104550388514762463226737812525244037116214317638086967293780869747015684058235930233303989064737875152904760809300635585700327400365059496184342817656876352226346502641761328797788373449557094481858728147112685870623256825417264468631002735271907975068491133040627416585470241045729352631447828282284078904504820883455243605224133478859261617955047415870004177219576087903135682231159278976741571850006727738165507694655797126342438102413543763137552103651474863163300519257169318214693623841121348273045771899836105425237743970822164120507361738411351867149963958991863819958250531442088192019023271752186416856781573039805076322594762947695015511857347633510971374231386148042067624296294485647707253854417319361841706719127552250243022399474533992085027710995971385520498948775698062404003613766130705360021761848947443584240605223114049383992990783374208813032512581398832394013920114086113711051164764769996210681205791852876330394907089161791992504700247770761769468441407089879753357701758505476750403209940074421293152146690905202766502528441228068823386466034647663531501594786731385806932245423504637884260368861111065449431683578867640207542396981128525351650147522244560732568493054212484613536228192717430874400064188270164301462254515440381397501507753022121154133335371969311171106554306250065690095780649138539541769953419142505718802920737033888020215467041741746227696643118475542750757916315764286481776557271134755731674861071050837706517349877801048178001967853167908447987097038901728439019204741977128350394364875167541001138924452586924588629073386845991401952256823858184548210136396363491179825014486161146843381601170744727493036003354884771176208798660488450778271012374923335056561274550086622546112804805255386603797393500231445694292405068453406998204785675369835061042668911662184897759100242699074011150517494990373079985068220506097146143924035742461361720740830397976585008384377281975987294555533612762555755978972259347888364640960597887464207010564362421768949890814575977358930494057108110897648644355705747355292477960004633900862755831696661718053898627787303613941986230995382958789430508297879826496175736200987516522648056444052088562245858952018185629955683201664553031888202491877073294051370843812009380535707953903787283703078453378659721596279595720303589729833343630147736490344212385491823087991938801956885191288599862087937108665128102983362062337392142193463981791112747338294635074952547919270181717120918753585627532071059348042477632473806326839825984390027743211122896959835350176473577583384493973022600661619707678909769758494414429484716594305442125411746764686837786284749652945332505431154961920624838539699465855281746575987311566006816337432249883173676279988434529775814391378651501154264964754420853521813977024704981302276212133954293427594719340462977093624703745503464606241096539568454088295970375040744940399143505339699501450097647858554601729604344837007808990829269599544141067217895590717699944104311170899852271795564582604288477622725708313137762342576137317642182379092514851510068104097547093122269754820626114844766297880561587910361879947105925127858967298561324840206437501643336494386962470376627569153426984289938992784708929300797065602502771827169846910027720753260548497722380306903804249005016588428110597264914188463855616294042040714179604330197071833255086815776819948391227392700680418989699575058261100969178728312749558584030951764661625654244651721056284827959569700312910552625554182879229651841563922141416791172676989750739750000830178223527651943367451154913757726611575296792093691813480041177096408471275838391037768076932401534704350523976394350844818272719393716078663950856720385849830878022863793420303714686110455641622499436181299117466489345593244775183976355999383081037781800208082996032968702310278814769152286645464171204778706763027765377299308557848162157537677089034630018194434190736485177411482057010135267302910516997222436700176231870933739890447411163636127365819467141448816516824088533343219709871846406674462070770215154328848208604849349195305672680683058693654435305765966351085415336492195033099383663544899071634963350902112950169235804337458974536692770232574270765802762745315050955139385337686371249120009675396096782755752778986803268254211709467423469100023974869382238328727365394877408502980617366956470193498257886797009877127676396584313928649310726855894982032098097082647469433446349787682408354424608584626893920648306877102865765474502119067945946985832698908845551049582746199918847708082789505771311119404170393797708601590374545201044997816024571570938765886828773851645497301430990869994582622248034279637999538782609728885924370443451234949449635263125337116739769896643693056753701640104508171207972448588879843838445585638750642740175829366514833702447546638845822066580056533187155227519635039396148173869438636539896482777503568918232736376039252861739509357844015560972100162787674854337105666084460305902000184810873731417586987926174595243264163206370582340057110100598522363211848285471101854544704017248367371389556308170499609415278986540841563985513984049968847618614812012613318676222221733802831912890456876174214610509339061774191171032372044921136647064366426215078004937471253232642399569159691550231299185055250176212652142613313412694654541354020437154748965425735402291772325992369741121780634720936221459621554626298839310402729636127844031400904747628653139390850008213122610880220742329952963677042157508477136573689355230353219356674926839222926788310495078317287837741558925661709355897112500104449531533644216371438080495786987277408892554715991861426359520496334969306958941258966684752087081321751675818968316823680906629932603970824767777799668292762891829079083287612181497135139255382776521999412136582181066280080738800873354101052382308799273134789144409190780560345454929351848728995284448948127773069892063107990518693624119854572586277207986656726364034302617574172207156706940986021576847339928388204503318899624187361348785327206691845082632666712563982776759693079319887917014497192962763938713564484511231727872338076107545372291036324027298384120961339305742551062375806136579941688959497506401902426133373006792853545393517292565781969734424893083289059775680728919232614969013973791878242399665400967594532320262336693558233423763081753456718301040017075868221171299032136685122862932501175262181889563858463945830326951811761991848856234337046625151209196583215662966493691194366723955753534469137522457840739712727070095835850695099739657751537384697273801123473720737705520346562671490818325034106368261480265813987952290851912668273271827654055423303958396646666528559475131588412041667418212644524093513669050617095693843173100267901129619672339339350071647349118010533557839924004337417997038922143723544077135040048579818365921897727190574790712867205145763227053338081309469393118073077532016185995495382368679816073023390548031840607945879929229134142920190088180265297847458807143685423835733927866690766192354191848041431632210707848618255227305610920009864516038217744080378099941978215503270663367877916189371102947421818782413502519021591927193004770798669500324463577482825993384854888754160985180366399780509595853452767582571425114832963222782664525200990224823006144238307292807820960159748386652547229646218024339512670124850425732935374936006638454343263191460706838773195887519325181301626115524614885022716782205990098772874370008773550833739614295337824336023698953236296375313310973317282232028778415845658827768499116438310233451806717245450010415324454633264320608193266592431126337402754998105928049969624586080882719398034371997985797639538830608966874376607654018054617128838928451334302534628396121824639093938920164739322759028623393027381867037235791367557170405734966550946550181017246439100229075376919662026629429748175925872904045638627187497358519203043829426944227502984927167910326256046520178847101563896602398348072104145069552646296236635517733014865296027712762585549425056511624237753913346277941386595777650666399246055687918587178655448936943861154933751165547317835363373411846839853610437672637179662234452298085948312292531317298383614829759405231892313789154070586858515899156713080435582282407554443997869239005798532871561962757267378965045958067194776601258852338852128099650257149646534230940831335500083167359488564876885465330956042118313838359430812078274072969981243425127335227980035364596275192687344937890627672662921552377908913865812831236927278683598206712136882206318918273108632785643160172356823641922710966574652759270701510282121207393232622312171751957428169933234617217308986309608689265120256305658238255682083195217192717232670394825715952647909425135999015957675820818359283640864743246416355984659762301172538884325114510297998061842894743639481053138726133425130319261552386332417008049286222105884574821466799202038278358692599274150462163046064703767091527231756530455895517698715801938806631513232872439458010677728994339712573340403154267357170558366137329562220124668190834022555635000051644623239376354631709259177344464707934581051933395502916785891273914524338749114778371646976897708204016562092285702279836357572455763506461062009188256973694375672973990189614343819324027909695697167924242745287537145416984280321667773676280847554564427859973477375438075354860090936956760546947111153556981826733347525443963451254239866619613445390049069432523251125537278488224342113876256985951905900355744107735614950749090081158759054949202255638587295067694763671474938417530620793639367981408345265980831989726316210919081169973990022947485575402388479901483354191625512868434586024583262347448402358021314505571157361249813705489051161984601539897070357884111749769974512466070036907310158548330604465504430301819434259132031632019588012000947770151015217276533745850843979575656497035173660488577649460187692417143705825115250522364369552046104831007336932758898055322232124596885981451436478601824000843117783659968450784035924459433469710543544480862777967409508962843401194167832761953988103516967126561668011699833930727241147656970468840805250943185056699948283840658179393710165704744625728341740651172432479711280286136289921334936941927491513432504075301756492935564849766207667463648639360398545951592599319827995501247509582236705619397446799900046399627212120295799745875778931583078998978411078032814391028483897507004359009630531944065238339691243310651312409310991736469701824350815427629894973618199880789220655679236779704109398425155909231529950318448262347119352206796232556581809322076474314684957842660003694399250703832705336588457647579824902490337748718512333274360289822103017803853633271813224782671666517601643900491082254822831528419395403586988877303751122144208171709647523076831021153700628150021111547721012302208835983763188554269906842977619136032209598396784614573099548391122129406081181118568040859084968024957382764205202223243281368023049412477849597958444154249136040823467727028858647442140590393972391999550154249644488332267426550136477510546588500684617201026438929454295731902942807430628399327766798496283004047899357301281000324694935031211241592656341300526347499330842089953985193338242532997712704260920636132431177745477801237887878435534353395708560581223142873259771313904965108961220162405562520075672393232197285133430346113464685807752473940292256734607144826431921315434142655844923062001182840280907332558953428951765180473280099951999136098728862451520571589894878879440697880447489535128270204594641801790880560891226501323764269808585318738444788045415944343945902109252736772883783232545509422446287724918953474454184801804407792402478879679895556898903315853120754657316745602076076845869744251732916115132587812046383615050080035008670967900126708444201635243087072499755605232840266119553975609225118107666671083039531056413310592141501081787897824972875316828759123869927190277359880558355388281578601606920622753320948976557175058209467242467437305982600206869113533734400195842667774883073555924921677536938786391348832966269668942516005381866915346378765443050300899060846747149709939485291507331010214696553478819443066176329215369024390527543031117684148079635404115811500338748423462627923868370934088494599152253192468397448758610126585274594707433008436337428055081535448765645372060039721995493656458131677556315524415163237689820525101774267247871181303521039080768637012087524551275120228070607323456008487625085517197048616259217783960578059293067877175573176101658060410015812230141618107347916950051918876758764435997474868884827695188403563009119829823444643692505864339042166141695366570825342426844372306402334517811344407545113176443986204151655963994002276618788409563934495688706314495073675303760988120315709080713707252076754631195043198488105778824484278917258885981721329032565582761213648583085439406887367733308569479895998223531076412106703651403764278864470446937454675033604989767951546331930442334069948780628177351920306661876750269021131760626287798278626188694280724436099450406725555681335841194662411688738961694221660464645220927396008108345245240857099977674427559388711432355559188321800488431699053867545529174230056384774465655565484655474461483511811075522485574526093299299250555678445797318112173655806028982140747499344184096911250674625254295575071232848196076366190610646885011730713271142455180393261660233591232628894650355274976790193463205885305006930886884543284801301154244374623658154686375661852759093376227350039969206602567148704571714122099283722956298992457858677050283225192482472252075478149363932732066622440166190548148876887804005475033518189758124834118216684775550275874521631908018742818592146926184846800639362760117290187473013669440926506033109140296280795338291248495890069936849850681359776318312193864345129893819320067157985839209723290296386062030009120482038674901568661311445152972550217662846734063238880738662748683840184775006345464420846201947623964014240675658568972166034731235276879420774906225496764802971505276797019460869410418999628604317946765801870604576395134119622461629462131827072881808808116968852226400471123935256180537414169122504339943561781124135988118860241213748130362254236712824289795158482231326889909855746122480671764849443065663152045300922307457651214420725638667487917627113544230407481980257346036520854438044783986666390627618218561661750167535184554087445589709400853087990774961301420912363340443356962168038845201483804039803125814538047524265105413197265581724269360853027335182646407029935984824790518520581999124487107214909188936609264511725932148851728374832201690632355616113644005717382427547240336826724065386092489575397978940739457816536561975398938858553979610950877644845877052067603191336329060849601708981699095739680749936709740443640699122152116222975902694617285172312588892096296654702961674009243835172728981599343944213603383152724993170990314115801440660758982669145398023829270997634820216122704521256363869596905803137433156724547845349835921460696780325988935619170283827140775157500295633803797624974677386311421582889275505082100863890803325859005847207769454906920530503613188627139028734380029946327886266294536309648928413266256422697720475429127108226600362263580049652261294265034991896803780187668914735226535162947341958607896449591449298740900003890667767816911896988668610839996842965201086712166273827642178596802679903369060111377094493514293288209675001884084541232191603409093462679941867113138216508082509799027817763097585009205112081293095112589287357274914086208422718792723244184397669764146123426481109443440679963599109571306149270872096845413792308815280324682162565952462432159733847022869383158780464306784519222056756781948540191010202698406836060452472476563535682096344601856726220956219898970767987893531369177809018672579293372759110990066478250520321591381275826162832479579424282103963520005575180268906374185751511095232371718819903395730597839499213438677981153597673812180106381901940958343323247754413356126760742345844224192821923375593328904329595208598307829666690069171734040656670088243129295856614178191581537546803158954919932819374212928000991701561925274829905580499780361233506568731926634805451261396122507153289334237522084907133957139238066900309231823045942863519149618292800459091824082244075357333909306113254706180207630750246341399914885653795560970361389550544108615361083683367628528842717807293652326361423114313807775452650034960156875278063450018743793679211451381232184988796659501281733952911083850047690172801717409710627127649388349372089539474789887603177631736007098261882471462526692768959016590710474647686686123778957000156129022986931705211850863381592739608134946285932664376824713063949751150897832295862439538777749893146205667792193723679083419400518416389941154335772606027247014669329766935058953369357601766215220003405943768145160725250957538022744491309628150688364134343447226074110293272942853317204614332786283872161656423267087976303395803531355067660212539751306265713565960948391053851550695827736294039503050875678793038877923491126481905961839699463184756408815106609735848874624993300989886897226552543044334126976335516140647184565553896154872401104313661088294919450728561180872642975110984256676212413575153894771437239860595746244585281335901455858739178561084490537091160416189044854196321668875040573819854980703641892942683396247739022450269658042016830164984222017048843871699290971483544037151735577700022626463369273636764316580204166995951820713556619736111708472941969714282398817144244083739515950497700362131831133695323251876462490162954275671178979790874540481213409181953227585000446403807265639905426732436121308097247723638868082216911893819291781354757496999033224395064576080615574069930287322043644076859876824094596788309247443945026311370973386168504191314523856890399637201023827554784472979850443650927350930401513881885181031487619811422279063482061203163162416053316783682007476423513605885149793235480603725718051557522419365071829028899734007960362756134929526674388851164616527410976513358352501064149734030569632286217138207110018408331016972646672579170023063867403573279897446445292501959365093041974757425583460353113307401937722171655970729691990835942205587479836977488070559940198943216295481235127812916627226466769821096332388653937931064868868245578838663906055999892298178099452188529270438240840252300844163942999407969273705521760038114251517352915264190989789845637312928848143683219188442449518816600205983099813514853035532280166864145783622425060111622437481813276055333146443880048451970672548395092937911389744825274154153236067222104822731114488117162548444285845227049342371139498852971143357424458465838863408798434865536604334461814339118526902215385005706328267775100160726479262274673306621335361577569165509276605862590751541736400352302707842805607483810724634819423977391107106504071129331060047926018657455688438427159802046102993101531094552634719656246251644873367892089399445112794487247119855857933198933186374531712279098142834029644475409401365903311930838163917047162510359568644351250741226728116771505439319235448110581888366291163206488891730655745604870662188115236785056629409687750500171698623184846394836188530658402587976689269839557189231901793896667030532722570768103530887223362814220616823122595010985477113690381599206094268699125150739121515072431111922326547729742035245628216459241202489855314271527332949452886218738405095821587775480649765345297179037681075221868270531302038969922743417788094370207031819277059412877256514100559499302766750213786022871360472859756678641342627433066698087165558073910678738732424780403623446319859728964132936795807987383826621700336011471611667863009134681888521847653135113334941512271388488744678092135463211362294913252020583284360338535145309585010564616805589363188684467432698442881503291238593379600681943722166793830533964669392259653472009149605740685063851795779408712627723578623776532670940700499008800475720367725297399503711671718671257519724004281972338237912349380147266104657461985908410650323634282103062724918232514385015116720988720246509168617121919922354920137343682634333917718246575558421367730945799276894907916598617641640631184948427788121926734111553097616942027354575713173091307546045738784794239893224840772653608915704232649333119910013442581024361848739268013512015092309289692891387164918963943281138146558283674228738560163414351848836365715533119928574575158069303646766407365334005362987308020906720577235890965151823064518666848046936031702286941602587157150606858008938809102573631916597699163994353069733872767601628417844206116403790710023461767046583999959884987577404782078245863252036803554880690831116875936866110160110163326604033201379142103007190435817660595821484614140478297091737077377017687511550036618070077226394940514340705687603026608194122169256743017410484739043550715537392344810034442913924804661952884907782342332697451525432510176565090221780624372221001990607291613165247642677833838910766896813751024724323375206581437337325239241387009843108803236797610053492660018266838268270187513205651670113450704426676727646057549070588030537696735300686865621606233977642639781785233973459636958173679721027601886316132555710936976891542681071466111605519712178213683729708806704880865848503671080370840910631635734847605861559947807079924675210865309234595737770812072281977501237277097930285955633176125648827340168308911318468640613279531314063661455027919007766466414043207344075104484144064315676776386919414809633496332717508151594835251729600025740414053791146687361675218618196343099894909810572049861738793852157394933231184009819295234960951787494861713669755326679324732578218788157124037197582177179940663587949831900050371561600416589585404030445773194718980493204362978881498928115303679690978282797219697631254233692509281926457435396792268214055460978565088587196363060854322890567354203364674298188855711078169081932861836456852726738305586589988893538882310155511832891463633917112895148265023659023860423926766435141567155978004450808639150491693242303420434045183119101130912306207438258048336763521685663314500467035287632969259174190482922351952414878146248566024233240608695360003295087072393864013180280960797163083647881207258927870323211581237894675809839773188537328047091993226258417414452952796822557500038148400051502741511543696192880059376202529606082328084712601623482928321310998097615604693732666930331202902765851963349305260676531098541275832331796677749724947361940747343938453896325048589447260109621351645651021466255101922069553530462575004734982098193171256434192233371014743594295454941091049902092342246385875416837391419018840134598766539735410707336901554878604004634718337895744884060359065199151386980472241893095730806980156891684672278161539930569590549089737715202841465958005963450656483390169512473001626893181817176587402965414816765876069957646910447813410988079848685989674453984964474718651002040431119666060616378051661707677489723048351364281117047924884588971852727108400872919142965907985473393869759922077419471285388697226673149547402182644028879088231875592026941683796925392840879044635655703221491395766265202504478067554302935121001384122808941561821697403106627640133642836296449905367526376248479491684889159388752080379643263298330816482331751536851470917545635839129878651514754730256015118192183757651505977139736997630621021131631817674285724312599869705785454491787579385329561655353101565497146872404892629184081215700239831867734024120043238710309124346183977917365863090417513699109211045217019598536224628084732313033643524409769408159229694676004752776227263573920276291685042689906053001907031577493313977737039570617564586808126983586516010602105645346583636197073250253886134612188743622054481218422415263016143769058868020520993648263146487113922506689486132829705358610184000443575159627630504824062585209923987574284848188277748265345616866818083767554154001688549567887681691230933205943840322558491291037330548305402738100073677785383371651365101976591176836770651459798441922886533850690750612529300506905755398575728112095146286471774223085869307819780932729142819700020877796468013349523970626835296839225307087062473232534834695071243330343379255243847873588704008982282110761479095556545428115153908387116651007826484652939164872564049051562272349206614896658611020190260256830447042394618890935334679707527807371378939220434427170649170664130398265541733083792266353733416066614327253640568373047486314533689273742819143993163714144082304327505733574716707251998570482830181430043824581840984266992751276778391856301209066750366009506432904471534478446180835969739561881675067142829918002480030269956470491914471452944520291792051586467119756614082795966616016939952176533676219950654666534686988375029011243743617440032174154814953107097680619372408880263044511904076900019768579777579347542998866146133525157820867977805473763381002579829844226980394472164706128081942963579956827280637480518650940323535338275864096249452305607262215912690795899751890308645547641247076990151592464029338907389088386811770463760839868355103069994529585054471369907164182813540803140689155712810430801830591223285513395055722372745464001990688727940382646042949805744683806108285034557934490055867041899543087567060545688809529980795516155326044025462874217968113451241642971320691478603561883615533072291375784091007496032444186954048489108427145311236154660267983187033673423885337951483015736298134464822328749191385347892127708565557427249967265174228508481161847737652820150598145073510263189823542590497748385180412176315120836823139356770602380971325355580855283120700219108363709024934799425985641214146158212690428467953422588739387841496928077434079858594236839525763591232042230831571480212039078274410930476689374761176631584048953901514966658026707535397646303485757993322379198225239400144027609271688570281818210575742712480506605937888894756210532231655751246252159226773709443385729272014272291105500986201458808726876394977464285660955984005161662894829687091126981821095092806746033612522455584055160515925462111411543928779826716102638050129162664300995318691145152776846018188988018959528371057041994979177909408182904222625644495012174908646047898622587493879754992506485134320735579550961501270208887604340329429040642854627096363107986269490807554748104788229619590153170464864120178512724651501336323726646609721208813833873246165010602225394670704207056744222408714109849468896153369555412597398403808816148474864544509046875179949735907112929823774876729881182392923288952998786955387307919450150572844206077676580928184085225235944703287847103226387776979692823380049169940609528088328203948463655842663811193919258115059187771450455746500374766894464244450795667316581077280600044906061252017001630098085126231953015413478722506781378926186734089563424271049852134137876798624493554053189093536322984721289809670557720018881521909851978156877011633721533617040341154911849711406530653889904030432223106442534395103181178755344320226594833457138517980156646660738834821482871104914539628015241549476507565090035288364064195349787715388540494847544030228217497238135317061292812456323197474118186392947776140893886393901209994181364199494568537028321363912015063527542296258923356276171076237067458855212760487319472788364873844495189087806238658539622991411727734733247246882294809595743494398915460229234725003884309278983183662579837850054180950044725491690150960144643731534158162029517781579303230327418484145379099996212604415248689035869460578876585733093705929186243751080306740880663921863103118218972100261637161681808593913943450153451693968511409385897991458619830276581418697559887311008837143609456489115602698004648129064784262913881676522208816923159385388319345317570248527790514932280222080137436115811450348994123473381366055308053418067023513237526058306861937192766228693380266143783608580722256740042853211369644446741847321222120377624937120511967691404343019891711514725363821717435626777062034950136981444343536435053480575863778512162662253017600436867729516656695107812860195953034512544706029647195547770088537637764857010311044731490298338446203919329957840322211661447296326278725300225799533956043125431704454258212021799318898197916498647722734455130294238379952346808118005848914390808613659787756854500543578475498544793929929363064062468457438926403673790412657307145462622390132112465502994533040277259575377329608619974042607569345520556429632624516689053378566340354702240325637124870021217187323952433581261362433583287244957695862242591821923919857324805518597876120443793692994671144285988836861673563729555026263665584028758138688002675531122359801086896294106225106032433104385742445808822541008664223329546049448596369653563238943421983505570500441627119259346788533969055510570134592597041338480015170024745088785540728596447357644485269339274937360127665214451833877718211456570740572480965150224819128607228629011553778348906695576018089588398715476121170051735021166935746450039768782866723881703138933584988955401202001630872611123312326882415161643276293396018646511674348695494112265569726124653158534964839028161636819093560277761779510409921993670049306042593897488030713833335836462836738687318374827824376128666520085436037187631009682407063103944017403921435785232057228405579490041977329467967043323353574673236459991019699985812295141236667498872567030729119048102553833917614969135834087639729290410676978780112036569042520864359869921514753780206189721904092605386250191137656513631643504075255958956412036006841503251439563833767141057858688106886847230492630589312219042361933471112365920224233282343241378042041304484712111734911872784646390985234784684729242474319425606870249039118305312669194006552786511602465724088483703725332110208356837583092795429626792752226987858619766617842319019441689040283092725223966199238796482399778431725234148231675227129137444990691233720654691527519962283750554429488316115504434714896780619396795105866202505953050160979885821567734619286656188403556591646935471954490598114118519645500815091168785350116156770372938607906718884653317961939464331881418948277354509797878094973885926479290731553997702217393385426890425906912435939901341586790393828361965341326453745247253473457166023256997642768506405417628979114886656581228491334703260556750586216898144905909886251515740427387104728250718474325855099158054714113269478177340229340017736380719447118334216751395193643871348499343540440802255995446958083326540825232329826495309830709984255829592407989667040275566005139411842222785913726148032912292167715561167784655517777031983660082912997390057082608454541394630302926547675411763704977058151997376235421700505790723442199701912341667490371034716869917423667894867793944062465718548833044728399861397526738391027361231046201976998549704663798168719384683500096879955448530964301416166084150070222240808275779800773600726801464601310261394076849208494538018072884363046803846031299694419929140205945806920978270114973825674624853206091743905985797161692574233596026102012271632390219320757147271874145898709869080111168226507804044959825406095209527179793748030003861938079169532744186181433077154286494215851615856010408333968398264656104593674174067185885982079776153032942519807403346360785688066307974074134038449482589691083800129052035985127963023557145040250619791750283249678233028802423219293357422566665008041729825427971248627907297513470407290452464771401533856641642432789188937971427223692437686127959732685954743359520283338614079970259369799000856467850704030045589010975207323520217743426463489026400063892736979948254237336610712996364062861064572223026881141635801321346067369222157948962311133184798189087216226163359222594146395834089139157724049886074537524313827753491240115124088291414581946155412703600865081245418744055448142029202439514666109257948005374232202216528735881179844952930219936403605934219315460283370479609908414175316678032800686104759744851881557479199375341216154764688462789904565617665056422297546024326869397458426439269005502144194548355509733053722921910216130219081285861025050726253561500964515463891689153389851622789862468502621413691559930215263578689185182166419290801032617922828652566639234081212396045617736378250668301588999068730174188789988835785672345260075964073437651853388476075059893959341003389242088330776410343302847681523362466892417017278005787087735092155442004801124663483947968196325177702366035076858628703610422709194296553798746975992688223031619549449403833379544963022982413040774082097380679444592649633702103994762952072792605179457370499849433192633355661235924505543646574983278331584322462246935872589818350466693912620301458162571732281207382489051486651421651231417955296539667648592429060780228977708098679315598077322561958623012245980712783544561054054362636817848493781497683739432485300032359467144638042727240238358697523616364171388070652821255559293272717753816894444913139472019867799418432905770023022412113648712431376020119287037888128373273939195018406322472003409963590711900344968304137065338983608604202811902258086137148792366172128924843909961107295547190998680915707609286451370071360122311807591006609708678453625722412198093558996235603760660577988377639295345597856667930216333453072564649238181366893750941569285452084594197330910564633145200352537218801663499503928565731070605480510462246574337116938853765360853692507132748327888081642521640652879076530579336054069207469039934318944009872968908964804833396440203471052910307235685030175133150546227183684198701090875230554392492453392234008490154155836615748362869162142762267426577520198437635410888583681910410373446022761154003997798053065729760551376456782643601797830272055707669510211788679610671342294153674037571763230342906429148614555617618896452412598618892216187219567442562067710921568797280635067040660227443683900478496307472803988958411042129502192347948714908370801199961303575007100683507698258228425837806804969921201783864385003032773794422000941054882831489838280281516773101007716239093617311253877740023463746829329036319060182688179253942882386658835831429240340933504779951327180859226796789437945940760026294468798106293096983179784825877410117272320288656045720007562110157104329562518774411272225214918405647377354308033673718430134708320978064573174798917351536930231666556610120755932782621442008055301247913780842561333127862705209869341790090462931384526593512528280799270100056016081114334278419491243179354028855209654178121109235849490391838122950038530292792179026593659123877230259545015510823010793683474996084208171744688292956605555991457728869424175080261101006166652624692377576412795301842923423981118729883939313727446626469007376959586480128869892528757253911093583406692678268936405179532109778882226393152810124192531156724740484105027508518361943185003118041399641748068090958291112590142522932589542433334042802691573261625562849836747576709968006435421066934318199309731398110013041902475002394996874589527139341638910151982571868253475652748988505376706056884736580754728121116116005981018866793862167649871316120124560586285609745737498349041333760752804152273416847136297644773956380069381967971269572228102717100038166852719192811562013180453188791212491683587449964589907929538116148177209274612719222152230158779821920787648241890406899631760269331366981737457112917481211005454307532747745429115635203894638367680547001660803599299339992155829986302668443963404054218381671435019267969437368363202511332528401119246989949420398933060161331387994874237944923636215556484720994794161159258148771625627406497817851286376508733866723586297565578420584423104132673500092686290931896645236242831936478983336670752252449340894180367028038227732286016277645147773949887276533464740654402877052482137402620807405880426446916992825196384067385790337229612484859560796215452986939757452862627496311191461818842345541060109096095633622640927006374635847476830923733867417042720247900629296072174172360018683442693159322928676233313590778595242413809647475036986026128222337059896209228346525979555474341921933208529468074806300350113856965817162271256255747508316937618425879564825508752939245356062007934731770754117347400119209028723036370755471229604894043933351502279434894895661162006813053734414025859709589525577561758627360316501968902261738721081244364506358539495671122319571369161818396787647885219838079365071677566136787820319850319543929027681964816003580200689144047884123862291028959590693143494359608050866738753646386652009179179468042702532598435339612095746251022997446539298398583103558661944738345002775312017100650518992738443804576920615974868711671120843351773896687806958333023839767938096980790575713880803046576346860294449337699228254893725184340950483683506465025682468147601606471805264856669487808725655452603272442182956965263482079812623458362659572155740645648314005868421342997109300155616204095187574779450330374466746440417169043565280759568994647684576475982081354678932579659279291276401753572024019293782480974585485589985929639424945047571599844233200797377899756796627055551631544681798806840736546455118509358849978090788191369326130742891664214962523562608846586068826005097960412842468392106949012307910585113743646795100042920236533994490637854156500263111369115111913312785989006852209806662918689871822686933140291668310710391481933241539019402831646665881487053089717513427019917554883019374008902437045259458908425122979737970610911621313229997985314103949839511978469276645641646353689789310725258274422064662639871068028584211837828744099707160445587141908769504785417655815432662282435606691039042262110866641325928810761065443469809753314409386667956646695008840391791638773250576781821039659135135441154918610547346036989294369117855288055780724111751799695776194920019423640934349114688325367489008059621565936841345310003951636369746678379416958354275036984220143359773060888686635970641390339085192059531276544572076485088109138382196274142705419290363800122394209191453238883155933542880126101787041206509844440380631680854811079425131106451118701628469717610727737953486043402889274911764350886965459809089460982954859209444204761302300604633034216664149000295886066484331927485945386465756154002996518351355596820639184428037033026824214952354264891597219155694471148118943157010105885196418693101484457261790648585375133043974935041423847530277588448953301410519438108154590122870554050425180699049332640514545426801014415006876901354881701753321916258395858727200428382356263356060144437754488938932563067587495548399852534215461319058898092965507268676002470501159004996903651112481813621224250309600203035342618818150206043907272593450198280839628625553796529777325628547901267534648368248889511301139290052428231142192901340727434395896209152180544789141073017725652532614046279809051970367340503913206704017014480868480516323006569119312688442740307211489960302572519308668407270034469137041174186614666611022404802520597469668564485608768160096815420582313276575949805376654917486448150976614927062855021087992072794641134095018566415395627872783194408775786405594103617807385362779329944200336972271319266358175370051778916383195731040475605354332500292869412875669249641266236173316692824840057571037530099425675103769307191270858707947267336671718114512208078917822847744897773542935398140651527990986953698910306107662367013727581848685269701089852646336829817580905510260574714727233028506176313362125563920592003251150668605289971194383305286164756691357900070678521872955153928520617730145703183381079809586119766060712481433612922719411897979074177628798168511682355822911728836814238141428942559790618464832819005388451074088499595871183403366859170447446144456573247914308585960784242085057009810415900833932140817705382126480360000470637740442472986620716728836726074224019556369497747707714845785788547308601170011663863990113945419437111611320100446765725706694440089746106479405735215612685431609852743069278355055204114546368887415649049424080403558665719795396591015428833136895742554947533328348790564373923351306001798586208400370472759364491477117925495935835853204443979060727348931743916602553561854918183840111034436299129011722570910290103763297248039383405492155425032377658725771718471361499676869812779958431880917469711689964790407363895050437999677892147100782450339508772114044166501445749852366844914319377256278335139945534664898333617903531906429260862751443203119085904522995598654745217803289392364782570524724535946746505530230326907572014592586132843699284440840351664200410346579735827681828774265744908618551548737791615425341833791119112755090236545546334962919874187173799874118646881754047664228759914400159379479467885899577243751142222683409402305440554732273577421149068249730847723893292467406650338940148554532117069771861114934831733447543798730985701812943604887690373428855073821740336249285357679448904301647852474724030431552000072831543826853809706831071620573632190492153371104361333546497701958987728154683665724537659161367629202368457614711585926271974397926534873062296286984311062354065961227176086351299316763335974025231120559003142569688802599643057695281643329194799791723780310966265019191360217689795256264809177181129098540731830454322831726448405939082365588360760156621682980857048375439418987931339934976060056581578892787001404138598084473570225712718899152128359183255762122384762622767665152264243268766672681852350245958054521647228853989640654806250997085562519832224311971227932497177280210233866006188681066030644001257123954226880263147708033892536841357681399497238272408824193500765602657188512856403616280282193690500702950852310663811757969642562742608967041763644339829864117234685746413917622839085479911415887292390968431901146678162712432539992154936750331040405344836671024057464389429308041061740839458470059907596500142728615575991029731697819807025197102379502614950165332239198544567190187306683880066706874698445692782803942479812078216805238550456841020630282852390294428792646114816971843414648385909367750362240863518697410633937626963296824108490491143321622811513327498105128622107339870142446302009822332051730654782237870236613615155429625051775281584470767265514696341232658975305578581818447563104745409571078366205278445351105691135229813357700849735168518038695689121033246827992877742675241695196884555372136703353489288119245354445811145100148722951839496650543643995273109194450273281299782063477147309942024465731371173991069043703871535569071421733005191765880198778155856774308385184942420499666854128825059443970297320574962758328919996240922569686160714873244130775182687998375771477404792223199479860582584482991394887933495165465250861514022183125059720255540725428125088032098905196088559845129476551352976225769365915855591724424719328976695794610464732171925640592289415191147821506547928495261815414302050674864374866578191063673787430645057036635702586607250243119789411938366973342716516097577887746756902772900922372237665009695380785341504265896821611591898298781480766304646838615141099130064614086518287510166298140223182157818540928465622401003015855582394278917222171155589231071750666781628465320292499991527483531514199833487154110192114086587886897262417823035944576276351251269361742800041943600086002210096529521167090201141217525972617515796502257833250742348372906246379059580135188410976958376652376892930204497401059504017103431464489391007880119035763955334781758737884927973136179318683824172936874128283346967832813865254584918656646175916721506469065991746408965867850104073160277526183506643984870550675107350729838222717496026335940301315783973327052887298799866406310703858433775927083263495017880818625265963871214739075031845628932970730352518093341851020479958983367752017489782085550335722354227476911331354799770189269498473588199731713127449012820030219418389992651332052368662543949923070007521157360888399417694518804087877887092584283705440741007771326670477024847952625177880825637560370325503984683114318833030422753138375453563761687075263028971611480450449575658896306792861374008471967809503255108126305979741637988910413150523332734583001100909655733819710658997637863507796145638129661873375542852072443428994111631473338630687898422480998229756581677554540982248268005738190365316931525980624846178928114276962810493692807291039216755440250947567330432006786482713914638373041129802964231498013363687437252165964818881697005929419509076974496747748992073479511749218716359954243368882712340849216546303736438727594680918644911045284714223959834344011359174741666953983562667721693222975208914195014142960791964229138508290890264589622972628103551061709211367792383003671556438776076851335308801930543371013260212031341454219948993472962577206272278983109347214514597131974741687389812084782399627565319540178295373180905300105624334737332733700992639976470882076098274192885254060472977789340365761689561330430563165514266508186365961769025248691542884416994254030091162626018026704802196440257084986303724445898364984161312228821806936114337066276870881194306836096883158158000884692525232615323264893772773246112200495120079096033994434559139872558381154637540522799012579675006808081655655086375220367676804455055822451138083509961311952665023325404470796062430530138551743133772550301371609387668355738082777982364740091064404267689263419676698515238910559629730831253559605218026539583916191730468314263993326471988578987077873716596923587987055151295267994241123349740182639957504964460322235520619494271188218332419914086218386698595133642778924082436987094624067311051246567268574219559106523488279866286990685717259598504342264219820162198085155284671007634684729760823296627755579296352016027123631864864186937649147022347094305950501947677392772261797161049168755211606707078325119962329966049968909781334818525909161914631341756795443856814155508038266989080105408620263130139552987675782602639797470929722325696088150219578948160377809883636150021336197670103454505549373075039884860554166847742122671517468040209205871657452136178398796966644148424699878730513735931136752966143325893116201787539506054530108407923249812989498323152473165623552229036379273409557246471200727807286079462814919729798279940517070946669614203828092643247017413565245699219635915552455532400893249228691017321020764331783118345399058519227990073146290547389280709757573479219257665885318241342794892672237284578998651883475853172188853829645886661144581394343663329114832090366583635280863143310008818343922605628305211871477280285132181791662374053077565243871255788557607876994209886486009105324766346501601402408643186953448870299800453334858946442423283968034543789642295722679812410279213263569220996778037543706116118230520230760438541812282093016704391602638627026123887028388055586930651068855785064547272332168633186386968538638277765923051353519638669417915072313036266311787106785173178093029633780983137782675112523371016580664394237157598557831267353757365143013319799476770511132634280514665828792026503807200973823988505994751113663005094872771659014552224740181118812397302971994962031493383756730124472455448586498006220791703640980907424471970692028330865427326532552859692001357857691407647625015081339751730837066805830608319477688912639278851082216622041300687120547263153252591039635568944587265866096230484362539098019427295639139785644598543133928732227553532688146714875101304627384692187171649849280741927876936453025029968186080742177839588444198363480766402092991887611645816501126180529962362053247358294440838003889167409143959321120097559686883623587801219972725354249421972774299274493735543509748435839024301089705103980671129515949035587749734818619698188012462175363570723125189125110961961864801224876086492219928688918193235959584018494011532385448569002368095098836929105437678361622116114502214372586128395316256281505197509248830026830966403267091090430442109028561918885742361223364180321396510889724227194420460277522830927014092627659363894480705625918264617923256771799110515295536090943479973822611147712103889134426274236687532042929818422447910149654831016850708605871564117754761183605712422952341831075636296924038353489622595515750723438233281103836115254773572798200169865954076425583464125310482673912974224529048156390944318364577151327743896261706013310122362565067844932590102469364324073600468447556610449219665636607056558777298569779798562514789275185375248537404628762687480384196828444347273992028194795396654716376713449433767562137668085670285773978260054303133328260884549483591384969610324432396619925901975373768120629206757609938608518661318763210397294581599592272842246258655583507654442719312763240550829037564621582777986474366732303510693921429102061717696583911597974760130955176765434922820813574044128909929230129914087969843896777745609726703157839755306380906385971290597918727956932177955130356500955250833155526762854350555526845601464222717228390070098490693026363537059514691576030998948694021157973746108864976037245921823577818706796660664836543450940177340998890760976915626365793473125035027970884845108753517939679520132032228721972553810040606222765798349577162633515657037498577670957193996583585078731563632378386402922291903394065975137081863996192431660179184273218169923448764981583789163892213003160132923890122712061294079080698200837339483241473920385853649982295171118381245762455903253323209038042562251861532175789847231186823216612296909666978201901051217491078585248318569745562765192047564466060006795099479073081666895211508269400795567472152952996019611187023109809053954636428363021985082610514227194445004120937328422931615005997010176847365050410645786073194662274905031501416222029376461983203543380087402957902172307759988011585146944729453305962056282225130342458681985565022592521788391245214392099659712570051949791795275316881430125325530564611957756053564307093434884814149430435115991164786072208096958674619857392512808606890471821455617747257578951264325461207091766709587825781311843387020790384990856359393342354085284670249980022081656320697260401137912885353438396065581017396771230729513131201555864313486196751839794813751991235135145004492298542609517252263056787260105119594973012044395292062539593605373056663272708838567105420281391140053915520414674434164746854604345545409615991426120671100741654236133713067947479439131519596561632540294489023890069112920793365082338314316377422226933209631487537046805726130915264986690442235157708438049440177893099051002493626646537420901487096649918796479962766487359661388224601473271861815757865122400280503129802458394440144261710502442388460138955187448266221351976371523022764483938710496713156611342346191323921819569791595378001937449845859951003226232709799767703251651451365442697449792424668109987680426645250848393939902900328274926230428337366191705573112695899486378353463268939325578600789604653488932827236920179577443109434431946980097399534681341872008999207543441546441339840662984122040919577054999861649684563701390701777621272595479503659145636345706582952350916477635287167173007390752318580255621346707674484738213939417177885568986202162502900280462197233208123539986150256102692610609443653096248443463657166814572690617398939528987920708352625840465822469658603905609696063317229420721504889943759711122089269343598752971379476420316010955923565533576923693406570857836371718781802412748577314942212808758177826161510583430281510688777950521416433285278471710037791638492990471495575651386888876645453089123424562051417430608889519006291702082638171361297928802213545009533665416038919359048589143717992582745060773977094218721351571625539924506306908719251629963986740444877617504071144277518840485568561431179897960850616018531774848910996861904819000257704455304843271932086258860673868154856291635413197398104479573761788855967112039002630333054036114605724523311498065443828463998216090464307936253605120095767847744625763253632513917386234281969934539168162414483894636081619549778625381166787644989731159106644767019303568929007733372092038195799846483826075533694065087391428023948112551112112414726312451278990239097210421789742494325254688731535955756125427035622143326469617769085070876753247559166199015330410022751210893333357054122402122941374032123697363523882925235909193446190192270079630529167399972371886828281063918642444793581046760663165872452882823492610814695488283718818049053532039165558310722350270294300506901565231920353806705503176626832701461178564531798182856599501613107974976624405575472836220155982863343369782936721404308816632658894545263762152733390302026163052088497163873299306618414293451897242018318124708524837080960707152489731874332415338515170315793815018173150949119694843397288219331261720837136305793308074452169219316615512557034412865391134785897987079346515026669664810831236838747790642530859941979610432961364906429689618847722489203257693449276901698601978122345158803772957855025965982898645799425008398095671219466525005970078950595130825061904501033400262731427899479204019031573901667493532404412487655846718466471194872066886776170460191604547037074491856247307604095669444295663537295777129549100105426552006222042262757618351551264402086809432592232633072489213780502785195980875427117522657882722769927411436323314826091930467388329381961592985706784673113279124016967105603445174497985574714742042683428441641203757553383696483361036418876505020712432808466507549824954753039861714772039388919238058242195456215608698569801613732758637054245588129777159676351015592181589576777318664993300412186372316084710396960728815949532598614708736884795894258997668516315266827612752812184034331402508883394333905623196369884059022797057357395233867121899392207063042160361782629431920004214973038072920852244027064220820778257332760807084527608671677309912702184739456581339652765554173698386337225499464900584362537667599292343650746562001582732063291435662798418047390419299050612555507703749233883172438553716741333339147521271386784390706768929666794665868246141547276675125829436346875575253565231363600107874488680415195005960294934987308172147455271295030883129722294811992320099964917926278758114697099088728181451147262281990459663326964310465229864963064229663215567882693149211992677963541419256104198211452874085326574790076191166454265159446291490569841824555344637591012031383458304075132452621571511192753696604049497293226438529605282997553474055083546562031905214777752870326880808536515815569280568793239940700485246589203819242380082528053329635089557533793321732157628792311333375312965867744654127805199173609118975767017627949380230936345899269006305152403287153856085017113699849736690369101621283264250534985315197657101360655284940168942381145616490966116533797550433604447622629816129685377942768180612708514200727078823784557874358699011188910209833605814979096441724897136193953520228290830540300073205332030851901369076483433551922434886236136932519795519672994435688055981931967524729483379641617167900051849232680280412811890783106725004775219881562546100727517321574832969346758759791511877116642965861809530173784956476012366981809248447035210246369662832841562674424807362965149825156722785639292842470254938779976008217126279524849076495956319616666822319201202868520598472961234066232459621023236723813234696656299539722811573355781148886850626590779137871467523987388844015488105021380094503234046571952498108457057969073354104638117427559919653977420727925719780819664673177056570960760958774412185488350430732216233594048693834909159987195606365661528927274376580848043141764431264520521293083522416513500071694861331245545862624041510715873788036822213777588495061305347876996803492233136824941375893651785442123728709085212914529590553667019820995951555752533590205262602013235762759924202982514989865925362524639695496081899018670998009875659386598166989368508886342471714970533549059910995201259243972238269395489554448335216761256921333786724523305302357308506399321705069831907134256389350412988735443827645868554026431009453133905800725023195250521747051696999858261935231822931664123900590018587617963469300060514824369030545978419755757801754656031891339389507487400103523117940614964677138917964608172547744454085773354272444475497118004136902739376159078421317531641784738981542896486729710349759497791049350795926125532446235830862179482391179771494808870677917492154174583319725794014231410943734725107373340273644679522759303732588221116066508792671326304261775646919568617894751302258606670755120757010542864009237414479375575343994177258433272357270995282270351763214038481866694146981017016239092104248709401226650616678653226611163547412271507104796474524327881325452708633240477780465506442555268808804840562261175483209505192931557482550292076248140633224988554122840852230134600402127099727582355305222357372732341319684245002385938684784976670530100374073686777537846133113661674817146642062909886835621116109736214638253539108628947143246437059361595340560014295967706240231996281179081252191428945709703032559994803020687228504187445138904077909767348995241479129016537303992595503483269506694575183313125216169864483524845410475835219305569906669226537817997098862760316088665935093975288208411875324922588167166487880976764292550287548048208342808430906918149505316700911685234916986722679462883639366543839045462170680938265077145090440691915477487840646279929431210619329590144718280568915588363441816241401501094227686013885738584142323860067957918217174806341800777770450340239589748188414131867729027728631688191032998266865657086649898434155366511527175561037979290267515191149830812465912592685593312660164463841179707846343446599278212712741208099688235822994810751038207843025278484832565015755958123765369505121146307196510778680656273955205127331543719121860702754808758478739498669246102984194380209253080889720023467530343447560582231861789052205906534665413657531965009366924871969003561847993035854715490593858400346377055509805168711565930645566863392529628740638752312352796050046012144265058074291387083092666688393549001677493083208971515976757682993424913167278427685364233816009577713188744798906886844386020365576229024035738840073413637570516839231348005467959607924615710148104700729674989010617618636158025739149915023102967673191172795883223577757383759986719085159259644201174293554970230559488230015063743725319849505375740107174216950078847858047682945777750506470965280893322748993169307901160695930233403485952687404485466361226762138492222316587946571128829308175508017474834778273194261307180572467804319781458067213652008880797958891583751287122670227727268174475936020360479279126857939439949892360602373894441034896302666425195638790110983274770166633992868753848450347297868136505060480249897291346012173029355763385621176814625466771241367430126841420758998025150302978657721237394974033638420541144961970159281451330744790913704385712807321930018847144190173595483640674465149883568664464030036071528360794732263875225405196954134534865815767507713170939940870780764491667454048093893343937105649411366238968918552369895329405275314095339955212616791501486925603577386865049864080075645706761457238595845928782760046750631628610400100644740982109935773574056636946774445479901647997255884942860449962753674953260160543217357712263412243298853150678277140305674272900367673978410573213088418198899901314414650082783824650326204783571814047338765186917288667645943479778204534456988528590069193857485823260925537864778950806910207662972885068195029493930699183607981275774318377061818565419504490497563014653000741017642000190974861751775771080411716599381064465495700185415197894777232805881057977499616069474039184071229609438165184819439915492690778258432193009877399725438403529974306906452341274108613063686647636007602390969713220033117074928054664283145028474358729966471648184209933262623129024125130709082551549085418168864064135360113971074489149678668268329972499695054661667370045881278403494702797121194083657524195609805186858306902933188004077745107557282734730835316874455764735171685146196802725683438111043183889828262294947851794370597805747054589130840219951847778924667816856660692521939291779527591581855483129072746142427929415908120519843420120229822903256161143586983394850845144428776106309831765486326379212194691705735375078938360501622634437946832874687990018758387600031939584062517917593820557920991625221573260948988475021119847750665188524414150813381321418274875237163304421582250604040088005012514591411964515948406721109625315340611346387852616319389326810161528828495298416916944001651499165100243033588738559624322963906897952221328480156778087714002495965832353916726248721420272172646002114516478840385606038315797629221377203480789779917911200635839664961794910621988557467779799183442599162759385603823930047096643673971493618323297762402707516747270922791607064183639721514468417902257090864335277920107643609659327813027732120407068461243401509933496924444693240887192679519793806937226088053731576678055868782721718938805099069153643677525345802282233298819017370521232875328390402615675938128343198363459819616820818574707704184493955232337489735210859010076013334336434123794444926131875202786460824010150569876452112577412981226328377409380998637104699959902527106354836461403514772869511492308963617952658842764771827175303580661641068349874871563461438269814655331718539265159285827280982614337366325059170463856235525339526925526597717992496147650079853899578642736663449994962430665818558683080786124432670474826376350169768142449897201723032304586975894736203779602049473408929623256116402048975734343725274338434767976349548072249581555763151508450314440814607526756404087713091502407105390993820488418618885506376481934235132714494318233880577731760583740845378157441720607449035615974529129357371672799373014703126761508323282045501803028522975975896844440637143747043662660859369831836101039250451486072357733266410535789221521222718665007730106785547483044804436003258705629815279268313706798457328872019661406437600681352870128151924171723416407588061835751315137601662482448376954407662671947836221814079025975823139210674198920410878412916588785580247639454894530615308486766261216116687085129750277449907882718710405958047376005528979872415652773760375796042837946870468406687166352879681278779243095336651082703946255227517074650869623474401188535672427321314336462287790523808150145375410021166573122104514135570640493603020283906664669249799045081504607486687707911458185936302961917323005491638996077259468449249290397802367675358497692614591920947420031756279784647498949852627831706939284511413246594702051349088597366849958485456136249516291349309401366114092230711236034092603943047249720422879528965086348761224729281095767262480542657263821565565934437127991536101808154113572926293586344504478842699587109653108402125406328010735764278703918712669324536065432935892310879004259043670420224903220725329101523809393105526217004822439388970865057718742241162103335752980937446965226501817303951297974127609212433685987150120323525941026215869668987272142955155614477075539989921590483091930612884804904706364852790933182805172704742825934777812566969169822846986511702230812781247043451666955351980022305606675347904007634343996055853401611838782034896699985241487194412091428646227414158233240437822375702041886560653639868885606121011257789062058560784145894596512261657297180632926494156942259587182294114300844549299949815587803711349035444025041060520784633457349738023304507932306758305673956719652354160471745711772481329699617894516587917693363720292652599134836149066477381886840058737600829190484421962440371282334126864976379466523140532094721982210648347285240536708880330151387900451774654404475344715868655340349716988202893783282082920170712525045178393237537270779680043381873010110845733933328410850380621979775158433892626050546325832716954208224017322455241986936139552565605172590892155915513808987912016629201107191868624587100240150097675866697335991094850952903575183369314170427434208331020295009289565780043905519064493002045796355495590785228431274838353969432178654974378705117236290144860701533479912011762635897530241629257056967295054074957159913267451484645053199604713027949933355173353276444173767843910463822203033101728369623262872286910830604878101950758217752764090957113138076566280774685398914121318929346992026589300182384564203397173398723364424419737525097110026709684233252138668044699968942100950257398623110469700978128374272697110064659220153618366885762524150469821982978142820161936966067056202521929414774754999839421689581304897102686428482810701553455370572085831149910403746937556203824436429952971577068450285862462475077803988073597753190526550004664932188696481123861417456535091348533256491718010156222413951356352092396790576515290502506222602790032682168623089344191161632602021723211254815518848161848619694944144465659839484175690714286643351213285105271154698701462301436970873818965096699481847241927710833680172925002806591345967321984866893793552292128534447475710738461145573869492826257376204505527634683725193117460652175431779331777833969054251119575102039689046224651060142317623282440372718885489367753960598619400364617020433926574934550642038776945921714838683837452074380532434618716599105237323130273740941368148053924270346155314276687790959501174938929736254773310268083361757625087963432601007322515768977845616149186456410991437616126154127699912668486975108745211067884794474113986903562490620462150654261061651351981690302153744777556948756047091676410055672324191653624728620319299752465604710849256074977871765313290164064297969766948112959720599612524960504380936561069039021958281832468318330189143631231648254105984342387749945899389792159952028019984449657635841478318003910785048695766251670925143187926143150518971455797475288270146144783532734547430394889529553693850281000927016771413730680515307686983292806534691978525251370914589678764249838233943362925104443087972040855159968960609059557307686739988948041869586083610590476661673003321402190661881345152687667349877289611222623486534759329989141504926947759189518650921929174822059846594208103751413838176828885321096657221804411530941688971588907573245196323387724514484227867156634860713183914614019309093849626879340741230787948266579699547057153640597070225852566399890299987099100872822389517386326773130408526641636601343310002578720782188607256051736546667877655438330370089961030093662443420264476882765148633401300965759801225741043818841574345331718020245135189736180271177272462487626301652689467922346717803791022097619714428273131669431512699000489229574658914668591115975177485613383041438457517422494329330661833500516807093747497707864859177974591493905388311751894768045268547327572144265111460122765306848839675036238220987739757867397323720090717245267536436495027559108905821900243544841408555825814105908944741705958296808195166150386113064889341272726878967937523454723634028704466952433221202950205952397009430242435587645226986021484112381471341337779315061372381960075157997836803457772396161498980852140844348321207422090469638881998200618072680498092321505263318321562748773759668725110567886875229567642725689854158436349521363391866404148071610802732194633931065000822265029891433506250055942705567172697221464599327382187618240421672478309755691405972422995092510337166084500892512796524903995122732464170490032454002589670827188907637498731919098042042908978090920028654334946612713862035420521254075283730902907851438064675391461129694314827447053969141120439552152812713001524871277461974827725968862056226465255243383959388683762775590056200917106017113900056961977478642815379551208833641057511562569398137452913236068118377290051378785605314699005259384201464685087998416308621497567481316726959780636601644658519376583913893731275523824298526556954056641441863159930694616085095509696388787069166542316603685149984346311953520426237308673571715327333674621640251321857708204338138194600162270065858275398791194267088402142967063097334597717103587588206014709164499698612024616055484363099440930328431792011646901646231227325006307857967021763970879339934791149048438326304640706165907600912720841158958167589598955088573999596006694976122818460700325442365407147936883402804119022087802513970026039415941946692509700380162012052425601131662949699216470143894977410238257461089432027547474774144915072458244965337780366177615441478297563673748188170292263064579446808194030055496745465334523073378390566513277922349538981064093293337400355153664866079327686151465141685483636729939628246374152067188144265220554913825557265810822607454745310132127824675897460181822343090009725139683061257294678262134378282493920222625409342581337928913991169615721071683467242685861941255285571751332584912965923868027668592285315484950393966725558654308170430807179501314736848656442634013246228674094393636207262547811121806806085196527494413165647777476667097531392796373287038095048771165911152140012934865441953934406111119929401648461306726704722086585913186193930910332306752536589269518491613496811104204235688629017847043031716260241653550728736617154057324255103012305362659244891734388339812657510667508559499622075501071734975829591453674839704775536925019573921125175923560787877518792648314056009097685654736778884419169129159931466964605461785046639609670614677943179393993993810384693385517617557243225733741926242206083882654855250272355937709579805240413262842853988176949626999882373834711213281044780600111874251509323464961257890250399435270959167670736723280255176246546745011685673326401697928197126234827535610810313759653757336404613463335758499956099102700320576974367378809151658067810555102245128677617161103053550361850547401894282827026207772633259625898425319804145427805105111740968060678610875310044870505032475203168497914249041075946796145062505557760009413151879469775968949995881895042249656620391987411445245420422420309733466503213400423231181593998873008921377943411813550315208074452636512200848093564563799317953237472629247112131681854797285426177258762452132057689099150945247335221823196639459026760974942890799372801506998840383530608714173155161891998939751392049701841449314675927849075647601596996395370040593650534574129677079717070670535172469593143343891571823035106922639053454689031658635907035904782167516453791334985228953910114479427359552301871942794889349516910471228761572236691637485480865468603782741223271497801043347944970663982275414030640131498916645734084707708011760833539072401623406411747413975517921106401756968235099876086841990407085498745835247163358877648741103546253685968356629377929124933381129950647240071432036237731741191658915270681237017267533796508504273754131623389569022304176333057320818500065020473551537906628924915495929418678606679969880067821124656868340284034717700916555558885495691179901895928286475334658529396791467444436373812014486685393786019698176955229873828914411401410531457159785596949126101884909671991343745935711628025093422764561089423437646357145027567017965521247636282319603717077654476045166374299011389625134051711042191588825842139071791150008231920329357398735947392920248370973027593829778947104684220552582836620678465957759576044606444150289609714997632886284344477524733868549558348249283440587066352357082999953730861029797960925610425625823749760350599405215568023898410705143410510533923471468285200999068943517913648336192590225031995220225093338317338312717705422435325046709413693769051280527236444986970177520488251674096396318399298258416521547296515120386883840463455160078203938692839242838401488784789018912391344941351575553286131127145759029581861509976562669978547277814081155887046374467264902008276498042662129112036189737939857867336094982967754441738119646644699861852669811151611297009159286609596127705367019751247619735398076114125946404431611151028273067161214398344610506481185825525372185678926467170725665569425689452805948887293126693653649186791592182351941289091544611976579074516474000137269987946658962434578160775341578966976693516873385736140249429432651590734487041147461976410780136174561341222526863343898955105513782240970991785967747536237282020150347162859294820111776580245289660683097894309663153858082724049346346875577007602557632771720065737109535146134611965819630721879343914539125072685882670730141121395185728550288241949200711123938735850489464624659283288653751216918585613755018016769513919213885868759314195768283208821573160376311346685796900179529957247806806480825137632349999828629010721202349938326916411959125782453154533477736001088550756986531333964597876671286751235793624285257864267112237465556401456387704592233558508084816539601680835128300487715640757116093508520227780805297107325590887761750177282089730755559785159915223443612308138166218671636403432163363400206744280745254513152690831848656576720385137643233558313165553128166129298829531798194430201291753028759139291975353322948077452979991971754296134076923298483937607753542837317238496197218921292017453800997059263810129001433008507204031460222632403118732929734427011951688685162691579768980209916443119442517386609758085679209787201340319069718152902348485469543584619544382240102212043169336230556077634504383178564093952555627004495329926774011932524764149424796852992587491673878747814200284382161439487590515088332954721972499468463220920087467425743822193793411835963068173404157531207954699679689192628851779414097025581764275223896166894365102359260943792992811999616955644687967443906536170283262616490535473938084897284172111505225688443917611583488299944630214514068174066014393668226414548430497234908748035198714210889166418954469148630789815982611369254765384345616042039340438970487911886552989620753621474753713910211846534647051423115808951203518540374541681229168864517158925670490424748731670384481122922537856175482121961990168577589184937568274859984269813280376705610153377726232747214317505050717342907578787276272725186402920631706350532117128988856438163304302381858662446273847691279459653923419211580520914204746036352525500238421707635299590807027611537237602594170918273628136750615290092903873515590664481492303974695151798315579811807246162910324793476438093163818630258445248499554218683628891830111343017121725079927243159227036748555731396459881224500959353540894836894941536970462239290769388142288913628582287440991904768888836521441055182238707814949273531766375324192996950432015897135432069559100951415634300991216282087730049326345934517969703556136922681743156396366601728590889197637664114171177546230855787862706067618310259687837494609724231402537185360116528284610865410242124613079078130379703786551043612225632045974955369142075625694424028077706395606552855506899493442342303700088456642264617984937614842040336298688472001978750922069828522746375535272082239583641793807167279113541661975198121942059615649082518860500178869282294579533295557718556986982273374098335117018708187157139807357471172779425420355516317926040704237461941886255301473673044140170239000703331771758590369355462546257021236504569493130548748964757837549640403964299170494403160245882180582838983645638270019351526629441660500187362564156264258958775333124526942720840954371579218380035115732106196508488516590269143902072145457470975739870702852768010765667060215563674275919455972216093952145012009059893625458683218565114338183359874483109895998650240760787006442596666076196639679987671032841516225692137600220933907883352389186677989043899051659677205836898137583060671696915153150088362993754719590327307940134737227888589456123098509655283945195973121006110763805382212701788685135422384597703922780950154076815953020718467155568080149537866155534868908964567377678868068674527700636075203916947759077069315632547623862794045277451799683592561089609669576513090998572574268010127007321824840977597477736444647303875505770832157727232653380876339479753688552917392631803866019543183072397020487354146572564661508714990341451937652642683848031575550576822020428882124291895399199688358673918878711777126739855733720230564807684077910052279838333860543669182260465239721634048356198680217617416043179351052638318313516201615025352676842726678122811066605995393640718067754470263875370072603173512621454696562020284226622657890896740640159994239524067149440518232451639182547707440965237254149211727288305185086892441650605603284207903292850125368917518140305803390520091744244427032542611952537009803093513276263570070999751176045124815400063928183319276106777670501576790911506458250795890037119723995545590792070070818225040250288443411842064453077516204848642182055274369308729260193334978964354615963152798311487516377140522854340144890005276416771735425865212501971984251557951206891958042345927685501264629518721244234545131189767379072108043848152455664074330891884301949016908199982436554618732135385040608044982889280181489500798996904371771618154720784825936385043997953298303239075109843378745017404521710270434234859278585897120212821288682422021160084490344474739512873731249799837080953005364106518228341207465936415005393657924778807481731918521014153933823128745754509419428893658465789016931500515103249841218015673094892568451046658442793233540880817519723322473323544840227440507904109163610007295294064429246109237392029694687972847056765843521678862788926269417297741714460875738787460647685534211387086058261026095775146584122444543908125285665042901831517367369238055354815963114712724403734092591376810163647276645695750169402798247224362701317476178024703717513156829371585380948155460597812857922467843286356902262102744822779599744318663002588839696208651127497509017847907457055435919940869806142151162321465491613996560471971021014881685470742413544684109314656108046074172474551674604657809817800791351065394358941924828463029450044581611182078385696155184666655464300680618950035247340565678099049290473359463858855603708152337098168478252945281630425630439045262340660965850455455927201804441919663972542290359610381645273131005786613223377414741660057481521080820453469265587938594667819837955829922407761144875331678366152411882562806231466918243290132954853895552018115181048275004424684173554522801187244429504965649903882476206023424020857015694707687466632017953465848641985209723665760513351221264815319138550317709475297791984447614487223383771007718402996709639464479562940560455004223031615244220209479351589206504555635886935198051520987026117167238464308162653638811702656541103437781013568348650680556142675204349016395267691615286234779696382703323720566817186490776289110681542431947474010401002339350345494848732352444693227438755904322037318151959395777516371276454834398575606193649232367078898364519670141585010469492993479426497057598667669567845784113190161980203345619229436750509949526910380489666088868369045308319100954865796922438828783191991658056355759902314562198227613979457480144373847446478438454358341323023674786122198273299106222738112304466357651316973770390409950863853229247932617196299592883544963144811061136916202332030298811737200374174843602785289785939610593578097683848035286732142167235028635477030732697130239925400376008546191471390125507710473073303566750943866844415745853454530419674129373841320256342527334663769079162845555216581135092364003205883591057581140330948434117438818510119855453396110364517851031715124608767209771507567122490263820414171156861692583921918388633801421124032720875741146229523736017654043443608744052278686706623702278145744444028405121264625649357845302256270781027759295334642409493111659529742315803007393671707789662623992674524118061545215066414776056064493157103311868540037436212313330066570043070300032349822849220874047779006757609779276711545781230868614306906099372521688716169474121549777404009808537555318514066181945738778565501579756029009074097743365782126111521749911364364498053152171745511752026425436144622413987714186628021787726138439894566237512776489244325182769886922345471643416059162723866652288093905174723195428080649599011043578338439951238705749822969894428438680749524669390435754935365276050704911681094282723340846093654561897617960346099385727598258018658536796455933631738078822182306714621054930701982249885098239651964648945301244519263163754122188511956579411351870368449990970956253621218162590267595914113356961468668303597201222419337868577250649574361156947037629318380267330311072940243668926397917808716917531181094377710602609795055746410369347211968339522405248759563234786587386513271408809130081994191837891548974036278728858809660442790997194617677492307554811102697193458724131899262891234898098461290569370933055776236445767996590323125167630261237428940994519190511679176537314838328959051505893245106296472728902313963685172095632154064158130408205366753434479207142923574742916415058070139879081156457103859212513475378252543792563617543295399043604440331236079268169762626392771994266411813062626370332696473876220661915453824045557335852711155026585934887496971530604735501145992922690310775818746708431022219906853614906156882764341334097493431598691040842537688160489292629268246710427536315203181596181838374912697109491015893316563790722043125403852717265195931265089516458861906202243058223794625143607656982301216204633089614896987879791852314321671580598163298656505878213102486748131429451873963176721674478762567530782027611302614643500354133397211481561228657328764324618966496755905607370709078813893980898755553057410098819241420718659101359178835314220266230600264202681163691748153890084991101455913182403870821344930237487848760851481243393787595889410635633557420074336978124088406421335943583845361431944292297876424120550084559759490149448707466067954813382318767174724785833832580823169963291533824692975902187438964743739257754837473983949515465063448723712737363419061512817457852516159107692865763022754076149459266529343470237483822768944768748027895702035557255646989791694204774926047516705131182452767450366698267256861974697928852542526497769571972704423733552655572984170844666663670900568821431377232118106768495669963248741154840914642194881053329248529413979803449381732922183502450719151414425084319519763394936919744571731616245693597141549438987093586888508307610919733889730041042109906479249352926236453687984700523065779939084622646879591270558447634186358705174198527454489292913607339584601788975686874880022514976599123036024766832285734276010388723887796497000126545240040050160160431003203758556336368808414054614366466281198410512027918905035414475989938933498557031213195477810790179560731867038824648717821526922971760329736201198068608273662464007064420061180088486633461804784660150996783724315610390880276777209008380057390621896293697051939567355041950320330778017899047760904021906378856680127920333273617344935334782487937980035340658924023598378881187950876129284942151558541298407999939144770401043637237607575467866869917368989792470080909099569881259410792573327570913315940900564131055475095831399836212851450569377285174157739560918349320859930434451720328736182507188337363358868825357749063347109339033892627862487762088208948181409456165508126730648604312755914957887821468912937052718037711707751835785270996682473036953804083472828634379959654638866188409097261749869678720578070968722369572244061322254170856900366094064871487418282676298892669108908073097540700501796000745310822763744012685697804388292599053629919394396518820988335888429157788701467731214722373198844546423638298270209579462960890243383561348896410335457350599031502865594817384649435294183469892980638805229889820802733169495109816557949343720252098109964952234613671887655733754963168541975334988288390014367875828473161103273080367058325083250741716908067730152872626779018767140629636513839998219380875631127589126894209312714520128600762806679033597436876465523024359246707280826825165463041461284110784410334762741951163391725270970889805971258358356663503547575352880966458467931483133702129306519247306539551797463909263159139359604801202746614897964009444269932093848805053249074591118386778420770499756337266989770790068725982782107639496384579380947792989547445183702717231381914577067196244354910507432062917194407978685205950701875913380921120561816081014001017924704184130770123484805764634314897274915671580075210917367910517770408613033013042752548108507580207912371543393186405080589961388689522041382552216685937142756703064199817574999050776467736910998720697075783205823299451000799086487095764536706333367265177399801520949085316928718455606089533777300651653882754916847589420466907224493444378794613886030801271355230764253004297150458485734433516822606141386699261247200463946007925101887009105527916146581454827101699765167259085281179379939226092287145510655849661229288559426452757330734486341391303688845950036811605798176943622934768057119981993342833294018449698728082574301420733272068852330773770494926584822620784795914622029888116857381788042175347146431998266027104549621590722978323262203335841640473524788764695524955788733923881369385173423712654651133378453317293513037154359922077667105162263158255638812822767362441242119333864954711757043750385829189807669664805189739934975595264875402619367824592884607663865452677151524296990526518798457305761791027565213015778173391680988452208114829839616523047790905055372499117676854109888093970521723871973751362377667511053627977304899122936769309957293982914335559430880337867084135630462666159538090852165131017982693541005093112751112859177997136561452354171711506021833695836083403911352980727553682040990806528823289702076432066813485468544128206695319632951034215343975314029835625673588794795988568284987798296956862144972303139924262704205890180989221714103064141003409607071780844307971716620038489127863074125860258775362128844646941048217433879443726511659950381485849679295152624926013928617821293879187196279296611938128785325323321142547771143477358664597459202336876353663631098670043240636216856308422856522889082680330675544218599804348353829336597431704089597358005575756796464516518000052803963041995450431558118062166612577937404146532475239910064918781242398092538305661982408109191234609170747050064159973225413607702766821061365008440788499228601067367822915893711031257158090647392785319076258350049493249257535322324864855159681334623232454626165721748199494343909636639610076911633781108886908659364479443919478593822186150362054351119726181223831029324205320044677724959731408183321700086126346441896626689877748952479079223241912118380311713131568287502945983142886367295748878984830845322815944700606874860553754646708063606082018218363742536019795827024087072323488914320712616030424940458437222916517255983844903187982181611845833602530894420617569526529304870159919112904687397237091931883840875711567915864873108217158420066709307797651906382150837984059617066982634106859864660135041808381489240862791916000324954294224089847385774397732779069466959975182529196744614974503060484997164254853064709870582796812303702456515962379527423831600752572187235249607224775157130251420328189244601472463297253283032377535151115928452297713112569735089165051355860026885117533699827947980104439361885211058950905667449140624592132461275399309561343062623958986321268918638015634434899687073205575734605738984560523427759096882384064605416716862358048759324543605942210235457703545406482044026426784336201543416095385081912553395816843050852442572691850481047175187293584452915663943960438902894219962270524240116138105370017635445254633548321354860756038484724272081148959999303779576719097116843135064508952980818838827342844680838405444956053578674635270079489956746676515238551086550425185492105511514871270945185081509554672006418471915602310981988284943103386120686812351595213843980451846532570192492485318679827500191194311335957995823573687605170425937623801629822739408885971872110473756594912325395258511497166717542855659874105354124928844463735476519907331022568865824711396248330978633075405234474193562702750760763566532211630527752388984974089034926004238781262837846205072453114701021110065461867723551937364974381909462125052607756375276356259448814015418753947373016022558954271650935573862546514916497107228092067729091422404612085142050038813498040613175730660819612275822480272167180254920529683843154150956165903883927321144644780875544046176781580299241372027722427139251832724362354114454691662313303922977530077203837595534993019973591009133508091032337130803866418181392477925771775860284696433054261466465996779320350131982308986594458706285006900954957393743723199373534022926607873987435028317481755152701841912136692342023261082693972441878657694007536148875350102176710724169055325820446950717602410572306358419097255324662373179274977088406809364991829942473863370375481670904789529911070054111180357184884710835485578055855374721399900474581257521960665672095677888152852586411434323136358921224295262504853122460981057373898390437740836265774522093259633397797578286351374304296413545937557406310946755838942101035824542887812267505582684640432157793030385658972416430326344202623941358323929240397922354909890666725859190295210440752456188188429204194585260917107130816678353749258425760957757773602006660576772284658101508894670841545156025860602704109107432919708282747855150364746133893566663961100974017205077075370497071834345775900432908657401515113157080333904173058168762294556407830491443863599181726455314197231601059580972454008492634187782297442943552019018355084351762941563369068410518964786446452689473685712832515345114107068964434167844736295001672482622268216502435235478484463429066537982102866468608415058287252194721959684316081197442375811841038841307449172722259298305517168735011069308436179675514690480867091127990550917829736242533365973480108262566878400977411737755385331359075559607136538436755006757084115234213924758343037613447001224532344832083565489824157152877983579638620159194853929466952351543663512533912580173706889078302996811205569315710851447015692570946043872870212964652888060011571888152254774591148134331562213133801184695019713243831948463072807955195010808232046589161420510854298946525246470469907122968695881926524466438134177294723991297379271303356676869710259916112823770100077743157075568573559965604730987727070994483713579167028156468381375812630297065714651442201229570789979990664632427375880439216318174938165336140806935064136642909400531717058949739067598693742863393464361561208725422378486655599221375376598624895738505374659429377663387949124814565769627462139428649609426565642292071346440059896382670785111219835544213445990365219289624772410977012814163967178366412316731198091044351343826164093850542116845213842493279679765885494789882794286682020817913220929674551560636269012239972153962268199694609051814734099932122951312999087713459694170644973111330937058155659237341120613576034461932324287477496235159927545691693314107675517808146509678211592889920541428979892914574270240290118106993238586193203415482583094532377736542908624907665582515506939310552805952137744478134534986224634025959492824253454018090741565723875969057595946044035966465343052303464061543911253773364283654100829942208413272147108768000709926329660946810421023073755759316106163424840312533921170912035168265157668442277554890394704929063461377228292903961382026158362512014150076043268279574093385557077959541687592302222010402171693279712182298319240535402605203757501851986991930666042045508467411639805581005605830244638989935197742880243012324681444550246303051791507720665796630056932599334106204665029358554741173133439476797707986955988122117958536890231277478229205818214384935245812563272917686612275223006586768632017628788820874525606350840453322030146161910643869937727903336372685212668796405293025476871372852496199385552496373504961927220997857344527116885624755447805671669878864368641950952791508018520915847199348208990696008477812150983860197061777920083722145649546214808533653205595877345067255970626666934689797853940362019562374197402481646820793260049880989115636995828370153313045729707548359876018686325928535014932577279316937335584722206382630819824781917056562258082836386359917339193295358403984719592920126702579429964329534687369342836647228089142298249019621274375451815191433380619686420243071553205574173533320860303205116420070755586279000903327413240473157545841510492699236991406541721257554435498850836937459391143872442058232104607813311606072072327049574725654082997571078278978919412458843147342595701821771703025525129290532536651324894370316138631635517477686843480192999843698832708213062914649221814816971111049864884478593104924385741044778450882222403853216851747260067064376386640274763550808811008123941928676085271579911295561733509639986938498552950477935594359077932327240864752867840014897077659648149836703382858837718416560093976929624887529417672755241777322040996611287781447852527757855660675726222691081652926260417212777859330890500306510589872589156067175173941752259142363239422717404814915607996119997024411122735231892491539850168035546567291899052563635209787626415435391063777606140290365345568088461828877964672909329899192109950214729592081700628064304489567003993289859813365872662900785453990873643685111413256236622065612572604962199186434771482943434270395077040362755436594022837640312654229464720450484238123605266057681026314862074739922645440756194570071047581425704843770361761508237579302080493468717588759172427128165125786802475663415890751642017958203364083631988440935007999009993162525512120189566751149895863079965872249074744285357911398685291588916528800043560339550818710047137378816766072565368946320678668763924960998189002526478403920973574981176674819704389415604898651504418650526479950742114439974711457927696811413628847713424313684610783594635179819881738429765157517009962784861709372622014348888997969019810261641695142708168290020272164754019750048713244634367981312893102293425071589650724131717588286040782884828180938903459745645341931712937465242072134871675981000887736177389334832597599136560972082775987279374742026373491801264135143301122732572212092947831331787216572334583472502281170310895127087525262385784659756347035443260677514893385527768519451232204660777482867723409271666211258591732346667536042319022251749898346481928534965287973470336025513974106209020239108057348429166372095946059000067814972439856841503319090423614298026532296839587103284450711385633550481254269414005862693583938979148013495325428260862384282240744484735376894693880153644534905500842965212170697711223058817312154428766398618526994399514513214978573440427341732574394046841064286855608344752988048511992263189696502827186869558566584492930164049956495156893931032425833597691540681181427232818909105482564850407735786076071672275380742157508948422738248525246913086670258379305826605646784863218603681050575012901469158235897208902841759269887768812597347419259551685222748960832971895740923368632030639513489880218539740502933145818383599776308118723971713819614934833120535199806807275465935949082152467744397403302893884707996650411328395340457005974559767701705769746172442296935907727755357077613754588331145092446852009742652330749507968266689305460953564532176989207447461954137807922422486844320805150814088763412955757301796759347883205638184160752417031303253220627286238100192965378591778374046299654024632514981966339661730674523684034665500158247354517935773298943122697462385905489421060125478247900260582236631752940657964568126091682429852338618397471058943168644334608030294897295796959177980177642836319721938831727467467631792536333882323383928126274385153284103995525497203161640761348530529173094598877322301189204002168353263257575959411783516199139285746374647262551360607054383232730438778775257302149171590555322685303436723242847241896697238864458536165952213551584664348083339961332597876009600043475029116751556829502619273523864542653892841247109578740566508061505715744100456042348698809632744277911464731525138994628514047723106762051795775068916960645139537834306631290280536897457588148424626771149546913501788460403488234537820272632940744928277109565110099107476708588614823382838346220679531221739256670384466029675583245082483806413721194765630335658775328905204197338783137110021027184985948183357069081187658008707619460730877333543468477961188575368271433165998391361744682728936736241677999134240159160300106170896052237455570423628720421172905265455875418694563047720435911685454519808733676665786862425878701087191306583428563423151802698377840935662775514020072720398680155633532197527772518592021018271852823369925058663442285391546965146047702010370858173074877578541631317436387962801127108289915088097470395198001015930353841209720910046513295246715944436979852245883606932877163932722874745489147016466836153368534714407578229283083178704469871035741395846856425013729658174275277577069863509614331058461384957770077387690258810595892374893750090043664379761792487288681511775311929135127931872008521002326974088675774800110767877729178260633632223991067459420974562721599783642962902655760259847398234205205170375576924488101140489433809797124550565799530709253852617307354967559732196892605095441079930168703874387879656284882983541933513507075558300635678349949615843800790282580143737602376748400673245700255636348420707695276235569294281684035175898216529254064784755400551281976901881463738907423238896212354862102633980979107379561545345931084874889693687043511110014622565279814237892496281763227458106736891870734922727567043597769716779881772091499375479360767768525804576314128130177905870037268770803270242190632889880306984319836813508143663842975234298148990602696948247635583165373436681291224409391322003602541667447734589023941628928616222307166968211346773728061796458467304180229470517675690207058979746841287526400976506200646458492569475963061310540778646252048638672474646647619229973063670759625362533334430197762588926862049181303281396932677544897807532088721629840742239671193636724373820299240730552165153696379329607506917620848595812120127245396331342772726313616094072571659752068162450217320882032901090566255364422462746308813392675642103013988034188371154824201130212953509850582755004960011291828138125511482556347797256577101601535375505116792187316211722092886357600718345908967091070958718511565944457227412655155002948205716378981971620566855358238829374344680432881521501837033880880499122389673450602011139856758414129281079669371708835781848464012313041762909018234082950531310252248502016550990460989464865078116744696323509503735724666331940775037794245659394266663519887196584228255943599155422917988411931624073491639148084684717123635608168426175476126542474093973523613113211594489991414532598084692130009964568717152853466735841483560976452790686477147219154851341785251988807239150285335035522915942261683877891520714263781459335636613465697486284608140472856696912436034499841226398710098091890279229027320264209558564748933274788344141964602476187222582687702039329224784938544284859323520700895556409627147022235561256279102789983703134727164628071162734785359536312979674905898854176456652198807669769636984828560493662925875715769631115255129853028157537813486079628883694105232944582266729788951631775945227275213156321714378534091052164037418157503123204162265200616393293688225124122670412066758398760100135028147166048164156471298393768072733794475406558135023393071057903785634201040131225868970574479449728219876995822675234407726182614839937575986009102085991004934925322519164901105737794776201993254433230917164167808939120221274950937544795669149389749211444042204294183880114779659208653336526779580759615813774555743064341537602963511988617139739700565547838151828043593586095984224052542105039714137572826268628073888876248155999761204190748155787080725837894821294596210045392043559349134978654870761737752338153182873163228683362105393617468245807318085492100391890450951369887523826235863768872151646710600504453929222759127747389000049825907085528750346116375137868087647522139434321929720072361285110717311034476112714964555854789942084707708572533900989053845514775413160495027325547402919468395230664059812264307066875435261598703097859777904316277960271032966536722542791076063284695010239369236746775793532503232235625934203583427984909113904190776752275096874876543755422128240591076327446900058287963602473880613959543611704541685670482691743546717163884379390630873404081577537559298590409602211389116645289611235452874272074459614189097835923960130966401442266836952304918839185009945008266266757289382193800636696812119997253948040043799947211553355170628141613275278190276443672655372032375078044772758005244822233941913976860689973081894036939073739534081827613865667237973880349575296078279829878820200365797915478077719411712688630635106801085858678055624413850370071742990714001918872149849501631932253373532962251753321970187291246080657456114934111524454956357035027908322357704082016975467737834101064178108580308244631181345506623513333992764579131899644789885020306436073630871636495478799271690641219542608544494403573731211453083911940756981387523686636721226803588192020968007316892836580811503762186442860244024012992749966965819815884470785376003900144462340492292439296275998858397525577484247650619026961370322520489694178170870352581619854989845562396534740911530426693054289144399491337402955867672707799837822427827778062926378950723451291092275597500573665000565370788522960527165929683882127242450390052446934784861559651474915897037509051016320543834103810570053016083889403659628971898238775031998804441956647870623021366327814259922969972176884993325299197550858605250360712991561117936992152488840513665648006931549367382240973514541661029935377679747646231026551717650776921189868885968683888712387438431269441205154334511409347096174227891927786785272346606404661381010405809028142500322021901310993828081507509010268624301787000094512301477003094274743001846060451684745541067810852981207916625206593439427696774967355769098240758304849378193977578015579190409209474280923972363879324672937124375265843717767800341867582534057418074265226883856408864479935364666679963590001447003561542793735426531537183809205581865658931599919579019887324490366348263451796346110791695737734995179258534280845573799225565785102956812340686065550423725782314728039043438078852172876664028066560467727417565761574562334902996783201150326837690317543389046722635972783365818390614652687104654399706017355896580301209263332995400180617390842180457206326724858878506217358523279910391882893129894819964589670489120843070689434486805499370671773353273808412601725716788994003646888077872290509054749980218404539502842987506612058351799781656367376264424558061358451100271306464760822942338125450055619815795277505924028260702737371216808348815943952069834935051553947168447931978917941957624746818230647718982826975912155385892692915848518827247407242678950808218615660323083843538529757415612107766138593039880140393843484847993127583524394484174354750000903001137308446469468730274614696102914660435553829727133584182325963897690438029149555791189649579953469965282060567087009994311382993316228584752942924223546505038929746397744108207918059481742974681848020096024821161253839899596432191401188383025321830313564868719346255757397309187371938259065293159615652453368328428794594478038390778413390087712511280551898672374495024318841971244483302566234035719684643561836497501027818437194869656014053038153656335798657755211203851163367702690117518239829898786556863313287484780898219213727936420251207609351715220316455428682990800560276759079161439278160597493196186888920308723400855292087278347273784929764413425716485751677561085828764112704120605093089101309930254459453525902187544841190538418552479921793874042771249330601864477411751407662685976723333704825676457524521734798982417328399526851327958489850925916931950882583442143776280742246225777686499991671858659980186163240660239058317472925711071294447071671053166423677243961349591839204474097140235221374394815030955566645358725381714310925103002616276774517352137257673157316372988436599655018386957390704902544070791056722503566747853267626600241586287157964841188703880851854840308683032511463505519599595996972575041315124088704994334775553369363536831095421479941088378936163792030837839710471541207073538961389633446462880597839191593694693940074142238441062516540170763839251984903555052349301671863270276629868179389397840065124066161209308514165660891017424370664432710094129816165958254907905700349484738297700729298068040854096736754966076743131608744887507101197871211526968280986802579605813841553819089455103198469118949295111103400469123157921354233706982109304614417591520492922836399769448172946956683158576082752733892952894654564730645218257410903987760827602453615246628388714335689629495209554011678671624480344367004042388598861301513769198845555001780199443311118763737872901134473355749846964174757769892616912885096801569629920798009192025880051712760500841307064048723884181221046443407122120248346772382551394613198489092007537518345765322677050337883235754674741043708394027198933280937796273250439807012470600098652467180694563084045508579976755643071798460193144104892968772921502103310614477136021530733906481762217244434300033307881769224718395954748050197212133140030284459838343747350981363255227528726653256649508773105659996460810568777535135931891651584281575642483485674089520369597783444864891770555889370188233716355160908163395055178720506288222333730642779754443768591932400910027108335852813602877998174410654570379423080694791762576185850194524646727064982506148360378707002226040257831726820616420513701150722931563359681750615109126549888678913496072848972644597430154767410075596398893804895817706611076869359676759756762636568674196598449487870758040931057241404094987733574427146543582418541359194068945563814603973008603600777837541961748739833604258199198123128206810390800227033812182999237783549969875753132493390740481770656801306337121425110725976705274739444718502851240737449591683895155708580281050194697707800240879236997434963097444558559823771560329831399591307784271697453011673956116509445764599963417373494635506445670215093815018145539769430250197717455651560335019088389331279601167269816597967896592725997426290713882019575405364794912462692947809474779933277780212215100305857562876524718439971517580700737073631392457085370872582889500702030661839638520811043152656777561028942778614784161635405382536173783876024064397240323139575239104078859430425379379584826849689026915233360610368403402481805395570164950956439008338320926726400322027794653172816675732813248324455533542064586561174035865714948466123779312204853229975656402529528711095261032530893057601030491392109679442514992420319628122376645761241701915140199959038160498250292052717879719067489381128638230309206385969249788821701893926080352032721529779829045399268034760612060282685838624021197253937683174833187910437961139612038599090286341883805948234944763986601899905547628213254440016405405510665122830094675102537576818639610300597760778234050561977531608931121120557494906923870717939771381667052711012387511769562953045660168460104615895621213066613458228786676882616492307955510472552968720317799331477187050225255689899172448596213349314958747775609503192000191281966504584491116430762124415502449299867998465828259900473245297838467629891048335145753005073094794484384811926934016409037560398867290959121708575887773338807530832268938209546265860614794081372764479483382541646118363434859322131347189202652305586246746781483097999013169354653673564020680412203820257485341069412858237941442090166601554529616936383622086571585256925564848005694500207832555428240339364037072425582346689002657016263156862477724543667974589741629262165267796850076063783240922334319745264610624422311556969781927944920807107301868176575100776150070943130558874338128967656018818897647140334760556477076578657255541572976291520910975080390190248675903138150821805666329435841985164599205798385097179716363174914547133915105146473206127169244405529458850018177926054491912327652963635520488228211922767447780741938838206908697502131203491594915110297934511880264124429380385026910593452547004986455240801577799039350583158974177065081330027994150740914464072394687049246110017609762424423405071328808211423658919190403410087766124608178701823401023450494257753042316307633015637482589185272565907103981958455657098687522206582581685682391047098433407115662579278325476956473298278140282538152466715117806847062233572038738748574577310979839540269638646940163993825101922307195401361954574115969119104878888119642990080629627023233180769969020694901716901150487425288931126528749499451097934785795464342707836904792856176139219780466842395248396485389648988310036100603561796026412431124577761656129363410290521729580971069269738107626305799754479837805169894945313330941169559961464197913644854413412957554656545466493604733651974754168441352953178045585435500110374815015380913650071912831035563664822755357901212310339803556207047802700898828769791516751005709082854302337226747644578995382442501689176531574222305125635192467766614307096383528689915065322481523057748611749138522319342794907059536980310053310242314319655237091678389596729767290635004762417176264366090260506507635956225620986005698799876256585348218525227467663233294186703760154911980000897689220525196392717163685550717565205560403864986988539696532964559694700596727388921839338728628927805312781782342373147618394215556530316400220475926222312698392619303795322822341568620532959523873202561241353553050512708901823154590428904309996135862031285751079140763085812977520403162326406490961380348472844819287052595411235303256237256910560119766272447527504526051365138699607341187314047286684699318586848597285629706577431665325520236191685694480787774827803431178985206471419196288077463686182085186004314973335840832204349877570176431080436366611486932131412740496245317507512099011813201412710799148099184612885782760427587902443773429108145090419243836387632711326312656883481310542361536654459952587893755468798181808484502188772113384506643156187967339271547805931490462158873219026470171543084180143036505514335109558307699459085295692568528209607066897360364663404997524412456025997830141949748948295230404449196505340007217334613423423701037260846498929632376737610169201055403920342312227931210675480674004034555020381566967698762193468108495964315352991562237375269402550654553278443133913595883131645900414207626053665782994090421530578439296276851355738392326918746239151621623044032329005860969782145314766547349735818905992587049861998020117606509789922118536923705374725722038889900989529068541918477796428284889948361485762916575471542030103971806008410513645520533998003269568829422702334679095248862399070580604956195138854634600123203111176591879729104391447925852651711279662272809266449122055547884087724734725109471114771223154762828699765070681751486285081637045124850272604369451804597570647989140572688057952948851108398637090858221130949668718536249741244817996359395737221928137991110434019908801894674505967459008709029428995153923867101888160929068176517304199471491993894526236748134333350734315862190738114023699186445788630621529715924117422425454461461856650308345904742331668560979851021015491587712436032412107329913621125678960776573183856455374044731447888319061132098940297984033945116777513880906819110431940477361486003780694327898653753625411512715045803488191293701478583453314673249748872652819766985006719447038857933919845113872097915659052015255444608812157364706957159968738234030130194287245164530395593262166984278660141664412336897975359006926007425676402209523019916957861934206862140003413557126940435886127805052124174449769607547057887221183482372940988017738810701568665491643989284395770566856100783260649225025265615098982765692709680641955330308852914855691060053465457410377830840181973949606805468997827614319119882207639193270099386436589474216942920139037109841167369008287507728991140397267063804834687974001445430202194591861966979077027511272963365601432248162134076411386211730263227428493513488955246320853407993913324252054575303648774686134779762262898698930714240603599540489446969399951782345348754564894714805497577149100597206861260786290337985770641947649706373310802457019884822317143850838347727340514144576104791070360459903390820948081077104004398233774710095884215263068217088891622469252940551430760949782585485755889836944261995611022888406988672406776399996520982750020270835567252689696607240238254190866084667886768979805502100425547986721859730039616421840129907799231227071917352529324254742674253986656801154233297633075596187239577922824800874898263597790566926513647173213853158203887760087015892970099928298076538129220566907918827288630304152121655393876223258498329854860022285590634315276197246325138520393608689358789174048875674664818641324769851635446024095217088403290911498864099213152966546657583873280513177992962200634568067130311357088460904943200178129605177034078729118555674148466256935974568765468495014740778970896480421083303730909817420749181218934920482392505118120063120470226374342878871499311359650635358846084703108472219063445534828052216688524399829670754595123977242194795070466441984509463122102802094746890068497648325116764567837282507732821022790098129786371179927095807155994536843777773838822955010453967999309302452251623478732758528143118892707665405991168682652165549265254283821262002560918493537962536016759542414079349969667466348370380343753131619340146319625142599777382029760850611824965476086310325758584550057809471515236555077809505521900448738377788540563664368711691982257308299013593851263210628763283827569099310130784556520632781788129796936654327618559802301209203769871566005255104308009037479835759443493374026834619883060486729573527725877600364533166491187534117722885721696606114097331914865993991415870986615307474268286805029734133805948806906411411577902107846330398258396404550879546052077754240802538907093199479506278524928572874949593520085482379988009246678142070079648770467181356602368699540097371768565303490106041450296135484510984845084097189669233632536010805348528087353201364973077820814211058068562393168914166655412568219295641548749070554971866480733340743253581466993237635053514839134366152119049721429138847416302996583689662099997884469283068987443750780020238320686175459041742319026113123571443601776763056479456137544946729844574466766608594329662800732955420506348027189237204997122776912674074735496095578972728858965191547921223731192631376049828094361623580017376933794229453385448479421254739614884797544948981122754357644002259646712140190372033023504665418780878735955451761050821545140275935762854048213296102227226920892807575905714679813492088592184601314614011925811147499369873628847977050996791609341848166181224921501744987259014262175859417655941190650639119169365067136271322200220619100684677630188722371518529837767787586790873703093073211893894352045358604011255448662082969854432708064764089650290917404692843396259212997901096183033360300991863161909270745473766813724087093757603578797879062481362069718327822615152285729208547323221576158436221390878999321303365869527100464870804334272972027314920776855700370331268471288868475997967008591589296412707799050978860677888357485455645996318591618240860092773887599152979627335199834778355581806486821855091946716315738971935962552561686779398421503327602513595679667380315267924135321191460990974425008240335191937410395825818047477797070395545946413333870942435643044214379843394798175982198172437514211375697502780051127399008877232991088017452936305453413832457226042509960713946275354246352355788390942447993648925475017053406385276529621078989851540208506952988170366831048799080461817644135071925772093559707197770236464821420176705568346134271872136307830863789689179706095636839163650452326004742017227413762379707115843660187055699807401500885981676073893109829590122335244402254501121166461396940621355790700758357211938463486960988717753058219566478334219047787135510483082478815969513223842580235981814775752623655575012168902960408365519924998069486540729099871548040555631778187080223237111254508243788600101134507169231955809416368749409273198608956596368696541876985302508562791659046298163250179489780016494459755943622757730372806298959477061596351752443666156199615002983636646013636967165447584425517458632113001730948632912301568272314041164276910265789019476920079270887494900497206224622820670379357498322199569087304060741402707425645887264457678771025129223768279148845414319283645075659787697667247629486066160774128759343774892315639205523977547240799938072615066130109671323774909336421223227484194600772534229213988939301056428081150672635404716327596009534790805183546168694394606351721260344253161834671555615248028256678384112994301082439053094016007109003687237290458388718153540680251611637472500315194777061327205693948662305007773101554190799117150743358164086673428065412281329465724201300593376898300175604210222866437002232918061202980080064576138527242888743173783960628094784767748325211016534739931763037455264396256632473906089081404480866877533045657454611151739421764652744378973784000476133894402085647335805826698659516904900764103277337241623982813815297196673997157857424597527450320353401588690454585616738086289327644316957912712722606242161994850304403958129298033295468708616527980106458979094402011937440148747306922738578890725454819638815500219941285414022952004318321901550644779627445270152806804549577485574769615502355986280664879094475998948103013557790506329338049045226159758808082821099898878851391399532055345591226690994377923457029028447306057433535424623570379117736358242189262753716193738160852827642401253398681007038560159891853107541733150910905672263907167858963470200744698172007833103924824699176047585936549225613394108602411718678302423365043148615185657396811893270677653628947933744952829662876112843907508264091434756175804749871454957704980416899728249530990996863886816514245658023220924356832114910490030857079471342339995723746718043845058073272230699675590725127553387096805135827559886337280528409194810241707028168399474156395393172846447134331644073210040931999394808075191354934103126001705184832199652359515067160193429475478766123276231856356442713211842722100733724917234744818265075581862173699167679687800191098829630107235995010749258692245864363256029321271299783500992860334632434081381633508343725521127638025201247196466229551231732397918598776804576143689736880866280681162388240155338497614907478431273913345886763893864648657347181383583870543940622787919050994779378980287557940274873317308923507757449243164687832708425646684307763806667711434079858948271487965748262086920226200133182230291415439444241062011298815838772924567335281782177358440503461798701524710309738420202555988652865695578699404213152166066864614449020984440111683408399549960939725892692102101644117395992028373189635968624759961303755523768634797668808528892025244681285318426507470731422241612601439813417744328819840744424953165941253093594769876564018013125763408671612304942689780294231086815837055864113915681484243198455629903999458328621966351916246268365147550306400366763351940163959206857363683869101538553371317518510749235801008647405810948943325413351324571598806446039570307255264096713987930044338850235109696660528780477678138770259710707526101924603736501251730982819024502391270375252685739693684019475492184654211383201493225641865503701990860906011954226704701656656304708313082473033828541265430213806440029115127004164553386914722131301484276298572761232314269725850705903766560524374060509391150597839875629508606053605139195995126540342991824966005146415532995755775671265285552208130030010125704236643377069880717411403539803288440889942127376275657003159275099639360149396539353626279049291588677214120429459226232597962457607919747349242039796591769137561000732353186300561068613118445513367259525055777995353908730242239572448230676461908588556559406294244186421926097693543764060561645779098027802203937428021007792773167409973631933561554237087341522117384680083364907892478785507374838589188790817503977137350922638782465657939869666432305760586186529502544101954563927429577962759420034713032827990311683296925099199662320637094734991909855061852946834080116114731031947184250380833788801555399031178544599396853949259250385863348663656387832145006803895163985200049375947585478488389420785840274673119524887369993853737519177236215589996208999202962377606205090042213998293898782554701620222826035332723464135426576233209458417978886689981690918563889788990585826421836956152543964887478538212379526690416157410610246265408326598701139545621630861207200145267304863711000002456551464068422643448387858670685121148215489937975640354377890769673505768685718201051651291409466796346034902060869781221229465273364292382819082931935780053777572864478681645344756430619406765857034935613611427610069865932618789066755541246013736876273272307170585195117473815112968152606913527053641795038813451618439547557772336573350440610053417381672090616159837876614961060472569065699791452400740751751905619151886420441594031213247772919051078615859356896580311738249833226677674839751715123463886587102974653987953778974180210090560933289318047036146709640294540225797428337683192813002121370135507149085184370307553588394685752280076787532324090969330462870222848829116339512958043104312231391329133187711826386385049616761036559229620382003913368011528300075816052061547873133022274760693400552155525926136503476787614218364954356852893795316514775330291998590803383689329894944968883334541918860843778466870627188947797527215506148392139443203364171458139496902431337868660579100331455875135993491854894819310384317347068148902560122306426641483867381517592108910986133700034603697656376682678123880713828861401521840018877434395324114679989223337471542260439657021351629587274752329665105785350446691468586302428019739370789175998269097207469245811482595653669831016373300008472308656099926654727795601223141838053949276693770394642315119681553271029300728017860456961475869866224255996752182792097742128558651791034580140496215096156602239020328973722869301487779135972992214540920920609038047354291615759497224280500990756975776578411217179802958131686001711645654130815381011610466026583587239878242016819484869158054052258126974915190055870830322226407474273929433172102135602011579751991937010953784709099493101280528661987580668864129119335200741503307119772143918095121317111670219183063845409616177553495105674305630607134455175901551610039095304929043465160789936588947536428666643898144429734926766077873537806548216336563922833892995760631264845307847935303506502468319787270570364850437679365450761602651662874220750254317746102852543228231066050572063166200258837845408128717923593898568785170202631248089848841637155363614709332535782499957737873271892469240716765444574288651849771840192944629886787708726931255373398565449627328758546969820715700436006186241605149663885572258600558840789524158355932613982674453074394199417661500392444126626033797385380904696815320168556590678499165967924207033507862910884416269059319896155148887561990551275613569179591721600321907206336311249747416796992121376651241044795221825379698148065197979217290664390634281794415837491509554629807908325817173027143309493350293490471441230398738437589105971523650686745384494706614011234395388256053921016042245534747796443796126182983252571694777150813404400082268748052619824037487911647272676777466673208613512067371037623152032779702010485458920072451415645135486289045729199897341935030773192697086703359614219758441168362232221412139503232860294500260669916779845768241334575906469763627302220213540457249918066016540776928193631408260324185979094603186385243714271520131147750982565852390834315813581292114235242318233832014188375716802911787510013391840228130024275068575536453922420503178060222449537903877304130908278333315681032491845255597671961109120990209751801514955015155709625127528281626783478270233474539182159119406448174295269237072883479615259020127492147456380095064767190704174403918996414035286413985564653011840720206836243195705953010672766995165219758854068496900134197022493195169212252428470850743459491043733562442580335266660337219271143736483396579194370333879630153947212532068831801562087469507283209361933800604969386527843487395325546140765222960287956931191515146919444406170633698046880709349666800135246459054905949720026119780694241177869624312883755739476604289192438671139691426399920256600368021181614281233997780388265350766231799267037183138868349929917168932932997745314221027503390128055721250926748370426241910365092511482281850911000808360640559334448620723096371672042639486072734616168608998274083662286985930897618283469371006176123618493499924875912458867121942111311561754270321884202951430505528521096877739704110710328198387089107223897031394062218962886195344360904129845593646914051877550694630638309144148179266227465212168663609452417067742488703360502099019405361151646005991562646759144350228732590728124609236932892102077222569733472968660111745786953787470598092449025658760003361788241452374558537849581393495128089223581086621145148565616136858150134871610047637461507759651413629934959311713092340184251936787643005368107063276742803527286987755585981649584032353288133282784116113299828214685021957200575700486632722437908191534056508493118891144434654195001044548123108753283046192014727861691572439231210037551004054189410277438006165546621817283209527985725358052416725133975911152751426406097223456447471491430463933551509125039275345440620593745192992428415925709077062333382600286600789977923461667386160367681481384725890491121456851946329192008531756954958547592336235474839939443657453477756292244390694862512256107620193554546298797116290939604080317017379975165219810896013879446233284571958078617351192801391056804531011606101634363402503347745066619332064216651908932876755996199676322884905240122344291355035581963500434354068957813914400298558165215303638832486429900942404834708895116880861160083267520323714721899562109689600151882366423573324168722016307503099309327071115874641827509664462471482427107666706705079261045312798999557462895197285910613467310763248318724947749269810938642684314176577058743841971856874074313623334797567580108841822843904698498979469130705996710941660496673115415198798523119199315151372774043741050948438887423753928410891913366541564257339725840509708324763218602227385001243327332396965929421989853483293253773177357956113246273414988439478927518726006577390273440022038815431925714128281522822009636054001505943111796999799702299676914282577157496788710553992001706186591062111477169266643808790807457824034937468174943589458642869388594213137638687117397940268985608481246742832422702965474067024591760077859822499568362067638492449537600343991356231248083657767866582265908115082956732836995103001294891752650636029461067140959261948898638373252171487284184367520383083652377431255161996850274929236338913143475638236204069490648701686207770771152439664757634477132373858197530243115922974215670594458794697688854124344895379206699226987720471074228450006176612100524641836671040677839923353905942315135188974493841839890659346202344995447935417434825523287152468836796232699541090799248736691743948168896011962538406946330695051851274799841217583761235539664301156181372121040178643963243210272252520804308978485529864596125913392287326818393294649181426137527887580263962024179974461286609288732071094523442917788997204361710694666806945136737512709703304711482836114072884399687321422433018052765815423620041235604940444132406913795018692039816128571700560998340933009041214801354422880905878745448875584627510869443807170952654006815423257944514986895175270410748028646170740867487610796356727258810682015157987432723905660348091723818215576707612919754612373181226277599708192126521287926932535740171942811406649189149587157769439240346999649032376064535549485226634582924432595008310104225901411905105073875933240739847443642087586459896575516600912011901024184796890923331754454663457668129156693127312372654921469379589839808365845073596034275524247765850534534968655056245868889400537055790820719940465628476334175729866023182882685405977063185802894614757244020233278980556910036355442780011499463958523008738717111791038378386538785295187495379881322070200077847138999494591934182727956624995774339907827864902867311331858668001256073386029906521810462179963701521665388031092894908713938417702654847511069459978954195422446950730600131264964793268586210213223534186281411620643010378284749317942511842591421199638398184993786039729284928786893142881490135466211364323643834792693704922429639089480936083608032395290838151296120947612576105219088767777962759078810571374142480201400297297023674935907553357013910450909371288933740538567460330291750267997537880331755849946382406949931689721599214453784805824944196691254568073193140239024995504995418804307778466774083069958511124209081129519378418472720077512509809808881865113587005247219412504419057785937415081309245343378442746947325981879221573252743656478746109918345155252091242509925710915561117117779583282288977326183770206474279601221488916624574099245049223405769342003545552074436404802259411144670016559828898583583455358612053928832132403468485116750170687393005034242528427799402606392409744198411039592567536876028617301883582309016861439309668936709088250275738967776363208219268744010303223358515486583806349181114401142540621909224146161986459057413997141276962940989814139161346038909990640013202949143359265328616512700573555087866112096770548129977485046449423287653943463496738792814956258094625674476679278173819326969967019374143261134862142919729684640374356426755795659710936637262438139169802566620247876247347884079782356175309492735507937014999121006970328483470180617514080013816294503876653825700605739751505779242604676264606525595662327521896902205293340232841457991577706328068160787699192884658456135076155726481505000614075129141907933346337882054420830222860912335102110775715947268165193534105386886567494478160879477089487848131474474074777152097380929759479133088751263232727135291274673799117667303243590382007816887752436409235027510591396064506186875204100736566028509557375615074192884318654170853086009388088990050472162569586890969415575675864303521884546740726405630122059040773699206679699571674636900912282787365321059812672600830591974256870085092078869644398112659622654940731059774501146380178442154871168604685280166486273149902639053689584196349546613879029860431029197037600475433027051150863304824546950223745507507128897511427032452543491974052319536368924092412262219928045076789184648544049755020015293497957037860040934394258036188740223131627137733996757411059072529834095072311443641652702005365972283819796808475635660623302441787543606404941190357247279160305006440252642263786399249498387519737014047371599886205567746293518620719820080110500900035033401707285035114953271315244553777928801369563468955767261664579133507189670691879872373315115625949450857909103364960791279439925952709204927282552275192082164703023586666682707647907323904002031969590777386302357641266099827751547132086065406418205291357190762586248559994309631794466142022837261126735658508673504852560629136649242470089603996082133352269164811467171213346977877705715374393923216582801103314993009069475116563417522069854337887653450329072885664468413878572733168368436792819969465611417130994301688307954886428151123681441809825066230567618238007805325178502735984586527039238959905118145224902035281701037989624772106920385405793863039377132326123476532671424130392437240624268041643232957647846137837878998765342203994724865306081556844524984582668922402771375858805887933490462122252264842882474873152558195036780199262143254471795949234602627923480104595112298968004024771992029533278557664084139613910821797478345032848999077179046535603153674085269292933625316337156347086723692697309145457431755988577900639596553721231921966534595929502390532767032218459404141511622909353414468819109668924164988664477994853716058601290484087349520163375528460224423464003166896198590691440870684761886256279355214686288027002384893064317186256616436652664559288686986017340430257006563327094064314414916447558647336608338816435020790752313256246117341806641998840316353989772199477850477213166870509365017490461616751052152741016407167043650042854550167342723321356481990891957179369471098397682961028568207678323369411536518917785297658852914407707975617350172865308968579569452460843814429908734656656463872001206407099784277695159043021782222883902606008374593717374534144587656712955351544988875839366006461025421771244443977071241789483965102000437304352171363133329863321089627028348436046818454603041035418831431794873633072135920188685121669579888138566300989077537931715825917303505359161723613924169763082051349911899770974170584016656571042681041111537031271479003947581485246039854231513474562326721629237371848381761493859622940743152284444092185509802840589042988804968286909715744416153179469912291514266157822880050075567171337976223487749998205087397436486403377734988869779435226796356019461860327040318989996587439320002613330591417587237766329283036648967394329410805857352994998445352956712436527827942653250137863499823992010477599942165429300962929967213294019983005561875614079033328943136567759660459618077987134446456963006022717425211064305485951405358070943605260995132020247703247818268918896944782680477004519671458353126198294244271745346585871870769232938625577334759342947100633016034150136763354092949004797908382201510074119363694004481340017041265100970390907351231067809589211794083693992772799194538075052633741879968476823404719557295471671447909023073591240812312499317702462753002382339239685524581374045674433473786583648842230093060923776129721799604378568355277809264688549880436262348235977871048351099098395448221216823713128987631076952761068213301211250074172507984657681462697466519973967848982790781984406535910612783190353869951645683165346151541556600289233245103351314689746367728139191133147221561148928177931053247199456440469065277651388707735682177868643877194733174214811950159815006425712242381569694570074595407201959946867079111125296500535519134721380472273887609628226184456474040479084637728122086486053270122028311015640467261503804569524616857481591912818444337023210642213350887059465252312198127246527456011914944857169199164649365246467574090056459405428000342490479911561082070600410089053667713464842214346616589525492447473275394382405573513899291637886252723358981858819659271192982316873598620662661303131902114883672469817462102466228892282915098719910892342332289673647009960625856046611778913618428851125781571879414596375330371810285735136339696342301103580962038187469575180078804949916854395467004150937738901731998301798016870238127007482443196415531361998864406845689354949054377326962104485292160931656830811482159227816444915718284104335474230850979020144223007188626308891463981529908069932012841232323679456919279754247225439906757518164295532869098670166905644151143697196321087613713383276990303066351059125027005678724717971411622930078268436517106534197761424235911151463867267242904407715308171860188080514999973479504395264685182487883016508006408065532765493623331279589557332712483722549643555470796561177322516590206265074458193008399134694372053186502366719375228898537303707576733679264015756567436567403496493692715596384461507607235770161887878579417132305243854202899962281948637119690838574816197603704458537661223607058010175403178080172083213400997973679072416234820005689107830587682593217831869439792997261635653355476390927285991526412334894619323591130015849231663675303137081654374487642667406158121466427214380150919883884728947794525273685898224481368991125920701973822176180977464067247219182846808666590023657719034621239049756480855407900554640230256254920713426877729334894458054694629833132036681003938593281164664094234366402518825038502927877153596772620839772664201642946513723716006320252952406408031244002195892764491973809020145395974334247809333796832787185191301879091989722046212405483076644285154858763319558808551058180367120235605898919510332399936513512313841911846027172071125729399353302580039840259544722365194434076320295620494095952933014123711577518888304992438606513018830244401557202720264364454819777570026492085493482099240748709468731551958699586545518789133913369316180563365846025576710891234062397155525762558192821835532196899862715151734431230342307871710276289355826133042694620211409324826340170591068156652005419679395637796068579965827362700113676718889922559981021946864183929395488438878463814549105774572184397870301783065291544562825938904958501410609210967638353519664317610033101784594058922250136478208191525064197518047464166870573309246931499298661114149129894178265911279519427101958410245763119153002341120775863055027153938881129221045709414241657401469180615414392780069114251462744956895701428188677797945326947685409229836949344000697656654923301337905559088416350431600939498204544353695984598007712488272313066628618694760608078249366735835109230002584157818880430835670684071956103160044789576280248559996883547643286276943335132254292991835845210953802057752905308994973320064601085971773647963112878939897654518547945412188130920560196101551566275381373509221790206722443453526890753933673053649587447077236287045807464228511447051435595115036828554213370895202270466821935422701166539239160896388986274555948180284021716447812900060421280762038990436287313244881505924481623460681228506271194786942326633306363522860459929364467908959852552465246631515071651576155637384699680356247268524887502414031324551532712281739973838991317452774148744240519206397008319670011101997602075529409603140442144133603500717303212989842611697380810767604739639107574482783077502752761031470234957581002515076894141884465832765466219979146409653145758255430369588728425478711218605702109474828992953871472040539512829098057091527523100129448817827001008115027557143797454907703196639433315862929023483723034054913357194590414535819164496294893001415082970689212191562068053456499973713023454930443224555544524773902910639413238845390418475863350008316377184818018250514135544131597119309775179704083601047109128843236256506305114854375907444840932931818943252942904213553934238924566300595481080863789274484826494092560423772536937589233234788025265622805922266426031714735198840182647317349806473302431361135469397866545396477806229857069978833144311224374679125932434110760915009509332498126458080441074859830239918042833556572791100277434472631288835223239348247148784772889559817292963432482650343473686621344557580009517615803667649690670333644465945920390786789488711076994317382288712240838850237335668390330942034750559962241862293316013089861535478252467154989547429349146622719211683020674858175887279370333788876082551816582854413006271777479058143217603183020096738895589629441155591137866788085461856191697617902383145382063211981041988952495263680213002061918327621116854835714251316402147382737617005067755187457550159792044168186145181314504810295846834224916466111051797414233588037818195476521373289061077622899399889579513346477962625433410169801381403104073666396881862060389374668871307975336798494717106854346267175888672988113441015861590651706344050774120838240735049043352617123074930542109650255177183791533090620720428750651379266143894143297607755205749385997875806845051363404905223323300285829757916107665223928228393454226060629030683033024841021005755441051585514747214561599867199555446459662593664706414757289853760436770125552830902286253395512032897100737039566453972513874823188348150495044305802361077608845621701289482869864701691490708410249480076159140431013627270217273739333039343076001801860374553783776011319241147162374061648522125152534534413956256189146662230143137512726471973618634293403875618849567691117458624610586395662047742822797692701441476144954664510147967542552064629598004286368973661446049579039161317345656772766064683850552093860230311005079118529172664599952173699640044546384135856205522334858158587586298537858425037034001548082424851171456978178000201211236304296751770903337345997369384935926489056498804491576675023968934531914623587797417950333889663493677937522616397027740912190071846907918116534475319730868264133708114601196423716049026711442298993415611703747750080961509868629775466274481485361852341456508344273261450929389170423856288965072017872987767957092086872180106181532370385732200784147339925896346241618067774407532888239794044933869937975971527332177530598659462687966328002691842741815592508736304441452370028926375419047954691953491708158275276211273946814420121605029940612335021677257080106014853126047391487338510224220070471155778731786093560765462921567396784388676300664613139437672100550911822358495523061564546601350971470361273292353625649207254814683722932042016416595433000977497778626217943221533322036656096050716978276602973372731830380535211879045049036104347872787084317526085660911864536707837683909763046434968836066789703559878518687625934544928847923098604622509147157645447657799130909803872893129734554454909339464152622385897285416065364885998500758231972047507202385278308848194812810130339832055218265757657854584023489962414778800326814984610125425791577123393658481898370852906576757341227034016905435479321139731580817794269481261494718760679106086222532761090041710822537020265711713998670804160791024683353390959551277809070168548798637750868466823688539981171122597185417562223268876132172228099067067018388135352099068630854939238995714375087357106083539090000961210001739244986425513760458431650338024555131580336405630937211468398433668168528121989314719536047134025073086621508796136258645292185443572874203244032636156615090257348373954523096866591661843314459749049097761153259780861480869386635829483020697942099658473070767109867897332130900908485899570068543877367377729006588627773907458207281440987702085751948775961980621963794794415580809213248014889874919137268653262334527254804430451038246695622514994675794992583229646336467580413939898513965277837024272864944441451777980569685903393280991596013741542049961750060857801785434883973473268387836725158749318740923261007391836215555304763441883049549824744096402523148490513210490115599477217063815172603710854000479816194788524851340015491544489476826587937166568614576748436323438185493642349440882768991769332126469343346137527338882381595120482182940806417099463233640892190952362311494212546277548551162872348520876900440810305196475483357115458559128669411276193225923471030520331338600781391271949467239750385267499977305734724523692694032240582260865934182657490489251741533891091724327146351809653761024695672882390218428054126900949896756950469689804968596778270406532648756521008442205046092611179013468384209651264556685129913868609627252805657910565941099989033583740606473577902027881974949642929085347139802753452993549586363436282886838730594049906152248937122695403028272042079744705581421087328128547421414647641985817506540286180666608994913530388286188436356394565941969770281833143244617536795833687837944438938764544816895174833737842235222835817996084971702919968955195646447254955253722182807313954697803138773710339976603587471267429708487558695651167331553318917765518355660460540486853211135554442903546161416161997959688052182536288954783740490525468202013289358803559638716849683402076231795163900423969278477788052865344274614785630450068807965887403727164139851691448164478488456017505143828704249020028044114392865818121899178428432624519989971464568959756060143683964225588936145062773013959588770051921289201735284102631784537626373155951541219718131837409590717883034975618205845980687369865945740526145876283117051027890250432878853263440334524028219057882349757858007440915474437073956221350623431718592402367359401815085613843768871607184667285480265324563847877491415147811384282804512300063832848580812053768112181804216831926608975528210037038246447304215689203368456192087262706448822019391649774293301574273557085661867296508463589884384797480778894336933771551498608058173389680585371452021634195626294360454153375846478792935140494373898575466148339205496722237958244444587657321115258918896823619808129783820855801808347795288159405089354390487511138677588061121224518829894903113572927530858992234664427267100283334988858079453021050130854324924213059996582526004548703917668700614742913164459088890415355012126310567071268183880811329366367488097020735520321539581268563243654305061246320780436836510191484223952245181246387835542641938056253941901307409760258107079501049900238014857392717948948431091944483851441565793753473094806983194491042796660724246062992546594670247232475191332262951267548808837185343892196451537011739087687965476676982566346277698630364734292855392819418633966127651010972160112533629844046321858135850653849157908180428410726495196995654780233157054954891240750767626115666919174415091691092951514361439548076762449509802347021104801767274131685296829295973242965068861853414127636185932827359081935884114974078577854557329721036878836262105580399950214497089242855822557789795166357446544740104658115408738276458681653359903074056903562540639285141708722723765727253651945966449534947853998202086566576183098327946878616127990519597476317692495432627722371424418736714145201138533371469853805302837385183444208751813386774194126732633774346397774523991882901572061228120606639136923807912605648673698909281544377987795620931078253323011669737431306081769300518872782757827393762911703011143799092791699951680702104782893191170135367623412266624258205016375221920487260326882113706552458644241762424007000422387062413751852207121656462015141026876429917922517446914885515791468236287196831704372091358986501184088668081033012941320015649608781403092691894492454617857011853811533612033618872140161204605235768541085339202693344490599259429611002945551360936857104016109431882752372158626203085987839702851879725982981259122446192320058647440041200808680371810180157170524232434157130449865444651569826195443989923443191160285410704623669080383560316556282564614546331519927851283415639742210512855108721473132282560247633947656672081866122603278645485688517674860416533504363156037803517859368199981948792452216365643269418620410835189311598088580982789984619320181358929967747676964165086429579773090064040940143523860985820839935384958545099680185095985392880971879188387922507473913755871272892047858077412817470252206402076425637041980244895671571943885801372768530637229349303603288592694057428376908949073702248952831805700071275315755834763623854526467038159916113712434770166543603397372506468970210629010924916580346536530328874337117081939696434618937737040923152157144910990790430184806202369942306579018312070161544781775016366473452413972911419507437423728811203471056984980825016813269015712653953388017200238180262205696380300486486260509343685071043429019456051722697316692668346460663295846770800022326868198838329738026450018065835736782576323184680575677232796351894558143405592465600928395586452312264265762739822256215196107500960405917610280901611186277380559630716693247306521074967791177337736367415531401584573991543536108590854864977719342552483188411678767980494096114383484241633884318761184345807143290442897688336008934022465701058802980974218295764322883444065204166815814564428221812861691367006710341137616837008611125813038745571935096100238102410140475939642339821206468461209846326073490192692984408440988750984096026042711483420912830234819915548691134788263771247322649459871162472117647525482394482707426283154030591531570533269340914224317108490524655701272742877784044406462997210961959994141208621708342816381694290450340194052299848333806531127176528830161989113850930888254204711916822866469557698086804262257842066546931108047307380505492397370101316337424732679097196103833989792081594944108253938494135952411210882630186152022764257541018776795905142059463178039008085268512528103361071378604063728336410577709245243023873971245534085134277732432170931260464002653108793228171390268023021769663632572059638435485971153220724971713907340769734786755776390743674360329397125620353415938205891219966868282059133024364301676989570476757939981403561876222258785878926925182503639228669174024178111107256482221995606597285805184714676723504721737274671469837414140588214529179772662509006933239815363559505243437362435373190184298828402045091728820023713066108625746337568693331243511276820898773011783491223264603973326806666011465975276829588126457420000745276014214142934639301998003383577167995019934196578957893304414214248323358819278876141601342897303834567621047233743620158059794196222238079232643706436949744995641369263406196346745355924022862489527402794986799123157691269979357339263052186420731727668045538408422043399279995883184129696354191111241351486200260110076972355914883469100357274469552056994066640796089820479171139704455302324413064848265244498908657010590474805655058032904719457485983118266428520911304623245999899063219888035712931403629221586100177843251181022252024987427163456593431340391251917853945461776382226182763943215749389092338890171330639637037671406195925628287262443370444242175111284795939998907690996803419471870467813656504966940241183378541750744472586099928991507169620483673905181162758989758521138760700624410797601593903974571747948841258310925214870314079518506575090268128849645442249611047717084918709887014789610692504483747946341636165786848276584840251920668402849109870714334835490003924486561149589712787459965442522301497651607260011817139982999526198698194956735075662844391954927970378735491643302978073814188686032068024282508295264420548665213415980151892543077715817922961823546102611212338606803129098279757255199053722939012061560246712927814218253320553623439747789243391520889228600063619042247353276397895873013063100589665634021283999742809457027918275483792138943503822739867111363319153825719663755657091219999799594349925134074755152469293964088699287441310994356175070943817067944404277156642124807088305992062488466560609179138941845042405243771437028251905320817911187486431609403535865758708406158459255651420585417277630747166008102524111920933680321526785719229406523564542356703946684227117307838531885593111131459544217805307066711218883409335343028565434716015911262311464395440693615591665459917317467848679111271199363898073374346277750655823406260453568113358773378666645607768632342669297052432807132508938898606532415336708798023396308623334993141018404019281958522715383703550494568928809423582014032274834421575133498160433738849721502778550117104315755947144565494999001843914880500463806312666395300515360444135252226111147991385141302503058305953541967486627336960124644837137746759045786931732490066767676426815953306448720907548423124820418995696558695694232604683752313516337488486187335280783107112076259711438985250008603043403864939743258725868929621009182643748730222800270656397225533557144562146025549470604820665678857337799668181591860525686716488854394988292259733017909794573021207578131515893292001899277276599606810542943826446108257852700072241568397879612265790666142184544084335830494057679458545854265578915090735262919119504839261994687877095836485614050903866602094643782261068068000520440820947564514044212870447207484733195877185889558018515968968432679190289262677487784564507954240340238118451948497855301040116911157601312337600368522094894012622732679649890460859132936655486851521898889443598788684984599808188472986649522554045503259724563334736589350054264430413655274547414718267902279601345123317107047696391802196416691072672811540818001578227606886668575370861659903058983999159925509034090328442691961540492387171305270313788758709706710072172481532209964457782699251362393417051702465106131133399393408542641847009750184408587925225327921492376166724081019215216933321386255898037168446587947947016164958317003749300836903064508842737418009381274652713643574216350775541395035617374234631963675343397038295067459705336323663328429898404222184169052238326334065768378436929957318822300268761862094997909042943783713525287385165324128911199704338363429669335357064822880661950068503073766257060773344715164041488289533723646727916870596617776644188067605575341767351912644873371457964082093182202272743736094876028802855393450581494410897687753457543130637873182407573787011584083063061058188110926734331231044422334542720563784406908080010474632809132011345560713612692561385946218000215725566502336194088263280920818617560666401122393110305758868221130387819518670349403844719249881324436074896578264797485186575953431933928599410601685464291128711724021246087131222023934895762139410255993756449390966309349328575820247819401154119915046081713870955655196244574640878917835604462811039646302675327743557753885349832870535449086829050563859069168955409932054006156506787273523200551788206824200796051198242976741646597316867934625851233450626172153473129639276817027900331923670066125955429584058054370774275499330787810374210657351576438178616397508195185746745579377665213526125400916724124624345288650894438156004118951987115516557792627870835764544568398703787928587879064943257204168780627395312323102674471329702753555336880495674376336954533456387076500171870050399260053891521491701936965938818140527218989137924962175818519089041697290158116807625250500867371884438526923014375319616428418281835550026396525676996282924325816464639253534061888495375605108528659198886305657033114573470131163845560513479039146825811921038257281880448241572474034160424087570914648776438961295154087137840928299492551152522769570302881465783000164936902951584836187605742435861298372115392924244650709413536690868905025774151157411901998689611337236679444569682947788907681648798179561517046028733270918220201922575546605489472773981705718269092993982457841380708670587208499707095086273045485125616923664475638984212964585198897234475935459442862773159168845965043760520938790867770281224001535195800914377097669853979075284160748215491120578534561165100057607225549555875138970657719367241016581354351730019810500998710236130343343686232144696899847744560127653724013307408266991777699169432389747083282466436679390949536682820861452656976697979054389656660006194918654325460956211840862592477271919264147621740873491116247436226324839570400270784509789148670394857164774881213623822925496798751212587936049091914021270412294003848558130512251148287069066521665693965571140397780679316170219136770344752976068050233821305036707962617452547667623583341765841555961112065391649078545967976991352561833925769153653381136156490946695464332649965660246020835953697873495700060122107555677464607644916450308218777087605334206743205148964219473740155929965374338638691277531125994111305707523560915878200277282178674759565215296672561913284282623623328612397399629137916021987147457434270852172402221615000992701178167968429971156112275636845188059630537501603861008768534954008773789431065510326813607195548154397853933391555866946845992178324924778020274087342638807924989696223489091216359117551480407829085689588310085338891569550323317793523487002729692422341925922116655959928447619451974067059408996477770183509152518783779700766350613275348916109998617428425762478139038786373062403529453749036747361746853451313207656443607119617674458836702531033170268375510551306578774854376414383738624023604196396673011652824175796750349923201888774073082589227255860776455573318965514241638307056508073388489125430985357666187501041110058438629788672344670450038427097771318347777022925981356533501778995669001084667535953757241582412642021671659209185388391066766774305659524557081428053018304987977778754916958279295434473246272092349628654954710458419720045935121896351012429523979895519198261796231052742285653082294405592583022881998117168939594157808641844544291566437229948623658566220555657679894334390207962029850632724524789076600147005635664310914216033723026467501139098228580718352018712984415904968688755803472673990049654623513185884114713123133390096797750772472666262655597774110886451420197610513447651518930145031774528124443834032333245556318567238302307392543272361362640797626207943949576903022873488743313440637455360030413089082076684415137168358836953390527500684316339628824421418005767711644957520669769987530749733497929807032690871140218382218652932647895116179074913504418333390897555947712247542099371969930683999508116641484054184735310890112358277193431293565290096276825797540660032739914155453926548787338826079001065715281240584484492018461726676365040846549777045497140436705262748261453124131253418624034331648238089527251661280192529046537766537392086479789442954041409368762156850232915564423940867231236524553471054794695001094960299979055300990102907864939424395019964163630022847548985933533391846676707941648734719951626762356235755003058334249053668173343859843543827093008491519062826127326360645381500575140316165482772354799039143567665116661886567938450191235281822125565504199527906654266704935005228732958231656330849877945160847943038139475360840533456054660731882403506539784259015816795768192541263605324871915423616299555673589776714250414028670924664327685308374165315660282851599744751443610502097544100648659538282229114341883750301033664890323486461172725963834960789655675030058435891557047192144505375460392803618962603081813789921730519692698666680186154600592534203172696915348362899368241870561672080019669401310022841123453176018169432094625158308390382252139036304795589031285630725152274476741052694413467202399798279528666524632144632589638787661866114988931356202336978709592564409981720850162139450212829599530537404344059444821935941961908324611159858592101743608084062868465237281134760000094547014373132535462155195277357391025222293764521109670244020402426460701963174857110979158331171360541852436486940840531553979880266296162546417587703408106258828480202908333678961158833139167152872330951927564285089529712143675981960995971240071168297961824849904805418443525144032587823029129945947557461658994834329830964222207460138039068557728198076918815364378570167353203867593391891983903631804687835954312319175803163597954996091347759428091212143616648520486201990925971993568225571640647568696247629337186825026336424305161213892980790664419440270879790956667183754546937353899291729788761155110705689673953937289971583067925969313381881983326879490739834816657719724576947543802155462072864177328993446870939903694583702809041408317795236585236101101421911511938936145835063051015346811121022366472922199562084379176563024990120221944057290176110882506154042816554177372659295432919605374264818945802083870069449072188397446069674851970042835921426247113763228365736541308966115305858807676206245358523032811409227393649159070961189648040126093564561231289354087123118849430814339870995437929526564584484759709404148709171699436981213413150473176719063006824317413396403661400607165404194383427716046103435748450942067903474971018548876237968266537941283195974243592551515227837240640302433054950094170548324874133987711141313833321330314889176753821975815367343761122822261621751638555250869226301418622558020009170228096992746721586297147146041651684965754720869820086571316732057856836005499954554481392943833133446979236616291198472508431732517749498175187276622336846964424478515884025559592291595124475896166579771639678563091282368282433603529063020625394451644755384714432199643153807217717513038298272130451915520986939775088215482103823715281297683217827674069208173864937886335314974734883423892676257603208472491699648474614623070530578682052596412799928767466895899273403185496225320759706826337767239942491503441289241456496695670646483727060499549861087241316149749414655652644670926853813273318419277436959595973229600312013669720780482256444055649853100106587709252216977858294508431843898272427199483138333775696571741953836473507094883851219058978492989020917608208588224244210790224523927830024364175749476082200736078293348747683168012002629269000706924749164442224713761267089050666388590108960802320190819404746166196190501958471013197769780775903892115833125011115550515265328082706887685963328915521236935556824557878095930757095831805953136010075083464838210296104020836882091705320221074648971378099382670293688886738916025207737684566217992556386852723287229613153797304604294416152667951201937335529492979867856285694180007260299776391956529424938843210177434917888039417808061581586297595584718749376675847868236679115999496564191212877845974477150664825374931119619349530783891219242893242603658453928866610751297643728172333433314025850560222094635484649796849234559724352528421239922588427163254220742841817872597541771571089825167978949598855139941071312895386026310842130407985271376232606186819381939316929648611819642790500230001082157543250282914461558790448136158471268121182721321791403351464675777032504386307841925001437124345058301920265911829101588498360303970542332082538961720350588171168866023426515888618009009814525151458939458983046998963106870128236652116989080333056969817344542146693688948451906355409265838887858903194364820229546556804243764815074823945198671828449482534459377453577891106421633570519599354721425425637412849313721036008606862485988862437757993285932494135774858871360422951981305505994390531761883458308556772127909702808190648958964113684271173907518927588959406305262524810046449436913231749220028126244527515126718570293440394522235512441346468915934276935892888556641481431806924517886563322704566418987009040046952958156384609537439742948990054768575279819681342015793318819489494881571684890449047267296758612326720861107893475551505447710362492436260505202025372088910711915711385969454817496996167611532650932095874279458575633401227119907179583499431123794739767233164556989160841579192570211463153307280458677562524253104440091802890516190785486149213827497983211473241275764154474840050462335998409003221710777522288451189826951909328482521652537948501907417061354349577448694504811386761358497200607230148264675440881398309289957775403116409166073033043185562532671425146393142101464832219158579485051776901675652444106070470310750980964372142091823857465818740363575252836233538201873050666391235347647549338863717733499099663777370888688730198335397472378828787742313717985264744185397065281776287306601397050236649124591393045212085338166044133299001036002623597483407355714199922536644540878747272537961926745077282219507433216642432021091798735139929877162750415416472827674762804363693746010788319698971030392350306418625004394016038100450528530198561609786793051464740744893969879031721265688013773899114587901609379248638963609350459930034623568533349115319106434899736227448821432409814334596154333049838800957600880176086070328245575504600629806652975424096940863297021994034181108367132575504013389176775190654977534555283609564768512149987566588431794398242317840596516556004388762966226010156567186783648029446607695012396753722663630174590687154543805460110877469073471670523694263722977164896431075743655545423833998402549937112061592392997440664617723591326142316715560105279207843481131659687798451400926465583838698751105591972254090222510408571086939467396681596465935249775697310625590948548990771327624441905176134969488426626097918983902203741168501848408228116989609871102368569635085438507983289966655483840168639653302097219879443725818453695810851689535216955897383827570544954045826464514039453493479467676020107979133785876283865384947820124512526998289421534392189650268327902499832963184933418212485105781668267806692269913627921103029750693345061870471225930219189451928431481435757144774179901991572885156896852079573857076317956459347801913980950448660167325239063162192660252766203620593734611290724725313233156238561804120243749647115060573190111942981627740058123722663293496285906993534356133758032463511224526141607974418228475196529454282329207550070722215689366157771150071152257291675877371692159775857579428399343670775174635950342773980662383067433034652726634019474814301531063425297509595643056933486169442492118000441900671062022859621472778169566596047118648985287094063115334912255916716087873634590576511129608680244066929272388058198710174215174941967046846533562138092211073462954019431662741268454541918016025868171291436537213770480272403277739125056378671874936615021585809800821186090458021335145764870115594401008208707452430656368245822482878848726139327920797305822148860245954823437477183203944235488658030423519843070463567856155174133823137493664861960726177114689411361904839719207712746985086320321544656718154115626548407215276107734139798876133262902667042083796232976825653151812932963587525520788147376699918628535823082135520729055592189242939716377284441385555557814930126271513794024032743644993832037303227409808009235790729246205403733780642872607535052651782944425860839521793643306170280337814874704043564059099321146924304042824995585506568867624720143148815196719326718965693758473180112925440430088615970897036936134595148298582160394213888768999652472603174489383334880778480403535785416867465486144075970889172497342130804024011277894735197648870995968887800293174386147327009204640276548175901268344232304338255838851501040789406509482480667987758885319654709104011170636566703114302248725923374646148784681127715497502905297060195911493873859524862251119041507918235408330001607426952736917461412120176526064919533817303289852077186140191981792926974651889247430483769610622139317256761554520848380889819043811311847410129013564873878835404916527063007541556526492713346547370518190093051879306195485218209813288373864717642599558907498009644616268484114492429644616812761971071081674194416834877453661768290261696893702473146203749386819523065690316722566859555576348064049406459306187557822713344235460841637385670477166951495694784253217108517493099195341406453414067817396126890336391276224806743992565466441829215252620698513994599759360008041120464948213372997258227362022205501567628441268241292125385671100742277344473727556161637720850914964045942069015834271590195682481752793103760480662188908108175991358580672560280785502945841039493499398542533869211156316518587879761676723223768209242300944103031854395720075073118018067221908396721695213070912804546212555889281078036108482772846852934204069285890938430952622934763189629026960919923028725078892059318379081979288102619340677884593195012148186690609649615558983226520567512452983746721706698601285506157522756476578944805149352690610353270139390071279158855869121770216276567810376254664293168916404516410213251597287423895239926189719763657628008202602445361196978422762628337989032517810012197063539875048592180555462564020554461148526749575082049790185955826175868343040483012035218691202666896243446417487818934985163712174676839431961932319451555160997265071721267423482119745194557516369787620412074297102405543694103581095935725192933789842001442203859488961180182602697211029013392913205064917952136566190030640818468769946858658756438297004644044758973331522553481226099930493212658692688782195277155203142390060203777527278166456011072604205241210661359037142238099842601383684735642807661708495150791404837451285069594098420803858649917187520255572057128934813882191743141212645989277091979046051003611807336306281571692354432201739888328025337969754096952767090223196088699848287711255387104972564553173275122572798132326206311777648116367566316938253423960784891779244020908351942891622653124657253730267968689173644264358953379753249958023605102456386080113546230342327453900749334060024330169999076526578900682451439623619704975483928179607905453728016380194394692997052696142997073433106455254373488763759844744123249671034690213817257261054421598072598379720228717052992127281749894257847510905340199814069900623075039637339172246689142351716417948955732926240138173190537804043686834980852874050107879455831685276344385120962928330302980957544674031583623979692561436000381469516107636334398038013063081801614292207907430165756252288806881263004083991584262402450369019930943550059911872399990243254574581383799415954880679136483042289113902239073828862783010151171534163984034106153009533778984220297706165697770844470968148046877294784431068618883662297330452043649363762597674602115264430841519577227347446325788889986646739019854806324380629961637853735647084975589942463736521562295934768774018019894925021000853020006244422060088506332207219544039477860975228176948563778564681304215336857864675903081418655611440260453977332173055101363743037616929904075659117515496231236490865808176934284324523312453907192322289886348199058422661288109142137912687179749486674110602059244972306694481527786056769017575077724748729737019478530366202627301230810896662127535411805346594530413652296040282696137473912219931589839945575648514602839586560965611264482517110361238080420116459655982724466629832022118436711491384180224832796741978690864974647095488016072020049647885443151584033292970095736507915329813800834401289170417261557699201561889532259714344966405441908278985896756178782493839864494917849512178467378836871691908768428734287950246848161547385169782952070854412983365740555084526354698321512395079968513040036069869436932129537025548627909937069766149074959649860667193068089882812018894149857266872782732058848751215525546277630223239654052694620803485765798552852712731672371650976833018254536378517498399495868523024188495887532073453500188594650442341085884852060492349654869075923101723668407848839392098996726043746942579799452582167302720148952085467022770633752183208037107469722159389779959388968863431317152870681848958864419073608875009434319331671316036769549843749101439717912940646238270862549809589864859368494936718591183563133213479528898822704090146290551837518588015995547297756982894320463654141383083452989874908673723698047139556057336883107162622550321449053780724757835580503593898184579705071179218540046151065905962574313308914612824578320900707579908332516333065931630586137595750688747937627354386856639607183249339638169028103179644896747054659763374960354230167639856408465974888089644322324853639638619838926550500143717266030716715086021258279467058866498542412154254856668940124744123570796325536241900502841740017934997663510248970229332922729977367685056648442291586158449969125360322244173903486392669262001046187502557265592759692117017405625926486160762274421258564881193207879740036857673097690371440054880397569873883250105935377164177657343154250253064791881721057081566469711408335173202116027910941023313450164064251803145649984944334348557405926481152367361738484005071431916044344967974716895738026484339732116875464701212993778030882914122226234504154027095304973092273282880659840607118781377203028034366981315123723373185739856253446083238881708950727744624799346261295181522748521547438605460594336175999293601349573311635644958100741924277087637113174133276429153449575908402138160854737877773425534573168562164997595295182853890032775665879700573677732549377326245201114416005928744604351170544902157280828117267886564745108776585341234435753798837206590353347030200082797647984363736768245370296583988569570815589697424736446562563269902841846677346633115151445845243017406265916278846655860604097157267243944846840927402831099494313955820147096481523107312363163995591920010268281136906046720241285115253626683735797447098075164260633662172666747667975133117066388131288620815993104146457837666708279141095463903885746719944887337552393174779702084912719088726338862086995588046238108885579054850219329128378811665174625777027299598580435214438248497972175414534526437398725692257254947904783434536101987219231635759742524420091367356247088176833471340029413924902451894378852344980979027784906362577471675944720915831093805030766719928620188702615580453245564598346774129180522219974060126068920121555112893188197110044156758899570562533037988556892140292447879154384437996220866080150829204733333588095270311043457411742755249740965284834988114950601974979745322848962921831458262913233261806069812684326041875154786802742426495390186985297133813732186603475536007704638601315011660636705762177342294034850119544449691876065412486702900233092689014989877861462991407378638035057451787786060815763532001387236959922270688219655821765689247865964567206868754203895215424098677522322611859655990222889571644535859826137252844890650234042749190835749647195006586130755927931141641009136884312273580741328141916408913571649543279435710442862798019801632316987485546742214236075082480861087070126519669426032581265052684083625832729959690092677557868153073042758561120790120004725153424010693331086657145882612328851678925377227535154337193887967323529878895637537878003265047986996454953210412925092680571190397102548305646166799021169140796185698871215897030726282562687928359462238951584392198970135844106793005859674521766130595972733425908205286899366785488257137749568144357095002697410009899564746558496030688046170510336444413561464673356434046369841306399054917549492919807573024855212585216093616428909250120800300438608749388287654957115899708418110155090872640840475744136129784995945935211306759058651229926743673677099315264956219506993728891384668793174445577526402001576381211927377339508247676956311289552016748373668185550243001657740536355323991645071946526253363718763171000098349716725163098335257861518860388321506629893533908080486634267982251197653234236842793990168840611778275653443208526756512950743614945056317283417038205361331408205600091019374365571100016147192516709451937766410483525049206275191270863035220033852596344685060862575066857078349922580681094709875614246225422115013256547942815728188828986784341464115046545967332065784921304094831435199763139413109778231439890183139787711738965201253139797966725363810679315942431558448752367610562578443340621861497102488545983871826550056783571580459198464603239602988183744548159486644371754952429625792012455159969066034189835760271973182053160005683689960213856917985748669335407688584806854231602177646432224660685395034986860553366867024342331903572045519299167630335337980437798117437487383634788471669439028881793156686219748590855036773568040577602749392766790725030329772874775162708272225400838074335255980418064589978470916923842189449108070818239122721532331954750647888060930715485642470594273896961497731103187708805265139658558080656428583091345245207171908742708671327017544047337730330145976200706082271396671510659781293829880626630704058114160262293935085665058765053945563611419395616371551913210113046158019117932332233041155426557036751366746285353070448629757188942740197994770218926303246632560216189192262564353678057413176246369232069337587443178199904997467778627920032197802484600634193293627103247428858543675876261333563443889321352648654050257039230128092960500497554087236430840170019051424992809073009115535432782214591189015292307265132553779901271813629999657599938930894545602980301897519569079721656013457165460321344350801169569163151858953842977094038721413594259961724012181195566652123229295435295379180511954377701668393818859010460980954705421009706527964272242188562862878572192994177859474236813209279604404877617866461428487977314979517179237272541951290619828758445369322468052462976523476324234279105279566908529444518359644200921029665548457045217580236347465367510444515898378230343771658589969180234589332032619586365536505274250297402779877608687558628925085479004351745255594095167264422739626294370558682334168956652632990541702263609025285906890357161608254760849907081548701345363744788388216566853228033236533144575723465292355850991180056440239888467152959583623536621274984950848099442094068115999484227214344331896824074120775413542290588386342235457255003004507022277331080249731230898518399657557773048724582884363229468197169279539801481693529515485474152906975516052636701474239169985544651712004084616780132139054899691848092872261396145042895416904898358542116550665022667645955418778975392033827607191173223215012577383067382268020853819821384687196630296117502220019160750487472505927466151640865333654528637523538053774493200152296928789754327466142103637876947417506205889329489882967149622009654476030323414655296133257808862011907731620604468854084234080469283079633017615414225806720773813317855346421709304635848813630565838219974894797076937679812475417122877325494405824320711916643911183912099432599165323094906017695862074652998142389117305958881288853840336097595395175215521184176094513853996962400104873622822484595895510491645997555635541338611850394790591969936121369447462849724653330022466196813793682421265844300389179500731427310248730794495848741544222697253959200650907151870500685025710795421890540739425205448551392685797256427058786071406485360844811933522683547087459602396833852460709271916947029680893642154379253402979776024671674936563673566895509680823611998006274783673185142415628989527022808336188192544845898156744898471688771637932668488099013240752378983633496405609193447863845067998529778917381329570601403292321095230245090726668821324562917405819871486098203946140945669570747933273364278085463171379495834507276433735412356325196019516628344294285688540508598162089243880822234441946039251424945480279744294489774040576750707309838499570775693604543356606813639551667432060674243032855027450930851230817409672349047999895066981546069140152625595396067554263862417663180672555268807516253859326467723533972075646071390479925786254984112033272620361921609387922217354496494454709933266068933645510429091349404039854011147436239130965053901746220933171795308325371578772773446516684199513287980621866053797440764585139671379351588939836949627038882381965622725693948974704112904771055046528432820274326722514133245345628583194493814229909210523548419972151483026339773701752437250926573930394785974346243789545587496689220026105572263383427262363422519404322714203476741738647072018818738665258177071489197510254569168129906681249557896744737552398413611407920167044370171049035022011763851962964984776851249030717552345166790120323272635862449224126835391442573406279075499020976250064095080246621149868319442426778693553971297186926820791138439655392937467255385703365040478764347557872219181616413622532791195237988383129654408138174509739913704073670355376508525759002070490102490460424204662093650511397072501998576267919705710482230047698272148611415610697768563493607820151962115825514021183515538031731253152332468510385670966739596552821507077276466605160148230354811838913980014183702877833477764833175022612021304161253860924746222346957548492298789170510590257855194746687529773099902850132529455609713153841199252271035483856764352842432164328851389437314277710313686883026320714986575598595685148046064914866996161043620209871563709007375878919553633629033944394868554730004321945656233640285506466691393910161992468243621468393599137376824192706227825002076204682113795304784857934987188774428904452455633978076424720112672014100277803775521686885009771022015300166353771934486640738202982453438261182968074704419901769490988223284474714885347756753408833260031326647342463934821043745800179450627300284471602488232896038374873914450564716748854556129674194668312963864537102973085037128032366436910976043835948820909687135841252576789997653944502159683991523029940172908078171138390253751813087721789970777908129280402908628873359727169858811041080540129041966567323694483361954410323663258447833652859386057722735711340801385705263419588351872360873986189979991594654167923719454590376226509982246017260878292833346953842198272605907358638439674051354074398233734757229406075633059351107685064530130929366540841163490637777838052150615096771815215513036897326183842238358198971950795976944767168881890129452948076736287402351229171868143593541296033061847025254703063932781098031538221031055229833444243178604497340325019970170724235895923485587549846894096830455732493619087043324728715525845294291733557636355524611892783119314829375962473110461994857463219865132787360964514029570769954986407090931846774684712138776982056661468388916970134909511568231418178695365302689357820018150855341042188603436492181469212706365034671656182862492757384966309253134057680974092919482336683023167016201610960797287747923156912974842493398563448282489116315975614830867160434431460180294628788214603853210571204687744034219751371997679513077655111727632555667589658289251063660436752998285287617623742258846561187494620593347172298189784240737500156979012001931884458794310590953659890013433778708397124432754648520164355538390063604666075754340546133591676119671558715522740992302209108220427489451283200517954288918705687827372752508762209403991305154854998920192167523485769098381973159592163286727312382820527522863228453106086414840669703088561312598426599707583374951459445612567387116140599722962662808576686136787711419632105192344860347741658544972778736528932739011659809807134434687369608968183294076566941995598477339500415609711263851841300536751534431525679813905362248595108619002096951801414873637746160208183554986725735891261901523920030412918063340914406074169654516002163715499386412163477945383385125796787860343012862322235677368356744700775262691597039565602742952323491343657785736762084576910397922117822774664565275556323477855898202222498613922393430003744027001910622159060834202474689019067293806104009592823428913756587451685750640697053126831535881102355422903010652267025496281065346462344146842073024348407741577869893461846609142054274160060825198365396304648780854519084130896921925605198785355743167112494712477245499759621995159538173704364324245426651448142448141075943517733476268135085762514297620030030270165187339323442937823426158158120527125053856663175021647119792351418612333302418082697006282641766330627922700980442222972362849698619510845679300566050831837481028585672973323796387898738574633745592631473344744280785951654746453880212118656625615203063570175812596588519689521715227767731925493030043781870748012920998243686595098601889666056136236798635633710565023892049559741515947743855425829402898450795207134333267688429113613259229714730872117137582846933348472961548237421693979700041754978289613252079430310462968070797100314565967451989828630167507566694213817632612038545367442474626907437099499422219396676263773715933549837973270603653423117613788955515137374654778931634870163562436414893986864020516818853111831427611191401595574902836851353338617189429845450714039374173956549062964788722900105946486180764337190746613153152617590633958687568992793555520275021379898026526673105562165615695414757988784742638834501293516064873653098354372197626354772800518738588528597902588277123748000357663348455712987588783001033255396018620306723934059327773189748869603998381848243592643768821694463436208683980482521735859678052288966464534199146384119414031102196097255134271545439270348845811380619505878284156708661271120134660810187729898961419670903808172538284236130520933414930424536270468974809126468224984117455796722494037880472992234929693337811214395899581524110369103675318898287685316128553560271572569240622669488765828656508845841932642535898666381246650952780762977514334863483988072567474300621453098151353126694111217808287340022356777788808708487934420248274821179293530825755053856986987361814231403584149999934520415052679584851342152937547582055943018872044365431729908671208178489200111222474360877699828667085070318076577097936921201181703813204929254927010041996754835902470786080373142254394122919675301129044427489566170254341523455785804330201705448666378140051976132457014945247451756102131216143718232047962775266868132104787036911498272325681533660362974633097504235186935632510121704699075966038793104374496177187485898858457129061610450899612196564856973238021612595474819973052050175514331498230901982157889875612035987162627262472146450500409257954947688068461791965252193109173257087417179021185732769219555219843432115387398044104398782679038462212457407190818089401707797470876847906849638064191301170506663408270985544746146651304094817006562446665417065753087263558581262338498448384011015523092832743989100843943441248790254974742132052278360375597842777880117144536805498408339222175764562974517000899604413741125127412467994129100146394205253278780426248486596046659195458384119260863749054569518993742862385847687939254768132000677923692129468686003600656922087508733068836040862047094298445967397719233656890771351312418472778074006522038542722069149439910480588000998129876340665181629638320656034486681811179574542121981372327035640996309003371816688655164034634553505976774883876051108031286782163673356680127637254536928647167316986638033061838968453623535100191625411245161223688807101412369021363250305464845435597381895492955642144625926286235743861284470015430525820438518402703041983529710654403328515435345440437959696452042948509334673895740006281897533398711320622921230242206894531058798538157501551369373744033274517735476888781252687165632165093987259913983303846395722321099388875785573975844422345533213109063914962144812123053937073280032224985908445570423115124821327515949978929910292814335139502643762068882132077250912034180879113803276291150072141957585272138331053224453273450558230979042372080123179601994685391776427544463072117670133612245882024252698828230115802068140489878656014399147354639050336802835429657678827745709125867022488074790905607193060113097728511112673433681077457642214436021731537712146011015545172291339288139814803672836807477713629293196054768530707298352156083249164251450415460075039409797034698943108643184940393786100995112085772065763100091929312314626250550109385398888552284361849210971834031631800575693548276895304870198798093631066013648119925655589328626583828881786794107679199374799924328831517241636141536191734864949256374861874603056053021419635150320710586317063760135014430403238970179494801762640569090177479067903376566583391158324640545158800674466319032656247687101305307067846085635435606085289401809422189837139537625583166956225396342935922683319230337262124469620198007633894858447835945059700593940275944985810229505028387453460804436350085489889295524246487328010688308979108402647875562836123151025521243701301510010757310033190849154179435577599222585140453173709325838342534652547564982096736281469864849184261110739312927203685481112993078401685109274296861742345310677351768248186197134512786962770850922623022526044583452222176294600880231920673164399387222360722269620245696228885425966399827396536627033617469587575700449785491926239682988866098553021065510335140561106600784961316785579948659474361818542932647126149095984207463828950565764704680402617925534099621731567991166141731819289063854170002559337433796964045593992532361649008418194354684493236623057911657111387644597190676166657162658888643513489177012579254754934804620241548114305342735008643218938265178707477910024632213369544865430170534345466568586246764206083858174962693076306316506072693321521131902422578200008076825600511399626524397955767528179757709656167688460666391919017447898009712315324868467119657097693838247853667680912252341408808182014520356933014037964071863637820605221469546423865721554739231054173620493210059287832239162255636225016300114958704291647010618924865364317138638453114381644600265909727378085991699693377101739886959735914533603874859531938615260940927135366283403508303808507926678002774558854221601663892604090382008268704679741057809633361263594418477561320000530118961690587693777736347118436898691139276037560724058298444280720811852430719659515673537398565372039111344487564947704302666883688764305317475189440067635900999678601464155014080779878235056095016208303676055206734637907325568271851993194712397698539795554530091961523960218887656921036385530336105145897578223097432707674824054687697094493080791429619330286337937212603597335606426842692400726324303094145692602825489668004911775904923660466289679898307218838783469472984101424369638300459375733299037792795651595680084133794779533504169047785621954194391459649675797904168518567344776839902093605127981883549599583504397204348643225711398810141198886900456046782982487540455824234098799056776309564043681693362080643836212762109002580412258212602876361432048377472693801631759381316354688671639564119256477280633166641142950990622810893693399695304199837943664904329343527602428110443713664540893880404066166290120378939600567988206442112914086764106499995262659129472142315651924910710928257634072998360854348653140913396624531482186860425348565225964419953994472319022565160819867192652562997038097648030751462241923416973801041941842914866415444394122728211856734582140339375349095047923546556439869376255158913461964733312850393601833292554525815495573613808254914130377466592131606007771684970858403463151576618435790641697652276609291567421295953469494844212697755100951789112187575921654400023655400097600617347056988834804951365071431442961198097000609641180261983018433046958936936257171159694057352159655070155678901604241832981686008030229501290854532207700555147408333116382259185565738165546048520233313642486073905380916819433766322274952518864417024219380216105592082565204071643833871324540831331236314546841851211073031300972181706382997188637858466245363766489474846700621604803634952512745776333460389071837933398221802656652356047841913709100183318674478820474364408952257557958135281980807713816641293378931509885941363685931120440503198721599444367268030010946854819623668548653034692136319586821706504489711952385560710062210704158446335978810447205743652271156558139288442831985418932300970888467062620126694923987050311214711793800022230131377582215309110051539563003059257178645624864687037179867905809394143005260230015973781009111011901357146704934446291639613144232827412863269281921305832888712235360954439279088235597442579432499630013898577080369046007622655397171583791805274465314096260933004063421975920410070708088597317450778203889038204588895075563197372286303166367495747697576237803596645599660938660336315850469350566150266571653414829031310560769167056440948270417044361050630505748812663853157828116784195868045235156063508063717587336887575021580316267630142794775659913129341986113382033168859192041040524133864058159915350376439200847726199590273846965032554724869540346484119921886341733121888807789305116534530810288258341500097897535544807885478226589351040751929058729244345747571508028162725780533483048895293396021967836849263190422559220605400122439800522366115193498174567143917642100081675850511503458358156063483433627965134547572944060027008464142138083969620115633173890078574169911463795742474980357285941815035825140187601761991077971118022035867041980648637249506026464206513492703263640169363466583365933224714748582692011122940170725905819234454769697926651252424560719819233053322017083991766892472549831879077661909167129648395363230430302587058414536718103745364173971226252268219806582915707376064081637155506855053367116751531114407158743839068996566874725069648556685159878140865962938711174637048044997046561439442086879825446740662562688947223175062399001847795115552240467622223277502569750018818237624907758714621566266051848355346248524700557259896138443614562242997360260557601436493076521153997838607279993407405616082742630833969034724089293499436015345374834578462779738018365676868744030493436720735649364546636253666710041107177686754673304103692017231094609822161704795646411690504530694243971801715660616258911288615673130324065074217071263181296678045745938069902233886989677886588129156205420626470410721684711650657996555270378094865996688343865769319723836119731937178978549210634221438480794088433654017938161125073665158326407941225705257278011344508543051741672235365341504041503002141613193390668172652212565417298226101174235305370291579865497066617433743454975298464143414514118418342013874415348488374009882174121426974007470848931243747440989773390863791552439681589880265572689606406586450486730944480695768226673958860980190651665382268578515880357014856800828459091287624642768570798157655701252758849753763456735323801613206907320695328737020133705166499060559351252885148862307206655065236646657679457428971958825246625204940414052244395438961689872207762066005733009579745198954147946811936006598435658716990677446921611831792555090446125353216817833023412000898195400644062883710326969984534265174192067234223321515493281473817638208504650150101009213757634711728364381611832785567650213884995022155179998290570219782464099943993277850820585143504430986780745070832384869926824779707285767481145128265439806451523512984209480930820531209344292505658988213861394327947643425161039334025571862740645810271133297146941223374443259306881899577400842453435719111319963110551520677137946247886253860630454947729740356964309380627229825059883769161668961236143699795077611352185693195621492277455057590035995343980067601531111525885185175279647203643678469229939977284263721604338530230740173443394336411335559290076347469090091138330095033451176350627941896281063379833953142704226689525981209373008407057713937591849205036201568465186409052083375619658100409796978662876312415038670643053464030947976603035150337456969635925734945186833326771183594586188928542603899869442325767769343825807847614209790973307515330970550912470419409191674691966731420942963826190165704076284699156091126937159258880741448992134903528652662449533961337893750536229525629623378206692669890139421543522778873667119720931255597677939522407213554055507580984819694366614454972371477750223183738115132222887625311072865257695473410067646574316346681639333307151384189197549198975423778000427589264545712532401069622027506360171107235988577875209658387867963119001759727469915386790912625540843109031387224027531528650612175465761248940295954867380073802110268798966233012350032754327957041266908356636275531670979824175481743474534344834926076241732685519110387261882577881434145138965878618313692181394013474250954035087033354064725623313594195456008353251226662399528206242737145782378193398181017271051747970991925693516222025837811095055616415352257906711484608760229062387249612639378995663540892151625998569400942547948962673572381787203059198335752418966970236981972982279768005915741176156898319796727552168838062998291257181562716973918699134412084652455924163595334537141995594901937600358690266778823931181350574546656148924111217193354624408431921379349668160054830331506075456433115950558494341704809013227385528292638365006305065875962552602525345409123648888221671651743200066644271671272042148711443960907538525620160701934400561211540948572325881699241353899324462006867215677611503855467419482863896297526185832623007231182100018891440736370817545046232777424563177044020920521916694008272655574968578179790051831305372935213568225257014852710268677326002862100366705224959552468763889740208614121344208455386613010307993771043068183798544046442131644709580247199253398992292266692382141867410929038284240345951417282858214602777957350157572945774684014299792538577557012696844430813907834139340172014124118259332550494846278475273364281773924695280471726186817025178604670976616709252936689064059167118356125770424941848167059802991056522072033165407390252107797862367889225518399926302599737335961568455052625931334894815571989132141635294040443306942391967508716569072637564907511642440586122966375571053761967443373330580401461216909616546386034754492924342839172380779488477748680401646735552567969661172768894034194326972602541188782382675972392180266995958623044438208568285418583180029468157050376590276347333062475481479622208162655002198190261114288351000764519669210515589918666352532279190735005471602978594984161384226796016494015802466778361266196935371641861215832644090463011936738048298422002741381472667754503810460580931212927425646007891253651311003332075025058771540754981188885313059025302137290948198587555189544584399919829308366453397539115412531308661114533857002504271728618727574922577582910642076040294166909429903153450254552150553125284251853047818983423490809660105843819566845664739384947445049114246939498700245244654318129620858515670145488943111552052700020895887370561984031660490317319996835325964498924348580899483250018277461847923921396643156361472059328857551671940722884901819820147893684945954792414350742223042363324129115667162075355848045971410560724203740777064271203279239324136024870889705832749255706607291207554738573039135302899154167329185380073976301426548076500430651147538332572625528828826817106366044090881801378937913159207965594519757113232621481198023919910584316910491031995808076208101196574609407455681032331431203610007086302193491440271345026129978462001546848844523642006497764864712872760988771868483135179275766564276880247082411020938039976676248211614513760740119030631761724267450525198012183531607145810742602433037591764009078509853461827204945173492859289849613550171760762025092986348296094466739425181616830871473359709458654913929567211468182311607245869982186836886285877357759092818447991897263591287911307540208386680337463704194249555048524055160185570007923876831390768305368697885206844576763894548706156774837874762342558621028444019592264978945322080275940869761123546072989884925462779517858057507941840622524039386884261527043944220937790528832616566219459700523898920841584378090649476492966304331132098618414285688670775384685073286369967892626413072208503284417907406625462225389559497794721469899378690349173079176210519798198600933557166693627181706567227482185560082414816065592953710941593615975838429746615135946781864118545273461663716359859150890951552940786305251539832614416667482585236391064804099095346761974047068071887472142125002402723886169107405607802009491891829734629158007479366677174243788551306079222813786186761991299684193690908465871491147659796747725525017271952476374708485033839071706602063105560427071098649438172446011874179510834638944839480448978617905408332315645423481493554559286349108976496368588994445501784878910939367347214190622775008133273255472231811572842373687219809816467727862356554173580145706242462813161971041048800960667605357810383822530050593271232216419330180316391702265851457069380411092173662905828127157421351949766899412644949335654023875264713791890733113581291598889366218705929488938985162987550307019163246483663236306390743803285579235931229709312752487568814994702496465166279920522885294327860507562577014174468808169478283626613047782343171577462279894877567815690973093218702287395386939798826692077271848734133066425212969938643158859221776672215973310382989527573910185977333620594100547083146882578311185277837928003934187261227909946337567171123824642551121212492594042910376214782206926850115936639164923911222682694691785079852576453369189811376229282254090114251988296300894643710035716155516157429233836135824058242804048974650501564043397439484049636472339576546242712688053901297202857431425996825497949845050424602884753615519759837198250835379269136244144716440024146332626742028027896050040360816377834360463723298544864571590893804546529094100187252859435409084453921764106150605572095711224562769162853487408049903363877101551149744832516324313915902366209068137207413760137633055504005037077446351585415721619628007351116154042230427870837962055822123995183881819465740450281268547844716414787408610744577840827891600804790862133707476397670677050074803952918554105696569912919128261642666771246234252262895867129514012516110832252265476090425991048462770969011777301134878062531241162174739586439803443192877058264942610191755595247929319878853604431802734649075488079591974990906461363595422692387931226648915526884716180276597468625663623784672094172735696294602200788420868599927534080017257659778194962030720757069787394314994106595422989505746088995563689492942235758872798897619713975349268632262380745919449000749815760258126944841477209303212822712998239117318492922241991712282066459915773669398711283872250004188498236835065613386798761167612599757266422540399066524341640435882791380111824562654788290358420114220663616997012818063586247733209001317680935903120735416681841421101023979439020650024645117905945430886711532352713171421270851992456453369299916553837739919033554501026460368215359012655641068159803774000323923655819693117687193345077277293666402813731683315544461651424611183986391829744805884380127115597422598509266773213924408634053373117768552918932994917917586417767155237854288573817736277258569050708045021365559861614934206521552604364709626791289885561203123627647657157018504347466970158297864922871048352704917440544623016478443635779594611686230448610812519494840802821595011996066633761512879364102316651939232150291059413017687535235918757099898157459125572498290993280973997282813926440425387978745685617347271192365199769372201511047184662397305591175359397468011654564780612733530130752765189904976172897408179790290442698944446122902152283692304595961694909788748430623973687871685441461579995956888128062068989630293623891943412826815524311670406228911291629679918274236872182498786626557190624109998327759446615439503521339552082809054232466737353165638460464653390079390362076316786468409988342671245812739586400026049465296729247009323356647664579589889967829859384256594381714117740012943368128786739700188435038279726150288484000012956163802538282009997407538509379701073993895123230941447606492919725420370283584542230908338180431673263840820770059012722924152379831645576778912566595587073655436755065687254590761469154044391295354212082678089622028524860608922211125130262950158045627168945001474021076147989251570806094394716684282504531940763836885314364631623719928089178825864737836434846305823698850315769708435697623540321033813417934469151958329660657422787097968573528241871012221503473950121773031200875481320057003858566065122827313867906968494707575731356251046181010133683343372037957426291600911985504449235891402318449897918242783356231444972642152932419947910109805368741969146162551320155285503669123529022032713789531109080634902416414787156378598736913774197716820795315437359492579795598720876806537925047762084307954518685115956250162872228141839861578110925563601262036629706289608029805098874421822786800123366151406674052276129661471350766982617397638937169399622147327960165625846577327758922588392360714436285143851427430504409673337099737472240923936453633009203248519345862623191467617915579360888028499215748325960904155394753574780327212619450904710009392740170679614418765576387562620282306794215384123938426621508922478692410721434465029275858865532962241782551718842784690489840401890534022917962120003347129416055027695796944693956926781449337451738285196524689392504544505661906527425801906873720364663170984534183373456432219136967195535334095341790204908873729748054155933059462150971667636355759726700101442909446975160123086473268626099289412622162619586191019255398631725975970832075691368440533411466471417985108051531117817840316216302747844937724361738010945807724473462395761343638039952504997158172718436960989675475587593778097356289114499474423736057451792125833231174785376937935430993155493216588167622486075728033802858937528326934176591932036304590660927901565741975750951353176662546638718105732106521722382985052281786873271049694807688788885035016492654675881311432645817177207323463055298085702898982617756228320820079048523138044505002078239020774210541826415376002396180904290909311706443373818396586818721319571844635904358692663981459918180857681745918845864988083533833568880109283688476934528578015180156083029078896864414367520716712127082116445275804072769838621881835673596859549161061262731229752101582896991113341405716973846940663597098394212636190966775005658505602711175693919032478997243171795110354414508895396862820889044976802705044674136462304380086163812357603166530437881444226875643126623438621447903439620123530186719605864229064584767629858954216634227954299087672687360555209442223534257335236937591972210907125338166601267135049567518846132040245213272324269143125930368164546153526985652620848777635309483680915311988026312381449545685647258014912407692603101014241163644632992586965428487948729681382504265453631841076836665676463621900404161556386031390008693878767745478994192912374167020859526946242023062844995542960084401733095765773779579960834405695766050592656199434120400306927467658608662759998638666561666308651757799713430009236108197619793224999210562815158890052691858313260513898453341310351887629233658502154674983062518968272310398272034178290641112209673415209398477919776659961963387672186940955783810335975870517056971206871501771192574215682713795297043186135403949051475365589504228968897098497268723415959691003575783406838104731882126258607564570474012964576819676668521398918515994923449413770006003266353413684390686184204816833217135968121124584251480622533121103339353572368226500443661935521202791470509336787629930516261194129210002896134364590831730738301054424673360711435387315384260218362024760854028176937458493880143112746768970576651035556220818688805691027246608305884838763156249837303380927105835546217368546721315600347317689293046991764996528827546772113719656763598699361776367478813480487430578849721936446912412481055690066269689095805852954353000099818930453928685208518098108500780963412026612970596210108442999628331556715660281969281982820508560768135712634261886909128711687285344007059408072205623647277224352535753615470396015067526954121350567301526768150557241081520395281695470226068107932738266520202651288815668880605604973765303911972007010726538082286327999212879283099467526526179512621632497990028575439671423154275255740094316584185144083847531450987548889939328856512800362220922032605977939784265283996687658215349392008658621505706157925774416478819700074051254523970634170792376255920665551408407364058574923791080459666517392769613548459428096571992298668326690312351385384289323625638405646162816015421010655785467506735941597327407399722436676874795583084002058824969581096439314494067897474192359250633245829749113733373973264113098138119190234368753578125777988159565141397870282819125377268166547666512097314467349512742714954973607885801696928258539714858947926533904106771848217485126421502196964409944961189536328266914952678255786681879257848868540149554006775850013166727067726985163089890855281126122315755673689631388553982584864937247993912520790668374626912426926085819764505384954379993265826056125791278430056179248436899453562240972953152611965431248713079609519357109259720408828395644640335625920212882411733158593642454728083421839564127716918166388866467936134567532554713675171688632797782048073122876495832212548293540310983370981137531721974972051235260198278926435227149891260327924595661556241326555176186951504409590176121550743559100706436947885509753466925963413119611675781217878696749214820696645637213694348020076676322635311704928072038660157170499968464712462891587249409216200310305311534258330601776208209587540024425385890165671951728074920324001478728832032191974334396010228510891165123975828964857893552116069972381861962348497317078022624249501415566764175647102482797844285650788151351499039590316534679968055055541487058532195923918817846979931030685298696004444665215588181188221991302611250352554187496522767057995861565833773300414690837135903498575256450446771006624032565437085328056071491277378364463960246847716556118936232803215225654909327498088220085944070048903600810884570074714418949043742534110270841369386850652961224282274908357936018690836803108712725245816288610575606927235642353105025643895315665703187559925345374241723475546140471300367857692076193176492448763468055147642067010716833113360276702326044041684265347585734612360492889261863767284050388149726906287358967461457529815518734396293357919360737879188621688541190962650924763266069381228729849112656720043355846319437678467511347600217266814022686431916697136612230157776876196335073202191709742490854917311880657754065239938356055442773828327212243391061024561708449516416175145982976169456306831386661191610326115405738727755609606398569504340091180752782355649130804934769021467692972135741828674968385761411274899335595067685549191397308906382086679904266994162994585149429264673059771576033071798993522668993653661408361484297807881549751608597629401678905307000518121808601567810217550826451678811490559600970411030186829851352372135353128976057794971492999003430657070197509781324911209083878333182675968649279335272564363569023225058715787783920809715453460614631272548877075693902715330878994451089349968822867442445645249274234726911282351276030761823228527498828031760861553711362650487412080765003648757543044613601636881518080909689066679877309330869975481127291645417631568478831665532495241398621461338671342738273056828660939667520463521602176946667835207584872176805165678426941784014360277703029744290317485398309849888888969021561798606332293090979530445787112276733148443463495733722372344120370835223931230826521551724688377160429565014724064063026595100683688351504702791113359421127141739920636870352525912548691665500629061993526711138604449468924215889851192293651313284285142989214526375853643725351610579739738462161495948336162669054079822064115972944989356743412812771608926816746077210613900435045337538506758742319179853629476449462680341972845554007505023297738463102669425793493013417708788843813256738908930684878672876444697990636503685701887088641426223087095734166020621804708990328965066202948046034688058336135033596745570750874539272217354744151325072123967604426034484865246096940069602011837083608923474059934160687771241908537676886071012547333714361287871330022410197293014714720400502779572433429215535475865426233199143334103769711109964509433166955338240750252701879976376855059636743090102611024950499783831781377795541108920854088730946128027589410871819902414587571031357632908404931430861973698606199436422310042398999780576374729989996465779491116827718760560876322809039000079936277598943366480732702421275918225771744810944989958940391386500562296599732451075898088485990834317225679632896734973995262141135053515236489965515554644312254201165379232781635971627822411993225646689642065975035656549443069097324937332149226983908283680455892645698404144180014907597797774825162757469279456005835367208574123712796213666585293461528092031801305147495642350617481486856352739338528838060804782170595861293546883049254551231262358732478738081029576591036701937008776355439936362611596950265972889877067015233845994474422639976966791895217871075448176673269307972142173357716482794571704713302864033680737655905644668611761340276050460899313891185666592001767161841550997614745271165592860553414573108877937234687078751855315525481464141488469949663495551183970301697373119584493416319141748784419508309194133563306264451587239178253386543974477024966681679278307627968314764940129024656337250803277796977901803307667824992200010313658640454635088246691667884563599898136447089681548990033239558486421762101987833170438812233057313440943389690954181632823846217395020493213210381235392116133008633606244875264812007055396800796140702619582707313736523010514776163888551205475409254498876981473419868717994795767274623178490165426323699926101792169359781829476090343785095973118365819497331107229161512994430402937390312983953507133192102323001285929768357588080682641707911322470966600724899942346461704799702238085810583317390241509541265909347729182542920753919372093664965823217901941463371204387000526037114203429783238705925305874578039258176434941625899322648211875824344505379157637815665792248846156462769470675732614188830076285594157486672997158757986841288069596623908884544716026772123286093868520719632173365805168517386798011786116168619338355938934153302306236281072267937275447608460514854039495027754834191298117534662957376124187246673770714286506643168926431402480703658961588158768938623377258847967060473610646333667257843018938345640062828791922738180305591065821956326808760049421423682120436714847196713262519779137791315145006650012249226414680902948283363291486945058805051371522210864657238932150983939872218342142977608057628924755344476412315403470857276302748280754971211114929204199635671074616456723794775428492262177326241544862758361495481284678159332287712814438585677659110898842468798730664445472265244234381226473840699909319026423559481377597063019822768447936452555060279565015896730126092830720958108959689505037136565804043651394903146975820449429745814089731435732147329832984645954085486405826574218646794082986672800186104632931543920633548529917690791602002435962650958686620673440089902147082622649815357586172437362233384876612627461904565749834719340030379349558548835617718416034222165296081254767377324667017894264020688293199182768357370274738945361656116475523976557752528696412809151203095984983658559224812587012360765600553007464396038437102439122534306946119033926097682455911355758992534654440700781985892824472703338508649083035628471012378140158725325841219167447793600897074601234297537847832691554166980333962151160498678417061962453582800247480656818752338156697332229254989252273390530062852823223255467099006158155932820838133956566870438460755525801662622104400850626644701644963768290291856625183684708963295054853216613703420794399702414941319470919374568115680699117449933029073117582164276247924745268290563056420320675680525061638590682135038248837411739183202447266926409521093169545726811332374718334001985628861559995985013949032249800705067575000196741863918541031541625187758799871829580217285584535612249924595650321156045495548268362126767477440106608565995773597290020362222680454851883981352342270151316586544292302135624390464243843473368931554713628819498461141210587586811045315224365441955005265044701365747400191659800744416847586066223702104371695550633652129035385755742249695528294572079647729014102731251929403455895321874900441593705001127387255147352778050965994556779089907655514323044226601152803672703752016197646622439500025673150004144930846138056344432066033834886878595404023465585046317064462302297136672467293393595651594162062349392370656419285023477711548646645082245813801468760416622727890938311858347606471011088289669941040352207522381882902495165343153989047388192108024649255888408026485296383543220981397091617346729753866347688225454309971568793369694827161081562508317000292007192550427055846717639245711441254085742008314046239648101578125243572925926436852100705272937383364814645602947424751385448412666130621498944958236535546438346866244705413771734864952938053509046649463933805653591087906271341690985368007076560542403795042344493813779690986626164133337776040011808136959470758489557165936008670215311317878192545512870913829705027280818148787606198222217811142367818282195112354584196011495688547041866741471969630632363276488992661287902416639294309277960708876295920304640702851174135362412655195650080982986728885146353502505472606671190296135397542613420569726993938149350603495636580844938850956855675068641522638714173221868160283110019912953723014147977876734667322508456485639934346160942926850742102406214969819879657963433615686564531356780590291729349805682076269113659539036977641039231232181059778624345301253560788692039020828600736214717320362608597523599046795414253992473908837330620699661243408355830618677935553551035408044182149209668400155151339890263853730856679179276887911818764291597782293047353748103759606951562556603377836394153238900132377473220460061762864963849962162232550531579811907458646555119581626049836219109918267769482070634986181948446688138239731520016086463269097972431300788732819012987714194521872662447231595462065696387399290732129942686995178922501491318533426961017966763001359942527998276508063074100354173157717578369640752063469745939131369873490487002105141576932812283213134140650014090255561912962098601450207036538893547695173633381820052650815304466080749568427888876787802900303945952141530878918398036386824801918625877015517647639638972762920056301503245784060553807424165998608394795121242652938169925221047912595689928946862001260478591089433648376533399892747361593228560196148718999543474064561330705271706525393923017003904582865763014561680739522683813023151565708936019341661205425924206871968280094210190427288601842402571097912243083686802282696155702305398862747326195498901101888334555102415117173739878223751651822288072890524133647405970283053466843490217912890680670173020552088949098373634287131061057609565024115905922085592441885727580445402322275625457529457140424857104540551909778214354950948582468219618371321053311116131631307008147860186419486563892643500311632396500278685760536010392475770477205314434948452644327807602112400986977103273558853938630468290415627617256587642479563499481757719868225998999247137566365792231404636801303616268356731197246382457778627608544512620524570225380453366314717046286467911996681311578762673829758378705973380433575459153403161782830652031100894949103094469169136491261485338210943326252389065613219453354468769460717432226436809789540188620891009469369618084068441961912025098256366865546143642063624923193687003617509994308935537916941369660383824107952601693042913198324992080417977436687521892418160912304711719049133739014035228365825356031468347370940350124519433123554292694768321210505650647770855598612209858409086855274121723371169515906768650925790236244969738370243583421875350972732814869665310588006569897577151691009453215744702684122787252582454065244079662958905141520983566828047323619554213311307613940931018028139149971389352534674193421128802892873117362968269248043869882797151299881604521893397956338344969272861100024057095046105741809543439255503547890304173493285137231657550067993720519522930955964913810190741371247019259083089051568469174063360439123477667568478072415230156007371568320323985966458245836112593182445529068216507118161431360395774774612220880578437583966836209590777775902291214485980950049725203725704752470834599707567550601427898492964883414393535483924462402154844625704154605281499929701119121249445378248660018522072556928003654722115964380916868262211158481393583610507280995024470882953696340774501817401995444038887511936926517726629216491005051574105902385798544887451593361170927584716496888439146219538690485494018097974334314914265121988374976967421343908845456659695806636381701854250051400121666255522728346526069547809686984933517255216911455030692275161834013232321255509828611086476863292643998933395283646936639747295036191908714316565741578744034172223998180672532567324496034750675643762491833182083596566940422316935661347959036924795547323299289320241900057824545976434805823727926415237983959836275284118734769743260594629471487531067812614064781393961995975903293303989188231367572839250798092589335616239153544127878983098915260853224499429579374057014085843011585886283204468609523158698162015638420600329616267689036936818430431713090384696131874601777148111063015164466083106092979157623578412583861786764742808937002343920872848640105363448157091742650710738525223808958764662697418666611664129655750735371196558055262025937694980810653952662538888998729612229370170077252914738609554031482651236189500596904037255066593559810736771913746622415347715621999122642788987263410794938612762635990998904129517704045862790857017776811161891878511861722309332951638669339541075756619991441138630287459328471434139747304765894420524236026152176007699093775751028153122961103584639657513644937820598646261159527558838620941514361203553684427972147092145133700968657525870564140376537630018624330714321995246915476874006613450343441722097084525175855229183680403626264793929700946554971898072573530946750937998866361105943932378872211548441745704835305573259730645699377635445612280456248734011035065438889722815890126271922388707540937765969324595208674371437582636154651049290542117978308562977376509407736012749565925742692678044479051156426551782555858834187376388086685357987776722228888091355083296461173728127762286521196029068966770057228049954860410786459809330165265316386694822656323533255099015618005840379184710992370080527585602361164727594994906571648459557772853226885506859090996937054162421564834826201669629018696709100271131935802427788118599596270478523842071818362314723497425016092198167945980642868547419874891016642022784404322261187534531320721395879345464596260865298784434384048579964943950456488044069201594675316496624324806633334645432214556247224756525167937108142312828706940095158117595713409483428738634784414111943604153620820857478979400390588407979438175980858417294881503750115756020139174819783564736514693618040395059886828582586898663256931471719100308614218321371986620885857178605659351695553308360208665605750283674359186142711461043037210562689094525167116260525053142678925450926524776531201209194320768700366906558953237791518710833496814295555124830235483300849870443383401833559939604719488694486630438049862900038536439135920189927568144013780127326950850635912395756593134093858469049751176287792937563201855258217000437234963614753271945836566812283883624795288372473467197858189349355752616998192477087243667394128448562491180705699375537954057125146514747908020830160743024106892786774171863360427535359865756782575194877839970840635258775667505852809088863439567738986048001715622022845013837695667944455883949411645930172188073775233102830222498666499431632869455292649192143137882319624849703639087295700534842744411066120237706632181471815913940905559227988944237452491977094158443640988664570680330946427421895562264011219791740541501789277747045587915203314177276650169341123147787013607150252375974821858243037475263718344696831476577309343212807779376034788664653182478154408804600743474818942583115789919174527484607060327633151107207877123373194018733436099789773510715280392428267517217560336617876298751996525669273513285733299360912847430009630517036093784158847730459550046571285682119801495051014027460341745013686875542004663042438220901461038467134503899029027502351061252498678456608975862719218520658829807874263488310661908824417276653331996429154732863805775381737402680575016291609635032597426710107772929071375680335168884110259395939223313265245324821510202736797532025126301123531571227709165631319804611190550666821880808549648792785110795359496102797124746888998588229855880727570949793934056016851788628921437645871316988126970818054598141523302594362828119859876125945712709020775340973907592028328456168136126088018941090279373837621215540523406219689193828143345219226768021591691560924286758962017652471655452629088004090335942785074484253773086339268438808725181783097672590230582752232563527537157978583758235696537052056594760755591678582702727412181812681057460205274408979247101592544734008723182658862270597866864595455725982016141330859868256918643364723417099936869073621292419517288784120226061546424497662539038106912224023649822575787039262755755868615324730183455378642290701280045375462069815635594657294103743407574400658560013206568093320839008191900394317237388685403569103427707757026186991366004434618476836097434791332416925712900913284348148277236364723547957653885166120920251058555602696995023785581478746087650744911293043130960020545656732254203556949226911425564130943080895481123408762679935532546303448986947775056071047033238767891036886789386820408688975802273163270152267064748743541773139307232995343883997180582086103909181373219946978288129856219770449696462680979380939033310873187154632349546044531240073695492176924251578262461655078352536890719524283155439618038720758403981922711372148373264216314652342356877142270768397742077028424522664492276188977551716295021492691167800388631969729389251511307327738992016105545514930405193199205480052904329027004587404624470892347608028617506261188878339682796624792489418414047390106175192746697050609611368719708579786571560948177500400570372086365461236252616942898984710939933914472413246921100687769397074281070891617637060360712674025131871946428411461893156451653245905506787976972479486818006524740483486091312688203018828442837430593408777127134485403738089244706975196793148813440301797308063585749294470232813394282650802978403372180600809491244925039564028039166847603211566005793015475834680348473532598632673693749665632374971507111123239532214319183735623022825849970387485181101080478256037672239593067868205730601933942440247357349334212818957847520617586871293796648387565159776632296159292306920158205339555211401028606740133287405831670177780874574777962236851653473526295683574884601426188389326325778811659295760379775548190858296081141476220376017122442222695939258187491264082404495947510310883985451360607544922178548762386675471792048890585298354290168252813494176409889605290828310039519636667501744316044165847000639026530496886038036137500153626227431157847879028370591331129846458557777193587447011881623189179641494109000574440120466111342393290222089076204390678121367434866509028538057420112681098415219974257030455964673148595123900683534931934233528895264115774836928919584905528051882761373941606314480591811274835502425854628337327124854019773097721899182507319441617986554064423764635629103815622381112860541048308372244027123503849781664495485062875179914131950704344721808927176408608754497553191900430901886956454893991058126112384045770972856936568234360379422807951925343940482912031473674890742536151231190183890852638595573907489676110821073882199793070498652782716073554599087351476442040439321770263298029753077498547970464579893642981580590011283029083964514170190154399534314970536694885122626116292501290011683034721438028093618928403591473376547787722195348476757907150306046437126473502397506912633156633325222393276922171970642288760520100706580308891167234038738228882568999661805461372995115377209232255762946104370788795754843457048625001150642462749175842242236061730522790781506324496460907251931030746931199684396115714376290198065786337413725031301617485950937729294132038003493393222418062781067422221392651662239651379361629139362178671885586395904373755278364479847407004986309947785027486004428012348574210913128405299889684206196651455566903379104890337553097609650372748747237887312824008084614897921711864305619671588745260157951053637821614042336352926004211744701749649746333155461854182623318665453039016041201035327546317732825644562753386237752752552068066341585903964521310380753082630042203785471933544572550203352333736827287589299338476866777967733437984103886749483742180190973224798125668892846418370065841368268768052933318270618259398867889593883275077297666882047635591183128780524749917403116369198740015254126032402627174570335072784513326146790338217950789011031716682856557157095331295667631211369252295066813242842256411825567458965471106761784012350540205270672175583621912811896605008100236372704859357763081336199462143820491946523614625802835625062082578034758572112713401287022117120781109786234850847587113002941617433194002389432453015614719520767170352146163291952337581337686846104692069751336478207233675839959608860672745427376330478092241700271671958257292809675468476209235102196945814622313891891454737020268392693919613759904372915918448348787364760139399429010078154513555769677469624499373315428041938955854840396761660063432335244451879741734881351996303119652838848485272255282449992952924815373879639893279370079566670106058063082343683348995798674212981562508188120638839122165544008238067680110314893378221539386226243257260206704721793898214482283523236749009420846751993511191426843832307271516250349174429141345907881436046680052796938055443297439554964488867779399341787954747747335815531636022368610771928657021661934257378574861469282723751718215302632205124864046284489745713494000043042002271855506701933530741239337128185144311186468684187126104896059962764479905423869792105309133690936237560326456253823311559394470900342006117397466493287445394214691862846508962093428563329909285355442046922509675508340164191881948742538606500323311511336409645235716931484286894461969981507001835175863337016854847788013777807434133776485080537828577254449076894329508245627107473319376411426131629333029145830843562224665094752580874295016851493350662593391754295302672526422168997613935689234281011664934171261746881963775326452233409721374412144491500946250577954642517496814531695195226320286337593462596618081747081348838686847959396007890427143656218903639527243534991319521725570791071628938949138260828472406349624861871497751806007469545934141272173053593969173648483608707110956600882446092031241732992691542477377924227939889921835904786874328106693912074874809813774447687499399956949291423449954094332654526930885099436780587762598060972197204320101437893650803024761371990429525671211153783322645692607521566684871533116071594980318386610698603534426627252286454893542239157061734982775602135737202180926158363155011762943564694594746644749666976320538835588054194555551860476593690783314207308335600909081182459779609815430038165328007961280026035678485189904134720858343810597490295445891563055149600511631664716262968150475656443836199891975218045318798787515018286978161560809686992172409348865801396383521112875366031871122224699335421757463637077431889390053381879288700964680727919901539027697248707819618218160482186222119431770856442296779408620370628518582314290597052829839142205978810425764667811536483111258307870608714451102963284466609366066820446555360641208637958198786824968078302597811141218442950051297405522851990246006937023366035896167159105266204896035709621802691546551079039448772193918313632958115567782447812403719138465867933410891421947928054364743839700451922132551105728834125800985702258247765802114645258174377051712802028580745181948115469011937567740408019442902416056260529214118786633456911589779323228548048278397668239147040120314260856237910106401751532445264319425507556021277640939543486624453071055355022291395709672781157915056443218666589915983913686034609897454806947532843687374334730446069603185663991874073775003544497484290715782992111661007379652509737094891666601308152783778720408433270308445604333874346317153988236635901927843521541695287804778500095997591141052089551836677488166474837099271377959625722320414979309648511817610095730814591942117461501807772806435063112608023952368406769659636530479773519523947662053803901325960568978243571781138568569096328392790108538273421344136097358518216702116197360331968361063716921594195485195598499768715823352602694301065114741096433018281125082217131074262610883827076273146323496192787818203798402889985024657267834902123324392141993107813777577094539083530088200907683161457615721807697267240786095263132454279911667796902982398085584606298393340795430720437026835158200614783189185488644990421275512626435779626958351601430357133879718194757652041499654915801432933761209852283521617139269752453996498788908761472892497849158921881906014819363949197557929339750120731150952431990842178676835338431724631774460193871267968584829619529587055859756938132031373053107998655349432287541185672221743904199182861615045668010984466161751104970158232063728626265073501388141937489034287345697737860124108078660368976044772347240359819742132832238137773539788682251221003466340044895977779778642588847353636852302053640322924588083056922007710956955003968959083195823981873337329458168752073755275326876137349953810499524610469738240300419584526282932922643711394837310355097056313841921457180484630139099231250134025103163459035561597264842247056617826234769427072009315077138961296631565137042470198536328153880999312578115028964917302141412650546106581084029722925817268764974021821368075388515333681874367403309021275976760811519549748640092143613853089451073956361562652648585518796599900436572854755245584888422121406931050254213156617064896920216636078792139159894297157051604312625892403656976598184138319435824414542106488215092142012887617754722778558371720699957248267196234845129710447014490248985720810098566814749815780368912125190610953168587963540711128719032377793253013552356035662331101465575558862609586913620678202345725292564922074275408452409415362351611476928663169248077485066232909760111549343129217778020805433860377398206051699644620687450988918333122396959800640606818506946914808927384185879710088623152958459935490435116360508693451605368326338791949087226204802057781242862299138814676670108765166688718682979607012930865500055637353538653018830207144473924817647994785177605740721157368079498388297224311539194143024355559622647530488848294658323690705049303665584710450879379164438521873127152672709836559481052063156011875070676373523939242032311573336883913729043501472585912869120170178423918882931516548366298250413291653189955990940359853992079961694893254446625876874233399403598161092342242573981138035549799878208851563701614098824492709573388994778368022216800945888739749239910720824739280386343130085037629625542074960108491409451304891463136347370202403844441784032254384221506139303814790915218964891576604254971468071764139259922582848796967822673017750932424034420776932254763343238816420034130182840273024690262875992423552735923855699982950901100213411007657913358451822712548296047036932056851128378402752679033145833519921870913131936844283474677997365713957462078689669222141306908574219461598038235627863712569534149009333411992167428072098708884704708795809810184201388246006023207804826309569972150055236685095215701727000102697803698920265342322646548409461329647736639038236974694232597756986752255541286541404747010138848538320765969073547728034538528504185585150492382219510523078495897224723162125955938240035922628438802416109370986395469760656752968098756665141074683838748301404510485181649474232531374270066570899911547695866819083992493010642335999245861750833199264942993093994573409501499935729693599076834020558934723749894927453445582859678802088348534084966753586937499877484622222575384472678228278958698685279314209277363941576818629733267408004006325195822345973582664984007749320081094268994845652844406679305027959092269371970246952041443296171713669886859033724453129752877905456010186814315085606589166451397252796298851602482116854039933662283372839443472082411021012529204505130785859925526218309599345384466992274957303568211598417646805895166773000019690228778601083262325644561159264712017915469516698470354390527460352082027512603252604461857404882353826203301975691738271525183866101596443218152035447118991740091158562554109342204597572100323462465734557133118673334697356108196417522710422398580978303850708703747258182961251228886169760205238182414675756759885394077287611359282120967902147170372658838766758607391311834325897768396836729020691555918042482548374354756295051314305834076175127566408927460664689168400634943230952994810675859233863198335096523084909748619507519689469592580048442832408936598413277238757041798822776633638812790581816455399638877990101866267472565220116643242211454342118064167001270460830732792475048310622851288971390569607791598116303425926483895268953703946130685950805047897331955748505599665124405905560796773580632609533320673271564986929644285000454306876449091879039742185454496348506068822422326751587018398970785084777385976112988073188804423284076301270532255619552691675756818862556219873535666871966826300862917891123253998428998524521532261414774796833548433277966318008320572271564920343299516959238997343828158298922984144311810505834833868231061433604271592380014551835984815702390467509068060009590257541295795922109148710102371892249024438896285015966723942992946912954545231376341375593913471961720671240774068553973593993275462539323040733947820820597338625414794743532092891406748901412166850188565006472088193510514656793388892085343516350551791969377952235490547908992558849044631232282701468330199030861018545743070748718426498985323998530351798981416653836759408594898532745042483170247174033575808165910248243561448640193822775397040788265102998522202532166829321479575240717014736986162962925607210675692663862495535354935067591401031626980381672905339225478237276426218154463516375838635940650158222528230268666869090987595770926620067060495502390192219091856768440478438596659493666691595150393700214520287367784156128166989392493493258052047653857494022131339423852657581167790144157842675348426177105683952805123705508138613042911845217812243007238171818705003951021606773250156894206383895548783989831966046337170766537433267133602878515182696788644655700336562885670035624033378280850909042913258214336045663408261579358540461896078471534858423509242133801033180627295890771768840242935550795662360870372596415999912518064215943758021590846289160195674742964749504257829777825975753196203476866330234393267648815170203566279258976969552889351264432316516116413575857213900605217170758135609004156146056421702832757330509687837980442065931941877363079290384544338453905720175011592031867114941375566402643901464138668733120064000749805172331191521996611154778652462721106249598000619023899267870755534602686838901552147633304544194452943513414782405420437611470356458141551194539394399770705510660710093399002736738994181721414281726322509328291526466408749622386450079279989114076238746932104356789980285051274588295944227477790276150742814330949977049490295384833063548801219439569311753037067382425473849807897599208036296655545547433809380325206782444170286023553014308436705602704694606433685184977212755849780044896678415850221922230332299504888526753374367789636392578813715551883896562424966229476344606788343963136161877795697043566023132134929891764707566621136624835157672911481657708436081850335431130031357287199179999978067114074578220912703928172289013610983221952970905204408134776039583678279090487534967156825129313734159820670479090822575231872940490910332347924216387553395711646273353815598447842197149611218580382032553981601799617659454325248112057741236445088119935120805137005964395701377924206873556130786551101731269440791559082456677617595523067038643168240292210300425260225099536005882476776221986957384080820956493153313418041944251962645715255850347776425351239148743449467667899480677486890010347799189518248285843286478063781581835959743351201620851335313131479134988567707270400861918333744044523655810986371968999696428437881086909677832356936880807054861981631117747729429671597043635749295504726900028564977663156529353574680373355912427734681935174871087290622449345038590848123509879825634111556332585377689567057916265078540467980836907270684635493703342926073604462734752601119257825965817612690321693904882172595487193508371352998812028512541603329105963480461315177129413372868948377544388880185648053723260494837595654776628749735240188734739235939485179810262807439738642622658168208356646766041208492528948574872550902411435424215534046319378051145290164888447369546764460304574697459948495526383261353881056398328647577660387316388369732892711999960119434149948135079069233419748339058250620250380112223334763292600884178918116267062903668754612919327427315480129046603749785879687294350321114111137957054790229990923595557613845600201879669561383017562017966539125813536914340601519215186872320625677928917955588943896836966231996272708675857904252953239676597110690999314001677260825351195067884692647389246302663157586370964677751841685102345746340534046559552259751975451457269942275627447893296478311268032109638022959865185526313040700988889617620455046721429048261926202752208578278428408305035212129294567935003904876954776373401138886332796518265444283589348174721428082934745039434670235409625091562630475903178232265992224019165699279131787909676212019819466046334778591046276823370744373183382021044779145853444064591107448086220484623668834481544381181059958672972225213324353275706994026896546727475393716653779711606992123372581855575883518858158967664847903676508435736205786641055691861674214287959081553640247701276033110992575182364033692596212897548417536743593335398340313963975533798089759024474337426001052136756725151068226753458464240555907291518564199805104558254599929537962510549202531770512292272630466190431982374909342505230511577341452011074816493892950439063433490752642753148983072327420763210613215674993775848098057364030410551722910838778987946686606236782523469717729331881827380877505750027182472446938631637760886106718897712817797465575689489661704474449516203686402190417118032425891898158836282286510867435352340077587084787859060356101527328442184479374269181764788734670491663131810019892592074189210974616933359752112086905132999297037047877906799788700878637642816814331586625844846355400059368675836756205218308075785665714406592667151930666452794959574019471573937181975394085101704551884748710906425978430608573034898420281722802776899733400694851019203696413387924007433981863550256313820597941855693494369261742765239894534713757907399565189620247284209307093163691077382065235958655572935406198598403780784630663107812080499353520608757018330191212638411914391670655591334930281757908215797654863441253725139306864061049484378710520482767380387002364089721855987501166685152157755311155289112780191354872281872918962639113368570418566628316125999051503504462145485867366653277508901797789805308856971335443512213998665223431031364896553535808687111976448700620684041726105091389457065794910436717752462684848683954754551095281858998759719769212685880232457417822072934505750973846470067547599281281140308902162010723906792156823582509691650837360132977630356223037966068645184331311090698673508761253015780622894971775400704189355507820908844917442224123583505578387480783070559310937382379666744737018268487481998312644365627800628112473030194531332458676407259921496447788128467378080075543071750858597299753007967269545687036757413327909865379078243734487678053777954676426755020127580324020351569850235716293961419825462510327631840717583088004321060242061705594889096912375741371229247953955849171449394822151918798364735006032639706559482774780435976068897592240266923352876338955544046183071271601695885816463660588249738770357968552023690266126932053717676320150551264045449184123578250991009794356395271633035163567769311275421541006880096928177653614084128906425153772545350283135008945887953847705839094559037373601354943507792829870237126815826767089234280616518052323979547421309711032457405775924884381013298009786419123258421714779619106352396583101824346638467634887516538299364908312786793504552312854565624031695050515929950908689007444559028281880925923060160405585781881254834489750723019770066613647268939758758719782952524679004683632729516916775898847281138326620801664458522755088060521173167331257412338805866997030776935547934154042070118914001806500015207235194042521760994946352463196202803077066695536718780859956440318243688500441692760421555260843752262912840560939117549216571341132964329376647817182199078202460667118123533176620395950558185176305349601487292754762833135940897622105578012305853685231616514052285227126207769393036926980367588563900684530130879831294991735569270582850899030936184155451715884896771220685780810254204678556785476305777672573959141165095408328411330264822457201039808293800567765450926803431600024095755885391104565090347909684743847086769517671410825413833298248540259688945343409959385323852689713404910709989225839164995748854795307239666690128771893045694499197473357971897556425707581703482667712412214613341169940893666833379950500750261351067284464179506413951083858305606383349332958989459919832051491298326367946364662700834983876462860461446939252128201131640242593673228598375977985114585868528053981667060685220075342096836140356001736109579558576275695810132113132447132716345758013678073835498527300989359347209222897930692503061606621551648939534349393546448874741488645306910003923455608633721157034279815832834090172897181846744408369996893408005064684831438614466531932375999560530555058504221910737427452909420595703785365373914868420880891015715084793165094364459212905795192942868672139415062599312559478254716733034614202252893966368359484486206120469912140090140577462965185041270743557556831576262164944918056551466894234032160019661910825016703176972210136914753709672438553140644110573781707044505805748197857561563166491083182405433040757154363379941628499764353493494359996964609688551437058069420615185566989362748473280891160929354458219900743482856923144511711490566085784209846793955838256918855234078297799320779852521996019514687973703066382646216936164752461937132278211316748491135290376798064173124787367620335427145855823093464089988311116264313866195594716146628489125093608204693045906214361049059344495520595754069868100279302192700015226885894529447522353228259694474188094057008598952766911501455860686282461311282201126197196262330122141942007479574791300373438476248921295578501880231375097392682216357638131680665194981760014595564387154899310738986483770341544207970442355895161633925743289830652162774054389658085779269864772692776620481950441283220720090241245047040309965119322026529607665538063737106919746958870851459801935712581776456117058659120365825352510171215739773040269192720204014035884174315125212398934948207853383218789272423182255540592245433243077618861270901844055505619487939667844267459896500631963282500908042667158092105087330347931627558644388316918026617759325871355203956108524547284262261724662601826556663326703558792934903736755276436651689861857429981694032332621470342320163679550131927588355032002120624809239117964288753483863587890462049566017185125599055283305415491581447152677261142718463353130876140508864327401149515451919446227515271715368348706577937987900705674013673136384459719906907820733614787135281747220028357545179963271821008987373481178337431671729056559807857771183774002093391175773300428878948772925942534072341528895231588410592339467242674799520321303527100262320837827235436620090753925014889089760576746838058835299129380579585488796455300875116133755076497559245862280245849922808381565998563073178246993449495719360841861047660035980871613406288687802716151580115834302286219179957563521253834044173292436085932194620946465169075835341769823246794756813033987508789481249480506183244003159309424739383216728461116066979277594869605691663176012776672687197378474916793169879650547443379664252880367363571172933789329094338207878399795831612478628750891884639004067689468625401173218260162009147439999003922670695526559214332338313871621578101249386846490033569035076768357820895438531688899716274197917374501766240163635777237757534603852955194239395576603060936198179591130243316429183837408262005136035771265014453208492658672832190473001119578248729863259865078378222885443368818947266763893643227828571693989598503984162654223402562021079056912294408965668815977727003035885792157164861235711225528409410522363873903097783274005595849919341092383715312597952204065036524606805291576813214849204264438419235822914306483319914042654027660377313227069341749991654269535875221460630248909112699151102073313488119535988871014484026840598752698126382797560171184697492597879728127793529024868452961921626724227829883872179661389281142130818082858642464086641663346072277627481576799839762531505890865638435047473534640145855746025454892745916427729861787583793424449466618292186329863848724934063973898112806554585903420853732180205063696506122182227302774581401939554807509460334906988607516523783329901752814866897310435951343941502291527398393734585085269727868037562082399729419138213769042235115653117882446439477586881702742384360795577922640594663147392974479766978676774543987531093728799271318158567194252720167009358236053170819983039833907179392208222045646872910029453216099635165702505215256607964775311946229568182793243957706079828114682322164210334133429259679057560086263290030870197387646782663263632976470417772997000695694359861810522738154172055521894918677678987065643186583017832394578444953988841857161561716789537051908026205524936391390221925585422740032417872499903670465967736572378150146971969266382730416403581614756815912837904510141873181242462491256142107437877049816819871664638573032956190987230990742503342027820979587494353544087110805493989797318014148678406609211490432708204885322738887737841380479488758320915747658500936878731456495194998592139141794727759049019378332402742944187161412259101654412854470165640020912258577264942671679701833850210813762530089288176637857354537091214431487295094413468639407805441259201060439705669965465116289872460191085838228888452439326969984573551164499273901969504980013464015674786913958723312423685096139120001991378162585037825423664303280696925185189654866322082915189043138248291873782311140073028468922650376739007387943733757521108194513805339942922568884384645816417682410639532245444672608460442727318973994378866630835859614406516049735496460521521990137168899008594632697441102797174908387519674810619064221067227313272498411676541492006567714188406063144499160854951230432328241760041439254783097734258059136928503747961178034565338003039502620295683562224044554656041386453244136142651319900372159131164157537080217731590072200181644306169994122938627646975349609790114567571766054777782326852784223744548797997824728990292616580600737135158157705067548249513861821022858218827903840741318570840786954074869700430907518907158608346010140983770640404230035581885837532760219127333012124397306591826088345832377588438026809636872192946390744086543596788889299501596859163526177362151877204547678492249338777252646207972470683899697521967461739950848412806893181189044638114165694511522723824387908664327654854504320487845917471065387743576658926466588807050617814282927053456045539610756542392696755090603334197007589587326203500423014555887932793448821215899163603332396684794843230165499569275760074566129988323908963283001992727711936913676488238446098419544390035518404940543883412849213130595757346267231594610264567835668735402833356407370744653530977635553811724347259134277148066566495425981255486380674406346596502132037592542489084444739379715602956364606350112868718474858948630535299898626727754801692329526891338506452778445898820652741629590115692310809617082757446173401588240565978063746491592338854867925891893860259779488801016135592472645258462166135800248355856394533983868983385927967060710840334980204287504375999116666212999446542740912825330194802241574711883723840712589745702832423549890087291356873840974561915899055298283412526976434749527198259632679846404074208176246729243003128739276912356383637402578486819124359436118338984981082344993386005346209796681981501230996988153590656799585551308920750548699337843201087901546616588004517885336486641951275942754317223865823825206857724171913651582990223483687597860265654336586921999146801149456430476115523186758445203780992800644103177066892128199716218128920097168426401472848044326560070293656370108846692726537173913000446848759125976768630420213037454832033478060005652983087467804381155372534992971473106285455529778092147873337895249386625870451694654326405994609081361721002339019735986917117443791706034309009770427833267745870263512793506538009678181822262011573119247896439487137738775166362540956783836994033547926151789431466026273355443778212368268216404236127970014717649538145254334811583715465477994071834828289271947855397878617940409601592755376035276352747878042850041416763757573099453346501254740533837648052956252656281405962114591755777477667811852379501565854508263457276516566108857178221668742109644586886017747220019716203895354424409141232060893684310880930792209940459353485271473578308937748611594592179135941588144245855822053337767363618914969414013343422471352973134086469868873817528795392947995897070102608582550945083556636810194248094190179618900754103577109277604819539164136589383931693918067351917436168710672417152524733783257263570656511498715100367992134191335282146526693725930294148260951128222449916442597192878276254436615960678253529327752300888961704693544693159352203426757827979845350921949229844482818326720652912677332204807259011064588178595322809855271407640293405041826286067874518206017308719175759499183096010365776326830979148324831796608290016341114919961668202849921776346975829405318961274549294611464507778607515148018746634741549117771679642660638910968203926161743125259773743278716634969257750766021856503291610120480393363262657654088979915311802498618824620802536261530825293187737587200542977122493698730685245280098814611969406466142682509736997864811769712657258897686763785616779255440813860454855081020281218298769347701324150625439235665942982114108993758525132277487032310666834980335959006282504573978236709965211459882915930999150509229691068966000775297977812973959744790559405324479697263141242355188968169316908874805789791439801127337833143718085727995326455819087086538929108899723955332657399950324606937334190984347692208291763135594767094799178392248126819418929306351975148422311727028075999604371293587862574706255793624770659186661626647259333891813363084992055808039260762111202172493578350935503586377787319849788132908646753205612053614873240518640180329319932912077418353966385089871042271074838140402966366922461423220762329297695018546004485863251939077473368278507770073987017316546060221959773303906951824090968336126145985753308671442568485463000767523574747696688924981965718460671914144136738625511987827263534033989286992351920878880189398017977303453643768113729647877614905573064134743345349360488409055337756798766038331079377050365923299108692483344636774466148249228353627400216888040938699399272724953226686519078474035191462519887577279415335528535770890855855834786167247655178971111333482037182197060912926538006131777370622486235392078933468861952100027547042250986718119084157369001969128313910213097651730792664389178907052706111109102014299604763738103207292975927087583068619628134791165422878297266028948661409291138632857562793058328985807757783063313776691093098383828994862703347695055125874224502669151106040012594690558398481850757997011455503580308760385219908687310603476771886839448136324796235448917709694355294754638228689091824458664949835899390146670639680474030551713794748997294329599595021404130062379117889200396787223211909345295225747095716374726070920201326480269863897827951808587008484166954913850041379667827144557933131976088329984478827454894590155956917243980423215737565829721613206202195125050337076887906210176394472896159261953364691124680842436134819959693020961985846375823411309184743137228832945676821997952785729118089212311398270693787108271466112120089992732067874468202330899750253437600231188416682974475300105989166496515245933686890431783356504833060208188355806842927161219639806057564379846455815347615705203636564842555438478402743426435013108768347744804017395177981124131529286844806214360676151996525235473649951359656060892069525369723464378836725241927910405502578774035749885146370740770393044195406939872605052296023692084829943806489284139185822537536721984178440200773519114310453289238174812192490282651835371081685555329879896227652858151467268588436144978940292539505277711909316589008658705572130488635228018001375963013902517549523026169948082845420323823395783966805142381476910170095783106048840861525894172035169613105807188795416506847536296728120855752315981317121448630527952196674126998345160989767559507533931975317567958900308074185673195332853601744590707217138122877244848915326430870581557356362543700257591093354960275254510212914963204875941462888924724741688161616931807324532473538017426795598350105848875177929936975484865170016073007310828539504033122315969473149920007648956113210253675868834480995943157183442003136295011140820321136731663307864902784438488353048229781732037196027460163963163027319586148762291235345320831298890730130424722215134059673570268137351818112838007675638949994313777411582126053474723776323622336497590204716081074138523557546881247697228391514499202601600398974992852025402361164408860015409224807041550711649513496203018924247228179401069770648506210751461329894715599562989150900897607632923638051091379849306488443136124747355028771611138713260802351701460850264328718309115568582023489627725970330402892336577014561738211329453198993321715866692340437605831373650126978852265128236760413542069114878883583557185530132575301625286835249212347845664208116850457682151209765594903548018945934365240063921571844163352266567673080359735243282755561816469490469013090852478491326305876065392173811181301499568356356564543154667758586249858296526035795760055425122371626380608392835335072292039428720151237864019349655601807937974204824112734235125630187432859916919527525948553782747326840859718404147870054223107085401379444789911010679913285435025572811076027364289329494953619770399492581564629412437894699678457487523029306227422960220141772685443967238159377508567556319773458414504091631558474279281835184959601182144168201692822739974226654213104601724966100690872092708043387918314126567816473555807459894880381643850496337303464756857171917523896756159245579174310129244832744266170387029888070782854521945182237447456791188426465413604823211265984512134132387700545527687203660959303444565629849462953146421931673084834184513821887137636609913511234276350827396508545209974087058991117536996837144342977151312282842129550036575877761552271016645390995165348078220885683721770232641718233257091010680590719039732175221066319151496246659210821744498275895927286735710323304880017049639336936414661918157018125671983583968823134300872427047181286379999236803114594926414675974386313471223005216203314217966563365737111655393407846942962977341313353227993996459001106747428827075134995877835686528402556692522537285314649930873498240241516316786376908291636746448627574760560183242796884564696947189004918627901036984886115149616125030831477168283824325784089880688010617781365801202518826341467395751739871913268030185357590591389581048460110851917446947253807497671121024363844570181078161499333397410732572907632152615384576212641936004243417511399291196916416776005333205978685255696813932482586992600794080460656543840469751764239750995568783382015314204566927491464051634241211247461388477960019189355472616340127010164173635241363142973080572247399989092966399185670855637515379678029278691112531529286913821262569961218299222397396971189996555998065007759401250591610027323234592685267717295145712295423797439449708841116329716509371776959703538479744671718295798277774927662162097683287906137726897906567381742622293796876108640567713611218455079535014619120801432664546203077839021037475594749710865964171257444681255479841687934098296682404529828828431920903296150325122363052657718304355097284749870304742178828685358488290283498594636576375649709966229374426016538222195973013352465778747541187864432268132343698954421876650595308470109161841485813322971002976564952990293236838151892014916167735233475921957605532897987697189041195824305863210803339095369201453311075641358284692733744428877277890655050029608130531981254040138308784180658978052180352235814335422310799987481823406954862366989442328621920442074626506942866424724835220283430830964990918794248924313697891253430215630304964166937669314738466164842982593370646493382008800004114511532793323535835067701099829800895680118712280961359987946983872159494661955202975583615179613466426955477570594525884052667003218532406792271897756356420631239873259182616184560777565110905642010314757538481564319375638689066734446122994683806638958862952985467573337216123140396324666511719621206379909739804646666160385760979304449567145609045506591052563632955104363054962416121755664032331233296702976602755838577457513151377686204856957385130122214762256262682746936850156691883194242806315027756501716418148504421739346486769799697970356992864063921483338206332105223223503991693956465204508784469504530883543864020601115554676852575333483205098321183363888971486458847634604084851110497719134795553516842106665094902049901155015440283455983189499767304355195859172076428588420941530166967272105767231788028560496890917678173095960731185860528470033795453360048767511681858393089040463958704085620481687559881091139774086379035129375511034102149382328123488752002785905310892113906499016214302646479133541787661190119975419400230582077895841812881566985418488300617596231627877538381177324011135201798375706754154721902222423954693711006576950157556996360886574348096102016677608887863121378550717620530727550988476342385955242330442929358014832679056000669757589157897488645095990220643133278824041262332839146241799449362248655535706807360407151376671384081112708416125773047231913004396838900725045936326851803417852632728861776374182085823332521264180657120168590654715629471614068076307176901872435404193743198868127855048015985505201022563791252923344373447814138363048801170295090767218427912667461432443886710386463604533467946784636071383541882490627813178118836008318860488060348287040406713381157208825968392809201648184263201429499843439364352663330790524578817268735990602077081904639135237116632111769446678792841569833498194275827659480358254785422668410865070714023614009750369714593077606873567425935227294240816517416518759889013615640352392359927901919669306844663507277290606611562719701522127775466121676590569166113059368358362447865818437639196001969420664197219775072582220765471555612783535998745353655025374377564018995799937326706645088054164520175802783074692769358542262126751094690842688129807280598905355082872024185912975237009471266225080689502048230041164429470810090705599169476433436564748867885426779770792630326504623044868187496748519477709137082228564907887067356924682939013221588357044324852627349141359466204064531704830166794614208988531823463341905070670961957172157313707413456649720633313724921411090001035071660294357481246372394047650844445021418820688844104490027377597479180343773255843262542762593848739212606274338591406527981056514738012393375349219307109044778682574094129615026194592259156205576410287774747923576341734780189553128693450927256980720208638402690921405574798646992995390261140732704155302723687100292981224936143577278449411582105362360242574318728161558808284646014561869422977191664138475193696544361222084455255270868729544995438719445967272277349385165728779263912079449773309000622765401352153986972934101790164632102417773101122576240005492914084187396885218433946042321382440221985079144912939391648558919890364304778881681118233528832014610574039590724907522611625769524437585482747036600673797728284059290776302908900797248020185352886770968916189899653700308752657363078516140846826509698277817683844436011024523803288196787800233140612857606403846584144318437520359527212121359189065767835339897009932483392336744844120997128932602953729071360048726133668782191923316421722827089159704669781629797830158887956582665628985341492512148027824154013274598625496922083757439572179858815543191797219433807871437775862594643940321682601932742800778828330539767486527743803900489684794894953555881963985165762886180145308236053218167984927407523156220233733319532240626755484548655116149804570371272012850036424714940436694554397902532585139397173348815621237900720584890676274652828572300723319490246205173030685579940681965243200529010998433957343097713642411029406816919887400805031327974332914118567767738434965102629709117704620499575708219163366452268154167070806526200073906888317306371281010926597455446519023924972029246890122284249960469485269969044245529249238891649168892348049894651470663046695570418770041495914537517448445750005318810275317039591791840419370011647883972661298072553657590300084214467228391935718182365861491649625217880168500842139034998026792976740862949596777959665650909358504654661334630736051579809124715603250364306695939144492689220332936628523254479745519030064264960423902569497634311734737256416582219190969249089576222585841154988335049133581859096942154661662261240386138735049837696430370673926585532285328627252692079824658373339250845843293208040950892722853501445143780655931949097851128477514521399992272921945779194104887576423867091537798395389250493291858074012645262765138340724866402457953601081339558753672720601839338180930085454070811876469989063049765746959254583740348643897087781150740711258831784719194735909805717027290846670718162899262733299294719312944318582939534377489338381797932040456231064963612658722557214698053399595027520303821882510904309048755401137858897833495276379332053122409510375064596122409804792162351241631308287113970511416807971605369782506391300156201805943168696232884426818781426261522531516155166336611365165587392502349482403124054722787030004964504078430595445450288232266231262213244663463898468644974395078766939370877511918442707718206034948611303380880544655897496935172951832680388812232275984898439485876908598342095246727588359980577555916646092868577673666335212227302179763188567516287991033924207354205753171765431948168541076439431523705654907840256213684941772722162480196704269174064344733358250060361533963821729563657046492742864434474142452813973758405050869024179032552697136084279860457011612263105962178147168461929879306852139453357984801608144915759437672757138037253603215011619905588076215286620321998973509717645809255322968543412963380738748936313814426855442963887071411338923370541901222672143568546243036514904886314671645880186281447283028040359500354271562549841675792162266522590503227587567509661924728210032178192706876102996970709086926205369611275860642084330274887634082718720490620346857924061607005442083372981631944427107755977763091248320613073007032016064856723267888899210134195766508894027990849049711705657519016390066619024829135233967907153807622493147091529116848172041502530503328062017042931211862157345666216883538588684348889311778782457783619326073836930506204626811948575409275794825806532194736097875875823329201545800699833384501973944226111824518484746308707304886583795333288574985646903668440910067244188471789065318364510807022160035744446123139293035682176217021153881663522669760966450499401262342935361629115399332423601808619722195816749210997820212572307451055257267423024678344435276386639961078232621611542665955871759241090885376874504268053845751014199377688205340347674614907072823174387952730080112570121768741725752995126266293701291802269345249130945750975723778085054885249634346153325363985117988290574390141697717941560311839809567346250699200834983121424562473145033850842135890105291410554691011221924849356498484872121786850990449831920605567426390334742418772594741605163836976021445226727546641376497162731377402451062831235517387995087411325489832863710265019933906620986763697725657446857789336847266576504849413761260047673296001310302735685727350479076906967563336849935634302615362997751283958207093954926641385121191175014439058581466515317120731158934585227556452361732789676754362074270430930131468835267355663570055046963203349801547089889549512591013893283198502483827597275775120401622393356611984287077231865754408313851904050105625052875235516809767339297098033107434086900947282940803400808301229564008118964780422423879948082935882533092688063419970764606193393195419690311476362401875467740756889655409363412520037057795395911964788897423095570588699216943677718259534803443552406314821729700395474147173345907884814155401067814916095480232417403299109442151619499928793852808951736712035148380139934782218153723627121946606327489575663955820804802798471161281520495733941946889512665479499581473080878446590840420701981274062105748910762916488243099679442719782077284810392639549998917013564889946064026168808900448019147142147348827346205498024828015727068704965016412768416492353668501049845253091319009991594685361120007985085650075971537763388476314602718490767711128752921876264191891829692028671667336029066704472814675116652826120964388359480338448367832215668179081458261799049756571348768689876974590398097858515618606270994307701139737765456348100797263076651124914241000893601853757710881615503459974102610283334296563820453088990555057023357938794340477496219452370284441795800619067006801493602279152880295438195462939603255858181994466472579831965121181765205183991412875978771994836527076847656404349975397900049792540373168722161377068821361996700278537316026554962900442796615015051555900219498266161660798810349693535313063070420906385797042446571847265960684834746205612860101497237944085215084991409610288430475311984062975501792145296584335381577219446484981880148877943834423246621507924051982426167571282855824581700154271470282197753548264993499869004623725023121300999213634260089084826560450110838131428095485553239406567347220941628704779530918983758185246254328383071419843090623578895169398654296069032627805216276780227534807258922423369692165891045594271416275326407052487439836236163444413774149864016894408015171151028008440483210657079801119488806960295574919089249801431863251203431350579087405451142979161907023451101463558765758242438142071864579668503392541782342831623465656699877887436222169181019691303263065654308465778418113538411921576465297173886093041052118516999452280259599958987844910597412767617834203808480283880722784618618867787166173213140838322351027497404528028214293094049579418640139673062122257195303888894420274566227808089777648665088189763889770065357376478722522518003659792462232070757477792454316456359003258022509421059514955333968782395660540449186163564353858594617965695161434627424389032315939550231396183962781447655551373468639066460947601988915220502235787962529816550143393939203068695020709308854554283932216505224693881682357032815570502485256099200938855696861822002719153386447057022236471982645373848739299384856527474661054233460594885295065427889555923471426687165562864142034574642022634768152168141817302402168344811486391013510971937389812532539284564362917880878581479143739642516873761306674083744632699902908399739454830339656191193418160348711062766394201797988397522446881303838212622189929279460619120303920910494078537537105544109886235131449729638465226830866678707247965075219190974365994039683090245208035044796195181309549302094829853506519622287116200426818505338922589572400039711467857337496382350299247286968430859190152495545124047596652795861353074095525871872335451646489425501430856301269115127909593628530795566507862457391837600074794327117476738766467956816150359953236006503722837029191219622850291084141436408182725862565747226340002560876056507515589088802197367837424512149474011849465568526010979007393610802770839027562858393491563040514415480064234065388269727621375638668589827531492708301068782954630577590099982655408733979722748682426035981972018729314165875433114826916607531931587054869610030680553830027946720213958545519041480978796091143750731794076731211462780459319365843757287510616680020840959394098539230150971290809742192369547727681529340266228385762529745406387699208482077893776050287975292416450150695670406970318368704641741074030679491861649041208094626282014893821234389863263487209238005534571598113040189349970303738743993694789335645361727134565830923803610238968021310105079315922773159704906861200900008304156119004193011052028520475138033884308357290740545926635557488172477747325522586649766831197114961687356343615355226976582156182424568101461258619122450413213263391265413219604673909632994857857141915497108576302241715924394930201426603270478332148248503062035621985900859685673883650857703755446490760618803581631773712177239233334257780726798766729237095380604049607224986462747145546428257383289867134304086506543833002589477649217256374213157503011691019307843588071199596971429730234024604411572318983860757345008691781404008837414398942589970349005420402110561682486429167981059798626426006706116174021136253277955943711684366081704991123856922965287588931278223036115180691465481413682545106959949844794543612633736718395311370716966160956378987894514925832428242936941051445802096983226889420953511312168441945083618580874249593362111188345963117970172929737602741536152628345424406270988124039114030371324284943905633485187507467500565343139615913867806650780947444562589423282459628686007716904026601921593586340869108346306118445604682758350352169213430538428031343619388559238387359119326605208091917182340323207050733525447631479990077407316018710564264120509158218539692296886841825008106986704528166770122240648747315936120302098011802499729864639972784170463439207720071341506594349689416381758755578167825552689632882313055614758403463848200970689231774514258583489579076043230142349122683860613752985054755647049360510975697559868268755778994793353425386048448949377638433212713478305985170185447552277020793718612099040816376330613790043273656316952454956058958593600328943627967962136854626493985740733210215795848401219375802294656630316035412973813780865495517889549143850433759668760555319460140440472625446854439727432986675854506181931487311015589834824266631531639269258677314508175132967013636993222698142189172630104067097980796907920520173161771260951675609520297336942646894465677574272889684572189337956905186086672031932744415511952487112198241551298151879469712635808113198462852434313208759419344625144915515717322113593671719070970329537446616141646959431451293922639524732351919004932503453083833646921792911990473868071706153563812912686890340544652596443734666184914990565414114247328376228795321656388252737994660906218664528379665198546443360105407211041071417484792460819313952519167489217267073646917690102940522914207514661332485213671297862549117002849283333280685510132416843085431823421197959204865241467918778226022909647591880889949895778572286780327731337410394138382865984179290790993250130038454833639754064006216326475831896028452580223132086562027607026595639799436400799621650369775626871348612093697870458212743283877454059226611059374032725715140415300053195049154107187184970396304606986999776115117924935776177415131475233822915192997360120971605433870904682511665880127749693949531200958778302670896726563773869307953561621419860399581118850666953137760817076447110263972399929951359480565701942447069214255776932715412288090415613514477742492338733172729075838212479352532523604608149166140016070338452844393898602957915102192941149765129826427211886697107981219328861197108054525066626376906652741618983231679115722554567405985557082589106594432523962722336225743168786223051233063244849938171569586508749581444605354300710565469841060914557117336795707760283820638697957130905145368801332201270926011282161369250607255931173237930941658544081993166729766909990359441855932592630016276586033522076376506318989847709603141112607664780182093140979065457934114252422217149092089658222685626630625375514344987025429362203176362552784762294948719442499777692238248501319123018154307195608505251842680810040741270006835536718087793915057849618965041130722258570321200669325408670345363065237329905319937102551858345263952134660157118075033403568847607844319280147436412274088676394743936107401560686214319914869967913183732921250183038733815393153601635823683035464926224904466679682848635252068088238814302141726727237569151587746226466717889472699239397495792007836264885137091492944335879910385286129259310073158497401998937511117477203785292723571994071497915474798539758875715442725406170864991765164660197925377509972665300753952176508068196481650525307251797531138569641716610894941310838076020272270874062708184627858443943859384373872525249811426257293179403393870945492815437130569228853103529942568528265250823738178763424345662873839391700558425021890477429527518015415230087620536652132150995831117750822980249307227878704369560095681377927240316040580768550502153945436432417360830010066256739720087869031456637294996209291399389051286067623256941430933862609505805990395618409720090487620625944302711833249624652589232432294469625807668869431824810091445225231075663720462520652436502211524505886189005012261154482306437058977991531466963706850597045360507869666834760438705719391066873621940280445837517453950355944471150376424769506890910247212539615018214636476248880389326564405677663458688877951523911839195119919688059887408718671405859890735100737518631380894997424741293964415892480101635360003184715012488228451189812141167479921341837607160465670408819814878340504378423436106602591742148449281826927543967141435027864126023758742336730993338989531916631460021752922678692299863921590925514155205750042689382847282187330373313667385545932348961529463948079324014303276719435845769258877671134067383683952175823162903399541454664441917788544421743984767791806542123260401447806613829299765137989116306867140958109336046187384044911217886043714749870206199677948751024300335192234797406215905853694064775448119620337377347499770053198563940512643948572845324414951697598992016799055609593513263323007307480031625848435296786007084802898377293114074504137947042205442653099041971251589890655653271065108860080084721346261894602425988963988698300510011474937077120679942078685757774136697371547544813666518300294674723939268567265458201140935110809034663791434069803729282996213437587983047147838507078996820428793369710606708050243593484945745623572247056664495273185958639668466538099221012238674860287525976909309153798918964705108274967193520367780890287830701399495903520814240106624742066923746059481420922015612858998994733839474005904833271293294194741523167312889317018644341562226698272521911121130310334067892582530500304117833535917620652251969489881039695833693707750963254647484840566353926624809071333395664067509788321886974367512319851822279662240798413828520966547161720893613293651013651723284625527958841688773047700498217344673706597788567818609761721922187476262724209427281718756852429732802600259806464832389996824698373078509125879375090305185577185891624761071482845258535224677916784318129935475445232018022885639192805865098513091673991788611858336655050981677715205267182416907516363873643575582985298896530356738415401872798427872971113605739869566492484195556008809065784272670593091126737775154740963406693770317111376783958196323366151125331645428176560627271772361171182689908551660739321719258931200287805417885252328699080022489565664298253128473689828290444475009916368767083855953825753934744462159774246476834427979294795534130952814584938623501710316015528239916086736639835910557223948605948100211737332421982409812378157780084944140999840855776821160140189922499747573424568632470426009669088008537188811900145162515053750009931324054990664742838741593334363170048565762790101615273146566207138079662228606520111739985974929786256524068534221846563659437936035066112008869070971905875757760443548510165404316993695715414042851610465385834390713234370480845216142116774167495858134346405277596474251423495379862117697027621173269000146750338826889035169957592902034554139567929647894407729383496007941561557576172088782609551478376982933754985765378481335978390480088994728005527700964899767352175473946896223998096304542411045807901782766127929381729449245196508292190249110928168168839541704651955147062568396816495587849091551789730841677203239926322930272265485306445356259181915079573602106559047523841209305461735809352132862666865893383256858164393357288207768486090163435903750163586294518643160520453292698137595176258392690569747391544890886299240352333446629505281080889821747394259028422021912255449274858518595231377465970895180685693827241249912644780531637922522990360077871314198022662331312046810508393893242777863024823624880191808596057836580724303421725747231681865220349254476835159537054523143182359133803588915075968112443375837601651105174669083160837209882081870949062227906049820656162915541659747079286204763422459215497956807811363509062720611969793097543544324201976075497557261234694170357476759999599014518429425702480697927787235218091199157980237604857624460383413342033802930630034445712763734003547952306805229283350271419180385390630750435834066092737682485951003749186824302243214373784156207005247647311029603924005163030947499525423843928588441842814614756895186316110290260085752721161686125826020772999420693125162606950123862815409861072443095582237504737641324094830645585105629762227918288013333848156157230508947201782907131721783850549086183274476564114679895098196146399771780341824262180011004161797132700386548010371396112248422974587439880552075497126444972554948020593469459198337897154192580719448693145358416972331191777778525795569082645446077036616357435900107724024138802211491879775966328904525026535784300900519618360589009675177353856655549876690574819585164282009016684103384008952817337392441628604733596424565992869724812751894873437405904485539559606175520638973340641639742824882576899738162357325020755672555182899251281809023783016416542024749898975224036119940707251060834261507248339286644978054226016034396880744073457917404150212691167325669301441105720884952726205887896449159550250380541042208354061189060127003194762786469363641024787777929632466713366720204432998540893519327817000071121436093115486061513587894438201072748054455457853607631540665870684033574220166408265316905201740357967518679874421099883870427036430039045217008130153187080684505936462696043624028698201377594919420919079597053013207553309961537792389536272198501872263933438075839129940663591601385769255783255897299528728871236647728208990462937394589578554705408269462659733874788676546130073108499124125435786164533652919568870373520042797987610077894978751989332452367633058352132881931506277549746157150532021048690305228876364743330710079791739849107464596106070383847032200888779871606578996907283629329156153355539989400391247569457601467524243434608822710192860733782985272621659635800786155762983668101636903729526695348554154664649988302179626765494438301647519086839158725167842243316726420643509733994597927084723140004474442541432174451100008331025632829266400761995727358597726735615394784886150938354106564931396077490292201804490155219002726708167234863905260144941176733075505599690646481895106594848163070440832813157521932568509577413884067007961790258012751988768263772191710393573290419259108245265548005497836467397813637622717756520093643321128455054300013988890412856071825732260707468706200398271805807276363007622642518638238661326626595138733164795103877035284115333512786884634702042662846997634806677331630065182099809959934647954801425894038776661948571922273476897879259649607896982779205092747401826707556802370950761125058942871886535753177244511316653007790139290084158253432442956941625164683710481509277477570082084738098011253519886649512783569132119213277366028247741477711858457464814262363873332045904942005517321541313731438245371455998197093881669396065482147883312059528197940301333067061349255905121914208290481418065587260320610154368265136034692344017188465897375482630204151559381496002701715084417692744926388158438916312524459185722459887215639121958686456128243568309739615051764979499342789088744670864849885440986264376825796747237039978121234557841028388759554150143033845917271395201074880928725156210695039132925309106493206649965179747175470822090556821903560837440582234657722710711091151454891017870681290946681370245450812749583145736322397679743606394892392341376844396849100700963328351413329094041048197551524089983541954868338913401608195192104591938488415596276532850633942278425409193897112667705710734661008501241750170627566440737576321856021745736528733421900159556884933586051248698602722800912259909109522421617570252932208310784065496552811566311016844243451559537652864786639173601370659362430737132098305123379950913084268991603408064516898381351851343198904009279001978078380952166061729675913797273335624549370491678659736507648220620183127591142746696194035740318556261328312781885140600191236814482787225683717546216194582669030036563908410443078262350038303495250808376726098042296402192894375997996451799970782521478868602253407087438892029639664203539151688364032113368794810358510150870147301828950045881723868329370533791630928022634010188950032537834580662950927252347838206830035294169259196166315507122515191029439765808616487766628796661777528188682920208181330047356748444895245451074834104711476715642951861570980267666231964666261797753209270151301026010177557476445984773787503139404680286372502890859538097538582425973821823751969819104593723041314420314661119680114782366527682315233493965885294945178005557022552719542552631714857673373582098327804294421729564290515635958989664379696486578305829467238471232711592070669790886812936566499056714811528556417064080749454119126048440890685631706213392055739438313313384936862546391284415042004755918130920159789616362156757931530408021321433097893646418589855101917789047224006071071292405959331701567362928333590723846009028315609743821975167716356198127639645203606044265937218109803306848081319815417602355514762755755284301173000174533609336549935441925811591459090622165894387242180595728473068127996322749576411466971077800850445902670039245234457247481945686729330728365915778015959686839266579152025448011098341549227647798465864402762682821739617644974941888781076447210378545302268560984643581232209942397784210923329330902257951345358868074354824212659882953388937452750266237394602626786365005412169097072621192618175152403363664599206080289964374571783918490927238547540162917801752609658636327556902239706061692068010142318557849088175067591667825792928688392146193511619771755513482529435022563818447059110464521070536023127018537822274633804344049417311620719026031626909636195490372071698789997442876421993196123709347122011412369926332324815982499377260914225393465997171333919909827803675670811231862062638439547590007135553261610047218038169068051114413832805271639223699302848736911593480423521956009091926814521400776688376648795015644727059092738676519973116229889757772780261533765962062749943218598272822139040731825142921270658464088505715698435193724470713159407685608645645648331822143097890382012195816666736519532587058705162130532239535861275511859957627248299300691408882706869775021176374256982169500265791077328065128070620486277543287742528824880449384376132349623933623251926228426024376684540985505993641308114949512559421198631555820229008544202239713988762222500060758878628766815558317798490391372389850271003168607377602966933914485438613847347114805271413225134943789053142147474363506077582062859677107324352516748668396671675257585945238087448285613943306169006858530317560449865041935693986030326271162431232703978190005526061951296329153414061014161729926450605596056078900799048207434854434481582319347086356673163360271588324002631535901080803756073091895576540183979764769370604747295806998730685904065549738985827889324322810060465338718777681415541098596701015590654208528855046050707308779909697825728058247340767549531888465468978676006869876318184112382337305987372996911084394342223759668974489858791793156062500802329377370721502700625168615809474084627282428703589692195127577898114545806892649442711202834334259421006393273375488277199532158322265887283328609547926497794561883579476593092046570381287820243993173160314641836304612307682320954167481438580639807220239091156353942338796807532918278987228796506409689578362305657131459366497179231330815550296162323494392344883214430892521046913247175647057397782361997198242014302403992238768615636031285668027400394520880394457403272765385845813314789703089266406976308147698193688712516105141064905974583178454245154637535420859756199002317117894863753103274417279684018233972621191915613092022185987962526692001707202508934422026015499656707856770678595423558766014979799240305177490437834886838489321531842232578745415480718928428870499173412179979202984122310520844701605247257585619017319485829874167921678648175326970870017045742949658321186507722781892086122703638778932062035060759788582955307639335471981918534964639332008443382487613793559680806536896922904712434136989016275237407275330374786382347729292605341556810631437731431297870678789537952109922254358798582422466662274009144629146647499151388435410833799996434887358147445448693763974465717070235088298749049613121546715542194306539864580318375415098258065569304808674969229237165454819811355598415665725022922802778879400691232482149461550489841949897531081481655618566233503024707675357529788660446568963486763909286784032415133343134331171002026263400495414164141818544601573942465395326910174408570866135327590768985073687563041993698892432690670699299611850206419933956545614849994033582742409179553926093319441369900568346178993180868579171382150572649447360802330338554791892496366665304875711138581273971424566965324385590022448450655260789345846704925240706864257135505029975288012710999215563944698714899658415619639100127487050809652327930672316255325724447638905569385022887459518889223705256522789728113239282714615092567004185846996464229617084886017430019902837232151424758088333151362654734510936215444498185699335638605526147939685878633541984016484015795379972509316194557222727209205551756901427928514023507111931529951513695179110003408599990691621250675609126448303439332113676877629237432955643069755191433777381226267710716217674481581715113446985541901286658104427969788595219189886825821797384282358540122944616837337657826656981225347499597358075590359816260013967454288224000177757595600329554710833572724096407539254687234219335382512986501140101173909181295370136006453721642448202429636422050217948832796273411732961281346994094803682018893163707735394715689807692101480699179192789730716710567031569771540620155077808524275295128744744887794247897187935182999829621267554211077626655819299491552932214395936025075395420138641531079922665322408378036759067242934746729340801782161980626912283230870297827272069982262120873693334553858040058299246642005503971970968348325091834590293828934508921113389385209180655717663586635106553164307786856790817663791922956155888791405800700153590240661229803007572509709175110917549828669964152065071522775363798842525601029199346766568669371082552100019177443176341092213894918524162998942665372371074008041581325781237402084808803623891973656852653058575636690617981749386938976225773568122484341774539820069985158499031420887855718652404900531303748715208212717686354050298296179778269826152097672727397225598950939359096531457978639534436178957488808349001227651916800060171527846325584950787620324971490195865339489073063479230016417163442282928371954445063317214425408769448330503584069172648973791853158857154608939914038254740002886957782453209947792184797151641487625010034470906891962067429383948595437512803861938031093007986983268810814927137595587644954477282986043196967755636845623813472253287207553274276619680482439260139376257039711718822287115279835964490603485974671532398898491930006754368209539497660682760878372249001673814755826016671918701597849157691693159169198862996140124604077444965384579480921299814663122379094267248267803276175696093024747174484839311344568325735185867312850440531842297774118120033913013140598893532757377788062574893758643575329879041932660745806572698874557922166506124707535984368863577692256225849700816842368317884206459436499580904558655087647026288577697873382342049692509695271659184453192470769464223558751401087435600770941824277839033242900484230636924040296815376034754716821307217247188267983080830493781572014338011088113531722427383280253589498679647616880035576987609457022674604729603267991910284754615905606564357656315965160240203657779236711082660749605683032209794846616166396606493358632707610605276041153734948435640307265055629947806443774379633682862571406980742279169246585516767146941607881241623572941150101298459983335075124837825394235900094252423648843069850707976894005387565018055955009180291658708198793074438250333042603682439359646451292782522924058692195523984636521041862373993520098166302070587542675157888206918759513975408136679522978675936101684240617504379016192554316973142528093523942861933542305218033365017105877230173222979565517162718804963378488105783789652559049847382523150868778759381770115795687269295332037943691157853784043788326328323159768192926882084869248691576832399182048249612935126435131374641098672455738738902770947574279003395415822937482012469251228415792971310073105959535585175412258675264621062775159270899787923893601031572375518329886021611262829084671583067259602055632285190529460838844879674655247473740801124417881502411746459388389608166466963108974657508549528071148902197476376973307937220450626600213869707365313942236567187444836341675228624370628252263697844186505769281576232128336310256402957741322976618805906962659766748632853205008903478387836566574763700294281571130918547573303668886099892174197398419420305931213187064604409026192320658553481566386717418418827945142483144383955569227762296187854321383716524934855915813499120408505800716071419500319982774199505167889624619298678541788888174818117226790743001291152874582644414665111768041049917468726139437797053427311734548642835913381451043369745011876104766030247159259263502690845372802033866562198395300229814919968582354963743461557941637700479630170184264004861565104975772796108495044031735897104017789674421814948564112042667053503347765274557667505033087610986417815703651356205607344494463165546645411104037421374100718981127585710485250076269545960204461918695117458361538281154737646802003029077531953872099485788615020901882730937794122979121419077141186975743201228630869500154910789833693788109342503390781818565628495812759654387042601139526958561406479883603083593036903853981169155937991427878733075105690361897354822994018246438415312725267146788985727116415448085421570010582785800779038562442678830723304602343644862545774191228465577650863501469381547055681215531135308310791879982227269577860714870496249535750066815558907631475511882485743673021363122986137967294270447607881225608889860196329531578687570927340309148847937123789328687163624908019134426535590952627011481257967312630320578817595048287978093181451143204023092308981752892391787698921046034914019768160540919646198302368191129459411473054584153263587017164071636017059440164862989479874506988803210604078709924085829562474940681571768412764121199115198815347961149318442788620814018329503450723127300583390977401117690594972022059468286487528017395905837965930224619325712622209771696343231109739156500589714644400226567897752838022238761059969606258772899168266875732227012996400858734312568372575000429630533082178859104665904227520555309084033066103873458510622110975379663275452206339609106654743782865177955951187660485329314509260857067494872119070033391923811065799531189728909587732491673787258765475840026416351756800708086853848275364788412211259123568095547015486599626404989438839227980914937041722427012256210147336205832416333983388709799569827439195556593856587473890892695384132527031597770259553087206131217908588609233301850713683299577919745448703847102164198015647440309208708174142983768939407139096398448038006390122916299568482229993751298824309998954565777472259170592142948732831365699828376413931675542672735771966066105060789161016742286569657056219381830227877848282118529578522631451452834766080644034969580321831265226988820038933035604077707746843899481298247666753428325131775512426484665956677835959647980352741105288194944438311622028190129927598751562227028799736406931778799607228153301220132761757469604080735913027202853706594098117328540125417621917761595981642163770768945913188080332722169876244392621062553919665172514640167318786617765208832954964329380415305205219540201620205110263139524043603081194006049665241517408602349567025030558075473292434590681581287721766454442426046135463313787440388720144361573852280730961929120586804604460497458127891171873601830150093744618435781501141330495472975921487167333059592423154316565333649324147993227842820780504385693531412697315278532016509772128805312847654302623323064203443803798504679983618930812909499232006595053437570860558379016382199450056363332412147952970718736929360091201260903427434954487091814671500814832126423333063750147845987534891817397727293034133399935961403480690774137716763840351082141120015695360399347043530791811559862979973786638808870895292667760159385492597226431271390468970063216918956548257183280525419057123309011549701884956472114047682578684815846966528718203491455020372261416862311962390650889992619576584238678475866854451073616449330614089816238636542717246112758659577124700796858046797205887346627483882699254850023466339443633245957474962996659159905743338700355128393622305871252240686744849496779235545028653312963093362717658774960201921924533665898020464614666322676055781265942721875001163792813658919470407649702091566974892923029113220355040145452553513524610747812809420004361934137295954804026075629662280863941282592281256229461487819143268348905386615404258707368658331065701377134703767015823445704990830301069508483384503426264060659571043252154983900628149132483731560887735169636198477649684681773881885916307580689542094675456872896109167945587221642224552018649538130101171994730451370843529586743257648845026710860411409154794002467463785364007263536915175647260029837984183250344755894170269024182899304566293079314415842358683046251189667161357511282693336072347531229987754299274200253367763125119589439375376475253220061024590339466411256716113684160207170705924389003738018704434069508589709222089719961486128742042680970010132555923497005728124179081058507859617551396696277340217256267144013690065220089119170378049246252409481951278329678379260020937922283899709153369845609506971441188933216228880356511602588033457149426867173796172326209783205887353764717020184038287288862709862966071071283060869183371346369269507315920117815417650495637718117778342183466713195197291084162650262930907439561675786981727811449441773106116758243865109213635516519878400543964189944250182753442758551751384621280311959922038102241506946365568348318085500800228400312147157546052005592591189555412701310687591633754406127481658286828886484668477218429094490401595992179366038360525174529190635107050298178727151629649628908790874465795429488613840262398551052826305582813378195112030945453330711220941522513281057068771882032594932534638164850419788290744524410122037904551584478790725507317407665819463914555255021756588254850871041224548400775068118982803676830865157683376533379577402760467418091101413599544624048426072979318206559460412634604032210604817404907658358848433457039027474817081460264391389450100594509259883801391574875237139852044450926889349271615735130825916618815667383867294395767891134954608243028771991346621179113848944371987563644349493534468197570156774716418441357991713267197834873678486253764904162459163851012322681354456767593469916007436037762858813696371300417669509745230971259977382186207492729414290272915516746309780151714742782677627454707110598959922861571420597315802603432165481701261481929230476074492587382256138659079322185539502146897103560815192370013802149446286836408126850877748109870164394248648129122579695526102201315098898026578639913920147533990707418733826505072104794132664883217784889592685250029042682682994101957311102740952003236437855441594103707323966451435534344704241677621902671493982001283946806554696663875282118184401638454706443520462694054912933695710463052114014422303292878912306559524136101837511884267066997978133552080991499824898037353850310663652465046283061710726513320219194602704200632878616849160190280483220996967309136487616465668776153145463882134058586562356375230178292334703309297181786198842139578497911103008353120969745266689523756008193415326146621396598215077497666650031284753168508751403728457865925211447507104571968982339013517269695857084230498157432929311458673034675457965677507446310392686659098006425550682126103383680023056039368670326818593307022480298753943902585945844827512702594782203977872793632550899594866672045429505945019685396378915153607748587674682004113045950423336655853068969235179417758818612998189754590235476238708483144714352867597773102726821151420105447083295777365280674955529614870270944406699777369674637616725290764194130012069628909350279266056892453854964078916434230358653821437511457488062409393977826387769038597647648805152283861376957711061269721936665897438410779639073696255669950046299358066741745069095406997933010484577088168265662135707880194443219357485722823583868481777326915305660761636037477935635390183256158630894253244150537042590337760489915217974804437485688632416166219786376841317890996495776506864354501741173365265623129411041758533012376410372842608584898223921470884611735680598627756656869217174090981788167923665616938033892945695208210328455439702684662620842975250607852199739061868226636138252127026070225279065552236418806889226323278433490840990489776154263148826263730493232640954623591754588004785468005763555097073459473859761307734803916681025507774864214312917044196820956416034105176302634406930790639712036737480863762109820668388620093219425185759379480840973379626342174598108334970992797575451015486187218739973921052381533491930605534629236771477584973534858683527482262831654113422850396963628540712296281562939479610370137194012671609980586565910571569132090582912617222534345768313480051973205824285069966997663217988104595641217698674175143425165704386220679581525289427383547274239259902726260709376411109805166152425109464970196614917358016455968728937054376781161412583068431734730219364796752083159508633829989672039868424625781365650949781134966602977015697378134287658666080789360619393268401939443844273127009297958657362143455265509881364298736629884384042175199220615324579450920646654138123584928541640890401081673436407341226054624761087578510247798237610095365046588280110112590225837974965252412174516686634633411955948958673050318673234608459063877582985698455891930045497743942852904108357041801990672628161321018074175644854733076061575079334473728568314410643712888703765510025114380041950151564778388807991097286884269311450567747359418017453110252843789631864884591386414277512745847592909393989384180288163794759406310342633877369891987484106874636241998532036128912128879591688973992212565625099098269797809684796799302529037523994047655934132859688831312435472955803576094632616655845274420439402301805995157195741914265007507281812557957023483722946848014182267583944821219920695635942102340881761239036332902227063639634378921767829594905852283760759659517455330215075571497040331576015977218013113748591186094037895911142409610380750173243623205692582637020157811086197856190431051943182563363363587637872019321194632773521534151035634161577423233640017967630381164982496289934320548489302718973137148803020470464040140822672069059705737081508021050461912556791312995646858230652133702494847514035478054454063547677792145536606538164932261931506528586977651003785820249640663524017484648859752512677668560598873926503193137936965177308261263065299271684791588430877595980876685096531502053152133675610481368734205813871999313045754521162921302233229775330088226764519408749606165434145467880291752649552810989740122787545330293668518699746553210779068828227078213638462579636340316399504286297125670082415543724704200402350726151459418808348516185616828635947854036113919126760923315521960408621247832501711202631107390185047970155876647354682861183556867375281169050212537387024893539710574831013811287462599345049095746410961608994245332012457669992090844819248677648217544291269411121354778083811297174666080731529856504735503433848234629438875098344093107862226032857980587765728489852894242994096630699232413661376142173682123280244431361978247060604218400193704955183734743924683800483684471941742283433133639952278832225542168788038996385665092896596931524307069844859429502849800172283283652676041414405919001439011798158131455080933300797234914189604880512612545242697725386185565327678884757751423641973994783154138005558045852679157389184693705963487478342015018833017858758914247572172617144785112326626036283530556553623196100078872461073073004105341629567599569599558976968606218258271854612893090154743190232014630186920750818338566086831596122944788463761717584678091660871561154388752383725855314329533780063274365120235417485024906812523848340958076918438579311137706572092014117841030400120860834033990698633966117477660369800666218708818535013258176768974211484851747376143362044637776513667909341764262982458552115976701647269031413597467509016853334651047218011879319935038352529788980611730283106785523381922565872233286940372208553284298680333788864918430384983114360508071238494557988390418613817315685385344993263313402170030778862987719561523078224222298351382596712169410749828100398858038607053683582177810467503743061695517397922749973471428193229281783038364255150770821456512877097097151732488952480260272971799340117413717909999519034945537341598204958936969420844183341454097010731033981873410994001125897142986201913232843039201126172946777597086226079532875578380558327545489192444603745833445064301205528101339949093936602842332487834322249172147948599001617926541913819656172036012070831704167151044456339442704500593928728997273777974273934865351964287466594084814096935920375858725148052009219412299056359664084967115835735170613635622143334906776468895993275240713187626883674324872080541540772913741105171011169992991556661541647511189931033641192701141030167052339424525656065240195554066084454118162434671561914947960229567398792444288917920967044409209081566568926196752484003516525263674293844811238027275735573435300218913455077128106110648641000576173919089223930062869978642163677271999579034832512366327763968357351849861801000519892529983393236789658722201116690219756438442114209528661758536617252435574992560905456304539167415933784603929015234158084046916405759083230526558028356016026252345109283628476831772360916576683413784269820283124528571737272539974597575359238946341093313922739168637379819800591232064226559780449037239485359758251316625483040996607464054189052213842229843524553478972165373866975974031332932176726492353216642309558136224051885642473090865639386392025434941664136895895995548111104893365961269850146240277939836739810221051991980462549099486863182546918249179338394546393757723131906278935631939975141347288441900510454467537452235085467894072753779819453474229105598439880183478401192271020924248558457653385568958139595655491596030661979236427592597285823794308742140518622438907586290546907593382460988947057646268027865883266416167663484340149169563853145959781719093152854936839261010420299469840496264820748494485901229171561898528944887016584804715990446866367834834603240269552911821233540560844935007792531733955049367776888570011397608907518132628724624322215029143825149592096554314589143467491386829365589213123361431268602094862108973849139147414225690931690454997035971782730860586397012509711856096706040456862873731260400519308286161820836044501979691731390398151422488995774983652974024745000640180378420892200786763174843528354731309605506274425674865710825427706852029081702305526886000871468844014152599635245403815468310126795070373263372703522740098168711540125856434113736382637375344287429772611975327917038767680690680387198075541616256281753074543188566460814386374174520379577373098601862385951057983415416547774308441037892917880341321344134346704807505051781128880431633922867383182929252024246565118161769851669401811240290060085719740342033918837546952773661711237339585639083429357765674476611815067696556341644431756842519009622213095329119886359692068274173067334963315940371697679936687343830166996481677247721926325288137507995282920514748951528947933849261759524371426658215529958184698023735851372899460690989166821585717474632021469215040352584850224449161106552529603051303185972515025208921017597850668588404627142601026302168885369241237901849603148504751776714186473713106900087236154425527031363392623189979865380374917919916236008815565516280802511914252098427445117061351654374657345965525250656014900348247401102749439923118176186051098865120842220975951790912634724068357100988882383470508077465123543230815160366931439678869293679557074038195085068396157600656242178845395002090991098930291382163457690673773661014745018886471461609170243999272652225984962904309906938029738924431558794256577665780518459482154719482398271465235476517280941888338733126167566446326286651769015355721833836467772594324797492407592649988093379016434892015346132525612152646774617025230987451751016031187058327655448477468085431527011477264383147969553870971497310577220336134488495553750933059908616145177410628033250351402410401261052854804841112078955410047989227007673055710336933589900823045617563892886250511870337815715229431347122945045411325678807962646423405894892594111663924424437425723972876422546609567502695026666317550684350983030617044990357487008946459074078647997892590401940543389544480567755657497224207602755349210755562664489957590572893978590486433446348381093385995951901350008107342151346723639359899836643541286865912544728161730014949293503347066227228427405897870424938779555319561177706374994686406356345892854315773991296565883740853888201960315287641212435992619682224587910723031403070090658180778591533019026174705018264693036789322759467753415539443583207367166625953299937285499443247156492050162257713359387000451017523299728178751660549770072631655402213006549734392576678941132105306864523480567536750261320128385251017573146738846306066761302344797589013776167725592206605603188284874269029239496122517888253141588862833185654602197959713260349540825005266878167768149783902901853095698288666867294934432516094797484702235178393285139768924989539719320776763337505482619193167634517749856189671528825136124714454531815282702383754014249098852547115592949266437889511632192031300863931115197967198710238245323663236528199027802522133542087203673135298817644522313656472664282558443124377188306590544543217646031011966019472656692339914676465153449842016919708656269401946952460768538836268321122496689701083575654454518439156788291651218677907427817040816732423533928083642124785252842004002683494498995582042004381306693504091378830678806385979932504789508430263007983308025654237956809805721148948975743776899171390487986936535606192705325064087785552258113011903485544550419805327772459139692735164232440870064671728973355159641265351513535052282273786636296724631389533514607542427778335498736771233836227431369933057783581971387769553686772819541939534894799971852722032932261765369401893018874786914707634389373325838652104915032246889966475153386840257353586802591274228823548967975885106344335655151719672510903053410347649849032996541121678337807841074236137084326902566515840773370082500907373575252810785084412504892873266131611961255613360375360159721103344459019026893124879857885226338172691994983162115335711027870555016431612305149389117078122881351576935323292267758248641657667143968040941701639230286102734894255140634297347494025441395369017826728484127560767240965132983516782171667304548178549830121872875047777152739553137084132460012471256080610498608966403397061250714026326954017858802153065432844769154550699551758343214515743537770594257771154451540281539534971179226208054844754445950078210914079005117118753237291147704230783048892899385131349606274500524763092341830749460439032512949638692376561779065515699527167533714772491050510483772525566292453442183725864587558018488868538529506420018672078985263931321699600098295569788282309588835070707441537968365186437119426633232210977341514832814494444950790455693341891706194129437616071402878126327433176805213969418143482137889124092874120402847309920836590630293520234414795147302217632897184835687794853351890512961679990241182098896242045993139492892132510360894021201491640773186181239682418271235329132220697036552436475842724405162770824309824980634477429505944335461717257009210110155552278667441067809294475106709402577984840914193850945218070653660868416085743303185725854817190916889496534870740120386333263794964927823564260343186080593214548776152965747879456671699899970441480629610433185179750845768552524399938635310709968755569048366750171898821011947325640157875742286936805200675032978968468051789679730747526768605782532357719073669613407192756396536083002336892642302041173736004473552268378290140132524537396339770851386261205463480188576544557268364678601381998838945322687009274919977844408812895223544684618289247691460248366144559565518371076725404862037378788847200261626261368942538280392284753258713667978040949243902066938903025383778353043968601213292091495286774366764668568287135047137872667439477110821755490825804485179670005724224131583216942270274683778767786217387253185268159738879754431202018503430354017422069077880028542331804731095484353644993945407653244631507278925527574349723115183171526041555236300570212700132862757958146847559467278344061146026106090568459253408161766735443806482044792331174416017014486240233274089383853822652255130363012531295260835225646337022641833778417903389660800274639157168311821971575626557048201657100339010509263397640833509999580705920048358457959023022663053348325706066436891628063095554936043450927096902346845055342275314336756222180486974857839794073697540607694093531605516739478995645764040287641384615219760403627846166845709139735253485150461044906234067864914796804752957805493980414334967622341494960787947598125961965945367137270992004162904659682573308472417463323907441069913637600982022917647504787816021499566840793282196088519154840406864772469604020842076776373618485338805444717395791149273474248494272929267169610016049625819458659914761169380300439787930185920954605596903557013669591170115011239245720759870701022867035587126365668840067615993459127649728549841641495940228686698580131766085929359881398594602690685904784329420572155053651502892756152387609529050941159181356799985348203502015726834510579204608483064334220563349580753987097773980643208972077780917936164154060510029997262431760025520872132119776763060870910442654294320563811384225203585788414134374916503882950932733909390456386400910356985845812284508491529679270639787376798293461900358489362242175514714758695874552404108589953204837318362496297637071577582577776778090024625465807407647483459356454975708053446308991853860903989544313591639470244257885648379639509003828758966006153188832715406159825714027728853084349397826267107102832829394284925321243788587323356979125696272164821228815129461114780039338069812093784683465509261764697638517984205903748675496057810393532338395506179140460836645564782678813152557478844444653470416192038202099708268969559292530726321374830065997088328502440940785664869800014219371806145516081137379892959052300835069548470836898322601847260847913658708589464608066036259233886049213763023235082650752287838171950612707699929402448864735153513201909718937447098932510821685878925408484532128374629901858731198955944210076810585636326461186979027832987533520818460462547939319260277817326558809812298971883308407204737832733558429414773849598152884999678198178200018303958007885231301651580405042130307279118114660034624796885373848561176349481857396449370704658072972628933809938842209189457093216065522452925379593286630055840260049959586753695402075650846918100586746755920415813419196902662361428079904690832182245714596755342900106260857344710670222635949587349791500826394401942223152330423998541913921009752506419990205209017559036671624512133773081714079433409541498833568959932236109542937698969836555807872869349985126811762276906996758594310038666256861936358021519149944989270532913651128433219851077810191785167357984718518388348223534947362602655312937780812977483473645846741162971150419992678474409135720793871976955445802105755232190465896042690580464743316673034386703843517783154546384064042064072780078236617251584125697773463925203872252760635095003594066083287850601114053903084221643995113611572089559178447006416920917076842481850573783130549544629399942767480090837519176255225152220418039608473612157831752016549393259598099289837870203618938016655871425343073959440409447336998340895119119446355116492195173598873660128632324871283837208994473674318059462044410753404701289976116951968103390500797478017845059870238806192260624712937633204369924588823434778218871766828784562590268234431335305504709441279196768095056947026411458244178847447914019128052495516869522150968390528857867641581123263346863891595657301149101954235111211771005910735541546862228261173066419100060243241565091868033642862501783869158224350600700630520323370809540155429184073596400290132328937513740108148563386425566636673959862642981416632140813641545884224515737238236024554537654658622040101626875377177292271726086862778651698104346326778876369380965392102636968057547882501771249155895998240917307349524143150102521884918440628538944840086374367999492658355444497906348450102147021859571781698868501615671184181490583458274608442428066097538721024305820292792477923551935864263934639592036484428377401389785900614509433489116999158418446685477619400824319308226653771798862099793814734743455293593624375187561344122139534071602399540103941583377157978850083814242573244340490897086440504389817666462201260168847395286355597784905596798692606708384632395468014676773189294618029688654375749001560499597402999893102476243390712723144816761451141870241517993393724573471928304435477568817364684282056094158100330520591304039725139651851731106475148907567976378438194007173450965113265087258304273375446453701094262002639278989741614885957786856460393532400408944432552866167993570995754626464253611075367737003846086029721521742095341940111749006040483923154960371642539454997193342339947981965903296279455532320821192204648424658311249213822520410602935070200827909000699559819860140524587618532489003986104263498656568556062409508252241704833103593777346115655662989505057932011303515213624801133808641636608669168731390747605552737877818350447113695214596405379345084094655647174086953655353312931632768402830948972825618600083805008418874074219065927056555060295201034437415551550431556673753987430123719377502580895786044250222592791946274806069847408547251375862105707663990022586767982303816238677117964449945081076006516689077493510375155556420584759019537077176557115326335977207700106100249668932064664463460920027198079218432253752719596808789119012717316229245942330752334608466611036695576067705663914458337520921951782389143566348186133674788550837461013569738816201890871326534931727127192805723077547225175710727474074702815370031703184217913587837563530952119915080465241233634619951487165900527471234568476529967745473907053036630596394759880216128006807678271837002076945790153405081241482327176733306248339889306688337131026961590933827377460636150945038906449426624282304662572620583509700865985981616059190785916100700633071989784456905785444976873731975449876913867204373760833018280376088770067090543080063572772999530100792630375036230307299322456724344219339064971526919061553748223182072444834909940849487489807764165392848752476682478359653892863520254147572246711174200117472203846448622181970910745943994944033542957202660184747518074231182680191802124025962861199301367586234101350741031744678912051550925840870159790149619659663625210656856186018876533106894036337081080686269430990545074211842063031665345309682221976545396307556966574240555353412068859187753913580549957261832228887376042546442209976279102770875628899029212951498341625434984633660005414956479241709798097699217983373164683278239273028834694649642595234821056773327458272464742670243195038606209797956114397632239525187128572644368987525102563303129584671183060941266478949081098492611012071735778582744560852761902231760873488858603152152592679316532970437327562498045668161457656246485726014932138225185282781778235865136841670213721363749650247863269222466719195837474554491230791441308178161761868835658251435993506262143754169740118002012974251535874738863164719494867790940989194046465741908376625006282734533483568524058612274765208350483907345439059634599853064833725775442840494543834170417649236666011212428795678089394366621219582422756273569128654534653535998656408382895424592168848515939601496329306870603098326287496157823397911576847328768769182431905358701992207200090347722981531764642026011829073162171778762211867455245288901401458343045418722843942186075685628026016756785086022247427478813912619593491934761311155626727842632672060328800812807039110037440967137927946670460352934534401017207427076058984971385643850912435534705103420648093771908957374558950219243913453785754540818684454103249357275073243380084007880981577341986849735777857020404974464208463588681544069946313598908537246799421472739198706144491507729324413559602167407538458661799616883558895034141466445880878850221230868861251511305388060201946344565987851270356740775972079938852877662336214905003493063653677557709652993449896889998914181300155047244149702576761710547010580392387370008316986691663965866831893173201484378779386897292775491248224643378283356109753347319789422616114988435754851004312112910792640481741389889093193593955734228160616975563266910777351051790997837963829296354029476925358413827603729216409205061672153539763107439095283830995432592836966382034748882159060118358503065165455501413665568141302265032723456971793356244178908779226602772158475232511636425573366954111362461322911261163905471120193823842987723889723348194241733854766055249789774293597404475785749967307879810729407042113880986318974797041603914682495027506170800597481308007922281660116885886285477762921566359611223292892663802934300423795032501076143674019102165311052375574203080114583095109707889445528078000020195965954553729860509929044395867854862597576876953004289048011801968246678374553998564951034750748683914879223846740004549757357533883182966919573126696876794296745427042330455117059979248903128215129275478334143091417331807961658153480147913052630758967063034100001848292489389117722098678696714701462406481121038928151549302227414415977038371003998714599828725835426228422294167374220293871317935519448005062870103460086765787234737738586250720070947808074857168673747311892987841967816897900698614507093658608780403285463537809569038884177966665088040468178005419659081762942423376632322284742947811310846936061161986643535463010362449176219539695103318344525144354026619162664202553171153723236993393355903952144853164950636093368132430702068450190830185133212952786793546462191657279366655198924011990912553918965132748021016896214044945710757558400927438893773404731116861709797949311837890258622229660038265813691716741929245974181350604649217956210772631171759867753310550160335816319782347844972782258377973822483514027518907837488874118324366744524078508932082050892452824941046688731731280673298380730535292001629412251530250037790792865338045603593092314154683694274558143783447723119552001686306483362462239850595971402429418542097960447295330259395066783604765649132040009444286414551186182217655059006733224509885052644940530976213633680216861799291986318159254539805091104086308722420294443518248738912896321147946748618483810961057213355757743016425259012474527298759629643221875126822643059807768939427807911762789850866972815903582642748230434086717297558797228137930023025798547298884749405996772600534643266812660117688382219107063651808628869377585453328170673155682780698527911923130073811638177053044642107796711976263744100770700268002791353202191073140881736779434667875649645919481794037064655905699895161305379148394235845696013910868943808842618175133779673788940832887538560570161609490442020873755506363296979713151515581431628591187139730155702624708625011998999553119882619848324723146056650342437459971542995576316953462756567757560825191381318953408610694269040686341764545384113917888991238668300969282473686142326900944219124893599254340449994014376124336823944346835541152540147010372579687619004029105580451839066848759784391065087764240688339395777325834068744749252617880985883738115199484737394967691253698449261121853611598971515781119926441853344473498859979299879739879367922894412588219669481548679046064367182672437687668975103939258163434576378351872799117909968218452876085685149756920443945183190547446276795241037414863467221289598663323974092553027761689223655878793736710093184220934546051499028503339788160581277495579902136049529829527933870991767589198392212130903358139494840343785494902108470259191942295541778150577565411958292927160883042699518080926341701168425976325106930387917815311619634448742203015549230192664964111603853869911238084841096620660107999262538414141485781678019730507406209332636986457989631347510220325731207236348119019172195542534314730613392205507849767478957025016700004857447015331809619374701884578622996593204192531742794481830224114849776603348925367218010255950129660034561838996753010381423414632061505535806923419384350054206220843736439777785172963979892971887062843173268180351241818644594092360450553998027623261832552207793602409042046320254895402224042295721583592466773929198783776342094450342949698881064162253944648292604331101043954573684316893555903038311873420235227545153946130045989210757185548884665172153039586750890808386392768250680820677600824054533731841114071291492696296138335894555497458155270301982362618841485865393460832883516808018021327974328950389729069344840415463411676815639254899654530179095335882927562998184003126177261536811683283452177198202263350413536669032091864294566640513843163643441559124406653515027198703326818352187499585828228122230658635756074792496847903401383120194860374336873887654378962008998067978982665007084034252786656453878379609056808321958311714259322226838933887172494210259931359775864352176770679756560289534898159991599857419090045274187314694996165482922291954642886363900443988009622525160632877649677099244077116862764752739478633612050419687671588421146879433225441512109857033085029453924747526443665463113581988642393021753247436452178399946663067314681848841976239112134082179051980892748883643326120358949877264294098751063811669582471105903072304033597917652818666176538019451595146870302861962296272428622221850650987167668765966312594747005272865068944403403110054994745571143479784676595458933600317019851117550358710834942560982491502856604349943106855084132041659628321243362257868321450062047898786862962168786774477188265948504009707995656240301083075120170454559779922571938126847402951530399439389718362568331454696020031668315646301989835631587036553446396007890292332665090004380581082675974735929776859820849969334772243613364719176623860557971516750359275019326978811958013344524716118049315220907554785600466118094779922427949275391609477264264384807555693225812544734344302489938255322954169877533358064315561363321279246931106174946367865385977249030649192147090804890549657465040811735175364227486294299774933002380650757708922810344124258219167589680854932145834780741724420193711046877386518510368093130907933036873086590607913141076215201992554705066164601968753641711993819444188218850855538033170649416134738652832635889234046608468213385609100465286684141237200398962333632026127783356321955912667131372717168377211538312500482509331704656804006495902457572768639895322828753443884197653757590615142245807263178945205296878301399514917520239165282053978046409427135862609340052540659362971986128179776451244874037099752319190345387935647046156622803437495650688648536006676334849540429328254589110320167975531700249194914850684036314676061326114874814263406623713572785207790830554017819556300444241846976633472097287531405097222656820394408103686547350619937278597051297195313224511126822600791380872379932014701992469282483322106231821737485337605326585104733961847505185380179409991607711309773742935456929688343554824356019714259661940098723644645951563905925854255348346349079082909294897651038218827125035757955248855398853724098373901281785417059718352032273583649064931306475609723069424251920206569069727456214098802891354050875257374465344037667678704767949417150884876651440454225220749723831456048716722548341673079424946077166866158307318027838760548942569900667001307392709321547521306400647759501290951877995351034447586017444512736441623805425323735797738553097208484607912411981187639337005670289185089410649261993359553140627173167468582223886753875261126329371654110912203861105089665646096026145040339611834798373722046329238546107531024002182930701385004509302519642684233655244410547379051654053254967338500116689829529355231108399379522320133074234588806730661449596343606490713408659256592551641534428037547490803140067320413350876142831399464879114997505456522918121230979025643078674218080119999260207128927619440350978643751618738715300731003405422591029039517079879627901083862693102514425415435015337884746385238756223058020904046320708555630881827204691494312410934816528079296802125637242576417604226477487718676550672437322427274121830850182006418199338601093140528034644668218659129307253267624335791865327851411271417389358575220827686026715602472135164372562388287458116134411280750714343089926231194253802682001033241123351362724410898931744172500352797885612626885360547382470475049266541337185964297998537554734995751091505741057430513850278786760256646029911485980211632151004994586596014438290265150645496705942511994603669867738637219179496562276092561015755825603843430387914870502189421852166472846042382525999267430799959055492088705650984939912685434453902049444513457684290924178897799988695012579612235376280358521800521916039975473683927035735814688923997700934421418867707951935925763541671586790625069892053487552030685557544790690559748332719087221032423520073615257244826463060270414517579519960789665105482404780295196227588591911454826254387746256674494644524151475654801350132829445200156647706598074158714328131110315955354184285873671416290811750675400408508721630354414289757671976961441940860768013262067731823310941329358267557848727701886776476529768170101122647865734341801367476927447415199962994721058247480934586561124560142918602596131482306128888066751424413103460002836643406411843386898020948979402156324687905762567102313208040112617063010787765392985178973219810241238085223783228396082684414626527858164685039935721718000226171146496372648787413100334082976795432068000677482286897730343112467637365878914960579832189799381906763523648254531960503555231243929239103267442493346876146358548095138304398810306448051063698440670041509467098025639986748575606877571297142502460665328742550897201465467603149525027532019791083223504236277154232413535290218943829512103363344732062937300422323779316484289649078500180887139857736443780356352707672711662508342379483811274581770463319536405235525303105661155181488763046626705093848386282876341383671847581800540062946327124710464669194470444823564072640937964576294648810566341175054671509368800812803997179996699531932356409826483767091811960390555336665074939118971384224466519310656180713593293396621978581002519070407485681305002038207106156000257329782629023035522521082112822868832789224246966549038525985344782552342436054627143852210856279088376066265197230589778157701939848445136212553658272239212289067719266388491449318256771068761920734118131610659010508053105615254480856660296319054456119021822361661057552617052123994082604845800775490548293766278195479027823695453415780137351310134664739905890970719172527926269615900713539378732833073015355164314412307431796552762088887395930980312528988158803169991689934904608994996898892857080115154138282352643010884872129659878353221202804157596781895621092517254033109109358604000908186113967472351190281824277228363235871371823215915643039708317232395255918960079426424552312935432163186618113260463981162956500830259264769510380114745510628075390439424958621060639457927178593331543728562455271554115139166938085278951675526802260855257308550687901118937433007779320022726562559909075089996562417720938228143926223285013219736617981856316733111714322890773041940790519986430693295362548006521771862073956953653398757095564795257266754183924592773254821888090488863205868297996963012463300692652121172571893846455148341535247485441300809976368197936635417853066176237219048367180624017733717091548459614262738883284408283874116508283318849164582184234998557798973492913314231812517518592318405363436613332499270056156887899840075773900134099645149258701026430542516477138435991343743433449216014476009163291020270444735517572826740471627906430304315973331544468032686166433332983947224195592289308907142554923499775327970848259281618052459010861934667431844833837668979065359965922874431770477234412728898945792362282638043993213895734018423539735650578307788097904477191744356570320103523524902985588667501224304636826904386233289022335102445373051586381941142090374493783249100022490371493357127530226692822340813813179820948043377607681490624782726874758105512388424131772170208002665397944149477878953296079217018038945090967164438239271382701559720085287256863887374954385303574457624505413038374895419521963807267961759350706628729105837078860631919271441294939241593302820756126819875077181597801106992342600777485985795440850584530811646623936519900113476172645570604176327329523285555859805704726286326824182882203165278574043166985351306296685415487711195742223053404174613662327261549268495468857478246878934122846878259966073490108450429698781425072413345191945115399745741859290711711799664528273548971177914194913560688922572939689965513904036251112132306792602118120342225870774281842933166872574276310856079009387516932653506940189915867178272801943272532160276424670511980135606542240090186125916798459501812481883210182297925675836658545723470199260935204099264120365891464908220453467342726900396568855959113201153211483761605422257156739935101305158358333764554521200675998800847849592657922658701122668375894040783084445435407308217962036399396371139736508317081270962128001067301674849782035204590534316385425505220981365340224640864951120514606771963745485057024315177949229412298956907942277550299478208500814343263865655886150364392915646004736621615457846921049392341519775566913990086850974036663930039737289520376658794271091562866995778784224157249569653395282139989100505806503914236955258519314691175986023834205298124549814396998459950303048550153019892471336618467680268902055522119818552517171391407780989063714419224677376604831904223418428823200771528639740663536922440404197705967490074430920923279799498771088441228444816515677863146169606662611315432380138374991116558768189253160081367620113245823339864521782362243766271047277437938391678774716019450943138320669943997828957234008939833876519915780647598945744261276713316721804125754548245323077542474984231949146424275249075459092962291714869150992674994890903040972247101973688058104103235457877887512432617207488014917983690914431006058490564504823827621449330992259338258383256065668216347038487280058241327575548457456243408016857037859665714623601307638574438160304156943456378849639037954479912335719397021497287184518038809272132854190290264079082713813210346778126175209755538697030320349041506618763125128606590075445255551095871955344646650382462202578417799854177298132829453196742406443603991972683473422408375599466575145312034828623513702250590027464105161629273653552666495466161029410924474313945442016357719990729277024591834510286774032932115943874703335645852742688845239815136052037303742722981440129428000242409521539763060792552276595485869692522874326689649016479121182238009081790639514214620112138592018095975358703405026330790539962635335328044939269931140556311917572524584271737556707255807618789404536969772186860894417370228152821645049497920839624887824219394683743175240372934109014068823088660828776687795539245174737078714429368801329631997108104896987141430152952472922241690274957264345792389411896081915664633828579014960196601295336463370715998310468066955674451754041725114631978314137284908019247161745066506268214927595712871310166976998852708549012691864477198437277704871905003778319352451447954696551059938010700284136469608845081543377477434266573020162958763548541787988855482366452669411919526671764673212183115342899727508716924270242887019001211124642712318508389932424636688589655693116863658371248869948656338554337482522386108362470971038909475464780557532916661334904107397645130013855437066585243233176980524778852395457929245110372688051381011955816333526868675626097296963863617119524619980957176551660192945947762313346874636343593708326612164078732400303185544563999570096754560287754669044037079050794044193757107348049968833685385837830296838088492631840741746011158060047645687433080237386339248610000370935272974850469541741317191432998044583840517400050292804412160127128579338656497002123954495778371927491499928714052342458462710734536027722597452745579232065943173225829503252467835365365603220305621388526553862924069980593811100862139352525934679017665406655980823382734024660083001628201898566713953131744318397039746732278484594830509603390341115528317045657066708804790943508111849528568915553673814252697043651950688913222078502613502080459721817373579334974083786364407562761223644532222743835283313907595532018613009892952132735916806737838913072708704024755578611728635772780157688240279512048306882084251036659142447546632727710773603008633223894488580738251078421122967256730098878585128858844421737262456232815239844528478508050399243768234359739454636711255264024783726859619383811448992534552780785757379454471016827791431064366435042438139437081756121138948194327226606565736860111232700111817820164594030507041051099151488964503920691441364509701283335203050052380527563134419307345782086825095771462154742782888643176341107580857793699277270296211450295597840961706748599439845065319210534930044471798671136291765874482963804393870599777545299366491225065065455303343279559530793564559222062626926593104244005911322904639576306079689447936998309826294821584908989120996621188036785635708802287597624048848051869163415952114329332051823829318868380460338122809759556431418502869582395434196741421277345700479041025771250216956100321570898249687307533000616509537353505630575960033818232404317971219430983570481191223187912449926173570591873231495448257929181160408777847812934744579383517595574209234843644377698205611707984594958284205364969669663741153648384965822610611609575120090211269829241155423041914857087575069820533441368704155739533281054879439777169023793755328036370961170648234009425501267653307059494605441819710379879829975633224254372864235770051882250051851867816636035096690610131858675719928441191239916790259899857535941316458428427861417955104578966625741541077082712532437788214577882579930948054695363076466998184388873482254346003876429208292312659408391891157749499486261154973289631481035997381732678675085722097284983801917541556622638067164468082519521486242464930460049324570542282442521226254165083015961047054747334641247946466421236025664617790423308936244653839079177619803841542730263214047424637347282200154359536272552201327110380066035420721332342446395201844486529960515354875770068837837390458371998935706682511309232667789898490189895308270260554645400406055801535853910456013026840246039930501975400821766799717457377988300603668520819427811591542346450421213499693022607221353875509432466415552575619337835933184731622060888888739599762963545100321652085565027168527693540311594349495549619315315177919267363327268484024999075538813046344509402960623291689858489155965458514218998687814771977490565925154864265291709702250186523511717732385954570822898678508880501156258525264635175684770216431691551190614945838372681435880060110057208475739551585894003344939085860310960754811264266755253671395473337658742552901269422075491602543105293512577930672546357880046518038863443942550773848769986324364570531024173119110464469630697905507871579886152267672273614615782146968625445549166726897613831165454768195489103151415837974084452216975845229776114893002549212083217526885984185877160745881512115399598268952122238611716191851205327935217457345730479835773136535132117576337432534978977838030524388658841611729001227549670388117300371445197046680223745455862148598464895832430342295564457932389634588168303715210651842918080596045121074847963730211094853347928253321995145013276887742076217382462343390182988962253527425663429368847740486759156869412273472990164089375126375885964412504801669879255689368751687524096057340227281246114347171350795793872539138235809718216691879039544737189480870368998228986650096393065205916890036489818182145618691001986249674280414923008011571273911814226815750400826963956383177944093443424576356074317072593401651738088746885888057760884857629628216470199961396332550787164421370098117958327485161311453387246505228914808954282313415403915980568012721609245842448263065485396610669625109233554681201103818299864238935098537175771660786390810339503055806919801196028842524312221770532468576386629741319896616948888222841865771268467230068788732475383737125412455109859262734663586563236048122993583631543331981207727273532310800533199694505919413186409547119418404909364893615225627471648261835014620811140600540240055820917022797896593811202949115330713399854713598902935944468585984608135904105935426289231309882492515822172303117267089963441911993126659329905562274307078126181524397838518357680495365148112107320114719979158906277078392876390935059283828613889059654852665007393424214927911565920850752487454532935163183916687868783632904687758562452241313835978248726409001236611451165070860255974786578765937482400545018817298105587840146857942865207118950020164589460758067776761598250714924257764254821348193716980034866716320605884830855322055270191470110726806871252588308234265990485584589957332646476371034004661159207602046737036783913273123681126476388575942728396618083439414172129048082817653079795689957932359142580283247110002257712217912358587864482501472226997845672574975482764063356330026572852386322048870729298503493479081874463360858345220654186915080942070015404062418612205353002136002689423087565972426344283362379188580496215939334105437592809265013475584435438806544817230820694592949300735344341332817705060312003160869998257971774016355728981012882229285401132817740478797374802626166264736105627148422410982628847642736308038493129265816925078867019389689468538872875865987981450561659197886773355545864597912748278297450733325710750365925794463591313162009300389461187992318884611713316266292768305953955864827522506181933451488795590627127557380407927425909509822002747985258725778504253044562606895284457942089114526377194544879774113495071756428800310248517867052112186030927292198208592949356715287909827087593582293516780384073303838459081127926415902020943839912271021781424174609253432929565298852229983683179986037916304510082595068301923652234405179857741177458164156978786320874894636196289084939468850199405503328312564860312450397914607820882657672558065927834173763956499457958514738645268507612438003034290813832588621145437868969345952809391719690953606474149965175676789002848764540467191454108710275618990645982970343850421659562330895630926106529311404947419041712482314500721813802781171225307247759933843921713286308473060658333426859616716020852987908262571860579663250592469565974240352612006249744623975885093754100575196129143578561569817532017706531400817369308580924368948250803917256958486284450781534278075577043881380468015764451572686594793037902262639524334284158589249682870298157567694818805070490369909495654127700786284843630662327711337002980291721960300545397114907116195614615784487831781716867832833840010458582589229914181328725238079730928725919813014400508584656376973027362845458004555560728068249409791317004049740650148636403698985056734217155131482010935982020672332821768798058803675559474054786786468717189638197245821628658611804863012111835709467192112539119851785512982614972509789683470365389026001687703815818768923030861045739254350807708305552397721139935185421318272294498628759225396041097721593958998496581484770808946517025291068505416040565345203020268557522422502452521137548166819143751768476649246671932279387655210823464654103149171445906808996025009038747832835665062609808092399263950245823497639667830273003822998636365378288267207701438561826802699267984236046490994371472964626026847739585126972975511662655750720383819102095779612939712518075223035912997511765984130473808283621449438809469644810115227983678597702507689025260797056780361757378211226514628245411515368803117052414770499137744680955261552476898793019975493281579984791642859607018771580981562615280512581748780142970057667524817693667260442763432482443218258960645055146522185965822510808620367040409734831312310722917285555604270630844442986755727337834377624896997174075305589068118231945683569961323588898111511477555130346160278674160731771597732830252394520180907545341338026285700137731154627127705014826712583901009061247045820829621301981680590465249567953419302579182292755697069476381745099517340369477212272031189613843710744247587982531489832274490019615075698824452004025436710393531217933307678523388613155441296177767076067158288906866071838252541911143475025381223785394015234885791902013103503708592268378551986476818746714028780538590395436645721134477923042333466484698909855682709173920235952796010737907452493751227176080857974604840575541287054025677722092296807986764142452217952596355716881901905483028712623038177225801431027137563026228511316427110841832142655257507265585662527402995730005693897834751320262760110668788183844263483223465510059301343516060129394484189950848837461046692577526681935972310847231729816732117298842925023481833321721789334435311029043268344841975235490693342620060728300935926752565280708557225167311328810438769516218356700247893968809169247705909620671718151379689919763623058571544856602425990727691387246346069668581509201959472070495785900138213290766497708800479332284221357850785674356607413730793928606313028648266246597909131366956826100141000059354861158834932456764660795580150212682429198433230496985044800983965076744518086772309562284931857831872718943988683414001537135177697861049039893965202160954597136485678504888126093704014319474606458793990842018060999238030749698056695996644927035716794996249108159048549520680996316607691831231897705812449683353890688120386092651269694822268065751590485928415749955463379054808810060062901054385810969787727453333460563132848185007382989526411104678694739968147509155587142526530165029237654440118809729695017996222779891280937360200230580056463611722744981981649189886028567677053676897141384740403407781732733436946630936016327003643918405388813961140772927302805774916364771263885092126119066122952877992651607624763173480009399984338150235601370949303042659084022271219808838780954594122324834139653114662428020890682679807660329799527542552627356706585529685225729244145313068741114111637604578400867973692725627527743112354675719089332241828106284730910008477689990205466061277585692170358415027303497838211454770819582029667812226319885777975087662222593705609146622002424957073868759339254073712465995245016597415278793897124429008312109390763645271182272493803455773585659090607060590192268664156786310831493388834388859231491455791140617799551599812371871440581896709056923255586406983618941458629959795208399271901519482609803619011146380614087543035474802775822721139973374594608972067539203712238845038512747374601546852080448613788375769499768660295826950950081707673496176886828951773675701488808227379898574045319435983044284010452521316569141460986757658629561614090061760848560374296973143972804707053596017696501288932774398795467128523652945396035578581270441527147266594093136809299479599708745777421902140998729088530165908077633367151808528651215146148752742973043517126985184178784110635566203940779278367654764544914168689197813486514073162186662081246187852746581329029309338916205917085072972723899525886670267139886501281439587005977453687217915424521452320481757343390622854174292224254850530759953745301295082660306599563915857436629740589454203798318903814733737605833670490225494665547030146307582548282075644579519694957523120685411665226703972105558013633221110905406111236972125166547412643868123002554732999033649108834577372430556498874214733869591462713975222226795500639871293803625502604430484237906421062387851754727995797240188605632708103264135829830977373461460471461507782490822131718739702245102352615405367280477834559572606713876396395861692989509405166898585202532195697728850306081640424167276255497976966419462414363788012999953482953046310691075230159927427976097553442086936098654137420696391881063540373889973840383826419396703608293266261024963952143128556957021914613564393502921300023987355184788129977540759590435257947116999106884727471286168015213072429127466387559105151927248226532132378742285564685438566114565994819971692976458935252222182993071775973240511554500755649152669114311456666305002862159239734601518495210415472232592507780127664312213890926343476127846884418235020334368636525901295380543208004956765172203728914831341393173555217240510129694057308233790334739670299947730661292833864246110529760354175077110225391820254231557015244145823167188596138314211450859586254709928326006571146907561278570066292839016999419718818925740776948875910582929055626168434624937133505844750651206452925897441780259018545228405111708252897539009281923483007340940570308834168144750993844052921830125148967615817650690603718974733343772147378062060203633860223383643540069936282312439576346647774474294067098039272604830144750510007579642353081533633535863432516772047380844427823170864291206992264482556311670269928975098004092369696913298272667749133847339181562819704764921234048330726506453890887886769013333913970416703225574942289982807461342210890285092353764836747633090274506971082597160381798757273694625887935521918246132201034600045099903331591783024537405854813922628046626576415837316980041041495810009461484505625977088514493375161209027842568308233876109653313486744975571288721759874498062583926845791519268926859437032810976658828141570307117137387886944752109920321640264186223813245917950152309989551564709520245849456910489506157806498334052904712098209288224134320109617005510927867415980983952921345380462960121944620535297455244043436593366537727796993597456785850466034622863241584749326265144158303754540072300886790030319277604122517516349235672775077872589285144434958416242688246007394049365636822414784580174006513261869643607033942980141318248546982684340503536600870322944407785338787639119405335245955391298516545574514169384220040995222527338249905172613184750150656740360611097696451936120382269163248122470580017708476030752248883422154245446485489887010531862975684752290530413831447213622798003055990283523903500919411180255808397927159718309004824350165586937680949981696402187206320822444598444719404054189553317925989897836257749768735149294616027140216622537574567637342637348329213767827078559859845562976577633932517795937363311111657163849517969746784457075944494179252844906800735018315716807593263144573487802339610956929466994456998882699903522162965668744481788195168743344604150029198911903178233217766358840614669008495360990982193829964114186184634059973409158344384743909384350070109224552798538846658796257118906195983266838524641066380775982858818569531819405498728703422244863902119602918523961036731376159738541117858005554068660566215173866871139258333517270967636540938829508622130502030052744488323352395551285783258204239538314641782563220340686875707083302123073712559850082276254188395319424824442419091541133229572857693135536443585825525773816054856992875131081430817093284188164281368290609117504454786345090858032895239819007619619716003569605736498568315335675521428622690427689108257524332400950971382947744978609573956366371937368215986362616897400900913403836982187564084218418055916321750879343644887236076917597205844864445906410001548043956211105093835184966679369882234551737014707229577847434814851494510498228711332696621211225272648461870017065032942054968112974173565258485958682272203487810114790999059782249438741154697523243057699050988236759982294484321361331409323976040266879890587764696515246089410283697829395342843767582022508571366123751153759145687271534557398593243853029074973176314316646713115350681401347491658299664147422291907272329279266015785431960347115650989951916111221146338113953798527483568758344692904979942717535429678003592991414738384580508053040412330690095763674662046613910881992599608271028484523010984536334765464344398739703974043668153240845560934357983001895313600631067374870311883756126167244195855869941509357051906259913196155391127139388324220638496542299568997703040442795580160431918785160358634192653111042892537840922034511986772852107209023127534089128822978548193262103309802278357161837663365148277310071656821942059446453107148211663544925005838774486933755345678339792479280791655668641057417317975942849943064669040063584816026575412241136550314042445364035288458688914623411732552018604191014020150100041967960852350492144332790775038687036152253721415730530797308499507142475062365997068403844474438799026810163419279278067549669496729006864230214596114193190268646237157076453496181782775693833204262166738952863167964451604541609554231741279045638398475422516993539693639290633774055196239585833498313375327964362387244099235459094573828221446213592424173763719241692314915308846882876245940061256374074809165572955997867904391571569520187501503159985589942151163408039235664988637071832634522429673463212515591180930167763636823194589146808161170001103654398531112449396486833417762599925304393015834321870156090208081632968554400553440095532347557710865274610874457820607404091899714436819589162732543156575234273894492814008725444389732896227799217655024789893184707549888646870172735472828060447974135638759815523138841386976153621819256714757375999222963532240553865263240481777494679206726047530782497607255125789725864832332145757485850223315922971852430803425517053631097797619427634879055522113751129187572771166161464386121770547764392582381624334993923220740987778899355646489056393216312760066156484220342451403693076663731963503308885605681035952070974521418830101809747920953825350502686116557144446477030247013953901767272765490424731376341926244052908580197001805594407284873498870918219913374155924381672297897027992481093278927444121030382148024687098164524748161214099026523069552648444647681933413410569728362102511189562115068964303118604412708858016025949532429913604933610071779791714509224185169037881030889716014073567812067193743928526123660107793017270757678954997309074689807436861783135745976088478267836418963188062843662329990351201785610009858858456777357121570403089269852645874970204998745618488102472733460436334475244115327980215511038222143483332687336007860340029564254381886739932836506684390819517295645335915781327228235455239399278884182440370451650962912928757682142521430320022680149101285368925615760442795875179063515323378580208101971931609571345669645790897614642035406599505211806890727768543056940270746265156659450023449403765769050645905688642625598864033298858091877317398587341973543908145544277912215477419243903268862399885868573244750042972721743751608000773595924576197202638740774579449690324355468495091495362259995289042907581674654853288949681343969624837094863496120129792416538903662550526280931964747388006989456629464507556325292429355485215946290893416486688340006191461386136355489044948550822400914141241333055585787816940611142084794115393657115050627815853192259873597964728619754596042923733796452397267270695333196961360257207214509730619331671085000845284469383391255074233516535833679556026566128011777241995231107517983435203079253171035044629366036243083560326744783294915298473730160718735643601602291565597836821471479961187832120395499991839339914510434005155824755236602953632336325034647825181714481060495284093856249135071744153486842276675374403701011260135062258573768712923935936330963054543800338418763960594218222224046347240659185633533972426185610354044599994744612042074942783794971884077270829638992841500054844927651074958789640855501681949531747203072453540826595714680493334902848548128957149802793471262953158197310098732887387564452539569501543924560066313920192610876435137842565064571053158153103910726130292764530103785907276133836066634302468487535246585818759179111889967859021044649074226429995616124358582944113859539449489793705466868355506048444003229257169516025843253267564096900554012454454173068547676740626489302936314973553773296501381298854415629211511821913185613865847290594837877452619661967680213488970252529104023827174819233262055254236639459447597219423321766492094577350018011220642500328004084010171464206886806163304316961994749461845453543541619548207425244580715941002905385864644648362989448647110398308129751218997861106505692888745167718146778267748470243514594877234470341486034853788561341525082518234237286377631059201805321468283890363314481476212814302138084150459106621684463903647668618833485984927110865556670034395129054140244720802185557919559566254060711961983824740241707696098245518523830542995232612265086548994622555323728365388003871157235713231458079375580831051388897098013036978147284910613230279691024397230551602964348014870646725962712263966572224426123570979524147873623737837023017177957452976931653438107486250639200821245821934465730232932215636854045578451419650984825787922875829133666050283744088990396552329911417789583328996034592039941747533098922526856190355192765913552261434688859524152267877055065217679896879978322233681472352425619316150483577324647728808938714639405212204227007723139676212911882525531884098674088232470412798444517872202748328434955633329966812826456003373185411816563289355077319111210621002213649542767323113708607009925789697681513442987774692634938131302023200938870732582792145325059276020098041418288592095068166022720694474171402737190158023524472869943119916758269046576373434123678109568304432374008060492214372623443711492993309635170220727329697679433773208083878752682887998675447638695458590909302937612083613821145800214522418003961157957643921904341560436848437698934909315613620227944260752382749454895921529017463410714978512691470135338058798794140779254702020543601211594919398295900184357924857013985727490678710997620002783100973281364676326189079503974569742896825656861328577334422050035765372092208092995140432807280890648640568395996042423213812203226679058043221619815778262929664482981549385720199588418972340790119391756524991566930634765996832539551284678366590519561590535728921794768017999647437029530252945942519767260164866249304481470412081180031651060711680909612718460529195175700851477423648406053364713793703852191781389322108505931333382413060553245107868684852779072638769541442902398476138959278378069184421005992053366517396920417540104283643366963567256089243357332788996369986018351103894432832875910811552765981681873351976891713479794893628013642445157775361272011096386102205638043453006734961087653534821769021309719500212245445083181342523359555695390683821379694496243996289021981337908155678418901778814723245719248166665722780082601808707527236392519789517283442201507233286698473591783872254506318982994436699020359341387847223648845212234340981081700743408323344863408339626375435874929126043327394551399537808119131505561686938017702691790490145550225562444742063290790776865823501612726879377026924962008886175867522858420048933900507260653960199274515372535655684326390490747846520667115799526865676205347348169089612946929177041896087106436845310432901348099296714430728374544306084392442958699087562937178004177640667161352891886540692743246343606332905503264035706230716964783354207603947937709438154185339182999490665790044004647776499715877113624229006729060420709416977374049592529786302827438106183176670656612820372112991012848606464345945795691568365519071561938770790068054037245853262906094705098543257446183681008140095040111473661812868974689378559969780506023719049732216226403865042551154941403650356849923427176339184991839920979753616179993820117382917941672949659922529433184093819291969270371671501173812336323125849189867976721170015517684742893959644489007082078460275058653051822234491820535446389161678286436495757616760892049183198006588100524238710778383594313097964314692498965554414205376609935773843190045145256916758342676860699438213761901928746642676646789465548481152280133562401689773985728218204626427655363638068652750120544650570932841541785541112317520526451341840730589599291457955343950112403171291497614252475011162239523171331312446847927531933720986356543085667658829241163091696200865188271779786182384231420442056521221603524849987837841406109494203686288912433778864190173376693010147528663409206332868098189969818887415922621943285236185788720525313708180239096172980215325104053336326025667424149115468641110632223194167442476242159954376382359810672733065642848772840906697177134282393227014527451568348963556182963578629567989835795490296413999186459525759297435775986704253671776611685621553504674726684981647385750725360808956163181906951545623021748606578004540444682471688620325445185889363846340414780378176420824498588764665899560918541137858911429522437359121126834342565890538820988142297880951147273892678212721078496595834974385113317514905885319495402817530584849731272898053996600256293697714524490897791147943979225409515202704629564853329582821265367416428636985728212362284361085312492953196956606663049937668214292285572919009042972986096137289706445510344989603117821369893493083867990346214228864823242725884095198835756318290819198371789261199225328241173900499443132890816934140919877758485626713314704789464951178653946897769658084445473204287959568351356571644772955657732689043135862969262623931226928882376873761121727438742671818383351957044825399521938891924728820453636574444653900844675006745760611972264897253156417678513470174443223402317810555876746517467120254155343978163487855580983057520371288693827045972219008030799857067175385776576186278570339518240021178486996009951115481679027010277065699835658408528033600025971177086946225332530602804113794441733262407562271929370514184405477424008152029547964242969232791722129212917662647716868580757896643123717179584322839842962966723247632110861149664695894798493955498597714484695383800094503012593208422568194449011553432228154195544919202632826962970328566654498811016020277442009884009436271827394365906406672866555415367036526242875009441039632487855009734600311819883250516943386897723442228417020634803830701187803593051441761774906095352071507861234871383998742879686574210244771662628736855723212723777660931961075335381713640424484528149198811677154449312361887644671148890933922099987023272652859638026674723254156818773882559253955841793044476486061753393776626904143878721603562663567573298163016614046023420679633444842950245349525214535858934100800227056722417277142128208036605102866973127495936937580847146118578844140841584103931638671587992707370021334052977715814672774277009385061253846002087720445943374245043499507545639616050251843443466013803449793426268651328423784786360440887140336882809808682813113110422498854587182557391743617599591329885359196632030432590209945847683369047273157874361541734157597186928385957440786404119129371272801463430369001903068671616611216884425306065575568765168832903817007442802321439724140412117768361030253421127357202820001952556079443487617750198535516696566315878957506305761633376036230482498225917136771220044763742028241969787726762587060390655790550802598880779966281674897946270585514670757146618759130408146560850650475467409313308392683838595716804159526656969236765021441851945229648433703513268639775286700451556646176917774028108696330218829424667446305476792371307618774602884001691615438333306421932631556037668784526522480935231753116016103199286048722155440286620215549532035965698021850865965520948812302615248266991247151932247523218267226122262585538508258476016071312539443057056782319497078119619482528529312500935641463257174267310122853208667185504627669768941836092981554022316107169649256118917333740387688476034695078878913187240891098477014413563441690841276742842478464610538511889697535155389106623327016731390777092664058668762666941095979756257035072130053489996770864571746265853206309331375206032279906728942546495783693731847847953918302008172554985011707042687717009511285840986828717331084093598573460722492265032181411090460651166299319686413253332126626462599881908685895972785159569360188158076482817492996485527381924768842361991642440000100736854125240344748753404839976935816289154161718757948728239073218544894268947132174569458503703600442512365028319292699140336052304712387000059343993668761097091035660974279414120669755639704564250421628264137168144544463625030788821911900890663840594613669972814754742668362336886667498204907886005596295474811023059173726190640913341699849565894540424175247443985170094761395261812820739000588960714046355191496470403388897125303711376218464384007254071661065393698308971144899636090567298161222007134237715981878117656319925793376529808825975407660780005080160480700137308174674082739596432216688884751643967056530271302309741773465537332471003082831383758008362120455429035615442527925714210409000498812364303202119424966754630885391489712025340053834792061704373561335818509421322348541536755806269444686177049567122912056378149270266570113943461465544242474661424950528311335568236074678005701334069218219673274923134112889416355469949474595343259195740786564643108397426742379659814308289904718763127422754098810452780816093002220890544639413434826749556794089543278884694813120784350612259767142699207161599440703185112581256692533956347112067617745293412957086016756415341592079031431337906231266051483526766440997668418674121371550661024247770727331858879824134094855362009166380968349282600106229619133909408607512277150889745616816056229204266088957802209292395912560413127421189489026615797756286745832976521759720881574323804035154021608543501645667182983178424069199449526531012350160187278403570312817247944598864804880747031307765460989157775926277403445457707028759699111872905920117960998518889936328727166984127796382399824968596432527954999160977025903326295770355325792729672232294126929279488893084596266300218178877938735747839992737094483465153824015675633454319839703842858695774412291215747898227036160201398776065668671049145018689496886577530320085006712145649416689466042440545897592927250903229728501283691772729266806138985084353045058006025260416528122738924835569447782511812186111232338191716832391355666823585176325184726870772413311154083528743389879938700270716579630672902889008842454972839491005961423131656903629665581025945262961523844612022709877410392832391739710517051172288872278615600491899102068943072494082795650737057276935550349058663478118438191806997456644374524186111073607945254142709734007457175392143710560053311368140913501682482081497682925109695065274953059458384445687026982869846868647099041156808302420574405741187023865806078886949938436506862260306761545592756235960085661134534650150810508936955887587140154884239745754105594282626756199891984271723773559219608104397542472891599196785354922356554456197303027216182060185789719344466007466324045823382195454588328320048380303532168214995316384459579068456860821322157578024167419829629719996364546167319006827908506322773517266394970081010217497236326996998444774057279886265349791524197768054868302578580688391771386988446724390814077380222851318638712407429944745788969084762141341702382026856167172737894379813633210377930910045904118736500748952283469614854272833778411283541592968389123534190150337564288212738028387210170681311311224726007561246478088162357409951697380058652750443753696946841434999270345980966442624267605114973369804253027522756824956991809512724750804836840813194189248416735619502076341454946526576286926325093436293232017420409099944907132343310734978705817033687729944042711642570886541743815772649328251545043872108851632652298389760549480707350084443486569983730815217046222115310110072950974297135733511317248675126812289077466633410275303529619270355726868705366548956780742268296640704393791173020186091897285823026069130020262874537734264200346348317031198244636610269370738194902861136962270790741221612214644882223319474120463380080865298063190884575601871449818362189032189186272115401445638221315756026735785065652479517429047207983578321720451597772751007453184108322778618170462343946418009481200353739277699404357661573070167928813741255518635840671081061922463579531153677039240080722406915170626359145311960294115672928146235901839247053526908069702543971611776109020697633153341913608926883165860686000144679243332453926745587739026128085773084170684466860893631343016569359427737447649545196132219070582834445552539919245420017996736768100351780732477452007965337787285003720636323641210455202437134019132825057962876192839091662043962978151393484312403421284857985873219671506708412264289380938322658153260226969969014419317530314506313347447471126717719879907904485205187160402178778850598098809343398520735382588297124976880690902076702003720988458242074344717512305899860459490741897482596438807675092786668882020986026769064615782968364911851978404378177650408831066714821535835146229513852091785885202970085199650030943201695552992216307778926174006527975564255842177457082097143440105181888331106510234580332092504650931763286301563987799291230648083591916723178835925215173914920980179537973450539860199281321019416402626081775315547303981909159309392103885562577622274885246590850629708262029315871350125755004041034013412337151490523269327295326820693129476357820619011614417340742961568982005727173821758381586383987294739166880315705155644385911396829116886019871189369414241649056951661190974847298508606509187875539736738401196982532955396899532754985273676103499506315677033362610594597747996608296796152159098620950019681241494287548151345083958828574063769617174465028103182840712674811682939076197808621844876812706735227532293860778650589808115762378834604023726814464415643423871987657223542189910738491767553302973816527418766819339706374548689690621953984821356866454125857692963242217584331962328401771711938232771236277382673627928682856790577876243629962029565719072189303939847602780321417497924390547202352458462111907436368471586073736675491047236424943063582418991591773578033092107494502169687994076881659882410182112135877476892544294530235153763247312779883787362150349747213114377707209440537629097951885239382876658808987011530152116960277682694035936288649872031447373041731611371537353170748238809569351621364094873570882202818402397559349145009786444447680563118094719610071158738110562438750166266036175975743660600749392861774530786985342319793559583283136874817538198880460713007241458020270112836804780421026385888245637689781070260016874370444350405665184232900095770301798381141360506623339320121491215482092379533078824256461355885539294103334790472886844692029562482365053546745861583495535890613806324614320137737377097083064728609774511509860035967903890113940371116225885957006688602127963575220090296423440174540368279557106235646081264142126250663809128691473984582388618241236357724596398485964709458476409711790693143246058597073529944945529004008258091818804683886203192177851656865708062030661077721771355577979751956944834361917416534586584837250723120560419151305702427754942533268466803213752777350111906865992426697229013663587305220544379841942042234942780948391986167578684582348089241921502153910980392830126124492820010824039832862975542083551359195835303680168096247313194912782315953632018951983781370693850433427436878369605231571736458093836565883077587596034285513771033097219813559167481586415662822853613928366673922440961979292108402267231075371371336547677244647484962730071619727732010436635561882507887491099287692822475298119410777801925026840417520929396605247118395411309955839116272463686882756845241221152920049249623660384124432920447030044907365181215018357011265417963034062733464109115662776167940515333700780474404683237052546767942639707635577524840586049028568667252663121116937365816714058301306820059948606860253661815920518277733348819252150816239518387909688458978960524950243557602310722701275258264737039655646743217381076556352682279442949402251610658750493244367849910656105784594006407154524460054907411112733843221767115613289706030149694968417818323444493503175841841182656079792939429810347762682178921132639269919340162962905612113790200551386505873176403060970117977219132828300629265756963442566209341487798043551993460687118856611032513877303230945377548328197827789004221914735638789902041345349041142645247526914631206966217380776491491225864105850611882855517801281664848221878721643504911369826609779540906460526096281320370670712798882620007000715336841792710269960993333262612604017816524833649554643062474880066683148128231991162209331087870563817531357099875271185907013969802275588162640616720928262548300805339900063468148716332861948097850591607827189396448615295973869445501351657465899015962125314379005857062426371026608493574115995095891610291874565418147126098286390312591478180509763676868688959559049052571369333874638820979401634354374401987033909021509303066718447376604695649308534013036363477725381830676436160911443280858669761424322955234258733928336573510220670981307396083711297669216700187739435061101526091687757521662921181916207266401181474606472386957927933542411079461542992251230698429533024187487150014045199795228241773725319199012529026325118128246647944609081303421343967006345198593812874412214181489641235065208262023062839401658760815076029630940710045573150622574752101145054266149647561021023934803553144895778737170721229588252543781584134047019981988640843692530236946171152954587719985032090610770203354829237647839185135321063473091413994738042358937123135770068934591102153382160697584874897576217382037262458870479033148022688109807980417652639112597906160940215809667933375449872196949104919758188937381973005865861934410527428337201735572013838514631288849529010585560326090152164106096419360356117389510053395523958451273651030124654567808779439782280536207379892439821687856178527954479038046915263970104496249436269626074402929759940209938518561348573067747269005406345652083440810116196649785652373313105734084321633131789120805061532395615049634066210820186831253698161437685374089965012174196114332361318352186927873172559094389427230131484725753232994535634825484224213678084864774366754403200862701752217538627328267347880082847872587415102665444354230887617276429954884831681682269761453910012314555617398123787432006144905815656254750889785429671195560906511730390192354553106320995101745067545034244293294333280135869206607998672114745090972687380095950101182423165115026698338781496875619371369868691177084275805494042737053149849145993621205642308065027148076511570935432158019226415572638549905011967522823459719676485238873454815403166231720070932499509461684450358298635148013975201454006167188034747537780656048607434002472128117699985888320652166476181373816580799985670994872875212968370258142635822048432264852769782882889622655606015346114353937471090736763283281534952748027481989582043232678890563652598922387281585592463263555987350306999649131423164995463036846296491432421854155144834595197155558808228362487973712025587845670510825859121087876044964075887535890157753280824635394162170445903833736510545263026015683844594569814082708026230374561611305811199009298855516853490523689858094281251882534007200167566746188997769681990269272000091534291130184395914886408282056761665460821857517063596338342309211534747376663436221923346612492820730830637730109104430485694053355474790107460781038650921477696429355758487488100300006927021120925810361886319112377906312864748271745896489826507625905098960963092094135724381025886208805617663014176634547717278778412378316104260804676957294710998968954835619254967538696439414701977207042666896756131791022056481122057186085840329400499454405095763191163510774927434827525906591729205640662761967038212951428778345886397747836193814354938394762831553511291120646821802605612721901218541620724831896842947707757528845540563177475811666655066022943197923793985215700463291092379367123264631693146991689135926830459591849628797934086848956247887430032918213069590027480225349473110683342630620282474814736881216746994467290026058917299578004038426627091852462541099055080403121512373621456301929986625527067300219912956972454843421248674317260736333987970777248556839238330573791609702394171231581449572514204551766380264756764846579505461706947167969053319279766672078900561891173739528447658784264322145276688643654940158095806051786254256628529103928618675161373548595628036669424224249813535897356294639724550065034788970678159980650479702137503222712233321009054170931925493661622073723171487782258013751854630847123389141701802783549204150271441868695192843448382432109962995703423216207219494580490621118508602138899158874135445987096208157970809074045836438668728461627571356209449347483987857136340737280941707742672144752016523920583774770850440158192231933497952230603421708712504625540242753751791653850284843455500172688879251727644241791929980121587135057246155759156861331729725407319958315907521299812800522453552002212938274317341573365367373954275906918737502241890969931216446638973585184491639507822363177045190388812482745836344275277098453123018200633822529913442328700419777396416985435666544734205297293904021936372179704443532276373113103782608641945712496126088503580197252326280532771726497496083268869895271624854935114657028022179861974391513467420611569274821027696519126667486558083883050874071256221488196109669045977666328216873170866784456445414129122520481947755632567827859575691585069624204602358321294392167476797436172321920297361816782154008468089676022698981154150683490344620643748875994209126496364007653330644935291926221571258667234417979245796609449242495900778080090905511098103809900485856996534533737180608410722382789975515451783605878288207471947921429558716330311943500712411920306981155697717066930105311153534007542441332765804332530993209300191714072937606609637262006212895059337113562219540029324009453993170388606165378804389471572364969510589756447103566489892854889198876678638444669146528707765371294340587673705548838347934105160441793042988669127699885771380410981659677969445546041031831439851634266410778768809372559545368140747429812794424791243224489827359690685256483536060334747364984256876496265699769006772659493456147381200484776076956819505931391296136537532470806296652506419401702327093084836622199493609781306818485377550341595205090141834111432118448541011811142423244746905291829960527321090726109537661471045566087857210662933132346545175241851286264215000536323567218905303994256644951915643579724046605141132650478034079757084158639584398082120576281437442010712065014318775466960251117640089928264426879439991409664964400180065432676540170700866993663914457195305680090528620274913953748632858603519873533186634147069655041241216777807756653781531822216213549690302987469689863219903980328322832472240445997022551939217186827286602416365026150921551419026971652713547978889051239281165525893183437588085093130523803272912763259923498070525662554355457676649489793495093539666546369945294433111676270439326967121644835538393619636129740701503348846472505091371108063293279228189014864749152295754543283423342520021623122091103883422743217422137269429204105610920706181128716658494047887683312961267265824359629894696689174662026617655059434149459580894595553636264058079215027522622117496583011421829967889986201349101682548204069555517683516837184136037539728970601547175538919131451014635428824491959407518442879369868024468281043606456886018872141167930630579981344475685217873486303382399974698195224998694930350742376342815605045094412173471945803836170521389036466011762581209482027583644217410068409652748299173958362929967368695472842157268745900080597823185252852558869177735974214067582940218976633380122858874910094501668191718186181774405444489408178449196392446333714437717324930187630575226432983678587523508561877849114994401984883843396060933851124367717665279243696845293100283163421024463089160440252662548963733699257102486657984686078515618379989482963792635232279438171521872428662980290826320053929368702662732835201541455062587213136113095448030872413051331984679232230330622639300180287360898457770264521429910693012641846340816913101300285456821105380607410250836483782534901991940844348791543947084360886330200095703268042507328879533290987045137870087068414281944790993035256830559337043149029635166011247412328479846920358059778671247186183411030630921725579118142404529198583963404513992708317206039887544791149587076922965000882819847827769198308720939478239623312686641606404804589613192492945129908606502644597622572031811212531367821241386234022404699851755875687593424038733706177915805489302609604493631642546928783056572197702961455214358849605332039574437284052481768911919180163638878247578138793965434231661790724333281505324440909634613812561854883903009240128105835023687032836487451834066700567519134203283051252356915745137114684108600119051027905551103759095453680162765191789477308284756772456317183746809160667146426624651549172135599504288373925680477661017512804399004898833643746981348626942370676895312041195710634171740104854510549550457713718989996511999959397127262878603366089403776231237663222845364261598228389358428949996598627146770874881107843005308347596878032143843581655482410048000472470205852053382781586690053570493720714416570797861719031863753050323212648299806949342443434713013512932084241669864916642017743521279138028393639832887047354815717434407429003822787318911528709197379101541016444290152193437641669725501143479395994424523924193020125511631320091547620399670709645061685557780095296750202705199462496829868891953498761873779609497130353096444197126414014955915090476288673071106331512863136239540851869121355771781048078900043022532012679424473090275514033291043361732343140677456802442682614583368407204194733822933620721272287432755746430993702034797354304855298394753532901492788195480850056342892841762451141080896015010713837095243223722746380220274574542471303659120786342112097691103849461422323090582284044671785233060228630066114366795755066155988895787978506702317937160561428773419602645191346109541032849543889087916860526298859041326133155943034591140293808243020575537960763382953945643345493644137853442976668912986440815944580597073879021838994986042909830000563839168673726080494684315681755621314764189340753370889046580823586023541290988145198435140668568116250445542329046880215619388775212333593419637770075125540130903749029197992520206209802456387652816272944072634201537586716495005840187942710144259872530056195288766740444187199826640530347823246172101003334974363834353047122056395820061267253472462446861774676573395383225463733575745771795845773393372384761367712337134398965197004885688454360060527528079190851832807927878783138536988893602516975034170157535342417109041298653191412109597347320073404761783279412592554769441960506935830541026684109811023501564345175678749607060486823151709205074836660561005879351673381176065635370013462255703755711099349538364916826656361484396831963076958658925804110253132599457058613263945540315234862124217170494981619343263244825049794308191712103575362079922553330631482334671877390478442556666532981267799530940986921062033811588861970733051536641958813709710938518485848774796924501323798308514914043207451503143260968141379996547734372372155999491520319556841583034848356758343404178229689485385480787328213457748086282742358950777770523394398945187191292260680400934430243005864126551747434869793273659732324637197686381881078259268041823453968945487912463570064445006980784413072341211207938384326397271264068148730949209325740095458365001803039142015659258295659369675517440809027215954961081640929217429070212897463894122166127005132559265080165681944025923769400217080349244201509966372294147709976838533147223065201659291852687659772217170683399718061577455811675094489674064087958627325144260630009459823882382477302101053089135474485567784510000226477789463048839631833044729328376746361704231315237668448400078284755791664299491234248578968097226199255764049238476579489782933901296807828997884658029947761509371058831904856358606708047123524267687896351352252706014532767888803790033585320294625575168852320565100275298827345633482501847373306233316503738058035408952452966516490290501274168519885964592257357794982114809717601180599074358094134846093028233249241692945034371375777450104162558473847991720302251017837450849126737963429870281097459097518854209556669292764369296326501100071668313682176943937739600471355217370905239194744852401810335750149519303438369820129936646222684520509793756896267979491948988861266394046755943500746802900993636524029544382625789690332604191853510349778033114306440145156843096419836281606901430107952913833557654315042517846600930481000127350127607603075920434264895512373549289989344894986210427345087476147186447731456456259225748652053926183084183873268320124960206902221873686552931411908173001613856012893343730383688875559929869433630629436919725323329176019526568463707595898631218877849087726090092733416173201050239900955233622668369298024395980161170836196554017854429236434331083478837215922282357983600923386508545239854101400124095253425701966202733918306793073278686599435776047335929208223027713127330202514783121913586643088680171459446489514661420997184310094985510067478100937225649255006040962899082025083107188970940810797836352540959971440231632144674238011764109631810365422397887807057898868085253665358295227315104208753231082361999478723974844023405924226042209886246813635139398403234972046626375491537111555743224732767778635791475763737780935780853859293580538938708522983901237870040822899849544361132270828605031498965886009306926955142843950899345160262469181730119356141883933865948947549309929100405731327992951347543566632589896113052486976019106276928556543222982865017554819551898843679805783832865886463669678325242488407547318816708682286367851816070040243015527820568558300169024432793178598844418303551240463873771160033728874586736837341928076734487054562519795671255706061996399265836834642599135329335523610601211334269901734652480840782575031056270051874871086776149217544255708757188486508151838700639153827673014870471990945514595937473328079492833868511117525376876234813634258450365339807577929579410519606708780130039245093239272300025400407707176254995299112441821896472896240575008484701323191838803494018558245827070458913586999858261345293825188400910940320763231533314886755319455516201696138297341666818894665576579428997741192643206484644142130238833898705322095800248505604752119848659287430615566012196552802765680598716953558114888943460665640953576295059208582915070525762141276775570679150546558811709702282152969994262205764391748277455934719658067742996582888442299981290798302652071397047532818355770533339023727602992183645650435929235285596350108453086321971866849189861340783381711822473123708634140531182657639929873047238939106847849568466030367764234405603359496940416835370744824573796318319790637927959573541737804434307609110314328659782953410549765802232556246866503640799851362322331437985185235358056847165744434045826500749886082629415971600840706948965152988823468142558163726573225420106905686219757347179174958228015403455468905755973665008358846201098481405138265299187210286956480517101281455616907502911470411536933133593522180889394112033804671494756972599118881004985049569148536902878944164518115941124139839535529660895856107761614463067649888317481532190916789408726446426994986814473000670962387247259830549601742201009206257344190878879971710467741144745511631303121327617263707929598754938360879772784423483754547067961592368428599923460715782334670803761169820303761081979864317778280104121677690591328456902374281261246032977477849949540047022021028732855007312821227066620196522737809037838094452748577002168024578575913941075946525051186718502998633079835260310689004217728596807826627585947438438441887764570291040657979662260759147619529837839782898606502213010328592278226464478006054243297347727792501005157061732767116145365936312148567790931027825840475429796593982746149450763071342981670095804656847548082072789789215518382379253039519981276372114719795178869224402880913515202466676438662407399622745678641928324078011241435221778326758897679915984642388118491587457496277430910349303142997047456841891879921012214926473736417607567213606362010208003848097732472404407568604543264103951654461931051541033058421269705188699895524498931656375979892988424551068345061971802362064978687747388710021280264943802472613777428891330286234979943595011176091898232490101129630374630668209583990151544108401859630131840402422015720622766815405940514366735239388264394178265714029216332904060711172313094845854761932489768479503233759228654427131775804158875302101282237578920398558756290559387612643269132452391818251539648018973182970303838532494499204030144709541509703485820475331089091757104807201804226378474377947191420975242334708433893573781497839208671143556214804887241114286739759506533402375307038109811031304079363106758918477982320580805647886179011789026544929835099025632515672824042777946503700578338702787833655553124819798743549020990530657699107694353091117661756030742537753942723140233080843291532057458976527253550786195084450453367720715946408690566261762148497606299732443821719513911997399426967220706326740802287375959336257405651538796570997463492607120833723342460843279144417256387448300560761606567944223052056179819867161587628735941224122894362820265412472869935435927888990433525327606741342161675343521370606668332919838952125475323988125402117470111316130503837859683616513975607356938336699513410408603930047107224265671615206358964939350201684016413769305136464058508296188600294415934031670337096786474901536470711835880445743324821486647176062819778725305745987840685381641329808049794865730888934882444611190618264170783260957314010205425636654279785827757104628864842747638623828629589980522114370907427909312952377383412449966066203984720447602541802854557975729366590306767185654751264922692408731153017788982248350870579300308581064228669008250417611541306863758338485735261348409665664187725689719335755353070822258729387855686082053752228262634276138733051729666507475786256476418626241363131711042929437690956377425450836224305924177607428438436761967122424681379564858853039850404530401776555681599536712811039830884669132019323144971390375644893686544058159141553068956662689299032197873974462968865484601088274887096969152985641141486182688157569333559692153720692635416294860961293436954683896751221174197510484973610317073364380180815586961662176801507239134915568972708346204447403559125138912949346634001967616759004721438788266056191671218796359719565467096476607595253681037470856641377572868458429307780745938617992838258926350211164959459875331749115079007695525051821576052276261984795065643356693274140056573517753739285184282959835852102209524224213176570900987146476765163552129068918994993896097631860543794274324383859529209844882594096013168439231162175150022642293655385709631375017749565524989553727494637634780510758876389452484927698789440487465754659778685675554343414042098326403236505022277631327469733243552587557375329036415090497267920174921445941517404373931951981601825529849931491741790455799912012589329725349065485430606787946622047769930574404028437728642705602826012904420937449729484781980926722223852372342569356932561556924942364044640249040880469696292204545858470010959200426170797762366810529727361521576741592842685597731767500373764642878076166335858222294493058912619142160412922418058538079678445080101631225521532662627108172332032397977134169349452486857452628322078873834689725800903495764692703338822649532980048413192936656584105460561346054133595841214843527184368688274632743925682994394476455294035546419609028303743344355741475772999251536098274138433718860339712800234362060916458117959143087298056761790044667857507804464908660744509078292070770694956720721062292546637756332333687841025674328511124294847361853834090001543954030258495547645490706847748456981487661284328873659873225821866496372467613769841000216041004993561163576994594446290470400515943054556189922959755602785685857571048661321494295900204548742477365883024544369335010100458554229013799714348353087247107086099287733169202061433811160096532884573940014584609868518775496151242258612668801325806040939394386971279801388681671306520402182182013818214943938255642897714409166565582183311587635298833601514171288331554359868697541728305500129967394031457307883105307820183406222705473961539747829187008881638423144297049893600645682908519390798348995480218743435824407100919770795472817212822725267668747653230416437960202907716567175242040349741626006880684145682942334879353174743304976870005123150721157457284685976055266343343857655796017644485472378734159416079474851166596618062537236858613114040144326864225091584509993424286829760220307480490826023189452781443159364041151435932554352763163843796058463767582434209962085257407571196219810842333695972136278090013317167794157602908575423038866349828885523333022626607420652210196555775340869312323257971339838074724062371008552271020475662154320521873157279448236775521834691686348457549939686381579383058103136912766429444259707358713742517728449365891805320508200443523844727224361520552636278510559208448452550859116790292243438059842470372908424208049098932568589053962155246296952811982280420177389433287331807484951570335880308012541261730400712577192360036440774899562434788604479236177467410258241451585128674148915113104102679951242592522189574766690047941846923404232198602778922836380329582106066045178565024731217562776520924947283000608167103513716438065400792889969094221819850139690825273227964348930528389620074223334370461432568910691269740566733648372523695566069282947296533057220296904892165866326051358128189768816681070033469958735289841518457311607718748425542746314792383189188689053915610452399108086556718511222662649806224810741833921561874701787215509489479725330680482831749879529663782684749628810981348361267777959522661355664859766560628354651936605735733595531212179640470313738486857121066733073355410959649301467711654224828044015751027750170587852590848555772809210520493768058602075733507501467789822357891629276454452625239604799387707615946722186245613914133758648844632213169962993443649208088064983666655606479368187310161226431978321085787198762166370192444777069478764162484678311348551911338119775607586775923175495492201857670509162577741754588038362788630217228880630266849696549071536579299068278084297062385021841406291154012977439981456251960366436298572276414879423885584595800078268872002502962683348928962878302160260782623433673146791018870294445172535650377662685535671550432358095000148102276477044191869761980113113692227164982985983258947428076488915863773732158453720812687587504006946984942947321620106216811086047095892588255691763590127390365210577138318910587706116326992518461736829648679975227153919988782338314992093210863080182869627414871911132907512845214344045698958770335331063963379283705798846969555177368068878782715338346717703777492809897888566600569959982693116855896938009777247244792970840937255237971893592567500029208166446036348989112963996293978714906154292261094439672986335803831739328659523531026822348359621628081093317281451267081061057438901426366682366833963406198906581861868122096259151270284968943936060169311523686158931897290377995518354656646374200297762780171188954471910641042707929040695471226747198199648633854798178113690505339956635465411557647415027723040576480343506479263085108737124792833856587981677689442564587666093436130726142169352368982693412136709056295454369044404747469221763566287170575177607388620150654126789530404539188794138693780599963446564871758867748595030129860231195517977582301379739602532454183270361148980149127160093972997035211005689867319710375632129726922778046115597064478933628162802776672436526975585233120747186236411010459761571992021770452223021780064180922645414578701564330520478247781248840112013155767215861538302269138926284466292819076594930110189071019203501638591664276703919466704206318238141575576411276862943961619075658391144194090726469030417391539920443638112949461964544450580450208562135831400932760651619296385538415533333039333420322689731401726287209023404619727973729909439191269448410014506306862769494606174103446332634963376961811864373881767865443325505622219843146281518108853719652818172518881190862196828181351966487459715671100700080489643684857670899036398764519855646661615632374395520738556620249951583287176814033606909909475229282812721368931112909933834068755940768228929064687359459683807182666852397419562490323030305891275310581698464884251506285652758361291503674901497827697575262166908802132991768781648342403168072693880834628864149677802595258852976237782420965463961298594696727423051982481706408284850163938093972593362635461473246923312495556222721023135082747638933599798898508567310841902781626453988937653550537419676188301789109855033481873736256293581424310678832178093636204559307918178868671765678260026501267144605568751713072142093988053003295772831961235213489987196804430746056918843905507952280393934385343692647647739281638222713958189098808545170473265481742062706701088536330007491711405764131260876862308463912326477687648027250099234183291433728040055646698471495156423616267835133005083104919748131399650000524390560419947972338363883062674346515915573473562983144679607263081763658241711001414385845136002696560141759104352237879693280217942967945761199824268297560438317783959635362777182112676867074600852285158243536432715171285094132080276626979773525505113669851205350598071172036085097511200469966360512345811446378871864726756580389107498294920825336942070090730932274743394315422753012182495396737052502005226823111539280633649552602657145066532500657483378890457218233592266404283554279019150477796691343023004928778623638946579279467985851043273780433076717806940990964499047988982389300552824324647746677947617820786238322272162419404256315811896076313718026221978517283678905952952881124548659820540281704530107498265189964446618916463627690745621400141321893032656693426749407700271980797050768690272888416426021538462640306137517613356677408533923790446912985148969334753973824549630576694219656316846445800284243165181941176574771989461192440980354171140213746834025059463979482800320736245234193563732075229803174426671867956324251784954861407609402013453622968605032276500968619848171188355024453862078201073605523057664555546726387089544277693822843222977269765647770957672717016685965968510093517476985839889888690696163328666084844807662870564684169029268994560410056823434004311925078149639195242703414921559466612220304409020367684103767043927315397620650106529050242304872092957225043757551221171637013039177688793789304731437098844030250002415326146004371886996616133339851906345545768394767925990631299476103320544601383451839078272798471363406483603758289368129346110998139317639188770260823286090914062088403006292432588408789001776385178335025185980841406154290434749781021431074805042712199686273407277071872067852118674300987625031607248888076769812940819821207463540693446659358254318532253363584252988355473004617675831235806859398896874639704222073713808446509295397789129280777435289083396843122741033883626944089765036834394213562051739664914316802045159503850851202366540248875350830434311177779751753126635167963634178426261777577462652687565484652350191082688074645808548288542212691459507072098145013216708247549338605547782309995849151595902569408604108438259516870042440863356256163214446802214773817762452062789888876939033260897583957454539250589681746099372280913073873249913001029478216296101820125244013969786291202557041329874096718391476506673638748120816119644297358477375462863951125781613285107585848940801705358216721670996862386047343836261960313175675092131840086016084675268344345959589663669846607518157992846412226194526074512925320233463952166170195301986471413959210287014248350366317192168465663119685687439853924655789043950440065848430050974507468655478511751865623621328438852471317479520977443461306433829506590001808647424152173152717757341698523603315482407339792565505699687402404080877654300659228998405810367765221190207976799528124962738841111666141721759226635768280795620323311685918529867543272099423811944390359549491375865267096465691938421455245818328042075788435427652243466372114018010465748612179297585698918866317064748170455867067415595698005401844198075450515295827864331598596835393093660353082791847928771365375396880131179863080193813284095912187009909949730858337314596743409850867381941300801534438127859488957305430585521341423146100850938931910229530886998664859558913418233520204646884170811195281129056684010580165090457192098132244968405819755602142212444212011436922725226987094507408196917665496939261962341075004509079884892519062074363968137073279246773445926116011434740217444825944705920411811164669916244758720979247614201523296871700851000549534274547027313370001613833036945388990058606773897673829823186474036942885163784712004580762504105654249289767800085138271877443144146996805517899110220013304991100512281597831015020443609925965082698724201693201731296190571801707595463686271042829079142632281208128936384800306923890445706064258795254889178011691013538841781473340863211116764241183199235617714597539692827277495654123974255114226519131589220289520845013034425623810960859081376100712386228772207289406638802591015070357996813522866017629059442286688465194570896764769880640855973352873849283486577300963930878873096037950143073551610162964068791055667789795674361867667893945675256999205379093030967662933858845885975079884239104037979644654655509398263603134751455026261519198901231283556077262789894698733963528895819924094226012134383131467499564861868633065811242212234788360159754620754618725275517779768752926880602943449455670560249321918703913106287274220401466861015445124924850614445916223776200466311248049364532963910345389833505642608772408822124305444303037474841396458689908946771706316708122243657633006192588444209160991881566489606566307598210576471468432381468357588859382401137561916981192826907826867913421095097987138201704880030822520949334841803159637231154460207358326751414859979530016435052001165067430384338472686822219846867997530772530202738861693532478310268260535313052322312887355244822006040261664471175777100533043161875219070796968606434320256171380530519992097257310844934103676822006030031241646546817328420151851462646565096099699881181158525474835950334558711264372711092117230575978077055829202910833085598803224300891690738339252789430644437503399758745344299607416878670998158999289401624523636367680671067171426523877709361966264263419652496700243396023345982265087697724080366273042109433672408545736532698940147219561094788101607086934224006054057116937154269368926517527397094954709249877038611746014180670023157631645468333228825838330042421638110603593458251817629922614197111025357366437372276655450767405687291726172428607756776326329338016530709872198786602495680740058661948444140668885912956371791083633487262215798158460380574003718956357159100333189466935840604472103488161884857119292421034664356380661766768513245423639293710103540360030762208857924541690441153271106196528886372009099852946029671255378608667787724945029339065335336180567540523828760520749330066192915145437796912365247440196290182201781858929580871265662512119659437706487472948699855958744283276430273653584667532980975862333533675564561509149776649753413074923601317278242014234020396900788057574140767918194686555482101419960983111107807363894071844981440860334349195270187974375940340186940365551827043545678258468333809262221272011521320470704873214423974863785368533957501658882888707882347386962047966050431982176295234549724293672619282751193911228908482895671845861541864783564226127180372567187519028702045088745943767859876418027766610809946731461746023263472566161748259944361803940391841840703435938989184094982972628404728167239077423618487070721742351674731167840960549710180210713164653084310853963196257296079860045418240315859918489899959133733783876152803003631880341694402575209606573244600565986233281634139447317167922839009822100855492389348999574616487894118436699337620098960025417819070454202097167286264222012833660401811657186659517500618625612743611866134176291089282612325585177751329968109381199594662952599380964229670772554810097095096517780701086295948184841937843549148015499599732104849284257883892001854157050312463077810265017597153792583895460462542455803755695276893300617709756724756722576491738597447108669585064880960843530367539997352967670814721507616641100185488501452209545011057264745345639964741247105980028213643208356939677381322330255636218059616368957926824860968139172642318218327681483334474369295444155813971226267948046737883229451297058040712334001866816149186053383699608031999139614596511658507863061695244161788547933203584319659647411985383449892236570473243161868581878507525669298142188834804379597359603205620704264700303295766292136441089646048812459016147485166470866349615474453271860396211629982527434203132685040685863309430556463279534353245478009141735131263267903558239966152525612538864237836977492153542559887756727965031036753836541385643521579019302383353896143467094002539017098046814348912743700002466620238909478522892357948410290633585831023007010943316460027712840961902433967380685747027004778428895571058729971646606383311196195477374632776294802946809165224930269465175794852747956894697007145010242688824995809239019444505203829508023860001393981823689100553847284012464459659491800353783683143200479016280419754643244981634372356641101116781053168038925105756429506757089980417189060606911237751581601799259790026610781300461687464723701229068624128940921502271221636146685071027041499975158330233230979433577149252537642414043697531017171397548791000667413906256495361799129762405637115207282797135510328890795038278856736537385234596171409393206749967293664302613310628337444837574815044446852971345294235638674849925257648860118735451826547019393957036567403962264453909123680247891484143837603969019841152798972476454089292430844209605056098727258070662890045718751367551997666049769915398217438392844583853913403345254653726796100445497136272973220168749099017983201203940111085965039912100117189302628681410877107291823852422636272906401570003422174810067132598507685063729580597834931690889636729423278418170771868626361154151066076900178743503895316745903052536203904401037618561616757509839161986177721719604718535218971635761258601646045300599343680006456780989366715997150230711388799664373686747449809645224012100443020550736971006757809848997326775197428772479505750026159846427355186756504196485334198399096393906559273344525124038353822700797450231763360363907035011684980344028444380282704024489578479427989053113888677804773515677740001618190565238671577547447155668542362643022066372516119890801318951881981546689271771452060129121484899723751110502779354199925110736339766147782109964133552009226741939479081212269283248662243185286876817277451522605430531200261889474515625984231870528579387598558645927626400516067281203814257820274799481135881321926874337620190997648191076599455761182893236597981285806489881965005741613217360547465709288750354912739579320767617810379099491422635764384932837204316340831674605257668717543681328324852438885087769687112579303585163936644829920092442416811712869440687009181849806890035994629820375964326856205900685802194209229160274706493957878098392954271578501835201763590524641776544452692250129408941780360873394901281970401894945403892042223203901611830809814125343704709366127768667642858275135506739055041178021761490252614349669658408896263231514355887905621599478526850953743739081092637999409632429712172767503145177811567245364297391167691063021395257235167655804482447981495518880176481358613825461624999029611739572899766725298960990781744879159837719918397842573554651040964773253118876822022389176248576598586465304578482388809391129288322888830103642217469361722597764058707232001931135646974293997650760944240558306018471787424421899772547149520504729678860511719504524795092668607585222510688236131998817595373484075455102357694324178861935550379625384531252884632641641559588231140453836410393919319152906292526492521953439661236662472181620641892739423468139312454558084044872008907092965565039249834970870305071660972837089633540101718844521532561722765507254525212761888987591068134506923418355773857194505525021334633739856001674773337043423909948026263386728527656853082258811702930168123896421781570857880825351619413142291353910502205291915243884428193783652401896951418884593043903253611643464621559611696873478626274777953496018920122971813595398966636167609088060396386770462442063273031023480823503170567767872090260855267879299889690716377539245548245540861415475960977268893301755275623113999409457596773732169058559327643046024201734014735769987931949774178184048557164743779358924559983067761094594637182750857293302211766908392777175999019216281024498857492620218581290477040710718631116015566167051280054058376163252067837184547532265620236581450022142424930781674327791703593124870567785946867290186581527720084423174267502432317493972807554519485592897812891158970275641160133829941244675193623565417057592489030526145036604566414619712397524614685189642671766216429325498432070273312673442119885613506931861443972080471472220310294190265870555858628027731212040643233192727755317491867326947106603464731068787601873251698183394106984159345345757670122581956560211360749845254383040315628186075905915446823888905588522164575306338334736819038571395746443790687976191503056274284598028141609179114423984795572560956425633273809059546368443776821226264122718161810135201245027452939462414642095649213977861419103801165743695027737306046719448115775461620106157908499062563295844336630714292879453551774207516367789202750206204950687470999377273804447035754083346466939408521744173570368627787896959484428542111326118505266231750391375717625112184026576408324700224299555373593581171515669994800790066145851214947428064654162353631874702284530726787286407082877815420408671193600328203471074835421429264362869547544148927017125748842381366958696024006853999231497614541121257501339619497957674673374870755546908546996291604053704905385266644911027242303156102526252971279551849715614922393944036858650204245188138622587627048637110359846318743474667200052938707726989049743211673036419059181749252631975915110499366817611338373220347104407054480022255335051470862717990135995906838251326852435971472890284550349661891703464816501779014327963789335592544867640692821936326311136839234959560494592603814936926281726286928258941198649137478772881059798793253897034866481510273473646153019758572533218983062618780673357324209645722429672186864518405205591191892756105049866928420640879792981900320546085292206660905427682520039413142041795842132762699782404009885814157690498543772391741902578529541651992807317843193733825864857728173967216249760307069676347562032929505305582937429262336608817604671397776346749969069245476088996890995000743023381792242281003265043655765443006213783237927195562301213984775857822321131990479634708792416704543127665615935555249987231561386472707319579963932482326542510543658874466677140737110323397508590699123240135391696170298042080948373982117472788174637398945800485993409658026251940030591741226295234398641668756708392784323161050548774691691520480224900918084933122408662250138734490112892165859121230172272748015237546641421824191487183283820218213327138025972562607569502255909039812147536602687641963855637230521342567116163772703822752587729911282592780146684828995941401877222820465512339348214313633087415604632876895160550977931453149212653482540695821074329118348991989424781373595765645694904320129342754963157945906111975716033775633241851964532898934732285780243322960836501207794723955050920756374856457811283883736183131644335168152468255308623595221411819456230430551165211942033196050002674773457122523946581256055606749133430828173644794813095545166429653832833497802058084919567575170892818622142930883980283531705808686643360692698460776910515563452160307559608217404660360938531770967029368184515978544288686964884340351026755188868027714970850806630484910057206720349079659265100385571408936706676684315703924312405491854830370463747096376094456574803250385180933121585887263995345340758243348889729876968444686106951105768594794221463501759436027499647635434732719861445657948081546115766570824726676074694522373506941918208527963780914139347974809502535366201826062072626830848824044150165661080767171143189421710083524227265057464779655857655432208463244823678814181809091024030020314719472198422491749130450656545759360908918770213065233734176195677344510871516375979377076906011069351047091135111710516870800288267047758296324247582379401538196528375707229116993562601444549129158168660896642436729422921601968918485835217352803979126789939089293783124982076067301348092067899253188661095987295061228691467654836162072351002375491923309207639948174191239589319186887755848817094605460576438896986110756529838437662810539252746613218953689667358846382274878027970390582405775018349483258307907070604431653275232036535245695175811736710523150876930630213352085513277970909527179992837906588322330822546717841031728262631442456255127747207081062636481746733814775046636449373149278585289982482765658168305966579544338637314910792345638930616820428472797702975684680816008112837915839282401602021799998124416857292408567017251352199965683378305155384019563130403282598190999943957012428991000778356714971534457537143906996753301552470747128115367740201952958422147432722244599233391954193506156053529401635258622057423748874159540662381468075398077960410073815934493511807204960626868068317351357731492497424535149229768067447946171253738054462010014981761090485141952478297152553091476507361816897908032810737038315854256599431736351378247852365966240440074318475635303799458834779244906930915179246437269891264370170459449643088825203224353401857453231315402030845551557502807016189937387348830331619369457466158423383709761010944290001680965525712822338367007276083018115569723296582493079544558961859488314002069226336140343148076405396176065573828043548834545451909475722552411530779034380699879196471982631845746510309858983159767739698846504972255319299243993394996845395549154934377800609208089468036665526961366464559468796447356125896659768396024051700095557248652925714761885170159838224368911411843891520146310830380661067341114378097109348731792058525900916361419169385679881865562195286826126290184879691891370278178596096210812742563545506626103857244438642259299947161984355319777018864599366991127773420538979973080841281125181672594768846730225360298258031230336473369041691603653739574155385943123967192934168715450096252769014175839963333917007860420526058295547518171813773242179569577044751746778788655989633186330819558204704604847270286705470824778423823327388942699823862309383668636835360596242608609078426207456975790551936380700816069185149727574959394540907194993889744159601849379565739391732389232051765609526143618648471002437720920263901017174999917339474062681126833215554399714400004871977040739340814439457788639690277087457542123755211651570509101478248501613263380936476629893436967162620868277939745810607708481817348192180805680592313767630215337300522255666134196866512378965445220745729875038135319428304038126466891285353541070252376542919572786213384521852393080638743268365456374777881045225443078748362070525378982546720717787436489632436086087205199372479239702164446282225191044423896283550848167962384635605745411498207298638371234713071576424623871180294052601398579080235968036812128563663753050057522828888715844663399237498114161782194307977110987205001817749520014168795297554820217851762855749816139247999860904431624483339905882490106117394141256611582450821919910154910048027556823920231160700834191733667825512114147185249412948919897456460209035283323967718583108302137542993758757128983187469889292127044248636428116044200275132260897627761375026374564487860799479593987038329049333097051226121933858242091408788413916829056978704009016367766549204719753965382093608680329589470957177683377920646831707159599017042790254975097626821179596020196722031243766688678363554867432493391213851489789389638099372711989471616991489354949271297773212851961711676769248241021495786656140865348509989561334514187514693086415010688606134396746606016228118480597607166314873507274813835131824267043338235933402350464030107185836845555704711391995905649066601630962228266426091083872208340265050733729800186371729806250562113714028495435035828121937682359659629454724351414773024209720086632935729720497926621619277422069960869931077166861037614645114541684718068715955397299322191707727638640436935657268195013801171063861842940339093896033764200627352424455457461058087042550799592678341166718012758005062514973074700635473808110347193438107399817900234362104349661747309443984975866854037255888827061924384688855930684815639480661894420323771223484059694957657285050316386590901360828222428931067468688256911493676309595243562397596673046193606325808896569046172297907381847669859543389829164037697566348290126283563646543638596539337340358930798229687597924775241218679667479578284092940919290753543706816430340402033549243476260267936065310099251163597301274988564431376559541562788415599065714304237758797955244658238547151945836546414998740572743770694762581738180162079962401978768658569198336716851998153708787042868120653590036487054253668405512897617501701808114457483702992238173774455816685545815465409792395714215608328067969045548651601473005651819646846352651348766740225765039817055516934470074821580601909235557421433033207855693362848447361840360705767959459274791035814427612463240356938163095490883159838439458425044092573570557884463627534592255884581743880845389802282275247056164736586848025839989479836244311728652206364412655653328252968455669628513050493268497841972868671197510046827438533747748652147853568573360026276543081024445555648073786623001645319349067061972888867542257616565874959200474154063418030427262610636273160366550183819952680144980269971709342970561689586701263270632434130223784674232145596800406008827474564450422885651809907323511872109122122766963942734263695346817172425237456240711984128421863929596541898130108289184800250656141856176820011402375468439077479456128244444780398492918738985432099204559524223786475132767992316060924094030147567591970083997147179236042655686585488186394683772169596692894245633864335784104599416129221502136046113948693693745000596063599915559017594333667812746890690533779810231083613412351711515741940351444194546037590769109127006012862142896422182475945851164067776161380126594129840323637298669636785859009680340906367065217824812452735416676786829110004112072458982897793009445954069008063378542395930132590740502957883110425801876404349681222517592678582705291386816582287215481267576608340306773156239826090367596693644922458859117486723751255394731522771922078134424358579865947017590328789200559724519723253076946469127945572384506676428281674608283432944453126689974250962803347837973827852627184789204315459266351856840703359212196916979822182342990196102434034500453466072371013211839569070617647637906260523475582179596636084735792710634457294274405080723495533002864135006776311686100405277676840430161343367324019423050422338121926400402077529622390638467217971642545554408417033721697770516843216977248657412428517776783697912088866747497802214354867608059274839879224771999912337306429347949209544253194297320399017107144572014997394220008061257143625861001053928056754985717693759033498204318563065385440854385049939786819635280445286286592081008666406966116430995365643168884434795555055291911363887339444048440565929089692033073709934899784500959465421213097260454609606551856767063394749209405150907009842279427648774353615400374535214689786445476543141059511388067478502824778069733412140588931352786320303224960100169700142891601117608299196189763087410738201862581836784650911814931293001089809000212153648828940996755869804499270992154881830924241376676407522112499125469307732422241212379980206540825401546261732646338612629783823808140394295249807084986818771041327384866311053972227845595486969814136577017765225737022839920519670921333002851923304488800279473041738327253231707531440033074803520079136256908925693777554770114663111888672770549706120280955878463309285650264800642029462300361115716157213033932745426831981012595262088329324361531244748183378713605160733934381680399307808902606484078289966133108999789437613963841907237531800745620282212808832942178155068361049783234123463596803943806226058907924349122943422543117079556788141630939495211366286629020911739095206777566592736413749318800302294102555653583507259204309966566751773348450239563155589023320162506940526822299971363659528678820883547581827351416491636242391613014373868766244683138951519987574747580717359260942928688565228992773326454478299994675255239827865897731501814579166869075753895265698742627063136285229082330311532326854290250587819092743924777496023182504659109571725995885211127796063794682866001150201048295801744782969866182601870956803115541046187671620162854770781976395911662846930951218567933921604045105496357338417081647473704777583711763004319642370193029818782805041021914498932288601296931958672885264373161274872818775864643422040671378557585611297730722968152125741514177193322038534782180816824828954482001768035596159068554301103714333720655984103976677111027900233511072297468349472901534030112594696250922228869330166865613768836585232222236998734202644081633537864175605934730654046311664530822624258558016266932097204938388471178174944952242664652007434505281798176877197719755600874645218268600830423383988007030451730286644665344081954988534650396444381731920301028759288072330162683137606472669956683949834673335320086266351574624805605187369303787463289837697082020639452972166940764869246063343736787888543447058530401318410497040260977005428369916795178587427967794895736229027341254247632377018076324172730770410122729762096124375142352326616107235108162048239951013613056812895178011785350711093338194555835041685825139228814609907540699564659691375758373420370763252937621228785988292696784975364588409334839712831093797022367975560959253778946621987746849020135109112493393308405153591818650283925305691559443807485372697748373839203680818467154665789544542591908021264744237247160985367505995184287972000475155048846604843657999176059508649233955070893197972185374796151002355489841900683673073273624980649672383016726033425058511076578423990084479100173027560634626500165240016662441320212301638366410405289843348610307486740403285967301241112162219403689434169821691102029542359397709697455334301941512433744245824232599416980350516808970495837312171898852411209374572350732996519253258360367382044968416524331994243371514883695014422997498768575941143367631317765996240711072912800405707743799539853875618125804115946313049231572158190373336578580690852313297633408879116157030723742578034876748801585080169013132692540329931704318865654811998132125787735388996836850216903333055828797288814411141871180552798946617209689767289625935554201290144442790669239308559555074153841894530014728709130779273865261563416227941657415222090498787380949082847153059905848639757449364801369253597576780024751210165277564403814740813112097371631647277000327531226786716572670125165669290849658838467469704173786408521260373617761707887017992672864286836892463981595402903103535234569832205309439736376761940257232683287463048094205737043252096102538390589343519589544215580025454630822823845520126050464136492522530687178362594085918689374383360546656117658841184330798854583419561378775898453663465230873600642550612782717767348069532693730852706023696701936969913852774922714098840174592301641082306339324388040474361713310758580914088420042801194753055108472137130406826078177018535576659359358149858473065010355029242486364968518678322960373607673401312036794817742313415174896985392941934431717688748550410818122472309395204622835584475150543397138574638234367336448893937446247223522134207615638399688175099018688925698447834805575774372000000627143870520445707052996834213249377576568727957569294979328877197839672232817059780577474631391654816235719940536222928892508627160322396607740633557886482958499264274737543364514752689164356813432821086744627364585298320481638118029670221007903643718972885672023702435224351728047218965829011922756662086798087072928214484610679072904495611745579082275340066264588968061456089558616580539636149247702993903339506147437180511172130798275659104861493429651762130747132899824845301326950027172671720922362397929930422311876177673972979574063871369896973044574139547095302417784800530910075168056556529841785906720826570317312815897637031277416890029207054783336113316209688466267705310006514698497974673010946029483762176507959865855927746927355751430576117060111575788513723434469579411731489974664008016418520952520575948312063474477892198975239796107232417014074204565384071594642642803838800756680794312694445691531780778812347390882785267119980529861223916083356630671864162675922189801178026400733713548320466461206283639128240037936462836433720163175451834290469145019101960255532308374077460690936232316057973987176114635524098520759077232372735656462401296937520133977240847792254341254989603761075373468574633398840649012383477121601492855768898623187917823541338070287912317583154748887560535307569722006934312949701025070880164581839791274941190776894467622267524210870567457821723559157478031122419935552193101692677081615179842320106990293517611602256148411903233494296879702927273618149263988425399770594314189789018851518048142497806084273718455732052841023436681327240063811881974319043241475678641791872297255905541990523833815813959328941129311683241169379773519966205224741282696814772863592840042187749059854919054002285573440086869989875133730287515401620690598884811702562041999077671979695149658526253864775150059282479675735698073920230143220762084463243507638353215533050373528155660341599893282060657110554118111513374608477073320834658928610402803637801731116921141401056717072281708422725966512391060722206044269827764377865564576988616663233585342174522173868548020367630235170665804973310714822297652586314599677653122756673042368873661092084000306141952639403951026294810655646814057697547625058177471303436548569022388381208104442297117953409165148104871779394640695542075462717770861032582427514767859859799630753461382076044850007005585588614984047804672392788737826707799670195117022649537934119694085494560849751672677181609777193369297619354479165845270973202324454080511484069917292138220398410102258128538694279921762825914120725489387891733140288320962553186919409957774170921332695217299820960319570395538524327190077307963738958588025753925873244372833336231406635244421105513638530309533527294054568844333041403381570453294204753669954918862196328117852043449941978088000241648893531557649397101298975775302178681099377670139272035942803078033724364265835516187283599550540694928012228966611134498517781608251457502956371738621954065732426240688298126360148532501925220191366047652180461106211238138573578557779351079026818497172440508092398182725725815782115182069068357764664198123660495868949666634155292555164852952399857838397048831850983586825048166688079246853628241837840047636871750317700638495946492530030760016443804064479387292095511691541406515023410969819059984229447255143158170345015105045577364104393933978667590778938517369536977705801010439380938501302240366732916214779671434511520068917900827782121123105623354646537779081966843909051020309576269684187308629737974636165181211913686704010004997967421628111882620126950963770316882722859707561219684564207259486465760078311810132501135809333414330681188466081529448526812207100768491778023295510034791485430843055420510802716994526636366669308165350214604579552493521374672700834852433184000601628536028361274557981455698566887209677796797377001533443268825176295220832072892900006972252097653517704060310758603272106196431222071868722778222875096500768866507116221674646305989436137693191334256180813344843683140170577706825943573018451908235803570341791052634903614393888679179541778130138153971742640080110302873407599988934081881461415755960558213737532350756333901787607181610886205165644601532264541601264687787491689278481907099019803441847110662484267410727943894481442922583772871589924222912589691715385928796521722785992819826783838137097951102429566058005465380876603411408263193878221562534450618511802659253185505425946611604185986902295991726249898181707559196403282009516536248649312017831386607304094578101091591803486067066116786809581299248942017358014018018664133020549133332037411598925317220509488703331270172515537892012025952255657107261562492969448114121648463934883394807606607068753100927869447079489748257819883817020373505069961678798290524881074655468557517039619648092071155991272126957020787196456993893382986944882366801971151377209680492120712222596267868161387471382653150135990515084317441103738810984754365596094253029147320865844142609912784514046810101772082025375546940479063908228175114370739741458890264054197349882681778711128756811349034058793054059541822039353790051932528303766855248032205682123813617629192624201384776634541829391915412606794822433445434063990423868706411456831855157334922528051662362895231532437264702877863047079919924564224219690172547158561513299723588585635679739140490898788057442029074943444988251793249768522037993125368614969178550020896514434843347180514274034602823015683726575471194441304580423587069654091403656181929949506374915286506006213382585579493939612762648196247195547058640509064585809276977193470627919875228679607365047055222588288764240051748227307356674695969052342033562866021624691447736525545019767163333971977699146431561990229499818865117968237646957849457657465062996341192781517894370815018117062635178823991091270398828060904162416751627997299078419686740593566279883587667467733994029707977675122157846474455661087635357402448183720020343383692733212789511626363396417532027093673642948491049921142097401493081166270464253793282078175699078717224460444944720930295296218561941062799814973014086248434320764272459757684594729603194089895957296584323615678544581163855456056355070361052747037085059210677223687757487138571056006842085455421682337168754560713074663884329668227082605837624788000940969687478219988776163428287973431078273926558453505574289171703055795292786577321513801137315297258785427940569550417952489547947945333836965734536184934542435342857476395076926648129558330881569682064654193912160443958598628056148533440250022013610043065340631331967056855679960268143486058295291442902759629096762924178874278966157091530930914518517924963083397911143546436522127868296622247023761659158918579095192422522289301038732278750969741110767382218825592759990797054390187800498808511889615375232615974614906136020687472243920830012825943650512594258065641322314343621220454041754644769901939331197731772303249758106019585951539665097112589629001604977150610265979184500480126729991421139092372526444156381681259073371858278362732480494091365857426571844456081552952358218511053254997507955792102560375998492254462704852072775974367777377061326225372131549909824670737380701052051598758269298621935409085226881474090536190978902328601237583214987551231721074613390053710297350486458166277789011761627770112885931267684921694102670062126069732609800074381710748997179974579316851445991760235871660008476361960269779092786759104961340628161840955465888382542057335422997294555836861193558249844038147988966914964889909582025730625900683566691386994607040892238507406265081473081090626035422430283921802744879399456832888325062192450376279272270525596271598804525611062545945669458189038135014769756163852384646944272163979110163765986032862365670198027729273559239745547599451297283994732037246673100276002108816626934433148331770523946322348555308767669843244349817907019368004665515536657763769830002405798034155767438377682891614856467976216181728552306045352536130932171485538288133945526231945744955136578756740565397675657183675452694790196156024279641030134804581699271408933323003949295790238689086025772662050884518105051898799971314970185953418090085009745282807603502830555066830122668173406072918475391621892211037257353775567140398294864073491694281796808172907195300399367854306283273523250080083111515226979293677771985211573809925062164150770909848255797371973857612594286695050194716225504954014151375044936668554434955771917459605181990801399194655442440652858914666659812632578018592282846269293979041336168193913665699351680180224556853093664423424052460290077669172984974496341720498542820940667026868804241318977794595437038175599801598495517200316494987932221253797727892144233431744500047313757178198890492001365670719445874421332282550559072498433620057175939686887145227486652354535071893470266618982421798107019471025199626918437949234160482581279007227647028217807125780201312520878882747558297044093258372237500231068219773690405902567341358576465400149074252180364497305428639355639186386418718737184883078076714471707964881434705948996994264022804381492062681617741854929324158219767591980349840408222122846172160375838491868287792344119134995335681589742692023934553410666958731021765526010980400464800129502177056111177286752651363822372772057581702702605328930218939255616747501593986164025829145399176736756731340861606010533179669317516019571993223951924316863021169755667746777147303216720667664303831676136268288435344429575233943454804376904288883915990739969598095023805179256874984921599349794817386071371532611188631688018091568938424491566218509478706394939780908038732509882971305455824614292083934436652533122625770704476213355653092469065728435102949680662485669402628610522736364404490260768531139010653761383045739203936859071073423574975563964554653189795070509398796341332992833141644961537676732846745201841421784487623008491864052375807564495703365957217238103317740038106998787436054494916003058276045067118782212640259460072492510731454046951552642933093603693766483808321156733751229444636600776527230600849370732447885529052114630802654256875616543840463720664361019457177809542881311025011257742098770425591861827844425977557949018440627859473386700502059590888130150336440495206990386336262369169949838317213796404233520123469432294959342079458958331172983214682939342016249040169772436411941312094100837731273685612457297854543546881233606902585283160917344961907510759038480674199243049871411152616200805632166047992449933914520238210733667224845249122189774572775938079883725229108528966019969751050033617532152586577923946655242945986234568391105288971387977482101016651626070602962391238668785288196259207484801745555096364708552626890246060382715056903463083105427263933423014778767314438163547462180284482404387776775956847708636104241303672327980944968893791951856423562371466712454443855043494440558179889058748185070026344070258988741368708590042147676161035046631819091984055472946486579546027124200554085697363208844508581507803090785915507191368877858981165812995225965849449825191222642052074472376976195711350852713391462490208102242278283746483070241522556754922740210287435821833245646548012189786731591608247684398167092003531588419278886772908373797414238391623064675137347861237040374010833793844843213719513032333586524979969355936364706118145733895057193644973522813648968557898422756785934525463211191472699092770451184689623820866591096487807937685842462347072591075786509519843082048150306441995115172465761620469435824629623822440885303040167986171780776628643395451822278244755440306986192776449088346546651423178307472226756144657780971262507611062177390506596758113691715487885918474237006955089605095566512539537043197336740815963838324052396532846831824185012153678731330824258432226245671073655259339064420838279909376502314549055496848766795811351126336588657361809142257276253896618747718079944869029665700833917678509346150610657049879587007462383927932947944788291275410165449825300148674061923596952737789603648701774882661609338547200272216708087562817288443288278913520358393619742786415183599254801657580995722699348439666508808364465592312276438905320190849870111880723224789198205112718989556974186772273684871657734308399009907077110648234851137545547087177149923163938029403777725313772726561688288810552552634565001726280975658741955667107127509033034494890485857004270926871940727704427313310349019116620394840399749635868473730588694744553160760598912765069430573523871899168221559676944196620413737454491561584120202982428054882304196481197297560084588325615606096541989670102201339565612323282816385888490586168152797306889415701001997593761826491818793516500314405758876823992310524165314275144525982949953323702559828790078158512220014328881640396893716059122883351947577239353891663424775228837351735819582010963802575232464889736820591824159845452852488776974937423405138625236937662182215547131657599244344506371750928884774044790673249127748808537459093983141685298155227001036359485052788557836625763694456811266769838477857559923526064978649285536837706327186251033622042495014849251842923809208951601370324516519457330657444426466723747024147766962571660581730214841656908116085961688594502446124501743580191306000879322947058165064235748431894135216676297777824629477081117617081394117959006831630453851175975805856332064518749949656914663692995324918858934808662920872059795470595800299834649989295858326227031479248885596223909438362147866525435926326299101530265439994866162952294645309329519049246422189305765575287085998670298341383673145523243196230551771267604904783762772204481207473947809104851254496626539410456632586065567563321657210772641231325802385475792689369657341381819400652245939627393661739808329355907525762942029491509953300420905302941458214992369830701584881849779606069608021984908231798863061134809152777545964274585102963002274758868715644666579772991095095032090120111864693065592665743637515618639720468148043681180613845680692285183211320398693011201156292059367970062856868951380025461068756650458112974918065622340108624905764797114941071590792130000925774668272424559144723663829458981452851465729397410451623751749520737359333162485696117173188996613166334724955831731776919639708196353765259564841315462114698036038179159067064044785200719943366438473874242009889649626463368169695757101074896474064218642521731956530052822313455624555575879911559449842331401684665754477347178162096382717158251348177354063347834810212650874724827485879439110370662356805613332980855516007384204238937374358342146804704239607638293150394330948321926049789484883383400680906823469378986225124920289991542103308663014561991445331252308050498539990795868079870220656136289005284148401981195624037500518913862993713376524342416479783296655582844308115506945254093296317943871205894804713995713916577178617715352078652768607244939627294345093524599141788303578858376466176783332805784061640458466463901257147522432989248589877671800503662638119375085411487125475937447523361457361762875633333789942829427431315011718005534813671438666437511020989717553954247374332224482360775680247263879318825067472956244713859717504756456480362757712705041880657882488300835846889386036933422600944089998151606962119257611839748506492585218571432469083725068767289404808932989768860237501571559791965405887083983106866648988773456579869811878818347877611907696338685384372151369537996737034311461047962287905379654420444710848548413483898314058617248649120470120266450767904257969094168264870917986905027435168153930542245415205754943694549476392129838847820939567684776149066505353575312416248116422362220571239081561591404481562977359771202028991166111170160804951441978895287800093505799904451535161932744006916595799957803139210419303465090296870828255093004359767360345642446925057594811660769644048945727554488949475562123457165666535868787843355002302959415337333936898522168540677239005869597190963950853916940173624106591939897526328653107708925890126597214310243224362624883177208866796251592849812021489695402659995173276256553117924448009788348795528037514326187556099563251735174667453595599562575538133101458143597309072418452157743641323675191265252598343564446738819116879825740681678605247630795001594421266248362061847686682769929285438079299343639405094380636297093042018751402134696899411553567969520811529056370167700085241927774591041451617969546614329934766879412590310039752135957888409428112788420703704206741477916200500403227325456475137991679388101498979618848623007321997907634879408605859193529797655723025351132354623851290342179967933557573968231255906596260423996135764493386746501738791750131236575624773666793395363236721913059982042450349980055493620760980212825337218512456499348936636483228047114200454125567360178414142663938984012788033778946378723546008386571884258969096082770720818391897622067451779077573636319319282864696315696796432036099642256678516241308005925695159520426925137801970349233455802811097249434023579562857846479324878839614836069364804367775201003098302804045431324827634160127792585563057987804203327811742975642699391221031335199976331805114905945744113778397445954317459589053910284813421304492840472415598762411755802170087686125211850488475760917229645715465816283073253807765226419439910388526075264101915528420840120027526950809411421322153908999689016363613128608958412430719420349312945178381777313309819510155365843295935188514114448606136240515238752975974930799856352062609257661683559626040114789018344215951467172976626854781598838063152983202870128510128888323223358205092922774360200536217234284046083947724977370448176532533981311497366112599806396377407254936807921393998444401676672141796387571998863070051038839515886289325218384250027544135464331072560290895558511047506398338252556873658324496750518189615513310225019453116550946857432985836221673238032440073058637175944948135252212495574546757220262402679230817995744028521891275289367287729716973644200900081255555541448878691516419790663147698227509077771208520651194413106014378789831002694706490115170245364434432793011621448425744376983202826558088052726818502202215017481297015002732289772276050666045626558536171875668052617781269230352456685460141029094420205231827551330658509570364668092238587037224356366890104746085371139037983687819875741141373068656357422249689110329916539436506736702502404486392650781724467342504730873595185159800842148994692435511955568127423013789951746583826602364992939026202460300533059029437248793073984231647267959657111247278462376222365491656601984119294114409628087367287788614759063912463588758726780539115656101679769974605097005790950847798757001754279607518594936851569382355763627394112306438866891067203858837390604187871753867192165571485119368753212795056684038121647693280913742451067474856995799221967444691750154505693445742814159712964064330452242754844440135349606488177409295681594371336291541211992141309758081461515403033551098657661936959920533481915413490422704828370442430145308034957577696883863320696391551812188724805037014571194401335460019474992768778248589375878744053066224638204600947134541306403365131064557654060151456791461350540129471451012918305160886187108242231369484105187110010370809585789911266772497952516008652988242682226738147396362395002455710656624872159185248895694833947489494052873489069564592483357822171553408839516610623619442376000333147778603491554552366418440852505774079503289243022080495633838675066033301902494273501267250793665511302434154131767725671883319310572815806168190356181216382663120809353623631071299279875178134835622458582577022823839128887489255360010503093860441100866211600656346651733435104023095949123253156687966622930788403676984930742564993716122162105939358052317553792824624250725518121078569411033477733449247929912000992426814258505528186992004282320278610819010919099750491574587950971297509432232563667862928433314257121809765431252660294564755121948370331835144887284670610849912964560336036670123836172392304682186697203373968963962816536862654024522986186492506321924906715956636965147377305552910776110957257966053192868325535523707095361238236436585489387851179906814369688109818263909485254902422228258559754913444692546778201900834598848820687677990835973173775868133538156453263747410837111799634260566899309078461220549981885044152647627359154509054754855402229756552318045810015832716575078081726019802003277373407330571215406815859645019729109512294475452422921270681796107697070045574418322841497055455182297307135488443357944277230282106970117603278707608275308912039688629641845835503920681006869328242977316504996174719705205466071198786225945889439275775498565101849759516964604022789920632737470042718589566902390622035316226065259721894318656093973096004186279059424607137725314712497644274999056197117083389519984053603415479373601888586782594069377922324516573082387613028215938676248462877750082289663062986278528299051478199117786204785042357630743685268913773490780737767542266450160580979449232643297121035788875606345793871532216338167480221810975307457350624810004308236496946796610862049323679014905843294004293471880946318487836503609271702152794655723952961738031136915477860477324075131597976474222301117369268686497877721456000550493700437635440072031998414483372995097440196995394104962602831346678907529048740383257437631734879970532150975721979238896846325516608137185991868939196985371315427443342422214060190382112675089383222577960685530134403097915570050694676600491721904118604277672332845355826863972230056064568151741522816621838874202520496340221554580596935461428240574797144310574413975152186037196740180244014525838739973375431583687864473030333933063177475845018561562305436617158492951397278601982386848872815928245582112771385725275288065066122329185235853368063483727781296885381163357880990613703070581913637252426450579062671340116450861249606298391242637835333732335303076227912205403944423101245584937126698873724621541765933421034546456512503704200927670011669414490008075758159029993833643018267950526987054363833291616041595827326989181668269442499343486159785071379922182745176070905785632055661895905436465361827504973653263750646285566312247248308553720598957673195183409612471864474014334420035399834795141377364040560869271539036690113952095320947629816934326639692927551444591051399020344923319353022078825631398572542245058649169172888024051897229752874486315638757406128313954478710952989501255866450999760737991854831426411304386354967116617710742978883665542574503995249102027980333545866297674731741632714255013674728772042863206316734653194482263038404420160302331862724801179704422637919494144874232593554519052350116649113676149143659943856147501497564218933271703180037475733380452640853125464392663981007498650257431032218417068942900216321448313636235887504581995285846632583637536139663714864447521593619688215513604367871584065591553420116052921227554808452571788501149280702397736973091359595659182787318738130067933378379177782838920576123109898721574474320830518098272406099850901333170190500192674029165808320476436283966788549486292309256630130029560505071342742450450887049404820036945731287525113035445869925244844963964440720477254182544135364137435653242807409817868986467627212344575265102956097416571995400375042270731722446836309161393345425660007882242581911001054810815097764947478428438011863820536869159735994780480316444214573681346407718555606693073873872957186741702269010155847420152010060621639892208116419616108438694730835073231553750197008560610164473108001796460926243255775059154457540984371521005431691174127618239805529597404417573641217325839281252521775086420520415398560123384484036382713726126720501447626428198535417149586820479641016728315682069757135196382097135541841792079787801884009557463318078170750816889743079515910183766816857034919775728674676886298828760588540080092849996157236744594635932866741973991897224530796484821647205505713497159150319268702091491432667714909763418923643516097997856137802460328904726300177439659052115965301424506404315746540525238614387742675381401080639216121579611624506249924074369865773306312747797659750424074114700607663471301219662072831883924100219793675753313540009868985569226832189284047896433148910688381694586774610432716388653288987518343636040778007312577113032444264006514861962025789078205719483825359085504287657230108906612292573539240736180233142239553888672984137532999448464000202206695776053034954514991886604734338029569234994575578896267896937541466672030948626721641807152642530187015869336795048757805962640403407615427965538286338983762751097460559472137426875517294769305068822168325096005731460917050858875743405583546102619043438839437188722281543969439270728133666429337248151994935947781599180781084966322762077119366772366987178551208359367015461526169462866866433210574979632627370388287558342188989080751922409514548296713107383717954958536702752834009330258687221838335768924768146549219084832877719648638029386985073961147944809392810090430297747283383090893700270460538234043804186128968836425564632355907881094546878833665566694034536076093345228546451925840333184275560798144600026274194323738403776484049112785452897572426552092716286040218938505676656755712306092692168221255088824444873140757582848252634181529363823553719090785097625112241447813436214786690556983483939382868366778621324836899717072490689710147882863232897302583436283910506321473147470032778635407330396193080110793578134299783441629289140358460407389072929383807481245610641027857861177151448579026718958733993708658738183250620237492962309543367270288671791513256375306326235234375108995469006883272334846470585219497301016756875766779550114874541871999879191225760247763226179732099527513029472871838783052560243573616543641642359021785775815154977982682413180277382465060090536701357757535765988793213206185893613812769228202834468683383134016324887614175720900196948258076740588961299993953571941517524061468430461220089820450405531958534966255769092689375347503809721144918450011469536818626918784158371819587434729040126194141741352833606149214434487417750096727455086017132626708255313142566198027944146855931539538492365526362447238914322870862471862877984559280051383745340440632886001888641575433170609105128720847932379185463600566289321541554878964895700058735372937025376867907256765667102791994944642140953970798142437072337207282888790745434528135274635082726540413171633387065030826537281507785121184732332821142949986781766327606926659305613633332020228100858946543951147684956000169506393147622486966641260089679841109791916894255908362570108313620924165389258436777080229927650025709619489687634879992886867410215953421740507271058774642428481314771869937061037632540032047255978586015380686072153568760673923886375388937528141248251264040450275104980344332666226369099531322758575284254819246437183928631052825901847910536901318463125535369215051156751821443794791342753029265882061371185568607949581575021294731798084551726933823399738951823075545519110972747252857854100377905327285097866190600086911555476260976938544437103255667221881262918729397966064508666054507185839691010452975297569024603880327357933132572354258486243757548709470484617512315325611064062941344327694588586829571265643978638083437274909383215110576190250473477375003497274747649403034996578781055560841536210613894283352388026756965489274482328895463157872136992194333392973089136126676112393316466682599472991707018580686049644840065385855621255694013289782158572765098109179558434940536871949608088483430593988676630239973029339057514548787314514832695379208133719913831217245475448809759445862562283639574573667110576643198611741923269992185640727168225301065226079109265577507314330151413084419619367509191166255326642509696501928069029562682844765960575082302944262696539343699838095535966008064076104965496138954381399876537646880028605175361843339907594346538986022921581910901118237629708258726511247957468238976066142032033593290599841184760466449357159606514152248981692169308671154006678512032185479876556966305254532062666021261641075355062565290410760298781887674088035187161840774546429163469516314354176716847724752772220360145549370059538238208072460660862450553574192038728373288170110997959516542283027468577482606634420799288983316932268052790599792586346538261281053792373058448871477385538453244733141917446738666070628211029249892457286362782333967332241005457040549679576088751085403455882619271759269028607601182937512990001350214810658903348595457026721589987957813875525595552875378118856571669000179858355836737301514696573477330694878443248312776532900956659286386560627592425388039016576615087107198733263237011238667324538327429417700383342475659962050476002684327416072391351049367035770772573981711262341091783044483402942352455158150081526164122693975174633652485833349602404965468842762277462101625354742571750851627684010412192668268455049992831134418368983624055397296460667645207883436422895993679151831706404126667768454426040849724820140269168530197683479115732621314545653985110531018415534967874297414566965768148460212377627855240777670409251763378843889457939231806656005420962976408789855013689779538650952509418023937808028633821434370847374323178896070011153712936437704286434749272246089456114150380529693636830019704588006828833867858774395705068034218431676726540651785937963462943744062666731178786991331262955389275895137179607055230410564281637811092113844716597498274751415620150710711669847259226530450296243343501142977037151601386158299038092045017112321570053907224427158397096091450647466800979187064234248407055324073320425146509928640587699908854153558945248564000969933285176306542687254475623227413531286491696167650222701296103648399904235454794600350586373251839725413460670935674007300697576799000072046261075442997311279231389347680124364942241485744126176059338622483419934219081744979875840799579873836251963360464138730433595718477607735115385677262851065535409061163427275495928726850915765856664425529017592185608177866399498964470186314509224778153208927002509034297001174653640923872308702315726877871787046397640663176105558611232132437640249267057438963428828542212793635795335134432801944203880988472764357710662525580823156429896708123989366893514842106635633013221319566433091420951078760218834338598606569484884517477845001491850567844380074573614777814784751717448276267849214474949853905090903505132399064850531758208169205676851012290321100635362929261528154827230103380174979593121917855427645663005072470590935442818832080472239529970095003278692307009715157947554476677210187998201025681185816081437787639435662238233350039320171842772023227506157666218531117120546307818238930724792988304172332937079959436304923696328542878672007598335451213320124822008029661070516019310516422850254891483033287048568861506294434139990691243350350477134224955515731038013311511681569832864003763579642640092826507054348263012067158282496155831186420485159147813635827080844690265735598440447414640940312392676028924392909279836072109887670807414996285886378636763462837626955580093082568682025197310199332381513275318052397452584594193281839301607367467043910019189389429493786295060259743123022680581755782407136653394839202183285655948765490125209698454609037766897650709387831612841077643397693787613199555858418196110367788697845951787202478366393160924920313317103107480602297362823737906945925175835289690465663671288965583140809398981726478621693505544872368272715142175652795183743831058006810287412955816023521107338857512981891943739769673933138697982129283856594603327298153210226151015828272378065237610936832747762973542152975608056842098927556939319426319527785646020248516941638268789235655203362572623825508009104507265860848829008666451978377142761041051622319489919651511845708081245690882850267449117048892795731536941690713828278558018653186652170291973608787842781798231502185024727914846298568457717243917327007202430379437213086884736402322164534768565776964735469360187064180547977894944090275919072284093348979265427524180170740163289907191821020352430047154028416959876438541697807202279009918546979085982111382023784877798494727839389875004053303971050474868696083974056134507418833463649129987033631517489366338135961883610793636364637960689207273768597047496369334189663315701970972173540447692268061773162278010615961843297373021367016719914838144403145125004388697308934822067159101424249546595321042256052719935789684178320442528625276135813045539829655039993890080348968101009024907618932374506677459307711497699453941241334275628751160600884101896131859341652299793004664198401775472253506204578533539620930611047789278010486735506061469846691648869040714028568449360616018957735189179099578556022376899901060439807627783172136190763215147898113704700746569554982270093721682320123045640705053785410145696901838881867246292899710349018071786712354893711559574497576619948689313250556845432040682454050707474986052236586926847809217876978768306404619802614649171133883947711243855452241917685799950451533162083821493823670145072395702288798084708335027064298575113088490662283049528284188271223043959980743941363634197058445232084912293292005834240115059451371815673272364263289808879282784251920347871394221181111743368908302968300679331726222673501345959126167914199644369191476558014166290626412674411601800195933557965348569490526398600957399101063015222140432642164205195111853451656573293353691473873388817454711642581084334247743629233892975173845195033082462027919263622660938941625875516046785766874177272860085505481734322881529067446830213481562163436876127735516998110947199632728944496429113722473482957142618412420297027362877777477321375747426368331360054553199867504387792248082548221328743247584214683330504615124946914183114494352805475914722253810564309419821576135496696678004564369044154660633181937526538365175211530403968729980550928347813845323812280696713243360366329219036844535764669673710179420737461542694688202839766858133993322158982680487269730536164761057280633427165987357016243523670441259950187865592940308563586617475365970347473802440415174713893462083061791856910206846418448143993689714641975799534816842024845432206865016306624873703340039296751561271064451689520889674844195336291440129489696320039735769455408431423225232341699102021151809561294563176639259008000016226438507957596318226462514215361769795846577781714617498332130113017066585231566571635560490064349983245227422333138194633383965901914427188649613423596197792921240761702184575162601575872735769182823641926800564123244218201041471604008733716819584806325104455028129621580346785136046599892849761173962524840891573934666160512726101943982777910082865971309522058418458365808374063710044458144079319481172415714631563468125123168492301391975339903105685476033780762229623060785536018095394788541839367478602757401502404589079162887636035531500377580711571444572834763526385025782377641010692109768177667217540334457983586321528557968406203320130493829771888215398568907228791931939828339780507571572497332424239835663122943574340796619871846014403284638882486654155383851115796542267571245468993822261047064373597387812588861046680559028934339641666625057450153556641185564028825991190876517952444810191650406818102400096034132293752237217832550067163188423970806025390849520540838687913102891905061061528946241456551686976066292438634094297436411807356059461864371294782119268638315471096785733590362188755743222688490358066832814630282343357374415702830449967190324172641453977535094011671886901232678573810737908635736711279740721073032719967333465668676424738882435639190723439911872699525574484849731776778256573391694786005333700029966655648916370948245595866338841142713269271974303142807168281511426594917573400245056349621760140912294937487978032413916122729229189471965627359310484042067050070198814258752285051037529011237389683315914754318688112231793842270368494509901422754282699943537476720819159409643347149515565577659893951119185659945134871807841683664478615412221964444870328581073712500500836311417031897697668055230168137882876536459147228731980202883799019882336063920873552141800850769022359768126421274483499562729503321787773565784933519661418307097517329813781327511052354783017222676717009336649273994168066519402456146852932251579989644101622301281799030831622762668634701990897266452471377814295116920905801677201200378246213740932645774290709526607484658294138282205380449749513956404514750785376692341069928704288038810409913290210852871774717686272169685643536928726760582842404098255792424085853747317297879407685782927057062131068103155159523624012301221564342808627778406800966039844464674329044061767114866961875702479793657120749087672487386895980251793401368439089906073447584819228192914217187868239529046461136039525232855466343510587022783122923968904635601961310606246561346496663539244985113768704552783150759594450814970241707883032982773365241090004280611022700909050482110285262480086084545290318419161574763469836449554513444284692666260847534891060213804273869971505949090931309661152684052118239644123210088564805236895434511985196502968805031418813250201573034121644895940932508028520147427129464025366953442902079986512332273015939113812996118528999518118369345338180479890673144281685561893201262248591309941755212894809613598216661694596416743407696079442041692614996691032080147591695498345631989647223933720598551907155312619565486768502735790716382890754076098285257487519749573574030359599917723430612732322201163323310802611352128531919649430080659681297054499592736409705274702854936302160830810473976707414383130386582194264017701676065852080674984106890002166997171520335409062749497733039666198034362276941915750124409306678940619455778894816805690152925839569477605055187914811414360073557406043851136919025436498611501903115638592073061216395184846782379010678383832208634382305669157371430132926855996940849287566701827190096547380239103685423582444283785573784955629049161641325231721368036525753046449517274604633211279821218810665862973297997948907395728601595281805443668708374296138467145676918052063176155209235640867907013780622385049339550298311102398997699633470748367031128807085134002603960924981264212942720602255229115742983583679491488901555552292038360888505633459575205812952976110827395464525020491488476167724631245496667832979096491059156059809396342480732753844613425230628359172897801463711676687953997497370044115493629280138083312007468420570161638816518693881532459125649307247268918704618651342742140180343294958864515788816787876220380127796712977819617304645424369911011106971911538688070609387146591453569604539705442530923996032160111176863781121347427257389160942822388762547524458133699472338988177654580905146000256911626679019424649127093124894708340005053836421076133718398930743705423805257287849788497491753834552918297502302735722603563914655220489482029680068104839006160891426432664786640455635367796958712908264165008124233803149778491184235583413805201042327436017132560498470552123160381033260499967192885595263476319971002476940844654833299183633302039659382195182698278442739963732504478998874369410632482595101235634055619605269349283067562833339867514410143711890334422529652418072612901728589615146552986375761868911828748596700244894016645463423474052081271619321591999310423025001570078549747374684464812779527502842781217105093592028327784791116458644535335895795920065623225808080675388158078237957675937926125880528202370081989531453791626703070738269278434080124751627206777084047036890246000668566804559078236248131108752824596393753481061670014244395045592928199301201723161660040330145410540170874919302448842063247684163526225845016288169246554405815128614601165586707293374827868532681419794162791893712044471172491575711051742474231506088817832946587409068328586160239576645632648791905679104537467751327056350730826921048900922544137616964661496510570168993810514141734629033982083931153420331775354639434949653656651148638044808169617720815390229714014766198013506208552948988113240493380326435370535652112491442315290955359253467936854165004589038062103736180039693544574779080959073280625501121561684759120561794013775549802587184833285211221257935133711215248598265187542554451688921602028381451011108055497471040961775563002785986112353349458105773571755101916013648890245807003178172574602870623946257723906015022459884915954533219644737508832217340193204821305781204341690998702431315097865293953759477272390416585112339181588339827791641905704259278042516530812698618105487102814872428088586926895440724249667673230354967925382233291852569074493110174358639575537242950799484285035274531533302244882200022102142529172375762154076909466763673220506543351374764173113210091119626307480980131930248346549666251835277081515702039777467328925942554024513881074915163100490758898022150180133887973988755057734830799033922017352995348335522564099239076361658115819267439113552226280094780561900157858738111683017055746325607237247431702108705418487551380300291738830555526568445550965913472815618811925822301276469106669279863679892053137490339549402539119963382793193671905894495437186505741788442782835486119149337790709905378502932750635331119672184020434187616195184608466391909018636730309645838767502778564705135397868982072232776500562661208040322301517013487570844800763683245778566294597797337673318204888859565902899452717526499094536077088883295920847204085316544838990094880226388510548632576491289266124734218899062897522725836487830389309808947188299154471807930269451258521632557456705781237428890832465242986852578086975719418036273063934028429703647503645234366897686239451524143430366849331056437883357062958063238384256019977326135661505390217872757697709878908925670040683972889084843456092744861770902081588129409285055592925912520334314305997866099375033957510346864952362655641803852807530318478765664320183321330400662646887413874280761075307905297211700802587287499962696183565387844623513238323331300082966014622277482046141207435726193375149452222255005254133867436165589040933928242135736684848168260745702662419560584405792933375840916595742567121807222808206110292883805887556949626901839152947817579758193510542189012190112832179460283586106208725958158670299837486316351007832877066691854368716586593456242821232063724997384885614009978768951741137073037425461117393230282114097056428626780895383628866124107332900915018948114859802517234925736941827003103289928070593965980511398298354767109436918016820749059400877776838681697581624920013976451710064461581659374736739509847361319878535982426511087046587060137821064990958519484587704685944250685533620903188144969680078118794191075812149390840038331723978216043606375657652362163239773438014623959836313805806217457947114969216310400890641491662853383615642622143678281909167908583495643166581444141732042068036082501102389218246338556657721411407587944596336543406919792726332463712954619160046116085158225465195043833555543949234011253840270559383852525421936778014401625803051285430925152309414848553498947366097945639613576157484054052866206488904972849960944607240977337035364963084752953004626007839926295326627283367048411379298675892746159832120008528850373199865509555868665778932146350726210778157773773745163282901636045201428885430382004303528006160737096302605709844754679667127426759812319237764051265764931086203104857483006193163760607564599973972076843827828858239351543229379077003294603557379077143044199045484291508480144962750544617108204702621550681199859123776411259923449122564810693857162537041280981346860913609381436884723458164508195875941514641999657542066982928081747928077933127786004869619588914962613531796820694985727066327594345112557137275548481553621436073817640745288704625410622734390297852465160043853291304118763227530132822611442949866486419144436414831646847348211368182369298934236857863646817720327424973097967000429412780271039054596024752873475686857067879123669209181434694601456998085196005455334327781654245257702526636405073539621216179375515882128774141671433748068938101679493200405695855725986499096269896055596481080732563801102458921394975167062410705086004932156927375918976166120243154336631658869434740441268293982290643108869344185280712461128124825678885043382603220284695117530761406590670975716230848500647341604364623875944272060937858711901045241126135975956811675848042989516216986314001725410987992689535746792466767671439886085213938903731002502653410761529566331667528508442235637303902935752146037167178382018454803616862576915853401083832811228376249067187782539852291327800497228716098855018326718844039152883184258439774165265775874282474750093528131634849937605697508507413654364138526405359228754674072166334395510635301788829017995300915050992853020158571067603656990009029307160072143586061121135006389155699250192575739903089129994537634350014489387636143458642932647231517044181522440547728238110554151803372165724139962901098829758366599613787223105329981336872259068560564559401608576455806545326931152481553113798947474300952779915177449379341266831562821966707766709152318817865115504428722537618359228590451628425533301844692667307260599811574387335843130560310730413995893698310305201548893353136205258825396129087726673310732299427794941613888939597374735730118348154954919680862944847783232225262749141875975377766317768985952407275142781984820279671986848241580718562370477604346974677359301017858978951612385941313215300999277422283329634154837883783829050683750100712096244367997306663647074374278063528570338375944594186763223761480098688403199725528055392384249359391316362082675736257966948959353619088895035147691902693231797747862713894279614266477737917837616467773386718226189063148946275172906397202301652047526864120949582366894886690063628783368255660597646440722833017876706306362157542104199688530340227827767352089078987856080695384882866402226089256078607521367566609413896685286926078722273194653265594413918761024688135545978415594586738299319546031140360116318710551005160756789715754671629511803563553403796489704769247735416095087030623139898769029124665925403293087293069749250691948054744438640125080926545024196733286545712506630383461045532812647488285992781483098965284336129081154090440399363295663700348278888436434835598650497554597325659358217138326725178815691695079814647300390763959985179742751728696898008376997677117892262039890358826593920495296565450633081616069787266213537608242862202730446910187989847857161071062169991166564865705691953121548084620235752333302989484435260069549129370006957604635231114164544977078632428823746541965021057938985309750162425561307268056406511931186514872502023237729830114172014938196878493819165416268770364466010149325216302794830245192089160582480094619674839941124701244987545788460844706050478232150751463352674384878177817285467486534727809612279840927425919216076902107367598854856131811421673392838318072935024397473341424227181788359305595391398488482575371340515410278531103883411934341497271018999939099640828229832073631978376215644156852449607806119864002995296890838443356362653179881873060152335882883999010531269391549043153003667087415667346721901308469105171778899304608520776555331626298476652152771667124726179371606355314810850211150132737128582845175749211705079155177455511823391635978967267835063509788159644313410982883460822593534699682828267654160719621136553381778781555422668744423326556106950794738990479720477601802239187583838606253847656220282187373945788515675461093007295059876567942798657771590305617238640533402014643552381675350758770075769006249522236623138255778177650716062072751078527748105863062729517159232198659629421737697823902257009062109082554952236646850280721598651555801253771441955771042947648990976012548161952117991590161708181541675746951047762321152708085754583452598580979614454564864608622942960687003646200347392479309228341750751322004175976863913975021971711779500233784058804751692635842689860432141405680213062697136779851869539544887241831748605580240757700737575221295014493606143752850456118295735763509755519731906201896498874399724989381567812933078072441433163066427395408001689311603372011844174542576459817672384829649253485023446612405811976331458002832692325773602006125308910134476754880210672662846295312143376583845508743895943114376750555746475953487098241974686778716347123231832859646274505049358699088764067459703293027098175821711557587222002993747830480052725566467392961911580989502421577776815447723481272908572671605062644282988719849049017352457704819685067002705731136402579583360743312535093939969496970462786390272212193945649258056220231069908220356246122870214940375041330829064862105108374190353714180101965370040040267916999849711381819026820853068370050112375709173196169299206647054573518153606886567846472137799805016839280375183410019343814296481321925337453382460029957107965431806401741831364602938474003529902046604647424920953463384569550610899855819421940060891963356712016800749177909070744104732511155815720945717046337335520772158316830100733713935022531465003157641861867988534082081816918170958461655256621847622434429656409690805494592813342463307988326769352250110404083311485009650571836597178101038092811257612912364237440816422785356073255555622520435194930868805932834441491309392590907613435628547424246586683819056492865761214094785147418854680256628010066145556193566739977556397636474952129689792725265696470940504600404507633893744451922829901342360781297910692292665545004348280504006238829150183438552236121705643868724948037465138853808452317538629182180451322214424859381902649103495163857874677751378692257273356262635147515149686787391971080336887869221066966916322490653445000289750975671450572457580391175119110005124582036846165143172273864848539605068170312243342666245853959000004983672182683279446159499167034732288864398238114590595631142296815067163275882858184482666607817925705098299265507740427600838488633740698833129043768837556155477409205364279289156694456085276277423559433498946720346656952422466047601475971969056692956575209459201312138931025911674810607076621122565544047383539900852034683950165883415512875574371890754532325417882822007748173510725683393572313945228827235474016073550204996521660092609990632741129376407472582761727009512881304019285453296030076689757679288434302502194930494013116639277296782557230102703766811721432226974102757819575002358974491716601260548428007320998740737112783916106089588468754280897761100007433148483969979030673848715730752058770742796668890453936897672917736633638540013627665583330301692020393557040796988223840843048719062959816417787618848649686891897995627163159013592888769074304501593216093040279608226363925550379044251636742371511047483653241496898057661462664137377801565435412779243996709002474155915165572857801848189094106945307899013717827356555946220967468687328477068552921272587829912795878628441597299493919285561014698091642272068001106100648678359892228767186439733124603074005726955722877954096616446482946587062823149162986974545355666820271159529798124111396095924288942701968650725192589312215225017376881559216908144372270211758664856488729169115759482165959328985379698176172246952948279711710544289822850746037062584613875685549457404739256953073055268917379098198780934341909090972986992193615212610162516926762095472042742492416180206738789693825675159625658850983364662031008368601325000793850239096953592786353197695410449752134892623004222706554869321023161142955114543865745806207370253358819897732169206451864087021393182366468073795997080909727987952529706584367053648013369869673934276746971132416264862268697978567105438705647972519306076511908598606577764112654220712797585161995971136100425041366699144847728079109196956573045360343214607938622206286541963968802855093455384630172450679760241869152042563387433663755397616708753285308433135670642518329936714302814556443752174166003209692617933978220576778478328877816636860926193054034659344807898673421235620094181328699055639164971131689890945691304154960879036198680900035193892205253690293889899138375869060790627950433552346793915890048742613020618554976591169299275347294131952467377237106888360890937961811687632961750997510660752255944590963767464701744439271449287354538118821402680883117776418607580938232381475464215733477778878453622828643641939616554587210117836665091393969754488235328958275982227571666733067644831227441974740487316482697107750481091504270777124820451905222455905798336248356111046167896074580090413306403014048648963520472832436650309178844834363369630207479760483574039225325103115032614859404400765406877835997650710434634444459727514584937123943394559647126533362731282531994862700560863785044198871499052218372608943689702262267637352774343535654263512744879805339140981606145863503253658011509590130224841921026355474158866353932718082015604361633718487627893131634577467784945361942174026109780471506553833940170994059386057071813127483847019315879328411465949590626028774355532258163619670560059287975728595249939259160020788956409409697903924906540944097254817352930748104602296352362211004825932896935347609822415083263801605110379754710419433048004231882396208178343610520648549719010229725274512102240602706385363667056684532962023552529827864331430706334723136089580817406866952891017837794841138588261301079948574213150349856132199442812119873688136056778653535679244356188080133867337988902265656452787884416194526768447242863589096666744023399587498553344041519569779950732626236138368768755944998029810521176836896701232801051006628738414588358372052044572766406065233775275238464106657232955872919555831750942253604045576862680680398834732718753728161585586225607892020209465195488011940813457320966281478056963380564540744928990876904103419388935564672703458962699920300380517843796174936294763016312599192109498704122060970815141628256599333875538105135710158789474635676660577497107168336642938895484707917669804128561219266945169197914867249719494473819651926922311384600667267303502478194816792473204927126066499479382670709658347000174564115292846349478413887166453333432555614632803724282270553525139443076650484974102249425647737644311246744316625769851834910258728422530821871355460867470392615936679272675173983765056735677610504713108698256310770735226748747068568139816131898081101211678719827251679806851511373843578761381623833750603604710117418572444351750387476422042090874760446431055816737726051812541801079810086880109062588324995615795425951492026708120333338320672753449500697084268313482041733414602054827174025027346818183327119632942762265838357931242024809325185658326077253510631340563617605032694372375607578117844450952324640124002632123577304579665678554192006053038765368019542338249923686133542667287717081340429115296828819736681111667104816082569891202190964243458547344458392494807908206666248310359577893453500529829695592159307489095450155554342959124787138546414851562772357510944006710500839828142803859051949356824744273513749704767345256263363837941240514492243612122127239383723578836221112025578107323684680905580276331362232565181822084377185808679858077611733176519374213406203959727366365808014708469633440438418829307209016225469104865813541961112001160785548015065817761038550531754619152892292324251781948138271442920072040899970077711954641355326180969719547731248305426893159027037571087736145380917011090626074738817977151718552808164144676856493989292766474100571810866619741090860234443770222464749662327917265881991348488257990674193334273460763813130164872703140925514908372376785828409881585768952513315246032779235793131231698738740864492137367984691971896565765446802114159433934276079253806037208686621360489327692529454892183950517575101801304794479248462795808003472309955226048649996701297906511561574646674477762312113798029018812419388940056046569450680998053720556637573717071100574426563395338976035661519329372633595902445016608970559370056321932126742495288452830829303968349718067563850991375135542086443138880985392476554406389679492587866945670296615407107924939267694937649389109805668248183080661509525729781286635981272129217880016532158564480024349639809109166420784229359952401823698499573113835671560590629224557968718681811188871494535330956717884964633192466865778580937624127162138987485937790116809077507945206851413869284756006213633358673949782586355892724946031549570157708147804347103233762339502763700742985512991304537047325340317333371340405460946834803409430046454125704033148431966598217386371217708333590511024939176977650671776543757001948510252030981728627500330138167541596673057316096066567183539420508519993379590096387078672640319244550717621314111158376149530017320091816799740280022347446890914839460300114394277681660107677467578312643386376084019905388379647212182198213466769444363770925891003221850745318060976779833336903668342791382873568226101084291135096929741413981916407695155446126390351151289381981444760501948027076811941230824662362209949303112704232936554731233179560406677948693488451022875228323600888071852992756030153862062377725061502049099231795581180185254409610299108841397150211244571473420588201967886611424154157849290432158938488431517206263141700631541690181048306111282883247733263594629522633447393463401852822701168062551374005634186604450889992360976810249181642986617676027095755028716777312603894194471363671253896672583092235104901248115153408997388077916274229210242817616214001214844255666996464948658841104442098733315196172643454030193745003468532569989489488549798434752766974109086118053187175383054485535400674931248234687057392270620202974663694240807004107685620399565480194292804932518193224011885377286721987837293322988378766272949272545374180342566569314108869523291062504325567575336154839183334550654613662324280295824138226355810612346105771956451827025124930842454692929521623077667716108530533831771195353895827842761042128366495977478598533540017194482913983759336055047743246952554054239026680882525438967179374055451998745342789669625047725248733112557449315666016063694960156199435105620983989701023529535149061353122312909086544307046780325095922269167290783589057944018065109865491560219824155559451840977288886125310534291452907172418002738544814415947764942497580481049697249939182598102793160694727734739061932557663731952826468185132816279945446740968752552836327382535711842252326658365354640396863978211369438753888781865583704196899438867062002550036815617986959786363266537976261706468872756209642691692515953346593605987230902550725801172161331406828062993902669084285357790204583270282265847890303774699480269846465285526812904092214573002866760395398493912998919044607878472504229055092560035392020424072553324645796631562519890370739569938925188396341581302983392266265949386973673593917995127784144052515829885858385157333344465129290805402505652382998794669415158748242989062774731554625605441827761304619956811480477340274156880176828795537161241350385896147057727295132766650884804494447840490794141293859309737629953968964392841450543624307877820318062949593509640286408773695966165962040948038902011620641120031825789080656749026478047712294859233235713721114718632610631900803281304216830973213808180261634539073524630370110908918559017083936818748657798275387032588105717626789662600992270256060191030421811860233668046117254149081113029883836397394791595257407267196768177439403114467537857444100788779724617777757824657862079989069940544815581221751443268018931527608148055459626730984152591908165207256227231625675429989006596478288298616532759099997945238180682360283010341522634299714348002259828356259935717250936924908509773569996607404557880687600855499214900478574306156728107438625120836792831067006847905447985891595248159993864958420325811572005080593903723380431798846312110287949574425694580610370794931377720709909987837934520728359672980431498690166928313655666516461512461367502734577715815304528102462732040325824417922688476073351047509589754633887701492718821291333554542038010843422498440601097034063402186536963797827328023725004086914734728995828140113431458782725257872238626065579359168367405834184174376104875524980420062917283991561042839572562691238253812996785101714166221263240402613958142458732055942377199584758386994787906661539654905666980561703390368792548919012449505697426797399777844516604305141466562752992138682502450431770043182160015166868460197703620464911159078075482672445629932782218892850557965321707730396107300270146769923379174953592455862541228230519417082492173579283586811435020513671812579965073791332233052454767355652729310921785217841830098202669858708570697645278717351426480790868015983706311349165807662594700953012224238650959878713842699881902845483027986973696240800857657995905758778032721777705008593944173807406782708436316199185240379617807786353933450181592588554501021712646493857669697087149186286064128384050005142918365524334193289236504573840303131245734540603057383718013114639000568115132398759671945761324243501687300995602509560355932125496498700606254331212688942583010995761383656878266162910244362828926395166507309926676474786223434937653866973490756671686810351900803718214232273341651729384967427762538883095972412863213258104717113780181772854620678106648463663784170513006268405734341918275873066780371222440211629001623007223158972348002179544684631270620021573090362975114172566419529804905753045375321563321263961103675750306040396891778839958178861627747682108913373754109803084659401928370957803719395108314666879505741468646633566962707677799797738004234255307939202176638252480791384225489163145113073118086858647922462091407489982863718952867986937515634761508930335883814534674299856773901268803987679178027183277536579770539137039819500912200126814404689418390058179495194860745064306513367833019547805963124510730831828515904894920843526116522639780080613080490512371869254786282340310186983681608699639477800601536941607286712352035877603559515315570111953234404137566805911904255536260481675674567597847836679244082516734541781945482124980366111812266884759611557833079341648346076517264511135747227959399786440637827506889560750705030725161024064924531658285275538854861511757514106029095326707357815192145443923131784353048233505740059618126659868278322003272114450332005029542908600066806442339468906810242340968206731088279594306397394468161944715664288003220064710754130913557498170506538644992428041769000378069954613366769913677060252987376584759984196598206358659628027071325560898988347790538853256471555930470285342185526434655685190302156394095219939996431946790715182958623384473624837501456721569391647411486418088997342928021019553863592811058966436305845367257347732706629957482188610060030368311127531327620343226553057074332990287910050718759522696313174372535712278330253916251103046759964577060291553370985359678630457571067925803328318988092837620891627535774974920613394438694632872870220206452764552102756058865657492625368970684434256015655604678296523208777956109356594736198677289704518022877989210000496560303663185163829560895495673871344451316784916847002658453331265704132279777102593094016363500979939686276117485152886237646772206631859781092561599893699369905053946039162415023800631150335432469727256979213205952989579125066720918974103573641019712962595569127429707336074553485000224516217966948135185069000075212323832804032625777538943216927154836063391289279041983773698268413573468820387754316908171117798900221307473914784383486083840576459424066935698517827168345552760336573802357515116538219119774481224238429844866626699110653060122383012448500987189014952772992761875584045576290104923052225376737390927550432717278940810299796449885670179093549005951157788912848534417973730518026507184316006629306381048862718687429903642088458826667315368999819362898496718948380594577516159730865060706366348776096336525448566736874976559384973578107143827421954963360228532125024156878661251848962617151281071501780520690756374877965445140217337593783597662920265740180644711539124209875976084718718073764148594677860037713239186918064676311859713540389650220908936542241408917028070020372751536279984976848276753299628499794711433512571038411589088512786597513950317215481879302724287854680811671072272873483810768277026639539425409278543885673648067254801450033051211554934402427249735376062492067649166802305610403113067841489089001133753136783302287699362236268591154243679084954009179063517476155351501579359366334834882766881054933472769999697384697787109079408813236535807453637909435983324514129879125163303125127502450579602339014869680435099866851130308645452268724205258640977335824270361727183610793908733030965376239239524232509309760547824681946932458979498443546509223184675961003872787525006969958106621209560281958427845187644641071205521911057111471019153540366505262300380346621046496991256997497001013807960113412899796032771567503714105437513724292165810455633065933926458388095516115869858671985308399189586926347690813792788572232374489287482599522035732100233230943954490021606021357883276987341264254096653402664479609863146336461015335882644922677670255979400838877122481962826151854046784832348041403061943766847886240617847619110664298743664764948207350366558978271727540963038037458061076376203619768137029422955524073920525238563370684005328483711853295987901929859377310531048017306391260835475526367537436654469138224018189467108484631122059709014636773044488171042316459352764260924653175795460325739085349252558158622282661849974276570278262216865837993331844811897257346161168658933741901307016401368484380172834098347066513991624044060617535484016773632263376011135108873172431533017661739957197945921105346445722397115932944301512699329572070681503810813680236512894705101355050960284840352702043376695970908528993902335740680616411117226656987441464727205373361641291135121299242869644504434889850686470628095287013285861746978946710450577217503525051971027812667592475275660170386988083799006482978091825079793340283508608822475731709227309520205094659482986670969680668045579946608646826721817073865750104451292176973425306586199858700682723212976794931649905798324149602776540528199453794901649096470581430357688973323194528907686894535749698905786002504313204604588052970667579650624320181452672206544037540396803893057812617390442631003824314596958227182225149589201205400820380712525157164943335276273041103531448975879407380653898128966053716835302598249727321610596020823807247902094222071819387059385285059755645350533020837043614643952573817709097778478693573910944984239644512227993220955904493666495142422702067308428250060797666494415379862485774359544598210975503378924181428058857762855091225763773905963939192569451772442945495850585167790025504271973708947185268863969180020480566045792311576299180968044443765156551835205799595453706778695765663184911502818541209069048624212584376519934361518687451570111001970058104623111055832754967054671158159510448299225956182803654041001823117347621777643791124620421958650309561344254391753210721152103678261058892025592480517688369380313818361514871554289604026367786215053083623564862578959276780896892926049527472831930864770125127665030570590288288216377622632050334671693595996753682330056968472448212460588992660023334266281196735187384720221798603342114228368826319570704016523995454346023632821177787654628374389784390600120318290013614626398975920756938464343238780613715039541934214065943902395487021754513901670293741221615477065641059760338679580924544959126895517735163160576919717213334954835106942543307509409680948971463178114042402086334660068719309983622704433284172737150856930606667374160801773129326362037615670875080149834196817983326200150409209982043861092220849546129946125631047074801865387305193911624677956291382347508078957444922935727734740415933734470793316333442644130820350206732314144093142437476877390082114168303132332328079171889551067674474037854346279534983914740711032413513402405859855638825180538373724329803199562533694762982343953558974955778605174467371852826629266042307840176370604052897018462577151711685482331651367053488719329852461707682270432622237361626736984057851168766715665385463898828956132522634778554145156532187317103632142762209672186283254401448438857602819280652622903244496415305872070200509459342014514733876586677008931782832198518037129457626674515034975471569312168669455695179992279578461713791106827825304608017968736580103024203889180169148941756716906732284234503901948940390113136030071774513928809619223447458819324003612909598714707598959794491889243245876229264278056273472719566735055593499588849750541925192759876121774978349931340334438433707723687525903114964496103146326324945041222734402852732621664637961660628513500437271071921389057537789308691441649000046353508742688960621082727379786640917116238656390476194290029558877264808520206735216887708422603568128123928046658647430219252604638038505725812108273834060784472153537897468848217726621790133387526073351948148059067852207352464964651809492886276724570152084757358936211212999524333389806126916789064253011077739738973670626727171829800219761657840530551467239913475456960950586387573834676688666487120776767725759018915122154999406685179258589379189393056059149158814477265687000582417936098030178297259462720474750299226605730740798567080263837653567310532603080635699631056003379045445381519591524839290728477793006292277397109252694339392183565519587269794585218306528473816769613847830977572489156339974668405647330299926738393424135005707376823965922533704957298731605216528054323772200447709311936835164176349961631602921940502279235279473102090240044496663989102787901133724529500084041896200875298515529311218607815024587065606405205325993081378522180223426579136607950408645424302750308690616453106893344086012833808228051039736361727528179102061970866897011529086102491101878636192015295609533887875318694991932071358180639287322070729301411421510894211272651837573724970696739033032289212718151653934525358088334908741264214640364059800828803059416779883285661566979208408059060368937216688124645740782474567830338347509774263354172291898054264263107043171649426215452984313737958144445736788958008341220458714460425184005452929274073864071577020713860660612737559064477277807514495332112035210068800356469345335180075078510756611713814741281037610234311599897402137662656497092987838126990310204136706912418825886480129088534560479971600468950968023651318541981110882675797094000152802768074935756262214100823318055851475214850859365540860528164225797383595131813462216533927331371607038136569489152072218773981198086320372426613646661121152891355283779371676587593372441537308375354636388316532706797445362364257660636793432707741962440423704479752173208755208360206789102249024655548791819952986243523005008189062548486950097338553279926381422876211125977304664390293873901815942395198581612606696025173897163584426760196968357221320085142734334330034875812494873360370689169944071082898384717715801914916022687180039129994051902051631962627453194747925683610242893553065344499703131852878711203309606963575083446611999831356369358505398229120237512969661488830866530010379501909966386094787005927621543355465811834376297699367125366244288381170077144042252806695474568595985330201881505220061380497451472002763946490515056873684273478504266671290751109265984072843680293622481406524412200240710864395426102229705743287499451092296478144547746805246751510929420614181247324257422343993310014551450987231562742956760660445103814411943723112722787106615454657882258295586356316271020168107771607973201345726861820502446339914649613960825618697482448011689650163715516498360148094781316428872728210887115986637779118906653176523343788479605770403491486709771884427486782273714827840814018652967771367959861203363720340607542903656771722137098915195757572363948677104834501831793680969470642596249263200747686394567932858771445300647988594879726805114970568560166215027245490498099514031857199008375944850848256786252228847135111882205837467138134815152245536616255191963893046293100760364838422391621601719388673758615867517525777794185937125787405696412980480462581701505906882922021024071670387300024257261764018519059096463252969939612321956728532589455471385753407022192650372481210013043825518250350916564107409685800717667723365913524558119898212632558116956050288306354818957371159686288632525166522417704919386742508439735248266946962282561948592951587341435140597270112163093665637847300748270399188099393464969843699217604200828922137797979790918332971157054709177842778172565132904835417606679013384187726598498567411121643625152332753115488814855157707429325913218623484037771081810082528432672928199008300363194505741690686562250864216186075019927770041006057942802149038756775162233695839593792191862843344046034103641611522952865234509580491260813481324538230322543793558303933282968859487908646566508259446938801048220328156112441142425154018579324245267461364214259643218049386772702175268186491913081182662095592501696343501459270838305331682751200785888360755902925536224033896925378508810591315064083950700409792178303012194337828065019145831582872188244028270704932345115084216916829828990513013792478586105950454551583692957048073933160133989424301943526845264404277805978412527599870216579654407563948954743308370046074162699454356074798048425946921634273167066070485288143292195735305079948055852913171189040021607052374687286733418848998754345039360236421807547116182390966925072252293678258914078173706366848532773631511756030846636784166032251930792746337402527967540788879925408922663261438193922739649424156266027790452997810135825348322324683654051100093292732945374236040244523987283413677958755913387136900117469487763442812342227262575822685973063616781117335938801001011708242895040320666081305495432676785375635396397405624649264732923440030651692036804379375891187441796253808701260153703089174319484905446944943139216761448205052945594955599802462405987757250958134547060728871577172949228341668934234777012824199760284601831893573741850311313184728284036907467239950264698269285347393482746225467293482758433576651820944033316466318985079230674260309457300333976350911610267781192748293277156676783113253765441324687037957923348360726153078255069884366665149740425201188398976538074366661766513218073184143620811959149999620675329271935678724924537000121468103368625692036998057824314575399508141089499449643660474761713952498445739954381888886016038263722129471198414001141151986351312891613219455299740569236624255861655007559640461632699544244603184011530114006902556748562099012755211560043020936000748972893522906848161579107632058387625256267281453195674924495807016685449912411118207224849568326045580194117410437024807706659116368769138525569695279564159120443664591673210945998110683129350289037132991440063511115463150374467822954145279846827223942756427060049250833349380418402726973327683018402052438752031136544111157789077543315793958143618319980164981536565843990191539413192240251884593822462313839787282730337583105012999231777904844290908311299903156111997826817936596066471345700083821823417937220302375478894583773082449992731726692330918451537529893570950672678283221938849380631755961920779468954546838929035948677717421120889989356038615925496652550337638401424402523306667507995220523590044961937057260051121519985012725767198539717046397443248975985097492647349677752614137362273778053518349114425495179233224923916094234198039265969457110664788013809335929584866278640784053019068613090775992681829368008186492595495462569567402639911159462212680548961743502421486496264543631238675017628208784429398986983134622958993601926080092074066152373430897673620104331955637205758760167508634101077392509140593892512464629623819956113837240361298621259714582879169236652192614332125125537406213153715178532237399729091121074457668101416210716460525878310464890177924289434401889604189699865479268429232608669744383916847437674065435562636016626196534762841109973957242348270880249565473670650352281884903256880903536950154399288647325557715300233193971414982160291345731680628776199838525576661185730132592370887420504053260284155378694378508080968032410321677890803632901785655841802769549975999100041334873008098815450323238953838380299985162507527012796019022847207564896464106326543270695243777117339161302423881778733051908143476848691013627579841745955032270908592830720550316000643517875913281360934406301641741885519020915614467229735075209541220438935943796513715071365811838061845574202632959187066797493913302206108591953463998999925389337526860240736022048515133440055955138773685553729936861190274891878718855287400550195877102284230066780541764876691631564026625441641705894015609177901035810539179850250133957875459015052676465634772973660314205887507589822638999675851996276965577702095540119213079791991775570586558115201540188988028182398223872365038593465950690467191916957601448994948108336800056276132655759285039489271929409684677734043195400149171046311643335177592109831959860692929030954458375221034740474019428224324291262793337706556762161130597461729198292943270091591427673397271111238863042149302520603600846938741493801241648580664725330894360233208261564263959375211947602484762345179592493901531596414356050906042210586099482954369991041305671324239214983468661959261359504871461336221039897884714925079077473766223005806008503385960679968434729930917779733531128140776095274444106606463348685226252716821330049020028364988465542668528456771489969195557535844103589109625214064623829561473020150948095031781478278210771260849592758197982869162718833676323870861567830205445463342546875937035367924837121801109103443840515474258238295265643486133293843513873750272018440114367756668973809983457907744718821763289480642231342643254184992650042673980060395865737618667328530602222595979115228944020240232258854649924922929360509808467057874478697595175091766273384807726794032666791027806362941296133840655598851308797371936658468326237069035472778403317707271193609786297358507779523318132135036921538715758623336478990737907955452214437314875346447734035961091377202522386522558158838827383615347533069924988464896647541024653729618150874693757599120549489805792829817314647676481062491523752153777439119202755216505288425241023532508780471163832426101718897211385900945067520110771837121154356096811843555740040418510309278137602161127508977481741198930146231119445190447944759328175602215641484282403573154158615403483338293698080353021722211329934244281138702684583902360601830167118601292138080033826296914799794392926680779332061217180920521099804563944184833426083138462741957933597681412916384916000612932468371884279058654889446912069179629651965531517168817603270462657680409658940784833998085097338700783595406338396902277535917085310245999388827336828822857593880254990369283105647962012799884468904688592083042232499398648233314534735664126561367172617089167406217709322780113208336925732569068369566178785939938289019836603913947878320095835474945103749449492285532065604394343549906892946709748711896717492108791336621083340787247150727887701767292752424669377876403193316392772165290852525691251001013897922210013922189639722373646573717563675585992867259249191802446236125100958601891518505889591257878578406369753649431596164104021677325118982389231136809924043711985034323802049299597491960568667695414631175212187357414233169866029335305909817658102411869574609356777721765883174016888918086055496552866979839814577691053908756022755526648487722769139626461800866985367137523005653234133855349350005660661836420871341342310128158300646289645883988713369750800427618505036409898698745951851710136428628570824212422895515580549074937722536624352009418206924526372737200719718648155418086306569113585112149356502384772258500971206622171836075732352216528640544614949704707605793993156232505192908315215867583146202007126559363940514274228510919397798469695084803970010929289275324110617737703197003032465252682860789606895720882929910909380222082068552274573790702985169253898035016830689872430089207389390318061115408297217485183697408443889777184756039890647006715968636768204909606660655539438755720459993211642903712276513025196539075035878968310127909879922390840430249739903419676760735870618511193228317824138366281099212661350882686376773776663768049932345934333015407943416020473717062491692100801976853648004574429358431032684975125527257699957047739157454602565705426425333666274226429410880462700563780469848978560547227527469946539646460454953093330869056082171305667619427111823087268816483512820734264007027580977641985572670505280302019160518882162294570117006199529471336713864715308708750238930467829138429431258987981067210691078082074587642190442574667962980173793494864862898774660748816930920639669371105070355551477200295770883609361428562274667544236933465989358408472743271932007282617339815711908400231270921639426188368715919377309025108221706266613301353732048437969349103123150915721825956115000013686811008448356361882416638388848680293513393670437407466927721186702719228833527112610482776622413250670472254432852279186781583967427017127057976349350317807932937828267710972711276287006952103414285424492065961317619537524937116954057584633901649049233673703976906401358194171714498019764257475033922743317108924543111839900064731476092132224775763822317443869231042968213835013197933273308007073150446886728384801371633538259957167303049259196534759085801765323052672903052930386072458661185494113045537912950357780347990530149330088903422419053136826746466331077971918190230296928157568620556952262761244840640259242873644804037002951462079985740441848104281526655479009299430879851858174830522116911196432627181311271847309620982501578065465830058917882787675056253673334802944608817192768252817258814431929782058580761301274281768671430565499679855097786465476368744867273520408942109092009955963748713511460152055652671816955470601502715623480085103810875189620980936049972349572294113241906145564890283525031396980001895417214703673703045756406179646705911960101517003883178249787198445302935558156386079472430899391899539686811005050411903962993648766647133179111144917698767807406940334780841416576071670957957188161252502200015499069831108827912442484433600156702895382910675175292538279961458911348517434892062247095908608429940216244163987207681783864763666581067047949404480583535210305503731579724809428230686541970467893100414506535959404534974046874859899897628575176634620315667603706631718855676999382775161259928996275516178627171725090639307644644072805332808683630638179073262896104793151088828576976667276961052867013276939611506020673879711747426411153468446479257769465201764168632655998725985200412033720731150079878308464633273690888083524477378731363751708293586396809642668755395224193391636375385567745406195626967851533531943698001223407663660328772903264808337463630527187725519078491389778750098366935071472387934207596732536675573614644942886624859414111606234336387219271875313959696480106806707577377456727757503993625829044085916050422192933787672414834471191612123566840797292771445625322657714047576258518142326075345993923576173163395783674790213794208572914554415137853864682051239156141076091893924677537319367781756130253925483139469781635498669650800743533913374304885883549698435237414547741581640378446644835831763862983500528042553550286013455743634387500735124696219823724565111635999804020506325213328481174179937356884577687248726452765466087735367005928777066484761136309514983403689706802662795841940348834252152928979004195895883586985626515690004006722911865356258494523041666588268991572380266185363935882861154026079483795506303664197449967239921126415459695528184091737010615239175389283314328225665517422054451741646772709739289238106509000131898845337955590135548371467306162987481131714267980737604628271895268747654583981175615082370836627849351405061572130046533477642802815229403285300046514303737345709124179095110332733926120643605469511077836622590712437820593448859380172969297567681853120348243524402449633446947371293330319482783421738608156160778552303584259575160690954358859156028889929136122363327155731099695963123802176132414681602696934409436931951504144212860624303150504533733474746041004020213626892091799402383746306047545068587031485972770252654284743836764028634744617169694787554955314007836954783430632065516910854047099206561933721911414228490030320530550115570071938979022518260177443474812069230026680226502074568206174099504030686070066483092319665383828571222844467889203553406951025818055410071866237200270757104121185479807209576432933233130664887629730121056495768116971634961736768855764277129443174763389028642261163700510543520498160551316897759601887043113680823497023523944615548742237197134479435775913192609938900682281721165991425296988853426155614259180025679182344859964813303818253149528565210055328483557116404063666312206468816694486920404773081216750320456531487852433238606970888776237841218636711453532011412518076952719423282347145386274800447263863443389471355987340186823165411810902372931942116715955598203003780500523122352005689761636464989295890311425744156361998936051020091294367221613550376447047081469631325248044593865162597195904367677235306971813836565544505648728089138994546636061903071417932393795111935299278576568322177668726880610500862738281493327713708823243957406161242586138936352475068596577204573970071960535593271943863325206235239572595516585476289032612095080861696628216284258898417213190090850684771999717337990326253320991609662587201484751532995136876932187302154736394996803899142346918862736728444443887717692983991733400318219361737061762413581900861186709881445054355315348085964717906647200648055956649249952977513284963031928115208494827535090035577430783590182501299343746418538881998624021680747014694949532014927465621390824413700407705891523843010984146514986101488392975115882443434908267173748810407382659243717256531294767982609739422314589968235295574271734752631671399164168820068834638256573198229510612969914190015378449599413291735820021371465869424479838807416383702345945199564819872207246743958541786240836588918543518842361475433967402622169440805541024869353324211476024312239964253160164869613077510218847993688594066046235038156218294566646557547237200780442829243303480976573299356592792569526595910485649294204520117941126966902817712868108427362022529550253201647380243394696520480763460915933305423637938489093538294142379314766619302895597373837080430367645035687371758381325103232425614113728485714250081204952786529371576118799881740966726787374150314344705182872111404761461090992487921324680049192177756622564364237171819214745484163467595397540124881772921660634836117553174507356258646865889559944768238530519994064359784829209403941845605570695492000192827077519111065245592512652517973799330685000221809048308440813469062805125911533550260325382564395286105798572348432129400351947588304941497355156001731665080643003803686125764175378093666962205521220290171214136223396927682174190297838988617553242252575343283653951375148385655849278162329207643910496157287455358819209700396253544912812626727252097455683813954167982020449134460092380023018897894979456165460732567800374398410860246318831698690853978744876817202471850484921765355205491475830775459761073673215829590688723252003474754213169786788098157764105941844908913669688544163619116813067893060694764158130341001147886482161697423788865515035819577169872342768967682498907746133035064715516852265522916778880263139150583812202269271406187832219473456153550364292145155494341731616924650025193531323444529678552127168777813176619297710024214981550404171678507200496660124114028788050864727067825863791347322047838987498840825203836375531830998285318801695608558778074627141200033905790339462447652932714114532398693308083192141141511007175163176007130276013621415191163037161064629758663083205107031346812217265771496206869419684909270983412853341636163938324600867047880882632405856905142930206918799048662830335492828803058593585962205496839511798445177960324477116792441044293264280415406323867586280589039371238564105262560781886184893103996201813600802544421978526822610158946967506461040505443896360361196196330476239488470463092419827577762420172457063255727332598658694515988550252701962407944809431418806885921769119915746380257915397048897056121574245822098821446191287201813822647413247625467230388759587683173075487354469524899464379351004118642286596537464327569482231190195267964677263475355489596916534552029021731510124949104431436750840704622670359209478419632227453991847492727575834665178759444091425619430421294880159883778707417744430681147057124837028955620351763705580497869871601123881728897522778914023870414642027271809548194825948476874054647109857846617123856979951491794186193494056620584690567442455485519393092336644653043027566642632954576383025941350705063963850128737446736950399475362345399812808622405398529147108005527184055976373517891788662300026809109356275037186371952669955582692308848523305472065073852124901247016336522132840040351984336159328698741056434864567714392303596993786828058546307995277913616964592390932279407481009078987276142800831276058837326644488994239088730993067580642169728853962807956442718754590157735079497458760117882824329838613922207868238337776502889405324480015945774072907388948245940131949223875585961114030888220240546051955505851741086703571871397154925014301499457530020696243778828842584512226906674417909851198610359995296879192159993015968971596936867742676304533912629528653785250381799873411578139826137813048744089378889607120161033967250552765604176792958475512806556913333807419125755627362884606003051365830107936550591470350939189443007503823590814064538629705122651941694990338707425745108651277495499880297768094335781288288561191071564329332830959642957420223561646205156199718385144972001204746696694684378221542413217671656920683706043094282762755650739209606483944912444941882497817461256567379871331846980456961364451448753012514288193198720178624003205059265637332632015223316870799640565603715418196467520919572501052682542617572007217142117049712064288621541975347747390857056440477964304978354607821135498002276828795226558283333028552295634803310326946332101389712751344948896929823734424974073629470308497234488737650823383842627120378229213232629489817715254084747584066748103669048236106168469370087839365015869616625229345430187849591803415111643507270833684807992084143316399056740546768408748964932318061893384168870951794817379688937611841817474217864343115171729998993448803659366485907675037124860512100164560078799044428735260603484813800589659278685975964396615046157757498968801620142984692016454226510674096129653434736766458903726059969316522263075876238307398555220281919714216654704904676305267832217500918582706187763554221464286851323330534749035648972612027917443128552569210240529276092013216075034090526768344802402044292844522009851650939582600840677453843565143038502049541788536567846484697928755541539341299931237272121768635646226626123745086341946417186862297568008107621929689590193712100589202793266628351823444531638301373325546472752796895217095071493127973429350327351061067837192360183478105049848395819766527379564295162358083793339831759809011441045491485594859955750990864684814796167810726094740987867155900089157951125297537681825663999455848160240046413885850672388148997981877240919741683678554304568907259094619375736023376405548778736443129321329823518489505372722935288724846690279687359473054457777525856489518442981370822895705573206120606812310791678395490281001467370440035709042211731270952822395608742744900995749902738422986146441725084555493065077200201641770437142643148781813605951817010244109968784098542057781247422343569729792206035455821983010894589199724591006368274569976314069318370789092622519796493378544935279548478043314918912279658971653965603413400990019444513262308602973548206873283704920187056849290471111609705350140110140556573384301353205687055917396070394540549303283251487145850226197777265939166721186604195106094074508832234780519177302091907084986363317705476401020796351204702971980857925885436903899739767814052432677487205794866767810963536759912351557128188009586312777094583368773222835657838518865316917695643602164432561961971630179991982380956601009063387835006535216720965429294425010739075493880292342016504051983610206641693527957131700761855120169374058415930230548750391912451217570926589861835047902420206474615651788675580527470364129093315073700705201344693873234440061084218086526897108165805608949779850704992436859104338047671302231674741620366567954045587622939030757831626929185843437938544747563784143948246427497554780713967947190785398551831518858859476912182826419222503387571011942584963238621728427544064520377818720089881884666338368833231572330072659231629395771880925329343096829657742998927137888901302236591626109774822017814904654158207516601777354947978946763872498871087224550076488638080476578379412360815883186891517213757392147202190935349901207497848658405782035867853354758044778002443388455857882320987620589006371002022848042270564717817000238688116881189639763642263655020704938626412171880400871938876337219610336929845749021782373818569015681155314927110014221752558000381354112553086059339917277791858546260780535980309248850513612902828240572801437036857783539550988137194818819160032486764811645660395693341761863552085167775631131688050930376395897310537198298608425677975490326135143693015175272575235947150532698067146625956241159399389456218949085269692223959542276094302260020306206590229368030170588534440414383178004870542228403960837513865975084532097866307235036633124031356019009829853060399981295148766193171799226364046545047831500656787073182580471763663257031017441809784610957674758859812147807121675651037052003156189060003491504038972488576705574774117576573676121867316646891303813567504534416608350885719918227876585971132433525969831065863277497667623725610339475776952615066385499810371120539373245374678320561008026848421796125418509530487556015641482435046104701504132298517738020188444752231912192478210408436598773604951389033754948733625834507439540974145735939002018360949428607916407779493608809534018076280279720104848578804124305810827437537683518251772404230685395247418313061095656402964281428278830013165509946518451075242300917607529252636629498139396773721793109017727746311594746450684292397244985189392314208487419610599952999426376821190368986750355046081450106999386265942509860638723870419923124864623114937450660971957546880979208091855973307371961183781838745899914344664253924705388175742851816454473292289759684953471589590941682273187706228001979873746188370581680877188149760890414977060024236280686593598112136170295998246318209385054913441890208933166383873547792411845209040050127963127224348357618892459847746429585002482204031702311033360584302809567317435110895640819418911575191186183687102906601612555511094220594083715277624341097846596177473883655939728428703477738764377593687807393536040767748354927818911180931724017178295815011268565801583865648777834413654569615822947840351906471790275474415274065047626920737090587066218909182161180293933552370034320472822590255543656121579784175108114664097418649373790269165376241215264403105661739736855133132421497057893532133196034280950569415745127022909407280124414151507636625915064840094828574867264971361908274402293094648562008004651784177125702529875784936994961295007684393489116024400895449760467775935012280859473192406429333547397495272405257223029698927655108963975177563966073325668669588610233115254633122184190110317964207285005308133404752915489266275453591544837708275026054248897078119945196501649395018312361988835901524046169731591637087358608568008423942151105297734673842824734907261482749353348372437142623648613168170924142262133834687887881302663936742898039755594887278672168376539850234956760935134059798484799565741835013844810994547064401977650212083749764248871908180439632293218679312679271997103276676187117757594444003044830412888409481905967493844297237627317317720331064322792137536735407296506694364827743333249493390963387719164828896667826604327932539672382475014565270763233773698460475606008123125832250733123584429748707880453268636865236865944152230128735837589685835529649852872154067074537879367431011983809034314202816326106457178854388876675016438818238469068712290155160369201638320906958642375221160925607514274107403363133082863407863970909161743512608665345472382094918297324664181527679866435306938311761706747614278661322880458682220222746727552226053355690781822328037244138732122717363119579112247049813560103133755725286192822568010372388759598551830706022124364526312773301582618890423859402352759908869371525131279975737634372701753079299827659663220958000171610991783898216917856153528003330403097131839243591673440030599775731628627322451486040789808384949579239393318816054564829206731173210515402668058671038108827076720122548566417081770077321377339426881417105239509387046767189872993478765354480330976791265062484141376111955105234668812469520744209992649994445281684907827406684100450483032714347440361053289623719778966294083625335643208533155120916317483141514956142327746927752915022093178198621994059033993497922492307770184708177231547911410838026769958481151615077345561901479697238123763284588875908763030378565370683492514051194756917338110600637555791201352393238446135541507605706582344855331136955627521984325588771054828490612896892389248089661801636213461929270351066895628223517478303103347777727856621275503473788803642243118121991952931014553271990999544052377193712265126427209534586795117501428983895080475163488945418068233390763519775603630701287731947828220101128153110550082322329968233917121395453748718504405678497889873577675065999938144570430150768633520540192366499262404977018025674707890844581007760713192850056870818905603408924815213236053269406471547326327449279313207090762965856324400755748043629758906191230690205565570718317960172661283552513842482660135264739621280950253931769790454861760862021087148490050942017091923160649638606327701835794591699769943124157720055796242292554467675394655554873463850773683082425257441771041283879773497305895755741793906823759554330543072634809542976749980032486027166922913453926627715070276277045013558268947075457154870292463705952500044677449184721016149242657372796767150083868225978580765202045128229993804221888638909553801854542140063879517358519171803629126429263785477949461083529259890707122534966408425288926824720664637221418392877853757117294823317046103797153319344092332939599754122405490431437387940891934886772308919926025917011025034828117857372001860099291918535900862609313430367192006470199181023137937905257058879770323629345927755644730580386803574236574402253553186153930651148221022745209132642134102415663913427627723373324227957652106421959633937141499754599843667210953601358818731477241883760809656183498408095199022616508565416766327189217604294004179628632324699251681744238956501085840479834915112470391052989478797515938329957592488375825867482251620133837929189269074134794818167796556948475319644714092875848273943126141455656870433853136854301670209595129233702797965562013167426800675752664760097983566151774474287548368203622400242898819056966853013001652713028438044962023817242364320197823527657204435759995237975183030746776427833697121867010538512485952446669046874318527514297717689218853887421950945780159787587746275316348099109949988723112161232489440954200065983966050635045860583883268604855787015481462575821775182728354851363168301833861848742007270051854701113583868247458174340985685851152960220410890382854146114876539606712419962887301700377504824598853070563641117460175129086920267468272569934779214729739623768537240493569464276679310477112586475613610856455568667245139917384849012063876252831401242622024290527442134291030510406781303036991693170831774477116213423154897633689020186453676260854222467029536001650795570913714147934120423101952161428608961639595177640985203118808845505951471197385212480617397104261978884213627966347705847592040345994809600952022800616016751122268485744236963915764804521288089244061744380092019073026938802878701960907619674188265219611592611521926637114682071360317062223695569819914504803371333912879049508491903250674402498014334986729445624768196347656221837175485701688736584477048299236271377475392739632076972974055088639142563677050962569851617187302612541560753125346797292802453207582888935329627330162376554029867243030050272827251310719658997250553223824160148459954543956388106996722846665559668799110056460588847618180653410324037691784162445044550529940957669716233711246040034157336682581031504284744087504501339425215840264162795069773530600043987991759618952457545181251099014967456634687908262289345204693907078581312194981333923525992313478518231553534466385510721926647804458941204121224463080870933167838624012016098205149021598727961160110604036256781530091514538205337762388145202561280484125794319904596823289142916584547075087946396960672290631781373601112280413041879569915214127952287194167721541219116320757978459688144614873545727499712384885218153537554664308829706777810142266063284789693356208339155696633151970164527007483468748859314662896325879035258505683412747393358338056991718993314425784351987489154214790772191229693667673206653464899468215819931398150753013771971251812298627946987536774346903441613873958103920263540356910432715858051082454821652401655119033284125265326716623900744156775685050107932694571248315134160686069237921023864522787252319055312973346061965237622488445264567508400322988370261197672305894772251765497714837565062181882799321354129744629124451548154280027949183430184120274587536472377447741920053062988518739642081345873161021239184770929914001625015463856797485975861920385798982691748799622473651199499447953876961456841574512950054078363445132654474410563540674994315974369847496914361227558132045141796985696158410812252695297541899748584000982657357007916052286948678195294093240929966090080460656400611295329135224463669390368480130338443805752741829196095057142238028288528575920648299349548070894037513233702960799254003073053897153915305605674143478405041787629061611902371564920062763274431519843633582808424766227988061804605281075635102939600654975431215534731867808914452728044075649837711475933314591530402196164524881670691142317882700132579357442642585483788912863086764099914016339379357530592698041873430200591313950531246103231689369269408149866229228542372071720498630900079865322937973809322280580944005391799814235928237905633317038879060157716609614811935049594921296763455377322849322457786186194834782511537850444709083168418647914011474775048610625835932130697209091637968346563378116589566351110952243004039758376351436495854145101611720928726684965687101797663631708386294185246155752036753214010673555206159713576357551375331918658929168891774199198550837614512217494900211558616628342890775258263490939110798500638830433917017235533555852561758584240805306220489978444045186722692546497278045526538459680907482089347095991431378718749250564188238093267647892477104547070262086625356872835792953041569485143760841677962911332888829055617982537597996342497946490747408988039383762438592399328875802004687163861475031671850434307692909907471657393634162631963215299646781553982959943378685830344810367176468977211751310998905368287027325620308054332250633110111880117635988879285797752139268318053160147371970145120035233184113577217761022031237661974242446681472214216517477348623386727213942091501460735349056513934158317988545003303503089307228338528554957886234433335345654503684486896258199891779788583460166071381916337555056110485251126473663089946560914030662012936432661275305309141836284313757231933753337652508525034151604839036673238551026660314774033929501523022402273230425709711563199911015479769432671398464698439163114957932913440139473479248349662466391228910465622254675540869144989516369885095223747266387776473768652437880133703643225294331232761515300891454744336301105054758018902602640321705403197549543236437507045468049252548726406565796874287885782057180874387073248476194565071087531705407766377689279344781789919621691225991260152837958580809499435455291029141425134689834565345686493062846791553648137456538810574569728298610681875225906312562266085990759551074060405875156193340286056022922302750217803397531116539351219466401703306144303864115424914069442469247813241468486808283977209941530499971998026493780699083546708718999432322971437948242545815336401930095984022259789224574261220559261731784085959143892737046610088429604930918295581783427544796725802316889298162760822876375902814528427066292002667916158801806976794858704288151525727457830516486791817735150003094400245770164708406733692495596984831741683613956191584186189123296634765889052441491217993643663721099472510374624389136259903570983726632982116950911807916028741137808552534597420240681262179669423846834663749070808554880611532388543812342699773890406007281385637808888583884402634422020521533852394369615624820343945253198944358434941477414118086252307253008042864018853825261184743369483556808555969782434917355207007403048608708182521925522861182993236063715068387281249087578471462853737413544039098115179892071367612146244521007770148705184633003586411228386178763691871702640769072777085626081244116122754483993007925980630238029950742267905494637822306346913910023962207000853442677171025772492629208602900055743482867667809069346464094696617907205527436788634197610964155990008294894166816888476194753828783327289012555584001930406096613938708609227973328940140463613570712473552111675746063728740841421488099233315978049034366366221976890005996375755951080754196880298251799431900358908188411024764137403901677454898414205178830407569680375433558311866306757173084593084014785354495398583502241198303964589629499566594400794806437914321778444186802236366697510264261212331036365115852565295889813810153032286924446979152984481199562601023401977379157023780676938587783447888991112928095087449839008912316856172665689750984310869381206013242272257554558290877851552420632185329052235782885043452491948325363047068774491235103229834327442705072664337908532559543126241759431103312615356769125998558393533153983705678900654212989112633699513402439127630692918086281563956210122703977002628091631291460668837776305338244198355437663288422019412043060955351315569845639550503010777368917751245957163250777006486180741681439320546349323926700684067124773355032000002326344298286353036783546157269759620005895561347830128101426710990867435866447278854189966878169651856379280249853496341466539847697228134975631982813963816186851715198381574785017880993615396148285495922722972966218342698208291724691566155546957419891483128476353194524404661676725361597632912294295939394688522973958432527348785315448909482919301302248561505868782214105026292578549731309452251426149417602375070267955894157748941285527097633203117849142228814448310819931266527721497426174367898637572372975873736450695059418127682341248719852523332501084696277243745874804230363786681982847538759106521222206775331027939727423192316976523682987323532271749356814697588174895231514189690472770548335235777223060790354523813435363853243973816848675693270240829913318178458671269699717102493586104641917261130433986682158556834893633255669952402215406243096841905979604272769674087702118990526151028830532828174831775600071545880745804030768392094866984879006817491493998286607340747492567017177328608453124358461585110709662770377303573425191817413548956538403096489247287655601657387739357437314321900892509202742874727806533852751350881003358484507208657624448752588985045764289446361313589946760169665035459493664251456352334141814745066410548823846326645061105327380908530620172224269316658603516906105765887243259102998251846696001757701051503002751139015233508399662797433329475330069779072635479281999503613068381165038731035904172111611707025701332858524232014487359875136526562523863415912103336337809192620214568587909936574956924170069187034634548174756361438036064147777158194932410263275273228849975858132377444081297775424922408199856801747531903360266224173748127354574968531687717259525573414719721375456241989225855358736241858470280910124555878286470445095875808683113134227415532325171393366478599216008780931468037355603402432366340945586921055586575094860690443841175135868343370115350321863938342270424403128540724588011180302068867700829486054288480589854580131855292550897278083792757047105340676717313688401779209715696572918915175462967951521413915969779759278333231310337204625692454764149878822963835563025076810851509784352631314337063619673712803883817987984673423329463251366334883332023821310901802719702665742277657662409897124389043997517768576271621227807874057507585346592589222064885830397627841470164564291774163848115875234434221633570757917967125211332890804309766123320071340063208595555941095243032348213379875638660611264814849933113458514284506325706611466234836972348215454856025949013088824714021204935732233289732418721565474088795101053607524711001174407276283988403329973338540546963638211572074912430589586748949651208318878788235424762273388799043089839397765654067033524882882355875046701137220794709389766311220086732036035772781666561806518441302338115856343041442844558122202878350045994790630198693093799171317600328717847620306457771125161869404397856832675437622500996144308711298094688328513454245281316847852929180861676123363964395786343748726380334674217115952679940417884403398916107808440527817937602621039134041352121885152813729516290324433481185044355761381849326359076993978406362051687014690971968300693822470370264085823685690954075721021597162458427416850064100073595247668181941700295251880744669963504771187368694839140409057322032346175967337934747983312927404641715673595959707634327174246786593548427939098408509623575283757230210107431780348174363202271827028514114520558091109267609029208415543537754027752512579910536855006267888436390978721237941877815640305896335444503634921255700563372251943202114250502833521354124231191352236031310297658897939587292648822197049817844085587409023447704050464762100387365503216601465409568371704446462855474637027533329033809131573691445132225526445228382686823905692602778999601063073181991254033918415572836279204364031077315385185541099870526906578142395604601373963567687538889580810133482914423545132224216026901248172225522857429151548788904507318153447379310487109550987780900803812089801980408798578103892768665924889720189388708692745405957105723438044851884107084612069391864264678397170892359010801344919943060504907182985741438671723797251747672301734186999771001862619436821884274873962538057444707237474150703742918253141259860729954960948124817725170143576881132508130650164105326426174840191429411055616341024745110449963028168598189529114370395044322729554760625543976107824402450293209215593846807233935536729353946468625344760933364032604454425303734819278883834348656446826998692519531499450738049592583184611324744481283581685485598204520380713889221564364954245701606336556543434349729544994166957424327463211273376255146118804312781581478380948766315542935760727271345377683677567477553324135413821640825965613516242483302016047434235527047880011284306775692719101871217777232089505850415629223191025590050376761584318973518691664465125652840139796658572075396161372871771664238693945903499015411318424189927324572716554419974711390313179903075886886620332746956012789268098306507649565784796569826187301190379411114851195439060072971401626477448687753549790417104838067073723254230751704625599891009261463142220390459481266021198780239347576593044625408890181788242049479752154427895416887146875715803998177249986503359664076249500567104129550388906266453870628907229484235552095730015225959505666061540790386489479430439186739360608201212257045737382280386551749062707809920698908028521809330215240528695262779955086877026324081171231320383384837056287323603477881530316702719536016565475540027993982052935864922729648035328258376710323038528412760543264237728495884973314297705283467592056687703123626592436901028265616091300397810533981291120336817912513525138591503946452126088457285643052508728511250223245321487515906054273058355556022093061966838316512239206364814439125408679870713254143138335209317900589796005906250433326177253492303948171917367229600710376488332314040345266643152977212189909558719896492648027710395768419614270220170073440767650296868561793171392887738584517167217645305383739072139552964712296416304165819678592381727493862160861140155060390523983772244717278130097523094154452562121179845127112716835058151598699671431458479875883718199291185285750500500789030506306539670396941774347083462014957955706674386289735927831184047088289739856921566369961428010888004246773947396364522041744222114421337772259205750756466158386727777938630492716718356044628490863140196189397954772514400901672696540095969159578521147135053560408770477780308176598105683483905237807194527291520635315121874682034060798091661393931355937212078383095976117497702967236864766010946482601301087907685207863079983615230883193612853597581953837450243458494926789461157519011278432668633967809421161660661518025810741692683972314982949568441611943988112952934458928532026139053180078524184989174289896587241889042855283722663073094056685751999780419189229322925993453264910313799806156661781498799173017289684103940064487222545333663290048305739147539615789158104913839828018112949096522347709855393610360597687247016577632228759872218904281778405089685033416730959225133817597761196742986907423383052445504247593302651929613878169620211818224339844360765912582576818711644027286676924333718477593945539615997592326173452165246232793156143712759298534038050383824026672389014144840132736315301986597704426928479095715512079724742785640912813446213739272474724855701853269433117658140606095612454338784259523484802590238369604608409545299123473945015028869949996630691315280990065719505848409886939116863659452463033957795129305649779594396960905550221222250400987194684144041440735506260815425338837099129989879553333604329351969029591670015550588527657526584873476395391159290450790985372351577805094882773358673012954246395621820314856984885963974678285405630673788809868526960784704114474649714542174777483630323959713445943373823171279008553675288386592167113633241989784705706900875227721788354620158525371490416601123307130948559026051188558534228109448563037533725598936301135100954362115694439060564382027067921480865455519612121439961854163646782373100374247015438013982704212500056909859602544967172362897412881256881560648365618859726700908165329532852132360640735493141430379455829681991745140926490300172965313299139980019363206769568421155210590493632816017428340328165312007085413433062168369576730788698322176110502217214072844389044040779606816203367387243250336831848276502455109461233884868694346565853012130055209749238205702528118598112137666181587588889684619196210411011992762085472081875772263412618921481067938979952134038920688490118595272802575583230525961716743379843545518211753048270705419049944413102304362314631355021799086792328417660089994282206591738169977065966877619461668464296305627498513380751943920037118226992534239414400127569525125829138280258555270693076328887081244382893100226147876727554352706329664231265751064772132818292197062024671773443518560680202343511353811537638184131999450894529434905871206430820183017105451293814049711721301191639811313964243140710858402000882755179213825480275783094816187917146349731280362999177957007215390050895524192403848744545693452558088769906459976861791074403840073075424217645476080099642586707139840263869544517534706787245177125525900265836762467615915277876312388557487566074620788105992353159901820524219277631773782454959841333886724117733972025016448704584904890306344206652511473599076409092539107701816089115736626061882250773017429683686247560534618154103342563900809423173071987507154299403772929869791305728417662186006586033965728904763040550920731654701227338792865468507846535317768534978631268527923857550943519600728163281309765820184286707572953862118618765546669884840243832936733698230687936542123053763941886939865699383200590143526800105004556018260935504448041296259100919299747500214752059549339628239033457325388448005195834230041795495416176303547525221594380931380471527488653237805743776957210299067972502715664016825981795918770664891159577593372755613377016070138812643770996058361137366521867547622362413770443102497316310046106517335808544902134587854611529065367421257558737975547997427503787391813991641760539402479518342967223690932838541452833492231939293471111414781605921760094652814406406107899513400048849772182951892592325246807401946222450671980543366798333862074822368694845277480497590706565418195727496204614997964610217144222495542072047229755598737702598380189836499366214443622211081470755533094176300780320268506815069271745422620866953417292922681327088862674319378946414245782953650025648527471217685745866221020596900052122474401927146201304289470809798369492178499782453288662777347599712306147699772296790001840423981143916984956500793923382285179200744368754871288289933404870387298822241245879561264940726778340933170621788755199533437181496934676392214660054276402673673402240053818365546715899657329969581350292606211767894700033787349829066080280389168569570350686644891100422549364149612722624664852257040723433954217726329027739504409610945793392714867544225866320312903785194418292660879439077751862563369510799081821664381533725229677423646215741696545213659985676452116544227992264183330824900114622965377409990809413716749765711099035169485752877733036689558739965505498904336425442415721537643462649307826589426622295306900913672617507086528865011429365796934306783142751452773041477657004417592651808523718188125622679790200311012203827532064808273933175647836916244448115954185373495457106886529212109172832921400847415308645640685716746333996170828296359701162097847158760589380300024654685678352978885325867867001382338104100427315531758159438308467583331578153049152126695385954941488545784280908403186699486306119024930119668283266510283725227568433987406738460599536531322912163329731816332518347893194912347149557953800005201927343901760203765941628647024367993829264776594460897965558568984508976258057531773285872117119562102288442297457129730733717617960122064303129008916269564276580162825047480348207260582463792958676430032804622159695228189962148672082711039046404325358783178436753605320440573184305018536713310735661579964001799229029376608642496810907247760130017321928481621158324998432696694158917212520698617273735317373346786949339616888522264575305543699044367984435696765795111068679433202226856431611581873165230435126821876201001071609691584663613200845956048505852620680408137819151752566755403477598642502077392714524254688182215256913428845493360042421077057360483936389857276689167869627981299462808590541031833257131327517413209705675457083392023429415262455991397109365966730518569300776909818886555067551069626238490799062153653826613496091654159741824889629683334475393522055036633112775090542466631237039283561269958299428911973929458100568805813829120669040098835482761502639657117333225345316738410567685256227935711643448404251348047298489802259553222195450993208839611429412829884967281048386643876964009046763425408898800563977990762293248221239962208925557782030325882014628330581499407722309926534444113552742127596666706997534667069297851578337010253259635393688514746305567044544053465581072642617474398118534428429082989332940494294080311234562253177155587530787688320858801574872178933423120374965126395791265101597739630185081095218940805649576320382435351773071832717879596037656734376016046339916279368415844261275871500120669735427666845048584540845712564610297170783823694097427298634326840941480600015050513539762782864994316807774504856960398228493568813402194322720040360034192680295528357824733193303260089662496020922190960175759135809775943661105606164904814514414144448301296327518357944252439155780513346225533960277249474658480858607053581224825448808219114355387939997915008127302390348110014214009940715660036848077425667555947923142231000509674357815893232179345358202769031988189414572532327080358963775092940356887013446599673602806857014395008351168139070475572383825072379168924209987968771305113555069842060520799002735876265670498963414370226159725784549128002319647013287819977971609884561864799208900251309132038585189307761072134723141298967012878794450053967356001131108173025090455233375544097394291291459256325138796219320582643831246368285374017089946855957178169299238361282667673468525561813346815080273090210939765956160132056841755052100078429924334524319497651939978147405813020796347435251776564363111597369163528739858693509263378797188376312175091895980949946355254302334669981273617111199178190074114195691194221159068645152179058851624641055629601482196666489794661193988738930094563359439614805855522264054210184070110904751383884888668024020236051751828605512536396911597629313756340068354370742039127742756888405332665173992652486362645639403304638438446644738174061983981297456216906803696510261113188179643926534906459907744104101839202174752137001127497191608702044965141096358601880363159434872211055013935316755803067666992990594599618979794598581506846501865635244997735782970375386996702945345566844937373602562914406468660515304507671943783398426976661141391806473999443907973653104950819748494352826779105156336408438255849808972730395153063297384122390139883398938726566528828547283046677593551557561330413944565358419753861568189593301175027250213426360925619207973397406996557383770610907170995894912612416137498020581713868306247816047227547207602040970305336549220388169433650741271351017234315706688057227207037095464019731964566043127392049676044865867018177520765280093077877774577558279374775139594742776205150675319693705625605858917221318732995982633660439314833044268349598744003306566925581817200692286895077435291360863742601234494722865203354520453235536856429588506403006955635176984689779222851728733336478789251200184666863965989965970303418603380332387655653506359996957706318965999975250215117064289511090664430174427537248205523921729218169557629268222662886744661264744744085997083946370270397266535267291403072876381691537694911626810923691288843705170752724946808211297458982842832594550996824335454731495971349959862257543944160267878765727619361618834056871081914115956175601553463634578401868413111833269044573310396882798920701435750675924680443334829996308451555862839621193845191911712201651993612781848339032266335451265353260709028289985166787086687637594697223490184315503511306360412475141712047591299305029975488107026169676203050928689530142389383519756220698499984152162138867644542531642752834504309688819526741535617575387339690187496142627908595588023540240713735513307364076253827650940763158544878955655058849551788321352736276710704956716323767798373051347168778013420099065786191559709903034302344149683955274256378770816427105288585624275455909910315298828894346267060984720679356909376049093644898369321317401107585349846058265195498466689134185649312210116358892131196034355440007928944257736891327910934348580366948923729197980168693640258182167058955132787790732932678664401161830812469456818550606469185088066795939983192173059356045299868755030736973975471513029553973817291410074629292247238454206384019792757903172949773684082605681470372761529225472486720181006283263444248267671205895384073375247842719452820833221279440177519486912869184443623339859665740930757728605383919995183898831458237991211320872961102109019047643045554989741581215541869158505614392305823817773486784052767688212399992037524398393219158541912012937532966820956188442615868952049240448182844328148556827756877090230981053955346777386448476071424166916026948523049173871196271940406476354273938464800671013802371850604568644690269036129120714393205714665652393363438689240112363568300041498678497555359876268621322973960896194783019876932647543078669562677831493857159641283557975246195451586110247270895036407040472008336674832688557273671442114021602166699424184101349810443552841494314319121879623782635162812828318598539288372885998455260815943435832422211780852365619382875928236003338755224885965544883447094409313943635612567435783778397261734760350894765276144104109407346889524089786446900304023375433698392587497395845430967511057780965090587429634469392099482587030353783570569034851455047326981894245692893660334552216232084364520694375634596791747055938141553822754645062028514979322236192639069128296593132218053301069621816586042103393040964311276692363292268924241487046288785201545878735156559238522879316511945162153927277712979626546280089592552272268629411269212649500189008107648295124641101317458426210374067017543529210030144467279651364108038946993214866471273553769102029634188292634787035651139681658202573083056001241256600962019979316478208503833647416458282928215505852810313678879385668952372614353590370684285043366906518679132676229556028318330319810587949382791466405540015014869407611603687288918139197665167993500216535285812366455813718592399120596413540524957109569633629824846982454860290500909769114731750138758587706840207569829191581552472851180669770698077354001784951941954663301579273111653362670400729009701501819742333822822020585300038700375832294646524021896583532617986101222185213260446831575123916381079596155605124581291887400019910492273544141094393540373110331663698038790421412781554360634304489409941467792636900030516447097021219218416516015009638343606936860168878280276916687310333609446695817847441110651253540895407006412224193546266439189212511775700971966360184858770656349554512853329024142848876243596984022098750413797685740019574555718739538706500468983702983744610712727007979732596251324240393813812446095173902589110022643181419774181379414234927532120644870096147269695152639892078105395591910508014186283459785890665942921557919681542142799396190595487662854519521571823122593450147896312392731634417259565171064795492480704655405033896324743207676050293447198443262609557290533796265476524100292010102153279362124501797308611000582266424540885005553831274191688426757839479027198068299580222656980509914892696467241850054114202238140415674010608725167476416364885492324132910936905994212768077520787763440676499780594147764502808274167964310697114125544664506371204523288227315151905566613678964312451742255703327228520368004836859712445652560031659843294934446230437823426753123811197970351197478084949473039263981507531482173960649746730187220323458486880443475345960434281356347824374968194665522385489952487627275706763189269317271073270771795868492167301699589904740431161649193273482452195721479402772459931693259745076148365874141081438457402583196142771694703035049597120077644898316416934324737813691504864236273347558176102917419303411627286793833330327483635594017090877731576270927527559517030307866605837143551222365116561072646473046095763476438083100502805699615920647865279799398139730831887035480131605809544330158114777090481374053317800042694037776892322843555662575842647156962989758425540922987454166724148346007956834402275990613471902234540219163509183464967699220578140834375949791479037222960837047238281450058506011505436708967606241126337113469104960129632357808546640777923243468703690163420474140801414482820990129852259647022817928472828738293357155119428112607298521025038487996120669879995132882102625115262795953096839576437602876414750623514002409612394052317895100334319619014859998721758771060325857128211273827247991071255072048667559143642280561421264047534450123063477354390169459131987067893939069746332201254010159847209863312609036839924499460535335690214446167086005645408948832276944326249592345683551896195257482659659157926320374477088906312217334420516294584174868155421731308800129111777017071817170357807782514237021577807985819745152000670512276724297368184555958431213228344727289303263744477570780337039432614322823113690716157704300543433584527031100220455934084601507433760644080471804698544371408101964906045662730926754596115826860828694390788008772393645886390577556014947166232723688120788836925687623633300807135080540077418132526217696695077357862706071618245973569920411998664996477963780143851920159874286056760823942943396750625909469613717636649411013281341798527437928457236470310030260727125033093595822488386835793669920580062158502482795043703952066714069648198838495255816465298510094010886554475194016997001897422288824819933070063873299603459828918988231559306659254905214395911779248061940098318938224466831168924901347343728421939301120681515886367001832283023269922494176945346475128352802305610126503401510624638086723158428116212780573235706808655541068246944155840277938944475241406803372723379992383909217629852929666517892227260340485804774301068048475739594825479976305575533975209301838505452961836390568975486410731818723588962436625652803785390952670457507995333816289316191863015579506841852486633284939391267951719374540633859039371077174373569637929776166708321806753554693582850342743629617564428784172728579404656296778197821312020934433675283393510094005481358917851361355087522114143094289328538718346158642414454020948996201992097022852918908235044658027429860626461016811451805149687227738121168588496112394008301432392637852090959326372103642218998237076081950098151828487383063828879426827222646378178425501124117221137553244072418483469858699035634941844822580554791195306325594290593330255646896618514550048676281315535487069153209904336768922245232387713034036998673439063233143104854519675468766614592881922634226847581301567875207839131105400782620956971267275814519145533068151685528227646392911488390904102762270534607817851260986248979517819291457315572569546130243579390770919215274228530060456170652885559714695144106174244683306837180910948856347429901039321134511134974572224559324119655503997939727636893741428668382317105180302086778644569053605767546311967822518535868132146718382828183263355710271386180201736827708664186203479909368724667125242522709334020937205859021845258598107948153680553429301834369952689582334037308472425920939254974790181712076423395293839928365325956594060083890927475344540881317460255397615066395458888569487368787192156464012330882771839695440753938054689010892500856018195818020666849923649347639949952375100622664699729412490493397855119676640230023833059263368046424447738260194632523188912629142337154616619948109317459385450479590345355371349234304700419773862855186471472359338314963259115024940301931770556018996165049874658792281483150517200218305010083095402599680688262025161229952619042672262386647112957475545448904167096825435448154718316101865327344429525294712485831905393936397800240754908679163800268411198506547857439822971554671424358237385394263959804890068485397040923214267795337021182469514160000533763521496002841191318967774134075645098550969564510306183034959987354122957220088423163092975774898059278090568082401522261994250622994722323073504925961271883382772719204391005195192055626016358186151527088088528706485047550828676183727590037010588038546031471054578228617310165768948574232189151554873491980319959720041623693876358102283218813412202740382097283053251264343226215142628132894636197763283634815579144020326567069648879833449800833626053985648502413411898327587274843262980663340299386410701537944743616414872232446967588145547437308439071418275197278678790612371412486335475493318922723580050266676132201409532846055304419441719811054154882315731486995860884347561360418466820588276833234468182891870215136100045157650322470671692011304604818570875093954148087640567945161810779392417074029196570745917877051875824880145017622982071789363015125524965205716505379526502812520798344123785608461762454893688049451188743373573110769484046462594622128432667451935829199077680437959483283284861968394123071445547407540861913789117065071412095911479462389565779159676618305636813352866732640228032526293945666981811966604078794982448765777055417713791151729469932512989266546021277126701069078830333696972396790244129537837318513779994454531795569491477307970523437548604773298485240501762626191040792239231001982488743468227707288988341774269694301746199659874655216215820410664461202110555532487756229109192749714314890334765700977690215711424684691448435277018568348473927260737313062009200626614824523556930491522121205749373057212054684040751264801376819321672320414983959529986729886293219104597175251060347936299198828688387246398169926269361336775047048827548234087094154633248885126179219588105951601492456844732173791679594677475671259803803308120214466463551147517621901713155131420120737042215353473843794486218082030151863773165883718591303294185616772499405732677964300919190135438848514733387859041422162350616586613952229061859460679635930411871980993714629178286318002558610254117788360125228488373655430669058277675350003013524912850288308230858789861356749744961272739074930535538935420395041063791945495097906029354903546956845980180750931530882762234278823783773333069346745270964685272357894740294892125176139231164417512592995631000172161662291166866124225211667999742608855176615903082611005734251979540134419445295330377122573274070411407874273680203840745288631508131016012025325618385834707889269514681326661716957331776739008335723181361143260867696151996113882631613006056250066985738421039338988406337783088239712566963712588366167576865896782111220191587826607149103138936316169365753195771694304729818801307976187275439502962544375066702184710740376281760889904313097988529486530463913344257334985424153370914723498252963536819744704702240019302232747246216687105941156613698668828069548281098341453171615551621152143356564291283459455343122710805785682658258389110829174565787742396428203001542983990781141398766045298959924004599162048227953520768706032535555541384673651494516882474864288008359173206913124377086546182324349409147422736325720389693531711712185513580702503340071424499525510730066366788764103539998256221941574488009196474734523318305812708694501289224693509743419012291439363360956368455002849570042990828397096871723697922739548152232482666613339717006629887726352530505995695760479129681930181395815500942215760403175050221110414681704159221001191323998827200996825535028891487918501328150018238604398531711180043169675673456870649317408080765458946484130128334940668242124075931796651721115271543896971199519340531218520585907136017403132463428391477583709060348166560063880505336600893672862314991289049302384446245205188508596074617020866010585977096255414009673834022373163213012089853083429676067418913718262604908805003793360557146238775144005776427365835121761085011902011208528971173512833860574456149604754865944962201982573680625206544112716001690943053593882569884571988538758678724661845795040232124356464805846525016541467446472167587319456756936243139871260895664601314209433776912951741412298213633472440444155723934407923982706835519554424828792246294970179360733781384557238134538245690810600690304812198302712258321118214573896941605158252146848521637875417009931390225080139528282980485731373926953754019520674911672778698607502313294506620768530960891808759791551777764037568697939377107715199981170415462029820292805507061334465982014226025133972810091706239161196416407521433035368299059052280487064178311224834350284310836404960352274597120234982206328279173614545803616545631575615447633907158790664093214499141717083542840531130973556854584059334587715644051051882543380388612674967262315348308050868427144502427361085589044683846291193859327522593108516831299221640892499610892489267849386032881327132194662655152637755795078370431729245475264302484107561210723579899667186838150335350809749511702216522699313195281194358353414482007459446534011441586771665123924257958964408711474107866208860276348224043952596742456722671465767875129470109263887760435481216807632843024976351067899299926290403429468650742230225888655590554062887941521567967473793556718275682503712854606817148228739873262677457967142396724838979553315559951361639283301585838546618626987268556191280437399588074385531414433368280689638665820832749752503982855136279870748591875403252968264039517268235222341960470127632076537897592687261650700537053790707233111619544254844023512393733257852341541261328077138074920193577499352074776435918574684431063375797083921251825188971805408419478294846752253229538304635062299930173429431995893839068621814433972699999139944906462345855758600933028995816156740229347719712812459111385713081823897133926575444909170300633201837819430802677315414759983523928269271236671648868459293503306583399542235742612696586439922569690877487081676546526723475591493700488055008752093643488238490640998613932057766265973341649832052940088482621619666582646848948488737646694747571153103025057898801409942411339135251416179625064567031916465307743067573637902719815135234466359870213180561252845447129264107387237017839439794564346977283809311835820927622239330428908423363823811185280807397894618984336706607282506822706968011034568695250689632981674907984089396356629276844879984087311629082480220488052953327843703821475504860311251959150314376801888542666414948478697645104933333756512710768244279202064215912656322362012342596936691292198991822695229213666866563787164619116988728313370568842087799232089096098484685113111040977526832526927240551013824235291857942729294674930094660575558338247694892964909383303320735870879306798920346518957303130482688949449161668638680628861473471352532043880693960522682581209230467227000797961409441023560884805900184973370872156029055952253264292728406877490927118077681851184685020639557413495647760570555991935150414495384223794262640023200122827137370378441927333063099603609931181461287725227253223333756539983398790106299091854991770187232701156460114989761644673668414767474375193723608577365184320458833830059730096176142965408729665113317686296265710552574650070246540308280487883604116870014548852397154694361947353413525293642515317445917876670364879155454381243381443094740703735284007134975201777141731032908192021254978755619221377833117934138772444193919364870559271701734797566225372197469215067063757610342715991617786998761915765255775562135169309654466467860367673654685545040735158616099254450346212814942206571065064029245119363015974885703657152800958275685711518353985079079946744139952156085544113474817094942277975490779088266582722717510460642482324541569000500377722238261852251363712254540674241556155000774434155800386556350024004901797955690764097859981140156806917919003303355559640606468235905793051760394940096310456864548023597631946536110228030564717403481647616606639570901794804730691953393252952933848235234360756585174095913332152867421285176390164951924424833571120536662902788935525545479854801325104119040483317881165204708881538415958671627501783440142493402379935589399355695904968278548986787909798691757168529618410298638981316327305972774876163966684518053979357887616888509062720704785985005936118408181841004996076101161920504494087575851745456689796714767158305129022055704380507106642691284054626588933911988502971703421888219914518092607304126860024546381991154900699944290879812148258209555646139973014288989829442403050957371835938595989155954063376950864313742177114230698035311589376428578123737619016029038155786491724552478996137360045445983042319486339441241019471183310852841169443291263465186936692270671744979953997214859476611833712388436812867770925189699630277104596599445559178242639617030794587706781012932770309338055228625968959298975675845739650748703240036724213739889734220662603116194819254812348915721416714707740965203488722393308505288543301896833457425112771176483896446748007009987816370154330937936888238156227416382951976056610472391442913040053422263284009748487867392692236466027368177845420051176508174930954748406415822838787203150692303040501919468341256973844542990531159963607002144496361562150915160915294613324401672755732523991605484739014954376883008049542229588134453814066866456137302433330749441118616984280810973089435347706176156757574451120412405385913587066955828254161273236886527886852709010258408099228756055459257413577249925124119060366397855629865888153703284667438951802538666799578393903891024016741459709553203204831029816733874031476411333098237593445061415140614077657872717915653497142045597801578458734793408398766583125241927983294934243309819950648109350340836549526593751761353117533094667144348966040036564261224843599599227626680662603079149224850895169528734848505859471160358847630139667786539779210803195682632840795612016205784256413445718331089082225758472117641611534542325800942601939616045561561879247052339996438725295140955688164023639159372994295036210349764867927564580397466965402838025424291461638742928098032968243929633828651196427737739786553104905125179004981260528877348443292869188968308879527872935068423931518816067277060476696285660115542479841224107393601739089788140328481442387328599905027009907408065206078852887928122931426846794377782790335636863875586534143782111254959827377826982365275738308801539811333679884421924931386628942197700407906505666934881055842294763743111128425873509483921374352147603765250256914533616302800596795275280953448397162551718778693534778766311524213711435077432529917527696570477414354397686445521044117882846797694691947877853082296588972933636202932490843154632085585176561348283707647464473874714114230488825431642435837178458687534635918002633951006596949357907162466960695894053252822124751922641008469061693201327100178530385911972950219603956065847056417609495930831324421576895189419125629475234796554587602703313379596283541435748491240992276246528027569823828491881280978322116714166472585207289102545076593838276459638782718099171965103211029338135500694096146891498500060265287824279020976913491485008115082533555645537060354431115918282390967023523073558461055276787596161447560118068545551033691168126242359455031581075899346351752880611608239341226330685812438433931099777301201752203835871748574040231679023326682800416609792751690453204668083222422518300297882315161407997720693973863809722810287464756954211930156126642395901681831218387291250488880280002606990709905238003652536496933148898953800757018315767222694037622804668238712948022972038432209727483530831422677101704740205302846237005235047096792077281187917760795058380448862570021368846547631031448020011203665962802768811143917939066074267550506382895882328094768362613708398179262165919594486125513152521984382431483486958205883301579816307625767226523445046373662654007333342140233298015325352317388541083873576797341670427628272644078847142484905644058672688184426570729833744711225926325792883302044014286959144833691725454997629971778163646245118968390914238799038554378639930643843088956626070078364868199400343378797289395842828108937439604320631755472384330174656347511888425532399976434711334393793047753937561366307394432319545718170937214941757807750708913067192426049728458913298044742167253454180834504178579516451071317185975539832768238725052415756468536017533053412087748157416791656582846779556913858227034332420806338629009950150661387987782379020421759965332467114445408243695502557941404922714305431051493694096335940392051619818852046385543113806125704419386307325493475803779567821501837194761582732266185505781850879927989217033784745125147839395510914819370840633459317116973909369430639606062174655519386369231373079524264649044949152848687618196380913069807019158288934151505844380235578461662512922867465234079425777354072567148342224429831987223041460685569594466582890096711960271591598485986118279260556063571167857920688553752305328942283929635691329234284665691687728658521007483890712137287982461374352667138624433299425910964972110218158761153706540113713675706944009096938421850429998880275723227876331435463009826952276553107373653701477041207156432801225907035836671612039218829746354065870079234925487571822884703554412264631476635654136443821096920844415410893449380264858983483041967901589955538499643640073096730575214537394682660303849916849109497052267891296094958680794142096274669575773300216710045595228722847715516261739896558477095546619407655958482057393635140744056188780354043068102246797229142906251869718125301440373664228915334967222280723479878828821668466607712905312203534373938991900179618530445110239922663364822516089049999444884760206554600316491113117502284506821291964295672949884662284088352633778428108021861357277764458757078698950581001665508356573531667083480091915810240628921101296373041028156882672352997211542268361897093199424369156877866986056104079797428181777837193588425997145010341829606203937743914494281383434002959491744522593597195796607751971940190924372815551660739053333331305494216756061886664482946718541343722134611962487628034536807529129046528460270376561561706095479297750418490611087844379767969114406488792080866274016003314582598065891231174230995851392556470301131110637088539306478838139250949606719739805101289587850314442459809530201402845962000132994209925062169219050878149669960898778139706192616872743080556020236337349567359310625044966438351335947891548419893708612096074918662967027365204627217267708476504356844654096759419371740081042168529004482641816288330140209350295553331924933114060430695164223596886488795782205708524895955808061090710375444396559250339069128799650341913662744690723692066512210160170631726668952272678174350909875473852160164960173705342751034520367406316425591801727635948214516966651960281352689559746071731525378093642185142483779668095926199386535563151766964762928963619283033299657410059477353810190390550967841591273152453761624451870058274589349194518302317485565043564075197123848545782944806569464731671670310135526226542648048046060754854602494534023993943057500628104893093534532674555598457855799701350139262374035878502697155698284704981453244801700002249226013732974540850279198059888297219302667915446689378370652889894425159999455572972702923732800453893322209413078600647883437067252548909164681437735484449712225477218059604249933539637220529714693828492854523088563390302374242742050769586166341230695332439504246615789686597096561038181662564045977366861685324541837024782878946893049319356319767847071415504558237505620170332885086738508936294189617879008369776547485893413068061938857490055738487648323128738939075903970165654572211951857145902474742413835855828720677264315165225688091236957783432087431168953242000697579214010239556167300811588901628997057373355918006231582066111506170899757215630453615911397891730536686184811932560197664403773311064006556929321308980905596054289591691742596486105683350968451516192608380486582963900255333122663748890145575081841123605504187696804386383487622005242826595002699642635974299418896617252551434666098968760173365124961781274703992952345648512917818721510246771411096523305396198244996604574537943336390199331597477471932098180982853785495334914981040825764269619994166717647624033924654563903208411287687423943664405320450272798292534912772445443955858272470964905697415318981224664996333967336930624687372383383907234158470436917148039989981578740680298053878242149082099352392614676819492388120963931791591717866809448450406390949650545618015252774492127434614967997595519850383395520170703296561649410636705753522209191539694236144676823942463485142741035610197254078157956801211019633149474637208084747598130755762869573020808300222066221075027355531958734417938422043104035514052183571445786735249440962982383813883461820576255268758423188131777792662922814400365599166326274055686428308170054688365220423880907376428195519523338507264011098212156275297866600497149006524045722170520531094006002541556990228844291101783103838030989705229449161960308991266140093990519396232847778749249795364647088633069887357417503944804213922401449593251797115003243441919214990476387421757873428380602300932544918918967891827027765611990693442912952096348598597264264353291786680043530969405511369863375658771870013308855208857693392086874876496165056994374274462433600945000527311222290168850910161564593681673419482883180331902458516170395894994193910022388523799127363651563616020882498508981370744195753624797031538896193993367277393669131145760127220212840086876822853120346672660889344032404124137177097762547238706793711461931271680103780268877051547624253610834797637153310227912816834887563788794781466407634780151029957864485891876846408902911873266463037210418486287911870890258081416292230144003997911767572888165316356149815059714131908924706491384990376042607933774087211046504287388098966302571917302913469017870935779430632545612604623111071281223668498550532805245546743723470166020630900261711562678418606441926185763980382889187053824058664548588181379940341129263184028333721963707039470264473935563512156646299006383269778081314676395916440452230363821236593877075913155188986087916081778678909462234556042371895734944925303389934318834811938058101864914557472403273811045223559281421697744351042717753107429636336857863716819864983066301464543682292056421434335336057862403479478020712742286827328427317908559524211339494334189775034764663382131007232133359493897189679617698276944173972019610637054625694622815951081621702614533883424676844408622005958934285652900024509296089913084543223406968225381965430807811177001961331410827013550016019718164071570420825920278432989229039973311496334170490050811057627038010455796347615034352029746372152140668947389540066385798928953722975621963280257584478486379901858810128882102585241537130888150281126803663108806312211594486340482997954539000459901090677849439913980976999263091013416720092341708896837365836882960305339978511430273461019358794074539909390541979747926250204643242304871224203133147175277106460942822887730015474667847587102883403697636530718627766760974320154557329314607820348797931914438428718585609429066396312547444884445670890606127440901774837493724375195156337192367566842362371794605288625266123927679460268066641585192093151978680315404300400736952936747547772130047758537082166498670205753961382597211819620443021588036469941230612234372785196925676381281754949512039891041344714130609524817909479031475942194320964267545720620478658997676683147498466197145440757817508032432093826326562565556116226327921335578619729403589246803234540462411791697488685924580421146948999073031279498276982327802593083533511015828327434041923137834845795437557527667642545863609120807739560147874244907556015877731290121434501218700616666736703215682105502961390136106198145964190375650741779243584378272575681782409636145199593862207115702685063068625279925425397764054429433092222450238997629341828513133277021616700601810605046736555181940925427941943016847314313104423733041217630166521953953515699008659131190437383305074291965407672719436018589219576022415943581127170907335354192714384686034292781303838719374966828889830321611226767302417363658492180736930439655281540992809125966489005165594325048740945705208581170189011988141482936725262936285675584309982844209431925559894129007184700939591795143758754240248962604471367251809252054266996791644590042378475488941112259377020377929238351334805154348124987479555315175198297108022770304337685639150637799108708368740881653739634411652799532345352020977766415437354225382699973847297418851651639648052274898887577123789087997240841456672253190869327716679202273917596206478938403778661661715916053657357977564781745059576021489333959075685310228479591362250781523266931111387040843306516407833878813412314131370622272657961285790973378829418520266845240414287567603212847733948009819392068178132789457453304818826928779031402650793654058663684364830270781303111303222099260949971228137391108709629241092597911546005579163588521368803839214567622424589827063890559979343571129831787430596295250175021472827690507921780473677098175546055656974364715680051851636537891475399682768045003585010247947222007543386722566881979776655969553979312525007622371963169757367763221077631572756605951910770309251788259828803490210445510983966404039351366307516131216564827773687940717777203069049354943470798635764765990446668498811907541730191286062650768548895957506868780311810382863888526884868879547575317792919776173878031926070577391930682377762272826586904149129045769850020645181851731576564714429913670695230597347589685817815112487063525779368625086528895396403295961594018830361338847647726535535051452962230233456809204663669199710715840756508181261792116955116321029724036683591202532497075249273398101910952627442902445387557540573882230315156160657958916108144858776115650374390116298188112223374092681407427767897174234565067055220160743607877935963768890838676002361591384027567430547994571333565572922383253284983997402449041569902176415647229837561306343461275910331488852627316354003394824865938119204697902939113203271807993499453852529183364872446289286798072773818439122956452647113822909054159434223098858805451612090682927641563211833744245591679559534005945139499429437444102773282854929137662900090961787405669577031883924007775037612958366482802818335740788093493895043457302714979421411037998992026066628029751523811497350451676255510962987174863011868153800008727072085280988222301532017895088023520905823538135869666650562802279480506626365071102807563874768679472794709404207663850065326022711647597991878439032588814182841876852241064109626031838468740643976181835491179671605618399949933223740538170015057504166755810845550594904360934956332081313691041188341095604387086904917749327622556944866148659454447135140828954550868315971977615444215054086080342741509458038074645201568857609539131370095976081152663116284359199748696291379940546840038385726638718906485316126391543961181972582969513695979635615435097159201311078814587328970963000364548891408451921749210131789410052659020386878435811333681876602671882227477857991051853142522706286412521193841100870045775292721086317887564192083295696090039737840899169738378341603228282827327626166655225037708771158657203907189340453675793724532669440720156853908124205246391820804051995361466548211795161052584297303418256415719780098831077119648601178924299798180206700422562626293789335275741446573342207977494480200082843698842317267283339588024846893795241947376422109651948433359229478662402583963299409245549638323915084905024836899532291957558897299399269254974609819215119473133838194185955488430621073076430667823719075877507115656765595579989543237475670151564902861503126876857406385594564261220916214635278472562734821150387290290732386813227188802815936569056817007384508693378832759038118937053295762023171090590416250040352934854694681186396547508792850893869065532398928313013316761532539488061956418785011449886983285493448189801327740456878808265775812973361485886892334826009271666277790871262723618721288801603531892156129874591608845188030495117744500772225308343254941310865803315429706853276663726758289152914624000901761066357452181262095694671002998086210157632494531355049026217028738020957197655834430592012837882172510182261335448298129448857611094248132873002847656887186365501233108208615086768812410624503490842165479231159460589785995744531547366588710167678696353667411643214568024431828865892269533970434690751738859122606240134273327004369529252899378408334608832757403435747932565614837816098342168357842792467773029414580774640309845058625197425298822025438113970335817175935184966017923777532719886967813625051029087386781741036131426674647765018857043050173044088225396357415283034519445245802230186506599824338108344110135791792663854290835239918644779425445356667695036196035040437827735237370525197380643695428579882265919474588829112250110626385399436434476837786190133130938857370750845401794072781466284177041019480690874903503433632321880370350525641477069671406188358691006611137414151704206912694335853634400546621687396333030691309193215045030294908542229991579086509356387598676010522327564793338625480124672715556538597031607392390792772525943775015060788159536534448740698066605745330078345597301190364822246232632559597848984591642834559055001551899510664946117663732636889590238649834244935611520318483344429830129540234164174006257745916095621772108480200958105909803139694286737344201374659002950650350902569042919797658263645585543236929930418348518912475327384912562636488896709967032170810442107320526522835122226878937679836892647825860754037651100902394594779218438160495848665995996637111617143701524406570876896386802676933327739365634671727408047970199193729529986274645307257425592224457272917725321068236571730307256457725089264970422072221830766961705956658988173577802985589162436624534335757544987793694823616160671422891251407802520537139439392682913952326080481202480533986089819823771055869385311960460271912133015305353303663894487069759864788100192674379226861596037146779444614190081749841075897580017049718982827327051807629284116712939097442046275308340250322569884296150637889463061617446681863187756742576529354037253905656147835900619295432257904342676342339467127418098093334016603588209683232699732089141217650838041233930005714221256404980247258123311676475614514785354817845145437582201912361285876948480784749747168551040396298065153855170466507248697451824112710111314136912645093033156046821211679864197779592256042644269246672546708043714723713963950876948679010997093466820129878837860565949350076560088992854222812979913358428535687935288830157451221139981677963015908288009904919877356403195935745736696475042106063199856283359634195245696008892300865709831071640280532890537037169305642290369961739172223212508363007979364206535206868958711546702525615481690872144488881521868786972786297342290679993780689209144016104153994670793001472920395422630210159122188284884062015850238725412556201885905455157248178146076476599737881618302017801083840120378535711175148711544768341224870927457575784322062114708215310617642119992242323310737888931639729474764514558439192751104959908711080739096956561315188991050648265902261849728230300065442611589676073893027330541079380813009519961833734651498749173980592749665133572771699137091965132687316326166575874278875904995828769072644888002117794875373346567906848570619380023000862279504573108471017258624790335855554579802597407182750906457675612497005179272728122398179000118274928954022017706739194968069423142096995388643356334332545052818758140547542189583290083072999473068640104114791348921778807068321075497277714238036539182920901788359800394116925915569657192573891401778378904286516750642785202530174804434413861397228623152845090451920451442950721607342929387142292363209859719842031526752659119537955059919838598165819529968850333936482101352394184477441559762845373867269390756738902731757950024985749489681287295045269305457107807438936712837170726702799151830531946214524792009616061810990400505158569308412861305507026625619048005168693450096617995335976785060479911049595166615487895969891005281912037036880128053101185628044877435068386556969010992675519014576796961737104438366190399244378394224144709825771471799239551440145502459519055006031731688317374410572657988907933570807762132114931483519380912864047053950418896879255148645347283348030763842729467948807362255483713441107647937647632859123470357342036152956724849455668752377626509550028098777821410866066506279822604320954256337294889745956529048916281301748553325029535840531668014527724541104091641085589327047156479039569064596722177443180855665199706269998371432408833063051753023092494698285796249401724733593286503056514565699694715786771928763815289015972686867138846058741865661866407624093906932574398539149974720484978190401632727139668530910256404747075882705047838633556875431433075830044774391058645408870014929305226792003537725102191893924692418774655545062608734038092071703637185383923524379643489109180211859413493726200948141625051285743893898927858041040095080888551260386602992707705602125197646813630761100516950997208252925618355766521102498844968867687195679645144592910805755206933274906929796011750145927300628604287894588864780638504510657957406050899158255814772757954322145432756340984563272591554816059707675999723253726702663532275653828664658353180869454954691607481936872699095380530479425348520799737231774302245871878406603258698151927818396164455196988124303889637243956839461449125782726032772509333835959741266893258132760722906580592064814264938457769478500376018161446087980391367486710298044794294977072811325086541985610088246961395587137457331205498573681610327503991139332954992707216769304147764351424210686448855525529152635835172371184260789804332883593430793202758136784159996154677128197711416003144568422451493898882477983810523305355420888608087632424159432673204488610986634826788306469240637311110221281829341542239086136461484579642695619996920882740409937374246617265414652071447826617594262632536768046947196898488152082665581746012996518721410967040717437527256826444854118834197626441009623668257071408024448897013771471261819136907322675088284924583358480721748878726203816934212397543491277244735262162249488424582244166304158609874023435163796055032161917136978796093684585377335241348189366721879312786720590052430900929888907087368674189897177527546851719817429427639647715401170925046991028457773275741948699203153252501575325016318354503173662096446522245811916723938841739800068522805040285366138190144684108928937730293224230095480270717947668022514946836912940792121286974019174887316773247387734317537833015966866268557686419297938494432033467724922323914442126438750250594955358988582121087965327900549026449996430235452742516463809743046818977645455025924986798421874244510920916900310284097644456151160895053512990343808621696408909810432824178750908459005899321583169771537487024273832395827301702483874469879902325939580067393809322963315694731494668826757989360741452117479146640351054609716712156338124117240018164377313060698823462546918624737262670083041813159534293980653650976406918780159608519258792182220384766076194623261175332568269852330018381967592656098327652675178055983912783704162573418620465633625131392843569592242312493016757350562521101569117150561810380896536974579800709177107417143890390058978505640962504543780451731444366922532792120720581194405946761694654162447961490313029891698602705502416264223857116696345469838142609865252056276846116674902621481297335850848071160791736565537740807475007556049068232716574503040568280504947462392391016602214740504831772817798193868754255081508902274155603016854880160720572827967415095385556870936182179236327903144360469622671869848593343730597478122729078140378870649933719165241477442318536057958351522182352341982522875369596609862480047818634857107394007427896531139233342907604431958762676697784141360626600015790276929942955564288267712665055388682405840803492031979704378809741949576376435156903071760975991200818464787785073148832122362495752276790722686580967067279289601725060374910854823308120946645736250555740667062287103004577627511960515707659765921487375505161889024816405218474776294144922999472868148529526702894865448633411359196049942754598179392542292129527389344775999078186550890706660575126265714143987319952036149719269296669153612721938849652412890260433642338976193606732017965863609167017034603528538550318709290971749750854582478253787085042981315468634103400534951965113146818532653466592005694565714417833803143924210096287300489437187855305931359123835993642022524547600296167198047285585244450076274363131757171397221493242322235249001353324918408872681658147954332878125127272031457167381472510351453946532339699067925329639133751610232864213964567021670748678327691533866890189845360216916375134536788307580899629782804831183197073810126297468199302080277394259590286971387224922544660171496750336417640828834191581696006963016616479503549777401162158629848323106738661889514319959716385020266725350548528070641903526530144814557305977349958031366834692233176300632998924258859946178643842400312859173401054581960939295880844549517741696141756798696869196820328023619570169336558618122547913726485010001580809973037491314514399371138139164595418946535702793394813852739519804528219528467407249116314347036090649425607249603252718053237376864157727706634324114866282135585446667334634299983794867828074667182335570565207302427714819015770963995348547112703629877646130997812558592148352725542945760989676223092960611485769070547883291687614728608175173429515477125031155830999724157667022142070134679217713497505876617770727381110579634849104495853076821910891493636020408960490623288029690906780708654263438251519883663821800767157235138569932616795633971006707446857705111436678112652238762248870710703033020509868227374523258000691285001410796027843811867735813458433434272092359500567334035177177033502779384124525298852385734961130165898632889740884069138211140694961421366431611756867569444786553522642508037470490655161679364213147283856173358322166561599255707856627451058930227973602619952566098548493179492080314864381210580071939397164602764551957453295953822195136022421286898920485689178534568723558202186815643231998467348717263799336206900791056957919613769741795996225138653144567995351305369102450644821568563806512597343787642590431287282199443510368008239284709697824402187018730587284228967423574130324145490492276435662254641903863813882674114187025521789304654003558066291699319991505453067916064397491410512858229394464258811017796212362686472175368060435812734008416897236292832103480886582698991373064556935433240592711561675012001980470337480864836773115486335994368786730656922559099317420203743186010085528403405396992865309926403162384509434736071530805466907964486210046125648823150140571702044291555782181907110826182203791885890688521758940304310484840118796945564384733519698511645437678983602409622145600330040823224146150447555064249900771105749362495956216155589669661980199461394732460701577010488182082515532087091294166147461931974521052085349701516391661908538324832248401946395074850928985967304731606655712483581618231844151694935628963520311377557703110218073643312985353376344998691320794802612490529380287930127834370203633990003754966408857787297418677166854253344663423165544033607076260420769275855733028066026802421524944287471488269696778105477560441785581122431198021939587710272501519520059176018860741297668044784252176248713613934693478387896826137255157668215738171862220654519811804555117455364872407326568157414154354020945962706973793584974090054553885084465880840753900165981161045144091651544961755009527837000007265552795113951769591577810816409557223792290557452355701466716069624391777894523362235250702044421697259190366167749453233413516583668436514005816396264655528930263595419637696592336367036384012760816195208269054510023728963193745954460061045897530481887723622440678684757340673389756660367894108282089250235041919554558607614668857441134072377406639046155379193972186242211210780255271249819448268030558127077179471853490287775141125773144930467900059238124716246034275585581381109202013807878586121387756658350485329174993961956529951734557725408066875757064090779461195233552743989287616030643368361880811291582811790283727063596548438088679179750605976445646462394292230029595148398153874884885043983889384332080743889649971824319798842913843636416153220751935741357191282961295216674211628030728707152087494078238898876916561332664677182004550506152091201379859670426343767586080305490475206548824226890579851691805878746644599413287255288144190780186451202997155409305610519240790679628353936176770942877197502164633006085268488926082231779790210611206657581451177314797791021466645546994404782347927230994968162796779913646173989211262353403757553111950427172840219850718254585003946045462888611869445489867390098204140817526244504633726347985745095479176365165281706198189482714491440298814541941532052985468470457200508397822751837313376547148490995226008707009181450415737324932373805406644150652923579189128908812429985675092731156497397289782436417434361307354731612802526629256359165309798874870643618321846468659795569538721129364439570334507539128736380152209007157828027295392562633786018665756728929314064878571978405812581972296499632372410407284727567899940413195172121744695859141661759804140163798542631464739613640570930116712981291408755968753417420083720591689065280451469025275977856377034720584543814818419594020153820990431034299334281762838706581406743576338003258164011604642056080813528032949232183772522476542684691594971956880047568677494555582684609580510052912271601095878882295588856206897523805089245867466912125722617596660509241336316649951762896915104965202452586027173240789621360900854846494888159629563376150830548242994072050780635115607148801354743129209498908001286599099127550653898790323777776293273676401671880705285263530941804243899216466306720887311971215860605334738334008089025926746193379556235064227948618796917103135964502549088740835343125291903151894590432979449837470427824465415348687525990611723258992666555660737901788075936508150557506954160748096181386894934325604484261260410269111126834528605940267910039505070628117773174651842194926143239026795031767844594079310821253899838961389919061912592437073407326181764300078585473873589567747960856188868147468377818039430170618995445044907238450802484648992296656942391837793110945806672771735497630208070140224514234355331155435949353090824966645145211912324266645273451655001170113099406195566183759618736833193650926453414202076078367174564997683115720311975116214283409037656099165758062979130161298826622921962501334666084333949108064973103161374167041523387441372531723397244372100530831672406451661421838364650166223707946136061992543658952745292019166681671644990671609644773349190628490384899203249898353251808721482137926132217738742851351590140101809048642184589451965392888405059411957253135750463896782154861407788041171143967864730282151538022112876393736742162478701598358772791912753565112853656490023362771685349064495361550509267659700529904581113265245097443050295234025458735392597639576287151903847290704650560449360889041949036635831828503610663965200569653605493868407798565357900530761745730218244760798323188589552147495832214150448206575116906997023884800794160938740007235562457679238915556555337268663075934914687370053931309716709287099437047575479275921135754823286479006138756282479176464664136955404150904152368229861731076228395238946441709547219106911447842882835469959906692178125658835052441363612063041203619746488991918908307008716934347024468651315677363246691086047715094405780662697238315853655918597240715079309603217211915371329614711957412130880888861124810071561112499122664026268413872691397762708734699794621337917715261798126117380085083328838211387876846911039019165666847760066038079243146565997387433958914145796412271050708094138039370000680820781988141848928339724164729523268805045120849618778884262273196207685901343094121412975327278445164282262657634323033547373652850185537811103241048467909164797778378342519698956951980223367070506745438128745441806299863548347693728847761257479482946155234607795307665455529025511355146124182232100002211702253936621461109775224386782299679775480094777463408832580321717956786637917096395834906973772909545844738919983570164241108717182376209546567573771006211200183338975797268302120333198083356446728152196808184583351076782672756989242894324345963095412968336257241061514898871391192586672407167728916364201742881350646861239903469013361929026009153794842071640404556707309902926006736571562096245183923509872670388999515908463827121001128702096393798171681045593533361372154472040718203864968847986804074852515420331042313061604294837430758125265211264283602178469553903716996685071335648762282777930650590971096417703532912658062360611127159016911743192177928077995921195384536212337860152842880096622262503104282686090569074102883531652272235900648992672734337393382646732733074967466691122330242057812583060136769029515376084986862681116704499344259403457435216398130702577755261707572513587505203780264913181413418887993312594914361299408209276232659402352778496886375636240549227364349763877110861234357331439451106155507295580244141801031730512360023075235385076481330936674308072829431375657131110004005747215997224980199887482569075625890860200833240973049470093727193322190989990179369562203650680482630928475221833840528360375594150607060757114956355069183207406015080786454014864879408292768417282256045074756720634483554062931815022816762980972112729467787161188505873227471681806348592581306455867259298169346473766761143898555339947488849929810799641799331217341219155082045992256206344921313788487697012520308346964434553365195317977298408970821677789677550841538197359463934439189096110266648603314470295524504020358771070074724479285440353217460390555636502989760463170139902045319619610858304445764887889247478236321602888638903843621753745796384749460288659274116270593081746192641141467266947424734497796782787800281339526406728841267865272194708333876268026441526217436584770558165231644541145821423727219526649532807857514104834053007941681914071378651091385714309002248489252585641847012614478244495335434119290104978193733297528483561975143989820220674944191308624167246746764554292477148663768418083791582530939176021435759253724839401262317324624970096950752737142805780253256188828799003799683639798039514742354398279894523145077028492736138989920087216890487954721686334974475561491503190075482337340381399393606036005043155248082530604417547843398558978423160295514289111729572617025854864322002307859504506079325753423400978897992727540586981557372190278101933277381065096031309051098414826969028364435490817463698740588684803440145400024941422742598094829608082717835013019352310979248619634931955791169048339456998464547306860791347478852215898025691282083504712038173964365340059833967125965207094327106468149672496455314086726801115414895821635659724075388070788458525138735420693147359855136096950858051064223350107430572487141762597088913844526673216405803234755753417188919763218714263283649011518068006931840261038485336741603108483257079379526969994695069681081629600138067724304194920920727027640598179432847751244976167145582267809827658137376067408266562176846440687144863002231432129121757084696036988302017054652210429838000774933721209805160486041235496695601413628813253217443901711031591816965090710494537440347410273574104192767220038128610462923373605476238817404150467571339777884449015498768336652729031342365156495028221489418781424745184365816020804455418616047423761569668053654498051360604802882501231263639731886042993159378766478907124142398506500690353021958963049810096802981921491143009017327079448782063789425247682158414887374233158326714421099888438035922356361165349851806998152460744599845383369507198129042861325720683941386860958534944810521001586397110090559366067720245492921545713565557653683195253386561040223935723717587540164008577376421434392066465772769281940896784071290624485420863537605670517237420415412763271169224637948863045497687353129330307052367073632663268995379455676515372226241382747960439239255260861073683822483855158345076504556704589195134067362248299098553086316452818174742643914256189499489269665757062930089094482280675320005666893654117872946737796562462033894864674284326875234386627800880201508902579091417715494971550002101422424215033837337892813476227385869453874637405557664703636708640624401365845916030815946533481749196243226294825687726488330667928154214435097871972552899117753681714360298323404440618056969920788574492586448694520470793278271041839112945887612549616862342038336598268518516690432543214856849452444352088329114136023020184878500411775143291482865110521950417812348423083205246696866831101827324146245546635606753100984957430325124663573907927132632375682372275719915379709745712804586135074880660310162626846817146699515496114251352725258945687659687485822155599824715357422796477071210964090459032291847920289943035784949299147245296230698634142217970846021051842922952036433138593922193032799712251204595515328684915401910903599889882334083982479808231569262246637599743378092207189657151526751768304386139212577651345778763494163591998839922753644273122125970068747822478769720847842526479211196263673737960868577226191494921026479785841314533640309124072445581328025008686851662414304293334143569400612567097894347219797843800207575980937539551188194050770120474854525242047152124082480150362090417931252720354593559564656420294676844469245253014327658784472986622882925129842423887698390465051142172774613194090093764126965644710680843696106858997679611595940275103304454458140578151841122408185783857478116086785300123580623763070458235246560050371650283262824874477257703759116629357028165148860234106114787481213438227125072491132603397751851053634176589939112211802867538663700970155656684640353640957197843788475554904334275627710263015056499728616704054534419516124025559316782952128399217941164767647538047522885460226658929967110761120116931461370223433621873431437365265425573203938326128292917372559970703266808352315168684201360959258804514195878320900174616402247685871455856004352148678095054798789617751412108679043904213721712947761234170917917416476041930298028163960354126780095615348529581999296191712110731216611193209274443202581650581822098137184609108535480570603865391493722450488283042109935791463952443613516795364896519115599646467055339199934266021986485366387674440740154496236689353354818533240882499515369794227001903264895404597371931655620108831471424531966667101085231974175368619640364216978530807664989250608443879263680350071663197591921556230206621578723040848768467243350904231213212826038102408881649625406853094666925518270165907590227556736387101070843331205336514955801531491175800715309464179761385126464124881894793479702856718788272034580584055615145227562607090751549670750988533908935032905749900627182488423950478135011370168601556144383190502899727781024289910217499485515400251280262622157588213403271912972511877738122501939950069286481926217885578150503458222930280864563096313902164554835757735730521920838692216869163218032709837798231705473747371830322996886539439877140167985206126059906943778516011059004504073629735213067675470169745560640176042015044968120186392747485091449004895535955420511685215926107223985628299979786827543283042976640894969231431749215970191892927636710775718356628839630708664818040681073952818457556253300586751690445646429015027416896241266112837562160169529828669631903625504812816615553334956273895308580416293864968493018563474861887371134871372515264502564365766878422790579773818590070427875820111914269439809607721750767876563609413381017270473890208651805714826089784306804965569393942409578874929068598830472681626770420701994105555062507253003336389916594181696580952878755216895318184709365020815193033051554624405161397058243129679234085376130339109310362176785587076372756469020934988476129501423830268027161168730223835323744393377570802733735092735608112646313903429907987572534540860467263921344898738741743292190490234467773791415223136646361473485947062063385318267451085908817103822486554927704210841273123514572990699879832304227474017344467560673012786379072446948755088475757700026706755597187335522817878503398148029947249235330740434446290433482358736413515238942986343938514684152831769207390816557434336074137797907454251643973143022854652932253664158120927005863586763864071928122549334871076471450228441474816353362859450608445848176847603744992843805463184538879372435340024358729404293125414127051316000393678910599816728013707797893151119724957061954621769704250963584998591348934101559245136733224518289716917113462304052170710716813406538990846522045013031381493957875039650327257921897682528002012958473375840957137949541716711830956132123952206154208454081569351379393449707435905495824011725523660672060531205658383978951323805492163344216630258038264945048171053644986220461883050268326702673723770954505400042296542528356507871902885641198610000636715657731412410672663083741223702038114926723827403790852931140007888926759651911216016186696297707658601278337101866222162534254320659149627407403771786568445198948215884272679535102143437546796130346001796550902851257030542641892208326568623801594691719980817214654227785018755156048446516866772098977735933300540109259764484724879767667690999748112255262120089310539869726745824267201446863071579153286194504537479199552205063033061815632299980477619589954348684657459147320348324177260654029768053069222419203162299185874530660718334962823998973793075514723788455675464761925034054175693804087742914611193836400855765621453936506716127640813566877639816862387031915863214214275804527990710109180552545104312219997201959697775476677186562900261944639874806287616088601515637550581708773251208795704761161108533910954712043761294852162696127673725365435931599217388980463683182742212462559688457158866519550190152886097943666544843951851896106292024871421959129687372425521251994466901925851955019153651309799996450664190257937629828376446838863915855278914768308566015748804348820505029323317311518366702406691760059546050285148251809239803947949293356836927797312026343376067451004919522819438257909550926886635267763382253057096636935858192809186735092117262366417252950135252307507081118202284615143232323626646346459560415990338506159082375158770782964089032281301540888555422190426131258617199448189387735992190217811600980424240944455943703904529883322362224004503010022867726112598183307715632406977088043750035056760485771210271483863473381212036492814392487516414100276613638426635157216403574095127784916853203571558815788549452884281473889215016567932916479476465402311904776934493423230660043338012315022191753805546603842020951372431018806250435825773104075089405889942970200059423238065117787094853795798678160912701402804227519747100851168239650385017332159554081700121713148338671630829745219936788765271774985587450729213667681164447909874627545570853863571831684990430298959236310948895072054752356310434397002067015874352183896461856041392733460288513877187844314211813190947460548345107543561753308556846283832494989214211682426095434848305353350174292488801395829241320555863099189626654742696620913431919677395050887262205365690165450321973872051077977259031662139796003993943933585003519484707379086564509180283583205859884672745289367670162275978684166951095580492999277439710394626566176628521257568039184749042262423269561101963339023500116435252328550470102275896675287946489558343658988679807397552130200013361350666497695432757890153819322334298705356525809445103881908703101193286364844605139308018771880771868605417367267229383909490775289703254498750501529560489309713271663532238809102976419557197940993578923069583081897330694191574847126318205497215835636803344205932319647867257238973347614571021501336859745605254987850710169117096125292423820263288974382022570588167264497995509470701947811992873861280105197382151348096017063929386829186749251818868903456538192885614123764074247823675375515488856319128279525811002320146871008753661337705002810375886176513399636390764495820780054560781259738612866693528972507360484092941382096678143257471451079001372522936328909102242284560563819560966665328526717331649530497339245618114180481164650532786379681658672064861817759430756697911388951507402091117043049708793442445689777558838612670138509227080108770601931675707667764607263963427941708029370293921116621758846626884331136608622178906534864101840295009538762984287558154024116734888186724629723457685933230435344868286368154952451376109018833313961477852311727897536057091453673321922186670051701579132538610152010290652498533937465546292886269903201589590233942738863543317916072795844469724717714056862687584727171708713202125061479925550745667966792082842510139988694587841556874334089078330343333648620275474686151157416654740013138840088411709553183560245367877891960055016212932005085893697071210573231660900913014196538410116457902224372050161077516514144964082024815030127624245971774929597705593945908172722586989305465898255448438058292166639388551819056585388554268267987395376328897930570439390366576072250174360417240974051599053975160281452612123804221920605294159896524653953300843064778171695565696707758593677614929497750329552342000701208738286427713954416391614407389159273053448367836374959583473971433539035121437124561633630756654596391509628727739093153532621923677537692417388705308347039693892682206747257353786714320131366804529157215128849369172043963629259429690219316442806847899462202554528733006738088700949033559320904489704590219454007892254771490318878523292455505008521768468967348252017912437436094921092560208148640722910314415204405469533005266232236195489727289116055664419342192473656454385886999087097741420091299026823972690030419149064472794265543772405601853529763671306585635563704209250713885463923083584621353872318513973877371109837308708636917209619268755441322641303611161565181714328826400259468905900827485001374093146814748522280447460059692599116853357268987553161388183791191523261650002316958462839202195581226526726775306708379335185954084235571525380694979620992851206498741458547523376788327312664087085080882091828694289166132797195791645196489323734256324858331965295541567036080278144724009604140191287634476997658302945955372649632127830163761052478435494241314340043298580867678684720346244814699877070703613583677130601896484787603059546687446235848114417128218883706159929811675783050843762153144395373037250817294230509394662235737655271012066761258157107862991187418848556824664308407218768963261829485718694195079211852771128729939861038068846567539217165969701236781676173766744773173594207543556463106797801435707365111682527879416745399299603210888029013483706131637910756528691284796218418223469125582486927256545665291801309977008131808895119123178497702478151410077188318631423500911940640774272364999619450672902075689385933238117315627232295788390575091289650676505835618413910401313872495844479297386071076367625895950135286075102038226512166839192115526383851563754592132544489797997821952414245138419852999689391257447712701621641180932237173447048216681492493702843212914054205352077046101040683136719603839782961336636552043997871484706018402738479777422382358442804548054916002532893104811593595804362499692146208158654927898233909994806392462943739437104569038574437707667349338625592567861448929016984830084203029619949490832719231999336121532348421925374779685549255877576266214127529183205339317299278602436481738017927094531459273722960356177191053082893204134477004599589248817797497769336856945416111377854311342928799462260093432024998125907706893739063197007462037621471098289648546536374186790779250587782485921911392352643571737358943406561921644392233876906464437818894116658904291763867443247773861555682698115256152755562597799152720183349491141606181721770951907431984698626780614527751617496102945133615711810761148767084157172604115796762379844221307416743015674179143284947066583628634763561639887439786608680006319612282506747137199689570056605827800629405685547849894218768547531188269880326980103404519045399027145676864857848172036295636212233780722250313034407418822916760176843286961904644887136718131475596704043079584619093508072626644832587692134192837106766357729626457662152711730551824787450369784542993483503123123018658761600963725271439726354704532385331659258621396139120344213607438475596306264919495498262692196965614017248087447666647642513403895024314704434572196252899755752925397316496369050340018987054129784642328991663760154421748533582691263912276679084118123022416376706762766710819369790169930593302926906750662449426117766693389814453549940727672979403035484125905891903143330925038933310086425585010246763242541345095366463525905459319183638354253049970417985370628417522893449344732139790152727721434338944429511351424735409660807918501003360482216737115442152155306461006896321494559651715189383307964021078515814096328049670865790770748634734192567952348522577715133594850648982753800698999326898212664416100276135511045365127065459021968202594774282764474857127035557102862627883052760073230832789801248151448650856067102382671784395394072242322960512959553687784738167160983103093175814467007878864574362029987493802065156958631050165965060266948001718528446040810735089166172979402632425787665085566115246655527265705580807818226301774423679621161633442568507981395381801995635764597784777821716500719299593084772938470530050871959461568724669214726897883604869293155636988616207926527897055093129684182789849571534446097770588243191414285969245219351691082164684477292978117598338761686692413440023110880277841109417090689214496157331732672030558065766827538179280638194163046759662835171355345576507649713841324086715177491232096612187941990177536560447861676159422133521898893182681644291897215320414677222835991392045001574596190411276077500680828195883673751116006694846097526325619517151838839694476551746105833504707396020373464386149319259227075570291782286716414732800921089083075359229960468268188849643767690562125446559274799791068940056976030823928753064541929874955390660561470929339439030179302198893207047467719385708253406532676251170026673371949247638070135699612560015885987300555823739328826790792969291141497164412377131772261131102666974446301539557409275659720116187212725453179530399885437936334900720515220185865618820009832804497965084351958897035886674630778862896698177948559670773595795994369554337011563814364391186469217167134403688204467504019392168898441126307249405770036934538062135429082843453746294882377089015358740515208789748578204176429554325391715321669707967237334181073461056566463391320317015507427967990127731893846394156825986445566452725774328238999874319069704146430640502853117844427935350347850982778571712388521630084620461735202959201642637954673814050283010703811828257557800205579445975270012910320154861569105804891079954972141190137123749323145627086260581488167278368524856839800412852673576769732201272727089541044645088414002969235572746608166733712144543378790193590765920985923801000887943219227123571466551277199769242562966791276475273425106243080471327475883590990248385363305533025299439094528388729310651730210253013893202695537370787806022423819394507731903320566923523041916696946590413863142295748346384341109367054675689041454318474769866991689111907406307140795733418190190548740692693085047660344663913383856160511920437041863387817767480610343612151696790325970673835862805710991949267656795316968250803051624157368860520361175141034249251168393097216653087026245806582794952147703637314154994578617879691014197273428838976000822164931749832543452123371395055228645188836077053438479684154037292809625502859087537729035897254952034751063636500045291613612107215933482409530069165093690883035327394810606214736412229114029699609431099230752102461300190636291117337089296245347338427319023369422338292220427620323422465226375841534000042450516905117731903653306219940551552565703482814876697606548347106532796947639352557950859687513189142672846537144902283360448778100943678021035931479631792153176901857444315083642578684382212002632431900660126949469983175295191182559987674112669690447282197007633294023945073668871433240517935983531808768383278180931612968478014078400438624246231493528841151373411754670481904221700203533228806981850680673530343146167597139941327799139119559755964394766287799632511128891707827941655428128018617269121868147829610763629839443010129691017322732814884844919141857048956911835537717214271658324806803818726370403560890011484330102026710158468643276822036468137556542989409926264863885814713442154099259903149575875275601555011823633963131304035076049696809561925955816872383053180180991124383781503002719708659917564353386774938457773756950819650042172432498548302323535308796327111515142277403279622889426921231072298084690713395638631957987025925482632511688816464126598578523536737070479910044802263526154552407639767605159252735605004780053964832291125299643039705568116330608723166351264179979844920414228302236682161408255179554861941545744248267931301588442343120329123156577180224761451453089956651745831799345901930443779774056595692870058558463619124073387249212061014505973733080408292972579787577894363421527061789951930179695565635974681007747792248231701028502018183297003047323692730274162510840607983335075133164427714311025637036824257998585168540854841305360183031627910142024814623994057000076395147244695319569462874841586837696753340971300745417268186626692779865404467395888280974931866484250631238727081967481328462968808669250500077974067037409362408030889254107590653645878354393234377832553082296919638634556135618867366564905383778581498926994645377712539852788429784782848879003025382387358577365346846785048609171802347628242256047937297664069675271617710164766837870416272319128366359616681899184435765644101014585928066448698415866121324052495291078057270282446403805153195098111546319943766965939912192901446584578621109161107059203688208889606444722376460029059207126361268313663833158800067343431310293783768059034381103502233319539422861699995070502503571662964233380566232602679229707338016730036497069714825089029079379304314216355304273925837254273713550100926882995480635928231888673971498923747622299046330860479495513721888675909607947717563364629726405244119795302138961701892790511690910403056877440591718367880485575957454765116132423927175056400470413091667619633607116112028188755721146333827334666026871645300617962916606400826289673719856094481875361967810364791221226318407958847416245729180718353701653099591015635062330695266404421432172537788147110555866236936905320029701541740500912778480819647223553720318997891019254351209049974649072445799662782563211296796855015569626478511941593709813233442075409724039364333494760117792554186400789499581953371750946974448995339594237535013951626252999935022613637265213433133865836675073568866949575689822631736315380176413392773857270486033911497403759111886364798752678250702186333452483232951821552727077044872547039412995056732266969614065787963042623336014345123422080773908667820041284979999973795880521733655800855142545357133158283222709788949869354746945960950162214250918544411933049408370927750591347151907982204796186648047843752074063193355135778122540454405053173428108435301741864332666109980498353278371632592951156197942601970931114599104077914255880157685071405472676482633991397975959601832972138241162672658977287324542648936224887191557322349972856377099855765671698273729104543574537252761991784301263268923595456471877433811984306432667874499536783232567730348031531947554884197799090111414976398423721590711053625797992473126007181996613903816693587260599685274743442416754319874447067413927190539045625242426796446867600535052812800192492088279134887699897396912044884198601440815163877629545584879155573451615615971211602409469683547805042225810196740061670858680624096657575428657778481718275895017349423558664644912734634773999037988609514307929132056170241909489654202355376169987082725933540692915999856020889051086021038742278425960049656671747221367684730443556330800829289687766406283959956358103052935824731007750040729221693293106241744321955924963695687441555501937231668358999638366487063715612957289144638877038945100437692699627332068228052538011715126815502298009964521481540300911949996155352503926168169060572980108133932985542540370545821770416203647251824665165697624555874019627322942369608858025669332113017850496136197478410875868042667959159399898063442646302802552217307562743637157021211602097277627268904496205247719533602064370320670217366214208414026848737587328988318596856146952664742184664289199402629447895001126411095608016075931979918602394229289135729887002203979338865031780572235161868657942615315067387740224755910178114414631936819396494254068831639111131133378033351595437580104423546949202493008420278635738777667705509700732986545350741319815359600519713605230158332565700285089778393760621292233149427880555011360176391281938250219215878185904145059114642317326658040391148803255728907982238616450755987551117610782866545775754393194425287462299294398265224351162226685681045364569691142149383658934557161219343844117888844946025653785675050635523134675600905135385463487568420040085333115734500889037917182494678093241465356214596316612095660103023788479850968862396773362469350083822597531727772510171335184569159963721912864921967727924378459734827950247402151122662885818171314484593647695045440072722339895367364748813358629493507495195808013818821564307755636005201048351559738380816496631086079049379309339346349895261967654104521598418881887709866551691116732452039903509327247449043839645808576419751376836540071871808289542709180472008819801424699596012989501691100559060358310008630473783587104303342322729058991354341581020980328430339417575641626312859898741210107074582259823231724348606791922970500458103162283346695186938269660242882918296769660386861802695951651963431383218981209461057269026381625120447034300964731537847580106143392023924466331291861609520680672089284332289304728584415844111426698002855811539683305900610966197060216623933389667213439164992459934137482815401567014309191130452382618772162831092089886800790814554990747536365526648603122805350953345997688478378413468406963783410294061321579226947718796636088542574482591138670338550971665140317002504198644893869690240701061836176750258102896134942227968162273257220898587147183040285097360451725293630868680688199022740062768956128053937528516395859292995658581341745896739054617972676902132660941972749646132587230827085212820357414311251925695082261237789115486836551822868031967580351963651704277438299914801768724235756714578979756489139818143968845977053957827629458870682096889702987305692379503742318931312381989987597741795164754614486497461334043072375336660264856310459666067434832273705400276660868028300764714087771773496866276735952171761085118151501229663135664145207094965529394124304035900246040573863085726263003146569653917818403935510271403768225348102404725448171674346618864835641354357923317877024932024790700042496533814308296308116320437365858138243648331253162683333854703644020783798517162229198420436196637011124363978798770119628642552528715117669859006867508852043083288242310772619767615501126763041211795508590171496822772159796698646835456556010694396291413070250851338239029923455965653528322388347793551229160041011507151710426729484691047639429208667996516920258092477321746509821238629417153769793351531066022027303771401680582011329804418402752291227728722863415892455834891880068811157549638319661520794858391747911038132099849008837356114725377773832909045475550122841228256415686353201295161694092503799382290352268676279601188810714864302306289397326046290977180670751237670672715906266496878770066206910775730319089188650937080865826860020532134658345260359770693310450604988843903055090670303663641231594527283627228219667460631308078189102527035585243806968905372044894385533469887019586491144703906428848221209334564151911009303525663430499186976819951226021790898873475969445857688207655621061607152818792332606526373003100233125819476565000607502995928108068989049114265813197414429725944354774405978007844267869895716238603633527784451070598233187793964672928253388955960120637467137513174259885935643336051621669433452552671449994224414520098024405920021291916182032885877992325800283160772114778312499959674469274090609449894061068158481705587903646419811794903356669749841115593348750475372671853292796259077378868935098664382870774242284781951062197966238916080792806600745418540554872178643449159323790641027451099304183119705202995123603074584705859363638226441958941196109036164493376478230918345737083794566928540438608282246106449955153077791699319742524550394165404187968349385621598673319131425674956800298595485133763745380644842653203832659929407705905688949982978035616492011945525328762465081637798919651978400918622884315178862231285744821000939222581625188258085202143378567446412160403181294143118717462051825566404104734788749633084097889703303605136592018282092390659192903165486743901929789090989682628280334892443896472174795944087175739087209755189394066570248643674924850859782802516121689679255441985718897126057424310428915195463255227291570803289189311518272642965682887005723746971332784020312095986765302755969136053487269732433706459694367310489325351741058037300286275597917569733614339688103618252018555071043696148618549335396440660873048396041126278521837821967813640969842782662639948992448560563779006614533619648192627011903534059832462165707624300914991146456042360288036494638388271832526094776596161236811864025855073228130724331967555096944963655860351474176781632460256594238584899253857198521925900091832851632601136864034941157824242943828593070554512642942009837990612179309449381675332319939483083768658203897082461535285432040811354662702757895501362138793826581739007039390384936315281920926525851419041587393320396131506706378714253288892944956391809059361431538342672443271228466610667917908470839371680566404153809718377598042769037895831284237252516545311198607556992439042472906673617180847443170987916376304030492244548489106681718736952610078331667729691791891002882992647650797085991488967205977293928045546531303879555641016524325165118453793258944615975316165915969105287728402624834466118312890510307817874606459900123102372526804374377203011515940085546225032737585996448858491252020665109211764376998112688924647646044205642018581463495218184919993222966937925709376233903368351846932001526897045613898342402179860278058047159683757338885849663012813253316087736750774469334039744234479434437791036389408478559361506599677803515542548386731214862190365726381492225955795400509553354702151303826830121707534682901939186120902835151721270488944596910847951009389749578685457152393525726555825943231944027443355617557534876653588041838332703332833403720363004264284499699710753666929169267013040532918932073552836271935160246985233110003514916300339438789979642310707695969459616806644506481598102508994840560214715335834589961497931415612919789442583077038267064647814678203401233312630482574398824290997481700175206913036876606241502942834622671277865483062881488359853545208498293514901898042221428156746018640163405151001535570419440867677379949504503025028337719104212814986619940237719569382717670896939491739162155210857186462671487306757894717426131245583595297283952434631073518382811721741316679313304221161720138815917412276158102928936447344214553164575349818146967789601719973955342932217649144639225333656762588998853232515721452196893621964885587878700807311668334088813569509564359379026690093315724638204361737896684915031793447338436800726648927989574341142667529452321688384448469017040629487747084357624820034158256571930298827908246291992337474692930672327572001222566178430266358266620832994622795915546731106716671319365978671547096471766746517525708951090140812453669283361506876076283689096009841693259227946187262257171781178008596186991134454811610300951414142707071634276561378842801851034880521120672556118820728265144636471733716005135463021790939979153388875065123980528492568694283151348102317845966407738256656915834650418483722353291189283236033596955604105179025767464623388944240376102071014473811571555432832505784987665922943813124559263080187569842407035637797583553956232376856366314069359837896253693418991580053157074920051986502611845940422895277385126339480624475982094964449165537985706243901325217137685496261531746226597407782462107975857509962774224773024326198390973511542794798776486645580262930477331363809684468702855635517201116025454924012260052158395912665914852385372304866597375620808658600539116242127865375462457117904247134756880256550910554882182859913380077978005881357633473300390890907351965454921391380115897611889556800803874869104876380474816354790128776729967102093579815692775093080536890397979351204673119842054802152819176650991949725186166590794416676917376127740868728111195184138261154853003605437949846473831125646560472300940533547741355990449615974018406618242439461059716304729347364470600834905284771530631388789362905012199887746208900570113370603471901906501514288538363111388635184649432741789053053427814033526029350270603179855534247784009204021844728802911386009544357656101296871234503354949977075055691099430021678344321863857432749724955997712288663004587392085585696837691900309729896936889890345631278089270263376044733312187765198441808901709977779774254183975683213662588041271322494346169862610668822683210927595407443168563073141798383922214287318836824212727356876991622899708891492877448437054578774260871842783041327766911367591276047535223501705537458343395016060437531857772000935900117081957609679220211636949145734596291477524160457462534547604773251059927837960826349270394215667338376967881260250959513754928060261868088241846117087905149609108604704067053518383329349074928239119749912003470946417426576774313547115673133610194792473816782657965978605427104569267099011322697406282557911804687932926777249048076761210667829417499361001249557787811972209397982358403238384653710464348867811566921386904427128823896556940165796126164929636004812786841940326462901858523980050625823026980876651158875637497320119158703821908024990448649644440126767142903720728460666734493111654157957646963113230819984760102569237919220180881059366450260755776648728548935398810989157555784821480410299642261461866735002287082893576436433978770556631868996385659051708234791330823435279440607894755168025530041033097708385165516811151279707198573242637766263986568942306105514817635826817640232524519117873836025984743496531337788557268516847489046009928887892508004160533567970154587434616291084869236123555677961370209585584078925297298969192598068959491395613995115670630933488321477501384413949765798128405431601134710491649173652160348317800723216213567055466872208069757084818774143026906024256692847483522002290189251391781346462933008788996256386850773317039770671203347917480057463756958586837445973704998212260204495298001585226004207022551070964627834023390743506992443938275522448053264207003205049350288518402606284990060506419357704589406431383192999611233907057613195848698911062364263480808464630564031271950233807427448984575888036760217949597683576431145878248745511543449809295554143300790234181864934330956143448687766615211680977650101257147988424522340088051210161796840155485557023402776964737198049639115933374223049618935568476657199461868768700782444238047471404284600405466138272378339971703222274892553142123695606837475980848350642839927122242785993369327816906316870081387895642021206799084702933425488821746652478545849684916626753920611645656395916209537404736394966185734460909484937708603420856501465952864969566290214142019498351258519706085787810137997647997159234079169348424410656961616592955269683079914872681488370712549968866364843731441844522699427743105765299901584345912984522884744308522675448784561106205871474407093101647592516597590853933066497207266402505680657340989108224687121536336776262883086022658611184325027350609996558346522775172524465989405282110066062970948328363825020821574338655023479752434647280949948139121073979944156218655329682244971707504323791009769784548669406569199717834392925530559805897564167366893101486266226039668826796818964789633091605587150093417220435056254497853962492165033209724784590841182280223385996981000993968887756759637756064338148143686553327507881203991831460827047681271905555406783098592764027667651321124671178078422444810160940848206061005687345381401531509060286231297614098831900739743220083078313553179214070045171167483679774026391243503062206129486279135742853475981515581209343074879406178524813688561815167314565083319990934633643929757524504673635703176700026415711326382616125399816457399941063197252534114733020661750544340278830615380707547081050669704896442667165266502036305486258616751269946627777761812860908854733260240587374490853411124556013508379260717810340529294953095972856985160784483965730172414672801554664361614151544204128013903222285038011122808941790632630883355756187711498383667114708479819649156484634825665205633008985744579029400405381383488028593985408597554180320598115243132864306606440897408107282693605289673893772572981565411730920688949335588219663707968247754133735230788296079612245501631597409093825899116315254877954131916962418451606581803084788115494644281933535208036008053491898438590145158260038204787037122574238373296058732799863467085863229960879467219846712364485862359329680336036914085889258356918333949515285199004717336774344176964278152143661551026875323096861632302277665903729539026588020973575918155523001975257951091424125838943395922987987591500942745043798398501128980231898253708721052240162513403018339953722818135971143479798620924791300965012488701868427943190055130078172856503566264077905576051420110913495047837549038377194796884233801144775608870835665745397423894983196987805230961556994316829036885971207970094210153615057127213254918240832117143817702148978229801411259870728227724254771966702279545927742004970318133327939295048828391931353746950479329420833681828447895372326591223976997815293417699650948160909058734186940673383303345088875960014592018801954265223531919957329395968581425182654943359493751230416064025592421081827940604428471953727573262788590127904595880817723115510704990039528153244485847515527405961703610707659991314049306076935735682134578940759141985299789079644718618051995587654990952542768274576485050891896922290319054794129629192630327045912777778929802013778896199258201556010848046633174220195210991323431264664388786044017553492873761292155003398917363380047036556553559106843603620414886649668949075000631209386566407152353651007173193114009924790558495366303038808301653761043943288347332856736165734739937761848157455953702550743602951416066649089670878360478691366761155056450294394421807164386055859235014233664414728854628819153826054848605643977548651488816437236466285100544837321848262683787692064933249093089338228169989939355444079929197900196134635280818456212797250352621379035910653471980621718484197528920712792024732054808219385531664827580835633528707928188378920086957164097466243574495270072500409281527192216686017666331899234431236212820535643757602934516854329709758708852628162513718172368870745332557213906494846868032347167164513030638414781871043059398492813325950784561100573828481617250807103256862714372744125413531507553563881573339372453454916061225308199759341439770004700459814433003021426989746981243792205123924670252142178713341466856862167175870522550376246439433735386069311394609472906885226717895805150834708905148248802812040766439770271333127939765180569302516924214065675137930970842508538157035533277756110121294953406394617604129858446953436782789857271662590732967457005202799466568442638169814454188729293158296158015007966986214249823089958976011763244807687228977753662424496874981045312143689906267485177543992442468081359004767546711014623212381893056124364949507933821237762535557505595913972600505724170944244592463242951571170822583747002074345241126164887616366210263922986063603932418136660226318730972131681263479617340762345883018946142156162499547731526162499808540116262478338822357800607620000998049398895320354014870587310017254219715837320917100722726748847890072978682202251606091869352182342810528704784980536921476285832657604703552313282339205422389698870071167750699323824862360975776021371737932543805195443615866849899186184266882628847207655171971060007872886552375383018627298106316336135518710725012417091877994595044777240284198149787723746603795981574351624690969581314897522867680150348474740162517824997399309889321269912927368961775924195155918480581479934860276324469348140563893951663482948475574040422711313861969771194484313428157208536353891920168682398955508466410893639447908820410457506587136997402826312750587465083127458213163068415475790791689448546891473527449640608688984047419321872402752747875491425258586102113789056665081538649117044651124785871814490216211854023262141352173077792371587571188222462394240138744505725876729086363951843745667437566577415652368871618352874168391425204406575044456646775474084017651327020308723049144310540528459510933075791135926899697316282769502664295240418280181862166588463139899708669901620882931239556903942720581705289016045241783231904245605602127219272513601123817330608640552428675070534274550853338799330064316550391539289359926633963590269083454709384124760008003445663077398041739311075919827742214373113179917689782879285727043026778022045351071997673921652275160259124887564483241762390513338932525834336271323565178482597898172927945752279069346301237207671611730916444507272479300551736026721269995721641353249401609571238591809304094375704400591563251702457421823367253134390546434258571521995024142200947300799863302512681769464031778972852250011378757526556372919238348292093675933618638374474206582798902983710057486384565341353807745977998663093712455335352493884628073766953660193692474679564242608163344459731715030859031023404561739442220495638639712579895072654998019441085612447248694506556873865594825744826587853975663055060052714541699091365262244158420450517658518734056666756760333761638444602163608441223535027502125074216307079249387658804817696338304076738796593701220811869273781004016518822839675711371900127510956627820259476483323270316653219428999603665952142226315942512933514576777201460815357945532559308308972018108516045821317612102344814448206812987925487250809024746660426723223138655801510259994396902033993273809875713919480275039138790692168000217475260756853795058200698519841443666040587191014250924157288302130671825610730281094662583938162413639298471811042680819585322717781250843082477011332151509171631709876847773433145780000085205600886085773720236937980511952478144798368860647653286100211115337675077910047424702703616415038778409565634082797622267663291095897293042507592231422440785729569624140588386341782959173497599991010053897642898046240724910733234359472269342433964499754126501771955859160694815632967744734813265120320005974167911171746253184402110286985396465358811024452925862103546163765197838077456334078314512448286969045504833071176837520976932476840179048714948727669132625165474791932424305337128902243864228771057396098805431524192665657271109552464522287791753635274630914858152855936447521361897262289484917714021710673234587398246533488552286889737513436618539953605654855990126830157023390121641059852180910816127890538124582491675000886805674818444719002477972699800073417926611847052046872037236613435020749135684931734593774881151869341817428573433995329556775584466769612214982167239807756654940507709962560498907506230265547356727241303870289414993794872404227316562674960746468673978350502270884184421254731617019626189270023201249563352878709619203713660269329941392779903297833406901854470853201815969659539600077945980663251146259002351443496927815488213252402253922111899695253288334833340170649158466144073064546311514113928188974790719391759666768435640477450768817097580803398195257208883057572406520519240832159799459083692017696774427329444498908140272054672584972506810550513864220053566743496774442793788182442068809194384011151095903632502116506732703854406313224988369016831594394016849795492881999240412946097380519117803396644620362538849685361702786872199032828099991916392394863519296609320799357187515899288781655676323905431506957137796749197554575859325492203377686943747373451556793535605948671521191614058920115237604617628194052873094582251467764077062434058197584161804334373256955332572296099814973853227662596694191294214722994388647299696001985399842083672780324594279305694229125866742729972719588814133910878775181564788378066364570140771373119180869563335130476945333486053952076594741477392684517871740545359613570700939785114673291909542436222843603895379911740739110319354805286744198474353039101347475478879431364877411205642830368715555258939238220709032849086306021465658952268588717263222104888725859239246208460356102016595809995408296988036102073358501565100783227897258539377718754787530563296151967399457606141594696422824646063185398561862628831163131789919676579823218218400531090365965905033207609518318224914998298430806720282053311833621649071094532496155772764456664826998514181983106401357761305566849031522881323248422368271056766990378509142607791563121842645447588337981541808417691301788249841547692080534492135864511614481841052976033625568547505406225323138155577220818913961563943849462667180985121251070590036203968385584379830375792540902612106976420837844403255870664260304110645019643360512479261202425550808885583283453822341853716983903568769134169547540223250316557654695128890216547443747562297701391836300270481721485466470518344599041031894280045209652560916952311154481227097119706312261387732609023340147762762076945355288414126083733968672083068999763285169351794030700406279862020524786268414835880221914359350330019829307028190850407326993630476351571483937166760491115359972994057013390393086384413906290458052758672057576904538226044815828582755379999195864187488133172687927611659076339713801407289423527404710421244971351787381622988451477034955290727671740984245326392326718695905700510008217310966586294003192312578826072132140698385711103805246885412002109435160271117543414966084562390804269153196047509873093082909369472490075451697679441046709975126007640079544218462480585631290152082517064810914621145336816665092305999713104982329602137271836414067382041117436662782298097734722748948888280904292621517726966184878501348701599294228011072647111127667636525873944562924145854588167613737024360837363254269731929542284315676869486590812996801817394788135170590150047727246593808309680950744166227898610614391041076283995308368020349108470219065834666983706960940797976249612356419524159422270277272622498564860030757558004981520196001976784535916837564170911101928733631492139069449153530450832325710219262384883869919156463108751815713076757919408985415956515993847302292551938528954219961294607592649307884918465630941448616013013911369256330248741166343965274164041966189137868860633428223276751321866759816082506805254603343976516636004448974409172180364792991840818541296385874298061020267278605022172288286164835300713478726452429480654888213716498526635081944352115128148556348249632073919815820802594514905222790140925347394580264738266042185082746709666205063924877283423833666658286516680305062121082625039009250675632234152259336402399272885326879724867185617139332865570364805060608415060278509151175474774013109697498787730243353695876833826574998330106149408962124813556632865697142618913485826247165252416529269632991297487361367994447022765755437969922392638210540609299043214474905901053022392172967753539340007394166987979608319035663785024711489936013357065358967211593488062485591151641788221243117357566952550593821514199263203380945670886776237129425960775974984521805218647912304476338692677508557814376786118098007203606797719935295834164357777384593168954738062691119873412438228922665626667063558991036825065059332708099311101931185269459499612444531803410333789159744189166710863433789467680322260740552555833190831515722657993301303948961829674360190306512103291554036916625307346507584218813443526667082789919011044746518574785596520721402510659234612435154252896245310612693702263871325966249958196703108843319973479422791852595843730635181683875668150196558414231098171943966727243589095988480994079162759302139177083190085865875265769482383611694877200330693167049555917663546785616194238515443100457159301399003102024799709235048824800088096025910603230362205597743043906338418248390454532798442434237951122110333925623817551340155333855986643148106103931466255445659519653883302697865310269716533514973337788852383306667950207416592630970947223818471627221952888830537617378583995066002812828289506091265720751330682729826803509876893503135799035165503236508939668762642713517605633961762278686246006467481446348613243297007205862899335958681015392430770886488223810664181860786109469634888317282440410570789037699841287004628570374444015204873563864944822363542489551079095512578004700081621550254633175508597822292316340167680019318839265023960047496484466758599862249342692782674237378938189795673302579812006444587418196086795476845497859246435124409893531210115509608513915131417141539206329382187513520548397600478974677991481464633299152018598161222569398324077748523839053709193757300876323844807192252639783976889193041033618940453832544218508162250866272112078774527581076066248391537019486827174604969720961352388910613294633190646174294146429399629588176492639115294093839060277097309639263609933162877953439629729394912089248310259433152452430258807554652759383697969142173752593730207899437752781786707082592842775894173733690328778226135414249832811135350317646824605358976695576839894213187607071915062543670377112638529407212205370090558504235389811937531072695799329476325600059724371623934799849540957387328923879691950521009432859800851935117966787952814278488315676438906951283806085273273101063380814279811535335750071963456269013631556794312339260463712204171848838216746495852133736858996012507215308429962737486856433943750790644206833026036058609358074729957171210888579531876594327535423999735334277913841072704704975287352543368921338102769435235652538617922493636836576324977046230395034277007646876581831211271457922252596166034226328547612197284374345085800638826892921959331744513681469106310051743927314715109777154095308516796838043031414331853946543462956641817590502855114251990257991559895553997137397759404659205334683664998728821753267809292003588605118357134010528357096992595139338194658443381943773608746737957378088562457581474471147175886641040009452247179042731861027542406088657726013012232587959987489178508423289725930277971061370143437791104091919165840714313101171454439306162212969313409778887191540842419426291670914334355440744527645083623971153387146265089404513336506877630082118874080309160885999929038585204219729454192573295550109566205630897171353429081709765407798250028325609856935617069475671192764021480078410106221778066605521839758911977781709913656539795122693224225637636095013958185213990875520982357074746586237866882401882500826491080055607011204619501324291581355613826073057142726870303302670623143691677563606132396892321728708070062088406535901057209978734354523372635284826498203087257828655815364279598989294244907759332624866863924924633972539182615635856743096859583412037787279635052815358927700664030043585473870811291926197759615462262865853352415697505015525099865578073955207673635149281837437039737078722114131886789933524574237143058464722959907181922788752190709591299797316826012701954589754354265082821012797782398428250528274868802220201624608271066426256594459461071415540255735259374512884766012888890383308642822003053546797977658678423480755795602487550625930759967275508675182082384273008304216493440399857778044472425163919749007567440330645864139351136364983390778547374653865867575099094953128489860886617133752525110614815929433552169970445700080504790829415304708016317631380647506693263535940213337307432893824894065422345925092770398692912313168920605648522348184283175611661091157480492411020219307479789585517827807636433225949869411127383392688380071560588247128140194661125424893375147133134374799222440843194320339207487635872396631030287502903052589977667739465284404325868583827802492368672463992575167357036555180095238833987350482486913186743895229595782184117376158990279936879928723704606050940229005502010259763513923937009408415775162014416886154366202873671215673814521957276677295583939808944371554319774153817173466657779014145104435883120486523709798285544571314321139721205209978473170656949190622993814015295180170246837579674276276921548132152372044530349459196364323289607557565589950545834223056288386362365572032177793013665760139331160495678609223418979294637762634635790188630030893333819108391001197752407954322312498353489059732657583280991295737583262742648981987613841799168262135322129211853874268231233965817874390620443810887354273693159559728030869814025550326500127702893960954317969432074527083989653384138380829537142113005272058444740674234356011596424308073142234968442888750762697440953867909789727519518424376140313634883740840934789422883193115690944124767296809327900908932804717581718212084152199660426451508831894575993411630838760897289913613874904088478574903574709870692520808365002344570215988696296520642925545005630397244810079378498269761645911202670415968235217558778682245628779723669516309613635363397887008743496300403211965200658320864247306207036906480776002161063774682791829166016859151081994286196500803523046355483648461447477452985093488965746434722466750045070547699023825076822312280098324211196761141887980948330155857357541280806582999966277058952248092178859578838387636429181043730821616888974776641410670337953279170524692083221193054448461708739219588032344844496251902648483331106175243968854803816420154844461555375892741050317727476075900914091611601176786030020618189167647943423977182526444273655523301890154140896702195249809059639354525573687226905946506139758342006440187316044614076123920226646761540887247841291815141768237318284115709309166969573827459273653808410795822107390894565756035466338081366880074407360545955604764815792166787619197541424045287521388233118183763395953188526154687412090272865727740526395217559115786802133201019973684683903549642409437318380387784184613820197933934498000009072445305839216989495922466648659496349070280440429789492374977744743734990564638521515557933854600321169346192170974006169375071656869556506435919852302103078719225475945529389199150125039464626641314813697367829450362394165404526249604358729913188230899748058563036909907486158861469814141219968802834871354692896991298872089875585573020619511983726852338133811134761491725942085734926790033746055074362921483984319207008590566768745947885984074448561187692269133151307682752461788079927969132952395755207707083949018496608448666896000162025886512962740960435095520662790215996555032432090923533332922431505075179819504304927321764399256106660594713924126063258099532836292166488034559271839255632052586148608340346445710545720638231642300685622261510775305884548620445822870430159157378841523427627097197007859056742241414859004251374959312738893123901805098683862202203659744969533002891494940304379231252408225217202313311553792441944216647001622314881904755022978767908804712117405903021569835304152989138540044283111691175137702291807874431858179071141384005865784953767515758413324625872505268230000216593662491999208383366641557099857339473572837338944949376672785169981953211532139367342470105264819853686772015541471604329163567993904184963826559264307706543900146194644052385250542266448063658682199783946539870859636161971742376231989492733645167185275640797049799295760333378759015045273248039418323254489994201321544079732465069015058287593596212338523072798383234646505797955949875048551705369862131921947690743340272224032739210504266615976681854035400110979522139574158091385246237878935005500951325344496851212669735037917216855726047191287176043174130178548712968713585091252730445227012982709235100366666912559132947714052269395273212045532014340807138669646751987719422482638490969476997316464424723149481045243234757433686327042011681471436576351597700810806844800779555677079267290853554691704637917658534413411573614845688089958803026616382153159772777134439104826671961701880036097164572769864725065341544339827178053579998225693232496671583793590176120518072464007149063250287254127111180910389656890509857418337829509487388439928308320025535046020605449476921451399708670657220233372512391163664801107450116631085021756490147508968144748524223679977210478509471120146974990213402168858488568583660138255623521952227605680123360115182016817004632075393243154881212331649825021385669584921085925494985727236835999205940591994370508562149139831368767820106000786438815822115197489537476857908164713723488853205349584660933265866808261201489948682783291549038189496024924416906131303959936913964938418008267991713390244268083186730097798087144318099098015567865028725462217775945491911675291945083728019101809123562391581903204095025488218691729850544135118170817574646159806637110553675605016581499286790962669272578997708378615476935247067756223234496288302674595605435634783099595318675597360861406486915198028790037502728052499493634938750815686281695648730482250434783080065294399590529329643433077879041770934330815680025229138654208604388312170304701226420839233231587590829721858112438791502722457956478159644252185137972222341810583199839365414651199288183160010252120720343327049206133488398755366631330301120687694512616610107779726328130521158226142959053593047246841079315164813863275463184354095319810627512830174704918009579898949765285572213924532038416388841030608106665092694847095300665690263062056093466832757366617389355188733479455463544305831561725857027085845895223844047681640335660844379424681418864390812796442709286140701939944876285609559166464951194678898302568214319609419658589358525888753086006294869644078586434934531854602816622045653241439706290101681476078623330881461083046520468256729038642892261933286049235484668665032671619974958422172376432298983585791799561757456753685682718586045379488635884792883533862832592253201393469832666958913424772936650300823507594456802088730006614106687476906686826369738088999803318066172996525373993841703449648603170988173567080164254599111230236408641192664982959889002755683769646162687438241445676880244889765180055336696011544865878043997876443406217472307114701401842667042666201793619374976657194726998193485158156412077681603685132396765430060649998504602079731100713378453974213370606484319985181347774896775450348273833017520293852820630926692341544115700166874934239884626368395216282108458790380072178103232336934456439369673052666961921265202466547603702122746687935382836945332807585923349870690235711999602785872453700859695608642318557525669023004071527401049037747710675111641364019501249398367891454911488893588884174649645144614747084299635589683871083083048693346341535270180345263479063626162601074879152272852655180804886696611359398592356276203927337560454845503132142130232447383028867858473570746490242313720733895414927914341720852091649873357441849311218531592277005653470453044786170830443309922011970807450107406715958399558246238330086250900637942830132169714084775609318440577981999865950698039219258756862955338388391826540119124551100506124422151871918011112695216200246794625438025950894456323419367529164216952141733491608413542463186902074475723876345892082631886610643190025033923320221486735009846347357414682611945136690541012021033472625784298446301740339529409676336440956119357231098019781625784437935372397266376449492560198509152366368393294978920850571369511410055390289080909632863239875125933126358336840346578923556904503848937149309044157472863134670213454734241436936912313041954278524314275154261911304725400313530309577481477295686057868079960737096047927688851928137227752507286660670203936375538059364224981777281273857304114074910583940886716715350405565231471006304013823084131247752328821245219285258058514218849820298199662471582559383874485854849590757296946491729794240628962173631507862565758084797304634108317202524598628482922366641610749267335027354480498480109124756536812019697866409264475286678989365494315018297081348344338208484134672876108782159847132151597569273469115265838062881456483300320289306941945376401815964313259531787173984609743453730965921188824314799033344089945877800505984764645496972587308690681314538168445256396899809055290403900293848129634379333857954320468441063148753951994934739332398233771874435315306150341672935724698472011661254633787188217998230801673447173074501917137301880615989632937248731521069361341648272306931174548306714413690840479586088255588431520927631418124852314200532412545991885428823754494598739684892942187136278009908089957531849553299125669744409234868467965938065720830568645197388616461563056624119499411399977845671060577837070383833459107950213747880176059151844546069363507487587021872094423921355231095232930657020676785405142693439124559100493907623617976992858698703245164877566848543298873491026020055493626518991099154098300806060616445469165807776822069082963099795328998836218250626004229135032586108832001672223966373011006174591393865614858510405836113169652581843019255689178904070244464435352488165547161017146006701592236604909949317213393477360227082094802293875761068428092498158881815301416170737677181251126894011738807304777013906816094728222168693804482935107088633502084714347823829313030850696633339169665905197794437671550371414370636539955223779611785515646619865403491097265070514852121298379737069322783652250178123372023505870714419870683021341001147974110971596724811437903236592599005938365191590750272058432364982850232462832312211225148795353031028134223480368034919717115992210726447649567257378906562830884078571897826446053683206146798110701144667112001822075136433665050618302912631406621946415658844252882366111082067218656229047445164747766674306219727847569425195626568511360666902485782995187258909049729977694695440416939742127793189285025868434397038306029324265606908195655485045650524046320564596237439870193350186098316590719227237474124910759685014598562288899638680206725615453784121893221669876289237605555725757269483879277675323504297880288992283944684730342660219680709377095387840235579631988590250043595014534062465703553641860517574284938367366241667863589896580448624070611965404388152539407866346873711555033711362299888642262895807842939939309896007131707678164262228848758203015364630205013146974837984122171975939295194384752003728522851031741338994525725994976077268745967486965533334489019713715164847857156324905819080497008419577674412369903502684128870569169868924386519586343952842134475976089518977700013400839071564258680084802350342218549686383228333804656025248631204123773796398941532171910938331246222424243223543934189013945557759541251697232887230379977043149822332932267417364479975060703770101766329903147805625314951058268464016582063044864364731664671364463732506591157473955628223184287361197532468680957622826961446917510131653351960103849987203980200245479062480720694842139334801581443311937361233260809024463616107454013379968276528865798627865140506264029439634519138279179325960975633212928758159303278105240708267906588919299253264198389442032239973271711545224761718410919944689124095591934133762676891288379050244426329620188932526187337125608301799766881566191168230239564570871753087838637307179690825061647209360520487962701102863261911587451500378650719752951123831871796901307954124440350076235594336131384477566652197004138470750688170513385854852207220927200763564050918983728040316121466899460494438792290368754495768350677097354339806422414053172240169175773622821485774545702612695831982399923296135484769932739066900532344100878993948880054834408030388122889985670358500487416723221487357465277342124204596709026250358587582062781962870737253468070666466904517772453431969302520305805816942201288469397345074697277041169898223982705190858866076668626631197743183657549026032596825430702701141228625256737006174206269241389861169643389257655488319682490462847971170226051903059775232173337345715570917807149496282734195223230368301921226553671862502661187824145615191902206910822665494335193397139762439740887001090880257040397981953477423840284706907508322926253537409385728249936255179656209846739749581931763581253314083263458176406187938780007349458705087190469601553954305617708535387418475936322620793019320995912746550831543156092378229661511403288582684025206185517001079196694666314481436173516412046471743681651103710037361942229535484266354341211344286903758748998915018954047529535970059686466210407733639785561524654586425304931527110785954417636803415157606395862982327161787033668122420357504379686975385185945087004481440069799599421661467005393641245476807167901174367373819768322867128388063010281029369790981305829116544593500049181941642512918907581711975152907434283551154939983061411092862580296933002839208965143208550476327540844205585650372722316789731170010641172682001959919847106487714217237530283686729623532191993480479703340406989702005719490112238081014302085900978272700600038075957657456738535958318814720620972123964619108602658260282246542112292918375956900784781398952853439398205045801976888714871331674245262166744853018388237359164834486318589690696307221264898881211027177180639290109566196712467932267871283200162611355847033819431849015552049398831801525783963021524544583625583094056550520794020797578120397362901057185559810759113897442385821859700185613694163600370792639307853539621819709827266391119641796439698676318233268748797580342038193802764402613742233375056985760455463667229308300730315967481092089788158888423920279368184101064435124758419231689416248461465982029400346580974199938210996078144589929841384618553187512727423251891192873286230373285353029090939303588727864810680071750595205691899424398749952962676535752459922445803107114903396379321070885832069877016673537348670139850216677345378899601481448019707025215616964523834360703209547707377300430954480553738375948607618023574140563788691601552240145240690635138719968781071912191536549971310348457806801506015635791796835549713858539341048836146451685407284784023153523341667062236587493958549872915564856113849162092439861913058992217130276438802259442541592677390137428915111974407610901179315157426238141639029744556071795446191428924260344182716175115403297220829974613000859174118114252859840920971372532946081688885439569045502910686328614468704486140310326445625276603746488576443583206507993909041491763554433392247047922012024077887883561908438086321883306433452790289514654476649773253852224653220241207761740972918176612910860274291568741113512616231396017565067983956649009409242756366157786938341099912890218068060820971969085129604259408926322356575865443311139522667501960552038444983170869319354924394510419591511036375907131304809219676675542736751208257025266424298568000865104833381235559317164763467649112803032146516850343125828116132524646483635333894947934039542571625934839863958971070122131354894726127442360245189640384251745764828450126442611742199540571037603591470703185804737255215280119714589267293811323942611597830731144052848194234761267210947039956870985848767614109914342764868196253150448069774513649249805238512111895890311716662288117504681511036316724805068678973958105644937088740879369124497189224548460109772208374099710790133995529340926719766629637932105581303650394764934639778765021322194038789679077416339690713765125900183401073923603829100548547410087843236987358757787046449980155949999347610608961735502117468757329701006974348072158239640996304426976340270049661632174230119123217257771279853367247780740046159894220944813669920896610757135060992527458308335511877743833687141121376996828359282516410351813041128909207429130932146587958451012328848429520664805042032010295470241256809271815649965887637793134275166476923430749637611521902585112189771243657214800549588888216250723096851462386067371382798007250002188134852677643549932401531461835258797841669432283019411689104883845240976001561099029110739625237341376040209583831135681379616253864780429294989881862000562296345297437667618942138844315116686514088748065825492229891147702581029717991515914610090093284494410122760774632865546052189009873334336907922544128435751624314113475187965435715901391566551097101959325055467695336833681437502040964692207985343668641008578498776149913147430446284949027937197568873628402456698297639288605913063304767304695936891033532391556117943128034952439369694854721389879485076225940392902883020233598068080392122465421046708717494998020740157213515806414800570375098464251374426292101290243172235828929850083209137291636995993138840848568860915666771762128800522071262528476945549885383771050522807018247372759963568195654927279255609979795655285806381500625499905267318365973764621685092281107700434692467472248699365368947601021818647180752597795373922494414518658593959311257657298653460607828847327362484659128642972857603327260010366373227817679576575878146021901699276017737277364720152706119779950070825364861529371742627722839126396616298532746783564847316518824414399149848647658357590184427009500444300838948351468735618971745314881925849284225251769119806981949504631090124088176512391415735763983416689948443382630373753742759362706045409227549551996882401050007982656434053956930417495075589708844029198432397155750220775870961202651733391531504775683466494919665328710696304287389097031425205115043354624757714546453191555433437897633150464346225520603784197562334130221332009425581944535431623274983553812510902658002484270528648155568756391101420845738035430719411290298660835076179493460761999037772592230148492385514975769895473421975687311459341473046751684823064074300614580629526736100925681171615872339048570958119721335704998557734667152297096415854994509802098285087835121374155443469344108745418030031688923465648730880359650890773216587547880570549710361072402886560725986007556032887241054225459322259122615978261286901684092091853902380156560373154038361775235790529612186049958610654737776538928435834491695939560981897148963743537043515915842908495061956283740207694486246357659039039889552173145791045089519729724733308262938074183542872575053792233264137055663726224773447119944219478780933331134713844937708288373792365519729392968790902759435116882223938687262931911291750735911642880665589755031286316680281925956991897432558481331434383190906522870002381153338221362790964630473066739665123389241951844759839897381260443645691238145840807920005587250375125912363936233803668578371944332627926638728104410727277698183854373546541426963578179748602229065676298453839687370411797701609535961406841188834835420968228157761973581149652771766518220570637683285789554778489317654992451638494498184166613858092068994977222827320443669749191883792373465289728907474570159814678974375279535378056919703411440736212589412636300187586200264274877883225420092093964110282910230107774635441933390515572202998540111687083376536143446248552252005218063365630870041586202681921939314454444192658902878996852628396954159024713668361558163233478598645692850561811691503136713555251822856559502108030820371778901989895917148447803821413390937160211439997150207738892460899808876135262426449897862155102336066732737775649086054003523436945059415067457970545434438696887842209981348575913167367352180490169924235397685160889729716529950640736156799327323929096877308635442456190880955864310896060859828539546540642093436453281723328892080114854168150639098874076886698959847138409295502091377029354982827192681644928301356434679722687788995129456768214461670958012345949884270513924873246873783220364578459943366196333816730413541044527476175090829034150056365931178204623954610486999151291224718442862589031798865002957817384970470795712039101196025365556010181173707657672820672226256491672335851977549569797388606030918918845075371800714025285927633559686102883369198933498226682852676679733966919401175008965488867834691042812207209163930018614229706047866391637645819948242060644435758429571363324519486163508032534413653610294847185170335390768770601735579751138840572102763034756556653108102359910516603503438028036740105304627915505288974686025620557158935312660805621328862312857593826550576867452994936187748538027063301616392683317692387178929228455855213384566984470078079830398694095526932550669807001657049868062970625342390719849041543742464882911768274120215692017202269862279240914084145649040174601270853566109124290437567037733649991271403385296539481348272181407395124885692758172399518991506556194067231723394370488000262530759161333464917524928911003969144462496859132684832469844851536794302776219306117833754297072229251613015357567005661416516046830679295331982142355719121123596676751748856649139136072835546130360968816789833418949196497937435588397350660655875894801223259632330668449387423718222246510416949976747927410596564503092650112105656514395832064363708279647969764124959413707875591137222932856754928217662548891243333488241947030327183725943623757770687537987414920438080851764110845974021599735665401139898581958585379932912474414036247880997874116485397401758116935585336189870840717951237959418988383081885770752493943386067159510279614029254918619849856261922040673363581623306712555734971860161562341034593823277395349823892518338571350203659497360490036914844839661813421457811742012910327141330315697944202537942886087515908622895252274716604059356815487446299674169817967684653661154007922405651934138918716361305924687513231294609229375055979178369319896680909679182810591818154610737661253958249170896915166927332058923803170732787370936623827853832507886327870491892764854337945730271536678004507138598655202563086705341287572416623720514903495144224627907426769795538350871266471561005871457886693383952221215771981745139077352087386822071742399773985533214035057551799177699971830138226523801195622144646068830144238579141200432595007405379050193962222852638547290107839196990890813783804621998525715272205725077027370265414050269208157802184272256475786941457340980141959696711627033956531596160996743623875957736996180014914026353133370080719606469323393067752127204594952475622883488045837862859298889622132666671920998206408860485480289854317807831165412787222124163505517615295717038662505437554350466658636471052975518906306813325439494522817436049101170380997641856209932891592277077647751189872298486810739673576738731956626872795582602413097648284669348398223585717811698203441549579679736079883992017851091138759028879440496516907358814930960913415883833184941718874882797403486969299114675589313339634928712479288105838228492850405659372387823441863265594337564690329498418129457193366484690947429724314407539873838798265138113540866049904400757538606623805165854497553457212241045965059350833907521676600272165553406212509809600606547383757721895875701202561978685804478587418771049176013610118518530434069483013872696038034833022504032373332319947626001924714201137967408982336011742483045634496684311210770998611021439668778377370194921131664288221204472819628630207177119398405358331276722948872706337962345590556440130449185244838516001190279923973563315500516593437514480601315464708114621217087557522420064873562497945535973231288238506424781050868337183691819768037527653211832120209697712677978532091440115096942954376718444092380601450215930385532001850367235786019707027168977547367707904470460359159872827733011253973704946938355761936652017279439995534405043465851056484193442735311210227081871514614806718772042908703903123465810685600539179241908459518693159152235989625085237811135478932248245562863862468842255550577584395946654999331272525538787448517456008182852030443516921124143928374264565148188642735180992033755623108061095552034904757552657629062359127102034906828162145572443489562140872359667586229893866123550280607599331326546341194598319849701776524331503120390016317660766217768574551755690457053303595222581401351463868503998758286002274484502612226561180467728037812822944648160272209799559948336222242692804439018364521423082708758152368312074654913117932039457708859729417505632247033390568115659570491739380767576857734749621658056208080892780599191326245662687125979407433612176737831286041870849215135027129464223188624002374696127161703528149547619607466548751045241833648778488278663002927459798652216927784943650151642118454307686357514853014868077484474232037244166157354635443127980250555030972928745604107213074565421133604268008137487336864292392717769089608884066201234793965795795741864969211129362412956910498068878338028654180559573084718636474097438194473737418824087202072279158154890877742247607971144078362048426982721045944962449970361544038479845859353879112192424434071385767810395384572346399027845666287099664987662630441699150336948661804778172077199441835620212053304248732020165381572473028221937495008231975037236183056742065903085778909270588722830594654432148231198961217843148926452025178650900413011144145904067545256359186877884755491970685362778210798053285572334047311760991464006938277933429790230261403194679194879491346614800609377091122893909757530016014418734227258917889202777971971283985968202896399127153284548524052850362620282112072675998527476751276537260119790378288609520645138034549827469448528493626388556126792972766752186345761132688669332203552354475459305864046168329224115254486547865687136168178528765074000127072736600251272206471504778571053253361428519672044042693037169209664852934986971964187017068027856890012396963596758920508326525534550886556500533322367966915460188262944602486180811034522443187832893969455491873950984224968673658826108601817807606812627641521208169025069743672906029269399618938286492520423746773634806651459485619401946882076512560283488434620961903380265143517414008445628608368216771252057043129260040475368001180614979046446439980401722943959137201436217475885076169612337358325053125581189647664863834232083409875939699363070353558743806480721997134121757536609125541181100195021074558522817393459448375517054011791738075357572915688852369081670144334427016264135371075208499416258609392428438472428032643635567140717400679182512372963951030127164867927688265620481711951665689013955056254209001797190762816622500611873593404018515991963841776684122950754053478149574168359027145617859278210858677992761628159271790220674225134830739955699387086913753854812583053751992857211414340281550098951849245210817548315017714467699670804398767892974892327530944240288479770928584149878311279253639726045831392290117058894011143744940753299149223041737998875680431574764789508629881613330968021983715854631556626865441642218855012852205123127833854224345760814133913521813876585505027034712172968054098521109354573114169756681175286909993609948081451682292152311417643030645233262090884394766857365883869618989971624948043437909753974919949907891749774346736286042738997752407489256947943039137871970956742509761884394076587878306292260172768985346782809420560031964409188071073643931151855900819283234735496190709647319823612759951002892408030416168946339962698228494090046495046040730739630125156548997346812459112666329476911693292038051907433724201448463266362003914745628758788785550039408823357579882548398441447558061449812347286009545374499400959025235378786488573388985955941122988760893257868655802803171869868604713538814611467918483379740492800579669661311199516054028673453490538947840019326923200391022400519914612431182360388626535397726595605402646742912359974576237975135816316831248919770058007151537879075526786876926510469865423808686729821641581529174166390062937883193043526011031655803312206779096173913751041516269898276092744844749593776559511110020358418180126110306250503298770883502239466952710204144018619010235074255297094713001965496059029343023879720846746294113014231684072384606434599689547258731251812028971443298652626055770869335495325303481399372825138095797470162451226365013919014218915372101845633879563587624811423525877312138468032938940125086012067357121430719151324313699508205044147833137049093125523462584753933713321216112645223090330796235797092468789002810819021623532307806948114333506467290819103300270900739737672466086325232442668664986184807765195505144612436218467655051411017426285990112343419116648176991844036530628949675826327591009911660484129121921388858012764889969163443684496098548727856122152571768471724311128858700822635431210455605465126186406667413724908460394294666774741027837808704799431695551878354041371737015324969997259937834910871398706988670523627133421698260987225075700775791924671200675408441147868088471293401466407231364267508732315835671926275689376223149031423008223794291434148051245569788474163429075887670062882017170716748578406795256907970050071823550825471408355397142937832443984149206737163124128267207144626203175810119043562952412152648920248653824721183046020606579715995094600208760788763328361916240531135631570508935755788078965320049075037677036156467095700599882920154806997594422187009076485701334549507178721231161167499111508048379200309412777693781074612153051045117362262412541226292754717822765279019954971955016314417932571834946581478179870021824660453316714508350033400176913528005059213395287324211779546086656914099915658656092044336785897311049228652383339400422284514850429094723238969905049219612870302781670818931263387505091559921255671218682351967383442627264426875750465620625883692058469750339043779712565694567570762832782710116634316372820323884028731900464026814073039917831543430171738747509615889139978224888264942412936179978009872667614859646710540485292813228490439245292522315521109911665871629718106588302433283010773452762156731768405254451976950998925474489223677272536921244389311942479256058170805495775249902861352804571887317794403061782111775702747071173904855111104680815728788106064882111753713988146829910169362903938479402903352257848681224024274652990068249399572134545494410244104971419503416069293880037103475554751313748059223108047231921279846360151662923703190922409113612514734022787825425841473529940069793039721721505673966172843373057874787607860140589317711570045375087618722388779119174341816945873148881446246153452830702702541080796342852913423752071608991512529162323127691456442249348691087554729948431340688998028881506592713334230520666684137053628421600791621778194770665830962926212081366417013205857849689754016106212058051809666292435217862603434405539436758434096222710646004996404890706033808379593399879991125661133730344801937017476446712717220245706603275436710324618044561619754800613621880917169631253612814967772131673353979536803703954621828732295348997600301030914265491015572562641576912022875179516254898394800385304591989322389683085470296763860304931849847641258639383654985733279730577589375481611693860855626496896783968657572793649388101416421157447604193601902735034743612315985477310928562958488617272637986664710988883478628235766799168803287485548873614349861661319277572896140513555332425141590489292732150222299008274618842532056894351477448163369714701862203704165801626089586290647310421807778756813410635831828056569076074695488639944942398107963411981118293625547889982653021644693082863768333509591489090725924499724746593669844113466201811963081113411932130798421293262254196146922705773104322031607644623529026848519860729846811589714359538302261982472469060359581367869460771617615784548344536526318801951109204550845685999123280070657592811867018186079193737378765626445958552573340832477274216070956530121545147260965951255692672781396269632564613959439311388372185929969352864318867683096658990858699942079255598918611221451396492230178696153266720907646017679163985826967500927612245156681773599468188535840221797118005642662018313575148730337891752233682159440316504723260457797555013810496674916011708960429242793638014415225298484663798643592746645309824380169151563280461814727661320032281409857798586176520070399526520625719709916408549319531122092628345566184510238057027012189057656122591070686474244716936501717223418039915237319884282867582403284369724110368392410018368911627229277075633920298250625952991149962412678842784710702130748014963668148649146852525453477863564155861037873609983047728099173465340902978333025167894579449650232739113014635647344660166935273416507544716441049320515419815894590172987181564755993293783454664250809583576170090750282128740898039898314217312302427772453306814254775800780655850437945420569186231962435539901881364200503656848491106143539401775843895299606487492902256957540817553825177201234062906065787596125612824121258679025208639086806801866959394450759017367834703158890364025911053405678662928314018054738510941727747739288928097300147939165210683950677722426689649124566778732417369244758260589883645665678943173528547349800402187933618863349141721197513456719449820842133998936551181462954087929088463176401089739625615681773242138990314260029464348685962758762948370677021692615005211094059453340490466133108482877701175915359897750307679099886987034272313283877513139872699970627348612997417496992235615822257898452687265972423722199999509429833700471198557345468947923845456291101186305088768060300285159730433751582937769462608486024495209026364312690741998548123803346069002989810561522098771125473530244610527225969231584681890120216270858984345733792020133911909519614354293494334489426882598566042592948381083391726979012618433490435806897271383868138164348621517845583001046120613115442312757170979610418964783444640628516322931236772506307391836837579434979049015583455739709266411342554079454317887188843393301784003345612284643184263798735176216799034358161892020666259838135060773963989809288087857739242128565029353650318371786433253044905945762275266241738240915914589283419760795540611375163028820150369804600666718940878304971892023810285926243873793800143573526989524042527224587470231652530849931153989829629456478092775905266244027690544426041427488225805223410327354394846830028443324058613820402191262305031118357961951769999310448151657314602828435578626549145048119861233194647059808075907723083043024839201565049163985345902913244469868716991324997679521975167440506852573054852505808416835210279032125301342247872063466469738095195630103700936236701060851367014105826012954397919138671733910438459409782460125681122004791716245706769157654483690577299216278988886233073983164339094471618617814519563970303817230379829737419584612542756425734362793210275877060504204071432656116908138160755164444176096583325029026132228653962547160962563449947860630737217714037183176815956281926549862014006643415852285012564160508767167217638485306900912331454866158904156270168534748407872215297638838483890487394902310056555188821586804518274399828574115452885636389809799812850450064735802640062673186250370749378330318736678068588689782332544972362925170200407180765169460774273691530469992887142682370289133809351168687883340762459179613709624626768321741657642614856504554520197033245520566803231583413695759342981275287127802395579213933135323836615278055386470746887647458840126709442015555144151783531591951475225370877863036625145953050927803504989793123754236149228173909552393349429711045075113112014242590332681396463175500485095417592724524033923684328084164593319032404915359475235369859383768065255090548041728351625852881396537578061178967688730264951574976753741350959817181976097335370837488610188738859815277879796926843964472179883112063187425065250788213464192732384740430727301728728683634554684337743048933637985482737791827833694953264768863034264337893381759037370546635161610182972490705493097666171030521162717872694906543672297695659628488886912018616157869249229471019083853461624768461305313281776600938309146062691456299984558380542834570054760693838904594161874503002585560781862811029955550548946686762003714056295334745589815963616495483245550758234351726738050755808416896493749417838550686236037456320961043833633951033038299448836900389948886310730763327365561970143665929960463023246390103220545979965094266200654589917489835367252996407165052713585717510174190025871396194788748563694859086555871200358451786729579956735987011154995598437790403751606423157775987372572947684621179520984714809675739680880826901518939394609981278596907647184575295500576964276185995688201366917635668867758075096768987608002499763578128977131585755300996261137130709432123829965851202731613923733058974352261724842419875232703963666966700096392030402230062950224679674404304603196819616177729845865675708398390243454947795177939558960622525675636818715222378350715465560126782206618219508040856201547418941832612318016257619014851968890424219333886518786947363985767239082311596928320039978967780174831769943806020332414365768417855356689659681969629873694399045139089560230459443277451326530709178133052743415787986980410957747104452464784233830402179801781685682367389565209509045470786309500677564707164956017006216772069235889639398847914041056663253433177056451466640612360608642173434826584269884439843724862827559222269277581062555851729214196124492793776363776755576783383304577775464875187263557604411151994176775800810495222771905756140722562645559099964495749235623718702474195289021015118964803527358408163331900378599478554585262471408048476783676300105185342458052926272299832296149099625761157818625758223137024707577214931236055166037904396441752371855719787312185052016838765976725775736762566539598588435844849829466573971733682832549853467125637480545460603590512720107796357170850550042563923623090191825570855973280402158915581146549022962344225197955379412263242905865943001144357399115975947670034398362990236765588916965590106776033229609232124186600900261765008884504310308185284554645003761453893051296509312792945279210410399938598267157168287542805370971499176894425372551127611998623508805893252450860250585795977807380486695291946730269765604628375716731739243806010483376630067464506163968335475551952553273337075575420106116013474035027923313784241599420335605392024394407821523035028022447013203242845462851932214523745787658643876294141212504701095166778323070678671827255391562681285171784034146873136072078817120259715775447723649303888931635522103002896802303026075914693317777357824760994211586674850391348919502149480149903890547004532016831423570053648650211493189390497968473276938819151236309705981626412423280185382455311849544940387834191519371713768266021193096670904524431475150886701901734847656655015974875171164837479601969858471597607075848745166264658032165228843038326086587055556106182141367856379601463109251250469433913144831861519725903473883246572775420389438378436450926465667800784439166519544681038729757967019178342570381266424057824761808951077313559493149814069903078162497381608350752895816636344392011680715707530726269512408597305678305859321281327047975693154048490505360330127719528703511404199435721116841792069627833573296881950768510972526523667037278060063901496390718900928894265723262246252904325860264000470610706106724235541732978760938287160251235714919086778781211821226310270633703966928622472519824439928454947185494583251288059396486664954295532226687844521776305733553650462658275027045053056962299619853618967528890652034595537657135845743572404392172957288927698015067825544813592935417449140312408497131912323591443805725093691772447251430602590635934393257607292008466211889216949697217313434893381915649065106362938786064439880447356275575939409773096226635971974825021256971588359156204545130817967923731062817609339180123542313854762264364160252273123227917057554705141452190606275107891275807117053789908812459976102992342241717095285213294254501383622650679494047838169575132453501637926670817893661369727991425644948773659004753320135472580730561193883574940640301083858757347796401875888952792650059197958853972341880891530669159855234998691075034431769056444527548040236511707859506261228760398686652387963106341070719325197423235273032513509680586875390358606937520560441855667376183123197829719657090594622639882474155027935880028549658150863659097009077706782270999121060217145371227173997954034313302123257691511173284055538005813896069966836136300772285592015292009531778210862906524595302421917116228674121356506764665577534492188821680543460462850216513117676081606410489116329052455798687457305585385539856168626706926423642250198692641520959887824019044969054532793864004488312319291010315528831616273427847875973686492588504817384722345706117406272429780374831753193224810422403025957969353540135037976502005671388869310924500925990307957299551306311663904685017630538388135950160740771406794363018583527024732245377165836942357183066070512612947772824659842299770295778453357446354500827000198310059444132192614737219777492585935281186628073742546920476162709109523956098296961582635976761061992427744099910906296820300401078332810093294308098988402193866956006352796832277963677314735230575257152406236488215025065712525466026005153951892710991399515402199977188397766290786621298419003668737022872330879400699617014636017974538910230548454100827858367739456495779966511424164861015203687525804980991242586276047345339230133746368137438070365247361858824988568740257837415085164228400355319559042113805722181377254168337371042510190209395722127433389034652716637653830259287066931921545874075945469752573166777973069126372292008381509999063188512101160810224783543106994258819352107624971892870752263059470893935140889656422700621999119092333161977665460938297585015586364503353929991523613834402260446032171928479376086115202377361747730553359674186955903961202833087671085053481060167230929611749536548138233731836935162383353982581918015148123928411046716400665104551622425054998591025989675683730546197869134635821280365146800148890146197020147726528179161867574213178562575468335530747807864308630178433359900796141271561320287110868036620095666638401842539442495697962727541304236128463283213306266266628129280727153616793656601952609213739721908480145339291556509616294822573392031833078633141832616274655783016505187257180760852334784241909057568078805505533974502200530147617781206123502419337022136815632412968625351720549240511080453776225585675349515548345070591487557981743284587876927553676984512920094510715508355429103071424788550910693728383723287509762120846297932542140664303430445271159017750881926218561034402534812804306433294321040977031916112876595802487531977987954816274535112612325812899393455400895652372759547383564039063691383047589487091404560195855573108351890752614756254943873353066224179325895854053631132542789878116932217024979534853735590952181477166022320682789483470117688198108861786914590015339886334434352990063122012678773775991411759115116376317397809789495685323540669150667286819289078705620576646984532129118114878021728427813711842770850049873052375166433527824451089452363805417544124681503752579143342365548835823889134098224262028762133991920179636946991762990188877250815997275820240078087645421364357474539409617742025775859261192094784967909375202789284637499416284681674377046435489048296080615528435847217384852928179988478738331994491293422257699391032114323045510765520372526098585688318758456733200787391955299937901955535681929176201790758622128802701858064416571647804377335319601770450939743741398875371433713010914753812212094091990374348123694911832088695904726558818222447795341172038597862628506344342514788213523072728780692215899838254577139229505598663894224772946046944007033192548728073442564885279358537109282372596127448719557366933684395723747917883988436936947112500570242419845851768267925099861044293705474845685969608885504478253476554082165158693421986441270881958164526718478709003211372984709004327354068824351474807316242029786821822172489586773923545947443484688080065394616618260367605007263648598680655891413347115724477581137516836155849117511006367579244525466822160239653311440972841132105040567724622099843007160148654058574429538323860949195470587823320231680056888935498977664097635486466863034844496350904243074811194624065006216958668978160561810560047977990754693775849569252954220397051149225961512981725811263303374012760555546980630997370972431733523276208266975151119440228658450749696681721589734248935020665625036147227887775016162248537105941847424568191472064832521182812508959059902369205215445381821954310383647184722147271131094572403427526457266447020416919282382445380672802921107636836241174293778437349069306060376759754821070478501129834950182070361831226857632975526069462293142494769875325947734742719151664692265732852310128582454922619998810792477688950036407349597447150048558868017284432141857923021958280694946630251033948001372981009192244292932045385742167923648364174283881613652964568097936258785265557967666522859871391477763223334238940354434266594289769513085571663522108087679456863612166317251321930828080891212033190617402760263194802689766101642481513740476836221545139181297665985396692365119837807674657945694541374865709919546032370107965796018813938862037466225438524560342326599763427315794615987199588291126960267970420637128324055883955603945625422693252148502012071968036643914302630331923080475039889339841040273303649076508213327533091142272730653993054660455433667119349456139851873571909127604149844004839644207951427488846165624226525649734301594736452914820321883359883785039306253827904956306677058269034344697066375689263029560828600224503813690797684047546548217665160187094173028955018342221581491475581806698119564421052790664617572789870805328755386182468473765356914910050357277245184619929403626417544913910922669215970791197555663329109841321745978415178554839851996051488037780639529353521237888937472960979729487556138653692965673917537671974471444021852830131874288449436332404863912025199195502690698021682718772270675930412550934196311672687036066983636670365821971269713827780956150818074347407856085824333623202686611138025222786566507878981821936251126192961264685454794431706685913576204407312665744223018841129632252954298687102036336872429518147421904232856911956172287313144643147981666193056729557312716115454782933993561272719671979802625045954345562799393953263307970772187132915166325187686860039806761478977895870784507766041254274168217853647822413960682337300565626854037895448286258764338501095715988019470690176709509401392390338926306148932845531769063629126416980467631607283891102181434456067230344670864478142703819017207374239502791221586250607654829077960173863561995806727826861287925156824409232167660704437828100660468497301435625290445259332588853369113662160111885232531935168857990225973922932871600026027387804330947387545270916137445400365305951624626752297764882278905933607711368510947277232191032710623452122382233537793039350750982044730248512163527055777694128455292242458721415578046963540051193834825515780641843786786869538331730579863494459704005548773461290799239352590337043315805573777812695949886799808302297661752668729595195421206294806091492954031188282876850051740563285224181089343690186769593417878852580317278383742314624272668959408285987149474626469764096501383387892009718469612652854153925692331702942466863331733991267910733438494406008762652078927288061539136991513014286850454913754813187609773235069796144115320317760856066359820334069870812631810253555448180985605142376284503354071988620372240306813674515159575794169963085226623040628837495604979912786425292373564285612990306339619830144345125637434118177229105996220126244637801820916681491957517776942914026052914438926431131404240409344446548040462775687815340370221797070689599047258001175746644279947438016053310922779323107044819664728284486485795385822842355035457823293098953131849837127739106421303960135008992813277617288706415679919732534921178669823428592833292172678086099172884494319325363664532607096688973317673898544458811936549964814252807700729492811721468765703737610226213781654768115850399902336479813187195706667431145281290191702683451111075966653559598204253589537444233076569831278509178438587227767784950834249497647924484069952955159791664884235408342349758004513332792624675775670252706008905725593807240567540047278349228050054540270930785214745475291578172216466397490767504443998677712220871099091836915494248661220575535832689591643664522064526255276123245529624418272764647165379876883494441591166161867100875059535991490769020210340440812158478840814856564180356752459328619341430419429491921830431567951158248598927834764053683344229636714948765416300609455058687131958370194134877965197332498943031789328536268636129568225714880325373398767791137533165851648212376607143389935627781269041697214411918381690833448809669055230811957831336328278383885611666608436056916060259361605903353907971402160861096227196593241697543551565148143197956664394046587924455530980974815776639355647267785667023703738153139425327846169026136809018888902396301829847041028792734873358221255375644193412822414065443576471023696292271879032913014195586322571033328484026458367281289798319465837050829535550273443562072117311714964016470075790828425071963173619665370536352331523472348911784244307862943551003990409864879443786644359090443816079625494082647227516283062862122349239383018786250996674625240167790623073267534359716330201487997108799478503124267827726757267615670718015203907924543789740906704397173829806135037672326323320039775622017874918666076040663843338794344376516356178552310829827308225546921241028502462683912209754763472104758462220602321878763363857833076672744145319781183637882666789326335875465170899976083090954482307855673938286751138196091987221312724090328696701220631937609142755967489735973895803537288666675689582114076690575210199314529826550521960482983540186483825741601367783939804139997666178093914528931467018072753267993701488077049379917675034544222707144902869468968712615700743044922745496561667288076093001406209493455423774842360822363936561673865203526357926117338215527166814708139151043746219039349956182609697425872610780388010124649604032610594080865714853127270864850545363440627953045187843348562208538097206367729619065074482387783280548571014476790746278112559235895737614370556015800080984719549294113234244508718803686803731147562597050460058367936709047569953127388086721982954898017255402040177853476456121694068957240286060743088842903695096801670962695061908236914746939239630586085414942631836096864503702488006040129220380316776146887931918922201738918385576404361224306086220327758888496655147285285376095820876083183194939188698868411147825366390647502425783102402640774533943415129000721075461423101375087427126198836344489621626621732600042738396460576758352401687998665514315631584279455193147173369827853519953278516867234939389258019030521113528381809369276053534133881992039758999574324372361887991153812585495483094086522892140736322208069321868564456903174877499477054675900683397801101800404708118314460356403429708230018199470043500373420520297767599504337986699896762957163003606895789682153194654896092009230191126165174083982247162020659309291342817505783369859667395918447772955021424457481346230898395694169039776915264770128656285571932066071750624111990601346575510647114430863322784186972372257609678845226233394501746305521302626345279841446411038741325121655702493241529258591590539890132944226531890628750375295083657537897718867678282383588854481206880835055106556982744149952412007787296900342602514584720576254984541465337725143277895214084880704726857402692571111777274198307915783769575815426981868007748198391555610508245230833973955199805235296183629570286036333723723493665555323620534182471497569451855822758929130009152763698963109247790580268262742498211018983722603224442323851495372214337410185507272119985584705301372707850468434786392046618034297597160086183341633828539382177284932591823303208664159202145374823259364367930005104206222429206202513159173101538316085634202916377730023020080014515144511973327871041179056419961084086238948903165132909739094756689417425909699995562502888576158922216871983118363438441382983965312413752076308152275620807767739895628691302055643967317581148448278883796502169866153889107767573160396475955121699108484986631377212664277032718529312439717528052319465255114516332473558869126652127031726347093687078205722248050038776169108071211889553586092099974883747025739556037595129814323501011748593005713790399506034984263496413983577088746669822228933544971270101532995986069171837506202500534311865836113790914721203819701771617367677612622354409655182036431124645753138930488722329557916746148218040857843454303024839796123996709733627956844422066075250310916954841436810507943105675855501551840831055351687559597587972017445760146009403904885149926834600631782258272690689525650208677198508004289269200863368514670304037561531797970593383178535758677955240635070417623137952806926027225037892226170318766495962250842357674934571750582127037609304760497009754022991124515136038691744622314855679280452614546236519437435544591945558986782205060646706556518338142004417820506613645838996967178840155407008714486782938830931301264559284607919079436366233904894406777965254798988667699308249457532789774193156248436183205092427758228233987408068040392367637344312376508842283444825924913807389221119749521477889427760704341754808870059477567270235884363093349997959735621260130677933284385172226140697846734696720571582665957004686823909001108335843931719365755588346060978856647198203555242746720540226960513238618404131484986056731846684847944337291594670005000796000411609064220333973017488026202929557853881698849574624833368890179138124721331937291769081206703443867472215075866445513812566337113627245445384817398327158696492974951650494093646915583420676394776011367136893287632012670043951472151266813940542099182294782251496756508026356512187925892628713753434221999534775989867661064142616974973191002487055608211267287805791519533457817070523753725566331858870956893532977791791460266364483470658191797376794979494745142402656047016568217497888691234875310055441297498764623814342884352166207973368582634663965876382834263506031719562367295861248282550713869757591026683913814539260104789712705325080103764972423899817696393146376674430367016800880792884758825707029494542308858232030823336872408784028373035120715659488008063562722666970997632114977143277432276667395586057554316688160283779746147469562161136157850065693497596660231222124729932081169904562422032067946302991826490212356825655019062240089107919249191579222937218689244221798855218684788339438328006855448303973705978307822912664362551953265632342345174226046303014394364471692366483560712719487249480129226695033938924146416805656809604007492413058701403216601720479112794842437359775453739892818432243450635608343340948969458192451973889857695383830355694716342003582138375797835497119723178173446155461081967939477807091951329043531824794551912994500466298336763601412639614911081162879553111174142648225766888005170108442656962047722001618724129712401594242305411004760277553816077324543238423280046373869912815896976735151675194788663981796696213062827750954281383537497724260404945609340562394794471433178784625757353335090002528268254584076809616254497569207237333121467610005663915683124674580143031149812268486781250106408630581710063362929763646265421760841164892148579517417585258747956112846423487723016995057508086925177596555941263208748218847796842688971754740411063782708735534709106003815552266476759949041847015745610582921122803771133541446098009190567205110077570946206561992384818461314574969515244229099889961436576712971937063455562745729032954599035736321212146817749448325586889261564341900205612071228020182077431853169700225909250184100411423024761221798713714838219354762136223975657156507019189680917099110448311007011512183072601323419395932325876149582537293847720391049329777871440933929827470496726799455943436070047272631618160330179830607585086266143907170392950067042383593131583101231146563624495364936156315773468494557286271966167020616742373356587661454913088732631417792734854222222525636769813049457616481611241205724129310540136388597147423522420189860293633022863124511568446502504640337727901841310241664830350225943278010035478402193948446023285313898842623957027357080818101387021217676640063515191679216376871109110061918228326501269262513529595010687588771053276960979516700547370709158304031820906017777431364997149814387330847305797897498212694196917810944048439560855072243264083040777423200591003755116654135225982382167380209446629331073994081489778790701176742164234304306550653277654464647576158466019811286859847552799708155734437101151987854819825347762880962906488180048318869622433505737048982545428697643742083384467274124880785031336041923148580531151613747963644888146399755854881845506117064307366382462070952036757083643308297619585775558888014491310122557531664578714344837286694489978590945278746266560161973286583684745765122954932124756315169300213884901509004000710585943064020860025616465069552154811815921536134163968598767127295306203200348138904975292829183638724812707400695615144532420588222873208262712383593091744398976454707396610210918073140629581095175252115678533477920937036955811068916794004212347440067580307795031907958548759684604232485474333232969291320341711268967703210226255671930414994280571412397842927447107489579065793128611686340177919335600493541091810101632048553124922689485581946134372021942614367610349620519074759433626540027510846369493357636662431121997379111002367012438552466204933385530835099394443127884939143237350733501294542053675212149209841601122680518798416561176592753814183909343281438810290595759045290318783741424017375693202945255941644064697698119742337059355011002687884338455507940453326574283437760082464414411734188494809710367374507378629749018166570354193217980587921804276506129559494086601487357359965296951688646018459239483812503417155636490957668389127224581653428132956814458020660193741607997707078928763188824075707359283855196602691556459891882811362767682047027434105092794920904176495270030678458066173479579846418070883497255664754053878015412262868663523606868095954923069684011982826570482860095756027519408860379029230504176157361421862934785864069426830691827602419762216435871266257684515152711779079172987257417737290943375514253342627306916923627366816738937398048792550043211998195644194641744413673566903691626451956882202328269830459825215021383745354953708864578176041170851222045379758048616125793904006083833907082517999358984099796050411478181189800310999537723995869494537157855727761920464159414976419350340902245881071810622287718743924183492342695061432096131824418474635266749428386999049261467200227406090293484828396807486889844661822747868569790935058725533966209132537210432794676045431048492748270445099211828383680229587465504127925259811667103337653199526431040897111579392451990660734401591263974654614478652837940348840437196468866106310684538859235867872312226060794403670212057420795737497603534615511602688227587726763952414926571328040198027849408822525380675620160687340307855775543067486526105449584490333442712830041758334819897166643747277169620407535213775619258270424329344043086076168161764358862807774579103860426348656309442668387712836161044391776787172103095889502027218711652603421200516476186894058162209628632073258803411399502158265709614048226117455213356342806100296314537651844495736952254672445852145134094997423324474696119574499910661743730451345002051584521039215484939797792430588974287566020824815832465895563153870431360402989262343854197661450115263366568741421945061522508890963357293562072977680883266673393590919610340101483054851759424938322674280425777257861485775521334429216922782699143082498264032456950166972446806753397472535391176736707989349648118900369920105444749466475462947537739393519412139084013246581412402913921368489827730909619526322964893704136806634320992115140199003131616455234764447015818651705304737201077563927824840833505445397174579083671158355395048014152998628851003884044311813761437990558012586994874643320618383028630503718618071202538132030773083196207131330606749865062255192705400228126257056926944133348894082931352279084386710349314674136387892925591937519391856334336019911824254101602411721262870957752694909513111983427319731171151399267382318770740539522113388571631458043299344950539395334707285153450602721609399313276274358269683935606432446448412512564813758208306319209184909779839179339074530680589649878302515459522102836722640536333816880062075036832757457799370249558105478244170716471029709242612606145696328164630142384561025301312330040431929205230997934085764566521634565660232702642578836242662466893933279366992871003264491006444259321121160391655949717337694264708451863936627352441132477699516981891520872452069297370184158740280175739330916501627382810235503427848634337952683841050651092239837509621235937379239483134051761529653410428552263285548677361489760017595099376523301108969732323563951118193518830206841762502049900512365351617220047614228408611589375034503422052137248771187889954651045964608635663016313398151487177497649265118701607694372440229509404876901062704557398611450072837420403008464088555269443475661860210990037512729542903008450179802389749033306885292743795258388055592732789657927603649635627122087217452026340559179255655163622401599674894595913988089672704918901866376905294964676273357917879765192488551801780299014358042155164276069271538342084534542084605420303531879000940772772761800184556119772499160378816600111215349719578701052355660681049923879600472983527369656281525268287285346993890854302703813815137634155217921713040756201538913953909034370205940865425781764523478801185802710917694619244587570756552965104101965693624678924805231155230137262978687313419516492893519994103182483199334420006054984168488455393522307373371095708399922801769554429960535131091533060598654364752853405113093858824668736829144236005400614162864042465361588371714232442509812192253466007976236971835747788355094363787752838162145814695814562400608728836514003972011593319446560313904446281870188988070468073341695023782356907198210122968281690332539104148739907014520387253418936770457945815089929550202113789513838234010845813765939564905104204910040340456009246045275325403701938745648997490357694993884259183995500702486260489924727689846506449971565530803161283030411532668143714983694636254441512629210313485061415345220385102484634540313175757829737934108900721600914291493585132011273211073255064354019715929902064960582346099349726027213179072219716930562252088016839951477571818695264309271027207371490948561346114815817843645061347343054749919613933071831365916862901789690422000922430308990826068569860571876721277360153277970432250555745890517112318394290747854791269910421900311877729398524852677610417920741299056050665358325213058222712153134651074949235568309255258696262461043664334518621477162405002406289416366943578484252021535048608220311679900240991994852015462371518060818707491713387844248904983561726528597822588184279850519186369525966002703496543724894971944694635843342849415164682977194484445482339622682977264247542263608893304140815724277903448812776950134339284119231827555061139833696051925150297587479695497452253648650680774534403809502120049510912341648493596099997310853488428914074636968661647949163628207074452660270642301030707529597989570438529286211510051238601118595872183518035032819497359436137184747544244286800519344488757072433569167439725977786978153505028559469151415940452314356134640804206045913882520810939418446158890575691843116715530087340182931870363827520205458933530252031446122320210869219906089027097958993190269870021250341921550712614871366030956211260917166540030226296522278677342775186589140010223238097676941843281059922977068374832437330397701959141921623624294293648991886561636758832592749872153045190287675233546279564368361943562897226100921795131321168375186025275274709413593330429327582917204224617502647320354049237670460946189290797681441123192723424173093735730475067577302172673085165921847687807793942504275786518973310210048604979115638666028419064200784536026097226569431556253381861990186465944160484448319693375938990119135695005658621329538245506031121303719059646058869272772856030418415801590513860491549607154754306089953946297709093116009761859536610740317886304575451306128969444748601506814882088731771310546286973902759597626641760320978497084231601671336191214255817553608462404930465484345601498803726520141560901630975890240493995876456030488055537409340644820571812133766725660305984344263589705172276857164037565080581984217373355409349328389960184937407202145294608945353172070347700833841053051026038917569787924200924106788914604260191963928965924020088195793369952536092070735763335434928406288756991583437519128104435571252648824382802340363425521254222472807848056487365707430496034895459170458122064986768511875702896892188721564062433263270340206564723854301844514245112454950660444828527967351412081011763903290696018016251867628361967579347946638755637373190763579044388045701235993183342438954664983940386810542167274491069403130400589071281669702195990530698037569701462817168718016580388062688230707455645028862696465272804452636567817967437599258073608450473409393269799296222460053933040404172815641046484234898152433898324776255262252327687721727881928599701920606372339263802467823218709332857627814492695701707208790982259538987111842780333849088543513448330193073761871158789077410855116919075750498801085393552665354150569179032293072949967460286519995292969293888499199416486243263062594098017526817153028691922563425426449175112976176468296558604200353328719860721462611494337297045404417900085495143611054958347059229056589236364146920833444738790282444251281021294857734479932064863135112683343931940620744722425753369086382337832459237508620804623119311990442985641453998525355559750736015299435476465043939889193871379179733458072424270902251117916860107005832305710246041631923889045204749777174634230593688141918067796489826608421059063209292733779723791190554286747350736570584830799308969634836989463137385522101488971082061806854489414870479608456496963649357202868802834966406876378662610810250500300823145462921708603266653715445869465918076856831929267399962687161222853175051587679531954609529164846225216476963321900611552983416525933566837136689208098549702387251948015622535157301995593007732261028180210686693485887117123020417230530650728103793552995950422691226523457392025637191527398555292822895698520114863893750324463703969836703649489523056085351380379039304219403605342592804786297370485753895561347917939942436204573779740964648307713309497230476585837632431967994211535812332104387504149550310560086395551579548304265299208781958635957548576906693317153074098213824806324268858751336818408628808243799396406242945581799302623341078827000996195780161555571656984822901337753170098489997697806306490434571485903961886223654088898933525158358400962360089536254840394149159056551425297197320069907183413242553466166152834172872585884386146267556727731467121431105148127244225496510909988906914632100683634384669949142812650023357524691644212679220420615057884782122447062073765952424950414143252776195536857773492021268063442429962698734338160646601897363359061590118648141397771631552130231435277339114662428894088563620692389085625255208119854986688220445623662546800830114686687913495702820965486590141249763082489923110660786825699846675774346524908531410184045015039135172468392988978938256902464287950845327261244997604579618114205410063052040836782323143641242562114976280807809103496379126207553922917027053706890929605865155240594882899522295129246229910999264826394698378903427342461362958807026340148508934606219496173949767289112069885198266543603322949513256926925115498769612626312873576058471066145690991964254407366657553496624806189996413854016499732237664313858661168181488865735818776133217236744197103207552752673262543409601344864823512242171517630219531608936547714256065052809470169159534342114179025191617024422333463865203634425659746746976524902558405378021903145823585077131909094319021863423031165283597268785864497193189831910920608656911901958937551980987185390650932858900131438482111729523707258113067883060180720072026126101658350476371989518275291030069119448152962020772034927899663907690998459277581884258511480181169577170782558143240951276174245871348301043711885109268306895775510266840367261321625780350369639932770074778141138356009733171083931128095526730195311251735976144118647207579256154571399886259475645721681656339783793702956657171246651593859422202226977847579213906691802526641414733507684555935005564178670100632129793377659919501830319675596327612735478356979766073533457749084488496978927888959149506369675836297211675021939795413328316684977383761866331966147597835853533445463374265769182871818653785263286975054061499032275220174145217836860742580204709124725572671406201992795968423449386948105577815530069235742054000263382776171102650329724641681737048784864895909865875378131484502283457676777902057089390302330530915952889341837426752065886794222500332103004293640843528767491670895560660089266041731099488767826876012667057789622395809810687800030345512873098943500016697524279763054452023781266491662461886820944237426591781194411612197994211402667304098002678411054281324641352443343762288986682888026293855724089321019972092840067497064179434887591762358518789553258378751583651951462213443899574342007801908088596391282916132884418050793469059823164703968079921638607208208356847883434559307438487714776469735445050724723604523960073891248372611266033370438760958475984159079020764589930073145355115455643485373058171058923217689846986500864637712318387011050172177061229143205609419047744218087266857741651622472643354182116243072816157462562791782532137074897341216131456986580738726446003126927712414092656781340886158640151509163141865293677326111759259519657019171403526413433978949405099294911466111431621325407463688811429270442747393468688036745283599836890152520743199450710282677579947458254229786730550705654681307905664645321133314777827296998699386547641391770406596770422579438782446152404967459213527351036447939061890863392977113689976734126425018607327079679692032716885912281466590417499027160243975777086333569129174064111544283224261156888148098065926785953589327724552365037574442597717673053454818180581462403973026021469075082132447037557321768601830848896759539433895846279066424553742299947121373263753132766428080877386622868323375270853736149367280317673153709049769527941290870253797631399982436049697857861634072175862449454982454437604770254542609269757769847500998736038820424625515781665248185363288118147155396386846640426672549408382192247876473272987894443333075480971447103003349883408927186693029331386745546156975817486519462070835962350402741086455195697379376298430087752358859433549081688996400050130415667751501379793905471523876472428544573901615987253133643901101569356947471335289286387594000763179782176297422001943519027021970314085665182406464913076868591851725299725749720696504499589354398288649544624782846573739436675427827128523953957783489462335601787680112627846455172184381261150188332583000120756322218098508795316024776988388323944897538816542963954431520054703851894047080037346278230827127640157534289202302854928424461273874971485829496581863707630157339460215580453440685683498725765504589214392488998575919530082887231165058060967684417393041543594882909312944197670135995362331645167825428459810586322847555622192744208320651894965367920623586257632239805411369788969219864738099507259000021757752145544606009688191109036412146288695619076106456465194684043879087382982320159708874107278873347830309888690704387115723064159579959672187786725093989164738528058190506741130190805985950604321539551762601439870071304433078260049333994093504138190751416121096171767909018464427600189216417562692313911370018072009779593697217349704916634908309132055035145530329976737820890367526776635953308855511539258910733503429947366111964658289589350245822917505581773645223491793946609000350375545099907152047753578703026341992378490903937992286692391222472241432944052566336930162409945730114519758532113341517176124426866881424411171691132026895538839732674834054353012027523022345037271034861771548193136708145888026875159472298164416880620997194019904409698868550159020551520290523448414055307212219088934914515343886406299091789518468783049315461426630753128161089076539555689748851255533536632565707295129639862946583272001028826626050989370915340482521644312950275570415677444377283225599165955728189506222090819541076746618707261653327361675427805716812801748511242213677169436140528651950592155891027175228805456434144267281351103509963855383232917248988263273973003600766747652906203453120710266554887673340967420503022870360022325920115751003972006478756356828315018860420509512791963684236334747798889087972723629604689880979398959011208614771164146515635774042213797515121428330453034788091725495005607116789623439255478589931282528857943733724840546602928596444221910665296474697997642015369715316643828823477249086489092893614462135036548022165041048607494881384120502494745042524308655208026310700831842080081528223906025975250812873034628213289958639177307788157179928753535374754243881536988809767437883526898823233201082041224077582739172461028285080383150083175872294642054546502893262024722975390225344863347828322289079069437787200691558749642541970309690726613958931708707808759388916462305707222250504935911867552843085695525950509084116967102416849108092783683321182607192673162987684242623920840032889436714994205941678746300037877972675040069502451322481945411038441138749438297631726116390913074193999349283237211259733667100993241684609159927229719776581946190783836964147847485647716448055896915209970997253118387521356482537625442974404841802878690570136153446967220182958518585615546276113136463474410918591994795362856971155172158188280301116172389681488036651640515484223510257733689012298470331073744008586097687705979472436661693434488426284091821140004586926025117927215631055185245589357626400382776004706065573379448424530902501087967130758788360329338749859084470514397161979702104245433863211975746120051586086602749135718700850677933954724126192269164130740815322107663429846931751793834795804964710181956743069537623528108439054177953604647041192896732373040990669178697374531410419866268389174978386531050238023578358635608819171543055006333041152084430912585365897278966269123434497067729151182368423017470848077707009569034181165537253958695110565856226281234186852902386901549946500474889687780049172336758853132791607191654670128132059142079888241329165727562001914810164912777569582816403376734023137983180205653160903723801445853854973929556319899645307376100743550633338676506264499805794390234516881352862923731772259241810945378893834558122500049671622494630179700610829212807788516098884469019233668460787911784511245384557218790772238595791360703434706355893892126112063437685682107710396164906563865283076273987988541091805592736997976202547983117801737462184509057711795510002451845258792399871247774211557514783974666519013000806375419740423067546787296520476834560764097975404277737843298304471781162951376133058199576915596146588934954688165284110305211038187572828707760140323602813496138996836277244410687199627175088504088498734095933871181776827610485858702244818018853012251250111626057022901346671616220361541055845746016770487554909527319112524345439772138678918824555330814058964436028620159441677444598534040445806496005723946657195219603620865390774001528852259214473883523036552934687454801438318144724569316551174352173143342878572745554555096608258691327881082272701070938975052410923828918762644994234559702502933418453502217232795707149958519808910584580378171578925546079728533530205819945000711496055873206091924313611594762344755850104924042068505849875149639795252406075286290619605336819047139252044219075804902771674238451875069399127589084609588287184454489765734608055332304019336349836475594668430494311143668112813689111041754211862730871837510240977210345675822852089702286481827295656396324383675207691778027468138815439644327097941762233576362854428034857065165717549172385047722213614173371756852165694505087917607012999187427786717209007852834810046061200132789795193131635999971456364906763685111895944395278156593926562565161959527910953244205920341172866564403475491300964000046363260971622515648604382412375573619333310908528544729342538699889313913032913250440284897869879835506097981053859036101284041822686263592801461227095896932845367928529879571559921334871622482199856201204366554140648093000133108333429370612646455799619551359606391872108071880436184305538728959513456012700241828932895616826901761713718625982076521427136725352725492277148446750437453363734888440681174729254750547060329881667340814515012732079115607454700704099077644083124646952636915591399237618932913757550610526653619672710182359426946730161616393603624214323828773749116422087531597604916421950948604475422549097467770722744843608690339204930163843023175242701356036336770592008751339077770249711461780373356124910693119086943054435671338386921245763559505935348170454188065454000636273010887234829630187889514435638644401706331466342608317866583431415822420037947952184761583886430181215661417943325019973389068383078073411141626389467512136790798374768700495260065279355003781685459843914039858213374793970941257871044017475203221116019412319407316176176805306188650320305216721197643979780403311696688291799946559954885642634461350286815546074422274741544857278229643629361269214555199097552968829704413926549593827931631998835249178488569373621324397772016067739934119234737722413980912099611794679161913320479901370887530390369480560859267061694978375140062713658508118068557783048198691122928289262852975835088930022796907127462628413896628673158880457498560798528015959426616927457114534983194442971866306255039710681108463331470828330409202654587432156641445274580813982277147270727806196566661570865515095305392873296975837327727556722294159488875114125789790248764105453281674132855422194530000869615610375320048260701887528673127738832009246812151150871062549578856734642724359224403592243890985275852167795613456587213085619590395797080078460239188635129456345683801583976217630672033736420664616600823247108047910325424738817081356793473065360020890381079426265499156882691968440549984538960101495596249177709711514641722914867448963570236476680037772895022037866864880000269890982068661762529933343140572278323870332815104302429834804726388873827821870381745663028047798934810755208797053243101699166511209168186480325187189146233102040838616402057864005766305298827819535207948801916370008709547600195778924090422376307317278403964077297186818051410316684419353191258248271665000126583316528109019855978674262223462592557658113679342861123937253231328583765002078918250136971305914636125306313881312031683461629508636375446437981303211409249605097161987491504113624502241216047490894928830819123156015578250286939094256839144725285227309074502303900758133566263774405414154663584081051015259782312208407221614824927723018881383845937520472062967934470168319090085651831687262605159534511035694618520446089487087716065685676236405811083931756683492744847949878208434195776667517759848767574156797573814552092687027827664502489911214845158810336827904403350693749724389014282447720024685410450480265970642537673370696124841036739042548584007950488324230406302291761984651202043482885367310214087371266362782551226825379916125491063770394915450352646691310362667026369334881979531237600603990671546234384018724325039471326169434629350050098009159903265398051111367822038812510194955911820836136172865635071810435172055022179239623414219267674980593456452776744682756732826716158122180317592991469133565817738367306330525339644512733614119908510138921728041840159678382538556299905218470115984294364926284059383107174477246622827357796535001768938161248389138235068013647342416557049680797144653140421619783685864474509909072434213444584382635090101034297732650848596837044818405126995535355344477627948081211082120847690864724580328986833303426207202655508098034884428969589425269034412949787042503114543776505924612435001150769856589091769846979975956580516706001038936123162702031251749893029466046971726301678818527369387786083526072198147025757548623452061054167782938355718239134914345904625287387202322543466870604166222698639734699665084480340483352068365897622985533676829432367848413213240955811931919912281100111461082715824556677121184780746685521228128065320595927985844373688021322001467027824621531869658109493895926456033622357689077637047226204980228083713499977805958560131029345124103122401991589289920677880957046147165358096480928989028698847431244980386252645737671657720667440891528150440471760054591825813981861089045404590873630490748838218337989165999659571844391776272578306985435346826006723184069078846526107365039418851926600136720919884377567648546477927016372905807044475446211614571350692096012782307468793395561078032500047118729675157562053754979566182750203915528339300916514410622335984091631815673869084434930613464512813349173067479524239323171219730663774035470197383638584486130938358878747884687198431727113286989865807181382908458205850661252037673013717930103716069990085485902339475870117003853589804171619228442873314290115887728710865969772059141134225222156761456556942962467372495733158810263462629894070534589173668892064665729489146782505318936509753964283856819192291903429054459873882200710439649918638445722272909235281600280242737181439868384838880899900447428431801142040651136498916126744185416064359986613876285186788167643787002706494981752458950068112890487636715697963905647735721938378821333996287774476733927535720451676162756241057166162436187207138916886557975156112298370807304838072611914227611905665592107182411253362794955003109669905439364169180615059666488388960875559037750825319168156680441372880513561550188020606718335101132238955597152447062650739322269468158862892668943364376407762464058139094897618068672414512222470607729702438403521984284286176927789940848724602070696342363179416895365478336012092979615359255060534977019115982555439838846279353574942570263716990234425155632414150170775744745866543625615391004049392527316425384793014679748129973966864422771669279735616040297179701678193165562794722394399900783548598879786025001910553189029451499600364006454819156364749374586923655136411548795991424014714116028706308894623526243907142103222627738275386377103648322814323413422998008370412007161272998423764656635181707287701936720560609975247285345647322834876969708934899772269914088841037222334164709914011120869591577966929155060334831999230807233821762368177773854918569663849666020979654032509275018514254196156479691718090210498089253922434969166721018321193463769662733437060962341726813170365459409375769133444525636932302272200319778367276803675251024450098647663370552799184665225643839491994164513168477078521870230512783152759229740681744737922556624333605850684832719194954482550182447271165761442147705014082148932250528271138076481783473976513553612301975373895823914397699808481644860371358737011186086696626662433065465409999940539918616663047426726620414149984871387494709753053727783576273675591296479708682429343845816361264514463844883157524275373370975337578747600909971288399804183668863241373230453011375085697318524832263199861404396595374830130257350799261866247594180890369838531888825649053061617564112903934320883322846316427926009326391135085818223125671875386713102839230620470407543457810765924597187137271400894818462821800652632129634341928813768928294388382665412633918556041868123904444912256570658220745427984565456731820206112059908244202491250225782660297664674251038913927822984162938835048832432759453331922350337219668657643319537653751944670284928510790082537907495914647382936745893454246754505720907194114995471171014822857700145355389236267147085057304712664559071955722580374714492629771756005071063412717792159388793850239571279637542554074787095298121899340126613454318744395261549946268247284556725321864181019387125890077063380346466206675782413579181799445602609143373220139989162385644404330574488826109816060765001795408612377221016576801033790222551181476959333005627862170009769965379307577694764079074145215573145382898258311378997736802579843205571041564963241454395108964319067568316972522389868292698851561616878811948386356210777813392747819246044874569010276015908641267005783570072219265381019810455564076285961579884391926686048731805364431930182774950139537040321814183725472609064211751975841703422170700411831183143036846161243522707789443799993000554274961395401596422773413449539474060514961526801193721281809888000509490906531826076525751354570396928778415391173293252216807323860070265000680806555587966438990350812199013847129792626819603584378425015790167072016145547004415019014580449577029292916483476493167592803553877284645043371257519159493202897707922189167165312313032909687900197657200525678179834370103058688348134598362947905785254708231048375716906315559944428222318268615337771210506679806531494663900184168885187718131721522436741148343181478839691012678216306671377655201435991839219881896264669252219911820137954092481888090865158160187193371681455276253924140909697674116728304911040227894622488184445456248091232299027876283754491560902885397270930218470503311680619014011461883517881450492062183101009567432055285765127064199663886435392168085291239888444157639005357126170592755322689000671745866174552112252782040828854282569689667188544767612908008533130938473963445434559534774940017528190353636413204894955402262181502144422104584225754447634694857617515005862908086875704163756805531121911590400026437724571707880967961778966716876705487159088470254134137082011826148812040640941822071943375678049510842207210983825464905400842252115106081888938417407919643685735958367386205345588409859557353624287693696589609498942212126034924734275314835203858716701095760775105309659650950793659334134163269177373337783069119739807217953646020030596517249287192045836307150065254695757823565557537392960552629948561083954692158067094251484906790302691514263971280013836127965406976719716478376675664940169691708769269697233012412131237679567841711302288376825999320521113823963794761996182929332484391998785793944343340172051331906489004097046573709525868194449813897368572466257757750958748015442949623404040341137186977261887340148425185741097296238229781852902622644244165067973665541386644380835869455906614802087805711455416499024726774058403408871966295211878847882023453009349341041323838778866886619544872294981898555459983382785114637860973498449598047962334552011866046710742099043771062486736040260265834656353788539617056693028084826834141365137399917726464594295634492794777366532841278567951818379981655985081179080532949597889267081062648596634725738438618211784475379565925834542539950724232961758776531848899639539656828234621781063465656606537378759588640724185355004770908237524919224263881460164334201561710010946828407539221998572481844933093658154037321288550688512826789945061928938631806723756307988318967095301641291235902939070124656452371079494184732474427545789426101816744731528172893789115169733138281532078361990095428332184642223152476576887236956525226568263906141339332891945977080733038387645470726646934541411765339466015717808142589187818669710852546673182401206040233551002950481358296453632683523028996115037532548865452738235981664293667983440349397696582028365701066258333042860672075921758983928049359167921179968473528779775016642058423765201702520557608427762949145499726824490790816565031020329713427057547332390251066991815717098032259776689790183529542772933129223737096244713312637810061211832810989459009582348664632861985961184876996762493474639035017012066711195123498185149469105105961794125938756401855088084476626130098216116458357187050087057229816293622297320913745464577647218933039367093164077972982554908259513347401264440228188353086877281507063152025980454781915584781094815588103804979093052109991214790409798065323722064178208366335594450101087857338789502214913604672572994495924481676884952127824611376891008638053305902544912588050403913004685742523082159188007884128266951061104011252594005883282336352418424865383744576895730202501537460569778868297594303876063409337780507993132197214857212943312552263081854403670059599913233925341653963695525889241809627710434020249138321358785900107568124533585113301308496240436110531813955071697544023081247759044658901964543718355885750074853914527201418075596168809878702599174476192818721020200771084996512096000737432728867845382207471862255494548034684758528565005448643732032745361886727599264387783785691233244456264055249772892248107266682915345853102493453441371062865573183023994618809897097544597094732106929516899897934479253875782368345500274044881962485709342297883701143811287449914980731118014722181353251919704983757419954014989839742728608323618880979213003458166710210643012367026007452400946877825500124417450799784039606226884322779243485842973266005823348732473611421486336394385890296417069596718694086786163732825859158577134830211392902236434210773319733245511439255444013495928824520362159091691151459126092409804054240164622120698359987630231252787491241333674147192554479072631107523419066079061660304137657176811748794594661146139032017824094506893424487657172295310264823459794350780179940431057201941463045817029908218413110624876557366377117611546695216083907387443876372401022725369104391132484385463448460009637044273831225985366982662064130691268152423898512399026095957649602169455167848346322150972597816926804021206041927366548660832503013913580812463547316787230666914778021632926995367997035302246191900245347663532944899858302713687648691969582553455826845299991224407323902529320542808568009343929734188019663548547406394049662348741637826339531593332231074894388994627044003935888026028770894283702591683178815801373557713424979139730132109095142742972109900850997515150332946982825593247411167532671973418547985783290380568529460162748436287665992634536156156137802930069424308214298575062738358124286857367621645817098163305196491496961242369439742091685917857290715909937766945299546959608131594458653900154515640713284538178142868723947900422900113032911702041686402585220499428741653634815679336132334153746972680858209571666612782716860660752339694575604699085842880286102497070064475427786022735198344171173232305695473813499425134212426526769695947556457807426927189623092615566210489955190260709298717833982542588103069488766583909961310785068715783975556936838853167828940504945334043714119896219816550578808678752153191668994164456283213725035368000457603791923212646825497754988919046245073398740194096855615129982959300332845149302530632482538321931400891881257119384334336956212572910205745143996983249483539677953788943906146654701014367360634384691211405160705817502497362675857658193203557135261226221870290993132088789440635119375212779494093953753161086527194124205818974214264084620615599598080187272979116240528154461078956569075555662251838991630957012965424949925956502674477431955490222753693337956896245955292258259036051329254329945158141891434486175133861624615837516576713262226688840941915283012260100531388289724518950113775001801639690561076115284734200895354482503093756430933539541294594283159181818996319511328479449312689836656499268613768153401698578651580694587425946923903137714684687471595167715960228493951074766531648319739289550254305880321027247254308419620161612455350996656956509959400313715862030425056671419100522455956258897385168543140745345470726996338464492706407121149535690765640807108385008902855064188911690304932303290781136015492639066282083516370712723149987191193149137161500708988052014706625329537399510647936054711542287009883687425827381743137823579506016894803545012871560257346846054254096593765762268191053111888034458957676185579694183270005274300986028148902979787435747618572264170949458448586714825208939311678697128066939066531977366608964935368515295753548693149904956383252562443953969467624204397730727754668140817410544404151674040813721987708756799892070588806531460385077304376636935551498012561683470791834173125494299464189310861591728923770732217575800215393958536509074995946878247295340754073494350495006533993327205468092731051602764457557210593699006927866021285937672276412614462069699116747588763086534185382900384934616575363777135871883370111804000317939662784376305456132595124094409430104011895554274835373772802006673799700281182413924804775711650023922163880308489504263208878608586987388808730568466028705865190562027850649370530392595780326619128205955707903795078486498553620768575787327356394897107103086842153531839706192794335721213989532909615836614706124709751408322542111983094338795960273502255312947919455148026498114897285514112960815904111146600126119884906574434244996970599361972860570765624494105487473095378161115472626920706210641708410521906155994298307036522138848686756946799597440771762930939238185109903867808554997124057317643035455887136692316570968388443246850367282115229103551195842248281959511034811384385418791333366472338412231475768289764460023626406210005493337903197917019093898006009583808949118527049869782530565245750351599061807228882804695960326073357298035871525510658779503130946610308464352866831920707122291543168216261055344540794292875706889234265397001967977934799535344348863722305768615369966068552120502930945788234130224795272022802407292628221492150583303951033071202759238301885847831013806935704822698357714091977587064362098459957417349522948606149798647400021133922921744724223849418533874223964841460486900583422155942128067711137137207166552722129656162339432163190077937648086749680802903565078820759250708835368877749271392296953040505762136415149629817689467146818319529030325880802222022704849629013239332088079058866569309211387076068682897633850234901070803311990641162551222471188744718945096497279373892853569033070900070610404413466557669298412772023315345216935290284094851615247319734284490146157651201708144997620819486948545245141991611110187992001955996905996136710268399999293045942386775266800710777126709781501823387802636574280449342065764683626480239585668437444777538826382236475281220240206687833558244532229037472825049599339416735393170112564080684710563485154358607723128737409574247925618170536989440682776613161751931272874734148087986430909443906602955002029498825031060022778116859162951287029038228596555714336742393210170027322033088794742613641507382937615831055450775377042395521118134314281630814734517685233325268167188684872497309398444321224126814941572670709313895915355742449233115174884726265942640187706619144435818167912727528297058674943985780778104462907112450444475109568937036144359609944180941834354390643381509295317172504043758889428561969010924769045873729986572190111539556750020921628710619678079548300845213201435425947517085979906043548194841887636615734926515404614235254143361836811061935430366150002206799205302455307780702796534573201863649584284110995070382029838351741651737160469328349107179476609590007845143583410548670528951412754898992724680387876704872565448972947472389023926753148819207747609496799324702700660760879797855596410251259207594969340300882760927460983702525696666920007595051964296866735576175619940175523331262906422965229412390865314628409699231419807683323257083465470785048344131131116836862163054899606456765036997756422230971434568593330827187338409157046129781534501634047992488407139101183546612064236983984749861698386811935626208713034452598384090207011865148613976544659842374687279117867408556757215011596478480833572628336856012977393531229897762280516290065742932304796596590691712618176375259793920536624091696695119681368874137086254948835133293698330095804763126124091128038427165529762713469298618517820783172135622090574440392267346505997271160417812349052526355396696798688142606767029871399646012491805869522171173750993032448276493130167830758071875652023111520193535388060200746842866789181185391234448030294301827915851202827422688630624576271927703584604803009899934197566066990850416429508759464616617093615940603525360818796879083617228321586617176420459444446522540559180059236044425033024230180344992710130804503638610863905887291101794711648291966567310998205266789090827145036096110358496432389355018153645969782240703113745390247041823436991405288313205904172407624938621867348897026452335823927408635840291927292611668180454859594054939008357046625017229936768837122614605611536490852029087592357473184426161666121784988617152107947451048061234670224624851253792362408169338150375258204568027831604300020591090476376475698169231275801969103504724785354283467844698897778421249689288556950199094616353034284581665204801757077256285374902630602676751075922908683425449809785309335523924023584270611467739704386461934951479333237161856400319452234927757986262962687296231029649236581149792479190920365611111379439828712897333962973525722073336761144940483395981234320743080355807768223585186177373134655672643375727687203877564290267120955638431088349700477073915092285155642079434957674624049252121912942375583980383135827671443843605911926977295239954449435465004049055740555288603594515491618160063907054949770176090905133020742448101086540103683309635777284206843019593443798721577822906833486336881144420858675446198415357389170608745608727201111970337331230020364937761429650685877976698237330569533524496494710866635666213554268314333434024634758692659283598484437757179180476301994138140261811490103814286062674730666361612937326603002225231151426133986781038690494443985576833446076657230494073405577303248077927830129173966236603482452360313869282179201563942275078299575337360368979914246900171885448812692208269959929844858838569736480425237909053951183147470543261998245001790303303497787757159674392088571603741205533224294983245258400647802306948013811081897014587616647705666711245260236748546093368425292419063278903461492645676278340102996639832751874829454410779843586066426905206579242888725374165490561451909295053215953646035797009368331843425808543560293402354012015715040314862087775767363379037418723114445465836955731191107276762990361119410579180077604165414171617724495553857133901668865227346613064120013465495755655984344849529459243654113795428412852637726476022919699994747767030500626120972965010465168746868326671923368707717152927007823759577030731343363023408874629593469485066781066214919057963065423743514218645077744000999379292260075646670611224823710664689318446868457832127178567846590038107586015683088926634217372070083482985196311980724654926495142348998934380961404341192880294763275328886251573148801341718679021003432310207567385661742795984483779273519260902080925268306534716523650258170343518533887429850133544271880392719093748244836508895529946867506936196301928756887376491574914930465159468903908391171243255386837009045948507091598187397614813130214858211228227488362163685049600008851701778919042350668127732642568070196331737222216037553503975431715773522772810394062528623145965129782307649260353247535263469764961440708970989422261829085265839915662457240387988972964710013650880635543165245671072012274584444510136974729407258739991479809407011071549589831048102117500170104698706580154432271000801796859475160923827517953620892347054043628806461055884665946723209666376373909473275396275314694341393187941233480377447716911928950904070982198844225501749927593461531519069016009104942251434332867715512280066930251555224908254517414466880088697064099473794209818205653218520463847512627967741241163511921154765681861053592204954452206931042669030541900648280110922003848301821646132177633411451091266809480125352904063522845179570481562455165036125919066500165793856271390650618109493645959530243146550725006496197325067080464198806699334380186096847930445840718353144828621835996138845303380254901945451673904859739864417430531046463056011388837937471015149622301486572978749033249452057322143947606060136082803580388628128024207105819643081832449462442021747287096105723264942925138472031718272076201791463668054445285356347499696913712988590376534929377595704438577056172421877604570860827553406128945324229676726761291640260091315585633733029541106082457425009714421129411371014010266282686120508204521145243420609934859023261294633461187226779665204478154020391116003835214590716366363940116192922458426308989962716793102748393196586952040470100814954769320273837978055715340619280366016849859341409727755198930910776702438770468113697811631236382988477438440198923030086469085396327531532516808083836545412978363922647038808474928606642656563477187423717154455053614911662805893581363779370823298247415801236013739959848377492874366087409514887392817623837098677414126168322985349125700341570283606569735273633944227447051896918045200763476518391838916192694858818798493387031940578853760503733371695779385485488929550359733231395023114218727107827512344091986264666555274743264706859285556192160637659423692366709372488962959970111947047912853858677345873678822985164226255805186473403581559840099334298290276175330630918568121792292103997190117246154582784357309683371572237610399756104122652857343204447696872388839862572886129425517596828516516730886556053739823962197586228253451814105814946875264899292982665089243915590784592620462792381484754396938043821056631842274253519427582808858644257155969137109368884674499484078487173110484090215324096539460893509984446356027746370024568960636552564758160305458903933636916610822561552069930796755133697222960707840840485244785395780925575915163389358262284816323905764062715564955999775506814987431201080461499102328289201433964011919143946125079595486216878690953045375288567598727052847216274619506697247540477785866197552315558537098794712579842637711822072725032306568879424779417705248719307266167523117823369312071170014140113449628523100574533739185942820877406920737553495368589486009223381807397108392208818522944298144130094031607519482512996984057066113025168867696037043786078535256952559419613577464363240475834346294382667572589640584237682276370428931852848874421395144856841299680845775595191652357377542109099994222535802664308116617317313189582795178498248412401166727867247428271239771000013959214698522841540898270417402364758137232577761054867572199889997143884949530395628740382152307118253614824237090736161528223198791863104230613725021059576204356937856204218432673413550354206523307909131828170977503549775101395283984374259677401803197047209102473845155616320712509171346427163277926985679433510574602772031155019017530234657126061163780067130404309938785849151919727216033163863316676245290910400186444881768765322719025848961628429547829155858825239735606191213874391173816728021928184578368047060963358389945255328678506502768523670355611628440551235133725708139318585686160451351159097030818572579060489160432366368138159902468138553478540435868054015260546424843582347504960171985357989523086685784289897220957793713733092535913018412176504641659297230946535875952776008341746234767254469799803508523926880677115723804544972623042761003181594277161588520098652252511836791378745803760618788278548265349824218485332377827239663811733208045769236443077252194792933500480863844106208821776220823534128594477029030123127248664886866190706153525334606134529638734166842851875949953954675506615755363807803495145016837125837382575597028691008147698093718423477641633825240153617148965137993865797516148763086505819091955835610162824168486739584439885694535663875333394990834780645436263366858940617932397896531160804373708404179591664270922554993950668604498022834159200477483845692215851760441509209863879380057501829698011786341768053452843623932227105475677996220632067806712386687354923159055758165189833282418715418038327959935165608204379367251130005636830358099095751722264537612551368233973466306610771314350163402768241354019554623549611472099117332289422365639511680040063034629144339898477314330828252875630788640158128904481338267811630838316108318817199803795229425591527015211586396168256754204521341839634352811099500706747998396512602547927320763370784568452525699885788003069542888286586025360780427766461750409320226378485186389578540286932420796857768649042138032865811198254581782212079026904518799524119286347667247263888160749883745598159806724430219619116188769595002466436410822427802451616056505649246696575357600193164648605320876690130615422401282602019469294432559171779624930934601888839571297396185899826824296684576729314403845361836451130300786868745328234043265924258579168959543400176893114076630159579006341010490627384146839881954529958709251999637507813934274052326811191397592721750294753011979392708642044998181281553653613258234739623841704003468840238663682386732376006029865850193589365035163504309336669366449567928587203346002641918765783768939076633099940387496378237188623308177442154736121125957934328010967424446615066835922899757822130547495411285847513398402021710652044437234303911552962629443189115054322795793636245918303521208070959510616067783409485682870264777189937298322945499149176221534812109465226706557317102290152786412015934631062363169577041589790440677665256306795854849520616701625330876481814287739568625101311200758181840192646037733259129127032238533811232731046696778790635764504386734797609818662799654377254741150980944711521934432655629852075779341063102935070693072243234524355863968945121432784707767786793412436454309681190676777390902458153315560465245494296858396062046087517338687496815539492278502097762866300075148854594126372174137640864620943450052328902904334745009290382179624483471495065760888418769283646787568771686545439309553758121690503491736042699786269136701101723337992380336106100252138896148598328801110887725063115093874658229684316890647574608811895511367774175142751742482776209306449693621972872867692763848824371789211735717312305907936322627648583433441889345446716448366575487290045109687463771603540656468195873460329884814940011804967707186386470699156824496017196906753866695425329103560723271222404364594688289291696826319377193539027896204999224115307921085905642123579661934077877121990298046326450595635211875375591198213792711444852651466018356638144566376966254180782393422974387922782742489348598656035941818043246057798557802205372929114201112265627307614889746321252477986763676187110126142795350775282412471538954022832518331436693203190430866437065479618494404988093268153565983334647475365313539632092147083810855312282452227506437439999744650016055648818932573164458705993620629986254546814147400333707973171497785209062160779832729047403570905807168121666624408397800007596326608073039879910365633100742176355412898902965618883855580417690760912327893687151899342199619966722584041754711405402233798314740707465845186675561444446727931244945400985321544284970616405215379729704385297974268589603259245907934334818985697373143447399517386874864063308301734161658478000545424463561347772284846377235527207862749819052563938644128450476213815846479739867291623519921192059650320026298131884382130159140858279906341510382849495303779514157282682964651032073952366002227217095405330549331440155215971843264682759285900849604082519155114919682030384210535961893684882735422662639047385291453459012936948251060334001053906108527724823886275009666522589152648373397860658386600081152623152739925194222135737018118232317277855965570059433954016872471025323509225059213498706769129138838821510988282166573459158397714297567885169187492658537319480285858341839013364551434226487550617025036355031007035079367591883074146173095418121998082684157301991151858578131051819324408621612721083848092259664999022864860460879891150432902608658440529227364795159726914734914274229529528721738735483197595549891733560402368430558094038748277797172150649189277413189351668490536759223348753342478845041866506272640186946179650564689310711108366894494214169498767514706848623676570355782930710984070365912088350357267730638347254946045521407486688109712281870009862231619502589197824000502816323094973102042290831248159877885146767907796310664462563001407308667144998149595280764750141060780841870571773546949354294943628299407690874754564685628857239938998651513898524713696799342701248162618847460359510944507593905993508705941541913354515772444484754997990221616994219867866408964273714735456554859102279358225429664416575999296763370233464299320894133122571647760072106599588212030902352200246502859029062376325019637205691017936334558981125362130596816756600386255648898508917892156002081045226941988646078647507526654519743956941037664205389176904297810168170720981937372355178954696164899823576352491013319955262781912914699751115799892824525401588131515147795147324080820591080180700773045517992502410503109488070128713112356406621666534647290147273453447948253724901758442303243898532162573953607738564930910975623455355487854128708120655753437195001912275987925578424706528583003281526754746275804664905496052266702911144254517731813605150038826851840033015095962117525119424237459068310427681915118113345444169747104137593283067466250324278387887168100709685564688837486317845074410843344960391340862467704676245156213221953846808655652025609396620936213805968977428664688994729533843493637970475874392065007639024391660343125511646700841909850654309778612201387163709691004256129658147608159022472688532578334059019487233387490317928068041473159592773754546028833509957421640821393037750404465201718818034859599863346704403406310507248291136341341770293271234933592774609831560986562144633468405671635846105209153786620100313659933284472432775550070141354185081911003891636213618397415028340841412745879250945589057509901248536080105598205765052624903620529471354148093755220847138695483652570583852612807840057356164486743855991203396426950483659961049218348345336416785905134809090672607965087667987771805951934616594432137032922028581889112902218591815766429750789060903157840331124015157625068126038209867497745884120071961820452138815186007567386096768267533134312385774442167192677789716222284371259688630586475633465535758503948612419161732809461075179687034951462339816341565464027829895255757699003532092890734594747005734378464350555295187937485591594437153802860574532560690631329052396672578963771751748321318916077897587509685465668046286848429386993552770232568537495217081500589819785506403599452163452770724895093518720665365464219930215586877509634146281627369058056754832392284351393870875228569790256443828391723103738040124697871992812622539982520791097498856862418507064800307682131810068974073102980222566364181609347776293107096312891432853616892316518073459334792539689566404043188749974784050967418971689107665981411973636183369437984817235372036544007332657598983459037279600904822635594116666285724865288640553486867682773970234261054040351264042068516349266286860460397091043951414404117662407509404020021276014086801189271589514209310767106387085953877283955815662274786135267447418524149777397934145210317501903337023836229979984570611940648982669101884736999110653229228392803706559900480198977436455922225785425514440748998765591467671587302689046882060944763086141087237806357333569568164388632701739649860586199096878483407928463414331716549462721557845804338246725706094097987006293819549744850403741565478685495707425057886463274421927601372743762397199016202742689714543408080778867047549169912712405999168026314586893892865183787467741056277841728647023892754983170461744938186602934013963375812804307015855312880132518029373927084418079255475719378357882817471135845534299575103924632562083686688222039494716695455042390842948824203881187662082316441154456053383572687110292639774259556967840197513856830651864531689925684617973499874707017269140899894170391198095624483771128641195101650146242172397563249866567789741389508503875607989949519463887170555055804794792653257897171849645532320804604583886062524656547473465565502928184729723721935146713559950678198626037765948360920977998736818237668034577444245143850807030966007422046554061279977613429220772442410317234324668383647229639823946093787115486503194034853311092724395280744919654947016762403839817956956248568374253450693590163730379755074531069474135791911996198274647638588489640605419917780842958811114549891220832869011898962407648363834233697762986445536811616188297824614272829591377908197241200845548181959249519250807683069450275012808599056851756966858378692548467372307436275933906239716041824103598988382131906768148613645549840006777545361853402313493079186972925558950867374700888956916669115900437034553959913031191091371545473754145550822206138318521878811971974968071096346256416787149154626525272339088469228278501458749149299096537141179242824991109212040919232253719870335342745517332067446818643822964062855660674805595713376153470991637844105382240598307383357643897479322089643393278297791890539546006580934001439485817526071599837552378330945698508521968467683830821242123975639671055144731264254113465526739663767697981604454027729951999596242261524168485840481852118924466167178752075472299593440034768604941141679189103450898943064696767129993179055374442270308999606190876705561675002290261219582740342873785965577820746451965048549727730870489904869658208404417819547602308590574033715827539902933113640082029321920195054138589248848429744009724179269002866903538496347695212904184557048151577059605362395533088095270564162480191033630632006792588655766922573942475569271100471317045469746705758994532626579807640793675207080929375257220882414220428752263921593627274983510396103516577891177088393332873935016460401883825989939462715383848878118552719702140280089698799022656681329407359030244286389149419654058395535123218985494203019992075406275902963471986641583235673868195377583912433889810645308015739863628362374017942183202445524381662994067480444097292909768504924124475175903091461840292455199491762619454777435960695804812417619328500523012604723747876187469137391370883999567833794578348485474262045634168404557894469205694682877023401963980463765655056672827389342835131513512542607226395119572471174852062001644185983902431131963192504103024261259663149897785180133195943048451218598204632422364847859417033827138369391251883409327263414045540664075868615075524582262307268926674620236388196706862351987090650759397290876942366705566659523208548984986425482166521313558470456681961997555805547602331770661184702672235136284929383185214081410268752245438791211196614556154225051475850120410525351708215751124803837494474827551748428832161478852338394075170944568720645108408408375316178935897115159650910157430515009973402868819019144171964673731593399975178704184434692404636648502041169766997423863795600019640699224533511507455959564006859720726263720396254360318255018712642128043215092644358555682818714175693981979920942676741476228545674642986494395254387097678801854191313520089133664823848389220771332245233388865921854800220475962755667326636913327291516698956415708021314790091115861871688822907807901087198086424367556718938764900468089293099818757460861237313124775507631257645121497857340022111864636998673432068709704302256007649262039069458077328645279107743402575212942996601331545637598003936350845909934059864076624033473701229872505995067284320654827514577665515059599353950648666869763120411814754380204140340324218216110699793289267778871804575593277285808758208919841017378940263790653122649754606455799662479722325943300784838101112298849287282412430033531136137331213047182394359999017894951388709697655778399600756887027322510756130159524357333702913881577469945643736826934583903025994553855491904501548269093443630777504807094078343352375146071948198880617835514532635188385153576663029941498693084665834573689962351734691873844934842507863375488468249234463445132591316979541241035347797592316141814231259410581424609621360455456532897984262949894072046987206327336958411624273357441503174713334077983494642129724793750385350352512456445297397755668647773995020496082086124229554486940511948314280588215546610948124617655397276875166488609119574739135723888180964758587186394476301771459284468937938904302779038971247491076989232914912746182749686965877152539691297195766464007809667403464397301227930750603622657518190705100903258094476535212742390061059338929389389876152773488792483843755327598763284697756229591793150190619689817144985919595393706350033071866879149069400681432543272580907965347582873771694373426223557483271062918391958077463501168940151539283388258919895104851762639337312693935324029415207092904534319623903850505011064221823235002001119983861437569822625626163794599421964323570044214373413280467270787713525094606696837931543499222739417940721906807866780384398023339975713539047160798458089796113963834331024770752972192380234254967663904762230710707484008942465450907228033147911527865004491527936482378282028708318229006958008023333777537173402666733964155054213020818469477897453451514959062186416959117908373925847711214612537606474906448413019738692494190079725798185781432490003037807956942364532613473308673425949981453026305587982265886664883594493236345556502491935641009430133537669197332470694948864233307147917879620436045044899365469815027556273541956007094758663746118522732845747948515563325400962658427808239922422609493499846662039190348892910888368605613276678453664060825718907710543195501976087137780761737964130347287103253084889243975601948521392626615666187849937887995843199627108344616976534545312645355810943996099539484333328376211692953089986293096176109676163222168014325677544519660549901906540834031385504793232899731212937495036162217163222200894657018471066468791155730455451738626605615967084635414013493504213726135543242520577349903258874956775490891914813223885937898945450227634953069235549636286668924949197953188877726292894512462762171037444997068567543497953148031970381627644890289159449177301970087222886875324454036143035351355304493475512863982457710537438204297058237673341279508659019711096212988790232158356974911678179870040024139830429907157965310103995014380792725306835402225545335030646388269005263691859240642075443906139359765678177052891507958496034064575157903533766772652052519423513035051254347862191038712828734481609100360080819711317436661070299427853670316283237342109839718692327422988785979119360591206421298308843299587536162396093182026854158052614903348264100677955747020487914015524591637332908364419228283131486509115592408261427548530358593783368479290358311825520661826140024778244595540897743609754837419626739264330172528921712284366821005415699225957393644930354756085960488800567853948583400626852864470418020191537720376549549597423587293840923496656445910752514060339748506358376025663880990496674386080565542845990071881886760601478072060088115086848697618295662492930075008748221003911923934477186171680107941148706017451531278456974314975772179299771035299280188751681775445772970197563309528619368069315617695484038759832449790001148338769070067757134444765511823220660083875385653447055372303977431629038208666141856266175059839792773648093962464112002335556723147416208331974493453963496273035607800428588371014737322132132813279920449155414194834053866096990280520828060319814602077568777566637560203427808308339958353380470578672995703614014277621129933062304071119778863017822771378247066057074061046461418312995824293081644075101498493574939231767013251062033878295157486177959680747980672273610680627864922085019795144822427364045966889255463428989152684456084205470621829552041271962448042917336263049516776307989374296331137832925355907854736663005609331900567224801793803046249665854575744300443174143891633827533917873654109363126763359981863139514641139645529634526347644203062683736048970321797817170764957344902621505273169980841581562851840626502977964398279882377294441478380596118891180008392263828979876572899215394779015502626278481439547037057665663513804898248157192413091380888259332287341431085158263804098212442006611905426335625474541547507943942130973842821538493614712270617065082121166382886568716780941911805871023728936177862826002037244107358590121773602632292660146970826532544916651852815791556868341246024974946190370650083841318010815444193899460621635106399182283538710424578794678380484135176049826193641686253664784995609383204403363690693322869127551405694919640708669815274034753644285103692388661193887230056599209525783032591333095825368751831886330431480162874221208137963046906340347424105608790019669784925278720673853830560681990163153197149376557602782236628017011629614461971078979619841246149649536072694488126147978403775699437236263596957331097052750365238000016003528896655561695373944741752681146082746941950100402666452717029269455324370012705702754501107434938632846603408017048213587175074761686895767422234993106642953726794344021208498810277611728191791974556504425766666192310928664521552729649857316890655766814856927189778191241250515884032611855380387884586974189800970806732926603776246446167642222093796444525134792710059314671250176860174471261159496819641364735149961163474556730973132052794047748376556384788590531535341448583694577334329198724709126756995039587403552864770117305364360321412409625329093230866300704063152606903376941653446081577940487072656477265024687045127819116169610404461875777690456308862902949559629279389825221470384481941182457669302596088593757155922682560322556296560098076325395541479741929659057742752442296990276851465608128014732349349925664865179074564873484156796810114191544670396256244775002295851014995081847182763982334311359768774624872681510274014455689560185860875632118290062010951432068345743054367448221474636975691898480043521012064474243400113651559699894887446996577610275598818582216587160508335822930055988759625101298340779022012657855435375389684656014595618165960327358389995734680176102102791352657100674835803395585143634375974579878425714818267783085849704037318126304832859508546268714027125943454773158221042692625901101288847100212586638966988599188924923323023869374823462712473041489827503162681467553347658856771306545853062360022641759316525820748053324139361373362545509328969982498607805701085770295971552546085259962894907688846704074135416999642394014701768835955416954832867759118379775734509372256979701048172778651053740089412459275421745702764922400564641749289623380153541394096072148899682468498233355940600105560997859612376708891761834016773458034320292103126726744643677231374758229042503884420896792029648832807454803041384951052632548658695220352225230410803207210959997928665362146324190385416467965940394839237857912263872599098559237037660420512806681761988419321468076947986219983707170245030206591970097011499473761894788656388609242927802554785647556979498459595294738365613912622153848818471616472960327091987942706590615502229150955293003223482483901823214317113230232287894757531642040664823101649143688323254293290494533391403478807592778574178162919737706290710433168496491270716238909728313148550249193920008336260994221856646776495550759334567968318926828432713968536784684021448995844805804473648666461635387370284833006506524397499105857848101507348441583396365300749767053284621096617892119262461296793309053816866613706534091800879024201246056387883857991693652620060390290495653595896809508981225727006812634317644350327027623316253907943457293020125403868175980650745576615857344298702883755632446699052274081963677363124283984426510776190031306391832960366856816119083296373398242480985461210384463513978002381666921805747903957550432094005328285985173817844707494912509240374763111728436028888232046113863325575496301431091118473512468456139081112567774392980661200745742977176675169876245143818585241995707154500286478745218637328828284024679678742832835257230127664821366695732235641365200088046757460933438174950845177752338405296539520964688983469666696645285232637537571959568875274705867606420746284020474066838238511736104314512628124446309387040339873050884640778208262293510861519770262058229262940823361896976279939418316021038160573039927425863615770424817197086453379196666308893386794908250962786584844632622287697998274695826810959420179538275010660002303773522369199153723361779381384137008887970526219430156771757747398757528548333301095249949502285381862651448238909264758577987196906644844171147865103666985313316478422310367272532903341489866703859912993574897471032266928604831108260017498658039034271096981987739902380490968469086828749484631742177873346616644730149676298592552331070505287657445230925683602785041668754828221147346156245985992513137040084387131636191944971239993873131486143235718050518862425793926266805558849563712891087051486091885394951872414841532128424353472419813549568571730950920407243244402103654034422946151072898657385473977246287173334563188652639783149650887935833145821427957010329690678434356299468547500190384405717019464820006405749786193421157933830808412279730391343959633122485245428951125775425518396112820586082937008618092323917569597146925619871292311828254705811092071670549189323568830931946517222698274736003333967451494660261502604319329261106644906674560022105594636905505948988465645613904216537945573120024388101046369387111872436691143943551117492288401197424235560678650749178250848800201731855478908394853983889613241544119098596259722348745273855014892693682431983098965316294388984488081758059802793536268677470102163065432030565752586033529902648408725713230894059502753932909588656441522694710168708364439163018975735944094543805445006373994680585909622109813736901543697851647375382698202345352365166565081235098038724092592093670904720431933405916193922054899685515031151859508698388297768202217648426083986555225782744468372731131110212810079092809908959099484202771470003743686116193490589634286664153982565689768385097225739868661458151540306686893674795399330050346689794600226163727187352831803015910110899544316445378589394621225557054927794719830137799583557718512535095829764046440737644330575541351983513626954526664473112226015919989136344582317507406145115746883166227438740557472890860102139129350403945136485097144618881342389151496276108975877012086663475285656308791962626752113503991391398539980856266727919717059788357679194129238645890849665059376253928190354600371067145121853994386654988073825029629038992262116801277366446892175872294540015868769907800497713429181812529224892455886979644884290336197449675567416733955122803136506461314034982731347393446784279710037155874881502138340346953457551234755978654306070685779189639995757168379346679278476632256332260077512661688750089715208638761955444786701106003157847772269227387191141059795558724627717184557732882052391654193748952367256964044666893754024329775094821248682164685644124337629214933008719316250477667631438906419082892246127153816746943135439535869002854223091020680870177153301781776502880286773390158970374793353659022440361204149821451121271876743668493118550184152680157521731356435506886358546549298046402308391450981182863624756552533478725498118726999953911332450192250473008901116201510951893346793867998319321314303845877985388075868309472773450212864263361762774263846660022420877198055676562361645164051715845180870784334383084268383955017753579983513470362736544837820379658887009908763420319773754283686397898630270963950269041110928954174253379521785371127134677263497104528993754215664130762063194007507401132317322012744445380961917433406496526087664436610376834593826761280225600470008293397523615085900237916829242571079163204453025934365876901010405226755340117427151446727032754748217709454027823021904083289876385418081303153472823320637899562192682120631335441512075666699737225858040592738153052526001455614826163532122327978986022142868992192082212483305079462453320569756440606913013333454262784683036983238785660165755429093972550465022009938396345371843207698797791712501499491109779266119784102781012165558432958607286073010859628752695749761324250774982388238964811329126338244082215041751889690554475262263635874468580408522845367981100767787980601743717841704064471364348476093140435816092557981147603312338093179714991192497284201749340345023233365159941952261822147313171613994298506541876640971412480936757456303645487055964234274495866599521344521789657648509073948649688987168064999937069579088609196070376379738858266918682395486652061149730133114953672621146530823507816543421012191360401847967469087627995277289288347601400929441051724934347452840626232173566220634741340726892704980956891367889889773217916487846100922107639000621262364207528978957742318369939473117180581956167050403261741270291332397150846783441779572477782266912654621961640938994134946700220346485756645931020599330925315842430762981383328894097359431084703282658124948440387517964699879132890442515277573395950710718291384680145528092690575711435596509493178515111485270504727461830429847373655207918939082126406750325910221104277429872308842602667462557164799553123284005300115699948851432270445600754221655100974537059910585263449250549446423984710275526724124305280504006533961339552236636059557330155353069497420108146083104247695553515552296122435516837881245781040617739520845497497668514886592388539685077567853709429700446653363358095068191716124959229883670337474587129504517447838329470406655503465417396447695768644810095310319065911873304816480843718611962421903619278961187158349304193360278014881835029568071374814683126937642151394643773806590593588282136030187642781713459771305467443331055673489639244887078937246124443555293831610570653314623395845619607869326217654541907998198206340733749671296331665492654631419416474034316347233514824857755959772605868364446881860704066799892922187107675822245408745488214946148369340122706993734573374180240184180082283829591463165871203152150075716556819037263476566074517718981199939178755210407218850980823522166669220542079769094995697809745966713572233617513221915802518219945251831214372872625768365279254909843708531615880916729708526427607305735304320287095168326367389379435241801221286012280564378948166533090172683525883971288322470941301244465352091832289498374399904575678486812822190868754340388055330441369069236808787140361747226081536013505087062239309572519164967630501993994992524150280328529777085034074462088250768874263599736757055743021888941680442301382755165495668031640252658420010133050276114397893208148639145110048532677066759277103201599736942417284223715759352927824109164177186319143588135025430386708734295815064332734470338385096892614851583570287824554091269253467264440766155506781311293104311136755927690574880508445132504500183990615582082662875118880816639232664525725931565449281711136813161987744833946608927641001873914113365982384093802504827094700056269872012961859356762294314498136777438743317509522178435680128761097717828699095612695598795499507311448120861836861820015340481053286262846916701890375068854341018584591734436479807469991759093659133298714928453471063975283507604734259450863243739676930018825060678684072183551593611439450164762588366600492829318745598613158907219830323254291266393927119000242111794571113291333136549711363668981004538126678098910537710587536931254048060149023115922561821859137343111977332716388889726701241302029536066212694491222131753537823769678497456361642877099874083756258046759875425194786060905381322042177040561915732398149915124872941638420637135643843818560657929606520658986763180504619535123097576476981522813030812928267075853501378270222345962735010678007597385276507689793330880289175947315162913073591638626027622405904276042611594550192629553207156674760869202676171486588690763279185400603234906512299790554579491722730184877599566410164236164137296237908597518042386679879633077703263162027186076677784688227121595351601731691102839861151949599282542770214756706567514006246095098917037536730183759535187129375535548690792278492689752009251172712303774741263855779805021959876566472591236121688153661237470940749274896924288005583530128413453029763704887133329886962574483092795081535960782378376895968915483114622484924556920741289711144213050876070612737188890813458263222299260204683480344504531340216932077995746989343905429877217199265495308629133973629475929748479850852376166627776508302619701854532937046644764665258091888801063300969068636364142332369965577601932324420334883614387215320547402032943813783885568164792587514019324752754601868684787175907819015765041023087676284379837725881117139747662716619763919494688190759658992159228031100885245325122831134801262396413917635259296852434267833315192995610055778220635379245319537389678840367879431407895842611436836748507134009013855568137158408884420752413485562531223438744735810450201640539633220334910770098729935109135273657612838517145005978198241284361143531358501831567821535885920183004854880998881173013970511548319873943780515613309818962401420187877201620133018507159458670320079551449945655385273872488300672269545804430452638010976998505158534755072547874715613325926781528961614347116638337981027809532627722292786064815448006275919399809552385990072757404186279546402468189505021044006642446242965531577470651557081501763024991643998385222966011869529367982447335848654891226442330669327405472770556296104785958614117038775823511736892304167292621457571647405215062350950596326116440039750103342959326395402372862260111452714672586112567049115525080275807079411386698822504212950489080605865222526208390266549337283362930984688447525011368005854340760059617557145067768820548066194814050878757005936986333087710566176907466731885051429968955459824244410156255049551097624314068041140638512273017508444561157172494447352319091227926317263336537690767170744518534397782166484702586572799648684755835750337033655211471289893887342568601647919847183290862652416333073560193845693680423333891813044485861313949516663362303977801146770429977190373426931766885915942876489525439913097332248562505007174130267888203735933901455797986364264376538629292479412297859863695730596368859354183080335018361199844972453199685086937371410330122106274424965900532776840639589914644305533366950616718637629280278049410023928580491856260745124425137941520778512623165929658133064263296628976453237406898354975114673598781680624253060463099100139034175052505779673691930299465942375562692005234507806734126613857111949988360349928651719224633640157288714477026925104881200468291272948616046397999004272455954069715985082486505146169007345800635374437436483553104659172456873013300718311987175979721228695952806151663286178210844007169539869392847465997841768055919914198674142365160136877392500655300452325208732458171112869602038249994548575028600413466442940745479578984891786474527415751713696282228204053471853225523488084109791024471995191212068533784572226702836540214913077906179008324999561198266639841718976393516569535745130950953968885967681250368660423979890067102844162200821402663967104215422162492182289210441724441072690519981456262004284277520743868033836093508722263212507769168583222766208034479278753029004417563343115256404129157812802614578158641101440452654033540866709023319378448497191892998194996552257749360363932051410387996293040058197534932565656723620008582692018987507719113457079567606684998706145635002254897027802075680253381983848140972465095369034988485554880063543010911125658177863536197222095283938746932746645173872820761572936407849365317797944029669502579221286909207977935079454605569945160160126053791635252060022504389003172844024626453050491184271157045588139547174911622026008929913460418713599124721097373693882320837787495468141674701505321151064308164303331590536472247733795120459973698116376403297744736801668902503732814629196178329333856240543104557790931312618079512082949790627405703298933485918861756877976854950051221236244668063982801035890793027233889416330121071400762364356907287128553920117634185125432991030903705289615239632525955469034145811820672519474990016668231894733125622374108267603106985594898980822832417637870532844321769810839667167495294338212202382351096023899900601726194084932901297125392984045070512282121942328733317212803945699470274282095261779178021712483571581019090555247141769079456327128185430175814208592248735848551468116610083459241870175420823316645293399156580733780523370530902745999607510410065350684602264940946222118951324468494789642459631782991149569364431146169817322363805927428740805532558563980348476075692048827295899630076157628378415108707674746713490052990195700368835652565348916831479133126567298576508636562336000825014284462012674106520265919514092846338361836664226478034779954933094665589216726434582326493397396216148955556690401246982562622600804591263272884674829109941755781403322198269586789035426637434302533395551770825437720374824672192082367093864195696391157336914017608944621027075690762557200293007196690678468079070462233842245617695120768424225713252079789040877270879674855411831771443914059454589736148456277003221434493910306063623610205143322704373620227549349692571466695307153598231092960820975203235570082692273222017259266130505935199753667994345942421006524030960113669544792739867814717242671440617388614592148897446391363126315400070208852428583732166378205969024177404087547035570915736734093891555385333068846996761546499462617572281528341296645552914180981182215447337437196820818382130169546943791926610497213677988062446460763805767572874455407946407456198069211179110694188745533706088851869375871560082188145238719934476371158624389679948808298240425799941889043818643826305763460673325526570079569805082118107688237931016430523563265299463354704429152834550866431023704093059050692438877182036965344826152058068571574271819769287247088427752572069335522173597324112294992525016222917519911807097331887738203512828517644116619473256557095835367718369502880967633548792262999317911921649150933135267132783878015810602055310184253377897780799104816170233189009847402927856100513531409856783492597021545754281155766739530824287152589838417357072063150628938298832017711191044232587075089026003860372912564788642855724170392999425096115439884107578559634624189531768945356728340196167401142305832524720510517755593767980669212316879647791944561780754824404240574403126481580430683073085330214121849359173819047756097663225972065884239582528260705210095385467052548464148516395004523835187569552319027011470151654244624973264733342852557584936286197069047272229642464622591489664704696252265032386874984166431534811898172109334647818418405116416354050146757241217124719254856483630147147610201882308153161691141630859477418538923456824526182498720924943150713024326325163634119874117856686027367555940764146007426705270591151978386757818420639691605455955244573225823318995108206311897309680161598033108337181655741620381421085446150215448241564214346523908874191762072840415575499269647937882565775460653272115194224968922381716786502382489873773823611274190209786623842939750024176462286976461696643344521083706040050047135817178574008819186623262412200714648402388478946111732852770553383675965568040132504986397856519536884408822351217164591592145049434677045420354970262650427297560297675852674664733545148684238541799108071250159318966503111494509611057974070193060736968460909447334468079609677957141500802719055875061074866186017347146168839753488551809851606182557790851569310136941675881648058966848147974187127927238690690952533972508471633107366620485004083643955589846099332945742164799577026256151859775526034603499110129422341174912489649634768722151634406467376463613126219440879254831766145849832393423992037885415865087710581256557684131513838421274647588307977928243560601168083073709848144563517061967399926875148385382248233392334629499126841364524766390388067766939592380681913579680998251515456756960350388685667694622240017162953324371110216496952549639561074760483875313308844268590148364968377071615438619152891606804636015702102758440956911685447666451509085126560804186144135902559437345193200484287395963542465230080937879741139744496546491810253861031881406015417440276555838446230388060185998156223826045143949742785593768864646467167883240026652400325151624554389190653154418813220945228340002551910841965897386144393534811300182457637328026585241684995868494354084315937900375720854432716181607962689864291651871214002969960482590129424716230413958370710415595380390337078512520306453878603679220242698022095236652907070061949340127860010744425258368319897478932514925418950500813565569138068168241041616840926952284512895739109444301166988231392693784651947004745676835046853019887071251779756473275234141436147201012964834047757642926753308690331860550141243181596948720038367964712158334897743850035306073522217276889545479140168675672180305127795673097204889901706295546847324767385827780631714566796626599601614128559710712807879894490429324867546647741242230942417585438289082479931608798478531036993912873101065913263191666832005013602872290033572654339537708625226803198201063821607956087542809542936516325505855697407552909813462331786884201899794413772973468140278928078254270714011477948360012909237029195304248301931556558794226968006435061527775112637450743636683327674344202892553174180193268193793229974254789525064547884621703840639471232640478491792282976218088489217965543729979305328154328631374660396378995149241254773231866378817515312530812029969763474446484330552974218047763729588410933883577134753458330661626320385724442768162373946836778576641846958872682735592222501669723171901207274272768985591865951641780518401483224032881282264084502630379689230231350549253230504494329365552855099780174793032772761344890867759110769464691033039007382590249309201840867062942778530308639184717851025123032316068386094792218517357841177184121260118013413483509880478115265649329383156069159430265715949162597585047839246534534503421053432822773787459836807522956662398274015882813979507210765475221654484021814055617966410375158844696303985000926415438614968908583881615252756053666476357517315981774019809630633653460521817366524233227984678600602502914215134336870072495038724034508874141911584713023384944410934761770576796684024530827721442699792627083641993038006224654552937329975262455370632462777465063519449295262569195408636966649325092775937919972211987007281701609084960541667185936086654364183292778704538648751722469755353857237730203924875193417725098853597418340972732752955909670692848273131800635545042833114247538242969267250365511713708656437847619374816983798329192257321510750177978182490307020443357837502422302784266386773671726755590962834811279354968812612873895352524419498782680970454431478022997904488961073882795481929005134511219184433422403534370027870291602105041270470909337447987552082243343354151315194140411655400342753197735691943977930715035449072743024589166002710175928511214407967619776212393223017164195156630788864854621118710962019771448222189662236326124806898505165962721118758315792439965884098121478809895344261589426805658772062470602246664895894585761284439936962274432109700064000201767248411296529681755411339457846030919192839628129190926176429535468466505624458444095457856098821205880668373172001199125981551421685946632489128806710439451100146963879163756161037969136198949478754759364501110942097421827640277180196398704071524600361381044412054036515319978131335103189927442761916973684014014246072008844567274811741302149055479030562119620727324293298150267096964379271807934938810631710025428005600147874167970571477513152383296424846417687593270904918677502271670989341370789295546917401590717043441937706721159863209512378913923252358092948973447119708714495718651457387629318820290441297846927085154310133562553777041657702340938807635838301255513465611440927901997307547412235054645993255939801802059423025719031006098062829708906160471430841553392729187574331230803963860638264885173465973074313143947995213266265542959433442884474418313163505708487344844124530218282963114442301864338870947376536886354895661113034470296898412569825810799285483139830839972365187186481548683248437757500841817849937037565743491901829562977339324733600325228756172826815722661800537884165482961217367233487947986862814966267522197340453777888844506251213825697253199604974740507205064433157451600846556574707223993834892584987830749363002418308408840016196321582079852458483043508599699743372510401619186441095868548716537202198285012539700662030176087848927707062671507849328698568298781135167834973745562136669764216693232992334211910011373829301738039722886952790597422925262201712280431905838265919225385268526931004491524931863008682684363370379289041171021141945025612025464098088542087997746549520353567547778693617740675504027790739311224768420421915061644190078507852164846933667990611643937134124190795649547712749719205894873436508460323328341809376836044893100718831734451564129138162396074666926906184098265394869822318270141195374892833102682167637030143507369824408799937662242195097957015119581932496640851854884425970051497451008854967249804624133362924061948778055329547130957490913282099692725785240395899811860556906984183516521155327690907991030966540810574554523266492217866845909449636836554743126842885518367513122790066666236819056814264281974187842361284076293551288417012336313698606273982847499970431477680340050666995652491667870121487081526358671826559604495848973349128976150440810350792261180666847922557271841031906389177478403557522787711064780017557602037531136986554192978939373930959269417158353570886212777378470879158678007964552126614790806453693411515011432916536352345051075960811047312102647920792306892390170923537698128385885528986640261488236446828591848270740747479004356695311939108774643071123073723911884333298776617145368542914315973134946155582878493857430971623667013136543957968848030269264597563198372709833383120784788160401924773060521152682413123710086669944195289852500946926628980779942513085650031536139295889940607451708643958367835764705755998695468381066723643407415602406386847077223359673079515339805181216127248592861404552036088846163428374815050678350526758910139675166787690936068643875346356556783710889695401252470203099380802921182024945178593461011125504858175032191363336640186441029242097894327289320333601435451292693439874239925248961864884102344536121485986578989217436298350301775323642448927766367878636234755347364611963814100674412612972889125538688203019125074369407645369973681624229202020296534209458780181833266538387747970397880398635931267413481563846790962361501315686301982589162956763867781892947847034778214933080166026758890099653290230384794743258126947981787967542909379939449099698266669687647242142073299394148666825515817230096773317289886644887547890550540896750215602222447968058113157683461404262295853333116000537882897256362707377465727893658760336105044968953442851470476756558812853021859321145639093316042151285890734255363711913771003149459345385969256755182652818465995261279217085101881075039388738161212235166491380244463100974400609414726890517472394714614485495499846547589239552372082607673398448456626977638755960905770735518159665243608220710277334442260621763400765681697693213694014435658730772019279561247466043825051145112369885108431158547742777180441001624436470047391313314416127277641386307997550953060952812274119248819983621454901107026435548735690534887370048839490450416826428610617485546458141687231798813235825241728325933302447130495771896052334618021402476303399084122874145260238509015174515171219903474786870415370556555791126846066944850937591159078031103584561398201267733436903111409349466597370460102803384489061033717293261636490292836827571369813164375286717755002386170979682892249941398746901122992602923609721531988412652198658347147275795216151279288172680561870692446605800719049672786597527939680718396544077772814165197749444545848055159810332912050767985471177286306341008284468895069496647543678742703470778400181135799957861293690800561176363976777974159447609814737514910377088125956183364566586932582671983226144174505636333436458850892572406990390450705298272436341653716652611954195980565770274372055431977814602095825626486590482675307396106257909187729107109873385047119100054800803957963434116133081505690620515103545376982074602128633780306442280528267626293311714151897503024739271644681212448524290813698532137524958914060627355639457811992276722562071695036219830277434188175074597026765224351532353030819651913979511922172776848819136088361695514237998029662590295244862594519204013006401952693806450227615706558654953982551054181922122029997219802694803573061601444475734832532928539503939317929377438716753020792584409314608053963542328414064769963241693407040045557913912056118289139013314911531348187738861798073806920152326118959304523242750706256317005697719933763564571200791387860202848234755812389378916349032447795376273422749009472182963060496392001889027348986942157984001745077781216488014792571715931556905272790417674211959715379835239077890315307085385048182618301385616396000585607763828087615001579153608161697532488864620552022786363633232389494834892199828973772348128432967391021924027141543928426722057663838417773633222827130451434074723296259161634033071920074802499529242305746653828710063503695904120021116744882467293268271430367140336465239167769256013618016779056262312455335957085324661117547909185382939053497766616908928579136351776586830021809275591394835258988025959656944932880012908966466653273655334218850694388645644657383595707421571127609735458108584008356326132437986838016150812530880101395734176617065688430758936886852269692379004116302164839216258986530216840439572480408415616103179631781517249161636846643863234918480120763696298862639181973697829936585120407709658506306674356480680479312084377879823503413931712483935177023109743476471605181878551819197930380212771104529643407917901064860127322849896869937024204081672411299550613956361055740383244778269587377085390242007281181818712246070301280587864795843002665909214607167640846255528181530960426288441216747459913093741018264734347850523037511909064216852174417690530200541563444957848439101879485598389780398387159822285176369900155426004379471069611931694650733234178740987891502894952776705099254507695716726063553880927004417639080972085279032346515125378931919849276162979802461588101103901129380808272449680474451224517165874253971442359539801009032444059261937738320282064344009935400985491969684183605019304173276559890361720534213129030126521566852415292421166118860650441596109247503365842885269304858335962033525516251501953955235865248380342935015219357904434509000530294496171057460539216408258165360974934441620189617629324628624317022904521871516801612600651094702612366678845451351805281577113049748364718684000441338683984248568423723875038256062636678353093810053978040337487541112023886278704933350888225536866470676255157468664227632162382294349411517977227816640335457286528784535502628825097865125075495400801296181767516706303187200518078272234818258107285180621050116275111212389783951274269367888760140936058546983629550445160838522439590092262083382435136348086383384729748720543026113658649668349369855611674855989651224031994926233425835641118660340803947837092595296980729183222124785220572074025006232041035551105260213301996340923743040272916036747471638118782775747436419075662590498901720763618525959444063829714874845838429085374681555202270201171211467520554674614310847065147425999068449296489584037793381034815915743258171461028037721544617446166387983130098050281724578812146256037453126081940564547801824881314164506317031277071889166315222889086528388675963863664302592216668824007682337450911989065696210625770004445883968768457130672597913687367609516448580737393732075756670339494461663079714683004447462011893046086325885648148387749913630394083530573643091393620133622271567129314233949902416058175546407446408402180705920919677879768243127755453363750532033322952127370438047520542307924898369012771537252581216063825437183524447766326618564130225583460603621863170301322760034442599909134483515989651454118496478280136428439825976083496295715032372917405480164062625645682930552058414170666113662263802020898545132240142213925580246812465490792696954326101600850851387126357144836353522400703923443604115138141811396141939999714528662910388793346370613295882683741162870041269933539222440341492878026531101002236709345800626917574284933755444640405747584938525016839955744024714999005354660081172270389771765678029566788901846065509316588028537055169732320554186819982859065992083483541875029213174254857219770268482665514045084153824714575059555609944289462610561808656809672382380405072009444095435892337736483402512225805225222345428291816857725633529233975369086722819115540652716496272670026719372560287232663543192488309373915100141970833497370342741283239880836109186152939445731658077755144896625951223916850973463519938908259477079157208693498488605848285686104148299060005332776172262705218883733295255492471493403964222800458043277000121025138054320065868595248516345842489213944660699789679406119270833234056100884104623913715430978829322523736007839120785423688986200585364513326848364304224752254361974901541298976230024538109466049026631694533487342316393052748408173246304058451444849585372021879044555287748411469164211873941713137808817714854558206173774640659800318276870020777468140259655174824379700904953556266970729520929479633543967538428088148298662487437825218473182957868616390631981187552379187558711257529213039937795695379961837149667360315126425101467618114619466557119560155301009481491149050155402916861204056401930123955209973808041091876560159517496799891215535032563263063298673395745146299258557364564900785947396842617807871692982826343278873301093055311489740833003230865832699300579099686308788060182084933932330953294158646350239792694823559588824273740449611363493721850951889132238737898435107036233047685216344310377947818782129304899785980439306118005248462586686010644922307428161968132900542751118032217465262573667394765087254516878228358880910074223149827200879497594128402922911005416740661193416146891206771765002849726830853569773126126807856272918289561547316387707977362214636077377611403451622293818833658289205514603623246929323394486782099083061310015315725238386524501097385578299707935508358490740261237380120604928798345310758400236872887214056498488710206002479333268066015528047484401352302203627283814255629861508346939637971331135951610937412081115072906175386110979219439741093459525333851182866058532557331785811961791870510687013419412642719440757609034166112977853908281021224746107866394132606545679838513005392350866664761673550002048671645795684283400147940468182930141920447194624035573838475477385485372068024979585440231875213247957700137169969282007189395316483333604828671381870980762858050345667417373101740699389167764921033085799584586272360612114981697891975761410557567668530306290277608073843186382330796151005129576759298291493861521267937618078107888788657453081396772048257777607389036652093984555810998434821379043628200313664211193515399383641079320552820002576780034506371219940982615150491025517760846082478325902227258772687302278140482239434631923638289791970383115115822473890067780078379502474381673000702700012666721587090613742592652166372620462852265467562005220216459976343679570773887557697815537544678035751552454258977110272790549063217416370387414504035451001092223078466943131776696490198442762865342381199321623096544174105937400122684961696185782443284141072646595941462203356469644876224699376960265516457276568620120005094557300000113378892451356491567070714082796123367114608812070168285236847999539333749340363179728837260176348499954250857898394941238954414204312298003780479786849690101917009154061138947074985538669469133286463062816833455546883264175082697641011614368976863136812297181278828719209951627603464494623504603148554968349562872608426717273080724269175654238096348078268519177289977901793800632332962339957377296963335793651998504270359953456867153866447595576052739982214236061222687381471547581507777152691372223833564845713976673401722001394811971463725557446890103269659966904215835703682933218811376102726261191584576335711157277892144350691082436674284960549797087313767108370747776504882998203346202881248735628788944541468604810796788751801458261116116731488736754976253661200714669425908532711071114933060382851169070327328409455561880443948906575124478376610731839709533801885163377110212825344754901336655243914204167609226085859150476821902143360348181252019161066546736367912068040781050792563509149215545572047908375649732650391521164932500816523926528342901591041499743982226902539342624180588620464868210028067647191162796839215566576613208800133493914730264673720400412469123421580373965398005912950353342744662551049941800258922275651338056244591300791214835041102337580605631277815085949360781986038982517095983364086268656932901572397266923767186164070877150578042035476692081072100258011666174209333494503798732040486436534763333280073082501764368917196896938138230286145726385546559479607469932242748273195584332436545824061775132131374376628591325973499979237309513994517342406506231758748873540984470774122784138228205118403460005709787111175305864538565905835795671988917290513324704610566865080300195844781551144252077792948146633882778462915961420458829312013181681421982668380634003646141855302871551560314644593799600494608125020379403088945765511143595352822279230417286140234467068923782124600114874984719321679467478512678963355642771659919677376986167163794323264329496989179618444506924514047063426667637155617506348952769587635198501410744754467058160870506353149455522517835098991355089646056405257928903228461485279667798517529304443749306896648553935444663336741913133299845411087458925234781953285913437322407210978167583850811536683558812907317441039206936700390086979454680922746788057265985826497986304917767815911786151334856489865525389143876679082467171439335618716058460053738877109609829972856411127897058348270750821796600947943319536886780735453917164721493596396840807829110524574263261380925612340207187664452554860194921133162567473842484907209009170524835599228736526704215220762101937474492546550238686673205261877172104361405192550457584834651103953697641754407080668171036295431196813586552915838824386137067255736803295606880647238204977599943873724086472610611187312243419303481631731899080143619507660645020873823227674074078068893207461465970742533905015656392748092269308712460176450712994464740522724732733455017235364794720378188234525042583569103579962789696085420515191718753986530820186052649588964486488851030829215690614355485804161307933527708770380935487846115070144341489865346728077212520954313521304034142687814759257870482125867534800473453427176304752722178587093121942715479396432652624908869480790071034084464865417952891141142425793936667932631666378375193929471097466039045248672047582011781095850227515514303459877700934306772927270919995094180005130288424048618202458155950740790183794706568448511682894784545457882041539494576109382248256944703598814598184681961644577026665427754834543320381447693318915352985546267454027708548014272334866515545744734559108222363422289346379335290512362656896421381558983699033939514147071012340908261382403138580244925543503820622025222774767879756380266844050584298272419193415508354459635014885839824433584249611856126490457934895359694028306339332627826163361864249533551378762599905326847298624228665732260994584707363446411191740169969612862105081663697982715551803912451204293350618667995260751831884054069777492608870880774552192194920713608870507768812654489144124211127802907701477243685133425607596107118314456356709321745753830645647224620802364380353387394490651148259635794858587586678363990157833184586741059549508582830277565852380598847812048435253952289114300280437345748534673876350438965634592979245738633253361148498456990326754430513336473349863088335229453033285318692059478988451377503449878540858338904820389602071772056356547822471555991586734475546802100596202466335584772063992607043824901697702942201783807960279597293966164073459289282506116794151481661835172766312386530212014673295103808403749090054854100724251032809214286713029769945723751806201847276925194997734723471237629941340794424576379182571509087289594519256457666309448438309008755817861296131328897285195620430056744858391296350797653578360450441130637444181204127391162498756496632818004963674911798617962313500747375898400256404055332632210597228468344441665394055076746960055735097133295790921215735833387159955188812447884305083185461128876183029324684317430823020577847415047116225372456974087646878474511256865968727607983901559266610224080232290760737633570484835292869035328989458837974031829768604042299782208677374291480026213576229675069527457932000886830105916200536678697732642495705557539632879378037716174218345803491497169689449687295962737129720681958993149791476811612642228786452664576615339846478841085867995636199036492236556581964230348219189034433517855491604249303304604177274400747066729199423156082588471613184982804734471365894430525548101176457175099943585497222020657188019096879485851001546675158097447852319737060843305342925356562941024604312362265108109097335677884608550591878607577512750831882325439968088602194436578157955465347466044612682133474708990214704176528728990136030243345313154780537397808669474084901902349467317015797054278960915102903316279864217183408948957845462704685107075822948457159473510053155723637812617566712248475724470427480527606787947320504434335169524948533954028624633227623524266254769393386000618887927100440610267944386869803026174720828977877424485967535766063580139150885619707252509898151963576353443120807926825242554320596259920147202490349055213284609162499820005670100601458457592134161957467855263898885543295469187992151071225823857351083605946720779014377013732369738028488671715056408990171820657880880925946561613765040448934515969237958837878884076022996403516846634749223392613573719782065126871107342521255854142491799242997534134630000487775957302908310895356726545106239924900750361372611512872051520804172548992592821469849698271650439574562708851481640225132442190828608973434867289562097178186038288419384243664907631034833566300601092793158152466001712607523502897130441378085294680278028262332498477122345631084423565772239626382542249966672274461639779944523922032202963821772183966048562824039856645931119589840715457016381006690213410061927873970403430274326992023184459890152361004343014462607891498570567028358948514392672712237685836544235487790518333206262232985791117786794986222840760018358906044891478094849122733518723080037916750346542448547664540311639561640715435742029676249434550222468560589037042994885758780952706084296137512743976784739980952538760990294058723759305589379129136075659241333421839849106825034849111022733228362838456035907154701008782929486237269909711136718757756888429583126835897830291230672080450912754062036902528660210284438024814482637891183672108921926836088492138977833113917751631657762276952715045518468558284793772729714133367365730737768437738025841403245461280038344551794841137930840080751778844147185835201614748271979953743147263042917605575742926233877180991256532538406944597328333323263623651435528718906437125949230713872668184341553666735781891970576729705538066388499908232411685595973511101878691830063261473879476133692509246066732029841749332974953069085289535367692964566328489189589811863884643605279102052363425470040921226735774282818977851517739594943707959457827781372960797437676700084414220388112942488482477360917824306544386605151415756888711057571527180860843936047241172591596800715939743864112394715916168030300636950281262538388281462642995576817710532800720173213869137483769588047690608825044779246103698976657858122484500064704828450896673968685340186784998664343744005028451300439745449556477875887692220080373115657367937690409346153074835221126293700281164698095090628290405330100293452519490109508223585329581883674177609015206622227914425823878562100160381392219241754888691232334004824229067769198276664864380535702873223806406334008036217956753345783437264192074841839740091167294542294621891960966998745928311702403534456394023649735055134576597494286929781272549282981568732391387785035862429896407744818250715205158743344811984110543653102821535879791728333513848635152714939113129429393955556484647425184366974700519560005193351898067477528799432895905628022837039773825583291906563592700312220917621507854797278903346423598264326863364790195233303979801317206128617233998820106094615687345807356124060683105346296429575185352965196170646947285789150802068550299456600023689533867506524360858105082723946857029247761288087107842540201648639731547543340304805649617857887440440108310581311051497476594012688596035508969523433221607920047727593331644126118199593201092198771758059708464188323971160130797742663508630318976424127006266373256082182174067436432199738776264534500872307149664631251820009514010242561836336645435361235883056678536143211507810746001248304626053190887034564649262517322873110311239634019525985221470756271934894284385210004533958706869577185367169315152283207340162189436335259833890903751315645753725578683942464761414790781362649737315215032407481034953084283786638153061673853214682148757768199038131639667343967404323078362838926159090452860658719242880644652107184794325357247531756002793637754966024073685626146632170746130932758402988662409571002060317835707032821788334424292963145723948667952820829928685664880396973181932313726189832598402896398515057857582876107532581831882864823748866578853322576961804824387814361889947246411239780120414658118325884383192484463741285589680054567796477450764580575303485262584904181408555780191931414275581581760670726003629633846904908235540512245191333094274969905823173575892692800729809316921122437906331833828366500839702615293179796155673740649795735786953445413842191111829765417949573372244906218240905904526863256875695829077483437686652230930472121091512796514414390651777096262748211046210795780443316080846302287791688949553492010051452123340240209348387010519282634888746563232838034441396575981207487924699044677985651568274610378951226436102885725257238521758618502626920490549450245943034717129810958206698095967555900820123860625451726479915844137234386484429759684828035622547484943117959647205590894496952398847368878765031928977892918760905784402752649460489531897184695510327930596218651318584560139115780596415274489529962711959855138433032918142896363562136659338458613561395740557283396491889703382111045561037751413469391857841784098202406950365421716443641411184727080639816772476933183358046432105664267599590080209558540663147847039233275207471028628438057155640684019818050024581535457890663650181409504269777765662763783906952904628962511748252268440867047792896445378632909807123087264097713577156387404558844281168857498096065647051217819651126381395001998672663596231085209295398577512356635017847464384657734624346572041818601144483856930350277895744485852549201092514464836996449529349091551662972145945707211172320417710396942459771818781041605650230216728086416961416414291959921709363665981655051354940007587757545522291625389498542208133995704713122542743948031054860862329097385345092499743028530222833153114599401772878395877305089435341657970584105320693315333345348215987578443083413533830362736821483741550940514945462856335789816340292605099133536496011501082516345421937812210504931294123286836089978148996078101010737635564483762994184056064148059126459164465285942772246566010585972518425486634092687118781246949906726098164912578209213487799903730592844805932278740939449773405907836776107679856153487814213825307062517866179823810103340622107769564233452983275853939922442862493285662983464570750804506249663557441573537998056807905528913052698690653068258273520471149515944143864215471356326048294324417504224306172262770952624856760378383236148154636596604462321813235923481144810057999808895391905513331256822055069299847746498066641702819050393833845769419981656904362551481718042800282339701617047668949723071872507474370765996680651091548558791835132347418286168482744034057595180490231908269163578432103242346840383450262495071872548049937403871541201659265440150547872463473833025400890424998668826412876563356904711475831524343244431647888257750325425417930572007119754544954734485934279741580552212331288613450441566119436588357825545563267759258680284940337535510998448633105231914579815019755390122702765355720743774812406374555253162685358468036358105214088359062285970175888050909499711289024862681838997874311852230947473682309286085841096899003551876165343940230878636551886144000632177671011235956087327915164758358557790239197244048953980913832774001228610730437902126392422403622540251593966780011726114105826270418089247973659830276713986778467366987269035758456383864791825385433642642314946290859832922353013522771183267907293541935930884074210306231488741176152375937877207536553618678006977539258731602672328963014930689623118730255696169084666977171081135035103080059312890270176670965708219954472040626627544237735794302451749891652257560099695677309816589156409455666437855442146408830600233710271368321386422093369031797798893629251029637796879889858720327432506501694541300432318860146037607752836623899069984389389081282820033179758591409812913282880615530623452731693905600688493379273008517977545135838712213791204528834084167048849011524703135777308659470765989945463621946769995080528729025930014016825562875959886885463371838634293220389778370172886227912029607917261162996018476906006199839253893846876161696242102707582695924975356856448206302892777765845139310510623833309003309868606393662885978590374611106735110384800829450955449493724862842364594128127037629146732020257766624176732915638572787112657504580357961429524556891845911568527959254602233902958565398207580241843214529564164148030656745468956401218278339556336175273128328425470211939471279264913479027657871534652998768141426981624343818706066989612735750027183555671205296257993929072992513350346335419963316853153249054344194481691366979754901695145157206970389050637515016729738023190748738355552815967562715506225795423522299558312625782813664859222125822361609089511479196886732740408932899588831153066077164158197811075341489123453361899516516461010249400345165466725422787618087860588122691597518487891062386709125457320856833464019341700841907996914106367601603331031560362043597510998977004498990494363914977836482932212327662314813431270289395608739413884634122332439819576703992150789158337769656844753491511999873030543253664884039340602431541725617977522542476281290801461012027508717300377842890693935756910150771630576870900024641796753302016649258489153757083632228102088022869013311152144250544333065000376731740514385451620854002019124907366141350726031461691855451081037918948456984081566542258117022541705974756163980637519567321747133948163446325338632465504618818101177955436087115118870483330255624956253981007035540294509564972398134167941628282958807125291150625080345090941611694733800370540192372366844660492383826667012494240991224153674590934439579663523994041317129567723674323208182515159767217529455598801961318810998435503685264656398182803255021382386098542593715871475688003928432736813268606688848954618781335215515311954220782190193506954581721230818567982888070765033865119205979822545807268019810084806564401744106608035799761994845865514348582879105362284366132601892890652321567047648997599577900651634481924338700803916176892669705319911501674674470911618782991518413127148521933205839874880981922282132937750202805332932948897701535223174180046490487909023973257161675860207411048518632412446317230333870677529284164100202199464751100066030097015405941770418388022400414268068415606489066916148956014688736153546503753152241166307653487291137836072938278676522517914922367793978708837940307734827090847647305516659144345695990328977482662052879567228447698447843247471413009898229098263747428264399108712643556426485965308883796859891787396595877970970216390703932391709850331592840426602385712863760789948061888393209484386277334949470322160871162059238280129501954196133707336315415035978439683166087721126655075680670904806664968886708732942916254487022375368956976184667510152143446310170173795761334885011103555682766807101114941202200512601593223954591074434581609222340393513736370353803207614624675661947518867451743294136473185302944357191207376611101586334556677002272670234013657068892435255863245209339126888887245392758042532714991837234582610782466981432791598990412686397149027816255525441232511782286263286989309697031908102573683336572041902886607959770986691653891644642087208940934896862688972001797206294907046210021018758144985888620633464356269721761492597764600761288127687358726323302844612270412807618347617832950442593520236581222697668591263765086299124786723721126802285035183036518713474177508630650228040062215345480193069982221800359153290453157116264469855714820980677573688171778786917566234845327550362458930253032227325755381903737867654255404305949240222766914938949305632251169263449007240218687953605882359097443771382739162004279150911823314169389417122095731134166042625426331191831349618462605164949038400416803260558073113023775359787647833340457107574964153458373048941531272560562447071002194785244144197078054807131862517397730913208404628460319514234847072955913253309217622828192002540130240802008677438428676219810359251437371254955931476978001022910213353047939612361738412504214465917323073606903137688131573402090881674106642523868262507021729371905245003558811387421460962790761666406404302148012135240200741087344251211187636513287898425116248625965659044754867506394952273466447772588039224965058823825455348152527471434031393016751485528568363765389959287479892920982172741955565728803101454088465119847544784359148031680893802277133637173827789849724511224145438216270890644837027800631052573443499858444127689231401980582598364041507719353499126627385160650494533388528370248202553063833974960204196928515876922847333100945852801073215333744466291393311270369625473815718838812575267694345536431292145906707736879668600607741706277874251789816236029673237093756332732273429430601094113307429158814135881415195927209226215947691107460660635067003289355846318251621614316866695305198874743757815798580412737026312277696417143920575951072174790085352641933298903027125746524566833091954725519938744409428905931826561019154311312680088328757676155096863061939680633825479216378120648078122211610159167250322140260146043892759583893746380435600733556202979567632606612444288604297856746075662376669204857809760980351784733943946604420211734272555771153129729777943851658273154903580639954560873636658149677558154654925993683378573125723091208762724696622368570418945633484589433924868675119046375558899751584047163328928741970668414321865430246109924155849867055205293482006151908440309687871030079741481780672048662981283914246442787929875404232169247271181464502422798571428713136194144879113708299895107462250708758131124888441230651987426744220077094073164444172161605868371572847250937749475275646583104595132142924655677788071136770525327791554376809143040733764300637669365666708517022968929756553519979111616876326810862993181506388732682122685844194091789075354879979356345019164846384158842519895445932301005002639763984764895654932841770383045120436997253974619359992714313406534723564857930623137479754972901032803504719549570965175244822072357246393622803662637357622795661994110145597471357077513716771599665973605222569666236049638816310892256018322174111049346244625035999115787064481965288847878957952544241575995921135547621056903091340529614064580320866707716624449631147877345937990932241583621174939728216926548995695263140611380543133126678411468596968551311029876421621013856929328715340625646221026712613917914915731064654356060315660570719644246637559214325239025593749777003553527890868019315499688382536107513530950629344030988843751950886951467607009853565861164409349778723342541045912437010975254636453150885113346821031907629082105405196888306202048164320525736309695193708886650840153871329801039639402912807006949752119922312643881955264582719550872373678605347345730834712169782583634750920314878552403813358156648557984504076564686249708083067920452066681071405139006725582400669888370866046371422147998102329959781292812988395896596515286242043560628258112977883260855861312774891344734205499600686040026426822310506487714393299663601495451050346862204116854216992760570923655532094278568807303907890600090373915131652851837761976871024613809545544803683695950680107272214030359742997744966393436780422121749859518953653806139181045749652750006270083761714597771203727846800351038424039826896704484849668888150158665310626746961658323871197776441066253962954915096739203638707074823608818441630837665302107322718507089869802054683863814937022209107208248257671554679811717063745847387759601802337442900577936872527393154617328201562645545482924414215965647419980195599061112038091464669858677887814946530138378682678589403730356048041804067715958884079184423551098331063164550342706231792450026478110675230936306818773723104782509331629751657835264444104030060125867245382042801730292817500448631406515976626893588019296847730465274856081809864152872043049339574392883843542424506066353355285533863170987619892850642180405280132709664814556627790840052155272908180899965527545540530538979169433551726894780095848764249917410715423514882628721695475286686723644831814457277045040715232942513193588581198780593456828829885420211410514140783250434135295020916896621552467362745266716604835297805547890725743395339927403312855664268591103823149460034483558160810818180175078606740507137593617984141352171823358071715343565920856911541472644491601955458087912190213903211008930070125910060887582538474198118649999701169388535719092495319277836110946511008965169025549589425819423651441150499351816291341484139053028849267920612461823580196457012759139865755919778717931403477029198202740561258335125182961692900079252761470786299427376024734684706420849626364289938904189351891388429274779410289215442522033760143314228591116673703758583708371233181610484037905740243512502397480519240028015035209997847463212223020144845369602961104454847880872071997601424604126335234412497331408043000982100089392747684684153339879408305615719735832273465370852297547854374623414959524240588203522206063456964537389747074697712152453181257320678582478965492867997772791020755320704985348905844294965410616501372733765093598894910146347902024521772624623592678811149716888431026078288925382390610099586533556185173342383333526730823996066944023675410213587104934282555532067002956422561158944396097907049378960979711512238650658244228847807856361565997339002258442686787159326594981418692083621004908080995709312378281690755827990596408849450912794050344013985259528570917652611276668562260496007406884069160245605689931706114644977309909304565670219026438907893876982859916384516575143066713374539449961729458224060470770219592438491284931279992483745536331987501118556942119183063104167433592604957513182391892605851995429576342112435924629790240009358974990314325645510025243714655178578688390167978229306546761092299969525686191206606137694619664894576068499907719612727737650543057117580717891989253841627749585468821812850479171546423336753457658792893652621788102271164452355684548294053329060301339073437660881160067349052538950388746129721587197667518696747740305480358152985657001162396540141531219079229100988605832352931377958855206697791388421441825446733073234544796580292610653013854222008830841868796119221153584128782420709549225372311978333948444162421147783931083383243209374838744169450473994876151107923336687144235092942756566520568415061475358613002332335183375856738957354861286359745577793847438415809185717458141459248224477376673434829494679913422989188079897019448467531626689019995133580911085718698970999297045605826716469502048234074426639786460920626011519442813350527748603460294198186410390148793021901985037093952695332968805322730810476690530675317082396784758949543234306225793766407745966801209803490334293738964184656309456186956446859725540955825699752585913450538738737681679665569779712688892429901564391161207065619112594003382637839276142142738844530803656642182498926223701457718708063060516772813193653162992120747289729826276633039031418130960442069671203039856372973717031263438752197599770931809576885571684329039573491493001785318092019460157723977442194377073692533127626501845016139699645917343705537470833610722665862312891581769645599353979829628644467530493828792102766973544574184646257473606334472983322565389706639038093674833359157468449571103413198253510037454102977495941169874403052602953914876169848122374144191292076986992731300063065109995418067329687388844234689989195753506621644406527884870553491748074579535186779898813998599151192389215154871372445334127518609672382911751337484086619729193842589070995146220141576400924111079447009453091849075376050085244625969469989857821642479628778607089263242995645142579229501066798502381871890094234241780438720828227665071247699762356275110158432227147497291793463964241587341722361834355881115013393375769562041629344700393474243729236852533809552242807254351897785054798738997173825246464933629070289822450742952516097613233513439194285476621741694249739640226838999283643638659256618257747102540233479905340145267740550100480471194511799482413832272620557636541006437342692475527291426903242368510389786020559171796553282381465715311919193481882946346194964738252260659479712202042921528318074644417377045725257289484884007383872596988491337054305612198626885601067167927657953339810791445411848621019162846503050508246939042679137371587712173719134782029543923223447746559624044369572556386518433398830261488820184694719208084892178613410502837842023518931179335156827505230272187124523754506021980158890215177958892471350399344599570606684315776545317840321185486020190378968098556196446419367628837473764497035928859111895415901092944677644692269397974701889370449162834885200622793275049962141442946575453981704506129205698951174903604068119089560001419180787498858001916082334108917110019636135564030106423947114906365413402633857333944966496789363095592477917092310972536083030614176241952496463676471604759157355679656973893457181336884067682695082681787440277998533422209414043260989780611946532107799819817649761377504110373301489746544160308689487790657352294247960790318815836208012345145533266960870110210531532438227485529050598080301903181473131549925473955945623311443192443854854113178146381490297008906616325974804142048208180361564935244959027465262245296250516579096029406213591738435488818447593820963057982606348207715476918795563749034659522464828974758638525171149876335851173450463011533805967641187462024263328765970808067986179471677057386838557954116718912117470394528380962412921413500277634688651256020702498910578295642504948516658111172276531120951936387609763945264208507226947157710723872141874705418294030656750296750754155246945669209233707006646740512919832327597925062438017619093931112572694385536566714832839652100679898013522010100074576118404373234548226873066104348173843835676495135077082391444889229135950030720553472064002784094172515576513897973852655132078691202838711519745343766197650140336808916196089718424176044401599491021086556485193767116211222684232812297348044016049054221594018415251262514566969189850659289187661676789724378606987356826987789231216461542703471823943786554775824244156940613488077587045684075497939871645425336300961178876199177811633588251678647355616736321055303604237603988490317950044357575045477860494178444027570169281547630116649977868687263252697959434245898806279083126894139042728822029006291394540663249116536242069905751785271389929269603384753569299461426253113956225558975819668291250299162781621712554891630663293199193394202684646742291990796031733372133330727766216260053470770365220456139876680674422132459090503490877992123861705544829583023736116364759546943668807386756675387435943763409995166684139362110597284995198576778109072971603414524858108171275515305175117701135471629289604038501195701617494486448804240792869475319100980012855113182529657454699412158729526619713747347782085748048143029019335876861853969029866023820988941364425323682048965000811870907504134924771771635046759333976027191153838187961458899539124804075604718264382007391738665589585665350242458655848663714453453154841642165123612396195859686847142332496479285747803808401925792931204529195042779942993735282448593784538087804495443490835780427251321541887818170522255180411787169667801068022214738422871414310816742963699461433011156617378022679480868517223219470740432873439609178295637685883155709712376811032158517677951124892152647823443558392642336328972002249713841973896754591778429877536055751324348947816288187874468784405588257498390032149731582772582467143363341468957300802434906161913530763177941191545055334712675855036031747385205999404302245550877003418648105635255659810291563563799975338385252689131034173777100556485486492680828973140730083269821494804288508181209981255150279171527334485146109178673158684385392113596169838413219322964473135386815800591756085490095918097902936189924199831095412973053943229740807757002578040653113940845580331877459504942601637485361305154080633132977983508233645750404068586092049087176615257636671220413213618783099700865090402821167524574916787419596031152531273860855519003856303145231173504966322675273871513136098771647776691474830195733066922566180700727763010285506061713137059455516502750665788885450320248434162772537860020906877999829244752237993214548355405374221445278542469978576888876244955978459016580604470940502112759820793449677045809758962984390418544045795769745649058274882508454450113325599576878131248408074352712913106257582380997447756515149072851228672364836702637854305345166031820769291031239605152923271918014515455683974025055323579702335367087105338354458631890250360857798988575358852511053382492789575663450576367533097295908617388940621687285923787376917460489900618482583702378147752813718376932606710055235298332014941876402412294443917188465452905163636013275785511264407339920530588160814916826102699618948243749682703734438397537264459668081227777879923870171461348833583372555706911773980969381476318106704851919409363984029537458150199560710716616545661872940136856891012006104770888836920396176309048885128451250493196005783958277005258756867914045389938183856915599495029837025326661052471285268373777611225911973958157746082631874621171570822937647074481238067329805173462401759322459299723837433895291378644992128160476736397205805907364863745449988971123062961204753840079696847039983756045739935714344528302172355913866357035816928983649200227203095445349504100966429530167177592224137777697310546967042848902947090401115641736464559013082464588052151728969976819867936072708321486223681668954593293545061678492167603704846951758319856266000750877861404757698860628925869389160894698818172149317808714365219426672896988714220919787599580424746416511881981113766065087257807430508491742010562492197651856612511309198943078739625923958908210110802176628988588338525151614405131432778337066690228020887844556656434489679341558812692631298910708397481966981921125416309201017780417753931747630000236475329484523346590038157262709980952574858905603578511713581040485087560143653813013520072913830701318213283109632276052960843367423700115971089570896257811943848604946035120956321899672945841753406102547212570771400472938471635494342102242718977915321844594548785258835302261568180259148137730452774664469319884843684321655232084345251157924488507441036868071366054082629759860008017964601800932473335350174538325976932185180875852431096434539609189172038638488281687941647566239222379573961742799844807419342859315999987559524523726842899812902628593562174210133056053184915548025288451875782627683082835617956852424009750177766129352261102369276227192444221170231969489575427904732569728946505444450966865936587304771969915097577380808756916842899303877828995268700554891642649992970918399072278762487441050978466638575751699076500241600309038879320904047425452171815877604093395241908565716434161253370980725275358881218607460813068460625466768423090378505243100293545936615141252875850377357072899919178081950900957408973443539410646357770236177118280781054938265145320830147909599738931723665113620665862865686575422375440700575497345201745751376222185310831439588488777538327959195849962587009320758727844403846980989085094276839545221173620593610851000550872614580327025045614130330242118241807768374579517896767009086743011666701428675654690978027692611401870312460515603066241039859655290139298736736054464935622809331614896702872949773966315540396682043935742744182463346696002944944495668137337960712837259438444151497056146068683573192661572058099095892871395794637252101157135701108962502254969563613449467846806737577889340910460720677226194213115317132359304819516028586698959874297759960974461870828765975235885063341045767179601350496569191617948070641451581083978580741365327915634015252190077684953272855375907124204827692884718844526537363757987365873061285200280459986436447450294434571232266566448261968882014833641717202104420705379086375470841177597989663762037825947824205306362275314031610511983027844848451852678155940013330698078501703813692970510768776577932186461104371022945404541235876011087973596829162570737647606930824702117599227349787133542607590264430070815355698431303098287405463083165906543086822492045091730189265270823573873495544039482172474990299507995007867646423331519756007546060527528687667474889986587869518528487963963677489143330057380641677963382811475423499050199434995136316990836712216149710334412700462324908202230902134667856386685941628270207530266289848985999578010454641961147219783855053872331556308734443288243216534696526621498557329043053457523397778632140242636231464839405328275098265656991397884164636377621688594783639515708445784490880166734473405884628264534752037594052255466266511727486983406542328760990327641402352276819151669962164645041510846105007941076463745405990226349937488374765464753036629431905554421238100934265530122051804868075735580964807778137492628436738108265757138319039552894668287248642132380150326337620716255310129981868396314542132792024458064556771104428847910797073795492582146245111987528251630816311066985226633844342901280674411590721275043325173757834006102648788005861105709803117849990796339339860731458992174041627390667456592024612305060088796617771416203956670631630267879063671716624422873206102812792807267501291802327128148171009316706965427102567657967276797389498204757943797832680814939280589103641962495179896256230184345560695526704189765607299122961849246415132835134924991772704343014249022278164576184904250170395032202761080276638127245361939436357230635284913754800079615119607714948775955605950641490179442133702713206727950015298742586486232902132561547712388125592904405110451349702150846864018896552934320758526632670027771742206080062711486067313147601354225379409489170646467117406172775798431167184234518933711615082706417886474615286525827141396050748075963149886244092301394854606789946710179250832245306895538505601824082279318356415807297653076426040348340240363205878443639561572687902770815575251826363382760878113573051598903990834304276724105419961410590529622250910909480595627180449357542052274238544717630584633173284927473124278551550039913165103273946139932982651316668853310948436673284467869474796666087291976956962520418472590348907040192381731357514493548858407661201218443427808020256148981748567811504913995627474738715078025248150260043354989452047741197130334086433754976478040430534236987543668752773916832911803171355121159336811840624630637207741745134497036738584059264143334007691803556930801043410956301075556468397784896687813719915397353008547072874955293954975148806828233851269143318159519440349781348199648095436237066363994475574780370196060627108474703602875426749976299110673092656375022464792684888279745005426726097626729171182838597828773517541119028462014300777499615009113321400297075725002620054151213999336516191277143944212721156828598857354886195354395789591821994201928820721833804305990811061153313995035575220783435856469716513236142975080938631910849989661477143577333815715635668320481090247941901582534945641985769393545057127236128382171495065472611807468734786159106768153923726095730839695969644730372861146553077603203364872297371127236891225672625421648347681511764645376671589863562839240791293523693090404374184024040462445048783244070704241076513388674011596534446651542089320485114058994191105254684722746525966152266502758444413111360323156822307170904791894131115693687512844039251122337709552654167157740301635690909267193775070910309580801249894519021531147708895102778693043743099659918678723582746267647911297505437864808583843543488902968111911931609798743460690727698052523947307892302378595266599125753035869746370057162033624047716631459161667849995487486215988865485986456325880652138518434183592704208497511060106069806012040470461049421806342142906441079837624386453032862699186738112024495916992124559891288559770218460062193710298198925385424973069552393339040876605795315709857855469297252274867857530194315683993988708544114027544124691735118136898980919711300268307305309689327696571821085819729458997511317552662738112642575867665287483959957008376879917549712264313419321851810744425537338452830091908555922295990418904716200294380551919020786568691288729173156242623465714493998902963531084393621720905272849286235210464624296370644925988634194498575078981552426521176186011529295903814166105555141510100892584667090170086332644019351852396892668999089170038251285551053774353359369159949605983315022612274464583470698152396954949098276686261916848543964828391249021357310595705602238986568649675769177053967329328879987524085240068863456764377595285477616748456206851154987950213900243983578974605021303802173999862274807022719553228295108441298278281377425030712560604581187313554410373489533412993844658688445403832405643793171527897412963386062825300384624080956401845907661635846679005539792533184885251153217892789332285405531885411251842723398990576345664344063784983932571814603696779361899566973159274477354827178020424029557686727341674091328212800431470213393185379407008188869574402566018600520407066499710253994115099031618323472356657157366278757359872813801461479186656959366940123163792625841321937244975082144253714542308314476663133638847581288993097797654807058994530240526415545872480132425536771402496699286477852496113157969872601260985276146339276907595503842497234539247253681708382556243754157362520666292412459142981612697975317902829934178754559427708467109574472340612881739843061298381711593942897107972342735635525482447708821428608438670152575880300227529894330743657070093381008977609927082035982758318182824499756756004805399622820492731189557681169586120244806776549488852409501038938325465134831703909439979511501291642148778244397639263093594327893783935417974406268731775031662497281676556935010659602652801228648613863637463815771076241093937486624990583843280598509061689591169428351512325587412774847275805217145887814353124248651997738586448171907624247709354904852729205999105537872355938464742287614244492712123458712956977309747916591552790606775201231651110729895682746300983360644647666973905381749954037403681774388576020446137281855055624018975053610599656284223705707014333646734598242002757674716977825893406313056940518368999362766634874295362136743985064688850150197064628996081089959241996221987619501657885625972280406895412974262927282272857219376477643347895344524483881981363908941777334267691095870469567951269021173765409520907915984162512246530775154836115925397724957490871816398557318097452736430679274728030206965206404236045359196065999115731881462402142768946041084502753434308991782146664735257691317259353148710193356904804139873103344679605111417477554752950248608136451687976005416505464418747480770813776906447176254825281686787394833837759205684342903891566574041294912203713317630553717632906936584826307362296432079096231157492085110904111420922105936227552883250618386243870639009827151336678293188556002642466690710921361278873995153275785726226221081690832348952784956684432021456014510362273169229265031085717771526031756801618560195034951539203845148511591208122795958207625393361434752926169236578238129131005458097681495243641363550793243112340485712032360407146630006939655364087411009935565791316705333841872115181343840033708893953970270030274071469484956974192326246846067947294066993800445650972208521453525213734400306956187762856030870233513634862869062112953494232006927987064290236873505053921081217129684562022046224893262570572337214436841113198334006674631391291759669183607956003331596771878565838604662718423078948993184221439556325864743239858227261995036238459663004910904022410137519755487727181801626097181723527918219558408005555047313232810697904992424589797443257835057834625797875077748097472390077342167535589349028869439609688655664172571448167678104016242678529450543646300417662662700089989819866698561024931540824649486116529272604030203887555794151242752180001047796217150494261244093366861792700046175136129064869605750073812481381925188081014722229435670014253604957134012009427937919312861947375360802909059678825483200392434295024420754477125647604055852425878501657149194264564357616637766176032192253300939452100020344521767366975460648231186837088730580313434274077817768007458067704473051380304340612151095727096440174443195185201098837856570136537820393240666090073133528293379529160565024408257102043384166732334268928516405979603560959615486650943858765833212183848970507205005448678490447939344424341316580758298778158800906505425013252516254872090000450490868605618870787095832028012367076310946245896699096118341280139455342436434999264743724864703473356318100842044892037883609782824094370527497184185122906997353598507092012521159250802677394235441954716708657602436654539873723018365683003066877572824853695367960848988760048063350840550505030415478089412317923968967159505844443544773360003379532823633665446305157880544345274190451030047145055843979134454794242175390403566940746429230426218994998152730953559433227374373614001998527335473589988594231542046659343385101018821084244413321876098202635175111358156292907095411971826709871835002882524398018566003226623619205754747693235110656439509778740760133794107189516352537108837758629150972525703146147930813608821892786462427243103180189786013544218912187206175381332705907356281944526165959360361186683270954129924809455949837064695829780424554678166188513521477395756720734522733236574290186869225720286037097941965800113512325095055628730546366922229467327306230572744093664637297615363380780802522528088175890465009702172643504164189465536394078755733418054511354996840755349147926542164041313534611969058583465762281636504807534955765187629741492814014656929110837326417809307076773294668783583157252171749217626261242640504166382259187352089635648467810232418744161482360085246553476955423294856759206887984777002191880672183153866215736619425111598401092039785393068904459220959605935731499519511644192438097848708363585986797765117712357261779951263894719594986587487441848091552771759567374701429973188192569228180361883027987415389677585531816378349088043163522326013896504789929443982248137264973863122118844234711847870098787684673622439080342975743136702447198665407222945830306581459847086226874663718638050851881669012270817357918340712914496640378959644093026023959555846268136639609734536577738989877405311414919049232603059624458657873393237321440291714140676495443934751522409839856076284962859342994254960849171165014418784161974967800581637410609803047634956449125690608316292853102296967536601009020218551580020275881099587063882493372684906799499056966986956974666350715104710682580087004539631137996003960210483426815431903039203697831244763070769173547716412419074916324242377192546459509970855429310008271032774082645402152965430606569904629396974302495742144086488438922689304850348552011968554627983581275081667057862563775854759909421092321591217961850697986788745947654760059479500111827307846476839047966220264342891958965167704360881105530281735273438628180132070519095948930950841852223709293123772597491330808974901545361412196500484239332793672423721094424572885393989253736395880238346007050966168350704729187806062776703152939173480722259007645334218701865271404322666707649834226031135320915945454304174756675476977597240656522985928769201738369599504334743593680609684836300627422384292544669641251745559181941809041372938633774016611527594912364441569408610088869410245750669454055645849794861959658490055482533736455710612600860621811226858947418009694095310446973703576612808610993436621578964851496703758051794713500942932054048876380725907755656502347287073973870947845726926709792520781111285587784282365197785223504646239539092817007578679262571952120084694578200223672599876358992752351284080035315541828186256396078619923558222402022682408182035096971114206001036666754500891581057157205328478096661446533359125190399786421211553245636983907383448423095675884728324191414171002271065534713713775171629102351378284635693691343579894465963234013084449294665076741998762173635350959900503053989503247950980087348109585733555758272087070071843444021682576878200690788688955708024046395954892456705861736388172399356917478947003278335116141215180467087785157284863125365207116836356154113959421780739699176371387435019016968691582462366403343321605685280955774954933767286814312507170733306413733223584435488268313459495996559412160025079893810143501686895354343313137768248576153373301000981016626035886999150275244689650897764659255714523836481416791949100426987923792510578411769375695418908790923171697213494269947078897862380832727238728099261226790258589554290630844824471481769026797739481549643213052908048680986660770346008459217191928393927873377973855989823179601877445808444436874178476729201222555237970799455440170523775743766204999614950141722636853117443131413055001615603609090970600702297162601672842374124315274926507868420725228959808578184492444457872575410046104724791026338844550148801146944038123536830262299271850286898174374755490748593813274021418693513146727026801652935970273568673320481981703346880714494162718111969328272641153150941337211623071032306304336966758154478003206192130158761479788606935877029593086488176308654247625090437190216719228319184183533565938558877029762272534451911906958855042110883190112983519188714771063097692992782407708507294125057852452579801724693052919668544439477641632269824100460455453641204231484498486329087497609838895453423188195536210545119526337865924076506168412301600809649209188099106746654451128313970073000365765639349496204699764760123111332362467185937277247780667265682759677861056310267446829822763692063497324590111875659616854227803004408845615317627592659187885795118345943314637664864535576254004568021377598268342996258692081586618414703645258438208601583141259442112585697607120934301103530257525760485519202597103004208194443172831295898465843797066756493838463831693353926869821951497592947882487098525272755054474070831896687343680595588067098538449032363984627887040598632338400128173477900718190351265866118468985422883213787342477977329307747686423720133596771979152940841857797707140993148196385924812823623132570061747155344030802080489037105026623536148678798320334552512292024047950703198012352916908317733660598739011452586260265334502271355644501463771361120881906652044420040535059861862834881070765081687335426840076627899471913600268430589016639107340292477571839005480152365801264027587927784191073643978280517462984003005041987922752144329340270008579535702447619146794197709846190906421718451412589701529346260497023287295873148426920063108545081038616848502369028775420469496049734856392465628714361217356357697632157938481200538412423241597533726142850775376886980290163949138609486223564405206757319819930907641895255716970690373731420633327333831355690653455134379766993340008717226832171546669035506593395334362243062921045587246588259065683633831988057631065740015936146803438015785357702812549125655998340379293093695103228566832175003216532895926835598824722679204475242116559674298635222322719531773229052954381833080802429370439819559271109237528771878101921629494894861276441960339301945632752716663667313452831744150731940067020059568492881941185080772343237316314560955255409435385661827353927406367967103838660867540971821363067541275127445435683614733262131562335177748843815103619284685237591826531298749525288197775288700011491730758968889744321589067432700891488339169176383614531807188981767081435442941562993888514690061415786666054702798439471680162512748744301396405977142596218526360825081017192286035798689018041977829667659895136367379505991786235178439442542310215764965220191901183789901541789148029075905471007977634687277361430412170812204266910303019319730653611528691291587857486425597609931863241636267852175149850726091948758858265447524956023029414534826382955168910848097480057354640931596546223396080334248252522507565031784237425348116220732995064502671118061340781258114010976061808796027875849665170154279712283293369815556410271183932514983282952533379401216891577913787758266986855296460936417135585589572711440611669910232348601016325697684299121170091747647020603859660387458538838389990853472888177403010820543663765246275922997144929569671273800709578515016115593165329168797409595145653829364036426729014516927584514458889942302576114061392122570369135998981677811075484763793766881717977200579731374591983007658082379404627695593513157105229906051938798109346757332968963604665085832637886790244135948591712449834020696576881987761938521073303242451404162768033276711977770396165912032045283380488692552456500007691744413325315283422947721601691247667019866379077949031177223663141000712533332399011209790734545161087044642235378499634941144356121173601395941153277111463202787186667740376927477398605305158960999893592514735738462574200454211469660669053353933215332744805528595220808282567455874373382447394208552812562367221159755432836005173960837938947246216636300205195906310949377782255886870950512814774936166385201560818032656662014869221931453027643348099237518953338313884690874259403028842374639317156235140783993875299802210222002201156997980425006635752982152736388478747706454130946677785403372794747977341987916269662991687378453749702709979499339523328629458827320396648385238013686016724930925427634442891726023800302704637977867010240401724966738624970651275965797579131934932143671666899720172330087662225524534821024296363550268335715120485401026586396984115556730962979121706715249266005730540440032795384478655123465268517974273976263476358394527694564977253277181580346049161278943632490691907858503184496066794243927212619880356256897037669084876329765753176105952282517423065275939564510291791475269591112949708985103713013418287275277072079879771472327464906700110546395592929425561744029894410082203431314711878659171530123397279705175929016032349853069292188128386953207117177457908466323820282705017529355876634803044547174777408610455407453014316887349929731323945157914124116835635487633788877844800551260435356019854085132393016065879164301994187976995034786881019386544458129232127211008373655768125802090233031494254288104266665529481837197485568897365627757189208283823895624121774598569295158707284830625983720880585000999851130851624921656285438308556661726172863373479678262525954274949078987248590321606229043668797203831574598063050362233957757221546230631342162561569024419374189934088413552024856478527615741545101516322583050480755951657114919806063719042793544951929927219601282010263169214614330236052010043654079728568846300456614314938536415847187473602103502069042219555418074505059377638187468945677741918263110177062026598315950555502326305012529830690310456234154257804868303544817745622987104505539811460345796516140873041962598504269835936117847648388553242543233210117498332743922963969931396938093258969486491722227377999385234313942189670481695379459850974917830097857927130474045234959997225771808033578613852000053577190545731934027918759731963683744289516639708573176821065780549559520172132817503264622956340848577248311293219497377061173332237434955126149382755573035215480596270510775492267927568721058247963984809596685624928598829271719134204765507707564358530291363796018018407989124427722678779601178891515444751283189904132280834013914086799820859654314635168749891846237767928933472091427406195794693506813025768225838738819389879688479538489969110582076458406175083519160098060577035554203092322546940018198513519007814715490586398804541196560154534351720796169635347445610498518061724785775396286432282234014881855967022146333887731009265341370349709786894104955533534894742222152655889796747227004621910684364777405692312388175133315646602484169486388628815884925270195715630488148852149112282293547042994374247631049841764566387681253139986768087628686524924130410837699867898983320787262957107898908973529849519495211379385181667063518033497797158923777775384607805819453635342513858019119994968044913150515834497145044183474979621111717131139426770823534321885285172657402080530408655189105731039544364589088137473276962873155459554084185351566163617114987061902153768165110887164851666795756444107369051434372777646471520104568775503702549122858882898082629159703758899801348140090099881923740302230931946785415450035045213697632052407727200932396493332787676553448402687995174089926066227482513141964985659936485119292839193034001715629667118119020369189874154939317889134259772152096396788387144131196523519096720354697829151723348740779625484847467325313442422562723179208233480372843901201578499933763155029543458240378666773459988260609389163263624458524413476173785579457960554496531615661425256814294147537691177412646014758602779093211719281011267660778277125647936538107565654650506116835300439012058394864575700287511265083994091242434339440963900197928570424405117320802613143162527714056881526302276678393141789554351055262007378920278600227522266586491276765479938768235629150321778158613374252101887236928181041282903917194413551169320320815630739425239730393842976208059295505011060461801429660776239677621179591073938702989681569123784527614484249196690172407903988872233516405249112392431559052287658229052994551997798053627499227664882922579049032399006571830353953657257101455591392017957419997008042993002178091292000703779933489897644922881290576238718519016189638444480906966797244538703646956458906287608962296435558459225728989096366170328671759317974995050662937208113955607957288720538747624976088301784464843054579035423125276309416214094564579509916210471130801051041027328507326115423100586664654697410869209345940851346983062445192496466419364419855134202629088054028539522221272772488533850114984236070146354881586940180857670736005195255585690764387711700420638037518887921808882715594735778496928617956194061152831580850914969293772019035130629875566721226581426414492590927549168799457371567016917864332632484974003600395542993735632834941091448022573143003564483748021203002353098337261518900474575835271729294285007073485353686512990373144053195460717109296828406501796650995056936966901615677609916660980778618052913017416914186161328240255837350447692457251844960850923819440741257325702692903156601677622894934990833885630939573573569549545830257286222604313079900426078529287309529587688943473197662941373768462255211786695317414386643827577453527334390350366559764138692730005119580610252141260858810027470482513895683058416902617811906200792418662931871167431910553329860628364007423083204804478479717141542021716261962353746911936301468497659207367036585389543218172988054586215510158906864318062321262449667008751894457140158226160373996840835660840294162682966462015335971391574699623389622343526364957064410912108739698019400945347094258881251386069899345428939755250758936557514521965719233029590935527168423598929190751842898391804876528924000938219235210279693757856361046525712024834074142286009445930387957241353509318124347648692728539745819111419428384790013239886968198813416740013467983216867689886107049947977655232551237213442450144442334989781095544820462431450055947125247920014449961936559664200194512815317991489618073688459937567989885889117402088548506760035721356046538453902786789633564418060809747034035411086195767796222716882162328423204189141517807679075445213170833816646715407921909204841648287474809333285371962489170230220894840020853083771146971159693230825887739755708970267046659294456762174760369986474550766130276571410402021886187834113226800855800794343713566354748205344317390280027177523608684148548594422210906350013921477704258748127354392103825106731100922057037567386392026899994440745310136229970361788083283321056368329270707991701980582948411011623949694704576779487981190332122808686808543740670726376781840009504117307257009034683954117444881317352642857463760533969534621379967261065659635614055955447481345701342249316525742589102101625118440939812707936518960300381261523880291952110455654681839957450193519761056869583054910395633836316752829538333477670725655870212781229398421710405655274827286994785887265256335557111965226213642529700855781868514163457585767926649329459491698274284149411180735685771197327430470174111524135304227837458057429536059522908200374555459012131266673264716187737989168817032263478471577566175568828661781049462209087695762515881412665708851928850416136940780409102508854139489897889697358686081034797934304272075182152066404294922865035420050784673449728124639193731525807362601597598435921360687568239585633959228961667867007959528787443897485709736425056238369718367055704006117906525957279791068258342246851113440993524749465793625688175388371014990455435525256834877183603623546714766699764537340252555685249661784317009302729147796433746089800657990341315557463753006086384564760802554603008846533243133218807305235578976028297792717464499679214701144911163400306272604391481085815553246995770315183748322973692111654196354595326512756890458097613224439402980409154532461499926962118078726345564334185239859592543674060745199977633899117968257184370409991243753837544544288158464768545480761151436485178473595895671111710926065136654417636714727809569561702495093898043385514883884286173657496991373110859909625542784079419024561841719807076279669267513768901745690987425091582597920492817615910171769317925440235458707057628617559638869480024051400760869964096728837041385942744872760128599280615821084551460449106771133521245957124268490018570571137891467950424633327275377201963711321666407804195513631232186749399866573704126909306120032764164572832445692149852005849233691944034290669013609707447670225412698170662225678782657708957048153341562735748746891036372035463457500003227607331424106643323412993297419275154400462454787484391352776773354312232786743224837028822728685828603560608898290682010423374299099906525989994459820419616196263667990098213844176211003146079872795037845770042721722469826839755476531659215566539765669914025681835669897592122386637963084185171084134679697116787034515559698755691296488884652706909934583419069606928221109771182693763382381326694420162992665920722863747366978114629355724765774346820893190897859180853745887127659523018612867933334340335417220403924653606534958205352666311417895649907798051774751623366911880729365155464680443833998695839703462660210014121967181152683575065427781444955954571198548775594973845786569176345380598313558038240011130806577339871519742131740909129868956534321303073232573504220315032322682901070346103851143125632914744953794291427636142006286933792709097230337958575667130037112134150256355839149475863030975132240697863044847808705490411817348004958417884036263025864691039326623250240102446347518922012432714879949795077291192819535457362513196801311474832185062858090017369752785185529395795128113429192453388887497929515390805523656520742328707533986265512219780441744315206196066554851241116068240654560488234249574191123851746691291359283870518100606141934792163351331332410321886940444257596563469430951531226503881902460414878007826961007554499696733252307220045998436251496891040558143977935926130664777791969916612289521877157425999010567488049123492202911864234399981279017825897588148743167835702585199134562618189089264444018244510417500093981620447992142044335015931373098396085635151136621092753160966015898817026296121689002264085065678268951911159180133001785404992358290973553324335780994604916485562874078330813948895157154052610233016451031354879720005547163360178292119868764529776277369232027645227449654331445263437385614539469294431084713613803539624104630078935418003242522696786462402117472596391719418175919501769320850245783525951407419197114993977409159312247255503090760829541309614441867029264198691413878811459845009679885580138799090764451315275409166587610835376060779651821080369911626161620722318305148840639380493404980374275040087152663998146481361395244723163171301772423478977813508635478898441339633528117926975603364829922960672992448760793932210654783562140258309892901463102174594700811191266771437126565745633919979125833205490704626622740240358988044557606269986783919707755946627437763261928165397055959442446365773085039145196819991657960032343926768792015832417446819657730008088161461324329749835775644222339566654342944770465488183328102270391701195667077213893811187984858298087979291086268783197736775293671171060639609834746664982429949323893750108923255124759670428280263282035596157570744548392257370979393805996482945279052790306419704020044313161407223589323066785135771449319806869238908453221924983906884296037465781055400202216422865498676868507370099135405895719932214471136004595147239710040533996850425419923729599919431254687051794916184123141927899723885831114911329335698812979102824137480495861652598747791292179805787941463562576888826273012999378142554918140710921058310595440451753722801187651376540244138774174835242907285511079535363157236474285192093456400524760356085536361957844712957370193371513209738516133462130365335670421202678880969812394350494388947211480702684934045235607642868599549371891357384006844554225126784908695677664330155984981623883852448542038456869968360997546107720583415879104783377232370989426760938128994175235794846212774816417670302697388929883530192860031180429042353510337642020191942932970314975611162204351545047514899230925787874276449730299196559991204522978172951805149770888332430433605632583219810274624351372833093351749970319309478718210820281212726370784554767055529904656684391595275067475166081321011097247432875697423501878617354020097232395063204014975621193989773679233470408321451689177728703451979961885554500912644182674216789905416259126315471518345887439817606796391568541984700460691843479697882342121853435507611741779949636541313367723801032042606692095528031839765770048361243874454098695004597981714040520745201702213069430003447452638800666604006608908166023020877825084840074029652428300803732625348265364903280155654813099938444661070718412789154708037555059716060272034866420846486809456534250428534205248831113754948611857296257837720623786062231314122262614767811593726342513708021971480021887596948543603385912593282426084845308359155914218131371305551392591293313165411098389445300745633173686392947118389444855090604954487393207088536028111247152087065562134376109183296050520674206435812225978164450106772059670085461388690383102465771591597777257484741865123978415922021808160843001319026772541078003718859689590666016084864572604641763973680986101754759766178323679953805211527056929690457940211890209261174698570338611533816788434325600015355022374533452909188777968323578257281250817863351587321350189360711099051974883092543501491330080783001455901733762792995787760150689483713107507460371892989149077065610729685250954406374707476677470769671465436396166717051085203319271990847094388955561939744371998613346484385271659288714351191173255006756047951011611377513935769836489654900174415967864494783261951330445562824801261062102881749418458485723887859102606772731167423870528442476534352206699614517214317927158555370751101134312091671350046850738844974905258443604763224092107212606610141631004435441406028690685521030814351004628091172614090123486080008550344036033849576578820376998420779206888618533515392007781118291572507224467129306734398229429147039757383449142917070670857559679854483408722709623508336255457288544622060227071416995119163646578125592046516270069933464468069116630821419008199359917082451810110471126332730459905552852382377889543089439179729921605415668571504523272555620709148626730731020501621459621672299587081775376478955739409100279328358274978689689730137468912179119741539079227504254696517077116423113179349622295461596672203088550152223944511849492378620435913006650124235143467692844542586337992389060408064025981209465683375236120894709709172356136968035751137255621479374524794377185755407711875601335996876847190049848193943159425139710680542871375257677983238556209126664844527969516495516266877236815459141084228155846095000580842753102175403595117676919585248243059858706197796262482804748366685676472292608390664270890967110833834218568438554816796750890301065961149509951162157904202952897936735522341154527896041455690113578514515948924837373052015116835356627492294546190614677043626709135807252318873977378282480059539884411164350018621109397386292938809161717389764125546052039007438507448939106616763909537584098660047674864380965483167419597031784171358031034686237978421009978145385296577251808479634103883459392785431858245135754913516203769009591212094178152122855733475277139800156601550665621577403109827151587167320944502744361796257032353206978318203599040649313891222138925763921142520684029769202796418504450334901305516768754806081857124871986129795331556505907597698492542035867923300048171829564474887727294425475936289939730258653989406963184418513846611401706092389278697853020759878226205782022733478772963479708119686910254049094227066365354466537056234203861894081525284361948958096729397847324758890238319288794088721756828355105189487566840257564705999787707780153696207978848664431970841603899389793188089972701331454784624986824416795293953616832588262089257645637647218057647252038337055194356721427717173820653679985763083712982045572382512206770308685969408164428403728860132747822050634529230879300083171079157087840023764302710852118550706258993290765148286226437416574744971424325840275386101334144107735427312137830321505300685261883325865945929815229025561622444670077245134122038284910625048079601178740750891300865458442512708535400697240046513225891906379821671513258586822829774442323781643204104865292862928766079183066425912421986564672616667375488343244650739877128333334988204772775114662871532790770967445151119312195783564976649441092652033506769626479436519771253887186999634959417539048831549064138941990321749673137562126362194306866138832270083438225639167020600777743905095511449783332358653581517257067274589898096278005504376522245642409082072851289715578520205064266046453870998141170713764767992442148483899517718718472363844111361162548401970616393964188035258161471623803156393131769165526484557377972507843659640694215130646510044704213925134403443394736740573066578100069995030684788369491271624114517403671406024355178632931358043919308452304383222506132017655097780637043973011259369026734438553325214036219198559205909397664704156764730436223235963932788554041512486741921450116570824717292951589611521563512078125257329480463151966120426539380603242695587896934144590756161963384352497308993117311753520154438770083539937823064442727750119625149277042878460491636799990327643862827385712877766313560690065587418044695926693307945378779680846258442124909668897136660357199170809069319402532626615010789558758869384753032279253309988516323491805976610114221340390765625519051902709781794302177080056107832829982624558951498752313501810359609793477230793447322712352553001255441457931238166443922801837472746190936580855814265469540603348785846265606300873286786802578315697324889937841091905691376633357169600543956883917978244140141366768582568900706899529015644908872666602759783582112932158275626234575748654031140086999679841844140533919448100790818679805803314804548452557979631542604896776600111159164365606668145450684423912273519008267496710006273581092681869448112657699708956090836368869216139820768128103684272589072822663734741281008767050010102955123461552306812159581972487576469950462793913133771648535406452022060282205875789253070715364752106637958720986834925002424484188392736026406381717340152836781939348837707703075124493547956613101757245003117729256658058483175712084708455339528899325988841672580766649764157461000085527597355480350897564551171977253623691140645456819956344547091039230601425859965666102497504252685940042577972695127638770604362634772468878139207768513388585802346729898195515815643588085393223062449442849219182425301216790650701529022695834577145583441311282218109116379909050221362082504235304027253542341080928528620740968718008647281271709583065796512210218363363168989551367854107507558537144436377583910285047185574408156139525354375395153069956107234788501095025198983085450875354625953204226362888583603104532963603755105256128172657424543239442612726769913901238589080621836261974058440050838252596448677410022163819913972679075060076954602115351732256598685577160640274518669335873238913836294325417056929468793498428211206937065505449892147183602498399192746828724107289836620263283391206023884794970550133471035202892642194892229586272949648942990389735151323777178172017164502260385802675895936441888985135011534387594606928190242254549874980081693700842903984111801034291522763300872442958159610185238999799120874808620096552778772946821131232706358849545195658060448401520155757425987923538013018909459396309811739749483458769059698895795578815605801618324637301467439879580025706483955258622266826005452541962064164487393416971865634227502744145591598561895274095894994294660601904165229224221199501375136433613741091407449365489479369010979262651736314585939952873378963004087308930308192383692926289317103446513489530566072492322620730033770465949673545268675322854851367200168642225422283029618951091341095428584824820520139166214353003522024259501451991429734346739209626168703037321517346704457488336980689374511322248469841554215062632588653239231038114758366705142596456767757381720075955261027798901621132197448792248725004700595018655196418694945171392643667109991000285470497244621147324552688766890650891276097642506064213020634379969317746983339291552893772442764418114447684481027062483364289723660662793686575313069010409817238311567279117056228893939699618943690369855787623831541866457061411234792916159780739707015622185796440812561930407992227426432320239651585056743020583134662053055156992592369372914663575786036450559943974131758471990474363308496029211365277340187430575424615757083441142714840186005188759471766079002304633204264863564482057805443101914969448395898164065317721244328696180087283191017583634960163251133844875395274193581204924498703841779349507884124971345181586851346978957169373752833796806726339487137341514921745003388612269175274082848019282690286134184137736579759088793973420408051126683373363645714111038832848148649333627718616656903620375062932893046316807003077199542687555983491677002415361287995348126660608872765339182065879280332119483307845081601438800417156729387188163437479760684591723137373111772088735495517470759650633521452300884856659216826309685017459436301260892963126696958441749969367362084051275969261377109641161612397085769991721576233640478665666387722598212708085261739330142988570553430096744090090961376149659995290551553578508665819828579282618589362709752632284950804494228572902846742419149507774380656421080744762098565289919104013885529615191578430154059622550471298941458574138392458016610952063693256081575678816254563992221392495699717744987634318637006294932474621824149618082480731656653230667719309557158816087020837571193143776915886193427429064673459561014667020698071464608770648991914604706378409850635859407492629781317913732733864331034352649516635404507450445307511856168819385902304917588205208174453828297423545523233321260431951028356238564460212568015294897023705735065163589063082604265446745939716560046313529141353289796913666287453843410382375271137249823358208184486255075449998717225971781312032874488771757029852859752647429559549869528190469952068828043590810538671069705936210334566691698964645904261340680862324334690692446239370394460486562765826528135378714121234664493860591600179024788582576116208122077998088289903171744636336005123076887016331194533165355912706309198223360119217224666515931623465887201836333817919917342196064606487994879442004954618497888028406742476617767551778360186860830564620642427059269247621289967294108941079831393052111701779903060605044932029899045175404417826656320934325820393103630919767133663666966919509636930489377127808701538622842449628498900860983019345613510093930248889235820870821126603280239461262646353475127342093111135242115301000591983323595517139351644329258367643378003195430509355166844400384538818524404714705421812144757966519080731030128689927951181001662884027853890248440559137280345585303162618318727038297230793068545481426182293043332387088866233463742552160718186409514609274318584869899611934059334607795896388060106638667806540284199369489427732032303720935801790843986111900104378616842009464412954655986687995466639773258712219726679225451310165276128672881754374060020542743092977619802606039390351279113241762859365941550377583382483803657311415229349035785520862095354836060596148409020940352789714116496738762931481900195967331411077650827451535655343111796363017585392350953330020445476375101906632077519320754213809161981650901767331694438098589723918644841313398173184401010744589566775259271712780139477025895176680074954014877789720060059767699695277200583091038742577822923608573756801141791667666756289482796940976797154137427117608552533516876010180623819698258854376273306239533949000258921345645837154094544803171447979214725518676619621707344581454916005743523843754311522294856805959620297516648691482116024772579011364702051976380083857270176507934072939306552140953297626665691405261633148860555590277779318870014359966966320056207059535086396545057243362364077889045339807584660098626445260966305157728145309632012826022188598247183239883380747264214649027091276928738885781984644754765061459603177265887503728144347783068227148207420775863981549004468160501407750701713848668577920195844214140163877009611838730768220851060254918346371109292952640554813724023262751809000732913845397616752305428959956904088187710298206427757532675485105529705829519029188717448574800085069887654028374201944159901644745868738006322282050483106607370181658366229630403809879086029341525164939272208537523703032202232261046532115533015406932308774967531480673711259323097788843552121942062596456203393649836532686986634403568099439922953639590156000107127384655475318767674787363584647119454305274048224661177261332602209344480718899822422019541640203200514756935053305099816599526699318816728737973036364115696229215835805170309202461679116539015566818364737547482494659594044069714948272871077776454400541604560076221951947420909431278209620748372362673217030610186615476381465585420842368511609227082499891142682185551869153779127066579500136372840825516385166930671355374798883125086528239103933559746530438743265560446364962395001897253691103451754555609937775172367347817160975270581708345958830835503413169247055992847863601984225789107457627949032787405959881867871535036458332976531979596227655951247567640308255719775122138131784275092266813210800539741438927932765977073136276535526747556381718982306721549438741020658407871946111966709086657616019816998477274919197277295314160691140333962814086563881071524785746835426732612332029638566773608397705358427117517728560545062677135605645496053005299460668784244813415292203983502392158840251598877402355627730750416852631113403220590884231126802559176866908134489508604408277527402106473670847989156495250402564478692725410323610913793683608335598953918374835693607666585766683894522559051864593537612350186691509693935492025894629990452155997437286277899187023844298327457281943431292755991885704662266697749094108278562584297989465521850635823541215870625693817504363991320695392195094298723731098828404587801511650745516883341146084294079181266628422987514277053137441865030074640994042608295555310746626253204510681472170070704080215519788006528768705842479422436820636158423433365786197999258040751233002921075351362286564766352872674661366412674360282871721820829329096584008792531307744047622535617401066510012613769529933547584821455501804479132854350931629149213595374740752466699705308477018957669572480980450442498396975331566120625469440497171054285442598340616213703686732211814028596391143212569856633996854989317321439837998968596569967251770329969670139921978683475884384342972294695792595768703732300937397125837839475574766122441898487861338022013471381475674045677181315321638337167067455727806469260927893888040634780212417721999133595952577151906596172609105880602187405788853218233026152688066831542191713101237309679640008117296857191907691306941635282889799348668123805057522323402611452583030583438719106091363108119087511820063559784532959898391010738155444988915616607801842264330109405387095401683877101921103893593719499347010835993347801371015542853634738122514457673016796258487873448786111899700341030254533551683086500393629911050762457393632891431032090559031986291300654774561119765181906983026497013241813561506293989078127812379207290563228623134557543169846206927763980066861213773021321054501752882467671574597332725159354290078705865550865082344156366088030704333321688875449755709837789101058597427811586358909685185279462182702802941831565980557663345833298560949137526862430164421469617527169029220409047190988896314922843973303965384086317227881487496818912195677743438434467038626313369303388516558862731956239515026052212930537194598683112326919695514530654167400752435381288841918953157854033465480901268385027015559965908413377993222522890656254768523047772169794502602278389625447308729984729405334426634651798829771650341270519712851154436874774992761187111102193693256419220963963198975263718820849378905673231679514012602147363048348688216816745203839373829610043335208782823898270161852031711480122512732122055982677065351321398334349262193703985078808721293884259806283342065567555662760072605879573631533494095272652952653193566885502306386450974054323342564099622331394517463893307800094519171775876998715467821621088682838870266833994788726700843545590995758583606832359883849443185895010536679299438436558525397405095115709911925684877942507731778114831954830694383137411213873180328878911171199991061150391554884659531969097260317656468199334221790411148217233584857582984730285292416563053170568321114914392679079775740639911130952345742727672035024007289317469697461385425495447260666458343293987388908832122602409365692636967393000066643877083497769517410532552945556796879520106926585724707139909062212191012830725204125534218411646675993154499325679964544489028555963779663797279105165140830209675237519703245898584568697851662628167384789703054330849182670063018569213169028248688877503833218234558040320405037783923441168141176615588768770579880620294954718603017305922444124791377794170952407228127540923781270826750743697085915171879500321295819947237520386626651844855822370512391921361396561558108496202095318214177193355444134688889978123884758555765031806284294214139395117793993183588285775695185109803591564520923831524282361998879281728982353348759692379476268607676818737512766142124152732604494931131618013605906687629194549761925589509432258410657638986787979698351862341437899027713736159516460932074885701465217030293831128154026868300809807979145008251981599856684437461855965405793012254981846250722356291134458846805896841934985636567005077499174686159745946056401539049590340003640092795917365143001164597779728827457313424695123433657997233947742833029416979844394279939071647653868566211203914680023233161654467712682643534711234812688483074051738524763480480332570066198126733530751986814803014531344069515146287923031617742485608234995152762650917517349404843654394266852860680270128271775404692438066850557897047505267337771539799323565212745228499081109568408235055291367891220815639387330322483889360716857285433252441103783295757417558758374512527404783415698397852403747304126575519224846328912559303631963279941348766206362019768391718805432788353819894130639618118475334227360832708826829224232130148057417312850791038150283993240118118214539743731149185198620869405792678138054926229850764748788734921431717446648271496835875593061091734955561800484609539477097797688473939695972651371675357492773519267433893703155302350111571410182757660256375239205182060741535693960103237110839802544981066719325420986590461533363910646836923911944680095379198483526847412835478359382559005705206978246571531455770368179415692958208163153700560932508533075515453361037946315301537551715174147743320095481287471925409949659186947236585980892837436385583643566286504067328257116444239691896166435899425801220921779835546192763866764276644464568048373988818566499540623040509298431252808212387664326640388789674836585370193624979082276342403123540365147776085508056927979464645910699942794433908792878431603427198982983312157983600737690456761046622710406518804539282934784817511402996630670345599306537542534649350458926868966327351354321421361264055545973903063667625549604216577982486736415617314012934769802246457232443533618992553213539332526350983713987143953354686209783510347479423694494431806568464044506410225813279779726186626890028877311899192816489242511118235497035039859546508211798477819367334053266827451520427317669391558508760897733550585345590748141296967271151492365236526024178759299142671558525067095673290694821714535022950777332737057951490337522903618860415065790443795792545941467751891457465889546928449073017170036877301258571944634564702914272089971946065122618597036241735066548800016772555581075846956765714655060629558287381816752428072535829235053780350411669417763198160304301725985527831736791602993117592158225262378603901010763643467758873963721114620462005167566704593945974170451725260601109195297391969318932528581191639044271580771618640267340253891870651191941176447976494008252536192799727410175583086385219771485608765846615211139659942447570503622104175907382481609846731552671078624887278874219841749550113944911619202779052222488830713235140681073537561552215276503041740568208583478138891512400735400555580191293384021637743213793734848477505622940177465246401118154938629109882460923331571749019349237693409408743851414908698970814583216955322197322828190829400333312912165877701913073318065631088399063846463654195220099674023106119616872638328346262396245647298092816026312942441926200504640150499105786981377666825778021240796199042876140346677352145410600097058180321290213309308753516827139080016656103483509631268602254788287578804021047747946891520321509866671795304672315398535780951739307211514948637552238104525126434995074949754557937217291191779661232139561298998108656181434677831196023920847040453982011730129569678961627047722977534298228916292219824203519791758195425838790282000094539045362032043902044353578097158598822558697428019272955499721924989075093418270140896926768219148014834090744927830746597859407840068680417280106043143667439735657472838580743922192548378034673579831121118378839345322420662357515453866302244667353918865615682516378235722062977008672631862682350877731382197437611379365140438834970207824657325643528254218757728839716005073411181853993199129100126818297139605768178650455539562188303453195095520710095755092203220608424685408163890656571501643745112412277657669734123520851391114154194790984500848075335244013339913225391899864507782598831399385075633135227979021981901385718659580562606263535833468390328917796621026026089392541939848337291682560000439004249980397857180122048966088273105491105271053728449503028814474335149125474948454189501236350221279184001930229007220414316209535342112675477075003677134049913609633026049437508060659423906799026064266523278362125634524449246360667345718562104096127910035296892032817125100736757587048245497725936255239028715313603792067916206648181144578740951467662400161729637326414676488619455094827809766529255215970578186946095432335109182899304785640804133889365549222293015157698017737747872330883626857904064779233021911946149384322099313551121119711375496281174087285690596101417986189675680815874935408921538420624641819130404593894612633758766690265576467622674088229213475856218871218317180754243853424251257811975776378123582517681020930161197490676382463310696635695881483587656514980838249485204255996064401908930936941460471360043994924937043483726012647026574843915618629499666404487232294888077824632815065053267546801353842458002469009090670022379147402803720996830747245624388758342786406436938728671773340799556851493829254903458727958244935878988360304013821501824958278701406301792329056526222980031012304419466629380732614881402810054527112611321754499300824206356572280507536273424291732438523812647625827735756441026964504022696879290299538587992051945357488792984543625792634434544369155753943510581947282331646318500537002823220167098492581600685480483838681093860011472375881409138511462667515739642977319031040845882905353871757104154992392353959740748923682329709837226644791309226972968159733722526268625155816274306503257652939015764637246088925915075969605546602382432057172456598272461500459663403914227061732722343814234089650209977699423430159647451620256659516066118554862793308516012110181891631390141610719351967549806909777308762450487941312759707724973464080788497668497505428134244473983280384484327037534464267532471860791544356315595870649175902876580874268123265085471447403303343867355937113932123490082920642138825936420937292883746116176345686226180981424750196619463903136267316557485208505181440639582373617632581239270894915220873932367863554183343313378916057180302258432267378679851222534926947415320428558321723382252459301081085118448129409943895633827415003392037316531255173136313467704879902168618032049831662504500968523034483503489834615966878928099114640518767763417060612025153827887813995995144738233221045096979184219714456115497662591396123435380156817375234606213653298872923882652466599480325261881295555757571094600882857417104878386518441987996625740637459044022222207112142721077562747048266338837101488565058753846338427113877846387222225214608516176536648129757618145116558810799562834752562374935003114515577434087359413620233480517961482362557456026455331773167789636191694447334645737283322067495279139752133520274250210333782553361596862725175821069065291904541384092830290721556555447453659208053131807100078854428138665560661918454603900029529992571608757446395885186951950666166406311948463961639937826060636830887282395514593487793752037785316422068579814927802626977878398816421875172610484116258608085729935031935421059878131343850325369052438224749595208927745665568298467100759338853198323399334593740536244477947050783458805612293259442320868207887461290542470469796693614198360424106031833402021341450470323687996672285387216232395173419569900745312682952616307405287153917637881625533795807292592163095642511588695404570765484721466724139406131876606969368639503657463029102520122571495227491217608498418814498363443544993404562171305454982873501018775145567318999502028948924010216869722600452438712853375478514730251500666209180053036376307728323027735008633358000072476443615027640371904724518537023670083970498932421826955972671650211342772680313090903401413277737603077607081914257281369781264600246390024846860445186856270961250163163864710466506561331302569435952281381368096328394387377679472449583003679994190274578149067330847129056748059111151502786180236276771831752276520846693934860855410581233239424353545011561676196741641979639589973677503960131301462674590916062408401534123136278128991121183967238773799797915105705557503182762522226446429769748091317280432588112871816104667959842717310699517321080840270294533971582053909029893188283857697957787151961107787813918517797224899527622886064059862743573794407917182237418156434640636757993191061647381637163185280506764573949591438279900695757316599008115270183471406694340513174304587112245278407734268586685911861446607191737253087019438273580068673980953040598891411643360300653684381113925953858036730391307523908941383617972882394714008456086818147273627651638250404442656751461622826919626252739969464355738365077050067124936294983302244086950861611741854827394763719689542345953605903962194950549603871731621354039238190035824532821347540176179988492256665449363029346984131280670705218262608726501456512987593013885052795632268077277327215350139320259214828812784167484777030434064798783714874203974631865643090725992321363920999188953936750674698966446925076682228982681612901850637179040029310441466281747036829429169904447416974624416253357390422377550914076862727769930058625349611651018204534688011205841774283380341012282047301515964583116494950000703132962383464305590948172547430435696275248901340593064330081701112267718430110029768025347841035268926627612291498704432996334463770835679191019469854129650923823209984315888351312409213962611794613723465438513056417409060608331327183097557766378288398704627634774011456926527870292538225725186443688535127417661607687250726450603725972491555396251320496850432064040040035145616420724797004111408966917903862120782230346549841789443808542428201333866165924385323611069631340468028701504255589865775077228184608682368012881696532311712348115657926568135543431244003900254347782214398248762559455075758976955414647169897883274591310659045850121500332361318323212530630943440960155834711463583451170650140212016707647694325821193590011306636406922315479437945963530251422867117412669758721976031327990557358919323895695047675032633026977099920775505609413612574465605834989360141365644046074087788855422759350417066208129395987524806302839745747000928071319677903033759527521265118637885408974061263454061347209802675267548608206628503536942475268403277231874692676309949845028711862493588780037261002334819758458180191810566162095662674995373856620737103015693774082653085904378589110890841783256046489452567276268452871408834238646244914454958254646975451829678813123194090731614157542592870342045198409208402409291530115614853441908617451994834543428668505932818209871349766443197225445254364295755190744111564416108925287091838209110273868033993195380444671367525948256240646865220211735735059929233994552560163088651221660423606733008825680669208466672988022306069734477828827593341670577857469220789938707105120432649161254702622821338325693569090872023510807391649631903115859824035172628288810977964891784085902883636443248052104788724327222646399958701363784361177993402012981773888954085181917236677015353449793839982737316249974209656462106100667716091502873158875344534983728741265101300613836456576171073853851562731436529266880018504689622216221158491198519284503599637749527852942381705364974076853956013051118921361876271955499118744487363337498095307245642812635049151914936265792788860433537871331161424638398396797193312619354123266949098694655645842589965428156246160785776415790605200677546502556500484596468395349687507328744087829244216787835879473622567845597740704868343955347452536083090339066591373105510301191049636364356239489453290334492453691119273455508116429798647119140836064564461706458101219119953656156647457864274533743668112196492890769159251670005106964074211737473046273598338362863138039775559481877390157046984293975783681461608236660006173586745079165081714654292395772312834684450990232295291632146838485015968402350973900749516194627211823422931810685509146909029134302115952157422411692678653581908642613996847508913617203645701326532428649542252093002844285785054890823084939195556345363283768240217880811271631337543831096126899620309802107832489792937851930435226780727764397143273369088346634850587584381794626389415584121823399117219111913353243623483668065251195634973819993257818367775938752752534798160409455898768802054432929242897788194079070023665834612076567802211796000502571661105078993072635163900343040589258610645923838396702052623571554809019300865241434952820864255935391246532614187899370396132603567141881712235560551969622710378416711266940771668118632944482076670836342561958974110870153946095714799772501454165512801461146942957982726608436418613086681864098999609484514219731502307496129057423619392124702493289806063573028432840256432250142762489593395820973997397296552190703952856578984980909859413899315954707865439349808587858047983831489779744091821178651290980796901226372488928703231133571862189307559112921040992246418447621846435672642234477093178457216718418551421804037392030869940454928612421294107495998761807906254308525350631480069981365447054460252349746560096807234123897270350253416165607925772788415395562405728297771995961385048952622019075383258601739832857669939720885070114031577453223609402459413131890490105924739478022114481303007799481043630968010196151482567373982845203261498724549775426540783390383085661824354682874571997373218665036101589060757998713203487245842852664480756857959445122803839122598519102055956156721231502104160241556251473194834995140951788376299855205443202999336275780625978160311821479078811257381173774995592770236246997831078606897478347457593997275730716774718507367617144429266460883689966559312182075081038302558047804989475760889492359121485495294318197067916247798838735838627166040638540082616762494752670973546634639317866625508602868004391373738372604203543086528246821485278321075170819144746751985707694084293029081900911352450587908154816587290112285318066168192600603265795859934211719314850061472099892936493603697634044530883920550896283538222281261868009776104621656587013701529800549517204930748288350433836829252052855977543011993451819351409295121902429293685992100670141389265333695548252567810791815733263706792769663342524193072136817721448038411708772658742032688930967128377599418690200569385489489106708611450345458751028536121792873150629207073678699203652897949984923276592420580165696330931795447213714254706258652124386199508224904811437416494366812038902195127336375788512229836974263624697315425115453481489055034597773340103231173420736336023299338550280356649539591033113488517975758641921436924222486885336951430975925578733212686487626058316605991158306974943264839682005124835620330769894962843965493797977359269384413319951121298021496703449493119862657904196512964595647068710845066288797284782208555240750429967766177304130460568125781046848260727724890218719984235796757593209232370341373518853293011941958319594284347598872656376262548090022057891999455313350880213416505080714002847647180576672268544404972330836007316812100135020799437742921640754812905591525851470547452741626436652210620780811785091102394517233287456230507385073279872842283345241932298782297331667293507552237443807803796695943561399347589630055141320646409859542812320776928029103794280192841798130304818435182037724197753128435322559743181341071073165304953323707725605404037077218561860434587973473509445883714581360558873316552037146705801479075007956434351938563686822813483616690383236612964392720780933074810447045854142904261660935644464240690757694057282480494228349725797400009415917035712055139834030816193795996867848624458714193660039424217115629870823499485980540278408081923040009864194494481484275925982925712314563385546010713676566789221501649180565608704192207186015572280807193267254619283270022684470725178702232472213219118738856148823264444200127155689557382868690775746098208112793568985605961491667199933941322217286763041540969117267900045234714058749949511524402118272222035877079815775915717572762912266841037831797647701894686754895329339112277680810061725154196946793058998401359805614759623652736792447514957641617294361696236663366077576531414788342841206173616579306316950434648395064074152659504875019149861299922755724620999453143393391467033853498486452335183915498752723198835028472810910103395167202559668175115735218625777785185025234662476385873509878920500222605345176801931333729716039446007429693738039577095565728649285050483958884863429540630954123076029632216402086423398391845421506536505709425820891149687738872990832089156057552685002307539787037212326477953845436120867904422754950831665396802643235869861583158543365504042953743747868115027248859698673506274486852333402319309013831258463552291199733965494013196363828942433280157255344681890894596905472218413138221781858187234188831495653636494779465071441158420637401830220219279121702196224051662288279149536435855487125915402888806240316083562689335028314717510699206094381451061695580564841028906002632684917001716995434924360177786433288039305454560557165959054588696470944867004738621123690165535713015563236782735465554014189815071345427559827519985930031452974637157684156915127757548051050861192073197334529464867474965007328278330416078206313022872141649053273390791637468003562614937039166650915014421131224973761879271112996148612545510821532384951312855577638672984954580048082482678993960113334851318952072928775132028649608768547050050000352995536390310880205001862396877894649381841015671701162603449713279946525489269128811974387743133659960744078701976965269771066859926527806938467041984561138253684324502669192988554232228322685507412969832659640157536346230146122534795427581372520178233686657926256047311814408837843181821434579737544335507390714269138474427130003064367364686472554050276825931042894470310964981460778498525887673985200171516998658352052624130339356269154195370094068199073691208728436758810246184551974765451865334075967093611337601129223748387732891119182459010388861841981750210243063015954747972739223416058770778664394838687074146932195174315630721722587209692142798165018879781677964913749581726402041511815309284437797308318361089178798237934038552235171384126084894643704129887590198775286033284180303641378371203233006278696957882036421271950981780207526928010767172559470960914053306890160407257410151145780412270825043856926832906322275925113334493056250234143123379739212301854741329403052843198813299588216986544355589362548389776138351622186232271047829315229792309751887008998101441810177185606033406557853327909216728807676815466827024617535973836623393885013477197397284994582669313699063381322113574856159571671665210561050512782065846248809324047577826839466312783411699381415137245747974004290455772708712701043341401696029096941054924663831272997068275809136092005458611537660362860417088336305174663636442930769672216210550904950054737250244125011381305062027045226754143673846505019762806360776554761031031850779786245445206086786779558907530493061023029614651843840271884639328737227055452756357357824914393555446515408593265255853391513637329171303919667800647598011245771807961587291129383020699958663620228490961298948393066630766888507898757626699725730205078379658672022392175501688175401804989984090081362540262686435741455375873472111400361106200717167923546788160123962484414910795104515302225686817370889042274663369737508606382207116368143173068307900546925811242018712368221061630667815462704379062587461130806237891949273741379411787782190145983539069906591049496597984780059365948078004286545972675123877479644606020455641877368875098830900974537453183002770759723562320776548045001068950344284437382155958525293018578492721456483816712921416826854756844231606595735546536700105820281711916973540497729370995492007632747323144415914903977129666068763497852335286771258553113398691394215747724963400956032301842306752491318138928354143553887431375631486623379362056585258494867782276965541816465499711835619550234770435312108834015056795109284657278108943518928451183371781287639960635492647630759925301143530865964599812847663354200521511919741070383842537716210399503050545606975314835486231627892899889246078022415856580122581679668304074175382337250034011631306733137857432358053970338037761160382622977349342422143809477094924199513716256057161245482026440055772006517192079242470276309299155891904516681128853097506931905899435739253992117673436695995346774683846927092202170574200867365765443409479637752596925799680838150458615959401466105581585087150512570648624298993811476582061224135623870985165792233933163812275859063893833244781642970017629657210913074757575065976589797760556922733535612041488990347899369067307690621051363345850174877363248719792949219544677720389736795382581908924170837349144562617314921283720697866312299994559294136701057087533264368418159267813780303124086272524657777463094517480814968410954427679794015814694515282155750866704280133565653699362802282251473156893536911601612887801222340903310172191519252387233524587419955473644883591682312188231182252905767224309869717659201702962368651348642728981132975113858500539598643360744664505765232529496578299485164150447041048222127205528936545490976666256700023357691987839168158818151847782932245736501539259936717591534140334238981627604893807485041558712122843753251415140050487577503913887734214298710106333839231947639582338821714544176117448372802828557823283856835777690655921523163214534709847592726061100520764064499496671424841036810308620836087733042650388880053776842643815884561598494239909136503325334648869632919656508519011862160071493316864652827156746558504254573120370747458753124494041911133040496839800504585032010912005055549152017168866262101669067869187866079834643523504144052271998639844690425054959667130255725849936019188421557943620959294695985050794980731941654609841791506484748943907607209490369492309290186785806574206611473866588250636566798610391005543983062700576391661378171371407456818218291347755198196408125454332060419938058906476893130846537281867033312001980293482606849053202941202416003343885272765619949854222718480444947578310245180738958753962987305176027389751011893406816624566842896766616444795995031032591898168531522679687602360424284146252926138555884693051465911403771404482839274371136332462942158471415742495712133985761297529921273346456388858102749373140607068527886715163300009869397893676366109835269276737930744602363986510500172023990823607283934801535074686293548050887883398864981574964057591466454807613144126974463682165468581958439966053515892841158582836359090642595719076123864994146437386971112392304444815696076015742766559669335414350934536987543587751908161081391430604109324274493975131130897464931705084240280961992885038472907000358443545492067530649361009599186238597103298982174944689921346374810006801595608923887037370449550209719966425240410758409139633402617607232615403315770000526131378788338748012461880258252961602684686562229706986591134984145937613220307845406819904972275009601885179439930899426291233310753364267586791911515774496097831826138995377592741174501743668919915330628910647782337571066679415224304970818650663702173264052782389714393307868430355495966828858922917631836073674832529115534199732207611082117819666391599981916729932407052676236495334273737819146048352793027301447929721860142091872630545027096479769811079603283794228788849657488141581164843065555256978798110147545621536242898644272813473422649989082835646528238631439379452278460889179011818074675865035804402044000139829593589388027965448323466790312500026575483076709482371996902027126641053478485855394842416152557776895978594510810942225286206532240387257226901843993417023358590999377254451004821404542893526135582115459246099221377348957831684391321420767212683804948604698168784416972164154831014083519673976680029289206942872592229880442632711859595963180785538771847949622972425878460337363057865307805767047619658313755460276667427695084412205414442599705548523085550852015537081680209161721859027760250541882750211734224523644832733686007079333877321119120070086527543835239852846231593687110014350582066746775504169666779749409495785518377059423936357492796204038860955701922643560749099400025425969389803500097458848393293325010655815877549480694475168648603371163079018028158753819681467115784747410497479969521475204522923044390437648273279639693904643769809170186935317471765994529999560068257632273307014526989527971129075942128476797926357237954642674168949958969917939220245897086792038514957209431474064791546594253660163876909098264453467432535336151164303711121999945396112454918561883731615108648909031030893058656954103732144330107565618139258672533373745513467015478963017691953552850746849097894655512754534438408326355112400938566587258029885809284489619074388206619072133407652621589433561822218021452858744841631725282608265167149843975394794592544182093678227404221316602972595258526504992425942712304944576539583593279253432087624497909412926860692602037865609092682611186240437352500115983339147412593209784378829727575434258250634235454666655706341018333909923488960449701983370854013877346275002365552661828991428072254619764443929916382314176639512593983632322312917579975339791680880246934847003083175729719698598646705581115093674915293280367722894258641850263215900565222198136548491530383638765858667901537623122980812127688014019876227287868899568595340189340306659860241191070665264439439079918172155475752258716001681364984275051611525505373961662681192120725440411673159781609175459461552036607221417566474586741786601537757888961353372592835670351047333274919321026705451962050866590014640448539093792826777043498690436233984650423216775545640440114156913793236483277790087695821409414981573457022651273606672538045185095191792037079379590431356313930006952337109446350492002120491844964224340483832381223579328525280095565586002434422952969114601449883758110309377984057170395536886429328293339810673742685007713598677441733040461050482490658490671403281879273086911531952228095509450719417992639800537546650573695766300745666847259877777566363544057713584539875701631997599669534601501139648604751886163100308606642796975806368499054925276282396226898042438042008414493987314169357948782294778494701711245627578608288878372973980298446574924650019559815801090058106998548944356940619594510328209345467960525206180035453089001260091615313477869106597422925949113341695328388113474298279561417220735784322471804489437071425881532987673393181851384004111606613680471583850537603788677753136446774282141535956629655109994773861708919527336271142021517519743203744162641897383002002065563709728876074470533160399899741593599925529338845260010333477687789839297338520207218777974604670180781541428149533816953819661444112024528462478544037967319693561119844692193208355724756640565065116532933500019846763576526645047253584461465170952383535353954866120048258536294886306200716338692189649405459085676680043915674660556602165420276925660644114550963114215788555446932388666230618839614382332650350894379604004663625834409204173109193588407508263879419644183207027612279489506260680944613330266821440175991185796617501209228443350394014316307192003602581962249643793958639907063038616624916328901763039746968356491479495786090317053533074096212244796541258763723008068907683850523307306100315242305570282693433067963135350788981429502831684184636662812830824877495623802806533159748551019493099380196705769819470314289931516726642976209184170373600816338364733136543814396148800342790407281282921309304713952639870297215240112414530657014416445871408206925646626586856284796952956857755767618788263216464429758618886964995672235579395870021218007237736296442805552680547457449013007582778591185077636662711870610894447425076913844883057657983167308833093767413333915162340869372853419235377206480453258916185356065509024451543105733040959927863179390423325910928155831478146327479949859397395051725358320726617955975415751619333507606028864037811794230436819207747684075061986643946833472303433032073894571032713849281529865681637680992922546581261448274701843233138211522123331898496695562099418183067720410769509344729311438235751903487368691212610028147269371485224835526637968854911388810451230377719456468482648124261180445544626855418319800316063392948556927489738722241803941392753440358497875178886574082725872176135098076458280802218907494566181175619542875417252821206570439685553474108820581824848214694086120961363610781413550821559632362401162253894790223255306498555055790173870983891577458417830378441051286722724901385336975494130830706173584163567245478495319447484199474826313863446008612823586346369188083759729112347128355392411632006577820890038980360724737024420570542189445189433601348793201343521641752717283240019328465723149578250805485194127875314481511223808333385180672672347802207551904611236099634001287491694682890890057567826981579924475248422456733410451659759686867595574595410672486532016036580547926581156597450124976575953022668240183111520849175166141039194825736613702132348216088519605494100515684723006654782486047480955968144933313914962511243117884427602418918506946213120213721276747785632399659309407041425537866249978183737986503508155085662049719330967344385909422716863398582314171405036679994100992118035225354475635319234380165667556429168785059544053575755003502315260436351464973592152451370958769359826212989881075425233001453795077146337475815910164135885669989937541533503795305479263100839574347928419317697887457001552095306739366431122263475842207685666910052793490629041396488566183513992548367964981113807652487882599946049634884123523480113805307541182299565592799433549520121893812636598786686541379933659148639736933166732915534290724111327400133039511917333625252472464137369226841654699259257713456510707020105437835829374793223506829129130274638201353867834770480677316544566055029124685183122489534981730812580138055849309301595636339881698614042032187916240644927501953015907963628570521997601460109220431659286555811865447793904681201564244093049525214650364635313446864191292791879676487052662853734305300718647437007729835563281025779869954522543522601967249264580538969120588107093666026224613913854228796076817768294648028507083189020343467838041546580014004678372426440555852239698396500588676563242121843662335778600306166827682546880144748651011330829266772511153939800464283955827961219176730146384536411404825847006889781783839012331342209370747148489941869807493195692501729038215635315458356625370983192447351397701142764291660073795182230365437625642570265085017008997983024217370335072660727247007833648024458562193430106102964019345556490073412534622589275542765438456702914184540407465669089723269826897817131161565080422019427891265300737495779053692554493600243869392622841875651392570548696878493437104389275463955901181194421004680097636759174961420328603316238145935058223426370889808726198195336732485284460935209110544126565207771446676561702690095962655041587325521587648165560499516685317963330029872052728698241719268522309590954146960339374596824642928351144079054338460103787655956429593130839058824790502725987448328115005854929187685231870722559244845222116123347651750256831222684836590446334152355934062812974916998652836523954024887569117437646941318268447434342669392473025210457031327825852349830891582899087376758946352132884205029520711963449591434673025654645168607024626572201332171322446362185283342838309938834331526482528137412056602167933485709278939012840041556213207447716726269331257341479107380422127308932732579743097191031058373490477533350193530340922279479084429220673391023722722763871055967135862933673651153779279032396354704483713289424440840330431898146007433266944576443372592187415505052277894063835579378427612181032466263424140681048693637729171005418079373147420321269293606446131577562632909504352972172647819959138246377358930756966626778141360268264029846236325020246514399633144271792096413481566320524985828463536307012361289508292562772648892194090704956849677042217607789700943608818909580699728663324756931206039796312153452199189631378973243031389211484748857254531018960209020206012347673537272222463810768591269052838684468966228196102073682382670411497065659242961173283187593880755581122110100344957768074852738465736787651064231895730124632833133211175744359664534747297919543147195805545426096951028919406740148582207270360170429466401746711305792524643788926471189452582036600907082189137756367111510664995751610008998090467983128496896796484459668381231894261518028218773762213984543403028768841458496239340559296660850295376242902164447334591305429482018332692870486875915818041934397692667274279679881418648656792538198702922355056652812188339346013849183337520573374174194027747547091665081411718788028527151142286308134423887813518678394035153607300395657983751443809378962472905915093998138731561670147127409736231329640885046037420570470380382952520340279813158571844430302100681558991967913431728628258274068318900033719473467601963832535826615365330546722596066261301474694287433312030643189680360345401740174830463041625901712851434938788420347092701293414838244528924178024843660804606278850119896768654787343673998439919748081421246689303854283543985539801900590127642112060670403579910531210856585689474744190138253884174423024067884877431973726561967591840701261603904291807434702170842449532325654364518510126801551794781757826941400011466837523998603893682490397525269823109972311513751487969754253627005187960970519432002717527513370031399647194371151769390745962979684073067639453313352793141385426077169044971691560613948812151908844233129275024039374336413808665208960954590933140613107304455946734799867665712308561261051785900463480195193317546109347203084303689508747703658879682122945233463056965566735334902859877571469518250077943019084396599291028843357149099363355213920781562251469951515901162290377449706619719476805093701371906434763411285468265527778351701876672209269277078827609314835866404501291046179787089968267894275006028940335461411938911559825755173606758998273700918916819256692916461558723274895863609872396003668126467440515682032485404653149956948088215266057138906370539810001655805365365181399374055357454168824914595811915075437252379650054539911386221246185437466023011759476195680918915976595716449742199217951092623809706054015241755736587228522515792605312903372820167803962720965120538847037028077796461894000833614166530239945745882598197885187582799987950863144960128143497231015667626118834596636859832368137477961800389090869479950836859289656301467255830993808085804398617037881033976228605826128157831089270721158426799419266701877842635572320100739402697547650812408568717681825332229280212170938973061399337538103991814686658428748832192576468813116862052415854600985012902705491224114222783028039235299410035429316028507958371478293615941355107931898531828430659328075728731071804968746485573188793758792084327302154475891960120993347294346388091253787059630309851554431870157527888752727207038811883907530033639658372042303378143909046232033186952596224850537991661539656260773086400636576647541805984003343776578000106513865747351087790097683513066197266636589129502974699394240551412455143359201179286221043357852577210972534978825605415884067478622485480307473231513251795906960691224138827979413959753809704880381615638468518027291627327243908471200458762707845248221307881020838069012074344858867053474900586735616618294986576447084690103797165372902226296070946082785911879389283645374436230662154923299949356330972929132919512533102115393520492878940897519221753819654029140684622718782589108345619163443411112708500440215729061836814590292317727396251300400362626023334611190143477551910287668233311081582968171978086090369017053159755661625940197218225122998238835374233259590837943897624582146769652795957901900894932747595148870212760777504715293720939341652393048248857629724292049524006911794927329891823938026397150108025718137562276058579812645297975256927807503075955117438634969530849046855853651652834960350503789686774324744072803764933515553569741832754770498544212081683320350750820574135677607546830907841890894179111760909818776289070662971222502751515311280576502972286073647998305666111312564882916729904674865889006257066785694717491069943559425279030359034071514231527479077224920327091434527963662426093783695278673322717508515300454246463289079125418511314782418091302952895236197746711714950796678151842059923609741523749844252184782644308658920723095445451147673432581012779530374924509171904564697981386563105837758531868613989056538071442408582118120994741749751179532914190028381499482441009075508113325136122925101914243425599347317860707494448878586815781976492039964382551984581062297598988850204091670193763924037817128477274870710720961847121050777770666823267502954685746721561742431205795740341421069221724230583687258686665667378724496853386602859636346353126269234125149316367375497070869475940945479224906330534917783490852650220769059745951456817667851132240365845206915303900843551002767250755181929782063254371422147033793067273419504345917808821954109880763693898372739555536256214385769236396791452364472170069582536657117221519575719226172714809344016556027398933068745229987580726593496013630137023592696658445556459748130516817836504725868301640675547821225164897309664892238998540928685168086169839714114986527829891286513960890308711814272584827859081714907810740495945100248525739621363293451915680260250241752190437449820334877074696921865254900954642130846944631075530202593580733295582959118879403218805285796616638214036349224045818351456306948658413335413002105116272349575480087413566374688093881236248903158755753498808381848675203500769845899423959546603906485084937979985871432968917045776945483080959527648703592805473858595178683247350945157339494496047036479560642703476233048236569101192112811732720920936729161327845182356719725500932284645404390928311550197407982340410065380464984759766041200323217056657811357591093900541302076359819307609412191861269160095522692763273482839174086507996425794880634766321913815495522457226171923462844144487652999625149138025342594996427447935479515315144114262467134169714361148426532509028970526052616214621301735520975583120466521461682402224802114380825457793421861425111547566174785645228314676444743392659729252098271802654501444793451341179729132950329563098915182157149757033789389646244433926977777897434777473715631818433075789857471092028957978901483940991526741582278653013511682322626660201607213379653269627054718344574449465982383467333423068741224530815779373290409766663088515471794214186356542571807519754228324342162936099000165203943328347856718029190469073524070314935522585350266964258584432710741087692632800163090835153615488320653314713863022421127604574605417145133623764504333044555561099915293928400350833873915952828795906131177723594743778584453893434073723149928263021216033570826448906149845575586739761761917071282269313014162496712364537055493056983172129161584236549370908632647738114625259782695059784367052692923350054646104217863205445209594692790452824137858489877160565878622355647590476932057613732861064061544097812600492210238983628536194604199907206334679968412017627836423180951421744489319671731487578066339736004139942706628271164842813387056271790677356864329785248445725713667620780951362923940768586651330640078413920614987918119303490309721329025940036292414409641729567445528194546223906063202245635645409606195914722482836978263158193539074872211085854418889896508179165237613614735519453985907576525343824859346839070150127153915400445874593446560809302756040807966640284341987075727494726474858852706322002230450780102831950521744721969124270975874654341815646059941195965325555705120037484362545873032567914117518645997289235913158558295110753505949302597334421860311232079932496812025401029474070961465490892653003128889470703654982228225932430798481029054999392901648533347936777888666744093755350172811581975221575898009444747476449644658701934183739496351587262048978454651083251796880715977660537094276366752058963731938450712730259794343482235487697982287895289014930017119962178521769294547974884749360457600325181425040014628567956827835580338082075785771134759633855564471570850015485895169309724070850440002018300809397435898168957167384734582024877468109133784071810573678915518801997336215486417310133810426134204503762250427411829117124666837397398708419899098027904686123394017064813053737547377254247230010740943339833027861619523014077553363095953335463060591086346707843936988305425456402637108507059884629544024494690508134542301450538473099682654682420543905022102740943524816384746208572468972464516073408694357329090922527899623487158357567346188189573264974077383711072091683678379691111481871681727540364595876067829813392111061890911883271935933407321310998778513575513021790650424725551323740573990475319306941023989454671956843028530598171484229745222395958378980962247177888038458717675154500472674771870388321839011787658247720118855085705217979611931967665743458277964877779445638182334160259657654536435693255454872228364701630828980505437128932702905759279676837360434670533666158498404828001885611629738647374714263567682216322074147285030959099898022005546352129267093139359973451218192917524930942061454166879285833999312944116021507049058879681136597698184065176779590366379645273312581717089440550601309559211488949062826459772312072388510283831728934436549489197571632014170711326069510425013513585005406698874012285410646897320671651684547899514397592986956905585508452422864852300950418339653218822805866749205864083359068330532435095641383787129925567916806509957594109256604886241986605124825099345900792425005199473705085988973769366386140143332866900385228569222693222940993139377757127966820332136591331439943810380547725119534365214956266837168232641131186264704600791803546938502288881318278925354475093068681447939183871729181491900700096122543135897915592563636626590405899362265982629409972199490981852805495351476234775971856507063484489898894009545761083328430117514526439184306090935303295051873343530933166812768215111991110266494242211575469058511269492976436359501011812367808715195624387237234816230851827233268934673720401750695362825267137300214010089818171907085418369247308828525623703765399647397252910307484915445420856535915817349111221448721419396575030003395105441429098476519192343784322916432720888566413924430119920927595930657452817630822813232407232691629039171103234845429679225584066882975176622525847790746964540179895223732542190531796180488869642540750133983539080494943814988152097763572938813583028737342375714751604055193337098271410087769569347738755112681131419867845053519240999948350961413268038737069101166176039402308753647241789735853513834272588885965969273466249222378306879032324173765714689808500698327124863276003184916584650655237985295403372881406219373951461828844283037794645017663921211401819735662467057959704179667093335611267008316953570122212205152095474555720195675089552603546323925701399351047222632812667886769143421425298405296539234418548849345986311639868625615700169009470071462798450430082004343282446511307460420506126050587511513360477154626180089409267209925220882088633083149262619118807794580061668194996070004160844186756089777422605377765591787684856177158635737866656838453803539722433705018833609789501214693687828232197485305190714418045969865161299674436156530613085998418519044287046338169670666666357776031251969805030596847207455107549139789393392820489282728863400652830227976160654450858793966471001722355267052127055467923760959966276175064455814067812670876486165036757936333874095560411815853036714102136949124450927333409283627828952449148394166110144190971517262129827663405034655739246889938997668160346685739227584809401691904797828503786858336585769944552000807037627801077563877256365187206868074292401795905919818960772868150553279477549695659841724400955041465340640823047111036946862777321277750493137772542676354936618940464168265952586009311604246339240639169602417094142800577565287609399579189033710278279599371871855388248005274828696996648595899849506182783545466808322639157605212599877191865453873632443127834044560122774568079973344021663786063206696361736334075270018575695506204839182496379035137489821256256073767976999226420788839705745827232471639676729556530697583648306500745026812558571515929710234399400185441385989967601578437866767872136874161439513059702224929472323657785232635427232013358905241582619803408533375165029612044457126072913093313489419274081281997521180379894772012332860846401898424134283785181896921985845581285280228453386456394035481027054791602925913944515872278587562642079334227613175530474367705534499265199843823292692630516361424361365752614657760473898748360182244787733970487049876813691197199501063835044084302813831659382633460648339009607347193696206937908919406621238251303989184862814867138353305997177756049406724278072177276617779640560421667349295593725833521948529587617229716470703082471430329030435799551389349898449104512257085002967061355387685261662469233082059736760891883731906429769216528336375734919590923028641704099658878254925157791396622723254595194562084994369964025518550137888962054248256036859892837914571272091986350779790470960134965881040047662057248794215992199998968013570296576509245131623986650570761996119293687961772757021950504342008443369728902110313475800479051139750320623910839842071208734563532259848345716100045391465555256526691911715268858240023518594009611128695636184156959836341217466232178109245391830004955272951713175841604900006122877833486233291303599403061059359094156512642121158922140262451782728670377939229605927119304663956683206108583171543012707026022474566562438171280901257396878276242492450241547602156441848290189706434689068258737288821999129503651717712471531857151533722972791973759052682236932684804462834620356758489054402455799822240834433924351103702615553466988196762220182806496866008063059935747681621565385957534595182869626472849721347378300514494079011444596931082208375445069873717221734434929902485476183919824133990718259127384427048082744154256279979682918016192956252611705010112386109774081925585862139109108178957505735602437691893568190437042213416401107606717689255621899372042849901099127423002246412953065832804004266463309989610760948716903373065398727963731452850038547388089937353832553532979583315349641745560575899943039181307337368771550610718258860727742309553141468512080588389919845754483086863262596747081061596795960255442942903814152037398973687980365907769022726364821257650521432438877271033246858138154386102569213076906271082407296999744009017906327016168333093755648240344902667962065492653350570728965800330733533528747653527504074726810523075843362040452191104626214456982793848125892723319919986048006360543924205247153509582739194437910034945355188741640364979850406118367328984544541373883591486829872778268333828802251210672146257142577965686216450595210631202572803818972159278374132049656409122682063947450309835444314970726973193718984974563430510322569133267561511144632256785384303966800608486622042415384085437252111025924960530208852636737377632749984418354905200605122659474441111864521660340389148459528846840303067999254875534657172045676837287214461462947850116253442176652251974268606383480138889862082109685539933920995364806100058972120661102501991036956415105249163718640097110314220887332017352189825011802791563162250161578950203082105918519955162939463000530412592451443919118160619311892463103453773170134382859514278542499483851274088114274913001224165645314615312640296570603153696751174566827659665278335552648840823693519270138318929393892227430885109141967829569476365165352779170712761529275154356584577195310639667323204266614925714289894275146160902205774799646241888158105716393196106630848895294741446061003775828935711421603850997889301416723647680708986371698048830682407625440351606726607379287626733921093727372143881815468103938603849360956743679379135283819107748503847914165282858648908042111911821302483398519210657287953731931251836380241069778639263125037161387122922499243765449276320090617886694601192417528253351744731704232807777850954273230363976919776160625624319833480295519443694918205364963792755708275330010029363205238941675387342615186192245679204627330066292761512271143322980626229813704113390418272153625549186590557059992133201788880776893526427830855024158034948873300540363184999994475441443690012867811983678919932428459682221082797865524700749122296140775788484092553962537929100800473966504887128262788167959710407644148101040856093191791575657529196330622144959831206393289445264593707750776815382822878497696630226593900455335435613465901327653406353819981095637570794484490254701344401919049914204962254267623947747996349625998318668969220276545247972750264371580914268214534750544912997269219130334416850987222663483814695790420584299974280487621658713145400167089058002911567255450183378863218419102017105616231185926924849474593558144781812909505124422387370008944854070167122460725925239626917809189082446452994041465742612539967197990703474497055275460153035809724029763402971987064355627224590034230247550969627622180964784937505576499551914002327083800052541656362340725061079550232463381606768976234082563227884039799454523062202291045392294324315251321676025972322708084221061133119904640846949217191855419740582493889120795334595684156840652877189276172997662666759026074101560276686978515404782798730178419161955991681822685739098472106774822232108045467851464392582452950450982460299438633192372066976208178230960653625517665936530353705841607918596057228061673387088152084560382977242483482403312340150401982490850189535016158818605862821471914112514288408682011347533092042109703236396024472007235520952818531582562567754729114053098093715604302492446558091864123070401740596042120916622738973858630896609293027393764172138732516550402823197825835660013936712498531495747765513097224664887008863054441278054214933183938246977860460723490896940355344943756317399939772850733155009723568798789532647367901220709909369172096872133036476226209881485907980533110414716419508804519822751471982731285581845819748643136521186737720971433205923110504946559012229548214866668876720922206622433295488361959836085389776215768963625683962313802307942040492206216674388078685740633430307389082171370773902463262054604484510896917041817260010426851813913919484350479126631302790292783949264645750134399777976860128076040893914640500824771316208855834952178310408161519683488535455969012014695360466037595414360754405214259011422237562118480223985498147528865878809051365359249538357961882183559221788529935082140917785119781367995364523961116650216930022926550673365352971441689077996964024380483141412523484863821007753306508201860316678984791752170102634357094958262346711050477613526875194919053946348832684495135372328894430803979389667109295416993697085095917917759343122432732807988742188880623419283499317955037488821227312266513813585305146904770337617279805979671399905646367655566039565721814424014474772468068496602098923887004762779770135348009651873980170533063869657361858126658242067152275592702564722654657084498602987243232276418736700897646294257362310043216392576973296108322186611265367525287677424767750034566009215955351366420379721652660404830651880089064389997678853181985092786592262227459765946027473670516740625413301487017320129744118376566926731302247955633191688748684735021331439786418627489892575505809696761164391990440714281986884383420365722894573841946762259635229981469447322637758767342910136758430136490198442591604524746141095204050562287730697764197495297759661973974126072249013034462604805095562242929034820772243525849188513855376403379747586642158485142999401682340957619461518364328142691214556624421108124343360826310356121804312880650086561388391482101039700283454818760749267856016479522821350891216076578738158858003014219081029599650250457092967717091540903861638230355777932394333441021922754573918532759656843291562254444653568228678897433677991338265998517447020437011481584220574570542245815182832268635245272711227044733095094454256724057709545260211350422403601655277084817525823561640248514128886090874822414217036651781763451324556586792322037673995160672191013509875732875718076645117568737453657776260263805285064787663156376543025344487936292875463356184359261890465655060400554932313017715901801908695577757095412028843075578999646133015479068120679062256710451522098677463813168628302602345511933187448202618085658790448433070801960006075293305302529191609696159503312258117126727075482590987970327333792787635654756395406606484724677602293602425658466337598445327143770440100903804578574962107410093990399255470351359629390641150679416854985405207550596637683150726708626663043385514230742137292601614671134026709602080319698227708744365619259415843434377143168151675044331335394374474212294799055381891212467375100914853891133988033301515674231908311122888529964581702109351325202118293618402477020779461028345691391621590567636741384491995409918677917310894372691910690285504277752630906462139385752804324201750397702602524283796662825301848210981016437221354554139002281628817197321738093567039613119800888173293363939421520521768438571407874113880663593800933284716260899819571572869227952253522988025148241715811562284183145093677931414729420721383567876949280797610542607507917737847742681495953831571097230008242937237276297852510037893953806097213606233915910956545995634186047508260603758942241700164875926320114783581095016851935904344238071177361030024859067039437671669010332676693723783636152987067715725732582170230577837225598635761713319120348613701417526573173744944591063169895714972646975613918780692259673856330835471463398482159494501334439741470659471789386260664398390769406647377032508101097584609553862024391280793944740373689376476934029312182644589839565883252817525890130495806938601488085985014147737091922608831198495031027470758859858438470113094191058151873235176203438172448993794554643776194753460446710168285505280398460978355589461290753549948449635867992183026582482213489942964785135254041863165434802119498968598816860671006790312215100868173608197102907225973769428736016657792759078624875619852181297925182323587547735914588052223371402934253077337221866149143588559244912592509941523300963840021794427968836130373824488074353072429702559799101298037292354021057163389319274349643710777931291639193471801853495788191499639594115850343597704470761345299475859175369276380962149919874808963266500878216608926287924460150713755642653057941098365711418557724052579652710160811527014803159593534973841376535240843556115224085594409548492049149715565612563325073156643343756028147597924719908513298953145568210548680811451467960876782652038204340961085652126168295460352037495010521743846753673236044172023670113176754596538779473398798225709092985593148966106285690645875967528359876152927312450333231129536260609910039105630141363454873678481603713354524942155910336477862368174396892998061445504328141104025756450727965139407880178561772684207853654360179062694907908678699220882051332884387679657454166814133279281936403756991426693651970303572868580285907116034935492398058117211247032897006342105733615435768580730502747871957084759527645088472400888641656450373783592689366081285853697108522782944446500515143021885680004424727042360318342455175744744318764534924519818441465448156372799976733111925130119867238686987085453719821862880961394350419488885726055578212885518604715830573590232649761556838251087551840919117635913094078833525019926437961342747378471560675656158802746152887617860813462794049368801432767624137950235917091300835327134415131107012703509136465267114496383743485063091377464510639532331441676854963735318187536366537419206283297167311030449284872466845152344557338511201273053987470319574011716473581260387647377882423289244707527246017451704127531743742991880977598964721597735530967332795504435149528803534293261917975696997865955083873537775658337797066093807039310098229175429303557251406369207988487563464812620693393193707598507013789991989845621424384520576019306824030082802657411653901775753418863825277847858379341564582401971141240430504170787930173065220224589555884350418023995332331920808868231986130805875585788452020531032615474281112842533641320396802608182310498383337781307637598082852142306594060845628579705059339208743896576660542846804826570338805758907921323727837274872437477430613895368529832178550804606087985387020626267337031151547611924877023250877868546775231450706398948958379551795011057674516028766916763958108557089891484301804794232323034439808612055408476141503611244487295979668605967866414537869897072910381001177895701291505804423747197116062737140738423583403311418577547832570109506734283146470203277255575071849631186705853678986000562765009738202835941957671814106296040531922851692452520592127951756201242153335122034337658862349169684192323170480850496207669580556581330632986250069413688888777690309962748255875385828372789230370461710011801089391918123543559853752276978554167253659112541290658077523532875770572076079489062156951398154815232331528714978572939289139800845769161665520219782605994013830787761023279358729335613560528239276285292817638343314292347552047615331571614379924634358546865788316330210141525479621703937103929317418718627957686693334298141860676017683620015858409060861620973983740851873694114597793378408998176768621465364270329524699334715157584820573821187227116318748771996707080983422611702285244377492683354872984506605409979055328316921276527541613630188057878654235346989343481502367649611443741249131098869810065062888534218620745910063007964004943199840619792488620592207603460614142034254923331869926407673224652382996276807879044210356950955537706490678883741968190118659910018913484840241829976107970835976681039739537738121065033955765411289766780386817144610436384341256239181987642191668932840239316286379553070836482887411351233006740065134338150082836638816795062432521697686424413471260700104890748750821875232902882905856026335902340889592940525000761951486798195368770830569616645743288901583014009197904750215973659237359103630034345794678553029477116685086233102554645085844660922097894662121710296037915795967534102023632056335940275627424040867127574681684024528027887585764564094889819742504929847803841170805620399378257533132733116047295980840306130144895981792220198996935568829789510809902867209334300984099855210666668807091514735336621524502437606569642844273660873893017968318510008692137948103182209694809890402445286153909020587169757477025391802063994786656428341376829483424235668511969204113317671344823483585082960938132902600183180395247606787077129710320072632778937401053416221349800398612098909591573468287083654277636115879704944211588398824161378916447787800926779002389795958673032163496610545622605509950401852116839172973802565510035560717090902426750426523288350187983051215205868502700710632819740694296717859301325835430129071507817747210042490981492812386968794663618814633252021878167453453784998831937855115793822642993860372244480932835714139489412042313128162206784921591373703694093782923874625891560428409884112518731541414123842187725821867100978877134367638726035718299515685087595770994190366733338010073758296749393911693933687860690325490677459642583068605894853643702471859136405191422258877039906169525464002314902607870524333933973858497252970841158326610700918873631877896683295584035207313538693079578608166072579659896170820581290257269019987610467420350637769921062845347401438421463414906840481962103112537945842793756307309567693879060430546750022430517192222249568464613517538705863645425337133489396799742026027460612429665754283250223771421808047034005913657734083456527493844900505886778784776821911867174161889123310069633416261712108200908514791675736645595372470118580859545581925707616927948057194969800019143834256004530725025837892857019337850967393612246992070076725211380993409341708378049244582496074179619918193328993522855561862802938349425922274315694223261608062337223312506752915687220078019617499456094711745960751684183907650002439191716596087639260285021659935463970675583418148065125842831599186194869776100795377810235628948150485707968892068858736371307159945742472299782010201354732090867965508793348632963458151430240378850409400953483595731727791778703158895552904236977308237425488350240711853355541055576740695676910590436534511783071534925291868161174028623559273896066128887957455976049789431541331675364720013458786410673761843534334490952773694467466762534469900267656208150777843202168899122342892174470499823012844217510819848549645876348183425083028581938627694173529823647943930260912527082060005281102874213709038552623155687483348684166391140007493655486125792610778906183332842666967747952036818619899188906043013111269609634416142055346400328819837661420319219679062727513014126123782335518575934815199402498144262175560156175459425039078360242631654993982969415117645246300988690152751523452662768083927722155845927413229755976267015694969961327999703917760566391513238990591675733520158011070174323385779219070943346377654170780413043612870406612404749819679193503732487469421695176484952765579534262163375771142155254284645522105917837628844939891433676480088138483143051551189422435520348762459874133955436451855067303273867285811420339766814229195348301920544202982026147832468118259400690685385770432703147805120408794168654254272496477172073423849882671036676866267514964302650963447748635285884739482930007037183691861394012508437945696049450622566230604120974611916631059571802609133457882558426475435198275718970308930249708528854366205460127498687477506515313114161114776144155915065955964696710859760200670735614574944799939560971882275529564230067178641576184696296664317624144979212773263537608233218917259378878363388661375281653493258997809900993410503400864309802818465553325902827117461867636309805841337423032070123667689838316190364035977250593706051318680184684542494809207611409740618759116583292670944937586496691287816494220131018998971729361181879502696543066968172104834370833431363107427582938458612696053859234723446917753819946830685372124759645298050868471292858758796486883204708235501423992789679708661552745408045390959490142594099218511116812281968621236870793046029488346185275757352963485497626360627788066361707612911440827791357770815294765105649810536620508001392260338381272234471439461686867287577656457970687524650351293747617836320824334993730709604774037127001130508909923797835605803076391653578613475125559243625075247724362378500984292537305434485806218646552378594483414986089117037761360692664176823555724795046097587482001559761896047831186324537400602858701600306773707606794238367996559714155527339148127774242973890606176781298373272179848437506491042626509364582421397262117451668880478567544034117607411134793754997071141639388497777185537461835426476263338210699457808741125274983884485437151553702609707647334250527629065919662200021980152631349692485606177515809226160019842338461144354739386911189982074159893277318980356604908882165825248568695384428278506944756316247039769756835433918055006271185946513339844452536749868855695667153460655554294966289950280809307046667815178133693869608246964434286908386313495833142631884297281700829459656151396819026925006962226345760211763477686790348677849335357186064317111708776791749420060812104475023780538844064588577641210521037769579895842033588318124645417454345325583930446229713522447749423975615439153028688789904697273554825574540268282949178533348719989834890458229597920780708071171376996576046582890056160797549008551767010372143239926263061771419050920065318585317831582185580720823421944450664125708276548906870303600278730768273519007444304215762114061520740098381657634225749157592343475066918180728296758939691136131033111235557423163412730461661120799648456942396415680450276903113893889303255812899827460170069646499698345816701550690963737929343614140612939792661015761720409026702667314076965586852284555045774802055606376981209860255738471395863490690871988237202612489875537957127503239207950546629468095709472951920496771689311682585993429197201498703802034081145356370680504302083945514450584044214385359825562907374252675426665280242722141324440104146969869061499696287221698488010837715922962862094170210544922553656372978484821292893106523664176980254379460339416731921508784687279645596988191857033923978136148371870030675043880046120664309057539406864802737720924883358111261028571740903667508616153108661527822444136618734002301322911934418449184977803118855637358303668068172083768435466865725009315551928128153953866314710975814978817473781334589204168462046823490304602329396473500554757060054406867619297534489107360080974699531400161367549458051769779097762235242380597769554053950084273702408352099068620075878231735151555907576179996655288306907340714559405701557212724595968584210672804513577888713616661202045525990458111523938356297784537921830531677378955077289973180267666848002777294828430111640853210464509238957501947304224657844908568238254796745339628196346815525683727279094791832978500941783258853198810355710568167634343484636160543668355764480593145960528503430118971456152864489388957680186037450690743687320414390280407119070971428079753744991270247134602171952370211069361804508237686586713266082646938436138938601319491981684880965651954022377998954942658621668045602988455442999045643232280355145250951691814864379539489175893880256406443658157635402365153701869560545817754727047116693713295081339513830542249109166817518108542598482619347139953768449660545794600814817222107165256193593085316016815685393392148989325243337635415168360282602079171301481126260213981843671598351024063770031779276630926876295732370371506287717841074413287077397316957462260371169425593414453103019124040306088657075980247500393137026682378970563737625323256444168249974381148184568859924026586170041420603263276934881456276467180790564722872333731649774253182659339212080249057298536595181843767327648527667707864475087893385542288382922122717882873867130601288378870507895844042716912566342621838298116767799985042491829578641967215243285232639945752087309857300353687602352753958664840748631990774945698591916428816047245894562853028162382549151264883291701632883003795781727208133050242673638860134595649379929904975789158253377959441912594289786025734719431731045580802358262697113037749394454696649008194034854826131917243771755289520158720806728402303779488170203998685153880474225658849385879809401258359236079380660998587670450290498961707596818967087545392147672186631628038861347256254509438973683708404475503281189875218177312172187047903417007307362033949329172835333864852933232502308387949195805350631470001068490687204147763848677777364378527013067779564081556667040939221399775045188507922560808996607327603156085936190015467468733665043295502721733173685639898547031318709087098804686021077185694734789397846113989608095840821657176804467133852486681116969022883128015886092189599624250593475360597924271147369161778162171819798112196740407928394552663782664713903100015589948273751805586279817732514574816969401768342084674642671569496411823042235006673651382494746632317591508227982257325357276429440254814757279551779123452822738353125550089072590929637406871342769862582099248186355575968155561333426316126559644073871854413968926328182819694607734100022004475148971508791461771894719006410532053292688384776610010205237228653087935348488419233647721160357418679177300604449184609819923146035243127091574806943718299561504837268875889824330596708190685359935291810290115402072122093114163379585352303045140072512604155237287798250584512426409762840772595818857483318206270956877782191472616903413306148278460310286074003304490446369899657784738054756154667151939492961792805710188290372307025916155996844709499271343641174291621532007349746190621410177894340221264488146977060045566704475677340746034446737248179259154952437700885758792478869904955261010735466649317606035660589725493294413585865178259921947646224653219590136253539863200006119978513513554492595614202252536947819278167687886371818107154942278474382467602241597181575804947725267904317998062228254752070273136516344511143100069429871968109196776849478649930838109623434701353333258517131673200410475505224330566351514772180656560584455756451297407368723847566953639145377396133346040672604521272251118846549865206351222880042782098080785044765896106015036220603027973121964405318161437408604520674766736271183500657517339842102489798728935326700113246857820361141324549189401188747452432367253591108820972144607213435641137202770130561388589684410960960443790226922963310437736706237124091812320081703930782989626954720401866455857550661415236218544596596753969662718650002701479264752053460574787907341097427641473786451558390825140153981271673110272006606540210178888659724480258845921786565471865607692497290384009123851812694599370756216717694052637636487003023056509986605571144117313846699634842064327869860243869333436426653028597640320813796471258228523700977947607374789608587291647221799782548093710330279130337932276955801038657927813913837772032465701909961821323800365581967018502126594552960778869179616794054439150849520636614070184418785878782065507961244038676917890811882666710799751222039697013839626990689260560633368758912193348986628888611841449584923246223818710222688150573668694356280134109600699497529144450946726847035833913127751180837354675395846567348506277484580134730157130844953025744449454896071393160278622261115215620077659716873582267424692497427901180620221280455998056510661108263878000502587409737384999540741068622694255444087208114707614673741577271004389800626237602635817461081149848867220242646929826149420762779423294006294933964547472331812802938335770133069164616020033386548913035445499532995993645605304799547911143686807272281439379883535237906564542860943083831812219463320066601606315196665601525292136304087505581077939934729958748670353182338669848898960060198641669659349164874517661399751728938798255393453585655823346404914241175763697199454080593628164544289966351376439078963899097501649496740824021343922316549751830665179292720516561383174778697455951703184270144857232438446595123996237261830527916817065641558761023889848107156274493902349941784579633104390012196762572855184522819988299278496096386834386218064767111771881391773875966378665677971617378729561004938699901754806481129423335297081462578415934174591605987685767907337175936387243238664446907358040962139328510346820848820593171781263279803234040026503115624287714706097975912226480971955082360964089067484763275931211407329001451871960457191600759236330852987275329513233704647395725834739573606803088671624776382838790214291907326116585454363720555715834124833437172092385910603013910975015858921232725064657280683039599256360426314527195369591712132804052778450692058375712159549964023853677883862626160144099778874958382646215757807883100257452735125432777797637086577907813182086369721170394444016676724771579748418451731544715001288814016206580740429962208325719778723332374140321356168681020433731032294425280345791791869374863865612301340694126248532666622994016620261556807079172634182540217150166685452970377286777615139138941351271684340874078237648458105866032670558756193743033621674760002457550064531248104840099487022932823684764416417709577704772872177479701293798810723713531032332430268895056548529064851893960622966751526246490605291978499480561816585896929745364312196007046975991217949735081156452772938202632597526650695444994215580277382672425690781255434417567751448118980189254940559990726642577979130969542138936811746085011634276487213691270928904543474353262751312648245014535562848754546318683705922024483099271355578295168427112264907826243659457734079193526327552473864459003890442385391917336120593088486657246256350359279584168226987307504472214001195641738679225998247128528693285257673636577725154026998660828619682339645337052521130121635203414491100599435707084497318558724841996780266491882854010207068796301569482346039679949914369084042083137651951637021354155442231622169062736971116775920481003467147196742182269932731946121574786960087088689206551535636587971936190418828859359565238026953211782236802179747022812664135122232291063478102958042572193839535630723864250209697078768587956547998021369839073328594045806449073550348633563839628307804926579093420906540598246836647779459615781919741750333224912885327220480313588564301369208855384528351282742747446793159259700263836493825786104669332215271052967462711624931625125047803457706436352857879767645640976113198420134653692964262098448080303207377626265230613864581745631154060217002161281539593177831890492052955218967922781387130813725012409449332247594607793584335585470138105525892847586278924296826662966370686925688413579470700572114909009215277080058828849638035770828385702560431804097005880338693024797957881983327448085653119454305125539646465707967720426391262641867888011353412795032603267382616447554607340019552987345883693482491598902939149828764701103093355285179145762798923012366749097027867463223982023748944437402164621707857084157864523746850252065999335077116706314506494992182519994751650328741233875001799650570340099817431665763228612400749012940415651269822480183677119610292624849870515468436123068132965206141359224491568747963046536157182864850507565638161918125827188539359056330576205163016715054369657804202670783905465442402580598164993182636611016674167222426234396800198449481608535109040698345374463896850258504604135383276328926704810525278136354915173943357455917786594139506365290835460931348709453968103122435886973086779527061999254046291273114665511111692480158662178464651956872754397086681393265171802141650947918538971001962487278157913128156163093209048267386454719249259479686864300719684021851498100760147177741578935856750423831803727470991001868733440562457519238669750394982585445400470855753537818339225553278604194220231288085273812769677716278232851246597297741922011997791612446449613622630657874147426168505190898481821792625735734105383733436062749488582913560424827641275291148383351565030523145473380280147278784585913871416121202852366927856310546905084601859198021939862019082019651319253638302882149424029014521064296124286070755000151093071949905005822125555364628873152330503372053623490569185748864993939487555136068141038315389922192580689971588881367744335974233146203414536049044277620917792598650429178754798238277031340477234205047004018379459083595134709545380161510202319705176227210050612667103659308269666135860852124974498164880533353856197767140609560470591916142410151638288386308541912572122417726167773215012985141361211860057144712632744128472163708090678891475998814702055544349894732030345147344324660457371827079033401436516172438375670291285284490186929313447242783612264589531800831573052088007094997880526532779260901408192194475763677082080023388599890500436070975141174336472235051623459394190748803593414435241273087574147656796836528358112672122167671784279432144973947303761926163208031883643734265030947046971644728280381014999304560853020756431155998279405494021820131188423214309797854905525176170600967411167756589563502166432027221870504990446128766507384017720981639939920051040999467260506239369317290846581585580239538067997864520822941880195443079956387349119250513323393419138482417571748341675101247348691376169096729144966817225404646322664367229528614386882282820475651614637437447961921844361859054126368447029422704071195492333605425247275013317334322040585431493180865733645050666919422037738467139908254485865930645157182739187237283417940139717515707800601104659571330668247855784493497042074386620631616641603524587566962039513539116155043128452967274547753988808583729306599840361755820382343790446868065053470675485995921714565813889886004827151272163743856071998778970303328162664299317789596398938463173031506773467103241609629332111857714419315211351908727718580147183009305126584193278788550340475609627916494726139161083738609437316671812550916014281878499705365975575160682653820192592215062701592640247800590497614468825153276067770520274567774575402350806467845797862035817892237147380213242814829154902614513375702683722711873739208323636001599595275034576424113937869547319023776414913446693612673113561594415663107459328321276355848004671400550619214720516466123833525640380365063013781146435435705759931114753343372520784646646094860057226103307028735549820509120374926307858908087112248716166003252173806472801782365967204081755572761717583084604913451602705757587055587303006309976333980180827960895530681876481644127643625002860798172878572200620830783020309520477043916891331572643015943481020625653260451559175611208741102976403304748937800404122593091095982030637360572771983687346172869305736399623453336139641480564078940874443270226509964585267619603726925822670399558775095381040226968393894420097899292455387979927527950167342950522587249326831445135550935025432184111121617116956984971840251674345547207420543267932739648705268923499248813407462173089785163850211375787778817429063846675342792730882028446785260947420190376439420782483359650173088546946144460333781636259623712575106793173298203818954712800031316656926418704851076853203057383011981404838923240476864029696189205453094150020614153031067522463164439114354100088049362506072468571409458589064307384118986141864308599002193713171554388167056644275216993451558200309781636152105123348011063149472097564533237933970898387374531885053921804243608914263885419507809499461008662585059090415731011814711555223929245934589043122433097352074247335702993820559604300844525272140376740224053235220929959837009599377330829886133528632841268981225045712714084389552279503689231904848843003385841954343898822530979925718406115569709765117138225862696897748537963899333094597459974852910315973609409512843042476719443863129318060417889219118193249398142153122376119859411281185045914510578358430574621438505139058139321717412441806881362990896276139425457098148677475178240240368733295766691411294206781865110671402452604830255223054347094725034998974297959798803939814489800443997729971789696316279293588782847098924391595379040552041663769289077056089392839656184687052343629502460151300301026634864076441251194241779513248046376692405835886842387053944119800262033535988598614179960306683724300866504755441221428882724067175034909795095805559814477434956103263184268934663427469772256717666675145553398370408542248016877806527229685366411454367895963714343027979439252200884452711080103331793158127062102643067912438580257026104388162623127992036929214438525110184569864035792322519347943082252785145526180815348996654782731986390578628849365761091113210077573252090126763076943842689496665874593516358850893337906260801135424168038611504614327657697171606248816094173250735677790465271668240337095138839306869755195592980722920400615590878498661095115735281623730957246566114166650895218233645298772582090757499451247644298519675094259102708411191897616338632306629622372409379719907587367224108494333300169385522256731972142358999704064973082856388958649516472527205714340530651812236364823962907248379679682012919838438518568793816959519167076579175402161511502443672862317886828770001718915232751888003750166481451122306853647367754670995066187820146523380440433109525728464685529425353998172813220542473458518831957463528936352897561986334276873167910516394526698079998415240803594854046721946048075671007546981340786003153398783704424808851492161017697457686550601361322711023736699353926281595118304339907020558694456418037344755544560896831178109765453612673099789173624381090177987266927318257395194193907171511451409514333332339121737684282161630541429208852568030018652854786093260436496717335650904874177340472909196707151781426608690921378315580276906604653404568224261771128858355318060404819459639097454619381757991988932711613522050426633697398090571209787103298085523839005736998129536869825969694011877840270619312308580433309329093904434649302050114301416425199159843842131131436534039481717365404895814551021453350836326912294667151826073939991030720991713535423401530467148302377499839658878161012172301832065889543255751877230514647138093234136764937363002587616271795760062099653132914701416078180238040650936657505126555718294053505505426652564934980948371731596954964336637999258951538390544867898961447513574908279185312922214500486935592201602291348683817196553767509343050975078207865076858773997665774800186123045438845708610389469337633059402020301732245077631075928697280724699885696523373085755326054097289738488840965812317479453657521225308425024399103622239626948867640957639671580447184609790149880622917187651953467697227419460904546753391980968196494656090395809509110748554756492031106896858676354717067246595024729601890669285773936969577220376999396567797103640222573439431262321092649752183998160185997524277302779889681417359642277292819406579786249369846686435037383820546289133808397988286023871256038006413490270928823164858978076663316457700587684338173471089047807582652641746854296523310988459108938716356306505990175508884231997563152574033450063266714245609908843455592722071644158589146325746712899003403013578316740319442907510425739362824072619420927047872812528138611029921985941676184790857884539562032412462757997212732204310105506083769114399689922068081860321696283782799814739740752222599280103292679191983791560851060177265769406524811598258795616607345289667431044356357652655662703676927943259655030881486878156696728521155290165647382424699674057013244944814298430919287205752225607320379484066788244469701317824386473882218270932465827367240808124504432875048169747670395798368488841033377908789207680716171517270121203985544604778708047935517214119674825430291114760414809855351946359651576537404019835668643122154848455923861522779019697567883045476934079792118249088112562735462612493837188841100997207193319515380975466803020913577078562654438153429014417338648172757988185983988719236749119644788847024877470526715276145781832174702138408216124914896509047479704265430023661542688074475683736880990074018516073919797649424769839620171875025443551099268926727542731636411019170886782961259608662245134800913607874863675019358453077235383561979514180104234017417704378959679708898087014746591001005270282953451713031797411452257419321106292905674945863469013169754867102089878322989734922858642351585809402244836969181826649533527925365091566856147317010562810809398129452419916901800486739923783304917533028722032189447312259875527646729386878280614601579039696189383704387817349756608905992071011818973492267389624566986339869457906722395654211955440920590908085529388772435330420626871756124447357549668170359790239226628336771093954991903096883315639597759879605272160130555568526261943190201892608967482397124710456872593346494530600045212410013270224053198187896650868279006925874874662890190191974333332473761837641469199380401254530810019438017211975091146089230599740239813281499833634702339480887820337846484995953587670235635817342051734187398421354350697099823699124089864744515831061934360029943772574669519908320854054579730904362651420648846299010061334261643407989303868695210717107174224973068788644020070475055561221098773938379213605905320076129628669134382607336908205626917268483326845800231277394951277697441129307308935529892564876456421688131399835175028537426091135654638131554020818464367245276556983093482457138486182356468866544754586368753394998006102767949197837230654626741322849746807043437368192219377592140434637392032783136387674109332539416533443099973148984563889754751643473562339232498567935491075654489650494917274935622132550481019994548907950816289831739379350407051141183052939629705503130199041196225776389591522169591897764557449425500895176307349793495877470227990664871603933797175473275336553143288961616782103293662255532291121633869310669875336245141447398413706403193840054374938198706986479523513672980258395696551817166765637183043138449293367863672753161801747344143041996208110344834854224961357876292321677918528567863631072433993102242789641250114753664168349363550211855565803812586431109725730430249314881818470197786665040377360555360144485666640487152054010711219092505212089813475163551358574819697377106024928250827349874822788551545239689762224266151225101584732785003791747458887821732908213991811363720036211753360497775664471017040530350448403005155489922597063645857007897270803319938573890317834344809283549046267315666269126632126143615204331859814742251811194795059079115807458762700404206910334480588603051649960624428643414843458028840304369091209950680737141837832294037997549736028404006612170531824212755342441579899449084320690272031677105594024295383852315655442603895218472084467676123210021523945644909238046683490889674960791366062060278526881610788046368739981235301015921898605854342601361866695474586563329238156644581362360467429712278354812699424050759719957503929333650282055634064581934116309146821133828118513271515815989963968302106835575053849031044058056405759639288946622552220109354405617057010108669388606098454649186827373656403112604093824148157341091216923924466721671473156112538531339659193342914442105080934552669149956195152218624452707103433585344306536723929766999233961699207552022416354684435390785256085110454427642814808365570532332283844662123326305051411688799962104200229660599802779690558867013456617228915117697147367505796825517178059171638707762288376839454211353785599387166244089530229899868083980751547605286152095251578291699182157184819958390339459112024215463093785512646280744873669077694902420024386731421584220648471628596752874244415061462778027965168705954209683036476337509622945818168217859131176692305620493326036224370723731914098707675423126776465161794031700798025002375270397274036068663695044615766081567246338537455037854718298559734270394082923391136668474120907812602889771667373991121831376801048939494983115779104802599512598311999066083569681392038830001123273296753544255206052677018494545465697588830503831010454861775474176685063270706976350020817421697780996643994276149055017826568692102658648063246932306311852514636778841506909615972294493043373327182676699870458395322054233580834182297952889690052236422815364068399114372245515445557616180802941959547285871081099011689229812295451128779643627924898521686816484152735362602876015015115715150551176822021546695580925660088870200130991093826361030035337261329509022336313235726495909281460286672965507197431147448656557176579637857592414940464681482048378655404867358852878350872722049518918250998604650213708145635355044339352165554205880311751222824454094257274264802430204448439003970491445371859793240013043648829512202576349813838942089918590944442904521564889658827060410008865545172079487161696538789014505226421430563043408284046550414514725972804004127880711251313339062417872710072455600474789137022299946602954164858305881014558613004108768562314759434440121483287102429616690063266965730970401755778784052236096181611430944829239588987490632874467535765892643402801925452486877712150073296125380036092464652002129852376015087232952992414149357731518799605383322765233063778562081120322695308085679960217195771516713885855768061661896351916761637572356398158789668207786546136573757021175148091396791291073482321613327427117315464944586993528798256866761477197724539825932016064070571662954275936685870212147465864575346303111414974523913877931155986544048228781934386457247678747719124115712018576581290665623715806385079544282757505411115173580070301514163966404635954878911753266815117689901412082159193572788698818359627456600289213036594656011326942337285086813944648760451791851140704794816531693321849519641283763691667270023839363618959323887818378880272787706467366344584236912711664673937917255301046007067412980124223077614893624190890008605807640821703194332208916944773735782821194660797873687124282910507968882342808779845464260962370382445831678285363424988443958071208752263409255668803304027959253553092190033834005248629140573543734334968670751388008464724491605901464729586484520352578916818010373487419654584540643309321925760020539578927330315479843578490078740757973066021781730060425324603384651734528843025207875572253295338072166618081686510522420419606751045086066019944104314959933481136501220303737034912795409917104375406226311601076048210341279524847329955980831254121414919395704734504715350468169363217195797688715914524848860086254360797220490976201136525993063355456505012917441421297128858722727990545776579923268423065184771911829271061266722291011696684019984023680426432460567958371461916163662013041983425653637751435840187167855866927055267040166257001903247005062433503672111080227979927337451917061808342250989146493085130922000877800667542617989837580883565574262943778646670002964223204467773002764927950985677932755817366932517777314213115664987328484862679399996888943613794112507299648896941887620251303255846376121895670615895841307188916920006741486947229628196197902210144718817979248109362927820410170478423334051316861047419598402786742704282210176084256250351966137471705809808035632293610071352870424793245439603215824585007524939065697816017079223020808866397187746687395105266335629478537782094977823235244286099813019300010580705393305500178541786335030448784027256340512683802204301138693787732749813681787436097814691151260425243272234273258773036350093489045576990593127189788647343590090615906066286970471701520570472054924837173470186818134797942950303152762271589088097917623285782415662848841428053358206783773714439451643197255587322021783612919491026335134239248167289581266523114068426667393806344486083539294115423449500535734500418279715343484797411712789894195086220015007430539304335499587540959627212957087731844539556799108482094200245540384778456479636678959807726108802862432538900283333237431886944172441651544917373728518435483201759849369282431087128533501682925905327303229732226071574084194068381956694702644621976300948773235113743756318852240215615341347199029746510270970477735027065435639113835558788207572766861110862197099375863713512178377793948101744909786524121072839002275906573634381166050160316515205594403680274875698631477131595713208753727758271900069897102986648731243608532012898078059018911659777526570912502914986877516439889683341773882459273873842930245367996020687163358593499749934932192132858623308704667309863996002522980907918904051188934624558918901300981972819047091473970798777277532900302567776709049125293327981662477107402428107200707834736581116343272309054059492846152504590334718911939757499823537624080762881796934176479108508413744486854971381335600961655495504907478198470027408267708962953560811942461471504207928309351120751591655179114709379873822313766031034710287194880117808415766652204931645712767073942002570084105431401767283901491024001274734400081656013993926259638255335858928331320928643526968545676639838358165570349767477497071872093922827153190099462810426312043406570866556709058397806234511921049710318499449146608128451317844459331349046083697893327006960941374421761252325626907045118419907233148231665037071967896809644726443022343438873648197363535774972855872978380934733673025462941453974376660251559870329505825051692778352530411995506543280821276578667443104649080231347081159597763127416740682870037646894418188654315510005077540668930010411027184674880852951513406489284109102877685712262468790103913526737596603137271764601135029209913212670350887180751431057863594370943535278581753688588910254478566911016335047126323335071143405803730412307010189760592835699400295780028920405420187686315188792427543022064036098197152776883852969697841106217424115271686698053609790342027007810421587808443969973867257317269176377356261558092327615015959420043763401576365420451218415323781400216738151900231889697682957080641756255018052601187759802171568970885846900044124003006600844839616586603948364472309875253613315580000944706895799074768385262095223545778921410054335745234518231992530106804477242140880807327581899610013653855145608891794594614892216556613803927166788945916189681485253801365155873804849962043309104875051296890716799976105622102189764423019541651743152360514132859342965204240466915478923059747917409409317186529526368719596809136365309880482034075836636754767456031959341093784352132613260075635835880742818251556677215887706220441088181180060582311427372700002636320379961593704670971177874500014607144309223079085781243088195520447066714050828505695236667270042415139994026524344227221347575113649916604318073378108374884468228274038616031104042689919339561395567907915763707262222225294976743975164536080430484280048147598349691902809857849579986307792024366373089235966969524470810373054526770045164695266129889805805528774735475581802139118008572940563084953731399715459594851067600140955107138450630805940733840600284097526129078763625304911527415353449141397717089858493724019962410733129513556507790947692283054280831581043049654644261657796720252974572046562969907953500714178016103569856206732628524857089895779079840928679735593995626623590050127615606025110780618488844748632539830519706580547593837644285685673429896829945822739674435461734261095242016923967621338792341809350850807314185128187005150274277888312172824892738801678304156508379306246019983609470667118862948975840596281673545143370868123057569881980648523977498999774953487358700256872163373519455209313277822213368716573024544390870486126463952962519893855226388681604286513544389092907980074003939729766809078690932206071768920151947418745516878564659738679609801154934822084340196506786002705079587408735182138811735694689089624185855707958824619165157258622599898172662470037453863327636094195003950109518523002707579848446539797167917341979603004223760256175028517780658436072842424715467177760034909814169235226459480779680697269551698844259502091769803815081663895742811994564736233310881060536550797691545468476598172957539016517735004292019136036625006143996231171619673294685461438385215024233888859702508282357608932985814316598645273954574038585267686297838483279053252873135964084071118744144751646811947348331374603319256488989742398496962833240512697940870815387453400457367377496299515700716042724123402134626162009839532177478200344384813543871134202996343684664578211245621659899995812153939620486515372400450993555321043564252340694503450714590929633954541882253279609069315664974038286905331460858566072893926217192354328945560690371516581258584183439890915966843139018408660530485470231707850819906944262416541309358510104250293549911971146910361465581742897480109072978205730898803625179640717277617499096529274293859953263005651028565049789054392144538512662733590892354646403381306065026748814385678491287209552061319100058875918883991705030931453697482307252641329510669806936191387384602827777317205954026831485948746521467507180592733937248129556613336748271082467584373263360929047961200182630464495547375367189343198094517316593802536805185381943954823637847090680898678041920871549917193426728129711712447849362054109531195255657446893215410636842698357638608512303671237172580625702320293448273367898257246914440736747177509383015039715575417288817763534785170438812743560234125952107294610850624719542560173760491016376295659203682897398570348538064951674304992824914042942603379224676330678349193964152909051452237946337103633908112610397338383810449335759611202019962229471960768452598676954310946754637848157581449326001875042730451204470465153983585473651515253903754108053834819435471302965710595410545479872685142534565755221390471543140513436647612960865847343584177587471391932179607706179119416241844643724819204139938726000138736451294814808197065299913183182732514959590361878667181833808325026656575606870320977589159953759770209200326624162553882055660356356355904152981102078664326674507591625737178300833886079518310789598910064757139067458006411948252864287141324779367952237263005342336985562210727268467906217518587608359030260612481037520063990331415684799978555352789456897141762795863954197403478024895781888327583772620875806153318731290981174080297175127287708995717871119417654680856197052720227617228340652030254562706863658715916629418823370015406612350040122687607797658961054705435000157324282284941411596496927353873377315422822447911494957058155752164845498535709746165128954250514710314350786839831290172919109743180724404574378532071725298183468683711403309378862509244042080803809190489042885673930063105209067368089083148532131916431632285056418365633519773140516362595973063627280659167387387409924210498814255263979232156615727580296126005591644270327698635564906464262585305944656322066122011217288854332012501180916995678853187274717363416366871635971578605827274018428257048486996013849602150680855979105659291959349453566553231557499721064740271854403612456224421914846450128294484574738455564430304505393854408453027694929074412800963211332938787818349092789521344927934388331552078192235780052861180426004032617607753808503938972425927659461786829277908779447595528806537093407117599084459573465489448633451201784184553263099821113316880335299640077538653918154420847871094735482903049580101223125044682561088431670813086970120984455440252389382599322798711253649377453153785853737217172576977572928928383211406982516149739370631602248955205918588879812330396460585361487649676505131719180599783091077999229803289008017234279934307308955223961083752917623933560991581528092224019945015265015109421185963946100635801029206691683096665996922835805710411998024508369242256572730987006984093425119792156787291540405547370073109854764581318872249773923731636189642857239965685300010657107816396443552645775195544747401061320316134349883065491982238732460544574979007087290975776664666651754396911737350458358692464157714063948985725394060326892898388464435463268237414450991090634678239771780086208703891469025735648303520403153675357443785188632725159459452926896582506338071506388309255203364580515416484027037778769098239213606441407885063288861448164346027499939128309812352421524063760285341709245010445431864667572224448034519994963825785643976195569693555658989967740505113819653247278915154224018857384207879709277369985579475121715942359987933610239567256759654404299909421729208233217457699911556782583901077515247792221097487268242909576230248372883120730025867972373519275955727832781900605880461801948228950805660008387420516894675356288436592928047444631856597917561993708288432544858066173971437273781781147389167428617678232067119322097125668969174319740022808251390008948311300669035905997933716819171051252065332087176349700911968897261064102424183694340810388058267275402642949734539978991265815099703542804773637772839488565006920958591150153207097645518340707323910784255819590735779906966930591308669469496176190120537832506920193067020368790368307361517892195077602665624204651578415734545035151655798879940273152307068804976968169128829769980058207122210394830162763575944584636488281911838140009795464913531886941754124597966201307825036131745682378580211421548984765618549846531806811340515774343784421987090952442675221543443055974535324534521464606216797560512556448692920074263356444235860576851912174235275956559377786564759426935038274538160640669054031423648557303728674016255438252532303756585256238077032893473054052894651594766937643361525019246364761560011149504551434149868746925435625900835239853729123061014568269033761664927377997063757661133893062024157792887574793652398720176989690957605228059056983381828546400698141297768567614265925685028846787766198672436104856153377782750014939611378061112817621474377070905057491567010604984098676399396509438755527928947404959775851744218905191214030482746570363228547758219358197795297314243766906317365563586810600555770695626968806769461478450858243132749724349762025155714366300142141366877252483985622413909955547943122711151374548214269946887117807526537270614193042777798261400250783216653531390600195965033940789662155762361829581549564032373241287059920741965767802348620612876107058203680347359314642931446045831302106052791000284427412702551357112411354625394893900243082336886500188919291236866003612212700560952763483126639259133465810511881739722607719772007186863675049880722484211607683822639195965568408345407441939519798871914077338570485642438715424119370495377125908330685790882599311245543465295468857537954572250254126922357941186110533877693361268948992247406848231792788317890394548056078861926847099431809151193066159756184768398538234835204793766150068796529501641848917867356183281363325937922978612644445227028465886940307673488181804226016037613246654840434720446706191643790056019421163778854047196532167333051991556291603104356791520677635816481478193710894263797408669035082739132708088072164787755534579457222166737481500276470229410629976887168602562021831227067280221160620386107703336771504540870619602653423856361351917690571758127682672358045610218132889521735001029066392774407902606704409268187302641452234052627079237216074313179378071251278053009644654568828444471359020005144835519851244258321348835654775977292837232146804142594833723082311099211150211091359250832036377824825822207633001513386075055165326169797312840616590221592534456850571247427673540766536144342295574659731734355519332839445094832254768020339149513061527716993940073809089255459141124630914014937690850474230527437580358797774820440858664679804582653847432255126425638865498658140133249200855496327738328051702003881728413301213176583501741380355539159415330177616413599842942062876546073253645895425774880758859798170147617113318418446935483740673854872783348312076176423989811619121791420091941832631607318808873267486434480785604782314098483323920645189667181148198808353418052054966563947851611158610496945797632689588622176490669283179790202380586890716741396977138099218660014558529469681587744727993933656235836311849205335713850220534831066750584791925074904758775578412948646084715143351155202590234448418623387664827045552148063690503751350514366232641417285680745844364954579554217737196528949363958334146138851605898007867538798908022123782151673641749125714389631733188740557747972629914108350571636204111260178127520934460159727358561866501181833264851252884442167203539026567786000697433285285028069944314266665278653555516496971530999677749084671129656685216583179753388526059827020884227477534026488476994733255109931188440989606721750702343223238244133418474924600554764097997300660197763632778612204548631093157686073951596264080716110460789133141152000743211172192193708969004146116010644583925872795084548488894040338660781976082395773996958107813812294416855635089906968233182403673253388334203026693234860065445711952054283166411224809975635210019394896108622655513430984437086452496336191627140662147175403945362779641285984344401176595713279628075703046704577736634994989074604306662687465032381682219527225253719383147179325035713716203793461725076687513878593134743971936752198704013723227001435053610796678410450287742431388682329863463732429810125909012797336523728113324845070017403979540124717314524662447281164052625315586436281940407702866613147207205957729613254467284434380704319773643801341100642662059796166596183243960181943087765984398441632109138592728024656961994044936357908923479683000370630099386534758310408393417555361893101386777324377579167144786042255214878404309901095803472344972029116784872082648901074925054595828545335901443051402166417011220819452256762728799954804978639073787422399445612686093064822196941220055158486828757832432978909730540801787781335338735412035783563793499754348509159628099196376325121443009597603930762493253096190668610635339551116563940747957008330693564434569302691609229012596573720155818887812182767987848318042272589954660701085185841097495300657830552430844111155482717727342282831921453373158239880701791985525734984996990093576543754141985679888275644341842433903823030236392794048017927258186602011869031948778473823017276451157157206952572421610485985838102266173253238319953506562386825830402166473115487586958837483278574650605693479580606582813189251265013740724958505169999808774003194483850631359536604478833533911478596080345243536480895514329644033593648242947342570588942132695799760282658260729918647929141968423805652773973476057085284259217179256294386706456805441242306844963945195849929404146777516131096189335576831085324215148044621865347166860144618667602537676006744212926746127169109320627154121171776462305721877593003520563973244315891662423299879743317225397308123065063924666462448169372423875105677145766385066558680666485190915454561231090890688340258176710529775765690356527290277948782380785498435445410417462150740226464938123263013780572348815499474354550054642564835487544834973465183412139280251842345769370518089610208537860769066030444786193400819771156608666005531940691439734714287361971829047210566515498545060343901143056363592816411643773182891275439821272579498178763270826835123439881489445362198831229919853656043895196716849876932119111175494617159562484002828342984692473400466835289940439550047059554136688007459142432415407940502055884420808118987377151061785337015910499666013572897249333329696131603616105234481523428347846997779094591888750469861947960316668861567874936211259901287035276409137796255060522295171072029426356745916695464735215224873618244055536056378024107823179950371789571106690658643817869280741819823142959787142684446650295383212870310454256771518895771863792161651243767113838411306772972284696514403148142121600372421961925234241866708378344098271529358054398702410368612777896467277023419302002381753534512573226880019660686065160646892182275206971159694684126825886240868013908411185586255320082451472589141985982068593442393418274129228398783372094947948100516285733151591142526304951892397708824774640604298459205045821935441012626793207975414870172076477563560013799849470014330721365855468601349998863448425032003446486378321114512132200882861499901724812430510506902528788296789245431556525967230712431602070833609633460849865131916134058497141314748698141422748243684013323361060500531569385685429467132168653055022558516871161213908390313963750253572479291498194942008541006453676713540248199847418724269866666840325173376049492680184142336621237934764324017603259773086434324804948485644901907136557694244667385413170090763516239291985344275693711940826622340996286883339426449127072779341589100206134312306499185056047718777444676889432134717193397928684728923146960958444496411958561565514573532201258362173478012744437595733707449111571515035763498799900473789426248682115750098881947998499663330948768254243921730880767562447383575123257614997622724546440228604093956768409881436793933095067396573307480677003774928649676444759895461123769133534518000145269451267415946631707256436093018702772905413956250678241400656398854165165751207840037072022336499421686396188680517344574022189307969169068858673140621465843258616566533205475573596917641025000217115347992298948192116968860591625973780532373578785259056429306473182696999953489202270378752671053771357669238281167316312096343266282908791781781461354681188046417992607954074865127111857496357137004346847395684009498834927093453440804729528391245703727258503571193005571609538118581947573957576451308604686248467920754268507070955936477492819494256261132183030401403317360930534156308865601207586551379551661459759592887778515608312582431918682537178531760995028446996218999413483747990992997166472402577987975093783029907518856083979947545284760774266189341908346877419056159483471540918372331707183363035551689704347326696427344389159341800320566419751570655444162204186718825378167183286802928239991266244786186939790038469515009633464894561114594969121135126562767709031044855280445899587121617747420263436396318534336613871703313074406002692296392909367695479415506916487561811606142054029875292855429674502029994590032910238389836618972154428953289800903828950229139278419757821009025656216494217594787875298480366933001135945403980162553361502407139738464210191964856001215108036613219130374031336727522767084269082874392276685866424705669297579774226842206440020426540549374115029109779993807420066324671218216803077033257784203615675220353571346305922907844882171092537758802921631017795656440992888450060789863654714164372175573887113910688539512870352612553885345947376022337359055545786701277945693305499662572629307323032607375454845029794642522742134317368461957640477854844113097152004112083410900408478555419514512366584105815138675939630366523046443975868775376560454116005842037504030989223284558073099616173704569453354651061072128690564938009383402395813952119332573205324868382345262128275905979691623860023490728517699600824468556993610686206571725687927053010577080513699935077940084773760353106940770310565452104066835274296987789064363106399870270771544425600764254111330365980795271266139708933476247503594944644194806851891911175817511939140292567955439884817521809286720122903419210150302660960285917740949352314722062090425019860560714880498874202723371083741692783008841883005433099943954656209441172859811068871538306142557057909196463777732359936001099537561599159634814900557983250690668113967976256863242725713659639280060337419073542422910624974611921100241839002373766467880169390057460589702100127374131698549553212717852903650808602079788170245672079549171304462899196800147451971390142382173774799330279010333118307162002573237654802749054079518223587029993709438486534504428331867180345704507550270533270037177894131092078251421060574250400846089517530184637320063618139859933433048220386981902032646307729216044957671122899080439717189846465287848003001843910132563786492163914790113085406728781363063030248135839101941530049926329186969608900565264382208336368987848507882155201980028247932204881928534543331528465484587163163576282861147782032537154690460151090263785766069464618961360579926790854967833439199081187176144029895523240736664508471481563343392582983358533126871112474731777584634179872358624206148540908014813745441389061201033385225089665027021776628348987616036947360567883092892857908931937171422287320388028151196557520777800752205398658044318434667253231848639113641233596379549415740114016554288553325456788662409477127164160156380422749591486728926383341242050518440898545463678169122746256856593686536663063296546664363573912952382316541062947474297535851559896720633178942852504267898120876992411628495910900874776944516898693936243821499465172402562333811362882755174704871999900216885265330736661952988231466003661528107658892628262527570613124516479598919894321133741335870418194368801006922993735115841033225492704921556780677042279053438168475324938166420479344316135835705354407898846256396091112959487055751648603960940168717587878385559603535072376846848151239462133716295467091385060042663654259493879272813355088973866271981182532486099084175991275087464510776812886118391124274588975456220315331125927583744878394180316485766329336972396420595029532132226102638918885755887054124932236685903981590506669897713455553266142972289188792811011066263508541881939646979482269597490668866476714962969044082392660666151198531065183004656351288354488225970559497117778229195967566510941448782446296065488416565036982938617808225263934143572106238457816651486434288564874122089417066294427143811855219611223139014759753718267015519043204860291390235670595964471808688731249277934603856395803215309446529047279599712962173959349600025282109022089576425193536044538546053164527462009849647685715926990792250551722076395981968496305993417285107370918726067799193361930506047298253088086354423233155509055147412874444034173055972146388553773715435082534861846138539453805980825392316599793857386369321053585779715551033634830329120519329792766820996065325279830388319399601692960466821171624946607253160586781695831843676662285509246104080979947915105635019558293363339836453722948869195262712242954797293739464016774586206625396196073440134274853197792629283871428284738384603110068856147113093958703479024037987709377205117086912191620375245276434617758450405203007105817670909780645166280796689909483657891085779099618940424348286769467617705515149715254257336072103231650782268869434610198910570644810039061291198734458432298711144187087052852267471078106833386497508210156717366184107650600790735618873282355853599356501126539828674070369305052520472131804825271018400039136164796351477163944283480995195431787133479815910041430784481816777301694036698143534363845116774710021462104622488547325390969323161399750010816505558659205643123146650131942510531478485402008201566397626426902452405439938683878696118519332591710295820846161529294361342832766656790105659296112398974478777524966194053828760711921730959350720141264433406841522848530782468644061909203218125079115887735773005082264414876302288260031436810320973999050949832100276931503002502492763721169501957248942302165730018659837608279349417416184072588620244294775473070831691218979082070031034031056105520311130761399045748170918768275525851410271445648862998385434176937989404411151552789902217704824444073501916606522641713723030047076481395946630502466216562276612470790177840863725791127538811798917875562407108350760541998388126323584083800713236128656118290354697352045177008097354632450543742475249338257469588024393664172534539600697980414099941849690031527636239802729029723167165246259516291783792064443662286968888882584753562078155909982973593087765336632693356368296501675341501610310087676700895123381278681662733008560790622045344882935252363019056903549937672494039534495988809680885781839223086620216187920151913430738431726014040936727439206251706021686173105566821168408874682230171498210174379936162497980264823842137217331559167296327808479339535028109649807523616723981495435008148833670294463058551276453596397000363409740391507861363119257577269967318873339797599589672358198148235266892938867655105380441921970216851901128073780163073141544325324123668619918881282042617642476479074542551832415959078899433270736318977553909210744389771444616396354540906580929374181075222694178446526460731873422466726682978598404042956637337112151978426778886699448284248323878101911482611143585401885207181081863893258076154890497611296812008580804069098349934704190790585167191612147829897561697041103320461659797917069539817647763309168990966093779209541277602008383983445192973187746040436265852579583787739250238682131158702689728774449741672176402330352525919594557741611744725866896774983799662846829084189362627773371695978200165499857808324793853880961578608625115736784509121386706983173988070709120639119821976039816706525021573792968908188822519172191445624154139330195259292517001201438709717178206870913182485683507921475818602299648339068646739921583843061085603754363354258761575051023267198389772717868243573061353117867568527875968445654783628310215904530084845273503763216182002497450436615558538097349322438427900116994242646137870233743945084716930658983624708373953063520421817276984358249644503661505050730102143924413567127492198828189400670502649585652026597882101659983077158375858068416351586879935258156707087835295197188351561637668435204074486297035374786061846289612721369378804611010133808077474610371064176628073951936681170382201113240982322562811662585337122116787375491506836970437377102735243526380268357918996982353373911502143919783181831893151253813336675414470171570924991986137722096723121947808621673952021745881282680637738929855232316496202302536233696856764792417163365364357134660459468196842170477531066530410553922953378624161845306872456730255561543465439540428238362228050401948916018854290900163219420425221853289081932462308245064526064235363302536057640213085122841252530631606724165462450896731248371949648152089700975688532266778238016466454847917280960941740875554018429146120091560119808401622771497734739621685735538667311686577434177361505603865340250808790029499832897044308732664833826054928229151347766127552318466620630118310354978640456352288292820111451760154984195764162028454327216882634549294877327823642384823583713034280687801860191199117089806789933014789304572890631734363060521297721654627911754641509301478894578352975394646425014974774838765042399874850235946541560946732287848690312704011493486655305730439932327005174349955482600525274347742085830976577154849709227583714828437431938870372731238475390372477250789990693876560862769151550631795238991108308606519511419967621197995051288717054567323031948370394102047702515671602509181033478205561576513896558107004994965751737088038017464878785329334547168279441017143771099726256966354908202342395182774751117161488575158025941001663042475274284702310918054044088483574779358072403826282521449243637410938061748732929101990364797846006704006981573821438197178882642758752301953548013120009922537259687314641709663962633690004241483483215180646615496739198854035156076635155251770497007839973194078473721425585781136050697423598577809651255817882089765597212865744229927496562276370408771844385618585069068383860992770013958770003496137814165973757232194432102508301643771629644641151529353932257749745010193356081424975532515678662788686197123730042985141754268665948686764584493237898491155359067526247351018673706422981941198871137110820564081920975178685743186016967157564988687513925811676404943068467420461539481202488429336938217051114314454131374691469578471417538767507853252375355842941031125323006690731389598941550706295122550520888280219869488951448502879511157434555312745313889832730221906958096691452322738156948901121063930296235401132987425826478992566129509060583153220916680236941187389485208318736701768893489703604804411906748859049278775060931215368516682614396374020164450085098131590022201094132019716614082116365919757575267717430679334921900429731541652261896581236791638812158614851650236838882870588660770015416094734046223765578548691140981838427941940221434138361430808238580649254764065417588130242965777082489131359822960973357841763030901164052576097977462008015163226250430252346571685424915828306882172534774363294386608918864322885165819290439583769808028868854061903701784015081951456591599651098529176526995494253002528800885048498789496968302870273562040541304724205196673291587597720133480064386330151540516354659439741276649897406071277174326115725256763301883140271896966425884441515631695177471519255966909530750354139797477883206669142799625473880154944535539138435181121405354440268575377742599502682885266192490031792826704729725265500792635587759345483514629629608273404481030913177186702606400668632675467773643604916240467515944467359060304023955678266266969616830796851123659547867660426566345260000962235011440014289387521143867445684164982048735067497291583136693821605567506780780352050797128596109786764510790460419211875470843762583395474141743327654373677635247175026892438975711664337578556691637342357229060649825208118595224501723225128202624834408232923273815376959405754389922230277838794165705452003084103965418313080545744764796187929196368563188895422497258429403741568668959370113743635187306387093167252669193555202360780137404787149308569591964697664806911898579407012382570836568851296331934192870290571087321435404707239395181051789788303141402646992177774712535957569316123219878567827107823100299650725654592403241984016201697620157363103568807072414027336138958579194964004003935137228212152319926191270272239807472334664322506694552555735869625390390145049812830336463921298108526242053230404914312544103057341207631698854441740135413808285621790917997927304260403680805195753619367329981276680666364236467705639519178738756925679548258567969803901158948594810041579307611529309373656615719156372518560278442697297229097064979543451971115282977157317016549921434863756929458274965769696617777634964376752450054781673022460451292507611790053368424888874996941256272760240818441281924900203474037517723774256614351931752969213579048472933363470277471735296091488610518007450322476093562654558354317385604129009086182212150399702772931240611675080431073058028883978921523333303978111347087011436590196908100918487431394949807965500629306915299028462175786911619848211866076554416221248368477589869800501576333438311867738827171350384779923682832636679879619717500286388698894837332931069925791436580577114977245381509150283950516105748813154902071778059738913773609201477077370346357306479547573022830450846694409240427849635758910839186041827730870653880576344998299833731545978780388393995965678388146532131580966521602114814512225482747784899466042946723630960763885659701456694675290679759195863025692457143778965556508463095504347631029373301432371165208216936483060059679828739775809430558533574657786574437075724998971100924023149069826747365550167845003025004383474845943465335451674771886248386243216151310808825247932564784151831059773562759470388529247459664973199194384336278202514571632397216515375679744041341909596659748418593159308692567247277494895896781180518910315447358653302981198517782155114515657199717845945724579869923948957608063831470975688050885556892748527504528446304374193689544868460140204313988653825788285591020522765694654138540929534211884058112653869147389215483551796038429381425842125843606232049110926520583371376096688391185327846439134159325975551874277152641623193133762802267879346757722781949027465880477138960108059336629466335332018249522822341701580633996419839822331883892449807438154573349610209743341160159820444933562692532232088728811943579711813234776030948552086774217022510428716422397353135818328537160270744230527676044946504102587320727292128000997411661653277380097507675949840193633500972305019170213181527348921281621820297853135335107571175104796961587381161827300823794780122149901738240983157104120488894134530532082564209540499996278126881508108483247032850323740884384444825375639045999307691018210299243589155152845123109251999012956258253208959748612190742694639091701982309092074715212834382348030582495217903000749597391358791970800917095096338801777847311468383887198942637689856786556102077475751892042059066951093303889480852345880495359657561764923562515938865726547701442616971587883705728080383933042645571681916749086731007929917992216867672899043427391354233606116966092472311977825952015229414132487034014358851133030113363802615650913746468838356203689414375737136667316444812732914666891722625015115858039909921696827362925959272138960842372677904149792523260640291093497523224101543205714720464309955039269732761048863281930680024215239203521370171663179252065822067753579182831375593458811977736121497821823618433235212025816568185461458118703477223502138053268587208418580396331046045896978771111769807984829497391266757266996879144218159153998032152074962391692012157202222752685315806848539059727129547956071832814997113949769223585201415906315929229298714971251818870980493643666226830835024239499459963832809653201805009672406316300461799655605384805739435150223916983298264732036953807053121244724431438487672900244554238284967615582619689920870119693849350689984601299119794079753961656694396752302707635701034734285882378873012390894495038697235301071853451784313035953629322857452449466226290666096141898563761769192776026517968855506842056757934688409677738022386074061544078506609548073774116428831819831846556074681374972111995119328232296272124566191129274752731535291527967158920584398204755891910124110112442213050286310815871528822033503230200039423211076234737950084328590956468892458360969208308151666857011072232272210379433934553015879336255796918341380055500050263352008585954361805297130307161977070045096874984264915672474365401459855937855006235847227034176134958228836852254761414809623088727131920364422208665329786027274028929085495585743700420894045439108552038727351774115899039178106990548133046114346878827564912998455116756156765439572586369507203686053681465260415292603399448571558711489050243137256765276694072250643523104794688096962708540812864181502069497274033438701289367136769994779987044410307490727453862123004925128938358999581311407687558928409159498150381259694769136194771880725982823280918499124600710258377224467966216597133459392206332372890924134503470936141927443090136447660794669278188291190963153024650135494800761186572595628994429985845913153998631786664721222797503615916226545281606988106382456054772121259243846215269224943333062915343478985451109848332692849088220843300574274239768210023216608786638647551893672086941243400338126073471237092528125637980238626285791192198846541473573641251614479256410534165035431406634359553352510760004449672774654433287975362954827941695411107457418679518397117129829911236569904510676520920586633765420803024814397413553273423613226500123560131055616521834453576281605904310550551516265703090699998579955009090508320225907000962009624697368097059423681256906646128301720922356098358721613775192617617410846368430976644508645914515780139571524653879983222486998384739270793133852532417185232323596958527457890890588971474667081882614882858187029668602924534569930124033696270494503638774800134740980029852825083795388457056493453796540178523933494872710223477541027026809132845729440106588441363969242217183745477340062273970467597267945285930043863187664239065304855630892629870987696810047684979490718501227189057333828879254760362914206890247919888778929314645941642031516990935729987532323147963431217644469827086097656671554489892404689496722709287350355855325794560064729133793032070977909125684671878450832948826133980567524658911248610330313002970505564935819718289259925724962800871212378153794051975004388750059311419011739431024235990352131578744881278613715154419621200252899418047985486032471651131073462649673927065993245990954611772450188502307225412043639445615463104691534305172736716985182213321374511893559716599260442600006197004622852652974165631433915239306607470742123804813839970691712134710210140781180782692013930025055339589013629401894167629183205845068805301266626686863114124079984381621699053748065809616871418694819901161459085168041974657638715392280554461402061668201103704864450470690573181557426959191737225730790000277945342314226232222346701549358937028743979150108540043375847411083433568468318070509241973182102614445953963552948526544133721305926558028123581820297683264033090767584436713082767558251256968371012858110997211465650607896777019027416873976788776842227970550406359310356865648452742214086247551091755010372731444908734848836466078153782136800382934693006299132599606517042419841261199709502513768392105450837846051309443188717560064150496180198174900209269685901151290975516020899799993284928570540290267157036561675615623875764140764254051438024013380953067730611144521053459727321520615005164299145245713285315475505887434719824815391243400164097727196972571518715630735524564515094423029082421791869088927907533730660720677693067586640795690302723071658596000774096928201527481171351359925605244150174039443823275141021149276716613169724370908697307614898767157098164650432628160200478376175770634530605599253364905620546136290442630033831631835603853342355807935182849925360799358509553530058790888099887868913476649775024154178847913999981602545378221585609331360649957454202488554171692041960163702271101562492400279407018760908408532004554239497589407091438991224885743409908634871763090587602384341748712713014100429081777674217552459570765052617781448974782765457971467761374873715846384087695176851001105520799277085368472635350033649004613317377161477608856536933353988788407127473920525545717893828996578378225298266288815136396200733415465314397423836233376107635094980155767843979629640783317045347238410712190230602220034323410473049826638040562751429599782749735167768114484384513813349256981514115280365679456083200732293755141910063378382453344835166633559170142753566102528299022172557328089304155437832616628664286653782902976651746596433400271140357672559007760212111486979933258383540510631483716143043345962984866532554714782650185626433860872538269391217339713978479864436136716260802098146975991205773833340817877345262288662255811420715014850632382359306016629271296920183534293507901896156647724646647817572536556879458471241117840042763002609550835204672311216060100530072431726641473470147769780474840558764975551144753772497907634949059680996168428829903717540143702148248148354855868068782762808266743499858137733309217744912601659024246316592398158166706211652736957084627350969162848866107314099486289507879764653036849332865605030407756633042121330605760222385268802719959416542938792514485900152855073760832853627191518486865104112779031829246033922822085075148317117503210073442831059737436868067352672825161581754844531882649850153473536414326532606035239144782263244965891863014866279579841317048251820317355235620705775030519272403176782830514399987093639621043757314381481876725931845136868177962852561962727242336963805048220789663720438095444900031986279933226911192538050617687199782437599950396677267333224268545581235201826270046284274680968399787523213781987743300145081049611500434004694566264594038523325739317024056838704054201781313476203122239441972860265460378196060488560043769391251453650130328052174788738891202651404452036846360327574604938588127801649099546966945313678558332970251655114469195417703279146700419282319549601963482485147440428140614019544314827741492693404755754375961402606595025365329328407940383561765353803625174828738759611530122837624092929965987771575927382537670447219946006823823991794319349572960713748983084688123651051098097782392524786350692166964894236231433035986072731760349234949032598920927113148969700417228903978852521665308409055314920249151377391179472147480801972531193874535576402820563979797585129928229561919569458092654512869971623787533795606400600830039649593291130234629692387675130434858757049985467733464238975357108303972862705842890904028464850436060262385304621250156626235161060647423659362524737519097908532234950275125921357107409116595186389620694464302039851073622778333282577855284773416604882924397503063116818661812781429365877391886834413744536724387780644579121194104674161621228362090048328763710677980253191038384762148944954318680044946416569254311519315261026540960865272347441281592711265825804073563121261755454852001925658947284491794707278073591672317873281878540737618693171811597510278267289700310102394107916947846565250009942872524004025741733910448954526483572497928830829673025658313678888493974519583913693981979693752003599522914304614587024533526537943252715026792753900694418251574594497519021825379914091956803845487542259619842674965027660238344330470698652561247757388371806941017998104126916902487008946970009249599467309925283172018514946392912109169490812919971051723479643696451635997361240706229754272961608334570968599870035132981861405243620878812660885758901782319238944433285279221401170556336507150815982274151384956304487734376204318069800599991238301487566319975087811184222284682504364284035187829303574678743711699598877940758468561620332641971553737999210252697657630177015303865267050861878792091820871745106350507284153138384297191593596998063283641374165766258082931401186817485741779364317650777031754321817335493241071086963579635215985223481004004619150761176007497596261528557196714039344163441291981717429669804626529264099868809861331892656012650841370274180782885144908874537634278138999879306559360773744960407309446787607903103993851479310393142177690841242778644832768653718946837492745520412809225853204363462628748313933589002306301735264094178744802541906228778707336144815419870394911486776522101538411235867642611826747716763084984821396316920898262866771582371693592629373309902939444905862390585549005081111383746432161919991186959589866345088230898992278466327012174104506422124543479533464472834792776590205922272935559744836288301592592364891944349499812170326717269028116324993137175364043571903277336558528327471475020603985166730669378465785269695377661931076034223898553985502167662823104856109035798468559107727327951639496395519422565431895739878030790822377862718779200295509711104167485727002490949865278105193424335775980531290530375220298326778776166293752980720050869235765361029717835863740668456542095912735880573531204508659767675221641786246989053109200096200393459237886144917318607054920320894608794756696341904679698738799415685033133540675283496093745246457284798412924836807197454241344180514883219815845703318142469954696301860375567689843839918590890753331167213156763006688654863579807065508896829810973276947972002812081327547446076970679610017204028589590080952488447334296231411567822791031746021380364479330723569733946305286483630188473302250730350162378572785691397325948111555488885125352354885442390839683462872270315687865820699253530620720853434780623230671751314822736230005559091664232481818030446632770349716146122910352323068805014601362170314687583027606168252195359939216001089595391316874455847064969883243056487003978371535258249594814823154001651500261706690919360926430262121749771523474141790790191776610937334913462318076851581793757859174065883407906275444250802699742445384753607247356497367886930369372139322725838321737950422209450754627967769409389733428865013290822670839908739594301532822934831250000090254728618988504174063648088780447210558976292963449035640503451570943065293326802809790380982209152673460155015269090514819156476593353021533279845766321356343306635248448435046835858359084199831109860496855025964598212500180854505524117445985418796475127359964138034663144837625703086847076440016230393942365570232585415157543015440093523259853109374087342107811912124714531017528494950554041953549170439965514289573177071882993127559963485799696297328695910397085702199996972134209770581487819427434950275795404621566811594022476067968429845306184786626534581201147939247681434977045404262052482612122376614976542763645543753517927898007183964758548444876949445331161262544124209720983854706469795400074685019997821954667759123082990021756573305457638595158619570178921795424499021889511745691570135622372503373413111316811856211149168844111190992461309397937838880339832357859733775710511026996351533501771840251126117793463197989212420100444291226284675493903834289258959202813954967527294431072754541099295630162869308537819882160908320159879001211582564062508563126306941403794453957610677187584878287724693076748319000414756465158895883005570614767863962867329412555300852853875857096006400945182588472004613266095860751867003956713577971512322188146741073927799952113556663849139079192282062105015896868246048812320324982967775658540468603434529970152373429665165150706911546933979795415638686586281226065682144963412199240637547687694472776263366147837960121264110590289306489609995224625293541650626785171633826979473912917732573023649422113209344686631142764358904974289036498290262605129703238250690731612432066243392119814739275637865161482862327337838610951725548750505004562463948642208519568115383201887395493743524468313350296197698189209167520669626281831667807586456361962260547969340430312120192166858398464732190844343313089094123356866116060810303790119229301377941452986640227994317324571588574739679051637709113535946913652024956586081523111221334160141674447371100531656861819011081073939139906614521802724343763459380912526641349226375828774073215752153944960098987144965874363261390089470902665378539020236500100620955921760719420302221930916638772741814603058816472878153494470558025816741097680718234587475560108275865230468813724444807035926614801344164181379316928773173254744631479966989524996413699128428215189619525118173526592928686231710373656980586116113634382272639728810470232416647187482327713208432755374551001361153050707569067248887795423210428012074492710310828128727007078322964388808097424109089162664500957480704348940234068345899434901304236295437454937503039665274364095678614154058642798897795647440122454313721947055538670753236051761486588526265018426417096523541713004133476952948189475725176049347607899711699037553549367116917273242198557196047061495823958686240348822722849285339010040040097516370811345001296356063042274941292538722064496621656705380238773691509872384514109303504469638951926015809023018333228197020023032068327200865902552863578969840029768269868616432858765788299568669401262644890718380302211708223556684788987540751761270141108164746147402207633749017949141793907664885620042069304449720011569417139887622850557879280598209170372412226403820329268994350797797423816429138137596471791698961061916381486696695537381355712607694422229951418326313464205002010274566150629740103345717860490191558858518682878938794959589627999386619487097464082604800042387759350432090530421929245947149312767328773846612835049677282787844697741310536250538868520721986629418193358149611699623790826070287788157854582515399623292117919397127269567129998263975177531163849282689109135262440147791815420101725958505750263440242899807836376941001310678186039352942563986033246125059086499683754587304468481197402402821893347033325725870583386398426430627514325528658183626386601353914199226202693565626091405206152055917064594586725970895657991394261633608107365607284188443439969617213449975374939963115075635896500208889505485695948762619617889690585142555782994761701153163763169558417819896060162344833820479842932650013518002691212126023942675025913680280412617680596222168894877186923332539910604272048631466578728085632495716095844052617691160134439366245281373798353935862489642233970313922654540035966671357528210506281828050939300972848842684451089369525380467426587177657240347045421714464872012109674246311843433239678490391943670178889583847286811331025008430593807028856978689546764974824911780892102844928202803321910466454421772461704950356676558450585128257512983603527216987076561923708703954462286927067865558180742487475547099001541966743228412182534916708696384105582411330720846986751518091491674546912613158328963158190741196709487731432765518191586307383919523996486960013203172658632446955829039015845290488357526926095875088105827622528676839889165025774606680168882413810209933527104874412289705671094175216084320420814468265585909510818816231249417613256061991355431170087223622283900976628440448084491655834876023651005591698409472075128056453792690596268254292444079362398927749313140359535474514596522947228114906786864113376777799176694413763120327623861538407140731322645920526370670344852232771526740497373384653505698833958230859739813676579693940457826847612952725367556128169338411489375484355229633404440911664941234377813718955362673849399938295867811873013481655003442812252098883171382789147331333342096570902013340402136402751545770455207242372146067471430514011398774207772304584101577446877279062111703213256998126322890233574951878662461545921862929668340134295967131040596237342081216051835848827148312004861392300776269501568971952340169999234306656186665574555825894664257008665704082941524406528772377054351151138696756136093771515123173090391512857132432381512935922330591776130502498345751993019196430111454351056182662202640382276269547380260694104336128237513588818797233966739011768379429128929566845920397441392164906345220759335254602645138062446965225096007500805804362321222529570305178573146734542172864683012369546689474270317812736399520686914350408450214192194884278515748489607653857125481538194156199623458696350880368640295233659163807543121441151432756929565054476805286217677660824491290247282810477125014753096538360173039143378626839203484038794983780234330177690435737992756930875242228579504877121202491757830965293533059999283377466487347322401377302626535831726919307039563185411913682431845863903560828288802091945126320598126142330971549308370292663783982834080059158973622594319567951946031373072294837193039508535550509738854403872083811979303387319041544856983117119362967187203431701006494417610402801425021386116777184355883955597625614555023506500202866250519437725637059214779023203839196771517629763284160665473512410205939506583550436130597288903782375396604777958309524308208574145245221576667475684597833399918558614045087805639867516222490082240416890146436371158871652471605217636692277769438998291412958348872507454385202952487871351102944071304495929563638939338200418777291873995197500882771070293770374074669363568763780857967474369838508634766726843087827870082797380311038591681943256560252234888521289222060996142996145310067642213483594327048241785864603684844518311035020132716883624858989953875972638859465958634273191228271452812298969357961841206614237197543487182369060598464892243112730094152991984215382858055720881076878630086358409947505721384391643410405404572044471203373740775414624398842377010123659745261646774835889624698803446349363281939750751186346390690944692944656121390918983268760950152782254231962191748352840979380245019158388430167834176558445740918411520406928429690965380963723081035294989247787660843572957162817674804493236502991676782224316675343314769411437370264486228344536638298104062687835299275042039123169498411748261625224348336978070978705891928445523880698587623558229961472814318153146857931341984680891027827758371462640999475341228804721162792673623589693318553375689511365298873918127725984170275076888742306438013695225739757023853551983662166637997821013935000567374025530864451895560241719853586905017842283245072748559686090151141839770594456671923797686396651139500203297901701261260144359403504415616741083142414015829238482571292553105711098649445001200192539685439232604159310433869276050376567418708192455506987951297654528507544884566933651378462307441087322108572160641805669649796974872595694082128246651068464157199066267140373316849575941723515174401191285342001802801483599275379291095616868489076103657460436187048004381396046801290255890936276570164327834825564617566215760385875729365123102356118221248202290091281677895508284152464906978753489368425010067501809200172951613437166997668716473037255929190014672028488755819234734004611420574573711563937666007504514890601660345686127343910998343929777651355779314752932266822699660654995245376929656764797426875563818679106192319822835668720112937272264701042261748223891309719175667234910076396067265471212556394365702458480988698394923544500747497994372487560625908459964867076870844521961171870290165769229330445802785804037586147977620629394472832130001181112807182338706647859874811779897448810340760220603144733967967930588226674118563833892448773121377151542940780258812492398172998440792452286287763861662419825204382729639848497506734195151042126231150837942438443028239961901191332320494933349058265885983554115274688856752055665999195772579607121041944107778154756129546452294391600612747275852241392942041310482850886016731976145406615694073597623000086301061028752717370551142151046363316988654606382641384533036844566024490001811008876691655644484278881831520011883942979177703922060226636413225372459057873959023331686152692366987595119887527113475692732559409775978441815551789066765319018714064034409241368782651596396769052713194764845394981548144580138505322474480217421249479232426948152586127964985295261845655111656866338428244578762091910005460694400981790768760822889470967699538075473545139603940942359481982421209899219943495953536684733717921461250804530392266536410297317032563428682453169248039154283167952433591106724109828204480296535308149507127675755215875749837780210036889900532952612576502295133077429844632661451227594817494812331209005655718710105427068612785974354750269703233716549854658024306001245953030648702866097275832780825434570201242310679209336040989695748499612044812848867822843495267360909451074789730275820891052518623088223225131926390157852921093395951949579860538163613943439728964497440591471301459186096126956984788044560710609176012080440287405528907529528439211410762558243016266137237961517679391380479463298837476549898812657807080064372354155546198046812684307756024282328280539016470057464836008232717861471373866800308840647007198157448536118950817449242350173421501121523861399154413312840742647417818888595902245536087391699068570973396333124000367945965462072944980887190924571550364483482145703727549005311885804287222341505416586349558477742561693272270296034226982246696024697873538794044617124277914587150759235090171863633423156226564199430213576819880524737770705982010409587836007006240603820567077251480956032976585832887828395378247950385565655153550799531030868974747217407139106775221433180703256897799026379496450386965684414929962535247990050320786826391361849143648692658969471280526369183663823091450315373265764876530367763911002852203878843427308527125785084271117576396193330385271294406589315360685385689051319824390636650259246742726878564351559899910366553899942249483639647598630903463572416614714945995665206805759798525202925672021639878894352084034989582197656430142360874285899965422239518042171720042927456427588965263795896564417502312409476637967050773095810608441161605778188701698833265399000795107384577727106086226776551003811910164053965158653988868427458953914928737094679108301383500789120454280687821231127394831138211059095700300220603974816279276781234157723437216860733580730016221319895566787209092265652432560231338429147078050176984232023746630985134739894592449946520120389919387790492961040382995704697650989122559895730413040396870037532749454504287695689957335161775628713616447080422985543679134499054944387112768477820613513066144762949238783819469921455286894511024742076150595692866367840149889759993366104789778850481872338042543249651617928431144481128591995361929473427847103620625913746828542509975469036671875987542821906217029799370217656660452572621921685521859307876238573290274535078680110171817270348183244854369840395913906332316910341853974528014871086592181837653873803138988427120070514444531558089779445666218623149730857421552781208622457068708565833712544263566817225060445078745903950794388835898233754766106859388977325960711942212716105941888826278956679509449114744169866280493567398686551677045984973562815381356769079421814946144598445139636677509406850305961832734895937561437825302580472842518510514280377706289592558843224644098351995537859949424071935124091203089916553294244451992577609679914145238675373108120649204597726154492141119303693616429817002752343910118313607947945808839401635466995420887241732951788404249295402852975174375933098718841350133126934933039644896928632512986737543201247963593461895008869715804175642913139465330784976723885932525331758345870356530577186160977370064602381076863831873753170435834283676802979723241175283757960152131851747684251150110776100757055257274501457628888429848103034098574666556453445461246705969648857233995553111812703478809378177395475305304445890477048948170607879283305332931633956235216430243624837798373959117126675462409840128439805963285023291653739125780205647047040345209276524006167919975776019970565237053457769527677372218517139013023005686546215141598314944386270930322261766879540953213549460414297816618936901482165374584654879995178221015447744633398480758583924309625862327975074366324753641577332604628228493027789538499578810443813069764087506723991586781037410102292119666829102476399405696705733943634890893993471793753486947607088509098701554160314032947677435431564195000969688649002179708034958129441564206759733054810523068224527234514269236334982069350899140257453877557338096449120064865081690820830566872028699663742605755630840473765574549793029155730080171145805573447093471144018272439128446564063170999570460675866033460614455349641187361465734758659004989794939076584191441339220587623337868173828348399362998364223948051823623932957018396809474088779866504380551512652946404126676864603012611270649084752275985925305070763387654580027792178931605478552353373955793095899149090011745643261012492499574013107975022437710497834747217639071192348340038190249139218142507952745770682447070670580578741074465924981756395917514434123495231493941211729874768416381064512003262533669210427962678845586499230317002134018900840068920299744187300202698679777196846247833214007689737536298367902746145406218923603350145707775809250136795433911779354895978978628144093925074533173299493390838273861661305374960787890899699976539501968069750457419888701517593720286033303418122718680397835479161670527376938881566310577430093476020189312855457802346969693854692129002992564691298008229577651276126740000121054602672677289814260741117017734933669643546250298628536419575083671170069609670485455623637925030772595210400109890321981388468497339825636382206607744753325759974225995358482383399784404027502355140489967149978968129822963231959511609602205508921277705695182433836277929175250531933538088159198837246793565970013932996445257805178943824623269282097879169142493841173492021734478598302746492714154785244904075141915621720650875412342019615391438653081900327119850757628790106979967912182572235600289373470565113404417763952014504000935993476695137743207403674255824637712912477853675354595168127040793231272798860052115662320304352518394943397920321733220883273539206624331022823669261106418872179839824409177887471425379552514555050958251060859200983117658552727427834958324022200838063514776039235437932378532029879264363414763972967216984450739578337311208245797309083327539838678941312367076831971976629830087075782257262383622298632602397477107532736170866268340044860232807286656992757980645541113554130183654216952292943493288956575746703493072246045427510260212328429581786092607732960434508213513351799628019000908312335212160854900618656155841186941584677287055726450460215852930875397650531446174405308645235144944548693446850558590559421457194838760282793785084393752571997085596928914093735853553060370146052209723687506832499618677381667396332333353318361380740475464267224089898722410316578957146122113039634885626305824117814585439537292534038775811642554147111799284875098798260801949307036042945445680426110213403013648959485587427100451797399353911109934093947729769875032608531126684087167154890543777655533617890363502744172303609281333306277227722824995425992025781518986903140783813036748108011005446642507823594148884865177794383564000248045313569995696166629061029134972474781248989560417983517283660453961357268687127538694764024469719847612998644395927647041376264596980677044940904407764168114497577866222891398346132324051021668100060417724455013601866837628246259224784145836011975317889778862765677236411127651921132451748523294571200854594379083103943507422200189234774657562797952256989456052191475932436606110286607043871715001348188406849319085221982687466649751823362757253990966099470480019691889593322716707704273942294927325854030942498165479402971923033703908839743320895991887817142865561585032280663880827604777984415798013337277575572765022312258902259587745690572638978102622866852495439395047072952026908854168106792009651334095652060276503806561361965269490785669866724376826075259940750368114086750512736247627371276596191208647591184398694319331769198368913800935880391937395904837014198990895585995333190822689257234933290628435802320897793010618020209518933306264528220062646243604010090814956670747836244007112209163621096200909438723295713724660129409995282262951707272876648994351509910867581401663687865089008176517578354267682473269966461229683177455846769782194624378201813345451914462331577744231362601500310888935836378820540702189434794814575495015814740163246538166342768841777320735337106525810757338367495168536288894190600542598467364513959050600407978024707071545896686138074599498801201824407444300476703680839745101439160516254730634973751562735141142261626215208035585451241902729840446594220821597292761170446783456863324363349873415926621094140251055545939607918536408091515491722914767137215156952284211121114645368550559919831777951325164130188406872797430696354911312227722836910697125237766600246667968040091995512489559676500646382713016732637012319679513744394553595617896140680725838839330149148162055987887726562801953716645959238728401484285385086231152074842968271877871790231934337971669808415777438550485362979459815346131278079000128796518294787522802205161130246479740524375225089512132715930245252681719365853318559174542338718759927521504678048585848874979849506371955403166471170608527473937505901820574833663234356432276743263459054110756632571921153032861991483843410179276554183399232960702521673526221643330187214832345242634860526062719926991472920380257446016672826446747026032222272906012912423300646216732214282931717720335129386478518353315777666452797751214312135627027486480615853373635469666743651961871924569584937068838066084428116218762988441744529137359884826169712287297331005034926793549543581620399509203043414939702148543975612500882050373470960131245799769783052296346651653973922740257699959462266074406013384010458204597180225954866182823828148605636630949634799078251742028549938329655989175159875090674922647543768018278648143006826265181806209979215138944188619548667481173658850751429723239902114002106760832828375699082389756827789262102425265725559738931398829390455068619307934991224050406896534124881251842385502505611421539470948195015485659426247185657923159552686329122270696463405658403588420716634758800376406726671051422464917709815479192634772336142386472640841483460115527990271213995241252883700616944998063867876582335024111513609990530154437014950350438768411021231255830538218461131023846789712159658071013561304244589660590812573477924166404181254750286380720604611091079904681152809433965877238018135897568552590728615388720321959411197013102603651489865026435706102448221115500422887063862702178992303967817029371488249318575872502287764664978284005391212463684149977102483499352565383015465671623358730584646774174062880750156409323526901480983404265724607067320133388994746018853676080521438337583180526369437950411359238994193470471859224244806088271227443287363243787092716475358840644211330933501235624126734173912441663038020925133001434866491635714825502804607312106287258317827754235738660446484045641064445003801972537255276709921085648580934191992478699870881702720147112937161848359236246553877741866194352604439523192133560098919769094027823664066328221763025555863969206424381434122201997323799925727038892296203970755493087498518070219315821798657137572720887450646220904520248570838145473281906895345574071987835794856657722909468071756319492258154077616261367246128265069624151094955225698943258695881488880249425920937402405642942665601570204277755906705482898021609148077145799900600049257485700003246608855367126297033851879426943618978060465185786389829917943596539432055135281230464284532233580339835888199752465370111962420355059320982889778803624059509578227406895148890124905839327174314832214153845355675549143090423515931909800946823243585623670464369523809751980106709180808851499015236463346099420014866080957620411149255072493142840050314835956164706976094700065725104151134055726494409031577127195382649506450283880441532568813356455506822978315392798456980522101424737936498089626584699844812204239704249131694121034209211403991313114904572049074464063809722420116705102187926101253805199476719451159820703160068057907117105495943709522546465490903955503848054340457476355807309937232690691607626334848236858952274515182712358812404897111959094302093424129467517878665405078702243956012078593134596941653682537644125597841272776779520877519437177750122001448823935944566782034664361434804451684522800334085472184203665196040497087441125215799137977634962730882373008212292635745555256505090752727932420504003912517008173969276084153826832040907646649087004185729541766129255563007292487509488979373388291200337250197685724217189009243404352526551330522572227236046821048052105496086939377667043676897591207781987619023080898305040275655854086805959171557523714783952267846680868936134420452156872137029865312496520342667621884305044643766817542665939560258498425798388018405023081362310660501952640212958292603477299208178765899786311022504806813979972711543317437638634586542155327198070888035452194401789382795338799122121596459143503236464434343373345571360546975168289478364703043405717637459486904836645559177297066955639047382658161492761899876005742978719361956936650003082100735153034138963867367083072932744256655772459099719857133113926934235039714562732523715211398595035533463375800954268187442202757248335425724203966324316699856790521267192685334258666461077464467314677608224054222059720709296704814011987813178774887733309493525581972733179883231354676644481837062746529294095522986066263764833659503695237412087433775093394614642549020187128170659225480699425101005866840187608255754881302458853165746334954952957989699990643966516491778683360900193983494564888884715162763046402656881922903595214886526659243020293672115070126159958740354043904516574269233291408402673351583374537904148382986158072193550346637030345379331484539543326351376730658113414743659629621570721517934650344879827932283129526854245241340388878533983577030399087902472013858241542672264347185646786669677675810565250748181176221162645857201259870125653400308441681758696991998170821538371092061305795738241910475794409530843474425830610962758898333435001625201625263770314075375056102925711900924041390661431672289714609135800777207561904398589939691417130885252108624442018337007808075188999216267476749619391405904673836026121340378683705226641557103942921143053730451041581898496690493173641125164154905187708839168782975313839528129630690816666894184295275783715942279594535848844080741841521861119759494823999802147413782813436991920340368921882227582470144870128516078049824496164708902504561307369871424192493572980198728538754211317995549188013055714826835080839238971303083919605018797639896076305099841620078646848628478092271218968051772828852392529206453943251375313212005616227919886969929307342117617351547619374715097310870829522979054093798020293891121025571124053802237182135517844959185280678231578291627317518264503417338996314566829866533235356391075449094924546237869788236075552311314339221183274942989689319608738460895330662156957593262327023708196066950417394730033195896692931371976190975534311838046444511353961088928089714737268530043393096008610699104967411111212465921241590670701266718834593040717462439280867628104304738792111175127035975701696716271789826333004855455790753385079379867670780901387634120091188833315344709894948762176777080250559472804943483933931916701374866431002801957894731941174721069515355078571589794727198388313410851878236346509196032265271082241467160872552452960850283588147034131509938187273798210482638021742848763257036009007298795755417428007310853451923311389231840733114685700368621478070585245251037194680615407473257199006492923574571536288973215497221732084616002023006385588384197923693949042730143476579804181938937672835952891609638648527904548896039304669411742451951197515233220105241190205721325725675943576876881457801532720259921421866948075555402073279100508670394096240826128526222354823850513239969054268552971887035991515598388955383865740373874186134088230338495267179957786311042124871182000194833840142908105777022355414419573368488305913700928534611704231777013121264999758402024176981099440290925823885823509345830361459740888223892013771195480888390858877677331495292770847845933681615178558530437888148710862535756689734012836126286703926609894259252734042102134786565849852798612649463364304862621578371787124883147484677968056243095442730918215357045421495467182758309049250187628353780629692896542238211972031880391930235372162614303258653372586699653501645656397919191960441764771587970003561468935984621543730496320385066374046774431279692192271574470546434517900904783135180251316260027652637541116340484557652901962137148342085984926325499509096078263012429386769498881183824446391118768009074632405255877908994290613780788211455726248462835935854963896101858864729545203958908048506174660725463814617318654920803376971030433518531182072010610511928047793957633239540828596780156973589408465816932264649719415172560151653191475408391900488847811261385990439711801105956649612667284191858336065589038080759340307496179621908576974989454985845719435644034900747173252013177370047064961350818227361450254145775274400625423222442120052916327845296889589899208323604375775654215287017454884256620793194193334544062799118416289034113872800805443732806433811885238183601610863668198782475238558482467231474320359622410369067427165721901870265045517894562118269046427491001824923940910930387501174673493209416360366384186995930101426814573864828431596193777196294186139888103549001027581944201853388299432467706633734083978613156104863301841067819139889271647638765241262031181981101077333425573266695773004614278627867357882481911221533248924902980060011945210815518810618147313590629235259571719297018145956088877239483419366687264160026738835106455530639395697379869719693781694327904241090011788069864791399470406664012594020127269487848333349997963569569861510179390646428395726446007850262646793147316504240564998877357509937261423542121215160078759719665760599717583961749019418155996200103663601264278809086445755255356577207569256847915099137106901802056640335172968561115769921871468995386401054362081166347436247013128785248948160632912349596111809218689313138304807142457899514951030200951453360394082366307198774957371007450577875855790620745572575663379352446711122333757371394162663997978550782906074873040123708950205669788362179556782296876484654766648728628042200971457944926551041590886234240904003571927405415418049763037156841730718393531461413402094700399244633462386191843241116441603959034906430016983311354853075979979029075379912183300728634161845710287896670045419625770471598598992699083032701219239509781252725009012917939069070927189152470270744642996120312303503165915546599538061490393926233768377386981313434725247910735874609617885535487892208371978267437522771552728557593234836531889012259893611225042713926541529707189783318138531607866545839671279364294863577561735722348951988961638519313464518346228061589966089569132733926928918958779849311667432076208635019102616210583288145833373106563044919584327129639254254272010443809865783707320801273979398267630507676507969944376475999714922004923988201549983797953427751672033184446196397702754990458993240367410659534101039062172393266256308989934977334921837983789931510484344906742871052820322017614906179500409862761394311175124223185253357044321012648704486435541190872650093699994666469934479812992390509462313618810530301881365912002965803495851112985323170832053869236463502416591728473632404982387329825013482683135419896881984413188206096923536387593726788717930263045614574551152188704148327061188523609395495177102826257437575913682454444497112354517753199626439208252106590789115007661713246800087660679575950672603501923402545012311530679869623295299077331944355884451739867832781405371131458344511967688596649600937950546946731951794309896995216862788328762511414548616456023269237345868763707897727155217325042125769075130859056641678850663344381349514324402068930067898319861493970097154167449512530320317736844723429170821720316014120823982716148675511543614053182729606918996172977645236066589152512979174586915184617095986971536845041242411476026780499163501840528261110762014716135308382440069303984068096547441379576588247367007802717751130317336030373094397594090091230516375056113541455712223145702975557445048606158709293351889883826396677677502148399788977771246342971179713595602911159765020928749516478986628199721247932399827640608297682911773315583211812370220308988339847697516100470288988223450346062782615483796146235593219843771319077305586458370634449652781970527182201325608446987912753051053900438300406228690325955259435631477753758394132324130472954025920934727136327159618586343817278710576413325146159721565150589981584574103426931949445260676423328339329115540703762769310495577009215560834063553931189257372276316207312974493428490772896545473689080657578208100272151592711891052926652653192064262600998197992156007331485578216175493960704210802842869994632941487500605207608641309295069477469191293630666752138676065602437364177983381806237368722564072731355239447410915558160198794459426259486153427548605476448964834819530997741827858145826103513410951926910363193312483856194111062620230171953252431106806845359599592587379116009437955588182610220470206642070696157136392380242935997064414725742014117690800723238053694039050528625726523552448414712383586996072018019993476298667768698073096876359555736285537553149487667624943824340824598954869398991597435602357036407990795077465395869618313465715085389478462310102466821381725135136867233354353117760572728501863622426907007566012523734867048889410820807689172120929352056290513824849473270662068987583273287551372728783269318550680767416045099142432651966975051555370294441492302505645502080835153658750632352857460594398188651599135936527350805624680285973354783887443987821915740714694910064935758169140361660987393089153648391322358047322183928873291484569021333475074585367081952244574846232929015457725919558392776956815381274078403895004190660973230683247011127456144325575033939429562164408971376085021876908750459972640500365771830110274760252270465420265069853192951218070886647613474408408381710434350709933842503673339227543602498636127132134578655461309776892457039260465665526933290487459940655269777789658270094445273094245002092040700584532929278728128560901814521445709225702018250597747508717595857160732472818861223436978924400409184679694481342226857913718402964651202519528976657845170551810638337372454487899346296771282221462900496846204596042356343435499929925338555315566561064185299781207870248507990094526102079884310096605775362621213490592499881195704178755536651728354176539043710172652646243841095350249212531857813919205614353657962633291363198153520421223990480070680180753459151485332778547125167686561190658302585067485543704748600032116495446653317859395714034964102550239031804779515961825548775970645695534544701306917388639983635548109911323743180741869837349118436174783016108784318781308434855643806349423418916731261414140455940508557357172665783027164275691868492394211059828868441617633560958267842491246306238079154071304754019430909670712555092225657145525484755384230464577413692670312355533720350547221085820429334293466250723114783664090043903147121487494334944584732348567932129367652877067572574409467931063342300541328193869465564163917422502326577569771767850836291669789846773924196108832773065913144618878097859530823712246398176617487389452819153726589652661928631590229504099831038807865523323905225693548244559902923726785546216795233882088982829981229396536614857426461189975242745321359673433153633860866557876097614758924837736724462873333246407329991862046230214361074763187408994458453306844424909190376199118397474492380085439151282489474300949974599246258071045492710841950994244130802447038265405738218871669343460263552984312691686092849025458120967711838603345163028997211648254695554336525695646115116394020058542858162939990542369232114860875575422193843220986700797852859908014978760400631594942586992936355396694919582309753448185343423458810612695532045157253867722157952886173683729607338722375776510395119683819513974390104917116477787069121812786834947908231889937649137323023454544026539488081057949694801142919195836362944110596579099965634810524495402596957667553492012067727651788728094636811226121362468184265911191211060692118167934911179745564033300110447620281113848211826203727540505519129917593923448495564938094859636174801501389080631579143796139794471159362257668131994546052859950016359031737838302619173880872702944643317105605892136702614801991516148955469329474835362287979238047523500069353025991390644786504576416368934439627942240415500898526353876862334656857897937865605809419892125807788958985123301728407079758117346111324839731768923612849232705603305970476713227359446370249978214694996780277509900264724668889586013836711634026213699388356849097062430742815271353776533313185286335549825635620555346599595597975119937382472636900312084102128689101783052035459780435167311786916270475714052855155699080346270069583603006613562976518091368832177658631762062776742666711954801908711331132215592088425428125260727131239494246332785782509789863874708205407356518197196903544208302451285629315890026843011849629639207264082481766684023698157718201845081896885147345695900388148346156900873228757090642132543217330983184140097083752096367120484318146787538951729734601055916889616070780715682020441852855307397885438264925130307748154910199882320188226245395545690913366521713573001018771416127078243398344021560713618101576677104590823518409250488293234758546131045916694929043829616803202425034353312819592402859445765142450447238936337122121783918563284075773302627538546160769205172797197706199598578295813435755980088263725105376516957165253270330433319242454750671465375466576667574879376466344725550654087774850434060095434709916174463975199832697838618123130777744568980594636242618808652858037129913791326077806847394814372815339654061462973359081043209105999033559998559387792373686707810753531051780095028311134656355987485103042446167709677896908038899897261130459290411248099984206510306439666019532609102908647034777064512370012507151057862984071932224913458473329864495892653509272244359548219005746755852629098128130082976466938725667437570749722301084095399464998594721896293843138417554203664946773039277734617494879923939465082205415944993618403380037935876019020784211243419207153927660878235358298612748155710945333752844540219730672947929910043459467016553911699209388755451997144428777475427425783552559678336036638216320429085446015072806145828498294564558335853887465198857320557445143800874411451135625114965571694591521785802558981063202861193341314903917478964032782480422095544774116641739629983910667719601006463072408644373281233731442852268190471148290634992672589458067318338588628721203363275570939296962673944172222163750025785328962710279444503866604593046568701754393477440771197915470454405226847065349247972815259195967893668708626997643655822366115540503677811832949480015003098680886613096525514934995122497583026705060742259697072248905710276104559048322415227012451792971815873699485973124790001481558071492761753919978298925503414952031104338910334197337797196312971680540068859358838026634323321349110359644758533640633502659277976252701250835572139331025769706981748873922658778146132569429890280159369125536725118679026961415334846621835315834488053639152796402368120971123047350675363639742419314827422271744847240346683415488547734192384133201605002788972716085229948503410571699247926651524672370362240509618792917134555628161021213165509002126250062849419582415606756040258363926190974632089006530743138044788257841491014771382127038032120696006896002310456730396178753499474645108579144576668310908880250106093087597646368065425728250784344257856318717348162518101838795005582661432587166278882243633357945285031218081508813004954142773983437515645340271115896271281916594349482441015675689446151064678467260444149564623673305522702466187032062094611097224594333567549226104908038007897017717247353962315983687426767523372391669499672591223580370453292825627913045253736203579368616639489916223642782413294413340773727380031513202786158440160680042850558824539762117338945692311289837171554367392623786498726913663257396975051631971688722381854806359068341861815527289343000159175192236569722956903412616986879875933451364066201873107575890639366444832319640275298279170749226686586285709945090463193173640677696555066882647200905950049147412187748456901214516898287718555726032803064773408789401088909688314879455849108294491200189768014742905689048375496438212275709846000858349033108275944888886048492820947337003364450443414804170308302556378237324329685728738191204255334213350314734846929956734954817224373394391028626080793802226477289972278894632039789533364157012064250386893458360734057648453890011491272591836866896213300741589286054203537680093496257339595927648945080247639322215447098829070273206819191062628573530153336928793501032774707252241618973422752588511797037502937905872000888827297521198204626345671427290813043353906890170085782553789327288041621215212904075307178848805722598990363079496747101990889617030616777471251689932322653111673707362314068070470802015128082014414360105565655188453475252113855441007802235672821277205783401485782575755736951606948903840209538399707760949726376874931539117213168338979389701949994076432548811625351340320437307187269330658178100681185101966407302368713360093724190026945407594580628144961382258971602339313832274508289824525176388912091290087938177437541260532657727009124774325235918686691720537039885705208501418716279641169048883337956246113585911581745741083057402570004480831637197042394034266482745442952796746369619518816799650707939441441131476806217360474417668760600084932576632770386545482435525102087245688409746777788382486372531362711561337723262167645974791175272536959497807511923924806502582899422403715471449162803977110860425546890532579400456856000505960039845684704761217480317745977473020797426660559349132522214341075873235938931635243646199397150733479055764545435793088404618718444142122240498886550441190848990369774833184702573917881655641295254554280714565737332333945436574136269597167230582762060347336519667820593746828716986515776358593527108854221868489576583159317895040350543206413192523273612443396800283896309037279406879481730843772914422262054416295182007755899859083177479907234984937717861031479404124770581094069128941610677034738692534696870861369014399103367087240920680796807159959630393073269878810773963774463536386856318504260170889092248822726981710855250931261974484354996877870355839660794170382267666695583356738748093285056243477999087671838609683005360528036683153855012956131154924441449371777289853007999576290131755340673457187678330775224697939826559345117921943900260195312251618193957612828345205973442649098951734909626923007471043050494835194725494161291594475188847669967913849392296848650598902498074821549993472967463790411494538174721793035040612290021202164685487683506533115036625693748354581899664936303653601509748782725435943641128346717707766010501391868416080216873439738772161687395430723654215153475456675446031907353913701261733497259225641977379889656991425641617342507046138239000432744767949780124714080054015159651066383929719386384185857775665013063878761208402931728681905175079120850204227713189822848127304496945312241281930166750753293008971780639929798869845298867970456161070830678754681565788545545134404039060580223177975592045543346646412192663206395521682656963780462489623313382714310538984014999636012978740954003383152465759195044371333179909870516183186417830303111452990773017610654862874749421534644445532031611015745052035905129430842353952575686788984779142339865345231267095426240378767057310808079934312990082528209241337275869072987707751379810974074760038624925028515723197793510064959356496633620598975214938044576503607003457208683185717629253546694530268883263269043819587861438288158594479728881199125810477595927439376829032159092255624173158840123649143526775533100394663665364582695453837249299285973638523674008043439058692998531339992748125206187768126743443473922932653228712431948483943228435260270084057633322415811584282408049813171570395060504552168603442731949772237295052662325137895731261820866689495667718105328634151088285018154929574802533590205877672797105777398366494392186101823005031613581891486903534285262347121810154319690488933270763350018882726888759556846896032008675105971130895664565927469146133623694021815047295285785233892321126044087583188401737562568242464845678335015146630225414582002221747296552998780105230737206166383092871079735151590670648028094355645813893266569192149784185775426398543383713159145737119554441185724635580685952636741920801912442173465792222840110785644891368959963691575186763120402639503551702362915884395347627057531434968364412411140821339671492848001281290085112870522634511320046753763100500738705953941666594296749440819165124290695963774856838624574623964232416612285528158601012112356779552454017911212331024746440212775933806850502678269360022025799827934114049514194123970230415225136885915500318291736831645192502287114355587618300526915977738674777955636233025864030229760218943777626418849686559204135044161130523029911431146541933722582029779611201851571522555500709229475441450707834821209531921694157169525595197781559978338079609474626606873707544596503332261345390398647742202988347144695581277389312372704117439801473629483740044871834226131690618837674229658844361384885996630622046843573563107325243344140011394316461000005972995371452491274164138703655277424267670755269747491385390597363740006355694721100548265771953539264018226168769318057550560571629814722007585594643816282883448096241031504857680538224937749871211665265991564283462473627113794878750599721105506694535646594961340685379564665521077941500346040099712114195227289894760437587503857058448797309740077247253039720594194958050464963987707975792346234075631419056482802718276396431870685313658151154261115199136828221976224434802798222721775983099358501602013454543100442083273244804701321089726534762760252324945296388377325273338524276112217358468036394238978973154914309598678915982486506829500554155964770400181715616443675294161125156200320519278272068188638149157098270559712595113161440911068773159111124719621204979994348185323327206954516444590018089104988518823491954793149677649729011813644055578734563240902135820242178590005394178505244367844603543762429850809865268337565190519028479599638854482885402267272958047347388710102020685807635782476837740491158459607061732810699485857930291549009249300699519093069279843284976574500713698876905429881003958006021081256803204001112926715761346816670759122842580448209570716745144238378733813980986868889669279241310327832952586466696696383404122112577300267911449332589489046699029266246212822303320792354254754219891160176521318352214171143364557150472218067136185113174576717677470427818529029775247340044034856796850299514073632403205852574643108499864851765922869821345514051375020418318980780692584187083299859581848669045928130230826866537330791621098466507231195312502566373452601484618773399713728243940622525337182629430671119127878717144395059502639367551262833944880078734714263284684009393444704570496617971410582997030522873047714961878050001824828707695452141736017185290365866107908861786120491371101456330895748877062406894482004642791807126387558132488466921841655003641973436142056230586808136427899586094844203458160396412828324952722977167581318088463258825306800185914686288915427576569898586544233387814035798858107243674627753092436445058127832486160472831519995319062317245168876548033967587358800617156930327189963133073570251896191954612060685632628485342450858334313530087363768976113378620564906394333483639191309424166689267372198462082678751606752549799187411611916865089235318432639884015929053212501181587036460511386169761766374815508131638329596047194062938537220500054476465912011381288892831016474019200913299860114071315907396552206483357411627806989905221025080397984702950451856471174576512944967081250843325824343213327072637585780650082619830084235876267156768989578221653098917032874952624395432402750588679632573639801743043783614207969479890728672181626422177164962355306125029378864135359455898958809912608479611620466354776608339430803522907735804909093747840638234658467562383123959298426442684346518228986358219557114765049175014159932712022258396130026172686022703616296196231758658657573458782250054823201742656305766420785133835215352253442066290434387896741984323740242561254735287967690679627792428132002993035331588455611398979429590442731660275890676280472558696372102961141593264409689975209846439490625414116194930602082923276832607468211374531088677510797249207923884653530619962633180220658239145561658807997562240941480481804160587329490157652732400952231861415463550580237570453214297227470039576120855662782772966910277099303510096847063257946856442274772968382914151772818104473586613928596431290840885661820105333152099622704025596959911903502125457051275870751301032137905549164657945841488021433598076806636891314229172420534335488410940856259991881765924343344555803624206463113715906917717807727666935070771064116029915978733132464460127154441611703029085539977207499782010160811209553908193524566882413893519848955536562125252659166548241261347168591219871166880597163340811270625400311904042552048111192834918268857039720164140237665420257651857996607690870928287309310228702299047505503870078216778480442309114590089061340442015599566004802115735361181681546587501750847722066551558925397440563346936985226704389877892366017922215523606802102610092465394165822989556913877283900713810223522360044299881553663737794587699371082886232732122484306204895098812048758613130215226233994302684625514628832662386283536221906380531011339125998406663997012702674751959922574154850204840565496626868727100581815649720721088367481607987946235060465548511128510456158071161237764947745722029282670178283803962240820003002240965659189521399710464134512907410537170699024625998102869536368043973454433454836543910829852063437982639197380432200064440886624920342056624903129353228687839036041665352603109686137768248754198804332405154330626845869046673338058522382118125213035986845843574779660769228120017690779968696464787758556951913328640026751534017169965030757078529855458687681773339747422587198249284010393584823073865891831872636204393481145645467087439998033122982116849028823647946202297755190207137762075782557465602123703691492647935273523579860723180180793316516300646439750111443703177955978232939087022568485009970256277005106792488871938141841855515553389109063941941600899926765093682302489539198774959967102393426711915586436893719976009681184593348932901246725282805235886420971150612859598112187980569013300745746669985397583933162379839546667723865240418348147724368418999676052413874317122733432140799174270398371598925487923621262671155159077943960705689466026222256541238675225436296351759655711768095598488918068554408278805375589775186627107454121797690142542214066584135972779624136038314084968660358869178444083282495931292105164935033449062591177237006683882349284183035723990545146869199003010589534961998172017288323200726071324769766487534473091966290949360597322824528974919652855433787299130877955176126178287292244944829188391070084839228715832920638353225573311599081597466912139770671388333230916747937298091296563683461065230352448270052437206393591615472455010566167566234493462269507842230288277701125592393828035634501141564874948673960198540413238275163316762270683024464557963507971436005174319438976819611410270811620095827894411241089317693548519247429888258460179248906361122123475240467215815035256835602664490925501263833079978720559248221140094824970084741371744692693173896061997521303281110180641116414345172813984270619949125488517553885862232469313488266078016940508113859219190305116294205311788391164754601960486721415232460463614227514228130999670558551967157248714036975349136553814159582090412123145886747484595537545520496820483829389935403959352077152025852785994623484070506205402198551411718327873859163966754949563090301409260172501896706722354085856183841655404699632224676312833635926658836342509112910656470347998104937456483776601165073501605658503172597702619282845259088209042517084956809785418826873590732529686396788070635313222198583407667620069603088073591314325299162879384619721020438397711732862181247306543993191073842237108895838908498532180428923619563469604741603408536660520135470659007218764293100635768228156574510899322575734560608418011877981125728524042069391441144924420150690773983755251115851930758021136154690576552490124642052374791604449575422939305853926738330003645578117728285230953822404013224733738906126487172806902713127281236162217592617025577392189192615347391955933949644605105781344632186094387605044306778352330754018439988690606319266344003927068268676005641082616723744655344357152737333278585635369505465792253498966964212190206232011706799361615858158293388949088110183718567557798699633680649625043843471188814366990654128447276779989751692477487835293528638389995022671237831359725132792157402868438452638830606945675251858347046124215743086794257744376906705917946642591278568679394315620567494801109398752664266141906689893534381915179341327497839301795903743495707789894046242563914551793796829998557537105805155181986386901836852213661249854328442938684675024102713162580507036751729698602752787633984350959765109327651466841657650175659708843359959428121119966044525532313847281269605921019605373061094481296017008833180772204757238133804687879354867004962864771139721104381126277209050179090684058863292419882772452618090478797112951834968609479021775448671776866010320247938953581631387177694905839989610895070021950916126619523091605843601012767442270836199912571918824956315325630682283902722109485048465478183137360935146546137897287009051009543561946823472638263426552571680050865574447697008541971069950782806435034189152765619426856037254001764853385517731467961158471700512720943653204570265047184064574191757103971956790769073963380122708683970489808553213766631387443498336988313512246050205595364302960278731350289990574175578839845210027012883978327306447996406100856792998271508497148544207684719528669388661694063236971384572494390208933424207426588069655551355941718897982967485155455949615739866094439917637807019654611940199839590652387839615229776265893006342959108755405544556265609744325384418001968914254676983606288587910089838365683110788279552631738881551680774330432150147212731856861746617852053881706428454250429550461661503316858955652880302444883752594263022975449267637609194843489165068455552274564081237347157714186621288876065060342191070234434460746997013802838404601707412398959241681319241762619684632062626235151017465794640492091737082528769762917192749389739958666674899844169445181138776714821876051009018958266031733985124301056245046603589112027879515641954276245762027187078315146579718762120580858832865107269087410392868549656612791175815536720338276023458820463158570642944984479707306923321307717102234832048131061574966513192491644889473151309333000090424766333550333212798294289583042975250529921333927511247765498526287843479395507301036491340542119011304674399289508843808191527188043756505868949863930243103947287290090026130255293332914461637419585670350886241463529888843966197278623910065279367546808437963054359932740270763496581312878806535118647105334169153402876355959485035198754589649278733222612886905691605942073937285747662988563809256923611110396103198218781894971131111931531550135158967737785802480262971287723598754176959382520632404927435590224652793918837565391165024236187883400480622483137794980685566779719486051175724989646113204123021648673974427266463613243792285742383767378171442258859502497466408195037331021642545463314403990976661401173906243310622432988973391969694658337104386870107898856772325687171776420139808769617101896919791083974147304248679855679900978680755636945756959852897439926853138985910503289436950325417508828541719774684132760654916034774001230916288195492434010848815248893192170101583150572570047993160822098630984239619225484109026506542186794407416526238556846207971508296642745103800754854442829600893103994458095043359158652846288980639757196419362817331213117256729223265110204496894121454121348872176454114054319575332159696545077539076992011817806097222899601899047363499972766309377757153978207251532509099608281728968010681707098112647916848589215128508125931166518164162162854384285562542230122998004031536588569768370492271654063986318248147786477994062702120961866920800895333101710690477783998508182065679781712815753910607588767506076738792214762746041393765406288910195208797357667549510869209492911734128257314645791383569545919556498444327825694564431611826395249549289760113360731289376397357090433882879289631288641630710397766304916579242371981508764947072854776004861519379868883265292504547026081423560193921168950289316214305625402524581452066075694134080760311566263338596872933592419520678360589851739685594648909332963466342881451203915820630886895829191564753196924800420591807829848295380160664823905912357364616516752624368696546653471025302487214540219351875753680175021577987350250896457947884258144315769079086095316767497633624203716626424844342743698994546063202265735943732842329145995740682383120912905678692428194972969076719221207583992997180405022886451003325847961442643145231107819849829202850432408479246756482076038665062539428124656410469802094601148508471062024512636009713284144540087445479743507617671472043071336717770470502047501690902803900558825800551203372490486936789431099229425129096050871350966856522477358456027955248636927202797452275418666271065228589299715075370466963722177251979963138172475109194094355853515003703207817045781302112713643596572507020005614647046388241038863526527152847461587624818111820259547568160872441868906450083587702291205080614185850283114526206061574018689065177496184695730634694200051868057036579282331167859637140945500272052527842964290825195995044200384235638872098349907866814117952584393611904943913552354187832043230960375886110246914858409887442138238212839561648758694904268287898435923844051834446721739935554239625797231293772129275768364885116020297488763703556426733249166558684999525233547250613160820792503350241411701929719513392185827771639859675972555828897142997077151420966808803497945823175473394331911016165733866026025595156317019365785377291701640908403722223373775606667611582965126431663816029878085236424757118955348010631722911786663780152661157355296715113185145366706013891811854326431821245270562873474065514065093805806040950037894794640011596953526841445369306650620969080588709181948163577073743428922742173586873805744014895997531199719184233365599817649393777735751745090583387265750067926608674441703348165869239264924336850218867056457369969243432859943896516575432963274132650853322141778924919124305971123775971637902267538547686722748138618563320341312629922594479693573538679430351012779385790989240176791335321941542034016936004443915322319367611220603477095270782826828835308193006297153679632535563305408795841253332530586226536943196774488373369101243583187528310394555040319813520529345672304755375072467093613127080934343672633249477732242569356982110648476744972298859978330148487872166852052271079871761539301375156406785119628640675907266825187832617254666200175602344411682836992806002019388066265027728359290624023896352542206862131103794354597879218083463285694210113850920141031267845387204051381976021088207776718564842956280072286685582758207338531911420175019598843717179955545731268766804631284212644124241894282910541107276487121344314820581315101862974016115124593360081956217997397196540379225490368679674831837983816561817006967479003997662811513300340668271269417282221522696818964383947437178631604676817876475915584611823726175405009680514500060991369551284452937524672899231414906380849985642296406876884161985215602210287129482366991711644774300503126108107095577112508068142913933927016839807723971979206536401439223874344284051042142594600543228081028234691528611796484539420802482705677404711035869803774198838352403086319249931009995317302511004888857110897649428109455824072973960201309089492991403872713856435832051601453506383087684552486221073598889059428750950829123666799962328204524567427523956342573066039485319267902137517023913597748611668286095374251177488451229383808320991160468546277216490006016018420529150663420823497061513870003658202510618330220732593913779651710154398394824204259991809238719738994896571276843009493967562278841756269427425033594961551362472655488018722508291377300036343425623680447388236426215401039172521462522205305603556236293036099895469928540574581124707195754674725765816759662430009017826328827968805554203569157302358322629879611581120762445639515437123319861059321262858479760079150017662693898541127181434052930789004238720875422244843539085384946614966358077958189543028315393201393287431845790933684063904266113873515191550814329568147142473713080558608159683127768064635877119932488518601769003375728594774460038299780932479450446571193319209254895062990324323707621689800694939192927400454309588132864933067903879852367241776603348852155076881356147908100714350011582468523583037907153465029542979407744267936990605073798455471543214215491588836408601876621779568803259303674799166291180009795393134048000679440740992221285393049315838245130543093418662454521923587554895644907773829568758796150895799875014970431670208038646263676755582271409852838740112445262398987039276827306021227828778382621374935420105796814801081836319022002288257746075334073061828024483277373207033308709464626020761378502467197109288196160521792866786189864371040851720898010477694046251177327198600781893048373594728163543820920381592613163399048887476630687232545311194075793147632401746338368633130719248527069620982369974107609327465063285142226855862227402208602657006867145540078195049269258690942005732471441190414817280900627522725256908889276873600667992411807763227381112682336840252029625921274020989417547476073174606644608125540516098965654219977547398834431179994088934806973918817283466538917121423571796235653503999631298896266330479049117554576534076642997286607532421373852096835342636258087667934579885104678735658589062766376696702974516616600835194956246817614903657774706937033217964943672753274765376850931662666938960280718084182614213943327435376465272637734154785217549466873099129948569492213507592230359493345939746896823543709264111830552480186951835241429962644652135502476571456195172722095463484908540543496919327580308314573432827804612214124932443847452690890931726641418875310815925806412785468208532552150585678085019848396556727030017891718606308004419896214767842719823734602655939801595865767311004290970216799359329693044405986486733401773182690545681703084679379718084090593563434045300171663391599603527915161301529269845046765742368446546192110012826686314051908085469719342390482313674210865009024962518426162696405843428272944205665943485270981353882413499563871520047877082023215011200575000636210898939589601376954382305460038340077998684207083002743369106851823231942201794038795874071386459714132708970652974410354668663192121118383413947372030309357905218216744575823541021487678533394719834921068585013626998092400453310551388316291801409746431182670849474715253027303718498544009350385973383004684646751398035072963128160835137447000605554881633816843543383077591573698814667390308329014102996046532011215169560304870952578808802119296400193071332798593057282442140474211728844222821360865016975755066319648768337501168850798273255836560383672851334442892100689632711541345968411718495217914544182921014630365377193084678623714403553172405181320286664123251638914462028488599820897936836514134450395596487022129152850103007830362101525351976433454491648172401537962524169357236575913420574597349571770066069349074437761705672717288540413762681370329216299188808733280226590195085647415171173527801045632748913577664545416686121457986767479038263799594065437705776456152838771004555346234132136933871129315015163072523615117707955056539399410052368676260751018653746360040102414531857416689947047417944219527387720006807200588613361908621256146270047450251421565354589276069176366571664155781359904203884740956192938673220500129940925579010473454583218052948637192059062596320398416667414834071333394589898373685235566444899342807851269554347343808988514197032805585547327495882828567814870039835997813405467817805116597551766967341705543156554039267214570133976481518675145503951926158673133157886705619446043376231561677403322999626032732968350149485664847039643615860638139721688450302136273180254439555458387326490658808725825242879985237235971445523369302396101830184386271860612861958180477360271958298278849342055454347582414519419702178134797523316892515596169929104801944206728560279197885905509686165905343821879476389095767029445325202120957152587282867577373404385232452923468080632319314604693249995858696784284594428047285858623943311403313230485793036271709239416758267011277849159881201139781688961058700342398877759091632675266194301199907463776922752902944768900383889591461006772088900391811125085010484089728085355046628434977921556372693279471377549033920467834834532799958754177071693470518958153924803424101226024378005075985707030184171151833035365887910911046069076845783644362154299853695358590329076009702709786709581673369395428493498880555315800312116840223894021624283398184070438401041263532291366832524807828923415064350384080517981989853859682158171718897149815624113860930746322030184210004628473728867034393554986021966466886350302351316452668148661182307489846748905489377030279632366475436791381424951720055281567256733545272225876450826983080347408009896242771347309370953596231073045985796268796241847736689558256274115258255988244325251101261436883298575131485903344841610177899084150656643649600401361886857965999568992659396450865348028463420097718488132270719177887773129032169989447339850774725805200657164849647140053225643276204149513421970696786357225640380123432044518442707526449353636403344456469739122515075071366168791930409532573988899553860691450847037010941741874269914960618925514076706533330210368171480577845966561996337315009248058885057447986638417291778012734996443919536440172830073345290838887430843471720476248175768369809939656859683147276775829826671709539803346992531273325897080209109425810813630714661128123824764740006083612471893401050098998230467945811461171118213568358047206989668104498000553681219310343159267370212842550510042110826641204758932831624107174136646209557630063993739971195597425958932172128480699340498594222442551518945287628886339157876448072240985996086377470967612775898091604102465725925376756083449434097603187870619335124422951846462117709707153069151514729347981405977648432086150745440920984795054285753731189757352007363481180493587863059500153262686012757799035393392324438734642615869120402393502439575314211383888288132534005327179286660604825759950117652938234659496574926981484124223707740210328463484136053572862850962998972490907100548112175317588879092353133803218027568793369137275771604522258591161750839676588569668551924229575035205250549757097047487369494883341004598597437197118573033032141023745580509595524926907622593758967778610583383469394118563150921746227448697085155156572028596745819013648895397160305284467720044599677592000145635531988168396885075120522915117718066340163156647908770056066216585381717419939528219951101642885534264639589758975654835587580106094301446660482547231562144141363904258048401159194365909612153687585534817180810486848494989049972572932743479713015532324652269345047421219140792352425498202958194990487582612368342933930458420419315948805508018884552562338401778093045307320585984608210484468122222960685537212391393631851042093416093299984811445090362485921801891884767628869717120565736565571748728660392128739013588942282099690585771427936579698604794895692284936233192871046719545392061957249608672569599152024106316537527968387286033079239597677501150097834910177560654938534927901896617713779069462800138316347666221057383598861247955418557748615851587112714736791004529048366483528206279580820746450601383465865015201176706045987086160653336494019210017306686536300885445794141648558382837269370095927961352876811471914889575664833337826024760582223087907673386034710268418424770097366972449598155524574419461088143749578592955048176683887590076898654420964070862702380026009902273983941363534791423820779270308829013855692127633934482059650943887545994826285650349586421302285997174311565089232028132849832756097550776267793308114315338303425316790062413149279949862404289991076160046104338665736370396491912998401480834194221810679686757885753834961816709334795525141553822194276232635445495069970970023788710177728845054803051554637157889199581336869980926512291212340810572543430198836432220383736642570233660606403298207197860541943692857568517317646264932595449675197406672881299786622498441577718608686092622088385617448248661544983875065986756124973196635579175117969556757647303160786191341969688484988960811721333772366456740638060272828054658200686886636974730920068457100229213152224106991330954346283216220600090182032505050036172913605062615575908387097534531297191324022117782453694461166095142243349236403970468995269249238135036309506440933246713621079048718876237701347649060521656071882424468405212245392572242041043269627621475095520911754476499475951936654948079929440878593801918293265296910431583701850948006205889275421281708555550185322218029044994812871838672029685696250676903985497778444062793766630200223128959258849825615158150838888060839830417535801519755060716201560189284167301278989292344993914222125660497178998782640190033110083702725340799578786335999831605801729472809965748628636531253452085487734343261343520456925693678044243459769631274998249667558100367417300262260587663520890056417394599336559850276975150749319384749596707610383438609629946488605151834213966563224426493176818568408151251391079393032138205377940892504424583948937027152949058435078835032339377720080585068578810851334736678520534571729361776519910614099741062504890121126190126650582653362436686801474916754712270830987609077988980083140369376550146984569717562169739525381089577444730325720826270722245111700161409134364952263411032818895630927526496967999988558450304635256522854815235293774864330307463003176100247342847015041505106789118622531527151001919729819596884772329158050982837967888428140940989497043613753635657578432273732200878256035693785956420324114526649092838226047170710777293358658097798830051539448495768363697556715852511875691275446548317656735563774922017938041365228020861722944283554274763982808798837858764740951661666822889697968269298002303755220139596437133978323304672848646142905643150469174072210837146419766381222357191859242450522034101438397492093459184006584249228773204862337936814855336149007638024247687700775839365697491707048010840518199535757032566447051704428309161770101951940958939181808760756577415059619737822506078421592492402751200849393852299716357303499174866326549779619571197703849650325050799548984165804510302927474110859007974676675200612160564796028851728914441871920926664916408639899349838116538490392396969233027461658174153148822283290789276328617675812294416573702624409608067440285844392997286612209307331576999162984501073779513978907288001736465070844721279317937840054320927037992993676341910276673733398143863136514968854446343479817631758943710967631324710577507629098919581930058573630518216083883539611332901165226457539719399554285978473769064018994125432996875851161749259148089862442633081485978793225170648154171223492877369880640736104503218767014410195707281233736893418320607040535312246181558457035643707442223287886203454352279372772170017247628827304714449893350161578262263275336550331640569935239613188891529269958341553676682907860363027753683184087406367681980046765057590171798179709590499072253579112188729727398720137296567775319138518214166121791206760006692337900202660406038804805028063490226107727442192017451965024605190319668073618708897706824449054082162310298455059895949862759485208227868334854718444055946640976867672915302020098245942507442456825406744461517269194041549517763365811279605926721386637213383794395945126974131430436498958917917415983879320522472085916876614316047430777866515638056990512893989379040725886332973448715150416659725037299427374037441846612235712108108735942010633171486441400766799367729165965021822359611809810647307077741968851751259253646965905490447951363293303902662011307187280376919117300739718121253939341522656369406802284606740703673222275610704322167806637012612958559607166109665209709239768739587594673075398815927175195840944362246067948118516397963062126667328742662828973943979349798494513804128494203189620015700299391038564283351186188327046674106650512893648574795828530756274705769774676405771398284576331218416665484065015863921137989751627138645324331220133400030920020408162719641067019317296377330188920513710993159137249493036310882894948009702984492380181634397993782073635763736785144493349812078402076977154343095099363068916963025486170630692615738549871385402735624437289714044754142534001359435573021667446993308902798797769802355948172251114828413567773398446450135712225967543394844828165216381663279307945839896741579218878621110508765281238288819741578077019023654022935018534654474862739919446629440387528347023114308310506853393130243749040431342239531252526529695196973824487699948925771573339443334995743826792259504046012301993044123032748621577880932496351614437517683081117407125201227361826551298985339684405967106719904716039233726654198551197148415299562336009849975285753928662645813927098442792910849111558081237789497661970559345348529667519792641823256476032161170882561633931211726166666378392269675005439126607124451453335685467889107268696969758207236979107921890081936791707112854759732419583361248310827669532969288569229957293820108793982651089298202413711643718330074823361680606263826158652890197902687655571987412692612212743834100473998857834280437874421274315162465220114674924880062810012938442257772127877813941573849407189708620815040605341135249937547523969118425752959051030392175125462911350860149749319080953059649910942816661969858034209439351084371718444063473408410387410522812064090744372586072587308604857338809083826694893649160850299124186909840871576282168354717144404053781382171025973712322895181466421670447365460831353092695893443092290889695423950148002133595707167339888396606732315392666730402099731151902925137264548612036691852036757288377600546655303234638259782276002437973415387759536234077636338049192115507319368404588175883950518769760742008060045484406859744954285996225234588992122936351526904873794358746676621649506853316905443106863583110192198644852857830861528363121204348732464280766570640846130424696249201379372862315953317355784836267638784033480120713763540544245079194448568537597373720926471119266032584442885067890631215873215742170378407929189508760307217577447842721495754932455393433423333514354141858329360139668322509691582331486973267316705327082405703447500491241772745054234533008022358080990551506011986981701326359923427489065988889830832772162066903964106986058190389510925638158958344687988718394068117562834930743365385749766682477798851172446742782939461138870801530907142995515467794831151612237757512720754240088424692958332849454584872723393194482270241827194560709027779631866290971877624771389584905689134886730705022116315928493287365571698274557892175457408944375185080748141644833218390442065567830167258496765603492053726977170045098658887152524023884211541243745085024554230654466905441859280727756215017300420317526869485682722110953066765475832286815244972018906516285377560609475659581771865241036079094600782950094899351668986925178498874007586256222343954583336792466300140111274332702193058460426353874437670924703580429214887626261436494819675140273802733042469580278818555582711498711599827468542849039806909184273580335668103029465703639251665419929014605130356653720423578151509045028115314457937429809378764914015918107510673441558139999012031633764517622365148348550621357040460719092275872302985026615394158569288244345768564556190641003121438650944629411908485281899112357077605803177212083027164060550424067805074662867613598314544235552281271432124980611907824075411702185602843507683980046217877786095733232306458083412095092696871862638324992982135734555094694500881266105668852098899806113692204029972948933547144572180164607974911260655484228932004866176651938675813868276813993121004259566497737121691981035905791271242360497673719650633499743009759265553067894457006410424148891610414049750339584885115284000716051458360379370595522244024656815358799702770391547287189706875996336885972536278533530347467836366886045438404682760297706454135582144232479138705914375136906775880878373562075202472485873887441428144403174924825735725434798068192273898867677949908000203007790601264013275962798315812633004379290907421902274056928130550489284116993196764545836144494152426117425150683587180098535741113074539311805210834191630300997078180343144110004111454726090375376450479457343147675286059154952642827468990890722512896252537235089344283241243263531904610685885107748268293213676488947123467135673709468599866598910591351343049364338764264075070164437400183787637687410980179811078566227805535715034364355265355159825066044783138011445050574015241266167498855558211301924388028888482207808643115084959150945964110739636529911210276077230266524244603390458792954263956675821344758019320971390224615259240673938294487162267229280694041250249061757025623812793083131373102176451742524037351598617339102756909497606711303776901906562696721862682617421848305467417825146268927522164061112189347477620089760144319045580471651917821536596812995032695786429109759154950914686263027371451374240084661416057209337317488431637859775380873970873429425578719169355095102662675580535245581781308109368406426997081410379857407062901594090839902795022488563363079352855359988770189730591288278223727453662657599588482843867079417215451490449195876669047806338022309288530961371944352905072355597215034652653016788361082448927261655386231933557641382205593732916807116101374072285588346286068481828076196812695152992363222152352164664091458998682647178506352071385162276634237871840861658924257881601421698706564664672439974880770026598647092999199124095415253465012269461079504166138370112745527015280962073245956922246236302181398857249524776440003158966902810859650380008277353099994331511415846205193609531751844288607216265428179952952420079235438029134093335487151101610924893791386176005277207744294254806013382681204941141343602308837461468441466940394709621115273440254675859489788005758240115339320481595563141272702876973207921664578978859698204749236985742470375587939924532975926720371485634032832844413319684632941319061872825056260463579605004548522119782729064186768802946368836765353521970901862940226698875551394874457500620881587943762008598585058096816883150799255281781707159920171241272244486423406264148620057617170897100581578696263724099708762953090457184816767607743266762454870103432417164476978359222906978897056811032755149461838124950517487682291112784624768312011908555646127683996056156947322558455211733026915922480631207165592602710328284775447299540502748359880248796513681116738013169757669939420455483504075648912017678900814653367846189712247368036845276732937239958653495118806539305801071634148866811711747242917583500254574407491465434909592987302340795115305429403036750711442022864725259377817558151367065767932313174210894643311574891325634626166029805901430360018677626444752692646145698757201693330268409732128915172651236763607204717370561752087619660422358912167979930154364259221876530495491610370015615997340269377326130862420334537001469844269153818883484579936429340757755646998685575752358177126606881364811477278710281027949151970260471608316003916508201728687462967091583110215005737707372400745782047423943337847138677611057414059787605606726538960521611890551164195413359767731944733751959540829994084008861589289473075971218550932374221199504144247720010623823957369404130946260657666864563320915880686112956388925149298363098483963966628456714057885703472921710081413359687918334384517927093712046178955624382083413294648087633593017495556673206090163538933128898298675055787050833366208924912115584075100034373575816844260887741814010917829056722234519807014000649721897083455828462622210032923189206057520813956110766058237377749749633670907634413096074934357074582986242234555233594055362960571089528170356929571586826634506705379209183139712200957229768263674996576836856607719254664605303683931772155713912902328503568460008215716847507960227070035370249386352080249284324035797941634783943190882619030123470759260376961063889542112155651405938060544285450768844801670556098057971519602588958800846473418785646846395255719297219537437485865233266805382061640996454045700963307313950332798259762114918387193269431366350627388000085289201289439103030768860059577573366948136231016567961612446750196072687531736062340533616614492448902734161727528645480478006071381538763278906757968103080327995576466679535803906680685731289184763638999178575974952871515927310356111794607271726299591563200361853295795932451039579574521868551403737446268013047963141917117065863582223221251625839958315757711714905605874504243821678026451744326507342986801036246537386617913412577431069529485894365378267844941542050281961528454204293158317814146609966724766838519074897781782938747617757577367404427468724025344007481836809715137311717268715569337237258071402236004236178621960756256048817203808914063109439337124342828987575060274945713986812514985643907863407101980636990775020294296791118701804489793155348556192252941595401982548456719465813338691012278941773357617813104342628387491345283226952742870753253231770601470034414272355280913188221280182364939884847059240457857498991959558036109873183095578557121931734812420775256610464071618716537173018877896590056906228019473130735187057455069196492507480461471772966246465525096303116268401511403529682720343589453137992961683655909873184424028833369190942389765268982343348889564188076934878118413990100391097655044544323820699914968792445479139736974450522069569661359489227855846831839231402066011302397635219073321701351813134840607009278582516313558391634331847556409548067922657090473763642775949030407531267957781966468522158768746606897826862176513468370316186229699244237855468514365204420804106222345969773365158882675940762456985529736321884036864412141560247750755483654375560627446290375831516599262257100258908098521509592363313211067528689558915080533625043578012957024495690209997683689667913151005786041562976196085120388804681619512884133183943960263888254340643452944982400814995563934042255641310637525006678653119983530957671892153083693960373109312132708652810052813050211881191350319399766817910804661641112599312838658053964521042441920544786953509861774544410847611637189198388562311544306858417414592984764927508801021999503266639945803455249713024054783596273408429080228360408797106319257813242877926321336161798202216358546983320668007273833366373385303512744778130082400010118501305210285175368907967545085793174103576155577011073355348091946999871782551444698711278686512882667214331402536567523070232605659328867152273544022925673082167350966339255344586185308321349458952066968802928456088895067790810191534337758587027447171146537145484540654278852485360192621134820870407870943590941790149290588869726775239538083659288156279124749661869818326117128839448420792638178753446820461198408708489146575016029985651443446327795406234062410616094690806229052197964657616002588930909624419043528735659592362963542605137793023839024232339030478502149112864623756483201005855513228672465474552985168420159750099895565879567535603072353612563678402042872047726773668953512024328935217934372997881366014504517946300755043714963392585784306010827804018564269242270471573304679140251580028276423655070218606146041831874334824379396250378121346830657901780159977237689029819027135370831262122894691955974738423599949828549388696153259892860145043998372337269916379625014743137313312818926780997404752834887614110623385246287346489447010859432930127549549869201435922525203862858191414879794823331269712639666408846694612101025435123339866857061202619371436591555981367918176383522392510315613052272870608039760910036934922565298306003859178892552529258452187103345891432317122929247053053110272765216763972837678657347080292183094235902815120239593870626001012385603141346757082108725278864687291856199855058723781823373385740729239120985258395720316907094470388456633523579572860718261484497781515256534953059215916916998198486924880318566157286033518049758122148275271209187852426644319996585103150789772349225909218527774075053890339404732481458856885127133644315628216049917147381368723378534895596070367612381038625480530140281941694132489147045715627201736726128519696412894975595278922268301520409200895014753390120524276498759623200683486112817314870192019956267095379413022805296134245209008017282517729304358798211686656173906561813188991441295286216667254885214039438299526578935462848194876075251078382187146572556770714448875715630211766102587412756398932979869001738982809261975870983739215129305193615434824710706366439977721853993156322357575836404248602704520801984823162836233940310135280966580265289736076845383719239576607244075906190563950183731220225003345759917708715269247829321482806773115780063915312472502311854952492014205774494547412949978685145502591073817602650496019729520975985826915035463233418571723178641194964488899131899960548743810903699698566537892008137101136512431357002116984424895152379791894009388792817272131909900388262748195079944749984560451000503464175773962288007742804260511184405411273138739445888246662052934840793151181256919084463262309211393339006213085216323558603636038120722569235760511831919584457314209409670883313267051294695256616095220864104343158424591477847734108094430451375061453586240384663629620169067906612005450357987853399744723979643442031113459326196758041518823419909592655042604466654524355183762565409245864219142024355779277199996508124315172715204529149130928248693648138780936338085826675211415021315119336423618432698712905203928839514971438057124543617117067864078821341197092158766363729995781649160315660564712531996851043143959895093698135111220383636914833748919883304156247423022069279805658290367726511906982231349395290735041133938704761916041886518427602394713267773743070644234846965267400108828738156078860773557321976641198874992871743395462109232553835902483736124806333812978305122948010776882346320566597734625165353011852282801717474559225441202680103069656419246620136977505870811334857772584242229788676931449659280117071503604359459402332614506469681793742508775247289184052616915737862390796684965902805312860046623507703310463164720627668521373140846019426986344592361563647578189940818083260055307712943350343792644614765806540158699547457063804216445442003773749396843098241915357087545526115788168793994109611185167610719904526297563678656247214207540970673658165983671884830612765256515386818929874750529023406443490388032466847048243151318610473435286953257433109082136071349226932212960438571995435121538687671992447421006852503495270920859025394629443370836995264171721548316319319879179748510875767355145427799387924590620054238228867528052520122550677910792819314196583086782882322183889139390622459571980196608642358845987968198440074337576910669999694709523200926953191771724882302498120826528630294195778932858402725582039080108360790539367539466135961364097181006402926590132751749361733053051815099741785855280089287135291501658933481916408857652173164665799801478324720960624681558586030433612809138242810286252259289104003863143410021862558790292666666875446444456504130564942587791068118997726076523967715571337530716853707267872902058087524381837772144624422245627377663506141426146223427543995639438905163039191014597999591541905941928930145373314832397329534926097205142587276985250399345178545576304609951731221672549951645442546923633913632020291348282686849626823346542769627655363365981063757384158191206495543099563338942936083982202279872346682051722533601606206754374447305528123648957275774503035252003403818596561997363369274149684598373116938269374247928804430413966364677051457379344385793038020588277046615221755865467291270231351209099157384835539975479066871457106094445876781113337318320482238168343425618082766325515583474138990798244508465587550017459657838975211211416682410495010115715160676528626997451738116385172201434463978365788909191622807247994590724503638322300536144684283212823788863249838721239956294074490766880488669897474648141627814915728310900191778384681062423663923471911894167642905683374972027630421316742613441658363871399827301092248445458910360555782922073801474185102439935670497646162878816496929946041871654946658717024321353254278578205396377950081554186240795547500028072162865816716243122001084249881569745746455495451543954757571786294911923643554307396045607441231182173186061176407950703304567204319545355810610069263809504117442527705578075036464855099331892538168285667539880977553058697631366105471280243936468907343609620743140047762274402065335966566182168494410047017614398348016754713242565500427467172038533851935538375056253703633184730622676259733134516782579016534993963333911793320725800249699215826370884653869927274307643904118534960458089670898572814208541220111997641026503735276198356356490308100689358916637448672411772142208020450834153000055374532989414751120132357717564284049770098474988236895536811476791751677359610709093371809706045860680538391876120765914980352555761483065405014346324209255852427415349961418950754990759214411183519367168043426297932978908138614308866337449234624444216051103203314696080018764517190492826837157413304971622055532348262921763466841460271208914087338296860552812819222909062633818066108698816736314243540928498085146072938910841570064866484611039560296256217912986846443094813444542021602190807110592810535411067235936737933579985414555832705214652566274711374507191026973639278134772562199176903713217497378698969846764522403395775724949260925566434325251705085252898374240634460354700582418548862068776686243227018998531476735916350266727655495357725582759470780447196878336446152653247630932328923329018242703768949931056623136105655237341207198326239231767436306190718274784348522852910590834185897168660908904541849436272300890541252956568873561442942369090098503410699829983473619251384035001680479914902383572592376697008892791961222881894779477172461714187910103762587878993612467410443561959686221936152125741970967341312347792915607740055918892889615250103851860791040184780610008349647527766112419172634899244542093168246678646281384594562715149731373485523476210661893984369600458342883687365538068746195357263227113402913349573495401839307680286910751330690738860424698447048209816339067178408512086049581887601493494387189041603474464370883493410574632894746548201873655648768571349349092177412501735145301347178557053868483228849321148515751754097991272696745907860003473059796265827359384456211362627800698325097291371194128812179477242571503042918321672174854813475686407198668746831478505229231094609213715332959621204137913254359384805534982526653095415679997099421347350686059826076691175415989349988949967499108293803101698977212516533569833989694506464032064129401695506498086477461988511634859308107478186328747553671041713010213909253688951794068028853649773014443983281025074737658969288522126442913580253749867259148073494356181127363262077719445741338538298983858512158751313220728935869737917287873284517055841792588474808091234546450546355986789740366676867133509045234689160384343203417110313372891663130365693809704878444551705471238185094744070005120113083074164073599919489544241696396905107057726104581789508731916024578032449693578184847610082901593473867996321796170784213060111406394827049016249688297524406208565984372229680286108802846787491780218902277933850550785294383708133898205676748728323814472539103931509026599487559625711895642446447236308139838609173919411711289042047761608736114933153899200808437720061823072704956348343320117571212802893005004282366153859853508024206075943079453157118666050237427674461046936549933908184355405675692292860935678502900439565055925693526329353566666281238737772681853163746670467367515086403799496551071254465409948611639997179914852782306517616637071307160754088931074350862069415685123907212909416895438281076336362422027188251486262141528036528715886078466823045849763865263436282039252199742581470270416581940224701091859391470668167967513058845570201494231750676727345021370997547094130985911207865823373927342155231010743410226752786645113007137062632294958924892451186138834308981503633174052999550363034259616368732814530215849831321346596361356428007909143529606864125132004744865103571173658179392885958104867056261541779757579872905274532828800785995969972106594072015050604483152585377441980181808611670364119508989280256430060220173489481270054698329294279992911116918453767823577665330342234335627331914816902436059481357472198763438994728226440108705302154623091143265807998656331315202278504040840502445866709989509633277761361025167944579694060686613447406545767497379083870363055936449385701313287672906822466272378073971891386090666072885369854246620284491626506955257651437910903182332633704342685223128269225303946793880578142394566541393317060120569931896998270560545296860979840240410135318126912752887185059519234201274910656832383063026951681430197881487581449191925593042490423513801364032891688854868038533385205297076271019441161789423016115140986156106183688597010471970726531845923243688673342538366255573850165679478468181963215538027009650624731460613811602152953211696810569178672707011966276795037851396704768682730623046128397743807518182555485167287527866219061095317279169771051030766123982897291175613682866885237455516591654854865691091581514326129381061204418825242783174892205878241690057412102994052321385108610466628839670885316429483282952202286680012731724789307469606022462034458106270898910599832738097490595571487175529630919989268372988427639586384318493726677777411612588242901200527532415341455586044449245899037193500930184783391464913521135997833640389328812269309042176828931980810595865493269023008870304977979127796804586913766654324332386458869204283010886168594965637827513449512211677644550521491100492026108274621518321822693552544373009286449189904566193369465581628883779606276674162141004079083860661631548620667829824006549996821185426982498254323389212133491360375255254802724804453243631409108230162657055673556552073432408118287093105777160632484631517781783045351784641704018203354486670472469469664591897485754174072738071364144486322333673045326178405091486473993205093940335152902001898731544975790670018672810580328882912632323796284880149924812211458763827607365571435654237838153392339176834826625862320615470828504578140669555145906000124958399489066326409458595204693223124715346245206212839375709672777243259788615688209155470441732442851320090104500192612977314305665804550578664755838311928101509298139468088749787504764947791966300562140253499854438331234657537068385954841002475142732053291848236453945652964652430737073221978479821783766954781433389254518528739976484037422450184253096020206886900698724542579902776280714732004598588241539023309473035818230842640831373779677800239242985898243110894115402067876944899082534102526969354611220714534756554279682203969680978102414919547330765493357004990345904439020216760583004025597310261845299684106825883220172340407967827737757453962010929625471929465386180548967430595973477029961134448933112762964478526480894194368107003185435367302999308825607179032258687935014634312575601632254487423981562862625433985260818229555998984313484939998158925518034444952155216425940385904931733805955820739464443382378763877501860333425877312430805630532896827269502618224452744376492060095818621534799576199676209431837884898539419209533112493393368493569400103712840175009341908517961884053997618261986743226798361230963030241890786898010938275785445886277022843905077418014309647775551681008864481903230030967905016289464608220174008687569889521238850228512920772171939095822487463439659152276593998931511305474434817783451079948334344662294437130594567926403932335693561036224829894569402905610232565312415263477206761453514118526571279674090620623032540970220077824526489575165460207253019403072096295631803292272938330218404764987781825810677084823846256302823150611192459818339702229765113549223221892539536512542734732325296592689840173421767540695530422618995792759679049027707142537589220080695759176436833341628492560200520975498014416046277722764863635372223711747171964149963333664666420305002482732859665859805361769398836162717660282746976726755663109902945768478384511627635956846765990154803941911738640381085057842645666065596654196439150739283337015856406931474745758312814354863286872181091206659409759274588573764810803617849640486239623092135511096282651153646852826007511041479708074042412826882624752595766365009557143272186502919888907039226519998241636499402514836013615434440844924902849511720638710660656142135771137025364030095722669635473502622679656271758295880663270396579553543283275151360554234303134529664635968168269638413577153730213301790448397209169123092942214496297074048672944885400603947676736988380292775558755492794716367908744535337399811212977255721661784694812164796095563212064633556181034565359604375182155455733518023765322086670532549961486379656340122847917299412505261439036317005204845047300484109173004376115102222603268151906219463532156099585393573942746252042299283342172335681625014678221502732095934416700588016751851595837517296406042959894284182336238064407988300431610704286321297542593772835933828970944114353854622077539254260749234277245835637315276310673352752958917046303520443386844252453759329482168890825228054793097230306813102175733107184085749756504484827258593546119612815618426123409978300857337034194835793050599256929602576206756393775416778984373989076519514263047759092645965982113131865195426876112133690670346900919497521067540105023045614250738403702907886642618288792482675052140785135906833486134396927584117090790717305104800812473393683617553447456861428478385169149117695900961719664651551390938237116342257906670570732991442981747862584429023322926739374334543225959996958123449998781386932177729949066289687936517476424033754627705543399992196859089786062234550936519037554617023739345828106200752169722629395260977057004731748604369689049497530496039005842373849843327941403868254278016283388545461256239744456228165535664502278500481290864777473133812449257114872124322318306439880934954304116144939560298844827015303811796599072179609136102470369275667027185778995502008226538580561480665617083242883796487622206334320519598324423231409805183407356280246400002132423913225157466787834346318149200492988213514563540299161486879096180926660292089950474796929426138333103141476958020957478563994155970883659354238602828908099800245181692091295495141446021150364482831553601674634888676489218764320958496711078034209622338256510109801605430587896989247796302958207055997317149346823259212862032241449326478480765848775780870135471515819910975750964315757892885403333336246412157552297227034976513005115052304464186949239318630414808836826532673823662713574736252835148670656699346234520846854815942907025141602240076253839906810483849264875865313120491799088297435412857143733437351157819344255139170495743954832177873109818272440384606733576763087608239639044060668725416259044413824621711061021444977420783975526651743692521135965434792400015940576179418107801691642883882705274564041421080434213880428182752879372286648283480772081641169227036578018153841899025350682007754227172596114370389361622420054889273296685033997577608521817150898271130836562636850962223974641511364015236621372493039158584440494761149199710542956460472776283143763507293754077354348227731976128339595999997224948970639424017489869194481516621023296024324696152590060672756522128054721231112333285444310902259295895667808916593640106519279817836334610374496897504296431520395092589924450526172838474433856095077706288925912187294448317512013776649115875042177758611231264554274653129689837198062441766254475204739885949016989386870886521000980129967873531276703025121534587336867148890936873495461047724764099189090885590706087679477468519385600401809639833535043870477493207048551035186177429206985793147077153645397892812344852016609338421329214205416294777687309791245091062539188537463569120378024129935828182274049868787406403275929379746433933937076417281241549660422783877898371010156859414712177690109479778154594796998471163966042463562981140230622404945726480851774213130075263377256275173010128374353768194360716411369595327044588688692257205326658879175153350792926962594291737047518979303575333253665676062461717512110289865706417305792163110756745155928740125984406337109548604164475196705832219123401121375507588858535870594726170087734287126157713641104465613879664199998525648937919087505191749462124924228738894285383698298912184196106723395257227021059305220464100351499684231818172820060705256584847310443294101828003613661571145661445261008056039130332255337688259904209949294991866033980672585909990278708660227178482567593804442828560489626040241893323823112197575661545737593942970097952184813454480730379567234073965874767875763467239415465047415514800763730690268055419684075595221265081034709781792587315162677424711650797397359389957636382801868507201871225132008654278264551759578842497795897954781057966496500121251864460727025850607045726103845152939307912437943253376436159991197233770271407730326365308101444155551514604766122563029309240584621216192965286969490177264972459906820354776892538738311965485082480223413432577480447318708852702782423013226327655326975563051512012848587244256008619630846810962101444131019194742903523705267503584752849594841405533160653243074044499070089391408264915680182045751453982833824312749543480521869205771416666582884097576653423671720160770657335281352312759804611418263630001738137822009916533328788467994822306994593981657987587231974993087715392378227040272683691917515961045139019518598923662772462264835561607914537320015023679360283803443032765974996622024926763535731881945359024070120187683515344005955516199180498528484892313273052156481905498188379218686592245118529695366479890725580325319673002009654654319685159555307414743171731972856084232202857819447953134177496470342415249382232483965121757624291470717783851594596835723930446820787059622896160784878076559042947251844388244480065084290811469145587669893013623493065979847568529094988401344531663279538057078274313789162129244967132115924950739641211214584217696038372529096979408527407376650169050667811831080210498545309631916004625977197179177823209942029129653084595570647879194085588308065472617874710855672884245839574224876473939571100632200640331047677703708162957861241871847974135355135816221278415209911309438385946651041354169741231994777474647509958287082525320198405069004295486414615101282838912268956557866576110054621517251556245872567362300167583561949161224122673435169173630941689198380328313829088791120381650600242444938666878880788212850622666621217949727644630732351435110440857008018827651936057521387448361575158759757424553848736199667935732124965911001882022183636506944810087374568730739251771400357384924619490146688852382865292968337013423262476651932100354976312004921501836767528018612031761177552150744587482866438964334576720544343575981317422848418343183698971822436806548733141500954054482294417379027084574395239997518947807950594125886535701723394983320915906123801158912751879628533726659010704306381771078380360533196623025110198183779041981486751281057466872121311004983167316941712248256438824100194228139418235228060333800549758713849109103946618828561054665305303155923274176779113978120248581888919306848748617465659331929606932281398572409892208464193922460390305484154445252484654473434317957176872235855714265721202971173943389661039603824902580978150748492011955439045693106018922640067688694160899310394048540968609800126810848856434706043140885352718068336719200792463334957180390878914883542329614497986661242779763465020458407386676233675128744448986182799682685001933157602727509190765365240340732600134798806873665342557754783244445027181948013525872425117108845755992994272854843933810551062005029362494318919685043709776367554368325192038292270390119614964860271780261952368931565870169794135926187623861008083267431892187250183967085032958386208897661385292678509848278854114751475689349315262088691496910764750849069988299560453180360992052272756763457450887902179447735509974721827078979267428137479884897536824374022668302830569899874479150936818140952711953574023817584664363776643031306754467801644193313655538522902227229441001375220770958810160445766571453593162695480655180369312535275415009803575329112609108011026242919368297728402697740873649629699141720839704568305662624266974674598492750288531364215099155464993645443328530930415149888614210486068571737440793663957114817957244310738473804414379071865944188296329611820612677774024202600655111541782383720264787396608625179378459392765586644868471754594174030020943701937558238763001020167923521329037641691945068413686339790848976893476744445139829435802954385539493317955360213091973772906319118996948531988470866449898108810686716452072558725726764386169566544839892186296880016734184510068591337391634991910268597221038120989166193672551856452917364241186756966264278421788272691055523509303030563257633125180386804823574930969342207072778299740131633615795546143970558093730747108832241746290999610514353431701715046457744673943173810174562123043921079707820502058397463083524004483950652388548720704102091580358892920478107279488204364721821624376572363408273831323148722718606010023651281484129834260801021262054856695823577529652702283039747583391135063759319584544237640535062769307155615881207773525472631834693375911258316519329831820231946311657134035901089799204852564668603671553373832634224151658931741207001803261329991322014893756825911831041540386186062354694707635233947014042655624977904282727936738415380999837834579338909255677633092954250137414968482057911661791425004737725573731858644149006193264014324778278931099674103350397585168911860449288754855496035214246655206163462195585347850018120858656928633283973009189716181278030584542148197537647785783192123606077922812662969117173129805869769149115453629491030885447780672679391377512175999422346728299013992793364241931509243440477642660187909970115453236237134083545891609561213632863223718409211617316956655364141729290579937277938610598283951163532227644863595362957577640271882364209761262731756552559644665104620279227461883788709524017959826721698893241612946760466229676039669167278263405758243106722524088762835409784453814113598738491073075356526369432825212712256120799154532808317791071352534417814840318472950016841076340950936405119211797055245385327731544119718731156248325706569516635456337854522241660964671129149421589807261659511015976527133510693314616257524675648719084766190454487971999722649788011673807959165817195338339916964689030090914630022170475530650748060118281890871269777597635839096725536789672400521988278918478617528278559678146361247727266192713787636294541141152535288623069209744157987918207650593227075206303002053628594221728902277718942892733839276438331261751991157510302601325176994952690969114847846665088650729634232706757689134427177787763309577251453921394162180548556740684116591947698675528815909137377560043506763241403585299552603769490163164030648968865995304430672688198662674029362897585190376849951828619882339394202248359306688706947732251444187482031615962411480105187597898214907987792636762401939635208995110417697305683264184396222191201202968180690307281046256405770450039737328463472049329495460725407776110176821719937816650481632560928090612002683461678199628655716417592693102955240724663419722380309608093869588600586939972951738222162514957260692963118057268583680165526876120919258767377269267722985419935286158079937594001831091964580495925926694195077501029185466193423542105019108624372976896836734500045478070222181122979108865057786610251160615949483291494278023781173878076022621683694920677079756250101550807200574537006752535019487548816117586022833323815795821329846410849857473628284947080414905964793856218043412218410983125270659731804736203016661676677802574062033661792929776783083809796178939723055165427092848441564242879473843598957924965551961265973903039026530051556073009196913656883269592068333403504164470539414902332064782597743803671865597376541090681663033432437922026105377466888760712797442198788668348981944770681928348605348391192044170878512559276396111616775491325464238728108566352541932431894448415177864281862711898454586451975451408925034990569347063919615818937367803377204904389172834644943121946716320905902717175902345157515061606497074487223752699045929907174927413138700209738342256676566119606671870221923305369189548802568409983362394802872674034474721305419962627944735377129355427130974215442865831470502761914533090036802347687859736210307690713254009697907902175570098143594003488171989797934823096323049626808706750674188616129336323095518151700950735291289599661149859332740056680509707663319425679067543228839988131376091478994868348322521317894873180050550948660558825395514447510273861328803759481000649357899942996538314666305034693884165310459227076509612870839689614707716192768607714945930990113903837558076772798768231227610042009193152114300761984537201984403448971150292009628882320005857533225830574640479327070874400578022617765063647145072287107960363804013357516320569320378772818467089741437174120416634688725708101801740037450284719236528302299916175409982898913439121842645580989248750241812943497802787077836592733625134300163473914065925773744425047948470396941303789046703290546168622514495063479497915860099141490374332712610599213927632161474752207436596701289888576703168424608078010030068102697377724321733007225640991133018189662616403281744998496099984993337843503013120435767905570530382578328530171341587650491506727188058581930612663910525335651187535624474866385440646109749777397563969091971531556607220397442767532643157623129990022164413985836803236798712245691360691503745452181750726054832152485290189186186367848563777395525853457625576067585990400094162314228025348747505696825656469536526556739274150202346759331131826682654743222868793202220209218073592825658884515771980917436637502392715529731716869884171455571363388399611073213978073227131549616599336063790475126442876501609782052438403653814262988822766120493669438732038580897234220503844224231748352525439400272983024086846864284204093582005904770159111037422248790716875735833426105733400363949933708831739360292038677393393161088781682471982298040027099341922366003244612291692699903879743525085916563199163122381826985019747442312351444703698864315743236457436912837330870627557472853679771119388584099448437996505210396560785109855791528194622147552216951500080773973490771594684901738271935637914442045033372530827555658111529349522885567090080286201933140963923694257578476034226370815470555798921548371483053915699603309298839503151147636306969918959076747251246392005486723400406482234050334713355635871647076643644758679086908761541444045662081664497345971294081951124033678263585178542664407290590939894304939718626539310647836172713685995967609148439951089851109299621594842179329639814994140759315428305403237366989578961565257048876626416701939698692773588460573141065058386806410556454695523361159770050965189666388194867863643538715821307312183384984039149406503864618335128208762240183040834260496399670239039443598792084804965170653950219442464133685979731872350768040124742336276001753473226952526943755325217085899608376221720846271222094272660914320664941834724324986218010335719855037805790105553858120046752546860320372660378089343944912520344408592364475172890390049196790416255102377532235388603017101398519232144832741245452352560162483633853832055426196331646960807318625729952489284526703075413967243317540561065491496583623486870178655426443310675902202641571113590008257877957335378266797501020540431304113793773269146727804435715732785149204085718147933105981684355835755962285730577167598652907892735984392423936819317795520273912166231043071980789333692151454276796436587177151814184779855943008522183660218700879255456269889059719011884546921954514554643256682098053436106224331634615609737320445248669903269702742916705247290668006924747782967375591925751037276950611715025068205360105614297202446465258772453977565797025511694201876263497408550985907219924087928976595349344492742583456554945314611765927395729205448406285590007619406002027985815880373321832997965067108629569989824446759992533762572756916603275272657844297107512622319495091331827276221323232961737859001242970034910634416754844104562118445522090976764301232198845801542189766240370153317450135252922588760190504919176099827248008599264364539124942809921110107929715713766380617943582621659839167646560012702564180024166630763974910024162140227788141979464752679292392644063140199626875245174971828556157361450798942073120325260503372066914855010651418993003291882532004524790029033813624349098284682785503622554301506688543113313691819080355317021935029018852156090510397281121203501916948010703267552519995641302717331125459847276818201537570762705657154421670176475580140206892576973073347284263005203736929182151472370233965417843461242923395017302430045855396331813393546076601229219528101423183852030095062219362209052580186938931647022013728311927242370694822722788071158376760238105230373398287072921783598877454809244388848880422405293051994211788586312819264721069363918185500221440349216333018078169743502509515006062958559065937366772469819503934062511112088621220230166435121341889571303134729953459848702261007422297994808377774449909079665033257792560692184499518269471946601002291141684858434206693048947110943170593439352481677444485939862935570354446274149204205943331098988155633248257558579624642142200281437071392431229382618320151494288198526388254088572876989581644747457844882086199740279623864410349943409383802963076301441320350919355169707952101963809980695407694042901808608969399127311269002644109274968182052168704569653700886220436921828360721184930564097813657465724175635438622378991396102417360956665316219601071953216726806376079095672121998245209912685705883840885986788364406358273692859260502646176512022319642803760311785873712548604102791517631634841345210733950445554101436963899213865175686915407230616087678326183530561494827760946780713730259522557423646084561724368995161381588029320884789125423732843945622903072691856862339901358946899678729073875174117055305327413405143092219854035723052795615500021827608949229099106159469672606016130342963907866377063496191225201679758513147549325154930830069643236539489852984865289168587113094513577157844681183784190557261811157763762212226950708517984193462320110211185110678154614709667734766460262865476842843023429107063862977913010137257943539791956574606504915384831227590508267952815972859521632922738298020921388371719384393602175857707859106482814791335379599473126437769426130089807350332030770484028238945467225431050645202019217706432039698480283105123194787797390340564285823584894190770829835310767118654294564060498469044536699024201433022686429331330999940504560663156035794905913023121020958886546089063932050756181449409241860781032535014970553784067328440891966267150466538254778038837503511188623630227694420847458834914853776980001228304976016942985886729059881405231915486421812793350935443514116369935558243152498044367270375875485381048780040370697929705359180129927138436903934996367678376207192424475415507906215765834988352908528083818348376271338034204813185791004277803997562743148594717585889164760299746003614175475116675523443468482493829950439008098724699550810300329463605812691227804608502199992028417629276911591551174110782190906420179625804888242796209492857367027988486312459162805222546684607001459252214301673253559722697990190030552116238660995398166828957653816580034389907278564295135099775357296178659600575513112656555005059435905556013782015806362627118898799821052127758721610354038650552475182570960736362510108405234846990569931361297493879952998508750057535449691018264337884839407419596990370654354560772368843453299193417775645364744643861703864595601541823292400946366696408844611339754170075639753490776143444776200534802077330896914083363916786516625872739396583407198524646417893715351062850032595059934006879563212380060929710708154385315849287993383207905329936479349596100885129978010584185134814129496793075136429041540373534765932417947248038393890568208331971529295321914374716677462033954895459359697883567342653678745339417870945652967526621329105038586193743927250708644722949058797073689517522088112304421598035690022772182977810741003455426361736037422708465264710095244063341778388436349689532380287342855170549182934052488018309717008323671736475760399383611903453066359233290925415100408564071896787186908197345519984024186035279301328525004201462127211144454492482158498191262174361337313474217121797469162688367220456005474114720963927250169958964729717356737281460911952639869296154061190791388393493506923826371584157483843535462496072926611283906733410922749581696404704883049500622437647385800650733352028947629121643429690076761967521558938150083910073441743059334387007474664986454116263576039994704351915657148143045811085130882524649020704330928469359066011746977873555425431344131081876280736932988845794863448714728134303360799180679331829100201564106121006730336815508978036888188498408197114384180923111369003537441352440937681779823868406923307161614045182393801390980147290196736083652682817094578106637864144157273740569339098935133681812451853699412911214020308023280187754732129402637392428014660108908501992090060817390361284681842534038104141413636885163821766399314838570933485347760638611886588420140268202420031233919075104929589735177067058358646860078112469616975290946780549004642644182919183895306906477216397446857559763597550662876957072642878254568156944131924906242825388712122293385173599226022289784271172300877271883404730297044493928844394345172739676004508593355206580586150158245343983105453934371621101241446893113123553174387061649284183068143984181398428439134390616919998252142284245256571596236080040176065767972857200247005078085671281003354912319487022738663461211587422438241013905982273901201996438295420442691293891393336280129293410327826794476536182022296859544847992594599330215425934290589281796698448990381323071406548948173062012660927582178975921785714851246376996116812950678033495014831341359813762054685619630778826319916228573687101194188202164058935340779544087891231803455746495164988314000788167453151618385777648080621254865700018052957402340896538704511811476015630231169153610320845447836907723869115295802493807315228399530407018220475845873600175473672005995922733112562251032848801415510711723850570752296055071285757459129674628174815530355271398131053545265471039766357960535324161553456643460028431447242367438988509556195218362779132447126430838279006653562027559423086269778619173715199239583717973007500299052226879150174310329630596762801051186678361645671807918659549110406853941652458066708262799551483070296214839136633083449000306776735487391057502423074620314146846761046832617327540324802586022692581988975116082357224589356201411817376992808821357155254609007131977944014921603783631711806917460066451677998598489921847331481451470862748689470326453856341689526212361317139127067146818708774338930695289484823112553549838960799959003228633808869309154756362107090189695113570469493614758807461648398344481521736276267087876164369114687645152041571686092264218110583090464302800895208141112067681925178535230513284102451433601659609344285548271092174225700490560478667271905761023423272120711013720285510287668526961775389846919316601209108599338945769936172953777826292991388603234562370329051726536833755528403149686081989596549127888213806078268517756720823908445550833833084662336295635514561766594740379238962115907095558110466166497184470967131495534628825761634061827460827854833226461957547974289070669019582005160627737023235313329977884948537739086401686438956793727854649985967345519691493387139257348413986637594711792068276247872479335340835289796164477921923839962771007121214095386890831170841237908925509167996100943599908887529203020752055026145507667582420844554652030393403594047574859343603842452357836287854859460792092993981617766001897722375876623089466916611747731721880972171135891892572915436788687381736321311793249588568070141979909073934517471143428623509413933161073091172294017165685478320857414119945572666437112426991230842419283531336317912761112266212378121116076087224344585892870859048432624383714393685294114755386299962429760296031224322508792644213427570129871240914896260598090520959601322514758733096326021591153751223851130781193990048492869116538520332416207842851234810978057680692031534552787955866113608017741166494287886570726723864603136334603494164667073311680916166655348502873391714381457389502316442403262153234193120193006863556054284236647712560324142643865431014157046779987256691932103348809804573712878142157309560723346830828598204610635934641542881718831747771253353960119424621803597324600289356403573000405476816056924168232928092517578270746983780537613144046624519195315950680300873378850694328685019443347526248821074486711919905558089599977932825835454727758886388060924927435937555618271684446323113995201160317478867084632610110552901247549493348987545492311521088940188501465770242719075359039361802779209068312527810617841418683453804960380311261520807018636768120632531979350605804322030668498497943316822238970299801235104139491642427093308231351199035871061451982911937184203357176304928006854736134520832307189997876346912871982011170633075630937714967399646158469360542478863803272150073387175256914930822831586575504693374036427685704795188313560974648867185251783110703051383654363011808155850046852359328653953842961066078028025975529220279617848860816275240464843532487772356687190863976273915417489890299132808699293970056626648261761575056069134947638928297251923246021405345929553240853596221086231886209358969070628342803201355178836532917477124126271128738603792327548805473759919917137989680415082707481065381700184653236128782370811613305558819239838253394047556094382281062732275760734240442806279009687083925706526446397285441312158248634488798743189930006029706995546307615009690469945510270801154027924306015454454526035015960964354548005225618685239843622745489578003695063784730832151850574398894236643798737157977068681972325027699604672170271508789139619382814786946047380928920629325313011361869834845811908720503239998125142307675870283510627108390171285182923992538218037404795131589268401776031070250102902485322119308202772700620101922027119241736498761174245674037988795318632616374104759026396963905406896116646063820832242472792873844052604303991062453098545549332869245117214557925531094080602380232567305689533651488432902070578426901246426135335049450317351353047015282765131342594682756990869503012111198524455488337215021586918258051959682423683889864076871896459686599402177694030134415264100502412397639047733313729168004335820527570354748823440955633759010622517486316291163433529635991334083950140538952100963833491671622583157766178249835353623451910792242098421032168625215974862560783497796713329880285477731862691976672923678010633740824141773338788023119756387042347144485743692274287825687167409574256425622521238852852275771169200513168658836859353719466889789369744852945785846279477135136096206197947543316875980360950546688685515878250222660463588275366724048109412529136887669210104962461342047955393396709927212768529957068058108807770329022842209441596159500620708593263706037908909115385035411942684659195487684027260720674023170607009889410004574816992424562387935557662297691017759723791000605378453377166844360503099471384302492617930512460325321593098555919920944894213598099023907228698604401926625321461023628648482390719882990032564743028923429614965821511775939420370778394055565227379352000746452741678935536894282623138110186909878861265471949097409092131344836946617855796199414950944826878622798473229206652319863630463667714731533394097513773195959783185493281384132802850454705487188347116989432564032498997899986314397745657206162844956720868916531667306184563697785391263249481471455278767232431621577057716937088700693218899356429401910553997556011824942890141691127771648736434402997199034970699195758372806823413475923906838956685106088923519935659735376391411447645489808667184980051612336250153245966470312798199969961606681057093649748043654197167728278544676344720902035049749648917781855077510111477026331913930931829282363401231487805521919100363520460032257057871395577441230185329056566972453399932518445323733945160206306344902599973137996179953716307644000302955183080315620902861786604495842910106854054440720969424518458616183792047112747627336519882043394851666642373026823085154517869400437417803546983442658949032728478543231878583287284091119674128765506495530804381828339002264276063302005274651489320321711447163891366604017730064979074506785993126217982139887289164148735332956299508196723887390139892577500527151700311278391016147124020034582020040383291995295075917347845249242178855226588611915291916005901305074589709167294593109547139482175995123286336404911971064294937858805884088810667161827147388811594805941337425652775267026375496982635120809238943357824167511818753848295003701660601105867720426148504067894002312356566650412831288647673441366430837835763978163920760482721553125289329938589045686450176060519957211772021163860134707734683457821656835814317620246850961246187199988236575066486284139620446104761235601079691932083827691495694117800070057249721682974395913266429397530550195457588156473584731168309801759470401335419331041730041547814949156334167434728844742995876274776228425297057767837204551441975163549875785470164570876281891086966317238855771015252040890205873616237810585198665714925124849881272344899370761239462740872749984552682521849387647494090505336673666851657216880991815937759930516997374536493438499026818173895005279097998645023869419572928539113349461389533121796507337851434841939900218702288995066329930821620951399542792442854520312980550706704196292238332808851412150638239634351561276333212488960559867630867827265773316047621341658456939751492609725242742189094434488792820152644141228906496830060360136955938924094729649404481915409336584093829238874030463492190537224663854017819903793848212014158088224904937148937734944860183783900025022431021568293757110310212530863106450687428289374894470062479375617353993800296892083928394521121944612186688983129116185442983095153177092725991292339667901955214262703870062301038219659059552659201416836555821974055536883901088825845795370747690908288717611213551055629022739089089682588737455588765211633081317793714757819509204386360080899167811973422103970648283087229405140008895645860880355000255827141557572868642048108719174301575458007373507902664187664066877027494709166747382761319529147786461153697690004613874770908322280385115107558683211788699326085674940766075729743461197589646195326600878877985999692120810569057499331760579893676442154291976986402342319503080502957321100667643075825253491989850976458184106075780118671635158171461837502202148858810026458372546659750012356612217900182207068499662638571698644341829945496659071482038422525731830824625600194163576489692884937795924084251410119602174099489102950626684043816519934412924735670133406151126573359959039962957739304156422983636336103831434407951848300430250186181084299512773280040282099285850566927942350969162872911388044608229273497894865227636875365175206235158744497004338706693940448164696544460257468438294215458112825566046169068225888927767503117773385271586479650604084618722905222752567407805101358244961013076827571479416616172402667786597976023875225861965864284383924748068535272716655011174694418914345269001421379784057496655889552850974130305177062681782954853709161883767337307411037539888969699708207777013249936438573790532155540903355948055091243554424347920699904199473519147802223461430938771170276714649808166580403903935636178738061566964496366609865054895608779636796933464191315993061405607020515183496780483488709864897531405634464952640066654948414532108198074679261609299248564454931269409999706629325208677059614742351087302926833926073710211335182223535518845893709991751736676241266778801127987785783527898848284133541620741352253563285443230341261238602052066386473243724833470457155721837963102952285728612671293601892420985839779978133338050071017944734555934160634941473976540578887440463135945917878496278532140874248229155640484450676340217857409243130951325808013531719761630918073213573189755121733881747270593242521730673712871494706527939479492309186388004365657594219058607776935625797435601806954056024254700203981108912261788324392819339910728884821347820702561296810418923069969811152448386458745340358724021457646777637425075663485150183676328960158593792583283285850563448149763081139114207192062028493902862271037627299801890105329557561381029896892508647405636476965310410458457243621301530837124428264051324656551232182795661845350183461218960693619275034642221373332259961348341776301837903699057885043215969302130780257541787624881143925067542939155448717915612728844198316725479770892672816841156434634127896519475087642013662115510975552170089578352537860764952093636409630638948588552420899579601426771285630470931852152488955968341587210419714746912928016654138047933157046430441530341552974605796667858644784875737499401819380285414719994769757866738890683443199275462932131380720822904426751947238669431261917698078017679155215027902400796166824898367541342809341432866703728432850130808799759715603117627486995188920822740998295897804680081658418992006238150225121102000551204069916593316777098742472939864634474592691350862701886020337863591232129289561222385977928794113096659586404849171829266564809966120076667210534946831971899919955672363403307005436956270223775047109183460309797748546463701079716854201514931413073408983133149329425388427001473485599118706982791430878241800274060730187130378048743200765435885200908837787566632209735942789103294453615384577629643722789958067048767912379956401465740274739042384844018998674215873152287087164333704536565727050145328264354154053245173568658932399469098867667794358844201018192877252018078362916063712897996132350975691690043235400355845994721010168949267229033677390564395873624324218381643854791105182865396460110608834296163151557370158529517446053396331352499177901353571103368974055265417968020024164599286372039909341901622215314913856614653078912344867370917310373775190489987695874044971618692965543167341788373799204291978373016864980109685419671535916247863853746592105292311441064074074658253268334387055749528581500276804181949658793220920601776590784383674521238979903696904973878597428111158398269832344175407001643972653485287662155554979048159971263699412528668318214246169480669479681935434598717610512170643074935071833692320201673880282600345363229127005668474808937069864174859207330648725991192910263232402439576691536343754802882500426621907918228845686420675632323898204469736402887181399576223732583151499055644314496561756637618192740235659754920518416742121019645576064134512850670388436544987692471673534774176620689249982328262767162729311649053069352435765865509380034439826602394641557675982408681211309718676828993178842664277189161022182408606626328492848945884547332075005920995035358736989559419304315504914450032436921518199856794052828710331640913742679582604211749308873803947616874210201281356757987375977530550704332906652044783825622312629030117005450545827532541404151775174827589921267953210010656275778061871261267836466998663014470147922745542112221587233622514624960606452485682423781823116651826689771541570424094513053190557751353871352016083222255337356016053320578657703338028368085659552548904611180021354165950018319407111087806565475550274757814781890562225218341208350053098511314527927540972149174385974160801398483048221250748639015367286244080706408591171480993577584868560893345283878498366063022881403669020168856265147689547236745782466346194946410142454527683676735130465823590937344874344808587683811347878478385325288907336823739960048741391999178898787501523055924387073173503413876608336159511764560954205324455658474846225415061638524893006778151109276297221923649930128773271334717733217571282361980581950714897962882842474672959234193039220967868615439979951056077432946205067333906289228778286536115353035661681749046800192504515188887003419078234466123281744916194978393036623353436641219574903719507399022404841910087162123081319881046650519302423738842533046646458662884297273526046117771211459716149487261185158478086139426390776600950473889063861224268362072736241385648425461694782448725976142566609755593741749223829360770884727122429065188569953582881412783924727433423335582197579463233782501794136542933242697565005652368780572949689931162281345380218888822227810234355044358355212660074195639273792141102128705544001443396696258324296338382120412962688910709544864761575041032746290690775171950400291934329051690398612996190058058085856221910389592031407898508752090619378470073203801525074737972315814458852103291534535617116943590314214867312849529708146871277167429630544914607700875443207038959024600284586218093592373165896746065246563403689530964592376945542653652440389691178577360645312473476186550526137900330045949957604124372707430885645480812957096952923053536540875589334663473257751831323065637197547856340869221815270340199901635947110465536333550562806187735694207175904851069957092841602555840238821112056934316611476305806602306231278224933011132306113871265915234959169170964815686209392860903304024131314118981594913627094274802161606576933999354208040087321031373475859038433066199225332353228330566324828553037942833500484320122709453954281196229725827373234611730183393290465435173180846127859267525649824272218153913320068728283537571046967461525050659294406315832952848652750504534892071534163126557254800882014874996641738480021656357135000885168886706610094263237394972938580440045525775645659653225327858268189592873822031623878738625043185390392687312873806183325457493493246599328265802786432893464529930065477734229744767828051026926879397208156085440110961915159959016361270204380432208746870983258918562797787406776000958796205592873014298055327953517420002415029816414170469978001099380857252172580684868660778021540300999234506558894714727802644389192800333477873727828928911983125461015057198860404097590868732836552745116464312269756807345539316383233377934988752338295785688966130534698736976798974712373846672142785108007780888872935796493782636125874256806299437679711861433461747124482701707835347138864874645121849168721488997520710028407320388516492483087167059156525770235320830899709864009856961532816055404620717865464753082390913079970568358221475149305722745092288792160698801775087977443869822905991677785380937522711077891225624721341595354225212174122749748719105647354322911722525662217987502638188003159571556086663676173099125154581621511094769851729828584344908072404819186638036405890334812545716360601310581576144022048041734835956009139156835502570988633013504811986454995540404621180145051294442604698013778648564157021668347237177365276589810623453538501077136398400966870523682813288921987855564379491937604574199947470907761508183015185441651692096772648883496443479974157642582263465528619831300033189194475932199030872023198863350207366564219034027962372682512291506451816780225866396706588942552038622822832049903822412027023457012611149053746494443586245054945704563357371700277845318575699446775258703039128930260203544038268190761926969999507134006463180760242077600703937090004803559780812020286122112020923533999956313747276309782071155503240723337032090564656015962487080697492716024568643234630911287928883837428568679844044068636824698999753352740915934647942399807951698334687680273996416579828508544097928470451566611866885054774311564873387112065896454438598192070072427666955146349442766173283486008828567815107011615590128345860222241662279460600234878336909946080419121903254783591051442960816872968339900011093557484982434802472720298481234354656330300168463841292453874889687867249579925484960866032917110661251630159584447657305453518128263009880894548243237756514523217215345657283288304193829052931303680119335070323822278228104935331529714227391968074157960856577824114179596015587589045923244761008332510678202920937252195844295126019848738813005348941208668548010417724019264896296083371415497103888005362160306903620057233982925222071659872945679186709326563106843334473776764659782768336164605991583000555396204046385229356788927966462499364524638208069357368681598233246195735051650842069859882185922015384947126158180638827882365625444610041103419991869045297950805519354767869265565393495212428286894810649056049521934500251956922178434198986868362345512630013517487637784749906968401115159646945546535528182420421588170225134386449918558891645825138359949348933288036138841651468237158776921086508580195264986801754059227402150526892027300243240958892592039915950865868971374033266336767395467881385119127201963992107587214831911556725770375636152727425914274921134519026920765125647133623393493486729780833619446768336828563521734426620555315748363258937475994472685487977701280138284575947434830687226148285617837989856366757375995489139111345646234389930344645008937044735295444418848976834283824575307430734586851609417069912779785093249343905217069400202884150947869985032282054625684991646923361595873953244773635484926116135863055732882834964202213852637136545906215631242658765832629823475214247302317559077463207915952226021408929816221466965117722120961240465433645689968724492776989126779899124244769658685689592652191903771263366394218775329881365314923745233059582756499050846436949969407892484962364358934776138810597987263167702345763673163677737624069380915775120858413985637375926398600015500789788276259946483248837195685800383708469793237090041420071820293121550187765411699730256497555458434553854649312978945017631772845716605239631298485608948109338576277405292322033965931274880472367219685587317706847225162250109937917079789206111534383407387019568489908585343520620190957958391754515479246283968330396943390387828759958558905169656724308134654557632087061578599098694468033842227518750906848189764376755975134334340477493456063029467340611572664566452166678120244697887578018765079914481970229760985663391808545803796063109422494366258987438013361767682021315003062576909757585378554797416232071197275724538674039341248695288202747463078160591127109697801380279126871429352774701718829265641786412699975023142993313120492644685788587932586355051523888154930842572176640695784342068908238900161677763392515663380557372503722278632148335014494203984284489278886454697419767444618415872916242680334378199697103761338638020921832594100300134109571339973115824293147105072313826341143006823611255569036650250607063075157017189464805950760452652712720604750759115901334683474474587372796446886611953723267696534189310973385216642536892072718270952232755348830622519173899974840291348613842237287434946309177806287053957932139915879170291158727632396625858459510081199108144176990501840909735721865976728622187422313890473157315812220052722501407827267119872560095675575519022653078423813986434079104500831111352028606480342127095727010405838151723628981139409484387181166026730715410331687505581942755483029115751219128679902081543944920124225021886733063612557447824247644195214809405721395672324027992546218464019977949812045932617869644295886784216008383135512662816986188703654707181584449297238462905787005459246857513247979518936225626600122379078596602065050930572123698009077291591502886207982904242216997366370145506003222782179282006704315416300039681158632270699328881510010973070640239718000353961832648013352693174874634107001814053432140788204881740153302390259857564038578793081662423453102195471654602957160007580017883150035278480362848445857219352328457605141156706279243231743356859483893965042931556376391384354685386864181168769731245444340921577856025531394129525027060999426350833680600063555478217240017047083760582131059992208836624330549657141533664566836079580221757361809812777123781062033727848681661858306894999229039097035564875173046542282730693114841487120860550652016857790521916819798594988907980914347474337152974502627805303184691887125713606706015633718255697633419421936150860140292674769317153308266758274963863798250997951724990045481506153314909003277123068929692663346727584617642487662396811942999946471457222495749518355337481621089925539904797737139098747465809538343172651097881556362021742462328144897486591807179726871219773364825600756957973440458056068641455862242706555053773879544337174538131679733373791766704998379266289093141779799508738926536773775687338916932714139529919880676694410654939926114097701010863471053304855473116894000517019736024445195749260603890302542833009992235421934447394719512758092085593420867167035588176851035270818984567882481811789040091068350647574960397537667481796137104825238522626797093735591557854408467661157038680138290913985536377309934812395235664572948241970219015824167687616633894069670982531988726249195004703705227037462008946890462420125677004679007343286541781767988721405138079041329600554284801595070404967030109864841383912725437915563688550298810041983183203433695064231179170845129123464474876435653934180979268921595791403594371853941075379846167681771561480084045321268870253124659999089748982296256611797391391076298127602075736514854364952871714401932073530982840386154274336973886131593850513353951801598147857450586393927450491677758217912475721035915163036348559099270070011931089186390762726185029900472826589825540670461726831182386096278600376758044622031854885050025276171185647536733737872101581486434232194070487817341012175196224237271952627419937084699245869874680572757114075663273183460724046416717910135247853380330634109954467789895170709395903880844409798489971626049197716443800625982123556342167071239526728689779003758509040046141931225671188192404023555609215732807728065117064918550975833878445280518550394753248554080124661625719229307786577955417827849508623003935912021284042149532064828259597639027353896258092040035786661531581123122564197345039086314495493389531780355620786976882429050753399022904886931409866289937195164048958265976058430447418396935672786906903418239191796784228252194437495121486963323698568943567174092688883449171805186802095456813093149989082806216130169748428637137657062015066816528077053203503139049939711072068521976255381683767039633810547248530098270191857868334567457984524633034199399785781966544406382950256485231001631201291612594657967977877593913045405992951018246871756586214934047431649445261370569875161346065476395979250229299535178508730177603591005930219195564648952308279070044526178825524238557994375644306399315212495197589408635830415838969268491221620927906030868968755765437339604172809310455393942810668036117754276818504972475664709515042638563635710667619898403185499664514550553228525209156897338669663298771252704733847462843540283683031298072928086191251650602448407172104775473786666408776993639440125460015342126610842852853593042755562385560204574353551348593268604142932040181174815366824907075715434138921513865863931902691800024558039219924640898173383753533641339532377805119694272596113257132857533980346005702245835435823222977418970673513073748298123249403505527873107541326198463393595446028106458786122205130625224073816582444367331170088827273404621568120474862630214608331714835294481807728232702987968157542499471804285591634351652029799836532198386145518675871429968065672664738380001763402321773093344270126925234862188639747004849097900262437971933558159750281521432441076602863891459763188062459845165507269960445034996566077986503448565566444308975167038765981331304001601410949283703393749925553753347603629822564963173869258847203118466438197125324725287953224811804650523513001719067745578472080496865826396734991700764054610700828967025587488233325127643517338861641656412441367756255372029336083605576194390400192862108722602649935955571578933684969229078369242706976771398079333005768586347828180793066565783671944885719413772609987660341874442160971264121578315382705984878435117061811581726063256332693655423836586511783807035048065708094466059671920422354063801303316866373352740234845296035902144067270348978908530517076236810186601908399654527087059771961896126562506034443691856977227151785307752335364065743163816801452421775076696743057876044559885147242552334325538353168957919022494042027624654033922358405135743088795035772382809627110410006862878240360402667738151322355029754459512635592728837711182911052556224826167098808686284987297751797186517047732778322627594356052870725783291925506726550584982187363778797828328065164751195316418601310024706299548672187348515636656362690184915622093911624467508483002996451981276561358533912949876804241804341554449817202398748186092543402048415709537762201658235716522120219729613952726241137007935190748056165580478035388819495270424224466569992379473969024679099608995266139497203409914860226357360285442004768602858458633112773174355297611939550307127321755906263751075478159588831683208620584950233842192940470970884080833518553653343394788033541160103363886728346650003728317327992481771613263314665935806398742310521480067359721485545594249007669648744626892881233487263287329878131903440421213392256553792497466198355273263436916388689233094230829417126242417650312423535935775991361550411193871613711620322645259383269249147464451348083053967844433067268055051918269702047109840772893063779997877496901887995496060358385140977339429331346942952055324671807919343042373238934946995330605013472650250721052029473155032198344083323360371274164269073131877221380983162298795323438730791511488620435339377762850296664374124022957669293237065433890452289161391305707135156839107273618998699676057658665781264672447771067754100031444180501660289497205220196255985696493862259654476533225697285894267620989986271407470050879540801160526574064635628121269417195591568081278308326390230447348981406063265390438977516011463461592561348662347092334040229921515470081616165988922386487504586346741478886462703755140060416782483079930347678164880051962504851620014760187876570290192704853100048017886665607475986169330599491635782566697707825012883880419178043497499449116411739004615782224031744327889977122537012705754513896830738482287404472571005069377077323667418702756708367458385491100351581432979931916060445668528597367187659811450829089730636159162649993644742583168123280487794663924254362626725818741954340036616857859505861093545677687640595071511572569068106312921691824492049906079785280555261521320020851680144767593360712450038233872545655847915982067453224126580829628531019980116717989743189145284795683230031728524588657815595140457773973178831088049951209580618765233005193348398140964548083145776972283298117707476458039962697256396413879021525908782304091029752286320935492768421603205054438702337228446319654163366744660233997207669637801096575059031085026386223561463840177726050040666539035082032392493329053192571671721013802266951514581831136943088120666958609606921481218950748143506288536153498227451985496358819127238707636173850522988844197211798738540354836918529964829526079410700282479391643003447044138203562164662798536986374860563751285947687977783508871097184246787933697667004300232600053419973535841602505716032965863284645140756413226133941095929345142962050411130130669542979269251434065342182247471787680832099715572251696238473968211300095310026964727485564722806676542308890996065572661424360421040304553935957973148290228409333027743808032387677827604082599147207060915801260363072325815872781107566752453135578567345604280019831831625326515125832886116435563720045475834138980598554046028507031339652988026460110875706119905541608270570154637180928223956100155283066795996167046523138551065274948727948637081521130729957973975424839353479828401257836748725647479672443344829942785357523972648997100591525134327788628694921669587618538635306476586225624634851767575636008506161996188089727559760863655359167318151970822716379993767830822925819165227420550410873959322741559941723834525051373581436594729956277841290990684987089679286120070864525212765852219413138043830248861977284625037790050172216681936363985390346273249127751522076131920883897284257480946089798104157214134644823315732312992630959023962830424830243587194491296160944876930706563567942197033922872557034455786395067875107832560788442183994492495233020285080115933491810269745468621687977670703915324057015532682228217054801068753256408304839157169617591024888336726115750463397057203472669909240921969243639129986586702537413317530794343521040836847160569402404467937643643480487507759349326081612983498849232654026884463858580383537936077768968502383573594442097996926735679354171118143538427800347923279932293462069396958684689657759203310843436895992987677247898016328619479323879797932416139097917696785771996279410613476435031823894334996242103282300091855502770074542982109352126710457756653796439170069113457420530475323230034451716922938447008089370223643228858697734917316099218542103463432773237115899554051350973382283631571587375014088301987296231844775983037014893589806330813398808789264942531318301215012194991522552130172229660828833510100278225319006782591154181868198621350408380419641465246135132289560623442317446744072348398470394542553455452904043275627382306989957703606253324924003025026282067260896232619451307548339745519199667791727835093983024719822080107339296029466856781138077523506853607557493886358896215031959654914213252326293865896978892886015863868968247868968569695859581920702631793140700970847252467765014422835014460364697176094638408949028055961942257472154708179428850159506805111198453564410408229735188945682657949572609379775008986359512614444740741724239443564680146003682220472198548094927310140528912011852208087926416761349531178640504836616525884938033286552902663939702160162676815359851965085883334249706663834590182436418214021977975963579400190931425323305732783544988419001320772362787796299444021459407821454766583914077944901098387327889279887250840416392796701608985462902549765204631181717769155588337746531264046798126581626752820563424736507687389205069737144398349205027435192589911014339804251514010183877395395469690895055762110022797651544223865944974198456048990548799081808559053518988201877754209754962191466163882115399611085748550661882155983763733610628449663271188860722352387881526050788514471604457908006217829657852864303902599976227099407283554805744935761118556411187783604871509857335856493153552769152275054357169997851263185088920722926291991585391553384345609193275982416888895799503957122234062996699027239803679598634900086193748591072992101411891785735695521462422195682980922582305916575691580340038969659997257773052931351472052277548733095257494665392028566039313976997310539563295943066516857721942888075447458191336609226439703483712893508451064563302134901551785115622438771280500798957358426894685443412134298904402200745978978461440680381340716515150512092313625999946263433004450740146526347094120858929122949679695709832897274535131951798148957111512348495173470780481266257706571241603066313303530555413845837547727934302959075040398517961508211026450056875608406025757002042763068244570968304814251948725476037177557996229027431521897755278635674958382819962153549692238449110540386130592984003311155315749421071441369186521474361335022720585142969865367162973636706986283262874132350173778271557875833383195259326820389366317939000919108452579936317359598281741449333675360795209387137994334606474275932884167534247903970608694310534462332291144235148865412295136018730548965169312677254817077364176454868644684579065355916918144138514195065616514135339435573138445806917678544349962109979781801951137028514011083724374657022076263683124428092568155106573925765128034011762739242866480299126470065387021102347569901299114772086570757624536807440881388427675233431268360459486308943966816288094922138783050448484863566186690628844882555513222701239236761518051823602311646042057547872353328913457734419822603101404328886793183167443842887272370096012125491111624147254726444781961993857331986356487872570381333982516511524035021560878193293591096403904723263686808100024017922845285108938378426132475523240613055339336448448661856264319488116432490583879885408991620269046489336810249759049042852948968981256107518296827719773732962672012975894113166100202389365622210938022815529084169976688220983358450329083533620746423292182708183046966034024018759437346856985546111651003483816737373321451038332113818696771173717343672662251278511666894318596967267091911362857725684059061182218353901086524961360475991122825112346079272175649848989221756106500745284927348864360115007793819255679654667678293279852712739454713138450229336740442999258035803162338653761319465540666896844274370872323479407870691179392706339691971281302576013025216566556905105802306003327997163076596194382349720739805768983270466862562227778756423140632766869402121959471610673166143493184949847879002151873478259232886351124675939494858390705172706985343060306800698091920516210154903854754288143638805300660646001212057889595921971090224748886216557342151258694142587390881021520977771636056215816731978837968089241293736831448815007001767547332854306790432460568890477993686270661267998219653646869049614547608535484169711725494795384862472671389271182833869110581598873133468109746646076608707349980609705816506060234650941046465532689477758097909109453138043809896170760704660663048211799242912770314403554379909551104778970852896777207681340317737847982536682983900764775497618703589875833408432708361431175924700746778881622652919604245626207259453732663845550192475869590308213872657971303519202695003535377684167669300635663029581572260898261703707808886980310904357723457048487167922152330499819528177951672588066539777014702199418987909497857655994115364404201422234733998360125071706959975069985763659022222440966009644779547465004320745993433688320502646907681307409312711524480741872006946540772056088563255946321669456947768961214872906558868870008171121487052915391259578714885455226280984993331904773028557425089060479105149100080837607621379533197964361736246063177807104351057530098936505306898187898416893179560596936905411797154024823785111890514043760876211035959652651674836552592930227379048877794008778429055301064866741713202682774436500340070546615586407880664165046881831988600591042291758889972002462954423856808174532240225973262137958850889593262180445759494733469993945740307412508793838505057026841497108065509635667610310222051314689604022058982707924446805989291969907387803637364896318492459584363255522919367872618250477229646870326988066232625923964464815127270674370134569726723630081672920776030730437609393007438970305985261421994884435520869969959545842644580325773716584772173637931572010018765680859543995970404036295963422202353514008988934971727711684654734388614783978662303097004946404826836336807834159745359746335418067626597817317521639051005810289202849864121873601524809700351800720278788585241033157253730682726238620010300468976185910530457474188740752138606359833391925945729365960209734406877293401744396296114339693247442743926131118951845470115162026207396158493043315159435660803812274447214288246748445678689815347302389772977901338127010643640188168364903080629978969734010585926391567276822959596427667811431933867740449615996418650143990885268969511412154222303586862192935794242266445830686454938845278496296812427901426277162491205701288430724386090775456877741540081075541612436472440149113146011216868712305391192302328742889859709923177857321786165143545354282086287754033006252398739900472588975681248652284086172994789899451028871868796771942013029130223895395107598852231690936606043831701455711662659063345918649585060727037046706884554494965320137751334620168752967433351359079991154986779087154365456799899984678855168470992923248794456020698147012706687185130057569466740736114133349439483172497546051999434259615914090934303126082891312915495834480173624868172099859867634001290907443620111131474239069175403429993603147855341354854385499514924609180468378334901731229014031374848117814226838518980577873995957248932709010488729899035596647240952779356590049582513367442340885924586015822953051040399999762692466444530962183283103171174392280250569537538357328495460014420839641717977724383196410735297215275641614348013535397477562139016137388330335985847769324765225796082146116801741355363604152192540897765382842257386691398148337622121330933828532020907920225561274107899861516121010965627313555648547586872585560143960027096128225176058467983347858762004611395862742513502338068484291536806754099772037836541029032049646411405030601660578852088046029162224621654835237275074122029079209810474521464772740464324539345829247311709317253439886933974532648294553682218099101374110665437027615126322185962454126931689889072973360412300950043779863249694777207711624192977280136118366449902205496805693438197505752849686544678933237550487905567577692798203160912846610131938219253399910969321497274452139921076199734145579733774660814672135626458592616649478201845471787840549745090702871732559816348065757066436216771037965593879505946841071284050964342911202429245048262294989927041717800791110185418701341590194215802297620153532732480646757681048264670574659475495090771202691109445172680509486312976897882108881461451085739674909114368262950893198508647895564333140817365999559084751835699031915268848040118633035642690268280731221516385282405274159716828411425487702517581493096791220200675427081267619528282533123095178300758277578343489264100189274264073426320855566258254084564908121138244553552490708862108759601202095120748965875519317021583803369784992597169986955283577039803319681959266365842414716157270900638641210250104984178970627365874144717382506282528514824848152353973687402621239524507799922799962305342139347716748940930837399515851480199528078734763712070488668318635526232423044573264974973004000390719101655235711252948847139551207912906561510527619881536211823553172344584300442833786364463578878535936579330428738069473603804844304655696776139245939459357448758117934015756279389217101441264257041979100701859645786026723544061083409769225496163491034758004940715215756130005177785303722612102702701669996106927720564246726770229770579279871402216378245099949923750065178446543364753272455577429129390146333411537908999113716628960537565975911283062816729865424408268413696009798168778432510974638373919513102638381043755120282835364860018169193649034966166198546573606911938910240546148028643860631666427551242460971946570280091534625403054348055169560524345385667982102464595477227623920001340722499846591736888310119967173640384316727946535350447659399882968895291389894551634271194918891023542562461600903415689408963960080608494555038104889335525018772052908811369993000849049238719279363314097059301512710391596131222946481381423177598406916170340084185561052291686335677155126950361757845200302390350292385740001078183371257852554194289329299606086510418594325231027821549248881390563198092049427915570209557871999779794871308598800028900715872492085082129668417582363098502055664711451364643346897243870276853633319489872399709345984399457373359295816957193721759508547354389720136276790301936036001885745857569731788683485562163602759954948108613288470468688710426163994333997982242390741636791945540681028096437058543553915983546464017517796758346182100833829176574429963528185994293892267685906172699654671168745007093430705631930290413995448329976839051319718356470706927542433941666370290048407602239000760066335705681435036525921745077329707433037140212162727321604539733628586655241819626132049262840255853093084336080609057937382982710252777014897978412933862185180027171335494000341554209904283118711696192074574541322651602782290611097830769846798652298212857920042282218905121893613490195881436962283396698548906837302615603186505852202662195089769368093131299582004894119016134092262415773863699586097429197716426110052939683360624985074132624504022308732128388825241642826741073937469752519763189574194415763230501085965426268867821032961697489552929031996415066462812586613177913198273900464440185344956482790394566754108028632732206286532471541355776475557515371678399277490282667769306967682694325288737319606199189102565891862368822384624570053315578370390422390536905505251634312949435838195577989828863071698357626710538741342718016833156875248110255784741749855648709221095910259942592569064698007090114795567545110559042589187112854248982897742265200100144578072714731496164859709847795843305670923542164865674034582946889956025777037053414432637635918410765141712838777584971617659738679245250462138753730334069305865292117447817917723010509324172053300106077372962740406856311273305340450087715979444655683431787210469632354877281614529777478732992843471798415058439116474408659637214534658030532175455481644676089628707665400970085061896010592223881917644127989560161556737627278293497692919063256727651378029668315717543086701437999602132962756270518655451765575592258756896204095322576659101218610213020453777147317783729568668789131013097370385307499985121420174776013386597042526277281478261116523993080141809871118113381594911708045247331670357078306471054143535095760582889944656900242662117613629297412302283337308775963918374322302078791560168232210868364007960027559941976312880628273217126293235852710711710061192464914740678504898478201310377902244057748362451009606541979188940975001285098635729369169404994154678200311931308362975903116345199087101351707493812837244124083650903669001577223998132903116862468533933438481539954066102855459557730332090216168328568819421482365421564727871021007142944610314406971246343243001006741311581661683275125443042713954376568468437829234132976158041053050887190768343318743197467309525851754809290554054512726582817930658104115292977596416047609682263839312229736512550492330164694444072375355993901858771848511274620879453945118404489630718897932086779385269473290402325281294942611786752798294055956874417820668817576112151121690748997707361998895978164639016966919576698609371004480770492664770155008453470536296574365823266391399336341008763763776227809948748832707391807878653503866670032481750274989828961703805071976186729464480283137629630520448929235703582663437954863802258900166874741029388215924250043191499314210656469629045753968758644839773867125262123145927839396544399427443901274281350486142756653215347110168411034628473748090548019011883097996243672314816233223098414625159144680080186700540856329439765501791773396584939557347065172771140628817731795469849536273907934591884018088881930017864895438024555990142568967580570682618666688333512803099946274400371786615707953180803199566949385543247900012435426720311939729542273615571370400708757605035027932734912040007958441842557700983386066372006718703477850755569014389382117790674398619700607385670878017331230975557461620131249598204993803115114093071086588066470027739892982289454452292058846232045518505959660284488592464290193741898764812949775474261400100009598740630455688925077358246748164801307702906993239748647730697418772881082205003769000212970435211512596838739149777247228239621223473469520434414414603371572499824634256677747120462219622314740605197636823219209049484748536501024016714938132376315343784318624330818581340659751062339416009728129539084678072047345362022308108556383876860330012101999331641989099545233934888479642375022838709321117499197058959339910867801006189057343809828298825898366524745076106659846288384217322792524884800623736894708358210128477687657607649923436201208734436929712679241832529735004223701212752425899232496608906142631139398324318314954077653450188107567159661808032707729535295399840365469127929436153846162752449360891218391279383543601274536894344354864666722134089095223290409157589746423998210705925954064227324850815151357423150714766375118858197245564598649125509773514062750645744197761207076365337401087307770673373034969982597847656826037072297858849687139747619208115187954660293469220656601710231325951252382332237460877255384124765625233163238414358955802533850819899648117321783563992039397894931660779040339235716900504015777502570343064718773400838099614322736056386930415882037183033688148234416105818070300257028415895832950067251455610621639656002219941853759840827248629987918745069994225737106467034048120052154463822770010089979738017207292860539017054406078056661868607468634536532877828908564515020475218953862715450192201850884701590987469322074644438028522951482131405727239994704551663182563284533123012108780397185919139535577507709296219152991863479732341686157982973372603754706331016768682539575416264890613887365795864439549464975255010735542959246931790002957309370505083672318071867783295470105863780822323386158022176721215978071330543956962947173252731715041477238280006279560578510267540889049975947164881977733106189881743012782508888543138871360217355868611552068101929866861614736019141151499538439674438189593315006902586528357129262318516847307037696046303547084047996322801823951222464987229886374259147061604496133000758228647027568188221781334657802677742568449285561051069968985206742313332824570666319590404369311431592397861504702915450557214718282853430281262834217952443457278433107954812129248778040991278879243935829008468408941848086219648072088052024927845182824518394901142856976419628078959139090134687247647000635991183221926861218612279652928773344225874628622991257153672114256979868172319428078409105144098441517230177672946146967245896431064406268744686025492501128248804180337537305865915671780184571179356969369478146244851660876122624387098275087964522537308770830502191505884502801139463093687519446898700225655930232743445500720852540667659057746087556030584587591573765762543470312812025394679230475680617822050700523798533651639597010960996105401423546210147765040431539370404947173189675778556458802463301966661270594060115886572490375316032694921342749676327585210857215932518787819257807838829847490950053386600423662855599106415054370259436431362888704223781435106788742498707224263398392938279816133913125146492302425320628007881809929619005248873169664258117621899969315865826070060712246742308863337577445021591069260397658338405312464453596604422243646599603330838040945620021638568962621167886381862789126592579909624438104127076228510367492461312634525739925704536175713202710839436141439480365081838047524939624359852382507136802703669246182453764502776590861254101048619685981227578959077634702692126190888395943603929865816753489060071109053573771659951412007456439268353444210882500706913477323116961937719603552495552333486943806088220831564181052139370188849949703173991892850722446063345858059285780785064996757319470548027424315469275786674602681557003035590690806196134471430793525434195654775742602462614201077161891745297882839935029021046091249875077085448847965076078788691812650578448205977102596369525897682356639434457656382757354431026924812280280348658215060564994477466089207297246883851071757413399549054555301405836497179014545162976975750672497593423977579879089018004980791456929057276565330166996067861332175466218067894833901591209594717114852443722629196859302010862786053437024477406786248746296045473832426968735663347546676322640803527080772453243986810488594420286553522468806743935765277166030165229226886811558275357011030021313266503681856757525251698162289016905039942281483427812871438813325468530629150936288416372892613740084201306474455572270165419405015216597055141792437073394090509327006859445006188892103935869222175900659989555583038571408357158524333980912728296062334558239690397362714951911719063875487020309748764702762373480432611599045923414749908958284804045651014854839009273460900680326167107330943278689011283995324585043579743542333577241568807553442489826031785673428214891816637704465591152021268113616435561680165568338271483723943114575507604526546542736322464687048665025220246464618131662801448472404447441960544850427004041644242777349567027939328153155813715704831661114910192297827691661070212629289172957706493005813646399624606618198009117194448727443649624258186173058063790179614290691571624376882633791080055271731884047779085472151528570294438949662015429834933817507436969912558106501761390456746950106379609850610119700327722736857416468793217716591035999768085291700920884860993012833822664601700649695489344572998510129489981313197706916060604851572180160849134082956147297899869728331098144388498394694322970753914490322218675444825032094720770658189467861204281715593799339057546717321183476480905256345542261741806678423109268257514682346573836411761133873649116475555217467654484603694568524360903570972715305266615166914308600178265128455681923193639825339235692040644902616798656223018256169877390711219237534005479895770452115426263961062627677712485963762790161254481343807917613354229754126472682394147206120328880069921687081271608675743031115879905690267502589812683250930463914424998356519016597175458361394513726142228935578258957743588145548021068061822090006854689891322117097109394571770218088986637448970409773001671730435209871126012434633913272123226687292073589159882736612238721534033382406080826320745074428519702883990491344357019291748439701562178286100433940279762937042226745279974375877022281930341555844967306425831502900619980849446638966200770211231473740934768162231212411044389304290528031386827754350307169845617020353189048706201558677027650167922920428254628841113448819608602401340399876599237366822081667419844980504270946543684426100803534414774953384410028652570736191154749384135135004288512377603316296666832900090455117131353346189460722619838935223277508126175990681870202342136971866756440369549717283280063454132923700965172054220574420988795746695601103863654500180001099649185338538506574069738517202525691337540565542110352121021098574344535007688403877343631938045837210483967901667568881846034477665602221289026713036767464217224505291713467897017047969393489633562500385366277635834242741522239592042901209861238877398629522315597667057432330311589424853361746440919618882773352688282534059480369276977382582588854083666473372459782002532534611148741242623247246335657729571013332316963544604161353000362121710881683014238597449836272724051118375926066713043886202405734691036626262383469545304756694985201703289687386437931002762004055523192893786652016662227091144962008889993777410115300337702068170728370775898276115078252193230874359942648559123888130638282394388633856500292713865458784569770498974430328655234139123222300407564834864160045883466924574492013832079447222889644534618496660360012151400773648646465610568306871700787645481746853819072355530859837849922716087133252689933019795776507588499135277966847957343025284685411417200184094908768268623578156330842037164633119571244941757289424445096125210169949005982664423016869035811819710402449861950124122981254760685825434600210644538517855500745300207920449628733884751777736056149278896919897528057973260294354640602705662997559755661020418560793554021469557781128808335252558834533134702853151760126350582516100156506511786556106515008054636949362306329743972486753053719314812076237846746378114758297052924258557662020006476843340158055519830351299344771607204914827027296665427608326594421777059542753468916714509458341479890020298849586837328570845155050780095628107416682654342249866770380512205894247568318731657091344694999964815391412632657487573566820174066393745246944541481322940468151891769874990947699916927192109190589753959126010927924198465412243967040312718816635603484424442872871587486075983431796649737944249267326463856754850795713188856798705629668451962604104974098187582721606033781428472917757351566555892741820009078172489307443982885570244514439352874269475830919682689628567766467976724230688545268100306996297208276488807389290526258741358996920955644184128835667897906548528902610407960807991248088904182575867530145007132520522973549227063497965411380967465774696740799962351914728135481377919869722057803399318517703116928974367168315677299166573072790760809364322033763941429797576308802489575843779722536772574833054038281994702395233419634937475254719114752793166372619475046482662422015278039412336290021096488353816567029449679354002242570254300103750528030832223363036309042727618200721041673350038426631894263586214443245379423718269668426423999709297797275385490875119378359064213149168158327081158469636557694214384817979379735030291357792425647186505102670143317600043439062691114784399968966042050374581335247915967488136721932817966665600346432920939735810542171760781341302391809452481978938255729313554656335204633984974312517171584415199653901628769056949884370868820773565586639059599097354947521999478912855830408199117038683716670670232911376530480854456195148061076195376926242195389535085297929114246620639539717443922293355670309541204023277952939443944565782238313439164712143571282521510645752512605912938428619114567867021683618276219942244776784406003974370792780176222360276482291197338715827678291919629895955366941452697715065847780490216962560986467707655993045900184717393456208731805915572322219129139923246579361748565219308036980477228511145602275466285966455402957570130528887155328012312421686392477345882328179882314806956227925810631724746818119774269666265880594364681201595993652345234284355918747437351039100328674431205815301913891192259943466500575196711180679345219588634923481408873939294374739495664622290810488618725842531317082425871679784249608326011474925574052319660461467803344443334467870058944006560452918925352275108800409832264476614027338156031118746523513604114194945034794129871513699721881335849436727623540929502165034572400838622872178288003169351670364054371982291475574526654477794272553393823084044672971982425506211135039552440765746817172779291847397217329124500129877167687508436442377867006113198007449238210507675839660594920401527942424564013426646530873955026078462459080555652811270448832868291514828328811019527036845069631033457493945637909961247996870555154853812211549318630475899778707384720872373092827742171368782270937525409635606761390860419683717773291146924699393407419421008560501588740424582385561809864565987252450207664510714725366529830558631175054565288667715837119368182593684155630846422786015351282800907625175617005047477096341109412411832649852859733909440234596736227874884700539055641568378462812793071200007878634039046451165137049709155386488864782807468947711433270452830039208061997171563210285008336766163542593142613921665877283084149308647434961893219617511443310034767555140932782308889823209443988681626785548464722111573161411481508546116738104216401412558687548535482052327678160784147129382183551534738948869146065537631132278618411458819343962356368997431121824006118012029511889049339052376013887812214708856534214999027945819111943893398115688925772127000387017127272263621429110953281374259782585053894499639762245309059101189144383854262943440384230524412255978666227651018795728835210359191028341090436167608050372942596605465041676913880346075183783782795252524033000798112966084496446780670019222495939566836716264477561886551792454456983576014360661791787336671234115610003591203503737993714777321557684350769716284483662344160535128170260499545185278030698271871353489561089734631173973616341811208727755973177236657281888660466630322014114693318022093921680335654178399990041216243538231105810586007694682480662723410203837850759359458578059111997999669430562179150823225902468676029832301560749330630463757325505141985053310533755073402531643971725070591032856992944370662341919234189684070344233489545199556493159885098003069422466191891553505654834439822978094571565811365601897803007360887070252813092286715030361380032058027579907890706611808542990104423929461477516958495108111583723273026334818024535614665104708257584916490497981007806470661164303667801245997156734734153701157726275813778608552181539142056499873577283107244928796817901454311899210174713131382068902050803954155500745072618182300620471772410473415089540378268082750795758411237711204418763712134059487045993094473057341339099131661593736191878665351130703126079442522420911784255774556064804121609741395878814354037933887548654371118313360818577811436235981489177561381960870212582511568387269737325982959702383056486871598907314520151961942154883669902479663870961253289048168797750160082652567783819109456427935216446824926152247509535816251150764543400104637388409369817644198253864641331711266363082214390721964835757209785275453695239567661355748824623631910760815503831520052356061469076063299117404167981473617357697569996864808735838363359920367747960787298841527454613452618269080479085477380447979317534064209676157616577332185107867730949892447584651184814415280897603614772503463105672495068667889577371243433067612281844330495627445906937152621745468820404441599083430286629431536935588335719539103308241911458154937770906763718355228755497680500195866879073916540198012550821529429165064839573366571777540610262232302544364683763298201770843126367877319567679894472837275224385446602341050203101504210114449161828230206195580316447735550836655536915913479310511967562458825746615318704360515464188769235639233602917958919781604827374889701408627617635372165833274383192332879591292392352522077611383675955187777551062148370509962329330156580152771164700809446999882617612850133228176305812559488054842219428892239161448376551538599015512793061996974249316169547664175205094762861959647047371885540032780654823071742257787911466870824124895671653233640974095383989990761891266339530156256327619976188620160404170056883946461610660089059226245065059672100204298130632330798999883830174371208485408730411996435455877766649399123252321149762838006765522496478668597680721093993185798684781783720156512373541593295801153129514830891946799247827136441942266112393791641010742454955441512016724893092145390829647058662010460822307903045806843002024712066251538356615036398920542727479890708785318610433543356963670055362143985948184786529764915661812397437215577735380689011879144884570439931060923746701122423679592649894221862364428184581288245675823486908620631689219833473018107526479528570927598025335571141808143524340586281908600675082674501236550901939629787886202065412197739140094760408652162406771414034212041365929870503120797529302532351785334193274820608573504913739936258765962062085165306578812192371979253808591670930306742080454133715221840586630229441434475870953734793276314799389858677272330395419808773804678006418796802189309145203896845095117892339472023470333226806240857313180965338734416170522474111908132470251476616839396256300656508769597932484481890581119259938332886359996623063594886205217034815358480102320219716498551004445645263231954288350031076823815661120496901111293301759503521578713325001381288172477393949901079167816950153162987617893013298280020369334528822538993440260778586610633046182911846887773229765095678842565892437603290487410473092574421672522414365284707083669674635019817833426525816077084172179144558783908709291291685520515729588945958014544628839794857848313230788881597714087950742745000713647035313683095120929176709599414364392231043589171349936800859082894065565774444542111767727143126943335129418383150828695446984700711294836857041455685412811371632290256619359562219010231112206691323775139232990419560133601380717039161189414306303949979912031116928728883561871355671332543869047302262700386861533031456620168883255955577013570050295876664901776132318482451197524420867162828534525503613599513941478739149199255376263200675495413732632254483951746029046618584816318811136048452409669431379979293538722180951082540238299527039746319345108855462991462226240410294279915104964360292959932758664489187772720791662580040422612534106089208915220186676690976989633671593744084475435637233410794383597096886893028547865527085306326071056414013949159787516744795155669017853863349801451311608731575565836205689293821761006644024767017639543234261880521288444072117912539828673414347973567511595049873387755346476372615471477822733749505581224429705321860399062506663143773426943274877448851648713600995550379359950672828312907730106628783096701361206600409848744261145456640951925878722516709906787927978383787228207007798401735520405750433722108893922155351375212492559527404170718093298208560078122442334497124835100812459782070092204017848394336921331130060395546062997945956343884689382901694964842327206722839319490628987733682095754587267815755105818402882299944058169482346789098826350477306988546109402925967878036038337904120345715332705732889091448776625745827328881772202199130436252145783532461317606029953156563930843703299044286499179118945191271531823572417325367263153347895029168702903321482523984408845808023816484032558874165385198990327250967698873674318498668530497264531276662259756731494393245558631629826897668119028318657401801386585751813005013206843665076778029899841807299176833415243732785121986794232688348689973418125664798293492424128013166176164874200316581367349937755620279158266459968261107701890083046950530603584399845061300282937169618290696796400267440804693512977367818420468965528982826119786605728012151166795980201686383368947158942975314397849407356669278221839475987306932466374513477725867506470281643856493669649431614871093134025162475170220096692811033275217204613354517933725434945655578176266283465131856712071077931491628893012263460098438673456885869886460631473854282500813032154365253666984540370990831560822035689422757643759704409430754020385794063021041866861757419011849766505352625246850650852164383394818823559290554981298044400167685827560522929444107810128753655130194671096318666685369921118453351763810767961253914424396707518682185401483064276666585704888005845582999079722960514419609142754320372193896097718973249235809514144834943147389895986507060191742703065631817672162444260793668455841538743513305558686697363214850475354237640285381519826408335436298306377686402446912253315847107253773476843724094350893912386572331560675061842095640617077309684138399389119582544446215561754070599723917033429002721782190187724228673257260558863751136411816501822051518512053147278403337266204541359690448194614487452272646747540849592844259173369487236661553884813896737095091739020697712197865390779752373047751897057841502800340033434772104836651957447975788059294691842837023122793119659485888806166699713446002629260613442680210259874005573524760076358481799163088826949839040623638659617397338601207214868324325673587986563144142706122924151583145668660582659074389812568625675937652834888760528899846366526305281372105904946861388693567547510416355956510846454589862036654931546045591066640418934029723869192720519215016153875066341463375002418114322501397085058837084087281667233837712261756617493788392877953287491991645757507365859224510538050595779904805585042518552740340773640964806702568410200979168428048464511456913157902390102239711542045970234622545475313976338836508307837450964122522360821957768839136709860073009018047776450022556227712428756724304651836029155714248718939135950491475061585829845262409262757357283102134149331772127892198685417439573981816144481043767533892549414466096001618525055320352427580437720726139778348925769256021226781237909097064948588510707575822398646440217010749579084834795729384551614476705865749785497580395568117522983337159052690491964426239188607762081778947622772176375473923400492544903214837626012660746818837768133403991748597766006953017488767299277011567191835187171898002695672722212776636121733638357185001204773039713597546750126713150046814350854132874746304382679283084065077527028455851161665432877499541279676053981758347659815239221175278520281780601200167754958136742441262103364846081083970040140387373309658901136239718502989645577712964042599151624125576155661004381590197426398018621209663481341056553819601401900095467434432675549957328912110388954544190258509287780112673803044169354325879474511136282454457787320474273406722001185683091257516279312155947987775045353581758381889364663437579758767291086153617232946873295342706446118814705730544353740761177146388214131149679807345794982178456436814275321107114278090737982549340501779920854937031317950435938107288043106651369977576531905331535045785279556851988858970089252170398843739016223015033023179167183196259325941177181430783245150999457202273608409864973323960981876351662405251336569667828245965035721903049703669460159833692203481566920162245922235413223954587145276059482792506618246349774317674148533153672775360635761112593590435749613166165514145959942177855410166120325354177215917411654542307385872649055371329984064644305844127763630961933103306458592865722221661057246334155311030150966016266556097749944567973361792336030599335117894731679168045099863047251692488251825325629412997132127744103314570719902040414644338834272391342785745190332440189862775508427639518510275566787133965871910833291537220426152120732740339108006709401951921596018939835538657317147500615674171761186099749383440579620778517683385995712378036452173974470966427174632106781304788694598246609086589041971440991052360791407918803530141150000788812038414558240545559507619788712957441475536021908770824061278779132770120802402763385982060590935767665086492555045240687425012598390823214344114850916909085081294147508799561804571907075555003755272841771265340891887927965328786400434967265108315589239395039811564174999826029236071985609596646491726757835533454818748863260289367836493332655695110316068428070459736736268981450017324916585122586572478168967014038831835819860806196057096538047193321246045803622654221119761633237265274057432586570732446461922543645503338603831742870881981180604336406434215765287414388623010324274743827689939877768319991975054914935332446607850673167726573990319525105524900421306801282897841745551736598925647222532847487446080224510829873088295845023113978376941332590984416010058535824988247706419477175851960718212440473946817577560718470750225805253949416530262319933545056289853477394059475500521682830552666384779696112051155120950490621745087102548792300501576208175499988750099386517118260788841639046522246777084245561410252803035710287824598715294802345973154382542202481706879050895110660449351272295557997668066261490736016720462674883176806166646062701349506091890549561997397358847370815368364079492445085946944048417277385460331165913955419509904466154853991053787915402823135790410157938454509808358082136767080807055554648055718279093882626213251573097971932522569703649623913465141416069611522724446439983272284058054283769203763723267702866715432431433193351886352916931268107924816889647001457900883596596148211894949858770421271680863825263148846824054347468757950231536383458437562424964378853058885904122233037318847974644667008551058744278384298308557189582735260170881388959772433017625847016980854833893519125392437857629905057129990588844086216280503160871481536152912392418842868185946688331582285870565243402372549169543742524528631232622798422374722155035314796870795131972461801813029243022803270113975620231265610696875130020742479480438720002252710628928054941352196488253591857074419480274819169174821982098737362112473358101812812876189731067676755509470155477399999847904441572619125539287600651938472638632650560139838455619565601063193042338674052655378020252621644022730501855025858011408951143379503862022687295484419358245184389061589278954390074634789021681370995976640430308439526867319750584246359197905088605814403744432479473227397574321227231192921223828494837178012720160171660541069028343290871294286299782186970905035748689451391410177920307388981643057174336773096767737945330325982754334760621435329389506047581275484056897054650530725977041292769908866498253351242981956776438022907157193326605168486585338310316779123790365659560017916958207036351439203521683750464256136986687666869868493029158556612060883947874762319549124921170249931885814798056765799814926059379773697097874499741192766426090097060987518994091049302876522204342748373813805402158854976255690242286253062484175184698413199646765114995677122801894226752302219802554574324142392908455379312991145293967714698148964209281788849798317681336738369882126824764594420297160306856960254856037318843225570238187654115297333402103867473723030174439780868853248658184955269001314792551353356988561224160882416227025573066480014878425781941919596909326630422839891876442243956448949540261427942891411219738297087315636387093432877317600998938213057103564267154930685992648912327692247186158021552231594485210756949921270358013898401566363318045846843496257423569196795185136717952121658978091517794823327996227622057185499312120617384597984465075535941131870553609525078772950818909249853703580157550528608969079383104864019731551523808222482264129942763022361287229078768350588246218582470235260921086071694713366147430218524130570622997594543262078192957970032064735151952065282783233232125388321724423513036343875118799864462052442048033567539110646068637294421700691529019319041966553305916369536935002426343455102379772449220351512459517636468655226554879840219258782069339068688634599170655158228351168214508489324940639076502318808229342965541696043869913338639591846412908400235789581718861492370575044941995439517065695049090857695464755701562525791660564170251869785305073987270173002802220711025699694527639693521943885578402777361742542624168382667126686237553928584862708381146894398796113814750766100029914465807504142584433169213806080215619413326008167957820004930250546302545318593061817031741263182885464706014765643242461979075725163326509979606144830980941467439887249444924165774781897638982471473815225447350959165763639461181703722566434918410180606377750605861825307588277990285764772225715125800083855805592002079516046229784839410170081800731929926736211072285056726219816229132063819866333274932823957895761042203020362167695311695056616493324800479081006934102997622045458868398322618300248208390753060757473794418111772917249712563083322005014164609215276130627256328730628929649185447042749165218199150055216868204513645640242750227558190029631954363087398542702635187642806022849325499558858191505130616879523493345944179238475554507299781042942290918598203094086364620712388385661820923214334594105175840086559051776038907251097770755385857480543080914410135922363279352466970987140823655445013689952820205249330367706164415547641322430285793256598775122015342857061958157479057903812013426499684576364942013750314356382959367339624836371279860487005509318780034258032532161650381605671026513698646353610557392673262868434353359543467585974852849860181647382924318190911257414951650001220283988499548056968999107616393886293995771815193944626615909991816917483555526994534324376424175744820073861391409939023819975686122469588225659637403277392745792138768407010096890014232783330715243930910480843461460270825235190417849440782318569280869138765308267495813853465335808443181542349466182193480786697934444292645065232738168424679039601915114786917193492658487990238547733488415686653882546932895205385076217500335262461156832520327086316150669087460711585926075472193027493306618703572738270183024880796125415678386863034265261136828004762962456618263454620302711216394275842060567989929025698897174274510194993121666264630204949180518677293995352285389053297770464591782965262186860710779411607422852731947749144360811941549168051634714159249944535107660944448025795811038839221924527197113113407954760315506305493368258341649154406507545173926365239497656749763066002393639493467139481482411073164759150094928881215826771314364892171161971156289375442193367172317894228240188441861282177111888441406030579561502414759606198167829674398920744925779508797000125820332005091580998663457100581741029973964986529953435336056390058102918286541636203734793675288246085144347477237107276903152239404670951884448364553774996309011653908426551166902779310971326303907390282056228068964037851215760384420507968571314108601095716785168083501826887517596982320596829602319007365174653901882495398405005784748964640793761098067767199658536659412819392260410368115740480108170597396161182605391030307322379221159054236955063291955262618927686699211327244913602512517481302703846387704008372188943790909763836382874326114868053313648672598383108821119365728534024387052160376277534120968112848364477637501280807392461157026815408291385069875778866036207192072414202228819198020755828472071234055917111560213094256735638765979014530312507335766374875602643105201957434857731985756109745168604725550629269951411546716092865273834040593950921091503573346002643519882377907393444517529861688083278806163714836666014143488409338084753580278863332174954236446823379429727794025763184081340335847831284053325495318560430290236443823923792256825089843904452409449498024198322152872700506302802493464408661675541634907722957458187672868916180709051269401181801499030491096100156209748075758393431835079727257580160012223026476469377907522738563571322850456816300346221452320375285327186967785871522542330382467190334133960754181942082461288830520099295210892758297236035526522406064896444221651200054175020466826766122861976656900082726549797763189069750256452060749806174575311765661717137057435931682563085856020780505039253106183224300340224638125847895997883442845908224210757472248631912696740928328223216690810312161564549335143981187504515117608472388459792729027420318843665885593328204839163161564473196676698540387118825323440320818633849491282913862832452569087809996664975371389216555536960182113318725738820606395276453215028262994342569798563594138573093665825081315751482429908444171940653390795024647760825372674540493018765527035486824387402513753324446649123212396394849080465440860961564390569552289504004481311621592396957250242954254610273336292328670120475725053891872127714319712721762245871095919833553699410725694393181491808244297421622152673965616253384051513912627645975226951171249570386310610012331448356370269879893888511979839356196707896100688313711821326065630809617990694780160000359802119756045837403649564427115042213097996291760144090310407683851492918110320051165894483826402225668827477363183027395162235191679953803389353102005875403248939121547979647477663831958670541667904881117184246617087342993873601371668019050586418333522438149843763725318207503921793615967494766325743552245840286191176577141198861035794131548101095213946531826070172910144820785006692084464050652902325242148609892296451940139757104284912812433042745845438467065222944377116892595256592860830551504219842967598303896128054033040980184126995738299763035387319114070242461173056084939980331597775068553251883631449713218465068939438473025384698321587867374362907627293071031205370814508588874042398454332264960495820307359787593563889729138359570162649992139525797446542130869063619000774617930404346240923154960637456879404821620049411153774687175833251265397959819922898180952512939269077870175798099724324450027183844687591884430494066070534616474493663431228885748376677758936596773026427348270818471337128254284032757612841825121070403450491319548187407957896844927681677260852101130088732820033083578638940553933333965776607506988567343732920599831206231439891058572369374408945237488941611418017218923172631902893796258713454791880448850640854464539250895496959498096432888659144597899470739146150159222507509776727574998638657221221708638368311275124615856898814357914590227221879203367081597783815500103711424361565134564222965651635853173686453468184796658019181585983064462590936889952468432505856388643919382262588925397685906282559518308256764068900622723694785894407206211603305762890846035695235503802282242586075739623678262345076358630495777760104275494659113585612335464218810489138264445993968431740801888440192004533983301707436672580846039623844735812828134571951787925617991267992782886535260443541589834822793114602403033064033775466357951970721307040083670997331026978249904820510239051240692268747669761487941284648708569658731924075773323990802775987544853001657772054966972281927095199352230820811975677623932574195934553277841110330561278832064522763536164495216827147889900063432525930605843723504639069094341082773488760921979922189640225470060366168548832087878034527120016447204044170358902746643733363916224725076081782952447521138640301098556033289317589497704424705645526658623201901487366075187249472886404108081831722986159524266093935142497474353121682255334026996030943670936573601660712529869240840023874022660462901391436221245538949623559824749046900718222952824967992716809436326166313334430354065235551157506879391465290952229657368912924977280082189769113911686634252519239783977339076873598612090932166736665872822158929516755614998486198519984517659245018088610096213149943158593297967051170098454926265814739634126142382281835376522838206389960001364304813265429235193659150831241030428666423122635567051604608350153982964909911166855158041278627757869487329064057951431543343413026291106649528319105715727024134587914987411437708105011229098156788510206003967125868024807683740644205842768080657994142788137254420586739619523687046485316919319462314899289207102323127287536037224739911124085099880473896523531072988996920292331721144643613387660263137814616343390504180359246142055306500441546759056169159462349205852094265931157054474484838523863924638899148530874248030059913082395756430773690910734522928971170700861848109605777466081554457395722633119642326263771229770778692809765330752504716030454208525234465859912015279643005854808492793768473866902442510705817312435680964751430741784790155961729730929195179066941538688812258399195261454935371551209832049120016262394454589491317504150749689757154773269138323516382616758375590075262733968367841272783499294160197109071751610241479961977954604228996062913107222346277815505648490665378914422866943987256508590364962523486393955340525797018909592335390285387631886789067572680213384750746343824614009689278195728784798209633387248690195347486240793832918233423772539834644237787530800813036700530423646592829071798621329253954585315432776062697325532798136924201504452464517635511764067013409150432510146841444211617729780750494491056339653775249318643091642738857189294379389228252925462501637115426441215282157340546301863671545110853169684654356764914636965599421269810962478517200360624206328466564027151789209709922998818268427492657980200105857938578588029671305983228355486226218928515144346140348075185720657015356616555625314093183411173047116169258300858234879508452343899695370334762742869933613516147087961011689289853905364784346319194609722874599265188673381034402452603096785026113952398684914122758877598274763991729799058730254087181466018420724510455574724536963372166460102336836544018909437744820484680952955373398425621968176032018311904779674121620085622930625696343801059107587181448061566249163559357036790013143839045017766630415739316516488426051255695841315884029667681118170362572879101968252954715034256946964032190297837797221870107447914846275543824838045270204419303920849121519681459558271393144500112893473420285351886407081276722147540758477223302122418976015803598629542145304772987131700252171071607926455502207042098331742135211552223713348260394061141891931044197737712784439184940099406585171628534021220122854873997119826668950968429269264458495477979031801327031361626017958978650178598574422348869122816164264622157038883766731176773879813497610721238381452708737757855098404972246967368765885081731136119110435678802638953214034103422042534175921002613356240679314645808142360022430839455095111618382077720040292694802961899286103464553520866188811485304846035829314545582621734615350914121592672458828127349815467803609119802000694467075151166365983985523310003231920670264006650886967333293031802024119795411442659049428150271269233727252901651598862049026027666961374836974162813261460070873948937917039113231813771847380976573749453985629618001758268967695049361518030346263268515326011259554919736795111587842764569771640653512472539671236515866156502156374353175909954289898454880819700121134849673601732904685585113112036428736816609971962289678452864223065049105925003992404627808392212269542164201254391932272352995317879548601996701252128170164959013263882739502163186829191291570473489433143030523573159829049916185479403799531477373694279273160316533051573910350296819969708361654908296182825596740266293535065541746330258986224583032377422375316671455943595514523522023360264218141289019310214192481010448063731235203008725437218507272879764947197460202549963876570964800564097097431021310914459760835300580697943748127165259000052509425278184070376316248381262450801469193225227845319541993764731981320294063665776252557828549128240405766587057429280544919267766943926736894323332014174859191181516939079511091856905725067465641730966770887542908489097348592007211004465502010505692705855124471947997462227650254808322607594911767252781362583350049497965848324315090580752383648973110472972417248480425055598679521634012040872720285983064889186965460081592740276687026875906846392597678811149563258446288235850511636612449795709234325133391420942523006084348360617926162874494319278503383455900275430833234374485998160641259635489252199283900691091441979833921454848937376441267585274850291745454984526607827223476265495410698047271266429992596867544689101381969234955763524166176427276724833215667899202544834144505299624110213460347545375063998495429868582861124347380472300276609408179825941401493847225944018441199953029275209738465485863627551248553970826395074193531327001394991857071888830450086689982791325382291454406215487477177601567271071351588088239347855938565718855430861530043122157111865320159238100516818394827658814959917359695304339444216240703111367907550292840660021763472194440650906136119820774032750487811480107142865170316233157158471016924441983228754588360687365315121519375851091794198487142035497828941591928981253612952291600565333979682894626926911200360646431120303005744235951596141347619125462770574772999990419828312161759243030553798965424163289947034050283426973399918417276550529296199511205280215344810366524217131653558024332255222210952250511538028479909386785215608881201745569533900850214401336074285406034487971303184326914866497504918591654974869119106657878439434860564146582859189366132935196835483047349821025413384287962114645558459393739350247204976088203588611336148325132417324364365691339896340230730559174576030309564368791840044448275089771162233788152858998567629236251961284296272181743006299447620994835899137356824622150213641567487858849945762547398967787349119627418905841565688618800783861054575167619006457860785603082696884781505916727341095343747119299185791823482653343674728966926911499323368819469564532115213885606967844602599244301672540818949918131174107464145349610684778901705023148295564770551182639437574834741397194631899529012722870018523113106457797807538068609746680767072582943223521877546590519313748911059038353951157714542215829365428202403639021813565733976256616619136842199462125296808565404780415504840927504845095856725904130217890561767688922242825959426513506996661227220940555861969107510323989750660046724678307895672493482146043725210724808186098867419340580403947323199882360556818401512938414680026326114246077537650967284700263981634478526300132360465544593742175802388649939151498016368626330544140890523790353859415533223799333583788861965582372946962477015544421708616490353195743167844126080849472043256743672398026737828689684912251622081414434164234093966547349448750544115766565691357282466409730448154312286869305412800112749819571645093424287870646143798871239640452693274586626075241081514218463312672412238338966539716167214736739278432226981475819016279100499920674533254215920263449319214969752285220152941763078487624444330461432754050429378358630487083280860099956350655606320028777365996346778984644450061871043187456047528170660388413559587343503389634449095742213993556595846333080261028463307769616762763794396389110982892376704216960162277398748666588714206230376400401185841112332778576801993058015812123340977477314256018293573392108237072528338212876796860692266187807099076507518831144104462274195863544493873160011370087771458988114953645868509193594860817109738746099735316079398728557584240490273299463361620527422057676382908447732478058469392865822301438197198417809365165396639717718497006978768497864144833183427122849473943741397408082728459676343040130735575133748674988143948972278092314899092100852840410083874927848911758856209293575729216294247783432524047014164878983901221756352185472367310731002464163700356491178945752231866191517431023836170193685188214299030606690830967661789241128555136047794263389003141281514318198430261385054971182182228897676522137114927261708214009541254309486739570676439653652471359098173286498239618987318440841326802648282013443795453760667907521809862179068468088794360177471960081472851387358314071820768888722911608452588519115510058131176886073580850591814480939707800082483361637187172987931261961003499162146133674518887786641374308976241600777715984273033764344139923813704054952518871606127699330706882401090680613447854585666008207452497825076679988651190896734693020304130647531147878329181034920583747761041033127006752596780188326073618863105525234833522025794088959373716291132072874418239697904160898708388059248050618404553845256477032195169550722308460005104735394305046072659173550437472919492216947543575944673501800702013428436309524834248236852543689897215741678827997466914278070908106186587562630587291988731067870812090519322587655756607671427447130942811175898322306126125995412863243273121746815025698197524482976383721580884676220591675621487658689431115007653979072088646277507971438586952444420440046120905285430357450709458422939043515670500328295580518346853619677906755416845721277235548000579869944375428270746919639051411243022215271709167508693760191828896642734276699874088969383725790236810951472542351292975030847284965303847747591419683216940468115416118520981987970489083741854905424074642207623737024712884008773053610936996178259503864627586644353210556329541192053253321241553236138887131133410084996963029954841419979695820203821292020083196594617472686601886420214310710919022481672829454708351418994854705016796054005460338100126001469706491708088637756042018943449817247051072524145374702083289922661809832016332316737252472237472850766322733398790481782977714183330445566203846230654710040870671485062559426658136866130863849805521499188144559219558934224549818030928204221373003972398323238099018139230933573417260529092801467244113609337355774692165380123440632680887012539959591640988997937081859055916838058304637167243753132446129876620900881892648798768751864348746794975507426256396298128359259654979381556748413631021163743472859334993801326062888133846994219949313507576166561342860229180849255419553265437450725063707046405507045756282947894918889836648191109651070358981626330143277377148536881167358594891744693664497076397110296804976001362566341306571034383735765736439191829554403666615305099921351348008780394890957222814060124881511113922118267004300098676889677422484684062154130367996006701748511323776802850827890575503763785391715593971014898019150655446201456680169601134005974607897513230685887843738659229288927805396225229744423401649851709775837305240780557655194339859173097226215761507670829647256459467674328304420795319583294600592289460761103742116305718594404114051583865775076959808085211111579509966421514391230492452254100863258666000311153469246515516101141425848855369276232925382158797341279281428973869305612981311398533099566637458181484243405003517704410495515912613117528280451697925795439983875444014346040286747908662894665997131912170043721103080305743545466257066248272891391107425705947150844480607548177689367287060768250593125300794882352684362967005183780663047528517367927237603560090230658807410794647222935197099613573506391804373627095228460905084218405499905096201728466837616575775584781183772860939202284180560607500952087596351752920787349671534072623657210257031533149593279779276798975507505552334567699404412310170413239369993859419903554169437010129490504377723199547689976615529811360942808561576308438153985349673715492198858525475793997980494600744297980478418416631127407581609532506945164348765001536512184021385586078336976119680158974286940143111810864778159894185920633709270558610187168605362637132469851188897368090798465428340469665734627312792481177081109949181268624707506038490053997988105597764416613207558484950791929913002623858728391081342079867375713449601417626209263813198702333129253832219626413329001825090482943463527474135952709804588849068148392925711767995949266588162364925619031531847878107857804995237356840066116853615140260284875266683114016411620210919584117688368962554713977503716997914648220586214113347011792032989025835791783372765204468314180311900141384215746764093885751517686193355936377796502806815573707914513548595922108003033004652765868632290271935556068543169136964291547436617155893841499538626436998904314757229166746387174575167944547278123583689725389274576128740681034044157337610482713070496568845456248030634928894300645671268165324199054169621545267886483650135653098643188122562387182911810831362706552979099832858420937467477099387534473991187071767233118638066671703737520654729356177890171261970438657658911521262320212122667139698570147686759925084911222745758016877893081282387145173142443053612268687906838650459850185546132121825611940547458978078651896072039484462901212385908503812210932454234191455576785457500584413067998055575636857249662389903255273929659622695661010190856746827858989983158345386106422358292806318916725493230631148989148354388706496639626919287628317539116473891644859753101234640571035471161803803582449302566701921719070423967333290826049020979867702716824311539586999018754163148214334602337439873312316576280130820853935498767537569769753585042290561156611447600378869600613077842431721191409534396699615046868912681230289683660584391765176770467260215091504751844762527670369058389589732712824654968758983949839452348594164129957528671556545687688687737834144208763983705665736241295181872319269375163046105825333628759480258832546806090206734208976432185866663463683627981757250484244114889840317256388833472009485042072128389276304981484565941281861271848851441932112638277248442713638409060439342931290098396714753218313457623168495141869961427998833268057649895526378520121829216667414624877778431353557261219275250620571253792928356792211362535537863239104902311928707103340736333268572210706435008161926842139407416522739418737000868156856721566662009755733540001465582422156334581896812581332976258140611471991431261597685909571180487318840981464895295200727951877276022109385409740077415090290898198202765663276105542242667924231167005606372249288511752275042302442446700037043381673977336159666752251842505375615239922777638391444158689541299095381609660321793571130833877407793533245674598249416789975187925935145846115002024841722926531614180491710593039250121963754366885487979553740356574895771884707122209108348205985974260611447296909415038649681352223254474985892878523678303986658120497397196342777585557028284083083328161805290702538591158075722152255547824849617532112184541408032667904527913588066350752951328056992021146003213645855305534912594212038080118696088702463693510499767456027055763416894782231965929499401451733869007477366229864857993579467155350379096685091263265649833168471119199500567244507237172608635880680262405544482907522028383614540153535555876967693428091650211964534162129536813323660341572300199283746006145333709089407821591711009976863887260287542304741091730297034353147012429224730464718873673407889794881450688538766689051224520337261703348915783818000064112037178503220222004171298910912312754584603761737168642924048982706778911637227891376767592687240979596110972050960180198209608935570396579197385253924269084763329885208631876976438639714628026606930880000831518364965372585824552602534262334695696231185423563659464408750314614758512193654126593292688202225694567555726212054068548633756751449050113547771895395938799785710110198991454437897307005688704141285752943983703983356763900077323112501309292960135796795912090385875254011888161952103670331523699695748700641438916512392170701840200513211078038417686624443945839399193604106557464297376611583422160790139737951881808547650861396571445873743947699481453296399185696064002067011025273890926717889794436090297056497769492178144751790599139086454269250580048515162727219238146655392303959958972734967040286309814390909313594586963283123362706023107639767366632764752883524442307712097822704326424210755518218194488101448661983028226002592274314492931662954434721173590287432260039092594063568200620067880698348797392199237638973394194066100112445753630113076540636745228623615756717716964196911925621803447239111063932338927107642231665803186688909438393420439976940996097470749226652141653924750941681755796871281031254965233608783118647610806758697113206572285678791395931128593552094521141238934855509062401133874201048145699422539823338054163448884783440637964675768460541559475559946163845429978042235709416846228459934309007888102957449284548570043315847042207725342656376308047916892282146666033191455956800656346892506315987038790346487100257137678888096701378841239710191071181574559117254383810939855820207298235057584999072573504280709679648201121557570327112875377772733340897234815927071785405798492905407303587410929197741207754700718593751663983243476174680540507805091446437505978470781185372402648930576619736346375626243112441712097537178377520820704776625911133605928527417288987106020364319145215343189695554317017425816020287032317903558223639496623003626937360746194949949792352974552218916199523734175950977100221954633467420397141216327828376864251558868578045428459643351876998348641994193300556179902793065786981922294031281115680972363376279120127072037142118741063865331264546121800706324686479304744719132721809153031188937111365382202055505391273847460949133432557714309653401025994279574922434494202981096370923390839616279141684845926824295489122032447154368853450161934941191437853905984575433289004989135502413514681036536596496621628406030508008924962231161165929742373087796699136589479202959584330370365843043248398785116968206973082400775161204173075354422353953446942042443634147962462454362424694523148685352216626983131422668231121013447291539872418005377868232192162319044838635478880820644090055547491339301518815456395832692158636614557496321687566598850378486271384872930202693811478307012691313862327861792985135600926326268931993386019921401989158197003291359957862239232473049645217544067467813186204101204139446566795320831021971185800813719322912840828600666676579216081746301608969763097695842217159437592694269886686373753188452186993596720213165908599178252230199823907394746400943397797770363535471776034593865429300224535935867512433147675388220024757180883962076592225754523756010389773786315278057478749257775418931833819472301635719796235627764286990953350170282546319066293016151945923377297317781205100292373582324740815536893719286437832980036127093146683440893110796413867859845052983901183514873931026392274962346413795869246185330188742132712757157759803336043273660362910013721684133430202794530462693028326550596459757652159848592962143965371381905471903961395552603782962077034946131972302143671502242230285410928827500975417699226514774810410275002465990288965515236615286339487887532436395749344071775349713161611861522813530938334582586239282936409857597315415411184673178849068348300972612375808126231215379981877124452578192690241107792697706468096713250904862124706270673417086576752366721658494910189689073874877530976374180517080147470373779540685206686603302025660653955055698299395458087215141097160634756603818693004802801687133367893150556576898371160355974727860130390677148451826745016987129869545646349165911581606253853753694547239185112328834188076232838384887229511421828844112753336759529813746747948103995592749475724128996537211262338859665164400777390710748594809880464319964941171729262220044563820921214503698692213461820684159433519718351718881874391151627062839507603289695443392341615656601827759954829573857931099906426203294138523847559129007084974587283309848560795406855520783211638990655085588844962002701233977991683156514101789996296773882728592916692674921535887940035404235360544109027263293699659992320407492174213420979460181684866087306948281076727884207345058075670685587681901029868509786742178962138782587228628584968264980360296827869021381044193190766133321449113859803626650014783620705615722334545419927643006261832327592629606204511667659306272448110704399470215146211052792451378475413500889568371636064929265859130035339421761225056151163865357123806930384186154703707665768689780557224016829464216572763028528185873470302941284497696861373470444961467562445635351932304061028815518493336151546424021513901871144185983110786628222854457125819681844033235359600281465093539000884525424393765997067563838295097312505240504039319729333014475331107796733225661484965006498402216280756413293954096490107594026546122916365506330381087467076381603206805883030623175102232941039640551895489022673053833146208371401637802801450352043994667257016150610777701725778113778093417153308839432884870416817307563602763322290566448823100851259719914755268032472747000488611357169484029163922728929781518852051440562045700134971579951220508653683828207745312187579450959625869032163403477498057681049971005937955328781756583993260099415849656506356263754608596568345315888808919869119909569242572065754375229429366402090299803404028146130118812623326009646902954893740619905475298328858056746351516533706813167302969398651216788584387875285918569811097091023621953285379881457791022793955177952487462845173238902693693743485902766704760589078979063891314183599787003296110686429949028929784713652241612460809118721438131592318371755197459743785587108183149763970906538932266636149971176925088600098834370069434724408375425736300949099777170521559069886198318938626777985702622591403440614988564190867152821207836619621247824910886137442030723935522158515026244893029320007827186243368145855125531755009210928827443449358027286385967658321579545479192581994005540607109983802697003380750734258163628169734835139643770785744209092237198786145890669379534703672045192781584770520632924205334036692861270033870156865763701902747052376311138534357036646574317505978762962103556774382266154589688702336473411954316017573300751004481457931779617054183261370742110104132170929795529034598414357519257313329879325504250758909137617897761387695333721872931460891712644142757726742862717987064537465843206184448698732549105836188335191416459426323774218493427302741124437181581733254471485482067739580180229732909404278885453630950183293254585785621555038710863686144994354161528501267383991442598045208362299379271806044353298961833966974760899945873797468514664136295142099852915921014331378214421993147804489572006949938926224480892262906035750976805473404139905855231576565549699020089157079064702357660881240225364414869693276534982783332337027431209379840449970390211806167400828321645717928188409501617039495526833238728446514723118064550367920143645342315016981756727002325411633181332589006460422740134239950911579000454549959421094559292863015776183828030071831240645344237654198616202596343548343440276159951912471557033309871673321406226224201975336882360248377061156570000061591415245364377668340558087155450149118197438773775833289836973000517688821219488249523122359601698015128382393502499143291258611742747142123735356720274703105503054195912975087458771490437771150613036219145690933023661196887303865536189203180881528808151657350357588663129656577336532802376828814282230836334923625624605323939301972552694425943187265118696327544194167183228018539226101339295893121508178199516497815924837477762043003990155736740267194246030313928010536322602382244614752051210169366006872435882358081439487845752958005183223141447605390289653599506204411532237739716329838530856983736802708824162355613728084527449982253640572277335110646934731633074261779426758062374392235899832192534425854531648921729403371017404434614941581246481314128436493737545366226459547203665644750911012562644732788472950495596449654464963011583349771807456894828726651556973511852851353124444148427759625068848030018230039714008944062399495280660620262613387031876969823278736216338526538198132710730321284670357166455575159695365227361239903152255059754558938611511671049602566340080653094952183140633612060902289358220410906796732573427822077442784465408937565372728083326466316685311017093513711577617809179302258976400225241326777592089723422322918059099934832604891144092027264591637484901002651193582809503326966658098384959723722159428012042320506329487939031686949918998720998343461712107208916281501539540055630589336747540314255956405632452863651174740230358746274726653093702785664356498022691996136847160910749592933310144420725812849039069845854107548356011491466842138512712396612268475359619939749655517867927586670032437058592297003125474751734740981198698056163467550935396730977610311986135538734664479562628933586872367621005122733028341339880036542355971114322308515283500462860585747969602055816574583328559005991393886405007332929485467686335560904443042962917147832027261327067996529012659816776297135998717350376357817908494198940571025272722167239907395413919754455200850253244837442242065286663058868969538913947659764225186826796087802976371643751198561908794687281546552849875483541671932702517959568548653106003623283201575824407816191683160929205853708407229256467852905333286913053599180870667753040071050887738359429824767893251391863015168374546435013485846543883165514635899462116975779034292529318536250805551856993215303669788293553917511719221554422638101342645683346387627833093340429515700369012334737869991448125280617106262335998416048196305286934441615566604833755190337586258430038330621604731770975114340450433525110271006247012802807671835746150179341052059628611183811030641487112616908739316363185866701678970944039558534901932993420011462352223575089313018355713413392614085588818528361025323927998240096161443614071242782403146243558465515039815873829734507483527364931781228332339831537612445710176309435495905673055785922592149736746199013099707475574045910107082704406677233701606462601775907402889228308080683289125793287911342507439136050463039158032528839066683141045459987518798987178780899946906918774325396004713372221183759100755526349339511141478078631308256722075823251718882153989621038682049014273438031251202489515663182047244684003112356352756674773818593122499585007020777557411854219765143006976896450760362631966994127112036346535121114168882827086129528782414862163647625102926036428187654638686404555478992133382231102691206657226034688804404497787185410431415641118802370798164115490001942028449583847154707041683188211409171187948307719279605342408237342428325437403765198053288331593741647349406584595165986834637975860711942923279489299977889119277166447257146599544420728763455289098621888612320503165353102224487351635555566269010389217251025026240810858368314801640142654191190272506431743414691432300167617663860603951165924607120434888343718783579619257332376379239843707451140148363432196868203837492325031763531642259553311875653848072881264757404463362663269158605226072953761289019754385274641610401619247148440408509535715454424586060800162776501307380503784702619372897640197028039859794232217539653083646926837301305369307926966332643003234961950249927385860890181080819866944756983238251688303489697816518064231195870835398434902324854429538893257737438512318503960791361704386644674360806781456971396725324893196209389997992869841283688512020098913610231276357983358348325047186968539796986523878962551832118248574652138931265210040366376653446422670377861761939780589179741730757883369185457366161886513611949468606884548538002784747445092012110832600038050404999115600660096941175678140690346939386236887073783560369648250150688930236332970163645686072042873722099377985501725685557040840065409100703568645345901988355477275467663498937854063287697065945507152171411090314882089976495431292657804282042162511461510310570888144217015338469844606291869303708969900053711743123485835669293349663374465964821290012225292351422458350542732405417574250298123699589208654768658539884500644802203946557986465748043078446808987578478268697247998229531109311681618611724481085392581526376538520804866158428079920956829020876447746219022612921059773731715619651285833789284473634890057898087478593581385318009751397180160095280285583147151994989483198096267351862571300034481022494652139988481767975253220425784067921668178623326747355441124324366001797501791478717821226423623616669207461270452651669946800264224474788290091912467151253924560508652961623908517104368887695384788657592650814276370401078924860297268452658954452680897911163947335549323371510372504234860746053583469486682491919448102290577985682936130719686329968659959129166863384904504192453019608975185601239048553852437976976127382597750249260798681917490275890055178685110663579175233404454540243663603250401699590643184999190254050586896032927178233712118750819812657758609044235695128771511509045169870453421639869055932430251487365538561370093432370626523013175240219750060667050839598826896856806388946407226692382094047498776843821918328166744458304143434572600315210740346697508904073225567858838782902540056081954946906775939272746240219123426245472638857512185985785497709557307480441275230845527562274826289004990426685903578293687240892679597968881069892068150587578090361370681640072247652350366693202911803891011415108101647000501461427177288184665055695801067637532888161214623886655231257398357725242571733076339255625867959533289131308089747280232475907173544036957948755627642124918760919474622299752826774130030410769998365712595646277040433909657990047862305188258901092315378974888820507715381214586830766439852812704853641330669695251238102704036370456144967975167307664313777757348413531630057059423500873313847437721145407647170410828655074885287108775543492579818320906494348988099908310163137891584235772933472064035956962196000848346957108435828318517038715999056250084188630146276512684328085410118924058071016548702784481012801660885966430168072600142623416701541554699352286632198097897791147212197636723698779747130615143846847480399010732924280120927283414669002070679654578404235500815195279626215752091733265464025824012621781751327575208349400454154857707613448994882377942741007947743442518922815049717834602011256447388229978074975410027103571012551579224035284172754220767140049565341146546280028540338462313450460459978577485494704896206757378508007677864140190198011247151721601622454134172702360401649579305918912579325514502433360080760166607717680482938525011631315853522892175075266225512033545177412523605860899931614857231448530599499840689855735403608350297712555810581787023138162310052783850281012740750496811138021563509985955891736254863186004151809493758832574403791797603476585377556921620581552641665160328176357507190400075109717226552282297102138676520848391430940963454701666935357345309055143624807820095327187813615728002936235381113911525526617167903603739622402634511590237105662389310301559152490968830949923765496651852579854067472196249593484342053210581165364559948929804101407636330807856465006036498887644134907608507460657805251138740965014855858872284996882281194213977361249963866324887123163783348501868100061205060289286777678897782469234449582644800135222975633499954771603566490126087261229207573924162649964020758613230987347713555596479874188962748511064944825810739735818765193963882080542167083474047960441778075222049563211851751383373082868708242684596049643850325257180234168857040559126632444136483601181649905709586006039296532580693107802161152269469611556794125762922521218490820470010583436286787318926466171903228291448310047947166779359949310896379818386252884657578379311055766169087442611827862132234278731083048346454653582040528557250531254728940191460642538949260945441872673706994471695380299005995060805710091363765986939179856035409559059282208512864656443544738609206068769191183817534330682967515354051258825043089063610709892218013978362821818492508929439468258278510670390376257701044450489804460920339098488762966150158314784705432793815767483566756213345649483530961650789935815528174187702813279031089504203000972104619710625417502093356559622552256611214252203100921702900414882345630865173627908123423808127150242692226693563717143046246972436753699408263241338435977142320381574501086000223295159235290401429189700595480657163563003883267802809245209918945485359698032744927475837193196469517105686558523723208952204612465578019030186299071921222243349240841563647798261218185806507813521973439008563989182067003232394314668125681303866334083743345517821453978461863464027569901195449504505065442387880169164441445813809235432870349552289612999581046130899938160051611245396786182849380470895516940159308833458711977748664743841542438145107617383371446704933907540937088459273624047359298980922872138145462432916772252880440012350255834456536545335421811512524106986787524456140222744579976773066225874380514931537940764361506739483441113128481442747757435898684128307956325674262284970549167324878148570027826906767728619602325851796853959038167010003856450169690863448515482123432356119639435960128574637381818689536452641424347406632291332952964159071695518678965238091351640756565933189779356385543126513988386256428748894299832225578086403466129180516233408224244290371258011156156492392709027608580209235447656273244654684246067112121320677007975854804356266143189741015450679187571621543970097478486470281652822668815982680747072085255831903636736208593876109227959229150996107614934087374775484428748917601444275268200306663805270440442089926954220970901274353146203264570896993230781441287511254630279625149965240245883177959011524844306818597243496413411249200272598325990520047467041675862633453344545815210899138460151870136795577087624788587582933898861999796997562289648624931256414464520126696692489169676462163797293132020476493031249909226361888292133027483628950257594239168916913287270683894172910346480699689454589034593671218435277899120020459916708202154665459689111382551313536631028901989225603188979576897144267835905198967386724992559064118518208249046665902668355267797520371196153440752356647059497276375981608989251962576884008467514685817334622033879082961129610131095753483959842610075551873438016759696063242123335337432539229201135939364172122621853733573786047781348540576865041416789778761317202764977792605836918374708667254665526874742949621294439720123380985534292626406022940818002505107446310915951571054422319363107821234044909601634765531055033676528171193982029690380941924343953083887428499041811156416504821922123523701818811816573031515337309022635987131445134343285473704863818961263807177869515027699699994078778106488588369740662405045535603025214849466223930153747054420026286567286864575089560776884483296303859757027155882409688593954510274630012667836744457818539007215028425008961676900452379070097752951142611181415611602143419832279580876176757707087344600680401937669889779473237659789088465883275618826849071654453027232983248227792552449803757588653008452346967824153664121532176398172848918102960669886892814550681331170034362868172348218208873168163137681553704804687307767035236528259895744290639985693065196885373966988174601540944237434033679733505245898811508798475925397345306439539095046492399457628308245490737786322828888356912802271942797910023558991981695552100933753894978569415189126389150805457114334680473507557985307641760836262153860301454658946439631252209655265878277931624060903470120919834199944081668542339274197917137358128334008589673740476746569338906723189365231362485413716188469738841382615819528382826628120791351079877142635587762613625359493504886902904843677256896221548007251299986889388321469046013928894283170685663311435672619726953117528283186123489521442929443127718866407222256917107168334615045508922530995326057130904982611290878502901326273171226229738308538677972110617053638641852867725681574698371640088852360821207113314414558917666557765967219422884558752321246749253736425791714931445265743762600102573392621826311911683018379818891850504329490369974286520908452338260036499595038944249101681045972262500301748831443171613694498683265274105223326611249179825268299531584424510537526702933103477838017235283945693176860806203666601593917033159435057696975195430586860153090896799891727243079059049698578413910422527090803338972018855847953250011371089382960174077798315138051071724521368281179509399391952700750568272402471832985161431373535833472749190883155878605374235966555514660343763986154419284957959757761206070751223616768005574500954933455627753743638811083196802946382617704621817504467035867488867963418036781593267564658694345864689879018178333019998107129340958652652606033267540152635544846160716365606848331209962346852350152565173004509761774856470222852454153920254648040562256494959139268156225467794789721194118717216050740340271216839417288550983897271457641723674459784829821353676187490268513798337279193741519199766625442330311135136199669616025946912193968854630019818484525401521596105572243305672385653049998747188923347793676941243559234671226180519763027336995900982817760080667911869211284584314028183302595665969445744622142022792326346495153776242515855380738759169809324552176060043499840086294008717080825827838770960402390006320408534344199571811179098528379187286046498788643332503098886518695854094961127002116349633214644115742572720116156603909778834408617495787075173694990163350428284416469432562674147409481563288089410464104165491576252145045678300844488947309171768640507274090087123694524095487640162931257771139753704695225661890177199519714180788682764993106862095002925374698475754187856817526410050814418134981291904711122608758586315557063079480492518781773807441099684523552442793066521670736593792707966715426468161085228052148507057012767070153828103413975596320689657267746939054389846873901308400971763480233024064659936038896777220111985943678969473151108779650999843274045060615256830686368440719172383710021160193746595567103980674818173017457767066938864008714027443134906402511172658416347843359217323572079938532101426045871158512995406733990008070026094853693423078017005828430219447378085166512033775263251580398531982469472346665021431704331361349463169639495842691711802902322908310710501850664687756997812814175417087471398083065008593488203245634000003574668685991391600802702392282394572020482220810570712260821358597161020649027800380270466886640327533802508428968698317597869285471941660663242409004495527856930635248218763531007944904915195269499688366339633005036523170791594380924921898778298319820079630870441768068556881348675027375954898162268423799293010618077124551153538682832362228916793387883573059788708461400353281902697778185690320844309399632194028089512553436617886201132103266401024643569997043290982989717113850511521496081432542559126338194538730832408152835407536851479913653126788490289610765317620939881935399737185194011519409381662101000733130577376225521876893448977247024759412274714089000743240256095446677761837958895804704742139637307360544160903512834220515075535624263782984911327488712339656342816229323698458673059454188118328030063032935693460615749310525748934839953867218105071671248695544704013230322055453735258502811354896380854556800453505144093502426718468397083303646409163730206149254884803231031476672148709657708129483399316284606489227994059653159254578341185334263824617921574177691504705626796923419807116409622475739446904674849130504504438627038305637176080680123615000504895034112134409577861536494531172985041175103046180253736754152262662374497672575315412400209697743348009115250703759425570545011543224665556941326750497377371420757339578653031124965565617028585256663198768967596453739473151362267319846307468877464247128959594730546978937609807677693590313319450240591112335857072403021439822874961944199387595784526283512292332461903941390280267360696645343819465267082290795220144348031443221805597309728275710790754834160230314121269336813776392636296608616939785368952786410219234319849879533469721906628020607238933404361229095997821680852930521797534488175639701323462335350694407903504014166695069445326512105407812390035106690891649237870857719142368508367646403631369098995086939395862099949301524039675701764193876375667024694400656826863568950791795691974133862083316680096778175306463731919976773211753718988791740968541720731199732156275337761714909228071917063088751403826522047375672732367186517543504486743860946720626322939128692274695082607966258049602739255066088768603231851748562712600574586917519212621707631724115858161268548185444766522765956528956842952049566602122349331904104130721735987149479287904994723291437806450110775241421944566737281839798459911249760609569098874834443724742264374768668742799657300629090037421274863115593277457912242640518625189598122677620983389683637685929430690504101894290822730823647581849040518439076653914926523014238977911461648980069796017316116962160355075719034168816857887038886580060071645478597336050555462255110773051074514242270131483846476966102924711105932999015298298403402145652604523365134091469346878944888895090022208577874709221924241669630908528572634295763803491985262992450078549303634506914637337086015523501335241751242261208554589360125551945206830026560987826411469858091000183423794885005403241660663126082925988531615884791150290698424070721804903434218424694445132306071178657799173202270039155494244362148701501181581303098260202690099549841761884207575630007362962949122762600058063338442903365741067506777945614464675894929377788098771335471118912844611838141749039143834949633544688766416693338932785851972857486879063043034973092088278227462005514052589809869760711793637901723142854213504483178177573530464623754501766876640562253965348662353338987347590198173124715458922460426284045477727090824592144017746349915689325620061175122016009053813912691206738411417961411064678317337617366753380989054535329515490749631289433725098483263309670399871720518454398168047095767639707735180237031721619048313232190478546435548143515366639386978764340111637513931840084107182949142200043877493618852941244914449411687930015936625904089711957268145409878891801323729931064741043630996302110515572398353921321935982572769305806475426284928045125588777827557771949807480388041311465636081740660197717786288532669483816060330060525266760001043389025571513303393672256451988390182426174725847655918274314115537682645494456629698667371557476899225199505427521907422073483554445320208967545290089844459821928610382570867850104711417404232480602289324017826967798679969754964499791219903668166455278360994318598840529513593966258254531803312316944972046581131990979648385627320772062380668887896909608711328799070298807557598465756273390900250672852960941195798849307283729457964452628997462923041141784831787050604693325311543197293599176451753389603080227032611110341961508798863963024476724029819307460463250427631823255644020007643047074821542981967144722252233563163970915789337710085860296841709618243921968953053466220804140959562287060578903909202171877975674710864241635416756307955554682752480599419443970792073474761533639471918223338903358948944191269824170556499187124728377114444548674971707574044869026039182273855669157749531803114900221943461870958447803454366642560290480525064870996589899381773650693424819508471601849489697976141734803280178986933579571182715861336465720155004889975203275937887053981997924357070871821866745741278799503035624043856448155245874266325894408176519706737264019002321724067530403144914944956030441087034583799834750111760633958430421061018187486529275209227285049659881889688925737101611171278012419468570928217463534020190693360024691712029441631103975860410820640765895204767402883171489972343390081595411907539021136675107773744314758982591682857751108071868333898154113152657448868181180991642948932251660327158088179975045154441202268995644261149077864111210974059984497016990654450964172493969156866842213388107699742150884973934798245329309482063306000826911019813319745229033567093563131369704028518604916753797247613418551649707260274076311446137428620297335655999817083717838470955982351069383514679501570102108178632697953115915280629181521185651854284229791961762164380094876627673417509538945435767875708965973170502356900050276103924960041353867655305482490209702962840985967655185926016909768472432817370343461824937964563497253261427735753497656824256795527739185790278160733926128350030702169680442359007023178785209096812665291137868624011869186682711857036156599621077232424733082602799521726828419142018916022938743849824940418398560927051541236584547240486157938264423546265044673951936916553334177430206630888347728912207812416934475485374784918568462823310502687284509857607295973855840979849782131162783438557057835493275115479237461190648596050677532722732684749548500776269028310394445743411050215730867884649945527196810907926520517984991537822017832574978261313938645157389500306443054133986737786739755922549494301946641808115862189594811363568802800756688566528478216216833539043921408014075206656086647827390507980545295931309846944533345550183955881021305998840542536921409886445105293753451119299755731047913950661926900842359595234004317357709809816469519400443585010474396898196425645304785533418747301064782853878774366641764939362432248128117295271592621773361950954202580552862085532875982717118295297713807185965267038173561412475917899210186329523618667171082532181359748496122379333665774570619893851873038069358191113341578649906094976628535049580372417741597985023627332998121522516270329049661753007892002134368602946994173963778985400235356836850289103742794724515893242813443848243995336655209487937082812782624026385789464256280409425625202426042487297776603005863397047339852452617257350912442643391948268420391270147093101808814062006998773391301043100191918050092042676495109708206381992112878083818968889968263620578498609174309186350270540540462303468308591195195373501746328248138492580615005951412980707672516282994810642155239081215877833301755164335255127914342002923710874371919069870407109741351800665106880247391398060334316772163308665990627183691677777347820215827827617965471740002994440987756857419821925805297567748257338568922984518931079156787381029132334193720065086831516661723248544718142833768645982474906591800210483876294032203398315702439240919090472969492027034741275024155302301242212522114191292983034936526860036275183172991011025209153766149451573715044845988944239189551248801163661944673360891408727728871297156135521463606577181244988570349382426444735144109488580596417501176143985082113099115621036633131196468846123500933915108553287232812176339987115578944502200510928822474974201140743753568477917782371404162415874811684907750946217681314369483262852317560852274478877053641175390552584633298327800266289116600345239043436382130339350452010638054061634495119320674088299935593296720073933377249909502619829045462149421527311185372970387457725205271056957655152672782393301875103530539951956609613790772757221512475120666937768843381046763961322063033762574315861123931698051768738672152777313281170589691286272804226475128595230358782749915522882268255805159913212879207864967484814303366640581700477194077247457838411646446435762828871551992808192828790337776234041410214502973074569619425593093502056923748456859045753997449218737155239330958560045471309526517877698208160333211229398356470721008913262926084671591252709947730979241590021629097120480479213396842158323690270727639459813311484782777477989226951965358022712941336526468912245595572423494647462001522621248369162516104838001364177761950910002620033507089542952310292961993822137322274121696523677117623839244442611895392763574114602262660696506405025856601604706362727815421690148805896854726008912953374397183328978679670902530809665337915028819611067962873833835380009272726404836169937551656505575806964026902573773757820835916131547340029544597266321866074606940973347322965747039833783709175619552767947780834238748681573713981620017715617118802196753509203148121250354894596066878730865613793118950059604701828890442560330964954301739234607916831661317223645096703773628421593839136076217291284824003843849424762448678091591127624030744370023850705693306590656530583201517191334301836599319227874808238805129493686493166170297690227689556642514732732171727703595550915613395518974998502401176311027040111860181837230512438268085867602170570210539880657048301518642780745417535788699468263227394180697053731803446026241398638548704847025604891512217827654469903030706145678235037708497733546195884883930707840571271323662440357272646345364587131982257296059285633416131952932119516730845072527904132814963065617936466070139317296609074389734686954043974087439251885509595845607930906885021805715810960701348393965585076415940747462241591239685242070963746363105863497944048062332903958425326418316089389044118826336174826020950972140151137336396270976215860597850931000601342376394751090164592016310176666376569407942242322908453254577708195472342185075894102142634111033577307140746827055000167871674180031370600268349254989688267091778289186829113341305250827556010970108463348251924377620353172737662536786276761823255016411250589768292433199475175920157906513578497189634929147330043324688125778320133433527469082607176708469400992304106970755895597248277744362308569908280723883825228792835701788111577604557992352094888549171950811674402615284034253548023214717297528535620942162916142249457022724249365919321218893837227731321860525299029742127739347723448632304561750485661569165059011627198542000866062606955294764602611050458864247237277056782093014105134212105336906727898729281355323424489140811300142889893353979466989555730897051876592430819416025513475939635957361209185121285681254187981623176544253779543615489283176208464871935104653748889191649483016363129479207930166780915885050835961657588927221729213170304670543265989922910378140957020122560785916082919844664564189640302351428199407003805266200806634388275686385578978155656886126479200898367835344867007147955706767928592856955877325601297957559862121129431729189613565590956288329067301043012910432257535088525776516470157467778004218833733742753133802481405842440774988742316329500172977118098317808882529343765337264586674523738924148669428845117963503129696825475437796248684547234311564882687897176600575534849337113534799951382705187191166968027787718121597596976039610438388242411748781653655731633537706255028237764241522847483015757436149754259523262126222327899150426675522216333221544161835643793061033035679571471713349848650742154267856212845760253941393979068893061869563014024402060733367386870589118345852639217662560119066665201216809896276048511582554022732191076748323188709348461474550348389166476849345825586429011609042419554851384476661189415947441261405414809377970162565208132509505953701799389888266545272956873432127445673523715813881963634077152196415710765716463668154304014424839083325418061542563191225365914743927773622548509701762730000322525081570853529630264981195291394544387853532122516380661822887577765756520108600974404620596080803717262838071143325349326984393168091339143756124265550799867900454905241519386368022625770752620478576876153098991046277894847449573709238309616355488356180713588659648340247459742351408374549945015569199142426876630224188052519606442355877589047724206811948276159618599807347650596130599519483660759382513441681337669668637638711047604945541277826853980034227247825607166612174767671915607851440881732077982388996983545117371553094620682321503628388787603015843080964449623779050602669147285245583090546566334601996025168101591083604212661283616178994706947427709670151761513242572854430761856795374951997700990835373608078345267107434439149707594049128438245585404653759771382027055299592302316087440381714564548647863673547096121464074292574929153958991250693320952259878630851808146273700947374493457223946393551066620715249894018965323302792251212420611691358797369921189327353219198850246998098759370626415082113612191727784388482974981102006929768905121049755617938966067971244811488824500706125687341212321066760981273170422487046950271331325221292982736909905055556490020811520707393998731968633452440564844266273121106542552891711763413157989439835578562271910163974641705719786856918256962223804769972562495028355957954622344678997576320917811244342241514429847812259818745504086972685725170475552552804412022651035111288600731457472318134721919802314716694368550438687408765451451926455774986607534971466231692861205829781120461191838532854403203588506786521845084597504835123697350929212187627826813257481483621294468853262358401797833158978418309984761832040293349673244577542337875115661791567631517178615833370472259503378631375367498989969194123951770044487391521761993394904308602995587004978440534667114769421979124579656464945225020409984280832598657046014701480261886110725297379774016118478065501340016429571713175534614485905271696757664463137705353442795608072209392301997664407749511033916176608128001059063660678502755791161098450557104407107205727035072943469034012684654788011335105609270253649482503190238441584164962572128879611376024495106128037757063458283452889917139014950175678020240505148661899900842300208102368326130427141377583328174629747505229311550963845382754091962029106159023765232654745286504193335462824986132744004938477919894832123095918570847571000374888666137148276285858056896387094893080754108922814094662804233035053593284139712241966275511648000452528822124306854179079966910141965408939525076240679588391440405568761805056685910487342956154962593580399452429347327273134957707831106924452683356618299899898176648170787592473643981563314025935328570550911802440750864667122428802831268490038012585390560234954511650989497411361784412615018006000740912997071482022643134650710841270666063807268317210714882178500978329257256541235012227619927255650081726297128901459852027299872161346085074083846573961778242576341504378629861417993932352442622056196096803406052312108062634974366896547197145896673428825567089924829427927899463528940490936077173692892445839671865719530603038489256365262426458170782826208409407657951562244719294747279555051413462851511957641164361126175873109299483120257001062387083333566405851419994486781268122475838660701893380460043079868280270420804556306114939434941995449307795065819707832251601890396813589306956468270608824315229907554217908894354835505316320865968320900487158897545894884189152842659154382769746376827842085688787891741850927879378996063967574288209684637696960872905568927683190957518286549235584840414550711233072266471925751146883804697798304545635539003389127982916862530404856278906106808982953992699410885525347622409492094297475147459060500665575225311350744745738616433715011205556933820380470336514177419675262062489447290651109714061857978838295782683388914694688511981642765583346248008328722651351444462033298633595625000376321471432018239524595937760144342363658299384423581833336429023276455861692602138291234209112704010887947676353602273804968959789483107492216239113871757427433323922797003136738307506577418297089768756447169405071361804189899184758075300785668507110588181402505253648132553137252734944544002822136910639980771292681565609250149376396087060673279730381383854884030420468937280278085159697647966214201109002204198333842968550381539663552466674734412090575305087754367370409222875912262889705644105602787343376387806031751751939983712845929280059764026137723794008728722330393716497999663120365101754751762507317980290530793915090971268677372243234702919600871707709821526838065629886855125219989481015555955258139343612927562003795644389794364829640703207036843223412103013491111698150606562993855815308544199624349527528281091692054547774933056410813200101263957236651936063486500861079213921334199765388508294611676872518436997441969101900264279976217105676490732928801873382873409363273242500138943747121791506517142683083362030115130685111031702696100557608109111695526153156457702844371236636530645616921686818290570288473920193537937341278757955359664261382915343683722850331227457657291838777215789914879948405516919014319146008014966557255121983848404221527198800836163806324759804799957904680878096458894624779788593312394192652623435641280474984250246076624615821452529885561019483010426155740195607824700042664322188484109547784404642788934829187600187576018220370364202597049148788260385149684850095999267741816655804170358925250994921103406484875403740727703013800441116040938394396609408541096339557568758190338268416773935694388060249520932665919554732042349061196859038856701733786123417713587860268637148052583461245461228155947549863247186677376962597680403700528055444123555774037628942948007181197972406021775303343088658801510027809390515349281870502598476976981363346257474471821874736271440768977525724351327694075264010097859712591115630155838452319635631724258060319357461915805330132419709382590601485393509924372207154939023284826625239043039165322522427914262286998601973683249538771987802828645517579432553553174510571111441195369711662805116848333476511698276706557839520770994789578702570487922866834002621752303855609628197628276889895052369222546687065656315726813390780762688619559121810522431471036375304458803272145504182336200212768112108514475761241146167008469174618275613333183493107820140847912778105404690193172789448225162046040649755951361013632565229384324676841205401120273509125825203921212527047778918789157673093977160432848647796695931822211525526222583776352201385117128284674307690246554462687850325865323214023660995006881591208245191480040458320652381900743952452263984341697690157480092480011327991508884572019566716702412963995768336674716174596555859402682519109685630383408930781156025347682651922894134165397803075533124201729415275517982651604956687749787172218440502106241665368877638780523767755221009331754506193579163088660040905253503085890335204399924325111111903282599826161155265543706733354931173874789327792365835084695233437809691518616055354519376409641519815623988317010602683729047190688561310836771762809223547794744931625544175273459006989403129374623018534067587785711769023004322513673054116500657682077889984262816140980606645674631499740663668794453716089126671796340237753098977449324281333720930692927818323413587623864569547413304898901950058000553874335418862522314166933270883801943460887957801007214676772307629049684084649609928460682165931578070116410728183697068126261344760718068490597699189225825774771752601664603610414077176146686601003614646302521884717019326467163532948295942720622991548209039119627527418229941738087058082379152057724341023514511066894907596064119684385931822719859032814055400841923037722244635868210237157871364799636504210201636145147048064856858362035548549804275479431632454940917779020442505959758621156006940599292937908699866122438442758637900131471512404399825909086965717490287143434848554971905292976040757207313462023331305273918609917783484862487575361435280321458105026835979224263688825046282147335659173001755786887981475145835106951424506409574527124696999659257981850718157100609181453291576992385408863160119892738139486346352496708028471096137205831162822353858696468158481672459028987437673891384042179436260494352686158121438030350851617522522257678744481173912735145890045492913725195845943721064101775029817958175619965559983106314574844883560237331121727425755303007102793116066448836231386555518000121059870543790920409958905389317415253691962970056451228909820753622292208891740229592518108156885301959027792355537903214642035507342146803485572629378963761237449224273885390590061054678791894004632687321874989485788839503638798485250335837443217715304285550112054979322000942399119363813347166838197355147735910788501994857677228502529038813084831756830502991733183859426609940715357018657734007418917309987892851073052016483711504389673321580839195122550078269429902156385642476711883970867118073141673026587015705412536676735644898682660920295310741445801234205716494380432994702891926430542421222819621220352397537589742568917208456687101143183438351945655268447836651219053665131400738482725340041974541351435135236991170914279824492776167304751967698922416931703877484116172747102255693727624767515711308650277799978310517498810029954528851626367073051766818342984983592263508754958845076621962717465385335382776966191290860607810130024918772465644893892103422193852353567051366352811233074902693525987601337131590516021171608878653784218570343699406412528199071512460009101587961512653984754875321927654018925075720770306544618530684155985313343711202172639152695939127502626218054991748486368660708566179125056412434197720646416684504598966525547653252400724281062568545875874514258055068833348099116499676405016100801487394527788850665143913747304485721202503199537381968057758932024317413487140121298507510622111483371436878406034013680553579074745162206897126188586962467305005539228274251247966526879117958509111652161065779104302743070810733467566804014821101356991872441109964578613675323624175094601047448541769554560369393684539825464119779979822767698777039273919151489059952591483139990193528465780418896764729902598690848591922231760043619165505671357249268550222833094952712892548342755428458635142658883946128915476249265836514089588437821146855322351014393576977989877825588758461780815161548752117276151794490488439258594328248585420820356263915568795358186020259508483670637059656053721512915234954846463780816232512374629368495398529332017842908022258283865219288132004621231960918309504310572344430507836480623191607154719804979387860973626669575391573523117346174473932535646685603291648608341673851178624081592108667918450616785053887311361850416743304907148729881288264435468823667695006567298902328652333766951890698950640020605327025550873330524814342577411157512782961017142260806981661322503250053378409366983726453283146016032490892177311840725949960550437573296485641606426380390444510097190836579242365671934381563875691828183824913445551809231999100929185669870725662448265747518045929958470375466237158774280277352735897651958254389605298045836672231250379027055690371829852204696077265773678823913383200276342125118896795481317125632549203274335539711457611421629479015818565413728677059601372136962203964501292570873697923499080860583755458078994941660916109984539713005529317933054849413985812596385241827081267824507295102385687855943404805246405335916824634562704761671698981027361613750623245639291674025199646400150286821799865933256878848448148002269546353516298371167913809844109786625578232578227278604507925554560420203766145707485270057096039933932201292593882408779142983735666865750594185278693438677993131962932473876260095843211984171886268035238033985582534070792186664694978959643957325912257641322654928591242083706090110894879146466651438420131168105136520892577312831668452134159035393089538557561260876111776501368845324648375543176922143730046403186873276680870042600409337697421627217912132907178563040703124042028092142436427530433874499741298132170628286832547017678577423320412893374269668422351131711409732666613135512323698409059398864558484313640617887561095319760271657497080585689790854885523342864497688508846817451077282165644226172486257893760351105266328304364260145172432337788391549488301460807860697375509450574645044625657464108504559697017227982534940376479021317771155191064186512132923536687759832223299117739282648548490826479405861633982321080663805170187359725676118547844987016829019740088691745650528024551215398837959113616874594155204806888713416770309867146257278117925799066532579067029316753954216847600630985324813879014002521162610133989632344169791820839349211352030006627637326228838409973768507385709838944290719444721253902118196010772455375159462016730726367275341302222260169962407035441820325041225674046267693883371577255111689124634615418885279505774338546032287462284947003665478929105388149651856335629378808814020316264762508552505277647198556554813460214079236097042679592636887961814907801589317412734619606730400111857214514196541851541215936442234782620869837887352353340896121918545394143244803034444361424834636878633510307867851462612588468374483861911973609552384792483264490188246667925174054322149271156799969003549609545574080434345760972453457908059333595149608624724583007342477142848592694285874123937762419541293079884827671713811577489364692849012563727614108457365152134257550970820301266834954923228650587190024311320155565543085077565051871309785164765784097537909474703640471051379274046119888331395499721479367667417873734247898118424906618811200411869844584342198909017922118797817002673962147798678891860280095200388102478361584650049081546649789820295339494373722512958065021620019615810525337278606394819527630227859947302382961565641328702160892171717049480132545096135023646131631945961192588580335498610238205828845723577169770567198995288561678077552812233682040352768400808361224435226679346783857701181859179409686039795632217898567584841481837123222970726296572133766616149342327997298548424166829563155823077206359742168108539951639321193849883963739811600971044231001587628876293595992331852488486341161763803794424564944388978057334640343635156941458080812852059433170884692048882833423928077157484891043657504483057559042050324454167060152199435628466801565499722971877058209626940431011565477398343268601969302412813177643380321904718876139725139210285657730188166168201928363943962638994321338034224981626879210893308442551560596228516678482427626784825250416705658776427770841254782597653055855186290027622456192463537846170084855344602989982203015492540856219873971030531731155734458983428655677392945696008686934629044963592268274097645877503682589132802491701864192930126553098438752884918632981348155730637403862396073466655380749435501188694770069067508299960824679722949828610018338070463251996739922197647825492475321313468059757464289384235720404776979110581511403015499416087870800475221867915569375438852560536962833342589616378612844609662613260211516357366604546025709704468618259678708456893544602990217805193700085386503123927508511006975934893661189130595866165353152157248126431518821467083465882109345108123954905102993708688593232880092970901481733199063970476645319080281345510424468969295044082035231825350557123611297366370095240122029570912974408274984173180631306622516375770189225941098558814355896401269791210099978644075428611828585825024345645856527666328286190667053443847257170855378002016047466223249399208143709275385698431478726219378336544156793358770545044987153758400112070360212555293020453212850041249675664641588583805686314199732886093047464610265920995495854119525166369368528278377154566255227779611984748018057120131800999049997135976292697732205000978695702457797195350036107213698205011754564558014071277027743314568218806098121679662826708669818482478798755707119469387966188158689405180672947090203150902506835155934539550474177657795165764411938372078025921956506743001820753924366140442099162919473064751006857213992268897812751625562675033137993069208814024687182134335687498169776146688060354047912677539774623880666344314255816094236794879391553274961520000763108158359303080950938548690630734607298427407806579621080127497328087220378190564786012701748858934843221174101358086011394743102683157275239717530902667712568477214437517732929474470902532207359194700287326052144923486235990403649945123141886471885926948604782562814147344194153062581699243553090263914818195085553533262028632566753190950050055960569377429237686055504124130793388353088876651907683046158838964023916904990815555008806419170646559610286214392331014777644126050958595449677949095812008393122633717665074775231100742882217428538837995802570044561512194123839562444014971487224006164434066033748954103327741012283931447812323406389289550130177835377898137743025928893249197150095987564875080789642223957640804660331879511486703919150114412071712016603345168025459314025115288657691009449280451927449963466282618437343170210217531406288910082421456603824404539937664358987216613545232995099338402825926086295590843958368904065511997680235956218181074433510717872015126166339218608281180597218989676023359761977515623041331036516266181981600767199396856757588274658678849223747213363294428672791822529773063387957276022036845377042117782609478218236796639834033572813811351876260206686196541388611068554761914165226702797943025228403913805875857578346441520901726767085302346570533889337447128988567080250234827872147126267593536188056165219941875051017978090599403733985058219161775079567508671561848878781876572233438957114142844328637606781124072657579442368544182536871831239312596782825436567171766374087610184513870769345713445325998645914231153017733417792539541992497131926135880611848124873285269219466354015422902455804913065749132673262124447599502355555103667523308739938465403505136970382384147623307775307120170492130667752369141830057095304324649369262440163558203298437362474508347668115511018809794635895946349800436580655601249664504637143331099878606940053043972656226454222108329212231952827130016809418647256954115145650748392933336848912757498889201471248204748364197847695488751420708852401785421391315205454247865521647201056491263568121747489494092691645452781113575596518287773226995135021623546241706297268042566717764547485840070460687564605938055871981154141853250995508923446706421999458251324928204862469673592009864867135978718203565982294915233295730754792235314480462232936490621321857445524593391354643127381867766993248761771592224795845993479439005610051497150067755210344678303882413007499682216414564566117882547983715807065647843653144542474208698063028905346198978250219005666499539012592066966334066862190761976097623327727863970399338037554983106243037064946823649704528988644040179651888638137795918461072164987038477334374196480351108740032346838773178355695556961938231852308178002137358071807192184937053192401151770431342801979540139075999516262031445746830845267010851734870819018034759474575697883475332279739202709502852884815878803652575572984060412198299545516872523954730771670446006059687486022669449913473321178031238608378318638215258542915907878096626716194517201221275754440222133582567084758398709911639501673173015357021445535547207060441101474192873600092793720755258647547291459165013262912893721060710950992862523461301323621818964752621533201337990859398707768791282905969859226964894323139051763817541608848431481335304604669771175354487683924304115771013359021519292096421239321487585487668385761026071067428924126624369963439140850540759481318282189300162036094679201381461692200984259080599031592211761120209380957808553678564234072789746293460456416657265107826111678403820354670113065118091887329056786535053691846489080131863994666227691453989167223564471908454321952438852912832638943516473232228465951300726411902020049309919454266966629674582697434437525829198842182159132184666125077196490331235027365436293296437509045461551760087766696201940893630597287283471046788969268892614616337874892175001185841664434100496318450172325206926734298013330199664797099820163177632997032963655509266411199069092274444302189113682525605457462246116136526030078685435572864468112805219943722588193362802845345068044516201550907613953560267560019310500708507622136643417405828561684718716969908787938344818777111212057016471328368467343538575256421993754017265277029938161901811715479108783999088923680357461755495106514797254313628501782616305411653054734591763609460416461445963742935200742493928423496961533100250552137821751866503234777322952557028379849711522605166214011402534806675014168859673887601277603114988651906750832855845219536676130430091238388537919144357911133319286125674878295831751269262134983431829190126730547818868738883538954473445463091813311888090983096483960656985239996221473279069296159262190739525434864315593973385432629156321576123310279725942526492262841597571710810719611602323546471010042129789164800049784566461514152234071658075028853083854157011391353282161352720265441390970295415860317762266375244822666895346073253625085046633477391065256675270216350290297657245967856977099702284689865402717528054434726678494581195627384553566818260249579578403895531837404554123109458917109814438994547690258709235523162313023226665177695083995281825590125004870161927171371476927313671099121742918863704340746999570630990941828185061668819529059744986702599520693070388568564693380311236224268379310847270493844823177771168212909840444546770851083824254532686373905596143246572629917630011724767365597014191024897441096777413895989546807671784035467108096674124209645766767005857846555049979458721162632232705553733674555231631446902181560234266123056801433066575046367351693347912141566486256929327688078106819030042433541370214008042666418902721153862086031858885528780572650460200562370715718210967388763291691264725435313969230483944868093545490437869959869897479417898013400313850745331939225783184915317077516596376735692849714549581408108302101343849647626833437256096048263723332856875000088295556638386814883755507403306492196773963908800842277942685964785089943351856897232416943221191391300303164337917765830425819503833120407791329176662649106836966821494968089914000482845027040500961502741859638050756749914083188282959799757865773176683633610070085587004529264365228630048080935760801416596731852664342799160409772401568572395947959375514865717030187042385906730439380417942978778172673321520989906939284978282231100314013777105796591143830495482949401413943973865801089799164391786376839320901581750340333103118231664780243261271466329627448489376144966892323841144181221306469240962567913756058557997492266469220437440638422379057553446128654479924583653645548974575292999631999145210627479050334836436675385983039365789334004748551409037846308971725345394184130077577966578168253908272650681814568142806458312052856949460931148376047706370539636719462428794968939269722233831475880488415945682137678146671599991609693717397438054996619933256730939396633400500702337610508288212631951047089711755889975775391654747802844050977472144315629779999320290286524965139045655765621014008300455603530878779751987041917404977874879414617802422574141546031039005605461557419353590675740744716947294850903455667260897631359567514544363971677988583953494258805333349993061176509129315504937082666946419536074360788745813945011328336665867760979801379619847491697825443711359362078127654144735701609702753102974346341499982506015880211855213126662069224954290342704319613992193933588885918113986451909914248005315191986368989075691051711376467934831674378813140599481790783336166607217469818003117924631255347780447548321315202312456532287563847293504915137224977914657636420906681697842920880375900286501875454019645989856769962095608754088022421441089030829172675989146715330612951234035647014797082276864469970612345533033909127368770904262318933321308947895666681459612345133568965473966766528149429103404402459366107746137352110918630461321245170114231797816472697627379314783343577458843965842563392171644017767064498777450743781292524962035839692955448117472816121245722981802528556404256991280324798195608746043988181167601833250681056962037552983456949043088976247092686416320460908619659179509039237272542435221428561357932434608051785261547235201786871004066486344670587189917010959366283264542306272452399175326820796945107999841034213720481436924139453517707669012101302379804599388773557371322041914090909657085726946429027817385016183508707566660039799291954203642828495075066237316031317449015023581781038846876381467438467503887942721741152139875499146170603211592741736785296003197485347309566934406744992451066067134930939082901450353045277793204542535691156669244240394678798021616082029446537556568962016944764705603483719843571173270484289629814627849117656277367167637765560828018244476327613311983926880660425281794078191017078413588246747004535417177897231014858814941244085999708023516323974582786740842999328066826840690867393163127442929151541430210825254043212152117321984648610531971955392822542812733353013407109391431287757442730728540042558562636248001634488935756415870378850135178774776048530870722438107617726533029608935173186820714061287873318366937391645958179063268312220332352315557511142543711920474373881366514656895089960717468423205439555184669471114897252542931439950904045865477729760131096474869363675486264028621063204124460886366426675371964472276399367735776318544995951941030186321121748125606637181809972263625584281222910005580032289282092084835368387787103896907404242434401769718711306602441614486625267145970109453031098253983085536316153196087398262571362946680534899120416853198348341922436838267630243270848608315264925495103335329625959432205261737840018262785175868308873811383780284895879451684086694011692129639514976493553785067137229410371465309090950102823008226558727335361803558076106890102720666453154802275941856858362366991635750469108054640869756352884208066446479084340290873323599616461341998166492412078080513377287312603725563596838686126126227752342075534096491925857323030358569547008237349695687771608312271428164396887822692230913128173445218677511945985967847178902753958114449494868030139635371766319976807345946291780560389204113525474676769731837816291006618125711407878836884202463305360086529608808453790079896349374738944647756366558771759436844860089330447219367147435282886415467712482690431752813569206687679662391175030892848485260542555339248165693296427356915754816752213059998339940331003204609779698120942990974941879674374942237317566390496449841622843344351278905721411312834281932604916045590344598612991826963933042725162169193222224546340148345936319147772466195590556409822962303542580096509435289496176144882673492883172494870012517120586622786145216772137901589674628982675172229759795596845724424541321778830607164671100303506888247410696179172194782255677411004377207988426711338974549341381726128140029537480878427023300977784485649463352863240070635071951040803634502539527717975878357731304086161143450382655965126388932235981246753691086959106404812269054272391705666454948128798392824822434580695717683962169839434392725066899603673191901610919367193807249188937201934452882872443427865202303340163970690283452440758784942344601490990328702531741754540182938246317018733179224547594351460707822584864826004962849044374406290364964649068559638446085021065368656789054096438733574092939560061905149901624382511715144885656927161434626094867520652166184025843461780997175117146592893524230086917857210408210732312769591887114355587047731610069110816566465297055706217675858054490575805036385358959660748168981518975431333131246230392709960471074546118828711585852920637693344337606953096686097570108363927942047162787639284306357525014720109974591813880894603189510919214229176771225528923055906283219714155671827820189287310252758980408063807313809691456441374207049214390867445825419514144932080014294848653019025931795227770006867269111130078336418483592298832319641458304486203335478841060521565670612675089717017977864849982254337423619667338611895080340593665534737496477402342234033995142216521318259741513767934316218430889829323456727291561514326611268212536235244614937931935497552999908437924154905841244002366380665889494376868122502504739115325962948163539910058414928168645503917616071873276335555107855218785793901682598401256756589642686552689439371105430350690551613529688784669048371911148995484275594651129429018469187844870244454208454264436797235623254811633783266315570212313757595142245267973978067749732455217227593029130043105115071689329936517387853641299101245600510560571402042400278224421165707599082638695996743235442950636319433106509760551949046480655248298808596639969600152815817655695167729101167216323774416577626979825677487373676823626576074389411000540573065476778727160498415917966696022772878633612984797402136550359080012222175955850734205982598885985655997796765048309989532441508691286097077969094744682511727229507400022043080551088282276104430823817005406117853276967518412054653072671892516055901116085359159627890261310134967546675349287805112655512451939875551065406366066086023727055319092196784242855498347989376455126246112508721584647307012472104480721084662006590979196130649281782810081760481956502797786894514282013349480924861127067470556136781739959295146697970080177920621690584388028532658899791335180610609918191333503528050699217425066653461745866677607561546679360424828699870114004636123539086802509595577745652264502280950233267465242105561589866928356479459275524423708024313275566703173435609440551141782056472442253830391294754175211678633375588430336714583746471811781457142534067574696072453221271579621135694571861523852540708142415224837407534739744050073148073594707169558983710206875546175803053078880183458891821069646259109087745555580789514359553402461676143828111103882940340493353909376831845405766905185871831526301022983861522667294940104663603918071474289996092353767654186717595810154817105427547948165269855133044681307604614377547056881622706658539788331450226765400970707517360243580917304655509131595443265159433046610647409774846454670165982397181158632294800168275007484185202129734384628540900864072384008900548516039612617317533077433727992897218302351365659179935474460477782182409884173579271552491463772018441915811901916292468233726052261936894215736056047738419343123242233901490049202613972925397228269771214085086200386564694698228553632836575076331338495502056885081608190591031098409206223963758088753493297449944059285038011935534791965000198685464127000416079632959418391641198076204613011296945860434338867197753503321311793370930065416326003187801282575719497983357292217877770066478934511052842029948339235630815891874824874798873371692119995388351332124320480945555042325832578418606068002655477873847606815882374150030468747276299876709708113654014059239015402610510903857201672940414368280618703484318131128384686900232988618449550923948723280736417941874372727921120038229796424849233486807428720480456889342695259474854488072142414353491409016070936078430224671204838695614706826909678900585861201472799899159272550802199713035803334461030448230836381693222540431225845758527475242338671401795611102299863508428390526872030132734803936745712950123923286243811143491966800426849614346958432842888115619172462092269081439238280658843227057663863844400911058275521734068774355593841518015880105913805056195813700653652210466113470387947309552549914100486449180033923265165944926758647165057957590660508947898610877746003279221949424720440758842752858623535602741594134656256688204701526267143006266712634991090024069100412117288843913533155504758496804677436060969835585383793838143024517721268053902832418089934244913048467607129784141146578986395025938474279016003988369063766425180398055931185753170979844009469514586355060594680464558644319233066806340809457922516762596921009343144523530028213484765405701020176474475068003583351332466306895215385851067364894288698426677120254848946466690059136968421390374998828096711345875777750334009266843249068900901158971178809892320127362722642976501159385905731361792336627244429948696424044699080428890801890132562875954862635609230804987014297720617717297879671719977448048280735953090843614129186034800443953111850544222424271548071010254967455042993185661657612199195768915193505889881448076141878115686017429953035872889548445939396791165466999625951126429259681499917862100019435630664967363707233332806979989717341895753196801467253996378435580411211967925497759069135610019534286127442587242462424890993268371675483107155286357442483055814739202447395731772399282345406731186978145339814173634507442630464094793234384508079579684795773313622898862586901419917040410472124607620640987068656546259714470082613867238450921833700735377126398632573520155681960580401025197652277502582618036228337856656329142499509849275376004346870487013360295471486337934491649659366947833123105821867526255405191951881709487797277171449567215754613622244578448299494315954079029622925283697299232808640832852580903155583233044346684924128303911708275906726511637994339330469775090983091339002106801446216660640741882652988379129414956481899126186719618836851178868517516543974010759712483122064644415458322314192877593461259576597820935574395379285073982356036392054366460207922613289743442482240936327458745630580660940389075748347804673209381528484345556791742533674409398151759897666796942264280984543389903311928797882861497190387985306710262066628971535265828461636007518480854414406501745887976922152524087999590880618262468142397726671876993391655372586379187517495093252791478983106852777501674860655544234647132102088913993974455814516442782482423804798019694743878695149803356681588555760814989890072671610886030793468385718075419046538699341165199516396717237751890926674220226396832867941794823449630797932897319678105340500241538868468191451501638827634669523712685147048267560955569285032989513444467830342314201593674940777273012835838644131642820456584644298215023473097902475777835062555437152086754767067694678651984590775135213051244070089569548059878955119991789494135330038177027249352350459164872615294290222677903755881875083591036442799680455485493733219574395927185445790562567786221165867136919994618862092556959475195274088332237513156558349178162734663922136205738019735685960791090676090664022914119069561145237122944816970240793330434889948833324195829975755820024459723056846964094914963026798783511332995379723899315072840558236509714472882536880870437488279012547567257851723299617445323311765072260416031120032462853150075960497442409393239520279936912071871847715118612225189414564917394486498273547907205313988076895284360571036164158263385102674034371873856041772327297515533891758223744847343215147144022601657975969352915900031299966109955383984926115955676193891286958555516322127314040559867860510214733475877052113693889567191394255868864813299197528412478884507313622677938513345725993396403104438424643511868510240177085417645284814030724743903122140325771524942901515174897813257052657336403501205140355514978301256877177478796090758640889727025168695779334861464670687967881721927122912175395700857200518142300012748947892489734222896591922120165853190858107547877527266285911103670873796421967384408728842006529769761708740871046332500271677012873401748365414869201467310741340126018463521676527704564297014527533837143481292072388766997301194585488402896534474400125142923164592651948059599715893288439567498277615346717072597440105055461876394062313839744859841105402029826911120654917478116077773509712624975861960918475246582520548932830116901959650386740465551647091023525386338470598596281146580905107848817592580656879560477528705717583727170289619373918915831194848994657064865369890664004725292233035522418736728480126535656228954189780106299856610533217859373064456678976799089473325148355852465658202652032502983293496511541141161826575124784909317949068455524587914556975188463267623640101647624689759954570509451395543666880492963146387036689154810425375829789733020202250439918414534597097169474591430920511623773338083915411035352548273102459168700813423838031857086276025044289202671503861438857636770755785937534321555285765281708380144902436143971576073844077469897925596324884055665489414575163490960434730543336777399149928866132138714109268420101769008625202823161610159383342843617820068357789638606996754449732720931813531172108521376670749281963211538009060159359909838488047842306131347353534556861136537565500628789615593891064977615240545503606200117368290349902689760712433178368494142834733984615435394150073740028416814346639605196816838665113544938969971968683008505511144956781216460508297036096161118941836207396149656140000221560779267149957296591679933911965634319139630761431705065754326485571238405863719825940595789897056861813821514953459593704642302080327244871882533221908781635421788363211943142421978546059541188909203169081287222762224441884363273602869239735696789907647887223531481380659304306474351748523186983423900948768540772035870128903182186096741334729852266457631032509992490553855982055939964187417546986091372829253125228619505902314780819753331355119658882250206646489264939828404562977842333812259101293613182491988159590652929455412678419541695810691058034974194576890170511552464225126058288895944869551633826996852376500586566568633856172925301449774759699254195886992759580899910727541828954721427919616758955937918815386429890315985558937300371822671876031273176117731570993232876991105582311497734396213460333262622497471316098174510550036591312147618468235546082166648806083574899280738725140713660267955053877226425193089877542928280639126789336926356856172084264888496062468629393750444226626326585698649559144669917423505680859793047041358984498473558844363495840414052728024106927863737855073966501251253398992054381760747868623234529349105635708350662630220423718833812128256929029362374830066050271216888282139255300163781824368365851880469129095756296176817642324863780491461794541684528332034549517871226524126587671401753360000945663882062855518703314252928693291795915020444348481968642552579451794935449671841296960997832323759774963612278679990212607664775110421176333989387135631723359641163211254819945460806292432495419199452641780441798838189349738722163451219335319377963385834684950400830897253511143380597613608110012601770635340712735127426682225167223824776690316145742679813856024086560527076735279077177273923374357452656011223059744767681390076926633363624633897400341537809996404801067796243034971102947399281649791675325420636715611043083523126103926616221399762671908792571029885038629036561400572593622806619561088528061843711340279223279232777608354214045099356193481319270970701311553593454587651959452997517705210382681963110678358336171396766032221292577735726907143006791541817731134736887353202722892742704929638702765703249353315443185299161613204366954644214552266621947661483984206103632546651291887558993749773491699961182358656725550216803868306459740252976674808929751713535794647420579213892420455608955023640435344567190061981047653793722237093216225126304800005849226357839254190274783879791349635549777939941760659041634955872690636552834112750875346792230056674468954921109601869830200451833538884878526354497622899586117884092520849854701306222314069572800369286302423006399213836077283933665593131259866019880279412663664330513781742577920039981005185543223776839986082367229118345448726782736326989798383445710094685528266301455965313212578271898937654294405354814430481099988085225031120214227111059273238810191698443793626375668793980215936086522705256727878902337538675118189201210583369686946399771314017803116283255967423160773739302894816108900373780029513652224637699635926393589137658513310175464675156777455520784475423379721552137484707777692908727489619924814195164257274090586931766867696139998513250591725650851407571144847216841324964303433074996130306862199376995839457115910091458627764957931425697475825489447479707827113720838650779139092062470393233113369409179622678797155971990729006292081086764494801806418321293329210539515682719336615334727296453232126615264988816224240694978576698537418636736525803393070955899780306517730256474735228606806122257317093633734010507408192769057378089345046114444506567154383838932298893485978519788408648958579163480283602864976308642175442030002383047866456630800861274529889114613606276754648087120234766371260596258719708675474577224414659688175950489047875349070852323690161175828096331369482491503069091006638937061293560609644363386750596575582696275233453971903339721358574409132908711920705012171278561470440074067958650528859728145833542197382409986652594932403862972073787633751297255311252480396988794197731836936670400858570612576733337328236348939763533164302792167889611632444243473453933134540883777038360606359827566115752060759236842463953946721848224280048752358623027008875072709860007273607917585595761736637706575555362793714747804092511229976631179090972814441127469361427273870201386324601426660114177858258908221950547117281099652627345894213041614405554568048513289618624987809605862912537259239780131595213432652436732386547844143053697819842272907040913781568534982783291602538682360234334022638466154767705349503204514677060384636821494156583338413011257321345922992185095797895110334747636846346326476914218362451038020631196955106467262185469537514478347383580652851579794342421948441172567201605435665703387645067817290246731844057232632353878938997976942134814353338002928588389964258818866662580197627981120981721897239242905976638840408666424630259140705433177794485031041953721289646485638357352867713651262693555918278111797930616128133236254727090227678709977982927279765612141933942905183544706863095275333622464405960712380204799355003279789716257784505209269337888412692008614031856652642682513451256682917613666532695551528488113642724256019608408223812526910319499407916750274617241185443524511610605528792990392299845078023262961358939646827145240972642636734630615537469459541230480995263247762402358930693549193442846796039849596505207915217765405060157860092826664225160363609567795639475590903956334764142873111830076886467912334739767075755837093093567675081873123158590225582106908759238957699538726998985736271368926390236122783349547277759928603982831121340391762033522711732267064479190393766086449346745102203474715627651528130819693917328706107027297169037311989531210738693681775367597970844990185896949732001531990334192944571906283133340622475198523867529423667133007077318746387535126609341188421097895348149873669195454574856997687130035278593946309017896276898618232531669846052285018326305393062058925347087686178708928343448834303567791069327574843569206073804057496006310004437295219286928423783925539110383496202873251688397534179154360073156416487607947794908311175979447795683334631205552962953192797141943822559736405289512601186085019291875032195745687071726422164604732021429308574397581594567658466923660079601932451274899625388577277762723320373710605400684050174446881513876020463839080068413772804504996661758315063048441644801978208512828524253457699090202327409400584119125884301629698707446164204632406509324615046234880945321650594944323914980228100213764393351766921507837231827578904814010753383801765002058856041417234433025524782127388011273532780812396376903450081984880256881080660843312119599725764322343606691998736570201825115911490524430166317572398817376432315009439691757900479356826951466518836921632115750071604841340665160998873839107681460118216150667054367761859051239109638321366091578207535302511065698535560972102506070982605386149428323471340075246308406355099619053136309493794805492922159615106148343042266142499482804179811909012589511301562879539715751324740628331327604671814840561667665436102620877690921305716170641298995257961679615964801622995634517655521469653035670881746195129501833707601441282168866898054371739620299913269336953407421335812581109195274610972605404591928401234311360851548822531854500007270314654913586546187532790281401259393104427272966979366215293399334535915617596827958497210426316864991939106567804528117360248904153824905658631644957330547028912238237697446581687417822907113454468088325696079034080325908714212394401124667190295644288490029677284314606375321117770591543193528993136726244918795270064023142312121891206506056455592585406554692627996780990301682465707248471036508066431831567755485966420478118740877857030575502313287971361664763201721112018434722378138336803640865619574815152805691294607035251260517440550036977743180171476164305022014861132127628559112574950585400211071819329649903021123038676637501341669425849976602994728886208232645717187541840298275995861860431255578982062109158877686502178719525933188178367433652624190245109517649371273075432434139023409928325507799744934752846651603362599850411988489402981295019231080491533659138593046985838363337117062234926090065746049488291098258061490522458621167410776380036864437028885719962524628251482599429792952214705854538015582319683727413359214645589922917351490128923397895088218808426253811546467107877057592486799919168126639538306193422336650987077321885273553156430957345505791307671730430240026778679471809817340430023221175086569031420040888321633442655498700524194644791824241037428333066760320175873188624219963264390045451642629390851265549399989608701503535283931274764652772305091615265425588337052445012368948173383359687169199331245634088787875926595820043650353037359189787381122176281676639924422522890058320671113029981491464538630573781012204516736661719977253257951585654462877158824128041861634644995631821502777953408416489799768377818038070281273936868152816135769061633560489291692009812342631548562994072021117938542994579938976289011548854796174607221063038582541747919628924877904127939781916591559872960947709828870953012599517974796307708314853441788885215235411184829432670248458859378133881071083646660635902456903319300877990523971792598734529927454375651064921235557622844958599837951940493257904740616914610227338014443464818034925015377765063291497619745271287901126709390060030066283327087536662679833729301270785270661282590282820228341754648324318281816550664354925405746971630982714755181302709278650484410583821729154085483741922483237381938335236862390244976264698203700994261060620264390021284906938628511202629010099574030327986907191063324742920959072145181602920916816932020327135743698300730883862497259043530028785291227351620188563751395935262497585550801561927368611167654795254667628360534199084489720525406112405874733290534128720140473404791564689153810500049532191788068635682251139109446119672704875679075870600512942470060452555499335758442405527031584567216517862821653613759258601574370691658469396021660817887887424417543619134403104899842955319890902952024110333654778080335482718742999377407041475409238311229443889975461388812961077605166960241755821109966986463778248082262563794838716370728415350528101990511727204366007808092387840458893782636286932560734933547457416635724723624949206323470510918932319258214362947093027115182434869739895117675119165670427744119823305728924286487293228759325656839265292920075516570958953245467423918727018013046557623457756006306079429079057860187783204389019386995870501704182958326899732938569228558893562170230504235987725709452340190160923334269940653051313222408507655572879141397651920896365558405706046395991102657997763534034618617159988877546742658804252129734006969349025234503356921729341198084870505105581066906076451222108288720683535513045548154162040194016471513686607690117689697030428622644542110731553833202581275262484543708922082622973992507542746507994602753110764222696167857777522214461277456674375305385457591632237581573207838578128730825916849516379303313124578468786363635012798084410142941367382238724278744786703290873857891463097544543566277016669690628961920105445138239427201812503051158412786635979442212014255234088113575886530945877664634246325640770534510388909800083365932425605259892267601086008576063477351349982152411589418365854476184013671521597085479547183885306877315318186019405669736273619383258865141927291432442774748620658142618322235069903631657950516718323226735758444580649327122898163949380948994414809065348917238191051121245334247818328851352601786775306267855716300416629723781566919386493455558154882241066920722349715585570970977099527435565894477344503224000304237204757543611489938111115827362980198372879316746144680217797880860689527181265823623745861168145062945927217885523922700816148461277821998940898930523990738659514909132049462007599517154930743146067875997070490170340942397378284786531973726965604369214731172696405603543941011157555933247054842437595474771775846325052685103249162960620439976931201792314378772466710902291031755509612518365200582905345577449504263675118790813369256949681589216351533142506443415408770275211853564949461727264915233418652597775554369634317216323776090255993426956648154405101338741289161917439930115878601857029013987514258753913352120239261292991965716489574751785462670665039076276068473102328942506174550523029758937233501625808930628094732591254549497908963366552160424113263865394922891308866042886890452204349072324910728936059234228394925483723905153072615951702103730280214466286890174233606220569388771066042991368383878226904904962123714637382605180319585137600913692056821190904687786775873372828868336470009252583526893598301261294178502977567884543384922635594756466694589100656903957720093302121152127909452118417366425362194538488742637148512665659811250039623524874838918244206150541578259929821641839252193424427715230225482191187756381283271545695449108021605165444683378952846636741085336337532861908099293840551736817305274599385851081150244165732157777972554982832583015460798728648091671404915772625661909959474082066809236913934441960497383019634867010720250720168768511988022297959566438594901736582370242121498593379149940517971690671504788993373768733100331812131857303456127611839527568603076255144756910016334604544695926277131126030634207329766657283789495535728882239576128523149847924522081077265846989846127172292827897052820298998912229294162215958619919035178194448200739390260651392231202126009743183639100603701631865819040431866958541501801736432131015632054468185262616145613791182143483767926516913282447087168785761306416908069499145965365051913160024426930120236827610657631039526864072435652113797570562305167475609372758132863617361237406157926248037792635142921211313879943158208086248337205991848419450857570135665637748009594335057114832247992756410531252804497104706477118856626915843070076692088844447619663822250031691895406822224659482829841322383427561154652496280770901760559422108201847322139344671424311384694922586847376733539724921278137416996381804120157484917410325154722241669601288941281825686517915847899286336242785023140616885591857122459285156258223016177991547758604035313094322223287561961508352642781833585687982593579340759933823854483638533076773694112337197200204998186804204493917590191578449089922869594623450243191701608543905085772640361610114318285898456844359141726959923365349120045236028769587334850076148858974356439158398453532766798362874748752582722575743853997171774751966693450566280453967550097834991436812869674850289021399173075456068612179684055881496861974651835121316613301472646531252297580908583676171321853737476937360994407033358190306032106828618042502335025480045384655792189605301753826883575532086461416221307373656761787291839673838365592764144202047104601157572498985681126236183257144014088457985199603331871118912838423113205329603277824668334178861907638992645669711706547176274006446997421877006078943400960100142675620623992070411447783496206817006536311935594521993457533127437278215523679227641810413604990001246312294378664592157657194335055258481301338652093799612754029269028784625174490267437212513464593605541101022208153762237756780863493719069172479050821095987638314623228754633789650434205878864040575664321863335553531282051317340257627491690477280124029832742904503902908976810056603951136900673676767800453178060460613861384379438959866913563875459368910610420078838879427697440668144235316108660096876693077064227921681471441449119932702894195450920296971340745436776186866575158251219910077227594369473912057499337978865171835425005489058392441014710223561895078059731071577987090100306389952136308206726670326462934097553558003605368488517444352253665645367237900214704640326932503965776676232705727739880468835040036022760623009703530540464285241826514412182642378809969692155349766931889838868741549626492484554294674355483824981692048005938113186363494294194580572525167951727566231882911782266088673261964565968024963596642342029203829132309566254362377656775505781446047158934248946141064902683834131972114305119658416915875655904217017717842066824811635136394709940962404777792338284157027285202708240359233716368372846613757215240221294242521336243539224820242352334338648908066404727738078899743842688857690131140664001427913927251644102985146754682681086695359177010858858659464427970191850114686467109876385692863085384809082276729818672668194560761899388411931634080182940433407032661120472397666623453088534524942717578855720540121971085921345233384235814438118587919412236678459159629125436075152392339865329473680749300644214655182433375185382187418074066750660856595299907375483440098718008405883891200291832518983882339946822076152236358018043766527042013660063449017598623491989369585644183155334861078673249637786095934672709156900713482577991768850634282320228951392981087888728020865992194080599640330710551061506666646914059738526428344472773934031523383870313358918317347568820810624227469787809784797919088766528418619628546313141928422971217795501700882842704245014981198081324705984499595774568815329115986559050147458816793212199814752491513008547396812499448204928753753618372638579365353347382599604575735330394185382625960950136751841613638766865786643855199657778264012029074478449188408545618521121730628199764923762286533828781380978541599217936853165248506188266746576997717510112388389052370854333799109830152202027487232194029436106393017623242215093400901034211025744023148815817775545988241991386010926538966776888491983543644173598131389623584014113829102879018312846489212525633790140503605231584140558639144630949587878820962836263747978564315168764102379118543054149255446537353296210981195692767359953203383747951587120703659115228247711630870421894013902601863553712941887962262677113130665705490813134697385053796976070966536955243545087642376102126588847598503069958847544139184623887955548784231426608160722713965372592480350131266506062807300531108870088323952137141249371720491420951640322474129724641886634764222040770537720314838281813980007640143279804422557776439110015047210580413805160483090537080148859120000623057318862194928677450951307997856563029428233963418120710146346343155949754421554803040684667587827609778177224457880800173653159758899904184190312427696532018884542457377398215138174641305218310201796885118210504732816151156439854872931018620360375831281285723035180184392846651639598058020487444958019115692827645398672325579344749251253620881123470484791775662802664352892568465453650395711108565827946625965016095218101052134675538271213046149379448068863267871602061639544091178971050359070916181938541791668305839200665575163489440719229932689213872857327119753856187707461299299304143982507271295291394251937986397980157768175825615939873674026011848444471550016904459108129951982190404216782721001766029371739572595112011758697305998476702178551508841276442912313886938684839876828382917420083298399170579898968672398655725152381637821580713784869600628550477205768336562847300396283918272972253828762289526782361791235066480337177770394859108317727662649435322220671871749591050139760784681789281782724579612258396721572434409006483837869090557294670197278741873994337584185854180614083958807077594707081510914521266359483255064673240812032428502478805395406526599749085471663395672178200105342606485240393794662045676098948909821290565054814945962120189102980519977055827431491539504515494951738417917011491549022092746434711212970825469369559659109089706606854898556232396463565864596635177290040733884005667323349513451031871518641788715096370901276122796592625483664669643725313617414824763404630105422518967331775254088683338204212357384823929227346093595024465667393137765762751859047850195016499204931379170892197454359003118875709034655631959654930590924868879205688580602257652259183326256961339434691893122028938960126779371050751644512721950837507657273364173639941965707627452802200084904850865032723502264949080891911652164398908674370108241926212157493869444898118663436144181293817135612306968419620907564610969240519970987866707031997825691798991886049560045322619332743368948865629619222209760088612653901256625694526179538964106485976566032328486317847072853633723083802245867610133139340281973148386385755472787889041153585575712281253893538048780482496484266658287336928378304770140798551787372642830482501560476580195459531101055566370185912961812942665730354631985071341562138816241697497394025471039741878450342516376574450391789240698630083256217204081800748682018527479848676891912099246402491351768725186812017250078704999578084108171814116599876720398799366338436668104797273149494823543619234099023803492126054967294202631679505101808044254175313110896965201766069225938384346535510910036300587081818718376214372640905620007468128248641380209583380565040127354751583997508717274320101458241055813880790781487195480469070121085088302535764667524141515855926520644278805709061063852085785208557044304705457100617498388595171332418053477091805403026990744541909040744814194433672221311382575233907077882322669868133727235981392953843968388567390315434728955143540333595964234114549846543187905349490088995270819652959140180318056356233335092792411241207649412068383440332267181403067017536418971638413300444156734676109861744898253289334052866916541705957104560773514133550600399683769605386388094149433191828805982786298220726034782366952373353735501893555027359253917583652678166821303636014587350989252855737926659512898379205154962781566877893563616076896721065481326462280727004906239698267408967890516460981776673814864846999727441701956944995113887309437616263895315548656959937660615455480403228292459149537592649689523362255144638792938071620314155676992170323974881233376700036022938761639043050095174944342953753168188051047862113861875268522047920862968515443924336211030941966242939464623112934389737679480033036543368220189914100976553566528143272303175296819437580495888633829281957744345882691415317967637207891531861591151958190602305918820259568417933281846542523475984126397900347128709459752565357452020914256394971546830291070817801640417402816975711497890429183853390709665460104119355093155283151108098409204029587573457121151715748137526832871088006106120412372695593768133369759279224013108580422540006233050479151829453067700462739435349306767471987334756925866887555874233632850421158450684602709671783989361250915261239457727757732821668557956055663865020471550850968749218350092338840213775547564531448052124799964213050417297718979360402759254901659835258964947201389792200969638016215890972494455998039624748837330286370076714640923833646057600035659585484983040349626096625857926059949910522952662511412322324525756149288289510901075569329709128937840050090864685905951992694391814186756363022307388420768878576285640779505253907096953822164129387462698734740995702438828510368331066583829812919480511826608584017767415631788841282407309558687386530088878333026436713722476842377662289567572199875459614401814292182857602726832457132534983420245288875798014146720249315552673499215970403174689306047240595117934270295818915659551749528517352084511701733445836988912046326611859989411470384384074484047155926711308130157430858442492677494595243951078030435780624146990777057368800181098035845670380552703536701663190186454849271727299138911650876952609119379811967888155465199847529358743328973443502653382273259868133563199513981196305803059638633558296949262041831715022619351031391121856574304849526123294744078529571508892764809163153697391684626762937445736968867818103912723037216610688767045808512992675379458308955732955270156141287374824242566465620788899477859242586221244896202092797633164035229539204872077396468879314502803061783953428610475969209410110627603129843047471686865762150498381962664866812472665880020679018619812597449996635270552157125037272774747815365645555739692699338333859660772527023345911738391522040533552272143046207393286443281043093449387659391371015321210042252605916345371902152576909008276028946513628867698434712862516878085623663011168322394276135676291911459710952206997056302895157973804432281426669922274385271188288804863370332725154616163567806030296635548247823324869743319783436673238224563779293846175330380698111508522360843658692457589251910773867282548534078882561873700583813767137093367893880861741368792264717811717623271688598075014953919482292857774804304152233311580294041861753462137336376293320296080860576617302872499770302003410096782395882532754796851347243765922142227347266917319990198738292244463161241204450378553308087114249913414355462037676807581613181352458067385522082180483362411268566622961275954498092237308728874312291566729901785792440605346959798793097130037690032257670057489255393231865070186685477030001636293179573659295955074758658493844615595967257831382330685562514817731123712957559944708338978742517632192412779983929358892506019606215851435311886305279351419405499810607437429731832155950048413562905314316742080465918917933501211759710577442688298988502495219943947665263698174805415232800748484573884540395148752483262965408892451398596145142754982117632100927737100653213483983720976863549152498790350377421596632495942272929429126013375201653187509374509654913904303440234066844157952315919341867963241826980210147499425653940623708814977511950946747577272912800809544015830761550370529352990664003800198850569189246232703187459565377431752239764599624112251375627452759430857801259727690622668511823096298559627045117876851175275921454588475386894271792264890173827215761590428031667867935045276877145751283805320462046246641810091684698620195555980007174382555720281027946805729460538058882548484832222520257997625238077714656271503753328332339419926655503984107042344146920633636825364562956285876124018131625669197706907168673223187931512198372071298285625429450564739276098803841169550065596995993554357797053939029838474372561142252918053325647053382808865919882427310157474471271449123468204199073666298935276327538761477349922921158637197537060808016169470319611727624509696169856196669783162132340704859731893811952035740973306629705491099730528715910975827026388857140126791074745259170676681759739825326729161494898711605633449305560731168111758561472568928597764884468678750745843086436865196050012304336992512522078069051605814238426976045656643230180542576424183151080741214045575957019589707055927154162088719365245190094143758022994197550721910524990095856847848745020444873163413339968238787340441522370342201479192456981675830719658482155635999718227875250505139432705279155757207299510270250297891096729284535119578102377171443328067169515972149770601206486204711806740824146368659041853634802195789490704151166858762415789109883824951808041113328592846737242751319398053392480229662525495582657368839272472017600801250045351935670394813174281875296547085104619884740399957886896097917121708726247604271592815988599492196072970054231419698291586681531781561188540342345794407606852711074258531391644313695164777333077747401109371963729570608278090132811587389668227333331538691309428452170206134671389693910559199953942244127878660587929546526375819509276792917765988278357308992307655403400544788791879447390195301455840835402827753517252249472089611121931485427129457542692493889188457544920282376120900643128287104709349276745078922287052647744814457432928517056113117226108660912036496188159520112966722564868637926574844788183568325264904976990386973493530443707966067816039916676850711278176127473042554029170157971450905927075765861021659868218631985881252119077716216692214009342848970761137835593952418982121665631041930654560725387381262577987664695155703738437558815889505124905994814502447092730804883975506075599024557455625766276590077754041684454312866609824536551437824206337707418599780363620597261963535289014665275700369336356586627260409186356772179567558768885066362868752625066533835857875876725722646766291161963078004247400128151761753164220807164528478488903788005758080643384970954290375664545955298470587668376170001865130981133319436748916789888908760651618958357693374432762374879247054406408464942438440267830524742751560656457599066946039092311974524445362623665785477433976993692270106060607514365015613338126788572029210808436351685517835467172385241847475022038023962613350765332801604085821530015807021162677164941724685782392655869437402817907634344674443405687715169235629616473230232637763888989540204677774082236945943821381904010634404338797523392104580404101765805309682095483176839967625731501914060831017816419515499282041836156490418364124708237618236318605548161292033079734969016586045460944462590894393861685316566337456999181258947337270399766550447306636563973483661756253490913238483733266960406783736053117648622643000094359678203389066771362358824102954265564943715189335323166560860948460583519680265088222943427496261619103608819824843516491127300299518807911460825029145801076039879592823205165714228117955894599880916649634219327796992749722435082751705306859183158159025810792491223592033210400405362494623462625891529175106562513899587320778454413314999529070342881873457178977237222653309591340313983819756132584962310450148489747204121125436474484060227385543502557442009009382804349112516234652105249059898457895809899540755602503759651194073029122289230063792939143982440058142551669781568463656236278858925853673026619192601258349061719479264119540787383993075784002479045570283286979093155390423938850201541149536315675663665545318403514939362826223953097796680486718158721129565953462845849887311546079283656742680436103339671394670577583745107110091671186909782985745872506409956769717349362636692384210269015392515422033694659822166593525354376720444683429802557542842112617999523845561436552793986768200559792713438752395771056416402408466317927136096169910238996821012142340377444069836847505174745428856292391220308399055788182712048610906207437863465067783498353342200290132975989343088186171889393088677156457140396683992569848035650605179971805265667240360348784061205319116276077920553232268835550935384053412759684059319879545668248661383272771380530104134613485294659006740512006200187891992649972069113100258272991014361216718579127657373201011117808747644735100326501853593942951294985649885490369153488980149775772181735471061633936715511476265499026417495861734438188227013686224905638244376317118851342730304471452482724496571716735953087517313899464736406531346644599977562518651897392210240566286473908847348929306985850315328286150295055707250340762308715101775715515217673306378078162830794062138685891994071571765805564512289044608337888016822938243603353455570451932829492592737047774575726686086981796993840240484077244555332090415630440934437974290586569267387350245877480477592721407278204687486014460313341650056320705715395665840632686261917852776877123821170914667029080703977532325943003095077152255299535145877758398274579279124617181839276141241707651522018209435084529991583683341651868456261455205303015282190449884855351149756940538586876053613631433783396442564133449466136858843755691028729513993908591764834153490008919902008406320574102997739558623128561765298083187448316147237109455810587172833603005104205795825051491966963157393371804346590129320110877184693932688739691369481311053085021213979936787810704353161741397495815191034196394043710335892422542678002462161794015553857066857229454749090085944643481957147868343829989567668345938977898264796476460010992986840691155821070676264420258800509366770568273375285592865535482695090605828684199462526505710175466013218918387711069712442388536670751944397787536343946708804280278072739032152015806096215625038840227886761728434071379087741878456886720087078008558572391895342181565494949505379419506890523815351493062142196443876445310292117873896797847192812181524558788459480996031181657031339870629187850423085309287270377265798191493621713158083308140784414765251923940911381959452782581445592298083443247781707418396282796819560907542246523558463795313175326105206542443663910804226527892395411681982658984029279997102556834915402063278028871069477481091881361466042731674795380521260688397447627710747542114019026923752127664788896870486025914453353347472581558626333213431736861964063748446136633167970467787811080123921690854081953079712979597311494566032881245793655441953676521927637802658483832304125653138924775866006860913663113047457406992461876115309815286876743284127829044611240035933346369245151190040360728533236188933907929681348842142871475064827685202819967184173609499890049371380671042133604628620541460721523088387621712563263703008974025700776928143119529379005147821101106187844914041995180347928491101452485350935004974990207976501709585744958142137497239426789265822730483870329362474823718141229540552238777943381418272398479433654702669731775023131770073082027450801169713997837728116881347723618978097131114899510468377812589523181280998029271590150275298015673156946389471189952413958943741574143912687244495367541027029480084757998424580243254421337170651920512166776494589553908380219897137911539227063124594913915451291726142450839670598328944931951045805610521634525143470296350962796421415969545831497291562791089449963092380444858800386297481043894493720625085902666401224572660071525006161577456871292903901740276042633163006632899878109869455222801599797663931375880350465846703850459338278668374430520451612855562965152184985920532266133791267542612008878535912102572644516624581862514918254057335711360397640028053435014410349723432651385585083808272164229686684573713838444717045030731884857212567241856851012211720238641294515521160766959072227535394043130441440720840838790449282508231856637324618302764754833985228156666728953511001357142872308498522447401396940703843194205850234797260245651737848216539483885875233997387779245335711812007414770255823938980722982686670459646271640170878462481258976513411065458332448208896702780616189831395801937552395195162209139785309083817432520063159866492459600558088970351414892877226350930794974922560935119989490171635498397687950905456995918319191611918804439889566169536607511794379760743630879801886119578235044161342123614724346781829740569308504260743824581622783138262152904884854214003025869774650453808364314764373362143443382805632215348561376150370635540673863196410457961531335789367780390578985064658601400677472651146193117430534663066566592040811265607915125984759432503857636447323912834787292161368734716086098059901573414934075468192427220833897987951172994353512356794086797540923185095125302883030351964010193086979527891537777751827747182282595384475066777072136365315321039613943061186171017291981692384921753686281758602968608267852624158771781454510231436641326942153843921981224075016713937774765436336810028072123173146736161149673464037167926127140468987614090060160963889466627240103552515475418948717287025831232837195253158358365315213254157915374046248369511262426763904336368869747147224756073983417876845260156351597290419282164047110026082700166430173258804720587827596152941487622672813506983422413918733211465611902597859145688692885471522345595719779441592312975350061521891260132057505663186228746084295601210850994753519171404231021857447571863596456451865829308331941473834410776698397215885123872281668299352988780760112002210878206509067361732097422906689828189845588742165289733692546864822642133009851059290490815953340643238665130797867600364894252553261519333283039644967025015202181694464174660411557638389064574491907508979977229490714762286664607138137681946236200951595575290912597381400865162564089481515499013128152240965611195504534441611619153238664980231466048720702688441196221767151447152929976507620447004788548929018509469531688233408848600363933282165013173292362384777116373267024062880203076765113965195559917998603948340385579170977031355443578265797592443516021051257488766335922283816317456191749931522630135323929389854059836038653488868334804689111381948516322191339868766897733026981206281096275885373071603506509136286231009653330535404678944441719181160841282387578226756559106146073451364842145995150269042948737850397210812297006844872682559191683856969251033350681929236625158685978267345082746154120109463647151140658108732873089880564674564754184408895238518560629900035609052605606178242324682501818319243325716608946724494431152393577116336929661060726443735712967035259425806338918683037317285446941170091017687881261651814653297251413846172801336221697959504882420254788921449040792014172023711896663322896631947969205431299994590796466087553493548933270373401415672678568248767848298041945829606625448607393919586761537593661159991755887940293234257762143850915890589198364034569856763415959597159967090651906761188455192125722362090800373396353823504512811354167290436867358206395215111376613972594644483168706966562711129486586650072745861867038408370293791093439425501607568117298107307553000454589558279419320613940047120604997272044898942838669294786317165978522252978314281597456744817027424708533804048697553091666558922545014865108245379029962943394387633715835252293662253886084277319326474111026723974655393468883009329171991493866505932578711471885144769211117613256676314909430933384218823320127968707664069441341661286788948264337737766475826638695389426918115476339407711090022755701468470971173690353636099154770373414335672010632905368385764573155990525757477414620078976404462177911172460668176092646522897112090878154298050824573417006221390723101122284844437188798861579281269994561109744198916592231524303140621621309142681872427404910254153422659599947210343166097682563310507384383906913426438395374855399037503624344959329937417049717711359407673447735880560291032249593170721935082655285949318681485656736078453175111996169713760844364694232131627913041182422433996232925760356895217820801009116086040717843851991809341629628850613621907708223293313270212465649675759328208154686305686865545841157853282860298267442642871605670079479537908123636569788268679035806316673956505257838414351083614625603166120923898366338492826677468379105963479263654420607509218169928790619202457725691587359231945589363454729979953774303026479226360293136959091768353340190673037723907392050932694910972364501221211034881453659590115156474524759175563924014468885109958652542310532758567241611443446445782701534804242407668042751703142681251388641359934985495423368917142393736167120269941131282962791146611982930212641850479082580703073190782827415908484898726116279206069457996395126814167963067364355633813392377469872123538191395206406476593362462353426806868081959181952930141043108328086321404725801382586519624132574999939676426575358314439369507784146532542909874028158407173271061985749237180993531915657293698477121273379371289778113399391407725688478963028002218407663123517717328677390734558562390076578131868662908316824094757350151504875091929199821951275177530567643754653641033717912933402128526883357681060646872736293102744150028428612273809999304284681767482633062827985236278022962133936370998046444372108652929697013113531514165540992314930079868019745176422538445135675561040980629999566166036336182897284121084227127681500206952493869794530157791166027480848763278751734121109844324456862644332930385368103346721706277535007993178351710140772762721537461196175132161444492141733108616211396554711285840580762389668432129362004308480965387550868529503414132230553347441293857292086147886513388999250434605096347092200968735542151348583219602023274587594943306743130045160389545057564464627495211000315519577187383336699431558497262612344710137611235872097872880200377994862182531453212156607436371774999278299473371210551563639491813787876741580327108264764934995721781017698258476222032223136393763209478146713323407970039165012837193775445473238672199368058953829433426929195406706803037036617263834446395273486939099476724939355347347133357846240842271418173897966034202712577073728387959182378292228488286122753975772074114859951156796655038446619495732537939306723257225485820808576636411667061682851371588120546074321939056658961844687395075135421713711070621565065053286541406798841152942460209138098484360064448732319144035416838779801862239426275756028356103503819757083255333845130913401084050669245723934427102988929066242902618700091651879708110311325221878160094338342402487518186398004273672988634387229709276881304040340960571954015479348267333176417809245867896766792093725099854361811326604256947766284102809088210470364853112621814611084760504683985150154653849431501323044497641977279143047454057180742791751251390993781012353519865993571941874624375153395728964770277178300150947938363811974634292715830614039616253923415404866404561183247160438668244509058145974978638218004038808826420959598759597670377014793060860847715057604969763167643340298945529724188638356866194560762622439379502943130677523511542175848402958191979969259189705316222938586920862755604973886665661063300461954546803759702662432753485562027227205434911875125084605664714119557712011018896102462490882456432405261136366904255822024702293344265882285204234790487415568384813830814789606538846693821969375873579761023648836262720583991944537028932719577763130531728192913814145167635304412524360063167986275754817692364777278853238193125928504120697169977616302136339341098117088218385964801216804589881474679261077028570801820983943084601012787908992290011075459113951012784676877196537644996630711376303119074075180289337949149122088585049103536502369413503254467061982807096035959200893407646524562325347371486384067012535801391981970464849178709359738937505220139430024612439625455350190078106638160228151757409893591899072582614735728961660114617822982053406647324469025837781025056839392900527279150534509345160124243381663540306281546623760956006564360554523867482771974234073540193234774863496840251643661172165874197766020663048041558784956538653795283072004979254702522214820807637244849559142302045660765886550576189542829445675376406781588697783846442552583212605016623112104623868293579802899440127053903287830227528137984056104227544197158104393896330431877672292139748986833401274903237517175798205871698676868303144815574120149965779121572385035557385151617484049609093760112970655668029015581766915988962290022606095889990743873773480236650397671159537398085711133164354908039114160541365085499322816163405491823519484163389347271506997909567814431125407491744555978987800462972039430974866352005452532142084804024912752163866024935078576860659562524199606916885763595806505331752516465958116210928166346033173359593952639880407493619553154510408323617002763719668045639162928011481877204696076812333963603551821264859065621348589147083298593265497683089343160364216588799585854198791133186460361805328942761753201749945373597295435546600621132654236317216174501158227763048377459548855985961289363375391033403742145818663677160273905302301236345984883400106099330447664018427967863688186769852157660988379524972436966704679533829942937546509694294084347549666135939315599913164515369057239431874442245361099537989827938493951054748302060841056678554723831970827268040010187461790950916261105529249167901566572619992146239425129224746265565053940634083388163193554907140933062902936330832419294936777495226348509662526416188009438540098549843780021194588681354446089757021716439691888458997734181876301162479126263169030328797214308154318114506071656081420866312141652956602460737073695733857529935901634514627477244063025705065691152066260748489681844674982530510685464935338602482631920899743115139410630742793553867810781482459031293045676951084163121387899776071166793427452046692266958990112453582986522997067116980139654546260698011494496916167028053026135151376258743951633973958930681026305746411422621295133615898510634617038396293108040357974063950993141085825492783950536386606628425235328275321536847803807339086618987462775227718100624672470082525143267275400209896107196444550422021434067021197243046659822581833060570849134034872616661910285433341848474227811158029506281680079250326505579490716054474294212245257645992051534323751139817277385352000951401433488986558436929913350605198642186837281778793814874622069992784543033370161914564197663548333089925291019054335494392115699692705603216592553209771273777547628070520965816021677030377381405138295029042213072089197259031788846462240226828357242997159309255491056581013692160406932259092602645625177675743317068205483646821126000509795930207635445454060964271366282251158026669393009304174385124836218345130749896820794286228411607540992174410478012386722246556176482802410743402834647091712746616542225779590420648931597090260377376847811696886700819539646943332945007947826084973506217115837440308171115041468969419903795153535703806844290304383678908488015002841021964773156698863743085218218915372668872851447872116362452433609902264855825725612381751654496441887472912452119189648972609954772297788084048326990920378318253160843549583723339646312043774239104587560702900860536569841439221546483119753720725927690805284421046932196530813581547803089392063569687077282475687088666550865280968126634364929651946901522216731469761864193659100013980001057538617752481451712686541287484427738997619932280340469082854327767159592230770575377247021566030555965889557193703304876931006044994057669581026550525987010574182631046921082770192424410414817441208804874007715522814770666951256218418346605183138506517829260398710792739617362301529136973786622993274750539137655582101394121674319516024592890087051636906181682581968321896727034344186777152234641332141020065655324760064888917252242831850791972015412841479551794309504996922043944132226050840996922080714384474583403435059276674432939438462234578858067982444283690543744898728096613378985747187772401673148908782451398381418197411169682669785355853183113874649993314056707146493157827646821719853198278504771456344453214689153025456490876904174551262995069776942758667193893622937289090365369642409584368325968342657594059978637796729828814553527266385603097269116134544329882419353959873772999761087859679590728330402783773991904235864411008208703038380679962456632515069188568416128514532665246209910317554287634507325697953479443529070453362123046794319431728903751408405590877309100452143291923408603516562904279117654525922428434832877250172555818306375464932593956915219207820352874567894296002319685946593023000089218252170154351823971275693107752355045446844561545055436354136938862834358601642057283463862173392907093565524200192824361952896799614821171505482746895314095593355706705529538084292635848057247858478700990444602921462953654521289600939320653231257565005954182350013039077955192002963322883925988382312489560644877039154616273748167258759652675427103096508439616314412564177429820632730669107948142835547033222818406398866787250170349371006661734191704074817171126945311648627818417947898078943967446626622271789616485444267117288657118234774129282142866079797394300775840255600729928013449813218455305062840538762037741385568444411059793826003565996841057948035535726141768047385238426600089179600037890573857725706191383637466217508054668919865858442533257052582934053687024516004643496357181329810208402116701393612002145523161308375365643398457562914090822340956738179706281802188742058188025938317260075658652443858294142009676540384725725651344640297169611237199344205799834752568388984286941075492472363560598280769420255588925562346057721058145372933507468220794257750331022016939516166059824244420069928748123123374826738894158724626049228300790347183376689903992181482358446075938022043875617811615727808926187314783488606525685128152162799341942309134259413034290623694464821663018440349202273803958564905683617115353787955079232187137861705557088723765589012433295338328741618845730132911984706842972909828668654221012644876201054360943246015731919038121365714969397746284053020444397647359709244114190146153294859471489546216775886782512760544780477318058746005573650440408220999502197224549074285641270032636642707931228797624244308311407523144617971459128840448301532881997691703854713632319755608948271831469122297349005242549949323081502495852581571281183491632484517583064009759387346123608109290169572805056786053248596322342876120717804232461454184837762669054070595947864228691458061893069362969562918385050113385572367101639274972103907530939510254461824720093033963266382788558305027018197419853632694397477674347643846708559354964587045595480231142949681174979074589156036050599113049733465347151508156718769941949971051654877332247375884760902403325491684469498393379254526908214850377756279001276422794187915004427826886332876738208865750435141338752346873176499941205546476585939887477724541201441779554519732312158959679952086837892724776725680378332623612217528276634730626422374106913019443545583826631012890103320747244574493992744076573675839578073802145354237798737967715247217348670349809167634619324820724036528273839125337962709705786557659452425094471893945346348298504942918179237690125683819787824655427808588420538624625858831957238539018370749314430575226992373314238325098057208801267029791178549031267886099111821267141774106754658648327886429163767014005477134477616224397750875844456299005838717379198836899715186718614494502456853178563989987386721496006073008307394022785355803090009985948661873724375070942273888462386719231540990751067616069977630627844479181049843790831280783830357816597261686311387479483098332936003100900294509000755499880584318495127739339079001163459910436626289845239868863081050491052318366048769915193102279998544972321188549185926699556224366313992235617215564619361539301318838469352866793827030158230401980000265607193499237440491498221146991142743586734453367636809991311555529462549270889052020809760672068203760647331911384584209055834583090308263829099843411149962230018926911968405093013922345295421236812559632603723067826616884021847092642911828313531271814363153953441747731996116209585666998779859922574274729317109714049465532258884169888064016246137716640199926985838455475165901539591417599678249917870465237308774881047758895716790222302218399345581902253831781414531341666951128676365247916231927385027555277125943182145131270335863099432127425400389807166232348420338378073281885226898210917626674972855029627083277361122554868684784998013981540841017024806291955600324459636065692307243600182727253208961892109501436268778204880323719014570776959596192137762747571274575989832624761069098889971476644374706934632526769532607863641763899290390150503037203839623570945141095635298400236087386806343086701681306231672201504926499566416600529891136412837043397544846414762828828717169818793685969148725430759470359530495032539221132678847881143929617150123175435694683145505334041529699332638779012197528555780616669465464278449722736133830806240481634007664120340055698675647986789362899153477949802773816170515957089221727962478189380085461505325271245500612321193685339643544256758097867021325458939092122367529320742441173544188221670934714629004755252695556343649019967703846992348741036346868754220123590676689537873917619577046656199614738890666288227571335063731125144623344094974490422068174506147070357234857494710215297276639604152064690250913718990314510180462070104377116572351482869969929856299220333660023805581338413662942874891419560130327278900216207189399674612291212215636018104534551082299124816866687715026905172665282505951755155235328565141354396640681655281504501873940866165651230925260598465307033701974303431567119064396313564414708965741913439823624685568542707310285191208097688194241767417666521796416090747488444516378374443773890884535284171119328769507487556135684051406245742885000800733480402569951636649857029101775489701496304880553212313127301880091000443145221826541805154901872465513123354693946813830335453839048808081715341700984674597380473685770117750680777766655064897446123736662128697476451251968872092456587351695121244718818429915695583680143527658149587996450826830626226633189481262116756846846874641050150134479597155683981141512880427212843119078842933481412928978909371677109858060468144432544327426912749828606057603567217149261895111712448978753014811362031187096680535934639390459911010590905856463408812828500720913806380651885941602890868456214299056738517644046147491941912998917328451149966589403282818799927825532879649989972400109259549706854700782710094203258796935752614467483319198727840413733995535595709128142878565977058969109625309464151921718492855561909563653823947339343315255158078865026694810547366936964510212086686964330665479927286445349058941547461568036206564403679507972995626658202335609728705751634716736878610050890136729323768737192321565373999392869070150231276810385620028849501889271384261247502187740724727218249117769148930021268013107015380750258001551722222658897155770835710987067585563325364222492351174728240255970286870845026261147843141936395528685717577076350180234280736749415642467806531508918443884891641802654912429761592817122893241829815105558254591366511392755227661884596539124334473650160713240684439223755970018131811307068992647397865085991948948396100153832459622632854887376501906703817355469344482299643232851104515010346360853346085512972100020085712287400678002320410358812597578358158492906150725173938193009349279182983632683338795994896081324501420021630829601131827661452376722534242329902120876843564526493202390881664645661100691753791408729018313543941620507935932960450139034998076686034783832044248435285420866828385175791375341598961621454212182852933738636736683186853387136536050595729927962288918178319645925176564881514983632148947358734391875360461425640462081142487447295869479211891830548542293381594152825433916991192496113146384317977773731684902876046033405399657674436571563142706981374816683969722579977693360122798378051384986134621294379287209640730536548872068095811096522715976649449255772286344325033856290235979939941762188280440585099440655430261979474553000109506799137831204558335621124469595928294375002206369269691733188603006075849946046759811335781682968195945185514626048105451263322780311491211931057400693282461177606045571109245726377726620282891004427069116208841318886988519077654726628401930730925258956440446718819163498538398278835382588374982914803419388657962411534229071492313805706035448829102018863369343668747109650314667965983231145378915936674800754312106812138936340478129303120375672600123729106729238484362771025973096938066718219787224544943265963453885275937405278114640547840536607420538338544014281062562216906708734011618275240417716565283428900641129903573540466446951144771799631169918251913194485278335682659944035076031670774508692882111556874775597491272550931805931330875364776617076411491044433904229658190176977211686781399478653310832278474032240276500283047781702943854926737379892822679099124549435332621387587824793408851713169724611585120021850994733318114930532709421264505037884592587800696361849584664857382563335603546486608692607688449176354357709917964258522245341908161510730508452078347420333372662808470575850717023152807631090712055637034481635252958178730379959428458903717675845803595495048252962591787812770258889234945964816433384782863854113340098424566430023728646489313733506508555615401126336113430840863433916895260622882657327550917411303667661398780337437816172174160088892309624253820200009740323637158283374872719942099485280303049856713664099480727260458501318596750472201380144761198338145298464616379161543203905412771878372057010425903125652201490196578796815189333562625365814621539379006539069356251086166757108695817949991620470246491386773528593279197443559168022751998206962966543117806517647655154996179287000397371094916927959577640774487428472977048055632565255783446878885630842935920497191855951206774731631707731329902320725729001998039096253684365488093894957718615841509964138669581620921044467877445455576974508936789940598369329783329160225367857790816540168261283395749370835486125092374492145754882874529929802231149676320284471935285232965925118319122531215227481246915090336268498399452775588977704466769169509469336133274742367973383465437115338824677939921615729427243388155426500244252731701591738961810679347775404684023625133646472614165283315940838127223882945901546270855045979271757151239849052691912399855685173362473048357705779237870431148225092362391123614274144496634664510164300481349217864961216984666140729535522508922570342107133788361485912996441477909648999768866490154626315088720684590300171181254996170247999526732456229861337275363328468143627656484131703395710068638061920140167090182034406639659491604127958287241394086484778365723676752383086703418809867414852600704957350051788984914993246279234858537102291939194061095902155227607209046920518352823916855817016637804317374319169981927410217927414410560953381823700910889191875824219630779768474626934571058447577992837918840005765861240478359334305678749586891321139408028706333251761844152340665668514962773343753533831748016983290900315295937234332738649957815564024660486296199371458957539162563268043818655112450364486945640572735512565746349311544946130094147718432534759526964963560824933077664591067416463539893220819196520130335145760077241091161376517325283892099647110283036399428901819061001051222978580439967104664284890753909516772680162694199523230798768700751277398469552346289456027897435287337524970708409419192431571326841516388405921861257896254055065553916227018237275682356681848471818065601067746702404778703713286137979682517152211873432736617768779054821596529057714736606209343113360704474100385760508947839147848269453636953611107008709614708456346324798466151204055815119118071357851711360611595527882169723815715732183620625987156877757481279300063682110781484700991582627651888252287946026678202618476198300029583555994812707072469874633319273185798229091402452550335351812602637431170658601835316352431765615225914191895169547482460497427015638431072251244347139037522668598877403418206811671010012894089594607463516213172919678645097644506559230804360370474834737213556226610144533229194493852688697276346506100294655928884136628715647318641613046064201918259262779029808871319013731033174738696432549819705789799028579898130178003548452026075967907531032034855512762215539421431477772396675242700013952021279136974168739618531946179022002575798512674280029306277953971935491618914763934864428522926457920129015674538555853849602368625531074938436616811319071248798757895579122941733402366909316217717983065339751924110829241376372337771434219102153530802845688336229070962841250666593602090355474692484716216823935891612233741040761533432542420701987690482928167182661113582836470958795357162669129262651556285685511750319621404744891273519686714980000499109229932704924429577225653017995297075479991933347975393732721869771268300357355198629051825899486586314554331394987654757804736259399258824445754591033839576144966817961628799347834522823284845152595097745280881837428139756280618006712679936099792950976502079680300789070733532885055565348473009688639225330494090121291165052093515535349192411565302218388649355907962841707996486973417558741103629398719106421983783274035458226475590966854088616125487446489907465232142280906141859223861346952131346168884207566592635173799879526472388634980474914906668334005993307620070325879836705511178160673015766470954311345240431554320293373979955428733266605372494805672302721624641167244315409231742272426762805456570210870456361374511992509749740479289184992124048765952701891943137928437409647191389130714605842038970239879131058736220971694158525490722648810609370850013639717558143508136129513898584401345752967829841061160884893727829875999597455979626139476091751517245465323808494796839535790942630650464950052940603344172134224787138363159493322242039277469855284861290941541412754724477953540001993287396267042119611056972249532842846055023718926276207657964753526587596293032124086648421823434984056493423344699864702706688479410261413805552736924573423599213421397511710241498358523368128674114068284041257861462346631159070668616967223846893461070852343752949412093888382742298898683093699705882628841829314650289386931927989263520076400556597690560642381823268580197838478545330558532761192181073235499819423569485886711724782923231858737045669368768995808948262328975436632543104848785446832087461296639302098589274924316066644220158659822102018884026450706876465829436581827749194578437900233473911014522293106688979432117217881667175104689406508129542731944128258138084306075162268753501923145856339502494327164832515282131524255614803850837978700434445646866604804552409525923725959133096266333167696614738455534108260616658801872619804452280827740320923822540147864211881782042785764433351613966884585346675624937131891473055837938939653014890202279179556715721775342917007175015711981034195416164011455340575103166814387239422004364047210943262876685311775132929705583245207309514991291423557376837101155819594237527222571368554921848363654262006053604793170704059452744047403012237954667807604131686646000493449627797752744111385980423812676231120506468724849956349959378543947940224441292201075717587413733970978861443451005749702177558900566764398291457959433869920887902006046805717804191263437813138707396434977892657213920627766076582692881005126442339750114967054747565250927064257477957073894656383102332122486727412829182518852568067350224998837497860243139636918683427551373361687763808688878560366740924478976961052622938849912556402956300280546608160916100016939606484928069657115912802558101808012667243998182207527497976129137444962600664873466447504883413583218205822787423983873017336301816913459871298793952804302119823365968320217113236647802974876737030261158641560870057668273777437693537758844454418665164746122404198751121067657040016349947285717475543380211584699475418017254008267678497529370805620867903392638188339174080725152328323833169430266328966790682938306572371195058799314342063046708913039827928849953660018298763525739372253245522019715873899670895708213874026666854114256250155065333884973836114839026509068600520649462819532133461503376926946822019629987349188343882396887287098727440873452248299887024017186784518891487292962380364752838399575098691261210349669049207431651713921292973874369663755436977814739317918670620262805507183891503438547179518748980932262838784743204005539880127636930803118957119381643650838183703643373038870825429739581223558182606808863595632919141735776486744336849983914937422913662489091472831171212992693989119779054699997936178744478777811762662986081724203271503998272725999629520098125226539006048516618906601745367424694633202276040137710817713855657750273824587038870943178010061010164865346404493929848548249976595046614868205334868142259775078095450438637502699689789404781465692773831426822309261955693709020185862407017977614951109802556985290875660615692407068289790493604222929120615659466327811298742137407719895365251522765046076883333592147286068194072707189714239744485098456063986116343109184872649444795187731270072465527042855243492662051068388663744439433835013523302473386583015508938468779647211589514252654400058409202170009891994424359951485609760118483303603889970775632829366363270317986596567214010694501831857576437876290700521979094766058674958089237169586469135716280306994225541340912437057234485436625719122646301980870881123395578698685140296370304063931880031850663054945069484478651984331658769829722255010793715572950007072424426046000987695619719000700027895832457685855388125943509631408938318294130078122043809710058273874054006914266415269998512165327544678427597281535468829271239708202979173894339311052792503604610050161983093049860065661421450248505010060574569339465067351167635890921164518618331065429023241046826390370361523736907917434147953549613647241689125029002790948009571693057913928445789527072086081598158645614918570567750986754479999405320330554285628812684064983694758695831910496471590436333873888945164408700899237848819384880591555226747160500997137831369156633579591608522579530586748619833450043467821669563614168697178581571270081890841069070517882421124499575701107004986536372096995804340043781196591090240206623697625843285020275921269963967677093392602943979955598984432402089372756761638616426541589399193926087057027558411666175137478025728394871811295972882667366679038952497958588462583927163996597181109619812178197400554278309450252427906576098506903248905073548136344307619700098455405624427214608638597485054200606471251022036442911825656957780548955898173674039579825663916468090516216561550718553490486010678332438355921275843630529484138361929155387191408008588838889779051088324326719126317215017067936777615545737256265483159869564298874045477757638973053625996247141394602204432589929074226011995229739706955592727533129689631228820218282824019433277236521796470376951175308552296382577443535485511080157949631234735905786332253215242723514048717826166391188733007681664269662916217654469251065715262446772299984482771649724899556126609081283875740360307339853457731985456828845611781063104054235245023571946260006501049352692466732721507310576713981310631798739477872859553973603906058876010939913995044231424473154475950687810932929299043616719733725671630807427129903581588087753948887203035614908201516577932018297876767390258617846690614658456267646934434132511865844152200140551809149715428755386440708964789141922910352358941238432467935080735218803752941739033843737094443856433464180781113338831757453551036368600130005151529627459717337341852210066676219058507356483470857205153031251264552494811517091172907142057314479425262582560274929133712640465868342968485385798198120483261789381324657577736052692317104441259525494717544592185516325177914885182173753652314865219097675172517242969639755967154928591874851244310752117773309787656236516407264688914058338601564923822299404617020022813920054752303161118745752931601959636933119745582394296702150806915472129347024787936338689339055242599169586329580641828162981971946320602091480696113243759348043524824428552700309495053796610033773546118640041224796400279865978312500399768064581739790634924503558619164018337507497764126624866713935058519499856729042148528467864318712578494972339631821006863044905856123460824162813047907534882362298903306755551309658068498403001455237772886307542474376730557209720145349046611034966264524066620853862928125609896135462552712858020640289202889387581701455882656917515075822859464390335281729415343549083300322045247261829007774917077536128337418385202674586860001601785828902414657828688292048907021816835760188836505929612114634992480261920830612839787152527182823036307589763238644055015445951604629431340897504381237140640699269999137360964692300092197426581666819204602309595338433521798372878690084675268472482467842555070336045329670973590622107854909391780055177117700017827893106573587077290532539055874019051387668156787506491803717626912323037710881649427796879728020689225572629380768149878153427292735610750391218362064495495913833360839407688129963471438228510898895028270894451946161198673991379837298934106658163941759138768741960302979332943393441383600010831920255871765197430767905668184194744237805567104116913205726102746723824068019777513260688594296805553097756822788927936483690595431698111485911738443947758523110251925975974843583858515306903153822511874465310272927477615222828599323390535208516341780257133733363281623257864620046667709987370491053495397254711411917595789220752637600213861767453872943627169613386276213315386354651230627115172350692354010653600537266455097143307204057145677115452789265078561315640122435466352216844341234780617129843991499023841779346365896534784626199455098355291164452573210738314617548807947228142701355232652535676657341722352259660699708627141416646040196213412428178512101862559632308828049124823569537449820661392278993206326256129599799187686522420908176972450553491648158113740431906699436415180480740293958744897612726148416003852642004957809811805502170994402335444139423042131595139026903571593549887114532323413682242438225977390070077560903120965367246592546667293604386974893835188872138191717958186795777723635369816205937350239946869908806663265479655143718412046245224629669113613414166762189874752184047404171623142247879231282246568522535823130003913456573390978960956189418852186298653196740399766243548250756647732632761464687519821075874170373070096274123556767278832821290443122653692990276353707933414256312420875036180867115252215143431895469211763201203298656782318781462654884012985543604440049730352102363332106035446243878977386651267906254196910264582649758738474589153646030976345465045148874248411262100322229591061329239450118215202936635432454478858385628861617506862772916196281317082535727284440825925643180645501460721505154108466645096916968975479253964017668023419129281956412865065678050686486906618939671340713402468024271357895308744852380021530072744995861324816023757667744419854778622836774417333378504292239426937910894292001231999537566034363017449544981247395518508714563275914378338148302543683785366877851763244493742763156262593817922000002131457961789481750334969534704408206461067026440337129038934527821518121657869673277848853836268184547499745874293291318651198317494860250633031692854955934041233283685126290514476599710469319701157111357947065167111893462415821484073200303760438312619869133819972650428653992623451035520851369569356754192074576337436644736054107847017497567034537544582960401713682706439069820986454765807351578773138925680622352138124854976053779969017582019974129786875283600912600253514885330514384169674027101556751303259392008929054206966866218602911073199879578149209286079078932487114485640278431623942416873969940661318432179111256914389260138349425608420220635441151096580034716794828734087292022353576166211245534655925824976257677645304639422491395060769658822856521294991429711005953070387407882790263856622195597098760186366751300508712496077550032763655796705275369298797433911372562157036476586309155347308911914369435250665237105007903976821485230374266781435335345525089447895621641008929608812467699754119564756264037464724612389687560562209693582735485031825559050102249597310662155159294732376842412580121412748590185678683381490385411933567242404974680004194735978720265970609009060720651073875845281498678732685236107526235826413193365054520343189495724410515945316089136003315664715687821812523707595978179447978318127484189841484514472829922566604221073889925552965159096439357408088831231485805028789036415792219119888942278628410784506134923987135837332449692688345776421509558622185528583242227042027245809671366340769156195958362928321261669387512433741560768686041955167559254276232983383484364112138487023420284760222714542299305852304354086868690143188707393630660595068375009294719249311364318128156623698031444111064172188584140806414078928816867072562578502158748748195666094219738933641470053354959697461938392721184340011342751599306048858580526685044756065673712337160505073196372708385092359883901931339819383938951012817890538735583715767127086686894489535925219829299329974840614136415527966466467854502792884120175208176127713730557529780833811416564610234252932290179476754177529692635455416668227244611006821042942105917077280962685401187528624299871048871782838263699833162450418943718427877250167391583701015935300854176003645968713650765099130135625154993978824925201365014523825340656752051586115012499876988632258539788620248045851758480023551395358923005921743461597089449862857286708313064492626972623897619085137679849881344799396661595411183233126507995366161328152555463599196794549580031787359629699009116409201405070686344304586493514152437757913835353976704166695943515866915805521612300845773730779644499374858753534467155082195729905762076858347718443766248084281191498368847922627886204319649793534554315321400750069945608954003772798236091790240090573484863321248281970521146205452750968456745002511970946823028075895234603836873612588054733091701193642828106171547182529366490789789863358792450385752281000589284467552150503694704474114798797643311384143152729777125659435208979496419130039638500974172166224569624427143517446987566943546595185757269056922911994959093568710897660821991362330401912247970281239090601251287539875598631948903059212840442346071804386188950044045695693465362446125822189920454362508853611760818017574495489868516232891800323115509069822982015006601467538761198681507643077399133949362613901244793966392297879883349101559844895640772665482706743956356330477012555887503528852751571320225304717850784168205591250585150389194301229426648013819852293234838467997176636221429543245453981434152083857723458643174047358931436190322114736982842301031342759144030197834647038161320043115325796469159062272296870675158126298930508251671487464262920226681412293886607911403747327435347635341663617270688853889010254711011847219837919627639292918702803586182964045405539350012811600462643549943338143296138316521834207365730320010321114797018869583121144484587097757935006114724951359604104386349982927255168193766873270232631031705456366704069209576462118732872287730043740752750273854019441631372888427156936034471026249366481566325773726765554651142995528766990206047582396128791142913427954989459736090434519449525324297902366137753286090407954718903674503956433451723296931911580823703802875475866910289064967815897021681180459658818197739109122173050258548706326769848569234473555094485544389334293546063006167440625002746127095149076141355786548998075167823725014156124582350180169975458979019974281640465403728798537877167929171899813069790691422395222437178029388727299559215603298624523469046003460887753061254745011244961173526378474628304293872342314100941000850911490169601498500691984537778593349438704144165183034240994434631867475489063782617427796068475234309592640324279420657727502324074868710012308672797782525485755490830211345918734888151119479170361632849450295028140822932289686888289580973282491293503556209986346353229464093038855774453238878069810736280888501201983569648460690782441048568570268562554266224690499460764294496414860114244962059106477585478227765982534838726074594682465991615719453195756548892015035508854727824510304425973217929152686710495185383131854416008409170107466332449372005809759675736071102007501546890014727013033336564125691833221772821295449622622936166061814545767377768539137178098042814207847400099971245715386909084587114408675589062648476924643171382592132234204888717498079492326561481367706891801061341737579733221565354548276628644600781402294095279489889499717984978732428086311920248896174092329941165664463645507928301707147497155359530067577148779909107623083689052949216670157645180917495282267867832502422438481070318899555736839291466292218830907799698899312295156045347367682421969387439004660848437527609379333038680721849521133107013162130481320090191300729529812643943691316225352289956454243051988563746537837688981538850235814802516198810429596916154944323443892780899305394104513396405185676795252983075579675128060123967744117639612633445428181048276652112506036284359726474541469310267349568448240783486484479779460969474595227919968302006899901190832684219595374914536503720077178817500744864034686846060130801970387311857560219705618579503565316148528715844264262879263194497473242376174680890911176630649883875502178595707061014806069716422050236294000182547249051455716855205103309351729148281929186479495350620971374549172747735037753813715965756481265960853248996059310991153283794152044623263178889668833384608422710748091015391012253596460231204712343083623202834432695734183202582066986570293243752017461434311101453265180646858865655727926078485363478917040112686655836608457710293758614591954017724914431223955550989605040862384960463569405071238196116099886462962147668683932100765271492773983161376706026888179306933137408024370805335784503940634728122086711691278134332169761413622060838573227232223784858758320246401469744543318319780409733229715069365848495119321147528650348919080634780429590576515268740675379589829709211532398694513542846996086830185284603646589889685060603370911114540349930552156712638932177451427244776519427074871530510110920153533066335659202812727382560123387589227211211369316908742043136602366409216461198198568976660179965244343909158052236876983788931000075156255501928730498590442453503323320127171697057148078489648303870781097709399435424787034327072831323123909269343409041405971446376642746976441386091358410828650701993255620045216341719688152460221630463021361597053371441402382882485645132707624048814385527366947271415821426276465162523442435589368363255177584945406090627248120387086574561751183557916298299931627527301503855336452079663392862153292573272887209033831615550914731484306598636660102286588689228927435071828299720578816306607582018875160749703022935208456312422053175232712082467924995564159372898509472480084894653758797203827522232950906841526146358379975710128377371700081781143172278800452488578464699714193931688377298600429983115738235265817236890651336822877006208483604280440934429919595682077566707289350928502573924464771849231016127856457824488753048094967167782647867577603402839343890803557946250853501368874984476582095352898650145921136398444784975664237164230230888492355266364181968914135493882677848652527547909282644676427332015368115564540715406880001482389234857994320013837110918056960914518183273164729804849384428385087430972914356253606381581007092171839852644527924300583844254624142085101071503255001419929528141481444936348570014322077657211462781048213227740936886252455997428679249762089044058640936329531178668084523072674066113051756376957608978876334974024197311681788130721216313951595560236499670526879851724532173859475431694704516644607024828559995038082424848491289044990553074613330251941187483652724739299673046892256962082322066175657710443992119622777898477173215197242664872632667765491408361398013718403977869752775395131358593076466388698619347480149725236772606303482460399898135823818925734106955451140507878835440143503340900562002207735827629499797802527132955577131996965847533363473775958508562908606950971216272265531153761317914688746578661768389093366474789907540443023016974319028722115562524521407950690935459085774156490827770246844189789445252278101588351860509617055666977840043156372399210252397728230772121234365432373723968596974265603345111051737135386794230654283358321683605524583138959110128702823169539086851937955861080583866919468655107403194854620919057610936410429659353109401220919185921974021214247592253909653806280240336042633418247256684536996924104345308278514722496334788779665135116321093797247128961057804687398848560756762887278347592709240122572735455261532237648334708324546461068408173696087627127810367489301086215682274254110268466701426089389264523240932538573601965048286810417718714429935801378570853264279025987409217120195278774816656517139555736031209677704807497060663646106623041682634626771214837141450386117026924725928961247858096525033337953017277350474056021729261779986614787370094425220633920467045933448908799693161436526033770343379823649940228992023536177755251210077154503695243889715200865543750137639274429869785768027112157404911591700448672728171314084579088705686733181697148398821596108154000650329568633267220157243572681993917959121537788639237800427670344689449717499622767644940727991435069013716268247619198197424248069839015569393639824110132773289248616630031663287983225133778956340120745694574727928531616120860070162867246039661040746340922015776899117672568031970494742738428809643706321403109654825116792389953127587538212273547422528092363250556868102739089443360346622381039715869082765679637151618097847009581377359333783022957429347926817939237795967671298585040098574226735922062763520627247151988001287541375373895634766217161945319010620310989864532838396179697122472284564554896498337935890408637740825301061140477637010111463944769640408524349069522226543569858807076510795566924683766182162896207649262832260553925092960235909745988892936907981542623353792954583758413072721088910705024092815519615194739817312014811142576985303779365766047170591973568941245245356753690705633838983804261204418149977112830641660267602925579574860389258460823693935125640980336795519097326755817291927897402378325898886116258566197280240178214556977803298914817668398939756209840125986231578957325407593743057499070288736473865399669121416278139799401150868493721601788348489910587729977031231587454151298787492815972138260332913070692887403304530724028184625464137814188601645564791808258572709130016934131801075751282326558270242346842234915400618046991423677784654918030841520957077833653807023301341590930903098420150872537974527828569822590272201925267025732066597521742336906394118244764857714426018589381843122585518255371618029085804349631364854007658263912030039588558382772448134666497074433840931624671430143902468586526470173698472825935514131906310435468981723169242441649393231672056822454363479942570820278913750353183065769009139255633672085971684741597909351177012273536359808660952992541197932581642111622602133519103347593132415003695814694262878588284473094741786710565816289414476072112755075176514239680048154576910774012210482198221324656384324515428979609553865212577827119362423577616178244974994768207731589070579625136581524001106125471006253039880328867774317997630229408320313273696460260778624986181612851102046341651584260175318273250713476756124238436345079549947526824552486630871320485897742459799681848105756227594672719923879909286647215380218524165467017944398304889144506127754017463703872935426615637681546136730816322277703147818274628352620268244574418189876111053436885174005710671553154820437669084400043296067405336490991745360703468819998173947269534954283718056929977827372735809318970377643405891962411910247678485806672327895349293205820488073340934539069348761956920350429454046626458313315961818712099100582054904383651912388026678139297228646306116790842246486160779302905255345185953371754173277992963068018320359390750428898955948218220922922576799681695213006587221848926125832364812749317141496799291104602101410962958069118571194005987458950579126331652675431236977589395837235682230318887331243377582571430422658472853066914936486980093652852658030003359203268130147718478611959732114029412344676004984567833619727212493120710685637691000656506528108813333722250840514479172625113603788098070177193491302649507897861828633035661370649666125651928465574432048753002057928613498995196961703687395094187473256973667642330972311246402754128160102291916434222882298509488771195667701152438013397387797704434978311820368111075736982692026643001742440218156342969851450490294669351389804359387381591791896243768280913075292365907163386062573864020802458032751299518933412817778580789636883115562400091094577520641904440917856705315054661999422661720310741799207586783789449299685329678903620328494972650304550604742247760474377707840028573667988840235389081822709032492982114223539419187028711783141815002430997365640894290496672800125795020698777779301990683674372634982237063498125597445541423328140878900191852315754901123592883066973822127387138331525598507047177260668942028396858421426390242843719998598543065181082704481449362312538045190715870011730338630871371008242135447506292765183464877199702240651417765438724897268083989544236424158285619587148696375088380964073037041535761702149991071600650690584813248341250240842531012496121901926367626446237551169269964545959180723021403517896621180562967607379066108796894400958101325209227970885039165314056613821522801330062988015923010467125177179493488589649238780183004273602857175071426873778904091287712889151877127033271713621772053027567035521186513173270741857033579860668419492000285769733477730643881585426413602406537875145582178485217714112783736517178869402970218295558980665555567307157785952221315817761057083136024554994162480664466955535554454818177230237429051248173022732760331543058749370645962114957664086495622225766825908860321072020858276846475077342111688664101812274996728314755084290291562933715898068303293209123400088366271005506944364454267174170997471495867513773001551294965204449688280174044805202468984468498631625328169281743065669483214895547371354613753962608737614585708091859276270675186781501715458953142851329435777123128609361207424620771983035447227849790379445971669855224690935543338012880669816137039503004171413482915988515633231886081981952633978225395377378501569050719450651849590979690958723108716070176337318757066905442837072627179187675622688715098901692068091188382497006383629832461796380354768548137228855615821962680762461895706924333313324785461511024984820459742088324464915785081222855324402116015024579930446773933620367218690087944705274683377112655732543387234841998206405636094436210724001304514488780153528120655727578423359201057547705166646001135311946624971720069626332075862277089376362195630410186135770992385326596752886856400417531555316250065045391347293205972768114018333832205919822722557915096376030955149986173275972291680629608436882313983656899880216471842265859688449966148178150425745696705068447410477776739472076196055521637461827969211503518179070550738852550003014847896739812139649393469969618416086685248430075403624404888353615108669929048336784283084305421463011641611513176613554686789654774809407900973642130187249160469350671830205082707004999873704468049048808674246600264948171970547084348261244978594208135267443470242444202013345986991566445393115513989133629527675225953845392194224059354709462903623471634051727633406681561607124013000496629604176553813816661449468848400744126149400228119691590658760343221277216941771510341658327353506313479779043487777763892125852428679390223086579318480119286204045635512497325029744082605648762800119572466558381768820829877246108870756979005957705585999849552568524800548305634013898824300066926967506943244402809234281342836598891400453180673123995721600445993166105518239234786299700657336013698104372706421802505201357510260962809476959334911316681723197142722594481003630232449875429288858185449447465367762914620111315226709040012136443829473801103190277217523558934395720080343038231773581072229116356791067723300947919142359909679982035231295513618230496402931604056585404816844925156102172708921276656157678052294893310551010024782777255070539445443103743965781504524882765911879436414824541081053689616378787468716219002064699145717536762437430005027817327696804010739308857835147282771385165189441889625840613749333318147253759438505871100209483089680251752401155501035831091234282787238887931864698650722780828510077697927695521658410245450023722921513436840679901381106675283632580089598945037938069542436989660019846818616432613042058923699574122544387042135483164766523135514518310828655158432982811228123436907530144102908332580954106718845193463259449123953609346217086898158006943291557270801631473612394827174639736411401354887123070994541892257060482482791222776488716442265649616735521922757057788040609524168903998593472726316064007731897618163390566431869649557243370323629834302093534761357089939468965042180874709375174817054725811662710966752002222624446601073099182647431578198199803722548027340140413827777071245259363434863721769927076554311028488132525485204722559950119021419635816711785820764233379138135592537951407269892089704830471239984858389792554360278322137770859565381917445350625943553180374412992050300776030914378354854888656665157697253412348469425796177752262768504358705757104691562782707020803234438378327554237729892810153604915884931467383341579558013103327650612271066790886985879621274121449180671382076809110951275001674001446383965596714775234459375306482577587841188340708733759929386500979256838113820500959974983653724472186080357074328110270253834436055418890843247013455317282961776437284411153797036221602662331735625309607277596122397521321069696560374657535700383477201538759753616315853017096134709147741916071511745157979857965365744230480554325370255557247727832313730450790528768534083797827597991756724693662992050458018366827642331105551126516840701402247690417296304625812650398442111119316825760462917450563617130234054531649105801542318711982745675899550262208035764002031857997039419375066673923839625320235154876287170063591296553179413251610006616102666030029852729932161580410477657536652347547121688884680695592605575335196381074793916915466481457103223700950432830321213551228496782260275195456717827060261363386711108094771723480079624584362193213565468701184071317524371734534806719077433844967321197607560083665211215723661292329015086150834517804140216188825489258959723561360248301476252413022897542237967216871409867228300692740765827256839784382181391748959113409784105642858509924560555258400759076587692165239021578400225142285104930398712375275957064773172702339862857069744348584130962418930748110143914782007399937416328007395096724908474943485228697541576478548222066825919303559300120251108663649557932169597597012768360612565171705654003783301602288637244668512829224228263340024808434956169565344802299519951116890403224474637300554431467465000726453637662804845596505055777026876015052351150470744151400680241452701323625540881300003965507844386251084941444625742669852613963158049009591219973368547552858434023298055537156536199005165048415124782791511902286142756389441666317635335890514834774555548921097888595372191254911258336804829230720704069935937118627885066230632399300640153202233118508856800377157339403824380325952995558502098425664064285393975636488015485332206425231960712107342177287077371993861587863003623002836790332210795989947113638764885501148719927122848201921651812606637510064105393251160432992755526342539734658747418428497626363098710844172720146149808435400202362677275793658409607778946706799945392747669514911926456810311282098585142552045627076456039955983669105861445665976143809918861194671080633457206129278635261375941234054361525597444729497402374102544609017789473456175805341239432742057558395222269507054992124984855189885649662711548989667404877841812300403863828908001815834408815537587822022902391308224586394441715948259402635108354349107319156421360513462489201274029087424486353774928181226016758802183005222592259209338193635170966666605635412104881686946499071212164450408212665813932510193815878087900792693284382088572507585092304034295068340463308579131784280943871344563516406325652158448671976165136047579407922446261341926194115483703009215906586945863071087771312069149490320222283226639924285634852854421658421224473904325788744119490729350654889254885717598066786413362515493048289062412065005879273827570193873198970720350607055008036186773638098871874098939459922154822367580291208079116362117812643802314440645525188483118333323099676825444069460574537704885165822385346818211338051905984793486795748018081915639851053061723292433252155349959385163289374262480886386696035677630454665899425477357359255673395204104873574360303452215002164603163287863363020804729340962791343356435942054486179725060935596912076656836414857950089897194714433392413352361164923220708521012354171921264410474419562563128688826405155237547718865535112227307835887423413381068041289988817014789998287822098746019125238523380096724948005410836479406473631328538214726498049894751675588813346316316276856125130018958754015421245041126436060429576174427146029854784742567685210407149496181391726018921800638222980457606331733838558735789728380224110356610245164923209715702013725843557717858736085739145186712397960885832239324934486657772618496387035726590158287979172354098354676891488002213037860988685372000502809314041958011612608582356038467189375988021860202624288661640567971659186677633339391852395434423297957151721987342531277954506921019254832424913631295409368974113319422828796727514864826911786147410655623293230626801821902345269299518032347764932260621595210126229645875997426906785613154514562331256099873983699342657029003633936451857056996728180755879953810204919601847806199945854607518854608410286630549370202961748565574767540423160176843027194345464642591316563025223862656994729115479158228928762914918500786448456551342893386457200020759271119712807149297874673895766663302525872865908112518869134101394806918429683073225136837483227692779058966887545883166016674668173054818970706774963749646317216451599655074979844336757650707556203821175101464310965042307751379431069081020145138303463494187185908089661491938388833409409885338146195248798861484730426059466782164610922615936319066721402974938284238055438330419317203273981098633870011361363554990825780791680244275564687741277425026213742932182891965885549282140309751245024323245366525308812993691053885790421525312057023796355340432178610444831351061061252358898842639397856887469551749250030380257270956332710858194636495481262425329941408956474821203406729323337226883182176218914377649026436116128059583682394661504788448280604817102629940335805495936432732587792711398604717704879513564643601388143515702558419156426654974016996302288648192696726042082227010956056757545974207828971908826264385947071246205743605207588564914387995764599425072192204952934595292009742514899795168154780176587909493540814258569086206032213809712276415332758902279964396348328032586392692568819846558196304114476297903904673260278021108168917715671035109671688542686433430740032107503746610284505347140344716556200910870430611074177159341923423940016306576349474476852013099908454892686723520534081718768338756619415907981176633011979013919727619210627034425496824928117809413539612568210984148965182558730369998817721017291138816801240000595439133712988982216335721394084117484175472196654837866895025044579510381227732813088984375499537940112413079466385381625895876914200604969315358896530028925751618995506656037527976815194340931988854453744358971427494082557994996873870020653546897880648351303988310365135668069459055746998721173460874632238957750760592055872040398782908891533088276196483673007966927671370940186629034750426806190398980716929254252713887714797138823746233683367055669530507842541004097110712210117716447663665690884920654003273309350232658050833947343916670214085885987846495473891700322397782723728882012923187813921535661260097260418362547691238810202480241068520449507708646516966002420891915112315891149888318127665786663324370531040851816850852179375967209263657001541778693064468682705789241861756626350760090377892383223637415406217326919295974418552115544402876707288611115342587119374423728956816931681884204839142913800434003377594996675760456840170125822219753431929348903394561832037786890972582803117301271347459928454862563156224643558560101254122956195398939880941010041516846417113243013817936030235366391024449165311802431370818428625450503777567825310284456702226431764505325243771370112899515795502040914794677694553460307518717031010531791657386076005846139128868669860345169570995209498983437875873676245701418823406762507874807437118454595496005260669268621187839796138295957406323534732466143760203488544039441739133382326216350896739188658097929704565599765137598703517471823124898119347458154436764560705701266158721646582217446304136722933247992825021593518665430344221462141997415829274701008738794077612567545213236552640207841032374277579541864466459984675966748122727928138906259732477807887860095385631927339570384507393333236866462213230069050595544688265045249325081458449977151232050167483453319667628688720783651237073043553991527026955183722741549767478012069059974718874335557419969055004953714528063680633403945434205891986957111630689490052098249472932031701030884164902435386887399764082199528953392787281568182735676334881956565113991069246195434889251244779676099417553905675542608475719499229000265467136670631203245315539056112473336265732101011611050803381154757350596681567470514073148671863737940913467949421900781313579428892692387164320550471641376283172552943636599614899283746865584892870263548566458709022101341116526589924235191507854857290467343982592886704608529834458449415790764321037388633684617374784683916840044185145869980326591909486033254772641475710371502209542046144474371024672379927878648620718159838204001064867424680162148150425414004062321429935513431932392928667103032559167123703296198950820736396315823841054156733869740141766422857575981819829678671801782411379955213873728442896861146409917316361337842107900932697352689035718301680018032906563180047255884876824509639815518614745896201174418389724701830404851684290422709671753145587322057353861917686338967935894145089785768677345642285740590872888386556276581491737645532529388318990002159134843144596273034635747734202627424187287811496824487468569001937454009715250439074112330275906905874723980574250365460083053313221705688304267071379629727826123946572428261678128107705778703887082452891299576905974339560277305672844336622823543634535659116974025039922321456228268732341303270248268567931104475087519812912893094831686324736270973647307891791760664549735708926371596450666944394250968262821929058404844936042185605885558907328311383232005586539583487658781981068928728492750876793909264000963145651320090975458210643417194156798464961464670442850701125378338560816569183510204389390888598446089322136362094538874665771181051396128650768261815254457115577115414813931021387886291357873685780528422861323534781050539132040921722522523864712594835035832422687998754775153543781726745140676755648795348208209025056856789073963631008883673771543198464737539915187918248087141448818916971665559930962887836649181459721433610456577394073569300912240313400258080715433838564818235938892580431220043879914233424505439162060473789808450950899373111387705162410886893939725517801152551787138037576820605883936031778003663091997722787792689415527543457563241371201531667748875082458799470494114829754228267013023891203142634231808547268333217256282762027507033930739574222434808261227190853190084509410433930896842204569602610207422618177605258966695016109218892390757706029061954487314649448247532546130605167485319193373013032115383960842359736515542886552621334900723637676688295080464782744328380106107872219341516502759627401908158746167290427579561704480972287412090755065774331902032016179118038789206003187920059232657199318753345402514511606823637653227751372182683445014752996372476198042477742836636375124163741067141154563741746981784762433744819825470490836758951562581453263853734710375793070826094881463080645282355602078906471893538449922267199659833798409953107646016618604034999530828276704282668632953138861289605520004274393933657373152927296531221422872985957147871863179885418265508493549781527260556111006432287454181014999228809669970943272770934634846446741940756441144465047359747926849648861677688247395641455137673016018589213849141788925245424296075281610318384550239502085132128158133002898236468114107307625961166411288008952321855583901193137929248150482135594672670427447218877278544672402051318862725052590586359696440191808964174663645523408555727905388242234021130651212503819738262822635731049815714190272913844990089161202849386340525622149596250434193569545028057334019063839309400420586785429769106609986302896556760713849513751100657115004626630009815397477569191964759666861892293046782890639216162436991483633146954643938050369775663095124302052247304781787911379082948305744902443386550716042381280718269775148872594573490713965548195107395067605697819009837405905593494888324706497234196514144841455959900166388228025809357128157495655492715788210248636702923117548538346001383714177218109118345594679432329803910241542883238376632123035927849598970007782542914098032407942195585090251924003463511713011897911909208214934166738763114283793027512088693241436803592041647091050458073067543706676256971406720312292986772331538708688064625076479972495073509399168047513260897934252778309611077508722472260742432509562869977750652218709308714937436324574975865743310396081733938589989226320525619254269906571834213186712731353714357463630213706994981257911735156470395589715074557353242045347169535578170819115027555186281277480310213269403226047158285217149442174421512574489995086088515816722667582964693181656612234568422259371157491537037055356045260595765978687401791172639339259557838235363028747865507994911304552629677045999928046703764515233598740781410864100481626065822981290339571877233847210586901068055189497910794332433551313026255383161714473706069350887011678413331682214594721293020822590249171795079379136499171141734196713338657667105049474481521367554671134374742910628128320415687347483414664043544496237846507010549276777027697137654219770567047196371797990773154304834710164290609288073356682807561734809178489403404073785109333730220532183557207134727435979332686221237145478071295994397076843859780852674775842615899808647893438433527883119094472518406519388813803668608655170399505757117922310989590539969804220526408357615842294335389047241259313484984271979886536699383594989026810764004680667917867735095928602137945312108104822901962998058063660850741024123893141595753128519119088382893739527624942187288915928752845548462787803112543903725110928676260084095636215076166420548515288061657773334916574132652079686865303318652450911978064179286382500970026504654953660889946954357615854416885584845263719602435071012176952604414551977956910601222404844567823656481739904349501275584911818747717261044491043574432571082701633307672044597370057373381112286566764340325595601397856097790423907096839304609826819003636763014880495104156187527311971139622816700080754585588444169525553807150146581676272306499920941011034831975195767474864876724319597624328526495437414144869765944884898949045165138992094226098662155341165887488744676724087488789282790946622366594521844880152513189335955781663974350482707126668936540916022046176377611277941412169830046665586325276299843248110255199814165549869709016461380261836153577819476573566318514538811723463452435635509722605689417180670753900272297246864572794830706169325417717283769271303296438229744030604467474693988041853676789604044823394022182666591418803847296885434279858583759779059522869461013323693129187732090924412064713675341077546746690059590343403057949420841931892974451595522536141507170055932985104274623635865170085734025733112930980825936431823913663109253388944662585094944757077141058734678287032897444601538755835877730478480288010311755134177999850394596436916703693563148883346733419244042032102978496855650639916461391451842004546228274458984138417146443117131867965367597842588071175526863852078484212053626014948861031940928090586865954069989670923463553761811428959753070291645922571504702430350051512172794248192916297126176872097852033612354222266238145950797419142784152922640110270807399227674246231887049491441167967928126521227979163871942039052680498642743087173257157338056761893735347784907247132264604575375595583847704523175570497518708188886646050101650051670712492225671895651856723835363262585771683452683215865025387136136158861978673142247205608572999647159510808870535127323108634307685135622068235296580451842472535379050013400838570622975778473626420405864182689307082890301799198638922372940434275074716734982141627795963240731738542571280170918309183420699950786866341903539342122691042093709929249969014052879513527558572029903120201915988293162090097699433164323804391669442085185582062631695102525214649484822349396456515938722747952288763613613275271145100300828997292777082225606714022681888425108842485347414428399499631252985324231212777050538630897549230809633033583007976160473350424410813670121474618133082989543325474085894435990350702486340828106057678458205123808915513703135496272843468718422527849687391739549089646109799180976092033338156991258216817846591664400533969546124095592082648589191076941671725465414500140188052243178037103796702827488624481882653604166368329821001102559446047852712112442552410836139230796577594767191632096644715051569229936177235195631255513973468380839352255302426412228559709053717820857575398190607775209729851130467208604626749645509184412564121059154796400878404112237243319900577428774549214726924512241999606737327592165459702219325517264139502412859766118134318073573725616041163137778551035407933805768024348721922801608580385487324187971778837979118240987653551579984859183575718857013921085895812246978591157284925723148647217236808279984539829235368432999479899250995610141724413277197946147913641359581542744291462687149107407089563509363451304456502297577396368975270914902453704474274518196386910454346118561883406898962045906891459649616518290776399748445625442266188261246075916507018001883780537537793976166798873383878810729128318395306016104247666967829907098051383376569057631294716719732265031742634902915502596629305852158853557563802402938896274164920870094132318785550557683848255001124397426883535629251014670691266894970336273490606162600890978662115905472256401000598232242090653848889565161104916309159616259099142602383546100915624499552722068722051410908138333315083342594330311918814781551831840092519801541274038748035199618428148076031380817002444008929425687020351225447881502354191792310423422560813833330207407364154246833630456019255183932446590966127787864853003972915527554581365355986964245280421736187906203878069248665906033910852370570113888592100884506856762107218157232254115615140421655333929372200971136126102814247905861178035527338276717330514583700479385319373921978951130196458045972418067376425843080018034089966245671075787766345283539315982239500401155356994966991973218793056554188748174705932566579075093512519650946192846483799178516221809686481411538327745466527836691798926408121484366306645956799852364669542778607520704588235170321297957061161349068406088611747343499285618945338262018640096673973204294264975286602446089722802339916239899277934740326174623194135250477537567014400340997815246327830571220594444990440329804242000411425694173438630693436445967050665054458701243358629388672728985621248513727372950574528294462118953766011934505760355292833829149031370703701685031861933194044435901976727530186527708167861879591478926235216377986378203929044848026624979748868783080550470910321772424007897289943434658389427932571089603746807689987346789151094372923440826677145183275038124712096638171979354185247340965540917193090769686396543043123939265222176348631876721414655004281928175754392372782601570530389770325911390971512877197732104448298749081605112505537521968163726950220494558935808376731747003585456890927972614179623042243167503246415633893627411720894776237596809709009398107570425287786289177888142053703052779864687954578408985290174432151075097073692163566316264168625463255801492879139512375270153299401384403858926162379600010973013818364988954974863991674821218640623169759750577930886247209610808562151043532884070061857291365610102257872742615403368582030834049120466734350832374637582828755155300499181972888862034359039595802401866235013421303289960567032238704044558573681524020150284544512867286532261127712717683597120250997166718562420737980161360362205744999556975514534502688385465069359430986191928410310710534463850070678038421702252395147259261006848080313565072658103906374208066022830078502622942161325155998124413784280853291073495204604605105371921164422127353999908926990765204647698601874952355195719036238797960510628622045129408275540331649023761111188250668379711610256907679812072128063869995547674862187735472285085669560684331964777416848461792307700269627942526769415713913528397542132568907097818911710606091145953424576354242589856786558525220483310212926214947497533603677910273447642989050675865997948662190825688123291003492638929444700204328956949569071063374515542788543501744994401457121972666907758546271588145385260252932167095821973391226968480012590747113799405293981710892910169360952382215731813130188692659847238455732856776378503054776258067050290545209529355090010902027576893836487473515491583112019333882849366917524020470511109544197540562365207734478376839159831613678344705793838128761179179154723257546050641200441034368043899955511363804014891491258899363414162589495231312821675980437627253632923294846202693957558171203414047681848091824428336726106536421399588515308013373782477655250407972689993277008062548339550745479466181607100367344924254024182071183574400970905318147420371493863887515235255434447485145853041268981157289759220123298041820305666148772084563137273972358672975570005095140505624648721908375040360504190203080769942303880599071392082391936672246861650892987487888986954444157780043160952962077676068319373126314631779737130808905851930078623282444644405752122677959111153147109389598455189467860056776677864561764096559546902263070073985760656547686857219926724019773945718505227497617305985659203202517581158893420612275790169291757084256788120110804208912413070404740879362368395635523872027021314915211161002463185914846982822860176948604004513871435426446850005882800930125222026524151572304090148658586812578270479461677101116668470170804565761778092041891885650394439711874251140104713416021893688077795251407885613495311137568557260008139938076299494261048214829451829945125825929484723505514387603266995920283244962820663574004196226277745613221180035631386954959197290069814786399749814802781377856286815124696512139486100419482663454908776408063620764704067509759349821045311925427663901701973734339785351808433518481057697188207003814081987184076960766314210449464815579794080333758461869611174884731457685464502905687887093967211100716074993816067977831104638446954209518520574482393249297193149191858557861504077387779780009920486719939749283379045476024203167755921254201503226529333222555555573044122987231490431591087082532566101090514116770685313088720497733234971268488089165622925450691769623206323639091566439530341192293793051572530731507468997965333625271540363982217187944904667929540451137938383503113775708820192544418849170831645991722984650418349359261602605363104826069106390605735720641653030499223708558911912203138378731565772911739752778223182896582601049081009330073240963123671370726547193840621196114709709888565524303771162991526895563966433422322522982735346451818753033662625712939705675017337699902018823858049005456818455271110686964517202464462294017053944021017545600744262254476173749850799916862173660956493644336298215593083057686610504546074247922713373571609650044948022345563854815034858814214585200153064585256327902912353654300499644257959115152847467432378917801201110912830901732430141954803745457703005293136576358511937691072822406655829055731305611097636078589244302177852318022276389784138877404119485221269265494648269044777905900688703415894683874291812009019290247069807880763456274856379708639208311432221985863935539773873889786267615429516903056246088530589430299568359148418294688569889359672508992925690745066929772959429258442133325783201889780873383881200120503821700393951803143659142549585382046399790766755181280981713138568267554350683467885799482778919987658791637475982867205365025236608912938589132553409483765799002943659075340378525355425927967816187891444721898326226021870604308209326482368611203655594488457493991025049393073406485801215513868686309409496610195831743055037713605517663150618512217498279728525626808548599369967508690067067141599178650142828750307652110297798504475471373905706618111913325613798125586719396468710412102652836994343764136083081614017712694735712217032221481068693270766105661177491381184623009016080207450419126006195402233560061931794881764799911828100767712350531595703852493286271360663394855442260057314087594803028992269572451182629955769137817807833202171468463683947463555832966512955724180417390553864357098190670625587663913265495126288413400445004571908294698747329501122905184220967460868684061075021705614477153840269849761412484647353962153874598218853575420375044615530193412992081882384560504261379131162584158799956482209598890107797212790409161647415368705189493122979641282594523554368432411136952861759111241055847364382127476116415997704972664028889266176001362175413671772616051146000236170678161562137326180191080813882304658527657089542534418905357460272538147390742727516524936883474619414135888631367262924188840446238537731475564105813991575513314212709687842007479570999198644823364931818413868593617558924630204919569576055096205085057494124395671321872057808668833062609035100352557298046483642848885692871174775862245551683676254483746033276975798378082609805669294825175439380084292381416973321284250492458186215514293967326983997385148107598847965651504379058926606461625735373210608999488341502659027616921776113084431805455811763040781239999139651872153586447653480099921775993523685843223416003100426720376251217455986534345940797754194711911528505283773080387378593946588616283862759973336084571015994518527003261168857456964394787323083604251255233265129347180152207608856221802464810744167853793960929982820804259139951033415510313098449273714743396380709900322924034172607194016569921823740607526531012827625929233718126418666074088423013791145794137259812912030125757015476869080312522529041909367438456971136308663152784276135611603734590448275139262063564018430638645679886924445752188350383081283793801857998503624918263984269138398722017453216345269874884588071352123034273278008292860338264784360683454956902269125295550761466651389197589537689583797900642064434632593855937504614992442583707046941734778001019621386011356508405970094801861507891986921522749581140466067499835553379442154806005492640680525902557033896280669241954360470410758415484247427166778032115222005453087724180177509410856653591901085780118955884419066113608337667729343713564977519471303826261993460723729454785224663676933454566763726465014021044724309951217007987108648449573180126819855936058679845585938477515232657834532789613235983279717822447892381568039439093978160680253621831401274185025587413183061237011000376290134801706257790469613053103944237412353697873063064798864034155137525715768219559780928572666478041352847785133451548445693029021016431810911157567507567029915679016433579052472824607293749592379129589418132084449134888450660085000615986651177625853842809379833279275804124441991720668492863927587425530499275196346866080593745032911084002211172764668038767799092485362080741870350849731145442571816455270307818704592786992684752964411975447724759306854375347407750186323238820915628136381075632775011976093099078245609669779105772919304910008995310341537631110574990826328343290457701135365944213544661230211144455256787288363853089084751969085880084398772999007131108188039938692156989808233291409521856972700948706696551607113396569924229241933397373688540852370342881568547570713872029346898760327450329962743660193882700094860703149735769763966404742498231747060447311146524789907525279109865214522422853599485457584876186251093414848127209195178920252363030784923991814843922949803126023044415228223165805425580837310106861543551452837808100595418514621069413524579022291260493682996249439077254565763837151496835535477756724818279809522025957995566729202343833182108350589875214782646985439891390289863290957190646641973305798124870642675073541144177365658826852466482724656998902845376653285180081869457668544394700337056846401736812135681103813747345404358994248180343055990987468914674068838367544383081216553329077741395116260607280050198445165570922687079982997149410033362262953403436671461030003964833918232971377038177791684199102333181758288791022358453061312396349799145383486828450051463846315823179974522020667541371927330062617789397497658348770532635276053774170035172229560344713562660879677639930987842885441179141093055705861709220845347825311993080438698349596577630026255119746962319437735473878303003697483725966148243226425634622499168537865126201263349706580608691592826081240097745664454833331238802756139900858129711856162674294829089975251702382501029478709573620613901721767431637841941261961386636594541639665802005997419907447444205736330531436597265348524701730384975236390637146628780064015795328435653473519593141229416312630440180965077291201476553329471890305545250414559751546891937219959716703687797422705089898214239148802467564746221841529250576607165229953506613875999520087264130576638713542303292360268143140807739923253823276200138814210986808366623279378880639977589479509146569154368406304591304466421571789282948662394269666687613536921346121103130753824530039964356326444290060479221753555160913457552935858949696962998602068501106508758070371047685872846591569891151755135508473805877158115775808855679763065885996595131669489402752374523366285648531331459117766183707742641332828260743734719840274373313951478186184667884204092964685812575870062564683867656073085785858081423491245474143200292893277884283663389259709310180649859038827955326821227218759151108106406449449264802091377808101867883655710175329060123963615139295219474592163402857973822366647557660994468286951127544627455332066715964167946018912707695126881669612691499354843245750733098058104136950448388314213953145895853326670183981183483958573360276565160281992868867891312791861072244374431913352133665631359782509439067865102184616867739065502543166868750407984020846070615452533558155239694992394160620757022551149997260969317039217926238955306778642917193353764272719522891893069511920773377770996934432858659206798134376680080835141829646095811842963199557081951252446660437318279635053279600970605231656141006315379126290002897443853907726979505544319682412241672035746627064330799158039821628473726976484311007987965606609936564284745859468336520162336113726739441711450818226750009542324484304771264744423771645806647880217376976866338868952217257068259839863535967965067807345017452629734341960083262563365509886308498470539313402637645331503835398052071833402401349008778413785705417615848474301370745730493140935820109825919101882805570076554519873735076910236049720141387822034738928658706139289307018410081189182705886821836948068575548822041289401211561224909729106836290925752668732721953988653460521096546580245589461232770888180941063238590185415441623813634718112503685521334938885051312947965786126673732256513911963174107245880306672471378143955317510859966019240606879249029964425054590740673318638645055176466683471737071774662381258835498217742258606671820462499401495400309077989160326841575058610491806919106855289791425582910064648956625436103576543984413345531117296735728271279382898516308962998421727579334298336677779597064378391061525535930917088173409958694553489957084192156918786608939899022783036295984834537432714343111278769586531531773366525459581032113195395445070879518447209889581810170948419108837734355363037839476286686235571972660365038270393947826488774885117285274044178906218640610058748336559393454272601260054191023105194845774719860844920266028947800478768707640619486533754143457883890278856215989177359859764519804048115463810796702387173449739436882643279865064260159471430763910817237379692081414095710812062618580734603892743838778076850011465176205833440476402927225491506437233665113639924625237048988764582236787282767015278503649379370859045746624547356457549796199131281631629921905454604814403616464764781221260252989981281992806768705647151500157823439386317054180642067685443093932311204457477341985354393558310479118497551003233630784814785641464410844538942040719463180481391236272787021039236462491528792105442252080287795302282435715230833335243681642891437086586990877618260637896562713903901752462570686555027182700031720115718655241767165654476619329696942860907346212617444628887832110904974559396530964857813144021639040732289612354675447521499744395548869466617395689249322847424676481444089304871838012616924452818975898830545826988016111600706488944788963922511419701423378479611663820256769049855985784105831232301783890563137887710251641090814704847688633076198985465041604435320310555999137294571707614035077983159512249494137070939517917680650143161980288880682453736484339505494296977885641015973119378099473965859518045119833627057041028895478383268935525055838780770080282348850694936831737635050227047121851551753440066354215814376827211954263557693700705542219810361007401101378299120333914368695711770650113619556073496338326364234377399733589557264632820525196438762611606911865130151230555924504553334313302428603292094696251736776174018198534811956998496978297529287495589862003197803932113290898026203095655838562043911362762894309792339165005680011949231590634816566596101245532413424166693232525923635774437455061845146588240325299501507249258760398312313082168252324678041599269883448248204756164641277169067481316721456926648438043818839712695900160063883669037997971417377969630955734350013716654906070636298562079117150171779594990246468015583339931470103649707649134096757168729441642229468514624462513763973696003529162368200897488700497575546273765181390669343790341501150448344510541935736287547393009721604538474240660178405839151494995619516730440946042882568532405252913682936222557001171150206365931395572792633247905587229243241248098666450618623121286116929211794944970635849120581748287294027634267394120047452803520273972596005314657120238950782574657736424163600184319286482040831274265199998762550796882623010401593896758550399834912688015457716027973262989660394788607670516310173411339536033098528640817583533662307641154841947528320504608228447634772499460640498202012651182909946311661995592726572111185491952752545805301695365455400182106868211249206420304186399783833953967536649730086252705728171729043426566554530049448092540857981710321533080737211032472429496409509293356528236024189729003204900189091123931150303914182364650950703517882954500655697952098417856699404527324293618258443608004823505234670314237940417615145806311309147059912056258005014771990036030845730872716606790865232010352624482514034978669452111994904334690200771011266617744709039243918160686423121071469101600721689679092055829618879860916500245230956587903367503637082539773932517574221779750411742072317224883510337153148904759124960224634080161449269379458428830286280562813561595731480350272229017234316835557139249222551122437087830626409878580573885721338284983935796252853488519806703609932272832809394052038462847678538028166302752354488861565536248814190507678605854055829720514463777597574030686107623499949827448486891085870699031430208716969174218562957383368090084978879883979638513071843107311040312693798540585140352801969802057491995998790716640320713263998459903103732290246050149514338172135126431930507637809367746776791986795962602720417408222435604538121163344557112840050194362673868644733884816258389523836527341317548158815228955825844160615451610240970096729230842399148019130926696224693345427017727939288223567932878522560981840839096555243739611076711428922100282378592829627310197749220236293928441174999485400887087372965827577281221322993519772296090357096154168459010627303766886205530249893967186560629268448377609766411325766958835507860999786688075073416498473647801698736551850184053922110805273327791263270206184409632025522447761423515958526813435457062904090507589187877754513335825730260322941068903384247304473518935963361461601963943020537308019163863587215646397237914251867298342523669102603142822598030230144339277379271079388360280528666482306245677524553777704981629333996072305061471455400919122481084191373159565140609173808579886373815990083073960029647459635683024077674806517189242726854342070527110647193552033683988101834954932897836861285658006321673189112446846931071030060054757507584402685334023881844966339500761170873068543857661696378910549191358554643694196141686918938950332059304147894161918477636880354955769286309690342988503937552862287081315592695275290591790149746269441982286011579128236162722248593234398668438489038078347638671287070734219160850043630716159598378389612947834814211082191173446064501613477402650342029781096305541886978075122697445878237598774997514188544340068466742530466667300297646307974749642174035028246725630867763703491070175594162619081549038762186138913768101411393001553974838515100929060019105417498224698183253862934549906896159532171941458788516341346157764080418184697885318552350245911261237383999415098030208882974211049665503026826008472724011579204341856770336663214463682557236732764860585936652222713204474800906905816660394540983402026976786555499871351502506045549066076947965587909369161082081410088313640966787540972318083377533673679515080218261808804740433963398239401859388301510203002510866161301746484181359885732083194591867458517318159177266744475445465013516998491622847814681756363293390313378504994342917342272265862093278067507945874588661998214623309040458288844168479814037706004618067047994863948964253698017912293991104835937314634477768234512926801018935081504405684687011328873873611108147317338533648348535081235001655244694656455688479207278546029257684824779067656493104170483694694696923561643897932074745417843369619416104033080807378865470136292275063282703464539108406140450576486349119212282826684431237527603965626399052930624613169903244771062253289223160487018355850917987126544066712888626059922429521092310443228473306641405668365966478543547412173862605912383076462501513365113425026366785344767235217893412619877221090428456736053947986925095155206034575115799797626678071036403979298167137946512452267773922446092604589739542474528704229854608510212843673924385025609210826438471601961414017516672694283309149908599705674150521379697883656219400305658681214465724557951941555646076611059922378121495658809541497328342106683306811476357367856863392899464932690509478854413044330340460250332699527547983990640808653429886907662798651512386747074527969925529400432703757104760450041555593921563872238591869118787819830488908228400957682385952884275230437000732486236318998866919864445940250516683435122868710972858304582627967449431514444681533633851627039558605536619608880457037074840193747273961544541630864304029110795735248219206853488452880714824796393918928831620845460622135049316417840600801660677000746941886469647463770852708674603372422803891951034773092035192411555943396554097987323094194751832956589645907778448614777990386566759308898724779674560135268333893395671456081815228928344168034134864306325936715428409684108197954290606510556028475506903868136633629392184982533579271556424215462546577940046010049558643944536195621753521828336627245783862154436919732102174632358244336964340144628716290167614643340322850876088257847468685648736815591730482637758437316281820348042133207914966500510710512449036374741183676633082205333123908575494452980225968186234958575042379219295098453405103886922207402496777735171295413954602563630296506451923045917884310759383901840858471615930608732987579130868375914463132028022180217449662088544002672691224061515466575277393998928484491571154691885170491724045067815863755387113424977661123815990652161966640309082406929047804195894773403484782062690679951901273502571683249289240836160381249262153094300245405706282611920199047782742301592733430139849015912745205390146116978372612045149733098915897878548486459490801506235039904942492214882352504006623031210471312963366269549379098801566856698185721181157539646267861213474578371134524155476665406483719500870874198434700791997577386495015011067997040732095861188435925992103753736761017921348975033407534924160284520954821887013038082233010637578846114373823955611715370022608753130718049744783829776517952237045109809886830898764937160803478273368574845476537483789106414599673593250974058642548497542830638649721755433581363724655306811416240217651421694680641103404957997229216360980763607953962007513377140645074865595498017844922718673101023370280223798727493386548527430330965123008893226444718546918481835676972422253301890681548170498936948228388701964885766988594768970197028491800859681423040152337006689526202785287556106000794893139702894796846201297093044293436696838412945740481624880953140178268825847466087290970296942305945383091006052617806724230147862207711596609086588848978368131055417440023706098826637630877625000087753354592650461232112572254178006692586664013769524897002402840858832989305957905544774842631928474896685492937712323043975361022249909810575903946617084180441179635996035752275091335315227884732133420005949100256615437388318996278753803692290780809558078531912843778447906170061465971121205193169640961877885806693478249770580229992151395019675823441464305184226261741402964520202686172937393281349907469736245006735801794162395734550241505394705439286412010827361596090840054983248404979497561667612069133901732389964618438674069837678950581727149277552879313135353925974178626916713584661879664086105425018554469011753991045668322354790207424731513788168807224906133603932724807635679429062134428207531563425948715493234375966194096514152428760943986272692672006137689781478354803335122652023526379483476071351589783898620856009560133190968819447297410855097318327129933811350995591524315765523174188692689812028565061520189153922929586530651480322124031087858386611988628917106121222224663946350962790073481592122707830453437514079581578027734750187014308799054230981506465751977894237325236644428908905905042076422609337796720742773491894303938896321630709436887624768118187845118573304467258614943589533887401699631999838805749660807523399986624856192198250120712026522022017659672209649670358202774076090920042678707124760814735282365125801486787916400147855880173593137130772144089059250441650926312857093863152869675826372754734386360757421906787704119889680551645009233530308213995992891486573662744179836482558806976460091091442675327030146878101159408360677869439494044616865875664072724539889795781949847555073916899938827986242295476848949230712139502693926271509764984652223548043616705652382460760300959989273507205669230942508153817889574020199618125489110945045146016287781896155509372237568948780854126783089371876592306276810977084529999484910121621214755711416477990776291784900056319965843178844063384160038646422162736401001116236903278270392772538575796444728109953644048295688220240901638259268675011715744399104051666554646936113355410831485603974958590736658879345511843016985335332051987293913746818488411993733413883882597245398181728862659526391495894875379853270864006878017381258494921136265770630348184914196492951026202531310146118592009239930104960744542372941084338997202802718037651005066443322179474312949056294066605475683573419292697584243530751977252089473675575435519888610512037062820581694740202874335931234023072640262082693365727041008061773550604889937885896850078569226925321589324833857932459998066339679073122168881366975496412149995578827190845895979889823050279749077541624289108723669367383179243807068222552066955987097273614699100636262187938628788020950806027643208211229858467061436416014061540049732675852964008540136212141697197909571161244916804107436816863215618390118132931780514361437271427553319036478354699250253358837319137918853987075380100548654013238542953391092251870730882051033064335264350272288340787582380993058506159616473057516116197812048005349443905234748837088862056607838249185293327652073580760470975370283795357716802645728277319393351950863943494349872612967063383826155960234235766839243201599283786437915002932026397574927748505203873847932447256906664971337320024324745446096336675836973381523386979497278760011792819326940675709421890919684295823356920699209409626769018585080040899597874313237753634099817691649328870806521167831906684681495193541743774966177604638167025941410931175195142852159260973939749987024384546297072469091145563463288901551494640926636474555944753394638333587146395868536231034184808394534250526956518227761815945809393256502491624764978102824345023278599361089011556254441974902060674544342930342424462365952346136740466729989986041508591102121269868976811014096748342117751148753122486648401381590677122090323670010257442967512511065509950057071150605484970608604669274870092882255000258193551429473730768354768885690096799400228410434623969153091148842096064529692565508281903643198035944252241215238328009592748867686669280130986111494409895229985913209640401560240727130308199968574844534034400859409924866843133530913482973504570547378685671593258250470587392528396962557965381821234546904572996300133275877352001841616117537254346125495016061825666833858533608412263931231124203146382093809740441928989522943458699922194007780624598918537787806836972424134160028678781771063761473821374895719010288027866983606442332325568491886784598057438546219055582684537023540015429141613055709466395500471402435397786025405276199731249882883883070708409938309713520927749839864198295936278164461082530688206358214269379386186799378108266591414795875335707544579825943611269942203773211592971316085731736023487901142399425280558330499367246306975122077693935854608662349150162405404416989880380500221247587963383001178376932155995330315413758716474668579375979122153071528994417035362017340091720811849729101727580334122873676330088445919527856877555392392312698489219246302372410577687779752430535304284069735119418278612503627714232871011855538949948808701051743695400537314219949800540467254757809085519098769584594317899006771369964748781307773999929278161334924446168455317443709227164734200430071583601049051614105296864062871256956099256155760450663678071684629990962396522101710316656125339538515570331443338039774734756176909495893788533149327613064226668111010295440571639508571177511365431455811589732480056295934504778996621703719478625313040288001653884647774266995946406238103113318862287651292786145682547807073841766686095016993230148286566729938782286131249838833624283530001453274684433757350615004280207810979620129116533299928032402068065383330764881144985809872551950309615704272357200449046512490920853363916593377472968712043940520452983991767642065150025060108908591234391616231112581937517772831571688497555037624728437314870730843504465737918651935748914162194011597090126901267219066608695148183021603280806947398149924401897183235192833065841049695709038563236294301448360307367850819763373108884471077708613186103598147573690058052249196339115384550842859508433467582600114148732469386537627044845383498308895635882311129653537461258666893104514532222475182306935615012810816891761480916637651076159672776111495680735114489042108099202268994779568214493789479226742284396532770268138578610311176161428608741508550633122686768090070615048138161840776775629798875302210035647540111386454780708119254045378352432912104937194002651451323340266947897995758542100182766231729512116042422336008717868911951105059438955292083362903705256867821740955780123707792748236317384148309398493275790158425335236880028705557999063972078881824932673552402314790084651496430580475972882332618893908217656659800946971681615932248380487902729362257818236268296424191948474685492874127994936285476794686045957500403256938922878282655723687655182726207305214535308711361625431597568083962689039693525503359380785179189337182120285351046782688242698393500346326575511728217122219050812375463367380785086813982893832883674299809224709198315533413029186395359055721906806035502268385824218744760035426100894909777382512212577055168888640233576273653151280081972695434217134760408427756187240727269539246235129433671358943243935339438511872254820126878569946998865979503086829950620402356155898259639246088357486987592217915282382670525093655255782181291378430405870495645219547488891565870318367452561291774027134768753141433928196618146676898481707761193356388675761530167140229251107863161033902549772928194596213728866763060537115217509950756012742728366541047657025755188795801101630999614058803933436210558400521987228312149112673315927019405345697911088619308652638295744501281085664380244743968977796595275224224515484755200097945220610448304949472576628690364181718469044527805329332831164747834307672432778804326429775404483047025992397230575133125881256301676050347677479104604096890942831488567815775586238770795960775994406564213163214481946791720516772275294307441132340051759903918122021941202387205905281139261031623020946292914168627755993014164371672442338089127105838568390754416844617249890203640095166495520802542219484349406747966817645974911590269495690624783775760561790096206809278617937863932085354473290177286435044217637207852219323968906910531019441298210849585817904270386176347722525528477505146025118201426562276302285713896668401051245116035818160199281599275114465522543116023990251144205832472299389711249896205750913130061679128866753200345037432785459129674301542914415883585291229328807137474644680189141907559284530116411653873302786329810729944139136309109703504009639473074927185105036723651538463935989660008202453821824965753474761337940168973941795370109285981091496463730068781223325337968207933742241437716385337771372592844638198811810968216579556880512664757387942590385172071279491799503333258462862878611658964529446459066217952071624606195989442915716016600179037612293812859014716349812307968829811955691192616408047948693148659958856035031065198869723830003563091876128025976787187164557641208823461066608197608229158339731566873501005812861159397719568698701967678681076433209801807166131247282732840978002639479779835456527418045187364100362135468436969056845565818431646958846904820259278202337989932402998800403193612512471965430215796190057982349177750958204422273685903509182003251436877732218888855419667796763492784905081377710562138988473789161709261522071770601081240476611954186364601292836304602703521176394794010290499607403300300359621542465864058242525017540159110081672239589869906472159236036108269204571937308664179256349950949795862518051844113667574996287876784827518290192195348167709941409738753814723833350669356320049257642293993438931417965084056690349113283953964846900946430178308594652911229219197075420400346862016528613425139951994509982790370859005969065402532192384494618631525797767604017339828663453285511281823532583555695196335429634746187003508411940218000112222358051628195750615144374557462423252479001582608806701652103227929252271366078636215999498587582295124291718564939885153549199128327575253585153854050871282513677500720706614070165304927337001390264341267409761459246549618149362932797673379464158542149765206318694904445891518951526685917608580953238020961645777635843740966846713724731489301179720412570853662354233673557486984031098096609352400982793647725633240408659727702112624008966774937511540231179301012761280623423591304311096274796697792084730098580762265139338805098995963802561384623745787931623733829621333661382462141472301875186910630456861878781120514058237621584580501041555750142042869184077143129253973243722074785696484651456079880832843426712602476637045537318065736174340176527021813361187424386633492066222141751843120425156745542095795111931093314186802532654456982685098743167295028436935814453789418623275526967169204485028943810348619351149781217994652429420105990750142711012441761140548179191249353262139994903348267239947647204222250975022961489043874715534591289577926573562871017286253854103510940569038829121734577447122732704007409798050011587257626381239098792175570737247951553407787491033360740523563871947707999296929817272643200291226025275091792577687433577284382164768298490079379810431005289969861104050957135982964027150189825752003926441153468068219942244207520216731605391661568920573574877462226336898452075558862390718128824934577669443869048629090910816244792665163668762453255223140421707308470180281310572899930395105660729662884694363777056231273878517752357888349698236470060454620773735949591466778618842135494086203643495232678197676128584893852027035440350525085973531507041811067118085501955781859075593672488145914593331850893066397483530526485692584179990002553092131265430200242019157326817638371407445433067327497060622078341262013761060515726981372569018865278095820420356016293017051095444339457276013931444797197075734156889000610617149878832920351026957302100404853131832478094456237836460735744871891193404976069268557671542951626433582999409997745397291308795711974947130811914373464066529311141070968788113639945473503618268862589098683077457341719275685451181150073189321778685381860184018584878109663054740155630908800143325411865016865180835797881542518567774202629300145658814951340119141098931028059895128008165965779763303224324378000414427762756278454788074290512414366694833866861246955130870943512695395249360029663691953276150832896611086225695514261692185297606746584797381293025836065846802243287625641421988382921049937261824916595146216622161527208854027327255595280316087378804816975472760567875061690361343681105160462642081628925538779222414206847557741922474376690149642725572275962620804095677043217327353323425513115052044722825355350307997380476084246286575005449374399801017712028965816524819389931902012804670611858650326647903227835561863334449998713895948457429586550915154455844095399482372804802893725066911124932721029107127631755030542644437017292834071993545845548338199039007527384700006230286374149517553110573019892090470559745993716288001191688528163989648015547832734522033901115779554204147213919101074093018415112006907172493866746150767316687990286472922566646651748762509194755152328374941375570077041098493630143952240321000183279758801014054167638182403947562519616255813814492041570235427256811707484195436700534219540299114943397516779838185374288153892574768503798112057366374762417718994418456777878005541294680984607986072493011011529085118784486277507634442468512007097740088994248549741739792004445281327846250517256396001492792304380386471508058462803235979051692899310560775503096032891086116353248801214573475294192016638792713980955653941945473431950950072829170699010005999903795396907423064749442420067416374785274421482978116380875056011330195677860439693924917996728356702830806245517069117171513890440623841091352591653409237937049354998949396584827717693778877375409326048888511157183572394170739523413306068374772212514639026357522008668253340996711464995153062812478075474862665941029237905471723309773645050142764910369320873912342492598704575228913442766734457568008616137278062846179189939120988464093834346061778316677505016018702469598132780895799828660052225375748845830620497173417122407403923075615846082365322337702727909117497192105774773116372786600074534234807449970635841491215051115959899503025203293698958195811126455704004639858119932432101408157366738550179760081005943087067695253948430665919590690675859509054605668560348185153026430113251287370649323799532882612824183763593784598410799607578851478310453760614824293637713599904547081551607757990624837166228545012795509162004808202565893256466484101992797539889663236177157434256260682480106031190549454616582756776553085917223578753687686672514551366456399647791699679737093742524439856278341897290214318432357672039961905732327987779913740202516233104402370611131449209936413201699846747141051814664953793338518839021610880329839622374654760109654388430807764874889677981158137240441054116387278586348164808316068618937549577854569383991744227293570111519758550299147715820235957389353265102107658059620247973505597595357250708330136560653865146023301083092343725575832483203899589648055176267027040079045712826670999831118983650678720624918923988174880335780683078881256464328442411151104523028210853960833134650908865876391836191776304318400783280823253158057899662985862298846510174170862395231315588036881406407373002906005580466539377030729472353713782061695360831982521641684199497784812776248464138907496436322584079878515786245179296011748902080028912703642614978545935069030705415505477797512723742281175479655166886637482720436518110898808779741992080933519379775807878037045853855440102884506507896393129020049388209589102722752611573561310268784793262382294425428933355609268854608917846377660832924691569296550756499074290462114303992551823011705667876507439136765626134197141283059770187179916171104399400137327266450317858254723171470804504147959555457891610791248014603299813167489057087236744654433753409743403726137896614885447472897314203155212476025057283493818668523648571926386827617287883134540398281659502749481738623776713063955970901898820427116898444851058059357046737519991482395037584387628868852488745464378586688380879138195297480293877261368558326101695270988006228990514056261416442045881824796844661041164263276718992284432782561981973351317269627030551725704016203454140979545071026036017529107880388704422383523679370934276010969905776697088313662874216465307230166476301508400751445357445795150486898203043151529433871339273645340999590811404107842711489192057371065708824781140136371083015957599577239537622971573615363657926762187310813951479308353884020228102276033768723107057591303313593560936818399345834682133205811005560067789238280200966667063547301281531112323681146723799284549101042150694434049676061715544902571522934688527795629702128123905563007424018939118964486877686058223603658960918350824946253521356477905174535322713671565228785459200380164808132086408137433209716801794580391978767537882419051710236979745690330158139120586763878863087267591625287815238918576502924210653041752318602169768296992083282793142873442705046983239057256517741218840815715308150295327367261572757613368710173412933974257415736814072323155392503400399566636292813788815368761739737336811092137378979769656182231695856219103518113452853000975712366327476017417127552656317258431001302497626120924334863017857702623078748140959716375562933337661102962724490913029523414195872586071758764655396806938051139827210506177359546378374192165008847883896096241811504521152265687006020763448299062044236753906647822599194168819583482851012266796189750065533356444021089163863944308428996262457167170095774549167237672501811193928723297442819019993137750886059763870595919030975514868870367804519398002107944040482049194586608251115388907174470641021154849297390296448484034728347488001670924450346433666784615859154169499512648574657247980591101919164156154110031554835846352925777623531077577864295034620399878641936772961745366614111228403652327163431981234833007293202213739316005275923633422818694266695214584294758591480887849385678745824784713457162344787933706277157319785293087274059219137867485243524727002779855921140697931205076554357875169133972642085468798494360928866999664226543510715834790404104960873906790859119710430161910753555258769341306641788450384250687262116295326519427946517857458016857171525064090301887036282139629253824374415707146790228428989091620018021748777150705503959395716759473571253624028210082450718505284849369075382433740108224653615493275264774311974991744722222416315389669260053630593669429063317574278930585665475596383634282547354775036796773646384819562890760562710897360840529670185319647163873670279937689726857192738485823527035989384594335636580107894968233058099564007694481525622985850803423803967958906317068484095863541241798535189165951742060429550179321937799239048611744524642510661939320363616119815079519393649290522225275628013964097363677910243862028782157691271585016827581919628416451040053369309822731657791281721862792430738129198544623532405943399523266363822044769339461306855485524306101297432167170333812836287090560793619460811035455006460192366582564672468467332636125169096650061004425732800943210321795068909950272652488152387062362502170594713834212088059935630716488727263143916839063102590703366258136237604700242648052562124389895029369867790378698313859557938534628661228695696462119339083640862616447732277212151062516506592333817570071136310040979239528890267827349333417333740110595472724266302323243935690043255824608690661933571579320740408027770826914784212168484325474263480458387856819184143846320466921383083703323937081647522385100673940595733952043477069968493947091744442429845428260492676804760276704213281141739925523056039414470569465936094385045930714727323304626326407357418588849421796870920542231691536537493398756662445319022186700878242411977210046461421571373185402798901193800714938046380255787363508362972782945069584091784830061019830649339893174644178614572864326688110407386401796270770192946739002214418992843880069401879830496552573004049600991916686256746814321181832500361301379349400761825514942889694777776323852022899385240778145534736841218480547906772249443552092259449956636140764067646531009320630913911622338729044446638460871778057528755286763976238949394369356819182447529330396216600769958388265795476194157337770751972398422097302385814755008526032623789707248801398776926214313242089372831944447666932255793236610364546186702058188128678940834610400903588879315551428934193509304174012920422188315318362458300238612176578834547730404357914554216491375079837748590590556646707521784364808635575430455240501895437908612451181733008352114993561273356247247807732593776274955566335652551730186149955459575615546775469905852088606813567379354808681447290527315683262538413553701269075073229560246990141281876839456392514360605188508940686672803683007647277612039525929588928773024494767073201056171169763465799883247267773979091285248724064438099078145050871827886559768017284191350139892294858099195708569212433647429047508556907776590760055863372827849514604646750375824953996535784061456171304364624269803854638529567440956465314422261682859350188526196407265331760920355974888231658289006882080272070552089091071489504466579993615919388907426624312996258415805292025477985734011003434451904585239945366185827970052043020576113115311404401270756648782515659001390292997292618928275901996594367507867626452131293523257563612354371655292913046297117033565388846068338752489350258597015092669583443684162622769915408539328736212072458914077704752528847475532955702675785580300991049686963646294414578704877771237372873462498107257258551214576220478000457595826343493341877719691273559219966925776349719652939450494891447060874064664402771449575258395348605062298598077514206197354602738959782407961431146082917159615564281930924222912522396633804366383280412689317285032159680411344035677718379263166843628850233374989044979434788295730520895001920362068748927071486237443719632504127492886965137383591650163476564254185081270295881599784107063470937368747243759818751883624215325250505681940312954294746103315167477603053201965055098453143148640293416796180359185464787936315441661583985708616924832306339379018131310435423367468508357638563492318270464798696287055261713099165803543572364233717480496765581600663886161680523956118526897985191393453790942776447438754156461125185414515304024595533217856372089286947280132662902544442388773879466239110700520424220173585754499585177312030840814924519439577288513405182768154383493780137928578979069145534971036361524523656158749915534342988589616541474467504300322506578681108355284805096164127629558274981273962530422091935041975180186944996760321827800261153686548844445912399326563081717921661403487467210501141331171131269895224281529394966750985314866819340347063793660122861048344013812291677366648489054048478111801833228102195574294134647784997206959502884159820426006300934335843228459617003832390691810823729738961578954247646213468381280830437390421179563336777160532851649929271076771352791803180391096676426520935922866679378248218562104884193474527256269967983393557500560490864746529346157608688104032985370963699335477109833070485586642038878778857543226500937663271090289510467664509766324777034413206860590906252176624048048115075122084389423327375347052323805823255949650172440037912870360914110749895695264405615254746778213610614189201524357047786950972832385728904926442290807358273747262552400997509637048978733030289663517496759510754599799262008409920433189958079506537246758489811430083339840228711640766695511422088221486303301074186420074451014176551602578214969105132285244753380162274404817016529474813380387930023122214723944271364451348183426572914451680892290378534065865305439511409072958198150440820755009926642331290692798477615418384494270843376257711337534384783523247093297803553066018591635542068689430504678334581660627114269771284844266309721809927894068657951306570397893203791589772648492748647417257027301074856064051880007112676901276128322849755252488254735785515570145231261160537670583578301939777034895177800431609905664160134976898740774249549748877548590950062919101481087872384003260027178890681318281315844195013134293934127814158639250986537967809226825944892850533446425185363127134308310810879438474747558477882410493048549406239253706866782623750714869000553046877958819471676978559901422433502581702462188132324214199715477664794159771815238155686570475727215357486829363885539272406698330572709440424296715669419761217793070660564129699242553064983879719777406629040959935676110098829625848418205287446172419678509528365212922066624363705811732007135448677617279897424786919374736271561479491448298477171901999453300084728718728416028445654965724696603295018368607919956409265257935234670156948670620747992390748865875710051420633971412056048056626530581134183308666796445287020340818766644224527657414902612159597169019823956319789496168587108018365153317560717460051400610480122473160904948306419727611272750176199928998930422385357516034132955593467154576415549260747146647953139265824755261061316897320296391634803847795988559638258366189768556353047322841605188669210111681766330121442864782370160710476074934338233404014893020005584633518395753843519684614046904752272655365339659945970370870830895862341218628924492918319060254294187978779343682124311847294795058962334573028481211256443700649419894258161327589977208758530984147940811852975260944531357837770495830136893291538189663233062656313396786262841310888741867398355725289248346888934803826585865703727571345734282904143484494713491445627595227088792885395477491278449880538416473574440552157589826328666026983169270762644503455665972761593212712264994800690875386769388937110428424544010418583794919633489974824503117716265984121093829704660836452715389396800469905854565023674316817766602381504884347651502659343521604783081203409569806504405306575505224738103116064689754912516977030141750925342560748466515605485523581049006338122856408225556316830220600920875292752382357681795812468581915253632084411265423146281489540993605260592955404879701287235217073539648038509548649554471810416001176383848424664392310738935998251224624502330479118750682488914537792610255784645432215074703831856510592355317673974059266590998659598565680626591977791752719089565422660491249912497456628090256396051551728741730642714914906818619916371201138988225497629758737340625650212794239001288760767101509274042596790613491313289470587343645426888301823149143507692653383863974855694906326371542720109913684159922688713357469683176851533615399330233415952919429443092099817705850090091635223467562733036887169690583291600983194606658720565106771314213630515964116992308729397455026725077755463071797079853483358865211283748677562006909950823141749309109101655330810724023895801308025406739037100054602305005123893774728744268535527890703289349998942622177514375288440640819814829767607796828467702733526345869003586278603362361486752508986685872138971911013629740829622751128103999206224760740814229642889497992428434062186386003654588183233969534605118394987938640310171189249060450465783346473476351197451404872753509071557292157007354210681178281873482707149090397318877701625588089290462287808638034711610234396648081688480801978775832903342921278437034940233762664217738430581433677040201876328033511084035193406905205423395975900726938237360393287935993712503554652133209275728292135355062867421329736936574842978380262118060667812083400837243684224082205720256729712753065973313192585562401177294076226519561145915719187037831045399059963929264434176411009229672088842997034265602547159512253488454890324216885845698633351650959864510241254000711526218704428604778993567798719753148493503692760973563969956133382007366142373246426008698238228843836271786664456263382462580214084721461337438149514967820352448059732482372671960964890598069683368002466277838641990846659426805915904138429639170395175107891999531725011513118786570774790636122194278961814411701611519069419005839735748640740009925217657513724671889232979731661863008410096959114355714417641779730745827134915681341657661689917650902960362666429449056066048724834463273046216665422634914617103125386654360657429910477498519030349002839953215877864910654584219747504238282446179908179664609152470589728117848218370317660942055632054628971029319993133645733109697445815119264886614772467674484693808105788145295024404846087647059967125764521624397922003106884757456842356163471144131474605506915535119649355458941933994332241748770827665209753201853456595032382078496730375831661825113124336792364012806851050265626619304716532429070279293711351098692800939253451839113588341573617059719697547995168427898042316134583918641881550876402070768740504327606169444791885148404585936345463464570765053191871364507068075532809386689597020226118408448059764316949186826597882093057337676324262750030634474487406262013775244178135763789437266981175904130310872805295702648729650447987383751015540921173605273942443562885201852669399156924851192341002516397658594675451833054669857844568923705685885328376176321907600589394245469244669235664310292273644966433111806085325133223877708747794132116819775190469007773195461455746654037419809545058974021463101097932693456400425708409993142838325581339713495330329431401510218026975379573555408927065479708022703223130728161771713783724046974856746716401675126516543609775776605112643951439577135300320314152919120261396203698459532208701736910756261771194559571897515138154711658464659110417062983036680692282192221403494955584040020062867696299747228510503176020401609586130300981481257131594086357870287675183493638191323573697512248592368356869145641273266885570299401896106960273448372116851825149812465284377140463106862495352086445061078043464232273068256893865816173832691703086587560163329700237584692658890296977671993940836108483255396714384582543445396752486674659473142832854927375838811124315900032748521721528410867504689504226162827228620763968624553868346157879620203548419906624240781213105884137888477846658779445114078488968753579558628187161470439176231436900959981633437426681064253318844142013355432563484811266764058539808148058509312661959932745328780233352872978029445679085575943682742852156854667466574572337007600658910375123640143971248011608522670507115568564217579233533947278561515180807752499774277565859105236879465723442794005960321636213797395887496619791230070612762668558044015698885576417565825319564209945368766224605704243272853625821491091068541011615335213195967593116207534326323465306020289449404987615097168164531587165887435547397109037447160073410218644540861094361461588691966366862334741502455833163842741094116394728846465842792456472879998193001099028616090483933614188587577952841566649987658162029076066716042580815333590536767665646443026414428319248022097797843029777206621849353069928194908914286588928110970165833753874735644354729005350731548133765605232004153398329212714960294347504099659556141452164954999142894275254830891215043716910121744060360829510970765253080306075316744941478227581259063553292659126795984552415847178171692996786789552727015396002038371523249132223703524272316261181573080756103418275122597437423343889959187319883853980052841389948128467106656295890505407432031221614264232443551558664537031815934353921552645302910974077023861221339291420919476048050193253805259760067804818647857393022648924381710215807537940191098041871754319978225469308518119819467373828007031550886684565060322737167945809374454187395626954319163686483105222248729441988405166556284077524513737694685159708991813293148536433754595981769189789763797692987668894337586073526772846609220816864128491650759886714049413908896211944178208073665308100245618119052906387955537257360853023051533620491237777781518284477063692407223477464148614938438030391597927995842606734259252853166642690651154631457175437938259144936238942321359852937320287945841278874458666485538415090647464720438722978011252811306681786421106967373193145267983732481451911397404257362005224226261042299715455472714463410357558638041081665432403856811088605267982429607626438641792048488480555778038785237146803739172741979090269218182365328762531030634386615301677724513308242013188466381203678290779911699038041656296802072331469668348557476176405036184085108025703917328977147813478704564500656836416243240918528792438421765962503982393624669677012485063642035471080042542763085041947455479333851932748350675072498237668224966271499561678474638926474240585390717384673731923980150196213234101273638807300197971133417359410268212395128568743269167875687396646671378310085303250782604991859879417916069918731405505983601118847256170385633744901095694021396345633837036211723232789310053844744263951609292336051947257190478855168439821252320904169764284668497302322510535823774438738044116381909935212364031437875068104517943523614159232697526135224038430712565176182481410333022177741552960422679720560215515955680549615803865491815725377264060176310725514599808901752008730299031308422189530221821936747310069042363758631587371639763252529811996871659895857203868742830635578627968848872528627194990306986541239557402581935190075971431733475934068398786461748970568553157943503657186190365286480408875237318543236980907255177741271635647205405649076248791965303145299770044226846603894608345251207061724752763528436383947986600019554123995653426251907800168354363955668944386857785905346145457621775329309747848325095860851551074439981562485376740709443168212974397620409396225987179818324979868180918095862506652285672633276262801874255203601516813805511084645712184678148206469169712967639909222275706488430492107178091075897067123037752816947543923850634390612650889228693686323655934599640810389950426933660063689235606757699803089948560031604513163045653251385159750314792884233356955816102677332002909045856799180760068436422007712030830096914196422640340524974575906140720746097544603543532419681666892242602962688043716367739876637383904462010747042112865574326640330437670906072803985974827791493509761817824439962163386151520395688337726690621093180334790242273275725654252985778038527576233036473999584107433487179875284814993928571049775274190649203588862013601100784482234138283709807727414987116945577496099316033358278780932581722272679943195328919555891280168541997632304839595193389071505649479155110948603700689980060039784574761751384052000760055279891874457801046320737917054478284902178441483765902702173484125292044802581187795508047348631519366781526879494928501971452206632502979266672157166890897377120693730337779858627297977968304064128858749691834659654125009841228457791913154214872833254525875561545847445117620353662939466764648263662540480843174780538014962525944531963094221425721086352334704764854543413383712499366642339333644034208443087915874010301595891054549154690107400335247915720208965190055089803902360095460774509107961443130626413751662833122428960641134185739891289330448833266520045646160889746480321034685339306730333615477383520008259081714594080663385863455756615220652581595503973471954170453466762450117813030128122046544119031426718624945654865679346205947432438411941631331444913355699557332931120578374130664287942894923414556785407172150640114107806737521847596942423683623752305381709431706752732114969444748938674043010704853728201024842762835311689905879469121825490309957659380093516434964106513763673330634859875883315007693036187393881432417968286249773323802291452448004380198962317885727630663669468162982655029701492431813690326632780731595030325908853193701946852208816115385020907123812582325275102145218283668278689095794229656683064134895355042215721086271798178830697274108706915981272344591804539225038949921640214640712057383481330622965411332782957908263122468646426363088792570865467580658701368717482721654471050899485399393833278409654301856593333926848026533442562135673649548664416622488903502997379796409032407252741175392380881459236128836659231175366938683680725579385532417092893987604614661290948381747855922169837735229766814520701061698317818255181501981420890916526369796923582832892024416755679617207886525873812932363947890547569915000171930227126130404824467368286207868369379680150848060831801683059167505466202109460773091375009494569067747393843693826150943536948532117738611684541249220066719835227733619526249706635629788168356713865267930991724514712745731092804848576937340127981078139603174607647543427542483990628868286814629915658328535044123393551757973323354345125263504608573701830986797695755916507968505200988154865964441044373820515411314543000926431903149014357700932088608914378340195218740467303710627379080653223902674852510011905487646704444717663381662816658257827286655397697129397089627191666332384837971534122866588041575276543152180672216896810968649791090647714887773146995002579287475068052496284516428291060369054705997265523639966352556063648413264945337017340857480493916092335811733478228642982586821929659356246387145456942391923624611824000958615584895935034263196442892582212143194418020957763231875705805025092792300986034699669571689154730083842976930593095354399489293298692122737488328238613869695600825817226253044230629513717195133801597632125869983361683907426712927346484651534843536878353532420948895540063687917915969966905948555111848914564787405921693898052604358143300219937809918028585090819725370650680818210667779704956126826370199886355128710061664141789145084216827499046779461224184921788271546437901762656184408130971663048271420770249697071030219971654845878261758025226359987294265251037382378751573796383952159496716193995085028736415615613541519803034160853585791818405954275191023078457774364681596954476401927123885415965192923765885987552047786725784626631290731465150740797154062094812510014732034611929619095379476537916499291736737978305790439560234761268554430435308140893176682737670291162817782821176300970738135552176091386271351470583158509175898374419093661168555145196344590379811098880887708793054186230923400803853823149235296568842030126407176915781766880439499776270270727025774833374334936123941154207673189340418306842439453938610730828331624299475334988610772195542372358360200043224982732289231978862827131345708808083548088634350840863855797414468184714583967855898321502883688539139677452257200707161327684281676050259803799380810251532211194775733169951369725221256678122081674473261151205523532401211871517266511516299370246898134771877609655775560938347315816667909422604588874560084565453583850228174706319019101007475681329323706319412205312137326825990384032451870875370059991008548505116065684929854977178447774581121255717207338393899819758305235658241365482267889131109118616305025968265164127143842785555702059774219493523500563093528909835933415777829804805564485490256314120481314200137294398466036846484804811463193213821532233247486185894791931453406124427243296096232627082296002547909896274867151703357864445550010881403923536161411316402005286087763280267381176757390300321633182559176615604374621441386111356687855927100918779688206660215326226960277035423702810487442351414746124652141052025065354051241688762077484498535548903254947471986133894174237947020355497958095247831710529368970729108237863840702406879823604793236242801379870085303074144196924719903421510225357422335120395173290680352218506918166843762345541612424312563287233643853121014355454671004659865992178081931342551290363639385964682305326273078209186735069533526647157697247271051953792848394321612943101577334765351569141215038546297066206280338017883320659947823946229362229491984106098187071909273027857378214010618715119312766989247229435628395414897279511441902777638787308016087223723546992588191662002150993330840710724645610135287358897317754578278026579634756774586534486392310255629248569026448589920377561047848340776385403784767735058065150872950701266235498626823031657908621110543949161611099904264735880076926732791066654185329696541392588934972409014615070381419260073989300414758461115225258810274216817714863756794327798055261717755369896818776385782514042907613943398748778940071769714443443899684091661396272798032070222672410232648692969955903270784709642313290153215262180638792277352962780683922869478653623547830590074973976358921167796406062344185759368477860216112464982084392286745563172265830464310658490304872093014973263466691895022098433269465713861284494540895857654261549860788700893631324007798024174152180352987698767471136567286703918568997556636520824809012762241435734684906005976640760438695941908432370650301277774376073520973972282911655944914682950650105218696799254098883950533025161265072317010237681053415444302762476624275430457802537307330072892237607162390497687034420462123387705796510577468166607419122864350440470902285721876707205653772350161727500753693619937174587480564489409878329944085986166608215735225664238215541071077803535107951318797630401479881293679718965064672891639483422192731296921837534297080963547414427491952587494363474484045695245791864541280914987905926624548878673868627133393095630840365157209369025605640157869589836725530596069720320073769200017236474434234393622997059499943446797912626849203834584726521838010411941409927751773424529674529999321864950859994748153633254543534464627698306326296531309070436997642831636071573671635217003741062514789823038939687937664590923868252546624523303892807349939210837772453381574412777830977255188471697920157055382146787896575200043074746703698059278056034057712795754914342827922183362978729327032728135392480562653111403812359858575827870663806560809101023507088110357927307211962300304345836064232488848083661011655387479360601530527223050361119105233160117588622300667623693084841094680906807643092096161172900270398378049453538861280676029045488174238660629172204628668742301603029602685723425822591677787703973552896732716168536851257413226307074953385704348838663023063711079608705584385087049744900918412919057096722355166314024241617813717474081039772921639016693816684397154573736862188382318044458897597419498270317887750223962311494220245843335554329040909987739409266699760821855947101503645636098481971567557060021390591926546287550515635705029305938280238116048440365432390876589194238296664677355211765457327481867439155597918662660942009454376281210274224265095943133792518439084972313390541055925370276203283646132423103901917000592148170412696197652223810578442797241655241631899603029682126845307245179367412264478121390906832158142991514138447538316760722995693296981789377254325746370166815737567500984871722442867650897577418165493577938561267375190192304320212532216038789906500587971233698083596421176043637568525877758319840006722170114669118319588403449894481425453337343349100581259283620114556323146161965671848592318632181078506793059979101032566099351804189464364555772561138117760613253571026642168390999093468688341928304115950085727784111009153289529561804671144718305150950773275961065546867181313744413617764767585805089797924493439225624494887668583038395729496578111390255555466507386707844104356837557740295503031156867775083041890632913199088929809088537197572485813348425457241342747728317659981153718252491285364888542730375868454157808652034528041329234968616949012699898902132387904693204026074156793037753429641941564654077434801042089230122911885298511646470637372555437952429943587391547835973188285471841575979593832955370395938935719226982194819341720445728723843221766837312901899828384538737304024843520974836226363178034138736947678984186068664174660623485443022736686208444201698472943937550974469108883305710934689885868069240009404101848099430649235426552916181968578111027901759869984551454590296111646537115989450353449650290207455154238340892756671295186345696966576647534866247898628271103266673066440489762422485364320321682912401708543901277605945402027828604021468115368358666516248389609978499716074854157003233608508076154274046630277721546264069275276021939638352651232394924235070001549928300601208584546819091140539639258957171839511691002046812230196419403740158169302349678377679437011311663091033353938375188367459638696852943306381286816087764004821045117056809701436623156065048705662860974106106409108750938730470801029205340316736736556297464312723415211039007440485936532154464353909747482898388820594920284879129853345505240471544059077349381316936021205644774682597538764087679126388858750154154841797113338362397255797178630619475455909080760520275974552400987752818003339435754462881524820862454792670060007258981231027848166275765671477183248332801602115038282716207542081256599165101497139752016070013121913079055510135965340596562282350934823432867199421763014181535289904577294939477730150475645942410253642275464940853470567755796517512600313319502805659196432717600208609337441165415292593081852443843266263472328265088164546125543013756183772368522156485604065353707949378382406138783051564629530777573289667822293859581673407789280054962120751659807037340020518493332504631399665153200499422883077548877841658842412755095738594374252470222969075113978600035423624709627451303034908584138908101177865327618278496035332510030867356102065501347571071117807045651249465779489370858354193773039734664948812857974187470416649026245434372004508920798977589569141584677249748811092771133237685486844637541836700041328212616883494229125490506119493434225812486999659226222117116707852767567818404271993044202722417662515284403221896351716116829188056776356723681158843123586675624416231646228165063985494543091176940923167947053105961931633878541098638569391041348222186978174788871599428193183282928589901381135618100821598291777781911504622297470338692385539515990159500782354313818623536321608169527637331869456259176665675277097251163773288939270292339476331271401305321292164842954888600172341358370964899653544005289371650193551614217518894662585209792304592631423864013255495216354591032297769884733676612117035890861645534368283878538197947178686762379859200603831856684473949444889058356535789605951015536387024677392371875762582369489464780180671024514093656296666034522878686928630532909617935751343089958582684814603281645950902999552186600993753771236284477384538221994015072415504850731009765820346636934497453954233844804624089482446133070642951119211615582507021217625586071287885483055452998443345852882444638878446746310757007154312294561827165469494991492993550806808413020520763629845410042143062681486026484656717765047706967686066549946259734250888186150533811513069613881630785727093349850535925223345983609931840591926248931272218159423764562980178852175617250335763344355370391153937933886133503967426700091413490209393463193775118187951515531695243536198421230875277061573559689315000435764795891140764001632415378571256704244242331360331610765027199035809921629351861677629225800531901731863211282803599264903358693006160318114117482886845484278634274499002118030495028751300581093357705196772745368648043813811951291552562187930231838186775553480603525503344083209422686895725217783739716722563225352446699844902148191694246781674834592901437505614595112897919882601896278487383291276064903506088185011471045046165438190242135393085546016860724327656771348070304407850740064824853963218930709883480767472073055575715578862557477870903274138428419509109690212324101632295291314803693320396284198709529998015803610987849946575304190683668832095619659887218709558401990636589158318198205455043872839562818639438737230988693609344638910238200289866187536022091224909929107724604770124374434375906062751582221749975486710921043055523615449073781945191421136470385318928854554142075245594559232067700939358055052772789292476119486401335029749973368224708323446790410682504926946292853222899559088145348182342300028877463995285792889713518351458657432291764596609417343562131865938641267934275794283623081287133968330882013197086530626422675635160148016601349136166611933156497660919033323959756948779505489846679734590379720056562285154021201816983902306522310177435186938484697404889320126481077546547784029854261955778048298050759261097484451360506159145967968809376006623497216574702612122478746153215286874118487343338190491187441179471293215852016987058055754406211051805250586744624776252915804160091193248418933139174537308731503771166073052595954635793136211055246439580490352202716406914902870955701911193681761977563231174923819523730358903968994418348922391565487544663686144072141401960383179240976567350459142075638425509152229022591587516296009207640650859113087477026022002078002321609593429201455556735071307936205206237278175779076945561645259731218004450067710243537530606191289629759787580297169983622647161762882686186686395482230621131145334131457508748183959347864876989307336681858755093258105158561004757367564702461835352485463358356626130798901595555139866726769622667870221609088254354948759369639498499358293520641443005649136334052409407247785601087300244418199468983380481472578580202680932069347911856855424884255024874828238843594183358909080088313353517144303332794995645275420130667347816454197761269168442515714496957624318922221498607913682770078867795264636108654486717063398485395105494372098455595649355584852388497673920824467171871664627641341769154241621433549912656239573555496210083443944153236572082072277799440445866445565128412200213152154523180882290246318751363449773996439389142525924032675625029513444739676651429308968211064603606326115210938009419586495714195736169027905842297689921460726187517292188647278298822748202756358905018898874140678124161231533123796209786997602228483033151427658374007196858157894545212909502219371770636359861561662299623222825273848052162037213220981346557351660999483991185342397379731936592693144683753219401579810146235111970060774330956504715213690104609027366795378841476622616699992126965013302686350679943692455728014709012429577484970829109922314235633113804919132492813447610508337333515463179778847583638172108668383920529957663803836919604927110076327589743027351988885832814610623665813126340932956812438140103847196851402889084278755250281226010985203409442556419823018128836675939871121873897545038393676563834281622805087948804225413727866594721632530306113368262627647464756091936865374383960956700770703600087176861419686199928521243946399939581715667837620943026707581472696128564960813541618041806873184806067023880338427135412111496586076234633009808153712479980096046644554438084083047475443364778993363720702248476888894029982190841843141900514209790050903079567313269626152589639792958444796783297721407881457322423222513053463849021154201573855296356638764767227545514910468237323758190489342553441640682058869309988742304326162903795001240469007198112033525042179593862935130443686059722825788093464907941764754281728132587838351674605512852933049872857728624772100110157663898048287052417604979533322670329271436881946697241844897176331416853021851648599720436257247710420012273167352472110536373464767685808419558984242981233822213275906684523828930687316916954488653104455053512679500745025528118170702567916596076767909279500135307261976173737789706854384716083661555364918149147303118873153708448344118911976668794074195526489683407569397374558283068259836174739484370760555503412470271568048556292475056003564157197895879743757956161464855147263077433601733772537298480779832111605304613085420778166871200737434978504011720378790187715821540748673411936687777455107168972175609617564423786087973081537618316640213365117953079691265798988575801864269672363423296500544449097172392346633039462357929686092060210117261676107827617305457905349074515235697851707941016068262333651873789564921948798573907941198769305891569595745807934561390069208077830320439287258214352029582881749626250492291151562071125000146748439816170875889734240150889539230804469532438583241288401005099975785899577615561694076425493073049071155842308437359060787434481536381173082342521258325002273235990263862256081788271104891928692861338379719297964669103536100635642095956590608098705452681248200758958348752226448796852062867812701089811880859456604811582703413519399855808510083684935098468645990107029984106184371721643008259553048325644504078859154780421285667451496717895004478035624085499178490751141702666969641945919497498847876362707136477392182370517079267734898513238280057508824465907410868788646877870845027783384335572285180003103697191299753016000258990318795539116668415259053315680614284487866816794320232812922841274673031633996200137504151580564348363080961293690642809729064337348660758862991495656413797056490089674287121907299714028314965084953643288411369852137707502930694156734237403008307683367545356570977141370898703023237657364877076589252295786560115503859493971133719525425180805691068424786330465000772328168100860681315641572120793310077028965404918158025611929977359231612223402805700786071807424500084933403779345448567826421188345168843334092442888991002308324593762120890247654588005566676746639088541113278856284280114658437936535044696049382980790184296492776279963425306096125001753029917724488466846924909008119383840018722820730123555265038221793460295147682848520361903737772386690230137085840853660123761594633503944921788869311293835898903094498603085225955077203217023189352094750920399163197961851386199713036568039175411567268309988613718178857694174912938986174228735271095008239247072301027579784924889081928884462817823767512866327125954257800012619963043329985750226546983365307734225167100519900902793985748932361131882552923121700062954031727530566516643702644551460677582059646615799684786450568606758312668318112761298957482106693854493301902495074502566009649870754942849024147345900813086670431876834965335958332922076677919112105326329748648309866400582494612308734893667944153126327322003333950610875706168483121303507617634347643186689482673937095624908543713152277621367866717602771340995589730199500308133283990141820120658837615877256573668813456288315352739800352394162738932204991414391493413041037078286637377239235312947584916699807535909324846991616834918228100966472758569294807302911510742237016882064235338170373413764546702396014859495483762370186687261069471237490580534462585186552267972017288905970557988116174686273702523683987355278334062273564335601001346462249312844169442631053809905270195666884932457652605952157715333655111820307750250882610027891475874607699182581897876268099290287713963525418218118829678292048203468114616615282809581084713104938698472937856461141528874308791674794129651757310791255713625918725741488621148403462039058165659572164321662366856440860307714981285253823039748951761229135834428094004313198506249622736121246434602843609094207849284002418504826952500171033568755137448210895337362336958648456123817399441970458092094106817131296948460075791275892520209280405951655153166983681619587245921332536757040936704423873546805977898415183793908709848698424208137193094950415741493169563638335981789518030268677260595934551964648584922157207933125701314270912449877127776382379161253057507816500633543430297949839412053205993414002953259066779156338388397084478027696234944894994269103267422108591660826063089035886518931720316363827785045338030658294111093961857785534336516884610751669371961940253254478025831229102420804208659298356299126199361236752448597819173330193772520023221804819381927492202411292038232487948625498785426641228283226674017630357666028988227054661327651123749945582072125528546925160926841975702449531800026895368732337891367385366981024406981226688713910896823396157076415760537132685468213270000521166605989101923696473852336452098967079608987896996678140616955147008721745574767396820245364243865807955647854912712409863735140333405398238076798081767860954758896427412902692641216978957645238337715207287204268105386503090049127779677963455037595743140639249733075990718685860003889842224435907016379742193377255810703260874577441917050549367475335855587472872342571219808171897206901232175644423183071538169678172218042182252481204608306376754756600932821188421483467702485371026353376201669680893819775702217889727775535868424597716332287805481545509932121469184005544015526222423359669653071307384583868672613906832624585496940044930344954812660966714397995614297373251783256239286805888250139320870369103424621118739567025390327808722792592184377889971414740809747434204546822773831567537140759213052524036659725001320288639172732170610043476855481471841978877682055952453104587593827624163666972772249639146054359726559389739539124746789516369971766009492424224872201579678726901582613638900793359270053078131066866603657504324626481875321478339566053747713841209290122916677457428478340314827575043092255613468701259849883909990811878955337578668954874297760756333529628886414461933491402805501812801709701735685841849436991911005688412927219409607045250860710806720721869421324798750680026888149509029794007395380523199110716150389152696528920397875214073535669788587604009771102704526147050406016514045571882764382715231811096727122164554266486572820570459492288407635299167558256680526149602697249039999185603079795381870850938855194640336422171008158029760878860989138946350235654879978810594045600244250620643616161101739966412446089330727766509388545885755999324858186114438906981993646912048587274039472640111150530880741142314488239106247589725205890922655654265916156644550453036151113240549402378922827300590354663295112233509257456581684001619134983923711963023543161989379336279675052367924403810674471974382073525256274026500791599938100908576276464737452684318547677515778825331344775077571615974973702514695910433540940111425985250149703865281832460565226949552851453939326598175008374325553918776117488845441421432785833410077852887539068779252948145963526139713324364117321522169786824142934102777437484086144091914633911960359697850883903400111333708734893748893722734633549274324288968136970301734123445172713130460351126431767438072404360005550659677671408106684779289473238990088473932157953943780587084278292929896381035899327964822019370423579595271217810705655463429016022231278075056065146334192096568008369248567393950164152094090636615666743911173912563985726203977957873247150623651924014000098603111709861227531068997255913480511878727029555196105339521993946793020545159153626240957497670685970263663560806720921723274930051737596017502363134168032949248181562561674431306049144347298219173464084025210013843440601347650020333035613128971282819285315083366203980421471318613851836534933972164085943434961603027986238210504143679829347954381030943287745179613125505852121368889018597369472526163243612139266242678256929274958370787707899932700051673352429869844147482702113338011093803295694827709316737193674692774457014879897732373105641260684327798623545547065733297279252850088557848529177567460827064609442763197224226516439355632705212928676049806677913645188212414467708418481364091533865084326857989312068257972524906452954699322669797746424938693453452348939556298036594078850028149263982814286112754959414858201913170866841029006381739509591115328786291621332612154132669258738122114752155946372385491210547351695319453965206121851389618796496985651521491152455000784715757871782881897936484152136618045261950073735149693766925327727158655711780929841301225736839757319811562836646641505611772158826893546182489303094568090211299754351966086380992306354128432671244638492610490477058881824569638421170541493925885615564619722872117315706028388552665549103950199666368200288864482220566271928134805163476226809679654877565342056644996501700172282573522260671147812667551480893303642697582670692036183125651206512322029076462135344005331399424555139159856205004675937455059357292932330805399047213580109991136068508477462324307370722647082157648678361130940662477678549120079994012135376572260624904742396321318847369359388005888420760319110204438033115589480170375370381858613278724323314741638456614285517125582428607571882149927007187034033212588604436566686004327948697684851507767317505895061311104842588670941124241956353598138563124184449065746399655191832990592055696143812688348669722955397460962034965275593963680119831949420696257869015117117626878125780507012850689290279054268835968099043044054756324759424038091161633805027108922378984669988405752160618628457570590671863599603107089497214776596207945049516554087038417698088342522352123419950713255147986781933243160004200962330694778996818571854897729321057870309923400520493319277471059066873151533311540943413440022271103958126211171968423704075252044988186118206574947877772603619629337159254886823707250876453055972183049001066196853214908634007283457203024509246923638468910475159865490413401880967158204424408035885910562072105455257053656192334227470865743212460703801182484711898341186292443487860023198447895540477224566642380678626283902571938214959797659293456218660306305273839784214928118730644425029952511022963106274290017379983384327212003001709630828080269660831759317153064025176957537388860481173212046721981284427992579847065475838557210028973793174218934020431823565526277739704689331755348686247834122853028424414236911456886466989427330708164486591361264895602999136701295170548481335280370899179363465599450349961457959970584593502657625106068614309228112466532615107720754647697637732412122974190904375616626237403497534786926681335836147491093006721428623743885997114167422130599893330043113319566864402085946910338002393145894810026319237150024303078620298805103334187087649057011491465366478790989378501990843798415274427699974020060865827545763479301830082729017562599000232058153714427170512694479361745773279106963505760861559674503092520519057708977364655107181447189315196258361045498982767031260303751820421990851883202247199303918993387835063010764054963400737617446704965683284119326774634978005477938834797150205401609472241208985390789296971786034468868625363103237255359115474242089031384433097181150859521250775242688957138338172284819636207133837606062987843809224006901273386142962666006814518041410253387677678911398185489716359419445108607857756481939124468246240240509831862362176187331474586038252160316314554200396177338393406283205420170409727214182634685515115409027986841683222263739555166724800577663623379451779698952058138196172420095805879847575790065522532974014194945449380781487838031828241871075659712528189619210506056608955887897916724336069970853923705030560859808927454390717977819813451521214963023847199493167888804038908169536386970494144833695418050827022999841830427774988143461676837638026241693276545725548804305731886523801373493825067703981214369547582835909838851358491356638049956388308068765641324511366626094481198834998381862264693714326295439396816249247642030451896970065116092718258580530031298129526878671423407348310526643060442612924110161828515257283154955054312571647577724002440503385642370673314439438410402961732639721217224975203189621386803953654226858479367220583449218997119210425559534982282916881568139064885059353450726643955556642829860725871746425669063966140256255635483586846139096535954203363378074233142649098331879519572085924959621263423932757644811913352162917438522257774776643082935260397545991875829865102298556992151847996253467045621551281268547944883846965096627139285967067610582033176221476047150200549708883427428587794220638125373748224653223908846080011987755820591326174009917090166947399156559927060887797051291589445700148228040069716738902882772375740297038346631920276582104322917409967736059120183330943978478873431448855662421080818031832870738542666232949440928789021195406558584537032885036601603443287583410520722890577588848432473963646859355923696914132082343719316833426535690063442009325063821863847606747711508394694240098308656087244937678036354962177085838443401505335289857842793859318161588890783344014462729178655987688664562393784872881961044552368508466679890841555278850902580106040532860442389879972435168287581239850226691668502944604756559599350862947440378194332512584938658660193292110726576507171195751333350734742537972772171242154901872820788664132913081789361852819277546513257977329098350540726870964853564709612230433883017043221994484664352696400098298311106321409251769957656884344093702274590483615865532274544034007671819565881536309380720238562276152860864217191322138544843842414848348816082321903617853279242364064609341455615524982332435709022409032114368478871193146352174144543577047088478457100686424383581324174262899269092150876949008219106169227107126704756660574818139646637266413632061015957478111500192401629340000240128967801588217887029871552903189315673382247458427631211173635451453228046036064675786051234759239983529744394695846612712731317180530835687823762570810454345568876523700323962457677401589513059573067157278576387320776833883005365034618036222398832342641228966443670886918009446022712152009882816044547226158882375612490077394083452784018086437852330344253411706358467086894373382875010834931219759568007638281910322674970309012499442622922376150645541243838072769651047529388577089441085452783643453066083986683222435384536955158034207121999603424409797333674732804409039558309763643437197432951460176952658983042177062133995766606572583863985357184401628140476609337285789570092787497395228561200262811053089514743871092649262797382194699443816472255389848869048221111136921003030857599332567402127097147626485266043494760569760146759317769796689414727257760057931064818551009986304156329353774136926695328978658199921100392944871291694891620366023403374828954592355232856264093208843693977312720000372887582204181573522890076256534536592112732353143056399469073316286373578293814706810889711248058777598286267666725215440049063468007069699741828346941317108848631235666337344693140905734489312854616648367243919131599373781514838938986007334712782877379568961334271418909952130493044783700156132267628202340606556964294716063222806940052501551732050896966566265867697545391974729728787431040860692642144812459748923226600712093337564067861652671184756152121259944580459159398877209459761692240563672055661656776193719166518144151322472095418377853906152081947211831649396219381601435148774019706434118014069392428071635277221666745714697217156524877673373944654625456592260294268377966478277905538048395821926526273391808439672722986082601830075896671405661906172812199587291166006940747709693661334761601594172145697133653371604604203906970141977712391701436270147885574202501673691103466833489729573075790487966249125196282358142593388494556752788126913837888219710797291169554542963217156337624584068421600936016121054459814193385567127752752448610656412997336662728556613042411423499400016588591147184457741551340056671488052461577751090759471046461188612845158496824645691955497276016157318330026099853291271424566013315803608132309742078392181401820702656538542962666108742943639871866403586920810170507687247293623601275761040301856969844964454371579458060686405402198826593101811108296917563061627188516749584796849345765697984163850840553461691933997693996159691509011623713093583955673904943432237957480399460571652212408975720738515967486556573774293770450278802026820566857055887446628159684435117908641835362211249993348547136391701361627466122374926016975709112065477755324385255247063296437502858064827580373062106585428788095096548944796342132016541733844716201224119091520232389778478995353115043195205777890717918741526727556071834907230804626173816579661499135443737925290927411591322979996640748116343629621665065637538957960111469100552022646519231094636397013503028317130715718372169890662145297935262483519421652199084631547416640957490062445659639481505835801202781718208578703436341833117138332488262529713627090072479071359291287615351358284490692330681871384965323205633133024808858968083078876459970017523992508585602716740486046112836158957319214400643360022119787629714511888486647441029240063430781463603378764280142635090078401603891307618046662707822492339490406720396559672010518829046287629433478087641943520893884832944707433035856685833643447196271299795171007977024910972945043446781920635211942507626215467276698629904224466595263526742867452568053315312870002688892245440081050306713278127907659472631009302499654212116932911218509373647970372809841081693531559315383689536022541212768041482502950475701387509167747944737431879976859246750216077980980982543529527062635382496410677286904365230509393394325903183848615289410336477863968552315114498259130281162110778019221400462534003541566582872784213482581598197833019404383192984165479703922877137826290274448909438898779151497563958610439951572617848002938164403427312818847609952351326903619394759975582432301609462134280969335709639156076029938798216586550399277179596315509857926748484681165298767940684340502602400779545246703664246490989123397342359285235596505187150202129191995621299041347268749210515296189975074721499321729716186559691632463335432350097322481519928358836219789684933718916825933309167038932288146082820064657495870262816897868189957900672986086346360139951704289452304955862999762707174543635035705438441358915355537673110282673613922220860844166283935064871646622107162827900842451420678696759355163042476961953356724404176483829661831774300082710541379578210239618141476829650287603344144057215993931580645820533947485879019153221658304537403197690339496981191545911204322764676188020196802839431341886446099085739461676312503015432982115599358465877753002289265090931752325348167805629867862142105963314415440806432572936492729692248398151407950607108502514789448189319061253999956285964490877974650131192558949181521692428336869932672933184861401980137645907831228787469344186334091679605076008576038903278083802759839187353017867100655924359064458024480799088645485752580829354515333455044580512768903943903928929427323328374566640175790261655525538338808127471857332751215145300193491511281992540770302555044598658881525950823910418767198926506085160937993950345882505512874491564867053788630840644595425646035705055416101466247561413601299238542276604026728541534601661880659448113102908797624300741416045085960049717271521231495543270057125001404618652969982887479416903479314650294381046263868303776336728353850984061313805257547815324608805784874576555836613737392625415504138463539439539781411159614116060982016340581670311762885154822000302934979354838206137554785481526304685815916003011690758772643933796074465147374948770430731230824242780718606145309458640174239601600029118294005650218888970181931673838095375061435942795386881267459921505182889940565976377300367138153169392604748271222507472121867555636633875321147811415926857081904207835309638940074633330408599598714307511948958729743102126914028164842936078390340233048150187183271462516617334402631438195337266400172690753166755333197111271504033938292367203825404809874286838941521698029568806711555633679465266176695544735737216537224379674220196875777915268434398702443492018578477737481895314732199577964134906280153339299317011904838031728654022450818157153185615287867528224050318365514637980623535722515600283513327172647721545448442822253755148152696983981979139831524654368022358934790788258583737424964145667728784146339066368825087829925182341092601457075393765497281864150518909722090691293911093339373532372022242068434111676066341482278079704756807477334018791214188513029204960915866092596177379467614248276680309226223733839374314684956289466621399008383202714594816886075408668251970330501752617503655876654857541960149983576957685382728288716660198153893606778229224468098930003762387238213868590371431387893621956759090545200629011128034309850707556171473358462624631320209676729736758604475194696784636724983450204636692476717206521070843551226202792214518399112244572916512960393691845501321205895317540064837993889694078605265581778506863564396495710825472857318892929588301733808786536485486819911982824449960247513339229584818880177527598718424724984113816177124894438488825127205523919837439351410219813560061665764371025803950840146463803714117457584111183656356056644464485147397455971715055808648938178054454607704654374298781571867935499214388398035954716579904848431516887589247736715906755562801082122414198880430154949498009258360951317936349816019556828201168329807000238585779723145361204807983649682426511548669221988351261177708586723158154885209374633879059300216903534980281797037126989252503421657008583098301576256502858745859532539628950034937912108366136518264735107206111483555220373131979792726315028121202324107270983922748426431873373132782715510819286537123274482264281962883080587101541469444808378730137891504807004917962098209540822824889363146171916389292951994822144015883571231563412791449268998536573012879649986158481005490177783174983084035197463568889285959470383610035488941518214898924614229103999141521424272702239640051729497726558498413234763010200817294967565463087851868142433574977039725199976795971612911944713454299336291556021552390864944702909833599836013868764346332074326697515363860498786277744360207231557777584578204160306419279516606577748772598638626061675568769494199035084881769265990126145947910793771516980054033066583890716409793067101374962193670168297153966941733765900723400873000737295575332960339563723187062661045994226409849044300513748594883627975374869245320988807678600646117661538929201003074399835896266869412172259497846185529007147081815638006211419083618628427216840011965885989718589625254397815591160066603053969946423802053344977900925565471727907161667717377115397524378581130768372772396610497036731662437971495021964345901020357227845599368458984388285237832260899112862311543784172807967219611955392373541996825731703535530853065139907696208701584458784977937905650499128880920642794517025900776306388611570524411906940342616111794304856550341155898887765421087211104110301991143759814331228402085983030125896253528666171290301061873032965791336520863024087356299371923096900494102956576770108357769199546958682752984637860272608522557689933292553296150275386205898313977835550564761026630865348312278624348354457438348546211446219158103023835888634668491022241695001489237969257991527460812556489469185221602991553250476105555427763801214127099922601356533531180352038559868530036653406276410810844385751939084297398125332916559128785436380464870792713416125462007311196447500498701423284125038593607829110900811514152620362365962317107540873178397304542702549236259721132850579689932476091146408638714471966091349734074756786543454102109105375318785040940077593419037830094532460525024552935554910261797703216064605561522186766901743560743525332360135156188756478141875591568518208152099545197866701660511510350869116309444000978816197848131373253529758314987788912028362413569334646961934196966044165222572748319387771880625876005604268158849615529528893052247497393242388066677496139659339448938341721179327854929179197820542724521386228066352780865118140693500490727210366418461194120678162491254654664142387987475245970599427376644283520577910391692342714378839257297421532270505921190668507556638212435763902284194073777876732740965782993517440124576230026159687599628598913515667556733791632765761259194743923958778161973133242810898250733147404139714384430527172716688955649755874056170517661541874928448496346455875510093522106229318341480236826354145181862441145736467331600032679328780731329493356329440087329185732685081105488445577285113394098523052555652036530721228864924195359881469678227456085165812647168367179848208555630387431104042092936221295739627558847543597862705907975007242265688911080550461844715770891430769260642178313502024274419027422438744610246726901899279100411106065167132297835802593880429739579401136542371756036543769113978180124577122216194693665358857027569090905676953217622878908270711265685695162672630624317658500537235981709150409798161245236662147910659405414180234514236437267057842083380181258666662973955766784234746828733981220313723058699616499341826077746908619245664924945313623983739863693083951877900908833337788057215490395355456720771795542253173559768140717006006058849609289207722148569301795048897331296569856128692757166878609272046855184685310160396913174933684664803173263434679656412127225981335142835513558566564476946574109528399215159764335510306070100798186780109084147165583704853188515454496193050685479741226406297427514465408682613762940098921843700357885677741559751577635826585837935077481780953214833578304367425188913704137118169265025492006925510196317412203027206952842532084191592461538836838951908176549409391338792393854453856548718298976012594041692011321540712142681536094310354732256246092311401266992584362227812974679607578367096156675685856840609134196781581300676380973764267082957547677254020557620738389804830839288841646798495479266617579361545422977672280741332702304516577016919117480306495525834163614257964054870122187370790605952166036067528214751958254875866454462299405264057378037807113268596216879561548169858120113540926256483732556160875936970674458985817785763701512163960618144060930657870588100746387367502611865789390842489121649391910959036238540368525359754839564147556776301075268440639790440154369474974122194239687759661488780802076994266549979482778748425995490304253970738094575911465790706134219570539224868324260389580062356820796483245831025342523333034947933825654410036876828862488555436403086642199755115770404784654529146480039061546901201749414386281536446563740181227178778027049848074188697040119739789509545047896613332471875869921878972455707718237620825295545001172487824154697090538897995239475989086898731919327811530484939633423476234219826868721673621042450950329448231000819165924202305193753095071709347568817937865152937335271557937792255764990965624958765833015058565701174319843821214255052772792896637019489043369669176983449528749955627390222576899846303543120148473026675005720669431349485390303133333201786602652052588197105313595566014163450090244877896109618478502290797543354637549564613309915717582032294300055003799783069416351093523458575739439598701972414856130971322824266393885488320945078151142908426981809168947134106858730084465355968493017150030280063211775052402464744688314985195118174959648387851946638423898232821831563548793439687136240752016635910531937933954165670923258834852575230367928514411873819441350362008743878778231804956440803425492878746006613399795078208856926286492235650564966020174586813811856820657935416827211154383387568536939245699361061906953649979996802185596286904160369115934582569381490877081921827912163732987778156047142092277720764046801341672639016631880229812399299226655572821971229355965287031410006485272103573152852078810826801951801157788722425009520063928024278424260571264215409156023021955552969312787091394282657991739882332733216895107246070101051877131937329693870240017925591466903309204877191991772725935742238163597034303612474300617318030021119540156444649942058930781951295119931386432364709215214999505753409674721622725386450748533910273160851240647506332571075631266455439621480878417107929695038499995930601233919275314744824195603092219042714952450530016232135347190419968178361338129199548102783027557780282138172128759509194272761506921545892942220257538821793091828181579704392107994715737391780007476796110666755784280361933584527667629096691034613332864720490391592431454898553592945891496453111738202848220212901821746877752027686331401886436907113580878910775698738446637743790534533599787028679417987871972148730570891490353867921419507288924698575850241575968174184086533408617024041008582238177902572790395362773160747566591491459742693434199150409387332471732768395177743364457082250821379899088302466493563342223193497159285557153685319674077470495931636177720242998557025035130516982152442704961529163628464911527845648285550142803898185827916331264133646384105817979267875553289772605718248422460652318088130773445225216751943579758074840061850129757314509916318595701865109550699969498573235260995008122930188882747075148079262848151367117616842103898632490865187926121890119358679010378436003375028314889603334553895533570489743036273266201126812005830465652529965263759993652130638144627640041314124312300388484671088826147141796965613415298720270443505104877692845886855575785861055695962488340260584939654590596460420536139616374793841658813631411133919875900646520969843154275497961039782412975634716020198017336927557726957529870188719092804298319385576031400945581349920780987743379136129017398158127513576089390750296272480406577525227818454200450132938030863097174715751611915236709865706240621766479244934551178524301409458593939335395282296785200990238689317950258254221944826536530640308634781415062410799302715729517108344710112625969014530332131924455986456176782579968603341888278440484409904849864354690391303453912769912958042818996122825737401707262951946718583230945541173813301062547235644261217321020778596531686241268538999711598511631878353001951514279801802774682920869435811703955774057873390039525314962794905942889889403392603540364739908961949320651595114795544410015988467841305988215507982284426555281940192067730922375212040284910959203827208136154010983002635585760856739490293015573197642103535726591384514916564650634261808378718838131505272269100518982910700155671892567880912427653973963816992109012252441432323335475454386821827538912762999320436564880877531042657315345461430971225135874209880139789280695879367643499749644698292037500217301275499888714846705194352974931248326470731840494706095167357823365561886114324069950268272991594578751431776147730350873153995512111763669910425489879201441413157878586173338762497454542450894091895347885646483311713764183019774838940161783784343438768428397578149051865539488728133333255086474768107174659734184751151747081092623204066455388366216302257555376773952317224721447318208153249703361698836675739082496212643969989248060590703946789095416061437487891643624254988929528922204185803384542224707443562990617808549716661482464818885997342942810888960549695146565977455630684241210515946107623468587302286670715540858411584121299255294986539827562936143248117648140421398835897987913562157251821520237712896889160230011158012500579251063417407169367746938909522206987560813516956467580744860847378813996215105632372558282098424548360303138788128728578006639693597583616318463403588059214612117638766410324356791296802702066246519490739231664074234479866092833755457019144663488185539265677537227905846787141119333962046883438094882249351219310367537705827164712217699819869732128632094391240708287890963944347613213606488755615843597562448754012926221121682683832768845173410271203577041003655779688058116668775737316107972616400110326260685036389613524643975004564465158544949588680084731590902937725482437302811953834486145689601534811739986954364386342237335758349483250481987717155013260029065350155492572495382875608909500736421776569104466911691231119800882016266862741102495875601446865112826199049695737525496592914800264523313543395980784247080753294741346305502675678382729773753301488470740840519157602306471831816983703135382996271987948867473555720819620403522453098770158129412769940511687864938687364495520822143477629390604830229478687724050593527930110872761656273234205549714414871685454449126876036491635034114422025342311995152679111587405462373168415308359603777102142957673829616032999892551713048827436094107694171583515823239085458070318515205506320256169896821870321452207471009634368559632407914695829126614385297926053074030081268326164010144099258394079680763228348452267650964034078751754549601585604227165311337958416841593360904684421520562171661646607964045785742166361782921982318728499146245033580248885887276351136196233977092421088036268497275084569857251811743068040609643178033849519119939691658111970466662899583929037108057106109884298009996658459225359400089523804872002998913070646378738108527059230148772734701599294861913079492604682521324025586527304978520788498512913301292862863621243344118520972319134069681451170524896982732852104517987478780765843613589776702459795486615340153376275398021175231299630885200371931906496420037888704366206420460686562160035794818811773355546717501890447806864728848446618497738617770755565503390880149050508764061433073476239176945537540574452392642390625491763773259734633751087221134314921323581570221550323430908682988953356690069194491572085673990775779670756871427699316088252889009324098820916106669928963600957298020442662577588367521015861375116209494914920069304714533205251669575740796257296951717571474893530520053878255051466271322113412274319111483813141942559604418621202825607998579403794192608976410309328808830050250847535318777071134067335479919639280089491269092006453927745904330718236523319381911808457241153802299727743804942627641157412606845419451495315198318711091230068085012224757300392066966057894820397790688335890832368235099128355972975825437547136593240445890940650956885205380547761539732483072414126947460366295523393231357497599832811108866049426942267458703673501978058608625805240824598850764650113503043806975915470659303567258649783871173107290048526424945916920606552700273378318952262423610076631599359863313983773560165906565783574044676704355641566774964186194640267209776304942159502480787457392124115325509060149389845087370015094747100514525413920061221804142542267770184498632267438335591245757937578911904557190748214454785022119349567354751288709936058645189643613201749109717557725762129627768692920931669748347630470237447269988596231699123884195285413274475343633536498904287428810882464686130863382313285793666924793551758921874354800969307816423680839128150960622956147688862586934132476276504852154655579785564632574035637889142537869812509225713960743619768282920532600869074312657884759725133164538061117691928096911358444253298681264999190225692488552098269753390612601962099807559264225859154669149462708293172056426278820401091909516387791955894202611083375929181480850083248505988687762872304010409053935981377137295085086783060491171738942385976955824558204164284576911478315810928875535499120999913646802959592757327491697593247220605860994224374949018661439572199256687707152609915494121114872697750561575200848614564570991473921037618300381631337068249683287932115517796264268950723415420707883428528398860791170940266664985149620947149822131831571116459741675602356647229753090964879347886090682863709798852470403222315368135649842538000388086512379184537924755051149643349113557130791592221668517350095159042263208685085715142193382876350295034010628937980678685833678162114959053047448097773684332496685004757354583284219123398156228290344153320157014301846378374158454973757353474829137983162127496159388301701172288663405175060518021764215506985676162244411100380776774234095696758021682028144503282339967057398068468411629794538337103934355914044113359822085410723807023056674633913418656607292056191449507425339435224880445474176478296179544338375054141174215706903980534105382317543327832767889231517328710358054627086542258570266520362895312790767789931887261651877904371885403313315870093539279330903366075931444570459811899649725421631633980704157065637582026214116736658282058452756857215560958705215539522424885267701821540690424984333538951843008167595900569710832695215749973856334775687724442631780782922191800811137813349522798954027708150240315283488701361070231824546879029572957720187769547854926579580872859498007282810259803655388483354033540975589744924339567061216185364338670628816418102297432126787290173470401220785543566133659607973796936677350093561288756546311324721505203255959802623707238206972033112437642237484844541916306218545348706313940735658153090382297064066998294242486331429768638394501223760410041227850934068388116007353353662988703643130550254662143500106236375933732227459405648860460403997822761883351472997372711528130564861265225991872637570082583323214582511416699908584314473677596357458311849622453484899525034997667364832821668292695407997525065222602042174142609371855252854096977657228202847273503455993369483068860169569877243227045308868634454813236193480968827435068732068104988395439176004697343942225583315852208604766305008726133492478658698055414110997552323902141756549574379825455742206521187157679264407594366371282044845623797926575604469732180784168636135141840257041388082025393665499794299869361740445575495925111642158706998773937448687049363544613571385304757012394746562267238162262702728739340009791183261419900689923016872778772467128576587699730589405837766092652919951525712257664565773983236072055853973440863982077704197642062083776101781057441074964521207826080526561118818238577786350810308450948819905315473032482047128871803407029845709563079905835809685110147557303758061741939179990917551866734598990440704175501145620045612331360586879800962168797382447393618465244485893726416270722568640198929825730082910406792110545588619561329711568481051570027729439912810029643532274993067408834822560791259414051387942382444445791715244965120510352741132575922807419629608331617176265435792471293622094341660467496963238052968174344225960088281555442009962663508969111988124887448756940793247190445505097534521450100826334633413749726175949442493446503696134525775201113167591050408677864315716428977204351909275218669919744172309949876306309083999065477125296769844642182496962528984683931466552023413511212502519150346155478965856722731557611201292185668618676532273441227204818141518649338503298823502280704319930445274881329046082841219985723296921921008000249503966413001344146935367701801452687479505522070405298325010523558918226196418126619395602463882564611234524138398896691620282860693545530935073771140369878631858615438326592424459391059436916650399105099791642283440037850030318391190025684936677583109149343804227675638138814137739638613127383405205434426513295620333798650723088342653272280016814021086632837200974305695142857876217054931915235785821492294175367746543553583403064588058505199701376302291730630684875672110063832465408840888838710371969589138945180611490622237684117299475014752367859943101347858073232961064545946713201222742465775674570651705276452353613606442230748674189014800453329373673227064289209462225172592309258376712508716014718051100079908416248449116317867783003138131277070093434260006348824849112149200422674755216967318905980168088349693008554775596225827403471500475658705317317274289389877777283731438621278671993871743393008671339619386238851563106705255663315126395627278848189018769570901364080489094053865608463368555814571500378441956787585679994425853537697435762828323716316088361332614444035869654716604013841663393535108804120565997264417042023589942102431862024457435079233682059073268764628136931475629581820252762648669899997068199504884477402619043736623082519404861235778693317873148105754015468534885667152628174145193643698559902432943632266978857576498066794879436110158707549181470084220641378444207272087004310089202298932466698573609689787445489065741703266600486766551017498323918873524726363211354942704127901350377251366199441489493757796915226049873731259940358830023841440403919763816948734022335631971642437068123892031850523265009470410334190162774309101217826090594962588409641828674478188476969102076088472709232931156854601874555984883409569368903849583794937160004687673097695690094946775293176510427048269331151785138845569384203563720665873065763881841872354107039679964711693482218127805122874954412767320252680203250275385662638528583329372305431982275160801132156025172266156991757876801538524550157316334835609100924331100943735740296541786038518495894217459020755641434184505331908597328463433436284246476265403092494718284523104032002629701333429265097842973360533544551984929900535034449684499353560695409495999435754919156622690244438683103244620654129563702350767947864060518656722715650935001195236905122187356827725391797873140816431130715798120324428601127705449419869331442274124365009149080983748148182083915792160718288607344607253270614609351643727782130225668194819354390084232528892035964513010504687202412184927948112511132948404642819027689616067737859663144137832552129775547715671798500555284105721660886182263388988107709337086400340904698327505071333672087214545576257046402049224715573412801282181363471855513912614192253989816127102186581545978659190468343264810558438905075666543590101562828769350679158788702265843304486000928193099526635949681602728101647220903035098777570305505003026209936191431649521596480515614279067964144842546187754236641421107121781592925309296164856333327481905052894829503511983103374041618722002226589752094463749326910486853394093361072932201566360704477266486582377000728763376052728163926844239299595669943102684945187243312827575771992158507754313534443822160218020917092630503616929490211021098943341987968401560177918967832660264727412382008854917901568383166452438330792345969673337530982694833347829022231909300172168314317659382664525747613147333696776724165545577020355470268566189079773387046486427828396881625308368951088312043136186566458076378699041666358143294380126295284556120912655928119196912369163339932543664442538944770328495347512037661951385861311416976250023780719932886377877112395457928632879844135855622605019440069998195947260280029328904915332530827121484543370360438125954930035392963748832399621999563806154356550464256675084369445236451698486585958526347524608569252337239863085987024129972475808588191838974847733802828962604976472615517970066670964214462881106874498338977802835353786175125524148865150505470900704216990144654302120744445282482743360119973935992075630680034073246414510866051790281240315532974046918608266237128248345274370935937729116603958750937365690057834285889001398805746658284718022883397613329867746760205666284992653926044027881320702667028998881026530403961818652020322151818429863856314396618629472655618897113746475497068384013392618520944494419257214779513593749559385006048737179686981712917119691693600263409172276362472868764699853154400465811503167456378117038073641643847349753060151521184325167080408513128810578892300129184681607055308290319818952043245370271114249393311350705674815860592622871483512005500429591207048300102935394230021289776597791821316569523481396907877532270690487625066555994148769577177044240500512073136508114114746709824214439610733445797928015174449562257228695694497326891277000914361803749764632518573470471068619536409387250442967800417935126961150795381117834812746802699531709831072427715283529236786744670943481448969656990489192109957466549726164692052565660362585875281018283052373841669199261075678183555993147627430793849112408376644360125790611802676888917686880261562867735724033871482884931268220632341944067643641018104821857818193304348965246997922942609972192180778724850695145836051621922592586821543994190303224394649641359391966720046965388609786983889427884917146506447363015959027519928410477690797500706360711968912639961340568370931374184655524160794476703911003762509746638011087653944687480035425456921352344365151527638444147734465363030656180817588257776662997066303517341201417102850304509609083212447750894863161177833297946760996661296971572740233961449288719610317650925753333721484571354563461258613389153608351566815988036916487378085143472736043526285651171325422624290923256097243363531184836068083212047792224468495845386975738392328706563342492141215004412707339764301662616484855718966317937135977180863108238517030736162690610864240057201358142304017548878460354821667987799218489542873709072848535441691482902919991456588991478475415545488698582221657481212558336527131804866706856955140891052786073718595954163781703788597549808598745681660690938676191292834606966394698078008770140112764144338278021810074961507786242060364712089160799776893834319304204372897221415308124726313150478944481694284738367319908134677329965865572704669824132831650857015143595958695363399738272724151937040436975961137409092072077828378207435438632718193622151744154260146559650852277398791764821108322643327891037942814675827415893023736424591520118815818938562378881174048982456436205502339050381956881599219583426084035589500826691036399038476697297540531921274018640809435211208206586231774027368289633414797343643773358792373327586069186537525906331675721267008040980456393430047709299852889930198213253602886173120411846820007225079362504099155510876744652318853693920107994154048818045685899541158337345602620672467995965760002214381808614526156249626179174530800773137391990727323995200283765385061046502661186958097682530515298191934969191658177726965671609228085820643476370737436859473891434132589366832377546733598184644882697905176803969291271269054682911867745123189470959141653598418753782370627340061982691755705957412310717087933538110252890763182719995638475713089444022555217973049984181525166015818609152726811149929245549858663298380843574925506600329141396426965033877752902670962125236585928932121933239051186976819668680325207332515554771288637058091495437146016060451835961518148470016529223324877464533180116421093834891819612270380152183267649592040807781966908883297621990576483346343220261289079068125320634735084081511321103030173227137865425480723363341815763993818626265481153048146741546991826255682396749319176525987438734746473945488053723293320825991060753658495470728888731798538768529467258124346840616930840207380130522438319417074326740641257281629195391266866107655303624620686030121339664757322715654822583071550260640088199338586287352815330733053448343562223992861966750710606146380525541907035069496523982937573310212221813243374771283652883140549033806123872792223604344701128855760004703275624478504821988468462468733930939989956850173563325518854798849657647128742659340593604750758762656495625688420827549995168334184546231811901165759194480697821993947708067115842612000773482945941455392608341882729382316831606837662273521365933553486342179371638670056198762373377283632375832068829479551607954383787512675577126411851688653053797652467753895088219498581803829117789970133059593848637271297884307831523580872646281787260675910311285489873211805067072527024281118088550449065231308401878342151417685695699060063141631268177190473212134067134230902807382756190063072259757785821653441946422515413662190175520365000954400805651550698780995934038842912526841246940952519534698034381731354002682384858037648990740831137133613675545537796654029851713342768165766226473288476690255397420683005788658369406578718415282875454453470371448965768814574543382938079912380793988071506800283694589265944269545273124818502458926938407264719006458245584883617510384552454792337213536761244440267164926257024366510859168592048700514412127838193462962943854771971794534265066421671878599879000618357016698952354866034187539200505079870750004570425928490168954482207504678227217451616040741781539282878031271766538380695904554158915106019266470899364195621579661625813571097878742127984274661585350039031563819432177962314453264840620428541422662956127525257087105648148975495075604852907179701157145427078027188425562659911063343660427612465496632483523461958697267546845919797859360152959901032001772157812540470285207334159446128417039986682402690032392672337748248304339982567916659750190171199435503487358183619797523224567485610740551585911355914625450974758711198494364344919322446887743322374204832763300240862512693602061680010351708370209165893969800062796163178133305244347316518732255301125300245654542413299477972584358464892951534383610604475981427998726728587841660671987208863959753540073804095527173006767740424248076544480567712302762870427186293879145551673860194034748915205444313275090666350020277364584419851066032656372684622067115211754296140057044050654400907963880319284568727993774059220314187924267517301766161213858777457720986672003945325295621535468848768901866416373344861892663620377768503041285761317656613537004245407901776545365405423696858033193391407180573156863910651996451379819223068193688699198702706889602094641193295796359105050923037076985982730303546743043352058670034844014586565059558462924360807430906223122415762097650794069597184623622881111852993696798371722261724871033351095072493156280628552410423455832821051130375307259423026912788268665011572471954200121680376198309100583064922957183890650933514063381609738947484129211077492649668586245307645236533557085431539775150281027409830207534061204226782087953024528660783881574947790310245833385413049741526259542347419275440884662350925603914540278689649438217237361618306358729066019333891258454123702701987144727105457699491708822126068482236042950929180846935808431903023229384030329627687537568922280303563199028035161901876888752362126285384874568941177093658284819301746174945756857477062476631868403759720371878394424477918482062486008702029880877587067552464356677568375150078462063333359894657084500749777600000415936420244143186768067744492476149444939861199362437083134996073760350505283508507244581151048388333648646899078719280286485952113739532433089808593688975310466322808688961762153578202070227094920906243112044157743002753522757217726139866945303691135997403065442069631795298164309222968025444231562921024879964577292297148624275962919064803011536990859794226869922707898803196324069106027671446811305448406498617830327723343139731640018549321743276029798465122005502045442092111176037912281463225251342956496702078889522478803526736374521786222602192546437832880193954480788235475305671614389466570749448334304886668381847611996025571445662344830283640912685357644961746237392583561937542478391702308468070142819393785523835918911783778950535764271561202195083894364285221174409716266513859141896847400591736220217100593901803752975550111246796087126970662374800286279215980085797907514560614929386754782135505561472271067949095365124762307650734659668822502096452480326828798675380672930828116874620570948319977848356355566182371094126443383389392173801585253120826024557987500018397085147978582748085364666687265131290526775610170091121526300105627712883305531880594069807765067282938448811512717815065957260033372972181309348034262199457811096920149049036419664737017034698857340499681927158241825887965309280666181228584772113112835570174650917692268570332041463173776118029727814241913655665520110930972419976091564583717492334805223381691658992862609200656742877336652648605629835807312819910796944899637800095470335721193994439090112334170971558387239310353644390891237455003481854087037520222084993449791593857477131622630718734787566252687502755054503132190479837177881795838148430943737907876670383430426217604080113650757929256295591319154314156506905783663266124610903901223373235306806026645647967626684160565048086575067027037573376211691809949260938719686191595839817715512444654003053943023215980477521527833148326608363536861892328739002164154677676600401685705014004377995880491722933300523310762790392019392046404940510928818690301089772000015605189388781808275086397052881406967055303764029580893891582764191120185026147856103008993949068528872915774060996651108410173316861606384013459912736659725746284465872790937267872385504835614878632661739850846894533655596078512762514201309784492915900142776826374284429748778069751915999631058987450069690692162388350880259532874751936129174918554777346111238609701733106974951003357849938421135744308298486953558077369084429849779549121146631778701215267479229136507560394965053960668524552963118206366238969966296697279184306581707557584389573617658138822659635974744528357242593746755549494833819141947793859241359132691627682768293847237705372503705960267557012260167739044076816429943576454836511937701120684196415030985383837844627009479979715165716368172375402599085103749368987241912392986248824017627654175257202944957413160544713689601577202517283038677739327922420819870988409284993187197284986215840582823507995154656380979647943736077635814160348195454003074759715714662256282394960191208382861401710064512664711048893365664592560386129244210946612830692210536763951028896775567772152577227656709387866345234958128072726992702952593464772953482791382948040922899735586730962154055459251273312942322697647740486351047254786873880021456674097156983458527713006381057250977764757803106628003360138550377190701545318249998124677861807692904503595027898275449451012662356856581881884033460851730435169292879848972642090301827486030382176379137920248261176604632591431235442517583814325379629357530679524530582907337181549898721312438247120756515443478817414949824140313414798233124285913726901171274534337917572553048273280275057046891909541054702801544544029277163731869031034521853560701857354916888014813801441177086790621675602501876752415613636374056832011569746482598477352515824297780483617060787097176580662020323260596023871274150742093882174325230030134112763201232819349456635934123146594853252814374896366449951028548037208682722527487811701923801605190402624921853819079926559296396828384785849443451198298845951947706818708050438136865497793725043640995746221829695830138283749592213767553645241566482318357164667808367495278446525972391331361584225535809986876794923484635664895096326035278601058685575162940067844197873719843390646811192000667021492836013932549868875313275108370349383608957126442674378573083779860738796025749674275478437826151910990398022386272241622683987982768958410350093316578178898068767875365406340303854545384654713891051590231677117698224660845310164045374505377957876652316189228786541830569962793466937029476325312705804155439620740710593214809328698603189044568357353158206092338519888402139982207268422327339370777560087830801115638617991166765487840517813532592110766123212596778745978804547466500017933591585873270941816745292864028005814052084311706197498549855952216432414948721167449091897657677846330944211465189918082612132781652687952247787216142466257633171464969758337856983242556329835673647325478520747251160500924745352639146575162488958949834780171940261094030995580781490934424022583012226418792777688155438927603758614447265164355584186584566757334488117363196996567448232906325120464052287993604124925347559275220296835123025819515845467366536705608728694610540113169606337836384499119296407006690062925871622745744750429699447298483440487765207187537883804095745771037642851642358889915035250010371039392247521541320496976096761324198445661953035508059021214813931929872689347560017685130322364048888672057030871917305061164490791050596556287096367842387706109398992690819499458946615362285200618791211766513783347913280791240454829571214286678072555431222950583593930958414799461819695781880095680294061468335254016384279116625010285894289832272287437399908609854547960016261781885996296158362186077485325255450001413483815241353891445899310315104611886137316855522977570338906963855562058078392963673893026008840721247652527531875259139230147057130415556672682464027501383327211433438921694581837682193225573298160176203330003486543929547146868113069516744599476826929501259356402120684219244976724595199070245021063867719357456157645958512945558931409482228010721115372502903383488571519431783337367417810953432654957868808386164526801528144088808164285978122881504924333363215531894026931102914855942152643729906895905821084819486266661367094744739629013491697590703142243776561766083488348138647302284950212848235433457357407135945551392093185061107148813954918068924010816884203901253969761368549081260751937031218181628277003080308368421808935312198423819612978246465375503730057724278015788695727365523338185706149666550379564220482028683419947714212832546325458316706480138958393788521176810668895072622367254566360230527885819673587656870823982974623225861340281289217355909643627919352070256846563338915511742629873208374437092620807198482655779585656084232482443057320744427442945503341439096972089538384062021758237775938422027506197043580619628114967349044891451777481196832220808030299778387942703489966223775944422857392045802837006449766211570735071365080378386510373584550165588370749850714852880144901743059383854397719296314898484340728716436311806793031868429123454195991954244362150908734251334664415413360886151330307971780921617004711247184129825396095940775910742768760467742445114886195112319638072662015256138089291884577988389057480005729478241547755739239366668689023091910266138938732849129859606451989878122715973746852871945637497763925075945625251705167818075029263954397072150329647700022183518885741014409610068903622348849387542531973076977276056630516220683182775130251930002846962523323466884225933308945366838445667512427090960182037599447328207066882939786831961173191292672746414166366373353327409876822807634081792983769141251227273475641273480148735366885039680883117764466143461087636101349965424129350624620491044343669866584069963385354905199223628374081142941209819389002473853052377141253260514902824167020400015952364861004993318304167760894544990781838034820449206254710744942358387854919465199774519733506836004286709715160482411902665355392823854647559658941118771577123389873660337637469676785416814405666324812875350181705412639873888390449344028643541582245977543511511124322390649828044925275079691235556770949573269030388802720176552781173884698939650496206249491477747211222463675005071249160568807315520091254192352543101466370958087174606191336007433634616628200437945259073281326029968677781337417015080782656522874198975786700937018105760442943786191005681471065951454943138566053852577548968263190984027823239731301700038541773084622209923391422264503836432405276610621866160796239548029342311586170901055297346764829444721724955440712379694099498963950492240456057705142961329407617548944289399446815158713379117907559019334477009620885323133492116068434204334647298905563696368029209973152453405577519931256299797623078886408384320515987393643134916831445011191019788088525092668364377727010994053422534681791847227830679869835114157729550619323314790717981285318582920114831048524727904031740481048555996033082439038951133889262647494772299661349286429889953326572687371731990794448479541573216705589771845220303302677481890282395921626591072518992715935601144528382813960233662841555489488394539501956664932465007836084381765692066588665547704328419041144377308214434286553319084188449641032636583039319350249771043297700785131118739487633886943900539366928831368016748049934487896459995715440278241518822872318802340830178349487589105956510331777642193450254442974483035814428525464526048484043466854526355176309757886352005370573714066514372677732690495061641202383717962405272898294899986873502203783262166241600882902894857441730776336996209938440973058027398854470634138688684379264298304413687601863420449739851889084866739905466432628693115293485560938501659422254811791394774693399142395377857311730991471928379728468574645167526739414809273278226592806076439305276300443040429907107243485197088429355665898437316705178275375768101308982424964237282845310566996793578502219226640399149489743784027725787704685980328972188181493829684541765411833784371470315450770900230476605202144433553338541002198359805506462853165616015496802231657209874525308854721792830945275780081148922408415387592303365486544324748526864782864579638531134176169363887591187481007409853430105274818703813971496758900198019515275929125025614510268205613250780355870187982343344026247496038856464749925135637109434081017589078333036867254836148783605749202702268000776838809741543998038817083130890810718064642540560441411316771719223512165408600461079654969031888965416257952578692549806452569915974600768458411988994596320640825790606992200049517494628922268558339742165817374049603166423516245534605303812722965515611536236730916112686833454724300935942736067911285158401352674225040029913003118233841527502326528846774017866222937730215145337169843384604088644770776072634475823149163922537971707759307993091846774621497835773709415061254906755831594686994194916282588889908048246389268066885315526700454056521854224508640358374631737803061433644418207430178326208358373559003227694485968875847433382063607220869038776364154505605178726581570133062792410591705628122145357109426901358838814017353754678135912278225073580917872862056167643957153537440259769465927395120699474897821181853743634653949029160283015275652904998898695021280702149591444136897046017479264576586698538763108873157352789596298281415471169893723062643756093269523547365748260863819128584918177107737109186971594230637335665793598495815683012804400675971301975863891978835930941631479595609445998499127208208454500302084830293440843323675787961006498649503944750264414862458104008789134164685772124322376822428704794112174811595851750544454240658389586162584370177577448071929824103614555892109168461704000277106145081608310298334390008839247192748391809534067352398199180845639768927428255268397025018869319907380249737348186879954900563238994229157727897316755828958195523113962136426944532401097426525928039127132734606032707258088622458031949434843505726732081980129117740097664937393235363459030182589004372961475979590716667565427200615007224459573997514641693861957594517884766802341383993045839605431802022100930640900849570554527591718589741038742575828655046647899914698192543169442517911756039433233681939716494809155595179789518045353825158583378667575667858890898438160098033426931037042107933163385559974453907422252773405417674074277111199688790888908747584130274309134095458609610298750214660079052886313335537223232023436648650557843615888808186118178523530058166282304287198166687689334025369863357898627553281851412322627773913728038011474611470858277228820896177704026386565035956157745129540706809266271717739760141369726894145608799454510886794876237986432038944820353925405059636381592561160674416349380557059882392227255947976493479838525268296157810928467289866069530256304331049409948079243015460408439359686644840166078240350208724074835638949099761339719276671637287844467242709434849668610706543854230108525255584432586101418481364568459777560931023298032400665760321774151884408501142894885459704701679172548655380797971351683311224160672142160381304005502292114297274987092315946305138589204787025805654431479050490603408312886180421548866729922157952044689670182338284142122413000239497133914857729714318361035867652078198446736403078713433245558425739992795243699107086631641531251542532050922950224879718182521659333052428125578526125400709221586513529972490317403585816422903888006711342873874390615455589889830327747029438794234450692361963758138924442827753595521031775149819667792514941791707346383215131715694622232776788108804874798530528909490493209486114343368471880290847883094347565967218341708761046892065199674502443791570371865858789169017402846056003416111865537113471281447538411973242980673476893269309766107851899138662153246288924229371658604642364854715624905209218593889586533959365868846937702709168082228751041291495634178972455400635573791937064669552662312924734553814934891442475739766944076582104426474871184511918632471729428694185770947071519063407249802513128106565919617589931534008994762508141382153523075334189392012626008962378166255888660971280568743311496944851676997179780655998892928338721463010459575942473157950954060862137967341852589669364517313298296628173537328506868073788522321154758744906469706882433489514580488466409962037918873656161146656632609000347612954552850756957159056150768293315234529896322564267565527254867386104333078908391368058777769399104763068978494280833887492995097659037124649177551263729386929217932537369490980148866175096682311324461500121242539554812120807942018166255897812748029890034233291844932225267093432659927389913982668288780541622786893090193900084538027973736039993588850189495904350436762396422825815558009563827431554197382132961025011469271071713883076554374247667526056957692528249362891941687324480148702029387760204795706555210165692967768545401033321481293622356919376084685381366207805321827232657913441478706752367316233738116124735547370972262264428323342147223558911237112995721055124430418817746055958750844262907199107476309410213170905441490003998173238124258395068359828615380932085628944310718314996421699821318102353698044342300440939112035004390252025852646108938625318671987256089676677809627933029759884822413087912461923270125437505929593618779191780434133240226550407098392808996283993242179041962057541268107860921213493175293388571009100183379349461412542156255667151254987115234798895381758038127970433562570644416467275371651614821413298364116999639485149871955973219656464742171460053476755740821212078084703424742608189504937904819269712389336656978101799492726560042886840645551191874325504444978839201734148898935939314869743992290492005663458829013499887203396261666247573758045166498703219372496651544958467255124664908307355990378177729025631115288674143689983243637603076827240517865778617601489220874054346252073830324540632396613614970874772737979353560519066579614969495035662495882637013517432732329933660811931880388116633784395381126558349640857812643196821411692968066373975506219650985845224491979534245825686765899052337832595819233176765338262628189836306668746123267859613704216102678653295590192232497233186642488851905469148525394705689278502437877157149483442532562747191251495332029197047686763757492092665692622765966592731644792302545685544619243659481268070820956769206933825476124981915615868762812678831689183927975335495196795038625294885740304213999391668241212730380430384375538261459216274110669848768865526442087711854694875872892789840527147488276538405156829311865096614581853511704244010991199278576799285507346637797308945114716184886670921588574235190652267297621396497734232855379752757150202087194845703054373073754477285868710097495804814816001327309733029719108948779264940780983848535935804463802686949315861133905110031811837335267573329138180299902120360891793950989741765743225777373720613150777595526713231434317956566199747344833400393404689677873962883426415945684456114734409258078848366438283527703102877885460321479987120458455800754765851412311122756982461311623198417776817745830139064684138266949372747529094419817733455297338930284617137787618669031561912496184024326295115430259875503747642072244759044939854266284547987983384761843097683878447132634251009044868580333364479195374067729575239842811968691783729643616567211106491197707166428866162239700841958202146718825583848764517866200604516712748809870667712802593011176831506602954119913638053036367964554008603703959983160042049678385444461749486517472112870104548584257217112325155756147856619410654358562105280572138603482651929405441792042526495731443363168685843133469202396919225777912201222897653674847569876803844872070555890924689021308672873827894666956991262616251230522525564178917494854698327978429240632098780120967028676007314904560776631017159828021270379682879034139649158711177296915332230243335200793597556849604572698600522366199280650492669428133961253779693061851932940363107177824060823285371215419240618905023012418726102344377853276796444096993242206978924931180789790863236127923262223734403827350377578434570035170474256161668494201328844970012295564009610116582215583420710242279631009730028570619627989586321736474353473212109139595861346436542073630205650215757789980112221958870069582103519060489990676600115960325299751882765298597177813583304781083911834889541831190389987401491509600427016077313865592894918535396908866612635592511934197316355939294524438284917067712600552141071178264422844008608139665034948737902637219516421456762395864567185870325669841482975771476900579989952517736943367667682531218779301907145745534333709307462006208206687573440419681638160544636978587823340702573092652996931768558500007394207428798574144313151028446359643058156469958028338609122184321271435532713629721830237089854703367661735192269984968655018262528452758146131510403655639060783173328912979410349599752169076099739400023919229143221729972219715137608883540067981730250778837101594638148925087246614773970538548879861288467828323543458048028602221076786336659744696885936915068631890856816814986049134965261691372281702484318159105940361024156196866847970775008824832097279774598175987889379810796732805106325320500111636995304954512326519878316145777570372310637877203189985314580300058239031884995368776230595448658603228659370904363423370003550924940071528843853474141778291285404847688450883692593084922701231970111169990559770281039761496110680381264914494815932399135596943888851257670432536628438439181408004591411501479087920062374748800386812588597008613351306088243750216066765243556683027130564752615310314984758948491317230687585432448419333153610491444080566838453323352051982158346884225365041869904043565389026185645899495226210678416504383787614892536804446796157711454027896325990446284937578314081778834865601411686068169640971100822836836931327974275279410788370140931379135161024941318054042059856471468795795886401580829692299641833680400707700031121299415204432116642852295758784664795388378755357454272149004033368200718197611361792712278566289801767213074831942073671984022315929848858903626526169696445668360787562627760779822457795368214784871496371488028880156665399312719571920745659269255781085893845771079325809048515473743503537512591476269365857147391871616207919910363602369741881662276340337288172249338019686249040993645855639995532210700444015750800962817533289204773529248942088065920480990575344648090450562706087008087542931636146771904794620542726705620320977861680364041630834954641436668063905070937476662677227608439836126100498786316788540636961563711034792575479445804389768537320406006578004774403328638644900813466579237937528846089796571397403013045163964771162486146344914885767930992689635823329655321382872529720604319804890666773195403153967500679470722159008171415111962905102026313696287804496118532621516342235313112598071074181792285185680014458466499747401199069043581065662155022134691046989654522957825971260138287947963459403114111792856606167572954018190605542053473687521745343937375734174618790773740468259049691260027090358616397827031845108300578696395181122960093568669117721063720083444728841017704862528611995645710540063213501784612944346753688382248196364390278979434920816488280352927762614909239188829738756496815942957250276019737901030219061861849723280807594476695112174952108736609830270375128050689231087871510391050502337540982789413798582843210986898116189781661605800230946851636557405036996612031785020865361171555230416896734767703386186913814511689459408038384893968035294447914596255417375904474612182335351119293170549771745526808524940855222995073705216801737299193735930515146438907972212030651124116468558605767933458218244421279236011237657312049705205264694910375460040070207124120127291195384256394370517783586876199408870243645388647789550777558430393512572605624207726725107612703052870109330763568364859481320169368297528152216934413226657897776848647239588258168449544553666651620807464702836338996295153819171352512340890487255689063877859839072193607302797425921993418019471429901701379312026891795626873528501646006064109024140458773414376841163934295139793347464511249352706210609602148867179565804209074557212061634354427866408132224720114663693286987874139063536434092645606663985369830077872701100896225365331928853027207606921585982062085119666115347776639264353767839069216132666137956386728674441845019064361133587180942200757288687585522515252693093734167290603887131883436678663489991789006104890460241631896220144228353384006559985122720733054737743705046459840886959436783717930659761731885772547794835471934164848969964215398317438732068750529409812081891102353312717027945461777211004419590252381083364272665407495392512311976648299626388121716726445298403240064913900398108848849236438629805753735706408301884670123887853222548291616759309980442296013098045487610977186104755518120660793850887965037021917696520937362108094236886926328461025241612978910004109906448290262970192355599757640098761174311273757350849303732092843417131523596292988676041510248152514534007692157783551657455989049922543253685338759343553133886690111729491881122486681080675451584193819401433941833447096159829980054018274607310918119671368958727311925824357485331294972498579308071920364836284572996485500989157177945117306451478330026991865585821908407074148539005268486931034757319769044881051058939699404532656991980491145092092561876985815172446123598580785845536002482030660630169486018874099430063045168933109552253048162935972420815355152866730197061328068439310314046811309499409527648634715811767219916628244299713789053216449210927714690378137201389203968188152650789633001904910314288822236836812502709177727074450033887176406458188281424601864202630990923483371907271705791101553165653727336701760015615977032431741689838199223665936249715395949432188854533630076997927372681971409942099986129792481734317285456782031732427147625795423616521524173498833331873733584995875687107113649404283348569227028593191152439146292413464355916980645133895343796600945716442043095032545353803852105780731292271856399689203472817659690040272186701763721636097476696659753431496354884558268309215112911928362075488347463644207927809807823585723036719606415964124723410402127396922158952004648816695520710046874946447698595902510727407709510102375099431305041039101028685302548108243462005881726224565092759590469057266652227532518372909177440918202994284519700367960585736409935937817702541338123010950292109721792037240618697498897900321828154309389483494905024076967705531127896048960499861418941726484829612235479835733810016437912003276318400133942936130415208676876130276473544565459773429793490100332606029036423165376896074612177193299673263977526190209704695463514609474395220921780632479622583587251931492882818478395974893000489023366165765140578739970167049520354693998362426845056702546032405452920065691166483846149023702665189482363790489487274023534015461259423127312665080938898286243187128982820320226298118526133855453149962954545655513314958483204514912003185198160464424121081035424137000147310160901490655834380405678149321821326757999710627810707608574583985859869658326310821801228952429248591509817671801500681820396570487757563871304893084509998212775084995146749247174467211005548427047484171364517123287963490468458026742312667868499520384145550562131177245520739938853562970861958074050459955878242928896588257257604521084984974047531430069172181983086641155577013493389935540163132652255663323895201947057845752794926026863126062699729514708937879231346887559686439218609108344613956458394056458774949781158257346063781851345982299585893545085646028213854728955613118679402435846451616275587339875500194413817369329439117120884410440334434601700220675647885850587399655584872567665410304749775855677285795254005112711549066421673718485546512520880082035589735771315605879654152141308770774294726749972254579585857762643866403423318484574497949394148519155906346045482833128660524019846317982485215277245147094614578164129587332147646847391558178936110337506662774404332962456813615869788012520605832302648420331183604690418607160323000218067959980050214445598132871608018948433164134169264148325042344893916271966524124071671701114071340649991937626146743720932442080117332790069708793733532472799839676744358943655008137019434375068430061254653320636054621559795019349265295124386675792229277504905068348979496704613012043086774131409943117586531031629129234467696040578320874023032388016169068000115569375041702316089581968982611175322581622449677717512256496868685049401179547343721964682028906925870776581434926624611110845773204145503246735149400420026378924523827992257530504300468980081747839381885160835063749631701832418453025464312555032076828119023203325345554409561506011827184206325830480428161438563163383414205780948072662171057141481582437511047346833404134211519910524821826457004810597150328842834701650764122325297333524235227307107271330937194107560403491558873233376993762522395922507083946642496842763727705743884483930645520595857595226144157677005292611218101134200489658213960388402622580193497890312014306691220348258645396749080046240186769652550999706838569534708526740278418827734328677483989916814473793898045877032048928966264649741371128067651659367725070339139142513256382229206827572410109046770714604283488086770702931582993114075782863210461805564207746973373459219038012595280099919221519433674578018639885396056468459085020770433575203611383647164347512564144015555812360457840144316468651600942400102706435587414596463862826979611383627533739832483359541562203930927054201945164427958342965694725234538890396840279891624471852699741853987907622306263130612289003516900244740504531041402931951852450298763817309267187511046569041354449595272724408444992992822065720582340908908347392431429353874948186550914598545774620729213271852386335521764685136472790565956603836493227852377452115090862332024443916361433905369548896753811030643712686051524655832009329414279388462545785881656187528424190990279013616521787728152111577580617226680554960829552095938351862262307324031605072547792935632661078607494060413501083748961257481353680999479316508382432409333568232900375642410741394009107984125383325343955871982024495629648892531190771107375716274562975330154177200267389403214380234510992894974662501328727560958400730340209616858314862854460088452113905633625884890523481996872057889267943696861957385941173453287959542985716879587328177104947549841410232706197750405471308163631266523760748441699172308989969772617437415251421247792265512134447575253493682204436353201581567800754560844314976698624156466106223556483984453757903600843568612343800383682202045614697205336897243858549581615437706341775658089246797848487231402036980177522543943496438450945064482389426839370721151813484243158577603242057684305990374806014137365666662541693584778183686793741619712788695107922501727709101837316653048108180879801948105206015584314829874040934081067298045713378267937322220882806529398213656000721423750560038315440535635959944160746523261085791258409883796379787406280159720368141188972231371333096807635940111747655243436920968058839977117723140775797012845113872138268025014931952019842773263808785881485090062743903427587628201807249806609357086850356511976626227474365852747612946153141174882300834103794544267427226816185376325579575196642530740872759789361829760334859933035004983844110852995085074593485050407983175253025926699590328344137558184847840930993748857572577428785386477377187884538412922566920436845482181778526121918034700291898268359996977088542346165111099796424779158054119341868920110116518805377243701251361692280497380478459009115763507927675635306867452419237095261295907589323489503147397547166152872994332883655189389061041494583921653134438067998023609307938869359639668429607993376713877331304191774489437520459954585783481534075479864829053202865458031321236914733882976779850115336288790034140357376826754249171269939855346869002428583694093527068848285258843142864606735226565061770584431875070254555106744124231816957670717613548039722915912748221766164205610951071404621062622382782018151511610292727839680268139286279014203603967294018872040135010445987211805885788596567557316070678698455527392255471990862822895659057848379605291476921604121942647878765026521668615865279093184294108921865557932268929776895629459196151242413798016203217597873326733077532057764017319610145680204026183469668294740209450974709922494073006903901933941323033513973970583388604211918343248691205054219844212658247665160125598967707018666893270990877882300322088382356574867153647494039121399998661758314701425830653702944624348143787446168997086149810107006492526855767451764524966696650887477978789502806435859192032985608887629345733501617815725163093572470087050084989104172216549122370660651129426883388974899567698026588507925251796199417061589591060556383667395669452448654236759559354376523454635204298864121517501943294679615349461137365589378330543055081858686526506615251167641294678388772828168324802056814040728675803527563608170134791582721297471886721089468776111030120402848861378808040870228872534504813182164129673720609861291546644469788299576907608447573434535324657948555090488725380366165405592268094218414064726787715416088256062925159994534851626096818676327262009928308802910072608385873866599006286883418077693074341286248044744620897272829143243144171553940579151190977104700351412932447073432115367767473030552099148243905468603019525371629636111658836106511098065698215381728516540264779680573546704267267136422412303767558794374109891836836404757788619262224364887716621207376467618463614449880550741766203162407175982863129062690985866543292428805802828436771890011326734839743061225153306700833953659981644976637458234922883551154158606960184436224690103333344062975826337223630013403813177216696913190734672092875787122291820176976536294878348230698827717044209491352625844157857749149254774453476530537248033054506604791657927380939234230765450312285386737813764154899487930350650063102908081522602827065216234080795099336388952129348513669206791096704269887904575301945547655731846079342277646890109373545700349888801259471799394513378232598724616791424172344936212734977376069716294718021214392501378765315009611694367885347720031352010828916498789706749167409089130654741188376146529182986693719372836732682401236186470474829948423424979537523128164871713328007966580759217869553702963605763127288555393881583043588987354995996214196486069007820939164685678811917436753251445986178412694547765691456455864421254670350331191542124161295927224797613911200450349119589214874811172346289706418536423747071120249694901033945427330353238953525013721050113733879805033802108430076775474188087816174231561166879313494956350644789838447821153377447808269982874765737787664065960958076434374534924654425673204560611623750687326927160452411621454126352073582341019081536455128484338717617009021349957580703758185509600053749971719436890075151523327148803617951822662303133340137797167636510055320960324875531064256190327474346184461940374310070444474605797512389199858377710956259378229495511058507689088290842663351657145020546990893349299209218879086003366501021147259219090676851789214483571533368824879987238295740802623529994183460307871430859223218289391156482603448251904293281279057846159517999930474381313743165740226169559126553644528809609468265965723662582007895125389298585629738850417622144609821090749550826815894176119614959998398037274807729053632160973933439883476681779060021376765673898503639523401288055196363540106815998624989385252967824644693235272752756093955403358392744574482930059220817742183586036992486361607977088952830602220841749947851116770649077004306004321676735664823727259063808470838343791354869581434168876588960482840299567192393880338689995666987931959936081488296673912233827571307905091308856637514855567171699755089619992421295368195288799344256489621041086572792600848091977721251705718023494803481229564986685045096274278549431192556296434389642759813412149472109743581886132706761830818880353848191769628337712334055628180308304479552780641129089344235680716649900586598353921715639079141115343376486546268426175357235097806799689449186933499086102955614820410278107125237644108352759000856607928528230327654865485816133710696472168211194936076307494601764764464602297600551115768042221814058370840216524304515915473592431118445357909203892385935552292388008952186838571314734417408257926283787463524150706582465675233214764298491363749337468264341062030889948101151854630054176456678332450704421509359705055907946535008047680806650189988308584466965341729021791476149110908041321038824382884846327429628013072806110388831839536301619384829941030527905397356011320014462117400547819606038230507736686811599630547358169527811161840897724245846295938149573279079014936814406216734014788442400498101775862306019033614544019938155857370442168810979909585430845120626258168765809074978954941806269813304802877113827282044571797950785589521882503941131253803954702992576704475498320197709355798146317482589128802737504762891349943618574923935442717077586058559741127400830492474287495890566649630050120232487900107794067930867543402059391313926709222222210828037029085270845013033107551821823600059839279726462087036561266186550440644490321240315820098846473956522202344818057264938047202304377133100234594934203647048124402264644930887370545433095905807950624939790060107690189767044715863578521121127342271421409711599143133174428881493346841712912588175126782550833290064761512816146682655362059918424226849999669731510878360820328184371166957385571995119696003164190558027941348542808958688151896518644098607234254098802383125692679191511894380594201358496630098766156861283509420977453475307770635966685008066933859346966466613964871986459652075101618127676032982699036373560206646186845756729990280606545205855290147560051899243131874669918334689121092599526760694188485332219747557772108346693988252111371717862728068799431405888284552426289109602167963018137625042480174141514116247394392653824876976414064590833573378097492405508528840414874583273725929667725534702015292456130038058661293341337545990232561835680109733323721043586428793687888846232986467713441523351713633203632740640379580013274440455119268619484767306393504974132779682445129827901917737433833406540571626119697694475113677436794336571958049075623958334967313436801780026007525523172364258109816314112453941094092749885147347682596349641763714964514185373366988586072609357597753179901258115339292380466969491124746952068935366552002496382302105288038114945999046181289681229851065834389795583012663426796138287630047472042326022641451281703195916763814936254145199494704187983117160229265511929049698868029999036856108066989170349030695467140722825649156610395662457320184353568286925879528488229649393703970173578047275939073278562185578569689051109699680843414107008165558135119287184550687715549589383299038570330909404787324127607805669518674436436681817618480852126584301394059780482317594074800679863128304442584937560447172320288012219397061390779811813274168515909044952604908888908688822774458006297119445638232557762977428371962081982342835921074957562525210497591086128380413666666323731012111187068826026180356016294955333561058556202243159309660702347184809773051267766782021923030345022908693244268325316017164411473158334655626284749902079517722268617413631936666949145912023934002410999145556305628532406990049274514831277772962104094703935618060787149973559348936853961209620150775827193655516014204426199233456729722773700628451654223546546188082387813462728710678210748304392843966201317893311363355188185701096113249940150246293723944884929839622222741628473089134351012878089028771708639897971908998323229042781574974695120671837483282796746885678276946435255935635610349642962543580816300434115289281277646137940117822416189082066434840541501349267254715451456344635110837134088923773910630922641077882815622392550663567145616398070615292186610393471589260411293886886623946049079386962615030389724821828094541788917578834627467610524876610474394560243801545342121295115244936551634191949858888240554445173510820301943479958239111540488546146523791316404003498256597887169916396793920682777880782703794875449247044273518056611840450538871412120617163670092869318799316410641570181913612226806562731721903610396507537157244356272385107995756630141678212526934914112651958983920689208751968183643654199513261151374659768136020089116366296782719308543709147115924847319870981463644449234491582254289843010585177772065876352076770687678680845519353065230352344332800810247230243140190099570514318132756656461833061878694686188921105550181267950732624500708280639348190972177588222955622022911389639678352223548182421963931496977310500166153631745759163033985261342967815413401099501906049495607569419632341934050691004052967373797286008258134850026206677682605810259546817068632176066278249160886274318261693899544543168459807028313845166490687566100341900020009280250857422804136704804995570177373098887938204470887519621954160425915321673067776143706673923450803926330450176627684919936970132253775066784775445762670908241462742246696727785489553794753632576679725512185526726036766060325467762496245485586175961335735825184002340500698361049377934827212596621028873085444931832445151830584443820629192018528653679477612015432161966680027932145645445275072252254855799291164617533102021136242396226826528710491094252363518955900277906325242416056788148168304880785639380162195209829041215657841039603760110856712222079868402965947118300537033459968144180110621563464742025801077593208098779067811256870456023103865603286522774851936757105388862955579529071922167430416200495897610955495336659117089264038174777788637355726689325933589699852984056504373450865684241884096611603048338409735493303532185690640581658801318088532963433956295580836371623919565813089101590665079695037227230345298608695550122690185030302755914835329933578336022227049721888180333893037163652137667595427816995075147637797647493346707887562441307910652947753981624735738758242890933821572308703292400143942507096263000288573784728270361544987197261875420295958916253067829411492909338104509261864762619965843587150894312000277907350025616554811434659726688786596038199246086352708091408426508833395345525617582218032640583283328617569206538727670313285350891659670970844874167636026756645342308470287577658276301806037103394873052539557112225319664093287270341468756970374713920189123458679410810250757148788020710447778920895727655281138986173232429664035179866651468445576364738551912446557158248787940217593910148115708412285300402006239566333383489462479782773856824768997923709600274676437238233467847806179259359384746086955134804198564050025961489726246005474816102601036004445483705166254190150107140321257956401375845686741062954605955040312818597559440627612891773988395499836879055051983396777068152853504959292067323461269758739590274672562081338850571111579734396585578229385308499346320251131528431884874822003551143791155561892922323773124605985386039966016444805258946574427216760624126036774087932522895117996121065021840303427259170213701184422969919554601610784933758952471003154006449671786515899469694022997206443247390715310136921667988905142226543722733437631039635555357529194306083639602029345708039254969608707471696927107748847355346251864626514329153634038058960553986221632555287221385963068363773030669948909092636418320854039257739149017069191489130830254705265229016901902970027017068951847651155095119183462498435475542564221706758843917799167397703200091690356355534166898611910530175503184476060403655480507658846085420677139048191923593097204266516757341431352517088244437403617405243073777184643752671367395064608678251075741214329819016513547315367738000920276016408104419377636182713764803566796831652032938657185776400714040533246966062534820689628984051493097944517857837797471838185499371463813107714187883926742170645562907567670888570747004454279212578065844955774398381430978631695615954546231172805869045446788475690365594538434238645139120287622518858590895510752093896984462617342843536482818712555009403488794583818930217914474211531178637945053435155163070891640514120979085555269656563995093215271210110044942324650817984585251554739899212391343853453541105168514324120731214616249054881328044834013852120438072834775143412150745405797252528609796596763068685299582861457981348889653381896330088345602980925785491845824119010764937869105288419585626289906035335964334458237796373898385565185365748067921980442387584677613086511873252586399484186970882389635461149522990883298753951245718080532311654401484218067305095394357399224264531670502023268901083057371065593920839041884455509116855393815612019993619441079174672885356439767167613652913749690702194413994747337435830878531633614729794869709196159003531439657479016513106015283883835410911530717007425246128813004690749340724010209307207444267984345374331840517721168354483638133482538786287750343343525851164038367763539860302034260962044968983517887413971181074016820033006385596314657757679172144511905495003411398400710144272104378797855724846059460022114566829259126958701118798927653819296137403096341360261225809671301116743301441619715325191252212496056614690459465757727083014336215316503932651564670776567458039726323963517498303791781664757272835892870108054929011824443372604202075711373629047141232066614378570409451162514817751590660230329145068294317406891067915851396345183150415995273021954448251715561729476933388282546676336870991823637179612322019522002280166357886070665659193169401629616085525867969659004288988079958361601103594154887471058156032997642438288722000584660844855240851556044746999888930909234836974734508721866899766818361490333359352160728981788857401694916109319409942241513350246523723506004028804159507332985273459194337272097154304000381382311808777147770735968892976943922884285437508751038136242163557949947269585950179725671471656955311916034060624660401992482735826360992498089215916003104277828142535257570870011209453369635372852708234320689602397830576412583873027981318316196893842554097043877830899946957942613241858129413085173410614898901956990923397562914826117364831865796438723213936972353576513802084668777841790374750759421560248405956985702306003172086652855306202443826811770882619251261592240792380113986461950291776455000651823159770104449810181828988123445632421271721419288024637898645248075007699109186509591188622699496841800910279374830917856032723840618727450829697488470562447409701834391962261406311676287933478302982794139740806254641565439008960407729853079712160259622517057327659181372941228937365308235283108545905866049137566967773991976914119637871713476566297708914042230957139664134060575000741711355826027237434452609372786187379144861737409480751351438886599628890087462084842966617963937488825646851320014891756096156324777129921941207535182160036212197712372567654849757887169924802224483884782881081889509048208977661194500042708317186698614960572381854426819096169178274523667049589357974255990743320008736259520299420325587819107717120917591572317236136216320322596760753868631839498727541377239213535520654637042648239398264172077296007155942381614576498414492393995846878416371793354390840815754865598345265134364544068352917075672770881390478627906425475854402514505664285330771476070505230479743932313324036949968456556642781959359602016030384429743767793686783782480351454627076810388925903444347785585337559659644249662790492393775399804210901360329553593076413543047627603436544599767069455207685725750239427310012564503388647246996436202031483935862978663850675126517987952548185625565653658683356805797385242335458226785314145988963644700626335316721874315333546458859977761634783763277921083127991499565540781770894026363799568667838019374992763616366977071226290847184132384778373198700257887041292420212422629184409693479620248599968975184145428921559696024097525825591822381525614793179519807795210376157583400529447514181804807355567164134159898302422211519102911207443482576834831082303888417254297488384766031448811585811387233555653874284633428976649290473544354825207576800297600353012838421372638139562454562025147001404045813843236493662955203910911143257367634694247344482340807699822744188114377140200388065353060643644766007255301094610616565005292688166454857855353329035322431359569605970615318520384629710992365296050411448170175782879128936971399388193265610149256105393054077982469568186604234614648611900302097463922145441062349846575927096837679983489371475290767580030857189285739152157624095512708082860319462499022560786375397769325866881238060299737618736210361276479553959145751516483336605228012491285342352859073726971175225354194864705355401631051125531233750805696514326326894374940815746280084317277776212343475080336449347593981011485657035243142222956950633804086524279993386377122682305070477195159614599722149848087685066417330926746765932000544990335870778700322353180735172392818162947145584071800843932268253617799213449050785553560494159967668027455295468122674360696098432084279968777415603377292505316803257233267163036472966969851559326035320310581991551760418770505248060012416390122547173596874601901250664036877462572747037182318724137135061724646046961658469998299501642941962144559406684804287017272996162925566480117019914253288406870692999396887966674514457321389303261796333984245739277244285278450464994802288172386250941937723374597905449107673467719411512909722027652354256528299235394847733231243545340137497439870652170640348473361693702744079864103571128884734503705973296959835295425008005868074073416059833571233767098467359336074128299312367941400802182841459943883012024404250424099089195100364901006873565564400561281476742800908668513737878854808254563509488628688025606043932996312790019064137638407883820946619154307500065786639210569063137762687308639518438616075727921628107929925060147293293167824268179389208498351476039080468569695958479196009071383855846192057986024103310533494961636077351946476143424518515010338306348842452011938520270162468245861950543067421820487024341957629731353807392263359738138013104874405405393194629509097505113258090048613305827810407022853646150713157249718749790485505183877526791265448434929883133244289525378213541444562343965332010736683414423953307242936359918424291609437490249099343229567581207761352041191297412865243822537428948356281559091741137885704271128148406345948232360394281247228141787761155839377881921244695192996658237539333363515772901617177514639059929796022931720956824778528903107513327443162151545350738229919613401676482405215919177683311997466450852115365880285520995344375444928782186988921274074870309300995314927311594227682383661099000912025566920841155061028512758429934470122285996197998148083235602501454810390680653985998107076080250286802948094439365104452524827073352809919087824678879343669744709095502861900826045732307165724711034534340647564899034903752092311774593832316908339569904263165115283311625070932453130379228114270066992669739383732690243429486187440973395454972568877754150905768958166099657277185200367641631580151352324933987686494636087239149352169234626979908698254320978774581698763866673637421184358829524730744603999112183506874672345897164198306453460497193736329544950183962591610892465316509665498381472969499070932551814428079296516370641256694073420447297360133765591386920025472828972926668626408258426525683604208602985091459078631205409287240502189174901613726475219979326622850745199417529614057533394420272062602548926297065189074097178638206117195166334754021776954277617976679066996436909067233469055758341550043824619133839218855537438734569841235673724745365269620037563166886997357048494974006282421123716017280531480629815043625208964743694086370678624162369053458115484983267302827817115797156457201920962750507197719698577530590465593166386912547043775433856968547066830103175525384866120586872264985912991888838050742946327150536513328883462214526005609474598104655468614628857105828398197788533787662266990375652486435649463438516432811870442909528613686061388403204767932686671156658834934699084064494124415823123150806234294852862699581974609383483251261992914883567161719213477992803096504097320494737471858559688325722598001470410948477045446627199146554793244166552496888900881232857326777375920090176212997538029280218162999034058140051940257587930090126430303366969335117399687880381301312246115714280623630097471673078363830073364595526325042227536006527114939968691958568671214615214891707811152124863995763090459226339166274982797464995395277015334138299225179571391591295402225447029945588718507248561117749152698639687195255312843223115536225453513414600764864759619370917600786351656690542825758033183015153386775035374254086054502684669413500988608014903890281052150535285343722191544517085547836844468358311254468993083974175149058649850273900879242629751742352856136625594751690540623211689711833075375805922860314645646902352083100908322487174677873627678882061412926007947541473088570097278230540236225757069812685011995575867632238165004660667692348613495234715660462764707543551668890767012790389097948778213353434396486381372195561058553761098601032808597035113940907296407310984579939739659126634174637179978195353220592266252494807159452381543928500312193733991476013672332719481528156757554867912532777978814060753490556065270598761229281584683503515987535307092670030711994820415139338053516612208829545100436116673679178044581968015117104411978363947471092376506780976385929099255611047518938135481282092134111993508707366196549742944870808907069612323803872607687499019650179318385696130376767036848909323368739617586727124954609495988374635724700321307333010123345241148365597930371533036091654852172029629603785195430060827873966690779243963265170566534514160305033613025932961296978216525658686636082451446392801473341611994215265737202905588968449859633051647258468698877067807015071097463467332769739799170243677396070149903343797007326169254920692984905646085095021277900137758869816091831989484772836083729708538303967825362834915166768598435720686312346467030424140382955212632506559328945763637622768085661277812608477923262802514076043138417466793348560184325185074604674873761389845436081575227636377866565104697777786915950644713321473335754611025246319492468899313320992550190611790615006415940165715467145150796284027329842401445775323867531526161305258209896636305156795643199476458652427780202519750318169344494577854219625905254197591541840351743119034008834280187040397053823449039453794513799402653722387201812309839686717618887829926168477517188329267750513853322991283048635854241626595898746568098003471837870841461120508202922189330999415972753791356352071587787844686894844563893019868983594655804793145854918879906785410774761700759855526819811855014530466932633263476471519316008023629952283368943741091234288447716603209621484762679674046751565308079801137746155947531076328269059347009547568295109078896225220275949517727667298879966210622962512163705297137883948021861220560274247165393333335903793736341633702774113915808832824586260141031707717392244562150072724816043978731328320874782769961757929336906032082703873113948575976328846174492462083278363737099623356595415546094492687191297071451491723085150489280831254316113308256566590176872213201268025985273603377945543277894580234328126408820341320143372101603683568502514205702005426738859430546637902957204980681446011070685620474973710938092759451600814113428238907250067314559732762216090844122541956573449089384455165424239005563469073754378130219342562838328359299487326522455046614653631388197517910781090117089593897759557052394688857238169072437404310524938393482282746777380051980754730908454207237758475116428749554511769752626933572323327739285687739967849141337445301103200384830699102279145772738103815598887521895648881262143531204159677526424501108521819699558197489103937305067970706836346007437795183236611819936006656264047359849528887106853764132980194883993436531622722951776902526183354388122641538836306826515830265369191521663495450824951423445422350909214594360921443266300045250016292208286015965875036043181402528992544386788698521813784658009762449741512796655597394708230602518005600155680171547662123909823042554082168241290048183941870086990607943563775980542407781706546086633934350745054702803679432424762174361519675077580429821094166778685879403787960804269933871804692331064686393197235922027300558030703785023413139366903037657303852623144725114221007828838770792573928198471148712424877735310721388255637644032205820992001319298542486123563075401324869190692451584263126039321350931651425283411070023044085264999921225508081810443917102049310178975219939397057268444959500650445310475618778132282869635590276519521345797979744641459202665454848668393202532790064702190702105849533078919337747736382702373272875806045887724341105673322586185515940889578220981712133321527538385718457990688797445518336124715978154819848207317854226808436601106796074150710210331613351882062219921975082804468422812898835178924973490219627111015855982980962459666862129312769418300350127840685011303204949367449672980054518696408134388534228845694934856339020904514301589778801468862118053127909858195982576428113905949781810788807676789270972099486605316373132613419320140042455652842524048772701290896283294306280492970066663683447809524140903304921458632788390631388400188866490432096075153677113550047191670884701643947362267121274385096149274219694913306277344675006827561094256040338059281812284972916724366409668452559319540310243112102640810935542046533757690442833459510229245119672247945737575394534285804886392726619903261446566048691658251909449253443015456186857582448693234238353812761090619823860999553815384522459445330499196328939789532428290520046260073277830019618116169949514924780602091643707498982876422911342272782900794433031126031421935627641142145488013400236901996279991517528465435168582581494697207861784219824780448885150480862145078895080271430448039273397463886993475446528026410706109464359816177444702712428595888639973500880703529180792812753617037007949813612438810379101150707347826208038107052090138171492206552893201875675577602335520909605326832509138993370995795222764804529706492032313250393188313186523033155997932402776555153007202643452453820565420035241302093113637256038368122391750804628902422314312866856382993974467657292487885883018594383083899049492123551150926551234885064534504111253746852316942716032836654854015072974880547296208496233843844997493477815907749027953459505686125806246080072045856113410594245896994536245093472788871014019833669363764531388934132196872956594233874040287731254517432939053756804501662495637141263479641417146940636907235719779990401188213462498700742497588789318562803619463052123547635304988322612155272238963126771770362479008726788345869566700271001047829389865984462309150042033161467821368674498543691147398674445127865010145360863045500907980004254787472888657160699017104453738042812042326022526903606088408243259302006229721786845810444777790916556041607009098888789562561063595915405642991624640548709954669860343788785937456713355510530347249993179148146000244007623903840682810606086738157931807027594261736603193492182450625774107071869803655162845351267680471428411009016363000438291779579587470963963156504173269687350471690289843546460213183281389069843418588117969789851865619737712748726528163708650825538083580267956300310480192175614813843499255806209055604808603321923432865956837686649252375996656530778344564984929270447193930986896252701705563264113409118281927408286534063269167567582490226870821472207508136223482414568315331120719331598418293078917632295066158632447356138621084112735385056507395562849786544086359306767949430156561888865748649510999322958879244174278729195078845100491220500862806570883454602917947827705337454403154707506449409483723858386045701033002807994913348545332497433389160745508544043070685123939100096821569664706954484971094105686423600539672903366943111135582038588565643026855591460445428331184004988615596856450959536500999237429863058972250886326843445923918324269787452107265286134932530938257742263664693738120502302283642593593688139770826940190663393354785576757377932522426578955438371801832837434603093614232071867091820697710494080881696018537784894058407869753714464933518775970074707173537574269173458815461531490251547532988039684891456962832170299055456945865745554832506506358127290383517667466282623036342376801065297697496224140911190001767263315165196746249869934635931716627356558623639580480203911492692864202324374177074020699956732232081097346027857657988960137747406894509245639480503167958315298476446897793775767313884117117713513280014186202441538003587238672308795595421604778035990020278636805464180155656565777903085918159835745583862251661024998236057796941514893539721333064879060876649579405730110781317297256595772440954296986213967363663839474076378909731869144948556321453887074223953587128450519393997420344144013951489425159738405884882575502931529775420388484277330739265862206955664606136340055891874113762540413551630923688137155114332014755494648882665106992298257637728147524188805033276575621336565903520156021834546959557522853484598518113448472853536595362067281173046532094164077938640931885736193714311618120564930855754118560005796600959159447679828060659501988951385989887766275034773842301169692857469434914496664993371776709155656382042825530966032466813542455500283818704555328799101507696121569441838470768939589556620248646071945584427310244141397674629563183037620715881239243734833472268204033578667909934868727608844929453173207413417900147880648002789776004478166424790762860775966040139450280065431985384276508441314989736367363442188800700206501597380694377839655166179267409995833841383468431302511317991505341358211529453576606155652610948813138236951620627148794955441727325559863626299845130572143126208421936268962289695743797596905515490000827546442777887230890534640464779123540943807081641630273794225062272918028759775328094209287472359247972996687061395218014450103148014435687766914594971665887840161759834923154389353345823476526730856462829271414740350918334942918028555553379135297971721830876552173113612688274849236642863226193126195533387851815978016246567747204859192232328852202425464030432722940116952866527013097837583490662013019242640360750159352739282889387107732562661661805299443835559010665095204119409613703774809592183277336131042600010334966870292484988397497866051315756371036559246988122116252105039523781427403677601546416501625485921717456953882512311549611443562427230246623611796190097466684715138548084812666100042659840564609665505108424502252187189330338795371514711881154587382271829268138713381428271551911931336847482481940826824254832687004782575508583329381664109026432381231846013078751704545098913120352249140297682448135948907135019319684961685260513239301223451922805542875906211335985802933871289358481619797555136618961148383991715802412864867039774533330573362644927446565405717392400528309731521093965391139169215498434366853099343220452423159954191667632712363886593701330182057037528431690975154337987419641410508518261086366788979657062372373303104454082427724778513878559414474717714908811697628180507555566826765988059096805957671833522915997412730306503363539711356362293163159127945734982297786905164746043060359946398885894719014783583553337545431549426618971020588692173262663950584053953052117064899931029838793312039628438906112845745155817285276320655248667153715755640198552444865769987291816164137425862965760732382942843890109919776512514350351422902956201250744780523770512028366676220351127790466998447459292458229243897436640304531808740857473072033695436568914176024639215521900326203595767594657797336093521212447379083740679375092785507130954486988558012575653823654697225066151610586724530210007677417204656971843278001120889830024580066627026171923002075312605883365230965746139524636278374205591377739454225113724749212712201144079799449609824630202569794537879113785695330796023480828954605396146128374207524454341605425130300246457718728270890967477836157043920618536845468295335289110633699839028625769188692907372227096690685412726622269509848922184501127421925930387756765773094929893979068283534702100295869232279571596206777364321299982835839815010481890917324152585438346418831950185239268881698593242096821499322273042489001034217224170535209487640775355264290801982873259155702874858743261789020819590582505242471991846412842061199113456569309792867423621934412311263769456132054465639718998143793130812273415971691131155299851484752612361940567441818125151112844213122057856478059363076056277256885496542333206695027647957425566549359841256299561734344348310533394331375942859415689108745047396377414437720917919756097897175609424774717922999011749958496452602560772929870822599408003752410920113975925614843087628942019427905916785303757188878805040764588767102873933605213360245747994303895869323359003488270188726295965868314917648272079493518556404242514808096054753180673347715887614543930473518624758622258058963914740241157768524214840525315296149126806317709799486870524468514302536100869453588397550027426911900477042603791003788897984641330109423572045424877316017567604481543980830771019270724981226085995958595026587323335050309321156832632349609474758493880293437816760839161807139576430920690232855654485006501040698141334678750571656212844422426232933866447864633153167690941703681444810327107231356126190769413965370199524564046725861005688949251368188286477450549103063611371218124070478525663370003988505355536368010335325278478731962642313908686472672321427674595225932182799312782076341449776285895445272330588884637845541518124749880045905144354580932553169646204496617559138524062640508842918452377549167213993308048222088196898130184832286177682671908222965163740531965838277715129460148808375927446526536286648468598455375012135762309559963031486180772811394861468199686200427135548358816002037371418534274231135102959152182869800900320988925051617412458390011158119567593789017861977740900806693925739261387709831770654422410185720923372332714016430077754432469346221775148179873584185392371627581566116525852127380863330098951422459491435412072255301249719151837212130392086734871879467218221642432357104505351101772716870385071416557526421179950048889657586261772875754756078250596370849634407316574045790132043181680311132225929368797113086603118034377708471182421639043300589166752591918737343906731665379801620884113464578698305451245712168026534063973385599939588114481407604552734735038771062173123389323718945703289804437458078131205542307430034399317331447801517965188578030049052301490380214923830568332478612869595730563002756333355955516520702441303969859247241599778656639511764730379749876779285016766024613091446031970792383624982701338832860138991750168032827105753525130863470450470681474685100609041369221520988776906786630339606391651487751655895671978532771492040776192435764565640321473250627316147184623128745681682461863000023348097026887024298698289254518450583557335875309124617118590030055132563412409375422974136652782745834044958118689400951990912202284389138895051121733272645202788479953449407670526375389647571146413093217318861941622389608669587356797431996847948650086285760237163333809954823853455235802743181083764986469724474403238863452430876919399299677242992575449063075327765577792629230980970633761944519991628111552002011717188473550374634387913584392527550334740946139753044310123102520979180092514074826289359864048600911555718944315471515275548637561932643359026309817957233430128677808391746655198035537706561720428345288053732070390313446042955319022030684182043400209204189033470626688690330565400379988732040648658455370703483109137031930316107880158577111810162049825924091678169756561536715405787720985079654411822756111929403387551345626599854401343700433793275588373913003693521148692730506522332625560145264301097221331730926298332320701216348092038710088043084332179385451653748962904048169474190087406370827277219751926759530150543708449916144628072454329542567551851085743827208827949649996366976554733143339236387220944076864588647400127328594951308430999288071228407804989459272143397787913408778296273319089772679685723730117063570404281382965777617261381775744223384443214633794558595260288020036471091436195521647068750402437246988791484105420723824730801912602865612149366905807060203006379347181647033232932419884857352317249550076900842766938963157462108353159684290628424927371164038594964206074889476327917673104331166662868736057349603005467928059120008055688907799610931766923424546003473248012933042747405991560222918585968116270358883236235869866038638377778253637551704056802790867640491507060046373185518496524113365260429460985718960947270461405144210634396739762896354690981643663890653315755677484582016804020512511357452280013729146614905889510976236688084723299477120438613845138289735310517838766029758554668543758257440073888691536388296120552920358160891068930667362163630611723822596804559554372905532303993278853102245752604221695716107332147748394654575954988416741054825201938340024947484889320339601088224758818319657936632674335992826770489708061384639827901348058690250522713826344322620736025612547151937432824437944910121912290681865163784697734835589755982191756867189578272417727262107586140350621816455701419231669536833959661412731036371813758819240894028351323057555999506695243756097001733961511358229242850755657538225029904868337373705971760099805053272227811576967271762230281576860168995293771625495211688509561786692630054328942676556022607006294577532631220330449834380657237189900910930559615262450271707699286882825605274870473055602458988883204313953812646801126222360034515377940456890957509491678270903267356860430655326756792089082659817008813271551219103754491177818052636457779065847202037990990125408111150817028482166989484909718105339160671849873905379170378403904304564306936754354173472872616608772364438854188251103342345497039050740857863625233052463843680167692408803081415962380259906917322070070820803391979770530629616722751103702682160582223182171908654979766717897530044795932114241992928100960861588634367191317905847006914854423221047115966299630671457537479778436111949351998944992962623577111591529634348413288009827416546310498849667675104749533236655275094442218652995746784067734581885535867184777373169598522011626826197627853870426195275150596501218484675591458320370719282580005211453259025121680812685183682278345436298916682365754699165223116952260349643247595625196648210862722671753482783235709475794013107937069200709347895667694405311514293201037056155643614656166448788262097931383775029456854364606591686781854783396957463857878929676893448269603726429404724348276229070358845958203924894977278421566500734559323988180949089133832635013927576832265865989403536737600290345059714332649597594265967540242073472247992914670858032062161476238277440355370381799487733384633076180808208028724309542980111053832918566803186049941165312718261682570567481730208687765440341737906069494256547563331071476963082799610262634378416749382429452763443706635882956545359839820511816761209153895577331442679445172506738938316829677279044283075947764487835007012826115422961154073315749219558755148398044164240609528745358444325448824517462375912740111352464157650634122477857342338924582508517835630802041598591223982040490339286419209858687974676696520815415260825340947468899303237005315906588836622165902589961982511854733566223314102122024703882926154677342041676345869967321849302088411179073547104038274268018851266401897149098169451931483443576031125300293392872302763060556400439150926974515938578415127031898215734030173468159371096588902418584498392608246225568363785001518287872381862312766930510196459309765058551306218256230164950841257072596890631364218606904445460229305954350661739681795905686430581740799207079679124973512479770684816191510402035095228306228470520643696921599771960047197719005127112730284723368544255517088361365722420221055508577279260117085919644337663802433885686909594004229210640495073066031703254281714608641845796639217394340080049533091697840924807485712005352170676693395285787688736773395972318313452271906361135111799272297301203839279321922220357161868789533367355257770848379194012385457703175056495965129934341710640993762036890757336211102678848296414839940219073166773663191368315214122382987843403061893299078553099587683482289396509882760363358437513630974889544877983093572713553898374737197736947647233987387476283821654586070928080967442290599744358453976220534314711084309147655429606667064939359705666558915857702023271759429102904980114947482888113667506119238212139485393476291134547556412203149559202617915355165663437266525662718920090841800060831188649879183660464817732892650897816153000246513708191994658669214808735715483054060777550765821340531800317881389643053578945835269218276959002858769556189864622250146339044781275077318065959148860989062041829786504622485541534126785978899796252731614626548762785023365853198118671774974552008697129331343359124733898019639881475139169997244226684267092955124524351269548666528996246567479088222393512607737274884492772843433574083499445034188629812924446403361993837764062847496830545697895655126246461753283703645665735520979325125299937564663703645773770334850163157976808788809749537159169592354817379814424953818620058869104370854938888871878603296766975951275849075132274580947333167563699872418176065910385813015752973333498049820625235921493577750179885377514637362595540965918348444790058790247603779619811220376726518074151605774913042369088867045585270062109551772816600587093942480578180237072182774806870011063716869049516686572031277266771066836507581054489675603256643332318476334556920713939932388214314061622159732796995913390347192644272373146278019261813237380300149446047838407216250146430284192113353112494456033567220437737511038697931544452796596876206533374073804934253993816547173069571068629894980836550525830796224623266553119122525438600662422940043567113407136403180998013647600290639600014363929251977521008218866398130122135460939735570730182760688962629761053770177729277223768124365171683414644366452059723546944703561380328338551016481531688932124301020939276074191195665783380414937015025702656098502713857730003906528871449702021872849872480463301502058992697432783675399711275552294011240356531390229026406029946164165411886033173803309473499911717321769119558360693378782857295341638525613666646450134271495205122988461169480304257623094888673524189491271684709483209887296590005404308931474216374031075210423689991175456906087844647105803215103046113353681630583241541508822913984347758607595746285258276419701505865261849726802277655196882296171291560575188178870482295710379690051967540558939316794985539646360674120748782282377455167251262597579944357815045791143925920402591947360240001100775012196719513834513614813026594561751887882123129903804750790232443388575223880763462713812840632353963350103996150440002802831333418465242025038405080373811370188665061171319559153666459870401977971948367165698558830474521003815962368774977225677476648206083658181897275692435238492562829576653864668366164772740238937542789083616209036908578822598531039200976491116446392178694842688099727641328852252972262481553726473975295294611248954847140982997169892049584656466652854613556286632095580377379350599481868961604501564068569801315097993482658765229593736587311117405517757238366213401064322876952030082405218603995260293159694390808526715481014187237264504228456285726574279922700499163427269977357497156126576566180990111955825604877791249119327774139489906082151010421331428607042262603679304071644554265433870035222652805123099209157824069504607968046084656438909066872239387718741099061381476882218369900956670517987724968351063412723179241136714456873028057198233594753848536642193536093544294313467827831600318113199180446796378722597461773531356444353572754276162984436667382840174630640181588129836799063395730554011224407790771233067406029552171347611351186881070561873118836959974487709170094015605526607789624757920519209275507916653425376533951671629840635968737421832885505505336044728431979896083248644969024266432453610607153211722294246009980882684232512469953145275216569803721729681279132349902753099529559376229435451991703108822712378232726740714062048610365537815887196713901117646844534279945951813273634562034296308022300158659678377586140718828936521158845616032467471356705034469024107931067012128743378520893790219221091128128171393423992199807124310148987486066773646251255118773083669796621708636821723981992723373129744313512035766905379915306415714526616566633176954091357034175799774880657500482171458925235164320910895651131172460982179305444023370514288329951970307718192613746153346189819870738711550128329219421507426519543818592244484441202694025499357016352341724559188111465833504211205711376968592619989881076168888044095405860865382424628816930523477287194545151581395181651090920456861182059393804727745741419693745843058849198142505582341069176495652051455276081752533837585325547935770893293709217435241894128869223356094269574827933738232500697435095283690289221694238010471834340882922930319199446531612903720380497678483251555828825108560377724839312062835594729778641820813015794091759511408398394756452103914493589472215590811392727836269007687350719294245308343975925672096199672191639716744569227380081279487223416819012108340454434209129271711706544479787728738779441580914974642445003033428671492999392728579873849537639650231410715193796647804487132667015603230618726276666260195841729603981977958040927035517493083396211769049162432572830286210473540863154732940803952436461857071850098674535247015575024231268560579638042829884993299168066120645393203505837311434009772780465095294327068491462974899475216254000582901259375341344812507302262901385261967785510616864552813545162517382680925361197186494915951507120140682162614071392766219209066590948750506002535764531002839394470733163528102086372411629888291655148036469732621522905235061825604804309999588723594121912925604378292900001624953658921829414311901879662210131493541881954440294648822300383428285658207349280792313521104536445636923568714342704552300951893869939583728931459081799257452390179968979696523501882596831191049944615181379507903729976727548748443099473690539180740130451241498836222299743016481082104784632178094135444430065456318924389456354872376723540838382313577746745271651352568695475752795712726385015301803649029089194999852550204856402772496076259065579454910819703744865402943944475666169161454980272013646009274978388451442167460409268949839054839291105668218931900683346149173927910900142576554410766557465059111430811912928443927148444047862206720446171473828068970071205867433301870938201979001592308847531971742875258983475425467789273029128031871141918755191008884229152728330891440858420208744384069487327408914744301493998883188475104280684815316957027729990177657984497997223759917571758938946480753204337602807576256385904544717442216933561790048996048937987870861094015918717353572422038570789077613919609431897718046486412970784110781200971000947135976838135851366259073426207134197254702181567690031772309341467410240995965267953783427854030267971337502692784589307090031127327752783248154007540050353121730135058807720049917458233809174226906841465622089070152144140407789561733045972717947182268481609101409331609348662632412652874697196021581963693385764620951248700539358249666586681189936977790345037880788470394221942921730569733044311859297834023280130232877075190544172956592461934845972587366115559710964133032260110617923670031271685325613542769742449629069219138804757901798760227461330263188130781032159518166319234487724294526268848443793677024260046009309315123125002863038439506028532686793565387124889686857514507221724975723863149440882301075163841093999170587988509202538353210934596641181971142857524596087846702389522880222183413076598330440887560823749568261225138663104097469523032879967581580417005682638887409839538138430746903650084056247182119323128491330878696753792281549346206540265624665437279969537556864119941365052531067139958176990263270025927031150297706501034214727027322336015688001052727803723334967277305597941869294552232090398521820648541971784762748321709406679405846501939082527866513270752219925381820955292759660913548993164606275856866739908716766136104757620656557827708466034091325710054824619684937830129356490007500484165444177827188074475938178823056399047345872870154547677272637594199669562989370513475033776256315243843617943250633418543711152082818936468681869093132305475006784968974729672084790969018002528584065797031016440826012834672160151544326500031128862978422370882887593067164330828732170733325884605799091236648837538456938867251133044613369069468191604035305547683005117955916522267248362251643494781068079801874736876336856476855430169375585950478609850693514406702416576091720701742985200328479900902715491627887979920583277464387430205661837238477679814348586728638130788444982062454326348890293265812180885544061977657056458910249817972003599296090530878907396397638699692488101060036157656663584666167727444788970591929166677576830530862093509580786032159905302239655590889336161152432871623595793043096761314557745850368452482598250778730105901973768402768567398096658264090426748329817045564678393286948406083507037206730998807766929963074381164086622517992004902562444450533675878966494250563677677924082829770729155907093787992310158254236669544270170175462886853500506557340947085036657447108039085299516132908945508563497352294827580717143163032255684911465735746222433381467440415908607672309399096759117348055935666217107029115041233248756086290916277834886615757825716435508406478049364841135506991685419954504693170217826113194100755020420412743307186757466229431302122777457354739576157280883417180386390747692207384803441788093367993121697208455747819807128835455906412387942488231566716501371223703565213881093628697230249116834308263743005819347349509859114293795002956932911807722059897637680245764059661645706584958144209974247017864810492286973559851005682880086270701750050107662087713617425340202638987674087775453388001918880969155666389243475035702127170911180484422706078778483133150594492220098165525179841886556097221546200221578411751541654728298673571125240721959947101246870807478646589422329846307791008180453731705252377032815071264701110612441058647700332303182724400239304905104204473835407491779896687772729043937619111692211189932516453747227235423642834890366216436661359965175882913862439489457086388521657325460357237199753184004118387097772450150661700365890692044129966831625387941162000591052168783879181512567193784465413291230924399599876229624398140447907745122355322976106922510544151954643745597118050777928527560206032701457007360913268696134283698786597721015982906971567158417110020699442741796115973581576412484498073175259013885100741180109754292125666414322937988556111836417624016505540301021866232569317128259221084068308419851926361027536767693606784848549684675376087765989885899447743112922028675614456454935808147392626854664490181541577854063935761110330006139475824991789645341170161466537121712610498955970896182268622352392491392972229370900475280411514183966837285083857640701551401974254568858317667865775482054738707535019192187115202428915098527776865957761069277831806152831047632860067322182476649650250953724688566267119586138956143266124451888290714060517970780991689210143961936332502808835854457723555842324187710617280693330982340654375386376925979268387110371637349826619741650034361902716592115108250061457238939339774611409013160333391604523982174863405539829158886666361069257057145348473383919428734314181773578878885005672741359461176485810892397700708411197336905313068711309020980605648799684116192126934055663585705887952222878012474262890752799837677506793464975271903160653720118344227120709700928399179364456350881824857277421583677666459701167644298086552995214598917336302906097134717726286757940512673509694934610308378053770736474095249462549485044737870011675169857845849623344837715864339577428518069619823685221908106889682051482601044385252898905898187408015712596685382483733441796053153933845543625639288739964224049178408898509980264934469535871081564367019587729442111243627650717377662798291166005999936464068910073175734759514639160578263556456370066721245389765919321011698687692129837946214961307544911347638652115610729403605062953482482557660954503301119292628908090034400428723983503689157802134367072353351943514321077560332115433278413267189310037352708972881092812200891254427897444550319470946423380639272124769645085151569463809457720102918804037853378692147246841669870609428931769613687955037226195629844260336526481665615819118530157792501052690961949684977082706778448121175788195557873135943147437664485622507059469387418318109233641703736728319921385154165755994299720151911515072123949300337056511765319602897449774386845929325109120081151978152316512021602203433640541595763454864371868529481706329186288202742786742370807678459072989127144423852052984533327792240706439384822204441824961228408376045287393683346535526580667742671035944573587129166607616226991952203582415188350720349088813494794340586197466751479242745436913774514917498182650238148117247530958055369941441715097325482925649522294052537539143503758518078586944898497848666127102060431477984578739380425507097270996748958481378090056095824103804465991459515545332558908074866721550450718035565166381513646615099365522484847648098909700720056523142560404491305215571552413607470163729554620386524452451853821881572216745092806648963506662744179412712223334797421423876624045808797765717031313984157244021119861382018349684874862009731339490885345063894231706704019842715232497861117260669561820865977285947698240608401775295843524256583565012477900854868247014871002265521532089563024593315956511345187948242352732507884052302003721318077334299219904600742969175289873377452315260439748197394268979035877631969980978992509696245447793344516894489677520697311094590197404278064897407858791345581177418038801771930814869246568849042120574195382489945439679068643667457599011304177884983246456873754061561823056079747757552327826082359824134035085052994407515073144434058957158052104354936050664233706314011057217374334890369632772671182006426705424608580264110695448788860387109175545570915543635187829605939063126652637629488802081532310663532461339080508931166306116186649568342007479503016684643103353288643555403323831818183220148091633420751444854829074984904644351922023226253570808781058463643655844940786018120237801332280958872111507564834269429678306440920271909579894248050893647169341876768800711677055790108829750172997749362601470343481343239233430011620630569156134764501582919800553560205476999375952146474468300943847788316365610968673289259932840134612417797324859075298006678803031197859192395203629369259636774968195339248850361089679817868858125534292101004611215640375126155080285555228424733802011040571602643177390766034345915173414344317424316926079850219089660140913408167910691878763982230735097728266138535357165772769777501490658143365808327509239661501584152381300877612449436249018834068456638995683934210155332310713536542103143114392269616244255096982376877374985063272719613930677051489915550816613655720054646466593708972447658358539356577598621870529125788180120722839537929247928651351013136085768163454143669619645345528468075595446283662672246518380957937630129750589109830456785093948806866762122286799271820639178125641678215073338680065265076717247529035591966938050364836296396233193753847916804306130152725638657809704345444944706663654792593024170286508056795558664756025302236284172620455975880932300708485053477228785592282848417031941193176268831663525177129969293266929343921838277100920770891374235522294537463613121971495570935068664807107810041271931955167661273019453672103223565028034963958046810279131282809816485049718883505959306419042361396909891256180229750226685568762676542616714102192173504194564277368963129154011468129911665114503176421194094650475501221115567495831762115346855651444341382849488413352862241568673941674004155566587416591625990483890023221900831377957530299721535246626586819356035417176354704917257416824277938041178912858311212278779649484129037499191512832086712888025389928120295950345221758564843205485584449345605432569822106563637710004987938289989774727541362940502172800442974520899987113262603343034562575597239788062986132415687314112472924561237367110826496934043923355575639095208481755579471987303937899751337904399208742976518536042520505674546584503490379771471164479021377605218354775335362804326476609243186380338287796905293810845559273699263914728806429685476575339656273349668932535409908771500376709902715335348715084881746794495997089488676649661597199923802738462365572669167411413693683190401937065926496051231077922846171755303380619621274920362078274094246773440579275173640648012281055246610825751271752367117765637142704384824069973754456099238369237910537058055795418436952321236541473210259428556118258576538935886976972853472129359430061742778853111833401930859680270772585110859069303104652121768857872693356924904089459750976844524169434026389234473930545093707176767837966013619947713577569859140175714301082096147525611783304964557325679057242370687855874195740041957400525758779220048533349593969690884121316975952387739252907936280500614578306654902911384625025019088302930027152923478011247745620135431230417225302620870449937170477291495707478758909617048186234419976804122238195927061138106352334058069775858280512418243610413874255351204245765245396854598040557771586782231374379176285837881163112019758115506255838437474715373471725145812357965355440561026162772784970123487213298713560490134872188443620457587828719910709509603768299724920151537675226679832533063762200329439744039190318052421432399925035479425208780703127141813366681488479739488686071815399440869379687144570320375464419803224714714776881396498629234651757529315453396405702027799717484469885589321118676334938486000694674921309001244231987780636220374968215146658779926576939703910796608039842873950160029974593025724603142166299818048135990153856660571261804773377343273817289237921500487432300447911110510900281882559375549153143583628456218244219962082286297042776458422575984305476235750539122222792363785495146640603826916323833666434952421679082092235919270676376484344632318728497624114959213232254928010620624160871638641821262766302972505397362482041908760460304016676672067512305456544007965414574049036943143614584128918953363251830824121025878379355296703281485823367620804782621543498276520248180438413216855025573400773822534480859801931940579346599882350199641573629960589328052592815123514874810428610217544690508139544148056400020643138841856058550987859834125940908146530854855600050633639061795742763874861348794053160128884822290485057956537741626204595945675535240968611043556133785834819745977035140586619339770619040714857216190869600671558250874720798807120846218175292582173958464761080939013790679232326377295499612410700801336322501815926540659772561966282607439251223450482746388241365533024891181355667627821187796870282177359155930900042205918619221050749031826922320139476865929039574245860608246756425450121489145910305387749895110053866346519957602781083297594957903385916765527812636214786730151328799152026149116630394395187231237796105781979726186339738501171247192500875787229204529348413834866819321329967069813089252484550313888052918890486765432099276200220127881731394761142097895582810163583606080856258491391787611302232293921357036525557963294318203992961160456889829707864636838727911077288044598934031123119821793726090181559833091540023065426636453380190849973780176345829990552310663411154858667974719715100256906620178453606786064259671524862739128682422015185504171766816497561028357565331191677479759459166990764712720211310592335926813076090660153241045304821587943578587264882590965507960221090468771787211971742750794009512178428768675498029282673362089447795205443537145304442058635551050836548827941597543554672227501136965760234286319350672618216764031668289626720641537029510204956758756915668346786996285383563451124648520318676411935564707399706518670677064142866659784408313640308249486938061936000078914092073731148391720235307183090994892129243374274861902174731242430266730708797519382916791101626007147106774372058235564272262219397543445504906065146312252862033990353084390252473504090867931611685341977296805823763879070474563872751272582323083356361639170971645270247024456198247338329710883373774443554365321509606626639649779417915568220238764546105528165102214416542597456498605743868476231215881343370005800120588875273786280189313616634900305479601294661502423320919095429934954874795830500127609858062705890079972203936306909008214754772625072684627884843669699591418616609295577125775458738765760339458470924631303903248742343372204169884770261058093275723653802943714029036666740230419358613546560177412674628694650971162950130439665528590607928572257437391427530427798166710231499869289918572614075070093423054550258304760227105621500991751033545610990700878716509745062149316478114322424872050959364558834831554687501409902106236540375971332054173888514169163468562580203276823421467961025338933947378520342768656824955147013279480767172150484428143406004875004518582452257355546296432833911792555966802277023636049836839596858075233013681329504730186276146927710943204067467794893066139580488699776344701922239087162846240574026543752628139045026273351779594559304133831459720508312846630293834133224523823452844811246006945208341065430325145239828897423916056473988230609533427960848392429874443553664287889433729822166649085140822732914862493222247461931412251409997859952387832943447688367628463421372159540272581056278940723667428336171883339324575005677119430539851814009398603080125994939405748275148266181955057068271335637425565222126995801857946355811500865722183326970650233351085548183820044867455094065269106879029508330062856242252405063137433024500358795135881865510111262966084628298650153026651644169328413558064628142260653111817994806036077319338021075392286215383375330215911134028146513613723108548985351118045245362785372339361270253282307959668143922470509699273736507731478088162105133837896265154227325676834713254984152409624944556183092956281776679809262278293616504153184802597301857768747536926466545362953816754628969178899307592254303448862146665676923038067039767756025506593429001695772133162172522918677572242352386537610670375334760601323095843383826914165933712393728294430047611140198502184162263082411138257601553959583559310904034195103406364535482296836316809493318631389306833861749978114983522985806967983805548669101086177565832093324957894426487997519918412893998632802960859262189793216371073724334200125604858710800408569216729860814784053712316854240374082071640967109656598931554204821080164340515166918716742182652668320516216109825563283101530475000011275969448290206557538428954432283501319749775603547775314788210711058978299328721722868820715968028984412831077976219185348902515853893303347567619187714358202183623703094711835101370915155363690013646192440309496392474463211389139078107766583010461494793557191464737082604836658204115823015192519014630342867155648336653232881303305702584252709450239385639426270338822625111761640856330837789434425190119276601793358976634231936158977363056202817039264885418543416015927387620306345711751226842417411945615484170587948823695139011808726449371699219543023881755710664869990650380214212572297868375504317709454322012926750677835378432218551197767702092998414296427773729018789622540605996550671473051111818410296541428191543298538669735021586248493139546240516369176900852119563470340019646008780052659669293487135903194066765554595089236148720062398879305011120777964517993605726189933171637067492983872193574025574793715550811647254565304228776918063163664091423910245079066410877731503957308007123985655340089869766918256323137046446546370775320365593617859853145340717629619314893828981576524435759027985350238125257032674275447573237364253006170169851539185681984892551730905910992547978654434760633761273053381119798884176508039210066612756488378272461102804995822658658227496747999951634802205323271374448573427082956520632887009818561958581021343452881195428112824189795861109625211138273357861095291198140549962652258667264707050327647462195457448519135343606324081496321412468987726375372026548937774604407835901987149587452092831753910787762683874137197204229136880926624878223012125285968568906054637538969595611710520313010619196245695464804677655260863560406118859491841672278456644693051376538732528588068231807125105365782986945441663424780161880359283864116424073758802298085079073510502445624501773859385497098299653074779201428853460229126994570039238921180249840550323954174189256564475935576629160355114616501365539339596801884954122899376851667285413186927430517050377933476235533524279730182474630847105128951178467621699699133925088639412760075370619981348958665817588138438744360082822514024039577341706122549981068783650732439510166243113289806923412841304518611414742127131894746478927486845075731783234776190428047039189622939680866612198657841745954612207253164662904798383003505138397028259679450457072183046020627626919987839504416167734663863777970999434396432010804045149403537445678248715486663575430175255446177476331098328347261078215890969266218419538391680739445423173658106963816014711953205526899247517668002732284900731330207548197574607410416949425456112924558253684417769113184472742636831663674740443782287762529456568950723802793352373142270753804033792410072476947257266632966762983338407980592659285729363687932846696444116133866703872829612782284049060954901292653954045166597348987973496065681649007338298832625704086718815663515306149087427687291799692466103341177106961201910399963283151220564024319438862655963619326217804000733835245549254994546697305222894224877187946130886324651036985275265194963823076378588355677166812009370712072633645047771916343616906147252381314940811135981495031997492229809226696627551903605478108799817213411226377322123814934974578578219131249818415894827631900823394404816218217492671813975851099293481887213986534472920252013706223988262970680986843116181339763769387705129503617471739390874169775419665712006340322590381581698742402049715948244037578565868123974956220184802433837881613330512673276996232695765659733926386994390793603523263429569907747722474820421115371990366695411811136067642231129039826956289518990019853692923919597164235329287070440274970275228945658167921422966595947986939246450948636657245151326757756182987767277994541335079097406784600833124882721642240641860113288753215105688325693276252855780300805503364634528637681925106299112458980656204590489614080354205332389474300660659051278182727404714002903178920471195641996277753524857843570023646052674752752161219306296933907743724259159741512445800890687102803954284369905698969299967686578120739856098304443213221575315801922849072784019970717474035140339345310468709669997315974455314274981044158985117215387175261746280701242805739707746408140028611576009304348638782626957687111077066760937446524913014894541725852837160495535399772499482982309466827367304117171132810601977252615992234450248370418188902092604371359104828605516838390113588928850651794097397137049375567300574030482208815724285229524629593627188755246737123574632591422477001868288467939961549138804908364739000203006806610055464133694769682357801360412243512200937627519811896432046041952106938279709707487643087005846437699343019077672404557676566972389279860017616965380314164408058032498279567671095128696714228360340619459682083834178851533634645091692090514318025745043085292247530544404752437412972085420153410912944132550883708022906579392258966724217774397014313166609971988569247395933128369613169733465009176393154803098687034272293403923717780168751978162911928038252952442357782330256049050558360426590066705742357795418056637567952324570710173565463603375038274804267316929373070905022689224082326059954800927094727358145123798980374491996065139816307183225728951987671191864882265716768256094828496484658422493665830882700868603053342789260983962830587708076191081603411499112763043682670997900804452631271193644052887566305593565919536399558593923613131472943411190104546712481391071110582104029196567242019349632957766093433148915655289136389406643663519811986472945540190551021789774325034057900097618939438529190846556456411938968704785209199192585033932812336016451242655330900278909884306054308964714520352831980838218571959951140102010955013400007557903892403188915084122309647904348950514527948913977248671040972791808074743524883101368724442731606621660284452916960993741093760138605545084582436928680370440254930877585327645092123900828428692785840592148543783149919763624402856781279517533272031369669566657930603338518389181591969716041435059281376189367065674494947216033484716656672446423604698345115287805554209901395061707414654941668499932740280685787658829309429123401148929347738051780370853669324421739345881017919156431877375616929750072873460552673010604917936784851968226500018519854351018287810268135716392375104557968831819145027503877985988331947689203645557776635466296728135325467938041805321929930592601125233132900723142343112497005115716580850550060083798470183035577917325112936477197925004200942335733618922647179327530785252280796753876095703319376305327373876510579246740632302397333592325558431383346711767061509978246201365480928495676107295098734262581198059314186820775157799392053192037612429485288870469640614552761213658215976352704612077551183760864449923080752797177426823811583444665551192804024646781379061351684415683116197993734683004648449665688925534721790761335541867309377614937377016772124979047708241100048223463583145424754382418533739644135626849513323229369440881489459028402627245981995041679487887242557156091303575622938983945471102289463657329367993715233401867175952440195057645502237482506951238879663759854854106122911440666294250955825244767836471116607657455610247706221976587085116919266237262865611505129849091865358344428080828157830270500636409210276530067096143527077532700384450088166493746789337204392891029540170141827672802777316011605915245665240192487699119847082768501751318668799547522051727770601637012423625669066228050702646138638957033134404523610025461267846202142846567356345731154522034517994783166240575225843957667146945373328132035470206260996950754215500226465416659241869098830598475609515474786552212523591525786380016601273286429122902887158964699815492320994272332595705152566746146941878344438236635852821314390988261421561538288841054610421379017015183273517843230076626744749726050518677760281291107495199032742382707405852218108267119216634882442322519243099142918173584742023198916230320465970927857153523924782659482056740148367610435809005488626835929586233737223780226539695646889034694668670727690806352652970908923924102373393534463748106667664896870815621395522417527098448174607164458239681738336022762199246535018634765281245415453735475785827765656455077205003472815196289803637891902155434730205884708234281650324033158035127953800940562912515144930256624608576221239335066444490916800524962991063629796502974683987869662937139294582043586915920561050964678317398189000787710638781433218913042086259510292681759852705960161557527118662680689916193577048454670607639188142794666473351073737428208183342384698845357448354814066475881954680310177776549687194282006978195954306115118567046187205314469029225942542853221117072294959423654335574580067896901772021398383841197202004886774635208260034847275944712867339988479264606728009120188392254222535136577304200595352928746653764219940284135814933895180466161409511059569631343667196033344049704461167497493038454499290945012866354112562036133631592833754764539880288260097048343511169027393203599147372626040601062231230439046884804545475926517685564331510736359618364518733284898182729900483608758733732909226551501692854255576979199640240555969598862954492143378005363540330631078462371862138739572108464677334808233764335123409504106091902044069682099458198683500249693759359293818411723333308886678302168191551458270149214992529816071246581139904503089472653574689942337537218295098427195891181161794545018885773750927843293451797260162238297900891512672793700438813389029802646976497487112147405078415403738248406953640683918277135948885914962736169248867041854609081634697630411170242519945980773116972495458796925869721464862034351762609344214618870119171844024856848813000964864598751145135075867487134460003135837764000184412228563309621416662386625789150995941673987590844530053120469073413991702463475667820093916989289811246457074509758291983955052138457099204275455133236821951234825953864094021425620271376756582909757116960325445051957052082901930488390944651497325078943974868924115981567494928669355261756227641831200649950559997340942777395106675549796524965219365009731822652957250104867154388320615997756666967432163798128158264922122062314427011434585988331128579103249249497261064875816708221072984533689768377416902772750532270055281144862473790325371201043638047585987378725177409942456546048821764437368478855439122234533913758250673614861976108619096255681200508865690311712318160654647218206344509656163908338610912951787272436674890659773006206981407831431655702169442226460162359456700449165097602653701347391944703095539842736662154741194705142535259528369147862902722110318135242544805810839231875823952340815969086343465694349324317719144181792786205345990347213428753854865959626174336060793970048451397468957603719514204578196590278616364838146002820967647968490964239390840984060191350163910441733532926197429057647963649477071346214919442720158423456995255222908806580263994016002510381641308452117480059980459539390195596613971450776844260098219875803269168014343809262382924281300652787639323571970754013846043993803080779479394632331651028585309063691932731431786667271559326293664822146878526888893987223772921536778375874842966899815934884908844629976851318925667919631088768344704082800208903239619077724218651411541068899164530131170685759876128672857798524237892126838528990922101849139652341905914751532086077960457096651916567983129895261231169523920493519942626495373827474036358143566941815412796589694035100861753201636528483566211132337562855717815184724952562374761887809460010611429234990969906792615351506627804439952092431160033293046341419516464011160756375395436177273252246997610726089903854541628218613104150704776863065659637880943460239406781427220466229503759294339124168763613908068902660311215396459556424675964824047692130763910109426957669473320356827769836854591242193958800388656344735587178018554737455634560057601243427420349454261900326362028580245549639207050619143717474307827576566121173426006274292513756573272982326090297358407140110937201029622670508025223613455079543088128467162875404528922338178615744450251765973221593303169379310154490037673379309116627735525648715757385516107665127190471846218262241177577266068599684264168536782822706890858996342761424120851220066392405725096489901674196582560356143553501374006790735407544990557491232478604080709807233119896347808400353877834276969983643199851744720710024188111100378466302673171800468571193698843333084013550783056976403466940721153611461324498351251794874376224233242212765765848063392080954820694730133713015438307408533277410250963311205264341935285962152617483807701383473429111792195063601280686597661550772414737193491293829040992456143599142075631791910773080503677302701400891442923404265743760559388962921424345780646200212097694747867858206029246821300996142432328055162432329515610721993484954416487342635304604726572926076446038940140313204540647287987654270459738871575075417705482518968800336847682991910473524809071119770220643361425907217478845612687813386119231961527904650088337259063073152008010108217493006602757800648171077844419734822600275078773994472189114351135912613191283374635227673345327357830112846095581877742596727329199180704363759585367907142212518492568004817980062157182212471610662464474059984737404384234842673205089424639373317569743774909840253070699784752638050567331270850886796723720818427142625036850508259780945695315247517612357214526281574424382960703099786936266854679367238955376451123388257337217385974296082978824920154122494236606458877402359369407853818865852653034756098505618778155435008392202576598471216653175026053372305673890552878430428479868618208446906533602577643306227696052118076056464066857306456726031081063406212822159348894244208532881453584571002281148031478601502968176839381202741288732179453231564085159654271850116993929468214090214219409740696283660000882737212004656882172743181392072580562947642057449101033921448479169814436547822168402212328472783026910467500256747023363702652329062962453061334854844805809897697827999621449049857871992837847297914894619531501948433635763519762301692757380166412288464050184937412764776233982468558203993831936215340812086684791704486569300550853552260192029391344110679968144777185939964095879062855554494571226084292240631602444818106041872969937484827480775773349861602832402424123281600733976450421465388758454269934188384726412977831073200376068683204046042584928111060745555716690201431996465067253294428717511706252148768075365714205895267803883914885316016315038900183241526236763422247939230564784288193413891399233835754958470706143639727778124271060534703690135371107442159932182355246230349943240861639359047418040485796475395776533793972880231707135131387394097201063763302650845324859121541844663297688022470581464602925177063249026187359193272471326420874743273408600206086907347176437579646556159731391428399220318664942378705138023902321153596372410876860711569665129730052287514844711906567616492829437950418982689029440465038485033962380073474774103641723615294156051486554724764515007704481216301928776435475120125778251809504197688429269674799392714309584392914177204503185988464113146523022598458167218253659288801938394463115904903248630574128599362246289072634975410531738909212439061488480786118410924470963720651531428993780404559488191528052173454027190802511117073641924676640195553597510279254994594447860989029829748871098860418392075354530649353120606381322643779107214228840789466726655205517811861816938265497305258446847561633653716172756857414021559159219544838721392976832407864999666213077188919747153162166697179701078896690806268309711668689761402296363498230372550494288596168487327076583787585672415034222170116205751253167700515733579493766746209654517466171070590178664670218772911986946495915475769430973536193481995631217849840953031625695274628687721774218430255012383501150349343418283630718138332380679839106846358022005783665282133759925382482786677955294782235063888766472447778740616558484627814512773135889889824506076350310255047786366432733265591989890089936818241032770058664131612972301600926030653867445333063570888125228238272705519481854346776860489928447598669208413968269644731202764209702201161880207796878772872790175936156208964029853368413366098512040374966797733997037960431909936995354497606275787682860889371772741623520720139969395228139206802527980690764304774808606429663149726824086918032722339713004320854206131273695878008417088043231385069375058444247948250905586144449154029511930505031316067888852590642840392712796356985940864195949030871182467937742026342406934774131903444050403134904619780854100140228953682604599317148328291005411063549935749386231508122578914786780324373325996869502451437470629431164492098019686792751313737188317624971051803519072772224572896277774336436574144872327595318173350481643991976494851259785012411537597627225667259335119919024145282933920320695650179857470971330701348331416583451646117057791756757016574383170057043924474158134691096586893637428403818484683099372418581073694240744611261047440717526117554773150932092934496838373366483728173721858677549963473990259132125211267199259695860634851050809528295067615585297493272955789907114926833661844151097895381656413209715256142256038093906861253198664606137072671560565340531092015684712817488905033513839518182902698784916787492036374537874240642236746637004039181579794150826744559121825872539610699502610786404297738948477901842144969473153634204768261347047076769997312742035828650291742417556006099203532959288893818191161679276328327152555059722473563065932073871546237315709325495940768825990733910495309641541516811136960165120134935490393027783360516895704920586980444453611531034286046983373222969019838676714222649416398457151547007438169499631875246444711909112052492590310880245118017261048782399840893460775958574837856246825722033055898962067113915777633132099342976046980466367764518199519367282195005786938220482069040270276616241870061712458619363524734478522015993693560954916108091145120132797682064117125625098837324084255853403235609035974064784672345042741837080489619937135799668841311130637457480616630588448375864147950371003802559881831755320979605417993198891566501526116071894759227144672605507413033630197434230326574750255334573478561147941726818352586118714673294006105315853041352964060645887137423903009644228395035161921887796657917365354374081583029804979239614936790070522939537076315982603138182024297913199664331123830550988247941714700800079017164325162995457801357148610185110476572067882659209497673908486935502290374693533645991906434568806802665061999702977667277267758270562909221059556128812506907010208253182781976613435209433204066755146938932635032498633252662386246808801633284176163318834722115712881680528171610282640513333898329977299299913746190015488359791520846388788456064311884226606445157506899672843977022396254669109255039359933951492329246297151183893898558558500016463410691888410994214290746987671838431961904767133852684887000982166073543123482950435469170904199356089779632102180378402405503428110780097165597118484414800235454636551725176822483241612831860800238687524212819124695355977960860141098055637065441446657887684387549371758846674863243631959667105990477498962618857327382077352072932996810259450435735396856064483822173790398163389767886578522724691739969549558753552062970340744448093801866079377020670368362437163374657270243211866444924928765502078052154289590078210266569399350382532962172099482329800318085590783582485965848479028164127489617975757004355663132475902277767886054594923195265531187152395222474172114120489645164766857817335364154469994402605057699833496236222730625633684719215828719437646268230902354552147410014970126711492630253456609310880176518854001888632384488549537696610383363557819787453382726489583996044680156631916980549700359704503454429752623436632674801731624567814327034904727257791015388716398155391544388994505637967504173745563162953873339964060843938029623245947436026679863914550072463955184064078628742325491708519419046113596430938869847206846649726630735236985091849394498729238542742097806507948544064698417425979761259773930650714276761272765482329746629809392614074390203766637845624135736995742956982330683769081077340151342837279812339008711079453213803460991255475694285791225048529786747924611152903960899282665794278261943998060540263298299404928610841898024173682022549289224199558012496401716664136811923340210020657891754881468757651427515530175103704310639593937729914384330319634310757272991423360554865503723029938390699687126263274717865223391351428406505569060674901655899909785896463463395004718561743522859726866433726916538809785237035833768047919676032598930800700696793823327108280182389447298124859521801680388857148692823515885916237118399062986452380704442394578722561275599419034725468745786870946490253227325394549183805211865919671197585975185084113120425400050492408969499773752066693024054999922657260400680633916047868242259073529778627325434326674547490371513568218377136672779477094396269947864164320322497207982373749877899311976683364679095876952397725992056831491636688665305545375766446088870632972651209059681494040429815789114484343538362520907233687512052760315706948484929914874354077062426327487861137740031951147926511578275753532656482546911537439940199725365196587752269202043688911461869034294816031882955837710074300990616980804799459540806218241460417457672340726411522975720205408640837748041160523632318999526089756024618347893498065922550516174037073123399295735753892741198351444339770460134945263314185669235302278519832634463168612830436267458897458722299967927474866961231653505335348869146402378476525144735879536897855792778055142337756517731075410351125312408013096456170954194098777872558323989650482185056147797413744680452711716615565972825136240315714236554314007575331263528411741093224878245952624261644741463489791748235145578791012867032134216729571196930749873648910952103778309562941591260408437959187360511455855758929019453651999743552547462273826359606389785905742036508854039809007754177968048384481458145376570856659502931336573733411465298456224855815427163304314025673494729074506051935371761468779845562347992624470162512316621388968666867089670760396616599848288095584785485404277815574678390496375469293088308534102553207503426081110015186563808609470549161658528605457142422760659643367912303671722618294502699841881007972305477435162866850751793677353739034760508103967621382161501523535197376356557268143525698623575452710672043959215357669691767540589383076663404770857952518863705847186447027186540133562447905376462523097373052153564650197253669349973153874325851005704683639427337984819993638664654078899886191910594154873292420112098510546102084747195583658159518390176980767681419480856346251177041196212779760193014380363518914884852229589754548117200787100973978769086235306520237017338156168892427147001452327607301378762734135697379714642604825903908056719193061840937828355054533006319812742088655593342857782530482308542024316391516577939139954456808502070371010612051521242560678253088501779772484930934302169277798062866958414947238602139311379476890976153874630835404223255687787256872560704230429242448515874086622541167462064864291643243046470139853007553076204410438584141527297697765319489345169955849686182306388659151467630990881091558697839292686498837443396041360808084050183305910960541224172971076219926065449275160766228937149955447075772816131891501964410115977428887161330233615727790051559508944337107271894888813654283642133204511352456628866879675649016445783245236558225809271784213990265721231095455739226686827751118473657351455696229979876071970669977091230000444162309768857704620198021832797567177559237226468570646467840041665915828361884032225307262140591198219563326924365207823753937902714828988979260105618842207595601726352044424194079439089271338262341518411942491170058042675127380201043804973566972306575998476236660103787624143243296213612746915811710280186068370221671337811816892830397826314936078043580261523081604293693666839355591160401694861833970559272924728912624672719963011115579565548821628133292568811003114948956141014773689613756347027658263365483038948100445580460384807048784106551521562073152397764909914246013691450224260037080264432440778433698273317954764635658735914438065201929348330985244520753618638661795441738260383492439133939656197647822592440302375120064301146643537871581438595998926651361545643179822067016970651484141717721232704688787804463225926319187520949761073578526646935331659525649882432986315380928135163935097804986376382465708531570435566520900587002388666359758407566372913048995796073199572293897146132748454617551948172237289889824184489522562183631001516361342492095015555703523493703143175435460875316571029205768444380554523046821791515798171522242527960520337661512555953961315990445162412838639362590037070361843475128193331857174130699850008892226991425906849127265193453528270817325625932916458491203552331918514878362282590982211608767278549124408819692296782865784091418311000887301377886972388727924194352134274030314289904034245129308679292661322466351834665625655536444434280267425138995799832229561866948405932273709853042036128030395053839869930191280734767499983634325906446091990985123877078579723741781627659484178883971123245805611376852912559855235512043313713796696784618664492692135314201712420150813498205310373409223878105151490228643799435794825064091851797317282008534629505127882578690825449617195703577488982456741609183042042652495275058478548316626763007328656807478482182616124982404826408192287335028597449318979402688270484973006051800317286261809906997093111867746008503552130936393528852165815593312808056839272867509681384894164827700477476547475969090737426196522727608183550329494807493404213618780445704362438418659211573480389425473998263749507366341378541919504713581661344164805093083216730721665506051628247090940542450071191018684558189960098920697545660702401754294788801357225256712143083980842008329096353371373731974650453607207801808421188588597300564739975729977234369413816854757411441035502656185877846824778497431672686899497127993564844386832603486578958152417699793551253065796292335921528416975771020848908289870779353537584690077982250046534020819601579609567569980121642559558041077242490311563076712677732869693892140239574950282364615209973770646498645918078901298182323059913122713608494975355576815072329311858454935937145270861433820512302520504657609869798306536869320256455814792401672208503440183296280912134895606712657700200763541962512421316603952714425353769719016316166932582691757765509526246360016415246296289061917676566684741764835017919475232408302291873850246352039361004547662031675193677949769259429366273337155854067681519095931839936141912674104671547917843660003285146560480350147986344495403809092817394350105100602861077147093251129766261216788018139817818579268624117790161118566605711543151593602725502280989044383986442056836626526787144334841051764456652140804071831578533447045581552982313716687432816482926531390952299616635558842508575455212504832205946236366890766319004015487637778002097696014118778238023845569010463212945999565762649112849569227808874905481169481116920268936878893444051140624127018952588629653681309034477497709064549751162516129785423306057840562174395178122508577220413847588812536799054756826536617843090235142456792461321851687728257924220409319559873481396579964892640512124479707694394913475487271934615505025100311295755336659840411377225471351706965425199491851692784124403257370126846817155100680964380370423319873196026108043684035376401786962023873897551229288578426679958755074631944066716797117942288187910407468903725522843147200214365326036799680068938865439379950355532426018367064423568067214968678607978419601437113175717222850486380280964429428195685941022820715252213650435164842161705436488829591487733238860703274083470223107234597736357994045727696037586517003191843860189235876627519686452754538850185755019228525119878541772195842801335344993234682217062545713924473207885168795032335715481160829060108745351717744739135930834732625280378253379795721506998275969537767156028534675810634674011462030220781021586467422157575099518944495413232598965962024172668896604702645001189569590757610658741038561465167081301291195613190078454739183526148555347080966024466615123340543244100557696327663453233396806743838366999803022715295616558869696085511853165912072023049452437872157921440453996738047752064992085799645131809862604632503361569486167835097255023149457708062291534216290166872427651269065751945508029256770940783318192435603159734796306587075474128656749410434294935429412917961055396140172893390032776141231915815094504716435037943029839855219610611444886866447371019968206360655004165585401453099800756247510379744705447075288697212701909242888873639251711953895859765041619975921018507622448142474981675437268362373826445508101753745193918231746889656282662221176030705498193575337879447491967148499426228840626843589568142279544962140613125307663836126193199577205402334081700581139636323549417309063957799884277138231295777035727766855406964822594363082173992518366700845097162324659013450339496029199993523662022255103443032153317756487987920999024483839104566125268782513317284704378787622616667283519846454345298907797528816547928511661973061814936261687287487020102031237149983833909156128000027380998317270346407547151608717039900504480205349872780243511222970212616948777171626236731401979944852960159000940998924546576567063113638198062910787552810073697595790719486142847484918938726158347864183187362649553029185332867334851995913031651097659139935156550977325568408021465558435356390131817938090685392447963305624258836847021970361391763927584948093087326070438767879072946681176247116607857531029725124781813035941171511733008001592284578921143051025539583093893507463064526945789401327619326127247380542145537562521455838357909741350219249239185354529571496034641601691931018489103101025911969384385590939879977147603725063116799186761116328024369966887231642767429967252917699025033101015461556199126560270047951817277383952804400085437126700056390144407211652875733553390432913377269014541061234069952644840476818743326275379452589558363502621172038777784416238429647332084042630795126937130545820102495774090479838813292237989613471823556934957806410283288456522051398139394011413603043077301794570015710934537127783858327156814761772737671075937916900312074398952059667951935415985653648137172662171547361049292137139150230999215142942560858823632353439994471031383138617424842539027317730773696855491631241097452266704017619258474434016197155488006182120142094059112797992676186539627034419891228049006493414055946780957475563842743046931642427887875495414389153342487096661652612937344345290723690902292532036134409116496596696129664994977060657203422638555073609036997602561037600685301502548232424243522196727163676694733878685089075683129487678347352132487569348751603447401656480527593463771961870547023777611079961384812796493914876619167262579632742060929147134256381723413148232235124632293636313417129379479075315708561693007038234375038059849706370065380774109072831768574325933895724068329265954748535697975121181583032195802153221939684502461253872834584724061567195775258403608239844219450892048656556577813077206244072136797795309500911963485527566312933195518829629133063172386732768878183053993533645707202634584365870791905035871040430196336806552852792682351403105910898942465488486686625712116401294102055760276140833464985704978700999987319174866219358649286586120546541902107284789122305231420095720271394340789818380140931327468774156524848486572787361224086984317480788369932719218625579953302592737812111325796181620513829095964673074236107997001140452568077883684411242671354228863932573272531245473442295826993792523892491707724917942785898275166410066347694503586325331365871174924786389783628478146190055276875116615898106243177996810989673150174746109331932198159524033577235040341828914156802348686493131452495319016392899502231540563951227063541808287482285210718595068108621602365040712779033385193416324639054292732724170986396850983200172826465325710815387144058431015460934358824129438367755649182268887102578361897264702400162822684517757727300542492450976998965270759736508814509919564839689849739706336563875350815924280298230405819306670302540129866087540527631295503313065965935780765795476191606884471486075682838523948619319715169283878431970633597036366971759361066184057374488610747707483197781333770929520810230488530527236643903554720759822350216052273437133668342512990451044940829468779665010010678406695007760258626712283154104726679339115544395787820699252320807794252774387418497173138997772082934621951758762867708509948466411269595151253141192110877965632402959623309550081439078366158842345995065642293115079696584206874276861650380833085878670706236534276999812307432836147001115198476912044479514768765493389284398094957378832220841885603644427049293734434857242000243295633623921555015845794769633765982815161116581102447394987798078414556114603205109299976235271556018156214078287411365078086735799520196101157487227450426774365653237939896323714086070627718986588935749842199013933682632671740652798618046492605044894950038227067322680279267214646271232242973968345280672887928650309710579818439412954754641170983977309495608998444617044116904949251138977314142735154468151478756415996500105042484690332401305075815593840481335277694397623780013820945998097167782289153939847290938084585234633485585712659272950285033363673485790730163533550624970783275888698093594999745336128700665317442941795556105101952372048526556635691492109499020173222370556484738447771008304045292427468980235292572736271145264341235992633157973712372998986841844689812619321320760602235313973147180189369832797907804639697608479332832288628543503944161223614389794436909437478091643615340160033688471092953709162098171656096737643551798797816075264257995373826122981864918984087825886805578110813680805902354800866847069145452184251055728895562483794335176628699395760660453974051009281511524074790013762396461791283662568654374954788027720132828324208029068966978701770896241216981805814563216233195592152650804418250031001266554363493833473561148310905194008684572209623693674331246059881005033347324049220595349348746979336348277176621184182282899923518314515670290194146696757064056248441626461295587387102648694299142849729298859811898051755234868403216801598073516244021949359811970574369536657430703180307620553550195261071529402257298981916059076978709368248561028338910371794974272416124243389947378726421397351360202020488803679827366704219943728920991360188724499598183135643364055993408686720955354994247400199862332885914217713624935861215329311401180570590574426787535841024358538064004461620140049200760941223319581457760105007014193687766496088651624098448327252025496709545667925494426458495239620395029201423495491817756118721277736909547868127169640545274693435248035533574564522514866428403238136920163989383609018532108832268230255655503123377244736746411653144659834716635567816615121553472113666022622766180696660061191426619132395710941563114017347389786915363690241044713912117418826122359829174613141984661605456722590586066834582399819147357275861056779840697478049563572810493928809288485077176242600300634951155677087671840162710733252637088458503786874353543194819354542993023619018914859290270233435720915018076171632580749626995863024581210343256492256198330114027367212458999908644731826687331831484437884290055603476725130715740757195168888175259748443160682771967817071067060859996770654344291777480078077180559936875413500031032826687793551310023594320182048375869199596578836132121896115040840499020144872944436847622300549236836070193350111573223252495715388626601288297471526428993220988263069075188044567161237406273909853211924185914539541628711635831996010319343775050899248379435757862925849827849992629659224477481809958880928959915853705936988729261672730503223938455964976755658824053912816482609165660080985964105313841593373593786639979439194769674985902636109515366527556905014621853456657611331938839060593209944784763357037235202782073408842873493489210297016615399600206473241365319702446168633781780743176866576397385143959654483834597591096708748301190286867382668797072200292265715712814942635372933465029401503565482480661095255811555426695123834580746456765061267364489617536985530433617756939988567376371892467160260753204895073525129997228424352866141450295745422975319597096171642313869839252889442197377274994267131699451151934397881938640650922833340252511361935535649152665137268723168191129719852972924012569897876702738849743297158485189451967743722392612971322860618380389035309290050646218843400875038096931434224018467666819686486934817016982286354108137997344843011717304201787157588745191470774401634285351950962115744398865377999201069352545096949088528658336258054528988963018989546264268633193072570258043330652834420123836140160570086344208161992978755040712782759177224541030405117517036617860977185180325811033215874556637783491348426995161108404003345329989638698576207851148970086658540975936997209416355099746545816634236370274074113666274793244775712578847140676360516749284546479154712005859458712018050593621222327014376414304813801632901700466608039357695465936978676320608687173953371402720646832899434979784712551266476173017746428352249104003059755485910632146540594468669579773857279425380192095605765723052688165458996572189883605390142724775710650826154343682870765450761792756234292810155528643686311876205111737957193677940876080647379252709509701187410534533180611686600041847958254061901238083612168142694141731632989515820753065267560478032582848249600916523584203789758271203374737495208536709444816860496315313370985441051824658303814957820126655733396477565415811669633958360247061603274864792425440210302926204876775092369939639066774306497442744706525378158887728008594721921888754314590665092333347950286471055724921053374544921081003880930319374775076063655784931077574556762160551050200988214553113590830931681112030847789834627555004177008525311759002941032453513507653712322013880174847340494314369311744492346915290200861290533532120138236884804899941790454542577359643054705175710998633637067834024937137671661311931070979838543639710173858483499019520212313274304051017330331890313617001457481725968806584107258584106584390255389391419812056290805220742359335790516583953997098469758032097612076247200282213615970956194933148202580639303940262043264479320553175119812886703839902749144286631406470103989432391441651530998285033204606432644356150600834758244334167943231688077514310033893674815860024777932459893438458311009550738613270172637512621898494821061048512653166921841232623019010297537108268319322862551295238152962171058636988874208428460947616552347638005726403753197146750900541245864063095762107151203139697348916231850043831276940471449352447974027731842148881329107727792160240838288836416993257399390859031004065355738424321011125303471676203553512510344966805222647600870861141085785173783111817552258285990451905633367295568451150394279007389589364839315291346793506135485035844566371510755801922742679107861536664985326334262768479913925566829725144037831907992280165697989031750962133287479660991894954493235867679415494575926123397926745284567617674392244796295490793814230880215503003318960278653701555490747901643114007864499489423712672528628716288028397587056155452856796134480571382365606666755999814120563846144554793231708172763032755344778369750690418521207640681888713294934738467218901512543627723963256052075988152571221587601757870407632191102159184007116918990126921003833816241621077797264452796994993247361208286903392378851684808637121956318758903649594001076927308178439913464624433389255767231660706150546721698830168100870563840464897312901585820136907456215179227421912367251402441920583651686523643305742814754991480933144407352184538506792223752183224824031126537541155733621801992705822775417060371134051569686793091502640581448222705644124137295743704696196922987523197942269104817462397829486306909243577015942737361433518220385022907462794387603962683555433520203522182039918037365845060958003863330051894881057534493810190203879088833520860427729150389861934633222010301741872942227923090865182066010958912366029940684661125794546069019177884581480813296740824528849857827049322337248705093001526273382394100169260507317707045470699086676754701473667163697159302252419927511594375780286480622314930177445131244735218840282293930127650508346165544502223027159791562231069610757508354217150464630291037547006131978717881907058438208208028284375596279833768583441003669377029634621000107351335538087575096041464984712376188935424145338687189567356405864490957272967792473293735743363371930366452362161888813329702065478298532472492567509055521389602492614354227506914426070425698544317256943529899813170132208095820448622240110521640644385085181737193833115795640676596658636437047569906816225008867630246386454420357030144365330872468078578225149793796602658526920527161048980542507147369373197741749749822100899955708506837939172685492133352853751689946165667409597142899104806162312049844247419923501553325510882004083203079547912788710901652554562333940391417507695888055910833295067753621260121266317797292110619933356915553677982379619904244217677275156858051349542573451367032615887330083149783470411826493885278746094606321408675560755150057091015138568537685328851928151334392285168921952047009576061600879576581269324965672525608736001334766054681050180198676121750579450114669479910389603149015628478553165988798190304324086406765607769162810407848306285565085300401631582398511211403435764019580025816058803770079672913014574288282412465345856694655363744237086674462441364089338184105531713529298267802062729997728770350677908958426405602321861450612335228885716479679859334610975513613567502458327594405941662653573993243368847182131098413695410036550397037836315048650186526029620750376112923134286118553768823750995947877940091125990872273741162294703999596943648642310534610051465640022687227958659690579978400310373860527604218065015435184096660428099657604811514717779741255980618685343186137238784637376145380868789573513872977148901051041621099412556279396478078294760096175279536601183064589960432882484457037424512169008903957881839044601805745384921062608130905949361299959721568182146952710052754719320051026366815987991155224234541196356881048290518186408018068559722373984434666124566488113544936727890462150124381592798483065640045495909800956402037697778390743462270584947444638728257174410607118801565898321254103885955175910845961709515651342807731656917660979478375928204077836773651258665496906465228788320524993912757944315986687601689717529633614764745926766290266029045066428959026429956281884150809600756172514907223708254485662863893823407888210951190464559212043410967100469119348118109336025571633675277968336441046246536382460425193142687365467715780393388807192770128711881716219935473159193593222828262494735729970914172530550859223835627646170470349865885341694521951329707220306953109652371900449156899273891851779902815332474641911631907115959778974512164701381944520853765274624906090886219495472808459130946938022410825399531367426430861022220927724517985467182287692957687855345313181551842732741028124986035972859743170128870615769188082533409679267395473495782282847626757492874968500728717622873814320904164088264285140419331890383729446327157192552724776475765747647602456558521405925795156664910917254307768677990477646638016053560751262358663039774028927766665523509256571566338963893620142399861576024498845976265196869893796153629869731457571910016105192617190624758333912273746273158131647037596896918111427614190887551102452134240720180176175460891998397174013791628764309521119193987297166328926160000064227482244186048281280344617250631053999268327890982746901617956207113006793168495163011280429971698811685439674037325676241492840460858106155057392475752840961063945733130750232586541307481833168585599736710003116346343831112916451082131951764586238474983999237616458143422583779688867265608877994210682826307747827853849971533804941971284930605846763942126601520023574416226956059928402638078638661345031911842206687277459197991137852695035661462051556709008716949928192257369737150287385736267943124346358278752294904929015129022378101951634379561487070482676201479649489964620917629244515720122937963414687044316247880780527686501752999303958497697624250583405473325058531270715411409906881986095770086515686835657516768800503596370821413321230466293932962897034026887384523042025801829669200136721462313858522107588181406499495309160731216542482881810484516060111258094653142397529110843457862634012045046108792169440719755894833355470778198634970799697886611353745813952742631237329347116979939763684298750436868871973416423094322700519297849758056348963381615359142465334244981161650181574985786365079859588191831041434163144006033301143634426279339032416063910862135199604699915090917220966059782812057094637496860356962222238460784428750411393565597316855035863931033034753118709353768712886241569232953367721057206169649906357077121094477586607575590100741516241363643523264604632442860098249130855321956542026166881194916061194979009846304844233209152696001498318874505896352673205636706484029164144651253306652241055183578573516966789620953160744899805254742748114862043228250509385700835648933196143377655619247814653490678223464222689431870164807472571033931605038306779636941201131232430631611556292336681776698500166554129210383720808771103173404127876133783401606399240834777023762058419988755243911800256640901467513607990880546102127531498600336904490513322993857301462374015357494797307655125147186255940094552870145953393370721519710299972018784417620938149068025998472459457313336387826175126407528507356943143347730843112596445330351070745622457706690529269560213294362320127867821905237286113648208771745301982879756272654365172563990567344583081495395422244521171282546152137985980099598189609756422871198833574486411291535878105965449185972129749492608392202462605518736580203083869935009184809242380313361569878377599874370606490326158029080989664975046853462232182770433296589932599065096165087122805522322699001564357527902893243034638032219000631329932136713020650349472036916403002540994719491543521746256488911897042859716143718927657226056410899327868155092315657486090072784819467740926738124863057039488867094070828534760991311424733303785445988057703976884019103954338987226089588759485354743803839508349737881501310872047817812338617606826658959015799397894557153102825832266345642274603663887198704301734419744319363143377967248289237408825515444154057299012171742704518174331302632390334518486211325662721787190223507190270677518420941591908788396658569259542794512780712870649904623730422643453567719299324314885147967692904957461859080743306494297548092996024234223539389783758479705507334539314970186724087577706677234583784536600987720103337417050839738645658591749639810752807002854333384494643042509052400381088149001445655081960596786248982113340889093096526224280756476493552341511997583619120402541461778077882948269487340285805179223322653948416340242595443995365310613226511046523248290294462450791406644927576837816167751861944121939595492291651486130837524041965727845563037415902148127114098161600855489019679242008739402321092972522206400415734545185735749511519257762338445666811029763857615442739147402945705497684699689344025196460506168684600683112068018918267821600568020249912542265947798114908251123890516316663616764088368252702526847640143108653628813389507484082315605785118001343411480900580131119573512012952723738858850381549857791765105458909980173448248440646082854047271458672588639841732935910457958059982167836622887346924612975211476614684240688286446532577032596696424815577163440714363649744752410548507858737679467943963483964269963096138573518374914361152902369046215983299644188687110699742861372989319596500516608855175740651973794896010694965031342896443733503181489251227534876913069833574549375105008275057523200596643023415011777804119995346250676200630289546539433067164465705684659629137484173051691829664734738338192876934394864320948196081137096591287031699615037500964881483326329428894274556640837392781782698016179920922989628707803618278173003391210558183917272912862980717929383701447313699380494194597720822555778798311316336853198984797519094362681969781425319759777833165454587560377811928303936476212674133800951416492059178782929942812952228222442557554798582433083228394430989165833191983249966485405345728558274316059727490771081869327714595523927661815438811080568819231612705302608397847780936927642610626225417130726644933483579939873883144518868904569564387709028855537989061360388984291799770846275982621683182904600206792478164471338060942995601864973734558751090610783808063616491253667766390309686553658530845843718421002220357691668326453659379658413007529265324484652249742358334966078708130486155470257203572544628383441281732811410273677337715428458954788210080267585171723888060376181771675920431725263364651249684294764347777978118445537478213738119517012254835119424017808882039312719697347207702931582103285773160165644779283880601540586310357691871514551057489791167790829927146870013487341966669689432874589291913457226151156000420597240496487644873996938370348808955608073519502799233206577385373260769780375609679999104825140651272560185468515155079958140755983698732040873942065647254432643740940275363171765180195080505054771747168912963956878202406363263114513569308784266068593850032831632832354957788801211981858840836982471151446661332831776901866823799332326173381044710500712614808900225771359825560503219526962376286934907682076181165453946278160008228396515583348384903926742229548712876483236578954874991844468009958548858423772135696380486440017721495699080146226097987691002232211289959729054295643579124135995969620273243136558521827515741459019816045840516241978944952632144761503583073424962602225395754187339067864351981162658951851404278809024171686394032327567760257694001921591564983801981401636859605475830828244134371521482202388765992420213713881017755149283075277131201893132591006833571513629019186379201752255546941742508956201868026883170453008979763077229331552620827032106079941123345351983872677227088986048617302214870043896760029739238648616119355143728525933134613442500033842421063626535114806844448414008811616136084065108319837149140460570934528868417400605222048002986102966285635127507380674952158330994798761852120562279257179678921824072252960075213360147925663272828037402920591670996652742118165017367807109996167867887057245806889876778527049454514101103130180424025183828713503312067955947687040009334139720323611391595970997225561797334461965883440430053125298139544013372399241122904821586544449651378640883120954333038207000446064517999792234745330906279139623548453704225342930565062600892482843454409300243291015767952407571796396202957663439711544105704032996527994747294353793609572173162763102138633089831050153337033373069363592504937179193637001584949183927341294463814769543485172665750750573963720249542066183450742915620977208022522854436340525802270682683369182246861078894615122779800976319492986624042528806933328163862042945353469083513239687760659015560709922873709911194681256139309068978098124631023132235756707102826139192482223020359071232781836146478823153488514607730685910460988086729061250643668580803426262640364073432924726937883520308300930727788331093359717268369555632829835217599780701947921587714633914762709471728244205015926554295342886650348317022223543106121377269810959618026758163922278681011223605706726578098643335154279744267269223486491864291279759116453980770165834598386481229387104048940650207152452026646838429243447769117774964823513657575667065444037495836563716168896854833679010618641635432553459606994536588648907329860089669253323025059167441988862560760655645827635500255440065279723738626972787013756342325801306164627107771221774169576519241923173550090498822968233933487021575535293391513037925700999104769610354498207555563326285705543415432276393963004721444174259175289313829876044533617367480729151192602873598827765465651311464666453860599571884187042742821633095107296035118759185105623112143755626801079647468557861461098652938768223231762034798397003391493811625284307271643603564330204451137402321096446703295308937264459199805328644989700049686053262467017369499941539143123523741617102233606663622736660370782852295131653240980097331780743985188131815758430765686926392663131870161671790233946049037580243859538187268423611863987423403050653422503205182831283206541888526901619806658633563809904668704899851909302256669255337906327416819660036047717889140181560549957793096881691709815160676606286268903684970788936114129355470287555065170227411068095197292426725895482683954463411156901909819347357602941966942836959226566110291719051460194074114365587244492266551744716271555156716493978714255744807800340058808346810775747128027795028636888907731822738170052077248969254614893784148019210712981505684159650025013287215119731070701439077116368223567495943449086947629515231509431296874396561209652867332101902670196920462624282188335559381862417385210148123701329624533990334703274582081920012407605696430465444863271041015949556575893978646328432981800160949949974778235204829911348451869754210325509486844736057194863583401030153880842162563517450032315219111747794146306598816611695400678575586214483186188092599177283616236495352844090171275672489347625016159834891164375530322634087590591463277033487739696065996992671313594315149323567398804023212652091259332491694826743326576391563923481053844971234055420598271025496006592121569497909714234400198029225629490307509420196885304106391185518147236677558273712806111273654221018485332835588013178122104287618387093789251272802941311110191183883048515327212900678270251036400429168919988867699261489126985008213978961009934467968306231206910249982735536098230304796773781070337711993182592400736347801053185467446638285770575718654439567869128796246101481967567729672927940823851453166065566844101605056529739451729543357353362026065828653573611963094091606143656154471005530607113308848701836848481723470939144803895306151612618687268871789206919370182899676024043757901805546989173405613393814752553484635832707217540751265955859650069208211348397897013443024384363235712481775969528309597571910867283865799623561759169718243951134167204970954242229697241734224103580692217484001757719178216190825927526546091589162810902131871589489269785923881148449765845500866115713561777537818336587128766276692143651646200400608633723175263747028690604065341634896159129736271937770682992826964797345437297666535950999984623402231201752379400055171800359894486525921035702921513548402989901518597345471957488412490530743342137809361072992308217446381759296207962070973403503219704395036274343778215189800731275637395698389338362981637009582906135515382053681064703927413072430055967210259843734266900035277330019220345494437538549915017888311932723351388282789463712681393653691400330884794367910377202989975246583326213266377215927567534362908381621831451872703295662664920979374627421468882440920304275574995813344972430804208065504302033282800652692364939301299501450523341946777902060724150357247304212264573071020383403140379549780286894638179616823738623259129522661561400057688777973742279427054269063145470791990881168379066418885011181011738488520647555696820627695248108795348894011672052427593788573328284407976504445531810085263501622447839907990081107980514317177306018431909315158063449141556837284445543739103651971924343614925994402824536631165530673621839960887931395304622087487747737384740227308354206417601978849822587053069840996621924712462670429963496876514137429915824400266214058755713094110527432522540714447608925064140740895998609166731987736210903645895075112499342945060286167447904430273064173508004434970335030487670644312702506997715689207202549811984478530400082905057978257012670633866334278462087997747484081837789753716197104870440185207555105639267227639970117732059387183781689217136144596013877485630666185507628430113614916255490829168059003836798592966092996811647146523666382487675996268761295213495796020822006346943978371295815957459140497880292931320433467149831551157474271980407239395629219032300394671705132741181810521207723701602860388811314083144359374266500557911933737779959178300205554312324220773243379344151934749522784404194514941662045790284757033212568952507588974893091448083814245141295779426852141225555618988520785802693341947261671744335269993114703432782639188242878699394816439072103272503005345269976093203990870916666411997007838396883548388703728158831414041502117314337325093451123596671767232467402534724562381559973643608144375828756999002286701314000082080425570465775527256027756599753119177589959280696037327620706193922680122655205051884699388435913780780059024621370207579914433029366621838653998166410184366697739850082154166319594019124496774720162522444395688224237118842811993776435846083361903236755404948785023915319578380129215681468539984546781519908595257342496107424467445859104708435099776544516033639457060205847087972089231310320227952439418224074596852922626205378758654695065565152193334085486784330392137051168733378385470886446566897177989172684698766168101923227913216397706977431758807143673787992636182615827017848218922464788905262216092971521191281496086104464240308272368590340994256023171499876467308909064891235518278286685803137747978665938103405200912752826211084660846784055276646925216569465928312028337132257041852066947778526506292112518209463608308241471717971117300914501235643615702441538231469043885557398613917635539070659028775044855495294923001105610012365200083515808041115650768612103207402775042459722651680169430153375667641046158160103460372134339122830045834162633750256889368776718437725807348977237506229158181361754661992055905311858164806976940852251930895551090332780419478634183440957484354284108497014730580383659482951270742673687411122031785848913146606555621976016958243236911150043808955915549541409791165378767937577672615737004783189016038573461610018308307968630244992487124481107159886080582172974122225477859579260966349221564319364900753404304521074033093637421268989146679730418346257366940208084367477315395814857907644598614201058922738660259149754180403010450508123590960165966452916122511497120656997810891629589298942903412399960318787199579369458981883722890893890629007886152860615896653170867444581818913909531947834711778692633403008238525553151177471509524245247002831655926014462140397655757254146876927169570420451270846507181938369356443933442122684773478657799698914950960962009021184766188283022474309347247606682200567424013759557424456502093222573108641208208724466098522415454695865123654843639883446087781760418269042856791470532572995745459018387448623441935183510903371325451719182017774434369623322647936617474066261225867769009016150725494256215849925513557558062028194091324479775997461831517404774664057667781096760127523373252390183019011293110786408923027672101761126518741196789423142711907609938182477973247117396546179647420944515940715569282393828266910527488351224507181519755062015764898037356203596767671467223996925275573383585634651420405731526125106870066198857270491504538120575773702018667584540550350400466472842657929178153657860947347821679240825745587112104324442482325554899715506504109087883650565588382059848666108887189559721775508762549236131703464392096645720924712742510349132460430822405129649069117705341349606849707698880482301953377078213947675702688454192663465532231329278127900232966693546311348161442065837548121282805262402793877067561236063088267405843019746079745878036907279625346507866792994399848862650008882949560040048097723673462296544479966906963436315654249151436010473879594473132880173434168181180742984688768455966830939150146922404651488506842548448113167713508346144904027091974014266715115229796516256738383732000339829146515982568712928217747794728447392840157569976283361005141380297859200568752823100175611996578112623764451347427830967522316664187721688500199078397923851357850082829091888871873969495474672177054195091428634227906721813467189882338212414129119464577854080142637892465869995536093991391778333921026696758373048389071676767790487006527638831607729917342670371348033165067307328047656321854283224224886497750947403409444420056614130485925857174489834507506778574274390296348555442959846260345061493801864824311954697618627281538118872453967191469413361112199819583798831264417403544177447026422427068687954360107686815762504977709695661056074043660307787777721370752031607716253613493695286915283059250811665895420988428632623730240607762014076664045283084265867021385525456786790184455663353542899488173195715251433806461825362957456059585445349220753670482397899489607574682047850120016602508113727081499431727426131092518634618177955108540445625615276185270522590704661953472910955596214582071949545932474185863025421422763193097966340405715352899159171931320260111467865354327604379067386858858942472021485114831892256530028515158993708992197480757175419053106237835406969964530841771688672891744839479842567005606105791273177098318171657990725749516781471552821937505045382242090297064233526447631402457377635169406630358086354606748650164033983197204486195334151753223341498362282478524373598532172588033914647526064845169774362045344972484223525972684301068518085652740413203045231730691906023129345188503216474495553678482323434834291770050306401478745933421542971136340517168793817043821203981209667548895451319871016660077035110494216189154447729750310541341580585357922502864315830931730770723771201278152229949472800046678378597772139299286952736669908208728272087773331589875606569670777001550730633108971688272959327813640435234517736013858520986697385260859792600524972769725509758817703075722933102340029688216844341682970266717428353415088680921079638498667392478085783159708382950391975166695427690097174307054541974483410839191989298741210661959216049377068501802618516065976786675142965119166117457631613389242166574703496550669148188972691407727910327365613849689463348255198884842523409294161570758717320627970790746417892723526267505133172299203600865232395247392776188549381439832711240645166343516953881159169580812797797142511908125297125365786126787854792307605942024843159986560683041063569444536298655067922043597472972324243674653795502672682172693284561011144747848402662789030153042366765978310564109237358154645029712406060981194997776109440607909586941299703205133739960633291267727383415499461180773701908356702898370726416586676218835028006059503305424155801214848405700597897640754992871534694577155064056062033446213708617812383795463445774234686953902976386313963279390259340072196773160550967274914206553891765791306452407790007492563352724416856135506390605561997913261819789030793943567374472027231927335216971900604929614952481361080282228150224843569838300614489229227051995270219327033398643964937371708547898359747534660728486727820078018655739501464443267774017654874116749716653067438445544794916958333850932229013258152690053855405620071181119246869220462290171814536637649455492142625668780263949377987014183557955222505580545432530676247803999495366940511215870601434364577899906957567338437527959546254569266684000774639060265957195383908251387099377997157203377554346530366575918390461288497218201655105285257414136346234150996698387834541452395171514467592406311861199341614768672980442086165392035244297595241742916333228734855590027084412531265464081092760877988825098765832392952954357027478767116296055682427016137934186316642682067346993398881666772812847639726668273396291901614244764272804541801683165073411245248035862283040928018020519638676605775452166068138374005447707944469725234011558343647594726007659156931832769188798852155168831405001862916072073104664830133777142319920235246802233962082866045213621112265915419309832640500268554894576580697201604365003069308250933439227632205663890871347780961673792866417958103020755250278225923690464849617346137504152823354680207235457232435236374884655121710923842977990505662183817071949609906665248875423422418256248587035533867725402668498659356287440831263991741913772332818374527520429516079110838852544157775188342742878369221207634753413507717076343503867884391016541347204281368518154188869779625255783030165165568107435928206856506449058132301398251073535465717087255504279178795047603723448656026099391290461997320636864559807072008924345963993700646389238811878038016434414738822090317910310796210478602305620857304879580655328746826866407842062717819927639003369940608166439056618491858791792181665433063571205495568728028044589139276523677486213908897304794227422164413392900469357539354650571786309688496599964906184971482909973761675266974414931704827512132443532235853436511483945504008857382208546884737483566107829072332680950417376698545632846959364822112836541891469518376903222836255703310240977027244654147389876407688756599174680811065791357716273178589930102172360502778886906795208689576783279053361346957618777747277249591492115890269620391203414925277030975641058439497926908487465855597598939879676454370252041959677558640789270281876034367536718595459606182980262067860599903027051081883460935564991528347554206610973975487492731612653903921819276161427472135963572571982728577806037892776853311918098480425381108850473321673611641495990992175037622463798052805452587203716185225426632426407407479396998175707949360796029913599932041896812408149233005988474067814116392715995615492942665432081218716733848078183731299480364596109882310980790099450224204195482780138830016701238189343223652676311666584799060860594255819970318883045489950718751255205077772303541673140809514055231354251291830672032861364953637700498763161449754670518367409841802477674382237620803922564798379291239509754576188748247837040099899217438119741141656526239846905885062307040949458482825381604884284294285014000329430534221567057080653509781799959461665961063761851413207068748269536257683773144971993729978847802252332825455045139790658432213767693217262580494651484345478928870921969874761677573744176125383831549982817413322368739077393217725363525238942645178964833099437004626539485446973578159473067265560980157676305602041469686743430775724896162674260482769667814756805893212238310824978659584226221856324267947306891293221178858800941158712929540489376435454546988087422731814837853882734278220078975920294053940409190278743060989318079370696059949919309971937412037258890017686250732940541045753395625955823723839569899530801069160181745551497552292232348648967923305755966687964505112330186042858014797725318569115173780096593586749926520701836033520270500449417329722810347005085286407949192855464854401315999435804627523650966210283215064202658607710706813527372326000592331367987289150495744113870690377627523136126667943131890765639192163802461496489972789916447780180163203795129453682032191455607072633105915737306808777586134678914580170896934075984604646724439049986422299675454706265251374258135991853768655863966865708138406065610255687865754538310412841882772549888949678282061714379265056856607752388577121672107549518777570394892271674975395958842508152060494285838068646723370786385870620880195291254592373830381102415192846837829372403288940628506355735311880359338448722028698366690274948771769200712009562103334787021899997504425897607759615471167580244474926436477617439964819859550967821006243964228606260444174567050491169348544273000733622107228841722135836469268197397811665344838199854305245594887207418169090236742040138870302451102483165788647965912341600112755405553528773823789673636091024507496554068040671471988866005437715973072470942008866964502128856261343431648979707033469728663097025157479911201751492272200565517563001360168140776108983924126203923238126857257360618480123479161221158123598295510499817729005869932542536015046556249700839423750107701642708206665163792161638560154867384242522905499660638456470797600973114521227275268747059406367526665525696958503832669940985401498394638734953044609835169179369819194720829610425998853831140949156420898152612505506288215003971938334916340054208576094912979685241599192959608635662330818965691616991822922876929857692103411591032038486133272974256023579933104494511533719121591980574115692455895687504273340465191870124037726448357095016867588659546071142702815966796960221377218539244664814167746437223787301680935874689593457826287536419775011174866612947771000358398071522599788201741289400632298657240415671931094057816208795356658952423838853758978064797856435670505378505359027234124915898663024604140025949919510970850150992009147573836783384708944013541513363860082036586604461839610370805801364305462313846374282443341957347432557356326687635170463891546086442930407833399185129511733493243548410271168619161714218112251763152124202407939304689349830000306062610638964231021771706011399158724035796757072864962684155950451893516718836384692386670319362398550566317926801348143105717718120004551563405990009602336429647728916763379817186323121386659426051788232249308824085452731844093141703178784548657430025703996223179917128095323397099594020418865858596050818991064008766594091309771088545320629074971973698854290835750948187189921342671703361624795718298043975177500887059892932878090540528812427605754170884567511955962493630741505573261043106817314363815598924685919567005669625284131193015103871907361868284834028170151508776962679598296959595668418431261117568584516158329462379816986098268054005022228091374669187485794609882962809209469539671498691641203674660360659625868941451011578855926724968449149810223026880721212073653425519237672929001441442341427098098773059381610216498090924119641199234046884817839530364176945886509107096590813803159368035013638238128525168930512704482868738748916046592154307650935482069413666516501463716142797564365579678205697129279078736269039077414516591105263466308456022594277074135080502748556076628878206973096016482158590108866295753456060001614735156589843530923455322977747992441192749841869145213315606411875598911941503769080303511232425760042641454845401513494984791427264056927344440580604713016038160525929922554597203916445137695189951662045323277878485759097535631051360839959623466302848056391301967974224927955585260817252162828769869431251879949964912226854604255300139220944548284668008953019012871937317356010457691279299544921766053219121022329068437601167584853360835337878949246923353436580065739609367664270867290661661747202899411485027049703027556044288453363727150588582703619934196819294783598220449205920532822374114571702054121638903509239548981484559746996673509388498043746891868932755039158955187358341966728193133713163627446101417682142907075495108649000984733802708515868995188852670461927484635384412558997469749562548470365796648468612305183656729642294373908132382841164172389141359750752830887511717392290695467100723999602536636698302118586178132241072112275274199784877668978194183493986253848791726966925094070917110520968405882493623039946580586139620546532570310964417124544650018556067892599506014732795273980534194039861453727680798684217688315366536480724873714198148542648512136916087469880351337505676105109660320800575030966916477620313158887408658779848824296452208941929349298054177446115434512936187003407767984050482199339701646628177387684314987773425419523627429251835480768668633690469180263159636548155044184475292388964707985739139529773557990757146474613130766264479601834685960633075349834183806421089350388097435663245372085740811300076404083908091926072887777170262552230190506222568006038604157435570660443016941946445426625561220985090501881008430592755643291287281904984640744244226877482689673117883571138808185612259075867417764035855966000211350721588440021624932866700867284137978920587595612596039805847673724770344877761039971192728891054917752497218698275341714863643264964152391799900564579521907653063161600957989719846287725104800087642723088925921400962410967650840768580861567307729812403884943359266017752687164257036663283875771538945895503820943520906652053463963572857417871007193351412316001383913127287998523305880797156445223010183467355791722282639111864812139153324701956721113102969873094753226266809484712399433649803522441428353279580051113230912223209478034360410556943366587627746224206668429034591480060713366638170453877506265798042060759417408497535060788923474583781642162359825982043033167446489731674150399208879268103765834851690451599607006807391246874767669797846738859331588142742776619662904979097753592998778872646865106656526070352946348128537610882215550312109107297605398801759751486387159949910977013932125398825361399502406020689747541084226381579238708149359838793139835476919121608630199710175665971339100988086217484208548329138840413220389393489545416362811919631501692254445658839947109340671578384266502201827934782760005194686606217456445121029443883807373601342735982451677634778595036208042635647480197900671500364064469804625680163889467187254109714867176237997737940231235100752791218221136556551492420981056840397302921576703099916620047292541503947981472909023574595662757263477816831882651066023755457882502671916447943962116836803301205427281935892751762769487065362299324972067804002638194986349191616856592736024187635057301677751365365163939006093408035344204648578340559781062639446564696355129093694212273592635100562374100613617996615618239574678035542252679084135086495642119419834215682944869112478099140377255577698730475134944346584317241287209550771755049736888667191834697559809147198293283651268525061271018131246136949851931739558340277821259872229678192996786932163662451250326356552162245256050548652769650272765448268867875641674875945947197237975331382652487630175187982501423720139608629047002776472228777516574217307904147540498380493289268717487161776645425000282565021756231613519963813767024989188246121268270182170107949168556675940041543083061757234511087504592489290978938214864528468700026123009090954508341064194426834884215286095760281654404636299276728750530519923384204707458441292791644246849182239085960212551754263221614843674819658238764583956810172014536019701406879484275969994675595422525429863490756049247514067681636436516813916802730354800542222315753625854572343850531704694765607171226030792381823256943253026813146952135943014960119664122829606548223024326191084222779096719247238953008268285968628865806493872681270547044584581133204726632578175925292182654328258137955652292335329584516547767437702782969267935831717389049118948042172023130768500457987268321944758168312304776551587752901705747239009821850604896030801422598022803322945388533507154064272369345481964627471552759220343427350885927761469556060331367966290893669768333850246997769693603829480886970016905283632878673048669892740427042065887844557177632258528701470766035270573587731907697908446389813981421229263522753693389943004038238979086079215523295070164451786100049908737649807991601750721283599862605149694689554553935940499344904576100668249806501058381700332705064587093930864601290919910774521603611412390719958526794868798191408952137248743440044000817397315976387525925738810059269892251987524422365021016060316219719317355055609893781814054537700840027332153786459797405396722805430688191154738475101187232452591455325029633567038468251841905454043403115325472083833683552331588093498032540822739013418398206912583951020515871577858798339671235296061288840022777162457194485302632541181644011146802634760053874421340409760461115826019343923751903385452957676427606339730333557777351700675265453231030302264458956470429490945758463054456316650296740675353618643701898934679351137692228452044947208783165880732198920770834095871393952768234220654591484273617891583840131662325912951540567671771169884594242191327602015141036344675138618153807652412035454706734825988659952347647355236892884652263002966027030855200890131339908589248922071808242649966877731447295862120365831186429309299855412936530729392685294670532106212371908861722230765067357550701571859098576067913297641738129580922910828044476110885526963683215380468105595429714939068986421327159772027162200109600413585981652569602526722082944578880027230544221194442595917412113702372548941493864388311859645998025931386072486235878475508040922376129755853121095430147153875780950163803049357718064572118349480639129410786180303506956376412865186726670006024226743565423964560505811833327254110212667547063660309785664558743562137984471326734784257145894928614250979854200164369227418656000500590711113960501827285909615886430380429902094508616434782780974316493017125923195477796196163553127152494063736445583935781051535593356815665518387440125328526256677113222356648784246864426763239049738523291824109342525692662115242895713940995402886078084889612459232176403291310844825372187955398398586253706902666201249054724285561987141994825041721390020375711786721385289635188732209194552221678232047854362930977061560070280192025769338267615742587454054823219862519804776921164413545170784306877080905488235982374371460554199926942144305107757568945533502238074932755495098085921137476509915613184393390472331560037310316079535358250502414643301611354028651298937194044228377776455317934423803664162653349183945655137367690914823756672610150055876821649576434800799236635207451305647311251463398645723105611113399183673479624020220439769868912327226368467795338050517156994120856738757075476712762344652184484505440828668408712668828532134788262743905474184229221011877581587002106217617796663464593469105023335125703092165892381418490106495498190170884950524229010481830840212699498710048445899787279186936709301726926379242943164189446880811512572997849541091908904391162428689928216993326438172480008027178331845283301224120983113373479466188065891378652148175716552841592781961251908449792545371084947890377152089759185916100580275827498742472801489240912265994047091201512327668234639796578446777136392126863570669301951069001367006086031677714228406917602870193824579716765071645228460985296486493050684941901863800836297716429782908196773320525722871335878810347283385655046837652457652093847191790635652612620268570116183485852188503050289357065183830173446559268975129568894473364336957043451027683480505832866260188249809034781610388509344313093466059427258499738433027421752617320286664670654390121073174613699199597205742118430296967756863525211619387841888365025028583998640452582695296210015889028009199865625514261948555847709003683021602189477922547686727882994404924699458025004990136582445533460190495523766618288521088792172422252463570088622421701646602756757142564994116163773828262786764223720651119056536392718759651010120724463280452213622853046455886719991895743012020126741092975318869308309224994155464301401661344615975679328300045926462084344346188059964820492607963732750713427792989509685888591830099164837186956287846269908897210798321824237592308714741895848829811495022737188487024307169801160691703522642558903651451864119486066091114383556570789223395919711370246916485483564376620094765801411846028785196196785332645642593650553408144787999309520256992607642230913718709819137620347293094862165927752386943426118977857856981933607345818823585963095633013334620552175213335309084657613092785278408303409057198508809643144640393440783498294099436784153338707982293687845596585630796549290205529573109721281729257298020927609852100158017144504803037614390821222057710624768831344357437008303724306721142675704617312902938928557794923831122234317269802920843020569871064083549797988793345505673173272749785255729325094379795816006885209508337744406150367206988836885114715716197384271937394410735245388313772234665775642193402401600386873517955461210338961822691424501237917146665302557759007792383233497786602064743701291832317513525908151965795169264929879018620183989185941463370418750360365539065929942988930977605507009946762737647961298386020419466938427411305116575121327548398992150072547387634713528723153002519448705147721610680568159214194700373649789455273312213028283570380645464841979046582901282169005610286466491286727668828540174746698381781025095819235722514171914360405278270709040244886832421885684110691613411561923337605095847485441119641031909086564925228985067076985252340762879809707598996030569107238988066212187737402207773614398859909632445495676993738820657259356901788207262527724372400614708098773124669717034796917622629856979907373902123395492335027733288294615633392479815300553284888991817206725561501728433900304258267868196400681877047385320270166355589831342792903549772719822312911186649312278241353407752173185204346398983272091694634890912542895097542788300247837273377892176626075060763397693294769279837400922353600108614531586236941503440994818085838366298056163850530793792785144849871442288212711421052376974653395063453986393960164331141035965380641352261942316420692447286920722313481731029789438665764139825512901506266864599764218403600436433164735622375489427503228497717124099520118786813155746003143761773654878956204777047040602587137371793259472866633582191930132919416147504037230839294841389867118179970511631959264222986275252108338151675090057358130237950420614720143772249293097997957820558757505402264555901236681427447186895080943756672662497250100248150068914634975406446855013670824282121008386110875931752879106777209515802043174578199451101114388940959522548415000963739989720738040958032924319719999388723966056802429391588766479575303093469784590380730841393592633872228953282264199577374994532176604599789760925061617725378235410846177954297686896287505403925316581913279965329865715189080837937171260920203473523173839219953371159227507517718845684352414698847273297834989189369573672116781689906682998981157802134831530932115688346930917717259321880494581531685996716510657125244576403816563129937661417459197939789566530593923685469044906218476973176330301421059440808331093152876879421425608935927827817916971749122165297843812338746394283309765078506265324855563076239134585604778843606977245729158837878922362352413757059537232712898070747544277949074170484243464246192660065026270937761649945892858694483280759846448121502351181770355156908223185242894781463202069185504527820319837935382287153165797122138933624510884621483709833645426852514476618712121531719638240068453151785684691530815314086702772656152898844673333404989642285511200084644022837284434683772359682165573337949310686754795626513050149160355608165362352431145161306012019471141710004643012381295501469934389309845293197096478051095858543008061706019181459031873614156363431064153588363815326301235562531705285855796992755663104337169842438454292771664237869578352833145806756037359339054523861340790603050125797349710689086068274245200134060031364308663109342939142073964372061532639066515205529099897011709818649260125267372412405968098016372709738372711549313031492720217199911154297516598744863739868558354387419875101773977805655580047321021125669898453087293744055177913783832569450966012229314066300464871830949119224861676744895458710669093373647560091144468402588053067011288348799733194332744101208145019010707235751538515182555030142745376500243124457468498443213340564642942073863822322106532515145429635417779521044458747302442637344581050646535147175753252749884878123344849451137125923216893227529102457765518739501110696312854272194336199487988111276777252324758816366036379068121049717657956309600057569285358997019552870175711890090340407551968463016999932868223917760203039442036650248444545402173931023493254517002579341748591017397560195957277013816331150763685032060810493903490940489940238186274652678785560219005958892555796847589383822558185662081920006911359302606721366397021038878329524503620370377851760192914587346808087819761451838436577974071705492695304909720857627336555185611893894569685806357331192026110972083587166348585701772918303530147259583923666673473472394046923092878349354235396717475938024906327992568986259416529725345817264096378307252754906579355724244423274963596179710212468257385730473140083716019641489008085206892131035061506464068294120664884172585179394564851576100075772478302133147093051186192957896331395524640309193390326347524003524582621101193865500586597963555049440523225460592723034262831786249885509006136909099581220097922737602252577423943221569177046417230086360712424670292306236774403102044522471197213836738963178716701984218952715930505327935310879387886222605445552722389460119794169676535882789707245933764687335528827431832014806097540314287894503623756747232080163616056087170960609180850216833301974083994993126039985488499425857539573917198670859656040083686256737510782484350101793645873016424899791973859015572535004406553618650419312845685395127542866627357668222174878906178725016434777837998918304511620491515826782497668030205426527877193963678435868498650558875512455708933959587194552260121539337958786878267281136893202633179641762587566009743202296147367267268688277475949084560244055949857036876376650407403237943331219493313238179223249722762719763535861284843899365855278651471344420373176409756903562023385023961984041984431463553169215662793939450086250804815168500851065636230833610499452518340459249828673667299022239900523410227162590660313515348436346747720322519321599262377028161919255715583238917975392323605993492917502004055465102649979033708699755195517509632871814309735428170289913009123537833658794633513448463706792305485678526458925973630524670186222200066989535646176408472587731924309869861947695785573311562631595573558888836886048645026235535274979205241380570483246754721166755872910646752825089627821383190734908186222672059442107439445222630140524985975560232555535404942726159554772183216733163677944795559353225775758606972365649171148404871347880435083349730172439317834035175942883809800879030573641280666681960764877698992680633468484222493192964828453825865866613936810251586850308887952276453011174436282009208828272884457816462296035264444434878008702263177966322690289234133587680975807543339125979769305853536599493130109051361054148245893026685723704750929949120500599862369370652451583512890346184779529144296726106403449543605560212285396560425851147383943315436930281997751571526150881830539331355929462211200376822344209005969820784167200236504471095742192780496314180479832983563801579526514871953124429893603352172714727597521755444099071967085090906157649391261541695660711598568587146979482238367523010702489607468522566473630621199321522148035502393251704267780883631776095299411200559061567256451015091822598186081970271954195367345390520013592611330272456561945777138796831696707467609151613882870452210404106243558859508261198142034769304075735141434625113217261074493528155122779698756514577143803967477831312418374807044653264976236510867783029773110451185913683345426915756878161258321272134456688219704610717574912269167448223448348022800316738490329938789395017017165493044726106147214928510416939096660465728460817791265261243704524551887335985964470836526050327826789417583434483011224175534121467603738774318879617833151091164909263260293598471076222455902844227260079511835440059025784046292365222833834723130420437981871114947631672016035231364930512335096920150284094558843156987347262373577177638514065713899115012250134228056687607960893575124360212057056108784639491077365296864352911267282979298530940668422146743232568434088361702491040672289425396516666060936479667749074922348691993203764949630779705323494273317271363582495549025884887651588178689263761053554221342842573144005075808158632042275628421039095068857667944532184728261826496886077548592972618818580620430121012780261290503799873129637858265452621065153521303390286969496824642453800427592025277261105743637735556638009265250957434123589046510311536982782373110816758334013481897745070688855044512303956431617028457048422323061630602339028369726477991000371343658868349595451413028578125672474744506212032021881978997506904957795354453679049114005073771456682470474367724894557071972781951403473685826662243583939069167284662077289925441611388563701297917464403223223106557691705551054833314379319723104848142486529385433735054138482424665342283619377778381472145563380636378849438103704147666480146966541944940031694608876266615615730486604435111373333079199185286149357297150851456129871301773446176928107120153772338574757817313695858859574029692675320294725443844439109116273701153629417713847815217400861462436663143136161893675630812970559530378456780614198561571610120825216544001741095171502741564373086762510046111331065473998320340112541271958244928057821688957437101052368702823021289318945705320307449256805611934980176556934576879576723470729603086621329476556771731346787878891395872829925818505472964482238277813951111062578403471396067221379052222353309345362507758757205861097613368300854830347741429458436675117724371487152720992620085084068419175772220579516534345521161272756626900077013722795463621899391238382204604535999969453666933196189925286204213120337835506837608753351989266199556957095422790491546313610707684626435407016674337890710110250026521798468399072917084151956036215291836340607574637138473596901616840058794086485342406325495176176028140715474623084397350651977856203841447336531046573582642995498334573441266845502196082991704446621480236192761096685265401621277739261121843991207249073359025771388504441108937612018116513868723930817928691637505052326365372114546279215451872405832647787341495804615127188342448244701202933017353846941401782937039725308475524476054455754257425399919165180763561468325657450333839378886587989653616486738924314937704035904286651244703439346880866365680056848517740802472964278467272290041966392854369140046644770371173021269924856745531919992269003424886640090693373740680869311794266652253218653239237479032393288890943222058970944739643042912889816340503836274181553602201291997555796801631189832967789037142225749913014857747999426804482723014835972134672511690929525488058643896072702023935591089637410198484532252371543480929366280832848147483363525475712788127165819675004380246303788247196909319588882545076597921768534626062449695514904542943043371441035081187628001855155229245391463737610516024814620253826238722914644248473109007985882141940185529427155445974178471933555746153670131971113365086244563899545817665747600445622793619205492953034379050072949407751728980361091705043529088357436425315998477676282681323844070570810483254340307414270407735718544413060178086395632055685656812489889933545534805042009441090936877802057888373430951423625298503454648815680044471333274550224288550129434246260351108874123394903586606008390304185319005742149241192805897431749027667185279944521881784081154707140976118500912223630779083401175814948504965644236987171137348243971701801955209822118697575984447023724302142690171282965354370178894135270070534266142286646368437444535155018575485183565838863084782880516447083570470340873179782622446601768360277612053578123286699187784013080757075739052392437573632879116244907013342564871808243489748618229025541564267024839881787336138629717261676171777691089159930516886733313551934338105312819342125084322341399728078597657749913665365604421653304374566997395299295337249251357796755744222045946112569352643783444817911967570793982145034859871898901555361230823440595261572428689376247250263464296523994116595995080034457327794813968813232247618605510948956152316952461290086923628988870712667886786811514990122453968994139374404724712393585972787104786014125311513022717806319656475376597015100183423466430532776074557864739703516393300986467217453676861293178615384171178826643702180230003447316085509700472534517245743737258914504521681161583550343545848382268473697333024215821401238414991784065887658277339861775951175729000539048851725603644617888077964667626878717783337446792754293150203449177967060324003751534082985511049629661667035316688937935540984187219250264011829255505201614719114633480248166801376883798897333693162452653505758763373117867427122339954539556846080271956239876487022442112896564967708689844284904003986986290515652843116905634870416056716740958896012201641401864063866942330815379461521690687103253543559927540468449898082350216717974988047377886777868433471206911725121549107436056256836693518317328526078864631356794691544666895980704213715858510344013745430288416399748067939242605721711162427849532788171781842313544526187134263693974697795183415487868563736795015381702622799579631053536674414495800261595402499221703841682175024905314667251548165639370796773000908020315360959935828305853213923862348586704424507347414561804668842348292496402709747973128517531998317299246395338826113851815398775140683133189163311937637809999569398735654869141044822958347526101181414124245328966851491746262507185680286611410570698777789478433168176712698354518431537335208405624858676981999606361850571099758858392281409674992862311911554301009621626287972474072692147773809881096660758712025152373402267769171987877047642107592164133136939173347963538136795572619427868899678954121043405072264601830014428844282039736973942565022518969851071875228654763131647699767073586212137069924753268759479186169843063889925950825863167699793494879164209784000756430350618710951262185522327681082280815314059619641706392191335631622507271974806391233490632241039491258963681659029620640830035531975553966603632408338778401842737021373101770454218518403062241387496072524215342280780132579118074288057435512414344022372357038790791494511942905309782240495506426272275505101442009040608180094191747041853263966855575096265826681004222238674090064224274537837555910002625258450947649207531511231064439070555591371024739683037128528694518802348588120780496044495288402012904103805652402195387338380602491845950455407076263568902263979049685342554665405550490247960182368878108017098432980904219605647966704197981502266584727497871367938787266865809219486971168298489209161270389084865832979884138152131154602843693356415377844931524671152890259245194068832538979542495937514729946816919662103814461636675423123566454379360989608397315816060693392425372044756618378653474638836941518304559660745904671258661082728660171696168088676933039494574850705342056462442496812319945417412026141015333516025145442737135896055116225407977250190354031160005165070401694372773184189362241430603903718507523817351923252580024451221007953028287639508534762505548899873826810211268792999057157617385999930248790925917752081781865987815975684689584484637234781741004146012935313710377011082316417339123223224764961148673251993601487468061860516856904351836641804154041429584345164137486845636484101529381934013774065957010966602043903871769366004963457107431468241668166612937821342116817215698574108656138822785276499965879826534231223000038466314469923483612061243183246751162636074379893597867915881743679853086228729658868662507434317308884736770176167073236340185373998039391496166546308681572801662328875555312779683889557658295681059660539240306256012536340092057117783583047268876088293228480732074528616098801106341972436506614251603125578915987245264400779442438969220562180889811712830093564390589630100640115319510818707943682796841674232919920726424808373161844647544966047344846988345394122308616337045198859773761345797238434726821237269443419099103892972986521893814153356834168026350260861691978456341002715235875318380064349501752072562624901756761672351002457275615202225739563556298856067405944048858055695606261304148221470668882708422907583681698503173897049063180989631252490418103871131327666244841762468422922644435772176636616357045669570679561192309361234628522607412287484549672102757550966467787434727091370056982961658768271416096685119192962638164452412558022559177660537509744434733210305105833343444079946760107659972565390887866385940566342718479270266295247418944804354633443508953148640615064924121662010319940395685953041136907240178916682675228912552237392424539836122974229355471317780616541040948875870556440524485816940438282993953934536030348419485171686217921651743425763514625389168050680471089359742635918154011193183964897419964710475876123768597246427397799395083294083675886679120095238471164463203903965350373482100280132827818493041696247904203651244416013605900317117961563151105474513590461015526346368684003958608379705391181957371306337858564168430122603557790785279174314935898695668120725798653816101230208277146217909962255783521619373162422492075433627229866963833373222375443438502872559312867565267627418997562366536828027365524983782726353559234292573366725262310970325441068433860169648548109341022422761404631959521359817483305054436154718024508442576066601929219197301864393006824300361085206803797549834189426818660375080607077478400480426650063304650048641450738375050234015950197411530177533499150101067529850983637342133525538537726007521877623850009562513921534425521394011184023554511411897601203856367958195574330431711957395949720411003196656355516989368454827856954943094885869908977228033500459488931604797712191972907300003338687925212462503363193813892792043418272699411064568178473463926791512296712447383384218986513011401154832282129699016318420866457893212799461906274263796964768425419832220608669700939017622332501938275604413147344257287336815333399046881687286888150713682741898226543778608113165309590569670909333759990162070964260640601105515493670870255191822682975388152222116295439095760311671917428733753687716994177134076944068941889027416425904959675608530864252514459569367725065645738362113172393788562242030250288208403473743705313965903011657348317087985561927468962747031585318606668646484312787762642594839668112139489503040773909436089068291312223658653448396312746353123096128976104478432346189781048552247065510560957722856107730574928681484405717669588359361826028023776703902832896458274709055256788289080280969129117005945250867446885431110868710451873431151647666264442407586152361311094063075744826658787870469567887498722523803881341744487979049468774114869282551416993319418996256365405541470964681682731561973208018535790407681928386507970211697937719387790439977211113220302257607172903967901932465730711115323168899959021509699003426366925576908118056903390899409809244227603140463494582825328290611136440657405600991541249175914729673334946623157505747037078568490064397200406082840857355427635317656139630090139691666639103608608792158198215828368660556250960024735833699452726646677555541792715457825274123488595351542519534577081195007837274055512909081510599305986820246144214992735537961898089554193548472658875805794715832386733755507730750937367515291851379926836786500557004706371356704033916314225731818473841153798584484871104343362885892023211593366955967341870706124365178713897991321309076882043854363396405711221221865415888184885298257725709058546465914083091593986992277344201640493303856337064752346763813150305554608187577948829843236336051876372248910270212252135743569560237242552261721962666698772426537932507969369738293100124284743780082639407289066256559375272008607974134787355600109560796881163653269138723859729613032496066206742982521999881854857345811493868147381248998875410319685179323737703742913797682141878417733549813531865849881388394960295061481348987506901196801332616076910112125914059684977549766643380114822427225170493030705945359560071179388762479926297400568639441075930468835306418541897415633936224477471522597389300578187271542437715357177483091146804609536078872619981853538614694006274364369312368301534514266404265522347818999313571312489555104150956294098956311214572806087445934921954295822096504511448846636734758446715774123665173563259008666909915840612677953639439330360877380391557714746205581515153386106723098641247870421866055757638839431334173728785553080342904889666585990021748340228428975373863480895655829701174591367189371703081433324021009567861636090483355112078814901401125598149806958538708483486461832793778991370822692838973432599620984436155965109013474040744051311845741885136065819281957667534494711382407209392974685098049944478501326694410961873943479702892684736968469450966593444517374409146279839212488983994072724372078972803015389097763157032050229658818702110594039124149944380609636384401982188092068142421158721319793617329451473614728019634175565654774415636364085057856889930254795798714678430087323656258525080343849714826604908873031335169139038590791217673987150795437747816063797205150318658704434788889382476739812396617566488391396636649448235420686436101441228651064939241984281264509673123162088423550596582878294683564003027674142033409935896454976186602022775953094312448095827533574977385337019590284068335281945441620772141765822783526459658011927608236076536328924490277673616921312120737496544967481152652761009546662473959327605421875558608476185302266022085035092393924473360874709882367136867937286920487469301269785363976891840007154148917324340262040371205766157395751950309228423429732335820168482174030766918746564843245822539360230999979471766167823404416988599073826976923387686992432979129090997453160113196833269104675624413044920024737754785150114958232599690000304008575112992699104537788043971512868959642396701562097608447272383303854325996836567499847777828865968172841388517120799328621793159918234787190354772296057957656612679400885021626900420287664304902310078805274594259683222658046157574143056717933936221159588011641002457062606777652275704607004429651221123322116419388563397791945510941119607260847319758883113230667053971751663446297563669505210746129948198420153372461097295914254083833820036960526407723833367589968611293325131964851536357358631102226054685873769873267673431790731032654792823466162176961721844727595967365157967368958058762324876488042276562270199609161383470406262054851079509224255629011184292529116597614769311723073417430806718575012463369362710685318890371077426711628827842113431742931183477920128236563449104841528924848484274921611877465016212986884784875060913149016913842214445566508308604315627228082761273345804790549836797929767978210034692377576930659409802818073290921793017878356337351743004735227051637827081347166388246884904549424965043976776444927885425992458237112183740239116521837735410743361180129355856333447645004755595137482420781077931563941176026274498313651067869039088355168095317011324562514726345834610014127896590717583011214088242323470786372630712880890096941255265827648106693922210703030113404190756573945676948377882636224320812908930321240838263963861165338224592758871641083574992791461822326174838500727653565408003538890737876050565398168746289332638767130696300498994068523480572900365135520624401334955084874807046545816110913967074041094811503519947920633565986159772361580277578639559746517704974473052207253725783677863984810984052471046170212339153230929700257141250430198073600916880170645512898005951549439754930090564687778621287822707800053138121361362453070012518055811311291372234275429351038775559668290108604306559328749888221915516573234923411555127811184780377380712788492146013726988275029637603067555725133657962890890253632582794098949017325866773225476636898189730377855639065366461606698756316967875692913814041320925743518483988153243049341762574909960124135343491442878576390498014508715360245249526366691741648530868190714366463887436765667127782659826895522662362774615221733854086569065165376186623970312796893593789043975924875295141855051230265428316438845693223174889978787740509639932064351048001285348212010640644688189432225334672956530637198394945698254150701005992429596939295377654537641306141933556604222371890155093328358206348028396423616134691804388033632270365430357854046057708505198825621640836852483919428675362369988819905436264714312726435394691266062831494419375413185477578246744844427841140093631589856772605557511938376096863209689088126590860265748783178602339152754083274486235610233504394328011264219652153067482809255332321455105075685832520531247089557993421969021637547684431295987290221596253493846823194083199365697709190407167868934968872546069401071444081367136010208861318325788577337691218296245256639202038806087667497419034323837434121989165418356106387348536243423643440154824480539375506245899538215798454759371353258444297751158281623877504959207504019746302335476357150540800657401577287374376041183467563104027154793206074624506082006948597546095827864229838754232039915113222808832004800167195492979605094058987299582825348512672321328738186115636818227024562070304153760176415162233810558240182690714832900687929507616154445822106092415486371309004790698344510622113156393152699648519555709996110045748979244021337519674334865566130466750418705862259844613656904313926327267729438285397300927811351052587612819128989544421352171457191220719931140309701609698842235582530364471098959393164354144145204017285830603045459572479514510339612036828548564510685129945050575511947733707945681290428493886716346688535673117673015111706646791508866822024967213653647983827213974198629548049420944736530204937485186150115634157767872601801698784230974084820534375802433793884630713253516379033677971692908130036127381137353637914806109273709745116438890875406014182792977639242203729557300611461549897162359171079785669877413640375721877493963978825387444386456265681871048160604489275364297890458963714350566006917511799064174699258724996186873512268446750842181853379543444181441984081011882767431510851027839634984584919327367625680620078986249316304283429591487331731848765027965198658778859410017684265022981828925693799536860002219756110172071425701902454163593784408762763821902140337752134246614152639742299739175368315220124169104294767656190777867222862869456272640597302384735349190699823285878913921379619328211717554916612042013051387120434609618241973660927491123194826428131290066184987312626181871077685816840371495785380551451698520067420040054727195180937296915264948192004870306733470546420039789468714130871940258064756406536620963572181513425643624423734422054682729464592257357931147731917043427764586147919675896073858386882608882157542833627067278270149261335295495224144867834577115036380920129139709676670996750791457733551523788529523183319507968893440162013062973809075974584633080346611335335071131259559484224759699410086248470235739153177203324762546527073791169089034671722714818661193395846505902026746671655875107645082899816328922582941418512315820041843265758608736811615883092497445279364731911748040119911634112850123770097330644050084656862839303466012221160363011334616434242114210355045205393041641764102176384029403360274808998316468900367640856529980095049752730627569069819236706184408192828370556522199732074362756196433146945678149181817970975330335557331803779572784557906211117634981313817192397227180532391857463230493475133418397274364000591619470192094702006205391736844690958810761976759716267328166490669739559010324208995157335034565064687017404909041428181538244673542882525708169920715833245241949624079748656163826191293383353254500927622091729970414529428691935683663078842887685121707717558281122802314267044508029234600255719879607603877401854481481233309910418760601971893078581586840620077208984787896861464201268539080012777013852481112759361087353976382667683081604793590586574674945901574568050431006619897950404848230553768717047264753144436243663941692084754343114228966405441117822240308291464511382476765703790363034534334119743316459996772276195570996145730869403506371216292237744192913535561454904752958419166548836277687071206501951338510149063793589572608017782010865774095489766401053754578861664916542755075248132338000275871357937977159558637491075109462556564244422802720105485961994736998540927869864051029669639562585687203704355855243436205467447451007908600655979793427390185665287961883253592473983689786261199300593723373157094581384787029093010818729717365098884407457472135026290805647593896340896297449355264917089237876822171259991712232325134911141604857429795850586770211382050144718030365062834543403807041614066991841980547289805952083414783046049644796118507287828345038698327284908621168066214061210325690619140831354242785234653994688307014395643409050649838216225982066496296209058189378281307942005042891568218481632919479265504901737339464007616159012269075866892779746883339083671702312556795766482602860227375985569359118076900715430627124494971866818576421471246917095503600321861912109362209372238917183283678999072518993676984425080024138752204266141700623278122816942109785394760336742280485390013990490179433070542902353163255330563721532512401492276935886613215034198170298890694665235651626997995167797422742350496565984674376578176449584434474996061024290975982282544234636122580847519358039703904052013777197499084991349786686947503992480993757115172708938499941319816216263438509167173630308861697517921673950411654747186229228410413816564518376263010198825892949524945936584049174058603172401330013548201214693984551661518486065679355630219015161634885752845814190341418857121887312433675985990430995205078656987810586520976672322958328257245917751240176900468152681381311389750496056674252370102490491880794156247135361413244592845545825639142171341748018152551559652607961880378214847246420175465785343345679659536252259727194524968769941730563441144251659947410715894349331212681561117247262310599745947035930319274742063860733736482962460464819350598029548763710589749070724094073175895999767814024301724429290250878053024857780036169718925154898269897423859930131588687946532326092950575919301096580629473037682327880465111534605853994796405507032225696128908798223564139319832403908287197960193819121122877065145122794203057470666607009244284088658505265085780418900868464612705833477605521061532269108023921993738827068305118948901638488614065217923138141297561408643860326039740724723125434228838646578405276113037000582620063953887988477745293924071762141487017484299768952112247508723995792712183928180303182484519557914607683918250731056497974851909570492942236408109717145111879209038869075862310889601331237792905793756411283947367166199170454104105788137665112114622654312612428689206306744977031430326326453100704375658128635771406678870036025864365806500595501179850828133816554791021065752851044477832462358637267713311448178693121438876286746398099156811003301255734815312964648335939434077925239656945980716314820132740854106908319212836597156774081921162479250506127464900230097930347043700769564434119682215214780303124696686049191102881913512330750610344996635788845232826527645288088071456749168058330381240070970890697090585055480732027432429766711165798314415238390248205305430323524276659198713454371929345961240866813522918400184793059281150201098649830226684982393055446099998227618698659322575449267609866073934244401702530100626031332538307564326371831245411529796512414835335640418673122260302780063764955501451458175923497759323572236486435175353481693646519417353170804686952467983424860207498322799212676194086359942024878009933211920259522196679216729249631649464581058431998584864260158317187435081817971185703115445032484400439451599014924670761091451123132986455068646554512992586619341879087202459837470979879310545394277453440445569739226115610534579597462082322145891958674513689992959077385606733116595422825271523859621173405211061478391028593055097374504811290030695429514565211732297448062679772459741523766979545998069169417273880279908256893836844081077588412215433485747854074175454572790176814335610295625927492833142528713235180009183826042063311530815472089265170026422128848630759326200253065615097827708639047357597551568838090219827934117927683482752042981895213103016297750613656065294665505299107419163466043726656652206956948947539542426404490756701795979624718568987706677967111139567747824101103130439567011607570060769282740035209412786935287177608249012117321284548497067666064138302348131067380739910093738036729814474058253304540411917407669838922922290843480275288614510215080357334867344678991235080369302183366275087320072829383895005976949418319569308733592907659723687096726576467975134016227368614285443132545354302161651548243048221160013050740242297255312530998904905524601988874542048414456455820806537812327752126565710850681353277795543328144699176814968559302541256459728557239986555841344134185025881822939098118073731455095386680228232447874119037192682444643642287045497225707180791462071919387581268237560067913830392794198727744331737155016488534533061299193885737476013311386625513741196152215104577323704033440193859930949416241346247252302248309083050001982409670257538690936193994564315811378342697956955053753219448502953693764520232730755254142846412516286595525802401109136001658458234967502038801661652655687634449287523878215272402021297407008685194155861657303782489648717759338204389632233940406577551895122885951394608667607329104699626438056072278624120144399970968238592254823621097512748428827446130692680073978076825996251687393702410291313209645995966546715985454412813505902256338871889151773419121107374675186653566757381920300848547602157939670710950387828061795097031506486614734959282978707752759683892371130048549949014999782414624125106834652263798577872830989774779347322053944667980833946653445620833066779735334822105973960413562379037147531358412408106255961238822660202856272336057428728877570242065749723601638416881488390063490149342679443855435459247859137264660437644963283470063760277342921534803092463086056449316295520091568181767961313007743150778108937562950661728903130051489211038052240654846552884404238644920297066706645019430689768036708176358635236477912081644832166319199095457855212459040051753036121134534949510883813341085302756672860381447414621107968017989506393603231097257787360222520431903733489122851562117444255561963159642494413679108225517225451235616002940022835524503688195293487068333051010035289816267556657188519996851559323216468693277031000512155705180930776078567220184772806326282428959129496916276487173553186483358229405217483301531813674980777620156019901582363743575783193246111475480183259655755756095167160374913047483176220252882510801884990875310187383549818973218610067048898014373152275647762336053971500308741173131115307798555832694868324611553598809193370845797870444269641943159369195589188487969022995413947099138997903433841958943005227576761681871947930261962910780860843542854083692507289277376013005594160033050710983938254244951000685590625051697930437775366807940137084359154202583113299139533977192049183141445030738710493716619452494857090428615805550846468612241689131559212529831593427323754235145125392462781052234271679228293687309981627258691602574840649189094071031317456846302501312302999896200148184662890676593240897913895738963287181740332230462453946800724407482710450195446986109807424319930497214055395188903697519393768155145053348695743357650334242113337773299474266520816915715200656882577629808953137741712974428734050825853635060786861109353270846623594558830421067599464289935374631743286280475152849200592028831352297233735001177267917807365683437822250453615735212142880837792181777825185529638760029517941483693947147398402448305055888390760584234345416951981428533412398579869917847319734505200529560324974337489504286473699198503038681640826159981320983774037495922560756266104178724072807034688345678954148512191807286624670032418851510131475902203153752183033442183204962079285964543209629694769586492434617827797020255672581174185851239560367907742243312453064018591057608912819098259640767285636368291069694286693507961726927655415538357706553483859240041478368821246413702200619343609666414002417577798562243059391587550000566725555271440937164538918859215997963938892021423465282206498295000006166725299925634541600862073423170347016146347753241485312929464736451654167528941445093941653635056734533717937073509920164283996996332511162510098402295110252244257251400060119597766871815591366205406152077218374001470808123063283858823520125929368153747771871950540083142118723122476134246719848575609802308862091678206550073160223048768899944093807579202227723355208662068606772093727679054418950068953045869907825002424642781666036317512500775162979579287942666147764832903977513787631005212466719581062438128771719661409288124169866345847661399606845377296195902066998627725361273778278458153896442977590544516274556956331077478812046544138866683539651272559301519016593707184047963426684352216715684354450680872941503227363895976020062378422410608633914143385209801220998867028165770291639124168298103749102936015478919921483186567635346981709351723152263429268966147861491699140137925002864422549223283114002448140320067584442946419436037075780719413065800150270028931155177173637323264992823041852757750035211383385428951656899186441341269032315724107854100551091917053639682705732479844193993273198966212684177660712181526341958364912432322066981220929899732234683922026997388651732289021299562022342613613774061652835532538921789006872361958680745525517481952376885471522281108475767080335262122586268353970133358538648293381900249305136193683998646024345699603307078574567694623277394097678717584693170111792375155965787043425069211091936729513304094214584271069911593499665736605577679504351986099058050641899380078739977952261726332224417987756241290197590470770389527145764901414212100144123352555004249430733114610497660205488673110791825896962606670099692844774832124887326519447115784034673360637084642385425084533999689048939720139588677898817754442562338412522680316851475894646485704414199043854102076097115921655718677757240511234063049446228930235618678611329009764358394854971273858639771831241852109347776318978425656848187893660867269058723101709731686808070500196481876349769758924840019261924196860625128372606450025854512939354231269574082788460983466658361115773212161192581411652397096329834670004420894194483406370202829925724282122942302294297580497706743659851118323509439339975662032991428494365404779694185304378333019036138884036357672262738555358828420794710008531015813746028307605988580964118220443121055875440852881643963026324979567641135145636130119939005098767994321167487002899630034353198883076223020753145743723218620882112997436114388242625048993582755048873050367973075703565835582728013924332032218386754696526897036804063150470987025688556298444877432831392835538580545741825952515785085320232041206983635431967544229240849258098888387756192829020634010671423200733903181294489050374429991277507786324624931068051921114049883125045530354822293812187691466742051815757313513664492430923671104383402935656884011127336817575916995153806931479425018947088165341047829836862444492935968719462151207522584239423566712277350525966053981581051706858095855839603621627891154741268901194481706153013451460894624568687564935150308540299557106282669564925437959732550092040510614662545024227783073249120041890090718237091178429251829821060893527838596869493838099613293602495828425649612479669890168552774831410295956667228290079722842522018325946685830980547297860830603972708922685163671975602661213817242831241198194745472699287597466876075449384991217678950589382090844822075416291290018167529104589960411753599607827451259120527253888441619850799707607306238078022409229360740447977176969688864856769945303730418120349265175191898416060852306765514075863618991974886691526226019463292521066215165544107280277251565067633872669588803719092113113611194842686728945455684330197375050342207939327401445895040477895782633304620307694392795286104808692663003704593274530995842828192615835303825907967606806190435750665826648132563918004579698148639374858898448946727190361688114726700067679712809964218941986145091614832723933439090325803302973983899160546622348722000438478106305391806742504267906721039040644086057559791963169706096534157062083358371254894608255241427048487687218079100648184686211363709487821846853599789469391654235477525066395107056367815650608039569505716526536686422430879366946492517874024484029396066480484576527658646552510051854786262863879730596849525392923712839935736951266505369474521368500105233585798689510293906342127986040795117569038582658191870009618038172834615211979172834355586256428071318429936009000520310338317729136268635953878774985249019052020358507161839370890965735086422956736886373967492303884019874915676860282942364054656302244645321034791778645930034711976557924097943751345725830661806903675683494072463930411301958402739926712515297101190741516161083283886832969866310355882165759130146348369084523705998290568722970214716571859486638463322094808246186702348614528623790959885827526720337366607755954278839676139011637004912258131578847055643486049295738644966760398901318178378542371269281837083397410237597241483979798301267540395151287441263484386975368000396944044246666302163234788967167577562694340306278618242903128901194811420672216749054702485799429448371092932091264432753265064710132166574067423671627581956156493890250021354708199853962092695972522957105206250215862706274648223482824841339661497333702368007769961198535683511343355234988097088731627526182182445188583876508189958902572703374234621672874022225879639183389051449660842027740353810906054902437266496221423063127705252092760211503610805666707999181619273265071416240284522984505314906789197277072621557039613197449693239221247476250809900808308201135515718860619565863521336725787077957078702553648061900568989570152319179474985499383017122437189453857360016999537228698369602594750237624477854298532411628136051940504801135508131833239776548715185527526357269631854233819449887591091115058488363176944624893398991823679735761068106594961271212543519146323922500165868785796203472979467035700696939738284541340800258159765598156917845678069378611489196797234515997080699357839779525790595578656014113768481675522490770859514551863475535157691089095254019334338831905598159992925261923656756016679186484646497115748556373829826438747658394179478153405028875789323515628384299954046300041243030164803702531591157109804728735022795994491102578441363442750233023678801663111644709556754573196260887410850510551739906811990598243086813763515945242046321262025104828037514347884193658585769696977469852734228725605477036370536390974753880243073215857173569555834917114793283653042335419374659664344536020190792225251161804559741319339721868806647957750287731316534454556345283338561446376743856013351919824143949501492707646568171784749843805599356139106549526951188691735624079963273376378558296366701371329198118776065656247319035579340469922433749257871702733912705097733703282642494645953931972142800883745302103303549282281504783579428759969389856609546273866965461382978925460290335244142705159497326715400977324562748043677414192815019957662354339325407189700987026113387930805005283807111437110361041458556799488661967211741721965170960544633607928743611220242284645001169347274349072387500630814170658112299318536488409222469016533440950996499650087088679366145301769747694366554688979427572180683066833015049341529528730476752289211623660124693104721757066567771234664891441597432030714682959231583869551839001125675731064968544718211259243740270769875745946690517220436291822207622944165919149350301837165922442655417407840305151859924428539119727732728203978314103744227747392520085695273938858286314448626115460959441148476675826022385311558261038203149671341016219290076333326555520868912940363756721700378093929222679152657196393176335193031601818052221031989204688843389814802415173389746013986870808082435722172653255438699575428141828654808717125402720242146963416170280708759181930946777378040578820805012903709106475355413077809333217155745753027727521526242999417121531879682500784447927429635934998769523199408151878800816918325283443993100527997866762965667175073606175258820941292397542967938398142990090338770774303097885525442707629270479728169042203622763391003568768764439345378969931364711721945097925229945673162413858159359069184540692025206545189353922327725964508254043077552739277295581258695880404121949385529370201247734784273629022340891435150680733801338982132857790469046493998658090278775611697027131512038340228348927510290081290286214691909832288073317451437208021078216281407588979377043024819048158364735527646281825271669214483935582539540397979184854409357632156045686361355502266723981130651985970282569663008872573520770495993722843201415502508277862997704783388935683762305514602259480074660325698568085191361133791132421658349046131808740785762840281354194154347374740433724024662889367202094364427026521787219598629330326281049607134607993250331362329852199379834703537857611082299686789952805878098038509828469426431916909174155246960926318068054555708020851886469299427864226477716972403039131417302435791171919715465661037659871552124425774092762737098658945115765619406565128048335406885472441558070557720910559661747919345380938232262092428487483936685966653257842239439436848701556888634042977312248017872629127359191084191581257180447245593279462963209953822577674371811451812571050732003254484225414339350268350984845828334530179219965467308961612666465858031834740191293150573582766759494325350455198066662733688063216701172873887774461545094817263477747462846490350815238916766682994392432168081901097631907548724562072282194506764626745952590239322967633495512332268881977195717067404217415907750841382182173702098377414773559140197520580157440453645405789034736347254857779268251821802030106456155742998765062604072348943473552639340015350299383500649180417205059068039607121174252059186736423879103921109384408025591314723712969383466511795526387214916202026560072885866563296227456312509276720393776579636696384825061099642479144488714283437769763651345281907878367677075128935781125468789563200459567685792721945455625439321414429406920840190613650933960386493534276763302664008708710463807050078093457388010590881348866112954022990654415006802361319813102871680637599501052151219853086016117114274071014033070371620330405154279808254145286174632901473778718065129251775228639056986021053586512250569741335353483369392880936169947867198688696709507814779646372392304658156349811629992431950314839282872445577977083827154022017847423195108672344750262486593034889077856012766957410037200249201007443937433906122152272893878211033345604189837341095875050247495381133526845021736103912481901168552037131518409592035334556524523636643017833937573914627303671789163666843791437387023250054143909601552465878182308579512036999224282275072798401749902024059040817740984940482812530015636942100593629785575473525264787022590718569282217813909614170117076772482060006240036051924705864077036328982027043001072131976981933877182655735368230299950902116875142466854884491074964797953360605674154716229275495421932821269690151738529923465732180960227755687024393177872804055829666211467084619980684840669120680626665146554890522621932760992045645889509962550640743776299507254636735282374200280347688677249999998136770895426467131155064719162055001255428869781984221962821961747944588041639910440362407032747214364792267003416288847060322095700759597796467548803994747279936729004299814902650369234926676187359222543010737472762669702567478907854478335819734285469903400293988456789868731985570077737976453230029145477587985709793467664531817282976708662917103879266035950824976878412871184044436476603647951064645394714950870127068309444871158690102600889928142725718176717263546202887880854519184043576729512260718439406054367989993273406255840831881124509080700666393592271833888151025940669310216222563480625764074278781666456919939139721572090238613981812190511240412244498818372375353030743107521101019051030715595985643449139732064670152669664394108415892584488798195470474523509704501406208723979695405861484509661890660207385050404353984006574435111504435603898984090932420890230998715299609978103177773220170775252851176369674464728015163559227298187250467299101977181294955628032111115381456688243811581363815022743233961873855566093386630996714390249754385994164331494365710906282242558905787844174650224635372846100328904239897942341883799532294766024378996339900473234160979855486035145962582867338483793761130812591875209896215007375867366276427518078194183157133282739828998873697995271170096441643648988026135437465299522381360151367713302093089972855692465034188303627185178934098000437232850595690413288916690871937908241844195195832991724004229318783686519896004553064457208323071423880021061404234792367728562409065438691057647791007545750480355746384101426222044709422293598428789972613865302021837523425290874725954182823889855693735101395223509352000139660912932919054016927482793451946395459435525007722139410551528663957604646281075793044655181908022680340609798353668657645969790760335857777718080474118693632723391607346023214511868692633595192368892787139162059840681226807706160520418052589142504013478614245041280194803472568475664137548510721442824378820595867750736073478125178802713578420751874899511855968192393339520939590111668069328301370262040349831996041649997872581786596991175211203575863552580371510926518837554975278695061108352413444804009978264246836887462382074732593588279480348468815812289157912021075490510602196698005864091437683030556456026707261367021293118216611595622307726474448947625565175534905673749572576869709606311888147767869719892850243872967162384317792826250513500099096232136460475870067607170931116783527703644177336970262203555392329881363076706084587273866291507973317698551590630065777817005225093119511571829857743493052255462050307630257625739565893286631134857719698575464387558000347842447934058087030119909997954983985488762576897655202341449989959817057630572810044830847354833669971750115067479120225020908600846814869827473556523436185280895346685484657051951074120271577077959258525663831676996708839988677290758509760795283816029202792837204241997246196447603995366917597262582261852652733540995448224447514146735161747763157775743954867570965019486525931405457715137738530107519874788375133696465194763028641003948667300813155100239053200724699376094099522335182053824698772924465118078683880106329425478722393845978785828231572553650008418228770603774294339799522420091568705983184941334235301766786932488035837285131861052678036625671925311166157528194921482276310433879667788424249688167473058057257762873582909030985208470144744187454850868424084071740282960295950316158061937001939836283810061031074236833365368582083343706570786067196746548246355523738523196671564183478238185711466675758846722854973599809495067117613691418252755615696473265873214664280034471744217846645552341345849115308994530432830763539734096296342643597975500961834051511540623061621849721169857182133848567774369241746123773513594792326245761962071462179392643561333933019058579730270062115542189391676680472388304825635561494925634487478153578253098019287873242630294604507394681849974338896316015657338340431350928631663796640502111234059344971262340908073235880660647319841255565608870811791336447236103348682851744041099230254556492077406565269711376088703902557026970001934325382289279489451671088990224184268314243039133284533958354758830400752645003394612813833825912248565498949091825553970811849558036645519050589254268941318868509798488926574710661795370330930415652198002250908302375115162581425364927669003178194037331595308417452312324864402941115370299365436701800179162888173962692489918044140325864958113086907246433494071296530562585175334007968826405614479328023352005444558887381935068251735003404036239886895733735357237495138729043887169601014813730959829035872976525575569148633564088764190588018497156396542684398540606592680034084314372692013353836206340876971590021486934114809155186372903602279347092872945135227105138275239098971932583952883055761504157895294982542917542752954148748353508020937544452909767305830992877186603226690303048989292190888227988477758052507971218876331391473628572226513627012040512488384613952994090068102600629469878559140877064776215436612515500766699024309157274258894329554765443989456179045963370307773882480320730873065088776107535639986877079438698217542570734501932567703605364465170527082127048402309098932351628190849012838091901277133260739661464221077271705612174513041562303289637632129743400992544303335164876873811482921446894065895813755605112972115100358808979407916017165622811885308884425448171255192935963722536930353211708225124623394365436051351031100674963305124643292428923983590721210069877445494072159567409260544449950090584167643252223709561122923179852563985110175810637852036123091907608189435658559915719010466564069107110733501410833839629327473677158384921867369725910170280364079716325660929271535545948176692705002333137884910225217550220038345823438391949821111707140805487854487958302022541342191880137175626443256113799365700601085941857391742593183423247273497601358032739556099324025846633840087764719885781592793533820216043596382428097287178307431719083925969549214570845974318022289567594723372738143980140301915278621812457733330802451542680072838574324031025606555459338271599589854578926691173704007255595234781770059414963836507158867219208084979198057784650867844925875047924921883453801317541713179964417867463745875975826956242826916878523315853469012518879878881358052191039140820385135574502699084888332007172544865723036906236065428727342413515613791054547008072387293406026318460299703090291530770553949622117030357715452324589733795534221990443885950708088810579389330022912603735137139362823275799590562316890388463682886961196006380773741535550214550950547569576424324490955301524212480953189600310959425423988590762731974355939476210556936609422266225499868404898624390467182098092664633621969656692221364121160544178643462596311106833827485408465910563989032508599041419326669751252390445217474420202280893890664240549893236265895146957506648626665328931496107459188324543053894917651930141532477302739801057106306715767400123135847242873681166098435497564993155230991751083370093148320830807016424876241771603752342657456780251514320333147340546200595904676349433460482384497589375988477085263612326065903278916747796889857632651857925992565052393898887080040450047470731890639707150448424314988231289011347934386512483789748742414208598109292858348755239177029989939834510519195118227070845594009253147116507925794581198273533735418690257676409479620645985047428657571230021398537891646857545885711327654441985004136074624373465961682859300242796053828497767656392784962052497674769991329224711283383429257887219722406698220068660464972452000346037047109211065673363446331600403911604488642789733827173303494292836512662669808625675240544780677834136533977219174083395647430612075991882265128178779417284876302759956848607542559788199721389045267032229135657033198334392168209424191706970681059782974164496991811730318444440309832786969223576115588986486198620701145104881853586456220967152164810139239986054930932769354104992728565794018869795065286145737974244528195972384043874123544130628859366923378779867269984430464690546452342175898356654495493480028549808263873728090312275569417455026756612404567235024912966512150712893517941559774503937503645679343143634685278743780736306421724158356878711552014807104298743535637350149990331847886833830923834134221347883438949683270269590073855949339730379400400085543245888498259491726272197609034076334160431797058715592699880192466037596268027038975005495302567643789153413066019522912921166248393290096268797782472581204270897025510236882860859507397831340229145767942260587178400151493445333916179319871610066625101973478058816684187865655041654975980100604899340731941672564950408987669917731523544510584338600788057766387958145859141499606294577902544437041876693691319180166835976105202646707760457888082280457459970239696838542663641734350579778094637020240154224153738331605223227937561716158221565482410042225395695157598201031092430785436337728777098964016734413265467414935450103683759718940645778540616654427886545524435687753169699697824973914918852628919774187096420717735646184702804272995333791160582345564833369994070948883154184561153290926481885680180060886879590429493636783928615655798057597383252834653741391431560866921169344922505976936683241291424962618418043394972487375318851267285169385008209330040998197955814063187661134044509437069253260858627377563359189509886507287925017859008405772938912748179388404400869771299320084849177608312888174215560091863508519221967325908482393768850584751816136772779278952666088598525156471706346564905437539528779838643384652037713843030470878661980613026880624727678184235617137212610326551350157817855917299599045213205011585689087458983393244088680825261228308628844474411402601892274075932415062021031922105089053368830086136341587136654206040792542890795238243421777274599635011226515920672627995649450069785973526414198674099602850858027252542930690159791014833862852938582620162117515787249966634999333083186591355091226104030066648268935079798454950876774492887187830781989340911810657031738020727546107042463027146214392294754660777540812105929566353490378033291877747285387458473063392782053048878691340110023075791998578714562759567751425310352724180769550183131328075115167963837293504459027316597676066616927242329569425179938884900757623723490498148677046081359309150542705052429177143060871181929996578375862532681352487552988860411060277338934733675154869810617023368159204310688336579054892543113990718086025850566536177391146166223404861017032277235177376053249170555167741076787883225682979422497436908400966360420445152866396899878104112533578815758772092915480891531815956849586135557862266595717280805469292647191080560177226959394054607914214376161992258797592175567676723557491917912560090223433276002076460949305969224293330545083404420906625616555253941232046327875980858681494884705409780586499146406115303171264728395691478420940135563777768877438541409046609410741817622049851419078509195202696208926131731018941133011434539874355560650367023005854285466362503406617006486583768723210754603047444078585168771072509190876451829180442872476624399782132857323453870154975982352978841902657123374017727754027878427212102568624174344673920593692269035349720848094683026647082378391482281951088134663123939317658274968484762699182520638280777833790146073689159743381289419461227735673152866350566417575703473752786877753719990243346878308151372026531360128771476892168936231178667326208404749823745949737850258345649542390172060791309816535177071790601839246566695867208766454191843833227263712383581327201896485914499640381205562035793088024350564038520977633965542654606468112187052003692229505940585035675504912749632502527825578240153126241770726818548623931552322422448342358346737445207526741738320922518854624677335287697512051008573575968853977044402123364717968011668134472126382190480215827048031743345150122823340749803906514735303725487469702263309521179805232802896009841296450361184785893229402514847582603732420348686445910706057780434992388321435211851260450864875844545572866683025319030626076135116312766504938258637493034279935496166121168415713840658099862157887540619033275003373282201867174987322955100268368923438261986893360679931904197239944464418599605436002073549638559679397509173188998307809938944978521345401874778485363542295278223430772624769744375322066729112164463025361433124983320951012998646091146714867603157486080820925813708826527181140224915579525798365940863023939456258269443602534329739778358478789357366465148117558626962983512874280081674844754352117144872984360666758521935325280000265340733329218409674559258044571597315590505056369578257964257550487870439210904269293507991286794789137866928091158104702035733164559326618810087436899962486739072863563518568776449607413230380451151457338550211147919205094257588746412494056990101645775516745611342512617942797735223156582351334198155873718495848640775114244849765509279373549227683319716471543368919462230980263644280210908803890463333605832938931785774032666933437687529013217607499133860078845775335704547170865113991224161765191901601618088256913964383342816673598741664160384202009202615819022640647002449149468131621803104953883810193262627424841004803986447317456061912557200935817736433608697280092862225723321862422142386560649019572331021904401652620692423684291158294546168343158619498290504455210619970102480080596637865124361289099620210990173043289024943400076358738898556935123255696952715486051364472893685577474223842112377997866239289836520481562060739266173233972458465196533270210372070503800575548245242608698912160605079297111723740498674208347205922148301979715084660488948180176344017246780265605318879240390678301814478380733530037801809004299186023233114643650271363912678255689285604378251671130458532347448609951280980244435972877722806853587279292266084402192624194128441146374502686006623015681103813144884661258214462804442723696086168225006567889882898879479040949509358635113916753154769655384985882146360427606375088544702357287933338215905394791775005547270428756941380549651075715975404656721077266479349029717136102407102450956552987424571379618242215020748851799748910279290974719574665360694700568772691963814626107736679214779319784678638551915558089345817443034219704076685554617845424777742665227651521917154494738137409035510089450074238458253954183036336660865812877460399069247962337400717126335456264335958976717839543344493444899701272280650719066356676891877854778091963160233560955628424109829292719313180095343394433088917653391579589982512721161398768428966425201116330325810523962917075955720082545872835850013010596127390557229490233937157795474734412398808192587588223612430234410237988054713804702786225588213131976314268107562637021029261656518498840622729162239753846803559410193403098602764050865234619946266567346807417674601334075209435394707883386958697858139533156734208474629018209605178974625601869743829449304113942332354560405380785333481175672207475501453269702149914342382078594939753039932800652430167402809876396263179624748748338146356543643772068660968841660551699479090316302813214687227767650257903909852180031503073110221207320246433414395150542191475173083989992377760090305896909558389080787766044348108702280970672318600719986918697948317718515435510519924784456928506246869464767623715778547982721956302648870989004986669983482144652149372993097524211323536147188300233165352625743715251175568766758881764949737943941810453475493563380951429325711435439838534141092171743901224309637759571965817580652763902972425707989017278325435199695479315292039616589502000722935768464517620731092347107880471891838814956989687124238467150784048318927773659264770489709635512554198853514285299282799758294583588258906188877214778513634975440634162197112825029879015300080546749600263252755396420332745698353054549305590543638427791284587931744723396491441774535161946945478979021700692155585400186987971939355009926663009374407554169804329062537350762774710297227077091140358507519001750776461838817052241194359981785711974969450967069637803747384959092905211119648347859055748994180032041161986346722759550834452632480009735526271305031988728409340987828528630276532965977271644685014371001994604241436457159854259074131958358899577289416840132098796440314231468163357342587511505354607793128482361023929976896292901660883554852470715458118985436276959065850080879694393969850473032051532209334481492170235509374143591995714978757993585928134600831516891335105019850569165209299325196398560821994225842279554136430706604978083354851373227619094487610941216590115353919430255721095260132513277315283680581239084988837525192375274722795133626235216725564234883216499848320416886787173765369205334859990941294072050681002051627339867172470103554011857055600528361543485551381608794230737002876696707159104968005511839290416173869930163230358885314868703933476906305376599354006555528639383684504501663813028942902689640224549446637425401136919599276651973947468718938209042609535193239157020068902840050514782988963991018838932944249577675070987705206676857600553989248639816634194814563651185919416099699856950745269344444362880322911878277321931787002663503443518737516315957866916672561501632666309111605364244888939701745988146162566861822516180424440796636463116975545138010010391738051515856251500568384196672241997900502258622949126836114717303732286202465824394286808485267994221219560455012584320271123135565688179810182612497393479878757315667180220526362171795571775406420963763923201064697156467054493708660547118586994772613235400511181128694420634603756895845681360709623634570430827215611628045247669368276914872944890751814282434111388436694670184596437626505380444666327816296595905717972487989291045401928879098178690163553069047126682289426031032943446747721362299030706016954696993086149711133475537560009167957517922144284300399437276827022881217914239258448403885649593426905641215643353650807402884094952856239697472874842224527348929262634667303373237938377464069971675546707125315719157109998796718782988662818750298209371567809708769815467527447929436424230921873946545322545797430830348154441550779876777958319927604500232067509517404432485959535102081515449140791869340011944625510315900087013701639653169250011757671734694120390938829929171704191419013640506475151696929252025410022976645204804307181470808848669035174185363063459794794982686675330001372927977872164578637616284412046777002069581626319679196437117514791948492575638185247720275049146617504637610166677178858196537462866548873146571283378047589736606481279655020846956779518347887273470199796362938846320224882846672449623655014635397401966452397903117347189407307908284446493038341750407515472249837203506224220807060165130551534582113156798847948623962875006875247368221744500605739093223931078603621591998443832579990901600948166315242996574391007906134927507010833697566505448228437624868424997322384535685676104823009636994985885667718319807371753897818052629554135089337335475440903201030019044609157139567789688727344965567983601231719671861349363612814639513434168996151031341198662410645274681114829983011136798273415840540709092443136472225429975295348741569439843584280700581514458201147443035972960956891153854292930668023181857759543888158380450125511437784842700377584282450940365066273810385583505436958687798868778662733405920991245881957299397559100873031712013647357993928657494933839922320570864578317089814619620729357508230668967495673109472776037800570239576711148863244825258229413502717417873120742823078121311261653854443778003202637095519096489420524462196389112216007622376818085795993152927754069616870533395040871402882846519970622948479000994760322018108430576116643984902813408058943827039334681372031099964508920709848685749884848439962501429067977328641388745343289659722513063819470388314637197413695043176435252387812460899940842266275192703277465178792118888977066132214270308094044710868285403077353046440263488217374645621006685262920962068587666083592787870152309934261546103480734376315367635630709782797975067544572091128566131598753977936374397383352179317423749642913089953522468184244970449902603288257081705969287957268133368742389962832487496450998050815416889939961799466560433668418894094768843758628987034719957747878341803370489735861458445325753770731625623789099615485750333195280278919441595111097997067662203729734436233879415266728228942777248302078821965398048756672949049463564259134429494325537080488621341953968641325842043642353436726534871009522509251614456799250192534112143901338087333918711584204515062953066568664067887732779170428788101062840125540328401822362382784049249243222480714592196873732206125578386131342829577734367461651247794404281135547454153966891041089463345565830454618502036615219947521422413513741681276404699374493215774552426361915534390341918990948320068616891380429976929590818666965051986837645280725301846968795676107039561777053272591224041557372289152434943672534597579507671286168640600448657724373696886124101776083084195305436456546917356905997294356477863202520334683396609688883593053554911615815830308131686136600231358530721499462698134137625723563091918798176102587086464827479420790691234579592984677779732253644883384211606885869337686330610258323516799368343604049236756212291818278018193221095462556298514444840729791374107173923093872297365574538592285919520348202337044250001607446436900080818050928215997979215817277677531305624508307079341029740146892023948056116531763376808934672138431752272844991256968482952340874841557804353803193364238406021071853252918601714616292341093102552573596385275607335984592999193480203788749477676266575580810904438882345700389148778946561851572577609226312459722401384685732454369772928509981865232649678598956594430986608168856815214987075162625369145202738503164650735292159762198010869848456410947523341890909415756570717836872851938901260217133971260788323454739864895231158244497216274609641262083434166263069596149298942401244529605177939548218753708853956402427675953110734255350061492189728552415580882403818605374699362406242113509188251252107117949943078118711799546572539643143150582349523507184207652720025991244985133458756046494834762788641375168231033646750135561119104656711509544891147733964150558993800382582558843781767871823615663068561098958140749594051737180227765074507848941704143277741668143031507119767687272774226777827525927287770675015775758793853164774105177644111936417057436019927163375662596294121346189664011187771614618383118118532566039506828711747055745920348375131101880088045387879514428378499554965707095292037945395467996010747201293841687850222364931459016684503118012291330561658127542614388221310192310062298910177088142912931681681222726994220332605656231991609406551505348968509805221912990190145914011311909090968157028562533228821177588705065714747683860269552763462054547697644437125899095735431092762847822765250744972885416725547512514465110464393410906967850258515008349638411028333759933613285379797487112861550529938839300708817807842655757596302019089095774456284938887443155489306150256031211526347026396344143364906719990283436571242682393257145496648611748653669482631728165635241976590157217372560951489689454061233397158122784488174129307062600858437421293699021091256446674825999598426701099640462678284324007128577287328636114975851729204885871333710586221267240050107670828118923375177964842214860754739606622043864806607158839018786920007768203501604331669245129152548213736781153394434776176761143502881841986157069709894611716252918953769267234509539305370802349777247330669586562489980808210260417357228867000206845597311725320199420395645469098761953639325297748349373747532501142027272151668740075074833183460510646444068652055116885418791251860052349465759628237125721860186336602928844086218146264474580889442111655482117623848919638488232316642053668096388681388502135298174849602055464772179201134593639870401249354079297256168144967797319573572679289178985660633254411849689405251155758628096265046863201972453779888224812056575732081512089104939381732109806351517419843986631660906547114789923808598789138274035003691551653366500902246947049399074786627822178159016053925968170998248689916040483604093600313245378592079132652996557586559268697727840736276745945357066188041701118933801630319574102185405892976587971720661782691706306436639071443557572927003707499573821667252780645528340199415165732669504635992833786885149218377939203050357306889784338395790409919924763445531239598347314461616205500851140240394721147931550747893030772630933349599479333487769673281393372510940782660705223975251935550718047610377860768895989554566600743892699985555575878966053207664129176442017014222531194819524157624303317322021325527879765020653970763334448504016802580006289338844399277459997313912990853031979940390751923524008918742837834562040788076652609919741124503893443901051987209509165860128882627546328543208093574278387235844216678923626331447735909119188765520872082934762884204127103954518442492686782659113317969274529322210177197861322591963273848175178512098608038594555627257969452779831670406854654234493946052897768437345332003755125350926478563817487464054057122541040561856092432807313032725105423875430449681714338237224474818086486928846093060651186261649856045669887312969874137614427679581264176878353352958062489232446125918431820550838069396253573892272396123985533723300079297563376165163809021223720234944972401841345656962791530557814568227829208432339263355350536567337773135436512534809895614342317643863194539090051783538447528720888017573153154414167724191537123264972394769560818398050913010197036881869232010351215921906013796696231209267021783400644433466764685596586547993887146323632183064388922554677670408850304906957232182301088675091099483688448169768699622135972162610017713859179546882260540913845635613429794784645583526940077810610836884954380025916278624250776774269696279932139695381265019020176834778131776724030302799067625202597105401641500355793560519342040641158708044205998885258068967082554484345279390911776501271753193496852114147601249902998244244259703787316041282868470091213919025451336837418136125785781141127733781457995901193510652672945395653183087305869640441374855645491370355109338602021974276466540142954534453715107571724944712966766290246632460361343928993509919571127131599193770554860511253984906860057189688333707520823448313884593747957650035211024558646950434840480201281675688913474845829605491202563334290098020803978230864655163808037523765314172213333121021598907963751182779937230033402535957648661108098094281282899265715776058162828438692218528162065205130616805595017737917034057126719056901671493169688536325152808375653159240679489495261383645473472151393528685587887706192150613312890390067091586577338273164642367382623267205360707774837155136714728976495114578223290073937594113509580368541165591208682303215695054083148522062812888661992458550739125476573725632624903149650592039954437381988375038005184856683156372936580949057052303940394985902368490365794932959985885871601413640306848814286618104241811325695520579579371934464226090046796669530258647492733795569601542364555040833686416427343816665924104006256762908888000834988686794263832087929665457247997772600139571333699542795251725701491193776315145666209251983072495251695044994785379692736886536340639790774261603995440751051513277394279569422223219243622436825248243402270420131631026600227022329531983282940536146577239314812222422997097931683468204394837137216311275435630738249262514099183710592822989153737006320880761598919479675788090988789017544390854067663140535079887426744407264263130945992971375858626003997297868987999821843943721399518625077211814064499385801150772812238463586311209162153472437476203639859561017282302645437960663471842212739955718288606678076249237658054647117306595867587647746199379885940375930478222211006483407749621359313182698473734329630982768454195851171731089571732502915064860209852969254902105277386742323808639491541539868729176479592002972655859820250164804621752810713140893067498830054221115990327937727691593851756663310134989369311280989800510180375654087183872325074883257994080681128608037724268846939260511545200479463431956707781552287296306111049460241725987380647835547811590293409309669511299002530689865556391616320512717777316768412476459977389563762835508896764619432262279148706066165986325184304250822888950649743956278785755203980493634587141868254615066761500438245947025833494247700110863573537464630314363699525413230552946187643857322223947161237960602233085491139226026794857843096208514556623339832216766377625821334868792976491896272060269837134838794115560102383237268435138732582923522985964320732417579067806164103156115653046701383822217647014814798347249804837152812947444915790605948478130561381814612984622846143390205463033559087636254867257036753164103644375493183234453319415132569578129194922160713224662644966727364274325016952002916441811403511635852848547075743157532949226456317782339026410271198656029622643368285944649264367481219016882973186093237800901737359271517703925184872126076193532192000057632741187004796926990629490163413672449772534597763963815186092378247692021362132960306918357878711999505085154840296894582994305248622125136286902720765493615741021444028812050972248641909796874286444942624508613190743693549840127552655156858374742241159243414867136200341184757873744467183549117290876739542032133173167051890627841786158563368476655601986690218533041842891091785844550506245476123819748674297628256270542780735106857752483405880488335295036402595653648616588560490321311597605086838102094161064605826944951889714467486640822960600525895361021914472304945362271437848142736061663222438523167726525283324818165644646279839760775979884798642305078905438897793700846188753278995236754976725225884465335291662931596236443495212755729527804454924680663579657349303758600277616097759545542395176843212717449754787347163509869550569791887960372782201783805294742313531128124952556617138606950875144567471866601261515730540104098661425379745191456613785987520637263066935272620782267555228864612222857389210095098529003230430240043025103204205239380503031195431961746621192443459449079754338228145085064899580525165434456179835676646182099710352665297551135399359314663351997330436751861700208741020027118373417764030208626050965582429961424348798622406866569010986838707602713594482048810292066552874667127684598167471125114955438487284009753321830501773866209162822424564176333515135081408801487333573957546878705474793270875153034691225964849908047669243025064601054065533300338944425307118401697334421936999887121979062196104432087944524339155223108419631438000637236688097180042257141140741647375935367299794375655860400555784860320109858396470811772396232512544133504522045840194949173872679509389802503149402359706282332091333303876024952661364895248863737385906942016654166780536444604003972620106450966284537042259733531411287989355727820957638439303051047504093304675008439519182284045415662713961409596766193942563353434870542197040204652477425654338628319556029706856172388751894704473373606114046783549837729578866008455378858331127542974025133010811303423923520924616941864046441835788547258721387879380451061018106787783351291329241067607939375745621121082950040918220562531809707446267465295151132963756231819955312207405983757359323210057362506891843448690232011372902723030178222166445863088114045617480017493296413281622400918490870109927400810044759040494733344979118186933807610473264525203289870459384660168234365340374064095077722931516974847401369373665032524282782314387035368439417302052446976261946254034164990648265035903034194252432400474109708766230654429272766633199887324214527462401269716139488367579223875115640669233948149522886836589577405267473790915926765291690012948681545648669894073632198907621524147009473998048614731959899671067817210970006415816319482572415216639490808466804216598377804059988716348276786595094301777363629682471312959221217179601729576641448739724948239006927767520681486443593333428974176830027887770511595269822107138328943193801171211948421173978207300453604841244781341657437917099458842081130009694147092773754429259287230594180257015230971160734108407794940492380217590980470268456748702566408223467212946601582559993171352353442704769456549749162186868444916770878242706140807057181676839867792112937630119351429578408533158277949043294912647956722205173380246525283678020214512412816769511327921123916881137313945519340428209078609388912596004348354264777496761811268626143370181488955280990779315397536824812287347667114514485345689423703935313306609718209955097274457055875984686455426688544030284605345615648982038185571043544793923844000914970007158541332315348392630580154877601543063607852576291483641151821675214438355765305074134382000006794788850753732098180834473281622538438667222483944146457936996928803702670718373996390170961200570830898207411068724115561603626643319550217685328802423096358776418933310200347582130688273753176420803149645355193938731001748091371888583703392069057898355069832563063683777937333575113056813060292985651847304657875572353897355379329953890602345390063650426618184738955266929350401006154918394562151941585758772089953687032405212822952756618584244832690851154757607748922867596481441165728412710961207961925446523590226840031177749850395670785810882219070491464350255070023835335763835006288034598103815132348999604823041034932827165301574831566794873363211684347893787708392288381918732626512172238112318515330395653653783030840776893672629931656633532013141135012859741822450860876745417771488296076284234263656277943398265069095357461452817702658203478983926614863256877881191804812159734768141252237737378716582304691309225015980427798270947554275038958206624438340462456932734541643227454083597589496115723657404558003469706159078979396097933328686108679018308832085191833928839906741271378482145035455316347590809628683083438395790602589870244273530909744122354932543726203813848427379932232831514434556598929777584147586292653531375684767382697054996531160550046433156681679681005154003717172987975213918835324564380526877610176623791491899280528964359898402723952568763794406220752605127780923251086064374583953743507197288713909951526226005425454302453358329619815513901210840492215329611945006309675733967999158084203264360817756415399102857399514166053825896394321840832951797068245278232791658785675568430468752819117352240974417733584581089821975230244511373462034290471982496987476738126219055730197747960172909784706770902735628458708202258622073186208519892421135249086575380137233623528789967412917006495459407409218718002715090113710374709802573581878069300893993635018781640663664249749844540802071583630941252340233123410627242455801776952094433934986365148334074606115540176637368697226091498335036665657629801913640690123304986201840183811705800210039524059987854057976690420641258221552604391695687947607177463717502100996937005929860403183738423067539967612268964947337938536569632156865043127885139808750673023829500071245362407303273948255580773835895893105617500311252597451111318739215054258934798679749419201963649693220040665084510697690855875604341985324042543959610218789931713416584943461792806261967410956827503469561883097747033767917313275240675959087600598332030197264990352662811063939122310940946592463550561848185195645492059122662243239925937360172406544360207139203763734400726834474821148254337175839121355842852291603410072964236464357634700625644679242964695631634707789308685484740444663725994087677674454146199206158589503809929207463557378837836112645027261491238083563383280059671794675186459208933376038989412356710209590303033566704409593705119633387341790230822351467218167189011418244770750644836302777239251597208704735338315690782125719820740643571245843113683621136411017481815146168811056898872420103939077458518321085994553492340948783756818504831991699387518852420007051118543662629732972990410936415625731602003468726392074226173914084730308605770314325657397659837709587071867350620315464494127153130192229912450902454188458240382743862852119547511520491212163808590345999816208890376256342483568383058649508933838349493372658202569824808482551694393569044435631438617007729697363253823628177806956134080030965886410976819701022462681528537487726978170748847252063156870850626033643241441951968786354803327640591147052841969698720061015169655440075543990497959139934532885374238585166572438215507985850934952404577113873035048799631726261106902807741763703144961546307263206585852076435525366704427670013385833048505003758104669512934721374796307307342378698582571340213727291467228331569468223971629862294090249531051023705391651723075928083839998289287585000778282564266372366371391787919213275696173180931749764104884944133197005133517205043616369492723084239402225346406882935731331272768192039662273866971980923671581861091578286010355572816423434652432751902957202103972821483830636448107058748368216433812792595966638747029493085556148019004234065960492862552204593679746588790348838683656806469899137246334735772161223319203075076099824118598903813307664856259949549455658747790313524269511665865964611663776127829577468313737416949191498180553049048898455033619904498974522282667618921013816535184900043042071308659873844368441915444375410408143052999118516396567086164441462942849847679534516219139749308506637043228905235612224037980736262475187318656680605504891106308961018925028607038705191933743068178742566040034757008633118428924567929634371347571250138793094424275995899344059231128940152860648550604737688252781785092632652588307499353314174779610009514899653126112704124797449067619436331903715704832775364044308929922043867011270566094394191755448287865087939254283281944710838548085873812233656401624450900936275507221911270894338250125838774197072159897361276876601203513741867444988099325798190142107619997066173145899583350178659581297844318263011895059038053865231590000346136244693108816046732777372320740247519185515576277789662531561600494370886814729747747647453698023206575487655331784087511793506136589140242683447599173859772812666247554548030359443957754930481228024545897281787970905668727801988645795872194621542478089756372972477504688214705128403049307831433571271916272091079263844648757999483290953273190164423780809328456661538115998905458835763025446953552226698749645942217720529104424325069410239492444390243354681845076490270936690283669176566082310492743169689098811784091228344999016567480572089602475803418147738092705290042575607001216677280451162004672040473918095528722831654245112360893804000366696785979159000167686524466383201773508719938044559553136840205787067041548272063392691298574688927907359591968523240211760515365073306263926845920033205236803937425938987781086409739256011647182776013879287422928077141358839060799611255940895390826272518588621253285862398694812709761010619539413384509110878830873333597002853350923748969596860677956773625907939884118777805109885477094236590360139774383750750527705337912011160127089223982465701208552026901318580390436676180306572258477782045848173409995347131630846787675265316868705766209935831558315118147639152082351346043194989347737581137288094349338674001527105842835303704894677716737481387930206065549835719270032022203968479934513794338415899278491940106259235643368602030576218645992889874566697316586701023755994519222265721124171285390585154067997283733342529138551634601472539774217129515324864628348167096834033729905602507238904012126903328994268592713389254868278338873603442704638103815621153423786670254058915726481349025295779748665265139834031606647518354069250928500190131496391388727897031716021785894721252236812134678459803384794277596145556596360900012463606220726536334047881197374064693625328865340545298373818670597104940893071358256402231664528389898851145221781200910944403904200715257681993292795163176136519102038810166861309173818668276405738215593112040175613644807214953417125206679120527986511765138827970193273984556067655093552438142332212352656488014072272750791744288167877726005815263807656436518675601108919667187981558111714974600476046669709791073404687618361217144394880017469962456518999250326752275331990482988495448348373821687971322375286459818736130146858564647095771225563778638963865389576049959869778081736052284605606983618139759697055477825440451757781776849868635745973602395036692212701385753365691657005032417299915854511526289336436298082544653223813087969179790587547543876626738461762501858907451663240721806500274925668238294577354211932599647002639493876440753827912243811123112279923796123238108394889111955646832564982170837407290155409807711153461727451586157286475184212360790137244418331361214162636358493966291433380414705678251230772618104294628588329485043912829847094152563464255547311154590429938114568048196968043620727178116987962623150997960320522871757708990595020917114436034440515455597325706125607297233184822666816762305950162935661433505775631576597020471799116373727718658800961875317372598207936314500112389566241821491507457957696961071799523780305805011205158388821695768674923007903569521642190160633954174408663757618234363265896333112313344948970824743811345343069889359561850641436042563008893133782859818740376414158541609194672080401708091785567944123231564683173894570769449634947824895502096778927550150826398000072609206818016104404321280658243628602470800840595137947940357220156370718070280111938618792318315057680995269550564076925638513679457078494816661712816287112299055501775832843475418974569378289771887158153135879806050876265853556000038184251841681065370757086391130801554072994921193606431293224000080206329542946755814821111282942665364772807294486458363285433814355583970738784665412645947481256529165402505098750905266106422706526149910668025196366105474655174790005821706712542894795231215368141858091125740769316734393011078516786008787059535646297488113569451033638840220651298661443574962834701937318401449431171781364067083355715890076437597978998765080646858696945157469705180395308322094730554371269089571821039684899857412157922929345130120768656901860994378380786576672008023849112690324931232813297805801982125690982673610564891987232379563192447222627154447715840602934161874746049646612789850362620458355346681684971919228113053420972329148975828082420660397351737919797832388237298547570377607216868592509475341251856885596165087163808907094117266067277149552987772935378116652629706080460772389578797736372208530574372559130988080572518472218267350252782665816120581569330643083065374582648221803847783760227601556238792733508173245717146381768777393179395414067002105139018551210021920698219764985163347674953163169687233937640418548726535335630233384310513352781176439701859098453820384064985096923161929414585175805746408459936758280776656566322658275166161198249061650846440090704448235062658954128830955721929955259215344925925018390952347149655731209644032233164475014961338681322471048190529563665196959237150793063353129344594999457276294223724765098264580734832721891854311209036676626701172671333012334768561872788900774180167372668941110438005914242163543112355592221342334828226225836026409773958578190432434150784473991235582722073184020289256113755816737660928540386732920477618492720351114705916578032685314895656984426320481785994217306248470895376333303306473770096242486911695910124647870425605924212542246131836886380757076273869380620966020654616350841900242006032628873840051156273039393951614927828105893720024605392558757207562264461499738704557191710843778245184244647819973379690368781847827465922240426226340020048315033806808460397005594037221587387255536984508068549373097555529236270829152848940756749842691543679682844917053113779780021770275067276684115738246107346180873857541675282502792318946652269350064189347981914431308920377998592901523472590748774272400290606214919095497053013040175011888987954783767583189154281574475508795242071013056574906697346771669219910284907592667906838753146038097950971205047771916552020266702657148229799106259569813055207188636437310893142824367453900232425135230556571807293002446363203617786909750837935221568921200780160379231471766253513038473236795082886666906730643943997267857055959472118234584503327800088171096754599491232119304941780862369139570512940090781870903705732040607463022446297789652806664708245170507062859977819949952989078016470349762949842465177240192013331554447433953499147923337457943659500028446562103700155393717809257118772464519979414271539558670475429995970183359374774759072017058373650673060669567994265676590845943391402565217812147457344052257438811621681615845604170706421569628473196971297599503391356292982017440019613311825958625485414001728579098930730631149291937869408223135632428725240968483068086533926290386410033776539966798637605680304870061558294993797899571818828028281336654805353472743675982339434420518067018481872893668557746915602587974974811596154697361437184799006870565362101606488390165738837950162801846676528850608479126671346665113307130942225446031738611913321011352291476928197336475615376982036889897233336227313983866826395893090033038906016563114023145521632369365036127964198438186359980727587211820665158345460862302668021427377976349456516322009109857872171657026187522455345328968353281200393198187678223859644146050578170038779442026561559106940742751610850139334282237947655974151814995495728197536838628247343590415607611190492013331977224038146288503471599607596691807676973585411054915102252687689675458093981064286039338390972389036627807941773769204157316487560525688347488515205014422325451204097190373945428359093780940287131379626964333981284516218884049154666165268673916277423414782218995322193469902311289296150871789151166579227706225226295495365586818856251921086241792795243639962069019806269921009151977388575920960939508005131630305193952657627661306426920203767826575729876074533598515360744566363940434359542590702806581601290625268273143846945138782748706037137025194629470807651950202672465923210582037600744477508798236368111200048010474370780162728468674095008226887822375639038991218717027808390456876280804145698075323529696674287777087367221522546353680242263075422422594567947041074623239446015426868498612075705968836016293673248357922575859832748387981341661650964515759475579662928386804043471696626522547013049452659197931422855911899862815314775113114381289159693251387788696860307487284748443669994065942680913676127981555543066297410058356389937270467662884073126737799214308424666302549759864573096687085596707599255154424694060686558311459732374916575796334840059585534486741560994076171303351411594864528030029041964835146422558150922466154964576284751790858954324778615643552042383742734270497800988609384023639048346017590293288330127855672837904526333073697425402852805004150519931519036496346409277147195064130264588979056996645379570116426514538138107355365851480017674541076903373734475834677892405533742731620465043922458910877356695686386978532100521594744729061542011170200469487658280813464349663305371186730502531374909405405341722078014282194571652128242772060946014088749228706209567946519108543794102375523193852872319958522307243378462226073561243180634236903607141870375876979509629985216277524971368541972620278188650844044378628933478513504906048414079961836137792354548299233430907837034314023643658355716496648166899846323000944315086067361294537614759307940742399223834706222423784986797039445157781939425670459767792801422281319889085168748778025829008014761418272325065607410737789347759769946458815908455431380064433020638188001296708211603917905948303286747462078194114685886813971922053770445793088430683002556689493355063327749427009197871441453969715666222614661387588922393108019513898239325707811219879759404246165802654788809493602298568186001377263110985115167425927602271882518251184024533930209791653047509770205716662591743185608896703941139322161158259575169354440656659368786289045420880791335234991463101503432484852759965730946443542554555198160208991170683621516108705898556883760085019051082771803236580695277211723313152667137139091472013597570196622554002381359209233068309499149336061823039829961470413010716833929094704220695181473856837554269729633604838986821266694503908258580742361007043832710330636522410244552874885931565723420477224781168974467770668481649071328850326041084157060795811068159797587168242608118560201332179712482815191162624494515479138202243556433136970293192212027678781347106048357831034112826328590667600165856080288630870660157740030706139533648081942307975546975535696545938453803634717947342389295017981316979731109700275397979421229306990997584738148317232556681880279166052755280834876996082875840089095698175139882455779543783537679568608729979972240800791943572830337218462053541495442101373562842950344574980955629955881105342689538168218537101310267431609784138719754904595315807285536429093583973519763365865657471192111416902318386543096708227387442510241729205647752854422260123992874418185431832154000226358370512970159442626649751535026877850175189277969917250847508871090941741299678939028507093063033681629399308431493972983808797610178246762417341487176407890162080624902644168689261671425212676431303984337428134544771717517657118021212725224989284929920912976402663610395845969857363828839865819073241508005306283833328498108793211349872767052864982104016886930398463459251367319439517245559283938499788334384509765636895317551434546552988095798181223189097523081746532505124937617282838415893973147536283909757560255951681167590758741270226828067714690823152053899634374606515888285968618262313796862379119306390997325251291751007113727878216972176008336347130737096230056685244483739795280523121829151331778542120856387748096255902211487758589274660110015613552266084983048309850764269619372502199506977246358541180070955080336461346324072236187521605454765639418329050832080249250057929121062615193424776972264482469279845001271136318890056237470372974183069104402121796064647774927709392779253233571735822418261916546868266060671858542517820132251894845574650245902029464976540727544667453721277059858021176549173349863513419914858996615971395511344252367789346145807009988607299044361301514227522717433194419041291559870524941347345279791080382751357914670802952018924866377363436047776428312970413409813840462947195871769105611735804110720347444516640942321490296974724759186320815283379778156588694173941801376330152065909258012172943685482023774027680241481744331458109657785489563636298135766421084816920751588402186934984222411635266697268966405056846974602874766149037348585805588234849971818347038872842242438923596514401001535433576001766457555383487526985817879132553945378717546870880386015227567214037503705720053801862052189689793123356696380330426254758534325527275797901270921315580577039991368293706321681620480043959048631132945756534218723209971988373576665452280622430447644477284347613063026318667517296852108380881227676818924275993780866958893858673083822173113539001278835086006642165830249085980469817053638262809163423516226096786933354114188440103424289755987084359539325742744442424082387072098872386291071959098034863367596477368164769075722109852978670958038174948317796065839975462949301270237096547589934549049095837939160083326874475066854321139576877431088329595509512939480367190553437623916059869261132924065058860117453093726470765248545422556707562215172875706535016373166007814851197265423795644034878085623418837144405414829038954110821873469414332547197362587554368454304487527789997716286155957700054120830887404374419841882255137378993315212571876746250316741740224222647869750812357709040814624260924483413182044596742137385222927363539558618803395221351699407521498344055159933162034047329347423244589638614465628752368511064688671467204600521359527561845305827325135961777040302532891265055422357452283379070328483771421547048435131581111808380364838470616836901591366364963082059589405839208085694162753611131401834870299045192157486188566638342204738440567504977039332052605322066027956803289480667041522599437298146356856517943740350496691670151454566973442903225862506579887708764961194078813228262524983181209168692928893610915723092283622437299680543597184251665282206650845274633131470990315936367113271132545606634628604124548028165710617506605482365464913694418499099838143841871629948444049179879751703031431482787361570157053531914625383050067490763561991529163714996819806699526331939087164584496947431172657730657196013983546920325934686844482649121250545111421626063223920807612818435399000521202911603372625430758896605078422803343357690560591810348210802790685034755154468238960646635636811239580723815786721153718606668277717030134529154915927416387033938435722218416276999503652477040246350369114014644596261656777312793888567088872865013517800219636416342476431609791655245928148311673271486379534351207556621216195161791532417861203677052440531874160441862714546282641061746345078441742337705983425812924423949865686161105442597673243605924552310521366638459534988014510342664865752568346827602120833757404482930170148681153968679920902517267349479412552810501212628054772373150432486737034318434520760763454002561560058188727919140245120844058190943413972273748142759436515180887738341916409623152677668169316057796572202866459535404904476391482149289366367905327552620715942289622136952314161550707971618420481953455569100990878527554379522599970514905855216148390092341773999788559286444328379821749698457788018002879784216718106366431070208289194467661208465031282050768380819129355194599473600389296029697600321499798554934859288243116524292049978266241629751399771977974797708953228156294409834416057423725176836547032670521969052729167401083424970766283208976032170074013435847067358597735802295602509500386630084570829264928187623023112069672891694902795514556359568221222796073295445558684187893375373751318671818570576843969128500526639749490883548213989471347435518986685496703705129965766073782033518870005024747950540263079976166195043736311368144208590327335354865253570869104428378211731861091232159196584199118369622068003557183444266340484192438969153386923141944170399916882230567657476762765188995194127295922996324913980017414341668337950742949674875175268034450794970574095276140031450513237788286656908626306806905067085261125459112430461173571125405314863109633801530845178040844653728483207777221548551426802932844843776778744869788763503045296336123448807471454969727816203928742541166721613226603630945604353207180046492687523899481325750378765347310141334765032845591769591105963166466897443150441913169069471564700408201447459764337504690244542943844613850255211542869090838452174548209405605202735096159771284726781529550198620418746188953716309854678160356577400105849748789047097159116502492616431352330646543568348077523892369683747511343895658353539722641053490969979524831828755535398446331279458652285513373407668957043975673264294562639308721713015027770242407967963074034789692262770585534810520977176182973398975536904072586667963396102713544287173831133128895383388928757353914635685892202340413977421967254036711809977712936289895566346165806669202117068585380622974961329864346909629913299109327149057602450640559517299337808840106806744985370090992933305661242248525590499618417556631396588157991135104123226559310655060483729589089781032090539789998724960486825396203231464352432060987080450796196084891717285284980595279113066721796921791824562478979421965047127827640758143275734369066020259393551971099855293447623005343931495028462585095073825754076422750211692605226322297700648446985480831763181385518289107754079507474480836849261392763296604304470114279445576963791111761872597370498450944525237043193305739682646420768881163879280443627202300003782247600558271280035506968830423054564806776591183258280664531476568400033714956237242663981039588702660367569789239588873663028298189883868235260075923106505428208465416464673565175873943084636670858290079310849245403999743954289952548684223342481869067029321716345873764101985290864790081497979346415595752765449576452621316781711606631166121468854818676729305214735770097461233364589067394520930919617277030068290142995465899312981762211882242573271561323756086744801529152466423023260892587411178570952279003248899902211778408824031692458709394277177861452841045136585547785421818138161267633036820437898344514201418827012423108383955096926172677435540672618083655985604381521546021399394883794124577410567791561001812370867410969623737732674400735128578343474669891955576755872329537015457009467949913711379956283478630257612097430598760091451850155639827538937622553835240322681064670061516052494696596809427605576958680433072049562023721667068112327046708983233166166588742452559966307027529601602470124798914785162200151780679497612485562593090706522086345802214595523916481552051946988542775952344178967224969297480613235188589142232959593719855094660828664838814552056204382629402912384044837113598444174313200019681818830385878729342044964283930864084701779898362980859968962246249474430413014129273288659451864751695877876317889002845655065465259655760923450248513616899685688051410023781968057692633059044981801636369907471605457764229332935287646607500892654347321398694980243065456917951153368021742969261104308552064026234836961361233835482549169751618243313052936016814216154779659803516665946806452355783858264685742724984604864402875165472619274512477173377135172752870650690679360450754996788965273394155458113464835257014008875089237109964543622180334922462778675640664469481266207256841698912013223646102042095484243971967418600058570015570731342312083970010980903540057134704058398703162694639054177898895751094917774756309395367253830122279797344993181489841333931259249844957472054086993600427576706465141953857478009559660002000408353008478571051023899865572586915624352548247015675323334986081569853553450971944407449934024572386964543405392397132120635237723091310917138568892217792903131220957683753283911986157004434846584850737516779192648648725298262495101691223032541800690854815660278209228442671653903069457651824072338232122766142792688613734381794373017556747358089426297239058164939001673438963044596539032672502406254216311708218069082419718292063901298231901862817942566012488594288788248196224616463659504730271414008966435072752280320567478698616204692056770811219271364384295896513526469777528094265348108773277761901553538509075895543636111809903433166480393698250512311412146348293955386147852850346113138047513438088954515361445439969452328639982453669737967194692530152589481910806585549623966210049696955169123699258920662304697788490123596970323777369790130865653348391744058509484309847774633169223799122000591703397283351040177948066989197841820112858836854467760296802281708030639156928624880309187266007907358591136794845513737364786642128733667890424945341975848987145703438376816107551852403251718180771422306650760946072804812306791326212972411131513026299272229902376268669531395046247915312556969250482214692739157977527097667447715771315933907966237380543951974707815562776538585738821161347033267272100314165251941526270390727351450743055054299089353264304525290616791383384324611782531995872097810122454841080621723544262751734649104674111629101681673075924414602501734378207459298763515930767705536023239954596877275517320207889649354097869553868600482545188282448730612080925304313375149933646895851596284799753061395498981328206142365720754941951285705195242351815556504147752622471585815886995879496357548022179214548303910817114593627914167737907845547300685674063847712756188120548529545425267114919649216523798813930081701129204422562612493994323712471017135401142586324414519555012204458241112756008798768320601256328998469271429082067510559790223388293898502979079830283981815541092275617622668133220560953491829828038426969171788303781169715983630128745935584195811081626958393284346124449940086077529713062453879389911735897026934136079612386863959023250969086035332434743990646719542567562666946055282302340591346686287257488390234426652560246939616793730721426323384412079783645092777985106200325892298967023840627138089737217825194390101404211545760502602946290208138179823488070931268321857365035144426193730061510522427738700670490697451733337946844052725925513857504584082613088892922791882734566979655780767240406769547290083080097156610340870078608155382522243365219905390982460154345243594947830153324263417210783903558224289394590917005375037793889470858101044161586964042579786717228225169456808557886117041397443194919962626812808988210479563141295362890413508011148692288853288238307416591891093743899225713409622442894388054270640029535965932292320201723072092540488335719233387260038046154702078767016523644889019903580670832934103567012701374279083132933385307364832157515512657017775572243577149981010882528145496098993857399422483543202121516212183768204146233426848662639938642393169574644694946946303698389015747194788463334507717556885574766570169646919359550444708433116603940274461229977991303878226972960267889749494050544153082930212969714290295876851388011497510724778265960325824937182509788430389167597582169024101418044281019498748058691835742678528109052506979745009102875485829890695713265916309519001112388651246834994745960940630681373733690549326195000264528561171116924660619635589593036564003954357685612122590993209958944857841072820528916759964689097629343990822577072766025217730620999828256032419832446294291493370281348703963185001741519373459134055216927344813489251457627660389585853765249857279606268456297644905535628927979136357073785889861843381111968475367274505420163691471660900808760574454040771693821367638040544825692537551170293747352824039790812020175451875307386989675317174144994749597307130352280644513321157891077389916124364990111011836634888391257236676132188656714608700603243437763839420760012560652621573851571199405509953070158784440565143452578187882917307193134706300438355366611695763393786987454200287281375862186351669738453091136217780874122469826716354239367600789288670147787429798565895391242656436574278956851341633076742599827494470511780237451954675387608798368345405449518653333723807503237610503829438764893475254826020232352190206813469536985185596916785738690683270819331155762878018033313063440312067786813895876710982072779943359200496322943663041961315651759773316048884316446976067030194609455459389454443564402315957812749933278828716172373720035696224673685780945049400872131244487904521769359773110471883260441107889387844830377322455496991391213831124155264296626419776189161782129757662795044321363823574445171258728092804082356460603705441171679821195152730233836828937615617159014237226975655415160916893184308685509578980594407142785223510961387360660863412159969829281585951001962363689652839443196225643491838851392930280202094241828072197911249376940752496699276087833966052124444121645735839586821451795153922288992374358396131508075025591254660903264031077901163873067805328896211811603651569776933081808635970933408162473267550051434188032445473509461919976586386323976890389943126376638769663429406970286842180293835181984065887445552625909562484808171888007045717135964036589423773117227016093765116401455593761035496189832475736247289419599776405085862647873322438673930079305989975644187779700373897981724695176361236456494892582067393259749777239363661876832803672998125261945924008589767309467312458650855126125368253719460206420315031157207428050355175136590173580674233890313942433746582999528324895317647448180222533445055168996358587050689895644842218840831508101343129008188330052798009403853577841076370697939257222546651144084478904331419178297694063085786022421765700680599177761062706188628008668483549096843322006329837860811732944567973972751452892909502907530385098152277645902392562917802847503721092618444860042100313202849636481257698235635590635783112995933873399027405058362363464717174705558527187379932522990897824734678475960842742756635329626763966447014241863002549671393089142863746596729521966584318067710449513283675867162733436837970520875753284494220291365690766870465162520628896006952795448273911697511077885902426499568257538970507767088146416837354172789335805519596380346066779803961245917912550425382908923506926560558202020689876587757621303125339275893857232368617760603866928036426287943827495980135410023920258920979356360626389871151604813174485753247142145913591384389037546197607009452471281494704106172043479167331122152642777020256043049578537631336231110948301473204139516944465743673173654227769000352039399839834053615516799985197693186826227547002684018600483507801008754316469157900093037685641772216482275862982505688879103845226068039254241047544857574149610469822135785408697959876290855292874272996137294053663911639957362761312163525017257899989914163111336065613343275002840045531422299383555620223642414019282317384573166355515552889426628429146315740000266719370516308624868485500810117573391449225966081110834583853032897646257940803141866227934350511692748560828185721638523200808828410679869166874442718662118456790681417181953476848213579474883101912069511475777522077655907388991248149378142620596834088954440392485235816352609028866065236202036297487946592300683965274224279616778758690373897228207367103623970367179456194870175448465084442195444936639283267279906875675771451499066649880222678388689966190685689011747063660448659831948828235420333417147874135380949708234264790655436518135542993679574473026821182571788858293879142700466515504906509661957440298769732642533138240359930535927350373041771716217363536465117261544819584737098694547043695417403681960930426816219607182227236391395244002304226618738774411961645697311997393460361913850129133648462437784957088297004058564959399266446829720686729902609693454903570726910032729853118732426004665817269853607783180999150792932811622353249601456848063670612138248277528795870582325142979241166422488094403501637914571109507872884381139303889342187422351932290661289605825278884622888004234090333524015807507333277470175825807496185187494113863336354149325264395403593643336218009018717561968614702869304696188461526803864519345755800043117902761614508735590660324823491364240901950870694938495890353512505880326271618368690259220109776793545048498326925409968790356134096402506316665822066264394487128248950417098711608869767346300578083682078166041709008892906456283173736389678978798848896018532493349882978186568850090369611573078882723100981730661538859349466278906781596225999501083311680393050411662441207800590603408882071463175654178416675196652788466763828735657675795132156741165927038772230264963022465358915925915883393606406942365897493481077743051397793619332456395773043773927761885576094732757860975628026156091906423499446141703162491007232380717854924002890528895604727930424215017788258725661921370308413041963739349556293583794600244630882171172548987849485419690271267196022784751639557792893541010217083994867683533294521983019207784015098055572708236739928643150015088036489900373403145387411590510788125405343637010210658768423142808044430268164779235916580564185456733351852470965557316060844442870254303586784958017782857229015879906835215988565301746615335704462462202067472021606213530678675039938224855930878999018808060533513397203910369938652924465368614434367262487850704388482908918069747479828791884428627675387387110037948537508175269518342700994925907565237454216586502460041423560283334477748114917941967524032363628550286806500981144745786393676535618915188235215580321959163674925647068966416566431053592005555520793946436030885094674853176325660693909604110165496713671797143663190814460231096602930579769036274179875398796048545139835976032815263438498536150462456365379919495743131864630757694859901665878818723437748296925909724433762142366894519905223440967660428648942862709494379794477708401809350489791952032940304428161659724053444430032660900684435399723892059320302129683527838425295536521743955568420337221255282868304917227769859495444509647482599001674024688203396347623070155709601818148132695704347304965737429095614940136119563225733230675052076527176534636426414324493873898569918694833250499295561481531998232998874656768359968494855858850711355943588558361726096443855781173366106000550871307996113400368752900957851980887307198575751017251477985164386893473600987993089518468734067688069082720479403715179840425836824702251905529602212096249181908094452852944580026387145781423799555740547615870460660802209643131990002371770793850371878269742616254726766621099642965432464966692296997440980076491404384840817153878949009893974049145130618438495370164921285359024051563935308142523374496490404162561681315440578526264752786391229515758684311262142411391873965179735856545619021539935927767490132011403235054432958847337038219635628760516165855051732263457219426792740958296035591288507291269087046698186058837744108006149911562177259187890574196327433967694923046858196801102220540966083726054111415094733121996338244191237158077615479003135380893056858127975978118159602477055729911220446602487461370387076230742573457197755765786984075075896212216812946943357866311452051953778908385977503792957264407039340271334453070470730895259822541769697152829531837903858885522448325208726607557504306014497610825660240273178864636058606952937557654176785712078060553787461256153867549661085238624919492352518176267290922958685153033433871493914245166972884772493064738310802472413154939195819818171438709628446525989401948501173354016891655952448466376355968029171555441922744700243356006431437838352886416592108215397066822236333867073064353174534306853679587902554823856798538132389652496732554002455944767628190851571818455607875074705530863811064576195879244039529172288439025133166569604482178088490058226846365413734884210729293813322698144099373988265811320799662389016996436411509329229146940208035113742824104688113195797573945566334604051009825510405430640687002489941042841051967138472868635694179398806991256763658046077241914708551832609565067525120118414831338688212619068538026578268588172093340106326183647776754020752231744834608776619023106550753172156484675765816447809061145159905292677713043950991870256003062652327119162566846654476701017764444183489150828722445750983295311744324928168621307472279355994186246357789228046623447581528139248508991700597128137223503272497989181318649192972471593650206090175969088186061005459898052419062126465059998463106177365299391542111192178316262793302821280020518227554109312670283860790990102627952692876714597357842051664759036758124339367315061140934567332794158662083736817316173992338899127048650616839501951216424907963069763399749041748900180411831671296741620068804325140303053219285963888230489229225880710193084449488599054163997545755234455100935080330066291053952644241671355500393031469363847900206645950521043436914905877344884352063741197316821950747185335554300109957871219448480172587489003582692201355482687725886423322341940947334754213557454234193000463821652803643409061104809388947282933787915905319313322647702629858249547974248235017337760883484473282350851410177459462542676802792386083638205652202796161886051767111547531051456707759080154917378650075845183316453921684260448775104675228090361141930216626965709170693982635862737688111646160881816212407058971979620423458435186458378935400892428086166340542196882946345724415169146187075640595577522345645515516245807185064289458136911161017877219725244471913302154114452055101739866858226926320636185124996446200782225771699615692420515129536525956264461296858636791499124683278564932262140185926717252571086300097225315257464678189311668564119021327394234551638975224503910690035807678534684120635383748499318022500959685780152219435986131963735381048618971224001270126894751779828907418637671615394699098344956023436111758980757775182648201806346377654420892662923742889800105628198647059336421016230128797843939919203374876847591184034844791578812764586090928198691287677245362233544467708292843913666123298739058501233151068519810890037985806800244839409610880252408831573099204230351142966418843960629290450525495234194269636553680151271410301439521856935666166438858018431854117842546224919127884934640700610371138251591751379917758672057986634569432552029681313444111449426400170095154414338152218452628465969718818389735543768006192829026359768199396706258398408006242395882235259986283926056775278160428668217143201574467692613312343704837701318503877528259984346073660620678458478678235670331333308657567261166645055201196500925981116805899393311214038768525806732335955947048597288418473975797555344413742145234938520384180738077187555742965121191776079161359838518857048246633056144268232029778963744293617907715769642391684852797209699045565654043137303066993374254110263051489749510603509613265549903819683088400035707319619305625070714217186769234098064303517430693233843296528790089219802624823617741046257659047230981110115356767122012362509950258276734717475082009852901813226240330299146436586246815141380264159543163122461029058773473006779992574023724221268504662445632507914973411125502343693862635616488703844675140283972548170399452932338252187739812852127944432566162573208964361965380835212914941960406383753140340483114001832991367041392277900298831746324969788472095685387686223076362268885073215709279697351865414966169259524460479797609894030917636651046557062832757886535170493220639974366902991166150636737405333235099609620624892842183457198445334423114299750131585476462528458245915074618428539982877930514703350076548939292144427706298781448318992314774642088746489294634463017782266190670767410733023407945520432619248550399019577387850644495237790617548821432862828690722959292146523637025588752469676093602112866722642361589174375230726114841899796586728429783066374511419455972587031293185829036472554513698421299632170110565383305367216526207747516611528823234172333815953805717419121247397822713246324041534310771382605066923981553593367395242783525382310538888370919177912268607187618482637086597307969617507512267847487158503993412517144600513846558961243887670968969338749715216484297319302832389648779703097260670318314293031962942678107907727866988092182505026451991538824965369397672918117227188927434718201986360822671487573805428469110057944008911066575711573536107502212737391987508456240399880327019690844055437911557706916972792699718350510116269189224796061467718390347814323451711371991528094995105667035923127740814219473625600582564682554285422723343821469923602973586128794861370748349999476026297845127276046485633008811701098695848702715199851175500081154328903842760509959039072068766219581463672681969126560465575514587395564963472335299293443077062759427237992166777814884026574966919205922606324958180872024608446967926388889155521592521539024667514227460741214365581183844138630366767264082715882613195163493013373515704237190514585486523175893287160356438176197244075519112835188629363937205237338650207026181909471011164762634931990057355025834068704928780091177435035087063184933047598721383923776695037972346199068592450799594188854858821516763602532101785358158183581120638259670950918187736419924307288079887330711673866498136652375159208066779959551736207530793816292931363094501342995888626011751186654899681965742902269783284667778756652132746354332826588205160873562035950012365991728416053506164897735675106509985709877069603854484665109805736521146800439058646802570271475570499174494727967758660251481623536265885773300340705526743641133256973935900350372860196380167908547118696347664782576248277284359407004748088772737292736939050793200454695912808606069375574657849871635254644020237106500183479459278728163563544209490950435876151778086430879722690554734712732760065769113978624525096847466681850040673465315063276930678272863577538191912107007774012982720603495833920805825268237427036230842169067589474345060849902130377736440333842463836153103452788196997726959509536225660436491423772122636835821064146905670059656826139837820076035901551254043685425438993979466062716631906444558301084307919712635552505046872049070777741761433285870698694916595685777177959546176839729916100408202589665406636609666247164179154922190253076207625402366207578597060338574403227616648319557587115272340727744883511847888332530884671485512927374634407765491614582302268484089889668134770774575078292074954100890807171973466573308232266775253268479873423737173065250240611322150467479444949971611972627595449042233664854665111486281481053361231978351797736203811797010968348446924445281263525010772930154460236247773262262204787552695435516668150477313358940223144245789188454983567588080693327754837691252632468504773181980163501961796679982589544010150374819750840592649454838902115615864520510728217140221972780382803784817473408520454676102608143648489919522699381749475681758236080838989075988096070962273152596448050464939674734130638531998744345550863998058301640837607291148779998395619053832034189109301679562035552010471544366628275054318784978836865004320961798534891379290582205177659902733854876366722971680489878844672563490708150530081155050036637552913570811007847499981374378874822314674854402666449985220304611383607314133964284435271052576569439065837749931445114026560787018672006738723143181902771765869285528038583461051007772947432893859147110735224566511277164797714773431947041583277960187303468005400428916602774974659776725461251217901178310520331697307750452060307858628309335273250008632475803009670832261638447179711667477999206252705998405093346598510963949247247380765489222350511702229365930674295612010751093093851212917955186857186564734375124611603636486523025652405573334494690478312001919213341762639791412050529452462603773657988381991694586614504794390419504539538218416372568357185953802840668801263478998974100597387101720480153209751814080977798683145347526227973536506359580314445456704424299355077083846437016146375743931644311010483190178365096707676924105283175353043606928191158862482737079346626078479985786064774009828952498588376621616889955127449767535030618729649950847895269636763684954253856575486712308058404949368833417512252698277031380996456956880555520292491669406791784339020542969501982132036272114319475228910610214410965769122573207205813582959377003521564921289963772278625359123963740909204463382336044613054638542246865946638961447686786347388283944135967270396592033558863767960946722995228159029382530380812574736160318972998883707286735293308688119161957150671508791000550118298594107091884631975595853053628626521613401829299515642590342685811181138238088144138504650242855833728520979284293871829950302355624541543018841729410441545595749702943837413885190960084757565192359236385985196970552716322279908364280559249147857219946202992422787674748789962264735098762632379416934869090411707520010189097109961683834812188566799692145693994380389527277572503519847050478786883933358648891291604532975813404821533450688761508135083939830578700869720330268272210675874284746652663328668674128428456438260015564390197845941654258005119607957586191939953693744344812277503985544139643720817316964063907126623510498943101895450379130368653375081360918990418522590956113333909291454286219502979398908484969965838139462810894279712198061267048325214046226952149757998095035383867758041616785269250049911424074529949690297618710336133870012959733101106626155473170387271347126366172038073436889347177859242422771435232515610004885619672803423313080916046695132075624566525651428891267350986203529332472099553826566822409135453269464174790684129640590502545936428423152793317718707602763646726283616726966690898410862096207461038139403545343982023355071180793968927184904761720003008996834537728587445990132968430511646695945887169804843690388957971037438393126704176605594054465772769808217659441285548690408227930603905245410613697013927980811406045477342887090939870935366899868818534416660332056246835353180349858062917068210509744361560461118638501232661197940446867741406508357783955294766597369761540474890267471906535667847939170090055878067232203885482256818906877233692520423965652153094242437661123442817955096409370715813037502784130028645796145768558108016290020336514419158873455126717069575442570138569415162581668283706846876056441544884726667189560983009855137462796299264236070356822872744831733901958395458373661210330831297790411958210132825401336695106452644076249077743976756586452203367601501017431671800025084733130377958600745702663175537184649291964465002376157767317038115058787272382699383418845792769391544442448296165849844125200987037245273261118644460932545144961579414671979237176912179148205221892903660151005870309751828026845586993553779712601039693742920843374134834857222041602953910892004424062343523953092958364170613591625157745691429071133503344913689964010876609950047311954856923997341446167889773741580449889655227304489604457545952973361996089850577864269680743966967884857449293759592715187075767571872139558884688296348670112627917684302632535133054319392095338211498968870266390674145034519787142850287894572638442877524343486933919154944942386565161194739214172547081340896775374393900584465548804032031420125046070551360708799828676727713487425653154709692022889236199855146747714951955247208014851831832924110751661260764838794220812514264422659270426167171120418429493391201030318821718919526391339230442182392223919221228591285952895976616460611271303584110809793590932354253469836096556280266431551091526890715722391925015956211213505671388791714450241634695071340584672538902265731118453344052906069844985047821509003610646475816373317548349773901372319620221889555460850984519662418563459369693324007597482632525930867283269967901771473027692684561326147720447528431511179599263405457393933911551411557377201911608573842409074180239486322254045021293372326228856567364977671116014497077077020494134192291984401448425120798583101536805566882415179465653872106776385704566650684742993631341973052368712923806333555823941751369075568050706299806912938181107577435926532132620702484784305328473233617222421790145370161891313763678667331559972941489903347137077882449466617954602088670572726762611621068731613287722947211450419522165905964188166598356999875521269975423817355610893288301859953690855359697005015811138132229964507541476924402487718692894036403357609867624180514619327573996916504687152230311726724060981061466815459856670698961811524031874361689696571227811912851861755631604808987444958730842010397040688242775537385288874014956130046730010652514791372054386599620384645267134782246799511829029872343049045141405217693169037626898049961443034906565243804032724719895099695823132929716121647890533288973529024187911119869594418734941156149986559161436445905777302995563088189693940059951825363935772545913649582831565073682565967180029735228239104289524001435047003056768698103260861343945322044937739768397372588641217348255412828050751548069864505124942993553932881386676291417890363059692701184309428842531928684428470922035883624516466680711223814958622356280181239384641952226413772637311644902160755634833317429850931882930682045862594391361732319777385343223106235166934796030641750611888000673351955688337620436489495157038784113825974285934946764710752500505136687895488351411597668962797693598452474249233948545549840741730929080428781950545919651241194455230291938166054614994864345626375088392478926236407370840924712308126894140650846484125733828809417482814852498083403116310628630631303591460215418930234404483457393247606035555681555550106201839639138673784216307158309256583934945738829776483414686091877200942550062162460625897585821906299996965243586101896800211727282133410494081545059846165191570987336536302030318599029728965067424103472356310629866861740606692185551687317806317110966060187346034258823457877601330564934076640091556030059115144835884269315440250417502997272446913644226295849193351976492894931693620597448038008204983838414729196069424690603129859413433982603253555015756229132385562836050037419676375844068366421838770683784257187119751358012126160545692750691536211245933801338288266092183864522730216583651179004111391779955727447199027096071260084408413390688389418499603329914356596873238746100256370408950651076814488838026515482018601884340902379221216074784559816345210048223337753474699557277537288762943933892077318538997625652516630436612435031990591420368706135564967520161450055959289500723960490137681682945723058128224056766390697371238686378836044016995760922509187926621972295910890255725361522244447247321696008588545627239076101274935987601878420269914000921627452882410228859564343517037570342928744814713914814328012019608383758888596676848501731735717531970562272980486301629887099084890047425683254314532634043700431504275565681471324724841931612845455109588944702492860836653491924490474004458175556794635359101441057474533575466941946775041835952582692595809946697005102078547999532999293334714867041673807163701241857837626162806790045969233311921783635959592236483476716694090126272004518515981260294932408567448758863200637152539802767372895503359951363893301643697103961854992783015609118812076046246150447236376293711790722176812112565278713956087378464801516384877938758278747440351102886058208096870293385945758143894924589408324158619962926622835286908569615949670019185107239815883991172201852676785699853924964447593927049286197280746777187173907144852418849347887122561089626463139635661013082839982735973739452122308804894672789465568752445799509488887743865279810495703584968747763349460755123506115180576475757665491912011604473218104189850380507991884697207433851462372114130741578249808655419606899531658583662929226989664119371611309656480049678098399121355910595953298719841108632782824555952825218684701954817213759175495145121190496485484111571977469879580699456999448653057029813117002742081513729647762544208973901331201333422439662918019810501034361507062399255973293255490225944791490841111204408311299571923321094367891880025761436883538142693226994072132234330722606524814254224091755322152774873352309623302124541973975582887424377459678657462414381523232050946525901213396594643196178949137109170491569125910107171935769611675860363477285973435538474214986072485563708273276952268906035899677049625843233569573828832220692968849906885594400483201380851491024926577384555481117232246405307217334983870194366756809800493124479836681469798583400871079357883506929636623542110424073112417309939872075132093613622398282579796749639942667600010002913917248782877253808889664100083443771552532766654925060876985721391655435802387160666510585452324108005313341308337631443872213678231092855658991372376718420274277707127146950487024676801826691978831311135827242506461010852625683321896063446783734647603591100323505978907576743234673208273870821290952039336361567224795426190344603912464882812177712870231802483064836691192730657206819721760102103594247620831243703540731001144669191457718889152002198694638286142044282110020202727663269668247407251898328836029608579884247773913548251156655325612426656637100615668427217105293477459147695669199497756786128590980284756981344472668054777075786178211787313108539752346499990305098641137390537334670903923667902428447605718506109158761174087856858714914077606978171801569530261171101592231100408682584978262510662254054041787491990928774536047867784835557501781147452574116357806118848194470562643944782312540597890417683569602361759746945518673429736558047589659104402163893127725714576567208903160653700446679651843896705977805314447189550853749053947219561356533132171718009734597631388891958747428828376354133650285107212984079131555009490337439272089523950328670430710166605332509357158233074277041646483571015378836962225038323278022739587377103346646716282354571042277409788852189675458401017981871273420532896441222598339552326173850046483263758451605070707131202280470238349945670321945894396076422543084199359458046031265277515618705978127562127307742421398394610546079341406623009633215498176708871922252955810301985432538656956168927156220350798515500824042982743230061530016438913361225340491903911247210156739620296120921330002382117328650754853764585386514755916378112914184967716882224045734144521491926042261513476102700032678988904957657180359906249370668877984597402914266016029196497240728296492795161388876100474472089631424512805269755631653734130927509347510215567139329360520242598906898476713451189829643533392135370016138039015325096938343703224822561521032677611743694526347036194318806306795837196618637322759219982314524339363485569298269385346531925638093939827381171200021823019123109573314917534146309265905732650493116896991412843322289547034757716186439213812247876463533993564910839655187803727524079891350045056126655806911325407137938759039885167813935045844443201532343926481259271946907108096919311136569080929205216917026040727954485329021793613343678740603352099645860319931964083373068329397558194528533461064442527070705890769801278356970042927959520571479645512844628367578237295451803309436781521931592104926372668200621349563345690837862130470669602704182245094915035743831241449190868835909615837357775684646920591817125226573921279956470634956707929819984907983993467820082064155618135793285746319107003326694057582924606344673462434812528353954045691843109581672440090226748649356258942789420906828981189933943477942055372221400733566738406269153437688444886003417240312479714092143197551721425362693774029593313382054181736732739817850740414374710652133211173124353103554201030491847014458576900805270076669133901985077324901661406998837541277546416399442690944590175158510525208866540226935086064918319807598166396355686587906946461690383897513771776089558732023319409448723673074414783893327477444311894187730014251852319155267209558069711098279215213979740856856376805706372340762659463917609435589074869685419373427295882564111224634888390656641835482946087137496209642003427753819997372255176169975147213302958532556508932890594357190805698776766940688525387832784181840360794173284494787434460304619862164035425038828951617934136760876731180350593016371029897670926436463417636204316226215784402967297375684686814112989739001207544320015018612069628174091903704933398692920100909205369625930229923336567557760416047295544286752967960882722613787400661739900033322518094463638586186945232948154072369565413936307763846978150501170166388586271884522012703320853363582324593527248038677890114058271272342496324158732776231166112158603517923801556536560862562230590740442595026769785256991384639323396422258605236289993764118591091923780895474094443723372599377455676738506574050510873021906370223883049151567851972972818287613205171178518530785929803525435554143813295471253727688901474814991398142356132208263489138783243468938043825763462964072819990849526420946196835541887447628433980216318452637356512354636974529253722525958444485839357588531143090579449016766275343795960096833740094446342550302305316298620223921376563127815330453265747737446581949976174489069964778249131202871433856965008347428515314695593301541225294560129366412615607223790098365714275898760534305280068150925023977783001562153611993383242226206686889623316849028426458655534759386300120704937860302352253987190444918311960454773711662169503633705636046882251219966478159706157745635148237881649769795981861257728349096358490745180256432217574527430598802264435639627274294440373842524939636218851674311546139051718757374129198252998587752070161851103562393059150296409229092351018499073462537889275883011343570341228459744393060267044196785771600876874397824073527696464705662995031181641342295880695612326979841631412146403345761173194057735574192606230755610076507625675028534582566900739404382376832964369081348109141687435574510017679394213233588240821200506466023268858049246246716640987513527500404863380329837909144936182366422873512463876480545936052405282259366952095819111502191274941421418111049723560284469039087282269871092935225641941217538153094863983674291446625724816649302227467404504647046443985324337618266146289484798328862943636057172632610145468863543229162100914174368957680419308719747230171287860089289580685053020239023841229168968028351210690017151294739997346213654534973981915696706015696209800909549431757132453928087809492910080351932240775124003262074604400451226792855410826210428964780619044763696581005850988433910002479597163728330677302425286819356127899222958554791221005997774536078884973867873807517546805267343028474838362321018903066754658320437343444846056690382814303607389321881119619179103755993823220001779912889627976174479837557322151011673792290243187799879490907178524711991405500047444060633494368999797688655698941799219892622223368106482987197830650744671475953653187946586951482682622246928665059852093482975677468613150922163078942587318956507542442465233136387528357227019332997209581558097243956612591035571675417734917134801570296645419484902657131302996450722735098591985222636782261765535106536482440959598641467331511997019701116690822444030667119297513513170669166133274467711927538097244953032511009925754479927665289826277605317342779799611108423416764558670921358115705375777005109654943434052508493930507275551561783702971114235599926705446032776030841240002438968931752718143866560523299879487729443285392963874658263145388567121284948492740481968287501191057449974220302030387148301354954425321353119892261747691080691179300603188828574564176558674776671892207478875133061243803899365759215035264405659378682022300098296783565422813927089263855315781418045225233976184490787212216600074391758462678824845025858319021349411090868031796546650391118665237670858980143369553184519078950519384223880993593513774636604662912464660118224880639229939707670439383876496478644800925751279373365237028700228166927491998046788712671745453943214006727486919978398199365694559729348482988710300401107948739682066623553948003025948785489649504284228823717720234714860723134024376928244624665912147273962509315470369966570910399641688627552366572721904027064337537780923248212928678338492892547146583164156366085853972224622913809871695753263236614089900307323113910607571526159045461633454863511340723431024104269509885053572475089471804683162836003045120278434993949897763516534676182828051643273244656598473255195847135196980217620564825513175027761370423446680868494446852978633056686221044653589131509909989802441442842075892960607584579938508082123590584319454474392764967069409675974974030405526371073862104428373988963920300759405788286346515618777253097724787641381791366586790272878958063741179809306838231982411721557873711204163264316056744476703205570706816610886709970864338372160646173507615277923278045999402815521213879775334271811132260849991257769997209533203995075232617204593373135638948234704672152139255136266172382386405269284604938515190783028616435029848898631909982370902229123710283759348045438484050788341672069345628912912458854430892538137434623661792955741553733000178244158784173217615638827342998794779257703293521457182936098408599883858658431387175635336001821575657989717877194655602825050779785908944910729661042765580867190197263150925657491018839091437584240897619452352808800603723299574912035928973084728158653712744305701945621198544404396672062373947761830650173435083633566518306465552358225669554250499435372823455085984170533191358404120410067495134024168269187037170329577775035706480468819791164907736568913196827546547647488359346053649682249654737519307829589178876023329366082559247636930329695063749270923097450160123087956323097969057953376646058149934433318498173081575650967622587963239879064406014332551304067807672804796895495778343568861637930613372464848830549181791262200395690220711553582973092461971692896483729892001364587238555832765290370466838518244679165946327417701319871882250212239506567507473535952962214195100637764959383656281571693189968263136148610544197264750135069755438419055738991479329661489032990799830098713490066456908370799745502553632211550844693043955481538146087817885461393913503672729086808854041525846768934462633136210568368335819139641276497808907763854359915872967224296383344223169514529519189112927111759168344732342195175783086470525448876370996731678771437933883291835299249482183919222191462701705540141227247269659673407538791935531282016922762678186877822596563450580831901080678791603269225751004912409349113659108728294381530414429373603701639242910759084238920202332864141090737146902183366566465846819216454813216335284419205193520027193736340737298998223492886085730936028158830785715891908638090243193386821062095064264869950691393434215724165057492669667250581107996963440858260397455033629467320535842463505576433894079458078397727119151367942630097861769990683433092989538479370774473895014186354711871656332181287444300300647424521470607025403984327447767955589081278793089036954997964299602704160483690418413810427424136845461421044214197890134721563981995607873469795575553958938511084887018042195208481020949919636774292877168373568648109116362747961859592198325245556478146468968795982389525015835558196641032211199844039926929260417426141519062714673910939358733927536768144484863612006498696891507690891658383545037711502802366996212886844110407421813131319019533003938997530845285404051118006020294485591926883272631123970891678342398332097375098805890724578797302774188067128613731521583425369750388868905859453362362674785860434823387634688314608679544683585297639765583503836908178979887951032306441240279709921969084928242390742787544949690384372073133176705816491982384939596132975703949936468596957097797905317962121337567356543907519740436018779944165261325996225217078234442049646638668061846391340822851463818659035572799638822665490784409107711250113707291616901087797147798427273399121284945458917861422768657600778969216780453619595623019296525747006862258398545464980150977686774455739220575719375780917234648810003888924524232299619137256962076245745061854099250688097168483721979543427904824943963706521378852715972154337450234259175676993359798021040001595419069519132875245644478916805761721590569301384772077674955859785977103920205007055401549423650509890813576155392458906139357390398781698550418324025377678003162214527175347103449169491415454533831268701331186487016802788767811551144373035606186705447350701018116288036730238501425141614810489964596141268602627412903323341497278675017676528762965210671943860726514106584279264051719047039569240002126921549560632724411559024748412003903020880467170079640998645415165530755531016287750611099753139609361785973889420028625348862433000801383518017788059280681297801648087725986710777020789056962638667997027361257717070825059506583390672853013131744282069217353909946455804614665304275170890303412959132749797240197675891286688305278996152400849087600585948136580211208693041600687518566461013258955676577744450578482031129153691011731443546185563662332766897539811509161146348032393183620946524667981847696798048249802134263489192202245900867124768585562063322836142885975173574698350477531764142212645270709692787246404856513868898514463417439808150690158467503763664210405211181594755696720556301027133793599831360016533759114251591117711387515758735939264093372520531519092868452844797518416124217238435169391734183825445206957014159657860733086359125051182931578470200892285162375685462499709875489045073207344536355181691313369263863370625895689687050382596965950418308926018480775939583379593894518593799939894378801025690055669351879001111098710569187389390824355006264887651687344620128109069110989289344302352091570524328949485996180680519335673102730445034023765464558725444561771576132134588948169179294647901232382776318470168836292131349885232742806820758181121071893676691865051719190783977807702684536635373031529945282023478596399065249073399933104117093591208425935081419750506795545081806501672335454098513218999294146508699719607364181521096321560074983101382624390174723869056481721361798509424816097725084611210981310326481975054096441911395229591061844264109533966025868875676340455772331384335131764759140298786269547844847279959380996385371688344907935442896604604550557447033488040510581757770053999856076452902876016535085013928959594369333748155694645907973307377879694843808408134634108680390332804733411187839379561397672403065260055665206491446897620285043082342959683126243241962636104916856686165936307181523645567298411658139976649950515118013907652663715200838174182227592934803013230178700363059637312299518141009618630874962989401848959815497138433998685263488287373100087399653632730950806075633053721339419356077617558011151058950377969640663131124482293091313993407384053694922186072597984702728771068007373794100233399635701507050672318201198087503167503439945924143417870650620544894300517473569917315117252160240531908801695076780976563336552679860225363599891994777988874601200574426863217032497185097625018917627697057815095610555351525547912802952638673365850738698780528287349831877796300996252415000084916921832807176779818696532322814133687418359371520236139264638345032721272255917003896816912281998936484033073460118391126364860625567943039698760730947891199295569656841473833510689066204363875861591898790922673333201807443053838491979441688545305175123921514253309386986360819263105074780961091154460560796508389215300222075392040428366145938359708564213341005668189157517449941638620244762066118556235314831087004893595749509982177335557329834697137364012489844606970508586474779068948877745807233058124257227673963512144373921431165511154378556310425369503899129741222488828024045556248193007549483559936569869956013129957900548786497638558298679376364151041099377484305039018302679314673167412153575761056111451125947475670064171306936910569822534259768469489343525453211340436317199875743831749347442704221366317556183671086098564158640056774957328967812930917630759699205513800004680762970457834182775138923467757834586247182128971812951809814928126411694700254885234860080365555118578215351313767470550265021406110497729430853222139177989072577202699145796998733959921753465146573295136399574719515701936025247316022139280779101449106893544882402225311760393321392158173111527810215109377395316118953463849365547066801523139765517654947056307804187610862265611340808592891173700351090952206046150568860390732033108795121690585063936818737211721551335488914986403647014322273111805616809083367715027849842426778694654374837375101854087450488834089269332981207525739826567454629678329090047380840242887495148444660460872021825058352073626065617803863384361614817962103511377604271566650924778619184464030840448062961754613993643525015876328194087180770962233817347503567716106622085380060626265871913977151552394992701724390452508605799233637037238522810719288109096520877446865201698108894421692375367033478330100074284640134894094562197133517265632812819633344535224655316850782863663935739187191863841749238047053771920803881161104033388347450012189224024851625493001659452730975558767245502960610502390783441916714705090294847473288690424419518373107402301342508518265771251930150182669471541168201074417135602509492287441059044552379819709175820928387641720698792093834478699333362351898198224633646757706860162592862646051956969404337638471392461601699578873561750114041744744395015477163118689623057309044961986912934152656990642856093430028855633980694861156436454752789457848677651711692902243043362431440057077828892842085536515783565514244796098795962670780264421919314945389934385626010799963195126415465387928515175036922800791009345930438123188113263700568050287215173461186510358101351902081996669373690402269324277312110007004226442391676403579667854118363697797678042150943580850589737542334861301414536539663707549465732030157496881472804733174176916638306699750271771403083379067038186651021761757664249209999162680116652331663585062881023785192105225447144601488424054064137961202564659693028171233058582313778393693625545463471804059645612073527259012734592348292004872456253225823657303150531284115100288389613279992175603249724565451296405042877293742325406699519587819979251389846895776082205507700516770591292978525758381086009129963296791429692184963962971522889492854215987094332527533707144606892219929721797440850372624653826641524605220348250874997232215384626999068640727292292317960440780513236409822141210544253327297901722416746603720697283429208461043784502943308172891711821141682910408463492153349240440704492957285210416072988576638586426481613338655010991366111975849451355922992613750876457384575133457552147770283817384375125481471137869848387669335742939148396200781396864361321819435034825992591617559406991500070305556891091628026438007345218279302731838735646479097175988157601014965139175791149899546039458419209510978198145737420586465302609745071007819676162571091482546668351753663309843385544494681450860820710066616909730402853121630773243009394841049996947679442104957407436810127916702344032919823815311648963242968816847029114456151549675752651051100197488211997779791777734422800091640359166641442937455550572395869432964501919851702376414092280903465302359477066173729628152312008220778033663332868871218029882305828457834562137112113549866236064608932760446135518194996512068734406289871689771043593484730510044244588460520155764759039946776276627198353059497634003265978277773156733001184182743487572007507083868175345345372826402936203305637115800693726152920960243957455410813145380998273445825312131371018877523872734779551448862964808014296795954013352778007517404607473911917988965179389918062732913250481130109356181306304183693351491556729480414358815343136674874409676643106169304434763588445971176715042911860334075830928471143390469191225670039088703983771872053166614485483523909411397035117225968422921818632053572061349030440378333450217689872255994889916002360663773558223704427114086144796140528351969716225009363219263253093709358800962314666235489196518167408151860792776606956284666341535134892069601609372966056082353640297421265244407478905048523272166863000710994786081181858871560506036615494956327204495024966147906481632392072138607997275779787093761216558097934763799155459289656109382472831741920236271855224495140164543231204577094207457634903127693084271312437005137069360351934463992689058698475044848308887412963484547651568366712903699850409697426384695233628021764675843236572597473229300174706771218965282551265133898466617322007206627191770015517707658300272839332189488707149417475359605599357370226767882650113012716174894306679569453729770774689790979074740641194795169283067102854481101712178328724303490194045748109954081844982017605860689367184402944650762555950390653601547597755556209259707664715907552997589303533533407901221875247716272451868792525684414196610683556566788572508402639732917491097152376831545013690113598902820699495856156131185752336224894670227676414270412094543548856274024788133980657488824522026522056820897554094632110776553301395138259503482437310822648083392622592907838449591929025301331626295361391855178413824770202891661594292126798388976361247022661402326670704559680883421304768545838182710628840705026588790204416035217318602357896839072848618899606364116193987374046056753328609053446490308667439787618592649167894193983402600685577881290157261231437453712691155002424130917699641797412605212467511466588515250086494074343940395294922010858347040620663716826020495493429261633730386585610793396660966715237453349039029337485705357314109070012165678772324580320810318768415418443628825289580516923813855344979059903003429958360369544051247359236635693073922032282395653194449081810991029346759631296505391546175771985682454216433004489423461726463362859844507682192547542105975838428353458355315499339009521174213477948824721510634244970324584834077675427290702898436210150884570195614593772090510356002349399533156404853474073377621705807368276585771271267362306097732738856622714077676067510558789573320015491083589097781109636865292574629884368636817961200261758102174018984019783566744570109724684320504809986760455968692306972441012428053340004880055327020448724480332250375479004938458108962639706473042545854927872055712943290510518831264667967539849877091967825633239933794224169107536011412189354568713384627586935726948378451335896339347273079432266438168729215843181343507029768716250858914984631918456874239747065747809000846152201311665182968520635815811281976777084501927089590906639686773079280027526228128288525628992158248441307249566296512703601613008873492025666938741025515851084946690683357992910109302424579956379053863423486362285127994355617615823609100295645338472033747514866628453826921156969211318154615912911946377802752598944615533248807720280360699857284101803721127539821188270645871409131656948049607052678222408741443482902050902726632591372703559056912174624043146662922722382654394349144099903968303332044531645597466674884903439049832874553745766199825940526961869549439021585487359290475827402189666735656839537437695826359186682835944453116941733743139333009152857608269491213708740206505123437040030481779449999788136637286083596995729571805457018191266203086401654986844342575940479300459791776654482026180167366261515164926995137020256562588336293547111622330563472342554061329406238634717476911228305083108061997196379153819793221984504047844250373311644145933321653889548481768126730293165085520699445930826258718444384222940146867553614041194518883070008948421444115575750610020868709558921892498343018733923774106839236850437975583209228563872423259253855541275980494642036246061903703321870110962038819900532350446028938480324511974271162255078958555064088993295519401450419687801341222871285385485369442166151143488946572043276423396747396363491022774078338423271886629478026722548000145503466810775736528703283133475512233190769613278636762801161821180435990684758380238552154656644862801537407729371586118493315111719465515769125584666104384758211528997643901345602859539826092879334600781006546657317907365123404695699293027596711766335667902687281974480075128031456443023747402247227359693930567584797826635276123814816903489434484111443170110620147197055141620106190612797921234853211237530858903434396794131893275767843245170827100208124253360252306155821256520322930140854632835912488475050853834054811775209832000127630377978774246551606314537855545009218091512834879244246467239008315748642998092318062036227906746981460509888002735916803460606521339943345692387013056907193545123490081219051173801603651816126384636456987427992460835029815481469323264304729870838129078364266734584590203544677365165493895363743190268961510854528368536024060576124178548505976433485067029061283448810124790766806710837787083912167527898655947076646461946280454152646264225029668083311536393251833724519186167945605070136198020234066599547422560529401185586194650944579279426024300468500557550474219343753528728039317177033750650786322775712452110220719122965237582079434503092676871969132679041185376088034478401785578106759407440611250301854815088391252945510367050009023901758179858144841488847555888615469875492827335708196347928439171293177807171896224011094835998449513153696024405041536679002969907672845589257654887920111149580322457371235524133679901162553747074541109918279960929422517699496607215897040707664562745279728940890241060490495714201354247160324877317546493819838374338624692548744363034149168067576646192932674850435940561100995845039358552572207742449612588090967187057579077495195242867885889300622032673821397307945434849247673761361304524905964141435293158330922460345052090659757936688812293370510167025167420089678239540879850148667355647161139619966366611532083361138941680883142283760462561408579551696517839351000327064911291997049673027587548956293454846127689471921775523548899776343680265195519310209094428343805518859908574144612520074672329164567406294666566658568013275653658581277822098345722516823751574234049456157317391232356798435574817487953264606483959483588315082094250973258083708294895127192368037200825019295900006085724428632156655678353254024106591909893163127824219636268079165267818378378882597328282525003087765081852585767649092610946029962043585655715612761465254631597963452594596475298317028957538968379205446813883884945720596040230021824462156941310181040733438026467483179403525142170868524559022306770981176828433127986073969236223981723412541218099403564740137069591662430437769296232411524973412161610353897631077635175850073025575771334978080577012464182175474149761505330349570192207410317859961380990675713445297606813645268173396957954266762081646367228733532065002699639521993170979845984317873234094971731916133869615150751490390247432257694248938573703611140243185022599971286717076891568734713692343649936582582938006099967914778905824749235699964140807762262342774762788436859540590924566954481158249716405329980373117783876896690901580354386235118483888195542380008040518664523726130197753836640618053602082689069289457866542183586326055069422227152316295989897758977446268109167325550063905103594911745823114827544470498056725842281587855321267050626093777425212346043435912112430351307507897762984773163788618523990842802976292396442435791899501459979577093120008365029517733619205918477530280546897847326129770884936250511307964179891283951468952376050639442033537027404687250531989306143115529285863954571785444553654539349438021384268285499227876609473414180568246061935454988059143927320911486184615775657184675311971031224142719460206716203756493651192925702271366998858251758803934521433202406145266630147190402061701567426095129289418889259519924693603787180821911163742974567724985422718961667624021406398965509463852274271889194850225616255481409330317787140639174729092831321088374906115616638096104786327486094135725127078602079121649514583406086504301388073543587613021774797615615414702537975129470871530507062252444457780336204171679114515884221004789184663844650068119844254703637092052064585529627778763102532229262985576922692016391708150144742435813581677968353286958163699150128848953395109388757588953771765980549376462512661562181855809274597389691180664786844260722011040961213155439328124918131560192991786865423472223442652942663358335634759757769497495232300947738405553575968125198515886262824754749607541083186628326557644094913006616986436667671080682909547694360761024838460680550495026259199235826524961453940960278868672113847593567666779700174681174044072979499099657638536388330902712208462499202954261831658751951874759629449163686705990334480823061321754834843917005247976077735277392058316613848016387835638877938190604897526810826408607437812739378721744283304379715886184045040746853051131387382160593904886211662689250732402956880723661312677984661160564645359960485753949822255506518062890194920680908310345047637390445979245414896867180539870604342017830021563215097304535717810525113112636002819564815543779484746645075300954307276661849657790440504446281998586688942910727955868641617465417280317921354090245369905669487939315391042502266552719912161532182308548495553804279270056255375450833705912109602237546432754128514490601116669816691783445888846974648330475536137277309539124457131927631001654909317459129364778299700606267985217841419022458233693533184709566960018259142044135944341889969431883319775970790900371966612539112249113992971900619680498624731341980244602542437835008115259941325051381382307591568460151615576248430142329006760736165671577246174463872519769368494395592871051838062417856404471396078235653446775140396079042356414884126102533474135433891151926304457994389397021111640676910570964160998579762146338973147626898041556705777884712223128523381064379167531598214433570275391515766040333819772909534915733205765981716895461761569513400736833099369407485019779829617787624717413788698113371917870599871834728963090340697018911019874142548923351394967597895458607884534154230024697480993625305469935019242191319294183135238037929935501531106394893333735487117749110759240959823376886520312379629929133387863243975966148544228700379461276867691190895225664136780468591350018148394788915813644920085696359586691929666500614044622498163681595535915010552921795307349448103308452863279682492238699771944889400401144959035795056879451630004256224673663482356648710981229556917383422984209416921090762818041982774180588429862159405431375265251952708421766778971615918319954469255502999867032182644239445894848565486980777302923696850707688674106077530309353480944164454633927514041877775168218013758987522564051085601443317276514171955014880593968237509523936248107989681213447572349930784192933667958510435088630090735109790475798045841388750898835264664549452112407140795639126785815744334490510188865428705165670653987755981797723889507003256312615500745567414389759065117362354395872496477410678151624480102975870615508406632860721162195682278468615687219606195741566550812239939010125879960876071919480980600858930021677207924606296534425409306528275205827566222177016559859779514955249809596624269868488813921184363284954296004542766918227834995963809573282204106590078063434425951181329353877557079549110937465038900660980618539189138486957436012622704409994229166937189172458254067804556183789381098972505881928633963837255009900698525182582715582941650957360321312064577807819093483965268856314801335791370510134699283521559862923307046455048441726973412379605227395549592873948581170413835283223323751403153258023564605047648130658602869799318963213966340017317878831280341311711361273299232832311421602869348494503993909450992317294227303487490682377291413857531110586992441486875989079973371521564211538115306210521955128627938503577598905958746404589072791893854506172896156967806554245337877141926531163972960924220718475487333438499371840287718174564370744789523331810849921009570182975047398264037889433080985858082501089414602736328307431524698850244202066668948013056705264543193466929860809743929048323747351147303700392358620666280807433549909523788438197673864472573962318789418929700904940086664721301821674028593203379014883845758275216217340321903600119150235454801536844848215077541592452119125586689606601278505025531708128810606172466786248971724614243871680787695518710057462587951458165560803025304340507646651924976349743655159643136085913429186212262327673066375010758766180368892861639394873289291100117002766567576355463243809111398400381077621849475205908563995137782904953959223272527792692740228973843334242625210948261168606214783275991836360003174617034163549035541669217008375356592660976070852351875240589749078348546705847164823568032204100102455386994579457472977901682814122622101241727713023376165880151275604897182637672570528420691281491626621883322020944691433791486101570843989070808947189413626749556678226255851255745670489042018952154029102150798113099605489555483228383125183250723804481942862366862763987528293336573879800257307854391041804092145581905324634445956522497243809411094042263611974007229065864382674280936083934345456328597632556368675514140525011378885438766266300178135956213703132071630898100584215049592371865432974421030210741116661959738014902104045990178423128611006941149235883840111917244967219887729265273851187988575613105262710907171663024401688476676436324546722587982943117800646633955336140138947148566973864958808905556335768209512012667971760254170833614779598916725520890025908186973078147442467703355245933505676550716189130263814353218401907706698633583788131689256694028349772089216546468188272179699054388360504078296205970969203305435740149467438098611069044304775359313458581067023597321380979633027549058823343469686583450218566189455952589038348916387853465039525901788596113089616349835887237711363378696448293331577116973447932853034016681828142267886601737615964338907181505346991580289155110163104614715133017488265995063133328098141159566953156304194391415210515817480181659111981689101486741029209018749593704670257993870889356514746525529871484176049012448190306556250732910792717882437109821156920924049274715975803775610584216596474431462341815420370789854374891432153062670706991758820720714038755214207198288140379830589109299499263531184061869412178917163640324170959668022391696589048071908950086241862807609657333734586300810888608031059963678123046300975330603559186237612403444893785549930109147474511678482903975516338335149536408152756621277247114166736547530910885408007864081613456845733415861712270238438386567726106998871002472879779760641547432365683621792104366538763649621066331954748884502700746132658257848865114231172643611806869003470902081440421338684176366495956561817161814714680941907418295305854966143521211079202960410271034415003576723934530406837429396864588775774838802958602910752133384267126974062705863683849289147685503119282430050015364629618930589941471126239408518646090971157226516579305595356744987419386261892904620753307281739322931679881571448886662142312267374977068210196282921529526841305979359247661524310261636679709062447839032011167433132236211013956640774738737151473843833255286058325327631621784449002431455653968917387731155834236877485528398559792317578916014222341643724796864530669072759832916659665726843298974051673757762593059641139451132818000392916026167718116124966463547308004350698025750049628116435939012024892346710158455635230941619588133467525212716403405386468735222491571390055294038525402300131091413068483677568075019104946642018568566340862513654251501491019885481016829026037377388861773795242808355739947297286401923431469870189891631268367839784964605442860699471313907928402024804265986143865410658746033815013201377011552534197837069857973892459344750672629186265901000836042681920991712105201457633814432637295897054684546424913026012523948767014082664869424013142913387800982010938806278032404477666609528910372980718693346943684510789077872906407405406759959705379505015268426157174419924407432609397446878465703961161159232123771473290637051744468803619731426444429020929621035009267219153343144640912603981379351923767934550104473953944769324799008979779218970212486983440873477973035867776621502049949020459097382308088033970211919982742787242049368049519378841295878508979610268754691375119954524095411737500036238743938973875813028965097322298168981319127024519881698149063641212699543398729751635347168020026800534156770282830225164656578209686189755123563917082672270922234717781008389518047728973397465445973285952714467642589788098363626898962109793027893057903757770254093625321431305787830857981008579406756884001421163610319509274882745979896007595135313997212959890332795777581383213390073383105566088255013440071211521514217297363506324999046167394670370767598533404669547683494630244740147708650840627295152535875053607379506610293168290137897495179761996969180418997109841943944735658000432359150243312121170676279669809556700601556301157746468163071725720368528452279841701378571555869402489537559092892861904984644127154546487914934890469796998470112794978526159059953392891928046096176224391956824808650038822263461867780369148796879207321927849641936011569630441983800245028290784875515581876489502284119706494253713682707116829298279609840898121136795842436506145764856768051402086586670047133113662216075331554462095085554083080042800341131323602413691724105814545153946000487395233211713258785305652342498820073575805097311467724311048490044697158252295392786240998502742121778240412079118642647915585555971005067956826007245695215692677914728452015788296383426156001178620850384785645041488627073245992083512656545829251109136212379478127655006761201379109787670395413444367676227759338375740050838814599146239381294299126656609379732721219068897202921344636577249204261360241076300366321987971983485803115358346339943515011147412839431715163253053554544847501803886856970550413849283133147482535119654406494622695868968538295630634996044651339082748961166512352690224342196369794149058637474903562846118139567453167166960192532699006404335150123823554608557295273545547708694504070852011928689451569674695840325003604090844007368428111050970932134817702600690968074144721862179989183488244270123608570343499042494755967845363318964195817843987980078074312677408231444208278114352496912472404465575680656553301408966548453348336181304713655664302484328020485581338417643083832541441097902144063256956373270106707920885267231770085832738671245047485646206776061369746416173090689424773360938101862037052885657746182464523597817491611959397424000816397884024521107089643824759621985422540210826339875979390202711865903522905976689788603081709290426810124117012809030610493701328715073070950655461489154569873439189104976508177496162094980782400371187383594266451359139066147052503341848436129332805190124651458164657878695064953069442479199078850322968520565443187126714543326261136093063705408809221288653852482753600084031560907381360080642790697196976835401431528318174180214533320556321787242286345373654973280452723494510246488241494532771929188604370108814944154412156597076499571550545322454739184048058879654870906005752412853093424107522807969420179887490504009088750973571654401329307526641148680428030678304880954837697997158094418358446383669116651596057685978962208906109527306177983054237507469770250595029164497315099306642233538785528829356427464301605715636234885454994930328059652731670515410607967700623751505074927575735017635812151775090141279104796172213056065542107242627497308168770654098595106013407959803626556578187624369906896555297808459510705118475187582418685499003834076445446090657974785144646360999032392091746435381783519410319192002832939536469152313655333761877206202190651030202055778352028647143665363138240525341423504637652397661178703575189043595529447508009054750076403750865626217218464553168891329870777013620489931068482699898039987500563259928184400417357409113488802058913248139147987098473590882687137113481826022524316361033428182476002350771162254241314409262779376288074445258027594528164796261591105743590644049477452712939128723507832397018106949444883106010175680753619815073581530162137933952871576434380134658370897578962738887564308807313275265625577284411095871536421644129519681024056679765395218992184703739172413820380073506506330914991435327986017431124807243732424381065586022821636266146758636911805831772158221516940711462928932591609682239894108516690267823502103528553011649646964396847823901665381913752318280277430628181352770900128581765885111790399769924537025039956357719832038774343509451477398615208191702092941610066111590340547097032649559918087669629556558245461635732906635698641644698321101776756922690073364425833529750873300914792415106845260832897613644745631278748700876222727049782397714846684474914624242073540493990337627992044948921171094649693683753890087641945239633248978933829004654320751098328383517698896947762017672796434010760909616419557049515603339709589077089545705387712833944758989873141024334312679290527284983777506083972314373679113612353870737905515561885125752241449221051581849818730818104341024752321045454991142719735224803150446935556830352023324322893675706519934949400652514985840622864306100182889458124726264698845878278038116932232637856028516401357618999007257358374381796450623881532624301377586675130244598177807941384095109789336418150191757507361769097483757381980753438683261773530789467062853903093462131090105934003182346045750244212346462469098350610927390309990111673951586991220074065467756292662084285076446256866936334687684190484497766346513304656735600050531765916538261488363611908791410975633775636229415499402018241354063293384063053089049790149609273154122017078111305130143831548180361324201328388287351418085192342520573360926090258519958539433131124311388896730301131236625838775937647057299773400796803668691766990233955888137143203081647372373838977447421492049637681577585794145698704028024003932017277194602769114457869373476901819779910119610830464901425318563055565028002895646721713695458221196502447265540288513629964440445911101231191488804228902213923286583704809229787321317313657133415630049679069615610628790358055972470352272684931988747540237314806496971315916044233935354894483164000009125524060653214381956704073514732560150010731385828720478405368597561463023612695125655572859937489634702912573538025453687804469169219849631953683795288991160892060737976679564499485473502250336404131288264146200915635792117004877289923971743769298108512280098627313074324442515304598490150445108156031382264122531143788699529107439350380012665156302136021429468055806552680614152329158653295976731199900126470108250874376945609976729115598971174156881492195533181838833907677560145141834256799890615354229638022342901170682154886718876137998979968789764524585160810385342664346006227766941669990708354867323061757894744231237443408426680008851660394097640899217046160992567211470564228529992488322696169128886119784853655970430198483965988160976063719135481398382624055896284821667178494655475797976164927468327087568180303861468544117406052858768290133295236396575946217523375052893459296014217903355981785533266043037908900587997377587306521905484146446184789129448209076315048718072201357462536727671205334323058516535066510516771889691883282096410021305599825934563346761252147104869487778374147651819187598380444215674885289573913758508105833652385352548032686112229768439788524181536772920053945941682022522377943593514862667197642548828793040043110222445335562592086589923099063948532718757193453620337558332584189638190571333820689564276968532838098252846731384542876248988279622515871910498824693414934215954859333477507333197282724566008433715670446138058278386404281361271787088623663771623186524289623428684640410252806807333031908091104788252242997935305517889878982928040320975849933041372645768643818155677720724904034253495821198703067827612663744339185596566972674669444782736984846233678118228397570328800698183304944039395809988245610868794837359561976037927006225257207070923013489910927181477626817470865213852847941702361479045275492629126282043148435446470300637053305794634291307979417903859281305350301028724773779073455964573091942084071602338858012409129861199795590837405003971429698552392128963012246359647775055436218786759969900987284083638575904409074957270012375222927328147590908023274852760548772042180120953010766756091071575449143817188246570749603162061994975353038196819581737004908175321878405973751168109085452633013781365581469654582815144854546502185051883513641872024385367070601411059156554693412340378575664115187545542137879353837090288459098849464574313464434712965163128358419681451502574387446742248497531879927051799686127002005341851804723271984412010457845695043183481722162778995411522261535085961518712229468665464092191067855228960769093242514334489978783893278084073458090566869649993504812713133524329475381058036204520548054895756930990982643423053406287367381494235249020461337764954671938499594765049079460695943130634596133306524453883304066009984998549469798964098478539199214723676484917487090927342248155308908754141476595754761673964743836460941593555958318766753287963648929851246480451043056366271729691174912079772118616021362233049772578630248323359001676992401346293346416000121225100099452031133999169342947273491190225112586674695403251571689966629660434682079307092702255519860602772889499078018563856745615250551030213943234974283524896227907674694207015841241421491032587657936422197924375694755262450323855330484036853963110266436468641265361443281495681516446823564153462981645414563034555077337802353491047789147849030745034612826134413670954910560411586128365571022554576053733409023821002430969009898806347327008418198066777660969732708735734676113113993613315935432120122907522133350965550688398759141215528993310867906166020647933181478671110333895208587348871546428132975510772660871359714979466705312663796571485372061953422093418548408814377926491088496344134669670884113720324155300258285048835798533723237398853501779085197053988530636620293545447840237301285572671189016689411179032220396644109649900745836092513348511718364012242122922259588582632028967121881103690654515799853581881208686681250950062159121936131290553649698121869767559254558855762376484449726715018394164581557500569412367524095799735743584700813955633164330149198215665431073736294958760824232205305831616965097490616938794760265976010222098615131455619333830720271332151501045783999812658013295356882190169050896985022620408699057618075248342651598838243909463183007243863481253537674782562540252258499561197148581488940871883020621796502059202749962123690026813165825743475473953873650578373254895571002128414734784958955193096584326876165491525482170316601966792752495475967485646665166745334572305416219294266654376230721851912597626270847836571348252667901304629703887732946463252103118342882903006236052223538029145574896378995720465956709005843837278257259771947206232614187072425090265937530669088707969049611074895801437365463088077508767911599444545624820679249428074375515386233428791241518583842452524706158090765091733699420747063271072161077901723420487457674876964490977308780474541606962572313410928096180236620664644383288269462350403376081383282617925758983368880096225629207427549894811988641642830190896852418480490046848021719276590431293576738352204497785118693314925200581972698964520069109802522019037018115167910815178955528178889052048517444570687506499043327485442786907164144398621878896673331424433307520872099401529426280968009267498636012689292746476736578378761478738453846911428393069270263762977647514326873141347439412172695678024651575417902868016422400616075203857176024575263565830930317865854925021679936394362937656110821187698257788051566360490099098220092559722008738060875252453761607036286436413243972299258061827332024823906394592942953008290624457047043334351500791242002744655689253544438347159185017250044250711425268384657334360914329610833781038042767863346079307630744229446126709590696737465787965561117841840586841014707327002783355213571994477167130176553391107529174437150346654448389748761928262915729877633912115197011127584268074142981284326287610133098925561595001066117924381807447664638407793902854258854087161992214351561796778972648351488855563516202205719009702035034422823859855943755592081143186167014889857175982491611560202284925951930695782933751893159629851301518436603989380913394344458862891424896989458129723325694536432488968494808553430790976867943914897197836353976065421916675954758113754780607410224815143223129587971346790796431203167960613299932611328115173362096554569429519821393911176876070491147815632810618343100766369322961259152076233607248065556598885123365448206827703864417363267452575438296930047555031970093381742219266946997350825339696597950287265884567015312038743711549886055920975906891853874112349022608580548095585297917148519136072194974876404237089212225764243137026020661170803739503005155526223800743606708400837637519782639648608812831143942236539407977662389159520954641140116313222349352672137795720764709536226953343421918408872972340636066350195064270989291237505194949729101004195298127713211740466518087774311683326380056701367102349170684294122569991600004102749246019246872084429522672845204551891108885853911259205553174091765586053747316093390133614559011771892255830920019370057522992657453841158175717585969899668281873242874659402570483043799910929258254137961915742581942617013550205006713806475172682870177305532939207480632364971739078169938427097503219687069506278850209196599683111951728490203074436908216644166771790400734919819446966744573548741599668630792040414750403989393961317788446439845439677763485434347796937981972338313459720647347568441890200854409838603711160495850164317787711219194044387979900177034186952707812449722984669352605856258506855112795496332681873886495096211750306538095768860107126783014681861260963529599741213185805738074917826376793306630628939029576437607923313585260609269848050074641539234682967838855356576101341402218603888521266131137493007097959784623379179716896587542230945431806660272304046607773946102682811446139782876079377268891487105546988492745026379826549872043703794595014974267827760465050943740866280666124747705000371145264741527117205512047337499256752845726211539908910412149341666881452899852665084069665311168387811574295687738658550657541672445540866700373886088193756620065575975607661233074909967226899311793577534902235549491823526602407685683017266686081850917088430730069049426472833872303430062711347755364565162177316784086045893748213009074254224350883716560788019395492853088795886315573417280177122690368971398253727135933060702135869068224424684966438744798824181636568541177876595197886701381603389483664669174778199737469499820905886700938897799765427770495796038825450825149958263088952990812777068803102938404056765743316347698655684062239607219639159630116459166349910464612751705158744620435804416533516856857743034647737866333638098617217900157297105756543022924281193210968014413935037884310396711043901935820158652818192073335351153820962272319578517704960958134173214757396944702470103817095243365986108592021445907081243457865993474530799925191878061269367187808062661461727400020479269071272145536311717132951765458176281828064247469127821316419819798936429374606194425934343498296568698877404315090648337463899393616619501917075624444756327817846752308743816742406009959639533803830017754870063036968858104213180304766005369011614140342164848299239684920055388672653097276331309366856210309397552308790580022192554870084333396292152938416237006643298167202092461411550784303410727512632504756768660002951431874500261212493309429042743930851140598511568585630901336228949149887031440776070162803152231744410593449871846967130478706196976387671333383988628477485020564946975507481572278488249238486665239854042733821989161970870401213796192688908336360336537950844329417063297345921013442572761570193103881676700272703093935299143631748085024671011083077710534679534144974459892938391569068105610992743837330142723943978955933197649914576913207730242966392778105413085013128612929715774586319481783156277695528296773205868701040952599943486003197335693237372676245157721208279435609894312054044976362615903071242207571270278716817213853176805276391310877216788715278732398603798903466500017076758730018500387548189779926624361135424446984619411723765873961993835785102833515225735828276076399721579877199353687496886205060293937275641679307022928599097993336041356129886254808595724218478334872244602397009520871586404771338461823876529118647895344804394502657647532748515905975047155686608894608227598189703758633686417094072613836868126443165125991860265456674937258019209479196599866819094594199764937960621665118088682402579183387456153788352960491359326267468399137247454003171729080415974664022640045279082150888318675631521364136806161305754037171302535907697576724987050520967040029512876908772167311225755033379628815817625864714753560214025402098584689815899007903387855957456165831146286761780963912871833448830766953181083846464717601011084692524364481349005819064315077987597136799344663705494798201105010442739578408369227941567936451974931705448063697527000214908137016959333621948974406940058276754220361174910695475569061114761584638163413809051923089571842789605794511850019089645061924421435089611388034496584997123357234420947030924589709502650210444858869015373762114769926927098722660788846717204939968373718001421322008834347772507444564132723549922744095875042260129676988369206002595673554400522370601216373866093069673682635356996898089371619256360353098408630337085350386815620719561290439241689603391513297424119102263580528953006472069609909511185534056717923012361860877567596754803628393872372564657882314311454976609744145728297067955457980260894993933839554594404324420559360825313612058698010827864493230469519777392828390428108415019952872749162638227892468537110637234825551681572954041364434223359423699011797505825867819583019142325080599472208667794817274557345981128789129251078600184206183436715465003193008798808580647396804454262560440500256406946999277002843068845995553425784953600736181362706872198235648857806522592883410376822353539502952691969332680982198669955591234134211881378744337491134162017280492447769091798361586603247437942611704664788267599520813429667154382097903289908851184715946085366495112924301212130459749884300080394353565549690458655250869330549399711498982968751794636491088640321978352503033627821956911976260721740884347778689062635609291115100855545831507553726807466099419949388083263923946172237953449821193039264110424791657805373814183267274485216403959072023865718410594760293889839572081705748294700324844529890557993751436627360913099161279358417533777751510694816831457870515740740450941591498788265373274334601591644573983040562738037395414924775218185327868857937498428667412706789167112219571292726724711159767563212481301480184249469322274894896593363551942737609437977509455642114247591182729680002170930760755691055630803113594454896450974542607899017778298709080710884433054925761267137481422866173525757751961768966867162858389813818571844137226128398877432260355192641983397787331109532905497815284715668288732529844728832359358959424704612803893710163323469001363796340325796837592416203133158538125315270602849451465621552378543777873940998471731889273427893654954318804213471586727004444683979463177852967750191611198314024342670383944786597746344065381864254282277896066729753947781921094510822581791617290964351864199083580736756233529478071294166568525759629326152806834244064513774070828391601574187907305991172962559971220639921949554296571197427464233116042545503226916538328957834078755044574673353413077170772032274090592706647049752725677884742948588381094459879089340013743541899289367116270669147415273074667591882070534355155753622717130082291565025812548530264588894013325664237852138370154593433043478011649173870990446628150055783753235098802815060062656093369581030877961798551668840820821557015491641564979744383916898809569988264145589690152642722714432096161118987103931081738332884747908447392892271826346579288323587105962309891782016593456819819094615648863735766603246304877682440843030686150520565235413150170887375632936335823961909495989415089723367111347862120649250924529851905159500249885452805453346992527317838726074661307132133896184837471921468062820325506923478881443427314934796954554894026564406258397806977887011969990316306318013893886146008353996204946631514643469626693053787215440558090993417527377610345983804257650395973205398209457166079479934274295790437359202579340878035514142806981697187252379707395126903511132429189080851304630280426928258676351572563470802304187664957606147204420896085754651695650097823710771654791303481668083881997266886636798743746631383700296832785812982802716137716333551215507671145053125669415666806640326343613117789558711808457396567468350145827655320610656927595612584858984500328659767245296016294932506291883327169388649584283414988002916352864945836059081493823560586070786852302533148784859257708908877530901127755308995066474103588363579937351953290867152374575446814115083527576519102342815851702290746602382751962975718224996594141833840817784938452643395771097827800673293294129759289010817890001276946788096127330581338579585936433517884462367287067401381193195078696461356239449002975998635486105136607794479487143277756679132726267972394667166551360468890261432271066141966428864289281045759857018280325453694414949491925522494417749322379019242046932832554351050359059201366942538302385415701969853923288020976561045352652099593960453763478539897496826889267205465763703445099266086310636213915112289991036829327772185873355632925354922239202229865217441554748940606152190656557117534289218633406309449430315800896137448244873947074133901816988159511314868537065785206802483940634860455526674397058029028207581155612107024653062200964910573509630745749709777355263924956530603356275373860412797644393234208550447427248217807701962976077763992125276601352998330132918589330853006403113132379657501058818479166562335475212039605383433735755126815540675262730981003551449323533913450794298125580772570490957310848144202591359992248113169067823133717007184067492718553751561883905457740482631627710876875640522831171066523417589855833222728485653450450430777667268279370704039334151365077067226206596500670924955648247217593416606338991863005934801797472014152284316930410161147748964525898549201194160273334769198624187064414103293984818128422391671919751910135581301423369127601781557576333349083491424888268227822507654105031888367514739177289423585180783662033841356625963512545418868546401969011122810037819045494101532540552876282990948009496950713051245540905107912119431145384800968578633280177110563298365326582392336963941864076553330534453676306037417140957899166517251936462378271234650222517755589048622534287183217685576746036533437593269998854795785976544831435920334793384377324720607856501449415206362182972398158546790760855621862103285711558479922177264270139621238546885528575801647297022722164934604007223208411059515615237998901991209874913514264391590596124058236051570161783975572660386711782902657470604918173680483268903969959600328177851341043768074378239751335919577664273753514436954337250209237867027829685318395440486904177990280240593244363799015064295728532414643863064229827864887465575917649060011317694454949776863671245770017018049793683201530125431759032634054380561412812007757240704609919789346141350453793099050090096691977819323783085053943845001907024946449132007335920032394559812443361360929991854495499450233845991218568103230644977106429244804821871810776661800314933584936930763203003219218460559583583048029998554547092111768348243659813076853337283636066576241625521772032111491697356272263581758582935879176924863581464375796409159261178781477498486310696304996340904339901572290418137801127263586125099331132708174663778888869885542749486208953896375311959399825054010945215036966257608629108545568290150146618436209309869587343080971939098115513726412651674479418978539578707877559987466145844917464404570819892137858443699436017078823515111006805549055915778966232077601208107533176093247547903334354433793072973968516236135887201904044988558179405496919289077562734918573959858778946706283953956096999980113676108330560803412993634677269239316654697399163069854615936407771970118656063112176686731728883047874143931753179135882459683632406889755354861547123492741307586220048717925122933968554005079930907110684292019407972056257671499232443604796291347220265192273565813953327860395658270864325406464404167164045819839350921306422193933071521729731389233808742802298387801932724618958373297091206634459931376801974389019995300345690905435956645785078753086457431254160103716746635946257995784828013236266362623680693286772668417833237633270330807336971887540246122193776841079794744599924241896302309949657423692320608323969300076588371325306829205259820894843915922328944205254061730275842387533250379762009654336129304632856368951352140291017922635010304967200990998182007808090993334774084270906027251508539816452763687231504425998172635068389497941313689426919865096149681880430800081294849969559319467523333489195808133938253758000862930161794954372674485846105996104587415678301834729730686318350349185202768024954575291937413160629043046486425911287681664785361825195434697666845282020791146552240902225895230499765726369718007832071094915315719524476863484420663782755460456713498706586610928018843158007644920351825071996491983145040813427750475683322564204560841406390207704251240469122012203413007163709525288416111847845157146285221523752535208645478921996693157793573155083975969314565121032487707234043264406137750866724127942938083179752373782716595131805331262522649861023373466525545059423100064230223001241743634177917511287469252190279597213880257681653256365985186703529168735120344290952124089243417863007031313748384425025706595563562582079728234769100465555324849784437579481284251002794549669713147929272226075730903690386701175158709351672843745699065680549561367841384904607239204120241891381244110573101843475624845174211778693475830949844900035821285083527987527938523956491478948372305644472741785039414112123331259259696679558653844454788891356854309927024047295135557958974123678581225952783664894409338015967180178495549597334841672870896546936571595696661863684951227157516283010932766942594555887841183448452097692001922847000382337181738766400420414152373217192933539758875887884867734273356129143753648982958941184167619919718343375267299240313167944305290505294698518240709877916480378338648387364169108284831186487178112215333145988931930282096783736890099261327898534809049729013922664279587152941041917524587592865578698842291844075929166394139334977196639851192218717830450184669480306186050061712068109515692961033576597868311037277145572285173154975858946874975708484160005332928318399841812871682243694537070246432325936277682605221470573284038223651030236878079774021404200836410464038285174613343212657959687125819448196369239648926835731956244091971313927923989565902294459733719454409153549824155925559600629630554689261969860240621036009861004890693184156597283509160366978158981933699056812905059955866421068770826362403543731771541302926530864918354911140018638664888932148894537056335817357172163555550364222639476539828367822038189982245439883350487929454742569049105325169090256428197260181200718378471547808517086490729083268965477267307885144418364358153032397584245477959525995305172678762673562821503665776839280777157536551881789382986054527433229568733531502679119355299450067207227141207799772964989595939069851274858595308349894821090217244652677509525912110942840588084648845924223185274631222366438930025498922663348043184097398711426078089993240734575496124158396177383738354479360858063846273389287145516982168391809369825512583711375077041128581077256985272014165283814299952418655772005827375674134468447161982656421510792859907539823272263093281626209156821195933103831862456459484025606290107974986273407046598072527589720728376797387773885657209214277202908675079597087050429365701538082892769369780674937341744924349408446454033055073823538915998281632484929277925451165175250420778998597180628307544076882685410743002302141153652651507881441008809054230354861390875687281150838988447523831642364026264153533640293190479447749857990181528684241723923778054950321095247509571651160542192673153795168644514120391248263332221258526511535540618800638756747779067599342430194696359833184875640836718146661578809020039752532958303143799536132704066494621038419253406481259703238002528670036126978779613441423764005423070987631198953862151412631075467110371094816364120989411716296941955262911570830308444788992825202452672555901056099186901470145891597771148814643381081308044519507919518737834752673156887379164100061956232956016408966896638841283560973734034005813668001146297564394441232034434443855997177290785367968717985496391690274611932822088546434499712324102506711713204329513850972970971167869154133602712815623450087541972691224014768508732088731527010719529556055938777543842721380300734385372334870775280343208845805273251116174919237396502618585164609790979339504915373585750233506206463670236617373470155172939803238805680630032192238865126526234553507777629919070796733351845932710847075002000044262249458384496622596747850582387387917520819202842491507794711295829672500010905908146835801306023543579903393106157879267048319522434066565554916555164742263873071746350391611490805625007833163383053952486333225263959169348845515996292116267631905035006411346632299980421794085556027299572224935419514170075393960134265669365772058196155520196899448219510411658864189790629969942903821960196251148323699277967437652710140742126518502661417177093466520044916509329286267243412739900604525634570332944576361330049212903143717368846090697140140353688423155816329222810628664518305183551411510383089524471498231972332050443781771243361088205394528572154510576968080226350201022078293031969235659179686764975892912439259891309020728159686229715973467817646865179814714017495084289126103715250388240955171946991343538248245691693463179820087979180865572332160976718831254547225793478653988667461756581823713055259568615788984495331430885450082667909012056034870607882575728134619705834524669025779599485001259201314475002435771108770732736891568216745001658550918655946705382087789653082715591574038333103741407933204523029214491320614072260782330188743730094285880968214677397803780521326807971066498480827755261474994781551292931821898508647536919182844881590835016669839879243443325396583020832204409570122567499505147143922582706352487902056392968887470157729174001234775222097096568402840153539089416660305361504429415644641283317638948836118018949461213391730812248649829511304419307653596477669026431984739334700276662446615879788124531034945773225931704490461202758280195145020626732876890281847748263664938005292351892311338334153299654203030989351511053385608423740976866117653609379761035019684915209739221955977459091503950822402304987159941901936941665683571802906503912461744872846468577730600898733344849087616372727695991566597585946778078362210847745078719273322682791388199511552095913956350272526444816535569743470242603963679952354777027222972193837320583586914397275120968104955338981476561213976021439190972520379435171106581764016598569427770863988507503513147114871510420919072703264441692916567892696912918833001252446208935554788374263630851209161989622104997032408465630074951069698483808079816465354885895074367057313625237622521333498377138338424384978928812016710230276994090368729141495244956225762108779943261583390400426439884565771707669501131104334575776974621714060716980954691482087348055039885559239894425869519677798624365592621522098283478533835156548517057320149485772955089599640188277028128348088482025312255738207860510323420775025345745378196207053150246300847597208616488489699045772718115931489519814364355079885143188096796203138001531268800886813885367832194176822524198556510546677172839455171624278168875871510803164883264023767430399619571404868740085659473410249953236681279068384959994339194333974796298050116033946808689984410308708634143980314502033408715497493722221486424160387958887420261845194104468044146569263784008454017772606549080118970777130387437822357422255014622594662636488495218380718342699257591310992843818591151304322303566158880116684627239605048274181817112424171616372437608426400283116181817412271495125723879071869340681973558302084987626350850338543102822898758348194054767984021217577074052551531646809071839227222124125001924740319431547990192816386132762569091014187465508253811423965446702372376724866124008089148377807325781213183449571780117209798028219812269410070661796703232162102258517433529429905624164797162693136737688527582987286383170152342460478876116562815917608917476039156286992261028076050052243755170278609874830148531635640406687411535472376463635085118181414397662599210086405094406531319907174758951420438680535544031169911366995255976531026716997848643162012532756115303420417332123236425843297745411122520374896482611725659201674611606411566170476412820711802312000320235514510160379296285010183896995745593951530032656904928004866877529015881588091770424393494909330708869247037410576106918783791615830680962327289483845547998679358524123535822444818504216164492505549496032730250823638956249091354209999753403510337805454445663297426120837860587581863885041067925186744089792222880104575158868167280216992423387566958165922935095252840544414825198567087660737528708792653952877191661595649144082802910562081669227989347866760006862960190853315397041227138084049074938469656147679462912115461127682490589440505597864752615175492633004726101962186437014993657385524518983833372193831546897853543662304659841054908110766020961571281792818752321537992736416786766667306793958518717827174153284685199638255748625759717415350795682843318678707984285606583559394241264910356662376510466395959018770248913859548034396595694255630525052118795791640595074321147344147895545231048372739500162904270310762672714960975220997788687619856673901467301209021832449372455274207097696381604853196924396469735620057572941491131072060684967818017688907729783669630377194644495472876079648456353585277551735477570883162928243138174921029159803526982450702100696745723484732531227661872625069234715943829222505541466103449542546499304288950720218857887178229883030555640070324363024284776794853870371754050142296770324905691759212395408266729679152540080544608406419379209310192594960669177778998450665864799259216759848421936485763255277263005544234854597998885169154730198311153565843016995313057810342971630739472412119104784548469199410537149728809306787425071661371876865804049930873626161484306945845059024491090685691713758058891995869282105576087333860144721456777936196395707239552069505127430945368921284794894927653025319911814784725837801315151063443537762199094761029147781802087711189154635091237510324495178110184306162215199560635996955506607557719371723315840869058959157353184865930054510326414243128268334280459824303173738687834295731367757604124303682446762486904771090936583244535517833616373470707085264718908275154897099679062390046886892657003528045566074666997254531559426071925599387654261626851237258338433601041218033567477106985698892923248189020757194267455604335953942774165408103033269204037150253482311228012833917001475637156728477083931276367879008174731865144774415034367794791354223179085537024794733799141719542957683626752082517854434981579333845896692141828374845505536213767444772977310984564984527400162451808234558514410687933357212743968591048994899334450147464909098475301911990538574314795085785469178869285168910224849927602558670865391163838523606739574458592669849895118892556167552043950562042062595595984449327521421812784755725499322052365182467713529539418736518716457446767994108229948945420432429184915543311883198326541683930903298650957476641294778293095108894387702386932961364029331199075307899856846785364147787509490481519205610277975757957800059446209228993255192290341245918778915121763472693962077628479820706021976722771876960709506174146180202168884961699878601548295123649303946182132850850383488034238359285610505509142604569103690143582265492416516702321826949622741054197756110233567300414909404624786463754800897210967137261142087140723866172237406595412515981784503697509276789026542009573585063387419693114997009080387395247714603356894709814701309684696664640815794259376288460626371384297407162914580686409194261878902036044736525939900208502620422884778695992301066208263994158285082494086407319197509144457738012326645938572516697015178861141551194591623590374596518262802731226943320636590208159710883643333145266427233933068746029402280404429362007105056223836494115567174380331099130842285853872230633922213606280072112055087760129505822591206840171424459827457802746426416928981960934500056543155945507310712782577987554289471856464117273222896254642812280041742546746442428173291431873840650471626939342014287769251923471852546220287579716668915343219017148771541148881588636968571095164702679497524037624360639007162532355333226396153357060672345736465437599462848059491032514127768940079444495558218730359381241139550944371593423287493453121305382787624240009455902359398990221537092550325531154166686634455167242029900562367189358793952573163484040895523149664422923547022029902537204599767707317559841201050623774171472376183829290661689511322152304502897781664110504002268703254481608026022456900757828678495493543029008647697755734262302321831183024795410018297789199298354114459048090355693110334061021787905176003886375289332213444032162581483760438497595553992687255738670779387191748782002260138699086298073051596901100341535856896460161336088785802395848219792689072592387810327033805437482535534292264515734735057331449244652089574768227044327594536999896491141291354574015664833918746168926143473657104074912738196256096262814215889358489870748298884436234878684304616980188142450541210293228704617160825047669311045687499852773157958424425407754465059511461372737012314206643566272005511196116747916940566995267414329943307358404227092998247667721531367460129081749645015807514127798873270560199160879349667056390621901473901939890912041995434392342117650826079779006820879678457140416599912906836845303974278842885701316675830280779564610415954956105812752200593944625968032876549893932332783479668041482941549512743360937484863196250759471214686156569903877115099705591668085808111210058435261000616136121035905740595992245175679018854840893469411378180130120801246897174060284371802182799109778589643456016446314117331717062274154933756269761915835767234742532945425856819348825404842689304042914983630918435834139883484285043981291524106702212503463927602893169778000075181648065686442471691406664194153788552966431791808647607179879565948147984819668385366846878682227962236615195313313361899565183841157170100002183141634478299017090082354175984442958204188463185009007591431133858426701590199078298806478444226586607472602621085010216850531149357080509127291497590317302088067587874061618538765636742154354779370526269928106774685988774170950264721474948876230591553810844859673540524056274199342077990526193603294643912563290569144579012720331434858635750916044582680806775117079156423910117946416359811469357295830751864032180004596547844760916542489348331447702428226661709951749085459197135697598354733151603830284283478014796867043045310054084096612914328325485683187905654818758050981305124050601492275713143335301905668608558654863140918789538703529422496821308586777304468259412775958764489674988264669951747698844130613918311599979979121547803303093458698221842041194975283865071075402083915067434347837799007075220552918935440844153012577941206425599565586534405447954097738199685572595598679366510366075691757974735492680394613704637558875087350144863949758188652204161912682006916677903840474249289495675185151232790641992823594625919305464541475953808803692560665230600437918117813880104215107579542126574212729330402013782149091320062583938489868531994518636220676214662357004911817581651196645295361505002618176081626981096522136928233777022833598692949796313949308719463458136429200521386169091648953036735092956625850443374493921681007426812767029085204264404801034208846058022550250197520840496347970764683173596257916048584692422677261460957939115398317469679192285883265613205613113691362243533713394283406246348352082872069799606377249585092855758826223200690766909442915970871848345572816874213151477054684245864024947386133836714164163925361999703772770463207519280340240122432931275355724505767132330442214245232893326255030228123960850962317008569091663449682676878277212450924267069758761989074319154754474734689879032950813957720747028777414183175707586541272695457905850842518297572651668109853350713339758208325640131555066369116317803644260881486874687063380115195686435976443619349086898306247423952523225212360431762795943417676272498298371884408056539617536172457084298100862681224325324903776263354040423895287629356677868886095319406539918266636135464863728794060176357523297668329158668115004789718430654999082550788892918808273957124665599446407005334383004351958524226832056615186082338315500643429955816646461201298805622366968060914923365099962354849895448668202858100140064428805690032973231680879143647878106088742245363556296754081212276512847888374312406113202769143678945550944664615160581070038499302147575920946601462641855897395686586690883733868189282543872484979676515448266180636167469914419387405476780116418218894784661010065687883986721405145891208171217389795072986123618205978014849642573471016087621023931759485136273355896975584741924896662183819177469522902175289864768618109476413039880234609681454504600179541169470768370784171006161748571875433138354135587570485838347565444770644596998776488233262828221784261388158254672523844722701395025370297099735248794135247930207986643629899571243433877113528887626023838093682149799649801921531567002269649588130648505130560897353241607886336033171847126151683758480430219952983480718773414761194883902609942941791298140024330006330172011000772313455255873625099478824352810495560160311334276022811910738789103164064863791877231038549760294140579353314347616553191789616550797694791659494461787319191366056057980405208446356264827499881435623390042975821635020151265230179805601465202021976211278782995859412613665381847395548018665262302710524165246423418726687486312043109947116492600184264696549362752245537735789228441089083701426042289696996118059874894106354274103020712560800002636690345220351675750402177766919887175036520395540579817481708606859536034699611404649118415324284948534639948260030642002025190205363697185085796193894638321539029908917519833043131095052861639452799620260019740765851911217129484325743566478712879076473951047740388986663970246129485355605577549590970011131978615872795789915059771843921209195289175716422971168598084749762957428406128164445071843702868080719560784765427567261663599837319888944651928704654483110588572126324010785180175675555548748760321745098088066081020306509017692338230283827285848197277227205243976994859566448301087622606506389177371636008904092462466420545458802384164288310878157320612518851654147054923572846494837937776472080484868545797273435799886673449480963945797990861003347954188994207186797347123382340951968711510963335397038069411731416585213520925672313636532312302284179018939883325671513333697318254199156248161782222366647801163705255878904024647233331554866030816107464710155774807205484404324884576620539831092479505323349156017052457887133618992813745791031485294807067909774614188981519072221651260416560933293671751243056375412491988909101456039219566080904737020172794486111697603152519384170275979949469882742657583971122112673247957591010971799519240817305791290139640708337145324024254415196098574924576989432615125075042884937494473957882834151020978766242430100988405909548899346655261900210057835309970002719709520869807553161308630540819771123424630139243151483310936741289386858255249454399542984733088057291002470291681818809919285180228919074480123904764663860604342821245471661946640077497542105228135549708785372792084543744411391837276543051071669176002344190514821101677368735463262634112806732797179104194689611833041052650696871067869005643851454669674420879569952407467365551876276251371021096520797444982651463971434850880479133164378427958539107790706483964355740540048875591225404330899201804947245593841143462979329168546450007945412866933458605266002272305301114833080655894939861038995612752314258766238833967485972243140814260017003273862769733035708141243457647744336824890264152601700982012470433000664942096975377245690021650180860257590910613391881841453401690101003028257621296093341380242383618377353846545752955886738832032801475287833071688385277128210675336627021163848525432620471596830496767391370665525573493707630963229324371604882238873253997232324461411249545915508207209273258238931450595796464962863661076242604327660439609912908725022251645221941318998566614593176319562549130529928030656934067578864513095071016184731745307516488265019308515477693033174667397052216314338246729489114125831236206148769940785518203845650231259823746608272186797728871954658537498775528278921659721761623956772202687821499071346986211035300837893016145539293583094568357841685317098631815781184380415531338354026727243709289247768704902849426657700947019872787015870408200444975642363397446624177602504366516997261403105355919569119762953139696455944308295509816356055394594511291682157031494361685064681322565645880270602632023482291367787647988660942730957043165169662482307781901335755962001565643400353287369831783222144332653586846116227435246026989903001522502780833155513992657549755512602251472147662322407659631939012083097073311083961862399154632979472175211069063291903209612852788278610487963287566210417042817237802715780253715333296511054634046852037367835102813974496386801439966200678091477251813728372536891513016913536652288609127357583021125356486718359622652409327688241127136468646934994305273013923575020479556852236647952139904083303068215370419596293285338150746544848918114096173357607843902268998990306206676941552222923215420234697526845883804565245702960630519656074146428155455321300906776434647747027257148076585009016382822145776937529758009175512588902155591692083407148106761161654014777350337156100529548946935597547872661595639806624057283731491734643103360427372010644645499674513670630046626210747211702420476266060783009559077608071603252405805328489391171286404660050264260064593181078396614300192832931849795123387737624276112637502915095635666371875216306602046990262670007602040363875751974291818683078930075156022946894083127366238053014642236008591035507306519533256921621411082999998884475856636844876927540318496002007801630811501875564777129537222032050623475178279298763491962281836444807370151787675075952236547433947541700730591276481327995102690509536717664184515047555758159234192711168961649653045693022786555008190051608440992627833393765738634768645115382639406087383520082386301341002179357198631221370571850949620723337196671103477862768894657960683159666736895421284118246854304243012778469116251440093806895120899100172674312131928623459869036374115741164189678900312576651763084426401839927061690574485812604003828188218763475553971262640069825083747561052861676354500071776504745454932242785863574654646985130740222401871836639807364519643256992918086207714268403645476366378423110083560962743080052011771021371643769887837222730466126529328635042709331421810144521638090619649057708152180152980119708832427040028479949204902106240790718767159394958932737090548296039927908790925753010887965060792406314456107172419349926495635094087192766037426931716415590808322242097922641055934812060499674417556135188460167136647690590346152140776338490260719538148778769291595294454242433439433023136770721507770890694640974706309028007435678886047208935422336350264840408636170944165655675044374270626378437963487712268762755213590355991782993655813252334007748813173785289221966844453353437893305493970445045858060586785373233968872000315658358222504038535504830354240987488866900105244808194004618546017677050748256050100039900080822061284612891367889733281716078823234027949695700685836805911032492582476203125988421164244650490692106881573304646506391333951125833878961410637532893016812918605526730242252855842418181952902226598585136938129954925635437673084397679030721781700666745056169198289591301866543680660463981340501984061851762366935784832163829303261531621926313771796017084541702527946687140868970558952827314428333107925984881384457777689614934490714037551238572185212124140700952540849832118646857780303849036271107552505135329954239247789570880671121647760666806562537030045906117038692342013612309046408721423620735581451752159278630917342637760329967860033231435399056689321953524828739206498028891319154756881240026778561305812206073053008792691980120693707357290873137448564372024319262899788926261288909474827803241636299836084783123598516736540270825232365756338282958478135451417712002420238716666518214697414360996286442200859469212699265096208709011253232836719212067770972766269100935102905589851610295564017204231365318229469645043607700383549863422177406953770334118429741801035890389458293950091377429027574019049201728932962933876876085120844113122137513729079959907348156361961970870519330076816450124925295789989944207044592864933651691893005387630280029059533767760133407370616275352637045810871745635281314653686557184978818134604785124696471678813427246752545743348066035299557783617376075748851332411724815848219453683459149379264159036373886854309553675765449361938714340661206595753357153766214371178534892278192313382182871137743449828094895753935365993528408957894987484560591015621611777783889388650697035324677445415807064672694076813443069239387593651389315477056137474007932157137553631462263717495962243505260130923986978613557329974546087442511224029206859444048132628492965240330985028194065046748955851047308757679053737992706335469317299172356155774616807737406259823455975625827133020878721204192967995688926245804668488689139628848513008424872513890145972606462617822529675982922452513272139461208123176864727619807189948780366240001353359654802428529065458687672163906261263080148073720932674120559762869889428135012770860579623988872125843853663760502286961624659292316355226677460505703746385807136481156184735144676140634648607990311951467364700731665811723266271590946644631919936866133842407256107398942976593353555807870518876292613796253097536207004928408125236755219842650776823708402240937595580322911467657819169770598064276225617005521362721891786723471192302138649686264347265456853645462924268765536154489641824724334453375607095093020882922331247105709765623208189101089184985372472329930769962557237211027847361953098356484748583807630319898813568744860192075420797271818244900620887624938279361446849471069784291450227869214186660872917103573668543804920095010984542344391541522539063227894781692189881500586780756902943536900852517447299426004905444484297295709408948978412561815061977564786495709311709023252949087226354904200551767719318978162645039240786250141429376324914394163935098209923382858638935644896315643721492259786306494532738290652444925497461403504830978351058180679530023512285931205749125169592305198951207184705122779077884938830839595948051232464857351491112247684649946975357293960563902170562605789811832531096347627253988529062952895831549382691988842688699859067168431114954394626990863934525441945467956646566246497075351662107967153574628298468551885845753650076543958786004056915226590036629010134446581629303686655277726828205508531189392764384122303955787488307968587095162007205317902369938262672021825983543906950214169415607452242318288600875223158448852416081974951369518963885432644128140767759135728087421313485774694424449071932434714788099795290313752084612049883469774632695251349574212875322887546100708529122376013151590186683157044095928941667425721458827088018582812547078774247701217293602192910038826389382766102668769671829003823247856982234891247026441292511011841469345262864691862078005710361684429535353802566025154175378858719086757141116349612692408248106742551696765396551347607579660466757649574868783596844719059577150601313473090170332135279848595185456665924326756723354280806230074565399976812914169549198798779962994473009646316599212434122535459892329997122921029323639632056776150865088814356697631038870194532624693844201248111540161862935869428218723758892554896494014199808713058693550895853628558073498512130156961563567212009510185125096129903691447761234939746100839440687571750199069351775393815043147826412561302917208517599038296771448362308955316801252497641863715163049092774687084604130503360175461141699429061591186758414810135647636544588593354073179303640616771376578045515089901458849163742801606230160126538156179339805833157727364564599120189045134996350746464419057411791464756134445674988898081591791625528436723543333616498439331999580947827017656973013094501478527031859954637294787174392780259707457662082646717065812549981978504204675402057705713487650284806277733793709684393243749792950778306828556029402725839212542473059034551535495438041002708804604715564796527766936297524070024020407011146107312245663396206745786750438617331287174505533373409796818228377238517318487247275817032502214771648684721305580388221560456455571824931404240736771161044170983125816631025632247788744461441200938723103419337139279478351673128938456556625597534602741193208883142523912809508178178057311828178775763689293436669361188499290493380940880325432616022227505693695327571898288844292696286972727473622753109339968322024198685626577139274592583948160777701964170545822756458378269149321633032765382535603567722124131388783299581137848057257661544206769936453469984309798156460450677784798569805757892612021682820829536796839849448763036975183764934400996636331624922586870409803329597426037543590977006981482191775671210534489592103805094494632397911372753931584197968435311214724181909055832297213035579859483012934112522826332608133350375206127384600708340285358154157306999783465103959945030904047514501258640432474761990322258412419354509128527584575619820013300893625426061576373050289333721956353148138638051041341944054505178408914840254292586695104811898051088996045205289828416290298146591013129671090561653638754988753617517348446286035867427347419364837723387555440098352844706875581967437787401340603783311999177067771441885317871042494723970183360822710193458504944979020481179420064757897224465103450885001683326676927773455672517649497663213697635907607978412622312266276562795827052224720754634988417894911975015948059587991454755429928522302393097639268880775720777110483651743975045818245738021730109778711116069566949120825303350370995160189406230031983474122573508007521230248489559269735626103233411118539279511403559030725005398885631769530710074119388793267506082214964637263250569924006397629933517803677256710122831536097342403776416745728208074533118072537033143285334222331104559966909352335442313157695841149576161448850285695613042214289077045225102913023400511166957625193581021301401171068104528634429813567630583246115124366370433436751739676382303377811526371161600033652118051908136698772511549292442844130963357522009755620158959843867941142014517070142941593081814938076592514916690454705982465599154241547795166459704779686042161957028132334645539068725246031759115443404915052510404722240159800618853914832511839871315017022417356469431437073983621649902477795302642171525993664720768102464885427579864639103176392856548644616030143470762830965621177550589961648586040043917300357276063871337172873839524467481830176824679774213633818881243337380625895384612513164828370403654200006939391713800034749818320908493183326959255901512900953939305033731235810032414776906234216022221486081900573104311781662172055158174563869995566628295044480374761665272111363669599928338127760553939932571046695439389825416355840674363368138247647853954084679541067850405627180241160411655789513479560899095623879712960637524842062876204516387041613367224777542470451622049046685730000362697168505048528183842838435553200611957362750613602319494403896869932131583166386433371564406507346056755557394994433265853007234509414909158724894005267775993855730155867753184049992155006777842418164649451628209112017715286387256285446721297265940761550162043664095044048756691136576983831125406992337275576895000140245615865603730028203260236238199812423881489620872922294522716365866177407100934083772696351042982589334216064022848974805809971502692395255482341492923684418350343767109176360974041089163863589941104932084618905528886000980862290970471501701456559581669266812201928431845539598948862524342777152188067932625108321256955119103601950822437971400583363477855572154160628740770787205785918592557008332671201813351442363524127465226625456603138017783267123165441232771254886565442153165864271252059004022230845729871159622207398693636638829219290446232019799190924362178600875693464911625787989659972624080677176912180441774938565941535597744422686036567009153980523273037588029243259319168520064103176161541478528283980295064424215433212651026942139814735111098764530745299935811962543580580029213226410513810995684601175592096155350472127411604260993690264806590014921040044684685549398455565493293938078977798062231092339985578852890344956974914337654832267635395325778770927539394797584536469996064454727182168176117751836609759950992165547121804963657702925652566718905089848855601346911213497807074459258625359454369870880310662369286387174798834919560553629364869164130130326344090477368291474855507551832328553258603336432438901017177462279742485799923419313614858736002847284869349690562374051117844632507090064311553865505092168000894549559379997647619353691070600592890465253996041943508590337033843087523928175989389892564180368666372030232335586285281120434792520636124545291488619372269751940907482835138829452876491347024627026091422910673021828497685844003088064707189667230898054389840767846736080433812493461521463124998080568073083971290502836799135674029452211266684448245914952025062012483042201186434536481054371573512816360230543124399385320658376317423617690702950792181151605064628389377892962273292355737436097464810691337186999213860713343958773679828740528686561852875635287230238779237153884108928122026896994493863192202770330551727905280055181278114235927836944023613976051939115648236475563028173501646237285392880461794036461278924960998204654217974198047282179025777858489840545384647117733979725346809823421534860416494204699877049820065089565366622727173713254627744267630234436710651908490255459176825497861267981192014544825114697017934205448998672045854311544820987976766957409800275076392002632403630216681039041695800801358287909244795792050551861441796535969818587047651259654141705020284663602684455802256955785514398719490974227341225908322244952705075654959672153855002566278864627980858249489499787573092596274618002419701591984669532225775844144589573211259395155695615544697099409851179979470105876197608094125187432600269434215265716659455536061196621543107203946252451193513667070178486858754403325829689986453507162600305415351870536584839935419298252858721691840928666515336649513374875220157106564392325858203922158593219426481857796813984053299011100276279226250104943029312620670286790705490097077545501895747876216890048416374534956329242505342872927164902699161779460638111925842018059067382945984619070537670438934851139258285680480384648755958520299643498355272885890763762498529587154110011325277036794875769609164848783805170070314649306710254639839288575811281746915119903334461667770468013035028698245309419221845131630686577538210770984902600973954183136883936875428752046406849848481488537163765947566412134748003415336800529812494676161067719827819287011382237510259713091972379301823284611110596426102667326841967549991812706021275595193413834472384450778856553130886327098414457119734147579737219664307891986456335748756096979102769024370135973852609839275431795287161817347997718223454378300299800522756171424757327678885375202380351241396940056915774671811089918293517172298176112031352745635925559859774256560127542080010140378445331590338145832142615986650115172489644440217170673478815871448284460863381641745573127090446974578121954156869620358107808368137529513435505309772699238375191559427761188634346040019097444593866674294671909332211194357184584411803891473022917365474629625707318343409459313790882626635162345741948066475900461100729909486467985043357270748172787459407284797352934944362733545938663566597978552819086827164452243533678088037387100296893947344006884833000676660215160062612172217088343280872260070082754003078236949206879683280592690577190375422452807602322303495258980337974738971444046132597912762077231363623362265511572912043605260743832578364519289025291850190409416151313778871242204250162909763546168395793779354499330046415231190622570056788915990211932486768608480034015688897846793754686451217237741369340490233052629786243220260314018909084705785907515466362368843386850050793002284836568447954153785289821570724598156383392295941954696249681059140211923331503425131654400792722700670677195247218665606408041919379030894484165898584975437257258820843189953536044106522751535305981934748050669603229079739981525099446087838132279899181689284176993768352463699239306362490141351384863569881227354962014607920280448704695963378745536351385242878007236515570626771377118461176658920930241671331474819265934120991251280146865713994955011426536536791919511711556049939672860748473450560160237395876596538531016736489739020654091541900540946295624343311167601401859593511542471656897889237767335724006464617191444547840389635870311299140327070421910319975104414095313013116393466378441818776542076228774180001792324997955668359373951412515614885676819802503444415249829702765693289135309423559554914494905341678142302697306069992969371992122555654755614399900991095026427484528345832275009590644649802473919786969350739526609835344140868734892257451455091358461673892334362822090894999757049308920456922680014350360772861397329922574660131866161936429032190655904642919161440891066073150851820092239204100615964783988056238600694799674695815350087685196341760517600518453946870251312660882981872463856040989319649237895452523135674512680273106276367023188907764805956378378733702624966657274246851547704248834977591491822211033559733354166810574853920278641368752424938588422623953004376127237359336906525680463835633127944356179323680521301762799378432464140598807871955665321310761640837531180568141217586536159869741006881992130403763929978589610371197374409565653958172663081400454618698443123987706124949847969829854634855900323585491537693471269052641145472084329149008517971242555417093785379024681796330698618423548968838120501729360616182659525246312333331473926215716720228880463494394293041487768924296097254012055478598455760720536107779273913465203593382384008032883052817178496061783440240678610557994732221289735733758309559592421933176246253866739354154910280304662524242715032740997997621564538795555821456728435125311626008995795191720631737441620455904091938032167059262683119209600036777516766962418749748439879589367756364856111096920440891222867692757103806284223680701591085147002299715748247747050834664344253925389370193947016630284592283015882712333207406068435916296362661522141993778006175040886882515998742939426866304715641174655818316037382349895430617626613493578187942091190585723281602255814057325761201398761117649091477532485568911464686727901313363889687956856513961727003384432836044001468782141408805323059540066582954694593794250291354476306321514700995599669519626506891010498875286710180406083086770748890170279786490295364217086701746624630002113902123096120153690071498653757925522257298399627543986190149483633720024121725165388353489824359084683803502916479020337978677525351516865320788158822961321717870150874120360087773169240160748508352280081655849932291579931078123608355264081120819551686708766715737245398549777756693296994059466332810002479365638204537099695779853909055696462820257952521790839886367450651434233224122037917637684587419672862295035446565968945290019735618848508172323156467444315434993164663414907118188340075837446139168560785159931683289726576769272117208897806834780911330737350996718420803909185356155318657834154011776100616940741357813258722748723363833655942588931954841280802150208302555085341669321286466178300613784585563423531785724671892763022212911187886575862635424876573815387462325842856848478889296508676392987912249714907628472848738999969541553288933697076345171587382387793946733950990259238203456609972027736224307918531332362722708296969027419475229622447293852650228761661770087090727528004409396485640871297929487234228249434320305649137872763776043639281222537081043844947222155794496210266031812830739967986638223727644666437275337439662058054994945235542387890375040675527378718776868172343006182222917657986407286788432142732656931700554028442000356574867371195632130990597032129385233170716367097441210793804409850067078475611884211472390037575400669089948585459956003991974605439284827530233827891945267271192920028748757690270350150759188719126667882820872233418497598318435919068137121494930913881386736858037841424900781236145208661632470495284054926841978476134305226956611342419742637462590623281124300898664348486600213729526522418135821944477314338092498651199737683601734302831533170667533523501847195408520144045695483904304663845979876401223469767750739538742512332825150582476171947203284270704435857818561775695291962059987409920008860213534143293799897006603295839384479487413318288025318785599192884635640914908856010976061910890283833840181533125754142062295986261857984689371721127139566764385000446936020520800803836078027724310110404263550063933755707494266436336156185627235274792846974496673399425564075986091467431211231700868080065056926626077420335690458132629779720605054980129364271590709952453728290990832894612546908030221942410842296659310913313485655905235476910736788056095108884529744199304016806343212487302069005772231206685253776383234460123408442037036122136757437599380588519755139613605664504398989436557681826550725222980371269304140008257388712472863857577136129601722298363867044888049890295422931778647405979330091506417450713861386127082538861755147404436145535600575042909183238890426759302905216485206072055058496058887718361858512592222634975313780277427680165955846441925222635982413984138771386583221633890597213132500542620482607745464402422607717689009785963624354139557069441417128302327526826194452440594807574723814813747406504665389308367481505503821780696073879864336965395158621120257266850169704509746239985665768270651326901120291077154738055936889465571128302720485917104703489529299511427774981479113110623710191312203166083202743684665559451272229118994496129670655920540977205864274398544555201370639268833518326749454715546252190669940224273473293416108012698666365636701177583837689573108150752570910779493172716992149064568280132997390031964780623753347622295867037982079127442002786126161011641481565067018839706641579644359853808117670329788430492162305955438141920774632113295228136410752619861432058989425392832027875856893488412229740726277162475383745947532246012216437236663938852688910432012999509078788228986405029359666944087464680378206509941245320766306811465416274881635280112042766795956851440422438107878286347797822181694051947587648604442139349112855338693782786053658578572180055926787990890875621627566195435862312740168184610985796354760001951310367728792857938150163562759968792018392437350462642644466718094656607343585236776188220086789393763486992415298093908273693086626411654008732251509437482473964506498871016196488243302333413321348359155598965250886842053450251213758279515417955224484375868209724252603510578156781989802377495399852734724450606504605552748155812706972729413661794921573180305874787387499367124717987982165198844265345184870324830739605153759180491728892630400478018987035650132045168646170950914743911558821050870811691793467337462935847948595257786164946553825146917455660729565850247484388236869028468765916398273999623112509819487354065388726723533427700734120253435037462823059496643348406013179883973097982746915900436976402587789095995923055298047376620011809458932590746951233211643924268823052729199641758827371255149455227537079422665299024204437959217780032473155948633502884076779299731594648574575461810171909465508206070574789039979039430332744415078857303200743381339345800549766687993583814481664202510588014032538169227041372106498193593497055776563490519949338064352401267426210247849698545323879980415409503698399759777976412793359768358602492330192265737593381328295081449097695123678877248272593250876366592056527254869116011158745287593158124376678596153045450906361000658899607923744734139183879004850700404841649912612412151874164181518714805423943929409128393949592007464354603281475389147883173876981415647690138076448257784080339917097399482349245900917819260498348891365780465463510172488776299821751017401054757960302993849557705630933172455889077895652848691859693484442877841896648396313465991990400908107241266823953142763057991950812852090367183875944645774020871177268034123741626222958187138161725678507167990052804403657796197436524647737852936159638128067304586187556554571667719680008488738268096610555920896703860075253307815650224150685617008674396904527634351565361770446593330532184815977735327143378915915199431612180412073185390587630416203262486059271569771772101107168813135659985373911922585912459379100421100965490637015510643622744498499449907851531585093270717914295216186278219673766522555160613024421936392280659493635694048437607122098992335982563437036401347904975449796295761842754847858479069064009259332762786600487263710701012705535573612052178713122129540767863268069277848219968069128341974075295183224528054435923743070074773742219162104863951288725234364984237352302321415870741059248441936249243088877053894213813878025801143520881934915307720262013619341926102391106820404383813030312036810736505418588328372199071938957347226142324673427344377703137761237984363830148081698954697636980278989600931390906128560952969194237381286245131609211721153882357924990506737708768094327367289707197411781047640642111157855705663165569585660821535099205801094418190136871450996086832146378894235610012236622296558236398823548148476690929421532550428492061013881094096035355047411286005431261224932410561600292402807066658295475579776150314120558244214246970992535502732145983614833749441737517105320391684985183763884277270173453087420447301472117709206024782337645038058403557071474591691030354028238479288544948111252488400206562264727933586789580742293214208154694583707546925629575305935804227217838922312120464915948592524896252566493944698541791227325126388089625066896450806688308740420720869637679220625420081559398907789768546707012895331845593290876667322617082306029493704866893459129814372965202112322339767858095520880417416102532262483459488302063320676543686977471482765729497629613023496319202055832122822414238698205503713406907449704393705025638507031913840228228766268898103104030812627101182222696184536778138808504668116617485967213882782934931933164376237745250945226727600018974296744441963546860730671672266980613130287546429576866909168601097580243287179083706685780416719034183635783108956817414574992815566688680821452148192488925627101094181595166498384122621194199483775128916733520735579274184971949829602915977833015269003668122616879517283455530370785111389062565666586834977115933635361934442524886080805473572716863487532300839634220958013738009039307244070312338564388792754078362963156218711791600557860021236108187369452026476064509313648801404522138442884008751286740304565377099146338901144412229014019148538355585187349130203985489629418867264070637018304119192644437625109444671725694786031543480622917792185405009507707514617458902385067226829899002900077543192153854941010298309187033073159204115678304294225559066456401576038544968785839595483177862748215191321497374371899039085138422432935489799798293135657466428468492313676926193368441862643421093647536126376329362845562169425971310401023458255363253756399915217627832054759919838920825472782229625240253941197704594441977889183880821463870421241270570318455567552702732629475914900078665621186306804353065469054983566575865816879445891868936653704370741227985321665953863644632048064662871694776927739172230405795982659852494453325558455395457440548398148863841381413508422610081433849958231365685763252334159459430548176215918277103246151718204187764378181100231383108992114452684627267295242800359591379389428675766364294860793198813393323644296686576265739919565134163371362413729715810070937940467433397072293748503693464105802504280498331486962421370434507587070182507785373103440557067598648315250734714994400296968597816956692810898944960928363245298510825976113680601650551006251721187650077484190408159050688340815567568402807749953414542345272776144537343045745402340572168933221323425542030917874272145827534522107598692249976227270915168541172625442980005888279375304881709735695869326512625017789945212454036128277240984166312010679057418920770854725896192098819789132498999854571576591037995503538755387121560779739085848545835088694704189457021287139209923271597969696054233516551728990982681014982732377046308221081145468274122050044328696474999011760385418407280724482608877776829223774489608156550105441328922768612399740772839283833846693153533956496758434783290365753541824279338563986186036549215180766604541807776132000722529395668680173155277873297160432518952408673597987863511315992187804141919104424763747774964159453395437689770828223112815081640459340283891948257584354712205137873629939690274611566571760812318051705356307092594928292333296284603209592923732863954739297907230906822093447515231745114667513442099333190442614804857201869740320606789188722094164457611543914700667907471162513164985165206620288956070376565361659048404458701567552162279163267508594417990175940699536683398301492789830593349467186636282499486584628949462832070192850332176320919320987698871123984900007756461217091852364790803093079164440052114519540515302124866062045067178068705124722263629797315834469580011619850095640738403711880862577746162463775694694780786524708300151907004473914542855106218594979478613305526046533620600578182363226444465398284179005361558587375767222107741433598940342659686445858468100408608074112646025030863775200919518817648230193545177133843558690812679922790943728106843003948913044886414459397125612788423427922550416532929962995593998846192379147304157483174416851234034121732588198565018586042138861366416371423436574421264029906281278487688082038017725597324280906743546246238285095641684717396831007029283385929711782322549144814425922253562745701935854540790478245315213688637196253176526308121041642197880700569445556677481355150297103530670078678135014849543943750043117616301502161884300192302144320627414428788205043283351633363203953613800131532768578290559371310863890206462056033455522148614587423115233163077800468837427473924402799562789136648644858869190093207196660591213628072155974939048923309455283028262309999272693190526486930146024643433777068111797387403442541376339786964045682426342207623516994603408450583608058575489261436674863666590949119264150506213786642224286161863922405817097111495446084169391497380947620674393458659212223862335911785720947751540936072807054678989510071900700109572297045149347150525458430741539595155993188547824480126140751794683927700307026880969353685665448260510305032459673576348216923003991924096312042391524936814646656656906691497127143705352281321219745731031348357748589130236393399582920579134061534761529912512880684937321166596546077118559943749867738865612085772148704841006047084513392808838174901796391643090606115914984071032293493755003689426173517647631515786110231732030353042250031874500707626358071778384353722290514616286645449825585927629697632093985340772190131962435291862711094294625274068878830814340509542551742682801643730108405905583173402683589917325134654601642776707424773523170632854632185127680107542659925647563020080119601090921352606050277227796269925857396351107032809172834330488444694323708109028625913511277315891627421114960285704274433677508118375554519283912806857511559905524055566519581387642070759513710104897423326929315066712654621961491077753644847697051835203888834204588184468137240171153556635327216191718252975352562749553575579817692563252076227224721542072012847524473050161945589222185222460513778463988360552369318258784234127488796572055789808978452133676122085246673358956693189700931827787379995641076643349418494923907357295477932714718427410941670293918785806549847333221542183152209769521346189363807635336022789890811732145725275269409299739636915556349452954043481448099496239488558524054222817979664349349002230481824937463648482103306552555611183519454034889588128464062041450627097564681093851843404394621840435385517901351701669784303641690596638025599817945143710646083944146303429059215717682043635908792477298320936152717099391490805721854890989587860634197840735493343267072964091575389451169512290109458791186237923449430228091222977933925394340779497255804530378800366622251032918083921268722678522427693858964211707495285541739456982006833197688843320410232860252348115582442313539678980613739656058144494335198979292109670845810373325692268765891968482798232394114546822595946830623934628863530362158481273709411227751477536243508228285233344099399060528704080027813249180156054447054025478419407777107983206782289921828297965262670649898655917212680281235824452951480854629961358520536817810787895959132162460731149916106899106103367486629385324011648300898806971577646062313844681528149157692677034935060502058999227834765245111627179395343695488189780033090041546859538508525353665241463983684575389168989697554796014999265152797632033617771645335128501378546426846153203850134957752241158584693006226862495247050586083002874721053101036661678482493947121126887768262503640112411353279466076460081297674346585887143115778932678243446576287191881591056472467307851853899334506696720039189301701360506107565963465419738098863423351481838920990736451844504177322083520390090850619240880600292435832541411842093025453188119811131186073398108389035338862760475887499570491401499465285082695567102459370171317180207748490370970439033084502888299269264071989501615726238786862116295738589717050645466671396275475815169589156924819030849345906518872640232865234264562479169366251029114734968926020073374384051544448556335422816797926467239064378744564099227336999018791797671983590338003861747885702849585378474847880464158235961772093745930479152702919221920955814233934037722116658373799122332329398275262623344129449508913798331889044902929647855185624394735334809757591672357529777040825077578748797646431396783526165442325797485037701647795388813120084465773181309452311032969101477697000539577608013901519956618272873335502575871143785877120830737469727982161544681868006804396814396887010897387203110965355123134691621085082213749008159791943592583735284638866503797258640799645895649755424132758323221350348412132126784359091578290082019651842858822164068873794670390691886652805126727551420199452953284427284336371299738589050990823506758233950722504203635385561103997021550080100856351547674932245162263633346658558968942708963899115246958913726659169004634880501028057222958406342436985101411445529045843594446587107130604998277804450065626366357890152279000543098144649311845523185444425742921562628257179743155354277726390728424257140292019510210162614649357976046405426081862560798764195220862782454882123061685529124223682315731252302955577932053930911788442088150687116592689910571276897915708283304355568821080402009733155096358357726167886135655557751205795655130380977045797947521269707225793405458112129835969402442885468446411087630791324685276880492539055666310150308977456048607384309668647016823837715755973172844985271936639813003294115589370588680216651850932267382895274030266979717376368040545333807312094670895459531811140439327806251962668784074533981552387005461067924851014658718093818290526836170854342478911587353362260830265842279993680807141119425410361667314532950023356691241567432989288581911495441191513186285296172784353321609013829597374963665365394929253115597026641781194774038771239046162962918686638155373207656690065306298404192461635275376132110850537558890943486205678882176444560357934134120471898895888108562341962301948084658127997793549990424394479429928344600377169086685908964208384246866991053592347022896916680165532332519026737524711112315421455868852248354416584175238035671241398735651867720587915523773411701264231407015821092099821500890483468493668717250077908858508506585918164243776151202778237105065517366965499688878911116396681960230524634898645269880429990137234747446656045271223094180107074738232261367630587376120882903440926702632505885759091869546051790087693992429505577188674278237736714442645604383028058101391574828312271119622568955109914712834258026582762671280171431428244546193397492352984115750129992465164831757951504703310835160990618653100681576994526458685365243798036211518358213597852437450489726443504794763622395545406419629144486536839248341420497340396167061391433054384772285122614819794335245479834916362761543014924754651063992552307123918145109931803054929437361506018979247539136100167576527177806541657196816640912171692034210182889719166332385301051047340894989283581838370561830457705637049906749932592366831558137384364718464468094047807230633237410149328400978385025848116387291414850446199118738775797165790791213870599316647270141885654346001767821713225853218874083681187661151293549431984802742417019397066892727316750028538417103266676910617537383361534801851060839133996319345278842388403243069821839615487906097803546955007062275336386059936553259814816081613229079394842857048331594585729535134834319664053904098667305254118649282789453120608409259710286547857542035676342859971790576260286969459703739063052487283518282801009136594498571473326453641101603205508633771810155584405055724883961701370693078795785828761761300766282324470249146717511975097598336871079664570662625598371531453363413369651955408121697623569001375064125616562387377117912908695081643663784645406568516871544310980852398974711072244094713214269657444713881639865270668957209252250708497719568710408436944636111942824829752525399398228994740197247442953979795511291802826841524218786564384171888966784139668206017662210102344616854714719524311201983311536091219129450868256993916982618828586272835805930423823199872206708908031276688668610504556038284707206588429612104153961090816880020192096329440503954093885076979514616415397771315216685470446696475217156143958639122982083842089082791791184124792562516465173035787898792213093996529341181893077189334684860145525496995647436851082571239292217051488885207229239871417879959264457878942573175761880692034745339312958411344618127869762941508704726558192443849022562767765475346877677299002434595254568345271114060932099532716400886999499995332912313870989288669281615993159144520276154370110691876374486668538250744239161577972994310069725983569849783510729807054737699477476465432631752025461344221370573852037951872352402324932127808134547908915907801649368355053587543395346376920360176330422409005477162889402226771506418051674511629732294556747802926058343983014610883340172837495506221885150607088921580080720182191963468010585831456479049052315243926323413547815709934047795768921636762753968224861770448910878328121372205844398490800618966227403142398494900593171238819297096619731731360312710996019144192462947019355796139816851782312654913082344543907828022937109869725822486629680494169846595250583687589350269354519651580081632494252927838990698837081574137655668188165343917807442581573017053655282501951343379310330160379716084164487001404716127673301763936119245742328233633168565233866355845248148077000929865009175252308282121409351895715899144153046184945609700847802373458268728868051290346606115745320275373717199894360264071175436288754957589905697515621989279139732607886996325411924240028073001607006085039085960275556419302617995437655654060870765947427976774232361681351452283878004947860594551136255667965184850779021711280086609344716650989127658743986959307514213194302257320535316358737995146838873600076835765056244428306343922677009305209664917261964183878341280911922993969274273027411276787475548981512661271923849760305596407257297002716407181377977438107706258842534978092761665858563572480676412996493506988255205460365736369851903953592559321342622565825229695676822255999487242525011324914805801476393168971417060134734381171534344834802656048398906571640741000766696095226321342212564064319155340685290704496122426052654324271969533977396691630286211679882176623953717079611656220145610162593914728076054184621496703395309744673518763227917509920627388531333078832698605434020834565030317832670861807657423557461722522940184598198784429506917536263767087694125391787022905194881309827092776162075759514664764854847777153683999862430362514873158690999871345826720501746150664315711695368088639089768671404039863147981734922345514178138384606756122407394470604576277060152473461835996289207287813729881743607705642481806002393752401853021166300825841709442253516119930568690576686494455900549373717002166136503440861243288026103074346699291981754293728314315496080982836539711385753029958373693508913523047514815143020071348637316275641326925046978469162286771343387820027140990612502700132949880232800426935909334342876119261814174939932300870375501196310343538436973746552175976241640143794842091729764189673586186952764071351429946423933168708038540412154565379133790936899838644343995183367174168194460307931233798270792454469740120055045148429679061665349235682710846519143039214324669683384785693183573633751797950973880182143215176201358827733505398415669219235577573383323450298928408155876171755362938537328801715970186879420735085642110534105330479940268196930080556269869126030302250116927105503132591898073775252250785182332207061760008358296801728906672716004573663811527173400590298033123050231877299914601825526632733077221506312796918814534129882883691895975759541235382846571505854216843535497712105272805592788772668061447315810395017694793099674542611137547972187015448361747247983877040703930683748592400319537642576905971467751538375833729799197613600445046674805764193087735190152546613885516970614210281294376076071493243003116474636158517089176934525743933814481854811161804492978923144001463980688952341756936793090207918430855273583154698536289553583517479844212426434840478858799582869936584237850622470528786276939569127151498903613023495346643439691927648603739169967457572585093383577687251527220441664482898941669057631237027056639189022854095582602154216067324511759938707492076499527503212425625332196832833506877724809115381762569359053090153832639170869281176759133982575315106283812191868026418766583230281717616847188124054692508598013811603003843050501574331790015576268978058249535446626112006391367553545190143827841710652416939688877014755603736268442603249980335632592962933369731363603702624940451184913612844285828426539597853655176887313613658986462868740230970722389179693630362838762499928276813289264237852835195756905978748310123225546577495242046891269223923362714877852156108939168296478499416267095600669375607330157621019764401084427403216572682781668403354539803044191288316092002798863322245725335502832613944407327765901195024626645670748160603989866622572383510980147419498139750757767038897960959491628682866397027060461992905783017799365584881428859683057814037313746227499403194964941360934020001041728015283642625174973125168099328077004570272392036377607084171097130616783568272626991132898087970121739379597832681435772164167426712259913593959951206528751438733868251268640593532314874571331439213594670481009831347327331345992673638756725632765723198357250105745909980740189496671361862053889393022921770107165996940827328044574765073589748633499193600745619868187487480995728009182541236747897392076654931120881427365337529746556557427237638238195443478832559117259708796186212973969705502860315150755433648505583737626060833077323855117631329039919676808850838440744358351813088217076215976809761355084733672177277939998232062995613371049068362456507762768101985460234849059684726341916559423520101786120118138082190312750260452493683808948849439770568958415589719020966150575076139946771446256938394613786511522195587915920382481260751708699828127832162337185344532440604115552988875420978013579341037071707498782141653758468794396377087707753952210988427594422755362664925981114393171520581915773247820111407848164847556602458757512892139946739422376238581241126548725489828123337906773591681454178151462958537464364827260244753970350743742208154483442266445593170905576637289788394967454162438984069712530945812915654149283972550359280310439984712994261917960643838165085904980010498400150074454530481049053441700557531756227237983435892414788906608995278649660924743205501313303774704542883422717216602213830141186344047760759585784897593833203685258529965914438783089807818247881969328458675527254527843823887556412695250232681349869507931256484572852513898841742131728700859216746604897719598400201708443966123645759033669311680309975460655485225625876899355773829637745221792994478423986733896770817056754450690967179808231305993205782638570493103004262644325238592655641424915245955820246288819752582874870865439009364481106660110451600176005340799250722720393667439799758313707597038858996994107452283801266817417924301109227641246085359936938030961743134916683484466554575357823130379867793139780031194622485457568232038105557250527419317701264144777648939755782280497268813673987300660370729306079131758599196417637314250788182219165358967217520046289541147490676191075649647654404226555195892363129903155106566212972824393440825503726542595200783734391960010249302679944365154031199215988481699409777129465338686376485319217039462557541187715198946440312588472033609072723147638924902625006732265757008767398138453983380623188604591490985878686308592113985468926934583134912601541859316366419557041305232548808874708435356203010527016010627827099990203027843065301709583022904613237032774394817630701164828902960819444884042119691610328144675266541276366218772974976098571012415437031785983797682754046294590845202791559356071537330261466291039658816978232995415045960872472580002103985312685244837778823614059095567900441810433066866976425112212915344833307053868704687975868363299804100234449954613958662125626081397095033472129007316438967491487503577611263420751661116206473307568470392867379438394410944859929338033988978843403985445284511745636008664764229298458906240758544167804599755557199698425369573668571607203061965584693763292355409482133246067133934018948500372499909899989375120178929426568918598205004547628438736739309343551757126902086636243712271521176209110966763079230370062985186155652900789291612993578103754770043372876143399144759371323970027961787211451248032346911728629994138011988851182344310256139064055343181609896072791001471784814218793717427142740621008637804200363625757475406285491274247455743415940391870992973708762791665766089716866771930135823696734226655666751067831467261971665861466607227168421968530371003971452179344442129681090782535197044255435999421387976138161446667969147269197112954145126231041373861687434499635285993762758535802137561126593379495533883488080064928868505752591774931181260334183880359734560975712269753405077315937947052737558996189192769158220303370084573577392686725742952797388924101861975088662486387252278091498647011254702980843588976591407615098060939470948841181923590275202635441296455084961833462411282347521719143441593479124511857604703032235400163456457094827609034957889104540237168636209524468362966091028415253140436528211774542069235355531736594907907014599819363832724276254798955477592974332501943312716508025913565761235360177706604517664799995663767427482223062215438595680268098168308438663817260099329720549160056487722915508894098340698301401099511172505174576122441788997428961929208666238250101945554570136601695854016745974023295730613566104457362983734764862520383965613570532374078955749161163250014072029596274561506554567201552108835766560699619968663692046281372914102218459545275724392294713534360372722669837717306556903949422312580306428841082574659727775107921965430399195783229325280446218633112515681451498376536625162000102872132966669108448290950702308378013615614087597673269499758912061253135387957075227061227397692095016376175341298354612102154433589657015324982114704152101034908746378680090544330377671739381999964254499085993467888222377551610174155182507002790313396576471142948542227960511306306963528125336684647846615106305826745870598891150810785326044554927376266120835419404060289117684975716918534870955819862613193450727157799242309116319266372242876817078204119761583498975510411718363192554420991976109347275635441055183422615838223736278916703127670338657361101674216364335169394154874352594920662510593397558486937558172695017611353753965087534994369086129023293365405596860565815223609529751621362064683910046701494329333647537986037534654332264234314776833797634396101105135344163768341974711556906849380447298199448669531303185136714542002916216047510878220433733739980657353129530846416797551431229228042599885889051946286126441048076074893015374925519519328410358458022617294681576383043588309446638069054006511540674886089419336685545891721816822331618903970705856137735886273427722196493011766536001121564973654025628360767019218322422480370987871561157075341603754951153321600985307518009190841535500222956303720223853885446823166179374467476334402007820446477568255952681963302880300058982353895377628637134430371514238553147528577415937713462056386752276223581052395791745099300588272012754067884079470964520670391457814766461093066801113520561790563530444896305475271759685400286429947383457597072630626404222934795956894597172367860417647969284909066411626432519107663172758526935234295939334647699397133202551723846990452520786878961180203630913418490917112019965825760200547324959845084196600799590184692816834464851856232260748417929561966418442252849499827608704616363990421073555633172753494490308172758027764899148073264756385840799479917562075397329367078605941544089457928481344921106620845291399681356452428837380075072944363426897675354786678529954602137942517287974830446230639831577850121726735640609747856618864902428829361780244582630246557337384411888645040425319835158883014338022494777084752085050808666573499051741846069254780672556506309614914324610499507493200096494404172004348676493013045931188160625443254776196117489137712441458846814827059239638301124998203395215877481942984768942933449783637653336354114291856553115775841784553137632375822889812355409570662832527907033342760824421005877341639461706080726732826265540708431216975683930718472240778084661091175775376540891118765034747366061476895183472541051958118864679390363738993571107338312847836531425079935649282442771786633217277497481542277111806237270694828698964363681174577838507057022317489871729728951604850467920036285642735868727872515150573925501513098243133017860119994807018669445059190853303777840719751047227171011341156252887057856536407636744040329078113421990928986561148907614791061868952186024340331537036780603908994153301910027160296764029062622290989094978714911576955125292629828358849877867313442905183166684007743418234506555348467908469175277783259412456175967705327346436830233951493891395284606805903685359144065047012879888934212623633559809511502994613620773250122093427602234952115715803043430088836447445233037409831621231122297130357214922356290239969654837038769517841177010970544568279044917125159259323970399529667732995298028166697073389287360552497739859608928440364406237388846753147961311922301316153678066858335817294623786203916410233972986645832122061658218055416928959437186476407534939787867984076216694371566752240785134370834180213836424670942440161789259138193377188515616210613094052653473729109244249229216425777531383646308710802125427596686727666156152384178520091068799847761347051795490263328215821330996391116916867016920034239542315544339633155937835663112214091503852378503794470576872631976569871583633491424672870934498009822162755563301731294526756127654943016152937202908816606796648109286645422917689993589789694665384129594804066098611996280022363262387115734220739595393595970771206090812046051136476607778624015410167302474674607448733821682450469508650722496159939611663834397512417193619321217620454219432475157126988832084904904549498651836158684960125541843063807425522851848680715194743611918332699291222430428394004861088797982040264085091264606497325846682289787872516581945489404673625474718589885592939854306752739765793897669196584536779778311891487506048585262891460839184804449402766298561282393602018968708481966700374413547300841082251228101689650751720915703432972672199939238961383341085813056183772852937771201840897494759780730690436782320443776739475433533543622610699473070134670811216124510709288976965124662296775746904200833426532398539241117553957317170265645580120962158698811593728606419810212356898062874653571066148808795889694701010777744506741013636025405974746056497779785414791240985969374013008360377817997513847832920668602648033487294005201433947423349593110055554769588563400822844095991961387266130868967096030238062302006692181805079493408500012919691833141724500780330003896579835461980233711208365319756175556325115244331692997464025558588646569293933757656756766655607164160034064590571163655187598775520302257821408271649076847075937976461900767643836861275886071051181336640273075779079467172871519469973297562846282465284275466442540685306114691715651088429427786168263482215065089571655372228094059113948341797369010853674562910822899369075106927353047609495429027620908764856933484137055868036623538514774234452250655621258078050594272765680349180149115985766551892084947276925704494204185417992833240679467610122628966219168617832383206833428221069716324996503731560121878410408070299627512380867335968171208922234584771814926513009300979932038016744970794740487014515269667576562858402001292506358532339411324881092938115935551284382532310550385748120845344920179501005594207550031363406749824558421183650759010494826145678706141695796100829809572892383602747515565409234615751747333356888692429033212902139859070911242751895949892238066403743785257702633538676024406811941674336136928127038001490896444691948641842765732706834860711417010750385341553811309088234396672271789365898733255326830184445879077845531666381730544700141443747081545094342205638899331103509025301131212073023427755769986651968517236627411050692556359861708588657620622661462360445729206346329756952060164511650263131503697458896741426519268707382883185023397936907875244150944560722394354362426980962649977799295933998023732005760877609244152341563481532258895584558604840319165316239185148435559353147070272443389063229321344910773375843873706477535039334941857645824782012745842019635434625477891825997474393965209754132094152952385784711964371013105996840102786653969301413819657272772061907043820333477535396045540056193728776691977037308908185740897404463090560431292965707921038049983979413813364170704119916505529747259376795137201369474795664543917007983145776288690487077065405541769619773561412457383251044851443094078178869703177050835576439297958221100501057070757066627015007713751258702107879814604579847106456156935056627215627238973956305474551160669772628545196087259801460795194933847820919157052490837554650105080969076384827910964565112370388255387196260643695107803886602131281424096284146953612201030740595363343005105643770920907551437252289920418175551349749049220843581945594048348712596091762625839569304712715760425583187897143991961811993965326474231209170021804872472164433261698921950696476653352468131085998061015340373449950896235458488453835943918019118381413999464157102303484186062533939808325546012876613612802546948598288481495351387135084176960109641065454874588368228735942002832290068504004001129172441960745209622456851548748998885378052656715848311091541872543876316563439565107770158408247290983223905718192682292132921584231528104058672074855391123136952593982596175304892780324702069437604552263861240772296445339375591062463358004385364890116914893673245816256104392718451582186113936952865140229036066830211384113795256916352131844237053872270565051548754247464372936735098326278596775596252564718632784248983744081407672189771304599764173497903612514961184264596238979416907644207823256997529807726690057512728231826562791674101942084486905602723119385322972642815184988637445987133428660117231949420553586296821866880263236695480318962729432346103610719063284834413698117413466018163242002600523077722619545521842320346152628295979686647665948599140851470963732808469506817260030685443501398837782679353019565693823317886406706919676338714801885916258378136967982731628704666462165162984751667761761416620057722259328346603862339199833624647070825437930228762577510194077961632451255618750449414729294685789512350763984400975581723988068712844235543876457927470015973024237326429227980535328391957218918015090680386778714337625838899883090649418241691650207454972982592188788525181830923398861416644151990035722099835537245167253766743351783732471502252516397724212836950986473023759405609579687460272232727727316582138013719755948260196967880586132231553539780362007576426723782490544011332455750576209461993874386442891698718319684195321665761587838021373157875943256068453098711230197155406913569372283551837586769319883289784076087665757204120882400317616439842506208999450029896756164861686205720831660407451881111165700403298860118973532810602083161823098317844775344296082091048581234727269465479467723204523486879274699058387697211523452422242503310655327732028928702986867429725666321817081628818615280256739097187298331373566432687839895119164244088247039338380897466774421961301258262723610597434104340424550410043114458932178518899379069889149313960159479437519485893653441674199092415737779475141184184738940404889687826545385688581388801943416066023803558388688810279413136935358352350573150600775470540521068186965691601551216604268104398179627862511004398848239500530603529185119714303481391197953975299711385303308590790374123489566978820226090864641969495483417772018670233555932667876896809262078535202396700299294702750151215425478201976373549362307662180042874561430593943417567397894385345410126471495602167798976258955652322757430624257823217072081510570353170483276771239378506141637479063291706940623475548249130406877425674387445252503606453971569783807470890325541372192440133224601743246991859119452376118529093753660952003020486836608923732571797354913204266338260285030304748938415669261269332215011277203554655550532273495173125570557977242288984195816411120054551756123542504625499333764912627021873371403136504402979373218024843379652639699553121581174114208669834718632424615927867505832906803305940848330638444334178567330398961691679890879362496707957602959708083875133003195380605201840682769066307815947047174286371791632401264867596890453255415068002589506972009497501024453601923823395473814870170580003906182295199839312415286407744659582018143807485285934817635467062850028360612486801034010799918941874954613850645009473858190891183556728496861831001489664536939418620021255934694433233496487082923506739721965183865207689156417686977694082729190202515362967589216959125697980068019792115892052663184749571408904998132261461409658399516189509462270560442546620007636600695053505335990971922733459544280265503502313084476531644878664668132450568499647906994882480166133551777148640655151711743998035059861603098056149367748720244610845725813803003494589089287621471910941493286937106109996200349551043204902584018647137700957376637328162424897700821847827418261129876947078608554268670774749650871267120523293311655684424774638450399700854335554524020531585009950290809184406749026357924698150943468774674285672382999556887563016429554412659719287936029480549130433587001783625556974142401184226321938849716904509492899677953762343436195792705156169923163753251710847923635105202892812554095760424849603675681086912685848696771480702553250830078875923708946958503368282536991574961513035730309938578102223760674369346582438144761236266397720544292778234702849329031938516780698444172253128570486298844365945267380052764804486926738471098082900982549973694271459981951071743207018232195133563390067889244760946200521920448343350352626957435884535499723847680306800136116344127822905748678143139887246383012258531940685398996192495085084563661466752559982652071960932995513966858597094854352005911825955897112476928811390935216572493475351963994729060722869031501155306109074680780241388357772697258328933257825594912583080503707836228964444597127408465881162593378003394775626452522132087038352316911911619779497072507378950830996466516659254659213051610616832839069790361545222259893450575964973892148876180240211951412673177244554124958761478205962593034409302956911870731912033880563484998155416673543293609003288477772747867477789161372194565575717329408195350438092137464825023021182223288668301734190531750842226494785963585363435811157478527623654369300462467358350723460845469627397620063121074117278024056121673501084642769323526582927958406218112252385460914450974215311222513538623371897347497917205895959541552938184624621088600111611958765428556667492240252724384480680949428781111762259670526860691867679615006424219664083259498016672572552158125274106099224138865469321607215610086044291938912759556752362468815854690809372492892852711829038387014410728739236660444458373606772069863522570061753371869685866101790523634380442034856749238889885004211799629387873422644814032989425473130649747566672638720613407681802051169579134307678442736342333778319600918006753865682842003375678893688763471593794404876704884539912835931877767506419262986821626973432216537764709677144299457133275751421986474004025270233804086714630939250263540369972416492967272981138453225616440636049687171061364997168146924633146957387444470687780801143136118597355267416122883335452210661327408269594746334964425874319358627339814022775191331918998562456676878403700209141499036341319641230596306136988285127140026658095776069048582865288160089616476894825630019389555690500814487985957486217981396025730305471852055676493511828055558685728974192149110520394550081147427284968164284463483791158328393139204530436548116831577856462053372162519011914996308514868144555769358809881342176123394619212065436828469359500639023267580285034158368338592550149456270648511574525486004534107593576123620098721332022145519073198169696581417681482024848855100184333123521552191281317373164263104366373018241645707169866632047744646041810731347773190952440158845876366535763998043073985084208054154752239280802532319359855204543486806822259221313910855405567128479673186823944994578898181821466860423324894710326149622667344501272168258941624444238761286289574175335886808210966566016295367668205229213305537107124654795935476343334138599231961152928758587018782561166111244132488825052268073796464085158213899338518650869634954394580457239979451606471991911940967257589685458178949011100026333308290235960326187399068194497755325276268843528013805938485068972343785205740967782018267167422751804133143294772868665749649311575910360148548380358304912938162731025859867423282318027202520151325389701280177848466709771680048194812521957399475456172617848255589457188229146179045443978187278434573540013719285866119336711844249092263986681355621780174474455218949533297037360743181537997040419742409488847137141729081772217815081834657825519913816641249467812267250224120895884367037071861367675760233012880291999999674851193443823455534456237922830800859684645517949874978238380888153249165603405730151688394636845577859581153086768602403339174151366632858208385842090424072039254045931886859922066588098143248713706424316534690522095629151199376921199172987665950619445519701759455439515564339051473463731707650670023544685662302335269193460867476282821847664102044470681053029041902565758827151802918426726892546560908011850175735316452189604471359772810453530854967877015130083445774826750343261375032706545433217520776809380371204069039933746346139650839738167840277453300446318303467413391984271368123855178976162534769756325771581533959579439835360857358894994919723019546627241522522739311006225662098462069694173448270936416519961964393011199570352309762485668716988351568294618925858912737986677034040353226834322912543737944939266251804064013497816094064549062609047009625801748682092745202690702328340405113249805222779151657155256034875185472098151153353161424592745906824797238731132654858566210211862880039013952541719918095411954121928604737823765236467303346099218488687626272492799648005834952916527794474935549099141074357452033460676221018529550629584510471224709496208695282632238350578502152393108347887364536410115115027394125064163021926998609002811411597841616002793210736742038280581371301097759831678450321358722854101890118880833949389887231028786382326718752448983554332768714900635433726792946969322770792780228959421525171379115220122922317492304304002412734950811004083868429514725374507990956161004015423190090650187219202332899187852657969183879711834094734366415318134980020892828838028630371944844356295499588499939384543732854115798707515252920463811347458964986517044932419312726239893735220760295294603385229504202319118859176141282317097887443403502773176559574143829217727227413801228994784727247365279635054683141803869400718889552868391737834925199478465774146311891170774551661242821609980141269242049975960792136297846244560560528970574984597828339683725205708009711672905681376018406088375039118211773450569663253343599068558023303884536687936023652940625727582770271953087087482959136812410617693358464060388443545010820460216819542450146819213705161807472939891824196230502259434081724563248295422599056952579020737193928007674767429897899252895638430319294691834031890653162478157291715735321152500206553415106133518713556707664607265074830933967385930886890249501169414285507034891616638999742787184353852226268691716803070617601822459854923926757825620234652615494420533148831517953030838426066154118418734327666176203053031480882356707941163338136483114837020405594839027745020803554076433453222353898146664309779428120658824717643710629330104800034406901059043812429426947389017309243956796663678058135751917488457680562208950384709115176294142362569938973590394245590616183594580691755232069550635292794657903538756111447889941091876813730218064768176380282793762579920494900653122424572532389646874123678205196721174587423816375959209234195730285748492620652305975024137985305564708346382588265432537307608977552609748261462595633590139470728688014019702629876912573596780191915169131897838818050904818317370021431744607043115815056799226789104605435860379327659565485450244595460441686198881178902986956168098883766848732613310382812136496008077202101611827513332673331792823931033988949480244611418582035730989578898699625828202791731994560327147850727370832301945336732596079223290428259778196415831152888537303353472980669618414581124130096082323626856229290362213994538839113575461935307871579201551649350772155248658056951679369426254035050042157250952445078858213776221119470667096077736181279791905945631725097685819785154231149649060101748617266840091818076756433341058991162231892428985287830913508883061758952789886682902597807799296562583893112871067507490783776253104100371154096717146335143254868727905942994336766723162595052711475479795392875019894391891822005420420784623202240665817084162701158099281746402632444776764108009982798942197392208451757782502131727494746237016864220129889492146824335843307846982189268678738730571254453176039454325635655706345551912881642773440756551780908071519707816204191207428984535547617894869126295759975028889275866562416876958844638528498930931044557414863742816709182247861161432832129606667872573212839587766334317261638826744833070208036458361734053328993389226403701770368464578763463940377690569509806935743531960955471620842680231283436562296407519050347622249607106964585090700338683439070611058259923167428210513608312210698592544061879598316426932325809109138492533090400358204347300377233776662193137852448157287671469841767082343304062496435220076590863146630418758819908187401776008778488856737922169888581888976817907750713097585017680424429540354639384866057953311914604874966213035477735738047973597365251786635252727702053017706136590817335169757648490684220868266611549894353565583554795979292384393247564907378607567949864359616515224402360710900184278912463951493613139254400796328497869996701102594929412031789509307209786991468689017306145679320016567783185385024848934055898910673090010657980881660716053991100600395669426657238535738579438056853152818564412115020318545896690863810341700166418085909451379395991110985377960845156596736304162205181216908320301845993603888230209176873652586352451854543338562135165586860457686985497693607112770286485192110810770596596397171976752499513326966339832975570164993741001395354309799708956890567506064596299681302818709612423942216931896650511359055551559734810470792901832339565120307436734293514065156959643303193936081268041829317132345662803866707462547593811567062188039465827236948249096975457895921602502665197583862658638163372962671791902738029664323698814150337444379397291939239386505478290416397159000289812135460611476294436515108993834917553028243690717309325571568215410557170938016654351408103103668518634641334589174851801544254006547633606537557753635286783690689350751017311094646078271537536167855532499010568898497443563421661195573723076182754519083787658478392790354324784166794760462464251689492888395676484182757049447614056257081415058174369946206856796426356823480322784971105212924000943421735614526860441222013593041179227396387184117180585267273689689626516169071942634605099945372084574823903383419757881688953150458468317929716611719173862816255399490502370774933939038587344953471401332386521847242803446008485493647992674040748951034153037993428340485087521781157275701735116971906564534843014969233504537704785671868705883421161226125472452527236156368167505724328393967085247544518159623061058464750200841600446886587575254532113264770582895148110562117080150769741844520268132783645430053362570655209146010033380383797266336698855123413236446847236752503629896106506750058682910078803950946243711499601277666311188129675476351269501596151177190782301238594594943606836151043307154392549764525971800477195881725049851929386840861292261474796022097032340789493473096162859970024793336879965810276537460682014709545568713584026781486834064133850935300387017277664967843314587815067186193222334696540327437305790742266740449005387519588487225460537215116452787773579195599837217017458023820996862453305408929768277930305646200444441033440222418524794244821895636765338119511727714009472134819601714008552244820493970061481093983509041093815979695331242075183567282509454577475425339745074227798501383331029229421417799523716287378937602050988822036411952889303111915832259097722964531844325586976008861586744450444688489038360679318985941970946960271767350416417957280252905388587508908031652212169049621514736167775738907613041882009727949443137554392949081255399446768335770120163121113334689790070578173664613903811273927565114011512079456881278985702377257776545641902265789542383432064530108899315358904261240775460899520451304485274047675720832874299137809943242949081078395296824430161933908937204466155960370399344840955439033688991858865555319426506322102081474175351273435544046655536574897837274113118331663211116150385445225229963523705971115553018934721939132278514838876347366108033135430730794582810703449910523605188363119167898872617288874400252866416934089533838905006638209007991691516128257865358485607827604019629383094743618764072818019371782544653694309794181817396910487241904367112872105469042211780027818775137049325600910760791061242123802443420528127426053969666129717499939634333757494603417863227278795353222733607831778930651358767891861970811424033846517159158366214204203626716819804421528637075569463882075556792206559600264674089018395073530929741220443990863504218143470452663170140757144312938691468117926667761764773905399965016808375291594454689596491755451878466784011278163617517242722349163426640809338472222976121836064661473064645548254113391048227277058883191915300651766104071396307643716633084450128879300695348534270690198361269717258965842507850035164033351074977757965576809593584284161256272905588659720857005234877898198905281504971026533116078789953257867380588241699254494174027909945839591903771225688844663871532954549881519682214930621657461341797750669084017194886024349093798413736915782469335158135005206292792379077852775488606586578723766775947595275319449538012662129334703615854287996716852992076193741720016233110480478588764835931903575670680044471911687074290610184650007957131567303411098906511386592768460212901639058383550423061941014364176136458425812084924898592817682303994181969414539873392114062630997870412849845173007635896693309960545606523381430159211988376880965855761814606267046955606284068004188883553451963501255819524451429084154724820878618793169158238143501351450579795296194473146669362410594799060800076321570277933066614328090003449161644668594049749223751005975994602052959349011024536934939561212820516627045862179130961525802751294552926763695294158708215183634436566790241898865198690834843220135819623135053031976349213652963050904948677006154748468659141939163935369193459031516246948728519677729880083082889167997868154469446924883048809943169064671119387231803627462038274193944571396801298234035601843299138159686051628484870338400623265870832081804645786882996133159581845440510050003883446930429361616140416534643123902558085153607865006594178470944261175704548770225778873366726441748456158171882964916996221570808703404547547821956670809242914322223658255102270290197752570043814186745681823938009474349763146455359022889186427393735566035269125655980632261966277863502293893000548408433602114357297244664817321326430960964799910085338128296604540376680511968174143997777909578482955271954033971815230189639138046286146811503528669614270064403751668158739918220683358267021577391966615125413015158288239345392284807344821104199669937420839030429515673506828278598828932174710211710485506608164187954080273220003511618561176408082227891503435161708052746614882167784326585491771910613220722496555686975572832673416419704368577907002558055420511336290808348080201257252251330571244781064928600980782610516911132321016643089766946780902093926890837360202018838282650316277825887611357438102059837218767755828149491751572629408074552895895374583523366292390112271525791397210228752258479406523888660904140625972321297319673996960403025001398541473663363655002936988701426690502575450622183416894173201658272940527198723370962077143183543090411500881545606959316938983973692107641159024465055101206652120560180273135613885289308055381096359875852389815869015619110070530518294985411619263983979994164790530493775036441536770147107178987767349497752645144976467529564603628016681128673565801223734413771858797265863521366080224534490641391879503873036374985528801461729981641246403886187789592861675583845587542252816651063378504310412934562239644191534325870154035609110585407431838638770299442481314718072146375391299827569204202276985261608590340683529899842360342699742580209388115686306902280683511749820515505662459682842409149845734515185091153813783614675369783181742976108249064146679207120547753636808231814601529729999444628641328706819464020121113860840226200242263307533390778248889366161046793263975302306825769220318481163533159089292789351168360766864994040516047615151337108873460371719676821246071232389814375092103388873138289078013664648019343206729280159456407242261833403976445939795622184314939756813363771869896693273289869772442488004933402043465040173241423291893307618054105176188220914800476532994272857416752831653552000075321371287339668639867595578917987456711239928074542196959449901316313628151408478567731823964734582169443146347848769692770577421228893001037387122896693023717126105629833818940299708515807212174857147285736169218502377742550560682657023398474828603142406648498375096243112075080840331435799373280794313072948337678185214048938350355145759208991871266877087276597695345137409200768827513612370025996768783567600179853271730181727500165860745388513768099193224537299649132051733600226231580814806655252082216404264492822692236726139520416730536098400146512938040977704608642627302332393437586804445152223987753254562783837021236857320838056012654508604718867321485322964897123097729568771772992662170820181710511521487849117471496122345241074791556533911229347952214020758297275984680651660547910962525124360516691130260027720861927682682162915747711156535203425238733601462159454117280152973479467117228195378392181256816556248499036097881421904463938084831726922604578881035903154166039886472757327715808113541498043870554859193565436799410770469114469730408388668215509322685409896026424224695549386692002873086532545725527531167676103754825798431922600195011188994069448623390070223278369554030303432260329199944620440012177015989538673936312961238062296330177040901571593959166534460902671495846838977923638472850797291836469751754502732916230274904161678819939303312780295857797418933660597198392880047647189820754228783189803230554722824470589380425330727319792392869448362438827177847729045302985276964661990073378881001296451196304377577501034303619785867213087065514816652647213614892054343716890983643973762494754152558496684887419474109589794238527932153519374794507812486328609613204541848084715127857469626195487816934830683740991618909191429752352957467192842752988439983022686543691968262134503071450632698447823126574858879289497205987879938265568085202445919394110378605225415519103514522795061484203056996552593864794527723686648973008831775763574236736915725809646807442637709990656423853069512255735145582526359506158683133319102913685166473741596123992268274320568771238653556775868157232823192168534270211499228579787928990789808785820723481507521485355324642006979931283133577023801703984918508576215326238290289271826207831268348004171521460372487659548453967912810267217154335258348602697478819857589198571044708615828189471005086544940522791931897407867020101488203399027088048456777340495401186087786149573371681466023307105342281737128542578369027137038119978803115229239159817129794841537963271355898283971979511603650413086999457603323807696324640445650320155865203841038167265005062143467132938097387802634138364313489001984277068980903117454725187322846264902199933540316357039612970852260726417937259726499767167061955776791498089571941867864668837701079563385974385477584933120057418310863422982919288460909345564630402431537276238722593003014284321072892085162724150046470068841219925172328321431037552514328377985984198889038515353092597440985890521751051825910484893661326071767767976833509365095395061720325569806598521993876797656416863073006272887479448663906212404230115619347501146199958575534792562508930773833090118174164467945813841845587525545295065656805632558037379151884479651715092187753142144179340768053388822262078902291785433287211212113146388102833226465102191215707053423016040836152130485596575365052392878643508756127909147618002506849727783859038008661343947930455484930098720399129802893483686770516495530979652935158005817477634142492337904276970236563103645991571168187505038972658943755235370492347494365531949471547811287930589084910839342507553886990938443384118022774158559500254455618545406336497586395376463791584953779433345973358236379795429554694380804423374662974244223190787844838366391365775516780489068398981847250715457105963855333335452501381412850821672609448797285427427895405653064343580823079883116616385202633509582458857091936845876474514446891466163631249369068387577360141632201779693274651167006029791885769374308266689663658801501304676889534376242708080249240102311378145316778151106511314222700927808218924589269522037762091488635759183516059605199464288967858723703264819942346397275142879120565502816376328546542821718749817056166461681296332331721443591015033654144279410698934030931559456697006365125410159678174706626387126342742432706006177428649876106501822126768947700763956979006334721698561610916359468173487095687382940609624778796003391133400385287383553789828242814609998736503445625239296108620347668222876093983346358270987984207916481220327527717066510106360741461358228799581313563966981298813539696777420978012764947704661615030985504256730868731819991274215320076295852006048068505754848325508426306936748993748455842992473555294657090725192952060450420332359508318308702015377446462539354781488197074407051308558518368985898476734994018509208315466766780375499724125928773906445537469821741693595219653464404170430787637048740571883448694434198025820279990418354298005659598345171998388986765743400826971516856311356504197344680697976327995506460130959761314924102362162289326090441118025663831901892945339912639137368800028657109767870967811601317474346506538587087548877565417533058216530100545422234270352437378254304281057046220507602956303447271359677164388481744514882494655692703806222046366418872484026589205903932773183564005197182309965376880894279858918833284089249328603221058155366116424066818206455745609241968894193201897107321092687547428664969496843101768486795877237743435669504828436011338627009025845835168442910069611032879482558084010986877655983699273036679259387969978716625367677039979650726278985359548613936143343385544399451582079651677308145497497894279256171152821738626322372460165021017519618841718444889103653027840842171713509726076066366426092808574815988805157009658760973105765051648836733120841451039988832975032834551622240712777218584109901449439536166295445560241192678284251743369786124925340139404515252816969392093925424850073164929741884949675312418791428827083697423693881689705588040323660532658620307638476008707398567646103343882663082118475064479417509127127963069320842043891305257866293916484793937626926142199282071495177807170557719649476189564829871086998136874339795287956320402604583125882717442041524708495311430318300231538733185804230330123363480113444238568884481959544591935989844841281040364214596700321068400342024750387362548912003771494305446219294974541139477742230910595656092684979672436671434559049835882093829927957942930690162931197476699098461759494525567948604972932252181348202339287295426460140926477591779127673451500344274797570182819929124753467663410726531928766464261131281607106316365911325415085625486438465030342959855689582989929941093405584142164402775575837464620222451308633367794334781928324089705351936046462175318467097889882296730675478638380186636623001237493568637298333163597957301436794351437611994381536339180333361565759485363263731788456651006111135370898156453122076295320345303465804000096406467261631065224320910376007180842070907860514014493210217190353870105545955483017484790997547100175417684710589722204499429358060292674494809972600218207298799666145512377935465084460201246121410908183303782838234035145909085673455905570118049393227265341119878145553241484774734239638443973968997090352074263378250256942687596626159587638691622094971587314131972501433293420767188862314706517643027066334718992560833528511329649871735549442037849009210886933176303242614134909959887510379935412544852390326628751925426214363286939309373083583529138820843865720666687567626250362646370486476873098188877154039464025672583668198698766315355903313511109481374849723548244638796598789510959228118699287037124335456795913292734598281288115724874176822582221140638404321797407992804685325759709577083786272061546737308612479413023913919498629083543618271749547375356221023696941182229664615397243041727305999379198702426676340130806723236309930155754942924811981498358469557221637660137242839837502002142442452378020942523787436996423252878891070523094505315555735281310913815306290847551505000990609009299297223835364558361644266364920487160568753415231244382601320375859124049037409444855833207868457638358686721139230817352315944200308973635359779702854558357405058807412309797673117580164117463267023337506234469866643238646447714243361340908898876505709486851575106115225157693390161964499043885095814402317612663985753676760088738762288873348477740738904924445227817208610623637279414227238266502921212405533838015313593827093854405216052453260649490049405308901921947353791409135341102083556695756974684072961608214534721868216620073493840914979248354094035141480354534983705605177445859292175385635729450880601427687606393450630743961928970106821492397490707784447080771564653564865839900314640335970666835104623632460436157028051092155612751739635629670000648382644377498437789023160145015545696227476825719474715124922827480188984653314097514037054068051055037355211244889800728715800795838810631017456194216128438552962518357447795970266576218029542628039004769634568945209892526859514087007210194507611257711009532391453312092945165899941780750601904011475054551338434722181913037368418395062258336604507723025314540451065942858364470218786918864577116423565115754704978699532928403873061096559757237321764783457014866707111568732013871631395697265282436000274358287982115837864555593764653569999166646461014685121525700793547769620675143771344810621199955228187572720547650293125620257030854663551143877720700210954015202913133008418124281422789619716316698405823014336322115152034725780608296854715755741532362606084414147970227761587188745159287812063900899132430830474600360254484796142053899235124918894574255781592260927530608872577413598523744907243634056628550365122244912822806687692604086640089884378346859218401829464532195669503814428668331023918013334754218066350770153852973181229426424082118849956951771985735072898150113040870236015312691137168372220016912582235310612634649599128442186677877490459830731106538136090475650318056471635500731109549509562455939669743221585550468418912056987073398137638790765779282607905674260861554132406803041082584168886171923530230182243283455729288508300859387753947781159039389327834941026882884071246444556775082509300562338382437177069081892594534929800504916260303336043030293505083550504021311118943020947052611436693029299883681902122134004560982809553217369443590179991431966644167682485711933649875988426943778501826541404445267178470196016330102671744427934795913282191835512318366032123159962754195056115844523757182818073657376104285510113564957243600776591176187657974757315755281562362996916793666883840304153381401970908596936699914966369291552969411665355453432437886160037242829369760309128108684874153993040699330283266694513146069693756145630106990572841369183402464280413374988493345306015956818159823459246457721827855101692440613623848062492445019309264452960228593873933814612946562365580911935324110144454075008150846082462224393440457044631854993129900982388639521321313224323708072333806326880843783096454298192814389646228403617158802279098656171798321548061474808057401859883556783674241257887171505184938730828969236546418889546647431644001432854172339783139521913712762510299361984774620524489686662424642192060265236013399277611040349897010311081176514554992064083719526653293526835435017815902213499464834290036968011662128015350515704408005261677314989395118072511071905386496893870932107862289902422372540700884468113790425530434938700778318255384710837697678834675799918983235906307221060089430526455098122677272773008953767113020272859148957371436810011367106044303028641332092222922489255517069634214568291149577281240603120168054648235319922271919646352825776855275715740459955413178974132833558976729509737939167912818941031050722556645216638632152398351940442230380947274937568913170742370681414261710801321136299558340522862674369897078718039077030660716701124077883241339077481647629574271083084407153162149186490392306137641398532171982626580958067356735755893474401265518640789120686279425449156691198651454824432599343992674156918951734231562985437535638949893712132707265549233302431616263623101696467641213336008754369110939867877667161649207153044768203733624961250825259898545387564688891667946060111524082760927397526820400200216598929817338763331652732617775252145276471988843531414549677317611552152774323718579954894897420053870425121924831171315167489364957132319101232403348554891210879345319710196683014411479312870377194795194987471504010093114883892521086090762004705690533583901072216428900040680056277058159287432041429370204856121348827621415681196653358327651535479712411979828133332474854377179351490731529757859162720966203774196206267804063524315044565023282471072479842953787474681909844604763335134855864646036588721292817650535756283904838579495096209089830739108351958458352312681475543660430167759282251029736227716534940389342193302155510927526595657872198312923182735188070976175002294308814125887204756088728499036660547180540091312472388815213788709611907967955213241332109064990557494072774665422562259323156824469969706191161235549555242165285009485692712407779563943228881058876551989461093930042397233044579767871744890044407400365735469770871236862908007653808934418452868848513346590449138368728610016392479793120510751463990174508232452310444899673034379775670738645282018318428845333377842964316377210829501257707980875664634647275400226197054301221372070456800096606905466359675284523194815869713287381017521320702043399696064897649559008492907963416784220677780462913543395826267967227055120063997166684212984115774077263508965335531500679973395188581594832560714955403805884594866426586980007240929555734399218599690841329963755752046292688812352046714688025845463890428271979799857614512492104850766724902004726465339676896317134529414771161121623207010189743813431013179678265813911148739892761290775495878937484342125172563005123086077481435709962859249289548555731706078670985481769231663352808094841246621324747152839199985851047798348308412050586256591769799694928058905445824747852568316154929020523560812569607515290758713033833687763361925610381441031789190249123431625591912614712419559230558224341389919182840887094345857882605754139104981378943520425427914906499811760443170052957219034523982615518381467505626578846258337298791967765181250261742688015371330765061573802657830891237378030333602339500052648026485215071996360503106399609054065644690219478120377176566249836353800721218583832293220938147104629240900565156353846679501312282880748616975944688870020238148959523102659573191821551686288723526304429657953908451861155173643347889285214580988438010656922429123699048598843635711980170965878085650884211629306548676069636655334236891468538772641277339544623851814787799397468088427111878083366499541851924110235658735957223393734081294298891993032176644370890789567564505606973942295198405637502745224660166484887454929313389414265537658705778602440718544412297336173415469578943113554256437461034789835722234817962775533810061991862517696477926321771552003058098581416276252025905882375925176759907467289063388014581947392103142935574628656220155961049583194996485034996511119396173214520190806291771664053476526643445700338309042806777544228004335566522654963311450813024909383061314949049846644123758225086970567469608787653146257023584820926743562267933593359877116732091521692160810834037653749174645943655854848695848206634978966088339459431473379794251273803175822250916338614800695532328474349377606389188234712453440500533163364997158629892112780115884766158058284151439372484581222697852667048477905728311153008259132334214819899705601984815020482945214889677315440818115904885243068531163079003367281646181519760537710193989786457635359881496974910029479626473077564056520963582765821829294630309736005789419555432613729939909749324894190404155677344906293077373312165945451155498979274762953473388491366847843778755905307343866230120052055591153006636769439588343023942294850925387934492873904805782295206784243304500923926466717546850464946169356358678020183260384152498595381970678718952165955690851340524439972459657547574502709974089686349809175730059535983269666703380333347386479031470512433214217951695364730408145905658214517403768150571330021481545214365040582439062497414461952613530815707028879669855491783282364059102542299461756160808594236042338238391208988388243935117976789302154622632750011117850770026996946175741900474241736512442250016538208608863000037710268191827043666869760287705224499776096179873813643344663045512383886067535349815821093709999361032660421263810815903667638195552797115369007154093687600999346708255271809041700047175424652469018364194976984634426172240333395445867671182485153888767486443054485761041489234476069718456313246207758662711739095206876467704796308135066583826157549792170403294138134518669966545947167315465500285324356544208804896347236207777529054932500043567691251838909019833801225219300973692949385453619169411294135229875077420389095775381478916507758499365373143423731869867264761320935901692195236475588705849952335887588900320616130326478475362940086798528492192114816274201794203238999161185788519814981543327898150663139584786187997136035266953014609913872468539138150064449268012369370136187224907857047373632387762575723902053847706708599738287271459097364420242556931396517820051860976651819359634379839275114438309633497019746440814184066168925039782423711813900161816912176956043784362173699272888869394007747092886639394284623071970721971653041204808717344616726728581568681844653103615290861793006182715493779947208725535997363322019589210550388741300811393117518752630793779478484904368083851948470794968584259961394809929573847850049788497304901133180042992524906889921557568926288734253598150634190179830793552397848126412201856715445780492163859122925122094937278858865676246213830121969014143853791934033770928578267339348301267687080945717395537428297360828645038978641587790578118473226684658530044913887021011940739375748207396551636090296013420393628061683134972813927380476418708359236909164008763252024876265324300481696813131277781956666863682845914639234748576466042343084261854756426953310753944527448687575091202997857238487090812832369959892224999397698860105810414013082796503283795072981885500725523847844862237649834418896278527357208000116713462092722336394884297414843054796287817304850179048373567566774912992800559215122244870963193289745106995885128999697740144907561709893435020064299908498322300107525298461280831653707065696300064602453012828973854337189351316817739251374972336523607528444605909158481499261987638832923509632176434220156910657760927481772358966974458526882430851133004467106933616414415305640239615116089074304830381356492003990868740219548505780985411926936704708266972289002022026612846019677050488927700313769787387352606479503586349837143298436885232813809758244016913620956579032045905410257640129556294052369128022508133256690724184720025844002593151525635920682421674511739748359350272672980863701729043120081623987658308130078691840499724038361427012856757195857049282973465263317820010279302598239375246634529499469649358025618686175871647209609739320520771512822091621427470884300782028295402712112034691115920697407320797551005865473686765164199614717682041602970057531717618063532272281978871734820754597908825320729144790554425901379772450690604001803510133794645997974003217391128272865344361877967628719723289724557240530236746788957244812631638984148325238710549902014483754151755442524421461071867797345604310072851506776005083791808484609142675763683368508132808088761488830291536402505698525837657000479905831789609290048907718142050992224140148265428618287969638233188210309247122589381403688192142440436994706223872258649981467002939235503098937377773394592491654027511989815066378342857030559802735175542080574183401649416107496618012561502386435868420295001107236803030963037788488683773962985114805267335911987580100076186534622450656946970708131511097629407508302855561326987755316042790281847552643028862333429880364597260853781190816692780242361899616452415590204999178190282757394646597755835430168923326306051709116809168690650191755788260827368775183983696370746366358808916050474089983608348841022620026678527355016709136501355655650588841988254159382331666118910729894422900889609950078735118924970689731798043029361985539737259117228862943663030267480608070213921807424937149879874639246192433349711185915696796228761172809889673013707821105984711266325924609721233829867299731768039698037965565407655148858356503605479073721820149265681734856797437041578499491806880279359913326144798843635471913841626124082935771469052588301113074640244225919872056664166910094773206824667620018043074748431900814959201554743594639307379360381093302412779656163410030136360436913416085861136049337754902823999068811148364390470139708332808412596724335314385204235450027205783856303787442393785797074979601929390615877666420901898387713983429427896003688935194685937021486312794351606180636652396622132857182128632887723893953049534205870389289356518865040148050647640805754138294081382479128024652071983525856808055141860541035952975824532064573057019901631330621089179836762126167775768069963966236863235775677652913979424622952434601437110448356735523140403249135344761544698765480792934603175450046062959443909911036415347385460216777849929293349739890283713241954451877107167246427980997643961534715687685831938805087058244156617868422723406983736458585508309565466449373754297036907452166611305217265534883287723155730290935595865306614733857471615173372345800043028067714737611585604430788611917406583890655105258267512810805854418708267905237197095159061397985365701215825654313681668633926864970091487523687991495704515733846219731680689971351425174166273721673733879496857667038230167825843629294751493900035853735693289925190770463281148502376351788250099737972743028887574006716286420049057706170769848050258052554208320474225460865275354545413079100958029905164272339195587285006583856891148470619254987927188561534633171362416657915869425951734314582592423442135023492475387432178764138140286759092435781991827598622835295171027608018958217937829836472698069508058626084602483949294362977661869884158374540748406902558377168069047115287711643053085517264613887436717002263125049143157024369169778758601540169179888296808326767556018411054118522325414677646691803106719948819462267990865207918740811302501218050636507201890203979512424085514993354963382511513347792135840098319723927403777889963073616137000556934046447096229838981626187990613082274704630735108597033781553618190870434444782916052254726275259033239438010093077251205123467365630273629395800727913346163965450213228982806437312830399876857674035677446540736302303018188433254820689756634859138307228317872451482317035984374167503278629827570261521513492214064263162417593755204213236998690495793099273017573454833205427918772119498102791868203382576206048242634229245673121891795149813006564126184575366234834914988043055244112499255361363987562179429776187667875655329807811898034782441335288424953945476341599256902336125057760541896388120804919856355924794871664304051881966669732732393113354659473555052933637913058408390749956504826187346544610425337864030845191552268340385597245527626857228469548680599229048594026065572599447154554781440109508024273766095848359359434800999006184337313434405696403682816133806516757028033499839283448579719735832222595136006226889182003006692414158313555585247953257053773705812200455232402014710705725018419375105875180595475648799950172908119072759591225014140785315316030966923278307449300722671862967830504423432965977211913643244761583677143633380756704026095566559246082146697392634576058566574216378402649639743640141786848735906665648781347686145661215465250295480740892728908544921046964631461494157952751618138720057931864595231418076611425916310798696914874522254610475867246404019602973857679238587227263540673604147867149747405270913229136453437195328940401747968593976702322729953696760678885565566172621695168241055626193145376734666261337278797938614981900620987670295945196305362008763805606959613402056360231165613556192614076926454657371522301134790535255487301172288598012455649440059377518214728971186665413269896317326811169351887975607158052951072067230222422556731070728850174488501091563674749274603586014653118660548141560038673815774962886838863184903715701240975251530792974164143631420847958868031279764736354782533184251798451783901675885769115175037338963780126682347881187622689414652525186427996427520624528035016740676824923949200037059380284839085651676526571384175478058091317427725883558652270000428273733152613003496797311476079009041866294869730998060575034612487868962775166990391600109426568987991852056231146776722564351470100553602721747743832972212774126583336734630942852548057983554800279806663513803030267609741657145960394117451365750384372173737250782301434766583788884403864199607168557181866536715348994089845784272386637295918580205001676437191025359183262444758809903615341499081354613202254098894970413908348851791711803353810857981480284657700846780189345071064777530387481360991848349081421957114520193539242179300902215130034900903495455445191046987683860143262687110962131835929957258269244625253013438763895470959581105693458967065840668730477378737889456950492848708675352020383161482280110287085568873780137835861810827758878091220807204963421761805817339057950892606450483825014841638801636124969907400804760964521960704944779556256770850317079049232043092898478931688084575063243864685778348433811743927246994512540654596675208796716846078094129466823628180222490330727176772985949191280162680281984665020546018808160451858579748986225114772397865669686178897480933580498845242236135509303547898637766832122160966282103562067333841358861102926375720468637714058680061894471699691580654245099415093529910038227729096246481046853386901487784262555466659812664561632737289926728023413946135613573679443047302250202414379091996080613530448336548056160320899403189620594931133778865341663681822208126600489603087454300034716773621790403163952770789438214004768429405673505257765824450417030769071722336112957069477778843187538895936913379705513086379907316178185675156384000236915815674716392006457417438928867736868054669546113687116586331576877440664218251529635534317479064311032756515425836852450818645858548200908897977199785149042784699023907308551140517020005227611209706215307147382331332672814035778794163566751684186315841415853582707859175307412833184049547286912419891202969429958619821298627336321371937928477201719084933824263218921919280031713666682630957962292694352607745165439785315177985198345482382766672607857825169617240919727219390331421190223035480194090706475408815619135136447655806903041430853648980674370031339555200812613044903300934205938496362357540058692416289734966123412378447933513395269067697549879487844302011323172853956530910467405232643202096934903995747698373669437111188936504625372825357700857259822022599877649680275143783479792901367737454021318183906328554582400961649769321752244383176743197819703017932641846087288847654948980060226522147282386609122045591633519093271660141060687275270751719613949036566216261641593260560251775048438590837257518960084931666562221945428249575835345779738571268912356072734214003803896418866156120455408045318475288625374756748330872322540923056750462529567875839766246605220185446596628224481953121480267870384270021349682020654012959356636203163700293881024412390019088769297314093961361242189033495750146151458769236633908942015566565751765346962859333587164338995283452376405080408354278495362911936068331656717879297578791398298970409761991085589200938303269945770738375361916436383481004569849194402097529667611602221312522656889638499480412566495806965066967741261659834642906960263944905377312030080635531957153728203978334080712330628836280579493829303991487725350231386484936876345231727525136298049975760754155067018946522142699872634878736199275925497918302807259004844453269351975239918436047295773400365450292849601000698943674698928207646426084980566200847538379677775905193483053729097904833409152355534759686689183972390323151530627145421145960388917907419067779045542664501462510998985979091464193789806348374449892165262345978271264326741959364867284785565859520519638796916481154379388170739720419255432156413266999867336455987163794867858310986313804868709229799121942287212901608096310161472134496333353683793839629648068350078818622975785933355909980533023638217711785107629069979112307891597957622779803870897985638126782711621465977325686023209585731092991985751816062415974071086928748865601080130264913481056041474730810200303376268771803417539774644118018155122675767607638409813136251962267320902407830523325046402711180797998686504531818850376120705698367400340742417476652413014348695697133704549587177438562634614969751423258798456295345128765701092037485885005325030539269485358913687916963550364623516636251885660126977533960696750550321367964670052458411095634105325042606388768614242986056692821371051976949794734938181005203230046585468583498265395061539448154309428646321880705126708338771050503715718074057559469513775180020432201345529797493651484934336495844480343672716885960166399049575018071967671147706635602934555640164635001351829444006745569209609829907519962120261085631249628141889726808787977339308195384130818930840479380244493396458355838442182933199120778797338661841378328999105800698658609791668374789450679559562701586370512099307366770207908700061305534015009927052823204957804146473357459251460956734856059049911559643094211952306875031594022426538996400062037521930896916408865149354004166286852932412958429324092503550370810209376320571884856529850995903833441493539281839202908398676442302172481917058939330865535816373833197638110387473901369274595940298058675136197858826622488941575312520618997108051997850529597341579996558239421979723139176279859256154450225085368091855047499008822878999239485505240163488380358238970203862781592873819611555730499271256000195800544907564591442552603547862136275726789573263112336332592096280261832814945422985036332173140216334021157856850885502609747937039701759230408190299960405412793579430761323448421227797071586761633195216577757289266373979435112728664879234217688516135233092703037390358068936313804392272097702216704228250827357806216004480788879764880489669825750760778526728352213104046830523434703313624670961390821530148074331608544441981922421223297945881982511746487891247365169733670633566354246324602352181752007771590790961451088686163715771546327978603937597506474097309349090985293597753483444373056230367007936483095030844455908077318797901435359819406892136329886082755589443207590821179135229209084312336671211044830284581511340944590141559112393682276950334329663342454033702431687268363964129757965009069469738919757557823730414900881133157350417322253057047852583791750553110421827621680389925075621258117641731355909237872665576979399535477220098155633163627930335245163532176119025686215174134923910616787059214620927311643362003137327904447326340359488123114834562671599903216640904775628126413977737686252072331061653205341757067237419856174610898647704976435883607126446461212083609755943123724636906817949572080175985865802238928565420259742176804508073949970814917859419710155539513788419728428680051399805241938827747852453318653933445604803972598336577087294109375241942525301938273364458378685886669873314225500477869952283647435559781142335554171965521029264825527163854933623460462753703345008052165390808604985851749324426504665911347656548392672986101834812986699033567228790073180402064332293592346288324573083920576388741068159440967680643313746715088361583497771861955192528775306787572582945280961878559757968618742490777564827460295646550584547478634074129379057781184697290930879699393985822824901066599593642974398996649454882363002188889221851042736138828283053184605640461935698197430592666259925104073119260205764098810422186882998439775530222918077521591276615895237175009042077413950013390246228058730666907197189923717904852182899833298642255066258168781359172690165546179314638454351084327837213690871699958839836817629005993304489747072340204091241516446562921430498131737304287312219705312114886443944459411371311509101443782955416054086541263168640840947667500185925611570217039878107477450243881028144123210492841242642678216886464048396907234298019810510761974895648380822953331496009446793494711911746739157746390049415087430839526785702559841851263120991776893152953988818719436901029179084796700039191998172072467724494691613539025118442458131088037154860895412404066776430547109423586896900678923272037323746670588622106595529079233887704263205491531822095623337736328073424198654295569382148964429728994757903166143206239542523844436129232427020861124312779893089520213210248840820608789044838036187480632822798665770414227002862193380625871321554822684184289115157466993803067677326140007260969212060885927658051728782835212593059428972077461490308058644461347158685838370568976409068836645849742223710536725842845161373404502392368947567244411790059835353364007950394369491282635918789827822345390712837816400642221977395434226137967955617076729933880742957130450692168451005616608953078712479848447144960193644317574553400850755101642385757690975929060874831790955242107064225562943992874041006326602944873910095797129925328175974425773215765192600213440511259264602544903741343655124222141390864150371444376811048514959348847170716279209381867584618185602865174433010803335918907508937222012212341272682664050951362227465522091668665178411845889832479984363333892953177779350187951794002219819155543800957856163328798595929667264582547892819582101712056666330683778679338148568277784521432335419305680146745397053549287476242395009446134422448505738097487655976464527206243250678450342789638816045312881306618575842239736472997689233257130739637444788459219266862439402915239000996280886246970731106315413674872623035101912648706752680905588720043509598494123928537069268629940310171658357748504553823197444007875816290140814529992519011361067352516527932146733113350643166432746033823653806580932383399089102178769334228778538895760421555429420436979085062295065517271062970333564971214141488196825039879466480050814015873523073470759600373442056417801704635566971799346956767864216927192451942284312409017735252870355522435104341489127366756122381881037769017842200426521315573966407646788304055261736887216790682279977474600197349920281139619371808177176855017098991071202062178187713107073857908458928477065994695574234086993795535557836069022549818377737331595822599544975979518987676786214380944047744802820943602290153125091577097516666344536041921597271885296985337560336838253638680814512305285969818675252413656383742850671590937868314508593699467819192328477001238481872029384294391222502272252301036282763066201766474804472269261559000214183326339568993910916465599191289362074398635564766359987754478571612378942569930422641231919906813774933683131151460660501278781809527878372736197835931945912193078858707618778928744592603364107121668668970167360578421985533667163932472749207035569606522380581209774256845467311270149471680349935844304655880133993507869655681602853975165764213095972152921420551435662662933221870911657797144212430847635941091538740708813540163500899816903132512579208193855471035392421031643366926418493842537767393888190109825187253427912464226461566710055635530567324110601518046776326159287072962255436620329792468670852970251944395602014652014476744814158067612471318930938602059764300985178947632766801953201854458829016019304208958822130341059260182996587848766763781297351307099514968917327553067822594639671713366628721270697964674128664351261455094812793010100689596422366408785584904706777874032458699782983507232539958519700649248628601153040503893041444925833705298740764070725512245672894250254753651111187085644132881933141157472540011359211062804805823571840861598345242751294203015112254216494201178477092183832530392166597409232777530040390888550279975524087925339135783478806585415328996203212637392276574910269830937907109724490129857182955427841786189638236014775657128740324396488980098019181808508317863506220813743763205464461839432930457772567120476297381110116899324876056730671214517739650594651954472859259658268553642578980012904341991296862540897029618463335942610599631338005903907558543475062088260851673119369033440439026391516658983430928958313401741811878183360192321242067283810760503142941808330239724058469345667108102667416233660538775788607821797321233967011766442074269042169095657104596576111926326923673944155263137240695047143822747479552921351561208634989276718133280624326902129270448088794190013295531389771116243645401326089699231407865757319338988796522001586889507406026374848548806020339576890066988276886274485902604448434777056346583265052695349074554588628125377039590391167184480844173467565029391848120526937575698300287056644713351421160362355388075179615972063678503846213754189447733665481457993417676795853737606502018555840920246562696647352256555906024854996638931128409092612130567254119183421664782138387059020829491418208122155861432174528695448355359213892696613727500948093314440935497445309615534056046032541394127447784604977024572711053210602664987402046584831970286984420087810284337530758044912793151642912189129395430143920913434350337557619706852967453604633281381566975555442018440223557462243365716691686978864425684407754988692550522612594110559434290595696552592822968219320213000880505201728307663414493670567681468608034985023112018692088065728960981396414935202757221541796680922865554414953744486704665137496642646653392650587027132810580594999212125607567214010242474952020111097921215446831899502666849245273242196035372587290148220397168679579710459832806147029329196457268886205122648179879189969985521107084500379712291954593848957153472878486057788196799763071374478502505490287947581168021194320842481767819106642729539296286730709574368738200666891262801929074097950013574513911179665220748326966810469384057293034174625179750176094386500574622385016299106990172893379225497167477697239621342604203332119438743305611268047815658702626970286599910316151768337720285157004988934650483213306587123253775695944457766193133380290452424726905933382977472478317361110561379960332794557245317347354418332241961793961002253500718719121682929845578865174408757065999320723558382935231297215531457527298511981644139993939576425138035939320118690724303567051421690796368971957116483291833851182116706989746815642182445265583340149486325562742458780815288056608471456153046046905652618414857260134502115534995240559765242771627843155734506229524773720371390366633648414965426625736878442190472297383392996625721193044685642938031990143840902211007197860889122592101419656634140000168020680464990235667560497930178064749330305482456432121292611617385857732898189898082547473180262121812796843810132071248545007904656400844958618166816118301764823712460874525267837386251668369702408677846900565827059213408052343754165059905724955095246717591682199173000318358523671271937597566508139140762464933777094633910037345555695969699751676870368595095186926183954598533504673943569805392786270103016521544114994472927886555891904471365808765118239848869800411939580715461124811321415317793130923986970399648904012913958456570067182972063970264777818216361753747892158479449826987721252282122035482333922384194008234893539666490257625980916315674241264642061217221879879378866682822310605951831072652693241345320358999792935842063723982815395271590588719098961211458619854640284434892575856460314234430394122217569834912803076214094632147970623514653523695251595046642988572016476151052412222118872139194191464471941149641330636278961821991698286865784003246367039554219925936652140088328225792332175085032073789857148177194418223772696922135331466004601723350387339679235118865136178592480725887209819343862612938480117240690146980314884693688458124957994084011084968407346087834272460623443976975033677308043599202960566134355167147916199138939248267923327976555598712985017571217577930194349013575120863184736899233679449341383252387539916288166088583008190434324234951741815907026150786209373063973099094880189535828994534965043252895902057590197739307201693981698845973545835977690286796737317550608561702937397818429873669088344056243644444777963962009768412995338629217000533871283947239065077082671316726920286332863484677016281087485135572073670292816480722370387646218600222216589163845876689985609626176482226194387179222017118824870513385887968912523330211264480285041759952977363023309884849826710497045609492983121413570013915447084623057384995286680370693406400600016670768549574696228209716647609642572075677176806577768544840074849852236917489382428035685057268276681933593825905168774496037819556376253859966768065399643377927474745661305268589000151915499245283186930857318657215563728170425266737649203574304475411575549429666062546953115735741418928497232307905927135115418827511462264830866431374529943347684603687723771367969906302306945352988105800898719053800625109527824408311611848838953531429109572980700460237516051134849760703476734768697378399741113996254071357866777764000569365403097505014089838523552388442208051462420508805827186439438902027297168434961032401171464183009214027370381592384990319002681916525983667820076758144483494925689535552099265763892247762600391178912226819745430458916333928146441232780872513241959364778231010864207357043342787506818877431333162685176244225706972749511568069763040329570494968530289270078830532151811166525431753027958346584184521727335465283284275813507265189454104209306740932341625822828558112890460302912391992512939564320800442822964329765673691962606823963803217863700752274117453334651419121682548641428147600648352871158400408236805045676969089565158806383864617088428492321405259254327278352216706194492051936919358708603699585865893382920989849202660321459048877015787287457999508067740574909112438348173299604325943613740268086594418201437010235301174768937648381373860904568974151838264450028086364163234603597180630011861799311465733732500323891938975455997490040531292929986197342608942461025326845045915025304784023897346737410535597866378310698163077388467309615113733980345200392681129777044106163436828806579743090600719310784448909336649867612246843217872405921836367948293570640030547249170725960390011374490039078499686934261152469865243993919535268455190643288088824637759645322517281568225824696970665871488062675698669980966925005979371084523539666928270147187129590335120696778708508217772302668268979999290839752758767878404475020168043468253361951765494588768848304550593631547761816707678007076175399807793440956964905626555726803503308268240079868165398253783425819190806194713367191959202492037574307219517599033376373076836699377858795462513413696769274464872999616920041890482564549341780116521771867698566839439320575260005905739430225376776051185260688211768029958562357133971218872379777725842340943279032293352720331411649065048969925900922856960548868950931602703975990840158742485540207087376581249225762359874900982168552887576814407810084141297713887141235063895728712863464213930958647885890084196145901505836075892409027165727638084258837525006375332493750228873830029379775917787964529855679198753635391904056530173890674651452116821304388152724677571431255841226345567655386403481708833326799527535957804733752321774060731220908724992703796169583171609759178761618338010096296165019608693129329711659635766397749970261525945803253616713101804927097207793209969500575942635402214894759482217394299123656073203127021965783595284826165527350308485557883625927023012701233142484000227964022299561091297949961483524074795195569526743495640186712688710443079893105622044271793537685264690029147010053194609899780544216839567849766391060699966825115521849630646824500367280452679583593757038925043362683746551972382014397460456359980687891947199416308532542112696540383174065859523624614411373636775460964469339910787636534702552233536308520469209911885434970313299488212285644351156205171574084853715872275488720598474740497164674080045481292540343242656020901361898001278899069576557690121981243633276413950438165737159727985050821157283412413031367747907883954331806508473740320647856698376502512105998972744550791343226457505706084819347455962610326090908605464124024945464812522528988592765437558984995507413400914046897147359676662071334581382981900688232506184421031211682372594468336724807218596123006683150984380890394461687668114636838814566151164510603094389315232930623897975167246735322209215020636700825843505109724870287940533427698480772154555722705342856459601636334585771299528517431641439527883585483818727080067179944946210975147620314351457289331276464143669849348983252516515632857882679688102390017108261305363611733516846784265410601959841874213327735150693011680904107110363747465041805380050497600971303156219866371582227113817516789192403954956382420340437560828494973232461641555051515733691085827253546883200385338337069241497300056177084967910095413514699472671494029296495905196515326309599203717895904180397023634100354230109998423073599087697630335582496186991691389255602005284492531645941911385484840792318288928122313667288001686717641854824955521634639718103382033165894551243588237478856707019546502938355079676040595792199771330945653290071152386329112474657061942974239354357812537043303750950028872286685373272410191378624885216810928870677467674083256065816242719146824549408183667475821312538541171465242476493051731764547599707992129908483888440727649136229833923979176319368279957631414596637230979597705283178041809486689682646524631379728216515768080220169970685113694709737888130301485516038760758013743285071704005702294174838833953161273654494002537324572160975775253309637797866561391899110680326227544376622459491288582479078279042350194913679565621312232723211629943142860584866868138281856800574094107619328201566258777325734574052420011532657650352356945696179400220274073598543098217070872481271749152171184190776137580152776778556183104773264389146992188355285434712643930509169184219481883501146813754531463984314421761036852405504963651484887639858275575368510591018376478793692792119786795675217327282346488899080015354627084487489751731874831393271268453285670046288547114828474205739067019315213015707433666772114413411122794643927506826018747269854050703774776426596478587737937765643588118839425654840567137810052445510601269819943028414610504642955225416553063234860509825013908051990002478853289152483195047201985274004310891803390741859504689081232823718755294333608126576861226126237475370371970710734395650764615323271705821006185963017508330899530163584199738521618258544500856297195496477065732465515220464159919199913097345621364358655293498089363854190004295279215623929231187450115479363976644089024967385728669531280507928333436631409378453311098371219430305786121885313203485450060371133499377565816613197752989002275410374601054083152082630665513144309943412220835176276611287620446721308697890675179811824988035970719206316735735265590619592536882626333534525865862281317433227441808187334463161164628347983410454508473553007558713924689429383038663891370263278930690682584454512183618189613213016734700050357229005910669410970968654716310263187450354804378381370353863248274407424605884579986648745230460814580403584591201085530285258194014327548639139998422484798315872534548040287781233929742382787828886498626223543525729227894896507497826085322948675466968287394737936078339725790611779435818766994945706570317475952317597160657764956519098004562033298235644879833446614320040441028094983939623472725415533510019818932348775594037235309768695323999383345505001307992634511606003149534765258218289045517039320604045457141144251625444784223848977754968879181521214234493462087521713246979101414759127817012434568895557404412393994493406684968661840199535726651920860792651724114035997331423965983910214771815138132465669275572918440102178019577921246135920997420052751577565276796324423477024871504187149658105389139621807549835302090742072962148844707354852915804421634353630216487719444667032969128238679983193674141320270277729049964959897648584123642921662207165323237239073705301476358710824742125809417725389288639233935947608444073367815912451500590262649895018666021780495365859542344329974344301542314329001709815957451114102081059258897058358312738336350039108580612950333639899453460860543972080554820475251885101611736789823304317424857904353012180554015037498602493777756046027565172345763849410231512882354591183404966469856118068130516183128809889359747794119198325111939990649028519472006792594339175936938967441868866348342481999185577062815823458328200061487462040648107670037640550667844806889760764691540647132455616084424411382274802374716686937264082162753680681519392326408033461387907389883131229557679840342391851551310967442846170296128225808990842078981714381718241505459259299819271381542666629512446501681934553292399319270227450578274606749495079207381360478973097004805393221221420620871630377346284622881648919988981209201902634383985343486541902874824489852903980496055019787119470042140809765217166344205203003386217680225176932435329028379663946049652471708731883151250889343807879515113588903552157826760138861447836546699111096742008771952659693141101627998127849420302798565674228158973084657610912018419446910611679531787218289042450586586837061472367047498385601841767059023572222906221635477075093883275071807188266373816647948303102323902585866114165072348958422110240507685873390772340641423558113116450250618364097125356189099908064056550046257182928630169404205362331991057477601763252897923900070723445036284245031016967724738062298716719533054656813807074160684418352167588501381509384495041937269345107684488602134455223779034396334842284859467495182155164900354017740300037720495718199466240863352527061131967639714498490757374449100154626797404035239134358806033664539624080834497854666906125554958863861259603501539827691528284944239080995931342581239618710847866896975601089204258317372193176861978746815587614744525598140430662675593796073085649164836597232590836191639478409769046208094078761044003194191505268935336699615051887812079584767670803198294577602135261188454818329346919645912545066431636318286675691165820706645002250499846454041478989886770598354887971639087155868904858574444129688353545239035261552075434032343007543231343540511818305411678469120796159616672854487811201077676527255575136664839291275071123231208979965453745871891465975085047341708941915718643783866629223411272448533696430544393959384273420530770053612297975304516399888624490288853328187201546399629370655659733583143381647621317207994411951846633710742598122145142226814278089668289483209750595585686361728718679702152734975490789083783098834340632447108836189271434040249728705931272764710395914884738677267037919782673457929717772334255623367897628079588371317995228135976005833864524470201087480801064244070584459468496879869529443172500949625222608700131416188519346910797139583416905189014095460136245618187479412864042939470772492700005902397043859374649930562447714620955656379181336075893741868285950170984407983321680619340404172373878102418685666197857487321222791185960127045690347295958430912676905189544963278869925114391645038776565556133668177738049956317927659939615272977961547311330669708911518078551991072330682368710008487174536701020100066888853050634784863854580404931366213188676576646403095697029220984058586638916237716824564120775812674473132935707255624703410745800790244169129488574993759840717181772724423105896949063304938920440210562776606367581720023766629616792701266761805322388872369807613235187121591069026191635443377867789889290312021042726774576660101186716706491106702976490662704217043687038978410212905591555087840995966644732312348957928553637339510572451130079083874061222332702366255477835389544675006155807045247108605959388373333896221818359407581336567092889553264767148856689943709344340627050286015226433938577522279968858218156146660301741286185959174271116157647896793101022861267488173749625805102978247954304123484860934937819273448951326865558655507715384111594901674361803318819606164994576873897275904628686803070957894194337146151616826116288302801498682768309083966564301902945139031143253982523375473008054781335361253236792595437693117037830596278187991715831759449788455092765961427474979825108610051826313734398344072934795853151562299508770732106958382165917174733415193796665813442410872732908405647683769196197227679496055904218334694757584411188334015558838216181201253747303194856922962593517418244533222941472609035236896076294596706271421874119267282128326577887538126156429185769910919424374877956209405884733827855785170136922079009734774756975572901719789954887970415104799873774137550387824571945287649805355526380484834570557119098554691688160016299286239202519452663443430681416962435385306710565674145688251095048761501754383221988179997011144118412448199813837006118902783235917504773989030803324968094969322300202360096256085920471585983788530272534520647123931436958742913005387791035921482181039494046218905667729237493017055876789882361764750145628382452464077270007644954588736467416818491144407758504925151751075692630895732766389156148942423035289889466203860366397370742144971474705446001149931350044557982130778914926648939190138667227688579977877981617726678061446923836040055258378989784383337835249906067508814454286853995140774072990199878097620326030382220477701819981430835235331169752954932501251014032681134647430774611663688307674387943650546045981608473362270491134755664770972382037335059585304606003233525620901278298556156786619153957191783604510286997615805002172221244138604527697688434487855044447961396655706787567755815924715784629192200617652213119957805118734118566359649961156148315741569431677747895267458697928097717060949149706873740752324252808398919782474744899466172907578125042821020409833599625493206241644281148273173957965391956958371426664768368257876856159526464251931177914901879441781595447696130254208281179375162161406872117132409411647733903511166731503556019580932007013635796817653508457173531289034013699328446812486354839525738575134322623281571554280678213195678094088970895866375672613665514674186944658596087237841008309214474182268251174660636614407103567095087644469597925369893965926847704358645122620804883481989472585804162953032876559911341927561764622263058092371631661967130156793746060851449900023389642810528439393579587988865648059732858127433522986583414036131011553329426118524866324968411245153004662716762348280560333325763883867416479426176997072810986644306956602061628979159238195155191282208831018658242791485658318044705763608228056856448621848301070322583069632787896329655610671404401362830172122297794788101755467599435602126025751836126574171703100020373269893602725403279362051636873272968321965235882457341037461114970579690729212988904697409278852538487247001656441961249323945889630930126849451389958274508576292447617490098784774448546150192220887855139665901086688457986920475662690440126718920503586193378615796131411361438618974893860332963363972470126147077064353805626273571213710366212905887718848902918202537538601625234260890218152821485310353257761975347990196349419934268712369055143890840742777759054284957867650790743436922622660498863171056493709526383651511973190669863366617728054681703417622790496035860868432270107138102244123055038239415788765253036324687589725958274290402850946768320546261026176583201105400750187509820432278529727634350930985919794184994392619051251749547449936140548544406852985634399517899813875193740285523146335779970324871679652080477749318629227734190482796792156692931145308001827457777155105552109195132525528300353318749128067340119939089397966844503883083552602475097111753449966588705835016989635929075893881536172369445708608871550758033064474092823157607693937860909429204281572639420873984413946799753325306724437040379149257406789663756698546648151195529030662748727010097223815757628048172984889188715916516522697482938839145746624263789193308654482648330130473986168320100129648840843864405857847061699965401668885615851974828078289642501221209704536668037784384123995397479974422634747578615395053580925010655234976918253048361012708937937120874368853992401451018884605844228442271235892304307713319615239787103014863604617606946695251923258648887120052734727746202078236805262803742742355305910598127320299748087549723178465446868161313544495051314035665812788882722087351331462449059940865524089473263293201788000879154397354675323974889737133603043735752677750779317062252079067429585586629881071081151624560520461637005458273963749291073936182920324457645806306822117687736634328531024293253490001762808517501157599119990527907058720806306686164608155068153728688352954326532310974276093499153673872957072155574869424883533612975975492341669604290945726018518126204691839533471384172823931804016364413131392996471027796780993941184252234745207037071408359512098055970626090072762832702752950874791912456789471571714050135327225379520613439123992711024486333473528911159655013600156743555020459698647137756202573806051270081635057059540573474873163088622360615724530864720291109067417203406185754767237717896154491578040288234109942393387359360628799138514882465669497069672929963853947523486254218711218071010555392963026987327769379643618822156284777981321463387556746263180096177388222940957671862339239097339091435928766933846695261514049889925423285983250862014369686774699113522921247092743550996153609217885459749013205830886830461799251839311927815325151351686592565845684949265324267997907690825439798893565472999654767089322336136775402608168465077889487523390752457465764077533837005601528827784544256750649427804657459027471251666208961861208204539646064938721961761861331623924552213510335084754127450032496060442902485574739955441474209248414364725181784636728589240251003505972867167519913924700647911888539385160762144225966423697113374352278764266643248003644120667144636474384224362240409225978564974704501144856731153466514611005810085570784834130015327301716771433613140463947770456280902287970138003224894541106530219596947917619048577563808130532428077569928131719372718022289674950678876619274936724751171454283510121936049129375226612372470616807036981525254944248051979308913359361230500102286323424464436711459175638392298651753966106467070042591740127460763261624843597596425624435823499663586835658258814015775256653177513267096211424513940842191920735322607235740077773419987376950408027395746365179191832375900143185898781842259858494005984196320299464071483592523422405438578946416788976615698723387222641263079313584012429295425123739855541895364055447536571244551106197290759892626075813731279768313453462047322889097428192463080587909884469123612165886703132986742813258859034223835424356975591549414309163944691435398885293462247266102319774907791326720377967033189890358206416572614391365717097825323426357828672056455475724388158977473543554455798981001497799062095267461522553953685738982320165455363206552488339117720171625783415000764394814548378601997200796699002209506673398731701416445988751392442287278037827225293862218097734752217276486822119306670200525195199523432075904986833891671297667063033618252480526212021439560437518380908389725025130113866623948421513211136079866500453268819869260515576866136464224184522949387462447139576425726549472563102207555752083872484057994458260879038702889586406297229338226643530806135386502489157312034482662609041322575188185986495341530003354065335836214873168763783541032539474341559250221549520931480574380728480834493376413546751887557534818965571934029402119572819635732391406139127473203288713102365313980540015008868062144613444965537698281597095206358344571557444856868850861169661480168174155279689160327581785608396838735667774375973823806102056233817759209894843715663533400752887559098357769126697874910768709297186018686354739940977850547931556814591070891499350456545006738912698551374101869873868185032983397084011388878760133044999617113780777385947514588125464162385035797729418143008208454265963265252424994663100467132375309756407484678792893665610288371647140022399142338555881515934680937008668225056164551140372107035495171880438644502954259402886350359561786402374722473210230897318164402142218396420817346049393620667859749078472578656756933976921248911331002585974912808476190089797690477477972252515482792181045412580035930950833923287605118780427632916026561770627036816941282303855162555649587921269791250549593779337961843614608490765222120378682849315616134373989554501470753442785894825407194378151391838175897057294357010037146033473056250555602022432248053199846629883637066225317058801450739210339462570407135188024460874487112592365480077527189879115243375554309481117813287480264304741261315103997165949495909347855236989776696037698761419375466542666862647936882633087742110757542331944844146305614546609106686402512718516071216544924754127650684328947251465125166498510963510802386539149741668487452474524937181156830879955213882448334380608017286082036346784857628357820501624134184124733896959756758750751629013803470718529961780617976148748143282342361708632717009174401840693559878229416736691577007803294342177980521088445096505827253282770404928880773127050861338581571660434998620964610799840484740169366135530706078460901691127392770556523749953150022435326047292391449709934551195591510890866310724025644084077666555517334382325218540214365974652187486692834139974052022003817929781722496774818548472300921350906391626426544114933931052324956982325681902068245900482320248259256600053278697404050947369382389832674379675260213205758705264647358975875017069667969693587373962059430182418059515525931454932837076225610660887374344319880236932784995835761443649429257318131141116402933649774995210973365293977725057555894475620388332824635215059592036080923519980888813143432331061469940111966501170572953147045889312594982944873326586179910195394549216179268531715172024990759797326475318244463488393162217434824408755104432810402394338452416985509139438646703588016495847534038689841896999827663647903334782215292250319993348150479745853595521742412949943071518813369799170748673487281981238930665986481948214726433422845548846923425240598812725801876408052728667557158573916489751187606890026171223902990160120222241988729024445517175122603180312920525547834872278074155832739654778012154324568184481844253831844667897365276999147253861689582866015740295750644884350947531569904364737931113540553649131660982464837887486780688156045843727186853102816301388788876371097263907544495773103225003342439915609683423052061581629991067076911098050934309326649971009656206911193959811607252690074615887436874440728934129334767380371849313220815154409277734883663370340375819209447883445063255921761964295380228311238496353731006888108507242134531580321997990146522300742600102685571805507873522394160421112246784529041431766238598244991137065043940487281948587270666147728608476625864968830208738904750456362935495392305237447530689958263643320105313438661298985665813587834257857817972671711754259663960587815217898180720863476988045969573919946387773849674462863446009882338169795534252741701841956828007016079960147946516289061420264361116391885191484989859321649117404632898431914151409072128806085050859784696743494603551144013437528515740113507429417838891220684678293256089045316033067159744713062933856124895029083331184204572530538649609430707583500466263422211143541810372524268238041371511568903523572203169003968037038267832741827759766343145818372334080329140616387647154334023496543440156425246644677581944293433775843769765101485961942858709344323922302430897479912760341659399981849549866261335724057097517868422375798844603867246232103776094432258556443706214476303820313381920046015559670635379744435324507385754028740590975520479839184483448973685465896894823397369925221185455752946255137071473288952026014822288146922062873203002825280952939229958798778546770987522833894517320624941859613725863321121550305822765421227741456299621548954934782517556245121653520794382046316969300404922476356041994680437136150174141330295475279968775919477558395360459512421557045331254375730570021279832120248165203239962707798486331921979964900858797660826387554010257584422039710462750564933804092361985341514218247941569470323705503120146135294675558471621762090351161677157780729187756235859168556899749665998312878595719984236294672837517254624390528284725072548998846265573917989013312673660034556702296447797213268833584389368926785978225509065710359065949773306059966904042609824883072600498260414213973216399787684642925927535384944853592817205440708792318673209218454024141587176161697555129200164592652338697932549441704873679071355835896174435419885067910888717009035465837159721288444599165425603320067822096210587442936736481133063834277107659985934544136154611020939148162771759007503222485857977148999438863539084634355791958488997469384355985266531412959800364477341346940654927390797441587679773973058862910940011410520942071194397399441587594463196136082057817862679229743889828222195355670831691041813497152367785610077813947803516839139706637465332544811219735068526500393305087080086640284350392366060131702119046733501219420158865481429081035449615015332298416625873149753737462348744693807558115268739275571260194084667597864600663968337792355746598496670092837332891525644513660157598855817935665119171635192177857674492878231855170872731216970714440414964670646085271096235794039958180335747717817437903521544579902185686406840860937216909561828434722336414224686454570831259948100031976539806551435329203676809545550764145632608057538350812622519931241825751927256561950184009241830069314463702521574103531870334013734815733797538091317906992043114750688065077314945091176355160692485640668349994562431818912137071656304883092450002133630788008403290645297416148031101872434044980082684002836490501584319443217070861144989355604291322970747231885471397359354587314534255405717528927247798874969369548468988138881858395230573192528075775316432968634397568101367709104134086619473026700092822480460971047993870223024946758523903395318074573812568634505817877037638351443316828171698550424846309975582279911537040788147117184854716603219712843453167972256705022540383913701835799917607039449498879608955346556960447060946515307279800610241624706638181704641648766065261111680007222447420365166999440083686832958986427447834894087250640964375771960906265109670715818589511258176334436256919199903141181193081179322333430032790280649324629060887297033071404073630169905429148481943549126144352544077346018507210009512027018576158586643997356889283962052204483840812593476910759222612465253353754644138069124332768059299614811157022652041648661777815496613449034389380433126860016819729380538782788000026161595731929239199750937760136405972435712878266936903975060759024748099663580479646291687148948851154498083074613332447621562895332759583125707966362779130539061801831936341211144361259538046537737928047379044081056980794267455782268692024263336431565768350470638202561268088851144730303725181688469978031717350361256143345120609352241143219145096236815581858052984166100348810181108806831211616637636215668719348806266899552760972291486796121598367547448602800890892375162992212706745944315505192490059672242570010751113943886850352953690049504263360185481811760235172933718929919074848414882303826819236765792941914318673530846510365202929997424280070639943595054260555263927893348482670882262166443547077001384213980613734146276796265145165861225282633760332801301647048893376100975630008374735804715862731229425062145604402998802599213041489323121573351337458770041804565877705444293866582288816147677983032356768786157807899001869897711443446975188355563520220057741425444949271052010431495536609848413298951416244652945425180868183810218024675439970787023269114504702097197868333280310988301199937253520651479131218882462179188591903574903362363593005369981843806148388613209956928515714415377404838477360159598087583129600729641873047666269941399521114061980395002330454514618400388973196233725837406287297840192139961294706430664498129977251303967244123152848349651389596497887705511686492199472323755137236810216987286654117748048339992620718364667135756160126430552118122631087862705903908387518500969329392251028316840095598936759586004410039351288946315122270102666591261564837610298481311215197792125533339869092660943712981174765479409592079508647359550112625576111469878355376951770012762095797705383039346916045364672919354363091250059379857395766273667781907545383867820869139501225274779195470091893252809130197738132867370418355565999189101656326541627296604390741712878629852395550408377072897829455811590020092322507098234744559244338913703207761491006852731528144992042067303803212309327259694562187602883368341407517238888175718765084161849518326937398716242863383743175680698729041415696167779430779641739455520925321149978952576205774276736981645054424224965933204435551155252298530120372341438835072517619729557682052878549554541250741840426956333992242321620429674177941884412206935815351235571948949203447628382060626438134905594541687953187223284675889401189854794430289977185297022365706243680081359956043089815870731981973434211425608628231639587030257942694006862285856348813760327266906020981214239056163367045255703682678126894112230570230197401901988578888989620190022582927687102193031223335531135610038657623842583584226744866158072621617398059894297612966422867618902165127192301683190801183522536784737739953861970557509748476404777662217339487406150754201609904009891916503631968740469146424254870125381202210381118194553809982793714791406282697536283503771208895984994422160888968948897890768947083474353067850775963034928293819656245524779098265885450766426906124162060590324793315209396169293725654159657965714363977548655390385381731492041447016470310951088195939686005137885082677360385520170670500585349359119883365303395350352049167967098170379475354824591448655968296861401976551865115786257176119593365843857681634372868138080793169774169686510816386371058783053409041041172989812314049537019901628534067157652970685874533061355796956137237990433093499261301874162315684006314610546277238051431599786413334064564823182375797739049439927561669632833450834261941769929357288513017243832636766359835268973378654139362392617826443524461210092569834002391390179794778901141867596833390770455118992486048848621870400055509547502909793688693313547733366931081199655112631312375405801907340081116540625926024242403739198551063737650027476684929988197545845925251546282445142913741035433200119684256663538105129040075198218450871123586726235822444402497084493071846798323745714857913911819526039477014664142033299488047115963076973259853966228992568563342633213927457040600432411429241905694419555630231880499968896390004805736449988020314437139816911366633111582823333481137935991431734431359731776135994899176613619441295662984899483209938333642241414059066820929598112340200015795121111411812860773733280020239149587756328849280310288621592486023304789272801292743831657225590623405119739753866301972835940324575213791531781425735975445993734965919138453868411812472931060725606570581131723798403069152318340565819153491141474189023331594492919847159247071394030500789804227187252369507616905278103456910416326906694027645736992269210828354757109495348057016644569602727832756989354865491939525870884494346165843161608157809009478402904433292073613359741663015066584955399514814382393171130835664523882271968510667991451944916626379401413074392263282786831907658787172950821370924091663323698662900895906380400359689729284995498483705283774807654725673598985903078046807614429120135972973544434242781855977458407143121168024325690968191747260000603972868756324897066411546928683712604946025244272152576402415772715167132058755818269908702091739454716625003174596799112510151583094980387207838643205316382209950838295830458268362453857296402178233152302900970073543863363431058606644916060978234947470033961077266780844394830678850281378328404514770711725760267984907975621781140157870733535917388963897519417508600782680990761253675262484749953365595222548203494032294635672517759880915473535656231255876327963095812173800353629139350190689593766080361669577909152165661685331117038018258855514738752681729012186999392963337890250896036775563023003384284642354325741879079550157100083674364145803838071218541566986846230397797883098061687923219501184030735695549929266447588739386401864591405444939157054327283190321086114961091242275478616027634206820243163324832826560016319392005766728638341527740600775821300833926617212686954894756644878212118726989307429508102449616057425308862743854478121888306274568642809933036481196085984392607859717724854206687163882534664636109623139826043738503879818724477501089067624213782261821228581667830553082533924486494418183863519134586538855127524123816305617118722341996462229167261989730423452671310501380547338228094190497648172710592036746765772578765109970242130359044803004779374978349781029435432574371166070728866975037949802993421411080308570329049712516827301717569770339235906713126831260252118174958237394974639021982545505177198095920913078341548296105109581343864764498940827885232334162291439614375672038253171780088490027050132962920040343829110278174710457074516083491396631244200038317612054341099020155701589089514638733106257034228537755184605104523739510211498310662171326825323344272673284571240512441129689812874246767055770556826874846337567463842554511993002724205820562483846359285060421624318675900902294114764500696456417091251560942774298481726990812035187071241607793280094289952591342801592288689580747294894711682700838392280164750316489455312244827835063347378164832508806458480949046823133829499830878703117790888278121443747561717946314315628045040426756678638554244864272693131046223126193987546333680328636568031215835790409193782363389017194734158609185156097617065795285014302211850127082699302734079025363468088802595151184587482077055562619026477806658932358067851827980627614579563265957870842781251791273808607904145331999620494903733007241492501839124492703638990449714036727902251410581487379724441390625859756476735588490760430867357813266984875266330602827246617368115002177091992554040991701527948453922175667482597208971340366011018533894658874256183500750053067550262515651025156821271447584938832125705771688917774322072760284014944818697021437761009021435767027309979241916409927810256235803848419546049794397179847443336020332635915566273109377471687932819274165449123105956692456902619410580969365513088486889733684822257423371120759621688118627649639522353627531243824642420366663964918462168043807032443538738701041119479603909678091252229016745038236978216322579390601833788833428337500944750192737909905265148022176218595047603138504030085194344017208185407155122690636475945015438213867508850534725985248597379552423979797592155738044211009493882030114472041796704414464723148581306135815577864104861586046217418657229385747768826428974548571045590189177894069206669835512352196022827690506143423550543461307881715124606493141824754412281788785072707960827442433496917629717002736082482142563558267600006631229869835703780393016580544121501027783147414022761888463560542058073812390116413509076201661783273539769910169846744647478374923966807174771183166353035964528875890839547056276086662251478849461390588131132552598673031242587121340527939861853164950376614456673767305072152723522642314488571816154795786898166629537563872622751972400710351847626676136960429166489742553227154894465708177393371304040017644027670364968320692228197371221553723045573043334528863790412948213623421813314136487216339623067547836588346210864405487715721565847570679529582650860693329166259110617227537911346485658044120377221367077935204402471833790309833991319192576423733046144713816189016944684707905805014143628395780725643429692688632278483499863583108099364515450180937137992028414806670834206984768980221033999735868279491654691721036339491021854597288528141791998937073487513931509140842519398782437174558689811859066421361709410045759932717945246778271228588229163308683261998725677033472395532069883344418732768273052708164768967083271581474629722190005640153867698953544274655905983998559802501988750756906618213407862629473033574501758008008315868902800597031060300017009696040696645525422764942809969327116004001172509477609272254505361043827049778446321453099001872299943690817739907230433824787273403859036446403195267580934571835338154150761119254272895114216973091877756135442188431833371432833757225378282339368166916254098527848651306747467995163735024806710149102836818393348422568403057156029962687829886180301011651295378480395823800902634279944912991990539436752453620858174659191305315943218018948563713093941506690978198867418491844246007190770060198382869078138012207616952424311757116417879843809561490662256941541123951147135373115022071961321455527626987545244728156358903584859608513490549300758435831671766812436774567260674748394135071972704495273684446900983584082208840950341710316733893028402837962139318160032129403888750687800774352454644838251832853319729621953787245618321480758792388581649088751701270480335968522858086374748348019776878489742064781754613553356584461652078843441820927220779187331633788656167441447617625239361195352140439230440509261843111982669020499452630220776429878918903657030142134628464903475781311158644028942821500735881567841819036631724539732566914466678454478903144947286973875284417748521096659816414026253686602440204377928928257113365219533718555652676065746974848808142550145701288026614266478956640514662427009091001199844397043560122253529892143636764990539840256533479067917254574487978436387867485325425523008337521687855888375020355035877502960311594734186607588943718318402074267840351735040806624615064526649898264863888604219675974000852439794969951270306583190122673419912662141538944803630368179037493369840722352991846095613677925199875731444604755911126998773239481654421176632800821648706524879983190697974783566201835455142502849237760320386632860821954267161265997754599895448678184812595795913551779369298128881350944026488309009028781886128908248412095919970153795205569815924563231336879770686940268458123323467295937975106511461609421401273070803999314725558900462501454230839031537569890820047951671203377676119305801532388654222574115219757827430283092912984736018704195950652237062215237983040438580335485138304771969720112570932543463172169706386012841949879138233546878365264974340236844134433339193568894709631393174603009334354845433204991303147471678937764091460613319180195551916312563162378507835762849945428719176844896567115554275556335377483563417381820454082295700151728235950275922467673345665319923834232392614737136158293967657545124311538060842313133833790531195673680726115849389249067005003756473985248587134520993337151530594589101902432120474253829865047069513162561929580303691776405393794599151028323807717110283107845930844740285619748838693827121568752254094218547562170146785552368986405167776857134815586362297740783446598785977028439065372676393134577783378819114194199080101260778529248845877241745130319325858810980082413936757716192566888988752038466904831674308543191305149682694090832149666644497536599434380669604340024542693445666415617459434364356416893777131392866329677563025453655739209496895291204109733442495042464839038373765985910438023658651554930843551341483328505557390518111652707752090982765852706153554813802073780951783160203176480856522754449263468070079923064717484952011060915997661967867887933078774842052759400942104788834355911494225489035919961460430143071694498482884456060293018899287545088157141263351940967991082966712314833235198264578899605671631973462381456555024652618321768690784137594895576319824240270926742782947961313450558339495454580309164362748178041261034629389565434780485628212245278618706736501419468185314558947212532574878874327090237195442319174638732963019769662020677066418293413785889056486218626895601116354712203657853273158575633460084124130533838585405425252602609820534923218108342287401386178813866148573292472501482174375114288166297476629291942039400580656679893720062156206000219978234116609926459490834033314836992632867359008343195878206380623762318951863037232673823309960780045697137619387891501386176602267388439456124629015446469234578382623304085677296813382863870314139389031144673140295600855141669282505805017727003785606411111334701886698350614545458403686262417987088936136365831966215326177131212532376656779118436019519048897399459536122934449700774115220993399112790122146882083264684012182898172723638965402476685223206117508666853144032738553148696038847828889045958317914722885283094676793299122446307957570186432301991451913683274316973619476221653074420664751790293257008548380534347778067381423858208773098348052212532344364907712419982173757596028611431527110965061798877247685055777105230093667909714140560474536190470291260106473017956368427379729733614654033754470181009020428002235682695658378113463701005742711446471645955825267348087820965154403502390593742833022241384705288501648468246666778079569607030133630649927877209034244961312844231828379039165470160673901779101784264513130871989755991297663343965486715732625888925590187419140115183161695971403764310281434214481436112903043795248469901226838014705241958664681722337259446675800789129863675540684085788143912951663305199855993654666102347139624058608932750339084983688765148881678848835189414378227076343346587088690607733624593654361245764663242810931865125819541224955128529993213465902168221287254490905483159949766731398761066162082163227734418645434996769964897383815990611002961787467132897957406540778756309871313283123907426429284047940128680142802359362396084088286602029146472277044769169121729274551389593097338057069421689249821065588169115450431804883131739516358254862036830432868098527755416890772908533240312364605627100676709378303937928163393460840928007169566611053684397266723576717612627752686369102276193059353744898609704572038975457792534901233004821897333824850910447766785763958111421703687740330809184591638339224187348111029469751534606917545515163199829512487513397266983690681603123842399153691741538953263532121372883527334575534254068284323116228169495533233583921377943320959367157439036289663193952341098476480865375356887627408383623336902344437662000945708866881913807809693411128895830865457111712248955872104595116109709019440318342200440027233124127440221293636735712746346828706478734580929384552493035015382697605491384294588662841992462240987188720449508804170332327459067876641985086149637777129194713874519084545577477614800965143774396129156726068813559612824272175763633643629988403605349657065057463647319155954742092397476362337380796669039576215380882083753693580292702467406535710154728667376900645422685652060819008958016412089586562047972533036685496643049150715679597448537077778114778042856715441384925601626548205685103187033807990969079416848556818754890692026478269214222323931898976241662047364338498157713027174208947715810586031551461481230692952420335472913634989185583192167351737977945271109680316657755742227564084768182399639657794465505218373945912807893301802352442239348095535672390262033337572006686117099050995234783333829418344447784427742733263417819206858407010311272139152072947089243043177930414486060060789041116316560476674929981488863884388939696357188557671598410542757769008678465052380610985655778147294353365395793100372006022663994851650814316800565824693010165052244612419903177393530124548045256567744129000951189071872397299847020984116552849853610561835812751909531807858970937391940389610648136859797847961099043139544068522145518816678323616328377994526645689032891499749891124743812459332636515320639488460414935662762498611595769269268686857681369600106154285514506752606765925694608787021225156250889699684351990350716938283012385284182686520818510046430425517602048458089942146142625432481666391193556246957504792810772872489021056481059474543303042538359736706970664919220896911830977300352397888966652993615640534552453498539290978881328881366957100887962173757919610135311292513187250622511177516879166353626418073763899517425848650166569604528923400118973662777160443474425806087505013032230952929690424928253406982660298112050465076718794687705309162197723227754485075454683262054201635769025280986795768151830868477353866693493200724195710149259998553218201255976812045072714753485483494968079315273314940327364532990111805061437276655745330820946076214021980831530068713790567111134646898949378320040773249680156456460159089266257133337893528669296055803533355749947492813351591259245197517662170935728893916410305884755051983756221349024459991442067153464715942720669815375457927721685224900967809159224599600407078630605025387154934980398615664288135383985349227526400665433372717903418414665439626778437233594136137255084422502905196919563191530000307734123504380362366509922375012386797140221707480327302471783217120089724178779280406471048124783231966568665500978964483894877991443816459259595818493270545327985944408150010234901866507329923584043063650378727850621181708521474275638824535886215528940302574063479173414303450011694312961772635614867286254072384199867438887367445283343356795876577813180991154369742451007586839844831034194612029578757788303151091443577906540434628787912132333479708316129889126848810675149149823748195607983662022799887457989480574115891604532612134371788239221942979488258967811815882917923736766237227094905580566154505983614360339158602434582856208728729311829520811410524913196124725971081035246646521940053634735230645632744006238905902882068603652670649051834861985295402428716173154994744154570993960891799976342106493568593021265443736593579620881021563286615868944632159008670267298012450903884885905974831115537599555606074150412426709350113774290064941717807459114860308539617436705065185550563007484285825580863658521926672864364105363536823658079776612986293715422244993888215622982642814842203397221273523787612045040718077894036411723942692192179818438477295542343094055551648167639553096790973705318606552730158493656132236122338763566666021412312889750905854547104229684094628826981791373401562588995045374984186698468513408859034401352780454660193158944831376470977815432536414193630770335549048795095215124618394410272000596060272867121070555379946095918724549985106379986004416334968982240025308757985915697024342092112755926359370208780241981993860456832193441484830640954910850838704435309361584060085275168888972856127152105082672737410935755392913665334356002128104349894214893222082834142653010708488388207837206602237808739733433437234556295636317666700644237630022694523872229617295433002550031538172530861873222726111384083790316473250395749440575506046698731249573774474400371890092370854909665427642545979963224370311232782779543014010353126185910990832752105711787035602929489668931719300685156984978942103958743655707814726880233607401751600090241694376041763644390211584339179002796002528719703315574785203013071048718176584300043407305683057934129346281902575463807082260180004523074060743358423494134502545350431319427127315845188693561190389696089012330726402305915463084788130821405283593994746043611180528176733742361819471079647910245996406451812009974527038681243073129128115997672690385458148136010446250631144445381932616600223231209155344920592099592675930646514703395629249678426110514392390722767060387614460060669934044212314494597137501473959372133376109676708057740496276877489737541157415119353073082822007608274429504290281050243154408301101897127978010072395479428306775129806976626289925160776973949313059533742309180773768780241576847055702529114338364067345280755734275846840175257138175590088081413428035981170549864319344861691890325664347430231248359277919753300605072493798539477195065944008552220113018475021885328037811632368749916176193357427532499447082321497016798540377609060983934781715839779372905532625049381741453882680636473538227590933363847810554195705169583660281663659632317168247485140500286786659806645011301581802224787611148927505826040031816983745309867225260964326034668621327366748243526035566739354240165456044044528786738296152899658406984613187410471295486669900602780304574971613040245094168733735591152415073202501828826722073005567294289586277237086626976691192233086608136156348643605889135271948029628757831339649877299760342439890409171545896289608119414078610566926723011497216821379485283627323073397117071505933558186104731257242606549936996262359659754100460748794958454166261343419033573879070174239765435119516827839001627325704719834940984171745297405356267228038063265544084644173413080130496762066497890826069814881531299350041567673854331921199314956540623795741434015037045411859713227204420106759083051803888157998892467175636861727929659916103957375677127964106514080045303205566138561081457840049423706232805517535118934285105095627740318987943864169155858329574994175591114860446958971669337165287264184465970547737950303330114634002913716533230600212371003696065783503940243361823748767898222161797435167837368123112727687281306924976700438433281185828407236973053747876147360715821166790761007982990842832590311435128685559331438986171054975773654845588204910192551113071173310733499943270498584155569109954694762820258492433789700459898206222283962808556037661490124076231573514071510227274492783130657973768160084518607244417358846528836534103100273422221428185693142771349201858149712427359909905481530040577130284907117571643908650548366714138852434585438903075245902245412208974043956507160965907199447627440726256232458236116703234565297455100976113663538335693985846965109514416421435802311439969482819981028890035380793846453885672913647787882939207510917696513444742956177078971176745675535113338329965961401329607480545012606452772837476900449451927356182664036314983341131912208940256305651607559167526395565843586656397318025191329041550546757246988250122420036905491101823050268114931156565749591639033780435340667508144879827754116392771724943977762544806814305874724124514722302015800958494415560179970411311433024987494543736389249014974113987333533750060396961328342755056247077193338436693485770204006196712163877717821709227737516243776577979031396121600474849411855164420218613060322194422490016403347535711520434516245413907615231850804229887801235985487844188815164856113786986060715897063359873768588280177388662873231716175741935176471474803832322402284461701103375656683289176663245144094599057334656018676850510387965760980227420247855296265232056006183163081053472424895888365215637138988481263732869731353551961934977966190585110713216397326439102036428029651337823322075296677224478564130008509776584230547864394655756879042366437017686054589984612345578475490502933764809645259014670428847965870063091400656269006926817889562877530777989880014111092138869053093239697586286549369160471267571697954092801482789943918541388781746360482920281012615167271720958483887305318158174677779868077964944876081997516727008291638173012978337100497149963323201625020082949130022527736729989948483937063077894481014876106012871048950437630496203034228834651631879674606729564953299647682444529760850447600533035145657234690631462443601925827448680015302438882955419902543434662760783490486646255858903777638799829360645274564720743557388409346769828597565260681491038965905992307098024673794864790325048638052217114136812677443859598928974093878907022685049465706056479034484701460841045890160316607016633217554679437858986129981192057017024125100143813325871570574936932704832951557120847521584695297518493232956339681435537125827910271930130589678560094534422773506279746401373098477737141749546803462977204759992909841101664925866723922533101799319861736483664058536124348376680069224180026968052718515429832577091945393972435443238925791167578776221288477859882730724207206911318414917861542113964280729683200409359870044197115353537213598473155246684702882835831544160066821977992754865729232677480300594350497974218806440640417400243742529065525955533668770329108917977390121276277534942095180304037935015825333827394834210305379948252148391425574119000972633734280559477040816853223420535365614985047198242402276209072509449761263187018796485966269681400968909824231654712988913122161635710763832008746118416535470968902991987179066590089505345247428876059177311958497959621696146808739303472347207503836506935895875308876847374868978938804104729253109962695920265146140871235952794833752035160676764491865579941303916021363843248784940786733121513371944613233619758437914917993011418762759654576040486991483963891958444911785284409890208617372348251435160495611280370433787890747051521153545590617734898803744568747005573537993728442341113312135574289573766828290397200559071531197267942348964644580109028592958070460105907482558551258153381334596664879269315911386660564696401575425726571754459598455450056075944134493774965004047370914677929504393269507344479775758446876160060253591735025935562229099290007054071284362161683511252075085163363868411541260477000410968733382763574868916680165118846162581665708927587553677637481125863109139593022481455897611107518433915917110662302141327862026084924110523163973563081226759005851676834101240569836285896989281097782440692755697478561732174828325520324252000519448659312071246168872749497913483141371788416846422446511138524056111414000314031739375768836285923866108043255044704224660761854388869386079671319492787226517458170306176501914179722939603053686812968641898423124396870490924344160488824349534910082005291129659334902770032968007253771318498295791204637176604930496531341689744696485866629045785641164441289100872272203094701719121997731779711504707466399938159326681792150051391241744554029044372968366524606889165602318515630235865314410172905483731587282534912628701400898705603341369642411241031174762277918407986638662518638473594752661730221356392762328956977797312870701892352004400697947766696902339569915383776149096397475439700119338566591015167905180725800638927355569360865820541083941491629072771850186459424038120810355899039800079897609818415157386713347964325372173835665359152490196553739007512550035073172174629738848109187522583370029420803979716905264475661533678027299541247779114636185096591407360944856994883661537706329608490129325874800349811341344478028333742845114023449581715319448761444990434362325146323963882765773696959922472207948301558144394123040701220393703004807284833861239217026826126213093009126901253231222526619504801582598531668765031591138994848857910908793835500581245309657417458175955397098585319264611016427068839763561912555772458974790079663588780019460732435785947409369755678976230621208572196929701060695555571113052111887435697769192893786410703330240194155023662193317814201958804253104633887015083995211453111696892668395589318676817148561141741517020123381541314804977842789448537547489872518295538872528753539579754420030610971575370914452342177531310916076629343081173265937571548306016849621822583412732684376643390624993436765649488083646182913808873353400159768503773295268521823280978779195636606469055471956653837117622588279598969744925816440383271522155110947580890291357656865875556589463653189184848636953063753532325659265772740322073738839071743639544467440874911992639988350757433542682124545739755557567711441942949625937653865863362071910326297604443493772251644729869680444701308528656993134523918717310614573238009259555718432905922385072013054180389723774293190949209920187566540103168210100563816572746767890617508729438825619345518713992220562060526391299708260177689328524511274994426004224412089362604251785110343677123522882692669836299681255365035437808465639559454294835651916250796428396116042252944517668397433649679237504557661516141439450631443125463462153368316586311424448577167260481131834128216253712485392846673001855905907108755144796716305150516562337497648252647823588906078093794911138968713101789975214307751805776785157019841255324216803894396756751038610110206129423665679478631518135751312453502286555429486985013799111900927160719093675975564647392080138551141286654133230711688905808267629599743656800513540828792821262720078224415363904212067241735478400314842518780458099075908629038764638876488143305744217334840949510963976678896243602902053919569609929487154488359596857033338384008702807331664681098820594123163391646287699404069498861425072653526073199683669861127411544987845740374290120862923378453025988481417268311268590169968079968266609706644037239456628112320233371208278499941755052517899368109581649428367235155001371828395160725569947122224506310635493024677050386091359373484413391619839250955577707071400305973078153249354099227775820950988085490310458297401793859544930815360719492574026925111285994859372437168840283011676433290579398615094677286478225759349248726503445146632133723749396937654872784396051101352491750980477184480189838066805732855437729546718940391906310664673215176010549936400289526514904548573048072600821920442074542759472163249337178534311922839857090588328162430799539314891163646959510017588520950635850673516184859939177884027292341133201237625487565034688989567993574725178896779356585872262164463401287194361947617564672353636505250404815988395705516053258283065727491043202712726463915301708423261286051616029610610861189391450180075632674123959233441246265798033209971097438438832277393379210663344696040942224371350345602317817067894072330152807784279423101328501488752432882391885722574612856949273408700168051374262657142723730936974369923889604919183204793884059224171010222775673045736570247008174632481895232658652698979725601026766636458197775684153682785284583167309417735355520505448668056438855433570657219231687872150528956231013520396168781273122987053863083334804520282809010906539352582849679719012865443455455414525814344031687432313621793092088486790005590312673258408345559903836917653435712833371697686445695596972679642506860084076434683926764062437916910683866677717488030524735464721375555368016512925883114971152753769764566250288945897920344764801973570753470638375758971112850137789003033457576391404174124222378257141199674517290341556890566479162697372675580209696504225741357812825461251918533513872051337640782681850799864361895705718781083990019495216144295054159845904094962076014289273105932709907988204298824437167081328546020566431445142872474152013162233733761541056981758217141032080680830524557521144782532199860715755847371695479080409437938849082730225182809081738642714544901385095591748332204219649105947511085816724841943582029253705596033989163054715831171212034296726924074166404073479423560558261134488189845405191101279671053796143822821658712016981225610760380630578609443413692481530223870466967034406884808899049558330019446091201762302370050936621119652189309037134449252568927806090920181842094164928042421219347839835839689454580973099550550788738916559083791374604337616493265293253948229741280231551342959700295046178493248281025473013049729401258764299400739745594640452402481018129434932713032353721033460762560190462160489958676818187728237415649069517671316706035827338598511118925557411348781356465732782458592021308791330327789451316666925559337146098312654743974641314590770732095131958872563466716543185016477686648649209269082626094349675063536519789354837593672799254075834360007949456524023391329288853576238809481020228804782719214235621553785500298449409047728703168757592440673642470769245545144955500958110315766436853062425073042522296530400738406183530507925500269649173929386196078373709183221352819589869683512476070871381937405874005446457517869749614133984669027152290777452154754234957108576436098369435952209150005574595877736310484096936783293225672016417231687266112629513114007931639943146946390560642731330975031694031940840390206777512623733906465442418687374191733331935353089370734339156238651818028897090950038022527575048487914737607722921546164601190482877717207732544909849601167882499456407087688387399761658605422351755917027361755256098791687407915482747170005219295104325312771996953986269976094305678783647435445045976666435047782512885386969634841241159786672271075124366074909343357723082427470816970413665430071027831622447309890934180943318928323304257199704513174618707764964320082071672668264168964348874513419725684149696774073760439116425419135030625712331116950205292548661532986795803339454514894728955907863602466408205093294950490997415493168277624915459647230480334319752625854553593225680259580259419169894807326823591908407057281777059179425492509573224383006265868186487843983483799115859748028991784120994804544747002952892314179254457573094052827486661265843776717634573404584700582586871247206673644181362789379500430205013874534675828692950014835416173351589967461154393892960488201799866223939539871697990831455236776261340820200900881124480011515084609778453104692080199097822661397355650807997097457431498032772799030122257250336332539282519516085678976402563257131962914706423303884529940692676342608390470466396736189028536343812216272256178082630858943725778535504501761913595279646522652898951932637397525441177201534867503542822533197654969794054352600470932805635513991475631448783770773185512650854153457080747203601699585927091779411478951570798316252821301933559445206918416351801222873808390995217003594725044018777582879570198030434640744762847422926860837164473937832046711254482364521945744238127342897304033284128954875068347938215879104706786262547178554318589613173046473768382669410486046129419197430778862220859725747724931282695961565616312997732835198104432531288056277826523598990641708298001664435646371107511849398801744941767775829746429824317104663301975590065758314332947375294954396317950089908697629626275315201144694174204023107023407089766273246012539945760765293099533424902321906090151370213880237034763239961557918516880352089635340691638142070724437335119548884251719602480454221419887537101302785105723575419512492403363872891778270477205372484897422233446489953039552162051448786200688964352338485246887465131872012224139229445036565906035328995731996647354061639140984971898713914687278365373103680861310447311348399144729653927375159064372217663860083781265644015713807314459448208263784654859395443635111680050677042779925802674487858960256832955323823572155140488158103301943349193507096779621074633212000014016846811869024880111357358913071422748369116588017433267394555658207002146143152744141386721539499757103625158923035898328798972245010657636216807337516035887706917898421005897355714445287820593398529045256535750875352858815993306916561423082208023878840444892598859342316584207116397722350010545854947235076455573294079928919992086178520766050556091889548115159967773702503858950352385037424404590051822220483782903386271767251720511291478268258482883770902855653174172219950702028155132026024520843710099643136978044750100972663714244740250339088569330222612355947909088895290515032057607162831204588852200082081995079071335205446767384329618265565994685937412910264166740210319517995682897481987091403204811161639550880358113246978459547040272445863740352809276902971480035282931727620408411616652150760366381348007694973250696764440354050380317793390322132272366036529644727852360471514139987211428772748027337587666239356446745535273421511573921045760543170913324242705593777550362290313371466031192358771828650266743226516675756929568790176309426446408356635319816215702321880152572005097836115250784921260649047092686861942904483748242901028709674071274174131973847975181008747211286095218403636525092171473839545712809696006743622738775630374555340258807903203360337040751945812791452043931136713765400801742048468772596412287273066261590019517594294742346776419080721523171705129423912749226763507176407825262255605876410378953925994532655251071551077422983215158999366189274924844867155160442218727417916225008283819101235937620991675582722787689937155185734683739846325964949377279755693111991397983143007442621110686501363184185692861758271799236549779073482901274507464940011933040876592016120448466501544764205427132728064598030825832349756736162153462085922555699196683987961632725522267382737055248355827432384593715424000961701363375976035195379804861986317691381767675332538410684966173172646344301365686467916018595155647750055778972270284096616627661364801823129688977331306579159772857977822727113262264073313831862469292423389418635634873068150876162251257577258354558198469625326684010905002621123323376333813428844650615551685738140722748844964498736875879811377722365256162312472757376632469124892760519145803888313302819041955112387371957771912743092663913162396364054684540514751891110688476385713850348901277349645054577470516666961362711042838779694397758177815819111113432796322874453611100215764809701519388669804168188239141479432193095599866928849722349412066480489712167578220576851488727663669512647746395831305560486920584990710794439561682728557827820057666416827277325736658083703534738703411002077621907639107984589667116891374915081091313373617097109423990046977255202386464703207977942122931736229699027275273211368086708876143623759999784350963997906360249850281990319308111062996849285065225221241395771296975836521729241954867310405165891115479459899919444616484670213730921083012958919825057702999543881769002751597459129419137705997887988551586958360337387708130406587119722020658225407234783727902852445492283457231778895209107078736662876186457731766964683411415296561536554549723234222381097866553918443230690300702280886260625926842299148943286355621707913861853291269870784453691580457485081082226237542786369936848239348265067656171335986408876862054304438273676730707384078535185709064469527222040392124420328783808926806615398498668829569521593782759330511410021327088044763913551316044637082100496057437226642282841890471438743406078132390528941634676749119424520771390974577687217526294778047315314823382978198358407620629701121968226599210622562997769039831887704134459170190432761418821076246991991317839059092837781683631733560551500924492935475568958278151479146257799597710239471900899922656771320319578010662581484865987377646626701738538756631959269094146735345370084743208391746225001090109577851486310865674563145740985686001045481446181799855543303811792920456628174838277243362043317886112147219943748575099576264363352944798618971182768836938759749466833787197277649292280603483099542736909567539609154444118678327940643230303984207883520456368112659399722675367538767924594202407686148086786220796180878069062409437271468894331588484247836355810518672899404099339821358424710551402686911522850222885756163835053489701148124210442736776289538420020177304162568647467045927580870451871775136225902482441058164065685134809308047116871020949226774387890942064794612013452618513260088226586351447709436304771064489095832086404478200299983906467227914153027042745488994627826686041766256423414938405019979792630587843586233860450667850115870813297902242614793410853249653882092038020561084632500312671652624631646397956376685169968373354363285754057700496695183997663333659469311329107096823909014608789994840584152326888913763830820855493465304990899818026984887451736378775754347257427132586667922711229242743247532503561301511618795048954554333647263183305047851948563705218065344231252432380111413023173265748883726156659048856012203379234591624216396985577546749756206132685336578533590790440797221270782767321594528143184184209974199046271539525584419088555870830561558317117169712831254534856699231592043337165576162376118265532262103487164864024319164971971503478960564035017602202501889603604842853041335674575997421010659040592853476959551939374847732888737396214892561642444376821635054733597189699036400061720923288837965816332082081966117986343252362121708762208794246905158289864315797994260280383424332905184213672897814069997424181413957995588573410436952532810760869025624052545022203066499883033615534703060557385903782524575623583573197387383405151629405342586764352095943419554545489753451978742588530388398958036934467090750893603589627862592898361149157015996324825339077203770338413660242153662506329936817412673313157998706168523677953920900260348152982830126789877803952929172483538679573516360889767356974935358750858602634775199048503757724956132369870670950631810655718132103156110927533596210855331612447944973599660072445565607763999142578057530711079872348141250416966215048630987799862307936507316262734257053256248102060642680458346373240555760527914973707398920103266971257181411475352081649016238447058250003548084947668493949318381931776266771006370211368041375068434254625412314473791765884387419204962619613816558266189175274248149143808083341129264223593844027522383489159413666935178434907574109197286003808889538498216005553510958620653455682335514577715743621224590967257381804767559399468451620031319255232381665947162276277677332312171207117580208170983220713047210761815714350182897836879205632440849555910853173354429899172245381231427415961771206262331113304952827567956092431787881308211809805682689278122187656207097777017882081478949527738573432096384067777725724711282897813681684518381576921748024179862169956046850815476718556775326587739950471987763155560285315766398360127302219313212447057942847254686924751981990054540166542891880602995640237717349295720138767069138315447062418481389894332032953430884994808145460585001220857464181098427023644481759901875565915611065612287342476995105281206342696337316634207222812332742217393697148834781523123418764739918733057314251567881406116786635143075592265689422060214338817584454837911714434477252075457627729177842143748067740561825046552853197397440416001048732489273870575516192670723988622439733878605433769740312179152506885772025268950228802932711397450397537861300785120435651773270707616491215921592569595049889453903388950208013953679017030331632498979647056290192517171290454235903319783442937673487887796062103940459854252922763809517123557520589103730235523819858998030701915714888023601559963490883415846518461026077326054420402052894952894998151704576664093016372326001995675110596009915509022944861740488201745430778851578826838970972133467229365420065963670957538125795710105032228534716727908959719893448962878031170325456066504706482377383895488952685062688804079578202652504868254332299299616495029637600709452153335014429868121863514306485287256722592410510183608338598389180689624341364069265189198995097904277538592704772674228070937781333871963175445038035980484434475554968315346871335068053054138914415848266274429574397630816717228821543890080763244793754646225623707572603912411495690852545626239621419772121379974746302403086892749920990701499866439243023511761827484732820533093195589882352517334052260987632210644242110317605534337040025703193619930119802307101974481267516150070320592093043015556079645434754899731276822605815666198114165447912679982538990649879712011798187092303276145852520306533826102485535219253492252830741680140517853415344409367303416284166059330258991807858545436791798864231894221357798877946148771369994568925917263247020522139909430512811569304498288201588237820507523474131316665806964484419187600232672437329223361528354722631055411053997630040234694902931931625331674669225782493264115375243023112123381722278345489347125263597123630384258623473037599331248090220428720919380097437971392065830953094090754079791380616261346080002255722989097032377094748431226024494593943429798606308216353773038206905678341830864232614875688350973045115017987741941943425375876442986345541835063442276334485507175938776885877918404135295671272767368856294600411491871585562969628608749981223282390524216816392285318764991987885476911493362424072831699788428108725835968167087164480777703556802075881753169387768339985164006594129419498681043545636482570849050562186230055777363488484163981714526202965146135898969676520544837073422276825298394635942821844493235432156971930177971869354937132354941140126303580115231483620468929825985134854636160966944225377284347432988129772938777698681658224363379185038561071751619320517423587284633797364004295851782518294892009850152684481257766258139869025951587494595336814355716540806804623446416145524823431726108386033823197668666743746980952767241811488026798000805735969204133945100828083327926012019362494355329631145938281042442688699832487952901346785404912142763355008277809437063215922199709777939529981313322727735235843688243690851522392959983567263472853784086806145498566880794779992919592108741313494152674460040784535164584730356724364178321601256764184646168153906858216025436694809775461837124594442828528453360245921718055215873286908527149750922259738957652774392636174975635946402110127179857706096828274027228846552574851732524843986615703275148053328430590245526416858776540595260409477573119156395412155772850946433949919697291772242960039537983937110471060136237872718262230944427212268908392689961896537158240775574256528150792789794748088127309184294127881056935493642723196896344782917425892639554475494472638934761545849794137880169997105241648761836614510046846339552137356242944649734795731808932762882570526238867848181588089402266632883447050426163798890301796760403584747303480158887949139853610947035629760098929870567263308439329862144843917119537903516090959966463485960476553286144439783392557689192079832661111614612317973158773132386578891777098490395280182125583445076811009595561673642866275628370053531820037618473576288516370936939746514713330069354422284300546819333832572911487302155641263461361570954581282387747586328834930571420164940361979640780336858214392411392137758656440280525167598687847019683262040467776855316472537148752135173501740360162508725011281351869634544896135393217838429996654382486563682913497699881123371341957379030121205865622169032819470546344922324764896415422588136643437488648721136039925379507921684050242947320338180856666027937137419899014688431139981106018181087521328585967910628701816143536692769319187923743548222723487733684932261286810964606589039242510005674541729349734497567123870887622208821237764557343211214807353443401607406118690820172362009912112160800625526917859044366458517014234500640105143786204460593656417203097988748504315313760416972720371436107436392044313467990833458920810010133099310768368052397088793128680868969777199351444717677372235076337357676334422538481120770213521689621911040883839963244169194903207753452715217000705825257829222447686212474989810368516895714231214585511987621048291241747871261382847359865008140846824803744734910331826123172018952981964849274531051746215243181856714799454822186187500754598466087834298159762653000718041166507625301801911296848807212801463339321451321525363262382733516118926524186861202587989683982231996338294990917713090924205231458075813787537268860746227266467885466615611806495097423792853995280000134732107271306588900805527220709669700494217243624899436770733748472037341223637972525745057205737403180008477780594812021929374187188469211415897957907053117219913771620966176863861910936301253327234236836400021807115442100055435056189474061121404723947206683140061068023702408325620143877343873494353496073042889774198369426071856456207497550041605293702666830212369775023297419113200236945110658229186499699941828712235275590509139305081972984873692949490523771496267342593131291582447478620794381701599945809973648023950825854671149137318235086869541493987391651802229002552353946150722918598213632302075420132438360440894079112550071578060576686227545952973014903470321873569954079495531937959728836882200454192055920789206499948133558500583188435729260847778540173732071038326629995307475608928971698829196586951897388663612120263542110504406555753146067716567171867777619414045378719973170689088582607266976790734185273836369415706756482030880553527955923985406165150847828628868635325184838429702757510666644402788782987537279259254249027742595090999811145993123119971208314575607467163015130685996388236943721665737924244472602803864884832505484465442506250121533735644975574861634987754399303969527778974143409242780628650102699057897040966880551778392521308590022249226742662187177398016229080707253863047138685055807002431111906249468807156736990268024297944380816041166119468241940034739710662168344785073842281751717555191795498612479572112043276396771284190483766687648516056799571528243950639599180643415956459708461111226951072594239392801225106247114471709864483368711306761911853922379083971723209653493265905236253505095425663258923299215479555411563611731720438582748950761613801498955853323612852401488120538840005191079417838598858579775083205591793657414058697386542755997794690284613479099843695520064731856626614395948847015233790029369817767363697404178378219246291010362748918461198604644376528946074024068355578689202447266753264065636688492587223006506425216779500405062693003732240519853026390108088177789234906090547773533562738736821075501642467795268833119366425779430778900780231773632545254952103333969468358530461757869736209198758585768937038241445163210342609646232856387127502688987719087699729142854805146011836697846240851539723117262908594447116865164216532685385307829367302568106068787572589626047518166602342479432295855663606144149188620347305970612593865500758677501366915217047569893918826227574733883921038101018964951633383169568881871276669713064506718707006709134501960345091401473621656060394272312268191637927851876832789774482205972344317956479219643100152811758132675529080534769297956770646733210827661486928231368514090490356865644332138254925600977102264219410919470053916292935809539861832104349926174025393216004982152570331201651106922002917987513802570667038991964422321277311889477725572370382502095562361437987386252032473812647821177464628392399472895603911813475243731426205654900496032286673488267684866439791288139522835746819618389639625770510130714010978913627411600169292983731933778678879496182679658245675389378531991745830104588329103002649930342563424345487303444365786045812858141010499838175779648684270053254974766427935710137182735059881820972682391925390020951009936791709349436361619751610558503613798815787367365320217331027450639236212285905201294893177922263154548481511240965554770215846280887111598507049086928427552627376107343119038163365502985707989721889344256228895842133234441726827024264934090319499346809454183316253119292704976608847855820567247047398582413107794843624437052305094591830537788015347888085104502365489272905565775652339517496817465419582946822447777062345018165612473960378316514149967726202292169481796598621121136072990552542317589896028202260064322606109806805249063278534574069470904847943942355464684773703326191202238163481246984780387471756353798922080313697006420134627114239708739971527614020696932057215229933727655787889661993842415653940279322106261611716042807816247820266835756092896763963972486057695996668374389303270284877903150400134605416757229215272716592224426561559770637094808009363656495954936878504882495357202437629780784076112543966057853259942087746262498904235670851931152022756560484365863943908727001455489696095302354650440788905746485323388778740225500191843192572401560838598943531090863518245343038119243031438949009675942018376091051608775575479919147965518265589089452033518084936884644721061404967189245918472579582073913742485432781996286270087915039640991873768883143102889506893183716198680703032416755628956068377021751410907727071185732798243919988289248873325084648933389702709873681752577052297116251808266015911925657396261756299047201891162776866590821318316961836979285190019903303136824837612636515505533161108072155562543996507663605862775369118471539663891149976483063980137138800681540185726783586357903343304398305047730352528511007569060036005104289341364424613852154144859547454198857400774599814478680047740398244674089380615105521676249924081496663033547121409015653809217403665352718132422288470510800528834473379964784772155286937394492975174747395962536826053276321270412898102374781951508593072378107174138951277157527349108122713386858587158770808432087552758250157056308167693913551696014800607708847103359877337279004744913247580838865665062692940897451471977713673353115889115923118632966062347364908076221021365867902561403322385831067669641204915914948071837259554644388790675265018024605213911296503911181497323588415196733010545147008195470282778943462388984960622691244691057574277305009068027226041054890823268627836628825884127830666194104728541690565025465672213274215967960896638559272240446959923770510241608123529997937628176841927526767141453289153983688172784604515678511176912521150529980260111866969438185777051433597679108443967814313167078653608962798690709079101515863261886836117565579211191137954169777407683125385240876953445755712939386616091653918384978762299859333295811087492260264431681457284440738456255844178673773810122537649690156688916100789614122001897522118727742899084347146505548401595767986823300842274669775498773402573728759724755369406175737093865598963804450701105586037673669441948725950387624055147849263267924374522018663420344815649860588302714612479814499251056825639096747251059623384799569545800383387943802444284409865488459187480676909604753153092043309160289000819291987125062255060919338339866665830669898818009567357918320318216615340804864095579141446159997640885666856899347052002006729819753611668704700208470086918938180522415157460318558959597716551631400140317392395758789023612781192622867386686709301148844976050122636974214191233628450605483939906536027587976790124102607205452516804251681198401852113764733163505518601337245999920974308415620852593086901085401775115363049259881307941703785834872939984455165556659842113708237918142812619827265307224844204239294784654098310010194566799134037103608546202808408869328425611329763800687890427247836317748906154481104489389178016274093973403389799447836838583365367115848847829960271427093772097691251751239515125416551804072534278998527778699899431137040406151223992645146544512210246971243664712585581581707511250757407755634907939853746132671602767283518144376440623309727585457217729646440091917312916377358993315348550402113973325595966239080595850292969679268133678032879092929679029602697189349839128095282445406299554653401005742916626237630718576689711444023320653377367841611156087799911262946428271985532586482146882885947751407140991046311490334941127260078943391735383456951395203746004409200748310332603147890625506257946760567985661154145211132552661865961455230443803959571385140795321440607557833666030181320829134881006013446428515959441911220788432620591182863314057900910122363438681113260031762528028644683332075784075819450171602646504834247843462571480043733013561068110179344813779218557273665524813249267001352748781713292413772650645356225889560702503633753629101396307886499879731854502896138715820730346559872311163391567378756218697373785532094425587527692705381005980637874019193885604840775076682609755399244816315177415725602397890386027066540651856016492980713086540187055482083963289305849505673613338817860439583280538774119339129597544274082362230639752703433196610651171110860362241571403495800724864850926777814215238988693307481962748783130205518298012483037074073411507651353434824837722734582370716148571776681763840751094653278754526419453049418605162848685539395021053538356527883454256504915571164454586903910038897037759632019779380475236052663598341292913600698432097069551958294303113210777362478202025931498622975263177770918690976489414408335970082603199133554775890741048278085439550191260657425958671541447622260775382775303522172491802266144180845089898405931100481130272184372951848139958966049967566683564175694580270889740805027065149872524829842829053109846668285154628840222905628036855560391361369266838915905461192288446288831447562864800989530073437311708588941401278643299123613200037122709739973877012596903688888581113029259931383467780097821212276364554782397095971434563766085268176019512949137043264445930431537468753860483160441897030498417601489167127563606077726761645102108193555404023720681035409946928036744332902660822369591700982479172437338189119534129242969304984125610256292569208251318705205570279202915598838431776106875370693557846221375420571095290948284583752671632480983706834051757918198898521318398590791741552586803806187673626091117402958097244774645790390652082862161964449556617913505194384687212045359268571048407383978280969435282271252846091639417413288939805183904001077971280823731593632375044269014894081412591021680453391070110134986829444802987317334685660378207376592661762536071668331829437822727192494708437621973387061784851264516925244361887351972824221692987413231990035595244571100522900421073513264790106873875095552362802479907272716422222442450855339204823762086590436190715203426673884985343822430757406206741611041524600796597556822541021653463557647434712588835658698644753610259203587947692925253947915064668404790114131106740337803585934737555391814380819681503799974146993215588317073735059949081007556047884617091047360109252890126516351930595583208063348562195996392589350034446712993029880142148061215259699735336942529744689824184734499430439863313699131408052430075523371150775990461052477467371366676874196142967395166697755647275244625329326750095365333614941620841839703720470898859432060857525979897209679197304222938915635722812948170843606776495044620660043472443528549535703232676784161796214893832145632784281569830759973681773825741109932920217986310576743638720591475997162397501895413961607575681540739974920540057208299276570678862298901104497646511621374041131803460161441626400224178596139509941513389935119926175480765049987507499067255214361962039748971596202745766606133814716348390566929192901540192606972195903115417087569853577599544136224670851439579824838916322311093122418703417388238007801108385549477834503562376115471597532368426087090667579154261184694087634498737397046232102489036973134029952741701911978288320536900378860786265993305361878380956388002616329350530467813721432476801742603688802271025291366370538496461634261256971443679797432095216052610734489955792185177416126761486686348404450540588607768053490921869281084852539039364586812482468008414074230980337945709384046421671375277269386458233932157187587883563540356059510727098303157731468531754573529111116987637708285430766411798866760827893813537384614226177655630700131844990816169019791173397412350153047604975428757805891981330811668094567909417658012990519140025784033976743997171097276651366823739871014520549330277468620596122691858038161364847950608418461529888084410384736644353430068041921154472764974774393873455939126088953229435526110990047522423692134918386290848508067446424146391095523574684095538537816055656426148019445840187723053288533906787214425324796445168297485890156930388429436024044462068010569701237076557973126420054796071638510521645431864715521563925687915400060802136331496608359186062950786496694755410484640951040329419575245446222109748793196842710962661908278221211543684584197951401352834410145542213954366076762760979828273562256918975612734125709295537064184649128269933065238474446296749307111313832836328691497772982659971453812615264335013344611528902465204832726875404881849272757752846931794052912364821161509504519829761094815678786101753061876754354860023137181960000138222730914844658727976901277261684363192940746308115755717669442566411242467463052366170477444993136351100153781093824347746199868353450661298491583077443813682725087572028234366771205880935946293805239238474495032333785113772160235397761058072293209881872281010577762184544887284422305558630245006976788558624931670632470875054294302222749884544615701291086763022994224060127213609595154931056873371724680107132510145890795968359114031690626225575684014792764933963709736398672243045759348082291344899685525879055596943236471977552817699427272417350206660163228298987639979946691206055489183915691132802867215738588563505552079577986660623198736954236172948447653152280065936487484278505618439247472185513745163279936792709266410141915566181248259492069155255758888823514836030642617242011311907215921385103731586540237984873671880702219960672326874563394123663814065286366300779416711210522615704307981864704532339639532677241039611676796608501550685619352726138969049065467477901419553644042322315466639293412550106563451065590852315552108293813012811246728404171355828657518055793455128483742219826844123463005253009553617251506908587835985591237537418626444767338877230386685579516965750937583049005241421289453651980624989177797252108374219877371059608827029813032347985223180617931955506479678916976617517697786799805742735557163256370098452457988996228459652480957361201941823857996581526307574162173770227039083858978305757653884618638730971006920508660439975602863637982895591317617471488820501844308165765840112536294018329058417211248616157890814386258173465215836875769870616492204063829368799404068059556918614856326421141806015952523004147418252420904313512857110650106998258548279641941302531914405183836718368820675509437212285437180740437308639514674911476234828245354962111828463062700998238071320152548781147046891974991626580887112781184130026768029018948181073962234051134667339187242774418137886648426097993870848909427430583374674460622157393068306073634304154942405513823348014723119206358253605712790897358965649940139716613277133775694188196443812653102902423592958283470762670568048072766396760627955365909154687434129130040836656299362593478569724832645635919638568122784661340048244492049700693466629388621203990790987321877306907053491026078391974018428340849541431964822860551947521497824763840710826058828780045815093766827184147354386946032201737521228726305477728097458972617692145662758972981692968335530328705346235220195947845335755368558973803617779427755952661507657616525216202990595339319022081200290620783802406568037095487733916611653372965957105547275097861941220326478350432282711073714822004171148320158466109767790986210942051868656374168425146030563289804058920373562143018771349503935487697877798566140516112507819804855870573293131476826710707732110914163876613665265781894507060961057034374563886009535055197288223759865767776812328956284925530499828981990832768988969543823105061415499508481518828799590708382217071397625131981043272162909900944921786651299441447626310692729631708339268705850979496153009971283980288519031571190484455913642561860047916618785466120758855276874380246724409389412307006715600437757231660047277752403392586005258780054626366973479448023810155496919982769235379697408200151817910669683684070312482725529357940190358586899623112513231547311770185629755739196916935961455828538691352881429905048936593315522381974542003482376894625920155655143916993561929316624826203800040828602969634999032280644868570673646577331098625836893312917319658287140786044814844234772497325174304838209751479781715571941114733109549647076898129613961767427414674313731255894197845163987817253858024612973808890017463437674370091257310690742022255942017428252994251374589825045621105885236639004667155973174152462360981419087018614376695395330883866712813069410306632370356589271617417633820825066301469474551113048910925300525282780457706908724379931619802996999949407480367705486748779633135699297926581196263797087369435471537482446412221470955905983020097428502559025965698528717115177346159404529056113352158728965980163464364917887408244487595582625627874284940412132992421615115143075826279251478992241278245438989641575639561621905708598329652464994195377442139573874202804309343800445919468492676315098431605431295869026217731788479960852738298600734381539261125398034137752702732430678955212253278022068058065954092317641172118700460126558812681868748573722805344848072923300016226330132771912179013927912201031367358723972253919963939630426282616356421322976983563550548937651958196873802940922897899040615748707863919457308056771877465189337199007796299382116303799039460318835032114021087879178248947652033469086983913492920142343014669871326185220406767703440363286627128948822101496088854088617532090884261154874821201373744270527162940204142931294133505321659095803981117512357875062473343155087123885355526137850890738759982040641323109686687750161508869982131027681567824716090343447059759487417005424937098231393541494182819724268751781133855531439520218932238542263758218764826623723056114876031532406813503994734739340440124282655708714877219895802177923345685222767226533055053206389506680431060655974879634551211934654558133339636363827406977041370158718323029825188115793842575936576877028353842664320239167885621672993230377367207354372025993881830332402821611793534926695451019442734846783173636010293712996737373117866055817959865692785681080833547514408554145426887988629291645045018417595823489459724095685309615995683598504100740196824044572569975278120270358439396908570999048192722689107952270434546603191529934380846274338850471563679781193647654488655364500553037363880817051463330144036492182381444188426679107942333856330512545874448096836495410388897977909812623645158958601284593918391061352057452088313213010373514624915409338775347789754774860966161174055860188738327263492940533491433431549291335032577750359109367926902745071601284911378432401915574984085299363442261415328763363276399048097281223342301749476198158220272557153096523496088371970651281094937908827977407287211749029846547548480467966070949496703428269667997497735904497930884328043024471310490593037712790949905049121750654957919852939771299191792223368572586698885483685374839391804863115033921499505105902901864610017624174565761040052232689672098233999467756000770377803289772439014340881440118180212937963540682355574112410122755315248775094580262072000516074792240862441466611121220289984586156112848211214848021451872946881250274128764214647655124174227104627037493847914194978452558696106822823686517021711778608363862670900063688311573104718304553999859047492862266806569991269284587574355525342061045532656240844049741992146066305203337867006654452114803857562813349114643850721865501037886018252768405401384784256077563129200150336072453478153250310426499679247541435940049312853502956540572789273041833016366419047599170133872272712343646953779484990594990898394735671524551005877546429191873068136760009206403932099887768690930669021217881759800530201148023780409227417981229002557601207386946514673801332430857611314306202489458967461216684096009732627623460300144459247951209314758890287521959950399111006700491688957930087371050779520627370300404165924929822618016502176800841970501366339416934155693950602877180513093117639402151142110326160822058126157074294996552367208184296596078160130787010478666323525723776000945922880596862029245571001383184490804848975065731579865698551530709742650832931837444247434300584643135335920175806195176841602438075275786045797159055461209946081963372373566752760193557332297357442673886313897670620752525768621395536244614600682469972583522508608636181418677067624168419489374817430020679437521193735371891583006927943669451285885823617453019885451797680597016678945021575699601161426569134924130865869186995179795794870465675756662921938101662393955152961890930707477544018797606673727969333857858573239918865015740869760328852667075480823693262274012780912035369177169725595933958489703598309311620257024860835746736868447265430523422109290508260617661884083512870634359230561749562625583735202784061193318454825859303321719336433998921968157432012712196793897324130451958322093421665090934257470873730695557123790891820661038107143068350260327295823793112598135513790802969937891880259693763550116916372024968203817576234943614844011115215621422938749164447048999690785359515409149769547724981382397528358431840753273114275246358170869125873043437077129319861857724737314136046084284856134700998398895317460116442905985515711532922296948765678296430786977092615278787894316891877800317478668688464664795011343691811506634769681840687445634239998970057694393347965152672873078368408271799009063184397043770768476614211850534511990942201569167872397812024333777710417373410030746433489307490983117314679758006121128438378623373401561960396390128677762629773677985028174131145739249139498572903245189942065692015358553095667998063243238895649614909608933596146678754733674836669832337288007221937137526277890677390969537845973791372930979679085496318664643225701545135275102609005357045976953086460888874323829339871345059113115065176032054273446057495748866852573195398126389957384212750904397529956906470246335893790477591243920042350777405153164061864947592858383609570153686888160799207374811678992568722324268922416951965127143456650156638319732463401242106743014161715113518957697926572817856704250664749860642120381205782538818302402281852707100932762083852468193999204421446382015121141171526895612003198333200883174297111911995230336101612400361252556923276324928398988340138955219359665801131170078353855181685817430847525310835358635655737323111032020199939189473459891255530327204765947579852839304251219926873698622604300769397608626092636169852534701177319397942537454881067877976671429193887640515046563823044447071799196159246284402568603856571231543162281373428603520659147204536045162049386263322235297211821695693152650232582961834704982454093594177171121670130899026667018301006903601749840450765290968552774347974337845728063586752662529968832526615455424209566299752470942145777389602638859590711822692210748368618097149515788214375515408021267609549942906608514494979731099072119369960938053306637858116649829372759874414047506505338433048650367299427626079109182713653469110917022813854854055157047049124918899556375041281522096124922963988047297966596497652926729763884019463261543764320349251608364625054952676227329744508651393951202277538806510303929544977952119339740852393735240993585607702094425689553933199254085962788996102073855701500096795609614352419166991358326726697740502036830021825198686189035150061368318369739764812838617663720784931154910837785147024946313044604374559978032756322619908925560760658986831296899496686772027369681224597731074349338931234266364526627533722474961675486656890084570851942581863432984619650488925655752552192637337968719080165350116152995402403804198189783440676333594609223004795259801880662984748791820927768955263165290835755424645228083520848973843318889599513991969652051789431434257245724858412747517192612404843902997527217163829892225609058382844329989076764046795483738908134721069557910759664675740390734859285121812069633291898342788070989477737403955245304325354581814216044517375513812116266479149417013994936319694952458766736410354912597256016030981790495220958860933762129467922115992275427099190336014611225429969602239506356370412397950653134415036452462019855813466243828446868784770662032661085491617620197393587708806675869708955075059650753902230650821279402388554312837463203698663576646106262545316375091955702082808699030699882218674008913393846103217108989916779729612155299915502105914522794320723940428567026409104195962676154600115485085153520249040354833978271581733042205710871073730295675916096207742119339861745073270490707248043574004624433114044356865236196627230013957470310489984631940061723760626001355680701074565758982365490339934441759292144332680369135269327623772383930496270802701643550562612111992942642656050106751442999763601647031733357034517174318056528476647332958668173239388929568371133335641440091484348194254889339631230803406500893392640760570290678620777144199030991546255126352355387070462498219966749071663949735932070388445219842710482573751915718070737769320837017521670620064865366934979937388467409446859635679511543846901434665379684034053291095192182954213459282856480368764555351922031661312609624877504368514656128829179538100901165641402091939308618034595756886472221017643653044583437187414918303503435311042341328871327859262066283033122757210133734172817089743341970358194434867055650364003646550871775240241019829432266099889577063062009756519921709529461316636493004510786636284831201187843550618357517847672376166753538777066307211387746762610197828373503942598501145451318530370110557894761402484967138796726619628654599374370405883690112818278546011108939098291021727292356802738140716303520446180092605476517852196873018052031712498766753580825398466248293645209865496767599280644908519029696346719284377790237568867457556426477021444566986247932521561841859949349780113114150729163470199056923735727737651460912171450439096965199978852219553570078045611840643799445353818708021214273566959793133510254585790767026271100146411574053775406156881731635399792535215795277610663184025430784276745700571529457979199008786144555801517992299508767475365671950186597666824460108141814914749654549936000542785129486441714279639459340997596384372534914378806089658768361510364651066695952886702249098300445696962686229359183973816664948502195093692178924219879081988681835871985133352072968043427215208622885398066881757670023173209923836949170700422246951525940232171209999742676271812146712971982243905877545830348758101000520349660406423339038527032005216197705923380881347864506479565210336155447312902998114063117346982053383368161154414323935788137613170036540650787503407086529845598677617507457619603043624800883382427005026728613591320104609428734281460738710386521661313679741562891223655700911431799719724774859355823759304088923889898762634252119869265781850609243509033076057939783808899839024130336235960947436078160498882227482293453822786712776851608126389387549328907421569139662338492877236497674535634139343231058635613283445623957093076893156901631102630238019744465622289335679582227034352683382767235979907324156743979365775999293982123233018715087101255744671984340960499991420310196403846686510282547942881712715193284040440535528152334132056685048238996449822712917494128774455451708973253960157701378829055569896723881209072200704907036019062256126993093520710009851505136278800790531871750923225818428379721784024001574506638038199638122236549206973877474391600157919431236979812466967486944799283685620674172600276881027521900495123807125386490243427266686353812966308978495061448687950892146330111223468622714735695951276276161606149502499192563416066956773334352378876818783071809971583965482516962315509889778101458441245741048716184124435652477375909103160372621185281087498294438694984704870496457507931092094745669426472544609529896727633455267401169846935857062603907898116373753135936449318215881652118154246132334201055432871714088814026765955023363282139661626967678748012234180859216569668673360076072460434508094392673083419707316706698336320799185038760061059030317050910061053599407808813815260720149536112668443461736176292881460425766059198971039421205030408237020100367427430844142959161697603318459257403427363341895251147338814160072716935705019924097409655356688170857186060662971091539777220212172921674919105607173739567702119163781052219266703987243621961155003705526967996068954424824086557163905196044171465279289130314320700918837473514274263800155224688565226365524402685961348333255807917152211815646809869339169103931313824049574368280627097219988115569167017523473197359143835073152117165858339059734541597446850393573695110815930658088623041849749913291230833825467450314559619594631389160670692767083986857896575716759379154866285003688614815994407428762492150232928496332308530689628801433561795896388519776385269622606617593171551477785308820045589284642025086836958483785070874981729658083240823403143545611527329154476670188649846273553394627012273020485963544151092412854762696542123886954259656181515462897548537973725803490737400314064729856574438875383146959944080187867615190863540610165681500613246379107188408701124462281947344662661407141673325136044578946582192571143453419227826418552384515523321126729807601351909930123034745227420624561769230365263009517622219694201450448628623838188498499010397075995474787130169396369268443222291998871679065185795395801460965565088177524511885272913688238110173915304758723425559914545826816524841926248179323240057139371619602623135644148227496077548784469841264768204767164538874572506875164556112762773769998275241738143612336630514543588496521965002468405877940230582944899317257312997280608789749664909772752822535822080298715916089834623863942631458184858854568373967962381317876988922230750555540826972004590980717958972295064732238269811944353038545512767561347079765348407690251788306298682608157258831539918803364736317846101394855898302330254810930618642860884594316576050005844325052190018500926083705285649650023488623817409380818857902891685331800757298961280155212938367512490343981032356810837115922732678207127230249232795043705864001152949979021288655735749468595441690637744092450618023327038919584931494530388363903697622092601614734471166203901618583853590413622079487829185570771178827905270098202758102737565122028938890672027790973646921457598156455869611820619742884752335391201798430337430961639736200973274761806611709311020772361783088829525122386945457930877604841591490352808375155704543089531475189491026724259236356198101672743512885020464221761890063471809076070595257027670627615018076080079744475414165527653834713959496056840107402803938801977345203830267436628351570063716068771983429868652718037855234938322136872811398420445463183478625833023127729114315804317918857647078499135118940875029316959326979424282818030003253467712047746496715145891138636827047923475344991410013089075524199763677826758817099966272197247011520098133382668072317916399589067251234080154657559658495988330157425039959434815061470466194219826172534010685173116476608535851216426467681921378934980619425327365595299357841387019617579049585116375898359356742471403750850968449840564766976196202197060925947767609927337915821184982931620681516973054275854875398402516920286216044752908372163420488122845451364312923934311391376881197490101167839562103227462345912614441328046102966871238504796017615786307522200325851996343819240543651688551676505176514719491589980944228906141506169234063681060488484431465593306090901698539736725012380587504080934769270012094925622482272378091724906317102956824014098006449834297312024810365891993559519279352809327648825510043953462881951908438567341741003958683808291432104909158108893953224183187805688216908613073336497656564536088248638383725042668401645257845259617040057842602089617174854272514518288118397808237589657247496752051439838060752618641924604581288913285442649234398536399075369370836424969315492120208178867239638602174033463038462316317015406352616248063962833371824741457449167283973552679455327666829242229448660650309659389212217927419996579873708712694269282114534735264860359689886345863303405225216286055113348936543569177946785757652373870382996380371457124619323374220705072338620954252170103792204529217879628390660239297705771390061756993036261214340918304874892874282218943160097036656546801932082439062803567070793944312401735818680828695039099527382153760507224500749912967730693898674559226787534089507094367416905974165769445215515018500392423344138055112980183794119418052366691312170634379065277351565005625460023185526886769941940434859512237666110148357511491907451121755315563832341641642998966828220459106704132219973572709623659704282668210196841212627348912134953604943206416971322072294709841787995244360122897034990488695409228433545633226384069781476202329723175340211708102925982335992535830390928543044755471009667293633284397855492827479175698300054660638350419083725809024684177265632923214086695595303932681288587476469898880100345573854467731989993542332224021177702068108640479826662992689272434920149750058154139889963925210141687675236958006178531473649648415295300668502815955345798354641497289954530963471590169288074390941022908711492889281146888343865922805456800442957304499870702403868402890167430144110111541021880245781471229727753712299201253004504810274412376902655467255183974445029332735534696894707594599198347765064138857617789960064695127186401413650608796607880719680176249665806734487541751260938828189874680124040214458259051972440522059056717188797240202604000525114443302924115765317724944392142408988075371345470332411350639616892106526809446938229524216138150806370920586068939065449662395849029478844338415410035886010916351760102923780330290255413484959084369131999650115646357731742043073108954662634604621346513430348911564165512922391133342643677932894175145765666911174321944327378015212204405214746210315154833204711871052469848694289638028896297914453109624019322234885685210778359133936961077036283003837734104591658923773259916738312936613977683143983751401102510274576772560584532367427993851206991040653144519928627556963498772924806306694132364546147416511043962607298546737199214855608715297380577131305604198602507954850937815608128280716370837552424112949470845877460605184653888007118677256893808681505784527152594163994172972388016392698757285062975326836811563143522116444583207635341604558177481788268421307871643184497580646862291994964291900232005036490492491369026437019154203717165792944771336475005266119438735886974488988345937458506451911887926054091044926974514198460758782108588043444225534026553110790076649232185987275855220834064377975032854655191639689370727852181551081774340291604005085258846023450348680548957291428277215425775382641260648274631427233432901708463451280387949737788622930275509147306210995524021151700817826892254508653405658663899469070526391802397555159843710651140272628033594312825785439615030750008827477243767350551079009614323520394780314104225183841741285420823399685026192580913744721448132727292872402627236403514603045338333767431641470252274773235480108948300410651497115039681798708896660461039700403627933547890028943008731841665478388271918873367187909364660546958507077585754138435765866634209920590519344510753109506360333006013586947456170723637244402939178938205248481240908650897655115433030550611512963321668704891736576545772659590639994203982541644240787286287758781769434730401556441396570273862036767331509689375597422148388514568398377008932036019757110627062746850994616506325506714857664369153182341096081484202822858289223542098108678172785513968604206619767814922791746341549417433538394199473367531537840455269218331741922449210995289361636378801320491492684686924841605916617388748668228568806267541250739030592395997423909373320584653367740080276581691930484108363706939936311856984904309918841095198865329533170993065752214235960480045790209421344799213343210139573596178124507270235462605220567793170908315213417040362300523498669854178546273876937260089636539195975595978726253232736917365621937080422631533205880660330605591006112467301802314435528928481644392258541675768649453451959503972572730638505938738161432334130617355090518750996931689814574249268312641405872813102085458508451242279431343960998378557761799596293922928554660843654130422526106689933942508364812345107483503546369814848679051311010535516393293853760412287690358237272510255489368387237316195812126488177812176972625204839033481553603730475090887097150833764017283800095928204418073490541046671295245512310715011708550573066142442138060567023165210705777616361466829912672753607265243150601018652374090693270186753049278663406854256616051760773656271753076538225167688546702223132746587167259958710343556194830564328692805787170368586529963770071882248301001868184605873317002450828083117741540539317424328753580233559164877249302110822164652536617802735699734981512355747537384661692844620634279478189047242219911728547664366144655175167564827557252013170079708155300722815683787111287646430750243921209418076893358736856894907024764939535555337845073781490947455313264562832323944337118651109263502724171678301899627295408950245823626559717158318381097560089043314549488345196992307389410961557309204479008053869140478002348620759090537367216363323066160347167137103912030298721503645449186053567950698953283067446694191409675530704013474309199169187419149759821776719648187120402278153681243699270415207508676932620861950218026835175297708291528728613625004796288339800274951453871932380630533927267332215916805674453087953096704978143880543871389522723349169033468713455471223859548451661530992721273474913241369232521561114903402544585811403411778068456078571881618695810349626146104174651397831055856880029403632122098890394551774260626955065395251681140011027829531391590145654687829145814212222195369170632698312483542086825944939208103974378774420636639452067619844090631573124665656644010290532191554960307450917608553418987649394118916126186810013703575953336221971189931630251145409545559369299155576742450968882967865765080876638544419603994835183587917807520674772313513995718395118913634460123854121128158277159829308034995687219566724214753730812717941585956094753733645365183553928595882712427767677288831867353902436311418581641879825242173020908611577872199633869846114998200805024823555404902023910660319764144829107983168813163925632874128101455811598087653477101214890879278645887473069083367481150581847298679470868907674607348676551989199770627475339166909490799212110252803840944104005691988540662565422021159953337288637647128183835572443172292529794008459005640981351453191381790114314680626989117886872044519756700992440703257371320532307224088282647525516247648964509867925596932303982529920079392718213717063002071422720614346217127334222571298581126729295250982307814696178533116081397739516066326768488208702291503758540437100640097788256976996848761585006147450437578839347608382918663617508053857110768342575061864686271899895937157887796527462621322479930750685659918806146528713546885808144304978629400522369388403928387403747808816243776854602881310124634203951663969109661600023553164546419060766620249098331495593977076631034537323155457131111269072521366259041945992626368290836231231460705481921812555628855203852517891304058994737512242778454980041223396187907660236610562533970066024726062894657140786447006793395916910403927930662276097361753318628148150645583798867500745960490313112418481550457262549157119560793005217868361737881629284587987510544210199266998147377963522530527840966128123201156750794965989111604675695749196359073296834120320430920639835444598235156885005942327575043645161865088728454009939099310579591383344301555395330014514121123412717727796788726299021848069568193083843272864424651204217553861865394135176086248568304327262043361632126481014389101389278979470441411888975269556086190438675114373464010227817562217788302674360177308437203926804722133808527757483181002059745160898593853920726051586607337507872647635625349693127543557300371890920646321885224895756182694875962069616948187538600743348920879835562356350638254154828699526477359942327247055006197570427522963240336190259664917969349096428637017924066642905329988746155873633391718789371723854195715857834217219928506872732945738033035242425438358545337313540241746355696530160433728082956752472422450692880676224861727302155351184934948253997516960733808552218632124663405190910295791795485782759112904801021907833403497379155538252835995494845809842850802041230687359207815854668293681483092165432414476001381300889096434733634620452921337056052116345706803039301413347751629922363326662591473018481511162973233267437808166631706585930687893827497374291545456913000194995458376893221522610718472089729981855001825114951848862605783903553976527302836611379695562676789844806490458198146698432607958470348058545837689658572289514614770947550667099115231513449183089955054251203634416460212188970009921060931032048897275199505269087041265145124312462679034006840572487998196702632332896702794003768778162657485881635267978103207439824453892990662036939428431343446375280565138566283455275176844730449570460692075035468694365590706207813196248849522231552726720313660650887179433085241093766683295139594641357986676740250803076811023863731479615765387148054903625520514258504679498796320395355305130348603211084362508212082231673054543796209185046315104873661337211951471784948900532000735034473966826218025508462401781930917397367156302366533536173698705704732881231292449409124281207753062298306677109750540296679043853601685252238216462848493732977984931896594310806722287759129433728223653129207160676097513465172504092080051601697275949411214574874443216665790737446857207334056754856973746991480662896985913136499128560621503833574379269151912661227727736289514477654126537269004353961020044581621310888423755618579944354727631205576380611391503156985119621123788063204960433167445797166146276345142823636331825646197131133882650283815180137035303735141505702711915954494880143838661076126831232257721589774808413254046416012496088412034738047374060361020422650694927556437649792613571657460694720720810379067275944759681904933900549461754406530094485789705510932327891002751299627104168296883310956423508045711346508199263681636722145856867221298485403985197224266426991370137302741945912328795985194039348669810121327864612045387102643237379183707303691672404249543060231520217756310658350215763395708337053489977263818656660301526104582753936044127935395169574238062531116245322213706682309136930057997493008325763026054120496173980391832069817344361816034331373400484225346618530599118855779654961468620960146899282184464018977344990728606844291343293551141123434932109210335957673090990974083675299391173149794631143323143481631533475249114484489463235673353977019256644796756311378606111295843627917417740983321648849749266187598084574665240406646601582069428695266752458960750307832317790019110503493753738681432125559237853056937338172371482484451272367543331229716417825084914440823001499896628984680865854096664708615467437654115129426580482668072379562145853540550416364918408842549641662311027475345507651947225317976708435739273417587689387375834506636682302758515758906722392083942231589406110747738752712111858205952142027968935683463893450115697482455829711460488565821199941850649463905391459640581793992876941269836541590936079102321145489259873418939066037935441467434486553838893003463992522596613147421221448902759161027082843394360970002593636191708118861272459663758575498555252469364996295392747559218628432006074099396246313275124173001152338880173925004825719964600349942852434553076628891541349337977195225335717733390186241568677757475740960278082803909574511955336505694297576219077293103356656692635601163509591504716558524420853346598709138405136367736597874478874124282871752149589094390766997367212831439234927643971417557649384659135547368952308093669547396590794941599430908216396262314065585111972668056085307036042005588280060186867306899799617971606915378988177981944492873699387988124590510970827338389578316776416126417308165796911156352099185090294463061100148996175789946528610841266934202002844152180509761133185048766432027232172076061361314808905836979740310329619382745054750021108569008235976408577309148998470133395323466260059275617160769217735296315188964788845126919420810964065326308356334732008879948258561278936403916289838060089071647112255643290695659253777408921238747087723323993599039721736288049300238914619330840351880607739565255047388566872165888582225233521614403670853031399224493584083724536051929563223862587428637656884613682628351677664507806410423704408032842185600224040367838403034842149730187679797207828837718751264212328374069862361285180369188740333510770862416311487323726882509802488696728977301574667207425718191655337461648317503278560180388309719865950392667195913910799610812677645306098669606693255944781891103189190986147228940266218364948783270448646372050611210487278036812258053920751015848517405003157820290742397276825898101576248967104588106052768565133454142555250382703721098875635651499144924875013698044211210435153697310426921888677139073143292868072884700446939231432930507421486797924600862225056106311079485918281097436101664061890660511341666394604149169963186277234697931644811722522621224355302715968974742103955171031850398918800578740851028409505823105431346385511696973254730515046166183474273345790451644953986017052822752952557916450803355461695673784958717765361360511152130605464071320627074962453188030872604960517741227152672430085254074451389325652635267632235862909597534194009555199192985726176275500329984772697525965472187586413321823596493954320456195258185774251178228480050597388638444130487885262293552543023888328070961052436430715898659868800794508847209890361466479515300238842506564973618934860678893962823869932929485839761955711162453791622825716359941885121249178783107487652720192755725796342590325606635090757044151177723727542710682301453880520635474486066339917980203366563377166830192278682650653544412437195901843143887974244403473927720071411398401609334042482364960865737944088496416484322091669434251317076628717290324768869331661874071990036509629260281478508595222098632241786613432861148886993669922384481802092254883619201799994674800914590741069710588730787575875094410895276417765245535400180335816829424911028753973801126298526389865842713053772457335885968500988924562767025373300958313591513187185500364692405754166652209944513649901040839973028388499481934626987911381537096300191780895529588280014627286421522307514276956077522712346212805522037236106767273026623805032656722815416977244470102799000889072361824290942097547391459906808703985222948895996469858015527373226656588498151896844428865378158612492157633496649309449341724755239703592869784346242167810992905108184636085859538754985799764106032726184924800897720396678851586697293326867356298884135020491453917432451198898916908754355935032957018461351954529607780359474405847819930585243328889416119722477010688934375750927042460088940534823619194507986243060348153883559159240569375982858959483259236493934119207984837624921737049077781326572115991842312259006675464730801971208243569637274027584999958120234735143557407326303345735722634800096380585630672974144157162991648321842146335468120392369626159202092076144864504627562865640605224570643283103066841943642961221746695433549738258406934287360977936403476567742935605153448460274856346285531040728853384158025394902490148909768414877825371448869579848214646993951380103476026903648416947627817800422437581363591154822147396745474980214888900854594626735065094553368459738146738807755158782792215821413176203188822910987228191515741144029880776554185808068675297146131546368130921108760008437809347160459769833267692413493017809190495026465700521826962878421435096012743132455908421034770892944495627543968178203926550982298040117972041266554681571685018553687170374730651109528030142595261486591975591762738077586808089906133832605608843347620716629152805809853293906938387469979904786687654191940335004599207667621089504241872261071960893941125738762090150563747129043543268660549599311122081316909712858859068777695361007563828895126057909300246315282140839321031834243896930779846292298230949949124343213438024330992238870209096661894476305437009062256984712099751017079760708156604053050281366182833081511025488462004943980709916486259349972014629767595822817115970301927143607721316620482660898348448538701353914917757432506322939338976035681890410183211260191127115833600031941289213230977205764446213237308824901126421294371909920969473370705350961327360013876772342446032894791462781631768831507693292467326053685809058543340200765235669965161115269053639339683602217546310822238029074880310118557946081270665544354192119038539582055238016435124128985120711562192429118646307030475681710339099893138971465280645964195139258372053924396575824524995088387727704699651698664921651568922897973959778606299394101001900667385408034784423499520085599273618260625499396565546094576387403369607524865965482590936326155384775302099084644895060828075189300344473735069453204630509441470706749541056598861717106890004225792014307872628508015208506139879229583509941645270157660898004702341316687102548475886843024902127192232242959248088386610239954190183855837707018089950273162937328920772026418304354628182046778873079204607082973387724484131175971506117363519059674227655617731226257283771504827400290412979728594757967483383379828085391522154058160622153924237240838572469243751091388439542885980765258797297855100533565997874392026325544139936020044731457839235874029048277276314539817130314352299642256153063797669666790065435245552461091240630869297830594455371138236713541944435354653593961719212676961381501386987420641575773449735042301617992131922263825584358451421853903215105004636674159554582584213695898866149579968243899173848627336106618173084428830956346201985740435116755611855427552193381723811089307114917978038830685928671605755974414615287879402713934565456851023941686460207848878096861758542836941648838972194077744362421413071631297528924589237694137730929873518085165859353125615732042052073162589136011551682089457832981958368878948221827451908863392067659777559502482709438003852677171448909847824235426433587952227719856293648336162816329333105264886184432293269203584874340696758967253790168230881779293842140693410126303858334822227774146512201485917717832623404541155313678297698104276517165534143162206644670123914197917375127487037175408886659349296017791413567611369215556129836731368399161713820791022455129355866167043779680504912867132439212423994174986287453911859423893082390854606374724437231744671456152521424562427409423152636752146386907480820800445897474099510264234713972207033327169470782549417406264550131026829301328629555930396146267806661834425925746444935070413804862834027597967678609627336016748346204924258622695651699573365956849330494943243448280202946621642202423268260977243742868958190569140276858707383111915899306146264566631237254717695148777829849867755479339930811147295943775197250374690835446493067924803007105146267475448467917570594394566631408973538870001867457028991967599781754287079567586191191374887440624525018754586582239219640118737266077409156463418754681234198027293573656008128295248793786687814725448387026260530924344150177424848685238045054742449256243963647270370638568899223567958690766835710710639659668147490646466583749534451821917507614853999963577430452709814605488275216846186828499274560273336292098760551638715679629053499465232550573210949617953155736667198007993741825406762706369499651008610542505897178331783624224197663995054356458260259417381660303619267694386012524879251887039265412765332065246671810019581771870574258759652798846198022770958717327956188785302087266010763974755788940230047231161474315591983762761512301074282519853874275714245467814272127469010711083950457289518875945499365132684733169579063748953046825340835287816364063365084041920919732411257888691159330242622204903949654252513578951935335861371864268625039273076388169832175801938919505261688788999564463367910855769366418557230777447855397425534520952272444513785724054170394432464918303046181087215001830110387756892780084475115915431666291971064319779740230053632055774248643543829353228807278678809050801272108801853596534352276277346438276856448726857847565422845234726656803796932279913590453267583988778450477041007320658481946653527012998284462095105864634689110483146965130473312073365542964455427420416661219193247780704341985606158572255369877413096207950619923692254021245915963811165438034386191426824875770764498992617174031571523471751021244458833464713546155573762093112456795603322717129214542185726656508519686534297111141464985366434710218060966483228226640758608035171694959457837183796835740683984049827261325339867391542781540520091708950984485446858628727505114375351973709210240848835504500923098045886633389374377084559593245977596688785932836002113999983591225521374407320561007221805596745725303926112381210777904854748265224068581719834742621283493272107473954983043886183120666009313385146727372179349272912296783930115629859394762440445936509130997112586327796648264735361048595126029976021450774539983049564139252478668066513059902989105713926780168411847660034239431323721561000071787499792880540229814246798329074127326159240480608885994512858899617676021905623164168667028678086113183138630874012800596715248127324253900804314753128643493417742918645155316241303395003739728443573813425553413880882742919829033849938876803850628820961008470752869411837351874670498542006348815306142651049872801960259048008773199088725480943456367254304645324195656511717274649195173854322411459286123765812936281549894006800775898495569776561952290790616390084193073736455367973617840363667422032976284494582777274841214494350294043066489680086574975091483289838346084928679788449961428016942130017260540611411143850842731271252014947637688480674588413001739777731198470263012373628839059066871516152283000981949009122764072436931946118374790638397054869086860351243988472765252209541873126367969223945891552612224569528888546598032204904185081256788610301626367254865785094525859490572539616050639753161662895668955194984319451662596864684624344973318601292052421345531379253383803669217272164523396841587032510796544638273083276551066087992503714041567504377124059271398090133759242912101522660415519716798422241210702386450056577799369745097361084766325748723360678244005739507496873830056074328774778982350124720343356968977527534479130565688724655472099846561516251752011115769500657243193264231680312008811141063129259313351129786384553046164945589517375815443170508704098397867778015978707264364123433701635611045319228264623966745893264626173313786973342156104948808666920667479819930960826695824903502448526631077121113867183435683750640262733858923552652979830917782983647927905505183890673395512511990848155616165387374550921626141153554951244099022024440215514012488177644666160373329908976649005371878875974307845264437215308283920879341842953731438024397989356648253743379387518548492006873268918568952412240351586090767022285496346534397647588851915873814704125132168022820740623424459100316246194652163892187260252174310339664901379352503573093495458680682566901937524029773229278042525559382347718350486676669259488893085173977076903447582982954669970090224977041129439083222365168348205432352506266267799304347771728582777832022330789851150290105504463166059061261161776620704968754202590408874925682820943357241092957788887569138205225579963395162103461531334161454840772733023190847352457446422066331729374416908633287546518732195279332985977770250317446288808016318845615305946402689676538587855658517927251525460342894904503581413065692942554867463245364125867206760782762978562875177317246070279688690192802698254830536323537910248397792370744691672309097929099449574130241713325189466914297778068507412252578104410955528617863867723062049701803891398807650555968109640160538553492355171179829076149703276713527409331396002254786432320416419988401942349300874648421642601235011319252099730899013386719958695935911355201937832686725666393746611886646143843407072832678076460117789481244227671956234317920938665953907290187300564736526390356110709460363881667246094824674827518476151688453501858646598228688341353283921162269486121687599762364833876842432924319640132729025550863190424049247821830049247724288128529614769802732796343321288941274010690459323844521455433563232703719472023154025584451768730268227999578344068841497288971975683524285953207912449906683748941081539991318141072843830604915582412605568415549570943778190650481432475578398322544741579432987175064000827991175520415622531382432183142206526110425370157972501225022131439953503429430335854342752059758526221597146787604947627199028315612926203363238405550048217185449549786441325750404756773688838418186677177923561272903092682060992531564294019143636869718723992500958384130851752971363030366568673818767349708286081649941808710989459563127217231141139326262839499790765670408094942405253072709116952279895869770474254945327090865629143144534158290080003695486781754819656397589122851086830031262845130025522362276023796295638328952154163263627098526266231479958396322275111959940014637810398449480701456427354956008710092655185070856722484090660846015903326255458430202501499758260676538068216223341898240354116046568157450812721232399512097386842355066791488775703531314833889046691428850564976294527538694172873918353558873119636601610691540636481384941165501106281287887336107186168284321292469347085032675878288585488148897606499558726924692384949004062308871097818874787758709479467428381045898634665859382008276290556844982406453349192387830141634875738781484703566323315099976190716803398575252442363593885776546671955555945067699383951265714497295196076373758416804149513728260041555661099016080589189480055917833803969878231407898882630782812272749361308029439923393393183179934790518051797520065427410993022967138857170028956696337593041730400785476866119667672792489749218337720735486582747459445564915157244466368100338568715626337882254838628601777410358415973786579936533750265412427645592048361901191816309775208894209785816320654464832582184815498558447102272042815909441251579289731178122648972592051909276722419583564974704117824210021083362633079547255325782877182495000475997237300513835566386815788693229979871796972421573160403105372245660413309337838781527826855464203980605508126808538998061127134072120779816239495441503687392083243390747258851792391794375319675445600133656459082690774977395220325547375696880254413834931860691039811491472970545867358270017801687081264501388798401200537695827483466143652424425157350454633417331500388367661472625812049798439616946466413558125984296985779933867821550518773929675549747307717508429808907487834518960677696256788621849093006681625900901629822599521571173180545614492827225020813607438193589963614915479790391909864670974381925658509262503851701458565236485147398784572774773286510844501791204795875053499391230707499693096018199412986635024278409231170064790024919635740854605399610386624811208368419664315854354766518855481256186047158369327858944922042384735424532269139346262071888245943248500387642595582896630779849394309223818837894009809990257612658273641039469525926676907544153614914133495712234679693558040102086372531630913040782937390999394946823540247493834695265948855396027461047159907990419349339186645856840067951913609195453740733495754201720161498843482255854191069578953217279385031853150565556676665605773764699700222055925519411086910513324839755090144043885079846489675232356287013631415857683632550109258760310803900465702231920611061529235209328217672145166545862369101347351218034607418467620485935088595929839007983372654738450766447456415823602520593571044874306657085059770721801618404607994677571677109473441226311813575735723087256970982062726369477503429082015279194129023773787131493145460801542808153099907993140404018123632648744082559995840364515307883737270458312588788115967089096326840836651826763322105776347127222427181975602604541781972813558280541435419840474223298642128128777607176872481847383987507341773002238413442599651676744682079110794121797528110460374651971555768385877794719510338772059120280320321445453229790425651012411349329734890111204216950171461874582672545349340538033630314431491374975128317982262276661717786862388037677804681673249621579382865265458968068787359571743866824135636775359084060527898931317974279504391314370795155110330798202368160297838411758002629508430612383925331065875597437259621616387349774704395253917573090042021786423253878877256830316946378347050469648780009812412403706030214613377701807465216425406452818009854357729397237509041813272808641860015974380049924169221314373980556202936794442630112468291414676033910812376432826398405714415222640064242070930701375357248029534527675720141552930662163084669220691925057612839760037135759901765773645657301188018032218734565556765243739929657060270150874765997927228038196206173717925439436452601478171442344011463887923100794918373729616118670479390347887275707789440544275209913550102636326616688730113990374838072205943107476836965107325185592888116220339856039754591811100514788024911479994996961767668244268046271029631451140087090707179262930034050608970966727052362536053596960808574132379422052614100978551986029811909508028249917507463991975427630545619512718424532012644640453092875132129342320278080865809885266096690784156962270403954863012294787507075484754313521061108960356243515790206622868708193322745361379137774491277283751286086815504515617439096434470649040036906692387181619639680505367944196104161693383670294731014512078722064656973958865197969694760446587041366223571145395597652647168107746829052024725698742742662231565571830423097303206155772857853012855413412174909268667878228399819663893610226588005083990232698799231872638878252840677069879244644814647466856856146492398785038896044099565912458862686237988659648524989710170768339083141537654825095225853208241848914902353368676029513689616716303322945730401792848736926999286973008753934618035631641421557085727311219048445047138167110384598018393843925047670471433674321560207006759222269753886067630834402584771144396564397124070750160795335846970178279570562800330977874721102278552898316197324795455310474800121161398751573183397283285107886617605004084570240349042649536645224475721587894397113975769446315462278166627686636104530664556422047695002470815123538348654825851922466592887741258468857868942762816044859928693245779978362829823657968175403216321594221315906508982135262750810494190726268646713612294609493829327587150946964671909608353610926359284575930554990550005419181284936432733332871072291954637135848831592759960935098378162796729530201912767271601168306093116877898201591916872392870434778718441212761074871721446999595268761861361588207811747752689647294325423380436918483519340188602412069168065377613874001413795155846756314814674552321061659636742884175735895463562655296769388508142672821262691781245802804400865563514200253998670468459910013528859313301479333030977676865705168981040228167751673774347788966808484781761022931849366252219821430636418590960123589509629213109592270682048063684401378588869015762012251128815375909533000395399743677450486011425527472928082966680912019685082716768638302169640172877740241713991984431246535549494370510312312417243014952215379127982263328839771504707974343905433206122767550152271038217991342454425238919773875353132739936814774629315627467072567899086897106579961688811212982812659065327522222907782136745532832269799516925919154454165284872426093070769147595811628346808648662261278663242401907345499156598153416651444144932847813338377216261080980283648868194631407504971436868564366681804670685894071118256605905400416387744994287320895894382121079803851882958313023376993161703458116087526655940884754285970735603884537572929339659515030606541658207285882944931901520171107373521155196932941607848268253444855061558603568537657444589487809137619458621247106756922354441439968670629456091245016892658978563484508580078540107045966964664851171744302298769753471255635574144885793983865637323512818839039451792576622825043955805095992682866069541695639867939744349574282100052096208059711410659853892961163649017519759351233033380247958369928928162872223941448864894643807861427097992445056999815242262701499715940420899912478521357417502198899798034896807841436179629955555217318953145614722056277163409117825227036219208924776040255590891595546221714449393726485775985110552687166739279550296783022625111372706614197397157549144543809358934750810061133201146931142162336484598056165232656262647382628784961972666673579612775414793450094199781517912535863809755844801944779222353277552447666009844661385377035026356026748978671048593178167837425231826090522325052545781490331241796197404776548680734673511693970463185289780563487336438112790314955888194107446172241559676079311956142462352849083365071695417463172136458028434893150832519823695860855030662124912390550711550580720062385444477765427270726948773507567205788264694354786765338004032505956175825818612426536935974216355904789043113882753528248149744110087845708144076530960608061247019370387707899433299352618432356011727607218896887689118892210211693068511136046324808452963560636182874752086838456393974821471932386504362970750326204005014289925438427878215351580108887794659987795301531321192180485031528945974725012520656977367577541297127443163627016667568110554440847224202659852296861608377601456934763378004807484603926344054401776281740071008482154071871591189207879363205601018215540795673486943537852967966802226962933345847000166854713603242015740433482467342351712254017109268714336055185549474231862772853230165016995072199606124436871635738591963043556658202164748191064957771114299080972723998066183526837592668954480791961428280425678232077392503612775214033813191980314688364857412001131548416220510404696253799636615752943642349500111730465148021696314400481918355390699421187434573766631245851563424776406384206283968115759723408797499218941185786707521871464390320930078352573060318425772653007818612875979183560581711689092917224470888110376137579775444240357251971033304913995137357986665018540313770718603366162453767281152874820696434852577211468933345851776776551027043357910076375444101030999234557507696409127829649879102287657774177312674975464366607647049284537721962845754967994856986423790673353046025705549443159680558493173684587696092342318155211649716500764877170938086314785133493447513571605234267904277818180139062097144069429683128035204084721429061281318101469198180671808385666781427008730354420529499500000793082511900227585519098792882906686820413268599191058585945165978026801664988319400122023520954928008134903881385935938368148606598584276630765111128517254163227208913405538424287500662054488568222264086649201263653714602965998076096606198136784543332375198264194833442369500354333443817700920534470051563282607984720566448963440194781625522254749586233857119191061813392359526489562920359373836066927454511404584678573278317955413074646970030069577980915792484190458099621406455186482422251591368442377129659542919228913663231120836864425481445849480551756275832593361354125999688194258607059392634013332294877520543474320067685180478166506205475006954282937914620886405373601677971641874582054148157321966639189090800327098280160092608948403821442935226189124496749167541131076002021185234035935896118554709619454336143606864127877089982828165918735977331146404803723500589180237922280233141209432362543844402117368067550113235275057432053560059063040950181103180406254438782648337787355015081788587357559746194766113476997647308945231613880530278335439317998803974449089447938162361313377261562665393562837352044105163941913413075644210100452297788588856543387852315255772638561860535795656858492452418056614140759174427237283067329963793253253261847983275405329604162129011159135104908036618233641849128451896802136067379014328873041509117036910160193888250378995540827298270128847793975708411587237470172280502415253450825563554167007733100517307012364924539101708499062006938847358709595144819008741483609535675464740097745782707175855213424624721674474064675419699681951483019465932903416271546797651951427530561386499883724626183439920700067289487099964209174421954950847854681529051717928474639080502947781829892903090662989836800957485283189003011720472275505920580489585173227714561744295941771524090224610411055066367716728698761627759723463972361455873502912140933971358761918033882856055466148155886517691898180888663735992203876629492541375879960181550375416321372401094840444442309440315730451451522929378156300122688172480050433278229004240365970845886535668459999864084769389970547169741450445616696888284553352327823359007500358633541821235241431273054260351558753118698907900353293770655999992006609066724464454776837126852539103648747307399408546335658466304049406221700929827553081048051111216626815253490088040449276052026563752623040588488140424466623465878315620513839707494984701372142967073905358733139660374268294048689478607622933495448717771352652550053974696799691359651445886588270839630252752776812786841328410296841687086346209714277142023105004676139016519193915126406705371687113840381718375009641565627804461490517668726365946648803935518000496854811851594739184220697153695439468873414068059510720372037898840745163418284111683065175731765854655412811310087849619702751574453084248298703552149412255927924643534343330337953065144494489408069213442618293082901113383076274717682381777454965514276833399533084870818635309621640921806858703503594178680566695026741544172744269148964583678668587553670008929455448251135262539697804359914334226107675058081729154705259445458778663519107150760197937156570119465605050287129973193189510780279297568203036850652533405621157265561094319348710978076799338823276274307444712971553986074291459923909389263831248039230652287653416545378901620670762737232331026661237224086739691832428779309078274548457918755342053905605060392049143794873313017054412774272592387478354737701111749227193430763201256142808217652646090162259190329030263577677636047661654480303661109472436266099547388352024785874065355308382428634370293263245280641051526580244914959155162460783314420619029233971699920875999594261297568882025144690365929361326996814821602762003365314037422457704947760329613592713155913331529401241108141746652810645537643942143434543488924938911677297708580448595511041253252533170227730819784852958947085905214095740326353648955712195886533987846531685539408218798249915896802914449357134557226024767367218838629686565849477158291275236857973655868651809419027385458080396614652835446253007305678253689968945257599496004322498028659223349122655780731506845158451476542810584004068942434396427562412708335051281163992596045376822729899218619423060900481070839830078129773607183787744009732133801857492565915627527116319840235606656695933875201113415786629251413866670168169773729956070443473867285411793924926641675673136354341779646856333942010234207107401233765802517606561472842013272777870260380988548764010758522522786847040165326090151931774446671525601990547900895331965754285685799440925701058470307593109965442026311322828338469786159794260472273622635202348308823552119026203709503490287220230125717505914742085022654966048980395277907379786536028890117280095518911225464608985179049659373631783178578606789368278908776351997622106997469535915346679681623070642334423450550189070410573555771746461377557746948450513878559555439959477361362111287238385003381731224475514447009523091349943617607967564718161376656890000641086808449187203092698268648148975976624704212069676195398356279929648273676142830886784998753320073966383201717452596990935733873960681765982972927683429451351395810864992722238845611592579710112717165190001020265250600230443675500817317697606008339771508367725119374323557654591265866516781276622812073107043794773926588764041923383995031811891948939548439769283033150934408931135131027901440668170849626889243045078154102065450566755589441548657459360980041893246235435470066122949404263017258093493970626498686472980522594719081877749109924628110711436823936165375650842254049530657344586129577122722338100350042391044894715357181992858445550768265237066100426936722151133488483067460094808429448335853311547347675325418207978604292686568708743291454709770387746623522908273547416463500581516439780083797767532012891408287771909869424600878223498768687809557040155879975508034130801855408379391867777817685463286555850096772812363663847354649672410573440004470255972141513498558232427362918998548999724137909786688332654246676026591206934598731587768689640451314288679917255849000363571083977435198138095789346666387645395545909100574865544246977011972903224884646578991734528587966121778802531535362801619999303297763815114206555894721133950645462757973810103138810486660682894324230063634338610246253507766875469243031070594127526028084707357764349641116276023136903746762260590903363583364677606099245520871960226301914171540827807336936076131477595665035449353436599857476943102590903082028454273451760893281979651965206334613943506151373139575998306825306276598280889954450240719459981428925862350496294873982745328620675519406417157733436252235879545044252247544382340391894522870198943877679235611228784570838075593737335123436083133799481366259355666543425942351560082625292116869552764426104707532649835221555791210518472698383188648624933150206273678501401890401440296516972342757267699328840847998008653752226551399609284337213098710274562521205501478655709363005109743456845720535656041068806018006005506580511841669305740578318236540542876986896970208196697321926165044085327343735829444250732090636886314266902088269254073834156595337192348239608994487805944073864277521181394376309840185447901000428483344928554938568033276848247908463609436629736401436915906870800228471059924262078991373297295187242057782788536681718960831880510391105519878449862559372858563309775371907902861070734693859181406677279296258775564707629777665495807924231750653055874674121192029505805070717613759769711902337040552202235199337181895165159796388756328532095455700506652550347749083265516876525791287571777084148713209135790491595586692521648770604635313071127867457459003882024698582722797966933453606416859758160356312188790192811510721437190482069197676511333530456731604399860959027305984371519813210931834597569945035550114883905451793669562561660706416931862944692649980405132221255337117663369298508118068361364741952108059574929144895004600445419958067406166824040846286903972451031968522342271892463130078355883965185428006070301545027841351738028860870686345381446664680795281978230330469296503285520399290385203156728345674629148077445143646867275130088228210966952161332994498795275231985296862827604993900596435608422984165598266426054767045728087598453156669556176938764385370867797977600870661689705878222617177106775359518135007807447576997709795937369186815943446307178059745566710171111317944703389120183265134922234796324104419073734626839367579515214582487990438376049913636702562228758391951676376504937920574297412724566334892607022000923008013087400589604309551488984629602803515803811249457895725944827286365010077657420120350371469606882707069292866292352028419324992432695708390797277316085478986493620330091111185470210204883933764951111929504361411940376667643949610603183204334572928416304804599511528966797311430474245340989035978904839102838812625416646679529427723422002011350214976751806083845974570419475697533820149205982861907852341151741890706481467679731906883279759395398153757922870248982634983525733281645860898047645249978394623583452892845869013868516858405460642414808829906626941236835337103843782089991009807302409910218175148657689727867253361186878337436822512022669922035538176351743948809017453197384483400047088028265241081780754250758824456352119583826079035951152450358184633187754646017460200826957724409401949690148286133067727352577029513604773552273960793527850621398644017224752515099852759870553777360576757042610103376818488946128662916295617330945672559458809274400152335006975578679971381147531363563627069164825010302655857829173621125525322519203449678430231547713266798068974577717906845028696489015932862350934116385236445206090412597332653940069190389544240097481218383359355392335056847425576523268580743294017556383435839949606886759017548665987793939593682127541541015055058226288774663133502002336863833897514186437498536982134065944751877994111669264003448920901786128499075221976339299787832788157252707507342163208605742151311637695918196943075776545797752750727809111104450695885924919749511693759730848491162160436651202555287093526041776271403541752546616951519537494870368270759778886959483539705983871683617002061770163155969055090634386326261567440793516913197633265883799560822582963917953283900609753852229790748195076256879713633620280307218378521021894454718937812236598602254531130950042683053222999857777006465441500433851144019024368823706075482063609543826965849693874104849568388174925014891473385922559911965544042439595674021410170852183148394471443647433803986267421540776643453044955268256870658776343481072880700084352712428294010220601349876167785353094975073590497494234928984092485397145198939663216539611447818725286028793987429981499764679834057667538831778486627752666304483469895826654720586297883070053205813265833786284773416255779384242345777235110063954617602465416182206178069597280088544006975135135448335352552214555617514379801610617355603483979943389367015881872833101402484672562926571289575739432970712478727022286092511367374572994314195163424372503724584234184518479307233015326374094818135207458776066160566302410548158780486696815065157009835314675312445699273564825888072858375135206914278210194334690882886616534495628484898100677020338508449185075984527040374587441292091821870764146957231832092572970064407476768933542285061667596422425283440847288817266049751803854857701251246211534863450606949532388756908067557855552426573284934145811322802149470842271276185041051902189190204027059887867941004986326330995426898283384421071920096174191888481634714044013219314932404033340216151390901900407948243555630652899563355335511753041097409816462150170397600284359457984404686123230590906557283238477806008688010445532613770320454536017288828028671448293943449521476464113648902999625433030963606372373342685094701626901810007957236577781538484636093006438220629226895469727274502164446587163871187318693248939513312079308852339475986775286166363318128606802294561916055176011487223291882814310161189172933168860609279789330712337152266217549290711314914152863274935271752948174001382418089689497959855992691459841048004486557609376039410024185274399960253493105495755346964038401217420101350401071015689731677273445816963909309883673635089719069040363026220112787576126416045446596876369709726863868292745569153672791444521160563679869982903257219819322105520539897703969442473490404891961590327399517017353802198019652378619957936902450628492043734325356299725886254607256461182237834687834000845567414870255220465777038086349259071008414900355825132426880305499075655540126811807271396524140958982838553274019514739388956189015037460426943401802846362751150962371173394729047594572560085664345732866658560733144457678172585612661663320158531482341811388990696316034812283270806143489954910599526735193317558664538039938859936190651938660186543003928037115135340840060943624255033738409542916273963879063921770532043499174803497521530164572087017399421711060992107700523667504053640487283850346002516604364538922835935346609363354316536062511540584041136817987329535199098529714113109180706089798136874442964987636393252712526261286351415558904286361840806166409231349156482091554578052323702118174719044326297980045191149790339789650364732712586508931132785856938782920688777690202463182297348188590094052605003814733236977701828675661943796798283152216684776587211259456969213713260580646893433921532410612525570851642037235024240549979254273421210890446782870951672354334591849774891259675044402650480332524113013973358692508863040435679792397086542414017717458780373651312111499444429234297315139105976380829534510670637460795485046992810149875615022386166724272844531371177729288133882354085885552112363865783522755482042058529071695328297669293821599212225516440738274629999945049362647141441434275287054642050915703812743725517887609645923080985370894390225059962418990845829253766119986012569574928787565701938608603303580805773782740791034967880645586385416463811684724725215379373118053343544171344143197643725007460995083544732966810326122583923818417435222686211273087955752795105546919677764364658387270036472904437067413717242781676353143634653466055990013789124118785909927354285948992854516180559850671994178413829209800995041487932720616947483074296679556948828236133355914769757429738435577666114804170815545772651678652997793232262517313136719185064276197701328349883294407130542005856261124021940545522551770497847009865013226348162650978366303453981507184896572877619719423315804860285417793507872726793666638560948597546379152712590825554550645737966413716521902432736903145314988038662106996183949956379906934545612137863739862112703116126828896091987320684440284437828714099990967690923224418427396550078220536588479762342832633969326480508225311439502746212016627652892205611583802395071309099238478441048234434451177468404568110397415624043693097147671245945731925485293156248534405343940166635153783543405350147041380221428435126090192501990376741664033080231926910614637124115550165443546799660956408212224519071784548851029204485011474981732828278482367202856336098090871939981202175993146978820564536299762907777009019735187148831724262322673944353242775370573568732642808534512448584415115579941262140190207137921734334086999269464378847372481084565988057244257689298306317873446943797294035761557409434799621330647684875883468226921969333891770701696002060244948784215042331649192531084041405061215941369617676328730100210147403580558533425590326151600101120184712512188465967481977954876131408208170013919290035538161385502677213377994082577199951053342083025536159806823377127892918513695739746225354376104856079211305328986309624080914688067495484871311583312999292786734970003397890911890741380207924099198011706846235465021539888859392272495352678312127837262155712786405677381143338369899408708084028202846337701667900372891320298357245452835555929002910936688188260454889609711782180172199903027727675350603747046383534398681318233036071886326594764752457614325168918369410324165699003883351775460622628124136618552073163209596845563575053488027476642968666385137467413978572511740562212208186212054903790716566223706643380419839849774955122084929591568593121001164455286437363902154185574346910865866320238154672870148826093604571619248701150181453808950198765931991012134157286966596168877834393853667450854421317718285545314496937233705067776261846637746682794448759214274072550271513910488255111283565696095067553527535695056250239702290844019123719976953942271937567920488624288760322985524858881266607542237023926288816923336305610829074076635899775827840420774915702520957280495071907642861241776997787820411861884323748384984664788308134102706570447625561526462014927585271875399804803241229229787087786488622613984618343659750605332766037117678427135031847735802803581361890826471322436018675119673550490890524558976074630091939285746017521901929698733924219508630751043109864112798493242942212018292450656421559029187527503231726700841467353918150344839247324445470109083350565865205544765460347018172370887120540063795248926057717271983119153116886696505627049444362558905291816366521900270957119601533008463889734169163129684890464938748198075273735334691156859321149437789406074511794150465806616593256334664010070509946481367267287826210582085066282694446544853273764430764019025760488340732532062480651805297929786196831073644302846692058352585507948162029024543348700691300857156536696947146988205655977999271089818747894821567230371052069434676362501064961516969341332577031201723124741006764317624113496980154305132445984835388444432726068629999353629365603801530631967056937970564194373217600123727959871835669250520400812061689809395165150893964977138583956780613194433735001108156599616955553111791712711546195061326978302344582917481676917290814532129067182323589738943366497231240716644879497824280404761079396556941172267822987821704016204805618744684122679920568804129314077058230089735409881371685508103663147776815795185131276292373760559431512288626275726540836782885257561895464570583007637157432390312099539737267660651160022085880169842261440466112035857483852095865227938762095745951627138464006589358337569522403423174393271621485423195768865797266651719602258752302402294473614236745465082124533200414213984405923964576826105442438197153392643315173551078999960413146178074904476913000669464211447780019610768011123366900070356364632739933615494695448217174010399535515939726083114544168962165031586130963487183266453699341345313861932634181986225215475380574388018745624680145587289884805416515633448867854209189848269965470092100122893246434255667956480795832290951801530390759750622755551076638372799242933207510118030867541812537491785504199440191213693486434570154047592153185571951344876651296800653189602321574465600394474076901302783534167327474442009565225159968486555745176429343453494970484381432483134040089335898641079261969122898842048639666646835910753493706403748694482495601505433984057516141916242705863828513804662293126993883818741058084885464901329085857659113739205779613868794348756450598333683942085762573206872173307163555580189501405715357469908267173809096273552298981532876163155663361088057661247753062405006590508371477552014390516495982237170379436833807607717453428585427846519626459586171013761465133875931830645787806679818299401793630254250552625846352608201325749010714951989262313092274493537763584363297034455116559851731907595579773177206185360097077170760784299746980991493794026117143703480760002271797998462814984951164485694430912493891646302113681694413687608784962359458308052640448112802870750936641778859601878529834261546359489717840557045873785243273348559154706327145586530132544615111900432422399580844346113025648144193159834826932935666913051456881233350872641974602027128393721424488877863115267350213896055716756563452774141641563659936754365759349058747265785525514489119296809601507415946853696473316026198106736352709772256175229055679858369373242448047920450230578644655014157603881951657728486375748509428128111585586211171048307763541572738572372950489675063905399856808697781770479867811759007916324374935458299398225864461880648756135381932144032806121604714630902062464090880985281607145515209124388860357953533954072135896307219329536027990231111476587911015383732435570403660670068185562999261167204370186516614877638772914371801439647111922089551100355738913225032890311556685918679374901298686792734499895193373762934047658430376693160767593221336049669346136652728150195697531344528795552066536856615277981685814849629231657354777805395158566869679882159292644245953637943220060307913128520336035890156815113464200194905962806763628349511239225859665203386302897924383556713784602247813161659340122342692955452979760367000378638324412435999231806511698397301678610260352942764656307564340483889058670027513386417057452283815147733245921007381536571049566014282129583381132776924163262939452557573571394800911801650747796279965531391147701730274501680466696800511957601780487392261798133759094022183278381532443394050954747789128903374793333512464334595043595552137658668751996189358414896210348827288137697171722910727912482615390298807297049995308001926325132177077917196300571449099175660866600082272426199012475342389787898440357508844763281340942164163045658101624106539951241488396899129668983731970486132697603050881257844708822762690597474287200504568167597538473424599548906146377794416404842794410477594647721456676882471558426505807626460514717402892321164167932637370043331030506576244010865417203195267868124820266511448563885773606226138790477129343214350688739306713543237672263964131212385556691876514319746839875189343848170096836998034378617564193897516347981080788092967824776744192775984632321416996381636244825062066934209466617724250173513722790067085818932980395786395113530207463022970157330491434692392908823543307775112294812333909781472256443267437520871202252595365778987178267325683076178144055823430880321616462610037269301353311474796016900282890311403932046228478604924126080047342349639499614750025680354996267892968892290817231532189072882010331317392053412187532144727736235129423581818186390914023407749152413904050646980659626512991303398091102141308294312111408814588808559515245350988959787848027806689200218146647543800034699579285185144739460458405482600981390372888282381950027612134846010775433871797111879351121931823220637620758709376330091274336349323619318854406332664635976898932304373585840476496489284486729629699382520160554499662636465863617017275655036522439443940587274004040157249514548085948115574313261246113587141891812185596165490462628562581292528482569285498360933751614914749747708355290681064835034692075266389738534427653250110860506385087492798111850623614603714767932123931520337593784535722264171175600365022474751622734370834060958655216326450496225717664965177220471210378628114723781026960787734981128258446786164602606149166082684055775823473230533459545240361455148453232005918882687872328460994287130079319819243958223692452662194446179374957797497308054127284825302213325243471589572215223298407021444164833537489354465146481142182674490922471850419009412445026016890711150663189013144901511045621393922506905734326189127020750217728418697327552418357941140029060745807339346484212372200800502059621291522350137982793768515471757419347732561225746119588767456716430464196245478263377803648477745695714932345179255659080655061245721255542547148125458579540582850674309181382734113449752535500650346759363911550082108623047882463539118065622669797211718911576889977681921727534569561183911593502854453820142140204712960791650124323930919990357981633888197831801585412671593931513733755733667228118716884819273452418776009613716837753500836252168015391943699675402966449737157151669540535512323836356825513037703535326427806664447142121025573891775156933758084075197477079792422726345489605278399743456467245479553295473172879577853348753459405108295811545414462381432072364009096327263570000529326919662181310185347434503563340671066231721927370826333273590941793403308296959714382646497096350816553855035287423356025429501346612487728634906049822862585986311094541650183218962305646651452809048133470539480100005727879838426422743450062097114120352796193665621673618541844652331921164848582045265466990510470873477162284781595136277639405877202077461860775470754015166542981822484520843330051357964000363958750518058718279009738572732518091414458575773851145905738175667964565384976637162958561615005600026358496923044907290584154074884065791438680898683474114674213432906197961062936793893937100634873989338370302302622646124488805387174466057771059421373638647162536800658093348464942747195457257726084834009400449289781316092831353064527404905588059098772979090976474923653833206216462141021965094684701490594524610565442375268398152386654486211237291155079920792064898341425069979721109265987305130523435622050878426293654839490669221267741738631864332160041874542153211694964685001783022056551002032701894964640748138051870054799537066867580903922065950272311632576084786988550396197589436734664337662770442250405716175097475206179578660692794617083288607296280295891022686883468102293937116428559941540726509057595555782013457012812084138991937060082317158011941897070771870199199430412267412529877151482484805280114781307131039956221460400182704679093206128839824631855989865045992526822336593192059778761221837666049428849228924847822348694694960739655440820494394821672210634590057296279330248734135107534042566412064297547971735013512948761079642489947416425422779623545783464565715937875154604957860614052714328069033516251157710297401332171652010443700577080962425573560652167846863354106081307178806515092587214406615929469525514185121881112824441951657190392497528927202288691339230064588426910932087304470339868219907378983000262396867462015791273180105822476122774661463915827032837993483173757750925360245295907346265023147010346330793468218436093200672522049236395308588105746056891829207843155183517206494730172895343197123569531352593163510223964882446744873343182035028009393261847988460314263077508238845928859169207490721908039792448920914710915240202131483582641649007519992540873961229758028496444494705326233214041701716961720870466496491825047984855096156386191202785166051133746898306785109637241858340756765803281692469850351077119029919395327232937375643168280116373917102024132445436130916565759887651177270644857369455586763342302572442219389531358156194713625951895609399642439621605174433815450931142290338264594391970787722796552634400419369858667974888123732903542388457904234380816764347527446934856514509856110348850290497888817649635549389861632160189481222058515839683791577607397325946289938164643229745594252755512308110881382765316824822366022597331949845445538670588154203314539549951253752601652027291287894558927906403396155449102522425729299590189791174211480335631885241961725818440384975646326946094070957162772416642022069243591595227547058758970184056686790676176793905506523828249187643074046216693885059018456243181078935134048462762816237481285499361751777577899590010378215897075684305401623272320895054877383925880495905968254165633746160369854817123584944108022209745396209195004312967488792163979673244614330352114035565851466537613683087227436045654743210558940043493243318785185639426000497256985378627918784069135357651832237320312294062724293998919715998345732279723319813758840610551860645259817696735186019540454667886997611933126385744308819892200670824635221395182395042031842794373518232084261343367931161686839790625840439795605648591759882454265316923460875676507724507943795318097322047366115245215939754810737657336132269704574414996498098386853239716464532733245050456368023900248901305192599343365389338534550690560868501976435191551449997697577534307190976415544765819303699346029045530563767804683873959457494785066505011028435546284070970971694860490056810031110269421491506631663285797515047608914718463229454158889585987433016609043389791285779160213223530480169982403872098354923095215534616826737887005305822247303942832616866784391865306750928991596285832966588725377985473260483042757933240645736433494912792707619694187315403443980264603458428079599979343387718392926311693870336939892949825594548254156795272897225486362268630832989752840315466362155309820711374991530184492276902332902037283385148292976387418412974978864703450025332838858855530324560506238704145801611296934710645607976393115900278819397899888918286657949738255133622383456907844054581546575848165132057411184347758157731290288443872909489981069419469791908864328783054309710560457836775994386838673181421158176228413372556896898498539435068975278453560177377036018235714248065915322260879438173824988126566799723533701822164442524774614923251640482160032433102682333199625740589418295200380190532808064155609964251049886715818296894786208740740317378383808988536296646670582432376335530582001622482290995925437887421316579730446721253156201036591776496057165958217767620329907177375439353212763021065914640842936796560618996795158209733537855278605380085726102646525544780656739184181726748785967055321542147400510036102218791712088586727420725509538046721034201396564762401161730018013402688820095734679025709977799292776997930048829985439715018387401383297312553443550051938418948835477423974685283276410700083297148495988378865717033405942604097625325243765076963800666464853997941418385131051199106850945186023660922183568171966273356726263661436874011106949146901366645443436323482608242273256240481722882949276326205625309808989820382540740952258549050163143244611181002307034964096871675079198055738302156121449087260153776917165127654879971191531946964931202251743484991269020891084228986646447621164700716555699039759357880672292554550750086951580962799210939754995762600117753540912461410197935329921001880668834783722499730058244895560294877698193718241200931771862501533373692394469971598684662526470762939604368721719942902830081955501820036963705611922502507345252609346761985372872501544096587296040391897443008210309309743727680573610325197778584170813938811215313832228209601896304666700672984252234919551929826640082210241696776355450132340691390450926649287262296397944003488781289989797627982034694153557403422725791410286424230605396526879807983963721380421067102094543906786535602751767345856670393772752605840110423280689960564721775302469752448582581526849633830042980502342531758685277009061258115503443452969667372707852922911545528201158007633494295038542494984799345183613616983370020729925394849772790840952047553778706223268376138020166654370935951377081015946960107927313197116156027191378225586511594659660840419296515314378704909147231706864419434425194172972384725941206468923819101992464629226448932694705741614579695478412390442969648653175436343902141546891669912225392920780344627006308674302357890254910207720036431118284957644669313476773783057051298533705978949814303690404324300156459238361669342449353847985760462451928500994636928549453445200586389006476299913072901725059848381531265489377581406943000754537632407031625785093737613456112053646635603007190434216338076060947159929603442017730126779929018924989955145138592037768907572790534499502399218624671555905015301133503199428093396271847471931097733119087768564351721248273958717609175487321785134525485403827600808687979404997678041340366723263566039657929129066276455687319198522326671294997143612037735604661173834645744074737260132064593954813588058825798836907959883360028150544919724103740171069716699775295046238364978314180750050477938584747920648781501835684013796387413348817457619549256867740813410393954814455214561241110693944698380463746503104853281647521218460841135921694693946154843013864957581715820112692471739193404575669763269015322509664444607465353153512131278560251516731435380759086195340217454876279175715357360921898662351203589034203704662152236511319867462353102944653508371684684646695199287327691148961042072219611710482024619491938898266453051083118386468017202072369401575450992005389581067721209440548334593388421494044672003938267044197174273955027866219001981264392773574731824398222852464354281991265643689832828406248587049586250792197338200832687872233141658543972852691897439093684456075256837174598037509657187188460854589725272688175622270045709368280212543162027531378862888091228408000298023804767278276511716870701028743563770362727481315171549409700229644905499734751613028198387517287976205199176607400643915221833210715741686921553337523747599751488506841161380073587555266286836439413123004695126384289052608595891017251432140644958167820548050197836369324427394604476990307950314439327202827953670841392856087597123430620303492615846878113865573651676312597143714230481191891674086823587596526607337738542580547261203041147109788721340019750019712759887393141983414133349842221040831255051293422966786003567130616193014076750417824044816794242980610438610489210888364924473278196925567632670149168635510409549856736877767508687535482808810845326932264106056744020647415037081024887325234282534243406993133861363649405768174392563501201700283139577723162408832195475868849453197186208197758379213638126910146890173995014091449561122140640584299180763227349803897164787926287884974259729141669638662563649256650808479251554687275945027697653308918275518539933960337221446429822639723738946831757104942695063600075343723531335068613962474394887989584542795579580469178786008915996619528757899486638519970235597671214840939281225470939301294728393979650625459116962257931878889935199614647025595300048003754068678011957692473271922704631605971252828773085538824504668679688264773482062304135707418986312613479079161713100978340005814701437180369804567933213175668593670365527301753394670129429079883255430350772799755913906242993982390853942605305666121563958395396588653788567725266160395468714999000939556880820351931682023643865842694531365519258093184557662112154107585141376726064559766061743483568413414655179564881651107755828086280556880972583225873334686963694185902381557340577609969719912250390399668736827539752511392881076099731596358591488683314849172270006555975758233744797789529304228299236847564789262611345847477241262102094584062365696529874135139185643817809512545698990568585340326019230248928833216553545324524185897028932362846635194335228962032436646568624176705863579121308050251309276281640624508999710913486373898618647858561139045802936890203878494882334656005007548477705829718715743567068386046204357573068156500769627751719494514290295577286815162942524487400537013580834675961696829972309102163638757849458064755206217767691027608717771027306470031940713089232168749556860067097557320650331718380200552689369951020959099338991845656727423736773762966877912837072894969552566630756387465737772333036294292238362735456586921056473771829542100394369608293316824426896060624921554463318000003080841138818413258212222829416279409692042868247640949108155571019680659264702593532195502764351214824681610716270066764520463303424125638844492074141410203860685699575361118043718884646380139341796229315574883117797409910698042192527205754126972003921452549646560329613623041914336314116996872500677053121359182436139883683337973810036512692896088961688047759125488832986877564632770238596552058204319542643021428717305933852797751818256873133674377756774112620029954944334295183584537761343785886959025519344617061397372678501402942376649483352865752480814421204028265405391947907821901455311533375043136110227638432499143411778322254945671537045516490158246238920351184727400243782260164839198587831900393370889424135963147984877959618354336324844561836678787800267964806823645418777502479285596784403035808559442595956156318832097484543573095692056591048791438975086018056334699219499529398759189667986145324492885363303371633416447617909841517709899600234229044067624111018343194951197635650445334159148956203137868705183937405031848502582168973919616631821883729519518968654219105720454303747395916422449433323562958706693706301776348736469126196100472000282161980153883843150661791549145944375309459995137703778585808801530825754145248967287202176714934078286887097110945026620364088996665831740687850414457592927744178091140229224377162628459766206617952201748767563303367813470411671308960876826288745314573775704380863671314316834190339366213471852503196248580895694348062223932545439423778498910697307649531266246525977627912417604808612488972719204458079319478618882481400356453219016612377666669340675271447144375992036608636304662015080582087384160539247886483136298141792412980132517401729628368448927808529923343782927383672144465749141337405992437937018728372781134260547197566677071290888567793020612156130142088205363151946403735148451403879852866580600992079919815507415827692630619677998627724853293157250246555982199001081703461147718206568648966554598373803051199866037928826108736970953732829270345980588406487187881883120878501953388199577999338554651780445411413906160980731953187603514904201896349278185325582305341314852659890841803314876785395003748998043187480887176690658880783049631994729774545368407205598878702705073082615506973222572777470576128605667654423604861352651334337065561507822744829822326073213207428553324613238794325447042796870844288387581934986192834990709196815263717801643200460121795537186487294231417165706070330651879289739595696073802889288468157967113181820198247644890667643707307455126452027452813277658516196778061093143158065898936876837307072546586655171471555761234466344727245659651481757264272126215508372553091794693003775563192046867553790292565840673300925286902621884995669553369422607537076974628149060049592248837248727754541164306768988768284989144465535285258571885465841884204510192546532967866255849926481263643391724219864399375777269552412050062725873934424606013833208797783557036909568437838543043220866605643206127307042857720106090481776794045141755807580848611386838896287383028531449256911196746173691788397343689827332077695351310623188705114906176100011371291268670272023910094973241729953266032153728069681813345808372908446757707963594489059820719054629646475662335631150461027280572164442966881571835796590573733261567233506996365865774941603915444015994234330548386995648077096829858153821665588879563761356388643484239831746348457106175527764353597969512219942791041334242813262547092905368380389141690454877424671462539501124840698496889408277245641234098860262241740576082135718549829427450531488712452272368483428728114281958872161069994672600057861413258664816955091378665681326714541674207245669350238166794200968171201638164602743193632563219555734753716177639464002780641874878155547445643790916473138896345024642550224776949934607990899330499359158932489419144844387067177228084772951844673532346242685848670362855104457211829311293216872067718744292407888611454521402220172874689422678569933101035102055389341821410654992603031421799626447301823432922112929365473403409174676640959084199361573514078745432339983306634265261681797254976481160162767642940174764321970865516448709308737840869611696367271322202373003561411919167325842410415170789901117150692736729408477823626695594162782486238685957108260789561968625449580490884301892073124192980693186937945673867469954739272816859634635074654823871205188167070319600715071551825836977551761435900436510405015878733052182172102819612607367124775762056688377428947931823855474817575106909304973714911822395824844043994942423094225798731205771059848300222818112954228841896124566072625851172035450847745289453527006799689947882969207511705062861404613593923906913049218266773366374553257079876002090234776251244721953088543802846227274894916100431776650472401342238047845989254289535639579533709670937953041070757753348715276350032335649453895499069784601897882673015280047207333929873522360249622638941626303442829100254982637462821480833249219799688434760843294987057999704498747850942031218839765165812316165218632712892935628290964697889389625048064626321805338470033726340815426390324919890951342102444287053698792539021478009103973646057153680226715492721682964850414861774530554203841210972790007764710486287061164870620260435120662659259266582816200329001143760017032133158070299712472072434303972968770902676349827992285124487597892437106206230600701754612954653635138741775574924566108034037152073170911870575909885962918178137683674031031199286403212509401013445206812305905408575123475523421011115075169902817702893885919240389454588497338525953819168196167332107402363022965537799251311881518670736718908436487712285635625673366413406218084701040567318115668836883715448929769991927442454602230787009182933617463328079373162583587948971781347782300700888985247070606600354223445922955202299836521465280424825108268172349451746881540674142371018771930390097424389480422770522055244190241525175039989179563458606963845434422585812115612038209608855458934244888151088961095085328521027804338684230780072211045693430188078302376881440405564498802407088501522990858845667883316387098936356923444135463738464247742062559645261495714970990690519086554717394805709724497004566033263027977936587416391678478213713262150319752441757009191027725668483555697400860506472884672348190265807836970498234063951993911242185330076140759271468313578319773071827232371171418417504311458110750620304197467368635740744264421427749341473586544302805738940740072863175685117800115986743503979098579709619211031165010673608882937142892033330486181780175428897179311752755949215484821521009586352230916746938840737404235806220471006060045370433308092766607799315476887342720244603592173558068502074462211632462742563815074048602078180277583178774781587365961814005520994876639767497335695375861589825642110521770236783064340002013123276280745311883305055118646652660285600346710458231969380148471342040907711904469317775833806177497118171593507407815676672682372625349621956170131597170805574441152649505522670439677148373437648305035178916827111951901579146596621167375119150485425397625356632639530325760736715966043304255212158098159470026538467360421842985303211207126665799791469451473251040095535491040747550269350791409277832763054716958289325301681866129051231659389884180017015425836427532148615532369728292689412729903714343327181029017199455087814996774012965583966597987502764663135310296552027408221393184962752384241092185195167099406223356451417626985698430512659213801910340363481126283541954191558077167894046718962601739869208902884449096754770105862455901750800378478302449729441179437321116994371300202422793346932376250884341269273035383221185728453461415368791095295908092114608112492455799220958198051408091417781200408589094548096915043683455169694227059043329529597837096688710031807620649946630577206383890393821696927658907680965706214126574826562986589702225454402420962501150715617713898996691262713646896315355725903771043964124584657762703030448273927209108249622847554415784599389333871143918680662956080971846217873835032306855783603434506432837296754304006029000724810975648652756487918840267586404639701210194023977637640406158532866267402614930205056470682982615885066838911073010566806580114005396537001657515601657561621070184524760074120731839294217482929214642737411980161375514747958660440176020326663783402256059189606559705490487497768941569624759695972700520179813829428935281914151032163904296095854335724492126189919976855178850101976706704807243052172274699552223008942620738961444742237055298283464331677918939522843008729201095013885973491153874206058414688413326077703178533139176500708083321014409818452097927232055846499384804936422866077569135254591531291035778324876474122521104688107858570671681398420166316744978499363507574777749091611221269295478203814903806480576100108116448848009914963056638986308303469415871719491776077937087212145488112596094702349310834344116561454411460586537401388030555142507109614062168309998136099832769133347898771067032067955260877305420458936739750515538056138606832339919909238110052764391346728648915653861678585868273671558846317909905769696673120490294838844250148201996985994593198220409688595951957071724760224298489882351906780967279484460493460974161701208296731495346355927478482247080106586125837029520769725596429469112593489120592053094228863778609886879932344175930286039845025103842252832957025251979934368337697069864207450140795309385310223364808455002182010889661541058865375948029616245375741910521388818561924550788800505331418477255269995814711720771390842610870240456066222207580701770330030296475021292042979726420270272706145438197307975682502564787925038158389031774052572754129602646269429372668868836342238609359456708879384844071047712667619142872652524247841099969325825558497453087547244266336487856125178585756848371747857829752338413061125581496267641533678720663388983687360759447933792020941159842707108600246341893029778163581019597705049132249497123399350755537617112471002121707694541942223084345063371153568463595106322035849236921907266445388915669520760350925400539801449451924812711663795051660508824265907251487611436847156958194473702967976451216316439612185968966933481958822636582968599226981211492413125197149919248783479012960826199597296207291574280869820789494031884157720279237605517519913552944905854533470162868337706389655232443860711347389042545154118280132782043252763554705012574729938577679673175154880563717912850565966986979108486978490031477893588061289887798662832119209944061556183921268657713362055492211342320913984380623611244314658166356428339775187931650574017480574242456896119628992254254177828591363658356671978878164095943699054181475066247596688956244470872166924268642573262497950985281735630143685202984813854608315657299513339581784420990440230983127098938761087277202183305888852623410044419663287347074526204059136295379017160912210596532364499226225968475366440939799374847797381266742088785337739820965099732934767678119744712739683289757084756552726545704404405277127980464798306585303199818515421246115382796325893179056582319575064135328515114434372195726559574348008666948089096909176889943727840473176924013513189297032467451454186208887657008411278933829811234572040918190055010883959134110207459483562982920468656043797803494507408117548360030237562532351601445371078587084637657521473828681525411676668453404341712631680121824721115858248145842806310407780790709310723296149950443784805939580302210839298850418057199030119217457139771421485635151303503017025474828025142223370372115191879062839108368555239158780290136178343256233486688370240959277023512182394365718038294787961342484526652655419371246173160902077897107747190139400472276898396878112885931105507781211265610631393554491764359689606682320891584260958173772847445886332467764414115954562756855098182597364016378051696178802338007942045653561884297244908885029311594020333613563764578524738309040420708136615709398887591196244216007184505463291332718567454754644429748701114752336586749308891865364970665674795937353157915347566325287060016531201894601645631215059695508245484769272428762342814182983120558472793444866082323531469097401533152388423652579619791095193111423192282427995142206116363761818135181631033872256443462599838908292806091653973473816552255089097129750647086982413996458830174671926645090305660259637319611943929109671396861941458913571286683551065982768221380661763311676583611667911465218107918027683488059235752043476380343845910869512158887252699542076862785763899106081552468446285104138978476127737665545284887662194752599603685245294291406338486988980063616313790555321632585584533964766684278772701318503750568455592754473911804406391204847946587031337957877021189316116486388284056603180221542303016578747608271284779162411481233866882403865659877515080870254213472754554661252951243518556519901436657453755702577398575879407215213200920765205971526160050759851113806605893946857663472499009150450569979005993947229658707007976791667514662496428062596550880930952143156421992923630872471562762372048062604381949462109779805537135995759222332515738812823532305971877464230205153781272863877919156031561675164503531267647216069778018140771383092470130101173464765298663738130792106549504553045445141234906842312592273104704314323064084814062358524537561698727461537161632909920505122471041281935404406224155360770647220715120426953255937278145800524605683194462223121249338874983336828267627171023536391919225182917572666307627848873398491762937298125455211872921264616200473768338822682791147107846902666101698737215921609336264608102395530766822829614959662500782201302022132063953783285435802586204805456559228358769767116090728831603697541004067146329009114259379659634080082006260000032366721247213724222208209432188807423979764951595416133234354650667308569310649312520122384918458784418061814840720713232269685007761235216142452585497865076597679316794952894378328751725059444220586110118498848148351749220554710710028965682636417181407525528005812394454783352426896788060882048190660441624854333558000576273127602379671742451937059076063501088113036182998812541227089541349234682632429411810042663260397101766992689178893081240938451427551993311944460073203907461981074923112860505264979753522194998866130492744604916860527738248114930323806302866586095622119256970005982162276853873947621566498693480377965732318655958381286028213890173628058027967630658009108481406969044519643489130762632933275366223741074673368823822728033761099086801093051369431989151136804681979476437065756395810460338727473670988181252333039163149248143303423137260783540856779137943952380854327494887460865676020326009847489038229652019749131805417830089705325927410193418156926414046021586997437698802385925809918033180419655018393165162150943899771888651097343311606118444941015178090499214023711724989410876425271527216023677762659068115199495982283787074218156690469188089004291931300937224334720372037846316356053203739870044674565940219293785159277039050086548835061650065157068951483119255673522781894763931452910029927775596478661184182916698648803422102354932902486394032949732994955964928636878786956673455477553720448946607210742682150761576614103195743240334786886851428334700739105944150498744696320429010420214398340155156549817921034721898981541877702867818275496221329503193774397931379727640351402284638161074993468671203690750047598504591193327873077664110155701436336253755863440505983557758731684831610348233217733172717950596254555180071950320870396895480397894461690944910468702519910958244792615967522251975883989531422725025374238832511913031889664704576967718521109717903458687798721565102068704424512551677861416895417020918197700360852530326742902124012524546414249611650735620740804442655145435534583770872041143592235753000136515834494749740666176393282859419403032007429183399275960464357283373076244818921358528782586910656550863128947336626499788276205313193563901725326587480412910920024988032072283810313814504469435090609171098111871234192241107205606114130961939942242712599092503809871794019309329682157404929858435478050390589408334790260670909475752527500169582554476783416934721783833822710948458291221656487828400504022941267923391546648696128976821896177507715238014012326460351543097099636690138149666846847332313092465391396992487720412258240282849399094880912938761929846752453308016158995113296258009601067446666019518543446343488012952421613395887437571852144819859791142485670765669402077971859001356090614717870671735716547888362356160052095834249257550545419518181259503937743500339279779210764108335210548451081223638586070405661040885527032363909537658341296758433347127880541085740990371418725422343295717574740588913173245777733000170178529535721170123406354156363587325786518813298857770510298041393876804143193738001456616947849505916214480607322643223946446032554749199666897384452843044229014025524224549620744034243237191571654658527432266804704979031450221591001561844087990845949546982140670345335545579885071359407281675952049061148067365965145273780326041304242584340608587363461490044833411365167835629149897798974119802780307227070436632031639445861190173438685974096766626386054396311371543921634002259971175205789556673488508934228586857576886812160966792468699449204596731981719566814142044561588111204335590019223394204259290367419381615012301975761085547448575578277304103106432090377107151428818510617957031665848982000118670315333863605245873546168687093977688370089356728051719951964930760930880337914078980648954605729749728117350548975374782139023691598685203475873676947449881463941413852782854237053074338603916715153327578295945778065302040854277401867681436892086493950292798134791316278378156158637880249097969038766848902357730583984237288183141541603647055564674256301438466929596880554328705684184830758141599269420584147607001372762986820367654627872828163509878439847300963174149568190306342366469757607439421860152724998888673548992971676687242970251246200905701557761685389031645174073756243982155550667313014735722402776097434053331551080075963247563583666669712859591714371249085202557921159819313411407370282843454708666967324500818413368388071395935030922281371096362317851578696405996299030707153447672428174597250598017272901242973377856123285410349773934840738906550491031243649932092257141779338043207341877457646400312291965121866988713070210500048474423177438593728792596422727062210506534844629102423336986668203164061557345429944347149572666602242426607875720933542820068334068408798764546625246625438529077979661019718167485423740997175781704466162994334866088809574917337902849404973493210057320840191979984284407366134773457585761169639294832031558963021120317451292363804016381968443706212653249771409679426443091791212943385735141174318254665942310174251416138029093738433021712695839547083723823395006111857035264018536463832497579226126275207295150156718531412301185365318385669223857163671956511203074178325364522959238621041996175068045393120546604269363496763163501027501334971272364770800281472265251823389067968565946405730581977715640528658983368156885780946416673074903481602718449941621205690309025857329057392987115968382982333485297108653879004766168349705016967153543207713325594594333050109493706230482782222207758146746611625084745757048096587463184032689408467727692519371593003905917859111715077147721517184758832034153731209951436425471455760798442814219626602749826267646048889591919183133472238773599195407060539347493692350981048568730868742608097635463256836277651585580193734439906692135434846624185048896594168275580015178324525761593798289574218054839338302112219551506544957677823633499875221814363564832286803787335516832227488804954178905294124734305732864525676728620159311791229498807984791847090360198205997421599205263327683463580002389018377694339693998456155898195580807620938955418221824028085732389358093096906263755033998543451421669919281141153280749052284282759770103713774383390816837416048464194778700201685225764392275771550829271425743486910496374921957442507956438845921858681673932695234632779632327630505780984381720063793233350265366852975342912108317345950413719881547439758411064084220724569895489849221816418237281690065897753470671829333834864744377767542389823335262137549330823792667658444410051552557384835948441590372070661337058737461828407167601396110298914397695605626694896393620078102664778571743421356327469293476853511454843684746994925647207236041475322023804648062457268742780616625441712893676001240755835949556519062815102605301620164562906413571690934251381455131980437474698893242715039225574991437853239590239934124555290545396004663101514151566276807547046875135006145691729421754705634457452725214716557779241913875357022303606643482675491616401580033515898396015369142473724757136098788054134498784981254830319984386140789540331350859575437529262832922445167166142125298433553438553885189595869162192721075731475575598817252968204525921232620529273332333661289419218150396037265182630472294804832493812555953554145938180734082947764989836763985584336797815695785577301443574390052290282697958310552152164536719307056625314448626544813105847777460788933009891980435870608209637844670693421426999472071899223127950142996336902846948696774148792759427447476359872344779362421296025509878638548109877442280333633698133918840954465161261053011011186841934589400753925382792636811947278395708872715437296003307707070266848440821081974760622401173027132816795233263240016253671437574518832750178833662342680592877115888223989446604453846034388599511417948932053016458915882069430357311490210777673322825265867410832548546307780193438276909603068625749623730371416567048781560455009314741529653260441813863100758105609068327947657674767509318176359241510351664434323175867238541634931995701004323552123980213742128082816451048089610327600235843509646530872517138215283805913149715187309151315334742012744904322462305554283840410119007370212918036906811315445196468236934196159548092507465640977367267430026926521091077438834186226477438154225000939413115117963995971298204598519484665168979129704597114611244725023246901651142990897775662992278934056368707730863556583032249466002485583111082090393359163617947622456120953629004848427741180230886155637578108918408541518420538283855837000603582092717696311914733345409183222553986281439996587882713964842720166084280769246143759414050256334102617868260392598463444362772749943445534495307290334634029138150635606081304669963185585627917159244399826144502564746969018124139870075291817312167487363131883014834415579704051911273731900707143878009016933299980054322698317630628274006141238735355191327846538243295546390959639792065930962013655636341653522086307519255907503413944128768489969710952525174971506005784441538526446488053607689562934429670363950724253632632136886887935326650669423145371744209280304495495135874376910550103798347709185296680234640445580872873248297941095789328530713321127566015921443410012777215008760954329724021032357520846081149806155683670654316846437472786432443744776390952210814929217438229558378214517266608982948976844574285391081967690112620911751326910975287249290269843569027596866813711168721078007054208888678764351813041193699058966860291470639858454959162194818385947426476163503806455029522465609066864193578561628138168205701985275092068818134941084270421660919939018348599835240034948853061158297355268961927284753044019476605080501936710917476709681872565956405027345649719181121822169562742415428018727602790972136708030723317948691083808932961324392642113751120343256267964785611630406498547426057097122976281044843469299027436235395040213472511161529303135463110011320693836953796191791097882717580217019575028544034078606793438836454333503380832337576581004065401503908740689234839856089483346710412581440840313360566504543616006085569641490750097998106458067806056489399761024936300588824024079604906869203230990816846181376678750858928084765853986745028344708888981022874541954726685499893877273318711170631470235788546834284177776998502950840638358836696133936798712751073162503319453281519194036662081908683360688411281962399724582423385223507875026317509463226595003148218592312211778534971823115548177877397857197978744519361164272956044369841885689119518440189064242151563685623197788361251500853965290589148049665689028819990285316561693475882273057403846590652265049042238123408378443017779860381110233631867109292724740629772155206938149027605959167560726220912929483427589738502425378346280372840601075594455401153423974772661515483777842785610125846134315845396267167558178514173952312510331967853801454209732607553950721437300662086209559470124943026840656880203815460033404298864335843810300785218957350135725223817777059081800901291987013413329712125003040622819503679856399230348658261804464133763338653138559617184867102948984035322300870583460421515423913799786468202949832904727781432039903458124539564897140350240410673866795995239621372460366478105057523330261780405949975509953343094115083587746093856918241013968602353962786156247320010407597381822819706792391835862307413054392129073230410904203253621431421196123061269867873898982579679437250296887404202626817764534956257825383775566361190309895179383981587164949949367665336215525513620092637778270874017063839199281199421312477948428899335125254917075592118331186517922935581061865433932491885311212403610216622489145803140578098992914201736064138220576273630183417021673844540849887515344487581414215217528946641432949803698476575465567361551314097755900785723762342118429152528604686229155810033226637004253199555958491445067069456915494445777784163308640271284831802987040492408626130837155166572182590779625543921360860082976607281881747662183504983136972407905584204485821617188247946344888248668772145573942437825082012055032887066593250446338983685452515254618397172434484543080594182994354951630902305968414537894386518428803016408714315428554242971030025578439431475889950542819799519813223508835329076657521649863981649225710852916706730614247990935433086676779647050247026118618224917642275237813455282734265128393083416561831436693720403793354941721473377105597718343371720220808961821025339184840371871906695550100199019257978132871740659901966093589858185626960473643601411575716562880545247158547309214513287498081570171920930980649303013458059990776654702341927057968514869490794323204408834333135141049059416108239857106963894570038145773222457945929520934875829555752375667385307452093209590269122733386613287972760891991226330705913686924434599711819916990500467648899318976965780544650019701068205089331380685231339762100176280299255494416547999170313944680818039547409823906229050552809896119005377160869847222771186200878460150760761663707256061344479867246404972170901721249692879749876135867475113930645849266607033723367616036885754482615339640143012375521712365995163263401536266158305230994064816411068798287086409724396921999557533441149937730653041888874478234811145761712507536068292331368424146734360546139071196881563675936671345363711341836697358411866062484917968061243245634991285987575420216725470142871531011284682805886501172491433394329942046644116839073545121439160683230020504409887618859055236435269072336360750600691170862946064327028828510883424344202656120661338991598188713591460521844642009734672385785479676909235236403634954961059721564077566819462936903279774681933276887985069399404000803062250742786382171999920116177095865495151087597443606998662635598222315931313826596124401128509943335118059529564329675717714611512439586183850709998465269050101326568074820224978033176640112658504208797780366313264220578670639943266915861509103873235466824179915748943984818606233263984515671874128268596894241946756094694189159992556572629241572272930393552627973006191436063381390582845481819155825176036378215017227103998400933803632899001650902139013965354760901464069378561789408758019050218566418034907840298215142386092976325744202770241275583521643219194608221018559233116229705158747838855215324459677027698874713433489988744692632799407777854185180561219283432747290248579665680154426305984400551817805221344554941862014753319080430772852540032929966709559993113783914623352331220564622293755586374475945466659185238886485827500408529947496137957922914340518927498859690777629771918627455425100636853138306149863872993888842906198871043345896456675003020343406685219595840949407133226190113338434513824815704815615830958559259420742065594588413076682390632375238628943089282224924753813313170459643879170695394770354819812318741803268947025696111242580460669816754561507569388351889428013476820130689862670974660033985784399411674702076457621684931015994770596417127699289826764991941483231387085739224083726495402638181393158580226956423263103100965373975818065695287051761538259285842308456359525066150723639602604600644531327484938704130418670285164893391935708599194478611896304471141898083502185311587200416032880214778975890115314961288835383894620576974990722410349114503442302888524855015927055634386846336946747779092392697466089106488221776855056867405011979905251252233455427456477092710103554048130059771659957040661694684900472034881440838260269144440538395182084490371715584779917442112085937503999862968280000721937345702144103935638861036843133479988043397578588021444975057649866841686595499126490050616136874761012338614183359508743891767224509278915861302955964105394026327029112168817590906006368787155547840240842006989421464391772950375982651398134357597770602975148951184541953810983837822842933388988045423900587812023665227586491658377008911017978020144802264589616832111233157661394267919522145025332747411033645186818493448870218320310396184397858684747876042992967811036243921369121157648274840859968961791078433132769711552462693111061791429328816667516808168921334840846825939405006624720441749594600665886637261915122746037472914963756278139620546807346428007564113419857965227494065554422154627378176428507448128389710800474807915306782288010028668996994955310224136953953414506773574305890398778807024994634653082707667589332964118250192841752557837379592951134313831238357398892931576465259435433160663341717011707809377936677991631361343156331015129604891816258104574979107215501702728102787456065514570433355789962505779357403706037274422154442746297927239832983814060109658469186256098069599221885858963563119304400259212546910219769423900973803977045064014139199298058958379915835598501768423225265998281766155542593076573592011631165133298087211630382346442802741283664592801893060953711650279923242015695408697749333310265025937984776476684342479831658112625865823079260554835575388394325954544089685838869376377752241155094441508625371494374214668164956594208249894708632130727681667384011093100017937209256463467817753495352077036412882788080271103702506841704030114305871085564036710036892851747918021230492851560658171303110903897529204751163097206977064611547886225373988580415217661116681559714787767885587106432434439390841884967511101683332083573148905125873584507332812046242773553420534716270390553761979091880369409805337685883342693928869875506318610200417405935159095554599151707065532317428231259282790929953467842578332099980546665262059554556955008199512719985851976423855034233379782260761293457394736265239312604171274572546566881220615905150348625653779587657682287141759843043964893913642854253475571126258673972142799592582087974815609311538650217221596869723690809716735071311190736081041484282678909822813710623061379250196029198619097407547815604794913736396295342259314446757529461627003762927652902252620547871673903239189028367478113575213465521798043459201094549227083582964375620241262659639183430690883712322033085030602711501648864702738674223252435350705809318444546704482621907557590757646865769170683918483791997910665590936219626996756391063686936024321068751460443972482061592303036619858997032872961451728410915392426154631393458977192887869100291446473035320619604232144335580353571904522095266663067252145075249331935326531052988168522310027031416466878458365615491081320079827955391677583340999668886910730139646391467217060607861411701970112410902327903160629073631879711947678127733120498585211109374394628709579097217265936988640736076372987249213852964477782101334455507225261303189062958952013012606859222682849922870444366622081635647170450908620631010388324405028757836533163886010701375035486656186571042415407707484082389010629563583682847608848450820635979559895901592097252980585582572404445738903607994932777699809729707181786491309947741771560040963662859269549888668232794428395454126651424071590630866656125532391847994043562811842509710899863080895306689352130145011660095846989985022152537141654241113462275851890873084501499392719007056600770528649520318292354287236430851480483144083280556801826573345346682448090708102644779823781864926798675420372587114879406487998938141863926723213601415505847615145128290135620704309348131184044581130297198369991412186750662377866120575346124711110672830904285919766728727756574714234831668584415616627808983839313306344818945760727252006044193139498713735236484002653284906731354779522734509939987829582984066185169579342554210857114312215801336992173954552088459990471539521524701278568599024562851233010987163693871804262849869471675051163125159056514534365303582922069238094781328682790660157222444188919465969784597303479096969086825779849322523088755150709876307026781352992729011450438529303328114057987845878760754937942830340016534600825502040315949058472281855145783548884392406062491814967184551507856472540258559862524135680244265547772493071935610528121984592539402268174778645646187784964550117975644698380673007590878230039574082628942483699855733837734542423639691073783204343529789137108040243239969992871493037146793224557003691845936675917135235831835567423133877619613128330441489646362722516467705023673770524068748545682850453619923928273532468062212610675152271396564817039393199712291259989987358870983770195013547696664000627731732315700286457000359046086243422816560849894010403399503193542766443107591897895288100883200022728040036435588473581493106428798184916806504272052524389017916349484627555610817001254345001917371258936468975609365814225100217526258727397814082389923347905753332913776816446306007654772345939605452405111760857032528950240569871642211704406959318279852341792136951594641962528042572069953743268859054124989536151560031841690040554210178229396665500838224571613508694637970592494934901756123658245536393031035985662496686380835118215915548394777262840331838896920383003746131733338872511310999772740360743844530525573887446461651506886917405000054417524736728848603455750744576022519221805068543323887062196159187700364074868176857627952777870848902582433837643154986101982561976152460538871402848671661392366055395886050207813329957987735046997357786794309393184915380729323659906192327569826566620087348827016606372657311619712603368446231838557765631362961597725474216839651042626011478474168037307174813421061114414976786158588061737854917285016095029214781104493019744598022631893816111294917097987568341160156925196111926185902181113446468510463603340070873537569310847006398182387948827739358877474479852423176130719491700803489409334415238550364583042817739234190869339302452137821406851368003825889842245162621577162952329485787749547383638657687302127501188707067338913453148216253328921943725761964199145963410026805127858588739057938549782943480535855248466814848201883740571952910800447193809853254601739510019885371773452724917869258295491671349557594934952520967088234360774535050064032171576097773435140851604633740386514027921394735340464343829551237146496538908280699472166313952017428293733265649033635916712187680811215662257289260209926586027061343515723290389302258818737144237069461241246311231091060267283101377490152450462837693657241335619551073029132349352860730457635084082355705588222525929885277564501633631931146813995077557075028635220789196794471590495797699738103408205000245728362322341593577408500827970091790100800453062560516511369009185515150490501641711043706810327964155231355523254015823237187940996754790236044953324578458326402358000569642328874068110124021102303194998932972347734080668351702543828669978983322348536739950660410156739283486287916598132896263599793381680575369202331249360352213051072664136943860432671350176890558580842324791720329451766497602570337593662175429517723663712950041175284561384090621314621573374757749945308310666038271996311427033296451416098297046385440814728997426497081739749952602804756833236180171695475560126775814577185997498322340736364459564078685032809180343602363299034828546457726047450032575297495169428321987481654442335256537402312842859725677036266715980302488303418507181553178708088433100481134417926472135384866936098630916115888297464679949401675065466778182178555512622805646171831622600117976360147389565340975577353908861729285614433947821403458173669257127500797085419120227612307399094530507168358990602427488190763843240885843270564602032751110351247510577461083293691507191472442541367126535320483483630104997636259445656217885680632315380648757453332944164567245461996829886376812025532408284103706940546691833325055300000342147959684757821299475294658473490881289218174976652129056041792619154772329751114488350876112255084025012265046039281571955319462219847367997903863812308674142490233528611724056471157097820938458270912666124970425709167311422214516476589879932047421838274344147906453077239110742907963687818008912750777780875430844942065682983328030245083742110895737915013342482136209882080389371676372336999033797404078614679224014795047411743107325338348491618543319239119310933933118042804173747339572233234922864002276895472093058347810184132656710671300845636714097118545155378050263232088340734408066844180652308541330577783635539820005442663300393002466639575032597654121062827354171075940359652667220142936351449094319412743031290803139944781325995229614326184340761644922683383349844617817160269264822679069628439788783058749604538249372031474795420052188258737386481339117303247512925589829742251249535589970246431470379918892459253507605704312442733369845648306650692486238305945886912932782110383721559942611396397473672619868136916640091343103164340637121768293593117884748569636040700978868955026704458854476675228501902967392436979079770655349615045548502762012603989472807076402826602762260720469102893444805447424872191051784202440778654230359724569391360444341754679810961048962000440188506608872173711777313479425466056366239729703534835131749182994099660724518430390873480169930432825365730228849411354921590008669106492154264018305610904477931546580017941479241021422876187067582980073109806810895878758819293773640581398492627815709138388293743076638937027842420557975085467302624940348147968234693149366846556424777781693291335296954431638313074513922291232903535848266663761979097831527094889576799209758264773451835922339356050811340362902427173186037423127180127517724189615945433950944831745557800870844493719401435078436849553645057777526303567074217416739453135886223823543949809998438899067525828497901571216968611753357590340638748010356439328077928242589268909932741964723623108680301784273706211897549685049876087905947120245566462359390275977754042092755638991716280043620027278019696999908218326022841293059977003740049750232135656077451995206639946113512297055072834087758027583703504714573173058816624212448525555007921745917291875692287488897248385686066565325005476628853840235967311876543018706109246131602061514122610659314725322454321966021887374688044157982338127868561612851596615669505795215184249244862469318555815770398167924525750448786471422255466329656881443537727769563775311045740449879077445416939371283022430234183308793130180647286833557883099859710868167524805754234894130087166795481822405318703660516244061594585093339260035751598930685456755577414585520505552523734220148467750360714327193077634015260582508558042527945477529380871057099789133889723928020605752560225703230741229176011294752547922826293606195530483491919658182125469609175062458982930092884052606266127058429345607190428409921268152110056652655749043020877065400716065045080399030384130222906262237112618557255762782104707370124970963772966484837787858872380964418413391877086309206412729656417525547941885839129158098524103207172180372691137379759164908188731053753968625263822786241368462507102998290047881674129462206858629532914914079279259650172403401445197307846274881650464877444849954380851916841175945907675176653877827924017293413360883881270022240382700617045228438427008254274810130331717162396456119325069778478575061212929671272018689105364033939142371535092831262554147639077692820117567841108221542265172597201259134653085615837412073161750398019086126884292892360083834678187402254197907539200586741313988606110173715157412015265208745988597814880738871013892953327388088634804494184886365027942345837951226324211795217413494702488231244079664571117941967485185847090431915902657199052598993449791689593914997689539151736924948677565612321934934351230387201142289341949492394635709879217695665305465080531026259483663201634652862973576528022070533319819443977407027451050964575126383967185893891286233460102912586442491873524347643695569241651613874711407509344972036832409138417389317232747665666729064186193431409401914720264886447558705777605892560343726346105037630291402056506589810787401682758358615852991618203900465594300840972413712495996557349411081670915154659782178769577861687335846152020245746239737927599911887737937813286321961592518663471393880147761189324510620926107819874299735218843261248783932230447916105809179012362763383147364828165691013895363887451280828657003370858804273310203862868790631237408494164903157357663367342536744064574368606214046460240109412354298989330577994458521426882639614548824262930032734374919788263930574155941810409293103446153009436481074793647407954315732567103982279623809492916630017882435510259004276830130898105045741717982772376755491109945008956122095176342600008978248033625482521344572083395580067066962177242432197179656176770732630761518443163402878451908544202953388841510099305539911771774432138306822360707105496012207073750514748557578380197101862089578462308162553748872005227416355204854352280053204426608234976750071477512795850135445778285748754009359943502874995364059588428161110661590248590066171290712038304483070327550209502982027043249192529701692657391028910133760754975994305126591392183423111204040869258190704430936189447585035876292222529518018949082422440427526216906607787683196355779823005502401483153445866201018570664211124753545165354557895350359198402487568523045392433031688018239228263043848694991138131232790278286784273172129111495016685473426370095451369732679057083399319275784702650416761779445687080743132531623273329310026792153901799421632395847583751611862796138396480344009755297647193163043765502516498560740421560252648218782722817607487758203447243830434165923027581732990528223995435949933414970436524730596409456259261043907860097320201880994947329587913005574419015686354469860286070785789260078165553761831609728574151639024128216281889017925136912549740816179687248441771648551513651321789396188479667842451582059849240813996308617822795530608804532050856786465898792576377867736357168243362980369325293387009269982405468786015604340595095945962690867949519157261550602400150447723047333591680743840703560031600390270034595022457209523990381265552007459772748071904458049360575599805104148125229183788272589991170745793370974100297846364865578200718505704610647083380175682728228711070209235866956772314088429735800423101151548159820241879130124571998217989881783481537589553732033581821989015652269763951464424158016973645386195864371794929101340692218473599152934752265994878230538025284088635689388345502251274565267940437044385682387844105770619733773298309089080615855469212842566768548821386395625469340689978405422740661661596404994901057866339031465989491745691842623118779973495397773926902051078181656381697636245044472412229575449106248376507989195857300987682081097425435420602533834418172310947758816473905410361145387614978087997781560814737590289885610734987602409397026627999986391161551685825248560399713100764046400059520111915035418294009270156107776587461944000499954287837182145250393255632725372862541752942291508762006899912836519161567146455186005626552544862509269407147918068699583007329307981534638954081701781170756163028217710744478129416075411000666065164848627589179719350635222787774504815926330862346267821544758407696086430929264683566880885415555631553272952179188570841201905611143351529142815170090395412006875445616163817584666147888706447463596529750464267206163141826476091907955135300486392082394906641449695425299838711717165723410002281213273167361629666674051057263563132662763293277295994241940189751786829224585209255458728340524761121207876037323744737064825721657525264929241446704348372053877741662067272511346100461107097698018867559326365355264159044575925160974071082288459539932256858631637474243829052724074090929079644561423654698010405675752502928844179443716009641610128417173718539846485510241792587513766039328214408123500441277954611456666717499391550017643748849797390024692400477385818585613073437643594946111925764698649581301644842377191905385067654004643682375888279952860032500141709677078554108213441132807945450494277060499593312931182742884520895101490450106796492712452214911733556966526159915063886699171716618990928819625465798486009232306713480457464702899483547715133669973553640426843387779356034686690101310711864322322399495516948932651557359283939847233242649091220609578711083218157982904848334660916961639124164512501623668282613065477867538931458303484531671391374232772655241855754058795222184558397306673739757704796790380670451216571395817497787114481230970250033645965874325760167366045074029900304534345188055055918967728082873966967310581242183597421890616821407737555560505460209089619496340225750821991549755639605431040754336244598607615536538165547068169255721807357736881447768661961121632332741666233004897022883063690083740333001791166648180893629798528525424285767235227438832223053612135276862888758035824687665301571113949227337984470843347514643026586660450749280721744477034169110263483604807933778797619956659609444824533322909635104732594090439131120485191764553286275849238187472464146933327272234294487197007395540339050655698225855551764575981383045277037624812472836858401382716590006632008901462757968818284375355434787903193016186215795615797483730887268707060091779563046935160378371751160937761676957836033840610236162655910116028324692172352139230373657198879169324702973734233716695922970996659427887485851583080269551459202302256024343491676531509732655207818439748467633301770400056860676566146915479299581447512843243761812561886884035955408023823698622016369535493541742610189805471754675110469853551864197768345274404904476479309649650357127540335830615269409083283855187350138059056205672476906804372640438740398336608880927707863471646559206350268467363001439988984741388726910950045087265178335162684227562507739484731340742322321436995266732483192059252714980026447477316293447660252935955108434883120125277022839508668629354986660903203672560741631101532665928793883490797226138409211080431657145062307179486587079891628782768973878600412124032163615292635479626164384287239850575880073395481203507118062066139661301441679497731014202786460721595313041743947873794457168150011688242275974199467382941348194788374108014254337009416962302930810896710875742999542148912131097702883683913357776103535142691526277839849616909867521065365326071863246713899961818465979875907188487044697772893976244038502190132317522362896910536515194951089824814671366668567844715673070507112591253608969939834742331872934042251899417047760179523052060013931144550273145215340076019623798097554272358929656652804292337545703831276789220053012703169867090727934274923240120529827821037327951313333640977499025987471846130366603883773992869815621066485395899426149281898488667459253904099993606343395884862160078276860052746361206562742635755086118454966649617049921317166318317901640368434982174289633244145232604149839272655772718436194785225559498614776390002704225606381701299346136932979107693734885022959366320657693234225534813229038638409488513316873027854555516760037408232322654163302717350197034428538405038827827151723671502751425604765064335977588681666956001424076330415732195899936977380781790994423048896000332536284931775955915803120685169866392835672969946074578969813926902143872251054365193089601466731136117268094704132004004154566464281628164131115385037993768898271491641436486440108010155095452954146483696721913155306229887327947343447334608631649452354818758007609710304064069236962170580127043273364473237128396372491083620772235784796536468574843679621710919143021274017752545066834329992582647897302787125387266863757795618279486397594509829148503586282030951647520463768443850449353100049491217544819786821746026680620383659020152976224884562210270621524992887807249716263397137076859417479949136795760115195270699782108235845541465198588338169476352812447564919656073168585232748554543644999228111718007779659018694516084287621729691468315212857452505134246024002980825632298211087444037336348222541349531123508674633842491734236951843151517514383861394536188240428362635336373033109809823245625949065716231240350302700428356880000894139864991717911857984485387005327258117217942141723541156445661350854076198704986724860795093738279165740313526996370930492212735634772884409721098214881782653421909179719285294810451377577301463257709026071848434931392633844264593902426607339666512603678904984721393834347227222915847289312979429472839038714177470345278554171537080133428549321147741659252220974694978803410132122473669581360266516644081776997975490320590308952930750207247613399722824804788778066629252161706227065754080528430726181524177847670446809834020061818964635372831037134696525683449023542686466024239893546429829265619930219428048808904611156896734502590605561905242266324210779590636000310641979804884295193147770670362539447211736632510082942941492253411636443505788161978314361552444124606596331210200218103865885973996962121379836788241288587465401987226621496092626557899233739652798747575317077130724059459393680738027746941607560938731756636499191628492800701061754673782035401128447721358317637282461083965340581879252246637607774084587083220187499557101896250606981737333406237645186073754877962662274121849391132037045845911654908619864330223376897377567114915898560361760156000074252244529984823488667417223082930247322154590447660212053110674863884235817172027166500455304532548797117348134661499750449505355112705996057301988746724227273497218438368813793342730722808399142777433814090858906179420080049646711544122801434472115581755646254285901253794216859367142950849443437894201091606253742780969332541982999915372272341185897731248014376021778943817366998125959759432800931170778973763546438410932452091337777103636076222357111365022828633000666875966948264763625267715381792704847861178137674685369717465398725896673317234924959686927417524475688737866362391048631440175914689003069356345404541079202534579509208811948049755159595746806518778685039358299587739033609951048483506668554109091549189669329000466206980914620612060378412761628682472837947179920558081717866424877831910771442974240152405983517943144532851606700739748884955724790837423454372336539105141072952584292049865821880034874642340218147937139161718718733653753538707007439985904511609061410086323770802028029799026775482487403027280332605640025169969450194193995574219847902164540851911292302375302149762245606073287563691715221505536181207952885893681733725850690825845101781986320573311734589231398703397145650382783536696468196577269021941065999839479713603221566890857269158220024044240013504471386290138492419878498438997006364930953365563012911533416568472318855020445817032071427125234445307676474040381795939143741078913909036302955392690437930611021852788921282799087495777773483208373978273316792785220493579284775435021900030280939217800847660848192692612466105524407796019633163596961341931942401130554674854661456455431435438725841275333149867529108149248032180535137071348789505743144101593837397199115227824725431665498491013554145821831631808183407743538792379582856607534611797819789437055250745519360045401705458796505677456987726017931130325129195142925473981191572574703232124594843159526979059484875194951929301677992666529774158499559391822995925213855201021441403372205966327572468620667170827421194111736678165954392371087211518200314875125120233695962908791428289229315088346647844461486892743804403724402739529984442922789795949087715212664598938488879656478316595830963277239758308084241922983559011894212228017022300302340759137935895895273446972284471171918120913203342793124970696585723718747269716767828253159244749284457236262695141379202164115175806332513347902898078431719749262119473427535082417580185714923165711992629172910194217221918680082652304716344067647309152516720573952792139117404763237187516201840538498563150149146957981415967853147202512639917990048679514366491024337420281570907597972761160039527897140207896832764829064170977144970042627635407565190554923750074774654386711326127398704185049202244549826346134674096514178480033106221892353616367775459079568166606493362845991152228024418604062639465222325724754167267409010533778365733680606326207578104511241901661880522648238962966802335530590318280256443310936819257790319341960381256828248075713922561248456394410988464712810072555220536165242678881636646712900547923955156309952033869651512977200807613960065287078280679503265175705626400095211134602322096312399858454105099229412421608046763371836834568701443348662853624320128915157557480906768173548532118687654169686126791043842546594027158768431070020420797483099401211357206755318476375674067370573967895319957947170690467857882038718676699400783165188367893980538930955873871798743662227457266972187509852339228697640567144898074774935708255973620850005425745262752314874285398301746559041498022118530762240720207108986747511203427529195911419316609463481144786847552469899503468853187002434640567382915754645918452315988646884613653824111907932726604380002472232251616874027295752582465671281140711054291090385265868383703530616574592016685265735773813885978102720424864932145409568408169417442021274518765755910576682071294995745789404598142620863492488110122478344602283271047229797124245813244336394166004500876902171744620745080922224295330862292233425883938666364116965815471040563139427474115882851005808478827766807076475725448545379924872739238488929409281846910951987653865004698874803723778101749930382721895848028201690950598557256319902549408946235750777774813294347756568707946959963355997866808716323123683404689959328966197692419105392222532476337656733853919676669998906864600756483525118412947680067997920223522223709397411371596277940120924701224271467107059663321390720720517317723929932312410498965807461921354403115411346564550015379066499988375027900296985506020983408868197776690708204935008138967049744831075360970371565223115338994916362996979438338830172120329428612025802873354522721561801819385143101876028261505628260720256712294207003845748944121483607213811645016516989002212472888606841798703282095786795983620851247512684880214571129511194558807149789200797650739220969975939010170415949426385963734182453765623548729051373933795313673780494802909722158346843881656654656801378648022165287051045887408324364981455813011332651852720400983878229097719619337624485044754459105170895550874762533212711280403470508765362723153295144233499714143986155497101859895352662436081969533847313332472910813062446784398016969397777542677336289990752725639609691779486611342839618385322862937517234998512053095301158097338636281666653708392208153515118321094577096938015442944517730810551143766230588781870699404326235155432348342125067813772859167062746003883135145271328196237282362456567524712740648432253157346061349214431682062967890853220914235930904783788781680710558456264146665925770483770109450079821934912831531435584114564079033945590335568715722077065036771112903595087275452448436364776668427683929314303839871607431393378979026216373377806050806174055224905635594206539359382058482340703243685082111978621200912338118179613215380517212885438476820089750090507308970034175213801505232827677097780880333941982154661642161969633740653654370258347006998786541643645243156745987187466436259883812003161881830258981623850987538674771335516221284767220874698150832961871788092337533760847143631569732732923912727051441035762722125254391831128570981559430632371656792006523265920376651285831376767377789358178691824449516902908835873157658586848943640614491977139034086614387805193234197040635737287034974094851751029374066102945043821301264471666535595611759153746381806803262199816996812781092029741691830317144657983652205962413204408656026046027030932408276327098967667284819885101758688301962068097151860662255802651716654599981656167160054789911503841536118679920616764046100866834773228305579963757715434397162979192758989223675340235111087826616135300965226786176379427045052458605591733075771775451456994077837361211511855724089331486146043886424163439320448976985872375391677109230392348987007989466907875274273661655037651699177239858386560131840015873621052806144344830914440456806609456129725193776998433483360443972471123646524659416013616153791110105565698501049773286248861688682641546781784165679291545467498167157259699547165898473626226374645046442648186231963366975944868187640670904909549779441496180905831819295615347558662013803773320951275266482196825461452380361945432262522555452289253381415765315376278539532824573298680597662076587302758369719204492376801822060293072009480590084418359882310601029132239565528490611638824939478492622923732168449195007107497120666736497676219548378731848016798915704694196447351039092745913071377848437700521338372851796309195709758759173487141644293384771495463950397222225065531568192770504243687152400071745516250257219178540477423585976318489352160916634975563255295718120492106671953617440876617953793467025797995937285269017922868278310241747126118013410937166710472328727846096142845371535025605430727336742380490020234587531403800891509824410281118186562720807971745322953651556988541381712397708151059804633766827433518020335518485058504450347045047339454482539840177818484973112788885616842203496324032369025952925662922216490487088507055488821875959686621539630890221385464267756217470622733529106240328880918486064690912876364604904841376049671696137396599981280339657272977085485425669065346510463493882070343067466773387214693886027551205286889655950438442355725408145888536198385025075351181267462531040277925325075476218959141207779917899892915652435026514101608237575317263743392784336033653031361657014352615521852705726311951101231470043584988613372050217384851815808846374436357267849289339792108319091806397891901520147773511756091882261395754030683828377226423064867068393372461110013078607626900333473629501532916121884598085740865739437370088323247577107512151181444105683579363848977338623092791431340874692979981195761450359335057584320688378138739026490343120242636369156700957249333537857344082160002785428161674372930126635165332518549475631271769780631921926746258384530173475987590391973844335732773714566584467155798325205833325210306235162359582566188561078246384460788519466591206142464182812037735008421941437749646372734842119751090268775343426061911081815473676918173358063273357153036663743791633786795676347531176178411849408730516395235519762105702375967825524102031718926502040244456261208992555180252177835706521638035758565452147064245546294335870281940173872296931432446492038374603049852156885884635175735692011366034300449457357171568999657583954834581714718015547421672852094214727659954597358270131210502354404361663613103853853593963823277519446984284079618568492789850630232773288400778543433957179921834765042948331272065508138060804477183062992526408910573115153399623119127181187305728686449238793421465387989297539063274204640656406225030951999181674355261723292665012990927495297527191625537746604684340476190151688815085650156034558464987819106656212962236117925016322462696910012927459008501793778886992732156374794286554896606713885484238688287750547813840844191421614450662440575115792330135397351525231322483895793803986637136797161683719660585531715753487686054852134666340559830238200774103695513783921370253053355838388404933900181225982892001491100263341465067448300150574091654748679857620953935751297136877302231368867970841971070973230939056685571871428607221791961159968296699604175402904598426963685699054728225433182733327356729859483477016590325280015336687730425715738761606782922575019613933728972102093697908952656545564039605065680342330163700055599585032924423614663540497649570954443733591308939126510942597808952952115136047645999907702324972191797344962831011833429979058344294360524667574628771848034705998176887952494392983710487237744984658837539501526702597991111256529968234677349108473227037819277803689288258670067505905971262203301913877602034594698712545510343605190947829917535409611837618845038659822597018869011876519894109800965675301881603663570112706593260143095468715533749624020725715395579752618813626256077479602682820566813022879117572798137649023639502083799883087130208581112782560292155214271185922828441616215988110217642856717948354106048115845578344997907727553116593889433802167401266908365888248832692573643995636785587963343016386406287165788818197939507682922410291502530132280036405685865498950022389081473208461778079556149257267935948416595460225643390454874543819294657919450757313287146094670782581129939753257328606212132047103586269624924343615032397019739464572741634424122627121631110616365894978784470794819577637415656817711116096516440456822954383850134568568733228649838467641589974370832768486588138719603778984244939621795701950036061597021818948361131995617021758926480772379655116627665757921702719046013649872972983112260302289151145727105689063854809419008797757164006772178343809938584016579911501794596954405694304690137868883306808873834879089672190293767865307899667297946464184932433578582896002923349153302290350678465107767020536759497980726578288867732267721521899909510575541029993811324698792641255501986284182607531176578009262370531081012173177950779706834249668269566843093436387085620183568271985868788815356404840249910560114497721309639205457022524294815399123852832628322676206227683185384154717613582326247886623191830430189040668063577565107086455791871470614333157853731039547839763273238624643817321893754473971734959070762957993376262877418308020190945538554135843814768555951596775755471555032427061854191242807615670474814241977025188075880358613375363841915813174304509628299074669037532609144280776947669611313219850835640072900122878364840712232756921921686411075187146525012908630554514001858264532145584333451815519135211520542398805416386978220166529858534489327782683899723469159129903047625589873066437426356157188241019040684336530379577865119717340122349207025375161196001282091493089659218609654295109782399042492633868969405679948842534712956591574976966441422791612815965766436539095659923284919699459449780625432879758875499853819731813891294988037692783133453602916980890441073437189369016743174013349892156952587989203772410474982463011972107179998924543247321827009857199965131321332075983893939794734759697216904975228866383657001746516841277573043981127938127371451715388772852621451205376915933904502405954159212709530711128749042404264378113594294012713472930260881826058902699825018228697440987526197257747724296512029706061604307251282070127298189788542581041924046993689438163603163830186213014355952173325486961726785838870434566917903821271744612138367931653471554062221415879164886739381741232515598050309978090719433373030867654759983661482993267368646071708223079504900935808692976957462339598231807930206340048810380756160021292373228136163718872037346368372309828768504928136111326531717796025986195915748344335440124470571237080477911053462731194297044933430577101317173003437533139636118436946054371601777994492138921336217851334553065986373639269543410730086515635750916728912862226306484808550919517787053646126476595559549693001126506785047212729645102776813179684651694298301852197414085096716431507473014817105793862097926583884401906978518631974417755551646720027599358001164166546812941646114990398250163058222537660124535994128565104853615833876603176853825989977776185765289616900681863593360592836362723545977237517004156721732438293815025952416815989067324297745865091247099647314780652909972128667946910307873482575758765261170767090607148284641151599380615332299810173124759590093621473808620721105750770695674003856726744493361259315012929538817150620845534223367977542133641654775206317984981941183675446917602210370625209047604430253124017782667861191220259070094526099532341322004615224051852153935336540986530496300889949931724118023912234770282198439068996126539620998293347238751930295441178823287538703436063645550089700065705942356097633806506850774844655378341672219558211389227956395367924106324628150967868298129091586292399877839677239121684447324752997319735604135930899639518435560609438924543681155402527412287732099998820955784328959265918715392028054096183737777494734642226783720392309103195573324247993727593237210793302273392623446156502239326516047089900106629850763067923554844617362048089286911992586369087056696718299494406329380514252004083042469716495085767275784344651131651460160890420046083151124601231788108390885616278586351276802523999475864538996377658794952924230970281556281536453348939784232558074292483498554419097564912234303753658230126275466473350587328611134648478771828042622858877761293533768776619292827156631459116169034545937197226738950239022241712322288199696093143439294662728169785983455063940009689710387292432590869063097332058873451404401112204503185068132268268239255481971808774987709872943251824778694292301410037521938886306708802170267903492115499819335009036048680711815753177865156385140863682624865747909982425670011022475572280073783365980576769765103767921031194299360506444447664243440851152008902540455541250809508340717464194855078339504434293232359677113426156315100548633266942118360504415409360403614228663433673866167576774526542597849243475801021726448497300691986848863211180599543210858777910845284138738789051226135293313790598771523831051079132593793020736439933295742400480306704028590106006452482674871759477599189556912008627352142063617183301499510180807753469218018637934715534917057650891730288771377549962405272906920244279598821071360245759590735529302686776664417245109452161824080230740558207180943130495039108377692828242245252658671621066020907087158384645357928742055214384802896547025188985764662356393697521583216079575195215260077130427472591289341854551623624046842585942294176473691180154859555894510366563095020945037290265508928245685759001023570049239532146694035952339934917813591350027412303788150113690675725583798837993016382156744696666744993943053885323393094560569316543593023372267397395911902730961832695879712937671403177256448829254249962489022672166645821154998583296758876253202881601587895178406389643956270674119551249626292490151380448624842871871736166623030824607131742724717226669489234132553343112018439516667392053037649045279061737145018824567305166271079172300867004866396387726629555530089300932804204010797296831908391239738477588767462806961157405201349770102646234263763936314058798629905111351617094869964346279611505357441242124964017695961769177698737941367663259776850044028266748538754069430276456790220765696657743289647695804523217284105290181422654125759888141571028313852059255106258814822255748583260698755751568135644167258931257444747513201266971568421934655700705644872621751067550653068729067830803121818777253968256215438654787065803302587772887797092350873878005686107131240743358291911283482957227421734276534856832976592102245488885609129841943150907370836209292504426358266462097817282994704838022306556667778373797497140567862601335923953871996971373099731475930648498499464887531935821468307033867191645963271529579234008951226736141997902087279360460627413190094772709514121461235268218408086459699297600511304829929969713436638862401204671222698144527499183272380147231340238610077602754103563689941464402640574384740815062563443263419754325543662883449855193002400631798973233863800081829045071142127616315170997186830280669965587023039896193101203055083012809997002433724136762606717618242502087223418641430517725844239914292273372584207593353766832911521369841729098390675929245860539995680487657014691417018914894408936837307135885901819900876814570149879433437290237225646572257437336485288370425898443462571924418643261343404191819879707145463742184903230468066119629629517349454787778032536322349158577273436324317723337213522424976999558798967957924080079303513869864818755954921900537021533129318801896559293348849950961957341307129706660976352585567830517061144587247265379509899940063236100219118745320750971330572947812567742324467006069343012931393169465690919802648132345859139147584350206865358842963523670885263425658740522491345103088464242149279259448388715043210940280404299666670010590510103034624941825142357530512419021592946956296605146145692706822625683673297546771803010695388398668020609842689703949116718626337264369565522798360824440133047893924208975258971046278555196044988022917109690520948807842952218781835697782776925517157273299228197788174566239923235488731736129959049398158404983212736845985665814487899796787872057568264473138535941728662440120303657057541645246367040042889063644256316801994821562303728888477206749113977376128847355714578255253652296173496918186908102132105911642643913414710574677551432562698258972507821451899157247116144576449837865648687992378338579451291019097957552902036048977193628907672889616103857340297059574069967189489745201545104412145911065909803582489352141847026501053998213045469801472129397312436442667167098109163739759729204009209163842876401869851577795600008400159734176435500076397873497221571440582312808792812286683049063425359263197906833713811873656635762117800850191856757164178745094281390711055158081890611120086773831864325968278139445408833233740157619067078282700580368767894666108487521172237830156179269751647165694342968587504779554000836070899191762620857557321154737083556049101115085831496339120377516120074925959853844353763348756782965114385928195847361278966156861185484312063929289966451382645375054708069690980243737667487485450809047397220516273405240359209730117070983534190060211491976368271601968942477794754248051165502621280109854494514420826739586509979720417491678209952261184698573781876412318487785042411247366430485822755792851618548315862797935202716095304050586513471337923794342062987372226670593676841283049448007428234322783913310435815237966474760932253979466961743145297085497944906800469915559557231986771220885925591159398017342709583756841457165581771338033605531593103904975602698173143398295409971385545761020729229915485428029848006119799886361264353600078228411367600142466752355805147990815117812864721765590941659747522053731959229639255863311651591546667900016697423594164775591465844803169544496628492255163776097589615821531094308569533120044502165676958364756789535114317263613713199598010029653137143354864610405880405843111987335097932295851640358593213154003576724307265115487930273552886083182557939885581658880773427508877202694336195322789650939445906260598769740012387594710918389920021710398591902497660760979860685048666657014703207315472899635705228743792960147430324274908977301372996937046370162634959498551774985691363185643905519430624929428379320631358466381381167714755011929908650138914848441421748070801254479701424808352692576181795853185763367391320701330387810079339353593722397043828207339430158347141926135614800642942036547672899201288982711263324429746342975550998072573707463834626879999066353505431699122625706390884921376587274388589761139583088631040597917264034438403489525094630036365908385368924313799152859749244921284398509903999260673839193482068985564512538034916174638691144701603018484141667443565176314623212244502613615786669528816576680669208041300939173023643478976139792861187390917211991446834745321421211691036545528442840738520906353178316718995592394989005540334865636413928551859177723077056238279024424578967404903109672521884753581066090310266001304171496415771278622944252323946317894218060982854426295563516720525790866708326193680445406687780099752022663227384351880791971454879352215147391514414381619006730872418135371292948083719021023998050544109594075099794529279683070249045915319514366590106395629208939125623548283354075195957704148385735609171596000705335146617941938679405557832479925280809177961451250725121624023556059995564728023082744243824287322499185337536108145802367181887048709581673274279967032755325045044047111766428408893510459504164972376277356086610260638354162696046949998433128571213278930572441804150521124427196116789674538247615579900664684383281159239502240442779749837765739709004433445147933756732637315817357091100461690067934838829563141858833875609485129132240633026793362257120256223122841043406814529539684302944801817908078789676026021253418587732625816181075935105602758942470523350534429946053367303159629501853262942382464277772829939767166151965155273185807369407024190171522587289153460839241593044466604453329602507520077054752474142657918739645105425998701158503434508283095562371220885882228692267737626536534105106078919452196136663128662090718406409119323768920818119660394482801014634234248419874208671666833751812131868442644247737499090345526123523109894663654800446267693671851752097777794316103319809553408252041093086808541550464499269378486367205477705472096317322290873816823292961203412890714645523171779989961992516276437700617089309108631324101175932606606308877186424778323738294951169420622912593118863886726026512683713435159077927561131490486158782970404352059651258434220466305127121857797641533646096201924631026970308165225285640823622239393060314779330804223865623781411879757781899251222170745483513871175863696984297196654686172846748553286888760213434618458044025016545819921568285174963882048090191749810680407552321020725853968199625643771574836553997883257596313100670125003749204659052786797362045815492401341337393588968384503202477376231975778422872116341548754012809641450619083557152124141496183315566891451868261525697577371603768046865433258898844230205359516145268260026817667078927773201154621486869517579206110592130663974893888298202663322302159155966197139039387757684521360383036399885880614931032995139530741505554021957627995321903980627193339878654419547198668626165932391089607693128313911821113274469398935077083306493667420411593497743210000688468380094549804531002407331720593652268089347914893960761294693646121047233448899434235413171796901121550939820544185569336585550772322605661400002978972549930461863084728601530679794515077099039789172416447573687209104661242213837444515349732866908224955641572775490328620463257199644702538694673433994017916199840923869123554082970173704620427372607886811846007737849117838946255264076314097424188225290625279458148543391516937201949607462671881446198655217576324899394521899730698596978672877027480593258353726661577278370707818152774866727869409327314258975192910418560172263004266627095924788932685285442891893056866270266315772947039192012320292034752465730295656136287527769004553162533601186282464420576047405363131937940692600244460149637543395973369717703069624224847777987187463626750997018107774189571006560316590400049284777145122811102679324854806065377776231135985496041314823720649840325953764303996590837161789199446829946590270740349267337891745989651307000506018512144933883920571094162891165860423648211618142504202008283606659677436169240331175962232559648171858539249967882949366605410954302873257784376678823540834340040838584627982661302578674983606972321123594734236787738687056781607341447162266831726696005427765928002099286953204588527553915453222177043058464192908277410430138985628174153515908589063872188687862636755929731454172302262796429397975954437945106234983596939149467417875450085053512833714135267611647939138844513571172149113229140485361893346791445422828767339283327305335907494962005180006423708810410036837028392079483692031098858218011354555113561194330114728964352606177816879791947347692871202463924576652839815472718067086067949145666804771115980097446492869164194966926130687129368441663340161106052484012525803242193331972092808740727481278368697815302550130424624254261026796601434214162399921443634920366686662002409924666479096425454009150356538616747684434664216425706249955676393443158020404486545980583694955716541145693775822806571240213487270960948186576512484326601817775080407344710870915943683726901745795977687202376135404691940736694620811677952108311937603614811671284262936266420769612172462906621726525515681355848007694146471524435143344609787343190728576245614736993192993353907404743245472309945644758946051411705391253173148479945732540214347181051406341716482291975870358071052415818943462750720346370025658448705675875809358572358361138506621622619738984896381164259741234247000214110153599385938436293846813456428445946783343281554391275980337661894679195934787923056565000167732773535079859594776572165799377273670926305897567743606578188370473192726291517065624315171520613712563912124875438320506612478811774155883703857466834332596237887717760109196323131548888261437353714240159596818155308400449340797321960098946678130933099090432150147454330502132753440785959871765455600402350084192225814753519244244837158252301582966898607151523612047409769261858390867171460551734352853064690996724422577119962607146610348653889164029363670304234644443130464332452441559261878472091760685438004390595672384388145276970335679837771406683080379653742924017821187351365493041222540826822707777864856838768653960436205801774987496314898824292651512723581350228214638842238174011059067207390172915771771770845667425569711718872020952122714887690458388027357184302725361867854715566622867436548030126619634882845550118579304763914820557627618262469215468068213630607768656686886091175458960341021030466440774532063572107755709965144392303206385310769118596291302167047773384561187405191556041599151644136166579284239497214371062011528360243513061939270610914210550584078895340410355656223712537939799553739651896600123929822348354255078153824746576921577736823863614540788081068929701687495050363443737691497158296453185961007410801509424849261011121773211663642669838116386875331058935977789602356249884436208422031487446372069591320990596079833866878844953379052864777293450558498871577334836582109125378286535802473436685485023248262909122182687192106091773683123388653428926313010222290422394346220602672249530189217432603840243125522067593995731552936860603622703003859379838399769831193772474679637246501187083295582845382801482395042921111274982251266524354867475827360051385771054201678349282780261232946674070374353129684200096418302366909495265324248974096765142715857114560274818366892773795496660246749937036639520588615037662617044993322611526250571245903565603867589530317937673530512315985361048663461580357513702847873855071026188189837501851116268180766827905627307117001074328650183054313329519218160770493858268252635690813071463852440162453733328531307374444756473071373794817786485296874096235454951634333741077988487598633719486776521953475422425578430881071643967906465283568702317632884809531228332320849778278941841227155876990538674890976048042035527999787121692240853789482972907935327206447125532576404920160317533748606341518680735849424051094164307154423585515209109923923197899926303123600351043634110925719182158267997124169365783659188833866024046820950535618015708851302026519349560249617330256329010313068832283420300399773207287793875214366937761898910079048724241768881666410897211329633817258726328928640562482770971014577241360712637163066207619603865449383123933071500212279661741275505759832189903556282729511141458034691819168762410627701380506412348476035177617097337422197084413679838137588298477187324224188462352288826392558918952787079583827422849230336489669069511011608971085558412882583593912143159782649949921662321800856360499365444375469912458704922326629254043254434189143605063294846618511759360706467580148999724217033159726251483718881986133828463036646700903296346099993622912464431168807523902689591961858939526741355525623696319770985579844739801824734282909033676621244232555924423420124784938971557846225316952182866149699942836536180543998297682495938264319663211179366724953961865466071449768416173765652938990711213120487733393225407941367164177279619119274988546974307236596937673798944568990326337878724286085364500236577302315667933811432813573514982256158013903598797933339768781162563956412661033088920548822421981367123435933465630400078742089074481799298773179620623735706496837066012409278834141959435841044469860483540737660297793716331725082489638364540753906288958482963016742043160956879008089490400870459046223276975987728248255921581058150180753780996828098917875529779888406096952430988387471384038639129038325996526158543831313143386836132432367252121572087509302626219413818333219082632294767609531469483293682259664971692929020433748714610632397393135061169309552252825547963522295785621256842161528137242229691687137698205415365309436047806817743415709062080785155001189264849383017281817666828057597979364343982367120150272140706117849344873081947643172013021206593746840618135625844267674243295323999585538513016644370534131430161569200004107210077188736836256540744751481158171226109681220456756043865663790458094008157127639386470099855343627550617112851985733824201124853477450416117305521982737712529691489874679804889291897127108931688513476170862775993384891109639510985718623013829453471857522499241132366235708527694803979415628325428898737972920691042238800671888574563006124640537820997132100722321854845500600398861856914399843510812325592183415943178308930594277557984681217742888670237435263823023864090246339836962365848299024912460207553234788350805620369534277266268435627535887071803049925381858848421356992212196286343272560110625174863389674500443289751295293718731568799029216238792087942235071495521724311588597721015254135950059894814043026439261831479619692522432061063555455158981345110726751469313863058300796571699483356583637610427933048775291461189671817839097366717331464910555233511980338144708345483814765444663149969377145469264937057763398439793434650611018122933985499021995687849205672302038016529456481729425630810626361556198101831010924247705532796749485885178356687591288607932908035723018727457664490926644053221921399042789210940369199211025814218306091774798665229191049777644104024342470513283471559970121146150442508437477205996417498647264893572606057282810049124037316227107113801216161480611252034103621835581841410574014201260512979103188880489499352257637779176442302104059346648138717559507618515941667466300719493544734981800665581968075965660270730576175801637649212821186618235645028189382752125374350124944420417246106237442020235095052198532510680041027785818978972223978091687450516968063297969627539914948128102515881800501403988604180848902402416897484521540177367186830716397289675433642955098086839304096931853604112397474931850015317447736008743465614680202335415879981660879331138479744325620579837487054826543995291600859233159669563472711277650642044477612999194440649629449520805466504957762935381210530611962593186471741078273427016999466365373596984313753631236181081601148385789034135005494618103046493952993460875557123653556856864958118226995584015407599220009989185432675251965348278903761438570901963347975528058901349032522471248990525980210036270491344541448830862896591668015327839678809799281185152114026095290079631909515027124721305079553582247498267662642114939381024507065875737682726646099795677782315296205505730969952389156447658185264417462109941385949540027564122104898819987836601938592619153588068752616067052218115090656539728452374754097131808669211040331085318552395295306360398480417197563224882860338726330267667625737662301271572814457680080456046273764259614343300053437917300716504069226433982033204643504627247226558008204741423249472291138697861531047666723634680549065321615012569560267223728859759138122543017804120550463011590534847769373496592777876585325497539329177795961217141145117074934143345863895750117507296959360781469125990228916098860585280624660142517455630025801483925666808806147498162653857039521853045183176690856613066557660512042560905032736748705693661934951853375583005435061919926676467019854247481023240937113065196558214843001627381965343439349381490052935752301464575450774527558663993339912198284450868445852645810704932340194398875103584828350530507655276201190927779848643625164291517661375344104360307320715317073323370674219365558007041194935841520446324473596949616640993224131296293162037465020235915290690071452287999588154662436668675662089806778475837259556170273632221278000192027583902103511633881197300867121746820856199234997260990934663113620900315090416202679164237020083323402608108632087734777535076887794452699367830477165603802014824628405152575188525502658303981383982385432991729623669718240819803529630227034590061551918486443462957784802209159845342088328626043531499781563983328097936571719623496862458297888038343592362231343115252234476692281020217085842104248613963666547214907219146100679985304217237482962876193968967648045697447593961051996357794190959739459319616674172674627251472023605995404223532179501132248825451303707194164923239717253146025494838943522208689125646944828006490937869917379379258359129921213793471706918832334870736215750400155502990753323831373291285020993381392292696605605530718045202456446778199020676333012011456461852532078310996144079160439944598739050373622276093769145989748480712183205216435591988241400364079840975314394782150605672708413424989955166895658221689529227586063691851147030279976444567175527881785962458351659388245275216222003521789732075768558571381451100735422190454487050314770295974196025816798413803083955406398078386997477829707190405996367444794149494378540620139890494369697273493665582885237518831330429729130776361203692630636204597442700820373173857675518198801134196822826457447580449003263276466519876928817039859843088478243928245202094011790682173912549105191166045187678490955840759831453933077691454537739264409730494515239194783084614457021849508571767433943044324497972169465881283909724707552783952449835621715475362245105940077279686794845396030619296950647105021502611577597994492311658511781665971064304982045321555930015193737177230428518072479488374378787767387348164439343637537821116758085365095447246604857542564625019615957066274471237735600764674116990419821591460130694454953971072839602947123681576685722991204356927772820125432462153775810053437659889465066689432145024447700276572413603876424853275338180363875841636714310836513374942801647466783030458612053582015259786678784840149975014822008389746814660702886736364712115995540027561778864054836241853852015626368587617478389190611145244926166930800760701732740242440202892788910808412302395976771841345613361533298136650532592202276946824201324817529502018091157799749841696968187536020770178371561793077236533242572170170381669790082973708166388287364706443524470024360934798735167265645653305573559626934728231528577996187530221726308837488580782597009121808922127996612183987464851528701732652445237388267212739711511689084143367101330765474804756885385435644058886900893488302140175023133117405900948382502963815779150913037774000004045153609879452781884317344867685127715851182767135749935803453739207107487263680206381042563033892581552817716399283471195356961458244994350810400626103566992824078533197250477718289304251981223927454713670767662614576025036206521856612960507993310352322548740372817585790185063350283490052290013705192731113679236614115505356433188716768702323458533780974060813751599155289199315010094851036989633752169339207747136019534292924758222687017045647108944071902061699757656582862437080610579463840036452312529881624266622080231427072727692560261937963643702960396938158991385282442646849304329561394601275757970214524072307411751533588144386792910118776954125084995638340754301981535012328509267397445225474071777326158387669528697986274690617533762080253846393948732098736289298211296833788096953256982734867091736035033214953761974555913312882756970355372225837462365044199911594080711724527390608108755526075696211693759194972072524832914293965972015548215735829031338655687549165516044978576082976081260873514730700696847107171154217383871490410535368662971523855972692012733746313849950026398576478186316805305068341638917563057074804741751731615334550030937777392101183293061409148006447052438926425972905943608107976136020665432162129495521208393354639431787504682852627681090796962892244356886594482974293790246509299476046508176676675475882563594356539039954040462482404572240223964086213796242850986024733299364427550430641860794784566612258652621736824390663324737339939379478040376929046095698074609343125683798191849635903285837269467270834779642058886731507490806333360735121341270099830936540968375341429927459108696662519715343195904485908264200672603615812434003150529623998242353699239708750153742877268114837503684401298504575544139669056696500882286355490900969449337647788439690890639625833793728404483219472481462719741743409969390450759708693499825916356917258354565813253001990407169173022049252033918943236913271274332834176526358314166717772107420476316155409425645566455095231549840528074604227897547282274129040708316925307910738774693664208442918728929628541796748687127490825901734027795217039760866085359073410675337532593780149895492082946228885532250069160812130801921216290844476696307975168796814430756459910786352345426480278933136303675239638821008836454237260576917136379126112289075788286691008104253424049458740425235060153911274276290220193692160923808204527877538282015494478989620250932867488274655359148374173923715930787832918316591330054944909738871646781683987521337773716734307920741097489744139793824108009595436418732840482027156762559887428913029858508487806402565651451345633961468373752505981149636096494866809056769666869113537571206108215608223684379676172400521876666802766126940965666378585601265690238386957636501746724338689434379623497071095457679019633821312532579125599112983444650487798593389256003698496480439221859012430246475882550207313684968329835411372377507565446570640600189830331908501718581920809517191017687439214434243056403500526724414121641423522413716684899166405865531780100196634011317162765818170784688600753780530763359882466856333791534654825718657201206344723669796523292440487087981170457351889448196988152346660727488623818540542361799090599734254416371056504852782875552001355868321356990499157956314794435067192513621552008527498084092353896702937099135408978151048364509879920431851236689421045267371053229627863876831315863586652462192806276715645196932105063028213283832808652992781547768774947893427113078496600375032909992884792952391073013514893171972866194350456938781432381668456619067535630452835918428838692628070677169805814578402980921739054829992147463256174294792314942952433623922377506523968578968832928789875311695075792099564030562884451253530740558938430765255848427889335533329401688842704072629297910883607192536641259105915422472623876313864538687290602085973469346214261736314776549025009722249046209280884137529943510028739781473101567902293482546775030680609205174152187980485828674027168497923328356513993304293933571949102286293696646875166686361102302232824995080580422626814484965915442213642035950005623264466965645515031308088071690000378255550233837850905441307459644373696554697449782441548622063791156215029900176891022970165262576334846449890502502096265084240754456127143484360690136563618069719679084067390416392132043309991017604463634991940657600590913310836013771940658636513206494388386465048410601789508409761888317015607444349963850094781500967037065421439151070061315260794708701343597555858366911705481509300946805998799172487106953922260472538079065531901349353918802891436485476715002568343318489472374204721754662834022469450330725744017299485694009438156243236464073175938970458805910469734762236995906659152854325942846216297029966317166919471235319083153662947373152687936987020277698626101889691719796684971522804436081611749657861377260255481423326554304510329370084171865538590281560485078720547435518500096631716189544921762154781623645144868256775073853926097737216109890918640544311459118359520245748041591667160276973970641398818390090907851046316739364799930246572958932562461335113006356948424986519692447739652072994906723088877410427576228609243384225776445093166000896682103538622475050084341153823590469460802225445144696538598700423478309578121597224334963615465899693307498868032413823130739761682036267132568948127446984584873089502033649365220100510529179585328986161655646717228051504921560753204736083949843298443869881190657617338907149452293356197157888591825369043242484821238960622331733040965445675740658938153628315790403578046441737208287923496755245766714657150743545791974955542169927075942529633736914907529817592080394711662730603686805047415941291481715079001684111177339064749070502226610087329197043970886359271480992878518791426641812651651590370071274941156330648741096651173663143818717164632332425968334357067817775235934220592579547513977373165681792957841707050498637613896930752622152737144930044700472939534199625409312043086221433303280107308192406219542039708587603225717481381285083445256006732683153778991325419225584590533101387795036118823192237935053938059550555600882210442555493370223933672990943477127636015752149910823980596209533177704183002010882213492364714463041983715534728995014537689654904956034907668569867527387815946399102858631337838432024905538032159901635955968614139366982935727675016290882763396865371668432313380870812294430818214993713663264161902429875515646325339157372045202726275480720299471412196766637330892411079808505543482432030557814154214806065151346993181213160404282121900877671716286726222673762042345286610572686940703361504046525905936161165022452771078354308012621766515164825332499358062294464872651512753021579482345769161709968079955524352697129781919401896566965069528520836777982022741479663912478856787903000693237183574442067234684351358074126138273122866892950990310210848919498337584589288405027743195352401469901362323720434927236107572004963223565028812558838597364799018749205277450763401770387353104726163031579600842100271427097080834368102092799953621539347550980056220993093821642189783227232202640865275758896152909460193473670883576447030839583124720052359185257174354560285739243057692971880944918246143753940597132677182786915312498506349523522516000314462989664535068241975770496122335948987176970628681261864300264552824740868689007294906552820412423746517193256510101345804612735120486716824265887723613614263472471830873967797641235758590331539701497943984132803913875816408544573080294262110010568752105298673141382831114608819750296117006823350140257368451892869806732411150862463735737017334648838152277324057460418684229871735916900140757120179421238942220103068555324013195405017413274897081432019564361322069462581104359163749841205123936905879316033990034039768327479675624925476159022273055222818737658884229164674983359798711424008573002526196197333783699342478203966007921281626034782869525578104758993639952175661660313067528577387686070678930102026553822150538601533268834673173742134858816007395341561252453906886560414792925549828315935069003109877880046659376814234593299136752395727164055585577680347330403606079172932919882177422640842175550164843932124347098280834201110472943522922562606986046436193922913196511065910413263310545091045221548197801242411657958544153869338967044346916677257844755035026985131701696492318225149052599301025466092910396139390084889702944175879468072911589433422176785687645953128218143533128336474054689748242579618832105079252907059854016897264830246300352137963106520124196063578068973783156252974124922571099005038856917215230489846301864272426735645406965466207124142183864086479364525463737066273323549717888751958333879050920244728814744725831446127355981134130255477260805588697540861064085451933372551891100467624421382978316911048122109214650195095433218356806638442948427376384157766034681225050152337805135441516985813458174179075656826599455920306454495083828593326480801660874232402072677125448484220093476871374070806366742134672731679963894809520225352637990370081714624064751588725722368697796907495801635022167045710024463723020445138486830255793100132921786958316265996275757972836396462176878250658206771345752087945947772627356799981386111905376763294717847848392339848736818795349448550876132868152039626607947510996736453360132528298811612383051295433531139245495786737280413301920709862886671179116578595488048561673482010412442225081967653750315309729108432735236928174091513243958126573868125723921858249136563528769051941015643008434466346148047685972216588928781398408488321271378005457815568712316645265349488337063916725246308899142125696048522456828959387220074289577183668708459937913055973710937197902835755734269092748914129522845877704305418061427301897220472789783933998723151048269598413443129658147439368911056621415530676127126159829890458700513903385784552536893092992832980665784166954502765079255857957910329480152605147484209185258715797476196618991498452167114746127758838594577298907867737233296296369904081527353246063834362283065574509126300483225064447849900662634920224527330581030070139390562328089912986440601006990776340505003883181878050308714576957115777066829341708034729893558889603618227060577955566714824188952770672934971157976143281068397288949552625066580556522811536609286179215892685902800088291803482024957462028923637405584509322437895754908842752190042819215280787039172182952278255081364319502543089201392931554292465285705041512038543619328131682425277465076299291140384356915100933416927751243023065731064948938744075134329195924647618794107959742559191464187291201269133429232411550137723802000808038519524911466471036486721347736732493440760643829722777613854933596235694440959163742757779485557781100931030332159423256798220260460369266791768601698132101389464851303465319185482402682787608003029169538289793596553320680069523454878836677788740041446864693932132016275649140911598776948240837066842548048521718127921597018456243607709051174506665770909890853185354473877868558347445852736523471256916090692402967898222340238543381393254661227334915419256805265287577917590672872337456594393183925345781948355607787641293998437753953292989041341949058563678068729182816400899516085739658162158374549025022020277128639250602513435757771416534241185401286571317485764031567633388324753116227713791385821630119899299976769294678650832472626118785712370451308259302366954518594548263249912812715275748382782996816860816579334057861668680667946469202052066069603219533658518927699183280900776978207968049732699415957004613757273408101876295301815774829508095442744871596800604574662248787498972319614998615658311221335699770359865924817961660691678699394719024136589046286734797470665246720132334920235305146716229922474633349649933111164814606806746667332017517226318844525822952269677230273260170117322984148928734536435468931967670539159435556366812840062872701011746828895831901468278951929191667471379302996005940085640363865384866145774596368072707269860205436068912544521382061670423114687748745147559602882168530642603613785046489119510280879595380729473026113758304651782651266191626036244991693358379843136794249254478296526632070685105618791438029094662834447915565610842776355253246365829069115447445412155230937491485085223191423388838877999588764324960636344288569658740464034657445389400749565336278504319822390668155310814546389980375399713090456213057705677280861805454315798617684149196591821303190402534098167805027341495258943314191994077071301913626284101996595244648277655625821824064967538887976224117361906428461056734294679894972302706645144406193406654329613595526838987766449152172412797509735632236523700324939037401173406840387346650319962350525351216439551167589413606319745574387076444253373960451832345524778718930158791247234741668869120316622951737390476357330650246648144172672680945338741143198649506603680185800780611985005783443068746885678292079813216321045201196619748135202628369740265118537523653473057054392991190139888084052453374138022651343147560910728146453691130101690253611936139348030706365271078068146916090762265445285337707610316114788040400984345087886906455280080359190018829441346924146041213988134081473343852943191622294274648147448354502122027237706725904945798084341242045921721212030102334696987942969532531358190637145155409087951413695042262035126249847631865173866102077838690985570081816771355269160968010254320305429513955850098970104183705992349077038164302965504606495718775758275171738798948326764059043452631391974892513271062885616002111083142528387254491374317543726929942018316313149222439834123898247097953102577949261154037090835355587034938673574192480381134383993447563733350377645396857489459863230730706660774277788258363827857926229634060165960258844837877633247040598807892480790740481589792803333973764980779292390438766250911044585218344887245346432915437045718190249099538527291707946415013480038406883344573428399964986065867146336069599189145241178090849635508671991272520621871451256544996789254689101309116318778860567089875475547469145555112994046612721637087853551350884763224868350601126836485967019130262152291019147572916451218729409681475029698402682206685848746152915558074098957321145971408379000144820297736284428032599860302267126426013399384375130223687648820043007245223857314577413368944923865866800871539029895880973130992123507309257763993021090940951287160752436863709434140570162206473012565348887606807120204999487637935578099496484562102149914605807929152069479338611938834618149997683667531469910531615696620235031320932543005375611713907799254352089106613361832127393507910956959583024803708821002367044842918561527306518058691673186735920401629799024166553771014738248332919715177647542154574805606612541511295784121586961576397952842727634191387623395990823434654380296279419834047994125496035949133151374326318690948814122759144693792012743662531446373102268641049116704444121425140652840582330937258952137008060752580061398999484179744242407052853983430846330682182193050960584255508227787750326262106294297674727469094768730303191779016452259879129426797636280479898303703766199367578739046167083218278307246377015210838679054085992735993567600091495385002985383075590313262591963240635992406181720626025872722540063004224434831255658009703795418306213671777448218906094063152769150801229089039142244578814775692582769189124650814624264598246971923599649452480900265395728282215949612780761589351067157332956052776181984879214041851158233691793196152265663125670836547001811931701496701762660403526177899242336053050041429293423245305367870177584539033765936218563173647824046556628225879817316072439613744749831245657118657395933364119477463949406207814340302862639941827076818492922112228757453617275154260980593176397803430400299185696141697709678474475516112669589480545389629301074663199486413350330707014373025814750118414657955729478502024226702988052360897374233781263383173552261548051813081294031698453660447176229837510981492419234382683974495313763034863086286756032508562605192868034890376540696248282486136880201231262247779561561553159111761593644131959275075636788992454419577306403612190208836269719276072186006686801266319206842856453462135503216733019406969392728992630959448312578582484369540614912564703714655179870342847313932393265496688319100697315176727612272298781228554363602100311130512537292980531218473086691229154971718007062375745593781114347774289037552327375166254103997309164356896086810146708230503377919584849805634597455087269334843274683812382934200128548473615700285330849633006765596385530499524908410806025113726361828387342854202073596261281884734603832024010764131626928930334185954878832598432857258979245552463932918256203130152625431759545494688243924838726227533204747962880910227874192810465969509256702300435759003616455235980534665162786967672144567541171148166868248983942692110857748802789640047350028025327432034496729266448715192074296052173695320492523465439566518667624527538448690958122023540331625033872818024815450922517632272555108556542955588482057062690272135958474767256834442333297321300218737873180492890778545725739501625999118027340102370454934150683384642888080805906337407226914306884793501377376286016398322969740488916171099694492963554834336036003400292637291579932805151302659492695915319481573630137000286622796388458876508898924238918344008105824749169926544163878777644476325858384127092623231485925547720341245983670236138360395927893262942400091827551103824377876495050913275407673701434975485978716688862838526288634357086029454265394235574911022492790562550785781732137894157537241439993233315488871957384151749513987026667004810760497613442877733132000857768382009535533125820640998704723874510657190996524576572838634291581367645563010812106817725141605243959011234365482086405883651481819892251738674880395297408457023893912856222339171999543650520677101272842740646364833911784164043441101920921019851761543242281054901071030985513334499456228629579376324046461518856645811342298059250303441730553136772803677875188469782693628003728976739749296475757239561968705617040889995063218196079867344946808948130249873390336362520309421070853969091237791412219968522075436961468638898128426979663942414298983988979260329468600514646662808606070287195280457456658238421091888147405182595708438362123707673911071521282529552437615186155064178686358729537145614547498569853554097012544193483417667059069079456376836614819020116177127523810538472554401334829014594336949553726158544748126846923627160452746005309743394424551019036077391582595118654087681222034578254539983772500524527580733786590463416300332061764690569313306721206569635946883103406298922403935501056860677400205539209548219107721288847517782838855694079318082597183844768948327020178949646873016897604362284639891181891976112192787896931882337755269683567531511318498466514687887406685692820675672089329035993816750902472697629898435776918651604210535507449868196115741018873117171266805096069792595902850927726949376621617766684947168233809316406303693854632812870975036338425654851120542522265653008687659951664967477142932649428409421764337733701906054856907722917108973729069221886554140595576240962767290138657147031081679379272248178597709395684684585653876610191288779661413790734898544741828045990806460065137252290394878475486827195428803209623472192306437509921536650153604876736071738194299421689507316911794850458105265136415115337756187755930229921397688459662052324211662053627973933491910501251763615230771024609357325873272191253743123246173330062515044496650505607421578983040112464576893433570890691651248552275549939306273802557351604418367060003163843457544176519001223187089984878193471031875139541262983252245448697282264579914102022715227645405430524340462151307468997485105256875204205275135709667513551411628178844350074829717974188517870463007454374984558696631907202995063383240608586477885628462312339521784970966142210194090521999523654214822943346902916655522492000886055134330056832363031359607559740853688612838152793904189719355861093173381804833906005637775322402166136570085459713216995968137263903906292973214794264467871033109774616926776350441543226714717326186556734463901373985764016712854230515758949357271058604385503186956770640914883863653462179816616870515712045190562854079089717909423749508771701580098637768273674591114974296597480351712619607455477311214413867611650385596589025286322038430066867784298478965605868063464464592635434963997047036714374919531994369357019479736339275845700320815543010427476664828412535990846510624554211608498054125241385504149334498926851532026826036197331705224318390737687253831245813833453621733173077583528351765936677052954570318381186576848454846297734853370667239037148603251207170629169444061551289581950184373373623033545290403213998123329240457905731841109761182688816049430301566399819913818529898097878657044320099989139760979606785973370365789445586216249138544405866894869182472203910823857548983270783163581197831641997950712275761552257909170206965162526128268040664308295193452925887188754475501296472120728652361410170322826493520246002155716135452623166220996675325583203664903509849696012974949189447217090168605547665364918844629186621032920578307039393821199096201510518121541679509333367364173036770773571962373394415754922469704484042842957301674403784596668758640550678448184023892884168581748403179022044610421104194709212594883628855950982018937757190806419126677066502359023993860991769188040890009566585563160210605096259270396279153567111198027287790631717126562509019662890906292328921166991574718962847608825374414136480545375935514433186425211226998149304878884679387257448236666856688859784805693953141197396143914848589895752249461687417120579881226162362217258276189398864459855388879917458630261805326151355965849715455582948176179765028321295410865031737852577395246113226233472703545426467887071537709625262649097942952873542242666405786364442853494561078044484986461132258529912783301823332557980085756115793529185694828732578749234071293131207639273793151984295193741411111422672595387409319112657885626140564038839678717723077394208655422426935266485072996045888544165687037778002327371972559281780672353537886245934702647732941687739683966690191376702493091397047656453056504019345574716215552043391005739679583723750386285471643122436761268801487528954452016387568306839065852948961594730193695436554067522374149463279631658921130050761832411020330770879163334038951304335907737736617451864097085435413547210656852059987252505108392802318210287178742664982164836826114484453849421851625689588634192502860982123774604415335592988241449245342232487178787279587005718326210822034077394323216904827443867115911691658641393942091239389916925822877693569934270273728694012844854134863256542890905523023643998146291738795662462644032197841153626598157601180442323565643396386590675507325038704932987194796486600014730013630793542752535372161414364740890651554826870360544383853109065224479154695783502473930598458283322012938025474610665669915907325206749168711026493088679947409888458767593286431446948593994555654738764198545238494019722353946259614051452960134053696628763268800323029618131615389366430616135006489075089262802272598904637785141309376818602558640066228183580475404010871481179337845424999815768058061355074329177400031432004493254678253377708525188232074633234536644405378730286804916608157868969141216613263612366046676619979043263053677132288047963592319106090965262388999193288788286723070160456467108633296879100025260647500386979301212540120419083933118708043535480019693251951529563689160363997655823361105348414512709087908202810538836992343665418019100333170528283962748938449993602995583003307002018853008994082202673062539246399273720505185853634027309838159792038405156815714812076958670706242438872955305471578399021974245148812465271202205164058525680525811032165125494599852225933813866069037362278851195585132731696030533257659989891752353446921112843087558738704308708152754368019336767656240467535665938539257367742862524900793032969074821481133654962580407289406654508536801649052925925056709813613935158518991918173426095217944589223095315635143733495018650507673334330084414066283138058981177653469219219605848412948516577606102534742062499888574246526355055795245339630904845500290940339628685056464704072637459791851017455756886949431477386213292052311980570622582944751757252925831324929917060867972309455889827731734657241225702414838651999363344442895850411232190263532526611689272559075491096810536885661867135971118404568886883322473371560429233080799105311720068840883610233022332463903188830259505281729568406506998349817840665162103710119600593690685952396054064788822559395563431344053633666601700800452755913004331361093554328467081142817166395383435887913614421279633456791641886035181548652097208275491670713002878189450282304613177567402222328273518160479574681118206277940366089116740863133367925410813448214525315544078177706561953525926718056400560639481498584537662004931652395054993937238379664154939378211402466497945397100332696094877725720202751360209258845980856136091530163603679236737387558816898279136782982086610246058630108218656397638478352883946374032012852700188612126490210820999443929579500889449699476960579934861512315027258352542842044400573979547108945857108355889519071384477416305913897916085142790853358671833700101275934690418337053105750139129387287843852516282984819367455065472150258836789281960290286328611270419588777218259404729225374229337018433905693168789225906898803972823610591981553877700933560368596215877160375159885396721132729914877730543460779323551220974057752771222977994870378462110634817552373281565020202275584711123153905839232610240435974480806618784123658743884778875976527981555847739760955702489620688726754609438734360790154986720963670837016425798380955507165238677289272913800574789960999097960099521160149088821089710253554600280777439834028234958428914004295616138929092832265371016259995779595603524197846314428983250083704545300684041020741043909099233048710685485133235881068007392494462147928743465662453648041883819003168826056315366056778760059714566054944853453468057881840455650109017323943522173775960530092764658493966999561978675729642728531998636518783020253385796123682750108821386981062880490482113822906330392945699856139004188375190837310826035104350008332833173906904699344775453628692193845585072225096978002084446422922000836321901624329912696383534635874150085838441972655987662919849422864151182202485444628408542640507602375731053187171111735785891856722145844884257458297135079280467378528840772034043637765984602708359126774792769060191585852009955298576692378329100704288548047909420228563975476603374989212511176831651945811809238688230922194653457550060298511252652221746937676759191570359650946305513698462706470845002060800273796135357728488228793316066582955119737938199086094641620280987833877111232382577519480159534401835622639034328262101326232165023830551977523356622605626512421913421920503334695696255254499667729431311226906684353851153412869770922759439343816341209599304540427878183425856884654771864379912024003737220385387705180952869651334065471489305642817555327179740438171789437141085644449926133548155840393730140247663477867860732853434477107029317256581185988823822802973204389554406974571022131049424362395171957982410934363900927072992679505686105831928677713591754746222234861961147611548839716905979948362822728583111848563124634018036648561061179051383295362786775457369670254186703930501396855759848203292191404216706998538149332854948802239772121481016596775153081499669519793543388242302139429762213536259049197193462428394059349851302664180564885340872203219415954100874984674177852865602560995738617473811383395805410964874193812012707345048247409740279949672461936157917565792889038418671879054579760714419553096886842969711029932242356191584715646466994923468405558005310046758023849958972791052748244843695485185425749001528534919202874760087826141870483764410719177866144745855014271695937738473217802786118900936302839300204773091820459135713483135198415024412081585108257946327559694970963381467737438675917076871677416434595979231543949533255880468323101336690856792739790857339274141412511257211183768937866828070660773858608166436056049160144422455308240366332348827686301046562990602151827371734001745339020885534329999600976210581787489633087046604656522753537098295463825682377206855145761013031646867567237623620513675753944479909541313329486100778986237418901798142091507726122783370816763114888157021378124372108929285703882301075120506661966859082089312574881061255019338272456304462973327281732068108314704485955808880021536119229732954150716186086631068177623340565900303136477448346789086346228046773162462914227514302163139502537172326921716154522242529547625683081216018190364917378321260558325197169026973613671225044595827596286869571502122034197278267395334381902763513763473185975237468302566894386733069535257936054241519718638923804207926272124018439080541804241425172019782409899517457328286945992569583784817933173921517755476465277934413272892702459986988697062518671129462209121719433226950171401877539133166344560049728221606175301117673592443965625105619760252904210718970950457360072732419579360493672922734789932980977380159582695268564882769441250791573217946851714426544402476188785765126622562228710100563984630619024446105018940293959338941217348000134459777637743464394739539908479971462004480494518958024325035434189505270233715923058832007825428078155471650361828828346779327166496560938696628509911120140613187418076069754215914144320369434905209242697196592738020020113787044964218975008361030224083937240697012879799204758154681302551177134435985814623274978624706118394440625983653781699603807335399594864762759329194453830713578433890753823030198233025338922522038038981733972439554762221716577804223255225000647154129014206214923666165014794479769897234829972666560687266976130102558672776932867735465856815544130876828368796863036885591186494072117820059529283173584143081787314097672954242039928252900159641902872275010230620494923330831192219892907982390936602276424189384464125388358918335594360159625977872661969823233861464258131475156885815498215083261418652001360937417981207998163214057483691975885033968707879654580436953847424874422849995510357164295176965037246614195829431538179534997410022069485841919467833121050281053443018033677596571269333522129956104372957994273434294758075946603782016274402503290205959655175606417365674627533858903287322847912108980366109688613611456289793060344193957094460207671667439371581052482901801364271009852820961390863839381934082487130602408083169611458797118374108329639253030552684153226985126343987346148223372297655502607143966696223304908186263089620298879738573953473776846103883396984931393760486176686482792414744275129824461421712246149768248901231640717074696195684557951700489120062506210230870176773386712551130137083632767362821228774977153233959205027102562698170775595375875747826236130364996285685309297884115505905825960657793144646169941209356275354633721578034736462622396368376286048501372674983030840415985974030262001786705753259291845513736005610674021936942277798623606852634502310841497239561905657110276607941367071887940536347810761853223626094445761455115426102656159530447023247573161745317230700866688848003582002616211875513344541322781249601907101417512988673746430588101242886332464216074560515163291000870484333584829735449640654821125526908369972412634999438564241568212248804559799560798530647660604660128621926125054951234867679184887535758524272993633507363540899055481822382313314688827430314623717965950046216998754454384265723118696894617563670805529281948359968408565609719448140159739086440048863362639337403785184363307076621253726101525390038222692458201212163492573049222844279741899749260825515244104672048556705695995634710846457546754942059360901512292502581138898304572218722621828324118235888515656057529741382255461578697051074865012184057659698173397196511497244077833288857909809164874423170566343269495585677302648474559852992281943394649454761770088053744722282358865179944052121973677968408119863417909631067192553932669245945078722525095523559374823739591076817928136095571324247825723340251660842139429896397407770863642150396283833483637646122912279668944303752459175434253869620237557196922290131464265601994898028193836984182568011398530788842333835771622119047889208904013104961502798407761742063889748231627369508918932021093641529874009784695479286833560731675008933293245121285751963926917006758774399608726480699519711006754632182994135140383786320325058216351426368619159514892617173314085355320205402902201930990051700364002838906791865560076583744621038142366621808341582003727358038639293902066741854664472360422343402201809816375737400199604724370671556020317224975570169401274621854072076681755494096382776197353949220121200935516973562177946359999110489334164824672341228851722310469877042824520376217520529258615226479215253507764705473012703921702535308772214827949915627563220314393688759819160516455067966251589470543121015237159617680498991541088065810945921043089907137043636434244539973166070239458942070514660875291602738343977206286115715174877163948032528439585183026624920241300932236287058813412843612477336907833074164223425740464547914722548071667816461619314164825527511090045291411576223335389169673119219251662521963430072457623519991445716655830996647421018662296252078207319870787556294001605098980784600350670430615929698853912561412004241751947168069427246622254144107088071735037453614923890883962310642114214144997227061137868807751665362662512902824393223433820836194425171405691925665296865213982813752488019080366935774071355654681561103783953049604065093684246821677667411147366356718181488337360005627479716554052858215517886473120973818398224452233009839194311777553100206733864610387347867173850463842606697981774968937099395266803956047628886572345033977356235801217449189247529113569791595785809540237491347038270661321341008710580361807023594887418560622681403469227394391136815823162577758187034199923970518475985714434767393410537513501966939319905767898129477554821164640765888595747857921893362399525567515704421965863999580494729996247500248237955014279588984404157101347372948808785268702765504148449234005662229239425461020503759932399028838032617299284561990982318137836375074714345927074357967475367912289466609399172362660388430549917576528758088871943269762633502107261610565912982203430331991706181310515892690231192728552900472175329167148903007746758188142865065183077448108526427484058026929271225722876055523804144681091200024830052331286564748999236767931785488276202048521793825404489335280945362329438053428468561854570476402982411122288928987235567827861227554404805357448472761897407675828769071820341579445704861902993144389678093791119625047115059284264811153012826301099222467483800063912307472931130348295124264465811510601839755811484283793076158887027474684556552708685759516858488467506560859020341283217162101216514822863632516682772708947821088293737779975893327356129842876683131851249356533198777184479159134195021164139690670690947616920772068824525273500573733605045403872404556545162361316235432119615330242590812209938693197000752779427362833831364013719037046400716155039437194212158011040932742954855467174913143172641128595463417254417039311998116026812719189564608432762362272606390393133220049455731784401177392563833754408450128486234762982089429844485184195413071585419622888396962054846205553106503089267990009150814243438853049499638510552479074088431131423404674444600138166148780789165919119804938260149781523676174707929938490907480988808335185885900126512675833950809274596730550340032319433553668771632391465835088393236724702806686127490342874930330016364043097356964940900339035617296452658268475452743289618473965495086292243010089044850648333844233162047972057731430108410222846708725750991537982730424682717648187643266965069969259976116027414614024351247473692336738057693861375031567650463164663742991191311084685440584163779012297091027636467674752298339737798959016089424529843466255964136102935943483409069017426017305217358743015939192176030026418806978784304531815284157964846254974945913098646658045764023053896072180604476742828169391344154179087794678542677931379814543774250072327321666170504220704846145515495853450838029441593452827045409376478927812105474632586725671440389224002307500417172827864355908541854823442611617793101273362661573450282612267716829981865246530384312440185395025749164654611767039382027374107035755336912643839591807563666086481374181918388274898451042319619725285895418344509808971448614415439225363109025095849012749158489351746289467086030677183777814124808337535289401614466569000845047487106228714795452827121374847796646302566825902165678498370876017073896659798823180772858437674704742661567894774034882545831347262490831112799921910474845526711645382829201280518182436041639546668425486403981629887802820733376505568939965872503965455299879368417186339535060205105555544349972029459413895144207099681945165507632801679637801225938298800499411248715673250253966930787875921953020756442952074923631814549108723144695303356843306671942273691207259949815069298613398330838118323058791732222466745166799499343393908644430403587079355482409554541976270160444728464834217806268872128173462993244557198267984947610962005343777682134153132650389755271348726859197842520900305994996586650352186859177585528828907087797135377916274969227292363533579077959090290391827778946582452329617918633922653825800484055928750094736830862950109636248654435908244219892240595141333743914442617977556912657906324525097181017548715476242974078955926691185836966671459143467007217840383611915078222929591893962135228468370381426106356031013061272427184439178171241141762622317263729205033646957509963123050722267544923575981869198707241553745987799426999514934051044371296881875226131988521259218754340122765978996692468793132764407048259314213433135472553985598265705404692063690720165062514052188848748411191636466043872839261941100544698808833022272120099048841790893248898108239238777488685256050368928668236925302776121042002146679331177444967036548142641803821580922622773352387656227086539779026868520117286008670851716687202483113425499073351956685717231677708560656944339127281984874395639265910332756359209093528244123291983553437101647153322024489508341033488239314186639737069536176599622810201241756676259781897782080088488466729555113290049698259879010032779792527968766159347037974701452012623764626388720247553753594291411723412973370683380148980273384333473413187747394232819022250218219266065781949109995926870878826968119311722813867814346840361419421584355297922436964440755543663815865424429979676935351264876199339916595002401732418041043853175140013741177552825026660003682386475941249492363428944143577935875671585129518780134617722090877390050064999324172885812046503755029521267595617491081050778353217316113708393878166226768888869246405454057233860297309910658712754850701846851209552716590907318403414160859580217866866246567855511577620906864271809853017088201798347600789759244095089318914038023427626148080228934514297581987189765895197706756013336342164805960613805082102753076999101078986862047039906482141062854179909163095939175316320229435373515295251440241670200234628703073964452557020464927021001459730855818667517492536496298016717806946077708624513044219361337781345215160370057361601939016090059349480798352797876171738400265333817777553205247110346074712740507270713430209863577491728960809721029076843543733730366107370472055393979832006700545632179069913010777675229872008204534231166621053799922284692629981128907011971606208788932223763294318322376439893979944295151612871153306635268564897892355666162151252623490896239076783769484846064396435227886953444623874854276348416363716409498014767290371632895938657968632962089375791354819200102659252907835386080330669936816573780399316757190759472360164157949907856525239867756850805570126615358543028916044202632585196475919187918783536326317216885812321402672971095390506000233802297123409261957236212866648190429100429634239160770416211945742650178974149876419889244553544011418768118575593411731495021288377658977049323109238715225037049813423210316906072530116644844185908424962737382461887221246368298040826057558699132802211505559791433354206049496540706418011144591944037666524613809501195725321429575036930553041408905333213042290209461163711987131895368940803289414810076189563035365783292916649613494107008022693574046739820829350357824245799545030205556365553767563580571694728286382336933733163245362738841547819719534885123252586626905628273411777112632483161770816374358267198525191234988121847670213736243334914955800106588910272085097627792030364434336063172940814360434064874468571767623816661679246433387507859981065377425353587075786538278872781924645247076857260405362184186809664084950449240460888365353226674115652621801636317550000594193214041449049893806186119042422084094880894467356085233974747203605671363322553518495048135879095528520377392359011044468238836567730312944023511753203911466104776969898083528417687438975528740750239227674818458882879456157213889590639642364519965494104354881126270148578163538556004309630184028256446655594084557954187907497394303541199948399892542651893330513384301346227125551635238321534698346427536922434964071074681502214687216060278415128830359235064802200717206183883239015613999716182936254345224797948957062154397286181564463573855865522685598283951697255466099833478408649313560956966885226024552399372518427075969741653675851104274549004296395993910993938399069946260697881522153563821789249335902645650989549783278124096391063121106374637032008592666250221844780280777466775837304404137992366872519655503389048725378385488158310089131058406577912565804211430856932768257038861636946626609378311754020610429507017651801700639346686342612073037876208623349812671284951737849159897164634446827910209799075956164540880604011234181177386985241160133850271035077495263975361309652959560795454229984971696833573146985276542670325836225392613617680604689148053732142642827900314468003975505903077736418780905861327659689801672695483335268388933043974493398487809742193962271366045181918516810401999658834535630554172017774834323330116391285364069613242812091159453178018103131352270530723324500266966399662983598143162502330778178059538420210058354671737423103193165880859227112266571897462674945814357892665607061331439109763243325366525536330665634388426667953902271374462637371031710562133796391694498849307112535044018312215387739480183594104353283041558368770953333609092097418072576770861463977922136663468647238984517649389812290051207383438235691077347926217501635605329728905700926864605844518968790115532178151855275251659206835680451528564779301098664080309162023741888027994823597769068585544852368342738611998424001348605528837900458356107583525947432129734520044376346645650067317165327926650179103174461248228624936671662192271941690547280820686614931086174494128837347242545904458673933762693352193973640686884989222991745308360345547209465027985036930391073102831600511369051197913171585735878972271172334289355865136412733654287757988023988541057643679070177044245383612309656058419858988774400943904200392846359035610154206111252358143489054596988719502140088130789277899826411762694676735572108482324657880663549753618546160827979560044066311232357086111672066876762475255409515073004951375055343137421927087700879884135223680140706336781595331020094114078420958626343721294348936063794227814278689980842786840797661656238091628044939103827594975872100421702692851255593614561569790429548299412508999980016344934729719212246306450529270316283790309726133140909435358141065476565035511210521990761942711352398279164579822536513068261513116554605139361000060734072439986283415582048397633115265671863388280864018291041345761928432504210792649144253768142085134249901980362925853527016456141088594147496288264052326099145524047687112619547899833837945934299514646503402061050000322586406486421456035261592699410519126525499109296490360095236259064104585694702555664138259838253955228555726161965805084077546642338669416283027826449569278570053284465316975028327631182711084856552013395151484581334421639293004915311209508252764593157852293543645815290678876810954100737441496288239918362856229498471214353451943568886368784969599397287485713330867169881794472718949326467230990331691357552228196463898132480323626495153611105261741323583469773342000463316982117806314100851633984903254770457145934599213075752380814412944782956755338588880625078920290770865608942076082452386558753324730857821304562222073134457693616329114233125368378013365165539898889269578665685651421857193117322055986231800996870856706494333911423979830822637156127942118907359330741818435839164062060928765225847110388609494884375879286902377317330267991176949634793803253322326274652780775292098768292030495039089165709911133390254929656033433256540754850556095818466485937113519889427511349767293771022074844733435485698161453083712859708851074192632621569983117571310525211046984019112934029778208419089779961192137906177835140804331680985424076468367100657064264818430468765601875801623811252856237243109923760379809580537355612656219758480894447594737854989055376373423395272894226331254413131104685566574147953428088487299550319359779428709618310975720283669323481747016450818469452888883477691695832808066822509392554537314551508771815696428704041461766430227350509898849046023644250759767967274113984038179251120124866655066168087553283599540655373672928054359009917892287144783249351997466257109255606786541504633247033022298863556236431429038065638086693281896283188359051470113269153449298597938116431525929576372979427537678711299359635355295906084706929022017262089574309785500504101941194402929159747677824544546276753759622978974927526799042954072745803451100757922593841854990332177939088161902681360128913381601753939455343532783101156696680121942164137280354820193569400054601185731289372062771554578692116422013656657338077120492647660580442645870256226675926165623096512990429324500367765418237851487709732085439586739920857378164291070055364450340902464139610978674879648874260628806217403497060106959865249239548610362613552643744748716105719957470806443279298940796048257938947065700568185834391880557374557422648499790639534147110617873146962120179749166658106373406031590066070649964471507777076763608822745535342787408456586333229408286270283470569938551966628405634433956778545319005387986301111706831952962270821813590816855564774739693092328942963201863343907074497160154779580975730976383530593763245019730267985160392239330401257860338893772172251790260639394588082708801285140049197987777570198612776564405294964497113907961363098566561533755251386798282114942647378270806283601672991786460075720282577055585005807438478556383949039347190917524850233745700831588882180428752688122578151520255561934605377993726416465587315298338059592287595842374488285373625316336703046537563970294125434266946389307263025835110819464767429546388330619912527718665431793133236709516838330710338585496059833271113201550911369580819490869554532056331540251471259432222662092248392723104266307489855995854926763912371050216054928962970541247246601744524788397050149955045409971941559473395952268490490065217968286665048763365308600068867344720700193684200606255101392238348186934403813792280062888278992146743860887100006883836105991905436447933218035254495865795164028791514582574175208511698434242857515985623165460354290055039237273303989527679151187672994505763603231130084006274808760094654614542806067980020594465341873089268418026097748080836402069504157204406938980683814861005457839987340876889050484266191847280430997204291531421675157468363102542578927164052382536223334432677412726501516823020637735379298498946686439976245826348893401417705609642567763117770187973340153207721632409565835310067567195730105449654400302964346059585949746169829314637965365178498820881507077258214593591782531600235983590359753545321477922798053462658438196244359570019274926626278050805479930105043177744522294817382452570386303290980475130519953111516230789191520513116263450402668385743050728729170192608590493838989546057795019528950709164448634561741184439543200444155017185088018041562001048155379392036769716283533855820926750314726475520778408504005720950472671011724365483774879653845212318543625433821601744860828440949427511209183743968219063087807057166165524307255995812530873301429176120305734845820636030908501829386586301121639749224617031267593835965802620540354325459467794853561729899613409648767698442620673545101955175523693734682210687030622611332547131646425740980181082207844647153843476358618974190303480155820803200216639837488724999288946794708208458610444660414505195692428808345418891901335878765191470004044518126545214285270335374714869581096690262372760704849846060316687958089451592451913384467559940277621598389813405217431693020251262239261565561082782742724680554707211695652658946187931370717691373807324749877653059652580020833237572126273988716829430855652766812756759615542436548033937419982523278025883666655177644833003775291058368459278008471720038681647208960094821363893297711196862863114182265279254130127923407746614414709742872259971977406382070335751183455949421565968372063626661772112501330308356244361709837628973930060027626895996474802591588079360649449542989050892119392826243379960217789041092496081768147378713391057186568040804494892294968473458249430947173856196639558816128606083599315854457175234634745336804873879489352237397948999076728702068529606343496205383681860215217050677691119940301834857493853764305091318930566406554225640296254946660031513498814676110851861300913926308773292011181378085816016899462770152888140908228581245033131308395586312798022551129337557131944303801727695885294968591919004399254959544395367475961748282463985060555738295781324055121716974993533862385977569937890567801914198438205331776455377302312033736838345540733457705157622303425706662307953954304659703368134742252924608807054418099002108003836140179994524583054414520897460491336209225049672746356612576967880880559575881381881033546221166679983715640950132044631303906585834201256617496644259141480732123155452631935771625261629414595024709835389593687957018941578220362094814007144698170477255870707149366441825976651275106843593878303902212281493673916609133449720306684689418975317112828828946402480084870537347117485790239533792354746388792280766344474814904299631985738750243938583845120839272065633215578565279178345376836473214391686438463599181936304318217291046811727485758546948589533567680347792787797683787698624321986056510676192806890992071008659744750275901305136134816892076992694009179321040301080617260342922153808538750793605292946813835720839873787405409276225775448594668142672688079486865267929520810050862289664447684661096713584997526464365341260432359564878813912456423734196424042701307187006190788177515658489885780704097133576915757926592735337003799781888666768608233224152354657035252173468048603221269081331996053135594717636438458727707708461208688888221600650471239962878944440308701256251511472970795921490744682121161914520281391050105349432679949530610363372948264565994121944816867131539609754041810150198761236241358883341542599632845316143076878771243062795199614184308269246654904174199111410695667546543857645069227894133145296258628518700491941267943160954388878735427711869547106244721713782440171283073499844942284301576889566268843276327145627230363794353185584882194274863760087575742480042960131948128656704119440260479531921961753892859697070275341467525777778748660816323260536331468834803948244233918058450966299281463613270004827698803686233702628555716156010069843292643716604123144200943421807789453823120564692098238456231486636340137388186262861143680029185924267569169219273729499196549964278285874930134745141101573703986270678396552488268683190561073976311545994884528084581779547499611952342243866477211138172892621761753449120675743365050944054828320079351658813786443390309554830555729301624172042863316996681345519346534593297111310351480086211891490899529830411429739045667857073739779388891957993099723596429550431054014576917361575357880427497326946060001018841252725627855211304399773981773274787612276419810792578487000845327305289770195164482281536937617818555415645888370445119845211057606048653939069089152906508295706608476240411456441748332221451378837918001546724673346986247508421826715232487307493590071184449189152676135985096556294012915705513372554019600895656557273077632771773067909629439043196718818508152003933510392382287134930835506469621964613932335878788471825047959328609002296858556456154610930250188897778664715068835715867310614414035977179276784169118806283232891036506106466371688975058652818296612979273669738947306448834722847169100158772886464381108752275845747377665434892887062537307609715341814974389050422932525550272723097568972110981180080317862334461123877775751264317204601708990595977268666811199614109529301224864107778273069230465025529058973506665167506610745996789640239377319203223245531750809914022563511871759983982478457031449779028787401580421746216881591763676967005348279095909757215206882493576618804926681514662990477594891426104852756201234899450999550045099413044507572112559486968220449440886586860985633585219604104099741212153497262928469430849027935184949328542371460266140911082382932321289401469252225087158881731421014951079331511335276988168208356721299430956202162631032110151953037971580087602817724379509360613924401350935230427318725679571135070942900693405603124699887350336156421033438402767275742880246600708534375925003215780884334763845284707116498824616274895165970748426123051768485133868439280533628638551974178458481841312694334839927224412780460151799957418128796687042710786777760885997179038781900897015986661966747685920105782294519028524443211148008200653396264499002049908558849404358012217545657710145133584423000494226462167774166484868256337605720925682550536526872979187752266124835944671836408846818364008413151205886505708862755155150642155187484329383670451730762167936900935634586815401723605514489286484054600684021506762368659682538188076253120190483918789556168251082769788048541460028208458191539973736590709890698780376251519323564971182499019292115726347854729008292910987631072828376802267374141474227929604361010668965611657279137683649365691413631408838083829756768912136742579817428451567719680611868489995827615108661954043836880514988514445200074250686393266139733322896616157695225074246528784091731076448799441835442775360018442301839862119313961591778636251573182554004361162908302655093238151947170715485431387241457080580056100915495784237597676540738336669005281915481674245635171383971859321983985900460352795085131922904740731802840535797871475422679585228950426502688874490138139463005881322119877159162762504762460782750970564907231854155048495569168079327940852552625574903484720245749768478601343233634006594119276802835305950192583127981963304633850932668453434176071784069955045077662725708225853702668658789005596941177785104393493673110574005048342856542561778915619660059101062918156075619878166011387745854910674122835854034687062280639001936132112285816644153378280379150480579329093368533771065986539012492220318185681410920197265014287490499512207723260116089896127833419703298046652710037007689828975481430499995647267204457841711197788599720973155360377397412628202174484588354974407324722316534519387860962483039681327761318046449282421901418518888258564358374943050094326957318144880552380670982081806951917218575375652084710032379930037928853640306690565139868737766162465121514551237226342601372961723024669024400427395268391516595000303479987716293926849704619258269089640363390691253351282192089569997377666229143308011870185000012381661913449330770906960117869684167089637978799829402354215272250830987739806435602533983578632544819630396979384296256434137872752002431925438299600088829796227854029511209313342246770676098228005125261230117629544218650127433860356990883080781701465338207045032519139267729506158091381746648614713581232773073964166588020487756953710304217373993005921049336856030746204629238422434198294051604479983081627031406597029235097417965434840697205194296852630026261208168977223542026061967601732006200141629928634686467831281437672735676665009870704415699254848585398058789812549137863472109348282024549809312934033012690671104665323746679280246851786666212654963686857903814495789560851934242869489678496221394318258580241206658340754631914435297802605495341235754293205895768807699662747345142336154888061419036664082134252105788091392380628462039592446869398813031331793094530149517029938345863679324631698730954591173909927503018296210484428749870721923277921445865161233953622830396970031455823832875069741096708262447168527596540737661719898410017677211056510338334059452547742380761118201868487177336840767197265202326560280737228500436893419262309983092904854587679597778173479957849997660942589969624404382481181015378484260210372995199701259603879222203698955396392205714351767233391173343137528692801521627888244182566227219969759927816704650156535511956344155987622451042016438514232941097690463275806504215451020428368494755443843708709556632220985690369999728041972171587384589612740609636577148131167049537844699054386843884921046707275800288815379655327071343951606830947981320165031961596915135460529017503206152978769053310050335799854223820835028796218026748191466971733035771860760193036843550010786600783453047710969340358126352346120040944395867582669931514076294050932760622053824062979182353316436982688498733152743619318031930309147676547776992422598575612970210474213729341072562029533015656507000155709767831061523905454325848833153575020563843604273099303167931612124974859098178198990750172167326060038871272226419485084239729589273957680790942212283991187447770942057006286181242650831063549859563754320439772333141105210691945753460169346306568169430348075120829206295090659075096406839574354406840163261767328952313218781991096967466177536407769100350651185877303899518189376032358145824914884548979282020482361269232164957486134502677096282694930401221345379040849879897550088053540830212350456396503175058777646953339426068377560197252289582323749631045352702918805977658465730873649256455589855808255890456564453134489112395427725893338317197224335775922802478080441385510124770593702715663597981752012570929465451332543557749142890058606919531565834673636711615556842606316166315454633147429368830571820147593994570128895021566438863709927060366314052592652374145268408126639290284002407781798748459473047856489865731334130385151293145864231331790965267672564514665273224536055144089804929014116696745061789613429700532294397407146812726718825467542943496599261962078305674709591025099798943070342110377744201903666497916341370241204971123446351952298689795660522234399146577483696013212562380650423313686210930473386119006687002220058117157995435868653653453442808889334854539700782427173101033075431020707340271406893423923830433668905772464312115193841794541985414553146063870207687156124161946443413225171791946934184722500312053090157241660688480154919171687113866165253923345899125046162479941394459413270232040770056746243285349862545351437717584789219448473973677159661539775142770761185104659421733413610916858685865933378176034477005242639261801599138804569087456606118778217358033236997989446158709515778762060344886494501050603830865396287176506248099923147507310280250935301560148895539487606596130914831592384332106451781698488265776185480391148698371755440157972960286912749910947187749178908339654485194298017486529230714853102723439211563635649171386614794205518763782409211972459896237698738106859102553147124917781439400004193433490769753437871036864099068439996501480683632051991457395649207262708773907072614516025730947077879376536299188936299453962206668508205532007985622317124802360267537927599858461205984547879260123387709910886598956581913085983426121965910400833619968819214335626814279894181484615623075064697295291675937303978703593493366256428119740408695344153299319719232777402855867519153893483169468075631742568836296771262422162022803151871781046736971925701276106111060665396337793153437682626671789890330012085100871576268502235663990688166057098258125872472633402289057290531462661074869824303375768121051035300451100592501184058988671867186830572452574499237904206784841083323327160699205593360677122365205214310702408085784727912597298829097796866542006014675480833749578925365590856183170222890473880217615736815242010318925346244084249176034193287893250142987679686410598020114240552479887284211661579902794689017762490118001884639161365819062544138100061188919944060697921516222992181287478404128725867965609604829037057156834464715282350836718792543155856256322437210770368460493936405087506462997198972778648080264682173724211931162337592540937765277582696007697913863827248376404848363142919990649505685569649015684524112442309333986019903316411831919431384023128391337469708019076416864701418755615874880062170578880894528450718034805105359174054938825751337930873741382815407105192330155534903875849887934210065527086509719557590650884504525778950039504998867385968131488361284515718673614803738849513552628911321056183835106351977545787646997551584311232490155222487399148366464763507613708706540057429211145918690823261329474453050621591247289604250760061769990203256060362707394680403616330496099684053557513659620674200995843689286670921425743778624266473957542638501365140473542531671452637479528189538821399095664158508557387897563382495588729318122991411524539900750512549512027083453569184025883564507280927284534288359457809456835923545806942544062165214853839003655316190711473148174616144292621354700661116428149482420150702389754468181848327238385802318630954644884860736600368654895801901271276884409151786435163907997741411857049910697661845494992405021677152732306739564406516266448694430892589221352803113474560683405579871213210150601211101817978413262599586325884967244660286608359572415743815967537818892262936866870527860211198056212701842331602458685692226243189908944740207634274045498634986168658609097233832886216813948890377843054842038089655165739702981736081531712953467817239721061157971346749220525756826855968730165505056558608490158562885599343759279497366576201596780937787209786874340147217131257084414720746337549148849927856085931436277458120564151962239654238199546838921773789743502773031114241890583481460860703545415502058153573930873346901739852416384098961149236052913825251587905845757544968673293541549961326968484636136480963169136222609544193433467110961231334450491352773070381324669626000672563020409203892649325382095864370348537406679887401145858740188374828595855984157250177883470892462464425688966550169945709411311540709011658061821173042533305244093354898762654617789641655553500903137321957122320900525304351073825243571117210062891619740466961196545660091184579017565031750153995948012696988963057972348177793367337913669088707348909772276606150033305542045407698647556452902442389714835334858669667336663037713344170598357338541156584034045440894111723278528750093023177288335471443724770305847746774781681111413264594873975862674887401700373766785725870175792074838876011736575680262082790748201701589781329865000152266855680180421957566822251812060641505617370175232048054812907429298434498643727717521450309159678732545128574472856191600476987110985842161460545767615308060130273710857286317657668564802946883416509855400033826078500956531712341337109276199004577083400433186795309452022735216297000766147234531425381792743449792847223318125115850336066827331038970917924098814001352433860076943409884825605205785091130833958030729844915458439467531975416938045504650909009780655115332769700261911692275411141100872006116818538549444893591365765957715401845000237059612797053557056019389367974026871073028099165002460345591343558124688937050314995312481397344383707129302183297703089564093764433237779710722601150213087413883472900981669904717931877627094713033693549407789190105348772341280246333234290540245730955416916850510400230195701417928432062258806088978836050589441784146464837175940624120389414589521076262442706663977984136961037147719551475723262088024249606936170405616667823694408775483980140517631131825553232568292203552768830545008676160482036561158482635794811073666105184006793749237133346680871271835940346508731182286630924682829745865797040410239638061263918558750835833560471214752287412444948653037509583065067509982508692270587866573091283186201593663979939420013668492016273984167100775069106054018508443252183804987502566472519079308710361515663554326486021266735280025083050971291542757972724926563084111788314255490276082192449505878815055581776589749572612436334815089206795195943158967246409308508742304645517373520042811146558916270739006696595002630805147640135744547384588715529151122482456092630411736877708390455238458484255730988287281229023610095899880882852353189594023362611683727513355072485283540604607314779279781732063359529450546361498027467161696965006575158554097035410483014767127079507345827666638239467123994794216241120564034925329144997732476025418356805271974684363412034505975701373986042314142627813607679900569110949825498041847562832686151763024212856717177909620350053155977136233636749277995380962043588467617749282448489497583470579739682862948842387496673436838224416602862232721072146934142243111339861775199290508471224152459968670964044350269283805821027623982344712294736198019576088851202737211335047896723912511686485810913272525969557902335209333408075735315993369987044878688178909462686010898127250417248761924817195281382931297089751088562014527175903057821563603842548490961738648662612225976925451826370767017978158447896458615802057667863711247455172428960124005103850574401690807447351114991312618971068313916738529782262571232720121702521288079089693028173182118710398412339695575973129573233414353894528025021767074213082234878316266787704438318692020065685378443421139190316499428989622635388218132879213958718463050834338062363917515247003711221230122791884954753765280571809697249334715155088971520280009202277136046860750369472367334471823035423491660702275361620643178211740395853182972864942623795861121408701333278594208268861369211879943368091825504330629676782290066356270632100103150156978769828877174656470504906332138359120936010958960414476858993826080236562610688628707198963423863757697906106850492890699451293760105273934646115877529327875201857422763048321905383978666402164929058079968517131340466116691222977317664709784791392306245005700897150650074172201869767638805552693768678529487861064529252962447145756335079759721721653524064755618614508533488101264370688555579626068987243542424184797105964810704754502813811276082685797279328556075584759932813446799536016682320551484782137588918551044011870855515598509258256759986760844680979523994817340491613165512737253398174998909940393408494738997466473576983250370260001502600831843843613798328589673792596086592544931826240546763105870895215370119014763781095136649028119142721861220740037412448113809352199010476969192030323478137680727055739236497836222313553629123842195386801297798076991814869515764864789864766543461360414870681287533800579890093578595091370619165299000008012988039600482675441479354259499508528379168899530627376399166858197030098516952376406273910907529225610927984052205234298117169004072356445711746952346250286321216426185362411156721205349636652960306547103171006789936532928536459442817053776236449906322280435257955476032279762409298104386697386149245864015194072119190264212664755907941123172628694562174359469589078836589012211542776138751637138782152269292040452862072248992431569678039801749771847007414141494230515682100065469569518716937498855033355333166602129997715778981175581120110006436090318288439924948853038098776958246960819925847624369171591088838028889908410490033149118114703370477773228405129018640119239999456465694591613224667190540811782437115634405798753027781562533422239632797864669858353215151574532225347088617102095392651916179623479569612233654194392394239626304935092266294736733609755906078976323464298223080499334720056794628448468605493730267482191300544487356176398330409812130035877641397163348920526706152585214931390151881807223495996460098217747641537688430826305612980519703595928879942589221686682379184099277188947449988741313078473786297071976987236226865272956852362507838035713007626950418930574289571497020834767642495148011242666909229839854233763746268132459302995466996880313434789120334505482274632553856083863410426221343876559040861756796034895619608288095000006643510804564603421401840753013120704099685674358769241330532764832021978792501023497096113513193836737715833780814447264520432883674005762605715979602586650007157516434524747067004276534776645764306816633467980096914468786536892352630040790053396953949719095702128748338167500813432277225163760304876192025048641902803021295173808769427496897464209796607246618506414803307817174586127428243118758445456838639238721269940378978526517950808910316564687520174021691468682912221181109981300156559387210511456405491683360840197352092021284906628493701709270909901085525338724170650720153085199147709619812266210156508805036903380881295614520529567222566360106162004862121595176774099710191976318012761336203004756818588311822975463701880191549185263500213143509314315234742654209625227699431332545726290906416874891598391452039814306501700181509191632312651887021263100865262650043212616841726682385909390006267608069520282891158482025600350461535330060437152991131983896431510113032545705364404390718610987067782225951505706075301191027793057275534586714529711597935821307024405937199728345084077590906509503098249966069002360545908153225996432835469876987212450173741100743027054237196865643435054565897050634690127071779981877755094653728307870390803121367178252659408135911465614064522837556627172041148053408332297791060129814617907579598347427673988686290983684222329417029541995575588565049961309528376548075569168621890083501544737927359677450961257297467263590761960843283401418975750151976378104730376659398947133547246913173917455159699465249776677713806932412071696685107300174016688522226330218931652557637896804403415082651526963685786091804321960167834052018425739066034933000758188455626518366832998771710351258381642583261241617037063532196948565722143770412793838285979302369306256081425572295062413127029204769001156692168847396500826889831567293103931497851642570687603706616115142191717288977679710752594873501598239530109463365197538402801187271819640742425108693469902877870147035856090238828831669644910790339697629679560368584033752546671472115386959109744178709255127586541804880797227541005373015459851041247878487815618611317511740541890737563250468832225225942952275405841128548064289423141944671060783785219118476529736164202194625612112578184426547649590777671887359848784556730699863604748515465097746690113138266407247949474863249456045982675908150245898164299282485561029824118107943492950856704860992455579866672007772637229831595343618435013606680586579814074688193495778478715836492406330063542663339410411653281111884365904581767171293566920384966462221449878569156165297991859530772425623115580564997383512677603919353920334231220618803998589361659594107776192240718469477350188972906081616578567159545768370451667536563276687706269321235339240637560776605178918386053724282997340715834953207151602166140564820206970647720501447065506031425458057875503525545129775822647902870592480012970918614342828303221466072159401481522797593850298692333509291193627511995476119952299224750851628638193974167267692492212117828331639322609165821090723206733858652885266332042574227715560276640940881708056770743191628121432361498760394444900400352366478632201490742028858242595409061527809288318482855250403363069595541984167133963528604177778430285646285379016890821925587371769017628148699701416631695502453831255221335974574400032160391374347949839744434019566377146601589661691838418843263457170883609848470341687181701418572767104183862532719690392871934763931269751433652024784646182419028064920091469378268080861121421895224308418796407779540274820406463288471085950276303964345303405969405471478354058255669548385125273160780778776347626716318060013748880299706543738478743578286339613069497639103435959400123965940374560247287942702929563905980450484671566662879108913915956448944174447340013478817063996155409211245808681757253579015998546930890760516368038182121638586038750716566837982746516804886919721764218578732055327524587722424818600832506731732099680181094444951500597572372795150696777565749370506063320681043486689055202103997564046334722215702645920176911480772885544680829956032015012854918090916669977012217426613706851490756298645480743389090771554370929963545347528266388408613745966758270549027478304219899217128346454839849470975764155655228650519586560337917717299533376127623463299501590949310205285732886063771356270608876454609943673905962907487176709913413413396065148670946743743931178902731042854901015941944248660173710087281479305326795601482673688145020077624568100183386951728501066039194845203894838283681730783267316274703558972703988482823175319472422774744877167517381812184987900410800466757546177986975993900112897868147553388633882381070484254526105855657188432169185375938611038623267964593579306928397852200441898510597231504463007196966134604168697763418770410875506837749001644687611800487163682941191714494990956518688849215424998797795511767426908476097237346313330539840201193542555575136121022532924761659331407188378889759191880009907971158732036208439909647735432805239484170394928860455395685693819587277398079229791660564824246832153025208833423178368065382768341671286303240626354971626642958224867583113809975218542545806801975320647969324141622181046045407063086715259447528536272859627441125908864805930215757932344854802262272838070430744125639183251118882857963975809046592168061981436321451766192473702487548020454602246958903217935081006711183858545856815019654626917876862895713542719428654724189272229918836257979257635483577252587181815758815147128892083772857966440521748632768941947446965375488503469307391985144660487824440445578935896591016083845703582139559771112014431471320718113164041174941903198046371628911804913685296540430111337290514104469707180552365488557958618656285630085329512059057209880950185716147960407369354681908275966819327972635068956961614971904690358512544030597971537235289782732024905551002488139433608682736954286694696924230351673564451297540761632623909566816612901882508724542130136610811798717540603131720939343816706777019560377751538409373957971893536452360009461427851564707335979330638197679684090695559266194953831759468727128167343790761325861722944581852195691158375696505831179610939317618131062197472111326083031669811555041420976146384430837525572169320383265696297491032631595972517834894452276760260467276476335716495447245257466281520654726778211247560156310982358735964017191443783298876885450783817598406149224144246433035189245858640757954006800845817864798692424017165921198381412292494127267917105382105430134623983644308607574076621467934736916618619786974678044725969076589501563830667262191477827208736713257189790934187837164296477284069625916118940817908879228975970222293226163916285363680032202777249618643364429465527425557950974107622341692340601572631529627637374367995972731093203709389001509271242859733894563918609659978939536393768245184429055552503884269461906401654959063941165356691861149341698375259652988218613777921307426234615457761296417048912572996539973580826688905613262343093822886559145420223915706222844761640768896875801453630191350294556945764651725464052222328423987648208399258421738504853768942512621399150084561213641853047472521400315914098918608363617861346116452433773026598277512892795654155553555893090494093348479462425696984861649908064435252049283902363496964650402222763535909095629843781192793198101444389713448989103583570725546794399245146991905849991531579341222985670627322499501431355267084735956705621468587995757551888677912041778883415605903809842226939430175403561200901860639735136192853302129215918750794706784243658861782912686690141467191099549869772914562090044916240748789999650214562163824732737752634111137891493796487917903387561455529074367170352463058214397972847326413133384255734103865019695359444013875472621849780169819539355467350621270539458207875759624595122505134084308142335781425420777169431463476627591540324516276773039897945607144107051923732587779878759038512587878974666824845280336829452230559523651756965053932951666910734550944343164004728090425874941309940696989938006989432556204273524709930585186731662966547694166758344359179319719459958274530269983975653125321537004918630559571058354041428352941655279144204447437254288104730971661383344280855363982739282255358112385525646226837842854161572299578588773008074280235146100394449629536335232369394881121223678468319472163848321872986759200962444055898353858721648645969290854062075978091086746472393079562373988991806246747835465901358629068608349881230954116299908379180298107989123375397432710441208998532842032831040901613256365407751805527912760862551260995351702028476852841227514526954898191589836609803597739613269871495792775397008749125569745687779044338879476341480915326259352290936599294151490311673240945233631273587713172689066952860033387289337498334209487534677153722455985242318436513443688103740852106493563717703977631457306505412161015204133778675893147302605654234080751461873526732431510429727939415887660923014354378845283298816324471487234667022724030312498623324117416362030375053803766802224112936532902830881592308598940027755767291225257008026163996345146950416014462843054871497742576456368450541014685109243012621735216945559915320779877331145583249460328503412696579250960127990707101422221263803284350633124569190444296997259762474113989859813057335535427015485773057521749223827148767812021125965152292406139024017162336346946511963375683245883521960322193007893233880503763451494923459704524713142907438672970805577527057707214415983250278461067425367948902352225361686065645030654302665342889124240426506285392432859381064781995870360301209632145143262108901885966519660627724017547380317957181665585362233784552940394187384473150624019540925259046957107607347237994992689166078878007367995898664382787450484514158230370735346679709607197560725099962940631975986330622348754866950669984770812159310948164672481835879982651988133779086628258969051380965923805088043060532351313412783267453647417890898289578182215400969259487194739084397583693623828439522538702416250184455829734606151449510350264145539574572777685566069876037213584723114278004651452821472225917520575891898394373664921365712559112506081854994236401638924843414273040562915230844203801853119588601742735708059314020111872740922780922367882299851959964686652393261004514293404547956277725739653334681277038318163016626764865504574833488630809103649057895074181888248687272112764985720121345640695439598618033289326408642231945244458368660820933003175213312386153287878453655913043964891678188092587422263367327294601347869979371747080407803815756679836741987226940445609846310128098238829910317939143415803167671569457980109149378016880117320472550509206188018407500599494066638612094337120870543076546186887418299837851765267195236043597815960666071808341486069945588253327708579193517587941822957041796280155875277051607685843193319896202009632467875446306831878935243983691593195101902082249586754659225548987351252171910172833064100017226817780954084193049156683587336409291170587489686286452512590249702111006284216487748452972003193274281214831308243508189674242376610352334120641312820777086957942965280170518841485144976496697726909399248598978461435900425747089813064510049573409722361329179362621130894178715340852096843593036256413782236333828696876248183973618375413146756155286661100889108074668156622194422801487248105678420725870743891325010883728386723026901004889587335082536675785526212380845715281274469610593279877356033631996080894277051289497238653745398115447322299217189524108266314025968804426619990695465822235691197997826988905579972101729294070362448088073321474757559300916397640778571087769701057325370621765452041450946947076016600531386252714563657296814706936162716940071086199283937980310125488332765371638376251132211186511562101313526446824412511256369273814513710467820716101677340476431436064127598453428657947716377271198416273781793808220602553821749636904541627731806694928090149855094953099360306836420667058970933668956638900233598049944871868629752384064123108699906685772551667409637632595241852309952717162244413348163948821436390544277281045307493787513586481418207993615055753017565996123827981864593121000887972250643946804381182899875820058869878316541856471415445687276019221443953356376815538883779283313770950197858596086726110714548684450761661415650482380293567190372803571427206950542729519344048409130793253202248846866849727195157876707537752412407401992984608997476190121350780298542729215998902514185175809760337998640258360367853721531949880230305675038492245353933308512022412627779973358991082001723356399093286799937716525860483031342184501161125288548523208686719562001782893703070052655325003946143663249971355841382466387517443696732025761924002501251828201327546404147385213959033466165641924007583996105403563844874306116262763667323055683793440433012427752392555204372422030283046830635385380901920253522169796973570165738074753325924087397183934641636248501740275378607270458700933799895943561747577646770076068582145492151706209774677686562166191910633675096585515895393556902580805059651786748151836238392565752781608115745792151182203429135687741052921006224299647230440652146180757547773579771563325742445418927501038176985701460761098731033198098220975971472727429418723796505115468827487793818475943933245868963275511598998226657228412279287705952970187266918881345301832573866288593815064261418189825584294853616964694486045063908845472045595974115130444874393723428822403841087409123851886174256373339853422759284702233841413968210463683712450798430121231140319485438750182307673079371583459793339260938074924666428389535831408284383005426366373452531692026022589579127614801068700488250918867599625642738607975780079766184628107789809654323732062162189964533077635754804634033889864167737565820627540368160368039664847829184049409100998506360236143237052323367034361359481119866861865305643128315041419264749433088031459806321368855293715241251214402113208750872483090347459394717151331699304746067473229824466332272397485481816891809585114215592860599233294342642473405186208455891642624455838119586146827408087178486807944133229612044607828478980516006968301058529986337676639514426140391758693998381223216058555390221186228261790539453190775967413114427892202458802934569890496545078244004591276545651356361194297092944906031185359272775851492923569174197211482113281111130529723928094368140168793131853103362982796770056598078422450743577036902174938146633213766782309415436260109250435982468377125760283439532513116493514678818179117583808130336812987282785105196551531676568956735027994411276547452771829619584364489062913783614418097131472879483938126425273889101033746893612229484292494935114239382825256344256098639626610218928041508172908857191902091633962381728835094259980370328207802691297332098618057630312327203403506003942398572561974902398534278535442237840045880701757728551301935292827828170570381215196505313775387392221673651699916632437517831822459660397839118812791415504505627976304546549492150406744880107904170637275062576843117162919654393295863504196111093174183107414524079382432224493709689344986713566997338872458542702645610428359605061246032283148355553264047940620946788192894019563530937418933512133199192296274632292974862013375669214141535224333913143895229274818324783303924303481268242849319469594220065527145964697459008260358465044351903686101721596901471819653189399235313549966029677686439963370031163602608302252988443795245943268025809093149918345237692382502197026494753582783785353807057247681899096715958613499125725707262705124018112013810560231366101964420236887819797549183166666182276665356344843290380417704581521091456456517230767166025971119904570866795534813143319430959679220020295170284530010622261327763133772085185181074594226983851024307532132364646444220544250317704663952009509417336852080154172852332652946080147554835055539154935379424898945012651212539002323698650199539346574776175337021294217476698225973301080992050750196959793163756046343135491140254583967401806955379776499358163917471067558543857519471578795322080008118114750739452295502497057150035757315445617157611763557130636533082542636243966438489229600768386475254264162881765460255333912225563525456908577495883296697667571843072703628314301304994187852918794573393040979008286335551046976216755077620759530987123788401735108634840837661216663144625771272578282509072582062364799188614983657390934124415219945287274980952964093439062053587976720004264669245832988679258298345434815952869408441047860354552643186416306324564032926381259266265850190040681804121757739390694038398578401528033433773919870081696475440934390583027833994443741889019781128943887221196467279236423204019709113153388720566567730232258671612274715847226891707209844178675968037172170514675095870410467167663078302765279874171106593573562090480272878856888090286257294921244430960764678853836214871585507323254705688370907086235155583185360357480180622166464765651618003985536227035604279756477645863312869561824986897239217725701319337532943264468020188001087314671117029816106468903915518369129558592597727815802388272107725380612931464282181495590477866453366554306075248625415969963687864464056333125288460512596862713620743106745902479008106979039898661763260902567949975217839567827156286229381984471554338891328022754748461680406844768747183636372862511423851112448381000507056069427943306191975134019848312045068849488747930032938462236014597303008834202300076977989250440121619307837082467318938272448224220894626018248011428647791903267622000675060919762717614315885272526572045309959019443166024469847343090418477982181971486328407652911921062653275547897548821866126816712562446514686191436592116502566391843323517022949626976026159915706422560076930792476413451304894357337680052040144009684993021420535576195648084803008434109961275026676207887783184518020103228870843772403804946286533407041155113966790766681681803255778991966570164829998657962178195111979903761579839294537730604725704477615076464017645764412102357407675501162624314376586131193099319448364967574156999373571677334936555688226683962943541183702891263111696736527585676332332405690748182102843030713535531920676599546809595825518532753461362441971309924733601010421195654811770809605281985921949998023070961280294264749356104514480781960421801552717758881977629882879661249257041904985408269310405978097420804721329920175234513040970591102993402638612372686855646153505615746937192760877016770983270055880697345621990608153327501504142099496148064085835864180034702228967293231313890139260823661406632031652220068760645994450769097046205767159068413110051088041423131732967040266192097312570292340958449518044477263900053408024435486790756163430529271441760334600704408193536345689761210068472345812487345175172972952814448767316040308416153045090979973737634974713306633851068013937547350596063675491923247326550180796247506033949381553346590998573160495762410752324388743352667479654789119350735988934053623940584363208976388871650033349764479662705219705276625074628026305853881631053118108250782859987832437249347240082641201708890675124412808725185069977975319626059022463660561710438442979498159334672048705029150835715830718426134879532448896658811189212753279946074868191829414024663492614564250588609333791066041567410438078117794831974927047288738688182941676363003010211313998880902515368157360994626424603468177843510766806764037787610152476539234266212202419934212143845201267003266873022422601138103434227381792188950441695822785737019080595296146859661965295645058978953141625019273815346628832266868286524955658388216358359543874277786033432816939102826206115146665310776728723943818704963770104411272428083359522970031118886628427484934289598700288020818067199866720791773546411509051240817738788338926524915369276922696302898076956178715317589113326736061892124677925671171406589515211041459706001600294357679757191695271114981427939256614304771080308973026845693446126178695513633900398298477361081032277221377485571024275039056712786050815228647920384964136463503261023987434557787359333565607619863427787380071889490735499076013884559457239547648364405967015488139685470052488950417156953354422577972994738724366688341399550933711676905098665150421272286413472447624496652224042484775428513596158322720714484700997382162183173395994621615487799739699080654728305210484573941606920239678493199044952473552293498897820534230960422653911848480781542298842479578037247199266223316560259392901421592908955057719071525843531043173726708478395533765144507038955407640713104852638269361305036509736554615548475937662454299660794158628223400146506741773747805120875583134823098771812567680279287660491703336076880099732564369445428429410842181399976776759364292440482104931379839072786450294959362881440322817175229675559212121807166609857083742854229572310872493618873166466490065996172343436145947794382045295566728281401354120131015159897109001869120728211900371744320579168537268498855924214219723868804993106574805978616375313559451189851462871981887455514608857654120200913200235341420613705098561685324116552563793298982330217417907760129584196104705427348921246671628973162611352110780402771802898264306489394971885017218702056804119555092839118306073865261228853940005769947767308836337814867077628735794787823223245061243474912726174489875994087313297660592590266173855875714016845106733228560175851041553061641462531132950893124816129674632452737713218967448213342043514241073105849526159425178554790103468458317067920873113609286183058195144165452171658621231687384438448413213553190118140570070649334211082935792585501403939902434272902630452047762927546613122422834468344796797179198542661269729583939925845775841859339820102047457689974399272784303307819154039342336477748837363549099057211816111111905229440117574901353692671301971338517219665869241608179227703846030193487862123483803193915681727295801472551751903119687017229111629823767377963492247024323456421612719192761634809802853811258968516431415480472100955938541330021528308673288121265958878939818329517874876147224688372054378478119873096209950841044332183738211958213930694916617643546805428669912964380545124192313082964539030933794350073439858513606829487749261729263555235424067461810904028405520206691789497687471443840525842650472311183041469335019223748367095015483556677296881286122181845169395793744616798923432253816569005812511538308294487764623894135334014766283834723306755736040578972723879569725824158957321595304496194385420748658137694582800927291182795659389670445783815584864378681247045427821345452983509843304531016089887014364317782381263612128354567752507598236124233677520466682941073624119171074223231131148042142875839800903682768546532628923131073734377931895402505255926894654774020451489835429378693031060014855501362595214359963578323667806112008157993887283659795379045107125167088493950405678475068027127707475201687149445875839202813722226573026284773134992312535442950170861916724646476651461050971832461016635664516226343857096790825612248371462660774969300019479135488367895774346680304109530996550934154910833342111267567569864277848867726314091484647883634248965339992820746476488933750195159188276801224555611776314530178085515049318544133154405276643814100032138951052621466589833270846144954564305437400321174883457198708251575880120694762171327056556436182115995241454639309582705265022176808120396521700348916866236769458266048805595396078632922868013920336166997228462228545013136151897169007242977056367306273208886232174994832691580876098433441816350865013428076496140630122664261863153104450536288058184571513528738791215046996897951464722724575408124116778445067655031359083819567144636847661297413287652035518717391202699758304429186975272831271503470222308168864893402141912389595052367557000122508660245634989084874915818210880979844232360126161232652832483747138796570424591001434246517539659261991813155219854597406695912421563864517275670934455651210603344697032992223840382824656928330515013163807837189306970044541837927918764225875499492278573299994076400725326786051048665148345706979939490891340522942480487775981985035856166312351236200809522195978524671915476495195659224635055208033931963144921568859578081898401299289113200704894085581262963901797895700388782917903807485714617929050993109845606637427729088657948383574204137038402173627034029129963591648034230790440673950336713415147875250873279080694813232432341094745358029084107781570884356133864334200935719983691305106909376549293467369546049121251747071793151111028144509355286651031852672648213658283020978280746147686160972181393128448590156393212363118562208539597381167764406614394215526538383869451814738298913508557300473736171263879755858876036560837809786890649194739814065188867945795142297175319569642360177197316279512140094655391462697134288463302981399070223512091986722107556591975528197809120472443790974808972284612918935792099627878937973720294870804124650711535810075989196594240888964399944443118466653552250920162295455891305633687530086795556817058439652514316648205465302253308815136819175919672191547391231955217568240843229593439142260163368476582877786310292325562375220374644114782809389719210334572778595725305911602698521523710191494743170551026996367515474804847519262459050672377556070299967321497264704633718881142488715121661427192525311552253985419093541153425760325758408359353372570195431705237785582507061091137791514666494869501413828309174560670780410328265637695341691817709044289387043332371374450071130719561960363482985143701510085762501008175526229224805343525466345012390036610585612349656696048692675556349651331507238224398552257332912248596566528073493667850683387007001502472889057221877110046498946614269809012921033826841487226570407952715798075298637780162674679829274238218723650059346244083643248043407508473863044778009041702628518788531373173467423787266253061393153118695046433353939558680251234212840703755522485278233987962103788965526109034360020834162385238260306848437561933761956933040873575246930421926839999690096197396565488012480899884159703483864104884978725237353330989682869471999689235402673467088785332146041783984657502279190205914149454929187764701539979338147350198473679692826550674809770988352619863433630944175573393334880309504732110883650441415438856838545998919778118422336222154992926956797673011971616397049802554166016457585710106338534976388767270922014167296669547235342295359468377024615788316180475020941356564361245542669180561619249654341639178466547808529892677084223158847349166384308334724484034104811333820740661770346282426015955665218128718620088513153652035815490647243138733684956581638268638110119046075704200992393976467480946914720116799003938467062232915754669313623562979006627442926720798274199915691224697065974896404690637067161854658359317491343233175227624146925669295713053066098192918733853819786943695093836416728136931831797569927754430053099262339316174041488947169927815052827662423302519268355874800457159282121217934473932419458472842989728871163539473226408195366396912051983596236185789695418579824507206843240301355719180999295588097590959340605546661831829152741257406149437348163664335666946726969924228650145109986650896979994195127548226017446864719826570568701676771653202017372252787498730257644355782049284446295291354293048506534204653454979594115277603499701403264218397261309882763418443789530632697241090134186470528447555814245543783610251248187437944277342489196983922121165632520785427585672523045909872297622622260944244424450174718529553460606863804274959648473987605157359048336212337112251039898319670176336003948025615640859882711703198998402234235254311302147589368265523138930623333338152562663065323641542986420468003180106471215447999739226254044047873547684033900411666592022065665038263767874985580040321598554905986294596529613859729585839673302105756235457711384435099476728186385181611467475313795349673465382626869533890976821273183974592296616714959700492049161154409722676635485443971362722534360058008209416664717749458246294238677028844377354689408546152219596574303736740863295398995390086523205187660943998892835095413370812748412218530880397995209625321252505415289323813236941722860519573867631623279398334538922554502938532853966977620681441183537484473801771848211503153947211823285853458408283036385408938023002141348705939712798823402636655837475190321790725187676030621260242355592524385419474772827423216369713310205826951905832637245404165433197708512372948849314673827564399421765511819027741965371175237819628195452289903914117290198922680688913185235878222803915618634005924490277648590550521613666536036046153235399965523895191745389038614228625391859133107957903067951184727141420839707519944311902937674339124589813078129349428941191731903583757833885166761561646624323924540302583440871773053003877730132643464019870079806806119744465661154776905259646869864229880511771082584685041581455889927909605672281839860687975599315944364938688523054979202620506615985904158770973905017675027606757372981732452493013161925899835594915341612479266842122320720034360213857800856281493427062871915831268495859839878634928582850143985114091637244357615021225758716882320770069878561571388985346615335537066922051312795124641273759444636079111010563206515802022125249141349748172107826346871897020612985049170853270092548710862155814714825003192095262472642401362239209851170033229850103616056482828883262021449894433590933835746552417043993359691647936945672017756789772688489853394249293249819826757693850675164984937455457080520746404143331800432851819255647101793623280481595339796776455083791493586676066605543144700608579576179413537418233000162129190110791971624417030955824139377462712618633725353555146032572938392793349819997762926049820990905953018016092781894836537949753340373093313337757212198040380510585911383866656595015921200419410215285744813225373180988501567354946016955124435612199050265063068807592201221391335592602189516664601796516488207182550146190951732462128822111780787691278313640852929323960768557759981149441777352645515274696235850386165369466937714368189607845277394628444294471428988374907101938555917021958622607671959879509888905298946838233462104718327383755680763467392597209619290563847308637306469388586650748687457244223297833248508352812881289317357639680395815778222748519084602494021715878924954248846654558641551109131672077272733027355864767935802709870619068184157083880484521666137036620858271234947329981805266471664117500285662104018577406021337093153511658005784601862833464592972890715961806884331059587556021612594161367141237469901885247911792776175971595419860665228382426348507828566617767040739424414167140687207250586608755268075076254817461161876729976325026758456833829290531224045475327094341209199660200990383289297128428861589046955358318444853961612921074145778701447183748995830311028453239186034461375684326178359797540972272916137218541173123485277535867527945751147846257878688519945613688040838959238721723245117107602950116578210357789045791812947937106097321328283943393688747371428816766726283224993440420234094505406560564143024930763235328615331278714281151195991042438045131196835591613704181164051100161971111751603498885786406306464679360247240453317858268393163196793351488351504759358824837335518070503915023010748297381486396179582938236198307376297855400597549740121768608168037261440012673833746612185158367101959519110820223047595898782404347427999468843922321299395517913270812882989317702283308847319547238594290002807049888892813972791624127090049832969637640284999931254744182354975927452446160776625978790737247553095824339585334588970565583774950531015624546467044495885624545373968354837769869838868463136710735867400674514507132971659165133370609407371471102261859911228057036044346510278361978844817593982532059156809299152305823321979134139979258700715841594252833518988026020246464501142429665301453366047701345026997323487371036245659809956932839701063409137338899120759220849832328426659544077114739993767463530360481933118377124481898146044450945863877206243697719934065961297059565888849878081956145271540920551109828573076588659558262721784125037145459745437519554482542115574489184447312017034716108832671664782187608124936522086899683183941155401060700697191598264082380021831811803804916268951596600832282102094832108193540165466442887377874240035530648874140510931823433516227838612688862764663800708728122255381876018898716663239482786410858001168639133853958383857221427481165950848239274969354910563941978597903649155548939188937894872199337698865612581651217113949436770627991585395727950052916785381564164136934264533412903091488798183195511187299913686680548416409752795194663442512017494293118272182053179107173663112327977813929806083632081554946516217965985526310490379325198523433591694625741466990182130607171313129293074183169915372678496810132734822513045297663839333728135560249801335991632857049299293897572164911617060046091755317114157348026991946112019260241027106099276831807459939178798936627300082950388649573734360596679026758615638385089514079370806575600575446907946631330292254748778427077101013931692082690216487640617557035818797427313730438243039436141462744939698574145653520363287314125833286743977371857026410515893198331043235020329002204914163147955352888519671190649918452677728314792242466854945789144560765649722795009676014551053394153216876535097182644291057513926312092045057810841535325140272225767894784639707623733202868894494675759745013707835525866291018371614701306245431670065343753422704672864375001292541167428536756278012137049748628191658523604518958826998078424527408363873515975033366154338025899890729355257598753465362503071959572384188008443041517370450106158174620557830696472068525958336772191853126692977310772829032864355796839616644507041135388106709668545023875044750893691197333228154430134201295941167173944678873302191874643776916254104722144905412442311889649467660643455960696436054172445914795531431008608952084278911584403232989292757279509158646391036667209807110048138158665242926070576817714860438897328747286532676052048416410137071366399115001077164769038074093372881585860677225494650295712668701655537723980308006329770507710091592987704705591542642907772877454320048245793846072887682200068138354940106916285212684117405900808388479472004510831583031289962588943037128019012094468291794798171716576699159102682492056099869941560862336683056684883403311779945228186104093414039270971932197437789444052893645533594048485267528122649204637056391333849300462983866180480814986075423649330882810184660210960908619289727482476203669631669911980405162256505443625214128351618698806142481378258746277159186203885589846932595534607964715323126009811704238303321421041311184898753325012306674083802182405806509968667602869975143103750485298930114071799407590126912772560937836269477237318455815457203875332753026053241739055986367365118092086457956177950266544112801935020106700252234625082269244826634810078494165489450437316543924756785323373183060980985748256690088571257077744743320131307464179167014528004923575678758305425094508957679109248138419127449728912407664039526451914508377494374144740545976605656329288861477252605354998111992392995521657561752420449486001594004996388567584569296866151846468238770659832040551614535643019010433039714026322007886686903604150880775365507748780882039928121966008183846535370463002164529512227480881426458351737997272885330248538407237259222338904170820849185454182746647546519846505121700605030151995789020264356315988667511545935036097480853307292179674132944093747448662243731501563331355069446525726594034737592597320177014153958252766990825730141907755267887195677585148751711388397402753919310354799884294929243668073596432867400813434825203982998591918239928907660957548934771528659039839151626678728229377845066695431260954211633554701665892303819585627988881701883073806144249893660677626449881438854813590889034847622874772708053871533555611229596421608884091396510908062492418385519198442349982189254465285223101553428366374242667839814703337330631710696028429681862154567025017994746635398988032109764560740948633747271197451557272044424602484244471753412866007716050619614440849767387476370559377787084443798073840367708275729220150706919551524533730569404842539158585866359799198264861878608694502180561493747801676845983501402908409257223813425991593635888132442567089519427899054826460492660918589104157946789137534062898976597806318569553511376793226146023804204762002711243621713097273221961871000146144939757297307200171837420595085561662238181357430678595754470756374896038136764581619454121433007152835726142452487853562390557771948943430960709296434923902179885538182308312176536495855190681435043713680442066678391722530224533359585982443067031798237738517882836264294213912146509932861119679929915458695628750904469038737658032252013731102653747995502639525533113539469598310789379352659684915251548671847551917273505313058908814970394065181675313347141578987242331262716762163923958234995545955607939692787793047538362281102685550737699302456043073095508415033181689070010666925068464370375935115008495912739025299299525703358190102732186967166139281837816639775916240161337893905520115294522266105071904110268690615800784525782460849843451992417484075159506306383579249997709054202419075534988971486093168414581592368121754638659266813643219648244724801610376882568955312626528101833442775458242789630190289926117711545287580835633672846868716845269468528307526690621704879651209114730742948584481592231730398859919643151064959439436840523979083274830586197071690086577821164732958306465461372389397364519068934234054824449767989914193530664006137736282934239170125320017871899941360267976410579807031046768261954942552916461475916174762613732073990292615751569666947423081474956633346715772003164834662247984589548474025702070381430887156248556487067613148558222882160292668490672995276795206908022710051676710910794224570915632707572951484631872801814865063880403082635528360931747228883336473807738455996488849036940881649728152067818814581571033069336627455334879961572602105101222680434548921762870311272751039005341815380894476740487531759260247716115242184036320524700881566261846231193407889110191235285554332970281320367021685919145698212349618698392323325767382594366706792828910438447550718796996690915051924218357172474877154429265134423557633149320622684071458990478819622505528204699909681716548975566006186708394995018629270540121985992032709710371920278850226273485674289859484699597787443462624137036685781945770931012881821822835734388106526893625735853292963369589849493611029220937334962788963502271906184653454632921754227586634983980363400057757012193103326164814295437440332510857943512234216700389608957343660848681096115247448301056905504370620269190653220626687478710729424519979274602352328602761224877510990629219301076315928585543401593779970835309970288573854835584542438895580530051646567542261651627342575731393963791610950089509189415167283906114717116207224299648802378788623835912349113412432890724522173663798720648930053284580145346416778231941713562395077168770116811185686194586030122956593873683655273366519982881289589260154642177847887812906610568687157122823638164276596274896626225570740325647689806439785281686007678606147074418981705467054007876814474308144153679229087844837910728755331258845050328166905889924333265003227406078043221085543241914752337408234578312342326892585398168256901647556965065529508825696304214794379032701072949074487061124367632931254373859027784841520239887660588732885075152703870129539363021390347301632165612524789770952840678475003151414727748750594145982394168910762568572096389133297538780546449734623211682492418954570400282764272828887105963992200750949998670767602599946883670251068973804644670054048725276591719185875698400832536753571622739121832810349135051521149115193794395944946716202318304237494105829757835513072068353188398719429724905347539284049239717193954118307012334291687505390598198457061712421396775507599762717635938365241373959897728078864757093423198553952238157603356951294841903527343551019457870541931069709738476852920147449294643863674987102066055766405726442081487601155103836474779359221550035576959971382899510946268720009446474278720718072270649715740509799214372369191338818021857003347316911909348097708645756511682395288279914805509035136032040464096741432657464692549050445632930430681175688054821185043379822674375926290760994751333360842281348253586011331259693270475444549859315575172107309401487773800442135451473093384957458985460891514496188112217202268015124417828813324983991259835168957221946446049883320573059637950930262275760023690270527425881085993119476942042513951762145615630098457933213545111268009196615846960725222873716811793471585543330009243801330149481269203690327737544426278194793410639008183633570095565186845929378623969441318281592215034912622189443911858443303842218559116331140570846739523475993676758896195544014790470495158690996990467965581078360891644397116942429156678784645030803260687800918681449246197423802514166595241185100664052317667864416996922274092028965822358714645637582061749085687127870479476616215375348836219992649655217071847864567943194241111872078114115008117999197734025961320073738816650274521623609318060408202192969131105944627969465850488198768559359237080937792649117177965669832546172103599658459045844901522588904804380046940812850400821145909985963200466728266056542905520565184435807634345248078197452046771789823795958460772489456895118439498107196866315669925732639142515093825022017431125428358502002797802758780086819898049660182637661025685717137758925612632540689539760960123759480771072268354168651073396042931648541995975291750158865505821652943085827337337546248511720822086355775193429227550407694611312526066925114395213119557242434603661285963511837101433637972885074914402993207277331068955892183985341357911198240875067247130227575290970792780480430817632369196437083662156710109788778660087707796976440284721450303053396523206409984045671084568026264830629919579379857970329687258137656235590388031593206063730858588933772383884592937834795844308051256325828954134315489578530781191535043463519696507902612163678900951993423323973422967837767422301927694091755684007396613402430861835481228619076691417461453769496034258411958702760391722251694795968915891508901051619706003340368141399157273081387277086049498873061947661759971694409198062575861793841261861038364970983013283966620593376092979231839523982961913947038031396461477479241890603147260362228303404246097670931457890340515195262812115668040355012810381175507226186250372376883339378700451903038000930706044345963597570514891305317504314396070543699957372322149011778941726486658525722883586919195524695059176962304645821364658379442410265428027868158531744608279455841089414709036482064358447543341323021403568114872733470655935924393582755562148453848818901130038614155052738372607689704822981808333962446524678103358541093869880676142453761301306202834507141118434624454827976155744697542001377347483509598953268012096691406036826161044668009417798964850159610588489221600451596285050103234724346042867360601536685080785770362314848337530842328083776590942501235246877059388148708430598235403446306691532248757185982739668539040996160965645797105627867540789669564671052453902096818165522059426748477081050984504335163070055727698011873996793984429836964941255481428299231366640755342529517349283313199443297865938231039294096515483710166024296236429108793697349798369728422880171590759803270475625885439339392797578133871132249615608914365191167531109053605833001640082903023895808186497231057050202649262422705236920525479538407282864000617895120928353230526451845874593987876496402589508448447704299745990835708022701669122601924825176251933644574662804736228537931966114824991538920075424607227527778797728984175285928830733888297564622340681348856344539200032957633543098847833226996783929359625102894480628807290061071737231933741427577168128657147702978153770962966023386296290486612997852833129460753966485475138284081748106909077507791690170639138452437258153806633431184559265917799044771185368863966595228718356901651454554742605462585937472617477874437429134235726559840275199831556133388172539492675363695668397013622119275978316788400975834413171728103307427123840945246452472271918090597522304100260299416893008464731804643105594080185283789467624466217267754794387051002447967595994045090236902885560329385272310951635411844779125439904043153308455771155008469756390796506981266174797143236558132199221469841734527420909187832413994558858297085470367068835095380512809076228111921599478187731160651304483206428614264808729438658722770085069530445044546729078564433396524511963306353405207590453950597848536753074823494586692301858809749949275503255279472247226820656953739072939726603758180635126454674815801621016934228007386377753542384447495565730033693324866714659153092912633916869504185631412212469679950820200049228691249744845634292795170034635097942859789719899278514429850912692160507026495406022530865429097138237958917648756354980625940054098414593171633534291521335967080505788531531042383774562647172372720517129123268944889944611542745136806258325974953522450644157751026835444339549646902692432424570664219080642537276507393716245336949126867727821176227961394071668018393799466920261373324021471000640983652511482415270207218803753067405260410219378077387017795094812914207903543983558896788332093900309161570700924097300890712569687507602753931280144396175527305448260339801970093848676000383125815550454660410119742619020998936003441950328061125254078675053317098571037300787882804455689843974713440311465845246970368241642384946692580210250375611203046386429820528190202184643732594955452396705332070488825867854730141202380397805428001837700150689402767483077521216982461129389748543836315644036467041290188192114482426898158463599492860114276708616298908406202708338252079269118140651526064993332254663242619830429115745093180455206893310508157966383713279737329756850063272774468656670821923616734619732699208971096197743289652152161574122278204567197083586428593680613838983952028509204319613601007227307738043142215009898383386997499379625234455418869963141790838074719489393516204132737273464715593653576527397001533953976523136331644290828139799522555639762719311932991957135321480199600925133855159160094733256180792459518755088105270634552772056427790354767835260864019912921771180444776453469261945576515051365101646266603164830718828400221527520465786370472301350633357790165706519423100974132276567122531747419658976422071084716319649485718369151110336437967584992923673338787099374148517145064938006742318661610637680220403968880477468424412129929443432481851128197090240597519788198182925495403096427835231087908166973416524809647931329109386667837678803322793748871230360782131685075013021258848775721627655796412037974221883004104166175281880928667232993918629998232152392279914688116502847980045675120321351567545922184811875164567039283740218804750718873110668939738377784188948718077309501235308820975750776256828215578949139382409899314246785739543865935680674244152609331851757831619866162735593220151229963096422518633152032367950407391487229322469832337462108852489157832732397515645181635577794876097547892425129077043413460433395989067026213923481638790738946396264391196766226853495006702923306134488811874443076067743003514751489387331055221165233063250732883079341487881445764155360204716155586782721015409594598439121085369366178213596398434819308009430279133033197289443341225813584755773466060922757930824416126318931562712288863288873190874911676173174921624378294919101713888497439093349479577037628792509485580171159889465660013771742515131261735311758611971648305088993365896968319168750879319654212866901028728814705966532840104905749410878196745666925609022163991254247604699250862131274178761690515781894808875619211270520322413983694400363258732472738902615973298026681138234839522903002101815037185278087408206956588148686699097807278815738995552360691252085833081727180182329765651513953063828891034379333085694638133049913726206369887917511533320914481322341334949989521556124787398218326743192980769123685748014287061762898795343929943772716553019081788614290647121723462715564014306970949027842138618027476504095674553675970561403812906349057924916401387039660074945789742848497410547523259152292096666283187710507812971255407406622397079579860267212050103231344517700719309475343710077572765200929190681997092619066922362636486388747039601718653223062003300183210052470207441431430340354696458886316820466374620105058841629043310023374119911130159902415477601985894273163011878523063937289557949651980388124046632192970524120932050954186295121971591447017116232635494583481427250954937969511318505399593834730636536698637710637715371247105334811621102674363535947045016748680789901898553427692039058688692408458846544874292308682945297792300638274519379846307638795786594345088217172835338717254160544840397471838040472141759083366587224309889283584307588136965757751038421421370766136514552884961974941750942734977699320355374085053812804885280253942875967580583587406750408432340994255389145733638627373344029204664907949265573882884068554870449732567692378152433019493511886635804053513159368800977441239518081050444266004591963802105081084055656837526268026054404358757091301965488553710632503039453029853269175216917673274356408520355149872926265237660558023508040155422147363375940688935852534885393757036955606428732937149670426837564140009579169960512971971445516688095703941361615149568738073841214319786829950200013939882429085826206403606201787162669480048560619353062671185337086327381426594070903197480898419103591920671257217567407927764240316796251972258675298325514246310839784704856865597029534826283995541956716368745320889156769204805334995809879953350447669027574404024324981387013787189548084188252112666403689645034690443138438993923519736556289720397494124728075285572957923993510395801378171711015324905580431917957014846127034524032735086010885722593193447519403644630644616171793520036086300083635584902075632057363035342176009408191373982401926592131481204377000927779556598269671144408438390450511669012826165381226831613377860350240523296353706941204843946978569350705943014763357523467961338013423755552291989526552895503083847677185375442384631898987144904096228845995803727746977818102701063429524325188622023247914849069791199174593031161638191506442292051717855830203339953654948595055331446658346971388690325410895323908263110978715390787006156103986296249209745142006623946290408771674341456824498914715760126927575762005351153218087913110190233984983427852928581026612386602149805183200014671825902903626604523935962149274911318091602278491556922897557785200289770227874301574750324566375763444028430737824696414188165598433372198223480722459033011147944476227888481319547229496606195842908247627649384925483936728342238651380754348229686818045785218746581336997967991787007034197140549928660804800320221248395313193776437145133972470489386328051578422458145497657161737019961418397577778661140152045740260128739533026043430726774216727955897651072029727452729771644826394982155558615330571097887229221228974298624962885941659088915276959464803893975872554038796452564460220310801374827374949734165008675834271079028578460272495542518848182342037867216902853974192050432881308018831811159188176172355521992467763467880722843557802038757107755805292848958786417864437390250872799554460585897238881783991313551544542924923360021313968300702638960158200651813600724567061663823952050057080977822632303500793270005538947964652640011810354151429380507034120246862461446767929614866493051660118284659584512341539533133429202986791542216933278649539071644417955737245242250759895471517448895003228210841250559534112362626939603029013056230671934595889818295001978425629686864193054965788524868670606351591567055351226571097774050608135592815533889324892625010887904363774785430115909358122116020285053002637256895570048746076462940830718891055132146496175873935773550455927956846388676873758835244613630634222099649057068770702291872109709660661814083165329837961862600041894059348219121876570322559902388274860013623605870719574948652624535971539402185917105056046887537140200681714415310320678432486900541227098788814652127388849154402827337499781624590717518049074627119922090758427923828561394522989021510207768174394894514649268444107309587396476354556569209284796222824779303764615778088305321358539043788878490173686077546144721468055447176893428687102789626803078466037237407802310665652967740394602404365157251120670466591286326694406383374498237877203197108957120487068477894445917068298103729679621565203435515503998613634716771208205810372294032419843090959147205438798568777594379492892247861330762481817711618278424047928133260680565973102062848208044390905130568025959255329027611078047874368721912110624034572136713552674136842209058739314249114878502794907539254935773793955788451939556229620566103960094324063181535774185069466802535586314412444343038390711275755670066369575337225633838770728625809875608050624549335185665141083303001314982314597615703741744325769399602660087599312166356134238593488458347095863406249315784295342061392597396334304693665697546661901441504832818522141217830194350201676685778332268349658884599828312696035472755663895899974255029242704983280607328246498655803295531166658233024959267042724536418891515054313665737602364924630598055370242045126571360702838089558762338854932534547868432884172709003806412240262852199565433930304427813131440302477611623199639490780258702961246570661749704758260610730865876070970862920518362846121118973511756462293253290754539391245569159881732459341445506119335163373071472853655635823438889479970285544083965412118795013762006918953820398710999851525050219284483094776552188496812411834250846375345764596496870003178595051376324573492668255784259619843694618399964334482115073191784180982864993176580760963495742620519193542909748638467711749923898591410974506181973533173987331193464014186305411743430113286788850826407336347940598576255785713262277940354636440240775894856231787510616986197342061279974657899363588193570979298728210148657901312983397848130480375859691000779642163068912671852600287049242162959409053303331760015331887900819916797242769209593206021882340128812508263763790527164200920265535731808741820397303275269153468829757273137497968818682209363056305328271905069679420765443914872491370928386546614500272075875607829437820785705223574772939811379242125497732510066327338292949490625556589287932745043956528473241695229708706926933047494584438413775674204356413633081989824296078145280051776667206024772418775452832342547336166917486765931782291848602189678637349476606703296991351233020241640682655420785063595846730124538503356555011411300000780674341930453529616301551577613139631545838164282708807518002258101463416897577954396819327401838814437411946912186506071128223041641455910685875454696215038602039380894916280975521114360911538480050852442860769648552858441225034170584141970331852689057463187425454726938117065873140190557581640720975278762615446970747209718646349549440827239768097285909424043320725747001803234025988292040155544485065033083187193420262086516885836622762949735213617160382984534143470478714521376360351753635043486262784299122527931434015617409808259893332194665508832306210680987251424939644028209719345026298853757491504000342941562458122338174318616928409984101642854934268962701733214001598892507296655379965390465374289653371215512622677084449876476224403181822617662592870264461452356102629487842627777917826161250678711403482379367096951456341850364279387979705136824037297586446471726198919339101804122867327625505328160267398290269574904273494862822453349048333906253769827715335139204281194304793856907907394848393495217681013821952033758789090120383151430663559954526429642510533591076791207484330347279053147617837178816302202556337465920280004192587469404964965124882300841838053935311923042515125628536244362431101916336631719353801160829538529168849403124719743157261847167624092636519109854574278600217131093376648088179174750505643406405939856631355537404569948703607511361223910034729069010211147214206943839629399693792936856994547138000711900097499683191065766267432762434021255220140290074311332289912196213951805463774574945078752375142199332600607085729595993159836287403466612174378850778860680929215921824133532304934755916580094998516846348442491880793649812001694107553976060134502539050073601567656584810020633916734119055305930379376640420400759836685471124143239071776881257682121952100709887251906662882671587134287446338839718413526917752674880418074263053256603096647202663827881779652026530442763667572837630903802768742686995551380872996263905751370044342111586116115054512900408373525250418381087827876867066225080716330712843995024966244423265465419377522648992535336153355443577352384162945621944627946318365248484490568472655809490012472573323491716351012748883209350663676431591018306116381810322570100641973071619320552204204295022863003398069529262889568670509149457329432569963964474090805162807026144148227543430222972332665120295445622221712517314729494129649303954015269445553559761159286392002742904410915849651463083482368375858376016957104281525731277338708212263430433124500068688485600358056058151250501130821623708181840740218841588278842449715247029452692263414809588938923324768254780156381038140961944766089085618699799044665746324153922583789986558653783309583566620200901277422484730945617632111430964840970320358836741787635061094255560856502594711198049344978778659723516772930013332319792631560981155452446398423875710589192049463495888228295541676738582335170965049666821631870246537892173891807718078107293166889944435752031592670261968677614298213382747413802270925595919064022372973900841756683107066565055015834557524637577496669686354674713544318182830076528153498356667954907960212628083944024442645038153060301138150176343997861066300524456046102227732005918911257435009712417612738628061507504722186941171437026554789112921841753611674519111320528282682503100996979267026284592297933873044439826157168224450847461100705018651648430103920956287632351150632858319857332933152320762988568826546839548374647519980113091569795381752309911326758743575506081269604501082826960767577763673773712273028405308414761690540985236247110705219056105476309295173228232871726184035346798950371020897533594563262621405075622835008663326204214707655440511739659432905938727621666499745679641613196385549845255775698364578303215434776096419429592325100937074548687569246764036212505350236298600867036300710249051453370409983100543876202682923962202028825092901663091024454086070997459217720267431350942439795346028948540330474384905355476628383614221934590291842844240520390793157951896464152736731793274378816638964480129417673226665147625786587801484351874491942705483090220741940341744367378831191759840941990050785134039315352404487765060159085711207869073929356437543936489369372344805414357749491854826966093818911971098149038765485336459598219295611291151249909759465753596114195330666888292838441893944087355834702223290565122996145338191644872367075004141294176661964546650597420989102020184362126647808963355061332868274719296570864911472666816161356834578545496934497953495872328012569701122081644065825503540264239194720274030390270071577768255228750859151470465847346378965821990818897286378718771106081356790825582043420601810491428620052873570418022310864038068736624594120014543062288202649614708662889711142065860721065894820263902394698193421439672542868717570806394054330243227300077593117573757873468532051622809901795578647061632969490280493107563308945546557811340565600149773869870202235863808295021925094036594981062456663425923825428667887399580151526842289457167385912707515049914535255103309103939350903660718783272057312762514944198302846771411968482317816463063999667631341704873259894656147555013883515548325196418087700780800932795886482003398122999505479840266106880754398055917185400245901786089963557487006270846786963877863657415037103664219932487353353134405898559000764145435870024477874320229640242885059058621790072416188694955932296426281318587713652824614419118267077797027221380854443707029988457997875731463790034663608900488974907119083313267356118474885747648006611620833710758693616239551956375360075770873796463282107069293898631506318537497410881446728538206027418361624645496011423521889638682821576272176418060220820705635379709773625862262716948969666383339433299468016112777560915838413425624842476319349792651248140218232353194266549034509365906108343662285114392248686466173048569004085505953800852123722617016354353761073576156763716302682240429198365991568180459543322571292332332205453503923890713957120790020897063421179403211716100252122225022662581445079451537824404122238232429859244743043375527990921083571341400276363600790944703427343236009231858550987751770928514465921483954436921490446577715110715181744399017548424184639762726007370354471014096633135165166584696581324543919302707889556333332456789967692892911062386865144548377293006238655987081816548014741117723919732477994125707071826078001792542490735086411962915358115947504480981984283505774866455925294418571642386812060967420630421613357287758773277645956146128298871779447692589915938209439487813020209304250233152375877301343023409442851164980452131510317311961779502501566540183998741596717016774804579674631595382173108875805223503846396153562926756252128539084918740026086189334179572598082466297740301915863751318300004049579177341086491437195602325598429031853140944318080438522551914069689226974789910855302620288304408189275794445437486707076223165451726360755912633089345453638052049339626362084948339412090667866921774607746429215370932083926359355267102435275532231266018751048314182923137908068802988260669524336422501772198774984035857243971955378298485295609566887312745011463327992487182960430881782913712363451155319670797108690949704693707195573255230294461837321521621002685175649768286553932004243647919299569404940165956297722943085223390150541328989590696027630472568900340902979268654932924085167876231460352001278641312704871217350265636066222317753548146860673909335225510035948313291458468935140350093895908387028332329815128814219654764739669000522892212920247872919510731853065211794414807913558894437152232911501341430501246395322956352794402587468851686514880936629892886248661125081373434288015377261788721766557178564600068343362085388363347391002605016932751193865814441912011645374348023259551069933621927058559510913719246341988452885369926125328408519471591757389018081232384579053593585513199698169123874666038872022496981197705983139814681554939115617323045191836518088443927880010896442309853720579414197814684472550377037247403345431477024550620093142960410922065770266621176609308457510308461497467347500926541395544484516694777028546233097379955225150022757319519919257045716205411251867647106872354187709439598296965074037184398206370736467980784053989833465181364599710128728120482269975113058782308407872334002016727842806975444264559653336332297280189231109936943062716134057666808741929263986869709423681191993681994716331433431310936985673221312693111071292404573490088379539100279285873395770508402938549312088855731439384929100443634891674730839767172036324930815099283778099895347117099448043518161386604751967414764998585053185109434566771415278291691475992190597516347043606725812256507194378770746411146420785486491184016389696645706981457936683146100983892644432822836948135224985414033359730121559862989392986485309178327895448859572919295760285429364576990155087365251795285522745727326175118518844574390219991831599519981370767299041610853371996173202070839580469437203007919904000113962616108661759311213713837955957890703434736481348485928994316028682799810148738884676951021301480672813675938029057417092900603603396112810555046173266812807217979528103969396857371067129480002640125376861565897760923287439411918489854552457521340124917946099562583854877685610712999868282146623486016660154487827921597536617666860513452610433301386069076630151971485418997587369997502052132094447075732207754080112613106018647887100727602638940990279921630640013531412052972597477963472188509677030385820448402649331673329512105427238692507862808846041415183793007953697577051740710457415481011446043304965812014715577940819207872308889451050011439369173593182293105865859951198657536729199059734178141868264012903571448169010878371444226500664434809810588232413306731391542087941088057150167904060958276050765263572134478766952463515780568259838716977136383184863047351255609506305307894422787361436755383466003179400123433819463430409098550634108422725702573766884242917203151739644505667563942736968474660213256955291754323486264100154006466059001673373134514520120110892041787226943708709039457924475691503316560939415987764365242180598891787005389622994966601285813108355280298756295165277624972304161630111914358058001562430652226441415695633849001289112863040341521082725842738884267975143088087846999425807525522574199098737445952851814628170954352235831599954667640979234088211282858812660266424017782498256078870532734668305887612013069171126410872707345128800998967108446585972876097909915744187502420764325953966568204082682624986328686276763613603310837679553558811851246942731668675581248161706366345914664698724874328950974155606724592550841215609021024136579644720512100044624047246530431475257505793697554940742852720784365557770595065520218632877012074176519274492357466488716683045705438594034136161289469925459041470583936444757959393064449452111070021350587511123625590219270914469542160121781732177338593198656882791956658412505972401954337802957567684382582360892392534372367874587313705479443815039484093064159330367233387035658801394357691866997433697676909505267423080861613312162543936756509030516205619662805991097975149085054545941099809760855225450268986818958788712788626461299623329199272974772600389840034524241954116674085821998476071416389214862497437086838594721975298705531932686848185684853759325730851598599229240765203011769248235775925332397096112604751934993018744953740657071543688641029653647271889517100303304574900993383646387516985817570355626028844721375248407318289557654257544930590637251391884477005688461972271697655347430638481560711367345882531759978757289523981907143024554767579497356128583561029340156186546460003113400230704580260684807830053033314527921999276385357487133933340742085811918140993187543651375613487939110289897159918166198275092202650678088734575301927187283988750445565260567880502121861248184472700999318666861221488801540468259612170318636483284189157861950665506973272673549957290429832501153199914335350378016203113327596781349282538077076618778277346005800046122569231175513519109575788726866226914028443904199477100954955260022824358297455945322372319313825310514178162091319288608172894712004563146147566256478229533787859338437595063850170743622411119248460762305037783538461600654236933434583519106669498391675417366773333750995569138261098974283313138805305210747098023206752499150910141770910969870300706136350350666447127855563430536368908001734650606452786389751981841216764301774579284200311756992042905439469456503876588913423058757736426812605887055993193201046691124737267801285562249864128091349092210863226506805177160173875453159882385616918955555666745047426974337008657632752601847668321565082971987292387647921985686175811748506398072029034793020047246491304453423298899947938533689544200117458286310273243829903799341682578016008599810964022510667071756707636533196109048600685066409754176113050791609537866098634675141152626496269568050842585538376348784487339758700117084778857684262068778981452773296564862884107885248250904215975743119650373083321677264649709889845880143473297034483018278832584544433450788299274067889606341762878232792320531164660848105572535481361014091816605780548096412116484729718716063118672562670274676701102065198878831491690006888029196831749759609930364160165937044393614557893496964438651576353784276882781566274447373860408046456585153145638938733178217389022291417898534108812432534911098949279381225438164012435797014332096819736333568580959972780642472151636239259071163688176918114177900954675021465429279993043603773819195003851299141386148276870537226191112398380738887691639265475015106383529825707897557561504405875745204915023098624406862877352423513690601383535897922088150513956445352662820434656061611400387379838209227784931507469065781537894395403085299106017833360332474843580484203049216211784898093683481630870839391129252348176006379411711212635236691995285248360813727566615566924678510446138462820224774637561720906424667695740139753464264235003884065269998860922931608007766829762608630484912355848860732574567534933237288993170820496970944865510936654890967794665749121487813207822417583107230500436227683988574299698394285232420147243623595610289008955657223821168321592008394216414765245772125110271060601856690025114852384317171056791880308349184390705682786262123294605009737236281223503790450978688356817944996881740885470390501019963706087857546688788499580504274520812430563221697209839996061778977323866150898989155824046025552349129315115838947551329923518666921368794891344806599158663135596097806606318607485067030313006517071723889857854680952680641755517817689426662009852131456737593922708980185521073556970576473446862058524770491231311516609860434507331744708320479762093940181742662482493808086679617382755032295602162570936035685357847137551298252855405034032250451461703485554795184097276274237749919044413026265010136408106766235065294219934518504923391216895976711011860753481631863674028945098803485961451842738857424442526863983011937735621956986452901197429974078195798466674333105654203730961290488711539507416203419803998050278496355798498700858354765260907006672540778383130166610227868292422696183852770390659293599989627796581518816319154463274647277808234488177575147460269166672593145830275518818756563159563049603327899707462465058580294141918890382471612451942504313995459495179330710244359197633065307137614006845725651025101153165793940865989265630488371187715167205930667075470352482082673662665890307172081564901483483393118656308664193252483246842211702642830772108132990509582502987020491783309037975034326453015319730424541787800230668892324709003229663660590910734156854829684758483991538140571483272015387232302063572674931011684196677774135258014244916621708034817958328766285821687269166172851861632996540010019523027903505267325667529204563011187147804628025032956066960178461063745118285647267461872979846746450148923550804139640370894732473300484075194608916504958556137918604155209843165061232900538929968038353580349752719635484879786951900303036178775147983379011938935755461794463397948354028002730366466960290245045621465607848201717488254239548403887879091427178855879031300470096821773761503854583869757776169653093610258808490864893812011093127373889536093469671479212855639865311138304482547012859154382748132436645479985275405618725113232248922270722747636494372561427652947378618226584875706589536129324485122959859191614687703530903922432317120715693173752336098308947837074365173552879585706387753822052015465981356488500197166407743230653383360243229804780254839981894436877047426419346202439233296180912454950189304835622855981305414289375080158869363733968454195689676325566926455412221440260421515232746306766586788872756764616753182052397503545041217701782473750297499319515081960269639583498587632245703792002130512962936019175214127704267625212063106990143268597720655485997572387262253422967475336606196375615343321161745279556661193473617821790435935796520639008160355103226067053153433835515193281753536722507380448789946908893230883282653727179458211159032956773204693022454900530080703921640700814785693211577553395119040539605762517433268830677940115815853425584397343860872322153883273206259580015742923929621196289280463851365209148792303010109033229316586036755909693760309738214247590410220822762554764687779065512672598505801755743847818421645953874683396554059264435763385038122120549118529493247392075307117033035987878569496146877431190183955599208665753530319271327403881298998490143588665130683562445188347770479159634806839660164501064048277896378728598112699979439760154648746061134475013153544296020669772026946244130478321063870844357985335119338157280664647996346263382216046224894510411969290011699970822004929919563339418740632584188140972530959144476938010382103004674772113616334473333573040588087965748088606119727797010251926850529460801508486414035291811402727945558073674934156588699169686968836970023231375982487048257878043371494840048490301388645499272709187048908917551844806102304436443814264551857486269679295626957867149032558487579056626370096297045613059347096130963954861259894032806587141810298091024385225810509864754788532706063284595934520531574852609037624572958977859290445673294692362436926603046252434377560744308739125789162865250957595302816100524679515430379538804561662689808853420406957976045766036830276494231584941429622452476264946155127989393094479376393339189704697146681912459010041345418151271502908194420147589404145033814807649382534996155810829443469350966301797851848312194227609376254336284131461921009711873420923304734428605613336578815527223135899613056582135823282071749676853739880644007156763077979661392805482152478468822766494614058951680289900743116762521027889823622594908478169335651735830688799510331409376209261383310616661017988444743018175119090586111106939354936350882148326645649871115980776802641438591793945003219901512921698170275669157522392860007215958024343870726323909281405151659373470933733516823244779507084799369555764965167462561113241306342930995830701995935983047386769402247250371325575625732900692006103937812864482009993889310330301395305262624803958867075851683249758072114746217913470124853074452723864202703676169155494270463806187942433293110700375541236427327876471408100524089616045161658234869909839880361652870262846743997842234426013096579500575292544624827932005587385825319937596354549965144753973260362861374677757109697999765244423025891537628846827263945348852247253015951023225083918143539610111300989944616401859007208043641024296767746026019042544426215855456060062898565461460045193188095889471142989064363718317493658354795574319353980592569640263699012174521359828461965873612131919208078538547906811540316737250169306025441220581002451360094004895078828825325156391239811537379977945521646824549300945284315823351804102532070481872651222532293001482728734640266681606024791765024060064606106233389073707579034873022634633761069080298784892652374235214373108045005340221194980554947213943712245080714643233312967243335192243955084523921432955677241372280729250862851225170118211119356396015966581363808730140392438481336243728525222597873361306708211101933722709472454024107039126289283862461009061038981297004952846617351709459217556818447708433781004203905498227579506044810869467303034503008771326394246907109419522608486494247240610334166467325112115272251688055470268944104765265918323326051913191946380575185859871712623445609841531633614900556522086212904415199176038722495929196243205283509737913900254515299384565005067610449709646022298624176112786718786552290724548255863395386156284290953620806714524055115362301582290520129831693905089117328655995961613028021996188439516529354514903365633018003295686597416666533264856051696982775582651476834531285596235818636981844871800244604202212360656936471539616406266302649371346387665265406836033520376200893498362246202788190213919860942719428590485033011180647368005102567283721803995314170008777066360860288754366352431966546722361577223071606726063877509495544331850403957851789736015729952418091155206270501507353078080661133609379695890821125625323205587396187035314739349607625410600200407236037254996036885125053381996674038036311403348724240583931732096105998411390192969980582264285284503232670740080882778467493853028141493965585534107556586386131210350853149286198056545684812758465841104526723459468200218560368586172193812573126441893059522904882648638814512291991482103974812987206965381327194605720687024208632953879261930837891028213623432877505351591806370038397139636158196136172335017434335793819560015189401169770028225516149191780790116801864605436353834664966293600300823838617992999119520347458987407495189835292915604803476105365173082477416436641110662658686264055207058402836181313798266053444270575803243389262495319621986613729675669549621892640068569467430832883679983663443377803366284657642609629141064051520288188162280983421009569189758126395544771659571350431767140850710865082555292019950450953546652243078717059602584890659164581584682508926692446988348282512545845470976594683046258075861364101017742059243784660970999322840166474575902366188560683493543479338042963717017304138043383587910370993191528374399173843207069105553883420608442852018914149394197436605266583799172937952104315118726138962619360594161148070278488232413522162964742738093189866936288842240812319073201217956776971309573729889670512651860329013874399516327801238327890512866994831261087064150783639428999003062816324518217388960099008498319878453814461474534021012511503675884282490128294701367931882761751461368293552396333482277314839519982090683664729270212853849854333303293307100246901658730951321978621689743270034850034008735818644236691073125425778078515893739389798841622519192098787315401428193475194822842721509031270245013466474640210085554856639583780452659640735129453903516544868626273647257943733124385647485253712657622741819403534591560109862277395498945578929603253593070496683928855707127017901956129167996243409754165249959245237579551134126960055513563550089958562034635307143015248407623987980506625785879317712950558511766543167259733225462148439970908886456618146351097469020234558209621278908724379106545053684066595865528026707523787022606153560945719326671364290000233429396717770064279768567666451206931679079739537927252430242655086096623025374915345151616960719880599378413508966979645909574473067012427931572372532897345506105740747744642568788841660238709442302107829138914459161036624350697903634219087651995525801696356909829262458936797032756811311932036517371291615019409106986750441576324770819392598925441268904570292048550618981816917236243299746627594512145373579362050143975521406369576863899312253093086221452742093511000281188305192015412922054115836753267044366737738104747315746590515595930459006765756425686359743328113460531849911256883566338095968581783835881101339016590161052492643190947449875472238507909955842909413676300976172640388013310543281374411927367584217961695118030270841916834532717843645135831386118982017440698386346841864280899284031328826951532973361940156834015355769707210907595250254055651081590407574068886166167000242519059798570973789257735076781114791412112134108884685904744865401955547622033674852587322095902295819697306431265248507310873328151412792829240814805667805616199639517205403455111801016206500119018446381663209445773968425860162604955799443751552933619123644786349182461172250780112184888574092610129910195969144461473299692022953165432404854421454589909537440678719008086429997442962082146214367750341727758586543635229306722144042164518537764377968015831850955111127892237109639014100483176782357629093034437107394382131536798694002234240056221475421714570096034376917498504315353673297372373483690789809560988457932350405955375080345174111960952303223831002290943728759939866119840812851809488492159072599369329189547724341151318189167992315800546901839943564805475598263396318639715546698791027623214965771092816762751557458304291124879299477927498366837171240705778995547162939979334372634471562298690135061224109745623773548152305770202892394632645760256275464480354402403707002498551072140210675440620372900137289497556555299650850310357825555794113820268493073520234046344583558910339569946160724182848502971016742629634802217393402386553948971310679458450837906124144540515480689594223065694353398065502559378383711702706709907748881771619994142828181448256540361607093950612331894860774481142733872855128277095036653842518473314985074541970126337562994561205104281107656587299368255736999024532032258360071479918481302729982132974408020549513832479646403671555309615469743318451232990621947830094226773200743760627629818892371872971043716422713311352606125140553007579405409893757282377992178365129418687174008649280817526821611096551568128426092737109823959779005386392804487648201600723509906272208186758258836524399053586563437570778261574172872760700939159710436286534915514208477036633022171939472704181678253130301025139896700990888444437899800933785092329193419584034381791687276337501681971201576013602395317932285635962243533198970126511792729723989484028492906973925351692007466499610440270454254530082870724618701641785952698660772963195608004215305975898724307266786108326752647968694973780920675419747550073744090187621801516291386024045356776207623232000118717519687836741389238761317239959143741538277997285134031335590746892099215626133970069965048547093307466583514619221008066470010498950138455362328967101485157444994041007341771899770354944342564005496830510067329007056201556276710988116589771399982813215899388037185516049576035562285823519444216913924217426703305230743086819868339015986609617891044019172723043832744647680813351110535958404707486706268111422579515436130567269181712047055968495632638625939586880419270519438660298789458592155121413159048441627248474290938358167744588304850997305752542750517348207164424780061329217209070414928732268873164155346512457991491340809657313848943186572914444481595801001911571301849843051647220244162098185663280429544040215520530399885946487498179710990298164337508551193070787765924639912913915911046758804467011437937824530531607926049664396267701462495129067749336809246498936364028082705504967384027261167728330835443242498746290774900117270192414752381801277953717997776132708819380978838424952001776744649497906604144654345601557292019154525416246563215228521333569288142909535924949654906443583634307391389045462000968515300251617013398420932195145905703423207378942674568979489392793636716959726885939741087782237803370404946720509819588648864600808836664483250186057691141007855657702777813263761799449707964854322278667227244461221112674390375479836599003872341664873431700392775302454713931185684648534867689909538197168883715041898121404935624276688807403340206509059197216640084740047792734045847487744772953627165426719130529290355366638457608807108982995196624924213387702719122595692023278661627716415773144777155054295272441852748665756979794000037166860991488240032005108596428206223148895940820001763553278460710293245388206549634680037462364925024627222897630227717240434058489298307584439584393652010926607582909984654148761822770918888730121416620160799081876977623017370919431953919149153651102882424284500562610394141224150402591651479268019365473073036698701810023729773481583161130679074925414947238728536325978963212623505093648058246502217541223633205447103145587928093128056843549400742855946578825150875529457830970163066437224999098900213320413437540535209879022004931335941347644457910732351628906121107009192586141160036868929860028741327852810908392216666837614015703500607834653865893122298695140321984300770606011045564842911925967253185529178901255272061226487682983780695810578161446726335050531162052410696715306349922954053998426451039481802224728099218465338037238245517972955092539576257884753302981902502568437758121669238785365097346199390735084389693922928027120742101996650055525876617661319091641079073646629653313590603055478483008528058004250479269145169604318724106096553127523098072844914677275742457353881880858845166244511791885668466446156505689939072647706499649629031684654682448049025203880817819857520464668459095901378872458542036678495517332583750616894650601785713458558583729663206742662856163860537197142273897862383473150798935098287413187013552595875633731403570782916190323770749407015546160188758324912029810806305903432942359588919408293420187545040552047649613194944302988276243798351059956072565840174364740498436057602818492665790524153749035248462184319098067372008683987286266266266336503462852897358944313406771157865343093090774023590186272717108055070233190577939889870690151787520785860976272265182335682903243316455790690934757493979134692952673804451046516673634876423259955799757988205680858417656108293827113229425813296259036131780057778011235593613347939280628532421908601462211758113126217269057304655175957048597446492058271115022674632001960034787379770065410811125967783216800236758465578786986865885778693907052998879614217296265650993391049341532259502180695837746987079273426856904633821840917039758777659522306583322021952004695683187463673121269171780435554193657471617370440179353780063871861502515842683329873797438311376088791776440428250282689966904501084370836858446818179985984451199813944635971945723609647236041471366018918874061712238397800279001161188576848233527321919609098790321540535090764516596857127025702177950129546232820726504607915613265838044324238657637918943932885701674141824804966792950528856263373404694476527766193369319754605916803731073080014389118591027831604616763772285076039052238221492463679796693123036963839465785409863016423686753387635478045593932456286274063796948169493713411858457318648332802623233910213935228830170957265567550793320078604528918652196081203609154917149770221326364216073706236618214475955927021884210680319530343634011526494749025821071016787761146300133250878538136318180493970508512350411979316432644160785417191238788554362358099938556019120581187471111031612050723869968867780471221459665241220123814196335882944848475641843509597224360302751436936645289408090774781757123660772516580866373550665984783979753762485785957427387404571755103254413900057282970978533240895907406733584600435203000425526444335565345813294708930669831376081192138437874726028308292056481174443238462390159331975226158756167649334387277934943102473215236791757507115760363698256134701921531975946735836635989240087496128355641879161211454791951947085650452912832237014000567343711335724486950826285893189058815111871327905856216640270233655032432520313739143545254367365643257819714837680509512345351825335470746833795764162223771915125541675226549825690123627323717659071326955894698985662450661435148039762993373358797769286717414604593132772345474562329785085687639007271508616894127213908183631526664851914215428619881477766068527225877782789372944613979962047425242555765580648069569392458067065269751832772588217412423384979331847350534201372528074441697856461676009859674187317189700964244676290887093539864885343099028221283657570685923302693099270152427513481186239665681645636341300877505568692994436753258275878537853277898774266360163443533272522385644171143112021156044326693640856616582669128607642153175164747583615193763336618273495445963876269342172752520250129894869678586864803165416342537211899675824557400141184317801462171826360275487197772020853082291422102760022762558925676710383614221679888118357327128742234864381922778752183334968918264789949323415185554803035873488052633052874052457766989931333417060937905921517665361516512084164948688166046654054931501952361838631704539399713756653756936338776921501420256145421201408438126550807284169378730958728891185413958709088005603153558343354342922745183958925370765867122609965517172908090815401943263666426684696261962411576390299769192438396292660560420690437583324927860634227921476065669697435607745845671973744290102494419137468843467598291941702577810750650319604720767561072223545128383852266604895683178644236040098901822616689928556951038417334800254188634628319302602998877304128718974190396502911990879517830751979384578028828053906148376615257370229763858122119032598083804189029965402875279745974933995372570878140509056152686348164537294898584793175469594292725801728291280609428174312997545483899525863997607467724545354388728279498079718728043158793052605845055230295823115845785341353303469113358157118895969663291011840985010381198721777753735890029483690470222469765978749576706722205956862468720476288324002793426751197244753939179040306864670664434615863542174254350845482769217100349755698460904757852422771836516546679351648192403397548121006603380517868577315975811363490121436109238419830732579470352021790556225974110649518622639517982393262060770876362914358058965407473383271200683788858508606984894028683892065748616665094118545156219092645669385956326839319112277963005994303958456277497281013956631890379108048889822561102359227838577773148388863687268972050402102618029915906916513530940453230084928284948625899388725663802849071851570670967638502491618346801640413089179036581271223833815225757808514830805751357427516993633391060533459600705582022023775973779625654652995454048926930184259527119382642309166881384455758393995149093313569574606086716815357439620890597482401103890006898046492899323675870765251502614141330211431320739642160592088241048368425889583412503381146589344831323237587802177978507807062620093903898212349638447169011518561185151196263855214037637056404207128507251194574655640317248390353432714998051730678923533976096722897592485018201904654869746235436467507067953962594262557373746189660563096703369779081042884559391869998045239945154226339090256443587879040365545328280086573573991854264046930988343838216209100375252000015086134125931671214437359676989104137001262773234244254562471858934323162185439955517099305954043233764203694326687671838587559133877079149290943407475575955041546639768487541603073958160299242608593437040065537697680216504624680024783391812455583472818254967391613444139099412172423213279942117643606284448094811218651749142777228578933869758662674234293740969737975328848040526007427759986580045909925642644835759980091028706648520747087821531081154981675585999650526752206411205224051245408516916326720723158527796764944945240690695115316676364294567512551643744497292512245868993154557433512943859320996196659438453880130544791165799299732291899338510355823819671406563161504117477289375942080258521675856762388906555362618203434645332205105609920322872409044478407165997316845660735289161848225095662483451993752455888587408032189240833900277438317552434259496367587540683312388936299664083067288554021520067846295901315692609356937065751142916885560748296203621259663977261587920413562417607453913308025982180076498767415349470515726222641234204691046856179713643646710006520798693943727538983770225733901820969947253918505728217597513945056492678672399956179435583467330259818867699188582089751565718248875308055935229857381622199005700461751248683778808348203463926720172477596736960976926029154742413771626381793243581671179154470858465609436358267028810603045124449034643928903357928737636787662948847026529852345538589100012876164529277896869914334864138980377507304365098659117946867504881567204693924979385107345429844046690760525631878437816360350410135298926506733254333687330108367109374093270702828745285536276832714068613885701368228910910508644240299010966592265028729734619156509231899675305540171753000171190754365193472252200182586534973817042558606954661388076234253311776818516046891197222767576209532855162287603581358706212873875992949868841969737295876650602784965099266542326566694729766281393222164651912256556013311071888914703843392080288271915750016768928673088464350384348170032384880608369011870160924992714485430432945462485101371970609215718410527856019608572648542297595823910275470589867708245747091204309082507134839278794394153499680555489821738397110469174119428028932110024311568716162337847819691720280236402613098708342017820293489112022623641116588416761140292280388547993763480727310194181424819478847261222140114710038207248478291797984328124411003347406042946688253908258523820447542712299113054211508617758684769595424989739682158663135267336921688862715308030074407450738314933760023977152799020802117221409289217514606860723926575346987711156139455319016672431357244212629369065326969430244870329769175262876350612360747111308360072348031195302065482831771982558034829726236736986690906389775113429174300454084541965129566509848020159055097766194722008143294268749279389496265831211032632279574263848696915670946645330055061982281724417657277109551081745535647613296706186315933111362383429325948048339371850975109862974636315807418375698750052262094927211591301344705690460911896854803008750306994568561801098704906991744395590430441308327924666877394379715230745042216478889931550695905990795775696454566274802192658521621217357411875752909142686919913856669826131980465845778214418910142126843286780711532134562374561791451985070401462298648868878048476164008295975667321591631532183160146853151729110279210218394896574352611645694821229774590852821738494867705068771251971283928841650045931489220201264556099467314181668655645195064942641990786700369765655887811729436782723893147087486482644971346234304472283489093415627296417587912419857065275847222606178507814050154708005881366265532358926466686630302413682322316726204926799659222510835367560996561677256203871730555017222148468047599954829549533968253929582053644980942073595864457841494443923875855651415546727575964894714783914773420868397330348270888585326870627815355716200977631959194199630968729000795913580371777950932664858195993156003940974795851449673776843427160834121990504852018959571938787564282648947645569019776856975673898214726883140145707149125110858404560085184037391014552541126784856361881509479681001824081622233482102704898871689864700687959435711361217322864392180348409493352565805365327585271952118127486783718180311778264936530941502626471894363236314938179028638050272980664926540353339030875384674963437239090623357152980084150073934609480125318061252188381100154165454045365924730676532416785969032321958546527787825358424347003621579884073835930494740598604075296507323939275645128895115912031590994888534416591514245591782671101259816069421333506402924425675594951914608662398063382240489650000591602295745475324776556856861176096066358553555144957866935988488855031001623839446237241237170805447048300869809891619539742642247049308301485370174841799386610150555985936463157286870740051370290950751267855280020485033961615988323807351799943443967622344625228999857468094927082102751404721077131342472809001198170056723085538040197701972911598751411003116801003039194410195858049635545806937491334647158952601137862110370639953051811708338381051534066431734745678651474869787286199768184462964394071763483107311341295641753394545742316981754199041769660753166184594076182847732640584654480713647539790297622050258266389187051873334434643813099620228800895857496383878811674035229347778186357163075197601305441066150660661692269689763093651205849118050040616772766119453304896942119609211082052870314122752040375057173850754408931665807981728940792972741947845281058436576156030358200556049596929167519164716756855171473920726798722618390065664610412185321666872406211541822451780803485106390631324576837050534781951790497785666516720618283633015458025206852356509903742270170712173802269190840758770069390461316767579564816268034428033645371927646063980773728053885682169181088592283713548747857631899317678955227141449033197658746522584886817556794617237523914048914364327563338957465778937214636243244408306513635422737323458181802237327226981179031039514329682104957272585684223326076824800343629128798479009637515125644409059475999675792001573712239174980518932414865440204925125649620347916257958861606653899179977687790719239638537952343733827562677552826172282694224802544850328958332961566648206593817236915893118370488572927459275619359032875393475549536951709261855365924169224538727568114302436254460585920251396358304138142146107535454139220894836344956005838028496106813458439287703159503316633382988303996626895887845057344689940159892189221630776686165645410700136985613669046412938506321364908231016217448821621274229986588199066820294344256354802993999012949798295255773682735808593606576972179721437093064412332131460944352035370722071410267160619662488374714380308849810104353775912013179952355882449093045951088624828756647217018437442498849013019908076594129381994806780157787966903110267217728081085068640542685651751092038346231787032661158845252539561829540814896989043036279118501742092432339651793787543110519350141440375164374538025272126430396325415451672479795386779798029418089902462738157552304696430160312750389575501415639855198143867252695611619378040826054779689902809692606081337022477069311528659780881273223767708112579573719301937390867753344382514816857769607249631888589862308622025886198199837362428882187321988941514463323249220642060740946324946929706689070233500753723958094289894830552595421147448581736334431128350190285281643515440903523853910656529429320366609168720250621958028758356830284350420597040265623185562167407027439594379166576429355423404828858601627878959791743002228336146720130761346473721256578592510772477460001016758556376010035848361417690650135810190847184752492679477412470405668548791857180441098091576389496959814317182191855333967728678010401806027184712271272424933954440197291577879756643810105227258722575651013058846706302265052695320582587545929423352727018240237783561451160406424768718991568740052942451056286795666549132860999504723742740405950530421851173776270838809971078604364256084284487715066533445580369383796018765662057928337781828060476935661369088138114055908767616845252593095118993523674111881930269810988240903419709651609118473783922967347108326879776965453866939051437233161962041662291566205117999998827732892015742952931874403526171455451518751139917785418138855466457754754394900641229625639288499004616431805145798560059047294442169160072066104752303940677061442958808869541511633498927598327379421760391384193193086653529865534513653276949117518269983399099394558552534822546961695690850663175466500112659894574639090004469730906283151881328281187277666093854570694107524151904589732721098978474377171480105333958959339136378858550162033140208450450142454450640702109427494392506537742251592640137012062560074124204147919475463172015597934963292232673049264800753748471971323774006299222794830181732213496931259586777583629712862904807296454781513933247364756541815784380102553167607872655981222349769951257613476010637589005694497413170382300778757034274416666260719314459229013653152897914012053013238891252051603152180296613550036759387047543842519040496467474841526977378060926186227496327944386492700896403187391002500131041045484086102515463836438353008307276943435559359286051890219917061302840308811258203296890646548012928172701022753256620691950768628755668372180371501643940975841205667294685963959180409388458746908209314221016256727721769942860863967989881284617940418514440279318762014647532106485711169684262893652739373426924794951837387182694098242490499307764865843699351840104999558602875727589718631340385346132131704887833864093682607782769746441296959892007911852026556565951049965777465228644573739649083113555346039525997812246349786695641781380503366703861893438102369966370796279031113767522042699004879252734485624830169140020188913673823599667668986650155042916513901901914607467390182489618795260212389196556013798481097328209927563543645655962297320430286684860052252772867631790820905770154541966780059081142854383707770382629751447104636700004850609527396958324168682953816166688915724768180533881686868857566773057405100390425843670611024077907010786412825777792455136748661156999258120580971355316457983824161327182236645085057742458364139571593551054352961617671327627486780679384107530739093581989380630150262995558030948810583860339765627287818568340018637020081545547668043801855464613343624485835730689158222580165120990360660093546993162028013080482213946940778220336986528454450469508527280341553240238111088642708607027152018087942762069271670264085485759846189233753136244000722263293861181125185365631906265819268312396095364048288864145926748611765101540559947360790312735537823923411849627793985974957886465583505562956459756987733897955260690428900057668542589510237667063337626791384744257038117978503470671255934513606991288540870514660086393090503261614503299532451834107684168058996439818086151451068457735625089593958920650790617260772585657249936856766267187296346088426163610767684711789913149524942042189911280567605186925143728864599392639503672749291695532763700374037751152103731960700349033505433517074420965539528382056220977092509542828411211501502113196566863045992276124570699813920922345864616462564779282530721709872239440770527932658554695113248310261169428957391272500743950705533509629834939994424908181637705854603866756554830634825190606539603337375860865723811530058610133702026313071204609705108468037528614889265019819011130773927423865347992363616194338323632157458623741421135103079711025587684858117496735050436623804446106914095304978606688356326397790220371119152330361921425985487233078158441092197627088032003260717418842818601289519478418515466562844409300250043684634212432960907051874327314374071349597417487209191760332799747930437777363826459768970240003076057100391004300622555755785031908697606321005776831057112226325055231323323365514672465444880458410302820871206218286196681479810741393398649039816396532040378004129211269077709542821888965521089763954586176729576438566949053719915370412360514711157088839993588911068568450742247654531681180688029959365687058231685964078584877925459150287427922347192769751353347515006194053666385184453977804371881230397171559083037806180745096830876656818623929603732754626264945921472298626677173274058151704845020509234877803979410177929285881871126057078763300451266561909086610609880844202598581063944863828974526963037312557014052997763694418716827309833387154069565337147132206766467685269090552956366200974013119718898935199969870291831714853686884693094774384893073321906786195840384051960313860039034694026295368397016773672637009324445279411738842591165702183082533031255398475747262839988269300051436777760689290068840078628462864487905959863755814689869678306107158271421401366902938995034545143330873466847100036039682257655495532449119063919959308087711748541403976313818122881379101193402199662638087203616439533995345518537987463023330492635421965681626924439105672265136907120720998821257368471119881782789026042448945236876489047247066027568896688035087455796148432742309824519220223337557210683980303026265537778744282154011936524917263900163069066543509805207739005886893433048374395688465485457342330265998451904094976826319754062649143909344586183841183943244097985738637007844542283224345110377130766468090823305731610612830911102439562439745611999151607613109029420566962394288038858213444209152549994538187341917460981018063216317785916592248696323363255464236890966706441798215619168944010354241122058259498899968456572904838060250774845319392245376504772529764871549178861100426613385450963312369958354547232226242056413309987763773202224461417774756129048705178865734925955903919497036102760392746156905507018302163852692231727177677689834133733899724291729805713429325577141246212055604570139214078238028329322557371958046368017800975807714576764779215517956385498509142921085728242963564969883668249442153582815329656328436723416635012214445653834537292357438924874737533035512142698006646399180376290896721244610382838096365376647355704827289318283276874827753701656951755369701250403453743031687841016509585781291021646038408733806483788032904733965289525025957761052441802476425330165363651796092510079197652540347060766562895555600108101652426950050285331348844246065978583107497884185900220670381298171547806638139245340399400178862124842053605657448543007171046963915909601898074510078234361572471641986749465445533736230522755089646635338412742848860302564960165030796646136711515273526998186015447494150976491890912787763136702192802383997934861906503193214075152752830835514590302281631265108049466019327854850036387776633285073715522832877480687372009746644613409347047347159507764610111367760897843812890515096919962056692595933381583110324405027023388591942950313375721075561795539837367671572453007846115921848045785821668100186372337176922882652282514245023514239837684926654815063457786949971205211769429378109094134308085842337098432500654317086678348047423532316847771642939731331360717003450995750193267645555862436740927217932676962537361208566512956063653900138398008939376273299792622348615216196326984135833875889064833831573201087232459500156370293294012464477610168816080951665445243581087594156455355496014240100620941423558463713005566879189338377831270957938602585276483795973514248717545682665120564922664977657840253950374390922945926735439183612101385735051710476303007218060173713408808567444747440088476149979035286331140385199886152964971778005322661664970724762548610943634632403460587713004845259069424329422270681845817653569171103044549226541467199369835668106167931802948181325383604687629432261687264798515549437813600078217825040968725045981238990750741689179985545264102984025655602070801959328319255425344744577949125733987568880071914010304814689943537033323637355404929050015287839160810252924407472607105220246904079585412470633613603221641121235005706996511538851201554543931548635667611856481218073764943001068822132165010598370528943104312320586100410159992817677833286903590368958836884703300264155885506659610796014575044274631177945267349217653808596906308069122116129542076068540501059361863756835664338425619863252329439947303521724450883768406330680321959626801379209818218432673043755325022741992462679181504067173556105514679790721203820772832733848899726420915070786442532309747156525125268817059817799768656077581812501836683419428612072614756772707353095100885923939448496313183298411391702344729448861456164594171611036928933634304744603384986487655724636423090320506052709340135954856306738913695144447771065703761143346659881341973358527260349356492569165946245934511298384288892072274724717869988266655496065157427407150719036445785927158479907556544729173242395476304074272375698137870140441593049804689635778569310644441529448876475439979662853248120420973585792997943336416716921706655213247351441717580848314429857118607697918198463501647073131419509010058217501570635615534663528979568857936481881632753512064308218320716219998933715962517512813285201429575793635957975293917535395436611164294423908923870675538764724724289864345295506626494625828025768375966531294324947836663684582101845382603132328749955794017155453071847660468774609419869134190670441280547510994213530551076717083837422581345989056522336807173884234123129832908892685583914564361501538917286738746749030709598885693244554090031223627486254491513505444073718309514100276224722346846724679669687353583119830261546472874775954824184925167803669149580843386535324652516391398754979158478109825414580123943324078199549851213566079387931794325580998610361954516912543756207138683038098824776774470803701806467881115729811345162253888200010821078965307890085483946516911110894988985939277368147318820581675492380624477469327761239263610035178252187812564964253601084882938608725159415457372392871518906870636990005870411972253788637820256676867612904238068140581288916026343436595130665784851562155653499219563133175634308208271607353225485916884559471812002151629301852048416472826656368885505688849787360540479653808763430812270157291647576921878954649967066336718738370932910601472466199599671558866598972110146629060233375356414881426857552462819689649883169913533024960505684655311823381432317646605132158114347918632931034440180246069955117679657808540478786487841462507318762831651287446943865442313595351273886965549596819586109623683648799519889192936742737622454662071296603243238545397950577205213489030740636408364584592204280971122763215424495184862725620839977618184124153418311410877024753239653630473683308674249712839510561203081954456621514647381348845100872771513584526762432343052136739783398891673208187727702773463690278869154738778625497937343960797572415491348737540294828892451655149604187826560714260294203554186367735996713027876023014811226347990400547956032286512347981730039100299206485677818183954089393267651377493126148866538800055717128783643475622164034035677189522966165990677599188971210279194701393143605336439415428755862726455180782295960895203491698460077705442895111301715745098182116888174419041581006351609878348006209908872207909769387253809299510580947061913666501514385653085235201950247168583854026466963634985895202013148062923536245900975659993388968150744978473770320475795381815646036402615459847418226189695083369343511237872729757946954596848124249304153866619872872056638999939819913645106426486024813345227592457231667052970344788039549861245817130106225575057156311163843942431522203693507669598087992232025990347873473208966687495019913945013993804259945429241144109280361254854302974447991614595861515948930588829885550031805332901537050190747028162479672451387188407553941244603563973605004735965163102194756510848582859245077587362974406616426492222098698429368668411687736096941570749965886356957825100900373518575812440114298296292286706352167971040984412362194848418094701870812739390055041838370948541124872078882500372447046758290916940433068664920990399271163874580754551534937096268373323265713877267450724162422283846795044061778136931793453549205956528372177144169556595954094653951699810213442121966824369015820949000380896516545829315593169031786616173281279916781605080715323063373005578735780673596554356162716243287745474121897628606764211939564200094719838142703721206755444743462217770196639714348550632619084676915486182006717403109247081142626037231327027946510351367125693218770368386164008419444404232494174626085146651766315767607319044011308942778883449720604958878945565162513506885531136953794068699343108929449409354011503542632531539544698611801794650412246152709456508953452659540048989284447735423299444128713350038119063256299058828841425639131749117206527792190913273105115495483386845372828012743286689617697944654756346065228419279158752891833060504623533250019342774759946270955144343154830871140387674266492745584839372392472399847836951610388308691138625916966837986947439419116229421423655666679105404613834424031625090329321059198979802375436808500819524550195558238494640522759993104457986415975265299325096614572349310776297105091216173472282030479582439014238576183675472395138096944814786717632188962462822462512382543576115429365426279473528102196251828814809537979935487170027114114196786288388091456417067145851714119909074502993579213384876423459942479842284997386854817179942178460061873045981055302636865727898899333429102307899275377789599922497433396086130845997743741295045034453474912057305817643597418310268319416357681326646073535123051777812511607626527858601020168263291869940531655123084491600706505973364230802635092188002927227596647717091658328279382794497216562223324217224018693190255474116206253497342429974962319445834436275927024361219603736980738146687748214105865047499286849251014390037045913266048254028280995308390862443142089517401127968055340572939490279917115559226440126840958361535814343188081692257187919702525763330986161932725363293176521830331394496789878157304110074390236084198109094137366231216660393375588717806493364453722115897197785132836998135484412617631649179822801018421892770557694236417455952257314100500456055436470293474623898669135687897944077976774848572359505054205636791873155836935541744944440161535565718455018722135394007680951845502378682517388092126267188956064666332576877852243305065847012930900195225077555008098325097120650163133736455055392169244961972102741165903962293342044102059041534095913778102838467513567189141441607962735258327113985180525500337723327755820388344097955453081626018172992682057457799927290604682851996273982905934016956734644477988217035367444649822318288946176942061098458726271996248326189762138365596141560803207693043205770121756754343306583224876765846346567623576245186617150120121475342421003657359680755798655469631813137966530222233513866296057424168295911984109111645706272984529143030255805912012167384174356449043537198849500123252436852437554836366614246586857095930303521449356134694893681827717492750548816842085546857415282847599061638980596167691625068864520809281181534134981947615993092044893644453114706271027645604769105049106968644736250579699580321009225740742511786680583593029690100720530085292374734938647537285101109432428045595945136813559170488231627312105474980219329233216773210851298450333599642912910750321149800201796378480424672102396401037827014929338570903701313801161150307846577381952864979808683176687403389641566209456724075686459262050519324632320007870788304121138738072878893437499883289136764733486100376913485486196965692584313566547260601939494169902498150188936566656556269403460596125176794820449779199777303694520705798249007334926155865927215217315704820613839057550656728266530874152605820732580233144201838795113645541540463131883937804705501897983883040811336451275469816676452203136713679660851442383876180587896273406395485822189498320769016191893329487780091758727536446218964804821180457255323625462210498320015115927051765530258031418513798627845322617612487917603852162037184635353496220126402460949140092510130705300757213496910127404126116420604783628699944075493909891534432836241613001631453083370402854405269504856989511177082939259634078931666822816447184925346323630471595215374791127515188294678723739175964066587346822387899465799001228114522167509328292422588602314103476498224829602330592237193650456123603473865327038935827986556660864156781004992641226114808625413704607052808607716413066373284713773738894239858211742555353848697773718656419354503294862953188357698588811600306569459815005726273339388605511881709070395102532477370175681940888108133472243729286814643496772175313675735025003033031809963008424955321102254574793193520536273463086476443000331596207408864349772720370183152378695924451797662399756536614499337125547075140031794255207864869596418624954767856800975045294275123930507553701949501022516386211585269787249222832775647837569804070687064347505619650370805855179350986705708607029259168301491278471593853865368517194966045935361999091610586511992781396292780745014208958018709215967653186486927028828317344376761457698675304319636786089679135274035794241809688422197359770430008545293776589463837074179804035806801006274882311865099424428362458540371872945474961091017749528514816630158959848358183221234176379544846879164793377780361325041137013136337315998356833095261391778979149766408276077522715726194525195638938669823034385818776865389255628065170369587558097388342857941823371072129947468451210103111495373176375104117633492496225571025330233030947766205982734900971030777173413671279776909481880658165034882387375094543974840994523542714150761783515920041105893517578434768843290012011127591506457860074652059883761941195371043455881086460073809800069036789276937772607805420514707496461266611045730611038918253881696743808693551646796413787837895375515952780006700836152311504951827731707971629838823092147831424775326537987875344979405980977063703313895926552421031884003784549885523318620628106385053032601165404197841875241328291666611832161266693705508067070932200341827257955577298953940438281656711194565566994766276288753366873534290226238433837915173168579827803124649807530882667800177490208201873397386766566700929316496787534513891735571879226409287308443120694345502289026057837639612287260690201750327159842766397257831867301509352341475550989526683040337865362964202069317316560305248639645335497650154504087223399106821958532629455606083833568955459406866785633673735200308183260465952101527176797918008386328860632232646724167969306318419035883397151108383696765466296562534269218276812669923639736423090024433711764506363289889077611663176712576458861953834183880290612138680606851653112336835056623204021354467018460159081823459024018444235939378680146426058995462735712131128202788685131879171785329035822783829566510048808679427548422354324511953788497628304883050671854696760148147529339457379980546983858168443119704005667459496374700363074462718676214336050073494762639461914314202557875056930873449202096949024701357082040115907126335406603559819011737647599156269782715422733285285573564802828172541282716992242245172826577687391972416863448099668625122589415977600365871849130363382110399633803691169735772743007956611456884319695712283207495842975274985245707383550212715556699401359767061249073439457972868557623164259107532290807111210348704552425784889253844120078236916601230906739734012273971414423186045350751969185230728655061137869389192993848686651621332666836362730103632869797558126749400633592467286994952856745240260700713192042170988887706371078603812027107174833465204465100426332817698373310842709992719509563065591895523428651742548843338302776341980697874966597184839066894012104873227104269738348356420678054192088327295106220124948931674227434026518185661908532194837128216878749020756817031541511530198570335799119558569766124468665667590889506196499083055730251272102818937786754845947020614848671550381551018777214160809556015554479831890665035605632163291439935932183473610801329897410431049011679619376560469344143586645763877426667500302906747296305234266069367275158126651214217738445397405858738907763688062221989961879307729882912842609125573269103322484854708789292926172132924621428107534568828016068247274533215421401364768407474089116522132256906986206318456516452334446157425543967939875939363039816030324123937535698791525602536505088415188071782321766626247936818860825287340097338623064534760091270412148102601887683931765630794135200117948565417214984264046647007609321957259590980029587674534879360351542774819715259618220577217079978358590278248828293735419681380464305247092235199691473308847640773489028876855957066664590148438978173259335397977178318293405707246256165088254033220456715632182249029314710659925508887305192478534692217320644828509741856753709027052248440034405350699216567446919436848392771739660603552532877177626288506872558984551407196070518731143251394591263056659867586209848970080295259077942080545309335759596077211999670721918189560083938899768760508020303539651015611209608363547204209830268899113170905602600389741145647778272761733630348305727277531585479358352485139659438641897802981626837947505540039010363998928949469829137374877657613487736543889517343054600255743496972733274776715998561724135235204862387714515071133521817625945938474670440181723312939157820799895190845099631747109212523729831516041145402009029046175762719065628300185397731258825521830765328194476774551416682679726703482699822253187385084594353062192143698441809956620552924665277502896008297504103014088613843709012934769693675611375691326332742150727952070608614639956421802929770488018657687269650049516052408660992660970074919807329774500249132040601263728865423036133691875030289012840648953744229517321757765128911239174915450332848781881156918215877117302897944280757805672088815942992244076100823416973438326435712915595246043224699690352452138858552155930588175356373621728048856762291745979607072573144081317880115894773660835178597126684794932051753730233696914830718686028688667046572044470025606780386722400645806119967249738312547095118332969423670030495515667586153932748892302123709418806446817268078020998385735809134010305649512566951974805439250943742990973264069483234355347599398457118115000176544663860745622951141595155024647489463224663539840171095598982112818569806647691160229810907946875674823837764702527771745564275125252599764786387339710968008750797840767875420076758397901920937842223042608500762586400897477927884464419716767357947047740453150768537758171099031401358430360336776545710752973412828301525302377233483243417514886401501745680533796175754529369105551120581814833974095743165182000677090211725564017415794222998330786952586492866643391000005440209236209517548440844265934914859242034103804359063387977526960092601475984530262018691393185081049079291205762604337000009096475311951041041766026213639698114592822917316339861872523396871482588124280394330519679955886444830220390065656636679724351429924639436447543453413503875322869171601077017451225425762726012705039902540933749458055317472518134928498427369010990320029485254880367082687121935037166929961081767617426029123836310384454940144613701205831166177472202421254607570380657803507285505080045088879610141211458589052119409625633128898222630480657284405802782476248321711295355291669166369381225130487982486520300531650510530485761165963011117210970165278868427842126563145572315631046202805649449556435907552785764974263905786875067017879306799745697830457382681418977781979410099835914763526392032713264799653000572796355886971715142876470682401238084699410225563753900188407938812543652738949192651965769312462009973714853569043401708335563554104616288715648732182869810502509301742984277370425973170567728468171074499577009878947619898445021480049139891535681371647883425240158812709213725937204113375095267028042358444070884023690628230909586353808307921682558379904334812070780575846227808777473023682474781697724135436895403199358435161561058608540013589093957211944825564039985947169619798742518985389251989578026062207426646471227842624541395555913207445461991572159982949237845285522690211360212894792416836577284449978408547592856499632377434921292048401300795540979202875768598040651215670441211924464307157886092313441781359518816674561417537049124215516224713478974017807741039250396087881396357720012593269271781176023325401457298552318452864362660517498416145584773063153193220382441143972325518541194301205851662456079826387476581170142028343219626821056483537796222093890431133358855430653413352790976533033396043576181731037720627078501830094082019084411736669216647546143398602285063269701319067929194913155998973995324527862449743497016236025648901820367068229116586645766589815769943421175050398855955415227627357527666882824593416970250570014472103247972033689716668898198545303908496433603495566836145808205652621626970020809956943481764936814116527312705504141760936346972794681119380274122711400803200701973770178551301383447354936674284439348642425020246264593547569033599824262510723488697723247438500643091651068637857241013695715354645223090190128769418216385667080860588360408546627224201913523267901078712906526994238231718016897353190047358672914752103731964744464654647713613924910070797802348497947333880131150003936125082505676513893544496511215533690549063740964215167526874073795282102705348253444611279905412586716030562881182550806539646733856701052377249147567542450510976484511188370268177745329465421892639832834639136654748800420983005550657216222839239578826464890829834773155100943042182229092561545626553434439080917256749389122545324586670123202126696134082690871424185396608947718889251404498411441384407851856687280281088441618237523417685208543210414621509823354193946446667345513813401548126578908902659153470218829718602037837563536584962981305399861538988320276946070626525606297531724520654510996778213155733513191565280044301432952721290945851518387543581417900997049320071045284726870925422191865587032345098451160076594028580481788535339238507721099104603292802339539084882422237384991455866822923805334015942665511367112831898075584092175971516450886033078819860293706650601870003790128720726020195614024527236148004993514561055789080117183302402535407450640218020948937160157468410450412476668668065415095476668717132102444391742988425604671650196346793726085798356432437865110665391849289260083975286874966314437422898195616024337666260154091345758790433906311196815068500282570285968467313998821660947424500242400478847899570393410521939914276406568820455435496543591800400313125648564685478599028705810072755072242453821112368262117426933787024586356467543961343595603784258296795841322980156662876587324633599849512957917637714193976794110123947018077775473872721870721643542758533759708832336137899149495586021694433591827663740635358182337611340149094413194638444451921922509182551967161721200281873332290488320392897118424048736023147343970626579413305145721339543257090704886577853401213911597575077536144343854682777552446288261329911686942443680628133750301875627930164890866719708954394650998097252835421203345931715929999971225248553758680634598776960541842586240231807331422883680478161635309078257384836215762362646989847297601330822300903098403518371386835996267260378206216198230624973945698621844699588833038270979106745713277546528398166100216633428742371081008221492626083033674950485791855554657395526786414928857149651839389065388280577510400249354322612644315621687436799239467410144285030957415066508407776241209303527657483906002213340188727167531353154068268056413670442528871085576047571140870878971229333833984648025970881228942464967477670281998629442448342148800701709459465456950676773937621505299661193155592484357328186653907974735763169066254029786955434861521559691791170354747327951033946265087715786144654140526689222548967760251724680677658218618540502869974564897011384228299711645291848819313488242265173153021901018419969027337853021031832464724485471219512778497323306580190259052271879925394096714069248793578089252222500474586255969895972633849764144945317264955078501300676511763426000292484103005345769541507537968946990120899108596244253693592711917643511437428433722130970381068620185306762071883535109573897886756061554012066170590933464688558341120887932015983148046686375439431176229346294778702257752743447449162898354769663301150910779167068012534475862512242994940521706282149753773853164963612038534402434400802290324239984682610923477876973962642132702919372076223414371563587928838561170187400435223437474671551683070203603713392725547320490424784066222505742265255985393494065934666838083049365754755780922420795700639243552800267475238933644947620090400156208434291245134991178729964589361929420061843181670131996050907815091771374290711298605307608450664418118830403490928572040769007072166230424044252672191304655413986382628174954462006971966270743893346337987512254626737404074010174887706998065160299539515621998484839381985744915938606057931999850610701047386657095788786548478119030913966161330526675648216001554561032635438508806891398310860549968199480754473992037546000866925976131099563941205376847634473137680602895134418433509503335136039430416758222553720000498329000409201773166009194132033822221127444810873009489769952410921772756404575570475815368830357896759172500764297498995343365914314840896116450796714602718541538751188928265505752383166760217261690754434848729892654274240967755484132253917725265869231353588583787237770693414413133366055442869158847576531073000973529663869649382128671713711644996404815587882589716831699486262320654576803503191379916447605817639931568756143802009281110991191122693170075163621821389095503419462582729618943602539911783579910291226068268507913918040404511054127625318289136479198479385340240961387732364109379178536986234226752020927589506372702593425248336853550609839965580990607803863412102115701800484461256251131784116707654020009993358028937403727663011235713541522318823477009357980555588116535064608392221014461676216853171420992994733226334077425014039388345273163571660655185366131804344365317199671381846877901003881561360031221228733585812606235543202772289961288418921459044545723936766571269631031781950062315790428696105852523965505396277493834495353443881466161354641136652728796612455961599450178925652825536558750675635890909192273420937899240771955372413118118900942202093627336858729014395158778438176438249169878103345841365988806537056084354563663683160977014159536686353259564951054211591576175122515220379165746240093969256507690269844503394102884480520271740761591147033506197596578566799473066322627816779855862776559484853499546764886485470611873130769051402512065004824707718141077432211756232266099770115229137985286672114635914658342949934333339057295695703490497021269984712933137139927628735529423727319570332127808969634346705867295058563375456223656377875394590369680494764000805490749609172636746952861385277873937048330257719352445799950930297148489978203511989476090519466770847670354875513681920598050936218585517394380201218496047047473444234413505503649098498500721934552230234697110382651498757513817232999909400035931317664834520548688107152923224350682315462495279247091870250586704517514648449518490824693693399735353494481707547837702702165629211844814894602048615185917235061321422197236238031075267431774094841333315477941320895951662768259372871830052491426416777036824094068443163621730198491191522560893966726753704825883086074425372732762795842554436452754792963879226641712378762275919209896905606817770804657044483198768981978268364780811104377562443718815235393777541646230854452072236100090294837133338133978258504808862816175017057412431739973404503896655886592924546289855966616875098667327026245441468658306309998390217088147368619314691544510873056233416384324458745749835269873824449029595233270569116390761741797625294727189337922341219077602953992504819747770457572174768062745476424476232971469925047662807838184577505717965243809584682924086101938199778226015568300224734710179389884032322325137758349211756968200188330983358726754908626858146209297939659430522974578977277780842214893081808645332180949821204272367364273284939581967818867496280002080506421349936716605300216902818191754778281969512018474136217939510397374549741185387970474592276161079374081258249261320088539846279358543477832031119380847151396155024501640447013016382949108933243705345536133549951005047308019240392460699635198450554493849103202319690543700815672389115053808382995530370655465457094477591614831141079600965471705268342926083653582549593358375014884486489841129708446179548273694383887260121341332599942625833540343215725774999228346200352674773610364830174401138314700981749897889466912624489268596042075047291049782914658133566519514196135436043928938324416708449715429874118903064406064370131742732960515761648666808932356394304847951721863661219773439877721344636728125174415355744381736463376421112817212249966224163638714105061441166985862694956289705235068242707729923807085097257639541563254056545263445242167098586470224859143276833298653541275292182208590575940511382370867715740944330983267240120294076282431787940411595015539894373907049797546448648970668755438902245126604454311496864438998322586744059209437581291292714211007044453152606010826211203662368059666440339653526663747895057984928222504256845824183367126920011182419599926972291184823604565074631959453542034946105115498834732743338713751881783099041476907384397887042210060824573030003165875670976649375206906610946948013996789919478096792488565911530153357507179193143474385830046035322941133368164318313549997861480427985701843310365819615531011431816742065123295738328027398483551037907908619639616029246988011318933986144588560068751214251740444365126798869454730640512345338346303174506629025191407422368298868222992664724669703991723436567746622160013215124081719360148916786250734151985705643790604406828336590565849887926462380079755260613418754146841150976315421199870921145422101331769377304784198931381995497738616468473867249254657081033807627640307758074104073463322036173039150969425056352140536419895057025125462866423001798164012843848281433582896427808681837517512152031153817692173014421909360919839238098906205112126541446252863559325412364881367941252092757312840396309049349393501745222518467173162669920891907139833855714679613914246763851086554446465004452295097639919409115461410647875519160585691338445417242913169583597293912781256039323748576512128892739498414243818738761993618167673755502037736731905271911085428417708674913142470023806654479271481917059162901745489136106587444925875706989847239600186422948818938144222650982225637326220057294338305998463078785192668228241585221834110404608741647588621612790024885645226561624168086060940179954468776082405061594447205992388026515116488624882924232871236844149908207193741512944740074508376848349796815046248458029380224984383547083248737594289922423338149948163936326686543140723815928815085359970698989636074663662652046157233447588174043037856148456017839938835225079308963404379914622269403314771955237413430244014332393296151668752151887276077088380887114166405310573782656669495853932413139296246481823084224652832414182402408907975354491346494681007933216896688582642452387299611979810277373257878026259729660447042784427777306647716520406198962037169213722174325960236360912467256475086687442680580119453353821499038407333291908348152056231023976135773768245118087418876616976229376422695183886965179216788152893704619872160072111958026672226438697718906619884517089992179235714847802589132490365326583437756123730709296776755212789415306254098296608873180738003585339985952556024993246110235471677926663568428013245086054191755892989291186337514341140850882401767702620685412085678659817765860048461466632882506281535995581821501758764777774840388743239055606635293251847160772364034095851792917063359523526343886650631649510973712141308453878762579759591885108993158850624504976438161696091815770884505265166509966190035520933262709606327878288821279044278039796966666143878490036061442991638137309327575664537331056172589239582439175483382957052884581979336153203630332902430459343584098123268979923124345406747241687404189932975346158006086665665301607000236378799632691917142322573177408470868633137630439448247735610687033967924168211810965073217902802139496681519455351838059908996502897500414673981440833529474542707880467220173092582679288248951895574149634446561746478409856453289488506996143985236834168465012016305558785394229779604881510270617400192479904298367873000712682148938467866022804109994894260264073476228963850606133961851798316561727353515506971595640749873913894532803055313951389620864441042832459336756981401973072162502611273811487241248044344274836271696880022317128067852998057655916752195600356602217034684613494845670048895108648088574942572722017496866536908459246824497486241658333861051779326159846842023909900703546097285327964278310461695384333811782547092429159920144520598516542688587634859131814359234934224143614074957300455567110182979070277938027824297325931668640252330896705438297490687703552866514455290943477498444404280030585082839451437237003502694797180331275944629769101121995684858680639161979723718205516281858686489029284637256067612583400151578316559222602183211168359273907971191007041651952521071791483359529076491025027707743505236221403262181551657268317312994972626298221988322501310114064721671410637979422164797045105171499071500735686131055041595194535635200834710554757530516677878558432252693994305904778743484480370336022102717476952760170157423630895854181876171548285835575443901146307077012588371562622141963777117891806884679846061721049739637576119205286980529010899762918400664223201926417046724425036071342458129209390900012322555046726234297439331270652017781501852348159181652368139095481557246648880696819299905125716516405531083238437707440852266392879443787869978718282364584155427449842509448081222290255447675428507504329984268094363854879849043528757132133302475784294158595275637701556627691637248216153431105455057717441044392890610834745368369984761267583056100798474089400140248922339190642233993267369777856686353708037190418004007370987798339148947766852588378586651387758524415960640491092713095377658309029653389701283478085968050323372991908665433853505222234002007428873500410108973211114780201396339361900122852598788959516033027208164854029886647111200696463382255345073538160038768018121921058645370772516338354005155178629725679037758817075700687596470894666804066185866623318761475608169835379949753658362643037021035541553288479391931289621101493845518897580208030631954794561274700513214841571607270271607634646125810409887628216868412438806121893186808371907877009734355167274442976097210890087634018761304385897338993580402972453470085649176821094941137986959138947689828842578608808215421707181165072173155416676852412386516318242069189164725200162495965616184943141891329200512916274241420508729492954850384350602821834971326844976237795131729493609681500440430334239097568738788630564402408928840550687022821495032833581438990509737952813327466567505562778767117335555286124305140624576451921431637566756306533933149522102619689592843867933875308176835743510117214857226975426613091121610571735282222683806381750479928061498409624192762306103210621650825343979347625188145679586816042393531763103958376519183274594560121083742879312710777875265165897228800941984833120840160477852260173096470047195808837244031465611103904385302435813923890719058079975519656578813861651743351067791746522952316696660356673624903662267349429058270852165743508083752747235010835106861066589746776278403593250301322581266924475343698497296676900728647444753873677958210652512740423002916682548876421675172634172623241911577181903035610270894537776771874817470738281106664826971716982464581621090833734429659111908163740808106167141885779994764463221591110460160824842944274830604350861032298300198410189587604636888433554071771890428510630374527299580298196555835236208901279466777233906767111803897557470514972653707699864082591304414899864438892902543971476413336105430925046555491452772317364677191146371085116918517517792222017580457413018730443443278122232565370772838763429461964793096608796795565066801017464349088026766366264800976475362537779717215665925273903418245873621569776018458744092962639195527268686196808188084554221627647738704441048182044412003531524048030372298689038156601396066313441654911340946960696823868070098039784144822476576084288361818554593703119226711501603566386592803394939752376993554096988640303464906431576746220420451287318404022930993221623874406456948699360624842106987130132107189317539822979038826459561137305137677289620472655522800232563594909319857980839683696023174462235236607768223182131616120457916046958185767164073365611531365370551681084510560015235961686798690462173117475392469673482139725631482597881340381724562446836745125469697436627515576974923188040555390975844103144988700533671554493813581572421833434001786294748185411141181806757610649915876953730209291769088264053696148703792063039385120994462466814943123666195612154043297538154944366966444451969112649127563322076996053963516979786984728734745131095390940023832293860605352149932719812555808744860024273102059253733967725356341573128242714491849747507425151154882565907676946771510035858992278108573863675188540284093497345517636486477273851977724774157188492789305784542951513604975485385911910797496443883362809658919932457921900403234611754051819253207272998140781062157694102559038724293209358032491448516557551224245142104499669080684271975243869192480323066388583442326642672945646367593767814894085843348695293497998192031547934093453343733286224327984988084353935695584633164072388202071793317470813428749020912487552736511786252152995836378060552681727377552787550057555737935324544273587550678132066048896214858110785287805495997454312831313424208616341565435245758171760463386246520875417797293622067236869276851338632791352664126174696662798763281027655832890419967080468752595299315602147673403202376320822108506077535476007423545903003861225349113264456872521845975300132403949653931037148212273444359933176009669964336699113965308482488102437072683338195537725669315076048893925588601278338461734295233008612533996071491799776780817865218926150794540026166801824158316450804406257354128489304468220802591227933146803100534630032699997391793713345363954119270463482484233530991121407700996217526150421527578126742602664450194041040803849406284496381994749749381716569603186070881094460301426915660704302110719916133619984861610913189071164994133263521315662540211087784839093728437166907897636362547523444736979622432004856842136167466230896093507974313698418034725278109354839131230203162077428099579284237875605432776432896038489007400264764930861305166033595504749932262999082605623809674784018554436284675346605181194228440632739118135722614337079605147931651158277864211789034605234893958245877057551910513672735178281606472289390473828126201295375543494559152389690355869083529072754781032770646022163738822811893740306491504404782207958629538792719021242360922635705930757510272165628911009313395444049482032081621631787962307153037935672424467077640530349780780230251121000282960691093408383924618015256496353412099981767613024554402032039748756723120876477734514162322142134272186139748607730710556921816787895623418104569171561375706073164562462288027842473783710990172028654712668910105419998189918075332018856523709038327169653399194395534351742889577482478767643550261336009140305645931182067816904514645161345798244261901444173972843702219195372015646413895330174258763071134555313449654955208308852398015501834217172865354881068326794836123716454046342169218486802447428387289222944006924684617827643672043521300177493086552745142298291908373111799726907567716081161749263259546263571792521837228719001546222346904862474056741669258196745506887257906129234332892636159553906698228110460061391595753710191928638592784901889189393335729135634608833761020408530223493476494940954623322405296248658568386585480604503799277341960879487589004509067845496501906297540676462080019333742445419177464487213552223998691367545127743344845296539586480874989081623987015142020713766700541068691203409385040303501119990738123192548969667120203551071111494921001869389312033178480443170479295918881082691225224328660266443933371203895260336657238142130211407082453816639499880987693035527492245946561212384628343228051416922560265596554786132997213428070979051499150456146844161589953426668544327241429718648638487310337325068787175299515418023719886838838059266225220628149737663239306883791968019734917734367759263793029514053534899578992265697302529226873964925173730950987636643529336534009024836423493575780345779969062396165775830118436046200701292374382116157440342808010914420667098732735314189352281629111560977691845777479024780318158987558694019617184148994513394192603926266179891805837174544000549836695234124858816735546533428126829837340614822831220802226747620049543999936111737136352699115413673937392744028653439540565267163127569123764652042727643104363869669844617064068478771900883185388945866145069045723664195818563241942299329985760702049175740183868549401543862255050219219832114972608159371897736947021450344956347936667139215932064148343057423893791831301763669558431759238333693462712245031751814035729975750259663795083298436591384251991515770628252098165222631842932259758475080118454292092215762999042987304440994337868077544377157556402974270978554839484761970397076421965119641469724028866317417020584300968315938628290385396500311196890797302585853800715694585080508667358536854950685534527842739554463612112555889476271057805447343285601559091734705095848542795997096105713511141689865456986605976726797515575523172675658933672760724917845893543932173531895874457981047323470140769167988927121206305830679164182383622857665669295643788842589780122291970030103563363030842269594649026931453523755862079489933977993969688256544210037239790423642084294833848977597162217086858676720451604980588319411632058295754408232532806359381562504580675720504492746461954086962365689246658504915376917678410294096520652590491334029256977536209066338729742181846332373544161203788308730881322800264293918118482550359440235841616339093390297186084352268291950779744216804890461810421321190207734982506945989196078510070227992632987745666365746698305078955671530507717461940955458976721465497262713816396629664950555041791905227704179377361032147054556743398884018765092882040770181178482720711090622241828621412794918374659048824257943051808840571712622491389786865336620912069381817526988330326781446608049603685660980467896783061611416905269158099159599018744134592225780936849284146428459173998751348347292155131055643762266288575419051245069682622144758256978229713586207222498020947990172085304372773346641094932750496315979471881354655719501430640084528660734378254371620409472473257266630863368434884506829091138749210979006297191760323536447035382663587542133305648361329480700470350886859680907237226935954362688149613009346018701104612721156398518331200217440363462747203157033193763528446867419169690391939453086333881364354527108802154451303207473967334020619467573719616808129946040072497581959474364993527732615117164780703689066725965898828049411773224204614772937115073975891610462513142527983170604514436638006933563249253425965100658126424599852076803307650686026451859298966084053875523132329930080757744744650539894539083336419199397982315983881830501800388200853205374979528938824014809020348508855944375065345613229168365810773102856588902227710372297468350770852416808006813053178130538685791282590430785987051764206773507317003563355481983538536365880724382623821358359152891957728314578212732339203933493374028430914567144543761533976175120640345103289933510996052600872049863175247440737581393031702786446861296803268566516888518710145510574569802553284343987553761699739009898347147793033599113532997046469907110742804872828233237182168319097528760927574248728141478635138469084431793971956610514712501407478932121047265749868970653278720135821786152065415203865640231805014358314277180080687166841463690397675798490007207487496330109048142777914182750888376174728562294590179857677527194869094049663360296200831805932528039521019102267495293388043430321455716737774789878670642919187346492303387914234321141416652194240231445273747821142057173362557483019534346978762534564764527713119812595825079946461742883173333696482788157249215444376386640015712247312577927375228949737809543026272736567320066042144683762071065534577676984587430653591846915397838812152392065896333333583834273801966228951367773979209125053653477253923168710014293018542288368383421926888265754868633093100688270159975269403799235511254028370491749150642173463129249415273296119173569793855360286878699220155920918717283388453453554726892424975786009280682040065000342510819237085043327677553712416683573555073992192829758690214553916716928178863604896690733342879503708026842968954975502466705370161250460710732389564723974986211558968382457796898986246832154399295057838736883469366184717747637775585716818941456124956141381672234476887467392809856647852457760391436325473796489774975711696755409481100691801543957583207322454223016607327489392977466499517757079740243717433726677895978801543236616868299588274928493507414678926913885760498187745822840921630837536823621007979565048404673986065260102124963428082184464759652363637043079225041564320138765949194888794272284280758989852369787034838995170589422855106029070944257930413576707736708957167749102862570224443563371720337506548686555618350348901135000283017458300903128115747808060005457566863210613099425762476579064076303018172263488796833485152697620071342227519176480328602336370715781346349732147480494994518278309500555271291993692081967917336620576851480681143363737725949123629321876577751099346643457257820723005074413165073292921916599040719332309859288169571269575260168759959464536555549648608448850734306573573835509451932049209890440825008784907706163685359618069977502120910022583372833166440876102997530273199940565961432548158995302516361303048277454168477362878398329882039465915164659243552716385781259141342966746161035731456353692659375007142003134106230441062483830614858311345451704578845348892498814326948690032419871023091386000524906377553673483227326783167858998049552097559508658300759243330398949360824799225673416872837008554613626375681371459005821280790462339172590707849366815475981148339505124832652936376137347402862943651238590154707460722178079394219380482152666351694853722276724672825190191591028662054790978739524338386891290205805724847339103556916879337465834513717780662890530076092226289596629031753767083823440452240763522030863046526840090566223676000982283116352431973807038762580104153857028325488032064261995035569051406902268290005417825448007460119592405806029209891729941861462941157400157176605985580683406637686330540333506865172462959584975580852855782931638534566214694788097288280157378067969541788856709158077002948139959431359880823591669315500350049958699252112130940050303110122641061056629873941104006330998344256203795580528767282475979872767506138803059257178512420629266927402303123822613106350292309030109184341226537527252190072301907174838342132956114233502292216980684071151123494421737366654208617051713732268279331652204098445801392068964280009091842965021405553829160198039729078688923400301001067938698655203166234108898643955410131144776058861427104209770225212579684154148898361227854746850866841589986667432502997425215938273944900093585560099156230385658705379146932429743427915455238017395612099577619130990040600138711249289710646413570313620409439745404596473507323788745037615178501249109874273890666789747938754455995400775665507392511234238493171349271642903388697486125762957575379175134440670406764122064101834384923115964408839820685656762859311402053513971470700370791081167192740071888647376202106945996283675243178320519024151061353394833397882897360692442486484582196482485718092761092541008772045170248780004627825142989754346670330438316822546287050149533122173310855296317689019835623511856020890909296757557949697890008889418029983529100542605096157383256473702695946079516795435164972370066256883310294964010712336884861777586169149641632969610826042185826587585797035152664871882656134241701937057404141012193101167842308737942678754964186696908026039621446598372404639513189077812061046863411884558183971272127909900208572550487705294084038745719916556099125551590921279854962163084746929998193061966087252170203112776292941821470852162807531651148836967850924413910352920243902083918460100510150617240429054111238131347491942028108790025695987126033374118543731702198946203230096351115264343682142196733860375992419058399556561611645273882677278603801897579559413308480949523702251542443634393438104529384975030700538779340961145655442286089500656824580536757094862154561629609379704150437161375428298390559345145470830263339851659516318128717834748027915972168180484653354342393012233969059928532873488353271590367959483921104891619360222626957098931535149909934172667583404932514072878341172103463943835610418045395876394389299512171459881331981431751246387849057249542665649055006492087840502121425297527145548281399894192667844184828931604758280006283150461182770214216179616408362824243724515963768615746489951594263870400741085342852747880391575736808927267614035208180709864013903293813417934593764750447864884331572961045893695972939868587335702501186330201841639572557453849050774512384852800480208270678091357682391857822432371650240152473611510940759339300874440436323415146990869245899336579942457424537636939466180990252240850110853301204557934961897484316390891889382940880053406508250045493284627150370555904653081256996393307157879695628969559044706186165161961297889919796434938469648239257554797285542973924215023353800970517935450737311353257420270709598341341836440022190183965238594863067092946990553744871517287326663746082326998930544885823043875486319483650051000466958167212224072252764372135471132124845153449337679743285597775491830229148677571220717617387192913910887161881642198738237732878693484878704349380318757638863333981184474985244771708567927577105689125400111659035518231955791013929172760103561360636263733168102903276131753198433096812491281550034563623358646097580512280977332993154937754853381324878377450974847574139954346419191641758788637378342861381539596317599699217742721306993854356514624858903221762453422722774756868489087324843143160216384271928215663953476148692081159901606998929219779981448319437669499911725883869900313200553770690588014094835251632331808246599993283607741506505264659899522232951498291174914971792692653439117799556981390047166087058823728118041400510720067928486152206193855174541946176209039275689105960792337547616607092407430852129622044821500350109836382166311472049024177444954531701309578929851552792061351026283044504363547398629543029689347926223294634934687299506961677622717609855819046666468644111253114689289549694264712950060201831379205431738793082821799579081938623042884690209179764989919061714679701945224505097253873880164593347548641797056484228859846277045050945541138274876661797762925207910273019213903905312647201998157613949748728659005570850151449861474862698066794164131699617904961534856385218404121070401302723307525555322860640414899745729489511962518688479817982310394517040192317298152090023419433847049331270101672940956226341315813347656968947308443389454369924135171200555038138633037812071021028603867800047831180646996549563456720332646969694764573372411398602274034596668472016114744767331225485618212683953135687713413031813467421489381926452895430647853647029592510647028572360409009235025001255501655824584645992660898072688222774129657023338991618935786732075211457595304514942476553921784697517100947240053198205234924017059964960985152227226475006430675745573494125950475262682185402148408667787861137705637360475890193181355685363082019761915266419016237038845016185933539967735996925768576492462691570260833208485329424431708414298817034798992368236665487655878890126704041741101839661470059462215657824441835111732447109521931116008046119807003060209966932906965879725297816442198502494343190244008986370648862267652546594469437492656173560066727891542813722174954450182277189693646034594990871388365453644684675607157949134589128327024918250729310470423471944712539740222512508598596464344781084208296961244682742714642158450527317303184938693570032168985922494659558909172699054544403906549983680061984711665432767968827170672251428149786993208601024473940160131214214407739477908015171736227115409686543354095082642774686424061758629580961610401680290155429814275389534720107703200244796156108842332537111156056804310921120625054595616709087617233001176905706535456269464734388682901080240401530439456542128408710781182952211929731991259035327641698617300554860200166991207656828742148227861880015411148896960304280145815175217282450251889169743649612800903929081947490990034096279188271302784424919306264595973470459960336510511383608828104288863008334911343877633967585719066107406460670073713149786040732987503679348650440808934588072160017243457925011991936305512417810588466035129537522634188067848765879272464886024322774831855616634018155010656500321241962482233335283326290888823148967442178838913721498158905053327060110816698801256509296089640191037796282591017955662473957918749016649191327364585222401369926899954688833155452320728268768276151155130600247167309990364403273054950666866916781540921049842619660887270253068852637191391857409045028683526703090067897950783733478002868579829267150104144275804742787766944861395222483854734943721104585661310747444745351021306498293044312672755431396944034399019524914249643486154708332104024679722634364282784477502914398488546029026987241839223882737596929660283410220119890345913939335923808266100141586206110296592468820439974254222047529723607772520628281845677660088688135557953689917540185457166399218368370328243263373423905990736404652138120690415107698411963991841317142542906137275119343091361989432425916329484266864510424595574859823191532844883833731021047448159084560635811883412982254191437141106823977949626688210409574960681949238701005455180700778013470165668886930483316111564354638653790795646195030202972883576396720201685730911462373149416252314919789330159722963093650743924192561689087728048498963386406470457623813392027746021901743133537095743929287021536463204126119336667596434174107432521854887218201212686756861980169288893659952252756925104017093044229640406482738105359870148871044899030033027087224141499120144619141128417920995349483538078202198143022415004415141182433745725688635748514253947608049255731262727858475638302190905704930457504992510290294340849669336238220068493554833788643890222574870782546183292198040014016008392475542366564874706289616853473670126949307213530503295036243725948091691558385926831949674471336393861658154579059112953743376503780385379401483099675735403222126344283688389736879103109763344842377737873897375204689061698180176930659862658214015171983118417716127859034856666748875839184674328374052213653153814695477429113450789604159241811915556990545517465349992695329453963437296229534488172965920400856991981181245240110195343238815004706587341218672346218774731697712840231493836827758350822275465782829266871517017896480933550822117040925026115786598017463084748458218125109550282679017911445694504918204517651614490679577878732886461128056877776697658752369193914820006182855641609836043144886943867101674123408047062857874804024676993053998056714791210071960598421128614855455072032174659125465173706606282932474382720407616695261320365883028172871510178214408680565227864596533538843983247996671909831409094037355295213865238504486561969252640968390192928200065249543049810814483884215880210193833162076276331634965285042576169741546798323720941432876291783522210562860683164395112637411247131043674254195597798970224224116590344087520536521852805982314644494125844738716330403302868140692280123322930829541550725695025648815065776908177047140020886733906397170004387058380973444969257817561379168661436412936411070676948169217609757647345703424834042222662981771251095777001789870386944538431830675246491811973425554150681738413148209745657656477067518318016307014342400767444706485573413345334388327149937996684694705238623509792810641069323224768082393767002119634857025331035769270382448098378604685565011592703557107925938139045247964374096134828387896224090170322370359923903637888463285073074628236237671052099581842096603130528300193249991747491038367695868893817071120976031896192366585102905817467833086073336322740362742971905507126010866927091231876761247425871313640295822093889420609811933982071993026364117550018375744578742799165371920994937040723067901053254912545909937934123988705114642493312741931741944053829944046247143173991363758776383410447792369184663391496302294836986643661498520048121721279953309524944245965654990188415546817588629583887461762330460986727667651325924916644819849924045778888101415762202277611400275546604143160799510599540633415035749625164953655512225392930898882494196348927244618057924282550749941033753260924226821518058394967990432860211248368617510916895449090661196317542193580236346112181191928125773176643952153421765347177042954157296653749496105911408036654564492247456529759589052944831431925294486739398097847767254255936016353361271186882436480239045102725785856861896688730302259482117338074774749203411669591963683274061203219094776954676912761134240991591689503780836577405931985251997735598084225057462428754805903935532355073279614256453671221617573686994313957750630880315468101260630092326071719213779712936979936285056789035373752728202430916902925152643224184389288905711962351512268839049535705738173654072586460721373431442581549926267024748318472070227867286758780804128939775334823806320455019566327960877687991174922982189650502067442152760858039620835843115034266671483368683162641566028544018333246583231871994557945157523241222426554941637937275841329577382388357071015239459865066031443476362449569216261158768120949351780635902788050695152518021312340820149539595273164141349365655253330757378398884246936992320737583359065395734897480589943157205896401264715400083843810117981602558822331150507001000026259925718038929968244018718713284370844313553479516577850764768003409535228842959735252950219287507496758110876195937038484796610493960645146178915095860502224706843698318717779601061055601292925514866088853890185885218833200949246154281503134493769491082550915600334577245402289674324125399227685701203175637242971731636770750251277824756816686116124307007472045441609393948369343774041944093873844741332542849196520188893518757224557687382869263547202165736339088483368915794191896537790272712979764689969111235324690440416178073865711401605206362881357649018431239953944320495281437092778391824166873771324992985662116608757506776094349430894732564823824034727189110808090202137235546349234396669974848173090468370363591006486003626677080859076054616390889783304687965939893766667935804862497703612477508138460149532159093786062531252655748488959234392862332768595981747021602547082481485258385189473749559843135428388911863285712624899125986660460963206280824306952103564986253726120057305027028882990744639151328212805043051372969139190390586695840445410015612536503033662722542094511999726225648296513760715293217606571984001082608613463694394809862977172626310703541653318427816043683809904519013470768122194672174874880822595072713109287468256742882317504469705765409506065918604188884650988200484043435015526842625254617032424063636877519978477411208020085782824163514742982223284961484996594137655993407688444222041595113230718424984632311930417450982072734451944167808147682578553803958291534579634578819820094284259076843692640760486977113437887432885772228083960748712167450576062080002321064594130148969393714509871616350146797652747990758795024487751861160821267420834893372724654702953929086185777089198356224862833942874267870952318493232080419281550539486770070846295745545759176454961313194711013867183648815014427027985887263121763586581208744308678247135049994152931846955790563148687061130617035541664657824423968841598057114921438696946321109705889918727243919274281156113480079135881398122627230479597244337059821499878518814993616287300094963015644799663850012059505404774556993528570304182185925755573712625820228820369139541484373391678717986086179649400267264407811692605842499896228962183613740185713572990116351077207561265261330980590705457894927508585068150561838794193231370052841833837796602485426814920830775780631318235200425359099222412264809036779297679309276246054168775069726461302444136053516921522774072473021161381615596872083450806949216237834137461386124456308029117358937286945753239302691334527425526069659649241218672332955507429431266007149296188370021092594400904515113684411227913509555963520003202397225067537086652348461379570054054197840815232898872943808203745950963219776335414634402471485104732721069532604878426177428550799163948668752858282291566263660211955658029430151634733014082974391802504148874359511516519542836666810722897749297699611184555312080176542453170420993282967843177349580975683867244209716736247076279560030113234040426084836662132612423958956362335906461877381373785534536938813845144178955464912155039710008461969891675224498974084825755816552663023497923883465056783291321400600742935542532394750822433116915262363264472216324261315911859056626569145865356631003430526199155985256008617507804740564931568827582445867576963208092377319489454646901495850889653846355210501099539102590486627209499800249095080898037224120302723475400762854429579078652782541673631539997176912719182302270841829732110903239184078051438992632192533058947352409164821639432398636617970250741380873821485454074513419824093010593914760490109331142356892733211888632108542543500208203542216304934688138256124845394649661141890230008615511929205062433716269844422346290724118602348606609919554095978572157884682536954534490224888120048005038697861802547541263886281419079959044225771137225624930877268029626665698865324946835322660538608044108548750987445608532617891325956962585523871908509792202394041758870383998545017016652470703750216734278698878966060586061786328628481235624024571497951130865536671035371322209417485846499702198717263261365584130520555526660971206825383154170834547454105637596219167615007457859791780427041682411285499838141517355539606310739062769468632129059345841084243547966411222331412879457080286969254872338262756913655536458437864129987700263893264848601287958229912199027281391408197264349234944097405369248458559922922264931316049994610074476358853543577008934568599935573196312394874132966152654561559695857007184521475978470676284499080443459494363413638112401000124316427942962971100783307843607235107487279566367304744776045680061934359356553346341287308252393425139317896507477412270849031949438557578399086441516120400569453055740566968251637334650944070633321108872121383718522450535550697089382307642066678013101386354839282509839568778557277064412115026545173809988084406137670818761472338901294813605318727170951428573234889455124873562793300170035369609104388381694370653355882924452160012122272553091362169403283596678297848541402308750832126354570851274080599354978418910496076340199070195838413826944978184084492569366481358165389528935037606098625389920625715248398467055411146257409162585991606679414863936096899907413717697430804432548562318805514631575394968085306821103065576769202942045949867866820672173132317634147905682948821901538895058898929812398248612900225352084560518228831572362247315987357096317243974884460671660516464308020923770364061603336338806562970496126567175360337815130464435582583753910056128006448619886698881801033183223824851639606675611229429419867926933290526363177530126746254770678185783199274781432794670665932333602584403204276972963768376067635664081138542939702652979520252401129521549957997476269981815301936770997785763847681504336281801576096827535900313531869646909055139206390541360313855759474925777641789639029887152806302285211753509452091481854433975074134501477977147682635374544850517628600936277637713257131347370782190360294782461690505429359482911340928868263976806534404752077392210827552821074707055253570310363384434993194253944996524569442312218788676821038422449167785100503750168260288639780181900411776081649343918523469587299622167323502652512988643106903625420143042903737688279048516322981937896368005154979768292880217505713766877121778828018875181817665525339016006678898344696213697757327202540613687863071142739947292532514157728827654679621375966616667907605421709794053496802913228356255720905725038337630840715648741422097603645237500223656103037448648149342698715933713048986977906599493738159313900831766992146000538891051552856349587060566795890065814092523141015471149322417259395531944438698230201260181538027802703011912548919698389510502283236980091559040530412737740104096643336786785948136958249873170837338522654764475715892814867669008212345530045296010004473353140884432663257163843769089141177822791183796153220218830850184066229509027058372900006423745357899324848748677682332283921930007078590080354210009483638265219796926896218630013759947229244838236085786089655561577879232261688703982295183279811467882517395330426156019708828562841004090936577576900333728649622872266685682057177860110613938169598731786025879012478951687756589246245581032008598929597632967302384552499194320026613188367778934363565297552583856905509629773779218222763614934477287224763839513319065414956296837122885472875297628570319784477526942586267462806171346524153904026669942421430285357408775901963429227144817240358412710551536735999876854671290563491462672523951583968308416798926537603410130570480912750501497708881914679948766011712872210744277999674446977039529534763823439849861572634274511175771750212095684012861762298318580978912388532629548318476879753103179340700055010100161340871687677458052708469321691302503971613530169087268472551138823815922114099441604131478622900359344272841319032262983296506931057816282136218770178138026436627298741699155964358059548364976431044476754014582841679082965065132140431419437655855596364857930165811993358794277492954590654068784734814485286636320022299135687772837587680224927405634581130657696596872871011955249289192365877740520147610417178415249691558741871578575602142870893803146265724283676933621291735810745173580369636940340077232668167002786621001340180315368954137185731994945906091957512405368257670499808220215984103214436148590970750899222706608011933028663636495589069134011615133562779495911479526255060896342416440407575685539157605709566332765234802216439055976871734033085291712049566239441690349599256487382603294951363236496175937170220577294750853482380129330395959936995590215025183991052196874346606541542713189300962085476399389036130147056322798432261035265607559659297776071964121168404199172110160253258894276158144494683984669731044787156573164739185586377365094640814083236847446200995380427336872909338982949658483477175682013610036562585565181869044077373608711511134144276535246421690383478748357945691597265868465025945344151929413720231338674412470262677461716288535467318067852392830176993716543935099308130299937489109973938773243971886981340628594572297329028914518584563106453695320184975334962016160112754681786953176635436910703218046949278186453271451038474174420400697590802555592434050433543810171308590809662668444628484425960563600536015942127641637439927179224854625200650698624900365417936147780105613289413732722812155071631301032905722616152072810629968910052796648699750271584091099007401064017634375134502038819014978215585018955251448402781550639780676488084305292236186361929066651828451228895138965649360850127834800055131486334507523554095523754177489135661330409017050513284414547767035706340142974048235868723574793546792176675536123992536805934953409752302951012358914298835066328636098173113206332005794631299635024137855713828889767075811973486790240035476869129974069018358725844100097059691371370264886503722241981710367277790091651489711821225812486198759038232416120648824032465008696229322634893120791641011539733206958127662600577230820152351055282258150585568422612644767783587896701200306904866941658925482559153147898890762852800075685585435385955707152065051453714678124575184542938164944625741455168869090313478955731636098309008552782304335687599444115460756431438688473853742412612115761477210132300619252462897983414690380658200238239498140203241208239476120116333766340012289606756702552624003003497683805212343799044814616734741699240348324050971877463776243233220477765953816353304838125068480030395158844976799342037598087602826207232114719965960940706020353694263810132996058447941525225004984206290992890047229816574796536340337793452170320319165813334889185583745360783588963503955366275042758152864607806654551351312955100568073615975804595559800226201324264701466904131782081833051684830211948207376532995625310445151548229267282119423206084261867472599737795216857594182529613409413561922865168231104539171031704325610014836120748325144906623617648586650211341196239040440645971190070840459343037850063354869438798846696203061053999888442826420235709233973290794600856375639722662287143388775162019830566475952193073157039655595240252169258060173134305076502859201753341317113673577385382927303327449715561648685033973055232566095005190039116556256164650380283456602820540440890637067738845084461228910554705066665903654454727968708364295568780969237797557445035355938958110483696767285988041767496998978200326430854270781180250027344483558339346715053072132529958816558005863776574874816925848453460493992481637378655926032114705442708286193099633241862374776098356940418896050557737156282859787992208317642074412831238804203228353139741941865990508516676620130866881848800839128799674893060425568988575245824962572684834697657717704838013283378967263323676342906016525059407166342056854413259364078300865627633592323079013563799912156872426473513478727475029971196398501166808788851948878556699143562462107956245255355754683064375870834861890042880135238309259071744665068562943023380824865287692721368458937785447866722270065501441873556595962775421080158023625874705165719630408324641243557114191890653004648081676179860373063721565246371815025917394835172500595381364843591161703752488332500943399983194863484718331067533678776947614426606945482133224669422368113276069096855536001427732776351356806241729408593443065094024251701255933775052240930927497585170566120459530202962213252750352374940529130193547839154516535604150150526256353604880636606771255125481751015374954722352295781087985917826464634602479499255541918365264912464708349433129670491820963567238390863270064129632178135922596524982078002571761114671176847257636391818441484331492151985442664709598658762416995145605872166140610119569318584119178817842443433516124166722128458625995855237744025198206353263967133851870620046995643243149025058762340657040795420888140612159321816431615637615097707947954019004552905377949171307071732312966846486566150113939167957471859012991184001555345370090911424052317002882617065262510111996602211501839306364474225026693002144988400865239836629977875129808212392517645283977844009316664609151977832219014026586748148174433055338507202547426116860655708645138988498818152883656973869000035635452299022855314205318998436560333081118553984866268998606625634737665331077412611540477396810523320200381917371689110499169283666838981801797501346998259130313808064226748180537656001635444527976572160014796696244700184705440063552241157632700004975723575178845025583881884831049066860863407888640632039490750456335501253354333369112247648620725246712146545334658719648577065664906580583022744025376711909583637260746045565477644667867710788198423461621828023362273896370154277999858326712660713538452022731839987085201550764126223722192682313355716103814605971887976325164684857806598829990610853961305240056190707707568849107694162322280065211926419811251143620062905192843294858075648655848665939179612893755383544410948435964030723466539801869147913909352719184127421372532049915402640351906511428353551355712344087805115475889600641672403113457522624982579047694941029009746271729980764180477215029035193851890604117258777324844047565676088258674222666836829067846307525321573544551411009572108835247690105518452983044545881972875978377662911625795718810849876574806857629918186364774372948349182483662443770871216122588751738162529101173348588021285853511800051280698120538672708416428765610241212629701960721971428787209256229682399316374426496368941479699606131033165598401317201668626568048203787105831569888906148779381803347341771359037033942662855287444868589018614264615067615215449354045218159723835618244976993070792704848931966005672629518385948962687479544878671818215319246134889127664299555371757721734275094743089641987486175283010527290157266447304041564435325613245456789657703428490493642821231697293318459788048684186634165848970808042127005964911671930737608220105008904496171005802169177216244528709885388420987056888164051046128749798040617183539139182055126742566134310795308671613197917075713970302641449201027597632206430015856283378507819901163482241706194224995016944955535254483808056731911688228531535362701160215133246884785670199332485359459805968499230342819561708342309491595102210678614111814854717563854005751879375051402622074888577520708379681430377034620886163273131685930203081451206028890849549523588722013241779558547366313951915863972220875292631333171885021360656215341135523477052499767156997182805314623865226478408620737385290843255098134259216815718911022688920257163052398981703865184358356919111329002306344895089517001320483147636229619380504470694567860134011243125444320777340938762752187798441081345502985605235269679148217911587672586020788598309136589087354886619444601272995505847814795616860570205781803451419334372121842673610322164944452519840208816596880321904578852879413914141245987034367356794029775228359488132133247216991127247821492953351790429701018381213353619461090888170028607679175524456815528429532233209344884953748629659728000665594484267087602838704917401851914308574406300709078920921308039827893443911122170429562617547013257014944861247944823264296053826410802183952832810727553262449447467032697724032873973557781059042408269960683705592063205709026809067837914468661284939646387003105004043991121991730343680178807898690127562716830123155239308812276963471023301858805308432540076474446868091251971980507561607435880780675044345072608009137806013787388834673015462180698845446926296718403167530873686103538586348359422113109532689250797580412530699422488887563967190984522844167359846350016381487887469883537611910598389650267303754967228839137034091123980255558772375334182488925903249291973027345108800065133687689303611761900640208532629624154786087030386997957383692855697293310946627601686138003874048727589722241110986235005137945098379797387451845994136816942877372646746931375527161001956218084036269399390680622481912854639290166906189191258173315353639083089801935013358900773021724606259154857662969545165194455946137564632556647076412431667239286834422194513514168740565051893280611971961557909747185039455570241978030603515012359036658693558580945129832341789065066654311202470681044914064786104500051763526443342869596884590367591265922193579151597862414558012120582857743888907488548512087059328648639132506386079241852237596013040527789702203942143353442455634082646395692371982367415965837522437689728858650981064637275146055320420695943416216232745698656935389616770299881490119613690575611479167469635561270637728311694321444905313592322296625644640952090716570056457370626705915678150395137343280471027324385448366402816011613132360237639895853654489401965969711393464917365980453868006769827307617528620505761757887054020010611047133981240905677591184208976767564616152652584748160559326597596425223613668417867089890474517964513775961223829585428735834567369523053481925598542633969060404305639782952379024423829564135623307348647009924927523444127724352203150632013028658109719496708972207208192666902059925787763596845497486573246628600017895762760512110868716811262719890709110011685849311317589009162356964794245526751044788778942228226356216004096178438347499612426925315093533500568154238662305649573647200296388339980979698194698088705799228316981154274801433938888923861836462616958205831634437229525888126053640338728279236382523389502496706419341925785740630672814562457496826815806855924491271491178686221822032257021863143529869854955423336173516027516782992777304485226226903694015011923040908186617397108149639041018127034132464623903034786842616213335606058122693250305860347097831592995055606390001438552818168466168455332511637818977875570891880096701354247875701525434765254028183107625697912473819649519655732319614914621416298576698783484853500311056852787614651711977241268366209161847879556733067807327634901421609709871337802101392599135503822245999493198061070758489246937214731933444737282686877457087420693936322372410512215707478404492120874375720286235623060769191391434287457474571302977425805900836067717570097991434807612255745058419478453256063921125350596958691549150849747331800120312391044894841593942126630893629001482075175519245771949768043464174403860565452360574948234681222851884874825339234853422099531291345704896839765127698493555180238759478254354890254440588089964743008282097816299928030844617033540731850180038666634890698248375775998443160570217945105121995867153040125099417208097313861674861612877361662253977237003162610643651109318029756114615571924805976625765953240477949282275449326079967570029867535841672249011965448368916709631711122626470178885748792387745150160527710200115171220032463752740814489448365223706660032470145040635297116140479257551937929275812866978004414494239017102070412785757146922866574330593641287406318669459238331779064365692566776481492572240144973916249337366902509902295105508285489947812696109264783099500350904104335509623202247469171758271994848929418522258223727592395189455861407730559911221997744761346177684629076317123106030707079708266911402162550847285067544202193487358233425437419726159445153168090161460426776052325382671974645865687302910187793630485507587601776285378736056400353239684191391385855820865501163543643905908795419254705263431886261677243417325773246059690407583390400792705725410176054196792060175226810175520115522086677508195324017427018300728648248680732684819450985955253133304490178467033972073321494513980885710084191170848939204199076768026555439109514910185920156745140438320790421147746169369143811185143686421939830228396253789379983967403074831560423488419290940288675579545353453491822090622173888217663501848770515702601428484449038319313051562029116093109839291245934960748685711313331611155836670735089014505517478703742281411468158030676117281487267882166773475702132372446397301604373005812770132350239039651567512467188830667367544226250564308828309251316275799948794386509284399607353533496442920163304980768637129629050910798864331748335907252700011612190173019659595892859468167146806453171225519067673991487328400497360626074823370000093209541589737424121117254425285373530640905512451303855461576486122868708130872354329598981113020388175664835903051353209038836700710857774402938341665762174269269430467702369814054958126104530936909951615627952273776766377256346312754782796305204879542363946761029782721221450739855677937137509110887485835476028557404435016477664966052688372753523428856598863763762826748827816738205131180613486505677192564244878520431080385783761269956293294141254958227027104903990740871547536061047452710333660816983568975781617710157541188541736093041760702054834809883271202104687480423626713339878159189997152254363154722385906893748505731096283773087049532421150378180712506796652155115176794208340054818991716728870869351269426415523840477296144960264408009698965818370022212265264120564065721665069064655139847489918842031361086301715426774391111877470384749263303223796372602100008135248130833520263081825604990034427036420577973263918841461862394425809576001492297410284774081198058846073695826830683699458233536392379317876007897189268936230577917090341295883437476795645166545713979992343359221876706384606881756314758901442053479661098678279612458206124620111796630695383788451855889709261569002938526380905143591818449164276765055447096866917660771336614727470400889497750284840134351031719484319090244182408976614184978575196843582055227278388539366101291937756464623710339091836226919487744093663333331433637979901485108490250944930879924129355529774353087263030234389260431528433034618708160515961819771555970652563715495441880598035940987829852725529212123077388915587818238548904868331014859107362356543035132519161502524908773212496917693821484416292546156646111342205665086609183577779209028407186401661592539392289467831173913283937429399545682268888777970717114926846830500009248945205206929514843494653470663499240649961526425622142731091270104116045063579189993525866857409141204529886684577781515894656529044739143135167061439664523146294910162006455252912198971231678983260571864167453459197161729516131257687483156418785365239423740986331834945744462338592909022806946619707688706114662172161872176528189209350929874730991508676531112437531153238132063873153015723955671787553250527476062331035119801154286433040933526378973459067577648439803585238323354293752377661897859608944985922592731248437051952365579650102981996658024558677576307490719685932695116700625159463755044548799126144233676760986439441668972819396628305953644964653018944630172626154470513074305134817755875474363125361601389381986152383472312202130109317502905105539733539773904169877795310586493065257486425434876521878696362120304158985125240821798604809349556641119336142202283686048346378138434459005517266615490656640034147160441968983990206422139593752059228174749812099414046029733988385428647066586057126682367900793514017801494165434337064672134903558770703195097443090378626311665662954478857924264178385054118307411758405877413706988833408691211417167388756192025403533019354843722297343547688927761559448057550084082482054907733309707339013126482617536420223368018366716626514722174724832704713211495402096917426903218492643352482943152725216814007934782578533020939414478064085627911065397859960486267579356052121772704685164781438243886811564727402513933336614255232771189273051010413521818182196811035476975364792634846061408185832785776865380888264577401154850287594531866843350543366904246826986519965032451662468257186589496687871708418365352298673565222338456895984217499643135057082844525358089048297530430747523381707918242203555616717094339826339364856577230152614720009050554969817464614073901241768615251751065536468561147322053936470994650797651610980516674818849529360535544055675091855434803879256033611598927000439921551024714982357127611106645294309740409242468117960806189842619110198968153700638201847151211184883946993614691198045293019122208514778443424761747981577469619868606209836296997604790350751730050330956751445501944979628325268221678740216636830672827989428192613545353323803973975671804402801587774470986457591073092349931616271700771785457233837941464121982665656665215388799579586863779199802073639081927276063387619254225440940641386086171116813843092234272156642227704676634980707837194093657389206710999798691979669891941129661882514059130842289098420452978093502884253040708816324148279152426377148711631285948688826572143677883148701114556965022599526163376843702213080934728048436047425963166347667316091142042007995634052778694558538062336888372418186875288090503794318911224138815669459342906942835730590944505868846316552403303709520913226485949290827777020245924646125856363931589782696578680067525005451784554083064745322557544509334782719391753793809203424659905459405526323697811825201613073190575404195297344861538334892013631183120490143918995671524926304164094376473343868230344135214022121223075916697147493481912629847902687718967048284453898529227920914143564261853163209708121728146964559536769868844765159290401648712205369835596755339928046137888271621280183180010645420357383758168790148894792596807149070688704734088959338790400269460493067526076690911599750068163863163295234008589392030048127419248500314506500232141815462744839906635550851793940531557402065807803141776542235398092562951768312394128732741425444304147482024548889744483352687210202345457326659647475265930601967621338821187256494729545763756201682527662544856139399453911756795198327817354182529127484923264391874275093448124156945489204759973414166078654484594874124879582781031678325599991808456171231669972128597152206204262893055790128858703466596751254109179437414447554626334402335815113117838131286106297062412061658402667551264206411784075326423308545779247773391986801586200987255203241149397821776269313636257446914149108491749940487549399415440170754572087996479195123216270159202251565651188211970259071571320389228475525110982866682877299679121327957158422154548221258350109528388713633115103118354520038729082409460462090192452464526324599182444067215982679738024240972239286560130573148113127558368576042787733089643387195180531513602241088702307086515579020487584826983155117553012986054813063422686974944703001239256849508889956320513409878244768825005064483323351522959925738980179456503967410556145495318883550312272929097350936463783816030913087246570057083375014004729113885235792209365232896140253769643868284522681515122632506267768447293869766078494276009992689455717808467673563183733258390607932334719884164852833723796097431002761379104605945270512328078011748188380696930446093875111422440455713384818858387930927761652642982041489166487417310043583225560186676437809533445549772767625704509485627560146359389612861845646809004400505763259781528189108637521511636649286654626052312047297313426836810518928006678339918640224908747178778641496662297813732707394643892124086555183768425138078168868529832759802675834436903519884323110878258310887402457108380697350542574762156096326027659982423155047040532565087041065463361152001571661925006657601503812293117274164772826679926795522555851795990885579524825626219581598811625698307073881296955322655785518914207982296302800763673833086564132032697626923279474212755201290617765362042997479203269033015029813470269306696119006062135937607864158088876537567065512288640224842372903402799932374393090544305681348129788234076688828100336982288506980060704668214128098695438790472093091614201173478532169605097377086206242808534176851483326084443464049722912947896015408649480498769220522303542455841928408249200751216669504824373671026915287219737280111467564302558648012010890844566718360220539390741020898901332237621891593990639139301137347100391823594683646541946346975516374578841400612812248145307401284170598356083076387781052581924966868417054154804067762038671357294033101728917310435201752137671702331201831677641272019093231326062016044039748378778752297730207085906069365667005251462223840463116321491956036242513740619058729786146319109094041466747218723352933446071859539405982099007103375145302287557345054783735800982179297539554875593642219108169014162854765666947020814813735230646923245484466839086759867087516327999358334516802486694389544569650591891803953252124335060350345401200486833527174601082146833385870210014488218087776100901124040019617509138145805925086965943261580736490011548310133372211737577923868730663433033245350435398384509289848382536430059222619923242671190103893385311171138886052772895888449613839497621942283117052961725640625666635139335867962575704935316243139776957178988661775270124755298339023569180193746379792772881063076919285608577452587662237504302770594525672075851173249619926979758679782655555067111124395058531071138753747810259948492742716011984573047133301469564433901721206060655550874704188840368294065599385709617093786731585124457694881062799142488268976819184284328753760859977517576932165317383346498553813931927557881910635319550439894724860224921129897026268562790758484215660207165560387375232751544814255141321033685671891538280773732802989235447467332757287941786225702737976982154842639028153712390053101556611109986085521990794708250040217817592987666018986963040152988167761025326789001985469638150477977099047010604453519284779287922725417848398088225262239473030375511009777744192139661460425878633035374401923596848269570360507310073273517560412340177705659912283990036265828488149932930591030332352220389044745913880995881426993666545895890175230145891912472747115967656052667608290394230137696909026274016275374570712076238045962209132448447040408950354011741777683394015388621136211021657623701942574443561834060583697438777233324472567325482270148048562847441170488058982695122200553040433860346628750403652243582066256428559459092748999219494177453984808788982511764021480138596469117019014641431195114472581068739117340332301548600952163864222722786666236083736527542822611387296993841804717542410506421127693363885164355623350783874640120079558591122347436421351598659571389702998807132503302438710669478848627868311177610301081831877883855584194436191615452595973493374632047697462310853600060789686111995873188810867084018499455775044351603111755112517475806583076314541166650523015886900296186956898159925782327730986944078356429087965474711412036775677128114546929652268367152263751105313875886785110858201643198250343135328656242149162464704506965669442281574819669158874105700428926454467804377601996707766002148643973164824494688754681159207919915320610986348899657395450552125443933930542971136602928668986300288510667276021941907219766255759603272651191951721493165471517538960765208674714007368658096225668115673700318591553155901362292238602814991966758068864536481366340126515103649301381575958202521894825570562278936804764860018041282559066099352897624743559040214177991151579387007517460791174368734229595223662663723002863798049128498671692960614809057964924276470242134044452913932335419739479291330110122140196761735134196216298068400420101606896325181880528376360495455455156883620469616621083666753443528710896061351376310187017317020157577584470492261761883555093069612125365131500521231413950665536414537097165984864243267713192174896079630175593979492635985873432908111404660078354835851514654513351482858473577989336553872979662641899245712334420449717482011800497705851342030088787398832929797118605999484855972246363073519950304910834539809600785672995620598134519854403323416547728482385493740132309116004192749825460452287663529259941496550794687148634362931298290746592611998782445801008758856542674849082677236799416661952340174997477701583566244662981015799389926135710638109350060237267152161754797123836500857288632383043624971716668409790572497953078722467053289341198880414476008373710076105814444327481919941325686654631240006784347947234156843461926117275077434500686092495551831619555895506069768632367127250265943274978482586308208277481714063365613118206514775861489387759545102948319300691662625162625652870296090813381433199567928348183611630510825291459505224533366207501715146044171922929041218686819442590983933747603560935751285013795761144636426485676643168299336113662104065611195761668541536383801475566678342253901794456156368743350862490624832822588033647431368494537395768914302749215277340904023390913282770979255269850306438451841932251598364441413789477556738134078459244246997191203706915291215376501620339627941175800282884258159027975548071566090918749215236631096474564311490268081104675974690632136390777051329326409290097778175747414615052192518797198786542694091457865823939313908503246386413133350663152533005261981897022700912316828098826283308588478587716408159304831263758771451540317747643685446056977547438751313465490392846929542753508345890395855321456202511682672578808345938105483169971159791177209807216472523600624873046808747361018967255170651141781949419126630981271708550251139983224076363051822996237672311230734823084510010202009829437947772138518013667321880542708186020905046892057729815631655388921420240462370880718181527281700851433734163989879123922054254709941450446712515237589819425712039612148220103786663682106614819623751392396208477636847263760464116829380347416798755218748197920391227148962518450954836981278608395205634047520490310927105151569363604695251262136112004541164472958051547470651369509948797968676700211560122428748743732063048817426049078683540804863064174007031532494578863166161072757983880687762920300685388485053504959779947107441986269750950934468826392494611636521191898993685415062948361051964690971379892062142255910544351478244139644472386624818509435280810976020828175397347867803854295681844022892664420865694320416762609727324670943445114274571582998026039760227045446038882251117477973861920369854586995572719088410592473085868050718171673573080123927421436233117345884666385843760283975134070068585344400870789556639315008646769735631698541108208764609911683144506655975763587579735563828844423406242838451373246642635805117927586153649798776641104075595219928651663522483636224595727565457165120329603084070977179267583974908068170411427976378163418755002415829036416703734816844429751396064394488025337244820358063674388681176852038993281500661258321616328127571771286488705822686240979344434483583743945541831635393183273359836467468236849863915507731227759557768560094167642783535320976994856519122459147030952662133921728962863413637661906723105652425259405098946531992218657970875903527049032551939152127633068834076377429329805570609886177107213140942875372353403236998579892684978554321359190010277314526434080290130868124576458269117095037891511612800901332254076828819281471797121023487402116263163370254558692111488362962950017068028855112997370017798037164900031193259296509084574908458532239147650503436462572826665854844586508794221594543069301004039947912829995236005240624750824331133584238861881463606079570215301540704612550987152257229583164442538108432817768263430365172389233592278538705965784749562713087740205154067111841207738456796234849146825781153094922433628984975449545499325355863847901079528713308125527034479361887939224208893676360910268553887615048137034065369549378825249595223223065717582838117544458748282638717016825302179955676694937700043829930685991431893742778123341898095285403388514477285822558528754241829172528027693106305635177113604443821708811458376871406383585051478026985360290876776856472324162464629126458679165277244892022238770165824572837747858330285117567178693564443123406569229917684488165830876486368256670537119833530398419647856696453255300264779453565256587239733013921921732808963534958014817334708693681283851300670498054825230273054695699892450853746885717233818846797450365119963440279183126224331677720448881842880039516753210104932277254769857259881917628079532243435368598875150366481641081940749402368421092538510864662480529907328478072678018225128395981588426884846370782762743477525529055183173640842516871713079725155088400854120760787972809068544904275006392184818820102960231175019418754349208240344872934365803532576789407955188736166917010345239689723947125199629780890892797735286428139482065611068141490832802925437151623501021882719878076243793626296643517544679992052872524937221168922140633186701643698665038590874231527084846832436200909928604935902862083195238981154540767280178190597641684896533871571598670477163236794109384146281661454055664525048548965758310606948745928497105682211667430205617645412446928125871861652400366762424208869100162477239004064149104309050546405656036499153346361581292305776304772806730909918422741246701567059060720087847856316317147292816435908946368711746940730657706430045513655987871773515980421937507912328625843559943895506737577409501902097680981790695837539121354072920680903989464884064846634925217047724123499890525963251432047935966551487456957542971912915088614311098058086582010732857983228601834193360746677700761360491534074462850225413924607946024528615086796746496383460302212680266641099659543723516541842438045551072418668365475537458830906899898819236433209096762641612915329829142102273542482889674496829149220993113357025041560208933666191652546636465914339349040025081177151602754712094341360496296294700213642086079982990990124968969996339850560999864545152477592592850134522986989286917101878367440917290207732296573225338404835519809751778467335839957421734568744029629335808573243683520164326016616422223707772073723859268379410159141754157012917085634879050378338377276803880073303375490762851447301019105246155204920754308671517392863632016295610782801065822294039527354226921933020398575175197696161997041486135998327605640358845845688510352943179261904816268312503919792516357404036790968525136294272399297952441340797981828038202601866047272323431033451685541201739711830895348758723513402675096506257474545765088367787265289643267981709968844651356518999186844723417880797650806352897008887818404723627922850943944623986254647172328173107377760603372077261810272333079933102682152480908508221218378822812293321138261880026470944055168122327770951240692605289642314244571305212286597414420261345161257535760369527233298728713752369720537056657383823810468081928219798417305230895778143156187031924316251383155857654502192996876466103256941962156787278044282837972753567042480846982184162252595804884968757953730234859960505088103428602222810418010767628649886385739071985196383289988264770298421770633099580672059088569978395050282387099835832918153997920255772815026879813951735417166812098014988498744179336012011954158274393598562701971787712010665635901298079857334459375205465112930426858608177117236630242815474238829026505315212672186731045495385374898904816407545115363068155602175354077316449455904535297795878055273217073235954770493742094821084303181919839197331790253198799260330626443720765532924214981386579905517630587139360946432560384640717531345608878580031797566852345144263216004822209262831334098221411475592530116416725349991544845623465007673748310859945457585787816702029776098783304592435731258490914024414848945608066060288864926270456705250134349102442626184927120767713230203510455717209929841801892554822538335854761391230898329170623518415396263723525365214481149579460640469824619600066215734759072352887524385815729238778186723185635001549226378603085243579658269462088739998374491096439748102364170734612679906187188465795427764370312055143371203399121470486498601468529303347780247967558169090932433351762550471843047914011424592741753976267753356343313372498247551315180340002680247504756027420139901898305643721627865178502273939823366450479467406778380045811184143407988656938301801595962555425973064702158182973840692706567072377554684626661184522221686183529899458330411374066073659425433314848998531071943564161124921918013537425456130209482253489653159961727266114388936601296440822905828612044807299953197088542093553778522189768449967426287381135469400280487974467754846356326031082319251535858240608076997170942241653889372006512532285452457527534620974363398873494585759897160195039046088032230226107332254214427398784853698107625805116948083832797926438671946378400986863620213967121081212657038035171015502494671678239560504563844296238650724270398675093096247416998441914362371715498636148673617842434574255905206873842248908765223761055490423285577643719611272580120632146749425726252550762823297496331637593446497588160554947649299175937985789706336794006448306651705817588464998479743669767700174178957869601757606863024491737908524786023046884668310025856869229989174496799641278960304440841250931409167333643134684709306871226544031441629443858441718613807801337661587344746373931627847738932855029197382749953818198437891253024540782985976610142104680811259091864011029618685820539081494393979442017443007121823265390203570744712620213693644835756521542015980189316042231542447035777349567446595295957469025768633835649070861762495822929143650330379694146026251911216985935793011527052877915055831427783663250894535811731738639322003597115709628578521443758210319799940614293923224099318039894130866341003651280850012087050640078287137226186470546559228567261793203209609382513082592446956851052550367591475433578257796854355037006451322415884875159592705161520846130140958314179498409518122682252168293194612880620799044318020608199064392084277557127293583689554619430311605815253843427618338356817588617932559306767147893474384529566053977466470103429172615254978083855770776696312934467936453917803850298044624791347634043282617048348817425315481250937457604505107939876620213908907203907974370000729779941060264905804691357179627454982545756291936339148400511106667987708149462367584477756602072731567286719685352676448970705538926001240822589926748662698950066764928323416188904755589725224089191353735333543663209557006526376573339505915900424174499684715887333319797113561652824360903743376705497429913216143394837864066438039762881019547881965745835581299863142207150831933240936724536974870291360651830288176083061226649770794831414221366939268611608402179151185133240818243094611096387594119591083437301603698978931934446078755971540240818467235542687689982930563486746596743528888185756020609021515294081951832316298109775921832115368887620042197413140617118764100793901959309577968425417153947578291529817849464238254500513604148725867346999031905501814646515807026806236535430745515099764514176655014512117723126255007404286835266006688709893878648844483395483635520666323866514887706020422241581884438962616557094286345938151867483493033504317999828619619663924504509405749753103898533130257550215432777817770471397536545335718633236280457453587572580070157665246941690555027249716938362511980529572216146064252876439379855008809845813820254926562565805150684057822755415083414258157361235914767906784411259636474662272364153511616822266587372810604160126411488366594846344240947231202509774378478776160505793721140817210258355368820811927320311661262601584408253203436857078219508253103729580759522371796978301862900895097926983622345335141444825444019391500561065018489236608229942402121585337415481665301043776660138711090720497833940811186445141582131569382314018903809035327493631667049610879721109163893908322029396073829058451995831436016040966999482099815879807956767265088499967048736772259108114586142351799907336443844516273283570158268368986908032176274530611421780657064591816572036614933042048967404281742417659174166225657087234904353319210822421462599932732245729483392181881076331681551620071328700615638449106619837696329024014183864296305979146542177329566253698580099013066217568408437214751855255618922035045835881952232917370698229286164273937436206241096563124912689243652651081773495663140298820878957989421696866572526626549569676652779201540438178618889905996625814381714014355638627513821409385916859134519301064784974116971074026833090717116672597970411279988974506700897025928862023004737406346166589884864861491174444596871481588457719080492914766333942622233326420853951167372395900644697427326776705058295493985999588016790775916343402719759381080017390380000344109867861534613215182395543534552401733649250938162396944425628493911965742816689012010594441763607307337471041580914318884574694697001155525277115217011280422144365519270404929209416156613713741115172581191629975033664041037643938158704764161728753071084699411246647610685580017173567918246757780602157684824257679018722158123239497702884977542473818012481572349192807762352930090814744494514263185686683020670566518199387244688331849840462256054230632745523445567589094823702422889396349276148083507006928763141114615105927525135704186678284385193416503653494045880238151762813667385457781770803470905725187318564976133970851711470372791034552060237815978426240730671219353585631670711242772102667017907386760794920631121661977325955460069952215346039873823008309073898261229476141378059671240684326309462456367009608895537101669634034002466178755493323467937852439594047851401862509946760294144966804667018017145806763213654552319297625508349285697844839237361727321328531620088094475564628870425717807019703865128728953770793116607307344058692494849234373437330364611910790823781055169671578925986894858958633247997286976446576060089425531876075097858243240371199172850790216906014768620262983170468241374354578701602438994944741893294091355493373857835596110856202422083902172013426440665474941583276588950387174012417421639656872980074176941828078897946797440799332299933184182431433599416754749334601590933799876669619477668658381936072578889770343687650804310038806636586189260828295957738555486612207676213041051458225510740738189003681564736668058874587403102268771151457287528434691958378272694932232127442068896277270526892478426809198411016737938334845678837368425640324329205622047461191428084669964557687141366978801777638625950718757210704405832317272745310210330326017803304885011529868232155818264652500464320662385842780582614450299191468601197310547841131776933273862495036333284989945347194866595362758355905306117129180836026893382559656890549661751000849352398385627818307999367537067890990635353478702074182190663688899883896478114215410731256496124724136506790220967447870937509530763991422269642544141816375977172028171410830085866133383640878442283106254122180526424425486159693789246334150972893502839549748730475562081279462080828135923648341333538342347202085143770958663052347691054777499566608136857400002307419644922071781214123304915146755593909886411367990995565359176703915575967298978581627973397055897928444049176949419005782623666540167553627037263540738354368384179684872021127909982032226102080219709850023524048103880816870987179549085497851924343245859069350311429043880381892876610766793104690872268025872993900359408903022726585811162023982067593671492316395005904524920733515564617491186144593033349319500302036830323042449902739261599397735991559485059741122160049820563527027300370425309201128163490390174116648080118082146862413782135081610804623785307141852329660179687766216099344145812375073345270842062035660118085689361883124383048800470299862097598378938141380398736886147681701041010298786062251649722775854593087846276169944870549125685081335614247679692091669281417044695213341672060587181921068718186147303183093038363169483786705834716511751606058809258807907376112195789727007634220327570191409092386163521262429504122418516347360324602768355352581978810178409363039385524793554904797976615298842770704897287925240939448204604341826258297749137471902244333621448159130512368331901593331972255592886329992343268637104835757207787452850970675174045104285834753803746738326170150418999581384369384063467345467421628283794250733273043420288262687273078513417977711705090506969749886692872345707796530793150998198818817529563829058837266794716262018249154260179656783245965010951863212489111558191566796682005662578793530903623799510920883429116696473487325689656128681720979653192860925768482704647105861773252383702421222043175970979206697018860780636410236532621460553347520697821460891608611947461850202321876515076154311382741832051497325027051432399892141514137881669009706228160374724862558480114613249206606154968073288697224023407815194545885365597017454427109197130879900137333816561511768793198426305819571524606646656465769019917435387053814882475336765706585848571325008678173154191322698431089573986314806897161875030454020472962638828841290851454004927086243158298054217946496118402597461179841379380606910196128638057746098930698261078608358259942636043683161341007556210616373356169385569299225181044489609740319064938944817147586450744713024608870993619407072859523583225867186352950633041194880486159771779171425743757676449852152760717715861461756393543233561418837691290091696538562071720206502930981923837394876183494143245709108304764584042189051488502224893509754630874846056898470156644944531753422174496768491480476840704365754812224361985136864944976196483429164353128673000193555668336851557853786363970992240767647271208488035051578342595113362707810594442884500783762947246658895105750739068455176924953778331865957597957224973085382797652245208846698303009050035160812348455436324268741819909443506231758403496885421076654745285836021106533237924238787298275006454302866171912010542183337777341744618716236653881756949806882061330089157295032148067421819269311773339832476217435956081836507404003781925659772883021660324971612876477850229557201477956635598654024695453648714101779170487165929898162212610205661216021049583123050845311569789823357549573451369516698030219387747242522200755528039511306501991907091527577668460198750949351981002997561468167476677041468328647681648494381702544629437196371994946297176560287343394043528232715590969934961563586090388245003780369424975716932901042532488772477457905467926928304428652342334953279642686802235489455190540442100547750218788561512214118863858825670586465246518202714347381920138796616857965280399242999730247731730154001188291374766966856472644064991775515860856560980267602383918295506372388271164315553134732891582530808418417118193548574483899134182527800241281119781817076185969373709155107962660849362975777628414957571462768651309547946378412232751892916794330847727931520725683643279180700924794381502680246672101111432782299898397434072506965356921276338274780743377639050327296064149846951500481599105933076880769577151745821180441712468832969012686479772894937573115549913252389388771238113971510894606856198819780854675826880718776361196378373696093564181585049901839722391683280272217854675878526048742509549977990105974635282626859887629008746431032391516390389735135994455087092859503386574182092622699724058745590295204738112793421207064256889080453497369257081926636737463516144907878661264711925412926514913744319884297281795135632514925674489372389477701574712906182547830689309144627974593233139444963437778192040217708901723890846824627484945329485617074708195744289934999210958839071514453501057384039217725408872596231403502567838205555046657641250464033563075668919578143412938608080513554468346524544515685068436832682099990593356926534603050207433115888181818704696699923481506054708912014415103164401037331015850080353277609527319497613460372853319271025397926239958594196416359405396414176391069357632564142014524960229036900967062194269215821351671705509746409093452021430244082502482104086972281907646832867069543686201465706952929846931714975618972834326329241667747021303183654841323203506304732990270761161041807208835183700366351515470837279780411275459306406641302956289249113987723027364271585678115640379134600323726011904066519965816454333026935975875023999193723903995899001288184170200799509003578066480676528062786667294165511333031759916916307749950974919340067338093034408317512386087827734133290318822370514552372186439503470897808270297883292746642519208536608232741943546980141154769348249938392167655310617037661527619523639351697611638262752052712989947173816912551680958841177207519899768269484421800589473216775943173551687460111947007362435754275107185764031869301028260329142517365982875328005069071186433881015773740522684471553446391271390114779811895102289775895984968604158881744617378307689761393956851114845240250924108145950232898887362701483969282752106464242477652040334107037275289040079184261229639683553688591409740862227536871469106709666103248898126284380831982992762657450120356592373156326285469956806799039344841596643296156725776425527143783483235106977838905248164654735486287894742255961936756772269828324425658124908275189090202494970499240841484901355679415827803174275438013725346294656172323489625037060847203305324267662735002667637288396728430912798170182376194379529067518339083842841916411337858161613499138702343885671578964006890173769166373711784375491705872968888812613630478875057642194453764110093788492021970336602288835843272444744803689100409349154544188927571446149113789845463754712993198567444628640890633047884689398842806317252742538512086605223536086306290916415141935379737633777464555061125880083998626949584036896347533545980874471444231069576671834434397117786713262425344497791058855743630289976189971240132143797243252468871879346819761088937229047894791331108813583939800464479303601981365420850654991252310550196536264296481511367923973272993162894768055753682825156990918064093622591510691595931522542246763919117970337201732371492863090002905881033938474217850479362623600838615661595909805438743163311668239548934650061381123809601749770431113452795194005536052254031255943280961595112781901415091530993522124843342975863681474465216124326864022944870202349528204447520995650954826167042756694321817695529656122597572111427224061273974368219953404206321095643547415549256707506524844033513426251040334829865531104257855523845573791924066948699656565331807562934796829065737494704443043575228163394473017592457658189240904561313528279125385945565786797303935490389983732122099097916433691009782608838549203840760285355360846038810310203631418964156683297313525374918802178515611934998049300638716117685116850496587040391947988537270985527426093438950905458948844323413335549112582829986663363781426181042960119964820261384148154068905959478089541138357581578085687722208646896104071634642776721236751455093142616894703064857855058214435820397260873430314079887741906600478801509331096673271116047656343991131088427401214012919060234253156522103069501459825707230581640017602747378455332351085344675236195522820336610383890030199693960085269666449743458036339516484775770221948118184725310322564513768389518006966665901476963263264879779509466269222016338534332038367638746684815774067642207814143776199242996798130741361476021745506372594326273591373268710244959022408544069336045265354934238251827878874232447243247923808484032608377336328852878270559823457153867043263530648926127878416403038577239651672056767238615617540215907756873497487814079530693391526297023479256591738732554608799721602448613395878830887956115785780079112386626969981924222583306332368808508880943553465955981241590322451050719526012122652225637918304189241419217955918778000559735712931536795192992618669082343364501637153733271422617288297541176075018920773009551964173364003320281940571245013885051279292766067943215962405656840631520991094635517341328470078623659196593837448633064391534844959122338744577083685721044808269547187380618627718852560722627975865693340315206461607228915352710672857759702004992715520721125651132493104076250766568214673870259969869374857335051788710250886285256164218985652860377354421502508781803833286768411112465503099746943719804044987018989401970962532109288390573601960765271827333635422152381368444991914072540415121310398604121793838395715723400563215060094633104118984847065299852259508181763774508022008447988219363908561213291601975307069413328989402397149016730174658667755795501315317500748414059639184017679917356500316560086723108380472887045005542195734262414035456050679477728617171368877560980761941697837538473120433745188053286573386200947740522965766701701912237708026116799789632427991246866308688094009396134752825170406023557262814646861851190956482396413862553057388832046022359118230864669002289578536708235958964932917893496835405068769041100439499024282365722893354271397123545523688958754333684440378853992028193240708409748575307896954655208788834388302844558740802482694807654818940285341908638262917548792640533795722688854862950339101827063273787771004772032905605136965343466128787971725839120888236516912123896686441366794241329549830971140800707375320525346385177565709095040706529694852842134403840785128581005582459929347232470326645536430983685791396437449494692948140541287994716727233053989258087834387062684288510696581483238110572005000929058310211281354828373461422712007660802761193003647902553787475237858510957974596262881637005677313075816341631688873282713429038239963977194763470360221400051970715050267847003712932542553325785890350589924147879016477782424012482448197813772960087736183526135946715037647567601572017451335359421906933959385534535845361257616078729178288182086927180363720090795078829395987355652328461434279010764603751443343911216848710016620463942730852306004243945924689890811640724315144504706775697806451341076376931185796744734855649473281254536786736589860227587515666634123696397049946537548033681821504565868071385288100348713468053447154729819121190244386856092632066526681502419529284675486985404587005815620028024827300199985119406193578335628290181113379338496788749457150944553102777342030676255319749850300335360191981928867596587295433884634927387209364580752631277105653127858393305859192984419439726596767622933083272518409528497384615010521663443054211652707737702237329941060365052948557516792384760359752057019547112595704202847968093474172201691109988545297641778884435280926928157335354375233306463173019325179081596206876992257859825394619467071975868558534757015488482071669973900904169237955626339930351618132085463677575163668743765380467710313235518968492735228544025787784894259467196051329964347447892991135628229454142111523396963744507423279468311993740598768553541206581021245234807934835561423897752386565726949752965714618390191378726005145269799111079523922411336169589212510082753621930437621211304157161859519306027865220286251765452715602943006742601034482778936449446952002244379554955474367931562165574015469657714917208851962329619274269495197483064729840948350757351522552113905746785449684678614431541885864342291441807296330435401476224555053907801178918778071408642838923197758410189543767618134208708294532370559361819843595439151029938642038793657085997087805511359693993507105730132680772186650754093113309227525187313290884746493888158021088249709247657654282874518448782250550925019767529078251240009959140588538683775702588657537864355727633385789613777143666338866584596322990851177931026476361503478816940120361346242191791076640480464698155706745809516300211232382783824534529127656054010807956233980959361926314543787343505190352674268148917213957231107578844995002696388420502549541221657688565083162806859883084326885382800227771911995397975161321747225385627346830176369172997039467004022007274924419536680108704849858601895230786225235407602037856518986297061876162953665620716689072935194713919261911086315619645931206157244981681469573274319689684996536450782469561603842024513408629212275753953288816753850661913563598798057781396521302524435563877831056840677574793382546635689020763263366566569353120379986053827147129340032271089351302923405395781706527738580459642274223769369959224933413434484160308256925236957094385088589879691364656899872874692318571421573099256310361631449786357912560277892966670319683791590492585873841071582140484441405482869622261041651975461597010060557863450300460934555950322464000844717791065788626151480191933534645247273259905503516002543642848378487634373898408300849054031224737748266575502542989727593316489989496210994259192283028063895608970989626669296106530800768293467397396002028025704128448366784656915754225621770526360936838710303471064889107746171446537874268518996870416787102786043565903167223956378453450849923705421226066600151240048830332275410756438668265166006975885943597674810009958114591060370561765597477820394010290252983031960679830069049209052565201743456720425613798294058235574738289237871041094675070019123271664514577933441611070554582471363250657748225771545125085624231978930834291085592719869398096015997799167403845828191740418030283458963535162960673608227741827593873996704044983116985389018093733198761751200456564951563808246310680736488753879235769957746868597781541527005294905282910068447676169532391694801308804819144041614214838906245427970490646447822070075697962411503937981756544968191557187354841839680471844703614351012649226673158503988629118246326292946088124450771523337749250064508593410207662068594162451567709896886083269895217981492641260539345103138100251384999542137092056331537719084877974721971495713787455202396280260899358730820945584689060443343726528685295120625096204736083099864609712736279542942986687396424994958857587729657967148039720484681590504356006939062133945472066329690041727517925977474970946604425893599777201885631261568235107383671914344982744486098051908123408704580633913345848424282941334336824077862574690553398271897648958590144210555063309419040576715161674103974181613220470460046062960262828876806553604476786547301171972651122099695433803890714191414589088850056504914663034515177172352664643280214835659565450539066515383753115073787336679463678749165914388648878262053045974960750374378321287373274968510486694975409792552588204441319927537328808256936830215693532006720221558359888139839653791674840200936524572780354860100124142931095572803546035559151682394393797580986102302459576356673357402813509010603097247089779071987884055611163091300598934761630281833838627309294882392218092868838642287803788237296536022557239071479474784122730184307660497084957570845728860506106213950024367456743715349168109467775161079266351782471027840464331734900656263432394023375251474367882359132182406255991857406589142984189349234463630623057646081188168042061657415723114082064503242738765186458766110340578716732497261159408708386317240328475209458950420923737319286017069346368632473176946584374327493030483967727789025928262403159372945157435021443196378441053389279388065290680912959940530371211441747492898905849142619120271488667573782192260457081686670373872049979248911875131103155938156694457604708362182739863686233147312915856801139635273580582731096681924536018506624925312622637606859704556023575362491320131423572755697732923229765592470521039017398386549339025951483428737136524843758372598049358449703614280712348382521118881838037734461362257928078790355181615617859064127105356257968743704521456013785309209354508004636343623567418999984041539990002001938019990333689586467092141264976324974752817914280528384835640814800288306578514283710166014227673923577112177506427892488091916219156368806617961017970628143704312394160658552915892419353363151432337571578799157762682716005318850598190859449319775402939001560342608924178738144956472149746506651389727798512353894090763812289172357846377073014610354224467395371204733294553742085112347666803153988381887261402510372514626891661120579927017359664205560509589546917298801479978715388691623729455530583759695361767418556974791661060330788938179807205601262981200039585956231338222305371303028516861840642685375333117298996074442816107964534450176789503502867121708308276167846120502146319977255338448092437242962346299414099608533031976164310413070974810142788637882871872459970232361992367746905436470716610383033443825210176742362432899617632890945633629089209259647200863120635361937418970456021015538125957088312016228432931504267457097257946384565259531588507889338504992148247286129377496680197672005564144862481281491205428940311126882042945774981780080181576827836752963469123673417399209015704921462059390951161146091323108944738881106194533879237632816934403886946430399039821528332188786216934870762125031343711739041713978196638677130518371887596695086566701456088685609102286315040975288461042786782107450287771778754412007706866932317703765903342909883570291591843188522059794655734168743223509443540743284914705111321254290399778326802291633430555099109533961649975434673878442296040762100868048647609456455942470396661959299812002283214570839288004149950017219494241388926911125318774948115884371526708637567155873877863290526104272851541774267285380186492833344134633207255760678569100211361645045239772851899557529833346456152457582399870063384458134841322207976764616106172371134686271512414682581685401977616148786616182938271636219482028044744544161786703865150318672911985634416153228581376235070617118521677811067735473183010306775939351845534484409313190611350333558930132975344257099102055261103355738883245127440155230253295835899965715516812869033518455887273671122002728040197796101038004364146195334053699174760194725335684025313785201890790630045536438882184564937957281124376809073334179408927979540639718089944689315158947039560601713619773700109715766649965000420969067212588367970456108578467388557555626478982071166451515646005454290054969792058981310659360417483292418029542671661239199489109790714536313990064683276649300924150698341022746121907444625144641482668459836713170310068548916663732094245297314784482177932111997549257120509375574845993806308494549237434132265854211487650942161318756710817836635712221736164626006672480430784466957477898299392062646142236414844536673989178409724384910848064539340704782691677893549125177510005927171939253129542849992214549693363656925898944073301685195069465519793237693846945267218551275463454932961296598963971124353877401309280176460992217737882531288845182195410394332717511530538401960981435343871922073745964346913841834716208464783320259925743729256689352785098482491102899276673426931051278085487236868285223931884125771927284869984247916807875524351753887576230965174477989733620844423724638344029160293872668718895418617697945493052327101747111055172501769880879774429160074791441577747102162471213047156121960892875184555449423011529347230658762943499877958189342984604295468567919705314661456566601572078402843397511537914862354768007258097679466492739377777086565806970769651887104106739499670242370906676070026918333754159210097198357974633057633417905313826784226218820989444313921609411910278103480145109579935425803090338961203723085627472588095664532742058625642844295527100271915514255591807061068534363533944876509136470857823359897836190705513225608934682728374382588411931172183691547082857334562662518155077391042056740906349762999758469319318393011353527126892383236649025473019380917074647049380973257488616306628538518950054489326482605656220327101448076286313511426508787699593076637743781946523892646198310116880561149497544689954284489128287627724313626889374772034706956557681031848175440585610371933285945363912618678696499435420171972543327621490847077521194978574908569002652614194358957136787640531994663856412613111292440669455308360489560748215930027075462311854857252999621920220370466364182993779674352291973270029012377230134530570234438930033037769249980284832771336655380635449524550368177189010731361298628193736182695470366721331728127453370046605659190560403710594457923076542766408001916403366980826371630919434106795585568137245277438621246275460275934714899781941144508445061470265984648965102466867261058346648267386587957311646534934968167641199942794464900383565618943629840802791427733962088049486823497580377393930394720431415099932232411358717653131352172570718812260321572329080821604913187352255466182007127523258598699403105655949718446291675507215412104006902403370552304231204070807125771043508712453767194998183923884724969530669901909931329852774756649594977020182927311174012475207442762347656235195352834601779151355549235778577423066887477166107841186296673668472310768167400343963015213286662666429540380088203902083111482367651342879403126987045222855324447248662356645122757377544526693119052103063002162242651317786088469535684735152917503539667655004270762052351372758268612870645453187890558233005186292268431432130451634834665255081934927904014235934883812278159298861876672493091259589472552689462351617733780864272105551161193297225709218715461135935126809112405449143093446003000856036176013988532413057189273342412743936591953470886297971602392392282180995726732337748456772133861882156966431787183337107899506289979641330577000439723991929865436848693584722214663001379908623423713941359767594751967158450745537600137049570146199277633219533870370734600295651611432274538018329015116403047056413282687944225371240633133667404007472183789553880696644611749333707974038257206186982049709417691186412740719516195402120825448827083373806363128361212098915127930662529815298884252911379738361459858827561570854091691599075441962005124166896011457789761474297377507170906950291583630100739505689689005705207457850183172178870399590198120946738111671836115218652617750361327975250451802272038407096171651376685585493175940878564256279404029902368873155094086453912691590150609322821932199307586364166583059707067578404436872134970664841214227828220273988162965740699402577927992246936340339466528965603817812346775100260193278039188499924649697791108968316606182795451734528073171418374843123455976253503430093914921901258584866222533901296435442619901735164848536885072151605328500030127559122689087838988365877636324717968282921201212379984816583589776210408715041156241297584863645728176383255509520539243384468102586874493546677122115735194741509976523642323936367674632522373658344765222145597948672830363846278591756802814035159458477042540545872471762818850623432134757507602859954585286654909369102266941342954259455329120841758291012489867943684997052171549272982023988145771655876987485329665124641477439339779077467291500394982762989097195104905359781407676628260712832659449364079317302765887142473012214896881989791699075050725096347190478803071305166470091127475822580711078586860548032859067305323401704373182152104032044756647189983644134377550686043770651479713490691103886747653652747598747915148040154219983535177054053628930909087846923839555828442831020262782687728848394058306994529658392113245011109791347090858027612575012640601502118801488981227862533759751798010726036802594192910960829736015022536549844263545308432504574778402436992173193104277140157161289281848456157058172240219523090517582271725142564000408900108377786708596188241645178097804452975384908469794139125025999599592768985702890512870710433388797018300245893771475925498728934544109032185979461885282269581070403044727342582307222193580859966310330321102738749136109087040344944083607057366123597440145897460066601131379585725014648542848817636317362690439974665333759653013159256132763204886626710897957979436171956769535308888908327225693073847547050461946546007699187870454734542775042803229982396968435402929498592403314325586038456333907431522178604045406848787486612757460453821644764363009244709313830175763157268501728007224893482099677933513492046500635419352029404890541242302193892030490529534342805188074485412656495828875837823888356285940209371170955872024506814991122706833602562473703997570711448219858816189132238419987997032759128582239934704150656349973596994787141850107122795790012327105401353651399772338536801852308866401723943176050704531557867995601942865622195787276593920655316851035581202066988914291844046613187401005011485756107168626283492608124542963318764387916866176722469010286939898485743209670430692867361688519445880609465476625684034896897884272378966694626645177928765991511868314519455861628777723852889897534863028359977502394394585259356967334747577468413692330721041842697559137206341104454989984006463524267082110921413379214810304685909883967289650336489377403323061690149858155991238306935926470114433640430110320191051611217269944453207337732424093157012678554753955466017187604217820182166310293884873380212003598313901920149529296529356815255662913506527103199756039237034349418548063956703488251588862435958864802992258018372261064702187697658252600299083988527975149825311924868601371490148700210402429191411767412299850878974116174182430195624001286436902767073726925698476973876470054057993195200475844525025081347264250919181778084188204549803654421846932834483622641703799422065247641763280762483450017312982996004194271495821447436548245091562792199635635547865454738179706440664215547218514212387948571619040349542646414833600104302122454042209273375879286985330543512425624124847614599982901037614761177670819397409143041356942565043529916340327848363123101929566590699046732621031560518926628333896572676372169544233686164438586064226694390647003847763117816271939368102862600504767005125024848074054655447995717844068123110605007393388640552522339179225130610449499583624582957851681170028750264157074908579650213209485767287671126339971450480389425184174033548939958835517267357646906343576210117748586812843043727094642245618899885357047652073354405386338781510687392307511943671781452829828442982357276351304730413188453107464044458981573457615359600718099863861420780259785667948478403796572989970219726199684446914973555269079705134625581597726152216355208940305040054179565669316381876730475377986166410234119884540671780060877847227031893569350755122814328010355138923104694744548874981697153447478561566889494667962398208453444302165090432618427092725134125557064415769794878221558863616854268256834609311332068848729723935059495961018031734848366117211926127729798667953205756500018801914156965895145930513885017083244077389280598825822460638151935440242943413008269150104264373235061469135620212363021256885965653018209163872957433251072673583170227906665843801508530434673543620387233151846406488317862093142497083935828559324188893682398817866037070881263127973499040678422711418699710268013605086210967619434953465168317618523925723664312512929377842757092736934791007252570196406129955628182020901014459912680987016858455900791454405401882082565978931999688430852213562097328911720542799637569683816773275721721992980747112692271922077086879475754640563167374909285110653553934808173521774480646583898052022147267748383320094945730075397055403286558629940423540935245360713986883614775342321648243958242316041676142736260865425524117117240873067898550272571246568674241201020255395540255626053628488169818993989060433834103665030708483210287067170516385988629296113202396083231076714954414995761634762087745392841426393957649861964944267106093012199193646853544285282466531744147924712681133673815071324977143303048431554583894808188869544363740437091942753782095418740877586669403269851930094864678020354034781376031403946047074736020321370769218401448433630645341888861086954692926482566591304299032738763256382986003390905140552606275870122784709569987437731733613686696399278115684644353913641686629829596920187068991591438596618855467635210061003907777506272877665342987250026968216468724194967878942600233222474348549962087279109389420905493194475110952471575052749104918522282677240278185875551917224176377997559397335788991570638043970050897481904375072029729300708233080488372486805583167020079873310743867349607417548516981367068257706561872900858872229717577548787178330210041396487106333279144640411223666844077532319651008749865992558300964172880742394699530115729047204103834050226428380228882473270328578381716036107221824362752437091578234157405455134659739492338436606755200655391162527381410354771500670955051770854408066164701685791684740950671718752458973153144578439553433509677240702730247994658257145873959572849998294072052120074226526434490048931347497336379752836662780766481697399638423826102356133557974128847460093906700628110717654392307212041295459960958460228149998256735861155894809096933405644587541912138401107021986089523912897012418678567394827530894877155137879487085985063650889459690224546079079225066096467462614444170954274271677554104771371223445142356067050448676803334482407706624196083235447355912852415328710934346596188824830797639831181672556899005561795505633405681098156204591191905171623978191466374127988926182266395711366100784951899597418014362043926078396066849871637658440378121826084178034377132730844453168578030722541297182200032538046395627904379655046041059612222557831968809612844033552004974014202085354164252903118258596686425807392428692584715725441608383372027290989166137620327537681425305642167374517952548073940124282739651296122129082431083850547651480202936849685860449689773119433295164521053634467113654473746624145956594620530829544929907460329457164153059715396465456302089545230311647194877844891769558419989391329265227274992322864434436823584922395140950669749653293195873349290860077895020184214487980376428055804361218479943717693836657314472380451706080552611249573279675473367993262004677899168144353108144757460087398782851121412802756707072488429816882231482341420447314849658242859144251663826247983234627046631397254430761262714839884432831853407239667588738364116611851440561830965156228639411504292869428582997359154868271656443708477180549686719795589407222628371466819457707748258109300895684514975697522324142526007920654930333949880418080511988029521707435104674033506289570373094367684563384963002002443577708245092859740188539743700502533165956112106491524674580778203239863976930528416231078213940943051185663811811120384244765797278121172913124480301011572270386265332447644217286137958185938803724946559065102810737758768063854547848350637416155861251321260805833048865874557513831961792903021176517317971959746375951323513952680988797701307011669967580270515356594019406075027274451178246965164831086620305238111821367161512899198737930639363940860563422342133575987688027407526283409593780375773075850430215709432589679058680032519133135239048895397131237132989189293798657686268984350846463692938262286367524252848110863425463012663346106590950426048115707581984285460202430041146514474700813694063279678128021163272628082881417253818335703601146483809440999357694191765105688995773860837535971928324304203979245364382392760352208412268721022285787137954660141731210375793808333153476950828043925251157559849395786559636658017527742608265218844329977958726579938875254778462209696641141466371552289038177535773351026496280074558716178102445322914843977179164425235780569589559338191560978849625731546077452708344848518446117997524878841933939679414208098264278378782858669231341900781102254165134438536779076379410905596623694973520815422598409825307960668146875837814264202530433036044928380578538185934442889492969720651806969361144197713126523494722811212636128558129413909679922384806280772538429057426632915025714828648618183768955003717485683204026231987142681434217596083044757907724052657787786133425632609524764605463868424586702326540204946703401839346696245402976341334586696910584707716152225466507036746279033482596095419081419181261824697694132177707805044736199446634717746588094373123632101881719066849200966163908248859113059220074187621550478592618680551693630713769793444290608291941155380269240292081277523633499297368594025083484100486462978267465213165111007702015194352044735242876711862681741246390707273552569752512073970333109555136278213837342970992155479037072473045185789003331410222886238601849152301313031416476604647921845478807407484727855622911695137595665040644796251265849958940430271551147908632154110991893492920478530744257902196641835852291277809834558825024097872034873794736807028878392534264470314055354440236649771088734543676473356340486907003688850089861674240757237517300822672874679544206840926282242879309031669648650089285200153246374038568890790625706451365272732855936922913549616357726529185482448968636566315430255567603257905505345602179817175959057407652765181098790710628126228416301884980881859090162212650026562359247793376606835090948697097226437889435703568850371058956243882325998947848959979383042141373316094790588420579919972042325801426382769583112191575635197723902535496202518491763534346154267181653860349908554032163891219507769275976930285546739585966674428831280489508632480565919791583464305973909582708315555062074904870228340164537168668874572329803367942190589877670549127240526312459432521546371533954877576038300963650695147329515813562308269987525794062157756847104545135889408425434276169657898599801920994722510621683441573413712735145656215972092375195339922957930464049351623325648730930764684966055576390374612768846091626012043110685847711704610855316473674024948592546412567575296995419245372252764298785529986676089877333023856925276268132310548197868608204538931383682754333554190917201210077647949522359203850709680741965956690328905286556515996446963113195191507854243814037551090445736121171447585920491313081009177387937744205518654354528856438850676566078658156072363030274514614649390021350727482506642138971203658097409463064832749466265384265742392056848281930470684080424517825952371805663555643038861358038349220701921106086900849609455454040059062063070791180885726541622071408288447859661102825580997242896866236973091177283562760018167780711849820900050961040210216394536668934546543518345789939795250610766558873976477255110125775693074538640833461262708510968346371586059345665733970614110204867521407963392829061710890435789601244938709906609399336685972114972969739404104078313216666195356503383478164931396122559118360620965724068014279330401350319425188371327029816603527195407542374493818989409223328798790165028613575001534451703531002253428285987422426548220371457587897679785859101432610283149113709228811122261871966688277414673627811323133651159807151066435435677525071668165496035560799828765757271657527272422106004980311012813959802558468878362460236678435224032890387937488701761699297206340326554905303141251792943044232632738982541668001847188819793374597624649383627609757328721523844895185705063730495949213152144109066162902671688872130752832939048142980370949411740676201520123001803492994862812003788236800950074380314929484555246247018329231682537576634116776683543202810738968506401006125623806278128476857436371891056989913467338804285874284871772395887535640116985501411370972959616931393821884065879887454862057651440611685349230968264130414279779294205613694041245681438900202624164295604175360284705039310810411477295557780344632417717687199368304593084680686211660965197817047209958574175898269770795547258777565561836049749271067887079678651225836035035084117085702813658511105699255757184580810248253847073244300571955264489937291464156931726715677707085022136232031260712337487197272529098972325609769775546430065281574738501538150764793765079880427433867916719135354734626119944624523061206108996310326703469310123413934605564459718920276087002669841782158895233128069265360717210484268552669160542798192284308231562500004572245042170209686134393947926160502297010762568230704303007287646135739885342696971816349391775736463211018901888210259474543844015710363640901582909530935088519134529209074841021158690479723519260195358165522476430092621214578053018235513780293361705126549303966173092330690271491031440599169769537956814360572937995404311242898199235357586430644671337294072785250609193245684550540956437128331842263660108634055822502282066265648939382076207555288107291256403413778886705482694138731929348663849164718328153713541425510029999744428439314996329637074749147661386334643861937526191356298648905311659114246563067946642392945947189442505931459337597726189132909784536680063310344180609958906765017392062740965334722620023291930166131080882057422877072735484712158272200240784524318406865295433948121008957805357046951548384874243600856271003135151786057987031922149586223798451164971233083419467830058751279596690211477356370838286023176282722004979806636860017478791058225831807372632273352433883365197843512186621206266590246741366706765518160895318076494700693497228180285214744703629049918622199917015728504523030678357068646965036792334433320269800594177601110285290959890633721329902277352180787892056078576932724112470017425185527045486968820637942173819481466049266279953167236122960350659139157766214042084626423809882657107541651564262624782252374133311765662265857399738669141698166670220451347207774283226761094567942499248370196584754719363854464654282997103403645185623448361786900271710965682411664062434599163179591004089269736103522989111191557076230207346064185290038763880710131097111157564396079089634716374744175941933997254135399734374104843084738140246289377861869177702506493428304178283119687369315511200062157832937272629431593500674796991023775960115223891681881544883563688701163615626474823041567152319292691505419061834656942563549714151581791857317760457212372873518848681370774352616742649846864523235790857766288569158692864581910680614305353940133552994322788564134371826544825093538053814467454056591210546313113770690648989780140714970818329916263574099621229796214922586523426376393160268939334007729520346829236698322907961236904401978562695551252754885148062884632571084647701343469767018830046878733633027284125050421631600334085666366020743715604782686907966820866206395897029452008717423947370806997605159470817166212482364031781302699514347211311676767596558584062080832838183045415517114826533303112241652704084317689921118423615751209295525704366270973520560084004405551669203497542629193625232586225997493737689503387616306889383837476400621271421327084762952914193616370519102484548454902660668888280267436046443758525556654635690864540830393440778545196831534013284488544382772145085654624305946756724769957431624081479406056320118831898724965477528462512630625966026441004195271019275014826394904196032597427182762720354922964628370962931699103952798463316709583369005185473641596251041799122605545652520776172619677946995456813873718620302193688880642901833413314915147924331113720992664432987663812005976766686246642932582109667080871926765905434619296470082417911944011879951442840647594349406346625292855567725855252177633950471902555152159792723151938323779832870627037181914472009881688272291371143633851630984815299067982110706979238983836564784010940835008419374637279034083679902175882171552014670555240438237413317107663469399445435796055801432333563805736973853520650837478263778356085431302131967688877645507089375492339635319017700265750083122101453549942081144021819714803659964215266449382243245551495886940328701157977346888196631026928856511489492720981983842562404895500752487223859795998610721827380972197171140247386267003357466938656877153397323800472578748289748723078565810457336251893339163662407641936077226075997147564511644471373817144433180423743098926984801101078423759197625099752981508121294077918885322149333932608498454170540355760193083006029469019742667381791693439708435251616356188698041230269250349399648535181763956516282194494298484534875726145250865222606209889993602268988590056778502545068097323379024089937716032756073766674382411860132495163434252437044886341613684878325301996691126175009009013655779304406890886540586022101243794768498327961333648246612567038109829985393732483220785970237917819060704029607763650090930201838093337597161123636001813305261739913277922823559683937730348339423355717643623963801277334263503710571095974542223276938877633002925971631979018447814156764705997321832900827062007890592106835672221044238781130687854336018291525978369448857975278663488380923240905698235583276266999844628146974603006690432057268109291942957623890047802774214819003184070473524432075844500900963551246935653868879956008283126993648693598212786456409272960713941865086818237023216125165365136073826303351485747274022033568567274703465429085480042659771704109925036122013362156987653575506679846380140231285774710118415854648123342846844556577035570745322058900804036146159528056495684702309321987822943908820725557512617503128496573113273445450767961445621272672493193111821708438740982897576705206919206044483187941108516295740921924996943146400720638538456913899950028245056326726629436478347419321306149769379801164038893938724472697463688344080689802704962472003706240147264742967790636995505874430130394960059248734504004793518173069932426089426030101694445683487160830043689004027213616354453908624720855884847938613565560981287269181760127951944537059651381281134401871536955210701555882471185739125093439899474611037486635073293239691590871868774019473912075961041427043788622727895081636127157213975037104176739511033074383584387831652604470268924442084963633253661803946163116177949752949630696741567230447732687140577305456798833375308359692565122687662415094377973976124441742946904413136385451432804964879151914878553390299844287917768790905565827412280211932630851429840230999120969456217240648623477417107350840615662159830968919873625330446297397237243050150451807213763161310639050596483568708360464151830347957861270536879124219944370308922700218831492985182664332737144997509903037249146061214043835485594009564136308843202126545210709023969593799414201164961757226725896291516080266686489005843820442534358235203518099796766294177597466723302295664589334347365524407967247828402350734082611142449277501100205036301315174842540710428046950746993302061237339700874084324183636203968134890207523208500402047629583730951437556308081247497351282780615480240213406405311149621649792513428783713930293331727545995254162861417141773336451160130570926356963828939245999338397550384156796259343301204064273650728829365447963192673484859428795729128355552032729825418092947870443725462390226190287739288531664884995008160987280721940680938482096499372082880725559336756663288195019607078934428218419220836562930941176086799866446288724745796466710730098545850643887884746618351396465342426719864552095345775612876680272855183296005371809913382312225308596704500224207193844412573047767102995828799411990947509062629945672090521050845970401840499664856231793882021181433284347046168219582464091018724596850687394413620000980959190157801569732904242514842920538329085182061933126989073594199672334077533745632133241187124193562146028050243747628194727808951797174030229507349330539832296897630833844483651603150005498285360780450767885218175133977382542635654753303334213321944404055791962018025584188494137862097625259944543005033710400521454826367332187525584666744040834117179507495355825606286211902487031823668774484361820800100999619680380161850683163055670935191097646769744994489789920982874777441108947260725050890076849727234209409169624805939670275315500063984767984305831735938221756912712007301389538838654792043286379362100345688970329432767885826957965324793530488604979824435524180991930471667917467217770002666902699601189750264175358943467332631361212394309515002557044166743119953389647062117978140578212473028511580235692270086408300000037662510335115882020125421788538044816846692076430126621265904487576034174315416913173489226559100657745909440671171230376031738646980568950809781409792215206173828812756934151749517908472959407252745835581406176634743946016630770762971529385795081205395227900099628135634278126915191843826256098120539942341113514899880234791820713126534956831880608344195698951914249684768279167302459624913445640652858079684051314037464922994117694487553107386033744447271883599079246853917656283932317679442051163972062954140851922632875881651907108169671451795887578041150683939491569629772053307049549966856069925336420170474399224394898825089097385968428208397780636603065493447625882610299180776299320939678244560422887693267760722507264610725123760366179794764762817508535067785174452235409239731965289721547167668934039646974035407145683913682786813096245145739801798150353296165253448109779685224575820613541171812515333917364379128144054421000193942603147502093025912909821321473972001822613207670846406480412507656336984059815939763756543952317076226299574782052597915739435092596437752574969233634872263035188596130845117271687566547462608994312029351524345397887748183907532055353691079542122533794290265279034614505290972268694768837468338372347709439612012761331974641811443447116470842059042558603890172954512007258464383978714732533662914947567834083100605160294602798118897758566360942685900523973791607895247772421544029115844004361616598084513683007387351121312511517538660640321619010851051356818844704418208101271428439301258805974154076093922881319343854455750249758184752129121020847239517338508927055387274203702077999995720523802267191213602593263192861082685676992547612939350109970521842696532886515808960018781720791144392726362286310702813093912066711220986492315454643037622876964567023010774210747322121544278659635242142939867602706672694942018125236680262335124605193866868439078244005566802597406990181116721879495921224903237175526137703162496688159272434549922846597559801263030248103248850153092158511033475094078876679358870608017361319988827299274582379460432299096228004665446519105652288560132250289476145777589423346607526425596823718960473028620190014759410594434646288847948054130812294033300165831549209418711756270967541843031114912262275446422092170921808592959754005450762787096670511039448581268656925667386281843759191605898133609043387290144916947155064368791922013985907231089114395737593271132076335963381033593113482726720926201667616563538792688315083451628343655740523997040247428622388436418534399863032925322920818259779461567997698094948463921090797967764796464723609073614667402752928498039754685778283889818755580037034924198673065369078425134655195773066050936220478582323683479443505125713967633356516618300146992196698467663511578041149006566407643907815849301119687935099634352200729505279839147612388792207497815715474596287558511404789445728355439248504397022266326676877856640171405979640077233819637759835438284664188715279811692548359690679969809861354396291135164682843357041365822758034332064629182714929138951603367785870450379109607319558510511892572507603689746519005958341118097493871137627909186081503846096378982611517692223370206772547051665910238901788101170022280590817354453957633345511126969238657549605225299567176801873347719493620076057783043685610924730770830162687195874627726922595218561210970107158028602103216748802646559326267954932608572845022154421351556282585141622537019986204984523581767540139974356124781024309048475592493074848455370054638714577682045654538828867897261344180885663630611645390827803311926001089920016962227870276064667539191239280751872880123071112034824669473572044302123227560660257776796055525516143329638964335241465283660344743581349309523745474891566502201905657885513123953078622914089513864469677626203128547109184418884686047226010715325115725469879657483607523305184246381854234155581130880559198984835719920581210047002302989251022037855098435292423465425900133334823855258439947190463951726043045144340930738673875420820305694566132394680991600250075745705595057454297431695335763931468803934030696608438653605314303356207591204311801004395778862578110385875264312340821046747391807564646591117514362259758824110498040688998864014753525965344192240644773443686633882658408375899488933888518593373693286324187209401581923875542146546393432934748071542060128233712621645957467605649007893393755189417779919447141616666971298429392993624799841856194270484471501281915232618701893968691658860541350931242047538155343802576374202734240058468063377291984146850526801859744843733368343614323896982453740283416566447773762742951147657402301516546548177876007439454532923295254230507262150510414211681950955246338185485814431089461655222546616692519277908160390133141657212009521701917394097849329512512462979760768881438419861716761693757404642618288623487065771936205732975721317899238631518563099603160888340405313063362730354072852736662607094807062972123303735714479592661302392310294327544684847838691479504764467755300394525427453587384187603473469506069955924755191926453430432523805995378952069174194166609430144835116960630681017520464496254455519038026257559653627712233626144065399922825993009374501185307321016802355450571916566452694164069737693864162553936270752776894933102699561083958806943173689717120380432591966892427839470314472127759717141462871671719238884125363751536733607477185681497589794749254285802228495704890674372116936781684653680803370761522472066413358327960006856408462864371370036714101705989983348253642388173120044754616738554755655687731016047625805769461043402147816801496638363385594719774256591673630293565347931723058612091416828481223090487274104495550241059990543008710950291796103130636535599935451793584704361130679177412217072013797115040206417957391937754214721289076041582856136182834865411176874643117060220665648331113655287559539072279805015266408494678144793969222966160342465926108867476267000188092421563764925762406294886111659400707938948833010318173036627709360106294121460306633168349876101762162410641521542967037940587212046285541446546975930917281273029206642058388968812475566621200951453509794445474075872300892818568992718854036367039751307784485571641126328669798898352055969927384022401065254775315321749647645256670329217752694198380269334435179746361525422092504688144243960854465452405847002686876228484200254267903484411743912961325229022308491595496396710245346012935300449077925041335578107961590253075368869735883982077050614714036495684085466620618493053866412764761472306451660919800148649709188003696131581274127103922622190291563055733589525852164249343718128508697820179355445231795411646560975046140598746643252521299465045440448004973860298341676047595306986150412029822969379540234145157552800374416853441708697234788309852752446636024297444268949832591334004541567783356544194710842774350799696568991792636946713203230113363295577075096350406157208873687044079798069850301446362180015808591863376365413788801379804735111534250682042645355242407755351389013638821790656229247888660073384275126139820308096829553414375160701016713065510804681103373576374207281298817991619653430034221303608502910377123804011204543708129225732232378100156851061045453766533385331742029026427586393418997458795708120297505031351422299720753059504649817175535861319205285491770477661690676336351448907373686731683684399375154585058888629139779066821626558608761218213080944914480162567620990074165876244458980664837486784133996792834808606829122969666919685802054997123677956672325263865414027825015891852638655557673173020724405211577789227576098864808156421251678579282693753324505720918697948406190756149933312836092912994969841897682197043695665720559569861556489335622238977416842064148517036682584822391467035881284811110657090275975877275903770968803341367622198149902477697659886481335497698138581912343793851461331570492329225943158958321798746822923924045390292725240429912479597718426974199171097882236382990996484279538509216470624259829930437652299469341460922693287215201392025182494763377229866403750435966937207069052078346030701646726429152276162922085010361587181592995609103608461205772382324161985713837811698364774313212203218668751068267994349130999888539289216775863942264445938180755355769779945653995678765459472598646737285357927114353418915772434921649821182788330713297748959805199853713130758786249011701561647465152320506193952788034889323511724306885426111719185371301637801977333155358231215881024263163648147309590448152937999113964873290570349313512753525501946722695365742355883432340230803957487561210008123212767211628577351151104703047157287370653525444325607820232061363194503326278759940115348482864146786165221700020657968063959718115598048797036303660707865866081963978588207623713019807416124127771523253483220917556726294309607045107632375682268710740254376647618729191447115657355996683697977433998202620086091876159555601047678075336476438223132536328435672446203106706776768375663917966331620012524766072664262322629825718513015804894034843689977279532533127569541080026929543781753035946378047355832369049858111024759398192850339651190738870184683621814614556793483953531157776963172041252053317383002153444049236620695099852647595408623114933111461625685777955097532792920982514987781756842704840407894904354702660999217240221911528750990954740398800104850551494626655050552062118957446369894271205684180244522657560384334939250671005383475231101846989452607326114420114447943118020607378497890514175908007016298525052267716024674209820998975215957549017505835479009583572191309650841424183577922924797384953200549689782386157333202410628542713695825608031721198189630911331494229836373969720730622747880443775055284688926849156504611140816775736164365190248615266128175866795206431511579536874363377710129703257885645877685549692414762250338283582806201184084146621800840084998435223184393498989186562178704305710615425723988419241390770760218005548105483203906773871664903525027026671664059988410352388148613597822143505997523218984939009148139388409147000405195467053072427519882709792106151969862116965227414102320304121751483826354255327862656199312669921211353684640246051992506706937966473637776118982856192521518779862392267997244954260622120817984968522679815186799505376039171689680129611897681198690404769972915569504421527748507193080453689971694516564225056591062550947958186749618360632299270415218375868896958360676579947311999000661225486361874211072893791458837653186636300976345314709967044488697786056497181317317491805475783584777017238015748317155413060640115221356258033015966493556529775737860273391157686502103780746990634982307451865975182902863840439196481125156957675776590757776178840597465809923578510008894784426410577459546699583191280273756873636816610182424736095822853131154741960980172972402320554087569301809654131749522566566963211245226673934750460063611060489864404156478694158166126110776855288965542856016465164468492298496518303144997041364522011859591533961614691468784752595509319941241151223033881333964700515038574635928235935028826057580894566856334987704603958745028481316881208001602789796231641019029317101806458599861003881556255115870232652958339402347961615734507551407841996575773063368181148604219974717587487458065006766033454397720120754109430772178834059226316112045920705980172868085117562924346476942091091314337093767475870297607444875309274433613810045748474521162975263113056639735103224978768840377448240036344598445526385435024539927153116522903872421997206779670461969907612619429973732126597718586795458666359226575858517748218427124819019437900646681298701231812163813740765924309304781087633686361526492284008914757444984488189762895936613628583741340010798100560558144326337028282191360392778371600232714617313749643358795780955759773749648278743381327051234722573807782437982504776298393528382265762922712779658562158439078091911453358679868779204581597397002055888463820348359479835386754698361091988619182346263359679009999168537031924014993231648856877430574171427679309330548319143647905443887843499234412994791875668087265630375517012755906796012197262201668895009164028110222206525100143645798103323315354254640688879519267770261760440205316322382236140866949568025740608937900863486890499891459886562606154155922180441347572340691017347541318216063016867755735926222247963946950951260172301369927051970259962864986810319323831402499741590107988624458272259859538212861928038099580399654984608638094962859813059078591099203970609758044489800311480630020011103600252714635183749112288310783500122982163155437901883101220156370356634448616254488274655311008259738269065569590885831545449834965326377689477184619572848695240487414883842584423424432354684678446863903423773944269591697135214568372045316620608188310829528202391299896873736726651445363301388832931909636343894497412188660906661707115637160559246536780438507484520035061151119734775446610789230155759777636291696491014197867757654355965894857264524489793808707677522408049870469052017351374878429107176770633922234919788100889262820080769559838719114749584526494859720799481326507250293635004582889132742320991168982603024990001171744946170674420895380327680553545708494806009271721258010431461227645047846595436245552393680958538470519902730123160006966980894841124188263701022498931299331925298064849938823867981985522603594579111798985496633447784314224529356077783149289532824073714050588275606910882727717251525065864823543498889282848529018559230458016134937088291628159192338159163133261226576698605409087094403725650737272848105822962693830278529443964897534531013406831128598887720086579156152638423387545925294913991156593233248654226926678604074977470301032157481703468185521138891732674452703860773323744395225597495638314652414522901750586185900021646461376755084720963999458299987094913796682226336926865973758828880063411569560185997654754622606954726085079919269099826136536794425022274469269832846841714322045104625581177048378653749679353673752253914466046156279326687303161535064848162117915209617261715849408123405086451167474324271942691792800439524823814743454136127067188923286050679691386638297938195325572811628814048263867925953378948909286490532601351335238543142419226211074231455878045503274147414014279087738138506451492065428646477178686119018732283318395660023068699579654289199640867681673420708807465181789920943788910319785588968091024986952800405906236521189258717980711890311148922585110649071935276977883834637021272171825304518418448894722332379871140402285556593978236292087144399458559891001977698286525139236885981944493755884633425872156973326578752765823805884447649512818277773811202182250267859869684889563361958323767533912339905892725774294045422424679311870709337122416890504173878554761219022169438076061251843631880295074197827147553237576175089057647665925655209928627460252278203253243713554009694477704525579914765095191918645552415309724745470556961145468998746590024643792413539465154074413837666441782463394846403650521699106998130340650706745853807403401636469431731769806605747989558375862392874765724727689876563672902327577959789654122503816111213798009678963598926176429925523696468656631517807942967090702207903010044886095418404852424621171916693495983307642417514658804320741362596016078609287128624220261960894044400190776580457054764856124318577562482550820590089151462251308518689617971268499243137844061350687888137236828307068231450275679755136567814476905706914760296675618732639927933821792955872373031225330914858854709075469307834769288062961728669555858934808420203220994595495686916643168274602895615533697899962354240783529962882084257979108978968994561483200902446944998544010461833338230915784859434165506543638763001171830193987049298160041661673839457912326170769980166288931763056470654704011302673604016784335385086223960510709118168195466278311369119212644012240443403260084943516707530278264507666589525450158605689974524797184295342822483301971210428841204783512744796440155538951874236850838496610662418223861079012635706216970410927441489412067143814067812237998158256263503749085408188211077048362962517491915179877452353016560025442068485104120426256023160065953899271812344426915097478038002411761929402574126813961308154761442317321596163620078503653532139416828768183506097066803896171521660323161815160857502956226091733745485024947770166589858962397932478821155326543448064920247153513509588266496685296417981218985499789268203828776895086093551686298406391048542611701898820065235860177855074775030727062269594413755488723370777729969764273834889637270519235833555001713145208986208861986392788728386171712245207066668683611876544351306643566615107925483027716862903119504543664181080493419405219175448630253801096505078205982436485815183849947812075123666463943026656567692748897112085102934670294309379517246618124797406591149320630313441262630244868486494053912028411843669892960100135781969239728540893450542996812460733284436573853114034621064711729510816805490107118450538452751961324834540304880356637033778347434733572141941082547004547938138330870281691727104226833400186909689733109652903726431772638565275996352092053846605149140831198655612018435488939943224036991570232736961167041507245443864272600111885404366386412795726503902583191461875039065856492851988714730005227940012049949332075246082281703193532564205346988695774477426298804222638244411859643877974183312994966005765454916337494116959380623774410596680979981453109912860637313158347463449912564200553024859597308253358244781981384149984885148358327615902486648690134650418442634188623667162832336259683015038987113166494992487170997104229794685905085246560894977884071004415331657784248468473424898944275503686121490482672204390214916599211511767403284308237152358884224119550108333285000072015432789891734083368653789614903439894683433504932585400250529369953078584832582935251848049670273368610739240913374100873057828245813218278333618380066785565610222692674676340233893825004876120798999384413367114694408722793387176711515918998171218504381769659881427087881734258681042314599381687999861773803752778415428933954699266776194210759170022566391441813490769502791915885066683187430985722344210432576830187726031822701764319330905576437981509845585794922371477515364791356304972191186104514955437267021119628162595022078962776959311670484383136779696765194505768941226661097327376329455651133863478396240993612136662226425450545029820055323020358747439136164863736724987544740921527878401199207193211901741086960810419105025372550418958038952309961874438714502629853355511762683597448528887995875780686499688134254844615117539832365683282290598419583636419368621089446702068661360547989964323337015434525515582150419285244158055925323299933750836175454258677095856357841286592368806909367741917055320719965193337147854672253607342949996284046285464186232297396683144651026305603500007242465953277485892743638581789524669322120270394860256534257002864429465041371366425423772284100021361546814408188118559168464415947223310810834112515111654671839858039489907387039143695090300623964831973587735817715948725655376764776957035848215171805139328412421963481007767681970952616797491743430552558337824621913129655164011611970845148256263531778963105018057203919511440105787133868829220860040250296083271214960418062500963439983824518298700586581772803479521171980682495730954814137474689165534222137246320428387451188774354583909993934264185527426506730913953175254887190285676071276685868771938762275219875589267634319524493214964299679290561416672001315556681214993642965670456186439990062665673807168164320236470817515955397021797980512665414844503305695208769805564933188072146978555494530639160511826250023289704781564840060827452735499737398455759116080816874270453548189075831258371740922654000981050965469685647948394091594369144304163082456543935361035161000628929998884932318570114573648174585687474063697812778441718197292871991767920714785205838986082167666385968511680173965015491999425584734652752163579370454175179197378044717619112538730012302823085701163939773972816278699453921971257814312427033486272023771242487598936051869137755447834147647658318461170623212272724976006769158731144233792992699288402865721053090991104668282725969524970026135335175539599868031396854149876076129246593446820736460343866102198371452164051082363378176210374930484746789774883853739634939416866103141728121583039051112868090017622882592965577621972304223819253446143203799249935537203278208431564551224806559806324276465902968975461024784909278079451120939865104094097095350786762285358024506835004680884422378808337162097563297723751364631052187482921238549589908019914786923158080431549790453924744373263714280355588043424877221125901028502221151461908308376723012636334890598528013470462435353894281976139930486944523997728780049875634872747278079599076226346344738717126475825723526954468476038498706018551254928229775579018574411199291575036328057457449615692997787657907494076535681292512607809646244298063086021488476679588582671403196125884538279355681994865658638662929331887583463172937426188851925637409528017970869430953183688289281993577868779009523119801905465596535360236809420927652104339051100455511318946574600684253645592223788019566377441254162114831408582607092448081967252749703505618948161640471997112911368259781254717824334973565728805115447769332926387643349989381889848129983657705131539120503883080298503429751579494530658997687501414739542790179685713545303079608083732869480406999778768565162345366099035405234569037805863309820129332318779818527538296842147758770036086679933368226572952314252236005481149540634674481547617209574648905164977396102746875914205465622167052020243578659622826952330100740736419869583128659366104818705832555889083598586149128222608558538688193107775232635568427439507187245369381849313982617411443970471626634688306677353102769106896628250609583233500493536361256405694775194150165811995844932366334436387754163693146344677099277100286749108648500574826207151716537918551670277808717515012927227567393964083391349985371978331368254573017073152443853886838274443637410625902799611790661073488085828150231047181457144363385054747135394098678748024462110850772889077244826743433476053872728616173960772726415112608875804927539400842870076882073058078914354025473946585348364043708487687922892379516090118271639967099884169209284195641009414393707820097273078015839021102999946323852710203053233627596689436869980958488544457473894489861810484799943126168405223433202434211476362426361633285775263840883475094602339619876891519342151549545867256830388313015040754957982382903729054320162559472646495615364633071956805527546256201743635724205657615052119722621462063927403345301264807681673939264367211695697125016426880140730036318209931817447424015247135595675858237766919238908817401078341549449449290407443269787602319154010061868012858384510405964036302504827642771046277353782888764955632820676714209784731246179423038560915419429457836383103332169107907036176702648977065597556859485093025103508196543200988007414385256169722999496291792991377366585566001644403032080238901928547307658804342403195675484601863642617389866192113045055171627499118482980391329862314400867519460749191297545224493606661528174470629927841347425462809265262611082038257745940991053011642440688975389031577819724816452148733511362138693908629206400198907940382342964651492559940309285672981831875919956908335545869503950067411140789217293058056439682891345097268482191066992367244043013483054949884382776271092784669538089080382857118500555670856627768214426848376712080408024414863143994934143385402384979049855478035697247822816347527541725348752399013919491634916493735370282567839421914312385842080994925129658783395105029736421737305934175185027068125571761354932208874476360909249007983076374284467795704474274525987605482022381203236731790378276062453313197069760301296887102755660681063617745216999078897458300280274844869923430758072254476030568391756353770208174680819573826902519343588056442351709121318468515482732912546879794296707668838539901794823286962677926487048009715305502624969454274461036074567719118368436954171843282197198923628323773073459782642061782459379052144820448251794830449347353896486294830971576005110525727643227003050953091368507303869237647971959313787640208451563492202420971864009327178025730267530453412522354989065826551127504051446637228109234716179422349460657257476443416885948395333863728634663707937214819815725784683240874060785437771666593202992105322641281735694278101865736617157838450153117723959723220108083177263176894545673257410262534819950848428785140000174475440816999119874527961019242467972360809146620937427216878750968009194611401291098991133764701935221465680407485049763105794251246764130142137506452660314945516207354017332472040958407558338281495272907530384010107512993371451626756598338556394254460794820638534976989596140755308623451899002527904966501659777602195339932665506476944999446926322247295325325207022478988299666037153664640824565676203838389294930531591971411004688875070767455254190425786041174990912169660323154937407893493385830772095292649410091101052659384094850187667300286017836205369911628727939178551340305345463067115245885473622120905650994346171387875132874661218940341917536168395070414059238804591157893635361632117255510067052246698799413474138760674286506748354806466308216089764068279143326059544771803919942646478865108524216519283442836122379739023780643693086436235109115190525095291104151092502369690541517421924266853845026681804288808432279133506645166341763113580068221225846152874028095833502219185534262266535614350573629575766643524122300719250915140907865282412124625829740104805468180540849808111373155827531920236419331140809350751966161498245119106805680978871691615796586518922540466571857120052429886004580267694901937921635333947171629432363231518204146177205912505221713354296249203420740257837200114515934475200795438922402674643162091612326509242917892401820764279930583498852635195079920395260524389511921671049324024707785775696204385903427012935590020364649068634759508844550523422062096612400577256777157274231636237775738090461817632799457675438294808580903998037191927506415047041321205121173097163642978395811850188949808888766538704939885223999093412848342771361832690581963794016383996449169190758423966607894692294565901080870973838722915321441218496841158537971052999514361282624146974733512063905764885447077256342346400351122833965152241195321815909246216362822456139172500616998512872674112218917023709556344232190699497546098600656999486025636560539951974405367195575329361181037988255217304666157942092244133847724212507523176797990517016313682777235336393174103584885813948651942516738579935423082622571277390514244813263222324764319335531546114662622859641821090494658647059108875704895064270702453638619314537206535799003146290439548299582806386840525910239533822171795540048700753093953056946942960826193997038199078757463467030083660916932354793819675287365918780383667893730710598043230627328785408945274221803993259150841578199868508910285947497795865860655607947538342759992464188220314064830104222806741543899088584436507046512692046740049513990674665018258117330305106068098330087426208231098727373959326238372727096298759666812733541784592058474608398694899928235898809010755942913696234263282811808401663031816528994943784962015165017400051190860662677748762976444237027584227720766325861028125026193605550369505458546306452835463695427298083134906574068012213659104070175985502351598847605600003182053541049086530143930700433484233068186382878172591216425693272933251635332822987114375325438384212490455475265877513179163488050928860622668559468542718964003826171550707001433800361038620162530854205636045607165353031987157055471734381689979697644762054956797601709450908567253420287156600320783813890313942387770884792251157194639904395154247042119140194921104511646298385993455912725946562408841362829020586132551279485706029172675721895715318369070180439794249697352984098071370465048831519122879417175110207949831250747922368450174201168303597106844921509179434686843067754596564942673286146557806141782624032732540015602826714444366504214722350229823478292778150355474151888943880692081713718493904550551607072902701912152328878118110165503723222830957610704408151825934746057955859404779293790814557483784970246071424810531991750481503456849151490667912085832233084234768784395713726354808380258050041933683001435992688229134837576172904710673004645588949456664261017956051329908590812228416010119447484182918453770023941343498202934653454612709631771094487702314559283085136643462965283716391846268288439851259740183376210506638650636905245067297719915567623856954713269053242758275343858132499490394071038289961764197303049629411387027711002914997248813875156263181412804910748168669446554589325218218885023759226496452307183132955440411981550934360593806039000642602394016599043206990556635086454801655340463625891380931702909940526612273752066332078421237133277094536665676224348473010950688158493619073455313766025295868836896262163398147309972208178281532259065095224108812533621241775903987804497118785156602379695457851940325762740294184350459510919931066067306799924034091108751822468322668174506650759587349877582848559941012328091045580530906910271259203915950915798399660016925939677376262814794906533109697567905221672026003855593705140985095683604175889215576619918483888360671447500949492528980540988577404347770596670428074003443642527697131660093237012003584779784693155758005422277624542490918579513567908280434452458127341781068273283609335776509005228436065024227038020276179170882410591229494371256521791024263354727621570628677801481850904734842682928414198329426615000830262770032714287200039300178101373449359114728714097923918030953543832073091097005917601708620360056172818626670913999729327822578791336871779263183477610012580288144201234874011402946500892560470449582954079466817982811897002572542550324211581810260695292517006280795902058187630597069621330227365996122534355572448873606111227272969555684621269022329063402058455237616567147853124933363618591132998519909024650684149114520745282250860613959782581874126431847579116943700053379325212379971230820593039736917111731303266250143200638710876035073739476417161821593069954045653584252250297172943331435565018142749770613464232021742779146980443885198345272706759536749288580602876596784929911724290378781191167431628169685887783394088287552351896752609550086469159938010107715616655220164845864011091679738245905859255593401504927375912309909022446212774739258196572294767658343888257129543760883437670761982667275245658260461454735614028258742617105414778265814793594703256554370653343655757925942328493715537906621864871448279232375946487134196583660350066561116752154539714163590307784651828120610087748989612321867380359889553458598766472449987147234959561393842117429929876683255339819722630843132804136560461017439515466566339903088560276582485970449634946022718786240803301371291963024785297385002499704223067829470309084098961568516900412730152507795792673682353807627168614589505724879403242302075883913191229007093088258969226875702724620329664170998352383421062709263734277992905353867459136042645378709082018628283830696017634343530726408740029186998352207563273259422689437689506671584006390187191532981905630539270909324129593860387931423695626837993670093841299145870049283454831325312551128260333387846196521219968386697893936191680720941679346374384825076591782957260664414387645743186137439253807514755231792636404452922112433064888340959597689320196271523306210247972966601426388332805709613277619085642687925414717196163814985271954976845042082286261980404110204448885347862483519328588570213386692200979497640985997003871671472125718510353075227209442117575085799811688188471028127657266565376044698622207401894296965420480515597181301133796352303062420765002619072332296344871620007331772292988180601877117396355108460752541685140547585933186054234073008744109372903113396888981886735472651061517760925054865019600655006485950035046152579876198014604297457840038019277041217610954734019287094255912678452984602729813741896249581744291173529723452307117496017073997516092219234833450892166959505059146009057962462881074218006203358568966278089580462368129928603731479969596985563090519457962695453327402793504449938824925621999690424603532141986436002895557977937719792582325366932126287010558868738725326828417185374384152693096978927136034612323065142571143027431455804995757578375483831999355427870234517209310272235366591527168169020488415384169587560602364898298182889288544654679289779457645902948383766393819900821677636656837177491527645986981038197278503256943820402754132133896572023529319945215115382787811081614044899181436625315218154866716923791535515434806461601410118535802190327672624966705373779905772961906122799894701920743182447315702015129717167321985609215810275212536204559340776738539464861568259634008341386347492657074935065599864528998066592554322593742932255376859272709332176763792206469236249673625259943980193600068237428305607646349377610898726593641527237935438719874116088760612776154098463516376011359306402393966056209516520022582557985185625817115034118486260122496485251500873609194896821931970630849872462840229859218673690026563016038438065611584032791323617393170886231790945499417122457948105360073491199765145731420772847372637171776341636660856457850625348730800931557067582237273075781743668488225693050233591800234178468196659014345685245242859521402756214709969242586574860019167262829224892554956039809815042332087469864984034589069425004705793811642801041429707339465941527399031430918510091496871409534096778013736152782640432284525726254082482817564413844014991440230962789778679154410839997695013994371587370779579898249256976730976932179198604801998319836739925935730716929726702106659340529613429296978741489115004387967372299021939691811322992601617042240000814887080514681894333144375634738963910272851458100539107471344370686429414170974257713292817674606197107866539955210791280987929254849072215450773510212868328923575426745782871593785769908427197764555861183416529962802305818608270736967496409346467450477642637428931399841824248794317905799983932643759218474012199116531778109891919980443680575251677183142965002682083813794368330264061542899973972040518698232758948679397807986456873983844545491338143298791923810301262240962408688771063090309936635857712747426900394108860840514212230264196755632224680072541644698746982426542882239450931620480034993202912463359878197329163303656949901754713030211210889298434504116020632941168040492106281846754349802908130561029950480066755480952841649794250942778230287623020246632047912664701477140151261220091653334415107234169194078560871173617735655721753330324791267378237420911725398584558016367469985165219788510472856638375982927548003731219001558830799751131642032880760407118586906744812588808996645742573318139425366382066450540013197770042334207443180238386505721973509101570899006069647620150520535463786461559379544383380795547357601851537240777928887237655414044800945916837213145597986977088342728914696477496837576229651289256718693866225029171325303069105118453686001520128676215942595572916480423153320310697650145557051456788324718458175133652784583688133409638675403966013486684736027577139187211658463414701064521229627711199321199761262629720294908759559206130200064555288123540951341007091375801907715885188066233879288450513266549284267223418334066684550646230010974273010944971321832528725880429718967581883834512982939874642064547672112365618761283594666934025161753897898730238349608663017850831297126168563270141045762484757259908022259923778157456310268534533828512316452111083221462154590590557307668053636965093453649936809330323216004688209104263752477117724110953004156927636868548557546875279381603380724776224754749420075120128503584392770850576112380389545738677590726788009102551361244260090338783708254781986826750916022860327682710549560168722126195895365800864554767415237765694996785734834814178075000259143274463972447036647886452330313112934819738743124094908290980083771307343871660276390318413403467086429067248033957217876737616701791356708530435207706251184380681878263024778975682990677435263269214379746111553631653655662699592617967882043251922079317296382193879220610573068363493586420273621859002118396509884934304017969331261710305413156517121464095343190723479257900530973535113934135260176453826404901823991067719656801718866165985132081279618607065900960080716313551192392866865012567928755112158644972425523673485391037425185133993570139184199032484984292530976074990536251140480215563904122236757920736206440576874190168962598804902613267738500890241137387589618932306236597836177954690920874956052932050897560761046194418285487207330487474179009376125181983990353560989619172025743919426284827500463273110279076886570766852300133553187123664102420679624443990090147286091835187429962548986379794370716942003616512623360450092587672498848962435471898805875873767121967468440719763632799440159052750316736248927672320764902946301085074240593786679061107194753792729270411617286555214342070367126419775103752964569376775262489532417411278742615278722246470582979972892541842632499944240723876397115432008029300160501313303690372372739948122347163089170584679156718835285092426571710855160393476738101418801243519336108501983386675336836304358017768018697871077284761903090107723498942956939393000966336074195605578388081997572220949134333802004862187723357488458467231086671525600138811491020788033772558355291623347272437384797111715255520087647377327756592482496503000654682194006124286975058077451772840434072979656858576026612233792275235303812903174408635951855573008527011839980218720971478768665053785945249612919536840669509591658205486682574104197736535931942173854084238968174330858765805779198316606184311045193910622932966737475044208019716133016937614149462464645395780273256309761578309283182230328943144218085310134879301910676323622534828177353945912636163206030715289836803690443017242487549615660867779214976762486200270540830256204346001772532798894504893975193305494969925773045394487551703285530783237067252793050248324223312736887283023321929597067547220120571680361181334586963038876093966093802441417049381457351116495665882156995936876181811232445565207160651048822904180764053133117082052746893678399304665654755721261000794183852871190993097200951902791604252032036068909637817084444529200096037988143794450219168169054450036004561429050656469519778635064670986954691115705211157132505646180565624138607430372508936541264094607680171524735406698807557587893141236179588271066808345692406139401204061936036590780017047752833434080643600001110087553957767748156286049523457474190535916618018316403118452290177949738910838984204155558112741842606039785246769431355177067138562911961850984712449999775827765095598528169077237547747842028314299270309998967710835469664495036075151620107139646459213624451003070753215123949920980190414092224654350041298154423050523113093616202649552453022628320592199243733801794595697228453600595350869112662629695746718854796100919668696885770105813710226942836973949641215598626610597346229294659071877385003294958166838833947283074367591164572690920046477938513903650881951575145441860411915688337804332788471163721652137297028843641823676159271149580412162851157471683356975233573642691215772267481692708952493451400112067892934351417279499787577748427921518949097667266220827410355867693394295698719304823569565631995326868937077052285918460141124277791308105882179755817163537593870244579352655388282411493099253623547638527518618923360344487717589329441554518802640578166587875836838287478755426732165039747754977038191952426256211240284875017397461834682692051068568253891733819137410624960525063625814080263491668516316366826421037496309023030233347256089353380440699357304764491929714990635068339835197732779297132485801195866519242909949134480049678377924238502838625782201532189519506752371610271958033536965563523755923028719576785204071364912889438474579346136808686579654349647872188948376051911054964780042571088134528253504108798758675413832596066138556210889528758190065143158213531117068601870947573597639165595704812480746596251873457278913790103086313887501863827447732357181594762713076938774841451912278100792440143938024320730843254815527597082652142522941948681221938972865746604423665281720568388107108571294319534823279410278179031994853314793510480163626819205249570707711692233949551443850983952813118071647574409456960262478620692610841409291439097678716314774338866296317529644676897287576944451975069822873974633470859660713318321850805963046676694068640365705932757218101560713025533321699536652751937020119646139247817280798068664745480052569374757586556296247192308698838249453925584604883927318502961469506255082955812851064306628891052897312222989673824548012574983845070578355301759476983117998884526374132067887018515075047000498225870484175943699250838768119656328930671714990018310339355486970916525838577413624962836770708060626602616619634902810689761286216110953913302328615173531485781166829906150150331201813499331172450766732828713709694352183610032313688969259196620837128112593326565572329088325119256237384856808626680484506774456884458100970093430526846568038472981769619409860129933400167877117976095558594112628065765632040558422631551018244540833950061494036437052543696646076307575447664555623130524018801888779281841848576471255622612994935010309074774685606964390090194096765714450280366678910019754339168136931899577239346713215386324127171551232356508187577368991787694014651592065384022944475451328226105524806343483016124906314712239698444382550781785694020436636921805184156136250806512688737703206885628260375392488671684890695612738998561351019923404795818408269038116087180445775140780960783780351039675337688984926342514523301323751890053055578539947766951004503695902659816021957760294090196943362742635349882074800574509825230944406292176862334821642527829035429893784260680529024647455368290647579888486016923760619749348884030389706106324075711112022350734492965926442995663488229729280481916746484939678302015142980706581421819845093965492830148755254853229788295803126843002870311190370691905175712283916200658793652365371083926462184065908495440996692583635994140018821107953359034034702329393535579207160468578026603312516109903592603108821772052646968803253062745698536824168702340107635405265027790862309966895530121512940738968537349424596993704175830834706780800232413561364283845015847292642608273812355829060127322680582803434482949592899036943245990438758609418834954713912157279660012449971035766865515124705229590663965313826620632162032110533886572493344265990971712708513454202016800208584380129942665151310666573938804825486485488668912303651911216561894906066138459044730748261356620619605994342176962528737178502102827713747987413454439161570867187923220515733521481693421128971374637878742323886315918943518477277886521306448313069001720117981881549924803608802398794099852442748215629486089743950639647641088754532976207636747070198970256591973432781319675558456988753981985261903597754137659663669888945457695365984262270212450471083644502689398875989277030995176471774333850614055499821650000591122066375931245508810007589238685616759558269327848143528380352359953870967349070059671868888311784400246709762583835369371704285118396638495884231252267231674300186121293744142378595261993017718869002943938543141497832937764782092893034707930861860364127757464965454197229200737782074457363207127826221742635486972191036784906662525463625385003767142029635584611568941823383408688615921662462991884103429568352199451673128349166936569314964993748155544415250691753707828613508813803858073619334745583163398464472662739929900083737878849365159649770466015709000195883067230069496968977328619974045202143463905780007513295513235446473707812248318738484463811786761445368694537745228791454000517130576443556262403073306665878523278139459991296810124458256296991964458591839105248715725300265676879326653726695578762264790953531973940283829571391958521527064775816042499736854101377616439420462695843456405407301954213195137032999009447130668347121448969134161602108414362275789829384871756051223599311212540169266203607277981480208138291826938698954523136101003646225417561792359311534437168335263092995662345609899190926602007396898935864769785758496127415169376134396401498073810238914211804182011722194785328536919723540594890687921466923605316520570132854339112815714365374486984175846295439861628684410318657495881603936438692749674161086622466163234326532017627631919395280684941873611694157686155153326035559750386665803579980520766738629184252954600368966614583526934071308001176407966431310641118882441970674271830526011183207053777303700311364872346441901646448628130615101899381100162974111473045436882944424598039660772902416901276520631475511558107924195910314065147322681765565810207622531273110111656260008294208172337977033510411274505992574845196828650852646826483739604342383691600915850237829461450929509009025980514617632797208891300122755441759731429962619888007173846616060645185179168305402112929083173289628458704935824626673731195880882279019658086760434613784140801574510598193014653416615068398949303287419864871153586417462038082655450570481751442612099927444901177230381711025220376100827005724624690356958929158173469059681647432737584349903409353606693577460665453069510397032416144670598643652126852060345767277124913903395490277398178931549223084982853375019624593346631343060290476813769459674385487334348221906557858996463747284697034730390957905693588468429625726415216786236278452862627301136202813682110615283466890925751543584209505965764530381429240045475843402054944248158132430418111466849543857884918421856879932214459926843973159624084379841765067548913435651714858345705901950792425061038257600434576663165144280434785794063006474955607494906213917768039893743598659278105878448344481511150373697136652382379467496479825406516683473374413665009720226463394101766747346045480289924449244924549634999496974715766685872004017464957330857772209582419826736346170553745363988204575388312460686016085707427024318754268632074433593571690583178514212991616408054635533983905765296133584210736144998472293182349974955614056119422458532801817222318466920251255145817689944624314555320424479943630363948298438248306711163874254615475914467380937972566057255393114065850375352249269253995472882273171118751125769184418523601042945674059384655589195257580538554876551726231743228256699365596307832173906415049275423925114677503896132472633699486182904369324781366569619778604125112050422099074340129477782525870947402631546520661165711093227088417103311789463316480411103318864937494216663707764672058946038062484316197751183257536823211722490608765702780464941196284595492238219720763925461480261193950791600960349160730650601273005579383091157741133899343200775688428300749601295726984180305962233554892500470705439983327211921839014706297461370121573605477364349525545063849809241753967131596326279587249391162831456334973993149733461853369933001093075802401851780510559028651270935671933286108958996903938365922137451059870878738013873482297872951687417774026100911487951420577633545400020346071716196829357434317955870682845789834791141716736657011924358125515041280276344754644851464238418706623198019595288049621868844446583687915421145577754374814054308820068367654528512076668036147709460068998856728206249501509086267173331835512753027692894782718248914206576551257113100009916379098029429538526765152774710410274537067463851321232671677478371969625841869640744240729016649046162765609348436233058030650077537108391019295853454823746852462776326194133380337480678897930991642152268274327353943096794904610588753103170242202593867087909561468614245889554948104553044893274605899876765320677280911003330268310244267847463280497103153280727110983822200381619215527353927190270208284244827954562814014277422747735772157326210793674293373489846834856965383012357767889451655605796864143298738763208508051863565413628250049122595230141733453357191410921559086858242189103190613639773083914047785321846579023672700593722438608925981086260267216211413159851876161843567783717634011997841045683345253194523588475163974133651575787611709734655646035763053373914322883245914584803854701397107394584751932373090530138822771399555705325167172700939669328849960616952722016299393301440755372454630596490400762072440355866251527977583810701099828018728758434211686004892843667065444536454892105222831704469529303076391314999028922476275764182352036902574957990505134666332385521552525894577582756731252702262007231446901039592444966496240565056366239505529959136610939950458748035992731753288758059607796405754780132671664289138433623913942802549941986557085914760461448551731616547497681658237469827718285386103168654759875091007288892602021258941256898161250077444150153932661576729477102195343510454720758961017395757318537404835216594692569361106224423424422162038641494409519591558157589750766945402960992880354828451001375449464002595304859573290011445568624469170576923672878616021313628701821859970767039174243405710220552930643477260487358974241953545046515858976139813519421835100617228121488704670323888940411752263425498377465961643409693246922098770482301324016032789854231485257406821033244429677921027350402964245110383528626755396957083267402835062788797269706515503677639216605114767114509049918863185579300301467248209614140283999109138388855648986258655895305954726942936372591206321973557930129487499667371461595943068512585792272605953440675947187245364844532492800186588833181722972900413272876958802474131343211269223750482878856429353986752705800440452391070658988289400188532126328932420085059860013424218864455216736586957204984558164999901367879001458647206832090156731885321656488586795440805851307917480240179415913324481514019651644164338608246169786753772096830310570043546375709919131267492063863110104872398439285437659811319952937536800532660519235510445956258335382477038880963610714823953951201383122619152547094491653360127279337875486884717987120640240293975413861181407620998637264055792423661772482011619607521049663643515325437126884566360266076420614199125295987473198642599045844997506214460619856012995575381262313610853844891017603569637463387213842239526328593978945899539946919505418406855685940968380857917834207504286887680160005881673184783258805753356845893411911321458159947607962793862607691739210307470839083020329152187362249618216300747020594557650708976537403781450647579731188726707580869653807137531977858144790871421760523701658912939908382161658946460384493759923714039778636954785992060747307361967798029283965349835993556697131474994098690878526434669787367505451118603621852627835447498095773667185694317665074853427304972843952136024101797959220903261733232243319151775313936524042065030307619387729175684908348792964834325400013570580522041809728890726453322151600449049483484477564517915633867299848723122112831113106426663748426205809201126788789008665329775471459402996744078283753999874788619904225880851302924743305601938324228654825154006795611434677517181694810435614538744245263943411258902560547954358225334342926817601735640102623390727028857302234935763307926242853111559738475983335057457123399901851927482472910444128747192101736168807692424489535232522162901601865283619158688191742333686281640603841391808471654421368561042790241354617718499336118519976059877686629313783170538590555118628224307452162306276103779028064362595502098215020254660964697842826810636272131067573980179014951068658411144899146337182629368395626667053986049572041257200587287157924535947345430411265341487922234196589778535564920986726201587011458482835327085457895854253366958917933667910411945575301497440877460146382882718140006902390088194082755163401341206059384878055534272493954129875993045616052575510105893553671247852722946170355731258348987824345630387273632908648582807815527394552963064929617933530529375817350068743118999860118203683827944424184348310729425573637310742742622943858828318122545047035877138132149174968205505461856646727726426806835361829648671531230511568435695825476748774461858087291814948857335209399775381671828389488149617516090281796736538882055955408729128488692563887496380300381353190458239930868521511308855601330467533384413813744331625751885238117244573728908585444988527661594615067502629732277047118776726707153921068852337456894665969287380380670268396693812095217205782032847888307422782078102169571795240728610734351950523345374646323618585156873738639198536963927523098222309669942536046059788396338681622912124257663903819390517626258048411626300766744053884833063061275389251089444550735573542690869758851952553990474813764922111098122224702311144932077618447463675837261951762169296733607268330698373853902528015515520332590197674684998865681041552691642596484035440795456574920501575425161647412994779789073418606067773816037143438479605513177775905785425525226224409851989880586132722156004768386210455226934056829178621279348689156579063848419289745915875008019556589012171945185005636500645216086280997501629037757174667256775822524397366034071307513705943181189309944942343195762971498957417678056817062263470093291743778023997387930583838966973093042062474168263130019004038974092186908257147098059446970403282500073058928552264599111058283870073839751059478063991967007876490710175595304840666910823878397417726273913219807630349131648814270217237149593511372819803641236875384799908299961817806451562824041185336235656440578024758921632012626878916394103024016454019159585477598896551344709787883074047723414797386505986609812731522239639592648248753108315508023258473328702271856156435479368456193152869313933776760518536997990772937882380481853639045280083604164648231220486858990799712733739211090648484624361399018430409691008045404666862988036522407607663322265850028752763242462717695147807936440823536954430509701293531779399300201007181332496328398862868872155634886535727475388680781959144741490002629230748331224015563955617542390464426140511307327616003219020054322536227019327528208194805320767213703456805423141720693897588600616339193694208553615439996386914254007557600868477597182038732741974099994865148993735938062327531744401686591499255551162025459831689800121299513412696445178377498392131482399125422747176380491239202591923797125447737913189345336513918129472612320750512263066788767676659446066550669083976973417343057104312291730709638705083540123000132578231027217077622934829468940721415836916866584989999584033666397848571020913745651482289369779613277073128787332701456680273876762646368546456187653746400977741994143525736529251793596679300414535053528701437505608760874075038956956564902647189399906691664725046868066866742698624009971191637832849614507235005928339194109360435141030305758926032239961902841459924935012414032947954209362945504134294180052770470753179536784513232249899948841549532957357107213668889635706364258590730482819316403120959316261783641080159503575272728435129876034280016558580958463691390830471297051886913243820435953144310800019585347986690960192502437205506119940652178634454673672259083107601923743954172686319349198099759821886195206657109398758360854191410563419391993289579271115933151330372637349732274674322394859461425671890022801421440022819513652656014346534000167048812325821240004675886382599615750981662373810503152159815182248364143254521249455954499404415941953390958546446954447480357418098065598428241469940699177942915066209394976057443475130949727753550672760903510636018798907322793283740588037415635970378332143380070460401519404347080313585311608204140907918173604382602434837551185538153009973983113916193490258986664883894094216736677623394169012021480023390266633945387822143830941961776500009306089176666213062769763576482038707692402482307817397952781091393374189908745830508413042445624068262314166974510589659126414790222532948263291307818847058942388971485762424592827136214470519137625204202184140087103170533058164735242031320142924269696412394526365268718948881572181277505841233912192329006181523528877649768320955706959095695965546398795190310494387047292115764492353948725684170889905893213760658526079045004636882139735102556820946209195749561529731789155199455138609813542710783555512121124068744023517485137347966178342198850708020747985812669367413248571517109546534515295963711129983781720552034584072476994812207287897376206270563189538645194671562696082404196160113374261754070219238204079888401783981325858939099196464891007268170525337877469953571983281419483153376979591585049942884402959736686584200701266638006324946292717943183298417292980701334969804468093347146990289406416129080596025933354863548223421063780253909364213532838367023113632957090707032047405524277757039342046343836089638195411195136266767496235158078544403677664371546956690515945125763407217853383149907071861778597729216098492284280534399905015619655750400897122318372251560925030453308556106360765481677743246665702915846941110392712178457783120449392640958952192046021823204493455348222865066620415184437386052118316757029550268896647666916677406389800033758790819257288467261891164644477228938678765557209400392138714033327015186193295285331384148029544169761723643880853709003842434409867210633480750298780838044400947066958260991630302889659964512833616631893228470377972084749301167972313182239433424972494215367439520411651389841740775919103098874742580061704584923982881324388992908510513177243494643642065726691665990053295430716260333289994157090745381057364731621979131414578527582444601439865097888344933649803931517798467653627934142846635883619778786648146510113586640028744146460682866405180943337179985169209532117471239442188360024532504248310472649217512549590739155528704999018193728553683786623304624445506642368297993482254719049223043900532480003391196973766263587941999118290011432765958708976310597409584718057729033158197602230650242492727535731911242724309906163488549143856689818833460227139387991415089964862029352981485487282533281991688934790848949771344221186364753059805025345160391307274776008141095866750026090687970926607849148327542774321546552866406351324215052421752067740960580122748350795329992030552054231325272471350532396452012128375290647855789242334879659478231498615794017638112403804889325624262226307456758445119221684253167483425030176185537111171811470563662749855622903408361934229543802211899874986943246149848703820448374895882303430347241713700556821710976656610161281854797428868891462818249207217874098204981073590933506697304762388381285280889596771813138892547874322721978368719374569874207974672595463108546463181050422297167558922195938861832331872606097609234721883971655553245637663210744251950331556452215176108254635232343063144779318941739882886289905795634234828299546847518076288005961127820570524891137692060731258399941692648756210659734937690771183989767208814570438569367271880173735271135962438869156306026372417010064700025413549149801255836843788378362582651706129921582324873930745427146929150971425071993861482280398139956294709696518258662700433406038338297419848553221048725465226877932685899669042969679305649914422499413552121401344779721335323333721064511859109998435069922904446257668177315877004382960009078071007668136935405257167931851736262138462129004361286275750369890052995401025978829305199054701770976076603176610198145734771737452972822074710722484973494449620907220118344737775095896945521912883568168458883013170506650986052078284574762592656342286178897177729462182898572653949051852299847363408386170269192398831358863108350127200866538756718707165505438049814652137258972299370805711899861949370849768974840133016957021514800860611262237307729935393511564368094543838052292764686706003870705148359977437714142757793447623682552364435256350079169318746522159843265490131267319490660350516511323471873946552147817854795874030061214376183503829830911244774226967450502403925149314514515802479451825925059956591625911949937026319265655144950091929084591447484190769327535928148700244041857675749995923523013505760311349396573352975740198459841804532815417143747723199183157687339634987222352345641883674082798590372536456593356132671197768644887085022826320513436971822111496890018373833133931035855261394269329930835812351228369021388073346926951320805593280855444004707970915789015780603771995190787143391386349274998578650635949708949624310554150122277092067585796928668958247421818872487621090339799020538607965867427140386666344291752824186211964637918888748671994451583564824781871650902237709399206703414964856552446547383070243433465404545666556205721017159618425040614558358081867408989250943517342229855160861264469266892013452662591420928091348823782835989531773960884407630868281668538353450482810317689292635064250270970287866602667038534661520608814373296740507869059342536518747377753222661733368292033562973121933532615237231729508722084934644181473924001491353695926401989084074395706980045018061445067620169841208875091359325166184502125428428455328117872919983608943319723995750056454250715129720803159008251007744415978521667533460283039893405609973968962986202609288488589634599607036534452205631729154342139272238150001835095564445805335263339886639524003258059200891290528999689701932417498409216011544846352472371664726325158496878149539325839455570369821233462713092589029913789810155934853668944852613033414676476741851130992789912163297562475974542371681847697740445001770213752181471817227192259915441327748368483741073703001701463394306462848879638820958034750095852539879905336652454509823871682718456654440351581736916196910120118735380304768442885465315041013760798808168401078802540877634761000735160151526629546480222754532194497107043680137952871428065066181740168104141128223642980325623295709027909888751929023459231321259249133868470753404665647793368060035683062013668591053707649238815823901074921207389486410199086061156489240916948157035973524024806590184885445559954674102631474154766461669131636672446595747610276390893688920352165463843729165065194300108572371937096801787116583809401382236743216443541729137167149805491641311960840481628653223142185093616364136106304942658877405345552591183023964044302387544430576824786313595437475410852912739007484213378897903385622622394875045855614308537170646504762676524169399685722825589888126816938513497204086575684159043968105131022704040436050937703434547596826275167416099568934857905605822258424282053191454145635476631417633247289260769643639899104698620699167374633083737364273175463371818954208714138385214334879090409850841394568360825677413413965756051391186800446430238529849907992812661122451683397497710170317667980203549179065368253266107736500039236564485108770482879674005946571633082768660348188914868097894808593102556147989594571083004928073594968577308823885430219702440588465711984614904806854784680410058834426989596487543271261622621820686490765633530927786657248918384436877925504837401164693173718445839156697516268202550621549522742481012865319678850285562962544356420056469551549693399291646235597323039576698556175350416955119697757855889610181988316634136192666089228812269668351814297338950549873205209483583249485207091315330437639200521619665677189320597210773004776727171423188109886799577155706349013143350844226918833923422308582944311891669853180931869642886918721935446928168880284816063100104610854641519125986643283460641226324546256197291216231728359580021854930626028123928815837331722292562892961307410134219295847535703578493156632888839968580852492219632289622830019766332324259151037957473577381905566745170692383328717027381220935362578495948953096785465527038397250085084768756105813392865147285245857581275350731086184377623733443711052425624540477564402350185568697152655384264948040756794502249809540059278505916186946045885840137558943357866863052838986032058635578828761352635373271647929109517356095809908432046318026484377405275767041170950392312906369313741250729506931214019883932208817058440512417035895607412437978737793144063795444114911638994152001873508819887063823010903469814508461642117272981142817938226894628049099523022330883688038893695660231976410278318053120178615587032615355362949946553470298350428396416496063312367189531352501251590732382237438600240536726738385969332174721664945680051430794029152770319721749436144741869337960587057795063797006151467864831244916022249550198789570513073486881374521486408381423672301704697015919602910950000348062313492253552325622714976345731044904386929058842252443984093780434356147722536299546769916407544336549579744854773175981344190127047605217759518402692110103713294542473933669874467371077804741606999737501128035505987545524683782065735361437594323913499086248592960664552925025134370209242983826414961016237283245307675417257218933174504773702304768083177049842791367468416391065238553988332629572899391976041981586101366779680619697581984022765905323806239804292451805005318707125992352950051403146180756099121283308265952446660848384323800415783550359414539563273321009994576990343558464324236227053440057037891989459102247475302229566559633298318824303264079818307303698246880988970804413972960483706154451722296703190623134878186147134007441116064565035179223031074564380013558492429045922204521144524234579265284598181436101636700569038555923390177180948585451236415292991043056887059982531729131860076723716238412411041254664778019083860058318344370730139540473019998914838242284009081009556009894964451611706349326270744407591769939651271559087382276284089775599780069540071629776589803942942046194283016233881286642526650169759136240000250605347800316707532092938259249867573526135107069373773327041587458531486260741502941361025647254412908441373179740845070395246400560717542497517711291533126946121983182589122058313398764552366174325186601686584779168957403132321087635197422999286722480987243564121073801482567843919669035061046281843745037780889025541035083205404618610489567261857643726239235087535904986485248166701600252184487841492530664004699930101328402334736115639269518960778240637595020941248752750928529669949558526637562345117590050967928465728273339235403060615223532899212781826665622173978840732294619965662723502338943725435836085229541102496977440016761296448296602686472372659102388432936540253575365291553191747449432869938420863808685632936222191553504408485166272192963795766803487614415598984836887129810114035538510419842001935630091558630123857277380173297975469877744271963606437043089319847322922200435185094191269967224768844274561042989515323308981202019014028173278814078725094980080028363339566307901207712500892590021696740212892011964992788710798711664655862666420212694831137430328473376611644366033817081907176605578264581190566180197070327388969781863774514057968123493143871368714506443942213335633315227200039929458994922533548891611054312756819155417877819009443768722289146452172754075474498726116275090015396704042126247598656694705635398226027141732972222857916567709343904446600789072878971856761655334393403866438930483482869444060536011243840117398573956128069175954615225131393639861693518261385078873525516066391089038512024176821419647962077099120072950978950631779315994353728546570186877011004317279416136757322023712561396301001543019938292874080500843296879162658807598046481386655441119743113576752413633834465732763828016491459866468164718623002817290567810968106062423852233335421878746118819947987789948261552998346137361481815404785824577126098997223255203004210637292911187052744903897580760841978567018580941378834937841694991444623309644432421276079550992868690561045455364362092482232834597373514967098963915619549309475268366592431295049312615757178421800087607318363925563327897020960381541783330429922930742530416695295712592829416497248150709730496957718220839109505993745643162626254136440668963731083894834214833242323144678974961911815492859982060033774640449921495247639268232147367008913383218172888415324939215653812343898234723604028062453792945322597448082130186716453442259847653896924669705228753883678041152817461643367445040519960226117573613172684254909976095873721871882999279884382295380811323424591508291016619931819606540030650541901055515872671924228852601622304485296253982757803442204020253474628904289290508834859878053093145300972658791937663916551844382997384944569373614548838366190014260235839736379488391971163367610323717618806407645402212929439567066185734062987954044134806842981905498685027101244670153584460321421717171879882967133935729093339264092229090678492862344353184491812373731010564411916539883887193727941896425111267660743074913779867910729855177357033579406921565088636286295170650389771012387548458566826639012513851628352116006527597909678428710743397005184051070204232205740568029069410456390068130364099872130058513664638800578194673790860149785325565957422172124656326687897868739809980745100876083501611402838432385287853155045677906454387920900944203492594041686700452250811979799465465287423081984446000179283335943392427258380165590229638326162723207090745259771283940042439500862164170068820481546968088549058540545772773759941779949466204422194418633318900390958181451995375046243492695882486108048293262324404359827463149811697409184992962608641906093417543591321011183525600781750405707919088555911552705500772149243586577241434654980027182435667913092184453355099888771493664456091035844588703780759393955163619563501638973222301761966465810397442388626318315366927775361702893072009081276298206076618522035924284325317323995723113398223350083881651614744234788934803684326253668017880049754968766738396385883089885986806056887179865525801563244036605262843076481806112703115401847794807000336552064067098996042290835794717795522802031493235884358881334850164555736403455440923848224739993594508032310226547522488437249322805642161635278852522868444823858007490661059076723923219379518066812291439855669486397427078586767085959253889087491005492945517970524589594021618162707446147562560466565059501192629299851702016555527875129508721871616304789827552855762054310403854307140918719521126923240341882083591854139983511113105907787969100355343178026267409166704091950428086864134262277833116863343246915928719692786055750042060284864061243640889614458474037155283860458176109832800674825269157935291328947301717009830971627450622424041436189405105363737460880430999198036576357350316461067111323323112920661154619994595600709499687921301738726959019483667565107386978557788430985960508382699880484870730264978147233722147232174715718651894897057229248590790675973189664785543750763176990582278083893418282854037730108599043342953357313186968166215025665993188118478220462885862829791323557878997652102637368460687074460560076461203921989509174505576120190109699497798890769474751103212652822923899879751863952471744080008692423500790635355725452199250231274760963815779563760434955404712082040637007880189825968693866734257003084975095515388469370123237505339039932554756515079608625329538953424116790772055974584276686582228445272568853710371171871627310311365574952227027072829662133664688011162727707206311645335619368256069380030296680822763218377638593023511076398867005528334779533334799316283857337122784322643818958375236659845064017900141505654111865497957838673311813935221473985158852255813999084484232727597678771923248514573012153891911704579060616719608002910709776699324718881503711203649572465112581498781718402752156226119345286947893994947546596628263280881703844786334151029429229606063155121702936990432857442428806266690153075364717484316423549554063877812500530439506068846544984891764725244926573486557582388632329216694123227914647569157357907284265824506926125376426073910120880096756920819536472340567550841889806710444786687044566160135799553599363838556388532085457237747991171283711663765575206252602644561189296469446097462308939666022399646738069979528903933889730994360425002088066647438064027250409984042435488577319231144879082471408881753500879748432799447410990986300712068788343541019111744681189921273930625390079105649778432392025008046067339974252560675220836196314994386345605689940110416303587000421655194088486632634583187822246893235975237611880083664350695380935022339382988521013666556937004751255676690846386173465511688971100316854280592115595315634735407049435872513123319678205475132533656374850864849838588215585220092313921299405295751660837453794859686614708398037154430653986575373551623081713784219291304649992439614925855816445984975292605316675619317705064904864074646353171876504389253329458185200015157395871176746160911505120760736206824045450530546928734874622267542842750604651953757696564599895458551894787821859160539315178919677010712012793989458773786463482032395633503102027937704489584630483567461626865956669838507773419109758499516783226284036892842828497024000611443597845414375463435258865924190915197863107425449384513436880183114350267267702764639234531479136999846986993267985615830334671724699673787131716379170051706181721575126042289341984124265156802262348906305982492334511391894038346105647680731376832665724634938849290808914804282081168896975161223362547966154181300549339474184094070237966720371339183271047698555290368239891980437544248394037118988871801975542280596373787220676767461866822250889433644870799433369334849424271193558248388091366519645860944654739663108542194273840599232117130140969626062284042309906803129244091445269472700290923358211791034177190205845184566487414313887451846685131052456444793555323755493266031274981906458873809892217793690789052423669809583613124999776534325388880527727873475186400923826363455223142765318222454843385037889157149668876026613111838320804435083104520705696457375617651596160333762724545259755889823156939265029797439264696083022807616574701768434891291520336469726918087022540505973021631074340340837314075812513321249130470422824174853433452668775484446032953697263980575846605539521150407900248375012713156653231514287610574662928292834904271427901088119272942104117332770453909060517689556128510251721174641283127104545113847415012624428725470277719224111146973571489560452216937551755032796582404126213313964189034632833745449115085210882592710008631125720343672865392897475309804831765596962785040600802453712639263231358710918372486142049370972560204732669555965296951900175493393735838142670458274219823911208086869896334681619396510567270022040101469771335582341918432083859173479275182910776885811386627179070829804440422625189447545398090260019451167239006286949943562045440756665438202093984135745156339055477462633015086016442722836253954655953272506820570466756536428644734362776917419180166643107201868030757815326256935884111288824389223443543986629932778219177314346397917647532954990459196850386561716042181105764726082934970369361690481665200712776706361391145847283441384866157899084652620383818470565268165075292469832680821094577288327030413589524906873887400303025296524081742730103122113906705838187396995831417893658670850255128748076592963722846422170589823771547413155565638490210944374885054994590400419363000950857234622474508161441790458346230204032219905854504835099513204426581474800277028784001066925666221227010930741248389974145107260820183933377831454929219765303972697453894564669215840855747154059776301889920449147076660003087536278722084570499346077272275689595994940510863782431148079325960402050768484482702644565480687099050967714585983072990567572994110688426348556086722274274505231047249315383076608560018476515510911273739185674338884563634263757128306360886271289758115556172856497813175940506923644026536854880796652061492661519678216759808255661082180848134921500604147515732975742621732288540731270921830945524697986526816600213605889334285148748563713788863452434730684905290165249081610497387990986100562471094153440389450434439081448900683914434493555669332122826894682063478595662963558670968543863082766507844345331368664788126734368885368795254017843478103048545872931756949853475630725721596320985618548930644176468755926479042580457509206619705109769037498588303931230684192981696538366063897654115147191752212713811774446604226409834824296183127643222970186752902999647930862714720580647487117203313539889991205669879058985254997031063802422484975331385012325735999582989955789344746640560358859442820977216880086233547329075270349874503966655947744528232042004220426558583895645339793476237653488359600173832689368732499370479831976539794444132107993628268664446301024134246378720430589044326219596578705331499613082464959678233047369023490538702363041330875073820654790294346316265568285072188071128714058509771910595927861802010066729309790428655546526356621912642243913507640047815274607013179516828951496384856270121751308180537850004285803829637312338523098195493375417969837765244136697359859544147439413206960877993507795476214920340227408552265948295449993027867807542049573371942235169248739859126120680972129910519699037185464013834218019336785501748120721158256403403304079288979932549926096816225460784629874993793400977120204536124372483120769245333105204773351716223083081201074883413701477144350785465959438522751493499414419512269564636703243677672053580026320287733273805087994024081970841928974274313623994147281196843204204184565723813978448501654508680135355432021609301317223330654495362047410455854557076089669002691308338545027769235094916368848170971959987267563058128331358717911695615890739786056576783796733332451264398354522267910871427603002326847460308080223098804115709563620562306059673108871043716084152838086770659820347513664424727620977793138246952242872320398438725795620551902236423118685449204630954535196079839095445951285242422371057063564151869566912767435330771535374938415717406936785805096611119454226979878029240280411056602110363874315634209103155111177274112193914385398783901152509252920677810487857230117394624502655145413459624234102465092237265491892690266887758277232228233388298959156455767054903412036021568194310540531310085662310477194444357457093045430280980202032733498489968189900555811636774562897647972555435659834447864810328317238539754354517981958453893018124059157353296517803906054558479435593943453483584327825354695211572256073870040090140008246653483542902019846952926914099263324771100820303002624294589130560509624229288520375824147720376490602079803432855445873685874222237505524146051416849860415811153008136277061526265644917609693584330753630155366516449256756644110190190056391481278928709382447244798201769183015312990902908912417655957480721122842871103372716640978616295092121419680661946803804825368959475714251942392661666028504645833317086632775293630112317571188498837405933137097741618494043104375948298174126852640247914352194819813794440745696102046023380377403286176226412557548931765137846273468742619975790684849519942134817117713526120826989967061374761653338135639649877462763851378491425663541603230915021907999050351425711231800499552763652234705639134308214771233387556116703362037247817377124527416367215641463038613726062044410139613462768579622900659914765608658455927908828916894915864506328453251692709728417528504675624108737757644723620122003823715500013634182447981412533471081463077657296453216329833102711136180645437103571748627498504429737187514745349127131467803842537691599290001675144194182452445152373549012427368531827522346306334041742834645703961855831009464564357137781371051415769232413311848635152954777880988323164212020549634216278840001649305122584095927944499469084682838845502356422280329345257135147346750149712622475266138174279828681576526754326923958009133196031573022059637108009086523728787034537802828628520368230743355092488203498419354555213255106901668827219989122383406469003996858277538543926496987355921568320665113999142746285553336896544841900471786163308357309787731545757079851640523528087010841697089488720121175181488764049223033606299955877120483288572402791982821988445760178056489325100361901032198036440934767366441030249623329067549020874933893343681378093333600577264436722953659647408271881710817480786174983991161519898665344675370794780293968239554205137965659316949025326820189527280803675784807318366915988724786825752671967459706330024199358653661506053641046915779844619171330567710120658769813728084184100258854941217958626965415891883091819196903100547667954170271823400360739424875218438148107828391392208762182757744986839805679851135959124321639319009395734586508136069247560483427998822155785652035155152122465591955227962759394821956506315788008693563376281418173053215612938397799656944895942166089112488632892407731231958077941883591105028238468776330323445809755906982732411229512013186664101165038988186639243438419757895370671577204020044434545336418500400432875570171399435974557930378281579573611571168232486172642131803417102764472551673267348318578652170463434841641353866836506588268242533500096009499520292717428387496166441567761063296654121903947150160673315429020609050545024332997336026177722182260095821951985174148694121300460026549994035975502098044790135370100927439074228748781396481766959182380715343327014528279175062679958902519007704277941656453430842841498897304413808622872592002381546675462023174810530797847671188897960705748492711542006001992704530101802613156140236215663196594871751105819545466996131313888741156363313965644959727121508311486467719480878947098097701447665326485271920336610740989548534617188860536130777465242524814216365284405117555113748168783836247222432750034156012939470794290132014577559267358692274968927569068345191748729331825234188112851977418562402813476491788435560484155997271469344088932039997561844935958134928528787313211199283189746310849677041657166617463924634970673400565350968261269243287857435344520990980800527813194398917171693808409139687729350211709131314669405004774314080975764247153458224667058299780057138887117100045774355023702759896544439501245750833278017684919995796175547355674359824362806951734358103809028097988857953543700946433686964591243530495629001061775047522002506742432963056357954081665492083121142362508805989993031152201005192082632234759187424084717481409763769902820926121060561566774030660255347468776766091379036016346408779428762451572743821472374912345281183307057199467235094509792517966159325921284402260123743782372702746476031641851451760948071638441234505132320561523316281252226024529862754821882801980873966889143861853235272842975054821299592062130692572705166843781733349993424578294167572887398809906772620189678958327741761484974715269720565707960776605124332070873838262002219457520842462680273048101269131297463758971188937689723263673542221737308816747447006581167773253249997055650189880254808924933129078515086499999872450799414023764921187375972053105478162932836904158703197521922568928888422435836578650168570911027611940233830955758919083969232684025845120392616959526731701310624470478769629039227082844204002642820154726492786300673847914597474009685386956316905368996322637358543678286434599980120350439304891748111768803515433787060864313289138290179665907854586703493124386794832994248415942946655738685426313759520711459970392694467298667773781591303351568343542059330529222133529828497524678751327220586378233339374093949566982927586362308513431778306489247120402393279029249995973777638314853363375880816847136122808235507535061049290485426758359854023135994597629558049450564750099637996839473241146283906372019802077551590233539688070376982007977112836399420039204240111388348925369254401563256470979519205806090269808888731861456527372963842779739871041810854900479864887488790965689882920699120500788661973109500634139005783578633576925399936444018603844951619546988888753785846646677061213379662864133076511624189363203748295505407387719321288280172018361212078721865936492925786369132232258390653097358776573831756713147982066774092320665443114293083514905634141461532079830423485758750360479186188277445125372257296625235624556238869713451525173474506173415555338130154618440787876181826467360773069898902142027544634520977519599151269884087299191494717899846150643230533560954709082433508560858316442178053103536562385804435924503118063265732393438715230892125052123751595307186158233605034525671711182662850790751267638614501255726661922465901083390934031067222927885485081235960751439187635908933225167151458637376148461833947735545380427195538446575314066951769778422946184207414957233633421330378704066985864528864176217637752591870455395712292183737572363829942550762599386360833765818737508153489054361950263102186913653735963115818566944515029602901676378975425652499535918647237039295062180891072046007645287828570716599934407293035531854555248802265498487078253067003933145274973444026276874337837839242277433499216792287067963899719728817402028871938883667414555365142027417993126935075332285550412115926685282641767508314147807667358376547909959465849812995606008614654659708649313839787244870860987416349062862338627810446604335394573217760453392381013545681304915970244604078315129986441820380526578567375119920415030239924896873850709861338898088922011766348560789293832951942697315692993746068772593022596966910900316625650732511197067651571492540216625161517560284510293257664554265994188021076373087363709458421477395627279412481443899927467922458703969816815947546319535088673792159894816653121462793713995984500332427577503726769394180330528708582296471053559538329030042276620468211370298017281105588383921589732073674655430777239110643823681595513956040601895439765218969197343524030773674289088348824365839111671890289754237937320139930895513855142882309108173905559921118357529474440442758681898926544046479176736155312991645429773977328852832937250291535483620599978804782482620829812213146451113292564425645109482963964940549445643217737889766880381877236514930299260192053751694941861378085527513397335285639882155079299834078097032885468543187481369364681157716424631553594929745678254535342668393386688578288462714748101303852728690963085392243240298531943711931378572323724849355680783982183736758327369715335389589598403045345708531664839392827291046206934256407532416318876458384761071717026529194110645152391944151446809299225441286589421541848469170569443589810211091186922471202917859265703370444097391329453227839094969112090809783648355336421768200796030520969341218450495534156092628809111364397203083441745758231008242637831941389241624067734277781808398655282919922079387660998362122354432190844773909267705818414736119590293408486079455197877802030250886161990105635809497250082470560211358658421339331960367614705222346044391575366313386230356696265263230888725008474512000410979918442825593880812505468670719839479625946753866648834319067027345252957329062707869647346832949377619643730517804784988489454746225306387076872966510272475244224814606268717029539377512242799534087775655810876301953457792825338291708165347070924713871599322956737648789490535156101574955755222780075174887083280860422565738800590224219454181154518823051850791778257016288743293015906894818397326282893024541359840151636267508115400482478120333701337293801741204198223786282081926105926020893027849844237207195406516658761227790783018412038968266935335991514617673976653264564686544212906025576637554916738914635035828179024442281705876700301666321383805414571964997500732760959338611357923056239058227691525978070996044592535681347876408534133915899169040795069262573793876150259734581146121260665825244208686559683793233615054823327128964097468841567208238026798280473069621240160958438724887099891537405398821798066949883631252379141047059997173942413193467918802233515786392210960025359039098673199498128956114539977048448600989958032528814984729863590871569678544122456732386883136705539617575893629755722478337039501775922570193021314214493144894846300524842246752890003520334313574148285806964788574753714374449167103544330061494784567370402153467005455899010884901449239595057254446793546061797166834460664424325878924988736492946436120264566865232711807755191744356641410078746774490226680589556728578946174254178394494796966318201391331509610910044961777232674631745146361786695828608743917040277728503450582743871808454309401335409392982575747764139098157234421936630311850204915352861688697603689477415347345859192319269007466827515414363791838247810253977928819502092649839662801661897660230503160019366787423554266855263392769534779393869338691041300454504581153736386919201586002726822008498937653614933424207397926330477115641696419412399099095736635148964097185095274104664827682067278072706667213731959143413473003653938310335234333874281733235065350288707758616254787026522064157917357665700271801519719078205829372091110649851299753401557807151747657075297267849905248236864057018852874394336987696292962813683057674799433464095856435383328607213267882992518191605401504747463352238936843609521314085772579079450857890832633731448616764517017316591783034872942857187091652748644064544281676116454264044607657050533866888635095947528990378143304039364841904679633410403224282456181212633233663740438786964681915286407126618359150479895797867256916031959004041818496866311433877320315204425834356446038726741295657244171565131143365197906705594354884410466834678987724091595946088148706559328567544873991418947833200383504183173766216167840529432025292003478104670747566407074089131145918137547283919873138547620085347714332021156550578702569052800559328385338604924015709860916566610313415270962209225113043417625397807639628573877422566204739648861348746871010287777245841681042758205331028168399431370720472969130450592062584566771001215557983825970604989159257933090368226260517659819345981223280508364674746099060881046531456890304779548786049503084624018017209589513932965441505668681920132806094840237350926127606788878095712998718653160274571983685879538197077149854004443658658090458905533201695212202061324406987347249332360797340729849808115894708761254300108836676382086554775609813158233587176518121174232243228258202800714986935875249310560924062615220518293858494885880740125182079210597317690665872235637388356563307581116355239681993650018008134727846137415738374849393025217825177551784029280426109564317442872951098063400054546623324002029418548086086464933371512200467845100150157404362250366208533529145185294911376440270694056064895044767122579295705034380706532033433849673596112723825499648565921075612935090610549552220586479561590278104009546971855670286715327050372098951498479120680181519999181399050240193892336478869526822400636781194871566283018841891765725120604153284742764750675388181114654256368073808194325935155739569309654919110178208466000984938774877016942466111589166561706706817133540036982434668145851928184830234807414116979000380813114143156960927083905917977940980564468072739589419853040848268106836363101690340198177519879302598287448673941947538656884737684440032827948461168896945417871793552734662991765806444649049317997900310024362093197810430178576925118150051299302659483003947335239935944593064518703925379861619826113164837924376028931137628125595856914698758749556872726509018925657541294843993809020698746240545830308577421819922901505283676977376351960662760080239508998269263482905173151464487657187780440951900781140719041213698129364534205344777653408198724940995781603773594493709447116664528817958966902584947435225055740742395902157760993733041051228382511614446321592345025112646397548471018392181233559877448687019977009043905872324683578172794653695946345916236792682046903288934861650615223204628555387800920729255128804170002790287766582976024172839125729033082859059417995051730815359415481788998703212626445436317305229822320044587134211459826910279967729374733977130486959749298893716308659192272263048712612117031242452036130314282978380690466659703661787719689754660865597983510447574009048992369401536232943371180087735682120369774196478557128572437174669393441453649235166425899441389060664385931326676483329899467221581351237260175368499774493185724987744711252234916570193068790171572236569642388548252910518907195770558730035538203871956116080103036211681926206698734700426848951901619727954045498267425650780007271869135890746863998671966782887168085926790660366455201414623630504017800012606224675996055270826204265726102883682674006407960006960380664873473880223369874558512010177142706133636709901933164932398486328207358816791483866840120412349982640062461538369515550663025519614106473484198996397595899150600086959280618875878608464145991623454148117501113457714192510540380752408127930020949921506680112429632815382720090825292538257341349078271630268050616877976999595916335354015570006746963240466466966832063084483422607591453710369210584010969123954615873962917932079898737148654015640528221653650043391506665841379536159909130683155986919766320362826688261620322664613652256952492167230072013389127400072687648688595499783936661833872186602975738853744534312481224451278167440315116988734932205300328901778441636784524041161008301674219429550986399428608434901295478079434414818765925387638281056074346324479871659596429141030186918840432716883818455531678968841586471483208959846868091402752560338112341993437708572950204803065676223453697723991281101719626775396305270437108838375537672049511892744558062943959965001063573219119137371392968896753196410457492975756253082862761412925245797071583418629656004730870680725661906726711466840985210514269823747829367445204892422633727281091051126379813043417349993447321094240765672705281191149450637201673772230661619875707156821099781174250242107064577233479624492941277813845287048582033864365023460715370329287622488681367421670526409640004873073020767916128792824612947735902626293013715190296069919973349360027867849344638620013167378681089183093824304189458745958938136709422373588079654265327268908842248021031754290704291059189187534266989052329121128805204183303906210196010963378142976765572073729733100878764192418721036258307748953867202491878622034805630139414716443694655865578727153562478342756861574148122194925501859856290219493424121203778377380577794097661766293679382312017271491615025217559862299472824246484378064999280911779516512039342470598388207296057383486983441332058641195803223487221219500621050918147520918065448257624872451533351967390984874482448102216048880842336630787727088708974655551987062456545511983570983699583933735286815479909260795489197454850340832544392510356473019771731272697438054120985734963830132979980822254073016319870158395420371434098878448278046813246165313529531235037418472081788236707745787771801738371192061303381050489701830681448780262723760159739597994952944645521509670005651724655327901036557951480726476506401599167641527070737846158266609973115521501538384202202961266177602327472162501001975339973508465915968025978349003096670670296597702632376070566797643262126574407162553115166001526378999552042808711613406823208559766328446817098943035152500392822554785228697904713056269963307260740980368410139825928379282293372849424740851840678444833336041889738329766797409248884230777218176157735692748308067074259973138844029550162975425350750207017699892849691830957734778313964478315227485821480102823240495428177762130872678930778634095230004975137252219748072176386526189564241355076904946487685332222625841193031662945583765642484093117250550745784948172048728297694994414672096555849965569704134686867640532818958708659528051952161678740392756444646084462067909685587875420480992852968896177604125042815176572372394364639611899763907657233453923416357434214306318392351127584482288858666940115214648576136199196765801637978456285655216884805832583675537054149967855937019656520396720527795235092001474318608662277580252965374517000820414026575786357085966100706466469620445614453164968938011400693734847582997686704776530263335772363443989113514286622416449254953929434820056361574910986563394900562841480505874354868163079546984620979002907434849631177030875525787167096135877210413747408845448911400840433852439379269687544709129908917671996829282477136202865997908343637879922006121045170524220189905157584031086391400428254212135464379698626378169779182874693837939996542290398718787383154465222497488824547292832817162638486097217443581440420320464164402883165732031044610940679660555245785565283123665649845703383231778558155218438293320073740984566488397992153269414165089943732378481129536523628124708490331725489296332933735051119002361946342694014560192004957047857545468895026771993258307657751667926199153916721887422779969671719658815975753731737498372076270631725969873902743278751459584885863509515066012216250016566077139858560736608024828298529933351024996472468089087837799200585781789239060980108270441938430324810559906303490779720183505014020440236294560504645074632065641947130591148793856042884459385712668382970765729575466031518073694907882293437859861710105387842669939533758303476019438731234438191707092865518504314158575081816167236741328380737751620147765084337392225806108367470971328664572948609834745227254780114381619219739884358637123497570842883384283562370327804042568460468822129109253961853697339447574162904601920167836033370520933699071864895283054500313193796492655768561180585172366546807574094901926673382553743947978474947518089654267012410332625142024643856604830952007901612088185561944038129771709375734445634021269597580016330072125852787327529926725510228100723915057355119995174792674959060049898048968759906555386176417659062811469741889877955847384937846816327579641951644608964385941245470771972284464388465838308616657346588263440234629306438401049739147258734089589047818631490234204886781322118297789181706046689977269260864145501464876679484960421922210599588119045531651388711533579888982448054305210163263193152100874516734583435523142947604722242007085526013509332363938023671446738967333353223100486549568284168688989579569199712711861498997650618340302890850678545458591783313723863874638992012090690322692485664611638815073111380505725005398487541871538236663422032746351660369466481611445014563662266787978516445437242004278632886757467050503261185336754729187540351654261363367567167617539308079887494111136562971139004447786197121319290918643685376904776983161639835009325993554462550911355916536628982591484806501293858666719593426227438894839604624586697933837339159620696130917106925234900620160363047428580086621517068520951468798107337179620703701172683302508844548581926117601396143679356964370168224573260561571449850508936157715326606594252342544798811661761291209479615201266850399777868010446188484967235275235814352528323814696715666505989953343321731350798792062799683704836919919127833342133671024325286621400647003494205623511456313711287737764446457256217061987519271008254870493199839464990352620713329311810600774747750360305938875872485601658904395738255041303736818846460926441532537174285653674625664516923913701950437976104486208026032013805195083849812548355980540480636593500995080512662406207793098064960275817291450803603676223283888248298640245775047705532766881008204103447518864368185766538381184829513554007026430556049653319369819754699774637954186887867258082570701544883331129251383722567719139003770617634436031336903174136519522414012006632304799135890991284449198123764738641734061100978802186759856838353229739291193480890442772759553105634366478464131862685994623562062564335570580749894321012320805918582499156849653312125273772740291686195668871854053123138809904893756598323784618212144387210362339565842689942256454917413993400490445312047694744940293700257598276000017945150891943679614660546164933622883574639230502047504604340908132033947874676095067326477683709852735473235880051518688105868015690693727802369794552379056502402516217232053331178473115569616333916421202936259170702245182648280486385110159914360561784950023648779600581201253164507573138492376655587590130732500843527327049220502026979974528560331382699647554764131790825480422454429016472599415776855633566284020460139604679152534857560013792159669643392533357919139861778686740191814327740806038059477897228531636107056131401641740068364099512777438916965018127554149280634992918519066562362453993653269572808786068981369083192530222544025751421153688965908720617927236485621551138601450621704409557853952869539832356478005355328966628000574076155524403846449955116858156678439724579364397978326603751479421820203970150515350952915950882657094827217637241595837707046545298378339651020675728828390714236906465118214275140140086965418592130649780007050884684438361065788850299807096972071487488653163269372747078820011373694406117249817367522557594121159278608687016892899405802532651025786196580348633710263411972827054295451367174470745729893046835647085887656739591686348076562420921254037206764248601590905516670624481549634457193009073753938090584510129447507717613823893983372350514709373765159642561089226500555019793216722839743078830809085140810742409632122598707024169867188876226268872589568693526566396354510788622122561137394667580075913472699009649204249473541806930677027899840757147620711843769233607427831344707405998786499258199931871314879716235544378314606097604831957322312623742481384484979434265964997198411828496763668471217275928960794150579906701722314374849939630229333746706194362150787997928629524414739734254301431307296587505570384499429422211017010000011118977180782354063595880390801907409624361940568445909448420784053135265945760133655265583001671808192028742422038383821240851944180449554661117606814325072925673341921901465416169343378200368092641271967172398605146338255640909033535483542959637589797762087293848396181103737615052629929624355445437712226292386831738385753052770986007749784687256259814614662643160147783083767402189153193305277422690230396541280726161503836892580473322302171622712295780193336847478609837492962712611777169858250724367921322721733684272495046590688384463494284890290104963546004810161878977729486832355725627969565011069828436716115353404095567986853978006698123669903365851501966266904402778119689028288519864533172882683041526813909094906641780701119458563017418947201167412564789083601066542176480844991253968336000726862242744634872780153605364906411903574666358179139215062782150077715182821663636862306475678159288888121275858986529625128184312381173560719300893313144256441774671294120112739897028574707817917742033614773425870084287435409994220068421355372809600814505551025885413393853598145695845371801974023551240260056899774626334432133234145654790671863923100818101384061554734794838162171830337089411106252004475082364931815609407915909115645275545601953560345207357477392139862048087374776288590247081801233648021526974962372297494671309893969973006507641034430617934707394738747914225309664181929236664454711328271845730272635670410235644287618517436540544489182934468509956805466405881042807483133345826000707825492798466223960003774698861172084686625610244467991519475672160978643246191863405539911855182550929784431770069128227774670499934944896252511105335537863913737970921336533716000182779698800194443149063802856794180766896074865445905109368012879146243635957700164680252717964083846213569510868511117385890361192240281424169536628338019516149245260333289538899545848823643570537403059526178606920507442479181821171984337702305079772333264091961256597307229195162962009510338177717476631875305129061594295773234362135771664856425962592922167754121476003301825278384323964316298866039679596138748765675358972829240673152487897090171125028749858490082782414660711691907338490417334943458876287895155385870980705729377664450028523908496896942022148470059019831943038367252788671692675779020583912612282356762582844786070708581145780096705026652896182367470240117271651595774298107997845782153563418388333107282531261541607923019750745892028667722324550950745465374900731798757062340706587849524660620311158925457265298105661349929249739815262901053592955994390743304195536728741710511384788377067314670316317516154980803635719159060646400628973437749360765384957129897384195896600605971717966888390611501475111859096565260849443589569062291394398400308439822625235449920392838919503044477003582206786720411132289502770157581341102223379028326336771782299252026128001421294253315819146712431823949718978205568460368966059998308174557130740887627496574477681700677008607164761793468151666299668525832140401063876397761633771480571950849864243982986040473165268771508310550994786187534175558764725683435808849942200727768114851291727069527202180986652504286775783148371960714858885940488104353686748089693087240277124722857294728629273586489952351388485570159403379904371844383035067026421711799956780479151577549709260888634362938026272072647609065350855555685680057926692542794936940638416718963853140571337109157500514290586807456123585637196173093260340647010496523275560487669020108188435737124394953515727798156796924046458591045105489877362460847866365025397086346429023327546882670833327519662616701078715165458441949454856592470609276207335547947994578588135586307629404094150385970083372614804802062558369960293700748949409458201185815452544626654714339858493207978728943262138097663318869990059618221623612041293398744655393916648912525922263577207617548754595794120390465999703561274422758677343285547659424321600280363956687777366425187762964003846761560118932698892215313741060387884570616620391395607557807623776573707685320343431591279380524899711102694063832901963657851157953163042126395008594527728288508433349264025178246943964689206537598633601740120701823946064581204259608889646012649083448469967977491045137639733344615672943298391734174510352130728435344438290771728539464438057083177998195818393353294601497384581898487200995809939130442858195640929376064717537459365854509786480701339891339773300334833509901656868735671408184931092917230897634473460584585800872955713922329287995475104473091090440535862923674669320006507007428378094737729161158742323338641626945157434773913508576123517033147292561121366638734197408055675530916336673226500119686132327104544412295808938426090270420826650520272010916422180072422368529455968445140865167127020877783095360731635600337686336239315560133281441548194524871388084878681486233782752088823363850815864399282761381192423856248083925042115371871589405262872617715197238917950404287883861589850334812908987314708890103499443179929966770892079719048044025510181053622462108714439176195478118272291916167776977857848734339852823933235999566711776639132426980489493010536404961040028493895142412801921967657088232386432395311227996555714270093871640163463759847182907223215810886928805944525475394295233334505487490913907664769597033374718051725393612935422554604664620440491053111466972982738028980243235668869785282352611719545969697241509972597513995998507981031337996427027274281740161925726823431984170381405581386987190081416563050058707837567432100469933653076334568796436366410031085820963494862496393983055246251568467707459004847063311503662797840693653325521971436548714518002369820113530156434204185510262491107973375335790687581258948867351329978943092576643286790918704415982360132247031567725554144578583156799250049186800980486966673250119726786906636472552798120272132291008437310990069857284897257418723935890281242915932690243269816847535893475667288935662397587309409783266712874019197180652147411120390438239948009165497710472897448233323290946985413693351836151599744331851484584437238135260894952767605623840444129020667761766834646640516452458675949869344457638092736179579874913344579326583698230337776012460553809756166373320143750067702272791158194892890264976248278641575303204386114464788031603915419458620517435706542473502960126724477405700010904815152355015011534605586384851323266123594451519858030887009444234037864585727049010524241060851184731061100296488652458375495399694590454514014786022570695355546691120364156171164052646272517787654100442726371921668237423659874987490583021702809074946142582337555964665723044888426307280944605132212544201920798378162498918064856589704885675090678555313186996096283398872572058149849158963819819077656821934873177073321873122300915596322660527196787709836686011674397109818803576261410373046507415015756799284759501852348359982670373018690831498518156627932810977446343829712204560725799832701147771470248503241979642020990590663086340305183120389840046548831120140107085036409402732789606199894097208554482621945094408217292501903651905142702317174835925867355541392972822359640969107478449648460523776067900065911985615489229726354878334549411512885386459967770994818623823376310493635931477936415543943895814184001031349301789296890918743142382696022402426531877788542097736497293754051191956658558042953790919033575024872328846942219659983189665821711561590641970431725401097726845734242660465128540629025563328548318721684542468570253278387940055219013874044903354129188426378606252701708009869001061282322522813704560813653321468378450265198851807896941916865982656454596413987055209122145631788127626327199217592818405105844962823150779663605747715442862196437898119598107477835174227488421825489617145210782895975091418402438445952170254145273827450185107099121535221580202479246423685304246019578918104459625056777340713759596888279510779182664623582171664015811532993769322139552269211782660873629781455913467668396638293772672303397748454146468446962599279879846496177857826732573373851042607354007363001987604154680486354683069161031422355447857587012296147352048682866737193148113155853714833167478178465597762605402451281814263732570723285366849098420075169135918728930043652058946054271889593981798408181563870605844725023168967701917905405996275778507424018048471478714765819285117699096685260761656579007092546382227103808915689952864046275303417578873345130790625200585042822945233538598020826130602310232885170759065547103873836357879722672686480497948728484176160693837093241565115654948873244328042037756969064672123789338966466864016089829236104154716667538658926528346754548361498600565632014172575261732379992598387648239497227036932302009162799779134336341595946156449495907995871707040543607239614313962574065864488442657415792534892205775793384585963482453386473216649393396712087893489608718727043340115099873844767742531039245357090944545741524386793349595915689914562234892985130203352234380685453832502751128175324948992573936076740724736347844035147327400270574091110452320209252335851109480937246485415411641514887245907514599516035877331077934894289380491196093755994035124646336624758556815529433598579011371200155103257011692334128116375470642765378010167370600100092674198882461066319608863213440312076322024615036160880828423286525094189764399104228121335366201273344186644473416873162391695582918458536463132668505470102546095010172880151025607091786522344435199447522921749754423571336278319643196173560934055862538196205611499169260971052353897177107216528249339414307417572670794931777008868115761723856414687334946814029384669827888386117390792988642907595663481837543386016185572174937545504643094137157492208871931651501626519082416604294781944266538318103665182811460213859539585971660059551484945928027509969969575373826652330809806703809630960845862657113058820766488484298567008020044130160594034502405669611756762649405320695886016891954468580504574322198747194885994038213019584507431730496151949077187161876811399750127831749903268414661152657917838324499603150566134251444006076981145441482858412034406992514544512634539199608353334441548210307751252427679243270803772884265487750807603759414568054299609616370688200559257169979626577699226865377170907420391536665795939299273265476814494853077739395247912260557446559157436233511922700970407163388766952323962983236906843446125144889159728796973156443055224524833011296042995158146676242300530690213835866221851270368725570559900679557974364446949254591531110687162810429970166898506185165144942639452721007819785372513758786909181152218961406443719008560849471008736496919348814131007538745929730451975652561974339679616284683650198275256011499256850015370578410968327032768412746682915783827126037853090999279064185771688553825141819830033132660633153664057314214602148632967486021246509626885500688696578252344334577196282616893461455153839122213918973389463082351391503401464582960948101812995816358425433956006015739065589346379812182752702265629395135779554044031974006739517398254256818030140494124989945325702281369490769061480092267800367124187856875060899587173589617638330718952608440060871422800440209037629049793860185832130168917901616926761961769701187391095722449545347462962491987262685122191248228060454657287858205361301611216578759115912328343043461650985093076731764819888594914997213366499823404342641765555671672452338872118307975591186330258446910130181412081609675425668091891642935805792529319448550655046995908648123509109332232989055941373508762934880477931842801315494950092863249973194124302110154463334429612160658169642404650461820930603629581843375757468712718966038010360793125335009796123656633953619893603292683637432397752443727452962863982618868892747872515120544826488764111319114408206402624615573462697530070675382677613734155351493047896437249468536222596388047062478397254278120845606596122354872565197213788631515920839267972296676727562873566395803003444711492247615973137578542205593512997003809917054904562084632642050351805855649450263194347989245595020549565229169626255654131533341122401531704087568786069789670480296092073691801102275018285372069433962567932379124385858993047808788425219725431783375134924152856337849396271129980095096275303034332870810065404048274497634821227264627559015221775345849878115362977723286181162933505215020203126654214359222245007798115966847862997260322114325083425094131904566138707586592971700840703766465626225435875655662036025087676019173235270440837460868605284592279389238495440130306952317543570233685892180309868477940274329171370288333127347274170686448302135438819767763400116176777580505255800957419055934427266031174114703318286659919184636978673886972973057558641241525280908943301528676405558709493091451774653095226935271621333493378660084417972408497084774779036369568800880241774308942603538712427618681557333241949416044276908420263106271840881449160590916159994632107597395083554747058691247577107743740365635733712834263282227319116387232208306850769400924071928166620368046121757044894392955965403765227298886765029951504549195002631707039121748335979099456005662912915332077062914241156948055995745308418902361254744557770033558585885828037821143251644967896901648157322233823877645497607101797592276245731053359228267834308216555259105502187680572466574814216114333237971923214682242726832265751432316390992428089892718118630004992384153971964844075106704301113471540399168074421774762595930622911184837383074858302204740351136879514376657852220901677708323725432367969224796787210531006336793535901882942213858646626336771723992438948134254308234519300365527164706404682869033965314320941078882232439558796616755482995284426241647067925648615667015518865625865481711439301542542643699673302777856103435183924563419176520568415309092882272530962569979804094699988940056238037882022205566862400963179136229585153172971692883854273551780528375649955762606412365254783272417716684002487866002764442728542519324500326936556511775047317121773828963842042288278697678721743175535270012632672945707656136783336509200785749445799723493379261165506099644252496038679133879591259370486154671015221317647331117817426270070854109097932846506736600260744295732741317780213625105603611425650841692673750870271219448664248346406471989178508457964717614403339031555513780028577585802234427172226030032996320754185339022315613634522356949849170173905659705367218272153847991705481810086644859831532536023487332114943558761877948346686276583938719932539498319156234439342370272724445052989305611008667721869513747347313625735456157538460027192229880615059159650071530326093239644398358617228279419648633296960202350562663698884059523022428917230095742719657641247262517089622828029817424909938345586927924217488152722293288779927982020616115272423460906269665926915481654641311770122319177890553563612604607195679111652741952300111096111390805747588670062947066529831956435926483899254637990224256688358403653992740250122610406747133435175775396607165143004644831883264285964883913886420364034132310875375638000095743875732852812222056610918037125111357687567512176255599900952740218507097669115618366760324260936719723427438305441347754970470086004192685380042165238128768202037607082733671714500105854431181966235401027283699878017989608661577482181287986278362249230781216136332409599628362251916952510272309015439410827011406690706831383437552302643339784749592519522672141706448897687969406860380232190058965592941002015521476342350010434479716408203446444506143800717077218165817449164062466344780528798085987274898040363777028445016359766640119581257783561969081199381438291257069595857431673104178976316607733952514990822636758026849215776552904814622370678595345975993032328573144200034279086805057241975348015293767811808380660526675557001952012277634342817766329787364065910844909197044499004822824699685114393117640054449039233893106299319427244239344598951817739871746511357188114132000168387144817900642579148827674020363142688217879750431038393299374144719201925941706910388581926686840168671773546464629590242745539551938620210150220858924060076468940816915331151852205891019180928079785072785191996792567738902368978665313326535092689450335737428150689275203751057096242595973747163845200097310861352115692995378132182426885973591606856818879248434445797423798715818114522535896875716939081712903027923828946148030653790270966475930084121726589726694260846054664574561486442457290013050487762278862532994692866692667600348156010655342241756691988466666780318623877072722574468990203340095658277745663240489681117808560778511538818759903815292480025038365754708882563634866241377353523097331727494559816120988561314379762647189859451272826348382758657349978778783213609642850306789285137907676582487504821583581802868115750348363045891022382236071609612101368505889237475011240580931670494049378874100837064826872895825731462273331626543838446580477720032115114974981030690091514773972429730631716710306321044110019876929374337146683288589520612294126313352907109941198569346651673364214149487366639383849142316356699383666169339467453157902468854934464605918759017354828333509062036722786355518666784583816185230341759114313662593493315506821429122669236923392064451079653311221072705441931935146034147218850821990298751878524110293336719690387565397874107062873905308747405509203002024794551580912497182136608236587760624369498918290120763460227322111339274865139254041716386902731567307084860969921372694997123101042253723410070258151280473975537292488734835708597398467262763941480764946719689067098257365787902035368068304041311931041799284656187433192457361152736354460390705549421489819374799617189361157061697051307033794965099659418979169479726540028828231838536808817843020187427267073381127878499766426391019759737954254911993703462218177304632984781059028447840763429635738635247315918784722865024740274974253459213513193825736050380019290350711534807150410148774362940459725358297743142179434547228604277456039752691264095842969154100648750598194149961921189057755196317845991860254143947104470436485975403507736644175741398831380168098359364334211381636160005367427222104779582871627224507817633464491490075645406687094600151838193413750212240688979086916361096221237871238475783295241807054299320947069669181231451598415887238210914176123647568984209893058680238238482002554580758385809861342454109586194417748363944812572034949112197263723204228033033918628701415004928158002964867700432043323211113545904655885180345582325200347742473023017577499356035250714642988876878419088453163399981741451925025436737229864525721145954776891344360917694474151301783121989929999437308651569923293376111239485824042530587324728349028247557265567612281436407173958780245484175176311483624056593282606493365322042243781683020779335258323925153980169032709688048281330091976411286509347178158675847800332378339274267192030906098274784054084679920485159193584844895273070576148995725968292098808667085994985867500683417612104088951071670470516074383162543665609121712624118941713743417486041773385634339512034263755878104342920119619044227856062402659416527991188342808865793225159137396928420336647985501345599134448479026797605118886998522764089408294540881572625948035299636972463152673737196830652726531622310045342320531555571313201666575862759368530593112546174733343886925031094085350263763248886407202648307794369892363455700845294706290851589246242569370277344379986901055875812409836563755712300130741621238182261390138970879802661846353086481853221712384857392148423036912101156944068408176321969307636705567443786796422677672860530059690806467199852367428088742060388766386644764066718612474541291097978395865555713495071581212488099218400765326375197131845732176232299790256832237224430137880266899662357519069761046628576069397952409831375588985409851173525553964263066781593453913642962324712949266020437201127576547355329701965158823497832527055959808817105158348768820439732302856518370965265465192338837952937575532307172975981512627044064357295527737734113374028765787232506655462565493068346418037013907379981071817139470271099822622731655369082890635434653290524542683083547564389115000096896328524132908720229977423166985670470802807031455115885866011840849406599972209585456307093907754090990207560489706580365219527730329388203111808746505143086181313976937208731982326953234287972918550287280820588672439571030100629400826553482510254367475582750469165490278512621596593627167638742549526482949290717320536067359783653592796536230940561299013198758318330726466228719071892465617353092047605578352904404767117447408216213198258349615219379015554066242570347992327773421222871383736463775075364772850981961132685544771236773157064143727675979640750354223134414057981296405904545604172144760232418441033198527222555051572271212046659470984143491112903526927454797620587076118746494066182259887663484363373324231355966308765066324593838065407207804345309281851114201561248499679002150630126548369493782078435543491892972022218219846052780464295197620983290704105399550798102375538198177166453987763811532910088961093369343588740095563041729137755161081206801395381964522266946484774510867180219263307704958393998693716175519277933926970434954685486070649477863084422351393887426008512204048756074445340615650277586443066663309118615451336703735765709060174613041099005515576640013700292064321807196708623789133219564778780742322746121590117278365884008686862474165873855999613528851686401578780570095236300923429226515478068882838714407422586657403674442010751798564389195881648218196380357500965558764837496648776814165941195917987664240576044272292127338014866331176234803700688114685619471259349890534029150245744089309845637044671966501051308989813925175613610322867019353240215766511498904029031033527234104730829595277003038507290966489608691478397125753368772697429439997082458317682810370016844359129723603096022445542142807055273618598539972117104837569725636730190739439884208530760660090389487225744554935922101224073360149509161613251451557510907545995944474246530683509895616831269343851325038748351772084422674802426023269030642258392741911002492305849066060955556110723049066298480004276723685382204788108108149656634670510384489335054812480610595042079816430576013100448318522827631924392698320134936411894532917936611015544749625181933917077934421010963560702099267262343851546093898420864236708648572106999515933813829178879892375790270890326350708076522284050120227523542696234827181519075945966438838533459297344316102404508572816078626025703249608570655251887997694845317760720994394611146012344706952630367155139042450858085706094428239696643314523971266171315798003290471282916381455211023036438228838783571669168655122798067475094880083394333011583346062006403690221065600415175649935056504918963192764356294978116934378580149156519176119455207271054269777924846496611537124406906646052041920697421174187745412164371808721503291199400085858107992927582339788447406049850586727537916374183715683610190527197446853617121651001480847104813362276753704361707742897224876395684550033319129260416724081433736501556192372953789671044626518281095944096344359437544113611780571979926783711051887572963343923013790646535591209786327550354526332301884664564383964391206218728422015183201298098989020838681290227482057633414052057134754674570704864240159777694436334007173803336418141472287131024265050529763434535567715109962155008366964586392016115039501925138821058765782932501172039003325453985192230503884014133157007270949630564906461045264620007429742096561386858747868100731890096477528922250130247923903517532947364441411791625274743183300839190826205200492244157649646391041241792874453158773495926186076518732291936205523335241948102413031596288336590502952703963971505735496893667347596983547977973866380701241337589784170209907704043919354781753430225921414978063458223984130344868793173763060713140833441362989945559869833910904060054980637786066336159373570042259624202624455900899251798772318828807656751402095222588468074641193342821094213508086722138559035271911703412284170863735956739127841893552304207047284150113246565474095378727328161334728316557641947591846939603108215202840672094497500042635159864322073521618814290719186750063693359245001549356248516188548290973704122315099769857440995129584677351822681053954140395198175974603019514926108585140513882948170078843358304244729922976714594508130778953706934145591834232624943564420169868991180313068235557252390949152089410750704785712341677031167562508635178685134559019782676564673814124959764488472097387311547055421303681295279297262363253253139585379353362976978296594095841698862592529937946208187073902893204226044359387049665381975349805854662202987072321028798468194532946972651277506478541648245092175678739878532217161594982064843756329701280743478980345624559654999470469266702418487062997315221912320718839110561762970396251581180837336674525150638436115309428642511236298049260606096341977993948544109594525897885709145490963534466080322865750377163270755669276203629703369802444551494252475357646955254031993354735895383837604087124048555962922247421419053631781930705606180750732624964463290994169054368095681047229221747128354750473074959325132675140918437475531594952360678619957273648770640634068022894338786569828340072280807553821490800187502923402763198970251085605592722870220101878094298393037793438000997408418663609530399337635342373620051113367311515084330389809957829498607102701007322582127027277637195341236388592943488693468338274336012595539932524342527608716235471779115164093367596834639536457407036334006370844698111214390898584205296391672070361315481865734790350229349646814803852381570409190155217871281805509989458449730088573586083493282823712395294610769735901611061126487469429539621058788870148506222736966715334269572591749553794287464400644600305406580475439411957234863422355720211451358311635686215297158651909310521088677615343206667119957744769328819731399793318168785037992356335945612322680342234273842337814395031953418909873993160185636128319029491277370693604982446893927556403321605628958335347743312130819365636370950966897901201412151686694374499854561613486732400289221068690776478644081947235093194046424335943178162342949633454354161373967869798709671651532698550146270342373982104348958900213138662507955657080384346530141992224680788134483194190473592931366040782241147096358681537005376655419522713784159967654154098598291335198867309363025024703967681172708563332936411108771294845681251529307407686098766153494866198774138665702055234549990991806426631399540602188474526234517824962966249024972899827589183816096180783505279694793216089399099390019833792877796672129250831266199678446664594310289952859679655911806275010324666772016123738435184411481083979850314970732615117320286769902906959921401509986742150528179212954453583330758974627615583609939639743973046596025064409963058505090000129426896124965831323769985410205736586604407839472678279142551556844959806814222475134799738020772362666410106045750282671463075763965725678300541724647850100996009156020088905871360707475513574168802792183313851326900816064361474852484316287223118782814494243423476400556033907294316573198839239763714504898429421701011696190299816918612221264857870292304253695877718694805722547152716397294108999067997667504029907352141912400266278506524418005628162446200892962331240285485827956733793533332421090362895372459295869966910220615899642130281661322383051321687062554527018435740841995533780423237612416821036162046383881968134562651672591980741760539244452114395115873378036060452669476820256109096420275712544870748372398193434233610734870834190465291159312218263129084091507989998841323451576148722863010920347510430591858663580271242407433817332907009941725256540529135298052821536799676665320941622974725782002829585795163874404408152271063565986156094536356752028838860761396788235671395977623298737524592099000721862509035132503894120352479106792342339830994402010062133607004236069040860202859009458386807263113579687669629786559762511981945185286228094706826563025306975560238451663869270284465441118703765229615781321784120009773839477628048965703845393243057777134413348831037022266499714716660623997424580680719884297616664000260630226529911318210267983588428272515593344533729555234580463602845596087414910480935124564228106659217372025987236661474052666158533068108906666364437442860551202164343984032557656286199215611302982806552622497911861301793483157706864686995754760140151543089672872103816637294165392338518976412959687941827964150346887553755396197013300384876483072038586205236552987932825458139772233048389123607284684644070459705713743960733022852816096937384922551560385920348630320634255858538948412265563057726198210693741901315301500900481167864993740618501530169843187916644857996507815540687455342447996582546056981437176017156596538951658985589433584815305772978929732541867961940734239102931703206928049266755773521474479652454598432675126483235425161373167183745841782443124974276235926080086389330807365855700352257410802708185390990239626729896107127984235701913188238689553867232152695466038161566092344858799130386487339364560441499878884832134866759204185346584493304168781370432540699366736424598372605409587787779556878073896278722122242418050214865451375569172695287944277251216569088053484879988007214077952719337085918715337346253913200933876817265840177768924424549908142139865595058295712791570306686366454374809577713488398756395666266841410085738118930622213195761646457314181106132947285194137321069661637327366364944449449253508058453870250750532546360577815465208917395329487812446399767535547246106583027676475249281604597491163965957932197214964925826257745363728546713115583396981489558505256593957128341997183419211427911807368413164717620282913820854785063925452737277763911992470452179863259867562951796841661123682408533287508090220830795124271838707084627240308798262142757947385471027571826845929072644141820801199893539199051906984765983312357694247733211675364395279910727477747473881559030873460542394461609532330660603907436756597580433276207574686429071654401009136277678489878703579011342549025099655397968049121127305751687592106243825784836972050657316212435734625828353376255680862914408471549168070548718972697002921292292107011007655012831385038996664978807594614576252870793760171444438087219161716450428373457887701885342199495292067297935333137185746387072818409575568705126930769213789616052381492875704458422657715813510751891110934279219883514464702915814930659815733284217628323494877701339392153256997127756746871291211960549092582277750048524955064119686292382105397178683246539021170240326417137790423973605751006426786527739235201880365147853395498395073117578407031044695086331334559019126014570893311536432238511716942572080651638241873517621234758929683414859633664583977088326469095244697034063595829139507471747622802974186892757447297467874421997662508872399615353102487877705505640517978769669239324350198699024320373581171633943398502466122981609466220833880382043143823919229332417430266317187758244022397057182795287965249327160356528221629494675361781804435589660731034931526882574700157144916069587008040208904800589157003665560963824175321848910046744605711079998728181585612209829167155829895983972397229618700381579178955402067804326570197039391215093259517132999520138116797549492531181135602590577996210425628564975510826750963781273898210746168874153031171934345284898560963526331262627474697066142779632753078921777629396925051431619698157129277423102331305602473230986281421262217201330040969961178065873014220465103815771450239011927085604641309997102559650794976760304948331492545983674904036551939306797567102928515941298636856576440755321895359051818988339690458604074000326062836015745851873519901715474906156701485179677981588149680895576666087752504743145462295514250595508669113126390621672037891508919355761802414884654152492997157905040161574622618476271473441798812765883221594336828645532807632264200474728028874640764528592319560839748155064400948751980670917865138888498388431370343834692527093520891898350354512052396527005817762494507909150860156775454416373267542122648739786799741582937006374193528810600711177889093885972158159749071519523186501781488301902982806043471275839920877947157931955584359812462144929312236385721119020818344583745042299089556528866158164347328871194115737783523631523533693246277275111314072658749227316577699114955244902498091756532729540040939291245785364381690665913334590844599279456964734815557469206162463313814496557529358785750368469004602054640469991411486821984405168570442838831198852312272262275430755630000568663710969187857659062297647218096663542476150385051198548852178378454699733661112636068815688355218548178451239819316008972590885063913331766305940685988139950385906402408306295138330258414873389352917112724905245934962962404787660832315323137631646904997529303340866755080664906610741280147144273753798493103322819797631589477559799795520316884669608819554902785008815674435154102533505380208970625299129084348966861659350412938178614238839545870593401019613042139021810039362356129261013545504104791519156459409521461497645178186529967794327285135420034787998420084226714810613017097214669828352122689842584081584510103430626183915529990967825832034699777578251262360019627515507527768452608038592427800756698538129490513774546301028967345511281979240201788328349103955952646345648389747370566377423804091673179491301694624107542393971652291884673206498277564439814375058677993992428791318961257329584583492626739989134019324007424865612066919732205204901000030173881129867091960184790531492652650793646878347503664631452975005548314614673050898524502485649264806159107326439783285140763974439546500591620241737357310634662891971691428452950008016228065219381427313622388780146461335423455650031810741705425153550892587222265013853115320371830711678777572624454321754486509980682118660583407328213747921399217268720902251099530177721903229938536164188522547799048187342601562499804315241655950079326109341306689100752020063197452159309085959953373047609719409797878280807778734153257469450833605588692569228926831502390207771490139270675299978646088579580777920253548625967954628977606819713410124029295298622675819216987412363761894409419839296939294895782810544919804640193165249603210490090935445808212232400179700225880457203251923300503535045835650795492213348140719349391439426871489171272786366589469590128510064506833559468936687988491338326459290130865067163417409032669542274579821119480167519862132188113091279092192498687008630785831589890488263258303577265117319232941537639255032948735758349609528072761768441767105810570836656417578607466201882420828478621389879165523138456710650517480127886492333505659456995083761537448567448558335568343801186857305135102283776105118891919906773648390003150854096579526578403879410596743505133517241193899860493988598368164374793020932736910423841189235112928860232771525868419724388056008076783077252396139641711485984118233729030970161244112117940197870150263277242698330642082726448216809883082589738263250298094720375129830150864659570010452160818100254950177186539158824695726075049191580052785282951504207233175087877234722352412400672517229914391942241153079442707909868513784542632416452453067861534481849538936537550192154224667662741751598712054024840694644949244854468942110571966553396052730741504125923602051659844491517687053802378020868825582812218293708284988298299246331511401444650506040015825665581198442200807454348235070503344273917542480083853159820799878002142230635294409392150569108768311116351001740228288227159010055870973453811867089286182861858007370256949170639928700721197332182952814239869115597796438419974337528045417232005686990085205331477316196607201181674467440874849642199021560244594775993830362643480031677766601563819310514777174000444603890279529116968244418026201581883478490719099577475681441762999923094553871239692338957895562447279727441910930487846363813931525956776005971480726201147338384229481694326123569678119505210895527734678003437247614592585419404394623849113720928543195608177986822577446029298594992476140894974506877768568217669189476791728213210576105384752490336595772492174770078727196167798527812249644678202897803645669200321193562369754638708554043642569431748327049064451932703650576288314457429597011723825444683396185212981059371760348666922880401446261287454803580724460729480600339208811531065908561451252940761491575188190417876929044750983580907244661971155256360294673465628894554264356385181827460256854630466601042015829020420971991875596647818122518038826950716929030425447748266363886823931177032483316700069373396738671320744833606673147199520342470221561139359064457717219488688986596164486048697814784951331223423948161330920520124382722364418043113213472002656190589852709850291744551845928372848869071906875792787104570418418158754532971835234882610721256585945996732515789427999043458890063691533674737930430798189754333944004126939113759188508380456437439414961814602392674179337847102703019616962015552956242574892791913208425675417609967600473691346743659693719820971663066601788864575116370721495292355124483332153451289921328616903472523254130634124976623612864968556527071277698572455702475578448100342510155408253857860741746911587538579472312522253888182358589235979320905939283804668635495002938014272456138095317613777392573133481403271593873374973653285547065280420886503959517303022576436070932771421410338836996527497229265073553550796782379778955480476592941127166448475244442739750435896932485285159874390935354423934794770755865694407219974929468696300103908389338998537882501329449915333607063552218152202218465370693307478966325948031503961636380324210472418978208520717444297603504702015342736493321826964475783938506524698695698390429949859188037121209726663631700627056894923954242980141573392446802312367852664026920140163266631047546292998887874809671228226633370636884599342260569965880987479089746488814607749576546652300819120945477005896249668881626653036597901335328828031663474085660763666593155623710903902200434501675948946837712390438652272672608340157970678112204674501261282376196637957435527597253413745802019091446188429341841973276018402562979943967397921886524858266189591774156030630105395634138870410527276172223397516258256909920161185126726496618161131135071319651480603274108205838300462164651107548583987914796743307302316551991456385134802847467776931643588450810550483597551220812597010122490267898649825710669512544761917903755931721451460985634455327987413181257658268256709676688829640866945563328294678851599815050224992928523358005033609691760947323069091584451614068759511692809918677845188096042459445746741979685931548896450577887652841092364230731260871723777018135208998713035096160572398225489063911814144763700901954879287402744755598742930595943779358971894706883275879048581875201120165621911860370701710667804686352321940608671775610858444787906832701755027389345527834461855504877642779359994695907367295006740909684139969771135564862272401653502050345891012996114384645769119163960983397055891784708427243413780978037993604584073666391974859744133103817831263318531271555907414945696170539047338858174552209263507504219860758523783994352755720918737278776166204410321057543194785517378237319300542249763831384189908462268143257659553158530994278793763866197191141898986124866979380953442086455365629153524502993534436657019172922875609697684284530336353662551106622450098292709770344445069423848568110442310548780226207289261313648784187321498183601692296760785935106540062989300449562351451673340401069691067317945939564379045904836370394488324718928832760831533797800305616400075936557167573648000412022580327809000210275970089851825549312324249220285254399933800635972414767017099729317614107341505679706272467562642869661612797353334038638789087452165809278558416129939317937044191091049026727261416787214007976411557772934313836305091494468702819436702637349791916130509608295758241727315334172161567615071070060817397514874536788998072573855310754857275733582621126186193830562176274597217126359641784267847620425839983379772596003116182088691753622325042877261696774876483536950060523357978250614215365220413768594640995146127683514934920419281836510711028961425025881103194000143278131356992206687381948609385415175904813935316443062888653759475127786219179001296043278868337636020412341945262164351002506742075336714216328309022208447069932805260868213168478569251257318406001810392150921494628292653785171717003057792434570034134494836503459481251418404973425992824673071491145328197517278817418603790047994325494154988389626619314525142036622300728515688909607999336534806385739828972233948511439021603485183732838719128965926259732315978911292175154562174139175651747302757235099807134323947781360957383606122741864757607788547583566776683505326870079789941307477674227378826480580677105747996932446953390242734822662356277588616675770707363138883444103259284244026947617074704125195217907445150384250455415781265906191750160905568288894159612197558769859832956044548053768821388656229298458533571361679822950060996425439546086563686492395519574542923272238533345564610756220404986536927281665577544517147604974867727627034173565005414803417184207854809850279993852415197925708058181706710146936282215058097539695533292439689153443025391340465041276635493376322782612779122417071325776732924388113552253018157482070272149284331105608831630525788785831219203148451672170719798454168226538668652197102662546327959763088678467477082314859021409127712827799869472228847102148307124585085182422930395333118167601011379158720879737987575239654440182394184489317558743494200884024727853857688071104521644474189430561773149076446448567553560145961933647648099778013748147456185024667699088170148951111774123679285076406370582764612378700530587084157078358905887595860923635838733154503986989714901682445715433690748632361480598937770778608890406277994133819706853370675508281707978980780980787198343270110079388638158080072470048367126282592350236850165346761401841022188347919295548083503502781190352074684320709451917104868844812136631797173590729033240461497670171403850096662794390404938037720220866776776209236867014693813631707405794215904711288709161350574783982860483107935305688029194122999405893370406746852152246502894202543005158372617681378107350821109895024194151862889595598371019636695048316944921364893077860348209949264686243776575784425782254581701632177337191118922359141735593363555271834035865946463413864497194572153398329298581948707078518310965794052030292523320877087466181346880005342754430429883241187443326757075771077853703277789769997170234954707719241353925468028599169014789914243608011485349426707760559148040196187047265512545053381332342433048540793683646158977444175967522465105628472483017055398699941091307232742022651514354556723896577022620281812558262598473604443346476539551154266812080483846894133391450613246401997306666070217957676757480081263452867760743548087527240753667040109918244063924580849321637133369835853302690981898520723619052836273119686084098313712452963492160622074084285593231076772678484329408080114435537582613730749974740188625552414886135255948559387077418385792523019749989408419436381184332502191188296990394448739991172587638447477393940436492197304938488491142411459639921967783995822369744621041189829792267848925541574500606286278871175261750015846649332305077558753579571215917355492231579368285554789740042038676477675371906825758067503598229916847471385580143131942187314679094538684039880164470420973255263840974675663727251122355736715989868084942945779850914126276586132605917108688647168826607997818432932040763333058542889449268340245378547748798222343916589255398861841436067749666521862406828774358484431121342800836683672093467221132435157213020166878737085931731899091127127482880396554368093256588387507467931973956846957815275858807588885721195436384181151381064277261287511248078102576656194031800839195853535726828046654296436745589770794679271637354289775168543390075653722262223579491955042550236477335493865596777379151574236630543101333330892868313921805458652076560810247085925656821920283650430973781604980100621900749190281788504688895472625006696539331317444830326509358988388996692452442428999084355253875194623874193777571367011117216479758254584498536855371446871672967645404849209750971129661193055267176960659668956078307967028697187459063513703156934666657247564997494009644295268912333128835078079277533985697294668158734092914537313767222902156417065349012171079604410594172820657490545354568471543012145049599597214593636693941642885469971417145045326239723918397376516181988229363042094329907106245125841341714480224442148778187567163108788559502086615716026370882189107482518168704017263422805082257135218743008125054418586731699550227384974721260576789175618896540523710100979602309617087745357064350537305868336969928013830119781939660005770427348857848693545894976345529346358617250190301768181475261072532647009412308667894205080040057284541154271387996804591905567331289475899380807980739045110469306157958062625284117316283926913550814366247637293793804606026970179851449210168406137754704178562349698552033987319846241641143532035475453225148747352438555618044823704132331660307873983323771422032375916793281160036200924012342279412047970761574139156719032370512940387809781116591716220476684579487805319931617892625023677498489354304576870622772542442103721313662653656456964744123937920382552073804440115068342375811515799020176944367288967579731266827560891035155867360538713189872701898169782023168862577937910615399197331066041008767570210294068045252563081057283942933971731842228877851990949012365789688324345262039605148213909233442070746340397198008843735268553559819755070314326826893737241659555322379918812070358500507928852789640142009066358397534826283854660898619905396399885675870135065365494190304702202846664617812125037765259384959605706994575230273228844444207824680555615102391730963777573458058573888068109886167672813960183252317781084683780519938194997600141908065049566561251496902191038139536677310225879653077127640668946951160266450262685134621057031869656028980110752432613499949351748317448242967638042841472898747947725638360385879353142730273806638585782425023524365346551143129132360314834238932531096681067913653903071220977564578358821316453156973323114940602795936232794575671811389576883626410534210525482292640990421410624339593122342047564604549609243615212215159837227707514408344175499096970703974454680632614904540433200673116428760729270989167816728659942504875510893199976194520413165483887819887811830025585061336968794313391014569844278870043837916588692766287534687814821767141479039045380968603050484704619835555713635584210128129229664713696432703198662568220059303965235678737927299222923492430206099431646072195863733485605035813663915286449757898063424194402280851707521839286173722527633298108988255832576215235450149006293537675716572505446004034784375139261284879053404322014937044673743445912876155180951501063413259646400838185204375747825660089088146276638747880064700170068926237014471161819576255068545495605754937648969526995359401973325815010179169159599743392466264378425084267515870441747508862823776850437897556772937936067980611011044323753563570611980487261178631084676193575533450217218860370257049530282463056811229069887884976149200796934124443700360118072689123375938371725750313574017266813591679332114564541115135619720420163023771605998811641204129853821287801486501531549625063264060282415384702700101855769846250654949255942331398113110889871968024028277756330405355207799884170758419777237874420625326806568792468228029791297567382144457552483459107628148574268024425617676577838121012214268493960934405929850661460304121506978506568750153727346016782592887490486223169909939323447161058229929038594470730002604721267331118807351742909977093553830769138239372648653616804956802221764846027714479732647804350582871771472259492652544906865839914483787746549694560846230853075858666408399974582874579151270169978716586850188541550773924300506244464908111174801415586139222880249962532477188903129395714048379074903349159099838280952116551527305099201335740615821955873821516847598471610814702653947562953904288143492794841931639678952578178697603275103811118792892146598989190012195062696605633105661867454209368255997499682785469194679197071070897288187582687336173685032683596329347311136680662624562500833377265392162176435404166085676203429910395661080562646046224554755778907405246652336732357748717847014560872515905743330289742838156118672831520670754366719686907885558770451443522561890410993863908311338589156112502786226179646797976973589451564196352882105201007589287963211884630280915530374765604359948063189893563056648907370765183812198685840993169671600797067661535900881803887332813317061047688393062910417916396288394760680377059807085641295683987302106586331193377616273942960129691249878879025589778961815053888982075208211520617105197960561728364743988945316627618679324910620678248301070706823198637265798730808423638506566965860579765876829716204331591762206100393892025814837392694999295812661117827906884317989059840818387573785124715448349234942474221931400444112134144493710710453499334349468982413507327921488357260266083976564007584578264565861399708742515264827534399303236839174049885525277596750908010845690942582707888906687007585463606740242887715749106494967983699165438705651929445458433543511254542947166732026345819770783562422184997832000112851137030868831830951157004249826294778669822174664286304808734988886105894384533657592833095844592882388598405885227050024315475030425518931265377243948952615950977183593366877818763873109867166954884276159464022325323707647039363175520051096297969246914506489212166781723925524775184286355817547772621694636774311587025664903584256306569139820217085322772922706588901941912257392951162528471788982860780109236333395783263976054941769843302616526653364888399336718965552355319991644911078081239305499596939975668530856309646790869055085599188337075826595451819303278197749104638932338698763453054560662322373136271498667694812969123912711397206865745695837577753318219068540573696366265428879251030201888877851555872089422532024378532924094174358191346882669808264607609993234934551933239006830296812595731945792306108916577767259361291992223749995978394035676379520708020233363320762499498703248920606678663487351110149533225884858646072776275957726757536323754095643176502545477102039605723299240015409899149052250727619003495938106173058455596046006259524148216439300636049865592984652249190716822761307239823411158110941940719760700073962711274894641455688904781289440266401080197955848612467516874784239749218821095598760721379181611207886829926135755698889946749190958337574932220692760063011299832488779343803995070629394130609194762852999238600315896881932395644741111102698030534256487519503369208376555625461532135684513973791488711445804419335138830428710593751929273758291839128552133967716354471931348537373682590218230298600180975948781154594697677646662383285701247842805928880651755415803215597050606211908598346231768986391715602027303220272563056119423626891527866326327232739335525922248498731372898190071162712763625181136910235190089379971135626804487360667480804233781606814400897772307192694232183245025891304066511726071511922255737672807713711498117807017079862514874172671883707591659033821214168874409173378418654114874306722062309179063739859565313873109546598147587017379125607016151393094964471791806738709345769352990261598956539055148361010454329922099076615167565599350810453864017584202862565529477272376349609572930760573151023679040254052530697565028051011646676563105974486711289037505950870371870245338432002854096492922022944676904732106851660210820307380476229704267513359938451126601218121569821722679008486845523489149066077089964771618864309716133529608580003103493596625418516825812520994940914045619914472249753189737869041213588892031271409093940242720755693683639927841715586991758970133240163031764656141048134318340428696165459441761815736794705742964672167390439723579436155541864234895641564317100469135097068026072097149552337901168490590050916375343292808495269496313019443263128864731260707406110454022547399580727951295172574409523644919971734748130382375279599465703632849002244140381352857226030275203639833763521237345192777559895773671615648806390907469376883430814924107669219194203176829066069147875308496522117198676954383652872834031860021798160218967031049941878386802376733649418052267238064430077224803050887972733225853749954807997803041070470493108480535208839625096720434088814241215119765526982853153981222283109017919148945094145998062586010820230605653205249174108562958333741146297594003645834916989601012972417567226106382636245330833018941560277601538970497818956495275263144322927011469704702396883234171172847810617933699441886913624330205113837581377878303697362517249314331797475727862013771388000257189322236914000720947240256900680968209289263622903242286107486774964277249792487743834216107782691981071403194283522408384195653062578662325055909581247594641694380155705476114639652898210817098609183783450539748032576793334287948298684320203212530764789843509432928996137107542140731422486282002135508852241636534639398172642841902372655215860305042778502241335772099246846513342341962501421922999941473338567048195738810000093691241372873322128235318574721128764815859397891112497697787348212394838064172548008765211900243000165343714659325488824389966350736317341251219800921507530627079720104065423608929832939623358750444016264869860556783330569804506002034244617666481234158511920476373022491083291177864636861488314061740895275304058619785206313213347193614757922500102157517885521320297686224804413112240378698885697018127651271774122046136409433952576113028228819404110549955619937743953452443148229301237927357325450335627751047812685230604808447402369540211152802333593397944612914286370431889408846684873444951608171773594308196037336075368946621513882029018037113016945639884968149378781176057643676923060918237150908947148112782544019632371815758539215690398043664320137784653086750279020071945322504177803559842490622716163006486077930109191640609738954808914088724449759923437801823371337799990500639889450226953620562945571681042494415364732557010115704990722525184944490638251411919177697238116986613011585303131975189587095205727188915398215199585485014017349350658428256233829325075184481640065443856954497423174037040624491137633914056661592513647878997705901728130887955741057715654358136847809177939117306573856981031920001520490450777237031162989438535360488772454791684613797681908930460238955019379788801325631080209804704098851695791250238514999818683293502145950972605954672420068365174587566606725045044662748657371953884562082311316899092816543592242928045361093068815079635389249728327968649091942526450335844663262320460757012879584538778426529780916999396812555844187816825857117279549549751261311415994268443793988996251349925330315071262287493758013656041369273846463115288507485941665002709550930270327804816000036947422932085155510183638404244277377479133644811833785013749970155871974272480885616882899041386270977682953619200168397921795383854618202722287392670603291787615240178509519676519733289124647883836867036555651261050096650523999170957392973854003037597752229335632134850029031159900519674266184091053426434709413006668511906871208557283645523065766809182070441655429090414861991616351053181432035920573391410316269269680119556643919016230045725090226478939213647671246704745544494913827530773253452662263386136648678877358708564685050252521166256270815736793422178259954029575328565996468326792926377945739249937311902374270925522373279937394470234956829307893809386840132549275526942499153057593554758737823671459446379939801902148499549775389780328622654550729336990780278523796795292802047239600226124733805936367934602529378805117046675602041632393277883930298207881919762396649581814194504581098208836420151965107770568448760417517167729583686574025629787748327942146391165866210418982272752000787683097303410550202301017266408107479353126404148281202810817298264921650050033863534057877769622477136611620568957034808177397498360570026576038403755171513026630241396732639082184760966429379908761965868349773192225507891692047845249799565316516374605549239893357983645300798871670655684903415108287311601425909830349222375041638798367709043510677150840302719969637310648637644606561202060671973233654272096894906887859635734935821498989964415531231127317815976102678926652990544863545942010287005562536478661999107792159957492877362261038974098502360260754276558966264366682269513952086582275808733056950232274256296765322977786734786932427611944568483367942794696300703126604609198352266358844221843269314333317947558298815462692807555161538717999664420680434302333392960568831195729807051223704053470818129873086615594680681617766388540593383315665230839369075808266399745401968355603760602125285014065876183216598549390156950368241081276204339917759531646659742256428545390012254942156078265301166288351355293978669749162251658780559147790395304038977497357226369818723511826729214546518787083174157374482919305797566021914456159703550324844930866303329332135172713778497387397489852841565249559100092945089782923933528382782544301964188128947166534536996896965111041303218116243655088357648822800151103454246019302115935789663107064755628722665709937824109125829211829551899917261516306826185940394120908764935827766630532214162668255107189601725726121500535633622282358712225867270733982233973956622610445095098349072697241283985117176136017724327258436920100635990582068945380416145454468231455732103024346444656479349980300770544245201360820699037913684903410521170044217670200136461490395106468654528984543056468655170448769377549583433039608091120737104816341023516609060418562580926944051457109424631267928756527679398013437305095529113929209797527373592559365948620690156957051674306286422161268332840859239730425467549676011661160770017023913445204832911752181080246045227750956346482800162996560619865261038246837666973247038718135733618897154032271196624265904580884241608425870695531931049413365905061178522298753208208660075632086081605808999844984966626090840280434276762453025011302202076653310578445215692557124948377485927512352801855710024787116253974910460098552332467548369363988663146789335557913317397032700842533550392659859811051445332527946404002559800262872719233742003462342762970905703663007923124586918781011960384448720779564080397693032195855670202657945219084817785284086528584348087198866577746117534566231043117781314624240915775769773819853231694480552843725573217556323786111827382093606957298387061770629286996906259457872979702989384937049491873035552410874666505999827475882105643895269746014987033560455463776422262598271531966330361126779148548476441228280331699669010686755135571887556854615732422238034217061272795562435779082558729592575943908739174364775056807266666965835899662376624252642991810145305638433063380457886421271534929054686146135341567169459649457559954843412470098422174996138437872823025748720668993408842852035596990984658817133747281647677491656517012404469822383871545907718559312951103970486887983317220482227456903772351865852739968623932719026608719126932626261145401231422561850798240412668236430582060390132177876899881449671435502680564509113597881194411150737223004424300503758554619993635124999397927361055840833552571839273551000684483938867998986638388745479324596552088708620587076739270811691480125191784782051440896969769905934775517159038631347803347893484528359749786417642299514288587201729542477060174782408711435629675123352895988318473117474029243114858875289003616036411617271215023979074771797618773342649082674442688420963389542566960511501333589551094693812092200573902462114125902931193435176224559209151384497279556317828033990289681562989107882866156331328199376469022930651954138080057944420097907287427059247717890751542499574541698532534095719334780577769841311324152243226562382573532741790802219998558862372173270386146902174573934988469818568971133787643335425062325712262409219069656062734541612326622093047346284862416315285069681415823701753014862511730591559001840215107353774635448122887789320260804475366288580668532514608055722522834709079954597430087835557167148161947791858464166397121599509558388886627166358226015339431577603512263877501993867025631073638359974693449461325510951646433085562382615066918263268703951129455415954744267705409714040068854093706094492246860835213171109909968418073620317073049905463732592567565296877670759926017192460238562064579457072254304941694478160939487558091516173209680550727458498537019316185669351260658156961528837899477652297993447661881049600987902248330737133204173453767963350711454464550658468574143738975423520267650465188996927795649601589444523779360508161735491721225341950350761619164789055513971589430997850564140623444089947506707083259399874452659402487896981994424414917442049593964489173975349790639924722679437699739478938230446643336753070892214615962623315650520149530216395084044139511064436149888850368280106975271409398435058296973158951122249158628204772809980146600694115264503724996219402365147073597040100810096407152937050054415711011077093503203090134274008995193994720084911493937209003662995248408492550561095652712033766183508310804507465522882077801447211896753307745831930435175142909006332118837079024824743118837408888429355894391972286963023829210406754249899451666280701258740913540271929329987954458894032365138293156913283621010053885230695356043814488615149297043492688207817061558857197811062771499018918205528168406316165998300257966595118313325415087566420967982640782055411132607058731055097564154264229694413957949001828530744324441683594584235893152388875671727548858401477891977536059107461302192727873435590852272285615625141377984309584871362447329374264813003776941367008308247129316810085390269316080204843337802572420875972068699312373356758807531576719387614586893852969523822013920451301682247982219354045563829893472444782025607281995284845605501989191443832846753852615656932860112604343691860718060546657643662006454288842995876438352943138747808661667595085083628087335651498241105755506354853836119249369275959308012376931194566433260636142255314762609202120563110422978745952306003085420409691758867967565352088276032167719658341115127350690603669489657326545912853053247029370285572241170459408126329084801386598993379361401411683240321765317119901167147652687319046571990387875173598849435746986057578535658714038412699961878405340203475638776243458116089690663010826926497457632926567018885835149641860143827048676756347160142474909563065353098697381915260432310931647500246960024704394008079180995173014136328314334506197292883414523264071192961789636404464130666265901160135521564902815149141246475840692627792614238616674633118482670989834756407921806399653678826393114795691904653667415428180666731121390724752112489909861489800029380308270871614584436939491254984658856201929992010581018701357477810929377142238747583404460365669208249261364855716264031339156216714821273241762506067123885264723367299886654215736974605417964992678631654820359344113531264169737004368992477810956203981138354340323182199560495407331823655006788265174460338160256984182012241554218514441703454951470254378341952787798726928025472448913012523253167579443956136643297079737133679690141167303980867333630291846804605561830285227193011991158006388712221122911624611356278210869011641099213866026927014018335758016002544806432724405515994280377491229890586065426270144572839595698225960992966036360448498558432547531699949813936340355345841375680219491090661777139079789561597861121764498646775500393363566890308919303809616469504599019004956359339807550217768043586187255529743038116730464705442988212828881683953876196673799915169585570805554713379258668281693336879265044014282589662549658346063113506045915918834066667065141511722920685326231233461300441061434809435349308763364215795493103287313876342160119305089121523468761047019977872607210391898447824399671853843761932923680919866220281098292974224418676917739680180326942668246250150638087059403282676022680672739839176157127073493028891032753887440522580952186163849911031919655872293236643844441032621708332921602981895334395410789575833487721635802105371231889711408775896213445582584247354321187266702437439981690650557140277195314626541560777524915634034290923560790042500593652106444973508551074932081147224060577723423357875866744495718477214853628464313361702979615954078468637098622175924205413508890165857468201012655093358382165516123262965381106977994119517774526273694743668645462031731800341732494652024549948322220455092050755864306179100533235811831952904620378275483944767091215554550976764267459736871734462326416094379969520767207723184540136156939599944250086539684155405452751740739382007379749447403877926741796223372481000862684872913229227468929802909304900916917774497173592448144917289252349198726441944182430926574005129226191149188184983283135368603216931116360879991112823303221961191842078566866559622848468427152299665455308930235040855469315259007337395361210555634212823283258017556134145281749371725402476429884954761149826946042823679926993991973780126010723877387816700023785580853921944289803270624574240036482118204852504248585512535993565300134871438039103284922450541659044657588422924280504329770630645142105573517341948359768025331732686843398698610349258490240797104575467954384724969882599972932018923656737358084794046491910729767769058697295363960506967070746057790054595327235890240616436363798370123375663255682238871206390919128214894438644268163347752251053496944681233680296050474811952813103261064532512219765797458117100115993740093858645968517966138575879854880875221130081285226138066230912331204886705581956570338243705311614726078360614172827249978444495618718201369136975955563850109054757818260154015108230810505366359378159526570227869906937286165737727963304685265288471154895097116613858942820642322071767781661884673892458806117979504022710770529386062852339028550683359699017614351859981042798551458061488142154524926024509810468915420283859911353179914488149213937254097215974354639106209377243423762775571785220771739478229683514763369717023955406939920636590350683674929298818720937188265053014573901188692355814184893260049094152075028912914760703895344696836432937649073648561120220662078673311913781422919232900680033066147948058307733754270670002503256251365333854816310516377280979926464349514423222108392254829042860510269429680222200042123021948371053435841971565793986419214091059269211487537260060918237512797228369686348982159802254772519744500827521210282001454048998760503297377656244815031958716379349989554095951968561681998752466592137153614394536083572133967030146664348338587781605573765322898054803935839783302740120739998890618705376954790580427188023053226307045116555182539219378618258121634419424586989043747873516645336907325848121835343902171236120315481714041372259666056329387920225238023341390886911420703326217405479476687341384484603102482270787805482568181246773347498613022911925482179539882666028177365365072983990783936507741840984661424421269861442980420357480086114754364302257297670332071402954844677981238488084123596121413826970205868641362015783234518983489664072172926013556654525783242327120709449177284363611285159764809704213407627128826567981502452970889066249350458131653735350072064350605594743380436469539820865924725870509104016843230547737434050775899572530371700302747248144009921474123759697259421549299605026820611262305674983450410146263368765610340176213610524784778574479521672628346712492200110182679753009307222920537808888254784909621247796344378687774046118364540593301413032889359226738818554223994522683383539890665865910594002231968064466563095262231462893017251844993650126313031578617027259605047284881613817439921369315746826556785464287980821096505086904566859322758621629547792559092368729861918451565265674699726593619459932589865351742134580771077635655931853707267111536049996082385724886507890939102637234335992809379265972503587048325078545851721245150654993533428889412752352391355472425435037726885651500731334227935315058334180691803163838474725744550280234025345232514512773403405283347842017101919026602116495493067746202004579931816048846931627912840649185150414769562357570790336046914494593388323580141670921549455412770615401268390667116569038842659444282748935647049386880775597169164976472435931597976711068729674555028982004652673729455932533228021356988068613319049741103403499459176914175071545054800819925995152986378724857998758713653121836585977976467909951382092901810811742560268805320064071293181801772525126516436583450620035543498104071043476451106279607109278893637275225221908399572402360834838573915649447696141894445694487107133338542861392529639126382994666703836791396560291452512585187692270675523447949889572868263487309513201094993233756624656362287890407018258675483331821215951006934824975320641861829779047720690538146146350846502821791563061830104755145881035408699239341728517599262400224412653941126216415598787248743799798999383107097415415183889125389096217377276868256408868085713760682882294116687509091435628957242970515231824995971935799439049843428172195179898643062910878716385171893450082077297633267334526541116815681483161466118654923091222687628091121360049903156498919529665502809094933631415135140270155417884203234057563738084508002486330544995106246750571595886000082861785835774847430029665417398304634336553945320336562261580288657880754285973210328630089133087321513083958326522813021445923241003083145391863428724208163573565409872332756295444476116413175649770940304796861187658905121054672875592640362700311627945917808283911550012463171564866224379717678663850462993497784482027734248296597572409278318542524464896389624044890772117570540388647252637119390436063341771824966184291113800254760231052881889797091552255305307605235302092654504942559881608702741238141983856360334511219315060752743566111835866248870583237846489977378105562661810482638365386696958447715704362765999243724815069295473894086930529361246280742291097650610725944736490042616090159365679551996154340198150556868240038307631284013052662209175827640412931272851636287010808574339164110366449085132796000859450672042103643384828186518663135285695544359449720053570324468928772108201855761761196357704792178866577558901287139015998546283128546682319900810929100134314811767802554610978757249912280190775127711895797319126409406966122700293174997907328116665595949380380475444388860526356309524979583911863875136934545171866473702786806226570769063345825825258701298929561999657553018504926236439980719190179722337034659943665629017835494637570351156806878572085277536192541101491524114935319622784643892458935798093992250882122719244741206560460753767391952454197822465551889459919453689114247685191761648258810224857139514307846164165213948148937076440227263499466050853423764029363414995644262372712967534469194489260551775865569799261382196637850299091272753001876768522824680754799309390341709848953019925600142470031655912417441746356510322110469300060830061395955049685704867307293986939875328077614922684932072364365409790215966604849791968573643679462457375824420555921155094579247211697946377663904059612952843468797323830385184657736448961846538653184757968581579508140869526425604022892634627007779399676047780114024839637137788285908021763478622054355706943158893196376421421656547897973839486558462951930100548826614818215776337090195216585464383591772918887587507198064746851816049001210200553159472583092739019951518305393794960449706750299074949986187669651606947044012052490309006014855746259884265494563982201585202862508925753161994724629956497889689662597739169667608848652932246833226599637700462706473775712989216598539193654653690738012669021052588189379837001586077843373813437065134907202582656101868498714087712437662397771319933231530339791513466598995338779382830295952565655848497421248587081490928418875706936590762280481249736909687827326474903608931402282987909199045433849250314148003795823284597624617534656892239004830173903956103429242765902735240563228575730056397571721678091136065948429335524545304788053774914897464042645977731996336793639265428098254718066408064663091859588089813242440578341790695335434743824126760784756339443662369668474653165888240970184516943844962540343671589808845679651870284483681035550291053270436500574537450050596520870144108628717059567353068347771435427505736568643765310361667419768038481637709238727578490890798773312856910949364692458590946765699256444593200355035001991936329447300748647216462319831198489103574130056400939796346222757975648895896966650469290127086180583407028489313593684456711192133222916583896553690385471832072864774168439444181676268311211648876178490122339676337328974369194667350929095100472860490439713494022882274199181049903744203969726959105480472125465567019813226044104957507370936152169266181199247028833798283589029039766030172554740995983901906054080976258413829448646151756091783171334535913411728282593296352519028984152598268891882365366902162209554905627192672765493809550034084775648412687832748854661178202587737731258359315911845958331737130616852375221084780186651301273395092805565497023683772893128355534248728958015260929412931098135734576766694461895020011113468581515108089210026181298831061409907660143011884853478041664067625033213026536531017481445928524017945157877979339933187028830085427100905997662965866238935405099104709027602614638009135914433109632350712271238290290462573513938709984475050637690953431916254377484099609754344390813763309322972621270204717684993060839491535939479683155951560499284861993794188041149748456726625903489398089278068388725560999490939538626675445857791248181685379909851050381979595832379007998072264594943948637052996829733448763036237442472846380873322135225493696479576392128198776951444909017771153322159426683921252447649330492018171519227054475212681571841026334878166238158532724104514075861750685413310629974156690465144996836401770735209645340068039636073454749986772492265541899433479336371456652025145977553853204286333125533522116479361151821845693905612990780769541640087331624277438866500583289597843988822944531718531454968381107720096940615745655721024537546261468404335445987400864217358519419342551246391514464474620620598652969020195150007942796081590988121873044585365559908090578452936485247341228286657948419623958357977944972963858119738902392594414075721916435908999912452825546031079197896943938562405329906533446088994138514537355309074675831127213742582181031567067401548441327569445013303084448218409045212480622702992289215265070701129840014454240417008118547107445613831134249087458468135384239104528179062565318451070316423999657686640650888249268363368977255923060698404457634555262542838508468826137288730667111221988620765009495241180970777594829887872175743753516248179095161346639245930242294969660783865359585205494116519879185466173429435070638148349953667651154732967161610383560852471433370664337383849698073123535328246745674743144719844440567071309526806627718516509651807724477842806393609167897834451884140437614093628953977778313576908849118544290288344994554199424261447596768375093993987941455402913239974237225272522972228052844739125402509314635171002481188532479032830010435865505241568702799470187855907176028542562244417151863864867633784867329387063518197244084448138216137318713483986048960496565501462268087934397732005955527632293357053200993037847487641342093250786496953569952692506043219723765015208078948124268313853373524372639407659590982467942518206525619651396457044400656960360132222418220979519025414388182407236205107423509622285348335839715233493085003368580183086061094838636989766953341125235233662443934486754414155604753154782653090224759756302391761075391825427901896493437342001448920110420858975743286702058407197505959824495726160625775419960036967833783816371526978575256237682742505785188358138507903580612552461096669038011276108857580372395012797346497420943917732053351262348183865027593851006775512063899082131581771019330434389589963582875120695502732852462879090702053620215080959108178966787134135662962224357207830558116366908789830110194899890061023980637431562800028173004516314795542607611542566691612462210683429641506491338306594064506718086058218201154742853956268824697848820786530005329269578166688773581999772256515668857806428027367715483794506759213117120289389005167616467567586595909426775537109374402977529368087188903996108835982103730376433188309907195665595793964044982179062873095481986087358139992198572916048670306618156694365577748742395982665654073443775099273157157276888263248538101391942368984889407132820895410837813188052254115980963094112123573011660172832385278674905964434645035790719915766188512282174452712724415805161770860056146891169341497919817620139965352681736200050058850236907303802075151369362401196533565881364942128548155962039485786879439366888825706568526716087606666522002995662155679119903713540556002405596621132962242488565752166365345345533695147893486057854389912949621027074097016454774435522906131432051491564076863069141318515826168726074768064377115351325341778579661597533407166088415396579190975639796602842344070001762207071255011132065279425303477498204662516436204543530461045158137988046566513007961977344859945178262962603115261428397731856523719628745758830333721027863013451634958801812063838228524321610721058488245700889684211332523200880873145636466587193439401977542274057251305335281995381347993377477054261904155958310638290548776925940720476403032013404776695862435801251081340198368326422327044990426961949854643485590389184305419302133369903271867813478076595825474408997293251271845267381688854159674830385408286322772852124121636241350186284553854406093826548324207059112975779236662070779539332020845716810867734059282717265902698164768351501617387501774931626496908911438381420495432112306496612719622769322461288068657611219472375666762957276762905939358312397061134520057282398240239606604464159670157005423330716407051845918025640250963829242828052910563853451180155223463696054343462636121321608925853234016161345772811397996912193311888052858864680150204516549097341030042972548211553850010463559405096025607736717141886552377672652427528562058912467202565019969908950836671013361997417586353797935405063054626633452361096597998587709839544926206662460706540995413034729639655614729611404762760625640053808330777926080359960140105936233515779179238057747649199661752268393701794326237281397970710894249272914686962948126930088779443447345561204851469258499909094269967813127264663511521336291825182970841564452224007187515264004746241756588710033522371039121949690307356812231719256049048821267737014005541621594902465182704818043780333019545979809917183535185083716230378389192417463222833557768174368058555891045715684215104605092785679073007133046816552473249687414161231044700249711876161064808059710484921872676083075691884852823981185201241088725245693533767674157691056876928507319941856392411647727743166382115503844842525351085772381875634367971176544395156298294794563843079951899360453639566169462134554430467385933464237722922685800098707256482677416581923590538094703474875279937670840785658218880077563742127493455661543206000607627913972550184944868140813154112725397885489561761626715247634317399493661120439263056261445566678041877815745504052555145320955162317049767087457110464040421602808649824282707953940198659317594661967331791284215198137547287391158434922898505881892207875944455522877973666863809640384072984456419553227491867046768576493060295311617749965429316206728469791783971212352427216086256491294553974009815115205156945667902833301834088927254429538496090013950484777360079118812322808666091838765629246415884679969639365030581836674712810682182976599467440841978007357458701189802812553703020219954944014834110602165414589943238152447034492757229629542926724487367897654486368125794290086563241177038518920807649345369187911907971812508197754047564442013072201396490970410574560648839510089291898027208042118825150153207358880590467912117456698369276734925148845530641155846421375721868298469872733794585699704900050080313154626237473553623749322178664762950024339518895073440473177267961210012329846074858040221927877986509986327053896919755833875926519789824771695648126625973650392479476174747141339592856034942147063857822237486154678568331054841517316316620402436900172425396600351181943598608858512876525155441343230448502582088569964928003291557082013891982625075793348014280699301461485206095529209601119332441194478833780654061484692353331273101845582464130822739448575867081934260445498648193964205220160037642833079776144504776914510295181805092856325414304508650838634791842633015412073261450885948044087739454689641382713548622393609475124086956766722507406215312530930928224863796045070981914118778422102170207350344948975838990820714370089702547200644351476610188301596310285327125024694621281246623911077783170353198863958269725138072052175878468705594000870316460184684933955233530030778818395304710498386085413683228334166395136487057119991649527757293464870395386504079762978872218712135834839100796167814603234558369990539757744128443877632305438873263339904281748089382437593898944181092874728868568516455719391058345949964875124922093962995189530227307174504520014859070986917057898539407036056694204108130715120062222375399752518664866547603988697116825234531185233979475001318477559255352705429025407807750592352402240173873862956687177146259999464890443372163128145426245376226080472327482590134482222270764959361704424773797423468721530295864453406167088377952710777110889101635335898954750160417555425603655013457197879064928158196117091582756613312472781186443193799843073099238694670497242485539300213487432831811475982137582945057642167297414847577231726864085242230952235106336536918604157290660698071179654546903640346747817473496061188471253209380469544391067098269441608357875075112616384238979081573629594108891379480497542354620394706903886961396709221297133539938558557250502230706998260061868407445454548821648344068195981767432278400928127628343069011340288249537676984012541947607674461115697994212381717475409794500744904388765277923356778982241612109433715635632665986127652090831648495743514072394286563810941019751168732062497748644991245579259864355992559379796592448414602332877521556331287149407462946320202652698871116342945874515201085844000196561736006110052957433537057357083850392871742045548817500428362637147781914786806976917046383390766117070610988896085138053422983730629671364299552402910636195569823924216073483610129050308944222330840093452859700436381658592766383222065933018225907202473251895388974145232811622417247158687076712832956586249526860560298320085753853754783630580345530596161126932905910870661344920494149582619910772005103761036768980439745063748362571921185941040842979710692322374491229066109233607614973156770410417688388782646521970895769658141141033369625594951266395827565334095410290925932235481261673690049235760475556032405880289002418373732944954900814264223036818679448989093879208374018933377979854554334072163734837261874636548709399639458678347300197234197941072351413318988522169839367355156462291201786503730330226248953299640439486792408044563601317371292314772657160252445454524842168574774087660002259201384968268913659879083501282532892094440315410286622652851913052343968682600266402097564143292803479965056890942745310481547419513265734980790759132569552600685973248365684888906601942745840115280654515409879197159987923956318483141579274551531323469378354829888569849488601703813685355577512299847687962885920262368916325500437647992202723088057490749293320484952067318064355298497971499715159200786305046245465578828968401225236856525114889341535932627134065088465713118008061640907972767811782146528342443034276863161733306590880208762010149985041495466487685176200488362987858637721946438321868465818603351455446060930594504136476297598577973166723998581710873931404164432710609250849705946960823326701530536948809082850742972243899895423146795055629173204863068429397809236235253435709812195262029086715297531627473286200627930804890956845026981320564969668120846689226356261006180284927611154007258767316647311132520709050535823217530302043249229974714451667589560570704371009985748170409671285769258678725875071566539819658887399696664875313480277391270914644153829793533279976292226463337108215571920093627869312938480351211506348355526682327969726157324638904936558226673461171665218680513538229729196796220367983525249896706010352478544823577594248627355212453724168252288377820580656090564538513900577020720731621072223649112062287035380557076665749643238655939477960108420466039383723897427880515836413806370979772404861505543043904422498939758237677091949042196401561223394719373240929615928090801357953503660227229251524521157836672198455426828436139068850948358549133701470872699491349096307194101355325225775846085529346656195310396814557767512791494498574394225789846067292593378880125080505927754325630850103400596601615234111179818984596844181492486403370330914833251701330289038854302989544514227910097218620027865974980141228195532995575158310974340008748262794415266283894866916261180216149347824170205608145192132419166125667446050113143055581284631785246940639491201744391562949603132206671224892359081680657976495827977612748027735876323270853597600264387226130801081129463523012158965905012123684791642831700281816621804819711895545237454432351624450518278642818351269505964013330846368685926205789072069835462605795308472442062759816636080296976454465920530542291212931921362628946894358113663215037584612760420559029250873603507777256500999899797298849365035357680897163886060696567223087848864643495515826400668755086644174719312156690057761912829538123876729779419480347680130753566120107776854343443937491462759795443350008903675781967828586146226973630184308814045683747480786902146247772027221090083439186669274617644611500687770579691408482991146223875927000471304747013432991766465449479398201432323730354634168316563346422899951002825452586946075698449232476201022535976759424605321549861783717706735595114754458925332501889759148678453736823649333812939782820471168370704449452028891652718831256246698840704091391947502408953286719827428999591823608527497339174405816748441232631064137827080427316611087119020316886178409716786066190330591301733727521496208877603924667802867529436740109435003886814992840920750760432749159324871793958094382299972955024980319399765738464530570174155300819553630279252276227356790361729962775667835702977457408323907756598188861311548064769303977518809796241258855890378083420894477987576457999545181418058260311591749997992666216156048948576021800052925543428253644473228466755837675930371679598118801928148399882342682242221762074923405119375017991064466601528835788070434361744213319838635768950568913340448298002049869451968084393065083491861888673251538728690903993834568607085653415113108336889706429047121608383887550322373618335686811120990765326298776703461006844361427203826932148032856565685997326485713106394000169271930769813983311123044157692043955640173651280389990460860172789505732236522076114172679586615921926461548389111095957718224467679591969906203988257747107623308961350794539676208455060765009440011518849151080386677909168842771803071293319123850159495870102972096784138264444816387741584831696224974527845788236268977848876793968282868179687683993395524363502112688519499128130182013645973384908378293387152067131494776976446244587116000687210284074115537528117830938575039078506217723040079135744652016090293536066620386711847045465465892162463475061892398336007600722757517286100905475565533015890941214826170905485681928821316671147124959766483491166368125743462988840416409006425260610323919645606972069542815010851379574809766227737912027969157836109117003763580792350833441702376708544032017061545902500275165648650835895165012668694033487793638685494198843013046451559644921676504182839791768272242575354731310412410709786982568892442180118901419007281280253594723566154361947408422595774672007856226732104950607234918463286396551641873807369221248728841164325839522188588564302834807013775333083251727972038206874641901203971895671481493720975723293124690679253054056436076817107997329490916454526750565902077782722449968939801770508489647325462760994554035175013430022395630223533855382125165214218695336156201670459257077511463142438228085238838052881078548919039404342874363739717398910658504110154038316500539653944020935769027331633093702913369268704915613480274452095106811097332515604888336577045047943306607535965565068620689934392756532320035020059402000642925550659725624660422594170647445002233588036769488792788250348486847960378090886977844165257766560330855390084201397772785313147845572618633868216740093800566423260422986805458564518726067673233201453435169472847790204749061262518706884583306954885394515027031601274688114542371442048242307552919777540569158954085702205498639850763652265451309683126239178813477098303008039997164170661351803955048811759566308611373799574642507111334736821221165418870312854160897899738935030083855347331360116440159994401504476385427899190804498279978348418068914068603726319988966853435395862627121099296902879415758352035035268192558736940735083874724781363183933811480477932731203129335121734814718163371123007921143384512821147569057354665386189885752818990492265473372782595500474213430280628069641180563135218438828837879181522737918226540972662995188748360658230273903356562080192881036752621576612685400483959957088395688176522159685018978481960867349307018529109954256186089333117933628889589763098187000411326172566084735305982053011602568112815804836721139718975608629988969453996750138855181381057576671510397136774720223393279909047378803357009098649161096025737322521812192451492535271333477010282660141361413086909049617204979509354732653152695254181169868525106402801022059510242155516599759115668009972401520349030406354153236838957798746170443455125688690770984017002928388321307241123802684183104854127994494634761768531250997614362884073446536036754525746238110573502548720891097640486169370045664592688836941022754508444814074689417785575082376330899665044460658394317811486020112728549939455217401674634261011451189963408298155185260199923561892584977715124689529650682602733930924608405063876483739309858185766539121011571556583976364733967292640989477406728950113168861048652384983107372414831044282826021700560331768917806553735422493278176152976021388045223897847398676849740378666138977514646458908853064754163881833659123549525116080564523086523266743542674373963618904758520795840553930657421641529579343050626461726208676535151607839686724286811106301517060717775599124096922760308436537584814384190988897500873177663867981026361216917908242256784523261524114531501654246172860099715613458339739411871283717150363259359524092902940994565053711171447400396888497919559276275595806089284034873232891353526904412665568000726934037180489185919096693237301411732549884890927219440004905427462234456945540744162955758764627169757160820537012220240242277501094143354882107366995245290005358761348722688566870584329736451531736993762470626968183462011293390014650814614840567360246254995129184888874732861985096902413607967574165717130180183701079591391124403982319182875498941820020812999933448824705900931767754026150696966139605514878049854532451019924396512131506849314750623303030187123300854620696036757414831537591678829308680684465726827748126262714871327630878925494663753345165522592829418444432210900168296561016795410407991597677088880476739997396243353603533890887167228940832587027978053521997050199978932372541839338179211173285110025633706681080678122546051548938741318632314439188151183206454804192876550778193673822238771923949205348092816756578738292871743282641574110730483673953829354416912011455811744720408627469487333947178409174631914165970027061770420433354059631847246766280860572481050827067580708206599086359857073600422376079887781260347518010901811951274360981271957722219460841240801932952144533417911985737681000826654705921753084061116272332300001133252696386972326135320413839544491058722187002640751562265193813577148946902323962875255434302147669018662141594014627068331418725695613013622875753195613202441324958990896764033817580325132074990727321238928283047976986170643849305821645893590589906217552013023683389855632117674427487624663393873649900498353747523372427417722197485062704202763134616732625375803664082175854082913153680702761225929773116269701645623473291481351755173589365884520222146740227653898947755933815214955724254595759327193846634065481935514500497463441896022259390107255809687117402349282549165455630384157384104036596109888173058059335295756471744146137925051504607556481947297740311339208349440211450045704720550176297023579591503532393100867320272620117685203244134108431219464532254917251728438983520492881300149922740342561468865702347640631865310163411137342448706514221110897176389970998984696790975766573781462242637541425304703840102861433028264939635807771348441008376731648195414728133495500544927316898439025190532985368538181352707866968270828528787295223622977566260240476733643734516642616466619777177312903449778497099754339654937741183979071185194410347362224122153721639278567871191198758867879817455612372310188547950440312249808779282650460480215978203061796228339428466968762770215631572417634568112840995202622129796479524742798727673575132562330734868772138041092345136657974313829724696505970193387010073186606587793495718325698242277903909749480019901909647521620994450872540436931025746110843485042096266006300285150441041309946290772956514262661216994879893364308627789342107769392437308249483726006164061415398582186522548781622818553918863612452650050609147186221048659180261375341324897954923232461741552601701171365735642373973500471289680144096215588301204899525876502176629630334687048121664016255188297296310321025448669652278257544376961559075313642027104595244445127153032490625887480138650389551797108015476149433461490514683624382038149147229761398805734396436845828907843775965284039309462516052312094089690366687460266777412129214738406646132395879864491289339023961941840971572022383653692438668993812668594406526834691188563903844694590272622669771169382220483584975160195209863583200795257885438766456669610682880495101085390914194169974464083031874171455058221459256244785369717329555646938398167242657970463481598376030178210544621606645195411065541182308520140867797729017549166955390839080872038331306710061311541648013417803223383008151994324732762700935933127960083570705645906407814946418461492793597718810806375721629064500545898740772920481776058429811433469311673835906360142206118350281191108422896523520220070021148908040689361327821029272919318219566187842721993245337855162049873193079384946809603818644989348310797078769634515868058533053488775616090349022935626074154517698531768585133306309506409411396497692880406196261548242699409444471062765417044292429167981876442227794474302220323648390504750180773017092735614545495749317792482320238051595811355562773119981742844531420111997803352387787637529472289833322287864946727990767721412731234969144340061199395679336908225054864736110740270421082863798847290962208751362598380636716945320460232195452859791752487409849092038487266636738141378677211728606199972910880463326867379223467143295265734891343058763545845956423799666313863077826681837339520147438984434346262154560525520769508304709376084161170275766794302999213522435345839936398155033493831889085330392985946750553406864950516181481363184223283313839703814294170345876598948752600641353764513549969811000898521732232332221165624020061817449393821757086690321929505082757029957992046147034471514983123815897362609954283563359349883379041623545763086000116813760897568252933866533674639793511293135435372770305550125785491023372101599690415415127832485890718140138951596579384958390101995990079170759309110488986041675720178849193300625335390550387705656255415428969448479643781561255725544205206412039238719964560884109517186832223502471716770748015094709656889822677565172932979913128777610208972492208540684175031070550619990396312748404543367007400692577674228343184443791967842388738501838160838329118629369431581264418029003051711206394114132357286525205301443927644019931454013815144535244042251813689923850655012074980356839269874204780344600842724786931255518154522375539636100889699481737046703870659437305625093945743960404174755698737340847428700055281400592385949462915286360240505898522443347924851943430068517250592013975655519250609685194071707784086211681310282618480295066112508665298872902788047986127520423903165078584728834996584214330278669135039066292364415788507452601403487501866794805855406211615259084683370376070749933011463944921374121198010858309698708679827891706907552119504609810391644582695608546241787131909302688939954766270323199251909204552419915636004099663581044702401101523425234583858771209463888633823313461932685375202798319947053834239361493540595378072694174957589556823786180760349783133193405170240425476678552717494585075958459482844906427942213549406467065818667762907535147606876010267465963921686541953959532396917447323606402358309680030648747894184288335654862846639529644181712965389722695232805391336178321562513097748868947262177671083164758013936916108840394537994507526787558310358641466881551335400192712538444944638803083705521956510175784159119967433092623593720933192618878000679415595794717744911925334888771727020834714116884953395379631181679840760751862192711887660042979298501627732221505313390299088222096479589651832610379074026772300538423003986085813880715023067265114106666731026146846799527503357068871324007555478585722582994676357008028852891401939353156863837231565701119362245313504202460185822326530364257935399390563665756452183616193184437427579869089298177882905401466714099439669758939661558406009380265747485529352498435024124530140792520191054197134424064976076600194299592290550146126142730969560694663309855314004163697746009460606246564349017994795045134443120302912063276328363455694550915186423208591444762358892105924544557866583695737974169794613884373805340153113369342569911314944992087145428769414313483795216837882296730198500934521599837703637425011056856638414084500189620970443436167919679790038354114226605225174008009765830759747640224641330293873473271960569239112856470550160963789597170309648173748808728945939376372624726585480000780786649113619817905944290981969038405378836794329032634822722998905554258664900146154519780293387201782486455525313910231612565143734181418934054249262994436352900385965848381358560672605091400343437219388794455308268845121915287463069788544255813625436707974728662733336126180497043009625755127054772239575409151010195577929691146117151171395340094525741685702455150775304350412662072607834910302607038441717975177195863976210012496813110608666977893603695082873021433247893936405696251485343660687585250076579283935992653091687446837518902008843497586485482771030350538730163653163020544898185915546252197007238837952299010699077235648868334733344754545473014936266761276302328038556663026250329019886296170085369614783641942598769309215882684665175987035926407397167842699617712858861661769867921225995241147784863853702044564309006250038364079760128558352267046148270405410959088584812472523021003870795941910103342335875886335647123665924287522838253296985891405756843137162300504407805355690088633138385484219297423183164211630378105964099048208780802600947342539691621254660680293700991694192289303942435521353615492620525846323109007793950717411836292230505588526982123373955512682017175470998553800399147722701476623834216975722941207375296064354998461765580332332728271087387656533093623580160322968119239190170388528392227150847147122444212111953932927030787099694921584362166348633466864440675931626995060770103643144027616994120203820524093953555365639900508005202159714891951704924381529665701620948108771122132670844086246428115077671085227911380235279298913089525708368254285536317454070770070976713379563305452751780740634979988218875900475563013513461415726276699975292000061092745460184046618422325450658122665114414073948751612129537132518118267479030676449411511482401677593280015676965000944728628835539538595654097501116431052947617628721423526376969858922513177199493875781682857381890862233056412909381909337904042034607698769589188295746739664816878193761738266556926191244004139513858999103284471872298435903147439036090853850619361471363772244679555708627034487891825086199626409006098552133854482186093244594557390305692216844019729660142261223545739544717109857472915385607164553723012279962447917366740437544867740165484368916967838770176773447886942845758807839749261011172875281174459477519923321217071821225417993662123843585073161157464820292374883238962065010155280443476395692960018385881011214987972989768485724525713975143238861580608759237509411056341128619293910079678053113724070765084132031715092776622907629466507358711286597183375534051464649131355875394037301055923798882093554385353123674478835450126895591848222255845844578639995531413688864161318032805113304534921048128508388040440108701165323721548046618235903278322559919746216764117507954112307710003358029116975839658562516420674114141242875971782545558932858452232102608558099722377333233028708559341153489803370026578306123610653736771598397034336833292892426773502025452499850229112988039844741934700838901217274123008613132644395673163729506932095797842738846933206718009390212784018292214750314032585642524614009722859341952427213475010532727917414082666885712481442843114869602466548575135294163769289804347902791522656804863509006230731216272961946408662166346527707487752136196228972785799486004810071068413106746142854067528089641941870163367812664745348048071600457475358146061247509847133105249922986974652439838242586903993177004434469289831705421242985387886358627892299808700685022497083546070656137048859016570036362722291044504950213709803836854388051160771104121157177933210037402767040835482952599186942950478978282393062245209577892760050382808065378850746754956065657287168084370418653078094535688219925908144601661841611481790857735292375263961061210823020704852175544549274664912861198383241423428754287019153874198858094163905074139490429416464210071809739490260649415833195411018613093896677176535377848678086822969847874754000611045359441642122220240641090878533701233858611816371836642899889888071490846688502605968532491133802289774891399457243843397530637530762523726109050667775659361462680585073579999851586939864654760404778212749624654802240221714516023354432775152469067804373968618468309681039097957949468136237161560661378421103841236472659941431331481531804853760616375233496063184500267732320533228796931989416041525865855305680743260068434488562634752647658572522290419540461959989865518595914194452097598711996128210813699429945519088116645325934637539554727629636425916054785034002828090047403875356434428517391684424142088504889480212897477813677638333679128422687554840940150955627767574353393650273512934880639060517378153834608129192013550591278445451541441011585284351123947817039612119076287771112706458219140822606564915193814852409355672624981741726132351182677100017874529621213189078032907545022830194587836303278180238994718597060014499219800576711616647328013179946036663698486582981727273447976008445098078753117438136875124243072813322836863294052556708325678385207500083386817621207651494634160978252113650176549720769737158939324678866130228231399714523251080118090946763882019838300651864585559228186460278088669239577466220908630839351302925800126924145019902290366393244747228245802675175368544625804714892582427715418826119947858364708820783655952316758305189410783277173036452399872998843147513973059549808895392913874831822082928132295427312789044552321957728498704546319935627105256819156029402022159903354739915804920964213743059868023042045056620919387644765567412954505102508247814944543251763572052323711860409851099067495969753956257388532094604360387155070707308576138634843836242989259378119248241474853164682612609516060043231355369469351974286214760874963459294933627760181530791739349788841105197542314428160144144442855275444698721460904389403323615321317089454184490523085339857385704330921322220896259299000151157501865687412506504253536417412352938996981315597424643031407536955141490130217675584642960544734652097851311381033374081327884525657972978019910047907629150023135165221888454761733722444440415836436801884576593484543006585087828389559824651654871249230571294303980531807768591731484585509392459912915819943764834512554735992786826951152405266893304760500398176760561197403182765344988559568501256156534889536126643272685566737013692112259417540712907962101033035081734841173678173200020882543693350958196161496651078996123502017247219844737392705436746578057079124834125135049163653738807767827971750521430367134524090918015088242394520365992147691591339254199936950718715930901656294619637642838454724342494102103597913510080649086066251692782043351779453488496170789941506434725411493447122437486075821711227491010121649840259102604047644605169122505358619478545297105722609847742510049319683079626735371751720854351022679640068483093343867678916873212234761344644867707166685375991874787511978668025102381989837780165327341191028797837835017953464927456758204978860200461819037916159099214979199407338448676229739671333253246664550394555099167267375416138417720753038570967226164398026962383826536990560163786594807822517601154007788313657144211822160334317086368292740192209042821316457878811507385798250641777944997525708540082268605892412168332979414955678924598726806855904807657639608001574843306251619355630029079788417025362043423135721560788657431884294778594785970154099910561634930026341550606930889649843189727142304293519493703125937288773946830821189368077752121468993473987746177048108239467892800198984373320773417191872896864579572687040428548040967351421344177586147381042913397012379862789138398143590117615458681655488179902146845730391726285953801154036988754956315910335421630429178726672328820291466022502159273987191581908805075535092951688029094730245953291773230100448151648331239861955060701421335220081262067200962598352301311800476484131758516473089584632962452012778988143399168507653608330832456952628314884747178681124805242372519819331352525851597573138601078995434640947716291820930837493912127453093949537041147909566469477517403167227957147552721391522792028260546319767542968779628530714294491977847157073976046930033695183685316408685018708306388813634857696731091449453102812853587100621765090459694760409946348162569928190114120771697898841968552329765429260261772511162993088857157217213387472180246523571906401923048888149446365540327300383701438219003363566320245358684436890203001372528201208782730592854735874068840692351299746507131593142643128179769513510521904261659081576092434632822632586450897098108687031881501784257289612668996624195695856706003982042053518848005125959124460790450120631590178997291500350608331265394103602898947980084114947284506883941731194829306639917328152580112801578393826340673256233312231807053374931408394635917121198586509051160133317717588872084059314414713640692699471398503120533915736621086578924017057968939838139147107106724511382972610549776088878540102447567889351880158049110709460571058221793901411910214931717353471474652479593364264554462807701209556750803400793381793506702846669130747283205515342609247933244243968000492427776323686973638003177904830597655371212812850962748700191991857302321314108256495348996536476803170121993986376358298763610394006717379531973911666321208725286817779224271265518933963424384562913542116436099069997237643704012024478096324988142662401726857570059126133988379067678308029090043407865466731412836603220161930449193946511169193283989207181281850198284132112740913518189842043679828191893385101784840796678204903302217388381566501958209445919700104395787921927747749634521162301966880278243948286831698500218985155505517361640713725918988564690028411382351507747199446260634726336156743035219543519642455106281307574892377036563452996197442269293565085792486253819682210700480013436203082354067309423682161532673037029450220839205861288245078374897632960544452048292389824911179330218022269147524739129913006417184667029601934837186117473627011260109045344923867485612020435359240884795963681985371072262279197838014812159216124984453774615816434799402331914435498887736216390229456004506715660143233797560472874300530672523956934961396614943258675692654488717692100437134082661131262525040532522054069833084871766839446444176963833575303467880673229082421013792777630084697764985412875821986295137947993876272247721736091190739205622807236154043482431240553553608841774195043388024313469629308385025637640329208621826216101916996999649762658138749034704378732079881593479059840441078339541169618318330826523065994053286518834765056719322212442321646207250487235554134218843879916461122837240747452234401659128497782414662100917491559858195004597786426798128911189729814535715821922793550464426050844983283982469704272293651161279436832981664042119143577766098846506965769326023599761696771487166537203416301663401781061634445355540299686879296665191131893987786688718843989466347760557934205020694069386629414155392361458577903481602140264273127109018746554463664128915657899001665431641269982413846991452237362522385088969121865997881470089098610944687981134570093244862561385031179728352821203474796945372832969805816588457373256878260881621569037179373890992494632461469462705907976590498332999647753903626496075097277162795160413503918172753081707499528015675416412301207809252530484395763592877490321738530955243204999761791731907333579839882662645763340926597517531367119080402121325479423952530783086013544324907992149655050551232495113747192405852810098745228171126399127748796172626949776991525501984564006382948815307854903465231396690688473543442167182459571386825028840306237344020459188247577425816325655056736680360411768190263153613412029356201427981477390992066681934742259147572067575967645410808224508760965133627264590775478619049641047662835373937291877194786595255179921999808320033133860849198425849688140616522926698968008131460117336082957613654121082801161564574700619343715872787543115089508165841463784908790336369883138504525244677681708642195825848704454453689022504765778435972528870226673841743811897270341743105628621467430996004097224299867576949012648941112325234805770936045458785130326553235625177085676664561390741914675044687456929061877058752713994646126041262022659628826774669764884103448813245259242389162948475195198952380773366862287442215882621598513970592530020841234378061927373749348223113485740469606131810628059956471007389307272570908251849585796306974886487918433558221874130673552948225842926296941465463877975703938276031369454650803985464716626257925398944646266321609838922796319274873263964491067112005182835356264278296015857067961746711231214830738527297905004417929904318612080753889294812679413141245843126544841059215308952558605322567221089650686280843134174751392305689554794022153160266850294166734013337643185671255126244349861309677303517889454279261462306016778015871043255141835486321063142663317260037192267719145265379664761088561285179250941739999633901492825316493139700045669344022121640543032154868138228530335982937119267955878497196896368048628686524756108796900615512606923443995722107092766146194928677613211926193737471052059844663639928858469991661043531255936196274671319054144718112506342863345543831032705485680944983040193844644315833727403148205721645258843122201885471363974398363981996770538751036326383838879304082942492704702991176066289287911996581772530591535683825058023462538992177423089472636287407783817375289182051458317633874805663018228648148521878152440607026961430766536654222447529407714512617975038071427075997636171422721992534426215161249231447899045832533365661120197531616133377126721850910364996500555394890794761580761641097372388844437412287579195959680372078502489608791516343099073274828220401214824589907310425829500168653321615710729431162266763438531570141221974721559061264488513083258985871095063508949280467056674872646776525676061285572795086071226668243240475620929129808492611188415894667402355791945709744150161357957493134162302377439970567946437415153699454753322381867286075394427566555277844187936376634820321039696850531142925440541940354507718860447493532809950361643619744775358471933078961076054305886323507860089884059901831479246519986013584924058807758016432816278182708485066348104513369942403284256829306168596405795591805632504358505502237944803762419091014663271760137415202152499902892440034188344728584736863560706949367362904457923012685683747173939293642160505558980035187056555144496530624659645267322176217348154945830799892354271879707203215679433047372756356370965924440155040126557524740891963286376809234281895940230735868937576508597869813810397559484827876599635331435004696379548344873961436226292729313652222887783200713423423365880628957285800473217415997049453769446509807162453072975809313434417345139957928150068732943418278325617232385371400965545425717615158697921371405034606050980978169762608211574001627235444223556811107717745431668380564440719788896672949531117296488725207337464175407240700782051688603429539425989679816184976519861055447809765092998411412476744753970154301418322577987634910971770779229102505550891807063021900886990322366339300303224836476510030124045488315377152858003102660676699686912110342069410486202414549415599600313780625076606735394986074670044265451382484759622423111424770726282588249749766778744808336681290899760212681322792047861432247485849720602687035570086724390871801105124763379742614337394546823159326664123245432980961716627692149221955987319172755576220962328770818573759544055204040001657674747280569130543879859621339624216206258440807528355641110671344748002695850759260135439614337389717777580617929230067324992338063802111731577525175464606131541968205204234586673232842802518472515241643760459793602921220913265811203783172701293814424054626282851373926836498343147125398146464711137066375937439549613679228650863821189484018804841347509966166127369856319894734670951942985423813384250506793775841304038426850840513577130639284067047678629771665626640857524601556820046989204340061926162768896145513023746996365358678682173513384104184058341456017825456259761450378450826222937587647914687726637170591584838136009242644179117612652383710093642416467960280831253839938603661742585541714680190931131404367552647861958334468484196251746760406118139016109799170910732916068855075568478229009986553790656251624941560395676514682181718336326318890124688366308118656758073183679393730689873983544250532908630649224736458998722063393653820129259557721322788245840239946029759016084849742719410430077729068416865776538300297325965188038080145934893246780423588087852614006383784838188307724090013949083355804235147580281417550906640999560426434360992276275844262485876740303763914977952775447038653947306948923733871368124874750010886433464297419615471059377936970509721539199592692980100373869424513655634051962782829192010482463829558146497500685114028782479579090518973112356352739550533060312576044520619116527940331839173694004477204638233674248623718718202880144107878916894777910594002907972607968647764450892716531954678208926883066943131602037427929792170931294886379886560098967126357077975829576256407427141077215873587236786783756141562912073348339240593195086533577778698583890052585227033220375546900758445050145842395881177896385968354630800609382978812521057946620508260486848239415808092515860323845876814595298392414952770010990077365583943200655079732498244807042752223539274500726011469743126693025275292295931442030838497177594692350048632351652002762893845774723394076806115454591077204888845741742610300699874361128037800886075443071673651129664929711492525098396076246070019780461678870779332358892838684879439184508139242643373012445708218682848218273644382020651328511310602666143965253451813150743109168059321434688175131290063661153055837967402228796428567143584537253320130081246114306193502837527971857871270038737663762636877893560711875305186261775416482665265977252007597754778331958040847930238664897791965869765164291857164537824272984536176705445723469944352936572926054513988077764260470298563930309585041989134397115436320675134045643951408701800742401362792581798856792371053093207787079037097798180966208518692807173787012006551956689231416214340431090228934745118910999601752775083683731938673693984204012967031836721475522503775209233953408079491969075546644835071432781426612493631440352739703497647695295819006512786428884352453864162657492862283490492485051986706388586002828977148362160477737059231388836395320422393049388796369179817120571015869208980107400308297579617891371325286869164728782820183265530712486587871514128705947939465473201388923175788161051694727060979104788003110351259166800701703013217786501911594591057690157747718710127824515804523945927641242386363665502042171968714852742278274375914931559570523020955956658247020354298095736112792917698728444100530954251991272557420641352404646950094012055670402228391275233811958895265183531485446575608825226266020327201704935846055512663201234517485038999936095968901513749040450706338139532213628752908667377196183214767100728645173231570694548807557491843898408922752666246604543845737632393695369644709799698049103864456970481762691417018217349329634094123040739753017546469458914310888441819702659115399101796256504311711750221895096648178501337303744246932660365174333131520570886925767325676848165512201379388314671585956594780658245637933616489732585033510625967161895221492554023292622765920188113244473047484028087511335013704257170610382775283648719207633390056380184167168794356374653266588126703219050142089255678532793649352787789796154488780977148979863658290966967841637745066420653332997598720278519824706003483762836473047582935986231543280860862956407424383800387851533431909766009405522967907236367549642410266487685112450587849478839376327743022503599245946315149895022875888977066499455214617250598591312739601688031992036591815709985425885500566499881628374016538008909041145091226121505052515267287124102051153418427928916577122172016329958011204320693718205871580877683319090998571375570766792683384581999265296445495510975919314707890547644650866190394926269085655982563418893940108504313918780170013586588241607530090627242081319351998555785693520543479006074117620287283487241963011865263486323404404693995925954008906086884440036224376365115710453904419677214458892162807928265439980677982996661547467042227771894687787789221578730586774835074441053223164852252143809172546900591452954919464296542953592717692503589623889878324110961972006611861013840464152446611629930430277435687644105892640219660978383297653755787269553792857746721539282365860322662617647871237040208826273484653645554466183389241516706952041654284038528223425570144752095643109399419697944177484437733706562778139228885429066029467835979391813541146118994781365880504795478116855748337676544199268472695319102249016466091517309401680100739894757045441321691053891855037039783851573600720143795898655059877799069528337491364586927120744177365752971459510240205768436548039817067286432116406707558919325284971694796103162864981105849892903727912024958471856740350727656784755660421757834439470963782775120655953236574171226571180594477442270245249352791329076260605028239685096698692974538758190847554929279278241163258382098447640115396663499211640410900690914979970609209480364858825297084657996390233849978377053191262669269489593752161542689870186158264887428009873686092054960582730545653980879498563709221005261592127907146960121005570004826780910266982076171242588224824332314556136087331060064311869846477745529363654379784586698944251761783126085962320450532779466837476591916969555800253510925123291302143847507458690695810944030651444296274781297055625338719629498030911802530282718890577590694897987999465100061816045852976473993146766710183566231975714326046036517247218114188313758963312375291336593432667543496162717364859405655896668027004254344998038841781504834388829718837733020110583672266920398768605289754852074907829207364901807355865138903342885238255063692107334135440797824525526020402480662561225396660802166715168213544289810879451130670476031886417875107411867642657352147293017924147923240138470221920317262285718827255044504033733774218531813788233222227914349678948342126572250845301983193058741246641220541612503232972307666384634563614496285143398646068183183209246217285045184190855267735846292334388221273441715591350289630444270379779488305047044507414148974317659727910176875750593049773506419802598075463118329519986914167955472393951208991428977185098591681067110971047272456783408326615155193902406017237926499702735502476774571205458880815677095853449630906616123500320279538935004161538865484342671746798342182955953820597942895049111248051756993017522467202783938073836917717616901875888293166845352335154635948910418232336152606640858037040930143487551719331297285751773608380136249005049224369209879410339541572249227936076618228821756785262395144366273016578044893541613568062937802230655247825159743685911977818866573677292117326599436397411521938655076735485097946599301130819718788018106249471417598380807798888526771990350685939363362919994787801239604791446043721705913129899379455477036881847878645281544719307968871404389832522684065930746084569433366030811703265568848588482041032389483610174871016952079935312095815566332143224936833776269430341886667271136692624336408058561692156016632356566609073216412152597231258912441107733768688537761633074496485654032915707685921563200615050403445522280506186138757131050049092937564801607387706869213736276489536828641707993438801252773893100568805259478859988962887896213508103837150650373654196954743449769932387795482048242769946683543412416344609764368984279100321403747181653329560966023884342724455236368453389020949216050059342101340108816750788965901449686421873871363861485935812027671194512270716328242834051221913556051693157985099976633520567136800773434933738575657907150783342742506562057247811104539834491781812524067640795552732328764564930030863174569177849580803637148207541342488462508257388439151218169177280382187381304343125376417851384875644823526596911682193945494600486917755069080591979991705149917343514412821713076595718208377850712736446708986116966792844395917035978648208650692228496818645439227303185092379163699582670529169960709287196367187738458054533731387052875575036634196390184770365820764309822359234301355684538501100561642800175818007563451044117808552470956904779271266948937467794310732018464980157725455837146755233022971393373783513886094939269313502905572846475869247199369068043616745133066648112770463450544483798221690022027811198927777270446653974734108771802770939409685555138175699412573016461099802160612373071245145792880448608313207565986784905413393835380909797462819121858108993863246721810079953520749214118581974672871695584622349965832773551240686569088663818039563440862722638165712276343413168701007902812526249715136024792643937580971760914695000882075237862235258398689128069083739738101757849767907559584719800230841283337928702537697961940085197469073721328805785025433412375247788747464478999404302771412966224936802236351501790106006054786225366981094006982593628657625464845334894429654251916410906940889811779562334041154172875676810666281667350010271072874177053780692136547263380607182689907491098717198543953643611879127730303716008258574407934392693053717308186011339424578059427190504317314149742061925521992389812875392608589248080614620624777139098651456185887574462039217572081835753853354473282958178547808849393732900505045360423515401699591731697057787785123300134069444028198237668156538222218655650257491211589940814563739849025830033117172557709636976980457228609038965318037445914529725715115014917996744587476070958753009374623642488277928916555891052398675532887812844549081021243383003665609090754040620311238577568835097127639151096104110648065384930500842730004980441681441023722828633237762701127755295596617501662259367410850149610196960840214661883440133624699557665967626165726045075555879058910640675326824454725115531473576270052982601528811326173756002406370103208728435831459152733233050790118263343178021566623679594557223032634705614773058317941986425289094133546671886059105982813382145202828180411393262468576725512397787415825844841658538768445149850958355287264297026733961500903648243925317704966003581674524971888032043408779504147446833977643236280829969775624307681795898195860035814302304157790470320525641913753547873699722202410077820812427138384668159532236741636275194321503029857971107968162202966260428486137878615681922670485378852308115384887593249455171393515246456548308856450274203525455787371818900214206463378906217143396431702045600952181560498948758239677711399575592069818638672752981510200883439120425431213390585339533700909731298616502610940750907876921935516661133526113347950481797938543120234654846086187395439233938040223350647235378047252392856738456789908875450277731490200711048188737062968526444959383662112083618913672609803568780373642702507819371502596867741354766964407103936342131527022890868441088121326053198182233815603687071299917275545606822124627167500481515533192415804827357642573482817670181135934709175211470037259073435466055207925917486943919272421203152500782074556137070290770797529825658149192005519366315222598733307333340035013082924158935662334275243149770136191535061087593116424698109997162008188842853665886752984703291794254280370652743244754053252768806672909172607203772242856878073726123301455881718407372288480069027211455619685317492786537028402931019484272278133648027015094034223850377097574050721860929189298329103191118753790418900736590560994234770353857940333245846490960781916096427848751504774745730243359159079466559978448194017413386714244917691562128180884215421579730365821576123884411528267905640448974930337352983805689032134558394184442802354183387317694780956761867735942062084350897375931847814706095052069559701321405533053063158808134602056876473344284297525634402599473146268027196031240581447745434266923561226748759650659957537623032079452941365143149224398346225813884306438107669854258614950348690026451320138132167217630847413513006388327620370584388955211297231313609877183295448392533691157093863564867809298960293695964454309811156020034848117694641754720642102406137796890004641743036854974264295898139429260108613530308028059013400127906198747669640608314978848798116852370867432047956160943314627184939709004728559740343799450977749333118598266267247612919377224840144124075560975342175280082890736959223670639037578166315256587235492490367353238730905888769755639673682369560614574285996349256776679138362638056920134963544511146701019682924085391150623032833246623018360047232549412728956771278253594099264925938121598708977904146853118098155331657889310479564683206185257798601674356249595801312851873110521684946398446744655068245567478221349093145328053325992389776329845418627893564734419276649701158278925645244869699738840452552255429480634262758702974258062000305219327589174773176842098074286034338514937019737759011789112880687631283938235197966234162546256519418817882745717433374176953136544817419434162398001131602804946523450955363830019010123656309597105235813444618542638761613570993597775159022876295009494284596262238595203220945408241381354567866205855602487120885226150808398564639744058775114872921618344312045385290532652743690765958779121155364924830654354785172377027824220013897514799103463020172672300621480479676302784032458582319151596689540164432259707958759609214566103557597963453068715310793523520094535590521620877616476111937608861572842211545314274068158354634000845468891731711905408871790961989456413900407786696632628798011191256865337112434643366285413714872026980267938009071958488201038491643697429630045749425987443897777459163490766944514018128161125952363640673760650699953801925669111784439718915347555427346883251162993824871779950311643318370646653547250584354428875558932187911534254803031654370344297192268340128939654733023606708000654055755780086571280905747295238214817214874775192320854018232821823537136815751563185228222009883626133778047196652150577311593488190716690012326691729969054786838829084923280077653344495871480189831384565899914468872390371476600125015037572133217227129401680654026493768783586957704524803896106170998271093535944109178711628972909759965875207623138778626549708874156974098793139717619195093855930796801919667521072730397476417170109589078795054990190023953261652799874721410857699127946279695272198403513074745219734730332866633847481283782475498649649945332128452400222918601555411304033129212304593038371874119011471472987268968786725708542479475934175133380606258856512734705438296032885593457780602678913690040316242226211174574134894531370802298150662462588573808356868079740759935436126160718742220479044586861539284810975800999331150056319878760469565116855034894677627110264629836032676426045220496158713561617826842367728755304344680507937416112112435716631149488754363075647833635418594369767439151810932826592574072489836919100311386020157610074781295038035513161136889009244967234541980238405274079563949512980898464229111571213287033341963470190124682627547911607394936968150197187696483900853597764422632466329436341506856172745343183819286565573529916606032510346072270029631998682279073812628008695158110167988587212901051402660215766303016269860914036977847899199674012147016983726230337603120842035761571695339907720367686524188637781389016406006829784660047871431125767159368415568480907478886375640380652650091213499696941167132101501136085814419273455521224804879291545392370422385811434918830889433567797132113488535788786710772197409169194074557514081067232587376001867776364230568236735727850376165681750432484173570485598165530834967592171648785213221397443930501705628754128219159599460739959850413151129265548291379616119373781144610390619702491852880231830996109179120980183846799185223562817927052642761811413370254300100461896122207297093037715633654050347271960666110227559183874851370760708567723764412978706100322584358681024940800399231341626173163952429410652875101182673742227130727969143875388130469453201635209911383978996300970590487458801114621424710493774489758340659091198828234680472261784678244856470450681710506588034910928022341156980745500318688085354232570493531944816338566481490331472576442941122772230181034156358115450549206267339164268042415237699760988433010670630613288005958831761232907567546116554175374678594470372267867078942897322874993257430521587396507270661399701722129941971644713123089237664403077742661447336767721411007054053984545544398564648400457458758526719374813945777307967486974153028918272020809379993779560482666335842579601753320122403884552142995581198989845858564051410758876335797225516297287979135502248947566221715734106284178870229709471254558459925398814186482242599889236035026278077071336869103339099658092237349970045523335952056647515547931069787375995079055223550336764078777753378204970726539168909940933716999285997994451663163407876398846527897365846040906438541621521337262762467458924659439875210188115985936550831783639357492083173266775821002333825824010897667081203831909376771414059628724233489496198269943637912351222794219947560762557835646995373652535520628063923901844253760223005351560878916281367855417392731607519155820636750302554833241807972017667473403302036966504937728386714812970389160597636435145812131098380056414623803594424628706411516131830135048831827288972008542095519201535954456970088503186229412343417033762466695069390854186738852082277911442744809345425327152306280512242870760955870787532235456857929151650895911401184479709212301959988769744181937095608462620486081809443247288182610394205495214162051829487151428344396503927170355123012162358239012077665379046305061035619780496411414846539008305793865627606345308746928016779769677867241135765280406535198920194539072965495607462483029773547987309890519356874967421162361999581504586526648742598546726275945884694783037150743272046224459259542193751620053262335485298517701836981107050883255158492919954036606766720308710323219045800698700905801503679614053844968605819308573550089226465940325207008624331053135362821650700970905882257040918047436542920985618763406089285980252459591305138424234589067690268286670171135497568434760212806176942249155918936057354902236773696715366284909983842193556411364989244823056505751990136530554655370230095921920623249484852158769090593581832940273373045896009244724175666296626557766107665688298185419930028294427805516305022062656492968807026037556740457104263498574527662848790432429789459074756787787365642948507721383739880795151891529222554056163738750775337376442616498316327662351905201576268356743294210272259535316974285784600856401729576630086464446455823784550176973731566034865788201403026810528700289692425405561111791282548213141634968146026133945148573202830876319208378563512514977675659078497730146862108103960404441884050051764437787923303544904213661082746022666514717198923204471691388797503462738080783904947627642097949293446186075660454354853974725345736991472903990322773686353896887452669796352698936692380914553958182831178669162659800571823550016403409835510271875856736868493937012846587175315513917864698884042620811075814973298042195568684785898099710331485884916590940042089881888256625066199304519680753667148087588895782947600671149059230754396187817987129750565667850890842562960068666558505285140266433147076205175828005441843406807728733620190595175540099763080302080850406500924403389806797054006367769122607918878946569929807620304016048104282140513270561096856843108186499493793400837187798839330748021306902474604996788050143643240358792832706280312406505678513563434198712643381782628263490616691427452709931922019020766302301427262024490571798657799654319277266770280212368331171156740561611795580883550543683688386591532989187243055422563364997676562408158577364607181579213116823760924345148526580715821867927546132047744539225316828343629130739086961680892092852500088150144659893419466256175187664951946303054675799022345458486812251421580227542786333068712484955805278711874045364945377196832529659995220058470469078318768315035808165062973949896421878380076339181122834054903975323565711671679486508415249181353026067601356108533942079503183721174416988665283472893772584644621965367907863106836343806325806464837120742621242001396576204625841390749865895722568498118641238821493866604284122305473858353614572973261679252290396918759355414301916088674859137992963551618429887516803488710568557778691543411697544982193355990164461085454094125721905193631667131164652191365546192362895023406775371735305706019227115904547455458106325575146596960710752232486465882264783968728596741810666100468678615463666936003020133643929901817437356217416576685025760229836258785063591007753823264628496748718875662071053240187734301674286878625904009504815363592402840602729743855751824348667425715600851478925731969603479839567506668692163253780967786029652932848671042622617245199695985000901181227560878453069211600613754382849605415205134385350791267734021829847338050658042869341394976956033280887571155237145855579458721058912601833530770638977131424085937804545422868915588258310135828111912391586594818301034002370555544136934079413047626932175681127369578258754782916466140555993885825533749702677224283229444222667771648027432826371905624573131497164921296819283379334308152091125420206837497345588673289806275577942340661562498865633387302491568730303329334894036317417501801886227491079345225901968371705918011636919135540532450986148040025197864328161476328084495194516217751827515025061138658601032221646534702274304799200713101890236277020034037269159113280317822601677594436699232724688590909063888675900390368297756599361400852343521207343053898148772815391093353040179849737908454647954108256399075477141082888005973967813803791170688589376672204448273210239079972970336526333039093684243219785419259196738135828722672705670298298228809039898389525168978786973540537243276954560885319147680422425633478708840665639610072556161094042968543507392708950708855175928577683880540598609100817525232536993824747253910656113583225885186284184178329426467731500816506200507776901171117349929202065749361496360376511870571572836363671928608862006629499214196983029869568047161962792674496135775585025762758176835846464976187610804146491785582615608634583200133172188065750806435135318805079957688622160181499895260769690610244140996654584673275283844122550155287728897126922242751380825525968608538210007302810364562759414762346294728222763205459941528131286279877619536875898860235644499105989424813999496864294589094876209552156226857979225454542592482131830706142256494842710641370399619275789005073312007250708511659642588147400879075825620810269521970464696368368463889897433778515794847994031034580153859863130709207967876735983857148811862835515419649865473084586456324928753248516707713124874617905654041814452089084996776784126422801158051082325026575375572075712863982407267995256435450082044591177142986743545659113834840837864647620589809216384098953497320441642985873889938905920230034928967030818357000960970345019369381591397186333466775270561228281228315365061104036229668881641922325285901071790878294877621514757886990801280091824818563503635684994289559562556221681913457470169421823983851096818162057988847750616312354611302601835768394061000037184218151838185597375054114134951210500904011640081933712975902959264173293190198005183980819042949563404642532851688022224394765332214284645670856468819744128639621753717997060136018159746616402310801048883899986126886938754259397187438086666808688302721168584086073239536497029320227376345592198887526627415295061097067716232801479729865447800766892127364908851557861879994286101993739763205377198959551128248328717908925484367103390948016143353785605265720666832595268392277860870746949355405796483245681801497852017896437395377956978739788223460067210207010557889186217406217674584322986480111575708420089138279096200664960580958223903005389797505431873092001960849456270534834919399167908087528354118752109621154940954317707693081793912526147208807633108078608266765178772302730492211003845475288826006277875107070422829422258065336510918885948333742882010169531158703244412737643768697127882984677995971951084182704273146542529519255921631590411478114192198058719347651762296197761712932998534725068034554285611541408780236717505920175264792880689991059437319036042605794731342117620765323771875261210804842356960499442924597852463082238636685128520521057901700476749421284954914187395810131794386220097819830517936586508846087737387099517142731638136467080045726126137501627823501825420242571188221229937075190226889954391051346624923145501727911713895733945017797471724775407000544894676123314829303097368236706197148578436404919317663535168644559108051218674112397139284414726619638864768402127000536803490478778815315245379722344790297646216845147855818907630380905880508561047057533549778149038893758220587333466618923991876267809906955531571200341998779291415418959339421678481379636862548706977912899971458412165213935923689334001209193988285674826908102133738955309573909914268426096715161784903820817988649124015486799473597699916016025055090885579931004881607384098970110618180168698536323900951624665721788176611037208872339422731512782162340868631874207299358619473980737835699028613300090621934988895727751232387376987900446925469690975354099725128338784935910264598872134348566627836626548989922989094416381846825429193079518136183542467047025853588159584634195842721194824224309225789276330530090242968074440080044141759465623262483533001991585403375367227743796297038569853525899000005835963182895720269935562156629114268325295345744760662400712287057956441058461075398726904698420122617622340395073300326664388601327358718361604847213274226788819875568358756392208643016330285549281203815341189181474822006696516124691572701539765544763784988065707597308960425224216987440951883402140828854338154344164471085418783184371013302959190237474983423111517329982562790831654164584875707510315198889737196714743496975313820785413973380289932921594763777724467933980813633158429087872448681688479368673472643968154451572177055316935296753976229815365995533150820351470298353313226467170030413534647195078604023085939553273554849703079915219713953621878834659466111292068264656939430167411553798433113028197250490676781970919074643839563935873487917083422725476000426122161513167893646313658155061992618699881283991752682405628457961151354119029557364484219632708944324090561669581967633787912008704825781170327818000283216423250163128236601636826470306536675979827875498312760190351975072735855307414269772171511875015387531720423221109138147234509559853021897654125366737774338852283510726469656227781669960268402506599245383762477184340237705951859279078259669792916229376547898994315175725509099059245841494809263921288355157583799806704197431667493831267157000605635950551816524205700139458819839606790733578223845958358816549080137011939344127883683109916644522233928825013805323415678821526662266243870119787160512225650005180429993170044575988550128203310496189281058113328380792887085429765724956870926996317276785060028477612275534795251247750281568801976708147049323788940551397857729695864150178478645437386765551145046999589746635324354512338787244983241960309149670379274006013533444262477342590233201263208075120355590152039857233764726905482457915654493601440885285972298836411260927772824787995602350367436621194749982888112154681082208395555403991287543386971566692600837410604644955945146813367311190405621491845318297805850336758762147186080504656960850470440717356396795964366294825901144277630729874483353780925115424584961279082388512738452380171523765026433083362731298106079542309106983131605574353971424157343214701617069836073851298753298879578746143373139377930484392475364408628409540063504269709224601030763262056860758412948481983155898090877771452057382903236878035078401228503475218834008972998983796840636510490367321889766976262571205318608832725092147722339392439113746965909302819736085590995879461165917688805893880423101381099366690631265255264809616481999673858579968870522664499312834789672463423779689378841320118991964915483145736474180432025073999277458544031763984445212506070396561493842872467027927757446214131546263529289000776980267386032501257895814297132201919682262976931104896807897221260575016741739684915933138597548908001161263635927203683558965285110493112237025616010741591432167522854260178043336273757460412180504480407191781468988927846707779716677556192285579240465754517907504288992565140631440358856511930967329594229079147065824477224993086093195110104473449430198084915720218894147873221638454486293110797253040368681660258338302074647956935499246661813297118579887335096333888106294479243857936717095869743657993031022214041960528190517493331080061891347477081450712113649785719768771516280165204580525077413835148478791150528370456556278662560375306494529154537622428761370943653510754720203052772564347409345341125732585828569562019466305765318944773143667897382632924176908064964907767419397110399630849228736053553124311970979637253133737558817625554094109243212838678138684494141796482317691016658498982873450040486415989279109868525016133515889095315104532944931833790979649718572914952958569166094269269161851774400634964739433876309087786706958359797393347623588385011374235961396080138408253881618661888898028276243652609529652166825638963500195052526399988671939694810327942728454258935229214604325585647417817571307789214339921450939239366403743315690926416559649171723498223880675870838726348381142129821740316800512175615549843493506842759013686771775011656630463069744723584147147711930726054277537275921348041882461349219752995319744317232270023350496873873570223709243463307758352426824315026690203869159788844541263565786494338867438957467779836045675416078478108586470863190912932412128901611756632652059902417459282911468563140504063049914495323554089720034551032058328085321304502600375164203594911817313385983748512370693091247516994407075102062670073708052701290399930040477748074265229933884229053641479378012700431291449807493003315802946871309213276001149226747025380212218933799973903697040597109258481196768629612228546414054480832953020294772543894256153102420899610903721109874041502660992537028298807161215676412718732276842801277832114871939093963843994453398235853223844353822056573286145768612253115225494728509658147162433473161607782423914085902130029988783646873400547365167606860141443570542258834748376638149706503096044124311615011059671215043361896279455703306214871872320699069652384387365202178978544549890682805713576976898775568439333165419571140472784559469212203611485108169635471421566360497812390369658530939532682425034592838131213826139866277020288912160931409619344189969689832127371789369032368156147542053632173530026237437675997585244862933512267390864322804445636776567190404646495104806320520094941922831421887676058373984463549860104360222287734726978918748395435548576638024524097161271286388248138692707264696264829994469298445620864561762058860342992052321507590873625416129669863048062115431858163505390343785019045132315205336008801779812853126730003545351632806048811993038957106434334472209874528509033948068459806862454294401015939329209118030460775839338156536083905380008097094111263706084967368442732693702327015612383752998307655687737342209826932098845299879431876591214353733251012917815319373449491637873923066864535925221869763717224745746158098321798507898930861899733193319003961305045623270916181770512307155141373588305433479684319737260735155823414707348399106806585613076323838481086961194035416169981843184782626293382020771367291282608920880112167578428660319408751107384112259916691048805763598241790882004056622166517564250937512764787676177520381021296127266239336184196560473266386982120018193589036158073316783348802542786519983136375494925362621321854387514726699987965320370626551821773958475692522296593665371997185608961054939292406316941720566286935347780692665455083621865510167970268475306172190962977481650783528746081770692412862485550734873234758973865558358143625015593704612985030610054556863409626319336501733813200161586788641782120879020475385548326776821854710028338506557300298009925491631865825156235187454324578904139498106706286630089390861552104483654379893983569731982106538046620670681898970945677798491014590788113003747751546497843040249778478063838222840467456841046785840593197076928549701556922938272845817867716297448258561801711918515495009701498743682253171260666461346080421835986707106753512991407712745767043228883067955051517211138823752999209435018203388264686418671142338728713893215696131700290804534247832719083078893718463522551077533154499286041150408402220530805608060235838930754519845424316593145308197530809336119735456883561799790986777792271138764495431867319997955296490575335037866697738776540422311900831248171584374014450326486221243012487809072530464366033265639486623005411290457362831116855849725936542222768348291095100689685580446691019089193478382559429670389619869672150939945649356500448499056288008249079365427032405434735121347668618223579427908761585535953951284386985166586349836481245667237528986403319963297737561036528430702571992066924363708006698064238262282661970595243016110862205624011639618108974618186474748416119900248177354417282675900470556455320177138120783013166803212385482656991149172473247034451961318196200915808907649381468163394034876420596886673692592792326589451704517651232649798957934727625732137839967510532499631560170213730680493214796083636078368674301240880753955430335798735003438405792510871508744285782457579297806183333962003858804674693347066158942933798120742516506184360971190503508751936306301433684400686819208538316168452724908684681845008926105191320300584053638100815406101396125614140072952665823377857538302927503217624438504249914875869307388642681157864581773307867458723419118067470534342174221513177303404998658040779191374462996267180403008228337262349459069180928213136615590324320796250291989770045903994548849412676675739528275914196141114571175245937347137887643684969301668876646499824512575021696636643682178679643058422603204867138332921205505783518366926678538352620924081359089521475985089775620106876959728142132505410943382886979646763776740488006352133594233236314366261917811701211509617534457166782750335176198522790817077473099613069342422335039046296770883629952999144582030889462789244183377576385731544125062899718789993349052672186273136509330002161490652018266837061637755818034801657861556880339667870951375974543487323184270853556667321619273955744479911800610547503858867838202691807101956837391940219046531280252834200682506288728579552297675894675611334513129329772849386952133981783848720384211654454489451749157949480629654723625266623912699368552395988913270945608323095164153933857758285512747200138095677862091979357580752914566791019927651036847316820497651047776150275818187879990766409201947130513311635132177818198588219296435040123550656393158038956282369545343802555295626939061311145565340708951610144331651258012720016981722322775189524155056606825085569212035483028504453670690420852040257147659913534883163574118894333187270623981807097362419538170262872941141451593339374707554535485373024173881672396001096530457735811651274401499164646091037524306355332391122828304778198224464880351116799913006080428422288348779339729602771908804940819780479130269787477469311900801227425414951107444549896465020780559581120289036726010968457540676096902145484317579704368768643232205351970335772928747741754786223476337255306138666752656892348115937580375594955924402846640048896323537567515066351775376933744022025346842808079927183243852455705028277364332733576172718455106368554738518299227837944823652502035833882289617332701603612232245597738223652915593338677170370698708716747585147772797045415788088437968573289338217955516791317939162047972194611483833635155472531273711455160246694719604729085672563262802645632287883512313372203516089504247497122332038647629455414707790707135610831384140246775997584411538603810417444569905834351374821253411089437423904204787645757371693766556537511195331664614954424556404140301841800845816385580720913090468090799710136459549608481009242467569141575464709182764117887168685846664842396254622009657742524138456494677324806315963795928816606240292458455334899005138650555698673595925983059291193155697956537329939037935142011861678391649242568320536424707884688843332265508173553392321725484507532950215840983422724209471921288659735631224780809359979563353436524145606389888001776349938981653628330650944124431313904921763721332300123041259077003499770541775696695266578618977025697787380805941234602902610753778628743876891162747245865550730488377944827371789278042825664060438735780945361127079096013139190802063547539262575524046030936314736245838453280373644893722600888443130126275074729941085204946868453840431779328609548869987101562071657356428255912857390934767513865687419021676516371469848326937529189168115328613522432116124989372805749762852588765873558353550387150089715848601070408693507402778667921131062783659961037302246738899345596104525354212497293638486917193825734825343907987009854287042657662777067377782718991450081541971526728909182065793380176020619728614087046711218379981590542136915550115473290910391238870042336126866753007834543588658451309244800638895356210707491314494695445152460953039626525000923428159406639986746977665890803795573484163734661479528776113026793392349644459391479183142094994021499755589559720954669290128513158784824026133050796707573756175884536246585738365777080791202338466182815361871762620279118701665279981254490940388095774890747696958300059330528903181697168173098422302126531292476445890862569927886822938571907169438908410191601993823192470990512801218498665983097720476146860723819895273369898576839870737251912639194815080461086556819797671956161180540192496541980962082332521302970995203068247742951561496985194688291711828993217296910608124230472538989898324481898204972827730148978027295468942898199747559791513180471743411242549812669478069959137610661951492800783382637480553573582938986266032050372425511291314071227261156564609501990237106518541692271045010843339953830441410265086922987978825860230972145345627315677078260664357388480009073778927239746140761864656682224472300271617065705830839634668087543204425193179689681859062353822326297366382255827919816557638527230806649564522657143803294410967075292821604901143263874640893189062204001631808503946111075765225183141070687819516804080342309458417786679607971184746267563574459038658383647336771997917489075796751201604356965536564385000520131862668661436575872179352865696595200624223987405011237183649213223777603626997493646712865668569714659041519415817079459308448406930273888022852131580534849519605372822457889188076796485971595698355018139155501496155848752858256484376729058779322953799505628610343226264715136060995601712687404760055061934173414351020561003643742765354946972223859011788004180235971447798261826763635855186480333475805589935220376114670656107428023064257126780214648853786161387757905532818095108608633271052411487484637195603271019940878459605187843628539202112863767148893587765611586919380935322933436119941138078884609255910458793013726889175272819865248697995056220880954565849046035690656456706410498589632008325183682273644094072415143225486476509074427840444516982998789544202111622217876329285634092711869473436067368318003452153941358754719716760492958719359643650748986158869136118631037799695983844278089813869457301983204310041205499863403193445804946850828326761020592478091486263034174367859195800814398052527684330760662856687883162788278525225758073320621687333278419667344797417970024444111891651679869524958594393849252952125012234372618053734607071304275088224423317238570047246197808600943767766984082925797890530124313068130621920991308336013131734537266783813933722019879562169656025061390792947749904683454740747778075721092703791871846840867350946123687013488398191805127030477929190504642165128320220929377359444932474639557885641857348003371031983756891999427915809386723522279654386952125552828399568097609778220687839012237854737602194804766029313426494629457195032872597550753072068930564971351148523357519035552925531574424688968522452222655934259302650789767979231886724147454001225292456490117142701711128468543683185706687184912203276358722871688105170348857375461997075233455684464755948569239250949109605083230614381717449801159496361350830308957224909290382277530333836959847138791732914132163569134110783658021451550937245881153237910809743360667208374450995846508290175262573339452613946417627667207437504107870076761695865555609066608911370784492121062888211573074337797899305214232103185861289376686324725328594935817544107557299032872304909475475484096614751601735134762874869606815703537106742983779288978234471992258775538305908205797388465101428720415659231055023054527878789000988012925209779693249291830771928322952693712110257560947904358797657220464447120685119177755497892881374351484135611413303947856366416852061509357469222089564580349963523220643470847117741935181447294298251034713587908767028782971679288753235588737707864829772020497557969417302438670337272185773348610755241770172077090425940182120260755173081750748914699810240884806800987293122600492358802270308776174852461277178064679293969605017907952222470274889981095189852513503357519009314621178415286657836811275306604535830671986341981554359132586763988518575398624232239578828565006275270397996612583917741887947638853192327519478700705068171460876876898438621907583213855877731561831283383400655336816643094569518476952716910701190223436737008337800045959559249693727283781820212472114287397850944572714031348695762811506778555134041983021210848425368292898185234914268631977727918423749005096094462432427660353913970693969698319669646462992849946762143497003947897639867837428020291933572181396006253588107207576739382500298743394458784954957634220692213945916762001056480407403452051967568578815387400343225375463556842209491579599780176387758624293551185370706813376351150856050700864651065347124396905824412184608173088197578040629454396025548810451276134777982098164851205361854308596081358906230625957890250232926016045987755718369481001141393629800189738720696635599552782087441908054329066696286523608407158927541375419088479514891696133354725092632146956598719382830226345812341855212259590249959886951081150449712597799735190217242453778468353354927815401870559912642657989670637959312793411040575599994796910902382555732198424913089180406962179519241735410250761585332894038835456885657623708082574290806451630842607250436741279781283113812986878342517442945291944218879843570408822030074397075362447118444484703777012435387685354060779697430554977552389322215871164361123285051590330223172162262960897431103239159373845670489311166155681365190237933466457789842721308052730239033792114330528109184983193439570521760639861071401638877640756429346739251496397460838738756350863348055382053297228664144447921489134409456851606936406396260350368723607066793109111291330725209053601230129428448079026489577493045871323649596483346955189262802308533650460245921579825966909429303792628232675572895606899489036919302238043793910937401542379241571738746940415507845446771323076522601009892237881950796186905991017323352321095214665851538717059026728474154551052846570348151002145779183491873937575945849145010571299895968741776526078326048681468682862555197106287912707173483978848621258649094006112518344423218249352963992128100459175493525498406071777217665799903172301299002789043743472982441870482692110349748836364258223376397380797313652579394080047222995285649028720358297782187169532693044446283899330575905886265289527714552398229347818067979149597139486723182101671969544847591135599822508550108814764643265008272705956290643462177234869649472192765955487128839195019792976911516603750152619716685644973318450172505232992321727056643557766021137921226380533168647293944396951521642311649622486351187591820854357532680760603562448213112201434967413945118864301607892510258284208697859964958630706472180610375696429229992051137394796389164277373423940467445665927569550121649215580813285170912342509321717941244389299569258982034972704849922017061721233020108965836098171029674513218408927452065635220302933266996737587648290279724146978194153857654717608022413717566233733514257738000708639193173973645672290369002780600532342385018528557180414016150372195269205488998092312207001648758507092222827789734843591191816222108274280370572482032895678741736176231025318433916897265919350498951696696936851870105667165103767902807266555202232380439835212379292705042844559051801755147987141419342842210033751811665716507125551082750380889293332075388667093855878436669802954444985704826671773698761925251628810991040476188153055011064626853720501445836160429555511674395132207915645258995439686417406785054736861381914309159670479426757877035423445203697162560012309102445140664854526124321679157426700018688637988302996406351663742261912902611556189896060886116379163175644486793766016805115885687185493421340890491012868984867277819069367954971016975549911466872092617456913013903723496048540435613703148573555253526836297241205107698105925305225897223894374528554583066067146552746040079846088700823200486341741317906285875030410929925819795879946347481515945599947630338805224232462571403098518673316198303993118392428529078826958072203867023329872868630725515694994481479780473610120972448362661505495983686861941130028363336362162089086867463037081571211754319135226193123658620316922312525138132830597333299887420041080053265630897563230168486588000219160697708161301347978374522086458028198139203005624892116728246530672562766611432255690638640673205196946680118826613798749896739449859279109088980709697262262922570108167120131028742779896802165376115231995776807565486863749838809081664258396636853053591871320965369499505600521596914026400117344790102200004724960810076811073574536351456431986202156086565331205105601954678966521419739939646107990073645064755746630737883375668295992109717081930706534971113924606701409527645189043160710062743152219157656968263225774987284159774153406806591772786166190784071521314467751897496104041299996281370144536094271161949818895251727498863771397237897615811434538195189432433163994309114386641742895414415947914270814175749988614482713791082441345586128787892004455748235853266474968247484910209300554926006054895483986360481739385596935810453079664185611444036625031508825988754761563690698403037826681028811442214698314965126909881763738974320446708283945420339460002486399179717697342569187716595837713744595644354665211585914108008009481126725843819755876517076348026827488862499557307427874705943823261012532235187440417319238092400052933466712202222287883817059971532533102113938479473061030508264656147399933590836333468416622913908969933397621101268841612920103858796687603362242492303771535521671952306660337505898898963083114910052279968271342485014292400029124938419445110937522773022481109603719092733102227223181588971842509794067388130935326824154269198215855934530975159850324137137442207103526319037775519431112449348857606451190103024665433864972339745483262277590072547539565902805359245915478958895301598490469775120845890475261875683241268669852099590213409225421283310987295447564172342604537758534769925015907991726493692903049205641698480317376277109192772719430298464661990668936667057712353706240880824942204687602324833780736137269967722237010245472961756214986571025227114792590403423429019039305148218177124541444692256278689060233999937077420098080852905230791847363734622999795937252103827819965910354369750391685492118776751390227962511808227397813353010076030111841402425555444920191921510646367295436798066524948185188180534353117806946582107841711394973767713821988682902250060634264703998157030362147269103005199327907052789278653317501038597683827980065689617122694399017081365641086996083076298447124905653736400852128986951185305631588739273012706988337826198428846745730626459679072630762584820713140651641328146733602530276455643989624022708957127433530048457467553024689018001126080122678538126294985995457485271453247703573330316840953588259848597444460306900811897774131455232169324054546961193148803593083478300292169050966653587257883031695369817293071493822952589747766862600526353937588862239803435583377773170291339650141151250729912717993382914505835572372415761657693856339429812035022967337826931113329356337204186698538268100937762720444316264010844607829980707890828437466178575699273167816224196351791998671974599253475716759451011990094178486184776433272147574653234900487385015564959695124431515642294647818116094052719700248493066258268824517175262840950144811998300555161825505747681665981626980216905995787921062156674950982604931303704375139381332292708615467116179263589040459688487058701542084816491516352983724585514992805790451860688774794618427043617096209014260067932295771271841525452659712430431292306422277254947320057025629314654224898811820306899786841425719110812821996437783388078700105543407204956079001812371757828583811842639916040828317616364821817138225818889693872630156453256081106290620940954674943480864504034184278229615888753408337174854230404408475552999581495942607238647754283021651491738893961288384870600438479339669053482405722842828607756002135609020434439321388451264961226159240291196521766963960258877546640600096154793473388184064418652461939416177439678248160987535109008006234193149998545910086053386105556874783305767272654589364372911145429601226112170687149634883379874270328892117048427981659070018983964660166452509979911703792404203649352751264892447645159511937330140565347199666752043281140190444662235581938630408042917404060219600342419240626614541776612543610805895033552713011769260185438342985654846173974744905463139530865362363677982596223112646529176980234653440106848704759581083087517582722353767712429540172334335237553636188642796814298899424694345144958797963193634169809517955986809693374664558109673558258613734095067495589708971973363980884875193648630571991315165579776279960237129689832160436030246660773880499416169357949790639721678863217104222600518763628397912060010741585280447741899784403085180794362892100029825418943115660601660268994475679287153238600431649421525655057221480981285728071955357961145253580895963861617909352628992877628003199296832496655894643991085095264215206753583302665572926169155052108894620009735562224155083160553083576121696052516328264040068148821777124359038101058468165839919576529522016403691865090039405684465195934150278654285423587046835905539786824018464006934976493927399098924437696275616712049730096032305642860018715992585289322203078485652467659869107745014896249360631602693464584355777370058492793725755423907908428984143782035439003470178306056583537309119215769515779174547174339713515540111276619178795510068271832720244077840458198251089074274537964700138144343624286236434554741615870691566805260270525100042019672038025684370657865818844896175149086154390847089832625775496093543962885575159157631018385783422510091008064326325660407200075752320402928741226007563795661712381582978849750831149835268129860262731781939834336688751323213128589042492190281521948003446945450993897014849164184779029503127655055207474854587293180602918392961879976841626873442584309605347009734010074983107549510944045589472012625999160392776367744502065774147367405024363945122060064754803652238745107748623639910267048062430320812864878703020312232822245844050217670212814337878447127182408875147696993738551706877856578018598382555105646807315892942095753358542702439324915196070242008888829668034721180133635641426070239408579277759075667194772165980479655017680187699727348801213438045197970960432117578275232214624264303725831801076723969854762665927065270754305048522975488234080946147947888856571141842401417300486897619647222774435491115764774540860146163895985355824399710481247069183770307563381605194209578801767997880125860076958316652246550115007786644519848205134111681612434999993669268834631546841955045615285316676981974068148720075429283737732662174498376792303440787848605021611659243308468554931334869042359354205987013684789748948474642608695714451401234269020131370276039610172265734075615655085309390430491384687973209598432024195621414698594217360802629638694754387648474859916856673616517892060538616862720974206535839103567513973432485805992043726999186840254659702073508245881134626591034061770789987740983068520520978063153762666394513418387538534440378094955749578608128786041606160308472971708462022251679531691318631310618313928942958173747083905099502379303075047998620882363874929964966997130267574249992611499455816827740489577789464204128753433533170627189206302153286134922239836267473793365363126725439322460528989907634838541576789382263321297285331620902078198443675379342375006025606068153442429561611503760539641416906779525649199308920106775198324254459930595558559010247105322991975468942338727261473509716138080271497229567945084719596080964766115975698439603827751090596361389306949032878631743807734088820696332057052466188214792805949202985848197496701042719872526363291211496972125968664621383823126525890044626505514872714150294494119570501496288009801368150557258305833401560936154747922872790004718400467137833459808293135564678713531510371118524166755345523182852678619208343872287214552099768066584244965089520816026311081949457173587900012177969878604184360856160200314595250393896444355365137522773286703285857261477061974805294398179050994143651603172888009938344195355099327211135735248515849185390890771701732298028923687441256336859842236139454074432611408778592909323655592711024922925755677377141651833115021895781473021240458485253626430081740266416504314873497743742214950441822142202669872709937874794289893228202242819491025233580634068482623599016529891814264516887729305093551081734186737492049735947402668794389587444846524999636665511918583907029404037882550237811143530521514884693848907431529383573592991362222287718922649987137342111640005378377338793702628644604089491832286385408137588267984715636399880732816530700326492912493192105621123373060446890045433304836416959346127464539571629576721988245577225779989085181070375669069614404428238990106312527524390646225739702299590151793148130760544299145291430177681489136325312621589063848571608781442443829092359898747437741649481261735800049804754786263960277141605694050665778979088141521988082261430384046875041182115738075755294562429803816509107867759205945318097279099703486272808327868030857980719598032034079300479183224864253830356856563452528762062894709578384316713868529159139317564745699279574244863711745614737357711460592738375607506523575827948969371770114990306112079274248150025867332473382506146942736153970526457425427845405796060403900780200496382966193083656407629853760805558890388735627497851716751027896909389666185872538202367248473752321488448612425342891003534569258399114118158957253227038541704350479630747809004774960413809831301801290801162901942668770677202449196715993763018402417380988649657215904764833700060636921323298447870421099899274006295885512411137339669258360084972437985549482337195951586760170873251472934690534054100227943890467100981933747939958574782087835427713419045633911563430814067576650700266014460719685228888628169925297251326886705355584182820642219777842376345412218563702678707314327234141763029179050120607947282223439431049900962314192304716288816798026680658398403115415676635923359618091660826905202879210766007802373848034630772876516298176722972043486044879579435853943354518257988082333442641920372142815470199604524462724100372660033758333385188442152335235097268226117307767809426191943142027476311058955563285603000309753650183168330911870854928721031011521721994684297741474854952748515423894614048768723773889184062685715220532884805637278860791977544684538541426073315350318544809030275545328194461328834624710471437066721206514307745896828740987995146174820242793680323112506896488487387076903470467873750378030912475989257573478164940483805938611957738127210473270789914023028627323693829021679472884653289310353297891511857769986663495597480599193815743666102582678925132102875684107521375604562475018643586156321902972696076036157067267913287452313133317327708506255761580213499625860797409029632104701899003674520773088843958608105740149716654224070889654253411711977902237725152924637059423552148915812334186391875535592554158432124767045360772062354908943101938434185143834321279780225178126529518444655526381872783475399684033337510922677474778755839732329688012578927019161841125530276607431200973444155925741698804740776825094748445366276228229701543463238521181425942860453889319966087979171193021517446996032186626750860318030589423950846508643028488842219855288140206140220435775755541112192756138830670044167609673392345712821867126971276411260765457382107421688041427640756739683906238397289716705836225201799329607525157686986375731133293197658717888800457244348723113822502830703752348190752795183951632859866391918064344570241317618872162044134534639320548549257441982209897749476004699063355347800322223546137480920369657862615437469716706917476063994507218648008188868022493191056969487233607092621257887608942551488121962258793679339476513439171520121113012322260625420971776991116597450949689939548648975036271950140271622704230596782379188893694891415733853229139232303445559139850234245317966890272682375017840567622793297176891840432593116718914853645162510327404212546662970099340209832780010962146045996269522128484313676137558797510691643037663724107685786041650211902346212947295360377593648885474126352880464335307611683411658574461110333716505987142815799875758975815678526640765791116867387296367370461285432008556160489515287199124797596015973577019604723580431675452762594792583667201656886708199171936036446752294437066939899327850842553008090246953013229903773583177869312489479853274952785332619629949029302878101167394998458631751576130507218365011365510517043156595444958277571580799037293246494249250539169574817630528407722885926825154390378650030429668811172635600309354681466976306727052900405042825542339166383473320959513715096227540490415390056275795641728193343053483120090085748188721386612294815578249719701954547050013628773490521789478448834985101726675175980128080782255296006064311904695998818870713404044921523663061650996541643595405486895238744723394527192444359857981572554919871282333203329075410854924308391813104673418932960765326209036626194169254185787851646428793354719932990870693673883116696148179151624557770365637746091387824532162853570856711937000127139738592465176163882914300076874288100655370690053609167243953766307000205188157295792121916673040544479710278760487160184669399861706778331320664821270822759383710913798135246258253825191066091508604999700035477972468935094115492437438124920912582366275185732398392610192804250422754390713338858421801840681158236008934026741479925496426636703151566163619920412888617203226238293489043005692559836704344241153665360729801888876978156107181046240960115801041220388524493857880524529700430109865251855050127296900209107545816816561760581298129567006971108465702636323083096198308176488494323257150435627657143589249383111164956654559703605792779947815838298396659874696357338975587739717888779441006604388775949556632832460863986467332197527516540616693346781791956940755084279623772738679552080487036000778268167683276108248077087879312729451187258916578798789224110362837896682532251431200882070997885381732264749383352069041243683517602427234845692476406084374331024565945547258738844811094372863909087687016440728321010325993874323044991998329569106951079956116979214813929622974964661031623577748376725986321125725503318957243637704199742918644517607670071906164613337193338191700390000449350280792354081785463472262436673835229462148251299592305172640422162449194159375222032687218061754213113899593701680346445883550044737809989580813635907614505423504658904122061611562327899559632811348557211311044689294778408281840893807826080002898263593519983081379271601074339649276532702630037102720558633497616273272120123801795434421397074563894667366615799514784814212865089446571751349342938348505396826926122125722110273837347462067639307075193391349936043706323648805221054114495097975852910196755857066032930941040066529319188535383406089573232111696402529826211987910516173019567166203618213333349215102698942964183778693915972671126770884413036998919764293169214751323912505947131722002933844054240092063624318543605023489899548756689056755809738460216050763729622688760864801686338929095668386909719035025490271286561560214282122617949796099692123190587624738581258382829438924722262829328931035149944206649566410613133013338942097771049857421085091742629243757986991604047863052127775099701639067021025068128248952405687897432065115673669080656667317621652929774344234842749257578905289065855426869586145066230219320210606352465185513741524637019386454313496410896958718020063355058861196691840540041713021047592852667374292802681057744970228745211116501241075060020742662889721406200810754348922530532752978582147773670173633773097990050632384371181045012412021249005232915809803342740754800429101300977123278660922963009894893409003932548166630730759673196797237313192720911885683266203187413137718184843991849187801408862816328688061901270027567073782047027162863560938415407932272936224347591416128129152579032881954980101757694530674930439690713834697759646971714268325165141352467038752405151730263795656418603985747803229585114112926920018485058348637801768153735501411924186374230296686235841030185582323869826043774395716633419700313702772194029778975838449093497754285462304152789309190348110467920723256768062532575512077957109606469472444290971794942338281305676214452433317570486363704576435499064532491313984295475408426930385938710576678881307450600227353667683201821779512659352643142765766399952250158100437634395732485981541513944779486425468566798029008309512549835732001220084434114846406822078228249808666458628717243925154399967439223026292705328390887137002737487102223383794647142696312620587743140290888044373538529424529565380481177067477726563498571774739595819103867983910393734280721839384736780412752090535971825216373557725209278621027025987336713994603255420197697937616558467448282244599886831498964296051594379423972474497006256789486230721084340278461037221090820324496673385365515649565288649754382676073322016278377560423994527120745578189863000894579853367499046033430562049174482276378907524123672659165018506989953415493582191952203677342778773647155767049426450607266847061635309023887591929781887751151423445418620493001722789671930754459547221859733096719628753943838360275275371402744856771490008005297705639189105815291375780913551140477478013104230862769516605712705142704946228515184254777148687006391131982041748540011462319423569011547668552902751822884708664821031226281701308458167700197361325893796985000940905893333753399047816593789354773420166931424876084336758857811411434141502489336109948105409477827282864593491246344285197567119667007570969850362778937246822621656406554420694443294437827665075939006782871894296921172676265408944276367959905988869098725327041409897213931162430248570515460444788741525818847809337995476276907074661310800152829358368331508655384375670614738538103183432145994375066362517357120496751027332285570447003362499060553222640086067499259732409890592701006776506193390620295578772933143631578368124808735247881855202955956420049347921977602806859235751877720031441149999780465340832180210639767471086721559591358218247786013456680427054418509562723088763294560842113627590930734011112808246557787332293882999284200616511451342096216035933969377706700648519526783426430737549599416554889061118894530914484659369801276365743154742865245103583878310961757189928374072448814877888243484328411348901987216566759769448425651085156478855355722254710007936244358048493012473410407580238893963628130752988241671208975413713397525246265912590283132930086842575109967516630212853119042087095906334130107587427501710069899793132292349762510493508949847507880747719502451720602579287589312205482389521358505068516766435939522964642450477555090304791505473453066026555516521654559502596608757952271639008832763523057143913555142032726053411231856013672803403013011040273516223112773443355005154167062250905504005672266235057784064582880455427193080936976940209028618633488662714971587246592546136663340407018762558261640462528142289649897924904051135070537838215455256686447706977468175731433980863671037270965708554534290854097368061058064841985088757547047287093780976237755151782831231406489475117470575495987290014226240345909729512902888609662873741780716643775151435281234914978467593862043479347066091965240335546647163642287185740676772143193352709996018084318510822253485840864455769667087433442588811071468829319325685860246985924821056542557081356797323738788375306359810485056452927519375258763958001834809499751763852869671822479543972555714131036718853049368773905211248868406046229685456405371027420489720578075446948824120571917002880999426409637782938177726209650193252164485083399514567216567552919541547328222396327975424392700504137037579591853258241234538406786716387190356876910935606671491506088397511563775528596771010498774842177189526196933840271895734080341726477437653462170907239611500087130673503807089768248294890049351869376845625172348517978371320437389276151956303618595980880221465326949889067312331434774683141836163524203598476573882940233021310901753698783730785620499887858965318850132376096667880726645628014653565776530517446047834854476773726959397928974611903805052785431328862660686784319726555070548902779811617847235798024544640767498096920990953053109812492866464233200859601299148712823770196344268099895293446854577274548216698562147865952534686573172567418821898597391337480401437747354054145400206990772822207360281186391530709640356193480975993817972510564434995327998024369829163487340767716210028692258376536568496518573631627762578189805501193334857975867214395291569501565312705528668100696788253841301290132543251141643823526301862383057337005673937745685162486437824320039825897000718858318379808555552801189918456112395132624984493013790075479029498836675810903294476751393257391496329422450786161961768635320907110596180023030078274869446117011027115753101590402211455735951281815380509209092095063410095303969963239420708909336373911512392472342695540291901773446805433403516707556914433573487331923487143092471087241067923869341023028353360001588908409997952948748992095835275438227346135957324128929147404500562002291180092638876426982274641334780918853092251117803385501825343744973440430596904677753799502064073045287644850868293629967419205201327584798536576563693649499013650192376760019758313670401109961742052298896115780018305324461113539173998151193257825276320449472064897922541196265199812777132655011964319167919850254501457548654235427529045657770485875536569593727981262452019881135810556143856796354993356952306349900604585302578449958346149655986049564993836809284535428592351898629554353727284831253712252127864408179979692001096582578482104809640713442894117487212643114587975256156223368929612057184356958384231082451044865408566724685671897349107231436150097265947565286106124575809472021846253145101626616825070060704676986576369263196803168272469053030658278672154836666140966639604419312555081647900023465636268458985308716102556441160162794287226707144402315281960784240719257849285599387567985425101980101884811812562778992824479522896802889388410357642004523871983688231472938113590314407611860456149074623496263467701963054985407702958513924416406247040017790027331794719585935732970914627718762938266412323835952108152169674393846897772258313332377848406456744964852325385308632761744565222284509281399493917445628861268697363701484103169020568097718033361337079434831445596348566773950308887705297750605538052524760427821566546937102089394710029277653864299835911990680198074273358414994372607546977910991783091574770828064647487024677168505707486406960331169703378395741478056188773342179264179822908727562703452375878835073884291433022714594210561051499968600554569905156662193214492425377268957621772457307842048162826389382114139023758006967728721273027845790906092414638389304363547684755351026586877362861653292770807753382309652394569077499236321928625657068549469034357354215843824687572985524265403070744460399881146165987606560217023946933595830363410033033218693639630641467681955768097675585166537735383705410803296141439739874192012702359291230490291134828522296846038143047811395323637402683529196107532795774269235117725893211538256295603296364530429771133016680399172410629832775348644745541843314304803483110409562344177960091526171426618083072505044181121748828571725405990099758015404844207332992554197648844197720525468592438377770786433404653176179253405615233063548052720582284721728594556003066803152002799281055008163994004104643327935216464609721436986089396424171731431630370279933356852740935377701509474177619122282891071812593563889440555052314434888141368562327795990566946634627825998343892200109328660636118269976624343436858115514744666705884407781614335788373594455072241308894468913516061591427574669565245028957352520812717124398265587083675961369305014386788082210220414809642876729747987295753750903141483967823549378216332723533314411634224085474805035346900622462907044983798849838203167901100024622759503800578981627932549016733283525087336124066810105024721699661993653296300197272033168699422580762885802636724607935768895366916908765225291321626727558224000500212917646131434583087767808867237705527075901851350290429437656588841704055992348106183612239572315229542313176933910198107096319969611805184154291559538785104660034061545691705122115277492873736765130674677049342071638108901217995186746616724634906701973152379670260467633973989287071808712761309398672420873922840740546436463074504910350679236531787413119059506811234667517952359478999911110226824452655112169807381760656825268957777563492759116552158467787733474862527306756232115884085549139896783468790888860388984165999518834435692818788558828971926086046029429189151837493646496753991367196551459698728338209268397064376219095557853602551062500235269606464726541012021833500746049399408315114181975910408290410430508026226789876413595187803565138053463059002031730352174451053571018162040576460643537937012196471502385611789418808091488645419060424743805767520166529197361003098807992042474195317806925506339749313034288900577074629548058225438734864768288932059580428325889996454548415605006765659637754414051185752146952651423766494101411902678251942075002124603171920109313672074483402739857553661934134880694590503829172862864408851763432739945673350102477148799765744700045284441620756488252550086899870802970661527490140938232383140608678534492768362782796019519154211447757284745317716770760149153493605611081831326090356441387222135050296151484311216455607094850908236020424587056817166391249202920531612652903100150829068337115991169747175050284210244005373955394637728617357610212165403757912619192733327532885902025137831684693450050347839103035863283874211053184260318601391419231241371013652374922108673616635917041378014402083550723230968458848767566684670492080836710934881657860717734768452150398277286401789615972772950489680185347332683594481002465592721846473869657363786703949306115236114985900848212784564903370954287396913105247866848078681782374425813225243183164880138734693429153561431926369596184634075387502790675558512352971614938738918934182740875204332133645739922944773485807837993746450418089832617317241603128947643926682341202440519494659117793264946912509126571062685645270924036613568988770264357243149905260357659438210902780976573718471658675319631945115792582419456248431232989073952511941014996598253477756860247622485550875255619908471915517406326196412669608000055679563438872635851656107789550186321126775937149990856296534637512947376966233228256406651064510338321374714651145990060354290611966661741920577103421924087297886583953023372486275637801284678909783234285465526083780965814281032588433102066204232275039347459884091845548659661445256008915931586082499272479602438883034263038330325017756371745610459241108447082611335421348667803670486542024306707079567404577560185550282294916709991295003036986960898941013181621798014231302732353471884215166353107257245146966710600990982472060283811717743098003601697236844672930971501391620914165760150088941858227809251289760422448572866239386278033257613808883658434638632346392025702790214553270605969623107141822459298964783971487066391662549170271337544246288685966273594802132223190758548759214407506490222604659544857807490283132072546430404077961446753975870592337649381759297248779378811190867448959587694330433495636140140189861012390115170254960857364611713393875003789347365428338065449190626095292681758211729589576643464741396853460569732033492707616915000941200184229377974303923679731051302965288191850710274325279584060075398253944477895214255884726087850220421947513242427084520980538231819810759488925020767222003945855494392763618789045255020094336996816203980368586343830201122892636829106484597920128356572942612360148871475509151327659217423004706590594840304031112156701503730340354368545132325202817563476776857887621485696907280472896416768554239269043683064893106968931310505356055289479326519914818958488692736649788348017280993640535850742513384662282093941098564792394361249938970119582517849272336411712479695986719154831988274455013638325142023809364435672009802626023968929043433061430245250327770973283935042456941667623980696381528775977667836768095866458487734713100892908279698859041963536249123793498689542877581148255356649817150040994668308639164520383946995300715064770078521637924551659457876084524195212095472937991866519330273133578776175385834428507636952211932337917227526696731353041942727752469649539536624825424120973440682255900815828848159124739487131305087665807256756142376628815745756654900769774225255785846005364600864627322868263367216920840266306177218833578470801774223063969519117678829933098873508953273444918155925300546287498061199667884739765179128367680778438074524867287516709851730821915054612208470179733807540523983512514418692013142637917288927158580662430476317404254657347509662312453591383164310526215879134490279884690475037257751876375550883276699870531153329852891043785716757213646223610798973038859470409729657746661721017457123155748571908874223248907223536774689323264843080170831375501612888512519260577134178667430873725848398040510556480391930304405442622752743316740556394280515658186083138424488379732754919108586849683196223053427000657541871750899916262895577209430369956319266954533583548403086258992421772801851481243419157619344572830859787545251308379926689771955879027416383323406165352965436575445166733573734727412176061256631172799642324942558599910424047696885141355234527784423586661213411387639812836649697897479075322561821944764585160586226932928966714704329638887486741769209181638615193843574623989251262116388265322073395408265155174522072288115487579490330581316507039691246677854951385205527233496675424003843618239399152739871993206034361018653635360368656116323343789318523221616467642146035036785953570739665323199451883423900087323322655796702268359514205763500405564907265986564966451763024831961636409584452184180256591201351161523111059872583671021272678347704403648821711472716010174003120688650972606568500768244451539209007457611058117261081950081873497035332333580516176305773810586353093804811031585032517043822866326382204942604891484717636943375023217284288102545234473425653432162153569794055797676661362274832608063847765008857903527436662444756081059790274360061758143166365275399549914019917949505972146494103404716068821710106506430876696382299638438992995044628864536506997916276916509731120700512153129918695212428138201640000141353895387734278079631377685107913864695427357269897769899955453539853203804706638117752543918354356561363595556890135307107635137738076454963093574793917474155765720604799888540581897322314151740387749915180442639197559166914470453724218770378206475813581379915014467798478787149067385190023778862235239403363979484233447160200062977527725491392410908779971989905522441676607845170087086353947988914728036194448816004387329596069836913101458866146115796357794489132578298575177482397820121016011790920377073983311248656086411885023818792671773450094130510982685435474010953197264853631220190291890599554986224835818288409185338950761979932745281998549747834189473246338824566664123676739953065303628629672650215054623517014899164146250077380030387747277072195478097957821641025715925245825868049386599476821671132113738902328318716714695625062733943602709899187723741863832167952014101364256381297230775771755827079835952636424663552334767752345742371620930733186751842110835327267274107879589503835956781510587208269481450437022394482896370565263649127497581287285845648513813614548078922522504284764201447820370767122312660830551510467096679569742826090000859578788618126336824295415671943066090650015737382464792180740461619508880817850592690718822826810680241760046003359883428476764102362333304026399806848105965654218961480613607107935340006411393809687602742891292533355495039313861964516537315411276522428148195625481923590835161149910012649632119951557005928218134862320754364078856449614570476995019853321934670723378984907081168882582232746851222447082162648728189060829032444043187520590917903437067844581920438881854632888770200435512950413212207747065971407053455626924385774659896395088391760870300841994177023781808505102785422679674084289091565309204097132729733099269329733047656337497975494106631637850443461960204830812233544127178341533912292200154642669987849758833412519726191947010834841970962751728653867135176179697495328223456719819841720546707942422449137043107300829288634304074349290866788146631238473761845537567654445118215279791829312248581257796548754202883108912091183259337626282329202765032553335746663093055490732717127140184824054690687186226709712707105172672195813881251496159601703363397809028018423421285695563632762970789398863288358561623270295511266203502105459800752929463556974256309910395106661435165940386938233447013716419477547167809219697089537665761831649843877905311435332890285397542033336253235985131375961573353232590811978453538591208668916980226942225925923761543109092176582588397290987062904784123868805410062726047059788213388022138906741225327433448110818788508988270971421678274292832766168071837655385918505316856909127937614187611559399629269517372783499727553966298726826593716220168216385870376195719472681338552265439659549709088710864850415459607967855209883270244690811794235551373827350448980279501599898815756610566081796152156355355430210019650646006274578406818534667013292846564781391589515029750001440980016743980019764725976040771839429455245485434099606526806309234899253957205329534063304565507538371494459721982211827922852735728353921156166171112887345162297602666119040480086745747927548865780503659128288661965354449979590459018442751662232218184706686195402146908966369663380310030956940133130438239700021013561850457350799958564337213228265919165197864640902213045342403727102240551271617877592239510647758584283154613340658470613450085042750519506127899882353796131009518800455269377116571094628170011862364353329747154717410873810216095322521118911574228121295410357333919687721569932820083623920040725963644122476435687330330511957379609585912242921069005194351798520267899896279790717451715273972491673719618604898689098737485190264821878689277685723744417299119692009117326267474363873347891377824290404910658410776188126410149309955160140138647633574165545582196379092019233939986929867686832325676982226816047911154056569216938452932033937677609088061099619450518831016377901210634793544728485180400187684442069780536242305319115159303550639365247904775530908430479544521819098505779512537128576824232053886396038163775926732670271759660418298707320536072427876767333689629442874802898828999726315043829805849854279473330296841878409070661823394034919145965168928288212686495058744878768260636740884478965140696200546078670832278370363449106806644635761843455446347647654828496814580342175377032921313002760216816929472411082652993718061500929629237654652814533268921766874126041227852695470714120492342949071049999211234026725080087122674384594478567801601686653601681774733594999663185106265278601000230102459891880851000702747254413266975069448114465348730450301520028914098567628591217510406527480295366462915130399497645664063834499512899665759925463518600170023874182998622856210303027215366538629249809288248737188499451503961782701504393086890775268110389080344206995367809477835175887820051987719203543856894397689678705102858636977789809172109964462820860985913742426376047358402832935372121170428456501878233454007120295161338536567770264707766395603055605155755920134945391247397062332833615879519904694226242723644206221783777620040361772259699892832003428969084252460931383010139568182831118472023026307536176825443539286813672914571788244824213461742308655384964336009281883294964725129804093898482441010814322551662709894506533590565867027587993222540198245056288670335989038260775701073107596534810442642828538477251249150236619782572020806128545415864318403898287780070484308779686000977383200815175309165151091310275034960639188241947205794786940599848342620671706962533155840284285055485626313365740913901628241532188611731535490499043408345020609046276526144421957940313362232467863259708270641229558429846326933178382817695142246920170932462989256574357447049476694434069456314351336019985033110798367845191296877624861916949700669627708876656685339260040510252758488430414180003640788656933031077904577478655481453487354551153839636889174698931361480169136117461542036165259066090098237495912662294197261258263920999352127076614177047834020988987914411202886009994136737663039234229546026611894646354211361738514253964798964401486693402102417967111533616863895645062757503317148358328217095127388614344213788811148979782621206881668639311689067647879697238735385202586864482317090960255404030977766851268154810911605812973406521033548375902148679507324982300503102151858491613909337353904640256469310740755191203818426466321107257907219209604501251290961509867704261319527956738925948652787329188104316220332727347588184387379244051631461947342092503998071262867636317511441743555186890567796816815790201501238642198240002608534481424601465120568008946723796124160920439656064087888512001626350436815519847163666989730670300983499511964575442953051451455332190621502820598406681114466024134669042468276650923265646108803299797180667890333768594277045987179250299435509686324675906225998440687172250637415192869217936571360978082598831738893580585267597470009545459316153099864781374484854051373018242155226312184095584605043588155379924577246639800596054111060984452908613323921057315796584655526148869255558377067359008484490121971875555223124120980020509367517956281756288817473200349844446873585893443605767331554966493205807792421583631237545927111576564455415460246484969449827892226931161294141744892100685495514856663189868194059545516612474876840925054832380501388677478969987766101314126189455940405478139427909951497047282163541664305480812777460523090559855197625479926832487430465746768478583966387262571535551011224094185952322546644310267433580046476817143566448613287331990230843551498375661349845498070150690576331706002038351215536196274890220044306315540079040409581283482987587965636677463375513091789967642353097149428834696904344737994120168689752889265772905586528750805375417950461215939492302372523252528741073053000841841355295179062591100800400875204445490418170923201962184869778515479347998990814590428052052519715894826705973035255649922734245834827482659077117391173737011265249429250914312582496628300544950999765714477301851851466067312900693725618831243873835932746258525465472103129801892508605788640360575643917340004404152109235337163233128040191182911250277751041702489819504766986682889492189860481036598065291218613520636664365164529598223793761200221999664556080998136734485920648860638114871725660587857318864105402991809919353437911484525066597195854774126005584389335376182765730066607306278706477640043284722774472840702206198404604912386690598183662505274853779416030577615244616171412101164272914065816467038931101136489596442583472103123386691958909648775985484768571596028444627512467534853440948578437096570108907228559390991679789390523678433216227787599246215877801043450270724478617916198137454897991105670343676348996146398821328021934667494597646809657753000030595233094203712995241416263411237109064973049221485124533096568233513607630025454432162544981239525227786420258415896227874508756234592762233357118197729372275534759854881823314086870774789910366274248604716750009560136399218218212939932859783525400167636906817047811780293423883156225377201724108095060111565134629710906405006540812949903054651447703502252911095004801175230237921733332609519638816210031835691058609956056148818857167590790815864871812632265359983278644066520459072022460187632282431127467017002711896492125091569087165315209169036003037604666066127589929802709512077385279430197311055135085429430736650431132386492380575041075397984756188414205665291667888847385365033114979583320406550670604256137571134805990808452035863162135938899472268876129448579226170334471477774452512047347388390787611701127151986377452673246986926924993660673478121507606901147147181253810621444167588189353583424787745110098062843104740215952736144649202598352092240736225408922529373972086756487637893336732741547334876198453128099229624315559364092138011352896712066402485498649899303212529863740644097121466853786170412536140664750205394559358509233190168175742576816014879283143754534939014995258115942914315007083456934406564296619013418809439812045817618111052524029137378245495248842729261349900928774287865724011078457053253318594202387369417148081870009212718770680611409247030995545930214812719700651997991766247068169119018231682662644934826709499478409958018506819848377313386978706412859927625328612095503874060461999910822694301879634031840728705349944444789182373764219921375866053070178647905481094438383672584275691099297605346014427284803576619650563494364084086857168422999898488798911693361759779099551625137371141816574512108079315817358796456965225411721146717223944212768245949648064309819879739604808901197661368835694650882547197817868115851055255081937433246857607402689941121988097151129680976560073691372683091212721201438216577843925342044128173877180442264353639773923291204767977588501400513448454265308335220419161375169291425925324040001471245449669496255489018888557886924643277150004614205970329317151584055311803808233565600584066965414061046880731707165718201522193273176754273578337300383101809712251325281749056730657003785289498420203074144951097838956233018775448322382281222149101657848492886473663469352985942440420088918504883436665036545963160365177392220206799225915978827239264010511064260608044798937311715640409989500701583895235287485599519423591060286698950824541194098476023206055045298698802854658725320576191169119460626721561244696629248107106716261569299279713409913970550391494135278314612792112190805691289414689682141008995569737723001178889405952844069695386214620677907942670088744371938104490747170188887124347660468540950394092438782823973223629980582242290902482126822176558347369311657458229361437595837638581695722213126707836706969727352447327241744096446446178003597068788023455859908804522333301332339997242425612831944425256528618664457163994380030788833974473922002708107555186546741627220456687013136273607190580691364998358122526129739613469914829401004812612950088990281634720620096799471976710400300178970597832653471433988485893100710169746858951979836775364906156115516765492382347198867740479074149095120392783780615812435652777979887895362029060240865556402461546975712551678781675360694996834534205542494696609208060072395070980696388102882939579792358460544521097154065912416980509865230942864950184015961164221918827394675933686610607620482937533147417741483755177455106620718541665706625272976094821171460356520275754628607245826061996357650217472621333655400195130485573009155066792896343182196409107609414053620291397474229646533761953980973451230400901788665202574435687881697739213544501514096962907865011680195595419963086806976500786073732531013275381968285836466122316610926204227552480586249759177593712612726696684698630641877896885581712632586175400153927738989508022630470303653281320417365527300713916362781600430226756002417261603550014153729464223316036060891834790285845853806005771578179285380820076517986859820653599878814359850305519688017605918449876038567251966678701526930091023224258053908306617081553109321627043331514432116700541468663801619414670052524580784544832390200323247928203095373984653541934000270458622880228314351750835357844501349100745056581761129669874633467962452699317179663729527008765672603344496231701857750980222013948094124111134715561417758300366884808128975963496784993308904023251633134209537883474109921502494860582879282702655032150678350852603830744347166220407904305436689407808990381827578859229881519454463574044188488396109908987642075297018659175471289997823631163714418455606353801839151184597466367882094734605743573431453685695093532281698034415812227144479147498640939043667618548121659722913589258515428011426942647641028236437245908213131845581492572822009226830207656906292260267517241708443481656214049039471179593295378708109890583737521541583556439164835439015459748870277303348480141588086982859881519450817593856877303417082611179350599916564239618596805437056504323440963221575985552979133768731098448221317019288717876781291513227763945789892042834330153543920816160300147221400032258726839777661792081600680563784706892675971149536803805791888452404477884760995348167379369506126230889300031955739907707469831093929292471607252661135883141574730967399838550083194938632428394286932477264711816716756362059588406915505103616575150699072508410933609782802583081659982495716080786359906764112272970309194754214325440170256393379007446459846610513513863282824046926199097152459652746257772131651164852364294166827601663506890438925818726610924341522438488535814569349887870819296248621366130237905759864024204785347493621935027935614916867166519786569194280894501953966756861454753716525064597244152348810422238850094124269737411765677571581627627259878811335310371902804762528285062436993019095517878952573861939369220368883940678662431049569770882053381543036696492317240015972161891835668996242174364403495118963387519779307400153854253893461845517562141233826396073348114131504242134071464170241913585141960904852712199352380545134871260912852711514624160270234797402228662870826339251333948446443971520057797849718732710503584239487319696687721714965681884814462825973824190151809235290529918562930553601687515634030050929059818693642020896484637479332850952217358063183336073624748003956658819004301571639280248499854543355299939767425941377722079840469619651179554154666150142233550510809007046362671750411713485224921575911994735656637550915537774989449867100758183665968085858560869489744988571364376097107001281379266262991523400278949641684339536381761197021014461241730931379665318677498109132724145456519554210774831163742287982568927025257394159320659105731973670522850244336579431528731270372999134605357368972782696610117906376595841896105916602155673801710678213178167713839208366237915301799539368630481334922155076598470241447052375852620915991149077055781299411795532856530773593524461236272402778445568035951144943764597501037242978952217014932036848736129506174248377672353648144843866069106010434648955445060981528565523557863136610166509993345482626558983032181330709919757196593211707816978724573198494375996315302889347015751095900137085607824029265615966943683767472824052520851192924517862162508714454473678774691727060532407291560484507957672157205359467260694141446661650914467341969298010618027665650675260860373480273142132516817420355104257415639314862460355193272892535647743121387682747668128499700754680792411267178340531060133879492995726611389385189218734549186311245219874937387734075670446318718665733417271588006725584775437784085523729019598574807457112295516801977726133558921750338163078239058295772321641288301153875391375649046261988932328745807454941715482267606909293265737377295308401872501866250516139656772821039485951368636848902800712678353904563026903332896432021153506306366703469753893469655240961054134635461328722126296071849658791249556107500298258648368265928319452027239225302965107303906799061434243982040910063748687812512617565937543902749618622938093255461089707572016281458869928997575954487142290685985389075751931156802758902296989097795943039864459195822353500551247126770426777650741778640945840748240235556021567867166766141139483119991598129613305515566278261816353025920448580806578683046662866172148854841024034883510237187177283503360868538821518737562907557112739713345429636605076171000115084126289849951277824738273859300923371168902403240459920918366613558964081131500251614495520202926201567549728301255608377461289591658261131623575017111761705706054149767891843784572793381708252893399142718561301472363290225689392816030998527324868447453634941428281652198538494946348867526588154622125095213187354558800096030546611236439991228028071803811737149683513959615512487430749312120559699151470461628637226363943694253369068894897959732877214338020699117891098931987583563770962378076526186552304094472919086323230475644028162165142276320047116063252568996992471627316006393425530865048945137140237489853456210940714182769957480192448829787636958151988235127698138990294611814560052916884666187667313669289807763224989605883206377650951431014272184978025102663814162661122167232476037636015460365075303756072377783970951981025306316808164310796205359814411945533344260215077824805769989704466425192988582876088663650777411281178386812322885245640440973845265194020768261112550170409501544758603258951216793642569067359077877089621980827174823631428794429198050784891819856876303288552460673561424016703245296348497129985958207834495619915129508810131375270386283332212564479412455044310955517432408903991274169747029380175419445791803561634114741068355365486790242760421212350329197003811807195848363876067650799578083704899787087624869732756015136386317705696574491236750239578793045955170016243402742023998679672041538954939263168441411063907200266353295611749666820653361648615784533592560465367793438323275326121869739506906168935197551233966892717328708217526831029943747410196768934312541034057388271748592568510833444399529888290425604995601344045395141550090088365980743095497069028389868476762970880288663373565483826651844537656571520274068245176911403516453004705583980384579703111231072696499518884475812510095059242592689914933612894635592682786904533546666424195255506548513348060446263810639548373611576074398653149138040717035100168914448158548189202036515362792739451270723241710781314232496584540730718509642818159390040688311180076910641105969779073194123197727640779845547887891377944846152225545834160594846395564905877054026312654813671847240113526665151956521148539138325849147749170982098062161955441091606339268324071561155189778667093224891843229854470064192990132863973127711876588073793193468713492733475620172020080919558548714703096400743226791888224244567611515191082182499907336675374413922731105848357339557645182970451955048785748205110353407766678003477152161097324345320257217287499540777978577309445798131949226570823775556883298005646169201893363355373617980208612537359040318380032645869486021480186577764638520861281733880027857774220628072644141235413762122753292033760352000899885963803928992464898001638223242621858048946952701149533056859080992679873105362519435102393593704296747274009013598148616078831900867616055435687078466337103112258916168187767040226349850949731187757585809666224355003356368913619225803414876301153804420778778273989934670965046327388394430649894978906969142510423635719515105134556306714748584365830937295124822313999467867232659928333883147216180037811079352090579334901311812357291529723737137350728533748621662651244746675774742542511884387666351447754070301478076159718238918030873027902794149207265590799604329176647092427762461923667208956685644776325841451424000375039943300323326069823386547847754555095796117135237016035514070850250624735812530080713468752884963367005421766454817362526022449601185375631309422278271156055704985416752834458438050614767661406502890575113608564740545794062668909158695979316016888959956078454859406815077419649848268731312537019715618098593457306411288797051308986855283985727048569654778593803514405735791943936563747541915099132440705456938151153201539355635172594817932537206055950148937606817356978135524825463079059690106952604724649677585138709009645338422645217182444216241389935194808019795672216068316906695301183489798350432451392824914637207881412943405283151950732653929378556102165348624568457170128394570769309635546210586236850169773695734383221661947003093301908047112584769281826019356464607435354982046672693540572980744966223243363245953962053867959911834666924230193610609513459943687448108468608466207569645130978915130422868464738734665698406226748416474379217950632675429708663780674535940189497184929431555797079439784330565613678777764673937146440433693250978163359471783705285119629781725284404294800549793735293219431785762595472169438197289316405396538447987903476504675904917418811618301147274393698982821268863522697905505414306282168794784623039094011754601246918974087243729900399620259356436780100035935996860457114826933188596516097849432365500898247786634447073130302105043094513454337534921990981533267415226374851960779291149089582738754845200502982174211044643779379639490559473331256990859459346506614574777521141896139311043681800091040376035021080033102021257592937407587516233046445519981179261620811772444171959694317743208312652856384273828012335257854619656699031121743350833504435618177833055638744975019343805743319090183977646078619372595792434974889927663328487317306425185406600906574252933721040885786519464677608545154237715481208921264205592712998959960013078978829993937443149782195785373300935404760988748721938557043256506868523985895858786550275579855172326456871417730391693133172784073750892256234472660819044036025356828528926193437088673636084902204288513294575143755814994981065270381759349833726766224254042721300231784033698258205572209596711770186227328091255564255297405286840845450655950292985351016375833826685044055401856764899998556684480331425055510735092809780494601367714404102578526847864904002653406354561980103992375696630486294392662126019284351391903551166575452608660215835292841716330314254875357860441006970975854150081057765513797351670742365315352321020894654978722148556901039903893698569586736790929818483343345231913963482688889852250925305415772322775235067558259435305536732247017911273450926127568944045527131901730461423805966222601560161690808345996619246928010403953221068110601339254629524516586126979486264473693598881243283523255710662961921362818561993006218448611348490571514610876445630388817672311960060373279113211677865339494507236148200723773335006667149330248592396101881011512066931475465996183312151226271247808124428792580062543193134258359123099339459469036829399402204827253301249963854964819829116460516627142740306010016153752994102199083236427109845167573254980009018956830831706560366466709341306527253676693711695148590951799930875029895925951849592643746490838059862874610799346089294353527091433640054765768545015609996807485509500291913014142656100101876090154996150069105253419578434977980852478203901168875119509822214827067904430473686678267360044071665146411931538129431010547764224379813730849648728833754385820594181811711380574584549152123155467265399410468778336504299537856419226335417194246540022308249741834150911301839214725657854065202359614118635133921040004323329316087409980185053651853031904064356541049538115528148639090768718428108038038162183586297418539541962349404310452925657010188737174288308233510935267291119289374013286957940419062612260547759467331602655244087003143919701882724903405679072496868922613857090271133404899399818539415495522016462253489483049265653155701521224670144817565726735621072065089872868245473399336987301417674951395933285079283456408134730176072953237387219830320580103825902738668240306229904415700823498557129794466649202994353884681673770634781679917608084493697014500487286446393993832252606611924975641227803050550900025108167325737439227996636419239839358144531248947619496526780598896289497492786352097158155086987091341050711384558131142976219081722661834271993015102421131511300243989540926574289734872911272261922891216167900744293414505493772170524562066957458881507001144122177085345595610241232077950071443304200061741800255699134534821440771408175150648835510151714725662196864661677117962548137112164885165698892394499088996003005906234726912450623983615490149307768789064797844196298995877115336331038174621946562257824562435500207990822515930420816045768648798920812825389588801046784196941816277103944947182581032526230738765354109799283768074198867887600675534661321477989330889065083736871014531371636667653510066831413942837540945721983563457256102624381115380227869532215777347501526496484800557847953503335968504720730402331111446370878419045694160568299248327015916612799277461403364321765927739837603186199449227355838928015348955425377436524861417273953187045763165544160919029115622494192862218593944653375412429347703773728558189958057474117202081691667205796083262222911415616420266211248776112568306095732876341588245055444697275327431945569112532994926113544408371249126262771720373785188688825548857112547205630156039622468188728359161414148132988647614081331722852324752669706697371149185457857346128697736398800382107494258761606148737307430543821005383401964139438397598520875804743924093320580199439168232568797771899958910967913549551558842117971739682159219797872047383366898054061627546885890013743961629871482413093841739382628328739825063426909529714467550410224295029951995724007214167079492654893846216700803672097007152122358577094513761105715335701442167814745989848946228982719562204819838243676593317770369235969262519988945544276409170230863568282457034281809747066869278839273220759552094511131316290448324600263540875250125168031582646722176278141665793578206684108466807549398743437359702983194552202126253201626107454507101211539819766210936435953024715437566448161782902825438316056148197872618511661194854247471818167768523363928117251383697973065536751618075430399505768408371537078244839386877354548361050836637463479194582281367825211776528197313235399637033290958985391469385035779897038263728118826080037892191866740791463062349341691581919070980632587758476416443349622551590320851663305743283763411496780771714692739159477118442612670201414423372584168584602651557895599907287928740535960334683543665654453755703598667948786190367598975647027469235725166071356944974290179549859656647208113778939133642265022503917419512877006032737853227200396507214922947095543624751578449923314678977977391385949034475828035155459085253938744751818819783393855895547989627857344156051910323444272049889652657342726569548274243731285040378803796639372073259029769200989529572223691683030677017632560489808427221426505436689196120234054075339695460659711071476270324901947860557962907038239001972704120445559316180040923751017900014249329158635187207287654875238940642061789566597644221362387219139479253785031462929142292502486608927289862592963889975394111576293433996663802077046630399245935546328133327136116343548139430515705771432164098131566678428141088855847548401111335667702349216786903544474334537512896840875194679675706595841061467132670082593705345525419622528423951524880301989077555944722362551098395139917474904758789165563458838541282831374223909633184768479955751970071085138667125418483899468593548931775302867913839384777001817120185729510576325701595799171019807591787945698212955035674589409996997829671666401883708259155118369679669825774274639122450664525849126707536227342164744534184959261506030769440532522592626485660725468057257841509234211147889387437611335618439514379753146525993294979469071749270893916484097243738042956549145664758751375594799949799575901202393464606497336538303635567353611206109608406750863517629617651770372202950968275502275886724050637213811871819322513643138460745017684322305551950170069226262432774749079414413731476328162141562846604595413469734177489940953910182079517547560085473040742962080690999561628231113984832641171490812550807334583708470702206902552074719417187680440545745344750526175143705474018079049704690806460648067099610354217121733152240061485817639804096514090873026080478861658955085472416252182160818998257654218611366527939511457120832694516953570942243915827515159002317765233934430141837251629938355385878583074491420653723382668114327282943050635958974954285410233082879051696835249316388662870979452236048680529729179973341714711563225681558354001478630415127986970376401783171910493944247076999566444346445136351399785971760489176529818179353192839677152989327075197456527832654012302219177232800737846429662366214994463494646674428440767064033782942807488978648570778710874195276389366191765604563306825101062187349357495985673679432241675934354471209873351925947390590031783009411987399073432842128812134040973232196300477505551227934127137567737517007668120387808382797897166479254653680006506352452605990207368948297795748023938312369257316016664954411968762760038398067381304656389492990754644599769674288695177866729377922756218604692231873857303858869102925749490108070010930993805917120315545569803185919601150404259628063587978252296674516010779231769289818910633340961869636728740834652881589916956874163093983913797413457318635978244374894974364266202693626348929370480175161645473394383863348176643262822178414985819318491937842291334836978790454398120149841995387976640590123422309508877873809859555724389559131027698581157242653460617371037231566541638895635023695800896453673240536861921593460556307992478500674574445822183965532657643585886955905974782956528611675815890909952074231441786322185432958847816738403005443232066288074920744826471410273129126527329794964556506747169965292265296190165953940351287227429840505783913605718341754077048345087819156161442472309031338629789750553672506772244132226104470867011214534505442830575103174940579718805615424173795054372089389346039386147447821691327888331249420724396359527233815964108856661950498873090341226723364727284933338919960097331394969627205529733055888678352956536669120043622331734887959159154105696597038111478034252801916579166389858671876911821001370565457747215409395202993485833275192903311363949957930792499852180677311125441812289986781767272682165934252088072983515146331222282884499267152496523195457189698562005487409696256917672872047961922588291072139045674317769945097082635635944185615789335213136666723865194333139566778352056965358949416072884737424126207567623416291162944758218907272209897274499613619465785088061623687680958189681120478850953704740910378150768939398392700448353991986329783462170562339128672694299390941595785771128136509895638897211755713977133523402168237303613845554646616465241049640664016635351735666595430482876235127946003692247703598951887838348704571367540204416534827923137488079061037054420152164358084795745172867947197676553019964098193004386299545254830145469395951497123671167320700525708616701766884527745203593268695067945388135700803757855553656588489926290373884031858745990964491338028246953816490594859084390930078860613195704540219815483929089511938361277529948872180448151996420338264248233941175177874443345750716833767585190742460294125063249456864925646546289348232806709185762513195288215880975695156291586689942916832167463671094670373941627642492111576765614501704220528950839788825690549219986742141061145343569625278942893838942205229711946234493056306525608379919083017879205955280721776275896533769328180974228173296188856645090033103553003687262808260934107885499989692611853420157342411797880401267107098113812696337195030776421459130310451447998726167562577983866451116873843161098613861163049674908747184800127710501989002724326577593107916136947793409502056561869590881667644126151326976066968610382185211774697044855707849662412526297365676439805646033585828882634738869378975997422570275459952429563857024749904099912920910081949830707825796364068599078771734987999632524307292224439983387021901530345490638970015888644272697882696439184745868139724333650458092142151580125298147894589526311455496992291218614742514402934835147166896967607601807917406764048321680678891761718844394908838843791581070855578773514585547530354357320535529694223163224303755912968749133389260881559203637046151178424264427721784270893583906753262756894564802579147997778062582634173488980997171985713851966388184768123282803086883307698518598642058494335318155064679392963023293492269425006958671055069790811492601672826640207307566411417346663296066617788160931847026431956847277164922266915222054022795141011093129259738419973294847025834710194805806623436350791868696072780933982741929377058218164420887754343525312215246335977675716063674479679034240755141573452052514853550969778860077169214973181873602023000702981244186643215319917593916447669563806393609374767156796203939714492066505911847259208056571073820325429275496040722488603282366026285232828733118847459455834826186220134406961989433937441630424673636559117542548559982374826606431932055011033136892596027528511839057996151782952187106465402266636821815045681776260459682164543665619654097065146371028015985550197769149767285973372634511671351156064565318980216638499632340289097999377454102856515869686428949235884147090571358441149112845092089144572807511927564638483645612333706954156933119024982517393466217984190423820435192721360802735516035345933194643932543074848247316237269840802986393417072307131041615472099488213075694945538310160885406820520511941911515056552869517069901908675293191041888812190733517817998544331269210523258062277178706428413736990877557078062177503621983486658163186687169941743932115942385553802861482592985113725419075454373328806002904174253174907407130610170180545377788435988708685789849349073300662887896140819644003280101673570729410916672415901303051760940890109032424640655278449551575567943515817289232827591447047660659304764819966092455783257608732788237049722961781704116049679493083660730929568928746594940062729298024540981939723658660013675503804622336285116099923932637370170693443924735694433572681888183884720902016681561264726869531583844381587950927453814035361761264932052532126749084746098901899433815483290152801395728673523403574137489252630599227772530818530237295604267401585133172822251639812356665528954611410088208568898907500685322713077123928612312087157699558498037746409787356261578314013763592039666797937252469466037903031540629526154384270050581624754436594120293135497402078761309973566748062147522011267300398102780919628042987960052353307937086194282388288999021260636877911039010773048411636503162597376060486345287533089442558862121572056555714174379279884708784854294928466136069434466813827904932998655070569553094306220448501243161967069015443174988937867021268238595394063761505930786643517754207342399815313886030690447565205217222662489298520220953761703842213756278169779778064228645914322001100020853843038886721562823259015452929372906147824450777211381703454224749957959914840562351483550053582150793913332523886850722249117426605509723902334802173076007704486380684716092724898666822482938601161141603264266861420634433192943441762259682483039539830367542783217252634818082954478265957602740007896690094086898484012658725590878740245646849771628109028830003847036487082221555277489729524849060159626108328730672014542455678803131423099581512339738163366602976554937417786168915044862987145002890434069099339415489549944001941186361782168830900182803953068922868008689493581462236631676411943967979081357093933742688368212847269529378753402538864048289279447930659960991198329312103087422029614700229889937077535313981457752045010433156330937980459149092115961607216192602183428064872804439131080134175056321575746628183566071172392459333257437172327551128439117779728886935833399259955017685867954730402184070001810840614392184207865484935279145840205400922009663102376633349776302802712289004991097723034329057314675054557674952239953452984170583259198951325755216634825877533687051312932929901299732973720920897131292605518939632209287117284360983079720148823634417397274712095695918257677792956981885074268499818212253407872949991679937342498947647335258576240660221769000713627371177153125827735504578752277740030235129086840671650468723278619920843050869886132471562034153211431356455758646919035133736035095871318648131911456034629225205092146683987864931399929656146456178450042865961275164289746323408878988198244072441495638816174644040449834804608171101145215429062424583304810520680810063619129140091225270767193093121378142821240032210619562514896618229358003811728893534032673373079975117063860485110670549213212125229862230951576933212853685663753453321556841046845960515200590034803671706796583710314629704805107728273128269681444471037248189810068115802577851958853042462224190855043452154355804349772426214889602270429597982863770111582296782162397948853393849842834684771681314683783229470472818094493431243467500024030018154477986899891890874064001580305113867224567705697930411008940331775668640986414750360246424313785343415426099966233676947840147922027683812333800533263305554506543490363675860036139366522573360266336255645566278734025873142892663661654472460893421545160095212210749292606785481914370413850981004303434880039757808356228897253523601219615124368678425828139763191469303388068975481763164926951848739189100117121968534277543933773671533937866111805653286203437174936455433574636263049228250861246830830755028481938115811854497245116056827285049553939466175325952650795652691410564746974414281899369467738215218982532261317863710395735122326395172840762104238857686620169130419034994212213587841560310769846842075998709835764550273879701988959471789113439431784997953590802108795534948620103645641328001834824107708503108145133134682931960532219613168832325975345855203258199274203388839810464948822983432081702467474748381958735708845322957606816426900275565613762272631762512953508502712835329180435528667494769809670417182212873080690569850579884169919865769041699062953128618187548170894293707315140729617859396557232270468280858366931720562489157872090399393700663831754925166865078634490886309373133104534926258896991563425432091083888829660537950545721740035935092768044798040150340999922314387597324062630769144149639440638672154367941942874565961653820311985153694983276995252230241959723221409951468924652155526524892872109142125772702812587534173947445544346400572665448518984382242561298448464825390209443292721505084281711493076303579384800832092752554402489646999993317791778116287856672569925043944181404422106398961201645886545702210154393744951134624019894934953219833008414004030284538633747348395333346128532602329248827487780710521634323910493484461868283455512167320180311810521691112347552352147667862883894998494134199281525784129171871369784095824885237753088744559234489006424597458465990612219128905928454987578309197680473071479734454252132465973930281439174802704273297556750020639546765307876939214814729541402392036764189283245651496217556608463411337470262509990590540195687254962901871388402198245875760447836203954079002483485451988629206792080481918915991074409525822000374534301946754456050623578925959625436302772977432069333362753505851007611807890251323730484157962568688153352540152088700451033215481670694817238784331088643093391481204252985527629033021330720550630234010449384889289707376303114180039572292726904298300324534197507902224712218503605029295289911122561153362804504637970999645941087498122482605031081169668237463780758030496091269452261110522054148003294488536018198102149556020695109759415412322978932672812912661320258137370057535466856335039681101971563348345557786468542014754377363107381295841694746272106458544298332763996913785994820700313709897538509810807605038328015762153308915248340475178434513363996353927365687025394460873180657812437111382585488094644066947985412703384416218387236334582745821194954802880860824141830282572545234670462038212730909435546547617319995888578048795857344038804853268750071421313384938319436590604633838667091131155971748972406785027538851375730910168453200834007330502682431911734356033800414180724442895315250193975534808757867269004974452917531955516128991947657855670688245876367442486105237685391699717721564175098224951976735746634523433801244899205186009942543419208621223232688519337371358279924296175079747896916360065581601331325791733084344520203007375639416874654951819127609237595854250732250867238236677606726785254160518215489064271634200928671077786337558458905352612402399473609006816910932380307496615045886014271856056851502038923001519177335373989182718133301907869911733510147305378710937032424597119263083627073186411781980300992974459945541133462216945972560494302998681510442315498252623454487890854456513000626832844705163586499303976762957737407049624953782174549503304063264689257301431936739935505847121283002283925921710261274873475595873991901002434433083010158235324128248345127000930553891718476512607680172994620250658462238374474133724537513914531957405096940742357046081967298816811544158765600661896742474744318312888695758864137006635775933226388986859681087629568516258718074837397575008232738651419536663728364786873479036817485085376083428858650625657453447470835015233562498830741073933641651030362865058237545724381027723547321668970122849387831344095701201169553525100533878024775012383653262551504270780768959044690642635957436353811008393950196202625952775921396702704622209655717064332104687274504722476960170986080650713352053497552910509800877522999032706325805041677283415875377157484004582147731837165677955267651809818200318125395173722760444536418601407884606604456755225194219952069864175966754345457063000697968785487634258876054736325127237477006549792597079214832854986316220009138964468668357259032429742733929930908366281793997968280355933373862644035789859686557718523947377723404202524142623019537411549021823155606380720206905502852261315059169168201348171250067087148542058614714842859968339687544489988738720815429153406773718464389465392560613463088628784556925638177285745708963227169796712514986641223147762095323893858646688134724724969536677126165453877461786961396392549703542812737811580991696203749802124265033708529239183484951032197254935383581798659528617200630483885878136634159368547020679017357681387266828861499265661046800385670149801838979698578459031919576103125752663692707378427868909167585596033912514413362757934371298819729141769702257614248938329192826418595679860888762241208056155470130877297779013286660826940865880619409882213749467663545693232836877078627582365267712187351646469688358777937905780213098689942477895218761982607331021836207582649427608504152653136694240375123845894075832045006390817223718587285479249338150641192825471619029300278854248788918550172891461375263647780354140074611079440992633477494060215494192436202703773433726781137743142076710797860935370642433416119901439955543145157142788618245538751529255066650012100567668673534187029994380199977725820999933371258166145716764426534389309867907245362359360427278202665106359960170456753422904159349552386782182202609080287139262693327118303415458629650178284783307066049868727466692587872322396346870879248615825133315378124039255658113090042043145637843285226120844211311943407505897543405320168163633419639944587836079575885558157490703693158849681009417191110045903824771471623735688574930222404019093295144771579654466298581646288641734480207932397530909669236099783489879459108476884172333590859556396228249884254245312550246687740472944551037921829590412949247208234002699523638779063738281923624699807097183435655943263474066724197267999619461595453043606420207941827709708041777332474613103183574660091228147544639581291426237931566226902164107500674557241296789810305247663314508990949641801684799524218380204190495183353089541166205058341776964786450914734735079368715653827787026122912406056609076485040620011871352386880604216662937500723864694863823600806356541113072745696479869324424930663859580258225369718096505229416556462735872655644958248061996105584191688368722964336625021285663919001884998895752296084407116902108310242337744883608273275094503553675399464819137365832080468538472977291628638666334865824626216573604473654011514065038567718751347974502388672416407000567757754375998223410834299110334930589872442904198133319691500833029503008144105493943049529988772288655650593878010485936464874838652000459724456531624277406111546543249672867872402174308801975286208594580281692548591634213117529035352345356128200767296766320079630345806897042142946819783948026718591111193984572181975174935853739242581012415415414924628668167475271285291234630072345731187539468199291866738365852387042075138349950081272573188546677482614283483328477673615399077007949014798260575081816915431526974143503154511990026158328101530146452755744148491585522580570258872391274056699368013055379780815152731830590657803130898814478341648324874213619884332767540479755327440562594348147651930568229568356571449807732659273610579603642975426970996096210245097542247660793544975218329433313762490922024966831189592386619029159145370343477217713438927613392664962871628655151088178083289369116057612557181454150696463144343225665053209280691761163800883390653097929434397632459909890044209479648911791631559878966121595460211960952263709283714630804685005452088700939732094575307570561314719672569550742298356684061818581057044749285214530155052650323592043396336527256762358480734051156948974552040545943861338718843986466124682321940657978167205212097922278846311995259197702489644624199649452966298502782798084437844720027672368842663743945778935921891442206187505469274375580385003364926531191765993594985972462881201524613963375441787663900549216134940804066883036148632020553904023084472816300384851224421787865395507815657324970523246141838381069735881771540097275313542857476534928361511561283558853855800441458377793869779894510601593194800054020667546349593214649099377249411693140127671228290807025193547116749515834073317568725346719676983604967248687764243063049911504010892157346475262610965775753240823623027594697569372098621569166626938185814914548360053173340145165166734778119175623024649083638271798279031950724848901760672345382764439890366255973618213362925969163758388231919300556531466255707644601192632986683132505835802276545131048531669447368130823126855839203403479801261216540114664940922607883223071437311190063984599041261062685337662451361859971882375663650125680995695408738418720267139320588005052041871024011343594867584092729701613965222604767323633627077472105334039570783415347002978796031036683691240286304798701459065537049291921137475732976108264514613357090097921441785578834317669047922086271995474470856028550011726146861982127015793233705083948717462329600178834126232462982523838136088222705153903012602317145519685197969144001794196812638610104337130491864933385172377640223762458589462583142600311277147057232154253082588777305156147846385317185941912415042352482824985706389748935205910668628298220301167923247914787700943073841820538708839026711947083107563609064833496654834375459280581701257548232305121619557678092844706529703067970917331460681560353594588995758486882966003110284611002571491896787973548003333674176122172222120959580461608041613155379555637839765915543703296394147779754201803951643882953351996379177588337606629965240758832323611472456786877316355311393313774389661642436636731964831800379335051633742572254719042732516892574520604568888599463830095139116704708985066898679534984971991911444626836109441096046235609722556224905284451977213809186210423630280308641669378055046196486447804844588836607181666882853686833994568522724237243726898370333798397332509490765416421973534177446988723771570089726173695045546489117387161742167557293609622040223361091203662348367553559159496606372512743466375761617309881917173324550384154319734589345651259411326393271481108718775554783650672878024918300698507356001717118342387638045879854633168853179119738536835618243942283431440802715253998140453564510592586041144298905006401648720978207611943100095790614491440612486770389202108517221432926003476157961729269093034728857228040526215662730858124778586373631334086688448030365349796535535553064627326660014254400511212325988491836053088342705294507239269509455726402895661537368913777593519518464549492082344366557531187088237874623393591264223747346731117806702862718003458040401367160219742856772051101165223650405163492798686405204743692119092584531559729699634991806490238498265446566280792053743085052629013526768813075146718606932636139280828303677981829156630165734099886172307020837029213203504611817501009126875976026310953858721278364609338652480317221989589149064456192248702719628438983168336117890265959540935806855938661084413587626412585540354367335955263442400097580969627264594592060423042175486379614958492228089671081183207823589184831816954387401818364566612815358184670958906315026803406941877790547803210110817615921281891841641488112819520480691721949041554886511573404309037396294836999761679706717691060949716097464375126952221613902508913566922086839884223375544158292896926612022690962217696335540835190673307156774982960316866276601968271296575485306790592162024050190804455195940216833239744049030111174511807245526580135681853897041776630228344501021179765690890114875438159491038773390844644062562158021117527417213911392129714293252409983333352968013486747474909960684347437404478308663803137099755917548149045041049446546226674080903899408655049826586190852910095753082193030122071360312712479297053638605551168638247429923247651409897819524381886202381551843958403072142410907280831383112961180073167390258484064521013340638253837050662464368732238497767265502228665957323722276167073209475114685373383936625536298113014777305705641583378719799799888645731295817702390125144139877373603515209676438012784861154494731536535277705519980603078678343593098840926834582713681725355878414454767855963531853634123470178167574682017360696156250238491516655424655780854887544947868464446769384132532863855022118855907060244404079388011724053821426292568645593530140425821239745411549155837184883126418261930346930641274312392285005112562737680651004984486032607137855148625738483960627757348971298738433212033473724116777101670925933265754417962413943051539174368818041644712889117782199704003922764244300229708907531845874482255853567880982485180281671311184600919399611814400217035828034310279509323667994031057041476734056077122327654477508329273897490219539933085683530679574283623364005052839580189344933660818821722914033550951883475637450964067842033672416064499505035373891363924029938479302382686573563858750571532597900973250094968278959935599121637901656938279221916011387204005916972479676035421923708146701646043218202913050188218619317874702625130395291321278592162707710233438442909263627375547218732847648232868834917547537254377632151633035122969274677432991343426076313546202761391426665277619768598268986975485648775359080744855018791753309272041957496216651223661228341841543094701601219136455652189912060201686248699521665473663470564411969905762951942096571136000595088416690869886567498857902464261604999459139186798975660633394419405529162293468278617330380616647452980945053971285759950574278442042335405847656924824198699015079430139501235564348923116612207530687152460990291525902611235462976095574541905747407894691816495072341839884673487711982422930201585077025501765100408497214888679572519987830492359860704003840447267653203369644604796587537790393173560928059815254038058150788781250294375558252168811410477497396960634558200952216193317686710184573511781833459525910496694406285981104531744562908528945486527247880431808822702808036958223020379190978993011212579484258468321154588600281623076864114448536913352606846388595400922359037229299815490519509006606973922454348607169952013578588031495769030523347223199238512790842416243021514258017640407911503767250571386705787472138626900253579488544887510936286603097279714595817014150507474858076884580767261796896452574921548637496755671586298793829399007774022307756248864290651583368883372879639061961506170361330250114632016105776692508844861499655341834305462673203469943175255064128870520262067000128186698671037917627232489040261920017562977511141253774403814465622026242432403239588338961380497140954600035393448949135830769231239838066353175764092999384658951118343462693102101322944696997120273180672493718491857289277904214811340755530945827608680375231299728365403212617603882213634608444611903098304946305208709093416216773245715256410625224549440416064029518741363058446176113102855106148565014567740344912744730309506127177852988067860132108714283018176807611955322949129626385605910722205392001783564841551457130085350851776697545799095572005126020444634718600458346983995319627695466474212256405065473163177428341922803105493722427621843222080948196193267742276347964512998818896529103011816639072958636580048291858205721001100271858755257326508369304432370660181118326871985357542317473773765645396709743754379027608331283185853521518088821257732673498387942628273744024515180865656607643765693071210113952603446775617546783364511626095711525180374821422539205577263665301391087383627989891696323666804640853193958950977018313603106084834568034077531233546873211843630373070452076810538814054625825391625202218148640760922162706001461743566163359729057745717534762555285582924156358825085159697902819984593580995993845234024160740363954690428483446851847987024373353901314957220449345919304045102863500109589338764014904650323235392277511824057358925525855425561706947348528687144245437669992915640455743635381367791258546258600853974822644417976029127493173662998231530492732578370336473980128988171522719737822747089862175989011384304062592512928901308041613524482221931020901193437579273286654699778384251249453803838116786584508871394556987608182314226190474747113452193502922417168141283726537923615175496054726656490213952432185244639229767755073152279209036733363480941174957352247828021533040354876261768296674490836882413589661040114509565927577523597243435444648299551364590102913365405107414123238844392541257514297585462421728287903613344509991108229933747572320752302714337539274465590023475749351128755722442922272558187043132333017980413280270615530745476365280874465242288343056500048671967824487629481376311920630046530533444169755591963357044893108510181447059558843773642698406088460248012347301455278419089398993918868493312988756612231619482762109451723567492682288553968659899513826998143125294852235657258820277154968628725348831509744302586654661768762551731193082210004935123301599208587441564094069590068002428142945888425940646278593439588113729488720074074607406788119524349848537271246685444242642562374615051564069358353263180151273631933683974336534067656930487944443549405879063669480971773266142476244703848971026701478229808515340668428826212179151106468715134437427817553329851110197229549280655641555173020195790980074860239079678123200723213884827400352870862823933596938883202646985082093719566167007984734470336817029871664532876205303741617698210660573599216826358193569902982388526804439638563624878559714626816543796446990230494274822320602239042483633778501401229243942268888742460756470903559992215641211550590915370903383113969095671777174337718451913176885673260541458885520833665718744059675952451782654637733890059552320491461898832387958407831475217121377992148774823478858696593123960967368843293863588501038614623537495751958380080307498952366616089279034942607134422049423185779286365487506323377210416029330999129809483834413522216562828488226525213341743268453298466090439590136224380522115097156411883896161289176458179325710416960205201539456779804604120042982505069505364220649813439380556567094866768921727847314276797623957477271999081465382932351562552720831619244697406811913378146138869014868389223349162182066785809828742905560090281085034211884545671791417698352931429382415379739336213243213635996237900619580590592457424849217264886623542453475622255989964640281800733559478626959414345955338052500262598445463418846866148587309947231218966278814847932768938793986454681714449481246938107796778204695913207454016924404129655217442253348324700212311268656036674322561624799539820086387758075234315690265871254461575452606265944868188090783596460318246940358743226824714692296964091547932139533287880181176303164907028490970839451522320515076825482264967698050326868908855098966332955737491066877833235802315576432729685481199301506296592325136812734481039664795352067366948406477364910450156337329835045043202568562340141251891654671624587353450297055039226299650178841583988735386171608857094393549995622665878431363957474560503275100396354035744599704947363004212328604168962584614410205711705293282996401606688560197984062065659681434271826260228449618997679600760601349461050051313724727605636027686536072185500054043413997975026634128185943192414501061822676730346595426983116799190435607648996599823503450209093229287235938884274769623341352896334345816733572520811307852520100040039592928818067270747825947898386841887021400779863241087183315716880079078794035954934748155103213262212490230241444296972217139567466468074558255363973376219754301850580382833603198862154111787689135241132432006208985920417326470958183927528871686830284165850960132332871049772037529126079993846725618167540880594996553525693946910562179588016698493787501475571558178216224493845430813092816238637494317829854971277677581398337447759317047443397902770184007407053653375564374374737248727780754733628954221569041968271429071963097777610428303051496423061796583151856241600938881524906456746177177401808523517233458883890618882175684361875923301148895649049752125949461947330125673999398207036460169348713858582206852219734203667166939936380046506219544580817930233168519233685840353379219422265107428448500148813172490460326111032883593121616091597095021697832025627524586608542913981012882481105827773230085197691297840546146253399061189581292067506735824601324562709601413981500863205560042855010811640045630162628993896027376686531715934908367051840828149574784963548456773875268456808943563344593587189105166882195647272549873642398438128776184460005450402318072901756153624824705426056627861463313059772853084364487304368611777077520343574430110508349652792380972765810213918850957192726730900057408054794677225552079039557466198808667527100548120953124780338884778657969442033472943929251434969437050628944245800504832743787144280770814753367985962002678808085279903353408943428279536344631142751774032911121374408172661944621276605635531463130056366528203618447338913110930135027359375136150668914730317145945957221938537589577215777605403059390401053163723946937116797280933106545309889324556707691829987981765359684163368351236684225898288089398612013978086891740975949468110899062113227337413485797341694554777075536179099971272197760858575121493120115991868594790603326089815413309405153953779351070998115587891488466545824324899911506482467367250329379060363508796734838547200421817677720291438455386757046075735216162644803078346697839642644980931201951542819893158159205140109264007332060329162059439346238911936348501481381856459126829145008943025355359655817896110160050281467472769180857877834980989230955483918699992262003801827826524417122734439958375696656187322277688647703620434434471255409362131403160017571693513847584671986591950646880067977370107983385888712810322362032543360241611656226400140924872191747354627505661866558493420592011542790449547339579037038521623445898648232955348727987426479648219220867147116258837687465999867441493514489025508681030294132074010601893266135925313652362612607529705283394328560025999744156302160680360240015201613882007792118726971238757461147151018991040810091843125443206399953484015605345269411452643683020545220403566040362814802606443665629103985598683875658278785646350300270584064657001155658340288343741278736644848346052283679870653481393580677314250341512734244544211917859995287049740041726261098646183421000628072721246499715964751373923922550460702252343476632907576795498744788896340736377822658471648884170162087891390387849818590314229834063905475321004387250924126360714895069586474556254473690842164228773624165544555344983713265238050523561496415706137486185065596546364722348546181425467209707149839993111180219697731335869013387210506946995884973428940405295628472803514262465492471203712182567110553712968041608692826726407188605117690483568291375072465185793559697005748149103854820489572332091431541889694719836361970235284017799745890266921040709290741770332232792331204743266212594177966511973674202599181136755313527639286185552579157234086037807353477016303709544413236429071974025936020083219202788159646014829669964711047951721814378609164017098973288145755697439918968175038925010952704810052590280905699741748094990989801086359928003917152969050755922618158099330442746297540583620787564340103640903059315577009906966695870966235579265664226973994406209020070101208830121126933383206940916687836414518349953771932710168784609640764521883708712737911372598535624091837966288963430357985839643494486893015948920529733563024780244591138929554571142929290175789903826348159784620372705061317306424162404825314957548670831851626559923373707092025751024870943836880195234715652296782653971089683864756895917668166706162121667052803114748239764458291636928245072409878814716519315030057609290717564405845028384665443109018256145218111254570425485406201709003122956290837729316949769933854541517179175796914748300823949449421564850704800768260694327116224427945847518390982751988037749850440837083757052509616721921073952244871742871931327899211628901505869158640444247971287286819709778449981244213380931030070883755840110316450606279384121556773667892987068915756367973363258386361881437229250336794106168849465238189533174803211386490959307287842209292692345217586985765241895408720543014896577269664038392956461328844368805858009164440773832504421629348941464798282838052918719015266766000376812816767540200468406999014080197010846329758679325564517036560876369772380315963378000897141942591232767426625432999526308328947291711665517024521304854359291419317863343132543496451456306607465950474829861409281321554343887185894717596526242377229506820330491189481890221519962393178981209609207524074219031109633140462442550731359578167347933927461095565104406549516806752538030677324481007503381794472867912197938508729545441328435229962611467119161484511948397085330922174212202379010863478562588579351830011408524396120717118603633089868856078065792933680730604082922019334916235815640338352621190651014696154014537705766137145184383601019013222447001331175430899707014307109745106730884520109227598176974052397684163842013946209241621238455866195516371390725926760139110104041307352048411145969185426156759357957343039521694324491850778396172829513878280317185775353889837754098835686450218193276709586082616656006427896839634599965538354321336213099874276988554352182928992867304261281190444209680427529207632019011710735316941344698405325279414251001502405383635375722423116742382555252216075566982805826419966991573140635941762046214825333135670053303516786214814376483023946120343185792514430684570547107359789787649363461213334187752581971636080325154491868548580664210294031456137969053034855402305951945431828946280818058314628134874331550554806664887613604336080989814115411096896311196309073310684590137077241683766782184086735480609364471823474565349673206702701314045373882777714790223194418379852900746320537845079893127418218546769936811114264477489597775641494697247316616951307279973754724955186854533813032775374658261260339264856077173079208793369745002332292708790608719837195137210505398899073387807538261838006997304907821237801384113760530750634475870720288244826841042699686060530607784567953761137361463639015912214957158535474213175224726168943533088812158738175201784981153921847551593671530016312832255926511463048772302441786344201831527802677977829609498200826303006088741444031064201259354630008753468982027174992362607338705483097091825931416878299513884609314249792456488726955618174235963572475617361797931222344386840436524365415105048588593391615940559775879787536279664536441065920691557542160154851464786420155790771583157430510283448371306480168413559237350365425590768062820071966451235026079913713163442574147253740309915786229316977049739470310746339207231101131259778932238992081299691025474771316994280242809209563115683824744202412309114264248557822317450145197262712613945888696739186285072599872571393520196583902255929762707152213580888492687013860098828321285765479114119523480472283835443614176675902507026486001499714467746106144012954187801494091063893649389503764068302689741517977058712850698171022845024720440308560483828136051138757537272114197753007292967008899994007378049117095302391850959141558448576090238000488110004019345418962149688139759686957281406098545030360874030776646054384792843394396048022941403721287643119496917132252933600976730623752459595632514851999065024268889566742915615558256328092485787323488104212394383639057791879986931809838050233123835927325837576594044004662978088772601955847263910531198247369885485892967356765471780311890949790126920561348553725283016219004817583140886000525761533375775285121167181800858675998172780671686609043607302290083774705644606977917932663033357987879655007842264235649553375021025222120899478964676128089733750577538157643451867021848691338227524588935001078498670519141607321882103145414727408652586546820810181128470671305071056990215211354879455462463053279393602705026245342070879744936636488867438636423368102914731244199097041158564287649829587773040959568146583139310276985757678194766033131236251431153265828374318806637201003952020055230807727456502880801002143988279169051841232884506510173393009052512597878064013172722721765823548854940029976840841397288830300703346427131604969858587392353579989609026251745560580274575112615517389807962226455648157246065218791290971967151691135843054897248967245405469234682643593418510570338249289914990425053969716381358529840848392299108581188030790303739515776596220110429995194777361525236597907761079439488488709140572222588641175644918261876404100846214711645874069324495704803922602311784637192876458324170964640279880930712278126712712983726011482391230201335674662668941482036204285593799244617542145719333302168005649538168792050486284691056847406646268242946196851046669217982133781936474171062666012171426112626982840168850741112961659362114481562163564206959503542735666433303238792886304330609759664776996933713374359859452263965809989999538633235857130697786903300716373396932971202489640154059212787890123831407825406896546447789448560324347288317741505617249962973444549259243541882896019540363610541922268864154114230178729328088221684296998966799451531839929702367277224231227325756017012840030796037416883065236151561053653758922214356631618988289143026183718765930036238948707838576404882737522898946429442974079546406278680575158788114352219946447498700988356585059487473071779799689051722928445801673884754209411371983014743045957587044585388633585257077987071347683653585624191254111568740765634363471409330149181238575688593847119752783368754845343318357087101858616948164304913352741235688835726752678460940588331175223393004697789632997048882308426242660903755844307306584415099742364061171621033043654864208386689763780923966635702055106532873045471071539169910945834624437254761964096226701800394487774162768480632225755488287842602530614113904139376568796621299916979461826409753044799161234113934768358224493528305019047015178690911301992550678085315811376995285275369273964057245424909392883606131661230066153395320750436893212830589138555273599255771897942141563877774368326099129253803358111802681759759776701041632440557893822759817370453931448604234088809353200696968782760162145393125782782672834074615242932156181173270106316330899762979331775802032847238654511721041200066356170196555051260195289795896491161572296859009531564646288520798185765147558423175176442176988738810273333347602415050905024114468881152356407061132598555978872324104377716208193588090908064964889352400186514826715442492280688060987613622071751487094746505449945474436855255822426168333579534565592447904448450332837384287642665614032082743963164596882049905223435314725293377318423062183563089204673514093394543147502938241767841569359252315909734532233509215681742508493123541949837259498403802621342652100311911770971089742817466381778056012784339428298242591161940659536000483900836404981753202693164139122207881720462523230792648905741492554396271246549232766774202613573253311203545375496290602577087062695185278554598189893929986979946838300084033557548742460056976034791592265960600486690743395181725206152887635136252255956770290512876254530120353260009702873027213934215864862246759739565675081715962055023903993999914425304170559894534923594126981012921567733436319357762859471872557821249381273534868614067088723087955650780559760139434247633143813251632072578713546092597162684744273780734415379583999603831500992775444920654523992095506897368666459041536626728527348865706845474404204776998878074068578250146197215458836304375477287335107336629465614849728457458575594325481450476246577073967824488415300322179223774915989053162635118284291334663355932264011841744638781854659958687595681996549281491783513255817542046174612976306503855707563194219132583957774916529700274193423010496527655296531623550438658016306185398078226810622291238110852553606619959043328021479833761568915436661252190504715549732782850848226711808024667166546994496239755746181857752108824617621582801462981427775019375815260904437271332242720551039176538288932375140719801195965171801525406073992702467996564728706803332744417051182983821955056723674704788149053082725818099657564138081721519874594725882868291951046320172266891043743346518473282566144052105230819875133069165415955083382422932555178247787164177707237630664881364968259332738067374208131001399832853243575106360172300688637188897652976238609760681129074789287671430495995379472572561784737052969718230207092964147976579924581413032137315943439370064247911893202409842409238543497259760058846159538570728264746225313455006643800203239882729732077992120107659716211247259430999990072326222837832845891691310266596630254244570397717282635777115215154671667774333829470745044419403222853198295078386555784650840776463150492786771174344104231359875981567074781872289942654778899683105391918251342431121581490754080862718350390534201173451543292943379563598934166508803614652702714556486445858639912403159751061792600356901730611521561972409697572391514018562972609720199102164670938516596365353086882501659292988013891079546847030112982287152942539190048901505511442944075139637513884466039854271589203284300230880748804943748731716843972548199358360347786317478010930879979004321686203181844491857799275156929051076812869113548032437629723422659157997118144038150211177912512808340842283276230550723813282515071048950201756303753955650090698488292448658464931374062562420447700096848187860951665155878963816734765825599833184376437277534635430872788511041444960056484423516406117592208206490221272217767364175403607203771493357926095682549897944733733891834960982434835473330128364109484179126848368828222249143530819594944601459002548574903800351062778353606481124926411023710794566708582983442903562744810569953351758578741722020391785881480056302141516512216295325535346206406277335098111042763575455403356095376364243564593190753633855733036772896786437878069958285119876079048537224625300492597059706710745488727206620970714358679543359355180953194507711832347732415104398783905869292576926183707978244973301145773163455041367813013846114238174680775593483883451602440323752930256363458471461304182528042969343574255936965564934158194808069777242109684671604763597123726234053451001624102125935166995168129749822588919804642198842809506815604425742388413714895849600140447786948786649193376246678697804709814473134012163254129517533067533419019593830827021883983893718369715896785104037361614784716050753944516907414202783854420459740316132591772824137858419727985265246913038362853673011107967455253851111680629039302840742732903069423025103645170269751797154367089720541103639751073092879675639998237872420194341027578185794355598233963437575572282376319263307803360334008660979094684125568816163425814476376245749937832332875755114827706861250005331044688187221617410733214126118758327183360470590885030914453643873873587454580402240895580464685102019206041185382793079134135923769285491310751590081897957848080009507659376827364171475339697694323937417152981276455961610400820067320531420613868811854204445147286337234359580583150914734171537642867315432273734962887673591709752618403347667689831148331551151573991314671943231482500695521643667359395637417629135802462571247422059810266194802707497258052018511194081480365474595554117082354145778854081916042616398851181084894849797468332250770338675477034290404158991209384855916596229996275529411861151331917613574189679724335778531840682441824243486725307428323629310893177000980099520263804188782971273580539663052501082843468173305118578504800851116635127911664902244113125396091826743184051863457718902190069679902528472138718740241257306687917638924493196662933882306866206753887978757275713485024812662945566285309165383025429903678632911623920162482259053991777543824049068179665921174478693079816826795835788269565503350023791339925590310767153042963803102554803265158884943620413254890374519023967905525020561881898629311443720944794642914908365850372619678776393439046573732156603030587617725285919193439290747828161996085356776011531036456547060652333923836571783796331009894742964560766968110134105341996480282911868058011360306072819873972681473524558984808562725138375063278653912582590192940404101250252403408768585148913339102030932753103948071269106529359382069143356675179694390250838099555439278194847939371828867132772038199919392916772022431979670085315934375393108266433975501232111992771661810844139957343658011275624067110550157411021679165125834517087101546033542537935112154424211613617494907700913097772473902095667250709375306439065376602574585322668496759420585575242810760379458795951036045617219736604125663171879241449815144815550637288905814008393591072860193045397849444102113969035908923797804617149074289104560435636453838959952226615172749649198671678351159029710659510491816597104796842615593829771682355085276483163691797076132251689797882001005090870809316657064945632030311975444741156996294774283354612666263801394034424801925762632981665495688286269685070703424870966744211656575647861870200765213733182407602881908472691429351834011531905667641526514618779117446124495670467209395493898292251897356659947889028386780178027307302522258651407544442275776213813336434817543516423717074366632044443070305758850016469706968820712813619505101157236709870235138729127819372702425884878811109006275485317377703543929398658145222292820446613738821979379016919656779538740311622838180592131439995413757070372226327889758899655184319820178863252840307303625377044818194126358675074250339962195680913662164486529562206123610786379782981809794484786650729874144061287136421098296910582882869169640587544960753383653993623425775483092473967217696223266580718602438108761039807410330240855866447873075933551643857411999627355242417402986184455012400671800282683190798035944501775864114598766945579079185058295288731779444448799725793675894825763114313721651358759335555439213142300677969661103563934779788931877120573209200465245589378499164771983447689679761715943739084010349543171791894735497489053699756934778268052816199721881330484885056563417821993627654759104687502925258017851350404050527384561043478926428503019659263209762481211119244976027845463254413920487042791150284751736455825283333315819364567910765338809772124270079939717332475429799493039779008531002228296284774086691326637742982760316433800801225004599493634626634975912080617953024589494270495061649015023999623428420299004919767368248784229808675294483481054337632326931311600118049326601325449166424558724422602031492223804271809410501235382100073054959486164952632207660378654044060797769269605341118864284848557171469730321076083362733036202122164089038293689569025304589124895587908492151960905157642694241481635713615279320572020869918523719601355577497295335012388703563058758906192955486404524539735677874507337186659956671785177226485715238163358182655418248387878788647592047632039665752699716905376781859487895315709655624661728630120953768448269338844409544722217326086979533398290261266916638401712120630165512388668251618911346820109278671915117581856864161951953381550973220688745885503664828204964867805343035654865674263747700664924913545925330977514506152395430176752398400596972659033347213120226933162245406737892906988085815977169237868544635576778245007561343832012824531353453673512669788503399802890744509545245150899964164436879151880320388081652652220874256527637066133423835950908608731901749708910210589183112137668750182546493197214874411188900933118091955331874440862916124475640268312793330403974160214549661893695160562399606450321266859614769877745920014817484762106775259162972245536753178358169399322051906057253598286425548638085621329782651110800604538454886440370411162075087339210418131563986156574573002786086866702642650444328625164988791832595134260657196451756504727075151762856576524240349176005943570986232655817513426575374987618501235642376527003882796353382766150898523495164734404396713896434724120008124345312107325434449780815047520012616120914048143546230970946550972712834899937317052877631348770522493620349418085306104311435707630041905792771559788673169076620523786071370390843382128184611462832011362615003722608470411796221701787327894501307818014164187045381919246063214059850428595743515717304485326151704306005275224779976913274299045174301492779035163010381366502472819884598497747942631904361983160167487003029419686837931300251267860266911997034785977058972580550021911585920467793777237906478542087461342311658714640860326003490246438339397595134479429939846184308291385966676868008057397896720635016288504736392267201806961121455427648688648294288695591191436215321540749011935359988037254876278866576802601661858511800965797873910158445521860654758855822147559780869770327237165675594254932039697019000629205893673338979966015462584374509891652050314951450407223387365687020494542225103828953649884755866145972707171907004614194537843387349164787459325213014081544807330965890116809559835057459293867328869597626101940726754301600413176680984517723782927352008963048590652595723988438367832974008272463738779720042494591072703890933556508996145663336146209326774327859051233322371135846807056178762066792252105864515674288805174480250408602453191460199763976309315426389724406757328949543013375678522973251556733373006572759318400769792042568729065796194920899678958685899235148864674694439545442554210838469589438371110447016611355667432894834682120250922108259667860015295852150757153712648884374506473313998937434015980791749236277566614703141810560858838213875701448016114297750042563627528204272439937870063339098152283755468662594391154889224431642204049161709060838362522604223679340949868679200310008524158432201777613807712356072448148866955091803928460369121370408233666330367152978671636670349483796312347025141184716021005359195304857157757528760748751654296976574453538792189948488276941469534801777882985062222548288855989693308710527995813370085209160594830342497861686072498892884100061981381362947071398647606571924557717316812638365915097320954139518269612938199883317837191946848760384599690293629971200664099973927853145957174706650883443459615206709284321244157289133992559401709047330790255199122573474675541321110708330991521549103292676764020574413983506989452255460255482332265980250380912301773820711616884132991610455543248670174114285988706832115571026486854875849523037524698941717035861477228571547855071954278130992141354045726288862899770926348117222215116212059688068582010578151809341106043278022051514282346888329582970290202253700307296678888102696475887695454605668662511796488352796556690048699546464145658078748519943257151853637665904567649270177142010103852524838352361118015105716944443104718636638003413246155621005435939559501017623144160177521274265621351004419966960648752264570946647466986521856315583368801602918960450838754590755817293561536616211550872849473090622615086164436639151264726537575564363792661746450053983397336806770477163883266558585392505501339654489230850239726353469451905132806260028205640703307805925643968858776584580873855756233328527247690509198640917633967998258383551061826294535243695113459474067390988960140018507790303452921693763956549458882463206036858454802514461301024408358196184331250125399472976533025898111335950207458309502440942548339905065750785520591320813462956764538281797514999513739166140888776578258667736314050945059372610107216310314862853337605098594970347367533416624653373491425809009658997859219878705989835302014677798498354187916891819562980371329443005910217716203934746106268354924936026260678644453141509729639275534803599949384985214160403394953177878559118315333050452311702443144967187435529944186034737498418116671164292976408640494439114246857454997012128085692243013889860067491096325921261309480019561468304952348996958989509983547325841671541398123266672647625414791592830199603302711838148570274930447604961687498664896267193643766414307685860881979918026626251124484960792750030276242692811185110891816652897389101332042765538331673632693934269790433869249876302982726789464224195032059822575627325806201981159478212024243326627332812966882786204786028501099010551853283573438249504115080164926051579384386023693761802514196029309744283305630205194251940300426180281828978268375507376339884254496533587275005729119780589393802206793683173373522636421458417637194629394362362622738699739579465092619401075836619691411088349939971115040428232692790841307163703472685740197047161292368380060825721675407544467949499485709925716866638320355934502084753438362403945018415518092699004951162633525296322161465128265872261498936438039934133008334728898956111951761391629409172917310210579306519586194556296708512246455201394586236644566073966149167617975178106608741843034191611785501459881887510356989994271813146380812118504017061010421088676756201702133428673980264524943368839143934165867127792520588391789285935251013383699694637744648350192005518524002302001010814517232209840580812205748688692665736378396581729797159501469364296623372973363345784926989204984200036179926862759211488602813564968318921892115961834804866913932192750261520387377002983635462344450359339252408039293866757603172582385559643106966976850663217531640386978848046887758656534260261345850741664021301481236749208673794704413150416425012749341476219307875435850912260837413381793222740482820283794367072577035829945185788166745958374254323084170422078311477325779669279449291963317028543725441699700968454918598785661033317195645144068880912813607067594319369297521898344814695950948318010081518663360874767855006312598623998742816502358278052282649208789861522715539897321009416186881074548987520982317195229421502170757496845282389998271596028632082718655919072308055488066834116123092376065689005549677116454516326778175962952704346220465999726535132515978677436488690307730933220501205543618849484777357636734904578679207619441963047150897314205394255260087175852487784900377531047573200260504033715121340747511961433720348912591194193979938746779801851522967676195787559245493028275985498584857723655911015510378620134387009477648417726993540025385134264348520270692123169976188122322343037543277610235738665259478472180645449986943033374953738543392238034752110878351207906685241324191313480583648202223376914700876198233887350766394988929275603273313598818606486740296856354602138510761172738314046613555856378334054985243184370999060189750975793062625373053828999804568529702622370513253054106546785505095235247082065312946165792190092110506820023335172687090350884584583807020390543629181677291081077910615295666030289137954269630238952096725116124444982402658437902525730900261237418489770107151420116588236470215287569851904715947070101042748232312017630848516760357858994072506490909263962638601102662066994233314920038161639161070672692660510888605761370187873791425823307476282784419933493246406529616139319377965302001780883461119539426215129413823813097928442395830124591107788047358971442872360329552409518404110170715287779662060542642668155586452098322106021191417298558318165623423322931996773002288219702338493713701735320327128285859711176231215438274556684102931437430486553686751212660210633097072921234303616089773757845464918452638428846802326324593624120819650451913303518004565397334689196200684989448003735390425955373695651953655538260500992085503536812734153846758402853729664511250906871352031597608985341708874051555490727803513655530024294656675065284614433917219941603946234917799056849777235753143010387712341469041725849677474746256569540634799210669917861710287384306287854864033102402374759600281552233833638391729811014642245283580068976559080091570124159820620045269154787595256519389387737531367695750137769617096253433495384084560963576347657387102578106406776907983098188070538084057110158976159735322280173770705990511943295555135656130145832800705768461193128188690873280962889889185378786114765870456892200012038163039788772856174640879118791946089527153094078624627977825638012444012860630154740117676973219332661359305361162205726729983693057244926894490278548487465751674924270153681830967596613918824777099117250924527960671878154094393641004681778222551464106128203201765409678502714945696138196471727804712214601048930680300962403514122552650908611233141484228253446683044701679348869360917121795334803985067240669895712788047115980791686136147777652078505268735197292968313593269655739694615709072014585355852892201019026583053101036803192901489218895442621022969269135017137744355095952147305858898600538027378026127085568015139816946297661433448388010118340788435026235391563276336850946377973674321698718731153629112435319627491235362622884328263514458808370447336662970947664829920224394006250200212434297597711305020674295551491202392001963630528698648780731519528969906543292745373800645460110387367722387914389162087866063407684524349097329229770930044634757317054460071640658369801196286617613628394197670480202430372018571828844258310305311429253540117379818625556421787817599832500026981008437507543547422354657710695436223060245700498824117841146917754031902520865987667472829362141888211238876927183147184506825501832376852669229348796218602623633607648522779873104407612271551882094023865267656950386222848286160007130143316961615120250094517844727373230217824953597523801104705961518197529792961275800709388785854052904279953031454307074780855590289565753803183870113277951363302381160880143797639385098102178981502623419189456080208496385113425158910589119686404351648305004755009765079552322555634520289769432930222000624388923595420162458602605905746365807395147190426765970841293720209526883658711601550319514548625651258153972327531082071590367783654967026033473232732692221350596325552676562428726402920801219800405472832528882994408610629816708439133255769860024553179782556990238350548564623094521060605329022531087662966042703834983710902831408639280288085723102819568991377762381216313358571262859208630616639010748203041374048977522961079582832571473684135992127400689940362324339005863795751875125815524584362987799766310654745580642272515178891066341925090781976227466047150167801132945411996924999183757755771542744124731661428989390334248444042614188129144400865519430056407942234260008442290958270688291452001296439098529519454868120520780274686765694178595155720612447211224721646104693051590028059452730184261784311801335109359521322587536854515563513474830603198519886283746281397475158486104984056020160817672993703240479258028058258584365123592491996993516494691814739017623694378470321731142658853611308646881110778669023755148192417269527919197412101415722229416220318559004229700595640303474790887229254463702708301965173535191630378152697456566624303324406562144873441263901206754113288565100292887990918519424033233294582703527194998252482224777388143665019987509192012087350245046197173774896591576652783258513142244664905601766996798600612339524931309525364957571072905999677801558223047119911916853208715560704822211616426161268981045567484093992537909133694622920330200874251108298721691426036117685609849031738486178682671657860763436574309441393855249228053063041515536375838229036734602473049852945502274512247479829547512992720963396213482017168940188027284384431969994044823926052081579674924873062474038584692676635233750173860808050611981010825291706129624377245713386443081999026013578892338590096689959160476907383814210567112900516318267164312521352789192825060491897170510190092978584724242319679658587685635495312317340439801393913159817670131658945538556172784231095116285346421686776973552765192970397873421886145855259681522578209461825647794435346571729737062195792036493389397663268949470443001142721870820589693823981143477951850631030763958500942553344323261104801585203263659424935410384143216521821508309342223930563175955058128571338138743574486249180926105617446413166639957669867312047853634789482529711994282090613004500174440953035129814684249184619831238513714164177121811725316558823123841567303400534506945032171811754547068450115235350267013656249484633162676753401459201306032380175992592416035595134483210893447003435999941543400796977606053626236882662515219177531214276523805909445238498050678533247912604231549857039743503836418151428463551478955523822588846939648764158420526452025644922402913316409780439687869506396310220668348260323223506731514388320705139813035393586691270032076020605479380022107999103194782099325024249692684989566305564424969529954616307533259126676014676320349944543966659032400922603083987543799709083638234900834549911261723438681409887398390212713695144839963195675706695686489268975810316503713837319949914581436752937730923559067250404321834508342185137208133710903193726900101473625627308152950482373442224607295160416329925329577831722700612278919514655058361850842207762002497736470707079400241394639185803521628767886221909440525343364330550596082107736521594174673861616390265655563883406340261071666809205357187365974607105381667134774512812441042522585685371738197563805513995889933992096911946529560216205797765654615904054534536443244862206778471341579853434875493690313662036759287897108429517499816463382995722178067340603899467592888776530123587372044960110140929102637405085465179793771073153149876036919464943163595068906336041063805123019339979723053888550383960356341285235035314508053530752225466622494415563258754553250062500959099090604418403043761399295056446008777441665380841709576788254662014722501246056806825128856207866467904225573847911286867446335967527758042713205551717455649761295550134342721776385552139434638155927385173697033985374385394155738965089474462146481661701119351360955186008099106832435748434073970234250267300124531910756952149456147029642266255263921606309095169945978196078434863223464241657518206996824877449871518142065909181049333211030763837780629777813911773701276013621400225140445837367597828327989055133981627965625186239310276418789778244345052158550418153814038759635636896098982969802184816265818538853774397277025800694815080374614842765191318946624770320718513092605660032787625205931473081757276656809750998705247521106425765666286056107951384468795398694720153898493701208076114201209453459158043198872756473656815255329501893990823140741649058959474837530146000580673001727633269745685877388124484834270749323876611083542437005582856486209029835822495127695247114254434400836442508456550931475532608317515956490606605889896857411691174894087925781035654922825616667948794852090817478322240727157076416860884391912701538492217183722552955555414945383238212851907316157591818023904757205052191271561044010130760292729109647065824194020059332451311647502779926936853152571188175899437717208137027276152725315672302243847554600645046947567371777406577869863844604986776356191607481796941011942752007047506287837760722997247006391607126551028092892140960642191565245777230803601373790932226803666554761853792456414923387528360364398627879368373132464168299201408220838042041624452339256126230052219657479965956570906056015617706558509345092313884046864963253666084590178540789843510857264974571903923737649128732137784240659436642451069895326012383140404976047972697277928748166203819484861012433245148814319964192723614469262748148812673966862546880269996041925757459512980477727821124628513049019458311191711436134067860050028630506527703213202911533372714483066358730292540381553750565519103567625660622009812017561179431754406528458854239387343716559159438757026648953861387229521420549510703467799040571968300410195556276561586780349987749929662140042910918819613966704604478605823322133586347538108098730496875207752456300811573168555750518325279865110135426690007550804926309108890357000496965992501258143473045442384189302045653125059318048443376934441993542887132713927700271165540698699858563670543397590145631669800449697910527848210758674251646621259182847784815678064176406805687226596560112670012742707213743893520608125047344963781508133517499175582456973766539860489931636268613585128204808862652291498473622352349961361838627613961963718782152059593106955574588296818030310563108783976175438536482295457527976532287992577682358221765285019727180511524919223257283986933281135367698761691121185865682384141102929967699187492377787919606946383510876942240249699867996449968373865640068519466172557105498085233837140630788519999497189677677597069402402168406555887735718501521779888847978577622369954972415412641396900356795841633881128788374346711167895913077297818070336445468435006975817615905493982869698881991969044404584274157516330823360657603318458668210192852134453239059082516796731424507689514990559255494602745078331906453690554537700400769808937494995658293070172085548335083095239467687748272518061711454691541794388826870700004936962422207367483953251081236598701249140080012789642766766111976902160496728660937816110397100347205260639578043427636121236688573530903641481300803722438285347357621348804177109062478122327828098096183977684133203421389364137277208421309814393688822957192904635074769768418575976335286622444010607753499321641313115135818254065406196276947531709881987455270424965705604786444408418942903367363379759945725419980555289130021059416176557150868313747362989779466912322950325529021643434590044756187039615979448850847161837920795596549812692037542071829228011420686976348154462970803122092639660957922437484522813739340136122643365778136600536380132660335383199044230840168856203559300431587545015084224820101457223605281349167702401095707146184862427701357365417146710441431972121366958019928065292280259142766250256657664098719064460277085440366079556676581768716216271186649048767987195740142900538000991000933886614870735473260776866090755445681513838385718453356031644479884607950383804746569735911896444544819178372278580512791497962628850049256309829625060636381012770021734789322978275649894420790879168304255277544786826153246447622088476039815644597791403937772642299531876584096060584636042903204579964959949242355056443817526522745724681271166398993880687204809582667318047698846092717723190927451198797959641919972149247894394080351199815119648276666450832521778766315352147068734768206023175354497137616300536152657603941977032667730564781972708598437446943274804300730732998845443285413094885499238804438052132206284647532817937349034718886312128007100897380089227609497068005378685889315661972172984177649192719324853963273509528432467695849450150497917603960566707962180253474559662009673270162569593032099372669853020560324515994145933028547542549063176143663787552336010247080063361240625707922600907266963472171393809616378574110415692122802065078278455661284703014696331880326962592314887670911959365002236595896389943757072390140386374607756943789068381169962410693005538810166607958319344763100087068010770233863535947015366897151734306589777628344013050805091182639912570817472550202256184941453076978485731043513813046845934337427841814617781436324219382670434141261530267192141310343714589824937202541784805910773515758498929165812126154778274758820664117222842649175323154639269812073944604192172953976175421060188550135606219907977508276523900148984290489402593138093467193964257532096055262950709430858553125912328457030639011834095839019239219355227171365965895969465299098384317820187775830664736079224306922274071246783102162968482028625250145141049808503143372153051815917694046174439262152548292421480885132723367765777549596204645112406663916331335456842838398901744293089657104228096851035850391038340236390241836834094412302877116889941655563347952450605311769133525837195061597805484154918374159286458989861726136329839164508813497500216155542535979123488682650713707494340213267870303089146916442111179035446705256421285350347493193426732330130948739318767918779728274375416197987273904660873572785662929563411780677573041283392399887970977397595974706076001706840525546953733091069018738632955637129822451744645284563140731367830565323934588001406646286184803297017445489465863108076492394746370885754131171428006405279743160515724115777381665788596711849308035697549722103560937658071139405428250711035140760373004977643076210047600011808147028782467014172304132787492539168722842663423519774646863078288609120281407675197853273092395757485626733074729430971773374862451949645644511203381139922110760670602297723448542364603125247789197153506901907076662231718542180617754473381337690170844461455063464960799641416493801836586520774644980362728889013819149241281261877111732068305300411903919802558847421654392502965730753881752804145525761514217920984700242351995430515284436039918831810354183513930029370629434393437838109558673887536383739301748018627197722992009707851120525786390473297339749668695220630693893727586143888166924149001815343597158591426405634470251229010614639526203207668019343191386121226531386690118854856966046053121970566414757752602518614668688490109332636787280302585381883413717305678012583228177437417968839812969438417987781092982881930346890711238574732167650045550165242106484264696418339562435021353018750175627684023317296610817584006322228249752238185862516801494876964035975430817778334249230926858626511744517445056072657103620726212931964778715926762596347256377211225281886856881082590290640604793304211217571241481652318235574370242802295018471057312718413220115325894008884530548475236441051260976388653539258496392351460052446276867490304268497385088649448787373502477765091181776547036168561459666416550430679048386411024905678661795983219952799632963559898851325747116249974564208113193973709982734595846121754740940399515323613365009802816810812500792800825382207430004343362950404650123218731518438901583948067492281189779386274618436399917840759695790962363790173042708145947045567053866537358439942508256219456117317444907411350502555773882506183425104436725659321280552525509386582229779923662955663476904277042185150523971195880706650528783457627494853927345816377650111257541823451175311674400045813118222308620887555545040856851082252595775292181074238689659167814285120236836301642316198938278787225342411181180977529274037741828262873851481441722549804310714876017446010552448662199858035724000631801710943369196755366409369896298017224928902635294888516868401270925605186986889411942443201491008411924218846032392963057569941009259468628712266236719081130402097904011882285168025848079624468108361232759208201395643285860799700215053802764534157218868357336148371931864538253202350835403240693542018295186274289732511488733816214907354612172816566308833218108577660315917116696928123045601769094845123109798442464980670302381842669247058731844575894642587568552399792299394136516718133490274588309035486375036517607594268528062662999607012567912810588842979204838128054481925077784291907114240519537519861759908116377784334329315748561903270455301712230352161861690458000038681682718988409636147776340048690937442063045709798261301205259078936545558868499367854233353563174329421280310706984519164625923163414326601351677789484559555669313943766198477783368958984173157696617069680021628046643231771346153447487151662371608333170232884994730258262727319537981632832315127678943039419936476216703176914039442154156639627265313879024026638668050135998502326126836572476179728466635927130713241435095613934464359425285825739339237516190498474774737487207491806509542354755835240162226796566811960703674972678321069173724139289315393779732615268842292484690059830019459297178135321688731415964399919282492065427108476416813279112771524103639393895426373529090426479135902854842389898222824954807217283846704001690874156827261870830147735445057479287955741411925785616430288342743354761043057154082733973891402052618367862776904935265067313307473755388724160090905220491456994996865615403654990951800338869333875555828446093419242408497716981481891410350696566339377528930232919018025561587950936363842802298644827309732527558425162614083909755714507360354393858512653761211418972398389298912563574811354261314294357401374692481542004210846306705205172335730666790294044393772825184623622720812633630300378594591094308772153224943076128516020041270171733845990321057165993909232335952319168941656118601916236503155393925812830394493046858876242490749253297484573330732377321693091575096633463938862434755748317305997594835177097854168227104281597846383447937625926828355730608669192603505762634897976231422025594847714906668406441235366931595342222043714954367718656369971696851020731846802160840266891511012247622964056747948088848612012597390366067287013963238521701919575300695642609062459836543434369820859320352075544626815263461258884467983985841648284240838596876913594906435918677731967653811402432176408344904053623101313876254155709836714528272044264225189433361512902173347531435051936725718489823851946535197489590971444119443763236757512004550868327214791926644152912261342471806131851938619242984347892304879494647103717730220508011285842579823319775174952217500403080124906310470890427581590474139898892899605052920702430096558413438895386650214539111740695885377148264185795714335805616406448552526995322073212186251188093258149602245964879616622887904036917152277396129470880263337611174998602339034368620978058770414771040319768975114616825857726482108654539986405309929703316986782008785372835271113679839269581835140322192561245282854129734156837807970329387079039482937918792391913289197094026268185732643866894542994251285300077777664471380539761304797534826727584262541970154855838286924607894810169754387780161589582345091749211106359607194786383738643689526866189635365473647728820131040403968642644524993142038194699178132153438387610983088383964591762628156771517425933198367248106444345078323563883309920659076207886616411273339063706130477883350227632874428971762766760354833791741127074266031598388319602314092961200562174690678289978150751321813937644255327093183528427735063104979207151285690066243361146329719330335633201723458771141096933017431093339775403861041681499452691592988032975049234852547703142864166171400645258413153067910656852215606114843459874164733624976596184877055947568558602609322570795433494626639368572815771882825963389617046893237328108870784022659105601922191609144583072964665616821944074493662527021510510843165010031742604190593950890733643688761947536046946785226214599226700661091011817680772481891306370402003011082621055448169763843953230410397740380114041774306070023234507079528764439812512583003539144827188133008507314314088008560607241668599568575939525650489336060064799837878698760041300182696541882886344887871997968167185413574857991852234935203697155955780510363098956609636019275166034190736760234899738059218384898657654271341015868639274207823653207968596003861507335873771631041358307107552356017464200484418610281046472701856486630470602108025367046316809875621484110390003154676102482121671221953612242647739772072811192076810300486281660510940046061056293614885362972735969876183953754420142563524541038457072487061450566861122367683886918196748299280963534694725226162939398158144047354486497676197431487153674737915473380978371886614203875503661422761415903953468378296663571499719465482190513932346225522226888794204459183201034905840695735533061531780216510477095035023943916374326765360056239576418928639457221220739315231866446006766574926303677689954097691392573473689236531651019910961852372280898587757548042227839312605506934537111030465690495875733456331827622263147880806652567072458011421382005047853205165398363137670138285528386448875251017216453176313310009120153043557374963773147859258313150979593529886030815599008893179534656295828030070138242066251035323383797362426679122052977131094627335387617053667225021032671105711832302267878876036515359499491304639305403449375908764231795263435659208339098007232831101748178013616952294084802840030546482895529097587011888673283752931842349718223260516360939601863539951707141315974784237542412247946979434531230236759873640307327422024561358962395200933655456177657981539597661279659463400673550464472469116427946246029213269886062905802174065570043490553801218641110122060680744056243467765173538573081583011310898741499531440853467208636813703254057578927839720023853941415150828259692270274574789653862675416998618700825567053860451472101205236319257913594178935538848370554860295345586330930983192890726381810621488201046119085918536063119282964531636200844895363844677379701909724633702214894434922976956648328849054039604265576779992973012729612261810030575002153713054552648043299521182174972194920196091658406486080042973663788202570741626291043307536087385320285792972185425105040094455356565606246637715024962134150824140158155591477497646745211119808387506669296678232278968263560197111211994678186328804837303573050175561979227952971636934476828900307346695301104037809852809021887983930889191033123469051713850282929996489815286520565990193357620479578028727642925616426414145239779511772718044454753377559371933003710484540008034759796781339528077370536906441675198610160742205973202749925347299864193349294676931980443355804904100662049827269035661990977041987464258317214686117735621398433766832664167382180966900037562373844305947733129003750904997884700503519047118801852315269576358500672440076653558668322813986037147433061023121860246058813078199761298425906528430489371556475641896783677452350992926195203667607090961968367639808446361511863263706828157598222697872657128404574601749740841141072271346663409960493751479547983111017224698633132740114814704772548048098454126647348975090218363909367247874723420264195839376929384143523932834377407545915272697406427460189537309948877925918301703393076949242975304090855518719260194858063709818783042221974852378950429966720289664540809839376699729093463425727776537900361126831419743950499426335802673330091171876804095316505367886848325383747800723848851307759840750773332325542957557061336910937238682496940442233008629812781211185674752491370177982991791408338980393822773001253432539644733793401893435918319841863142325849423414121372594286702841106341752135209460013465197960093108281811099116060586912289733877140194637972106155049299849609273148788320319306868798236882876097804808655380287667021584158923525335738264646296347425776661985094526837375024143431526459819730376056650426707390165276610301506600977378108398275921592035096421477677505645608403808379786070761895468781951602140306970930136315303316247297522363447085109974674875575215991193438295779053812436722262659581490151378264609779412961839265679582739171829153136942688588041061701443813873371295264490442373721575122229608149807851102037360407906467444878904932304106409602092045523238095981602292568865045926541375251284381420519244353524337220108136228740710828761327185603140296694641740224745160571092865749658284646743389311271084497212815115591356953086315882595535369171849724886701833613285508862036691911675411895695374366883317891746186480295618066934735936105513353991495708775963679501198569845782053841437777611153224050944126925646240658798793412606011737954050721778989317277187576419468296257609354500348350869161341663904618662292009043018123944584004545228568098647755940789956141581475782998762182802915015442410346612362152170370197087242153741936741796436662799054078571190849516359252699081695114630517531182643469826953038868145122385763554939194504334855706872719060953435267238938625337153753849985601987277978197126544519527962762914367374729297975433363600997199571020554241801555764890193584932238850009124834638010186309995805610045627647909883802792139680993210084890510963477373035951909944445984716806564471363478310378362087371391598957073410718764616582127692697622121891751687705649699600361876544699303920125478736985361763990729679557038346689787968960307972374208990429087226422582042258703503314553529805307769752577564082798009213634574834085326357547468881721792367393064786315037342106102696193295537396226108275750299666269613863783514147774569569904230703598364767199248604946353182059501895582986381497037826722556788976279466544247411103901337729073103234573281020600436179030885449132993989306585011605375372359656498851057109674171131274431087654372585090653068975059089250379808540704875491349405132256199779908437300159951187723939920044643530064761979475540468298308103674307165678702833023322951713117231800445913059528315596863879051166922757408233512195235008913803972591754719547934074350666336329258444919369956285317191447586835153402463471439882303215051077732813295023682069559453055491565120761648877025775612584024193639635511154681248788065375313099857013275212129210202033001180639536575253679218757970410514291049732012316912657678226606031589838262352848411853440118412349963489779992926482186892129074341206243118587223873422546679564791843256495526397521691120307180974495511361089113560441360588314996066124393410136036857189995528457161116215211188422743178583253028959057389329928673698938403938187108950092101086853149097309662047369394976994504938008981472007765010140049073393759018981122605491566803887655082749703497261221600352962863550370774216437754759998153195315573915810581743850034195735632090586163381451029949481668630832512223495868365571778718156586047159621146904791889270190861760062956539695102283919508737278655110940161862883599402841639436791168509972707761454845982052585535622639229282165509227169936666718138918290950960598173909216301962248616215355701972851304015961846404469285890799573637524534043402901771417275424683466035415662388547716589780511453397210218574433151181815413114396547988935968259701896855167908970478054789172418178657897507562896510795572976584255714568266371960589487893969030308300012799632219519852475422834729001966199023443647218250955429167586102494502854018838931160897966063474661913272139888651948379480301712414949917643226267397026046461618446013225114466055871250911735563029959813274142707815563854383853100580410851507341223259808153309001879473827788936753896348258555676027097317093142226013798449038646503007232080458148076727380202366033509497974485158441127544820235078000080846031150664084150427665563910803857713949544809699594339884650103319610732136633580264728208032039790912139636444745950522375628006843610910453772005939910072421738347222328909142903513868290704108373280249758777164497572893073482176418082929260054066752630947138003772838606418939036567807639820640252409640261448412551820703430107726522763176576062999135456775669662104495175622528358825598278950882520750787233804819579048428596785093552575187801500154697145256281580595610034172902862097692633600112851707652642176547382363954040388373918145338004362956732984885116413023874437285819971373707818135287389221517480629625580173489953625442651809437736061864743318731011769597327851341196035170572806931572730942169701559670819463710579944356231415334686565135653618805667424334726014828210615286223107024280223945862750593781138891578548897905972428864738242042947379521191251152698741553927274067944319130020685010141927756524769654587181498960536506269331347067143345434258319210274028317331095091831008561624858839185998058488051613099903872269168920632951804559471290427701037186383321230105412358638232529674195895450938187882288977624525706235819359541620389102053573132830619340734349711631534400894559343277819692748899530307848630065998598029843842226320890115945196097159727291905131779538020279386198396992002109917927279742359799483452213556349411409679389398235919007922769544128502859472096399772884490839777120482612989329244824355316907610130164423047969324935739537574110344233859438982115329371419412881254847326340150935048124160897205062417162257540621127804372526768206749967848078833980188125968318135845346570881282697479368656252901584832742405419147534692900197862259990414256166226705209214298117439841568282305307585627224004076660824191404871139455632808983791108874756661160268554416449565111547845901583232219772278145623899955459970817549980922645833044489731475711791758105138080924631441440902201995120212391134571501340552608730018981633611502593939178396691109451270504681207646860786868858302528480688025383464362579378060930020009093443499599584270044428880968941709462241866116410294614262297275037380993457102739679454519377433524492978231302277820906630412157018927391936382385991197546803506048585721208398991154595098667735307201051345718441218340597087666751001051374890662974521774427300747620641302000933729835901680012827319771412213696869224539133052862748433842386948821093524270778293532441938027718229481480640143038877544409557275626200624239474418775243031780749242111783630290112133588627191494113417029134588632079069316717579687827049370299486928230005020252149930005894688707432485122841490887570294593590585323900041799020515462836855128740012998626298223890448121478796284555663612444064294333650875137655168998649872193962124396445192731729680991069848366981294189543143217647133163407835449161230748083103007156197349523390003601034591507760367489301486241001228576885449168809338382372074861715609369336759492095407119946216613675995782971814633513206632776784284468912584953341659598779806096353328267331088780370891929210881128158962327139886511080015671182616016352887434916512788153622909518647366721313505597885552321811468848426132075566519770994876944728773233601280799584836367078372269089870579671323531270761903734587920724048491326749808979189350153306276668599564183285152775176944754469006090133825141331008901506757976436402905450317533065316008590270897130163356924446769568236209924230368425887071810446515538777065509020775659338564555007586804458175667429553934960346851290681523016623394665902183849051615629936766792059160994466694226912259377338455612530453631253503784787688677348070243230952695313312177232914802584932846077717250287061033420415260792516041734732274263090193512180475889898460764672027252057517173914833887018041652844101344495053945315919822824108995078418260650054839774902618255136948619189578954380595033539540602649517015716624461791591349205020671197416053137356741011801179326637372928607892919553481088522642988344420105030009940702923118022421428216246019735146990136937348168465057106304033376702024192314755773023460499903452213087465395175020028165484122270354605053406340374482902165700438721176169527116867041034905715173807007993936020950125002746446869894268542838746576175607745304702758485269312263531122687130471408436553419409398085393215744866682462585769565644952475387006463460665439587737670409730020478325389800195796541626789356063285551840445689298815030445555833679702778544821848456449648477902891216917031947728606428663072134199400975704600158577606211185385423651294008920523323061822649334770346166940473157608479297464372122494075128974838286177361619631180382602297458982200704328430016873624451709877281346977513026407262920893809595989076000073114461921114932100372256230387718475345488656204924397188446002817220452863220190364295851592396756939426885628878588023198192262267923823866730116955148876130434543471109461330880530362827827202927187879682659156206621594306465758308265224735224086336906449338408722666394860055259203913001858542106948585825051154746464620268477112019114781537162530886884575513769680443142074710856639914801262503407190065650214298292972538391336636294407171349553612428279965817510336272684802561795104385923605350757725573630497993052010307968612631660940041836104697874686134842881948463962384463125145113858691905619242291247529630990886708995076536645334295163473911876576693794023747151913889218051669702376829096164472323622706143469177232400014468614963650203000449269339388746789141257987517462134493928088358123686284799479818238934142301113092227061416798107783067296789985762640204795790731067187462215948979208671429784128545756557395618677173009926228267937807401738877837246171234614826769745696730265271434002553029163983860827841094889806621826050692679297211888575702803574609881393049905329862827050338699915166706239484353448726231408773229447984244981348613817915185061326351739371029877167014127175092279700612980822810140387458634850577585147350589786019974776186403215391380007203610967039844423818133021355133322894476880221756995182361789439746144133937084475076279922164928866343918537713935778689832108996827494676191859252813782828497600355174334942151024612117705023300711210563919431013291242629760901942197276266939905838486582589262616672460982168397693456983155222038270442481243610338085520840512171161327930492683239377974583820397515952750514215686439745519974971461647239991118197314865570930784664048038139287231477481802423170753218912447387181970870477068992700920893793113423334636939218729831737751586273864478349570258450829992721769549413202606383124508008628671707297727481300636373754159793440717333803586453728549131389387534070325440014152340160257654510478830264450778470622601339182524166860755677252246401436676043540417739071091837366799536761225805424837254364821618090713730621146147107088506927186811988216508713197275605311757719545159809869521176648295722020489715684642172530572211654867489535200958461587603593685020148833231088548197424674607767482053850264096117389025803789876795827247725201539576463651292826255979658128503367595003314679409799794170364415605461881399390570302826024683025171441900756427519260022550684308114248652467088740859184393279118350988565709668769265601431895291525898204472329998069080037073991199515875526062443884202971603817170951806758334014120298428510928467695001115820967946733495689064629571113170178243895307170269930293173318103898241299637498895853225964928368082269051679054286144906449869712750833305991490411600262306822340251283399335186115245706835925817777588263232396408440399589242518022098933918677661963962043307471667436918648054970188024847444180516121701732106817520993490043881544432581505025080341144838164180813600597838671319976848049221803416330038623582386140228321457810276365333083455060156248993161822426729128018563524349597123194784350834009762638568832264744461588146740632417891745414299166395254984941804272715882795425142340962414473070418540067673084930450489290469263184554234019246220792130810214646874116720896034181899362471459598711550263069885501722624887414165457852078616971593202094793727675472558792029170569845909441020757847449247765542217156384834183818660612713421388333320057496257772184231480299267296383099585080866050932909279022363015735716579018303103491212882643211807233980727134116988984919012334571112565230881985310477615961795278957443000500427908152895073248685156220268923510205236806136272887265881048754608322812230544198233600221453211962452348757580564399097981424143124114001233853372652107462559809732874512723460897749634556626013560236916026805056555740585228792650263048855987808708864479231611808613090843597948646593964032858635974084239022726835141597712621553622186926217660477380481833006886604626316070039066596607319390531283464955232688491672065447842774439602505129262490287700527891571878111967803467979439447851020158280212205854224891666122813366930292497480506624855427621152753113085142549555055506041782308577280325828135514478752307276184345680636603953782224865700693748937976552957581034893144938249041764103982544960606524021336002383907592603792732277355178082907893316828436849435171015112198820390146458615969691616326767916851146370128757915601872697812289534334066186784933962642010863057041357298396966867094248240788917812865683429554920556552236473133853169197567428490505393707188554191660205409953076063922168899133888590016679414935791792232102971920582159584084555479669065683796630226980702699707564954531145006242394528816435777043626347180652274234029505113491938679199203771947971615905364590809711525642594488177238145342110772303787512437403784971488830134683543363185944212241082794903407047906091205271691452585889363817220815415346328611593892955892581477907057287635055606054753118186382507682829359610391122086829643817664194793463160217844949445343826050565103273198667920334036353230070235700670473949450097036704127315525976207871546946560456253798821922373470350992656768088679534944207024036948595694914428531611681734323894043886467306330630212860811424598355139803721609959147135424493483233990385900253593199941610872262382378243845635546839508318288096692128329855047299679946066264661273204831193703282504231242166085901215787752177271147621960001459562738965876485035882513716843284419218629902981954838091202331045842929568713742036051695872620104405575239458749610005128366458654257988993953617332949371991146965867202119641389732551240790246998596737872167801489181892049187465120756450955553456215217591686720661926770487930888420984850738994067521129080754848828083810637558338484918668479392397899913125051605324928105056500207535335179435194565765445055834777737357206721612210517893919035102007300287766615626138440031825215759820999282308775946197283100345945619782549060754277184149380831334320422502372722296363205159354313967973802803843081625408991388654245313808711793171118382108745477846694681542859446908916112833945471256841980236197111839589237171102383288370472348876242286435417984309208848695749578856454223118727034217285573202147547093863147569350678174763843542895128275396953458839292869242459453038089128220452338268157376904517708280699321009263645787295932867755664481584930909061432258593525485726305290243730814305802879854949120957377519465154867267654059664788491037048305531169991090104754824657889096799546857571088552252663927689130163725001711986160242806146212648924242494415807847037630224688904769495642027056434312361426680017874840664473753461381712105554785688079182517533341361109667769719050819114130339685389316925828508474848184940329722307918308021035834053184277064089199470960634166690805619713538690337160826487143163795111167590532696023562422421093219279013584303497961887035806311268576555461516373786610720147760362407289915299425644373435078441465676218326591851899185729220898945283234312762934006983279696378652339200877020740303371093618469183836165082635020689711078842513274021710862511905255003340012431926523714648677528389956856624229643625310477144477938072787002993681928817054213830265405975992789940425960289106379948575724404270809428699135815998017883107437170147636382713839778891493474663790641731783195937295632293371971836843521171230171566421388980676597717934855731064631173329868915604724684100802635071183531001310641445617244708884722553027264782727908261444253401819171256001719926514836531340656164966479912265734567244324149331458528075794247029388706570380846834309406562010665750802908674740534024596222443507345057563794898862335245942785368941055089718995266931224354317758003778948536189461607601644633791175196615903708571253129676312399688786228770736786538184231967935662025477037345298138223628598154358068022641067319169838522405853153993861134933164052146592692788977676305569023930504754961436284089229597214417123135626528343478878850746262741074880200179245771506154797530487291605486693019543744255589606730500764850502114348363721682957081277971773770936348488120183088839157725521856284633419275732848625950033523410045604953469487778651586402531224481759959738040662161349372394215981019442643253155020903201639822692969807401755637581762539452992292052407276043617125542785646148546914843054251091342752369074549829552637645227870479544370673798261472166958875652207409982135997009944693011549099208951458002618423103464643703216993442053814937327607179653587827870243518174624983676578142540840384838241436561925560918350023154148869084833099652219405716581978760270419821317694443129071166313279420222976988795663908133252805617402943476216936053283568615729320921282703560207740594042331470310707578008043641524715239128836875736587496584559848261196266057895201047648536825263632430294689497934408408587797455813277531625859733989030109558043725303864243868902129270505812490667569424824690750023061748295691060984641460186577003338719045967919571683378824478309966091192962357692639323884420207669237870391094666604541072298750188908263078623568577352264145381041527842590806145264806518441774825183336956888552484665912193547876439332344188399588743135740920032596978907166768199759517902531064640687996393498394656940863281092540058293415203121805414140088272184263821760320664827697932070802601607455637157015058895157473618027517905458558696426609956682855264338467379659796810570299729783547688329696933750998226470073877461812327958129554553217752062723792231051698772384439556239171278345228969606595993207187071312751504496868387029433703445181902483923326958566208823906460941308234825282742636120299252870805441412261262727811456202065802001499703394194982858994785718121936820976244166620662154740154589330446419481209418862916154820463524557238501971138774911726195790517458354091216774268769194298363588496375049190188759783149719133269256882498747874525122210089313652584758329576704519189949088500697576147587944271327598372147477198585589945200152279028147525515261740098162273331695448684772454896417733216496461317076875315104322135918792609192555414834004514787326929079924111339846552886589639196307210763526892653653497634524585673573016500976778082741192596419327720106571883181049526317644401513180967924552908203474902348990777617148850727726985814794604755871939071798428136269251555008673786971304117113391463879437938132144388380065048150385911610709143364227823920768972261937221022682515648943657984778039390491997806468486447552259057546020746340500740516457028986196094266219342986792830479984824884472348350292452242551734531560424950213933263392541905428874685896299007097581315145080384929570186527596983303467714061332709391272188534019617315865239732896007150584451445422631188194991656302751422016575362279862152406842343898278199484424887210967075995550063317987823382464933302961008785323878056298355297586467163369331484718655296593489642122960912931127511195120235912201979234581525201049979325190144827740671346851875515261620320528119935048569269642368246317599947208635613325564249558968823295644506762111501202758932073129334439131187466416191067333325249987832533520635518821508010719613002338244261166709863338236080879142590619204202975784441445944901778890814622247821668219225928165363949592195490349264248272089365076142654742233127683831948325040651021024429670686538053859850935119942289956408212614215198623418205165107909932240929488655986549206111791835088856593952267577609587951865268695707124192150353427580237215299445337414632634187552235862579112297540433064785715361350515150280117740149183307195929878664040944923488228611097212083861089902508441999199803518926125775616213701970255578178376690434237186416048602242038435662129484198139380277413113684492289330956661584957511206536755911504221972747871730887074470711642216598688882660670537003603898628461870914672835008996813787563057749111470350628937130718273569359595648362031815273510243720261650160441002017054036920284729035526959487879244361779690526965958335741511960934407395183663565928889823520316646312391455940981327401447257412145930703995729769881056760048423539412335892654153861031430458308065415146324185751174419097390241077283062063042181145707893848494845132652150786202371383085279019222903012424011192789656526378129706043300062509826078233712270135251171601452734317481751282463874196174559870089356650626789056916534526948911002213332495043004758526294552517326920199833695920183400814342952697297160911124218565334352248056784732237257880723449032698830133239984777035569909352620514350762008879023580423677582218405184815934543740424855173478072936968226695458126230947137274522131820420552030147469254951232960764014843341924817144507980827997740680794992134303690937793905195421924161668420858790898956576607065867284653101200831409222585533964008864580324899379401814625524191031740218673196872885184415609711792958609909896560821137485029339042832073668832402305704764670623936924089895732712309398391424486471142459914384893919453343166794780741310496295842994838443246673507736164434579467176880798594530001312496750379517711317409383510222114226164234555412971755187588787337769696925362851689693068419404975341413742775983280125247353512449345624250276509101971024062856028368446614663037209875578458398661058637394119072718274707938970950659903468855865668152604987971778551070402652228510698152842558742122685485064391230669633256466646720962792397584239551849578729090656024174129858416880287793996913904449283303754323617298561470209990108123727183190438400122705977755743282371281046737417064983316910067925914868588941555867002628170951812109041007555906280355344663576470024486795575281098005242344727823298360455687756642501091936669389192191433597480917565706187101501896145894667717732806496940374432034687567840429746253342749435539172583524752282726657686270374181607525335471592221438182086189892583764349589015899462415713956934875195184375173928031902326392972870059456931535219027931515942468882298952406982701731665067334650657806745752282198048168078481780578464760977557868975896718631359862002754311721866726366358153031774257760153866648941718212567593506119029004701732459952660707075858695288776281953191553441216044755158564272336696514243021691732749652838448650032849886761862133194148510502311506301137782477507207065458579775301661306857457322976771785114698992846192832714383576550576076484816178423164918499369629098666598796175061779339653753800080861455014472791759325144195684408903142276260320997475663885476921213643126154271258734481960139328998396969072212031268729766933785119701100909344648196157827300646939598826509300119324923294398148156930451879984673201246439408925504761314015732520348576985961425168044505671947907696060700279756024384123755400323089567128510716551507681481442733945099741794621747988202053457362304428393669191228735279650590257265544658622054908898998344020303522582788014995871835816982187393945944708008005063370756153577328500602874044131201497157414669625949735371262205525969491268282767012915302447697552068961155853061649122652882711164947236929129322282919857011373176230112321953872251188565287209863307392372890782234263856479448674681228784375320725349537003098098606577018555489279843652808133861952078376164851864778885984456806545182305447889389779710683470009921386605165310341429757194503970752614876350476627528970222862789968550120993620440729058136923764633889137539990189439737226606995880053455604411665850988009943871136911587145159043544020442669581932319068146406672132908336885976390393091407155976278657836555503624468459046125439700880298272590474545270982609846859493680295221209682317251937751826423340500085909268439273217624804258225597692418923889351103773357944855952675044056457609213024158597510439006619493507366165401923934722135316969825323712068524536267703045786830300052652265179137610281967255561372669798491297729569479353935000325329814826824620689963079370756357410403771904479167535889098222770035578201396401114478813247013559255164178610690759729851779883428283605216275438633615352086025799768553354037557038420461529357292833195874261458006844658929417025649336851636519052571496977835229751580787249083982715238968475434207166052097144638131794715750596023410951711731657669636751213129715323094603977720164798521799506792691427885056589649409790350712913272569019937124399426609494685373837138224069744112915287449479563053125654932261908673199104881140729051255941090170332911160899367410157671844881396835435164769610103216230572023470349729848082631954563140779585231361776544418088232322292431898012486559652101429770750590791916338367387986647521456409595109322802527193119534548569950102427495360416797372648979558654872766231949091465231992146744988177442532680340436272852319229659745143312117487063149090229857606579168001111176216346678082574344440082019184561466968751510267778286536187121762991258460239834825577210019511504221695297366432712729469673564920183458745937115450606846419094427524192312076319049683839547664653790110195080934160667627840128028443538736095588743516536836011746718052635256750513438315678269802347932766304282052565460159953600673970647431570022044685906426062049537297049207500905743148443092023191888576625945185676995133886910081020253560285070566856926764340929272665197504064793388355616030518504211196956775580556815229511625906333383618377979435473534771706644677196310686874962089626109761612432522059617336672837428011304312243091955958834943139261591740112928674167536280860387634680076930279770855576395438489230134668457825394100576874304070248741662818484042389139976581576440970227806100435957477724734092849501340975875291909295771582801794543466705588292120737365602290722309847092918349441490175595778524503099486211115533945230736157637748067581371551691704016003115361988767264928587530262707998715349211473006727519047265933372145638918949611644000320279813668218507548056379935586361255313159572186638208633117035845030021919975308688444734177950989862394533510098838936028330319645135263997625278011594104263198730229379647597116874633242391669153201739841784918759676064419358104593697835630843074727818851674920518333075200355532159382495465173272834830489135660908611271395847410448486883416911039069531794411676848204105930456805708620054520649509357145511224071603486554382469201332408355953464608668521103851199245903385853862434452591028125151398514861682832458186173593560314172509202247015402171858984802864994369924186623112204622733072004304966988209167336499762151124275572052934233798296424383694787963375008446474647167484877544170205596679647203280277129868384465835448426798728113852091299856988202637101984613410221653624076520787160253717522877904382935820641408375583483652316798912019862071442699177105884519824941997806939851347536034885004151277353153709720321419919096049531776438275537242231974386755214879534529581436653920889242807450845214350037594782182007953495999679500132884622691316735029880432827206528776998971978798152005991863876667291382430293472733322179467849854709079595399713065100691449502809011691116833176777050109421126514144755215889170874898866397131267155646034315503087192654545977692772755016278570179868652545925841805634668661272214351166731311533971526290768173692428032326142155922433251808892439687157727097287133095853741702232125645379848515080262306706420047005837946931711449820168229596805211630038197993654995503952604820466707766280501055054594184098764722072025006075240892154536869616038754524685188688434596250806119051554816438918020920543548128451479820524303456850285914391930013088337257525322212174580085558639480041692819191535849624009154842119336900177830540188750136412033495600340342197269760317508264874782893682139944719468425911095012763086418466106711681075341812086972723839590712006340898882286512417743894368791557238899233137001876080731478779596782812673406623119322945498434736149013721135936929406307175304905877234660672836470355225619322357242326030987451703773320271149942200594149206505677131222568959104276995113586005207987155425163910077830382499956811477970144977755702918606354233579520789602999181871580651407877265917239875097336431844468298014610652742732167836941450402229427173088172495031950258531652834434356092440659125732649962533361870908502319931755041966598847752482846496436396022818321294362333034498115316979029778459937794390116102096384107989943446169770119219088713409908406976140328871783877357374624495812681370177607623329047240704992852300358228771319182526693540745168609200041134401866696783021854925757942437900260403666877204532818441770118373242096375580322695646466507866727271059552485608076043567125649989478222761391198631688661473485299418118670850483014050740097799517310645832099175448115645739456032466462140965038521670063501585264163750453567557539835195112856460922174326854405005515996617729653262313457256047218149633143566463280327644562920461743059664801780306351182530231997741934627871372817037840215198505178412145311681112654963070788210948576652904849627204080760434066651594906241625364854873888561194101415517904603503108235252179116173486245966121789660503913977580583203119761325073498174311573091687189779480382029266043945047812698954670073761453339118361668623972720836645442781887391736006607482103509952038643388520795650079745681043398431765624635583161123595344149769606902413877496743578876847090202918359795958291344245491173774038259501605388015516944403438149222445948548285375422866044859837133526883884871292512738982323601150569098299620571494836689534914710264354431546661335447441502799493934765668666242859841464251022695481006034513337415112504154883524977886340187775501582903152927062840731267525871054761586743952167746436508232369435990726216182921953348039661541864388448596460424451325723445302641822487912963404475101333206258998215989530953695406756165250472645552112890278093488630845605074504118394707225748626107403048505073275487512290541652270267072306816902158977686274568668466614241768273154467484555639956185383701723054283752874978765042572502084197016460680025969046226894776707246031358759318603326236693045240888658794346802602277608904482524742534025161811973669530547455740442171078248155096233503333332713846838001104912331739090658973075603437845869992818443504103314431631396372581545328706846249209808430014025429479963519147341922709576657753141027164903070394326602452070641898305410443976282404703110934594092644966814923316918085601041375902188974016552414987555891639106587574043054870887069521749206829394611363278017554744574236913445650298869832550971231394658403992023831017145515747095912728840439235737412849199814810218932560361391544895135399009104828011557908400978611933179984976211691707011270379382490175505903297631495113493531995491428460028717636461355600719219315415341668790716116922965034804511614980602283374871322244051344547005126880604345370897972048352257486293753266319420853656154954086573365247860492458795421345428493878970727562747728845305487452483468114633930523163459415601989015440029132164826106148200984680999263078484739222761983287321814342020986996721465490875898580632720624339207740681810838094112457003195660921846585075372406343850215732752529314557698578199126181883974237854471003291474847678296713724601326989927156074221055728133377040369551995585592919960804301350960390372801399811189737801914386435653742796201307316861788021261125579466187723896867910185193675835880205896542346103989060679451104046488517923484926069798848688529000579398787094242945889868725047066087371385733672673388773890494792778083209199529793378690575999493383520908670467887718245063882388211183794110188685880338765653977233478633086273359752325415873959536163829625732729904217104375214365274256300709079170414735676664504135946851988331316353746905101657238989684884960419229725669730252794310285780520794308052191426666831336484326356969227491070247906674452582766148837562719332783755573978305674475742632441419271016135841400538825314468724272567585807449421408807137611823974806305983666008508375836184937222439651112112102468521088594169410511048430986883598454830637246370080862906749238974863374105231836981738004795260456230604565428512953086531309995463629772660433265291432429526016567015550407644591640356736463739675685081606909716316046137648322490276692048930463901864770584902608000865434807396328135803283023334011068802971897851265873999720655652805288673430852719664337236515670374114874918877503773542533416359933454123151815879880846584465524019950439936341191778272806885129454647514904443799575171712870321130703715049237198994316793353108103613396677212813126178630629068274875590860624126714215310596932762899026020629370927806580875387863346492339394940704567910308800341509664001838267350989239812174713357019894826167920516138751757401143888660101282501769098862715493069230216851764284560459927049130024416986917287178774514756114166148847617235771524857605325721931634443577585662227621712658907787518485249399053519200629592084304752685381145685537952705457197294589891236568050571726969256283611151946924587913508294376918871370183978868765254069650492514122112901193786751844563960615386401550324188060786845296223060624850474148582722711119050803376989823700700505478327391741960188590242007046945517037825752272726151707787375150394387032194094148917386795582181419869923714403931886493307323603018143890459478720900952380920531975408578833487735077699325543676991362220164083848498735515684811521092889369606712463822414075534804557299342506023735994489258581269967657514894799593164047278124563436364129000820511826651252410845363450628958747631932475692211412656707330510999617670495009084702601543708280969538093063860976300805532847674521196930731198905979452515002533910799822905655811124761698903127404793137786432663649554004391574076009174003521353614076251239291928470284922759450138831012430603053164621837356886781961167321356277498429994694370706105837102726273851105649169219616515701009676339018335380914896405200719237807351500790266023542432591928152065199954263870745039020964697966103021769260945924873533476543541758135864279737705251467406018958605761081318888342840605062684316118029066999707967447683259175314887977039938803719910776582945297471752924960040438906034103952732044992681439604265307832224257170826710944206726188904047334207819490441532562414315004636438935575467116409841579715646709889087889880585369874552532298686836292186629168947765171705748501507483918559011179231388351031345344707756413543710660717744837106575714584076055981344981326533486341901065763104422782464758214266922605443726190173741877695289515945763945111105330266246351354457439904614171155430812226654779514902199818156449254875021322996089903665591758051197546967226200040346075857793817675936209286325642590089597722682291537711013624449305046061342528259232919463074177756507045759252215592282400393468637664658576210180597872358398055119551572203623974683021152817889908347419664000477292336126754267320906055421285905028778338278879063631677878675468209764910122106562631797845232667672555142595773895864730059038416732827196712372816126054018757559552827281773894576362342854550772506253789479805786823015923509794669209832446958473700275004506034449722996593473922128799319856357607738951964385133089438363957893878847218059657076530156566714797004187377669094150837358610458720682763270675847360361633021921668328424844668524752282167485529526182746653159375394608287551218995072345135744807785949673461206074266366760364103310668787838356339435453103605796015882960616891925153627093486496144997108491238790764361500201350716780272715529717937870107782549958867826888512994975437393545304848796840748446575318967987107676246937771772311842799264239665742950096601874007053733148953434498570376262680431300104123367538584743447324301789093012218580476511590819538771784550417619536738638657055026562533819384252143731002741343011643436367835151943467537342238144823251066717631781063598430052426960402951421901541678420064525637400305149566954045841986649822698140338430543151738000499746938781655835743710458208012798699421132809016491394023517055048635308793906752374171376965998922190163219384848990465295193329086884447838553304543054381448721697890564236760546276251593113181115598318036410782663730743526424889186867329554127794457395886243518720554323142522966078933680201703309865769959717461816203135712405193183432074865528050193886307283770142388485348477770546982818747957217964539507887772307793807200805145325235198822688844432042542008211732805317277488215565728601335489221125953807575427449907282676328153034905549893122230523712564316003967661563855708580542760791848609209605477230017251655417207704706720753410982474147982651213878652414557974158844268268598886608029469880888365022993246445420950814026746985461525824580195603148502382806809920258222283515319528845701531067796189777320747819839070816304935516089724802757242922114407959651565936591826257086121331414390870370046688480975941658487402693012844599161922637109637991558842668333579963306430242093784620327178055363722784058762074485565605060873054964666693609086657870382452174271419630220472619225530644818169409324136885716300097505491179147251623437466373576918603935264477787895904634531438123237878854034885395067130906547400931858174566208487357597624019494445071235060838321443485326829264063265618199233248508798927206431477583591215907419279925113604180333005389621664874574527166132103524430353305418457978585505498799352347302316616434302099689224301602142171654329744300261054514739541221735837680812755353497124492292179490856812809155645099098003871857564174943050982247163768570670937791717857834859486243089140884814987163525822569444475619918765541644593508351457402600450449360328205357064333015812347443095144649447883166676599366314311036531377708061706645814177421418398675579076742140769256897225869129251097301797406736744069637325360643851686217430465470382814828570884009179070435019773932545190514858983496709317734782230747677973406514328875758269037364720095704141669716768687075115572225094314668611482451307520564285482181496680762119024662504497314834888445890778494016683129020362213139013988488342296138637167649070988413450762303742870985431612568606788511004148679545648658607180824016789016302575709477283124116607727827558099053999447659172720939304284685274959168015672712059177463764975587889570611009734611381508420020628970083615061793772150456042906751881473214709897301762411159093098766200718734126048952402840394874521887756516939228364003653958131669315412672639209560331637079286779019556483405286656844736574412719400363494274931788137668236731782361257387197154315255494833230677765513815231042894946887844832574637073348647371354098918901005107072217405372120877570103895327302916834105964537849551507546617677180186208512624198694598668016077612745698536258700057216171128437718822498406444140442406634795266853462951796763857398135096651622314942150330095268348920301706796383007044112503190495662584915328552327677618327396387821691131526416244491229208458380477420100190339559510464797164788929730133432406609311790028562169223871517994958201262901223821651358940420227048290542039056685706767462463021837568696871732938868647829803423028783248660429681572935273618094884148336025155134749148760636272572035219298681198481797336155238689989737046051633538620622027344503283450764857244128575655686567435890616993111934401155298326594985388329590686915948781661597063183993950302796069140856062949038214021313816971288753497897255301646739184284734647135026612227870108484610870310532564117198398708092707853284740990779366362280992827693624489626553610353015568870711488679152203480870627449643030369934725832497457047358059850343508376285294396688106555210729886765232933161373544255951996149671335542477663152404072025501625236113257939872478985625986050310409707307590958574774630481620734519130226112966850134483909194740179496525669148174929943828767050951957360087199744404904102955742942288588620605000825232213617627832182184332088684856875647158960387505029318695188953395435695300340838688506571988503876418809086558461422190899221650578263866847312370652792381922492401949775396705820519767452549314027057088056877121687699382754824425801161129139517734515871443838100286800590010728861470672014848049538401249596646105292880522183295611986525705962781733176763122429138011290330302542245833998936419687767132851697440084612485121952865780936178717784465631286348277999018696657537312615931138175813864961877700010718131538526200453470268368440576604813528721535477328752393403449630258792670768124462760452567009210458264195011170850410115013103655095643564252303435287059250516212157737824096685710932896117806317662725107365570563245208774239030909300295825679756863960748497490374176057510340976201942759057537430221052646870542768214885995883403329106649137010853510313629857444080609554396978253450637492712361695350817382994174045771925482187323699716196049955387138650502198805755998369911038571535502833883718951941838557213674956066026828810445779189625203768483017508138867549890609190565247903424040855212768087379143975950230308256493039188982400017230498497873266516893308817599328593634981187287034544594526950741484274712817499214037101392517551674255176050714759305802980063033922841229566850117198136433184775139763109752798240660875952676796709784198485134305060539120139430312949791110768985052897448999509453819611280193670975590370409403387496811951053428402704572129340267363880746881523561045345797587107724017733523916725144518010835021355590330569488737671083269757908992415389024000854771966158124099035196130146396709747666683871116533248716678375782459130881395886496247629901943865089467196121177612860304149223094573994954826462675775801445820518627430188771377448127549869767451026214677376406320047846502206195140087860588526834275862561825530371792203379135395261001650303703221757941184546300611115826179208178101556565862096458231809620322144075177113050287996525993902082298275514363050126869127556468494819655902490795126430370324930258021998775692170907611034553844522965120663260438859788742670805097192101337940395373393103330976785542362302578787056397202210748440843713420775176027637316437814234047324218294546892251319211410114144241812869522410332762370306491048374195684059862787530279723542526387798102512418630590164586105453133630025318322549742379408444200810710707551309483968796135323922097721367010035817684433220631109806614229759004820559276256318148665864532030722055590879139872374153114649747723770660423294667036482971541579089456339949422375065259451394577123247178007577042875298579315269675195292954305447096449939942279805462275600020233810687296868047518531436267541835818193184334218114478640508868392587064522549248757441325973375171896337764127329315629978738266524925838743142897225898903626580693371709181110267167248804350221561598888245228266543454656406502595167496808260432505380152874087954455590952415572280654549569110129981345812688867899636876785888850378181981705404934676023964516995656052716626950597871521733658817473801876065141721435510675730356207195398459593022967735678506101801839119772433301869128256664868095054398670656331816171262041722742617759875241371630411676865502315047184987057146408414395325258327053743381411861561351064734559282477212267350882674487851517586967364216576048961043179598294433517789271179766032537239565434571053275153773977628453698048996691570874515921198574393103228443432774744544979384434622100384684316014924407248087346278453674562588400878035370329454408241670278203722662640137365707069992673208914228170247067900859542221226706225506885358120167051412656774177656782708536653501648302722884361861001342791008486958694468393788318133018384358961564691920656887039554938010330654212119367293038707464676112089497455730850049667232405227505894572874640573410952633122407946841487292781522721560246365678500866778971743673493823645650818017862160512776507189136319845466020492385334854883293184169957048436762602744078049717496569154150422219339410110452870064837660494746595064255821103235961449645919032918498838888612446631742368231754544321193686847597770251898363685593231097424005888978736322793474367905002563869207052946368712251847742746153968347590654575326194024208790493399467294953720390687525342412136816811479261786519048493889134393984387601436414041532271126571553531612386571558390887997968019950017982214960734118352883839763200837237266683118067240972064473004686076282604892944291463717537244386593276531881872326591678070617948566377586172835432717019541750832199384480126508476681177927211860812363040331115173114702108440587286634946966745912565607608420488866486904445922070443500514176572275573863380324627800713893780169336377951683657060040434871153507403539609021451024339821429184206470130784282466058541290895061039597382286618723605186360414532832045254264917386349927784919132864066300522092609093306589171790153006612243953536435742437908595465966202190313987689930945633159282119961829478505687318266046284540326141710660498154734585574538191836337807463033091720112953350076039912773046863031213659544018850094586749006446036169779800628301048357216711961472164921944547038194301795427421696966454356293569490060281788977304991646530914400399155376781667476468572447198799753132312479018620666214331409455824835217934118618550614444746039589792827504225332541754912488776554564864763622359933105381749138816114361342067138641581490479918751664011572349084457166040818591646741516595293707301781260168110669383278351537795698483458191524091693293129080338976475029666100491706828450469016678881735396113496541106649927864983568073066207460473006252437154303995429567342345162726825645938944978556962922715374047702974495711007284498141696725554445724118032529277926478655519928714340856277531445321734553019118137544723628084876555452382496861582296964955171382983264266319378188716082002969473307336682451531134984742415224777281513799159762011794512182008308237842202356719630703666018964558049703485995179880103018916792078077824582926913092612256589396996911845986844115825765431476498620150287648036201855209505629626183761674656077051992240075059455730115150494515882777967696618503523757835470042147481786168130961996460501995588741911936518336258929843724481131948366753988477953046832685502457467780727627791023550878439923500767227609196008554288341307000503040017750944206082763406697083570359358924363991635089721178427047646843816004060177090243300676213023072836955833044945242249187546530142366402028972424663649144173649100223323377653160992486515215079870976656525924495753512224866729097722901097695766295953182393648247440910942089180496045069026212294660706297073131886580805083190525652829576880425708693243942332473840494992535526280586074544253366458343415225638924301126337032845272953804677273243093443787925832521996755634602672092214651495677965975224092923023640554758304712194697274168513553977843974148954498984934247646928777286645679227165781526388953383368596643228229701070518844697930113521584168412252573286055084710740581200054955307178379671885937399928312282067990880313978216199673013880340589253815489939491719687347182650224223378385954528399038002203489105288334295797976383900735336093277359909770560940689166691482780756370584201981697413625863788718752361532158463758528049034354897070226256086847160186781572424232313233096810725965434784326354449798744087351047203431047986902225126054331029405438543830098123258557747777715108752874963878025692215896350566386219519251393440978773488311988394405644165873679397591274361439688101514354820999905324345364258154308386400900839643341183001126673219656194892278709486181026380929111879832383832007573264254557447142459431816829884044081929009600144355691488568759367759208169295700757646383209464522138130897329192856780015577944165963528208464804065871161639027534412921449028392019890032757705234379534934617281972603839431454398070321417274167471611140809306791897800276229465747031982370168371468304376835029916369725752870729991885907580794366554429474496720634909909803735676256688833544725570408553270685318557884262016770459400366879616564048858518608705535989107921512289871905772856149376228056756839279743940056054130771792990382449092988244733297511479071780810015981946148656699869965595415115865934343140087213200453031325891936804074978030265657923959389203150237084373988990048994325160393909569254357182274744458077260728387632188145820138780777169084504382504534515958345307188448711481853259099269304599681902724882909272022940461021411069967733626693260713049076533843789834693003456542238359207908355989079644064470585820361050874288477793237309288912221315765671389452024651405477102720326197518162433164836527776011087344575163147055877022144081562801591367573322025412774744985154578024181044790786194508366475615570341854223958309692174475059914377058244086236873129136901524999270940261675953231039756693426133935680736796081956289736213167154172240586603653689345045732219981906613707374585805500920338273061588350850693558206896363552842648573406781006152029950282107196346232657234938189720293365858497306286871932136520011210399278981136344770147082969630062230650465997455895717766338851408513754526096534007928770301664099720466713524356439078191152237130825891615629739067614774249748826793850008525325859361767562882637822171129392729984163891869972837447851497124921034012390567879711141176322842197671697337479623882618135764599359194705264479847937693612850987104707626269964360436400039065557984438219332465144672455336328255345522289891491513090684335933263966072132891673297922608074180286652268246306343510094193392328737391256532596978573485736661269714381112054849777612490852212597144293772320236326465418352200504629375689862343975386882008742933939588831067378249263679744374700223965897041225683204001890397503552472808872587471060075010884936681469011867120438037748122107766157321323492483824879177110604795725993306024334047125556972923535499603432441137199186176909810046473328459244652270749302971016878466508895639124087461232116702873841401792687554222730383391329350813008593981178527396532041064929945716380075780618471511366376373170994427047676508469531050606520272949846435315984960809909083517340026724151269672978276129218865757601740818675704503755401982552525075024383297119762628830106327656090557565122339641523505230967727745413882475575048450627856301820531514319939204227854576389387696931850006785350909897896681362187460039980455724894717089864600834620313331123129445386172138031438897699578375320061758079728859564165590376574234662417923383008599227222585268941766346766330140692453474018070111748713645417985753189143406377396258655231355216260975727649409449242937998280640171580824543835829542086657664439872981690443020000823966124875335983022398540347794140568584411205460901773527158691994361030459854816100121400694810548285738317680021321327781047026133052657636733423670367176952945167595724020860007041759558866372766898359196977416966715772844979744554642832349474378045950228582233212525509612723713131334382423757941113837030893301692448947976296023257706662914436640746585527130450476361678695826971003482963294408237977104356894977960432652094547507483777448513448243708016990146023180486579552998176378675576328562577715300926264756716842774248277638182781975531329887110178982873577754552567328461668598275532343569332030128964476562879448917546194390872321536232295246815470508986579295739963961051355032343782390595511505382513293298576736388818607075101098355413233300145734821248115775202833296544861674895441870769610706124560284260922602985446485837173350512842117618177277725957219150172489798926579976980539262988113850208236721841687377210388349619085646072912340587203340000591449872703998972505833627804046292415962908079053848384399501557680256435633869085230323442409459304615087872777550223445250655909882757326553761324322059194890810254920795883186023549547750918805806417744519327738555176737639273615113295112800181622141461829064201205259660084694937414144145554216263656233856170097765865961505014337684814244154326054933985452127193281501709171737854784066747837830077964717286168908991353474117978420264444994358688121929051329567401447359932783864732743849151166201746310686728271461674339582535306404537075367183889942981336318227621579850900846843131243999129407250793062767646013853075292179435841704134331359829596312226361664248741473815910798664388711380015352560160648716071835292381537244718244413832066354539447312330340156475783193568529097048440407282234032914746437645509099634515507484962162528919227348540745716528962522949645953158600283740280591556619592901611126831921232436879936978374246572369891273113415116362810307839838043074624519550455965749555713645853197394806194620351409168984897084941228783239206144547356480053826672490011265412390211442519235271424270563673334954785130842224727051986351935789451518458627963181532109813390619625769567063974355668273479175362958350140112486940003411476860964433016298983670166879778678196515727056133405421986951317362660543859611839106720385406267702556547158600988144455848960195431775191873425253914986371784007717659374769475467015160091441850790395292247026897577086271673787293507043533220951658143980275341302978653393463495209262327660540250753433852350019445912448428143284600236825833968804273010398779096463424625714335642343072144307213496602729782955549998318799835264137530585071936081236891411259184202417268695915384292927968417216372298805263012112490662318650628602388847070259445772452603240605277781969823061682297933032053325393382651599673045089124028632990628087528290573536121278620852077902013362234284136833109057302134291060517404714402686544099517912462475246675768647723076869494059586716114384243150428360079697569111971697235011064362915533327675716798572697045603941249061415377889923006923349323506661179202985795008251719966905299970563238403409168714780677743284324267129635486546126868015431111853455071408552896765631494551346725453100893759073160255222268572298168645287944987687364377660720417167564956671153446833256151666393487068535712419770146467811074577732254941648712486759572099560517850949383980972956446588359506542616590852721476013590358694209187334324146980019200711346185343730182672699440764149689737885593058296851041469664273244738328065694025847923556611254822684018521468696634609739270599869026509535289444136068973062191555272096232041820540004585920097471576501261457681690299361619596839109722689819236560735529028573812709402374592275772673246811326401593316508528683314578133826288728391035547101254388502033659238171669375326800452863819942521257506734404467927717639055059206471093760495434975395062057261311165280066428972337268605745484073125218350316585718744648982203782866009314024912529392681288114971508726686558544744545915715723121687953958478715183586357476505675643654579668504879884047755707110641084362551537600563221274801282576518977327150544162710443375438259534544675813364411487567321415887226414782974331803036954756559522876793755706353445936554546065992075042524666048682096224295515667975468012660853250029124095332923257935383738951827673792198865760489850141557268845117211163042547514375580561174089952522274695668505171506898458424407120831992010602020108859249724446443190971139414812208802929979659642882900454408763532800693181664695200718558824530029461737567314931016703021962953708005493361060964550037196991695460316007505858325227665593364341924501422379459043325926159907505830286499864224943883026988338971262656642193744308309862333120492497263976301675529604552397108172267081769648738360534850311517588233820243675738435302733276445007116125299699869058028359359537134040642507578717050572451199494299140651226273437524781362449186979411366953671202944683255316379797516623533918001931460942447015063600977355833054695373960764807991712546003526798236278959178502639731735692773912115669400986009940343912931880882517673278465334987627846172771277354472379510776417179206879704498826907974938782652131244414372064879216839632971532666733756689682675843882759655984632155183477091752984920405997541332722430248992645794772565746256235371466249664428655867272966559656102294419831020520456321498362430627771598803389755648179255320593067133825010079124721731867835090327577112085944794207906559463041036328404460267372328837478443503514139981690061609668247119233487313847149919614809516476959296348756935452914228299189393846853641516657078649690662819837734198572575757154767918631096167171963449615924472305076825949491339974269521908352952356672989832171429600969075077989143325764512133162865895013446477199841933768077056504148782135712930463824745642573876405088703282299203961039136522099447774727716952166133706202426459623012168361795718322743409715542704143270932854263633836608551759113330499337960057449339703827546962717752785443666842282283242782922352871408778671619624442886327830981190941656608495330626890338979578057662586798529626321871080656083165435400692008575539472167044281285991597993680191090571289033533088587039677287330365359571786930815048157047510827516170940449930608767479783118195213088525860901841666999022556775858155444420164829619462258652489884264466949612676809678112477939731221992518755970944925889141581009169448980085939151024844586065993853178300588603855934027321123245152239256060784946621851225131298231286857309546634988147810555467328176814857663436724331936157602405448339375383811634919802795284934734241608474478345925679147128229648066910196394037849785929655038095152372845062075700084213206861002107733186016792908195945618082565399669192844584076648963646150190845134552018229292875167326244245960451844757338561824016405939036340957823077791438213512046344863306791043665757356595892056638258673409621047996952076740060839479862577006066745454007886175774039993919060574244757116052156155259534660470907356914956301444438213671499253568238533911458218634295252054699195857127140772156401476201891562233225126517840154029701099100243753527152220742108334877814583471718401005755468782875885716288130989087369001120649540913798518582664998095580937423639864240937169189645781053959991007522969887011168551399019951569058850460275517380193280633059470170994678562589975368206458874483961407597999156279277566934714211269847892443219986257574829020604118938955768932466394774873280162572940060219597174489985484497457609602438222725344191390327932905886881213150938808477929131960241728114984853668178606002655313605476415387352215849227447867446281483218038398327349032253994149173586031689337136095939908091255578440836200198900037970589398911845510597252585302634936705787769900609606487375632840338022664802026292376797196895214939847432281281039251550564336436684671686939502349996531066410862710131045986861455746864150046665209337098908584855052277460138914820656204829578808771321224262144809806497982627559965119490020963800755197455254238542518971331550371667273570577603658131102797729805899394250574653958997514723358252721066013002970781286697597688171750771886665627547019034766863816124149532309983613249219948600753432484893127398408948036253029687760778230570700230068602548633735313470322986448340900960468296406166031821275198267927220262616344285874295673679431947733809356769716863146491858643101473745633599263316997965669478604375299958788493174742732754432310513512034222169286607705267611427351960315358209109030492716334720059656193313837454254999319626363862742997556530165011348427416828809344802127508061590296230674977708935119734350186676331382847025697364888207600163200512804771764098597146322752239615118987957881330536760136788104414737210211983898023090235365286723554419143125762362212719271730602556724229869640633415338626924504374449747889494204325673127942024928981994957670952184508317270783169224052168655481562568320402302430931738493995547914982159439529439799552603153109392577137570852063282486163425194639770289549031965519817838508543940526473575802942752562736208574085156668356965741854381805019507764215750372373787368818662940120837612522602827822548803580139486598393165950730248189913803926609792804181573212728921847785783470053274848282094335897787780087237190254169069547893391596901240941064002482903749372358651896184153076396082358656509265769071993880637873167781490557125166955757211130344761065372381414677742070922628531482314610675683477796293960831083686092062232426112766976609739824112806706735150269622958475555028136701343620629191960890004785388824346857771754076832574883262909371414729581996673455601368231007555935661856800830255402345346185990807424418691866700676423779439910027978005768793894282717661986563749585403913677380919929891207123268095213649518159860726351610621543685214558663249546249780037369367747494423247633796072125606479094982236128699738233071149476184493970800787296417077387285994686807959255641477351503676368701584009297808132105126330184611382144718360354557861269128005361407026852853155438402533583949336685991128568918526645926460486483501463204417812820818169657118909541295705330893111861734794274307409623641638559433332688727129655761279935163731321011228791389086843912999275427576722505737049725715342275909052716338081670504556210060805953463325814859663150365133151847294066046546926793387210636510667639465826874321309142227300036460151109461420547831255974252247307703064122446254246510652165751476779978506470930802924930948626863741527655302771179066141082101985488486959999370123713992242946762163161983660385673086587337303724388850181162265542768266872304092417984989561520258054916232531405803007041902106953599596878501293818210090569240563159371885116895204233880666349643584282665832446466989196308535338561594255552798983232856375697982861529115339919999656123531230155994904502085077091476217849862537160869696201707649347397204392288728325423947567813610708293293385430285236207192352656487880818392970477290685865081080729209197840027105857969546716783464410759336568107811524539532740579295953689381773982487573239195970888047272042708455134432838569185599535276614965129425235921268018997817443981223947877613675210379689410892090551544312081286795943575201628468910725172793877441786204743437792516031004846292391715142252663835483893725163622778787394827032226599463833682034853489900518314972584859867674986775151726013501256410811091225694777433631292858302908676030568209590893586447771079245394800315022264984126835057644017760262372328064435086777835987226841550207700755710613798040952488258211452036325739440084703199664906649535548769188935971130999154415080630497728225184365486136565557979354622488681572882169967380564974518899836724168770163498246288655977738497449999965967354949000451006939201306268016327257475630862414490573958278556806444327924851168969675891319761595966306375485803971620398235529579883655502097799974462530119775018353647917009428752176444054398891532697543070420238908081541873864759213601613564577710339463541330838474866725736204082929194253056438683699993159021242028753743099797602759465793307025102319989345069050101417396995940640962334734965471214062510578188267650904877258517903580502070268268163703704590866672275029736285501546762866213808770544147747095737722164777600152445797167252587725310024069039104199812573940067392136273350828169982208481681467831589388968078672437252661417917035672053355094825117666604971504624804808811768272740539529806007742126233607462635154156656382301605497081079875418400709562736424280034765448523820326583431159266550692019266462684116166988659434432370434713562191398219266402340174915188272325707960613704417834812938256040769361099444516134005415830899252660981090718779548575620824065994253343925091110341208054848333227479276586636750395703741068481138507637052491574918697897484113227629139780269016744536729840197188089936537173372307302973906430284552015094223956398534236888075039705850350755280102061889377735877201494546208868781497418121002209319558637376804342733758704186875983793716281177912976929215098641345987730733033110529475684719686028972133713355768831295630353204392647195033413106384024987414424754787074829283550926954371337333201985951854381109265794972474599943597078543657950306981874663915671771882067595649640718331825524242271832870510860391358797296618456767007489477289740004533069240131799655652326155203838147217116148630867633897956153644392053959283504790122524156868131556259873972111306370330093369286731509282844802600856677473582336646656905854091579516958912081937408122853830077146704222726741086145948010633568420608435991866532540818881613122187248860677195206910102154358799959647455758389997032577364600259527012758827135142395856220461738011163423338523138005422000830146609373493315388423583957888466276504988140444270758027666237209777001310611946419659307030989938409632159193469082877038537749882224586251488340620417209715278386483511723676216831697034636218461502145773300447818775893358245333903000386920762569276154213638685536580697180383519677721703583331050366829722140511234747217532627770560111789793482969513744294813814872903606451396496451579233224097193558896074245588195014263146109672806581649643363730596750358648583937562941807835249309621446712824073920234876297529289614690832875322667529043671333178721367740732021883465752949813861548901040855471191547264867323659566934400163599949850746671980811969589238161622866583797556233713794802612792558832824154304026881587853299967900235909445262883565895416834083944508923603680609510662074091695890607139177470848596168807055727846744805282470803833065491331061609506033531927879788095125079948534781276426857643362719927577451073814772520938234957314149539609329790954252592614789732317737493072454725030129013363354854357396627494043931914739231063297328303339882435123890469533524051066203769837766149867191129513068390348745410492930043091750214560061569557009296291844022821574732876948252403630351136495001380899239463080375120115401259989535214039377060561648443628685692132833367741037056571767328999705867669038269547521568225625980757503780528662800083057867445716713521311387272966431759527423365515254820988533489123554012719313171043112990579372486534970490958407978558862876239347443263662084181360368968625034124954642411112563622392775918606687758884911431000685612736942307250018370981616988918475816926929279786160081923994504559781854269257842629757982802142580162633843809493970298800109500826617164048703619341784548919940853215259606202295899326405293508920912980578071463402939388631685648672812152325328900420047972825814949919468151889076828435417003178605321812529772360243905977136761708661462429954297929437570291481936880381568311214734658041117423207628555779432154549604318913973088404851640819178799866292991172029046925973102823190136232148304024822460245062202873357266973149337449065379299357654737134673763578398922631378773288676081827026941134030829725995922065479875086060832955932427019945571455978652943336361414324619353007609617994632706730908944251527802499668472055399147719283396865915687583802420133143246630706629148865697449120318990540721503195841262844836438776948468771904057869637403857144747619829591080718987434486224344695846555607133489773590986767658887193273750449415192971808556152814528398721787366209202621490641994737226021281320628623584658867593754255610960066989327700975338660085144082493927662622175993236844579677380999287650917147585768724301765078523235911876429247066318156253103320025731503760964449976709080365142943441736782600376951158068224231408907584638124765301389268330537981082132631909022887548466787373519547079667248376830481530063122252110856215686882140935840479820792688603238210124781451253012266293427812485065302342333354416827148994979024531109640343183494253584235367352441771557832257919964837722716930227380456671010875869232900421919669196501465506693506861842868214338392790177914351945277255105583107847906182960227900047620219384344294447140668106158446663770295381608186916154449820776775352930074560038654542090888294600250744921601970293843626606741972797551481908720192864848947878070552877640220519809468423485554547256276854207099670678665704084539025976754854089021289237271953298770594871630592679194906248132203407267321332699023548065151675475950713628329674955480982613152843245187343970517525324433742644956005253737703705451828696963355837180174003903968841224639947238251321434373301936221095032678070211806745074215567306859661359717808659718260066433902010543263172363916258345027097834304901600610056445376584773279280203334402253642367766080512572189160646681910195416179972684104214151653342439263136670887338433632011995188629273334671423165390003770598071645110665712265060488164035549540432790294143610748506224500122030473618316306522800075429620050852958561203771510587116712996756533205085628129822459420747124186677802023367960041322743049036691544468772820571489620286119607174497163249903609599913435471377298456316998806318340345786264519134665853833701621835096060538571740457825546763418295785088992721253535698137842972097529689231537621461531182620659659468893355495298086712720588847014333028637409116679293588392279469485757789130899780636063642254455290696691129220486374277639402775732242872104452592918083364172587791381337660646489488970650508322046274924724430039344440632342624646675263468747801935500923868905197805413074377841819264766458186831893454455594983186781710037362586988208325139060792269055896516366515473425730229879863595484917014272710752141159193289069803393706598211039354872989379750700469667382348353642783610257458551563939682803566028629347490710573687439153719439948583927891004884121271633170222311613474477117917574359790853764935351768223313560755444231819284521825295115963882578218745109621434881557224629128483714124545206006668265080418133410266192260367189046637586230927058319327354085092412023538429644602909935435299570915227062856064453293396615340207945350307354394742841855331333661067115678085455869789003090734399074479536320615008553428027117518041272335852350758281983975723379918084448534883355133443872322131330395108268507650581005893248284461089284667595794575979419460930893243077724617881809737143348751051989987525670410115190239251410900398731718365013342765254109991943101337238635111523324822615650494087056513958939988812721772179747300700453106693833204960883882406665835871723872461478385369970274540227164791843754786942666349169939589095236455482628110112533694607816001431703508491666272324986927556672533024932507879283466155948612064931957277691165495197653581624088677079880431248260403655869991738901703015208228267367387534751322237467297524303447365113029026277396284039292106209027141972216493882755486887327362945184987184537910133662148363228346260462969034000323086687181441353405905911937559209180723485403187932741920455333160044503028766525906726721283750538968370561556793360159236918569800130834083797598332737077660968009679814904635399269249969825151267519081642822929131611878198550278051805572153800139395268960630044590741792342514135435933094154861652104289710311589618989010100681853449436299991491886502140306062818180517761779655059841846500300466056410168764200563378398758696402974435426074370182154336387294808849955338066907643030577661926804592460965607745942757614369329398761872865617928979452961916243102022582307674711441709237195360794379072162509394296372466461236946450752992867130691003068573430577124704631921511656673466590023377257592262287484054119787858764669097540335081691424263804746765990189415261498298793591378434665943569706736043081893990709159278178693597884960704943810895753114114328639343526723894691062781755044403711609450656277533588297110413322250374055475072758248751215940589754043093140879128412959188860226176003160715205801352876842862301847678279775560663046688970262154040434610878573487237710993930142778434029425862965991058683351059371530484048358905668716282825713641304964789673759502224385127876289704478577856462445623878282435697881479227326728237178365929841526369309428050436459849760022694026801823158472822460364448706915447356649726620653700890107681940196407032028999928087204425512826929532045474912854428759719638507105329124821429647829077067401905955165213232441920868746768098276565829172725948374129898954448834326457122464049587268445314039870860507423771502345873299436130966958559267758223902679839379331236060631175207184675387012500209634222338945332070324036157917459979536143860716634442846707161065484282269781439548184603239882639649669804120287608813664702546156864727905225002671456379383871009537782817390269679106848322178814992185131257859930651582766155212419385296967212691460698412993043014286689042301440070876900417091003280858535251496308871393770169312537794701411635251000758944618369008900653271177887463975988097873799403676325272563897198242411933648888238719629629014699919766651370388670770797060146036320582643410432656254138783103242020593517203227834094019528651682093887236973432513972306417863392618790458225797375834009850003223753867908122928169730164000943433892132869965988514000286618968099752199282658894498006765450788655527429919203334506357751843076557761704886066863945588042636735326270503925119534377305108224925390677935440114525772848935554242554723789259821252145552939127574495603509022910927935738417530593310280096895461839346029820297329849864597015027218601511567105832914976659378435290520378660982528038729502971953618882572202133144872697465474476726920847377417706460444044151452224842890486622440183203823758874949048877520052907635461164760040470347697558036072472343692702465903984364072419704449522823000355789346088633828904112499599484081240076563957249422727233177715842245399917424813642909167499111229201281848021326920947630357496035482842821131186746444934786465667819587324181699881337050223276957232597143268838514909490689705404076826761165312392949470648599656409624461896941050426120352058649838918711097759946628738273846428319180980237946172409865629025349342690311954192404846374373927697243765819074822961310683330773590528798945058415735107781715971168477254647879947281651759194552132931153864672006699390217924067276355738242180239289320285250489740502009961799574748505316975784569786727436950264802279784004280448122366494524049481166789795094034400547257875787077864739356083286202201124056736410430863045530227148971119245986761719949598970923709039806170827433762713186482362958344931909489534847974641420840873563255223832404772234193490440732324974221976928854111718797137463843534584625534217893241102526766049304091003461016622706833124328357272105831249826454178765145976765494499855597922993325169931365138046744709146900852168701665665586805420715604023481443305642482224851107196168629066363392686979756669194987417260311924348486170745625071984178282348374921222274333583742207264943017488597763470227756039800531150394213070394419718876630775066590374475241669949594681690629611041134593876582711292626089322462870803217350366601677280503579229792841947527491391936949663922055399943318998973580849459103511992710806995233082062298793417169868590280548161724430850855617421831691166294596161237453251611609796609141495160666570436848486860761378325741825927343116573079370257507269711679222180066313990938980908760524062226199689568460472799716602392125288083312815975435960131895125613542986999919711275190104714344314954298808544405285797649506735058948249118022532984341219610006050631421284395019189728178945896566079733545240765771473387305495829928607607407398040199921685119008999083019932887539933240842023108699775524319059479311368237822398176462789469300100999338157138518718551947169962913427166112237244758684490095323828102619401041101771401352719148568843959676031179355663403178520202336952750491919184770120848305882037309719487153589015377618194026735406397876377837502278566154969789023618230103357252918494494672278540514152141699531168240718164901013616642218712320376388084770982450996621528606878530509477623954520205519240536136685809979968749161140498780343536642916347726891658372003452657385625825784125068397220055819069980933142633487094959304271190471796331733263261404553341356681440666748710805174472293636371858465573908022270734452366646787475768149969505637526656155708212149462444461896672349609551482864811155766493816390134079964717150203922800203617949014736170457362872405610694368084166581997753729130349538174100164971436526775133870783838196966616809309877581756042493323741862397365512121076012159055635661782966668103745723022787233733208045186126315166310682073617261002284036939972095131951603241208936135359488580493628509991764497398762245916547390484017470204577813147706656727085130478015289631871830145891459598962888625756699786545079229197560592410703814713203970913322044843991333950583824100875189840225580430786837096428366383592807845478952735105322023907811561550074987994439227192240780818035099333102048275211443008128641584176116047671377155554159823891318701796390942396790123753300126715461377708004534569204168618185461439559429161771967440091577487892779349206033826299002135894724613621468080109275225536257636519146727959249537055328590835864139779672923822865125745502363208884127183923508286930478565877798158923922321330556902386532865949003202359895039391957322272117519697907469827827682166826488639635457644635427781045918419617327642281997226706214831811027116797990223446243687047508871456288677092959378611455684262907072848546053108771509714241628924131433462839055792894226424850046092596432816436031541591191883137627710742397191676809297482161831608181556740924439481351571634625290306800092550366006038210512165705023051327529636865602744420187362513013315835091888701724649915880823508793111702600069853534395746000239403843509967689257375364854093386059414293365813360656823868768405867650255417756453307987649567737772908293059311216255470847976883636386357137069575898503866518762229804470274873064878978160453558372694672344239034990804212394068256488744051049018768322196207503022605840289450333487223251827023908008277606258746979913299672096683377112016526586656920477098365331682472943789017291547298115917450663979731906241999341863738931783996052244785029549274342075955817331278657959615742383732347901069840709414490053671447108021320592798326990107340233775490033283561264422506608507522763791729136635324519880958747141142725045283515325150588369134417750377871577784929702450024872820298727345895355854918761054371462311129226146846162610643930427142093474058504861521410361779603438565083173601239019561997896763166302136495131328779066937259565424708168195784581169660952350991021216131995536506009762517303307318795477600030985109517024202565193470523517526467416128318824729950284354469245841164452715486656357988455128500041421011003877479448736393673667909121140687829100086825771797564315340553576849676120515559318424916265915101240240676106509272634745906801919919866912048612940910343187455000076214523754012650449851959454567137179041881973523418403209435400106550965592573410431967508467305598416841072568636309011764506855603167598511977668243158703043162485353295185921003091599435149888688935293505651625603288173018413415142261424159009522970142480658905175968765444477692037001895165934925302554610236511458890784532626167832211939785318771394095803574843534584334749569039769223421106345223945347804323893035973571905003082204226140552116959084569726623619844549297184645523814382246163813604627823013957085727654432506863853938670727703363788330891632542386298255675496911185468968934454720144448407473027673652564560957549832626668023424658915533969741565462262660041516275141479268276804740328737347320949944601955575905959900951652084435355073438369817996560159261439888210780320280858379471699777262898172531745649539329829082428792840226589695890606733818107644799139591688604140179027481686628133874939911240633850431608974122249282195777603517605582164736545973729998782863205904465889658698184197895421098569908065728051723925415326030469285819674474706727533751596853779106923018938026928396259992669265497830699866002218633895922286187835613926101787373319220749011592852921663334983541338176460720752550790405502684284499895105291252208863200649967666943605639623287599625608402195825802998701512621283749428776376151827922940013291375020559836917264136122227043473426068741745249828845866438197708485577749461328989789494443063512070936330834101434830357477976635905530744980461141900279959770499945429484685099161228556126388647554079020376245249057626362986104935525072907782549812873265810662974973020409122989490606820351018252171921413568509010256341933369005325184719205868800889114632493288662377972763764531744805182065572132199749848030568997665311938955250733387591580398652682738674712320569073531714479470729826351527337155900597171130963256205067947789973409665931937169493375696751316912687677753244335928321966370468050967078469325253038805995150645395898029933846584545270392099164277702390463639065124508056809871476624015763162506204920810808082340186591699127995736433585533855485045723930159460134326266284169928309772553139039582746548946953464988756953794556639039267963191636495954375604553207182002767032534664158780378209433458443263550198093224437092895841970723831718480444803794791691329695847681620279762727301337034923855590269984062711943770377136345201992599458561867770911722761281077523740658672461991498127360542865899587869350682102190481047083565945551739997412585432756568939399072870913547427133948464238227955740056175686557577653833927542612278438805717843220815812359373999213185472008738303871895964478187863700311533488861460965034266044842975745372555651327218750533649550298268239827288910129269527459162098851960573702865465476780099618782404550462355710657040661085056625960037399517363873284816689057451550412027587698931673690593019907438423507896016995668314541058149827446954758291866321348017705621708949975673271140168276885694625548796607316364930447796492140550716021948785244095293171524249590708300485413667233279985785515616703863798921215574798496207396862161599652005938141505812884893784038941843312793405050923351467448153145016001847184728522209919136559779362724314072910570872161869758344426757179025962231205221201532241315024553541221406391218949557371744452927377272811488843340162298644149324321752505625584205664752846687610945331925008840330772254283454082586070202128661797331072691752965420304079648474393519604526453108975752974569821714749602229842947850377327392399133938848398896929642490008225610628572983045903935968375618227640325647256909891685860508572306778945356977686106318916531004811860792817259532765036903798393866836094514062734898244849502108511564186316943836499903649681569204259468217066673886697426819009376833515398893231004082974345930847469774993031401288468139984791326545428466078102592486214838887173061354882355856849881801829803111174722611234344889972023625742257903834574252817151632420324704260814978329306827895541095996698919207128706843798007808787095968955188431599552546330706370848224530404388653403362905652744947266847745771879443768226563383737458609321279672051371043839583713820659516027565600804375840673210599728550872080269696598869345509608581993270747997385259471370431319077138155886787739436794852577452915300872300620175698271199760454225039649207748328804681161272044948128407271857953454668962708675901455718963795150928372195563805048906616640990876187161554905712299232682122719885358640067729461966998123834914704594985708731180584072875498899107844015573578208429076059672997761689439444803395361277190295055352566994544675847861186707317527116630761167734171930888226016142434519648272296860075710306128421806105723477599239860499340522955563044334098999617501252093918562372408545936869848196238346217964489932268299390111692141114841145843985540602912987727664726850233364986219610408285225929080822307912480280540544898494089155145305331294408574426453595078556590692518872654197439043022371677494064709494280227325463530887166079698654312043443115625188627315859026631979744062937262650096590774704023953215719739111704566530078532866655429814069191633049592205035639347101711911680683130245338259999693356629556820276090429076188699420314274467495203259082351255724352420717393560711492429932385524772882966564331498029350731264029043438093847696933951454988289722082096351717670726846163115482494318390318776354304349987338929652628973369361503908117603842989404222695680327909014426636274961771203958739837795663709305964408029214156981495795361022503251530389743901780258207882292385473239592126831429973200350860777535006673160089614969179158365211744167834707301244314642231180116974661766146950096824162756475542831722106506366604711535124805506732287639239617076408460273472087538405041146799490436851074692616722288867292864653336218515354855190941361266865656955715180623282541774761385325958201914134789078911631298050690865063273022368621404326281385696275295664157605838789649902269213170767806518115893136650177672420759362750913124305126183214990251643364447403166661968329680152953848164275384527068329646463549742005817684448237990918641629333246919341932387436901264939715866303019118154796246324439280829131866834760091971695442374517989775480642529463823177478952152034744754384127607815197526430849056543533212559881256251553180323835520588828080343745774401207812211747880416440618805357188537652982704842625823342941252676973281628034204421980369012944713241158834389407293166365406542137222300183516799713113477974515152188940788365850999121585784904960231639242550571969133901477432163350138702542076945496977559491793972507873331857478330411785634284496979633088430299288177892805124022533697185695186596716876755625399765364697367902613717579330327240510507879711615229979746956609082817790842174609670421702574092312517261472589989327628792290491735503553961492911141344088653354737903787457641012119134418842341576830883290346216694381718923380414299311965870899560632827522535885922936171246175962833261991857405283384360172829523623262088694722891753671614789934297764667912422987617878283813247614213493763381024261813720766460894038055148116479403926582620449287650604108068938198434724190822505681557059817220098934815953793453555934722907569840179369655132570570695684746904754770653125285970878210869491265881114974798711680696422224167711441220966183095752152910702215436622690900853556043747599350473585997593190706389195694466786768803797515632977338171396160821009215577879696133613027201396685400707475172144445907533212734484698258281926516596304592539803560497457040368183491442360619859388543130549218331511481835488249269155243876695948442893624863371692864108111782441116660963850393419767564454335419302242417111203162022473146782755327571707435872057703959555806984671523162035645798145995018035438832997363546566578004271917153503705887731856437886575305899275077754751811108991302276825757795782464785415414879889329487042085739130946441908104962349539671855740184615821891143201838553447685888983748220281556510057279305627768115184047709698618626685261112469817453310395185300153789416150143701538402179202920135524903696294243118890499474630023134179991442956853534285254140083155267251173335625324891940026187025885050615391501392265174802341448557407938178236506336134306848302627658500217683528895826387852075725903929538633606754350179592756566579989272246542141441583808362200269332490547752603579470346016764845909548718253996114682318170972038776713901034004211510185230920491419554183445637217045453525455873031016268340304657351814122064827518011820872250146063195500874852065011366040659990579169799304378622912882734301967553658195001037567639263332876184150165808459025998208419140119824781139182740836648774088312914193174387668685745955274720780161964494788113027327868041881587515243263330524176730718551803915398362244771617187499810385896072178774940241261122610159840390859267202646586521940507925255452670652780486672063943180517104482756979395227753079271282743565444563535605335958644703662186138917080198710340193877332819941892300190424453662663206268109889985612615365823234246874591521459218744951616303742630069354137345595900749655235085360741556523821194949370749635783574918121259367905864124564912827702354228041076201295074866046190586235948897766245166165420915726750387873149121495237745324207316746380148123908195502357252485325682797068532336063199732947324092056755073625946347173732932368937653194443657062370042510751789874705236661230879260723856887796388720827604626399993444213411219047838243842371941918598816336033591118666544702264744061306758150251051378029090497279412179577737573365175251273363376175070367294601997667722823780431178157766983203618544503814641952076482723500625114146615870500927113593825902418514854326600899488321127053109820289452497780923886192443776822085550137096773622566380021613823915810740059148996606588355220449765486629016346228605765241094247320567210095140931028474694681957809521905260668377610240795961193721102983907642613425637343702854900510111238290790843259927315255451966423964904134658726180029025656176241343356025454193455225262465261320906781043119113219605970159133893361547857633517923440529874833132221422578651770310933954140760408197291730728628061663865071185963758794160303419383866125777846353520043742708602674593917917096407445619121303598256351534561429284784317188184097716690793291246177845604134429894278293130708134218492071798749581207351012240515990378794687050008147202219101855590066438016401795667632845315841192051113355399000189621377640801290463363891145565406879918501514652568150702297114873274966860366761904829747658618266273878956190317186078890436642552311726527857791543946477680230733305088053223210460353554660816596715606235261473930455501549983131807483493582132791104129615538420784539669838413484509330184285168512687683278646294125658699493149053708756626105291184199905873287651318514042229013489772316956053681048118306333558169039586519547495859118491693745616195864594833329238304991940759264724854529873815716989036688569035590225010736702575842967941246641292607819840739811473989966604857068050619660448868343195899673524793200430060700604744497231126090380053666947025009366044070570829706967282553507808430698558738558802887096999094344426114080622189359185600699617791841420332931599133281319605855591248330619157826124288257669730537244575702031778298561426441674823488127384147298079894580165104613671299356256770959273788074371556416447015332341531405673209660778727521686927277108853816841480375285508138707213941202194460082837076861632916430281257070330196641285969783727320916327391502501180351500213161320098234134770033463354252192903573075643101041984436580160151300676290994579057567801796901053137482380454286434771875970486179901150177057275885719585072921062085037008784055003886325906283370291793153327068057098685413750046023852082568226694090901338232003626147220968308579316399794436961785465625516437430765613823668442942497255114776687153120450860405703908145417651219438932937440216890313526717390304631559597373807191176670793921019541234890235317585467207459815586790036213375036706195558034432224648840344952922607054460777440191753019555234868082465450002892440733155289168225112801592733869662942742014250217328937162690074198233572383764649024952323908698060014756299860343271600710414568013001656329063606008775149557725945464735582474175195697794696398201393124899297982640387467118728637187963855369956659622373547154121684024398850186801721332066465141448300252298740122711746508661940015019863327021428342261891583976234838251337648809147361734694717779767962408291057791078775010772034493337345979339922589816255581544504084821555684193020730864505017686884248246591126397972065474970727722581977390930693839302077458427273487158432700113236547756785908941530941758183361825054888104150451962430986913682683294096654675282456467146825207197229181595229147633042610139660809679971439374985183300331651481854451147626031685863972534176653547779219442400050501401765302242846347201475916922981791248896844363593906908876059071415145559718613630413566799944583219805107381565000008592172809379451160557376013423369154940178529608551657257293299483683496402916901326916541444081678406966972335185600407633519017618508740413975282584996228652200536290538462486439891221001796958823688147379671467351714833373953250894232921377983855207752649841333111258058603484519124850186224760908282034543241893257410566669017370884064237853040070515663106847429389545321364898673214967854766082592277183136747602228578472675184575609542240223949292947251715715768311419648392788323156909720605859367113783585624303960913132842179072658311083668344369065833808554976365198047614998419173371997677012560005321779283809089888098393401261337285980510651091970894186216012750744984351875577512213022120679491582903581096573140762392489713146069400710004301991135360722685767966402167636438615259301175002236518444950934217115128760295460290878914279479866732390213477422517051153569806413623069677188358067897844586054261494849870993356353861006891457921987145758381380476994965584239825095152914459719008318571272811152183067905877244106382598058431268737118832729447841996008552055421393009070466511452318129856515534976542261810264279026067938557998490341390087564349289667808986511185206254610809017940464749237632180438264120551418305053839771408582461565737177027768607949614388863177523518290357615522195958239011459595734020994592232819304734186720782556921507979392814524066595594817911071221636431869462899628261121331442504865621343953264317559887001664517005012535207510136992698436012024501365788358407826285918552832797029327145301849371275028514567816638092756539551511332270201309722132271206616374314149078202915447491525200207236251364685054190028760653202159225475976012552563110285569787497666878733495198421342060533075103060716533818006154147132629931658950811312781453634922210702526412855812024107093153155693420488751087747313732915331037063875457781738101161690796581389293675181379715082200799179976390250482763216928648899527142437861428174840168926668993156842325226387772716851621406697170094460522926252731768992572524183472497622104942603484852479554843926543356517303995071335811802402957742907685189889673649402037336948774591646481172259329378370921687635778260158737318747884614074719777968741930790807164484429156901171338257497793069453438146181294657415324852349141256611820112623870791700359056513661418895409694303125459093465952699847778266355937764915470417938799560806108475972618922530331338763812713448221911804435097249048666717249398306117565096194706979163385104964425500535423101336354817462686815284609782590228194210707709676062274164330732113777240034488862116769782810568021258387530634490211735849294828019106330734127825639896321657316249184979969413682815285492056402178406586679982797625153202721820590106083074642370765463261211476569325336036129324432325405483234098295927044048563194718313896162494886488114561115469576959239993792723414794593105484744329786475594548771543290758661129276938283505904468861022720280806507635409869935434815429953760988584961802213744335233764793534103308895998119179746592633891666510993565371543066653896508327771372758811500733879593357902162522175054950357851039594202354468263744947341615096179817005992299993359380909602422944253159602640302709095789218187856705624216943873762512563811413169708863143035372308800515436554415853023527884863880431695537338264165455288920569811369278822040203670365428024099783668441270257232490953226410938894797045575538229977799566731963853243469133535130111030254546271832947301482854798603288084146461890913518380925305514724372689222496780398471993868193405541080137104609973305469208579948209204338563698791658187841268246384919336106931867889808095771167710637668826378509142376506199655761341874076864779327352931647260673125220526474748982127101973168208688438653205619190171604908886684726647715408018554641819167515395164772080991802065754606776759102041743915886598707770560891705894433861434333111348316876713504302366772202580155240719880630542639676289982564115464102762285018801225244688217856528549158840150665118090288933942551054102641225105988302601385456751935586133362528480125082786295912098700575020315925136911282556293536410549944446871868468474146715756360684975609237830251482302590867753535154412164770529563983944318377578130371160556210176386559795010710921113754865849998154296353095205742983834357852258559796210551613430545770185864703484467559697764793621762270658230087784339514933813118707001928382710577676797520415131429010849338690850643863382228701280896000212222704041680233478560985426690545245428340890188231993034606486234472762921704262447805922328881459264358266589344801987191977845482278493987459231870365458391878225647124397986116405680791515548974002326246529303958203419672712986058685879297237575412253371162760974478701282614847648594467334548356086675167170034098816636882996584159962720659905650414400782656211586782086876969963743453168527685944867982881690566068559505273701597369800672763780779895868595946634652915169993018090879373070139494062644577416052754277357448855479953232650317081880659547950978730587760630302225043380984778806071738393491243623183443701150749917182087875822121791773308093072778158302271652264096621385332752364607816254614933946170950930896774623105216104765971558521251320926981033837340418512911042965933938263823075123875325200846681500189094742811606634463922744894364618034848598706840130537147498068663883759163592909061093658238128074088797116236304886138670975608864170437616101685420005553834674422036692822778133047373619642668012657914744325474837178774946363257738284002501837860940947899697814834156292945329523562146626631040490046740460500818755450434548310451560582436709194641853700641287984808489598335339430634965003600107902737606767096001245625067471162097922623793958817447873499015469590337919766866080029040039695609390303222829257106227549819678783330569542976313242851834395289259909529620256693233481438838989364365438635035745216491870851800336088390839668892358241452903130399616188607905475858381379997313900925023339637789150976430838886554353827543402854969844518010058410906116374523949206816446612293053136397943711334260565743794491013772794136248927647416289512444668664648681673190741473547972487697068361627117353102175931210166898441188856441315953220733855190763180910055325704529266794093497095188558967762857656128593652713144284465597190802648260266659500906722123720167080300263349490394876109621829204238637108311395705961075219676004950198606453939399751805658665630137497054178238013203391688106563506142554016183222508837428878288007734043278596498239952391991532941482912672891524323501297993368044246110153296631016614475187718901675539412008245517561307277338673005011922520361429348000867622442340601403255004634095858931913473534596503566902865612814605951357185843666182314758586288605144386375949133769715633263883068481360902007166710943845747167641332254278262966045575239170724065997442687772400165084056315639182754539796881223865799605476916552629232152549630574248225757529767782288963493080609437375504980887375850184796341295326058975267953148816451195336364410754901657020934291367601230390072340663314867028689437493223255889514953626998802804832827466941712685835191092294976950550697794723311749323274096524578349620060551061232512627088617336241026453959996831115557441258201673428537376746708975721971423582700360857959481167480531454960127187157608955487951073074939276121133654820997915920373572093147921140220367940596328508477495578242188518437101785825405061605747900276140034435674284822354204272483127073982628957120465329387905843705227306908848464428761618882199456898419933825971206430486356676560269544518656207782125786997446442017174452948288295850329154377272399043483994072197559712331940978427348960010911978247740564525167819377893361211847089234894608924493478209256370290086192078279344345997899901625080235278160994639937120156822562844835320958155308529728092619771552422829624902453030100149440237750515101675442488547836122532222280362964767300574049450157582143321483570337314502253969391880801578376086185487813383149135494940754779870795268958479411343667853689231705050416043534961277895814220173282827046915468985850554191831775719328422467595206627258686387350357963480698733711111866499291974572862156747718473919218731727522887556112180413879906382367364266093065125406298566108015196076111423613383771702081247592458152017339664808471695414315449621840936080189537645072050588631338065656603683766578729303192554489367337861192530918071931065881839186760325409041916721389886530558065238654217299882618786067377829463253204003583494468849814068663262145856205892401512095363986891976757496891158111162873606088171801912933143734711948407657198502505578550305750406708895783113845342688059841074072394042491595213394410639215581699888219599597930330155597666286378980464777334742628692660409190845135609082961843078914393335480281781324064397301746914459978426373018147635094321634793708235551402892159476304992812389499284286198512545433708371858184413290947786874638853468100259515403974918304359012017461055841989982304413140090235908906819129629129345071868576052917223628149860636872794997825422408847212214237207381659895801449448460218011504825419677600559067394395582594508545134015620472654974021927938232187501579509798860286558372061581500923862795387048791244970163538927373534833748779090725101922733011485306355720919737485233303998719236291424751207014585994546540485561274836368765443902921878924660860990947959416899711078414005985310946163098283926384649430656458517683626027067355908833079612751179455799331630516793446349863918342866731618706452447674183301523666446578784342702008013926503005624107404167347983157760381236747133523206715154439714863699403008690729779227281927759309979710995667558508352357629518060129837257813237309653376325253222662527623266952905983869080128395891476106363069963598129659654697896873096885398660882400180616373833001757516857577171745653380842465261252370075215477932764796604585497839819843264855690215830273169441674052392932736095007123030313793642867296631370761495464664027258790351523502797137207557333706173324572402137630137834582311191525703579387829328074747133119409719471694309162607130813584525388607424919852656121963026551540061536456834167424915116947125358090952056091233217316449981934066743769858430164470754579158372884037238154921309977282666161850251759963774556037723621736925678553108656173680140302850279188589683933078117981499411496967230196292432574603641017601738952973644678469627377602463207365365936389966072210574853285447318207368179394529941339048022729550644891356313599443793844442311307715298438504536238575778107582976125876890001199598971978886683918751188808465630164292420198002086570917160022167474447878349370048997817952999211360762701725370715557220511051122982566780737757792544364422616091597373280135541691356011970664971592601627253152527388782692822704817869779757422922498057581512668624352563875651292444707502805742565470094070566160388309916069634513000891873988469365851537749920049813350992550512784680209687882849561067078178979749313445709739745182219213894899570600971619499925826118723434383728400619262996493709258592446153270454610962330464736756719670294463721417941574431403133676239223689617739949584624510175883961380527972639376204571386461759475433041663003943466826433171973311893818695582046391941060957238267046186304322974661330892379135415020136843009901627063489087175500044776867067855466988383050385914991503612782282144136024704765443777842399426973846279528708216132498499502735464271309128317938832638975891286678542218379144368760718719851991216661721619849052165946466680331518134191208591803649748850555047034215314359611955468458117490991031230179178591385491627537438312412499154208072384683172237266750607361608402223793614962116086314516086982485523520083276064503272835669394865421526615422474244844023312328045668978906814587244083878245454165503157093126799352415411195603612025125091114700731798830107425736254064568369758298570576150316419237399151622095958687159158423958990380665591205686536935465129098863710331788500591738545844615679723165802512968331955047395706591305724814369181397096955522487252658868332528900565014120425333589535853898378342117684557606676071972878870839241408896595731658178579144515260580715143420673748284281834685143526888168857636760261982460433132109143898322828644024038798390141313215606839309611457559779282878815751117966532509383244891462873557710309796229974744408979012569496467176293357443611390740578278665643675312938248379093348450335631487720759725806489489407461095335946176326773671660109813343304619837444583190426891051409500339039796690376718776511279456441887969359845681082649449813553821316100884702406029663249216511618767269770982332613972451135877661221030593075667176702708159950176865507774576675173322162400125511887007960055672981565867271989357317562361965518848304609330503568065940943979387741249953546243675968063697731272132708242321578976901973700270927203065107730806779180341773560676095536022200615209442418851760678629065058298553747993994321734136825564852641547854898113665824219619793713695518799566425293025283387847668234923483447301138094568567172127876360914639357857876645944470408534124080494041143295421690800606845580198511790576355450102469680649888181386717356048792614740506235529380586852385636893105538702212521148431574740921191326754090159157916095769337914943421564101627573473171686524778601012933708711693151805084412326974501202456339366974982843645065700492385653665617367906946879017190954056414262707440106230034987956512909030023769710799333370734739269276741604904398635565925719620853824392816375268725746185443634834218826317300086137741813386868331085296401843722134008230951104654642017255586885899422857673836901664082194949255082286113023628679540441742092318062793938645455595196633622459649187923143480991418847785398715241478329455512897677324319495351497606591716533932411735043040444256762528589010634142138070330087730058456271710701537665824253864178873670555578263706931669249583429197174783117680595912314008205160429266281858070214327521989090902546208502155448568222686424277445534316173894699867246240330117914888695357688435866383877757462833271233039536956256021050845890928199176048019306042588482252090399609526390581955384487084611213027381263565304606423413450608406741150801967679348218896223461357408157618779927149733329885391084503020033890887453452676972729770842775281957849649637033593422861591451217917506312966226190184311365604646712474339563890926783925092794749055103301630672498715205052869394555681956334560001560269203987616083029601554060460513980663154169018931767804586631807584060527987358451318192425592255270458849994919045583251446627965264951329843621617110489739927351742445220357111029148513795280788149192783532094966013645218935356388725245531455935320765511397694846374256238037332290032850734715789808214275273992546541311677502423490442909943081331143790241174587445299632128911872942794415511815196029621097304222738105481363894862580707908143370187952959962177471900008938606818109550568292696357593875282340698580276293348100144763756866409920016216915753133827693892728165262162815626515405202935348822787704851965819952773676463362537966691207102579836009802173924828829704433440723958137494830269103946528853204149791122492721322868535540060207827179345518257121087044090522056340601060897358403978359340098535344617182077080605879453321784707184744043855338434835415713656969009665642374897835360931767579301712530999151818843849850560138625562017254406193530260796969270810015874710911157046990861201328154266765939435743782481658336682470944078727258029008976308372077698233103771522664064329672302258321268129219797379429963589533038242356353337535283258743977490005353845274431719607029912666569522537854145401652728519744121010893231960674371337030165882608307898371912051086203178599483325112793639150079808757334706943216759902519709529320966889620432073183121393255869724047863534939853145736435511788802151236949566850695523269181717243229401581006643460777615788436740476129960058724760109333168629711082588670284297161100702470963352954734966087419916812331277273535010597874194248155932493653582701494141482959041678075725293954908643650364364618670420550241443667267065074499045006071665829765842670279505801766816112419716423285219541419782474237979870467243118668467998583658859714694564689528267276447623553358084955600268804536726077529250772648189691625504388011845681155277315117536197396022973732918836974771264258300222020113684930718585117845807532633407084982930801418896934129162519454524319455216497445369477863499044318808280184695217803325344053672891797385192577605418922839378631062440160612025503034887443329947709834538895163883733244062028102733267308505450466520492743048461735641972838800522246608803226022994278472539190224925233460847412350803386601248852920011394848190017821868524701579357743907957060243106457909003819000035227473121249409030546906565282677983372393596610079056331787981104087705890197908211843575720366938048378431215941161480125098601871149947567229311419936407621596150073969637174563338190524707754035968632873797941914564054077050451943758804142983133779561258612271279130820740592470094343918743455356055631471134428443723974039997541228329218799731294520906839194166053531546104413845646574262508991833519704929265071314497713543372713324607393214689107137694412125433165394239936463189620926793685499800434161385918190261206872340562563469960196788932125353889847944612222526445945815368827279749941454333582637850625163356677492673242608192387692898898967670015097577474098802786365990616023624747289737244976600409368159623908026720144611990079580268625400751903732353219165152946120102264336658925662080350020177421259113839149877593026191281519115929179764595421501951522916045950124281918426960282516778602841156582238960346919097234263555821063286122746725053718161597393493224816562321864190760744300333982459142781877012180391976887889521863560979978385014018552219423097251922951598015716451772469328477690149051769608254957270278708203003901425309208801261451229303610598462191081226474154171651178832975169920576965904868534885110680042143482622046492409291892786187818533864157611534191321356632422116781092539470865694956704401571141391511679376238379252787463222825505776891623093634386892126475137170027243832947313976152985184603809219774403446897958524530038643349613058454618958070513422599840156958941733406700964082731440744948325131857743080972518767703555879116861091097933872984468500185427274841215417273226442489033653176212096260104151126232091092801272452762486250884794317464245974076778315063015487246907130925483809415847290093158502828015405460137464482004817017363848528807295509518597277453110372399774927342939458808858045995907287209284875647807059172741926617609536754684240586610186948216517693091735060824622935675554845059504377600082192540815126013750072158730615926739830251512057904303333122510988128958419156510062474443515779221823348459470035299977457154240503625555213545492014403586084289868065190351667153564119166914380100379191857565214153542656527120645011490350748762229763504092059874673554334015500396267180518940178652025899561909157867747488399667995004054249376528778467523744335223517213373040128124578027110343976668196467967058064914013015271303713714247700150990171641510399504381155232940061064224419960314444890803893246621605794932058058057599658412306902485986760207065712137498207246627686551505178406791643633902669327123718154303518595249448678172095659197084428015533488773560383462990003179729652750454705119993813725115639363472901270556622011038758046710215075419716473838635598708875517451094800882533513760734144082060429256175933341502063879936262004468270681621195900496453718271856687600973836472914414003078156929997755279870327823390059798448532792780194339122260612307928376158883928401582987085613507357276584104580586842730995978220900290681459536380503344018425087148174643831367139690798614957222164599266558165820325656222505566481763869082697815612562216409788401168813675648468198656891288607869674520293279072351270826701021128010725365203665816147931850134455564541315577601026708877664902234698649757389051649513331132392795082319393053753023854453776735224142170291297497938395381236577697519137812924124113936752352761146815678849815194221305088591679906378484669877608775433575118032898164930784494491908032979727376609594291223519325106840092754188880896499205467171510920924816518876284632780103860976575073624788691219213152731217697419752284724665858555810732111404451143873568093739385126649763144616681087701581688986109034141304926961273879672079354719295410468505578026455252073395838314134081906038184850605900796187831642064285902486078802584354670641903660253156145707926892536096722144012845463787267078515673956386736748831767106523868961453953468265706930485969771745151493572699205625015214227899427770752432109417580771857982931759769030400425511814581409726806556042062548646108959509550700131453026573949271304875364358130587723029344453808681439649741677231400793568777518411345698597849122638721954973811937937300151054610138927959771891878083978594175463320818195825566656953914923902959980837620571527516506924188301146342029464539129776639582134600930166881263482632422531746702922880140080741230048114805397528626424411931166480858803002522808096336764334826616881317404741723680701438067146064708314054088636058768799754877095858393242363958431936105902221612964358028257997895733756262663459808079335014971496482014554401321119907763604704739685792072061657615511520663064474598715281201947826061654433830349193739124255705178716715636182220217307816096056017571264226989443279333811328393686891709490489613915762824000013313197161132171969000202705384305935785027083852007422627732010276840875009975474486168044720743997070237230785669487681332918297539148994110420056941079078974584280977300004653572756574995297340997758759035830040937629833188852345017058930271781152351922210458694779019290657806970667223570726765499991373356467910479240077821829649978159204973151628377360178203808755915046938318977656504111748267897187250057945920860924553084855828082960261504343862675370274008001464503070959319139548979570500782805863459101394130006947076908873004835910025726558585574833919003844928878222145529898916212796171371536111934643265231442075872631961084990265324148004727224589431953196641124266570072172889998187231011942315670201046743991646533022090751341911181028824788779361830486297903837970083582242784952233708614398894558931678021196021897049802632230476999323754194993389504168568095325347767883737701233832112943334807001267940985383939371035694019942430991197280990836727660523465226403104055542164953905681273872768794180996101333558486258778049910834686398410786887239949819365270124718712074729314793000404540407938257164924590218985228819292947736190854271040317281727493569706837637494371140600335356928760167450513740104409434803366079373371748922343433075321494465680928125508608479364583536070184801733013840305676007192660957094269294838622141920261127217413836718552482670377413008866915595810732454228692648593854849135202303060866207931077536439170404390499366091858585304807416613325560648243605161696395411948356694011385330716303047764152108597912341553133060402665825783060768958904567335246428223338505539670341701619285600971981629325255472199829718715178088756756587798956232036290724266437746711263762010326423797753574683965952177884565251445474127708123126748423849210433747643228142543418764425238687047115123809966813814120699796071719279521912649423173416591361104328017203979852440722321238818709642365765735183330216374426468529933577545462893922705872735512961840421165440014127330568088259043891765780223824804924711132298060777697017896138874189053223287847982217392978742145444144567995649206726927280650417290083574216688229302341392927635664014663060987987055640634607430144077496720656201568635094537154216340360314319197859233225777858918003975552677651051844969451277055321994896130604154574530343909494108609037331498721179158566537937719789513189667487834455380043256380052842656445926521200140218881967508858442940461317815513855516064700715942230396104966733162523292530920836547288915912409047895589782229551919871222296250718034431037484538681119483282769973591707704387194088115933669776892933892395899795059279295735680793389611701674579419389999560875770953168798154011013467244938569429096505285748918507725620531454592251272856797197798405640911366604556319344131924814123357554385993713844488218280846715066657289399998258872893336051593216795542400244979263442373381949547078443225335497299910014866699727375870273411980042158240091909497557235965308246288583670577659291527026138951478341902813335543458841571243789129278927010366441519436747129688297563685994412558392665316050459679575043022549637594208671059619567473410504764395389452952421813208708878590980101592826480960430929871904502837133141300991008733987048740636460097317125602265336921361460225830647532873904870194899903253991531682731851199175918443493180263430989709761840365083800691138263505107389311330747956786264284225208463950722990028839527858861232616615859287053224011969383016393717365705128408706825644126910662384733987404339914643234807092776871502754696988063352674000515523177228170119641556756668583846085486848826233396038366652967476347178363715255230943064381619825747294877781154634824833478451404338563440207371047540568581614186469122413054866723904041712615886637634579014877715372036533759115902642974706419835151883423388369331756888673496903598859892711990019583292146550625609272403505321055414270120115790113428408779212042273902485670986838924878259958909328939180489471559692084998141723135611134517416844267336036872394472177877492192563992642036754069907320143691227375496249926566305586976031484859449303766311331755915941744456191090139848114775647292754449286929282222007074116220140634300029992583258504938452571204769248195521964964597283592431051954911735995081180880716324139687735949954680436289500767914712671336301498739748710703621238719830754218904863228540311210911847193692683257477873527430220557820937893066146944140920404490565195681074796706451691196586731182138596990781023170117866748805851175033680936406009546232849232100354738085018587884992403661680204789174736371125342584089536346253320208463530566838120507259538509547607242086164517242982947228094156099874698327873292667238926938760341153121541377070054505622843790886033225324182221358351443559151805045284628169444087234939188522440654481926803141504170370272124905153084539051614879876382697620818902559023383807075497593299117766399090782543145454637058691845115748412210907690716348080105366534510247721713967956683043466326849751384684513345519450956245579135965642818640847286866804492593554023539890726941773498254143378370118061930608203984413709654812674422653172701439394687395454329781684660247536424787714868586365607658555047187360740099967720139338414107885427666869575518096696120641976968710984149487451161276722246381905591068051362316792607395029609392635970550251339042031341895693154692340351825349026306612388416389122630164108419130998371317094111339106533590551098873268418116990342644546534163810392660264135828959879338086589670017380400201600512009986276138658902030591795814369156796443448985911125058771062950955968921101025918436035547074733155599441676073128744035466744537767559997626113884414759930761636004605207567984138452969101563665336341416022579586585104027658823371075838088006492630306366906296838246843500940705664615025091906765320951071204188889336142450772624663871306339053137547714819666302907980874149637550226533896460578236180640762967555133258744134609718878141528213486886319814341963137080377743968812467044389817799901482545043221891942563495031813718637958412238100856318970140635136298771462781709080043638754224536494370944987738301537946081590791027194207394040099757794784277850205217972727241581327720423467079567621628627730754158563279934629465515411986533617913700088284945978272512369426600233296089102342136831379271090550819203122520820754672346235967918200654339698668754538879446951616495735129025846115249270960725928399327628931649443715900162892781691644881008227092410685325435185357455513920043222788728993084136573522236015055974552796377825056342775304638621725690910324593759021118708789054148651637052413036720483718762792350948922317273006414586309012655519827843230076172380715478058116337051638833796213199393829847221862743108153574690083854436578801310531456442296046586153092368561384772120870018577820853933216140771417180252190794689792700211263517431527624628271515664261473632736720138252832018728378263212220807675680727659361037197063914337311282956701682071688126479261468839189529917857729489455490684140924489618042753412388343816994883247035363718760397841487769754324491050548119787351147486386037402400362553005481667025666221554247171337848533453484603364776434601531188939916967308307828200700369674525851542520283910187650339462523259149557062574438942419066677568046149798344954923142231983203189026672430124257386405305127387241727709620429731405686474348429878686881416529129024846622304035687687801206210506489636413983094317985825555456543071434653785762888193786848234130826426656580343254077343371255488386573661158386174821900442274701816539263447221062760260121116396409908708491714775799354824293800237136442427629677941114007423231577002959593662675238007165195939837594161504831083253009261710275783861057482086074708441178421722508155273381883561183290902213685640872887346459403090533606345639107524384315866624209732108233734144435091275982295356382565117425898965124954457010584008233068323114632815695167040297914566758266533220279155030052043888221887579092889093108224517778014780096480881380736326404173831072075851914568885145997104861280078610646956236853294086991013149593877275892382889826073283385362888574446032079753670216881578961868968209411402823944341401848520309274845933440278946705305329333573575997746124691009030930283868885979050121500942115080593669138057531992775911415299363143366336173827901267181528138252006461809300101264473276241979241163964490552679036124839823036769028075572461274201513449690027327768332886742099546192162696691542949045755028502368466881771673408089507342872822967063850180790424526893570104901757960362938859781565422716733921113646544620190231819910628085124251082034576294057738083170389316163481604441236790339410617759908945015377721887942276745619741883707903162209548857282631868707421376197518760833376763459307697028030347831211726114116242340292299705675180096369840834353578106470043788429771350871066325278151752872904134077923413537002578656141476031164313933946856074193857218102693217857475156136477645777456941699240392055717703436947808489147405452332623228793394210827575537917187608674087645522741909244487751285444104770393153039318053651226403619475437253500721874716101877705205236204435175833753008850748469958954031516141313109445605600016800902334966251462090970959305815389215747293729763025048052158904107595182571199640960783981707687096750762918493486439530901943304433046773442399981690555220192038240745317095466804188363034944913632654824961667957725339704177036654570781864661894684001099406885388349339007563271704589838273224254926770829988679532753023587332116991890420947646833648827920434545246432867140765661262544840843134555449716266557322581651504554251549734213748058005943087260766276960645678078243248648248116644252428662192513339561327444718744751223157017854304154268060996316088004326485590836977809721382576462385055966193898797023942341831497005460685272483296118536353938462827959997849338040909929624032886611918958784027732809351147902996642330549136529883168947364005681385738098829238568212252180190191879814472908216845265513889699658907590977761819645964311269030434761047737275859367328644333521634593157379597376963660497165874782634568058560161313345326582082285446133941698263862693154338142821341800238864444616847583042017586499445010601143177437340389560019822274357226328389929453206878328239973410858244585031356717710597627594320596626955831467111898903374590835683809939122075885094262812613495757763493631228319043079137621828990719987798539154277590826599779579753625380111196459621572245464894644054734017827448978699804181483206031268238782580434824941690143890486762740886857893370997028254094092829517217262894712000578398862532175401055423422771438100777680016978899941519561142850195226152299791298512096504618662624167576457618557157108771846531053229652067958879666800001218177637531850024955214738044210147671875698065296075853845666129988211804953552434385923741321942758318386784299278302249904649022513493985301843412511665510880672454763006403581735474792356184495344072838984754642592454046909179888476396404099796012495306481073287708995798889241595184073610344528608137038525295365883662185110146846398135761990931010644717227160247787094625640078432999646046194551580595916305356183583515037441780948700601335928071867908623539034474217755426502948267904872756280833352854248595516795020142279110022118246276117879885894063254408862174095042675436221173907742455158384995153639245748858833229619231055346719669575033709079174129006822723669763303684744604297191177571368271297089078247372372475531223964946688855363436993192846165667834052850373276560809405845325635730698158027512401965627179184697682724108468723094012169782138462478146269644809853416843852195832928015635982967907538653016052963706890141572962362394816304882113328116905435282285818919833567137707933083086494348383014502268237644250686814064523789125799207158952356969920465454010305988893916001487606501535495361879721160640718596292671193981701151541609233226258716457355362996705343854268945601860446912102897622131159778311782437520576409804577924697593957075092861585109027447684198471668884794348478291019182292593701790135400434900723906911155427383358008420685478267832102628421526743470716628179443617306544485835363071446571137004109212688999485764165629568321805952439241232628537965759973749082625146369453942543407219678975543492633055254339182073598233554693924820832313965067942350173317193275976760733004365113614251281960007337503181929218070488161123105277335359432965139978514119181144147316677663697241786558445508345636353317691270557837765194085365328868413841855739694517926102285021043639384161767639865949781619764424950142226254881170068422775173677193300647597606423088004112060449044745461095233436356223165284661037605722685327573388406104708859470924407833241752566307960297002358058017481672457376073198552975199224404095847984431449164140529614021810753761640037224283170890268789628498696199340863525138756713615686432279300429820573131444811751450602386953196956475320472284945308743947374478803693698499670067807093343960210565097688965903939370379035363762606123980303344260702862709612465886121367668607857655463362702649818719934691802417872839072154717650433678700615697403482377482454289703666570940917866912110771619032012744255086930915439905823058906261683849014504868682741657076046238130472399419304107440881177334486778492195047128715872354754728338007380617288091274818388447103286097581334844151163399069334047371314028529667097596349978401422705930584505924780248941916962866396019919747483580640943054290837297135402182756668976784477714329030723778201779930185508261749943131514522043485329518208381843474618245773550570469934501267642096964607434084421763582209639159412174483432763963266889123561805689446251833839629414510291605320039816137621445515637638124923189294399086776466052365823140686764204897131594381352533811480728551601897974878429821571274499761251551635310038793630053945736088212240214929275785719439433614859900490721794504322781111731199433349164807760501917758712343095306937226533850169937477137905008790046370054631690659732855302564109541773694940581667275689817339420303922340821821933744526557069084578546177311252400745230332157623251965297292498675301864218369777615366450194594693310006086527860197814273782223500687853733533000703013997000553834455360696971107046609300100361477428347348871653587941018004541547425181267539934232284257652914290798695614140968099221667409133894527111177419439971648578078305309594851733485635726742284875527381556316983980383990665510797651149021121331853373746104559579187577332267047213733234720612950228800393657781427127486515366192457772863984697300942974944667103648399119953704491536696985666620620835326862085402559320060168179926878480309834993939942309401692256336983025596108431915968474510786147543251595946055083935175655884324702953599144380688777475230292793060972781605364359414081778722086513520381947174034566095597843671665434422680019044758927563880741337823288950661465384172078222172883316709145315509131226134520034444608724091447389935690121397215819880964579831696655496522887057608539174507357954797171879414780327963794173028631686999493596719823364842797598394322574695225928016518902421615326956213246251143894047613050497527426234366334637815118417734815283976056936060355334385576597608321929544848688343050608902760542177144181364991440796748197674369094493887620831766342828925208572767141280962092307869456912266074121933928186197255589959908723985758197571027975088851901631350967693933376660038751669290668966437035265502945610744111168320663339988833539641984887719062821544845185118037092570726905067338700329814054672229680899575892764401290433904061962213677901717039170487739526997488362153156337985154968267444262718357562162303097275128201938465503367755769236294882913346612458209709187439575898865071057471401303714251321419448291422920143265135577646831662209174043690296149757093315262541736553038702290145614243640870053148641928504747329450057635086466460635312038019160132438996131763326805006922364653443500372930008143744337058911752217285128285768551142675072769364500498339889393118156021429317248732748532010796437609841012245482632831015068324494590647347297855222548649223373242544296609045298973480840008401496212226373528724700139648070284418629217302965303957178934848761352332648021943682863716354442238879347288111180431379067371826237630280229367108095743474794210372867348748319905709876653491109031339335863769612174345107550401642901651360692614680858457639355372277424857543818501426713892308361834480174341859758809732360100896685310582583984449110689110933755173460612056646006741834756906832659283565526775837486177734644156682988890341731804348715479002908006591919271939554737966782318100859343884752866328824965084381781246152048597620881760631035680298743995396133901177290566349520088765909928954091163303956142029390270924595699032515459373398369506753917989485809498616077298685582983055518192315713223935510212731745256991382752702398695413863330699519542634983306498485173771205808683898943048013883758064273561813525583601972323882276231079863702651944971459698557543501985145251022640749660812195945603692928009705752361160536228683692222798600952478197125388954594779883917535086453672464425552143212742285281322272480048563820107933862136609239289002904007459700339767321722307082645771627382514419225134302876315309437674310105174726534186785248273258048129171028572287402599389700004186589722629442533289209257372719969981838357307944754555810413872790781229620160209957380347489215700674620980763077789982825889298509658303912967727967539120152468981729832668535155278102568442893960111933679917791475332975399050716750684612681529463717866949964602761884508981131061150645460286404436727690535269248052504542938917427555389503525203151350434378000730563469016002951988363400711386472482988300346484968428643367408863940413986005777346326275906793575158029879349156097104249545222788479038977063679513682364941671810593673198718250251883562580013915767116269013915792089577845687094675825293267797176621043110818644834141852823543137014819958529603908066397104225535881546350146510288628399444128474361388994672976378431389280205208869887776653545879316449278278556047346861992077915177837849420399172473432206686990695353923363234218933328323270724468418528987800871243449883923287011779108508915209807962034678061428087870916511883112534035493823556082441113557924070387042422010435941802867431854135225211959313755560385424408253147975142470900724044505234881085305210401901790298141299790143003433663607897087762353490863224218233681643093635616333553242272096446990191390303720596830251665197016255663372014913787701663115998510748791087040801137224523566631025091833671650041930892877252408012371520801450266503837985964775445993487151029810438049389779000138730796552261666854609192001326661232724343216135516079424650015726873828305021782872922868229566388196192070392230156730922524066852472393290002879916573908541151215689433542831680248642195271599183999094357815413121749832906194898094566825275670750835479133404065843153516677657433123268935270979095659669761774363049165237454859450501457051215171661890908355165217160290512970839994386356204312656055944685052198712107608299167852984969056487035378636610880950407695402189207186095308538836741912964251988826110770798114475191601065922098816929225075368964626487221947595108513209618973883373381414084917628679520214296198769131981191331092572252309774561831878726676313536000576126291188727574797722663208410937774365632490399601148422480855235497885023351656410885614608904618376888012693883621281982878317329111502011548620380077745135002177224121883835471810287830777828698737632501632077381642654055978563657409937725568987014605309800295711529275267514499981203682354919857367234294888665801676912413511492237197693052394722875453203750859302714172766680541988377011472809669134026959594819818657030719261304150954823933364082259340568079998305478539180705497643378398707303359136099605357482707073660115100473147930622926909257092413118898333958676921968695867849857451071216071839748894877500361349834399094655140348705972631008766133424432920432696990038779924796297325198610306800586619189664645137215940092728684760200895385976066247620907371796258475583087372395760383846598931973236101145150628702974695409003522015643650337772183603872059816327931300717578488153226840572545993966607786116561823058614937462539688769082995712073458422084562032195701171770420954399691935299998219266113661151998025976368497963119376962993209456975871629258601103545933514265102145384483959410736956802473199690806962828694450825733224255126748745974057092195232736633178322331931529170134734294511863811573788582012135748246438704828746256864776388824842520511716278009532825770266764545088618648539847650911611257492060487155058144187686120469881688517948977410761409445833167596547597296247808149687045850359063139084246228747655552662383713141384258002053035404026748511137125327011385612155881791464521033071240952293660077655487916452708766422183847984225713829521480731878660768228316352449956787019712575226372892265804479548071269523994299363803828245601436638474379660982751288265978163967540956575136085503046075642933152004292052151464639221400408663945088375843925026946942956959923040036434800937493965099390957202315956459902864551356986017393343374811465719542810501349542964266215492915148695970588477813676767840860128584978526069536281020729079458167497597368348208643199865601068321843042030037549079835018065188055772075024510983460969323600454198245543446438225471828942989592599890456196003368670167746040736056873347749748973287906791776370858462916601714061363477388161003081920093632171754657609860208798654611887552158756733754736662105215280267312832037549124403990187249364179279090605989210188640104518860286815183662089428797158316411854493577685452161604852935868167404051764776443559713425061776083380293838493357747457862093670984371783086118626982269547235784447144990662384626740954935337010156696113690159415528392980358614514565162938126077810524389124004818877270894984586770383910161388403153653527721146372851581425008310401114231280790553793645593310197860195867141666943192538513184628362906864180950151256200702612164071593680441208200441401618700801021405036132968918894860477027107411350447119249530284645977766751911993135040071069665342654830864326516034624989357660968830640621097700737311831050338043249587063776009869520626883441669068975810056806890123650957159944689508457238846531598542911895486132405815401379234713275395520221073352371239952419632928101866833677216453269873238155847168672081728854681051695792838516845275949774961287834744845892895229996396905603551765037006009031465454714099478936098146315140169516467448424803247822869362775183943159055135013483235566645874534434808608638714037803190955355046061488351218352620281553757776253128543584668025467686755472410670159427059718704708105993546932678412016867168212945633098551771919779925987617900448392775109207847657339978126219984483975568357289366349722733144169983480377886802518842794260312959863493535256274339414524482462860633892602921371647266849816511109350809333895452688926801951319783609533700897128296161647561099890871591194025768626932908989141511484575308713782076752214160430053302511674530569806326943924986318242887817713571039256666909629252748602213108651672062601669965194894831492343065016543709357104779162322591647258392419807836020856928757266784452595014501634383633575886593120814364427465630223958099840097885973198855855032641733006232181405587076119280484186182733108931086507859985411799534719884878574649970534921553523632236421699572296871149198650329657179111406611862461704169360780331747480140937286135946859114075689339009735528994728689887272634668551159485240389529839306212325116748884530303125218850808663045425458199092820892167139926358272387641486483787449109981237273756460260946455338800012968220143454780207088923822423512857917775704768750871563274996850211026039354354188504147954606603743043091966232338098832443237255971260488156842314949581424544509413193820962297048423576954044953535512121801630358604223693793624696587587526689070100357605680707315212574491848887384030910490735489707330799811474131320742470838424555987836002327099003563729725956159439379161416041414411602409196164947603092637176645077233132775219844968049218327409660282645600399056260065220245539442867322121874274153848171063777481424250819683620926038044154485448478445820302069683578574507044437516301566700802144020869552393563539582203230803374680184684801831836902233697503821150323039809104417616272033585165910423118805974751919711169439668923525926418368306264759497226609947158897458411932261970044749458293487685236488660107689881299873328021397205647312898390813821004988598104922805252052839141086693982241405406615844810859933428032752024654368072107730086881609563314719646731196142696624206780764812710034691318018621843201441720563141444173725599513640628516651752037904165262800156160393184669692518993511698738475144645341631378264847738800834505845790961017326895281982234853098062993221138230553752542663840321475453126855509751477415075064429862778821484957060208121737729231617375847561095460290728974758287415634696066004128770843015026854405440157878208300408183803086929248994030590926678839058029614640856179201680946493247214627990730840795443539813059709965365896046094811238439450481381322857149234800280605798823138110753349690492034325280401395425287724042872766922751843472224670107912419896111637882810954057574758019981214986160168404936389488124517143539052031791780584079973481817055826693048277849413794447167167648681254468185221178601673949586950162751582467398873635799689171607485269767369130000607624555444587864751400449976980731398859939346733434507206086131253021780243191523429480606129350384196061574814833945940301921158053168725489405610416887531432427005791231435778793088032516907092305803137187227316229123172066649045046651075911534619254139283069450979056002593393952598088344338070156816625531547138881037725536300180867339908110955013210509411111273120343827168511778643144202735410179187603733454629453898218923713367197809406171096755164337112002385211771033610476022829001091942553130747148707581283021313579411784216025114083013698811614043134197041899391015985654333548192933917380273983962150305005462871993895970359902428354956314191632049862893852175645114231380049018138528762911045273688306554159263538638118234213600769499382905657492773615799804239472102648764835909519573114457147294421313086994852987838507233433346524188681312847714920055954747965702616459113832109461037260628556299454220769728964945319144230599220553747055304689033338574378379118155196160594315095361157161601162754236674551940705240935497186735614420773835212983985254608833520054691304619796017000014256246575708795517941233413978897938890908573333922377357689676280837808812435413543726740740693656902305187666902923715510534458782385412005385069179090895752883873147603748483202677742765980011699455150587753697742309897455807267424026985026570797975586530393869111140088980963811341727902200656615670959830848791117704326675211164037394725260537502840730151875176118879742373451322219393597948963061139012499756985265898061945674111287663244537511408248912433098679259245661847253634738011277407940500580363470510256320179417579227119015283412432161151127234730184087220951025489575800188547253657837027899135650948198958272543739563350089041037014683827746126771357255229311422474346464663508629966755000056828232778004747456960655398372022818494072541757834724397832836147577312245102039855591865846559479843146664176974955541266439395277747507556837410330396384350533526601144333279111383046681398169825593943342317744724688408845629076311256078820352784849414170364945466597762417192959932044546280843733363016687930489504284758595708875936181916057441445784844455714315789385419083739905170745812706131058769261359662948900463537054136457196770322714590721204765079398913517236288698604511851421987325801652535516286897563609735923887229195394141295905083801399852416915191259829686217587751421462273410187740454089614811944055149561524321639837442389002666974011541441030016664202896488341810985087992248056395841199757742793603870017743156800274216412632193480521737374636250763068312640528915454619682577995736976854832129385332322490637155029915336494055441510613305973253597611918669600737711192096379146298704140391403390096854105446147910512132827546308901667793331943523621513462487848301810234196921793149176201072814867335146418343606654581073887904776239901604757298461213254263817581461040489180143637723529440194572671640247875114053626905768491554330612157521772576345120481451349851586964611955488516960792092219923492137003595800221289819864592340783682670158637997945632692535365572605225456024332783975003644228733437009977712549529986663582445119067220813898765179290628013023198278512576251142794351313392269156425993996492735344786849416839568997259969557186895624083270247312532328508671611818222952229352888762746240537156568336693957209961233230252376696530873170035193196561852523920694995812396573229029251534055363909115445896260832155855830929714568461773714370929559021051434670617010597373201457647488058832049738978720031228798177934518565663523746000679607294512079777971230162819672987641479176419988063426678477460479187032781361895007367717474023084799234352373945940406462938862300255053857197599359837814035366980940365451353823791930079432650509589977674070069676961513522418447282873499912320240162387035288284511390031799225537790200471277356323056181576820050760091502074607014709797870351696118195010188705142982196253861560149950539998831431382739544819259987846251571458781618860999389671515058174772156859491218469340357311673762480938485726674482599123159394925314483512016214119945709528972436490917596088191754037864120179473456068574765310146093629057864743481475026850104955586293438188363282175388077364011810441348331362806178313780011370411783423934024612800396322765305154634367363489796403007820302419220556119771379887594653840640497816948780894165255958566668865159125506206766886198479083473214012276885975088521823544391746416613950292937214573881155293599012259361611908774591301279796633027882332368370174175788358595081629548293441978862140576047566829185780129552754879659176895589103722936051695832756980369282798163890575094285505952967478577511594879457242631151506099695387789932019223118975272624008740768193692952238380347083928545168480161132739070157279118138948543899554682429838466544068412968200957033553102586812963490278841858198581859869654136522856366291837075363420670785642929058523566069056491457154021077107779761356380048948131640447688266757974404769936156656209849123310249665635735087894865881383354402597299197420621618702444114172297582049208658989991982262004745074342000310428780733560012279374087325008666536221314212605394555951679884225700895758293732990395219159833991504826596902676306413847840165629425633901050169582715862454080759618755665887549262327639824564026380366830977431611182491584891268050768823406815164358660950120594469448549444482328094533585671561926384486179871938727560487077051270985782438497824434077863846819087529580914916305784404474945839095242235069471955448890491091056588959830438127904972933698414446606688796300867468991089478423709996691851717590190956102868971540347710676326085846281527894654173636590800610832782359609665878988358314171567311700909923339740845785648601420080298656014901439062657170351770524136052219538274199974489091031599446962381987264231521403409560997152808974296942554376939111115147508820244467576816688887811609114527305858565910143939577233390284945672413561052868167615991670733856109803146018311489598676722525973979284419273308687327386469057802930660125348360643213208540960857704605824549139687416756324159019003809430020853406873014793863687573371559594245351046183689703396315128533271783264752304771503646746782150436072436151879960080051056407686120971358874609722132058003725737667996738543625429189455594438070772744433790139671147643558047546656729774235314913159454700082355808718027883005585102716839404877939786529361442642401257237586781185996241800210237721792608823976505036576680633232385925619052316030318656126035674214484972762774918772482610285021166395924168529790998008506117655130549987072131719497079485840401550463122644696721220545267957777496017193756470580024194804092726349592480649409490894172772593505886764394917282378566848552743289930846039606248900522509013911780806059559919837435459340334247282359533493705273289481755400253816418962746767942134181287945287670482193928365256038839409828927185604447356060752103119197827198422314345462797919242149343619284588040908125656716316869442543541275752648771617902209427432503866244053779897904231348651556018458837347901514976454806005011237699021085053660270706681283018049925383584051871309465961770129857084719640418481710716893514796886823407512984969123083676273535387177645820690795686659037753099991597717242337980033834454176536344241904650272915509829122915570464454104861699617875557617077162816566035805083678249691638962289748129504977052994979179865896435361394253676128430267975504394492370201982240046071098191247826489810909581459827653667453496852849680182858088612481662521700528124231554401044046931482577626285240166697796066267491640292198981465277712718597423226430317838224896021227470896461717219969880640194532230574415531251420412373605966329201827250050592998572306056090327218588211554481222936603212381662389036336340244126818301932703814516574178931824853375372627082477896563651323294755368627468535262293344834387320676361717762274688755117626285248287566831447449190741893182587714213263063950905738127410913461490106091466633068794224340868629765658640657049255791581573615974969860475319283086333409535130604539522485614307995125524367429592266766075849950279717124736783742482067828281264830792828684351866340104574357105745778253612515424029374109414428395068786878509724096296209574780754266563164555194764327941749765917597642327430777470294577476526545443842957322471982720744360443180664637319708375547103764290089058551404732545821803443444626051629358272400362627405755606013465123211676118247313951688585902749340936781901226400288809269340080611375234782847211991501733703558510609202140545123456460728323548008479423089155413694454305971284840716463773687060358028872165174309869560410430501831177737174465434750372276569144715390040955268444436940045710414568415137910832858625160056958411590966188408768951732521995322411052716992527339497614538684938661461690937572058930255351122478133363705490414787283878140838695464189848922288616896893766480481726101547439406979976223248645800782496648160684112180821585777069218748646733366475545548584759017162811314063918465303884479196504785638673564122469211370240665749173927308803507521408222206302899823400725917885140734902175926398777349759044326267244171381490722286973593756578500136825925182037781565455531223845542934555734004756025812467425371324941394989351882707953229881987866214664575202013515443067867380373215797871179442338374971043316958985926547708547404699420821117784865357506396712501876924293529443555089251586157523424471829020601596670060454399015946890419495736233078377341571133250538790205389885122091717041864966462047780606861589875769269393750096391176164815469946816723947877644451982927526813035350840553681539178989117787096486383794010002378674026866579340943280527675803678016373736051367040070331520557114244712257376386603002479439768731347583547167610429178594449836154366651750397115599415196087073352644990510971030237240349854655094509973217668185472345072327491329254794638950041877130113270736629926132185724430461909992852610358787428769510712784088815142326292023892712267145305436599064665237358061643629294653343203802624295540070304338616682711534322798315975629294487808905120956515775734337378970167810695484561231862002954427714123088043406068892203077197045737256816700603880185958160978197187195259005116860981274999512590852439841064430830751896352232796222794737627252846187293048352452111418201608602825699221533430047727361960371499170190063478344372825564447332284148968506709166662428273179995431050207971348154246911813730452716065918487947972613568765746780126511938189966317846681647455136374746421168702322586700777606902614340670808125095438519193298492036713955990902171854177097855539336886754129660966061956495401267981710186569388129437773860115821449104956626644743212124291172348048685983030729039687243689263662197346718540603533684629416142974139973812922235075631030043288765281836904055285635101986145978001489953461140878051331898399202077195760128230325705672193792912408542003905846080897709909572847871079322654986812267119848416389684798012397508789582999158525337416808254982098365738433408296343253470934384093111993801819136218131810073983102193211151475955833008676998539401804809029696442274391071807297109153557478297279290528149711297636649490270527018349182618227306689661485698807811066498499090555602208471551836662505750797002558662550881644606912225990349225869640472951794152636874422489166139078108751352733894479554842660190193849495639516762274825080627757673703778053328028616087747818740909899526865844132606488142176076715641988430476548680017537724183946504174858388453873570998965347845482829058521352578722878997704490796561080231502461879164294158738860178874564990057565166081907191999322357080719171863439957910831140072080899229781590864848778374861085091236502129404258604261081521606966182340859721893683895451431844646962143795376189276725499534774460654546086756371197636323742368064083534701604551703819266939384359426342992790458512725877830680313783883662614327332485890229351921895828097376528805634022736818428583720585744634577992961164896676342840735589359775144357060265458353182281066111302844886088360024694161448790588817612191834151682346000418282936514010359661679929186285982942238974680167857522226560380095503194649104808913609142293310511491443986962702357601102302545964236061747491844540925939084273856952005127462376479885075329327240184477396984800350675995647862958097993807075319244018324106913130095589264630094867136319311549451443237679896975542167484900355855739290584333391508892263252122126117502379099446393820767726473386335712823527825337157168395371271053076511571102010224011231890898771756412266119891596134418740366394528914347006285056033519033559568791470634908855935387274735830281137828354060860780257363587296930106189837133443621338367552371876270847071074967824236967994987673656935101026923537372628298641845282067689367135656089732384352330382447095418716227341466579250404890378275762926075022790374005430746942279436752421557907078094762388603200228782433931786113936264170023161533105353697167718072782101382989807933490798411909527801640372171515498059170111312966906169362622656576519954995370174011965780324692309084985385599637980310193694543359057988993407206281795670654710202532731783700669440500100955469434693178537199032303456905118174151046216997536643720650183947586868313053416944493429708019741241570952074121829026911600762338169487074307643512237827732127471840877646856503424460472621269508488222463214344025819400880571780401879525611316630760365167329865990281605254613962145597321066141190197357802067720912453017896755997191512530493021713761048084718804328538232703570992410305893473463215175391224029093430970903318163214002118025998722306142412987653986644814465580160595978323927841952150732419516686693197337194575671232737587544020353882563229125722222073815372070582493102339656829814108169636802573134721423921762328107330139601632530221533632413975552960510948489954258532186419709996093043637560807350074502862623520262630528386480227453872633121394520697287892922181716431966719750309015432713779872575000556172864488520686809681873364979809914968964195780749789597500849469303783885579866662433815599460240742246533166136882735845697396329122869147865540058079326553495871888681144267013863104476792379277224146097039981631829068373881324796639279925954911818530660386712298947046303407094328653983519279103226687305188595407766915108743949965510340072267699118379875518635893126902338451666206692380912083400889375611487690101025892547980104183085749683133234766216498771187247160123328032846415107313682645594300479802456889379036099328108018871140889481009029098831255227857256268954464817352506848082107112036629807014207292157992981533368949531879361538888506380863496752700612684048157605450760175622681086697654756710490721980741437108661162277685381404610757569911762113527293738404909390057050212410433630254341781828203274979672271844224865796192849998032814141842496051181886308852291358707142315093753157523100228757800813144855274015340741789132300223151788643566160482965209963476319942472792840252969680083246569495667824492711195506695395161340132931023610544765773642840759818495151834764362392818010136078766509636909592304202400691630567111197604409794199663989256779527308871267268975826122013568029609911739208295360371743774348117150177940773882488297005527946208357852750670845737055579074541703077587505048666591295523852321897116204162443598912369273755297630636560741363286409610758462131748016750245911699368463084203089565480346922090919040593632490539138424238511731089956209254758316613149552143185021859581225016157998100418158337532477865509144312612015723451834789209678674909354885259583000738119234249855243133897411343822592921989830616787736323697436978346758236472486998794846603593684402831036035820351909423212731410990566232455481371411364190262826322573486449824590490216606748338961029188886848598152538146737258322054778181405872301733722433792490598058387869029045951149333751042574064549967911179972721687767069097101092496755803072871519854080363136269570430410889174517054151080532995337621466851477457735615135559507797402933637243717604106478322737494171684190791623180141120971567641288764085998498908362771587605505450091095073300193615459896053114765678324467245731268272138884454291685293839910038461552941137273898051364701523721752822150717702013061587227929307310488852586393844527655070166971337209878949714316221935150575855221006462420397302798932561772913525812366784233888005025852595466747512233773900540433571231807865776618699902880310730904905491824758061509545938535456784341453110294611217207052792388430619352541320201984802954879056254453936378933544264879375787174399311879855776506699896233429342745500168339054337996965184587672539182643232292702820144952914690213335901614794006483858925389275664122682366443853837980489258304793356466820607568410223832980151666512688835442919755692398651211271520288091389590037805352111279681888563569276288787563393100514467623559213709048965089296160764293375634950591561915708269196301520120264749078697725211889175087048271446154694103403929159782096976613617328196947388380387695172826600376825949015540810568608215814250745223277194272857733912552758307802823870415394417872968006347887973495926829451993267671244549322839400858732084580153435955561824544709505799186384348895873822735278484264556398017670216248399241100189493055453789571197834596459794031602464375275737680790564518967193593433561481438943556248126175809736346123271835902335401971783200742408348257303162314069988385498596177429316285270974402580238815622973408531620777254898667942380902127273133374893401305813757213768489322319667502217691177343500379954815072160346123665396166968709545089622592025892887387791402804267913058933017458424318177037503246605754541215670677600866592109797080167702832867787344318488991984349645553972592518302377255813835199168263455261956017247030755148431274980906364223989788945790481887596976296634415305778121534638438291276090251988086022711295699895783025886204360686132410847309760358701493201889874984845446486208112101692330092673191907359752801016616119608861511186683834138533715298195550194080609907184312989154004314789693699953107272405078300624727371073873346186949660363725790972989925696601362715085573906384371475952698820743294831268039061925875537393157421466058692711512285774048345861630516148966492609682534542489967245497635779379703428067350417955957182930752427186532284421509845909608819618142242922037456627620715329404296585290498347338862496995646776296652394664807953596656526293718656836843410136151937241995742294505029779223490583065400584070480043098935035695682888263741603071658672522564327938172457805340459022331779394255322704926929070317585992666609797042569849998779228917697540002797190570554588651155168249376215634380184721959711665590342782645713193192755352993340490449711456271115555076055656596132008661854753778299994887641736948386322430367724341289133683446787268408281350030257884807386779385283913359211033082178833407650631163747677450585774338290797307438257962753434727604412268601056232342583667180763654078509595349102431912156757038781609642263430448569117816333454526333472206024064762880027895073082898666502693199758329261521802238035952720853293972492570954522353579289875564605267526225790125675821238481362498551420711626255146419366035401577027615904722313965616132419754535804522967795391287401575698781461331179297469850120101010751407997376778208068438126004119121614617436095765488544081962599679088447081311051328561793128708465434252410117436394172645826532533668814861258584786050728042500441340567527670906339872921207288445142876888589110524689946211747141623821446886751020661202743580125113387872457736757960613236930430936509350566923949904382892954540093359491277821444030789960218643723921290089980553483239106421034488805521338753843394684095343339202406331799789980126850016607970769228504664465859583878124278530584539420068751767359189134122142898450018464680455144910129536185501215544578287026543041860459399488776759941687870665446132791412996261536113403265576552560813633024483001420600813754839538110908277160359192738274956310320639581168506208303325630669439286982563105261485869421230793281354132911410615763091017582421194343399729221904759829068685239308995124472279725098171373862415003046860612388807953091610541474119984539487449127419168830197380214216589040138689969229962682750410198522608677150626461410407431443455674271055981383652108813663941882830113950344050183939543187013774997976693706322894909362605965832915495551991406020981226674740961655004745587753907580969531225433332318629577253549501329565872548628698987604311187011582804310761420835837236364640126691293811289952479483054563259716224751037045061043335262725535321636484063349227344363443645688440125298952180574210383069059244138970219547394285162410664660860798997412335655392077501257506731338559155624810771268189666809689186828425958090549147395123378828793182117773985304156819278421347154613125416044234450368559798960732194824653540120288064509801313021073361128802893812203724983541518844235984820219226781866061906150824713736004955749398772090092691694903564070182615039025956490679750384453088917608147331927344309888142932061342352806356965180049067727286250882861886064530192297194231154955630409845893149115015881104693157639264776217964118728837235396451017275930631789344790195216923687450272500804795092015001358756676189213361440421563029113993995572013663927724642574407853700367949133829074940485079402968339639798490768487550174144778174463305916415757412710728461816860032152549341878506126250507008566894185457786639462711368942629772619197091420889519072210081006484356170150917428741236334900176060523279257836526962733628832368709154165472586379453495740927324680764898116978902594546825206506813173619410255601630898190521348118766246002106248613392319958991734888924180674475610960970313481933875572931117292441408367854172994935156878573863633709779768827706998643841801503169818159261785795716350368832041332330253839165656482997460545254205313703014894071660318719089409572854514246146659238026981061476716314542923237487319269309465730306334340196262115536046308788561121670669120815767969437177186853452550061357738065273903219289009874549066128675676214213500359625583465998551017735684158273598454187354794115660879418566389142259921334977635899678181448550503915181780592813753387214572532611326570721875076491364837474697496430239532380795730443287153649460036207769913699355725262721459281717706164458744510931062926082336853188638441163113340554628089633240913289598788557331899828889021271097184516600904925323458372574036033950339966588029398276007864374512577922356492142477671382270424316949387258417845634273173822267645879857410418176413022555549278480737445242095581115763550725452830565051793572073512483332251568815274115584944139208863715752315649324107492757998524511801133312600830656052397426374263249943423796578257798356544757603180637961072192950088743968344154741167980373633247006802344265948063029556521105522903368614901962955528993320142354473832582404561637068539079293654961561228796298907678371134585302190440126744215329112754968044401402694199576957819958674463086124886699214195580228644815768471249484580745350299701001518306656101090423471155015445218934155697414632785670306830144263480140689280693495082199797474768039653096810221021620739299350287787020383792788232162034568526657802586668038335444244331672704653603084273009398152572335892686416359209453393890512859468022963435185740611869100559040280973465250174564914400429541549245113154847618836463125320958560222842464863740845432675306039768147484660209163111223313379982721273641697161562527072794412895556686094306613938625817340971014239135532827846645711038422963683503490791140692594276887560755605315553325168243287448886260094226032429665299830563023275599527652987784051564440115160513516062292575678885741076436593546294114314500657492071802761701028029425824777128472876298491890827866968335013132026265741857701323087919528435378454620585425895473433758063417402866158623812927097591275430442932671337365933122387559144315415021001921914644711020820828281822399220403477931290848473777439872337820709789219158292006053497076872343042145225607024638709404938938457203359680416057440733409924346960744617102864755242653575469800275323685083720047791120185926809211618508739477868069072657256916265580455991517251088620820098191104315780523585699489295193930486831183491310797783591502536945659118849755485469004186593123164957789198842455529781864887459754179514394547318665140531691117580028186520452000457323550781487168394667500173855353759061175042530403036449005159527019068949394850595872893812958561592243404103945735097624990740810481363049930255907305007318467054492844648495835686605475624000327269369716589548142649135276893637798598476900751034674259710073862726033666780533294170986073192529833567424139076073663541356695935607739223841023001872062633885866000951670360858192874011105640914435393526829448853065470860887365394816291951856697734156995534177377330879568823326255474518650435620405247679216207097876354058700128827629271183634695275930454791071324954936910134073793947132088912139256360047108153149729512258309926009451773851299974116029710198394068688674386624513207126183724874666556914231739244295165116458667616081761743922805758198931656687478728718831760716458816239382275112042381590611808703810641920485996583981691879015670927994392804230311228442495442798620779044468692520707141785629213321334856099432560226090569286409233615849851130600470984459549151179844442530842281085685535728447594134188225146703512628875998431091320636117964813363683411369020851166871459966782082942871572749607544259062097327146604086046334013097373870293891350748611560703851362808254642986555763323497149504027822357344219435887200257612900645841448451382797027815415678144776038784989630642646080736544767305290555447416205617906237716200373215697861561381209232957026772531552498177219066694270182844250554879953221526925892976627347730358554354191814666930315018849919553497643898020031593253465883369592731018292740621998935835575781533250269782017613879789628964196920146487927678958939784007687735981736924160326385136625372782518092294548712656062233960328728766796438013488276318121473953722265145842225285570995697200621698947365084476158340331584172839805464148048760877282712618702204359813601416191165976448047392979868730429031746681680326560932414811427845421708688339721721401373971111460655797343403236160189706002048747913870071681878879101315343214739821889944482383697355734998523255351218800887639613012661939953830435339202093853937243452955735115412333815536513846705738572881322742798476996232350196084444475846074676598371187710102223739801100575419272233158782288163517437085026685085433376840787261292236982643808235285356299829316542478840331688597465515939526969463309331913916093820305536079994781358164737677401801477639355222982044946972418411590690932397759981978496305069167339169925078172187740560444162796876223563918181824159258621138102314221271761196783086720311924534380645220915275059336771711303793393554763778654592590770508401550382014422244548511301160858428515903891123351196539660752932205174528184703011445004317009657624727218203780247477260775824734333599216659861272086262294055611074885996998185844044355506286770356596121500270709847943757430985629536918261749849517715032311254596932214015690523296809582870411774124099969843590595273480957032798851691522463406994074844716906197980553274742220933810858980058327911884683091460522549919923985208036706198331920151819350196376135131026939219989992884162345296758469880606158180784638381160873897168330925605127798660333765415044203688065317729182323787902110628776307220085785745603856749469615267304925889965624381048468790561532780779835334449795271287763405805844371213004867113762340837002973958411291063405453722258192880702118804578519474161429779181299463741450900495276141184438236950076130872908758629590623914223999424019354465877469779462219049047213848462393564512263044885690592241569506921757559168435639615255091030787466047389189300782312790027697446323593124904784854359005537082244568531225419155239204834653741805128632769630867053524025252986931455109055369169136217447294193163270784280556948384706433438936478654800455103357249804227837796862180712428684840227023772326161959651141215990590351203567701576561061046119547846451627444460049871623109872390006973076934559637183388736459992743294401875924138348239180760952844316981999805404112567596468682366443066148826217616698661565840071645535996273050566883509877945378309893111337719169502613864698308846112149200340867386156690200348144748588313639877163439371373514783850027401205162341264582784819764066447764976203992032676608613971288546219863559200819003707309181941652258032573093630395486737315604962836870886561918745599271119000830355395003654655949363672152670466041338584207597564136204712237769418635433247663589594939611573074652355927227720079894210561490203061848531704240136611070363253570374183349908718170031628268764293747307541031377794793286589255569062131764223337783684595061549953768647334418724463215924419531883580528685055314637617765332488832258004978449306503991505955092530350678169586509166460805485938914454487990509663474481533062275865808020088810540266561625462565015260494099881348910332631866953677283678562081557028101162998538175021875386780596172943432611608528491689873983304462218614646159355275947907607239246709968668092756722036876992051285702365823192140192636939469470355545243476365699389709777957147632864695041076134145854498069850989448103916103351479924436266089160948614780674080751245197344801069505665700492115916867921206181450022431948368873507188057273383735921429713221418447327319924886987252072446498842335391282450242292173435273837240940471546985638949211998858047459390773596182091281343830730975111444075628364481602374028533170017616222920927456835503809389472209278322082387812121466400892712940971195241837351272115978256319519391790803702750733772589925946023345947178596699768606286259934019994384630531583226756480708935432265648856259929915127948981115185810113629654668057685705624318897241816418981761410838792594310468856092133255605320502386959581904853819541769586548290385094587617644884740649784499774184414441507590760992690498612764500775729262398118055293240188771128873140893718020783673257105186394639236855934303675015290951009925330492599518452213873423768042582263228028196398389182302780640075569766373181971149315291666794262149239456605856501467383948100179507730475093295102022030013486809291585012568344530796635831967721634728258560576834481294903107259769088824465539747776348502821517314394889586312844609369369329686842162825623092512848580337090388022467477379416672358069635186650156005376454611055502276154566671306324287177971508180791717075505822086518129866781531880864259594323100378795484306182225567414328330276382404965962003383430309953341655630885622177527656993268176173199599307427820770454262371275053759995974930254894714137151566986939405625497484887647592335514295824542390984749961737688232035357122769191887397470809539101153361544452918308156374155707986724710966567749547099084355896298508601179707426438784613595485246554637991995544093201603221360059749443567050200406022335360053744939973153198760715497988926099414661429276000010942360211311998145860929751938921699026042470639422700093468064153111025539809166544875626091734475865429982698868051764955451643837735881787734704113479348330164184846983192377520586114861033327095114356820312763834392159217365064531471558805893061099259379483955418212812863712736162770257534046475388978654160582290766282875251712308709143153846506860509994117865201119797965461092158370034686592864083697285811697761298844904700460008463273638186742928677158577587399033473517499319497470641251507571405456917259816092776200710459103734007504033315530466353952425477517628166035746529220305433750861327769916821736530328191371237973322506940218976639459905000874367563754936696506736466854981489661028655163640284329064771088657945473456300565569286342575667442181754971556303177863526331045666478661060706979001657710500753484476354767541413492859349205694708861190282658040760778106490869613741090000599520510203746984549794419815413018906245455786367293627872507332753281348721680710997879353433981584912568256491163764752862385137311506596142408533404554580817512954253868016947159165946184308820389575252722142915351088436078970585157328719450228239813109217235972926356411847425031403144374426904878078919474163814470844953421500743582802807984326216538957836444802962014432591291032556395106122183487880848490295018845434228623723604408406211816251180209755164783413704551843204017366651393221542972407658556153662741258570517164949844571975708643249352362394523589644192206035865478801926213017188099327183871625862034806190477291710962732027151383827889803963322076664316015654397402898567704061880157362196458180578683768721199398201546941417056201869587750970803739469370691630027450246469459455128369326874649991166733143528341947129965999609936926004994006767938963346260890936809236724417672815486213365701536493308209996897080358756525718635696571468842892166660960939394856204790551432712686061201831969471128327540252703275254040744845012883549254762899023682445677519755410117792151962676628547273339092096845618261723567633990227379062641081177579800273006331649657095189090869013125328501886827024239322818263621901309217989798462112154515209675888026283863209183599727575123233258243595900641176639893679758173990224560360396290385305457634269501526206573175635762471820423124465122468501071445306460406302399388487000060582504265605079185419014331351784858880226335929268545536386309228929860643580946024487761083451023038411195511404384153341263982673387276389746914379899382907595070455898385819422269517261435631647261056991790607569153646926127440799799997884408083195621573590453463938335097981720756473649820570744376595978927294750593603251660172137471954676594277966832448791727229079751064409861710406012301599074504362392322542605519654455828628091083069831368684087083716923727034848667918039045860940261275187304981516764946546285091511403741026154186141872882600542551578984356014575498514090622973120975656322300641020229006911916008421373972081568103334909835183687034337202042294594537527098776142516213222443853452722233801286353247918562708404031668014276559447056565907546188832196812652380939555721352114348066312180389004779624697140976355449365443919817055819476905758222835264179400266572936380672254845687088943672673175581380740317223402740534002715466080841602991421134690154310431033789654102081482543981353905534492100614099445049179345275160950471754242784542102400092640043676158268451911277678179659551821108253931046517546831469854667402702847845986761088232747522723390830998584996421741648421063503169281087052614048144313764972791934445634521244951753597743159785068853565155187379179252506633967228062828702389497016597680255378511599603524658448429907560924025834794643547570863774591941467539178595060974899052280760630966427203688620324710442688100088036184893236704102971976861748345611630408120029203609696109004795449517627079363693458336912670026518634325936829260417710769714723759298712407368246794829153808066834814380304892947135492507768633067744771069191167498673484153789844291038973777952622203311843696774039273059441009529225242157097752203473643535953884610197059775991804420257818472458680155305848571638872277311540695078177591283218637616178086728849916833610221311573880669745590265283258976491029896040837047734832962505195855186981146940992613985481274694542262277584043666909491139171461282106754718933890078630604326407910148738252000994123441558775743629084344021734401974431751370622252074404719509900931053186582619687857025730075700592719396105661649988155907637875354477781758573671647958380434670129981404816462303016098118890027229710973585190962461226890526655925192512947482402368535433643833342421662376406079609253521554449040690243498101523417106577517258326473254013661765498672829629398375702328352548283388270119689762021247718692451828135776427658821861334683179145125530787911101807579781881541404608831499777052515382471046637490281866699844202093477580856241708905466380222790897665973269079191010832584560438967796026668370968754758297741436117790517739558349834439142638105329706608245328423192266297380237255897782037915693986729431747754584787379917280808143389490946407896037351621086457324772241426853984945718275525681451952954234073644731148805411511580267772960859503128858932330372443651118448293537826238022941290667112087254420103828557181728921226615575134157544255891651641151010210471850167877769748953061214471584770887101523747154504495376454522644254624959394641633652095755303031190097169709407826756350633294483176623497005086521894479954092895957506078175107353484392875825753662686475409759980503926783841166863359324828452301300794837616818423573637589995483656666078961587091410296111145673238535098755407188594546794792701915955868722619713418916237871515787596205181116744366741926795115281181270567370995598454980681748142529044779490520983088228016818094785879684947913714400414257742408430662434024894521879106762469406509628338941529747855022374761949676398616238604243440358666838268185941808294001170364053018138194954805634009122942213752452449681626332064294674016725901541064685101223986942774314179734010791100669610998269842093140505205412239541876023934232474103228746657821934148985570063789963496746697639288101175814016201296916565567023962843884439582304910610636180626397812973952560237082660402555969405270637605511311159458208770036750771799754909630080657464385739207388652600297487771914106903840620203192457360628102714853349826338006969393692156700249521334687142600000792298646778060085058992244426127406897941778944193800145859246026423692567850225823124466601946632005016904677131619586585653074709009194384494131764199579342338781031433707470596467024036725947372460699300015839085677385987140036574740782167329453846394803764310453779497136274738437662516561662141924930274901721145934504865580605760888423294139771893811728837500135583817006612863468038367731510030126010478047815318524326588425471637811288536167854228242586904785338482813859061743668092398955807614227433829597170937977604185596810212105126939418947339509589315261229272383501162518222225219348657118742825873089705173397756966412751897734342928391505614956545023100931316601007469057593340894220735726697869839141304723671249011375064134252729955317730611800712594835652179994435688296837819862258926019968866116010080994992944120536433399190984252693655315526906387844778080679161432378719901830516132057546946595700645103299566372512292921687951988280518817159799182370105586365320637276629747287555399515844979939752603207032369292746271060508122109109952074037668668243128374854177473823377515738357297233484126629345052401498175364349503659912190718919169910455012929641591159103661013119058718999672725401588239550312214894476815073213587528810551064739329207855995198879424042314530191463806446637709069265058818375057314992804171610582051122290999786320615520582120559580814945962396485087599727320352072301506375077881967510957640360419971365536481397937751903205682635878313264674284686621232115908197707146863584789556274025020364961554573517711913422553802411782654225593766217597934721413605775142493048168445742237324650838870373407986431594721181662610694173012466799075450863490644202036066266705752226443892682415228934803402635564993171674623600013908130945679327465767817135457020269409693667099468194274415779933405947431007774525464556067325465387182908285439607959654309338983362511612285212913050945453507472864335130791974545681911382198820585409836767721953553086471645460593749025134161436257847328141746993650423814608238138844019522048037369842171463948167428642344886762722547290089101790970231257247244517189267554778830715297942905825113778152849310484816205269499167331813788045360095034472633820764957569430281302346515774075895778660899090175449541589518070342680001160135563327301180296631907988609376969562396750672354652042083956872806872921598895554250518956092558149675782801896725469530896084998225639430354892751818594482234034025533624220833708366678469072847167393703250962760666948994882798792193914384915320828284190093197113790316140557941771691611750692466943117803749991903843848004090376317023097474928906716599715014055493651022602572252354262001609987019843491761377090532083249412363071502221696767656644602920426007323728253697835830372563282947718893860101184338686721717542687979343052087720046340944377975902911447991738616709211535334641562645813093782875756140193584389403894651978908965414030840626921713076804149689381292629735257235148334994351198120446563889707852155465231487555717954886342683189640635711939477638736673522863213802000417694159617138299907588696709210262249893255696496719238153262615199351467445124972921393872044315764284185688143986438642198899773972689281984015453748933461347640579004979700294033389020985033820552973081490131466748315281351976094906670519636668212642451548958953465752429647412016340969831345030660216423418835977727183479016239248315753592472314241860894923832524295115863400846993042938377922323240908423756059604089911018032082928801587624319946841016036258986171092653352081066262908918714258366457769486107525877871916871758625473259431265337707192685482422465955257633287350550391074627897935771536599005813558617836438538481202307808946681083391673655170165749977762010047900994298766127505060808717012433336065140431719058050703546385333556773123523521772955277866450475439104189958442798115869112434379274392292507856553462089404759786801641427069718341220454351266341666684880742941014011930278096197893048334545300650200956562707185898572361381744158550753892382525579723490485506069274136178044308519504729464561038415080790703970073371942839087958345929149512044034279756140234575386633650275719263906847644794598762280589560566743480736663726399560459957082579263597877478580808724014087429361888318379670757901471144317238894496558473161270146046592956904323507102515807508010459195535790224081518066530257971160157716061524234946131024228711577445313922233365903333726202016901492266805919758095032765692401470717409269407842870229887991156794053262976219618972193248187220204590296889242729475714139067274775198987627188005706752300106610109313146219598822194907494210476407326834595197742852573080892240869483664845259590052692683829181670438110679038376855993374729486683646986314198993907141293463342456916387007384830581657654462437956119816517536441975064945835018664328735674407813673896515910277062682580283744178058082970108607658509036834638850585360476122784891182317794865881845332597738214450651033003683637193427539711930284323067146248303269739373603369607946867224285956415439614721218713962890635752561449086383343811477887053652523411822449918168905401229139012765319184784534568860785770442663076923383907111678853895447229081023234514423805964253167754709900013613236589509884852662407605912279438065659108516548488410956140224266198110116823558718077401121503641921690625083188050397385099722725641024444325839952263451326026238785335826151648345668913801431757289071759834361335479843503070143587993307713746734240530670960227871072832220507357739214440793317927917610604330960419981924654532107985406537892251167108006549030911617195501589014856305389621697747673313145955563789129865595188538362321852605541684764947717451119324695091149322638621780899050094328519366538097235909810699363173819778870416247284808578972304391749633860557200158601848907611749148315728820876527128821438571802857881663425738277887859155648066438649353751397136280680687311915471769329793694714115794367407195689883385084021316385073888027700203067750076297184814711096792563634273092074014303502833575453862651793536534304333858567386989290349232076811949712765387302634137435774797294384409792570378401703353530206198621006428949913588538069434723293148914292042759048545559699147868230424333712969825905560009573166963021927145337253810409522581671251145023452498499898541570363778232614783500462950171048567506053049550269351056129395861218226401394986214674285962546946180031592558416237113865974102368728654485686336779503545575706275066888261978508300035528136811902738552222672979578915954733017279246636816585909331949905244113905540513665129764670460449679490462721285786833177430963868050383655440491274744676626040579377904125835110351915900187047302845136319528333660875190453607464303959473410039820840327395465401288280014443916945761820846540097365430420596928756642697677801433770108148519062082317360048686182603791610240244907461857077906406567574556756297324560900096144998890338358857187347377210939532868291075077635126573934663385701324359761313927053424142153351892518337747972574372195988391341442518078848523466107514077377331627634772552927960473287686949479976651027019689887258769991178869616172568952165889211951077480544762704795981175762982445817511220992921601871932803052959360707192410453896415859489739954501088361396703340188095414419524645117096490179808736093672012227125202187136855817136110960776761837153242682003187634903907905468658597485325320461932117736333084264155400439705660868544580101206194707781140790861500982478771451145978312792024530536766433562998051822289853105016110268610319786641110130021481165139707867872365394206609354301672680855242403289127521582051907074568997334293955846003112400724448541729301759822482218191003970670097349906139478367538565739876944207133709694900525068716862750885773458514318866787303129758129835193351230532150841202378422657650457405172129842565690821767342483145633385131072583811388762532922736479420477348267664005154246316377471378027892812288320298167781549298662617363850542426006554456975118992597613117424056465172188929180066014321775407249360025700861198662676481898649852727311534792791412816422539662562629720111370943280935459339362615155560948189207088452880385359990067357399907642679183590369469357783985707194014417258883442792668121886063335302902185357224403796006611072969966898522761214269317792498154676637848046690871234728813649858467603505442236336639646402012140362932534629851752619496155064144126322851575287838805756972956930059647357113095072031555553735498615297609355964265309423956708010836708055050701657493190794567793938160388855190309602402016545034825451487694005866588654759196255517878080661784511916525592985643099880646202512093911692535173569357973360940774036135738915799234191188097093819796129611059507049390419141557901943829945067710998400412416775299491495237643882249605685847012883394408009560188481205011112710326650996012811850901889937508061968977653212092495231471848212925631311986937509492918197820273996358473001139274082588464437787960017714163482328393263412350057277886289777867527852663793130836665836296004444268671590966926818382647960243259635999924180956074735438980080202427862801581377905411410181624039396924295997598466763020647856359646958864348001314504355488398984752753558416179266493237475829660874876218725706653295458667526295553847456574661978209812340467002678354704508417713481514552886845871789006526413508151034400563861496647203147413582835129619770370414905841060594267138159904024221052027035448218970990041619092615738005693426651601732561717909430292700251288264759766099041514137863423654622462860157123436830393272136935444906933262092708068904453241865550153213719493957958205834588259961184870449134222908995326489644861911887041085702561971233743518545173492091980328691811363129987849543327015249520135179480516847035839651249819673919677536046663723235013829535520819283149797132010738709582704834046713838836823791419014396325735824560980351577530507668794864177912840382348935541839648588780357808066916785965087658758736315468627982658022481882004294821110499182971173443201754670742738217248543282315551350252716262627961730808936947282366542429595643982566411397591876033321946382497231971544238200284960700941579030046467320488320554714052397642353978515565377759722623032549706509192054789509929013929876333362223506654318994368235355346900844755109133122810153290485710086124736624177426391130498526298065570836329258592400573496698472089819800256719325597520571799944225583740903895011967695809175341018008033029758203439265422398928536738310734422708706080206745624617066362954746317983146523501196213556259688655851323567012097855594120595564217475002229747979279668927061892474764361446409524009249265620634221844159423309709514887957558497296139244432599636426347534331542012708897562053982083767102309812796761755468483387507971479663582437177196248264499686698074126867836976050803525595307934647783159772304424292389509817274320391222394637948144765477244264396575911399413118461010452600224603135696914329679381640749502387383007222455512648545126486727034840534943310296274611172167378125802016590121189746765047945131121962586766876703625663737116842568033381082501941326535772541998301658240248122797718707706087753806412185501109390284275405509097114748190234268432341645731324157168914244890621265592883891458697464926577721583260105305722495963649041714343520304961647842300810137897583126373865348906894413226680206370425212586238397032715840860523521088608391165432853394395841856973161280178551092443649417924842688352612160764370397148729925644805892131618913580214465133455148540008905951326323912439043139483132920052773904489527205393704373850018127198063192106048227231978588958660897136659265123371769917613198339456877901756827053230274081595554479298072781309882059605447958827227841204701575493645473473525279564690005541021954337916195961183345550414037615544373940005324766330923691683937725404434381270208205607795483270907890729270389952581041539046864847393727281280773091295501424858780868913256705104722138311796368314701124406828730685283308990669206552185225828908414431796652769604819067543626103181094511422864203483477503768205638578726007605585027779840713673262534336874676700990310439091104958429078982587406299628033516513195205962846146289665520503342388579623717074057271051821920207261150726696917097842136546857836936819931103965874803768853868319393533121523936475357356462621377148673600855523599087091006947925028271078389494375545146792745159994863350265492441037016723022980375872386015680286014966288412818480244668989264527424788035878359329902990406501990061606336126543879960899238958990681155341596827245064352796433106914632137930909111657744071286034627165453569808355219897434722206470340150866075761345643099763646231985461726544863914441202712553414946665432949336315783478998549843597757281230776742333067477573949074894917555373680470420939570024132241698742580610303632740068977001198025400433532779649937169807571674875322814784290519947340704370469969185424733832006667866411671716943339606559742146882029625614207270010858108806236796604113127374930062691287242006417576849069218841145889528539814966440980165893412974529257553318828999145013211522897796737584535433479990130511990919131805563539220666355170575331817332384430285007119973104924840757788261385824759510996984239925935212201629690671941059107148698712259434878934725955168697545981484254055315781554021575096610829470534966098123424633260120784584678118234286465743485929484364394226405962355930593946304172906625734265867650611547345080796980477014676753772041780775533365668712759502255144533988604092212259175768036251314031494957508329984883791240777128952214270487067218439783011036561704394637467943066307789255565832397463024265658888916566115672045847367159415752629546263930517420108038544854511318309269914594034445367445546790351524499463279645022690738192215377675350491747170182483223672254165917079055643214414300586976166513759809626692964312367555591491136894394723704433799668449238805326466962650310551247939341065547370492690819323243436957198644301396038460787835002913454044858708062761933371222074211167156905574866920131605065327591747803811865607035332305375231543573787421406825550117334805866682133935537489319482411576204308803502536133485209149718090977344359063295821689148249432188031209591164504615323601029918895055578826523696372081616407205494444116177801184378371144215820543997064055034178777974339451990719264643289041809925546392383958416517440181158963559176740977694672238249523958538126655413919891279772441798264438092662567116379539314767705522007702493165258667388985637827605739482325390187582418136979607012370945339906866121541252590779877463749239717458699801956223637362032255207120353636115061609657174863600418447381525247987592921689102721509344949959461742194893490536345474271270936450483832277576537457077497972300422239999336996833873823709338373299769557385006430845739486516515418621636233959581752090111651869700781378252255114098844481357909673629100505565928790905829567934171369501972753589550092574887109573271759613699123465748134137262536580719908397090896542406637888823064482975426858453224441341539646602442163938476570890337694276002110365895488936877898189548606360826034113052331549481659593580685389372919535702545070102627648064652876515024650489220078936116912983021994798711486420705230890148905188996551246055489885972033111989486116992466956231362426501133195094666163585975947189342778312408911460675656588234654401994154495688424867851553602073569205735105509454249144696829617149654871125663433253080587954421454127114755270445391018974368072840122542344586379153499274318055165993612350824190861929380846507844336994135161791600346856852284972698287168679450021613062129191827566542162243508575475100967981946527441335548731751105533469033373227501659307813594303494561917233531475324640116865610024747717622636399725709966471337526390008049605365344705750457063897800753889890804279957934763456780707253393044106968809996932165512548557280343747581709640322743207023711020177131689620396075393125959389411666946460317254226297305081271547841726969420348361790553556575555204696554297180015859378479138153646585614045041286616090066569614574801660973669219632511905766388244648272953048517656673502568582790100901149380465998291709696091334824349741770763744663353988393739189657627769877361584602766863479432808735110580754117557520710873017805363366038032450935383234789259922976630135548368489408081575747813986826367321593206580647587441545498677566951090635474608905758642458860544739962104886354618567236018773990050001199518200406818321259150819265194088485199097457929697378947200134463580083402263179783962888460225745675926328964252705199747245106428730462247159474330222170263477045863053424558921793482678075673974881669408583909531441288998405977649543057515772915537058980852609412916013340656572795612357872492705973546495089922818739966899731696922488003655612195382014833521708156349385251223901756159639676723462079481534526913046353088431160757193426445443041410069586579880316905880712877835726118003031271864063739905224179620120544650238197920685859172574421818598229853349783784495880353482071956228895439818683492953676678641012789101565576764237284831147675176652805945377730032255438778751097580161875889139311744952899794604974446836178393691754171582457449476613676111435051733948161247960082444215789127750884199134766127444509588121155120481783346550716260522365921287721654606916117028445981141075699616658926671879248787626045357128860641434929082900771885583236923506900052898211990256101000037436760548738941014430883412947861667411942283100595420172321861618232645250944480160841783806809597611090635187914569232879720557619184141992221455558269765492955676472547018373213365230168791347815617891438793940379971652851878634054233375416097117255918823774141383929684066815007962254747345138809369517640755519343050942580364138677283083618471160300392083260932653967065422535610542620198148768753815023139693162507334097005480607185875274789103720466402720276326857454676549090950749210683563656408241571544674231090266957970992432350123555911673039990051920855577624850295554452125226902614704231374231306235075718434091511252747434714624643564088670430063874242000984644817229162801408495703704075720666683925950869622586258320058180043020275038615910634871378224840385232696594661451829256609760187607754363108080415482798850346644751146869260509180080251571909465320495037372926571401435904538952043717268858466961605072437452708690020164611827513294988277579190552583657326676444150068202311286165614628522831812329940356203108820601505136388898695765054701922415266848569039045599804558120417368226516900731571834065354080428890830945525590342618299173498022733327471547566123612479361160068936281236562128535646352940310358184974355125276964761650560693933024634875956416404968177868415041895676159978768465808941058562507020036697324271619921723224758501838997176713037740646609080652473110309776536997418490930735504054825253726840697467728604712225138577597671941744185858289694302398482030101454759317787542577434127337444459808635520062207555663742996509348893414054094910191388786354858065623028052060032191487908451344838734837074970248332274971407275455385529856141498196790076695606316902190500455403138211058116423818652587702595850908648890868171838582104797679310418620133498342021153900667196476031393951475481243610507663711077923079266356375150342378184232254303158183963188957764645307767272595040593968654359326337894444827591373834886346024037542131539935777940786077611543039255670842857895074781958566791805717990268979047199468238783371818348593182096352574759322297238843017073465066274178200768169337909595264493758260138047682820289101200946187644611845083405695518602253846801738074114153935714737743376854983093609225003623483626726660134166135969230031084981131026555044988378090816803191489243095544767150676913160828326911931025668260118624971862178878980698832219860352023825318887931153126767933882317532708802341569540783896627749992001394605303481385479812126142232625184641320478723472083380390780597390355556198559472157215739409080998379099557031556171498761914664658099573986581258943034840088293338146334989375475560489069722935338616909060592259987612946369734063510312070599744040542078672174337960643675235496842221791677073433303485629348855079781180020447813753512234821329355471221963882145655676559609905537641812809494569475934340528634423627190236730760509669740614325630645836543167084309966951799094291281114086791692813843143938094840970351030928501060321990628392839041860428043097531006438089067914771869086600331261681788881788970429089811871094619794520259063841909664354368357581521796917333082935327143193634869910598568303069398994598118359839690699141468696588582011827424623855348066175865146885585036839016026777265358584205235255185929647305894935023729665978124467651789722709913166179126181271089746927300097458904628534372962387658811360557755419476638374936656904397752878983593806252285601276277881822428739693043417376539332619673539990047430857523223019685461471972511936085637711074732130715065385044472805802495900781434566365513176616854935179609126360410012830984614245848358773044007720255908099965340000263506932910511639834669557033276315803492987959778677126620931068383979119957927230419112406834925428981805093809750518321131312943408192949857818188795754740118595680914073455853814248489684193221318645107871315019027749115872049435514707448074420342408994550141597901396179848358440526776294223463132984832031877196192967922126519215877274478143817450050608613061982235757888960870499685105229008615206726776333967689329824737814299257716283998975518514027230220501401425346520635415307467151192809750331417039015822083431600028037328557412697005882523786500142686331897745566200069040749117418435132358261796798795442105504501693535298835840126968453172680966520699209232864712383990634899522544998030450430062355455641598105184371452486259669931047361482688607005129400340752794899463363918502797758920493278596351589139040452661707976529389691209402309842304295572551156780991396769738406897467392234310876947174766326478766731153310715632942471286731928453398650878836917819158194990563989559362732912772805440499940046611737900242851084224926936462174058736834646726482443095936120713949769091500516528506783417061882879378251073556740275281535497127788861599856230769979069786312156812244307558445995564940005477413114929872683209193849093798693394771002213345014072314230787951867521826045185771995408887880262269307015099361708176896791779547040557834110250348521055651533969618447546862128426980712644725639198436858953385275885215661645637001385892531331610557224485240422458283310739528019066229176339404209385222111655427914756172415341251619241638177854546536335045431521955422897043300007373166361621371670241541887575065662764608576324114499129148682060897600046947005514194186914020268793838463270395126139075459624652780062975236274396238519160676144587802403598243892991624999677151234545514046958604954620082103987913133774898573515294520243450327976493891501389395182980219807200742955512241310348306519516108758030563130655155678347766005587489303164857318816476939515917769785206942864168006504688513615545180006942958032699218454679770448128889424000545519212105911972117793202107268202272841933766314234308249831366923919099985713361391873600988329726990091199399106731365256170988875976548982090240332052497842116197412952423329666600592775639036493906158313533342468947395933501667164277275190956075304721644709084583667771095877487862503186982157989144611039733125760710569235235414855188930751420587212074386696892649032255825561041171414904360330628787687902489638874781555711732932566103154205508339912410027885232950872973030837331909180834426612007942913705745472346198637946517185231596293796612574435773998031349029215426297459456585794192924751349587823605626830659972360416704343714047070451331245056904452940571887557924781040056616033424831419376798903306828448119141665571614132118450562415322128576343863967386677772846786829132405733867651734702943084941803869215674972944621960224235216577860202264713355900256639062526165994295182590258602977357387887655935801064900582494865998450688593142805037735284712044584883193016480777554645414326294749302547924508901154490129307828041866858580633798506478383547226404537938419432018363491314278793602502158592478663261518704127703362198444709415198801171729578334209589129838392252501281196277620953253340029112256455389842584212412389122187694767732218082441695698133250796524654967350409192786523500840153611472437803755662556831817093511192207434310969087235724499126726419170362342665464824617156830141261089637525235116308521769115427640888043657393824756886941851545510028635360443611498164959041346137494249725363847102090420429114942644435627023269110443515680456122660786669620958844083142922737471344463143834516937733181256442160631371965181049025010302420454108806453837490923676314125038885258280035549435984414958855028916747198556623948967441656347320293260676609912528948944462054199818175884703545735089441371172550171255334089700036299037770967291158301091841474901322723303899126437093024279572509958905393022360824936678223565853849318360904116894744156089306268530189607477025439905277102853412172387925426164463450771882462680615121390815458478925729399436881222777223253727142472219549476357600763121376759898585567427260637664576363219528336956738246763770080774840763161830418118626313975440219340342319904532977165128864904041588560210140977558634821364353468034695097183979772679792053876552197549911003408788151458758405844839740907955948443517499724865133742729464595099115390797880237597254515712487080605400816112919769511640851384664325110117039594286263905953821036267163127951440640710254302247591834595210383877039357119022477552200765619335017206867975640375195172344809226728528817317037131070474361679724079877819618375902023815661223797231680286812576125290318780140326513268272623447565028606209000721239711595095476944212624108875336581467170949657804151526868238940970069552861031418625135736569362015332486235168550767990330450974619328045301866335651542219115194252319885689351220181501032202967569053324783829876709169095801214107476977396463785081243457276823099161351436911347464424642709896070256055218433308824640241963267902950395471240562385287668854759639474559442762639389942080815722334757007038024928212093771657871111548114678398870212270726213515331554295661668499985479326827664516536669528528261375783180384652407149636580337055393367896011097796629773024881102272935774836532933111199661796939534140201700381926354746469570661841964963026915912096055319773419872711714228119916298583666986327975295380448367616882957313513792611854129184325084793060630415390523550420175480017454462948266777677255147419682376981669345610271352300342938244478747205058238804461485629694252893167644295062630684462533329237197449517766533566345375920623581781462733349025801411544086373071648562773648143106294213835113340696211661213965461554141887621504452062623390907094180319400214020703635368482089912836669786937977472391810178909499934996413867630486498458697877779332774781147397925160011361352648164928013067011635858009089972172621610351961491700583194079530241834824496311560861529656280747619871904302524249381184448574544672954425848811388456380127144646630351067131953778232578798921493757037433958605803854603580542183166602844618325443630084027860981231550590462694327358970480517583832175631301928686909523223126648827241659968134967562978160044088801169411963381037518077823210236273953216022598468456384200400474886594157128334693617570200217098738461881789554876231223558678989466416226862698189573422127238306227943734564110898618310036182350786328773126681863188895601401395623008892942671436651306979814409664333257205088432668318584865687804844714589584392282743236610103757858008834580787417673972048440951787911850141072192180280069715379785750821229975267006508802730953746090947083487689107356420024201098801726044167699054775853810562731754990923335170768464367952947364994532208107693009449293562294103942577358717881501535746627728300616525182788733728949777285986108645876934514593523438944007777799541672272313434323833799704984087144137186492859596939383667036987469654419140051803316307325928697188530124212819838800075415319507136145839007454141591432102862090044849285977284691092401335081161373208592548417283792144165096774370184480963431205728094024170037151762307076525609387577085908513854492569868798901066871287195882495541626981791976872252117933797486464165357058917097964709506010714206669280291063198447241612639197560013076517657203215812438758679292115130352368213171342304995051732351281783430781231427706167660470713798570153620775715819628142555752710370453620237637981758473435962964912848643634612403938746036597443357477026335508114999501149367397265854660792265301427450365278750676399447496087448365268482455009080584936506058285072293909745010888746994058461879747935306900443488505457229838953771971070070894056735111305016950036412357530037813420880923187109140851990338808543423859005083326688838731583994011101173026674067297368527992122551204208198302761967880871332977819278208985748900140249097932627442827287530434521571196239517451782481891581568676671896440798380993939023605732447494825631023083943312879544017129948807945438029062797441121677882207226697840171583754579841855688373802718937146637641786653854571307865641027184676718119668331875202170092960143602354559526191662911194495535253425204190511720635104468501533335647185245338036363303387913439836163048277981613096852678615081195690207764161935886359316685323262588047320298943635102742064654709648004300054077312108030549728047997790188703826973824166899110016328530200052603662389822260887655026046643187233317023899022794098782317024987340346429752070805383209543423386334377064290733008450260361550500469116892633119508387227962306662566569345726760381773417602293640842933948349592267147496124791163327769717952051528760361219926322937172225496698188240263168655622763631479563855336112635038678224019817122914685958628782227516000835420814159151170189666849198939987601784706617195321457328378593902155490183981963077034813983402807912486841154417497490254614581834650410112060017834809684593008503932016371071196418145108539443020818560440673143849383161372984015264756688217502211833247492515703576191165160220320422992157486439681925591022084533451835369934928849069999415587435530079606252018057008377978858266724494195491191015059686559927292651743255548700675500601869851424467998030845717964254888065435907834814138249439461146603266959658926189900598877803570050020996199637961507735690068354878086233686109587760392278096051526120916855894839267626254819701215359934708834716378250295407528491342104431349732062455385260365132103413355758085630981647876824410606463208100107852505863501101357921250644089481399090466364020361297041220275070418328476678473916964027136544987458568232959891314243279816680825698870052526735306911127515573257877820024759698480679162932152067878020064878331390150970252242596993525949494139338058182017068261695642372710589406215897190780363441882947461715323315448042086098063189961523174701187392543902293271245870179885045824156080657206599881711118332387157365443928092159676973911714237050295282702908631300044427060946936476465693818543482286278629731464554522504481002671114326213187355384576460725638641696499256818398173205812441222588038561427296520646750024778254117115410668687797868046039031023016514924801251430497251472906672788308827834214037241161358935389260546722937591983322266395211977018849346376388452401995177824469851254926118676190161947933900477555051634430481989659617196727104653935603390527954603543021830200384217169251877331629105387219324828739616395932012978622479726255792161652191141127183709912773912893377155311766406894171388515521092504979650825555959374735744665116623443901712805425822781095086050314135607873375973748568901815931318224286003885497551420698820620481200836815589088762700950027013502943820837950522776599861627205380794648424681547758548850667664826180872565860649115405367093464151458989031635929147176515156117777845715694143292908135941880573206572940605770147257065220518119253329626791431072372315577597376062573049422503888992220302935849897110506456487484774683550452427102879805495795330552656481846180546512592579682789642050542761261357649753845127320272486644568050374331073859487103017338584875965430833583087145300302146566848934629535382048425156659889572838562292795282353165994826688667986654725352706617023708382381305000952469112789562225540112012160617957826894887406178699247663506723224805385947254150300404178268652276107433112738433493982572571293622410038824053239037945659637027368623093564716007001018651070963738001420065087444630694680855117124014426735695629710589390949858055551207665029911856050303428415620687553425011110836811145798773021491983220406242858757758002265321106096417926190823916045424258383924553050950742384606139215515633371845563495913378930260635664044046600078693543019234645073204338001223276228750800714827167960564298909664874035660137477299438916979821746419630297118301330239718303859828261810560667197530503892562734706682185600340519536457104628136161708970320390918415716364211124141739653535644057020508568724192358446657693418824089405400935138632778037664360127561460441701611574876663549196344938635765225213660262738744799285252444443127004627307682728780572094468296172158922409969319146596106944950276242531496361712098697927455483535523757271511436033347427720470224362957602456121692915556263807100817739522292602496404063337812603970999159639031200714846425045996400698569446762318611471604033035446900880481569604402518036377268819127157388380929185595777775779174591054085618815627186952361309377194720285731099671321761769860377456454888128391925757345755814101946354965588506080662603876842270924423176945091711036970566922471485223449592171845041692761398918619851033184035548751337302614878518882041689421285216029638519034174316291318019923315495717663003448889532478352292400396663876757251858320436113850834039811396429062958883331609239910058625627918419227522517303837907042384606325773625998874664331859515564124175159259611346653636755720412915753210532884353219529315980403712185627805838206799143751522863979414586165282799731824445689453866264853576856533844513321850364132391211994003289078625565533312776795019745161669459987737838311445074698547579126919690447843628094523307915792153656456090206425005256538017829097097467850820797237507955592719920656783746546709959082534653682141831699580801579618624427133092748485667919286552759494852194542299864116822000241842815081367319898149404851494098064150098714080911485840329074305260590778627879807799270285710257222964554296844043856523578504133436977220506375003329484650995912773218563161152537423671620161206058004230004414031233149949709976800685958397331560901725716518051001886830622897043569054725798061429963489492021231038495747400598354622968441682219407004804571775995821185355692273084436855044226486480649318134094636610449996242756445987652260674209173956655456328149700417059538872680653046228109988951510548571997671943164924734553554110950968084514673001689303055528343541428549816666115428309373805309434786447811979559530536450346693296908725314431814738866732005127039280004817604846175407553666145605238551842148954631783075058439554419721523922335736686442063900949134816816617581599507786041406980684472378121185304818027956119609691343442326469460832981463372001231248978127490664908240698281959525973173551007006319147117896154239433603656394709785707550769042995215955920582463381319447017863933382183791437117461453201384692109899948192850823649272781628168108311077630040868540197118809083417512902439142668715541323809580872626071464718264169405646266857416821797544924237232658439557555855879723873509183938540471004022705446779357445934505140093015626930271850084613742668167978499025169342275429232867878724552531731877820907945649838210014128328766173793990294326927732287582676575227480293047217420745187355445734971129056600860128943118695362487581710277898648061481178439696363649220507061584323552291775136056730581348928310002747117699830515035987337154237909656350952414575727778953147161735887278032070727510450427456741917492465437232614239154584805557669198960825856960651287782923465191404045761042874906511973355297163611888741794377752669470933749101393357579369441973410353632799661580765989252979689193622637179480547014748828360185964722571251510717777876151300701849756606879519187109472814793500531210627246384293651355765542502442272513721105684330408952006709085216670885417774034409406237724321232181037177614447867153509158857168055934153978483780503881580666378549919600750777577664989353443401044411624780743001550556800472496260724430100406371405951299320760803685965873235751993001752084360576889788532558454781768799816125210434979263063275683909147158289810238172508876439048571933399683213091943982762490531929880163954386807732410356352613750983353948343681608686292461506142006383616621402872918406933432362743894368852444320181447010286144274099501249126333188924266607414244322887982424296823122977460074025022992753384699738305372204200521926016803136182417296022045651568867589524247464129427956815831769191724629942501420435801774634408158091559552335695611669516307495654058487828966313408540222549540052951289700567538029608828962975030068273960144037146755242329367665612377849362365464204587721608186660594836193608532056564847679322752387035542048809418989112479020054111659493891383239559278442651345766526089254157957956018825944167356886050134038890799660231261160531873816517061990548978254626830051363246565749081462911533354029682171449362497548769898870769894482712168087283367093317203395590312842287568674182245013387898431564979912795167329385748784526201424762714622231110775209913075231986000358191174587655834402998286680618129085390503205355545636265587220362697786719819659814059583494632887640962674274735693107219691982976484104627575862717881824193838647327392732368323120560221218954442798558921168181304834698661894306921529370277292396224735775578955339036498700804681906395225509392461183108408800178964088558503440179449992236324086959377247397791486600658862818591734608493578221832432741584630987096604209123898246891466490574079796229306918297198351167402699195981478349639869538701281717631692671656612718532205214801073093325229882081760998872258017777647932611679623787906982746622214461625439198750059376433486343626807656819988073198786239216502563436409984046747851702578436164902637399291531397120836543220266408707695429943893787612761486081131290442331408472102044012363390728103689220253928582023985957271392433926643622540405440978203834527992472233071298937026782905720252550126052192384551396493569627586148333221275907968342072698960077582877803486212081162776967952950944572387991909236370931069808381246580389181261616494797278886717165237604174312847828962570247038156008684870491479118519204093598266489911182636107276147197064823603763231439489231943901040621636668383037693280759104610621025951683000067083096355717938583043990243900957001753000160365714526776652523718148177707776728823275228394684973308095906015515062149666643110460706301653631484208936792207696492398031295005164118715131935384844399005692445832470391761161435809914250637332821259005245202045227725573130675902277569422791918358672712290067485701953611207887668704883528790477189463591366690020224613365106608369760960929645108298104740920834895633001261902086725679518516832906030353442411083820164923395857048864833931130648892158532546755549090850792796749455504111462116322819850414481816073450602912573823274146560755524901438905676027038384061004889473154736599201458711185988783059280150570594565408413355243196185304556546044723755558104958977838826692515350921409125267928900970120024861517149934690077144531976173017166732205213594010388493847010470734032739899924745352561683283209458103911686406449174574578698150583524736819172716948965806977950907905713626070022501112505627674959744401839990433511502642009541014635797962343395069705106986577525011230432558393637492570553403649005189397635151163669213196614591792661105354871403303963031331518774535984306986347415119535812091656584118538217036012952764440852077929305676327648570224335100407969118602497326168003859210585969094419689957306548552341337436608143002299858958707812906023596906333342252660645465796457391515771187727996461255017106657800633975600368343733279076328345632097420788361718191417477809609323208612213231460569847222371045932523228950854103060268393195787409218499441887941163903296328859746839218790911643282039156728105039373869455066172190124193570668712374281892976177422102135123185006091699442643558483576676840991259122028806803109126967184200667029863814515587076659601991077062381236247240671396875343559927843726576199278846585773032458546385331141772639610238467208144333090635017976995942053165711682406017812531340283594170648342521990641990447752694449009738377548286837392482851813535921374511388916791442784051803326426497643500753714580049696703157882021434058633168638394247315356846462371983940234605968675580881852338196296296150145679484347715000304710715668054984924539212945819875952608744761762609556072938116751399951680475507362943733612180190586612758846456958403818496305567700258642084309308356190806314272127621464049957238445023496208479421399876503814095140938327831957955822231598922055152912809243353953732188457151921391108109761254542092150011543483288840389342748150306255895879016013062703923675107979558600692641136232298363891428261374034806045858811306238381527106015547076909028463662854943505891671963666197711238889554562169151353641144648581005016642919870062106363225302863805424366683946182707382490164879155056865639699125329092169504378030337924869858000470777255806285510983151127710910375911837840164006787750368109130877957953947609415805563741070726280753360353000036377521531363611930001063260692697435986208981346829812255462530098751794539763029862575788596931760751597586152964565613047924939476441038546465174436589699605154288497651225867597845174720586442570964482632955860189392628938618931274330014888097932966389410838185415853642544776071253718419423829233291860540277905745758021465092203890600844276856754484455599978230440345590971732893862753658236014392578736618585472210562941981623429065227058216563605441600221885643644995423679470195635333492544677912888456525339987236494701268476540587709467969766139526113408394738578455349439451855445612508752370499082894030576222528499274537832149678529087473505009487421617094262704541233038823502262634322331081578420888201934517746419949211790927458358964539353569501957789473311757416018595931279315780036636320099882553132615972559052668762732053190745714680887005995412577129399872850026622574184591690034914264359858155279864345784060936436263053628798261902163004326265761789780476868329976008913891787181353890121713719046916978500110642875652435683073644433194011646591270442176972148327743356389047526770695843070778955099579936116182196557827257613063425428292546680820161506566609919963421508498463437368934556892456834333812008541336594920856145131739868414024162462026889969943211334969302872321717820981567318773275914153959276856944817004990028400292810045624453153201412931814905914493311327706907361593765093165966333912818260547808154438618338067891249117195393152122802459897135568555149627388569024786376097916888915629351485080767716301974894860886470949159676731802093736478525227222187141935670599138840858117396594687167361811066118660608987205057627115049622370490803558633773052714926072070953329906958706713624919414197149660992140402121449411914607791404348656843382655863643186889587288603468185262041578352014988988055388532727043475808937249706746634034197168264457992503999611570195276642485043839196281257560235374453700614927267150287450059587524080181039020576213529046452797825558682992738533562755349335023387727901969482919636587283348034888073658175039760633593414401915441023023071383279843944786954070959685242163674915479781955703820367463729127525657886940266571224456566545808839423593904353010545909018721900470606875309783345461465063341154011595935812505344819296557901876292863288740931458657388040063539067732126179657482897761480308556925603014560923995283362757899261504834087100574162899570867555383370515465187316445013958700397338118822443941068405912902908793500161856675414255385326882443619746740165680618792066052991331765728233728437268747850706492645056305353808610889530614808582805751376368821795106551514682239221414032150336939146976461677610287231418271522672260125206355097471254941444179816583485802868286801461887054005374813209147231817858657840746548121528646750906684602967373433435050826589661862787256964323762763164836449253974556608288348237673989310975730821157058008516929257986697227419412642935913253918917809239880889384292806295620987863219866671118721624080758377720028207749713606430240382606483004949533443173884533157194138070263250994744990992026540999643921860009432478284862926919494999715157647832305839361613987645878538009026816944529170980659740585846271633991632315551859920437470865550869182906459402352599302432891114667193342809841906710045500776005121350676096761719929562159524034354646419772685174622767197611227031015770795321202372167382738437668022615227566639256853076823402690592213505244277617313888335240919012742222171792319603352300638366624264581192491399863399079437985121017012865360414417547519627484456190132849774080203966245474839330405865247160903770272488792577841232029791599783851148678886813694354259237162033496912716419126419738892824744072290343120440347738150352403415803836544217945498003680687197145854445638626515872183492411105345075623575615947897475737959708714590511198402085770329964994374177232768647538863584180214023729672631363574753566387677795966618167223447992992711660439688252789265890895307051604265775543450294579183120609206229283788812556233000269962089785034082536368941916954111830162496391604706691998159917559742883545491587792571605381779142092822802181010182858998496714014749678585917502409911315852752341926452397358725736674959684826642598034649473430038922644428796519746136275464497184887211832941460566244145672098636391677535051072866437183425076278853827337979869400311233274574436059626600603691917056557507566580232376493855689487437615579234400910819545027927066784503249108069151801438067307017739587389742833746467950496584145896710278958859842838496782553984105778624737505078904571662062120865072651452546002643546544045506139212167060896847151787468761965216260211742861890367366635570419449708637700500140661902371685228733850132580669588085494119427326316877220291694913323910104625021234068256349098370485661787036733642362321469231871785471784419272485372083777608954172914731385518267668446970055108050807014317983358987134406362750060272193058044978145563601426511260311597282388070572466953772206219449918983978158006668433312508721221790506884754017730933751164486686499799995953904300937362889897206754972167485601943688407068912687530632360040494475337244556974470371954459739875127838880205982595810762670651098452224348339638426416529590904879896180311135774295469141918946769476759425469133220353712186844538106350407483101541088841577771772084240643040103650475517464167782613482538059054784315821919573489621372826633126133025013376266060591205637778526326029031913426347815009377645539582925597201131635378472551059359876050742920736182000935734532815266519575690630777531622957893023191194135946408287149332468374241516848964897286955431871493501433056973434889037412535872841962264800327873737113177700516971277412340909340903063841413530812377892065359028165258030745782620563295239122700255812563615507446967831333882634248222541183358400060932446555019957294632123652589539984509816002658817721634129366193573998935890667093019946635401396866974562458381977628297298389782997345936657698329067530799867916688136339355048880451697546416950707281795289334397527195805659820078741624666775411763527280681071616874840426675076373943584624624688886978364008274458814831527392837134429448024993187763187784887886457626135701215938012458470760042237591969090213332929100125394368332790434512662029673632953422808468978535100884279497962341489901019687853770413787993082835628855635513852384314462491580942011908769037991746352909587424710894338304741905667255857006961291304700300624679794537705890727408527724461186723785109513069732305474466336371413512559046463928124038486284592082816579342994947861267567824713225868967733061254794085110111494656890721954861950040800799338765402284939933808167360952035432388684391625420590244675223604405777802560114092648670810691808587047701208429805298446975713213853701148033797274097096708689909019019746872258830941853921276154598709789556339587623776607682389128345183517658142577069512244324536330318765238354684562398173633813284322566269045363135077456328958222654281347941752191751373460702993176748090199381765416910613584620733368637787912325714088919555804135332919860669508670756605017220011003061930676380154221276034778615378534581716485743587407120893949273867704646566809598645784155872010979123910810157770299589873930025732841746040876167810813947038150457404537571424680794880626507580128617754655068001466097491088467685997062491333171105458059463503318949159057650733961960523822178121362078451984754499051865641967399170058614352258356545328068123987790612898620522978690950446306881401306557864607288058700426486255118179488650001493515476084939953432008091157512707407272572642174740046650765283968259285031981860526215484847302453572888570707539808870269340468301990738979744082500005862152335689605816737339050390020264701216333848160217170655784014457220359574661728408737224241573153680888780730959658204296039218466369238880861171976351144519808554064906006542704764947139609225397259088774951859958854082563307769479966540747145600470471928950005831179147053418329678269012359548739288438729178929400295810871469940858287450991447118436775624856001688941044380691834580778538358532076470422194163871160572569953071862732438555594977090285730915974980666062758127039100968228162340501750028307515833552945103024423080402191810969299731943899617859910301403871598899809751706316893267593572538336176282601357743263725957066555074174553406597304856846053601856649119212053577107314677690845349115301505031274069458596386345711348075720891910766499067016051637544965593253102784074433063145610374144013990032446057998311544601625604823581534699619585030029355305790573080428748414507859247857754433303907647812069041775638404305026135955175103250183508834153906043527934216970947716012727575349164675437800530636706162203631573827697624768940139749697839059797220093900676821499545595291706222842920885087511230828574092403228261506794261990032229109647410031071631549971976039415494093141206590096086601127035455371501932546414094646102024162434884300837594736673280942092238126633948708256333988672900441321076993527038157506354418115760313214327826820614368691067442744482965044417032441274113615935278162056005223297200015178112114204031340647962023734942865672254134561460551876276168628408475449070571749018025628549606217835512207084565754476207405860984641135251025525938834575509016660819833277268741067314150524298584427404558929967469400441969450835013297138840936906318912349571749421676412351805877311865442434818726078220275949367519060250300961166284022902731052542848771375651775596205997445682781287469107432232967647395387189704311189693476845194233626205404665746853704134547975365958290108325995113039805425152091084218217311759924838293887321170836647670436958455675728416174107699495310082702559505931941217743996614871705762817335520996642113053533660129709329710187630592843700199721279241217036958585277716461774886629364817825352366676066773354912517236696803608964401849891992965099574907833565224180932502679612651655937251621736770114518645425744372400528172173773619488161887194025161520506404798459227593550987056360834929924125453571370521320704322315022524619341953211447992341519604265588354136452824359330461006513535896822510148443608427409017040655083616081674262920965934664604239410481933984832256183164710476724714250608090317443896610330408978793875921482509722002933508386835906347908763299096892960521455992057021966946391193941082923049693106388188154747207634148184774245711514949931360928286087041123159776599392613925567493191686648816572131958707241785845008902643116143107622252050860547723852720958990999880891202752966375328417774698234121441301590266212553289895347144630268776784287487353081150793863243403788559986390879057921584973534846145254076710959850554180198696266139525364582707284419535215823598483113900080019573760900949392526934412130439561276808799981812362618398306066721362328720354446903547659229899029022561214575838830540995421933841916158290543978368256954069249423871415597677518795961945383291313995854233257285882273648203924386024952660372559598736117092945114592946257512907676214443823999379394508426972961955428128513688534032963365888286141479967456348161534765859377371789609507896989916691010806633740956711748491887304908946369356033558806871965826433369604239608099526433861034013678370814270923306584991547016230865158877356914506333998271892937471827936072167486670915338422232999770623549919972975302958967973120358370419841294017741405271870004216979720063327650213221495302992166135774984087990072556692521931333145757596489094558887596164628309358056434438320761321655845369278185572279251431070973807068434881959556466454952271427676437423420356585902117682423203343053985221758252193268594902172787272353867040372967243494156233848087674149721801415874366538235747611469533424941978826882698836742616023737805581987663234402540104756923233125000667129845222565965121133214024046097718207327132540373974136921567696469752120413310888301131513941283207618222722750443342596117934718290217410021881770469534372062879195327512699129844444943585118268800615729772058447907992164445153249984076930496578912312738641700911394694995513601782085321424761805609167833902245567718148797968180462434185655542573884923039929952749753721352545115474991851941697775736918559262827456823389692404265119021360092281585698663933553091474375099481122342349149221661643925899576286689166526172739302732166996713528907729374461771137089599066340763949526369098914569594211602920768085837395109321469303478742902727905225669670128024299048018339774208728775952113516734474336780431409930044311326736254573396611783967441044328170737063880640435025617223243459348170755114802665198393724441349493681861473078105387275144608816713674510375112665427474668570409869024397447897707107241642093971565633256738692584476144326089422377596510200078554958348223807171649388448302962577820248212865924870437657397024427412284699420493291156051303774234198211614900050614539478695357034838883427006854679206158654580656837970375505816266902114870892778905529259916060610190278009311974058334167502767807078487464366954909386674425657105252700522608241786311670717649168754761528438734396568131677693836272863547539506963724274283407725962198884852964453021118866471165694440951053375714305043818350144137492339844945409754642296833622795448410079354851288556218640111177854195739448943683727053943804844286119653246449179520037845067065317385322892276888932157063434588831517123988840418545021143642958868822748031608992327689747564522709915388593744020625731935860919881778593032082286475702486548827194980289131353073989978096155121949089817547482379913546782381108859258041562874714670724373685269666174707543232738741776607154851164582956026779470710942872103737170444414170996406064078298927555363766118654074516768074207129902896218916050770208126980662696428822042026745904007852292513890186038269600932696746366178797012789337182993505430651999576276118956453586739732496075729045323736539560283557207905877699269359916719372294194180278417808849038155102657256932188807465100756168506017481064426843007891349635510540192361763159683656091704732706701634245611159422376834720076111576162526583148880857243467638865667570271228958621925973243408593429060311525889266189907045783799104077991763967789426906446527533247920089098684877428469507507104968214219738985166440938772421002431598263315122701760157433294662411163302443401185214042005280483754100254735943314519854213094713149210312830979431107949151073531860211979151437308430289702423586122948902702682696992840653908309523026440303504989173844760617089417679804370425364664330751449733088634359637616515904744281765686620432385817666552741632454858549186218051332304390136958989243845556371855604546386709171864340667587422273591279445907899570808059994859623530715138528119413334666592692110928608673703373059968481316268336919747192748648013225085463886409771232833206851080028833555458044232660376069370752932952940537591512414812058195172596215231468106144476002337909880366574780404810078913640302349209086250593617872511165824343323424086347766618859914017767767517285784960168183969087372566834735325611025282164599354484104152898691093638800453215441447269330368932942555531582480894765848608352810244678921416405726984403231241770984479225309374625062669049790601603607254692710938639558017264891698247416856616977198671268732356747867496190025166178214560009111942142246483478674304708332745190489228134912982076299676376877634571920260156018186615201944446637760999850157809444661488395690864063073321223979080231007146835885782526924430125164363819919479171243290727473815922958011442388552301412867592745519938080828084100652830374982788026545067896429909540229126236295006313977615358611822150729961745922912288009889201841794025072431245225922304829315296469353551552400764861965085842754108481114024718055487391900048629544880737099011304256095772433241580758218967105121598647810093764014588117787969812846121804490513398239562955201291958645225587929793907428442056413275372204095048211135928977592964749688213980377796854564829869811905638797809940355363305549350410935484064198142411255815775841094986656870755549261361123894998958001563455414407921916127997031991409220997794489747691992281398492620012901062763765642170301562012108282087461471882965010643816426350981418685793287682053939392234467059152614501583467096734847903676794134889292855584596599850062104959792606245214492680049184607575196482904596186102724402972414822498549926025255460066411933436265591544790150209069416422972117924493929182951206961932691300389724715182962574537838281295826254464878703867229109806114209220003302469639138780796981142035784680354975223398208943454456654979831097268956602964744525554321882874907522196232719551139732032653072192357592217141650998632906310492341113163887630493096513612676569260245392942493983833795172616178447812678746478324586584653182632845645623265092930900821791776138943476539939044310866939484569723568304463422277736511180409016221847973961776470464510589597620406415291590127256741297310250864237777370727690919344131243686155883827456612963335897435679241245665950517913106180592313205132104387931510630254766302660550294544482929857400098078008963732106149347040126291495095310299844211084082652897068392561513346376922476487780383030577023333567115920243006540253387532997149653676140732925154444342817439251792195796821380213603481181262367440367672138405525108579037716633706628304808345687072937530716229658752425911967583160028160015140097651679240885734525069781337398257013442153812927887700022573437576575331607542094191427658541361946396344363919431470784242228769525417888370698992962269942879693105243492744380071086848705281177759701163921002532780519230432212467650535471371366559952188009802629390597897720868704451760471823911348346501772049447249027301068685236730372007816980703308312240035048542092017332312425170370088613627465364858436625838088792944894331127885193158945079365829743331033063783299107081303102507676437872126783005739380374308860910206992350524507439488429959199552410070161707283983325448223306708062460286118541610148977817857551429805511414676115977311307259032034048467832413854079309990300417691804040773920405453258451254807636924421750569079515299708296426739823423948712641203096128765258591972165709050388204557676710661426783079188092209496074778896776420030998620309346870622507517302315076915531903330422112985281682885121648361817458225710619895825531331949276808337213819820098429732150439696247071219230513367785380694657155790617628429749993808723634186889480941799036724241788780571028910439930673817371360154760713385566135503423043430269689823208786618233788032312812174875924254087563570705095121654745527092789173343153822464256667018958200041215099988918467682048988524644218540113777402778376411443374448005626590485060028970861737031473012691468153134430785608404829928265700848600425287517832398771075178034752937660522925749476958681801037213323315721822950876673594021327041000493800609079418502603336366099823674729344152503582933940714962907383082358785037127456429216262498702965291677990039242612719930997293062738167023934488995691494897729334834002081500029731235755752221804238472427985068720081180242253016418325286539006791974321727833467165527605496766609186807181177521454121195508538525746184171792305569078035338597365517484344279320950103444387515834187883612127225537640678235432706201033586612425298442097798639738622073482864221250637951706104499434426785304591230429634788076168778880998554898752051629010716121757502745538561311106066073146222791302617529853146260610756318403011657191541520767489373338455574492074836641792371837922211653426554742749536393020164466808148844043120628241441613597805004858384737827967114394242185267650306030705294110901649107805710253223964043739213495233181681599845248278377393406850968268323579029096003235768670546568904494706557945369283414535138231539041977641180325148890130608257282939712895959822211026370267128634764552071241839591862765201079661800208972557271284102834975513038550374973299447432101870733871520880247222466885449650781566740351652398335564155178607670373588458653229482020932426492808001924144358927560620977194199744363516128025509069758407928037342542919436258876980301770382782999044209929661778374615502623984574190202195034058047757916930660541454439974289154278879661763845242298245546923147127230922886742213038521103991434954860150516527304143985723853862222166329164368008944329566169789798336109044870661617320709451680131884517247059830834405444719989469853860824088335205431904231483945365262570015496121084451020659524773211808714141482472663795394198235705239334019191572215818417407067098667625824769452059010335868525334348437363505997107999030843937634197948419758721553864327398947155047574860130612487276429868021937639571176757695430998114552778735476817580306364826099097126042179830554461835153294757172575416822840982822744703055380108719026963844741915865262192837354893809663562322559599750598602863012470154360976197271097795292741357495041492232138915253114846960817890046070671500947468408644538285275589329014440926306882759434661634629390165046873438207501913545956282221931900035306047863095240398813533803989128641378034982432739933039612271385203062086191044733536717312967000126079646269144407241131311491975723927237901376216870433061113229671524853452112530231093359960898122266381179534153733290426135993683195355205496505490469684494158839920433958760333247942565325334554322265123928818730511963673952720460075970134339583426188214408514432192597554632584647247227511589750450439426236936689541394486248551186648873720512993062619070049597902218059237876045714428381985963113397669870507987224222316539607599580867406374656983772478109965563561508437132721699379694686787996242216730533406411747801439049546331366329635364790332524630740046257029941120245360335601436855309690995055064662633839348970143784844183880789150162493365434649660936161400988322036064945708965040905579906933873248429680396637366499289810096886700173105042649514207836195657548146460408500879497032159213271237120984315118372470848632198848956377956319462932051619323552261001389684914462482864072171041713130316784959260591035789810988924962859224648069056906005198703590188022572995930600347255578387549267637394974119916756186121746349022861907451864848958601147638477112422264529825517163597523280799386183566477504864376269969237197876878593515013825071865000870751471662825724034463063114489054817266010637298868034826736724013779169140876321149417826306904572154289616574319422682182183441018596410411947824645486180960595162561670448223715271205085584545347610520599299803356341825166529314314925868278645621201054270086679739215711783302261695508699369099245641195109137899107458127278638807928161007189539844345432660410496559009370671662202443134399849188921697531387010078625715402374743989869662666201174503851408681157671016375968677329923475910030257598926068329343547374253484565048606438820746859305323266001350046490239708607712921525871892889218389368620058089853623132254961804999542928105506076349604332650524666382974135567674678088190637545976038855566027504726459152791534493628431258690890374989128946512674991789869821969122190910466621621432812017905504041560322881309208706931030636831020293977783654392602376928624998662041450551226403028035076131004440436864396999256329553680496136685944733093086037294410325189004213098240243589296435708633207459172172573478249088115341519620914805866493892191518610950065713616471661912841901659854053283678095465425144252877200684804439528163904224868023512146828152373356584753162605122106339635649265905378601773908644153844065004067703587451389899099543729886618184113259391012666492483450771146065674592291186149718861813430646960853725254435741880186391373771709896886988919328246339197003500291599569132855154155797824555024417004328574667329704778987487616876290603008498461323962340587630771903268259872692298596647242576348990723693658506144014831589775739030789072777331367827140097877451202599331830612775259034938212041717496910705543727826231041723209668512310725227081329226220202619328799986216620621566343148951346289074200347174913801244038066321666737601928648981823534065981918397788988742190820426108676818866180019806797916473878025470585454299640102776240702279644990407291543780172633836546437476284832868399248256282283894336483397438560359499995129996299856756853621331035010491428931385858721507836896366884305885439236662676933499093367716316263248999345125230892011626572443258634132325765219058228470499626654975614146821672054073851322952068484006048996504830957365607959237775089979806489493363838371242425403594034674848417311793848722609671538116689757241238953558402074605008938667378577862087673987648110543018669313026699380038127561525823445307716158502941349691276886451928004399609694074421136288991078330819035752772139255065130515361842187861893264744793967544458333192817672385444681399929136619019565135007104300484974559584146696093027295432841279297201187324778300848937575228075488361306495405770495280677067588070257807899054108311922579021367643551132208475208309132245031724815696085386834551459200819631823084707464676431119528216789105139405627274649935437100457204871653615370060347611498156223973375090087057497780982575000814701647419607673110264704435145780908031331337378913536792082304870582202102593793219129908780905704050137992000582501468004340992874217276289483269082173155984757430404143555471889502702119700024649546862977339904361268049963344014493516546887904517007534333819142189176185710252256674824242115105279154610080978665356020416656759229121803208426315483932645915787572177407561978248788881423177043224579631384400390690028932927345931869184737481832562554588387559444753857703587757445009144188886364789610757277704819192336408364629025131017134025786866686515113817970246509284345744070170797752793419650859508766412915917074950513460659814948247689429873503166122189168415485539110731730765301529375841877317740306270525253952150854144761709386545421999495471384855244048926754037497289787155009791890485443720934705250444064620730241477479856003087047392818303246938555022686804129386432769488262154604848752520665279087277120556185601777467067535713480031882802355793362838510580456201609766372038443311111375822044215312641102464605967726913782714682769012735608989190171943450530674332520255652867466214607060999024424672325901622370599686153193288766675519574512910619381441461123891652601694405718590995315625873368201160146709678951176648931531126330057821799250865970377517793444425147244317308183378605613522513371390296955596356232289796706797607250415577505224927395398966503486536883624376526381703982493186222243863130023925979250575639316532422540264474746248083048334144779826437596762639751735491200464253382871051318719823574058754572012253535848839020645852666932161229450807651148878426638492570954686625030842000374924017881880254530923637889431062692426908095475879266228001646297053720032100543958529443721996978584621497105662418012038294754698367815149541853711354382322005366095734655495510770164035158444008926253831180842623217142065800305301121157179867826006381289832042246975254832299914932405205315834978213724570234594385460805948039118470835571288247500555167957608294232723346440919759856988182806021991418496819286327156239012272721097766028505016413978881007072604854587186198932994782323418039064246877025502477823797630438271939865826556235681402224541524665919097514302614001007418056823651132183678370884784730803406225332183123293556171332922724453032845895572638379946901563460868660304092943678752233735587620343761560802100501468343950337295345759622900408732972763682879890811545883452956001346880343236028728424987770072909296469087771047809093293385753269684129500117913090658467844252543969522016875164882738254133914123881996344686086503296579904895784665523622070476621069655032804189577304780552661134302441826416367323428422276493265481630730657574368859011024030103563579328889248747193259492944935753948320299937791476171170779277220684959881709748318695958801618122364769211967272532751556947415553292334321874334428183746985355771006725289459931688591531178135373120672497966603261319938179969858203391608261330751446194740025805951301115219556574481301006495128897709376204079424593944911694492444276213559155247400505620569342022739706594419061208378564835841440369490408646184767070882191148645852603795370732338330442750038978750645813402895244948753030677850851697322022755118073634188882370317898545733932902414989011451998435476602306794558462497540089650491271808410983277538790488826700427977068784838842686998423163562708882542014841060683810860410732497395215853189258472664448324553174545193564396450222819314536071609134254072235203503654450002956555316564874286258386245643798730140334825065222297352172133113503985601454797605516622202715891696066114078705155871292252506003402207084027050220418359745378600182424503169134019742477650293459585331253265272437572829173056454822194905414224573535796005296215083209874292286604754506938487560751015084180857866971391631810491800373126447094906092259082728787703023737060868121883849355377276266174606157372648254338887296397134356460370259152297636856269350760632132488891277039025291099197189972401512459379810618309316779883056962000028435470805319268368745682527129797480729947013656872382862576167663359589160694509641527994308990641115870997211215324974399564085586160406368797038457892301851364515149495921704051904688497116019643900587302982514879287919631089298296016585557291704028327780996321522086370216456065721691816535977430904162166657159830940396340397488458672572986414770225788136891840602618725637101311637395204414157978843349723267638763953065730456834751554874650088458316527491312968376306053006783997146248897103708259762873458431524133928337799665089788800510602289541591453914735514635900029824409943729269449270828905818148719695879764812255093134117489899856918288316639527146105481461220747532263160820394484648287082539017905337255706572126742785019157228179091338516912911247320462709646274635846581144651363469740889301704646459466588864420540876791798651743664074846938703621189154032872539990090671519035712495138866461516630030267521072139278971928193582015412267871180671350272345174372121606357770491110363564029687403327682628239937154358333059554446512196263208363652559461868172841774422507279395953946876117855223170727132302854860378991245396448998451514955288048869126705813062691851099668571121598850554269149953971998190499693070285936322910865323938665431531991529499965896005226682781882715720180897528193602705034596099491019771169256911643353531289097881418205447753186959760912971018782270382153463772352901177223014076883081959748255604168068162060592426641745358750807377819329641876301461788043570159336912569246118951470658062960700910348313906751550144353102122887279265079943410043336056324678324816923324566270665902682041768008643240569244560458603943010860254262198371741068797877061328316345336119751047276907158497520705422614704903003638647138722232891979825743152716228503033909620461929430041905022898304486470460098439648195565371775836826667650558193240253785766360606164995305436766126785784731383100355094195040396842219014773440306184548508975114911575443364706823640585280310183885956718207125059313088129468317441155416614732999902063084903095653694241118478314991905847731566916963503930744970929576902337138825367497764060482404825579049879973956404344919782182905053112690650308933979902915033044446865814845578560221272357054321561124369338113662220425487358292455466048588757458818102561295148980896619503672645218124432484700425879088627360891419000854433665681040238181055162748661424959669445088196502474543808402248923438884497748690490159482712691466644673353457115035347607104434028309611416265896795631314750614383271417819178090653240981770738272469580009357180201250364536580835787521548974156918773760155463357824342585165690776694918218068323266878781839010833108368564461386064403031394486909710691078492035740068119230178424426898086104666162875127584348493688335639745775761409173753611217543206426589216956593691773392842044486514672506387963260334294803843830391681630073341826267937181044131269299008002340809806128639734359855433449371309098928010866488617285581110940346020381605575975768101128447142223023670626530317161498019596378810802284944094095620976605676073585405525403412023382508597503490111796264087050083114983143990753080583264611738642058772081656649445497874687420619375340335332065376140580298891718588339906370091604096570833590990999793126975449558356796916362989576538974654594840922404718900873448954775669469095015059629340206473183134562887356836982578459232299144697648786647079956475295045899068084488959066532695515234097216652340301057605318697549957915943115138695311982662667695330343536927514320503592268554103227332941074705691977772452562935887152877981034730445021985639405788666999887209940591183003051019663032833553385635980742392877019313082176254750717198071806845719652518067825227377332162099295558666004122689077809759838950105511168201743528079490470447730714828137746279920402804695682348460938187781461306722837041660515032427741863225723529700266176326608802065646565800811792229195030429070266113931645728630697517243270298642859905695086286894709515405105402051616782283445220416418479947499758784072206970227963941768731713432708924059714495281097080846490516716919205332297095091659404964245587101764799330800689506038957061545481699573516811424230782013112651776866765706997098386026187655660641778876450377783361420403538123730765426870620434587911607281120419878135802027027495041697296990595012042932176609152308767542769714667801567527297971462741995062554489275916052847264790194605961963335054882484868749885930893659755878457446160336886059500251936684802542601600701998221967933828950267674884181154203125499978105038463039375704408690353639879524589750213236160507389975527706768472733985134459786114862719510169514139386164343873222531490415644113828033978175709865158874194069270606036615229524873373184472097967208410154138704170357998139079566123319934896760692926896775791611787648026673229265812790251751186823037664128546328614787341212866775326781222088841835763068535837081604568913473455097920981932951954121577632384365610355266952071805666567503312153862933613266600715650401647225964345213688181709019627279592524365728776495505547546527214647037132166071816621842811624576289435920444089722164909169330227674526244345575173255349680879461967984279632643668893426177369643003294857791574940359483389640044285825943669543382795945884251833982222329005557292916440539355554365875111980342923158460604705353460058356943190908613248147935972886210182192672693687437706473010106499509808484552218883198216899832023716108085666379287139770089941278445609025309910663261868333407552948238810295732718730345302137740682509748337143774131442317641830990106344734325244138021969347252013290711794361050068862232645410628638698398749442631537095630737996204707656078413453604500119852798822322138093353317546387143289201479396327229777326748962907936194513266970021061126483900792269511089595935700142921147139496752331411904763939488492593004946284767764842311825952011058589722150341886805621980668674100341318542265526510709852457868752479827948921189665485467472330629692683857890613688491332861938138377615235695358998241207451193269770219630634344883245434904115452706218410810759222514885290079566904109960390109180528904764452251354707004714034240080007527304150968493650853068495877382103889615979980308257814354297591078294810997700822724358684747717366481452491880248203785239960244037258623029868180171905173069585550565628149611473748425953273902443135223720873728326158333062054053013477243128257415469227326247111364852914104113991549404596771109840642294757089676369962348384063503899731823235332747967584348682799836034414387822451784251578790257610244832785560953679357952574940372791835632502212370356088608069280534733726339288071263914669250629495419427976896073596259176846633470809058415462667872328817720531614096588566794468739897242540537966769365798714943036683993074496287815166493434315067210425714538089004014651233028319574122545153645054342860425623479771489088320332878091213101436931027911678706845152893303283767875060991549845625300735494434374947492753524609247615192627750113335236686511469680423405452948277747329665746548384330388446509231567255134214851937727368479475939353812991946684806865041304296057024093749456652356812661347620655802782706244674140639385721643769908700804932243208265469294162273361033247328923998367522532393318244317423636861364005724394898896523635279995191496179720949294625152307617238936176852447489346490237159560389101298913471342571039590366249059628864543713150199851429601937632847887013865650576628941732922006541802850173403662667472397088854459709087523978355097175576501574171549166316501564712987054217175813794737742861526907187346473347841135606688422593541448182025640769944200774692376911466115560554457044497161365075049986928809857048867919070593609910369290834636807852444628042708202731519787102753053982880800439104242076820676431913834950630783059325530456699271177233969233199690901876681965967576946337413447998857666549643586447845973386187989956194716765547983723667252014298130887908109599932380439577961950589537988586852551175746266087173651436674745832951067287238009409856535643620541592908305699564007546890161788732263954244408379194940948373201589427448698723350889737326001286200413174526685581099632298383973690278946493400150360384249504160510533016359950405905633282260128912904697235050294459123439280982234271119944049397543366834869483001928567231195984990994800400878627425454301849700576469957387315379834222995896529982297655494614111793422252064093436466414040796342210969776684589495554344539992029390602252812422972398054070566671164447745851888976523280089443520953610738061724302085160423513027907862586549575008874247121176079552533233256181543654414101345522737741503084003442656039993078228453335358815065659873413764926333607752618799662036893464344735761129236855588402281494498774064705333861211622644823442154923427752556916039442922842066293775250871089794619681991814418188698700265156827483398956725481088630428887531101041944571769105438880593548470342820157562841325801275515905286969585320792660764234526852608995391405011164913484233303513000597084791364281545151117216200209851264779715928968413168171263421456016217087165451206176668209091054931210701723190665481503967541968320178936622165213555769081233686000169126676099558059829329723161876920669448427237624855439806709336443397410701965138242816046799528084628071176933761430042672010782608212821369522231358066644553775562398757786083198328898398751461855495094935113850852867960411590224677456659358656308138498887235251948669124633148469825238008602725287498198670643565238598654766840428692942672103075152389231177168666754698471070651076468891212410842019670759464607219374408553133554858366278107195977923130606465865622106574138031165703842650680076382352623702015408841596534278298337451541173220122983396658913456811868116619005862357583099712173316719641885574835375067122500260102685755228319860576670144981421916101934632603279444963625913037360480014220858061467167191957871314552278581612772511357227627130695318799464743772204739031712195575226997228427131166232333265769495158955548850937631070031998429027276995494170028737111565359496690598652091587340355162815167732039127806162667866945334974806860688853713713847304124037753476400833809151288876628106820099738834408156119685922113393333176750410673285836709440225986487585914296795230311477565198926564988400937540028872651967318176130264811038389831718835891808229613054569149848056370102612920005591646871800144109247284429643573700342092611447236439565030147602683621201164394413652413454393554753431289860912904048100453246291505511236091947538954028009314136227701593829173937263507323387038642558489822212045162126041668393098406114562163278917258678649676758617237185576893099381737481917477390053578573701018470487995155265715045476559164032056308980328482558702281348779401103110171468712582707160010015723988906461806015505935758804912616693271462536147875347940024645528454902220039119507030451503138537336347461913808566468668866832700150977360835219041276064653954426086542829304846064059957225611242513659543081311344471129229387823723478564968878930694872464097145731328375264424161418271274801771589855604160191696957871110057893734501020059593173442116705350732810177666853362446881257863222486245524862841126284233164876436757711629499681648427660845850287763899587564452003661191132073851807758702981289162786349901135815832196662579496578532061667416822415357115032804472448073237911778228513881094638890987602510666088945362331677827471455677205368706045037325805934771956384086970863326242194994152716717033524118450630910218013254539494091542321125302549177413153371624173508906776318206337830928416873034359870605177969515473194174495347233468094944031698902752868590590103911590700525577716912623888461869766409504791490588258932404370845966532405335066761567720437336797102032900268848645745934011596575822932526372770391410910953672369601169900484936246465899764507146040282365413506538362208753403348633612745931546256154346528714122048200557616788846963253766896575147293104074348977773874335745706617946070697465619111382135730505743887549094413984659072292762043365335740308771453665287718095965882254025092762554175353617568651646026459116744585933974875229636547793409407043291475738380446329636460361796743893860502372428552991522950494141736031134142859941995567698151083503219118254183226851707250068831266918573655692528447180603830195141865479605319621860577971457217111522224417973052962436837490544534364505578782834254458597153490113759498835187753655252192027122275305349051460312741600304224811630193834274786187290549373335732621877449608389480228462294346189240631987103411201690260337880556228902868168362153903820628355734419281200681070123835379788723037254778783761884248708426085829772814135685814006127611063670770755134755373482716096358357771834837976100452584280039808429729874441078632736654007746647370954394259130796541719577912238367841060334454703492542177855631452646106633263458782554871889425897708940170355338812266394917283672268330591311363313418580109667449164197311732325344915457058799995695147767035271980509535841936558709105218998427176578935817033997362134188629234334402157310199695909119155596101497025045741555332975460650855863136057579618561648462045920534742020790164241863941800161830638013398278940092049843609131837268700836322486580351738046150123078693786122674700037520681401293300326194394209283164843660285808430611147805982249968239156691525454018472265008357364106254984773463636092472086139204088712654648513327628703555022610326855717640290638014837303828090793230832717372850246675270603022543480710309211507621785127847701138006542380132312832920074144457124907064612334959851458160760682589295109882032943318215942779409529182320123363698994913588019753005597109733145237751140860194360861885795867945197180670907140317855882781108032919963426948017361296924616755291645060113495192626253377075488314368731802571772665411407980946822381179810631704161815191884800411075912978322611185843033042851688237664225219739882623638065729861543661481707153272835904046359465360311700274276808977076000863875727703653452251341887131084275883023769530637118572893836796754804293200993174598497136627794160428360234716668377140596058444724001796076766812272463639226888769310744908443054146181285848362513567951431677328551596299941852903422776162276747925097487258711491579927137002256660403205596719919120543186078498741719735612467153025366117592668142624881707280396569804215801843341565294398493270899029119256211793849518408198516256243470985611016107402084229112477834346522928309343333656274544145146191900436219206140501288683689841268129451511692603540486328937291745789423391204044138273931750675244883158712728793224676432400827746808679697253018267710206826999018774426074144739178585714581334171367429147811789283310517006016403126986115075726743206388027976929458100700822416377888045093352933910722321221746603280057927779394172905024921773111389981281399529372374021850246486973135640027751533791864209699928509053483235535207680721541804860251202730621267612448071958904357593312332388580847687029130772726745016650832271204870630534942809038116979051518947137112577551061465584762649045131757616407671399533313772374853410763134307094146840092467740799495623554145278247777996053931619351215369513667412928518207065547858593184600929617089494914058959194828615994387151650878667393534686405954011321105316703246465747682272702291774294568035273653422424296099301908436440035905016624157672297414513804659048334483064743687654350994197442177227881315910751418402573207708174518982086704508384108358490930210133062676161374907030792590706524416599747046826531261822570140989689995664674545273450961191266116497034546614941924203167912738546149221674889178940775270200042492748345397070142150453052187825300888936520230807639798485376738134863067783335450286536882923526152453146353519202619363910352025010011498855949169529906299594532128381586256231742944089501042349705404647369478542102960438014308013945025625393833295826380117194144985367724356317384537031897608038152019549989061512934986622320446824988750353928736207884828219670743926580148785484500943052879199103983775595573052527557167384921420233707578038440301316990779776588789226913462351548099109830438373090622664252997960228074392856325136614401324453257682945937785912252201903455757094184643968988403735962326235188156485846777411579655158235681974928460551990963540680847539229725249681440891856348432648014194742187575471258028982239965319185480186847296821424132870711787075947122482033287010675004070107882013664534552533591197647946051479617251736728547103401226098266358332834873698653329383440272927041673386736878843926480653305802795435191573047417121968348435320508665241401337204586051117281934076480289996964267228680903232249349843597953035395149291139784052433112735239216530847314418387190079510586008053905962862461197349694617705534199414520935576894938801774856974906986541123230697097223221701205649560557037223025572100118803774807254620015138053015395726561158942779209240987531660931248036584034731374760616569304215239734760475183454020001496547055091585867690988585414868821762133890525369907950449341987644079826002142410804395604390644818136290406218073814124608621621177174017738810780092411456051513307913386375644721634585148088038590723646012648499774646450055881669629413398045692595859169683147008486939815577479394767268369013578865318409771607606380077128153728732566704344763590632977788502746498932058973632978202821736855567125693391042485037716977515312546922322699152856227098920519867814833324924397594866419879569652455634166960749965809232022613792346552247677446792596461259251653175234427795078733818359238047956803746326477483400672428446432879240476291592299476386637035737055589938957744797792522584178303261152495989726447831559370108203333988511590780524843896623052117144389617176978731584309343641366790668731729835481929238530985716893728326044740200453963209521549841349606700982423061209005000313726478689780864941571173382059813689203153565406271681811745138878680976648952157055524057742403285344242334245821336950466833946005214346496384527090752424248869730471020198561468313395805313696451940023069396829809343221554501493219087481047316502424299132500126703184058699383779385574387759900767083282084491382151400728842450173915320232644399236755393866134650523142595466859802722422817571676855023067743953980714368072691360136208827835215378560366470288249124407564913889635827551919042935687267198078353664124906501933225463933727453765020555123937804848671185093928606397463588550223632888062123609516664039210456459497086770370643621154463454992716592853422174732864140977587498678612100159464153990078413063730119360566091083908397529156050290495367151043527984010207566439181632808182663711782175382467818945581683575999355305241110298381429750152291931912797372163037869558762061226635408848219288760502786011847922823422652784428797758662745981491075643647624693124927838306295766983545270371768913227048319261897185478837562541995398468484693834946188805899854718321153347239828186191243655156629756141975230365930847522698514393868465195387556387884964896954410315717742702627154679826468813374425058873549738991787437771940331645359764276311134564835854272401953468691173654934201456353282789323743327692591008781176788973406730015102540262500015413925044119127925861986863280745738586050020413598911927861569351687723784928753724890740526870850593131428289950531470121882823356615651522279516584119248857905534376858491935060363282613279067792574811139851983864300510024944583216069028317929621144210101187436501547291151430133516796040525423875322258727936304185462937365312852200487698870089990186964261983338574523538345796668205291007273866344040335406086973191114843904148139840659315704590048548682764446409884708289190386205798347081605411570630930779104824248012619304716253731050940306679890745837007286968561828786546275927283747366202592887732728977414310095357249031283890294421443016185611224302639444817442879136875328992968988595359487876935843193338050263819275796175419306415945519867021077839332790948253439489180380280447918456236005914735763921432065069217720670267919380019429690172734699168367386066049957523611455746260225889151228741984185954817211610593832757449975915870562049748574789941129394686080218534944600801608718387365125300020604534327493059173646416163170503856131239568899395464414425331020765355120505246502840708445956429130680029849838444790534445451637951025881773529573407793626854505715949502842713087341910690507087408132035334138370505996607253877317328616897905430566736638619103676298294973533889280151491700360605053972918671727919486613789684548901552860395978399709566343190372947113049441605589092927068565400374520161109141756224716293329651289763836093856261170161055313673243335221668009858430205191795107283666946710118373162335380276661871778747599036758028622326065244534095180970317464254251131190584235254598602789687239276472028432924067766788251743552803125361658757121309030617727579502289599114270091147390848219486705283796440696391577071487323865541317431030329999573268097135444746824899231852255971271302521772612232684108010021046305044946734697030283228951636955119238621859827231374286584612144106136477975979789176177526900809123690877345088079826630588749328415971591101629140018068961515661628261030672030717399063127828371379321373673976489438942791779471384147527964857604676580317457945374221731947976948919711213346523977194551734368974077559737258768844540234968242454810889909849892324218157015880286067565880400781955994085479688074624700223161004579647112680297970882707589547141671065913869971348739432320378018338160581905140179028269002387380921033884211212207405559060967003702356041282732068209626629126792778560352397914855557203778931764648461465141148457362000009234333283757143185008562708224066212939595168866304171051816942594200111690115656786047418468081416985506545031356857751402693929209189924591559459852892752742072308284122027360283710631471885744701025565496471376699152966061414660283602058153898202485392266202393882345152070637939172887786058312240377566248911894870752473944382872020796440845428087046800582675891711857320004142999229241271516676306411410884514841271782753139023554799022318885378282157467835121479192215383066681818339341363196450144555208798251528867182605278434093151154844982800129968745611312612822067605880937631144400545585823681046442654697137851382670800751386147921570341442503499235690435802735525420087346421733225265439583229373263372655681400753809689726853288158248419405099678677131315203646282346287072331450138340739356293757390637291487529088883245586225360298312629644062362761302317362276144846795416900892951322657585538467343926661663217597193988145779198182266367804482979054546583522538343832130533203103205086711583289428372446320411465142302748853576036338129300694768420194326058602151665252743696164883536235466021416092510139025756805734884322250918463408999726080523116291957427100326683869380974358085595869123573664485342149386719267598921058380969719929095921642468532264598368329566877030603761875894379381924873117476726894642111972473762010101399974919099702813815824543431620592518032831149703164311786674815265310310234160161961564793674690064822297653078837419231164989434796177518496803551990447847190209054782020439270670107681387317983473392772304306094144794841185327928208303407667757896046531736998521436223153459566945822613467101840792343682400524209267804284942840978980703604467313909516914824223095583351052395937614769693090162423626434411924443392642953488449892613879557773279284463268903610112127865016336881538576533844527587181080392600559622641456606654073797877279293013759350064271632846582024493739311648791357011481337248855071807192901293076978956257114059608884490967161968954885087017406536294564058903052565282539115918846386756807063485190087141613141808182100909483296395499716749472539397670695796711698630338703019506714332974629780271389462990256692676093788088867769285058981806169534866001310176266964553213688718425335977882354360388870181532233145478779721165603108544454174854964587814428848382771067049992173061485642941725919464892669243847946585737219321051162531555445759365516936179820605103167818554867517670178856413495943811478528546636305396714225076912742294531105284354400169980116795960187499071496918144295680199553184031744550021474970460865089019144102268731172034548524149415483930326295010593248731802027646998557382882944545121558612490668008014505289241314981047956626712589217512758007723914643157587016917533776344522016585378986148691090057720687473542405208732624208620598211922753709194989775321268878349843754809643052645179873450848172919722627868727195072320871702864600137940961523227015746509377669883293876713143599719767348911492639050501581458814182565684030303546857402056535109728809226131191564028048605968773122950550992818571680937501501477733637500880613309484544778618883465394161255189873414318481191391871437295617035870161272608563316628067667822030202071121585338396528633684500364213652642198596026926574010478286900878031175233980174882892527695960441248379260397252504577435199735141013256965048417997522429328203523775551359498583184574848065743189199650829363516123770779114890943301626477171925564673536217082955336257486614399991044314447944966772977488350908758809665743203763501568084753634410878978368973413565105650470917302132923082844690510308872063483034126653279518895095950009340258842415556857227128688410400849309071647303882233452057825439378779350696865931673352943844098268056728099984105961037977245849327254502217242984200006482920297844971240563307976631026379368682161256292617516272628271114132432238812954235330831069546117380682094330128241336178818193496097756424371364146615368577822345307897222814209853105679288739360775032755390135475587211832420156999106818427801510040393166291719216021990741018511048566014039171360599658113981600406620002781718537808307548545976335790583064925730147191715670002923726787007778576827665981599409842622119795495531559205350824327053177116236180464910016555075486023210530188825787009590130586796685487229507381368130573897846954065790028986390532247994834414010658995454785649226125102143308379508216096609098532042522732244200216714099714696558157436169128630751097627873186458486562151352160446129342547286378441026224488591329022273868452223071791719564974209464512086651476031562458276674177145459290466022905997367338782553356176711397668843476882450351157092590208988040154941639330009208806340464950308976626337990552835969938201050766831136316951945017026435607908710512623267785015644303444749599706740981181956751371644999295751449647165514627171883400720144225178219055664882483425170208439682126124964263481419216201105229244296240145695844440662709153981884352855807334679042701040486900258237774755132109553257518558509016897852008134150743734236163300314708269652903302674693618519948529788012996607486832946064958356290400240518118885585025473298188527794568034477871977044089275106586124778497555903572122633610956748116980236538984821907584181357644735240099166490705292236993403504908758181820351930083356096350525578312459265919526610642420055489933484982485387288123146034894993205491093337930544261233358988257465579474243768264915889423047955295304018073207607987549262478060123444139171834049897102130957213919364582792995140958976471767448562539457911515333706749310186664581870499772243376827621072137214521583881898162193003210435857896084277575788488346174724951417373868862549787928051189274605707476570135314044542526472078644378876879235049960241393931533615967741269732478363297409299975777949205442853087863505957058260934437122803813039005781576385508213266690322330371572765231487984943320526775492721004669927743156333812234170361740059587604547660714523022960151971973844495208924825518830758703066002556548848470218916916747960131286307834549058198774411950993273030014220259513358442692411838839236919939676635274764386160219847624514771180417801257154298755187140766997571993851258182288675791627635496365570591334232991145224857601928735577813998740544141327902694363242463591121419338604886693266336047802101132200199718815298418834907240337860697770556220969017600466209797826798350156335850685988231846332621036021647505437329356697072252836227379638724345013454721770664105888375589502774922801857386730162230102230809540588884485535089153409015276082630260620851187468619395777726038714843809549058104840011621415443531567659081101146219565691401360412524855061427497707276322390874333968632260082588655787937397203257576899598872890126166292409711676964895787373091210638678474791450703107027407624144021388310162188806365917521267513508137398087339488412567510460703731026174628439531215363256007348134125920588256406182225131940037376139624247017610264489521521593029315066447708986628193955643829835711983930444189268214898127255587020955032599957049642388431492474550835741067841575173466768874225469474860904479864346440890507626293579604577280839151197076113935937565392783717575580582055367792455676239148246473261510159829121984179469210732436595661819233300180662425442638177567926347613869540639546340277478268810438039343051182863395650167593854223255625772173012995704924052761470671742650027704165277156194952659237149970179266928684238088406834026944894199972606587683230423680820244678175678579842370357228795501078248447096463511590546953814392155833205344744531355658505048289616593519262354485627788613072695669756491323719416978216165225184904067554858591960612276029429692761240804641751491043067336729762520968991446173323443263207126899950571005482881985743444359064862101429688946774308331055516208732152418630776243058361910756655638366343676688971930378798050844670606301213464695807247045984370475030153708520732069888190724738074159188808900876794965053600570580689537444684396838391140612223075809804622509712448292823887708382839692069705756874929508271332121486801513408727866005931264282422603663687955731280876388976425220334893844762151125613968257287487117095812220274631315672934016817607591692772974279056643233247384333353223466241882379855659230885966455067994157934886205768210922114021862460551589123202002244574043148343915872924924981642053695020796773387628563518780677280867585244229998717628909925282113610062947533408911681189124479267828725012097646376354027465928845713829251801071334700644940952719432806033685741043578758911168649995492261964995111392711512942590972604022163996972174695929522254280265983330536085037942617484832528083292420555231570139576940786718218565604604901959019912487646212766098174706804321823242714307804975194143472602032422269069548953571588834211641780318585861857549712030468211209903146370321115573080789703418005067001107242190608512727683399193761312699621418909869242252942666018061270800279452093351055284721718574674724926879582059525635243134980823948648862835180004003478302534631498273952980215665893241626218307931369539272005032715058953623380455646256072100369497664614133448309854776904797182843009393779859045044155102107634860429688239188023465146194696181886632144161546470110735720382343363087585959845448012422586254741704737712154686163506456028712193015954943715360582848511983648155089267227475979160566844774698320527014434235824795998536326703258181933680035376180806586837457774214106192795417959532583190559326950568203572431506442403684285494868542655957100711175184763096351269879256980884888538391737020815955480115486947650881460167778069237002178591550748021521815917753609240381046282824010715040178328649492553595265519583603229101056815562523459688517267757637125760146460803303818888997841536961345041042183975878497374133210697294298475795485403161995308427846927241379515894099176644414307951338443889144863720918966807376474053710504243344011030543153475756116092280112971681194643162220646818957448255915887680815874377935669326879369364377549883354163823700895147681053540638344065801958257218071088044048427459169787903107339203148970651773526162447263023982858572011486694275973269299498088766030125485204293561586609978969943732099311822395749037131586552303039054789413401312802433407310537854016226967455242327114994654441938259574590030732222075062210174116278060085118202361404017000001143929693253132879493128000380659768666746037437877859227675946582233310235901447557341093045881320242129544466923018526260060604348058047821539871691651662085278010463129545002443875185022440968537566592289663776596697360051758061989736090701996437201874087814366771571678275018470664798787765187805683660441661028485880889589214257688043126053931545717484068214424875827880460810820134019536634975447708653045778300235665637371517396829808285844158240396764184348118898948237011757707339301612961753062171615762779375003034002792589123376666767790297383932446145972312088064680544904054588488558050017413233292369304700391335679847184081841902913035568782298323808117956275300102661791354041725302013380889920706249976525144444169633472776674839829730061117148770279465830598232367145801551054633835167484058064693908515899094631920166362360921287710034662278798995210800858055150762772349693161485322269896610577681212224300697097776601061740993391178577606024912146947015926470020609428677946376927979739051240229132267480627870169990211884870856759309003394534741032772296136351014011057548717384918306644314893523011638805610719901297436636830294913503127166910946087966327218208064456666576973283421234842248451382529545730303731281816717198419947030645594843565433408467690486635515195050685197037870681057223216103430689626994943673517550651367722064311121809295538480146400976135099610115092380274979986309039915260828169723724337468833070841078822212819511045066286680245119217882074080760482032492720987796264345740952972456863170999845359869290505838113309180887070629051289906771767269202939555489281902538503543351009331640192962644613755870959119612478364552687868917957535742953913330041985973559466097147206707220395283577319198815333950037435689631978310145282518217014397017357574659853921790507819443130160762677593720747611157327274462757054398264846008561496930653400332668245530333531905190186191698171997209229244991358536358018268256803799067579610442672600919138240427184588779019900949039365197002860069328092193697723904544709529304047078737190806167315990335470110496860616569341602415147754080650672070385877457469754305669162373535027339518136561013517852711536082494449876733891100393665500246707682354815827233854063421687218293349993332806747989795519694570491582386913969855211727988766765398243581273521790988415623858222408765837061929620900292455944029210484764222114818879242743352113292985458430541527998751156652456745821704401510071340711716582454390119743256200128636322081588048153491473829548769581295855178940386313976017645910487725445298252050879108291305176707283654212904505977108871382991734303621384573176637025727534826753763114270853170566295807308272267902703388786609745328250862339501431572769570094927048178668589871261665913249106794287024191186589790698157551593767742147079281314271705368848643336279426936271760270046326729823543680385557805416009605076941970420594331156582785495458457757002546189495275369387294606621880013402837548478917681453150854983213309586676077867116791347767466406526500079126072210925785738173916500318156785632295961401473808097477080279742650487076615837186829191579345275533147830199937449092058519678857995856300801760371420813389617065703484239516270341107365351771682085918440949923689224348187956289088565634516056846646705712491233730121092891909769630667655234721061198157791010675526895847514127030792023894650518212284021491199240419698832010734910887496930763563005533093573653790340284878249651765762563375034495762871505893739055905577044006455082276918641018176647779525399762228228364576204111581753684369153080233541145084320695365228958009625926061855473786328219328747096589181425162213435716304040443483912282688706054519159034654167171409896731938535493624345798162699772758414873639290044919696862103668200538553151477296204390420489179467022715278565232687204591819246914631787661310292058194009398512057070028962873486212136844194206724730528070432064831069460921950615320355739111492270788694915178719436315968220536195390544289989229379957639657416993075052573835632124983836018336446869931977644916091935650772363293991690183364218087789700266410685343089188465526244043485612248695866869100331896981557127904424495532955758533709592174025679158048949578751677942614927182892844153455054671745418304178993498972577541094594856312193128343976078363030745187320158022337395823384972120566840580241769170869768604482933844402574507140492885295876845264174777066398226711502283607739548460966824840288024831624647816546309497869268942520821410088729535491348182322980996658929407960010684046340717508461765121430316590584866151229544349156413493531794124665846232084569462009867184879605073396714277152702861925299096506491500117606141985475562416552094475342110440751629786768347309116870491082247357711613694255756127490846634969731519108180040533955335555189189139706811738896751620883751722698563057005071143427970143256854051838317068412693510745164063023630769774419609252114816010395721975951620915453743635238210656355756261684515564325739082800524250993788309795057314566445754263270984525864115605231635101915002693008197477455305022114237060724778552140795163646718425978505878283010284712133200109621232055482407907366357409292302318966022602497106012796239578354259279296857241803791378269736989564332242749969154605159697220669194580883608465574215198505844175592407656419470782935978590938892749694537121205877384747896757520043983520449008340510821358493834196540505821744981293956279908783290140802558254752819410513264903220724650952168594358574727007085685917257252722502197024778955737049510297427789549668518332563068922986925215041535477693421638014615475626746301753062673369937928525029554354605345803357017765930240300209623553307478831655531496645858144284073126102154457474621159302939707900146024897611195200920615697308018598188772007583827915152083096830819410748226624077986243096421012591603083105172816062723794021740780490040102754539732115991727503237325351331953117311523674093019680487547783677292108684534890329164615748468595773366964995314914092637664199785175683932551700858617051989973231899133089583745462481343993974237694054440583398464190305151577946160788405267230979667966908309919587320153273083180364240951155275841379066238002327901495239346184351880524337908787174560765954064694175851751543854098090188391719231583925553636541360900130501804323849808473148137469374103490017174418798798107997046781599441740580444657492170423801982392800381123150350751292832376791516968845273388032327848245908414906421451740784482064152907179006521082377956939805592795975110897634966471395547982008195892646611693463451787214320078022387385122350982034707786666193711036939130276135438551468980123542401754965268255953969979534175659744307457056762601664022248102309245223226378816958600297248079726264865352835218150270446656324410429722959058056799789142838680266105916673645478514585044452504437867775391836152973927260258738566588960957191411726288759359814414271058891657263716117062469384973978268435301870353104772781129490722195653903178022891089249579928758609791898461984567374124651724496386320078949607199684975206776743099635541577326884313806447058231343695716875096507377894028680631425654917022292353441561009210673089330746501384196800577534797948314885657149285965586620737460707632182082612675486229729433608125646708067891285461777035352369722989522389927588599660844495357391083662619666385924030507842584331940581427503841945892529551683462139893435877744948045856821156195847362809867374809143621392375692475273483223485132335692889462552473089831275828425657852901346858634376718904957016143685469741505611526925102105428161245638871791215963234192993234888842049550326404321234658434883415155623955824740618253781850243955100689459747464300210402712071453259075677967765445777112523563907055185621411148831584821826689290894774310552947704165572547923339812297969904673533414924873964153106804079986398417098520675373182890167421506190644553433130845045482835342943324896640520781131504826227378332592085836947316504926926760650806144040464284762054465846957923495525337218990773316671804079456097581350043981952858915822588632090258101348060073679696882272865621161840468324166644311367614315804992868925434889665721300884274132764207576952000560577153689034323248514682564955933250334490250990361606228176036998270251318586820273519895431659431940173664374985880955579545105587843644368341650741354027911840334007452630514651519184824540052912363180758299755010711063836190433436859495048553728535843988418553854118768339223579594844188100220278059101440557034605817737439206793757146010303984178565582111082090234342401431033196963242982082912912924135054520918307686735655761367979491492090073225495560666362812158537290900050267533793009078280286213861282027471699519197591032822456218190442483776430940272572021941361132932523684101844007578153983446168279353048027640364583462498345324228428722173576190319352213314163818269287832919548452216705574628149773181366375090419175268444975571136694349998721058939637161021596813914761416803377447626986978901297388396046859159803239652871343043428817541952009524257794560756678334695233489681380016892037599815251019560703527202679010250558941325543965151348779064774237395611580272526945220730431316600627327990906198919604630470276553159061631892987035385654041329578962970884278646644113517808923274060539408473127224464826293518939526679451243575907267026920962599528372630746120702282584288078783087732494087240020434394101176944057864938835881294941501728106923902658365379881135794688520767193409617405199054556038862881753647491808107762367112295702991953749813788422636471766277121187504135557917454438933819709750129750606962241382329331645257674402658642686336778629759491445373050974379400848184038872682100463739965014062276127942137890921847065965222231704517189811755020683562047314916240929705090687987003871630881128135619497347806777053982245835187392619812135761239959789793876173756666775393632088435418573709471660041280647606058599201934304535316209861744963279816466389833221225973984430400334778748909453837086816569699964886910928527034165692262212486456596157134383365081083933184363129304697081300965885680438736560161367970250359066308227386426133437031320159389162236468025294132625536310160242477130254996214800812754600780508982123777516047734964344694886947690324361374610186560750525827057961403309473249475356855469869471723855336618224654812416394329647456177629462710586094092035296405821996686674222014524447232985281588863329170117219609533522550334360596380615282839151360968938542812281345043049579658119399689640207205985399253426417400448378245760320613731282324323237120067969120760747547847667851505260627081626436024209843709743927092849479540901418300709384741578630466942768171614083740620723626782259922715896841921355837821971582467216693923083448817429113241880344057077900683237396987352192815569980126986554941540409936646087372913932248668780309396912114807254761590435153994745707922359721089733107314771136627894445855402112451225102236933965047361448745161764981874998356290955749562478048541087630056179774659744823872646613443461931314686062706094132530192959694301948076205055895601900319295694308874830149272296150234491423837232972794693102175569367007756272782049235070111467347313047486215673784183626877418360327844988586198631741278844144019762418781276569329635357151449895874491304579126537388721075393991970812708504678898919129482270923098798945164762353864259264969670298572669437076045660311240886392420885880817996166908739956063540907460359416946379397567541810692231153121282440604359759278538743763797185376367540864281639838969327051002092236945550183520452034753158196119267092683796365358149422868330340110174513480195693771194411651401371538318403218366509829511396520214027706706396624878782126704534137007849735391980554525623303859232662684133894422300034451184929348054796909847490801200820272493609442244875534622845021996608788764885887538401537500005675963991275406703098519457041487193450709513375583410083946671626031833038825768248707555186443592639457318535360731296817795408676340609469297748653866958318218625013553216262079383111918646517439174880487513835096316210246019347355033748354373367176240150035517667134592021503991114519986016852444808623265361871235995543654143104049145051640893881012811759616570468879634248027593272396476434409993054934741542226328728255798504221423057306472009230548610151892954578632788279824867527145972897206348827668752597428722637474736271157262735578774154546739084524398609686722510636992117592475616261113441925484216315223531598759785743844127761783288323197135496872363275614969009682727418383516210611992212367411320973713172892144725287398699134747137533727786631551436263266194593170679270750679204004459130298396261916458960664692486386811867621133116198004982084954652610810183351158908459954606740354040557650193507673707205255053966963749564252810185533324962252055044486767612676781054633483802873473654091819065824784366745501069593149048243111405057562652014048421144170297016688809235668979710729836139907705539918608950895421949804124601064672113006988599174913319747390649653664047514113406101444203716040095690463498754780292852838539372887751823827299432694524400758504707665668504509229366049373373063084399032564978105191410677683302492203142889828352866074082091834303251225338067655438959282423300132830378179230114220703916588224948786660388054284076824129099554164589058657260759402854615577704704791414210369629781107902191081600224010127082181010786180674459252205430630759806271624157991826223096267774355774913556632800183794684306764141950645626469249939853988706085319201336407933292754125179753858293872428137836034868815296609803790532902447795971518907675971407599404011483108623827813366640713055967680753742675493404601255055850223397985682838382290349623882369251347961875798803108628379270198477293065055472672644478133393106326653132909175500805748303346322230190085038661227481238264579713792166765144089969492694659737420244044614445018187662662430581734979478526265856898991720988916356780083795985673308018244931452547306203431591440112565306803859379843145902319788779366419680339531002753755968912193028634055975899789933756108977417183454293317852030867455053251984970633143787132265998910530569170909436427359644045583865481217702551855432031380833738057623157794094443711824301894553596525523886002411288560627453599851534362335680094156496111288580166902049613494017972017817094232059701791737684466547194131586290878624760814972898682532346933059083754227911565592239287626535291803727837195624291258209520413832707690788185023419999927594959129141976984287986373217027147179408168335947890800029295205336948243657812756419783549312276006221078806230510984917869159072674752170247126803545624000809388355391113248084247094638678270895821464992786294580497677728281821601031910417430686168651872708827497975265963215188244067947771128968778760984292556282093370886899549401446603159027461160421206681125586503459120357770849685852408447535334665567944270283567417944156783173561519827526526801886416360147562608177642068450177500884478645462941223286757380304368362021263353039331747307085740528981104634749898097432539261788450402886420843779158217836366187675186386334468167372380200490366011339731340846259499694081096743955996685581283370827203203661641971463184731115747559938078607986999520647234199823212590754643322485457332135037918525329577894334682567898752828782936113454993359387619163240761190466362152990305874058367291572673327928702757973240625284071703684791697475289800707656396756074683759496962720070154162902465438701493604251684364294226012129976428278951306458282345980608057538556838855487586032383836727335133281371561700095968045733274009902413341064504249435187239612839226980295376074832010489330827221241525526952975370434530170911362913619301934744964108792125972920596763881777905362911717841011126536379806978352574679239797840412444924566956570987950473958605561052496282248947278750616284171353685907990784089809696581081451664530713609734201504500276715806651843655389491984451968044329599534947329785005455008378731506143549436573388293037170433641675188020230569603035522796599693262084002765498408638684348586120077007892369797995537187149525114937799404513362833898549425882573789036596975639901618398942625905498895343010306470343619742589400606191253825486828732336162367068825005093134921662060705107276905450025454541827987137507003484429768182856875075834200021090088927246893200332095026361728160281453003750000633171504661926795398920677593757504473913715634810276425434793914665610284266744681707569378347485681901501564421365178521251017008407651862631649171088093834108313491654301481201535304651141841136842634941416211164439340610519761922811070563112528936506301982376964653922490543441376589724043739193117598991344245503956167347930051544875994609671796283226357366349366845544037037492668577053199699390559876993213859285696679449871109369853244477030836490832430126361174187103094775409177961854809452722272608117803829305948790077812171267586505510639109164165574464216491131423702136914714754903876495297633795207113298543906298473827411949103892879202702003579809830513221828259099185767874790424505659332433854898044302612174194740001138680826313260145599148738498060368994309755573852734985966129213641530930966298419720807421777363309433460483420363632585187868307225694715253789865334032826798606251740143153273183890182453875405148016637024973255804813624679615876177802589197333788709273009067275684494286341686456623001264271354442570410623748576705746028181277980131826631310270795438284551012843215769352241602907315453447790583141479224790065204519390883495963545163578774760368413910225208681960408568547439804699565408308781258432009136924869690799152381761715035342911167125936516943625048153266575038286933370274141698204843023063172771677937672672444674075594146302411192230503535041311535402292341297510477603923706098150345568472206226085617013344134495886220450897981226772835002118148450123215495103504406867609639916930628409309154451190333575118184999470474595308224550815769119679114132658911614421693454546396024870809065301104059977655675787032175785389233039560208393500021605790347558673205732592204240260604518605668610683357520230680073174754554747044022663231916248027814197526670757139837717066373301015899382447217967913819254718239848530121582522621071002206923303819258644575433765499991260045361748589012145313476703584838710407411329484073506542499053341859386631398995302505723940176134466151440228954749616402329377891043205713664348004908331189030035556827166632284934631936713691794920419300527551649782320575533543945632190853219618530686114665387041888193428581243933741427567844482661077211971066645738382718796700593499063168855472590748173251385153731308499428318596440184663898962138122956335627647873304473086669108066354091812676072761947269756475371737735660439656767364580549786336418679583979157247642792433997726417800136171021074349945177792629187727218949929274506136101061019315051743695496778112036223494552133344436272126930995747790201615608345298932753622859837178114588680331863077180412110663864176258834861304149289972049880538566569904889226698336317149589563627804652422177945174557082614067545440450069102075643850060349765061235121936048158470278815976834981508305145694558567638276283985678199100032690446702735815800952984390192790524445721956260192522098160324866716751419286971548627981682107457716041420693853651251252088297437229168385820463409698396904940448331122703882510522289449875327438143657846010404407062130705560266935207658521235705518071737179919856075440573914203198093946094904090739111538207090174681364653450476146240922181635000930789172104125214661733453122836579848525534896345294559088410481732588294597043522201545180701343633606357124561508170703131938177329611706924724183153151230452254774197281859396063047764563111057755860771218956616423551773137841612928030796328501123059220048867774962495441718300761297973441234509870165183651445905777178531520761834736891781705207933469855662751212036905356382828508930190839339135317567682015640181747958178896913706329300525661462396421866726248253622371115320995976152311685620560751535045960611778993738416301255289134080460194612115068279334696542490203521637493015576210559125254427024598081073888536331521035817758288224765543851912184387735005177032495472726636951736930963554953138270546411235333994710924962603053540328566427383859774638731417732002719311402012330958130537443666048233970507344664632457635744467838730927022611568566320097922958417359113309469919359754424263882216069603597383938714632093148179874635352125826036403848390939352419511752343158906386489935421327646253154084254909593054383849048128852556755718682835866426490747903093805972106284036795576390248022789411923301702741409273485984245809506239053015084184853168377178381689365865246606587510350082804740310922705044455775503455311150652029259460280330477911297483347960501458618376098005358153881375571961840897424459227562604322738536009125846447509896486873825036318361214036578930645546498900409507585368812062535926260155328517722087822980727509783138817662483691738077463653964860867185802438688426508558199882977377739214477699690599836262703885309622820648135771420259302227480498605157491016558143171368431911990254037948761202792363484491237552273046598853266429332861563445842214524591309367424869211971732415506551359369813400090212894425207862874852175363817646942754029350411373659769258547244516062057097724286071690505307636110188051854338767227768982177650638656774053391241660736211301389915220168989361607753478224290528871697659394606300188754781580767252660059420006180090984556224343084930605279100391304858971407653112453096142280939409546744254090172161397064373013277296414749351602283472395469844523120616581446224134942981804415891001800495729516456934692354861291321799564652916371340940126554089247393187830728614912580336880145651794020153107555535482918902422916276352647747934490560618713319598194782000274028189552910132185910101744855286510171543176266071199556308407509342399110963015950373869460106191030299558934731496045569769089179728038323006124974584493264260508731302105347244249151167756351325575490805923932986263579789782184132912771692265874826642957120142138242462647901378675448909881453232653285099416149610378282757331365530313327144782814155605883163930073874466094827929512750466994820592017598843256307810713344275789718167634620610320646277716018030524433768028965654228654627056922193183396482611781173840692017927732320623412753455722228788936213921715980418686061032233896753746521084655215875473068877535257161538454628410590708204116912699968319172987735750642716651768179314172541389323751345459092232453288698933061021553021208742738843979520108391690595158987604694271082653185644800754839849271640367040394644095384231005471037663233129370019686546695897313217889999331160541715957267100593500062815833850283992469386364857133869115642161480511045462626243975201705344648014775536796297466045134797993714901632028549987744935534121782969058398824073899446438885158680111130977028833238331535152347048284875709539255022249625313417207229438909417371801766835381546387153505854846645915842335920762412633863307296313429816801502572511103290896120582280280358313547201774425543290598686049908032069068534226976906087839726353751728529096111316511109563545456651435930526395153034030875957938047921458339674888713107209217727628387826969427193449886709360529962377910784057657437312302940938636990524909824907354669330592417046580009782709930180514472772987343678119586445416671141030872726608521472671998779190103374252938353813673559951660739348418534766320775817650279826239609195455225687111932612116499610124569375833596254977505823237409730598952817786478218523681348473402123975304057721450706559397887091599900316676038611391027603489785673415949729411306757827618883812404893619413011544910376932123504199778197056719867162726491203127921002988631332798378551783493310784920493429520307362000394920052518248160324590456505753570651905650282622217368790127247525394041865441643023442915551142278742754512945546615347369353132741264094528968327529884731784110093924272076104736856155327677207559193234562897058470800728439071953998346675377853255253878008036993643814364926712400711176370602976152244415220431614656377361985728862588875940158889695407518463039830654579022670823576652527871488163006249053169263493631834760097594652874645452286434748157378610334792067211851747313931763325644187363954230328851035497980389828991527061238921452109607952045140134910551959676565395573147256034784551411808630471868944028943747409330626040144105982350859239951918855100057040749457218826730407990941652045122453141884520162064337263131166172303626223552499159632576952763177541147310351547112003508118753552152936074124265302853872309917494859154012164522435741528543401261259484162157147500399878924072642985126528628624889422502014697430436381686168376363092303126184261543716102679871434017087836883683698811853453431069437666422035261985903248645883298340449020159702036949215604155953612971957692989801881935264732308221159791649029409182477155170496883887215896217946711697286842617804628040650699588378667252622170559229238452104049781986129402982206763342399884874980377879179607492410359192601010419808378801202097922144221962646002734573185217722528766781509017886339040414150360477861540545375320081671710251272145875718140670239297977398465699085586579468446373074981051637574338431440120581670842880891541180189998566287341859224849804323447581352749335860305385238957029598424650289228197456518451701665138188707312498592185053383069163506092634246278593198803335082637538649328607446496933186054016404118157369374975677613707684221611815747224474465526349152994693773286018220061606255096108355349489478113175795606835563592265269900042774072380977344528006406825957260430427114065593021791201439873088540319185260495863467009717217060646146180069978368603566875956500603884479355957576782598287905289613818010792032669491975543324100704497058136819063945175762546784319164756737443817919702918571919610552195202913835818982544411429322933667049836529220890510220323092639791067178701231635855496807834253815200677453513475398569008735497554460257946826871627551442865630519186420040701843845574532303447856164667067396588096380823297906894759897506499689604492505507776545109401450596111310327455945958766097267120338689910497463325944726940044181237089468334128866161923639693302380354646246708603967701071132122842129804593092860671856806845566630685283090468098645092148672015654585452609600993944916337948157650976378465079661960850072280111218317095520482951842821911918171785002675069700439972263154782465404247893564042278135350844832301327423511098916742335855060360403548558984857455242798514306708067360795892886916146050924312927832787506263371401640831075908081461300938425537265977227129958801645123431012303514080965882331900038829740120643343783440781809739574770825354175520163535014607754557700647876485201787321369312807020320850866712874156637135536480411095066086540185157605039746246500635043500969902801753863398673607234324964141067857834842172286083907365817310433585481790679597789910131430334344372666994266052859983581586845919036921317471592442560477378674946819246949708818809041241525217395723675046561481751359701266563138653962915691157630301518301381261176722339896182027920249724365429353475093512349588622633766297506073973753904844260542317132756943644184907453691435960391533142968871074583160161952613585512669306714894037909847848238934383474792716650033630700591331698981509972167059331093432512192936298200523294771913401524318993588908611786864104289027818051066495568966561865293570102900925732483341660295308416266446535208070481946370811469227844123922814181828082443797704017699020239342355572231076532278598401965583002146077763028788311532789714296799816450357113361029350811045775292658837767151552233301091293384949306668264484528607735707433250216405230909577810824159599171833197383911233192385889481639706629753096672859379570884257160276590367570473747573833839407477921564363017269287375387275586145190646712776079782462875777675048576056661724086861303413906150559069334372428775879989195813955133797282695046811562634566315518557922471968321343891893187968681816599804115356244463991225368980913718516584375321539240207570821098373100722831090925354768372450259501831102722347809624402231340002861144266697807130041900976316393135328136674209082010416277604254110774604192913284006771065738796774588704246263049740132319763055842850338354914501734383629930038733580947081946556829721351095556965332519840550662861215566671375071735907826266666886596221480819089007405154879605808153680304675690716221866185894822698417938169101181355202644898272598377461686449010069281395819982640888109878857940751204805732091990088362805446549785221830274437669923900726262677846049902415304231973814253269071556025118722089379635718720028565524138284797301099682561778875862823377724582593806421894821482255966418975984030141968981666494763799005629889531477339326848381019007774780097834016941340956085618331909263605231766489743223052723004678141272772406064907503916677657568078672180035132498114021631642292314550066891308834798698803985075878549897762026541039291002905348514300355946056335971258757475345686430218899398294552025134419516494128655627278528284308202297197005892964889759295256095213952561082162374829137760838831951871498812268904862215137906037953935074607805774553165223665409480587188101168238114862918629083557473955608893893008968080498249302250871178691154086534163018325594043741026802577359237119009519385548963622270207961960831780146013121141292816966352097561707806459321204231901763076479407057354244036628238475132629007202073254251703781585642689715854835612010472084137309653184249838141684304308304553132038276536606317824863734116940561022617488654591897484889454913756568230787248146917308629527443159706013585983252099134307576746308350196704595986341963687309595640955939939624690080356892992671299335374919213477677895646476815448467225838945971599797954676981089193033024221291156024340708837157458353371012512083463721799341547022687854760953908899185684833403515981408993868215214745332671147461170862301680664199986157834382960655297386521852713575658026510274039713238904471304299897336462827860846716613175074779092358985178431840448456015398764216176790170884480753187982488526685979373832793204015966802939184613189181846924634521018215003125688927595338332639209101636170495177585940095616180408632748043148526376647842283524288818229676425628826013573081594997306978479112680615509938019205117316034877484628340099762679141389523092489503846952010665500914396003408237931938074737263251909644933041189154062900682088847960391788715771958289324755279178694917904181877784354352073369291883631002698978438273535721006932214542618246002680050962663811502883829005616681182834975648255625250457004728983210383780781784663128968020388813969460391038137834211819307431413296260174857511151491267824860055543492070144752947711335671071018571730453691144182174755556265597887857949057430456373342121136412731432822088068276275122694215576024531430984797948158382625908738415480448430226612476719785088796944598238737342901160721262263951976790694047588143128906906658252634409914135132253943985419635829673483819210523168842184261709537760082050304342847898758165388594698304555225328284106872718617556711299711657361712583384312743091152835498958340342584021887632733651392059747522495250608839389857523828534424938498145174930484918135071188291835899203873187639391850357773190427805104982978707329615258740328855474102065334148577659968964335861979259847374756572399236690211763538436945240917070933888007009232326452230441580510578514353030633701822921280277842385557240245299340002095096693076244802278322211515699860331950509065662607436608391444229145414640918379532169027801570369431391207020740119607577772868845345221531305897373070010452538567680679665119829321064220277831555634687030854779877052902744696561308288956029167381498382902485379792527618966655847236152176081197745454582863224355483501053949805348822062643962194072864339328441182988632392070973242560340739278811013891682454686360412862411564233827397885172426791450029307973802591813915190457693710448948543210139790545095349757953597617380897304400996844173618120469525948740245596282236443248837731308017377437271248286099122375208267565984143349279979615016044449905065333275722192418756164441227500493443300328517484481904723304354702792288990895875448516632162482430600207928529221833242118456259425590274038501485718824075946837095761518061524350288852716602800758575691567752185888407314675924935948845844896363611508761385571242352006917273560941931553425327372212558187364343651536801321351391175492364511944137750801360788389202798277049634465997826160471019914544188734972209195004624323973315637568523767011276255780456505111811153876646680921025777977619046817991624644185259076028243349119171179882188813644820120035975360419314952768968036261898493121818887622990614973978122223702318618422189683231385664654428825236166566778611498678512754582748201282533002646153668805892845884078799052661826248359214145608490807889096537049248205375776673061732850487082691750921778893481237490194782470659411307409659779013559100209708280796890703964583571141332248630426273277872592274223467688935387525704582086206175375311771738523184173536615862396999146222043083996539194491256410173917636137383790481759168975008509642603125964580240865262829382120833039690180888367019980261709600669006125429388298838164915706272721177720773635094345615452805669603411862880493473184029817326614295685038804181218666262182152970362148673817789826681096201123996197707752925147595737356178499588559180207078830663635269128333062520889943885152254010041741819509390218953977612833175548042580516853737956024549303967184814221243376828801083918777909485752490713856724857478159191217405539994390055390202361566473500098510247064789510533645185505761269647655798392117665359266593054197555947505125667985214192640008289801802580968503393984605064086814990631871070895860686564701474454252081599065972082144397804739664496128069658399331239500296303766147520833172084723794148753027687157725384627753238205412029063171997397995707508056800705278327446555168486663870496674534977791411325468019546529583268825468224500064963740065817341031187610298830356415339460904058718444676621836192945756032318350473214538171600847255290430459234798925697957550278374727185078701654178988645289509191057134032718422973032472677797618116403196295387130912355556768580996179853054095145338692629486246307506901768522227933370829256378862624611011539150484877820358892529638685799976389873938952870763024059250130710728449549069404726774546353936186750567520361924235090774006016682273080931267332729191725003655128814774622654016175902821280463889412649189255770736221104947625401325390820790013291822632733644376177734834266336714393394020273505602930504313347810742016161097113264403264042932138730895619325934334004940578499630643915818869066580882854343987888216323435140679682988926596645682887128096156562630969797616548136452430875270228296123687006279787893625267906203009484419616569326009031078650794327705608666987617368582149061745183382210050624031269526199981142724384690224624175343260600918822500036905763508363969846422320530908383101483275262149587674145285002475598746440588252585021273066711636159139624266097134203440930768316870410614543842767636897219473358404605858925608617661572608330452000687601230346277762398131816562652035267392788215449744461192143091581418922982088541333215767883122807446804809358911040823077347762072148159664520395051012300798587022504675990160789258503775756744229494475009655558083073205971170269420241700873275804983142965225262586080015598969941587527754153807774473925778097900686081623945491998191379401762672044290265330239832378488904992647797073030779216889191945115400376098252480008065021407036353877098675662635323083809660971797697302595693070586288918191284491483140496147834299652357544692816181332555012058341625314305724802228201000623544279379731485907532191785116764133108377269857371007605202680291828524130783630673712232249876467321273060849615387190477517635414953894699809494102093514891139210972430513363388693983848938331198291860879169413408466089018929827747468422095669412298237582410377016600349665239577987622815133464757991694991930685933647808048191496555462724877405093466418993294455880576358830851728695262138519219791865098662310297435464360274816068246382933666880268219426615158926102626730912794552816038415065404451655052090755671228374133399908388055270399355663789214757076868115496512009354491668497327535999872270675997842895261089968121150439906841658203662958816146786346262077682391887616480072600568312275515020737461641358336258463751515101474109017970530985806094432680879551905941854683197704382413353688013942783237860073946545192282269656282597971168723457285922427647629941209144844856450173152210782000868878041653588752778735313443600205627977721141331436878452603905153527132435573307032764480977503279080333649146071462516805700234342275975403649138405453312430293105522224383019730608853033285324694413494330005103489200963339705856425188083371541074027892974451784553631801393130955629725726296176794210720510339763464347638964126749639912536529114398403182508303133511892070223558951078104777394674047224387239481129837332759906262086037543446160996862370133072470750870855334379990698404941769772116235265874320714538295773757453475000859066414881245613085405907210786236768367963212597329756680352254652781647633411388335141198398900378868373968104582918539125731622783877615992567515769775410067708702535174232294534883260155487455300424226654923733207008332278825851205106119510243960620931627066628944106743677161679748681213995706525634020296086114158158217046817972634099163929824431062125219005331786211588728629166416915180339811927816991336912425001593790756847706769868872628221905495532385726031207621223065190430642951917843316072917518546726839002139321476918945191812681816967859657383626720200843107022570822419236380501820884820645242300009455582443632544743346911407412078446147633531316932994367098727716966856146773454153696429362869942567924348731923400343405117672733677889298281729974679024219643087920680027460486986367161810374522586047124518066563802273253383553560433869825147509443873872826315765915098741120349875908550009947585466295242401564192412913467788925498275131010083993072132263799485949729134813651627180566310185304263172359785470785785992822206434803956812638043341937719182147078657289260124422894041125922043497797967628248883081996980347827786459339977190280222724628620465497861497831377027597216524878432475823542944582068728321562669286783795173167241398291375082367816405100909375176315105504626736400732524152197485150909836241937144150272312737412400648372793288714183150798950994327299445157103597957997641210975624720967728900548147422798101674757419387974767414217884864064129548916456388127110470484714673415064351850296893695591748729252874699196977023674627331796605214952020687353191570932185994281881925782309512816359016926626590780267867964029867157459734996838550009425256864461974958569713078933992802928325741482339998910715014908976962094806803013063369443854631404986961253459480621876432757393969681947742908006614482139841426365924259223723224092621283451936733376752827992382753820756699283694266822919005228340457520569752858077235193410460853555288722788066712260242555781327182899740639939090409670847712249695819508605516454530275353778680734450880592514617684390698997923484028525485628578967581784367597298714139264073282592311787783242360908363408024590308495327233203590276244416585226662144903550062814742197427787067048494647407631536981505086970463755660762027580581741144485498143938180547543371956474450191230708026453882638340951558640274579207409438769252341810287371699439299849923197561908386260158821648509418001286670737131296920916289976795334961697907992833286756941926620174045441393513785273659961647017621448234265314851608197485160522178395693774073639896532801630646216832744204061486048689776847722381297864679928006038677468261012657142785812097074144954754452397067097361450905569972236814043996779756916238753993538681377348227241907335560736525993736179456003817271355274699941631733528492828962592674167829522912901370387293611203010645729565880562721049295026794782876520124671750405552007838788570102168564486196940505284675598567273991246025199786506263637138117196544858400205709047385713427781428743237225637161945791288745266662498169849778693109256005817167432559627334931049842915333975931780622868228531018410611180588900589700877725589567820353505460503830479091531086150756180189944642836015016396939171880476911894288136765135579767315124542371503884640472992703948925475923828125653740038210593642280613666098360370568694725477732259277377153491367935294256880836789322874788634908201495486231514192047592659475310380317085280775813983003956821366143014639447177040531070686126704281479733718008599793912775712632556812518878369088085213940194330256711643463273077413853551037940499746997204290181391489657711467304161974720176008168427194354936474121801532107819850506329081726162350883568563609752763105076409600696304952470714327054295860161403845326697310210013767643824220516771400651061327825162993085106812454158336104921858448235908443123669343114930078086667232354847569641790804814129892788107491341185791027096371757553526483108606155335793694362858524430586461136560241714177654275228301208563581155696130972519658168449816020874723559875899669287397367768422446317407695500273659024707263002599167274915641291168872967713129696080100641075221104744510135264929947056019683860933614623242229411864853391808686744245961330319091028047320951691567566131752492672116107624748512711392325158206279983200924627830840427655939147899498590164647436866307838931860870451179608713819465190579807965026277996117438291460527497219472461157238662051084981826049048111432049619166406295130771691298502081815834668248764569087137517223379424855665949010487786238816803506684938279721331071828263882286618804551340845262853506842139865724052613810912050673399662356268939325545463687700695457122032787993535928261744168528486247821987976760632231331743916857855599976650356952346308097208107030477221412357881161382208870933430169103482858613668833320584760459020107591001957808918878698926584457099273997468753668953989627973551780970640298023715405258381131572265234410133231179178744032247554861460799592728364156553809630152294299442917350997830688916674445707182620666577165919733003641042726458914985057572397242635615891827133926516261418517435445546246610776867158460412624236128776280736618898621061756255426986900518788150819845276009590531186819760781876696422352404398417692399243436095384237405439394609585356592253260966226035896348164246916230231363941206189725138955868700162300974830024205526860517768395715178169601946661310764083462785244040139500963714599486891129153397235638938219664335096595636656642045867129939922899970824733714935919924453665939824843717104417215697215981683488706352856173853592762864677596364567568648977235284109510044228291948205128266225645582093411294537914941806325621231791724669631150472343954300828047239895299131477910294160872834747252286845044780061191868768431437329823618289101453546655572297172367053064306846861254543693957091364508668036293827778660686591385823580760076235177167787498858087121790978331433617156822202778888262125077395279948582706509731837944746338793898186259865218426175956044693990669556760756000557909321716090377929782640861789280134948519886229669792329588269732996757662497769262487330043368074278834012632436857466947384098779326788566278550635458661976851120559624363873215395883074660404364897546882732718265446775617063416097293931455212891555511899905991996314589684764141108604610487668901398493916441820458339924323699486849397237742073614852940792373437497385319468262773604197414923406257291742717175362798569462807105254865001131634052620735594620636195034842144079644400183808134195664611707894551267917911248092447738840299518576299173097892465409975154942252407654462154334280628784557106651842028156927819283449269653163333726908765870545106137264310327979381165533923273031533606183901414763011166819264919708364449434773443719828835203374393286247673487921064299768053325924389414390545368419626928745522298512295092294106951697177741046214562409811757485067285504999605005684004846527002750906765804783679106951253366865315290667032139108986263927206581600680074353292639253822627956271465404495337070218898018252477544608907434678935610066401255014487209778640690906204887393398481301814148611868913517127507784982796616028872576528359614794152295360243923814891680975600571283653496720122855208764715406343929118515939854501469889097699251343314718782528967209772896727805127806663989945366710948344648211861058704597891722440873272175500364241315299272934900027958513990254227562862663704018093171761679302305856352569214274012654948247677008421869571260018138835935366822744190837104966222710870704167845036364019392139382297181420796839680478165494744426609375877699814094104406808515639089052512946596952689214629250956007483754599654994444447579845205595221149309853788937204464117120332708562803103408674382029294315531349443984119381463594297335088430395109190637771129213804422936560604469627493690963270017038279130802178817660325764092247691567165449814057483628792682295931609184316364393196250730103013611365817764248432385748796696312730333521234930663303044160097860312989009380853887470922898885197491629224990087991500876267070867572367503588810922072937786351656576163689044790292866986899330666676994108639828454777699454203360330403957444115488571135252393530063564707045013876117537775838365241182033108055944556440605897555549772956477478888100432912343249093040061274049287662912654590045999367069696642158254500150123896941807535021564111105358811982558887026893617681464846555784598226212669058753486005867926949427924403013823860521388349010738402854541856855890367453022752046427687399184833293257974901724857099150967559827309506813580985120317594750936611688336489230369440599021769502089486689052712241710867009032623642818005677200728938226477358098634428774930308979808274943966238810511384249398884203307190288802003561004078805102704158656313054978400344757965305024646630438880857263125704500561132260106345535746364997063527196115054031801773190872955272267982946617656744266481057690350488285098520532814385673446813372915421642646644840143893946047663236771803031618620884225737570912275718486280694678115857267058164997051355224679622490023275142193661487168257375234160208191113554727995745462084809891101789876189987231321179849654333444686013159973246481254281237157669558676812662025953142933404497096703532088099335231459641107437453085056792638511032038125695675991200520810383513200963359281461412119712500261504591533800485061809954941326290217786613400546490547655352527903833698578387853586310889262469163157298953138448301963443508919826198013309747409051556988261110946146136304968835717091386659594942159040880968872083528951514774494038635995795271828202083787174092167997740777703283549022707124163042244795827777508960238798477737697118097505881706918043524910984570328461834677162496761024047114743461727169776718901574338602991652074888304878863326461728450647108970861410635452399140867712099940611066408809402020392423979421654039221651706617184517868544666089784396020874951275664576374089960088997085161003916294581036452588951995374485054699237931081606373513025217899310425510563754538673150412998900786798980064764497535837874558896075677996446461901652807625482888579575018057677117429298085147440666317423699133466589351370213781560758582953593564658529324252247096618944565162225884595759011817047520874835220481927406407930682344757886570730698428004481021143259083167393783232371588086904662603390026389938311451540006391905024179534116563168747790504492913881989224394087804943068839663654148011457191067458017269368861167229214446660843760603339902409726630119275607170855831398745711926200356154908178444425600716094014748796107167266240830151275132553430629019674464567147024385285115995505744627411076593407225184365575334216965143831021879055476730983286105574397578582859571355648115819087018156036652780671464470449042591229145517735339585021965995783370742997121896540894535461491388798119882678495805170073944678611586312314704316038153892105257076804517234663158689221901742868073611369678308079255743259235876531878565816122923283365992176906133260147507477264009274481698767305514205137440542213787258236967420803728777934184035934178816207009070040238864684645059269155286155663436657138511259553686557851590513512498066732818934274731515374962079435020348214343227007524863384673193948734759030802839337525960049560848503407893421334414008404874838228816221208867334278015848896675664874830091022576550963564055669095100685793587966566470485784256040994856844013030365290093350513294561439690648035357580050827589419036606664824823444639671584285281769918483243355594706623197024857518650724223098870770386170834226125401170605023676909064358208166040165144029935208166451393162121779290636333463386645124549277514403487660285943978984504489379354193775882294167355201499359449345377774554677772116376498159743857573392771817818965919001607532887636823208741069750194291380528718100059058760819012577890971135141895189670886154094301861026380959055427456832822555275073478329689832348492215347821807411881239347648007124396674591216676553390533328750738791506372501562193630288327643713312068718827096983917516580596333854865131391009540782765912284508994440177615493246304142249095830889253268728313451198385824540306621780445750600631011560194795744893276738264785909995810677891944415909187021116889060200983166285790575330988785789621869774144784772206680606040129121117587666784745219332466133806162077714747231729807495503208475635323760196878391583884929577929053149132730832707932954649549138241296236881822403032238062938645382708624277963354400473171005519440569200939529087946647945739410106275736663607540755922321130966829171569407248511157174113680143028723719442107501205286805814429275293210089197435394841862886200366231200906538155702087042368871136235835532233206151511389187044630975631913190248167477307031061330962996370480675245862553426648642544951679587305408009829165814360580270780843316280632335346397726959528990384679816431543626719735520234290412464032331361830714984397608563332854515076639996943929853966556973820109471241102242994909743977392769883977121199437578633129442766729167023345429268161118452548640711445345923089256943911534898973793837433968099299319101392954331661485775548427627371586896289672437006167970863697476916137383786994988316217582339221736613107431725811711413255474154160463475534976069023972771204618315457297877511066957989329806506735364126895731002847815478788407700489385181353906754368016085597917824624914263343516986807413034764465577256906416176841820165236144814738952541229838161504025977033769303372774694720754438879685673926872296122832684355731935130431794557655158101746362545477186722491824371930686270961472193601140019571431286722189078107785283382152259299086519669619170883348910292132471502484244034014110691002160440067097077161123487462014209639192086149369068038022962477319520417714571632818491636654856115446194836556031447354687187811473836351373937917310645231314838404857025324062488665321893150154282239216548345125930826208647965008632462673159270201499460353444638178898036644303234339331180739599979060507226731821725724527669996114633880083390885091598997759672649715293535628321482161638416887577449091868629056642662618420837299949083738268632218818567560384603786622086458962112691485895155782829784534629885199043675128496257744296257113719314161044039574734343660791561651826610397521117361184719437909722286253092787451669449546454967420164020319694421683701197823686705793095013277115846281643274189963999979247597772471206124417921035400382828825869081715769615089209830277929314348230496551825042542821380273246441485019891557487777728251197603142758733530453996921689189225261667757204153442678884091689412185953201846427386674281049600126568350809762903272594258364010885098658448221847712246676695684063806299869506277551971821546838033084583618654062080415649677534245091703372397245132675905433520427415564918818297018542297509945764077279824478159881936099967263854212841909538664763415231545204737951488603040437252775002433882851140514019853791350198094594377056799040965042053735939963302662267351725670579996616043072729335947717413408080809170377276722811131344637313637356101666123963553023651996975348319516838538170507099328331172735176565280798787574737362668713104813688239364998898663968941354288295639292963704563535328907291047234374246844157319261909719534688291213737396645713212074121926195812531348366232944551169878358885741378766222871059806239762029008467683413396513871441536918859039711822943854399195077259638742021859377421590911169874220349199404428892901895785822979662647145175261445195940472330051850285806506366867784083211272180977176280203649226869220986691239543109356000898023234697689616650976367243866990542260035745672012354290716232425311309474582840602897618675305181734199765183301575448353923075766125903203095944118854464974494840216569371504168851354568020822579820902342332313218832358831208930096990976472530315713980854530193891997731050628798117234693135528185695672230656915941431030841548737125333998254216332683445290096556314174034567218835745410163282653699852238528350557909229398049908895213515845122893994877965557440599328945758360862069999862126728373939485492131707645026105866110151705287949758137387826299232210248436811598924904938056271837723607056808406921902194474189974906183821211314534624565269901021982353753926803429392197434376457856514922829430034206892462878295842747932429133073618915265284217038923996005871396509102295774993393271322252648008885858505642557145885754415636592670256294859693576732805131631633550768928004534899793179761903324821745452925202902828064367393466788646857591572761354316075833802247591675656794401279078947380008642106397432196820963084207962180198121470995142927783010483029153960599087097417824032439122250298314664876558768792473241081926177125985352224984063822848857673557486491352266649912403982867636123832794332506062134938518424385959356701147240155805682486316918904686095397283561806740211842764438271806493394161483180520960253747283293641924220912371033629868253125327568461169254394033082577215946651432498702473194160288109201836840484829079837985122672092696925869060977949189993128941093565972154726006797971055242140595620682722852833962901995282677964398780107332938178998814042109440238505636359179939206817299252829677814842472369648889996944460045681292745608787720083752700585402669742936203970506430673114339176707579347503023297145102573983970713422773963063847756656973471908027941567472396307829274495299469269251573704872462875188497539348413885039298318384043489997108149031240805089480418637876356929065622454435807219179581268111137998208265962389632189507811948942429232997235053038152136164038244680118465363917188278603475188010448636624402368701684270129706206550838268443177151741067958595802562844818109679809383160266916221240601288869557879548781079410262752452424008786074047931944300088265879040656318533699921790710276732604287352370019080940616188727133184543370030585186796297247614832897617375964951238955360114714890386956237292748317821160109309841057872543071129306734740855011737056643978567916451485614390606285435596517785851457564360894026963094740959831564223929179942877393836134106611635909021073881589367899951481089618437111970990146379560480448723588198766803758954100987614783431327124106737224918515280571172069509115339090422135029960646367296934107476361660728942006303873945992251441796894460053294750766028716581612852397936254888755765144419719232427841681838217873578182040272555594037293298103064839755941992336846330929794049019095305665616179733733986796770893630786118463119179779333237100062830470080254817976153450723342064376061552791145518608298004809520846318050938151849273150463891443796676086025530671925971366601436371879869990481999628463626442724885035523786168921829545518223984469390100976902779627885577025505719396923685717573492499235787132641138070912577339312176012228756874957189424099116514483412997668322319728332426799260787939994459785451613679535051878744068366465888619062583397226138428200770427864092549729998627669084886144184463243111311067759855400548755013293749751858902295190586362231471717345705692744589176167386295982513659667311507204758089850579641224576157568243318259878383813273791605926561151013063222632831691723268034523441801632058129251669120418682917723192017533208291434709309882794707119908622183528445976100074429828917261276799668530643913264643070597962368656353849135983844328499210579675638884794572581894831714320996182337275771482121069060931833788179797596696145328953784594331348535460621446806843241599385409025022289656536693864590604583947121626188560766135172313571795516311896203190212960214870216327694803351117450218898150596457494759482988002034466162511821021582934051166962093956134291961308016902098113463591388966087458635020059613957742700279456300666898169805291606191330493964374085815929717651997128653635042848826382833778455257080782215978821694457268860304482250005684583646271723953587347102719808008692479902907298925060165160506290805393649087562691629389211735158569595452428455820874376828429264526079857631938849886164785058135539294964901056968293203952375403879118889833992186456327847293811624754233310161154393528644920154064230074532856006675383618369321321548051183441513568239174770177224562333843906687742288425811330645500470011812905168101929304407900003422507504723810393463819251472463280705274566409607767217387218490172849980460161858024908694114976914926840824310317361515340542678379527308352531141272334748917683792486898160442967336927336747773355045940988124608763467080953690607547920595382494778253647413582045839845209692011493899443231449333397331980400959457162770270949730276907742163155514500791139881626640526313654540233837359584585997784344316008642098661241766197958505015191883618845305753099504538544097804857919655529061913464384935010594277367913070202208309721295549550698672411575181117725747171269444123893406245008762429376582240221337481371796389727409380980619137519755904415159547653861226642064314869555262351148411828674014977938872266082172304184628477649086985855563072662624844923490084216897732405783150715385969994640945760193069771273577187499871316119878444279764686109055524432527708993533825796986410068371624890883161928771577738397660704817751184876345163191176035423405923131232475540901662187489657535767051070110808117302505591735419756163328506632545860640011648440245029219843399835900629500619373884004914139948689756268457485559017969750129870772720152804593898602040701830448633963800590954383175397697168165516944308084388649723436540241356206052968637680530671453335497639088316321691021059167849567765934170051335764756190808003078598780919870462851858843362884071247310535727157389601171289439483193849908840079148808018812084161280925230735914389584111084476520456368157060450052642806132964214390673863574169404036780826738649944351452912099296938105813248949543310770871838224707739372208682249660993609367924789411194992587414725768364108895108493115492387896961991945835436285874468732391402264233620828747181718263931892433066043835333212737057354993785782652817860571408258367692613653067831815193677588328391779219832707344920611236779897126058105565737864858784879665024786731319614543150074412288201159952558644316920760367111208709833003262892977851832598588169643836336548830316781460510560346243828930461290120855009436262225271683175274568389494494614446356846315127293068296014512393423546233017752708710415803549804727998247171849821588777073855642356830539786822870214014411011812975513729765954778583652677587474916698559334317687608342219859992903354572464415534002832429111098452271882821849186018728480067205612509008365709606453465439897760306089914984938766188503015414947054366755515006629855212874533263195986488335584205856326080759274945170726679063850393298007659378461667728005075636445357297818722696237721742396999590631343520950641327737582445571743795519572363429602740151836881529751515145611326108688288615064625633779562390042022952977829920277378541479975199234223493620645234861234900036373865521119134119920959762280547890551666074585371169888302778048833870254609876631914943438005492106680163748545751939567500740190132590970875621886407250895473222946026453810683305572483076088840119262448871485846809355370409876114730541245428795442948558780834047714993782108571136637902293480422557619920501479837338872980603764585398042065607864699884640162559334875105054536734982814955726975697807910226723090197115244920966528145866677580781315614540990645671417415273686785333794507682898230292100592936640450501530842285400599015787131500992579023390412995741603321508095478506323241571069350713333652853867001182769174627683517194230428725144612219610771589113608828232318149298564965035189904103373841430805567734550994639489844981238592231018009002118593294046206064673673976111789980873992331484159699596866012440592804918399949696278770518282341995100556357427913795293618414578095128645269533766707396945870678680674468554383569387719787392157869219663055425053793744290644236874566394630777420081849899942308603560250255729528685570421697161992711420015288080279582638778605596018621789096740557782576406872303644295875463818822346593601278870710617022754507690765440041719278810889323040938492035081373370105594063229690142498587909349826688387845562198805507055542458160764298608399490926248981135663285109321559110887658518991984250763223558956918786991318395739723626006572122551157729579625791244112808439836921541351039579093768941859224561883405423835079600710598727363856217507878535540398792715126358563027225202860219753925319764461879214479750005992644384909421083892423461742645952029705184584572152623948232891860570954935039310099404178826700957305850563404149895981440847327240221881864653743079933612436013541283408301707370519037707617308490436700816856908518292546565098589594984990170539281591380407381890734653781234170902124192959870261919415671599703063898299970956838315648803991412877763001309569168841495905851698982260152477967102813743313916876909551030634039219586311798991134431451717207424599512986861975232103959567928110401481851866929893493061293581885592418138044682244285105838444471124845608012195724525188247171993916879316884537938767252462663997970393154602793203366305108024904050253468113094612183699021532070301265559676699363327598877773151307593234481996503285119008195613832196141724007518816927583808147595979658096082718163569468161983026618580496068001786258256828807252094118097229206900118701968831212279788911642354826972198250111903335507234895794957561788026333549715490893386668977069030787074994876454901223759282453029122659716369740884413128208894463286037888707095859428693330242398139251468553396493407895357270676511371442605741044106106016690009403391885540115583214811856660343989843736403620113820469417047752433706061666788405648653298741307184184782123834712438856615763711354997949337158522204634772360303545316585042762945323015728255292851680261305831162286992637616934581485511668637176204733990350594232763873153522660631925178445565549289545245987126349645445255138210533349147761043665274437345345246550511660191279692636181615328158256214014806068587439874259158042610818788123812972774999514634208776602976981813023734606333011626124884325234394060620326112997592455438291399282842550446454248171506743657800138295597390491613844594942357626102423198361579174335351263447559615360679906430563416303967624809240230143470226887953138842711765348654099570363457938985468430289047885811466603971995664922639823024733912540719731552011823467909822840948481208868790310261175128837828037295127826640716763503488476642073750445753408920194742864752244749110760934340104463268845222182930054314930461799759236411179386124284932202526947814256234307294957399405937292727913901016100388789699795361041777185815273996948123477374342686627596013270068447228320868074996870198372132984807824130125034922923454648514946382492884411156623347551827267504100678237153745581643825524862190618476467326657548965524085704636717723522647097744500426904945623868155153875869514402664140247267832035375185788702896146413876225069754455884625758100321849870473348804674146168336457068897188998963902905611590338464868086848247311378755326736953150069690955234260944232876146945907652869925844418700774176708060032090803068975014456940215599479245888830696208900923931392566231350855795026509545722696635470514347775680114567124928429960436698494048156541987527630691612326668948534177136129333283442106599147819637935141739734150883484857607960610928505236559220876359907986019825130275877554961963417749329640752909905690481157513156145537066430915646445287835872940271056617549602056071555310063461616651938030003427543643947874412580453384060839240791437118390300554020106868220360356397302948364935895249825671541165498744886087518744214465908033288961998350764694037747257011685012590942633300054013824104720107048835470393096903524095320173955351356319617330924586240058736079440789206013658505556329713959100128859750695993977363448219431538782534286175536110772903101172062129106252694897111814329778471832193436719628766501820150684909108965030109239979407724037530572390047645659494706047967532704004669887171597366849777822804239321968439741832013642536805407405667817397765007298450507896136957980820184293737396670082781593691906390621297468410934550127561944072950075468440589095690172296385682228461863645645076754884370276326656517007775715377898379328153719191469829550364543894276674600699831856322243424098098325565847307353673216128949439510627889143284553861326749775336449094828962510543326409378753807258324721922279409492007130790683918422380716356172061839586052569910389685964920944784021148651140268431420104255441358390219763878691905439835894074014246365817660230950751911189227753964793659903396553171450280873296251143039979031666166813553443010251630383656892665554685512388742240880475492608251661323052870019612254617618288816509456170238104672595751850767163807680586656132336891968039052615333861176493684775621376734608370411301836404217279960883921787914938971175693802604451428341554854834765758839728769548665607283732283511949794211579902166246461486536420132456702380571404426624053419831189336499418550807275963467520071957136299669994460759911484375796765483259639952842427453683473675831306789550187403246576890584297931286039648819166219033992274251279557025418624563828320621194289568027210930239373387251507798781801549095303093497334120253772899084442235855095905806767729958713887668696769659207008861973755073605728058297146719607505900277886347127393285271074599444091724028764028082667803923573857962431532840788467724894368831254670882355162035725733650445839642430407486779011824149798657331353394545449176200749962764415969518064136246309276872770206213821097815325018669335533872081372172515385718430443518918181551891245041660861959439998286492880349266038854542042610108310701923915345719098101870869789446660654877790223648690021156207537608152467040113376015459443837151429201454848670220196111853246534809703140737144238418024318740797841612724836686676954934252721319212730629627750418468574080425210311262729019269424425900075606964554670135989560652156436283854273350730401634649576348523241383421651905448148372032713097170021703419587397510870518557619959267061087238295210782750135292895814263791643837554787026058061057189320959986517374297512524408542403947382779932744995445681795395894967102515378785863080340750220194142393587758751463042537424552855748490380169307569693161543852042143572081411263087906607148507142586117509571326229070541125537816486583180593533101482102282335461437889775418257768432375794476226660907195897719099217003069092463476606826783447833507655667465484178428314345469631326026831249216155605673314688787333528957931514179792832959885373936381001668012562312468383307287371703690677619994866481668192023626714700119186239974225233672457144826654382593795188517868890022742941862402655964711303145946931904979480124403590126080912037210209659858460377461357479494686549102097503327952746225249997904069377899099927128500210431881056470751105906302346857464235998579590323532902831673119657735854414517448081794192441310108632797596462204276233400984081068869402254795334023414163479468915932277343360288456703789145425036090518680837681339060272370898335702773837454003031596287459792640876192146713768591058678416604502697682806059501830143721011592252690802899330218470662952023641399299143792853827234454705349787119882225000695154907106879406903653577304360052784591746825787915761221657716738344975990018119304675768233564056101921359967026011545304397972018018476333947706758869490717659281083979485035469199168562831651400951542293511975360765168318488309067693227264130118919325367121765531495434818437097426421825624289537820631839446833596129517290181514897544882141101131822029703209495289734845040337931325825943676502763763888719049112161464362208128904713191282553604616473976664903196901932224198692802609769949292620275246591604366410328370488173444188593095350648329321869417852794183452444575381815032253079286148377232821315675482209205592841126457009520391995174385434381583802679979529419614635698726432969255722039084784370407219769116149821890059820971460235241777799593223825741981553928517139439928250714613488148282800870876804667054353191956328472331336970661093476197612367024647291964755019217549603471198914219245459185181420912567590086011667197852692435778971510943308128531513242832805081896506368277361686274922226854323223771687590382438413221254273134558271763639891159021537931080515925257985021052672904034090658508446504317410192241356261845445771723501079566808619430339954558553599882431222167084999143571440788509862086786926234754866261474050047172232196190189339105492267844225408321221493696813693070753575685978020960129004578786313973211100542313895078372010989757947401473354699597897367428979774400737801262406091007990437883972105460218027141947112489587165318915421764807645001045600148448569532008270551703854807695714730999813740163800269215345725250830765862071287547952830504104166805502031725683804774495756337317810881081971285415223152974239746566145504348953244176090955311202765266871489667954730359379262111711713928313576291181954650323424741410013859397042994386786491106675070970177616154851921806946912252457842457823045614274633331878822858191431041400487500683140555943380598732369279275452849496404332868309817950385121395692223994255824937417814115255740231994007311164659362400018003303389950502673092439623862859080240184001224644028428743500196358399397232374827203025238667449657592290122105667418563488854602352486875792681642816408047700711446387669596497525354075181518305581952708108548261480088486490978783204439007375054381427486453929863134721617811720960349278329603154466565470517183362810299974631996578749671050125169029064042493974147887736154075723610529619222983973370663613679730524289485233074343668401359388637271347455672545805505093503387725522534033976420468219460967293934015130929135228374359330666202375233096629478124673925653215966973936460009287148323853828360342433138857946588745198401209102645662190639329102678368639773949660960664556719657929387632957049317588720549729611950687203329944929211491426729096514177007719326536391045569090112573875000624561882553960679441323628778723493016392873714613048458171568171010625742184932596064977924698752359347537860874273815911359033053408139022411447021196302485640390232668103946335636682846405794562838195403514615913560753707478771622525262920698280585566431119931913535038808230108934098399758520504745894053201932663589961646250421371351964801385543020475431588614998272252538824344510102442323136603438179346242796571349143646642287533417052757443271574284564330041457711905345932138985612514480400846283774285390901574632407493405665793063417467733444714656226085278548753204358281499870658418347795572191814525548216675761951537592594651409122449112070915974561144806863820470261394734624293063755286654013381469751076024988693237108334418698502771417458815560983910541713198745673838514401647764344884430087706419304027403575577706818861516522957232747864078530020627747062186820620164564697996683083044388038241828007335107335629258733892050353843254553728116873907031366588591824234064036872517445036387583649845020447489968632398205146082348895808706810038726445372036291276401626910289262848774677679542934441187505159369862854767940510802241674264074518549907067697091602326833179992072286600691456334974814445906365737003958255637689439905629233762629101217541982969642787236998903185918354429473962914181521420276852397163324301430222199599368213548562277422784142231621743549780105591214888645200744688845491139380798387855170044891737101210919015286837638000220714240498825283350158137266804407446754826164968535728639796578866385750226148791399378739587236579732329562023320523711490908363955445083806720360441559070150052979666814436635268511435052385277162088161256867458809892268841248504504545330385734712503021601782898709227917029982850289272983604756616184143531686658778650421803192819564355596508205043692100874267835107329825658661863473531795783286097410451815062231915072827569477037349912045103094702244704280611197731431237123043470517958142124821353585076640350805241344286603083452560058073341114777369275006674986227828853342761102251163001567283364583135529854214437000507011752902743506381345003306882579975290346974746421558701298903405434658593444403361628457478219517129581974726698420258064349259057694076173693853362611838944316137206268950028896556136578312846445226664701376429239331368420395774592461281781057888630395558296267068264834818052274822102876223390658514651750227275309839129247040984332144341108327520193054579159661003935591224766537517831151879529093455455455035763949243765427769356300250695738078224027007344578758959064126048169298064655353654043390465873398322875228358402539326371948260070370894405522851133706296662887715850785502975429892981703465449516706489139269360041241535895187722211541957985752435815620136853762504653781904898994002843339703514206864730739045073195619144198229170880987673617032368094909742434478073491627518241144023008765042271245706862401879553278402812035905193223330880726480045988682759142210734690714193780198884275423845773678248002614253277500827611269953485166381707721050996741034231363277648821847383504574982319947768749852678141116645990516071267918901050205319400867487232806221093681057340788525580897264566596140145460437116712663168965200976812089207795203757069585412078958603536540629321979366228585561316875153103873228054307656950324723729940453076772332595855726903663384439224805327425646106171150262420107295930926056080570516837941923941489210961801909117968256726779171004204017274641777147526090890284756375272416556224163200122880859293346006611739568575982702926819417294045853361490894568281351971197594787656268605346028316889821253882740186541486720424257710467607050462628584986656338745026293988847714464756300693379411412037156791731207393827512846769688796598484040302172516203811302976038888958331922411901430735148032014307005702178246497011294291808832063346816440547952343694804673998803107516887502267583515848615844598951963794068903608310189809508127467284310404754555058901115142340843069635471974763296486340509862513434740880192601740502158123284390379756117342657655317026456310190893718691087469055287603874821961274294847532242483775170752224534255266944530899412136777817520616351598900883440013373294218393821229328797392329976986961409950235458323526750495332496936078590496672590400730651026005763459157354733699539312108483795192263562331090493323488076838327015738286951780574308185100733725935908066362950737028820048600551796213755767847250441775686774314516860061899313507540542850739081693927932470162739879097668128687175942513618149530434723697741592601880042901883912088996161605046459482438251763764538889191509777639823703325775641417750733273945022301750918973385762692389349101667286615626836336268539206155415550880706306503322923799530339092987834652645637776351559986522852391883235661151747139841516120109202989909867201192834411752387698814362445760276222631308023502036742858182023894836243992709989777952307709726977708591732419907736012843222888554141129613424263550253405641843402415329242447274960811536948000902924971868020673221638220584654316344394530553957849618118243169303728610743392709961038470491182583749168840701397700811682810912648634082984962661956898755302653379378701490681910181748348941989747223639797726439351243175521228470753835210329488664809603357150324573521027567237707321381047138086503120383648896215482394280249942926153441365449467783691827967995775183178444959342240923986005125422541585451879050660928435158839089724100750380621064214786879094994447108517071450512211958496953910356734163724665554603901559530491691058062784817142400102824975012717862039011628014633944283918377541883413884922410749230596787903512367284043221502529209846148437894832350794090864750997638671184094333761878896313782519575895344133459609174190590045514673238061209385249047161607236209351941941841323883429778312215479013207705522765775036488925555979038902099054743441258916414189428258061461864846685997078585770059487491144926223072541299695471091456035848475311668125931117493305270766297215444262528568013132299189425097287659810974750080099292077241527028401656315060232852608142393428369744681907267783096391280796136106541313192062015754835638932718055493165779669681996086317593096163289308201370169948533340886569317139335258678555919659701142473072405580224619051983820392689882705631095502313331625494468265798673825191968561189079451151028654619784814542127861893280921715522457502054926416115908368425909216666447606134831132379572493803744961063876754495154434182979237080347906787002444335224791995844268768403089001175154525562649087883446564190374895043711791267077852831903454317754115848944164370603121227988868512888870639290073378037220597107886624001155730348476972949898609467949904579924468251652856111105394875910283972588226162219065627595233676845642425665041550905451152527318202621965693572553470664421764310963111768371467444118918064153722814662266734700341029896950708269727889482845373139975569266339928623364397717966128951125213274203968266171637444388383122873604536389028470873453645886569188306975057601533847526734999717535343299252741701018913747467084419863239545873248645776353407808501399878428994587321090522826211912688752933551464925949264413019931273311524344922919712288087550862704451058481902930679956870078758504610775433723651993774821615023516345314913773049211386810580818065686984911163078150450562749416374435391210062091091673366682972183792620461587799539411785449068630992663511526284435726498346806868529335844373897774259236740845531735295197959377418652284939076421679062275549446203966446922320046177430818510639413171144652163650225188235159037154367989845763657555903077782863051972274276975182450464296681956950270248819955026818453490373546679549160533370269363781053820336479671288679945567258134962006038927710790710901158439433601201545460543994590610706642992934779704730535903696803118957381872730957687227240557100348408747241064344302189924486208111420155510084220458781068192966790620333432912537445334035066951843418453569676304853119848404059084298611247361531620324031396901354746881604182955127906714566852638840528508097522782998124359095399547249758125992271680643853886287773046701861331809199703802582315902015480825763489011855940303654236030649046456132746712681086554333037475358113918441803387180061178192716280340703061325684969550727130658569830854472767293206556813438589809036785510848457219650685652526404996896519883859554824246596291777904872411138459642189492688845244024623691826597493998097702892032555557798665586381264860179961892924530511844786707376256769128858003125546354784291320125241217151312950536586046327312984586903700749135847241024045533596300954272562116256251111286422580530100362265827005809635653580249618362723632949796518908521005678252584468105483344959170425490630109392144103885254681711043891379793422626078300386894336788586479603424733847525240352669563609477139701340338819924863339803553943101405566925659267147322877926958144602754418185886043368737575399052531412978930275975707272347706057900365182785411802578293989513842129613797052432539501005716783344764370959163364332539600801303460075929659079531735928271618051161217625009402271427748616488015289098495993761644862978732367983352000543915765393479027097040810249368063298006343843926638420223292784066934430570730797854013196503962349064820416227813477646804944729735460738731855579070303290220290848020610316207683313486110927193981412233878153012704946703942388838300211458423820384916115644312574301046817721542158638598793111974981527802610980221864486814625318798369190139860162710529880945886851948760019681206843393267799145879502020926737800743593008749718376845004198916928689381162177859517944602230312827884780078079100500036900390819081100181323290791004562830748629558194667035130984101322072537526058208152033322276090709313143437331986084334456502022978347795688902335208736841786330856398856712211264962960183726890203324569551389746186011364661748282643305297109306010927531181880829965081967074688724597078391159895943490132616830154728510090743265369340688969981577265193023596353249324289327743599075304651121003959587950383490584726107022130889748129458831500362007698232611906668517609338663518283796273502246805982361896595307388835533214487276383942309525765569577641426115600434821237891650112505786317217184860491952823120549504183642003974936936546733455526141299618712311984018731219365790886619919460575145408927952832678668408597356646741220749466481785066433265284752738389830071937827458436639525537291278304288470704545790610718269898620540568900170507292040839885658087282076512044835084571175237841710550973330521694923069192833645913635907167804021602880098045747409290015270367264859070408006291280750817057482428123966693490273204610983809312565840094871451840332574150645531170174573303243023029736086934934962461364235611363619476237671533341893446259903988215772600519509519127583508272279517598160886390575678959716698480042410068180705486278143265729170699870639268248549685718556407703412571273962078654245288462008038791645293347678498785256227156953106089388521946102588074126198002354857537642181195542860644907392129261656125127363798009325549709564735813156365562351918097642866220155072354287422678204571187030247918665962805675906931423408832103935121251546292082060643844527286979158667341574751372963574464938516505693361633803845719046822945886992497772997326174985353761386508119758003888201954489004672004004636645627681669823120652898382527530593896752471868868579240654197402512953059055830876750575224314675188991376074273519333116582153564143853367830121653791396443918541630148263042304628930720441748560727716089763527701872179354202922995856021351205588194842690645399858341769247935613156415278382606904128747636856223058650076028160611002336897959464540112823041990474997549183151316556318682070285410595361381936973450528313468225130252781668081417770960403227264536981222761478853391306114016512545173082250172768550405259229578192161277125855828165677863028005753575384343089365594269379797506012735785440979025245311713569182285764019241666398860732732939111273198195432486853125446773299615095061758974383977818048960403850415988290160367638042807709633256959665215097457053874901689172961919444458931258452060988480333352971470301663676179679245595197840741605077973917515264285302016704958780221854996187731354611878439331738396906847780799328572152066245186018209263697193964299635872222489847854454112536550008876252919984938632032646042896094486554323560570806054854973472494349541808919351884103352463642896346119395324450646838017596326703869520788652185477467016745639785487594114418395352536715806439065633215272698168686816033942519401604102831068668812513537882999139803371406107975560777609221891247333330429160928664063294499822885799930463031827290791150252321722107773980845739851435394403720646801736848867482040773241956463434530932385928028436633716421760975655816359324871318892628002116747761215835064933888366563417559141238820441932964733863616175910346328862013579771011135275649497704765787919282082221302873940799475227915239440828191074243165672168190360757808303092831103919402301272346315273564376385747530532136379649811378227215353081294391971789710654346545895549473333843907652255539307011236925799192303616532580087393704718657987105817525688094211983496793279374021390839839537067403565868701313179319841506507104125669441464806425208463996189413562553917996713761636530086104462720843901222792505360434030977868870553438774336405353609524067353555656083893751754825607829744243130280993961387087445547824200448939188445509728831974648531788432125587354766687107903813379488052663093432458895333233135209113679403922943062314043284733126072004224771342177866622209171686624361816686806163911609245767118315538491860971546871191649270108214640557019287719406248752342045790853165614517678476367235277281229466192849893917542895353096474721009202953789713922925777719142757893773917394569016546154202119871268598742066328374441365353243857511514334638925574260875902046716889359253950291397912216447660732649835120578785319733010599730147683721608286643116299784008815902592630256216891617621400843036520837585745153289066065710656995856273558597742875426011648544388280696940928712871918555626286237593176234223018998943428417038059302178543764983004999062580374124531423833606589633120476271713235217094907368304477429969038989823888103223017150093521201110646230814144257350682422620898751512795828738016692984990537238623697194830239923655971978401578632970901359687134286251604308580137232738119121886386488193929094152825667701120866794061793614103583500945454250119184067165841176924742680406163870041663322701167015759471042308529979367082121730803607864618727802263482047798314111538587256007432080369474795076084640715380565827532209356831899097797299234969974611831463580792577220390811523965844671382747155174021653925069638119777787294965306490234003529341096753507186800176364745431105797660940516987604853724251550244050523573015051402996610639677187385628629051393168259478177945291115055764149955146874189007943184439198272459987554445959492987568958993165654004165711138780262083486161403139916319944115591949710539031404657514269742949861472453143214800370729124369672233469312624361048186011575798939518307514539168021570252592504757106502017277867341606471445119362582631229387018581965236893553770731041580180429869188187585380844793526442846737486288549391436669203202669202509826642619443025763030715630330472294620403361995723315689827499412374854384060807632432806870262082100010493621762891384053146899611103530154130218773118042416061657658269876069401881787065557271474560371843909367624030717572220827714442957912128186974959520531985755037125119419653930666250028923623551610769436339375419451534141622430268171061487885556366882963990423273640865674482513363786043178437420405394019460512165332032382880908661281131213622259517748624920621193358385883359049456859332223216103652324624542054868070626012155587762041847596599561303525363207124793938684883551625540653129656683706382860686018202166979870851759211037289819650820446022086599495844565651367506707893221206736257603408666530948372641460474017202452783235596044066408826369725919871566188814583085564863065311418736549129152659361301826108135901325512375599530490604517656704137511180652580459876384276962814527617530884386910645235360876761376798235385849757032964793555777568307000343460068432573897393098056396250091904778418339117021625867792869737185088290129567906412003457937869695884604563173500655749078260015803797512230498455192926644433443312052613897492389911980837485477805544801737304572287697256958941098731027865426207054620536673782032258845373228866400562305446745118914046924304272764030937595315870128728440268181342689845402884022776071891564086869068019432777410409549067233829711398350698082688123919745152042600586498260962830144773594740808652582016822975314981828394106014702771277232232606015808923892165627798185332194701913924764322743876271095795628758949821621308659858108203062700184132834145054242211193649469008921633501409386598145864067813030610496356386397938828906494303368786602921170761018336366865660229818193064292055828085038116588794132056106154184974400564656022880020944261507041460879660406685106827459638628888151046765257603531518836464486551614407043042370663179861709946618898670911455197785357674322096436224755093438555362611319165198752802471943784237334383491789999607441120995493484500028660884489150895017551250656200386078789831541934618246341057226603795545833523864816587182623344690809317091782220679865481395009306397177901833106354809001250889588079272097985105517521804127724086486269960365977358955464253647628911381505290856674010669289266964504177814030118773129727895360997078120526793485428787838407402544544431252251251847793542315828500509648962872784570183502026187463648112435509810626955363220491532250938884073053774828993857366196298842560686227839220026991268156872922214240990218940825387532112766034123290444067735774662150101873921730490506260561505739825425162587393081284934349715004784394931788031622865818029701362672654749354093036356953014653066241816146635382248248112850210402562770776189421302428221932227490515039750027339301789038696463534022214402426173757722708756129017539587001899520062059752793252699877782354189575611261811814289484731193520974944595649047946259914731381631989350056383594672589429051867062273217921938015168751582590982399661763451000797236666491345822767159805329866268316708249860115866190053973031562061239249953789832079960059804014332596266424798224955600650299893924502029715423791584226788244944802107768802055181630737448473357911841957676609863026432343312536961698841333724259084022504479267072950831149516169391332664709726924848303194149424532278927767479414991007460553099401304530871961724929306929784026728111375951890786447990785505250878245113522034221376871092477169194195021518806706324973240336759065512429683813251715569797192235924253728450719607577131908831251215445594437730684467437136405186898256307766396595065269507113364867359612569362090715030033240350681907895372385702200333452636882422019495703923494235043700497690924481058328722339673374967726692838184983518006615039769772871800382990621804187662047571564575881820254371148797052715353535358665537617701411910987843508279998290259367570732112066067318958410628034776702521415178315293928981477184323190081355964403588358178799167832721319482637051083754703942509812572905198498713036417423572200791570260746355844981269972318666973824001790370879552692503133244909707724872592112171425293625634711193053410553030373285803019481749224694004619088426540557379676601466892823835567578701120592906497656158843588593547166380868906756885193585824957478808323957206376257447929595978793911510940097082186070683024667060954061534993940074247404020127833995337806646384303942449157195805832056644132984478746081798879202981203987140986029225118468524364046671709549569188417638485537420956170820347529789124559265874232533975983100503511539957559175064573624226878166541682052595193020988462070055175426150101489665495462738841461620132041887395235776173772915165433092052977505092111873021298110867214630408362205496935089390013422826195268553009090838488017545976475483997112360414788585085009806056056449584433923660814856532614548682024336939817808750881897822594048019596330462593997291992761617253701816670409352292717614833802170365060877827510834391657635332963982417987352179012720485074704429248391221172817962825321286227161507868044106802284304910526616937658852364919374522505964686751188267476205461778542140434570664917345123580411821929021080282726950011588906331091266983108423905591549237357496752443401077242683791761609820001899311238261321652010890834418848681475394886254088214734438669394206356087093174833084854907583096420949195521867958060243559818609288801703521546502362536830946059583501930691758213084656155065402695110029633030250172385241464120964445806479747606218006284438794275889012050769560052436018047849709911952501081394809053092491491678761083436860305774873275844880769161586056595691910209243539027269743890128804273604991047701078660286872215606872495595715229146802628755568165459889182296193250795161977882851967580476483213829388689854044847187057015416072951639164530574993774886910888336838034810287200437489466178861578331403563944995544709827288031339663467290681016655834698150700030751389139772440243761737164970474554283471881119087306298616120703417972868164048527222001336577941596870637471418185881362952080812766351448865167862363948904084201339436118179765862677740342303686961488471904958324901672902041185501976306050042436244970102431141396223424810210521437434076940852638495237276951961618652476289836979854159414502349531303008809943179989495569117731243361044574555770936311244585875820431196205734438397836300905033837221414277315229310067237176440375173009607782206889170286236396349321267758778871194289878901368052271934872978238269505818894734897227670699199789120598533815890278403493208643571787981600721867984904999687283562352595793628557356973084169774702886951663900833074202121099333425039978072006674228379145928235245859700003387754651589103180811465242861988104231432580461513612897952238515159243508828931103810640878350463855637379823114223882349327344546747821776689842293247145499659474701689670876987441871380153086204608448226846065504389542964442646552360985654928892814374547321274217086273263293578989654516571189183020498689656449124671251356684199314466792237738584644734392172168269070964538872643458373722974264628784871428998651818260460588308900533454293794670958341964068013085694310987672487178523068021344371404039678574556248697562517514420771547859068958429737783536070653145528592937940745994004273350330868788714765622212912148307541926552103693364144753466605032691626752761416187954965365136392190146993015037739436206681169878097189529858145034084008275898239570215394576562066115917002024369157525888069454651827555287915606346963008926052323210620576786197411317283191781719074725464874749086274695130799275620989339664075901317408950078857377016468406776501225266736423903494743036709529590293305425010291417320625631490992049411382543607828196244881420406554596410935164820803904015179935366939548515146660817631907227670661691799160753594814539128930394185083654824765583100666839538141207465984283595423489933274310816366056205526988721289965784768174886172590790683867466811710248119143885635767390389173284765097873532656258168850851983589013743902806085764645725623532657457899822048388437107394934080632498381403301323103117905162066003543519476825175749449320018994662891181651843252262693088207810863965866027900116550865233485213655842337051583293436983489231604671357321776876681150498817463052279889892719487972417953883085620319297760752898065801949713587128914540914786243197056732266003153945155766445906498204908086489110006683303502883698850864499144779071433322209181292462591706730397848814951262914213053378273661188418956326520839840730841482913250616706101071584935290171600997196893258944377241489450698548670816298274594756856191504457850456210333983923182921685108918627404725041655113049550591134045794170906467685364292110260918136511707613324913789340324491554840081651150852564922403643437086018731204245034571837425531082130510544267837933601513252231222987501090136815506570045638558427245421773148819511018928415422102467137734245294955149707038124248320438510285896149377037730814760473271901339085769178663528179410952452434028138093178594776135490403007267003777753916333425581309255951513026658359725345089754465322130694886804342534434696971852728537746801683562615568540642145532591152098109388554567576175684782576132870624479236889033390130081643005016697618794228143863127861565212800013950273998272721920634946348306606423166611561264654621267032466966436989860740471699228395209048139004102662890063734684511848672853853668166072372752830145453301699414712196271241903001556798171583914334330233364122284011846912978449525582078740609201232985406162241459765987600976019819171517674529562911241874765873448579920243761789784497751342439639747077657710746089956726079009777051795133888505374770141617425253095689775931621400622424636314453871375645737670108493803949968907095553717898095479337070896534916289360251651953130323635359704726434168950355949720751924722488593621908269698794237880198883386461413042822991870386495125340149591632086337215526001584201892045827370439469103375214718050105352345658750460010524465196618686352454135818302809626843868399282344322612447274923023843765936683122713440560420632077715617191197382170976556598139230518874361121896178069185403748986626446092225311753651912505278498890252728041027496179901810635478662004184120293426451701229358254239317630110991132167526466494269795742778724051012802716370078410805812068966396645661111654499680863375461099800751245346197904393037425998845618259152492469783017886511095096332904885030389045855440917469304655199012378058028536913726362074013326403185040564736615000167059871782242894927136225638611784146727965792272721187713102993521991193621974894958036500517910287252301685163668555816156771569785860874632133159620356993277949960972287865665514712437613951888196696179804316313318967800913608336559198912205932150452430610036672411572220873080140751630659234860473209087450207644092959498799649417060244235307782201125514576358041694454763575816092349067120963666527734545407070948359273584800472039736542653524139060307443316433389764020819457351227192055853994172479720617988674878006560234952324208176253398350576147949519482895711947062717888453738756024269103214783955436173994333963919725628325117888122118770422870664288885644647966218705045824339939443424501731259112541728912782267263759191041347300123858044016116612466719726314596581954992638205848833794115118581368221297749724162398401739847974518536368754301326739136630433674960958074166301101401619007923434113179695780980028133996554795761651639762760808384341334035516897886144282797190747863435023811619353711016876951389903313812590028430600812813674874040074429909297208306754214742487022700259165287890768140434118161225460673854962413807090161457669478698334761596047665115622421961655260281744220421353903455299648469119384484245740249551055641511328899322995175739919869211011431336561784182603291550300942797284281917583799777535936020512746090151593808218738194768888154351302451556191104066083680196874653009824868844308700086637442865289900235198243221015813362426128125337215801088440858910191830919892703437306375255981390661996393911100697458044722333092380562800061989215715527500420960962140959885839782229018723352723461977979247690981245903667201846451307677506150487954106123385748334562640151575197255423966609675705464732677269075827160838756308082877490675309041094564595583975694880630732349801804339157488321085052866027834390779733806164032120268969102362581151702010315967595670315246044018273011358763868636503809397129828026922029203695320428088880794138614517040702490485255064713892997517079428734774219036628266243847454611436373846612553302527944862491965275862056192100801308852362961133729374367157722766756097467134932419225865214277600141423953034149453441028085992875489926248705111016889460848273968974748164141867845304229411959280029056491566381486711104800118932830846197366659608898557666665260585990327576307683990551993390008658043364980336514281470583011720654150245884523970365280476216013084011716007506896705254636421321703419635296115362978998898252214206299972359604378319286959654862073173114941028069062357563393838192926281357605920533808577545880547567333109428514315375114235185485768294275641657997520247740293100002471209364438154784051355516152385980169284772680792390479628639863332676089570721038320333714260525603817416895583433572667136630219663907170161695916705827018562504083218815765377076729121818599970668458382093121651045306861507674760391996455170721134407495921281806954082662592588731742825502153590593560671621806344319437368992556993925649837604357632612603694385410291128569764509020079349713143187495066464861383475372435434245715772335083835548592705021664096979407555988970260056807120539585091176450067394053095575494554289278095801351197027209365678963796335104261637279722221220923160904798064161177883940463876157728104980639022349604780317064163145345103264169203282628279808076650836110329799380156829724635772353212533954272445825800472622712989718424317979253617643682318528294138957866086666039095615642898510731560141557577111602743531558399742200224926916062333371572637089078604137752233225240461551841775090245763703739318734301663831264051864057185974143265329541131935724428648377560815811667593599305225424984922954890197351154479973114563266238690177481034042797368357143851250277918119025035222010467326386728975482419590376191091642961923264903464755513003934158194749628857963102327646647864360993303353036476161903785119479216226162810361782613080856251000684421090259725609330738219152609104646120438660830625037462696301029523973369918012343163138022984077092276527312965078862163028584306233557045875778688606266493988914706258457960125975132104694760354848924110497089778588649214993408239538735779610811656596240067918118527769773109786971022818033081801243907680672861380271766447251611458619336663692356266183708780044934456604312176853694137643303594859143074549356143012861778153140320429264765940101481918137389626779685725275107239257495865014201492153190296222387258773201665126525868782051665141091970523558930204731660703594210350999077503632082430713323982728257812535176475198225657060301172750779728495259109085992680545348623952042861529652424548096529054982940733631376521696677533792808227725340622591708388673441877373168299642447817685289348321566423934317427500216899223447039124210962084296786294995714258010358180055584186863023891802495120936646863314424376559021200559369248925336407488329536802397795653181618285771468499471394289218404107585843851938435235088499770040054587163471578408060779396191417635784870771025373135944492655479143002594707283865096532900885030245034014043709105177269829261053443713295081572628996143212264455352573941070969949637697972431553969176750168708676572155898546980011890319238371556945299146640832801970224939521359976044111712145588772298465338051794141097424676690264647168669783695643532208446562733560392829521253025678492095701013999295742337037157861068845323653211453353762418671555760906294879999301654042426223627050447855624051093960869441700144356054464374429702301237536989297236754659635983543611833162041526949373349741349185823106116019609552053974936950538049406976841686768005307027162479726924032505412290399214937739754914541791782038065080464805960969175747543494684111331904003012579848495263575292329451315414834002144249011692126028888852984159876072526052723960156463989539428466518713213496849267657883433459611448436688931925591419971722084386609640307924047861201211100874009571394052156901111023762632332700151477044420766616741667539737875426394399541897660242056938778668806749182978855845382006238596693543752775271948912357556556112551229702383836789963408183280118592138284284430430677993074648815737138541607036456368775991965605299164140602550649017032434196702422148176450515461559155218756606269448474314778927410937320663363843940847385165048011394743672888838653103850076253622588796736034968499709258233587162821285967968721874887330006817031613740115964829618038250021394378225616819520452471127342595852389759734434731581427035221487117815681578185838253123660673780738482090539548262039480837603454560673196281999253116862495444642052296977239694961735101612324607805563426221504784424608557492503700796362915070264264529250329877310652000294754218738025507579864525688430317515141206739291754452957464181778502514904168214245970531182477573364593365888130801333312925574398353954254818423135898613630161902560819389424933864874560105093812316670618969299799794364611873242559667778704608210620555388053346263184484227643005475145981537646298453259030381953345352717881160611965390091536885955213209778767532798634645111592191699688863733139149213855126633563863237376804420076080313649157756121283712613601577501962154551409652378686851237601492993340088348597498925777306008681788792007023538170639416894406259041930655379936100212276246245499347677769123884894945209590648906476958349115253476181206474405064351462484576852378055571652053231395828205818636063628068632809396542302916648965389138245149352509800204366572230384676962729269845182283530977998494433744668464908190862206329425510556857486476239255621133556047322563323932783984048637220245292610027695135358635299386860445451330937749969951991705980144213820132022950101707519712330103746786457616314391341104969015286098491572115260065542782302025021015155407619783456563072336720358772152637085409833150923503552884573594418254195976543871212413055083037161536924896553883220612632169289584624820777386470962688372693620464604709767815455356618001457813113613471665081743279660028307120580613835758965333790221427629015290822369736480175094758035910779835066233687922175519098714592761916002780535165306645016629222402828248049795906276554537676334953430863194860613220145586067183040241475537741119997194144440280703770013676337429498307224029986888025073620288443360375931689772976478477172612622424025036556553292064116737516311314963252587461255578151883151126599004100515493880488872925697414161882360462615537995327870908940017145410911686381188058292432054562870454667403298553983244706634443640166011807496057627094866553415192626385511731694084014503662383635078304862253916108149520308574286037978682863636588409950208763094414260825300574054540349329251254059718375730236419897462886456627024454213177089201041255508710181279680225679026485093036215779095213304671789660116914360851212155947408920825852000256069782485282448760474190770831094648184432599453791794164458334932460206658808766306442403846034879273053977429616067871579522833675301318195200419700638461111946764414018125709011912354408277383458809562281546422935671106067412303031566374014254502607612849314444173339652721476122052397393973420323175251714880372794352026556936520715380904626017877472047233549952162271370865031150802333174885375257158936077919814668944021200074447103525942360212179739532623577101467759507367958604330668397333396097810657940546608590502335977722244507052467187763371768549092753740258689353661741512074083332500914680145417891887898646185910666663623555578794839171166827777124443325397263987519699517820543401972010972038886487205927953423071954692256421449587979085306987572539554792378887718939947382379436838361905821795033983195742960694614586056346656321175611563319562472253787520160651762373512491730184458757148065664491189271784877000953324893373854174175429474840169356341565388089449754457472299512812493397478828170387812571455247907358329230034038956653739059022077595831184745866725294521916313878233857727716004799926966878779562811689378151923412102830493600014416337115012906353652950554301981042063516974933958747004193302218681620452791133768134708512369673279644168101635967006687370540225498905296787358818134542376644155544320299277719787163352364579080398115472971312022236088223167462772097648060747963538996445673471498708755275355289905600388477215146355940553433888001209999516194232356835859712282328767161857252528753087912603559222241448546863947836230717613020795791908758529443811395863710088109615973483835222450805888834337255542410304994040410550496685055837983037474833631445192507736753807953569337897772648614494883629213285206233134208577927599117542902681521611108733567972450582171448159793416939100334832226306948345387538012597649736709288072633796577654687749972862724121538653772411718875510399232759076156894136852416918152914810032887930867225870846197315993353787854329334023581573662881388067744862092409936609009236406374528508438592951051585947623090727484864364045401980565817370963873097805319646753386139503224393698089670274764486248338742048770641819780331335727645291051144288675379803996581061272506846358902179822366634122416178564833158093604891764708618660218394777858462986613110005406456514583684956884250528438444096287024254102909146873113330691063744131979514155834184356080804282250973705260698304610659437919475040808637340368865322898781795218142457525211462643058929819623879197691702469935818072032719006960538454996279948899836706288831598592689951298739932756336472884336046094293088540222985525587107959949947412890334914593089884842036402457652954960097544940236427562012230663895272816130549323741988660548114587337780995462855082930669521075339632525682052946425270462371948875305504207780080034282983982480883114976055817733506864754969089663330718670712763656860858058698615615155722584448615075322961803926333445166413329916252049269786311637134276496438683371628552063785303943310176907984652658695799483915510600355712458931256018456659597149675763908913731393155755699475318215804841338515039235075962156185343469332306061722872287354936794543017800605219293600530285901090197190570797369943424115903322645070088022153283670729113612743622606495880955955522018234323585728584818639751390534743049012924503603420008139517208842080841441771102478359591244780966553275729788225881055230710730352900383072058048184719394943723124654793530272132893878611325979564491235842164636837239628147756589359148293533513803901090479229985012946014200552634153700519591413478745548434279555302446211671501520665320948357223952411835040758783241821776219968766455135125975259687857380583218434000323062171763352549167240594594099030834000447020239617648469829898957967229021012500746557860098502474032551126713599582298376897264697681279334937602104419920803824652471027091405900147902326835434989095714773727846308085447728386728691004864998230306654470977715503459867499727887657084454465661807767699437563795619320574550560004112743753716504273366379301713375903474576826519766820633128121293403544698733903692711068172121348416012290533484134093887094669335933757765175332031435144771912768967666939568684736997093940083234848495622411054330409678066859764242327519975747874035360839469035006010926035403852058139095735929973860633242213447022717369484096630646477887616814754533135996045419263024261521405593495062662584773858587352588017420417682405583325845347242445222855195163976094194357380764734298475593291365907599736968999301939692762611530265307036209707124528362901559642093263413655235219274756507016979587594098861119392686404340092200639874877354249729603237882398755681117094763064279999038488390775937648967580780985481052578366247932931378538098016829486429890329783055455078071876093089561389421913495452553565676504269989322125488695064290221914604968076978867601087947397311086810786173182548509327329917662991490161029132790199356101185167411718182127390886846364288728906181760858596658082371905493360617292505078232033798116983655417399051031584462767015361936369064784468578068686853023495951659679301487755456787317903366920776088311265426973021003626646988864479617644926527553526478603671737728998056449596990169530706260051838527486392467540133176331976291089992823234482906975215777081244170823198101245729040537697976489681899951446498958615569625943069824061943624338696142137320152460076494664096504360088845599591271097502861394108755928454287048525663738783789998465170962428104961599013844575176236165062982921132000299862223340746248443932553330238111452427098608680918017015941110981216389242105983251074901176178469132305228369696824902723947187117194016586683890833281609707879729343407478419556002811483474597466162530563758622452744741771201622483161789882156143622097366318176078627420779483597984671171141777437508959881445161636326013315559813583883120443918705627305550615542057222375233982200635461407403024370580700492045241395623039299537492893183854907645404081707651337415187935388483305206978337983241591237514528150174304681567860001898314057156388280834758429694358655015622077884205527022573948727948656539625285413369955196753577339817845839362975408114296096930949587665084660710389360436500148982267263234165785093578665301408017308861785180001844556549928554935349726033111263282548639109675524184834526151118533069537744457846379293153220284965695745185219653789593929938615452954475841932067111925282743089352836729130823731813284938919824984899474046118512889958165132201090471887227812209434862554022562400369521255888192673956682560777982386275463147351587776676908799854380881420866947417832168813040282965216677370378524672096211674747774525194285334331676642235771769644224687660877229978414176043482359866277589141395658470180779697968568745886172742320638007588880372425759310915108478428206222086804685451277114009583326150079505181038129295256195728166563076417369445217927961859754714833915607176216199263119441699609274760759513773628717199637368844211816344375179360683677230942214309115456465832551901612055285958456248645946179291727084123906711117212869402930510577333833855465814982064449236461074161251241829896669719604351754352275841305385574254710282596781162783601656212425720321993815711550317595331034346137365969002589081484228380897999510961620735732678953209550596876017443907230067276745590172126031583716166440033911432118806739449843162058429722483195997503489753397792133641430320757928645782792517831554080966547471458507916445049294990281770937943876001718913153269205925448370917056117918663864739549513299689017309670491392001774567350408337174304524831720123114776693668978042731919469385157289429432665673490157545528252598270261134220754927211521524445929282282177983328008580446885804733873610276247099455373301906342323195259744409321665359776262975668261050480185958486278843019243039549417088481310198837874852876391920186828693475245042046174004545722638390241882583080530584478894399097096947669891734909663619806906387626384961018609809441872463038333594102488246149036874092540332980621185087046917917075798069109876603481140495952582962784781910641519278418128818668074680737578675700503492291182436143207073345797906175080930332386811236532007357784201432857955496540998955983554503179737977442830684269764625311514344077861389626234305607269274356107458168929839219950191550097420401136026040177332029451354349957234163179761671470897768298664627391891315806554345312952758802708082596183794336290979692929788863594026786314907564334347041602730981596177268226883392369178550286271108215779686887030412178462904848123726566202363054543413967070058753858020038967617651173392437580513979154438097954955096207960244347636939036910150395759248938346832588768589422107428390502973982067122374464505100758872094749454457536228546850653862608518032520133366772030548094297227948478690656559711635724921768496627618180891962721501610412678979408093944273102711215255534548209135417798806931498888555606307279183311159049653076086231829257716981637182937172663295288810767935165488058865023252315797586015251323339092024412494104846310241134294408458862752173235417472982633312294402009986255155440971241131390222832782066425983322046325221684313574141962994870072089838603696296359401424585174472111844829989572246431989738434279359600218720735362265990487315501575507644092755005107057713027090570458312960997682461437066664079548682570675235360734979178198066277138824330799716622474654262924978983613625499143684578535292130000298709392216345969188250573226384903474725396274869407098480865917349596105787773242712807501793294898322149238347669105742316077555844108218622183726841756135152393836189083187458840706211746486834058592216696741966441491739040140626772024624358835473099674227146815525261557430968225133483511905480267708357147982608463736825806902870807553098908611461372275668504776127056278408081728435361119022335739169166628144683522970156325664690689462037824967893357273841801233828570409776464836386319777690281600328979874858044912901627280531858034781592112434439898100685966998169403386489195294938507175698984858105100970755868158907780360471911441190406738480088718893334453564327363617498691285727740403026569807680193902218830970135337545295784971478956456740981868170040127644954401326956043277248807774823120553264997201754428470132500390627696158699361086105021123305826530793478032153550947680269211080035186460227949357905124989197882817313497626762327375679981315585927862887306741628939339391956812667606903294431166920797067246876434295246038068394597814645274951400958411452887628086209829507223092311221960533194958575244764676086821309147541815399302553385385999032275079817877545782647304632690764697095338578095819365837970332391108088398844814974995931614403959718357793105614279248387672593504732697000546885323151899728371674045762202122360462116052766313143094351314918718055384086072700532951789244438763417163545522741091449030400065757531786092006580030199085749587390130468625591348760047028352103269963251483987280613367835205965768716018714922594765068862503522501765801960024242822536102285338373136482276568349243773889858508578664485606896143271710398595166614582379893209741513865530209002492929839015909709833301471493584800534511634127967098970142266954739340355044582745107447770379466480520854855455374556303726804852877277581935467003907541096814983318803925304306471283242902118040323741121009023890844340921993326795946500712531258423735482439761186246372229900686784861120274915873079458982347477389309408812997930234508235793888658323311187998299732166626370189283493200094038576772552611969575531215329960804782576308559032807815272609637615043355050980888798805731150421540622052019826210165614201392655434860459580927396996331813260337429261985165611824664921686849217857137566608793509851967970716496912772916183906804415108684860821549395563846587626397326955869388906878092621995972958429027066138573124399127012332152781640023017841976910114679898525084358601350470024859909575340316228758422668690898479118145313376442135127802804073653435784701209864392898997305509751010564586895480841907763076145656495740462400568686979236212193312800393712572518258635340925512416763676783900606070772574924517791218365978441806154346807038542818988472664583554361139471443697922721001375852783444733430853867147855092323788802869697877160818906978800464194662313679314904508031036782748147890519406720817686495567310153048882048871580751404428871870593978716563273731311946270966468541766158626723187055028429650708656516324328122598529611178706847632343300668847594805865480989346218329318956418024370258865623481324048212620320461005207879687432570356867107837366082272161623979881247421703581932607619670254656415176834173389502177066796664549526288406961041651907509413006104034912327282383470216664462474476896087745879680581881435459218054847324774871137141020694430437215193663122048667763521806836076242719150669624299206229339343222548163689840130672751613643387752548155586833748810532936452848521204294574248825370687067539107187774128640540187495668783542288400784115264681772875920702100713171162811334680397640961814116476634387364933844690146664914881750474618509588026278970482358100566551011712647283598568902211767530061519017388981126742770789233755283118978210270729774985466090733958738151008718468598667993767973131118227107380764803116991198334710312022483710823870872622877691282468329650385093057574971027546493721869195216993669130408228560137002756735613213981769130880635986445593904652899942208245535369560748923759911583804928437663667762603165056133299084710755435423214712585556047943813781471483336663321153160189105767640507215811126754854170993331208510434198726881287457396139878592351201362858551762883188121221208013532953431694260826652192978045311948538221904386726599751306770596212340399098348038450868749039663868671316622040059656321914402161211550807693061242818989915294914148432378606738034953976996625894593291888486972325444658911461132466969396888268538675270442260521375831916385087624865640596371602121858768284699351112151428595653307069365035381576323241799903994968506083172207718222344725292031481352608229635352323356360818935616689698699454253256901222105475492736783327507421355653399906314948249524116925131754187619901293460382367804010263042249514382440698158668302985541885309762886858421947462081915916136253718448842421162451520049378167550279342974950405010356508118869931434300005982466461012049106985117450478913932305236793059479647666243838218733861265239312878479640164619364070396203850469872452672941091121395941861533532583814580572563817910943122550928670491130789109286621148228064107306436227549713350204958442296352500266900384703924587075262486317342584857630753373653808155999445719021854220636311343435376221405834298075859529047373610515885471545247943855291822565076425985529160086869069908727542216391124359962379430478477308837791365054556723817305669821810248180359995389971783354607668024224371238236346394324624701606081802343177858079040072307447920330875094836979313590902970558082094551467151535510905877326284278028710086203455384472719564515600748855324222187891816364026839117771877312031397006015737327790662990484654170771233092360231633203116165703241378907395300187008450669925632503032173088805863313654374894573379272992712973246355190859095485396098470193514957597001135598457166521096378754810360491145078102292623410495618349273456036185973150433060597395712347537536354667395957952394579737718273574745654912493082249864110812115032730296774837578985709611995497949391189830185516935813852676769149874996140424621591596691515002348236849061979118166171314992598950422881864521005248822184038105175819337849232656298548792401123435112083558775602205643651772321548385468242187404065433777902355371805565510450111733505831649809951342999931750464804654446038303849688526893804837654232617009401271737668120629853479706114111592741571748193305087822173440418520827935151910660189479767336579795215462349221807874917435594574108065301777537722404967071020702876713837635783343673313476515589805694365400099337984308770576704155853958887698760835281116252075099607699117521973863787173195605809778283556235759398234375623526388458954638976925576248243919051349042533603318134253590473889627281777371133957768475420031371321437966948135776677202146027112853526592110216277242500216645047568120639365322850097602348018820961293859786083255038097868257414447183664932187028961371773245036544792972549132783937929952125818141605932383431169045518250807435390990547563861145353531454639502479610141635610046185448971571478298524619676989241756706681907406253457526089825401426286680444523430816189156640649179428186334605874165799205552750739510797551028441248980010104723142162923828833352087634741676043074775983140578066284353827195925821437312018348501288514065873638269990181191927695992975970695358716671401761923538439311502468562110885526883517362958230639180459862792143755065750741048256139185519098288380540643644137072849011682190935628988280255739739108360306792481326251609438804225455795383348229743956225319848916021070791315265683667566617317481986450644120476964674695671437077982320283056842675564551544918661117011694093804594712802583675179228249349735555683375497437047111509730715076877989060271451682042121240990941044163646562802357634904626687881291731145871062470965013771139091242581422942276335248947068457325182907079360131694429455527508949329285729661950357371501026612838025488250013802712893738184212937303811442575286926176476548302151541837312809900315498743001606792276924620610184250331813528678772935583882370734287696823250966409460710019537638455728915351948131042921072015501837909175231060986720537135519813270151548123931587176858783705809178646097897570746713266907558490724607055371468017375578729563456399971389728630156219090382812526373694827320576371510677570820073907716226641433834189268574199243912997784249080553984302207511016099928300926341211966333570888461190386207598403246041620386467918511820895782184006288434686532645274268178318206003380526631407040714529452824074514120660439198658172318746147759518948163602326364053614200337567118495615313004709646794441602588138193688125141858959154709788386164295352937221676712507702433897692526256596716029186371852566908056596157011333187026872505322216702509972685900320355836900088064584283970753847119689402362518533783131871642310568753298634402419950005833558626373022185747797043693189421145065722520849648826681148930129393087998629388352901931103123268952455354879297932147015021855573385903931950514584843475148540614280423241156507241981238088881301213960822315718004415407470958423169386811123277741962173747868623681396755388660310269801998723627115633028084249566027593358200742872157120684647075864831198382738880837783809997531083245908996662277817421250807914078122135438782734529935091215362069299211299501977608500993286711075175090338951911660793847490231358125974867677156764024510030840514688921079552594984901280198883061148261775959354798632923207677957410776153741471044669003662783522036257936608369715344126552251175639298626719482555279009284998725588698542787804907833299726132798094040408298111361571800987376568169934698208263460522211293772824535593682929200573800674432241125766474769074854542181480691855373190828904905004533999087559729430250192398075639907127856909574916257786111182011275111531678911922243941071323514066687398542526744217644447489154827375984290215737959475563110126684476715993206067008913126019624067799791741775694355563919581385131554670866842197743723195947307424102934675151322449051896764165593651100772164419962866256644245284051023646714312996869726078678070230754530152096967522711892334556465389184596937325835283180597751321855675572428287291765125959016221376242478923254904495634560488632042675259965845032474299332941441317056638897211147419786857876720222936587428197349071320925605846867724820619064653012342811084884131385407144376909277034102117330430559615701050277231727030441036939292705324366908280380902449379577250697133589851936518320537449731363151971943843776734468502316562507537323672629507020390675755132931645616439572458099846785364125981958552495657955276579356452650386099496285185323259715681953850116940010917555359244769140405350595111727639738096040989003844666093282409653002236444694964948038376718357400234014557076689403337775240602893456548928393221733968498872199698764647438793935147435395531972311482083606816570621009975245675354168948016357716399415925787668364146750568980283741800275960523579504837432352275712438096504222657617826198815814743040326324485475837834723729153495529849078487249767851173620909076386369143145212598420318363973322894775945531806277633352367878353193949383490780225318854111301601061327352742282382183430980020996142767881658414105844077480797280997652607806982875243929439873912752194976093259499062769120013089601053074952919449064684679570582371812709704037722224072421428424499803356120359095708274581191888300574900819625051352543853159567620134077186566423871336586515714326812982032911680913704337785513336173825205425331595360876729917094342211938406817909464503352882235445151033307830582413904152445827152717146075017224570397667573710814906812526510106697857870453515632296623594018107135071235836432537597018495505944815883660256727743729296894601480393100655644598957594134994770801592412544487473510112041983249814133975503126880686814848220911857496732320289015546580239372394560287515478156551124524581976938482641881843902357255125209111887339888480194568095696198354468077088756196734992101095620490776808218871380447790184061066470379420329941425977285706860486559542702931225202748053132803598308695506849867144548290040231220402178270041736639821395445659063698993828413523164846970852033668836352337589379055540719256962743056663819828280125841752633590526272028875116021930251699758266014606158236591159524362534783863496641077731560270553011111956964905055225424573072476467702298954726201358995557482684722589344877512518558641860656932605335903756609256710094490550110340914910434055706549677306744566442752542390249482087459963238801495224944718238012420229506344112555142923649155419536255544054250674651656838546464801740966946470853740583165822563524870034446449206850570204107131783427104928114274816632980744807467032111575177167138521792765653004591833880376996592072343142381725215561668971335478488396552732797916654876307527317393716094827816632537903702629767740879855992166459235295643767878871716765292054350551302012753989738087217311702172077952960766064259401599176647846720045290039076656631241144038281275057561569117347350222833702638418103816108572103811697976741348249477022476899127763165757782269120783866070661617508020303039002160962609668407880015596332582350270677992829235323111307092082674436879946344436302632176885549895053435400926585588376129784756745574712300362364692400268005123781675570064467846647613904894111647842836120272370619069924347777659841105900856263695647778441580244844192588098910426186576498935541634887943024759153782896935148119316297361595676844560147119391635150905741109699870859797444118336793007679325419987426625800080107358620514045117136493844862238479202391469159184880958777415462942663827375684646388264118470143978478259367692253551366673075239060478346899780211440553422172020571137500555650803562602997532932811621570227822579449163076362545763853777197950328458432874367802120582219237505879003548292396205777522556630118002343221096990354611043159026308495210771515970549219435925553101150945774358812574863028390832495219223638881621071603771157890209944097658642886865379920199364733323658500867820736760825755190813590516859982022298195663735722339539627580200783586054601317350549850452547037388421918026110044844960954538941083458943985403680358075504496486126820765102037146378585023580318648046358546779305907826374967112674347787750289081748333170748092188969877772871952587820363454146931902117911059836406459352508053832670673813105977492080041844956444688861226438953978459852683820207671574723906040645017160036619123801726175151717245878485547772977202833033555889398173735823056409497021330601053477491275727123518811551877784853352940996402366135081416129592059019165382957229791863002789948901254707802660535481901725190558600237311509291585031113958584873810310583706046032287212831338221483424581626751425951228522612433639858160413433564387779997187128070597332147232766653733271044800108205218074231114340713288681297951213883982181327319834312870769102524857391427846063248473923301928630615830950644134525211834941330488126685929110676520992870307251939461506765548622677214616734359955554183551366919113960960468273696350051517008958423296338445595653387711032340732535350419999217663716864804896929259349731191929761606817962725774159392985279020122012814304075377514049478226559032369219997875743457531665892493100534505993392240969049676297893376387905718783116540922522802970063406156749190642594821252970218147632773924911962163949008316313424923157771642768304034813826308180960110606682308779726848981208690293994233697674366471511306620093998980739067967733102259796630194646521789263941299688202721257940009961092423021292839152985270258353716822974541566601335783853515578509030470091437105916660318275039147563186431827941274969418836731821345915278363561734045960158510404299883126242379884704983554817170272246318998256880958757102261156438746582562209261340465483655699524918645724940545973106956572884858801258325304296187889842602192742194195362942472943610718086139508985472736604271691303200562955373806760041967176623270776819902583754885124900641848601429534096600445848065814965218679965984277233003218333477540903913113338183746985368929742083611928980522405771454436748848626998072299235921610052792872468103310386959040259664968876759402958499099949881753152336989152105772716466568785550300413776856796015233195993929713031066796890424745216274472932729850560213876474524452926860597217046587393279510605270928160530804560858591559672230266309302620793994378632718541425118398210463153870714784175942719270805678037892924445162329774624176628296844414895666806535346063484006643139091302278852626839472814854515409778116404367792431174522087485539238111569481992942464660767857833005989847119390858116118851191786038488892316812479841785394986992693312205532265953735027245731653650902008289319939097105559033534733679142151400208228394366949517343869605091291145015692371825646578760660624559926736460031267419289913432570332555945164954013282443909964428696207681202128414068792489370439885305809664928052613712012733767969474231705755897956155045635571872868122055078353755717990474676381089999741470523670645135972803857877145051624988414046137647742004162578150706894539179945136846540061754315680573718961341574115781341259143292735217909867908093613375697853865177341293755909212930015022433390361358907536502147864053864032568486596990629807286638686383857641372385576436783420885357747675280409352511857813677036156073104302732021307776787082302301376413212770905481050914386124625821375789109912143126373775038240763877897364433008707514697520396898359162978866268899643166974624120956071565353431753571451796588921258685230597468147109145532472669076961459727888508835052271880999938827719649626707883543659847511408712928193564804715981644138643421362451950237983933008582133992378075218198769850627793035997954493900946578210412751892429609917062193382642649296869371873410163178109811444947350182670297612605240389614515881350184232018373153848373954110234091249386930103349576220820462435333605867496086033837893569998389325413981898231485469221802894609889699617838409100246067921774889363796252782740265853127961300896552124876247188282603723844211058936884971228361750086819933592803206618508241282644402359408444951678528536714195615195193195667369019216244430047284427537472351402254691046168382710255491701050160206544663574708629571259421819059457441620671639642723065332362481748806165126231731745446834629972523258879344113082222467182470676746955496719874066681268049638231873987369257220679426542532535344517577688341536420733593689692088028123245382254816265994236429412479283138599165847650132560517732630441449191744314527829242732490865614602042794027028696878230978828721679700549779706434395552177493102722556707314356680752856356350615881514413075024380103468201073677361718756004050338458543001541297237636433416152575851967187413813056438257133995488543321143868914639162542045193061042193337767661060580820211637284685688008380415013665485260302735424636120605278403505582312670055655127550599073692835793997368147416589750375960737966706825137602978244483794176613030371432228673857067857078698577150824808928020260479096337778161018942961999649491844088345106311495938316084746889852238787158566942603681378858439558709028046259707618168434868438443662842616061080679276560166672270567444832975751744002338274518288911528766506531503058056255874739926059994700340918392558230641408631435418022420927474835758569503256972765024626193989251838155462459774363634767432881132857899017922379775176652188392546485865453538186843786459384714130232241718325850808495499138032053481147024194593276065339472672002427168829136682328110323175472722076028734763123544116590067027755130009871969208333046026807228848015355340198223454628369512929298843918090536148592554986282518010960396031154682375079307296443870889362346369867781322744291188009538879732676063656651348013326173369042678246401463482256855462891792276436924169215028224451164575711037575323890663155130782600009959614699480654448700321197768529035484642872964942073406894117496948390602834515327598177555521953802799767064971945173476251164573432383733689784302339783782290782645255943684139029627176946212771426227990139794563524277339265456400081961385404709365429320385600775913644524926557605321876080687108886321401947281516575626992907396957750738337965303988505375356543057366398545733498436773840064152550358713127576346696527383537442479507724518568490307411428103856279803300057443678186635787622782164656205430079783587173072713281779350826983064190195489789540051893969535965989978718332936272242951956410108514264403270268334466793819707222153332115049349594898763778522090289550228022332774664919712820752453584356733109545583133144068017244573698293709379032774707889735131206675023122065254646834709484926788686096716368642851277077433701653427642091825825140948773616453640699231129824378570803022361344080067821457750144090321057461099572768964671763387574553129751323917052848192542143625167576489925331005087475579120179567278244060167847064475397028783542405088098278274151101107402046945749088339398286569501883248879280255144798915977874282819510688495491392790514053240924193987788028046999355090779491235460165764540550016109265999127473688624319183319160669723081766117781544280542355310527367481607341108885047411018907415639062206500540605803939852712310587732002628863856661153529159316301758407646524381488695613885156493532247178042589259787060501239685028918234915736090140409568879913889143678057108660389585426997883776829348486322443837776334582828603111837018847172947297984475319598488483011380046614305950428378776297510709838839057457895644243602862082819309061530773577508048005726722147812730757887231920314068728889246689627083589873913393022811589846980466234287583819933196094089978030539124599918430186955609635154735543213606911454640450362320900612065428907840011315953644560113727559444706207798199122350723854970871379005268905441906651747459141343150178207063611360114884918627602687288220882850371753244389765223620831572225785072824834621537428878055994068996407429524342034869836728385061276774582086159830188381155437599365498169399587073069063823700142452153874234120357764673606060988423673060967629639930417128431546527940874658168793709259069859153377933701485743522213413225501807260649146085908975194468622296454831613703096852981622112417499879848905666329493366814095122489562509820298680621954635353435215840165422131687027721052094323264689767678498792125144019277983766052682507248598142686204648584778213993824709012039981128534368556309164960271114143878918534169808796987926323779024845765380517965424572428489005003208263000093064078265034416371341486867278124756133183640883728400367343878305578143482267932502546626143444225905467597064150179246669674200245971924773230678045834711483205088892267203957279978108709702722007053099025216928659491351819902070597347657603513939429982611052068846621539973974414185769218437176579090744182651115152848378646703310246952388918782950627182454348953231033497844093270571068635421051699548992178840849845699295290124385104761124637022161887512612749860544226953445191051053478715997983221058366385390922303660603939510482658824686929184711302646792511648230773155311176428415746368058905507189718519385644379878972743753727409468486528239695686738390219220911899372911384848879755861880295578016320716304023362053960484066367975562841921985007942888749024450670446466859077566520682078888329472932212463668528250791593207445637769882942171899945124126588528208145029849170744837467070940994579960396758919558710476778112299516556927512752673716855509485311057854523425150794559282091259436028203614301913291371464539798379274235074242428344850394040479476016045855068425557368673923509206276427241419117120150329110468412597732462837872984877448954704663320567433031315853831392702439089846170301943769741322475767581909665830875623326201478561565895517888356861974203807393423726815113451069105248050908952920456633601079432357072742916867167837082210334469910454817777684835059642007598165363112077510254474389862427700761689853662536128428159121092081424925951884587516055463560883176278064409801062482934686356834906878750031232145640386844945362792724218142725547677213509163781661162979516938888672740355344157352155536969415477717036144952160946660975331662602717589637531700954323295600576422775126492268270822385473402835641218754157603537591250533923499061748995366360778212107121202206286298015179928922068774400357141852871700175708482535115077048706922171048715238373243822670491391567093331557779075055340658077120981150988887283760626304042796875194175712660808465597556751041350167559934284087269635392224298431246906178229275903665787823663505404198895646215874813884280235321795591501269088121345548483483010369947211978063488624748160105651448810548165134637985387238279776018078916393050449021920905445308882279194310928700862080177207698522603224577043300357072436268495983938668248418610045652812721122953184591675823644318641700626231693130009733970432760138185042714890856324553049605665033101591305202605198909850956224295818255349629440072329077318419674055796295937858871780540685203374148901000513392262989643354738037928208013007788924374596252198777648794157998426566181425599772331931160710701973212892959913148831973232954849646346972736240155057483365016473429806431463738706861950944370360094254928130584108545144985316331423808031497915741533633945161852915675557597103400909374492292927820826375558031159795525469058245670701557685968800315876912038390599756195408736484901446561891417050359700872716792730328197963454479706364184631421310043966637144193036105936186907970053244657660997128242133010511799495004616448153150208693328119178093448601406257657107201293224086879807778083541610773431874366261867617992402573735904364783300326218097065758272588664056720221751501925967940996333844936333663379364514240641859906517144866547640714736889062535593364744578462177615897106372091260571364732093259717661201718619854344754803184106472671403740961601946142423115270334718122566133913580256885177325574866212742908238728135740496553432768604291884468620631060930865465356966006806357398317818484829978794344842403026766681724492115685414305343806169649458592987191210904264655714063886506896227200984050649373654022309718069036550587050501926533701900673302014701878580731448014591639707694058427924668976439806340902702058352738200165557845417904306471857920069813802073244586318369926267603806703727253709908558504510580611934762824659327250733362914471439939165080099042408467286526049678436012033566055512180595735059038968073431461002774286767834019396700274411161918789696492295183169790943525549088483349669432832949302614198925842363137890568871133718295594480431572096230327282440571650148594585329853617722409610438165719557196666650668230124819425481179167486583132704339902926318486093210979483706116201220865548321226030245520762683356087712170562455050533004241463912708953382712640136193978875115649935409490423605487664267208517459545337383514557259308013805103155143352209522671003044699433195817921690717985225246119219102076073539131871926539917499188681555469524225944383083676417455120435746010383594902753070316201650258852466186423104326035132017760244822098579460570501743337524947420628987075494625964200036948547209132374062423825048285251733807067492945549947048648812370541435657277255373232258244443774119072160019356977305093984854518937386013891420104885364750877159120386028748603155034651984971886759279628230500124416124334811831152443057458840348883999891823589637554521542300220817708697463006870444363713273741613982926540355417896099999402482428529055910511878393636542646270677031270423283933594939420742855114502323097057018441513101387319911085313791929120483475310142129206051360606388887843424073210284441761854520152669670894270654443971392151702349480658307444615494876669032096454372956368072618166215232164157107405153614758028526271713015246744162881213995438936107583201486470337111371729078432679611170775748959900945963374646428599342141317170853101733125926965548190423717756334552508477144715717072489782484070072445514629425971728460627703787678975708390711353636300415057313487002730106737699879055069430522154753639101605044913390375653785629154107043917707492641293274688011544438975256232310096816954430920481726170634988578210038106305374120967117256815484228145734678446756308638130624551694548085193999737690747848252885577005571002198448461401743495530013628910275429044981253916849187373896970650436205073004194233596687320793896805105079318647429256068311961334800799799022995191353020861694322595343009205447769473854087973858607644066942711105660778119694106678285025356261722330002023082729215761095521017879721884225351420327459218181604428266101530999332139551021426232102184943634561062726833833179702103631549696763670355112827654095838239615085445961295904573231948247314861180879846911532167053647141476748774354271984454732961440804070804727137897015881763606039376344306205164392550187800032366128000338225576458563177194793892678268629706442438618439804050936164101314555576658489328266115205441940360456308537284437995403952661160413542770335768354385000040803594392487008641706726182174063896047391640309054077935863985438722284304338203924113300171739074477641900904663066679085695733218838285868907311165452396343565474583613556384869920969201579615295159923824558029241856592312783905596939896107098484603090068703274722220152583719743813918247242798417807061014943962148702257542775909030432428724138451551346383624864116584148336799472914007617297843064314325695156293894012197926588726598865973210262762018879244811677178463935263031989151932604568847730485785033011443655913829341315757504450926430062811407499587813791051925664999652602853425315727328763697927047160500857493485425819324580151460726672185687622354533074218001918711313403233043112084805196525641942333947043838677398724280315158345367291202931403480765853291051990471352580926527787200815219104085100540164790245242007487196495439619771673195244261120879249313345331946956920961524055623583811468035082685141505748307547082522058358869571025074060446119654768501380168439971943076114508234150265207321205166770341225638548538229056571997396838972816263482428690285132554627771401339246471339062607658047678252603082913386990208911260729101669553241659494796939114690927191367394828311829248159201089225665829940294340796186237550661738123064472379813383957007060702612312943195026664203587722045288935433881472457777013295329370300037797309447492394457214289686629703192648443587995800748519391557139513810569728831906281190867695342168845009255987359549235507768164974381072272501386203759453549085287483607925671484946409202560622114024186437063968181669276171596027360967222950032707465546495780679046200005667652838354982033108092020202063926142117621726677198675447465301499967947476808744072396655401547571271559907680073052151210893173544074143814751987906472506332961461760295412099540854530258579722611566069745706769780423161014357465876978190982549858072211348770387373342219284683281149680384341578259256421900087926261462196816737315038916948757346337956433751073299518256283311732281896637567042023394537620101641432598405526365838351962143139204321181300470492305675284573339633755312139101696383418434832767772705940742797590156325771697970903982403773168289392784459171466475296256312745624428350069596447078010840198926953253191304988558064568158010925042831112224376811183823163784867982200136913819270412291013314691991099675260020811603550733279150125410178424956095661842531967029353141447317198676293878367756073096661833055575359753790535532731148078024349002092921956149522804424006428007602818690509755723959627037839763188578749220333954245921242710049347282980408332074929390077317671508427977452982175373292776182301347198112819126029907595996925775178366406784213397660893768937747630440794803979176880040487528618813053299174127686544886850502066170761966785458560236566370623982981086432959668585620059186555656164454000766333808118121895396411149286594426673726578862516591170501516742505293799044670754095156885728367232624663683899589839856994526326451900597831005929860499214584257173079351255684356264275324856718227649011601136116673697344285187046949604974947176944600071002908212558792540093949462006273578955246763475552638875647260294114145444942706712752571880355971445424487260062140851550798206174222416548722109479436048799855444153998654274887907299237224619323381129454952003258853145714239715978291731818696536776018975548695447272145790315617838569291124185243853220159424222016587776893470082456664717469305944901644735387466042576590171672678662202468620451530789071770778787458550126421626715972033068332217384200725607406149481952856892612028082579316727618076305882772313020301627983981109465368305845799692870564280501844576465333573273041199326778892680282387637373489121987269536423044178276310305138206905565940627805416917353586308887222260829703650050154517167478405880153413430908164636059043685317624124999283961140826932055052551563808082980855593315661971260079936505904574336051104081867227620875931519393286844181638601364088218004448799107262231678792620701316468756545465216364211080364210291056666033215107251352418310104918527368134020751372168108671920040289809645643633399677219513280344173683044534830086655150704194249081956518403573722106390779940416120881073949438752197436393097478676752633383495205045509338269592519627199693586303027950805593005488361813754928571929296477623474570855222639474217483762625198426639176223325046478977544417401051790902015535647397961658438781078841807731261174330333608816720658466748994328327654214260790159513593206950890256878005385001296391971787397589103608226398972296471755033607567452653919009402879046012942820341270416603849830677093022471964120990130869178001103826602973907469861173945696926641236246932732665250698775712977443628288829415257894152812816759154700354610789404203760234924867243142556598084682696157628152330720882599442922999113984433992041484850783342181620474257025441319742228517186356402745240091209829425599625305653560272086113277048157959947823610263025213823607322643091424920348521637274184939811919558013222352786516962587332488314145680019836670280480547280045918228921979301375587877783730343565348875859440015896443511905077481993791320067753249352961755736671025264711765012131332417590126579735299366930154600768166608821311522643006086681496088989103018385128765085890988618758878094354810791292117470425276877848321620421624347754527605592802936571970282974821477340570780586894237538253082295227043298448721717614480861205089412144103874340334971238212617538772245846779070114807563964946192584569770558308487053124236500477346345608576856658976061567998409753149192889440297839394105673859947933273390581509915886671802702489559022402976325115042102135168899258523317503272968285715310140850575499404692800733522066036845768588689853622362703717195635519816408637689481941503793751296623629184423278815084756577695976940020658171840450703251324989974637157838067353747395599777668927525826813633437293526288092632266478005445253700626688398972968766737051716167800491090747269471954071949059829506426814075614351782370992960524615062279038371436916429461455140231281405806872725962588992671334824726682878960528674670898327933291226196892359553069379229752252848040361418080496241493995129074510874226477388463496524243835704694232265311891638852286057576966748543615007320205906238328660673979898651363333960094859738648324542974317787746468591772503078301165548395420113223226435755500791658897728765151117721221221029439054619861461744200685068941175658839583486026301125644256742990311321038584122265889083337512480391601080285707551920293092966752023952944294925716858241121435250318589818323722495270095504761396160913641370671379368832733823643484662171155459012761014674105769237008656873472126477840093644036941589164631003939692585077305297252285560953213594427107360123884303504854524209061582337094495373623846296604808335749068535365316886619666688312372990629483363448580152799006521256236773177633059081428550650475807830588803747017168166962342963428311185396267108731989166366908462994871115787993316350506174760885099784418321062134173430259261640790500706367476399005551832053887047042096406262867615364475323894715286611330757221880612323445283664300109190261017001676206958859639393874319836345559335893449754851068371435915374490899449044676702149276713207224256552572205124441066493062812786266837097226379309071890564655608560337875942523372049986649554577149516342722414210667311576599781642054296514991077761827650657361783984339188469609453429598705299880393310308238555162946584170249681679995603441472542022905995144679375682212100725737092500490982328050701710158884259624718761136934894388511475489106700944845285866848962147574649215048668136314785620705061857998702848276203898051819317361964873993932096895419482284199744427964029362061441381169022043689651808159325295114671677341499842877278039960010313930160624597339000562199706499237714861826676279781160492939586178750900675155895818291191896648717135746756818663997160101734276212213224452790931845858418901774662362666005503408054031096969826222108120521550448623556807461811011570405349979554295171509674310833955880544988789797435388789749288053919628151270519992167222232512034576214131559970668070519979325175574173453349240945927546850974634009779740550830477280765651568239098965844963337383823494181345604282559562196251291295788748783269764717812570176722221320539190378709796798602346753943953333275091519269583546198731903841153717873512899733802767460619409343099471137497365485820769829344890421760243204482923104035485375196192928386367920311777724151330034602490098441560745338681602332119775609101501327901409185083586558662198911467921115688152856970815608137913872114622331525965437963844110980294486082062135752855781261760210533428613776597116234054887161331059459908219917949105873016585592483929297352073013824299324270674008656186290674285148899269340550672657625080817008942635924095837817648138099972460781154305867170941475138477417769849478426306165194898086770333525446679431452577389520794783038078817216030021812459644437398003054976467577369112185955110447122507846178456463378618475311291941642871055954855707789812082136290498886849516000453447873641934849835417537422335238887921721928274250544718354606787516088607952798605565376811199700628402062867401253786974428561803812166782495076385505630449767769683235105144748380761347859616136451744458327137534259827583680466841772982681563681011908679125349033188102401790610856851694652819129793998305410795648757255279525787872731173680269139330978496459924971479390825467366185940475334109839796085909215790671887456669014541118129600572994050189006185574950749607771159220341559365012492123925057436143410102449451416307926975817068265790311633204190126768970559674346407600987253135827975307385779156910652947467443559956416881473468798259375379358351633690668655812670488273572939414095725040851043843241466580038285050680857928306600537677605860317168079276523810276001787358272018109734219066020601970190895610114172175035364735463725420972437684307906440978134064891547068635496680505656727004203542440445900492212180218907982862096669700732752863240704338949752452101686143217014899200766907100885279376607654770012335675469669901978651478754395410920047779348392451991362282655600654420679158253840056896187826433246084873122074077487306108228313768621603461952580982119794873836281389238887948294068444088455540395316920876861482113949634755987934829023228623197796016024722450935818441470252094540201136060008364007545651509590114248411487733466909203314166919086603846265154476408789935938208119936323000570678602203514320010532887014188879570142504323318048121588946971648642654620557522224603634175375684189360754072676690132946908709798497036194197156422514991654240453075755167337730459902393448615387958214796746992463740517257072843580002577310118222732580783466256158842263467177627058562700199152003071939592791142541312099167916245162782473366325758302717382281226512401633460456973302000421245108973595828699932105670859292682651297860880025399524669021838682565656082092583600728360772999505679324198472239030919811908567098464978643888733673684665646738499946970003659730819428434258411592051853248542333517625219090642235479822054934652575991855161363728612631446268359692524751938535695025011659223241617993033752180431942287883374189322170960630074455865672604045292417405972818225415668378819801539168237351271773122932379582933084482437696027291291477316201236247733715061782205469323488601899362180099831541847046512229642105302283579575371400637299758124171427325698125219845626238917177683359195787748107749449756682340537724511924742014025501331353289227310211934803652314614984370400434418381193816556026849559766792111788623939440087607984534117110933943547760180651121027384923379861062957396053966718942128643427485566902870892143865963760411078140328390877630268305570599541138411636245571381321297764731950245292084311337166402677271195077799765426038993766942705445089210137356883485868688200813912849147289093913527804779609301897105286003850816924978035906056668409444954862754680730162983790821042498048082189002321280622463299181963833388917423696098273640405462560562238158237411920053577617293710838676435718552333298440589634857029507717410940481068005706630968278952999181331661371638945676446471328728111606406114787393558459565410714379241904755660945252073715705092805276203330652696822171314330419896405670215255818796579424279080717023692627794929685361903301423883650770721244532233087145182411373888902179987762590994229648431950107438403657743734314277395908423755346068637085711230699588623931571354396770638989691832893636401169000684318322217307363424672222208817542773106904133765722279419964571686909730646275144927728372629130397574521899738824365007365980215707629257198758833679369930989260962361615273226727295402512617673571412935627082326473617365480297712271975443323356137785263441101559371112363088669416895180187946962308947725975549132145772618882480449822829037245364522488431855302024864612861201036029076015998801816851946676370074919344955753161535825329535872774666014032196561721693593810149236812609011456806448171085801193111962640365801406617723136254291270123044576500550939957251408564136262384990770686678936633508725421602586194648967654942816727271540617106892096697693775399804357013690046392963767936126281522710225708246401811493544453290552299312334010450240730727568079182360274490917692135811028734006776894556372658568271429928071317373432484473175962154379416841242550869978412452297117886846951731638988502629970732085397661488977138336876989078248622615998984613249829770158161417145390405566698374957110053766325504957611022180403244131722972130141645753341823079984190993143680196779701749090313380650095979809715438917323679991031233549356648282004775337085215143085470056365139233769942351375698831438829120443307283982822358143470505352142210042287832557416592255397352820782518448002922597912595860241863756638810121198396953366679611068955019895280746826142887017874841223318209580875538696803074488948593172387129731584456523519973299547094512857081893807115807491008214805030366717228533638989924696559343543274242651964403891440874762625560579746222765467875934201362192761641850193324188359604757970676426696436369435824287301885155079312432573839085614973073181235334467041367990009653655712327074814270864440519951253714317442260551696567763070609440765285437067948375578304729679413119144356663273798706610921643895313276905510531089462743322679024590950616460002050959069676837948088591663047716677642624534039218196332656876704069449710174640292916647304095479283710525077915460270553851943125823774293552845219692946709003931783339615752772498601914237351435611415088087164994170963540822624911937939677545968562849012555160761607661770437148833058006684676030965781104118919891012138116819657082310618594461092560989187946977617258686405562596043171716979255357482578778180855918068399522032834928999001366221836493282233458055592969376336423184600955736257289268133386171182997865474949752678669366830381582247969547225652992985102012302460469005572753340121176142326943172245173204178453940446528451202223801493854456027859540806572992808329293244862650080843637559165841617012577619980822387187070734764273486475848933873740557332385609934124265011293745421687023040461616709885163059965109506497896791375038523648773111600215261866360179713446023160419709195616896933857861479543608790870990230362798617925789114045535810517063566389859809203349271551273986388533729646336399410758602678499793907147712916669277511242899622359384488757062324211481795625156847830846757056616237076447705007947812809551447439428225002045418917580292811053906514707351586262284018212195679071797643087752668977644559059032121666177886234326930178519173720726568553254464418431279324807900101344130437972488606683593201154689779963729912205937063348675486527535532971329949667326413500538538886962126992037093273581966377485425407545134709765939682889682616804275995387166222829594386403890429668678629933610671169334566825733943895414427546609279329806596750583749518852244814284409810362204121829427887325718713534920513386179502352287935162294265638587848723237203892014733529415693793063947291508897133349358619103646011536459422541447291350513916726883960442396455538967673586314666388810358222492835527476235546748081166633702747214743317823544179862077038120299546682418225437522385745039122731721434445602891498249368935601285587805284129349170067989543336840207784151020451883400607980488021447477982626585864015554109215955718298380246244117974764177650842090607570081683526194596534859645279646211756853063364271531366327234930282894286030400057566908528518107392756593097631020788393330741280373833234120755220271408205141579281242933472609741011233210199367076156722991812014304945585954163087192626469607858038099414303040232011953299728914763251175580958500278451693396346921939693434863854796866523348013226715400498421765218169138656869642689742816875457860085606845279863948132512194470223449511297541016027861497560467508874941008571821187111762954473165005219092445538574713526993664653223035548475999837750812475672672684388653409812318483992557887541426158173158366252502044790810211258209316834650287630255719890107117372431786497431987146768524324685382171796498914689064198808391564624343043978758245043486083833593328721097021774784632900934959095101180645461912466292519884886838183204091574690019101056842399359373575638233903513294054438446752820904659495576815847735926360643294920659229187743108463440113328787630287753982754740415975052712765319152875040929188716823044382071764375844272042259788124460338408922661042944965475249486218699723759407296801374042754782620116811324655681307412556320585118799152321271745681131182332833420991381235069305442891491888912585844549173076144721244118377419060296050364666472389243531885464101873860446834682031589312557773617016560939604684714158455332678604714802933371744033125343460770118034643388924533629066609531288217416604742814608284708181134080710395132762773300027895804284127588701888943218736932564928729904379137451429116125171463759946377042282462494678661549542831584026817223379804611715776657911188355286993210812852196841259388461098911018956849014364900342875628714042601666106229851315248364473662402219701620624795480065279994592104943109119539912753546177444892922300511750098895789193373851763222751378903655015742833960793185984100091073771933547742732163744806795480319453139980340255097037858379825118357675556307866308315372051836798573635868261923933429050283526402394892623980274615439447525100728135979885854124997074965660270024485803700674418917718132584676117702921557019356315829976308810771370413482335574033669767227475455483037389182565623866234942807567600704045912368267621167362572041768132121031314303054551518764555224134729835278117290297082727505502442500793418742857756353119879762909671068403048466032346919629626339989365435714165133924730312232268568231772986705390097381254152615752458600249502904825081946324740270862094665850795873258357172004373347171442179257474101540871596684123589173425264535497150645830665983179110753651354528251496772125475316460805008813495298852152213742763034252556610366507024636880300691422378840267094121379677066631312801179458479263467126501748606133019050095176416108975211421629063195995736854248976075087771922149643214155271281061167387891888447141347060821783915823200662340477822092672028732676539268355056270694905296235615862694628844992308937061411847066013584349693661430163174318787084106435467807526689343494011998801269431556872620487428950062670416255716825869286322663566734741788159784120858810729628202693539574650728757480639527751677331808216592052387117534132287807748635802615574132759613496144149911930870779833548155737721271521672929806185975679017493626468352003773787471629450305204321642167810121244050686868379073364397641078954073306387778090373643008942670708988741414939182243369614182362978417669930723898817178905844804571338786048674495504683316401713650903164252285233890648576827831043492198548010388269849518403190071368447718421254717753635517232342393237032108725522879807414091146965076909471643738463286990563114432384518952017847368115883672822797196447055157852750479640018789676460287821537540299264179933716078738483733115090952015349850571335249188376362041307207411256784467477547814806793628663422581465936262686693769728895485189946730219235956177879097844347151906531416757030733586305125828392811712690150112353041388385040102671574446163104764438592856023988312330387740049701032805251252033634606024557947712084457236608245218279588563579600829136981032729333023667593048962960541229458793263269114734987278862747133154770804019520908913781314645643067976380063014082802975437900558840583048136179881149163719528363537646849334687674667911197822526908248469535237582548979564840844344975160593195611570141867372511102899103291925704408133588264625486573739951027296551109277420901422331784921803451145070915864887264558838568169080064426495488201001172281364514699747962073106454902625772424323928373358955133950739626813112973752182475468429043872858109301557213660244135330383856956208628757671101167692801214189956809612075532883014529150936769415260650839434029397769142383733898173024356893652890005946702548711767584652518515330500213527288746795594155159517273313681823786777046902928145530260816973216912734627070997169753955588331549001011351870166641988516975663063172530569164120686576682829153358019607424002250622837885730975236826315870755895006792755456880471161539679440303689930544606838125387299257711497867657093035851024355630487495556353129789608020974961814774668409835425541424911359719848447580752722788567120020019435449393560286093994608763238886097024504241339689076916636575783724460737340694592857425530375062364248429743213599747676370999671460057315794170966395333314279301067944652551180380474496048213228587678778033158850013645454255729011103920199954488636698250247667407849938504972913612331676816839009034782089619034457716104281058448208645696258212682240690334565733178031577441592130926022192275716089604732761617994798166846560888522575628092443065311191291789837709542820507559508954547891607684781278175657939611891497822768872589064148864506296094881199226254420810236863604950324149006379799319599439510835817818307657133168493430222929124039390447153681686235594041051354741813929520377203174266784166846689475926902166861712650628443524937094031257649612038262001106230069722706990664643109905412649614678026121199517108939618943454714258161163132271582422426909749187236190915699407995689675002630085257112795801175195164214241552034369158072484150429072530909291236987479321727865205047910196259154958460749643889954244864598158995785329031236207457507669824467554003177477224863147010943538270175881575204244753740098803944379646434478196388374849602279168844784669920317068150679655395020484649926968236646692826993884852816111644172041309013222120705113714624421428974422391464753934799135380182846055894977816588538675449762143747226685088922126703651895826009774750660509481376130676543713383745960245913147947775873941034414403983336816912474103055024842476086970709030595529959701080092296188954274941198653657480188023684895135330383014035217187261536822679692384761945918638829630233973491399040572494626527650277664591712706621586971613930594867672116610023092343446216699151215332736433212611928590587298782215646519599279284669328844354590151939801648517257842351142732699559759239255009686294564411737729775196581305482651167761202492689408968906288165984522158253170808760666508954769750552085834873713387133128462229644994036802508252103367917978666232580287549594527294319432806626852572584947820224573141067906059930362086511482659104575685720106301825004441613324234454595291076306387669179714091365201422356971908985486468048107939563741433840161302947684824153427497754783612344217060199819078208921441471144578118152922106817012838706323880352232881230632225887361937774271882677695704831335187871949277303384054896733641242912804778222869121067015147409761891741814203961199945085327150253941712072772648154876918364255501147912518020707858699526251838609719361219035787096588131016626397559641303853792397604737499221933642005896094556411674860277012677363824888232704639106905523036895312402383320368884833188002588178066054206069297387479167267547380507709663657976347385828731603563806649441745120477645668292430872640566428716252642460034450200463040249077360157021863932541119122995156247766556904620777035927694486833101959822268665321205261233887371262891428332735670527585530979122269475587328429961286554564844867609242622531604568893306347236133543814914756111084708849939369196339328854050471829687129118187111648229030215172191097834078249481890358516050242270885331342393838718073931971557152622800858713377910213682137842946782891431746163322643506895389351182282149572658646590646563439294651932997034292031008332806230538003754783005287978065413739688838487404563258873576304625124597701835817577641200107560632244600302899547021536189624273981143642123507866446140041051733463563567561516270726105428819942079466358556101845185479147378585902800311928456798218423709278980898644758590256033995958026576544609656094364426574261627149134131878210026084753572019555944219578488038937006669329609489985968987613122963909758272681001097169527207870690349500964095316373886881918589166293866623684128437553181710646366731179568862546265430470858862057569236998336521188069749771068443757250095310605529478903448279174472838423135827588276031025044725768388335315744468104354089683940040069097437709747305124000641210407587040556536012022330599437569646793897111585217081561014665951415376702295086685835808547085403948427621617063647005052133433193992586998048708511124722689468974824215523722285012062901669903564916248213930438510622331970709110883562655267322293609706620702290469579201315267021921129031286270296898445559068357546566693306432135396922006689255303953381276621633820685007120074456767170534679947738971640805114355993837900555892542064105493158364466775550291663865710227039436123973023236319608489593762334139371935002819000498241291385204124834174944380203848146482540229784863488635610071410160111398760370617785875238789769208568835519930427793348427360249620822539950668266228497590827837982917961796015446193051922388966524136833925385312783050126990784834011202079587018827822786530626236174236140225508900616850831004021457249151944369442159174821414075833590480201438621460903702903783587798471798444002886030046440053681742518968266869281873057058598077899561639367123358544784112906381686589967297384881678446723643535010127868978344822394626765429914551495095062758691312031646622243645123547087086045058574661537277853516579144785372982106860847242663561121069629070834465226658547742079090889726981874993435672775759873911404626564681406261519803255509784119692499757342211544177356997037174102400647650047828048529618630449615527133309378859680198696191119436367320361259981490088195092480864711247942566074419681958417555233606827796808130064910515482814731574942945515176135872624365487181520304385496636190773838474457195639754037361252809536463831919875665276783074968663030361223083857316515423009452384187433460716381302692937223861585781479875703656992222927040537191516802123312613111959150714410093589052818804390167487142967728985999951832952748170274160444113675256480833359342026799616237020581032893974165806511435552029802665028437848564362584346975071221242427103362809263903825428827634385410085065328117749622838001127347636845765112952683583309560391881856478429910935013391630693454079772998324790502980605567797974558940431331415543935046110409547602182138074487585712544983946391782011239594090911258976832859906902136557367506478881062576072135170458946947366433689315423360463943079420194776207670927766856323815449081671491746288786965375658633420946174062737527685905173252879290698888697594450980769269350442501134293400563625286452406874214068829734536871695007016278008191680008883840830464179518306229944561685844031749014375012951671952089812378880322126640044168779445699969004170357982864752742806131213768727878189069289233279181049938631897975972620079295287096490639669028650182587475351141354828805508926169141308716030151916749776820714333716946225170103632665611314853920294531399593696042675731466510203392792035271817998137041834833591673146597383006338110677888984836386901251311929967723415012662697475267701284205632027855280231055960504446296944601460880553318665949446041023311057338258703973922966817938764775716160335553093664644921799748150517822875328001216508489088499513459665132180595215786536109661008577800018625282209378458594421103042044580746667292269908907673908396112204231091072403471316330256259925399286924899539571641089360336958334865505380228508583600899373668606060151426477751026018310455625344277757800338554721222341077961655408002062040681169157101337486311918732691735296718604186209954220434191714000789677978921756913435402397416994708960199268094008326453777836045138071497011103665707963337053706613967304522969681432084642866973619493001280187927868407103316694502088558133972575870006828370799999250762684718682386056274005111617767775365539483469487869405094286695885957265906905339582251727102865814591719389346623394340322192323339850516279918838621794874085459424908914679145773422662822983938457608191839130911932469782990400463289298113115836364464938722083763633379391674552201035468455939620001530067555925050061940356372300092637392752379422485348978010761923089405002534556292243616788238817019462002824811893676755078456773242004838095281593910832740663401157459320723514657855534441949459529597571862913461453750301236278760673581501794777991413388856991028780678138018481260492015931365474944998857916726170639948413458401910533950787541026038927288223262182886626598347357873988676584795375367685920945439995521031268396713071697667495607667572211116436242271452949090661058632786557640030229719651545196057228701300586369611474500751247117716865681938673319415896143501637124994984444832162695047432462534301876274052635257548857488996280765130737351035908845147950038153814896557794132590462107691926151823783577006043979886633758120844488582780588790139301330997437595654257314991564225699043366884120646416240129740137792173489095912108769847096046654043202307918268739592520566239007862899872934315613066747872613324622989217796673218781896310658591599380018378966113665555328999087641034433225252357253759889577403231611430880915385378117634610433750918196982018698453921296679604211248914224562092584723358252499161696683374470910016316782363226811638843566121180108856821721690459649450746484679412833618635999239284815234803103305100152835144563660341822621267545845598637518711289242371534944077649953001666669472459895919197666062829482634506924145355737555117241340605030633268139788110805402578039640597570066732642185139441609873737367390721555541267495373500649142659754959095376782917124537550085766869012872866196888929384140375263575410374490493933423993597684656670280605246002459228868790664863793721155511098961390933760688032153356674660488746968185770606900216324140167962486074076822896117274057942684552845595137824355605620586424027101154397620183454151752435789137647158082466248057628469800519765809337824945985623763667424968842148369173647053146029771804926689604300864807781959697881959751859506446837365607327192457841227658971273573147299309339728876058863870205643937046705638416167858536145478241290546127255138586558142148498479522535979039162286896389141047144626729619848590344082866871898609446841635237120089069199483037769827109458768113825570146619479491129127543384811488669369459503150489671898102276412549932154889746153283797461620471589629799434615328967746093308002645072274019286921995809667652622991285420344321025472664269182688142199942368061632778284031442931930114621500781996210038092525004227574810508852598777863309890449479130971200486875567864767586584837455613033743216615522738873549792951478354150244159684411305464339755791583927778323737104018264321365384622173460324446477743382409903047005103642590532250535353733507191464500394873528223306964717124432073205489938784689250516072765234796279211900075134646627840996209799421821815431017721562630995475299986868445643031048780578897962040182109627331974223509596296199772166044460625567699523291387117361637191041181907354208406884644640094357920577764582767568631030929687438684687431859675638183089658653712922178161915058831442830633806949788156433369296635391356536104097161960556247739491460986246099958029805081442019700750708234702269931263655421516688967499991284254562873508321725300481816588687715873286409577599582696974188585187340206513447606394380600314057294249383809566835409320103015709540310758189810405778743611779501558414248522252152239952570308039817234861005123018418631431021675137949050596046769582990652799808139275618620940956420090416922059620100370751710401756481517313539421736826232749319252436003608065662862988901069027820947206745319051908308752394871577227635994949491601089393887133476258538349435460552213722818512204513975440343541617076587576503894561490713529385080060256339030577814243590320187944401110794749774113396880749549932086156331884094190790454742407790441554414224231435163838970887884925433295521786979586652933106401017599383378313389751497798286916687038731337568379008275862576458728669183196713747508369812860275574616338589841851997343582813095821063306858710425837120760343223861477424058023542864128034925285286947783800864276520973873480751943627695350950018748828841349152249471698991598272205466596418558323322888910317251506550202310656782184254004912079700930091771352834323743611468715340417995051818230597806897160378049782626619029142084430587004809859848189066672907968482708551041454831294254739281664635291312923583061594692873802937463987247415543523510709180842158001314288120585441454334855457316936746530881735791130206596454079173310593519503969780289196329953461477314632107352505410164418548561995457971605496575420849368742307010096556536166459989603003589812082232848458238244055313075468638199997653038773184494150602314227921506606389560844645722688857919089623463237348461844440989906645361898176014008404947136155651259120870870623050069049959587910867654427146300449103863333049628625795577256559558618231930090908379418642631418014923964925757082920667174108448791361729502472130594897730177725578329732044457621466179683448946343017308729802876765690462492859972453030593099034369254008975342543122349030610762541388962806678793323374686488607606012667245015951892527596058886924784263554856092303252923694714179156857408657821953841334162002908253419471449610866266962122697378427205576406561626307102252486832027088649440584089704662772769571208440393448840742652542537279225654654854296108824881003433014277349647013645541528303841784831889310531067842515318732656959003699222611585813179770347192914885539508104770408175032170326911813257817264636512448806865245676246692087217526974409840421750774364604826945712280603048066595540892053505035756795181853095190423258117955283917535327106984175911535155699183860850840606471340353451004027079174643290834668063474983616980871858065171013279472122476083830610580409987283625978869769965625128394196357044941829472186828965635473844984756888382283042319029129555426167717616454309272983068991839197892916659538790837789409920295462599645412861111212267094625161204333235997100731764962975389692671578738306691028063771070352271696218192502479639232811481488341398919228946351159843767641322045887615447090683410492373094436918794863350114815956863292320029291111275071487293870938900811741444493840424469001634625958389457343964408297538180151412886200446625286895412028855523628147085299594842759692671146056813051813295700307452701987137471735038864051803991342690985983456573319635889341335479131265863458272532991455395763389212945231393187326337622379266739464901757930078922195363474421045448813472653649174203470330021427535174255457667478864279383165627466854763729101573040687292972557030635126165307715122127757485318959179118305722868543958573531657018858327068365138845986434506905781561517960074322079368174157531717775114308998351510427865804009908040472844173388699214622258124341786404937877483639015738784745078703644831168877503660207279952448441263628202967504409956181743124924090365117565197279984418804173886414328805783970175304900493645814180404995841088242730700301771226319922421108631105582523099040338835096001250000354552184392831058334519706755159365336538094793351719708993467153031017286626032262199269149926832124903467565086406157891034762459411236534267591420314411264406478363757653602726734921781094858678938840177701319174406117059986519766555295790981062230417192498236520024986287630191700916674327854734752766154058767819304465748291801584131800339989333843370501895724677166077439109434595495028143958338121936428018107444658487479875702086987469073815185857608149114535158162241255974355226514946015320742534458754826928049513406466281737808533546610106948781916488450823713940480915293771379268828817888067402020633965271491727011791080363683764539270998703516200349946015665427739026415361380141619550956954258628925393877669591636682275857366377022063517772399398693043607194090952912634226916032717640899028667546451647457855040547665673905686125643989103925210929786041521064860857281901879573257506554701788300087874260842461657929645197575013220170847871592166697692931071056699933806824381157994936038077183004264242991157918953903634914519220077149182212819895410605198603426919154538826943099732627582195209857185274040333547115767997457973868994495773292285943052008501378187398248707740727047933631586390660607592018894379437590461072495259879549474746260128353731002842622809871264782030542046177377435237081476729939416533028311977987698486829831847981274112551915055965923915655539170909511920294966360207480350178408270469622885030547898214816618007145931248709084857066188725917004794695242250037939065642785356401561769846684572819907063299031319604838211146043893367314552921419987802172476559035188909004718818151653720631051160570018408975637841333989138993718578738639301886921915171918696597264866746794290714625738326155546141943389934371972123458784191864837342622916605423828323328466508746275167908829790676676831529858270445304777109953998125547071714677633002320259016775357507125496596828233628673124312900504529156158046301383298385536519534668313551513013796617736925285190246528376442389110983887280832081437929585914288974464779763636973625959907448473604516939550123151944814442320692382516214076382624920130311830264395841730338174239033361602706118741239245310919299629468843275023097478975999850135512913720440176676029871505722122588736943183635814316238702699038956341380177535490539135722465624852395352068612568974091435433347397679046553195740970523499975167918555722777057778906053813988336672634502486828575594238690847908438301408348291021700601884615930829512973331256747543607690465821422277271233638961957905428556278031442619443212079645492233530823887633126802984916563505033833007674346458215171711982229230858236655751398391800401433570145869645856531994318980332334059700090449156589369903588073085991353520573956970810562828759783180930131462403918731851402214673344040344006222465337634961200277126266663970752958169974962754589125845605414116269095287739580106961982002956575319033583987261870712294629663789673898904593954379687006774420891001961444614654590394982926463446099497622331253226354443071264964803849267883016612451200477346117496238943230433876406918992822073061536621688672445598349670917064370194577582849623386151718059230800568718416513800175274178455736255472798243399457022454165812541965341689127398198464867551296965113003414000540800944881904985487989700797186556743176168451117298261136799485293224659723020698036626018610418054184617590655819115966566759590969610131682647793619036350792880395130912220654259514317738224565443644121129448743428009820906493839906391951717116523060319940858051833129425659761186753286966813195734222284112534307670578158151994435282459159092625864428202369120939401282569705140157799468212168554808562849717444956340055523845713873400390404696631916909707350409198949039036693391965227325390027266653978664684044088482724004997589326608353099724630845327127004322913261770958689390262878566728366072300579941566291695772917482656914047079018220638412617501069501890214012613417849518946850591643610921788678555058063401787660667266408681483768121596218538607063808813149202881425435965970714770415892094417969103708725506286429549480503110252888108997096937973124815070500082441969276820759419895387094019427262402372302980378536232899447376965162803184083748762518151131912178610516988792175454994529314516674534226537107425083337616242903765135023368175554776202739388509006074551938456665816068089605509614088137612686808845417734655522629268470485174981721504928331544787411395945656415760972368070419824082835562203336774898882470719579776701378366063411139163035863886790039052920010310158946377419531958350852073069463680925938264111908372219360096535487690985679349547720198170343246123572598177704328477697048390872703217783235419978014844026803977217302199663075383131084472817458840856136326133823230366569558287403338408206295979952712951200736201028354873035821283915332544353384209947466541042494472458230061080476629341565476620050623364070841897083898675394478093337170464617412684217620991580549949528117892622817274239506230529131342718083529989264303762316791081789924402416098566139383015457737216784510532118775796618487280652609484377152590377257691232687042982930373020690119214679184463292207628730303881047560104280845140734848361889514585936687140867825727671476357859311547947750337109560982913410121979259670679246210908589930109247727362504924627523776209635543897521702076154004110147680571448639218887856419337406328155527693335468017219130460231333870060453159226720349216857903127104924119425427662759355212896227480348434980503666723342522571450572363314002312667796899254485884861389183721799533871182307482592567134221556555114969116819993494971699887629753824547650000186871211135063540440609205621469000574203188981818726892166491494224026776884626901019882505369817683414258896466150263003935239863087819902440001053157972574120199529370268933394131544319105882958754192323826143666533617844984695375822171083359021077757473676636897032241008521619738563965465470876421015031335806933436775051512532960124209436864651103448930411673597951078769518911509316352933850086645226995697639675413977001782708845646299935979911059423774418178926982111339342769461479191681212702636168739182638257846905023266122421538793959790135695045432045814865941436150136335562755109388732811359379558649379814036927847055769489608948734407318290234503539250515687098432581083125135074128105913833445417244754538104627471304366142099394345646287443340013155307983560372911984297453713606197578551034811545971900850303243701706443405232195522003906535538171828563174685191840738047391047987176497820900615959969476395568841811406085172523310521640554611097603899580119608260924572786326445476270282752195229468333112041317850256919725789002249519124623384935760762959970432002261937688864390807210908291801863342262442543369641820187687668283391040840104244209217606522612427199784620598758978432581179996651166908527719189061374241236626994318064114496578689923748782740261435734592290165249019013888490730845461980860522993282021560768466770828096419399046238336370674006005664985001294099037076237645776853148351895096707782929133918310727502646827997129011026715655855067679417132774321070444560435399834834878799256789306429496342540564838792026475314247972196212472428207447499632833051104884528893515018990409688264154697794369989614909918651120077642069883633862127249458863955153543919910512912709488805338104592490565290410221140310653421166289174984284847707239647857326699121884181127077124906537867637540696764148202972297025847732433572706476817785372065825118986606052694112354613373772531874709369207127990035654928900959566848230611488471197916292838640085779762526176410512497971369993005588970813583850092953855927604141757630194299650168521558349790984466926312391886932654020672054721002582974302099358617102474228159928342079267445114438957424451202602665503855596341305320691577195374842460098814661644482823802073647568823148221078229445758691758702847253072381654090881114227729828215528578798119751032369151779723671287335146567674018090852616023251130710114042820415048112313270883305107586030906306582913787120003458357871646681408247585154958637874806724584083307103188775998014832519080880093015202765087442326593278944750766264494611468171061232721970388547012393576443832698604535619135477498177654597988816077826158502143743134942209040632528009595441447887164803596489874776589181116929959476599223451094048044839568040043824149694887773800648220314726801465433660703478048699161441509253169834641634099108667024931114983726671972913281376420977127269351748022707961673504676215352020806232744808668022506686583742974475528673052595270420918086453873862972339963732174730904413600723227491095929544447235502933868727560807933037750819534161676691289851371549032050035104785934171329718030314376984432732481482075960174426992704108074748347151995278004604271620262241287069684673436869240976683873254882573708796959967160648322474984914301486157082467026130942437118989492698503071776542726761910671980118494480371685986629403424791015662749935512604165953489676041820335627647661004036948628392029675734213718277993700307285738151881813394418272560169228900449386858710992204072948733133336089874411386886059692054993550845523315132192954354025124280115465291227222803317043661185104019104036313519300569572101948429402796279479296487362292336609116307253213275765972018431389617838686819660052577145166851346807656828961603756778596209806009553395725657514196065584293049047492175716625936504622607399604888193931283945996974511168746508534698196868383145333188958034010923592263926578966552767159430755937384371944307211366271681541323914132531926005543936617578047431859319454989014125526781231875704482056482360579055695727403144512070087687606588255409638673145787974280553081091540814276681568433130951043968583357544393637204889247362556902866423984978672895759446639968602393295588340367101159148704274480295466031343740218006133024058824628803370606697670420262086543323788985402964665141495172289220057946164405940707033990296010802140447748093888522796666132954826231681373484872666811038620484368121453561569512061738967548103998076724058774977706610030217852638042641619073450720987420533511548572173755981063387961727368655572758110114321505268260968682042223693170376716116031598738360762001816511943720946494769416824037082810410201013972373930271505460975258276655346240012467908701599058762256112655383327986275151703740129959218279815414484630816835802793682152828121406847035449883486613112723202366695388889814058314140451110199514786220252392061314408958138850075982644302021527301837875587851858219563009164245205049830377277608620076253571488583016205461753695713913317069137687710993553328110655303800495615471249233717100124527057847107447741342241417021744666539595835574214435268831187877798233280941297551888361609999534855851386240138091859465506758529114741345363016327028326424448410798811275420668357168365567137618825403909673167855503027997272867552354257780782658286258786623009171439335178458564306346224925964628821251270290381353309536568431904547238276948025421278477647210255866341667791810016988374571512127081091110789078104709543840196919957461296402212883417394681324511908038181652055775806172511086874148786044373009539643028622962826954133017760182134139809567718164072257711419445131214890061461025771399929324101851345350633128722832980878269198342550460061434264264175591615526357071847851655634184101030176453480840216099645204301004118593402814136386794540377798838629501884578716097074467549458378458518577092098692775564796579057563974949578272426567617436463598465256610074798484830365619568418530735922955982962919726318899829733298971271096379632072667941591204485470841366358419799016153552966908214152677941112484557303571371554245751080453273735439121888146310515565328516151824211159306184843614656734874852074367063570017499881786209526774344269090800597556724135960655026654571629624173399939036496210484146065077810385250823200400972295213223873180630394418608948259680455805982198804472605727685687059171859703448352226894184483793754109543065564156850176163210890969711277975818878071094553155675292423589128441470620841922056213787674864884343625173355209409136222164598089958844275142814098773263626260497468256830212720693046739801079481292550675567794598916161244949136193001999704379792130778463617233329588688621602036147578649917787215726495643381712207748528251556122705071234051634449010984486469987491977403631801942949971832718471830025766174639807350482862504133340153513467658532610697890874722635801769972963675221947199106359222222480628996956360442627387709705698004620330549219771029194845938938205796249852147912033889472531115857598919693281575359054882819283311402611336240861347309518275115252269501963220808249517936335162996257281407703592449069604493142801930763923675730104111232660877922540703851109642837552434790310729563396158469176092813702518019321201912439438414246497523560284144254732908458737975507005958335795216802685264437374328785751506161646159250067012360889452106183494528220278344764938985543772637355052151973143674948936629446348966586436951424568247737668733318171014440071376032739139325122305130797452506371861772369351809227518544782324653795055667106149369729615914811738837889322304442401164341684123710249502869473845415342025564040070346428996538723790085452891516883543688401336474930502223243071858493086128329290373501817319761808987853209927235418685377890531733234031826768962827525731301486541141618223339377816549570584117519014642789095987996262783944419881155734204391633960161516229791193492577519937759422979532233750448779931939070661248379486481719417709345305765542509688362001957816413086331110578965332043417428761466754772519287966483798705713148275059197954969230974701275237261584057355699498368294973756799404315551875956076781840387176721249011985404607906313195623174400376725714106802665248703630378754679702578195555763240036433948487289063498294712780243977149891861097714025176050746588467537853865144604957433653210223526661311379830690396886123441611141447591201167447066231308985547337411585354432941812218435735407307102228797128996005428029975115341843101592726867158284096235884680994768107725987208639086231310407441348576461932411516619343249074890432456537039587693949682313568998614868955721356547349345502516441803313938057758693980576836750392118990374196169215209929160098097446095923086027076684277753122615054982168885158273488514823876613106567014936863884826779745669900142275903052740888917791922737076744894618655055349118862569868973136219137060818263932641876374955640924982887476673774537060962642826139145180519071975869953325337913028755886847778252277416239991017358177020850746650514176489891778306728139587208055968744427029323790435476886903905926029164110274495821824742569541768166156438535784246755427472933560220892733993937841748520309857225520147605824702101368319407031899440003306740845501133041063967352693399261989593377214532577068959322210168811809860443332812735881081474777057895037211951229287631638452376751799844650819180643150459852305483999665533409329117625087909247323114999550981458864163943596612465135027518898972098139226149389739537455928814326116633121006930505621817671512583166193608196552171065168003772624209563363960902138820542299193280417741982205086015020391177042948125548725570661092798952732472788952911971410557902314956614514925857408567395667968465764142346097318647426863531386581998464560302113867705435072866391387987776037866384064649646340211426375261878479178971428726552602573854698979070407280579961716589300550036677704714847011507969893565777378374315325993625146568780153769582666329964179458395648305622333622212645163256541142813347270566851323355473062024975072305135783793231003703726068604125859583571820434272173657532269670779048209753551716716178809994220988594763248940943079531503634453154499838911068456316819508513671066099267682738452392667390494601259563711482700047949289292324709265868777771830562678085570094400737073124526834142838182695091952250675470624556046437034112262343260768259268980971179262929521157295628016260645291900871121471838293392689298799601483514062166787311812826707702948665470341500147317296974796108637883702505149200225213079714471398521523317208637961019572247985137260032738310302703044594472915888560106952548339223507554493520503166611736924305794595446428245637944089772614298782749966061549045175303343762211492676223338982928385479652015957616899909126855012879496152858751735466194547831465941808504502698765971913940132598200963040693324009000598030023158273784227119118931971320639447577596010745259128289754753615431934012461997058988776147616290390814866922410235537295412047233614198875870914334543769081037683384138620854173815474135366938886658065517615534056745056095457698911000347646347263959272396442134407852191324220228598730449683259624244277789697698364788423144718433355436541949495930463525040984259952862233271647414070390574130614191364840055106748939880176201463475571229290113718383048735599506067174542115649789294180397523191825512244138926876999629570248115500576815860115555947893101099709629779935500739492079055325382889424197325581044943998213695397202056258640029308230995061210086349920797102377087037630863327923966241644414986208778162847887114399622052065640020542237170350930127995252934892134628423124183394344070331908249206616873255974474752000614283096843727855948364512838554348037127685334038080780276281968251798130098411976462867439573520367154456985651868072267257456247947583172879656587665533413073155880283261213202694360526932173188618470965472984476596091181818739781077355170951202993176832275022010445763530629986423950339462867234395824706425786194715194353766484901136108183092882665455466636801404808877103978300231322747815403162784960975070040336527831813475635122047072897748413464234242748516797915068562532724794809936754070801034395009147256133619853023378760051329761217565424026276749853915326059865951157504241832789415229128575730130292375969431281360127990242583827633817339136467294989009780735246086194515273559217474852544645683930861610960027912911378290929890303794499576081987839799651857405960725853539714954702554103523171069903405234861565978991426614822064288366405553324600427204875332455240687508308388862408875434075318442024121163359009432422999108396357264568674878349116583841432839578028013989977736408505105645039534585543896385583553742519896818898982874913151021054368881438238147922194332774690593634849423483623312083262930181685592952170983125314808517615743559477432747509430283185493372019026432640861057223448371830310828240947612664491585551993671993347585412124209305291842949288360795877819833694240186497340590323721776170072792836523238574101546472002280445713790149741500445361502313902923295333430758882356198587252171654801557939791819565486453883992229038049404273881606980962186336423287454885600220096684652205303241225984247475800844527153657884578095414942070384380486205557404189543793498365385820362299746952478473896747057436449967759900380598078895055508582481287290500870473450072351926660086055671640469098478461861216583052068394158125693744622685832716833044983584875677890732080763480519238088406017397001509265630938181147380823972295048122807021108379651786339027538406895057897578557660932874375362886214909757115269381501799569358518961976448366955748551868330774967234543729719258217962883996999212453788163385466444477264103824254026420269380111151385869382861413507777295104681330845949334386106785089774589923842159993385350287918115977840413471181051808363102999003345229801506373084372691248350841238453506624044026653445646691366429125831892027718185691094049196756893258730463001789530311642558360533739206591537772103769137191389976995557738032330947563158636191765558434317916930438235872443766024482036783567572297646763192735832195050237577988090671213213641577361662599575929979550896629063135586582184281027056688190658536347071077612215451726549964086087813922071428581425571362464401580156831527845883072997374568077831145827353942547539910525173677016848798345182867217575071567826734820060904296887068337153700600020897312496107166710547648287051313078555435419240607823647250269066687380951065098086937219182035508634546981394311584591846285699944201807560665422740658246859259371505098650106673236624167393372363291039948823364729162115793622189280722958431699764239748834027846516143677239131386018741718170663802422434642335756911840030167940893995736981959313862587413989426321260751340498175896151158767210129418995541293600496777321521016928703177019163504865588732216780738169662661043366035719137519780561511486422860345461634067044798302112160976352901238770587444507416683754805433588352326833361827103621981050241590004015231421238275667819285520104285280761034878115440982919179597125894791430727954995148344677233265782919919795512741469360014502091577506329548601709009291815636811035007740203807909081183365856105472704096005069890253489889455469825926297417101262083801256774538136141635734073032716689917148725096098642304789969438544064799498692294123419413745482498425335697326856676902107324586283883719329140408473102952219760704818074201779643133113076469144449236997263463327493070592109923250472227970130992598348844703412095116781603861219164839168086036572373775441138985209173182036189816064362789291039249696074037639847042324781533280908012944427250443983644694923148184649813859116885641585789304541001089605792043367634744512306711784282428011637460979822436491095418690488857634015558983798062843731648403782434269938538287271495551470225829659241750373227867832852465466084836346208616202655898012366279865351209988793992947174985070938322257532441387192533477368248568937350763684952105415639660632182105949513314498043950110116141784206796913423527242732590161667397049908650804963162158622167647732329419318368258756684188913625219218559938842333373311064825485069627747501915709030538567396138757347749220096221279086645642449016413135053260576673552699825512283194326381097597502317557624242081449266281864178927105015511915800871348536982046487982430880752526455329363937737414444959659684732715881612287243098394610295793217857093425296405312714458565638341639200433566009129451964352853881325193034103658917264372255466167523205072811247754036832922920965974921842084634875780078600422038964612914753895794326973698735356535923017291616587590189970073635211005277552341673921127444620567685124767364833203407807820425647718120014034790172732190833434274422463589968818777112169323552874759875471368038347378385833497214427408421775524320979374087613790490312955444910425285867045289039280542709206903709116412760300399763502847993232629733815913526719331807695518818825387897665020939555317043716878147236473222605239556980572809056075238992198067547751737105273103957494546325066373878776519862247517688681642058351063297282989190289721856828065452304009007010072126654097080567946670413854579043262627213399676554439203023319847014327455093273689309275205233188152651772808957652166814408760165544582840319366583387284966748713308350321364463245792354068752868941477390194765612936088598997178806189496093319279581009336784086835942241611802878936230416600268744441889323764284221439492964554160780454662451117977682246264989106481257731340634838233891470237150304884717078487536439259434432364108602740348728913444544945774599888317565327152264830768386407949276102922869256296458396754117139668086151400505285705672852984845738934630536121747588755564758368385842742705604296222945251090244653925033053004957665037081918208703213476284354100275742168724226155557836291520592429929695594769044854542063412459766119662205580424480437099645091861726721766025875758413466772768397276591212469921870675297406423627808184947328497056292995934331455876472530419820560251670474409244651528447767922429470971681193028650236628828056516327106397336606822687200585741536517275301909252983763330015625700739746998359592931713522159543045227524879020711256611503240043310679413919027883379745187042712692877659586322348252163497486128897185755329773420228563773123563258425666311102899692133202166250138323438612712676588917125207015003518901253595333860427865695504902969298368972794402719671867969889228478205737474735023136584031121077215884337900648804068257870447144128247318126336343832213798955766103289344978107561092959428462182265152478022883597762991120737623814490258371421105200567124971657597366425599887722302167148760596848906822752766126607913164922407606727883818953689483800121708405451273864605012556722360467209135829092560998420432272834095610161163199421078802396650052501131967225312469867138634025994569655261978729154664053863952490225600897247500429208993036257159138217403282879375216184867934575989988979739433584166202585856509852441696533637568501770051491364136154840460370111151232017709983693200894234637131520079681623893545530622297362669054162198986232756715871995915214675570964498877108887302860503198384313622278668043801726809029918502574647119940291672040476717498894837920178121771793968186119211538878199837540013082371269199899365639917791136966405627739750866990048144522914671840550620395320117064932636284473351250268017702351980924645947988932068671388689470145563564156363069918925300288286184577075720894403960241463665963309886460453503421971511209531193550581859765375249820443295297839475115422717183873675479103743086905841471630738979271124800015110190982023443426100224896353409394572889957824729143045555418191345243477363338302184594122881559911559803852071425532592305019557865645166369299868355488551375204071677434827452303209594417529217200252993591315526818224921375120331259035747734531564527069129134074882324760289771723963088446032266526069786133087503992897445885613809234166094599403234524613776592116370334243808361881328149940379205586626161491245647614705627957168462652464862023531401297474320426006943244899959040166146470484086018614081699274728954995969209314384084175368278768390284713864140242326956276474370919292829587203293596463846608958771880195277078268838051115583212927508125891827592260737961221693764183976634485524568346872722968897789432658124471300670154236784292551127722001093042114172078329177636158246060362544412394666119153201340166579619470529204788015446720431683142520888767713188141638356961170138623563752289312692635876322014547820240093147964148778564918003590382938629073319069481865519324869114254212107165891234503584751217356761511685248775473479236791327543194629012103863824046663436250876659524080405331772660068072028236195101455201719973156405190065864936325630755329265155429161737030158963580737907461631412831955124019858806970140942875665971888584966509805753801435256179760549412026255212737828484041604109422261674754791706445429761007955502645378476039232244856772754663281819693241277787003269831656788006333012015438606260287990371868695497887698280437715339521611800781899032037493962441028262118913526119986607158369438388028830983235446129733546173728301801084396768686079611720369358539400549787754878092850553379214262576625728754179096931599743249993193781237850218002363686388398440367494654118160740135246168689200029882554899616419242258894127671065021114848487563544032967782677680545305463389584727839033759906055312792738351625220819719106688126264207985782353759358101779950126598989256985917707516044647815360896169916977312359432658927655272505595815525251305004341586085770671214896596685700032328061923020437850454548665868223064672557184480240431564024616483067483837233703157228509265391792346775008919949373251879564992159961125945814223851831441064345115031042684117576921344592059238431862232602345231222808120636601859705421195933740219803955089028369962628909479167746254757485768606511176050270374777960037582257819445185554081082581466472627183253587547977946546475287803374435013859375481406309012301404304148883546807688264179741777949239852276193065563193962052903122498666223229004146661719986097487431863028172849306922596958211277370819216191303465820153734717653180133669450171672996928645944381129427869267326744604765596136763013564163249836173686823008854712702191412462549217827636232408228534877128834091849854103552324201635864800000431107342522453901386663001365069542257782529388217196476093807213650727221675355628943399627559210498443740398045286527464783165908802294830742738941677918294398744060237928831097847657028734920693944552626084017701566792165297155079036222011153365431393475095698981957598989312836840085350960781171593080002326901105000311351278633964596727433331584544499247565945682744613596066585896367058966453654118800134038164634848921898445570899949366784476801536697807217394755791968270478221582871446785562948367204128562930359039489648035464792978778773172150338323636425840163724490517092114265961159569962339726035391995814201567164098974984325937206611809048420742898342565500142571687936286169460563771997272167934151867742871670663126570148239797223984456412841872976874931670756337201313479783186052263499975891108853907694849530675221671924045393539827686078617961560963130000399582385773683619812879887708002911913536309734326926722495109290215951408961178793125501870916327943751153449786574802727288698638715444784936850031075499570557115577303938008446941879431578611815161787435057951034990365436398552372099971131893483488317608176964868959661083549004221508039777164310138895490308436948205695577639754537729534590066465245157463170472759181693475248265967739346366788233685581500373220603203624240194356980442503834861162038380769229132222023495964546576654052386796323232319707195927396101534996740659492169812223097467334825283821648391404116480408652360799803524479939437915098400790283848824915636601473019737027116641649168185948498788329754220712340908954557099545250395414242821631708852044955785887322805505500822810541430811528407485975686265337804693656403102059549864370534996732892201337591823363294777978946256494268527091472824236117162531378267917182226445924134017772278542026586631516634494061155929316207525253839485750675001317128734036263711135837829230276512779789683533228091610133816368565613200328111813560360708763041361604972140945085567484526001654768985568777580332631753855294612438278410880326300060951421450866277192422811032160539888233782244990832566162198982896382598490023777556387670935702852110904551642212257455338205473434120807457725818240665640627523461443245407295825609793208703918632693822652964066723302862685674868281898070117511621946953362377865985765370606564933212020004871250358498790024017111810120675436337071997710817109208241828564450407815025045848467064092834325313679868187195836397022084720314303592726797384905527045204517908820606154952060964483401862816462401239704102810427937186032836555434084247374765822912339068717913237352114525675640064030360992504738987037533695759065985832232297763209040574886168951665062490891710459537474875584328858405389509700869215576082168383139713269563440130769858708075053144443177344664229764406035715528335837197315890806532368773856943435800565115666172625560016630523689033804733356920827802391752734420252615793106390733928474441311923817481608115050400182703316852877967983311113924426733872169648489430546256696056242204545113805384552384154590738397163363280119803432814648717335784786039420058422151192113771636138683711641728330790381093144384821858245338607650960759955289961117808494291171247818258236023178361260541156455262688801557932119622456052761035917837085356287417229562106982439258248836083921983761489387651898827962365453444625204989640906268810950340633143045291568536453445630667657871177638420056327650041438582852267443665033725825456744515156912011254778290323344581470932929951601171372130602794940895798125317301745554443666523560297398835174245326556967806221768603027184474267369127317739261650888804546492686622058555044118824700995579367160824627149136430505857981763334642881005350550119601616511966584479911255592929674987813228110445888535773374676040441979332924175826728599940136681803461942866342970257248293149181501776937723734355983948901162502558589992833548145769354917920323355569073562186434067313644210803850047202815792197864703876389193728651366625508544373840739828907833339356021750960903318545719858264921154647838661344033507873534576159497178982403961606760961707462905396550732204814582764781845554423413166943528571707014309913256298835238771544468688119877409056850143698300576437674885353123767602950445477903183783123996792785099468719236001811787677230218577658263785422483410403375428558676050540264796813220786913917715581923799465408287950588072141311777244500961138010625008754715669415227247152113555122008100519648568135008373127674259188871767821784209034706964627735409575788751317065922378330472137250510383339896915939721677610184635269646200237230949716241034831753269303453475531339715173980854900825339289947579799327555923513344436119635985525764196315145557402350278898393994072260324696262614016989278060279492539666490785824645008464871359027576597278895215417916400105578123944484308854988363520796727597187683928339702899160378980804932577241643976975443834364057240787682472874782362210914380705557073207557912609885041225194893963298695710125630879016266311933349791507493506297217555684290571600469259444030060506915145366951271916277424030343773135851163786966475750151459609908906210323008453192256976657994442646745124684604913304827712842683665249679679790796418807986353994937908844136166256264804080140860677508682209561383960159546869049053287751305186544925052959859659622268927647954554963321622787217290918192100811843124168947542531453070947765021531309472154105393203165753654599145797985541344606100029497558607457559141074466648602364135704970375459799557992497684702710966342817027260077666743638854954118427068696091528863919623192428802511884524035118161721697155513409951933043417871528606537831218402447344959974883516890490285786410574220266710091294137476973723393873702956341012820097328364310623273469939824079632674144359781265910857060357090889625263587838690332412533550463573716632453751679189244625643436579583121460906502496218146188621877275068186409572075939277989852720229191837073557758597737231045265240717756005653933151291531809355034087353067787263636051157545668354080064778757481882330795512679787162024506713200261203420875927223417605771780940548402973266805982577988334671586412963000050189188146028340026095970463966130772309010524440521505625150556224812627070990391602324346640238009527292834066696518869827463801541319972834902246483642813635517682987033091547525701415582575326395533441266497575975833184363699183900027744603947778367614468029298155205313845237089080624921294288997825613184817745206111405031292751474336062795679778633089302742938330546718440385098653141316983562128183067165018741304701047104911076029673007585629564667670647140516996745983539999461621260501343350478285794658958092752335918220361919124264963804314654283621846991709507931326909682938190905582605886341297550037192692884701940347725136879435281758335387155789189552375935855731527158826865968987594860747381889213691158127969805804601208502451704958635305016642505887842606304231256058660485593526299594388799928548935924562929375348047867425818199261574567922849643846023201868986551329619518565520557230019332669936254883672696642905929746612400377862981788451663076413884454619559517863100372748185330237880492342524101350372638164253780984024754448771394061650371222150623627766619334491809676754428359077934902732814178209443505804467552142283748578940904774808179447241335079202562345137259686368435152132826758412197972369301747298447681055923862036968784037832935447132073192833183590996028208463038482655709939266107438502063525824037575277959809082722992237776193706782826091345889325533765295369172608041784810047561768123214025399295453266250596258109689053130878457564695671466876087291379240041163380720066769446107760829057191731055492429134552025881728897084606452881989950907023263241070056105958313447512048114457001407213975239338859081173492963203674666602029494766620304171546353182842830212729019851280012698841449715650124072682116071327750345526237305479841965254545654657621149806695599539307416538434663383171648877483435844174685765145685701557155462033580422784584680453146137747184175676731913631466957518689998066865815983207850009234302475107367255418337211326028043784106935666981289203091904738100161310035756096587176762974084410464853613375996269481156381463258911973112901768839699031455175538443954681211805447221131277876527750770239778665941960666646905063975717346631158162304796075112957109354219236400847184250232204100309177631365291080253120264767886551785361524486526059196768328280589411936185413438578239438625022104419640583441515990894508769735227202752030996236806551075281206459409416779784607277748550283703821108062487461376249719854271935133501924516526178526177204672642318120674532381867560736174016730227823316197793808398074706399057329499114491219090910577717011144741561034588247620391009548105006806270769845207508641755306116091889679634873191373208578027847987590706456468944012376668780649098599474414159530662992114726516546956971750549491447990281495332572935920848462433650477850432902454921960097469317076243959590243629474942133501909182519554968141741967907274172104106998083261624802811226674041938116557939085113529240527741003852160565651665317794635647691424803648261612002531810516770189685125938528836921842602312138550314668549794024426655953061636840042921799925061567436937598506503794673794331766244966175125801436778059377556214459782672075108765236799319519930835712546024547988925883864276654393150692732575227098413130349682050527293803289666809978016525649141136977090980633835726580520308520874360458778056340549088894285815230686083293964489721762074007397484587661856884880186400497264569646202424201776580079908629918961186102217534578986764875948894654726085904458140058086163205137544763828263660605352561378193370596706202115219854552028591016477307563900658647898807626734263295076998440944355748701166261238538669921523677745842673466071613625454080753398477363379734850299521511409347217675249015552151863591428738444480669298062034653049519462878947604433164352006654723100482324124475047675012350331015464333808594102199073192141828945719817244445835894626959059220353956806596806744410990918180598645040301016309711824979015997091751482247396692123924705093222681664715840019539210587842159980335607880611783167537568524406285044116809066911379909025145638113690897484580238898529616978319317545067669634866886100605816497233776820770012709114552239744442018410394117986542427058922102042980596587998230216075519702990910026741472828167328749162006139832260408242709175034538418945535566335312004691874490509043751324964499539262360180581437522193128101590181697426525426955587652976557652934146246366755892366263963527991807449244522868186093143724571614535100681344955804438253165337327177404070725306741915635695095323236551316567192999333295274137407984292389267689596323764580242152144760111117019815630800422901280816544770037686003652406224758629767219022256529339978396510556291467442998730970214837230650917683642124143304580831301705245635173301676076702775979575539952622339974963805424456979272856146376524939300512298221367525502590916381893114144474304143761314444419184777506334644363475135459715753980110987688359660342055539325632261579845185787374534698726724281693666240540722081263421014713446946322611668523623044118588617994821014564317328545769963358372708493277837380420691983276137451908818467236084316152601837754780429601295399259680050533864486084477381541126964633669006824779926041469601157443155341151075433281556709114681680589799070652370062279886855841534249245758945871866332996106572388480771048225715615231205985263389281462439922172328290586276496013581424258749018850820398469579302504660624567912729858840499284536979714608578152916820599717248742405370903064057635568448168649027957747094867087725016780529295643760148646742225247837244298269345029761213093495032088768707960357152406774879704362144786711335791590632414364989524758190115157782098351407636435653040969674696311143581236433980023151556943519433382012266524521142887201552547139963999662250247849943416675117137936301033751400861067770806866261382375258225255463568310984578323102375039516139749413436978911830911083874310333596798945682717599726381857102740811336583054779633435549758858977124111093534940931684893119984444474659867205904771856696577311539697063995824296717161574596062444764837915336777320552910528661273983556596278546713791549717288424968416708925612992768750251824786885608157217929146757924890593928876761716894957619547342718744219192776607654564087894392948517368504416788079469305328306493179931338694063219150735724202153051397405686200895345850751413679124685991076136732467031346531920387946907136545464465488877926158460299986415142183952621772111190336781425044040780977770489284005850902746733793315464700004327056286752586023731022871334821399823953691243644415156341523698675182984045472769107606338227112440847511262662905726932220155428280830134146794207491450632290019594340262081078966169129130720563857424026716028675155831193263776398402877646711119528843703184383812384562316855283507565564173074795886701571819690992739600858158535977053636166494605114481947601230228141658365315900621975302494901793999830674925306866880492642854305620532026063847975551092094141512458903422312424596286219694110946914381756137148746859128354252872527478579585287940572278579207718594997384028117492304155416512907039433305772265727537088607028367006741773741982501971754351965993947133565910352457847832497816448843162205959113603338795561871202735650672342716081187275498199341385089816415992609878692501039114494439079964101897410301299444951749104603016641696573979994359198263508360183872993658329550947302754373025967050850341432306747353553392978052986217048190745646406442599192339510551941411010703840027617633778919570635740751799919793219140746631129485715993476679453491723401768655404805185910016834284367885235771008585692788826989796867895186678137808817181920557818685627088200557660871244644601442064689445097084048255564866204317180474638789044461183765403922790228227130929575701309830577838985493771982776206437557707600118551016302667672305338539485306890115896402330421007162164687605406814622150492722247330943107969466745421406035752728958984889021528217789196674213804382637176665253942609212089747966437171069692386400479929358564062749425476941840160062302169586671741673423524710716686080644630358525438392381679033319363175120026374963816478003076910340257926036410415000662327654488116522381819290887715289518832288492874254840379394086944202030630273898126827833404147100939145640351871180332650784670858530577084508920577102423288148003166501378994032922967039884819118549815162896642804522861367168838812554516575556373141374951662742656137052208872867956793475013583115272742094839714868747720589190032383191608788792706074648125784979962349538689120467441352593492155150676945647918928278887489906672207236046410537631034048261152745624675443295898039386281679361508760123626817921188877319972667928747554316646803876522174962109509710996233043809165949566020353515179873606050058156622049066254861913339373542424833023558647029024571956423765309330675462631382101798863655942051562527595530261151555286417898930856341234782681191637414080147990117437555036609005547839281099705925798992424754834537155141037241252333528734276723563531920181878798203411107034208710931668044904048172581198050775818484285748324964248778970861962536500106360216951392904510288172253790437917621715538629050526682513032540405338074560014922939387023742280376758458434918213733284465585720372055239753598675288271804199081410094473712484146985357439676482706166595905487817394964418544283786028958525694985967789240179488263911308606758453045740495841137906573023785263712663350624983125687167741521257838995634388972656105386498851178338336474739558007713963692437718024139535092322827006238830865254613499858454112432082581531150441909410973630358330825571866645169988131481174780382304848573934315190975464979274265288412520054973121498289806897950618621847079985116623117702730384872659514157675863292811181371532027345072918901209813411294342734268777935729137336187687234759922298016701513950601357287144783704142862497305263853310526407911201254088760648838993181250502453787656270612546969858806007315334674996747670823313009106481903008106308891753625953190788376183732105661502563181358477082785483780435855963800591383198824861643135608001639875358842869267327446279094587895452555678203093796171190571279152370809338493982497834668464999726454015461919903329145742335959558803326543243696880936341083406543222216056083201121007536951812347504322162560742467882214693735424922489026190005643727200929898559999249842688792209909260958841731533627933395368368910267472416991560335139767042629490912220340329754035606171486822665187348395756487017044048606476390833619542195551465818177969520828083468077563018090199914500328833989449649680481135595386328060627167639714099963360055587007045226519829361051595361375185786415650293038539085348903016234928726710468978349035982131274946086785755308667429315220615966800419768317997825527533159435521198973940254365776788242814917606151952396180485239576357758876334608636080918553331072793065687160545227195131602581827886291388988218699477069701712025483907148029307110331822154897778671042989768129929127745464714415899504670113024513086492638463434890755307525910488079431068879846122944841133708490528534053822095485036734036113489960944721968465805940999300781688274278588087433449524844664234079672144841475951817859558827620166241231421001474251519182283689220042638902401412075577747790977160680897676004637946922231668256744350277079709365585317397250032352839387878012270377033827184486490626114147595152413278752146145194928944900354677782449208821450509767172229330769339041269409215093209982714644271863434541190800426639790135887630001459397196081718028548848793632973808789606121415712079967577431998258340990806679872323488030294484810035271088091606531779319660098762966040991362734212016774499107298162402027618159876156074588986142363220193361449919388957896857511822523391000919931804622437765862207795306083787301584487584747441838512688378906306796967959138981522583477777182614451727256659509550430232573984576908194781873344205607520058319585843316156531975871400920652401461560720429860820925246862214820577372607821999500859844069658864716356078748375413345241587144004872024325333369688397177592708772502230923378649100602270325705836474121096683343320761394925178880350945492985408786786251125105983769903121777275105775855090628347598695575173767277023394345065202344741991279829146289780910191980307510938272997292884888170708453531502625602186367693859659039622431752671562478782360017998796821464651472127589022787900314015335866479394788775681726906783535941376646848670975255559880762542856152347867258554348263337132625976318774329882992485862306320203673884318183697734399425897147213079656792510218170569911977710809754675562887042211910095244129532875925579224331935821872200167181105150537240621457700345533308722519132165536436704409435990446183790922411921231600456848412246542714042302095516009144851261145387965766207082735161253493821448904729131551784317889518410214726066540922699332718481326879599465719381031668786774789390806072373779569516877239152922187188452855514312177007527396068725779930386103849739223713030643364998775693756557260170263221157441777985860891360686977211115452090587404011273451910420003209135363566508742637775326390272983335183052406218573254733979435392844367301228101501511980286380440996358507430892645115098603674520624930364369812846631130472217301204049619352503198489221581966304050545671269255221441788783513352580945136928683840581899170366360561548203809411370064874955132545810935992696580358249496479382429187649055320111982371681715645833042679328690396604969015490729581389512479093571121249187344411514859756394050186134176726383092498520701268024967033010345207780807491757592957663168701171109302595968882219664602666029522395924826590869272951273082939942014198794683736488842914092879965493333260173702632618803627109692189318196125635050008736711440705762846162665107319314626620407764090234499280836320783085812528715373114960154968977851764521805252983589682107776469670210476568921857139580063890122006625076882750513514934118388765811112274554511810005625533076618482797484503825596868485659516007111335861659551706923994997045689436635465291478783067450864843945524396032302850329045585416291201020264259235606092232289942751352568594001552450395134303334641353534393493529704565881612399079724329965588799054471975178404156586920793365779132867239888659413531140779490048634154306688958062977764077231930839049013397323966839974245571596897121217670092832440199963616659203265225086816444095556745813396677494072773901261788099266241313985573634588355719928445721661842244406798059005738812921572447559997019420949462571171045144040123456977171701602204047471237150491113918142398159044863960243711854814807265988842743092159090087946541456620999767646313551201328652004412974544533331009226759641393098007458580375532544914569430472222116514665032955309989738789239732790551159887471254106868243450487769930825217704352328041283394097002146831073993183051702229623719169205667845054423863733606211666106892932325508826647327693222976056431526155346057999023924347279714860916303973226883905596204277915566695670540530712563622267331031346089868394666809213698939178502790896855899669880987180590230455730570689381606635453797745311788585101414753284335521611103615449794980655142358941720833619295270758671068942912681311164741444110557304130607075247817688097808085068498670293180731965570532831426201370572871330473672021105698574053098795003915412768351057667178481785448776271368196469401413538790098269694565519004629634770228630953043521863172595549669968097532083429172627124058427528568462052643585848407081977188451982008095689033141676069483032155962777665026789977391590107083590767837583086770864646823127840771612049004652195609679036024574365886614907807114209812837025329255464721674869021829635030007267374562801408838154389080040712509646012085973088162256048531801683009846263840992471724879815584261427180217910765232020748458539616638590092993841175569716863848212932285324905927640437337064735765392359765314314453767177946790462685834139336629253225639593156199430641288391411781078699372008968766025550650181134150280784573028265499329225673881626050905543320245356949199804988954437751062117897672856115731714270414876823912246881269655743359480910227416246250530655622173745480366981551510413246480892340466976125335579628867696340001522009479879968657994088953852391287955686617685621845531806933382150219580371368208424290915733715932550926144141779388010776399375262454662484728797143481452955696986827167520779579632602274657168976620678316204243932084544549271293854690324236660756630302599394579214529517333162569317051403537373066644323880297984227931629729290902834243534640493433820404092890252755971920541095044562028882182125805646675800094440548565660537229926441085817304536757072254069856344843956883328392156002351234163902574542385600534222741699378772657630006501524942252225327590241840006112069457989687540350243558722118902829328480189410192153488476158590432592443144966744112119896455821182750455059270652404553169939425845372997017424494303261281135087934814434456411264746348468399696219429119733866548437436432800278128993204582516030157312083645426622589858515316471190079709572139667769765991757884261727838575032584880580880680921717459712628154347518055400437610658631345369721832307753501097146072590183572099347324219413046905543185159560554717559375524798989053041923645748427655371866790739215617563566351362888691562296565252984850965797507822870147153153285327995410188498177649381007229321355246555507037622842331017585852245449186101495575250359777277858077533291900701133519252475507792140853993246993699381366007272826375719906303106281925042544211376907131613565678969269419960896067083310061591319520534571548591085064640685605687889529597912752883743603476856844886864200782152635889993467486807091502575644878081650718869531121113345396045840225817120596239837958094632630300094555127303507339938213558866305674359678965235422318263108269942077324449838218797475437827517317755809075269692112546056034927693895922385660041254931651424614036002362412341422586889814009990125880316299724234566623221747538314752533453001895492260929533304762778174165906835982022940885842214034626977400328076853332765806637749509756033500716992894567329755212647668103430816771971051985042298599534632925663539683061532290323878375306854385713667182158362347533889349926561102241596521987913808669390860102713682498606046861745436777010872384244817641770502537133042932848757089211780894474028239742471696413434057333580434043740026760041013279564702226084737881390695243278531556080434840167321530741176643830222096513914094591196164067497905444429268373021349602896801993159990689660662057800566382703491499012615968296220523751456995350151399331154372172017556797697465328494478451210696244582932048134525646985416123374455595000616942389656035746174535530773807951564889337754577056960312643528035270447530984044404750048747248581005674942242747863225930902265625860126759531574235385383216595662442920684006383829113208305619694520792357719939400208265952021629468140322658571650903659055597752568103174457698089555242164855594189733039565981807383877581941126826930621179474271173929251096147346625827939621499320019409346931593053732465876079404162591632107235351924220498125946904705784040629919191277623516442152595164297354656929245711158620155986585699488279771912874481962008039009654883524299296033879394745115933999893161295042303448376958290515185603159972443896811136797675550563972302291203452073978803628267972971173952855259704031364004303726375930529660136464356634670579532521800653271012618486553798898390958707048906350142824983173401544056204941602965075498462793416422669078161175423035717384296588376027480071719801774778179206849238258127716231360334602617369147257152451468789132190761337829356753928912197270663087360734671245003605496525931793691735440962776399008876872493598450044690037970031804668744298997090020497811334293767852338851255241280727798226399008022706257623650539339993189894753905646307200191931658774793958898983052735408320824506461498297977667470314600400951274437190151789717128398751665517842320774608449083114644555261450724756392468275037076929050324286281231461419071920103281991982547656402338877273456415682010926371489861310840780092532296909870434801726913448557911205170903493574428992781860112212286932989564188882336450395255325643928463325161882371991154500481138314805555511720386484493631336475439198117712263721655602283449559904402492437089205055298372960865399553002321065780536961966925249666939994709793097531067540885317106646769602127047355312874183216329005093728497788856689959731763380286281045400503055361294199474327377174985118436050242362662936024551061449461263930228008776395783016583267450204373318748817143158349903342297418212443795840457113929987530246171215575531691929336935110723740395731218993792028462506760074561665148500960044466237673871307640927749513622788381785431626684270428324795943759234363749173479396477607808248498660269262379160261847680256968360613042465474338077384442142986986142168085184275756401062082554226774819086277522436992384510845237915835756044994877801499917674216538613097320493781497775179871974236602620073571547989760370116218753005177830578081610413304805030721606287361452549518338552482882625506838453596196751191268309605216416305969304953158080966074759296309147031621301346489533813209863533388564117469033729565171986471625198369067938380777315392450348463572032229950321967656006014425744766678166604866480304123655981663938714726052762988481825935350878018256167736540788461525427156967621104641560733845003098338547021699038016575548598708917708399208481290266943776170601094962138053544284178173599864374364464062377165718315646503734073109819615780406353755923273618700599328363468315516820232116006216386524658609815385833761634420713698378872094286673592191739917932746613499394213358779505552079067428103980456172321336040040077250815615749734030101017002022190490749562167645796231323153927816701951194886455547702231647036984168738262536031655521921033637968344227924371521731620080590579391881023451582426433098833007201117104259025039822805224922171341594187776175034778974114426639201575350213832713593325536750909893826280571428257518736802909929537302232347833534616235365705200591114051564263576696585125662049309919302234950144439864777880643741635430121246351517167728784642114399094631646272134803344275134542273677270457413802228749604269060966423559394691949907614287239894788396232255527644870922491666056360886455705348152227117157626410868075039574430669054915070966925040685957314314433097779433841291024668157974036264436440343591669127407706400020271636351713473696801189429420886555025826108505864792495859732321859350193401498184077109289476579441753575626952263042162565388048689096909150516840633611731172075350363146281863611142897194603035951643332879237499033059929120754382896520899084087414143675102268722062355994696795698446660758587666951537333021215839732538673790345699902930334155153400768113232773572048711252562194594899939687948461503218227934881700282920615182353560611880032858898559534386804372523727768966093317602977689701622627123174448337776470990581105347322669784847535354619723374942920886065225739795559436329332419888347292815316720216322578364738777831478680943648805483369059264744560702944217013525058047621430996415944447577260416009661363594147196433268013818200491553553488948905756135741558252082079544595881945583871192176402834278654990171392786460083213954096036660275514957309009880989861469683165897659605466052570899148527902609517384088971106955380623709030512840100666437427608627001439892798566016384056923691469920240448749557887794116452686316222591906809689615595261429533197238262614767704529086075966461370632915772403061908695449454418399290989210011301214933894748312755600224267337094900992626577728234781559014783780445668545450005654059889699517910399174801006344569774877887327512607813088907775359818268810848995934519951307901962566518150496325418592761176126862781392936804245800221918278945700516698210235475761443392980939282775885838950623271888833512724410951640310782319264304826893094412358715688077553673239648409397539504120630375634246861205647421862568251159421623367618743878208458004192313842359430166231059887723962940868505233326129481069193896792815391551781189129454296840251812982222053413086354060884167184291866056452384354099344420837795580181484439025418822894077533966029990449573212279838220064345051353927578647756554953827890480581987276824627146290952458359945187997328793188049430942903063996946679637581820489338626846941158093410172472147551867233657105661680045462207142066090381486976842644225978414896971262979149319937030700299094765849838084903677723118432031036707511762010877514756505505260150020610799952328325485406905919025332570648514261508877975565251768423230387919998570504040687016680903259843467511164531138307199778610720311894050615206001994498890621876467802374030337514095113942420315340016939452040062596553233868639179964499479834690804995834290246240086493080705291977087799098301877396007535864932702883594073930434170251242890749929662993686182037532178280322411251627393550293417988485065259845012792149136415959077051365414538839329354056360938830868232580888447801894214742296002123254552189517211441047353620793771147143610009817133003353812026338197077651040483314837079360596492283594134301551350952711680149205372866231188785859397828316900302759652272852511282546021374996691391639602850510544677837665836888643764150996997409735245456157766757364975287067350053436739233152450762826601687242624662487042399959112812154232044752324301172797530744832668011290942171423168008163026158187777059479160083509958228995604106091943965790271395305194696596055387453654751622800054322436339379018017463149494743345832726957902342576976327266156327282936165475008989628507497155096654550440704967611825267883759423898241488150403974230588195527646111235785725612185930889307171012371803577112813737062989384693285682928575140952238018786489209331535799998063278665186291447817340618609614930399616123888611431276676231795787067436090266892784854262303231165605001810838743250164719501117494665900617295579707171849696634908340359679885212822707102872836182600993118961548369469212729524467114554182131546465497511278658692533758297558477833390914160099923139032309147474948144420682462184181544899980713994001953983295579643728896489801265130029047891747335528987067015328715551090085549127135248941479457026352890577547167589065310054556888082380055843427382864627689739128419392002148339537339542523962868162274387494080257479239221025105562464700522093527562432796636234454767021882831959101893123979188950857346958770852833700722745807421323769895564218781948296386586363570713415325339082365712355700446324128618124722536580407996580124410721740066042252147579943604861368681856539582687762520310037849275119732054401637423673710924629031836594354096885313921014321094106316168250705183760440200284990141641928684677373170329279546188963916340955611515062936881671639058981476044010158128282487207658417474331505472096640832761735499717238349225568332655218140329489409656245119356358202754409092669630130119698716067740371841952828445951697387040819504927014624342679013481671432819569064659549949034885927153455919721173730342835011193749719846720788412871231152729996101388266740764602472775088361932598982233665180525260828257955941572326858177653749433148979448725655482349777320369314717587776911704305229934659134212643962250550828535371711679092520485244443297105602129859855607901944429450395782754237310743483298642291129258756848122023625784767776561231810735469773086295577478690238661678342598836081257258949042207811177200646697344940619860934320816987972700059496306020976934494713824272654373562559687972899601273001727230951666256222787399755097789823932573839412648839143926579402396797993847372483121111493248616246762675070991961204609449151619205283419497031499507183341874788426609693934522197973637741213735057575542023987876842715412458647227860134553852721518069002498697789595267216615911850042160678944979505622151280916167406631948504509254412160974583703827496290519285163503308772491650383144540308495342024883992050555912585495961402047174379222483659513875307060413113889541425194382010340439864757107325079998129362589381816417915899207442018442881301087990803878063979381454800398115006152627635657051991137642226842792433588400983342521667789001553653336866234662867563806576255259883351344777627873992822044970470966117743070623407314789290704973078696016167426168142289880726576131133860618498250356878744225195477375154104123519892894448662214814365029597859743571904351030145632891398924709861518059603575086406533946900989254263985800536452863867100221508207517995208157461766023540649221831611371880872461626261122089584017262120875053841848925204038115768341474011731277921040210783291887902771153923821084378125549396604698778841413321806128613978130202766028967488851560335526171353783188266468421593539653937767777262653562915506814709649188174520702206284951641102041165893930480221338098387221600550794219849836208093347030765679155223349886200285695130469680763818055921021372435373462652470350644587433850877209116970662450642739248719091576915150042088080650452026725597168655937390603465197839514649536932381392561390947717521774733341969322736932659693763811840026103044724792850159718440561221773547936763904987363792419117259750225197731098579737508542778404971007029506384739707732853445614015296646328991257174065417673494976788872400885925379927073046074865494316806947491132610083428918722016922639433237213662541885071601851937376113580119431885636912286581723147507757582743353730323864440008122505375594077508993646338603721664986825565724460723319979808283162337160964964313104755797850078190461515118469520922020323637133163991774983677065985595742987691387878636971153007159038941761935336794550222616180149116883281847535350108400311606325259180132007838269934412648141927485077648686155393573769120864772783882814854367601501660915632025242546204152901302146288319682251698560903371769317188567041533309960434539446448997256312219479426625969132265205884438924714689084160221557672562926666560707768402652121175996786794086199665345924431600591737454438506083165310735177103219652311061448376212829564169298861249573609834924439100761893549684648723668356532773514716409015410212206499010002017596568483445987984781156641609477409564466284240478537148487346721102076218418901328844140441478490874269987275771691886691762000029561073139961465333332916210114189647983588150837156091438494529793399383201336537853913878342241273666979981426632497628797335005967683614966528188335905214048604416594273077829689058646902687419656544793725478929118783216263523610177643739207727267861117128244844155492926045084244346654792765637522926844635097712069797068398788262934616960840934593876070039076808093561271150507141871721870916806783714242649562412204956285013857707264892478949861824487479778976799934935641665017055311028728687635781060381226237342474902415662498912264927643085934442504964647115676490648088829650770696901675502476931945122076973998959321833437859686711405401394707029872438228033345701436160507183659881630600345477117305715755355291733763046475604526744197804600983957448055225671102336811047117446658326291672434631855986163636019985056922997746100283100866835140775845671546239650621470270896418208229127786771652057843585928598381044547268197872730620508483896879066978555094661122639390498743722095661844016889354082347823799741035458246813777958269806831913195793701504616593128054484403651656848434144170259995661124124874672210512285352770894612030047997639394376850388043772267543120914053296451949026844818286689393105243127084782847655256131413759546800442705070496902027050646053178120616689975537364482004872385609594324085794927557787242355945737682749109371606005618844982666480087066647172982455044779613708710620103826635766591189067924508353914937662821929750321188974481410653619400075660111576072609103828741266648114677611489480225809379048121534251824249874748318292813948524404778540849884991975782321061465802615333818768936226489111040122158580182350490652995608610545309229896102356593654320726191616331624079662605580757481367379656999692144956892321820563157152739286552467048225938681168389675658980669769870972673559089725580704661721604180771930665850723113410287873236958421547259634183342437949529896782108579427108740652106969212669928684920033134296253730658035955207731132713883216358606496950613093381989270508686442750226103566928964214953487635383907650314262116879397081910817324591648351737211321287926615155259409851586079589423194730659629996896739437461835902387847196785175838765261140245814260482116264739788631179661485627254165042314238703722926766023468603158748670870262438870060477878391099140064935779062515986769446623861766599353043500648916247299145845159406145693464336642043969250492486557127787966149677885979979760484003894444063860964691574198145939538737389224233734150615209390699054452457964813961053846871674419769845491548711450492154641596814583456584663726428176943125755113951827609447534273887576081844636373306055086184081997376399931580753694281207099268851728347511377169714252162615043635833195796012187861675781044344030987307777517382688738256930246675406391149858030243918345333485216633064997280213013524714158498687485235497018661981209233687679387831445175613544019932918380412132047821758195956710797312589435328387167138104032571112551472714397669065670298738925952624347772722185715073611055602931365823943260048207219606438229493567430711005899996596645763486437853953286854357922220780644985002671848812458032382347116321261872775744822880421857981305621051813399710755639986561179680045037282847243240395899598063109536237157038498598167852577018885048546854541855668796369550371811751632645680828628763733396895574921009071003884628628653930365779153655444249644156416299568927530056550113231242953563191290035246486015327467876614640442091074984688265729852502959953927961196795613272483272715817920981532870507364704583877194134469447346956977152467530896513694783022989710797116969176658279788117464656683789734816163041767338719928074687516523864907753036952385669823367155145685453181701391257937913425598973710875304117305342193115196283139026176073535153677011212661530673337673808738158146603665241562643794466955006157502162705841069182461538302661789158814458322538027853856826444098877097422770971288680922254541018232960709062859006932098163142941111286423464963022051902177321971003723656040963974675912696278446101250654158373690390471245736240479508206996029152252643402009665265357556590774533983692324987368328601701093943012500436292008242113626410659025701234124594298250263807709817907470597668313203198047652325448894506426395008084887939836883810830290378268635653850399164679172171278860356461029576013779662517345649145606004928366780732057076171263055621728151373154232011482158943412960651714732026022328704400062701444475885220911687565633547503262424970726469372345105155299129473285998607030938587527089232760869260718185941058012621657691886789311281148846701404609418131596001477250817657028720822956060917404432706393232010506914036996027795253660757468950277375669416535071706964351985566122444618052593718213348644256191433704806440856742380237985926522362855021156562775731005465015044147417306928522975151239741266811449905698464915099901864808498234615765332787950412048096877406562423748840540107475340015689263382648021048731610257003283775961454323335729877862980990789721551726357454292619377712962027278712049813520975922248635416397369208678777728025086616175211052041134057798383325444141888314954450597293802845640171236230137826561439208291631973034643331503699237843720780736493357020407479832805546802227232608653719410212871783076730432814669028162664220196468790368833215411034592983294652133874986889929695542371044584826055755485161459541005760028502799569866556959627384906014357148321434554663951539890981929781909626129606730427139301864125146247081953548933709325609766063285850421999167414049279370806972393599607798138003973314570700435349819047913892505220683828660486959301891674869997812468138971623389306880510617015797603639182592550265289292695240558828797001823307997164807393615120440430608868787465729699937342507574837977812647545141622580584431396289448433946579087734530372788157784181108486485994661487625268111957195463903768179436437306178960493982799872666736238577726229999714815129212228640126489701710023286332701338446414509494380490052203610398199937479087770696462568191177000583521112074378911138940549359520997200649685904078713698789446427387244769610884984600543020485962015028295242908150118249254824579261818451951577522612711901424197669480073899937998882823088410253767990275471333476561828748475821540238438266438368217884312822889809081427337672144549624078835013490905357253057297620358209812517430335643607717490221523859562112365302583879353580656649752815607809932462058480985994305186267149864472983000489611270022358833654061453834353178585789928244687312166081498877902921382950432375864348317366018518158041458338020381084952451122665023218825562238121563261854132903379048262710863877651864031268927327803929361360533196587646240545423081165544917534856804393111502823933561586581912673168081018779538686698993948861782777985632767480588550479672969225373576163020451320110969959487765568935174257756386378126029351913829803502745415835093532910548290094685012658382805333389934774317191650304144889889160455150801729350337978735220738231697697655581052657379354676027208621949371716757807487615320581068404821735282160858560155389842125614110154366376220730851525288338629971763772310922801822802075708095100514500445863131085052419513613532009838835776951139357218154338382731878046734482637323980358821333400967893154115647807810204861601030025063829182188225682956072853204388564161728574991167170051875938276826458980976989449630570741004010851313470969763654467406528191329800139614208563235801706811502989549698122905479256413072057541917880672890881560220924201722369166425674593974249994777511528875603737026744312453440322927195113897573144066901152239773118647729134653912604325649851963200342422725134057698150422078814900381519134940614905714511726520733289338106219226795664216614174203198407350293293869354679956580179323398573353082135779788538132508354071533664153461874519632198584777293546691594303202054217342966850442722597512044358570894139579125848794420595235835535706127787237824158876420580824050225798006169610133811899426393160789395431626847652055433105065595782974385064982096362560324811387231793804195565089965889306516576585493570557863541276817876918466413098806338307747803606405543439134653003537590211327298719585368431699739242681802136937052439277255430041981660438624272406968156793532793103838928564256451181339773056073189615967236591501894888868957313627033592083625314713754871081629936348222090062200613525956543338451211647170225247299507684161750711278787438906984322250659481139407544478564336925579425596752701521492346237977837904685783591500659873253566268844867630437025635129266526915738283242716302097369596344247080269648466979685067743816159838120920446102162990197056128421238714501648145633406181336308881480780289123963306520262045404660143409769279093530634941864485873183420267569525101830046685928542980343590081875775085979995464739005901489456247946730604539947432185923854739562031315597130457360746426690781502721277441095055048432770074599005999280110886421864413234190480009637861751320183725278730124090359282515163232869044047445338526557490603414586238667768717623972822276289335062341207819943132204174679643397614795737227902680491363250415514593218872130920762218372377225686322974775350564317927913168298566612667342284041803374908184571713555598726081979932063175376962678466090838523635258168874867565874813429565688727310336305008049472762378260289396529646236044041829321555723511598196059518698100337854621314577020822442257749591736788414362051158009664584164843277771470478920058550759662020805648909366110798748652579030196011814103707163604948736551655832175177066795717633333183914148042358653474700396213084295260500094856860071284772188637584894069005929683050414160266296542883001200156162673620805037565960293612911077288371502626708804397375769820980315409943828377939653764549856631108655048164154407991891101940968213353964002923926135524000469449267443539187166177601640850413535364461035623947258076472135307371991735122866396619069591579369794532914668244167495215025850618215764352334297098378465633608389183667189819331147188977341667223105838737366651556513280461815257996839437759800197824395460390222716488416662498476835171577736005597236824558083516083370309153292539188218075938145047607627760392887413007973431198309689045283077562426260925617020753836896138592966464142609363694675953545214865064931941147466578304451572387109589666281012267272719128528709201859715400244260500223642435329894671315817291815927445398893078271723220822893571318826324195585626466670735977176280519464464261056627159057903122388421174983086965636868582579842389890747733423439369031119151279926321899781563876613305983202970246985736576933608864617406754232755017494643780903747654279340588767626097510800045811407337633598323831848551845022425593793613757856132432653921532326837293813858929665284563217517642521923625396354650230916088861203186471358422441019515826093646733006911810418933901996053228269211930486491795330901478891109188215000099045970258439592679739511710102877552113437321802025141592146651475915303027916694345048247799651073766168598801218888734591995846744171923580394776238477361784381132283610360524730219986948109122687194181439580433375964802111519196445016443889312408839341422190046429144543371861203394983272981929219417077955153512996327396939684776630524937056253275798257950281734206006828065642882414932432622660891058791774085482068610958529219958682255991040819317491879228215879670428828736391360513332248176227074264496726080060315074878753673106545865378962521827055163049463278390313998203053854952324837248381630860264785699926110671280045097700918852343284928970211744754847704935073684675573947298069096027128101049377518401302861339361852201995356178005069927097280120316131664196609277613602499959216217611879900621407477315317764655931906443069092666579737658253448403148775871319849076586980678917331563887485874834446944008433234552846015608990462550059969644408642188790491695320888977431518912963321405013854711528927661234852608748422202803425643852565432420222519978276266889999053930194076769421776324769126387090758544995413068069241460999431558375849235069601627856908279222767781974858352527282721219255188297500635955830047518297609361874423085962498142158216664419483327432531381588646795312127319891649064367303341855232282377579610906716712073217864216995442112113641977152298146244568555836472166578977561850669591138722509044525799142195134931126928425217031137770919984210311299446388788571195121830558655859943618873849764302015946036364848205658632746965627831473158817097638757507069606112070767623752883853059322003148865800127297648839657867397167292380148929033444042932249990195463716565326701339318382986218737640732898632586726610847755233797363619780829950644502214546949593304911170743982447168275299489400780320472825606294579442331115120389689802451316168884616120110785263801242619244929067299438908542049990693684378815175142131048832395106451696761665168656110877530111835250717248429046614680931765815526681785234151682854713935541505572641125180020435375402042628316498734811605537443849350847793002089987774799373153979940670216790626172778138440464932627977457100904393659152587614134135404479681850938729376830541158903723353217137261461487311268453636522207294903968960938705980994458257216709909610771785955010758757147062804339028832776274770562278030456364270840468186288256613678618396361744878963515789114961753134219053127605069201104039909645074155716419160733329303841997061660653038456445255557909842819457678026250200796369010939183164043458291202100011581560818174346702889837338817462717654835620756963681860530622803043824859896040429683232140087562059289381726905108739873858810819319250241192820197814897326509838419374204600217924264298593030167893299637531442567503875228560894116675175253444937783349128833989309276096266709067384593293619519368218875013293380406292709233343908719676609410455730282782375028307744376406790103194452187332315124082762616574595640786055378112046561967097786462406097171957277507935190755456532341455431043058553944454328102927948799276192361976100657797522764553144671837980849099515414777880833679259831998546159083867408696209383824895753287454211463275478683484904343642140662246800338251055080974036523909602594092368149952133904539841127153427663233213345712314989828609400960734009115360978052303643170996293796417179862723386389866261668956450643618364151185668423494146443834407375788333683048178082011628423214608219464608307342471564071620201558811490530737750096437794640268895013628119562231485453818080525983063874740912686753081630162236263000776288925743552147207837315140188953300160392098205801919007226079400278404245876529987600363094142673570095384546249077742960219575341968211519759229318582974579967705078705189100714682337239234259892656261018978788020709985951204153971553990323788824681034923357836612407421586980380526659336683031431038200686540725885680504022758230712975929595491000261319299952294949371098789903078551277768618343041225585921347961117346498222543309368937556744411787407683852801634954102632348678233866716862348404307270408984354382995810067928094642225761048108551377345850059174678121694184097661538279338190213439878554154512851377883551231363359488304475604535485877847996261952143214488764017965368853724380579433284829042953389122854891079766590181321783011385640976061139451361354958188070394906548998141715393696935252803560932781700080289345037910883734355383074546621266356896173583351791202482575274628056256848446803199133839975985418777531947172388775957969119940731980378076338384198103421972546907524105846637623595005315250978622721124634314633577005480000587587136432557853874114806250627758793024079481308647698674831271522684409256387472860410558061985007563156980126886766885994861268048284286308012174980649758899656932565761328878402238874010262207376914148506167366860274799339577194320300622769370248055090111454053982335184465866512406920079840607021680851182523251354715220316303715156748607544531943121964003944369099415490918921387260856223219762990547841879361527887634802685329950752506490023905856018039173756134083933563445554537334190283427952670705148465007978995448139465757540629196706925927810735945020630796963181453780389190397890362091298345458532217495683104872817469148128656578304856810613554594818816436854610090795965852635571696036218506583577726634441001728476807482590285345959745489534680280356615329657718550233690649607558885075890069324881249026914699898274672728949688649736502537201739641188408437868366746276531787163006350172665817903530216528566679484025927361313728768242170963722297253280328623284685794587989120615813850455878070247332257324141619230457358163891403062971766092737456986099448994822104405387418288311921512359066823959592991873989816465351152173449200460736467427262502788139658809517246711285602917857081933984619563761110250342776362806131289466317184311225834302203917009825051911307955957838443669939598064999264914633811745428572382191396815850040390415351355135625654668745532681999559653838966764363345872592970571879837029062387224225899971603989105800243915327482082715660018675678474908851749036819885842699501986046461929506631253822858830754579028321459983769171990531863757145680648701041939472346238484555642895479922338597209002428446573707642936396168460673957656006784892371722226909600454674464505698995112304828452204774721361302503325895646098029467426393844175953029421530657149252736263458636093564075375925549438492119079322492114698744147569576785443748741292404621888886261838256774360067655421978066281196972895282055613166656847943574104690545962935789213074732195978405525524125557127634191369337344810342556937963638002443086515778521473739218077385915710250941598211829682908531298856294346624021731570499034519069259109860373493307169116234266115901913640709791863515968602103232541134117098759924771485195300665640728376688177306033725984790435412882443918937706316599645034687536064623182679228952723534024191037371080006568077657920769102699101646414222833673135150216174220628437107482370305311760793931455854164550981057441226524504214806963004064592559093445597607427973639652491340320325221408866314269095899378944223684995177641852982229965899118717356573681605653996594238487088262090513145178926117835372284363977132517664446337959234667941018655546040546211566990140216776848991293969471940313225138640775747580424891941198823463012400233182579611273783477901078710513494650121379489894725676566133263563019622430746091753673024332670224479620235772363897732389268904003774561987106133786629898133265593608021303537493112720559391945448088875653526561510896475612738713004413946617452286266232730799362554152604548639397567440631832132326300638682222948136126940708457359746077911911302619410914867256458276380492891563971562980390557472203809851017537273704795567110007425697076126667718869032353109163182952026647942909087090152257059729992758829267743276898306115120872528286368086465736905770840352478925712632395005116295848840601911696179400846848416663449550145639807531441070402658207935635281919317526728300195945663610621037620794556419542740503461221900083116674207157069276509758784743640271596316883179829761152546108408473113068655497352824172955250870744716049219037434559782893388268186847715437666564647134579605231976615623294913160088826051906252517689855185398792912481183578521952344040085103839163063975746166727625698369755481763137789922191352187791018798344766721755516670243108946152680649808895564366734534247488626583645645311700597791065981506650168969348394511118798389477067603414024932436760164194312454929814017317485744832062819692967944464149877066205190628760198825760076101567349395715919619656140221742800337546961852513702863455346521076630509939947954879841619093154123873157199783394042967945099734815990744271068563648169562952307797359568650097998207058576587858925696737429357634195873378612482173642816574305647744877062839186231972529250438214891426564435726210246208397503710989132810837238060175867999173130717482000464801605335544759134994409865167943751078010978925037854492599664824749107256771713305619176543447254043660948765012709399591132859065951802971048869873649125376765214309938200271120835167223317927773503265930418694930472700162779168726459906673837863080306010089981171603016310035165420380351287318100134370660954636659135123940135718900556577249087702485043321899481624071329057861122367071131754963805137616149867415179383867578888293314513023009140988296139338390852222800404743273137645259078152463649014539605796102605751616643529721830806943262236964946759918920894655000264914501163253485777034341267639183949498129862816009407037719828325229659508554986020777456890815725373466214058806495927849870334440741705612611921900567189350535354384523821771394807411487809226714122922454427862331632702781828637993331571103470438819762278660631629533267944932463455600702238071253028345315317961882706243850696982585961874220829857105866005224472956823617643422535002815241097440372620812369755135078687439548447627241184076568563194448827602232083246255891735224672390698022788959165712341912734907894577586787195194896004840827354787538721068329112370179708750217364020801587724354311786104117449836300093412552188689455832431545714728245889070848785038794174408837930264647404376224810395983201686934441215360445208604271426502761972717298070327996284069179256028478795191212473039558729418043746343711207980523728437416442272052848078270039093962752286180872146959833204944648615623920993083727687431000234950087526344969972731544148262422720235736541432523724948486362362059784030919047316184564481801107611658179537751474545633744376731329465721978220826827339184557953782750357628528281704513371255406895661853152180007129352462848514011218377652609354399861082499667490764977869553595129336271483406094709715245607195039583369744041688692466897193913425248490060990727170404768245492989916035219223475011648553616677126422765954321834607295018968680077319778007937042503635214410128792450157222950726575981167635541269915364460034571913880902161183332791078151432673037586462627177846793062633315080326519488387311680187173655927365295997626211225275865280073191718710685911706494743106265390696196394011319124312091587611178736407635862989659347233658620030300491286103445400858016972627173014399875435817699291608633027930171060396415681209442701166561396278999757999934953810105628779533887180737995130386504108978252599925906256283570127823935767780832622587248281706814813049862387550870650288975810025502525837441555038398220717464089836015896385740739458280625003198799127793110299747229516517997256294625658193419545253310094889980506012532498731639793415084244344619944654020946837335165374958709675878612570684767295701354784581071106825010460350625597935854777742934288136263134490001204013771375869650625258371007809511976470218857289454141215129584151980899915325464666578801923586993721811156450529731866725741098089437307076048306385352844900803848114025527216344257286154740174816310474419987534118086022410673399276496063800763031959805344767764853189392036216514961518561179831405424374678180419883589919336615517018141981018438381129247579376867100815838808622709431534506844911001789975678924028696673545057324346671904263653933744317089238977946004389463527048859853276891901841992348245870712697789916036490013910053822956688414489069367378604195720264391248771898732032974694627442841461894730677089845929698855527152514998167024730250506841341264288762529171347564837655690604195541507322571400656805636214507772803090016594159319716625907014290960629191163459041063086993394347148225945307535374321378995645152217520194049725932632903606684670513103109402380675152570316751336831896778834644287840985863202336228074820619748751072144295602093021342698520759074393156875568603764425317717799069887184924451147609002633283665797921880490019139155159920876339807021800793195197164055291494094018853751979525029113152259207624651489218488753480380215428655179632646495504672591356893236927582318183134741987041029824710491116331015353367313304987229719185385413283173550296948306913381566983003239374803877789376489499524394922625741871249226281843111915277788565541510262243023750654965701374119643935147656660523991324787506078536160934998627605693180765246805243589027990271389200668515195791943027195103232404152396019261545917272253581186143589151600289467193713929841627198016657636899094139395309198830786770378668607511939455256639103102462720865027209628521860317454827131460110601962640484100716180330045569426627757919135598718575168973060496649533235444816138695471559419567371583156646369239042841832354721299596067530658770627876994637076430714517823408507031616836164569736996210491797806318722335710463196736859298570680280407000253495521447770019346984031992255267254842904037064775521384302452866528162913562146196247895326856125977297379493582601731854476023806342555103696614012176323097636541723525309864386951262820900947693601135005446646344464169376970783547233777134097769595651117502013186925118092054704553981891911686965500495347890096701312297190488544144420731639777833178497911904352003603892183712989075512002125701696985902880415287050696117412175459691849231499035305704522040434405682317205831484455711597547029348467152306910265414496505639927295177082059537166858585727794426757022717771789423437512095139463732586240969138212675018094934926114951829499137467239255419024069263516208591349735463705420728155678036094412694505249549520060156519893124857465605757828398758191258039924290252956489065537363282603505473848200692708595239856852703176207427750542913596891789737000693963862223085678038658214184473046652617970265406762973067076132271300241970340970064292490553417636936394886556057151253146001532952961021308082113550091372241941749848899220875185458240779175814947103952235862352915180442095100261934278354975641808093342000637148972780357553396897479032960009966862475330400625505746367762484226885427721611782569009240526895849292226913684760660497498348952268246726587734960475961215627021352355307663480140201302557337632887957697370316790483300184338083273901025455487144107185909808331844914292597170848180529123400847033992889577985869915069228673453720914557940668244790729589183725018276088768805546753540431411029709941965107305718565845460311431383270271886211904406178115332895417801222036129586651942035188571748149560378785536903612241299837771085409038968825663158740647357314838717941980820213169760584338891898664706819141532206017872352687529445853147563060182122699354528701665436826052791673465950993154287260889759467942896578745148346951564974521484500446412444258524158470010060598026183870551814967854778408543006363023986503849259727913995297205098154643109473724269790891501388264170486485069815757621015919988486456138586240751337552527297821514909528615311261944057514387651783187125550230133182323149328153103974269327035601654407634794428611067616129909181764054881131175068334649915421858545577763920795233442947951894562373877201829289292726370771715410279954277270146302721420761300237795638530361968356266257513724021165411905197110986234337097484484628046691352743915058695663085841853927774288704208979223539415058710923405310095960480417287275880001624875913234031000222124962652267663163255262906714522541834843300171973776562727470000621160310167297712074123288298823318780481464649823294151774461397237364007299488000161456587732777997189331870248044009763687214352877994236465811517199676012036864705326703821514698524147499663841080446857125912067702206276911443941339013073787267191234275344462022064731520209210666610155904709907717577468676800084731781828976889463952890520583757643103448300783854176716379317917123656816787261343434412678911301645067415054866474573044548346103866018621376241937615844607797946788273482096651948227695638817374727387879802262308956109156048125231082429320836141329444563546032392761992492739271789413317317298290162492796541283349823815973540623711980853661613216198493333599032749407272900518412446348127614006806306194709035353092482913502901475165500509121183522407590521765000749790757918401924371309213453111946767099784717102576926572607697984885629949721566357029797906637367909169342821153919177200571171994039952257044179082433463741360674657993854264555666680066561425335782700974505128157245225830437686472423225368993595349723035954909696230443078570075445618823939388970080394734671297839879961767136033325922907275261436636554610310060552536499550488209669069818360698739096581587814074143335691612690530698114758711985256440032838151906749045601444351509327752360051952227780909018781638478152275062823360247940254162741578957048639419926076441045955359787677772000764797004443222990593892580366128774491152749741206545705376529157914910143811489236342488350621059077665161114159615645455223668516753857608601055222907156689499147791180308522028779601396108229913116451598062691118957799419417939735360538988306826195230166474433446335027729554261747124167113321593824904771408726421935699568642868119775984883632546611506228908282817934366207748823124210243642223987111395086084400215855026554753362313883867221499922991074066841007793630009792493827574542557702267586371489254926246123514182225576399658013952078503220481555017614172622424198146967775252699312267903420546575801695919758025238916560078566982597077316818029944007436334982973352057695109218184897204801486947913495888818980282591945162579107505648093318773949109637120205230043328446566910536522650896097489653357270402235340297467192883806276878989005584013905949999813812025038994540789060363269431060969856876523508067513749983758128806268090055969950760448483229339155221130196559016250709399272949188695122796962589416464496600487298478896802485091174063136558953586287193149186128924946443485792689170421390529534233888586662050687412640771528160178036041235152582877931352559245055926660874405829796934989188628499799465051384784299910125745127472919380492846659863456265160363826583596082603764546207206313418246731857174947208519015643727945116582691634346765766530080310292748601243602550569194902735765533334361840909407194748265103953108372256572641805751560761608234343099465122883248246198559516537304611866870418644459546654755268163851418342142591686420928357588361298344495990471480292744601472979217217019197793574375351398196982100069831994456133679572398497466569432519097128708072727518702043347561365524950575939932573565129897322864721710754828693175230435860267411611683286990898210873878735439291645057899433901102137619109859053618597988081432252062737176276564039414865830074260603156162027881117029117239135792931028322362405875613511794171821476883405753598052597297723208305941455633557431663090226641804363301277855425535789165616723340367455907076570481757545532710760390891680751926970536984051439064503440716325551808117155976406880384393455655582963466144881961314366844670117707679076884031446066247758395420484665517586908153402361006060553232358336255131012158165151445361258001440961567454377008867128835618386203962646765010341152779119031890938241882707666730375876468496046732709469926465137357500442286555866600688737726499112872614667057316530579932654880716907814284538331943823173844014909746516940394002783107286762772631418838519516288754884598855900009069216371318171513674679386294022653242498757774051035488633093424985227161018629765264215217849837645006643590889482668689524566910765848438590731305012360523711097319137013501671855587823878359578921701334871424562665835461776128753578166582561763931478282419662442142949662024215601226820998558480576463182524571826438639859126979981504174860302721917267366219297787001542179946227972148617853911094359943812041228994857315018580900168882632055594487142385003808760014450200094327157475058880579716612577039660766352198389103251337266311904140763245771876522255592137184908302440639991273335008210370850472270356444470488556950143302416070574393239454663194874760118623242954176725228277970679364204588022792429953037913111649959487412195500483626082278718763273706257406610978964586238835240494206693830729850763983704098170351958987178436381056685126699007399607234865992127290905357228466834787295255687463411802963981453190487326631821532075207582590923892898953029505581415975087941016984412757512484993244839835982046155363849415716942762113796015019580193439811708432455885699847230485220816162145207963164662281288064561916795956686824286193102379688118833637031682001326817030167815800892582611829475541557716157431243247057700978188127832417650184953197051456106887494960814502648270017154827215040337427220091162397507786243722216914390744036215987513913405062927422224673111884877308043109668668864921712688951079820607670276496348349876857842544447272801632083038873629452745198342214033654499923585405024823499191859664678175160581339597704583088029969594711367546956300212752435898229229257823304640381264060896403467204746148427469937565012002459508197281894112503320498243288686017708160798895314681185811423816097864093684052099860603091035443036876664143658672716538976021458222249348955450878467076742737492460949742972111692757236188525010751412959438673922192115198883391075228408963777318628156268826134555023403843217484967378319449971386799908534217659901513584041655743299576965356179813626593866638930050503004617980672847087704376538321214367756946001955031467446407554533871734494707482580968322913967246462607372433642411471619215964239150459203556760592005190539624490013528466865704549716337666300082352863277194439244924942878305111749371669198603280159931402715918689646479581674501741969295593763631694711125292522636600621683787481960213987332204547395100902165538486024191888017244270447378671116085467769673419713862609727140245443611293253787574571158683434458004026224676425390450020967383262991233480505340319852693061670062077342100991061085560115638141527806896671467907818921706961050692334743237191058133781942257104446668166963661050711321301046953187253701646494970274550011552323561465875202790430939323405323519776502524302979361103988652441252209291924169445133863730453559083161799031704644846150463517311580405713917385643865935599936892129024896521410542619743210104369179937564159381247053194255015767546874023224747646723200424001790855055055656055134593274955509989721048343138994712458771694815318633894341978679349630015831437840588963674570008644370944776357606159405034119516091737436972500695480076700644996695505258241578354735114454676032401088781474786162085757620688895606287526171477605427206170953146154837866298935553653176833404012575001367943036825968199211479794004256451629935170874616054381208005260753583303034343589505252494682827223147598282572740986591067414148976450364898534996527565155137443735985255383855506185848037000323364899223852001596507389881360739664082528993181956841083363069003904729379658323471214669438338413513282300920589497861732824628984731098732520507925162670349842310926405900527126518456577543896131883907569961286917324627488298477446105243907907310922198340109202783365899843533074835922746804235129290548065243324325538699172508193788217197036544220962046401392603552021634111535069093764572282110256810543769630526778724479873032639177316348835116312180398823308438479992444253216580662839154580912362913151918611476333696240606095223674303598871170602010149625075019376970241848866909031599310154191527974692889775426730291876953051949934639558923758456246166051389837835137223063162605920039449150213073267957028706114300734939038613472168214415102872400192506717475954889587339981387462813943980741099684779023164085715460906562050234021861478164154216787964367975775058177077723797467329294429797912852155041905163269851826114254734542711559258863747675129571819712763309322480351737392613271048152874276332435783012194228970468391115943133832702701436971876183631796545668295843752810686130955833129318651176511638627019375232113565685090258099829540224234107582793938147436250253338230020062434317255218081129491964852182374864278643831235050176302002195938583736236702883137977233839345629098643565145982952707843571741588611995429559896309198100524757144063950013946999401183073941250190226158045734202729753478566542603744150692142551197693821902203204272093530298551265276291894566083297133850876813303779395523195031825470948275806035935135329509532309273484015652456497290026152784111241001857162386326310363484346872713996143790004669267308555370428690860715525567175434890782073694100588939640629948455028290714292635934021938811028035370095441373774567277612222340211680289842140633896195493943127732132458289360035944613811730795784665575550490666430989957297466603293377593462234565689835317700066122343558651710265513750023483554768327159609856077385687003226221587010319767023681807892525858979892171138704208294628588870491893899330597680433506164171436425617113713936763010564984849011761975370433277484585025416039148959187974816416765191609330555567220204851764689303198192165909348057518730170806323856187929019184090005998512911269467795371719752036094447254372788168980997762486707157630233492911013147575084593250005221209059661518165717075255090667144432741240682669521372015339988715384202438068541543596722616119984712536251848134577369393340927179106189879849464200268507536241164983319052181935730070892980889393149547159391966870959162926248509482647479730847909520206870589623346934026564017134286416899647319732796088463051593184487247614550350504981145776017617635222615931641376103423327747001279579166054536003176199901196972077619983173116868793195206660723634057630766879774939943370513852146723858784295108196882235031305698809666107669570381216972213829843652446977388249085926679152005434968718249041781973277532383990155750951652460986583911336217048851535870014373639327454950782264965378052088902085153218489927566559796903008597384958548846149789646758432902952087856535039642392637188116702161387116375604794120722707180785729489212141601323522357063763294818766305751295188166623794931784504779499887398651199947617814101218792657340803998842061732878231253820927415811529318766782094240772666221143942014868569336545958376366050831985714755013355860565327531289815396039181097938464609224294676433680879047462517492932918593993315680581400725655202407077128240782902932454536211484868242771042680407226532812786301615952197199970015339454762177853511572578657139402691205359589181789614367056108744635771778667808112130203378498340296783092157372224555613512529419836189006027903357906481202649033523300250168290097635159159578776357801256118509597832599954097655941950948696872171927536127255055611345236921733860259742584804885204038189808594898923902873217401804529456945395491344379929260918745121596861088722034594418715671543217608415255255192372783061270790334172971387526496875022764441181795419070945899706500136911210937434284165996752285710104599380663421190575433782070606380978330059355474045772937078818250481698336251074377437369323521104621231394806483257834928830944706723551379432768141197499118734483993946994493498955880819608999103839692352900407455314130935862392078195018212346833441327774228238350894362895669825219728681062378378934574510519830700944545015248602782848926405590800528919659506460892667109006982950254087117059173161336705581647247660382912510890565066748755033427815649308670470502393104124005799563894127340824686251031959675442371965195244600175746278718262078884181943253976395506748111317279771943434425166701032987341875009186508481504180141109473633481928560438947381716204931182626916459652630418646174441265528625816988641015065810674890002832436012107279025338486669265413390777501278027807054461247832608224442450650394701716412771326867414140465591313863324582785711597841230074487862947692332756328645737875098130947348837226687679138706615657520858810900372023185242511671990437019876203332678013619603690722779248941860999230164604450589477190498722171422512149720181377791436868488803159786619854335669407170124222395231206658213087633741374399267706604862862751967870527450794907681753396258427013009073764471486602940952437001072017172786712587526987097797224204069418482811826423043323068251012841830004291478725022937469489275518458243090218727917638713182661190883861214832186942100834514413013248473265147272616796052824035342901468006657999423576733358044314337993931538882058459208089614841144964990640953421634123063496625802154138237574410421868911248100596559748123812148868400247694029169637359905381968578648991535124772483247048851830868924245169375636548115008438549087060741840912824998290858684278303445783143611932589162170436220130901636301848461066421497171224384087939515309680649646643055743086366350347641726627412566226354139179167218955019953216555491748701239173383277479659980011812951396315884482532582741487468772890418441399229988747885977469241019911569234001634272735894143256282074335636740707246920822683607623305134425442028326995255553981222018590253238545148810525085160697468813009365024541766739259147480233546362201253694427029575820806834112262227529322196122241592534645350684649372989313296108184560571727215689357203860162249714841524048379490652340159581547469896728198771669066866216537774110252271468746395793009301097450125614391826778802719710098988780688461750576756657905854900071502423832835748282223397814041065044675740312158977262604504495541651150334461451081165966248417260176771446611967888384468953473012800458781628100280246888661880687777056243506760843229499550886014641933225810429195520240308692677418837379767738534208087433200582550550924460381002728958987738497907546764210708893812322942970641932626778896001944576894289264268229994922713661346802531764865622418423483220698086468957876941082164324053621649909024536947031755702844341594237291723463319441908646398481000411653158779946404470486436744454327052304619844276199689324682632510342829952348906156675683823061837556309856580391700970722201109132001840124498564576450106002681808437505254592683866215273193775890983530516237185950653862906455424282405682792005903105007066707722898817501549121025199319194457804703642188748874251024169932526381123841022567368399377613018646113334183649079455945260404893382826271887471327872388033559431073454203909940037335766309729897316437331268974991044423066844860102382485447030890214747966273576985276981549938590825922715801505519947907222820184999692871575552359306696399263300438431778730269354746813796039022525191529228664865988268477244825366639891233939172582825414547062694025521804494950962540040492662380623254830639398530692813526916945601299194880758142469159534198364202673103561517254026986338636782534513336806984159855327856925569920592182975970386093510534580216408860709282494038622975797883374811213673119319998458364039178187206731210280135395619533880774062677860712536943758222407456615384302791466307672045570269230289656528777210376000496323994293724072415120696828725665599165548791403725903486638347487346378537270714766257034270922295486115903601323202860595368783468731740835262701183454760697928761616661592754355206096816945946281631240738593412355008146869128037174112690179890553733755279403527034336967720553523919181462098934891973963445808189945233602772019648916056568206821986739555385307196184212844088909740271601180922109410420302514535763964724768128447651176991701354525831228985857791660425166701573056328369990830654960205242618406537552719604741837605107638393489507770122290598776336625070775233219548470255399117432246922255448206924187530103432774425865744383530782538094123987382086758755752401543316071542767276594603794492845949070353883440018916368516974486668389773189651054010186313780588409253817626208841155463932026908271916465564544579033925238993191379215649637695278479180445077623943912385682142225425823738121819880950439856635229714139552694068129240540556238375758288921083681173775188364121162337288638590907991908185099766891631242568831800494705134867654252123784384035257890723359160264301031024343701987465287622349264073643499755147895713604909745698823091583508088717837145549944427817819887983518497289039332963056238899673078189273555097886976928835347083389099534104499263801840794617291571078547749081455641648321613921123459523690573422387633259852339879223888291580814578729901009409362920663257871194307150743963941317299362761516841547571452823773203299214307381853414398876667324753598392411746775918890481336407341293762975462084102112954664120454609272377921984471442349575923194116797638339304536270205202491991648792542666858120823425750245605866915928695106676241142132738600265882624177007095733722180801999617976721975069191356553086002464172712735428988120953542743504479564401703036654353698639646280768751033074970121876664910599703182496453555843337621511933739755084574229369550290143789434045637332536706309898307045592765484777640402647619677111332998736132518898118043336345292705151571804238434547543874090491096758705194210482223607681338854947108172854349925348675035352145730545030555221070862281572974561997513972523992913497323266423276682369258410134125106173573796961690734045032345929575393214496141728340204079630842829194234432923569664083463093823812667835042394074455959071866352656064173940238688112662777506458229907475652320709780169046026103082083976932824221178454004452440645976950495984082807042472753029197940519189239633594115710208433126689686856369655566799917666010311011892299977600458452485307843590495871424892765972414451515115974288649704571410967522220091192146689174504334575766017118100540606152692565481268213743660620232484768184281615649482948089041460403244138460082618898091842610585999795910694196788753573736520499915556153246652732576360978355229085468772455927396545728221431090607333905463616021203007758138478700394583979605658469678269984276553024274761438003528568469459142919878033675166932188237864704523919066061351778212300939305253403561644303539991080593668611042785517996182401925069556717896968794263880843666706838836167619723790916105927219303338441805546040550217600262418224902460448586867952271766440455911844603548045648333570416277655220103117103746059822726244558533796939238501327124529131638243609356373537559006158344679037638944569825641300701764027847835126827050787665256397106930588086775447257180553584576640870696825118194821053671812881268889138210555024093496915507379936610799531745144585052512865280627252924128726223041658847676539406952803296389469215245760415412555418320678651274530298149695057379157614357151317160363400300344284438683376022527107808875989147607036799286827243785714779270161519519734398502936999314818486868779030707416193744917728747126574190766386356210194057602638527613937600321611522582340847157752001719100880920695893158030322140780811690138315577635631100654466992568326939220904611085664639920741786234660874439356133195261329964023212004155088397583502911476064677078677151005229746505256686148552035674099233460346729858183040555213545633396148394564738715491341071400888040282554705749541731804320749800471461590946385405300339929888472720397062458605379231182375763046968180423027639534851253148739862259409885881673820902890111954575821355739831062054775987736676914341195054179850499440047236605133762686290733008569779171481312726990400485801186111104538920658203526334668851328988505063108270868944022262517158578633890878590946546136622497585258685758105574051709677804311028526480724898418846671884812319038167677606213974355942127646744926280093634392556051693297035863657190115565256949738837724224733404457757370691021615563804211325058570793896257899437050158761270760783151195967180143406345132404916349233251760495299672438140309302296904409051651626754767184669503933911382383719886861091619717020465580563294988984333378328995900900162401814160133193857375684263167698608775744513125095223705246360498185742562864430164197534849089332489684973913482819593502642778811269975970874704184509197784669645522599402873204184448388327774335358755817134064270096855418731149778112713299660528963338936615179402192235263152989214110692125874983233095352811464698207716609247337893922121484320535095298014990489418730631423303630589964133307428687140611761535213692355232835499678393841944818816662582837557008397251479878539820112896923041724803361024550091456551699026122769278944311172819665859002009088591865526372680919630420350641099338612826855727956838046230602273086803461762334536206531395578619126132642959899067149178017844904910386933126874043471447826166254382855898613989708004743927228362171092233835568285181126009466927376006679006483471014470497101125450247049001764515639081305147781091751466248986749623113321968764244962117791965145474134497885956218928979919788530239871604345657270339423260751182995822566012426390622455577468155474103431404659974417579226088633579734406232354310892596417294056737177672886786608929120924446680325313476528752024375543503705327441007210953419142891115329233451732862698249357962909506852437138193118228979467554745655925847217027535264904828395962504033781336338429092238107675063621972287059659758129833261793955510949779849360282411892310345150319644385103900848070632863990481001865687554851153679065453870093042058856256218159423339018388656431998915729770291979506888372830274805905857558886049911983778520957884937423151936794742300579432591615762197410924990611443233202774866658116215448601202231438743560658129660655522982930971052340274954956910972420856386129507463809336469452812043109493155058648490503013483008183517358256862410695096720322863845639611515956926695384408940985586802676526154107808187384993810169192656269126764536622663104688148063058470366106688891941251736979445306693792221831525233014847886762935483894086945962874365894449455527914981479849361154087956506775184499984068507092643452274192402086095403458757014941978719274665340650602689681011523336801292760181788369978894149436392285686434979439591404805446964994816200719187407865449670689282283707081188846775947298337976148350269838734135689025648823084429201089276292869278902827764777723682425955608988740717818896831683493753678566397680790323450414933783705213994607583497457866427080115150462952007561413822122400889589291738736330956642323433016063310505496164197093195759513215175383188494280416490208543169382598516459048439306267829744811078980295004240124950503430139521149706408062781716571359254862573628763667555845248491065800481388345424368841944592145778328602404443482657845884803827200103436053232262571122489987508238140282978731188908507933971122474409370813741853639029570274058808604438288710372974757558714624642397317871223102855535004910578407974227743079114653189004508713138431905510740356080191570824066764863319757374352474168773043769147625671860634729786228152798850571748477279108284031610617969150132738969362666548305008865634863772196924726870062291816846695522293409204882678678385990717197326038509730985859469161660569396306447504229385185758789463340197315585121625506832237020975766227623215130324924363814617546919553236758302762362391007564475710073381589925436389794254603607847577351565558945216788320697900417451719905304532962442390547130813193035743019177635429817993111616501876512471526429375953770958978772929858602326247522385265760649854098474895771694056129976478580469572448589722218664332884185993745854114247672556966471317221880844072669528441602737090760172156620310503245481317497651035674624081154949548440722443221502257556826409111841683667205210200318921302192398554656232346797862820831766394483514700669892488198855742400854898632303180560034371113893953518768200781938908372334901092040990290630570236860823953344808336575166152369140543819348457786447235288848634171045901605494421800555627897110834739776001269799534090699777724516736517823262526242296483779143601246365403835919878925111795194661686636742981700370795611572346059118344577652907072410361599995262103096132757931556593955219779750510596097463111112527903353400380731947764518187098878052610121125613326254464644790794991073816723744260167190223112676623971435522481350555492156557235996883121829705263377015214450463488135259938413790184445524577676756150473744916402353651150845723902315855475237681237934111369408806818403056052883034223360112866580077143031292044559476722180257344265300859239472256160832988203139898302230345092707090042149071934302355324953072301512154998730335756804880965679228752338080475879140881705094818144303328758815024854442212029266044645103880947148810820004605093533640532163871551875196494330057764092507353845782263667030115088649915583925659609418496839962604544919465755064387107246545485573020489802764458194736436431729541405768680657160924435770856426034560230058542923130072277686364933886350791022182967784684530383500927657440221699244274301778790077884236094968379322226116098421924217745836931068215606865915516876708770229423299052978679154659860332372583865063673921821250543336445635271676740276049737541661237944298447081239271787760466972535233816451522026642952631996174060283314590231729565079507863732096094415473257779653748800234618012386846075561267112875941258668859553576960447294578086586675317209486168738209792096284284357791743383651213701365130735288269573039821645787086505585691568560489619800078684140742711279990040366214251966464772304767946528791540047229702151189003104592744845833322403061128728547731495683127026164192804657788007447121375936591858604274214640521097907774613609546652144947121033709964022333964823605160059990385823502786076875550994640506088872886209630592037921938447971570256950492947608185684053018161768363874607773637658181894799188334208599068592048380432445400780068965769856282731058018311819781857691222195342111344962844186506833770011827457873483649435084643659151159793391980619142496902623943439740681894158080096597573970964623863551433793144657510163656654602203421431667680194205295424113272168803985191016278955339509710946575958364005578978628172737036275197161587343207991418725739975669706244432133544479099317863375511346667924302554878408668475536583612030426209772836261827644314878831168971818788635732725733901505659764499257139910058797919179646688161179611966339526157780734911164123751703679125399626007098353745065917208583069662109707700474965639745282822970915039487443476650077123056181717894415317476847624296696674480439868783439420737665299443673113656141070924834886560700282746909091590102941281352178458972822607417818068097592691504278313301812701310099851266871331435042015863077216425954068524835442809034331301806626917759519024093440755518556342040916983630770639926782835807307151213798046967190656635022712501517016780099282631512582252327907819280123674795919614528440262604037865015003805801251950516494697489720053147599048931208392404396601133634515679090051623197408448661411075623239063150915890776733784870477747680333740629918990349779829017772533159553746655392835313645913019110126753689171173062433284770007994759782898488770912812953218435346542890715481096582118377517769988166584059888514805315059221965921408462768139714677497841981837802678920384169850130293408332291453600205790587315858636809974097477782599313298030791620787007626775969169133934896714744275579113668960456221501422566032656093776910843594884728139492043801511281479360404848717329951457281997808853756753841049699767983441315248686432115549156418488808133988994199417573743065347691459711104135180844339552304427859207593039194916902491120676880537607581472703040784942274168265568316038435516195151206454904949838702145589962230342478816872516333308465818417793587945296374679202145386047395431991055541247671969118856259145958220638584956564785346438580696132816952934330643175340770902333148206722978118208762932562674458993694818261677959064149782946395491697073627605964129680528594686034814190796334640616788041901986722316974152783287631269745877456303654992847350021386094003941325156667510630437524606801385315406364298401196516320846762905339312015258214604519685702447371721338359313247545582885674699463617621790277620986241857108499413978443184014067993181904968722302255683323303277363975542660260165417832783424421409273617430500274598107701804805016763493420706564977999355215683358340889552984948303213503545384711333948740928868922441603985735678598604370323999384875604368690582242952467754019209769969896877019622049965570234988062280611973535498031382551391351864293638116108350665017487849842765278404602933440929990927613251296098334490180894144271738394618441904147866746256504535646345856711333850582137464713098417716466652334303316572161626696700196075165826335331301196284775330682616832650900478110558642717815626015762579776562680188881343409566699882813172701704003657381044310900299874018875564467913492996158829154854944118807046882164335593549149398723312062836666249640247541158028739091390148650911070216697822144576601033062040107134356123436578135659124480786773268123479138878903827449075546091957905868569619970310746888578109770678042782416961587999106137888269855074386489122232607173219511610677154765143422543099793988756549706188876216281459033676174647404311447899258160243941438878126069984214336340169816683863784599367319836923705346227150387830396523360076373825819126331149936397532106442990225607894297374110732615919230566136483157470508669276030384909821688517175067628542569845698157786535101585524105764574793437089836358559953794939592863951277687826515286151338304609970520683579952396160713063836736960430212125982630725134708980598626362836806244928898376693476816029197659874138155591959175980270329768459718820579256117897388604694139867753000529338311136024956389753415601069828384226017645945162639701301308762293081914961791071557613427986740993818688856281593004506994969605878812160448232971900098035963141711231684753208043566012485463913607745761385904634829322395687057290954913110410308620781952786164736149041480413779798464376236389884676794529089198458101124602518843913515918843313251424984278111441880186443632725703711927566379466508687858246444182796370186535623307087474660770794971896938568954195545601769724505258203842716127007735345423298164349751323806702306755966518275857263968106887451006081662214022177739806319849305798591230184227609036204579302704723784362846987218963369042465356230124913511178902921633880349658339473595234276592873278059471207562266659157113242786093770883640695382797683625553261848937884666304283525045544727184456259793073250994793558313618514660389688793161777063841056114008155610182254536904581859831915995522968058577081867124907664809218593289567502941462725708855000598335566999469176204471657203844591298043066927587644867676855561424735752475732434700212264750315851571936896533530454057599397827652151603451668422111748672697309335660416916861983585848901405604723180812247483664755814891743310185043519232339070307979969606148317370212994252318300150552496537612789682239162114977602173268040218343332946690485238750053195364643529829458241888390293461828778575184556699262299015575847676367915599931875256489350871337368934055994165997821775970185359450211592095144320078974569557583855271855593429747553139297169185774849416150740559633848094704888817670212670155773929609629598587625389390479623954917340167825648330979132631850740478822289843771949479857205674064304603821370467167465759828868376926018117051315388610940818930332065693329448197293452013386938399859758477160069686716802512561864073290388761737572838578009058578070124258978732327138576169070605313742011478744036625590656163626551343124551207671461546713256319635926307650389677022660870361580586513605425775295674534250968516555097605611651653159947544328906719806440308020602339843535974612973450718363070573682678801935665389974232169497691349473249761175436089339057846384577850150428459591415385357883197194676069949113071445374514265125512435720891121194423214397499716777923477149960916080745366480581813096007937781030808448823102140771503747414379647975538911696633170831096633117876601504129755654095786697105396761123247612957041717942073090674819594765403000680826895135265792690849164964905659361908928604663395669809310079557569707617152523693495305806183618778482532615962118680376313700252209459731327730112366412882125657072551728005748278997820246895130418413514349572662172845548893694419531336285881988857061274514074154689289502193647692967432722810124214674471977842143169621561074225639918346700452217189436049227816935820827719636569225502599319824929402627259271378961234781057234832841079045811580987899304734514139629404226651786329482429550215872704462707292346825814473718431468214166668823233875831987504850280760152512853808029709368642640677039240172268022259807838780808851123395586533027341185109048042442317635292958694216584797055800095227376540630576497359297955675138484384108684615053923744840841285990646343350905024647218114999346015158312520641196536626684009240893266027121564321144237832795365695535562360235453342190962894259686777766024836097991602212713273006350694671217820758611978485753865615993986275234193984215277216918636809052627336906243309340532177150089949097574780919391923626531562496829234500605039593207283383605590003302277229091790722888761412565977487593953525298168421245271440438801957123468173082688327535854548146153913737302589557388618960978358896555044748616399539087472764456032060775159717901375978291400794794357107825124550084147844334475073808722482719544171359999316867544702211266608770978237116059037627415284301916706600257442380435949421003840925400029922051185995632680249000000892275866178829864958900859391159378926172497265925422518396843401876980684247537722224634844485884565972864967087760019062668262919463622061867436602272203025188961962086318522265625658672289083392860389104003769376634210348223898956218300685049312537105534478468540708897281801681858966113578957702968303824964033259164041697508724730711211162609335304146372700562083211160542186952327146593477572234441595116865189575596411981484540729052264695441846232924880154750960053954446447134939940327159651923660915565425078665164243589232803462583068230451921396494824359364757202062248897758206282604100857653620999262033645512312187724255077772070317391912050312719376353403310436940688656394436373753051157667129203091495822043334772815781831298059204124362562839169122640482419764595827657587603254164819458573956168926436418672034316112230322069922413602642552679465558699687976090783295098194180528537923600236300140659903042894758654728969802087543294298959909302442459505890002671236562259671124990851539071279414393618296029663210473272515122242484441059112698984195573040998936358160973642617186510459598380449547847651273442922903396623290479986969907410356702021520456079066400037197046034082803506407939044685575255376542205203252314031574886526234380136722649176031822474792543256946619466238581681650865334112538454383650664207246412707797538111738994808517402807030355076161774177339562453220030199951520064596984592721324393280709454146273499753270351173603804869816242814823965241466137704125122819501927708035196526045828030556438912908111890385185521432979714996008318554947683384539439875309537297425356734107049996567603941581658500497505618875938918151530526952062901257433730889478096415278556114228149340315463776573772200329115262138755762233477945658055994041466988706226447517076193158496725334993110801542334466020600582027867295930552581149483852673816117260298755212564819213274998419294601952910440036705926930372629708642420521044665819188686987517667115257817315919127402787759572718487407118035720147967234661219716093759409796523239956842142729774304909960290962197202492780144949190192147690114132389380926579781598253521082978705028675440297262947212347359808242366965969874024395974137934591312254495515043817047853630137461073800267908214697679652994368159238513585265510330585791386098173463303232564316903651688323764863372178312231617217920162079169446232990700783665242181554129435292939282038062981782839746492868169213330264477813594714378386170915389139634808568629095492214923120923512024277222360251680115358431655711301388559677347291077438197991770866864441848888468410974606074097372039057875926435375030135448200270066015989450358608035214889408864547471802099704563066080676118902387387383930224721885463883251426377429355126071134314787213916064826993280773829364271550647509941587035727794719236850455755499110881036314979288770966663835361821759095961999368597527422843237059502568092875814036478181230424387882480730049406633411708204413847014057738361375155686782411314326878067694412708317575450822878095735977113454267937012551248972396556624829398013725623453512513572438542198336377376614735704138650950198731312047865003262999998013891702447261124513200572360870934636801274752530319077549083750200396044521516107499428084773600765768857648672518884800075526989295540999452953970366363745169695769152569580623997721122370179756156434605837088956639599095877634884497455958893004322297517478128583600176983438460287627341262213102012088041649977259506856337695209792984806098335873450407463969418039104152436777435865409089495480124932910723824493668134848627561695081915737677856052686297929201314922642770316368136710384783212619194833303677581971225231933267500743941718788132764557628398185568638850027195094929703930749053031958686026847253678910894478147795724374931346889861291068591563660784603806216359073703660407430484453369650842024920437986975254373617068396143449797808001996015994587023386841687263977676619005204204693102103721375701555379139919646722108172176411389054846029299170833164440569996423348079154616585276340831434931002583391657712642979734621268718229476452009459416808954746093460514232535221741459476016779848847293799784826917993281483289562287019629193786837264535968060779226861792523733151344280091098006908634578232753462479881287349604668609019543840975645765511723841335071738748409910412117568964104549971040023611738690887356987996363945758791622409990830938446602105491854690212646273776287565458978758186882641186045396140828447037293031936263408486300685172977117159143176407652079923654803694654715333147707034952849464813087674306147158326349667817864639320096808736276669351610621692317304702948234714611632691384001024374706087619950388507846993104271022662827853605160559547646672466931305950331037903579766579861643844807682859875551109363752468694979190276259776307613121093813764415083295592999279149356540976256344016344214786411421546864754681370053493559564000810393255026579985477066230929146295368143495029352909231773085975275266257118359411318303395009346316293370314756855508126901345141678769721048167083100556780291562406453992570769764194741177428332851067602516845047363912713762807558588921274522337571886875649249012949249855446611391890331542273567925504820647999982023277975609321719548422581578149949466672847520359221280237750721685238820493575441282829447647807913047093270856677866521034241495213032205480876054629068069915919242449859906694816705621308259256764469547707577957480786464430255603849048169340486748061791636819571051164269626918408770445850628226324032921927246117390727712749210936897027488438549255740280807337085258879605120188160038050315818999283531043145930254824808052352218934295994853667302848097204991687781059738234450603764866115527476874113030946805863046480900432171963751233779930554851295176140143720373800187732583062403245305158925158002160964725975432320377945315080214031619945522667901652684525018341133088566924981715486161559530237852828507137638433351631560651154906301877207188859016810057701475344946593553547329783193839501109461929603938328082860660181555942584542402005981819369206316151020614412164843241863396859231975737433204108390090212349729305757542454255325558686467139089510435995987534773594094602044873624096924128114883841242808075773752699635819563694526626798842121390116148773712287742313943936083040440756104462490350399450995810808424228554924926457535686677525031386143182495515438886241701706200288379179819164975698145621828737411045671196454187869585369264720460247370138181707840454941841351888235335415545917547035573196759226304065387715243932173203484269424319728373868344229169309096222010970920303809623248237811812173368792835241159465965438205596660917175160342343190878002179554660993045455160601113622737641401934696588964005817382766660175293961771756785406955018261699027276228132272648606037537017517920796094682623122296609243077315428729578115095984259896436007774933438993918501490869032974825144759976330756096400131287458306137138138556569436954204531485278347879237480165283472439218437766031367685880249398611722906286816933880448073268444552291814287236173898395906957364626283575823768243826719646816649396207390299428926883034974495760706839928530145146738733224822286294385315260640801408607219625502159692514362735911628498750955200934789212710857778835227907594514081876101926261243560656342074806278370783649353473019505318160572441173197510568037204135361889019241821015279019369077326516949811215960522045241786232723520548021734196442092897221713339929684553538887060284542774074435559491896897965203641717097082862006851926935073622985477804084015547455986533259647883543670679556898765481583935601075629012752418198399726891251584306787662258399759954947280736566903454577103778118224535777623944138147107560827317993105406753367428777169386866800966591213139328799358558860574313643932600252883871015975523112684980025812149224180247695046238514752372465261553295684902314116252495094394660733479957132521578380382948635946948897256122345066132533673706409075124154008872090867774376596638272995112228115937239088399064438750312472201244273194684184190547314790080934990491086777256295782194224874696561371185173413303437800793780475920352252722194723057042948987033631356690319269547091941677335028735721086789927452754450667419202747077749432627258772721652576661194479541188797086142403834333677143896072330837393407158239671074081314150026551590991976206832779976390597926851899621202371421486677211425989961579748176556318092311328206531520470910678719574547922144141987235844731849139209158178658940578939167101666160651249329492861717219168159154221487640097461636198495436726020079039014291913197111346581463618402970330781816048702307746020327928283718869116812518292562963069491298261585880779296022954770389899238593125493079329489841025161858635014856408942272184641622226215808828733022820132889506605260852985968227283003623023312991263320220527868171575795859682817526451977945005001910488442503950437580547134233406420924576707481784799691155724977161607629009674516762540183628020733243137005004854432084497314171566020698622613741275376195136164945327041237279008403915282720417430752718551229017767197494048318542579118024629987803026806739433588482136204075307621970636943392838516133759194712473702676290165585286987612120235004559626951869849204456381529579811011944564740467112032605212769784276931211104130678063003345149593165710972870646416107319043138487235677151861236158612724607295281144419018230964857487950138742940755373741335747751287431168463398132371767788170979634395998860201488721940471795317383827875388214544071168331724677753554032057690676720355521110835231424468807606683782728801290012247876898704375970058665854922813034417673166325423673204117798989837181577904746821381791062156089430026438534298268751913450209124675482011577238797515325677685106770224745336398553341502324589796421630724088973280029010285485404033936465847393739364400441292865581102572388997102023353380948788786315620967163926592791596411188030378802918222150274903651440317630396935711748032948267539933169586482994809633558855206805549245831289257544370589036116373240158812779084499189288374091103988984330839050064715925060131206167946456611853640856216629990612958207764565122246145922110308056232160148061577189987653423028568081857085952740618051911612804451922610100313291969504474459376279606257417012465114795607972362971869151593404194723183262055973968585528091567591687201438053185473365891022646874765595502073245297330901464050064516823527599995526921199590362959766293117752746851745211627993536951192425697461541088893644303477384130784848734569104399681487222579264659708324845328749769886924053080133702367376776570943697664011449425639534623187170479629964776762162937790871739843626006066758320976240178752825631371954191215369175782724232991178932578752247819136332682529838125707578544855612817753425090780527650218307081066078429273496493907075011725774644308275615933423021023064052689501264703624260747277720365388592469123180289122024930329539106543835372463265750144476347426994351216502384099471165505183490710801757622585453955745422506609784998965738692553522480062177336112264421893417943291541683801905985477637060180440730195513043435517180341144584060159657320356531364320749967284677651364062265317821731684918267429612283090651950859214380020669636716534296562698348008811460346289697455033979818010004477198972445539918054928816290191436617924028859504629146867989009380675208593850240420932602045145936348193865497941633661861186388614823322988907865539821444079869402650697565611250025723129470851957015606244348472345960864690592042724455931908475376429785433445796938499740413773948852843675418740442624770238597994975253334797878731560453195495371002836026427403984853138964110520271743211104525966924218200797781201900034629491762184492081953989684008847226800965257107846795652358544590061707708431223021089930309506212797644091447948392368784680201517973889827485280466300726810906209853258987723087225399516217978493096708408397926266906674668460768715098836043758175671508890645609018511520252322286619032287891885982057528700232143388632909183530735248387860979477876712416463103750573077403589144089792567005331330642653467814212809199056643147370945489245902293427201711322710199863680269849420127911276870523311649071692691223774189930444608918534607671848792322058588863357455897688726180337909047001408331826628634973047777155673229796294404138973640335100775559403566032497706317107293687383051447554984149362171514749172303123630440366547757075468165613472984670958604859049886541228017067134055808696737426359604293889708072311695026524530322263118464648005632014302358841023125749655473120946178466299689081198569978820753147565281112138858755325691803380494798591275397517701809531647724486557381653264873291949113797633470710418640561286715198920383676722468992908811451545257343909037449765717201157699212817507208555528456314755564897482648663629248692379220124554101027830556077805885766109925889580125850445655079342498666124850684815638922307310223426983468752013561207522327142361185238878456755023648310317523788064447204918175150354243152761429163845660507934211684160710078319724487138989437722415499210676046822415591664576457855827182108740823928846230683163501829185241596253953141179398839072066961623880246417368791346998919024119233972502358528322865362802855312722883243289104107748640991955681964433493020700959535739008533975427209265467913223375376181824271297604785866071714304132155462046458890729362528179219509904774237524855803967754926940329104982924253247178959893270678968935470448902864613292294875708342728373416163478385217651581817234992520455130241513785462963061226244534897758176681770327830507216102044997257254082262018343795979237265354003365998466301072948844437880276613508334552708796933192003024910014321778575422449194189999155102313370365149789794432482096459789099501440574291580342119544396561602657486234036831888314553340796068694376834222471600535835021111633357247667883404595661701925227652136345576237242945138878827754586187964101946765987998357228798243351789042139921105043408499825768205233907618145071013091863044585927898434551570814386998364962238516962838364600794690842180425030557345520005430202425279992897176297840373921806024685925677440338581661796279761601342722568221222605856485223844960904343599750722977316704145172027585119050285493921159748210346716570101568093463373399726962056722138838164733823840824348904164440812135056524410339230127765231261244571329991523264973095812860386521710982995553091629544311093881096662802687421995141484913331262758879810331617734051358233234265925097283022421164753924771206843510583849127061517942919727836559917916610554739267831518861656012075723328954403917834592226803402393319989518680551547819224649335669928223127387824291452057233168927198273005451631638753590129013527772832159694822738166117076595148931482532092933743848636272294686540232963210416359104663937723621301260296645483230550465457071366778995954254635110683423369652763919938979401098251968375791362492905043805518106262745063184955523689598106431842210255799330208424617101780274839049828922761559590331801909320980177236094619810365040786884610141229274385550595597979309387394408839310417202920715754057997381778093851956642086957534257924892212967210070905730305457389962291395620949373212689840813248254754954451005405913321379774210326916767729771033815353459073865721191039168191389243521544594483017271801907961147218628602182060434771332260436417533348341006549881766371960818026639922382072258392441992299280509180554803727060886941387878042024007114890473468200047973046217675931436317469589763262616569997615684307158804130409114753052798751912828737386991885183866526162317447693432941961620475745785894220383668458091887791237568467807398549041470840077744215642885806053586230587777015296959857664698048834183778330139336803652937840519449995557653396821455800327673002425944536439594160252000402334091002037861448208309535373310046923136028114730718850526332579318607638167413751322619078191451622518215680388276152615185163206800142168113580297605440287015800891178449096602686627791169641810526742798384479021408471378180465529922399401059810202743438492073790554639646472276124624558045113883960938063586554833490609865310399110199519406020757867710963119972503847495325562396310547948505594861095774597027102711848710362453311463323137052119131275728962721759978000668205008292421647865626025296288637028304289925157672345802634484497157730320807863366253374971423362277447633875190770366840297769098187269485283935499104497532968284749676642538328145416286521903970873773689941246595896840147748303889374778138428795954577358113050126072565026201876758796822659134431134111399440427413865384011900381534697186315112067121467361789986780664576889556364167477845419851664264626433840717119219252890899649735551902744530214119186242239811648287004015990550698696107196884660111889189710777678217602335664127755698700715049098748707638990136884552126153302960796057067185868762977478563381385826374627963965276758812636191140999323623625999607311541918734168657929038417577682480716461354643820458259527076613816928891042804461543563798150466954404095821055897400361343763035748867101379239886305886150601074719707976184308481554901038506684056998339421582890129038125701165530915226159687022197349372170416309931771283882577415110873634150575205280899494484568713378009909978523501308378373351153537090033982048100357973551372472049735466842551585545270280428389125241421715226689835596228007912154337972888889535647692791320020075143117990274914186921892187595930110956051201422046561533456595621702574467261366533791361413490940834787872635651324937545156037652994724687283410711547007592326004724430632851077419956973729405545629641735140425293847719880818755281365219367273104784973436615161490764983203773803844016333225932168021643812800806789524899891791907426723782842377834051334782994552006812634546947286307062570628461211223411933626552269736500762793493359490616597756484896784896547357770239301833644831822091111379942023975995458893577606315506881605175827384267914194787859147316675956688595084610168656665186978796027599655222275506308300853312735203709991191980695713381818824422265488264351811602740724746206228053295248894170238785973484074773395218985429445334250530263280489227748614202353642288877490964944927901452718631497519586646956144329371657245965749933125510608686022662287149151058810794834883494464561585059196228273348686215764542585180313067197150332914428597266648975713149260472350584157275348715948238361073562774666968115252550229331517731099945395789304174992408546550370981520041198653783081371014941827995514060527679609604903438454117904827691085768893282782028593350189744240692647779681794299196680429830127989625019831199784201082112279358681656428736868169889866479451010568449742758641771267709643556526365686607066670295562046614114042910248643275606908399734217686521291871858822349053748939666225829710159743091059128626207881967938643303253369273764191975448227155456699470272096229470856942765831569666990575275731480464253219232961644632163897573185481844138172170291272660525335599459573415483804304860598708381079029480876969200456977371168784648958532655049353396363815490169517076998703395663303964697138643831297771642618104908530432507812308805184612834173286145296959024606097967061913308802540042664025792336352641500171839473801868317580023456755342122258864602868879498667448576437451476747370249841714954773899928304577749075728995297543548512474979879238931527562132089636678981733889860184943721800924783161583506946272660038525057237081580609024786962265315869198977813487421382518589422505028416566690350711412529562093481432267370365529175330024763361508968565334286586787478361636582154642999411158392907582903654836079761929905298023156685095295302015215153947841701128388498622322133358566151331365639445085405836254683150786494547541622614527808248613190283003268581359055014496850778934510016687234833765324727739548250087165374113307873192715973808414504655716062900078639682125033860423060971462143007184837487717391859226916570468521502161201043788280928693600969632499299416907175557889243590394213312844796554330721437711889053621765932989089834662452118497035071483207377405986540355277384614599374637327291742790417253312502158760252177462692045982422086923285281925022292865654749759486514254621333834376024448648523102348481962939950676913136833631076931231989153122468695753283919518902755358415159354221232329761226681920551650995725091062453887789720972360435432237864001322640048938832199179087790092380985746354828911000956855914352588552616239457944160905949140824385464896613426867820361006623177457131736672101808071457532595463654120219541807186125220263606989936464521639458097999717018720394380325840435698768326634873751098771232934295355901618950019464930040977826694530554371190428257591093594311674109758639991861749433630675026157882596468816251624318899357902025384556302014513831152702726028970001948661333502161210371685490277778927302713137281545347925168964978489097018544241720709046836563381197556798466293130632244979720679396373179985818633643926041312403441746586917806060584923456024676740326799587036879245694236490784681630975898197493070583943411403004066904053295727330134966829828401472400442504022403887434198483675653896521628057540450856472078218568184135398454783856302475754338144923536395420004466201426218189648765642607976040106867874482650278678698021835724757298003573055124265227341745693180045727904992910396556524090085661635437639265580509794071501825869095392050231825193107707010689461559177830134400428591587650248320880834412494449156281914316027903955086600726845791747788220881533206029511222979910505613187128184788023634475345491921237876342854685309676794749589601840400346463382945512469757517669615763954695534186557956702087264979170588262222859595634462586649355334589509367885478394046647180168279155022841694776775557749171446958074863213190035495747107131874084792934326094788791215693246651073505586402462433987692486571630943372874533245887471275843477658789469854733637473239082436476745345781219210932970836446078250086678770958741090859670696582677805331857230921129899722668321122416922081488548659701642410368641159009805947340578541629269028445263747055377416174288409890786340837629836613458567877677025316675823558313566207259157766789618324775266608671407700206474303536745173996948758064881719691663177584261268815990362825039730900787161572941825682207811548480788548725702424235467479786729367079113569142365598410093551436872879673256854475024720938947974861576908542133825196702296816548655176422851297650284348383165005484867406501643841060472622655717000704146673392350578704505911100373692733692628323614190443340633483016642062379265925895118463104861959521683656884314069641459610053528225057814266753400156095606470460107111764766404835848306732538398901268813794250111004693348590070191266829017373943331479737887237498854909031332253653446751459694297305928518966346596635020144401497151771056650379349903886239883667690602651775113553847934085834507538868675500899343068052525620442392953124435892948084901942670709209846014389181713802535157034922848439339858497557597358868042268513829160840602751571793267267152346345553308638362018182785944287792511290362842659089308749327678798545722062475151475573362236744833568811336339245513855099997078230606434984651630574174034410229469733176463561972173313115589999067384675648159001904015082705086170177678301441331830584384930664759735232597711742921592130103004703101289978901244531979344305380581269815765228972729759967215616596726391400151027826816432313333890149069075811627045445789225924830425368085720072061933303865476524707469564040710163265025423419759903698554435257566618480925214773814337524346321061220663957901617425587737367269358260127331405831761507323683881085631444621233724079477286147894954713435481546067386177753071613259758910880289696328429238070835947197685102780940922267444243332740016232301569298500575256462479674291247834042669810886128546866902906400470851850771712274641402412603503323702252150626326304670419843012837119960031297600247137696621378260311192732370991123887481214273500078832402989994612969916071101426869426249259950322798815221201004573525457690807320775458095612500601524158430794752371911990328457766974841576110971222750044339944981667183790945287610669911415451042027365782207639403373279720285752005793855760761503857860215001069709855597569833337456175466652549504620629171994632630623294306562658624972639789744963709890514432535827807754487257813078935151080732493123291163162928053666864957050544618839827444237041198717727704489980374655733018712112025322163433316890167776370904969755488108019305820117525840132036152538843485855811457914195518057436505740594340600384136105588647585114774959841665818429638423520011466893815238038616971514449807935794473901473668366135708282527172267384602465076762247764696597589824179531171095226313404139078510015701245847943041500858378256945557834298693505870669021318426400022300324011584525270019232506381877549070679260709510804862660187640153980340582919639539112007659678274314890204300542369640903695200463252027307723486433199323896978075234563019685330708590631109555678674746265241046397057063605155237244579400428138420954254263440657439038419984950268026965505219111883838073227092648267485448694148973259874844206743022377259862253999268975714378035378216808340301565815800315748508369384205618178526007509139436030253877571214956801259798847516696908061552120309519070162910213066916976408835645864622424984028793934793512475391787966173038947765856964679381611592171954017561229893894143674537303184297508771738244668920653518153258088260921872319220234557633566841057883947490181199008366447549080558037606119700305618588733209948632586856758637238183352293055457809253354681183380230270167190428400032883309200802833361146809826122477877460275497472432395871780900113105482838101140926972781014568147884638411779279399500518902736796036058820121926563457138224236128163866012382813519653386112947341894924143545097759290248666461932901299363276870989461159409659045398965817065353518053074297553748393850149375210234406672639989188514028688293964547089790559842446294644275673367367839133534017905718917489742360425924265383194914631232281835270079826923484540105408185477762499007446458745818632081767239890638090521106567653984684269347934851345072842915719532080071015882833452188964205395311670898002859436798533040870936951719371591094863542649075365585485713403966604902117923798600275691483928696815834336104919889507711986624165405878323214650388731382855967311694456667667545844376060064592939670713610620994273677626643763919347283854972109692041271047165510267052857880580616687711498353897264242605174629394101685545752604761151799437526532577876009982616564106090384066779948943084264202125203548042011340398961503628903630396446843149378889466138017850579684873491161040609846565519135514569037569269746091504602448074595502897982733847318532936195245756244263249363594198261473287544515799909423487340693714510616164481132213257300959139454093562909558521676660472262047057898246157984066649355751770414177126972030187748049345787742588079431350780702463576003981166053537276496554249673499349539380959695150914211016699911283966683851253323328184680902979261059621568491614446017046534504576123987985756475783346866799980287788903019750300883030319955333750969407970593039593967593600995929547544751222297546454528093834344279180389603243406341048203878663912834913048231675844439454913965313846206242043116436933868933920049094892467607491093741951579821184593214981623735553079056100629302023556011634465171270727087117341340967793508118557361965848190889614338777839574577255933748609868741319126910243066479778128112191039625508015778320317962258020853778593736368183169457959130018179610381893669330269658360870186670526099917248399560540355905262163729877961247883892245816247657357771739681693211294931940378210483002255562161238124017293189480670402451252966137919340893501840272825882955236324908219638475467914096242903656464949348253694915001539382745883174409575930394163102178349905888495729083374575194133508573402041988177253761083338491599971939076812297570229133302603861084956586424845037566950882784231899045691468169232312623135603884798896802875859905796505012242875995973563608673925335161334385138978763060083660979894034646090800292673426210925836090678790836459940977796034330632665974101283995120331266190064357164606919898456752871732074994494602550685997292607347009381112905023529155232324901855620385064945652783911485748429241859241701164479493292250672294781852752806052032731045676720296954383214859098151285199082450561178931442347954080838770432777541013728362904563077971839304502225230590584694647902815481100764986882850431841902460126752887620824116490181234890757401534157083954913484148046168291794074538110243673955254997124750652876824170407034196200737355569420711111385028005988263708445821378314604338026459806036081070295836437975475765874383008426295533510897344616320532251042481973237760054544856284502930334970144577842196290185672528960947207647178788245149184020999251604046988665784398079627912278922528647118069432376101607501727822250934361173969937648385655263991961081801298552725905648407563789595132023679443523183192317888105339557298635512685965298681091053870603115636383573935022038586018568835220964794180686513997170213004853494195473207271183778073135062864296558378425399278130731379192963147715591222116094681970466265121338202400510302871280064570642848994814223880582888495566885695479809826207999819034512154098688324288555259963934358330651968059044532975287636524687706629326101613111540601412336544974375556576810010854211890635958416629860974609068187840761404153490294108455609257805074685557181035693238133426622792121178655741088093607345654250945642117442737888694728392038623608220863663224154912441871284415732809933586084385486697289615312042466721770260945429837419517387892454205471356520189545527730824227613562125606267534587287906682287316720286201909650056170468436718749378018615558743729124322335095989605200648897453088257737849523053763996637109373731812862007742282633954138522214726894522206340389493639296649772605310080571639935749124638687295363706115999579264991069694831553718380143558451568599726024800705204859342294658877165566278789782551064089888255871289050156261572479840475230825265139275206075243519305148465343522887386737567309988147914896874928362515290975624134114432012285579478560156362375654380373993710801188812593098154471653617912251458505920610089489914871577420628039583082428348388783388296600831568107070143187732932579094874539669953565138516178562225529440103037658527550764061358155761574279712534174817780491820876102634494769175574571318346806655062108066113850870633446401378806686112846704758163421327243408983763141278881568010039271422613188189678278888493462000357052539388527769950052638832256639175010624143196327506405077728733224337309978811544159156707261958618385490893643969453845200474432584353260289984758790183619578155933032378657547598086283940544232741231191345914124580196686936593961238940121499615731461693639323104000919150046987625708620295541172920195965827748221068999369310444681997235713702538702431111012553516517621436228025563216845516259433392702842718917685839826412447629395009558317846159510569560808644274619538773225899609181936959260382403078339227400391529296195096454555814452362765926727113191674205673668582288289018607861255771518047789249677652202789585833925516100918078286250772369079891981643749021403777038580111661617545666498713417967819634932603515862740320069973541269225254321423883876957505110199529766388155919302251170725716697182335911271352103249307764956626465050877702277270191329211451724606878075287227773859996653825372140442158582683140491808930606620240045478449154688952010363311159094056249908446945673939169667636871916407968261523773592685756666192201661109906371619136063485986077684381564441261023972500512968286876528093204619546099325230100186623953924357020227744279759396724831619846353598112349375558379766270648987743828966651586084593644305523020712561325125841523960479259642755760815214374513244442263408154609048549152717363750472028516970397821833161546910124060355648205894951969715521280706009121246224023140302415532461509798581427536461788043094420493167525004887630453311468488415585993395583013745547254772224561696210503633285358894186563134255275583353320010375626443185937868053109803796898846874105115587083410747449613214564485985175691449262271084104018640716675744136656999992865755352692946250996354849662166193197141492016888369303804237339847523650427393091343398134164468595080815060001979754798812805448454816848631846802500043478297207448980034215385009550070848934125240624941884770764882646871386890447251839308902217636151088389705867120002923199206650630357428124815288256737796662172317577825418393658156773951574087229838315180026256817136389933631600609564707952955788361468403607295364375478228924899904124257511011834755338348942499674108239621004670434424612807120134363857777151483637535837268348492757629293484800095102452436232147940772242639105160716035964887353537235353696925437322660302912471997597712305812675174685229644836184540476222046759920237480610688006525701895982199755141589899412684276041025742927208494471599931666934444433935209899838305993568299152915969700825338798178334610732592507351916820044158754743526581493392041573038709281847809114951415593883952586447234662070886600340842095288865273426932856342637021026409951700023408307618458326583912636133222271583676664753008972248817894626689934768391086136104739177375231969526642157924328963046234392846366047075727256794700280848667752357739883975735844026075605558193710326480639167838552853512725748747164948405020254880965751779164553648036067052277468353777785269958170594672948461171393179318610173423030198398114084336090477495906205589535408346213083419192396803738512760948830655428920720999512925514770851303800685544390370185965673014705624206152142263432696362091364244438892506266886957298558337545489997533029672244961447857119434501283608006887138999443964356524652887333715954166816882509433381645549723074884490979861224992984294866551567744928297290001759732774240784533965088927455400198870688877115380372361527649923889551889304385572458307145492231593273780926795299515113633369797679713149950809870520505513078117099465102334390273446388454470753561301799360528938988116612622266083112882994932143022574108944476979534416651254588061306087130105556090582754875537599925534785646119197296813216645478883327913913148255501441633146293529837388746073655070755912886645600626050361913767619781646628621240719285141426796510643994173382265655841347412471637363781123346793080583494939075858779783845775519457885444315103251496342613885178968655528684020903700883874261345406996425753815253631855696476698694368258070431794240282524287753296171810602112378938507738984919817822795147488976241358592269116689154210895316773959897084384699872816267310032476535898470126048547471351389230955523064449126944937777565079722837157423230831820213040682752356397080066932035679528839195411298916403102043207514053020919939044739239824298129667779376549113416549001250381174103818993956676202454898132260003639408249631445524799953588592571443331913089232916731102275276321215966169978512293426029575709600195254463090893533732806695897606370443286937605775258385980571288319295396557014332463737829384698323611999850188382767389035553915407757658643815147934916465431461244598638956647819616768177321239619044810520638454755075758406643978368608678873045977016335633279320435319097235915661047706818071316476650698535756374282533829174563066136449528271920548585732163373684593606912359489769060451384416590939137535171315362522105202795421093310753075171066387828536298825414197954442278519941694113685430372976921236201477824223805768932507337674661375931795978935337696898434088305225362853790221923973316068138644245128776153454280251996971243417854099173329604920214381649794904090753790032092284247338707147121774260983432568972106663114784580330861931890807921956184309522708691136809102939633925572885324373252293200048057271091624689280899092342570732036617527608253520318002834367032433096678854066350396548535278814733536460391151808599679427862689247662739257666023099936685210861327587208089278404221621749991605446068344954242984824454181983496925151284611464180763861529135688053470380602488396884036794627955576028704116696952050811978808802239155305140676542778451195408086018668018597258578402451666863203844543267543397088953500208547587650989803545185098399628971019573442136540269306886681238507239488469617426999244840761894929529168380657883854164353061433263789392096769579819306209240193877621595338532054848255996279138018193419086915432276410385475924407369327744643281899323880526063467134658175865906398544640268563266113033254591753064787699229072185907226921622619819675568731446217717562981025744758242529266105142255308498798120664892891981066963705156210195871803228821035729747660174528928638649988642667269350935111354279196238292489261059032803832429226840898864993973163015662655108944594707811960513005590768457682398804602001710564445636997205804514766925670558281163304524786105854157975379639147477825568123287993297782661511940817744860934358743333405696161774927618274462204201191786237531407409610113612616247770358835110529543733569899377215791930846782630923417447539177429976400813209722237602022503278393184340289815034115176744334102764285320772131413635990022583320733215366137359865466336186178138868824878926083163047788323325661409022966713202507720984513707608430410299523547432643678867038565088363132845014938399793051152796462339125462497416349582763396771700302641767265564719835994185678181471907180382498136218007243066099035461261516735950148470111537419394121142941783203546892774800421847762031738179211004974982727004370126433920776059551038943952060706690745716508189876993827552461675787272063824847170719941908852649258644544818648157393956103634539190253974997059782965101321219853130812427849760864373984347615485329744424965514845518641705698846641870283023257362112350540447737402393728391210321152527641162219655175370845648158390322423754932194994495990164955762338802518740541353481079574516185613737536732820521981056319821105562746702698370910021347242761091089624998547977738730013599530584407295951428538283588986674492301015839726101789049737374253388048884953881880285579443360675615018881548724153445140024928742709896022745883656982715117256638976967847283199703486864082949305604002934987923910835082159760700701412954598981240544667723231219838234335940495410089233203071696880956083788005051133010810572421537353848913758978582129118507363834327596725403667481480495947864021940174929036244717410130105540284034658188080857746852736911016079827701907106212699676185962772096942629626988893225607491253652131529900036264657610352160605834320371011254513598058273753132341367673307249773676774446496241720657259637076994200969854584454406437177541844503190794958207581917673472614014398863646024753158010266591763257067989415428568701056494979431908061067444442751164762825457732515372132028709217142303929743080222590824651499960424228784689563754021053658519372853096760190036861475200598550463050234424989677271351482578676357282017782398344097665472756688626903795974120054193542169065914914583159382799288319362400670847550533598393555444496928870764449191524769025560471110883252056158781442622747930453901481172878627025345928674478779968850221829957408944433850775370963105824948157001311083557520924552130212545937736412163394254117906673300232889689982751810812841818915603856922050514665586002154132157809828153291321361647806674968581466313448727479866610235108822085463510444626304245073305536680128397268419869125617844505203901748483164938417361708878942556669618111625789009577820781303778319818494322240903042525357297651908371957782975552474546894122999918594268952590037551733387661239921309960278371987693719563197212666269034112587806099846171233098501161670101114186871380596632628746462482036442984986709256064144136011594306269976753977582360319523467077964618361274384162620122688640455970772410588929273518519095045296351466668164931460309594271746684014647098886409352928403081967973979208322532330488770806279758724951841941710032128771136259557415566275682830215222297916998821739133325402162856290306324565753920861517416623508573219454904354026300892872872320633817190691440782693228305246388388865201247604023689387715085685661625654800659876247163831664831381282985719423315231423167697460917810273730659700671382160216005263506042971942751882478398725943067063240153419653156796241360851466888887226740018168526613079495152170728298314447253985551445134350737441281502210557998727956729598491754860165906889630015118912101134428955718022302903927297430549952056148281152657057399084245022872119114828197540538607012350170457443187462690861075343014548299043671264204036234916051194642982948078073705767063515795361610830466022597018708633220285024395169665857298260417868537205872338472223999477152491319970260417834954434443043594989059645069798046090768002554046667927636989986348585910687893973149961736833043871711114652293487894643859301944151570665682444613711218425782415212165021274956618827218504832333420924512646806826124555215596893836232201104500558695030991267199011352569229581324382518072611942870716307946917316842319711831496786838575972945297964546710153854555888725055600129219776372726408427461056481320470066894635987344277621554313928871797816003999636829398134637197596478516028014941832416497900721339209532929568558133986013681006167472638249268452086400207812459669898810390167674368274682748424956631637756689556028728620229622663015663129108191268873961955472142844323906814320691468579070762549306370086621032409898148466881172007016508962468939397190864558389209896196850727860643014393909161693282146388859033633826587400001488933097477253244980558379810694389103101995466213350340886080794021640868688394107875831914450258286588433985652071970322849408236656051870235095796313967225843038384375789318001758324983251494008818622794319106417571757393448440184680469203389679555643090940396846265409836007907906350343432725333580459128376424385386415482734858263786447936838089647600127962295315237282874189353177783700127389818978934291311931331434723261052035528961022386083215524326268702527299115445256752272771479755445379302418592769567231801756044143601142587018494642204983197829621330608030893512514373987210960815098679391960055490920644982174556430409782706267810136250022996176916456791635668321981465587723441014109199994616205388735142775075472615082274846273729267048752478158404180778104593077517290783410800925783833076963414550370062080126977995527440618303644656960858719502975160655760510244338206195562375152507273055814085767888145050612001806678609803951513064157639266666121773998369483910129794488558853497430451284165923045012216118475924444277129516742234052990841095375092462344352057447392911925183881922939635816497419090860644030483030383877170399572939042605344822123682015451896843035026954913036398871430707773757355379917245074440800968474324263416914735070300469801449579003294010364956940604637377512603753103329297074224633286704080921765054671103779034374051298420547179393522683701672064572350453081671226423977029186358487839548841476517226837912364651995120503641510448438769933973855977383559165964100106803326624831329962810839239530960355988201692012221933573771020697178293579926352490304170059946640018777562612273255649841486617392903340527659391771601852834932524461082400248068196008534907803009362928025500353598040264742853644529609201243948801109866797083904418315355073002892381233802260097449665186803213625950078369445338018564737627413292417413013350380384677653728873748824002044114468968745016678638910007020641067924946847110397898394927306057612706402632069257586155531895765042240898982377522264172329406950310751361314088388930951266649327133319298824111497393365079489100614886116374530129729690832314402320902981959530076020177366900926749240925368423759960682833576938757459527402033539781212015496490458501912371346049270379216364250288273926084732899629586701917804833270548020157712090131449190662642225713276745567094791326952823835341494952735212932921380901706178599878184402560376697444874384937834109846142699267103134881979344014607861185498261561169331244255111984878984360750835946457062312258854405722566548636242705503298041647816396585692574504692501606549052509912031433315282413829806966224346196831562561658568131798590255811028693100416642640401832055246618100555564394109177361590745663282533176928050538499280299784161224773990805455790715288017309464554271870242369869284204350457693675293479805423854465065343694274154418914846925999521926023930925678552237603569695189082184111517218812761484719285817024183617187863460001553414628219873735948189806983401343770681026893903701266374316237709144038342972504155741690101279945860599282561735542747598743915443877488234350183276737182664699767808490236850557874324150964562892648038738954418648502842850796900536989858286258099218822273006633870878672827134186037116805140930244318638093573503390895307514641300919918772041294985540159097939854020681205446431329578302244886073101898384687690249801253742515185190625141276557451264311052519038459667898289735503316589683230203857329783865390934159649990183916698378527293757875546403448608342398171468641925804501749273703218125093982859539581558906814587271018130963705175345967454846315648308458311983308268385333769053687020759364189448624506095523543407043112617871769524161869838275574154561238877047246815783561346343423879230132129045753347844182341351763235814887916722830953375189719772074816648472906925020247496729183359135291820101996757036120246718112873223921081478761807247566237571698402719082240409756576081731277274931894707504879113463887093209869436554965573712159954970205751792890734963875256544858439519669304597322679315616851861096380735775342550147646713855067293684337505369686472171489227117389615581643298737515903220972276977161388729405694952734228190627362442013684421072215595684969353308100659455951913802390920137613538750220311900333985795271767563802265930501669831101073904164609011107410625043201432125220640464297682316059111414146007848259677149528047979360208155966962360881900881835845943897644022145805400380340289886792241798275062449034265599064583559502437835784407008762070653868009413500818250542275566717992467015401744637920195498891741477726084444912743142001861015292120019684617877869170211189110913168354211495428293522220847644873948600378164820342449000520808894423496560162096230658282855571414166520104142691174587583401482971197461308499596787713284803072286703434161598706358659770182628914519809323184936474567310132734713008948431852390758624558120197496495726947625192766760042674761216659331691378601288371799722732340059193383739890062168175653551299264924316698658427515006726962422145915498540935455982731251348080325345830983937042429466840225230116987488453208745017149867148627315728523086262385998920896895706193653661071632715019658508839568125025873918674009922200608958558832998636637183762547197301978637671070522305899256541118502897014970902902844112918448280828317497900027627823518609033330188674034218925136403987668903806816960160347139025395329423008656374388520505424326705427029197079661940489387262361253455555731875567895291714897656453374292855449666272640464314679721875434717229761400164493258120696403418677355822133789124877901589359797860736041153184631226145389188920788049647171352026705416255356615814570602002139039543541708973891924743228994747293581134956003885872826886696416307717784055883918626828226796729041001643309583229774629901190917871054697501246945218457915973873781095421487731358278356315646971670061475323119734826591867700078219272836224843203657995991554593884736341970304379276764087232625392875240977200285681767249857943470508454554140782180687762417911316591635506995369146489551615311472480462236100032692282502651063961161921559158091168305271304737573722683272193469342826436804128147606192102952727701644821238096361221299163439223966619536728973879021573731395494836637922587032625498069873997376990338777762487364803517929750209299955712176872118733971608979028675717080660368028601042061775796590357098031843706885103062374342743865822961486854606450408606406652782484140717420790458532801852302071829913263573467253462999508905200721718864846871300974819973286052003067632587236308663899656336644819958882118235985366936456552401734116750825380639917708319358985765575053226301723490143971217214019188234074753435475980018463877540819741525192426334955474902097138693948050690478570579386058393984877247476490304746052590519006875432721376622544149504032249269762751989386013085248161697558600841737525550970456764746447920791530061664137195357963309257194718669154554581706938474834906238901568063067510405237218412041082348471622825667766213660920423971472044041066648883138697599870490540108396243742931862560944912981277549117760452336224000956391978608158564466572574706479575656275653263810873720244616251617448234596160602401053691673802311995170345843600176728196665629616501054246753832882118134225558917880785938360654009780156808141533533334068715324148830098871088305820169206869879366551638041461772560390494810473418925102063752574924424260902652765887362096563200126477787077417292886765269178027749327235576160680451385378519859634368770488148866856610227555995366080878044509653728610539176415774883831485126335383401907260605604122572927052952068795649710488212368385513894437584385003740382098216403434614820115742021235132120937312422045035383814256432314595905292387226217844250939370900657696108141086298782555981649174346388773115518054976864166753732704386379033213582868819817227416250374684954241824180302097376816063065195716237558812383764171267836114802930250527192231184874818557089417304372135628886201155061984299198997386914669268202009683560881742439116375006706505003621053430777115596875560249281425288256307050626595086294815256014838045122494854478168221531649564700672524935012376531721479607610977568079023756182250229319618887102386050964239953797607584348157785275968068482521351632575635424187174740700600215594205046641113891678508350014380965880242354551861999790939174014298663885367088920575117783323410671891292508129185926445461000388146056716511530477466948481567599569387034002765644433809677034121418383154109663330142149744541498125071156521385726257267433639669189446802940656245514054514919080860815832743552883284836089231990777502463621552522919364902862373355740514846646505228326228020003822252066950539191392401191938611110473199656247599417683699132189487534634906868106650221276048345753723902218617743458362652637981687251717398626376688865725657207745974630989322023604558439863919011381313891799612071114794485487529930314593564211815215734532437766175188318067941764108464642702688767971233164611768203594220789837028317437674007714675829688597492012492406605682238964123345181085525165582615131870511203320980090286986804230584876932629558596505081887129659685470110815436417552686052449022291537721853802430975798263862385194222954259146086134622859627959146067147842307000979931148461441441144538244070122758212594680599157815791925411088527608179907545428716837440115965910912901105148951580082701092460492732400703421515825497751693215254130898056155867871017903633204781173571830697218557922197212778962991180671974356413671058031259346965561293561070849613181564208930832640643833857526305819095180659552640263791643389807638991445783522488680072544063294187428319821913627688749348064874367464645669754915003530962424895265300829362457296214055044397300514032580876011326107236584016716858015203970924916183039877518456065270813019661564354421705902430314538566970202295703475541561391508858259288578852514224239198851078076256766764620624715411641757121223230176242299523661029074128982822814984454963401236021946865931470281551341722715109666612382043182311475439251170547424958531211603923692825830245872923698889713795415522491578736150674468315571333802760818093536887563245699264470468858004212177641061785517434564201588925012816562000744776781797042426675188128947993465453891820767991647635280010910829199875255273303005849035469704094424615710045909091704165560123766455075992265044844950312279451062857101603528408570787333117715295953848001919084022623935915216942181057802530262322836663987385017572047813709403374966251385805852284690083765679513524418798758677208510423635510065599369174006374504433827139296747791261394691196823184521219636210882620369160843315657258480280758494817675190145842692121012657795823602278893049094202253164101967714287793619092755300066613427157021756809084984588967944024733780170216443760716501144502002620117322417925407730327722033201688565595027435760839510698392901585134601098384361787764106183860801966728400420957257031474241887998424816555692459546619112409940787671379087344951364290417058614973239333491892843766180539036051506335381615633694653816527014117761577161720965398406808391531688961008039906216729371341000788465800807717934741706993770636686115545898729906754250807354281392782633223302066722427913760337793448733535104860012091477747582907337665130647388275433136260568393307395148492671027420000137160470081871330313371235076865446085282049422335226141166156414097558238724193129469660562946957027799732561584520283793005219242420494809286204908703840499251657564840495198335829280609576098554776572297299654092926328439753089939552055128794415067453439279600376507969976460778231776720730491135764262741955627850403326508209722708779941583594932625889055176809917167203799606804689881193990061584304366402771769982751379866931476093617484048954121549265564488029280154748896352464267621987123458732227302418793804606256528997098339001859425969995616532877871038785418511746883505063820403278632759202080944227165850835082774989331828968969123410808600350657151278741842251628769185048396638607889098520656155501930338860140473874909148647616853417239843089409458777712785502595037959499344080204833836574376480053278238573798361920627731484372249563189112168432004674650577094094126296902031234019445398680923743281510742340739688224873813555271602202031279108510314246878738254823636784210228995261918750891473658763537605983910320742306356121811834791585320087297764737591260418813709048890801024140508084388618597887274304940891801473984415889945394161125444629629639497609590623150902460583401818852803029158325024457275240537107527720418552477236614561046147566983998379490215445934593291458403059245571914601829736483418641439573582776799170520430497340733652275777658903346876284532550044699553813674602618124947981037555385932764622606555526026969059849262989117429430788513971659175794611144046783405201525804297354112156960461697366965512124811202639894850935148685748854978820336920456821855335918926681065248862986941734136592517375179258212687245215426097716084307192172961512694185160751485474781239401107891302496971196541759625309862168241400059865222441078802265610063812265615539898330307621442719916121465893211220912136478462099127703580422043484370346146398802504864149981597854589917369435960146445405355990848971726165728141110522559232273815805745732970012960887270012627240796199501836170560714075345397663600735551660880056069631329151966251958993518754790960858758254812770984842743779201610357992488519383239121735141164141013896204176793127228167153193788270195092407259582719825704674108812145810747802048840736738245982527018348748029374407082552767016024217523689744462256888210401661279147575549238689253818104642570580941955086962772735476550263799287891443849750079913449191604043944897778069268178233213507788672579245993323849951759564321683964727109815803323709512969305754865600546488142204113872417749404891365085816438783702858417688662647421400134645200265083381777634105973988899159264717173449116315172553743602645859491154844657728800446130150081201283444707155107896073133834826920573472728806469159877395753813604756099366859370231153643820315472899507480999846423129122889232098976883089386921786271390374610681979792690568569127856423815706371545241803007295074454763379511649651589760681513889302157869261494663925309733983958974429529549316134597941467167930115298134748996314688997262666063146063292509219470267813081483001403755746166939939971035180221911123193115113868558817468313824607731893215295485646331800118396305378072334186859785009124249097077061872379220164751410792898145194102407361426756944651571242592900439884064214632095947888297882010124476241525039401581801361141856920275264810234946570711381232579957919003182543239472980247969374832899817203657744186547764770876067586605736745190598998218757875669234063017792233719160499587993206086522668534340887082779585027651223886569127818652227307917706947255737459660869401865533586021408929234553794697482377647737382665607110779911770711378925862424412430007450821773453839375436562957392917292703806354310894315282131473082033321582937462204837302407515327442104515366224563882815345136822624975475255771981351529290845068993160736838089616641113430662247036292388078818875286443068814855998169057824227978293031230705061707818197683222779143745121795579010499029837046060827334845789385281020168088304441443306740080697172193920506735211434959389931864997754638284263458006255602984765039194286390986792088208200664734744697726277475380765438202184883016244764024843252439835256006579840662078981791124715133260800199444271503737380721849762120634730119050650474548170304978570019995931137544017892551699412649075651607162561927854023788402351402109107878352485270096826607903899795661319529603792703983085943242006305928653410102875671190184408052586796403808998564232407567527099524271684515401320401120424564212009383670309985574083923428379457826886748132808969894207801148942417341831713480165576907473829284730883777977414362451131423649069243158222889883124325721018245862807148696169279431814022543719794104760970423951922525792213122907561511098745384619755118908122668446547536758749709999317076065991680797001206892633062445253268080186790651075334453705658913301593590618445293191682393331644384785201802728443182326288668839176972884651178340203286524795942097737732813127196810502596065650606611035309889239784600218685047259999761762283594076934444056856334355201129104614372853165667158025711529677009575987735203048735731577299978191998804600594041740714089939196567469257076117913232643718729767295278916434509816304053000834249615978419892285501533112937444029594601587665497121021262751842860169510130297281001616558952403320752478329417368561392012295544264082107591243926226443656607841344947176314385281696018851879239267557995573465538529492229124672464463376090407831353624659175937508654965141553165235891742727594325184032482410158228786761921472497108625126847773176160374363098090679172367435627644583609269667021532983897202602010017584355160041099832253507310071050234516766473208161672796665297598513416423947238705182277240047502119616198092137604869397014122261170669854649579760163077323695258747730196427888809403861664937358403086101947802481690549235034219168186255374509710760633289226329270551075704918808580245008389352763439254587764059698078757036746417980935010884017078867762298251910043928291881244888755207062405653137991064665097996088332062689953212722145189779641027079580816379740431373389146700350724279629980680613392295560033702561472356150896862028896234678105804011172484655301848158638599890197818816876717102479242736798375337708007292116797765824738436743920954463613125953051974045537443931134416243496584555234418948381042071900571697289985336936220650688307242449004682125170237533200101412596328097759940422168388025180001727024317037329479672069958479118893337721507168146917731626869488136738608738152000932207713867677423625949742286009626414612009579310237553780716128914593774814292773164858473774953385008314653379737740761783611317185277671377782112794655347400973616345489785261054907332123430199506808855784948982902390900412625872442666370173984362694194218156332204261315522039081666304726979337541289391247499948568025896240723150352782651246486713244455374386145152583321831086021719016270991346875004634933110395900837876311989004639408060567194083670930518428830572706025067238679713118669911209646856349398022741282158625559066885977574357832353510702154786951444401732354228323374862551313699214739222931244136759181117350002798826121377376443843744939297033046745347605583146829797060733238239664643347417084035836517501905230407744141495354267249312184792412882140998770720846858437323389067771073836134908079324285570978137493706527641018131376564796773056428852671377487477769048921611747140031007675799191811139793247046766443450746576626141027305556603116050094326681760532845498381219938796634006145413019549802448412355161061158963875731166058952559603583004013113871723012519816760370729578243106341782876887656070956881121665755830188540926399051693305625600428118059713086489065841396025471340038983773783722893450971655661785913826898965877738349242711784358207867196213591477736830712299172865870153497037665910592368525412822374621236777615433910181792270986192946529527806387426579813452227633089751376061182700319570067466934678112847976187095957785875908997491942119362906530351355106176168395145332530815437738651350621269184975943287129423878683340956489150743019722356309165042027875580354767694265319491855809028296491914197020401359354846191920727188798843532633287045786014801881101932205379442700375095726336646408743078871931482218085145711924344328089926604684552012214455762344686049001642801762330569848627876472242919637986867240930386630922066550846285739570712786839921842826110534990677376203481233883936651849145663381690304933188082935237328878598892562768671015702570888637939134940391695578220690475370811661145729746879810360207373681858406398771922642411491908243991427275491734087749555462992368149715130062915085890749472651390219947676517521319060581081404959355882068272522447827827785829272277864378923778446913528686541102566989176516506698370112439067252597002259877716423841257136794731030443292649636918100507965769039566513350895862570089039567832753670739753542263992611688716209948476264336709019558124735289290273611529197217047648777192099178429853320744360784844054565625775023051752149048911908451797083396577529690431788075011190598092394617921571889395360991241644922548362215321122474237045215120115078614256500979440502440196634384464642947570832391648973786122157851222786237152900429415125965078191343127773774935182255944441800123745520976835154183282000743933277985006480192788851508329639763112619867021490546453780864569870044372044603148340118661832643699471174993821552937241208409398925751258986870983870918467540329673451224356212557434357063971696524325397996905331836805377377431964818846597330547905614388098402171584815074865271778251608333433633253185949817412708619515564572729202472242349015151315866505878055428074829945253194504431027663439533175353845139353977318526340587972905002565098915318307119240737964684354709830116794317167988713195075683564042938192021166968005127350294246272781163303638815315939498622459993401089427598160178004945995876460833914915047554556772518672641665569693650307313488038580830750741874334975636813783928147871011123577511686444908908293451897422436721261305339113085124675812418449195135681936505908914107629203231139834687372634171246816763953685593585626188909974142456284541334664037290769729373389449575479737751589721386022092448164722240805976213554434033430343045184820462437531241359010470192328770005164601212268223796776894775856991843167654562972060574352186010524571093228265005351112015779942909662665430699078445405521422681950561009775201190927757962867216925722520444202034852183627904198965334619987661075097700390732189346182513898585099237529064078449297341135048720971082733430943390775075147806643547582844791910495573335295852046692724953534534290501040761860971672465136066427717280367817858908543829668936130813862551285276378879778484022187242106260672017136166760243202925347338018218511535096806438918254707945293669376350863401059136971896724053054357549221012139068726904321704066115931294327791841379731717474586297897420007471221382346621877616430225663375745503653510349500223213092906403289124060674791780935428174240580905231197758829155102418348691663843341835795820062863652155221540675912301597614837135869263342389085291916520185578542078379254578379533035627445590029611450729899375021185701675676011337984885432779567545655277061089167596805095794238844707354353074152774405972623883715449803045869054659105784563138956429684637326923816877003716907164638340461712436023958730978295926257751675268520594928942846130333772282807066452153494037057602466240810174758641504169696465501001914966028974778371748139420474731237754059221219263560475712619450794960697920131210200909712490492108475587453817471076487583913245331243949060051022097933096055423111811929775081382369132850800028819029383544211398510411755565036400716838900918782442992561364890314480541058436433686300978618943639962258551235422004714823155466188380751006694725887375483252477367415934223518494681562869413860400528183943729011182099782215334229928102611269413037623214990327675899318140029711651716609477148910870434407094021677825837226863471393344718296574191943782491022185425351083159623671098136401667956041189355278289032716546069999017755431501599391994173137271954632164701741478202886100139513720487519743663903379002036685117412186484726969383376238914986782161401941417265441312733299986992615648168086437600131090790456959532972247740339184729827058018190798324774178588863836737595678500127070716750608666512848118068934375691941441975003975388601726134904606869438919827442968092738425485768377043344501861329665666968988016937276686733753096223492750887919125612279451904661235167962323057277138171678742558733734191350220676029141813671207257722397897285055965378060025847953318800747444086875713917150262199546276874347862240753662508809832441344428028754154714390785834329982648654852635643676625513441581522333145756932183959898812139151703024984081380657422950220236211765423386848673081465361061039588613108232895445515796773152738641849542120761587692395115404211322229954368032944038944593598761351755805123257710041055382430270909552212647723946245866210863131846250865605936682566382458451766670461469183460660747994551638671690067954816741234609528449410022318274419539524485585383517354012367281225534620757049731972489303082390268437550388867330981523382322694269716522018250329939450758316535837786977080553230857726540109165230344202605939555879985378175143843514822790174961699403408200166881833289191758213020981284828606504343151027521311330040703336843032004061264425370069663749670296421313697790515759756934220048738676227796432110051498729106940303365982716041194609485550619457749131721366048651357261962338276076665013354320077803834303600325946100505129273883575322980893453255772186819768058760686500209280626342663336217804489039334426452741660844532487143192775975838084996074278769520104535435053229792390485668433895803198278389774708249718824337593772981635232478713146776853977495547683901807982962747632785909556345633898552700622652107474860219398348936784364959801671411135715107630076327132282840939453389197934545717128579870497093757748410313613533882489550957808547322953726131335961449241044192053682330770126310483462056224245734000004471891732963499483410310244382952381007325069391638440615514317934607569582527245198426469657356626834091110909052581113735198041455336097378427031363590269962318004323506661478031359881496124443374575198397575688245407732058956832612098233231951045237441697839227561354734814976007662772579425814711806942502145201851201254752987363553417138984642605639726391256361809145333058522484499474375992820953381729626035819185716952541060282970537919822390666425135038815796375508048741033803790322020841665236672678210208830216098378383306946563102107047586854062999579575079165010523255541483750860536475759528141529297183856432518058875363298644031359356957079838082303855299479058957903304678733632289438602230950741058048281966895935455024163006517821832150633161142060797558664379096967714933845137598138217901372315140165621590748186047325543009964443276726396034611524233320610207843027887310952913402812266046717359562577320870034264452434461506547498032054292142063613011753242064481452005786672355629966893591312874612293820070708446576644009361220674364992571132303503788988824855496201319643682124696419532771371441515982748148439624655000378285450568718531799296494809472512069432831995505747714347844400259047788182738146840440404880425417825923653450964184753636691283994411833902819810089459218544978257226893190752021492462809794410948801107564913772215046228109978031777667726646126284542067359450629820094951199259550915757830575791571947518659103576805438009969030176776228181624125860229581698855943993346379775859477766639523344083275127022992165591291993984130154203361143643278425435669994176924074974873407590739851992980191084534575885021568604599786717412849655931211443953896138424669231329790487937734462518033587499267352656870065971643479350165923359385451074571285313214246360683836010521361530717339972698782329692183856045332888233809705871812559038061174146089370357654326000030448910777413709084702166849431954706466046662399451796478708741782859726957123412745871914267138778926334283598661040872905012691355693852778002495443531522306582699469494910582533225048191347904186734721193877430132712634608587935566149777837223949539155180053939262789769527467892395241243137389352789624766082814815014990500494917703313139715884074294227391887336153106639023918663331711916923079914682985660592007727220205936500966343509121079924632665335749895577945785336721983018577207422419355186715327063913801251370453617852082595020571959276946660154649610145795371306350163665309257762743506996672749370662197122205400283722412744518568840767396221518093025476435236818227641697211309980226179003640170373564059202060650728692452824847247357919730380553432909817223863633166737712931026256797601630151400149379270313028855763056198701481319153890004988162417417131986775446021202518200948001319880487241076676089415241978855881345669697023800039399325728841183952964927969023743521475675282870573322889001719631171548155138517654191936006564967262447989348600847987530195130269976185636997986024732894777993686177690198015771883837366275958352246475672245238898038123940980635123667229033837662608317586388948130180247433959147105826746144471278149083251239011704414846339123019982358992218765331032776152211136858983620893884057465112974382431462200283225545245675530459601604566757957836346823967306587300772807821892014595197125417507479197370853703010738508525075232625041541916379394920380725447103197138642379465243083039134366278316174683164649443910127258159816960001000198838973095652922809843944969313465426817837259019160823275528571685391897951625181575892856167489218015387455153006068295729346863200999858965475947906015195624631156097696548534750597003170630639459449929126852922415658632697595577310680868007398866551097236294426442393073478359882591066755338970391636378643485362139000567974723717320429024421855108043067576287792665499630717255943473045153027108230580313684871795557532774786292496535904154339068277345546047380731282105300958428235746008423313271373413258593893571507568038449211236053962189055837748234416265178073173657608743385785811229357986860326005703618128225815712492887726373356776047763978143982375594662585975448039357723826907106317842416636669801058060418111440844323517109175310602502664087619771319491486664726116451083535066912110177522653770016877454513570930015988719760480312650280000472411517464352259546675236976843466587480409279926966437482377827141545494495404397437222412736866224351214847722363405366465024561666919065225631304461179442772022577436481058261512199072836530270825438867664882144750776490938689358735635184300978586628016241157170930650158696904288425390246826053964674355787132539505909680830293439074506542191683750185671459988326587963756101137335409851554208281606195748206922964434857936949893114042027463005410079667445132799022913169107784878851234813093733311583534914249454507553615148091542876837312720288762836997834781427704315802691606883880672170101201348678856847397520957723173701829470485915243082049564852160859562116697490224147512384345022384296460188310145915582306515530308299146051923446470453725127252821209100043358645432340206013822037255204163249979139417300318578515124288517111221721626243891712212707696374287075588286407507756996189871918705384274840760651138313447968651826756268822991929097994403218193214805918421884650258677813491907913261944630131076380186148462491592052499346574737141005395341568814439502038067146892879322965845638024907746818239901063305288282248372217813163454772230581383726612224943302406954240078894678395658479512171487501260396174881739117719658162814944127407628573217571765130926835537327581525526975739518424956715250445245484094522903481900197545805404000264058585957047434731562410436907066435927343470806701781545370038639713436633104822484826394564678492741048765171617833496078218289409091493919544270989039548462629722363735385368914269467517598725079690509945171822346995250301933318589033710806229611418347090397169778542213739152329549230915839429099724803056401618698200605564769131297562781832119936963722214919273229549714512523805248752471750197740938557022170731999170550388873851493318266116595105780351701653634065447624695078800161563635749350248850063375137904983314787997502085767866617496228957410396890851117522161382527569458029348449402222263590589577230749729743708669620182561255932394301246964399242357509033599124183714976769011689497995635979950531760136781641848120133926662476405316409437920705164581693287457230266361316485036958474233893965386919767192315355305371284594015328501736308869236247329070695750647978101450776429589175466518669697458100231040226341687385331832479203413611498815545786131160021011806998253833028044855431669772371410458411555400060497992449162862432168366369411315708138737172991075531646725619237927443584831135370621554590773333734654341970348964962414056537627880791675264218920166297439898506492930923710350595150967313241758284190251070351642611213652992487791326952157835656560901000838609595658014498446971046238944625450553321008812279350758718104911595551023477861438831036646958165498929400854004513273789797303880105993887863471212917676569373503808045613074946959649112522971141661235661194003269180488352726501973868060775180558560622077391677627153295204887045239799484499382182319658461745222322461991878560872706615119205698171187630996333909154583355919338874045770858285891895352947229672409086923796485705488484253263043835062046661549769497445721328563205277007750689347839319023055145712384162110865565843628884440921727064132567883911639122507937096346236807356963415778703228996061417042934580720106675313966210740254805402085789463467126385689485432216657000415338313174830069601267196855050187369825758995447519874309334406792962287972219001092662134881159636912876269787345592542178490641019799697229565798154202350012603341745219205592974497562280496179278764441178695670869872925411728596231243018475556036109506924036012530067225582180641709655885600182597472627199440934129580402448095730643857733821825502084453036895125879333355823174493606820495401076537703197800883071514438266800167201361105071325532903705107993937782312553486080937436107442030200659365557434630129570980490394516277769903126653409232632930775671604759653034339836595168620401892549652338172994886236884179215001204954718570665459764392442077853917530196563839956588746456543948077426742730679403510044648624077212972621936681686696500892724586791877994865930458269277875577169669894589611036325463034540259868522408342651757565890868438786213074551033509910407672215548897699819804746892885054649025787393801703898097804276725241519781072895983422052763843417340312705653375970200549305150466977742894754665545558729211349683530994382103188775142168291833778056062463437660804975168273358689783720265822953263654423315712089128287378845330270673531316466092216515660213832172605959438625178787442275372820668866662482974773485095395736799889213950920128190250173550163246712011720990961398110028748332123490102064473291597164028575002820984469908613998699439745570887495528776171316597713465358457554808192510681167952403770819587067240585659170061219748819015503875449930252016753355692479778665564833269445324996313934315476795167948678826240782566475656964918462190342150959245316278816324317554943342175124714852745751188990978866330496774818920077391265725498333186217985295708101013374616791249223036971113090340218224041214304867138608259754419107561535639004760196600873877537951089904156046878730972254498073979227481288437618264165948088231192917786144267306211721510477065251083504947232686513071540057367602069625638473201462512069726915367795536094379588020239769746552845027106346702587683124418209338891209366451294541097760302043988384516593850309592777501673808536732714916525417496581553306614078469305918443160285634281855547329005225485214897241866724457994214042442286292682475850381449560486814998442939774213181202329078782046276731143966171421565088674461182874775839057686032563719548109314116607929935723747584847430321458766778510301448332541175715205640181298628210149609535907214387030942122630035449435446702137935512424834871253500086267010773094184176011566570557703400261762305835343477635274196006025471025526339862894801546046666363027109294916433672721383095794690736215343625362239853810997846357975466942993030338820665485947998716581182996935442519971776228985616652861900644875682236712083288463002944490835046065979467632335081393383782194568762175314740455326275682804335395518636317031721336991388113542350418359508827780462681135703674241255835885323007368567029746833821156313640493627860180077822504216809071079383812834111349129987197141626090324486987036524772372833916700211245638164488249066714116686855301565734034793219623234761545471240723963158052071402850042411646271189818906160367899335874146359770155471474432150352454622639456187352478293328034986620334629586808338387286253980871541490711163006506351364106774474313327936374360972676909881995695353849276726897069504571615323643226243749405559129977466915429634290426717419682316851707717641426327909864252284244703049037578463564728438816118750848332191023420557127319883792487713879539045546658999432912337191686808632445796219599968159701218367079797944774139346941149981389573141628298614586786708553170589632038380023985783758879220229496622535418328456845756517072469901950868021976829038302237616608846513605424573678959474591389661107953036506751696508311917426585146713511567222072955973942726808513990922017638730028178151515957118753156437572700025692572707251334480012600931033789642128325968751174025741468185849951641211886012599369367432159523812773744948265884979826302028959438160745084676368020156050056785051885304826277143621022126460680634909241312142381376361156099682120116142542184592479923665664625908739169305014482560048397698208621449648753909664500257707998015687208272070319952463210100942856962376366549347507315198792761255808384316268953056550199010972754732572992603896509467798247115195374828443559933003174437316614917343267388128248564618262336212162987528835421254203349538170182944419827874916707412370230284233015159328353853298429668529141082367371950566841185127671813520550313308477945328538120329554429361588447513363414992748068835322330557973053231038921528042644531437289118401544598049527002036913694542109065894845384000173736659048324827161335823608010897471278610479259652140359610468363928796020343588613065711885960358026669503637666340373239778373083560148118860338326681209805851718514040578632108601596111473983360273216661801624408084019666752729518105887145747802874253378523331791653022300785032494276626962989907671982728701077561271009156722764282563702693818466871777765680901292084240106109930138665997462669326738503923332859137630463426383553747569348133222158552224968833252431360718527993376463983609217876163069436735350953903058026253193208564604835568195199427723297001939995612188298060338219695887767426962340248172548003913607033519630942809711145194150093118881380162724325480739752923329327874342236250548239982268414775266525549165521317655346702397416479307599364938601276125220513877518382293816569322072322349117452062328765040155380047843145431521214676139918195604946637485818184917150088696721463175041081842603405217305578212568300906923215670370313345774591750025290088936045205413919986545541343760155723310977792559879773301587042499125859932442945637709932339900844384922504599827331835435094171930651388564364529339677218714937585177470131696957982554306677396465974621327388310842395841889937644488037109946403341823346367918643798858160342974893384808755364973291631797664881783903063781172254437630124218154799274543722103098651534739540201569980098409199493284790374067538148472109247008488270140594676653888582141223628565268359387983180837718767860542199634227717086925225476876758036020273617159416693210386069274573869180388151458441951085942812095496154370227207076382391330618641635635215956552657987600467863518745912424776623028023371021257978012167931654520718542211666512110467046724135301422236201364626595857437641855154791194005817289654302929739753085095206324790662440257018994848983289249760198533013670784798132563362785328419705097013989757156133011718728467787470956463188284252945697725878407694188910248368177096412618271562723966200392730336006787415581384583786602980428931256680420183752855817756601679642981656258562783052641463468160978995951263864860303728544759935425836542078333848239886004227300708092991091945188035137349361980721621529736710876360613011314487572962990456976802727983456639105448868397275662494249514122456270649072021660574549925060471533654332512566099002017262953560473613737654895397725636950223811161631298047661650212539512893549472766823348798755792334755656449280820938268591600758978179017058563680717912025325192341978768862543991766655961917286629278537888542262709913505111293807722423557759591105046495588378133167734492343344983285847082239892754021809922651456537268453142436432537435431536960153320706542946290553354596146238425940348019974777271237023406627189966648909553041694081735160176959929661671046337549855608860125497081784181694253152083572295989972218991661570757739995898924681674931390677776022917450657966825090837005497512052409542511576188491117246600672797000613279122118490681756814150344357567687692448108032925159994977447477540189077527638597847678550236042092574618876628180404492580813453736963900682205433538758648269691142714928775125704706263067902527578864831747049974343502307383644294555780779179336498100776656893522230642035296764711498018167827130373192048460634402009220183763700291451108127717980320082402832748463543258458570274881896479453595262658176897845227101964020501412210159886589943478538051709175333694863131604835579911044964058532075477136452917315769863946042010593338955513527577605336882701186924472373075949873252446780827719448939100406026744100852740213899559766652872348222087727135307533067867526810517889929811336299875406541036855216360920061136174385886780621639581046991293933806047186922459186345104509745129580518105635265856665707937082131967315556467845822884480441382437680655042104515286338022735285268552108479901181933143937749115254831016894873144229539802950863430446149400140454981215324800032960264915705725224513562120634850009864375506759390869818610580502492921919301957827942411875143930410498489588984156943333435973982108681829288317332235483837232096128575337243656014941632922010744373648253739738231958922156028278907801092806485956419960916985086288500486918297542780074097812024886017206094499932206717373232664526960769539155228102468370921816223025733779056098611118370266968289377018582268616979316030470703970305544431133912724745547318828571099215768263378502196956340246485066239501429031757017319232493645486528548710635259569738085068032991340238184230668070721159944562250402122003424851772777137435321279292932866578907394036421348550630801357927590117206856406852736897026713084851041394542823554632656663067865825386243628478344976291965617943106468040010582132324911598006852090004664267769368468189267383642305572479859369087772020623211763585308721445178385462257536270676069291367228691962285097300600001963339413278329174889227034807439342222237823129279286981134470558904358526771621547697306754733965842522645063296475385944781057043255379790529031876610084294483111436403241816912433764018269428052649288319530389078220578192383452024865903129404688307290641896251800318010884993469338364586035816301344242687919498880469013459842057140406370575908201912283024431614238235466534934573216617104335747775291197727174076060535042761829787278257289032694604660586089279588998163695221800269944890579611211847698139872091157430199021952149082512773420505781172822757810912480598076878186688623699626568213908214784810676609110778769282515959897990709849443057510543846318714395715331102130070720710845874215258304760786278353224586194105658903649190217932720596259698730815790523568955646905943698108800238544347439818273250244996122368125757070211927609760058577154680195200060640129742749476147218178901277823260189653798910997207029908646057267520712381596765124740393190754757384491929911616489072526237368591371588642735149188307775566101994985025997223688156190683208662014601695167251411004032372769166995359987410472160057084531552929159497847909754010264678577938254675036651268428142280224651855645192251272495041547852646380065529391394832495961126029442825591525256250831350959280316106830978667036178167169767901292194951875233970910283026428248635594800851376721594192801433755446418155759168153103189245651916971061338985872846236482351503212933614685409685822792864021882477234939294230373580008142655665079634088578010897169199813707826422841287754858643126293446013389175625088413595091569917586853959229238867465396228306031406367324720640096338715481644671736677538527311742575151691918189569402339864796561339888007998029517178730195839908449832268790979775537191862744782667363220519107290675784936999498030167236062656819723659582828127162729139078185177534231830965712554854171961055580241852920559691271220306884888688893965654305933440756989852771068993141438764942184775187619954174184423879593640814305079303691273778987318714632232381067301312086761363173168507167612617713854310631196388784202248277722717409547487281737158806494221939412938998408402684060107159684791392010961809822519131120810183086298802598977877638201232086681377531947448226169244128747069286700416570004370894368810366816825060541101121358414621115331020304210465722549679573151727640628220207898079903816961798414978656693173899737296634392267316486082143858367743581891221794873639389014968177508645531666023958654388110467660915151443665027619433178761822882841771102548222897468480106017666923332678055663781948364493869139159286408258347134766586343276501792382665905688850775111979878174063166817225897010668283999209434035203270137979944089542088122637554177377927073256496689566396736094653648506355201417112196398922104990237294464278084270321105947581462662326534029462921363132372191015744705133985879969038005431807794768579454140175186175193970107998556416958680103611290797213337559826501368078692553213858032057393710180244829970120702303200061040850433612917955697523152175214304651735038816975141027595464303027308027086795358899730487744093985071338068255472036882874288734431042993479717602007626086766869477869669156192227419421530476086722378222645502813496410901343864543460742371345114138166356256104110873077148122893970053217087795005396865796528018495406266202527508912071499663044114766064100691575726854585671154172319434719530689488209877662678787935795287753422467739069603332725228149851891811186243452830973390652835887048091989602599922482398877362977393558239990525635401775289486883796178269137515040185004048007025335434925055521706528624881936487263052248903661502996035962782480299333519837790943754728720022507598488232971482002752897679101460313048622007421870799476088367297232503686050526826500487050406863225298890756611513538007381512144536295900216628407106148321412576770030180871567416510862064794275252603240517015745214097839722172816227304018068038720433507270715596826308930930852310959496142209297109340790826619348302653002379309577097348174646946392430659052185057435847806516439918846953793249618198757748787492219768486050711859528478403519681302569305488943116169750551909359998592348364607445109288324588688130973594740514609748097319470690308953833029467170186626577150243780194281763019268472876062989349445088309582163116392916108648926266985303928184675147642404170379915640362359183469594460682373510473714048498100509822782382678418091259146213046573002237166724497153521097735935010689271585040452935058345370294885543924097654905594462999075500852452526864323695146912619987607495467016688528074082665505881444944480240828174466056176771538919432210717992913309980469021910740568484435402744310033322432377216901652097725489822728610272906172104766116712919157450069607861054548593153723488683059639932415391460527099089480363013185147985028260440484399503330615076868105468320129979114043063762405213858157454813734221942571913910905898571347966341652280598914766858287377712779201813925984515343749501323200392117442037532186505238436425344959397557694888162616614888071493150593407591240547101467153967084595772164890320436730180305152147718641648414546956595617114131873047148579914559560322969198049132488671344201074313578043173993291358572816988265064029526576780396573931400975479192794295541838373107944996085063894956744035969670677060067277538826572157148809600715318093593586781633146615139252085617915636178516799260849642801962960850510764200972792889046860325849401930524762949282993858936874845488811778972985454374568021163727570682635595507605305457616883657167262015149561295385682068036778942488582105712823190409104217434485353124576404343176021996303466601131340600317196947871558619158260615664100392083111684962168201224093400742445776314897823259200062494312382650500846128876046077015332494870577939323856979070558401706218858331942297056647735037524607626336127205477902304584540974983375276982683322882313207369517676864716796025529498188108129715691137278898944367490460296403418043957747660312425220711014327017239183547970255414600399535886521978580533151695162395784244032927030037727788062775767253796291699852110191029308846589825137895824206468900646104412288309727081622680042799274889838861711129934121352846475176905369113097820733444397034454601229467817966488932193125938958940167253466959041332129515226482973580852429471057649290214221997894996602100296799946929594302754648627609983367569477801912297101982233815848109784307647958666554192583032506908450856701297443837791944237930310365225509635394693490102374481311889338175824734558223841811546732978198659068507725571807180431088747333752383655421876435122851825343185832215977073922301345508238191841338182181843480562015237144598177137853735857350984915672648393991817064504784092436321842741959095025304427052828329481112085226641464105692713007573548646531072471784800985060146277517124136835707384690918916222827126187022747393296701052983281931150328049030094654475468376026525087361297027374546497388932847900634037839470415237313317842374473631218093392520446278433977385183117269085320509619528478996456868311768688963933127420049451320050288729203776575184183327342422571313133079103189299605614542394161582815531007232026977538267197624063407554338322599665859559418488164772902544083173013637241205149427917546529954449697073938118575365967344530448171113005574680213341884904302721282889499094764084251142061299473113947078533063908850304250334853865531624215392787651863470956654740205612164696538533807292375258942396456166455343911095740627703511312339747286556210161886304629211035810634315208927566253362066026695981013926338775436447362825404122315681575403616431919405294734076142524771879703814723410093095795709382239880725231511593458931281251387598048846019443478046799183778896263568192153014240779068938689977633387905538325733720303525104353938069697957222196481602927833887115449221463711224449603022853046700478360783525198338684970968324775788617005539402765424701067489858889491483890458730809252343431186375794817153120067721284371777756331642670027951587866742389866130446585960077598832739602614833357763971383947399584884834297805745969592450380268247138388247973131990705708095627073402590356664161085775073894726443847427532646811103498440526914602316874719036669858155706724086800786086188810577612396346803736110565174817198501847864935376747382942633458786467483198669679731919491042567543469992917563917481474406899813920140512676193340051517696586734476015356014551610286793885795686180983616559692520108652200860535704422904944114028070990463258783942338075110244341675969879499900490414130657857918870948878701679326850794744331321309780813014755313046492963949417316866574555380056431851289690544881993213601074277577386660176837644863259565910051050819345656712762856010070984409948494579061019698986942351008179778980493142235800436563559301295088016190494591520829101109762741956135782586206380386198701216227404200426797666160139511326605914449262324391349754364685551564180523899324506665476636855032424196014645810182697986616695433942548782528821850412094167451597619728865254553200275916252929998425366112006850288265410580777533213984920101780991595940616043837107804833934403181157084538888445735473149438607508069592882451808916695465424276167002735867313667775909812759720955464061323306273358285321355941492340844800573644938974058670243940157202390577153820695731328412912629632939568578815593033436175322008488451699309701892386450115562575910117183707442659862813476555050605032204730474897470106053355604487843826354278282678302703331094005410768458547263348094987671432867414513274170499352297083819805571050680578082411935480716255156769735773855726635060475108037910757264116559343625408686276477954496371202264933026607662972986639427263029424055051123476386779600854463826867875838914815348937807764680244078473842541053062726128729889399841750055127627238342277224025068068955763419387537499515481557382901513202242306278046354870028685440778292977931882398545893023848309924020911868073903305820003454536006028003291971604182771695712104623967578946445174385882834186760890151578938366110813656178376565776650620117506705298408067763579165023857504947946746122823746925087991069287725905471886657037300759746846630768688712905436587076760269976886042823788151058408484190622600312482170218296281701482407750221289746343969566294484175229538958800516333119893764508711118022088867597380410248174481996884895655586517662826215223561979963269015642568928701098438008844255833298961005855653292406563054007609001232442512992876441830575405267013497682642683339384649096204711032602613194656969818830759434262789415752646607899032894316689845752696954375151855345213750231057470858417563416998050811544072739815024102983137720164375224565618202970390333754618785507349323716283630543389329994271826449878942012180667216458969364353485737241533122956366459537676632913692152006483562995753313656042891332159325482072608574196184063345084359183785460112745224315220345251431591275026684958535354695579024309095688028916435654442493276139840795217565691577896044812673021066722381396327302011018295972039411194437750260569201598487268016018877891352875689969431790748728597850093912202688230393286883684241659674360295341762875241686609543407303155702059299203586905426016336038455787853374223140553556125197951816560790509293623754931848584972490130828257890008875372865775213691719706992015943880459081446400315189995497105844350492564631566392448550362119582697024461380816662902816849721751264628089170373544505114820042505943699510490490852535328972761389583206624294311771058477070555950598199983868676291589977997307414878495058543866834652760997352648821874720695057458860070316261450170280758903429545861076957300791075294022900953714168020099961340958433738354170465848636039116953574064175329281016454022940358226811848261163432547943325171068197314497857174813622820630463439804578912909824812908177034151752771349694010490324039104979354091615589936107494880637888574441165141638470687331455039378125512249088347891749739646052223324341229499562335654860976133781491852441120213545382785789824379449306547892508043206129044436291061503559494035642383386855983343425427037633193300146616551152322714905913482431440475494863115715945900883677903685336584980840893296132281377471186586028910173980958311877310163655666848892569371436090980598344212556875142560011369253984690704028534116522768396431339352655799668739103736011580986123461397915807704991107650220863810856797464452150007701767102372505347069947080596323013128269380361640438387980599289629358067990230546873821490847761454840403458241664374503995383267719722613215758383000472801154499839108478634390380687574684902180399260663781328583642422100703280749330888708033606063347119440375341163106302957223778106782613480819294698532308991408599612985355318182034658985050800656686855438049218428680945894039674430001461490072674215575844702038425316720192553742235845372482786414330727935984170119147699284725693619062008259318186122956012323511747359345421043433894838489339299532879329232232842437965928653744694152782637309654138342498613336990340927066970765601042759583585416020827400562042313426691135024357831613006813197708247098529692189341652434104203305929468109770236474879241552410531455030982340000046595936538893951253821215834986849016339261162962490901031815909724382676035178479866810459394581627189929274375606613914466179817908875483900899825325765347292660969106792047440021685983600963301118451626029064398138934905406895704541369090244714771139536552926904502392206805717614278646238218687261559004102614811802728476938364636131978215644545917651741114511893115295705830085986170021382410364965429337846688615986628998663006726460071470159161106370396837081710340052992768289922271724843441521478564735230298606572271341936194765900783764989350206172236014787930952664712452289488577892365999371149211599966536975916717781370481759975712348663276594683158864012899492295256245632523726066746488783962532381866577983497899109204573973529434701082666535200291336643252153089847423293627201306926120725846224629990129000404963735942810107785762714408232977063616204443526337837521696076939965531312474714960236652029348028083611821585281294812467021426673849861828988709782319233903996081786732044728855274118936776350544824815132126504377603417324069701309195699533993130368896187305345032899698261670463223530674206428020129538489715860411934902005426801142035735315531070299959380246358441482103530195786057378807243707357742702690210619616707996435156516797823442147563544638466446842098335198889882369470035561835143461578089259086341539623876374046255161594514252880250978048955096389727553959605635369358265273309031934960175459127566099393072994148802412717894028623590172166373485646278377063491213416360401881428865348172193446554157179790430548194611486746077448372483289257689630630801344033673558538640547311007289211453550290392733893851947714646895714668524080255846709716013318406449728144972232176410159122068705647924395104146754110087131716147141111244438750632935819810242908694596891296489749041831503223565748841746820327306997630214784989463847722630214860190593478125384843462492683626719548451753700013660642001563085528768303774210133331781074285737435666827223126033863678090452195083454596325952139377365308977271095782238650839369663343640701212896502467675910901167691496040579160961246928474370021609805977265318621510259225099029296027485961216663011083749701680393250442979818951643342396879139094537943136128680983988533510269145909103508030135850897555151497491335346388058857332827681358109323263580066957822305142151127047130717891662764524664696973053166685129062490652414198227762798950556539679596222873027265016259857369862766667691697411174122612669478392135263203012352136402481553540185364372267062387253895424642716237789998104901811852067151553307134399191102934247869902864492427010331004894634160770799991382416661891288067739658108667221410566664125207849807134577430310455101367811315940937522110427974096246734827938133698142355865243056260140341637281856816894918662506384025897154103991323770004501652182479944395555065130123089084554362108952817136162734279524689280127134661544267251492880205778999022548221784038716208385626880056787354958497668454973094139588175008385748448497926734414356446980110450375062281868724672055013693202021663207155812724471824493701992281183576756990651811913199451412201819601255430921097640462871330827574536330943780752927557797956029007851814593664806491756663626937841858929557041473687471381019673322036574873324791112274936001228438904191060287775827203908392202685657111460339577897891701093815929495299620752789786210709797573842504078518848166004934530226303186315824917123002508858435817540079391759967847369782597366135815910250078074619174954156859347872266539949124485913282138069401119070265971667185460624286749095950626643350460993934274338250546113074774152162871314696161738427352566098922711663259490855698062122565133689836567255851027284492853767382449255834928905949622734148616489045329079527247842854598217534227546011162771594545093751992350368150616409631893239482158290376187805005782596195498239717022964381505301949625243521233887984445565118704886919494354968492544104127326701239137234545614797997159174031657123784782653428529008893087669856887652920220579347968529479597755195388449583687532875680427364710434703744252985909316969869007457919269257145656699234663778751486739915837560943696495756927662794908877399734878170889967341475522223012661540512524903534594896370025032927879216844533135684148725618631711650535945613682307252726189095671683579962031361054410270368476552074748918885508068862064115839993200063981480076170539644878292597738612243683457038297664521088204015271815637891130349367058779365878521116621390259167507171553126409760931190965153001268828884162467801372663344561658576004951362652676862602715908907578628217240264212674268657688404122795717677634490250626084412910856620250529190898843765121375282778291822425908881123471916984092315300492188210842094765007953591065821608881268404433153349920744932713762078355839934798723036325095130498478088572066683733408490659411589799568940923487198716995248028880544965344952860719352013829062218950032306937245382549742217869995595195260636354508599896532059534301872977679939254673262127099333405810946497620505215635482241731126897444705655234651625483467919647853149956936777715541086412198116575936004578093463806514762426986762966048445233482961972720513383486645007019891072799208957357302450572934754882931395481893633704524475744589242260401558579573786948937952914651529593041736823275600132025466471603979712055668490576397045282904009113723126331313292491581411598851858528167571949493133838194418457444727273923096012129991485529936846953236766391242026425932563908381416501582213165608274421134214588283432395304474772211509911127927192679139002654901948707392894305909692362313483578691291958560263515117271578614441223745281420716721485786530232252556940266486590411909411226150264320386442324048510474362977082176602747566563808794662206764579323716800105258263964635918270853807898417774548532775720021683997110106091806775093164858277010557142254241239687989259692345272524075396521609593833906095536008513340469548479252791528562652539979030747295018583371096779763260394618717212705124625839441864507242109423199612297496645699493486674151173450221503863574563615471601140315932347918514322316939358143573910727844695903207428848032117277595890278577439198075777687691339817042997413083624629905007764024584072517832852940375459278468965286619924475099218329148771779391694513417820853168694181234034332801234216160218791916089266174333107983863990598602245448520501321307411958198457273043477357416141721780302460775402570206474366231479591239978850332273650455432676110715102087682781287837127174887196982206590099064780767897930033909987278367548584808534669452915200697369102802156123161775226370711915592034382386470623900816827633619027435934779632263138546746487471535545148985113006387367066378176114335101771821321329972367203271532133284970201994170166181834792613210497408415488471889859389129157602336100255394221719658868994822147985360027694551610110297336981186715588200035218582428093462342883394776698157135382737944055565741561830415999473077198614019145835297752359244782554580018357889138743883967958936296134411022947215679102346066485093798237211405683196174562301478663238964064994454598027518626318023774736603951864901295991407026698050123504668962395935232938081563028665424843222022995290320980463602952927678501854362826440686809742131316287868642385968803899655549748231077863168566614569075205840042501831923024464938073167954013880983950760932027369929009857728740909010565213237478584554336113359424188095812101301898809773196527270847238064200413274171762018333138785963678230845238857482384878675486132557535173257057220454145508902213536458993688743362309060810037616440362765372357453244717297053094796952839133807657688002440936373889173976850277769009081206579913695812712009397966461710543504452279881396855362106581066493073075210859301045666825316117149354104474905730903694221067275521212447844851088906316218495534113861312836183707585175710115582923893666522244440754328783946940440886887972173849606419420710368469070077919037581110259675856135792211796111045386731083838479699001605578897284422153971891157688008393265548703425726766322156791000011477853595999974637748383922000501656559795116224632897130851781119288810654058009082437593261257976076436707047539698174130199387226461292389645940199989487202710887413858201230206485797014788817153391801911405340756077840598421175182964436086128855495893819988978588124302242816010427333567978613256000776847119499853048928004289978645410106153024372239519487600302797304835303596880058572943797965860521689558671900656258844080080676026333252586684015423633562594735187395498566849773998836383959772455630368320010440142845725270800126444354460756011835765801256880396302759340441289723605059463357820291064310300463737145745444041316108276912190117417511898082940736639118216317587379628998270755098747652621039320618664973426574217971333153029511428208434434177598238692329554565530776692665288236550077879582033299111841842479425607571533279125176744198758141034258977488788984127004295058850796540719529856009996983115240212607563161025969940652660912350435366833939145810934160063345102930506532515988323609418606390163189100215036993197773595774181861104874994693378413808902174621971845273093622328421282968522433831756376687400892366252702362130371521188247413569761666960857358659458199320697542713571798604135207075976863191885056637354668241576098872265053989928549886908903534853659471103106489603909747716253773516970556361935030281033693177533421931410788672351502297258026943966324354686226654496298055940640824037960919034138286938625590453117257607039110608957671594056166863669686413735845391770876034164292450944602714260001003482480852381723337682806831306922443139404828811552726023979800871744373616380767966453248665173741686047993031901266224227943069780848748915585369856651052716960766069007580983087130358616175956694102698579156525285884719104787691673738545074505839284465956480325130679414147156354575780981231816097933349149347092580935695767370870178382885256436883023600551114625357652954967290245000359824524540543646751829858902484405271619677401755804884851422393754293453806905243803086800538273596933701313822870092161506837683719047069375610389679430558112922243117023349193544730209503882431391177509746819192909766175025467073045877242052629265248481744689198930997409377497369835779327948828038957588366490098659672765100767959994655985582144434458773993197500955765877437986270032387340676713586781809144529552734633523520931794192723093334727510485350894925872738876574694992497119529350139141737936489894677268143336000125814833694939530030485213715519407871630082648253950325143157669140988787612811845994402279571377780750760888028364340725746207767646107167581960209422835919067057115828313888798744667598304343981521372680953513277228594435436379361583141100281818046761466764502137225080678593165305762225117834679647210910419366108298217485636432531845878721401942826041773400121451214395081211114421196303794701666379437668590492055096367529990803800544394951454548871694000912254815017454693133187900840760787594947851198598020058434744187753802439323568386278563316547633975609216352346691072710011875081495909267222782853565642935222596898498921002214468357123861414541409990928032567644628337566888708608602763219490342118335216331552778192998883385690269791960332292168818016786969563983659397561522823336548341242172153759971860783157234496339510500422590499057912887673314662120599556544680573758976268698365759786235034738794811353783655239882280669121441398731857965012396583236620055798534796528917174375717614407196901150100512537338753085080165911685801560806973351727714920946834391184817930906036040679034255837961683428636476285867739488689758570269208455964647113558593315318364897523314187740325146472564523499489317423914946100005125863593514357877906251793929016679814342370663600089151596723829962287687281997702830119569669854127693403923760272513696175954214341427767748222874937997786320553238585957898131805784830263686596552974581540404453418394536581400373514261736544235967185735133669302879852455111133710245296449960446895356919788991416506598100917300823702944701774138558189170821417593045671135114941784033043984063490808243116883682943127474423317528498059032134568371257975865879321674245053432688769492607792763809320259929194836959138604315453876105874112728075020793010331416495056270741535237300592397860288445660455890669669534376764550608368056231378790972712632436563479080689567609034174152176831499077522819935025613423675577022151633977974956357314657659014327103836590755116338653159135778044421810580345353211928550248246364765455714949814817294557430976638602081850012692535670362187317419797905470858826908418918512258551321362669325750815521507832713358591190806323163266012864844416793699349150702961975600685156949858594874917779500888595563764787681874970477942656714781018223481618132288033133426306572551257338783479054174489028124999178827948249215692299118353703516755280672355050490007197681489647015903904527814813856530298472360787887088686092371354435503067584529287192275928748261297434432628740379729063667465723888923088219824100849634491558700238870232921150846449105564692195676962960504974291748149254727215988883751387989694224774592203062351503853238544243464276045877622265600348211469672616779432296267010103997442232844970519954386515790557417024641331061889114926273488589567739119012239988396296424979280064200933563214019976826672978766348682546349191349864328777631541042477605553205823682907110269598408415287995718916303314927791305726885375975082221400542290877611554753713544391299100532366555493214434629544293895205570458942200149526940785124649439092507838189723645622759051834854154243605701315685054372400797706235420820253718898054778106863714139116745510042151349872536357161406674224890006351109602594143711851401643168461230893379376708129562871378507345250834533881063188059250098055398513317050632547860301349885596165564918809823533597105901702155433259243205748897782460810139801913330172043492798537741246708404025043799938994197167491246801928343044558678136536200153207316993148743590966036314562105530635223267169099650866163850813964896297846959098362381674110715296616126244090954882588595280418346949304541059630510476462952256946851359936621177236246289413760019144429015955990169779746287618318399001892370243634620700981632589276137649540352212774511244973073072830454252946520451509200189995220017101437298141375096698172894886387049826678399624127263759751424022526168593456553645264901913816126145738224759784110624199287297754409954953067280433889703687633337612049591628415560690173423344899146941250552487700256890495255274953460281107438221518433849423757540931556688711617625253026471991367439291699889544873386677948419095606052139679728891906420739449515160348017181770695726700663366236936521563434135444227336367583845870322158741296498538728446497130988430237433530149196387743655850676881596711680825097076509798123528425998954987097513965308956008326346091731194313888763319700254006156344209932097509226421979544879849444675912690476267313388106456707322967048786137920038638792444844313286422217067500150074810761491680779494308028188995973836225058814569103118350589673874013043169686780252382927237592415156863503009418529555154249427488863918737952726637444748428654414302746634597624284962213271761648763426099927464522912908966680143896523458575339518616487722843937057226922384531879073783467249141504084274512105287275485566476135764879154465600669269399333851187314565973777531139590596096952332145871713416210443032725756627757703895961309149221334795637619478935423791502821126748953795629735546007873836090542210411083263805648359139527280922293390539486435741198926768718300328613857177637429747083294948673016032340423392437374884506369810744364826529632286756740634582037059835074403204011136809594476781835602279975785023596897066183815929140985802371337615259770593172134266951840178088240436468745981288559001831024802636150333960987908820342508335454267183431647873602089146918858139243326606571458898224623001368748223361286962160254178680146355359242103572061684788690473815544246527435990650838909773765481868123157914123476803079792539028372533143050961898532891331787052824030669034235921348448865758642908676276576784421649285351658695156068227244704396562718422194817373737948331807787709840517810018205349359732130758764876481192020389908588981547434422646121875365325291150998456617775995359166813787255351910647531392756784168674389863853753155538160143137094032279081619344429067620331549772566326140698526261847031978654852163860152126896460218027379262047109658190917307741984313683131516574532677658308672884472653105120587841455734449610124546971512696517222322755969417117927122951491444872553013499848515413752220960064440042386415846380980091048434383343229389583161598797210436072453680509307458946009435524562971972564290315470880291260571574558119199546322120062194998097026544965121653469242278761670623470164852667794925426036097896349511989886333041811549585186226815298603561170265684841029204487708011818261343281756154681679675552966708469462764963646896275870623243710846602822099438292920497033443113162610506808206539329981647335498874031402437682048430201597296341003725150334301230339003551581397716658476268819920781450558830786692646047336940243169671064162818163807036659476560934162778344017768068353091398252555409204012744743070880199875602891412722719554167420427873584804868521219198114954605858685858624247516251636336952729864164656151802676535740470515186839916426863560613021046097011338329464301211110527350152559252102609117068316315916368445950657495850089623116859037002809837435625833205433630503845557739980007131225737321720832963504043903306845783772685348363452866060924186843742108108947908170285452135968924314288129260109754321000002666976406568775715992197143148693422807555434483151101219986141168989632085176612369911100547418074839871874791240134607305546673431479482375621363792078720190908734440491214174905428525002269409846490081493123212873420799529150783246618851238840119186211781808177600892984153691993095642597288546100034622773580631018363595284970526752500218678062459605269228470223180856450073548258312913916363489153722011637106977152954272155088992659644685124635615003228710194027961661938589649794571525543754338427408613598008660850563237238756558752452824297523005586422843105136270240146254495951208484331125451533836653112576109710557143072526713438949041554386898972805505929566598049286069572595720729038326506105030120505477503146473463521862235293279943932937395800821657890156923268742746480832904689807227524162438651323829146861508263604046945861372147631266162320504585118197917683583505223942374866841416706948865177999975262973447912498052990216105725633459380239372718560674163377307519361899117260960660334130132080905065641849363551586375644821812172197523683100800803762354777596449032690784825992185683729849964657893611944249071838788918492143026237602230147595017311794470453435054136201636931460795210691655933405692840570941920312925136671083750730900879656844191331322755096068864233849890225823062708665354777086895455440741000482321844740033782556780905867088358858510566447734065252657159307914261920768116803113499290127686503267680618712210857985209894527571733418898941711894151105051509839626357561248945271222047733065084289270643553918587306164667434804974700086839712854268666303780497623947058151983463050004550011873822370369659657689141902694488176906065591288462756479284383319824397873546465547305387154994482139944255441484977401026712287479923186606433028682784256510360824586658940354236244304229036590516130065697346018984401148568351619260306580284027262340870168779068408282257049128231979127510323450861507068663634244652933173994973816920577815954622506697444137890210844307383916564426513827352338639197132506987493677059827230546443466845924352492529617147633456099843365102251451076755123926517827857926168578578001178860476421729405841626226796422676670491673004842646341518403288399045891012492368003851788946950572314014427782556238403636146091465066653274178954465855259717901147946475391543271722095185227577447097518267501514186075708945235216200406306974246835942097378601118150709620554964270849229389618536472487516507191720039896587074484526261958967992916945462220258879504277658041434654558023138408657147090591308698415188040826904136893910423630886689572025786815264074048915680967546982008946763637336224643756314599056789207549786051305223112647342388997428955012888056283153172034973397548736453999297627952780709916004355520244914993845145946459937086467264705775818708399857095507052599457807036938371733787573124073791009579171455322645668342467395502721739328778912539339034546930878283751941145513595171838343263928899315221879199973782119489661054916949859612187070185977990787501047467224579860480810682860139928997337014066239789507895028323336707679721173002869608409724370496911951498869353881916266189473775158488245727833567118075648666044633994710384414594176215104007249004490249264439785881333080364288187175604305433485829505833724012113565613912873749419485063731279177449649431268300012313813828468106553260258554967044513882932275734008213479229035957968938081867096155349601602432366094158893554608239633474133124025982766550491282485847124150394892620530573416678028988318321244204877800550935174890166436432946581354028853713920840983838998301179253978850543035922403240129587995912791562309412287875805785517312169389771683074835547101134162850562649057932279445673629583274110953480340955013351711238650576266082434209259867222944099314198101564229057988335012578876075365952486328941307825469370509173123838385757813132609764268597765706309071397451243782219467571304211028122526214332560931715156906308770656028126718888572968644403972360850336988298210362965937198589953152402667774286579291309191651386070092337714675418184990963486938090980267089991169416420955240329819176463144544122706470670155504827165053041637537529561101560581653902282667384099836170642057329299995094365074040838465271686603117471071916408302048746972290690249609873614055147000014861406865163477628356597231289514224837286125671451774912651825330762814587841882064448196388697210199362968648762251663747593600895218618535882518156912300819127111945003170679129375727421592426431876878700399217382938345552426672496685576483277727426450722319961559477309613865920487322102616517094154369478751194177689171496646840607278818698933131761059921254268219595135271337819956906197700771916927100232118831602395532461858929809470782220048016177410312964058106494942055346205721470410568439824296631427242537285179120733024693997797506568276239837976661240956025550455184889681332943559278289584150316439638797474664468684669019408122120966969897993069359312941319558462214308992262855547268126120150667376246871265983359453320075572915163116281606886946134394017137030215227990502641152335217783014212317439728292712670133781615850241719369459944311449616166199220485926192889070066692100880181718539977132153332928497604444968216502480334788962590945091989277744561615635621206114065052404120460455773474199219017294282914017546243820834605830764696553795143160776660101140739913090863490012855828216773050901459571256422703743442174169266568765168602244065208559814098339500926315025168875587751209266152178661009293411832699652794265485443162523730928243171640776647526085484505587633015896518367708252544822129251160518189780507239828819800783556391495105822064757174560742213526645906124649386004264797682741531541454494703966298995233863439802552602281035193471039610503912497164578048707296639939828384002182820750294952885785662869615157756236742770097215895999219267675079635941280104675249403213047259448670440105229058001546289258731765399363858622515672000818579931698242188680775454581233904784052367370516551380363621717553335666394231684776742308683970980770109775231515307857575773845076648651525945908005389626467513933524796230341509351814647956585482218813045271643644762003710763912592913854392415254673588846718549162162917828548505851291678748066199234505891464688208116117121960541958114191924722622464120899602459566740738865714504298462881999539115350093684295836408639312024286777095579367620843020888146443788040484896377208117428186204786934307428970503440584843228907339923048575868911777454386253030993460136216424648768871746687768331934507025620394594080835924281180088151485873915178228653293739951890023434518045945795144151593557031449128960998101705271413382630096733440717887442372636370507106898163671434115184093831921940090409500060209065559415316500217192485696975403245429595350251945208953586301737743847451049206287675647665197549043395777274628756372446460543875686680645705268335105893933959801517671924089462767162454538853843224488161066360449873311573724952866919300075005801950145862104248192233496982453966995483458110880123046557765669830639609554121069310331055551053164834103602175681477460692920217217916401903339265796102415185723000160516616251155995915114933404911096934881507581456826247884874212403996060316246454936980167896045164157377468134332153847334601903990183104079334842295187529863664147730680164077795429779264493719511063426830314584246682586997240383493464923448092804316749620204608717710252620455097097466962435388813509301060871170605442762450302016214047706577873106873519631110063858321246410261399669856559128133326219951959818019063504280108088284393991455442343224675755785809746710887488057138122989378364334606833316407897621155112522823944372637338862227529700242763823238217215132830238441364597875344298784827925349519138898940311453468973991287235462994032466403441914356720673833948915711036246886293573067084363944236898787057740308508144156768056950867355085203375065828683851452684779454257290903657879421570058228969680545439525904365013155024987288593293779342612093177721129388497331631626230119204104372662640231548301711464294237885646182754786344617178518166772316074886973557030735711305957832150582066315741119013968272805071690522682098828369847479747813418871855770600732299388295364619315660318723809331912428303884584664572287981766551111731682293685954171160476811526251192209561513838071092405624372097678859959834868406275518925602928785984918628306066580502156857094616432408508658003385277157464019866190647891931725300609108512159314643986593821226617017932569737125392776050121505784614615453624351714681883596022886023344986636794825663197479019057370100005587602998143467702775254493658732733438785916220748528490850725945050014166195029654159344358193447184137326647996852542843911603887786634452263426765596237985537909633764286852684418929259200475705264840970795018867698026689495157262010073829355135707886975506035669064919370830027397605074476192372099860790327110457168831268209068847657379803603148453668286853984671670646366924442027745402774356947617520064979850810269790355808608979776550148514146248032905101963524289275137819854311156476938231052757600932052200501447083858928504864324362298100680812795979760076097227853517616083353100758588106148182413790676516395081932549408957975010086414785876783517318785516929820312763089534672897565509174413066481475036413635456008430950358510958628868850493998708674208889624456474889737145571089278005236136614208231230143252927424737483800313867463261339134694777609121882972323872636732713071370779653312158516869560463300899461641859380041598774708678916027620547696898518446920031530589551318862745933839986677462206283127515401002886849015587374929447634495332693684833801754700356117284390353129722029706366879147924849404689890447024168839573374425778235840582590275922698799427878202765252399691124516518014822310482800609530195703836128114683443191859272186468885416525353657981747862289109155337880278925040757721571231145517476499763340443360827354126884587040595355411265999883717340731034722756221700270093871411526499005471859017358153602160582321269713780309375791173081754613406903206492687074029385540831025053101119158476000422363304968900383856033225148326388903492863815409831002117608433893104429278385305096670651655974476847786045098189788375493736508529509695660617755790325450330706655572594341997692206267601341186270482905386180701354144086454538753398043293527337183683914824411035785860005753192880796827707919356879340394188320087402072825961844848917045492735189853519719072041647397843006676952843560269437269816034328868168968348022425860926433708773946470565410251301653156225989812504306850299368828161674832684753396438714484120571052830548665829604126157792859919048576948308699962278348957285808682409676254125819798567664590002912486439304894672356780324576664060112027017642013717012053650607567276450112258085490022704318095039303093289114075842274790643062015833728226250330708247386728546132340115143378561817472072603733503192969821200470766880336309826782162310553790181922519393693729873460099423171612994757600475185550496604648978929146799207137074273310887928437510607349522169275202670780947369265439873671413139964273969040338429958092628329759604027828982229219717021750415273302288967994788627686672537650193779877128596925685265609920908659439833193638231823555858269868843268504109369836863388733162125435822553574834304071922711275667058337421928011271082907046660848692456359693778460906839260385883854741594712125293952563245509372286177964376105381601497764866773933371059730499167058416193152191963584175554569775358449996073905164356407727629471037231794489483486871772585245048430501372945859943937245571753851656502499909642109748841707826258646410177701161944470707979247899260483863117218442538757317057977655169474106296380152785124020712998967854358152597179268024898406306674620568080135853177701746977891624962195912797633051773870319374804301778041839567263472488557069601575955003282791059202027099311042906285528987897429966825952608684021397036275714428826122527453173331840462992667051542813386767008065409633863146360454186087903544879397046382261407214652127574601611973743533194903342150399714304011192695154208314286681551184585585779820625428712346325802118865900439744224256302324306958875154625235029361701139084030453407897043662995081263437925830816160129050182294251173855672932594802694107746179665970680788570681475062318286746624778466452966495339913275110968985742691682414693525769588515858956834494753122126841977373096326502642033052258739173806215992631697637760591973895176166363466257476825111809798060345327207901165048985475731516471928779344446935381411677858532399857135579743363308631177542232705062888964275988950593156254625615077517762783625164752867360339167411528563527134095778828193340771181725404136251690306561050596677951883376028267008632660487684783743318562125690129450020912434249051500131223481059489694666475598592807573736406185143790474551723088575314130963544090937787532874149338962613011121527369910932491525650524662502472012706717257416910834836374170800555937067485071700149114004173473092729684910082959730171980333372874276288595345973072782421601681113587225411859835143386957219334056537809168374731852600831427415421549409435563809014806620889328821001687805985370412279112536158359428640458306527244219475857373284149105638278579966320154234937963581667869552065909723988559957859177604080476450153454775063710862485995497227714664755050869240835602857847470778667266994813464773343964581793707619973306363474458620580951992303348492039451354602240515173871047686435046430767390014377647091539938860344362793530380655104462906244676058578655346575131740406676660721305550423059742846334383227146730469360692373089768986718851170975360492835021455395894509363797179220262659884040511285272237051391119810265996795678032452811280707913060355134360194924153647252401100345956069907946293530650827736718111920417411478226985149834635257693862028677198928966328306859765202807642465725300167812916385304058139050389494618069324050786676030237292094626717242544946254804391498323018137000511654049333208284433318700511009914588055766950220006515326013061381819851312459531008678296471266008917585143155930579399297879046539041507781908818893594803686318224466249943161069206988504988092940914731474397270551057917551573273701872926071381080187988749847659887270632428598949482825472897768941759286491569765749971477905236485861705086319846171638368971324823640923412649348158649841953459410765313946508980692898258028019169113017166359441960966062407564933776463826850036650405151312397737850435001174494740898129857322826763958114615929669977083701855593218678715395258372716271742692909621655585855457174679979491248546694216482081137912130780499239551290315329874657821303527919872878263933973780195262545517277984924865294665864871694947753004676278986978527088658473617847946694029336777250845435201353346806253149486160674910528795329109051509182280711276639250883752457443614925988107320253213995576981376690553817506512707553632462466734196695528972316603273361820409401352943414879707137593874062458575712264313248797765872220917042219518858968171127526320498468883939363496748114190885732992839812983916052070674295247955208766270506648028302614899650544094108706517007801317869437220130859697156170485068123573016753870864564208260685857191967065098339356536915182628765998824988139586475682729344314590816875627843574149717572303306072686472375822778990259377957462675379307203220890755060206550739058158353928298893653954619611356819779187234501302936487243321627210255843411845328007711821380682044472174525802693305558783918423026702583931837004067366204117753742269739454682109644236928126732602808174322990905973787124999055761048589647779995674425931639538319443316073135989896461550510534937696245630598205606479468405028351536396780232131163533145413608534335960054142051167527451544502723459165316352286925788632986708292437706906802068780386803010946314584431842996861776468793872559399022143963355327327188405042137803003227134681835086608223096458868493545360325159611394313275530591350795864943238258793783535678812590084340689709804747481070508687302604672602967211550630553360125535645153253889334220019686191551300207415056360192372196961515615787625773321807063371187021842560016022504770768503233222324944959689779984756854844865271103177977580768568281495952017236486360045624798990531648296258812209749007406674933114193236195864566360673289255679793082787816352047408486910879805788252286015595281844135247189193132953253443520810038797267650825260717428624157690299065175138665652169121703091626508577494096065095283094568014090702029337494883327636722603601278502849873686595536553644356027562106003851516202767820693957210724155851179576716023788979354764667092616906392956914794316861168354349882664318231931645066549553955563433279103962967400139490321401302804030289846756939417315709710645906557986333185482232168302336720527137823123113119171907381164018720349937660865150702762443030974120574009746010295320825851090945334880305645516578361589539118762734769628626433015562455172920515661889384450520452014391567012861481836293852435570576130398440077785447336302084015487771847835893589911157969293005664508206226132318338082164433317857639602902048312259564262697411215034214308534472093143787249494563426284601003106354009177139809937797696435268444321148359406526014732458176413405436373174518277689366974171236457857537252225213357235637596564924291780954942845805127527558952717030236655054243327415130899340777992468744619111523294695700643464811952180401124858277628248928407999499134660142843955600629607334427919236293515671903272142766906458151854843559280447674984822485593262934125074922122594262613498669176611056425015323888216706898450982212705394458935641785669838103319972087676717053311552502187924533968438556111475445028875022504560669163827712044187647004292921467374294087723763261022219221566374327029059057048568893288900742725445007943475764413150358391413214978782785869621949130942739805664646227688235051822303305247071764475955772355515868777266843280951107532020471842207472316003081918294185981744942441233101720262275728953087218340478254048806901955947157411430593346235668318031659876826645948279739126752831026969822079224616822578718750893996806987734668110266440180091479456647459022623764235693389019609402639718741006824550645258263364045018755730755828510961810049822310446885272329013020989404065377085417174296756139483154320875103443247385799950805100365431899891834499548143177424938884739493097905908309384082619106155877350838150997800210778028180785037780254037446953443908710368347657334348943603576925934306885924645794548621236680963440021801338230744884518678695934973719478745942116415660754648578392919962516978927558826761895798652558352765322419948789559067254552621163192028050966313607495133209610236734205278818645699691903698959389556275540244010901181475469958735920995141406571436001148010953946629633484280877636138018184669645905321007349730320467797678030032323209116274872596557022943141020982165743377673267426194018045954762780123871678060632575845483092676546725521687939295757734233817247194312072715076137927760168164892496753948927941499911944935933290717764492163662591222916785780639973496791418248073082617169183756396912661341898754739421298687771727630504149832164579262680313120327572976789440573713974101299625804356280132039340896353503584455870919252536957060382161519143361666980929958997531927213953803757161070971158001436766430591250722853897187418763284959949588888420288591403348789160056139425482352894084093038695115283932943121582206194638297969705920628697143914716420554874872295465512335572639395505105614161675530552305448859674535662505242686375553279437608146618537729604750131609858474063394068769311834713509106630629749407403693232996959261463574853189410249776224116199320939000765406654604493306142689369941163147440352730180921400411471416241032979730019594395513642373087576365005203325727492603312765245308200895821151069989774470792895783690562638948222031748258325949911613375395385378198091749688959342257315562385292812855167890340158967848097969498376454140337213387686813206843549553648432865859581024965205212622926624889539679213039355342962295707193553138863199646139761271411298243313063645324682968510755868789616307276087256144081361119485530180253389715028211151061424286610339809176517646828240527225751060155875245213616385445141599127525206458475637020091475806456398537641337535395881153473427142853558705176522793963698120749692813309490779889956839800315167862088696410493345234287803376314308071020704270208501511116578088396910306367827281894906967639673307156788913090624760397791560544407209375493568041766923490587559714135862661938332987198249725692901977966425941025348969804958938557058865849364895203895498976957193635427643337949205022779842959229142459378714861401460947138469497809624086715950503428902272537125037531390118070240509221723662509391535184315588500375205759032737005551541813939666911902976444748531642173773781092532487723103682716636168433142155630665004060268926861480285599250703032958918271631795252602151995291120958091632438253640620332101714230098539607939275825547754823558265700893082515781990892618630515241924556269377930065329399688535968913731229676564396829258863159489618742555097870158095577846264254176326498240339646561177933793793908136177207131115569864135456217796540194432485670124744301677640555562092928180655075371411206575364998558239645151533893106538328687085785336554570479005988932337989350903830474323996001771592838894891437735287001993943805001813425080470010817593001536153090908196180235695610564513380620388287444125008529813770985157177460835766343902164799778025368312373469249333995040987085657135545861432241931223822278795590910620582204860245400129508619131376136867955922577310282492564655228918331519476596456048819844212107273149634967223555550976764188807175171911700455824818168926127743889386854381775563759801797237611149006795710032222466316398395609813515552533931241553962210928121945518305668091267144674937321198112235609244048992658841159035863896318468982518854372412679732017576034169243419754422169170580582560240118785196292518931738466047525537348653284709171927745969518440988688538583033678768492922916083370346466192187934827927664414825612039175755530578291419354315377087470895010521361199906015856005855872336871314021100886904576114622013626667603484079832451291863589289318109153372228352106541704239849782104918263124907731598152673349839970669425689054705384265467427698151697085848482243696206677513166580456118632938543074064949626632190234955091893280735548128756319696019204958565735939442951485404752225289988079732751883318814550920905552587319648922036043589556837881610828894569058056559896470995374397888042139934250562414825657996034089841309877881923167577838990949194270869287671377960033472435497553316713434443662332627533412429408370667391953333561216766126382112112232660468827024071146245269068779255127762646309817560508827982434898368274451724227754301620835801515738080131913130980327227112772777030831742529476975711869292996891763575210435682705797167700262016184241771835431522425788897095006753906092393255462962961983356801291880890081743798102690264650574589605557694547520621972554408968792096704418628014525179748208917969117207604955633800701033560595280828889381744963543537646680932193266184678112235853636660657623285245359351660787482556166206414897027949582457553980766048382401478695088961311130778103130846494660831276615978110244038377784591323529320056636945615167890993957978182316364083369502603694255831543334673117921188234778686094953411016993010851655887373949535807895142041743944041499178998023383081133673107426157473975961627740690326621005685916545800414357768700686957719047605788349425487199321337633208171427755283185405773201053117831940635716615330570283731442692842148409018167643979323816004706117618008635606303651702228701752786626177888046236908685447186682005373393733865613377788288493469282363268748340454565145081017697456575278102212584096678518954994650261381681936288752438891783907377258774952647334820610525668558814503756831169841834919265277698880264113813360770500409762357969883925132186836936684094386972006464942914671935292330929862188526479531954934165666128509604390681391141614961773816596511311686212308105160046942597574905213581166386713346620688843673442533685886008748841175848214867444360889485200519673049978881904537958514308245388584159043334494738821615245253748821253461924957611803928401908137592666628840238198391256883037769814783172034780009758020924707143904105567703254727552999301243530124246967453438382643342232713863111350572666888559379013093570147519993921475216709119591135718129689823650202845208131841016923950361826730462117241920697219726758249244679705172930698518468186468452366452304912587621765900967051006924788636949629795304946352788359074887597280756429351743070738073190138420787773062623665615026504965796139619524607391590621154498792692709595188920579921084711417172521275932371845629696024225048037976409661057166969556040042468722706966764507293053113078225267257256328935629730258206026605113502808993861233965832700643192420762713732172232038655611997344579125499442931928817377177420912756916470489674377586045051811233868555725737425281201459800129445883884456511218749645073789684559696577161897631217609026792044490250950626610491907267842890158449916656728226581818819991013018831684533230199306877098027459278415674010609301223268504230288574707446600633359469520653090896585171808362990539286536562593627715555869009518467822777111434455926713031677556757219857572538046222613712144826758656799000610175456885136511835343085281510384647917229419763623376778939748158808176609889665276997174979803532330033645514081474182581768096153638601713640201227938064589867112111509106880586846190281753245676787558240825797529314100751500507193977599595958867588435320025281318522756290642088714233710334747773328814827074590467297600438503622834961298190064576538785008871982493096622997125113170613195998123034555932006407075908465994139325249961671275153537291790280159371755641801083698197467284053240590709734710252224925065280891344338843422019135338257967976826496371882119494085174629534546760037855996459196241884441276270008243942660943894897677479533302075865240849622985104251559845919937564852253071424226865809263899632966970654504141635280361318289072227380334571099957089907203153730329792033768160609825242698987932949107843114835023637913643725831402912077404934074947044804271208630887981067994688211592331761227864915502411532587576515504757947520919607982347086754830117145719051280313643571243602359600939376656980311413033506914159140459299714319580452645436493785391275047014144866993691880194965121704018695848089130209476348925094672831910879647818055184843416024486502749980008971671562329263114957083032034787998266355611581623727268714957012380788096878672420683262188618399077071515837882341755989675650073376401650409925324310763858004152183930672026203282123317178605408259013416639478663652938216649627255516153665863843782271683587536935607779791949922192125992075390586295187848275904924363898158300675695942143553321774919069487316800005127717298740949431129898262635337698729393339763843734208429906424162663128303547683937647018770506582791926813428101092335865738287318295997494163124768110471956413376594805535581820025470853335725027417101163197923246568871617604173807819162375179249234864136022510400130100700803404854743918824107980713022312293960126006309935446761001608290540498771554253054830700984956951751616224528826926003785216056677469647657172711269319041263874639001085736157722824573095546596072519888012277494512702081881375646104076052451681508140970076100519474135267109062547268075396845124195408362138494399898379978647737710234761585957081204275251359851326588350004095752207500026686513448206380974167893371440904886935851338889547073286709370169079159254665045969880296451901639887165911121692871950295173701505694458281973400959890359803247003747923865251245768899948678751067993637905315081072767173992008160472038569801424231765653991331905482886358771737823388830565527423864433401756905631886313978867348911803831123668849137284073157184088060413043392212051411177082129686331710187794696884308110392186006004129296464404176196265214019059383691615504217627012843091303335786979852682768883863213262475304202802668227739017970844077394847546885263230655137504813319716402999014004601534683601775402850329297143083387036954047066257426378277957738815908402154227384100473633761661782254828465327912808595142922053017640372770587411128907748919201727130036896997503307665822306065322744728858066422250259559310442706545722550619630659809533011706264252708961957177405031373646178766755321261168632554178771803852740925687259809534237363805177248497555871384119852006683870741684456341231416738772080052219095846581308557942184288037032153075886706592197989716632686360591744596810702870888011009243797024680907022792636592563937070170701960863311717556579759540976904516788253079651894575582663106401738546290256328198591415310654953562735117649223857981949369172382729042702617208852333256021246006136681432689278350255590954756985972503551171901806787280587098433242267950536485227111080085962320738765319899196117112996742995021749992138068342261457093515947950020894620329931247650854064262444889132695133911024523870559346008580862227761041867258989379973380223831547571215360782322769510780951734333770270922314201932497834670323944324177752343397252135718857717330671344230557027779760786410489909251058461559672269554703558674939449118254728871312306570713445562464113564622345365653404955284696364149102002698381729275498681463469880382873263871868543431787921160406829366414812706789840795798418060495052852016782317974588077033861035840437382121442579922766955259223756108635849866082838252102617944935097550577815060979730179976796082439097087774833920898684255971685586453835396627433883258541507802985584015251502208496347815974837451658763637514150697467337486558544048496797351797355018030258586251087124446948256178147347758330105113360240968831194055198751091047556117962982632125083812200576186344984902739441538306085037021940842342150051543550823574450491397442980545693030368797826103004841401052801481976813775809555069567894223124531631137257398966323982210506682370316145909758470684179851919495397245338118943742960086398214739033399407498035072600382361986897587990909718049045809434120195068975441727260272534772042745786024595646002034608744636721740945582858346785471083839131522218629172054435347842342978764701695660924782038557288411020603265639224241698131843207111722668345067345585386798404681807283449691745907021762020518582506709835571924114782408714680130132347024616026682491081711341253340295699023877535917675101917845535811338645871408359898109211862378717770234897797583330201709602975016611233630378345623280805782154671441029673777434359485311058366879288261537711605008120773547401154790187350069942444567986599021674571630241751738717620439263293683623117297871209985457159722194071059899551762954792643417936869717430789204484956847686289837018729892008178075715676628431600433331740346015211741531245963124094847333469007201632714179092403130668272258185601447350354447376765775668129992003639600359241593325590339626195557493144060489846972602155064740318094924865100545891989845036710278734577747799873821654840254279792030363444180058512352830892722086563606971345290711348517682618828874009281613034954474712986352380607414807364792002601649724736394895886331014105706812858181006425923628521565403256646398865811742860673576288998002123141422749824025949151989231066194181118507789779542739131885712209136626558922163101106547967490419518395062651576928738287116739782438934603143148804063651333775482086629215754838857357130215263433336920410121691593013402340930739876879896595965291542785237658697286983740197622021183727448068578261944616923775332184796262113433085437088292537326450227159550770150597556316684692186855213215671428306319202203443219760361646907979823826065474646866802892595699956441645536157998002463078866429765163960122965496853992772850546021443026938573981805264472189800682329282395728402749766819842851356605851510593987130003872033887255747381844661388209145577894785254923645129717921153033400461789208576728571394333072843546971785542563435882431700752271522956216372438295846454942377335253448407654664537758653451177214962169302874062592931832202405251994786874397935061973124952460364831149070393341521134081418537564005522424226532918103052404119102440947893315691176673444110452058299890432580384736843002145807390791659094780648675030622631580265316998798716633131604250417408386489997116502500803143143544112211783079185244776222411056815571899521493280803114548367216204167202483983324987449780085384793757643036145638851710726429791386995125657499500387639023600271802412705892520572096899687150457717797002147434422993568880099821730085365269428339254196991945484661843266507793777473622699071466536033780524701326327966692641575434755557367753556095372912164432908770517992976253871103715607085851077461019687366837082346300889237641925553393274268988364712727521219097331695259124046944050220590435971319890227388132668401344942164799836219397841777708227795474219093486420418881190813413292276672674747519069960476771143074899374567259349273497997967275186747163731947190934834225075291013400354411116622566531546395103597516046402055951428469319195621600915864433984901635447543471837925447676292226918317596727238500286891320905347810253778563406382997072804399174788243641724278892623315192603786991867580419622113843426331036040168578288709261514002872284011751993199174125957424730753655740005395857658022146089206884030593563556005594698167281738574851390857090140857182094910440189384805969409114161303615914106172647123180910136234017109092940133229970656640185625659285249542403520598568735388278030708390685164612629382889728900535307923029672001735807954611703202602930695635873709146129287474238749594322556189053454516030776264132251027370555775276994064844479730891496703198363492438952244232022880786699087823892756599924216516008625651215242822902984668135271273058412619382895730938072629450890369198686814066438377606013662330599398763743127346153574919970198063329664450133335274006308467574339958040119596859435893006971168124660695644747090163819815123341920396276900502356272302514880877060832817672837194078130560444367336283558225390517559800746600513034279946434839902776333195973118838768905089054205657266725806646366785626858480258263386311970312607313706996259311141203371540491346192033198089378807550201088960733996716093612067278667757731496881978735724119861536211149025091028202961348865328809838572785104324444650680004767674768227910980036090586804325874954929408819809601366939393020433505703386409429199013336771193826560872815114383314503076265586931856886788052585412173616360357516407380018170754732347039322461400741292876738819277663452378107113840855098626825353071936301811257875619244356563538964196357159248263971085843023200380605696939315452064779277150153416594390067180046541459635522854624441294773767598262608034305249774460786244951683258359105243414721894952922191894998605040378020451281278504590010229283433706622458040501943052081531699628021338756381744661959454979803332041230614997818839188643113785774820537447809859998505979994198609392364442196075625776213567667079504873471213761669859797256765496635013892480393444660870166234242761843548844774160072598566791322788411894334341057168534884396104238603311608945066379592611079010784687871004534404369676148143107601678435985697858065047102616555245813071399340998086023163828974039313328938885595539950296798425666803459142342710545560869911099002455124501001587760193704570508117925150167485407762648672597306232725851987713832059199168164470033949694860996522081822746038157589235535086690456278056081656121656405321656885758354350852195158357728190782055511554026800097508768289980200868006353653352635405781722838410334280417795549252815994289242079182654603713204832622434945333164140123351705533034902734584832082075407883303312130594897006167473741203884521472122011173163448895207667659072053108360197366784168164464011530144986825225631378433100766556498514632825518537344855634820909838757107371332159395563848583719919411674904955576655910614875239863430822617087580347726420794756650949080074040757415789652282510534372013465913403803226047461927023986798707662258180266490178053895681318535801896526922719204195995991516012504356756798343579940502763158288607539917053846140649482116651150526987833486506800578514649020876269047330660456293610878051529886037622817491080887523697255570570448964394137018489004206398743028844229687762278123857985623957711123604411242894978032064766756572628918330938998150345278910298244739291359576073546661831889663449113704773560470248965997571970744106968429658402921254891672700445427061470181400411375448799785336574024084307091735133439182153694459102200954453932435830753068044051701478771747172501508160294336841701225911472431839675867371246065459637639342917593958512537287437961406766528667368631779412744157733646388232418644206847473902795864370114119595785972309493270205953052716942724540327232605025557515442460580386844655938410868474807642115322228268153415569077340320489979033122891315958235903230679857294163179714389301327860015833849474344538447744471027613750592245478619670530600065875224483086188726464120573058664009230029659878755143073736778439219617146962152397070179287232016755283343315394639605009229537289878697318545001528993029187482548744770711257740129454094111105212499403399548594890313666491002205076471520047129775541802155179953499700604497006147503230664864326221795713185229710653000477377161849901140462672343320269366912506819145195850187607790654908014650154931533506451000571816766037275570002578741881478824111997223433760149164530811770078511483413270874858659167728422868262369179565534173333163473154534287378587623506186202451131698727229071861476972847527230796655297565210546349417262800121108425034037789746817938314369404597767387755721721202209450101920234167047117430207946877414553630761131995732452437427136962242437828098933708689583709189138002416821729651507877003454315719387461519010897685162051126798884816404996475130495815261701727874123336731274895952403795220370470424861824955227105309783387083021117105889920546682841171722248458940283754082817833360358393539940739252602358175422929952568598352313715418886343110778034072127537126308390440916522898819769659751720787016214104517466372691301502494795287852719223670899337204001907074010381363130461888214900707755264717820690773192607895353344200941039395827044687061350777534834240840707156609774578720933968816597983244098219654612201000546234979248986337815254358012609110097181594643700657348816366414611535735541784313043808212241456599331610770497269777388927733169359487860003555418983424571246491395749078306011742035409126961575700147019376899844192016165367591843708567621087817474855834929085516945019815384360849522179183034558152447419066048848275110945460747800467082702092693004575905896433366081135301647736562241767872405543795175090402280655843916891031071586162377710560879274687639915684010421822739914520428546244403740893204242376675049213093428281340084110895675754209440204303788426895543676396907192802617879304599338240735105672474850609916547794298782748058350814528805183124813535949425960072842905360119892523936092183932462414623020467029695352920968153496729684824195051161966302330613331330976652608732390729389118911960228010804954163424644405448637833999274901415656126743608713271958492335599797287316097866651565651081963599918562592920473836219601270812726992615297502029614281915263924030270065914762880531089221011108827557409717509592233759311353990494576551401225698684222861671552624755947007125064890978190768576639624966430803934820324968055281656933842150645743142830854186417824687898475230019725554099523925778815338926814904919145410720550888704827168173582753153008566702651700828188148245912486568802937712610274084466095575849310656323551639275513209445526918866678434760508564860566017610645951554319540658430278996640033440531154037315291815336066413174189545245677515207402125633963774210069694789153415619694932066566516205487232743179305242512590793358577481096470825141650423043717998157865746004180414345973900942195141577258647581439167951220164074046236763009181098579811040451088137790904743419362137203120836849452353287898646577782699271729749492327959599719469035405660046989019519309258445102439652840928535024652438445773936337091201694543229346918383568249948040495210258507679617380711543432196911795333358985627560329048236340866686574387178201202263781511501679823123200595171865117493397421496765928173271154482092061842149410849419762478763972084483254898282035303234844308896608577914037038807174357184921690355449235133481862889296292236539028424858668130327440727411111123845888671446049823001384100081307660865603110965202743151437533025911092971207542445590180020881888140144394222114310532988160206673225574592624800144327980731723908215402942308609381885536662977158270722667833056800922861516096174198816714235629940364981376202713078228308653987413213888473775195146946586145223800079480646386703428393963753153279591130250969811903651437045033888679576371352219820680742143331157210513351504467305781056839290657764831838994575919744876936263104122237267037953279699200642570171815806451383554205766959909788587433724773439937411530393340022832245634719708203981821931465927264713019386634484346972046808110269938197950184804054026680455073324192357290225287897081076247372583300664672018852811731798850168793757409777118373413887349655492167511705556998301333159760670920476043293690813012710983426395223140357675747886301539966301484687095342158806498504271570339356555688941843162750601489019400808925833934823630233024015582741750680377569075740959678696163728647578255261058999551170147119764877936593578774905996384057046306069885707712823552866922531267917327705928773538420488333993592724622697416097724038592814415978841895884344272460413567819780923529544775363469762683217602325809030699107096375891014098647775631347357037213688165357725346272294815129332635185355331819734097839625175534284169607243916124229978634177093553020321353151706733237197205133512908207340392003453269742410707611034769940026831241811199420710301961824026026741329988173130707319659266693806404338673274048313644106776774834819150249552467646336800717973913434154788992925743774368821527001062085911358003564343782781898741743355778197720458083008898043517567774205421434787217446749228978295151561964174215766319286421380230287786868685123905122736079549688981283392399982354899376967815211288877612150675257970066473535027451582713100660339312597350554311062697971575141425394039045803606329837537914445840143590489421005241265442816350872040841807462187179892616605230000724541816463128431639609768013684376464902652402974009543299020673313719385536450183251451400067108971365879367717880575737816572886435471262285519534091956893940279992444657293969221943895911174503001353102797706890241166282620192154668127331863524813310292044985539483000549560519238430890411446738728430114607622631103241003710296480617435870994404494294479847571075890236965898205393294039400644309006722017015286860604663319204725225176889213240588436864126955136150173033260178469222774046564719741493135199992756452474892607729178255316667945854039053613453347445941180873350817572456755002415537807443393060658891096204430406124210883153765134390857521739016540997230455417030344073024665959630143301877889739181944744091375500780299524980382762273465687492019209160231678249251128312364666538933744515622387525844028410201014071843016290464300366911689818589984083229249101323904282243864424179096729472275732961372167549598170413888771024554658519824234144647476410414538242318244303833278828212308795059484253520619121993779316238871978279026713908795955925563872949846648274660366881529821339011398583878735464197339675779065035366599348387093756064642321521802791218081715275729216023886867138688786938108945049116310260305245502485895379710214549301385026537334196489330894330864840012159669831254863545831002144149842310293802943699391063233155138939763084502412183604182731958714354824540959284617042909710022383630616437691812971233430280204351897481478525696619653975223683174606105940067250808123150893923141397349614000459486054760795493312851388820733780072568321023716516508690699380860823353669372570053381353623353904800457187423183723211508811498096546163731363418249077965127541067854345284850991770944552611917746195138411790451996565489386957037632803998765765065791889557759255997825715307388164853019653182555897899210797399862002887271597644770931199065575841045799067692454592521852548161754153986247589137291442707113607108544955437790821889699314802900045439592062014727603256801276283616451696648216213832805145783439528429600858665170729346048064639707568463571106364152007941405938717159373199522208690565638676723072616297989365506707559834078503933908535674942562156914335647376908157080618258927451165052136067880385606846848796749006003385087257186930559992958864749520580585315821584760062479785695414437217242455087547534210516836490553226783106749066621108589142459476407293090463623685891985360786049093544269042904213619724544658620608127190513663326693328243281363694043789550279384423508821661885172257126162702586533371130098367467696841659615416653674773205476372038511406203787440439251006872256819005346313677891959605041664534099230053708486684387868780751381346268400068567187649907680364338066074983068124928384588951366397281437949882796987794244845270818257213683627008421926019628943916430729382738928510967537809877316869033953754619876868902215083864759339744354585787928287600610452818974787117796368080908452634611073469941721971246576832567206153453780647084332826494107265736658271399372060195301940640140004804567394118620457207527548583731844297860511317550067183516443593795275680202644789425768364649529429167829955310747441164722195444511214708498419971928837034491788703292822744107828423040604182176490802883049886553374664924855753496155423443855144289121676291760377732258961827282985371512156842622289719638950047209341173121354693194087364107510350003831547784611951974905948893027712388674194836713213990649057989581347406922994965793314921169945848996099883024696328937512576241907910494317679734507238496152673494226365284810329945368134232349067939762112690964928632759696024532296756105475733689698128028389750570956859480294971455617941010910714402229793381529481715456244913477315602852984099984125377611633238266913068926090927102153244759362472062782078491386833704214569504186527726793741500464460881446025650833729504232266109683446390495927254385289044421348660345726830126774680640819171972514522613457824165923750040492438601185462272344468391202596130921759657979389328588091348258603825758716029140979198191888075165881045542154971653906550211309511246542080693327294092316967071947920403016053999525920463519287874149073238822533184245874711160165089447578064356430083578514144276765920941776751288546313006059371008480047794932810306011566301172012355134497804661325412128601015816139853299760776179782352304252686935346822547149869996670738754637643731681487722249236763317543555700688557873114695824035292315839774853409662960563448249230683187146602172715613569202951382095987323760825640230082976888462464900870666602229277518469880707275247889181638703737817960783328908626917070518882754922648744195966026565733056871447381385667782845204113601383340825250187256113636051060228215540166562512352560290508112582333590168433140843278051287266762904367829453692243691311860191580290079940312301666289171867655105921317660190048277616188552846691916740015599313707035396166415988404175166256490614330592404568697686201260726872472899104261376569516122320518248866517746556860232296029043049938257894479418814269646280440860235808598728471529904827721891134143504249027271717758209156523022926657283411741663250001866818913536136203780687206671694776924223791217689607166526341974522990285924189188839067662119881552009677220732702897654280505481036247993825241654428834914170914289386126655200934174449175065179900812447974091207518839831350459859253100529647328906711130524225463087681514534627994123738502305037637361818477953733847883715625782561331298401136365883950354471291388776596353065583594040881448015436055928397619494804461954071646660247201690857410846518967417365838805166717872393393652130278222083400428398645409530302944541042055552593765322765969045067436865712926577068626187935735809913988236393674967784308896793881522947328013830157994107703411895152889658908506781217757202849768197701723829012764609351791064210104966635751168985101111268971541981784123140798314064191107635753850788989646532145749420459522064063861135440284826705866796622810273776503711486305122094021301971104850562839246422112760273591223901189932515089060737371871248930373103980767572358846071627470165575240281537624742850176190288281976761602282819501387617508686127123881551176609288146513420865771980618292650912626320996616538791442349305431496449162020468040108723821746205083921427534722070685640458360161530978311514779492225542563166128971825368357477019968452611743571776493559216016684995498340950766059018052739646078695549803632297272558756371324923263530332579502647008679587117628101790656976033572745089521227249449559909480819387399535437009389777759249682903334899985584815366878545060543735867291138251534666342670953285591810334696695720122891772035808630696208696094631152599628757565243894208902826202005979381181321344535575155850323197738058199515640820740167156904492857438933175893222761982603477833084521220135848486092716468924474915752010736571918743457691573952110265497974310753570338243707191509999419357793765827226974356225305517627759085059636534402347938830656899214309522147305543976276115619224243919348882170982041383046768133260257829502936961313249504394117266167216857582962746936351734809520935980789187186850806257362081598447225602844367564941707050706995464884339861622268114858658125092355944899861613671733038109575732066317435083960137087089177704180698204258349186698508934263627319747396880297944217722311704020167714019507073929076184297835802013615139854112477527690031717975989670530286894181956727734519098707552431799654078172736161437155713370519084921935335496361713172640315185423037623519635712466124174681210635541864312758452225718135697104158875399046823365133482897550539657816415997294956508248578431684887029092340447287792416286793868494275694917536619441522121191837874548584313854062837612280745680566658091020789645323190703884002662067361780210042798591577550086371898521322040405373612977714748685892892079137062952207801933483357605269176253940319369920579383867712245886100718175282418836157252497170143708518209276842015716810336633587131679333464000184210903582299721543868277376217053557423583520054129154851832053637775466945108361825546168129519302043542592303668196203409785633644579603710874663680000356746210314098968330331992740968486090144143348205473398947880240911816335826521813994778112501375118660694805335494912584215735026496807474088762438057041398090346227907427718577091296447331453553613107024098908896924396973873863238354063176344768727565455319007501212179781404386769243345481145673266018313603887885920503521375680184608894569560268651442344619297557912642915659885441755740968540430784241009975046006177484028759423899637578159092836523884340854360298549169123132630759785113539885582191782119390918433257759553557297654595897261851994213732618080441687658749753267650630879030467727686377446986452223416310446941989868390469951891011273433265490215278506675527782778252198188466045245083854598211159943080165806402504500480359011677928544378185298833891875027918044835636412153210975832296959927391439634323843620914036098576561676725195847541635942804232795262530009321554193356412387592872021501449695103773196149824637253376538161214084603711847982943793368293279193097461256999969739302310675423791857362884515230809630773316287154932164516075770361455224923430490258066457375601261047718751823166849602164279986999721743118439946624555655194440029994266932889332802974140743233791773972141482164045146516438785018459540019221501200423265406705572071052140118231882468749062016286471614371457641108272462638262220933150258581857583690958729212686981040194010441878314753461371384683318607158197097596284239760804628294204745938620392127816554173462238499384583908799341362749081198447544761091582070395833720284855369376713977881902552987593135901065283575954548905457696874894275058653378389629273476531732671176066822470273337007338061595733514695132436107753796492964174130213200946901722691520057775529850157338642503238418152307329609249757211040807999645103682898952540231992580424378952175242350954165680344165285519042049068733840513711776179192220851186581247285559462053961353782208333226261334332981238108741937938076165480761563922232626731782654920667823901933941566456910684463276552707078422206476723908383245314086695955584353219718829906487836590271782159208062846251647480242646923045149795945702317426634479419153023074562046034582595709924352544377547148666254538987961290742884617088872470436489978477115564937727107637871227324265798445467945323885188412380536225607979961734945314072950842400292672556129978447352093193038327215752859859736359966618423606368916240992068986362014739999212756184862104663025688703730060375349341339254813093636858663961014475901952817328248920291608031055730643386361469908331674086403338806476934227219393263981929163622807956974038149822981725748512322317959920687082326917527621838944366423181859387387665206305572489155364456648245435930778890553545500061539935809386128457126249993560054600214015326322340336331432972466072211449126170314788232847879990455496659319120521525930837192639401501136786329528138580092854252126432365261424545939657825970982387861820168361441443748517904300333276314878161918027060801894410750118723680979942593936152123001593752791891312094845338933934007470008196760703341658125682045316862419451702011550013859309808755379320602184795755421219726125078629874964287545942854631120102842881750009413742612400940512266725749046097255928149193949324448771306396653381511562732284875553616617452374695431888690318906161003748209246509342056704462370439336791061911147926035291566917935007001664320548235661454427131531598526385069115126847490805105769999137519356564060392415791839690136972095745321410004087428314387589870935846838536614007050211819086385066482603577239160394791625772138682518684406527371910103974865165736653899402778345496265786183196414752072056879846094893752767419583240449284558487127967704849192259938108373456156428677690174161452540776656893529955368995259804525888749454689811850427700064554533014974937710468886586419061800060542418478557449723771350986561050432165125351240380551488788796927978710638342193033864245581031051991447621715628978797584646089591939900118574959843838971837147544187860226646805280489986104640789373484602761666429502917234985429358148634000446312176856015933841977179093488783794596423204411453995299785183494687505551615043388983103210214350945895285196802080570372662475931941162756304996541531581284592733224701231518465183610958077485706077051436924409187243733920177338834553277789526862675119631543830099933709629703069611866345280973611322597500533684479459784064333782721606817153558102612859252906817455803921397404779270237909278385882071775930703174666309768798803145138605996356935715756904968388816769512120907172842718748287866576605506670029311735114135684244945643458939465414838797265065958578158677035178029081488629162222252550935473528496981868982040480936488088681472303886205632680804208583860046517511425066864354938841621949559740903730320072720222487592952927214890201984538440750399188462651980415647528073295025366140924411513995241011242787298825038994060684373902166952633946480591930808646276053063766137508607901429101564466062460018395694827510672264595196373106499574286688912276781949218751132609348390420842382305328376864439320887166898655485152484304939424998623473561668038055378910390307534808703497792352750996922612093262838124159511678761701169480244786960472294079181374105229005973243585931610392954205074402012665799862211785384677647364419161916392753446469729250221838951271634088698141131285818823503486947275575390166892957419788697011409678676894662489274105795792203849459146414778214451714521831659581725448866721891647233233083366897053908833190938449849441938477214893573817204257693878807277449141016740653820275974472077231383398895984374204625121914253116940731295796041777091393562441832426196640513187292348030390750548180993209993375231600240230991240554100837103476120266242032302854078819857392698248335792551536348364936723024071780772181979199691964451973276222391847819178579463925567524407006711523570016574838932579095918071958889279209469806089107552605884806780658066486368017705639076150544861474183787629310310718789971088081091037625223595419340301103633746173463252595026560052696548727495957349177055277219181394339950287196972238905451267689064125213818791197493457249182065391468092154177940065187286733134042052821570492644045330980342347238876807809292507186890169659647076947752111578306496305333268822059931509002156139384848985437941099163962894338655995211198981642411625784543596972884186960997534187176958186916669033679699752629185390122579765926191235864045361710455470047898267320714674880402018644557318105415320656144274253097206739692232095041270196272250894765412530965978301448326547092245330159773476492831274129309701071375364032653989582098988517318211582948170938126898199925323738593842657083445254336187769915746631711747578123122252334247361651064822192956052194908037949248232010757668257009746535845119389368735248853711278062681013432620194074677740536881515571207438229340040130181384594232234898699692201451046807240923930469048339942795992424247049576946682338201836754722666805206086545760343129176129837482394151317144097480201469267771168025086181286383347454696991239803304327215511358971310317522227358336087782655790600450940277218055231043899561324662727417641052422856259944649731765984358296451405432396517822416306029281417256867997372162488422106744309460026234505745747115055978446830398289198515282250081066740989563929744184478402154671884182893252539169001920162876566613690832961079683253468738754078686361843974752006082943685170872518698085347920043895309101322237574958915607991786429385880560784160803292684940971396790878365136912498760376599129410319041906758277497272181362103869782572098029709682161174454885078549834947226546048599830747556926455311871853451760571020116832266167685149919427684972794662453196823033308550858547848309874899482797868750079509696980523159195448401428755756024946868092804670544799979156399674263774226668151282313858365597962332315522227152639433069774750871474360135025191545008575360543894440352930111563313842057211996984702713063509636763389060289705250039007758581391306574907244214861479359352208968201393970138559837199241224462949521935867167903541803943575965816769127204744844463124982498088439370022099992567644788294465371672673082689588389912256650321733086386614617079774478058288396095591486559348081520671753024627310423627392024886245022644973693125865370790839510278352767296463889194844469510883630954495552613107620500299052487893963148794485812251496754021444970879810656973051720580468959493507589182700620098009220686001913920892204057630802521341299173978324066537951971348649119178296239102092942013965090014079013885368698047210536187436750301119492026405049640041523227419901047838911354833785144161219657558317957675562990078167812773533111380770744972684185149288104414483190608705315334893627865105108519943990613373126654221317077825278994119935829111750371711091114170427795338382484849902082072275271282537228996953601062737231729247765511206447939958635793907792759035626928870441252156481444682276662939578714630361452574147059129155694155798754760566277803855333924717215192662222665836251089046137605563228290941790159369025587344746898404320840130568191764628772097397642345778559473717425711316890251788521956813981427203934493392908504214236515803292019493814686744943519104136571230088720070504702392191564742307059513892498558546570679862350029089515644020026675681858277202306152086237801200267130469975456927577382413475546573000788937152936607705626618918029061561100250015849002123602755140766140996656797194753252700886807334688394730643267699471777750256990499961483306479178729194779822252015237118350030216131335095810717494474460926308126020557957275143073970272053808000620871844952302491590243046723250080515277546636078691979761204309161411317794351742420510035606270185745512946135229127748436608234985676310093815600900764540151775759588735060602762497065818484981299081314039000850938498881121994615738963968598742747424333547858218161498930257027289958552105814481391549426619052010508645652979797268028005435205143626109936782278039575493323215169672104080813042198709818543335004856345248607586968451412821608437504771984857150727695660068995470955033885337137944103215956813655166124678632070424670860682269756664884219955220695398460569385189759443202726118638700575015225612962090570989441319498787071761747806782130428311798582513411610270389827945881685338114305281340376445830114518521524964066447981326031073155076397407294293617935945383748045040299488094513744199945349219937206189575069069346521998699359865904246899330553692988719917173142583083767364297491073210807606678233364178189852531777675978805169941454883936064437880278956870155211975115338062546893358213711787591950847959838764958869817095330609775540272184201934536188360774361952651255370143589681965612270767922480916533612822556469351054757024372446527745278773141804865701732375249340781291484241495107935196397363053231322233496343667805645161521490141194271098045518574898237056314484126413013598012616556182881217309253930656505523082262569312292141865143714236821485094883537800497688860430017627429787920780991216614941415004881601538107969014770325773680991973718197853408211816356299929856820571377477774747081595922786452954589375315724982201387485108085578930961184062697543728340562427676724666351395151264592260962886938170112943406724224450704454335094675242950008909945071046180331174581657188229296857778050797265866791137114853159856084096072695990152903102554611662951694414933189328681774571117403674738827952861030108285052785419578449650932993604428353299120229849676141549830844561665454206198738439160794231036705772280751130765903651198220475851001947110625455317742779288892893085038983117518617800584833790083103565137912148143717439567347029483172919263716273544295808274532021701715847146470366576861993193781609338280441520013010178157340922456570174383785148375848539757903163042677740537888861205873258286890182207862110845856742285511246755069836585473051572851376566051672793973689098690217773399509254316098886132928185799124198905290243621815004392405803019040666520266686504555703759091155416366249539210777217038956237378035691585780350390793628176289618270310547750651633630540927354534636713042396250885763940801209400345893813531715857636247627299377187158885867855202033234503482496187746103892772687941795507976948574129018992836365161025199414860057660471663248413990513819375890425435733513795368220599840433388869820561283456956605600783767521461977911471456996849526678775337084393774430196287203701233408009075207204648630010656965104840668334953058106060055740568342125764948069956692503468180043696927030422173764540147955034906098953082451448942010040348638046793461138879261623892661516569947636884443728115549445822191466736594688753837477951373155981271088605464780410482959709233749934593149458365342125850320066668828046466258967681958712180050201310064579231568038611940803355473856847539513503060676189246861280501742069210767524147966775935000523544315875703788654514139770682342482123242989823414542931106896677310825653352891931636667013081915632135578293177113467630300728559843762851033946015217603595424389214858307782656178220258159629337456288697416720891007807865987467055158697576021794608779306112615855543612233114328129664760743092096179672823195097377835085207421522883957412705927408206216516381617793115639117901557801142553015815701149343804918391289933693707823567630554084428521746059659261208365969915022126016812257131955084093263696449142254315024168273262273749450346708737203800274078510664350044381936689590321510666039056479629577095110273874392015491608220938511880781746542144299661133348345506732163402659480879265140417528263665056882426836307955523208397551326218845539104414718389747048682644818527547124172591264150935759491689489004705814313113312367789511978036342466691114666415134737069814197937443170348493111071572869641620169001810368841483814733894884041072049015657119552905151325905088789731635740976425354545328017894052915270553200354898532557548170486063443845645844999113795983769970489550296134586216388930482436299854792407528554915456748428978244171180036976296851825475938935831962698956838839471819484616177466666189264817672384603272180295929872652182524259861428492354011342457479621043226394508068630503298516641472824202991199416325414705514068174108418445885769728169386124745971123835019469366436421222870567687463617147327483242207289161903086057995900007397249948984258277095567481042556043488066091283264608106370521754134695185755554309273571290038606439834623391358013306550052769539320397725036088895717017617612433907563816166759586568143459429876039642555117026191177140284653982397188865969802815265227421947106960709833382367947695640202078452938863248158057765963271740469507182804852710585030434365982607673870895567507281957624865462198152412513386686824910872253442192264525640430052570130868371631058004180642853682345568121139141708479750576496455110094703291521191758708491584011761711517002274285470942306876322424016145178078153818447293323747403698039828618530086210382316200833404475390774854528372133896057855170569284880783392575123035551232737380694005227063483410392449750158250437123192538520564058194838014792704629229414426999686825734347732644966758217460999145098578597473852359041512374766869457940748452329646798530231916529137915245533480855013119745349529019683371183983701613774668933212528823045623246376222064053875971884623053541837377290237003946619594791018438611334825527286426245853016059669119150791342358778062507454419679168690176243551122864358739512130153095051857734869076424895081195257147374654891810385679377105301131330176188265049819518134210355432199039676075200644874440662019770923748939218681607186318901334894370194559412240142112561017022392347674188244615352499171784438840686901462901991411966450831681057096308026406703239979732738603095953989287464866182023926045670288010287730548979978019451276787388934710087774947406593555164445552897024208336703163097141959952720892479383610354275211195243455582666198438422589167329117352984785393417995791636676531958296940067674674472517678393613100959928198400300706066523265273145656154687368390184919380407495938109341263011961150062848308407530319374559118486885091850114603750419108750637212362034944484440620941551198548044494609970855765786121430701318704809064387457010750963974899964886106362448047318141043707486633189613217594704257925687184649466202998122188221453915921319792496329820371156888068216806942673368799367479351508764544415520776701843475904587120689912341529070139627404745542552182029482927443116039642639248199463418716058387381242765728091643638963905524424974547626046232479654429319818370287442513986318124868009219667070190502539266181007008362129256628177089430725540821204831255536948597413763795356744877446581129140460804531428583571017976300121194151932080571510801862572508177560439166023448825431652038056009931162546960472591470123857363274725101017639684723987166771286835648616695816215781317630497589793291659776335329364897264480906951345803428799096679402083027336994947209290916129797520202676984241057236588324899778403488039133278529473725034114943454827357056243378237288534484345955293011256512234606300330890769731069960335937162033157779846542148320512669616785965287617918265011724120468331815446897919430056345255797505783239210792498706172977599604528301160405003663455747084802401312877377574800985522583310748684614986497645408415222383414245713033248954753079850032369027433918986591496049987447434119475699482189653814160464204017233694479386096362439984627020780370650083278428974334531785767035858767030173156572192517539155801455498399488482524462330461325194479372357843870607885791050433467120446988593358019004176256116618794616887439223133993378012810217732194479868299430394742461856553467110774783108723118740052113372661297521340565996935936918661022851500627771903232646797412502382173636564348758561345349967508338872376276045977730927468344737134200707447643149906895384216079973120564548914822519517170082386244015620117422085880524294606368709058023767645321009424372837450964030273880117817469143560247469882070285640638019385460231736038754575680333868584048884214846752076202842122869543456443136288287783136110264071066156141689504840161915879589995148496676504790981998084197016686088566794970672221673241963135248390585957600216862722465240584098497399246204469259782988629464045059261855511580209238943020218101621843578509975543675701499595784124287635291194225252043594895959804864454793315432369387647403710899774827996747771564822971080976830175871211529730866289172571579103238201045082235533231605218332901478350167185389735180088021921993027121216504616467373782392821177738175768792286139541751426480818664773327034641173069403428368569415523723478936659690873756717500821655913486697174644806950613484495951769628307456615840418529933103398926502628680839200906757649576863223808667079615334228295610781653155275241563057082309667891854821678942435586345635122304189093108803292724644649226237751363366204195215825976881565967145187961923227501331841026973782674412168673983010668255988716512541292911332618826594472029481052050655293675257186508773886720069420454120925897162288081024455820513986849376063768276171965439064978776270827507991446228050991538185667125346090875405977466365230094760651763027226011958815847045399076486922906750249540589189020299010655970006606023557116353624822832613865137121052626422450562554815607043234443062924170387384434580113573910538962756862885146319368155524162295949713575620301870836355923005073547277039903075540064932725259163859088965957163244321887395268730271894126458533076155999280236337731760437810154045235324247522771405611829336451101432262905778526187610953091932650053757370235802115764545974585744895855290699599337347868172178415186235496060812537215741326234688901716417956103596257645872922558013728668463069611958430669903184164244555967829829280244388058882186955018171414159623213299646812366938849616380340319820387015239552844801701134433658916742604963603013148199448978345432900559513443715392092836123052530184485443929351151679012730889776096983708057372091880965363127114575408894913692160139118987226278656955933881023343748706846677299987381789437329957001254607395795230119411063152845285158899876662212068775737083483504927946061837462589395100102291243114059254690047575582080142780446323796867154134904483164054150951815285271114744991595480094455485104110383190879988421564431951427876794633688692549527032641106755142924340100021675298721137963962228265056762620331141212833226687901712125462196253366213017671052317805146494349446256349212207387335724216985778050831332544685620047150113995280176355494049920352604002916029547280087949074580275803781837749333226797950719206744226430069100060506240318482559181960480978498757965261291940699522638501485009638214413975270352169564344189845297757443457106411702268931651483881020319903190874165063734405410893875495895481592097594106120518412638134603307673856468554936974939645880590831230461529338179371518110844974139266583350073486664283417575619287594603222691232305697191399110115653360262803770391956192197066442221693660674977364010160508774729425943247832285222895506566968621097387726997453182809013619871928643889131594459603088951517303097847580163600765368919385920758684609096447959775131077960246524170774141786100283766275780691294741010461185595212328619454028927677443504493607077448318250654175344907728632844155248640884351517057131318570210884423327759943390463865004873797918695111776805310191940820860287951334436887745459947192463799446119724913876120501550961473287713764202821132875839046835723919455205263209483167133755221081639823529639896395625256866232989183706756168292819081078422333584663426225234858749467119839834094185433126997450483688697168910522218638736092425804519911009006459193704099938585464005904952601398515025058073440248705758912803983156548231832253582258659067281059971703750533072873021388719928806969916865896896548182670654032553840641700411040749291596112416971089546810079020401487416094722408361052693262249709791248168477002335485339075888207608366030086981464838837089981849175629087854789856311712209659624287139805344541927005902505179992058922800853682991429150075566899032333935606346447509221583533078072834570334286836400881752362991384823413066906994320826726485078139989290813678630438013659770172671413135617552246104160763982141492414064332382294828387866568076147659538103160144509403233801671806850019491306544208075764801489534380057073280885824675530653934857137428510876732711127888036502344459124867904533677645544431497753143695041702134668556657361901717759054017786965376112881567157082549245558028761375312029401400120610100709035112668583795049171946328481804860627604284382649675871554902996460199194313815213627749030398216027052050151235235397648494372898835292615320989893417467028295841395754112523805926864089095461682653435232758182322765825262897525893400514546639808527864802806517256040251608464817008694501982638177690666863026699522366664406869766633300309002937571876816841197570095560261912975516846915387429619489723086000864922466485930552734633132756738115814267845098173969665216722163633748486338150131505117742403569917316124564759170290231253267977438371317362685456405802205756525240092650765989972577183053481279918490346039775746148187057320660855651687686666955666250013873966806605562981449207444039542579263107181193979999731239120336519792929517563111213272068642763956816512443086721466659370411774249276233494026449262752424188357597912334487793919867350155936927738936366351791401485634797333006329523307551624888348889289857210188954836859703763517077820783549716551824064642653284463274093282121199142440399726006965989465115520111674378139371050027325113038008615416730785881579151411871383644401376740915174624895013488055543661133026586793564156899835016021705704450659724461528341974032715487967291225229146036915803758467605638463236627969872010028408439556177926944179417127693500998247878583313393639110291641819076799118548881031118623512163369195053065311929843839094244896764163948880519599512047814060015408098673543930097412963997988710651409786303026026715497213435806349691454817941176132775823749288872081727524649944403435295827947592374028002511818524808966304350633944280799241243471142002807765040550417488459379750871051117232775666920031775009292368540572166205689124209826606452329549237410458609601444511559269843744641551515326081072960041809392420226707139448701204823447533116471361000793183602423258383020591733564575340193976417171096694753450687231350045336948244055475182581037093503147160134900939292981382286960911672163071410347006547744125396679155174665218448690265637474748467531099140355267978969537399260494580285300655080623247220118407133792946874919268376121332949998261128431403940675421610731813875181398062958878166122072055189685751004792228849918295947109344365446847031894328027554818585614930883396490454071380884166511991342024914401100466429667708510023578581410432150410115938809144949579217784768623349344796305515951243854127710008074535972060999814961402839317835618619336497380611057205928550450749719068013295760230653328981638889972262797056149018996487484645801901011260565941763500973521628557966542565904480603636265670834771956038422326712796912422585142995115138935064079828013311721505939590091215664267109088947860313839502577957057395198187953097994563213627045150585800962915819127940839660424693631742174253312741262312849398266445574235831394971398615866130386722386688116269814949404068259279479194562274547732682802192565986892237239221612672844769397766963617535392276443280690520700390611318043283719654999406243213267181113231299262441330049107064679038622999512200749891079422016978445467434030198029900638485206078958121716450514646053640840500822379610720386667099371051840099173076360175725754791787668605563194734294645281660230436998765478144780994433368648793167493696008321696028856640094629436410351748409977565931766655455625661495213731561705441290926329795789957740193210209142655222825437158005758814567027932379398911397142747439233871716670279694947630211132739752650821592202700154908467592170565243133121282674168058197165227292661678716270057864118584088673902477191620042031394365334182156894211362828534676936183205265270803398844806001181792657927286682597784045410973521764238235951248054839494952022115372755713362443753707646118262164295030793692474772627839203791624368842559260961400830989699507763429863483834534297136621202951720368153920155536117100993395489820477006583440112982182177761348052843896800480004837922581123027853071387323409540756909548842972459573037032423265350407809670088127515867280681261350198452470729116848952407224033217710780228022892405044701752200874944716493812918574673667378781526446832378252165671309456222834504991543174729940155524538220770925151789099586269122834062539585987928871654623516405739873448990458514068960771276823480189971089529863119335572550917193653582122117637656100769829883202514541521132606062805014181593289136296289411007983220257442262763923722220391871598028295462864702865100274863400726565933364782547044883568953333345975634213196019270459162629607236090749832278246128707703233938464726718500563582035133037804931454189655523011855907246195857517011020988633407142239029453030048531678499636121295178521390298782509122769675258255385944918488275992689855893490338061794586237264653322981487291063922374219792306013323801219759644007460510275112949338311016832987177028731512446935673441836865696393044167700703216841120918431813206747059814308119459453293150610434473966788591056776675688859911778096396006193016198395476677784948194437408833633756070066348226388933621834522194993735558270130784412315341485934709251281436322009021602151060523325135723684913249479048915595381967719304009328327256729667069864357572005946139208436112183359876885620781375114284554135496081261942271098207729856224316353707198017152869136436197626060106527400764144758173062945913811876031063173297258422813326923205884862290167219275076664147610281885485702709870273274425609780520184176030859085806202588062644954004238360001505876941691784142587184641480493060557266774253485752859468600376915955981377636099740483554835189099025146579007218816703517928808371337898533047073177045249690852070844288603291793666567508190129063418587718622162529616530485173983260436067771550851398482036570455543227729682128188439511217713513648789869333152149182793187559767167784631847644249507877852519110533696389424537948630017901602686630181400889984802244313316272186734518989310784338358283561979542122734574546073998078575640453417888544013855040006757062346850753578549703225528033999885394658988933171630722513449418149551368961242699886025718933741593114501777871528071268813581764027443327137093756749663276732150377869473033831730491505030865521296331645966213770159240427025189539754743787071066916969267299071736743311936502346597021701839731327750686636489552619314563584664129592726382073424050130816908226012401902254443644586553535700441327526577060207561260802485712517018149560649398868001326299123962140408440381056351182060140893256216279295491462555565328517255146731498093784703862178283607072340490506235751555984253097171633332195245707342752121719090443471881939269070689380317861632565667060542778673674602211350035806806220478231680906097133073070142540881431805042546584942100874986387403505214302638623496581272058947658712542832931501082134894248581314678485330075056579925099807053214344544928766418876053844871342002508410222400786809267871472021208473660279743506108058843429177205324098482935144239880501834097088233195442160557917259550538400115753471802522557457985547161455887423121184936425420735381321465581410205144082143008605364517194428840907468543289717303047089756240522004295989882177784684522749024552855850811339435657735829452216452126193097565783622237113465816079677975565651993843946610355486509910515561965266003493433624249308142572699307034684665217569836034482561131165539367837404420304770683651152580658096294353499584689350619279529393090195113258178710000300272852002877751254897268290842527483433591763545724384452052997141778144969389827052662227540582577753847794450935823631250283963048292790756718915288303952015337671802789659132253867391490198047315434493395663900070520069912979686787773205134212705899311697469320436601169829930829959930032335542720481203880307777111823323009421664733313861205682559498228763493488087507668413385134137579029182766151919296417555231620421796316813007608737868546018054128538209620254106105828610457806489533991555791378487421530789785793992074645913531774915239011363338823010606954976337031737111776424717258903678002422938093384607961808555827564126837295392033840061578707402222873195690058677909479139513080959016523360793979547629437392418578565937978409082199679055369538144750659173909463958861465468947134550794286162659846990894026532226832884025351321297217895262076457500950755315846455075204046560424723084869643131570690938582238083440775086575137992175119948364748581809085669643583956782862925854813406071415106201938870136538545013855496781184871134008010555945972364271871471120980706546361434490822057288737686592568787785999740194271750952627714547737730380217538692705485664952449038093360599933305366660314474821813070038745587754542336510029155408711797979492539882404630075093903993606366555734576150450785010200475399670826593134484192598261547015295679916512484199325184634197547398312894005054605286291366654796759527838994817504624828079866056584295575828152266130573631372147217209214653150871532241586757009406539344077412407758780949113927092569071961643946961445732955420038718946418372297314252394377970010682667891184507339220944426851115673292883896048400459832838948224419564271679675734049341522420077304710194007239168793974985337743624857378797784357685111979665166691943923231771960202992666925308424272690465306287262004615887427121557640327271993006210285119413668287610716581919627867644181338202851888834081238173395146741549081453289861715677203754200334744897154445609487690508848089970010757941632142205332828026318510668405254125674966310013059727683549709284294904435496140821020512614502820736883709582237907419135766928795243643805190623147576571037446445443987283250218471763088266356421892832910182396053137795800292431488806168870418855781212482561845644257862049285377049694644365098011949359076836889428870437581419670732167193257372712806236637751782649575596913391098034378837162171709141681660176092363567862217676488985826486718105281486887038703484310561178735139330139180370506432955934505168616396957817902263905186861237396937277946176595525143228652109937783747960361537165712972765349547196949813729654015523245632566193056136348090839131837946903412997788891026191127592080272820416406359069613765018393183782195819518801792672887020645344600547709892294589951561391077340391351512305575682110439519510105650227111140220982839831076751856053494355596697924373332153063257832993940482780860406406454115202982152883906674060930924205186712224307342433235272201108047471679245582856579449795142169190216591846164709188908518929252691489686781775436989615561866854489422482562690074366356105858566399706924966421778257967213951732517932276006751183737301028238722102432453126826769802991497392910676251074486017324096009285342395625623082132851968038294142068724690064452605664792785969581012820855016115953454254559102854577271251319924088780294310704644233537469331329702954676969085528877798252901565302761954200873815267054991537653146522291259346878413494065780273385921885453102395741708438944262365294841522943457332102324365536511346685756967142963119048101241794765244091394425391269695809499075754430772539289512863214850871194298760888391228109746040555525992634711175282526411362684189950175375318897375577343440641025718510808629820546948157904772521658551063854962230914525724234568939696667386488435961674154798257985089420935419860634886520571321536595413775878351650023951446518654493465732391297084811632409695858848314729859850170989933374934275929924008167683930013914079224258762042165210104538901110653890356291774022571398649163173150540236956149506724426853473980550179695224127007599476703910389984876988931857548721444932946037911571100792351431707051157603604805556755893631936535364252083637569739097814125479316921058835206721413855940924039831515625568484404284166305481582353398021625830189453762784529386273046217855466154050732696551512492073109825186244376091669916165605734733221899830500579681268653806460077899360428257100204877284025555719433120282855137813877295300883936939693972340746130081645640909935183689087209304146660288663859637415004559269405339660450707040394764707263032265248534218355730695304322190314626855604607046857699349587731705987430076020781272496583618252791703492456384925877748904295430705983579194793986217460724205280267261960103026781112601450281089592406907835322130805130981946579754722811850282200668224630584803875537811818455221956290652939511283378630241450496998844275022394815789093175964718706566530388589758754049220948668075620027512989171200872323473040496747555540339105892934408239136926622711364611871915127142577416506649102967011704109551637864493222271227354673829447087050393086071775947870157106252199703339552583716250518375848351422551000681891145592426580579715477122036043936598135097614304073933268231606690196945261358737702100270881209320003482296405038240590883452311998511333631854839647152304159100474947963301462184342290940091618609630836171126699137337228342294739254914842868527679943273511347595848626642370900952199078675911519708215242286149274738260374071455945092883587599680120068147370400884766991823210945963422058219374128845056170115464111783685603117612728881477902664875275873795320494579848828522056993060810701241121178895222031882677395552186450001176776381329510285228225619745402032865894438383726439897965943051402906499790561692318319035907411510896084290258900747100923994561812194909169580303987968627378368322252608380567808419247554098937408112531981394783483651739166770308855674106904487800175810480301246069253308684204944165022376302937241200313854254229542397053509704095291729180318049843328427265360650145686410495954510885836771429304347381310521457974927041868416150214265983414465948339702623777271392336864003315618809284811526183718112537727879455196336115826930703352584599836577708284125114617129500359225602736827644224782585228035314323967496025874022286956191454766206589688308583323747512840602138687147091512258233552378037372064545004848777166517380778753087533594792357234255890993663316858007711576313808235695453212071422371113688963120694016769187107717296045275281060184397351395172236160656314814658428740265318275715506901322903891494765634619698884385990197664677652503015205385970398792062662367135641871757259467740568543512782563425985383458111863215145441754689093716331939765456088948575520577654478598436381299831776655888645113361466847824007220777913317979288535217971969606745386914834165143776035692818701910787645978053823788296264144720953585884215311815435528110000011477898711471275301005393363763681425297138877603478605361352408585169625762835996001060204072454817608173721841088617153032145759996092255745142658652148956272945472068240454012604296904865713750935135994225039218855611042384258189114190922171245918449683150774105220712325088376692174370896030179833258512287400046793964351092387602387371610905856010458879113799577526268629069949436642008923227052227690108364929560803871392852193016960041412559138264331142328427763594100174392859472864401183542499757929465697248591585777659864700672268384234924080909319854656286182739647144350604847293574961648759126509264614860169876442669583445393773931939925768620121288452839817111099610751015137071380024977260217368189175844730958273293989273862110829730991615335925853098780153493559688404627822462923652836215367834730244518529687964942318237552670459932324995100774622535417309001939919616028249058730915056606326582450293579453498750951099129901089702752252272875710266585471302060601350227658967596743968506620031077098036784050140342358617590718502807032678300878753275100240780095462783295638003963931886137378778475726428288341899258985640854028132994885971780555673518657753998818417383360900493335493589474593726964817149709371436002269755573435083476322571306415155769147964019035906068992805300037198575130810237885643954084075288134491845167443803679078955384511332426207420351757322553531367061749566920298167980431371331813711971232709367588165330029692707789472915259481295574087383461951656173070577563277985075926922654649210325314159454986410893266470811372543026412123260545118315916301532844293726919427315652375667460341588360047566397593345810338158438863608424694523047983771032124754189512817500884068592181020354761543091209650796213249610389542438566548304348148573906485405851703372833382076613320630891968891608776291738478516403545215637155650340858078147886551053409135332408590403319501466381906284358168432237023152390754539901528705955623579940790340057614037960278365026968640226547859410176736694706760322911768125479746696676402953060088496438446682621929230607879937741106000009924252235343537679080979149944278005344817399713533311107871023003028868998451223933115490519636094543301711439107715915345495832797511033168357776645460618225769974199436957897875709556656605572329952008881654212949685491232581655852823501386597873132734474007400183812333026340238502398299317132060630993478187429505870460848923701456419964509380777552809554268733444028118337460510060690622237721482053070569283715248879627000527430562537558355510540622675085429069519126347842275020192534771438816328431738381740649223379162235539589490875186125881879773471182783423795942131790430276978322875033236748089630514876469827325315575021105048417441469453664287709896059868404367866322662193471644459093490951646581740103771886760708178074587990397992039506447270169212271510757051506223320807504086631705166413481800954976942941068562140362899676799605091333089009013666874057917927558744180814272816282207309933168929271199050764156617401561834732190079773081892427015104919515614947416693187186506169095592578910067917159846817805653008973222905403158785111447888865179706771665178188768434304491800484747368817210711009210770843576256034728596204781184969165722401338801170324912035207124253933270266936647245313584204421405105664515089853389947828519821399584990130008522228968376720063308385649108938398524735628795142270718776134417461792969320566583961745747322250532570300180026919572460196330549542728733768845562337649290726676077692285797672688924484958119799261408636970139981647571765456808628638013493865862617115349193679803680410298813221995421492475792058482314306620271708127364957779794661500812099291301111286304296891687784009275700743066129505906477654030621620059145401009781075267624321836267925990717038653357468914439876375772836013147212121468526721939918424121755614241730434081258824676847731572236807895582420151728683175576745959233594650946313593405821379871750482205420962205736011344219116453250710047823772084384032612703412316559213722809127957882047601972516678196617695299176004459560084083508887158207346095671192473489241461258873173226745205491256301729158215737695677939670965668328199235240734931182194323615158394433843540616148629383549959241450889838566846116367665483047099766333036336369533074308270486637485664686218052782215538920242664431118594540409209819152333719716101981464321394185994411427090033819362557382184560127131600117576373160491485008132061428471293811080149527051273814499236412612148849024506241451621071351535999719701992796646383418577760335398246449104638594267609526750628554077707265823480691783374383151615223472249444326694537654620028415048389912033760391658635121949600919142732582868547664091631112114287258914256306525083401263857917549064296797203531761036214007043026529167476855673271983244619793032582870721161625212777558355096003457120632845404954003262114527448690516768771076486406863977364987272714154346477875631416707197442231172595881230996918716936680913001229005411589544330783130537052877692530626363691356145790090214918234631592787823733555118112106681772024078787127460071136223059837628109553331091870224573781802043891353823934028156383978853372781399657792772103671250312135695789582379727590914118614819047064702871980357967243725201264026032084826964327650806564809538624473944945565262858167040134881004174747635212610440948401834357867761151045506466917602990386598152980487742701804567629210451574930471532552414725715633108207878273911638504383824793896593843474145951436368893283049575253790728338690612801575197643574054312628739570611267266916018036421493814479227854604470500222649603765436769911832982310217108651471316453319703254134872317888580577781498939747793608946847139567214979109506521022138799847489368778119632842955001258048798590358775658601780519669624969234622588432851806949619217937580425096340424371845211298907121873900625656617400674548927114463963884980759148581846024452321757872969007170234422547743686588380767675110069929518286257869223759823935003820423417299542353821492055329487711033404877876603887796232593322889041593657529278386542117085747253559823562648907328733697451298161310097687053894340568733414434890871349820240957257065455270142471870179312424008547551572333496139121756389270421324711510879299444883739397632034106547923718608879878138891459068998284344317953384380649832172092618528318611304923496582208881591451158668673734417375076421652119056107695832053885014440782554429835731031464716001752455670851808851261125855454373148105900285739980027103258816582288814088596885268672099858265085627889011154458456377201456753644027306977077906292059678530180708258159791949628804027875350534441357537772960159828414201189341595728348058999179131942202147614254547725525006895197620404918604697505498486449593085627894471533381144177659030520856748296237971176192888360905950598631863328050757041451890788700145410227677089458529452814175177000973257886786562016772682231293233344689882236220151925508212950240169836025138947219465334734150725154819790804889399033279280728064605531837584681946406351911854414665639929461606088435122510574717220431277961090611395780669668039479439688924280933394290085502605251352959903865603622363093769730680369530085870705427531149452109445524778573600091420510148825385672164323643496893766506012707252770474013891264342444687251787615486178170583791251753101201692346991635330449060047966407057016403128422066062121659652887943675439059031294049257453965378755002432826945500908679415452872910912582768897092436635288310391897775634195933303085850292860316454668399770029769248737730792814504194616973983161728762877765577673507506513784627221138878130791213918547210138394596027637434494840410767309419792188051733229663662162707999801249319207748784800798998697861128733218679703488158578109423941224983605205384847476082005195177448721912992173390846818386162718742093791105119534663620372573990259382529509789364084346615670065721424424982754891837010176366489936619532157719723164411705637369801916797129000065550568321472699001994134161520298041139377590921342903433362826609917878810070902760103844152794081712343755628887184480512612798528681977683547347203406479659808390885106161034060729392799294941415984646567522760492661350312734495530161616744831880101727563271065115649546121040601058469968603195529208526110176943157994691834264118312630495386723325302109501976014863883890717768995934603197782941597123019121385692623537265634089955031105882899276517190606099992430704665497229538968133543757891776372059057832409456045034022327328533262277032306708626681074858713501710186402520639281999872618580241690385662689426465935888978136704937673807256677117422163946733632131368017642983467473144338611575730425265685117852256744971574031416053491060200785659243016838658117442380988516477308069182716941820145665709391200239563361972779935860553098564722227220596786603655751116847144971218757367028332032193596389811490220624480629936158030180808900329080305205935580987205399161030802614670592311648671352607779949154692844931517111642531464597907825843662705853201550646336453751916585679064737078995171323480461074629563368748483889024184435229288443203078033311683009218309060857818767242280024859354313475006200285003670421930280111922003624619084119180391173219868244430549185358581558611382999865826670844800828286482160169479485346499891593634242380511512710323591365560281641462772649690157635634538870995196546496280904749720271231666828777087076625508223592021575303388178856607757355928654340360356621305132509924189372428368525400979261205686735616740441947182364167767534582003801884294744927691221191247735404888955106486854980975800391543493907037065745796539542586682174859176380736779012100110267329347049526179689837255097989204693119463816758315405160527764498205021674884005898915130929304613319104512854631677686829186113068794458484283748995336237546068970656890355534945186731584850643283563203174360745140697160196706528415702986009851424206234799016552934126410218768568568891857093485951590458844774989599826556487121478240019732509489094647486427230845327950511575788835083191103904105057626502002906377050604016733575421637151476648781406145805107322687171553280367607500722397329616677906535934692996993464943772844669205640991678276782347931134070411474551723356901323649690493074683302731584379091489044985340906275128081691525844756325289585884916403964065780505111261434618598183300462392713366646816053505463567714607100891020190300094079304418522408040093741248146539467793458349209784893310372658732842870668725034351018956852619328295619641111266866789447342418960745146634334643064681696350800748291151471681786789202614127250742418416073285450637688927180912198529522449951202718442938958760076844722108360675380668047133924260916609091507004100850704399859638367986350992829136296968593611472495453066217152753526470309046333525497669861502326784259294645706204674415147302082268315612887567381824888399049987206110888222130871132848533958730588735882038018647460371721178926266548487822908899371005415419533963822588550094176350103209380551146508709899783561761889977546185181461192825702728234585695793655693852469521543144606697099203864718060688100657648256667371856405781148705656610234359859628668520474962388758216887925202888615698172788918572471281363634297812569760616578450839756959647726001290461050229914753309787982613242765947644513751244599307179011875775308252508013183986013808111910554601627288854923193190238898449959402801242200894346942313709237175331350405941556611612739832149094649582354749720501076936039692610152451411377120070164700624069568991941907305555830808988281103619346619440234654713657216073199239453731044531180421969873465747750464420703474572258939517196736435285312127755130184696199114771202187887030138894175064281275680231955274119481758359477563877923916031086114846180426690053281485110744706942470872546339060906927872795659759357024376465116695249600907675465889270157193059322993364519021453844446341991066906586679745541357223252313299424719052486528535983201015954767210598346671071883992563853894382369333860297688160659930152352763157438896771276700445066127337669029879500278954544657836599436030458501047960604534148076097727189689066254055472482570538802931609089822565834271574408003056957890301814644945559460447462976751782522928075902517792984474569387950364124560326810211756569264337561825698416920684471724466852640553443005668379817729794423352081895598579213440399351689136244360222579821684690494215060224522410503497540302736314044364053501428413837502571502698407761524222463664654717969023478390480575939491277625881409876169708635364836311566126822691891764950668002260501374933482778620941976824340908356756379697354838698753509656453301586174444195962926707758836172856418546703600776517295903980490955890679228688310150851051165241265731676589399206521931358321747643657729326785095866217078904750576502422233329100441312062076827054157798942487028562800150592414804266518982725921289686348425262976540887844382169633336252620053533495387306210719170092066686486840160287354011384919342909928561936565596692243078084799103344125462565546662655436055299991676463053877133355235617964717304240836505911705336040643096133521000420464945761705448858246049063659955632496788472885302670291184972021648801969465420315633514318173671445824544382836505861090712610678074406575402416837855026557408177224816929366946502059174900105468865444853708416539183331932922520935912997762082503124921303802384352221238513446590141712919227017485491964715799120490529006849935080389985411862916365467343506366905095280608666671359127990887987999349902429513869563166409987978579495109516099269785414043770614581766434418100262545456008162174322456102354123635576153010591333442588345625268654428196517220317215012191110265269381445104668633240049429902386264236444107033748415615696387234691264941325984859614042320596968931485923096069983279786720573675709231237864010913755089626076921371903146430599635386788565677479699148985233040896508385803444275216015669299699516863664356031658138945147203404976773836472813045842483421989602418450710495904065552697480247725627614680574503333891468927895592849620081454377043123339947536198633952043310366914201989447380165978976932108534278896994493278811759171281963512190996099391229136189444108368409409112721415497345720718532905232426728207256022186683854392374993932622329527452875648370879193124328452437172547549981043038067983886853882912207409678421397787351014847034553415454339718390690164125939549091094543526686003468765398780254328110963405659335470416244466432597198992099992907506580922727444706191938731604556084884023560461108585377738050760392716925307334003587211499764429720756037360792810043450879957995604815155578706192968800764043619347085073961440958224333087415323622284694244530141398709695713338931022556282381623432958333138514037147129888408308738573274545779113132591043370031996261366215092137029326886828504252929004762795841450853083897488437783584139920399844747897333132671027724249501815055315836334072219552487619315713625915805793554442426322488499316028570616517423899072720955573566021760760035072333503378095768145549676406414744246908543314515705844283406111005932243303824785018328299742201917007373127051238389023383069649045863011519593559755625262304511708256617815525354004845178362485057803562685836828470722729788934492367241952135484045553275193962787400467946432189624708738511233252127791333500200404160798757476594460188688301121151422257086228135469117298700930385651055026792373588933234008494639707756861517232107261219729611334542380763261939804802638695356729479363645942451873872684510244742512066326219718608908661339076657135762677917878391202128139829320400515010088058678730908150607706493068348657973786674118600021415153416310963387360896293435217717831566926207449182232469419604670221714945352373947725053771302475874718392027698160534328191194046702395648592291848739911008903614948293545970387281469783194383589874800580485144643764283286910111164156770400351323011412748348524571952053363920333201263389820218154988697583498537150661313118313805229517555285648074603820152925777934262386550770978953414936091346467527502131975557340091602038960185573628319581722648325155220478379819617810066724183846418021813174464315823155445586752668917911753931380004516385383279916213364809936357410908716462167717402264282379077421001421908298632320136433200596537115585418638247700980725665770264761281883482996187268783625309080136247215442522470130872528841677313946949282174133396941618863915123228937212821401928136347570783568017950528508047199695646312542401542697599510891098758454357806275131784347344129781198681466851275857334198226308444534373065360646353555582037909805251156175113150745466684452971953266644827479088361131037732905885194376196950623451857100126222490414786349685055033983529570273661981076702488414745140873687879501618366284811034910874645911725674760653465419197659897733448793283755199548631470149912801203928913658296586374286866614413994979098908935183291696564420299593243821947814521015510569053486084460320461201874616063037212597721487988365439585560111496372668915790966578565175442190086517928269512178173732785612565922887858319684273741033197943247099888681147011013621358460103434463240975038874487755161237691050076939117034589846148355721928384197230639928371152515513820801012257998713114592662778764920566136371404180508895950999929072672858944590554009538001060705275016989716173955487221763075020947412664542015898899117591292804692415931560130794678744918410617458037740403317587788651784371604230603670416266192407683293825182888732517715255134279688493257561010867907329363720267268342804465056777615919593715522812153825024390115232376721814604880319923497358655989826406536616178502691132159969570681522924745598355550021258111342619234056161170509569388819321357965312952993526071874082622321693663552099727681470421960518553402581173014936584506035416911717243480665013288257298020816422885639848077462889321446675168204316297847611496204277725043121761659046527221996740183861970759767396604085424892598218029662963523894483382937880272411519947349895744234385179683723269703049000315625969606332659038591083027298206501957860747057196113753685422318234791777943217176542854875429249097940612102819053559813293116682772084352479007565470410450329628551258150503438627147903544785570046981641701758799949270306144260395406515408373041338950821409972964887467309543681596242207213158162853270213112724118787313001554989636746189105538650811372779612831236002414694258932705921974085161448470721143783357265187990537132272544339651170045914937831726097252122990639740155038497390613753211027220441335753044455534566432700840024961235789584099564901325802760478426234434220680042107099520307044845103861348242177102358922368826780685235908301169314767792721856749989797606841890238909879962636334971990417480267636621042092390822116787177824021006646324490213624987314725836315109134397388973435551764540335946389051474832579005883381902719082761194812669926396391737211435562729307398019680804272356047353565243834453382293768509764078899913790844005490337608723904232475129452832631810782509483050133676847286846491028583605208248783434679531886291020819722037100302933748936504321423733937653328587861659323699799256308289286960430095391834985759517429883419119062061216048577107830125632985061816774259921126876580554007047919420891780990842425385861375743071703443662156370453609862749153623338412731012395430511565521744076104552251876512281689567133856736746332793632209246378835642879439368342046119652784125980810885993415209589758282559080070815281334453287017056942243254293729733629282961647178580557985768407599043130830223888619242435954457771510060241203670107806396811951350495199744927407387261592771067807300472976979080263288403403816943980762133602623672674287322611011687591305873961416660343172050155203125833888177332402344158634221424592546578371552194373273991211056178537619843411386911458989055516411009185438361839076099594507960586718506354484444023625475262279601321587344945748866842465636552490122035126893217390620023569319239778833479216851018824631385980768944625858401913866733309378957612259595185002943405743199536721713313154066133821543615342551304769643350795363397674682718333025187324827302065223630272237085025690910354555666198604462412818670490156360877340386189648950472303628136764189471212397971300578175057480032771204219082927841682586572204227893735590816252988257832536731334599900460393050910582580531753344824944970468495680997107456781595608640107236338151271998541992317142884104972985845039460715107989279524797102377132342715119649529355057630104087665691051182710652307421370780786576719865046316910920000074194177663262522633546932362373435946277474544821792968677194712779258191690513071393419150281555090155343457864408271576707832839735561838013751489293956602660380638661366753761376504989868708517606384083154304461969273275830610219040969789346025238309822979960639114355620422482623422340543371010954229868063756230856325574556756796887492118788975157685013065251420249757604628532971539963036160363104212881869571952972889046320884678116163250285753784710378067202983637470169564609914026435149485363189624996246262741074720250036626196262002987944996315239530917416841340677869547601052573624461220763912636537816717675195715202551765962560737420051802364194364015747983224665375439215408933712814532325533564267871245284244008998804076122416672218132958642903310743388936131877015605220376218024101516255286043457592171079021573179806685807682132468011677881956726215143555837969755326878978558243624008470078124846338735554702215403984461924329922445022949275927167187904244361444270900721317235484024498680721821315469723473935699539160163169131499168067350393526072297726933514664321321837573527886433741540923549053964107900406317781786085839191492312740537938721650635275710074300937718884991148942119549042471105378693854249019574609125643222627080621799895018544799412911254302339013977606585075165447714185095344760364614026011536054171364507132376945089607236349148194979027796008521626684460560795360489315538777509112163500628570344701351645344374855787333365889522828081220297595902642814270739820873237555139620791608848575090610464352122620372591757680394537146479876649488219159751594558329980755914861675628436935097509677023438197942034239235789174340687335499827635063406684432805351385437887275835791838247841810666362516119110378765661648284957263921692768043596720443675491284212714502949694249950617709836547874211112058033357583172624118066449464902606426695571808036918645272329940272639263565196931992728257726371016447871869283632155476495786996903049957678647136109785497244008272236761605905023640603126087032134653611552102341466793666973131890819042610909938142857766429086709169166909707362616143827830168696391877336138842054630666193262751578196397246706901660223150724158448681992984951212737861569069292685883906692570742410861846305706565209552918505028796209592837887992082983650862074883800217136339001473812089048290847597001653520759921963744345502519817819954795778882758929949152465777454170230740024339712279894094722364919314345513071481504772008431384949142423411818287152799024200824730761442810664088589279461282492372807611245363215485901422201341343671882236766095993867964883489092093134834605443280463658701544861878024058472783299982258508944223505873452729521783843062349168119052835070091599632600064077802905597080682713697434527362167938772892826792984460154827380052314515200448283699005899443604481390549896353805205920619502715401347891010676203026730759963495289238424680037532596495963381928215694239509575175230559667322351468584139526855927801025886760841510814107673975760814112842313992357346613873059667638792165503245696343903514858806843954347537727828467691076058537583851636047932667588170464865120959768667925340197448946498282537879136282047959663159552851557630257293175711932710793920140517639364878704229965004652565812457380950626922753107730564677477326941414341519890508593342168970087738842242034143031296400377985532130061811976674540061281021969758799254619437325304288388759479415509126217502552830841322686296955352735724145924746289951725579803611899271482488227524624825864152656550263050814367479129250978890492774811617777660529246329032071319145004282367044043366952008471587158338874011385251045055980310559656434062530479589569192840197465517924285028413282958811194195101478989746499837949117931213730595678537608591517426956058536132398819813673759488821004257072498877297014946318603285045191841392603975040095754045597520854828529712135812149379600634462843976182430382818407923773865049577124494509566621698335673941072852491609063170100608300053411517247801772939670334215939846624655635601274659504727113821670691706125898829959099619426860509312555290923470990116711519375945022156781068640705658244710747605516321063508495389903807811889413750541916422435814707798962920292875866959793765190767466780575942090054517885566435884999554218132741511512645584420155243831744802785119602776744654913343433250494232846261195240126541400186180298310637579414388657260827929424356857219384847332333140493445166919415597481951496446597345446763683204688554838070769223017297031636327515848170153621080562008195010599484421986247868547982502484021798335486436054246538994385988961902440494282891308666768253995519313524003409957767251307337439694286984249854500837297754771303694812483063503722207950785403232223597323491741573785677495305760933329057901706216655903091583418144797098855994143797679926911126386007976639598438644982292371694696258645836016693029684646801559446323846489887676504899271989259550333712439177802651655079964253309470666144216332395726838830846966982239297261221916903313462345089403250649977033588176063692661544257390299790875779290245609652592985691106545709444938210215579858004669538952747793499692217559338906148429122832302892005240378597039370773313646012344631153648593400564281401352282148515894771899686358863083342823209020433165339366092585164520488315623941862107754450474854421306109168961231959541823775818907534566970909167495607886606405178553576592869713859311886636891131916726545468291963297486374789871541140636134108738294977750826761876292521009207624347405151000827944683554055491628580324428952289056240632804301040654644367986630347018159009498452230991543553271615332453675906567433285280709348838656589488527623138353065192135512435868007411189474618027088699666971639364897896108359700505213083336809970546943001843069252095935684541585693118538020017299335021874485195766085665120363874218935942042932171742517851403514833347263268579547909497514016941857859179476591851698971276516767132821469265577844280225942141093568127442870665853519438315353565368546758420129670086781557964118712978027130078135137019258530514497168217487237070851414436977699158282722833527208847958532892271239279479898823581597310193500325784783354028832848043724135356008638770488514125717545896301991058697306564900561176723688821210721516697690264589437777672610940248497018732400152728018835842918816795687084016280549620345226529182299146574471040117606383268122218333701578791577256378860282016269188247239829738246347156342265343503507360546201877162746168119863804198494066265113323498718761385952191012750969861283366982025839440167327610283884070741810189861084137358153914358098681964766758110705583005938745627673903667240782876972822583310356338490254530011621882773541114422458350489337289131063787368844078438600157939896168696707480286305902371970938578352695911032170821856539988805352199307121797261547830906426018665154065601650747746634997539545115255239141380569146099520143527314653874357605770055706495186264743080819283187765610818520101579103277412193752048264244781192492919728527089368893680255361526022215879715258593039402904628722688956117949772511422346751996642983041090861961336364500316664232836591349832111362950742979667014557735171692337686841109869061034632342177261956004545267633744182422587323576912656128059640226223629175779771712049155896041577888338899066055276876925608652749717760631763689875277789101325206843086617140717868040118347042496156292610236088860210999183776264004253189533154749498042499248477217273074834227393141474172386660999876272986259470689877575000735910215968801048338262312144746537667491231427798837231121478056489363328559985121145932803370449122115243644589799227480060456255055604008082153837337311446018787816536517658435794927540053176411918927228319478395711468734674160419093979172724582831762097738373061535883957968013216287875173394161732266372997666653465368354717278928783630835866051683807160848435225237659135460423196869820253460865731011497625715255941032974340300570785413549578010605210391810892722319716719711057586351365872484951270407352483018311591945097822982798440447918839095761123586112346192453772704597030809876818408852157914495442377049799230133326034565215513598818287671105896830551589048860146034136370532434916231819443470574348582268163588081456471094038704664364835628435194928337897468306753695698440553786023425662735741767060673235189955051771813066109955037949906190551424790673406490007631543213886683924984465734640009303605618439746181099739134230153664587556271371209663956104352231880219523820211243231921614991651684840600636281167496787070573139159830319480657653156194983448868763189665157745777171381515194687621352120257949503497257932053529004002116927015316660908175345815736101963168986461264287512261180574056754017826812098752261564652621873769455417542042768748793335348385099026725435744274933464979614337861417508653504833082129330435084094570099311420595891631052474441039888639266053323807510024257104942466762147322582047258086639317153267091786524852425138234218328968669602387653857347186274527069348917369333742664424050134528250296750217239625384039905460479144282458933647456841908566894265345826596772432613931315709757077794666519054791162056472261838485225213387947903052283760534473230466546663011373399014315958797595940571628104057479838628640109215128811613781323869670756095558392332906499232871813142873502393641589098182382466587598210147524357563467152900224395788554775767764315602783360880237981660339761052521235965166636310175054333460417974132456285920162343527910742098551732340369044377427831669502604541925731911876626417468756590904607890403118942897109828449916672009628890633897434571812824466058784609838173974543028142823265982302462907297458664109765966071321661461818363332720860037106684912702764757762258856525306856692047359824631698112515504783915120792746760104642390470173771805098196015769673933635987543445541281029439032096835715816463749995383029550772148128092502926579887880877848352122574584287528340798392081793032768595888565864565753200244434507254563270874352686054811566731119530480459040392269813931079840088413986784678683065581341388945951414607148855086733412642383800809480217404288759258203326871708233814173036015420698252091386075063262202431257853392291834951290756500280378371653139839985114550965275315971155155239748969319448090211379430499980560379938578550805374021026091659556072791459575405757365480846746543608958699328441436285190321580401118033119063161733385664250919330102849654681510938435266683358364748638275866103208629080676686232928245460831425638585682152368878010556675626352112709982036991250614721476576202480392519513297371243523856615388309341564063707512131822893516546694322076788962785154415339993916862979073499191122627117522375831636760668214923547934925776159538825749696437744336412618218747224944965025958184972217883139579975213091693358883257355871833313827890545822116038538068855068828753518447513630141267968482244659048375100813002147235164156254569440728091360568406776969606595979510795983172870907761509708779712599465630162883930762403190527214606548049885762829602161898184571580227949162906451566021266851348801194231936845186936790137637785709592025218571505042749386512703726255697570577139790003645664028497832884835923476840657658371466005266614391481513847735447076597806907831875454620571288069408414096881568428829568691519648724108990058841286146437734396652092109579519972075133795451484845809566791481668070828167974724336785101840889826432672191212891591604342849666731302271571007236413528620679904680366387110891843446691859014563779143784043951866150547257320471311091949166739384686356548179637371300945738060610037699228088451030636136725481013505615320151301104748775125571184742249280226561828419772611968561947091071016624438202459873379704019462962347214873488675264026723928345174008408887055634233832573411902651742095865504606956051881602425186768517009501732874098309106237801943111103468918831554798390917881534470344291419613519434671602746924698521653882879771260914021339921063795339121109687573790916338608756747764858795407081858062981841230672733142243023538593890749471732410246861863490604250815545338961081083789517657290366475991250253475453964463275085423339869877918662672505222738781621566901610252362582898177090810936728879829074467983662628762352117942185102443693896602533394205329399522934661425030944627953673861102687839706577700112651206185528881441235534302789731408752864378696023532533409290134996809533462112010047672901756727979877895627330280765075632805462031337896028579544091505785619689995707309590365475666189852871159799406169848975104042979036282815730701561774495074723244825130008227472499629836148717568855004427112655232572423536703669163096253421071713523811414688590583452048249821861797903806386986975750029370937396844269605890380490835928127440930229825754408528454868256595432027594987171319636677021976194039662687734684918024762585525833768207076965663298249329300160325097298951484823292314823471466360892755004123090771677204730980423391639101830291681400055750166171377538410526442556699704935836661318795372611778098242857007663665501903796873353974006454660939321454533919246816822899374244808358724602107712931045954214607205896418528740177049936495724253710165152816973227132621306039466339021069993051374591321547094847627312280009855067185352775848071024064640419908012267345974267576618885468625243126424596597503040073027548052717733049013956907841826289208382714285435774898733990488096082796101263868277143909602489982827164130666686304343484077201381284724351202917868506884784478005013686463817393396386577559604151274466113867936099689779716824806252956984052591280847965840705692797940366030104131749455184506799048193173351815506808522425088904962384060620774404727460547660026854895209057329652551783075851695211816204655702804098516053362126840948232346729923728229388577115516991290663352466382952737712665614582110428589562643643200374739158359711054888397759680111143068572151937422019981100411243179647879617439854932668414488091439086102772828835159389767529065772191106291412747105835002715244304530955895854552535054536239953191230730209098390858906670649266647549374196889625522863616201973678171120493515491702441515948453797381331481569443989009108716955783079581018125481633667532093944250483176649797470891435056836917780955657951064918139853637333076433898283586192839700140296881716481498283764272350046624979878952604049415745085926023419717570527254943429662306979731736430412867249676954444535080544428389050486602453381773757953528095446703841272650904456778229502354399029174522084695165398850726353471053347404348135853309951171771434322331142088441036643872912383193686376077922186129983928640022763372999035039212612956998825127031402419998649155135428208899862518364104542076406335478847008529108047600443912332276881119578276851318379005606237538707837437015172686681438702198764615745576904546537988455068418291911437190387646553964251595913224655608948658828508331111127387571200870184987300073891819473235405167283359620597727728664961928494912253749167629500587229530620419013068975139220786521909895412501363538294468310716759336174595309893986435620728752980640987763095117833532927110346966030271623664109231033690743794824792666217745668305123617223555611590696711116837914304837333926966656862402377560042674593975894756996281120692872339556283747114427871501218581611029046703462010865194288500529651951741856273307794149588270193555190903748054455930268521810780171680959532311820752774704829348999547297355710677288491630515324843699908211879973254507144397417823767571734894759926652768064064306878607254225958537403543548176863614826312172211477645915658778211888566398195219927203396008813520604454826943602218927524732287709480541841993499930932497557067567817722841320627473415935328119035982816471003949355647658055048770983276570587551181527453049200197553679949710140248899654282626639312143807565762753354778943907520965043060796534694286614278644243338182170272684274781640930674031594326806196432767518351175023864607868180357974057983932316482353070078029234596774673313274116529599251122262296704391350910096791084609313324608183742155040443550136298164357872847653470262036505591183242470424156968806466178695644799231595673020104779546394446613442355679750909239751938681598396996878248698582321286555212090375442035246494371721693271791708146762239249327752769786279563347214994741994893030072783793647858921995374474791437884022758521108680227816012476365027970559900948326693998415464104830561747906057572568115996288110833393274499273951184622000118666323427964858477588042474500349449791586237811370701084020175256831618021040422163375576679076533228770549099093808824413571129100550025092812249002709423123687519765681880632702212840543019959711868787065798267904393927917345012525572816958263326328319718463976601167046538733467183947430312902114692850976211675413143637268430617598958134296892009271204512279769716461096773005899660898167906105295514841683082077721960402191225286981663401617524027183221936312797398359416632550204107397983196452209479711815757599217907238285547066657208382191927151729139574928615079636106146650165478205712808883243487386299207484736795027972561073649820817719308589981864776796732361321813192524579473655008165884419382901099885714055325290123299420044985234345381429865902493247417114913437291057335690740643153506639986303366862331417825814091325111424760135666975478900618897810633416630944476263393136429215797645121132183762832699676278659546235980709584121813829824091691439965031693410673363439732500308936210094833149538711913330026616623868702637598689546271768930565617361894095149954167553442153645064511705742944748368860422126703668482014675704214216731091426204491525999343340487894873669926117781714450571548881946182390759209662253351027932951583145797302583922246939148169143799456591389638425673324369835311690631295672105411692944946046336652217228577266958290888776247998438431577947925498530733343161752348746158052686091250274441203598116340742535909732803921592544721011689729759946700214783031740348833829994498299001433041748449083493872797018062404038380064458876859576765718076187771318059798755213815312975449844643762981734236474860094621920089384217671632357772620699520529140026759436855550924766181483415668297897260317625286498262684739835072332243294171241722033718867323364523865589088913363645015678523000125214100993002129851938352245461307735394974966714052252746406069845549384253342889166100203942778324436759537059490234386261091034681698414844264995003173732180305738360386245947873486256978984505150025740593211227710461060737494574212712838650252520329937930440073669390667902204803408039604678278979845954601362896049929063877284046403448188579324914572491437174779668048899296195468820599623041927888336268927448334041702575263597180159313158246637223232218953316533282974932756324301994223784397595930290641623362932943879528703131851858069691330203241367704012779422501743620337470521566619215993856892622299428220102902418627780678493901167595244507219636687152441015241158078696119998137646518914155175917098123239217948574544611817796524727363885063973545364245927357609537942170431579300975114672727634793473037946975399847695542058399176682817681178645089930324311867098872950809343248396725274620316022648616640295691750849020810333820940023526301741919216752147040865547096127465882530192728280484620186885755854202465158761640804641659839584677893306081200956834139052190449933884819993984362893914146048428471398471951282422705914693576112274773879704062486560752706379942148125426340634029327947595904334918405510331529166135464125253085347892199658251045124430432513736207652501373312379544086442321298407254684799552586652085453174401608356282411609537542236871104404123366515788939965927069229058711721032278030101073288749046432000624595549475925180469469791507562228634048178792426516860073883535853687050840121262539862876095340305812749958390560314471710827965767446312674551341022608117321107752780116720076439117280068569441870296120917493810378451833910922852990492479237461160630697011686637206241623196586940565669322934013369975869843004808589369856947065628747024337988738396049176751932850360513085504654964389494236501735922175893094723204252919909801928794593417981425085935433362391970093902370781768874981838139214436081828938925325142827579029463306161607634653229552418209716545942481864958592876936815174857069043349620469165753597816633916926475204802849619711948180281436475609328647804848603902290750647491303214030683024047745334801202791779333768026310129923107797244456532320477241559123627510465180273739955816405518394485868689396801258315654493995033626413636595079214710763040861425416216374007430107254070939134824008783635109380161058516375144976122693226056113008300322465980247451785699474898466793614037039992132234680768036827360294621033916776429612290730272498819582975147423658923819138332632684777593311100857049740435706332731648793779307435493384031219597903319685135303879208253576839307846144260607336353473808951437534227348684597303526624405252200291442238858509664668242849880560097222697701227396089385704889499124014186714784372303235678194674491522297088602490188564457051592604168990081005812476847633769108830797896445513192744099512602588620748354437972166389176942137979801166584745214783923137206124408036670457505829927513995972345829936311025948539849861815272957129274566349577609105151796472793939115632326505003396594343258522891898117714596465745681808349006137910622519398120928694514382358215258201249230658913924056240937850895380891617924753153780817013023503496206436621614848565059945216852439186204956441132827887924250017456229463309396474451131406995135223415584348142615255917271787765301362794532198190992331122301629090438856059165419688754888440068391156739386756201650768417994476693485236765307222530005600634799996362548828779887262499097985891925950730177510838520251495080913459557403767289487592448239714255549577186062071910998196187030933661777253970864306492608731462632330319567007285021897948130446704833661957914120212855870727924735981004038051329311605301744313069922649793170679520234281018789426767018822377285262818674522773337536866422347742476909166396069729303891375624062679921257376407279858858437430342351479876409484875123704557785258312281048380374969884576531832159215728638090424304437663748643774153041466702578912136047947568462324593696137880565316067364530221739266692593508455912064630536723902576650113047149500056079093546657395516426389392262052177952388973274424468638718375631644145348575275239270612370727230285212414108583805759080034272343711541662361531005852072558546569965834766959057476398655728577372305042386958904918302960312962119745763298332159874918399625839488928936244710833128155319328132273003696889705480065984488653477990097723232435973336824539183989642173201498843312081789394133666986311596444364552014691518680349760785244592860971007599880342203413572614994226255063643362311244482205861395143725477145179754333095146631338814433172012529028245778391037193368399290832904185606753084726317756606775847382901925097920785720198903476367778275938741591437938734604414878753553966269135845183486213065943136419416775667765465144788469440746945227419192241037749908873685799144919304618695763049955770399055452490077733408407417477599913642242650163752236422996243741306944720514598708675434581036314257446162299698361646610278115906995728341277460573745652496863104390770719137893295774279361421027743646184299665161163070182439991674402292130893764048110518650845751899363184778858065078726823996672481100275115120683019903855843732505139483485778485337616697464879435777665269953837807922353832026707925715624852739258386662362457195171466007126423901045012452578177659705634023011529050620130030137888023827738445749746967066530034136241746387290679091948127156500499791568712802820177868414835921866995163814615627003188152943349103171143354443475666168042872781947532371612332699834312687748233122153199646945298327286377957630692825833003035026826176559365072371701157541771703254248979988417837460275253378359446515606699049525274109066734027264174096197894181615237546731504585330909228041987628440525773419083187464876185675773179626277486661906273045704632268185339711504522786800712949191028244218876526951798189003211953530804387708739402157778826826865476399983555060972850918644650558767301712292995948891140488920885784937197443761441860392695447272054340862989922738191080214460641278455316053424080085926020005439345982231400429750670663902465904071552420749701621119062504411224843146886495731587777968622766299379294754931310763327647976025536545895133471488427813966267163889543555729356182690127327513680280764380393033963613628699350562265921811648604133196709633294110661473692239849757572113357180453222748104994918919546613450997289345857056275356873623805667964695552653419916951008535817900315298849250512961434966540090419996680852863818953736382253915929214985787542306461128400257297113866564724761183470276181729203153899760708759842032459106161904757807681484097566091186124283574783421442529837915941454783304762161128944892537763470110232341653166239673057809183275745850644983811235922473648419466837514758003154905711311365425241509899769685166739434208762159104726897566059246859178505250228050539068271575103845567151785412198029954053057865530721985718003096401543329221340941357531692908897849079975063500846096816908729009119291484750312387516522903958782177409817854672771366369326441378030163939796460776478909367636078967346385513574419442255787990563196864099573173338999632010249245632268126328985995612363583422752793116478023292258233180286675725819315189669161862122269721025512213331583937582754397234416041828627248541972438346574767814186611127618276287806706858180486426317461377741064912015581095373419504455969485102729709309785511465377269021796716650094825436420857062966241406503853247921483273792152383245749154728738021973057821804327397682103998342092481797695435057049228239205452704931464330627277236429961257619948656327804776816851028125231348680904229564495178297672313346258336658026590837631392127640466125968978498589445778958276276347470840855921420313169620117003151349200228993456684415065957663252326810389033676970729884434759095146741065995799004339016026772209445161762056859800844840813349832347243416564916032968024774649984942748197447038212567563404424088140676762779586893200143426896621803999699945501420585109640618507764309032234023858900600867113014784280780658812721767555052734962062659282990944012384310804895099130676443851255800735036020088785746998577685656039124358840701311689472209721940065776349603980293932806364937210260331412444805694817556271488635923184709959108323006823818317376972680786256847239456281501423568693938046577787633171928604594704570618060163152834993606306197048182183367721028577552605670664808903249963460256834092768095899020075249102710203063764244419293078427102268833459688414764017335523387770693446608165483940958764019870176046998894551676514145556701837984340406273579357059508867395971681243566294016456188686731366316580331864600936813972771452372801358392764724007793022794553386853949278333938380325712106182876473932791592603886533371243542613241632234823997016476982602433602251441269513414914231104174109633687143260470197170279422459333119117717497170202691976272333249185823787105986218331707849404030934584700873407876620385349961851814096141203229976521676833532561145826141137108335975116325724912824217202536662039619350162752637468089585882976825584909259360908118495522427893377831363801027567193032789986901894344407125690603688522112496865330779679582326529749169947751742264330505648238027978255144799309047581371479368864742804260752398450498258839363325575131072349643810956721782529609593891330643520227558345718322730352112792265192527337452081532984359235051237993195448022684654524798637620367916987771812559765486635674241784634806489576579272352318584184505224458618513959653389452613182236596264452503464763084066293929718337974199356183218740756422645111093531063751802328423435522065901011973443687649557896525886745741721532605932829078260646680355120416646723791446951284265459376985437923923666896949317612189913342812847610614600278738180866699097164019264118494607540382927037654311849997295589753503343133500306945567148190553253382863364130628698822934945550975703846487012324802102739324928771457895201589310922948986303317263751912023943226734311056764243077995511862784011849165934549892519364853775220556101098751926727765272628739542831992874897522740308128904287608837658186261938793113520105787626848427522512746405879395151264507912271578898366202972088927397459111282149395303012545353065425511868651165058310596558019819364737747271486849926650455132057693067766772013804440822236488249635098382632776376480598668380047750495891917354520335608222250925178687662254203394674842067060566835990970503167177942960771178312371949691684586883840224376589077040240970707172470254836449972141482848046380742349840213920204707088203209504221131138052777628245917504242310321682346356910856678327307708568653033708884536180082602199746223878628629817729108452408223629072540888975664002538804678530403946144717084111571495403552155381034963007137052370463582327723903561467510149036517545061327135343969984499847484567803630141142932894259118174291207152814708752294878295469170211433245151912507544485185654222196358468589726305301607623689702728480695739424905828401206134616692974252944496995982444775802227479966478846198844383777948171265475938331836064487754965771011646313245837711015222716355589895824961256641194165197910730779834687025366594043544567932788314019988002887481311543351735456729167976769257418353907849718477210691987857063259733902256726700255087966029531730423418038401375624657766065882954724198258035108259262417244845268698040137541723307782703339089099502782529868600431049445955509248126425862976402198427346088784400506362873432994319789322400503034155952552581470757064805660603619327925247578550947544250741365205136840064891722045954719958017499604437162498671259933284433918547493448319150976499557938373516573698609565814812478791950564607477906391229783632710248740918310552187303507583455790403563459769523497113191708847234751055972819598976886882758778896104700548746409475450037103962368967589755532480809880873536434311045901204374398527386619530833738217919635934282034453236958006856153210933870999400042872597239718770690877424363908069536641681753980202232729056672497378578008761099128115899667256254399558820426521376226211722829977602911648155103683741325458615441198997647956790344964438366181731723867676446985720631278128040126944857675324823398439757832804499765115779607183151320808095226877873498571331825376100247483921983527499715894557707076838838809954324360224091783919935512977317052731528372837612456314678525687438055029446465472202946961504391860204090435435970415376276774725215832542296315675152867583757772905041780344511630380560538404070318397792107781108414723692601096943600902607744294391166054628302615804471834051826317882088081862211061511429595540375858080613460678409777356598255186194513971753266810060800056137887261809050986810124414258704190487396388585098959791686040684469046102211349266223122666678166371266541931954398045311391381245459327729550709994629210067517380411427699362505922399202749420149431866806361515415127070090966457958590362376044350318413265505242618742939504214450091874838971004272640896647000750162338754108232576120991410026678851332483617656746368388748767034433777024401462305856440896969123666697556633414889865801812092603132756177030488789319819307145960468399367389245815496718880475590900738018104774800213329587191914109291545687020245408685535399209977538716183939746207361593385858234897384826449400935324780962864237615267471613793029867054102357142517315582589136908055748257082762418047480505880173472279553897840811995821030213851909630477184835500020813800918245190296323424273855333830383046915272509751565296756935161671478491856988479086593091422900136229755237097839090067977853067582537408989192512502516747096322560202981479342367741781731492691992772810518939772224758597372451151336207701681429256574446600477476381678383258570339543695685830996141631702976738668304180536498531680334637517639191736682125012020627080607330193341986755220112731923059198075188359344006744484173735679379355697457410536076035187242056387248829726051203411209522153526956579315802685692051224052331423425290746203607158148175618037381058231959726881318216491399835576900050605016414729556312190865681023204849692222176521222775799354841437796427362032794152555126319711362844389296598507200610336442296667129802171209320249588510337756752715844735400558296377944067302718681437825087500141481474442701229556271061784595788393952453940150345893533036813014974094503181724211972488460259204418071282712658635931681227809834252378526981525549661727573582513615826942426932516030164858173976238765657217226886771410194252191375335323908067222722437343286195378416758048189684228531225669486224396132035249901741540824886450480640817425612398325048792463211772540765695145331434810546768241661627646392307582461866588649498977368798569097742596144024526491639509220336216394424838749345098783656564179994688443022670410546389703274183792288603205566545288744044256669857002184042742507542617865044342312428844568774829931241076488779878182464850078256467724761308981638887153862459786618029673141795674571678765404997549401998662185705680783295562902593286207019303462749078122910343842123216763405542321842362629800960562305261121707599263749687835811795066149471630398178864462213013162779379723600351681661196002645697470007735183174922115594660480780696200066114895071894792853081497686182131846342392958663622047477339176750814937924387053363369974062100632088362951041088668171284045306841945625855938894932427699432336082556895619742606447456443771632263883242236843267301581039605073048833952754936857429213759131984465283659724434024652777512498515821735814328322723226940513765289457318347514419303795085862710263241720174183414185866301083864769358161858033901082463326017435647939146083278942732028321423883083228801929391423835658704188741108031399612048321987673074095185746752598243692823021270255010131299043005135047799763684472414532494197500868677844462771868972428492589844629656363607074866508603574118031329224847712025022902678776256738067604324229477477377700859560249253895731889341961362149857619544860210825199087280799140985459102456636238009115515350218259888855276649194946145152078795168889795831744078802561358515191430296439509041667102348621867915064004274365494191119889773700044623960989971474696326325032818914491894159042181433330855098088522698758538895455192617782691839824289059946340507474514855365113135478487904678578203705777324520177186505027272934580964995130856183779737645887395563728393003115769919402479465853258838673126754321852230774869709230561145802830412036269150621777203903734986845037140244346340521415772351220955756264759445661398073661125547231245167902087107727047261092114586781718350897112263910973708400891953484762855851614444778190130907972860468124662658227110589454517419605591275719453358782403702800739503427230878113583872788931348805529944650880466461066312494869399277059980811231657568089111833913658348617547192181551163948827155699186682493599036945235271609340268130359204929314477074172333323476900060330552867736709186209801541005831899638411820089339011822694532637779358541361346633556529066378500272585073493838893393549768824115601907346233765981260436457105105123365378748952843656208686742472833436067102852863426025539350982525763720736658331664641729120294417301454625236759247129028348586979364875085789254303095849600009328299324576013751225993707779323154180709540576557591304372392041479346157823643594962292665154180017246829158390544015460478589894823093286217573836343118292534714084044484248653722492063887547966560115812012001444491373778754847765997218439296775850847097239339505019613293925497011927569894172236470108113324162889135009785471266191041240299373193691996509005172760291432331486123281936418678562343167800194726507754470011616808809935087700000789678858574104744699269347806339583900091126697087833480787385377302929985295980171094413534311970410006348244320527246414830487359180696285145887735208567144411565607204951163973535341880179809380108059398457717286509058108044128932691690220261626316290606068242217690851008677019950847838547151243868071376956467791650682651163697859974202503446317334886816272569913758910114659323472426253203603914008632507833755282220904112633970214546529918167838703643291650366368599842328282973696652405088312956186839785153989954284724838341292122556762251941679943411971911658662465022209787358718645241831309596482849805862601788743880264944598336139083873197313796754521448947883437390395781859160873549799254392194089899536923591912784889418432652443640420821548141623450488660662671357366756067957456848388200484243169542022900655851344754145395042683855652472329623474895056713298378389131153949738098210808699474361328842547286193834068129790844782269348596654246903490380086015702242302303664247194347602014819396540759668229371776455393439481253865945868512288536164352647779068657045503692921024893343089570215147593679281547596394404489519293631696768215772094807189600281331570680018209524632440154051393580137348379307324984872243435707300160359187430691809966920310080186865530008630860772254638343880760560292973928299432871914223435103369650632864092656263907798728892293537009690650655536034822180345789500754814340325909142112863451781276174658989429462091023875205534596829132740277109461755703390589499106443884224560400661118361283136087359793731367783410285912041477934092734146956557054014811921553308691371032016172651408072749043409230027022761638970663778968116692809530040472459054771485284209090306690507914763146348837791921374388846061581288818356761615797510475597292429314012566793426678418211926670723436194759783903135210423276004747974441329355672322313197971074750316983011220929041372384617885244232718000153716409033002684613708523402996523430315222289222277893498176490676642336699216179604033218279169206631266644204107422637700292016206728774885107724098464155970629652547083974386175041470674231148754107314819641391925349430883330197869563352756046269837940551237489187882517466098708110255112882754773536333381287809375254923495303802801092013952120786560666976536974424798788172301899392318015319566814081284625939115048420870708461476155715930442416975176612946819934315817702158070241995904128951120493471832621846503064858180165849791492067085836808066330992815375813858238008774870306490684060944619621663733089931018014232815943131859729753718679944562452860185193819941181638047027638792005856525742339138690834196969561033017828360962485251059035943285229714934383575742059702205498759996151582300111324724694887988196726815494470081254860198770303357478497095001923109486606091046171975756870168467463954242948178589703843110727966064596445823997580665751667000906488988658072225177289940162704246998991870194896440320043615698530974099403262661716079865062193987608551058902643429343084065340867207617382335547752957919853959502837745487508794297950530925579549697163171678433617464279735933967380906640012180940365719058897525855447440916800774652509212250895645279018409627139373572598233643141846189298340225529307172116623292483987791994736218703844712219405193255126246905154933936404947967929427369440495984777405976184044948920519003879063366366389555813077144651953657906132778381900668798407655847041515515572466514784537323765122286060404322303408446639797932368335235952940829103216740253514215869243768350565506958949580340219337459898966575302779541835283545553569718314704064405450362235974652057926403795849660138502980533869252893320974764181777090727983323175643695400103079779755032197779931071082203854154946984881859289901578017754908826494274296099574830499188158308748539220297334618810893046561191738555934015393183419195430794134737149404924898862932300739614672772976796168672969280454771155813510672539299431035478456187446996686328394666154194936855485166247028648376487843232134265078040410374218466499926150057624038189488740089452098735452631856041020728367239912179953473530264462829965672194795545536356653073900706260274875138864074236399390450449491356634483132117405266491440086751769515125123625154723886004359812787246782626823186715974537891189227295235462830555632878751058897230646329293681829352389458377032151110128525616992454524726216318236252983917188566317662694052010593646825236413795762659637590550724996360449585418131723672142443013812758779006231866257415975961877305331392283476985582120651106106336749288496571083549444510180133506473579587001409277942970308398058368283432227496627483303746394782089148999580412171473933392012959376569762391755394148737741966629718291166158431330728220133212039868658098256342007338930818704142906185177524478661456983868711884276016148424665161807284890564944067070006641673732178952016070956245086513739695468026594460666767768860513147050412659182063331274458294662360898017301888931156961541174047170337335255375372858343548956076564086098310716365756488097025008705572247913662017289709422761419475479146924159153884705936298749480483232543733481496723684484087124855626767387418270617946467296352145966012691987709678023349622556539432637114517500870565490451492928344952010865325301837485521641720931277532611934264028018162118648022624146681964123495993064938032700308844536306251420724960428292967487170659013719944830720492079473827140992510737472948321588123185537329550655682319519984062595656299981204479742730798079444139566547214815964054497114407792999386065899317531887830278291438745920148151251308704931361929630970495654344671143610270970321408556429649037527888413146798027765359457223390020416381180696402109048729468742887532502881759001097823546766124296597128337702573764917947398801963623895190098612442901201416714263818935528040619863482965812514166967104514012891726955993705001761349357502339149452315796081696465837264235986536608701384348017898731230284026598559681265084699426454068268708990592401132450975528018729717158111487267280541610914541542445128933743809070775759647199060712180374165976938778066848720666444306269991513749247552320451081623342653575770166143170985515961592787309429502043210199494531087195518686842350197207355958418578055668925074257481828845530351974588339534049445562949349167185203013557700924920388409300421484015334009078377564518803902921517261676396520219792969081872987110214778436583422952975523929182510671680553292198081636994688403708953421865829015458302361435634804937166993204432481408932011029284180037280116480461914245500254904963975984147466669586850628426641492773392408659837072350022180609824600506217929302024513667917152265639283120149372860463307699436436157370224089712637776942751371080889880628248799910536869227090318322914618895974100167963465387771940518161360287306539662501880479200591710242620744641015552875322832283786693456573254873036935268223865325612042168664790994013439091739766636974793135548674210112567913451900100800509890553346722628916578153529107128934748099289045170165232384648804741390553775694470916209197551487145244293386090882546807206321982595254779393678778124224453977572820293104001271164447963556500005591418806122966669676793042867256760075807068578492886730158283499788808881398903011821120556928688012089153975328914149917068626032437365105005736625566335821179211500400221032228558008081972974321988058782594272987886294267257112086265999155963563828166073259429862396955445204560785296258646568348307715825994650206635086318006164846410484536700591402683899076063961206200043151301031288491830971663937101522626033171196791330611074413702308785481007129438836416472911548691268127204600981709872230641206737913235335475901037590748687623811134683999687531392111706674124388791391353463677420945386526557618575172875234258219717723713509621768688000416954722960077259074526370591947341909503649935894596112203407169660957194549514385516793154505146955687954584434644309431367450085746391736597935863414744570233308482113713585884308680625818842551230477337625848296329439220511333880881302917987267800627178227287463253440413552412530475673148048535204126832950912693126696859582596080254669985895143824945622384697624291886897033539198240955247044941101692461407497170289813895963866413944659076706930799156541268250520813416295462619605521573824024400665435896804632080522124595533974339046978015564888265516937155160050518557645330051544311598758962650850117597102921992470686324960383736028845803919567507211654904797185281852850660835942979204495904997052829674881279988435718182256352415438631260688559364763170320412976268661250991020868840849678905662796935601173610812725427048479265171645965882158097129596165750167600550549572431289542369610128945413413495817388090040042627119026171410435228421643750194505790993362644673391146325860625055248662112517908001373688848804397467519764163285425596466234225609264902200964434522191059694831281713023500774152819363669222808455205533101469633004792594367291494900173969960033727616526657533605758262537151581104979588311947971953793296295156702368931909155666711077936602871536200924669625172243245296969972810437829451334225557553973457833338523219987531656654159248068620914250090699355236588374385596365289521245980643192487193837343227217057316877741566329216697324890105584925587433419728656058682428420039386464349665771961006941115696067632856567629423191213322027466176568460622542894101228225098315709760552377348911033925622821136099231518521433497764636242074747631124863892222477611768070681403481366074945244827011941008616782792006404947279360840114467751408952316633190209969278814164199514546130791179210483407089427413597982039803317322145891899532084324635782202164414567667042506835987459509510294639315982133080083307434934574349132213552645960324332185723178350220249099120054200487580327161231989343977344625196169225416083186141649133001857097698448652362499371181647571785277275859955248270673246829619780832955497523918857911434418869153977024512797047114921600927513298530934819359137113070140354420561503534123133587338374121945877164602342452230691200644608644665140128328131277120540948023741385829153724965542998367586643018312275484328319771347949579238538828180690654095251678040866512858326388541440780670213815444793595736128131768068410667832666581785955244813692526743705787902786435085754994661835308874213733075130270576495240728621626396998055416830542736666129814667754232326155971047887819500766598937453296209573747081343922668675025101913303482232279439970664165802847488904445787250775053844049536380285251131993038381996086946655112324645028191529610311981457715074720350908385192680058242520053624729183493002328819574360338667828443412942219292226706459514953837263939696769170305468458128896064182546163372606683013899905344471730430550783339156989059251596013297522128205061068746558579497835556841668243653556428485124133367150728596320621025296538580790421684721291751452926018556675884784190547234942822143891522130341782057719414105749457541858453606830443406007222752033264996533898330818156640777311228223270965224378608651211727410868890349705129824964276002538396789178537593433787616909381252644186242049415848635028002301382674491213521098993971053247885213673915061853235786990157708042367301233430265702393260861431675633441819921084344898579028704871610315308094423537999410170957683027884180372555774600262886118709959168163261332619903815161303354143288556705100680350695996730263537752461984570566866515069792122759391155650705302810375455502868704049140139355286876761760940337555306483669703380388338979983671720150627325695496298902615915959063293819725983908098644831174599600091066829736056120197910473413540286779603424051449028337843415155404824979454072471734714945326314055450878984128828898254343520357903880673788877349263626641526686859070559488284719621774339809856057908573677050346378067266064074143412184145602548933637397942144693136158741795432148636014539534875960005309291196724940900427757710737470726664098401638746502288269168353479768960999983233354578857123393683989613042074876676414803251486929337032525412258801236654549544960618387382352387012005703952223211655486920413929474436604801932496728158315273177961139591946967259428282948434186329012766856634563685099083675016659188970396240673610320207063970662563707853225063784922343423063987049128661118579899737329778896509918578809096630409978120915575182162833719861257769725143779971557532082138468949910760938388143958839663064623009256988256749445410085111528747960090129783808008170936539896113326323724404487161234667163759068364295075505179105371327234756578728869687775243174781097160621152830555118489150156379236129437584682198770601366106209321592465038783209618047662269390323460533523891941787713953282949505880188150233320954784641589485428619573933517222200153826357928254737738054311813991230895654097664313987813602445759455565088717526564221282671025296422646419683928199055431584980751117392623307436541736945886917556532121330392390658712128646354958557324015492832090116252098700304071350430655989420391613175539596485512815827661529583628689561809082215702995958305058926176237176089762859292113812089746322400381420219273524852185956504425605515732172139728932662016594871706133375551681319530215660537453598614136382864647207271036979406898602238897525095163295612153842460174209950638968306762620630215861129909172390026399355064146562263409780574487775738226813283516776101417551160964983942474647128877965088401108066605944685267402352989675455673730563722920613844114387232981962284181185701705102228515896367411049768349583675187895318630192736774756593654124184496200340838292630654616366011728284970215606987669453710469420932304084246471511618642271216039235995805475932548731393069261062432604075908373558500688715151296304196715489277834348363797573590217523257798795871940808960032297762966413453001136657785986537470391785523290553786275378905717046484159200905803954868286752135211095330427635925522847944389786966293523744914672210956878457484696195601876119885391419098115744196594289636456040981483400766627747288185318771601931187009056957168018168647953513384225683629239389405818138108840533741197573871525680451038015410270898092094159255226054428490819286668746253581889844686484962894814927358444377065432503390957312864789049675824030630000046506653052991270339365838297372498212859840031058848466297707285731579768056730657306547878987507840657225288232771408944453852269369319960991047529332258508644314885380235130492635083901467071534003125869815905236814685910477407223444962915163431387358956647827678515380531400439561614590479628898291510977668012138785161153893060915811927952637072954888645997181040637067687161195961852949181547157497122378218783658531646938308837055985355853247078629550857853177221135381939387507103241688754314089907923615472470293693985432850278816079235881518659515641329519736651551240331427215602572190186257858145648515458193185431241902098811812196359070514440988725096954348114889119234052493095284255662850824869370816593147295494421912490368227560611575233614745170551064497175317496159095374914481257084980563582012236364185481427512055388134692617859839004685374671321868169510831204805160244834903654069826111523660176925761027189863103976868539384038419296557840970777183730743394892291714660822339577701646993123715141721214358620540310481884649617875539363778659640321778903387591193835321069455159577627097905472997648385356897728090861733548538157274283228926491122224347953970695291132481916963016789479386081183875248200582089144347699242609683761272712273464204851763503984622456395664681299814777608477031181995480711626320319498394214471963774227368958987742067726032076817817455522670260545375846374662891487749706417172296830212964014353039583242795959365682845140007513944180708303293627728030175423376402840140539545249787109506022055690966967739129715671289502987233002111711341644424136498043455830527275708723130429751767953305258857903387638229355088494151871261111780103245182984702774825691345269007490244455388285002503519569029475792197191167194383261858177430552853947281883237948123436724734360534517312164990090139072858716138276748396972638130490966517211059199480685344385265712109178355462415836335946868503244771767546528396571965286101315269962697878409397330287578757195870319986814034887266687182151443093104774973502283019154547666053700203107382873606336756158087625376166092596908252428488141890283725498538650524281961439779259629487592361653917545708228152145471369604174819067227215440299064515353402575506519142765362180482033034812485772885042284455793123363515386816105774422551701818776581674109985519037909024560236820433989162604487202223227654501109041439803652133000733590806663912955138341921914490772352003484027641956680173245926926169435724534296547004856845949057081153669797643278724106199070419753283785823442162011310898053802860942170698424571414301644363222566894306965252279470909688995007835054316323460764528032926000952964642426098684006833885636212961404974027197205561152203030864526916429743986740717902829784494249921357957666940759735548465318637415397629549816628121109183244778472350428448979923447575013315974355166550092924759235119287547960194167495979746640899583855211394424169585760340602489441092716692174406176972132852521236421979516260072247161350245024462783390776231556065779050141225422091858263079357079914411844408089365879372414284907081279066864656475314915821255062196422588787769738428445697503134910753625507142668584904485617493219733484375688966624521359363342147323455723018476468906509234247115966869880571720463686726204780599507354384940108575605488143614158672208123757572882079465020977511767974929987175343830418917649855197268219875925498126228019638729513324710158996127122227080173115193375941398983803038779735733160106040340965957925746264464585625286055537058278586871756565465094702570142550757473450105609212257740997155773550858047849929530994497445357413788876075036289216811071616988805488661169260926970101286710453831418408392297919842651058082167404265502996877345583944294218696614738927881778733352376205473688751712633784888685769638587057929248427475075101783110542533691000545557703850228558341827670032817586219070465824529459379591448390494107147868610120980564903498596267591027365037746577836305906226857576499636974201435768525996944039544460909414417807462754008575457940134554196780736145537027842419858220393289904026803150593808279034948662190752939694033803210824297094313862329538630659486772183039148166375168082546753814855113600825967078297584432840203371582758044253302619996746534436925814566551894691942564867695817588223360560967799197367115302333671361707983904598869304410806823566688308448306246001861733760505548032679020131057700914312246492436301324532808691937972313473379038482051330427904102478188515576958124238096611874022768510575646045803898910088293748883614281136669943305526348492352730647498152050702813725783909985437150380914971763928447017425241128062019035730422854475147129598454953500190726469077078179712721985729300676806583007782534600493321789061765419250773194458927866881042352418309353572750251139066667290973429434414520200367182930801279319751473719899251690619721110496796336863077606137974728562251312705133673281884596520458422416744024115353821232691909558364609181455320603685602696402539384739398732557876751637306341759579725749985278364269840530953580605648595384086885873865714467681021730077990426175049491172182848975676034408123038003677953225530709558859496666712387019204116712999636289503325854973952645129241655903430239437933282663111959223298276173460247128214320749151225646057689837546161251127407471754796463653696342446792869242179138618483606347123663952226781739705284082883019877368247926505079522393679999144234195910727098896858331510461607315510741995097599843485103520163928851449390015345735415275199063491600621769360313471233519315233951296612812990082176135417813273998668376729032077332932573953282128743973551706523416261133812794343714095950975336529272284087731502024682396138691821035616634804459814498433782429743374908501015219052743992738024713151725097979272133926149764796224479929561300310502925615549146556758535045966081172926675770436077165334704778182681555078564022468713274282443403261625408704733161302852596176478601628589408362395958924220311969527922041011901821472270549811296028159470052404340975468830266262089598472218606232669554871084292044957838968047914566390780487350984760235962188018548526660509059901496396164058013641828066711709938634143838014893870582441624482292713070197301249310639696231106773652460118008136467210002876279180658327345769277708269837914133618459908345826039104747174802386939852256935171574576210279793810955458539863760033958862920466344967576810908546486999268138800441387037910340462343998993760656590145692000508758549720578931079422436117239322850376873506436236481389820234536989616149127847406359364315281744251435902636656497370228611565925982690467905139013902962073308055820385484357620973648783319261650733320894688233621459673817119312247109966292052093084162824899333138148231474961494146358794475288888711850040020869390003124325834020565433120562675112697433260338970594747696390786116072422008736085770189647023089476408500270345673184140614541216908276322077555704966170021844641940733443732032173407281267700148902155516003034607180046933830041861304792495296099153277396704713485134210723212205465233769821893415074674035508967031269175707095319423508392372070968867310550313453494752008941138575673988603508121149057557955193015870331445899928663601894498986174768731254788133869267799156648617645016633067055293709310382607323125797746747887091098006580028679985884956375269305043062180765241711254693828557087596637354174128583397116381318644948776208909501901009853976697455902011681566395747274652152911363672225121845712396024898194500437012276490265404780625357961330531570293926519086398587540354341425990666316247525888905623932933987560330801470968251289969054610169008281071577167712053349940218067882470886615092461297534012026616332067509078023876358764850382243382292552859072265417082833617059786950015663164052156733803696633411153924995691507794200608942249707655579253516560469161310786369475927522246948747526630982358288228861354979212099403959943584572820427888987813087785169181775243112841540894207553985074201581868553943980640324225784003306895956943249068411921954138310728764552978751624442434311528457404803998094440906477284161165531656373657628981658342622170907894851263414155728755322518100722227550685930761729103249798330176114726579515539622749562207819318310864258235261323028851493456904198216327588105810052139458582015852346324495519343042151826488932444792743251525266394177761885588237179375591723634416699017185592489936327677114815468912363616152879573098989934452621622049876649515111335125293029792871401084534924910181751466033861349468068649467904723717400588738510010032079469486290868801119995710084746794958722191942143647236237299234911542016878200279831865650014225697259856037265093565747216337892722078867557400332077351639811835307677202133220929579612581949358561042716790001857396403048384642232853310045699093720326488079448816530989612130881675719028014658197030783687460408406586011037436293133067086331152365813553904560148224629225674972457112368180123892533584446561764752925995496797425174513883860477312473868636278489804223831649784017625689777200409286836856806133830337974464842741169252869999586328296563922286829516186999609513834274545180282855786990267854439330689967749562825975231563705888928669142601280599233612474382305397516408801625699147926042296916557595370385703860470748430356155716173097336545916406029346178044580794377611789919805003154076651247269428856202843743485264051579640653141004739467104141256242997394315680622109797697681681229561981352674260241815188130080045911329634175287540849324720840165929604317086406408696058795817077472580551815720024706351599513453607632874669813641025142596685815977176554046102770423005603448179607848908490172922519517876390795774449456262860263612910107147240660102605672314410990097720989501274098968785850368708049036058750064579265630178581823158403397407358088551615959812704449090627759757210071659525497248694608370980212420298861607454084624504551537699486316569065646869561664977742201352510264894730651526596777789888730467947736334964699066366265056797945121957224198522380351364589111519940001317915148416230899861321101374600471315379232734858589740489930434493539021670693427211380021227058654879745160565376422070754913160449594124722007286755543778134126911819729514371965182231857270179700266090994510882673352336960194057517051050269377685441762882379191501905190400384517997216438486813284272840004720088665004888190866056331962006683832506572706897778397225411789611109151682914060888628949168637811212441826060700517597650471306880726773662742373895714674321346543107734652155662706069157169507829283187257111567561378026997626334656747914867382862586669388773520433177186159215534088536661817530361676778763529151920472720390520005370445215276081200572122194435796404345109175098748189557085598030902622022760955673878141877560603724501410479379708144830499192677864325373789293860229909131553743631595113612931132353923597640754201952075829345953743066690553535454909406804809300387999963539870496178575948853402033376667311099929622062902198016611943355892421121046664644221946927433860326580304240443328421767541703864980114041464590138962024911062056384642515777004628608914258145932662271613848706309615591693823251013368132314034313434092772731642008008337335854189496646302336033720027552506850563648073375508883445611150961539799122609800137098532893368537323659169983149988488925467262643953504521463440031112123305486819146945390445530877875266163996050657289491591156835086480591407462835645057124181984589690198651922870161883469529710135373962699541761923150870961712985089638279349723796583180944993654474226477823081177008557080461029930260749372827236178102011286724274233650216911332264172862285730788149941280022957578204828722006883134461135418869754428799488147777279758197826403648377584926985480820456367000351867056441480671401455732671262333714973633001210991656264096655663165854411408472067711236530188010135630763001141472423661165413303414897504019017759044886879628573653744180206896218574356883364802625303538372335272671959936926369531603783997270216361640296219062354461755242723483517938156878124694668491983742734971619770037986827169528378351345210948909586730671795508008372656050631836604443173439749816767646402814887538722735271139203853269417104853518152533825489330533179970719135661752652806663030812651216508748986650556950458781095711644544704081665986568209991015803094565339452005793296865428561326545253670485043860748528208865291334208080172736399299172357656272500506908118457395286634520584816183671779353720624424733786993062324859438196029520805006477375444097297816205817738624725098497246286684428087080704914930326469260709320120035393282665052603009037855605797472793446518545498841852710748855741978488532519244821484943502733355360650445388547180643154695294356810855835423529302417879176300267454099374093166043131492997512764952329092752398765372764932853140377030265491186590893218691608151161397978360628287947187731538243102869483405046809919186648911101015340592247400956596372147157106923602651319870572752515713926188514212248156977449417676444957805959378144736192999953705468944245217583934874604792570249813504285250271803745333388013647903634553340813150236467466367967639000372649618187884452649880021149404885555332688772037043807984963239855971035262750241090313586921748221269110714707290394175271919075994016358000634933935669051302629992883237743216411561090224050456997249736845062946832939823382519115049206070434333849945637020387647268650026071635627980088306095723643746043855174353294862880656580650887118413672870440693474701773960847991030890422114906877395238704944190511348365074864433406410723223149841337131685062812399893643788180818085755220332269877286413381217719890778952688015103815835778380217559506793403250765627120774924006468521213833730172050757896628136720088580717987725732815302493604269331609032432023643249681918403275052217353744406044365856627797983763717028063727036725321167419005586552419813775050398949916472179595916466297918432279880315922697515805674106810375230088440499505531624210538819914083624457432691854246111360891154705996925338173006259021167349207975564541312762785853215770591986292590598166937143473664492649987869670208491967730265435286668856249604108130751332878967257963755627641005394844598246573761169358338451391574216799055728213569074789566943022424783153435211553508063242206399067398461530469986791861011694811404665245821860189420208603278746536029869790657513596105666243521699445827041280789574543748670212190763967186406692674759682054054926609380851949685864042323931607301186349896578661957813604815854521901708977039588381231194187478172798045498608183477234593829908427793363762686071301698109152231099829327817910569755069019764864617420102823092824441002128655999909773932977533879258732560683666132097718416336204129330140964460425626079525413182512374396788040350182323091841215080876171905768623546462616178175351743344083271929478722751761104478092451512851978707168148956554545617911729990591548208945749196171304864080761498186879499319703581228854846872207975674506115657554335807402158881001262304098812197685362669104373254340288318495957965201855243091978860520862207734314544943427146966671369384985938743733957683387980036239779813003905858641720080977028555634791991442193415871122897619094832939060634812697353875693136118520211830160184596677617043923854887265988611188591728701018931333829997685530193578492840347642598135376252902448394393323265106709108104062737026481763867246722810098781204548808204841015140687315614099524276900598858246032570201945970862919948609068107520246469351239811353265845597632168670452808326253044355587119246133273161538126417939051559406092409758922378976570508475286344016699055274089215600078261317859106498849617717650562529826585513575240962262707193043140454851192932271592733765877121029119761259930254681161064812022658595180515032004285356287247687838746186513701368033137796796497361155915400770116366918444405931178420463424824557468846067756970011660166901131366443864172471963437140900301764135847765652305707557212482911465616794979690271183839362253721968540067169700971854691823488253557786697759649024842047213215037160768527366307388785310508760623008588673954989774147106755591800012792842593749288518881902775084678604414654056125722367200708037262712716559080343277675155049827007370742127840928957157290113050748953856353700584423024190034077820162775862718064863680698423292928519533822135885920982418043769280432084878631353602912447246512191333338467231594694808675523172228550260380864600772257976767542497391035157953454137626935664896430289565880845378260146722449993412421805213140508250402878716338936789291549036678079756904554778313311696729648283821802589544788349567246756103943408320565116031477667265142921637541285324024630468922817478041602500068267610728948678646207268992544463046371784079681693660951269447711561038974219411184287597990427901387672767693209719256540080949480684262808393272506725182709286253588892654618186199661520679472115024786323806070940136970778342607392967355279012439512413303560845583063793491997546909041225814148365288356970313294218518203279951177754878183251693689605133920601742651262301268933073812574235661475997948994792120755876986492817963277081466825821022161744993270379632389463735330804283943296360803658857446329326156509106987802638104066172921218054519400811911992219822546245469745964668052074588934993987365803519327329366960214388685499163018712969694238579899729713192458957613300296642239361974122001143035270212236117576421215166218261579222104587185343440462626549188439166419362409434377433492162475681303015299087636952197235571439912950870048900620436920394979134352331173110168232689037048455990357358144695837312946829884601886675405292911148199922615049926292712415719261212106793415673603214744874336264227190004371701937146161611775664140328004409231481049907688765804863343170413090009953749533109268123105807828623239826783528389549691084772022970401622691899686440286529122417535034240729891781557042813233818189066095710160854526404030328946798093145893517402661167840445640586043302874248946984154109340069468660739042687105792502013376429036148940025871554517581825193172757119814902100920623305844593954001859348498408529689790950947147687545360641000122768862896892642040485099552647861226300255978777070050241573755684141257109445068589154953020113039060817354196490146234727323033794460506286269672051381477056933468776523422616558366195596185395898282686596626381797720261923461652434710861152853989253533157719872858914662307358747183709946950499489617698947243959264941207149365380476564353671289445629207198048938637560092099668338851639958213781254592655667427756548988107865105737739368839000368275493821683073537293938388162349368725334578003996847681191424882926960176161900154337203275147533621550743488128283708517158100954165848731410543899953960021951898723665475634027815469484432892687766645129280925012081620499500644513600742005168990333751067915469628430852622109404164588645477606917447300205308597349953607315523198676564614461516838988651656643378258657077423537383167829365292235866472146795413124313479312095712893499170491170773886353428394761112553566518228897335993268795177868387681385638050810366387547001643301763471627477088190773465592059747158348538935371511850296802713686621849286946958923588081875574362049107013270433147973669998366919825016391206145390629969303002561151851723313671844583781541812285064745982595703763773873734033167423460606109756270979892724713722688390373780445938060072379567439578283793225602828887624712436942411468895334879610687642997821676100484889732166675748602301515050553709699017365915815090486548716621020807520298497557571784358478208778466673834883820059990684803408630985419302507748547716468641126718356244916293159629731344856942417211923020295022169914376533266431669848231099416448476187606604585873427205028612523976182841099861245795572276099710197529151293941344476292479294521428173136966989591663341000034627129455859232437684533084640835025946448351240896199290225019625120535586428184256462226917809401317169504150454115957615180690540043500144899486918407630372774649215144293751138955357063650714487184066485000256044857221745134100220017054246349934506761919354404021822465012035626862539059901166251125313330295564208604866224394328224926706961854208731364678884300661774961895878299369419192122800690941343593877336751311783760127495552958543297675572277903328643916127985194748678393519935540191578707369476906669067150739752130577014349497065316361785553922932027500266120439273713053913609873621876188039923446638697270816715904371653108311452862521094732888413516340132761560366146253924501055001160455388296805339677809511702762956804974715812071650646346219141195782903423976799992841041940146496958927516066896093558070718911925958224189622913097127175570356514814828311474702696485820094986803540330817524341599146659613086060509943940002241977191805980828929652538519235901611879298658496016572942912347017357951232676491726124182690581265476703354241362275706155562367651882988829221609677002937131734229428283694532430148384089546278008041003928184397384528249143468017851361129860587305241734773488691025460055573247826268836669762819610464626666047236390564153958310558436662949576261589495066705171686622501970973560451210935772204742951591213845228736334172318979525528566599305390726103170862161223001949344430100468799550358817120136749089889262412508451984173241336544837765303439018037770088356005958649964141842398998182112276947822126165462559891258088780292262404151375016328938311597697051035273755459434836335042475600300676277185954262945203303729056600388968123993967474658466687799542514361509656554258487842942193474080295430976830705053844111929759324243328852569263608673202299666388172719006312055854686300846856897970075179351054253028583497949315146945915198498927242853621272388866747812037224000888584185632963529385584827831771579699299900740125939701911915597330224412548935772202917513068867108235830696741099041099248623510988936730689687040861065886881842479114539786821347946670425764024250097766586919593731731407762324563247499406269333324147491089744831824214945920125200691500360928978113284621132965666575650119844366017016017921773366908872977254983612691622781661132531316231637005656108636249899548160848134468076655830093726440878875196835783205178536200071458987594890844960297647260850092709314153743733654387014098901960760670021901016210570387969460570148832082573186747415284153243628298924445637090624042966014871220867887823639567436663037501351718342495299159572868362474547126585895126739261994852864641799209580151280571621545842528117987611926830228367831860871834260493764239210977285781992267231568636838928883420081680797245879833222791691812269141528090338354180357014013970839095846669694921164169521878234515795443601183971800047401294740426393675267740631317807706330916048424754423631277828530600056408343343471099347123241522864031772859428272438474950362473002771138761022706298553828476487311001040480549315012880271164948516597399201186398751833402406455371019352131723783583492127428241414980220458492522797728876208125604058391190245974522727445009866693726227727973419017287984211069081472990053105016515890210508650282464374361236603670314137534454508560392304288755188528535994816946866832626268455042637120121776617834846125033403938698364873405921494931312600930568385849622746680885462462897927641488479122466611376827894041785168133162646827175316413123196077741396336324725447667922543143693884672251230094578619382863424912501055229693125238983531410685672640234576336595742808156030336094413557682168229382022949037805951135767037371325885385714379261373926337521013210952457731528949366800517069368941324084313222514022477123259096902260837356778518798435177940436513754436991520311316658087419642484393573275207857612880050463135203009352023649706586541477611270471806683367723425777159077283050714518510100545818420583495367812262147113065385346386097688511841811490471276383882894563974415480392529874810695566083029604395064088223066756184817720690187416256203617786647849352123967367744335972361786772047078900819112881284196375233234693103631564329540618497700451695471817492939299986039514260963902583144407353109010531156929009493845255748387723628537200752311428807985414529878677015019975804758176464584957349152047509243006202526090025853754000461632970938388131166370968847635446316908067678429679924805227372727306712366794162045274247687183826062157664728715570750529227893481131720824408979545431506169623688372891390952175165227192582548375530944252630984720052777715362062246463322646910122604657718416119497342125139651885009994288592989512142188386554329499971447580221793172844163165447073512137568274495058885138921696357525850485677902752053531563117238298437967479226487119777568809108271946514890100277140823366824859396675346265838428023199063181414964166988046587835615889586536734964163997386369739847984441662313263065261744445182409745656893131834729341793570795438593589882411073475506629083788418309814826553417594659825342607491740862823514196614847414220245004618022430076405053671782867254241582860343528392045781614442409489912975329120131887815104458862749109711110781520936421048720216678211559909933763917158581634030318164569622124901269356232674932407536927898364868557036536828160578043597815134194239643601339467776982249833484436566253325806627705588472141954499437600166792350541218445614701992387365448042573367344144946756354662442463228869601920518686791477589602399010900492422529858820319045557684251499381686642446784532499144575263330997160746754634325355530859225305457529212852400769977997164604535645952847505457325557313580896964974799251999967429455962449818190550466849422459449572610145387858403653529524924004366935809508332596653810228667865090627357142915184543193001889530179199670409903055236758491823846697807925080769492010833581941819920564185347020023534857199703458371660140959775177615617651723882663073913724669993048643012720786100280214878397014837872800506548408414273104859978164929531069559844726137793774659572614165488892330112794321472572377859791038984822583830031255250384900007702408283902575446370613124833389708352879309526404552905615056782500380403048048164516385899974561617093912078726553143355406579380059344504740593144757061874354927211589927474863781576081488209416309711866857571827011321500137730485574585137924304850564718317356149474175521991078199191607916848894353082839880167947272768313084338443903374632070118847628882356243524116398137493385782429970131195737833030227643291746403469891119305898702960857499086210091869682430854171119634835407864889299684221127309949929772142529914398191791879814194688030316774933556569376902589505600641104875735705991614491067267653146103147982833808007305111419974335427787605858860158851622610484073516001917775714266603415776004021056372324887736743837928745963580160386376483091375841685165363332985459198881072800068942510938513409897225431859844895670431771634124879937095006634463129313892156847420021949649878659396572893424134912701237794907630412389628645819562968218381344167016047813071645834774522345871985545530762085414473505998083977071649336715515848021067128894815972039180095288161041618658566645613807513637642557188094389587830116307820614440312706367807319569335306529349674376830640590765557329699054826004498545418443897021399488420259358812456965536475361649744736107119161558564614583731440785032877963104525786508192859250403793624415224138248415531382222435098219081851386716983326579537838574465821466651421008787450828766562693792471973075272641385263876371448773725568171896923853454513884298920758149411091831661990718606410782951179571314999996127689312747134520715143463669271584808285586752651573897491418261958297871433374104322133865284048613422179820490936872630042036456071346242830374013382551130842643948197196084774355574234099823454932131673203665045024884414721782439128366996567912524779262310562570785018636146154344215222213469807234188265148214085427627140581642224650384716416083238359965688206898215524541595864822611517229302451954913119018554097503516643639923262799755544964093882856606370391393339625950078676222216072669491199542354684755018320622378518436932516579225270391145727205286210426272414759332721501620855630636843654458146704965872177373080562375088856957861074043613626860023651443906887311728117110603129250936964628100641557763641904313807867042783806077816260363537930301579101358523629910688760513862011916502045169904936688766182173491334895258287963359372271187427667028668495103174132463627196594642846286083325876758089296076542115752250961669930791423198293122942711522557498224466903721830424811220870721997651018189062002926068377755166150570177854100852848576964796437793182766628549572461145448119028051077985232862474093669331194213775449290792608894558639958580819096734012520316102586870681438691960658067348612112510161152139702957605869124262091846443890447202438389612609472485558930743265714890633318093106062093259111867110183452840046000421237758065455009362638158737199466849211478986797271871557712900774099793208001848170933851050240988136097139728943495742645749137257482577920037921278129857577892560494939702847475045606533161576646409971915455064655878831154287926010881546989138818980594224156653902907275351087885296154630779792038020539372330534176014777627538017708621587755521666502193503205560110249836573876706650174817778177547798563016810889329181284338627211982177554049063432313724437869655787430870595113405024094645996908472772064959014247627329525878678990626553742920593811266221232605503313037815984986705611383057506662267111033830921123157219538550218059022650285514094842279988659229218213436329723202008796030626975982930186308771223276574327287051133577820371084905673411899233480457384059810047919061110440631901844338436246056771972118128634082338881861025038810578112440147267462564027058332965126120031526481653197612718596554723192099446586584023433482693643895260938115923455275778268782363432238921758312443684894864348477287779073858141661497519653278160615520771477513466774277375384033954936235208637630804514519456076519276979932981822287088207173664335349392818197948874994586491563894265066233688807758433816137263819645172816933743391349120089576907640210432180891216258608901027989781353743368255621420092730446480958627807572843714837813895136829899843371354727326080725237305296054236030630769284283734607798257739202780623188907288654969939693540133477724046546598891232476720479851508720272515330493703071656381912350323951330188502164182395412735336305719581783328693368423370069733616758190360336590741020843976363306396873095161040940591274175920447839529989765236020070733336504766287359047265023794281628968861627171181839482293587377764447002094238213250903692383654800329847942368595474639723722414343857480312895961063544362721629571953468725744409997694328023131424406843307803470005535044917831016889878338784782173270687315842997847424926503646753485298111118671787523315891503532680724438360214762921445521881811612212160026215410760100248856577156457558262337333617986323490824407278736028062424803617273597256388905316975995662561702233941141865718089654562205937845081052907513727765569730584776782348350257890308170448939992344972074329716106700577722726425414269706737203840334817384828040946206132094920205691412730907726327166793820976909253712893600639606313419938032147470792268597728853194977953223800634372312245299996823212004752649727339648064960210292232839096156380345270703090564804146158609998026005421572891426274565193999281622654929234826586360935294487386777608714612163944898104277347601524906233281423003316036580783292026454636525913692998348791317822820252453465645790875329562908402376530714362319631500109537930069711877717807814617869213600978920338561173383410041937719119498601793547262907108361043700951542342625551763192326449049811075611517809270028833184532221039060894125072115682808389748176975959974011224386919870117353655114649542550245348553623353116280727258343958636536610274848274881438873666751886772503307680058539522569345495719837954007216586082789988067075744334507779236888557312152672950889010091744847823153443909649196177162513930907581818302575265821377403070450744177240338335721274530587967668605971755176868998310671024035534637215600563907633725993572027816048356586069437584055463192457555538030309980781867808011163831454197258164438734271138680677918332998791682752574146515125183056450380576525815001745892287819198066061849308581598054823186407650582657023536887598280416928939729803274914360393218477409587757344090443525515073838059064868152805652338756734096175122185917594389230434449825764237272320213618306289170525169419856879778042857640285123390919565451678114459813229500316342903674188119963926554755557348560870850937940118474472944817634177961352939795313975101823531251209050563759392105988461078421680760305035080185715671899488961719962979042564445886455868300661108852635884880735917510768863565076922206681399214969601779139624822250237371542664771791568589120859164685949816368828059998857049756690632425355359828322178902352868789766687174427991703439342444316972443970131023229636363091969497408547435529801025531224146811901407640972478069483456136172354117783742421265006627341247751348272905911575534778925457876204991745126194729640686446128241462244993180150868586693766553998841381394521223024873084980068647651912819089939704173228392132774050610300543048545740462003315075767938955829166123300912523752508951115342955302198187730869269222301568586558353406393703484653660969145960072969963760093219271493554714517760659457023280047364015619419909356985546612494557274851875510231369632059585480247266267009607679121923277910699111220448103128948877716189390623442774834310083531957267594400298178458592781260005056760604381533584960138365747267432132244721658955490300069985799440535975179065830477906746926029547215844476544213207119676079469453694074661875860738713423708902743253767765277036430615710805923538290961731931579251591186313690462556455298693372827279565682799039296099029526324302834406305675374986064045077978771554693270976326832397045507389646048627507920292365338077475302765506959780516443567074620121592450395136455437161662986909337402460059551170576174924907685507207926222091478933182146368341224691310119181183201011320526766516396531117344017476197573591975017764964191026920869707240231262581252089136590100617222074398130295901876662466677696816134414710983990466032119520505786573174759252721324627620938879140109330473835797053643906209279257486347999813671176439722672357022476017141406169786261594316598528740852976451442513884143949333322466281012281247477707526035122597788947202997805153747294447372360802706354069345747853275824994035518588385856727432486731289429096941096721445974848473620365227888819504888106608017096621515517402309748640410935780188952966903583820009836823001895919913463819899140324666823571100928916832824580698513686874264649502439511773582886635335062860135164135910065041922496958953547766141063003573321082981634556128827577651416556978505933645231802294779449663609718588386981032988745876058608751463760476102474975234938810806708364621349434296760274391331727879865227732380547118148662988054836154064360082476708420364518829066454368611625605947586293142397017756424093027128995859958226162606197189460557985308923210437909580959902836510712786589841172965724456182343554153485578347077642541950028284487885938850886739042143563275189190541460364491113811972496858247013845965011112015817551257496506626242933711318384177367520477707309035986201104938985243469430344545454874709919567634765093715453937962542256081842063522508599381128246316979037017000438036383232088303758652716794411190329174368778112263655249088639496471471055980449310976307859890268250634630792850183939208028606614936402956863110437512574313831829912122902632541915715415474932832639943853201164368262113794983829492047835643928793393152012582093352890489465459390733508032672053150051020408952200349282184956462490636805554138307446609393498203818775263578443657632757441119974373865113238358975801610436086686317996954578784825098072631878788375675847068796707251046630518311838102760654014406273172548062136116058172284612601831615342134306376632351541986833162517444961565373513205810834957242172929965082609438184336287573378884302201474830689100877520250818680827492612635563342911320176944279838169993235857863618920361394436871612092805563994434314640962054921517862629245951519248525842065122041511099963340459369875003115835687892106442372299786536968440624935781372579171822447145007674598310768898073549041685509981185992261448816957844224075882172596449384756315265195383654156136432539721370050024352660184621228939210001898016673696398745492213477193621360638567032417170753979690168872750929045663752924130836175398865666033008857265928022536324104029989615249766200443994990975016833148584145724229310262344201938895719787171748741366226964818451665790141632527836828176841511739357065832846461923514273753893335037127601640468565266607253079218467912476734936517042760883579389539070218253881675077667130680720842035674954841092093594807296855211580924870643701927812499780444333347468226518847790534086440957745262130219983491613440416790455952405632302838986679241128733294033337820862970504045465904860675466528409066780574425050996154080087029519006106070005427459318790792749054685710414873611022441635964088339631236363718180585229173313715247313226963247930897738242530481599425433230701230066031014832763789522760428760079385927870909458172918084148332723843411305823764002266955930931168481332947248369233455360332104271591447724568797677650296595711380134606656433801006065149611128433538678271776375396540543836827586042915815378209185009216292494846653303736236718041883682747452537176524853465984547390954145479444790787333048661170462495274164808928057863039515020291568376766670687689657085237237737985251029502694856889464796809402657150225195068793699133306508478241859660107872991443623926592529910698250233366202809544922812705667792605080319328172203519427086825782010309551592944719517194932343647409293166512528680577700563742069176381113790462904787401710712894515312237531270545557517323404491153011150301655864730180617962998212036956421038428016695211780988915339646480146412819128779500833608071620787927976380449653581786956409447258526157236425414331297101233528255382404293917080828361337760223706230113697936909959348315074133064198723314651561257732851246165264268161998813299436865261375141792782944608907750457056331081572810717771435043810662569952995476281183085827668322313003274480278522465601424958193971684278336751175183416924740284444381825404330335172721374586065272417853923415100821390548980224896524133456011580968202586705507438384681078457876785456165351700617085382275110470676089370266110924596082334405703895318956738162438990662268956572731040977527134676990040909636062225748858826284477864459679944445044649699551415229349627020892609239324902570490684449778695748519143252347568516270603490042460792188750710539109128615525849176118250079212261769339217027786837626622450675427392439198958488450604524825506663373210027297098801663465087892068053556263531663409266763549774464967982147394022831851884084251733059492902906060189673059951851733100425437023166393044212798914219345886670166821363989368750040090558399778353607622314057502951777322703989741031209635047860575255139192722412761919048173518817133907214570393379648826166685520688965548748701077887151877143135614901607396724745627451674906854777653295853794637138450260004630916297415388179373371283811209708467273897073152489316138606320623310769274642931112185822170006068708081494554058815820512565106590424872158788683896621170636627593790266186418366404078980095649405102526776865451942402048076341378861902112144001271545028540763541525677758932135266353122387465448744334553406532002543742059512425335848592564207169414880937873045895703022279588532385091217113367777639941408764814863273052666674427602982529226487892237686511469028857909657787884709676448651020197895835903198531540148398130936460067413490889189894410538768867104305754677901337035743189613628615458866842133098820386106028592987438509870891660236285482847052270924242367062805682530268540792718308837040012899542304520792753801108028727979835560414376408892345920694144205755849113009029687207086588576696913122210225969340455746424551992332238772401073849189784572388103544933206278743232641027651988654829803253110388315409603045013818880807404476203345295656755338306446912750580069109441975299461064285147609696736848509183200799501425999441218695302028084850544673827218975585956907275040204567205290866055247300963221448048284872754484271954631200347576527283604988065385937460708439320693456264676916186312112046278137269267889797318093231148012351480382169103231830929222420532423132309784593334847185468067260421569824565348397438760347789127064870109041804681263992761939556118605570218303936100147276167327424813152023247655105495029180626633635376149370841524981701083286098150740983984528811297115432650337099919100997790097078444007188798286437193732618862957644830889400277364972679160540768443660667476889046877766322988896960212839223327825665593167512802504448583547593616243928172000154713541318419294872442204035633468413798610773418140614825229604555377752345062004722288495345623197973091003908891896063206135744916801114798821503390600584229725033768780650010491177522989453400108301665301534079478535798752102353126270511151975502338167771932840345203262736259949122350051081051058024750635367707613613146742739680837849573610788794464182492353539387343939930281707435509579157847048687587559977981933680787848742658363822481855389850343033234403490534629565141065856851533702972986010329166945864778690562602894507465457684771502773222765678815182378970721590890931956547955475180950867036528952804287290575751363279502975699516975048339167453534959582347913002784074254416681533741264926002729613849564613931853716437580877721522687572598898764040946542037937020584877238841194863538748674697976305213662072259631578641535551813852600017449120325152976009072334473571179680533906293303907063166058607968755810553498517439986770388030722247632591059514687876359690500510313462811039570981487018347056935025637589778653064689486338229217381849666704839959942064027288495254437506057895933548222987812179816425623029262183997896229319688903114768267973972208345127493614712608757762636991953989284410698484592042028704161033009909699244496049627954541801767140658308676275491644527087194938492656249139331118481941080349373450955381994320544420972727192789482967083773928148698437243617513003518651956264974108201591169658300225950506610326537117058839295313016433775270858088615717324362588694604188127258908078707707647574259668579138625849942770056683284920046046227208335420425788300848827993306918545620146899153967443873111225269412985527566864475426396023695306723190047959203647180188446755574180330010124383143395821954335261832948524280307878973876873851244934647020383041122678833437190506313040493947230447475862370164139773323647623432780630722760286062396840426389371575842923639873551914420554653016634508108225885252319183156362834921111640285202106260875046889458598536552868579181269310008394506943680177393028780719291848363812474263974401902318082983309696106396499884922822494536100169504879916983616087556234305142108594178829638248559023487800507028559365015013113684658699730525290273228975786988236307785620182093435703700047970911953880837634593149711278116961973303473258325862825734451090009770602990298169721866242766351192408872446891651239978496358287398166981571489876006479856293986988606531025185771726724175800693250486504221185779710128864981966825537455735838244366541454127824936290364727601498802779726809939332098667249693662099157575931767035441940338904996650972264283551886699180097087190407490349171123519900596186496739820874367696996997261021930532105317639600305740221612459830625097190080315790404829492697268609557215080424367904619610876883639392860361965518930378143705726718120159427991444835328464698819776667470818721558765107610792295153650974079202488930500096053976283941437183717814050836127301105826734318001959301161813806136605478515129956352235537142049272357320418317250539846720069933339242392150681503440319226574230698056555295338494837977951904359149217947861856033430359850926700353407553033540552223882385394769489958467429897972785931732886174350790495355219375017030828780782577939612523089694718965687300011561412692464270116153659956581594046681638076080841981158389829745663773085866414964443043547907755640427377388689215445825315706368981973674443181054841991700686393319011211575496549809306604328417876124073694001605899879989346275210430861335362991354182726202787313361853818876545088000674573813007060916611330652303053253745484149189742701363330015313386724282668331988543691305305793646233272897672408106149485693520712763626180666631000542658877302749525371152832775885994642508853317101148943230410341350537337651576894125342033468774124509620576593626817842339397794389226577385705329296688685438110473674658166647296262248207198453251814649380820056840571087465243402671565739681436003848797657198162273959841933511612920300172459920588914240958588437407381370332003411616253691108751651110936560523463354658704634000338725191710247164577152908797758154584151666615328908044316785746024927154839510062297108536194878773768449624635981818607629982548378189064744005469011601800043816137319422616465270194690152256471976127876545405052598720461781939681068518760837464939270869047453157467006721063063152394682590060032617852499539608412298836327108342955228381021537019743974689966917334018735967676742668676681409433248087576423640305526038358617420465119228295199273626587160460795231585364186097672794118568182067474497112505807802698644261054485533689311826420306002546726099096182156060945794526701044983638320015223268033894309973427945725731129298372513218519633734529676541371052022739148658914409092007864896792076691672385423176996899345008657676939396350080408219679544920173811551597185043723773013535785810519730045264747263286611844280488116985654966353304837313378867318880102239749055430396157194996836475791493346006641272932149479526359338954100664711500193749001149564694441112215892921534835248717895323881139444719860392861141090567417319745557560208586129398619928634742948363790554139696277344891801748671648345524990929009251274764359072237819530356666614596261771968185827558988575236736290022448828836447576450943693985510097241062238918353024483182365120085504674825553909388647163426389688216616757191320624457195390795151118600488627202811593615841887519968465868466436767412726901063744305440258336588891100646742271997415063317867854456028709573981671718589870343889301594952478934882470268822154453280923253921116186366161327186736590673194226318912772731433501987919382099450792790423188772313906706943895775471200488525652470760549528957458999782793002124444268731262768803478881455688247277041541941447647747452467535236995656740577982527867221428570435060211040217151452104006977289054408244283257798414864467612530340418635019769557187776137584987356405177880044594491981888965145335409564828666812194439180469450630471379374303120900706400490543167437350955702445645631487764401016525755477986378678085802267494316095135695702264541876474741550561520548883400648762420794877697049790010445200867326194827144935747170277704539610526167621393494357772034114869768200614326007521144443516681891746511134245567521258739988370234572547763682921238637893753805521052752486242144582177161879906723596773480349381146428481504828611572432623261371624756483524274306942360334262361810639696247197816449304865862300717325390146679251941300559030887630997279124345344406559181256450197498061070698397030148758621186229618078651649062160923695939810616614623090935901590259272768955911756413245772191795100691827135499847172897986394481544341621184328374444990998538811245819245814576069014021762947281061776252434761351691651320166765270018623275024943963957561524774170343026230683188740339177327903646837584556666555946067433815549623990145228604635795333271321839085078709083195713286735313873514591010588966111558714957688057777789988530308431619513648329408306629447004584200189552616471848665585771129633991093821748334456208219682652717173649992890484588214286799093305630907857117095118679787164566511759956426298410233591094233612591015815265193511687514565660012917324112779362323513257472361233647554497840358187388308131729233598029380244385724181117079589430731230638864307779164689651856641093409415900070580175900869204847428420709282058053040108314384438843013779108300628347053738142817215995332647292003023877537289989194744939271833991779894097095515968341238502218602546756960782688340507730707001172093829424898478327494972938964112053038081643010433753002754725003053299091681951934846114504813829555887348559640309492416992926186869887376655858706586017959983882371240866174274947857609990023494092380924662928604027576244613578662625066980731194791702034370122955131603498683054111194218901141158069722985745819128676468363537476156378107961063221712591706604382604446005284148235535191070175417213768264631100868352405711761340146459183467555450005901085561976618212748918197000439615965843541736047990356725918204345067514001775366671049400010833771348094220015206046529909536217993621648967151500002983495786706948812976735862707024679105376679968971553512815442101767862612044200449912070502200007271323286408612673255234471294219175583462147858603536608318637785619273020593629580958384601590066779770096186448177479825808596772106169268250260867004447494647425851136122054453148405088846511054194388360585977244909275871156420105251635149395987297531016831647514741572544288538379769393141954576414229133996944356172445374384024384603619154866408679361830861876261000026406677242757290939885557505307546407690701258198141341580752128249100263889930724437187508061237516326178039959787843590522737843413713554680457703724490944482925922447285998852510246907485243852089470307032921180082858861065144031195874036287102302576843354868572661854015127464553793904047480357220152249518485921985656930530503815684079921749168577697192118518032666846049482760715060449739662685664107900890247949220840427291385737170667387005218184528986272337122058321901182001624809537491831987746191850748477246592397297923657706925770525626644224046383060991220778125220744414392861521182057691472080153071802045374718142531110360569535433816676493739402489138418807570803318087739658128508409012939144173791097931218537150651247242768310384093086624628323044940025687606682853338598540723442375826847543387807677314519580965708776481583097401647069642424840731141703803668499018830782290683893075697298930773582968986692871088575122861752922645940071037069832890217236212670959866930748069491319622541547135509368603682659926392108395885331797968968635975821609472361383606653574119728170395076689295117392614285440216519967724656295354613378439200043673554888988348617737719482948146356147904745886191328580269239377682771140267994368792700363644459232965273113255450854800034793089705653535892772007319531494695983989084279007220746796332687294139533339551956900966931077243057931730337802225516606527866063880222740574641219444912204976238684588131065248653190609280148247032097119314024720692758649850568873839381317814996780200501040603004759478690669324879675922941664013361031843641558552557271851666858289671707323521075867188162913661164828722450886530328460923436428049493852088859025701304732601565593979257031454420480364279726419838431951020768237477449480164507743444048990298697375457968454909106842872041689530566109814903102014517428031190328314348054800797935956613254705426221694561952068813450332268734151023583484383590438565840132740205610982793987684594267411398342497265886535988832451202396999604532885557761940789230924259918764431961473120270784195893393370417051454742786190927466577326895851693301374405967967143488446108997589286685433904630247778770192605505876566761819636281076688495764953864798787721349546348960249170332272618748132852234123692553557650018502251090394975359722310181270297342199500820993655572254947841813129441106246335685313432748094680744504963448437702452109823136662795181169803882033158796371776515768000821551908049856395570983006389883062645539778936272190220633089707059226195651487097380107557563200672059136090910865328900752817380043242700546305087677592461758132827634311797843950560122423391895796898207622154462223754750383699578134545887509576730245406957834440079684835443143877100543309200367651909656401636879750699716293708267005521733952344142250739594931907130975502461067150700055507931814525880972395117336225810563667076907472027951970867647285047757890621273267070280698137877878927521934211972474808172248703562904488118243998852261569956794165283269475566406283616078564616055053606142076983557450635574584371567633848300003839692945065590583920467157922543383722443141135738570605182912296205851651179330442347502825689700745005707738103705535813510863769880519785710934216642534181706520478848455273079186630869227970279187587464538238952076085033083325708814421363986912430897733749702368415058014312822602910384543488456028429684381826675895687884465923789267447833086103686288358082619961548079375268651074142913552843899175834004976769634674762220079206056648774651039305638086954098333478738298936679889513910735375071879807469362191735046858254654599088736568460341632271323056645113644720726426652790958687981228900416124232808083809592904640388529617178019339060003178692197254450544374878395924988908326781248532180733564355236173249832219035122937039168419722396215300549621693716435487196871565540427496153546898837043511717083473668138762465152062110435408652402065107223684161651047516554125070972698131207386427976702416429819433565651993116497472558168429283155602603152143965441166276765306022878260231145451401386672046315327580114445489566701507627128320820161367790598823869854539338936313602464783934426539372924168991074189654029942699474229344932987595102783942911808106068008247341886240675378440428827057633059114060744241485304214386035801668601314467023230336659736782108913644997977360193291069910255086763603543727366027955845870334579586453223604832737061401089748724494099344574312218158702338077855814445746094517325042705886130384657167297684512714235453204504200164303322286138316158918298262979239531565274571794603023634668877492394198751739150156611732378682981774532115416068965825995389811632882659086984992583487037738639447439709978021760528339289226520692145054707403508923502718344497897327269703563192463889283700295409856396975760566694166183516919270637350233435701589265431748567965761162400846541019032930729964428113460094704952366363169144254889159866786406066682890074042785816417007248762450386980320089498273645189694699918403538050948920708416173911480495810911362951286110463514087408063366664459463423821655566033794581169186636532272588160759313404751942763273059952108959193690867017967507979895821803427557507587109178693599063194368247235430942373053546060660873302615663495964337577139932071717084264684962296044163639378243109503942382514021779464960409072953683377523004948362466257352346425333025936322728210238244734140164594911952706767695814929996827040689518978356996636702890710870043870935781203735303451481371699347077758219336909810452109962850656501962020829862612643531054107377033158473173410256009298195553558429654988291099367032297220013221719238710166147878781013875468316108349507118332881567496408171737992522504745481709284766655742359271307295285193884091624855610228499768442509475979609962100904575989373000692169846405371013548101244969721275115960977282015765823747872822120058497584058835050401523477246871959527470073766620653952636885788725917816284484291065268804641699395700674549102562963633692522567230914949424161456752989504700113983133193532891381974413427165106867105177403388666989019638556050853275409466407605202734447334462735099461609921866479434303051573347783441551734486237916518003026276876429888654726819315519134979214218406979243242766389344887944702948285914667012729946389421128950665791246385098847893959618889987038953733266862449536924547502889746655237719561842758276481191300625854880155897521930297222765550265326786004574501402324026598073641639291466369536369368472564933118297909781323715370636480990503204999508325548947617926440918893732905106632011119644323965230673251738641555176003240403096166825957498480941462125693899500917315972701178074849374228556626617940349948344918080555902265492049401242246661029365901810564120514959919521119587997515768935223061900347863332720491007394953835650005809181855288109582277658232286487272287771313394594273811395428123401830618927586556539645467426109251906818337843374807758401151634767914659655322890416094304048648582839675181171452296112966835814653839204280309920370104444724271539636150453785897331756480490409271497431111858726479301759198159667963893582846499799824935541163469348765223836904760463385591804139664939839661912589059678136390698571784191709835586284703572583003225915376776919395543090173355818052545401632124368087858666822525906784036431211778063780005229594585577608693491693135953494816606911819700299706852494165771465840108020226824120170911992374029327877669542934322925949305987527806625100911033184051454189544041572873054125210756059357582039810129031438881124583361777545434675266421270652110684809083183779004255495272231165861767820503781221166927144007194018105166215837648236371216490574140329169706749584633565563879338823967582555468883487565486551771807401986080435947424658947019981125962566563389190050383807305297603812380875239457108400272091974827817254937122622773450092869294009997376269770828389659820341458468561578714170280880272749008605279662074904548585557187534051263831918318663291655549095669342525040876742154876038631968029544701464141926384931893445657535376028775521370170988367280336544805551171199637165531058138512297916052022620283081767769895021419174797669683392497653943431318740422639486138270554072708563295183387819470755401979129356603505841434641309040426571017311549538373934159632573058742351868308893850797498346584813247742574196671045795290725145709250577622850930729704386875089551046006152923832809679837681656935540709812236223869342227039620338008851373950748159115736060632844111447582346628401971412497838141387579703356418722107715134363558821970969587993327869185445498902981025147013964000816735852912573245521563264476409295843348792764744281645414125148577313791343287836232357985676657456475388896987352112134272097572431592021702748042501957758017692383375295439365413191343932450050791113010734013955225504709673895911299980539291205968636008177506464336346186317007139724059579159420496149632360456623377633290745244210349542413261359486720434479404782886726818995548553854707625909725275477623514387653432530944084467855637137346349610943248472052633201992520893438608771300290937226660094870804661582405097492658739195038306081917791144515654088786943749649539575226211296917318630700465817821982244163917027984021152988502065888481520156552431419316825303922509206436196053704777696501359927161820099690072256391092520910231481719954080455301743010118941280984808563550347704724760270886167570677257620970460309620193034622688376064724320408203311392602531343800213088141288111862297057860373353888619478484322532787290570888973692421180764201433315806734668509799402264984974930331892292983797999018725867112401758479421498816403253896166630478794076504081751154836236713683488471737617677895668010360089300073683727573306233063775431169457557792906905849633293308023151831889102782802024397667967878985783509091537713045146378958617103923285784310993297251546066408199781492045537866148029150764545873685285041278020988388981514383241907164298309083322908331991380656081875383912058154969464340669617022776927695687845955981824724525307151671753530618816606780661151166051923415790014868367937833469504753263181128846488091495387354376878233026714679368482346573378501701152457730720163690587553064298626922820149675829600652227412771806892092408651101150501902698745204338516141861021354656795753527161101358305694893169723141166198967522317265612372728505392999513638433313668349777952776927589934228484621611137171126688096647332158775200428674923969530271081804712181538630405623971157799477830930676811491165186220767833376459617715678304056767667936562751857965871275518497027387858007629389341594312874564456934133265900991408384237257952085076452320864954686453775511698989461330347246282524456567849854343930248013901287216373413133564605304013101997748851301779629949106589082229964331572597565473320427362947807967953296097392064081652431147557434292416096804625672917114473849097189460963123597556169277646732569199745088258551447180142371085257601181000180868664832829347475395587274001074453736251464584694672910475688843651598413226231466470358434369115345912085759588445971724586974967687647562712588704143787106932802680694814363461922965674051258852522420493880880822815348005255692579598822683914880820557536526203046431678623597219131484817520535124862228628232933384084888240291251792923031722635820177747480149636303896437865799637982784120376280099974232561302319841809549563460811315858275695290466531545460694114099190911889778992872642455549900548463294431043420125648115575632990095123846102250894591369795140968217677230925037099870538813459805758575980826027427460788377147351604499923358943953846870622416501369283216272100317914491072744763429947628830702398271074168276350671762649963135845556789621550745369830027998087875040668696059839951512432038700017113378836594800794242396487539421065123095185941889795242139367155242332100084896288667597525176519350648072307576459283276592155680173353767890651375042964538533244269985836339345512363306631547432130616577248065775730005594018729112206701382824922054653427369171481162946492033908208177371910080034199663210175091959545982587554620788564763151219779569926379682558787248859835890030009910954293417976984319050464685301445233719962655501028143662934914495920520406310759058358035627789945100277622084339451100550131066324555919026352356569075568642704660378375000111884209019683615220481274018447580283513060336111483706489466683597763841206189836853079451558562057607498185325365886286919641085329098934137008127735866373505755891983941235230993554093793532618771304078329790248852567372252895841350939905963737821756780999484772753340854142546685539513057400318802832421301665051384115751102704453986175493441089959549018344479443760042295831396475189239456229963824677749349176694882175301134771386678640989293126914434726369439457843258360613470432965810642648773660381525843356856701618488634483916937867215274571464097899653059825359769037519467932742813200722318395723798271461229140880917369256643452698601743061740383120530224022774254369140152715756866351014292221973196454196646565787014623141551754490591850560439827961465148475665972486191466600556241803183058717817466754539615051033483929421214475575886802695238532596558573989219070445124974669863672694914235039368615486335103133220172747442128883867547562143233951370600731561911196883019264759831499953299295046300468312230870064692467212445831985552015407509665710925073449240688429159579371601867031367969670913645518907968330424614424492545046443507157792659822180283757596535184119500280083126127759839005063108969494191685636835808865225366028241467000140645877910010168721799078687319427563835856661535350701054869982855925466348550575422277213275875598419112257820565553590737352734824448214554457314473961570171032366644436426110496534771407824172394462124451420407581144536450523145774159090019856038519291178502088412978983711694509105561303710332437349366854944024478119065324260914494735986083568492208657057140544442827335600495277507999113726808901895620487083790953888221092942050944097969515820013534198009126741056175843483891939742667722992944782829998476861117127143144719862555916345335653403808305973639992469372488039292174861118409806611029485558980941237006863716303207843887729434707810819142627988612380407221562422862886921590287524031194699038092573445830385141254791345466116333115641899231495485466688165506699343925350540189385080244320214263254133319073879111347891671179618546996333589540723008459253659569962191368893042049317950556015643207458229205969294616194927624545734208103325510440457727879396937379581409619597723755166410019032706039289339634263290472963710062486892886355380580757547586882651503782617246506124245020183638111275983674375017103784007313635526837341254310070167757589350364178375022958276837765805922730514180529724725548733098414583995268768697221845345150674787494039470118878799725354645805426076471355088678528170333423533437042753679950222893606866491186825265122216543605886030181493254006588344380584132930598831396921394991548113218641851563136311847419858607156542531095638394416210102043207687761580373369310928910506859401275683447640079176719151026357838045948115952879293452087816317885744213951034591585340060165286676270694696901003618184884848538748914301512844490123283788163493176176943702355008754714992334491994322990326979770284415569316678197031879618778288891183994938344751915670200533459141008984309243039344923815965331195654041979494568748360913888745643535930083917153230666125059890791186182587582633836282163155115427464218489469407323547935837296852941222692988116217164041135727683079842938706133504292976306689332045778459371663771358624546513400058224392593111903565718648453261781176451925153305958013342653563571495844242772300187235058645886157139179975456039856779986407118771437027914089289212881450386543228731870892824896803050663535487872509006962323741179147764993397959437652038300948977912382876919211579502285753714341288267696876323705180669752188855746306845950147828374013367932502344625748145437398085162361410138765841713355444106936768275344767606182418250786592024883440143465128582642896366281970432890754610069064321764432991757210255777687601098535906503123002517012102851978890297237892120859012082264942599620133320994524560399117154730485677468766497640993194525301614158829345107674761714006293665093870921436539748190488215970609332378267517484830730346665721369562687973745494368291804741631478808777034710038847419920850512794380803390890232462229734851552912958909679644316117831060865265469091376594266647114544297885320932276129100523455397898401738246179627487940461657677296090140497331858896752271406088238768017601385813696352307753052109720427851982796423244552719132176396870368951412125894610334716243010037183611023211118636523179956893564067662226375512253245287300121065927920276137243164626359266111252151786578253762669569688829692577874199929166466157322835237964321895430824780597929212444491548313475646316814590910100524615213654618519858694217044748382412904272243857917606427585887965345926673113256019906685516435643119706185260436317040592358963269708818354522335492084678288249515250652625623995071852356555305208259732064708747630991286550354467799055412697871666802395087480449634318932829156448621313660737705049378148150399963116651342024704536240927390987711380003927716862028499621955889913904014285844127441343497122700008559605023254876027550976459456100579546991765195334593845971607233312329440189433130596332080850983476099114300217303035863626812764254097841857790192239494607496540271681364880108470193002118114973785908048190427146752495037188749471355925687288563903513790142513543194529470928714453598330942676073880881409846105482639124400096886322008279016245285744072968499665393372295574486843457903525022712548119977856492653112492431126739637567874772463129837979930058490194432857028654972105432763934955210789134089140998394328477367434516013736860033632063938434405690349281407531278427881100179187774528712155044407222301375773627109113650400751901560424971148852963803391643380788805204193158171096452364544296118834303378101327365633709885502681343436269378189975175499006160402460641118873021538439191272374695722636311844957434556960432113580214986534221965225084494926571709420564422751001894036048347312204278598391634204639540956917065505400022056121544795002734630504046398209135812816790451548294698391308690061586884373136381795545935361322139354156441202512487173988492767304011907567941474389286139376333299387319427673354415695584759921934699869163586536181383444408295969782941717006933451289930638898533341250512612131522896420096299811808054750468336304141367970380294486637798599546203569846495715585185014874515529143452981498850820214793686618850794612476219275035225735847054172591283630392019539823128873949288832581455589467299399939545493940989839016223591413616032230669570584758909131610764993330989659311724540852350932369562517579331721016913739510892090153850957733610443003139576935344013490110227493982943422613156577817412192300522964550921870294447796888049602044412356256776685914605605852417898030762866452760286873016815034940024909835633345434515754148331000638558553236968212327935066912091503136484973275111398198697124970068030657082639152493008804349134732869591605992337101809401478385779569637752017727840000067938798529899527408036720103665401780934873335266146008931847722577008541993581193272579933614708395809820432416765751772349269991615512993538353030742829007847515053969353270144655789763705759960804656813365860881494673908747557673794308727605158006331156502510191446369341665322194534249292412179932312033139295882425247334837329792613944304264664972851181656193989975097685767314441032808615292583922151531931736981244672803673387694551426856299282967512312626656006268204821788718999996479648527945343063737749204959650120195641587584483305753720120683194502319594804529924654499582626227193992000722007226297747389210136025168615455837271056641030486179996263036764207900047207654885375193919309609036663098554556166931988982233197281938788947820498572454075565588885429648505903119333284007742003677196140438650742287177460861971272650984725568111570862079304670655709305093642407935263133565073392265695620166455274390546413300365443248546819397132745393556814921745937299767448885733551184593414520325147864301471324366864531653097004927091476980209138739719533851003125503967833377927644203974566281961769552689118354729573178012137028528911119425289622332455903647093941939389861270547262622180147558499029235064582106210392694392568435487980207819420286230593055617820405105581407756632564630932048773963153397612930303424915196258031143142298930123210199718376809810090838519607025004633783464740024633679089691708595992885208466957206800087015910083862620592605633625057012791405969848885557713675308603212422685109083825277709347466319249283536854378957550429851723350821174814440862796841653259548548182455034941332537788326968200751274484780719975410043159007412374642221463714485914724416881347323788350808133750925019543623671072660337630060190570397511707043082053368424652604283395473710287524572503215156017070823110942265254507449175450045891206057837204990382282159657653377834027971797286684892444783534672124333739844388985728341360322786875958443874889380131643593670704473683145557855827512313195183654841582047321973913099636705705547217768335995137808223690314977851719651816649765367116310582415436894396726526017871991371538276956451656293618505153847788941807572154530890973190415951422684198983392972372755687005446470943524659083490382751383435660955704259780122556405565691410105807336986098348132634217924779520540993109111417359486907850341067522249103305479763416721598295189413054505259114958882153793776499935401729854269775962813313849166913340183883432711301029255154586962908175309509527252554739575873915888700648148278572426825290106097508010436175926953151419242157946178219173193774186556909551393711370537791687182205919953302843204649493918578265137682997027951395151650679880171514597108046814462470333828768348810460887061192507196743115123244418042328807490536086865879783622360854840162254652233074581935217667236515972861127431064639982329026334079333867459948768148061689594660241789706751776795349049968207416242577278347964512325837676587253723674231808836155735808294419476818419816437833772682777476521759087602281187017662178061787659754837102001932852187762868586238054808589995057695185542866287668061009317788427978093296192174732601694123824240582619892816890563002592828456593059137096642958474767590155318705350030698574303394766893251736134997388531030319218627625125062424331272537312232441091965615922695129553106375908881570850086338727742968611325481090919220118150416831797061705563291726649140490754475044751906436868940574488873009703206597319327080716876953115969920850503146168040053310751812150297223166563964961820625868509308465421153050042330882850999477383674708121045746586393796744708627704743250271890616160649041324496501355140412386362141680830874992165687805525497314800170846656052265300819430028005980104944162598141241574578773318412870975560721965460585624317550569169441952553883563435945917663374930535930797990277630153756775718964311498125891911347232077268454090095813187305908517250774059801915877204247435743878716078687596323847378888205482574408570918022995902462826151242052443684642267240951269085882891473232125191685872435973834434252416177881540355514395967629978420081551286834644099238189687389987341623739469209858695254105466842079558024298368008890887559509529471923417938681884124805058440700985345806842649972780168495710806203426858968660789775896578172451803780678860941015649725099729139598343034676945724059838701076441510457607451265815242266147473720488252937404443291851835714371406471504398629174557369782765716580035165021934551376206366970116126946207966021554533813382580325400705843529039345408080019311242230151829619872895914028782214073318615533651916284908812136749328031005718796992920826781546697385514875259205496409079157136501337695773415423523628649134185440455062098972687994376180633799524681250613225646395261776421176266241653610677761015343925821116183797178390885252233689118866966374321742626267782502909529063555678364544959295732606963568657476949147071986765440899905967128377741696821455833602596309186661222435108981143141352735033343429815414227233453103702109031900122840180849703399688423703369123191962947690370824824758624853266482972420129032838426201531186294366968812914491311089800103073215986738736730102178416494622297210353632639136618948820541695924869948687080559035560246583734466366580946772332526597075880748741973093088818098187551940674347275112099345150895022889637148619905958546087326745139133089997055026885578253632480114659697629105782052047116285089481142131292635159826830248245991964393787460530619673082699364064793107238511966424179070582731130471449329472968298103367072024528052780752068918182639321894117103562034728916163198206510641898911119874494663615823961467879044831537803379471695374094751204270334996785244753802067458230573949559582412393103326340133170379906405749507479564743138666227438963589253987394895603545003782074018624459615097929368675172805367107427571747955530249771402457823293771320423610681846807933281398904683632474870155245898962997613883483180065387736637622331587353193342564387288808578727436364503153508693496556574530146956906174665400690190381272292356172210913297129357016574136649144561334851176646210182292687020649637035132410322744362699430902420764631920411543729262512353669602599505069707424461779034013553676260058691838918385239987690233156234869992829377213206035858543510379245798570339232444708447805839100531887912051605794273080229279426715992568497611482237918225250087249569352277300346889129207491077960469484643739147859324294568641717272705066813830378021418287962310684584914272120648451469207848240590179444707020202041588230331187115554989716949663283535780946305657860153738708447432230341539048505279331968210000092296934952587440812250947104651315640703189008678695970097619454511680839696101372588688880117014118703423143244765606238601431092042849067833939225314661105390790003829157406742081268928929689713774330864100065133393064109373202666882540900903788917717754733860717935821910702084493859631874120919176456827655857270709302235761745490084646995670092838902602030012538647330055548040989305037881069152653397400750648813899877782467484089630458012133663562442885605565843915151462648619508324575437173278177983315668653150950787296939552041718401426390015700943784461102099705203616478591683892547485852328019270081555479163273082678165226239816188110964598163125502283452192971656413125500000214699823586103481779957320673144093084476687888328926565860540319653955781743850548602460801269250353414369253551000379913374388620929522744107564682167854954343059767794303152317434538135982595541760300940500510963215007386671186089738387508138573291413473537765036076830872434125256661503508428295671173025846048157657625349419799793628475286906204292919793760104062490907587582345048356535067138595705097396782769522121097986520737808429128191834554446383752982455386509918909322410458347195887742632569934618913661961662227415833338523739524515149317708598745076922033384670483396963887770067073137374882553283214140305758573430738780207547762759389778496355909706614219884282171697581111954903257779146739507547619293561300981297224778832344929487135825618699921617847219276281107398201011564966067309837752276723359655915726360102312120940612423247051957847782025675424890238350203027589398025693810916157747946165459458585898551987753893642973075391085579069329733336356494778499113206080103822148641480901976668584500407784391364093575108325701568046830564352308955868800592970260257787489850767142870627849070881434830781008582417504157644085930087335684417161871031712723339773506031777471492584421926629201075883183625514445511598357341720384278188626671713869686607082345891905756475072569634217069389811721634618893204847662074172159870704420992835572250698910108435204723493200453349596011772317876474110515573897124062758561638806660317904426557115040285644384705851344688985651916044961643071384923328012795223999903585258647081354066395366917115975312311672697053289047935489929696661081617470332681160598881521556727646407553587305040232122727711130638055138943949428796857317457684800278726753662558099068508272667714549499539067032896918095730266498716589015612218767709487244622989542891807329675218132455141368610166343950548045380371741650299528149091285640664505765344705335004567871898762445540184380043416465974933361280496936769214369088826238296175152569373301447615238301232877607640702180956997854154404967485340685423199308801391964676848375391253950135200621291824885468591648947136316616182786951213705604271176465686467474086629240282612587469975632497402883562684816909814773388339694249427716839825026820597939876562646275364452360004858478653004374450163746011234757316068318179679496377773301424949029072756388106700976172898307546179724323940845058952325202758801291275349310830856055557822725550898131391792010057880966224660758676231258615789045761827446632866940490124384004113685125084709563402191956128866123067578393194950851019130205294732407133410739834549900077576287186997081210556792106243639832707624255107925962408367767180534229191432471338146098646775018316147445103337307592760384535563996148306198308569901566517799005618398716166222523996615504674958212244626141440596791406321754016202235524951536027604904249147443052362730176940288383063527880090898128663140956229377851439228862629365661436914829523783167208368772070023151752820188769804227451720707311696190604831621543565630343744441386578663412922258496787670746136450818964341620489825674953238208676942635424980083079815663104017509794470597890527655622947838473017502576231056676795699581913523349234041921438589028333177837874212554414614936510757652988431404568618537980516733169150979948916985874167199281405257221831753858964063138903046470315100345486069820582515883201667405068446686712255564063621969429401303516913817578033543365937767492719142508169672813244497427886043692021250406271235271032540874875506169864004620030446889810115212287453600927577275841956686576986654006565146059233123416763739642926948878199640827469751686578821109188971418806561886552762664862472434143544364097757365248640964188170156992799029428047329493503266086981847117538902213408198785432510856901088501974140041856004570005504407416314772394605782635058666205961777536696687028080882544598546069419628542617827252701472575973486536216545601148501063176052850084598259893257696193874029106294235932929084007561574025981337302103959336636613950311165709159014764793869049242031304351875568457642806471802452081012854369776792223005457579003355844170072950717757023990908367117247177629881792743520191895068043046713464945414441079260217495549095560691527772590583200739924745011541670696458098639765340180231116193257684059144116812766425170313578754686662714257417102020769222258191882610551835643833613013837557255097375943453865850117637269136390131458906327023629087634392260679886239523897956713078288102669224891367622552600402142425983787554023013114138766792403759278974857310657991523482802114874174036403309600157745627197856569234653868677388647579793750220742856416354621300054582271056271139599293363758959239029574140763675739955847597164334631662341589804567432114569884008868404483829567956277177054764049478600762066575169807237202234941248181531434177693273639559838057244291519421778000659385372069684020099893044312911791430806104047663841871025150785575425119262378381280021673857884445981338278939515197756386652015373034811541323497123137201637349782373501683150289342378760231702935958777245727955449959274159450827681387405837018027389520593321303882146092938525324905670717084434844532078765474390637681456840775478439710593728315731630705332984125050055618150208843437877142989217370887642796587222359299187179739882828136937646868138979259264147495249621051997279591826942336679065300329862464238535016666837533010767015425695643653900380708402200737485724338166248802705157721586432572678340665274751498324230543284295608373563838976760012205175289049315393707096079072101196872727042949694135653885938207802989452466335585434132954503444537766155489724355737553539515807688306208204592433484471523396160973593309641306524630652245720959524437938138837476184350310121360000453736629046936827138785226052890149940909376777101993235557863895752684763222938024860824362688353907642115640138931665375956227795958419277227824752304627285489258974705381114605745699338330413375807634654532113820208600424486211419943457033943927877920021057468274000206030018597265088886524499500383836854814681461827851927612122528752136732788436086839871119185073225790549635448285359572719086040558199946679921871477102717020125985587464130343254664112194192994577052720967398803360372178353375969467868845463660220774857902389992901531531848576482113992012231282560530338105474673334260438762967653620585289854093668742089725035268721567139235704895635828067350047827828533638153886234160680997945201709507106622252723950509091802845771152237940590813552321633850705783793193457877094340524738340956926964900355527421034222436398156562335751008458652689374821106985235588214706323427550458220146049915804862592926212883010043115484139308284038005414642782933096444302498163090732825765706406433226559690395440694643949444192393852170020365456531206199983081666655988513526125397244671315486220219879652821949970539286414662572900390918485275265941708579771451811869938389796254255646147353633048974240920082978872356242780918222370281845267833763027198456251223930462217141158464759617474199985718726448936168115540491482921796286002253569855289467503804426348948601020014937254983411054228722671576419477865663472556748706377357967503854632382885694912262799380143398122392165673511711058763097378025890727749801506720198467769244530865642710447908415952068675610751276755425728627090193398993820855376911636732416264143936970688556318712424899866855559101887055918531860110315081184386753988839390803189205042197967159500026006234438607365519706911533989804360506221586789659479748819791406801522202315096646813470191963085601663956455302138533132886572350144414515008162251486757384579425342375202252635442138996352589383846169856721172045527163742017526892023323522717123062939100086417109303499651368517784128171079253235231607914438102134255663576450656670630743307176129184143399569535832103995307961672190597259750376291249153406917819007612857574820034997221655958652550954287965285526959397709950867876334789174046128062299421300783214100080305979591738631315561732574908235196853562077880045997968670607357697710921246320845835392601707424922439956823222719950255769749261801178366894236665733563596895863300899916559278601845304392551792918824079210117590174627617812181218485600092134475364506418371740484531677848341652640354138401499145733580611676471044946676090188130396775161634021519988964576656609078481087158535924458974616629547984519430410259557769834569077854969835697427056401601685184468547564228444437582018729503031107872311714997085028538974306427490540494046343746694413126908298261743261145122499536916809314596758963672692988388834557890482296735244724838308947144332572818158255682889081763482228060594241434931889313887079998893800745406113340954594628584104332145152698065756719081351799491613310736994080521350539672076481586222663671102659201866115124967679823126949889557259612765592335955712319044396094848075292710023671147380872236807059181884310309358809419089292446141946711471596265661510630062241466407017930972423632788466022667977908713400110868247000852601699438290482349686612718220681610274113498041103178201737651674779491203922895940325443782113527914656971781229940677544255069373166276389109750352101730213904739082053202790097586601933665466989560888529266214013911241822362677419529939666223360007511806104495433324902589124495679614820046088782370588772821914036311209624184811004470048922072673757636057617585824412213004733367300691258319519798351072865508322365821158304354795378405793618730328150950202199844218515627350543441253487588366827249668934093403155743251504381576162083667083197690564333582019580524928697850022024592410394009419118623094772974165714714966221650267140421181858401140639712517973739310516962270577240078114133397505174165287353515152177982450991792371892820209204587080363765809909445366858315172992811667208562515543913952944249022537762918916654801078500731147003520626531352974665736027604089478100857050361074993061343469354169067835835623445309027865780160580819100306309325715175125203962665732663209593898917667115963441831678393919641011849544226397966130388045708068244985371982741280368787098359257773606919395011530079425866238468038652527539241532509804088832702703582026307050373704436186217906195475145855866789293055198136700227136947246562704664952958873838615395983343622099075459510108421087627621039042352776991358765059177249759206348327926704798439496840129768338387474862542635142651694918741885515213529606935158066446624760141526751625609493318337878262341859150332158607214200070624521307541898186276134798220315587660255976247564650518667249606795925879647874514747627104645593178058206425357904473572383162611539998513918095519129628152096330688818832630709837721071216074777133132062594663993444845901692783710291562964127707408910947079142878714969254219708596321060101906160151554919574690963501083674790899902098128155104424392596187647428141797504154795643021718217866794783236814598583233916324531733517101271068593609793298953544495441315771283983018161247604138230777388878352209157633070718901669017937628225786370477679690151808160793565049277990170798294276370158308366571974489047809123822677445314355205773763172904132817355476059597768243620688280870561290487929187322630973332256246629172661478916231125259704925822939476470186545863774262686204267948806841177346998822676543998593388345422193124932453702996386861236858386388578697386368677255187767882833259801163859922159107675768729569990607236201794587023233946167693137271669672072197272308092797500459308758387239743906642146604362922973627597517985248189569391357256662352853506899442432126540912056096933344511687822662449875369162652748372004396082987196036733983781120870445581206699771306593524367684793169542824290045254333992423463917605684508695741389501703382076128574802423902497180942492416886599981470858291791142267421050810918670553664661167163920070766302365277581445336728813435048186617017022993039308314272869596320475379118101032008056027059580886336845773949474395014438126858740194113609853836523841539011016935997285106995834166901720164698742881116591855678066918492035898203803648866319091152163569162248129583599938991817749744287456215530893073239623608078241136270481374929584603934387934235444412776939857034349360545979888423212724203076541541237123953677781759886870330208699297748704247640096115158818594587385808461651244006670500038518609457189604831624588861427303337884139099808159866361472266525086359869601464665660525805593155793715777459582342321968967521062463488659516440951875914753894934481559469454790808663033178484251403674841747199286831498534824869543471273377492659672894459128945106269149104498126308129239621448785849084651447988306741804344757464091562973233121536879197903831138782868599298492186207109896476941346787558846873731687670841613484555144625143568590585396270510249515739085374023125100974938434732045396599222867127535411306444172178897941809317771219911510567251006466457671938204234452731979891313355634192681578525468826887696864535650433034541447174601099618181667314113851106851356394593457223598052541626182473849485334791408958700774717169442901697007414516134126475032726087912507310489610379677592600116386389793123082621409914707776180353669787402038966283192257895393048198825804268506735759229448427985347591549266996105043194028858911529806907071559961024397550512563527411794722039034420965012032815737579125265871734615019383405303851393713604243943909874979613406146535671896619227297568842989402586855761766711089753533744689951740562761109256115946977612880691429518191287357500616237926686766484671005833610279247782265265596069724430633768503701500494101176233242286866426337345462899693588014208245055289568095339933793352819158434434787889433596769588116196585921687596114126903211930445355170595337894843108564194218058862276069229623570361476497846596477018040860914121578477023492963865387617606422911667778435765830596965989790946805429901834212270202783962791948320991784228967532233143766400107368095100023733124062685421393049700016391087879262129946408442997288911816176922631065888978656582354374033172450991346972830418382090900194619711741954994374345079295262161737417009899201258674281888457993233603793999385498102152052063123837768937591288020397609283758726371857666638111341994106364740314701717726145326992742941363919901700054778097660799899591529540950691930304522530938801553358768023694986147627118647913064031801570728490425780192137194984897253398816435203975786131771940538087766675764279810621615723602174018485374570507647937915774815481888101036715235312753029935466961269715109496153028988996674786102753494641204004475550602008481141254419054749375493089374795759077370547705510427374308137225015390914682477777325258483262916010143193445770233398235426205020938314818769745275039920484515256560308226380291831176820213614893414669872763939982644660015487480091788652220852128578353796520833807861035890273343118304105800885370732392971270894760498046742200326906548655011917271067301567642930397212936641725034723804902092598604478710671353787112424761697592317981521895027498852897909316178318777164609752992486173904214567381063968882052704819962657321955020306224134092669172823804075552086967508177097457731266019160213024326641067059848411383075392652767640417856323556779724787870363565186845912869478594154639995775401709694891592617995191044197402590052535136279337650951615267372019591402306718788618740342501709485591350676792354036629640869843211877275953439926280234948636200950354625665075735921181634181437500028437283129564423482136447520179289638884409245709446987583648588151695008003502715613963229304512925567408375964798322105861127404488874900394150366720245661447176165660396626401813791459827750793791138892032768832324230929642387106969314961688292219672473931425973006039540441847624736140400624259998397687600654015598053800974743969157880426653951782397354632049778974396327834115530808555869571371192700962548453041015926859362038294411577797879734378916952770945591983307103824021338816894904358450944872674174330559733079281785028615820656644774365060218950636856398226920090808020227557301057155843824775614054595215911971027054432953184886211490263632510317112846190395191983363172326248255208896838552774963701391821987689040624564825641216207189845076352894212221917943580703412349571307954533123205701712546207441842075716398196241330502062464752726013696671553488736981612474707304330482156427852553999864838511262146111588287626973631452344573021239984973418789097084991344362117082382040619182361859633980196342545978687345721299585892457288807984050066026544115814445197823176545479077998620484817260090616424174670199259424312744770193852449912947677956263693619029106992105042968345405534685978086475908620540180220573383304333155050500735570170669536971673560171725928164017619186383082342822616851273514943052506530019926460260219687697184554120195743917397174762276276209454701833706370850245454365227063745860190497312587381165568782700394024902641297882994742101439660729074037643337868713543285055160191280809234797444747045875324052244237380570871193049125142165398702955040853766532076972820951471543528684220768311231132802500063088026762911882167285464000146574097318817332769797706181786079851459881238948142830430506861381222460598515951317005352947959690081785382235344753517832345999971436455140667830765545607868735284224366372582953531926009487685049238714325155325109876133282034047718416854202090898669673304159744350249185769634347784197956938386327826463673148158285094311632808744206089076753340574967156337813999561841778087256471854390949776085405371260187815151989053972507750318415152334224188767548585468780791097332227667714684271418277446520597743453972984639195518990224977369859059355789800851791903668817755087069646704658155505779781067140103253062125724676916902084403337602800301579153645499838696491183147878161846345343949547261954922583524268697274380504190858801513935619172591514882935963093586125180872630653958325362797292491142029933919723260013661108650217966006896751420863104263029119223389493423698340649305840572465511828066972529710765752921587533428813371121914111329330441860361498232730361393696979883633896777019879623844936837869009039678083839301882518268061221403821029870187949943092517223810399408824760875588889281333208314466794294928293850899978255611768565212138966731217941833224374821734774697466444006643210072744043746426045183951386844555235022775870027899758021916186696182797366600722793349762602149892922131432409222599035942332240843471198848079154047666985227134850951385918657958605066352372246386555520049782650665762467796317356521584212284784798360757111581309356544110616620811267461002300006961560428107227180754706174730136206190751660555666953237045987024550874180788088063385063794135963198413739851264857091244820189561206720327903898526745886637742664813890252868495417620352038114008908426267125758992704007519219955080056364716806726425147932425342244131774410897722049649246704960284264322988114555673280195662238205842806846012876340031282408740083137545965412901986328756498592675025012845124585275880068011554526577487682723420781070920617714627225474987399932242526115940793790942197008878478143433523415420277466343188013185246410653848948745722663632717119063826852126498618945739185164970618299917663928456966614708854139674179474781811977346610728255164735872910724281233472429584634598189635330393214882868852696999675074765063850655703611149700609939088095993882311197751969887141984572897741043403024413598488545798889560726087628099910248279377088247435734564039817933957051521367193375045653365933409348330489315065622103213858631620725095456584183183782336446525209502610071422166854497059763436234816198967146464065152102244348389971557148757010186224067784149537697401721418211982573827105270675184429091409148856760591957178648591824405406049206281141844812495052611392019031392323871370635373934893847301216379019361656553852333480021692932264690406818662291610269228909103131177737512277661339737747247574176845628045657733694511820345272178973455363109079847276268736598313296955762812407172074682516593324604400766636274489629576963384095663140310164118656070496411436296643055702822220835511654479684868411789417367870664634611294097888125405239192111355123471172717518092225338429317091073187991601563882713617018290004277516112557906656781218879290766607564984870845644641357246487622279715424200405532798808004283604532832557860547554806326058185130233960331487447098559354292976565134878001922597928122640641640111414712705491437666957161639240842646694320218637126366966396906618094611000932259886865665963291689857585356239470606377872760123579340522552287877516441961841248404615171627439215954952376475442328080233089189101645542920641649883677125966859139188916870911779261809073837195430917270944008537928252451484205862567870517978442583147184941356124226722339984231557010212621110366563537734172984718181495928351701761796186777388463499756404722776842368816530960590637651774172990499819912812886207377559307097463632712161575702046924727818713715966110190223178455745288211027980504087066692291044923435218682656060436567785653467310530704700445190631892628301415402146772354605986612994087841932981397516939380862243310787371479548723350693144213828662196641556469139734960709871840205933293199662234104300491795221915873132202223186185688655702995599075946511234392727505227798789201412190882661702445579390099131305215008619524268249910840503236140221378344190913623722101614741516327964289226904436868394103196575450663148829413078668284826516529562273486709509383118140564789478447285218618978967867758486224587125527514799741096356897226388532795855979087624822762598110295123121771326495491931990381361757679996870935164327147706567604795891787662399785171622878879001657037911798414278970218072504676037836261919619145192003859067236888229586214885693987084546189104411542578289916548242377671572193002511016603635371978626778603031055529668000045703809743897072764396314633324425382373942604297736294155876753537311933993372471172246537798176040145803594056866941191885539875209887699670997041645947404838645898902812055699951458108360769702251364702185754485671299108120910447818557500634885108641288672540722149463663790741103089941824199918432286806821226859024989852456859197934629670431876525921478487174216847562123140489859547190492370381443283219254992274261873194818151468567821766250129407590991393271542042124086347923579112443047356959751299361415670146210134711012919189269255670970694882362350946494784750205756934460143459597699466647830635173236819277567645550350788228512731636664691872021887362943610718453627618696414208478290662901087419954332602585393671715266525102453560207314917570829415736560254339747589668574842608758707871073616633612172389010022190610262783065252246139047313013309718727427918989804232886860845246434734222153098361488931821894009699730211378243599290403838594122640482229289456354820066176081878603697222900377968012705751783674097892242343895165037183793462449999789542291139884142954100660198090312056468016764725829917861814251016972360110440115385933280710633280310253428998798959863505697903743061922481345315075075941473611647073691632589493116483979342853401168778126646759572418281894285303292021487269692317800029286346101976748237540537274245931027547042906473633583686137407305226875496765803722295229417353688124518152287135703346358241579662321269233448404599001359083232960745685780350753151760104228544874724846558510709735184869105511983823710265233700069815054997426469791248108606940513467461430075521387307514740680119410351991646416083115373384815114803792182285629028204669315691559317577885009468744834583670310661881173329348380744177676856059502942221766137175172637510078752480446493740194925630385766770937448164689540246789540848449134064003936677588149013541056528949434518998935015733198751426314138167969471750896684009926156964567571705582289079459815131571090989548204904644802712338781235705174332799007134008337862371418461766586323293404141356304236340880864785822128328763541145262886910781449711848490717956897831854343251159447679522918266899815072804822210173078951365848803305183649523858921621998616659470034862646996159498509023092061164413880732700752894699044192489131309338355615942429947597182372289830051364760985788711145689903503725009946976969252625993952015150771422498282701360804290372563790618470720309366553142927856901069353887603607991094169407892098542701221734394907417776478885032723789360850659867369466611376141685927683015852081712543442992745879493878175087280987349102413457001103325467601237814014433695880903087671079837970611561990387356400487648139369793562817763403905058326455956116106868408518242282769543001347762419242968588084377851052381633055591479989991935703492688017440116899742045285770467985834609960917327707247642681164168730010886534523294179174563174276149198252479663732133276094754281910953695572690753122529703744326564383228110300251668514622953139382829309561928482317382319619741655926964585683068343051005184951996391767223818437335048581969965005938472504889916766764111472230379240937160608412302362967754090390194070643670656877495329587029789503690955233266164785497207719100787606477152962572349180454130731779718571692939633110380600731458094993272385613164123599239798531387883542569557633548029888494705087434626020581054012564720991094122700713226715500091119204926208784183424298133569413038385417306563922534829674405013621842358646337476876293257168520795308684458756412884739613396162708788133130244071505005437895967374066097976449866610038592457478617289494462272512703011226279220298291859856848456779440921197109634390747152666023752942240012662395517240008923847748319155606384205454455978825392038754381661826532531413853557880606828522461262250554942389559350139336432292026227686331858660046375670476978438688070095613845446418996292208115028060119122247518824184363980390214379394999340249783133409231754397700400081329141428114012012985047313892971247829297894254051559064931970782697508853249425083683634250899357988394743693893430073320076882885361913324559890373695036450503061809816459156318478365968840096422965288299477596856641417977164708170895545187016512220815556223660968450184729278607169369272671070245511555785907698054360751836828270838494041080080245734614695307079902048385337907011133695915603079796270571283307039337886451459635458411824024505965723211641296358776288096876497657492500245870201232919721899686379458528259649167709191488887590799748831763834448375617471823451082426217204936604815779994662427177368738826338022045975243715678060229271605201867471378516095097182444880648828058902770687658435636232237479739685417819992110074148494356421282470618065733030957360805851023380273750193371855070431534674663805966021293907207062777264511820970785992544429846682064174923844029429771928438138616793071247117473111886381036069300385317010411467991846930206376224127735307249179069167679068005295508436076012760698108204761882309802394072430983026838074887052511031182208210846508074867557923452053858107331900079926036435539735237598454369830382677055998406298789606410263062281769495612051532597196561489105423993952817218166811699164705131516069428667593016243699438940567651916212531511446557703711531269750756988730550784020021656635977619104521306166463985773950993577150292396964045865857176436445239377661324786342962091680043499411679874334692680864518155400116586279732144601805135547087178926881598594296683560286252546502751978311163695780695615974222666142751696351829566667822804245912762435049443800455514840312898837408648807091586777193222094025312459327229840585233219054493210512158367390625272133067734123770489061624847576390865087750512758468203625310870167708773144027334388785176033842114368745539443226064304814597294003336432749643034182394739485788010883492511069557199110861390435843023022556204028356206246220164343842483191365573924716956024576408387779193815548539586368917989803386824324404706650305509034399582609200434128430092279569491107229231733431060021841707102697332618123766965899607630102084688109950728751870582225943079799773033840202934057929320438002600017671877699357154269314212802759275004205937427720058774211807228168083442717620998922317376037316413057770231147278033196397981336196742649955129777124101206438936244360449106634547710964718128214310442586316638292144714259813634255141988202908927839424818376818425153702714556419800099016863357165474295990000699908377322461435076140423109835718914282180765557559878683035955087854894936568404920568365549460780417657785043109184291727898188420833023327607826335553100566184599937908588586498732635778760399879226957000508455562425331086891949804078779588455539558884616078314256544244189912727645568804908728243926284191750732978337279692254295294860353996388874727111095007988182387767097958103748283714093193614316757353366698354130975807246627214412196203048121145696986691063944184855461065437814171306299171217588928551494030622952191126072580686036489803921813205191902254826738234359935138428417581108228885532962943569088657854218059735173049419371446966347540330538475787032497449152079253250296472183508003137187481338497016922394640774601326288406931674077062296471460030109180878676286615276800949992490915894871257559377515102074162635331903457957220015500308161761247422841194857756233634456750338211988848408612468924631380676090225448740228607716750664792474757880189153524922205281185089716762107836918398308141692744203195865703781106631256569702925024775629454893505603917798460892399280331555477701635193689369285086398331541202728770091567835533303081876170862208540424286857349260937800052023451655217780966090009437126688246361447080537541849208520522576865554652244146538913273189080747764265691147924461836713367084259051562135938271315034828301244734519559585196158997286554383292205873093451799305416599829754864407994299702084439833006727410570348828885737604711686215602149866739748010217930956883932174765670720943445999745505668554389964895082662244596470371306366918523945119543848462116484390896145437934127651305260030922090546289141229809303171910476460984095461728929167059720354549674594526306683605828634043239118058597764720420422993481656983687690614560451990120831878931883610664690232412182949995799354961926107414834858569158064080359574305151344333226103337594936669547229832547976819515563405341224820369600510268971700034772623687327282003973912237836992318906267762183280214599274189884118107520380674967821409852376769207004335868938777779782995629503219555555574524772604298106958520256203759662044429752729332828196653815872116556848222853902841631469663591859700626438086347325065513024588331343767589980508666405482840631168683535602017154350067442388809381037674466947119596193026086044892757360790921850973122671077764373568908474298168496694777727318433608670101328200174400221274772491066736868736588998970791846972464148724203277519055464916991755424176154314923615452645689021677203932551730940521405317236002886655299754245872336456566828346056189108346948358109297414817689133545044285988896915499426169292739071538662557085017597788431468661998756707584377459357226760675537055841101487909749723386060465602424900568617521357023237839306731692380500887664599352214719079844019574637813070615974465485430418127152811187943079612729495671464810632716672337625148592720526369992763656034362479132129039288169698309207559041580605453572601394590747485592734742110304380622219258006524462126516386885984366902859447714863992434964280265622939902982254717248684855977326407280984963902277067254222078057003570836596412200554908392931244979814154770491127518361030046842574513857370056625544376117022008530598673806506066201719625015083864459561450523404463916028737974032048823678452324528421244221214365708631221289343647553026248282770697343972220975709806328521264376980675695511216297351071583165061038721204678799115128268706823179902722866965689835694689023286498040299753720559094112222703567050263720689183033960287298419199092186240020611291912162715630660629654511005432519270766459717353918673130975205969606925863164747390484515763001024305438336792470034947335106198721766583563930874268716036353598851410925722533021709636424698846424116682570855005018300095419420290677993920449472796311747770291418682689799874919154894736108323628161788007281036690184506934912343382795582555875227582782249481490560562687124258930876336374775354232416302367227547403177608085949932768069646790731881995020563139314139499725087192785725720419130111534939633144008531813102632565982942194341776898319774463495807739393294554942785367715546992838254911008572260022186798403672772266528218165660172048461021373508341165748355027638314044962572171477681120472407296081955899085510786203299171142429836085918130462678985325834288055599906880312758435940163100488251815140987852637751442963776401778254001087116460596985643477603433325821321404197318832428378524940723345932569557644084731510054153265484156451005982112129684795611287134165379038359409698223034432361622863646235922314319432135603044405131730422464724163624037397311532397529357520707814173734909888613430721912212435945405500964329427581945610126712485704612033394751689951173221974807026018742240551325910381051644379464069814141033410996362153810292872779155928406034293151178124592468204570941416966077108387012874824965238282155081939795292070457296075766938857945272910375973978331331983291044835715010172930284199370862748344837926825635183402353192461029234981114178453977557396757489754385438898657646338805676814646508138596087658450062479451459277638350761199038919101638767948082153175489419278994574240489418447099064976285634378194863840375109562154084379273822286550909296630804201208112022603404046184331976548739543410130856813345643476941847128817979941335439163994230506822075581396020432901254108471994665899122881195764321993448942097023886494590450763901881659467846048230522224439985942407581511023182644997028642934917278637862269406233458134175617591591263709121811505104387605279689188981380094974796345289546809093454879491654289224958345666374975296498072760701555300119342174493989433980312999957193499806742413656443561789870204406231128843104597877745170496449623765330107135878211141766008589447618352510229899415379171690814662508518409009910354664081947802210519751849049904211045828712561587064162115727034207205016195653966889785545447257680766737491896548112273523603494757222019963013166677412186745559200321072513801997249269758460281872078939082634331160338865290016810879043978136025823692709352248730073571111836039978933908906719365918216404020855047420266573867570454639444156580713130892160098754143486810555012459172343596456732795332834705874505149943260034392103688130473610680447095970187216413436058557695240317838798249465793932500180370654896157823482540691570859749037830801780553325890432302252128430443541845522722823193173821017596569622283058985701905066682749304785296850193886793414210286428568178409723950705626814915754103495341426129582411642081041796361716718172774209336494675054398955887310313571301991421748427452565020889219430016022931854108809918848020238640144288338415909410899482662545387884995549759563187920126279608643937244060563362173560194554106446720725879030306274492151765731258658528056341957918702012757068332489960567375289184265581807864615307253354428418539105753479269558717942169560096476154704632059776592913011001810492041091959871373918152205140101047865765747490570646192102718288849710421224232479539196211044634356144633911665537913635956163117311988972360026875955347251489793533298927188964348918458689592509674794130621127326167586303715350347394734221534552185298113257567463337765777357245316864439429069302741635803681963147136211739607222163943221762247815580972444610313373049313105221314671964520059889228582915795730123356533797137107899732257457462145502399060713450709120244710420872728609028874015013997894893471706613914297710227750245686486130844800729061110320883683386949542861160412838471618001946856731419561779132645581079336276510541186047611908996885931623467821027061338532626750094634831665811777612109140314424746135698495701581226620099782673466039352631278033996195028686237995354080680875729318557716567865704280412502870926625262316831944660745468351114867315780231919749698670837405284590779529608513954365929156884476644663498085200494140670528172164952582023752607170873644176291342329233570281554493974440216092731290913120024672351685020189170909436910656871764332175412842147025914200138119889311646323062381864421315710891699627214441440543041120996971409267591010359148842063027508843619204928941765388452059891274274934727612377646692066181754144751894216206884165274400134943366308971124201340851479499849628310752180532760121327190815626229030906352717566361539869374054900867934886323353648663016571648767192197638245309721185665678494745734559877034819012754249584512456296239463241538756365092658965542538011870402759162606789767052752642902942721877807585424714172720700293920515965961054413056628000168972080676660282852335412301679933756199688095115953599844396416582046364541948311263662270920863806801715540066937783222264499585426901009343503827406787436348224127702317198888821565283009082575057127990206620813329020200654221603460318327708066662306938138967697905601864524052330245862569534010517476819710665479990061287220784867797074709693159173216665738931190893848123278859599805567339990595929154989899560510953294046787596095368587022650663971117162176753414907977572222091261001895283760749370244494699939651239513547355637130621244800005133367644250898559112038873416365984474704214295399779056015686728125004068432280517453839665480670864169927854583016231571606608614916755102965557515113987208225073562858011690437221716555012943713458476280208675486108120272975970878928730939054534755655241878437197060668880231725566745180299449871518384717035543824375525929141869799688026161980527394112143140052352512132237595886809027822240173697130134287455366190939308713923859590662944974599889099733614756077186813030395202871102050755084438612524147417935922242613282659159198681429671471208424192941950047947895671165359107825083501212841175701413694375686953757279772030207126693217691332294377279337948404150571819335511400517139491829155969196782776683712504319396233369937535199600665877425973132051261383422041239008728940656785782805924015852120723092038770880079938416319511338835107561675660852712215213402723076753275149816740605475327113311885709148435167403457883361901434883231047925557993491724270047522284668919829556870307145519711850797741638079578797402702459495264112396421232862371560565737583544603667422362102586354843974537184729622496627098599525342203995045486596389665143980896713045564875464295891311762749522697942252647181977950665410578351964842343497692946562654684517795914140901902086644083144832661596967406365483424437453652275894811653002730765526293876291741868375806957006620503655288214344715784045791353415006461950585171867615304458592891861134856906406780294948152624242533761901924305679896443498304699708880715793478474034328514237911252233202857807034580493359432292318324991921068708118458647892397493517100190097078348557143480361129447684924333204557616335960411532127319210651204853662250924987671904562195793673199329800632130546095269942681018692744643825750554464216262998179112682564199881291204064224012866211282885925182188463508577708015022250795768917854550984449355327460190567246002278593709825393506744904536835328290567682038424368656635061471775292218926130004936421916517216989610406241072201784816619958887467442731539380811328356408479499796321073249450498718443075081747748172649502373894155458742599160175891003277216427410013228744444214799816258878792792607804881601585213486344285186095258230121682533115134966498913874009668127622384914568612177242201966080078380789262178831047476356903804008931504455328134676289306280538392656906837477065355495711159310079498634140086770000626888352218199558164333846495526783249115312635446618391674352465547067817008923052089500568233003282315955826265709498569268406699974139737830999554742591235971395092827402440122073771492288051345910910214488958504756816207987266323574646744957245515200950090118335056591823190394686197703669630488377097179976777331480907009381303521244381574597663748539158264134952582368299551315931889119007717360566665868593811055566166086257842499654330678569958626598870406608548396392715899219224199889280868510229017237980978326428065764809977613879068898413766854864245893009412540556026951267775545993635453873935372086852583901853964822937500937539618600321561926269936796760785476091659381762711285574301747499038861939835324559559155320546745825156438189177239899962615539553323538360036952688999003232102382469769897093765221706721027997260899629963855168115910731377463746845123336303751613644335097523076086212509348353333272472903676224730974683538821554920340362060058058417820128180660795639937926929277690410010030606117138185393380828956607776645995791441713439233857021743867231679237648123145079046963831723559996685426801934563947970491911393942229565227475745331107695923011525758033868482472838473715163140978028353871600900933494848605673998559426795973706936928525952370475980519446562064062984605496430537526949719288271501628110401756282526521241795805693277888165411362958543888793499868227264459564235995577121958343352828564081197707830196906841353547453395859990612415839047249302090022126106984507668464478463387026383927308120117762556839073155608929633100761505791949126548817566859905343634441752529076106553845808388147896966557437040282354167726133894534329593261220680973534442489006207326414322047166058559124881188770580226485994262698502054993721581222295773480910930741442547058950623249110503416396208749151784105818379585886754098511039006185759473406391550251867214576501206398895899109561419528087883212092921943692053975439095514075937210145597329744162379179551237336120343894893189429284937750049441786399022818172525072851787893815776745662247807225242594011299271874590225566787041649926867294321307633713721211057330916091043569720847302716070117979069171972711997926736249452077883674468843872177748582995912876848241241999511735169307640912000566192477966007333605672515138985181719316747847616940330929961650344488286265241871558744749688899652820456307517007906779877132023182637632927100577766057048699930992280703246740207430136844066382261840172260439394216875867605799566109483702554069571067174561397022649433764550836709213392078425611974370759092046760419558677960096375741408198403225146044421314410881311616499064945430217036158525475217211043197776552166483936053395592774003385267027556002781763635238302639916046721877847212563379362625987200319743580485240773475650535294968374365751138974385048003248036976561058033983112675792253124218789611675852883048377694980483461517379475365366937191466638762193917318462784631069395230320777222121148437638901372584679392635745801932275166527721657409472619105082010788274620096533724310079691491794928221263180938815396543796886711964336898487091278875747717326204717821908632497286010808384361716973611381446613694963566322946821443726681622627063914516064701239876975991017354270137694731296002342733737161722642834253033997431107498332481658580144306333334406589150723662219096931067601449862378444685064577220092230563052850489076883026641993353998924323810438756510619598416757403761019783139417091694834170270054739905757685545646746389273091804632043031609705519769110594098417223432960050384742316439920594402912752466771358795843273863625095021959477228790208562850634627700471219853279886515173086883274525511309581424286947290515792211151331289548168084042597623131631574265661317701987292857733711907956816820570819986463164537440692907781689426165344853509295801619981023474947985255100858620249014349182352695830245942131650064252540696484495000745723618180035143056976709206760646362578114359067178724949425436462933147965744376282829725137178375409319596875664343589623308272218891394167347362702767187768366845425706326998350990038323381839598591935697417304279869352912183413795940911836002676931783891408875986872531420308611533123058807449259110711739613686380124602853640933968153735915237841838666738360286933098203437943574970484419108286837969886653881464199087003394803735873586694613784530216281345283374708648362963784609038874711498394374486599570588650785915630346245917019869967047305850204386964299323448336898200888774936564549227198249864922045342249315005484405859476373044438805639925783779976438498042113056829046970248165620648112179392515645337935058483272958359119401571481123046832464375868958310765583839056103203445515634895834841265612337694163402105860555109771072844930293320496837351362754009352122401238193719723862124563437379404749524494449738487548950452555660176839759274745158516569977151498857193301555571696729744041857692932266056849171529877022433794888289579477142435261662434532851749461890080649045219562204706468264588403409045811857333345532696770600641663598092494938528495182120095111513911885007365864249275051591357013477144342833825841750290353486974632430108822256744686401121118400821040206334663542707944902765055654896263884535471510092871179109993866978638699691322391325517052990345069395370743658185985555851372199297913454312495924606531488149283555647771619225485645493518132336147773789519438879315955458101726335303872510903788265658660605013828758548668485492441652357495539471110378372603851824484185103818476311874544110719692312034401214811781050871575790677956432325746034300735591437333424894116886097869860835112769558062009699551537916964581089163035516785808390882923663279537444386803318540970128690985296213486940570302852870192577051759837704347758898761364551980314480419113400499477450734316395556274405921176201034790935813532872956783071500321941711947131473344947167768764337637055255657075658482397835016284454780863169047746887298612564155987058201675812261638849134128804233533277120484234749224370969771098698148443701495616509973040084964943366535569114985367979548443067841908155567757477209086202708599020658528322662431987888070216561429475767323131828627915169353324217014520776821460703462263081358003255475884725606734444236789148458344908837199871334009191090674704448408505438142114040529040544638333955858180127310699401903394013805597145084346555801306561771799710739405829629754503007200439410363723810057710529364328347138284856326761615298809714691932286859036694419779165416317025244553429134510002417569970570264579807930296597867146448869705481524503203663987520396961448272959908970798342915794423547789161475373249229855584409270067626258664681411356386476000508844939992965306738634832558757451820888005562957527294060087544865016749240279773126240084906819839185876883956448112326222038902504151490994759735414673550990909490180921777773977518066334004630119694768085272705473665708702144840351643427178213048568581684785995084718163590098146321014340235149572801144004192935140979131023920303519123708695299775890651517162957067965276456683575251591786060686534625058755088742998581613511716499733970411665997560031811641951847721766217667760261191195567783030283223825384673217553397854787247139642974708860929663228258823864684964635656091330489346834649491218105290568201862234222098268437535600260800189756121613070965072739339091772187156391485552275018997902213726451354369406966248519724162740673186226415412017864673955481093434540864678713952197858266638406493884015555272359376136305981458562617639014068646497203651189260571531993892501748372156992164720244728959734177584958752165909589287770907405254647003780758675048322601524313189425787677243406871591741415260743436796894346748662761767294560615038363397892145207999092157567406900399732553769514198659200033561009558436456365364381772737366047258369061844608074170902280068305508969778919026643037119637380177647090612631668468823439179935241362138210846023278411928047822714883006934943778775349332898619742992115933138464498213968752055959172580239724718593222642195061570519443641123518707772026745175849965303561320737540017958628615521151567631223294758445200888280826200785334284353142520336047298660332222924696174518505784244861925939317398992917971508120159611049066250294212277007833391103266907083630843499308477287182801259854665336108023109444711296440571347839045242035699780426238374523826955293047661637602963961683897960095254254110984268593005357303786849347450740969923020395706721382846962790883600315926686762458815304797868749387702823572839858240224316633876486625346667857936999779553943802763388191387980148679873035982769089611447176458776714277203959451923422742953919594414936323141972209015742311273811674228223402605883211097370911411410514514132254667920021806930469216589115109123283829889786254718059242912220865073266097852154892014015431114019209269849958478328025103617138457902628043343297481568649257128377660604157028056291858139862280304978064986294741321274249040711952605709151701798587958712201109998836145850733633212299209480545440757338795666571898291084124609549202870874023298731711324081847324614076811770293556790027071398071896287355899392852267836283201781352299390796708187330007514232253529609479262653750482297607010775850285080346679430871322219492334370695900853447700245200801227377891806820826030297531633811038669372806051829242554898452696616410323674814647993919920119563387064272531463374078064933528475949406017570874161164698420796998217459386160918219215567370194839906668389754796179297696443740633967640232286427315357173821004675708027325307953526720074848877185856555036740517991455962361464387770863131430987428017559005693471793826648786331492582679828361622718854538696282413244361593569934181374876430345702183305009406659280912656774570843384363816429521501698762875895280147075514463667978689849002762223879995194707025763044997939679409145343490237176364077672131087786784784536238596447730475943924904548109905190623795415432789364751529518114243279323611692204751160608277838373052560739945978126467226570121961684170948637397311404393765047894778699753315019258709287184014800640035276476313011352780935998196972296872550809360623182324902506798393049769397718962794031383950090400774684053715141910311567190618421846234411969474354677032378439241425892050189839554474216623195058623961832177522693188065378669386128978332368177188304592290570780736559221656875564020516824163899951457759934710393763451056046086246892735293998679184677432065032109598705345191926461193362216095589463259089848939943569642720384192311318796683280079100752963595764509761831994153502345975606083865814797131448626658441664340794110584347894141199495421998998173218618333804184148807450083059915485038745497820257025708622167056677596556646015340892528783853280417300948659618456299839844391319695014437492777393014559698461260792300450938150564884352619765248762316440379426638827993226195613478015990363629345445179988342158851369370391034644597377880291719774819695997619126014098158481723155325642902299611500046496985999084477703155966399278189348449586035078744968220033343734578039759236136767490541489854089296636351173520696759445799861421421160887495622178264264482229190905842073055283066763480288873855551411050402433961871362262003044903524193917484973562510595195223210517771645662367254988252911790429962945908210053073692445271518045725924591723404518810935285781656773777939851693356383645636475030936796482619370713235276385921836795504498859458263943483116501768578370769919505730006670893736252691563563995906300993303195988819126991973069968908603749672628241022464605348926096752486740405673350344893675258790601714312501552595403486341405370644532599279177783037721335210169987606500467798190062874745703529192032672367581193749014345885547218216945805003766259120422724402219928882950438753542508317909078422457777433299730892482697415530282117870095843579909700263685027214514224449275454234087022267428630472992477766407073598744717648195071455976568334406900332205054491150133537619836794080922331986489481251822758928280187899066808632207399051273342589854331932785381472501015369374434476629750348413957993679325692885158800130080383733007192073907283529028202161575318650192874799734669926995868385222941910794972690519618105811476607068430443534227789328664432637342274950936469013032538697528135983978224768265165257627195423779029093706130829840297464355095140704590881066747313265726256879329694057085479161826210092793360850671914814427753299577451682976884912426430086181558343217270747551117900788640242081885582717052101010970109551241852613984862166521859253179708463973970547179715086395140340624699261564928091690652831960327936602870736664305060429865752284446693696109408170923421630516934960122896801630867217121043764830289437765950193204112721658085261130351964038296221076755829133611326390182722381991402132313583262009188018331047342927031026282961278901940052847893221640339271644771209452345782482055137261580271273203809100066159951807661722352841261255566102593316832921984288347834373132139870217356094993402594441575294228514106043695744667377008987087559728444581381115720808282101020682329969304410194935026050062745853113402621093666257145014103900659581674801533488460643666431639989708007871944889772276254993428151530678097476389833797053952063915254227702473001619860365853761142235177182254692433251922228913902802455182363939565249354787704461711068372510608078910782686187822844583362663618349366619474438888280439649885830387496995258524980482053376831974541528886402654595670154227258492209960805865655076951362789824285823911002117782269197662125271686723910895161884962394791263922818894333352273671284654856137326490877071329704232835911935047998636269046476144137348836162921215808759223414836217132564083231041570542915152086552861189612952467633901375700547421643752250498470788148068134383427977898745674045409825958423547901097216333117563657793938123082995972328686332932103585604469832665375204991555270881799297136687934455878084183908352780912271151063928307007010824631606608979549189869412720468713568632424358895792025143127760389462235636944027090661887235317552007139584920866957954048674974562502021486086496712932837095533174387596901905957420913565312109991328503006163488553181752424678365280397045236138771548985086183232877525685601789733353249379204123903229748709814954633455597040947611120165351558119176600687865325030060467531266741909893103988296805740187108499784975632117514240590627294588320158154326471645528439435644129458744706236789219647268027706822869791397623897907620246645643339783299370141699041869134945459697272184233649405218071764369871312644736122994327213218572772608842814443988110667091289640712454670289835449632169238709654000682357920442065953464697153610856734299019416308467898694062067264044392388593844185686132441994750632515810618339918158454269724732365964195297343009416629622389077346005409494555390356491650640674973111236126038142406304942412426656960468349728533141515341070137477827768906033256584060401652141199780823024755538075998184722337550930122166852365243681397047731871219101594157655504627977743547059978461482218170373636939293267076808917043253377499565124462358407781660159089147514190337525839171673747654362727538259583228323756436779751122586501533517635783512951144745682240327241568401560047991564805480773499931089760079476410592426670224385979834527466026655948224326615582570615164319910353057328882485164572392130091289837763600208289245734217601811173190517573207351046234664728853443917193616534667289307263644117355134719028809453184052468946880248712360818285931912370991098007271425323637353589742620509158662007616519167540134871151918836145826237418499063079508002280784194460712752069693573109618772028969291376421252084307864863610575589095899460724900785437819241925913737211049335012452163682337798683603071511295239153625985658401787217851652777620596855336609718027462167019586160260262800720505149792779376175274621514618640652455796748271675883282965951816616775002272249992668001195789513931437847987820390723975783051296363067020892075213746369816367605177707045649555734255725436778054574251509736053365551092637495912422718395822463773734538584043395538696630152209411923683917817195507516171719286542954322568766742368209528753562319397149279055405748847097513990811669957132011263451040381558629146016598596832913760296347089362608695545588745924998047797297355554835577174727353724133528044111090828082760119733923032339689733105238659926401840050310754132970532220662680672369692909090947543048983386825686526989846520600756180040803176629474366005602551856823712524622983463797864571365921264574397106552283746268273511056846259027513067552978970882704105446217087139753811786676487213100387837717037219829478611738895652696963732842501155695154452114596181653174762519778035032028107209115505706982691781657854320702629161815643281128173754376831331459546039093040194582586894809640912042546789575106529447455687842650035018052343794765644839996371794336029365371351103539532525645345510903193491492630096799109434985152753862643907897033184303109031238818930159886169678162168398287845200635644655376470784191677943936062961831516296946741934994254384244268731360299193730116404639605247045645754075276856337185386890527422365563916100849903362354047209967735173257726652583583825719794692549263064431285158829462739023843989466050913815636822643551762452707231137282397477364525327918619068688006216023423586709114904396348375053390953342120826387045107432916346223199083778891237505619478828787535336306232588245619518633976562711600828480740917253451952526783177117910194407201875105259098192193162352049745083429233463159385538724387852060096641641491032346561366111368354223824085145087238571662696999210097741997685440143204545602987141226527174491123132401066600139604463023070398445194613081504565350946726265958053888870002863693008501781850019538466926977672879663544209237144467917267014688354540748873517209967648424866212613114573742426619619974187061158126895037219078735443119415425522617632145337387720300895092678212268241067119918980912037099197744816430864911964025451673608156552047068617353485726004624923177703244567774328097328053061949399277902126268995695423333473121043309266348238510268172524985347548887387815212903388275218136726807034762994337042665465673276387510704945234813773344562392153420084439698054654046145013488966117009095256615718325250556954762013589730533362607017593168198002922612063872706118480122394326395401224370671171335491234250606883536841054308946626358522775249791563668447548473976484223250588286508492970197577646817642389398473192595577225916928280037216999250610790446229603517707287691468653610535278545928616146737777324109539743942704192405008309602223490411087097053058716474780964746851151213732172937585018643805366731285519025083387419728270114592231948477699420873904919341252142066195046540486941446039825824374107635934024738186340904650566256517496314301549758943185908978363490348657201713484711339456723195529032981397392000720713599460389727678830039382535804679872992747057345895427839637433785631462008876186686892689485475225562821899650277117652716082628827784014024110726385615856186359186698536083480951823344438003737971406297953249252848135993603161818851420712117948884961323572379851872994792246178493362245711280733110311190112002971238452675720809796259335184758411305971708643337480572668287651409966940296537365999506836695530068486430735612398210197697834590939450354523286961822779899053372301222199890676561598022856056437697582767871869246637472481492302930130162440092641823098647943632274170802116095877852205268169754217449297828600514179708768959203404457294572096277911518897001484244803022295099344530034033043700690242844395350080091094677283420443790899888572093491767067353455489066992193758352592415015034071680184115789787088877543888045391839229292181720553813601662161761474233609455664688658578991309109952388712155672610938608801097323770739331451284983128202652265090196337839879102055732712076477636879365670033841489086083444415964819938213769601309334255818376905186277967911276330977683057279979384665621284587585994696785726407641972329780169715502407515350365197620959922736063660440875873619218307230918738703755039307073536671367077828652977452598848439508833907906626952534622246663668362614005542302666564862926628838925089840055772147385461540780386488306736330828735533572655245172439174441226566938387669232454921547564304133291272487196322957065557874805783877671198890596587940522630679196830073418708552596058900654164854869807581294811002896434700415722343444927779803445168524247528532694065119630705550014298345643220734728222570089869129270300284120249861418275816665206808946368189632494450132481494113174888370572546248264378807598356254837417588447075816298281133572087461202541948039298005186807033618455573340349234507236460662810105238259452325120057636280289233241723081205323705195033037349128132250323253300974198874728609614584052118806872330490902914050645290606051649309846458613052132137812202280604914620536330935273731406307243484591976500111998667167595726445258529878399081860463996738378622603901633021073184345064840471230497449249588980062086391589632658232549236123310184304652544093518282467801943087332127066642572381812574777382485426448108785091518906708550761766095700767502664195434232800657651113293669885750322448119130859277063229756702873227894003542847068435079125319272155678201355390100517533903963916036140576801647227253909008581262603932411703759354059964582244280106178038760006892845929256699140841400295261484679962144607251750448685850147981097644571424208002875585618428161133758141354697339569337100419738387116499132735646395484620183791640846823833892011742898853296267382891317849601841787143498254153000797297175038800126838161044454756735772628866456924080627180923541173317404147146171741165076710435169999450788551904045046594631841290739108974139971360074550448051719471349569260063891370669260415422292766936931897526886323876491258401406295867874001123816338090622980337629558693013922988625475229731596662323931654186837554564450891030298205978081537927814442045508691996591736443313438205863564367148736677253054430317825296964781975183332419519960369681186546305028606574540188241659903803903686300759056157524202568465214603870933935540920820410976579693901249592237364390356596769444508495825034920758524714080527376897403664988676702020114556883467148839510308441221310636044780409907993077295516528921358254576771224142795673134633346158418409888211890938622170656838689926760889191995076477389966460855864421132019970710698838765505327651052820821614449264918171203180988586854211325445403399587265315417076371079015869193098211913271995286896804045913517020775216055582128746323910940065188343528260027054428028962321028036492781217494279986571666046097948777577185988343038916290043183731308356195058113325530360414649429147539071794910735206366427826975829912562612488304853425625458469756551662872383473805650147335699683285427230714459088799013199771983142811624052133049524013243997967793506973747883473638315803107849487066964975666300878026334323934615862515387914986837906981287769497505549064493853754136727946694674534762735807828757348440393090410049042277186476534050820590889658386098004621430818954140433779190015649626531267651437560769775885888518709113536413139461155093164767841136900372839539137553217540313233096072587690836006128819344731897348700565056547213327190090542683872863157768719856861455558532163922872906424507930713166292568825388349592953315622876362845579482140768520669046228152350781982102803256002107851207875185388682234239761579145134585723323144467087570950882930304256507951378997044604275657001728836466866386143891493067927491759779168611677035631280762382700050285616820005247582748323812255360792242385799329399442676908369468772328606543120293938495054961564982967962797251204088458629500665257090934601165598189116468648727408316624872932378604614383384375023399190637004696158525773268490801699143203393266836231489948779510215484086273856271063836498873761558602059887384725216303918696102454183057502233003098063462904964726233758954956227423261078694988043917791910479469308699296203995533762201519802865526457536917948123650643124731850793069311262250770593332148707186136804470505978747262106893819670508501007781365493388813285626752048979469161905770947505904093703026627147850783653646084365416046982957034835777308785754433222836892638888590629219658476902117646823502543867050504444234083771523945727410852278592749138939407462877896858189830259168034281410523249127119402110105380729175410722003367630487592879001360495516979653611478042754887666225269021651306532468883783296775982045766628539598976116240146624121556339449575560119086815519170734858849105047647370319792904898720425731206943010983691054677765057719172467339772752431175084590710601653144007452606411966685806370630932321293070589748421055903701740332962621302557131163456362988240092097477467491379859670722878804411090898040425363058307848035278911989617215838692882745348355135202640284810944360242350180199026868610022864013318909862388630752224924700056783445428067721791043048359393207176183224388149796391034308653504660232958253339995566881849266369384385395631697617415133478033397316077267337719684180657327061232896342127918594146781455929872011639423175426123272320087468517779293482414006351268141251050107606757121283172613167704966928731870407915965166606683492159655280954806240655151579534332645223574225234710787387168745906732225789494660346730980546410781711419082659110960939295903351338217228637907790160297495164153320248099048647931867412039852543588969907006380565287113693018063830068888665592525951495588711146936884730572001138361945503615976742316151768978201595811081140870097786222889459779588349050376701609471935188907622652590303549001552081828133039681877410287230886867669587083069525446197401409848514255718144580324475369756986822980104679813210210936386623503400245274206228704463756393509922168850397167960893307492381299151701859636613172212008820267744673037644639002600191196642594788428063301125836682526608868410371729813391542950334989131001006998817702947151430696011603695309104671202031125696926593287278280800050304897211705336163684814842660191716002945842118861119512101330836469795786847657430943479995380895216023558778860658889369948048280793128515914801839954371562758635858564752340625039311161727659563731266627029604082780776950716497524901417738922511366562261984492790909740914150425142379394826420058036036403017184506280425752658472553898979038564092516079423411563306032124768904126075534136338033676397022984486084520269291598801985662605649953500093852995036069233223444124270621168305025302814864643243423540246164594319636786132215387894299221751120599206168826960353475147964224844736355503858840390174906191675617661999477842641642628443552634889652424981247162072153412912780001086422830782750647711306003665549876153142568186484306025478527274458787872098075046356772566133561257394035059973779264033720962249323053205033257065047919816653361601342510289332525137504508430151123440263435507551969417556008052106164066883226502537547685472468770457927448821630364042399226891763903959749271348977935221867553900429791788178062894370847638650569127874356695761129696884296835819114765959292470032028124888761117358921916457404409522277251858937152621372222447233440977040922739041173636851571672291385728025716539174389555574657217779068979457315208274396849901734969720536310296337205275710135882330960293383913578977515292931358419798353138198884535700199567219308495378923882222694906454477966944429033671514224633193015975808445676812479599610216731928428047110148843941469596452266675244723589715839420325787506940825712939908253695543950906520422853946396096999412906779844051226704024417080912932863425186663351476943978400783122502455728797616668859995542504484246660263528913185506436568834077741704482821353178337469953724689826802595173442157039822100011953123777002120296601234426439597061968610694663212820245301565018642141870651123501356551228700070194389721062097099664232320909783905279366391018367949679282978685500897478709652349701943780902620175943436081950799123627662864787727455707760144838945648386991431775458597539899206573824980710105589547488746855921369236251602102935695605882326197524095718089336976186902176920820591244200111816487072836267692923077974490520940722865488254452100320843316256591502239603460411286954678628869303125301103888380059512204164211222484441949714211575230821234220772016542697894761027761814145756426717284625446148087364610898282734691290551391555434412000967465364320173136259647108964904917589170808421387899405574973129947375537214960775451516204624279834436338162837837169588487821140101954896956573979481703599780118552503862215386377920387207801976509335541334445346091181307529475860590316958806034066300949247983684002375258238744550066471067012260457578018240365741279875474029909183267318840732008802582489669068281995971038672673162914347142181605257680213473109016531176269571680008739652077656679814131960278174499184686600350317287630344495520455635008948561877934789522986413260726167652755151889565858732104294412951899224803037167940992790017180344977353002958299445292370406032971342164964866952543129049671189365359572154477921004354108548670705731999835524923279923014242159070869764105625292634621531849993578922197790128107022153856886438900124454489244392375671555739106796235502064666218446171765550835054479844284745808894114814873308912066502984841370456593100635182026189562844268280371820173027926705105005678415583023651540741405312677776240243966879724725065658994592589973009224979479750631528241898812339099465942135244451361133440889637932748211850374369766740648020801084041752031908732626488339756814476788872317564545037283290898925412904161530773300147471432822143571640920872644012277581635375753702237575661290821478176414655648634673464568974791470003280572795941848753828101449282523268273458534156148019809836800510726745213634123824876831822974850929841427738970722154648776422490043626883880035069018009217651346351976214251530006657687898695587939505734850546710130842521191738111258694917388874616153280083435753980009052742583614117954268961991544713113937576951106297934908397983577213095336512774207849685830150988486197407135012679406662194067219964557135819295539092370915445499177110796669640818347853066579259613217412111920766519123257056155948446262963138849629074936806008346951926267826915567902603898415328895201937835122751231478581344993704078580059891682984123758018292571616644563521106977814409528378312786243263735618770504546192465138990385737316979390493578393028852900385006889119561277910221610071054260035029174195725140421022597285500534304856181166085982535643668653999113511200438660474821365641299124382293275008564259244229300759351339474336014697736673164848150085630227849553184390672114707380872321635841753096153354564551008038202266573723506125232048737658347827929939242793846629308753537702078908432105001040373897188481380790941779314036187227189195987736488995228858821528081561184074111056238524716442514949829394347610767960350965049733611979778710929567666190106774571152803081621410434755613791126787322813798636432655298917144674570800521903826871144891044313785044765703469507736411049997270140882957288177772187900487273705414279656156369559571816572356557516597826297523603017548774058740493452937575467360149708378665758352834134499024103830404063762128221520157711945795712742223527045625148009504986828857747563343240199461636047003957399919041622815507446091228964564893371865006097307818943905062105348726659174258660221420561146415997989147480324400264210922761727713351809408822134918089363467463107758905930581079388654832735175063873670195985674043987676746899102472966630593436311800623682719855365682937986301906913118875319491022426225189293989440697603402952942047743881145374271570357136677676729327998766910409214984267493977527463168061143866179728584348366551696205320183603047491759258820033765402953803361959083914680754478476058484787210090167691164990159815847717365136137852637289534066360193115071566267336128169689857886114660082458194362942149296798188035079895164020080028015880943194648912257882171349035352853427230012408540243474939958411796351843721898643742964296250102552023840617987088901980025160259472757836228048350410057899481033306246958615223121848850246786593066365390426127287233509827352182330872353630174253267658465689997199201522342773079422065021898136809022684587353871506314049024320652800540856281956501815259666484843827151376101494487313196301092019202631109805366687893368618794444623109759886415832289555568492855317062357557644951711817779898853644509019691734990556947921042897598310277984467042787739251619450086106859020688934762536112148085280736091339815938683133926451570589229075402287622915249441124682751003332903964898571178211887984481772420134586074325424593832137548947345381163397693011682092845618269341467103919823587333333673891327204315852708296141030195133853007874409393010386914186802468206700679606776593586019883226216671358129640516049198961952001510356790751233835076554308913179075003074615590390581792269502266788356430409234409308443555759043411781460801767388635582500643545016032458565820607699047972863651355210912893906255932379185370233745902303500071615259986223509646894496476054090694025190407741859617209687610540952841818863243706363993380731408600907074222441336915268083654495297133691098806560681160458619761292379708801471345404926928484772749601666596611270568948968590243556530191677936080375762429254691740589065556346781102196188187864660323947772277078290640937764832204571838160700262836792208999757961457484282863050547068710433284107819293738438827597557903361812330488601209423589865822357240103173366968683051559521677085136295855886432118152389172918757160885430557017515576560531049596230186486175172453929086257861739668478527421461775614147764700596977319598211420520528518069283278459397747470866766963257832740520105191540676564754370280980522873226545855580882189396304682023656747524030676565505245689865405679855381783835802560241658050554456581821521958943597900252638240075152966808987327789493877303858306266992207328179465516957951515269242348137178461463273298144498570931832128179209613889833801755244071823698126437177023742372799206137083316973623372304765434639341556011450932339757277502748775748211084455380739075173914792047106376614088559359236001404043399275900097697829683277522769044059269888648588723781657660755963183560319932402157036227602188013802269822613538147401467855370906680509715433553832030672500930701863880398881656233090706833729725413717129118998348949162783973668593816385243761725465541036482349522204736462202010804412558075131152574066078019165960314327449574574696927121525807588080858341293865585546600686171520090051397204681754602149242031672014318677440857342227587598232551013778488027759086849453843670122554900851421147936675642126961104314101363851618643088005778660521014842237315039818718338668035074667716645781159999199624078181459554863382925750150870323065751590462878156747442724274230329349566406975092984883436801578026900011277116821570805848899634906460779807484675409517115468388634465017505145121315205137552885671181815755018062963403079932642929118465522189344789201143348159521038009831127031854474386246797667457260744661137231485359856870437258227076621764705949181093289897981595103439707573879771826996542260137010364882491264082718639264169046931732022172886063729336242768639538322684561873831601423931290280055597204808551925909728161630441521868345476408516546221087633190630740420879328750357136846873658514016545612176466932856759285768392748546746632623678088299811665469187131860006407899439403811743350226954473459266163536579234822913142358059030611992624626623661751806519137105418242231440072375990303903926697925250916846699974253834002994580928970261220466173688152212432910104910185354919336735909497727765513799007698372067362644499726363591560817704690962115802144679024069421623595485396519146975599624708341953455607566292293232064213173493955804241312634485705660239982487682954094078518783150331107180684903032483531701630417585037497614550680299160048047739948534908143483750003009666876216720158698353348674860503645017124150868530111170295553134913619167340373329150432789876079428343508674234380036108393380323431220248913015055657622063108485176736705056661234940004447087954702715233964393461579024589763879531903202684195419857134328956808843605683865224730327597865878718065796122896273867572593972214133827647354074415109724145187916917207415279526212764506352956016013103299873518472202933788728649207502573541124599475365258641739602778956799380688514958091038961779555333444807472204568547594168129408354760968059293259993161245092181908549127609716627042582222387999339984014919919819279921920309228155371290166486705095198064356622999671183632338331941212012057025527451219167730578081404769511884447077786528918113926760940885291895168785444119167629328650263924046174275931788943993975887076443665747547193647418788300974851207539019224412815540393804739417547674453671789546717115888013898748514968089508399286479466078375320743671201016630677828786176831967459559195744951203749726880664879019534875663297037552205039966096014395849256592570406496131394667609515474741771440702176630258299765514134687031522004380882911355885457638888766170908091835726121940069032047403577629226992570950917783715412853832589304296566883492572446440136814358359547362206496452990184371507902391375109633609294846198797524763591060008818158561049989371169805559924265638149723946078991268988041094918672192405838297118334243245499951572380805084285841061682068608576556907985247867470107300656036360243438604702906750937445814986365306825332694085460749466929835296408084992050057569553836220349204875117620548379540011124352358628885593374394447128526290240789070699475361514118215072337255635868178465639614821004956048696577918580550997940819461901776375717892107521811120137111902446588259379299200816692463937188091365416977709545754192950338030762084355091650278404956581662309570461471221818095739131705043571214616738334620118600066781648654775277943192819659055730364509642769326686419065471989457457633542911633128893107567356153633817181674718393201462359487244343107890047062472303565175801644275922167905586421601971110049789191440120286759510704413264012660436917020766370719884494363217880256653179990434754066231788829720211455881180556328606608470074030619171941011214296220052880709418371358112845465166538806671514537207864976997001323495607021852730269919544120255919020912861801587884486473115870976526600900296232286803373637842714103351386158931696275562873455803743884890150333061493357562680032670261858777021737580241085354732185484979487450446785443156747920332598888794420359883040110813295377101373463789435658220424145245115993831882862552963078969322591406676528834642992871338872135958914924860969761884512521792605406999755266024696665221640543711202526897346371173775197814525676841332437687314174065993291012108165188091391835428479990866820079267118235236118979788115272999816677255659186218091900795482566594770130680128766114236187107762113730524938724169811674977807585839499767929533514085523408425919877635018769123450227976506904953783750387913781479766463065998265819833591303434246583752362989324723864381562342559133721352318471312078231460184044243033527495939356329168070756962217306894153187704426946266551134928004529660389307090938550841255213591672308627967812137674963822766063498742877762865537937415667783884547761635864185295173824541597499345098564597430287738197920761127533410766073221673109866337739295880303543458532014843199820655974575317301919078844832619794562343783750837692867034356544138099603430011569423192273423467101832685704639418097374465734164342619026195146894859441790285124697324135013308962064039911539637603265513167140026499286017807182486243760865396630484965928618786280843972316536667253123933029393007576588578528535724939565077970550960544265663035495229466698316614958251004748246975810097600335730761861877946692177246390656853978772342567513872935440737749645227136114906611874384604186354735668138354874049923142285755930438347416361956313662181038287014610340764125321274072504037164189976171230365748864432510394313247258694883588493320795546588245990183335997525246927746798273317083349200342953813075375371610524621820221981603274820562273655220017146894802748452448184496688400834409508699877347615545098352776377651657426929104954837934041029504777961405885903441498022486415889692825141893401814786015220763248644644572621591438996075705094369720813217100033702513653090680724061064267385133407710086060097992409611346776516952175737804745876474188681881266789800937007940891630600299678369882181644446141140763159440611158719501029045248046612732577573530675104426924473142868031423069466076567096059463946207476881383171553903363040945073658365735470083395754452281310703333346808144624880279545118586841377529529438763071568308651941063852533926741651983472257283808324669861195633656153234322211704620789316972531577042142737748119646052191692730363192480157497669139223771338823646594110126793096796429240542218031271569173694582587841156803127746099693953911316579717020399533383636059220711949154305358716485908007624850801582456493271426288731020179121011464853967983930969583777794243641022435365342678737027019903888890772142064954601425083546685015358921352844022156224742035614835404937076289650743820542566815285261092479026593564441547577341509975878043585288146858613919772923989577505951788380960972393321688060793472744732605748503729498121820838239581083960285226882201563066524971378595165320320640900242094824927149781118045115623904826216931683663537257961503201191257371902767705666114581261162238052225282555682384061643053693384747784569784632692111523337256758999896691723155534728406667517621780266599043971685585555493543138720894013192708193952259428058043773387203605955295428849772762928352014383601428296116243557540649135314521070338891008413745161256359795326351091127491137181767188775691370569398960926700639832903965368707213612316327665785705555003547709041655914134218028823815741793901497752611877353013575743345271854983058227680249296171622314824776490851619395272371564349155144659932414679781720526772769801850315741823926062156035830671641062585447674898390270184509314718076991012418104547485661342790927454853439740359825944049446072662662296973547524367399506964714987895709283744572857137769733824431285067423094495874581261026825676240807022943159384813547031462402879301300255501227345275404162739402516604534407955487150921885060131873139152399023735296668964457502105703677094665789032887620912565875923229455969162891441627645126599639995150657573818590413640386581089461398849984795546058895134390062551165471526345730089005641841204180584465731273596390510095516683841048278487134807427811563408320071403286720675151350279725481589828861432469533635441544972595838857162935164935901114205504005435421090180057197962614376486990807657741013859600215074612766656163763155984093805152020120200933696634426256902206847827965479495916954567229855091385668771579176500243767028623296779419885006045003385780364016898542964179566473363962232014111071132562824184588533474201941700825723494071589189926618655482589444241257025209273999044598256300671045394527834077053238923160635449243439823099679024367886904001331219030647046724293577528956680262918155030993631403908654195666316382892132427828653183163918719555383675027848721725175487227132960023305015941434217518739919861443824086861375470163578442467341184979326472809193488644822235184017686527625478656533752967398321130260591131697253488054177858320500619164490763148546749991849396934197078510060062404089251567044936793678543036598265788993504897033320887181253659333908544958606021724958597833699968557139857780266802286423544517770506862923826650380211865094598586618149720665948319079123075241520307425055632302047625124293862633324526184292535390626668924186140337395580441835187535167082327176872665838152532249972769320784980460146242717910344216310056809150200243839150563595101174889743493836962925191315783098427082610744082223911460603660293158676990070724257872073118767900385322103172345233002066267015504535957409876478382626730217120533419860865761473171260356784493048751689421944218080142287498778516744973757654846719427729858350108011368091335287780346247307952015937263616123314698834008960635267376622321724265207693852434791508796382700066162580317433264696577709531255970955467753207841329523347046558399485803375116131206572926712277558068896141402563529827515010698274500780667091743256517206744968444881841090765093915572722949848751079809239354874921217414101988785663801541465652235165721542993203674146861468873306048980722303359997865581101277779849963133426823383475887805769776699846521471581268596569245680757766509580560421514492049106965678542700139708041337969131167501711956452868538539571229269966270102669185865034220143850701029946183858444687079422123064873144144473270642092415994723302835795431285415134299795231534589791558569834749342559936568753520265366741619267459600021118242445084338752326543064839255819241197782279960188882948963837316567520272873999102596402220721886743870562991824470042187282494166167700398448902564825713704943943249584835454965289437711526644870959246043794462243981953987056689088416065721756131298231484883739079149808556057734094355340893421424342253004690328306898747061006409215265677545643800736083664752461697896984400643864420993873198068971258874287060619947754802502459439651598103366877378878450855381809339638849593023749153207242092623117034435514197727743353739737360024260347022840966938202793619764596386410315412194796670878663028331626871692038818551525917864139149285619982023448039876830439251494942322458988253824009890613274097763272725169317202926475036698348636135144838805875661747269484897292875801794620595573615694912392854825162029775699011045126185761965733905718350141539190806639798953159596945779165914917343853614529455093639702278194251510388289165864175720015290076027025245517046290643028949137894520616151279752238161187416284799983688890104390021047741855828700759819019057028423090578073623448495401611248698386010360436535309507142519944240773810778102424324218984714108557118773554955243105616382558023917129725528559891311923723110105539534912215562308959410551455278847239156736518655680496430134039171502637194339613238209648918912848111164434122572878911623513236937511872472048922728075815948073759373137498377314350628526255021505181827918622053467768988078942522000764481487049954355402728139474045444994309060634990223236294208883217034595866575869696420723023800524853086947196500939551357651375839147172090989336413739531344949360802083211845736208104038717435168777397852228017441969976922070557594174461035858370591604409993892943153469937991569103330159646202970475314422828660924132610851951934332779552370740637709757729584615144694876597205571886104384754819123182602022106541433982131579610400216583174025809657579094346618176860980566149066472036762651539155963320466518642105856949095346625203364412221637242276701803931448240703516743927033974861016126811155333298337687652828261500661865492613514456642592985079090021478925481494645648684121301806048257431707751129921287683985572914983769580588417681451301613313184336569693510947304890473823528088418649884015812169727292705805995615083440907028344838291069235044721701115216638940379045029893732369855908475424307550837753861641724133320641856338617460438155206416735628867903966585831606070868272293638986219384963894168950499841092009565022703506711407723845726163208474178845276510074174768959140835277153130869780531881300167141807652630317979703706064544089188296126856416283054072287311475183945627274837168372004696886053022183357204563937478663505275238135276039662270791357118736967439534164762938049643221517697921930958219048381335109743879353740008039434258958659434247065232185436982480426497904234440663215726441359481310014843513850434165756534186206011622953925677924051431241778427419333855131441745971451423994691309683593904902582019008462758574587603344779184811974005203069442223072711862449923439174050703187392363425380574740635645943509743969965702021595935620466216444473808273049980814575026129371037179331796370412436891004775094727622079646556284413518619686055495679153024545741901746107193879536665245178753857299384998679098950293778862230562713432387592656961639513521280784878731629189451338201216308910390777197665934666619548199884346697536117426953962823435663368225333872989931327126250349334163669712398515166566218102291831311475303511627611477657178788350376269644063140586318586119269654784685153250666434520897756435181838974016138960785296589226044087631198212449029584373064111277943472145863193122985491531681993766347892036392264895170454898065917324966709985593504849670513582369202640783596755393667458950632276791102382638385355388442935175603684949465134121142914934782491335248583719223999572745958023092374600005241496696182166587698033717851424927675187296925356847186783261945227338563094839301190619556642918038980181561608292365033182738918315145637821044636725018867691269498003754816623181338053873013370655062431918128706681758969264888927571522864550741784638353493718157127233314206042615699550988147166142236589589065628594347552109867393208759375942491305502099055820718129667847288991479295470067290686488486320468324380771811231410150289631437052946452087475358208483869663172994584840876058575883878783541449208793526283063496860814976983923315221775415696537194753830192924698966646797821288368884427417640250590200562544219710134245413955627303268653511614535212630010627770519153271304318419759788358273313928451373251195885176569643639555667711531769620092181256869775573857956392023432958695065607329077184971905325917851366617881582526421205567340716906058620363981782897792163297730142806424462020150295058248112986715440627119744657846814383528915219440781240173837196580478791549489041103527240842260204277575595109458250761461203072484543771759270180349947642133049331461407013322665347251708668054103613285016478082580420753246733647333829097850979849242612747265070644129062090207653566948358974701012970403240372561645467099002352145466386644537394169840975801015115066564823732967233009997007102528302477936484311370808266887887036898736038268422069724621086589046986576948030365983353079465353528932248631816820004495657619400201869657026686659515652695837528083235221636297237860974704290040477584270971757761467123380764567093985006849681412065022587902016690501114961965102742238949364134909383466293501264802459991647774298584108932101589554428887421706948870631260078403038516299746268126334510321149160439959541543426673083131200420260660744308876683995462470923893443061824465236906286310854530975897500733530521163244458449583470715974720692819795947787947097517655117458316876013165128923665340789809655539235966524440136242704380664661363568959325737359557339394516696509518910748097857435223591733030953516259805840544039634044880449456290211474469269556944964047689076390605881375207431719425173949569971299228764595941297517346818496595624520052522183368016980889226655738505971729435466160102199971822425163046764527626772804335987898566371008015271095062248115548356569497136539675300988448803615648342010780439394417666193437050028563990042482149129201301592575049004613184215824584055685683685318306038215716167362746487414511923399988633436631368836353563936390885198820370212159075817093049777360565905420105258122962087401698516065047944490531097382159349071385956486923678104317884179431695889204681575194281538504962153354673620437178729955670740587075142659000099896088887338017054371893031498335349756066183779901216442394738385350728353260505887011281021345031051152969658605647516714902745664768060711800833630088479899271687203111638743923843073073073570147555428875585708439780046808653658295202482992694601279556900822764904205795513284230068840347647571292873789732471943391078497756562984264568119751808353448157169290495979832813714442234690743635381485602939492912386934397792219916800695291290290495182721198732729936364348537311979738682767130078617595960150825393044032817431739693792732207473121861611252186669712622814161437242845480325014447546237710206657988640904105819722362827493758033400594779296797322312638929858029798366321654726939219881121025125346184707258398053816050512919684694016274098720273255821742686450705371845164965479078807519289150356416107832318894785293670701158338937073687722062380603919412386646952539194192408691217251547594040843043259152964061067472619842469120788378250577688288356445939872864043294648174689615120772239886723276441890461581304155108241884759312726306648806945504242376788324549045477657738311171022200931859775964596331369931195855894178891102313860926034847135902148849269925560627183807745626598153966653943635057363947748015122668230273433685240733250435243642910894071685198971070933724067161796071216034005867159593674824029172860144805045328535835824194290972710555695064284277555610102115408940225134675308732517240842743318516106396615201907459258915053022652965812202739635211484316266349194297204377422029778732838760010751466463260358428375365838604240100687786231450543301408404104079579769824502472995375269401124967130848638473497526542743217346544099341967717527858226979579066503834857820139582492406620741262347867530033525907431785591701728775592749140122082122045630786079452117023183574750676490309741715987676142869576286431335378551780530104469797837833514758667436187250127983468945751707300074766754148933959986837873825772706299495279134965234838621415490097100092117666560604383853230777365417041135427398589336710539541462348771394443593390746596330727934554017024860178875573348264578673820070228140717630640815919088408932485373930878057472042082048799218688197578210241324283507402153843189020957014493440238457072097950446264018249680812134743798750166235746578221903720167546322458359468828000139479687540376652700170338018002356218974236702398853513868857564183026700471798772624671962523489990890397015935602457201281061496741030865546343525472471066996514747294558303971587038969274148903399038206349638008932089836234428861482408933150445755104024965417546017825432004392229107866210643896601856617417823734684853220037351410624249229761747461540804902160911025508773619388332810025405713332854094463641045957884606551373352025136720175541170389282350817402358271063682937893027061065252924791011037684547964507166103418441580967441563496514546913845730163706353139301196737528236773512206923833008240841543101550565829358294085418558069692288888969834831651832849221759281025760222472344686740142786426911990839071320461984051151044792008185255531751397038375050410849670536770285383179677116847097194436169378458068756978911335409458455653177091118938271660925341980834003672359527001279681411124630685604852519001206530280152780763421815832673836624248304969192111961775408979848775787703190758507536925251114496964582772365019059606211036046653756846255365727903462089052165084057475093495538175174652469188820574535664149509992499734684614154599449671950092151851469324266998517504820398655608193213370097996726999641313066315090776873146336201766801733613984781856021819670695522870497119850604985306513507276318226816274257876144907218702363486739308686091331401402403284198189019894194203707642612771326305863160078097713848084938733676394771254307405179697368756287620205082697433919776243175638836797982452819048876496119773981067466231635241917037306335459857640543719352310283349076777262120228224684593469328455033933049179050989388292537282575696112116661524365431373240704916298748812694112569342518412110446780829803528020652776465655523704828789294991350759437446426043454006142969420051464820666734454894843383616918505107546646907404181028279614864944680827969580067644945923200049783579713653122717420152037791091238479493031806421069431243586601085610866706792661073178032209439918032849064994170177187643820924316526216102213014396611531903902372316035186717562651174519449108450940473868842575655475784761758479704869842241188688597758892756441093470559299338811199258827140369125344925601691127345362452938307206942489243217700894374316639621682589145037834687516580819873965753268827589550304376127438280884491039186305407170370354144844496317763360588001234395274188404344927249558641753533297106983957821574840561446043808394488106963551477136626337134484691121180005131599978339513504059791155158652355273413486418787197878842943884175892302967717319290575287236594234362248936890535636907145881866285928275214007857034163616771173376302782402911466449885517695946930940385748591071154987817238485100161384414181718144329584110847272468852994113725162376996050272366546014050385424677254446135745223499560416229265534895916645769089032556526748124129806691107722798116637041420457846811853580868110236219347252509999005754653929628898937602978783796167410948278526573131391062361729057692638172636269355914125276293054708168108919181460154870853146405816081875431354515101938878063762341797123189827419744974647576417412402458552326218734227288448651545546646751729810103546356645315177014789033895159526673807582344927755623067573726620780144190118581112894842804705682555465922885236332263945205630338422360660560572389705685674823094425960120233111537741038432412853054620358323896359771299242868402410768402801334969525302709657900818571000616013933093101281462653147649412323326426086445039955532631516374554197282142837317796977642661127305645607633829796664971500451261994236456417401935427817350883176552459991430363160427203625492144687448437808910303797989003700892207939857085216327758653703660404026394446878320575990197291509157192896421307577356795367383732919054592070693511567942490222239725101862553676846947350781098757782883672924476778045687337372754979565944116772988463399572110714659803151692112468083949239247901120304183616643862260083943957578604238212684768038606882999675675656760924597565055674552244366620865100138510468156488032611120161043439800087371310855388706248620235186816614102500225089348346497973123292722759042181508048166145117565142082730134092690580716817379152024225872220520147282603179337995323887039015753470514834625668690461078591038596073675002943915897115331047236399651601663694748920337117630523254860788189533204438505886663608918211950141445135785607080199058205359015757289164470705179637476016248644764855577784666557152481224592705927708686033553130447329495514744858675470181690754292590164282434395251481367622109548074309032185853874006845811254509185012718855011494368552382209823214146002140485149075160904607494903039479448864539794843298436751449940188093765808034036661562970299335641276367382986015675041111463554077862351784336580383921825346614846551092167256798196253963382812425345533690559394229960479540238018427782443797851389639767046585674195644732388915908457407143968105817705064385848917715933298960522524175028314676106108239205601615169668045150446661056147068238332297622155278465900546070163278626896810356105074755357717045892577851337341480697614059250483638373773177425926834530825635080187695051187598567623515622693784774350867664539631499723779264479888088782150902990565899707573259821416842509734320544830586549645519661503388089178056096113760888544217091240821558513199930325045493833435740572766996218393489396397972207982538622799570939222044692629951129956125654752739119859197484003102059632460842553253164925502031685248814193531539385787333657771662473660247682686308017271147998393181101545833174004124711395346401711149192348083448281895647791961512403517185468512436754534396505510586808973721655203247618103917011164215631113620858584030737950941995538167311177440503134278051510998255183312064301553950058476401239929451646530844353494091203829778447691903583472182629621697382470791239865237436683884732895351939273844289132793128586658852418369109085394918433827817378892364787378402363388422807282195113713817036851332741036177362758962488398715954577485639968074018077620440480553276918945446882816389936580814849795654962559043442620060141450308253192999249638202846180460223758056896907162468673138455150334291482453929624440450659775907284841263237492602281055736106584381146843803063084203066088160017335923786791773765420970754327468046220080981170566740004121757630676006261322918474906766226607507020885224379195775761230245126228367597864769518713587473932253420001937829538292383579863207422939490312342965557713840577923344530880871348472794538629785625767609918135451382393215098117678962409976648833060974225294020127706854312407376671678086225864308564731745546623745902043973109621818137658014657991509637950525078240625527900931608527195035074791078922649948641133588323530995181488438771350357877966035864134585031437481584780612078690247290792101722459809329217785435480527825293828242897122949038243816441351982712320538515494484514731879917472255700321385933578502830344484464635563801917124673610460460699010864523336937905316187520424076966691060455258508052128524954957071159318284788993069302118745238997146154460614970690154504344183055160315904243744776786489137867791053493606058892139620951654277940983304817170546077411377284109910060681455046107951585897738183988022616019940969646838444257756017449614960045464233812148190771254144110073279425791949195272227967887094535944018688712795106095104004359218798803378700248168897678411210051459138633753848071822878196871626164219396225667852537097928137649247657269687378034995588118326180183522161559495926269622237300272765959794699892016881666412477139917766524526685057676272054922045232763215270665706252377826678841255409989678256260456603504696985940199705321484920402946216333564651688049592948538847992268966808461787499321698901444270897570911953360806719476040087192414504973106583506058933331361874476174924041485803263835527730873796593168584211457710654874103276928558802929665883530332944814067398089494731479800334999299050929443035705369447349067807885115959124174586549774982065176006369802803706214069492659316679783446730058435129211582810359471339897405544021050487659430008377732330299708821343885073278995767729761136041378783144534732439646506625428346144059529464738774534549626047795211192758294212694432227551306711084270390485458925703433849492034331531452746756132915594251168903366657656573210831671696804903094454074881506579765916811466643419693840833825544833498753365357824353935830267383230588898546952526333005970685579711376077881570556968948128157295374692562183695047952357404069125100191464363733837738575344420204517937060552468808061681701578352953987275621558847214073370917870106431115649953144072482975475419654971875846818964510881745273421162009424473692336823689992849960917309446282507416534358634337689227869861675612650399033641792112942918230664291056640834845297246407639293575116222741510091715109218373584524582301141411772075479437416971141555685955586462014769012158602359089697614472037531741606599042509164492336154903376412138899817648042965954471010079833673060694977203136541592997255234414087427239504657222894068698793225446519515337354097449302608704580137292918716473529821387688961667351803483394426166903893135113652614614810298377070576980832818306847389497371292469031353752378617559600928763801668702493479492626301166022394312305515104795274316128539753934838386993522154019230610452694761686579733554107235499259138757976602954997954013323962693503762659270767201859297599991899753584645580289856718076229968458753168894473473285766330074007799307849322577678688914169907923082712518144389093184423365217007306718256908471832365590689136250758068555960647260886142365872589794068155254845800806311086970098832616213593720551610480272785002047942173152291558395536219590036069944619063941964392826093965033612523043239680228413525608854415914805008771729227508814149781795187252166059988437106885485328857021418374942701114535981231520316018481778663905166862104136491758951463815924820922803817746580061650658185308426861533979912498317033889526646222537832013657874979562565231655983838422077314268341439432398042124184639762709567060538982925718476123095141532426782717143425941873638670226696403265122057099413307686161166717386229385395584685355421311674642092105534557689092311094107603671090926580036710623100808390166101248702231508277366874264291023270884917677735696683268646702787152924774660950497581699948146410264435496400022160175097369983731811014898608547294605704834559031065137422341791166676787303302606391474093686021374212090311970064318324095305147157303672893565917306703927027515725339748554277471750405520658151556254451164841873162149695210410549889003334912407674837116426190141506552756103000381777094689734571461608981698220266516254871094024084989774337636650122801767195808673826087593242829276765305378051133388351663646433836715765803876205829774628008497107538231866250761712409736471967432111056240811105507836838248877958011694800413793938566212426782321803314691859183378004950609473558162743195143880938231681053051156967160484615349860233837623599347042900563039059864003402155541247013965459806128336338780547862585924405032568861650389630422739917081297877300623682697985763998015032602209037400395407541303273833657108479129333357352768944644020712764166808962360814095896652453359465353672099593517781877326032373867965037524931064168013857421477858328227183964502398590193138185906372720355466118519403188584387495396151596868439810266806247996078716023240847882106080132779405785026362228774022712034901781813379528175919522651400738150842332926879621560681320384660255642257642526975020957506761379012092630433179178783648285437349908702878212701687492752042374819361243610555708825502178612598645235998258990766657233158851336922475582016714885379288258098427680806733849604477124715858417727957427200317949850859432583671020326235881495482333246494181254594408076139775991517338380078398605038758744601009651117026475053324797512956549002762337353466850833786597150681119279243402367906164955743911065316028970341426582542432194278959005774171511444612204429587382405056520500426555528773523713395940390038992735083605633489134543645793204217283394407224253646429341239620368961282059496737356805717820070075626037056809333221675364288498059002557531518259120486392091017588822730141309689622970832489490082624833787393166117994182815582233682063854934942095608439204524975856797375539690730136613952834325367813466976575618152782163752265563514484061512792580380701061957462150139139884680078754903981922679356927552123901976208862432054739897477465804416398601080270988200136483248689092047802219675875803420143738174145502427490462867263095662342778768821299170731613038575033573789675413846697374175491992086691939588962884626239497708936288955423332413756513216483158304273268819993717312401063736362096419301538051170855555267516870658184592582024336186001872575940593266050984760340528581456707512190489596343747234851910244448211888819275448733394308535500184196326134832869420637175977742610505402798780392981742438807582766552403670282307065738342368443010338024544520273205137790654761448658685797781704956674685718436316359349500644014816125201169440542180395315119911349102235189842296117465314760669468257685142242722423973376160042278849822115815650988508170039665003576111638171315173242760394633118319150928127737572290647368543367210170212387332562771106962042474442110562039307815756871496613186996521226034307390062540230634205679493116913210952033766804806650448561228485638959519370503455416496086028286691440326870107160419783146719078362097588435541277390347078490240354761410993536852668101792568956344517879583515775254518699764477025826867478451342862683350720818273967469385398621332441328755694533201695635106699180354375405974026625867054306211933593631086669204303054323314828636306056958750783537083804012786528697289495390722841987536071988290265917978186558033801122385904532043662553555655806502256952853995178616307391852491577146977972653766870503952805152153050076242839865619794828829175186819984988672603353404433937565079046860596536889306579790008465750050349036015183634602143328005684159892604402544426042819424335905024318829086508453843153036029545226988428074911776296446776997287104314581377311250787299623049124263093257360971786526142338518247170262239384243543114592758302366559745974990293647980835518883117346970089356611804566861082194530659563560186446450648433088245414507643240164829252791721832167782690748644265254296835244695999472135201163933773702539227226010760068879473016689191589943170401343516693455838520933934966927013539703903795914677260015375795296505856212847224880526381743386293381799153113068192247497740409970597397471259289401916110382700150946722640015629798968983946315342837763085711335422307003742343370680129042160167195228776478246175822165370160700427905262904732348548594733972306958945103101681813989360244996487920463757149951869857824549008992257602106265462203704855711358774307802503957734861034388352178674058083828917199294551987466271070038131590174536236815566774541281400947779648565853899864002475687516763659477144334400375503893889760035148728740722576969939697795481928109418843822607314171609311557957961140012387852490188801210363722810383764990928381330477965428568069942831799270684651874568047818452225353152462289896786545571100124938672093847895973243482075046509065028836627852973805318968872947043597580024136400538141805421986329820716046935315669757560610925477939751686784452093152318841453298240230921151486726235040365849263272936440663397115165421031241941386970281275899358583271584088692057655105139878898024080080927537303251657595490223388003899561934955482028502382704076961816963090866118568415103963881447138990726910406784968579227477167714235126029365661627499277668107022576689268112537563297241315555579845171248975730411389921599573758512262060660315128220036811315340246480198549633558099359260380779276696282752836649457853129453349959664275896208398683140236932999336123189738606220000682017145773154256366249331588444369061894297615440024600440530721468110751452372553050518116558315906969857629124426497501422726782116788265244935032287247430295378481860471187714411397201623590382666232722901165475109263680030629510354459201184411361512525501853763732634129475484550467774692332698141702303240929625238493036653916782402972798809183453963175604847349412707969344362494344632962448663905046225339780378386686541551563398606834222827230746512615571395939875749223457692179426318689957047456096160363082620486005813920707171646188308728581419648533146976352539987020153559930840325653594472941824214477112931981062901934014624947683550634099722980524324731972227221261020081582748429745151863175182722729111456259644566387711251540586632625244769614529652731684305008824213441078517885852867210103910084119490432628723206400633570382148863174445715408392672468831432332606540213268907099771646453605305618564470448834747722321749846516960025141467747328106744254700168507723499325192915024582467293979125300903429541535433218972569244238298515525047864411178210267378051147227012211704982257846559406833682733117241106611260545712138339595679909775360332795660964246287271428741177652717056353557449212962159242279788702895917266151042290143047650063658448274335853477118298968688969794165317896654080188395188776618148444578429197934091273241962112061376151800242249034168823864990935210173749232718393488209386825840994518041945000102386660113364233145279901786078746516186019368152428191184268244065667696141638294089292079526798374346062319695607636425022263710530515941827545936931820846509239620653556051704260465441121103189093933512875175481853976372335283162886106910521240609929986286368782490951166697680163102703619715810502192437535511301772506661737852931217191311107833895917275931789201796789363447673158426125583883245822341630968948594704034295673832015608944959149891346812328750872681213803042816861204066563856452957193962365861430047403291642944941764313361501410081545615638608056985732033799164387949670937299990139791335684446725317383309265389075723500239832901353684638037566404729273329198692862628395404441620064160668128721304354201324971264090465773430287076359999951958227333583696401278017887268390376525323289126877182691964421245010095391567682140387872268247803529601459381785083710310377442394938473742594262328855476376266412486712217476065638708863793406597378818092075420338999262115594131144852576819560228643683908891849637026095741440848712426679169254541445689942568252684088433312586081965062741648544916383965258556153135380262774145174933016722157492447966326781477540903352651627920897752331928249919204300491243657105460467838249234272681683855947205106823972762433925105074445072246268819399266189400211054140546929575914089741710429687857232316523220249871824474455609493143311090564647141319623072714003629420182197566703200244897722639649114487373266166439628703778896100603189232328731423556621264546443022313305731530521038307314416466885300201775634218669958946352693758691730250741638836119621778827823547309123510338618567196925672183250878332100028699656440386747702645155114181322789183810825256390845039694165094875843822122240561969299817575480667613750823179717479896064204072817892565847639267598783015744518028172248841839729959504463585100969051655781473146677274303110476272005841220417045843435250892944802249173325349141169237578594617625407790355718140433548271403205563287473278168934984383122584330958600481491384118208298453779143102256923839670233597644470911914809707598867547821929010641118667125635710105168558321350384054208114082046545443047943637109928210502576106313082239420494357711110014092461680516981381807596649726341079863607759990354096013879351760502222889372823323434458948685919480729200727064298338960493154954554061894086435719536336458590363944212027282744153772190252403129912140202203650958840044407643775256043985077139192564398594523612134712178202029380737011346307783033213602232567239982798048637285633934738678090072774482766597696930935193368183052191251638986472113829890479927220884059707869261813775737663369141071759325839835365666018341914443594143033174889421084777091336693025458832959694828923191655294435891660667645335865548683050314164569186244540721599046433262677389741514125462396571737136555148725629726939834223337937383231216625555777003796648048952986503319100859494437218177487653595871457016340528356341298569977481367323839543208629942995824611872547284098564535528332437584253062719214375630842126178941816400410710891220801202579003286861772515813526305352941061176813109026795824703262646127330001241142876408886358624179200346604078824555436126803770039079813559191246344763918442315395171860626336044250034254922111832550073187948878278099074676175048066308722766423904646666507305020018419420948285512994960109696112061282309238329744194977313182252090876547583256555448165495741366956739275567803827493999909584115897756861756109835916011224553926004578172916864435741775333915889719369333061830049713710327048713212561740162502389696593011186831688934088982027266852326554398714232014291543409135368288376368340420630181113746121773334085799800806175515777674214538497528541708994398772614046536551299382795720091155132859133636393013972870881464703831053839963724703491061106222333544226004159467832480067667814125378091136379354860154727742729267523410508970632153438669861300206577865403592764710309301362550969455740895677721933117560972361059685553208178596867442376735056574108192790586666655180839033110532920730213910681291534603815383638199164829822172698320804151074653336854869511608673909289681759716543294665673446513088594377889465652224232519857222014456790325720287901739235306315370257423718392858692622887641831919899301366839517627035677688257748439222892804233293689679036208087216710074473401537061710653745763702807211172226601170509372202360997454504946029125558451868253876288041972833661753545774843211433247162499239626184769490446458707790144374706207196506104272308503248295850530950007481512137352931477719958946953872735799066303872681172001165015516184800882407932387083221436826654272069409744399209543842254526019332374773737198777863550731262236936603414468248861313410425395600446672918491131213774817885145316431528487635469298775926778652259362625928610777472093894230548360378470410481563948118288902368457214370065515108430293136420031126333958682333241409429815356756069454173349245352367155215328510256433311632663840325111082590202745805779112590224341172230269718016545779297828764203165289643359731088513447923508836383677377160943359554210095347044809431783427932191945061990775644116331509127230967758216617022585649718704504157210666173402015950562447818253696479257424086775910088330819374427261258128307385944418727110874793077739787795627240126977474761743682169345570400789061568056455200702773448727953796095350525075406509051400684935093527683615296702889305350778664348295236475964934295098305227542863453827267477135145583477709127961001254879877066039453489635895336760929248526011298637448136432406863288811487599597858460019790891952514090720220361248757519159419295810836761413592418766390848852745418372676796111298354453371554238478638233482780141690587797727176417158305354737020126948299802171097506118500172274690481443646698784898315525625351078051169532765769863978641809379216129903806431189511050137950308200160146516269858094703768858843301055874826797041234083228444250136457505622680486241518824089169009972658682304543958605388562965671271351877743627769815214720216259375599857163315632887789300319267999980060931930734541583653645329047361957318281963403864622850936593790304385491373230718635978624580426130324812803154665735237103068884139468569351032184705205659300330529805977987700585481985615541269489521628111875661638772159454280046128400688029871701742796584177192243514459438803035389677427392279914530916584983426442207731975595892142386198723668173880015434270417738266932146405275578379254306810233391002365079653788738158145432228830733974110669227853414670530285926968474798311973017989578582767864084564366870613297555551621466544805702513236149779549630372048233599861953981273575922122275500135831034898038931562193463972937391161108796112810192959596229370381435279286417104494353959798552296020428193949223574549552768328152142469846728667532650893719906153547237427758853265232544581660095410210044146532672547485694556011316633436438238092341255877373014101788455594750519109581040955109288960019514601851208032729822547705351951385647021969718886829334990515766082814477999296172655758058125758533878436286390740051222384202559408812647789837348813453025437573064470045661639903393049175278445485204663758492905170391649516991275926463728245932462570738108317534114827009510230741899676180510911818524045888147205578331866678301547156920634111890963567155696778857531032107444919625953166195282376813408485981162186695495223688631779617514181483446822471068801481593332343988609888664945884529788214277846284432929054951346591521511189824179382287944809444352594508539489251752137533198598820668566466025794187763334949239409647509777023058479225791928794656710674170440601510953376383858162644676590683593057815721419394193253545903556063394358754890863371292298350472117126208424407091538850664942425555290064854333080497811946818842624874917493113904536253420174905904892849584795639093154059304102013524914244221401310880341646125943548817597602769297281739957635006992656778478340008010100496531993516509765585002479434995155291624047687814136167526876279630274247090491999198219354800392847701198610449130083082437776766075301615644167235618507812925051824666929772432230072576907736319855334676049604029867003996665361198566192687116173528669848706014617624826268926550657944588003354217003320733381984127408155826588005519774333440897362608816283549309391040829447369818676823434098671823314118416736399823923817685333429226511071906612769098869174397303689636030186276934876832058045431684049995602009895805966528917231627773759703221131392748017435590841238962856871661133318499566339841746591422386438655624173421361943533708420781658684523386519206558478238756255214748434729336756195211207149640346698794800676491557760266436575912047583767190932262889781825296977415123456095536428139455946459139580518165858762898972723034394478286161265651688616289080932441486229528284807153177453467408674158919292005696756967460973124397301844747270766108256859879205954392805136571136701981625080593460067548510197422802910307916911591242364155790391996117078217119929379408319532779848665046829581847814586151053391608335891217483009468969579333840591281874260655268725239376116711867418554203012343604939440807825007611122431466997423427251640434700202955351765694012232251190344896963906783112846162479859431911845231474966963389442467438006556722495636056781065508162767037231143959823056856919018073061723773215889185554273701298187767982388416536477348989764251332487601226366110737887083711876448349503394446412842284469491540975301204671504566274775859529354842810413733031617366101473902803312002955777987378190775612172259927234015218932620599120929402485693448309810938059136346446731959824437176722850114682099071799364240881058186880884805533804222256477956673259814965698308624217081874637249457734944654480778801047525307838747876734924295661394318551303002444506910915389705512308053624397304232131465123067274697460061522706875441582936887495175475540320812247913163693187606300724381623993950152104678675937195411346371059926904775270959211034527121483961091477764277445758890022354037764051941675052227575737321986596593536157516861190841133269684637284548207244965345151086749188185211373480611923259196768198206042811943763498319559315456403157100243738275352974947215375763201463911098677961451337854781126143487678835185758408727380301250207670727552312003477653156940701430049592158806630868047342600133038958701887966362180726846925663159904688996024483218383969943977517358237532229117613216110769750708347510664423530942061316707679195288149860660126769253211954596864636810080639583059508098291077370822081983720487052400208267201557482892007721097186530086094796446096161897315221504701623020675605607323086141450802616259298614110946393589963043218713949843722665196260863819335085212983906166931461837728097786741006267131678640449486186361901915270244491536234897115682250995079333168431619409922838133193438893273598237772358873642253534400189216888331815632825576744249744176818674697701620206233766001661985531977932896661463961280479686097509448351900134442044365365706990821167368635118134460582270934038626047521024512530887539654483415473415343015723282033793540360482164735448170220652933786629095460264515126999816661090221924717779443279261676639486862196321408859205173228328900894772133608840151957264313480663097955346091572313937948926736540582077775872367156866242134356226150620255457374017381642953475241997173038631914936755554947536240791602537480166563574566523371429389524557582408296535220183702540666772356786391486915636766075274985233464798759017963879430407645477734013458309467150740276798054285098661650808697558554373863956496117846723571864061158073787242703687592403358470134712809505498288968224283240671317536474301328377712894588530050514634169827058275748576099120526669220054071439547299152162635636716848190346165189677865666551442438813968895115392955237957046228947631470834868650765544904858998114797303620382382948540158070393775228691915673961832279542923852376453028279548774899397430627649615715788057663449250060669774386718809109565097611429354544269643069199290629857100797366374484851116492661097624214484126924950141577032546294268174382987866355114767417414516661599506390801291446266823635918432599415834237206941610334621818441067603206976650454807535300289093918463740732337543329745963556284188488156426335789895735425561692462568828880615590074120295366282561068260876645490378008339113672384639695312767067543336316609583859446452874809410505174994803283888872028245783150499698557251224866916264512452039237000267310836231322411484909487779574973439957442147502878056097119903790791467171289208225188389474180647031173034097856888287955990064911409014480495572548892943687810461683638510751994036457434048972499502481250334014115759178503536479515796109657450681640383000171331051003726508872357799015443246423937261347287969431046848091484407879104163222886910659665298484356369212962913673628774565841728170673534494967319535150921537622301349469962902398426537021961396661029784990533511439601120670034034445925488520353273836111418074339435793620135460430216800456403286818956088077333428156124803983187852616365778224358031760054550362671318514324447056660823556798426607955534681884265693248331656612283793292716040033805347793215574468406518016862941803287804079654088233237647698914439263047078054917540940076003038893902459936657564897705243373075431444165356410956318651219017800423226029333716847196189770409712338191028993335880236763165394057603892314563735147882214607420454153557941292830867485435721093461171408508333631472778059724161174807424793078728852816814190173014944367617991437560554540314749053470364220740338743278317265715639909025039209930474678075546155560059922138177484673030848374889114144653348918139736896704997522492337340914758372679429660819947499082744727496242533432793573762281187033896012580244978490886242312033743598866432615576855319355990794230771722469339365804814555373486935819608935572826299580770003102947644168038776374891229964089770912658011971955367352865364893430091596516850714222040357664852050249090894526641875301860203050396339028106750546540639637061188024436717908419986585247872883142873955784845144567131472630900809100287114994601633210245384896448023727443867298015789114670441342798031556895286679816571968041940359880081681252331506499734077904951426862632280161972242804505132888470706879626075389891942448964958927551787297113224868517228613600438528818012329228468323551385392052295184329512754419633828024593487239075510551208598735973282963291588104846351811536163899755874928281268264636001453109474235483767188697684661136976724820720505613615459837846371737016786380456670214491147551246461668011552151606419441706467256395775794691109217812933254424506272618922507127255460310996538461232840883689095724330606757474548816958366291967718470086057289002755837356010702719113478724953456594904595301082306161160748526700591934674755260511057790143790590713145923450457998960068872070185387115356546078654294244750420246869608029210608814846387910574091651628007420064259231103547757435677163731875450971766113015875553866470031039035107368736930003546273715617927440566719394601791891525934097489926785767177259169494086987591973612931843743220924170304082071053919046886001202168421169875783101000062484781856661183354660783264772165649850971750493542031315789368795157022276350911649183298387492805765670015390884038497385021168953549781522538649922454689096348387020537967121844023782979073864058203608800070496759365427450294011364200067918656796643749650495114264654448162846619634258744069668084432027442418094755010953785462689521571245151362271953028577304685144853582347345009688368134475159278695516205408025421677024572105467462862351380146963744228879741207806254079393544230692570809483574746751535830195362178296541284608772648960805950802445643363021655726193441764756315722574424902927976535574524432679766418622850188510236878706268951167299689480620257508283639935006175266434519721623750811660227833644996677326312491377115933594912764824524152419644212591132565239539388588336079713146382181327759616713407673943653065355065680808459507343448906490310594103428106600091026088398637081731191433071273572598536340393500974210595643261598075947648609046707312509230295196237172833555624656455864089484754262529945080632792543768209482445894868280736163076355996116962009215804799768358859851567313600071772593805493395582547917421220342707312598327261493540888684610825043029775289786977197780111010374237694893714120860351382742441301601625707028734094974449088358256000663105871738196809310375931227003121455391900702992971248592111981790418388672975873778049943343768891797876415239910182111944352200988075818426950669920820208033730496856914573108729460101218025516310046909364684684356951924591620684724643083020061889609556413829620174308795895769951583043805431877592817396068341289790157081806528197643753043763825163372845141749600657135001497508009450851435791900130045412692854440295960946839495041837788745146356729788066498578539847001575216790137085495268396024618647969456982051892061735220568477697911527687912179154641726085333536296239544151246442579718538718778710380892907946363259703795464743207592834697697271228932359969180841530208090680447841453971424857574802459793461561891409850473722402595744577494975377466923755064144652974879851497398519228202640685863741735491806537566662977586819709178972754845733358865800858049058937332105300408652679782217424328302523700564991588663207174742060157633914628463587908334447880634636272793656784809824556010132726970689962050542025607460451880509569381738163184550797554954638305881422376790984400836311784201728883295374278075908992031846294882355909214220094919550396007709113513093007195011128464672167787484402202047771433027474876260504188872419600956202247418446379858524166474246798890333198800968206341803309391889436998148182975255872914814868573454840998277756292815236766590975722536165054820967996109577298383109887570927200640653828309230362365435419682979373450118240014596984715546324559389736214725722409199216446179784677833245663217111188525893659613790773604283654630874664313630501868971566832924548870732622330357229355905951957610958597875547675136660505581905109049006429188970623904689131410597792460763640106092095500030044611225124647346403982151680377195538051324802004192980941712262977208269833228488275647557064006094288608534413220136964509180711861166981045571632521262104465890123684141334200976652997972264697623208854038474868767254891767274154458600153762881159601071361498341847754597769174612826926984965997959128645174554505390768859519554518743761469959426468781146118366986749356419862139041834188892502679267269399909055560058284002520492318881190848589305850986833723601824692583942751078372644770777624008179051481089508399130303813207462371315016736882931905529288711924998929882995270203082404050394949846845725918445142182122807037645135165375197674385214666712678023469520638619453039314673804962293309510763917167794953430127036971943110806474380343665852820874142228689348460316487056673704992143619643542794117099570916215573602789061225671197582340967999003914039585798741569812747290706875084665654119458010753814808441865861750761117817563553451891697966685135269500341824560692638427980545319997494672801200124117990732385765948776746006316280382976974162453773367709802662225572422581424494034127021924631177258482052210203498910878516615863975191270506398648729763068136649170056762582466996732637261695524632919112530569599887082377741046676131601244978227030996266462748092454657244127776941617710255660504998133017139347149250660332770425909530756131649883720120160389137129025617001243129945895005848950199884736168514579288202269129161265263553794105867246316670003154189120469375496178744326340182973991201161911162506629298332424222403813340524977981041632663659121278317391498294295081596016534340006758659109388828799588096839320602589420597213674297689396649401843414216953330353177380075122439201808832510623562304151274020769990560799131593165258281081520242925595743305278635303623011545369631260631182568587231805551200170363993604310507758382595805196001849303421889694678579878248414099886955508539499733358542190660736067708111248961019110579791727697029055193378010496064997874636067437975743050223303472709925848396120843517394527621228306586295873829857628299057360643072818892846523337409197523185352791949333794955251434729785639305909039036675912355422811823936108029466817424095445793006260144012510061190241689506292788020190217531558578533496558628242548470317843423259308571758021665478356300478959147379316891386868867608768120045681255768177998558208766051136682226499210516588225704120027626938304699724802550399366809755422198841523668281977274999236959548399291671211655856180753637021024435217481371000475319784366320233671046631695939615190884301153179556792172391403086312509995885581412073132931054038161326654373282172414400683242135251466515968196617155072102462327028961963794413201790390833695681669418322162944208394457507232365221332737641475727970373427599614243835297914542100126613390038927613239304093697670321467402826011422002984223934063439240692282677280720206774133490097875349847255406342812289307139111324743522009095978804517837520663371115337569258474310794068859811183786917101701207561023001129056089153772535235030867556245567993048616366488347080657243932338773298114552628882688636969084266712745587593280957058044121458890697031327419723436233361942916449536165826376752194487235836434292414418137180221651832246890576190835741288086531407091953496121307400658782936095712582457967742606938258634347731352621294679923629682437134105290465443700151785073118086625365585183799424371935557863898614721742260007004654783495076318281075857725651087651913702918777330647332090262797569390224156449511318396698232931162405908169646477428926309540273664954242853305333819331415045459368731643775833084566457099560547202655471187655474946532078266624475374482755153736507362439055442888364630759143472771060515587485603376278754526952272756440064706697022151108316558209924980791370171438915279501044485703091411563685482228829373199844123312653562749670796769829561042485429991822572503003499937922263141495251023729876081410434041848632056239342197555347857492807181784293448971341821354413266630490999098322390450663232405362275705824965786253211507672459933471249824978754275042258315623452922941292327072191767225303002872875703211386197722017666700152799016979057266447699082218833769790526048182092351510767193503303699129758745449141546132890613908378085700493286012150440788088554426310456275800948451630544515810680438267588372160443233297045085470008642721085004444145644312104741190391945945668487789143350980099444946983055344048660352474924732695705543852225328292892917979706288424200307082177410160766023376635290731421748265997450050517018062770758620694086609606279783262320482717004870483003686904970684059601819598632113096185070844387551975186746126579617492586131721188291367338939707394923425180173056956304356396213063425371278074828736555085331883545957460941269952152836854557828544870954266842434063516839369461217757726304476457836353972806109456819026413895571327393278449936437583148974450494838776595929036989319757741373846564236165502911434756871484515198192459006501337360339014766869680426661834735934401416986742190520242789482344530540876010960348638290536854076021040775978801626986194882435594119132815013423409499477039374795003998731854061580303169223357619040667311207166698507201611747722443054640617809882286438498569654952007549779000878905023875896586960440497099288765145290731596026997178192734351710799650728838807148585514681110339359557257914264610518215283835846317357431324329044467144563775493430934609776619967762323838463834161775146901946402715893092301710604665096103372321996995570513048396944685501611124123056422201074541791468693709867954730769715239094303778007622593738459018769186320981418247799317466980397158315884439953274759679766565073411851735563902744818271459651739418006815409480341278107267965328354422015786480329520683019706226753492890343358722176976408401755828639877955282735645380810774214822585462008321395438185690505820779517785461847534281034424362567529506885119128648177636108525588588331313437304013897628645364066920496147129267591202795560486375321513594459925255469919998405947424377518798870768097037303993435695932706827072955145602110897962920479968818109061240918765332913668423762324661832747634182924315459487059658251169174547059791410763519596324069724311004734764158722909674352754319942053407876267818506639890445997315906244024241620065933161674994660356786743684215139569397247918693439362217840279562770541832447038256771297088643474008594842485092367607258350569157158060115436809733603023544588721644090253361860427898904482621161826970550560546166968924208070119905004267661442244391950924675087470257842688196810445931093880827081721331137431017840156944738466074721309843949955587190535567222008873311934199645702127357944731554133047751850837978826642496342659397903579190142495225536888385219228826421451042992877194026343079876103114416365239997210068512163756819252810744252704284522778476338199144954647544733672699158098302816071938573046548375208081698428281357109061653437038159767447651837746668929949454710343900462219141674232484399547782687712563642365247838966612341176759081943701045808226944400004400787736629732525908624056975047687486222027496737967674968266243548537452901342982247014997263988652574272846329558370905974881231548832214970776817019146837142766098418208997189245408901544564174980392928579999770508448014357626387646195013812144508477970294494752004853524576673971722732365264234968795201544675510650522143408498474893311663219937843921302975048900753268932067807759867882823190766260733093004316719438610898904786352214251063386887964490196558323702044958786430166043670392195370330764098199986105211737179223058224990151993995266951203134369144177507029020222961372311776430605773527192477531531632410759621848644557535454044443272254505281690175092904076685859106132032687900888948291437909760679407418732374200087590023853226284975952820969489892967834843726459444835269468780504743355575125334161507361727410283886790873913037964000259315395658040432246943637851523903737780098867516487567093778099780006985520335884873930267591402461581753448657981952437848174848356732858025915955277259684347292724143165773859021459958857292896512219502063488738700389188973444391573563687313220812820266572755472089641689088932576491474015952583957680240058209393822475347994178481059157548643842984330666063836592830790643987424484550973641477626925111057086200109654408532177012724385717866058334791602820370981644983087733785010844999030195447584750956220357847499348231038256095547420771464376440420366897646254630407817651529232976383955768041454114217881534710245469203317953829938610704199713164921549290934600625387942714302336836442717415883374827632272605066501051570142022409932930807927063658218381678387954111242945534287470007690843669319625317705758676243113797414620160616235968207157602093098260576766456319349233830968072413591093835351165256472166450827333274911502425090721169049855337020545408019445514012507709916130542948877483980839479456365712216534321584007368720099731233415392873816770198931728463100809002655933096146075028942745994211478918263248403413745034054415843631959194691955768968946442896171003530638557422856969159270139056515497025389303810907896471994821179999276146917506435256253701910087780199969815669997685924754085671619196504233579258672166605130622727224609757305163678228463069973951555888461257236933983157745376016716209908959408469331451033112361967511023757517682754652888973210347766976344839760817460242114706918615491840528235371601770152215650346568890411513411855253828753709012206174982031222967568195653379596091689497887779022645576252276317298036413236617648423200851469919568652035938694186439809947296592375300878162461659577456733921252280771158446394981001500447175031181426706307733117805995525365992227017630916143662535561692673108445675895990696932416619399668765406792171222142665214571281699389435286434826140762316239361076535999191736842007125514307170368661059725015044420264440786883897534360061751041329267123014462023479462634920100426752376518351877888738860638509209653453355642069022258690361876434695481647455831120046425965283105793768980938123860004707269706704856311431795754174464197070667304301446984404196586637145944536525321212997217024269637210150090113684512739776796923862335286876255946317156414329055799703247080234764688116870479821605886079745454783497938357843998250317210421272938724283498921134237713224378975481707704992717931119608357492348717603974406202342743240396577014109787975621976017986208170063575288202688167569463244814456058009715421851810991870402772568928349834322041030485522880789973818911363958747993764210063448300878236407089296650948644425789255863955214680351108347286372045531626466794387732906418786704227924254893187827239348539939336840953396923299560627777608374048777310484858141696924858739199252383129598814571470381049054905405206130076019581658088947241238830520269972647192873493035895174077305271929484451996474191497180504717015304515722074414122325103722995174404652185055519958601779514735277825775438580584975580909896411873616569991778656187614511439533159222691716203995687213451650959794271350468976598257549651521497433847291353772601953194739153730399639962650379236164998546425529956061223250181830532278533029072031045961734612187048635261638061285248883640626572493860849165954364826435120968245211065318068097014057546996662376796670418735274822677136957693025118485945955662333887164760063080165837431044154594662855022468846869420233533931136959647878109040539246865185237571102075055611300416717133290291904899328630354494519728167170442898947477144197594228090059069348519795993731194651937408542826313922113910585874702804246334614565084895408743879327455347890999818736468676934825348580746445263410565435781217923212539454578302123064248844991635298676281997207945805554862600031974072372638613905176265712490055960690705267561483256720619334208542450842927613108052421113429015832999398711627409243850055907388237480455626126602784096968676164219645497613363835204612279632974989797971505948718675424102636807443094499171208070523348474464977740405697930382416961736473812183966679863506825610747224756703053912017925591154945331014291693332330356633012988306494543755455973743609421606760273603331082362307167580267482648818299440217166448807409329154504222411903764575407831155941357668996488315606474171897449272642594405882466419648144976678485274222505708718369060082831618503958633796173535497833828436811382551485167718911014999280143846696866624753425623265210539925250568669416769166146031725481695731418198345845726122219356905882070908329232665159968876289029424259483413044685015920430733195349026247554133314281858012139681384210198096055133234948954632085563353571359137232799589822881360846090273692221160248905962724334670099789006898445650705110854954737382236629825170413534112340652266785344507851066921532694326895841270778971330562670986364222059774472270021898613755047043750387465306356056962931393956044123476874685475793231742580183220028552325881420062699853296520274131321162908619907435863420431216500204768212622447401376791101176369470660546127427990335913385631429636197188191222141878846375006698929037162145652535819476268992456269141969458847626149030046841168885617820766385577701514414548483521254669821604321395168612728460908967234813394858548794813533949504157438535219374412470284008677211886974339142053677088492698724816722855524514246334641173251632035396246785987882368189079082249660333142699556759969875025256324734891929454656675367082709092867293643492062902823699829664632066271273549695416956339106051117178037344817481981253080903076889804387572912809949179271531372266837310484273347089752384302725369068883672189168885614511024119678180825309396229036138780873556694566281706569598859927959486662382733898681925912790593068482983168534145181840038548789748177086981729501959323286115014392865977373478684850083205956122480626996839160448392222222355478247323408695287349478047012770961198063129487676837829281243110272281107463494041211069467959334875207879632580818813910049231294309707321867747704030763734311124282862399443256105924877257670146074378102919444434478318923334922888238479656886305352037709861575798847179035414772687171879058546090022283726203165295723074727975545178978521848010853793576159027624773535346960289127482742126501986591882273502313047205789299372539032019166013025989297974527544982624139993478143639791064078752830115652550127235433294618549083259706931346328681200428536674179949951253064510272620971689248378612489705534676441240243762392008570836599654108725805526405706766871275258065895252654517115935146634047616173075420459258901020673130739205397703136713416669178733179463018757285680804850110497584049925872339846066275456500430952100093990381110074722554580602148700680627495120825400347342742032924700001978454800592511120505216488611417269766679954759290932585247673405343379774626201367256706146518909768037373939352727940696607359874591823489482396962409774452070776726038443382733410013014463366602764796692063698535743025626102805925481076585653093078374566529322883586473798709561107649839158936358668061911948606138972117806359277867859132482656726074884814520347702541454757489442342141756696426595884137872536263184986632899112293716368805144928181843753391427760092523236915496126362124309237253997297137024965642403386139559980437725080385184015478304846121396814285473276881550920019454564852308017470516650301640511942741771998466102537989935366890409185970818444900421171698324260267137731522368428728854083015548106456898216463922453764596026228857787405149679330457717724264578961990262460986615022119157319942009562981756469192062520483872602118364281845813483978410539493141907055836113145086397181164908091944137132556260652438752988458601975528589883162894635524060977570543827989662494218517617962522251910266019131194917619373379604089670976189826144836328540739177812470557070593361924356334198800855924636434745508436523370980384162034842361572937030620741708451428854499363138231862558858382705138975029771184706077796160053546399967326166384228369363988052064558534169917855858361256517196414830927948250057324153523806765347122805812549173565912982253965496271525184318128395301860755042801819632670518332193113153856503696578783207017950868741642943895969193375241558542401902132071961079450281842366485274545894086436105545315287173560641491123904422431258270829873098144088237564798285494731352648196619698237644751293711867221025465807684966089216234697267479224189811450595347611761716222847663570549223251920322743771533041197568050886621053161309412780689903686344709809303758126477972700871167040146940898040557157853048795291299827485056512883671599625016960181866340539304181288950763847767574332402113224493457123773018176056354701248281431298124461430089642053003823609291928812596948790712917503380994686246016135651654547574951340869133963027466296345146198724800035324472597900744109216748639099470821646461085132354807696243853751624842527342496180061348343879330486021989536461256527935128094004570611653955120985419592893918436941252370272436982517510339373832321592145641356571052836554186883490176604195077966162734802303983026424886900638361891508010917163572167354563999124785923373440508022573947566375554385475535219903563574252401977302979146064802265290237671740120596727352578126146928326955766065450794829701070959807911228519214256539549228109724062560920020195916154148946605298863876680887333168956512051072895353593941250313195611933372685311008991169616089679292233166711803071535448489959526320094904341605747301584131228296122940841280492489677860443608992683211892934825921192613466227422262767503931122469136301105408091711847209666772468589213757616395526747628045563507524044529371743924229865204199950599597659778747916815263175531852624386587336519620112327296858987811221095007859524177268310723983429379386513021916823348228375748818330357007658645124053560033221531819859464192440344171981656068871544709990780149573767393470943720017356500338469799992267641574368380859330042677008774008822619626517631507915937630812625907804296229385688539320065921176847558939673135437650020150516972773805694064036193258112415479589677027796346879466333102605599809560536149575684945102961320566403592570519630557668161185555434586662170804500279059494631923173198774111132117043969318165514886378400988204228141378536430696295428639305571753529248082419785563183992381937875247929294090966615243672442270853285772574153715700827289078875394072702881643541743315067942578824289360960424048961770492413771964436031624275495894914255011240725405555881350216879681549274536079591092552276019704642317688822753634007026580052259307125410296774573900521634084639013846465071447801224805369772317382889443421337302226655907922913792688314424793152463102844815194051053425958130141756875011343804188644674091252234952596602264379135264721445833491498761160436885270135370599335455920896584882595823883859599501163132175154613891707070591563133107483558195807416950601861637905738968195351600197517774868655089516546730248408861803905207346235224883910716813540302047910244414471303376646134256518792523696198323733870220880089792657663619496707553215371969031598960591854493897029378551544670105972721301451274151727262831037807991088545546926619513935053846249109005699803094600369214179262347620451692550302877254298542128457359546793514199793996942186567113439942246281045413749181614601719697209170901910041570719994927278018034626237736118954560435459745819392071932433222898696634988363262247501804661357376864542308930318644546451094776055198956978827930909925834177656242722506848019489047207482096627647396548335989581604170346620037075819530024336317731075234962136562376460828429921993314140428958502824841430646215714075985123308340428110633763312684457292471499286107206528147306185670143229001725698510782521430609693873754394113135625971116412402456488791004955123392416261185260083745093101215417729666149736680398399985103325539517755898755561179847086770896325092655602822290781047495114451109273159010440979444241037859211512239565111782332286384110823874394242997317466315005069274210103882962969275202475662658717216494280043309836556907317940860955340798257605871179370224550592076500324500975190474916597472332535809698199697454763111394268940938621940131853625516533753359590048896861582578000053916355851219639636801590175467067792774010720971012964480301112445882608888083139762441270205216402347256224422478477059729090890822955210915213842341971706364618016073755601743344028279469959283551560119196426001292369728731154824867327937181175562007334047145048494454681741245393455863685996359976598354106942573646167965513854154172151320649094413771077721126094785027223043208468735613884712475225987147934921214360097957387138667389939509602256149565056666913269834578556779503678314471582169028282291982177702212658477468255646885377458439374926506075425190726213443984619412107030661445551792521916478599024617009058527889461341334632206493756760357041069820148547470991986723837575560417635003614611530548792562988424547980631315032802906990607858410488944013753942467261751399722251359889277015777981608236989020781073360078350748856459073163417314739412621705448008792970892723189718933928516974014263187540450011221809778868639425545348385174586027431234641693711120889439852739556773222587424301655496671962792545211703596364352036827493348388195194588184715741048267512155469436489420243249763524231731060833230190397033429406855771381228631239247308292218904935209288409639090688359497058853909957696305521996036594047124344733693614004953924684389939397501962167098326540008842110747676516577493401659789977902848464624211457703754497686925973318862403581029577364836757861403878080149414437462189049449210319500807448430008506131606928379995187960819290152794792361835317076208557408061475827208557447582697278071801567173409430616281147205058409067809592413658333508943722436333504340434104483659869354376644805763529949433268008101953126131890759157502125686955018150154259175217576363191154383817447354493791933755729328484717457487850640553305522147484644170139276457120072460038694713304063899650209238734065805698021834630967309945633674393824359045075003788772444107092484521842673296671530527323833594841894385893972542873397859845045759951900146606607469903342783641093016472112815646491762194138283925890414113431101472443740941427030427137447043529706493053892674860128583664734348949118247424698553621944104975816470079631491929798666745934868488148440941199397233061601421578792300277880829108868633516351706431466447703605353300212344753995503178311178493112168837089276528868682140798845113838713347462064837059720135477951183050186462789584875616568012018015780135571633161580712164520516977292424665498704543664478351637478124517297422820312807220722108471503534773486340997233451162628168256901411450066807029043405299921106422070635395100295452941725993776980699319522964639340759242955292305769489193725662078701381441943653138584486746413752153242960202976955096935774233953899059983042857991600376000615026882316657473633925979492621215911833698843382040305239544594340799553755869659811931701065990366529873645601957661922499429813035173092113172038888067743609938681942716633857140490635183366279328080703415924785936836533632970351092887637311212613358648196423941393724302728564321819183748853783163033697908611401746728257947463171986829330905970939376248494267844089455509598792609403526737246523318539017282010263597608384186879488735435183318317320262088637396282940035293030284140244054478867267050363597558113660784793630203074873030455172274723119913483865805016697641661165893898006467670535925094371554730118148602038053341951272237479893058809089086851137390375734097897487989269489927407674029487570720260243961960729120315600205067071009877497960474778997964864638352909786277248940927665064944204675287663187093482379129797056860570085523411159020429522466190283183176376889238924982113481956603233230374705723669315176905276654111026672827686658525267242732547093988360901313445274478336230218015657614576891435481760990734584527345362474082539625618517794250510458975510691852690427311985008754626830330730070357321306052666600394096326172819386311114112311532776280539701292153472843989103542653084160025036839633827143960481618080351779402555383093357611001706310622380589417792349774528913792417725157908419750961939957055745935916449110512196370560965119700161172278757936265368714450386357145362067950067342847163212224065258856602935598927247352743178264689873638812176802203919745780383102645938807152973661582082602024940429817489888122243782460039856928451796452475239376329082997436265815742523630100966963276117240795206935769756325230343731322975776181863853452292009285371868563900185764019136630540495540273722046392317578066952339366940627586776923485431794064878165556093412872654877824417409265201755792384681931516627767548050125678184105318661197034028379927017774916437440761185314502654951960479950376111334904047890980051376121183700024284381701387172772292091480700809930575247131150992281295158500696998435683510472500593852150944000304186614604831059736592129297975992924738083442919518152986382434669430262714609007079295613999737000519715654853414982670251415248244561559132904007534397675658876680904913365131403334411742357882461164314496745514217311473048888264787227105393530591994627233059877095859927567493068992734739352076402804426079233803085059963442149085713509481781470472106333316738491393577677030109953219306230122042128787120324836855691694462437609851854244625094929073167196175929483274070643404056013756517797005037869565377857243530331233809278340970003510814500641972359169190475560634787555873184082206751863524216463764218775376390903946642070851399419824712309495191844265900978739077900443963138608292398029760093550986491434072143248803430593022767182040412913562936998267801296758897970211555248935078527922555571881969895497149594828242461020890275978095731725008645246671241240552357296534262290941931486770541857301864682039821139781648918391149261813634969888958000951283651240630671367251686916009154859739295506022292825781787400449092754098200007016512164481920415594844690391871871997832710048116799163555816602089725785360076732630213566712212155059293927334266708255216629392485065422931975394502568911723564987325284364650979302833031406851648664465825528806460075360970964748837985016350197228195614231740466879212750415582972707208433961027354947942233835750252583345020320043445708603838524611715301286905891598685561068811554351087528619748336947879773878397497537991273171467061959631640144233730211885674751532167516476879912284031782475359029448982492363335641921873073249215677604048989888331307604559734165820046823401843577595878422623768174232299817862376183354717192980460147480280923293793117765330893305781890398492138667671910675614835521285469881744846661776973506646766181264705478847529910216844708614423620837477383646668435402876232957380336839107005166587647021471326470238977376811527923010543364857654103851578755663197324734276527021372389930057779917571918809290798895142968665810441545635475206075862225701146473580329514299907064479509937259532046084353501765503539144123626650305996169747075801879492756206049602363839686559163793771985932971715701379594979606077652904883334004522143866997260534174654027183878135467630284215550204567615964137496199980499386645811257202024897139384661946415253905996180851775903381053297121422774398938903415185470668957189833923175901710705168575417434094123934759347829691577244350266648585189565588912763215528794078960821246124163001081822513897909703691749470672672258741121482745365569150542249479389722665791157369900814734770024266390336517224566036563702594869235726602891429542521180837268239773438447597807444122326060376931818362200404028607127191898407941606546201393844623688234195944430954219071545107503442487116099314574151209833499164566353135825509111828630714720404104708531833060920840315704917365057209115819435186090306512202218542453211955396272047958347852936939699355114298330990177461236598430755730349635040581399579579738343189515492708311045331536726839276991062717447136295559225392946425770606372595746660527448211332360791776404019238767399255992889302084545695378775595841937845990405347213316273314794940415632699147875314585769902808910427064204316242189647687754281955652523537918481094563457870772693494216029877708253841756040606904119611999002589165176782099541305003189755424013410094317057903068720861363616127597958021202006726537909837324604130499958449692854981321522874694455533514077562360591395450271923498759018384549453971016222126523301234423569990147006659800119570197268987612570929261960274566830824903817933794202311738905562863231876887578670986908861206673673851873705235530496076906617860397897492313438117769697224556641362170381390334338706979661605715763052272338017270787594275228213303205142273772410987289009067789034100161722977515887038423776673820178706884215444734575645212490388566243564837792348321070848988220973733174588186848172940323983585132215987142205521837285346468466928314635664064457824812216478889932211754604119740799316879045557906778413873912379152652530833819169737729356087904444867519294886131835960509473066506606598227875632319381732021188541744021190503728511230498733314157020941101180681312955430301024262685280544676050964845704606635747498270392244510699008404375873750020086413032770376318074173281686992071805237646587241097882030285711421549029576565696449941275203993846932341765336013512662903042662780808371474332430244852460469637086750603597184217688535595173306944519165214257585119824302271528551896477985977427015602554279812256667840824360863251205376607637741715764397983463792824130848236170142361612539431356663190530157314839653831596313814340340529350838854829062836893668443232661111134747023498110382030563202394941050870576843242149753670892108631921075284844619810295812331945533221509959005081883366309575416314966268947029715164039348942746703850143653008420357587126808250877210158347012636106658748288860938878281788035636812532248823987798844505913785589077127799001047062426303696596362906816107679384528299454777371187566563358106757878131250449283397746944657687275131492633798970516138082754757727343276735301094484845577608402979643294477265198610922083183938239515591447662576072973856508867005349617241435036503455994385177972663013213935754850731579900658650673188597854993584524757204077607330974127131411769753792710953548729698814426007116163596638672286428912445690814870778373730024286589805331676464407446353508860560106815892392339498405526002826160779021891268961329590328958404791873510520666968066740993830732941336480772481786383836604944247276480291428022490601453280571659519045552182248332810061669443189862516011677360575860456109048147279228373712287353925205127670583451539994170397496112889101471416594580407398827321712076514934112493941316568409703880341603404570516881294522642640684473698392058408227919894156537704643082916858747834716857848359463096385484123670409746971550718256277368027599259246226620966063567183200917174552124535860767355494781872271295459358316506155598967083072388086177481213024273169293402655079417543073134207613007433660636747057393875199502563838220588253898920729449450239662133996602062953488875083395433495116176186705667218643185710601581625695898949362598221632741859273294962587666696799677151255679349565993188792068415084529150058127243282014241274798072533703799723404969263741152059485863152206229691450190332230666140756643087841216650345112257461275441789606630291906460659219813341025523108623299646223720084454818678145190413593746365571691664531871771448014598523360182636554329015357358954425226123412262145183702516671705810468585309854521254753555406025691806454404090413137539745085838376121229350618545838672915368490103853754755714484563973317229347142685594599046088535795302794424104918319040956967460515501383474234696459534769101852513161779843453654042625743428502235421196444197443422354228421528593832540498550197347793189276993518166579701777269851694858962639821099412746481852602080029693939075080768365823189651042467291662397831171951407177872194030257106990199118519384923782975972091971176084702369381333761580705253830859657959671637252818123866106151451056212074065766101779322196748031677417051722988574881756701549436505400513538982398805884430024349268884542063265406050470231454255651841816169493345191509739251034495363506292251685837079438598529198743672777721472526865285466435039350781390590960366174101418209836544918358256367792332306437578244346720634119072141041463269345608046320068283098143146783886173102960679412972920686057124020580711480238656520698452658881925133292204526724752949710498481175484898824397263725128434866953778989974786714948321070480339869618287159230540038145598525926731824288941192471541683096835616957347989676351287575968035608080399656351182365600331654477957771497441363489585888024391772084573612080145635319220711409171116720630993038938024459232676305472114562445893270271127921431336452061547225097139655026630718727720641792411789664030357380800131707924668977776810162025679788812193344325505696370844713220896220220823676831896308960477848520529930808098222990573609550267955310322606092961915497569317590578562886424000007491679968589584340242713132252627686571064082930598273270832267271071510257913702258381077517494383928830000176761301683491352618651221790012356843692863176343538099164415558416160677277163304525861330094106697160198989503626741028237771491927798180688682520451120095557973164937674778624825029120548564075689529842209817525007903334246874888170232837216784923580284589561077075242793906222223162742460860906220111600572740077201022418381563995798032140669204846956693835721676442935566438236769073516041736694037534548926057036434542805004757401906802822909628173307004477441196831221203155788811755921735182270150208774167781267388938752379314198264898136359195566520139290082490967262644539003016845507328033105708617959136024960397982792737229813821762588735743577994035860943566020925233505796810057502098956389848806927847663493291079301772905916687227917281616744973901036531555456708504793212094991125241218519268833366407484893704022511642729206668495514122627687814599722395905271035563471315336968113642176905142894180177742041216952795167402751672514754326404133858431523074093117044684783076564928675685314478471576797650982938459990381994047919228070118198795908000217135933417894252137906598862618033794932877974275400668164015540464971427514330721181400145671331766283565315192664835889787726158232720011589794883465969824855975094473897005512991271203458862618882839738814990507091175630652230423253500835743800207989770597620712951614571608244349702350744386339463979276068432527602992440280057485143952778455050881517152393047910693790586242968954312027486216589240737788900132205485055573753904579200200515235476730869550788884385034478860780723101870360197598346043237083370651586349450196360647274742435315639440320290503656937441449996363976890072690354170550345512888056957282323046270501031897677673418438966548806667454229972171580299440708447138789755307133113311440035398433547815867246542365969106943115534809346539023743765734529207583655643211039184112055300535919821812887059925382807417002117057461679342488700547762969373391270735075093364335694732957090292884941995447051719773852524564032437020106647672834282393684312307794661147799800435404962448083321776902485954752239698113957437127040391519512510462176657451218131509341792760641905848364425913245906763596524783755202827336632925575217944942586240130006058721755559905529817113426881221188850203118478426209494315666818298057873141934584131904898749853195489341900536233695571634454503374515536316169028980821181404593884679302326406292736963179114300465283219722469273842138546080562535614682206729756190749666682597156277942340720576304648071491521945741100330249661927990910479818467580071378155505613158701951910520261608316393562567526694685162940392767320006269635102657684466431077449631153492627942109741338221014613367765326873680870499710574310884464990852651292801958313475589249676721448524883283978169200496829937207271812890070339299688076569322095294105206858584835793126433221111684843158918000227355895107622950148612501657550465366135850446608273142204746288197945839391717553545271797112710764476659327131617566431623943311699139801445889620414118332381420081163094767845092498796639919699053541265415817561855356041101090369213936638112778708705135851911279599322131762825187613306769546532901901224489671008584072770290839976245665034196608378618946057014899665202029656617357891535186084581479053191729563556636465643094898769187336258254148568785373332506776361090594910356306638182056313337192046679671685631733683884059234385530096734099405612060176302843544706922501351944009713719216513366842774302478335482738171836669209106821478164454516438930523487511033949537276859290529103117863709588996301765150740270623019232189488787420779420710944814440461017144802377660943798227399041682349726674197786567253319993081653277617441795007273610543106070897754122349406163714511616221990699878916492494453474370684238660261336414093617065993382603297704214645542484016375940482693508261467596203183842801985637718876687895118389475775036108696748797121559075913897482768321491484848281768688132829294535488197074739344825262857934357775875468681268378858425945345286277945390531568992925836868015578048694017009346535575474648157530787673782225079832473973915918527523542798792631211028179630322785166777314954871740564813369372606793123684477799070834669156177792442126229332904662990974426820096954419626201074973951337337575919341962221335551587399247385027164255165196026485733970090776217126465422021985999472515655683431712080454807079965772831009804469727493751993582047468285848364268853354584608785442361052414851585949744151239979582584610878766853039197419587233590422614936691611977745241184533717646123719751343745997481624613959452976200256284347759506663420718664969630764402538123158326381025390019811162286216865814910861597939263827547089415153620082402423909220276183160491846084665376499734079689152665483075107864297303973371477836766136292649049579167812127791507457305083385182828203933468748184374210751384437520301751413228761839409129189978079637791903399346537262619853784115439828438026382045246311642551939059187565830668922472268704867315884809138699264865982894305655893147974898304169257639857864510018920573533589438825685488175610894214280691811497289151072976555426510367840293158243332364148221609536292279746993188151553770329515239974316327512560989862670598602728987054006789066928996587689431343328661477191286004597618395761842735182455613204636782345702986854694639525310325013739764415869867033313968457602472353634993820676367242338716964270291846247571864733195347288913442723285943475661960353564645270606649750939931531244078030056403881816513119947231730242722727041455901970578626227910642752895502774642675583160867197677443874774525947074033353302992675626828806268309025312095078229600778320837294104166626123470889859739920967615477596612534935466894917100844023074751634472902942300162226797902750497563683485355117161188767018465500637955053313593780623846162330581768139483646609799155846697136096368552794178959439822335072877480356608422433890707411461266936926524128055095935651098862991998633817422201351429606512581610480184869832622705329904770063926260129882440811876796041287482347062326425714794823970173522872442745530713251042889594489907196556324180360847599758838383384332715306610698451938616120556182395838747364948650202367642886518570666102725021952890935609541155615827765237635357952400158674022617197698476830029945108788697905620054389043060601257147916949350617158784531220918425169840219749298891205267910604579128998462190415328263364905451635399471827400954598312518130954180741363082599172406116899686540090331504789508745008654708581970187266067533241018718195762893850264988418052799395459841153331173161731270702279607090517522388416893646641958294316656652078667629387302626365285282600841897464148432183554456073032906962606675814806547500047277277441876260233141876746500587409910496597884194514696017704292615494096797125917198522114980384788436768927284398389294045481771533260431780542289349246743094599199271183924001091628893171618399027395221265978811227473453719673595894657781900733830822604465953224978069154285476980775695065263877386288946488760822334890790728765974942176870797601930717163913284960434502389109698747807851149684995932650768676997522036817618833735705439159716959558682488842777415080067801463156981216395030994833002516935195775682469874308751499875047030436335187032726764815405183827218528250152450433724070029255251109509049763975849671208217921074312323073510620512437099814337026463777485728508943588312422529355647976550883746363806131348749170179827534281142735242129316186440178422121543719657784425155552076255491190595898453802494370258432481285377272271852532202362899102382060478781800866204892013254916033302010918939335372624211140428144427815619480732680387332842089789389609068172020529266945631697239172667136736571088284057202060513274166659043062301125157887880520695837386139370618594541335122463679029005573125725671484382308685010471312652804131383269520766146905404461673314829055232910185094809935578635256776246621952377293348483227467221888287473330666843231512800484957961475472832169796846610789488555422951254001164074616308223241729070784506999372200671967226844051232909123148588448757728458635942010737920874315197599689732291931250022229505608173347872287059888163478778789965343121782662930408087632086668263535064376221039717829068629123121423745201220718491659043599017834358810171908609734823274255836870178490129719504974915351363675908974260923523670930046693406956889801682835631526127257975208213633568326955627367280143354071172582112036778083709361695893763164748153521636938031801698165355137538735235592796241781628390746254744693012811789339850060702184558271978904041422595730165891407664228529655353928442524353441234959119708133298270221030609114723580273884132820008683031100544153689338420554903239027765635325146868714633441217425596618486968882495178348259543942399191868393123561782106267519163030426836371542039195426859051369930089473035489406656803785285652093808699915556515489456927058109748462291182559979994598901944669133571992524376316003354045857106148411113269701290702923955930762536235060959420943927427058604557179833768059182495877845821900319698195916939069689170979839463932075738718646866189025779968407863290256097474353506362912581368716978369154018361389867909157376011914825246448650799790053157638389490030704549091816506385719863484095557345464977249025643367861719228309773840369311242080796446222610972634938289736280081978466942586612474627561424436484183494429906588391685108366862953112481644114810618742216763904264105959077018363994556512756614133101360234814956168881968692253425739212188295972348578882729443745071615588321376721753901709215985340464012220519400772178118620442942620674234799520216606209290253844467207924778256172728926557135445945230649391089862316407555510549646528123877224820174127137765138214403136845472819284749611935845910544918451666139631706720905324539108774480624222655616194124025648249183784043409485796751783547536774525662133530779533390542896987398535559044516183137293441761002025084385857923013739559405845633278932086649083698650921317509331431601487133340321549470664794541102327249765108535874386416396509090618378086647627966650705050159577597263615466261942802336809089521711419921900859079943989540267788955782798211378686269063855216682369976503672943642370715521754212796404393663402072731539175043704665461838756805878495367196917973871660013509454767219488348835156501520117128165132136844738921982262232075211213911574506965702281408596708935337454393666707360832968537528777285883457786258893142379352209143748065769008680327271682238108294389291928801244403005628269725916490354866159829820381787733468433337014045614578948143172201444866149637686228291651301068464039561707843959443390801493689963695844223071893859012202302549820953913411218414906348656322264230980581032646985476623134558584527796357771993072773998308344843552012655403780258423406501428375520921181971855791648313365110863831632450243396200597201665985552677301027973804318157721352071135252780939148011098504913953263246721045255105213027254416191698452217720372666694282507164258366440401631662368577417539362800715168601557281242044443546892070100201563548738009787729509152099425028144504527529767259828837976647931422965670443486025860509913942179587572724606115855803564245620497050096192422393157711762170978132647270410390582979205310415549498542099343830828951650284387609206877626001018630671597811406726058717626454199121397767657389947607902096634824212070763217242063290644125113890991722311620964123558445207829299139957849471610919137547442433775419886277614127707168036729467878845625710774439405453906528778854392242919881500414232884174609479180105881516951406673321686741515825290058702065563915307863287522301873102256012069198711167408775761337478087869369030224907785888149891575966756308242430008116792789058087029114879418154415540593723661791384730210893979711777181350560019777883386709049025677951517666485335126782026621573821529879170023910547926275497057370029081830784879710856909951258184834818733526533074413207641233076293157535311834744836262552436903505645090969166673695807564038119402149561602825658504001529292928351851304553175975118347422043264090895896093212612802418805294826743979358499606850679443761487954597672045771741295072836140697936402427339612982654031871800071414263471532708152480612106905466303752810980401397777975004414892035894065925341252734857510254483231797311941525203243764582760583752983000789166924133707175053445998153001820615226810664904816372663304336408747787406736812984347198229674729833688044324485867410521889575171367432916823703453293168147489328491988933343114633279504246581340197818291008352551521377104927519807807528802215073278549270155811153072646975352728449924014356021342731362255035628718455882596660109461864845233387972157896590385185653801716685998192271418544627444642720285989947937247460844745434558853637287647271206062201573152755989577563912149143393226067035591016925487752807998808958974842503605297986873700981218058804263165105031722328449428943515317802353654502001719949135794736243221722548782355807209221004773751715673094116786743539106124542975368795699172865788809036399918206884243368734028217526488417331773577657020161425900906419783078288276640102330646837849976435635298801812476378786140370633050053846014843786077878036049553376284569561215856660626344961168632310519801676624934648722077614351041526161823063993177067849181583148939620706146679469594601946963249799627724170062705393710033279409490543048540454196280422562132408689037784316437533546341520749905745135494190904075586738325015013703821013572775327738286623766290915030266814090372182818759753059959155268662703645601394302344223627710696225957192157448095055976175438585503555045851315384210339229243632216211214706023326779467051678687010268646891063249738106241970064803095218214750885163509819589034415771336986314955135487950036734570872330298096556136592051031789041582252455533923310500211505311327688928537724979661517130567353599506301771289165775374343298828242653719717453396391174339023629036207269524496023066847104743444795091228507455027544572977434257336780752130647486157971344576795807864221155313436663807542942180044789014402236489091675900111895979156715253035057328559503331620560975640798218049420167216581679977898808596405674499607982168653971100369165707305405946380430496112018113350920126103293015017582578829857630587932632731199963113017608166567179199239684476069959637730718416541541740601617350413516515484491597305448347369422401373323855922268609156308217209936503762021755903109050583081566869930506663322599446369310534472663425245515377411697036021668130336047496772291830731497550337131342624059764853137385350073211749078496450434199695956690578832708310165393252382431165405757461441230761901493407977742954765086792660792886360309564209567520532420144206482779664693529903012371364938765394293454730447358262719412285221254298784761268221521497859617049248293228009596145134989250594218098242527531653954980104014457071646807192025699625242010947379258783739143084980885658045096347844560288811890211265158915446961860675675512418812567652289783732539641243848233295006106402076569042279517605447990073748579885859364175765411475782147076421447350860532460474234114202710651763480282099054506967615843768821973614370976845008182903035479540859856153486528729544527404527429730415727684692759902644933178159513119534529143005612138972914553533237596979410914618914458651452733007263235627006671776001271549763208985651602560737694982318609322870392330266129221666527579262887623661827144593459892964572254348752160000839587770357068455466638505652020179848977433106593616342075309960724452554840505984319539232140277649836004180711433698530185618482528921409417301328759342806400331095357553518969468319093345294778154098484891335221590960818135461620671257163157751474189033737303125967336398337813508799265708416174862305342962190262049773843622255975273958640819906581198069602990569290224817069963753783204706062485340669114543432956056023564502642193812237332281536587077640498137299125286344611909102711638370269742893837306297195602661323828026432901737816355740357486892648530631130226024636897426961316829033279153687709077702940098923360747266033354569996329495050246714572481201195803559318493882013659541740070021004183426765223087169372137405934955661399018212524017091773000690859671871157836172170317921459741657233004333880069576310620335185603803695171028889493218751063141147833616245072745122064403434768835870105837472508576017523955407521103740254188384225419853169079245390668805679753301817181933944633486658380933729756142476102311501230063426196598027154460728937402133024384582960275695514059678704454472049243073536966394878476006555649127755197247667340062477515392159137075932186773050512683576173293388977645968371334658115631319806791598754837603055442784172231621411153201608519212324875767534487415245038903078892080116394013656827088734946551057207427984203327897536876860212508367825687207876139814615715381299268544964773294519793021820663644514579195061517479648208324961625369390219479049941192738080548354348715653955419844665756117704297725651791359054275557604076029489625722668615644963469063888686317229879436943059852183280923194868234181951974755038519800784461542728758377103087526732844340813258791598671525661285512210660299125013473227705820210817083172185753487925184968185827922234724380067609354184430884380926784788680871840189949509000182248086949550356431674673347054983429293334843154581952558203736028257965443073777933366793504817255507414619685343708693961977282657545731723289819834311506808705132581798312919445605607778799456272095743240478785483551802530390250964745598475615285670386299437268654778283763505226828851016235257948167283939111367988787250413555329335257238182237322778766837129288662987795291704309843507260937088219990689733884813055286233108145903784312299987079050933701248828304876880899752314933060588923888660341308195911950956339747980792644475844951414396257837710351010461536893814999616959396210186421128948821573982739284975558067103388923287552039989485225990310243644459094488869201044868635663241709722888328661421494472164568035751668895314703239677512274467004048641140172073757351135038414360494278009519608759018942181787147091932750598313697891366430061811322178346692479033059577813428405829096338800848431687351974620632087513170748620465472663506398669878285820855057801877067441150122143336939655913823222442500688288171088446933840125789073833526964460945791463121728231785472107967997507773420616159688034662008873626196738893507443875015228081672929510419392944056458631265971373825855635585501531336698567610781558940374501043465004427228523779281123182400738498462434046590867159658740447455719246110469227267559446117367950209018289879032908515560136225264263519495329489723108155998527593809280215714433854761183038907386878303470268582611203243028029950331063240905215388788831385642289337132233086718192106657490239803301285637171933198229743944781376761699054832635262624075545943318686424847899633228509286610843101018134778016275365833784846254203093089606504619234523546149570033399177999592373499594771165201011234552675840656087245697566793650574016528692709183383180158952158322717538043708067272115799181870019932650213510079821172629145378570506503192458666037385845820613110746333334634857070101373080143636823514770080544287737943306575087922813800702179568375771648784095087981157225177363114382544975346157606854124069008800962463540198495420408044093639837849345616759208264589027964132899859879421376876209552753487713887517657948207717019085260128881945621579220645744129472629682890037947405859430898793854499471947734826364100724929511325773189828018533516423933188029604050209211354427210982545073542894372728291272141980156977101109654345747991724874631387680822007078621107722067898768669732230959325232464803562267251005539081064890495080008758877531872869519919452824497276052322407039852250682910938404514269127197556815610639448753261455213067048616441289529972414637142529709866841660075430891375699075374174083067067585344001743396981488313955501592449408864557652161272055837667575772664558146143540211584456099613430830427289150888720761302761725510333503283213067131176104578130878110150965849797807060418305745983332902458326365166937513309902263890561215307929867581000489361671208907830423556878606797177229737842599044097197105296603922042408317620707303491123486958581991261693251397528839504767669239078052972057662124424060757364382540177733250784668421077879897049715487026318194078262543290470471193148393391635381338331325733842282843593819848569014754685139498081757113411633931656632500546036160173445507982359327708748418161723983132439015601805880805912531980884888832935192804650285865883730241253470754932234192761057420251887916061234554051815016575002498111296445685568651293191386277481482252082107716463120749641103348220553701822979562329150656261564450659918456221570159087618208335427151495632238583329003002393442215037393580875449736057638614447820776214611151912342160450484978201680267353639788332771946634750687659722922639606396063940466362449087645683928781045013557196911971883821522898277984497080927284095417804003472073366564223319137527410865681063248957095881401686597307153607571867975820355614407177732205874729064009533509015751503027053721735538296472306190574802806373108540658389304902814737853951722093417624381359624205747363529115118300016942438473038369840259776614223817811870696311351525733963220949754773004772807452496402154666103802324309223426210676632365253429655019897647273207622625856698885603315055948557327822724237182346854163389475719227508750787249005024343978663820165946693857609253629192360446168671877045759241481127246403430519259514736499573324689587550919549442486462489030926380789070912123349294288067006088681123509736613657399694908817792158095204713642909797730663711892372821329525365222239147502310081698868184604018477415639148536049983664043193233137962805606503202425264207383768843408402597341203508773971221688359893961689526200344408700544965761295051457039334314799457076683117457773378601395688747073831977988613493570957269980176115387110547135533194233351604542039213734061251231013863475236576021838679919833857661865939324390103661058929505966296596725786165438840868101409569249474937756965854394025267256743349812346318926604887498211409253164045453853000385581936207688537128132169885250947566156035196138855914478641013123892592262929975096165531623626641094029938253735634406630959475658489863562727803994998052141375621836074493478827415176717172826335852576458451414886677404697907566575725406387217084653912631659707101793399236497446988422679588537363795835388720700119237392985386844926948507358252453051192030278271246196445001828724757475397118559360020554794950109336872299767840246904736296394651579980265527047722428449172152231170348444472456379133730523202243973745307912219790608869515677477431014353928321076664902881430328316973096301627690135689050847884634192759357056640883483357067821757603111441268787630477632111483671470087036203864064424206291705992120502585754863125139968902676573255810603942723512200549385885299410298436070417572802963773318565500943914253937207595798642710105491948219277448640294612131123739960738130959509831422762717156672519351738624876681794489460810885474506795183904608101050971328232089829642716667134745097739701808740662508950542795808038739785671531744586040117979835697527388750239863890764834460175360182779617300932213871655876032630439346537460060244717106685401316834780692166928574559797974433636583037521968214701661623382647195341250735886801373075492599385321947673238396256815371918691951905398238256710333819239254963653428527151847286478905929886682400688766753752971710099716689958912165546271828406627527363391438181826092851921640154112418071138144053766576410925016966335292537811187298328405652219579339374854907692518243979664872758186039112842827699496426127304387818730498077535455308895247424561544631645002298432329100500733326818001495456342690862145870100204584755068131058469414047773258401419257745861183839333134345993335753862779960358518009134564932475441648519963301960813714842391449731084357279840114060534012458523992842431068360286697096907667222930786990876684117404241387986836348045734772773919673558620829301269813947342937833976987681389700219042832152843749719130112111761770931213131890804443352194950436344196824119170068298696615681523009376199891197194628418858632107286324220927475928957701548942870085913728579690631679061237779539793129509608199874870220502192661323811323755048020535710949616976137861962960629117851639935224769991532267456285762846202819584445127126798841014503440360261820376935930939806890231866917476409275343983186846463015277412512658618332947959200369573094149901272678559761626601323402961566359182528654909148457770246858049955598099899046263743534607889947091641703801818056838862613844029961511349054639896045989410651940060768947163405722962956488424478013909668797524964075971129239079394559894489580664204575895926580623094890001053789456449464710624642080739563889874575074803740269538729617769133760736560706364358402462791961084956106114575862084666511712898316288561402327684475829961510127693851399043315945118376694050724684608333790290403186598886950467321022595050071824104787054658209982076773522634769771071868466360580900844035432417463453073063008951188041964132113632471576482856021912699983917253812802810405261727102902778891941140381083402377960669562253251993222077511879276654196106084712791105573960355239106251131917990279318129751744424426669357061672282812345642276091905261726406981932098970237656873500031560960115956459904589554811582654384033804676268246606549447092598068764453880888620211253980246886544739771606150925703483396111810555312815710910006520227777815324614518790922886197508585344207034731582825544869318269080743636278055516308764974824665986756289534843329319091991708620685332131614325752872069992910431381578571977784995277190255804314899215578707648061175151784688873290221949557472970106244902976707300838614500537507468679684674069573842856763224503405243386152059889899468376585215382587081783280836779127898491393029064609409948575966696888299744401227387486848238543889977410327907013282841815736618299476906543215072951534786523731090239681828691276092839737478190153323114294289639371973533247518580714198366448019858582012297356386673334566955231601222715994675174400490510040409233222791403898518317769575435948691028548054338952116338529742008305416680736894770724466309664689741217663131590173126893471162765610126717921344673308868897562185221174200480202378242612128812556256135290388919681168758178376902697865265422887545788505371310659036390957641589386358014437450125862915766657488253011018591587192646483825881336061529146836029103174962537142757702659974146753948991537504801096166480609700104306050295972983641319129779707205280805656900268700447194251888364978973197213345558798049444787599692524277420598499752086981226815808616113686434049940211704477158440376991877045896593627295988279219635910144724926912442886478653425928949930423099395856954198187609340042617564154637389689007200882383964922215498368678625367306480011101929231623572223624584184668791648089075605208172469904947777003414116003315180334804863457815408725579391635667284451046514687611945101397775134540118805082205435194784234406524287527663725827761453059537651716569570114627797999171353876365429162135876699134296716371008859411899458676686138755404225250759371476302552154676477572692894260587794682047550588327820040655140379374169664860063756641683550578222404478864705310570190302842671862978488275251116307172589283080115851752523287670765605823597947867358712120413582737535263222518629705001121542776664765171573987070994076862392592593906772381750049631082787309434066217136817240209920249453438667625429107738062630205511473367534667733840095742382795765316139166059711638904170882964356172901574588105662385771935615692920532766135977599989057966842184204067505327873538123049195395142623688262222293720390678657722120560280853847442320708277565105643172898615130091852647099350063468255044775642029652960411018487154846028457723932444475577616883989928954170756771206278150151045167099562702295642418849840532928163004261267380971639668956670839021791721096855048298178543744164250502971067748319226269376336938998814271850766271527813380412173575709001867207383118653112224409403888724308077963653626037310201406175135630589838692855765674981953628637646326177927257892002342741654580066120722497515315496342700099445211670924812036054114994023073068846674799379591989523730369053451044065903923914177635252052818245438498807487314831503844643460484986518769110812903336101229392757424962960223803122547026007133213205732055760603896357953887256262086673694592944673190785329154450032226675007963597648559390758832337771002138242518684188837430335404034286088962026424843076628915840309937565988552718869999646872178562117560225947323019717979385669439528195805617986858009979503343092962718496795678994470152446484860249652434375092782018918800766669560091785827610568434606238110956127605424313266021942489528949588636878080165269591573963238644258613778400003760797705565085104419960887161010976519627966812581573047309913332427095243471435992021568552130518704366718348298804834427255654557595704265969000658821586546767125822204808779347409422924664976940751836840435478144155706792759074362141130163125917219537861369757830845223491524104783682388140769777221349159164483509171684148353806854037781068275522284742570955857535982908161428718816667674694376421372063290894596433107798122426394975756744737723720594861488213520182779023397260560140537305802581300503401652023886651210668883401176574747598002617444036751107568101146928732634744889150291734801572247662385974119729426216561026888781722773334049203968103915696203593588728665562471230587302918594690125074742458368772150369020512953344457285293165807458900462033134374132447030248621533309594656268078487931742047415655563192941580502060163127159968409815129770342846378705783615426918570352932937389954156850356077532014089993522992557373127838583853521520616438767630264600132959657552341398299978875337336826785419571529813221805220836336156198546509923133482485150109845495073635070153368202234772544579033734858905864117326036246216543422638625945433530558906636804831086914814603154732311858267579904846220303007471848338081349599797898631456424554504009230184095245083207657368616936771181210533968960590175798067445023084805467319127479524254541934267087954317144433529848907223108563445253812126777507142617286449217199575511367622055504316839539686686588239463694509165265731755835892618340722811934605747250908780850590719021794516574212983403583999924649711925285250831824338893066862869663700016179147817346728363319649063485333851070725964037001570845654764791245938518089909801990042590268956799179985835901281008643019380366491537663431587597399708014057704378766796045148743211712991400422601882614379089728159432015846155556842010111909135172206548342931714273233674692912420908307937440029902532558276020064310714464684875529788129263926272884804518709266575152866629039165034605757834443357288120270212416240233112090838710083084270938004229850690040993768040772402047871136877503813581851871883968923827986917326636687166457160415628307460730274756699387675782324442749074076060100413163823200357283379371630322380126163647541379834289882126575808696461525003519608130363705067671691938248937188274782314368301456077120246894367726069902559186713803306387343132519166554444151267665410799993994142186835442999402087561157690264533643212776268825417904645024301496822406290618179719971399994382456560677253251714727951066058767142557523144217312811853028739584477379444396408042678277326953992228866757478648074137520593580034468302135949993417372531324980144872434182679377940252203490789873529602596507262399393650073410858951402017515363192633496057413276399555428963609263139632715994582898694092123639600078068522370006393792480332407844437346887180456520399529652081941230878134442395925655329250729315733160588793253967947192736636508561147154465784090875765361522159660907970589406412014091585262904465780114480894031010538755097696235350043690315197912178140098596008174682287899286644994610678961736878330206886744536060512370938523342364197300057376020513771183726526034053595441305103762444387848924359194116522963235125258122437091210310256754047359460521157571716746568566946515571392787668298080971288621562790196842922021429022002191185145773454292288489266629134334562177628877665997277677220776941700262817920479899408370155830166961100402789353455900388426291473953730834338566570339564106182246750721177213899881352843705363900211244229892429878514395764711442528458285120145141654045946611437545463196068711219204128601264901615427817902210819829958245435627053551517773964246411957527305773213857743384665368164382257365615506003615725595830570016603480498388586979159748389813769566977815367734612378712288290785654041458685804729936367157432808441681133796189633698305776904403381471264282624970984267436550856489570216391018355580842325078215999608677542251193726917182422087205847479194292699620767393594518464428552094411488933479100107867713864671090203516322186424320352754368931601845220806181095310417132016956775763351289327095975554693721376287326660308667126003753087467391372500518123720697040161456280619056647425805521883407445601701987650778402571592928759864764766520787806554243539521615697378716454243479533596741613142838897248773834880489723826554957340357981391511780486267217352727740005183828567821822724517343235160925774257761778895091330477438666038925385559144870960881662731912023760504793600885629630040190676756690666344105988350557804141088600386871809652916170799062330757225482448422618660034573063657441211781486726191526239880635551227513524186669424956545186556224347191919325688453300382708248707800837751991535432573604944809482817740859332985295907858461203776441604600614870511114396074046964344149407887593385250959105102862012275104885257389530843036824384811457997292993152326682917368285435949075552214598706736381831895120595383331293375702798984795905733361973426829970933892713451913405177807062639093983551709265420874727869758639610679893295600119093607647211383772254646690054019691866350646545433300268248670530509851820880382672783851491686666132030412240407027424451645318146419195147665638169971897023489820595825198274610775670789444291606777375869026334040465215460976820134744393044775615460316374389717387746090791880661803032269958966467824186234692760320400260069415729836848143148767405639411400269583794975612824252909295926932531650605487579443981889957078921936441229415537087757060157383445837989690700273932499100375606734116827446980236846842172116320649556116235502400866611586169303119556404853041778181246063506703046133517153794763486381718435787324008495377120550192707190161234295983106517533582592403815092212173055369423789871119113180349345770192939563926756060874088117203273709898187868357286012120586964167307573853547309144731508347820723143662736596048561872042339033511639404925649201849942320533940142489952334920065981089401884156136127734566957080043549351719282172282223115265621385922159918545692243767721144306993655559141560681837526235463247559127066037606182351829609114965543830840772699196242936821497165332389971033138563532206010529199278944897909146864862944516661860231795821365441681102002766937513071189657561138035256512990179859645011205781200934383653067281249967178825277819065330282554965714968436229298925800876981188292356740204100663134357265840987679754190680792209801095526502880738523820489152168961468623577700929051406338381624997492674175334740748162255025134971892518670204639029148749415094444170869017992799729404877417577099262736144365622488415749633868701010563160039002671943100657002911314259402846312145960119477956136058639522497167305218110644401235257808222788360513131396119826531305018444409056907498811430419601261569775894084252872636137493998059421709748619779541550293579947999432585337014821132690546063667963423214739285736328523173085045483425992520672441494460461538848279166657765123648012087277342997281076765389589174824995353983556434822637990699985658329153373889853335929928245779980423419804628076026122139566664708562129977511148131865459213131732937352118003879936506024290483288424850464560927715362925044774589899780141596678778039492542059068062736392933082421194791785029849764192846925712482270729869897879102204675061716724562026110110060964245936355190735815157581429160501075652715077331739344051483883796284939067594190851797467656454037796847097730028060239061659078101632986757434662456540513499857923178152325545187940859276103303638493371534722598825656097042220866581853652172883577127807988389861912797694872056841249799781378929703221177113164312783425589800036633454959249765786082108634094309351378462858340595038554248548015728166215829893206881796430239949523017831200825850717378467083188177347340303793198232719677035465737819392380650156939315820487399230356998371918269663441003236969618235744756678967630181457775907023005045818770304872152674186016666037860579855129087419068271749616921422410276200327341147905194603823519005598140682408032657612949561011313775970999491650799284196257231278250183552102039157646002990658978753984853328410878013791212607887961594392425581139252705684320052805083452398774838677844185868303550384174894029134735879523823544870367422719827050281960893340211699436473352447172424304855580933642678561266697676811634490484704785494537604546542521939810799203836312135172722937888851027982190087454034012806431521190555470335851301613337579564469210098035719077907976260033384869212116474122309409535789291472461190461455547985341329925684483755209875481723122703496012199486519993332436496919045219969126967145027952094953535226782220359813096022489379952131216662105189772492578161258899334237464524725329688917099327701194472441982316806346904816823912753159056445576686090617166723782657687736451484974979724241937498760636433903771108069144826891739791200601545227849206466030829755052839400998634913769538563339711128929742003755479476142512242661857905422576042287489332721190332905689639153044377498284488585327950336584383622920975444810302474827007309863846065756432948005785852834199473820750680123383497768567934110854152729959366510226424707285376122626577563641320954270330918067382456988286840745659731619617982768823845962047022596077558500352125047284690920772267279937976683054540511036229868579612169210025161897732678258300275644863678961625991907378855255674711460130856876552148388225951699350975165621324002123747181574170347238548588644606178927333934903293126207529657327986955649203839564095671974798588965851080260292784310573395795505154884197430472185662617090794292274288159830868583340683545962195474160773737215121243019626479917438093696935960849361740221633796122689080474293347059873440028410747018791030992442788008758606493827833077999860209249256156694821373073163843068349827197854236144124090701201532051851075413149681450037378247335892882643511859903418741613357980430268002912920012695028016102433561448556029881121647484336172210649724408090168383953427308891801338020209314444261604646506738971048719344846455210328312093830648258453237412710343769475018198656618476270566548698011754441262181543827608956451712747767762214402638757480270529926846179133788845315411883901263367042992496911875665276281896258582376357930781687450464690179971183698390521407409088361610983401379666312352759450450960606028650653147150574296867234134578821241256649943919746089272888235249847687535341496728867954018753620999616217470998665098208780482273869469247278868275938069256474280556761025629332718072426228315974468527938723660371946728252137121701587790057015677689190214028492266411404121509594641189776414173224439108493139847574352919505983067776530234752614085673702184532303401630416649108335873431581001349192893689167714784655415195193088296102062368486107043341281535133036773244514803743811042080081063349592094689584035439400079997279084848790139308079628505666430274565529479520770351501716263241205894279100069385359037242501959256769130265084331567090931693764525854644996904018619345954179277842817033894008078557633587402338052099945995350793583252036327988837559247338286587860763114460879299267733483346476745966785893760339471528495573892945085663016568451527013105389044164417356196078036235618930058554606106239524091790142138244501920838413628048646277208528825989138656422507156471088261182318319098494463126175992080779995076650628099917784291510934775034567825905313854694807087375750151169150928980564915447144921951611099680752447582486694685038438093382931088483528149296310363067080642316497273364303716261676127738721625810025212364517399982380797184139950963755110218777926885014922479188852181792962121546064609103836154491444794553231936869527754899429116063573851500623777556505007690975410529460788172266938171801430406371525171838251842594122925779906024247264952706709179738884297297573128688727985974148614441833380359228682202072830694790092780754320213731558099944500288067731280143008483707895863925982018472987596957415800585743956475776831272922968486179079748369821241687193928807405810672177435179390536606823326844504903853592573434770274090280504007511405140609839699263281805717310674375378064620691255472553734268575762265267509062678772219831759591195514622256624642884203389117704173746586012397005623923923826496094687784464248624423096525537485091942631070103899190774928404441909854616068859109423523981248226609319230459344170010444075878873428633697618659027883793828124694576095718761215860342165014055551791373224897042274290200187388562741308904695234877928469224960134283673061634210286328778325222236235509762560797805132749673899083732830511904517649127274043187634414665738225465801819872130465103499503961664159900000184168463564855662609914597114239021012757111691579871229524628835470053085236965054506814161965071380801530134200262618585059143356749424840105037780435999943215506335017257489652602395100795718353693817862852676622961778102236886816199501233197543673830259104631024015665087437114365148443580207294467696859757231768158146919531611770920189093892957335014320354245508629497749235484961289851622459981239000102973419372780831593469832897086190595743384799973648199630923701919087815888304327233640763370428412847145988101816155978148744857917485141856655887781695262685687938252544578269027812274926789306042774808675073163410009353136860117840205088898138984158479723977430085875695283584913921148802518882739829236538528380031644816233993537560868926164542105493978304471949484457242818955340017242053862770096477497537870238351590462256059598869735074227724194684923730690908814300198265418639795375235838538656861356590990180880401447599272975777606915886701862049258588042623877524989722450869584379291662729146484648212748581461699638858408201670524032786302012914634434172960865512336460583359989808526984812490434143310228300692624450918802641934073968712003309835215729249350141529448000512794617844064985686622689084249585813715407492360489994746324638962291627515522597115620694831191119107707608114451611486948446128290455137000410111551561837773059631431718877119831021000494417440254724693974537599631235984027083456823153893371762498844815351019234714698444844918579928967630819941343548920157433726150186878653311276394263622749793203371747630853673378258189229708039481877012963674573518001520371469098893681500868732640068232629566190689939295497877188988819876077974301817881169215326183967418427988895788196099879375089700291042067199385496043175185395452886910104828925768358894503480253938047335498960837949695767946048331464613931378526130118269387514695516427168852395232777876512680086529318243841417451783263189927808393596793410772556287137629187601558307377118259772455597607246128673704536155434651133106935387208988696358570545245931453793977835490152795910974590999358189438740863784750802413739091438911019269082635080708477948105054113442783207355277920699107041839871487703072571746281964181895748136403796747706556676730938423083934596200031137269863017714266146392022375816193250675774067006077670013742631948336105709098200082532454572645169299925664240072240313065992721612213007789845811752092838572803708140757641800813098832934819527871974566810006079643016652373393220152395647248448299657467538130604861360425603031891056590197742519683108816611135625864022886537652881030128998831621048524529030792759295315080674131092570460697454186894589999198381227144353107178959075150006168636783938200688162571708604355940503410299119716153674798834276242665744279648125707491574505756574394997613694196831780181358356045090533345824194966595883494253419550903571763208162100552819328117284348924012244491965779080046330730796572247112975105363883828134184610031403244594408677781507285000348798824857538598178791894828892687310221507306310837999996337424871220804853910118552386430371432707303344634836776719835195630193079251271459836589750444945434735981952752178807942590990688690333300656605675683688345610113227952347027595480042121383505559388276344495365300741473756944423388288319402647535936085932382878098143333387711097225280813963373427556126466297120474691552664869329295358918705026664225247031395728176527748644170639144298478735383630476785716839199829446426149596315529996520205959685412063766594398214222062156065104168417728936386355762224991489882255543965998124068941398125091948612190473335490794347914146755036019978343924229888902217592311547925496091746076722713864053009456567950044119856714856451124408773001632641180362938279356964172666671105240644236546753647839912832771975249837901410365065609465971107523170635342330788556132594270746240373110593231462357605903350308718629452173106303610941829604184845623664943754225209494803083316006140757020416510813950579291144224136361603879781188495455543738556834542758966466715804976205939088234833988784145699796349469259143065233046343408747990283047876728219679362045161601253784395225509587848884569829262928243267778456063834158042931050161955503289725751269068129121511599032506468206004135333319525232159747658129461213296650105972539972898815552720020625575609494131030422691930990431674072349533575116898949747938436249585170303293822311869990229636062246357611683650147342146350843512375136542907697084282749567599494538141162596234230581752806311181182810317561906434112997902624115912447787976188129270018695769647059383226113475924977891681508502276101415538499846279146115468246940931204180667854976542170751070875814170982817085021706152959396010262439987266476156401071174679024583540753322494143585750303863065203782623230179591913362551466769951844015442867375108667030754335357272257132432059876496692792462272934262088789398513118903712183242790930155281666403344812275897498249068578578710370831006783981611335051557494683191681553014452151394660381808501918753889753868992549239719041203153142837796185782751189701223690923292125434295554356148711257121769757169646707507432037259045767961413932798112099992573531616864128476592184316342735720602383867511996288534123103802632399160986683214024114616972845694913556167832474788689025969206848571067047375545242021446714932965873098080670331851666456721509711646372796392505120606667758502624980357865975630824342090555075593163985205429600818639608332723483944106364209102966600087993661715856902382873474696615724210637366718392502945574258981950785372680721704723126149649581196703743165633635408312411665676618160424708707622422614066350596692016342494388223720313087581127996486853386314057236107550331837156115895050989824812007201835017273114295755879533752346989720715780385740533992607243037624898726903445001943820680854378836920449855952983105275357165991977336033658887830327795913267681761512452896728075635724085627143217827688977927034303951518917858286290607659495731360081398197880040802700016755891130073602071213121619342854187590102408167321533278881289677443621925853370468474367895890667678408800045578750215879879604177561817408506999415377507263427209289206208636924204325720511898937856949419294118969444979809525378857904285292496400266988657551377254067858911313269598526799829135947739126270016356509314348873793557609444031250647286896075229742351291842675410383621557280012144509861342411211079545330949356507737255499181162744148775659910515672154629094827965873211862052818122280097220469587834024139932453753796932113686468586151057940041868820609066952788322638021106181047096448370055024298673040445544592366870130456195102786655955214630552119156733322078510296012615020745890638889488627413212904855885794599555763374615770234184290824589176533879139821404466581098024478032998441380976585360408077112209723249105928050296785678482662849439047088367310811119173110410636682312522972054441606319432831158168340522882951635037031464631248619630054908762336747268310814774549750090906435615544677965634087150231548009956300922259641415054880622753757207922427304005508345266316790251781137392700201942639238272151215286825089728167406742536675003687332126240285408395130208098800766743539801979204887502239992274900571080600988352754676648144817480395689982707303327185251158127166483436588859844428770418648010485973265778036532799475108394668587649850837578346702849484603594764436085573821660996124586419753345264607512537023876653585798427328673564430523072751339558382032380372434565461248017919365911901906656427986345728301371299346372764548670927148583815859880394986496140760982187588844782240124346353894482512637466104766169928193162026831803947749250591428504135304094593881217777628889267330686870352953359095927444728960452887496874000228360227983813527407546091595657174482079252413205221283571208762512824043639905268198999299371249595777634802232194585069472797796738234512557926907956895047798653605515972076837057641973685580287201191678940600111632825596462693892232219047309090698996219935143441219997833264198877274239218002451331912950296970465062446180335479451599469552068273763082283667293900313437698816955142337705578545226412988891030702603007989653535938938399833027505469486422630429262548344915216880061328694232908368327839316526774260152491890046767330130485924297237214330472447443604266206172298987627768567062525903933427393482317377626937800515122057442964420863916648320931211434972477408968917103760667171269699281169423923687395681715785416712897559856483870785346305536972581986898364026712698885349190181275055485868608718627111693053260693975135435996338542554536542325612931403641721355085521474474947442332225279588774743088891148982982948877635422456066468035664662965106235260596496290178177902607457245150170067498010888464889961308749335558558476489441324415768494372718887821495372396041052890603937441296725640242421388492363461718248166403057349001037909434533064078314526271938209470273999967592941759314854302142208550814164227067293330996741802213493731900479976712986919081443958812178124001692503842248528648358594681492803005878399905405984047718185970154440881945317825768304771110180742994940327281955850542792068066951532667917000494125720907680141457441650187907834912254241944913354456274355080825993998878432873462306089233175759867158354428712549829027024828615031442529856496902407100445542130612391759741387798376901786277214190143257806049294535165964681507021388644463115414975176637420203894167075994983637314297079210780279181688876829385085941049195010498065026829457465486070765596928154357659730235533374068331457307691487819207109334629609538287114861066262585694001715809283095756120892866909944697988388727500025174216794260355755450255335940903024558501954899826371450342589587769574054433555736911630013421495415865289206823162997521804118794027007901835797909213921611242657729261658232040298192519247163254275046761740213856223142452078111064389953889765777575087972248243875099473766841524636789229497579651438174285172121602007785943982185427878929724277586799764541058940674023354774004929683911982703318965758374439726158811542189706651643961351418758431809298765486110438402170920580109847136373788853513222546696235548499729089462267227515139311416350728046408298575051821785814847577085608116095487397479633299544489385575672238761906431658672495743139481444256853083522847170214700004916936131991128997580024895479541370751122378333220706044041875201769284841016752928748579065112470117621290160192467410105467358128978256580060974217290436398733388904345039170353862160708853167692102042442536645441649884307279930658163707281604836585135149832440301377404310204598115420781548337054793804258052446594410938811432804080399719320977230104232023588275567653183948251400754288393722442459173742354407538945153565296491669419535649861265841066232355228217758330796663897994662028612269336774924560544032966354490128271355335154005951580084138150259840810025085201824411213777725042413008039770370595763369394538198915826231621677494269336949236436403838696823351713716851597224903046296777056795890966357050627656170226956484833111493716871636145469263793150587051414915406597125444545935295941233938160937640563955317473043894626463483646424703847300007790629501380382035628693351283119233165949747019142675696159014479103116175349482722143626840594594135968847510509876077021108992129453397879274434273567931885863091679357556110582684997554167069896388717856105307729219314377671182008705498476648073639920056274464574325235409668669681243416575079254004786156146126632709903904384105420900725588979865935105195434808776682661548872482185350027844629332769816859727237911055591607648951038934872230177382831109200410501261348078090959033203273509010511637337771051865673700267207634392538290092404317148150565053390603185305142356317011438461377769283514982256885423326997387458668445336367705792487017707925400173352301956980058905332588153097171413524699695774057192379210621977445567195421694248608674869621465209768158561042868354170683601215388394385540658409532291712789657399513669357120327386714479866375334640481061226387229864743233043237841689678492131600844315229284629628094972872767746832999221976359284813799623005263533939309313452488695114950095824049364125209391379858768591045241682631301188528680345996411604718204420349502899425092624935280712642282021179695873510482503858691667054447885257586071012970564456833784271775169267868946643702229708422793244270331521552034588494076894773419210051822469476475150726359964981115271441498235818015671634639616265374472730858532123241281558129068618816362584869983134827878937228991573726665344413932903203123234756703170699445493740606819217247570128632070289779637237867108423152773856305603865297685164720719760835806132037240500946282027418879755626973410307146847146019348985940017093386077255935112641720392657613812810153239688297764378108612788618617829081506157445142740534121584104081426534657051519599877385161881869052492593652251423051474658200451408387433167198617076448883099733192456732511119064960593297945538570934830739318754535498319153651131539534128332718289734866889543354609333783337456159512066290670014179848716827990416212701620123358734775081070759609197757037948272159107412025279739804836166785238202536633187461808762473444844182763415773163884897982456322424870217819335092672947655618219123572712851839337128494888826645261079909712123052250798040006509984905092868335263270466743148041095223196311313886790496689688398230035070801401221462706126995020049229504507262436019988620009832692382547906003973573535699108640622057887341493080745302134619517744541352957074751598440217596657023918268678168029018745051018161197887763292811345566720311820689957144860841795678324812130987368001846731547894618933680690535722488187459098786474389665626905756547435886322558375033630592447612354434253695636063696112091472194300161420738739485308846134230787320897318668873541417144474097890112279719945278371352806634106765196003589828072874791728405114926481463422214839957399139407568042139499226661237939092546364125207032212684477289450465751870709417742843699965807088415340617908686825694615455691377341607780978104058886414673367164276656972691098837589277749033576034634604177132540205711614975198337752232892889449512456865540203766400939002907103903667076466192119674928858132413409757440476300582095914920983953128004230059308224580824440006082151675907090464138412725278326975055937064607410529333519947013670215131297311103699567486658038963972956133580246591863972490893665102799769322171855200961586957897765950722227446557833802014996282636823191271345055117999576644459079670568027194456593348701042089568970656167924138645508660038826656331267708807638356054063568907200138456574819912652713245176521283760837973072255109935843507485078201901256619267486653947693905657894360512557158927706408169277900275010091658256421809045809492156469726456344003964269794287661931738484047864766835303160788648041061047541541991023830047523845755817427792652147863921222803955964810195591632741288502089657464620116101607559821407907546704355568959914776320579981025863799993144929162322477073118619105855859261175693799070361465906022907872041291378527271853651112325634392194013651105284016783128695210228508728012160309952224125089181493541307179861395176974890779662222007121882705769938034672230698827283001217968247245495314925355485570232154450903506010004946476168323959904207577972389681210578065885881582290006381070717151945729536202136905866088897366276798714033022897211611275155384877066027527150295066914859102838337317229193912803193757944655995894393037630456720916610778272151070268938021807566162912615625460227873781643026176120505409595904314735509288461565341722335620955286983177785524285347656711024091391822340371630916758783390863238465170417505154611055385667885508097842307360469457789842162929262223304850365391474409644511904938209056759490845333700573569464175517574168882725143173267280455245072456202586524111831046406488251004404723921235523707784665492480582741873690535582826523241569451464194986067532724081860198763246970047671129106843312295806630272334511257290172988137586714383448315378772739337508683434258743266607472590738333834611415258932345772286934897963463392250115101232864079317463162265112592941827791939184798533456805953204747269496682992616196750767182415037374606793965865300239784265353166369069524051840238432999717505369785794915372336286207876876235334822473634304185451305726514258372473136777048505620116524712106920740315325683251278929234119733195810910768340741915067489833624610155876394026243231697780110528592457358909216827745452448507235089789238031225146141428150894081400303840553402902483005925158609004198843446799165135063051449207515262179745173922313977581406598214631773016982595018135938397107830522782248501399012365468952772633886708386639498722482491140327015668254154043105220525378007279863904642214047205889881991547407942766211627006058667914889525180042596174134245871932811321456260154664611016048171235837452070130786545831937936868846660700042598947464027342708245506242104326607828914731428941960715779463422778850347979625898247860345268070041348025827867329100158702238501301199875065903423227237082801660464814805729518952860946339027291695751022424348387175800486228635257486726868547163498125331437064490030774370469960977390773635064599817826116403608261412773789059058265677397287876903994667822215188594018673749450444163958156256209042890121707831402393404312528849113505231095852036824831856048288484081922152855366225445477368258774244597371766464042008013361089563547032648842218652434970289978323156552264809791966604670808682863088558756456914188896748526518594904873272028765766373379508847686687836700184710818742944787011642715874375156132160899903955009004332918617726090504975225411732127100777704245137025761033135300135531311877338674988992101651880286380483451622207255767249371081249880984773685372343187134116039529706512862266318145626928934178167291860878562441859534844188562534463470836225461977318533882545307370931206578457165464053574459443816230053657317712442904981811972591918711274381941335696334892527300254892087780783595933652641276604837284019293683335626865117894166226885209722223915339232732891862521176773183014656110713102585581821024903100381529221214011212818550872541563990580059399674162493488070295011389856311009410279421873843326142643822456892262578247206965062567772200492409787591422296867318158942183011056042388767216517003913541489220926883528920510017581560008031886492068702804042460092337272148415808279137253845759101047898471125542164580724586444063283784598613074022496760686632753435434633398869286857647583163778659507405879669078743866505815855968404148807468154951322691359213252615524273306279173638493047657079246373014035373009704776006825570913393373895818950012518341308043555977426654279612344825292193586403988552914182514672008616366792008283787863323301993934386138974729438851211987445464766645543594598557919601863305888336051903927444856972556648902001642995319861652919148320143268355980653017542375516111426234248858610752733005792320781918118143297579368241060093112671492528811473516224897100863172171271580156193444157119874304043545479177209113700426172443568139693160394420565784756788997774531403713831596339187853650911462044239480995044057743396640547498649879917672682663936070303057144772746863516989295039144121264823962891841501999589560574703427891158190226115454267317452627566483305251566079284898225233247552327000431138360133758183566360642865356384300577538498575297282316700206345591190858588763453278478145316745557614199907546661117320461197016123771183194310424089812598670139482156134783161014702295110899167965011058835210239556209689244921431840481970006293240461836747119977131414908980240380332990962733976536563120616001852551682433903763548086210024279398955907608691695109396611652664630615603409343385940104220979949815550130286627672937889093487174624254251905658654562453015042356337830433896714032655639418060833567348139967892129630562799615583625246721023540820030443639791409266630475970598521834848669171996324420068666035510343446097835847732172863101969446745838151837657348571576998392978800293489698408048219229335311931938501845375509461889110713286036484948434310395817469372208191860136806243937428055165972562796285164768282348904195278702605092609490346473803106085978681922777260124201408501782878747833530560696640221028385443036884331147211077038840748312194381046932518439338666406532435332620932385182014683649795456805166267890427438840516873780455105810839554248958206962437150633912321037667739295411036463603886103770892921482721997762655916969507212983551063388618804017088405131280896730035788948968889349489418115998499968031760627026313365125121743013967481001582205033505668766982559174415046574911466761522392934432678799981727198690417708919217832320495909651280411106273914750883460903444792097106186034995703572426349021607544854895500281099985431159104072854545309611113393732016328129044462819813500708780098728646044629458283319594689102116766827463998897549673486496417570053642195496757442533262999447532016730869823468535511662613735073220732882296380248522596090149496708240243374286365334385603055886353439299825255095013357105304173143426275940906056893413579635463378976841653002081379729687797222355793233803594527995207985546088533246901610250079353106133042192571867055133231099741891920776993609497051807809868843667292118738848066651954575631374075033175884502398513770449489215677583679631458706238555724110947055488489683015919036859225765469930718982706080419131466605508700530737469352256837444220404262061750241706694875529911128359055201379926497694195699086076392449376279619786213639829280724500104368600857872457130816286769390010765576814860656378091925981257554420499563039186772715325132611705966643691551018349743112018838313432361184930918742403233050207566065551762121124224511882922291351894912360538871393231118793727889419659379217394451648695878364869436673481774800767291749022778568616929243728941727120968222370853437490119200526284640970762362697586419715058027512362349162380689970308960986497421939420775384669565808372548623756243111673301799695693585083695089826750368485894327684560146306664198465333749407607936558383899593627099128992498168736108056865164625485225950996251914451329309509863539712486693847946952730964754512276792896120998703386687257080365321374095597083683745432923898041092282290589190733314963377641920686465460766397090931167015458979198704829523109505585774441158793544974326809270294834121322925712952195361231949909598572854427260629492349765285117274750114822434527028697374541359815016701211774442143518921651369665148857422535565095784318726195423604439386318327484624513304741701494228596493692569736142275341739151767188996838084543064239632183805391561749734847054156242050480658580741715807051433352227039996522112850210532868686792469921849294201953738884397395420556824072673236469030021852680870651774146449858465460912430653548247681255451822542537234819580837925521158870588269109956715302630289383551311542675046458402060441111654437052399192614344725200833372284107207244081922219275722306357896468318139404176681064510376403977635549302481650930289680151466689048149561339958861992070530782418602311388696816464571838470252782436493066581282690464166383701257260504118089139211927714203458315230451278857289175147563105483878907078641175316260859784923087881496238195271414523422996752854486177882301376587520663365635631745950377965416529236443291645462215343458979098792621973580115801797427197608235384252905154835255476425179790422280785334423457944764653321847421016314288276993361625994771814674296572936459349337826742847647507703071447013622568553286217045592328110787415833542775566440980046344110593960728477426869451999283030664961369071745702952594321878699361251390283865341742932376976086804662431413556823730257074596742628753348798004672898820896425201183533627285763872993135148228179333835783399801526633134088536350162132867039518956821226283101535479045508125850735217469773640463515024339869976656030445145987525375142764700107044090465839990306251690588922009332305966284504942819509068459626660886602537187533402502993943106833013428454515134825671192829889154398219532664410455381806089194394315561025879595566209794605205336990992531142676501135468631795637928367722744511002220926046445032418848179957456461268015670318114387635259434881709908652414569201774498277693722658370606466429723387391987365216281128877730875847459225144841438291825288058679073227850833072540043691069040499857922804584833883807962605010695187193220286102568502632163374739416130557396590519151767298659778241867792612643590557301471463373197312463731787978176558705812384100756827960222342418452796648601972986188625546289178604680201490341245601776768682484561569948171486775521947584384261373357545060863740160602411891703512063267523730210411210816550356258543847987696951451084850878754973325368894299597310640408411260951001038862289703613825276822578091418037449335655657274834156550158732135925292010102414059046394041995639809532977574619210133544101769864405190604893540455851057813816283911809423176039783108129965091296861122650467933224705735376177568484054214373242686714110154701731235979568517925602626265240012380463159041656903241296348623517529768194297417236112989628111663059619921863784542104807694204520559419336920114296856220545466780324125015405832099335239914570483122564412020024935309385311822172165168501535913209899776057688877733554476629147432640183528862776408796944718841247850490455415437425104002073807276383127766523079226079600610970230288976921293257884366393366623179042254270257198343382630762580712727594722472274913250728368778955362296723011981915144878060136983118559778410841765239572641125628002504603587461925333493433544837120601528993097329659268603292010347584968790109002543279169546595979889750445088776988568443889837512142653940349408332411221173525672322016538229410084048623213478027838590593939326038340085195420063598610586503708822567286978078762806434634817113883093092927052121116167835087546566987758630945174116827566851671541534873509125838694699034227079973518863446171432590103549388331296539762688532874531011547194214953146106712474151416592884630889130104164016074766113126015041765649957495897605228228002369375510111765212325359089024484764158788980710430160833353496228819322944578077899548528889109643224428337755468571065593857617727358460224761521236104662806660701906569728700918446893656594378470570040594624485306087868047010076323502599140545236791189762334171340827076038707185649513550060526267603902037041217226943419448044499359018340355079839705031925769930600952968844894845406558713801436810129702626501283912618217208502881016221304724572195701383869980959953396168529915624376013494655349697164717398383063283798749777683900890123480187640930476242164309116665190906885781869462746816630547908721913566594580493707719280423741473694343072557776783362828884944092229856037724493328448491564364097162603910390712728419018738449334509055768632150246291095107982442282781016557986658437855034645455680238812956427303123651624732712112804315305017021806627929203930687188818096407363580549930652319576850278276839731068367141018795953523936306165030009107414322672431755314578120633712059113936708991618743144240753207974262433609480957727791345102344891408122791532007290738630409450899213969711071102758997145369361587947927801040983398926842074425448126759659806984288069807800299087151259514148421374315177786832981508095168075303479233147425338706243132711105127507547979383940755740732272511176553809957508514791013909324663870409654690702712435259726012273201277295002448686536872762112459801611495606040211405894872523979658257110781398183337195954893448303582368557918143611432297375901976619437141161916188091847534440074492918100583930209963337319879386860015298702385147186930352429284116067777038518161316351320126665910451733688413686181128991690390139655017418255418911150153044307341303678197649148279384516029072987621037153045848650899020406346455666188717003411674874305599023322227130587230908728828979325693854260630416031001978611770950865988105381169306338921215096425113314689614530781644663010040148295508088325958999641713149195964347781196342817515668464966598910217482114834491343740884436223102042269721685027973892253747060455904101724811145673513823927368182876231717230222409626050278213448781601753454869697583808169753262074088630527547868202500675786436304563497060048567588727081105987862857908454168347435316783914108704142945924934780658460726714341765666528295742350430382565149325921878970262566630461338156958172132772917810866056172158004207109833817369139414663525950707846937752241454806602789900931658285584916229063619526531830908337837384439760492788219396988910539358423530590363992833663598569528525468286457848863517547645183440533940567000767457182322299758933782737392667456330161145779898264669880278614174254465066452875963920393182466228543061887843489934461883070499504871388630710226037530683207047450152912073497138988828105378493919747643048286473914569177843547780125512055032000911967459575980755253696279338371666146498866122779761532081384607223857836007998059315658281374487651346395914299379258443594653349942479518676066472951769404076778139454811107556875811646611589258049925712844983052838639845012628463814580274964998901942872113599998319859613670069745670533797934082700072480251937280365568381142657771859683118659036285216375321534753575305061038962057740047124171542793094030232839751314313379297104354418160046602606335861449084534364161345755425699221439777595400649109625228257835963759224031401074161919619822748899106050021805225802318905552063886717033657440707970093639432237428712285986257583034548816660158771131464014855095700264748715849188649359719060776348316977806226248481410653606376351222860598361478954883050395984477222422571199044017213130880242570996167222779394800827805732816509626066179054869430138083691981995497296103275720938688070446465713948029559599915023336802344956433337262562772805981293183573519886866634807186791438881593998423404222629123657842452591373480031264998755747969429393505534869549260957897886330393345974788597232887693913114421897695471270545474145316646011726274401846886543041816435438250425883932448022585965456315235959648834605828844320366621352314647741818776355570220051827591491485156517710150660382707117243607137180266058819290882923304311497746157974887199640114680708931606023672878116409950057136982906621904806498019068915325194674601903215556383786073511347046936436947594438541566812800921751316366369336446329800345788236604647816998743529780002535515178742155033895895354347852723704147144884757323138657170261035802915379493976153595401449900997835257953366634031442427064643734598549086348327831269830854822769859572411541410396091677917105123940732269344060078571331497571641291732170119937254533725963862415734774027682124113795301665512900545357725739244241139400170683595324161075757080216726111018201695952706559713294098938615581789168256011161140076922098153476019773474750733912323038540715039640728315046920545022146217551941080406249011121113807295605319793842642032413633928276144400416421888508489525304453512451677890510858403514142508252549611267476232773754287858258739426994085686055334936233288293971746869192353950048279516265471575790287399216571195619218973095634111809786148187275423297998099347854189644095242743640747921496199352136538181100971666209398343894722578610748236082244031042369485642184704070999073497695414592342750622090727144623341955840889703869696471181724579170822097514255795284383795009049560955308702194904445327201259895301472513625100801900848335267964078818403227132240559631029410143511687277368922474401759498828305282829061259471499422289683967612894054561402493882154652114816126379695409681023293641407519990679245483136522918966098313863938792254804031156287519170895332155473181776096058160319224200937255071674377373446443416133014213246296382667729148002252041305836424508086521062258471299205961641094632863993444303005577478567396973507312140737641877755061976496015911187984855293728102626941575833926859982333145437324941397619954366866371073112625848368136175699634606288140941269905382252759898364692794549919045101520596501652247665240519709725896801924490005586308085041807919655400853446832267378870708885540772049002607570368330049230211444825745418346651321806295212480337531324552816402018761618356920314770787166527323494331867683582250563611561729987721908632009007903873043594718023000308349419621954821729134064522143237040086426559633724081918885266919120771152325983860334741081697136487198414330219066937531521986730585386209317896483361956120794189043668697590640059044308616586641914255991512194656624818513823142645908302663133720996324656712663389803421814397969169255806057478883563948372365188284643284553539722082924324184560073347248133429041918045638680022962704032263085657489571523025245261070896643353403699371067225220221350278251497886968573579193265159777521120381257795710728411590211205718563704697525368623990882301487491804003663326223699331778168014126700510735327577985290538594826621482282260761238914833443315581383837615323235299783387801913038876910787733286491930661632756893424116347820171609269000302463455754078228992213989336122269004454419572606916052426355423104423447665369169966744310624556292405894263537380572447065797600433704805429885131829452015386438736880537915491874395047984768652835178693611080947086618189537000247005069878215933408789185825080989352814552145267364290393238171844089995655281463266464874889493867872364560191954583421631917128964784266780498633884043790339495717325319288319439946348047683590639527760289684387476990312460179478514073380189526178037944020226985534033602119234141430276521469104869710559108866975790644372485355514937834646325137977062168004788142493351854127035789542946547939140597781854398406046635807292267543240011234665059940124704727963619160060545285541701478824133911437897298170989495089723848826293205189071960340286940190580776041720899920515595789698575940782678244049395545635196417811667980603918560094954549826527350465562674412454139284149645556269612089652898374684810733171234504571043202514317282271889113106204293832046618809101046025185777434455530824096047154740212336251099927439147066886869127026971679208488481350183546045680670960779566854984203745896906021186693658210429338881764843138784155934293631439338440846617923103119951541255536514838559511702537479450031219590737921494747303408400508860916904491585098205422201549766616368167803656426668480653637247652382584936288682882081240355758796271334943253022697101042439238855592273451957027625272687403296165976748006650875070355148379461932010172745539777554794475039071188893874575117321599131285351238713685182899549944712894134104188025299941517189686788061707011085125238935294746664431097853829885671514978336118349355200835073135155312822834529968640849144460207268026500731397612033970877121867754958074005004578369402091298732636896743280915102715215959508303061327361660905386667631703093934831955039013444988416904888619685586022871056249219005788926014470712450889355203613981050383209117452122379523812623724510140551904299493111290679332290309284223458757403941702687238223778068121540088136393374163426411751493698253998070422974124356864401080848781673059016552218082289569673886969934331677449995635019362464969399917138113742401919189026354825247412370509848121275818689611098386652044511468711953297638812141784376702890832165000688009748428178889005900449872456964416118057141897901154400116490295752263421788660019917119135364366826292276463094424903738199901516160098530270576839765156323638378002524366176073670854088278135410892015550104518598685187801098750354250168960640593216186307422526962775041486619081855370528462277901724920622774252970582678434119706012271713171717045950319189439502929063231131571552280587899986307782741945450890541778428801607688856588973785343712633818774691127881025766300900330272781642488324579288990512323844914321019159668864516499339685806664387762678370635403577507867535227377345547115986544416197212095643140613096464587097134450724649444022912305193279209415453563308348522645275836415539227814934500913117038536204363800938914432169198516387683038703526589309179465773741836966389254034972799997193638649558391810447600433593624483537516843267557910208827676961620699261638629079552695673545757133646248598790629419128917855631573427416747512404695779588465750436361569364640671225566551262614375043362234662500882712224501082892423693636241660010800695584006712657500088356749181979464000438555459387334529683668295289404463254307864503060175323238922031449543238625050608110785596235495110295187204141509275676075102276584478041480699359282308717099150075485928806457587337812185791053820726310607030394383922369248276673778924064223383357774764994107023240105219473099629793824216006583193948577825141640595890629703833404667160083634734244110744695327672518774603435102529621956025830007203715713507984387613163097989781502957229695434716230038952030985654584795865513676455443800489162350126999097323324018712414941196510337945599195538621187707121832775674864664051262770766000928943893991136566315136024355732155702067702004121633179965666564510734814999351513708461806641678812907033686529797030407677607421291255826364233390683374261678601951701126389353802318638504952686379807379982536090776245200077033653746438615276953408206373839214471581984504136561849646155960926357705072703993492048228788084710149728007904826592341109854334540016316527283019707901386997399045407066315986785353022131078461965471025107733572130375227663658436571545128586505237439079966806804228599706564027271511031741574870009005510192241112478334408990908917647775391334650927058613644455336448222283433943532439601146004699694974525708264717509531829384581442573958465870987559279538776854624926598156693424395559994871885308703079192405460137383562318875683173299473132782324623671869626986158628637042305154147025786815753836588544550179920790593066912243788672355831793707077641842449538804227464977545700390811774984092946967127992116931611924133265158324676164012233781606693411312444205687736557451404179041104060374608032205974188835237679942696907912857098781973285005758807830090641661921246845810457141896288398495486699089453660276131590247626825575544290941039686031966326308564503994020093781676994932024544458569441024809759662135551341784379095193557676251061755193816889643078888356483929021723999586048654394699464640084290798050576583465670532386110359814404581872552473334098663982262523856518008991190384212223361983448689471566468370172224900490375836064073959180105160635415338163655195297426229976943642355774121714608130384573589970062256986314058163316208610441508586874748586869032242609615203445585696973957940355329697286786981799771251238705597215496828136913093147488108378498245627994625846114143701413996457595863600886139110161553420115568573892531998088016695903170619948940967584344686337762466495038335727966431359758777540225439240070901986489590922039782669039544322653224348612761881412767847049144266153567657778160398299876932233386038477972111405281486559998081174501887803271332705924042182238644778849507999877553077618515437573813001353718710040269541293001879167602358120224290017464695625112425433895467432945590618830828768967751389644943447775541149117642302973339578707019791072004742635535198794105173462347348145470347376662742072981695560804925550906381094077527169994561654265395844473130810962478099031446953928666427689582605769619310401426353460167355032710079038636487072674160011768986780094911530496600167243745951875621690466032747222876521699984088611322860004853842018133118449186630811363727918218993725129927805053610291239072929082997948498912154050668732843148957037781428471611495006742619642203874539031387005457756743832287895093295552320380113765775362011164718736449018636322680414046047515276572751342096474528299139092283311100224302556296614748363101531516104054817415197291859903098108014115840570225585049486226277432141727141955172055151441219277647861750180645808175316215161057908023584667163813080634616309020659122132349527268153709913749874399470202580915138545868313956546983218305898860979505408765106642930877682451397578796665439485898335186317510876293393725553904885223117456843970369828278570028689046419244659065950923701304182331156131730624641551490008641980732341718827712262756346870447971889386692121569990169647426863402551548503548809898348782244517802423148309693153805492066250638595911451992441586872555833350414742919587730581514640930590740522629566504537455670432816328433934799283921314900882459128214734031453379614399838255753487089369365521473940710810386636359916939649239381150244263381619136682227145338423523546261403755178239938695026583376308014029946986999661857232163948724589050361041484155315325297001932212779594294473054390325570242116800108521316427299896196294779474013629359441013830283312405912938034892178536134041713112914328677405270703933893745868540859884610483050279514859348991615029275972739418347299089135301311617287473509144096120238472781640967702103770721511568754225858017157436432441635424723121671703314438131972920865197123114077462958249692081905766922201516811797468675824920021060711626850568836425122162891357134434370246751394891180680447333060284424113489420940063602822826137768011986010891710717677479861172685537818195501603616397048307695951577504845915866565122254847937703127392449537127306995146843007572077420466370548374449711502726948682644297396375032147133284560278648590300764689213591239224105033872322054509911675451694041952230983508819652966731627883901869217540751097373869454916676872836273056730962375035066173354945103258668417124208604258409660184589484897367528425297734750294073600248897507463464600477659442280526013571505669074716367087565732296050344714853391790436150809278339190724208524330533560748419791755648705143314843857020061145526792766236263042204758065512034850322571504297918791056910516767915023796420116536875603155038734372850085696113518569251908945832698123443296197637200507274276440306008709496486148917432241472223781448433452239155663449264861698270809468741908465599570923151891941266870819004163277125553009877200612304242431649074631100646560496563686494577190666198923900624684125691494696689679924466726037563123292054464779098158259810228899446680555877400439614722736874943263610673471115832981901003636108652441274697213753953606698027787172270651175332338448992369374991065803977902705590282374774118046238045875123396875065128621312211663799354526733979544159668667263927780704984336195433745426134138445004959751510818695873405470023430602092850089047062420245436993333452700034071522244568629165175794619177352296661530135401508165631170598165819054547875795547179263535531970853018238748452224257352099480019196108528977272046119890104012704557440185459774382249902667216713144158480217362411052930230854101391748469692390146579228524697871622175240542387401935126395568602211665595161551621996176148727346500949877573110598662864959962986253258922779716307947796813950400916149328998497478005375421820895982975593323571307378559240545104166551421310436121558276619913620164759930731701309481634097115702862871576697208389076917140918490579963235862616186699062857912283816358540801798658018099143583474000356024943235289570756186134219717171045008115133750404188626381992840673626206344327769148436176007546879050558549727933368506394518937741448727748857800277995836635038098224809047657519038231735443373983040947498443568109400324857411068691961577164582531507121410156860191022351383827662212097271293277913585517042508013895305814650135396851606655564631766496962297512712912224423382370808477831880488002016365705472324450929667823436838779232620557495316305761794677005310018256585162517617659508721486333924408025164270976829716763648861027450187244693675446619965052250612151561909521692174318370722539460294014377604809385937298274000185845283758122994070784576445512873666573092371149373528551350749875327939121448430334536805855420241022774202752025886954281650889094288087836686250165100165611383588461371255145010256677016802718237501015790257444105870373704283818976773291239533966479326542763434331054993803322412714512501729492864329322933864068326896982671827902453260485932667730088644261713521772611284313044583540107806859093197573559432303981856221894415191410475471378162725143341695596947760150821632363900878190703289512779857325113502670008806266321058615709698795451962970973737449616126644514486876957060856180695138909365084671180994729158334919960056776516147933309800015608768620883168978086566877942187179412380293009559566911070133765636778928398503714056014782429259823955132189298793415769271718098914905335923123189169214639559568531285981074263976635761509650204862109887122896295703870848194769948169891625177439094299840079964928944669180804166919886147249117779015456848736782721698044095439980298288929007952624549157768076366936641703614356989925888310633059186588466093467582218249191474847381981384285746662636659713244307541633407456044532869950347504509559175947825325798624282951999655817310360314315520201004545599664975440198754514876718441891773393274313544144809072299875267347621951474019782280589253274664463711064158136933119514146524557117292998005013959806347681367031670398907278005086563472558320727931905584915828964945946010673971521597376132758244940106781973584920313608752413433783775042248454906940895105013428358373295810122283343294515998311528919002720737849042747259526689026480812684306597005904497219252772244776504977467110798371666255387250617634794993046518233090729034744367973462135705306930513284287433483090829267151964206343758925831528961599741667671971254759279570797715841677798424127733434074279631019919163654712225243901642909240046149055253128555474425603522042169889529555691600405208576537269127556824979784063438983283603376112506391271697545810932870029456481790087695158185547011314827152396745890220294054001517765230350089371044071505639250772395384949734090801217112599845992074307378938421906177002126626688950080269524397819483173521470002086636272035802682528888402875217543026360909099337736559295782366330845268304185577842637123538453011793649943795879449303994392626410954035690485103260327718988564985599834205118090708671291344676121535905434638267776733185974898723547782011741731489983131519346693902232733807444078720524555199722705949761779122147342614123623750432191522182721414710782349769102135910453008527053393986125229551513125029529598528443214711347150725562160973093777073246284403202594329624516616982708809277901509341736724428215589752966878914108457582862216039066999941145592897562471417052852956480209627692773815757734097556420721896216504539288409068071353345297591532235691840579735082708645501447151115811970470675355820210003747752314390540562209201799063503986800028921079393416280706968999909831594397784869660083212701140540384250534804610897575339798652869923557594461108195438743228214019989418622375383485779721357645954960707255604202106456322105919599719356456232041581820635197867499365082486535056599452585392114160301324163894141796709144212717062731646764097756043624479183226075562856234651200380472058488093356011137947369641023558364670229319516928500519667210879983117395459671368082752143280889246280218314533800702890766261561641863877197075302073258815485708065324099291065844501230094274696086843589754645083242789835481791680106349702739983198227960538322019399621622173741487223921154050203382970418233010838667264400921699731769902949791716883302478083930296924191143435869993063695078815866729700751261461362172658223845401532840878032946552087230159955470468627504210831001555969067810806456732749413300010269337827908811755939830294259493410319689863733811858456792987857125207354984066322977621035512635345696437554290269099171172619322148045738223459290718599499099880902266180513519696296205314297169061701629150183096194874143512092951846930995681691451301956150155907487577660485698204011979822139029312007543820473241592937702312308228814921796999391175936608049014419798554944903833619040535564118504233356798149032972926784552651184619294092049058877087959854521400653165983809621216958647497506189063399880532701587725208014790603154458136756746168225668893327530506712678201812082227767020873200830178314202210630496606362593806922152805242531815470800918388410202682364385564517810987831675736445196130266042047560169035943488948033357945057311414862351011014303887276524027872520520306247387886442072397786316329805855866181400831784430913911470653053869545256029221169387777895336719582056161061462097700280032554977335070763157362173010357014273449904049429090170259902955318900877101436008160529719320923141365811053886311034461390053158774209579898999510179420908814542527059222099300851567695135426759819100826122022110084679681857031622085054135300006515378489585324937205362445137318039158558303084466585211779728500709218168993201232888746042313221223567433501506583155022023988788134238201347641962952314725139255997168882269141983145558175549784171506121731852937405541967815821027936744171436119782681911103001622917497567771779287420802190204471883876179572207411989594725019255078716367228481743348793013261751665331128420018166841726170828617692944245605906517148980241717856414975865209504543112309644443041229731443448494174404898678046291377267087766087929307039882287735975815849441790432424422147185344464841021254949330401951220038938803386998089322506925676996971956064770820633102982058597893711593481143088824716409759166475451647645854429405137086377570247138497748494560319668057844589801602696058678893057826866667765567285179282191143293356558176872039879654224095803589887745776608793352733395099903782993507628376636493751419423260834714878676734298361867266630863994241282076203834463482164590375448006883686711728030115267886461134958074587239341295532694094557008701361286553957982707772943735910857868268522276219921075957075646061653390562306756089024296921753950107652657091457450349580971746929196175069722657885165628405280463855108816539469198198275989377558116410309489111967092945368234237981850893964928087238229762963548931430881378075298096112504210294524460277210673706760092111593058536619035319099479657335900495029853509759283373169503833530958432448845829166911462038695098434430822021864327766342618540617195410149972009812159203372665322992477587268329981979506149722754348314328086089967800639191319267977631684563088132491321362215675746099080312524695234390189636999596145801942501585177864597129844025912442778819974668233514246677048592205930783196276782762161704503725989073822215725319603330552179272632220270077935139391724709610646091861709601909825049878028204566077695653531335180383795600301040548537111993340766414716064662674830268293956514827340092701136173987031988806333949497463541155172670575227811023808924483073102639039166443693146647744105009131591531471295523039212419213033246776639595063627213588881670063341489462875290012108864739766486164033614968322463935053998902568798182778495094815770589317608356605907047438087795210541938637235961940934263571516994886824653584006592378154634430032984562439881904779936189361213098350809018344305583995895336117988831296443726777863303323300232817916200916683214067918800771313873604124696990878194042262625981909979296591125604994465407172448195364242637064832536364604565539372215334937704227015586151783741968743988737578321981917682094014022696288655010167983624661622094181380856324570183892912195660549015172100466613828539007202287112280511449001396054296304923067023249225490713584324491069091054201339922129550825699640485442742779403647082608974018693038769048215137193537313136430041360997807701509045975299208473229666215728824642895427689702372720195680716351947570393742550434386541542267513062398468139432275656172468870618603035059513051045114227925040665877435527225936366497643676859209985892404330793852112042041554843203660107538690566785067877750950046775056499970754827247967779757726817929478701724725549774920052544577462656194018782123212244868451233018599071478748678420541837745081412822779881273726289386533363610092295466608445225326813689147970807068273693723831869863988644488890954665630762197216075159387478441770413374935435421068245552598226993472225569080283040107656223110791613643414501595426824380707396177122345845690012222970388259458174358169168359860395777937887926716305597879675059980231264403769650146380590375538501141447905608679235591169462987352941971579942502552045676307542742414523046286033760135432882941369210660294319615463700978805711883030362864840189634833445909923451441288476783731245705588711798465347956186780510121475663768543325182585098183358968910690986234586716446776991309900218882945121982391382187284220554098503971701578019751844591239043504258417967751748794623700717104405364227853264923994492924014173422846419714504509361688652649927555651187202058212185192570678009681033010169560052542111141882037222521053966039546245904553344844371244756156696643155387754709359085206486640321609999108701307332169827916270114288215569681538385229134134312658418476506880623530592185148929533100268305310387787367412187823683941416723868858435100165262355745861481634937572483275381085643583268681703170926316123067163959577972930297405600875032001623735204610558031119307389176627850334676577541574168222101446566413064201485675370555818997726368889494049223220292054460415014078396870658029534096696781283352827793555689285047959515414664390059031234635172208883474163210133655289073527592060870792077481560972305838303168487679260336909164860636063891501690444766329342322310129826802431183077020491245932129487369242184318705318788892462079202772506131738711855252837882424635124036246719306422409962960598380566542113747471148997450353953871182732487206639592373334427777845538366637356179447681126553934835574894606435251223465432545436938510363366602695619539733285581954322824507781349432299548881106763462557148713360521526331544718177418184479068466791471062057012250982410534728951760263065454611137803614621628680838151015814972869294276696567668659684100565859730535743979590370475451389207048648046606503518164602810602274564213930702870725456338706023081653479043534456600763167698209789506992780751974501562952807938179596581150741489206996718523587805463454840850768677530753948148785593398122871399886178109146724366657318371598149811979367486111855166602396980406184431340299516566755072968930500636930498434275551619676452732185808483114537605513208170560543322629409037970334143408102387142667457828112015781282171652418949571587076604813879363137108306290092127071995906663767921299255478517588812451000378238335117948205292014716902486882076013368628782349700619810216624541894688412234439710601105346466518720344648565581536094776344161952645779017985141606991003857991489291858333553934700067242682286032576548824815459555382313732044221005679079299277684173541439479646391245024815673931517709874951419274847106224188136176469962296603682555137595046179795421121926110603263372649423516484514783049145461676837482097209583352180723472017716326564744521955731312451059681126781656199506072186791845550092274971310629727734296647231934740815424557470207218496098909242472900200743132911997970537503275725238417195993665133591018074536142770285620376700418097490036884033536393161240786435637968030210902880028027718468422051929272853102560021005847240642311234170070820119359978838882426268853912496721073829997616311981225757712368328897669312848059988665377410502723987824428925968856472262617882275066537638191895201301431136489235528470333663179629428776531108115378925891809868132624750752494541715388630915328730291289752286384468325690618088876038370214118667104419631223360144009376008362714249631795612900054755970773330334704182694782460119145785939043386970716155171583417485192666926217947992111785113820058166394654962638906559528693216692921900701475488001876990520075893703526956147484806417982038419453609392510637002531938917058505708850686605324628920111435592735968597691852194568957220917440337859067844371373452997485121654916254529710608508382468935719240077407203396710684174076550138989316056896494633370223539261154646001483570415396543504701364115427752801032172942509093473571295500863317333908751962380110097403986373561392942893952401319858253502390663009103692089911124249753026315292996552633020902048164507705570174150527761213714265451649688172607782302252855116839286636053543404780383828818826760219502816966550362699713612144173628246779893468220803561591167593340295295250750338750248863622251695367841663178550095703833894876506335796918298048006269303613631850138931282880757799769541452143304311339376663109668538812256441152298136086999648134878785796794562847737660007549844481786370054755786970348442894853909550923095424328230696200209664691403343754873710402135340301812069169837468818305735080947548426906486493099868180645457141255234469737600751402847145638439338646209286900263179804091256652672591654375852380191849604889536096182399808322296793209572782603068752665085133710775282124082432836468719351566710989465142226711683085963423568397714777089204873740918747586215599019922645225590445370077918329191728428590362801102410339439921477099907001352786412726756349274785749773182672285996661935767508267479109514685082481530851141292299245323143652778306478185272252472247541327938552251044774405217274703424487854545886112690557238989318381690563184930230337502417341628383761611025733827825332447239241430610965592773213282447841792096577254580846784231858308188887069794203046243648997199685305082994630003183802518712171921063976820708592691292217677636166774656629668474053833508352055412348149675641882609177886201190323921628846732463113828890727339238658670597573668532702218123212817154850283764468799351786520946179386834248889281447530788788687439552927972438386001914081512074654435238822768856795318091778991684622425716655011021092893819068748853764668120484724470655604502918662155520552017122716741536716160232317556160244785264102067384234733550014705052020191696914284817589167316674311356839402689484744148756692442936541618171541087676055187531751793154706529461823870502591252434361919292451710048857105149902141135020784825802343916432701582554045726518977648007881915661210768809313085338648383435497124447897019616888867265849948944658712220108817990631078196820832141871457500282002976653466962791243349773740707972885494677260188001184760103612299720849021618628848563107531295313357782987666783340369170320884322498235682831560426096642897380943433068435294728836523627839224257296969530864237182046477649994764294518678581654702990636611521154507464255152898362610053018858258121625732903048008958395189013242757451087789060582810163382937434537968767963456406987347763298430296133105125123536814948053995801714917531797783497212906981397691341657409241381561923325405601646557791103207461009209355572588840721267343544676549165786943120335551016806566452687613373528604767092918785595484563568942402617622237468649706368103022009722827914239576045170487007636438497419780469829219434242261294234654004701716635249029694042295671342347656500431569148936452990544041680473688324266401196482094502019606719418896381085682064920462284750051893589711976076423293531889482639417560297184502055690196199852857795339200062589095561854038653483775335664413601878815707202331556539345883139517705255142936280635117764989119073610516335609433944639182425992886756288990353206032525350285853931992563451889108746332392006790413811516170776254844242340593752908440358748153512191847318667971159436085028455905236084017222818328568685285660559320275598573811608120141136321352248767619617679574272921515601776696444016270440518196545927169867520374061104166562543450913672657273057663948755553346903495377819109542993484312516757005589567729069387612192935041392530894883561040539523354314898424482644231239495225030940829667630151044909597476436954761442105387888834235189748964694314341699265808066560468074728991924756581581438821981698997658736927695955794250728893201342041327318548969062651072336069249718175531862134486571575606572358932667604502817795406299722071814211438947987532920891630873331578767106200150106353790360395685884890161988738408448387085332665602641374194095493847748031487826121395330012036249222760781565968315166866768901601132592173088002101990875257657338698089724978377230087515724122354385141130249358419899112651996923397204321000399570131805719518801543194056644834863453629776649124053148825808860420020933974500138047619156501790700012031131917150531916957995048556970430542523082519134761245693678248529150658777732454697460071885187237903797445262191312327679054807672064980833242441140949406931331877825318432234919460349096881397789308828479126425630685903140408767269180658704100750129074810200212047177583455428954065083145735097720349549764831861614783842380374313793736211424382207091985698168347759887681224520994783307949004045463732736119204961843015353268096293101190378292425902857866704884578744234157547612354374465478492013316035654365703001864933255553288199962786628041776155310555251070894492805677826300760672321682097666270441296658957808482583143200548960666984269357052215064097188294155791155545072280752386547388940099089218377998277586340701750398561972754269421989274332567624895540748677777012819232256565353989654457365682695146892017866979602317387175287745668856522751982574579261373394530975951331355048589595531665909585695800106830057829895736048377697887866683247336960339176273842785600668815683069841949944819396714019851880901030039287712550349530000044205117013961386291822888585354113454264934644312307423187832308819115170986198101081797362455632918787624097897518910005909807466270681047301540020964495938365326442956683394521095636194528699894752305391864246225304600401490090109078483627706602259458651048327082650373327991021701949509706580554945949030593079483358841041015191033596803234980480155606781465644052109264459801518731298718300542973710822932921273445232775722691941097916048534380222838240789384078878814873243954852809568723224540557681859557396770215350844471594479951099539011904875321407841013055657391636313210421957681772128986236270997228949488182854945373243052739084873887577840345509160296755672400555201826707120097334003733550970832018343238916222994917736420084349585707705912779885012118176889622937823345245827362951680775889486736537123914333429314973130051402989025777154044751290822254042226820723333415066790469841925647647614247452621422010224442786113931756202229024564346427501949275084674233939699482009382420026248090120312178895801647073445804749670448896671143048328411791350934204910730145580570704164115641533936936552532535859246153364699951478469318222208368283573586235977098344573415848718225958806411852741015911591571520771395566874929373469583609099326028529994304808780836746661923046805767345648145894747451076880560030451198740848133519452222911778922565724768931957366708051332515291110611638313649664776998956514001369903408708684346063387187298539723725935049580086328286846283939974794028304191381760640489074960862631228812916720209236066805095489631614273791124562191377953849989197659307249575370771191835775251358489372581267999316040787026423569377791856194719201967489581445243141429695255804071611955859405658028388042790482191475618164671077619458342860376784181160287539832885098115656864108549013926278396783531134394410448727608208790324056895523968918155944677479985636524010692651243434442445462964525205591175963620089461508440361464065983933039514398005806951543837510463627448649185075260977123688465627864771199999363401134898674846202066496123769094280423937155770262743845084591603817276643417861020210314370847984905731246455431308885120238302797985354039575074601310005003210608759165013612273759184186618436091675618999506567300623341000583577841476294919841131914259914463437379634144862075352260405818942116058685556665717948522251360615174825034089533221749019593563062199647478405277243159121368949150024416332880296523883663298132674553609619979613412217247837996989847639176094760998650101500578150549650638584243803968985418859430725892010492673834752688074202536737404400406584403064558358326995515450039828161533091945210872014087206708793789772080259089089359404085216900960875124428177346562476323239415283247826515983134497570030387896619955214866549693109005173702636051029417685130183377077390813111109793640308292736031526253103737939105090606946966614805789323939531342371151120320950546669806343258699102199595060948640448237942092226252772560768652403883322879724379779149516559070042391784557353638890368649747488402030506260130250849679342625242052070924924207403778651179551866688916348507444199408339944688056514399336211784384123232512376393843236203097745283083928310562209524983998356334742043574120935168628861220361004829339269923988163266953591612511844489898127934625497555653210573014395966587972047431401532536293069880546567075965852703937486113339681700258630330855514996059788251956188457265529077007305218081453514989144387487701021992788331438269978491670851176750236997683035231170608040671157284823470347668896389033115626439058536107186779079201448496259459978549728308537006425859397581931711909755757834722451394989008066793631293924566823710149343408730778275339885316543644638952531001829601129632253077285116363534945122473471455473756855747408141028698595419365936258644532852032899534633509110937951861700040816046808147375491713114262574137637383649574248391139169478916907063462865458156059776032114679316298632916281984786451956855858461312559873082256267312141660354577195901958458229245535114773839783846113327785136290690539949529303017664550773694145081276354568010268263042861874691441988510233461503756992204779100011275163350623680166738045438022055235953667781281707637510289122949418761013172919246419607346008086586135692798670370404198955032912257530712646546901742190556119325633918616359532556074909433779766346785664682954580288645645487675493867950421075417953875330777982619280650022427814788996336414162441030272727271089488908146073778705921810562515642343028632721761443082530498918637760970964059889383208502872279213628401095131044267849507302387547352310244027311044586843551401316195981429213002104817653925761156642567650427792353554061079121831161592557772965869816695750033417635299255344544506173420595315554026459678733241609646557892936826506198202869660738553809606379054892287367295310261580365701555941045042296579119023615422025681230350502754892875396371659105836982576462384821807576838692398038846384217365215360414965104413695679349210931319627497750925005254577099662695119307735880151139426873932747571243684425550762009200604952751850219160649783436008795538135229438012100475428745337070237863753381098468502759855881743562362761017827168625925272436225112584622520338284876761042218177202459379263340690104297841174229413236663265647212770471551079333365102682300622871406071583631757873567729523717815012960418185942369802934974233476448176981226579178491395322107480703336905558590623669972693632545120671026501272411487901179967278653607975986674113356188301783974080836816887128541244503598068741284627606380340614547523903667556969660183241985088533421304989769623819428275132795925268464602730267693781832997111341604119172823993959316727872339372333931042070412403058803377293989664723730751945689727558787374701443307182612494715861384739050115834148155934864542414005423551590440431865022975843504448037346650658979847599351888052519737060178243786429134930001881940626939438393983638122533592650272554466082162292839827014056244552680993690275451139437828077761846408017129247812785773963451154249022612795761704115849388160951049358687435060253289910775392931631774207396540024332373666045980793109185013243526001423879841080183089568229308206868485784517048435339003561131503563069205459573428670394712236362856776717279808639539004872981534052547387453490332864878713250930285747477411473734799342945846897840038164348162929096232518242789278935694664060689309795111958416314427063842538573286936989913357536892400438581653021443932201152432202446081099326841206869910992008108830743778762714159524678011784265922724210662134353885937476934788323607886598424335668056688663796903812600170885087828075753066081441465527704621259289480821066743599961345843058023902805734377366151951921385482316158456155675139321139507184218237530271228226199633768136150325856826502361693973569807088658827544381303175880702707557315806245198217712379393984233031215202794131382078602478721449912164987534343343374398763819076216209403681877881160652670568809444101023581090899506978969923764511619711320414293487596552009872634805645126218756983084933156762038662504482869865039877903928258814618423708097565222914752819183124728713226472865606880869009175745224308634011519652084090387061504980532000483350144705262119713971982832130803431211471721054233233678378159438765621462335271137318211311633554448768391408995907687252938096741158572024746870798820319661156790057398345765031387958926314206623266898099265980111915412899038845753771559426801000639616151725149864640437353810857121519262199259763586757870079277264733399746124917825801170926399436235788733132541688855541473611486298238667478239082358344086142074516817657550687029464449336251799336395772980002110327131833254840745072762542362697622562984954973942944698357099004098518759200330158264175827901609420485957386611406560464003468553090130466486429589445894314723313083398255349464799341432289102983881651791672784689421926835714750621103149706039980859644138425137401653125010234055519740750158368949986286266611879437114545998371129215093807774288032825030627226550181625095145083717029930203029796813065226137676003811068523853750599932511205684937818540851251672720979275456463314651239286692419733967841587433578510180522334948778906756059656973708802076345192399157642154569667624112725874695930719178625283923822351789162032648138427057697155246330356632911367408792849341120785529197632472317155555540985183217590455586528374486418467516062732599674934229532625015931956107063413571793111895187148440319400211598453208950854536890397850302360573410142470581795995791619807079116433849914493909292069442110324635113759689887441997339467209777595577009219773897768974986017278290588104051962315074269139033087078545335743479197557817283012513994476892598462095985686337665106663804115553273374681799034507273336598409694564158218288391765088893610527205153042217029344774835863441187816273156625433555090517898373658384123170972261842009134090817795320023929942670252691947348062537080847508669141004414870205975539100409936620509626573447930186592569662527685346899800935810620161917192236999067708975537590065672395759345845703570351384177570270802275603646485934689966138619345221559167396138791412881793594678157372723076895572631417961020627740551497552161372668970780969693817907846631101092249294242289781185354402798157279262620099982924019332855597890011998286395429029539330854364327414864751904678841865024773158530068135564203657599592090686924573311476088054770440042109473597138444473275879918794590366361357944768504670458780475327716555764831357422893866463004696555838832534162687701050401785147631504041488676222487431860886003231541705784887341421537276583348953070461660120593855576892217759608437305789586714171332951282125570855655642903476941060583198817552488341918576123669194266748705160703602575050442615250081131298443611822218608462035274859772646501351357593053230113421036131820406012771823001838971531570446892300883276399971857732319874231213279952542847447258622880031076625727721705582725978971504984259986727360652338727089897364949978438623031096397617026630072527273776361803164319209084293447589961412227201763197617253370307942409002013879659188279520007394864124752679856059539521320198987771383898418297684741670695245687168047737731111796092647282401657591810333168622852744059770326288321113834470400217922757981609392785629949387993353016945007397873198017405593284989534401725511967565264379644635065355004917943201005971709118425850635296874848861860163651017200192207799930118376373440066684837446495706847406333941539261715940400353842635583888388969259262923679967560441733735767627635164805003384129087110918891199458870137665389134065787925070057065944011823357368891096272751306862578631741833945278597167502571320227196636525621041551769533338499576987364546754439025171502913613148490840084787663763768361745311871927564856942686974653354946025253691963952103015021274893261977829764544221910546764975788905231510138036708101356683322324323839872821657616665413617438556221019154031476929728811369261831902377049415347785213095772751221222736022479014981697499219719490171830332213037027865275884745532332798773868383028162235127340557797422649599420422801821109308025597168567663038476198787840502289643498954569676644424944481995556209164204109250997398164838043041679595957706230555474017084397789006938929248520567780346554072243075728760849918212224593274689788822194776664173915839075618161581221251645056162871309314854355670710646563824884520863243858328382363500860922406633948794651351761270860843582113151862525549422694463791237112235174111675204515491446027363123010380461348043757406927418298857176574181502012205751971485098150271731575826719143709118738566330446127467072108935492388997810749330082941360591657049766858874838148082767919104067016926533319198709004759939532851494004849233137220521963190317253088023986813647289526436022026978796112109690968897167200234125500495024147755274764434176410033367441002739548124644987224617912812542724115649825404022499311944792024977211953192811559503927219021430134499324191642087485336693608881471328530561583247386557200573091383131418232500001538790199045576781842946818442081918035953987502999677511247458851467625140229523270986535233555522403130167828810866305549676018701259608912032972397618846946275435043468511902948688701701088155178439238450704788802318701382137651679755871752519675972837783014122191196569158265227196367297995089618604293661964734908161640516797089141653355595038954447125547719357973977670828324380843735423309218404794076825553287129625265105819042562498349306675372117826071541469709831492901891974892239898127576433491966785317134507187811791250332682472880919873186256097150122091126508343223254559894593174925051530335940346333201567925691416429740088821636386033872177710242814877356321774862548912303083166567265593357991658036211641623237238241068863756866036836496045404247317397780228046257800186997103023691791692200558719885386279239489267365704861569507953004604650423243874860729853899532265825613859864881544323314314059134493757132255806110863187958507305535110471043556992189648769474024542662998715184133996140096847003744498605937912751860188659336686231676289100385023774608898280782379183458288917042641042651551778544636650883749664791483596841358606756020544017261284218169743449388736712517702164813111707918645543075307525645689333914011928348163911217755924444027518737079174602392368010644986516014428746280744952521101071657695887154163969586731447605651007500132280132366174479607511368375527360237898382614517089092019644943879318852669315007021599788778454826081296092897065389007704532154125242290891041866908535192238086206135008223724735705697165167595546112399057941368196845418615044462771806300075444036520567940895143951799797661623044217644010386067037984674833237456781732310912406585293307222219312627850730329626392629192943974374732726682422801304213953373684542559555084688293423184764714585607641591117627761934812534926010743114304999089965401451619013766306331733127323985517691084080669517192431593748634048308487832674227534177416277674391344934148278746333117816326327907959740453690487944098828086351177810897345145115138963175203785089755112174279288980918140403015462197426916082835363886624208113327731788446284224496642884923052923155366563103669090633064518908847580055058643828520359035175798892850031850905337128272769305325095123961559663045737462683556863773893287479005427872448851248857504422770869073712867067479894687536331123354561303140223898638806767884682086272232109531542128672251526204476068876925305853746872521967774719823512715042516258903079899736414673838009624234848332252050792260260374932434772317050828091077470589983413050438567178404530440446039915096879648327780321045962677986077722250733050292676957813677095082643053448110719968412766421789257611997840755007712770297303291183770244347743889241283450956300869117504272752694666961619620370970510908661682247993288350582975877481416599390035446181273936240924865639387522497085926755858420108693036626649909381413822659737314391442828508550104741506462061996885563876825038830379741357284271755933612842494581575626986887004759307018223381397640018079780020739173653297858378250906682949720647369326217806936009522529540275297571561532178460030913837175649471777097297246417531916635543330551905380544018539830279275186095418075067998280793922858857983367489256140792640567357245785906146237277130490896063433634190528683129736355904147540948975629488951042316233723489203825702085995041379472007953254536984698367934303002708868330755879540721613830966927944249798116770925445307037576881709748767006944538838451990726582468631473887539264523964212988646097343917292036231408812587261048338026371591903213848105527340576444035168754095495973437597804942659767502318555388015056453385810791630180182279684629413866750850763427214590252876569894129397450948135370114257375395131246348782165593391056165329297758779624106881575412421001734481987073061943082279347899993309426598630661377830232514731014700814824143881770964032442873713060864521873481551507617650105565657917682378800269523698760240615196678973384273423577601417126113098279067578460922412604150209675284952403063951900791091376348582173487337853649700540830678471636584474540745827938968814260878285288736558282806991844546016177767293404432617646501251182130170455520288637045599203603985189413063529804796162291560566346076217386918357801903832044308093341732019639171983466015620024390654093147988960920885861125028357277078418293575208960303007348247616388681559160403555582560742536062323336098044708495421546516561514681183785630558038868966352096139437914605983776295912988082399488234219680701835911916425175377187523403818443933719990446184191141936551571215704633032624820382204014954896963365041890820994399468496370477793061220032844025906528670104971975283891668940330801115739751025341155620787791109515464853667212802317261524146330025895607575337241862340301125300264542143503130154748010503133033177126747312460247732249396108495557220776177227259929570773781964771941430295127048497977422584183259051800052800405420276695848238428728960385635615029960885241083757139630807936387590672216649453736477088241761164252341613099166185650045390852034294214805119382347865344048272171901273407844812304904477509209209557436068448412343264710836218982351652233741980637306475179922440918846112628145601976982188827349962130369555658135841178913487428446948589212120113081928287844702098621808444414458907064775536102730104998596838669612659576458608750189521040989674372090059947344603690546909586215882204569079946945172572093083795730378380513851589426735753700121453371851773849851932606502877510580350074607782515079614491283462349652526430862527359454268681447569547013037797222585229658077667387446850016902723811426130957410041973593759294004725286667796711843147786731736650048429246978852070461836304187427610805099119267287307768628278352331390929740251635554373148172511107911260881766104560923624166182632801407114959628449578076876718385439728957835437186638929053631352633148992843503620674662172005487250413095722266772539486102924934899156325516362646030219533363539799724096446275652056909990424536293418969539519302483978114106104988983012457977832091051826630842152191903763385605700753954040929567832003047661678415337807075004087236579743918015274657208586939969148525869157100630350247722895015779023580792986580241766702090669623132082668326936414852544588625151842675275847613719650840562099088404262412544094148129031823826124679070723465324856523863911857853138260234604799079825732484872376703409881304882251808982508118288893160477220401022562948118204557057276153232559220291731680000624725100869899564378895416067337595538191661666356092038912243891894721434664192788066098378690578947746458117548711998021149642628335436498493904653134519468230269450888582878934743191009074904813087157105327281689745043110044568871756115905307600517479727004379583711875203099291562170669748035894223544037635903508968202404831095122033540712055206477768308891830765689523369378273912470035630650747884147531151616666012384165058107431626428130359258087129720844288363694251467971243893117961439967285808113758603111279980695776798064407441422290298884229498263304911418985268058116021865381348815635395686187269722616413344053672637079256986948770997531849407901017586105684118365292135299943423764710536728514810295329971501221991372300413960635546528581955595104258725682259806439283213492879475177866438677926212153340593354604514831694664371456796966216454774348882343825025682762398646927353686336509492293602951259574569545094666291021699921901713480159618040128613426787161950754094247644067113525352537960096725666631764835385994759990738821598636461122255925390217738199341179532160392018450197795873976919843174112954148490801530298683738143248901211395912561885881690335182543363048183444852998057266458024872171752167704858244382972061526598210246926259249000119283034566009364609463394819323317000206654005860858363561432235797833976903940421700019477001727210659013416375421249610845755467486156025308813476334064037846718755409795818543706996166421215278352485934450602555805956581638267466768046021678789730076244888404698177247570767525355995400455631195892373101901967288320809712363125261705352555223544896764677637967655225938676226436149477886007236980757973320147946494112067799124185359158298828702173400657383064128871447715456427757554317041986931436946020110486033100517728136801413541931594564633104644105489016321802875866334120745244655703537374016125329097354237990771375372601777695554457214444375704518125473511066618520271189300679454655153781149054318066133069416988962924356388146715308974943018824238389094368102134995514023034397577120563490583377858900122389327203450284236117515212877530747240237324068908723365212681060632166048240946622843580756188880888654541906358172327151440627069012322544064829848061441246786097649921328695812163769433177088079199540164423439903415731073007745815800564613585138109650469130967412348082022167708690807054665182448129503407119872948140269864810338751644353919348427161531853408894006027198453977143476747544449038616622112749900433325096243633898141074059386731917898806737461657046163706309648563825479056481201779559014307346389475053322879401735330232213827435783336792018742086351444963877788134016825435202341167679568216294179646955484205051135112980566185354851640718808407063933407850011970163129181072045742334432192106524428094071064623908648752523370629873472913067095799199008928423691843195206918390686582354017135015309890526287564285336228056510417912542610135295246729358738846596593602174514399022875290865412826628734372881303830390693727665270695045504048821038568731114662597647951673198768150403638529061575099235755958271085672379796219198016569269228513088436581592989690265627453432824588229769954488773058286256001590429655044705250058793843732016539847871837401126024264942676306018897310553840098867552539764920303368671309579327500973166175397881210120039816523801949856614711431210829783451847701911186998063688888523854815053850674743042607233785690850830991840985994954931869928265521920799855026678771351498895456350983181006977749486309731969260120161755025289615250152001400737761437433610778753356210292457053493093007888411675251995098309867976120600213128976874790777146637659753628700213253759583147944288313873210780020070702835947642279990206105720011590262790776194276788148362933765991165411700250539122267005553044995254454224902779668876099300013158521293845737852689369519413805285833133225305039891136743879116329647815230199299269525438852215463859810816877460893427841799818301651027147876632089422231017005906222436541825276073371088549995680801193003693449027669370356198865558148500695605149126963083870250365719013619674134625869482432143914527229097765080148803508266786157471297201001980111923858454804395663821367633834356846227411993978547475059605093405230757332126673535636471893818416771507931414239173249525714759920241727411074134054350276789038046869249932406035169220505755050550066262220412741576131291979179032206951640126386179934040190785092097977804755592081027863899881665766258187557273825980324322081124117666672790813258824731996556830590771388025967216548898515880095299563880301370580398552813973356937441403899235851878626474467988832489315788098257827990128337454832252847728972407563763416560774444269798636326541897570523276489286425734708233792307565989019041178898788479908730220451004903257307646953983498336123223291736309446988045802202131634040724455224808913164045658441392596680402065385451082460806353296419470554039645212379649527135370296986598732071223055018491818509348952204407639431936307211703204614882316159520748805761146463767473130104133977566177748131825047605665500206201016454335198983509403068824592183891663057782716612127478630955644864021546444840231371658333592738734864463303033130635321782016115935606594968253956780903357065886229605922821534578139764530407607977785761035982462685123212113173628577890629893550199273971136284813380103355232348131433901208871152166382346822724282239713495563306826530149670098183022383266330474442300177638263827987971115185994648747048333521880884425836296417271689209179739078522044678888060350883434330703717204959134369966845318019784207389878372136304129570388962937088930308382542490747487839181690203571303130359179821167102450543660913508765816741622279763415025442125107950854588801055222420885356520192461501952489440170713716822654524968012677632067318918400765720464193938943860058427658648490573984461602904341398696520122027862255973564963796194307941840171330170612415986814233874130738161746490875635868900484153955800615901513581023080188232223939674769433695721393302324641492361216995957218999862714221598001230362059211106716473194307854517734455130087899365242741505056487941058443688460028419053781496344421217562055513828523862644511249533655084978523135748852379569122186883264365826484966710559447565115871217682516465086246115961269296631593519269238535096578463683750009897732722849854783156461438706857164733741365339756164357614077032923364094218446577214988992295700731373325749879069652353269542480046715987354851712790123882103317802189228203607272108634337350146436092005548025042817641483444282462880653930546326964435934723362237605632454556006032419160265120675435296301383974139631942715592489519717579280681178008785411320005639698003622318566176835591830211349642376053128901280466420800445367200870757016509406892716411526277487160309933448178655788091136688432509000897510535463554690506979847746022768194643041299278540602238803576055277272778617774494734503704338525201260484022966539104863213107412213361636669812166770546416551555353756607032200766086563485246179071401519020685631656639189228471328887363850168240430863446188790044502848284722962301898848302833014935988015580987127237839326989396918708105634489365536341299063681817461518489042305708933769627717753855675090514763556793365221634191480282886051310545191393194657656830799612779673432130767311440105872936287621305097924808610417953938353669115104530470305409460678965619488025026124274476039697744300205704026645223851484717550605869844179691422749634199457407703177000368991458826541683885586701036655650657087696760170599623292582878724441842796789059653172147738505265889454975365239487553524165358190478774388609566768654698627215117804785124351919672736069918417833112212966005847162652257159272350678969469024588078399104369257552350001919567908373884877225292073488735168170076048994087450451188636433648201826007663784259408518614260163613698529206871815862983039760074969458497248317710218198102664083985761099559673836470449098118156964043990350692039845917456757544284058494186536148224504680172059171085341752721772928261106769080012598696373673767864955717328900025596251238599466885469803434912054659183314617290148210425509012375500537590737404115236234156323558857595852591030366582398801612652170311112077456657273390915172036770035145460833890637999905898869251124094597536478732665217872384993015028314151147373742088329817611269284525026032263145879269609323168536272023765008233938399455546350013614221323608739216043925999682940283756196949421473102820309058268674333415756166926882169311510433864096612205203398635856643342493245152103860681612185336884168527059316866206131612884494787928377797506057122048839545995662987961643216617294518750649993981759369125841980912553213100435578642700894900136525437348169871905340668262256729592267360446388156573471241536701892898483500489926012157006997873793056973436029276860067757317379530239393513495527695995045864183631212441610134530770336815166356037205573945569519768503356529326314064115508074343833437547593775286390780445943707506793114031653810172987290548657265496999679486591981276400443756852248780958313243429308857793391580697112759394726528284230860713957867642180920025052338872301772971485228571245816491349073569124059374860370209533806652209588295242469257346834523627970213842300371161096524469331650613487595692647590747239369567062410953403320020422259753058828107888432176130859906611203484123679909663216217162323492358283238182078331633020085409896719218114646034809934059777447296887739651419058973952105108729545144167271000926410678984586256738548339906054870878180212499716398719017126289185457013252839400373708149854838159547334229203883425862382902013880333644018379317415738526262081301561441509889210049960344259100633395345603699161805458678563473239942404625813087191772373378250882951236819652932705182781321908699817352124062831001552619601362679041882501785797468727055366742066344686402926617833032006305797095830981048990191721601300487764711747844320559544823673842911787706860170796374711707164119135528081481567289849272098130872636959510508198628884987024080285071583723866302933332456612744202281345061815319854369959698005921193176906115544435047232002728056162561418014426595745213644647318279898918164778807063922816792566425864597967788985865460266452506695872241904276751031531608525757229295627910323707710874094874316579873324588394205262065408225225191719742895546423630675442489470100055484616205627743028126763466397511045642530495279110802879237057667278256475253643850348704937958925742604717213475977503752614218658446620888413026030263153689095432916076143403742244100361195357371662677570521174853474581168621219706921254616344728574673467786885871360319465278185685507516999236997419524131403628053757778545164678180374257850331854373043132948640722463858256886551931326255103401713693254715263912604766639094948706769125860621925324870945024975610153917811702766306819710342089801697857925373274562415482549662700294360800916298031294367275873676026242840930967602939215516543268485002769642471252582668098993701306419056616669286838336770048662835189098441562623217929376079781167237416105123567739314116634515297101861888143714352638194518739319829647552169089210292643821855078984306836754467244572259653271154809113737722374136057256762134092176146773776997667984499149766439080487782604791109306322818418944256793360857022263290022889363487415055988542139790945283370522449505499789301006558939742909589731660889659092065316589891525337996316765217312061542722689547036030932522187514090910725458429213366791460987364220435219078224753973145815749440699131616224560666227072305421889402767254798946827292793181689298688994953246710337825353541722912868158203371460444363366103434211681089362706494550057889766920974466182130492199779167774566352612987200534200277660073919183131351590471647763912429755886092435995191567756491798531601866568351761042204903711241336148138599274969900197994255848389626849380352730567868644592758409098515563233250120904316313845594378096536246271331537884687482568044322656963397013050057844201864031893793805951635785278781449194697845709190859737243273518555537778074566495330732791602162120573003520530906545759900651278575361526394588118532024962907118840508142125514862370635618895642198945547507812203238409141737891607463182819311150845740962769252720018835069975426521718799520286677376287879917039498263835161676093781691310561873609045988316595967445488826333472738843301505854830858085002757345804170083929460219508476422278653630933022516502322168856697927744729862205335902645022965299836317753558560565914486142900797273572381085109268616133380001853413537897962970017619510318099796164967962891606843006871122998867470595579353295937215036062622200475942408794048338312449975527027953094168727489854688614044152967629322098424800675089530742413688059374739855790866521035304357770461531496723247904602088739952131240512358632890380873383911589976489908309438817074540894974233672811945724071767706923000622317076694644624788201006106944343638555172176042599868166198215857553801090604656001903314834412464353007229202505863836049717170578228628036255489664581282339552414914609122291266877412072075404943662717305323717633864806796472429703751943232201772690515109176086929465673312699843042455258727597174898272502297482111572586057950987132887026532109453186435170029778801923529769500439056415352912316589110033508900645434591077429508704552149035937720821398401106473134832588685712165788593688982031058559135146994203507908164846323172927477241805545763434574672125859286290911928040073552682326511254673949213215479863170703201037076430743848985368686645669004412128099968660289274861743225445090330737983792424347657488894286014219187047050643896923287034262948585614294910044197037171682927435600506310721905105220955862744799326048393555713816773627590377669968193368183348092908228071513932489590551490829640800656175400294540898207436738941567882731098543515712245728436629687688918641537139313494668171876996727515106510523037185177173781238778339870575047536141706693430805783669526865249092539855915995830316084951602586079968299994610318792024949996102922256713433088562088885966686976058027049227747631306772880271536172929668963162214496116731907116161515830212999850795143879895763032488809880413795578197544288201201860896289292239948266348427089125387759296754808603570498593857677191177555480335360767825116461691158712157239158885190010232250378734590030886813932982938912759183361679580638847699221140307423503857721230083645765876185057697553351168424550251176353553709117823203392530040636649498798487451998197814293454169179530536111226974351569205121883637594203190131640873268706680468702528079711039990031314147911047507663045236637629656453847453035665559785859889609426671309121820322303560023558963242531234555632571710265491551934459821778949086886265695611988080908265200918197208804510438764985295825028218935028435431739930222217970917636151235327852015418640704930818470564409855102768477995262138923370075144052210957473620498790207591732176105668422915779276416742669487350137317901289626768929364315322058134146160612086646908377551353837049172928499796770118285066773530026728689858161864722688993791380212405345340011237943408301320076934921905667723646908335324417461648192946879700324483327888225094918834966139387258006332319320003081832967414677649496010915257281458375770541987619606218069772745435849980589240105425801262041974491094652252262071918157873080090511032486991523606381127312263909460075702974800535552515717845753637140382871515536708248498709324413776390920482758783602151259192497419737145070376585518290396536739495224199319361385281511563809191283820840447533286124336250229678215993382242377823070943839159125590848722480605705517784300328236116366658704667232005611487983829404406138894809082837891296030789968748719594142668656883947309814790762897862992924355536818857252623095912834457172073014451740680411030570057124035293732689140597191319555515946065180831556675764520531011446939009066667180135992659667231742484208625326439957337717323463533911995522678763827781297071604447925149091512413418169729272751836327944994574593214346281839997991322132031811778023528838630711449686380360194245789446391902260783112997121014079808679494830366379708114643224074928990246029441901975718148880877993704808748810213220013368154368461715449701840251852976373282713873496600746338784095598159169613404036947855387659013383593627710802954577731749074409468253793036754975309614592891192732278961186938425286283875518757239319793580144979797171637851392461218121756953164523486103354994529966161364840168557648279400564383974488543663673978629665555297300604030861312041779236453913199075354836442370511307511301862957483288945827128281067475860861164137674983198742931178189558104905455997811876706311698363063862908761718025975411749330507767850096930575374501966189919879222440735614245235282338552213854649170643280393719351708697907622528183872643911993300207382910259292340348962532420324225739387875188567463153779694494415373648370699400169332722065668456719696009143430499153651168316031909784093840226230032046757964466412461308115917070085512686109218534112569344356761233395361991783604839623390955343092572629213926621020347695145947658533781694723248950690125259697366868875486075512910945015952929046720637836058099053157749793534727952629618550481880681380832362409311780319332183495189896097289469372565653804724562073824763786443125636988676647538961044608678599355596063096069664469631047663422850583347741811318727180374873621656423964424661646123262537907142305548118825629257990348923247076857322761762701971834937501185349105229270891558987086450901765527632388855051946009386236868561000860243547862239151477257481223168184405479745570237611248673647641839382288351437609352200301198921302707413060204304024305496669263047709163700257665293177386190496214161616107873998499473281014987390119767206496069077625670757357518176085382581494030649411905985469279326498020901831875549393220934044248616333631810023740436926716583491327166363150681521748758397883643926188549195153671096334048375845496794615571052183693449234433337439055466590419339317245878712277387311736236561989498063711081842189233676535129328287744395637046775235915312284791770788246123467033003839063684312694089021469601693697400301861735844978628356355103355088781045498947372908849977766170841131777384615353272402154827627284420284583396848087563216169504157999452212571442660843740262216988892025536492758340236774598487529531706248747415495348263201488145047524075790088300617071697335282310146594071590651773146086387358467238409530441620243318387946058856866892462377635225010709147545508721373346431725721020934651088052732016241655981231665068474178281622278026854528625913604021436885938844040949907192720256122037695906713541120338959560147751040977087460688697384172168943175547374361685625431099111984949314483673218223529797005176844726209861898773524796384402502135071916426535337377342484404097555433144704645664887396567090348892969041744629036661044725739726636511754743162504692403042717817412126039192707598192104556432656903879833585317387849449738823605764282685663747421585599109229665480148818537462674655468271915218071332834064605728656011025038963059787977208696848334481334049029012747163450073740560237128790421083096305429457749496375492282704433184196996649954730948979698022074171984082771569892461554782657733410345419504054975396878522260863316622901270271823813236035848667802191758204385871859987580894972578843840929456541212016560062964303924731115188559764467030854598585893394826404964242096955917708284681916396616708779617686041068407279494833219828318377302529751064923081354549359118039929385899046157774098535462065025859782082441795801546664011061092370251347425904159365952804595357090199420518168949098776708880443367344329964200467757909202444611063444177159431743358963814013721733433705745479135423476373274301252220596074972731470311590581467272255159234852431245145512737240231632095210870484982386413041035399848629297317604580016667198106330668308573885049427539003480033185694133438725758596723139823657780604774338800386733978582965571502831312101622540706456533907107630791017522118697221790603705483945161262773181737594594509003442923089395991811209326767017346114863611441890984423734853013426687789876909784460718313232141227233801663691450098482880046272201331183525028060891631993824781168584078365994810246240424093160023953920963689732184980529555607040964534768583511948373135780118241755979114666127765623112225298887832815570961560880109513740538040302081933001722896246739532550742808578589059395461769087509870312863433749147140422602695506841270361241627162235292812029235319714654613956005932293221495282251002024913279218818898949205736559313573070682947558902627823035162945125651570876862166706508451640813153039574270682727731108660610994179450103968227644219599428472688949830980334299739888580480748087134643040543933418959296137603403740808983383035571797793859135010140162062719870193998804230072702260143054440709127142553063838801020599689638985553422618426173053381918402493266693852234645033272351950811987144577380700657088367768853233707723252296467847476083634117622262026564119062736119593226660164043771688406879448183148547471303990179506547856468575157914809415825679206839454855747484195027900561499796983572657047565288235514396540113801162892726558368955457293748986699547077481706775706904490979176112165791356745244090193862575690691483368181856286666203767886412311434140479829868006274332402212902422527389970190900837992797593893224955085577657227039287505076826690898951548212597471201981235879491576452300198295064123519488008612443790145225323734850547937627635743350934107984586367362653686877798486547698781471074155122960868656860212461797575586689884311450717438942289698855600886712379846957945632018290238201308141892231638894347989492385825894494196872723605526671909707690948098388588784794780554871012834555501497043048150066728854515787698520226273500717539931751213766074874347298287015100844302752883981699868609249204175854190651213977971566751296498723579997319286824745546607486181576686286811096427593729111327783468372383205507725074451914071358379983296734295411456326551714213788744463932595773148020319172855248591095204703885972943161488602806077674815408310544006225663968648429205184474266345402062528729263419701949662049473012147802515860380283768383079469341207458515384768901836378109256492893426502373898303360148354214102558076846309713271507758621821425431815129114666856331342486836862211582752407260895458751359341564383971169105650425658082012258177970905741871873500725793202671271481552413855831260831208121811035655707672705546917009445674153790694891373502507783610883412015464631227305333853562482279141272486722102786524455666536159263041570353874788531866577011439238029940419175070915100216685108997508038139074041569794941323156485836980566409926907724004054023695086562702582826405468184494319060438682437444068651359056251920665861495337753771658305496089742058898832297482471291782024184156495579136320326087846248730208993141793280848181202757789326593259628753110905082120334504231294750747377730281728623754817128827481045166816142665368033610506261693031897868259720575295779313482393963702369283052563376428488757579301313763861130322087848098656513435676575258723858465679158660453938306147965041479301889612381663761273558034265805022394886792534053281572527053692675203454997530949508614597275969779384485582338613356558077910854683591097638348748268094854349231907142603031349129156460530484500597337755969074754615478582665045260451649997076292700719633348273354070213863547044592406325905963734632661259489765765230424539650593966057293744656305287376309585250765023231624153548371927104330544528386014439053533083483297932258124568355578687448532123089491884574908100504254477429309353596748047616370729582584242429463953970715240960778983431309524951001885415065501195803412762858491004977899590477520671557456727624934971630015034723914574298331296779794329468040162323351763475140128532453072417113183840221749945603941639367276557155032478924252959262823753764435799658990745073279522000866767287447004671399225443377305750018937920380218822537435441548664219396185505190396695990968618836665743531684933753658878455212734550337788545616437679361521335233449869911472578017085707639627062623694475150942147587211313801660517973989327489637361587037486411426789628804310876769546963379380435608380688415037405592445354405657909507662394412029324539504834973094727692767951917592768993097108218516000386349637040588348424468197666132223090465442618261799133913257598133954063187497417015870263263089570405648015328940898519700514186221575589609110177633827080873846483789693926146162037376985960144955775469605979839886766253001549385167899071053681302324608798180707094704340163903885179183472179206635276694428277245528051061407221160831864066839181322335610793923867124474102108912551600080733892787792700639173265241655767662685650621628662326325837236062685082999962255058130496337961981847305018260073477354953721728109367057410961383352960511674882571544576995037038055653455932668823185194148336845267348499392944776948818120383271943560650746986517970844147780428829160206749965885714631569180969434113587434873427860551273551260403354724845454797423842011929658384086945003458944012525714745290472412464115157156129749871896835250120728769922811949425983558493864270188816424699016501938893846082744432959205133201119905224981119655910015963123447449496828075666439590076882075498499743220887376763370715507340872791353894016378302839483448979689334754721882645811575613555483477018868923601608543900162819473070403769729727380487332305803852637498726635541747696191196828620495054517619410003642332686356985589489140487841519291125775838628021171229523119149259598066172645290885505025612539179874839931795501157950106445875239627761411431262089634367833797044012679170349327048371301480037698046380996658722839457575244460821284139561722802963806633619933427512620722341604376724301904160885401853735898299988895110427938724082490859299023978730139771660010539420535059305885107306219925320873411585140573145010806654038369138294363400951066471241941783444302583352746602060383416136987738118999278670271646301597646513690380321233338245091534537196707305098107550749110134567512157928572612644106093558485657857045822852104946267491599016189758187857345328675377804909822544243249763936934040872325568538565281271457053622247829436793957047456074296941571283215814220087286948051497238696453395409045200766840599031216028947230576321643387161882102503287871563659532326969240083746015506014903072681988267441082214121018681554372836356646713187887984548001462647534279366581347419758995036703748105096203845366739443476067707909365513335578383809155853459671121497738540697278404094165740321390906097962838816092080152688007933107927702079099984138605689411366730057418192866296024959664528152531262039842776520665620143050501099588175740899451824665845482248173532323256001183174866339144266979134394425038082397770774638199321784243983983025147895075353069884512365688498750895319655718483110271660939335611696810773619583464285640908482271300484105999438836013600937758825742007692840101231488309671826033480457484948124469470858544290327829861915721090121503876928424284975585810340136075419476479435685321765044205293411268485250031767761727509780531242806324990374816266704609842753255563857139417671708827722015614824346773934080946971741739004867893775245515741472142157161747158741398996439489497619818283395579592790394332425823890878726443406091108385064837255815152903674187740637415566233306305563704344777714763683654066823106248751685309097295393028424082122728739010367154587429484800650557018544532254063926485952132183127774328916834705624581459463852990759218618622235274630224543188445939358615357393797297144574990556261531241182711766645239128849984823261333184142659272472262524936009640790794070832918222458956782327618004677402656881850388636010287038088532345127844106833796842056605387257806056931531478908738720996854658881292858887975096746313000677156085024314255731430006707513536324784385715527780998419982097947253395258540171464947472600648922869919107325775920072161198700956127613847987582620317028190248692670646631487799816125309093159689978450486954102481932157133661673312593112014947335811403629714386843607714688414975411432028774788976602098813901736324880191941986090453549156706647214841275533885951485496287741223948225431061566317431970545380774222009470126830510081390261253441773085651998525418286386445016573114272056914848322202156978312156354963349669792458425426765077271854938799291212580240772485312687856208827833524362419650313940420822845273614586686834000972998296107256065064555888370580853540635611987411108508881939952489967276693556315984278419717104393822835779792429779185678131290924389841022340276628500657825008347240286695117596891936479330168890394222553460877291186375029532080036837654865256638742770706741824364137604299963588208175822473662232017331871590730318588901090761234689993372551218684548003698659570900488796247692872051537000128133183139822016972647569856643233005713037882966878242145525158000893965402185710938524072182940202225743981465881722297465417453944960534840042243286832894018129513936161456571742485249113253247035613537009641779654714642154757954744387137380689659793095421891295296865081228169789801274322641785023149006700347273666133171372840785773807201623186530243134081830295622074232330661588062651683429058596552276795545768076993086185076795399195002665972233097775528602710165671720826729361308456702093943689044351751632153325424587230966575902259598834595126731278686382802751625484717667532124501570962837182315387530518036550019414987081922277085309428978350053681976819673885746006380469695499956131149978943286755250030949856318616068688137684952520622855078967890549257289598984871697841517429367195919200664182325194231034949987214477139357131270087903763910421448729391473326992463521711766707156464907651749559338467577560714277600624263657544634015441682664891066312156368092661588274791305366976269868290846758239025959829350734635425266789790803188307986292876078859460626875858851409256876539787128290165833451379258936933287103549509029952104847634889956902642858953758636204000291499419838048800101109468863793286715834852890558097363068307267535560892966052457018869849460006309753872428914980657400940679974965429785842632230947645324394914318218136919856310444615016376253294984038388123831297360698506908485121233855805473455544061024413581910870576037283824642172600274469401260558650103816235175748689745892448114102167397484851572728437932496373204304792369173476127787647434029462501987258639189568818384299159024442273187818617006967978393890569527970354909003526955156258025230217980397157120919092358113388440217704872166540762569597185318584204552970300266431649309471614080324475388816233885094193678266780190847064709884201095170246103210906923628795330721054541576603277274069421632325347364839503778076671741273947012340911307499619808108658689727992205986769801078692654580371782181217676572398255818116143207223172470527466140877682125250883583690946299988580392357266219251615945923221547151754505618535781112639980453754162066232865305901737007226694328439121542098797452598573669823835626832612820566074522163072242314180733201447135358265154869260210057915447568489519829635706216873520560251429485823966095167338249577228248295298647992564366855038363110280882703202657260260893721175462361881167698229790062993829402402559169906448345121507925963201108222915129776661543909724840938330239799247127173566109054499846926014972907090604059472841008977068323095687350784122052969713865428429806986321032142469352526405975819167613527309166814970333871127665747036860493938089987780897460371676792065458265443785943940638380830094678690109355867433354867079034013858081226512233340411591685085778993384934023912098265634933154442165308266249003680529266051266852552904502882886213463938959948165144464452317048935444449709815085287593697519458857931736769593881810624426885987551282154715582814854423229471783428851908565871980783061062374105151934521336640329690231717365566448547617015838117663923959709025165992155992012964780165985887223627573356950660783686763470206791262876641844263397293713311034439815870873712109617444667662409370012669783090866190416669232418723901153738044769652823325516357233043272848807316573665339321365139621392505796625230709784086813818981153783362542010682773519908649511711652321362641076844514336961344269566909592562619747453944406418032510307647600677208592228597386215607509854235313353175002032273699022677885153869534752321801382347152365048500382145366563722532922038963404485829335933865966402041140628532999532114853486306402010420210535413919452901676266828807343456700030608559911400762045029148389084843525810739393742660152126431823024482555606517022934097231854422332637137589225074697619861471206976188107827541165686654893492593171671851504355292710857838179798847883692114201150668908294208814115557117283937465301170177008780834142908166157608240086018685038714888345740124323560251702370397317755831934240710157675277028642195046030609225932089647641812098940955252470696705822962965587191614533583833062268651948782527600775308360803961608667406589206342419486643083687252306217676472813919634023597783627802963118875334292794556222322515222883778191236214243248029545951758789731426579928880956616848343672385686172615939868121498506659584218397713752807578378937620099883731823131614733945642672123608017146148444443620271462429491200503519491260356251592456164467659702911580516923293743945478624650275512298525637446526687608920840751698381385306460304864209236306882524146896269450432816430060856718456463680097743598014773063024358364648601550062225857674524740885612048117857202357342212000730343118697540113449119998116188120874478063520893272229081684158916249564175214446066164614416744480247510292227686971619391880714989369584928183061201251721156491689829302086864730735682418373685706328076063665821549074483541103987848941188325887562660376344232322829178502619268839601313498424334834278802606125405316939084828921813395208324957319523803670803991191922103360026445393990252593983287984874658678620991447666212593093497526295722043403906389279946842977200217901381510791450935345729004936389646350414439733757305668654574763711258811392679820534602365526524514271167102175029560810118127299116800377703748194562116303945457683599889410142221235840296532670213681533772835457147069980777749984734933312390669796895597705774118318701322381720568589067215457830675631311429423766486859172166438598267746279546632373782884372570788010358548455687295764029971386944649325163843888934544299730365955545793556320059319765788820166640711281115621617305360948585958385079007630914170868964697873497837798082579263532564935658003411939224860264068133226055619550295377938650256510367416058285837019839429059471023234941379154273311566063586019525045854000316565501774486262606420388126591539857236697750827964834407608962036833308049958782474054393425992893523777188524281774520702161054658134890451590226849904714871340853079848912054364376279175744472293012325005506125456392119061621332930633011577511808590092585566369555467341768880313069295574249265312843818843522022431017811149832004595233737801375451619345799405715353873689883177597932688862655177792078801811573079257877377414701140485544188284791048090686397586280730004806012651527052848973402037013880855160610296405960501412519605209811890389730378333991796411855233453156820053304565913224629017186995894764457765269805626667708618160083252895034442608223720056414848374652597008859247701301888849504178462354391644376062888041788698204111194132123325047486461303147879744357646726837154198790958211944669457018131688725130481951386666972968477885998701692077726727330676058813617048050497348239818400812662825513565612480871871296601618034955535455495533463647541638822509050240269567559614463029536522161412533709856201782386264129631378038355056468724372546579562440725730481472155966635544368630607189260069113016935261679806917343093476725433254930765854177187181504399504238624974584052175902665155348315555034530055682527932600408723833236011503379778946342985888588389643362284296778483392092530917352285358848012520942600875000886418049086077740089896830472207570629265935085200429585565750627219860268010750998254818989169794260494235113175217088093646013490587043656477108209078162385771053358049682136503777536364372542204783690802525672657803783000438488990675515949596651378887011534843908652816794590733003792250043858612261627457885936789445288741103164919879565662770425503317400212633938982638626687370705658106351414812645784593304130212974441023786154502995705648898947589086817726786491449281061624305430012775463850517167130612055447176199403525556100269085523839662471558474775200798017171498909161694213066307971787001806797739364278705208230762971606044299105783991906636741573225268144694198575717495804157653867574703386569085524838765039275252622994964103580688912799334583257535227751047197172195675863561001581675680731652205642413462404687700935493593897052926005733731900640609259297967984402192092013780848499664063242030112412586831523873690245999261680677586989312909605909606281229802349530809876227268777508165888757894568802904537788070565610345006216826473747219144278572640896543250121607700153666804665183890516689012854382041796765418176311249655941354405319829501534165446200756776943518500287575752801504861339357601320237077661930190460584023038134125204190478931738089857624415990767564583327810287312894949618923072473036099278332346640242836374072375198207232556559001244626569597532599558205143204409846038285341039549017302810167699626109132119363898091954276171890355980979853310689267008984751852692080199225268785760606872291838086824371564953722887185030499805217404550275134864869165616743997847574374383659297513270917477359138487288122085794469982538282295852858518767397727582079040193835611980852559963817377896802771005859292855431002041402376682586375000778276302200788027060278782263283443035866801752019105238569053839300513947469596865256324222651303645719411217167077322716684987709101354531346783480899668093384284906428487692676682058538458633625762268194595417597776083501349710391522985092593277746227229770172461946240236731506418274828621089421783431915171607007128920144427529187821967300283274780773273569784514366829317517940212014757776971001262762434552006028396585464867047318680345809543064976595910598990932148169556733677665101506382420989324913224901176992370739381320018288937374200649471490251570875602705565551980817562064730179361091129133317592980158434045068738652484296436498767426760513303252129799392457528968453378764691504021737046275650278041541616407608993853865877419632676481734910241233318565207906736360622741909232493007093056552233356639072681113232877319171676284824416932003828284493693315131598960399953261128913143250909780059155448752271554023260091079745478495223190620542594972368000002940590033010684991539943579908469453790847441097437823184000890876213968256525822684334877433967109653131370023032865524099829279023890381496860829066429681985915317216657693349837823296317538580445050600560951386122174148117146318687352145506086340686533990648462180639059974200539057403628528539662095295938035342931289525421930789270626885412583273256029683472909986352983617071140139634902378328392359720341732406919809814845895861241814809404574628736115638165954421512181684317526646278870064726377375553484549230640168450767383673855872916750730198880686474937533375451602682663206438110304200618224297091059237633510063628165212910481518496061567314362256286637381943106638445804621658446850546225349833483737223737416473938853904753586599187767499650799317572132661512107736842959139105771980452833202694663643267651082903094812804009925421193790353080215647686918723208060784268954087359885688179719665794906598447311220770071540751082601266268240271149615631580838983050748842419899194018066419142261432011088486845608618179337385093804263925486353925768481790455728660489969043334064619450033435339990535974650139694183244308186837285374948594921601832415968438388226388548281427059898799410864403506438154539214561684362590362344157604905231166318940037434069366395645264900701914526715761710409860771617478648821650467380208762283152805741766847339561611557279163934780786411958883592743546082275702427905349267941551128492102982409922122997407085602348617439759278453906118943125122553005723498976318658241172588474686373713187352745701872826196983248437891508577662039280467181590056465453992118447968863893122708403965176202208450340228114795232874450525736519178723960531373432067633034037710518126794636827498271349914211126600541046494500580502706077718543421453919378037376353550630650251100440338442107054982362520487360477266390408728745744117994887904636249279747536100856478256529222623777759186675963061805945548211990123556044357516295522449647144645700359125140385001570850436517322065372836778916238783390733427272502365389302501373884085357023289323426634509216526613812528411955024084671492591857200754034862677011432646237149774280663268667470231118758282013594509814012603412521931344697108848174858130948145281790467801423487235462050015561797546913238003399418968852564992980759131926459608135885327454592919060991966363270824832786902187591548137147543475064027588505631917539758326335723414612091903776482251187413034003875594603188621380035052037521033353005849066522820019605355165536922915923890386577250553344050057412842312436932075052784571890261809047919598759024521060291857629249081629183004943763078604590504983972908312682526705288627779957129563707426334677300861988773005378196973722582000607938666626484580314823148870041935623608359300010906578815224536026888149900196732220736000723601124276387532315730386118844082584460172755663285743408171712486469735812801908994311390902621175569630960869366344836614346746006640668966579716026052924308877206331849740548204963520089104800362261368079608777823067127540855106774281181991525742905119398239607913196093965808649090137457248352541244856580006741182761253231140988832219933051829500500686781745049714326864371615381089576350825184856141398760634148566323626375546630769558979590599099543289254415822254668512850965564229107364482555922670589003487915876919912877294958333139815709693389663673232276187925055271454977388840592427730661963798587399271404309875565499493893459942600061320887368252102291823079745890432257978858200581200226285462606029893248176313995470304728470335776588118138380126890691616029142736117869138465308684560033710703543146007860655109436220988363156620759589885007844228022097195718685855417413154861263992824867470719093388026049850490532470743278591007525344474466402245179174656352904594321782658107692371027052072202266242763813117938725625400816464429513807936008771745050076765621159995401703033679700017125739580944755109063969053943540019804881271841890318546095219547126630137217553172786340669678353876004857564507906218478901537654898202565715289377341878346530719859291988717196721933952695835480032541203441386009966125295633310747720406529615069351901885917168737693166247040258641350825032969357339746932331997951723919495411229640357491360337368590734282164486787315431019437478097213933485708107854627953793657522659443243771947856354241284535939211704812789816567359549636024961449239936442914022068442881509038995702011149514624702399755065647875048314494685810920784417723632295560140182538547728969308864950316296817511888120395290104475767686443577718589074401023142784855372218152055045861320898222049415718017718382219758799978267361215828448224173105352351253675618889388812317990504856067234087269280886900842583179128419342351047403179463848798510158443269505338267124978427310564544172509620601216747953558598526394115014302274358816213012867425367518693685132718704674563795264401514843196745001941899364024369810809898988680792761346872456373382912288604999567367402832602936640573562835028530881234753565351275298554672634402043308139768509123001684546313715437029711689971539754813516112725221893333671578435343163037750716707112541358829582328107307651393704702981662526331100222958526302564237824296334275959670865138555002533064166797604278412197493806962475907727871622097118649974210114692718726716264626031202234303315362032644723556231075783260734612255510640533643572936581441726179533510605118041457854571722290852052736455256983665227049442176380249741515198118911624670501701451459261460662448167109195755443503645436450426052810703513125948583815650205899882805549157496197066923155330847553078992913404079903343939061178138727146567871477544904073192985375983274408543918932443521914346611514117565945431337110217317794167677331904370447958262764694271271820129600946994969179295885258042497697184687298377408799905234314749034588087783431123451848902250584210634053411271422127505205725017931127944044243667108372725042651031354660043491105550724107051890077389602780769382494406758775384464103720538783055092619931243221179663043017641294563974233673862754377679879764767250804029040042779713921318520842255407170071820253234815251778723502192187384794886351850863610146110295985539981894574931418590087200675463312649433851522096711376756197805323870453547583475225136118871826565127663993292454774680827806711783448026544370286423131902518627650439218231541135537360518812189635666296083863561995609558997475781812857259136950376537464482271274126595655298274425454355761456285420774716681528301154063027781828050793861984267663769426366881993771023007390966647627275063776747812453791904447527790755917217433447237883798965049408588192797627082304308678860302936668720674139066987769654572240460940730025023455726599592394828833535849923526883947262089734868886834980019003447793317963785097093765269657769251318409650839177821793308983429352476425817854632727680611443193764012917962344129713338745300685088170517185919802704901480672840893285250155830270137285180518775263820588203125480295393126050063173185925376736659090264988718475814385696836240855931481993805312489391812337899528323079823543856877373798029648036726971543985305001201991475069757740771031580106740492013074487290702712018238693545073039466376743519696734904006992332115418547431903756985720751103459950410649207983147784326335604906324280257955104575148241916400552309817069150452373732827355611629748388179711119245127564761855640168559666734932355290241915777176615628036117027691427661464895625137891465862360203794520994281417776289285192396522647985035822045348740363383730412806702456335493566450090531829128835220875013569758782777952460005599794198419538373119810802396664864797838958194662269472943161342707928876396438473631956674670655006717788649648611894773986704385921719546880943539851953228886803115204889326167284954646009068880314380509411896555952157985587707160788195077136251796103636888095039836803501728220394305638643155217908580883008140126613959448656310611683216914411238392519468750652927191258686416721740208224337159773140209781534654455448511387061966288076238664056999336713269079434174275073861688884512543880841308811142311427082431264621517448886857340959958931354371404955279013893865080860218050083773968812404071815268437321884677341848029438467104677302786469135558787974429891061155653277230795407386168681788181452921360558599307295025357596704556889010285742076224337116560036973924242003050838459193305083247350933166677292698437576960315021037201039781170350696951383686072746188947394471565393706429672967508105008809815319152535357403055890021077794392880213082204066901500198588462145625867398095215338249232387822736511575074770036159971554081016505146768340919505896732581459875391097552813504204321407799363812818300689192376481027642505130630908329087404060264659317421396414187152239114766344381431357400621187444519436432346515524297549313250491066205900790410916737577656696769233096840564916258262890898500788172347653561065338850167122497791829145300284224501357649855830596912506166992415875922152504999570982301728379688901557117344538270469729759843534754008301608611807884209454797190374167669234475684068443241908817306836646449630558031132535160544196066694891212932708789141323466380970945158313248185281099783178707717210825452345863868788883225062526468463712871827889817127020507783621729464226800566410954073867045076365992079790225394426620870344093895913001517418503796586950144280783743661529291649142765116884496201311952485021870166244196335006063921847336011670588253725275566666240950494691301768695210054982891550535882164663053236160581400482116958685580043771697072388743592837051241687769829865102850782130880295744647528548040504666348068481779925712338790859720197061856768075156752411845238613641706678805804706547903780219562390235197260783316724093526114072427521030485337447218972936152521271143483783620376330170527798033607423056529246400005440721814170607754799807786912306954542105136448416765383298001289273377964010387509097174236402151512632897385099115188354506757229500481516402783378400880860210354452781593712436936814390045482209573292696473024733686009888842250084269012186718508332090369363478048298582582057187996041791482476339643363826355072575270177834691173808205964119432324562232606953789843416910094534049950264297597230493960951274373597387522705373077280624504847504472473500128253208958863613889719627806986173065101313045123842153267858909909425929847781748392589459951429182440822099987018484804808442527845673963115594716192459232146508747701124522657714658446720637147741234165183268019625517975058860094229222960733755839597163362272527574275083299729494045781635038142094404330426890096062901535790524788020203723628795064275654266688275389033382577284786739375329246454066602621572719583570731743479716904128391232092280841490160713366649339676827697981868295250200282611784079608646033021374607952864323902514669375022659219063994527409745554490468319163675472833809749608329862629883332282370487690552158865113299347819576916363598378696451541970755895262809546771069190324449887433050025226743046330957449233565529047000913203353252852871271950296766953236304548258104023541320066673946515936077864792836530571888303370639393786187852696463565845676842567957927374819939067048354586507247135673663757331494888754851981048830577486922768154617935621310069664930280377146051176286486307343325633655990130866051134563121553954722682528220691484412025426273663453490871654873497204606911162094159849158189648802710219193036192799312689261240847382624798860295872994126758833246875307598870611975807634284169476410438305151738448736260003698937089715727639500771966510234275447562120348052326751393573541910454663370040717349583350086871732228935531744550006498304178426286060098441946769308828751492803783027777332005282278812322918797050752643101875505174432214053227810749080798386476989612967449526396353984263975790797378447139227311454588278405927887607422133418492572613667022715595927730916193312392578233215298513643918776104576238936399346597417685572462745950115555216500647079780828531326889588373183196619647708919759968787522322961798859929609860072893902534165389088206079466711945612664423891402908069520617421776245751176060958148390920023359897270381966794199770313850003208491574019541394576366610575878224358485782377741103166987886031619365462449119092799844267623662677969230317349674654922726841755075978386504227872399947800455807766086560086674121766465260572246801642007092326459813173718421175455104202729096504050202199321623223055646394508111710215794432074321968862629143998651928659469972544715110373226560491013334325495999033480068193986396118218462171129744145076540288555672949822468241182503694750759463628469473157404137125007406683232085569714662603423931742688355284833828692525842266423879469568759662403093070802036943870889452151550629107656496603457401980425263600382590290156225524241932273993419965978135992715279532069174117926242613752096394079366140274078518089109676932452207349745646703116794112902914656835129399876110248930359510955799441605967763510910149231441625738960860661936690372557131557591751380334568768722527912433490655422820693964044768268750692302249375903117432213983871359217898031677385427053814465279095066862316712723769309073809798902548841792607343124493606777879716124492526793078307630056007248590652972821522473302408880755399819608550843552402892114048234662200862173957026286423332247094782942536855387523296328676621317888434733711121761602807751643518080267822570813266839995814925935720102821238515610358922836239025028037183935522608781109747769494303149683737929479294209579662319115633236735009176157816797148285203614159250221502400156925458168462204160429153715383087802032724356243378214054499971904168823269851689837102574145417400749175266261466885794118507087464401266684301139828455599589380618990900582652962738131827221871023751911403860992023914495788130555708977647802532363902186178498813504582365455857308085494324075749300313424400980529476910277897145172258475718643794563375746305461219269044051589699183727427529604241176091687287917380928867608258299649543452240773777178706666162350921945617799664134227537962903562648137544870513643533286017041961612983413706567793049909362065644018166965119916237773724542596785368494172594141537293616885238267244044335543449100929059824891584694948807634889156426239552141096160941901491241683132879245122599010131228099103300162115085593074328844437385406425253819986287857259143824833846968466252333718415879369747628939682691776058900381626352946483930782890457478348533121576884915443525841134347719164902371774310856243837510515985217602374661310407080969457196661345856994581341329408070289137670077015650324067808422894563778759487883166278280704192747322677278548327767355882154388307472425907315981433887570008899915700332824035336316241141758099110712937000652950284213292357256622547114148479789018663990851066231744856225664839546897995598954837520534059471261067820071931238318924250185162013336850115264046164775041437847906172469051277202726524760627194585024628503878680303387227783422028099546037203665398598398056328180960840810623542825302586705564962661961991654366308179760912911163097413133220393326099548762098430369980504093301818253252888168533451367518941614017393747985131005676139547691317588310961805430243449923431056538837328602509920526755033817850091395242195819535693008073543356818490863306636269608517050389750269742741412144750262970246778431199875807841831847589165564345880080528069799155983678138875065891287076009970883742031974081421380198762677364628834243295774740939936405690957811487071585780292449514855572590181807865396322160059325808029333859635205889541806755748001501789721416372931049812670091497732040795969741559112821463295328740777423390998845263997028699740783461565726064588308591749163689342347954050860517169824540570815822042881068017112247102711335334386461172297147751386652830265527979472000701350697696738618041162813720819415281599239451066937145853947645651002634544230665878937282606551135257439182758788908638862940395028289311600445318865152383239556495647721277307968863640293503123136168663145250770536465060646562896186438078946571937804833984204769629076165495032017602530964866606182394978581840095399288529092690728693121481510065578611216541588130411157943432066853678008059031753317863139573917959621940084482136597450632162729801725899330073076606733964437595275401258828860484262345012009331877379075913998291147686470196719195767188744212216673578299951124162239267152645874070493549599175462092381222532773020643275533351237350577030808756279504090054872686589938240440370934950381279407647068824673445054699313711986439296561203671732161755558717411924660256312137875814769080468649298591461669690000485865589386322694183280028453973636006350572964585841081643591743380327946878270169621050623197852065602795011074349103834019915480914677690764591418866923253109681333551160867986648471149546472253221274627590502074765756655496675108339798830884186872851041947776025019996887925681263963364122063316060228237879716878796496675822174042811198764224377879981142821339555407272863836478160860611556345425294411569724999515433709616518687825667930307137927994490110598390911736419450573111620809064104118092229710626657862255790517063954171204751518017322389347591824959063543818592022234890812095092552235638262341785969899609456567491505142356039028166549174344261664951466776260474330749546803324129279433054441504740060603265468728757109432344180751276961045206663060009162007328166575134587382299917132813594543073255268964891137922386487954144207214718487819557837643225956578483016354712931178453710019861995950863523400953620531391856673928086851269005809400652653706480583478859108406876965307208126777754754424377546380843040378187847670350707106518858594795741430230460587181165976626410606789434626749920440676657029254645647379705098793127554626248237255544865572334056731459803277177146213942384708281969973299180577945422923324545107056497684450094446880938718514067773221768849192328699679705149702871980455763985414018998447238205696189915030561066481591623567297640817210378271810166628448043495892964844437058883173604384536618802137917918575154741633434311684990690043659061470589174656409691882050304181572500538317861151242741711749084552499700424400741801920197439242900043560734388060652962115601902774618718222608209399347944632594410959704146380019532350464350837373888864398498376180598097527539825921942685810113507278597864875120757908531208521762921101130417948597895318939746270436691299192433124117138147887328199495747884504605086872511827674928413900857067868751227835575044647417808104712393889045735247986686441474021669328904578907562753134742076682748565395437550923376432080803704558185441310129796089146879864092622449919212322412748083444324403939412373485757081949406541194853298453121067318739981061610591260818024945262606764005986076659456679788386939671801033416272593933303604894156833775795624596121992848482517913441977827901903010502143875033388266676600964795094807901972848960937410636342700666501810467286745020345634608523772814727289558047276778065650064325593444723749588336870042783909936515547379853316198642440419302911003218703280082673566870114906060228943395193073461673673655950100968340934236824092006915856516222187175500028760406326922778180679021442717752235788972578118549708481183125134359412991436147208304284912743431986104990459254548893729077169162774314761141631903900670806722558452786542773231672404582429689047638755476503420304517472201425843235451716267081412497063942914903341015521020631328360300117066153841059848565141723488906854176419443052242245498687490736460386839134667559747837270866709214138576285098173930097366018470692392648230103109213729929799091140966163772233350818665372403705680018189999496002518617366462112459024819133989754235110266131281244254447509445767326910529390137745664821368596070958825313482573548985959578144611286900194151679728555014558523410947456720314379842857090129590787936350283416815022609994151317312191060061481011833499171367203960264098905881174571500364054398524118002985306393460915224160076362330295004855898883457773838299854871002838984782823125809240858869788612333886009620671223227512053135075850597115725399373392023964328570074363771067307944700789533089272451177205518001503127461596163334323876296542531242483075539088345831851463206751968564983555184853701118687154520685428330807361728723825203781113722733501346457596830692062807400840565838322223448892166137401017503966166348486466149263360102181996147253669135388917571926196211327284407053401796213529883047992639219992824130234149173512992658991793848717502891071307279765294059205386989094813842428394008821919182451972116331360584794866862007787277509887492752006909248581468898375802053503316699090716918224423320211629021944677895600026999685469110904725506134762752684498042939233752319349562920000225044532196400501253924768791797867810999487915926165438540420062579962194443663750350113586452969619652106505088816998279825294740436777349978601441679570838396232524105980132139433588323253947187115770674655069403760168048441623815066357830944985974133717028706347974819548071492766330011605167147430614262367682124048312018244011300938737980943036058202027071133035899660320003400119701787332414140958034404562327166645574563880008638642657798402359453424323339592089111262812225173960225714183096650558051776863586807776163870654147315514201883475146183097299457271532746684328705717992497808979133327779995473987982720148117786800413941138202038107735680226981143332811651446337692352376729281739929005383211790377742984112764511503563470628873274725775814198241212694488904963681662115307643181703612693545625735425909621132286508898292362472704996980784920913187407927099688574115103402806168538709949142577131592697553935720645222651279912207372863744955012177547043985795410487927325643532724836036209942215167671863323705895782767932450884969251166680445137417458919868638721923826183730745251941205802637552960161991124350406139088765177524690201537011055435017011387662040170887179551752482695469736752393812671826163420791798000185629459233407872399046741730218240120717169027384862880455965309728543797771215554681538614960942359945637421347523280235802606344670766392010498147492677169249512189342158952456870745635123240468997237547539598890957168642936613698171872803756761771010459608069270809264752223571319634144062200348348665997495866870247425206440411661933426089283486023326573544084531349647882665970809865251629715890288549727312576400473918387241208214690596665944914146262451329848193410300196751024948690209561125704487376233481937092104281598570498509548288017583653758806707702479928397070145587201090908312521944336730609954771456935220807415318272222948360378992015280664220274457246371165739318390795215510861281768188876718402569767826178366382447161245490497815235071335850476765923892536110432276610427923767086036212443924982098406848382523459248950561005408566219418284941934364703690291901979168375883039448440685679806253679315507736089972934153328868261332158347616702113745558194616936028034679661620238022549768495605444066855409064000394263564326690602463465350663830544933796612913246527352440350528734002486342916714181144236120144699896475364177239324680054618815433599812359831300897698653820816973807269945941394145891638728221216384384914742412537318454640525556638636084062089164534791161397960991191507114406504886278721488956537379868806934287660646092674478845866047785377998144165954866667586854497516621815282145720829950990461305865233485037020757249862186583386599194644231584475763979238431291869867679108680092824959401027678429642611310455637437273608457817180959549708511322603610508736506302142287315124293279020184500869675729454164117098959139162990316806095153740428519400493266849835842498815396504910447036268218804902198960634250329744717027416414155492750286713556831371172754263819039565098413173317185624932021434804998488905069085891444470912576535001910076675900707097785313017341432949735354621129752042532374544532298730834969626629005587654109421032493269569969149875735429112506464080074037315203962441443980200271871387850517295329647637111549959139640994509862320279742525486066288883713658468504866999498832897061327261441441560071506859212084979335761247335042387976039156517100395089352779699213649227304939353347971633721200135256123465513488723909350659266715347816998223570234804667288501592913095444940684742848912076670721323556238061449337178356536468860890044475943434733864899661077124877798163652246071046791672905753068886503587496506710153965776418124907311962928234182144582077450910281952357749830172181468721359962022366031831639933137974843081766764683108749188197987929862879754247595197885900717208476341870822041169121661223462937974331033213729483276485863702382547170071131690954730569041138751296892730153822865154320447849512473884599816554129257971023818600659958435535215434999282918871689381134864585322899738654722837155321536750349405698440912696265803127405163291856050688554727472255255694538536590479757799691819121618066073362292097507654057381639209409575075309277917229556452239304521342707565852763277700273896532513387761310490249568525278469965622862022008340719101689203612515157851440991038557193330236441377063170980721628763619246127061278171850367536659644499906232249436366087903234271792753687382518135053796660561273797964990929809825722053953372406463180045946657215919464131694237339402857758236122734633290002243915631032745771969509382029447987824703923230110531410856405098650110009731910123538593466411919092856189615946821954464794943553742427656397055180871846562135681383828047548700677262756448228305387949791154244480514331596901209294103722382748057081309774028187687709568795483296654289257147440925780427037462174232970382607869149089578817883744085482086577855375187537042141459435715312907085046958991435336910112938625943190383119048675288070856745863498569359430632940839504096590951790968976851004215352305842750234220745814818509844248158195114120664052552849432838266261218295874159865871288018327589964123107588330125453962580130997650742255573349559248193438624003275090378937336747356642672592878489877027131292910714805696712162678816335627451071870145557772833938459962746286484413907976846554984977701056430847085746303239076623874283515920780151172329722796452862292809564450145202121471996401363024516080423308069960510315617720418579449952351366585124508993471847289454611226486811002505453567991315453334066431178652308155817382127975927947385954241877701180954674700165822427336156695862465638442269568204778067231136455611522075914949445431908530047621818288776082876052006689717213705606394723938128253768357729529079480898393758899454577198692851510723067518751355686169645771402222822068329729612147101966815075422540431056023349134612883764552579335144126917575711880963180815764274060285923045309436098641543015218071083242743679775799943572055913142810771165491851060383240390740708080682606534443614793365935386767589189564515756014525450356698786403232611258128172244505368487598245066925756477309890225351729665228514816338291283468566505838485577078031296181630152541684212538844460997276531634570499259376053494443559389868858140548846611117497798823040816954467999712122410739453351835565647333423341836939668260429919588197810763594425015521235569797644560728291533208324949333526986893805820369289282367857022875554655085040983956705162338629199943554900133556317705194440039703288983634799833395808493075173478872581005421641737208927376113085755720313619904752991223514704101999682788705431704034554724027943432275314420646689821470630582399037575170083883417760336739945127234751014396968924170780847058540694408942555162770201375383552128070928059247723818145353878377654558014993532779360231542521982959798356378966344055448233205989461791685002842096372322476594829464679414212572654366540249552330098091287181723850225280148925216035862794069414433019396558414685848039892536707697618427585588344471940903291143953287719965051121191438550867209597056157086266763971025839497581304681452734408661679477844933275056608149803219395573798329145485198304041353749212164014480620868134354260688375806021115625215884724128412542402067532767193373051083994141270424397080899655398932371802042930511451579453912233778748918195500650334056919783575256980147849266307705774153312474602385163433599614243864067270138409714520844346406867717329895095976453556170941115121846531638400867156229872300798830510358186724387523195405174186235819033907530477158632991755977152191696145223284454740989408174838302091160912839436390010525335751889951505129281936774908459375637197333435625531722140654721943309127968822838904049647973609678605382662204432750060171361202217261631369921973432959553657230960938392555505101170045126188046982182296763802653159143637427952603659790145203359947058015997186020755671311491325282600025346846814839875211451283881405423368042333128771021603688466834478605423726244442112675759013814323110728817216884394534732098377096975440375407367418265556648967760110390318110745932569089413765378019618597219783503636169724996013162341393804396260876680524462778324488241253577083219369809244636316680885364814218929736941964039648361686225860380408954498879352393071699012098224110414875671165534450297661270300812722783286010488508564738294155354378488861209176586904623412476460969855089048904088540340263266241770184195566824350479954661524738721356392325059414410772306563168703073994124691027874565742799182778313628659356846679595291409552441747469271890315478133304980851844248579634312195878765430420804610252990858153393456064496203810337846840996357281831853332628316556093943620915373218270467135022402370539139647934487551566185916198424978258991455956377715786770096545483020128909394476795433916597387985636389110298509364639581075949836748013230798534516279618583765356506929386679393893651477568780498333493799982258209634387621924087429989090631012609935728676134175103730280415583352211694610640619913320271426845876979279405919901021640224245728963440483840400243128437920443152815727085122672663846495672334956178908675644202563670894355634939995372553616344153684235621190723416099858121733244649921287201953556075159831051576907455683015036396483743093205002052022125730080168946478346103108800160237049165278557370123947123569580457450399805216208168913973180217084455306544529155050567236967264900844489113757752173396510944991118663257248083324396641994858600506431543376803693545952511667058319136151893886460802251847887675704418248525589876026236304398577803690071152874692476151339803906508732579966790331791550305315132449148526171999853408132325921704338939591343776080304524934839113663537954239209317890655746371892141117724222892545881716640731933983335352273748759302355825377793421290176261691403274392816442399057145228066067515612636166922494483258562545684098162811316305889689637209868004727345645849168873571510000125288140434002768878682223645028821072314284830768808083352879098957355555038458058789300394999042317086301553152241920467016994723753643434349069093839642903851532185676184656841503526300930208781173775690752406095141775891635819512178586194007540301420577035489397183563611390210301960862453751448204519466066352362397656142165161285512944931328404951820386613010080086793221299907123735950201325242813316062299064255485754006363597005383550255784988444622766169631484219202783135345930013709286062150741304843210846133751367619616377012421555757557803611697034017857761888497887861735026428598323235885767953657902133325013467659892251805328380367172164710140106773936859975394971711853342302280960422881167599098100943498938344445658131233778250397342816312955541264425584917121853852575603234723117405592889262595753411894328151365437924680654320370609275054513331008848806475199843671149163661381322837179280803267360931834350625982098760831213825229021088676852226439520123234467552466630043229739718696118098044319909547041652780272517159215786467182558517441758181164118363128605365692140355415292062925442443091909536700760546785698779437643913870996097421266701445203852492300628242988412574521016870164397462998861905725079053839380075741977378859796066907381072627335762133518925019827948843145181095374917573111374136071677951602991142843419209729421551768643818376782396830991758529668850299477753528344326783416513158055191105420365994835746659463292483706420857890843241670782367505057199789346245254569347052620696014169886829717911810595284553842744740686815338163681580745470888888252815913376061651346966491162945096246269194813103825167247155567561469902327528705647894074559779621953146173914682107972956347448259385336780344432886485899848382334918391698262711572636889063186109512103199338400796649775786845684972859809449935722844588773149305314778955514568873294093930320782016860254976652926195320088532706967730992043944041780364523023122616021681370382436261881587286541595966330098230989911675448118674875929965478616341160357821179952516643871020480406108246453017300219680178213699578167008717808465955315606469360024934218808668715070318928633973592647186490748755195054817329372081013841194608129004630151563483762528214263008653002853633904791499466973542605412924365377149621917533627853085128013227557265060559600823073090252802192463589441958213411712622502372343297777158839548847563359663909728744755376559292182540467290121134745439200031019917866280198170207084694347358489723801365689960331357104850118974301162740112695155876134940690963321891584276869331019877587487067387097900054847089512618889689823663045875596481431193058335725453378582081446347495488067541639428029701297451966865936367871906827338174709548513019424702997190188585135355446680875492088570033153312306339761534918171432955135961620529063958612391710340524740889016378685720493371525432909066603947917791832916283884483761317158514803160770446502859835742687786359341273689011267909352324929109013004027719701885591955130530388704605731149641910468927941427946921186839230793707946548014111601763367246324451870657078332178014684783486013542604516390662529532997542623454974604825092530335261702669231709388187925245272389699634922057641642351638723795187068332067554640138799270470188607598656425082266061018143403085206077560518556946906359556461623242370361319504407338498987220713847898694446564435515557584901146945165557491607877045762691841621071685244196422738348548439607074835004009862122769450276749108152214668321994048937144849011726835345685640025842682285250951324897313946119091341943227449278396631842869361657175894377287627924545438556137882510693344183454209069875204721322784533737882687501210276231571049881811348029522967867321387659282786859201444442155189299312910747909414729816302954165806588026948597644081411241693876483341231049969025340348548802371478410115450191177602923055326831345338882340754417506234828713033218420071820388506413434973374615576027690690135048560514124824293352487157859639928563570318398433333075778579697013065546117052568561612356675560918795074026109284660937524979986947947788690018300812319845498081944230273622891170886497455393985078287563247738443091841948732882521088408208928317866648623431193402760930211940520413118333512932671630085079248397494358608374075591379525856735000892877916729830349145541741413324298011338605832187686031658215872109874888867445168610085585213256496037035348455925541255025370051592910547878170396915060102538278171869636604221883528501146967046167595662920907981243225333589766794164749173024819729509608909622510559882876583960702153859912228154409164313603841690417633331138595687909240090271962848516637257862635132682229847945397907613367647555091280582948870106366786913935924565588615058363116010950668782664833371930763025930922962901030704879527414821500101183323089591000704750470924870637965464527806887775977957690074744231858658020402346726099017681532804136445213007042954760353686166643691510430004659650026133133755403224884670956286760261824580463584331420148723306638003557805799799669234589809132929213990017287526076414756670644466476913600074780577960173699998197673195578891716390545201566181966492596019398045633873833592184680020491772008622361453617733616448559096495803036708864683134081492978175907587657909018024638965468578685279063013246030227680350088467996872967296315534781206116769654299622195098102131139251948635414738109155114612793894942199475925212152288110761719910570142880528506535757961330520571595171908131343104396821011852504704910796600594503886616862516547792229164037954872112419383554068885658418049635445564800376193505744244131074815630319390100427472684866091839553405137465446304002258357139681430930738372022908006670181742501320542876492334070099026307364979545502795966941898542413050648158814730731137328516982236663177663048339676768878195859817151736513754959306736420548145338220242652435365269413241744128477238823121430669418920745609102928652405832756889736130081075277366628411399646405109184638818748831409444197317893414597825719479735339046157372399057592057640371083431766263368974143224259031368743708081982747511975162289463515018189703382507612343023029565226681618483796389524505076957446883369521663676007183102346535084526873160320087146836476172085090072227518735887921373308848156570358486187779595110204409469947989237877543632622271753289572139539284849534372142149612741164838638878493769142533342929425796656423962755417965333186481589617853802551266534199440206333679370759021778070568574200050558747731260325059403561280623385682413028169974197969061387629287658533948898522367724984275051546433179198241075597563746616624273752809260080347410625940196243578524819429393710440097554427241156927035439866263832185223582189373139615549569047983765624794073080120178760865766969541301717097881008120165408701288504044749213646668965777190020679302040150355977546612684978596752182198834087445489651277063238863657137155157141476380361717173538658041210559080655247510668753921290537895858703737373000862689770132078656181776919669557037856152713314788569234153832816892398962268530919817312129706632156201508272923029406562824756391837581718866950956675846021420591182295339632570217124188305257208357988250691185436139728758371106709548785279119084917563571608445085687317381112358412157481461078146863314251640361889857292318135082441909539427451633631421638820150954916520035138885816763982371177608546921551001887605017866655519487442987134254491136269620630258630485982556722766159147374921528689164013281375528879267740589720632497013177721709513863688471626936982323959917255076625494104988162624989041045838975297843904888657524489462520909952788492420025816266767201838373575535118758129645610445784882664372276034623842960574972599636014348533569092598382660902897751090614349730879562287610129045250603841070567766224295238347788913393839248092593014931795281568933589167970213313053148711500423205690204024660225032214181801114252301442069017292977943135754913274961158512203043640980341513342744125672183884533130801453004060486411172486412164662221119564602287313637716899226393117468530695544954592009590299549736847072880138544863876188370873836739621148181104341855610109240803742972483083686762845796889322323947462630710081826477745403529739450877562305274285431287146015609964558988496743421929102489762349278150682903568066554099494877499608481960377951233387988969124655652101889016113276608586280168205851494815698096035595194756384771337525909066362505867442879213828205461475444936387385365535009287998510215103765952137502947524451549099071954865441297283220013131972618410222462885345750399132215671498595822384178559579168874439968386177799188629216630014257556948911350129826808936710855142831179206594172387103956538913582587389658008796145383066168281752621888385410172719056395007741112608070346891152588509454945101149728092240053854550866226497604570233156249613277864436679685864895521562916622108234316842698082566163519872967817708348227671352729569248916959893241252113379733518149128221401414905687307298361950529088315045803157734969757464721783968480266139100672051668853691791164070712249134161228543524811731247048766850013438907122689863225678251922611246617564036719657502420478883988057616143771268806374733514547764672175979324531682171190545378269569368379079767298448434219347233008746225466885214220165044138978458497251536880892174904214623911355678056967715052301763484269739765495675043681919918801886501070453495475248461138152303068696407397445901297533685365814718357134238200345009614894457346359944253788220610329089040829648035509791687845025697690969830504145562139066061797716729920304698050878271835198824076322505590692192403687190992832554331914862606100359917726679789846098571177610756592811363555558301549895067162022138997766485906551282522623866287654034511957776355247597085450727247968304465700403857929610564590160436674343718409973551317593743697047880256816945823034323781808417952639293305390389113768401158963098138110732608718710444801510485939952930207346087117592535033761559349399427671676116460530238462336019347873685286372696945403890416545066706418816254361969444203525504837664767714659176299169968442478549652585890305535075477949623258227437021846560640914716678215964616809211974651154102183583636951244312842820595917581707284580015175215358440683850542459367383230192003964587417259071839745695968389667417057042370455128828333446037775728137168781635001818941156657290989936830859375994344544881148284338761860152410008176897691413081264244128423631594545129482455195992072335121715202046446605715957840918035529273394452034261031544738088071232785140098022678344399164006348119048789588688462791853494210570689841461929926793410996027241891528032056829084388423075084977831375415878650374396329751124534572631418829394808169643218439398203169538215917145441021707133772086911601618094375368433613971036453576537826833371097588213696583903828008330353687021639790977175604400277578974965919600189287030728672875821786887878836889329110807563445586320166650689043373343088024568979246742604377742116368392025472526331837078379144638486510335067740011575144482198072001959133700651057934551342360716789755966126582436084472503479201595025029193046431661001825414360339051852678183573868288780368863989831753216646131145642675889541237539822417917106996323445921180889262935061895430236350946133590568940059222015760572986183620249503060236690452322718462079621807747001130526073181763027306996255291132123479537311465204653601747847055923476026761512428999234776027914707555223379979566254570789925290982844450847735104553353573205020539923020601002431592435665694187094015294356496145460528425999732893403505231256747388758517741235229385954548881071071592815511866510292332821514200121511035008168862135957506703678461134285438682336880851802830515251734550094163068570157789854937046523529225440691264983027778697747510878030977251944590130055950610800742378673175655607106214699413952014554716506897284793452743508395086384164328747413175881688902424870648237030119039656932764051108519362699578662458420993540665011216439715101061320643850876606076004233535191793573015835611156107404974664839777105728203747367884871629977423633912035433647802439196112447586030858224782503699798558858166985774473176846403085528098756781104779320394542308892427150012716099058842545013836856649935743459583868673163605051401644598627839714235100185462857899716541215640838053979506165527612085223247068580403466372143239124587903408685218953480601011702664815802607847842323950077355701465347286438404250013522943578046551572554155589743572489794157075770299273989809733395335437424102269756537724178819244595170309921174627062811072901598393222501399168813875735482894164501569558908709551697301677339964752215426917776289832415774001189327110528049197947523555994146447357648757383423089758531060880130318353193539319225056335656347780919242508311132088867554089692570303760670113741247891320410930689643897506933240503870164627842612804365177341737689211783564779669811087034312714089583999216255725907883875253747669053312557335052253106113408150428779367484805526130634529140748050309680385169022077736976311437617985017927457076260300155701977647653679989631175016579657073245205858780917451558161886890220097164083257481598894364601615815283801725033100536689588873494171334851778511480157431489999238368351707264468168510670996282095716154759574718944649619263163490261458628411711421750379080023851092492959228242161689305324457555113113784279925145649856970563003338378635203973561217284412550270504502066786503455163568966385440856675520390128045174106347580558074421035525820625470021413185045318710209639841180378479522261073819950599534145570272449227760672083428901419510263416285131083303456889452217140746659507558254799184314080567640553144355488650941779833032267492010852358918561669566232845124073284313634801928982416771143098481485477363396826973398115083635838366497974399473974401643402241321435866081473874954295857328838024126830259521134020297620288066673137188716347597436852952493600936780846042100315715240356068580843412049596157417267496364879717138205229264901313404347142307139391869586747181106829948821364721355877573931097515312894915187730720825173204443019572812104133557233904897090481648631775400060030301621677389022399070677356739480399523126385003824359467277889184227763709103129424359277241662881896109015313368552501874875410862003378506208695577384003570128314529448422852694103225304649187965847397658945077445155678662362998859732213952100835023695508349664977152529350485642167324075128143016072130381306327036175083006138460772100292655414715046346366551145146623210728879994675920236680360725031946673923616164213092548638500694144709559218583176551506490526710691122505615254202588215122747133171188052494786661852994661887656530181619576195551597523788456920329581733373361926847804275132638266365279353256528819658997723695330290127340818227478167949198283855200898676277869467769760656522366265423351721847601892429184892014088528025716653798619722410089377952364607331343164165624336114083304103517849104328135984772297247792454590990119174827751793978052897163191592834052456297006398270517851310459575206756018682880461413489581494869302407355599479011612976330878885396479086684600670457435798127290079273372279042939776557984165632986698006007434171904711992561880937944813618434230283464893792143360553951430866172860316416041421998177992421675417384558295755773881669310438406389041455630114076679964871847434392360918326355622347904971914742403960896615443556966451061454726625270058753633227649507368381410867929176361278003305626094217993701618375546793069163059031761547663026276247044639209524027198036112569122370299065461884192542071069671926449544183848328324903652385078750535452574030497518053518775572525123066588118323176789179909161809755167018509512710605683929443647625714371079883342847830959895670421366288657511718601777635323967737590264189066330391467791402918020363019536522960122909680598517638598912252305798647121964479633628378289836612090529521618728860090774137378469435602625135279128705325462672100182967040081717968784077273679763380919062935649873501672754576110697821966236094945625709841607042393077013520526958229209935386982024757321306596959241172991859922943521020404823946018513346116881659077416634120946606336509870502479025698617993083100389087008303081420083141894167657499820917805826179350676997858606856119395083194716354656382903404563883382722240801817481016899185638469692005386162813639666578141450808544144600126877708893222300555586953519644411687610521804351543230671608246461622765747046569433433246738496553272599643169365640641658545111904170573521651646325856801806373635144088657090039219316867581100799642896074595535571912322171496862899802236082463995353075701280939238366629235080140408569223844169880150780715365604224268687672631653305213303387631277000407440410944252885915131206827459364712091233762060771281720095792559690378632172454546421278653494504754126024508771568399505564414256954522741112605641607718835271080230686015113342578243186493548030395680003544951252043628676802345741747204675007201678598105336417874170363226672910612865751046880210690811079992289122477575276186603732255331612606630889628977656112412396853989074635825501146728174369584918178621574049574817937035783971878595743440503922388995859004538315398579586351062222944070513398503204679847092911290503201901886218926670157198590240093364747681729321347841265292174392867329627960303425590391664397821251042292391494877987354680351997203478551657403558241609505758316285760468026767788895419657271943669747015893040057477572804263830049144546193129565502614511121697231774580294779673570408255961646160777826680034051721546887994863399894858702702733990053470503246075979952632055504075027957549055879043681172863598857316261436278741790820942710581124123061980207008358373981723961600695403416602427119668055249452187978775159230358005580090062086760766763463063434049438706479202408154236045970658565042139841823153057064259933084971060822030677904535155759455076150596157594613229590305627261362261934122073624646290720638444599089785940372087958851052762428609360793844172133586651858395864337225525880671107993074181246406881729036318218743384876091893777636418014869294918762912189397788488355198164980634234127398610079619965329471724468347312346227680329258113871415997827220580884843698271538982045231832866114753395199735091166620420362825355631669361333843060031307212743949652978860164301431785206717853012648696566467195150789738274095184596806589242490169710359847863256010947192227394152517764027212623111299530675345458982620560666532236844115939879192889488749357624413619490473971604919009290033510746873802693953352839246291956615493999459766759393662312260545329331964323892736433786487733574619934985586164008315474628835169738837080872317101196874797035477125949884027248712409723674749443430164607382477233179629447337032540534059205825360803780495429450241079039491522141669918064104929042500948919077868684115886524928740764027228302940998320052123326325562977837897844327472726749879031030862878412379769409583824338930030401652083568703217290491774085605827071067104533079604618322100859331082258417008887238858008646653513361686084953652141131452180445356303879925499062594436844937841220421485364165434059106452622702501992792483849417088366417213945436918506875614949645860792761189808285411909737195396068816504133305776208974621437004345720002905942115068844760851617416804553673241914390401371283482784318620436146708834679604724921659067760834844289135966691407998738161418354125486365640576288766671111779971469132269561052697625833021903060900333096824669547240261111622741430227641456928792966794771802040898666552155818337417138623933028037115942576616614782018194476092282895366008054129520898976314644322232163828059916256668887384896295099137508592481216608432603026120140513631860243862673139268364163488029685587597825325774473932534143450584757371154070667399555455773302435110809262848089857604321873753775377899556421592427046910191581087206174355923360029387889212968422286090385873433648743492038314716048315905544876382824759481118043981830770996403855723957573686264609095911837156072286879109140825906814947668863855555455397485834571001803168926667629798357569481031184953505947096284777461612894113640359389792368329167746138138726147492000072643277820065876318031469891691221439157765638540182421309341455677467385185177148685131385527772178599559272377676782884264716125281657643946058156984052858546562125409676506808456318985066090556397927527234868713537237114539401808207743974654859192146562655607587307742132248938409657427981007547754184996963917816935361010289604829902595323589832138306319494108752252982906075629045468938528170398046502996937395812621240920612337895524591584579221269346407944908079062889301694231048670604236957122581419760124495175404972227218887436063587801652982657824947718146333177005348252702813656484903184015356902722831738703326751708544931858639523177092269493910666515293833151277368271843382516526286704424576077503284566048692580622200069147960288053931591019519177511377488484402925946201062616836319616705685737545099544569976329947454213604611701732412406884174312057387661210521715599233528250803247577274809062827631563051416486504358581989407666872051824127213658642898344804672153571715264397238976887989038618094347769852528392797685966975569457490586685410504447770791034169010651386025830927498425438797614289588459468260379745551020320676824828300908459123699250083531930842778660886906826045817457898480585738932800916139240687996705797819937423914205851073266253206620407594240197060010725511645383880521962706400598068247725127044158442069721441263760238694577861116126320217164198384149224383223840170589769909240713608123392428665356734500654812004228466610768409444234013387602179237194816682157275215300912778032773100833583708802591724407603104960464045576863869718189345516350569590450631679529576387797491475825894193773680638516521678413551075305935736372392531015017946352877809127512715976350629703070759055310966818816213860733961934852236636960479735596526565389394185012964655019594122474332593287903325120846579914010208818971862889436103534269637107993202977937823442349675824677711331654468018760049686795076322157411670348208237270523329058103884743934748336669670541254764690203488424009443189176155877964970171946367518835460065657066076013403258466149834340438597414613766178708524502582924216542803886617735200318883662912790754831672707153029501412956134240487923070462562809939001018041892916529048763985794072769437840771234078025025949093717108357901134252517246223537214083470481821062702983239715796297631952534212977589132645488323487684763780977644519274017340817104750197709438697661845760971093190259752477838316012242962699693310046923350658522357854008649053767753692931534941351863885464222151566594634361940266274479610428708319966092376392204896994490251840493492002777224014130833257223564696141110455918834563014427257291968498810636121050657955177604826726297712336857601175080306923112005666093695845865754511797398813398327606676023699931366854442341934126672721173472622285544778045362987789705859820656790919889902991677875373635957493122384262471502074846877266689964568817458014660097479818677078851434512890092052619643373659598138243872362379427780699798654832628719673534264728265892856645056408987121044328267440181314457397800926448821818130421846982364677996792268993627310092446577741985593689979834991667473882136015587821775052374880110829981585259075299101837048597099677367238142025829995913578605385451038093864790428751624261513335609092719846213438474443980425725859614737325386027747140124674203817114640249605870374585859410865652885288179681081127151214453215126654273999656742057244413664261750120424190867062981053067023701394558971106094684178952184922034190020599273020517732512008943865589280692221460038271052352138832140434445585235214209482513986941712263502699256511639746880616850166332559982204693099871841095050160296752168938920168331844875134845474561474649382131015877751749906561749757178114185380319699709726697186539517589546277371515278512009657371092167470789078544195265821258525898972681100482848514991350401636017336827189572104092199670229015463247484832662201013926411618188250628363585038384419038764961439881442982449419643928923396659607857113778214454552674044562026066388020616528553506975285691020158612034553099968730432670670959739522309733009823203148025327144950140329515070948745278218238185672912186780923207277340760773022338284031049305214589543581653246753775571469069774034322366101081172641803553776786112277654858603843259454475413437768347510243568203748727961478377301558425932672932380082358002825290441177819762533710087795511800282954970609474159094645326318804704645845060961192623684506558672156980057293214867800139148456631985822220101579093816974809881149182287862309365239882187612572825389169136205446665609152423357582091336669728774042805283794530600816955820299790463192958977114442581143415820803982460816297993433678706481446569918165343067492270099206024707019224790820471931547666898374472877953420443006955184927973739955112500003184450772028432902560793363542595588959862863196001711010415805353609978764544960747185922205451964401606013983748289346202823759880485968926570247826160697969667754022383816923599159945757552271220664989830182355770942731351353697298151540028013734016238552263010305121793742882833554851587471002747075562732920467893559545474016426439433705962841293293246616683504807934145987497415761391906800568970581520278558363263340320330135052261563764249430931310488974500948257345028240381052426855924287885339301458350480559637597067237390495438878069530469530832105674559884312631253430920264975114464525977705983157413647146892436827805245515665507894178906951712810065419291781207251244661420696107086838172209205071402741758675529380592160440044631149927767406128036035350117047774817511588284049468490999287836863042609609831768599150434336175542908021623418087275311334887832360429004759064556137626005475582863814577229578794683935791385299405844847344205308798565986226589742060060223165164031758942898261982528319700945958555755958773844654178025877506924309570844139165363999442904736445504900269984984755577447614788907155852000145604662480460219609135481563046769878263227229110560862488096086751840306127362565684644733302503917173485701170002733340902007729796739103691642681733687806052342332441322551717471672222741586975529566632642633302223077661674830782649717930815721992336374649008881601006288047234662883512366409094578655311385455113730667020714419846432548731643793843867026793492686569573607283011269241321964685875621376489359452894510905912348781763058107399460323591493307812514959963714741458601675710904119062109106919702784013726389313427379827478941655235332883676718065963652702285867736852672388543471373928768158448936061132967875130032012072249346689061497084051682625067230078308580475620364894406461742748596945871934395927255114115831065021422306249393931086166853437008231041565970341755963467116355623892458033810663588349209931195816041664059057939023420918852973672225022419864684513355978391834410696603505582438275980422693262071684502157269331345836589857367053277955874874533984694088516647568991987175536626941924462720384709710800386163431556087416252292665211806126653431296833703882600786853064967871646268512244523841481931768388510773302230247656010769284326097486579356340717034404463946869899517156254059789969301420775608938914866792674829030469044404745615313847122683212870013646810748918695998727208080570881085172623748827821826442572309058884535174970202680884487123121887754488465098603475035219972785500442164242624960277387130395318248193954584566829046433392919642732963345148976734160406111814493307110173476897013870082031712782372645346038478065528342536332261596762126188069582443379483213228923492828468887690455261672034330206035626325503815423317481931979076233993301828652839408145107720834719776269557707882306233636788721380620270070103888163673304697010402826378674571294979696812945885908238470969792182990688587281338381368750042410025419753683958669115681871050370347650031437261902607876913060168783447517363552808194335728382728251966589159745259452313267415735811051750527273495041221120342772776406156080327695349322449628255704939376872507134379337377510826743132270562850160435297646675969929618991690766212275624258909420059780075490699128036286544991153702816308629991447026408919836796810895224282899818527966634566133416968514794863887679731784071690834932563829807537860626311127076654455313000561165135109729836256004345362827337984121571601278854215835191125447480787080598673153265704506575589113262806551166236981371124946627251209459015162728912982452941683189818435706667359191599045007846282472578667465754796471246793225061135646628022310638072599373950393344576783893138678282731567936716576911407803965620616113958846741515255810179413728581115138992340380235681805763557633860641937441235671358117669618635997559527457657390649536395502053207229076072645780859572646681123668213204072361803082287441534144935155016348957508676270623702666729538883912523424619066773687726801735512280265283403439317628950807156560211342077273042811983365521500760401035157112878450571958175314716886863590017292515568092220659723687042224140841235036017197152425080431286122048578498845514457535823110835594701229522865888825991929910502072342361998289654338252854146996097292601401814991312188684851546808723820985987586423926162038989302492184210617233615985974911996440620880111322759866113571609505093727295864374306101121211641237863254227109570656223373991307195482022532030435351009656576207026858781637010497733200892952401223578882141747699066541836908508809895224580184781013476349964997624723185010437897558930904621782708268362930867173819114959959919086518873651200127290544019515831556710753830356072901550334795258909468631421231468855007826013172397189933031150133297664191543422772163391939504165617174179645304775245241918756194016486856293680137148957985420491458577644375195432943393988337022352099215292905840966999794103396773481830365957520174471695330355327065197016427237005267047503452958678705942695679970780069620933518737545965114081577778917030686994949887568076887745667197258610718166806158584277533571412024035683538755213541420282185111371681826748845021332647243685406302383923138207091593981626465574692123581661498847180866327747202321328369076052641409260025760063678571559762528460609169019580015094469862788220931352125863578527702883465959145181306635776716497675016957965174701575804462887739647001445286652401064919382038366391378621786049150128977264992721341887329831881653600626407100981942946558581826957562189679976945289571485600244944887078501183104957829754737725412440822260908519843251139800839907163628277667803758297884831508406195940753501123235483052294512299774932973121563694440569132115687966137155034218130382438868855248953829448926198122642196693043106333028613818807161221675106996826135590042376067220208629017404979582241999868756169698711479344905772953615985340270415774613537324202006586967698832605051807962996028626045359566472275819389935213937866671539702106183907246635652415410477050477561819039927203854394549357143969792183701680250655125151560788108524405865746156439749659809841421574193581093913768624278086484647411637753731001249136719060118501451863600418169863160584122865646982626048439116252314678199772173825544211064442976996458953929139639929813152503844299466828228772329272318008511234565270673287545282760704745303257766141894147133902382257779375512846047736940347273482146556460166631197671130098798664296180066249304724885960642857267276026844939459270800183251460667455160476011790746015430109121546203358142496689030281177653183177885868859590663440127566974345430332985777544257710333326749029719196846060505702093613129812003099706649918490078948860749097738265783385994066968266581998750272149711393062931675132304675360667133960310365805204132200973016225023459383860315408546052891923067664670784835888038450994189394952792491493251059394151559506284471194373224010389930424153806598367172963081574234319891813936858874252655124241908989429326564407377045370765521231178735742031417696666294306260550272842064111285200529917356791819025659631097342881654637219854581249259120176554893030254345054667139629902278787618724781775107269926992133115644652816064308286352828684017867691521854648536320489328657006130259480244887644610273627722747545221019725591345950359772294469539698713742762053865319803870922811836281917983693102482175987143324261519625866988777005880500604063992361006180942496880401479012188554639039250990155728885479639343038573591705031571533092681978524887397072006606510792629910100273574332346341983619043530361849212008764504846802447878176687055839922078887023664258895839380917758773675520828524705168344243090134873073299194095546098319420821286652753328627186261810035308940680902015426747509422985244174201519300498682018074272608622931936224841537569923949894136339776611795519178873979565583934502271241333705698768235996725979894978648015965653183319242827222470577077479861505071726258488665031189273269857201685711209318099645372612647356731242728959548163730381910745612705629505495086937956857235428580867994876945756914126465382738736861454014197287612444796821129239334108509694080496441632489968921332220077384782351106746675710506154446725544319720199278812747344801545752343365279850067103703066033768654269805396393169833762740307749732448576115468823338686794670725210064897142269801257291661087071307837695527922510627773429205955166337705035691291493830356890741476681462091493457362427806957249937914881201760378492638064637197273582283404974943748599539862920331697251854774540970774578548756736743059418446617724165620675862339734208218225733355356068253598602345516993693375099035215157731166287689453120978017543867090858757965530976732942435177585431417202335717318750054203464060643175372250881882335751456842276189947303614995630119258495474724094429065102250721492270974897749430879380368451283993903841750182840862226573110170375370296953410484892420785091508255679197836636026322373309613594556200423034632483198633335299746007788498812916156937007896411614403161272733841544409853104884067413887931797868995351790273912670278521211490507047092581556254708868613607038535674699677436110824480320731651452280435454226190173474452402295150960002541876485998450415454145223455117580456040531394673506206367614050688115775395127567565081406371511910757804439965304704939368351331535425200655863166158840589789424977535435796050151187149698709370667284467124389313977712756114340416737524251514368165951500478997035190847512240765302729400384624018768504218825491523748533109547691356202714780305272707837866013120965067338607223361153993607614414752239522441757603317224370145655234334067026148347855666523654070811543139366279639578670430826698546001370330602207591232504870602275758659047577080352112272789737672568222717319084800462435908107251802216363778142268728857745980341426635489737232797169021181308406226062002167790969554249132160903203460750195528601570991366732431997604836374982625186758231256378039009400032240954218832447034569218152076790646277813878531712293065446325656021464763905003511227767561944651045312460958375914566733800513325015902363789827044877834744032468932736198342694715035370542341277241896311523464614778898359064205544658258889035877282425324974826356003332597049948201480093301831266356089916735300374942892149450480747990865052340018791594614444142747138981845433131930597888763581635122794793839438773153303014819513566421482053109001049693958780106218821629612396493041682967340760246287773109060420751193851256240001175066901070319722765307651282608637082398142421562517046595163093832638142352879147172640210314501543426884152915399641852754064798780591009689845012920262423651324293966671188118700358040626651681090010550614467989504610612822299408899132893714988000997159367797302527539610331771731037647245679995276865432573567490543020287765939728783367086760048450502362305984814130448012029525213111992712489037909502292519163380076856146607301360510757220046042871099124526950462452632735518508632173052268658728913993029082564573428497586435958896300424886284143684133804525199362454999986826498405910726967769686117516891079528397706187717871145609813546382975783674524236709237888232680057776713954926734667664228529065360812650879150352606315763426817784760321197072540702543619194223584369842523088921393781095413573174469799214047761002666567571130989528036505337576537210305599167190992003718136146210634398473744252973053955468270200240348458585879852226312872534776290792499083338239985096281583981211219917822984207233126270579747886197623943176209564111508210708993282376113289199011312340870564636441599095313587996272109554865153731860330159159175247992886105291179543997443805116124596427061621336067347075001449986387805586430436649701449658445467038192785839164712494525636695790080072376985165384104815674747075230582952872184490345973565822331058258187085207843988843690381756022566236373475030416590499686870845098120556491892171000373935058203130462166174766137372547240614933183968744946947327821208255032435587250415165681630160527855132368664366143496303384510683508789770745515542531226523214330890234217462423372038707819152934028728871189244077664288069732051108045715132962799775087632402668923949135106467210753896068703913271190218519006774147763399759424639423482377285379358894757448135192966189686248464048751389584806250214417342713153525477867188974019633023345695195016301375366964729430533026667915741140923905707887480039001771948008012243830009294815968511257332276847487517993152429678953560121245266299798525762254255250219392687754251719258150703816003077937508230806622229741006341313806326161837356807507724917231841798562553252993337175694211695186443889463540485809809023916860798654832626132330680628599194888954061884838372498319532024257387594149519114703265653519507299519724828578323940491471677751465547439356890688277011146006087598611154624248422523918472207309658176484601998175794730064538125600937906966181197883903322390152395794921756356489617121982480687627890796700297320535883725022807680583104054705329955257404107539075677477802815258809078589996557599673602617045210189945932844864998031828497741025306707478680289440836395423161458113541748442716903530863805842032520180927499438986609945722143311547051820200015594821386489446829542795465198893884685221270675777673981223235667926569636357375552559839373297360126362889756024193822730295000691275105811826922318575896354855851024419695189646449692645136303371389569357821828385847816174392399898365365419301134246614988890396214849427243526521115465886831256909978771531394355667160646746795795430418649154731738173706595494167679914863736137391635028209081510312572169745167291043262894788913229569087347644967785784782254163483508933569620663134399098417302659712784675839933635370156833546227956018502301403754836262216714730143883454028940513019117507844495263738812259634696675216858388061156038401093619960968739197628055329651105361513145088325974644920012955327698552058770943951096012197600046400829744922301848121556363347469777924116301676164287650234859271566924777589345434821103539301508209194551206679103981767332430153384949423570305137334393179827678378601785558236300777860347975314503175211800918961905317720484281715068121716748764399200181671410250216631115176382603189203583965023609025422985113412685117023187166746612660727823546534570525130542168675689765774547244876228170138259837628001298385505496445258622150782970557478065636237672704095601759092470953805146981251210562519044970007124779421620045393148038248497612489967344418519301775987699102630482615131657426451444549001819259192977713372025187555643813969569290029582679240260068671777687673335213477710193499268688362585709530847040347187391547437401992840081795576871495219312980167532055674318918272894802019927999876825287022632305659109841675994240441417736407465278787082329197811693485218463997857353363030282391888945946448707602189685961756450650076883376133451052354322663029190797552472956904072673597597065135243144702598266736939246370729678344536113614249658192461233520648941395860733681104815474510179118967806859463037697779364996927530742518899443477737311946595748003552897649764693018802279403702176577544193923240189678084826032923823813727160209865367244165984915458413845193520497643663973391916342350692276143190424236848900579898853409268460371877420034434287478758494543718084603393912528826629322714967451317512888551382829076886198830539875345770700467920130391646939006955217568499560325700091219669666858455266219823775838988864221043155435219493511150724848175212902416501191185768858319578869145057632953876506474637373462209006851450018326782635022846165669438123681450887366071765115484424949842305294587674812120852503518070271932261862192820488369163436562201727061681739119294426556232039265178296774705290673394490450821192958094695816411896063902724158378752468449519952512653872355840131804132704883127089217646227813412063912803594462221458519404707122692016572092244858752196539684318936431950773107463722126510538032968540622474013356925603075854756868969505836770316377357193573622095125088292385887495902008437455912198146710390811707700403214435217457169683007384742552834408961860584330973922512119781543913951139139036112516915489480628923989063044855922082287170765737950979248091152149128732207071104156364000917111179598011465101870155334126279397666558362695811431957117863463199718026730785445865496730497760309749316720799615241937999712420414494672891615703308522860490609562063336422897755837406549708106542532875927867732427977338988635746713701264261714684769920350966867189809837052582379482657175309634546834003697826998053605763495019344506918721670119532040945498419746852391224829701460497218362423230615452808964708710599329971217294150833526439004234302443821836435399352003130542326915338453585967571317908444613323333799828321395083257393595242224264819429879873987141211558556434407072181181596270741917914391629038712850893180849110633759589112130788892923058295336141485077083490558571785007224877121481438119821614485888982863179345247405143246993096262153850564864458469262289758509267768402417385795655281349266480364249612025874205534321599176487760081777814007665879169558712104700770674611291599033028947902992275612295344037790248333599937477219162269735762589994717053863153718659358459384648774646377610800738978614728323972514243426260676147341072342710769872892593074471534009262708553014065326942667741672069102104734784814676337606476635206458802185080499923970100952025214698240709353846821764915506545272791552430727409894867298914378820352641031557932754316811373852131857183649350027031872461271026644836097838689129577708948187913115925230228219389093428517637609254630222024202315983450774808097344890414710132429724069147213716718600078159139147408109722367932019973963658581439002202238078417996558524265424574967756281689244013096056941754629574413159965881983609585696246745385318588447956700450053072580768327734617217150588866565927718544482127732564996840954397791713280337332918613887148195371607611999271644703046439930731992410567484006967206482940171350348739415963098466998549750478409997462780040052552769332560631327072622705473241655374246162552801438198353960294244939483827086897357948770063506310219668938111528658326106849013115065615082496216308177382010291466261369365317038657164887080263641817555927965338059745134335150155174675601168599065405094852426382676754252986086549158819732771970848707967910019430134491099905912809898488983170943558042202909320190774875685646672639059188351528295438402057514975933487005129636199433063727858840171983643922649029842128827785639102701617892550385275189623116699789251439062801299811973947558731855578071063617232994750994639416119278887323833433019687956750315352929038186450235593146922747818144406692859700235461898844323723932302525592522468850667586536825081638741353614239504640739800329162392668195235342121165093807863745657096817950417828366430281502253658355418268863169940626470116373964790996335197176146937010520913958204828414759521260239439172233679746633302529358178846448897339319293462701489818081553456720644707616642976009974079271129156401485571053494246316204888390146057558215306074968220285718473663675308215684869501583234302801907993940080145263489731641330565068729329934933595496689044439264742126362027335434262167643078425747731941967134070571092858430712907458621096120378211079772488604182958850398221814100355080288469926224440541337687431606377529666365791037364475834674315475323883017579721142585425159194816824079271052697297199106675911029573512558106652957766034813991816950932199454301532498177573621579182931268176822610921646145908668186121108417016656748880957813071894580821514408550323290090826673195836580537811322635154430275511280590819947636341716876362443222316630456768076212851313283880316415981716852147035047935203026014342369414291489471859359086557919518723810048778676725562640049347560126876412063871042959762355404239791089851557779920533510206686581614730092073754145620473782056724971202657865124489252623813700668773674511929207285304659057918424942681257474932438722633260751807432886976743172306288377691276374748534986717485181270948154861209505911350030436773657487139966874471558850959246104415647265964928158642289952394273792366400543193096627810006258723755388888925984376096735126889798943614696258490237631962463837185284637137357423025359628023790433222933184396172819099536872024808776213242295650441771767591090532073872876848196626236633030857879865064952232228084049191485857506824320602451697577037364323030662673021161286071877518942796179007936185642198230119458733854716490407496670643931343169824761343660807463976462932060028566356739024734039212343441367226601140669432886717201170109801149115778633110475421247102532035261836331390234987622430583712541059544937074237780434510661254773310523486328571666320231185849557775742775051352257947662504802779188970152477844635387673407546447327668019285780267602447075630837656070637410521220758710236433389659369338912603564388891171766226932717152126182420396103513727892246441615060233527199733159595284294707512560969452693742180416136636434443264487014971846323476339580810115469444740512914601729362211330230208108584818052459812926997210375764586543629137143493316794713057871120814853146318462168888937291381580549740676593443959812722294441741596056433377457667490957909335347590972838776015854877173157506257993553650055875655432858787233655873999908424025070594786720686443199773984884107075863182670459873398096564473268603282838143886603323675682822950084425370093063505776717514781432198345109775446956862732069995185537300584560573551353482280279527828950139080304293572950596077947051171743247191865604404543049888936263830415390092174851760322170304096330803851641462737502784878803523782533054772766241151601614441321519071219951638538960525658135835261990783625206126009918916865998360534590914848192644295491567810173203637362232530051574204637324209440289764909952926484327182476495291526462832401046795434649328509030625633423807442623079266360550417591727611100945105124810767838525705045874700188955479353258313756604276533838174293772852735372350159732311927124865516192454711696653261134483456407436982621401474357793555433682234913475926334873514775861554470530211171857647243592647849544689620261893109211475031458180072254512544511256030712996806842982485595778019717771811952972328986450348357679061495324685543751209742032244405717968265374490995858578450500385944121166061321823992368961212439622930815409280569598562953464689802274750438579249861799949331321716648452329563546479245450714902691587310363963715343637792160310861270673020166555715395485068845938884139805044969585381446636665229439776900566245141313377033627372264063654354145928276134689430387718148646003522231489879467027691988264994619856546966205708931486819732475335733107809961876655837215748211211580185193957341987898049445490634173418330715523190819294041771619338743427021812629510023850168430810948256977490478069156795640771278615424191937208370921721799548985846739312867580833707958459282194044332632623097271704162358535801717047269775918154351900443728540213319550867658119785270337726517222891346540604162478353352304233250378561132823911125916662755195589998752682657344956624645601335234799892559115278399257108782466588934282846845812179108081031333751098601162243303104082215569120239994290514345325890817055865125914150647495449059933120822069624250154359393239315591253805921583054988808181451605431502821217076552698711760113500047681870357901475751750151465164062397549148740198714893260248133421859194208472764751962429128412175556265917120025156294521470973852668336726587053189164906774345485389378074598753665643208054989896424098618489949324678402190874623411066821171079849677088806930622384938533691328064010393180763635716187909943519151401688447575933186109433016133130026534693930425298813116496946201785401961099247771037436390899481103814105469895123834797309221470992697016851564188936326401448091989555900212573624010273962893165565996486157369481714438038916825253991211698134474680293998419021200722737352727033592087446637914322905304359323605697167255188736798552287617396956004271694565777729379213125461368252882888204402864996958570379578097788415292008209904060489579582907749951183907898557335729826704980220818691483865222083770680102920138863861201323286297615328376925371577050500779435282808564681159830452618593280526544860695616761817972217378026336054027636467700264384993701871428028973743785365451972260325997221787582491222986711339732746970050757974948225252478133924371207902186097481493307569795707439369859400987202529164768935855215635762376221023222082438978633256889047742297281078587781049677381479771653746462146262351260286927919982238736716131741510878671833940989529878910699403687662322466644729918034271213461742224406242937297375022650787190011396150235505619065094913162677589318599518533531612550732328684880651738096622058210639426085761058275447850430780921641344759934388372822311180499509091738011943129762493321833543576129134034245106838449090561181439934624718305269607843601690116380892128255935723154128262204172612631318337595037354941471000065173934844813743988004552168340537437296071244191918702088743559892074485717978239062403752489768688279740443768331386960602979863387303515334853576419311271312699124284823559489474479992638849628953879340206351720079331067267003256159026370981990459784633644887063511641024235328529912790478994597224082864851922557957356323437061649238253265383334278659355288634643579997021360703503728743841890411706555028116793406447590141503739966453750022993861758336358438369819682606556951231650227903776941884863778460062995227802340708511893678565971167769513021179113185753087821184197222703769181292151602245871485549396035465913157857893683033658893495884584979121714909687807920470146919941954613075461297219157135646411142459516406394001453512837938596404676819018086006413400678330973443993320530167944787238363647434951427270053028478738579242880079241793933696222320826715900507046891467687228217084345136233921143159772384952307397343259728449645746889645571422284282118097066543181474019569980764492254490376315388152171898207730230226853293246114227905293155460550753134452053841034166595759649753238820480795755839046398910804718021666209126131807773579328446424761490964846786708067126384126612707413163053362233656171692141885368171293509666060650555792365048022084766745243914594827293301395642599817469965511229206800977189150885227830665603879842109044794213975299348015794847501619636994171428518633743831091666963861275663329286649289141350474363493407488565075063270511321625144610536955221393529514439490666082994291853033714372273332314002986921952555734017851817093661343770110586266579455717712792450596395588104933684755528264183196541196256322471049121365790729255071073940111101187244339244930244361376104793099841399615501604469098395804617914333727632890880952176134970249141411344868781129267583049957981788684911369975025714320338086605746850270247307058006043748028566209442315940251160638597661534673097905014090378723116603427245668592136047678035607713714380672805575351079746084424990149159914015379617390561907749412281978257562564925366144107237812558958245587139816909463476267515158786909753338937210034734734222693269562503667015306179252041679389926708326124707194938869794991577969971757668238797263407229493629534399078616826292602988437457340385446758749593260545335449560078377155350991593200574652642608313423250914910196616498358611721315206541484657930546298287776642502751773919113867215765513583890568724431343595178045575037379413469825274238272826671164597919629608047868174523586912446749825475784951669571373861465969734635223253599524370638313489518728902230942970620007151929639845297791928089916140246798798567252636909402425224834702227571619507227019266109954807323629064409339712977411723902727449848694762603990245860199806947879929563562151624998369833384915332452852618392508336837308713693303933707125848842419702859595323230260164116198088384771238048093250839034592962439724901451473877298355251712395392781040386663328081757346978839639987150586990871622687424487272055723761498507848271556989842313668747185742727535035109832099778246523932830388794773798820342985542667279887057210856881096193906916436648708803768195029221644096564554225816976760902024154382263042352642526948675940972351346313088647387427679889796116989249911485473816932971577096921627074081222629777777253041598335728065588586634619424645345905616231528952023131014579966819176526843302868438580958316343735811657989590689952442848423499322678359080198303020940983752894577075059386379622650862987440587575056732659522711842583073910627889249148612876267855952260046696264703879937976538049096639625106121906162777847846836813764727358152576612652053472475437364107184012378593288529844438962555005990897391426208868588663299885518707148834234364300347297497420655133292226412233960413840956269618848115476591272483312812780804802709146423406928730362984928219899387930119213404892234868639157561493957020813201312671914942861718741919015621380320389997676024987344344461856072595869825070248300328274783607972946524555857210961394889739683102610181440825600150047124031920134220699377759777113438624182606741231765197779943124433320604408031406875230469884293351327921934008771538985618354550716048405635351395698890901090567389233495934665116481011651618717449806697083504548646340229342839972035524672559073081789537206047930990531257714840870011829475893732266541275675591091059071985663281297045115022397053230746631163966450043847425717210736455675749319702892860976831371517861235991260728009867745351544110871775330574901868103005070241815538265203302715090618087597700664897660199745278082218979200267641004488261937698875984960674409027855539348173405460585440638194099744827381468753641014521035500032899063736366478151076361059997979718299786023954842867731342814623571041879887986124663704748663318420152070923565569764577702613304584290498499444106324935826090833772761155736754921893121954476203669722734735388482789214693704310254460281466727042101594812892064899499634252301264353151033222375189520096314620517575762501877796084076713976466425462762356227650654434998560166386252561233234800187152412944054236090616394027965757645803716599139423311318939743622819386746528834270993469463619718951507290551971584249848080047922227368979211187247770071927127551048491001804931399650268075728070029115967570836869578187396185560198314666787713353824517900910720545982083571503818823791105419946420217372391650751150713278237564126760908341735777865668297970638941711649440266383258037688954506130666947281151186098650468862367822361199772759297324270028972776748395423124599301712792444155696845350687964742176879836981982791888094219677599281611651087527946608927125353644210156940704834342984460505622657917778514924763514254929956151801531317927141716934676018627382772579523033489056598367217908222002798216944710030585741652933406337553041196262292913544360977466091315484972368009291111092544004917949200097465068813290054148775675368790332061373152051798888959238641710031255088151129599108581003855938766390567863020440796510308185275675339642031623188975200590814357750368053646470816520583157104794966424685570057729402741067620317379599473890232803328224320583339328572329075944442230583988194140950372455911651826569657495936031309304388659510093489865878326585810398033196412933551654213361041081239124852654564791580548458191668647101039930296321202252639823294025984932559415871715944242096706628919242386981745149331240987600665835311512649749868984892071713027019842806365623343737417722198181373801031869006701517195614814116764576836816635428469605298013076023111887193571997359373198262461382145284046052457132891408640715574349239732143243069134224128585132073696387546711592486166715809585499377734621454573215065030448146588959011037498458162236872466444385976513353478005374836438478666241004221181834819450411276262180021989995816179072111385768638028402257640388588851417062864297995397391363451506811313581298673983984337998406643395687344777879499112581073442654667865514694011148077665781940176428833255391839338225247977413849468794349499963385294410879467404479858645190062895821799226817554199238898500550463298573919796443481874384173129880022699903962410856318841113568711092366311845682658183604836712327773436728598647800725795957868972043138259397979149563623855982361045853807670461879556185694546516748557848625511511762258892604091388842394272663772531747487290156891167699469165367880095538126198021333773777555789178855798842869597178267270223539748995174006563189108742376514450185604136233110639142897743044997524080042356390218362827052516466924306417686013748692162775219091406246471748817611605916370670048730091454661465340558016797814492434262922467596037331659112423908452860989389135453910101786065962104428008056254509879739110400263623454311208479635774369404922624848119001982710269502587016088898631073057189550142440439599413534376287678282184251573231171581935205308176933379933435947090739143465586322320201113172500253088061355361159689649881975463374457302673815995592060344343306661468042815478858911541355424403429123894074928065365135568404378624620646979519674709195288011930090893194984099515863389250488843576261179875522093360748319496152914371617192225056759397359141561527740047570943460274748334055977389125432791344827575509553061405697900545041794932190216662126500607195891084125482813961609246154312561024331022077030146005044481100967436163918659566429739727003294300008932161902011804513586726964378208376822233437588924843716392806426603217950019664810915975339937641532302129025069982831711136583936775712258765363119014103111183597543477904747823182189346395765461278034885064832514180158132385582308444707465737170148386570344604690148426053808359419933952292425126660956118597363998086040145233032903422224206480504496332027556283882773261863807296012152484232129156050985176246569805191156644339706472145575552827883780327357071382673546741990319116883301789931571557005256951786128550926784968003965787590878095127634123416546491495024476755691895491571606338707639833513227551742798994321340529330901150919883312943977928729991417770577392831863525316481147013351827409550701138750982799660568419647733680875688640028967169072050587594053225585933942387095218974582461833493934293889524893262072903408825075659645277508629932443259587682105070783132187185320800892483876586222399388031041905507699027426433320459386300226296327190329506748697334960167468507848347462920401391240901518767919946936412142444610970340447840223417642234906520781956875777483821858784196065973975346417632081276992143676866402623329563378905442073722871687746536633547928272475237313725636224950494066335264754522523814750096236886338475110565983256284134766588846750914551084687039822902913918225880785595851552291277815425418097385401682241668286482544067809761090859480278885156039864796893813931406091141636659825588080275478306283350037367275860206875382559296280835126296739971290359290419509089990207903191158282731775742521220282030858234750326355011812124339062274367779927032142481372601529625154973338674061460639155232031399708979349217584432596525438611469779787196907922814313434172353817174329597881833746758055897649434204802641210411596491749110029829963391800690621633038236614362517229041762096341422278771951610526341637447571236855053446855764334488792235764405394468317199092719101547579896024114512482212316011269508447811726640368685143405568552427930997305830452910338982647329766060632133014146194583799745135352611290182476899501295444560527596243389042533214507207248718704201881258163023058234415914809093279592820374734974692576606390961757552917186842336064713371900621487904359452013027392155811297787040555786762169929791528908558688593841046418903600228625839610959122806912077034300622757902507930157638701708825493232760481044975643076557103640437177387536027170645856457401690295079356747573026853863351615695130965707672344995453692755832854510412338187828896144573227651115124490988879905675431580744661863751922572215586304254257994012110316956801368310416077359558421698623459233077397106471045803038391022309821341128736359817133247603609317701868076642905815049169377905982647346155280728115987803751210820629053411447503760265351047749373882350648042243238685677733869358607780416953967794314768097838461199474207663400167600469011093576545235805501680119322816172954264301986505020255953049676591469881854138735343538624332759884726439716702018096526093539407630910583759920399847199339878388220980016042165055584128197716070901190236342617473842911662446880728038453304083149208697956987460913108308800847841159774670879488990108166557729289714476008858001747227096446829416205627102855922006940411475678062957820492862047781208340728736221338787996315800843543075676492105970005465788921018311409993733156149706514499800873542455377928669838523489987513003341301294178008319046930860495997240301373721438709089746030714242843403045198176399991805657706228743864364761437496848945182716016558359863348848791370151214660874711596678230883117160245869448142312179077801859507412662243207918227976903950156055554867434851859217426269466583151504628349737190978180947759156769053019733456717851959394694742692230697992198793057572114224235568922212838654678999220274865970384348696844812205317745210843529417658937709525871689220222922103914775125045382859428272735284357053663915513414860639077571949243718457439196339051198131673730246611578229688683186808127452973962941684867157790741305744640825277753764075096385427887277766223025599577874881288111789301592317531188907080957014007575192071016335465144142607191441914255568419011915645308146366087363326360090917084207637798761595031344686041370916443745313231356398634266465031227219461975017964435618600806683038231934651103723535148322633426635711289311975256931176716974660697285142691666914632060847295190348807595602352026565261960583471852204983902047109467375387060600311544832421324698085140849683910126148316902037555543049286965931837351910952282953428532910890507326384422180165372475018550261427524095996518363749346482103153640985399203284121794170142725975336198567747317508975101725425358614861506833039910455126798641705900211576954739338693009902562748028696814736634562202941325058952110233497743077366636517998112555484710786655678850336205012438901481927198086599629518896771960883094652274783492645007878897684274756273425275339211228995592500425824529882404432639975413748442567545368478223370531155337479139623733975520416186015378461625199242378202522139957740020963163345737282524515419121714930485072550137789936689592326650059173960504997068374641025618915902967938163210934736352939569485940178403148996347270973672008324974537754843298067526094261046823587998461014961703334047109342704017557388040801714489198101623327434029242032931960307523487176882076719358097812188237174766518348724051012116080955192141202733512257264180337887225936525555826511677571658062419257232352431493548431786512765918362172933094599126982903048016827620350216955495828145667675297956016092205172889881809822846083582906876918831532099720014134467553168011522975238067907182418862856637120117065170810846478298402598696831563059482412062363545669698311137868805215173804320288271978862501904630106785027934543849030819524703998186448580663457887079547980658590951032738629092973255491184273078851786718254708942087862030699757070583667476760596569506612576004692718737651874600232971508526126417007367456249270271266471715277094979778583019293543482688150430593825824081499052941612250996997857337665282652682982053550351316087521380638484851942258578461473632531307204017839625688973455095275809018429209822971143765073149081767485824127048491962690766862501008156515599164859058587900178234770167751026786424046553723692566818794654840445661316416010315169172941691844865369550891554794344090057566007140841523981146155198120490603782632504238831145269591755281644877704741521115999331701645869554026791117042943870752512027788389610280964952797800653231211581344050986969128530175796097504192355124397909436698791111842658786860325918289498092966402375188244280132881202433105026832984721357153816571645143170193941755006964824868482105177688612385032767247867666762348536870414536889328780734140413975164924398821470753984107755648431262490769193053734736309321659531969897166719248745007440167985500261311336364308535610994257756749858222579844223283763859245413991704455184658905841521549602778636403709751976026019487405878287719667729316106610641209851785063077718132314460497447457646589580095545731296005807085969483443602485235574268458293416864545885792241687129322600561355768612174194777251269882128426642074544583176329517883412197762116239005580201066170570542108848545158142618636232487580649590693591005723032892553848714593889475707518159931035488100811509760989807349881738221781833359030508082043246538987271041428185996285794654160151246988639600426358353969707496557063844725781908996444177224500094482872527023707971660448637266729382668774937362309842040094722855351602365271901025948369793645255593713556045791920542173099964547378937068897209616478301095318119661361749213054869847312656315548929248261540379548995659192383919788128321411958443533175940884157364712192972994525127684423391186936687621548156034189679144394355653393120947247971977944845594995997549016810344355407198847311805705082232117149182649915557424288061373918872299825901308389457375659321800872834486254493708831408500871824220834366869612515597924310698315228912881902035330387106008432029436463519634121735063978841538363569343715696788170474760527712710120750427255105669839154392236397004652164720090555634703788441238968790192060735191649037530014105570644220574377266050771287889587279834038420245855554106646208892442797614389247659018812744729500418811227615295308163696541047139347899824827876030273047298466801525540553686163364694130545001104916267096467298324532847959360438363661993956087933448029981395886850723923037708849208459499769870613233168525335500939880571765520021728664294134024622811641319283484296503381739014268367724665415005958583180550349266761669075071923180695578562580163734240850225763260540165508965252234890081135561895787064298039349039923538609220947788490008256344751600912560963489667520320791111194667029845368733105277406286951164745363655732391594540067922804333555381081677816507021512252423633349070816618390089897774467991345990160579592895241513488341183165608827551505482195258727256625934947607280050483946321191298591689900662742669241805914937499049736082350361572206682522710536677935946377309133756236679868160914691297083303068705157962993709321311276824611567081826865269923385584491750625527943268442881231978730353388190210327685072891159561317752044840847125725368032776109481150791380382055236966894372712513927423822233870435392956041294156738328686572993064157339239059427852683698244146835289658902278894744314996296289252615710836221330096478016563393489526942418421164602113101697094385243072425776752713108785114003514106186745861077916967480410480998658154592191883024052820857764126392940057977644213176450014074070755164079689869424497057391666255914037229389967270836424327413945475701434659172421256197198717190404773144455638842420928205935109547844888093927158390896022352715564644591731779678895394367767488317404178064093416156749732781187925929303733539002625921875845838642012125599923135869525705345937029565876153189258304773095758231031525053651353030938354460951717104906142549008418047710032582899275250821271141312001912147642015603829948547056081202370182357584112744293229833377853167008504456124619872551757428859419851673502305197409764227911389051354412588720012201099142471132075455836967523782727760372668554155368043519632249183836723052884412186872043909634981523017326163815399552921125619104461941428681524373896334171994935976012379688089426488134652133794066973858319344947021837804591201706714475528226004804015015121362195195962628206037658877235114990602710250917464100070920097210035045162729503732263899975129075544395859228472057213284150048684014298524629633185956130009209513399307339926239706244670972024856102590703854643615537345023898038875548648196202933890774036810744869593626988005275492451575665000619848665300569521337040531222646147636939581805727878437689775982129664415955088331960216901570403400208729873085350758362394731602472377237088457096187189957749866914508012832824748286928850574538030279578580913125163651297030001088473372105325662216118577836893333589201136316454114400086744984589483741772000562945879889367372501140549511344643087928140634419207001836485783480743345792324749605250584767441648363290571497297753097677013634526944631228379183100925319173629749078247044335143534135340912002019007185694940122622391679512791821763498554703250806811795564468387210953514149609411839760990637236949849666770252048013073602094371492520053621610386377227337127952854389273906893167554199362501561372417860591757416158546337432085093803466395835686638113122476986363182772123468326211396985801383057436004455190387612545627835141527104504637087984435107037315365052079853777127045575570437562881808484340516908338651220644485978864848805139485873738837471199161308697259130708412080280875308842032718644791829014752479537368094855872102701069573153636901259744908394972584434830781337443596872868354454465785553828301240195802796680330596331436263366790717079503368645125005302895679829225753361913295049724630455834502787589658319294670323668739771360335904406669464679631946970427679659170695605909383382975717053974495262745837333281162117195415700785109544566010419725610481859910660538709460080501028282602679161811360214765038167519907831478634032480998667438077911405150280759535540345451004181128335070407796837342877724723540867899900466812435590293838224560719859699655328321517218614683423421226936507262870607724995838202858732283853761960671935379622865013276293028113173581982810413842353127784744315294681804169707233384897295525306914868805491353685674711434188820908313895541612615906595458433215844853160520647764824164658687850239477067568403477867762512521971322755396901446496005789169464373237799297085006089914877587439601226342350856560036106383126194172920161097333824144913931241747067676117561772282973794102772564725037468313773499148063224527725300850068082135929764961815915536003036974072241398680825897105500012339633756954026040115108932644390012188438423078761202749074324129733411856905451709896506798758629645635863055399444031074289139370458551177741117511611630276974549729281104750199879621576288771779058805030832047788726997277783944027078608770041452803098596268966055250713474402291439059961462179324448804641966166597417826925764144432932997476449748220318826576622858535210653131087491000271955130236993198624131872948736605771262603318626485457455447433292118198646815415846018116707127528081396750743767359754152096874342745332088807928327213415893573511802107248859198795928790609931870925755034986914361074757085098536041463319183911422239586135236127653448573111923699159256929432892049244704855305436349348727758577400604623112680713791148621793990089269807966653594045257832568159540800648264562743436171015636147132539479199515234683076029916043041465628219804574340403379405202271241146942459538209142909278352663671016464111466710260509094232272162220118047208336200496390249333144600375728836258566662680993256327595258353966713969689734893450737162387136518697302341515936926823136429508280015048578726487377804326828946202437185875469519423856440184622362430378682017036695362856997252409732307121596214205084196446273077423210710255598806421507538645317907042487270131874261257652851949910541925512532894528281733081840049941292549533770816067080682847748212057413798801242508107036051256321571378486405871175196832980750824714283959635987466400354227080727975183922674966578228456158522946938430085859478624756796346502055147041754914579214859059382368272999271894019805008009949239380260841039582106321232927743784671155931392165794143135099738229713154037051205426356586245372760169941666766522433565864357647751542901331536448630321923378018286650316334001123705183955029155524810921004653770455802402845616046056516478547266272667265899782132343921393591055362585995844700674633548919559758713212604511352688028383770725011123067803191093063855751209116778609801823067190923260624856338430145828093009048702617835290753230397446650424459376039024650276351469762629347045751013863240834219257848243677807608307310584811893988557848912088934505625888262365012908660879943364832334384360146700689129283746977734530999573790792004263747767208244829852246813010372549321474092354465016867218959576241065182249844680365794467243355771623168321763006311160436619280649864379532725039121626389106263981418684011595887078338706264131577643389739839928395065797392290380090139430374106174189160098761915947213013555866412994831807073877631485868951556981348811922917192801149343292688103123605233161490561016821821545941618010264136475921738832083316833958500469901898451944018015075474645313480517866255499437727996167236408718195107266159779075876551915311083364326467397322711708149330712589123213429452583184517617896420919078495997336484640293733399013809959009080006845318420479514946623169662579538769522195778549342895606833602025055326424383752743031790613322101121959839206019367089391754488108833250086367351649343863649127652572555037883058195455191086329079871306337358747784086560137778853476705962142159298758503758236238254760115668078204603754443726416343488211183763899759398451416220824509372110264826881960552818636667304771788363724091663233185650041194377015602899180682476744936787517826448505572192678915086251563382066676902760822113498401385095150581596572436221825690778778445993934085240073470731826894272044969223620203776610382049005222411091026083239686924409380364297908214811602948590681819418680648085852969031734504971118014568761647388345267576538158792643441854839409050785643821155350945966975772393574384973617229724945841767180375329700794870737163683137024196153797218464965273018161427222168185236157007013347017769748632178535263016704929554491192605120450011501526590047486504503861432111816595800971643218008719463289650226987935071146851854123998152720702962487720491035914920125972093852488962943301267348890977549123236937022006327004906862198681228384515891248657786665878518646620383793023236594301001959415191086410498739899192274823333952667934194674711871081668474480065466217003860420385200183743129086492062743338641363890262278018926964246916067186874158534995675659823828505838769413523787937877667690427127558102277657117501008321490560218354083342901373244832679755183123401474667000898792753682660484399868748612013176436229746083426278171694807498623881953716369231099842009898621196212473742591720634308479280434585018454920493398470707702734750722386006135782028413803819363169438368626879721803589900864149093657029944203377063736244277984888476883026522694349723965547450395362474016213059289771160363473682465975329721444698247939070547158972618530642753241627029826112288525273269961229400309626468758236254930012024273653881302114637651345970491290689204438560978444731717261760405011581893212434433614778569478001757204218574442938647805840112686098449558733285275409779421292771420184386103641500434464902194608159661444416803916008733599429432790606759194812869383679227529917454283495388964272447283150102762383917506242998639970851799131707300281873403316279483460149521222353635281540830506967775855953321224348974701245584146775268176226178381377915978252680190237698327731142080458672378776033122259796800691922718993802622633980350387251260230920006600451103755919257553287242266818903463878699272439370715935278364441290627826045662545952385985686136671963807413694008624743028154458656165585228258845767414967508231099265766975184089691053996423159890752820990883984916932732080225842293788381549213356370476062308675354239451200328354907195412253185297884964497194461619344023034107412758091614013854102592645981807938546452051560819481075389652119722914575577887522683046759390318467592214615928072104756685745528304863419507284430960529284723820277668452282873897451065820157464663215200734242805177505615504076746329289973394479497636862408202452626572848423817512645306224653421934306574610749428186583043431747125491437480501819918084793527991401748568109530790523221782313121680200086338211788246322731454518694275945288387325307391705872254316100690579852815241941072101436364867616119448239402843350421817875161982171236126334697237037454475526024751516147380635126303590524082217362712363723991289064960597938394873031135615028360124546296697956773980796449002906636591551792607348305131884221559601391486254807772965516800087425372331387406736736989648513778889270144581009983432991211490605727590423219464197023841466046242337073831416847751237976224991878975686306791633094994878457521306171768554614428720632662672706126769484312851593378641429129267451920310024587352348013960109953061384524350361172481068262507128060670417720643699017943299213141311458675109914443078981689781382446160897534465201977327375381011541742562378453466677165654674755829160026422065947235598762620617468652310266092037535295139430438489502393615149727446421725824481190766137401788929838172012781381510369053667423712654770628509079450423351731310889373100559948201771195248608811355775602660720939564390385881681818244392513623244540731606548330208324939814496920353411500110174211884395278831130304382958389153420343331700959609284245771068253975902620194692221721945037667183521548732877348909049351054928770062301668998000845155402193872995394403214840144634345428514870975446573935264822115519320366587279916801709075154116393104174851509999163340198328154021587447057739590831089681518965618288720422226415682325532472288893991171185013836632303833247748844088183843676545596666962070270034676753267674135792515183296809553789109852413222648857630930690369589140447145929144045048190574900403169514962923057949992035516368886445345522214254258723417182113538618985511727697598871288417716348533793143052565420847749393580131145283767105482622697238817598585251080335302231868663031266169758596776004240557727571093951260389783341179501751762725105234489311421832751453327974320507405284320406117162453371439180780353678378461310838414447607410326718701505877984365068059760759914935605467777222140601562913333263252597591737935879084035477691595765019099843402553694968488812569847896156332834668346949610118205502975635993329733988836961747803792976211628433545625080175681107902158161623234633141199299126808353208433156308649165350811832287289642468046537031164594128354851092502018827843705425904974259210845776885411462800435375448294700196782791334410019251353580575235962841322860665674824804652212388558614289480032803206137387687709169346683968929338966138849301612764840958531572927278920320446496242512603949242495637293099287446724714107104617159640830264894529342233493001187105084623194673427352557941603976730594773781723084784205520920995755977322024092770142538051974958889893613274067898886026514971750655704230995290780528463957497143774395585588024163203329460800289770605321316573899467736391360339061057354419245649790262510438169828648571028351010148229204180014633190336882573952239647530623892044461598025012688117994581775334470654385682821692328053378264476060767624535611955296017497905542743109522733823377113935558423476087323854906455453696580229388219593404712450210288720331749779308244079471284009971479173995646232011635381621183801519897553431499501273920178612587757120283481464372198586444617555121865714737064287315584350985772160671600950077639230184769136005656852795796246837926734686250623753661011224352430363920507587715513531872611589503812102374793596398057788570739076252115044015402121580462219485331968554675322585278941456889832422798135150799502060662188040996497636139366273347230652385184446180141583564140548253011786816218542306501626163154910992459065326092878635573933552316167181435355844451571348806676277085501457558888433791513363818454227017780698862370762220764885676779216061881498908009484479390754967622233761537683754485975570718882076797714802353219115894524089781364959208900471166441175662326330983356976448664039534815580447352650518813246500354170485500580653477648751680434218671834686434679829936824403783130307084501825789831904686497869906290428718050029690151503768052163146579220665189697599110632135319141768915503524216112156818582085228992796258164359557779136929810289037997503915432628845038825586282318347508833210467061811914240229883240624783807944382651144237599253863589575362668286694095856642535419170755749818196400458949349620471777879007649540409294591205005220309565709058766784075701639936968373953303560542023460669311379192604053223934695610703789298255459169190902861176297834146437749169606552701919966464109224217878743062053758349345935295822698470617828191299059513082702732300119594539847337939604936136986726261766060758394578487863679503193418586490811116731460923228055373629857507820935666590378177465568563186963433725017107122254115106754517880851256819883980251691279630940321404400057917682559241429211647465191467252013162789105425612181839606832466487687580228070784539663442269415319326473772065404899195443588127701504466784035109864021931490964039829818208147232409267413892543378037255602657002827892270779944152536169678855104216400751548293481151242360543051069522362511594100084696118138832205674894104044387017639543077238219898261626892948255876020425668273546801523676440900163610759185558386226252466675835418691725074609991122259156100302180722823885183020150544470826104008365652808032714520512076013362633794200779979652122512487559906015918754884437330669303781063369505945897187251752182093287188574468814261788518736950496267060372150605229725747872423434899735247854122878003981094592000118334645105380018183348753425980387002067077253944851005181901061590959234872840902304482733755958399694371838934138675331732465086321198483491656585468742160443691841534822705289920086414844494569696600335735118136519256558156640409516855690664947806510640156562341520181620131861369821714142700174839213302838384832784205013845205454061359178836156514748707648528900146846031178035166831374554158676647515056732309697149321352705907743822121655719347023079261610245706897594989345802189046568002291580641422228045126599641262416826872721993933062766544016117163000438350534563171808359887225386148353900903529042961619406949788021197528697008734605307692054902279804190060804661632884110370890396621545077534797485083793512427577706190009480009378225357093228544272934137958190608030881926091701473170892287613330224105517032559636020789951248837340702877845818570970897364223999346407813788937710167358479920418653868712836766395634988593480529455782064817634488858161613945145565450852130612273525764343298023725350898679183902059262910124281825036417569119364661686816960173623260923264456895129317040491248603109106386725802189951394961053241011156851520580758073559605544367149917434920431420227909967222358161951871721772990141760515613260113535909144207527050967112979019728779560854648147554001431890263121300145363208683363455670934767869221411722257799172697225911904647611680162331130963298920197839168482714802196844266458939037241938353001060300721418866946277241989136688668225270448112368497907818920937513342743222620481073584390551494240103165458705306337668476612870370590241250623525949104088119379469841613606687074257673373020844857623079484850413186261827928753359892672030481352019673641545177583780865665042179062531263682530995297037949388078673446278568327589233207585335887325182256940191509237137731120048562475025285994370668696853232526911925448269358992907014672204563049463540628183153366522712891708568486356429511031494451775492240612732149689487793002202739331609134517915591289194200312554078878385034615378578527745729879810439962509180354838813440722903297159828554158226635974364347463033487325950867197745665616599763359311545222140934040846906742761649882999667837507909044476767356056774336906944956695177199666832917882730109605591474867119404567272254029031342972678230151245364922220073060309127038442037460468771597607398480432577088755364725090810200966217918862324923082647164918370500348763891097910882487416055715540831907665264626065460005924582003996269530927140986985228049082862335664626399336789437389749358424466734210636867139192712321012686182401609299150151255359262697032641312742743554931499136612817047640792096664355826489991330593814037150261427708084653231659549629313553831650984672697559517957933980226867384954662266568789029823603621917944160237680459353911774547560751308503065970962064130648858053268660203986545310556083702751303316056887908397913330462347984689759874781803727323154608170893551879612342980783639118549708411926789204424789919043221929056742806286983920381515705863657174943694694690911018193672880077865111908389183075820545774614957686778406167669193371660463219315401909117638918816167134124386216583182328133228761973576621263475656466412522678732185656007652865426898420827382362266442401997368126651319239732717029958434782235400983083796659042182359910343515142950832479976419472106498867089437219950580951591245860534832283141946638013037439406565576359900258210006465805549418174096909126154133368888632271950217107565799503057674709182841413856684472400594498153233708614309660613602446460965632807867035457932392774406477063478791195410599413423391183453287915924160169516155640894124539719828925181879495161848540566201389207786471134684219265847073852254114483324803206528604336589484380067920762108246687818133122781572101870227405165104664505567562635761998328597555708513066012600265322208604025541662522277199807815813989844089714359210739464110325617031133097644426892447111865141157307027355246390247318014154199624112341507555269676187205472503347950874053217488920642727269096220112637536743019035083823428241396896065557188549136620490997922884525469062394882472964614617363497050035326005263443119129386517089013441444668896025917969592010626520404876795381482058339887227365701253316898023729746293207054664615329384319336127829748547795245094042225115456997404586351604242412653484892714006070162616182131050754368112583599912095349419054922152470857687151415231246222421218967390543237043369489295189299822789602722457828708161248301111481466582860601087553168107043341182153264381764463168819386655873322051234174166530637275942235181580414513570939604702961602029707819556656171662707452580942144990744093335459911778484175203832457517379151528118852500751026652863813928905446221304526136038806042538215170601410628258414912608796224882183713591562213746943203555784404749584469367943403997283112670169260115480114031408604356801506785120456009619732659556005827112816392033335823218615976181675078777068350007048800257433773372617486659138324585516679046463486154926591978240406660578981685620446144388449514067783933429314131807484986700233989578349534884620581130680464058826246913003278383644000504069696312094147043306725738259420469530278804181199320188299667478889230955137181272587077361572916414589757802487118004741484584566249499992238802274563139170913884491779905946684004151654481268199493864512434371743424715348971726023546900194535304923177931770600511014087559881107078434534370621443424043543735753013645762164972991874462542879301413184279745194939400371612518278476125304608369650691043671166935283786596138846847308022155964265585517714692629308595344319336990056753998411621519831125683445309327088711674208846584472825746448568313073719539346541455628945700303652606847866005758382982124199582120544040178851074525266877126971201853322779100395574759355046831644109572256355168171472196956171189121112125561203252871630146197280340926438301224374865028016036405570698240651372123141822998319595834478411692748276210262687497383427320406439863860960618085562823740561908161850464347161213093966517179816815005775595234944891276083808936293122081953370022686786776472317745037097196349710582160470121281863932698036521037411449139846585611240427793196334118107812243227103314799536679950245651146821441227586908412253098386926355759761558111448719644858487509445574941334974972544902631634182932084439803018011485546463636046695566729986421251941486325578423120180849394476598501426266401923001726157936207688160324971496634912340997873122094742786493827557971132214233849267339208830491862767833806388470770540693255701041581825014359745813788449314249816486607550536871559606100864051007360391423692791688736924715784396675056234730490708756796083461462670026773655052088733686585684236776354755238466169730169471398689832396178625643545803683095998457157096573625039033012200209668034642732163307399529822809871902895425085413265350253931204615379382984012020730310871115144230592310211704631476400584521738865622476160400184030523198299277725284131732609216342420324592341842494122726798037135642392334201993691064849078456784322327957041513146184156993791300020771135824431116213232571262591890243191777447694155474236382506876215832733367340828605442096399094947296650013166501799891108669198399499401942739933482846016780769705132848568233881542389691620185745879697446028513924853274609550556893221695398033019055714155589164629589430466267353219409899240487208156533621827006115848977526745122007813548724878627410030972130025315407511293688035419463522293101835453315275892130364382815093395833951511171888699526248439672186832068866396487722363327986518357896487696294633418030945141346954878474549907578510073202776502555700592982899774293023577909781699708609642625094230106825020519634141023028786482818810455918831783471107789156745414023941425851600255703106633525969450569552512412204870442556570075406022215459117280770879998619801528874441487733638840533138683648919045998849846622007164016264816028384247959774417601624688511441268236511710486184584853920250441757639717367561182380418677893225883516368660026112854320074440387994109781994741122177771174261309860288682874964342507775818959922371711947136676661540630937258266863488938461805702942576800904695126364860211728741338612752770039511068108711298277734894909844848834151611864633506302421423130584074392091294982171275151489102240580688276679369618282903169792635620471488025975098221111653929555480716620102576221162252121881804283103782631474575696867626067951630304254517877965908222221193139360621492243757139494589427783689462557071339354650525477708932532110356120646133298719240227901298916414452951235715068601816063071581070547371519341033155408163345721960607082525696656853146690399918269367775175996671200472053237241381110492791505656058959063052290215648732652605637485315372931246593532153338317286762079602806325184435195632074264006021618135923448270831015993754547159692890760263416976694500600374663460442508443527604120470336730972465058416205748634249769932466931243118354220463732047649395300700843940868554867734554738652702178102689916995884601421163118607492065560719237680519378686700809922360189447620834279560616536485495201903002678898818677693509225046810457894909880565296828573742189578006978194224005949601621670779849490396949712814500180195217891246006206870088306236278421435424687383612232710301593906525292465500479121824805688545370737524252556215270894412603084446869245687273454815102928653125656596959719281821891844191114087455791133449588514839241960657868650023240203225559480174446706212101065186790869033531615650537582721768479233306095209472046937189521660855832653224898310183267048052419677823107008469377549016468384441662158931234904852641371982185304031062295825402144293893602434934218019621025824913697678945356611447523503377076278324386056497955494968561315787074282529576994893868485681929267164539323436187154010108389861021284229796923344093719586604148148586367411485311009424488497763494931015579672756227230797452004987395798928304556770369393674782899544911230450002205915941755819681777748301503018957433838195880980076804903445362944137568581796225333722474421903156123703059719487809648530195687097146003775825483085898917341375735657292542107573540717923705959311133548910385491644720244346400786493509631281764186369893513104861296177135278672427798587182108125282128788698481193564531155066246632030822540365284737505877803885464124539165249116438359848730563693676899656323231414519687286379805332321971760062544952203818568797489617599905671596001552221886491884236634815725288987277619153963875696016424635645698364628578595025108501909997038385718508910419751705761610577727592275842411106233061531206082248372369356657839098478671326944784588585516726434888559415550269065439820407247586967996625568213503285054438071344350806647622032128214515729432461336326239858621794983489103916849985519191962768915744477447090658125741676952952618560588060953210178694489736987879216617819515829055262994990126978781377835297960600880464561624566866827222909139653334375118003824327266880829680751271879288275349063651218651485978929968400677770267949843627032169282847668378023101279881429820818068277621470632641464247377988000931274516344155505229177931649988052318048669592859245390704031305354344582589212072325033724399921775629409757323113873055563391891030246780618946076502581265118332082718069935033728911428229797174636219215872115595338075950589702467237584974570500084188174976659333392187564070363822930812342405976929074769160719690220877960449265061159634198726838840449396746507176347859702682643033220893610394414533247316994066639272136121729106176803727701753334499388780461602958051047032105432070747312735559610797205486617566868189022621221192435057884169133900157324031788288250558786947822685470540577967882339179467065518327122871464050349311717422596247948629882471718898150050686241779524115310892293361294850608966212763894662619166596222496440947427705981195307542158864389301872967002280308668676881232274632209436960502045094667005853116698095175011457365624275499627933346794327671085285985447037628037364243144232867069197479045051465103504932214216491912695953409332794631082875067679114890142890202129892214449815889399363572893829582354531384943881551749832704727200448354039033627689609797362399943908412910197154544212666013118764892949298637627334483469157178765917241319791022212553208541629815804335439933803739570003909685629678674354926808405307964381908990629809091900543932278530627649776300825918866826569869329128305289362709369594797212832242144598194315113056289055253662145222862720236955299375321119971953009605249681199025284709901546639892694241770914226396267279785177082206311179766348824725616123920559062436286610187908532844496641182850902316997219494089051713564291159517846611250492259873042557201173615984588900277940987295678297663509051295396853337068912931808974816399820717597048441272001265437280112668957109725591587429773390961010544171160838933172234569216718100317992031826472326125405350018163307779107318841789051999789659795441628016163138098815142422702057963216769854988314022658251068000800425483461527772129732615589640966456290478380283780076735725673997719933830754468101824624852339231185431267424640343766313034796888647470397168463232412767528401584888338349367937196468727827739628790057839627752221071947793723104729914813565460915695915548778918311834140955323271430716258301895392518481401604730566792206070174766576441751360256277941774668057672078992873621807430803071794407147251645555914803180580214159874224258051665249606069723221031177245441743807517332268779390126910278821871072622063571754827596130276835129415706213163881253957322554266473108372848770794413781844075232240234717081571689432624366145243732947867203662454791560364755689960311877417044411627195308856061513493802127977158927543868878881868160447750271024691199208983255634688881530606234655971875219822924449294603924363830381549542043306987399825717813262188365297947399264188089153365337989782119699875773768892482019408833623860018415068147667144394306988737446679972809973427652732025750571583471052709830975897338453150818755925894202478050115303779819239255378946474524453807133029483158174862211997671069984953670771505789658439195491596854966939481521426600162607169339247848762036460514128758115440180374665831515348407859515244515661656029702411754408262115174495275672367840335779539323467556208269550671811614264027350255560701847552245422218566110255493268220517692640046465205263971413598575358830303833372588355232141652194302090997528831776721334237197849030392505935460753438089322947689508298041609818394071426136153699245150493608317732464976903523688481632265617192738714363470224582154402624353826771019778583221930921599676545499945533053185297248818453879285935832110450303698449573355744375985513116362975967029736906475151454044403655612373577388024763739549383568652330527802113446155366692080085293810308694439342441705541567882535208460788680699787407607365585609112124411813890650843985557832463253028277567147572946418480462999222595635786970400781403772365263393891871433593005141214011812540907128025966677783336295081587562999565156710318568714113039019032942573225488777836375284696417228396452742822915125549167612439870152609125396818619335075047261617506833558903142895075130185931121112321517167803306430691985390408099409241982238077744516860788401833836287339468011801941079689465424591041555361569330235564630899739748275879209694754677693848838526757527092967168413834858260906321954466856599122453688975519135307125859997248377913081249471283931305654873978445244579818745663395111621784744258696460503805762447801439233255454471141510599118043159204709102590786893018747520206162288504944606096826198519183587737658674918038444628353213832918667993894574180509329165576830225406227137358253413146321419828921279456120581107090041902703045702187174238896156971840684242704359467177496815591990211617199108297110826083170853164401990751115533679689196871806492812447860178542542641531716240642590297477880332415938798173407655277178738978460068140389388570768552704252561136466651169070592613574934719905643916695286224908381126738833207678790193982868621351185593491467449847143651023903454713017032734294083737257035121858049906723483480212082947039718969940098101289104860388278285370750590336022044166621678448911724562799121581625662366376036000232661782525122281479264090218926267705173655398399644125695131229663242734229438673575892736983818066228260149854391563280260942793956791799409391269598665075612056198535501257014257201683168386172710191478432216227901182329511764149708872851046316717561755916030948611248211403216744390656992697952305886138530437314069051642732174836983122604346024978251247407921109995225550144258740446617701257942947499116609112570149272932016786071254275332135147132093056795315373875269820664575504759692230180090177802069956517632621755038338017388429933963201583748682586219983508077914457658870412987948843150585136070739474200637798714724985241536291921221007302069741668080551557960272868961320363681133317260001947028886229970601292098769422384596204248345755652952761697731083589901958149903002168750103069318327674563765536859641569857324232155710301699051570540101626037990915593333963664083094610092432723650935224809195445312328191295353867013773018106462087224916501066486449106542717883009724973940782598461856149486006525290535509392421832628680955250740337645491475585558949087192353963792137676949048239974558399923107479832257552707601565655743908471348163606180340845247118162808088149822191396607309293896747727154825301916577278899077885903933879794720714172262556018096402776146135403931773688251171615230420811732916529500335955730129052299683777959907220949136112669652355956541584296267227431046129635558017141155135206480513891081248278032709312817420409804603226197224340991960671490050674584763176148392913680159594709274638889410065754129414730992443827084658330221397228709808588787810629143114128582499229386000921818872684238256048482639661928255352044640273668389776588240392366418137997311138643357878437406127210288427926072330777726269817581125497529924138381869262402173887279006583641276365921273023460666152338662362607330869647613378818609784119892720903604011931752471945909376231233527548018283386346274224934165127051090633603387583067947518886960961919293588163699602632699039606188007322719483150267179475120748009234618017412567127506997643935374818137999212935667736760867569472475824836845253631638640001876430226062282672565655415475135912073345260616184695331678866028730518392411781525612678272548015043604210199401787995737663652667770910094563695662972583859304105905928888852063048870790582648099868288168977592348570483073308148439544523110175853664499008547348054115558333199521422076173120983371822274440803471105401878953620577790652783204896055548602787130741114254378503285420158485201601721970787344428572632079057055020818836132661180556155801389983605643786491996409379486306892671918971813477697092643294957116137365038860572230189421963279435410669010284505289156200539013854865909614228000867228589456210017745909736662493244385542776020128326668017690653849749527389126504906984633914923417258840260560321753164638438452461366737118088020045166444690440747322097753331933294625481607898131161975657209033866681545722902470833640349385124401132448428458069760394555722122023977749181869489521159851959027721816453171335353555559664317402226437560845271392209486295692292212752310425878267890808831306650076700282039042688770175438390592050902210056414941509358074699829575992556267039860316005547634533948643725310057959598113548565464131950882600571151691044708863386281442509742113998279622779259455062262792599348267692760077204483554721660796820257838239943423969514304734805813680005958392849590510942354929378264290229621531020335382151553988842541112841800854557838803293480003284963895294100325172787767463728285492019958170819239635336072322644187933283137098954192155580784779111106731140434563659097105694335591092905219772557339753330612552773163714103480172114462743489487079725510747581458910366549860494394534846223574739726046362345767479840549652227882061232323865685245900460118238949686021453102087821144918646442823126422190567046584226504900291988518367706191323732438866809985840299592955030871591154698791436574741789381375846449712854807346600188480225622461427585618076269165076959763262111628725130316785209656875016202556756379677503171933705599868341220575175528705306802589865401307071265001358872831256398464051604625556640280936068669092054781477883357793666363945518953864159068979816056161376862893487275392953261682207870782777862737123338920335029568089703597229433864239547946667922453516729409082833465743365502915379703855022596580276536504541839001450307006604532287379679021176042260719246282328526613421174257742671235567625972204073024886278040955764653670136000913556593648241831334604376052115714911159790687453653168839094008019946187291394704091959552553818453511540939942487317091766310496451194174806084812290112126241717000880125183570466628668633559214149661023258247909245516691553246337569569001886793854941525800457229619827500669025024455554560941203685003725588731005334792255575244084499993340234313963856531960719006151144310335736401422056782603705682885038428997340595615027158957126855327629317681927440311267894644921728035772253258433201275517618606352773735110601649634719846435851046381109942291690284612279532050739520417303954379674485348521012217841833676843069920707668876348611905148362142013723818610288269318068038067036190227228802561201007145835911996440147918585413707195280711591012025501587290640883996621652345719148502392634795198870793162612254263627605479430500748626407783894687017069377021320910523555164709481225040775036112387371954300076312801709129348245455765357674232448771348270772986706620117622770832615581411584792866874416901647673784045892636985401113055990434593688512235309951155815906158768102603036500872490108808061438856881160826387054219315128220315046780647285460690934812618424136001968561512251082811599215052590724527731666555912813714766098091627989289815491538042887538690779106639961942635773614788460397771049838794852932267701646189806396256089681868692902193833499866281688288744501949999257441756723630245158675684408575842911899159267556946125311785536937850956010936522409683994279145442818926396092953290725910315495462975806372627526280792785158940838695749542467395649160470964272450938039605312416309799343172186219582020227350916380450374916182462634344669398997502287992581744587314140198204949142442783399023423150134486717302960288131789244154609173829577114893735353643523421958173604805455513408007523791469987636269590826745411614482310742433395594469066257537625763766411354360601434449607828933693519830276118913927423522795516597587661460261861802648433259870605739071139174536660689794213902990992753639089093740956876383160787834714839809040598043200259264031336928672074944526920650796559646227582405634883678109561805278317957950546895861763390989928283888296359609997360136340795976907914711497954047047331030146185281534878356970434007226394612680305363681602576109002635695737898160252675394621982037205322291400161099832880718680032187175875084381608846116186362340159791198304614326683616139677503422761819816344938555998332064898371650223375691824091474774513058494600940671998569698677155126165135288253412501929327272357077348557439748737676781623089552499323603217640910686971448883057600461399030895994794497792662056069309341004567386068510752877090926359707777976655356739446238479025270199898370120890552436919761070054267292458470476945809019247672790653144268362674140460803213253719810710527806367874352305103977253196756060381961962875315299304823915249293079250882056182503551354886600737324517052031246173915238326721293892248476898179360174490254306390083123952668762481266746784936007830378739217701999024172268919717199113258637096116785852574163251505478869435965199441484009918208433923831096603295193836833684738811498886366474305012940102283922490000995963941313679665805340287001218950169569467160300205958413346828694509820683277875091863082814002446352678979654203883006537379155637573913414383144316852761898502466990406969136621618308086722212361999521629065582190957112985200621673128267575619926751346084877650258094843890333021511763632828088367092507603975049023699094126557346880449503161302424607672804864849767453778867527504010151677704975128118617341354279707295798255568594926429527634538055008908581141761936758980903711596367183526688186126302384664303358267242396871971746832516199590491214583842637342898588345915029708753966217439138382596680122140999544668027750229767520023523037843571172589433456710322737579905414816293387649016266379308137972025847547537295795262168233519699185198972546534654270855992240739425276729597902275959150784749451942361373141234094498404036808592165586991205811247129892373259440678324372715458854408757872132023835913291813402012214302378684063262127116699179150604556389904040300845543758019050901368157578639979195508605420821409181031653587866239977639223388823340569097621848504959573660732368179524449756640638252579286488066760343316798856517541508593511020009321858865817895351009455070845840040438981040898675930549785677238067890339000268219399907417978754768091925371774799218400579018937818909021939511366819834737030210935575568959601588375779533521576470436544602016567889472205030646670567285194244142502237601710108301480296843751166030660885310273119851877016323886885670742919104619759836574290560430174148379028109885832292711647207321803214885049607278868714415534342321155264045386133589031884742423391367772201860673513809084752365175926599088075550801129206372649852600317727324888086689846610519092250290911082279228357038497759367566801551289863522409082076209491174731338351210093510261073613448993978958931374340644076684399779332921807972521672144803103925563661480207853183071640795956070588445959424630715791822341123009298684447416091221076056904601648522782082164238916933835964763454733213480271917593938241160247067609575711539866181799098189379707925168524285020389642997823686212770790334611082809205755712199172259021564846809522267356247130741070500205781832075405064443647233049754667177653000101255715754443250938490701735941123933557046594574448838817934047154628793101181560231980136659777310147175491140617934899998624659420987983370253204893200967561674589027746496928569193097686545371571220286373033825649006675219198653413187424259706704970192715885788594201095880271998544151267714563394397660571938258247895650602621978248895878061473623764835460192550272677351263829759397240894348040178766862473637653878603487942130656642812680802768223699698166666815912951433336036942373744536817049730760409945302144921556892242521338610857513504494271765283987769427843902808720969389277910763454065543228623325306810362743354449480364171053371037938690716557734597118321674623977734904264684610817084983765246913836327104341349775658621186473705396308724730582139184531456504752433556917396511814437702678281591009811157233830670988327801805214418997504199917382540568342468097982161983325979377606490862662283621551431375205486042565679439080294272301220930190038115117118515489369467568596914956170993840412965169827657966341309924510421243634701479066665957251082466785899184736185558941668979711890133156234506628281830781776719019321827022868524012467720988841856774134081992306569028879806985874627031296127605096625591468260877347907862861700196122645465409201097495793874484368605684844626995483308756588292587194262853765011370162688853164131720921765239948232390369289113117121010444333543291838053023659597006274841705283506692509395181851517605978706394049092123420844246882292684835606691693121418540216148790908959166508581864438095106760815586065217986703589137566252729739320661739747813795761535664285034031204377876623522371400932567282443118911219760151072043533355903110179592959605493685085846086800908092698814998833040084295615813199089457569124653775783799325748808877531336482216754924793674338252815256752170580254831049640596809184296900122877872504837127794756420618255495618435562172523484738237063226285160285596397165181193816876739675567288926605488748616412799251036899839256104926076162245580018935099688001314277994004873704426551327277785060390627636556243258665234029431954247414711145011572321864470696583747679390912634419105601445332195640258859657889827487831966784366399944830008130066593493147936295033414810816622234519046450322208787870708928159794416522928204822713494878631937451607490542450826966096717002002246009179769807939347999648205690993032245352601027533815457391377941301387219844474523221036916465661004952433962674607693220697684927728112046643888643662903463112978685873406247815561426892576199027458555414315307564400708938879433498297037291600708863694458847536157652114698160899050826795464046852263168552301997286086013633608815269080232247007316945110519575777082605818730844215093162899952580485335044932809819199698770185593589926178376062075512564704048961553051736297726631545877368816137248830681941518778346124131171246522061721037218397055722717545600165064391225365705587058127783905505180685432679323795209153611806778094535364894826622283832302159287021077469648519884955386924377072133234986270508472522473475661096274759861453044018330064513686115381242964447165216909668239845452165900699892398939888299566121225695040004177471668750709887673140298243086144347221946362036630144873243088491499713125429284412239680784354217797336574684219133006203404816454238056594951742008380274714051521079352816390533403499524623198808507104706792709360871589558762955465318721240966084744995096161763077568858063716848711718081536038677767515456557763323414563773906500452899583379088630349759203843122463954532314165362702441157654334736944000927012580978174420702500594630012270495363669210876017006426519590287153073247364514661430116655401843423494712613085071498080330176904541761011627393538441376344103443586804877510147935721122122503509645999001308491212947154423973336363547969948896639884786698880535163916925272644161818100176226814240605352580779642055817931884206149014523561813009306571985411275487219209750368563988400245757799398355636035693316290708963113013376297478288423694013137390179950645508244883097806325888662846922336889646902321572046304132684968088903975317822086454544429632641077191523668580937646296540172555885909436410606810266338729301464371982694152333593088112118114655511349883638674699931735706637191955534109540122662056824282426070237643976039008765156754295754494879817041354413627401792239232529630118879591644125775233100828453068004626796062460133295514802723111120755629273996430403393394766793429158237253094294816223262745286669330847810247942136277833180362061159003430778540578324389767890507848508891416785812925436726193561547119286590058970432570545504283072684491733343554187026860054640208648326071472307758576097521692243736052077210381515402104989348107884021833070684553865699956580074006987195673375042709656766794139447222189122751995729790843722104466765288323356769019630063391501557678631020955234521384637213992625804061386717587798939770191714982525538726253815443055234315358500557549159113724049451289153710318343643464703351905473755930138794422528199562588187613916597989886379344972129812329639737926100666337277051868995792880978716415123952543149712769010562338597735050002690995229647147317437006048127893284451669312222038681357547593747579797419039492399919642205036157573459529486551383649601491385105329029045083280577997120269298447053181913036021339317573128291628547703754168325828155209486572317024936669457553485517690580504770048540169062737420961484336903786864837211270810596818345702404402124808039188941401997702536548569034366551089639901934391064227343830535313218848766744306448969589826011002778293378528385320312394330188067067164893127217875253703205524238886139824629852794978210405964961095094907914645552949387108400139534707403822959194747475770487129605203252591378042685549083150436185036193917891674451590802886326376762623868300749847499589368459430149094759653256486266241536592304872513686405216079442723823717225793757595153076861097935514728739294777631915503382045963222870198148968479938408476998243120104205653712867321779687073428935874439399695618595128423519965508939708129097617819299311767035210552879099798021636814581455525099118129835791573470187743114029891044422024871471925439919479120531768952936423307895503478044517906601966350494776825591102814468502924106199208896177231086509693240397586757551985464268723290395707002732245813586453966899174446518050951905650143617487426475104434779391908762645772806909904324411894612988687828189936191287399881495281243963800257160741536688601667910279104748480619724736702839943831477202749056113122777079301629115586295890042360710094417219201114033228471777384014288504776989718796303669156035600173981224581484519036550530666832062797170400320446487342807826599369828986179384807681209005471853621110118827014851971002182733806316291572761119705544078783544181688561441991876752916760613834323688838552950560597298954095689013137893077846471130617799900592890457442604561248553601843118189868424886055057910209564245705716838180854934193785790553354515901728858050146653677945565639620791263459199085780708415946571914765564005772222245184019127345385324949729832163474327675678421687384673586398784953548764458646951709552270070717002834475514420007268777918181496298814191837216619055351693350954347753366382916475926700703465922962851481641367958276997102562224001770321137277971303404558099294412096307183375231085711126293863990164855489747120738408783378490077713814070402417553934142141571825920014475891246694192554905979204650018203156050925376387615095854356435197401586060687971517341288206818896572160324686956047657751149853949490386574893024577014120169938832741035492100885732271084574894027463022776046914123957661498958487969669014164239707426096175704072680064625090197087570181178193837354697388765866109137055415765141205536457579347557322373969613890429598600579658887550254500588880745669772545309935477769362119736855637060393313320739115920096848338209955589932762987585883610630249420848350258873895645087681633863405446129039739776776398833356579230874716780534917190271944296823034531618941290462344400944608441982979481676345099367831836334486588715769366289860837227887032042557722738285416470300282476488868607141798635030654673202134176165338162840317038646290699975732053916292079475816452439246264699057220784924515990462475124883910687663086026369604526456036088836386059842216159045427413410928167037730230698796267239882924210327179554113488564894409742265283770970885322564576879651135214281417751892139261508470234580646148283384580139809578652863102829520216229837449385405736215669951165369155300426912742556910955573394972637509933723014125920405600762844683510214704468624123091926840353097708962406715554474304495915856814277916541922906688340102740452315920848518710121330858050157077520168567199698006248520304428904958414406616700733806495793804705923591378437748110721902116476390811616667122959571592501302787427974448237181193580994780549160338397656202241265904894353239819693266926072377805766683260766393791014016404914343400815880488802909089991823726578093526752040471483643915708656810213984217256412498184169285621208183716509301110874944772960192196078773495316043729834237660958855132002419310447856693708395819292124792222267532967190306558423618560449368790728925713079314832337349762406926338053085783208477314387688758283009313259708670091319021740121342136570085914999411203423805081964559921221922609533790580517657415217863676408839025444364711677426617851131945805250821622763451102181344113437631950603630871778204419243668638176099293541328312910912676217204988569568567074295356414791589774746326543215739899595305027798570495953096691647662180034058933683769221817860138251955408672656697283937947636014563688691666457552792248788602229056070327671891402640705882258646225246323651368973276554609497113065968336132854426245622169536929093499977307729656866401341396539234288213516385520009161869740415806498113770183248606174536447612307640290557407254287820895951137748094228880437902805835323093896583637772838754620586682178442537112590119028336144462657385745647493176220618276688541189823828270595887550019301311599669183938671739053352628217598753164833678506838244156491305843603001651109084483819057928238860223698700736533434699240334659651023859523353802100160908096836863241179258585207793136642770011014651307259592757439312634000864794115968158384217959043645882938608628975223425518389012370325139072123509092684057341976904197512853021962110341242357076644579617540587288950538783253308542745393653755340201210148580646592666234436065813638163623441586083607680720881272625314218552965900871729991418626705104867916201880459634978472816964633839414489626593134771017340065646704112805061967989431388185369994295629018808066111815264418654395618756361289995063281674194795005896118867850473563775192304855709420003343386544263554933650678836056144236648102262879434821035359267179407865282779987040299648471950158787977236101378668815474716916950982015082924764689734071547662633052513768673606954373882115365205085555130975106362710376708356931869132768830855685451246284109222865887734630253423833607956362478696341257019021218114312093662751987902221444477975048257366034257631021425232605875143461767734048392670754147988072659802336616556938828950241083463912922462261837090764729330583057371422205049715013447868445131814145925189884640598028096028643756191148904431496527311729344878000849030143270256771480811721010341670796542083160249176942002229875519202163931999908678681980946606463785783036905884831472618938953002114236018583437275454212968219608729323101071793325716881534402004183580566610277118410896838860348041015141272071946600786305495756338616392493430721057145863879407500777040141109269070789796740012326699443308253177533026057410405630378664491237092483668580644118609440103175921869492699817202713183270641578154065534657943658236470582702064738564194233494671707984038995157510829649580504431798808266476734736672013301320634665795328696847851503878418496159655114873644710174675367918640208942012040476957275745578620878632593521843877471953621081628614759043451362861135394758320002268663744573416303655764500409804897335153790763818347288594887028694142719680734468389810608064648990563825288457352634547182140340217250380860684675575917924951658410010907532598625646333980605854956251064366840118913412002406985790588220868800616714253719163572945434164000252091573215862986185861185291479641522678665948658021130026598706571448377159683657020582633272862531443901705859858674684292071177391031638504925431854286902332239261880010397752411231109091555993360312452953999619180241171283555753762785474379592469808005570023266056264640015506776573192541131870783810104820488657348566916550065052350548558621390547146109574286894153094690449800142734317703643764083080296049618939964564339130063389705013705336229332444649460184716675354098382748352087986824357773565302371595374851360683905218974323139087125295952477172748379090194308426913060605643794272724301833858667565208383874636127457184080746345326494645246153652262905975981535889847686328224828018272848132752655993620503051890114806136025444168330529404562116957145219390805641034393155091933207420289309094639383565457334982726359997926355382390447309127581622249764121185536855297304749338503275633011082078571377209632052062626271034833912209943194856443511711919791488923597672618315390459383937829001632671771829786100845376663155457804184068094943423710183684628395471029375772437109997590460299854059055193499827859317214731645602040288768533436640827049015317459768522161825249984836715233746108511609897900937028356704049386127006933852871087328496658954973357393583041595993181782934226187094162293684232182330252552387232053303445108959446525305881348087059475847879012664337506475902310294381742287170275650170444314258292461015474667623356279906019860606284382672961176715920000960566653041164588935954143904844013346279596787387769234404048288159224757708068991693008230643120706940363195336352486165732404572607739619485778291347387401117829943885901099786064243555417746025522395658997852389530944151784330094489257787247222794214292909879372034257602735936778355240335400771552132115316713067634136511986074283143958406375931273167835355627357711725069223572788221397859201100748088010884015049123770219882748058054887021446490440296286407151775642177277233889738771786195541291513933656052127338444432652771089517766040333380450023233595257444959799560928335193341309659515525216401404453574643713133797780624647079635961614152890742330129249319213224557475033806336198848148988381744169323764981288785906153243942649135116396578561173443231794876904738526482678706696093196392089119798822709495424171192116267677275207678365177144981778644516575639153711932225425153373892147281416323410730072534858630947951819977475919324063909537718929939707113142730164310752100989858424461711272545554712450305700115919393359324285364609238767581845750022873513154131666922001757602073517778195423552721802931646643540687092997826363644755546219558412389163575330145413512799869150173225308807494082603599793766782959518910974014024604473052778552935232243146409490299366122041090674216533646051441588826218686483720113666332098694818712471761849616605753123090188789801130241753322113511740957934386003232749650231908712695036636483403273965317676939473160296354849875965627565069084932952432637282870740655620576595336496820960108047454781645931590720879487997981365792584195949078181240995349455888679524939510408376327653638417875076130453732640884237834574241130577151761604166408991548158514317904416974866697309964849889623713426992766601683266176975213758084069753948633693456190117842723339094986219139371279318865937454375045076557366722392464818604503878904877815520928370483231123128382294981024259379071049917785897081823703972481123228456328888286536907396729256066471514630068413594399610667486695220107306883776712389593261451240626535047272555720083417174636034259616891344285126215859707345657977216718053228673776975953353221722286960598059005933324147558189625204083859877583560255227376116991375899134818064651615617898483016509883141784042628857004710970688065370435405860277076326192382657521814288264290781970765425662226091318287868764422516214697737445585242267877785528749657569771208577045782191545733778479068706169064554573152080626172789686262880640947092346049429505575075818393262934355799112805365358581321789001946955161596265376708135433073354756159223021794214302384163212024293440244558517281280415619192920108161254079941385010348067163260884649696986291864840020081239622455125756288290267513478946794227873431835279387608529669833570816596210958607989194164636817043493156402246133757067923348794108461449391421123490622131679955613082635027769716160416553537744953686809148312812796601212192076894658175342360127485561650041373642163153594131640119410757674493709943348644223149583719485001661698379587535601620235209130503982407287270005739111505745270119730164130288756011869993271051019322435415552506615353530127272468271533825912532750327400821211388729300412431417257058268511837913954699839840382116079205895216251127783235763059327194881558009171691717258942234970083125139656984822719327057666740395772774864593767119678728209530881038458277597581859896272365371669374973354448648066387945418051170128491890165404334496344079968199491232896674810306492375276388718575484630219413797286633909523897328602404143483428297149901861044274913019916113581149827900472037322572122749744235415422839758976551821420986107515824833222404994054579981458695181859537201554100118802988662697032556905790256186742772377914471976028245868321765219605423176725620113454487063291014567107908836164588996992437187921689387697973896565817924475657471625120922930596844357020036316542125378010151131856829373631190425986515265507720868078056290990689176867270216443301460245911197895717524650999084547504713470871213238955411637056439603521612883562550901978541656260729951949887528851981972642711286679171381535737947090639163573160438208519652663617587545596627763013183549946076365838801203215281783497185822647964749173829788480214692520201809415881456125984046514909918224727812493988232109905692632222045543167619454093728943199188617209492661685499417541398598076604919686862104990376009343532303123219660459556331465148526441949982994824388485421359729515912450066539875173523027380780991933443065191418717450951008750878380427947547127387143817184359427187599696094312362829206294348554771784965539855283603185514609462338675091564542230984537773819938783146260571222015729206563540753008825365620940821759286247949717191675762953496218828387278085422887210809900002032657318571070787560435604202896258240083909512310469272031821132613661561099550034259691248064548193186254475909220230510232717137434027495958841586547199524495145865214687424222655231278752925318221377043434005947834292638540471068994865260628449701569594784901754982689015498168345256174340337664840845364396043761971665444662949343583897300240184979894476170247222621899468439147027785061621358806402494450563603477062293780541632762664847215839851651855206770517288230202247054232213274947624821211378799929790413665955273808899173083321716999096626299550244185703253186786506591924791286190295480164499776359292464311823392069990348209004645137675639967598086919474288883786196238141337859730051501368938703528517186206588881871074429888808932381578880275780172527983041976744043314389045318510724605910875736796740475083397101944989117253909700337363256246291710575313617731853600471425357424669993762062704463654057996064089305741887661049142048138522690459147343187721960850968116292705244998200116562780673633544192786575881629028991060605498110934677480013000703786006257726918395420984339734348888473989644364519460276846211764814501892470116437546121368368094183333260725378132004632614075389901707394297318796439930869007145932792479346368027985446216332772011333056701657563877991449462777799157357207425537271106918308079519972959412015059832464532776789158324080313089631307305076361880273057964269524565448261544611823719798618145545566188175883882094103035258957627781670255643042213410803802845611330292756287218247690192895850919245855849448247558901636629895067437028055135413894239567345379687034008072532125248046369572288250011727294125463527315762428207520960843436288457065124517226778954901514714056469184408498574940556548307886609165580699461828338708242088686340598292194612431115854409065184714767700810601950104033328798495118630200547904656523561690284098550091530077488293442148201341981635204034526007141539909194869477587606333788594642771340347179458261547214996222969965244446421807268156498055350943859070859919216425681049617265139381039744408400758074931961385580175717487427708068997822169069056001249930462288380900739324816037047079444330276535948907125925850065079106262414231943658366193186375260288143193598858037236820429845535037174511927369033066968289071664746396265130192944468623115863080181548363389409200978659274935637225744010530164344937533660994232572269727086118558434765307484516703429678262588725615925273125455056506557628958211412239354295744380383262268344765932317611725250331762405231066804816786568545951570744010202843098036868845954277602232659748387696487953884595061158013893273738610658337122294887479348582648818284267197732012824669123166886017405823967842248237669521010836464720621202235159480803267232735076433706774593227600207721487159801361363431820303821650516920291307731837120413546286072628350494452036056165909307979502739833418271667309480834003051630478070775193140531902354969621578596868485278298160259271962653275637676508449742486298129924807545654553095287285869743829781325255585786476674296292279741341478385604480308515210623388759227906065869579522870791059045661426760018845621886205592271617590513098186535567315127817293734329073879865823642572224169402705723673743835712127244718081914534679655685669507532423363719049212882769800661021171873624532773323949840580035667511711349143911289531314885697805676748077495458669607774805189389425658597463387465837549354831431161492334667394170161338956421471766534094089304069593650158859624511821766583348204171040359325512963491764085449296777334027442216198276624992405068489210116571329012168677478945872490446835661573539345479761069860027132765927464608329355807263180628017507571035665806954842597369671173830251011330264866221256915562985651920317815257081683129836366956564920572408990899492758893325930177999606691782634024783478668005997113967336176951153813841946012112384303667886272779237832210462051177055054572587763487045528132417414698094631824675630914162953810536508416847566679532912186950925756359135601761952539482123757096923450302338521165103824823618355272114733896260574683254505699420335223552500361981644615543946240786208905883200908216226809304789051402970099630861908029026710359026231064953102754454765287302548613854933406904167982275868284829783869598269288672645378884049972427417986111706134336379709059908356104543488170976507801700041021879100280400495018845160891756079630134947498255723358470769746664688921518144135462741269614017695574833862444302960312549934462443128422644019185061141887747709135710363885389375153620400262530033007374108640082145770831546842702556564290741002521965682882210449715322315046215052123121019993191819036137179352732126779691151314519096799989339297738758456245884851027394033538504874135595493415859881814523746305911447189675218874924033437635187304404158660018250779390567256872368017400090073158829364384267424933681469346479342636778592836148089702513204292785949702302253165540312923161694386611318929133211013998899269282385933292324532905405545985248154761808180951537717375887603499461848299868544294759995805918461541406836215158018770547932855354890459490093847543165035015270143838037909386861917253899665629912735395594462736680820836392960817844664277541620792953137441492337647477286796058825823403364136211958745467463103686720978906570170751891880612799205020129870379185625731251022693095231500799557673076916332165240054425887484429049749213071750302962006973188761734382147359062655150070006936148779937132875132249831591145923104767479142168242976834207947091063977582888449460417563141227687491817817583687190263852588376748229770879353858962511408117956888129890087535128214308285004638210783320701572634356491915174882900151064338744903425792366782333055092451420662446397272083935853060724785645275026893332081501514380430539540990233498473257425856282548465303527966992789679289773976266586350090470531155423844236200287766408593132989084702020681026337261840122772170515224441832683516752538268310866700208607770256805220076479325710999191531510314477253315554381830561328647278539913133942107992069403957738974445793308337953741480542186327054880218858319714993720289430689868565455689051981489391763516004972277014527075216683169939662906203795673398345866562795218950501242106996183479000750008804185168480839013861347884575378602319960040599661823222300694318270482360646840386528948467549561563957567562032031782170144186367000645188930417235951869141876298453189472015785411745957810759208664646095596771549052359676903440688976674168800466993964341272560537403065875569193479668687897339414973373314303223568399629629657548934636983614753172754638197115161595167816396732997854932969897133795370445656915019280358898219686496714945340396216503014314191806256941402162178181348283205212098874707458599013933001605183533759593721643264790371608660381028439492606044767375645751418367539590628997138140634560068568947965462452198711152179944350710325647918456758365951024215509381576923043301107991447634542983860640260945910507493021823471261722735819491458314414314983823140275376870133717544720462801512661542042607558646175023984207089856377752576574121991232609517429453785769018507145591145475890954433124942652098585384368295335916682748794786845867000569678146128988358383596611611908279575286661809962445248095722252491622083889715362935690874029575077644915660548356461855897151040086783526039576117729472484343682765566526089480024035975282105593813574947520578779932320626886952530445727532500897537840124876965290558905574927099946597027010145578637883883138618472938573786855337024657845370326611816879667012938416464051603687517335867831026329378735646270007966794850667526284730207165235516276053121203613441314383066354163509516694334742729829695858532938211266868808655896163319877582362226960029447455684167925285731371369956737620198416938038483947926507226308309006501973738796062714073933266633451361455304685725465780539694103362343478572542241453040721832047197073464095610222593288834118446268345466194205668653751305219082733458371879957698473089953500328545213546468014118640087504553579632092202191505220209459793301735206623965604665133019936009398776584248013160887985111380189755937498454295632832895082346927997825718367592051003543573720070895214187429915395819939107043946304960454051452591020701859912032377509275054134083922553259027428520579387741423636268457320350872175550104469808259816174122792865954462267304891368487980485958044602212114467833622015333045885457856522312956859964070183808697042518378106279358324269097236608394347938725472690443365682385241215407936637203563985946423540171460021665968535614312279472712640506618834682639467742461310542239674017694980863428813049083083331086989761738937458189046982162634263861661958090525609781804500206499644054354609266529402403171815477208996016181417926709114075873588489530065830858304805358374038426341320847704248820777742628933206196165895116266356113480831770137871277314308892539183645371595230107674921576248922386881990424130690422550679387278603957712058612884856646053551497304276722008727792049165247428116268140976653062311293236612816334809046686977830989850922359846545631587411446113353258869356281997432024819600922699252877831363883678173306671591052222891213500442605698068303775476181282010600923419057151645168748911091678605312585040692102692551844024077076989011399627566210753860629445304753217816067431314785280751468491373731676821152816712616119748534035076720889795319409428032340675717295357313227795171518816445102662253831098662243874602009693511989659412609946585819121776614888432428175780520953931791475134660951425586662849693002396868930079444937140868602584803493411860151336792390993462069742108866905361608603380806385746231967046751382592065147854394822294371380345991963773256608916186057893492596627230013756487874165169827814539745650884723232410913756293100630309740163648172364564787167267053064445193710715035157512612063160804274925591148331197481999784537140300987707668783009780809964286201794695961111948471074117981097446565641583034110204125875148048568050729070579491117340519054176480829989146098757131672587728687812245845149928746536386538894171594805860714166831205447612196329819045034213913996306714643526031569253588054835937853029445270458134147611593020003232498790537302578336367564229472894345458776527489243340901152251704329957055851483327768039286271394814949278092381458614479466167835426542013878190830014806790860879344174278357468725680016017112928805457920830919235649510570778263660817513319635669186705597807038946785298228358505452020100372488247534081355208386852483818413699374268125358641070738848719907052755721073146463420659762974905898880244267481453868362038960983013159600336664956427106819381898808991024851116822525428543940798337609253950064088918566269342217915192744214271112698523945593844070623520460643728996647564674186972968721371159223241640582832674753279622298146007406448352957578102596517392103847415455560812832374649243376019413371807781216010779980641564602305750272461471617542043980306014068083557795845036261051855075805438651008095799116894126843096834452289353923427160333950783854011967311817698892042895866656130936470899167874392982406536165648538100361789263260415350350559259023979110747564418209528321475785642165961512999795899743100817928730047592298273723274457260485995901513909161274194484468157965859835601267202550138656996252170396542297359658311983223599894827286708689862211059244055885564074467802234247570249432591671237618789620020877159311007842469001311516302133125949637831883478044046840204679342535521019326003023971710926425199224232600663925311988608313679287568642092793662778216088630994325334373002279471377583829819642330945587767280720786260517983375005937614316451967775843450479022037877400265258291452864948851886394128732661508392076754173259924759742290979195710968385734854065425970986284871486673654722293323286164843091709167350239912169145409247000999739216401426590527211979673278947498714505678954291681770427961188079764221481302527752407730559170615257735277318040002828701323980112663670036732447910610016233544962991697664512897157227622856755895269393099053774130396011496323128897238830562308094501252305979100197927225690619095543442668298313110431061534561840623963557154942471865487448599570608709350739370009491382704453027854950811357016522947118835831106048024605651481435307636642414440108829098955276307154511898782334140676795329580282177983618945177089666579875707972842576367004379028317056569135172030820050638699512884500362971232668565052193173927289523070430187808325300798142639788597961964727729733615423544144156738907531461324976776849476087025837831279983659942689236943173292107269851859350351066590067566192847252483976213458390317163950527482768569385377194417531299266533476241018437543066900989551665421760915113457815959087877279510825197137878824983034174298028095775369748129063704443729511831310906246517731105759158370592785319729541439670658381946258742220717542814268500892509657075932117099004861573351112300171954225650845796580286687381264774455567492116204032761462759322471436258795385454827691564170666030980872900062305383976811052438111894971089172700678573047175686202523423622655319020842988389655143016903686313402228379081744806052719008175619158112189324920763143598641551783607269404213769158182946768855962135344066018782283923506047518498006210575254896314423537749712962003264104237614560536200627777180900458389588820934257218299014906775661972375355640334682459288958390984839286236377975761744381852651756547348210941765165254949199449037099347147103434497302887755097016922161561952302203045030066271892037515668477000613535747291375623273717455729520883203348619743173617125118243850815258999437385570427214644943082337677220718765561108764694250950895659493528857951118461131148522585903548141978762975128121356043936823852280176614232520688411707617357936785020791388600276995752918607614153815664664760517562647205164150605888457841201873232050167835657897407575013333114335444754789356251945974899963756374979981164616234691768801543703685445569327702735986447518221951644078540613327989055309981729155908262133471027361797044441405895548409577273343145757946681763453947838311028186949741558519169075968570480142629918250048975000474365538410127868308309077707028790898236608162823045249539488692406049197080436851945109269119543361180649123409121315800317094094732418773246838036404032481453635620675250394238609437689252999166348975147816337710471774833984146606294108416427942936830954175762299398103642099348790673110381612149563987494105457108639981748899207277203169714450142773794631178578040888439360140626228852845910185360311241165010371112734659165872844637458148804455892266789367105565067499081284584582557779832148468581332490015774072662068557574905414496189886446217475353602109849202437073798681583909050916041864393551830086372038769942453432485767683762967327267508877575189291119725322874590265763708707507225036433550573460848038286418924565181353351372088027534696358565575625896343082784728563080283306736871593530272482166182432598246694820168957333796159951366201340857639731091002613616643326313703020092352346761808679245275289033289574415165787986631554894766643548051796346460921934416205868766949412359238242598261192249965594937283044738759238630987043471163028719720119947563403235864052088033320011159232696025127562301998810273975263393256126729626664561852209696184241899877460901451138538581957855106760206933067682550473082460663320464157089095054038938450274025458872234407014148633455011511804166271635878410630377383036680058102752223789635883610918187049715532538121166008742525264094886824011304251925884905413832307386276811344036241878648245201249102423156979937217582822598026130599593491031767313807080819240398385653017729350549340651596920824154255135411350892947687910128294057041778173169337245194775225332306699311240997383032002562533327407222340809048498669780215162940455400439153289657037119479530091132242368875356281806130159357903282301932742755498616884654966642311344904952492923254565623884480234523774511197681157336411506714399847298621217930145314483632322363162380965773691105741440784591692481984302579314365155013468105309440665844195193317688882494370755092152115054474675991595709236118409523790090221519467910775094849064228681654807830682954398151621736244728727816995783909528123760824897269792568618032248100291956455428338237217437483966159407405051184581400614554783214109123298033184977320628814085677877106676513866703413502692094424754920264034279667637389609089350234766364218447193629579659858057631696771934637297990301221816367484366688574478574767581673277312094484787331757594136688647925177647370735842245467587668290202147512338246998950025705793728808626850795130798298870288319872777809400842957707005997256735752805221401094836290164507556049232108612320792777695214688351405635319463926744801957965421326633709637644805869050738947228636659534445042664932663968262008899626885373968119092197544180195224755985625508983056929586214238727623259061859092086150868567151167844924297617278567314591862676969587609949833822192610718261448525659923223588958088538084181769630597673179106856501240738833604573694500923608684859784627709748478140615489036871565666954330840464039596005407822159618099005148522446411430389557723549859763504579815905144686054829538878783350594894045396797820400769387476309852463386164370859839281832884478644051847675368028806756377381462990980264001095942592654738540329358128450984911937459816269416680287564092923943192344795582186306351726842089833648724857795006300624856316559711423215679718425494120808747379771740924589700255513702724739275878115918335528421338515600783327214652482778762209589708097974582297960202044714793121509539750370344364861220690594197091055526796960439171152806661987863493929060969722825323113995065506265463815830362211928712613135980330639716182689447254083214993532382456709941526407992311690389199845155532130782142051756584322350229864710695214452374245397638480477206969708831695045054951968777994637982753250258386792004543264935289700852461398869204810990581744757535011820006683918772581245785727274025225651204459440000963140734082505135416345404994221930865274337972836889496209097325899977191031833801759273548093862088704169125216484304487900461974877475177852527718906824315190307661647500449159927153288671788600235822711160762493100438301480200441131223809602149551076662888331147955197737938998225298350646461491922872736974226240590558350661787152468431666642624450259830120639800494347437784244741049348970314709492167668640161198097315225466714127901780133640249279945206563832902687742332885496848434630867887127216172895813696347108763040850270754528858236284552488422535207864611774177344650947368252608239211580545509821655947207227619192381571844228766190090344957105400817406702611104067313655973854837075847041133702232210100396966152002077214371775493751064268283960654629427525384491877277706975744049862579042283288787382603776036748485595222046809924737149769533389486419285062545554510241743903017079620027659599209613760135516406981584551515195335418413275966634602702640768649479815258181535096200556396097041189092130900999526941708154084413790440247190159065199135429406725310590633662357713378468924479057103235175949581271647877048832660755791855060238411218553144991776547459325963786600051436557583450681933025941655159096523958628487840448152058016346448947951169903587695186486031606122977952909227173847301700238093363829150543909108592996429159249995995508224627096445519949315148619115746418682666732227290089378027030385974303182489671312236872520850555100254714609398214665462408275769233917818931355170677588512115686136731783882163989594847448428631672327365918233901512789677856731911314168053823140717015236080875577343757380250448796301664864434800071158849473232291125591191046766455893547060404679907359820097238671332868502748141402825904819181046871818068530823344427529707768870132704437247003177962122864774242667763456133741877985394734158903518039332207622694209097976778459006154307174573319324223634230970291581557790867123366849814557104391955612261472188156172835038117550703564199759013695260595121455696712457131212808012700910824510647532689601824986864350607435481273406089077643025052667875449233357044770706957947494627836224726828651920918697168308646037223303227572490118879031487069843814853577680242137629599265739197647995982110914369452582436458886984896877194792542938307052261937659319739568004180362169917733150684430735118840747802004729676095117992353169906747894403220177358155060584729103451780897608047394387100299768784660008058790482816003374941467984185712831142869939316091984398474041235573551288810555161699255398925215038778860051586719410576946616384087377285660540855612747090985347429701007938820733644765212534788026109627235342794860040656484772031954637829512080041320731882347657824489508627382194582763440354948877540886429925655420431795436745408385955437598616305377175748717390418925944562012210646656696948016982798503820797827776720550129767531412387514315471200249626036494133754373150821649126047946198689307886448391491165993639380836736737327554735313068713435279216008991324924466616408087993115735729881480973436194780603560177249052892489424656745720572796255123282257945268458195559116527005526946476170808699665841316975029062588694784370342933420388917054901857855281303609093830629792743175034974192437808789350268112583073121860072361245148719870766703422439370233212686544583204674143280820159860806109647763089283292295943551130141131242452751541788917353985068681182385201066898074801166043212797374871256022947681170060657003655326895927483802023965475520923838373535742119036544431198273441350107172136231681180370556836135335586001054568781880156051795081326240745940972813642311260137135196300314853188090836190497198124672630456911124498193496712680210560794540001867456090966320790931748174564650804835745450623985207258159873948187335258721288255163779303919254211414307109081390366091408123646340177466206041281377189683823698187207278907661382856022762647887934242710107052932420504044412746408132154464602360109420985446081146264466792661538415081104632429475147857431785082988143025397775041462818583711435633290452014793402028939243427059978015305301189388697640673162054795589892621484997090226415103066248346797144651935944191642896054269808792649389984600657659292942135640855616256066608424111013327989081583593376525192539253638619708628144715659807741236862303478615606611809490195773158887862175631017373031120083990419348300882938087360962438012506208096356135287006057358366275555983694969205819669517874992845701015320312957329607412670835334325427264500380551740499754012889544989640662177404790454469625169715258348116520010473355206321850393336093268852058527076426713211351595916969620848336562135637038549944793233284262588820186985296718120205464662231603026055042150979961382980726877429584796933704333377233699900081085174422473132675485320962445035382412493359447851855315529767705283335617825152718406690552257464058119211862635241234052873805050284213176573251240112508932570097236017670345323367007819583835478516979466363669145133436640658726259564415853180917338056145419012770137964833781271301166373721725265498805843854939062243684577558919147003599477522004738675823236447284272375219447599451913377654520086149632315733435011852226569179375449506738234649610292467569352101061713032034047472762077989170364226228548656870398433955823479203275490749357584269424874860874183217177343737125267832569543939291397267308318293326855554909427635253408316587672582504852919258695140306771013897705048391561061228410869028891238792979139703773933004975157459935940730346743708658091137594374714507456521308502460401428321186855306377995253764409369391595958318325576855202223638014121000533562541780815929471639526212714432117532788895872765196255713742917110397301084952559807246682148023895039916991830180062106573027852413679695714525839990727777199950400381531603296076152618826108611610405911839472620282321935081031592366327873474572282942044555510385162207514933543462777223179903320877024351069736945275562640696905334973927437747139984993022696991138058452636026419778761443682029288725625070509426344933753828218261695090124501370052504639420375883421115605290742489855834928400686985049527245178009988622062255710152316705293728758465659222571341579686862498677716203351478106542425919404632127893698498313949024663537916543310380208345143121318537319884658230973214211010712028134094741507795771304701584910688596312842637643317870865665651360161243099662076210978896436180832231480971799242789148835992504537336956407588136452020514397281793820162422073753835992630921960892012373149968967579056105347623985255114106530045201870836469879056515259656022034867560322048049333911264917442109236207982440584915926709192295055956576871786915067223702978603739332113661562417839668235298813244308515426670364779370973921861183306045486600636061030379885528963145816271256674824303489871188450608800957137538064922365264451182429394302707642123577307368371457822289325468978332801166330271442404948557830307164294421824051387709931912529596565280510615866095114188821249646575411021569684587735318174016339493867968991355597970295132846113060642285128930448731626041459024350539782664148844956435854486913517295322824564701841195723463663246065083422972960159342193035712800508662805647192557858032561644621459829646353574139026198269640899468193159048331416417955843282179361724618284903105790289864130218758695025704723177912120464146576886239669634964426756007815175212676509001603475831017100209204102578493412189549652950489293155821644710153097633512419173381291507893154561716894792239126048324172795976833208479970634334266478762186843645455860642465704337870094424338878846100036769546052624068291084886597642997251326034214838925559829086001178116706529605217644002805691914272032022150274056130340646331739221132037403836317506289488172684225845225332026537671137711998394869398169226540126304882571180534441288331852194092642367099514075797166106642496311528309672251835749435079455825938187086457657144417320595273434760891085873018541003785127331340826175709975962004970270029033576427191305444186394581356542599140866125314188441660734069242003187847181984556213786129966182281850536534281750852838983372773063124500160498889220379043531622360921757124977382328666167224734144741513302806898123904370445376642174318875397376119132357164128798317809530996251967980233481824626544044051692091434879804799339472385150245719081921286089275935301341626817306811480458150434369741453052465999286976242839835822428764118574362936427243317343854652306901175461835635214277962519583720099443004338861013878429125730806925813343459340516680024612604398743057349519760128487090245929835818504704028707729748168352011255976099515532041893373371932489752592494882068846853078066598913622082102272218480635151266279252255567633810593318608779734098040227754944865712617231533194419602702846945612424058109917684417781041307611390100634087281786860181881564375525414341173249897916817294938759097703784042929062372268941718814180586065462258246487788987474869231023237551344244198428601984301206480290554211924640136367814976572308839728376046737828820024074520590216004347452014713679581532860294992567984286984635386679289632324542576702928790068672774002616631052401373218075743361864563659336873397742359863954551820720923631144284601721588181994825252124065340908836864476868254520628941820168041545527197890379471239419016353940257778414037664777633066354288929807769079391753261040794210296392046925761365826456974051244554374934407601075847876571293687272884840584134459254783354739019492095826219180202942587188503279715686362282875033708992122027322679069691248922010671490791476459767011242381897646255364705564166729526509316767776161501976088565220650178169215670219346661568947253620960429052035844985956869875328160075176465547948735369072448684004578327964044466752660376872905959704840797681231574320890600159549190916549601511491886516263542909679290911319574271818416453811020327133422915166099710886133647432934750512882174708915951293385104366476598195741871479718062077666130783168488747912361652748454958778377013488876544517899319454986741684717894368392245494981490219957921621871235264264226626698159835969827798139447497544482223722679160594078248541557196340462075357386765209136457772623909542609760485694581523121404683839076140942063898650082193845518326964881258139291679412584963941801421691050351626392987851502942883988086190496380906058508678039736177597773116257321058585397361209375679238971451374125188102958422191868935765413884423345681507502126023802359698851150727038252788827252558255921366435347301201223128028826841605251103555321160762099445092505616506159673314216261138310398593298288437795207793472921312092813999035157350451899079944501723905098452024922427413711160353535134634676626170254269631328660900680321520528106475936395345891491360529940306814391811191830648017026389284079957623594115312069224323914503915093304043397712952548769825149588891822933252911573637240888174187949860596788369389194501583180594331437185836284337781261194923510501750321749055566731151177587697502229365627629565713319204569677823822550023753875614700025378009990694606352076488877978779740416482925372116056844988268531640522105037800994469608644727236890421181091716165261559348550418244805870599469793651836678776875294229038684771724584886809634687033013155486129662210431562306330184736242996905148714149095435805283741862360750762245957075728899331566168772024637984874608658661214107768109615513222726992225441899314512816035052784103593723776662001411199663777718152571762064771963113567189499197808793091314074413629558822854541197873740135946617546818171019070060698608036845306462566321222300475787888389164308828283193944179481467544123211770232925518483081328715414542609382306974800832801909197774812445240896450331119101763384235485950213866612125240889245336435301311380506697923716645213926899669780475689659310366639491099307210010025024770865315152602039636542125323324792009367955344866644356936786515264141720799007760432421751258965172718034639070225367726219020489514351114744269524522452554705509092079391772668341271651964136467852564174811263584138125934628962683229757515928582155729173452833064295026623980238440132584963134079340484834225813255868656542546910689122471469488171286708812620218492563923528583768779243953548830967307420037532128050513051514040147263640849310423010599088042831599007908771802240203484831656839310920510838579121382429861545604718329285311459294290903804295899494729091015889562522226963527333609629661610018216016498793553887401735884283740946685600918138851682891326934324976634719824394772871603161537488395917788909387817932081904720770888398797402557405199167920824022089316029496864713634562826765395786258490022481865276876854332636719924333543922252745642796307615399160257311317810966221677678748633809819843977742540889931829775089565024279145952918131525232438383967102051494958803842563523515392955563076594896877375734572759662031575854403657417170284527327150978403941916926842711097701397023083574158712492561512988163825054575053365805827212051932462885598295698966072543183638772365334055102137828840105468253748910758723702110855011206623400552090832496211730618372251397834349604437777400660457069770035761264993306027284001213012817721606212381920619066513956831741951425026229463631758031453372840943804702512413594340551888773111450699923477541109537083577224061400586101380985037210082485401327981693894034105626638478598759174652448754152700253559919062862762465546702740817945529376389178744076681936420949050626208932139739245584191475085226231330910546734632369806085368391176586733844724308131111776521029791588345439322039251819497102203170476833516232048132400713232892115752901906242784747433777933953584074045018553706467755803004581959928508229190358869960822226247431304110307201182733865315839929578524332477814089694069205909428255867356871356469542237509942884407685018141480456251807823502274974409652110860753928903649350108672338868357105617527611294273597207597818681481086630856195076150016771849902218028136440961200206223406750069192107560542136153177978799039177111086157380187443597306744094236335022291824889915346249888997691694426563957688334800232607298007315602028335192068039270793062573793983736798215493249544816126409025902082414518072138214881926361236029002495131377571543921872454281636925937228520222404366112910606870678266756255656991823819838035405693346357450202805743219631402122151090042552514427635680763860025167081262954622602571225571136092800684229577787648056046463477666504998296006884474417157641588338584094359390449573049538410027134410549657688980976955682443210795733002694454128865501241121681294511509298193061285597331641940912500763361376479840714817926202733168752214209674642098505894085988900214315353049074849700217879579830890333827797128403887370211403284459016770512012507725143621373855570523359737968477830670125165655008390744467242572488463924655726087766835721094500075651911995372349328871356724042508196998743222278944630885278623245819079466831523329750924732534416425999737318339920585679260566988718666195572242541961566619182733992090868053082403064393513111060925311436836668232115569232521908480210525769938535997674258412355595548386330941855531093583326668914083753975480639892471292475785963050116297264594622987982969171058178475772755886530733010388692070418986369419879446901755818145643826924169259423386067320839135830937165467431182899200505308296753593212664725272721730728638344588451473576792655298276904540111694866626520247820571519750199496832491682512592303496017998703549788187515741389969358554301572417699372070322212973414528444916597401009502855614726638762117497793847706241550082356629425571714482989069162919421589483685711446482805895989168977557996962202124470332507015859791357579460863960651167158639044833193593966445169981937572979571685605199238765981921428759236548527101546786569481016664179160182390990024985739533409556411484930896774586481168581349665533394808259083203436945999001328899835855955023331689787828447817602553531892696413820392029096981167179748594277838686854781367098944194789533647036233367053419985412588927718484086886143907024695115931681679446651672205926693273727526103150419116849808583690606731078093616754427248191782019682977196683457034468410008462204985252180480895629740741986723224522290782938189577003680286071726107766869662258038398357356925147555774311762610556617804827120235102235610927139255668701953522378034367706731349029307728054994680807656156581652136972438760698189778224261413056674855688676011395241639951197591842466348833098416967872035579997319091155101777058910570106899447518912129763233500096142330807691795536387225816796469167217276947614725208381673577926880089925681078621217165884863285845817316782947261740537448605744895150608355185774300968550700425381650215925456338869273382422691079124129496651860300845601973916020946742438226943698905137061100784261711928442462791218797064461566330420239246692501810423050905783466667657907469305162677473975615524988760777781501862239392503551229441486118268196187535470919695311248896591037592327594407929950036217173352899351377711652420132941174308875602292631848043656062791047393157806500918765475069929980901297840711666432053168158954895166332181520142776298997282722389909255117206727628035214966560686232777682969112237733894286601882784825618566010502579828519219792562344990628647713251144376211102041410148532596720298027636497776401454630004274585665182377355843849233016155331914214092771233989689987020493216105745013417450310782902630305461879312973591430677097738476862869355784319870435260897816795245108824992510147570679078064064562523016838374672479121679045674208962752278625581242896610398478027142972448722990630216332856178984130745993258626307645253531395548752180125209170050836803141575605811859517030059650280153578487904488041988954504311349661586346080362946059936464011162610270808845842140955687926561381623290482405341022738931890633261893786976674619063948043335791970343178991227897291394182399183775474670491948621894029844582386994419015459550871860400005314627549898171885195070323371983849171466188216172315575787248675869625041573915642316973209424470288148502251574417618453171938043396241502539763182256503881844988728012117122427907358284172757974626270373064436345884160294885570411223756024987506266067239731764518367470487456616493195276613501369135658820536499354746370558927062143153356840601318618588376124834517233657903497912284411396054372674929465164529506080257618293905601371156906375917033392826845709511360626297703743487820774501829259662511172734508368448345223843397606348462370244957064138702539430091300904336587978543780323561335933683361798970064289449324726343465122137377144635765644892412811690576842566626667930795203589508880630471476941878873657090587213132263238517675991211873052756408038932230482753116892636637501877568811720039061915361740027727748514218949411071908845765465361026256850102651233295124648805367324902724480048723762654172987849660006711830693305574926725358525789394703298061199476167319967376144413735400225584366109485536171834950348570841433668481090450194772110513364981417397680291280854608410082251403220315652953338687689182323256841771463394931809740546299151650831442727914875119374281055377280498280100809879216051562582936756417700487237199690008300439098035655411971024211516659619990458415971034545576126169146839576423069551490090582350220509533006256361050170816913520106169531500567139007406902582216760900888846628895017993771991881940216062490696736215977366347212487649871712785395360361897749907089151558703766671413146734668306760660731452113811541216234825377626033441153773646913477950775353472147679662178586889590584707693399199107942911556479882563734729978993022387956299986172336237452093286106505830223745950752857241715832210030162893583557519105559946722485964488608325406543385399962540431972483329834104981024727463169154329516076642898569428020119461518499577232675223151048716707608712991644658523962826488266815761808432167625369785062809120673990089661904521457065154429922164259378932081169050575498252403427195283080321431185315254977524142732556410479571447888003406443845767435521380861709950612993398126662302331407133224468688250769933229118333238888437408682785354501285906355516239306119090689107896966222846068087364451166206846705404405993834258160623841122482458840381047878614479029480444147919051095263961959201322857554572143057347655196647261395052727678612603980365676618016618520136162412363356760889732568756133049216998527126128961117161525085072493240813588809388725156643552631398272122478718555206940241910231682027678672882178450996596820687081481196683060631237758227172058305759101032953052961576887420286805056045636965090562773320550531758342148442775154119580473884956833213631794618030595669864288994398343937387442511062080722137267618813316299939662404632002590707623658864040834942107087819224564331402169775271611241841164453643997000435788887074155186358101592502566146619746881843186159115484623827214574601935505732578857599752315538852838868320440288809722005381700715715248479572407232229376427870573844971277898196038257840086930604008949613252764193246163284114258935041710193134766960259667117153884036141657409423989075399480437672674550789218344091972417072205977962204841972557993333958332970686599998027069581595906158065947982885003865668333216069750602333729951935524193600778068450807135383088253987077416875965250511829770804675872505695139628806016998341704195857845586283908019952969277111462006536030831399590719874836199955100183538931431763647430473505720244120626498925485352353777464483771715987148326399473292130334597103879877310452242654171237621072034319314143502653766318567284625351487327795183304362315385078961559043982590414602320497073011314313878618144095759318866495198093750643399830646730195346934240453924580854632304822662798504589524212460621068320014961955090768092379278399910561657956259564141233278388852053355182617204847622062796476596000387553299940133263298611825533342159264023917507931592483904288600672709612750460740661487755106317253900736867173612821300169702771454219633525424171482850908869367705879519184961303873454332424029974107471869868743656843711931766950056054045650560618747543653310908578450036812834007519930435510967614809661757662183572225409356375599684486930816761323723082579174721308984814375296810028924436841930032629663181121148231709560155935717848028306231549818294994283754573703797444648386948132593307950641229430038245140112444885120873253281685244597388011317997001983698137993662416549856716876214174579770765998902008244081331309822191678510084647885396235983774401964512728313137247740245820135410200581747567939370218310373126790240607488748632157213410377980640342465978054327027960459387297162157853950651805474207892295156587845457758461537608433191138166646200077033913987208406032565695529843148151853848968958161680063947668841486705107672640843370406674784082184695432076323188672062607875066156560668646074722962523077470297187401491661415423355287129269447618581804565857704037410715057178671108346288576820710705450912443168306840546705656011708703869972557735164764293295105113438807351315923374381349597384591174320858160079319360039161814647997728047082435412963047069403615957186001230047672926458207793433025018425449939270793180535616096213050945819691440415000948258015312949002576385328540767868304443494494949391761605863646246944468090445902244756978329722998353286024520928928425131654943430052401701893230240053430728671738813627773397025766446191055826850468018970117124935100176442708521893298677731758369927929240306776849858883320917232749517124256527556305002039092560480569014806438471962092465505573405317254224900284473632380570573801099656871271369897343541051431011524027040101046263209444956168189699753701165712512442480450022495437908953837177725155677406182877202026103965993006816328079901995211422243322496814918226915488158427015903225055938149720201170431029059892056609169862692848323498808982457820509679929131979064123675926509204155250862295109900722306239727377495437491694059328773713044110686945878960252019520424987337189270155448687104786927926084052236280287538971131563827149660603667492968324934500862970631958568470796581420905242872702443404635441273327046845456437455417314321070011566442155029957513981341938573491881904123929268798263790663814622657563858895529136555401392544875291023155986481658693530592797400046441059587891341245474993487990554880160513893395304837632982913122982640882508540497163831955662987698311759018636660256221225171829809588672271662788651164703143573635052121143663981980829499909464933969211834051092935920328860002849133556283579512898880894360961341559213448546774206176957532660795356464812335405461176774317256687327383558299070962595447080607098427224328774393377407912828822119762698386751927169122912078764951347163217432529587683538878674105293113813328862879167104208326329579391266398726407602972564813814100935479611837615707100283641021138160211289848372586508966150631372804929064027724900439706546719147702472806651252595322850694795785478458130172712420400408028933739927843224736476842805767836511258190936353457043726606885118616437981694769190741004509905083597268896309229066502294412874512978726765730476984493730339001779162889781967504113944735551503602912789534966241180808942997907128475393484647533389570903958569043371095654587255962509098276832859063924530657008446310909474060950370576184203653797559873216744059632131662598927746001151389905377318226327079108799557384044491498012197074548338777076310524659437168114205760475285268164086886195389188302629410152747600751970428042614754855953737619977964534705297806191341609404122789432407283151421858812599869132841775163106488958423198212067947842426640985238759291837518477042112076849471302272591521536783515943098397334180777848198922494680257377697957611334858617701967738412396724505416870813283135928615756315349544588968503602559488047698666100784460410141204442798822064496209424439206138251272098193044707752829002624689257663696427830245166028874850142261614419417816890987666169582475866068952666287445113020287378655857914699915533831004903496267413168767955791458785811898501156269148598017234055938643897049333903522095725437701366233134389438454415029031022723783619676663750464585208231397793468954653617270163769008841226385352948468798350679499936049435483923120154973198331955446222737937845704431838140569935322890201240254627741116642550034588321133706681300721573381829020194418639500929509926816044995642309189777341343161009499414480279056467757966175886742853385049331869336957135375715401485648926702813508979608802462991903375011053181854677903702747259409182372100791434784197427206777630631245944268905073725822260214260082143590141928717764976616552866373363435053523820296749685845249340312614397878461894627164740463885098663560838176470531196682121132736759121921955070161682101609750235730915466601945656634703650494967054785112663003154282812134764645293922834216811795553682768570563835990654862062650789631563152433105916771093231232648546461532571827396747623718148910933759011956287921395425698009411669305167122639149427385380207535269224445144170489023248987423831919558549858282425037157246682864211697700817119856077951754144252018218283963686532809551512348612534515157509222777837629513886014107266035336958324652754520029370343525164244590120044014738075509572346769440906355743163214932035236024538766227371363992704725358153965736348185018616748040853720344753064931240254298910404221146989521719387564782400527161640762500987583397450818405808009831011796819152801229888464163931920874873518418872928864032757486598771872482416344912330205391160060354726104556016827642389005722423123025650320254278183620096024962960867071654736469297659689617475501664234577554446750357051651659486569512781685256844699441956927301904342281167378271431387567290199810960514844494048478023631604743580315649882633497249416948974416427770235570757229869888820369237078019154523882283924142718755409160155843806020303107639109971235331267569785468520243778572999496591724050787998478459196598231375338870845881776691326267046070276494992549996969280781157204696669316199989977038596571684112231776703681058819636908904441405334326483100072845659965033428965692811909313618907017482126365894451246209714271113758129215484483922980047730515905337422518365241045202872640149404886711578497883500930403622784303057298786946548056721965566654166559588292915055897091602260877599532305475659983624083246111818476717372409985020419653548993788771185174684646784032530244516689704067935514094372142347841534648671798775823043587054066987569470896104661594225753166527883032863322909575126706636459543465749201917965577605876059357830009887729322131063023115544661259203705135131163366134096895201083462331789897325164015908177985105404330572056321297538490217710112549685656987326727460288036260383025560475825353722976413054137308907466978349106772891544693863267690099568081824851391988826211435155770934097554215086907528483632149066712747067420094721000633797397811745396718357456711150410299675387223910207977345440025462069992559161749865346739628030701285799611927231048701485900270066769226493184342262736290218526076013239323502414620799655712053756404684959119639875121445260246727349607506630843154066208599982050239416688061415531495508238982739804833203188211295114133824077542846298282461444213155066425019528108442965853124998454478219692846302174933907839713208707169742710779555740103848058954622265210582106839765743746887915130705922126781417791594845496176761470716549404937056050372155481840423208216219364140422895919534368693441857674776459953472242870052267904522473515401775393592718950818675745426059412064220986677573467986601193313483295142924736895661035885838261086329711244227077564093246448886875872780217283645038786471361599396730001783584287751501655594614557690904748966498036387720106883719162053494057307338025644057025646540267127008285313282863052146684562093822355238966608216018392291227232704890977643934898365215559335467552053219099252349491770108881268981813404695689821968234911445657209378890776043949565877220349372486011584866910794825644397350037747173529335765313100573877214370175553891124978869861901630526947692897174490908134572216391116344770570172617191476781174129607091837597698970121727994514348563902328062770378861396215266477170638683723122798928514543300856788519069434395081208942156581288031574756063964439669893261566015075876142460388408776648706647662301225799923110215272911041501230903491176053595032157040093870221416862882588878538632441232484477047725293965142243521218577584055755904788509677290933067913033620109054802464161051414998726057924625919979951284504921232129783077456726652184935787169558994338658226232899488790513952731416072610762379266522134250652579394424484193698652120097376322929851183682433766822489176611006435229458807456057373548435149497425378052859374835871555652368835334020495153643387465367252068843191502871376194904461244134624296326072820788953033098577976817100918135493690873213175184037586275439556719311683422323721234741438748443469025418265349345844843307915441184078804781349666536409410172330120728611751590632463470593554510822562629136325087537700114047159561351112233900544113437242149452368459838948098474217906805544418393942068628668849654904238686441880805325587936898274040045092591787686535954456346144436371550229186895215136841446091330516950996581706684870980568503177317336379083472655997135466741745157026750589113126123251496505715196465484674269107490653099871400162856033026359187630229679132056432678542712743785701114582838129496607079653609528821080234515086324781775771989923643930367912862632548745579364894583876146378372109815763788734306405499208199730307421005473172072827759387504509097701909447334791927364462415990840213274815183550063511745757010371724423953645500999975313112691292495108565338448486020531265709734907806663542570426604373205601640722145904603187900253050951329218783923467080655793582213630439887869091987250331516439345534964273334628119938430531602160960588429352086857407423611505722175502480435528556718636112846528622104288938682104178113381127211326500758403534486468825205253038777992062323821853096452490521861153246450420325406225921248186614103095451373279990683867761500075469472792848380896691569708828323122510079170654732095350160051964820280523637070043488324477914395043342340165125860677442317934460963717867691777239930083217475794615812334019097728798100885646813801094668885769684137274345492271120494593906498733813594884794717308873467663833769931784115620544273862500959958493232701413692492660411307671671749225261581962692599616426835802127507724465554381749701652511402941246777651545823711925339222355378719332469625007640177773543275651064142978730285771312161048129012863227415012888640580127637601487213936082788128363942242154417168991441312452867051990229031176763863218038274940140535766041285434781803257120838466498662861828469765273495487984690262810298049380519215144601120113136051727829973655163564002554170916444415544222356294315313237632284687903533446607910916177217232401566150167812719422661975516226868846712883578969176375098634888764779599538522776401338618642718153166038213664828557979166836211698929643646649466765209504769705303370069966202631780500753412210408214041602689753850165232565850824963159214284506851704246721964369590482775505707081478679304114635634261894945105954358851994489801430475037858670564599039890677696873902561031743226605132905260580514179478555945159198048754803431242544206060193602800573645025727815350554115605178572208578562955354283986213786097487221204935860609688695436554029255835655740328226214305106477381187601961540398801547490955763726595589599783490996758661851785412677639276650970033654404979132803296592449676160988101406145749143160661951178208321680211752454827019096974645258180827232417144738488010494514293754787583396004674795720944391854527965543738480177083540575584983076377165043478493518805850543626694683250960546420523837750543121884847223426933391177576905011897850497860804886145540063796963871518422772488064489063450081686831940905929580668271241463692065948769509771088196513209471477276422874661368534361085707542554678650623232623806595594826595918384155322633793996537359655771932160216590289042585802423367488676331597931848837910196869294826580566884036345151568224438679072708398494885738896012694289162095770200928992958882604413732513596461787750966196059151705791202400765808141010729716912580449810318998194085699443439339126132492633356841701226829842601658578682329964618937396760507299176889717207798501338665721876341421515538277580855109799876727089142633134288209736306406404302165448613919089509775547453861532788856763144890814439117403260702843915945568331553427351070722750163834930113410881036772303713834191041241545439811023773674505909829782219309668493617046275692309403954826902273346994769949085757456696387300120665052494619656745956250339708146647977995511242859324936857139893810813836568069800829419624845543265422360915871917020112810169510387427754483406411131353495961273857357031268353132977237555109253242173323118680338875095812943791064049162255842522765910559608132084490328046225235502311618089760148541254997869820784535050952082256309368848294168875245295850107327779229955253423706490386466026584986069537224954538411136173803642080401964911490120387590146097163606335688647658378756807007181091125213213382357596410816888052883642672417586901096923629355210484996215155033441340417020710440072250469716801800107276906773946330013889658522017306047724584277734659860539757258883150252415367374005663042293160237736163455297718577626038345413144349122661094329656258074032688939749852976948952814056957319122363480303833801915103540541343401120527689246048738105729899002148379868371313235258392791847018142384344158440563463860310491407944013626447828516180105212923958935609632285766944886448170959364284299843273161903059227438308756891687680401694573297154951778374263779036006472067101555621360235999987014857788364766693938078231301500244337293874085497643944195817575855300324194789205842368156629975400414681964035755306761849289039320858021574404558646922692796538877871520470073657041490997315733873725135947354200038542343189690002422358517970967301067637544167589696264285111597218392947289587303053565881916814843652838114000858033921421970694009539548565243021937937970945454015990385955063587945366883786284894650003105996190580707833634388103910060871492799249088323253224678493895639885694358566805727947218284638450071444374988945583553454262660397487656920255989972902315841511788356891718916352797768715469120697315235015825475843938639425415927163493854219403996664734456986827861857796323991114515417631929108855749018569147090555014797871813999413379736938392813872204343153817651626495899896792590991597676638015025501271416733077447306750274277902477844823087558708880186786470363747011841545834228938231689312298081640625842067641832470249617882865496687748881992097697030611203125127674056654784853328369451886412225114102240130435957008973217668697907314047656966019154590668509596825973168438939169292659194885025382133042299838848593131578742834975122225170637765033859829326178647808981768919359461784140513471600274760681769003914103939161136483780890798079453434486434658730856871287344276154349501649289936904981638643028445941114564354333641574424296902731479059266297663726116617794077327947808369533106777987586115713193707726047623353532576858624232254953181116941213717813014499670466639698114148204164167715313807655287213175196024490145306024729852532855310786084388134770583121512406540335714831770173792732820893913944266607267567990013068651771293105967695252081361038996899680561832017486989975542213600686740816353894555211703169826924685215918743919259984466929384683040852825887301759471847563502486341070402347108358021872790957194284496687590319978102772592886532857724298152009856186851809637007565849530349008122055368285038835331841919115394167027732547262549118138721596270086773766332196391028533399782867583029541973369586120365139151743052656153349257785139357767703494218976499301265386981503760958021983596920334724770258381112620256985746376170378076099096320655983038156768789662458687165114351350595551785722653837667098639725420714560065074641716119615243019920015421575728627497622914681586411426240114846475181716304579354875332187902506790727968061029016965799893199320759575319053120840644895583931020386610929792076122991889166895141629373692402042385057525280041913273418763203244162439228226665264658305981681686169985710611177326760402462325738164150688696461579383820843777768181869020479905221939966516969447578349202513486339752832531808930547072490550015627031900690007495487919294861703873797460899470905800723180788145629646057983593007965956601395575208605976251226363029855366826026771641384511331101184484288703716123048257202313551848349419246156888147985761604685162588045221813307855326582612700560584834767036100068711259223927078389825549669742868875105715923701520975780691867901945176602333693936566871147530329835410289773006757980859367144575570412158162022562147880093275198464561788241031922539926269627242167545960937226069464850070541413220823793469323857641704693692265855305758712898478061230729777362898208477457742504316112706592635150606565141908256097192781733210783772522911004135079065759946787945196446382670200365916100195522066368190697885537567190213130415136410437499960734734935227184836780274457693693722450669193073546925888944942462395904167113136913459865133897250416758424365029969892203942023759500241438674377524844984596579223150615137853324110477085857944078602064123434919513309144079870117981751597780152468435972825665789133992502089672620053872795559619889709884342942281127299655243677274948656531831480614662618763805293108427582477354355331402078593712536525279617862082593244044381608349957949606730177571403062941518299330200521866066673356627048069719600836944264139680027678251714058507492928314277285529959742971217404678748747395376935445956527009596760144008634835518742382798765949989190920712894315136935289427845235550005136892929915289699793929120433874844306062495508479494754339398392507076867388889089177261892270026972166192049510804260505544230257892195747459699621439075206652529173059876604753283197124191856272789728927811917280784389350432909425514412537424452715246121761506982817538794682602111532688648383548959060098925612216397094628240793190499354832369803067761494168075028055878471508392056413729298355074343330115947491244740429640191809993219639229813893658178782804110760028036969871557398297344665707740183426733935971406296917633039254628704709606093632245673315513212506797851604049565665553154828179610305604089347902934439194056566105241840103057737954163218509064036796156781324530580330925459214673320377061167122588271932973423889091834577362362409878023204094184919999748567875993497267368904032842084435448061443978254544353559314169396088031942603386886656399547542250459884317792878416838877338336115792214399834271513650577240562249273336900026753624828695755151635541331273448103290844283342475230953835331506953635747860999237521042587384153136763598246478199459985371325528904078750810332372067493223534530269497863086506374600437175913694367279106602859004951135205305209587754712627602608084951574028873927952942670240091380803984870877688746807451239116015846948813924041760898878905756411585617900295136601628946792747250415829823325159118410076840449927350629362426376887879040857852333580012076620734747264949676564315211078109458072045119949212774850797108513685993928483935642818681260046165843293479062989384720434319626682423685312832852407851497826732797984270437783356397309081206842882766164550226400213606208049556354024716007593662187976903227047988692310623139056884005364886093714728499084246208074250467860995846181142527159870336626007706382452454540552241585133513843414062539706081391562695140128725928092764063050864282024372326072318919699285836087981240664719288682617618805691627414741384032882663022757294895048700880637242048591558136517207297051223164403671487336146696566201561469595485304043040296784231547105138766671280351016492862198947815666580439818865461845286894912068507202778260683187543327849742467510627032818680795337615308323945072555952815281521519758972778434327964158169859793272465532182271373606013284131496115447052589972017460990265132276093346568329370014178378100323362319478870472135731636930200201038919911925259361019847445877683549702915873865167975573472710489931634531907298099731252451289008003260580931806103907388994455350426357087741789114166904477586950020247033009020924869330632591474829970747843470340326319683678713306280336497091294616699657341572607843587590411100817310545835895641924677357019162964020489728362318584888265393165377898277158220706207083105653481721293100541448605361748289277676600643156012753298759152295860065129262169603700602974501971723018454907532078515433156479504599051849777496018442464749403668859895758830254693687986045040233034530777511783015783470951235322047437447572726481885444512684320600802223595024962366249553956503950804576919671426175222361429634970144720347560011395701095269992553381562854722043430100601393266822660867418869199006084541747817329022748186417462448407744433101360504927245787496914564376432759398856321599061739874886526276197982804243987824187511839167682167719805167423050240755722439742578925840706056232340924563820651822581513316523431958902076676511653445468695001650591740090033107486155603821635260623389524639383506911052976926941527161216242346551646130337090042099479652644820609081748596884220156225354198755027105459372041518370481406687847544643431692213934227717204642967360644278571745078322419836122194289843672847428766899658582077222718727459114763659131272439917854044321059624125500607463125979307933190159223495220492580437287390323290098050654180960719800002013677243213915149009154059161498331647212331956461593037297232514800216398745547166676629663969858574150319734110374295410957671515501291931238974881440237282613618342661901655377794060164155025594991516497494018746801979466801373116225680029499988504221175257066199207867438091432405724975185364825522518421750854463444940245824743807134238646671950416948517783212525410331393019086546981063696332700295637053545310873492344898834997858132757838637783696303744345067346168984534092089028317169568876327142182921502670387350702414473077721200813201994839814398610866652608497299725654859297702563358962898920350813373883122047353766736688236312241589344590410338889104396557780494363324361883059248180356340426945247097460660983392883900255889844097059074867040254029576919430749016128162949782871592420251551326652272826547172831084641301846180255211680413226825749118896950637279444650381419572512699097827023152443322680200638303619693198628553982614283342804435197633461779621159842300115281829359617320796303790028875850196057835818303111558067973152953192237080650683944917496670789044671146477487900217614345702324026837290320378566704336158818556075664106228574194255364795455433439350283707037517637303148989411691978833653574247198115292570241759383724156902469689469010293097940896693302768720158078070596634456370679074833870518221173674167445516732342206645987947629768353765919886022415387259502752693900241833941180699132622029581812889340704814041404186493955835196244159661569902227997980635689556744204077053833568730833400713911336843394483406657379136279814483646225000325567785098480467994245070143023845986434166514113720505695829870277320063499091088660818026401602754830366284056466597503012411578078330406548571434367838836915133026855571696498081189725439271220742892230737474205071439992705819394292363897105661711400274851696252398746362997095352601687841744650880041042522183199593033490735798061908908117994674571896210466952300705015068947510830005932450698407259134304868233665460585693681539245661255655736865399063258378155853921221820099622137281712648053199994412044089641689143542754530125635370792764032851123922822864466349461124636042331384525592539188191285411788658170819807509070083902720676055618322346753570363494468065837897769395687080570083933898849880584990798749607075244969423726631191338423869284144440899082566887757745792722587504133199426191379323253496818269595440536079703844700014839665026032707642725415720867632459590402543645203460070044387500179719561036577383251558216753286597786617168002175678698400308870557666332600177304483216546537410677479915020630709106388264187394595050267153898961800968850803392362938521264418257136616555978571280403718361188445566325273224518875633094365001298818712272186641868197511426595521561799687825565973502400407818626275394513158660286080392308004568802511512047465565828850564131079962895967432143739057814088511155496011727144517460274408765864389887745596232703679399753742655056167228793632198230667102908834895148256999134035717015748365561965419954008819956626037562996364243868930468982871048193304593951802048733341183769790376655477187427629104448500788926438952455118950366503598374101139260464678703506133603578924195841333751741175430746050412391037820611326369223556793283637068623303403679247944770522753807839803446968876445934106919531037287058515411957894158224692173517836328414741492130790702033255555898069311246151876915155173019526344938846853921521743312434864049284901645534629018891129259469268517661300461172604710638593782582353071000832507340472699410402764470624135116529096522452521206512089170071820410187003796082609860004865243088198368082560608802121934736517897274180145597047665513364391101446642102404936605141828586619806229767672392474848587962997149687935733599182095126472590166916392968360534492250919252316056352147546591741260955353194990374704829352283509772933727020888107899601261941641048511057589038680172333287137120655799171581471783331403447559434444680177474336922813789729262484055118645310711181376272227257735408937023597393109235231520157555975482956272885663491673457684534662230056057054131917251020477930474996317474042437864107452258505263534557313930406289376962654095019435444874847981773492663805544854698822518973139580685437584498205492083135106063942543647039784270641923285921985567994446303202784143814692618812698894953484877990194904118033343275790317423681604487693688191682438788752228876992818250895474894491026327561470081601067097263251411116143159031992085816142151259274687577754703229652291137231054655578330716170064791669181450440974621426477736730938464163246449254136062056784383919981140071655617576569414465719801805763587289242134928934152303854443611500770858666693105399337604990077999685699446068518242065314409824759125153163590660633305035140231953225283114138607688006370884228088434085316562192604497042603145551103033477024602094491305946271844853300216279233701151810421132758304105788098619490376980151290830836543656011564198547299407785919257999408356965113833631941641328329834180947549067403244191829760907449928021226490402476895817643425879673991295743796883540478268575056128571835345253941115262206475348663158322493323915684226896401533975499942280541123314013393837671047067902045177413384281566712549559276475006900635664266176428079427367549113790121811462894658573099921708366201364526092177652774718402419748024084579712065132479396340241068057088311172234634176658304532521777076870248441833659944870933233616585618455710184570827142726020336783798240234920621417665012677201986706042475551111762955188624687712026525917229626674383868746263539602213511627865353323393551330225085128890320813224624378551524698798224319375690940941014830708201960746753350095009579767926431443129683276619105030991534376774815000138142580553809808503274135419748423406062164760048935921124812806092387946103057804768950319157310415910682817804539061859357370933909907724384954872154686930592932829891800256534122086063991604800723579430904883149713111064816308066396176819880028729080627332746250189872474292302904812847661713272510373560390233988715919690117635590603938381078865961393047540827394234230744754583826465099834140661443868552549134557512300500368824717037163522750848478620136469554232116713620673922982627656642413401600886443124021673580780703266778744107199642100523406175423990174147544283671641074595922205844087065343749092757621914244918420220237376686529742412273750791327278379260345006483619721412243965282706433484040917862481747426822070676888321353066462833020753841807403163061044334452092115682751521055376853044282365637650875858980737613832820945548165673019574214255800527786349960914798142155117748612622632328997415258781032127611672779049414470300078794623558010475330604380446731614739015309730301336909284549195166384173115289384645034249897560484249950539659770436871525236904253772841492889475716709498712333159061873747187407404663894238589791176569251006945206943602929023541044679412199527865068381539854078265074954825520083614603730761662723478929891517979967122089929500201478289297548792376695088759224871305980059515584916620477985082158339823433486501370950940834139623449031271754859658248558663224043319515797950047181599654324836568641491501553696935769744840176025402175029935091541747971040047463793015152648720980351394335155974779650886420284697203214186975858756927141707565998962311485238470523285384530629449396507054912999191987808071398232310184048767602739643479893966642878845567347584781742997276684059345672061715791398606972042316035659004240835597135842040603824118047934377090153290686251053815238527316689844727557872285604702941396124192147502182907208987871299041485452232038176401222290374562741439440572641268359931153330945718297646482718502785841125834150881335934610628703185107134380213964201339782108736977323870048524715369223288613705464957520830229888104975818462157661867272577523751095536940475724917541219992309954007505156946731540391743533617151603553882475900166933603415316305482768123555410194187177062190151746264274547344709196824412790155652164457990169750612295947399523554938362965671476477660220420908072312539164379808872083429610168569880889808615703209661194310334941868323554046610199800965584839077003567075889611980296196486119487311570448418957085258198756175656818692357359938055823926970716417006885309888113730877742263677377217138828967455195162490498033629117279040148253408486661784636773937493139797327322288509996688405709346870942005179320920919622127172747810864069870439503763671909655162753299369263877507604090309363163799798443425618811983336612525679519361390391112888686007818861189994838956055493602481324930093267782686229857617588547464424873532389172131932021658944841699313161074453242154447048495769892540528701182765481316227983270469077557315194048386735955562549525077678355020198893947933995604680253575640816933917800181653961875177422359926831235529854877744842680005032504276413709353716749320570173513709087725493431658427494702303067232423390137936664818869741479409523410360469211020519201220492322968288832462381162836440737356449928584115659152393956015241023900821093392969866130562719578617033709951302995946923431227444368872499074846425950539732991101841401267020905993860296262886859380094301042572438711061636479501112838151532896199650814246205781768040759588184874420445367870627099403840188777786845171542134636399497996442853052818235964946751760510919116805658532039286160237612033799894380755046588072988609934951210895046887358750673785973199506603112806124541828707860057435757236465383777816462691992054027571925748182977906141264812118180772210939639611242865163277999291811480094658316928429200774908718537512477224750675806586374464765243015499119057119433007687874718596703128530021718434828734312854799723413542717223716588930590011809520455355248119248915054288063496003931339288850116355993152182438548537842848705098704744621933288880448812189739425019083577659643670506568486791385128679212130264897777095507715359739661840765599972881575094636917568583260764348366327776814088699196639341747832595945630646668438173783284153963834764510874777008341785806371625864810036823639142856416880562682828783337500452971831909196913427442534501754739889958114531503507075744847191867553409263761097071364278012044581682629323998621066674734182136622393116200357076390432973167587288935108754257880154462254980904266179668564480326651451036084990238262642639460862070002004982839276038135213161482166029705058348199573568464993221870281700701787811007891909278862735347484162369054883618512849844736681945197998427137069711670793655857652036884181532585916918521518497356537978213280054626347237175200722997683892234725989202535251656356335814701867990265362589897194904395670443138802822798875875781199041784076792631443247765310776712065062832818852777839342297820856706561131289066940638954495271423821195529812346768514285975130371631130740945188871843933008704527808693487059569785457222323915849833621027840122087535476177242020714667689857751192138740121519153243058006876614956400346975340537514063974653845951202325450142512473331406797760353363602837545343539881928919414836372110563526134661593676599356860700838959673642853500950383789112814905501243194503009444507303022160484105531785197326291645625264663581550644470692773937362157134172608125405171736932056279819510502842165889596127626862039393776098525220398353848519803816367968602042891937299779559482958264549145997970643234985167600287024392571272165697445898951323731608191781717037942601905565091744730340190088637393584790513721681827464136891645793330723653072735811738459651942375784069448687421594359423872561404875447795125252353009842022171352612280580559217087024658022190399775839538448618483622346427953894280717035935839039218800063771034933364601598086060518966359397441616638562701237292604169895419212349288785882406500508904872939121049324370408142612783107716259471477631586175947463486387125016299141918995116029329268321792296518634614972898842905815361565623342592317591092061120434061793367506205144915388271600879241578781959362473783378932132952546114775696498541870968853792553517595280686522939243692735093441134072472699192505593075329354355458221722946874957128770305481559269137656126565370543730221747767934609206154473875556386121560275632961416942873256323591589233951154742157910414926191503902560122237426420722450764280333249134971313012937374458974895839571698154593804610774039833902327685878693741107256351333692725193236377835819970213729802474844525338930038395432229878176019790444985749620963215437162445568149541761135154456283655676909649013614960094074809634734423783565765915342222011110897658463352967053234238777736782594650842369449223618355723269952386609338926864366607001833739490236758956660435740250777410271023052860946646120959776331181729612659087940376451437436444889862272958884081849135128980729773771298681948511414277365263385418610113447136646343489009523233897775539007722378919838019854945960563466532948811485492492941513056110183622002866319533458534108671157055866907297825090661849152363711342952252973689783175068222165787359991794076246277304335063372143269988686762806829312833769742780159206721052018591439784427118832149139913763904531062654799040946683542220157570825777185860167719985017725306501857634015417880768285863326411771244697610672586390873312524443568838723639575459732376944066862772845502652260722870773073250806114505299673911709081372302863510812935995797904148230860463417408063170181154839151560725184744370377910254958300953067922223531513789842719835738876315256949880339568468109469030360368905546987257462069189260518074359294568766277946011230587350705173430842163886919066420052187595383133581868721644747469954279614245400949101775841724449396973983942248534532077603648084981364241906718679930439551717951426332215224110210694846519985302077404101794839548591569383457941581050231245245063311649242948474042254138394580445283341371142725043113066666917774780599168133641862160018170346565127622559164566691110177107972792982025650990629869389487447542962349331451333202283361329949938497760160126629665515509800403600790213877045799597757622311851249367324656182938946034733470196054676653731309858329397299426797925798580892708374027776059479908422947243042952531960711617648404595481831105022464249615144914620245297727280538220458155160759992007208280909127762346978211397667148738625547615525732236543875182890689031190995921875581344535491949365018513471420288688883119147598179913382036907499308207497124729884060732081670392084561226892304929345905412038337892763579666342396033213770249351047006894084325434486586864310940630240384672366216831040637793653106067487027510383178370340303215192090193495873133900007873893605720961952615901336016735820272674227311525522128448815935184392952165708663811521624384784651331477522922102442503769646245893039414245347656044755436686780679399730829526187485449897706766011650010913888141575994504866049051769873051037886496545620371720947118836414380743795732230331926926027657825513800216312228508740976076521563810960409314039059537206160353373308084393629594019509830897897394812764430496303493397705157799245952192050046218641290470549106428746114512039247404711277768710443651620433562790146103411384305310960152174227349401114048075529904746639133953734707429135914420640945148172632274739358200294851880811026368044559218616033104544004605470886370031704402234787459395148879065355888010229252688406188930698815175043292496856366629542404547219864491151918069906414941406541543426443934734730677635086759262419722688544776374951286975002467452153558116134180834181885919392766260372782998211672922171278485628316901894745418887265487981831862759096629626068381173480939792657585108020785108341717172415169999401570791832580339393615196759977896019386448904489745265641333482963191741212987729951604993704167087734742784338693141014899172721279451684082368218852934603778513412156279568915887461819281951634459761575639015670919117700074797913192984558120994944459386356644479062582683322403172771651750824940385230383839574592803267490284994071421633509689863658066384867541778937059913614574159902553285297159215888057552120757675352613163819774159779466054665552499477060317453933353994597061140971671436210938617275396553468771646237850211958150948065368452204079441155760737340886720411885007045991908336985822351043363974806370331920593557098600761984613386085661605753902630719957641754178467865458572985898540411842624019054254925637525453520550978480579455266127032504107643633096329895089038787660848097448762035288898797485946089024373455934736390199331820401893529346322050545458053321108162892197234127656302956223791650118029097000909196196630603169006106248602424348793455024285412018340912294997895646154312234335723147491106001463208320671591500922217506210537435769659049605853552807566611494788011656612160606113572349022498000455668360111578185310655084765379517554113898829567721139234343956469524734566091703638725361619362574524066771830396334368829794571578236810131610086960553656615991208803343719188436147871163227386409557652603459858008104249592702153942224010136137841905499660311750544139449979073775896242321022866126973111877114520454112369765171884759716113992414246716831109271039604561821462078366520034095048463339216400599380717892067163921147747854089520244365987866579401642170359748496297552105473601716193156336449581321108978417000694793765127317199555144464463613156175693955396846098334151678465282749845956306357179089996767060259060192135854869107877167845481539201351266609199249055620740908878885068314775746863342152413278856260013644700656816484363511750527139439257806015020152291370723273529025460480872703143481465160359845153805929598631631753789326642921385919636370292827859936238621120617320440897868441590707078982124203984817621600447031030620824711061726538936278806618738972714958757553537476593259581163276323537531275387501377651771776172074462297669329368061968343117235299054654470374501792434065132249760073874732990050572292401659295884557412595413096706834746335585805114730791594960809996204551630708713340534159438305914549611312297446592384204857191181808386353412738049602080097946850465896835775084514176950600963187756270925311581552488095334037660629181730671036862159165844254950700465673719615062907343345129851090184140648341070052301177369117251469134153635819272425295743891450464376856825135161693557794488706515743626184895082302541058797820543606059847484651003889343807939431950155891223808940560553271708237455688252749296481564651708694872941529934239308560118255517832704255927575116887760946678011641237752884033568548851843609051923603568222296058176216555348281110142515807109418726461343719638587285490303995666340702912950221969928646865513031172506515130770584728613453833607796766590616088742650500773370998104466353342683473813405757511496121615774912934695131935936816766942916404552460561052862082323507646299410521181771863644065582753022519124349131461579822177787394956371921396076873598298785826488309151741994160873304467997928974778983919453227438450000885497205442516258548285778976593212015708640182023789984756243311192470018193526809160484041880024918957087741812836064393444416052135987139564529189843128612595945121844088459458631252200403585528304225434029374286215486696882512390864641492030190429476591568097257386188074670303715651893926631544994649176644131495957028515433913351245846456740232315973717428252857195098742108086489472604372310551229631419701839543828058561290613970505082935660350125217584913141471025981876635569951211606054144868415266973100696981177035236980846829858762283233009518564020816946518356198307007236497564084954827071824421240598752432786763122855493225797518898509118810968195877968842457382716822290882325660290682128322630314525343753934608140909324549216085967760141231071304514451934925474900449734473641356776012939823726252884332543124733902505961777186490656056253899280070521622723390177347104119076020632559110027008634970379185545103294881871758647773790708291526905412809292283662184220166347051219756887255183371933102929482003811328957810127949217146777961479503175885072527563628588835424606967361366954355652582394937225047258515385774217426324006834345070531080132965988553156511850493680314571690260685652837024581827698252026326385473183395567709055398916444887295135166287821413217174202010295939885547434926693815803869963594098633607416166562296819354882676687345357423982673223237175715819736261016454212426361506340197762837187659314669073198776556108626318346849130457774121129163946852963337778151569432967176392887365198320621416617333975365860450281360784206391908810824765115206822032738728642612985571733122996693850975191190748372107899387461283062985454941364191896067956618010128095498852595581840615556267224949271482248317804098276864458025484995547785825038342852624823936589099013039702568168504656033211977560736429745855384666461415003191468311040333438705682595897543334158417142538029492083295658800178873530275962218441487973974583771786172178604315413022164804621578510916037309284964037789923442893554300964877609531627451660212056708687361110554943046875822361002801893324971588056196399877363504156121856101784026902671303029115746637130929601329673836292642426743953777564658342024357011865803154438840552262755601123752836805935592137168647718315485782489607410399878682083093621784204255022036229104402065245289950192114610786864373952016450647766363504254225639133647337067124747546370833866404001678092181514706753152078906778337036289170271274591278142729043537198508444107943497298745040073168098948205391833564997627701342783400824967783850749101416885578417259987260527799476116616398495163313288148047088236365769118664902647164551530698569020374854404746547640415516550522642211747119580953749182085729409499462410402414403254649270380309645909543558000993655006899072131491000485830668382177829284917375264219686269050614970589401703448636495150871686515200324157312735855633047487867052321707101922610828636382575630016162587961031458568985497674230048563169259318128216393339498079941607399563474609451394661772291855563340920066858309789834994858608032557203306851511445447493201664623679198012730534244480915729557298824785053861900861688766153899407766884874126888285928380332167830798558438167243338740037928718163625794889946717776410152601408904952069517192491377258678229488620026383773331786940423330571241113087863722886353119151166363786603996988628193424354970396802004963755437720997252844016697391324411346847733131954772982591740955656253568175341199444510767176522597933569356778471478622260104221427095755809801280476032743074384756971727567629515103436872825679288881067062993213365488720254109916359448337192310922360479813219720189447988560372263790771763672331778479712175316051754242700510708059288731503140975039531744205943444280333683013677146300345883383707383403212779157698256517391956624372003447917123336380543383839265289356360016413735461341934034615539306557208138726319447381435394939771500800888305015203775027002863358394566938753753346242653365058911490797711168131143768990172100433737081123096729949652523019994726385485941943481786152060592549727220928247639092726746175983361392515530907187292978171341385799022773794461276622942501564738251967512377681717479316058930587745285971396137521165234252657660150946518178144910058494127209985533703702262388505376156418321683566568009260600433202002922877224833501230616038321401292898230505202143494386562832112097364446760507369850721537752124327707045706418368862437280626455271347767131424175006666618826811895295468394438372178425176093613094284196991403781212038842946797361612216275586622438020520221097595769527104404157083486209735867852236436140769252649793311697944052988115021780229225154274518473791828363524934772180917211868705799201740083507126242859231151686038096257757564546998153685838057929123311103984677240563749182470709985392264509241373298053989359639961316179168494562897696876896426068818967533859976990945468249064901201040753154742264033879307087059555486632479439953011829368949288841811343953443732912852959608384592877834958954876775721476043939863537708530123442443724292192983773028027348043619057492657536652796464802429598768025967007921123808681563619993019880866087222754825545397302487237643536903259830732478881265917031107631608716453477250713457320785315399293705852176384081228980163340498104608832330291621784957319575236997339500170442560045860706084563519281473503957686291917398701070735491150594888598385506712636854426904134820915304828263277842005105222199122798701922194320499939789867334374838347616980891319664500688383606161854887793642659785618819757900689469416038543484532168206429665647094314018685436715755609267504672634568990845390720537779879394735175144809839905945588045194327136863308768771439190849939146986524653108689539750047679977775610895719961872923537132701081249517901389907287564782207721169437314271674821332552275493332494746091130535815531896212692824514634816471793726640998931234844442344445689259711798116136137615942735961073272698418438614836274091675580113124557964872496343527754029180751561516769049339767069555399879051609904055973692961317995478914058156045743318468189989958614621227988752151542315673135238391519550687482302894115019275870824032839715984498013411950849040021500489504588112265050886131975130584154882012947799793347660433533912481816986109408785685955440311600668597779263927066686201539308568296407872135099271992192300699271022239796614220018141007969048927663853084745726419562892626511252528872437568972230444234160547003396050710794499251241276488996867388751965611681598469231908130877034615515104593657888459982456388865240547916473113439331203007926571028788379900665634836395614191843513927055576035707251622118922580439740157030872196068539529283266793754302202309336749699610837869520026069866961646130943571336731148186744986123187388646206648528538123646287659069729112597422845162297376396193971508590419324189541275573721853764174733253444413410876532530712433596351965954508585929358984004057581823779180818815714538425058874987679103570319025309188356680806859989198955432570685680802848813833375195900696012533518325710146915860546285232454589914780465932446421226000079447940573836766618892009199598235042416721322122644582230229929274086943814316555380359178957642436102444371933566870295476259094603731047388505753280577225503285509875305729808989716393007111170029771526140789986000198234313990487100768813358151999111250753299630319079199538184323137548334424619565601559805035427459892204860480169036240023045919029521427079378051099060014715363553777799119559932297591594165735667341875947951641497546129147343037074963585535254942884358042335505955339356753009219471139168616837693580657823185019109092477129815170947673546404238117835035852388301718158605970696945391005955548723351631241960835108079978063715816048329628928842648026908057493906089375312294938790025013225026513101512649491579883861985761930867703593121910709745668535503398960492490316047303875883759578999256007601322459254770124511027067243688446732543151087869064215485230949409016191188368209018949708309318079093304249497240881427260072174356171211492881194299626311968867163271931871078623018154625682978362405453620327951380415899553786556859269192113644804881473279030187144032860691343674812634962345891858728853725318697080186331919087241308433922978610651162921815379190953886783487782258404958468637808725216048598199389539812671974721885953034662607530941867800953176651986546900664472468244250879920190370057820434479186522395517885397133242230536471950931801547800536787937757298592150022413500830309289563222062400104246866104057521926201829674235171680546229786650615485162131472885897188542530007438729509997462728371516885364781680484386778503363731171263469183888210191385911646482210611969980659540599212078900652021669298511641328645521550788050383106881049366937419824588919279786807011949177208685243418542192844064338519933797002379810600090805857859926329162375263225194691995746101789238068480176480919599401619649836508907725250757537357828263627838525683973624792722715247111921425172345207348349890673294164372010068379096133549816801162723074308955328885931372884043006642496505361317209791035588244297347472173924638246374436314881495814585418578679643092190823613709995971896455068461507284446277785820490734779398020769936531716215260453501267030009876092899587916202897040486041175859932252298955087525936941716234239093971045407173269278697156027357727003118278736822773491203252622551205473764667819645371026957866858027310342451462218866129296387153512217470697996442588086114136436847606179780110898854081745781422087208696076346373166566766786235291671672070323205957465989564654219354606416238884002108685744753979239815660882727362087677419253158796447886128045990037797132392429173971624941637368890806709649569723081997935526369329832836488586305983471329872857879775410281614477066492263902333218098649034348833876395146591771168024841624166373892450770760735357996853653361894923971719481550785611426321854349801638042675612801348427790759058366976005711819798804560339640812106420770504961978275102886358040204360651705300746390398705918721046981382298378932483061682706247907075783208188850294623569540814071055250405006700071995595468080749608142738225418619165959705789873713882606960837685844233469052549042815401425813694762233122308789913794678334183174814146291385852377938657897000853342097622881919668999346754470972677151703247375473649181430476396004158239563950215343102934995216149277005199806625160269358038437857589590962417224715546276711731983676579633658483811455214919222162710873940166512366098863358023348023282693111389284628615334407576754858686917331017779869844469086258075974579231333984291529822550325161514186571239881850944736377293798996396903666010969643352382711697705245603534193969547437200980004426221129689502781789187005916712879536732538837147624870090189020167537540474425783379978620256934640539029225157623005518529175782230035864578081598889832937114939269117484532299361233565759977807293104268010054276894777993969267968126696798307249900925086328211373259156852445591018985086589322144952685557369711437591329059378283904829689498089577449985065290807792223958054127945594511241329402670283956713066045727503928349703397296673087095567594647038625365270801103923482955159732831758535993824801417473686010022949324560944459128663608065355649083542613186190914930556136746449712373452802275840560513144362952790613629048896045385883715397249584875748508650067775704176861715834448654343016258320880764159188312617615597223183647034318232719524077376062606430027238900344144275125795846222110865561458355173329122318323539328995498289012275166099757828921173937098480030842373997202674886391909088219222589760191145201803626708758067019815578161818195409984890643189309568407282946762926330718699214905794821807827961963314286218186290358679437618244997292007145732705894075062893741633318924371377616618647759267526214626944472138333074898445357584543856033862572131228140256493320646098772331128129556528533760655056274346824067381855888025951954136750217350713651786098082189031744526906937023290961333800513025739676982331965418098831451577932053710786230194427043628303762763324297025911461057085756995848547304179155467334999068880935456467879578746509894715281035713188658272005817847170338070832936186576631043747881841308632318865738900429410976296662775105969948778873134173579074443207141844006734482578579425057949378654882549950133273785010973696667210290317721925877835209546810537981058709793632600183958330595859917078177869747504697977710094479131673114132157205656846723106244145082197122118705031191858555958423700718512515605077750499111697956937590722170772367729160137967349916113018025204433217936494444826015821162003572731832225102504267799768326266725178374632475036542687554144442760663719791352459542933911616143569253117128534663844480187895811249973077015760751308305784396148894750044582929098338681424034807924147006857102369254535645159237727699692854623156714939985030591258296980712704027500906715987370227697382818680601886437833040654717842694096550100658056437792643768460261081714421209083990153008645716648724974985342327085320029141958455632286521003826234574224706278326715535603946848550385595183669143874614391650883549831860742019717045992938995585638402305660538304323572881657902461345651336929249085748232965991846405812645059987976989419452666194497368190270115948117287711166381088404654604934835439199934561258424010187258031770016265452579850354632563471648613013129205461072849125109081794049703583225894082899444717174934471152129744094588398927228635939751577441925810075211649899111334105247896903293834755989270165698273225419661327560230697215700321033029404037413308400962006874061851945305098997071538412361003770269755970258035703763449296854373759340745225393408187732972821727974752548804452084325789298438099885140409588166930394871977576962334307870863480752585079005001178667864926406439316255486075076963618735021082683917238853876942945861269474313521950430052637784252650321238672174687911553494004316439960448809859698491499130904622193443319845784985644876752413030424132093725148611441452683924846623751829795240866230079663995672713072688132512641057130279385345001638665450790211404504803212749224066723197778339124101570807313146393727637917584628904490803961881544678016649866383620803316857879569400980873984400569515173232157367442866627016508282543781654669414282679332634168968536548074914904253444464868358449933664809786984128536707349281824641793942253469187083863008357673411150602411915634839107551287606134987686952491220530926755243017590648249618177227646429280796782958016793504401944623149834596652699322608867119880076956904214864786441120345464378532929850319649735584165079783686268648432894107326931441762757219800558960324344739141661526175823500294902532954069638497939311617859837666743402032921982898099863403533531494903237996568048731955941871892558703792303161091380991843378351067679456411495288319868553440565978877447498151660576141847245513908451742829998004322979150260570829807587048466635676859601962495293911059136240228786189209413579564611669856092482233289339963705135472349026694800971708865900080166377968352294317719406187308000475984337299860229118536940119408010497356981959632536928360807146902675617519263114141555772013105090664401638364155443731093712526746745426792995270596935939575247084756586318013538405402690398268418507388525907801956282474920801368780507510059514909966392545777209837290828697485858569800710714007745391790754112488279944792416920283424410846515186970354084958193305454408212806869254887536823176232325241696435829077098349809063666533026347299838250041020349842176259753854603427660932121222044952500269923001301635122170457558840887390359955488311149212309734995777801697193827790453469273538573100438250417826926270955550487028482678899332753759386461187425951080305838612351862282005064590745605870826365908347915470661632496950064825148496840611044746647958177009948588868732321837275797349116949595983331644786101636554159167049995700698227297238260138769873104988567661430818284226251795576719437910505074196362235374428330388774160261412767572444056490325092384221637760800676784285673593632269132131182844240124553228475826718624203533816340312247181918441252833196991056522368943181515230009205649203327256020205605800925520167357234537655131163188788650185942413684597456791360147489887758417626771996910112718464538969425620567184146267243477725269605700834584664957873831837289208343764773911959269209229011459867011702611518380329578327996212252907618140793374869716101574570283670835184526337909811299170252310464798666301427214542427006063487423919589788469071968910787871126632799446620807450806065399368090758024400502918256296231674497881676639603077423237744982259435336041644602547117749004980036408687541435812615352016008287524725663435050333267485705540302399399462339204639172257573385998207922676323197658139786243399007832612787696275293953858388284787188384643684915987933839267326981537214567656655986732489411133059472654113220488913558600246991304597339001445869617110807026404138474094324974518881709133547192511908126974743610274924677424110778965736164918499849669585708653534818464785131158200859354715792007656829051774134684212132397097990640243556798343634651311532541011116906373664183378296451028211398210567384286850454879086334938990310940324567608256840480146458288507309592452145643341972952990555537230440255586822092091209165182598457503679632625887952990022602978468785929743737797694417526087483829735933389632091021318895266923800835491499123579065730860708447827514335380662962717926682667114720227777337109611889949654926197425626323264168284216188354629042732925749525566953505995942981504856176161570928031127460996824734471770462191146675663239054254641975022270872123598836761130151033212141078982574965307431016566045457766415255822882374631191657369617434855540570839189149068229816539160362153121594843163275236456449379953689747646470409590497053019730891121030301264484193481204351439563954038019059117667175246905695545394011633791666225449346103478578701939199490315011495837085552123968300195923888448225463016924757072019724160974235039791600838963454851255843622910498027186924858191330128907464539641587222169040020418349224082084622868958023174356166004744976236470409872869835812017207531510350075890698063548016042249109407114251510512479503938827234098760558706637723286783281353659547099748589537835641123386979844347052748904268622005914344756244890922984540533071386918130309504891281001536514406650249029380422988774164138005660750149697218666690453436985784859998627754100237858906785128305371029060939351325700935617527952688921850304376068807663700771471244554926306915547069760435392546996001067384657542709073338078256972064971862203602506893421379820468363777050380292918110073223314939572750169560087991277722589648670330383170517329821202652538020091088479192272033952870101754720648737982820503386322054506634275314554987897755103669036569000388599211623077333077779149646865883878237284435555638962740314459330152576432186918685023890566567185309930093486302564897355348654876036406224581589380481711183632000931490455138525305832767058553679053732632300269512128607065223928346383113374263652612941070681024734825129459074669059698297326570281946096820071996888926014280766804433485480340927790394956413675470093712723296474914756468426339663200129281068330977404308221373256070976041098677718416200276178310127773849304276070982963513511712666574982367283365557828594306858495935363417780664339515916585093270609329858056844562349031518607230809089708688804723385012366290410969159258709786136489100415602970365614553371630451895384802413148462620984407179893113864577627923244398684510301786408698340284281179475467373787596616159657697750606136269247953595374939647614714534330724818391719491640342202657117626851199500918269174589476070213733789218460481518960363042390984893027557459006876642965617992263237673131780451975838943858915661294319077572015959096062410744750072717581322674815586447173218544471647556639824439543973219205967523234797794521514705057473419373946681360457991956499424293994411762282839020394251543791584570724150041224878837440743130011055357629532415299746219383782740039531568079668333400445462826591877653652860502757983333596183478058615458643694862025066327538708521896813721296508102963611816916897740773015667963893761649507254726821131304174049678293522966401594473003789415377306909891180854140946361153051465269256438911061224030247277366169835829899135285247916651526823049083967482425020998148559286030068675750351113617202118043030664680591067174687658436107387397058354121776055137880221745627637507944432987605319633180390271424127817341149057333838953019220864506859310508615969674473124473983558727803282977114245560216689724133881937645895105619889323745486479997463327484153793988380630795280822955866499390816731807452443214440914532994663146331437532213699806144133007558603002923531646920189951493267411806194954307971016836137153970223488107710678415611507969079375166439126606819731069074620853512441476302775060949240807889807009869378834667532042098908692891590594947932798957418550942014661495353228074809633537437825580293948512127799294725691139564167127058805151233493292310601321059947216089120734366042197936920866071343673176003399934876952882843522695140809728504434298054637706843957363795790706691012859455985238727687133919784519959270059115042211580252191376730051816164393739859428120300985458268647702397458350630542065254278415928180546626017694959236691915858828217493615445686180612224862981341710166280137003594520316694506433519677350736042447201705801791347038552371704031039345617783313513800393686051671009467267870204422420945962959701474380282562016796723594727318919416751731066836285087258917159372404909238629256885295524482718731651335737116333410026157143472353332749731292532969825499967725391505995153646565060715245547342629053373595164073540181382829173439295244366887203757478137038769529484436408014943522042744035354195056571122134068642699459387830052617210424055485835267015619375561456474425560407835315515332586279579896167827288445381963689605205555563739233450228167390855081272400088870821011903419386979816529515336996100708403912320972605729550480511529455116685579157054005811625687748818248756868415240097800397318970241140698517579446299727126077706425988592439673588457029109114701283086536752006744806349296651940004380621293540014164925117743509176111404307577266931591573125776103147065891459445837370842885001606389171099558643368388093278408982842565293308970952237028374971704300653285806163180269974435513588016504972284433476805190179203093815046498333048229241801954768360630877794089543603237103315503905668656946158014168460257258219046463530985545551917820537229568515800562876520660767919463665893063163000460161810366343051583510380307296004664485120151049845399548947205599098742655375496465993757266643176931959857595786845300919050203634785392148680759415416572003296597826267736679654242089587489746094589505770123522321093636878767639431512747507177065525742428387916110726581790566826275562019900445210750701077923875286461536889308360462405196107138164404174201040883658312840338602798071896105300051245080106890333441874416951949008920438884955964158083420438577558616881534074543714192583515339794403326420588261655955107891276031745080483503310923406902501276039964484484726367961812619217047965605301140076140581948427059319501537227265672818427082459799308384576681820175280585515864648745450682889864213326199723899559057250005995899473002580937650049997261623871650803367289654911621193883500291670012676837204460375794013259681446692898196406564337323065385499347674363542581427573199342802729424009142300699907411200441182880716010231869294185874878673547369553420592378603252583489398318619743366498898121906106233560393474235182465529766231646429716918004590561675003052049597412598142073266612861688183891075890802606282643211093773886005061230270706661259058788240778531333913801862370160522568685848055567918281018119235386111576110219996688824623187872857644255707491014416099075308792329529635300476163265605233744721935906927235074573805337953260685625113624815295078626037518920154928400708844561278279848644705109003095856691117488390091498412436469081642933025573932929222508487743675430762367335498370676346923310629337895522358750356927150538194455304713336217386711545476543950269748420850402013368021205581605886918610112226679669624703024380443799276693989871955587538013446809219174932287435495807528738534947097190742413473675217988034424096169261770312923494358563509236751343004494923067811500856270019382612674625157075365007382756365254634349713654622736311166316007354957013358837124100281128012455380800129510220821687204403526538828597610829770346647618376740576777723033980730201438828661845795204505968278380363685858632640385306379043437008883092953237518887728397798299835483885404847539722469429846040105988641689299008882555018516319813973574776509710360412021685569526352180284001254075610783941596050825095567787194158271512735311800719157037098522205291332785732366979267091980903221969991032348043977009640381271425600234367606259739455160925500522219804855000251219625280352652289704583166490457227595467390038405615968907507073867013658514418702662761581492393689829662775078406028036114042899806024383213780423996654119176442672927341782784894710758350861893504334814693876863365885308817792555168392055210187004975017642274506373645310432205945070162944084100991779534793190712671185915538141419712158729581374728297818792764626449492252947615029362146852524956526073825007622845367185670058756522998819054936787833826300242642856620701543879730875031929575040120420722643614525819792055023438584143526585763820442878075462114039349385844576058638263546415314018848138376282602520348225239360330220840706319130219875590465592353486660247201006391967991479159201217272568611609876943432789102909896183847752472216138669430630692162390306144348029356463486942637932826491317648118298268496299247617818192333137381618712092294700932948671053520425370473136060816967414342479630947402011479610934839051031311276063901343881518750790151739232256204603017716808379146692626978145670403542027797273379889139338557278615131178339298128196935477869464674743210506448362633007329481200075834274250040259205194927010662114599472366911734503731576692306234999548124658706481803933557616974975214620759524531009027304656457646726677244040934434926683492001156863594801544368907004425318987714559101794259031643711320440721411913567861778462254120616996944881839049177771692395944588492560136020000358863067606512727677062224386876899912023884881654646109099172954133490876385796820904186506842051747595613806058504279618103963323479745883139617335986909124268962773749445101687090954573270435734223426805139593455807156613402056601652747917143638889947191573306301268202744157543741617874795463481537560749469639734837034108656147001001433439759842233717939793323990216302115554215531857555409096359106792232847933855838946232867039647262259763121483876152948342439232958239835901657565149603653745411046948543000513300697540024689619974133396584433165324681096608301921525445701182861467702315841722613544553757839297849745327466152468550233173152456110959892645492994646518560515441815298520445946185800144921409961395852515213154629330191473349026516528479291989688798251473786647554922811171342770108503857550593288916167270906660275331815272723516061232665338006149446760966979838348253042188320018014547585098357596650727542440456596398903009895057696819422688256345330752461376033687652730433828586068023856372523171899782098669841076779572829102294332209019119026418349493953198572455302282114084833784806118339709535845754058879224205529245878183685116482636298054560444795329510086630981973552645664214637651188413867328697584568592090260099758699931263307255809989901316475711332433790823365039778850348497859248918797340189817951861242166662706888928454472736767877255431905266996184561080544989959060801555396259082873064874210912932364783835170741292525890848375468003877121235544432093082219593448088355968965063039704803178278043212725954335494150209726152381740096047870296031624317128288637667128332412496283451889747347560057716256182946001999241570466569796044204327519261973084561433334498665492106584889299365270262007435436247115491877459774626170698110845479766749387239550550413964971564412265630724902525182875157852856759854916529504389034900313854085678638852081880658555125067385646205702654451568294646957524570397574357407583870112855290626136248860361419345353121177792602057429315730736093680286384877764999401990824521075229236946899745807090886983891733477358672788697176133610387152951201554914681510201025223771308451719813083030236312656942644158193352807984687050823788559802491004812062722867252226312723712010351894560353648412417096526441655170603267298110516475789592601880917171805374772561998582022176294896769017553871775713982827064058706612487342381246830197525208615318366357456549127461052396980315058684012853706939291702209718772349430364589690714483021143245874110817730015212173192939867926810101760471677653924338211103033917926410465192540033988810651451948952091537794702969825663786439362815234608546510551817879800976399584307049548006427722625874875636382959094920788410839413741500433713438656972092791057128053357171566448820810738002420908721537396755935910257468637541139563210200300373652726539669190867755417621277440374196628918846275826624147920725708563662706409846061456409686631617961555691943907411044634638960022482916708819156148360637753180246890395039838687344899730483024113744241335093466438954557989577270410872798597290656438787529650298162998810383705395853507094946132282592553621251785881407680530651604318724593363847087932288847590796391928980829269229100400694453851602651328014325110665650534172822519269861953218485327614266118607098216088378929194054238409655226951992193242873260663418428285632055650751963623271653039852338767589451136366006395558622601291130684569763320754175940419155518409028876717551224443706242142173903807642601790869105170773146780123516837108730434600597354510342417169698245404115224924953494322106696655012152661206167830039099911361454937171773372764326491369942468153795367240696013944136759582949958929148532336539927064158139912663519612936327721992718658599408568205821166641928249600624902374871423936179632252036268427231064712359301786837462590416882751163562643725651695427927034949910524335514596449866758595170461701285100537760895122072058859224050824493979523376991870306360915411170263132320887973299111107259819116518276884534622019690406633419418113606749894496913853225542405904273283584601125197759067977254820428594649286429588681516334223838862650047060042614110438421027472660497148779153802140639809978181461688185894155243282671086379043518033829699004114694965722241045734088921040306979679935335969399347421971444866173166196083481066826421396788659378282845696146492248789758955648810281436423834150681420111935905424620662223745807738122112144212574149579112027757429315272550476708953947378535993157179353028308083377784926240342793405054707263268653676701828322789730978784779560488313068568961963913280251265741171188844301211971256489081572905481419930272924303902617314088532576442130795715997649169942248538480786043284080760715143273832841008658069012788606599407027423143767997833971870709706323715094898550604932601077521306275118767357066357954897242206444784071305407547517853289447948616755332069773906001633225127418968475369252417575129494129155775326719742519514210980401567073004209398021312173427848385816049547275147836844020076568136269703685424410318730940106092036492342449396961679772151924065999104651480068176123595296902518944337873847342916047203754949837936015146584282831141648068580835689905683489135837480411239545779833432522548725016401012610559513806557695819459814101748140506120695239062024723528946146339835083151883731826143651397570350052194837655942591896538739458653607320460150666180266553588038647088652038408114735826442225177513989147386487130668896977715545378985450149569982844896812264832017215042940510343562580225508137500726864819357798535566438160589955090554382210096756813054305432342096312569598694768357854151357176430205420940753266600850256188474082588537014478300661134113231538371970020638206909269145486280611444997773717846935858092223238422019461921196413641293042622959577052773609009680525951931819899289934670103699553006931526610088086789699425376295885734934380894361639944352709641549952309727389121665640501514188457322862230354355871896043420430434791387448079101536680421013430079799454484632417852141608459795003753586586193564619839324073538631981252716840963497530929198642383685482972831664023942312305351812595344892904650934894433763565492786430142901157883966781126409408484045981401356640878208778801683840957176989990395643099538697466972814538080681096593023388072734541415030735014144252292955270707128365917440143875581693344645044547955835817152065704644902654365804593199552108422854104112049407372461294041455340284065927708872130452006459761332633964802754509536219610182632302604500663969673763951583026800956032989531775754298685387857415644541406076786598722766723885711518979732785683752691971904571676768377049741238274699248211416687677437975799552826923401267811219622988871325662756145995063514839583445039367269076788924528539672501894072566784477067115271357091457025394933519405827214380228382625759968236264822899509070648589940712539236271150765422538865739988290163834699042423048175806110614100887769990184557938384751222855956598655250169988242564693529365714000106932312704336797995719918740033816904608561939701523079151804939460401199066030002503341496863892892028796295498008470214265993382841283026912937043520448068694856190720948866071724651538260931997984151786800105766822973217794766927126435659478998437429710954386206725599200632780147605230630917685873140021824961766305807924327176932374232917606972729803756951137798640085603252386783892405278616883016203261385191936587546441663550520413779889270237158925520741922000078104019440073882931433895980947867700597101385948522770422040723652143731211436211836509867858826408602628456989947763656848732320763224030004895162741071836334434487755875350687085910288480108292093718971904126173024801366317882537084601467524898251128034561921876412455799069646201564854828321076986623401105569262171228769938399783345588212586493342053327910550265354053020317398379558004000614257317920425259100314579115666384281599309830614652570045192788441204862556758154094434362298116029554202243698936915466270081715270370650272978251495535589968850987940745430231037597150662381536989901113297776647775051948749140225053659537127234007126518033234129161097538254471422910023973551462166748994600394861480380572495821706754323541698721823795859676150008070569426717942545463745475431627746033771392194843256919855433026879247475723112189177527300521061496622244807718692640490568793883055798366058686581291654386779469307415985766438025577875689925466474846711187362468656029623836023259691896868964105767770054869041070769993366085148081727628418278005188883838444313547692891913079857984502591410441065691153804988415884574096436252087718702661373220735964580884341971333836739626008807875330963192511526145427163297270865825589951823971081747564551259410663650313263862694538097538483072859427734560666395518094824812527982262484050372469583958062350171503030972270469751306478010972043398438170855909531742852225472309117509727189278977024242825541850317837057444335246393414678549560468614073186856189073116807401311218514784689239202326095368545411829492870537082013312027071056082726452063589881555637047165434581599569965791490834384954446911993820001273943068613934891966516693232439829117976012389793048421314894273386172547120198198987782301122172173533252069387750080775323637082616787148231450226982454798721799978438611178857619460404607817572218900090580098606119510385533700100063647084123921515148321916925700778373905904045212983079912463596662286522552536856978267188313260306699571347758980081919715244457392485690826458883085612646255637587942041884555828357254015802522560486252283514301826721796131231774634174543130349895630091858969692372153937306676864511819462533169338258780736264853535799022833905491072049747760494605497711406638732525176283120017535829012989587834581382183122157485714258086232347834904542899700599377637501118685476478276520055389194224433873325369575083692400467929946942788378338555067832914718726033036926016405616838590705577136905625685669937641037701912399496942727618058064175904442636721967224561636029011383628715550734750403134493376269851647685228419139534596468710107875088894567051706767076805733421474886054543987950633379292061430919088490705435271704476905079747265112349563219199512961298426593781723325555076177892248953658755522121274539194706471415148502426477174630024156880405704723706247842319401566121687362290898615839251932252583116009240155382506780155087639434470621761537045791746169043245811137585162233018731647994560052240063331577797333580833903061843935156911614858956575441803578413210122782845782448557072079606306162454915338611859028619358175246357070050139883392501646311487236250714270159219026816569191439872405490790271783221003420843749082200904373001557167111450410498832346336031676552945707167793748184458310191601799791692658671661959174173646277803926244982883438745703230452642276080020971624076835699195777866036183237604301886738342614965395682953623466289453026899631353099361782510776984800563879190952241334413838544649028944532135771192723781331505182438741834374958582888466242878791151909965888593958790742316792598138091003379276546670312663400303225057553664810598062292121067580117945855448250804170580934447392132346199253034339521541149499471951910905632419376858133952171836191054581094923970462826871644466246593112814045484885975323487154166500793687695081443150777013328978639889679771687963183316314376609151378248806456015761700427393095726613684632552258240858561348570302753319241454660250387310235253761666449902786065379312298546522685145808315843739351001785240864312884242277241701261085839848689150057477902956137421230142780970507570238203724155037833468866611023567020416919196690912252846154494201393412299957930117711858620635771241459005565979787770988837325738090486219853220920028263840096143065705462946017517476867125952217198831843757841626154006657844670864357606953774256708006501935935539549080174810975348241838007982843572358131998708439737698784666041822597515953546428034111248136205958616973738782857576512672251173747565554475953087061191649386848620031949574869376315114620584520902659858144366805191845253671351148629705927969039159180335312281097099960726062771222308679205966754930588428792575886448676038762641513159250419561875788135078647981626499953890145200086620047750617634901169836424167532750670486414604646576471015579686690789649074233262017295255235858594926241817743169009997288727731926191402965114644897258239478518080041387019044406329641405199495389322223452964115778390310334496263578581076998355229739050581085596899516189094309059030681551556605729878375735986834973156408024595931200140629765036908759488038965197362003770377341119631068922000937910035993398467680468062729793201118943946873644843523224039029670964263196510070214250916591552673689930646809337037786918921120344714506781286287560797199738325697942252590188844233938964876438720668561680538815938309990728746262659455153027678522632487164491476452803484574349604886155900183932171564338442417694308371609753976514059449325099108022257056506907345291870242444135282392536051036282917493562568263470297858688997376084176039124362564311119025267495753792980881400717913645353603918839876058604142721292100643506677701661372840256277668288522563052267042662511462962081421692628973709496104471634166510487024843522285319860472702226176393103815066288586961852769061080494030622426211492315684433612301962137105155170938762853151242793018429572736477477459736024923038982527308720630024653474326090959873595001286126378541101671213200013148759510233571370020942207240047359566332088965785737911563683385801095240781579353711377881465422693211166611603819789425386494762801594693170645888131145426136201075692194484647812585245744585316945328266108544344741348414353779458913406135918072123724376227600983213097990584629136643312025567120780809759051482785265217225035210203911955851957389041393393892694792629749695592969952560082022740749451922096065963731597470226089124136011015174864810148940109120056093114426389632831095239559085131618670321556451027705468083734010423483977084441496088210048166587075102630614542393538853427532505298706240564215022195318979208558292959814101325864258583387241610969735721303090052876010193778495985540789292590249623661878391597062198360116624293234755443076940390021765693421296190504845984811476281594806397638069805569781449063596695165442498053482873655633208786837812232762902320272754979908765150028594726517143845536044730423499502865822351966497558993322245173740943122489778416542475824490592793284646228527458587942292140869609540202504497122972521162689570776355035601010843394567575781561268937915326860317239730267199094054482731277201050356706314293116418369313224012730221134461825873961626561710735658389820061849880342845385036098730086041863515243255153684442067859190962556025290678116737682679048838749684065242433593187077719547271721040200515210722325252713813303232655863524122024306256089235748279896704325138999525567082437870492187409366299785938140368257829354365957426461081658607821195855875315754266661541973568104716478626894829713628194723018483490341537177042835840265462781299847627052794941338706880502256397979965671188834204053671864176060597958349688761732206742114912907272700121437571523956225125889003904898908748001414585066610420565058994758437586440047002045022000269196710460513152031246531288475536551339497952401553655918878791239283241958797911246252698427699180581861222573716810220151941568532108027727147507420241310428034056447121168255808800188608749827728644208593364450679376212863414442811801224483192923027973910285849246954165119828180999971608282045146841858283513486439470183180625991764721684381599417698488260304206068591926877782668284180574451658567158716783648721494278109114371101017916383352633597732603697095844500436893964508480352955864189057314388880574279357866973637031178424822675770576421812446293940972395469811031542511238616771219780543045165389179078473872073840511871989537763584403555295676652208801621710638324271308399541668963200625149563608371124239432265667716584344510906894002713258525671484056612787653569950132198235079792229498441698174368176104182754290013077689288836739629200882780907684468092041857562984473820869837186922518414559684817623600477143939419983689396160438131443423684293151506867897514536777085969154634876681269576372194774183549834262365742552378659814715491928421974319674216408632510089473567659790091705861380243838063605214248064448594493702030337422041470245695016667983194983299327529396604113284026356729822811865593845571338904901850420613853353373134355772452029769339233431149469680099139172629622089431886885045292090597239093445208574985768298264854758834560976999970847998512886421251412306437775191136287440212928149407034987655599073149057830328890468814187269359843754024745823062075520907041173400544182394751019485276321288783196663476262063846746980416226120782225351485032681744859853992775854173950075437326442755989001554514079121220295206852627013446924431682651468492658426713987483250341526982581932294081294048104834821644076904058261833128675210758876467513374448388374704459794698774693286129978486737215755024756459532346845602902252074777401144396932151190062695641424932347982417539098883818706518477858299771400127521105532489104844377203264612269287212812485009798174117726926235673219279946326304950938534108045333888477783789542508769763828311704220859691364138820732995925603576809524011248079383502614052125579113936480628483054025701465930406175131071005427144103998904699699349938877152004849667529612495855099954850548995816947179734581735704332383351775278441340065399241909374376731404511774041425422903958511791813513583610008395781151386088516195817284099901445799997735627976557117955842632257974639889971834233552081151944723788650923678076552289767491198834298587346122098881099357379831663117618102131725485088544959293808678764289302924840844899278942266379215616315688207390690092083755418610782759453984132382319079873725662477958961557609921931192225375425718610077983309262837164000842139853003158023847532549689939158373506889226626945716176335771999001485897168995981888302391329640712289108421819316791989375191993275479810579396525655255534951802738513005850636716936710666938159127466227335436382645469203368143605758906412196008084728268082538921511732892743735322459727507592740594060092630526284382355599518527376753630344973974127170409826975207453740361901651257019722254461730305681071048526673514512116059744896940107862443899072374915424358598262287364793659292058242380493532957339804491669345413920273495251658199398671266879936164299014540416751446988049005364569081777131227475077184656096826839432447458049073285220752278423984850537826326613377441407307981202611023976010847178053141674565785575004547129265688003917884463969887602494488502091534496736898842549602855239421465755128420403469673947346215727771870874515318453533865293072218977281133692827264222224475372807293783577969204682479703107070395257651413026737250451070513588320906096463864381921568264929068658353943110632184396052132926849034452317824291458669502976637614596203987240697229333547320447586825222589927490819772311497896803125023090127936308687315698556821508049834374693534508165838985192524392170798476439620264719628498103990239199136767114873067572714598029334626787026454402339401538348578548725052147550904232723023385755749654882107349937434788895994572944822457561998748777420065000584254876406204681834421040213283176745701238764987392310710321578508492867699322973133899964058917300494438065643788232919968583239114227792171440947886907438522569840923319627544628324762382860390887313910947150817469117629889751126066625931827234561305885820429608458541574971800272203617928485914161638636668612389777198981039282792201479793834547415177070059517135201264284025647445174374939085662068506340554751032316081929373590808441450410790367178749791448763020284800703561091008053933400599920207759367406344975957934238986554586002070616103298308923909620104893291781178366018836947896589210485279260265411043721780124532836261689203169768867109093773745596224353670501688115221538856722943257352870333517266772401613748228412510447455042500681123621732481719669580910230526353730628680465118036898743186771915643987004636547724488600699015790479020087246606645473361177477294414577753918565696205703824429716996033134436631888327624371232668341147353091219976807085255933865084779626949493060139925447283748668075674083571493356721520010233570519028076144093245396424008480567396202521756129243672816766051719338541166190113814294023233608439013426937354455598191433640131575244583052093339087272000753039713145333471958204699084601460177217412987062615429538811125532516347625571312862857866321574486846617479827750318531742239690622286466938250696764257595606046730981768593767687865174998137959232817208737656234449552817741470930976715622171729323166009121221938406299429582452997620591299445406176184907442544843016350672982357186400959818493809111838742156041286159600395129818712799762516095211189378245051783220598321533473864314525418817276853437222961091875757747674320546526494209383441897090495239444896985262117752038019608729235267800067746022488367037877794769919299041773295561365142466812033996068271137521666893609278373213523580712004362802686821333400671804184909716347870912806958044784208148177704964107107815242957936494718639100767691272393677097981864962318993768962452387450540048511885847282700381962346250775058449830655440487696781067368887126674086472072092528633983203813042021583105304029125134226499269559301549809205303163918386885356684508364069397227724721883683412941040079618146683600419801008621519416845792017220237458849873793774565478223261988020568158506046059300965007711978030695426781461197181691601479713830398582866854041953410553540690959776353195614236972584194194324221031059106612745309604736374534267819446071400665614027411041007019131740587120489449930126457799192496948252106605965898570281674891956613583216870274383910152259358707877077118989392715023124448228645439478157015631887489442306069304979389818761154027381212302558211212142751931025934880009853439612373516661519361890568607504616049271281100645661448052956957888108440327720279544482864706967894050926929460078522110114667173278250958531773423250521818316212929026243139215985138185911683353715468928098287362433877557725522950200545331437480760017081288481870097728413304333564161522599494855398093874914233304570758632070842921512018271412304658765734716800394619541457582419081150562425739588146093911540136639344848427934855543233482725413984312609118762549136389333860297223453174248531511033042371836760941461944182001073096076292443765692583621942284219695989005796158738174242351351309646142039070384834576795178276436419906456040935367778976659926703337405119991774992464398854665716607370342305423790131413217754374098774009964997194921286112538537237317565008217772383638896430564212983944995786949569494473321028918808214755987950359703419003978776546115156045874499961734931614935585102632530769719986875499100375943467219174402794509177386399107331129243112069709547140640433789768525217208583970196313955271361504702175967945473492697657336429948799888701866316878242636286629687931086682989519815710946636885715005494203326389533350890221722501586315103625039032593651639677692567119945886055888938500627449895522437894940123426251426617182599770657396963982623309813573486338371177584317613629834736712489982993502329544547523876052356093712823679017189580527076139597269622169894732855024088399391893686058949063977392849986858977032183379589236977503740501917384484163028415188219825913284374041197654839963756838530028481238107742917533369048169895047829250434214542746562578115373730461675833596697052173987543684263089602025373344150749261678010590495545793321078874471151046761098034670497417244861386599266059082001031646751536283525149353262166277111826648419172508129070979674989139217194773169126349327114109067147844262458065792906929615664992557046257157151484035093573792836521238102003805954085207184521156029392521578481255910185743225469240949671570338330334579751756085277630737655586103027671365837837978630117626510508288658205624332459288306057569119802250070156448586927444412138978156079507954159233371129672763702075377661630050705990291792501957964955013821590606619932321704003917229426134367712187030278099206960500701222331577500936165048868799768048566638795940480490794268597280434278317380496063612374017042779579644539290512131963629204071518945283999173441847960716242480957760093586408052713274997023704420000649443581734672493420786466501588406446230521113192691796415843117880664042051809283968054679442395982282261628703361639952771335846181913535277956176409586610405353947332082654258868979968644083029055113318998305666502109337975448118061228923119257316832347964136063300698637816187852671800960795357394604168043669945750581928845139913073393727497180185290189686431577836941963266492569581703857303005833432834354136726860888853335983359816984842883179319822883801650161061466712181613362501283659959751154920148260421709461803479490392918032477688106629276469216209918061711055339624570577897861856230291379688898953348031095722511385802030081123823118822756503655488694861332505678328851056240422168846051537513189864842830550988507558152215783571326796183314347350401939160581064737076250547801642543670268983714266208422169025408577520202255506984311657504396004836837943588010705266745415679776155436982409177178399797374773206481019331306307786732770216471881365105621512174377390162194411356186967194697039862236394457918020919886334172124144053429065090787281454583368813444675693335085789374086989753353729267011002405961321477680131037873192446347027652150294804247742589866697303653480236417092575101040031359829692356064666852881194658724761403774528594730585491255298239976855429884605598611222262786903587992859297697246563029575502741702245407883071377504907119095540498622216936474437343226908322025416899105607947045254924240108023268261909965701244579729420992509821752662445289206116589893914290904650512335480377546459238534885418680675164627426966142034742814159770753555578914312675807669774052951361563041126941645288814003381008798945137453705765536968198752052041698063918368484163351983814772134386541596717786769726702775041375708096653693508981295138581880550532203336533674857063141018430357995060616482720392225429903190028930666363143756954670340274521386923752233509605613589830930726166818316626318465648990650954429562966363104064681040715234941023417556806457738940729658609916903083784050787805035082903861686914962069984786900269812034820194633297824525086265513835104403752642140054866110462484235731054496008871871659659218545035052551185573464061889147314361353870646239558272561649051176546900622457806622454988916497885564546144780010015143788076358027018541573584284640416700521441255052811585880782241287073197487052507075858596972068363416278816296560450575297107370596784749376777121205979524186542534663882382110383127959117713672469101183588326654702375942116789881855941166695504463655046994544882862444569456059588767731428991218023131942323039871376387800126579604642374354773970005899526763736314699731275964052064344460346842763327256623014888681654187056723448149018796985135715200990039016823047265571708601187340975807524794533161724846503549844188650952687080777750285707534902170865071440826092885254276485574648452696550369964424358972649645943972399690037626722145332145752061057988905121298648851006541726616978392899014456996283783387019514930225056045751469667633891250725613146776743219723280509350564846737864648289604627260076159445368907641510125709869049048762274374459060856659281349307473632108977088815058630831782317079282230067545892137692149007691490868458672191081519327052945566727634108939461098744773638889747875008641759315443668043798739370413763013749589835677564656281310797583967268681136325661947754873232100263379697436332001051506859237611354675609702998809689950623212544443785185478921478889529284131279228897798305064511664486690548541165836944491330931511333632592072774204065584774775159406812487474240468891598772020796036194284698383699903185763401799169876055211233829269204056307377762933588720400648803423110330573862143479836133095523888960363492802531230160623559114336701796194579789673698223616294581389065858064104896392767080272601255080228228690428218672527107399164779049194649549380423548750064525811464514088790682917442402331264003437087012290669288449813426786723945124297103980174239199849513179865439030090687449186038256536181609900558111502814281908006871123785396218222763384858163701205906172317743395738408224559062525678853171216698689756942309191138512482553391591830768490038017095259724340791733558758234848641906765577096766147894582358570841925696670991493270808501339684132327496575424636970654204088472087916788263811280510220264881516782031228997326025047345686270489330896113011705824038856964463796023043657903633920616543499620127463889624245534179492789030599448866874868062522595868408190039576471236120986434136528449555820438180440254085585265954980855617289641588565023293701451959934778343095216586646895120384320261319640054057751525628705620568168625789713137560466496403659400114250119055906879976517013600928327663019366323022068184063276101546178724520988839216346911019044379714565326883194386090614999720118651114381363309023082174806490495844523166734424099749486824377661655485675928145209459182486307251031931439932411429645335046289208737331202915744267991123172440373590959139622912095137756423791639947196733728771320804645374709429354906914071743679517250063054385267038063362409952955610821234276146454283516121512360414673648372242044617694766944995358398116425198280155932031589425318518915970449401659778626008341019558460477281169351745741905085704384407085544464867832367395936314753917761406268501333764018548697629383504421504063174271053654369398394158123054348218827610256599304655695279792508487660403581292507139999725500763630280133177992706933884648963958541543259150567266005229571500865480515735720940312496837715894346329212202727781537280181145738309477492609007116496437420871670477385364913302701280490799116903599036818415215714594182333048319872020053918580790828429831727208928464114835601056468558661835129844489177010003222683121525355447896377119136887401835630687602957107499534020285507377552190224541097938882854216487281599569515975410864654293372647669907531446293091358852365711079249600964076156298466313771678725656707357464308728715233056325022003323918612124692719883625022840435570124908408577615086965084251705887955890231215481161643506019453674678635034079139605380246477150624528172894152653110373594298883377726277925671593074100436773591439056048201376518100199374629969567911983771420954205294767609948888426611364593425953975820321007836987912620773211248920148579543127748533453642556554194077639709099529860146560550195131629720868472789242108690687198460302475396660696144294967978181606672842507204429501645296573415719047329334411807880985948865110043876273604761497216044038725318619062129954356375489540135676766099295117195071031733324051871794489008102767741868006743260402412838962838962757517342191655727898862476840693192394006272947005320302171637651351550762425942777606012417238019642866958944478643069099320129287528583279734746349794511118462016023716793980106157007201666028220978132901629009378495204277449780587168092672748028599124262901102661907471060448858362565390545862843013628133495318123993373777096451803544219878580256549287006857153014075064277406626737763672684924351200381456452418928233691995491784745366803962848747395711661483401556727212709854290370779070023935785560744954230995801068705647675601114484707160426782055404023897609421929770061696806806548708067312993617971395810141270592836973965962473652149172454912120596028539462301705032360533029123577206985712526553989210839190039769641980225383792060556829133758004408423941623782793787808857226517772883038737424196701805699109798483965332387956230048341879638359241250888050523838578399881225499796079105685581778565743932531972139936819336120795348093559850029844483172317036855483218140337121321066157915586660048928611668481025992382086611153160996233013763636042549758118165865674379129712547718958539809879590323556668795901262895820614390996548736834239381134898351826387249288049320718253274676224236396472660846929104715450219210326683221751031882102065062621558465169180762124577436223427633047114606422685120619811159579098517805038996852116285749459091489361201311612152362719383723742472520652918205677325690120504661482112748343639581205174919859748684727518373390545929636978787203799280749832775892424269469163038141398292441379935640776981280769189259171965976810431878024216882970060846986854307530030580074013696862906397007707278154945961829253887595578907912670146089210645894790544815987920549043196007589729836629835991778270761836360542719544512487530543723822740998107230245679114680890039507144254651248656607493566408210621889887839500327495584318650747143348110459434074417700149655009101356338552638879728601396689537550642910686238001846972575902455989041461783097417041520360419044399209278586571909952133345794989510966514545973554380683368989061244094125443419091267621801252035509859929221882825528197693796033759714940097200617265536323065093066361780428767844203555457497384417612214413691248575872459838697132232660915976692232683328140369295746113167883676453848432919500916300270796180045503996489740768777158922994578194558934609628786607137239471044930933113829543618390603403716511555549925224885809855913603335499182305439701980834449869992680623433534932825840016830724322698579058975937888332192690483342521907631329445915557216537880457429721782136097077296653920760645490321047660748652340908745752752969107689646094284096150970329145313089984172193060210511940115927489607322236183577756911876321187323560915096558292991774860213456404450405383862104876665048015009697751361066422399479798701863058815607660339338237377754335950291473761998573312800395696744337644213449042841005038691675612358524207001902232328916128435999370308975765917282698081799068955594908242040415514997316151981581640333307751377024259750203930897324115177146266811178799749921684462204716967978993303756624425701315357197027755617330015842187551216989560029422723614465045319802763579016917134692667709091099232124086846215141242705975016301507488705103596906821072459824725632327067738194103047734714462244419679138007351797625177581048723885158806817966594544289524561871479648224018087868048938235803497968884362472448771730574266953981331639441967819714065433175397239640332553837161606821190521795175056705381089808630924404291460852070044918386474376080714626677215367710027419092064676823789280893519439015619275732820632137368561277529880587208609565162748432169715266024090361659731497955376854008982700214185551608306917926207588027714870532299477431049962125318735364309557546845136758913695750091648106647845907212571945341231423063793938885079147927179331303009662896545053547472433880860273679594354012515546637617244275740030108557932666356137736399003491182696225368809409961695122305155292707875304344948970703001261814861492091790329861544610358487336068723054276202592461603056513785400263305618415138300110609106538959391721708143762107814148503777741003909301231326543469263250342112711055347089937414237685668168990854643819700581462289152983725874241321992062315187361102378914306964981460901083418369193292061956879989668101983143402355979275801148647186338253241342475216913830478107768404576052242249926549446537085053431785151088248769616414132225945974506057348614319726920602744313381193253371060723087954519694828115459436471042811710972679641341437936974068439391433728295850799596837394299780203623740057039336025732050682739632540819573388544753413341558186939295258692177152166988616848932624579758689292205542440239527360670310156505005180865605574897358058328193249825135774190575844157817488938585999800300870274235067175995850439557703538720903722234853431422909546660567630168050110808470665104615527042149892898486119509143452815125713890414600097979914137048007209553414721970698813852396711884649334238827336136270911365448635990072959710775386233226041205269961787789233473114548630778987784455877110069583183573246265358001923384008772028952409857153053202770031163123112783513959939160084337766814109588337426451211382487634334374610166104672104980019707045712973392944171728338393769902517791063766057640480161699115754562263217915565949927130671547855327483540431752877863171772006996638180364510122096231906678913118077451367971163716512837813557936932300941172954485456129075708355815585932008824490473666389610617050118283465503005401409426198964742940942236888399197320447592564191752811903332167386054913927651827209414037321376380364335703512703751875204898948131377764681207490145988375342935717761961860015182948856299252131967199451968094224396728979769141812531219400636401760478731445280609563648201013108508947420857844225931745101149462398659501806187296098989539330993492142062662167286312824615868722700475692483954252707940335906164408933097549263629182995197504058243575266143306082270754448815629316382990966865402385545066769661408458665741045331228815054677750135119553538082080377591118513272265565580358375913888196158121505205018882875284054614106879322650714329925353298336984868309886333632891095887449853807630715267984367627451518305661549833352662120524372878157267226740668965168101078696067433862087508421806106867963502508719980921387130254449823857582843355689049493064580213196309405393474254117683523320792302273032447036712973058000372507647783082893089983584008874357660655303100163315973401984770979585960154881074768171339634084810403808831671064824773942346694567212906819197720736532396331679236702819757920535916486765294136288648596396712287435542711534611993767278423386632623441396505287108314366110415374267688192217131825783101764991647609839933006428298610058997980233492509084214614288219575672916544298408645063306317828043283554276624609755690898270260916717313825724034981399775512733749872017375920997474943311676946718094703933188911726295175350240910563101944669046271131928106660391120369766218239283321214025926594132030593269847422351246258002554334860445359522271936420285681319754810385708102072436868320679702688267009190032974571127075410285163700111268374517427560306247571602270981972559386675118123206288483562509345707290685224882387524169885629086519011587278093490778517388096612005584877680486713700801851841976536498466388964733094634933973071837900992038150201642120331473490531848095161163660725764768877030777044192782788211984440699578440811957685371639134747863171519941668492520715650170913726280606711435152347325699474398971111945376587562695893138891718468404716812600541843551813695695717510738669680366903828861486548352569424762895951079278637995290083702399626527565559483295658725935527850884215029738203038852496931425778183942868098816283666771907298043193443302634472838211450508950806716582098533810931447802601181257754882268806050657292996453262011652870505916308120374440831377474469452671767265171740682630941019915157381354385451254847199895897976293737517181813919476954419714830400991362720363096877277712881432124506739680447917138126450456260196898145791204675229833572054791049236871231207833104259657987040186005226092739263105046897802728325308860573035116040166013442415325452856794205670229007005619274056406930872638555381179868241891804920197537148475540318249534694809923988356843367536838374225013857035669263640289269365249077965935546941457920804426821712938858221872763864373424859858221179377047236821488370551309758003161249929600833551907909864770127877896871980473189121073112817156233727900085573924293146677188690054326071636576314501108731785649041528720352270203844564732984617425392455275551527010830522226596679443746763959892938114288159352176519739022747733897275679213521138602502631670507123711470356860425007246451915505391540586685422005677772551666622515381803961608195407626307107682464715493455058294910873014589113970444660079444954092598580048396265481053656364054884157756498634373989510382260042571340057629595107414696720718948651572624057378039616441989020374019926522316491161163369435719208346749740640720417902336007430553217710719132167166105113023003868453417511099168256073595752903824074998918551952371770007700513395517297872674798662270861531561168374575072949243764772670106051483066856647783386668252520865800475047635321480280563055647230003474403396617327298162129478977482608285041448127981829795613419210574910733226909742843668475442708327548664421070041792803736257083220213911928668607375108191795726144062693328544237863609534521938399198187179362142991874057704410457126365252902468108082653000660188030733911024176695232565534506800304315587849262295711930594455254043685597692404685156420090730085681151481422394140641820427179256448875728974830493957955614213960240718680848201450800205143066098854518919833312269806945106959163844994078040619111910174674827423831107551992475041084887210298782995908522974728157180808290876830449897460052603191709170667125517932900328881963802871841566671420768939324682304264516077221187860164242436617064845826064069039599670361920866201235036730210425321568776282074620929792055196661137400113344616306049719349799499882158275321131434788962092964594842556706697529759495489956283514673018743679576739176093386653722064556850364816167394573500029388839975240624162623147171922527524255710192777653633966697012126029468414934331245455380993367393360491340023115100537453037690696738906115481227343038585844489809827124789796202355053667368106900109104438838664260547248285152889111169481957231819639695767460509444242542035543500453539860691914063427334826171915412615504900855898303449424638831597123700883436375238753246599877607550217271709661367448236619159847857494766651370761528770343941784535883124667175694241200428558808735701949925256802845988362918309081557200611669578855813848545709339714068458589269506068067267060007319221293902456592021294400769476667003532958592814760998771301486615580005639208627107195746681559715880421512470492234471669823850203447053893919285998914827211662590333197942573471997753327622265492062206631263607924651507826758810181839527056837143144507311072534493212297427349358476902626100444697876114112300229636197239898347886878357363382580597836963126169345544276154364088220924483158030060477787281844540606811159471450119829761014352957858431348657463168788806767354584465926931680441339037348977614424013397511942843605053066886749556610033313864559321308131053057101687095291574324549603860035609565869765179341770790788478147653974551879459874980016104473329549759800529740716361108731947012194058244167220909829339277268482153814867674626255415870534411133162744442948481351608767300713440303423357563852919956535402258423023390890686220127126231143007981128984284417943163242258588385908208850040635292617650360006445393125707468679149428277732695778882254984086828071692604587341781146480272693681401261971564784159921532088795148339089131448521360661408095764716202943867955794444630585881491925023264544740027710736411521319160775313876256130156494300182742108847016110340622295959537752177187736374161593241115845698922244789150849703468537331207428255414284850740610008679634581247476006972740790351825609432967820925697523592690193990789224830223137630911147446163475510557528545635104067770374598874835868419380117468660201354209408901170836938098492868579625248311208883976910424874694808917717719959257334196638788182723854454774634738788404820115042759428634445834221562377929168352426069991209252959697779647720086107943688124524192163331167935361133937271142432970546031877947134874484566441235242908370443755667061277914824136847512363271593322116559060642935819550865073770739296866894636419984479324850179637263002292331019252742570198440059636718589774779542757911116743717124249623060462180164356308570975839907334418510855674212394039893204436060817333093729416692358561149975485899562566552295526596663375065483231466900607456061406940753958428203810509687254238195261669019000471622956889565474557953640970423596961945424950300229774242156269028169037393332799302517577561107284953092280673774818449673228653712852417750267288724631454730187217446988897690658655429568504247113908958087441980273040064699237171380241890871423824414547774723046324029036933059738760951585014144722874283643123534569251565801553912736016099087794582948800018651435800142583511529248876567121078179985886941966248144074224065949718067153583379838188925102559834785091184640958180055391835436509295494002224040498383499738233468660835417505068505617530782208151645742812023533018542192565441268329532064889380369038595707770708076574017905304591732568598986831943009418247907971527576048684101729750018985231608429975579908447791140703088398687996048693806568513765294873709184169843228788231519639775761190732865794025210708852623486375637537681923504248866356949756024239503663227284646982561126553174692407140192062569632425790889860636446977575334435906218411152845499856447138237492647936623184974275193083471145240230793883914289900544496082326917035006004843438668876579119406947566989986009435811744747508690096797158039291957783953487966600278496085689480595823884591927979145952957237928668315252914263818816902534015466188161601291223034694224592979754939692102039025323220893081959472022208330663228326695336698726121858907451569177613267661633997514929022777871323254344059660317825267082803271034928091239067546429459188898210966379850399371251933093469790748148612516804287496418299252999095563603689958811356825063158227555476539282343711494163443170348300853308685537545575838890979055277532933872764277912766604713855135947213780511226333795381227050537163613838465822219634214873002162638106137162599221598863684035943696590611353458238862586361469298371367788255528821188653137604351141948909410419013217250356124533153080609278553673519440155598317191078064386289259215932806283962031002877252378131513313493849371887617237480034932761276364646534114780750373240073635765169551621775708657089111501573570419224208814494214078998319371874513275822787462261777965303822447104078537916705199501743219558887250064563180198454257571751125741165088903329244096518065545304890540937155877765444106215910521068089990721377193113495218220985348021454967522899726884080054091102827184025059752278166931373670095535758355354753303021785527918322581028463124927896188991112781495045584159224239985515250386377081654070473844812253680085491500046164115032788816093006235007085719603820562745602849089367305546730232961459962290692600078609910641617424353119003526393391888115228516182150351064430048650401024876188464467486746979641005742784615855159922550521125770980885322239108421189413592206350415493119851099220975134171541756513263642723082414770252079686896065600358110384190917511064662049489634338461208960378819232498948642787247181387846831120315471219879380303497013782921178371549000044577946073827300309649626107345883600850538519921330100749115443733340072719357369589634623605635443579656888897525526824410012294484506486772413869812213465565933989905404147013603009118466350376995280684152631637916495964185346214359980585978997374012605616800932095707868082404553402826055141380856390016602812230097155788378313711171391326317432779430700413203549768403970817161435682216901274445566243731245541119736380899755700496222367150407567470727763157770848600957635170108763270764560584978771734191310441985783666122696471865289433821710462552108649630840915067265155918604221868316318902266039513450059636871928813532659015123918574912524189138636416019400224379502235478028946490176215288607354303696501172657480727752153073997099402841356287463553328354912197208899206202769811297355036639462883797792520274264595900999644369070960694567783781447131224080149580236399384074140932179454633947270984728208340622873114250554438028830648352157936613453304546183777783143567894007235125990824300598345957426398219549489499246670947015874983632936557931556881955275736044736290022920318044822328909017018127327588277070723985281046810909482447424054250585682562360400661486147358737081601856418158071961880552932720612551475012005274291509600823447150769062291531825916573147573185968909639919922788440432187931327240817207863931555199521495848122208831644708494959568438371685512174552134320796518685189650611149025857756270161793050785005338454092901237772487628165279090226629920142288860934166741318961659584803223133806952955856057907142755254853983117632571325647819549217788475448577758000863411410078423206583296871444688418090901234973959197632290724668933340493315874499330050005610573952918793960686958943019906746759642669408699304776588374432193602658188158962429829642239432870918600416450420959097610827779345508749738922525883505566501219259573980535874430958005676911585628286592843488051701932100499787021853977946858224399067149635678012411169411650652045078948030222818926025217386221440457014283986681162719651802958046584450876493942449970710015790068823984641795887686268871798801033962797143149847484843085755532519472820617463238196661728069515883329181215183981584310587848962108969770224885725644704616941213302612752090474384236692549241109307440672055055979314555977760694727398536885221393701075249549421813758768283198905660716424742095852098839273563443783671649909604230924844805389482975806447658103499550181750199364594254659591973688074478281832790626364207536519412953299530202237262836140720365125131717923045798064693721268877591011213386795337566434288258325080448007393208324966042278998912178550397685404164761299736474240059384154574103587317296208005472173701745568004514755144401465902134458207016342774315076803990802415056276401094454954233764807724869673672657220077162526736269585011977773354080758668770433873397418966986664491470082601920477088308590222520219899069786349854077624893746101650563412234583827427524070414302854212454553006386454494233965187002911128197106994380434287980320419342652888099448666438582047867400673726123334834001910061593356230710769888441254043128865114186696803170354545982459280358516679641318499012752810453780491225318751807921408268878726715446585581006577987300918164321978854762081564431895533698197513751742573658622103730004015683473031173444738433143035783409636498725607310725305847945356227207997323794775932684007342752487453071477087441022461046144326073760383095434690267358608031285534092730793354280217566059011278826656427692233096178120205638622122425102621004757398909031259137879793553473034443869105235700361977767590618700796478379176537722133637968100339752277737322052138031227080782642389325707532892857284150492154654838703100520439708615543152998335312879969300175896543755211514917674205108748423020275114328869492892880511553427193493710193196018191086417894223535910260839356439744192430673018595702996817822232492553556936071948592744113750567386889957984221263901502822848274189472126357786216550052669350132240778625378556919850747408233316340505730257910637647389475519576389866253806185977386930626551340040053628279790919749502763557876162391095530419589843466778212382244614227807046553893808570174622156858119271506741294006675227770243958832751727969521680809754634844399361272964175872435342092895677933465278138101353145902660717143400491541249795368349866927045076353820688411719742616531478447920836352134932661123144989569389301525723343156969194211818685320498953043160890335950027936761069641743485946228807268821349136369196258167058396528460113220336467405118293633492744755076789653604584333712830504522163158621774078196622801811298116257061110384854166527861776344882184919675878320626021333960545661394841228506428377144627105327809400469934973057016393549053316250961378644560027562158561818291291331323111153861670488152081120276608204741413352205011295444717035766897434624256350381011817192130880307252373029473388890214736752018753599657913927312404912521379514226579795690343782591752496831518974998163377506364265428289311505704209956902960009301122706919697949625240416750679110969676568973494517599337806785030453671805428284166252589942949940697127330985334381505616544529103400682702139089642699887278748999850981930109575785183688967614141434692432478398118500622662538450621935072928310759198142317712306571059257527880510399782685647115795583464035558621190725744249257961487442599896052796778229692546628891405421499761897646645284199656969071025696389299145191997717254154361037822573968393805644199450015021043485815708430600511243418718628111032885489355764828360795030256054040573359503009074788979193038043013770552834635683127072104476035676604990498628091217874624066170200808896496952500256962219745430514820288372332532629723824253389510319685787948625357280419900473397923068375630386043104009855125161436434127695289705438346876460870429300477897332902435993804133920452000973000695836813554246951496424473712077988484448162997117027338670427093778372537202516440527302548183820530572276452506166320462578762403259603484069175707027527664378208469305842802737217967104535047515250054351024648527142739917093998353634450720335235831431782312217331497436361681080890979549456678388940548024209545796461834630039740135100707835070804802152965560799522034072326681020926139906651388473046180951594707386546098937720888404515700868989449060340116278167650439732115703499902931865754209922293069151265469574800537099304637164079371797907848084215289604757823921432313797266209944523900612648281905786572392055130889964862489076541401813001311582037817937202334358012504695578737091307903758639467370084923567899932564328268485862846475298906459611798273979041704345026817054723726559693111480853570315545173411363593346966728749249431755655270327625296989201909966620493709390489261080335683734791450903067117707627398891648821998419743333625086839223628977654309754223679781145111995744280459430694451381201543170911946608551058415955953175390699509396335739824918018181997649170750161705124555691531450569410368451585199752607305324523349968357990612952730254983694499045811026083967823416066629609858812041832027705869388088413334041988473240480964965796052452280323561217283752007333067191225418127132396198322061266299936074639149322134212386280380664488481217526496954038557769288570297599570995246337989360677988174744511886729123763935753011909316654342693861109393008395044418588186335959415764195717515344738750581759005050261510925257094523525579386528514002311271681835242783339517252646502006619188202846796732680356718857717901456755327642677099526642188985520830592709002040036090423124272353058363426136780347855169206719057273131401995990974833170751938331867409818107941571475583201505319861445166243803481721281445387697255465074548671998803526735725898738211726862753074699856266976376038144817281224450061365105791676547401731756177560286738284943755344494214781919087776796284617257656799648451920941021821212098058298860179968559370767752541544163268825577553380038367699071434071021378774209458069520405035874343717059533738494553929287647162979935574922750106386711216643024168061397186396875559675153703483119356925056997692529766321220208210641662444959051019263837771797032051804013897728841917677491976623615963496843133314654103466811592352381211287632378686561603950240587597195059562467475003184832911903176613215328245915388827014862691132826031000023552854259831733537359690591289650232330770763249489451133490617950992336394423433244638867405680468106016159538722953147644451799741074302506484237795756414089816756474697159489914196717720059338852733754862545734933358530894964913561356778094063212126427481670130830102440327197499208075370746864422085605735954232286495313826430582395983095241120627312179965914706786264654974907716790515078836363602985545267607472234389483888613948791141798363160224234796937023012099549519399576854014406952135001926837080281337057610237832872199157740130880126954668094758890973796120147875523210026145779875148648128616494519648178151464928573093193534929875904061980007048312625051024505453135505645190027754820359848421745887811194556061681565210457343321031074789679464306613200155547382609795420480743256108416162174555546097688271422332599160510349825293286459198483209492453354046344875225681972005830145713322309537923048381476244091004115187052405561114984847409637070281876934741423554114028360251264208196666976087282630892617578967329427725690844796350293214586242326833355981168645796779460840447646665761471778372264987097908481269314387437983223521710793082475679336302540135811244469372244809173160741234051064962671804603341667864163499917222718585197722523780275321032773446156807785298503768922204874046947956577737508869592852825384322071072653445688784619839722522238231962793853124739910268155682372152956318570160145459167717102350567548208942440554739988898993488961255167877997664063250876458923617795945767692419335030757933432319394520826730277583344575510028660401429404319012890331971979854163527302393903868845478893170837475774409284706709865011117923189590262646805004636178031608580888886451292085892345932098583583522740389416195189227385422207295479029194723410543149135456032665786038395617933237530019591864823523555145833995540736048881041940768555110796014800693553999565310322543917685890188740593470507542776072629373971219520075595905541388724725753846187510689947591366866682033048578085756492545803768771184065691033688739596069727480052763053256812725142183260449662703186905241351759302116629711894939233006481988368460204432423823262704111813728637001711857717230754605320727688424571436504030823284157880270390222648943654129923739942250596388092102443943560977274366909852373837363529927670992468541105758951665052591216506066142543057161738058553808558823001611432286721059357511363336466234327698421663717488547151372683961812042811537489515881407233314294818936415066526838126489543218943406952315658665830727822802677990455259034846005887619237467699494656423256976489947517480909254622526188884260199506369910113724622424546676059513210764382807681078965537743279296378270953840386410101961445106933492019683952811698148712568629248734714710605502229650331008497050268778858453871573212342601362649563677265148839994390778959134719315974662028142642572958564734793895778333321015364781524590009152831414365817086946546950734863916405774755482875220436856376605395847106641629990189139957805178047700702726931989622871044865673957060953838673348728435856238248437901715635374631896693959584263419267266907878105013293266038900985102186324171609586758148069879196760769505045919751136030432561647930882738654802746242465639079089506164432814600721372397397164507389331450167386531975382658280204117150867746575308424593756833100786550661082384941935406377253761494775091046588370519471309651775052820041271751059048865194585836475979104423867364621714382254745490071872565700938746527568213715442862182817088642385603041163847954347391811626210395091311317010658214807539638157433240043362649459673613262225826383011046638299249493104391334855351821090261131167303575873655348759429673374471575832758811862179545101563718432779360976985519726296771337839272511318566222983732137454726171592137531287144712261417710573597084174607527469013196262986102538394711760314064854436868121047592401182898055295478641897931459092856594728796463896800858804045828394682704903925162043304664439457418362379315178147655016572275386292197774944658018983569528496675836993722535394315553644050184602937745705407605169027122675696653836197419677392949454434176704117685373801418915185459244184912084238455381831687120236700332842687771239849133821796848275539995435574712466311048456555278621939496274801489458145026948301798514330194359582587958277528712868200585832945502425709127790633480801503778974683551958300696711166838238833632424203348695686733810748566733686720425539777516640268205085171036131106453405023612208395970160334194843072870253107243180719793769602911759868868681988402285221741818216133868745659597254185622093440875332855532030550592731340947960396543937145013435164628839719374527781886415624515020195589976472955415186661588778657234681700341956389040113693434314880124359404567794772935008591459227336037291546306325853227618861985248712979222767051890079723279144786004993201938263288703265535503078739633129363142383528660485367904054725331235979608688432682878855243631283004365096702250274430182023169910765611163641966345776786905532781436924672374276755807161110844968634262249021748961564417782043923413894482555670085323463025483385371115606983631891963841174709358720167695558895541108138685587700570757956312554337135612286691644105958154295188786682492945675882655686385458164221606789842543303292131149209053860126292388865891672244018771810651852799874536082095299115788898102713561694916210277852314833252517402399776835092240908601235924633559527577060005133949361924778860905492019525334042977759363026026331429987476407673519629119148728623650780892185073853144051587679830156911250577228724461197726585181804567019968082362931139313405100234707667704205118840251700903084971487351311836976169773881193731973541220205634076523672996951123906052194036900391262668222261895275715189429641808906601779744885292705725203352221509551029152343320464339584428726369637617973813826962465189522329208575320583805271500352428064149036819821785511204740853507834393323724129404303511572679877323237410649869827818311142230575699401312792080108929385836676786576676157384527821182204813869452569740412082213070543279152871078277722991328082650426621623992898200863164123297239722998523324753638158589681909358632239911600778137250175693702241529350997013528398832555445892112381707225669131914431358583884908262116658917659256929489424431516509288907305396210163055269193770507468460756795831913664720439925232680518584322930106716876018965891707394368975155992010044966894424388682277690570817951541057707152673300111870561617012954439829632404500987628298867144741398368028824510343789409939021363184004946577396266055782621892672082112910196996083737353567235704107560825078405770951857472141880276204858223946820910615398731303878314737773628981575016329835735269130809646938818614236205909364871765616689567500146629749623283851335966684193347023245724990023428489008320155210333021868788427989199175349952717475065134414447103140119550829403364990445558486559682717610304830698241279457722152391392217490963086368087222226141263617316568895100400796060459598495716398652182524904017997570070894494332766047292724018382507796782421223802844849308885446825638398442829936072713897531340786668621975272041468753137546279971904557617414757101674218094280390038355862915250722062768716401743298080249000207643567113005939786139520484968701193611971941956733953987109128459314844310199009863634379269201636226189349812960516544968553241921115898690508153809901579365885408750021565715757102704255778594111674025764368678371623242809183727701900717646609139985206142046830455986978072074919653248730826118223240099205897955482927780657766950684562661569025048519004926505899112205432974933896362996759570855842770648545213992033723613093201871564137722818520352777655510576007838226503813235921036092693306829654221333630835725655275737396459481153405037346871108625977542081724441933627285965055760869497917180963490397670205279517925557639926976826256448461423370082192044176629429217387356027124228197417289621742425270825349848374267113324540205809783653241719856892595400637197362209834766010374937539677751379500625975208713493840585446007508635701715338481465209835389631985920733245613372411398527561429338899639052498691214355929442037733108785373450028321881753143578840370726777723824701679619675236701333506687126311161895202993348604554608435257524620843360015745434733949336160750813999988475059068071651345263877170205218788508831374411549199106207156175966043424157308520837349563417686905949169922547508262967533718320439012054010711747025316227865817151980988490292266233921667012257109335976520993784542262519264236786075099502947306159135430152562074854240215822390093212903999332000864686054315000675919280794204580179055379107702888205302475870518612762840259218917648421424956404935542486288675617295292992042333504519232328867618836678655632835506706270401563780451162796316625336274083392284493251113789619805739962026415993913067668250259552481279897963241320306594573845192377719668439871327172902414344069378964782206475607220865168889458253079546209339613206575536074260978412707018534470135887029865834894621232086784919410155103212667997122690962674595424368736242699990536050486875867293413726541541980250303356708824390838760387065038399479393428015576015310032350767860023604932567076125071187927040030427829972586818516169535582148531612081102820255720390308555276770863013492952548977651916767402707442831671478135912455832917614760444802840762976033628421731366024520910320444246196313589126609172360786190179027918686164295723053712084216595081764828027154932184060086189554346907563222922451638493641185525785662283829490038648325740868745826228849158944299378307471974136176616685328729694904275974739007259012959649038402520942575119852863134758490287977994883906381265223603045929290497485489706187911678338235302069539458129816320740057722685748800119524209713234073307936611880306921539688589879773479721379186631606337274743987247796364800392717294253819836104560720873389330912062977872702254630725951478520163108816762225629085588639157625472600737878145114651007912444374192668660521222194008053984632865978798157352533398033243343806123784422127620372680214796668616833250778027211698419723637737721746725676566180859145040071948149073223681455721131478394238763470206566411821280007712945031291246932251254934697248679731348741502021648920583751278081231145367832567986942458686717693954366145449417944135170391454732063058053129256920547922034647905600442765396687742674897276224919859459137115606776382930637772184958050312852984266749005180770290548992862502857503869489597375293524153844735861158791283080251556170068338033144038894749200186242628040294862503659722275012583452049787460568739369232872294292404755192195201812612797969578940657729619419341982671278862749282344672135995482317166453664785560645469012585509956300587832272314475750682819210331580558998508715224735625114747234354245921138685126037650972659692017362617457385476307232778298254083987226611203115614340222903819580004559149768033855327640435810329414683511672145403478412932659593481089937443313427212744474612427636695243961653275449962321096665759040528318023718587858536388042772716477675058091513113962327558278057832060411185539275989184208603487748025928784507330190309190509903540677477692658215896859668532458214806541775805030526075990380345840841023816583173531639789286696522820072229624452366190237089233687430161999899932150958689999767630501029103922790083916555580245971372717572283377274369614070041693548914203060006117919563120437061838316782440374802718066475676013110729919422175309519869383623043948592189931280817219938155379259674373176933339990447162326544245149086665871015773339503911095377306720821904574825805116965514028484582742548664228843865978029607838552958540166155506206849571377778163461739484284957881536568434231815009558847126628207632332461022398446507719746457809869555948022152298237845590777556168329283387652641291488144426216806506022501539194411233513600388978397680949539123186508414633043949907070046318945287924457429220693661582161002849746896490783476193787499104396941400941404133082125405313904667489859777297379395271683081186205420281014758321862162381788531306797840938820868870373539659066498715072679914402138348916730936402587219374860058876240539234622189272899948012995843517925004027077280437986867931449544033819745062667482212622459527956399940650138590922369908591438865914113634114284734658178969414944240069012758732293325658781668066128664836697465371034580287920358147361657784065899250098283115688783776967221972954301973138571266146994256585041118405034596653408059627689669624674666428979713841842490831754195812498130385676810808875238174561912074898008443412381205180797058370933671715523290210623962643424844431553496661425863377629353905160190277398303767372312427688547783912792871976291230742537712702317887433264944793214450629723522133646530873375743675175349978195853471001420703477081320906278890537220983710497331762607911970237794268879891567704267896753791743175330884475748279958972900058129780663213314889064728223118173103920907034565765291985612565822527845859557180197833279478827198940157944670689548464542351619468120319101497861843854715991835613411480252983170642835592977648840019464493880091674738864005603492528535289964118493777394956576181243507148567065405820430712289963728414914160254903101725281464665598211075980113372909488665474790526827648518859925249437867428230732520358298554335840418686653926429289472983627187192194492017584007972641868297902626747453821708710442522076734311097730436975646499693224681498135119392008693647247392441206899332561305870797603173429783128123487726773958425812783702949190060059423109015496467277776114029148856339742490137652621577958226167540173592796710655780143320359779861813634645549393480311282999791352343463636309308529429157179987911325050962925055481998093562830913818269975030043721035797486359768761964101246258227648735009319316992432139396350883403381501337100483724646341959796562982328748442934419876659303279327624194475720895372797535350222593050358429584763725539075440157595909629356857365914730546312641835281080973697098367754050432702036506285913798593633253424691480674783243192485239851961644559962337420218995787533425592244578993893717470766890382057264880021487616588320328848137233126884711987019998160538444096112549852134204291260048646585137260651833044115496679452657175029772027549926766518185896433731860490718775180756170357626454803008774604417610711220059343582867723267529605811404583442242569461851887443984498344086195498187470555639536556850019658233222604805910135470633037447039895575575336305625059108019893133084207954389076916623641866637635384403470954444914716799264265986904200551133986009456600712042425979942187108749474852893928716227387098646819854650434980726019832689007210561989490764792652173246522717825996030130296191911779056707525927464983169899072782447748469055500141541449784947227377165133904836360346552605750766505150589698220921326695967881780204576702634893940209319025331170922382170901552440710152729821505664052827685870882107714107743475118685642674611133689066159156649162423943981045448845493933360968886839018309944563717725804548816448008327640199022795969406005677589703210665801320880095144311395516165386765192032348212641971320167223664088718877878524904817198028845530874230180391964315572948609647088840059947549701989755692009039644151671018410212306252677792215668599967501497755829645851486645133770140471230361469486577685067436205298764917741521660462891434371752492397621112827302891963988343977320025389165262380403494594533485130983567309711446932074368940337285328101113634864096792966578167247501384107891308776712242693251361892616872830343562865888130144379776477651897120549197589391037041902287737131368519087753939239027429009577731043264221005963394481387467797202363509239580561327618201418802351273681994586331247041997651155854627147894843711039868743445511810365643127569523980119516551535121801732366809582673146069766551665044904657011319975022132704231077521300862394903440200353647922972043952387086914215649891516161077543263530628134392302311676270865232774214785528514802761471663872625796830702957825780341099527673817097886418648698154891240606930883772600149116904810928350603330396341133425874579313207420337062412000716082708556344922809919373849927592869830417300160824967668432271444690332044120053359815342378892269174720995949977430063417835954712838957567210298488124858046638353787290545937520274796080913546016715277884705231959413524828942452412667294631896103870433852728108719954988031848867334700531745938912508819995164807443311372722993698576815673052813256626360269106590649779446431945339483232429192301097648138232929462381173606889165243389078729996513680379764584105287932878943044542491244203177768147102809844625663937727584179057022377458040877363364855327159683478924725342875314419303595027800309558123180150315437252878604274402846931094285646798629943333347036023647823577777611972868726840082447117146605010586473518000270906713586814863910788030484029232709222884559845297145323829515905887353889023342148101094787827565902751051603516147995326678073059798088117441656020538350649132643536072518551775290722172841177696858023901836498258202573368455270099772969995560738967653237522297963571357256705757149568819135014829627257341616974306008010137589533809813308367796556604360184754272423427520364803285863435473475737662143227197094884688694332362213723557601061202139006892447225948913435319487880251269734444378842931994765995185157936397544876204682766662851156462639094283644789790737107987289459788318401945970740943716752564616382496070891130639894214876886216639918499915729960207135614856739822431904028200965506786234757664270118763042842300628573447611303160568374345159525370357350040805886290287781300775683380794275715698095507754217397791281224824188873542386203467552823071388708722564966018526856205341603523886036803541236068852055894142983646243698375379763542485897296614041098802411493392996600272770561419351638869149445487469500257019543109729738145171045595959159896439723115474731659155551384202886409762093396564566466648979042310811371933740874069426087169444339309288716449325766688897536067164733197520021462266899778171629103271261749179435239525165600320510811508597790770489259769692389714639018651491313758306681961517255703465340838380110685475039903719713286410430493634276922010459923020522293198724770216694828195089402099400520760499205049484539302746168596400193096766466998140801148893611612211297355088100507705141801127361536320930533357598235366670522434806852199231883585713973313628663215369740695882715807622159285156532223191733107200571683906525008520481751784379996914931673717256280263858887407257797482821467727600406026065738889315385846623914830503275905562654065516127446880187835422630143380941558350574202071415454784326613801082908223537066368562233554399449647366677498562813287740526776950461530224541137516172179202015078799039394506081293993465674818508444625658668081594284786210244595931833806212328664180477329258568103389953930593582227304821452319070152919092214120821393361626496064511058928636800454414017031787565376775117736670320933310723649310482568682165126797768153792776908366539587454295205650884560519010841131648765877333851934444826365142063361302175094197758963421643067363458808979848696945109705569890468096587623005444353414097481826120121292825207442074395019481769288430712810418861591346097888058464422748840609138169212227801873470056807713229600196128657813861288433659870955442743106178657466308728108492254304396646652140743395073156241683857682398991647284646688054226657835782069929447012974486813878227490197400967713808672050947217871197436691060693330098320254881759543932210406178407097842804667380209497495748282883220410869996957304322067928373487556783219656735835884794016661379225024766764307027998319124011418162862647237740664611779408851147676216951534560835588075499502213579446985422731699948572405625021889622467169386213944235496283585848392555754982524928479023828939403958466385720695759578791490225853665581863038735461543772839790395200940752278707435698167156897782209272384388690505449349820836102032429868806670477681748995272802552410100824284510354765150470134943866893063411164378728440949109260363564566624371223833369083451737010074825348585885547177076960640672637383215777082956685959588850060050870789037326014385476500123204275888486601400472264127566735538795882760764111714586179509712265928159844803397195784778570700795082593898302405815472200198245890398861886427264067753391525067778496493392404008804834225124495411875027604302743110651611344428590611956260336243032857984587476298191832287456234450459651021194256630568783743241513027031226002027922007091425985767861486039814431600785305794688082720940643229760233442215657893411363870260307035644702615428363527090752093578996891858987297880810790314152780083073246421939280598626944177760522782386386317648199613244827626456849220724871362771703254177928832024844617116924186135056689473615311738284977732921427282574491549391369811545857166476387120303807392287382519111375566896217244270805174547963079187617798613052157837950902123002199432466372801444110508569335716757326605994500539938522105824977722678314994010246379649137638715907136400095707502198835279822369223832862579004527770358431002008031898226236676256665046476094372449532590327866035921133662524698073201959056085568998413649467531336775162228881457076681525055701844841657987471938708877798600393114673409434818487638965113842658640237343290077207490304998169148539585647953587396051962600573958686087483454411016454737585350208190363534444972321633169095364319630644075906900853965142551997833702654354945588823941818245636239460939133396288527330323923669123040818569596241379541329884115141829962050924252134421171780112377972793034568583559671684770350592169042200367319075138030601021449602653720148947299519075334292008715341614366987754915421275999780345910765062059101843714893661242691821838863637997658164506870643175975324136902650222454000618523017512832116880356545695115866605389400334568134796115452913761915822684472145281382054110448379981656411645550481942895992316343143872517915383891133092509286254391430392991429164762626701268609584336711150095990961271630408423660749522154303004083006126663726567134680970950840660886280392763040740271598382875098896995867979018737595283871666432402051774438582312599233118958905771895377684888265021959077762750450083039117668347860651188577566099017632999055170099405770267195267837325320670710328036264143992453746472993950640061093361934729449182108374647556356625579446933950524726514736848236111308534684206017691474857753955247965097988132362136519332470002529153329966271687977172573831217339384385225812087339174816240853475389033611831400260759759196068727727209957330127796202632452881550370556813737645798811776613099296771666500696115688382320221044054221038926289314952764403991051191599991824234927730433661118034398989993724718400714180665463824101656839665387791583747720862808387718987824166574295059699740823421521046933720072355012029218527242908087925835392477046571214465482661414652703700620487010320657695603877428980360766740644891620946539080300935554624727798575819618135856126529690767070029623928279265014691696775132876092492378131136501396976422237262487691868206703839537678099154246602058858942143084414060929311369707635237369027032136506753083718527565831913388178419138538501382283589137555370702398479193209593034010350952554515136749601975056668962082008118484706466301386811541830105890191462212092731096913212056625399060075826585880854843099409951112217783919851249448681117260920322738536504421033162725994306395728569473407268006211443300942213287586468019870997184608930523282847706692201541407485914018862994416767478681707454458482142901085054143529324051998837694144038517695507735357192663860032570631006022634857422355690425270810169062597732276058535316422325295385482762716995379169323852918448874685153965079899044588106070858442987001502046340505365001021798537776367827650666076959514782499131626114859634559167669449554019651849332426337515069717914189063158831776991727129034073372521501580268851662193521145743033952891761806892140626418795561594115924399118909112322859226313338376291603787400287330768671268291201203011013124184624713687298851686407492521638440443955092435981964548447218107086096209055414973131565723335432775223673447122762394753828836644392267281800264811372296053364905288218519710188032040710471980170797213372697793130320527451166315372056914185343227394057290131121319013149570677117057347597738947665135364558344320775166138403420608446186768014412531208659584896971361535924927628854269301650517127315406463494675460033855161826229324385808606486953444931437267294363674128256993753598119961519673337770339756278842386816234112158181663384373431690643015637289665595956410710887272318117262096176592125044423102643980517959929664131566812822866287033876327873955307095380634205106746676504867071637904127249228380494736443881866968096886583999125733787754295734668061373049332465686385420318363211870758488610632138125498644536310086427682250475948874382517766886936474665258461395366192211468876287105855120130614650958437774644169310966087728328289811582389231864765254290268029343369544416383387791811280795771168331762177577038530841166329571392379550565849606395494387308150722888193615033978679873508220600230807246368399247750482576098738221560911406363211498626981500570710540568914982087557985396646089860790870147132047030193350167751159832602235826782826380902906188276330840025226082631108787179062816807082359200139384349071623035421435567861335952123868557929470674739251953397948856181801147175375855867038860610041224722856670975352374874942581951395480198750041869812055434915033544925563902204063543088305559837195487308270180478449710227090173682604942828559865474781618513456390595349073996495250245611691420634115988831970370874009426807603212343843213604072909434269204579204159964262542272611193182591550696483211381390711470037831059387102585000090965032231658930761525347319294888413369127988187838840449867102905386425348223987946896271061234354564105021208587286994203595578227332832009091912360416510303457476686455283192681648498233211808569184270409127864701883377134560905755047926657938588625078791994310751348832884913557936026339097603781914463848546496734417429025412287528530853665306925676153364067473944158575633849225877725387070284778335055831429423501479323682631872748537004655552672756540677870801924178569958736473484066764566709712249604918382928879862943622192678040761328943773509817728961376816542312374630326565382968895079078234830158078302266836046262748004635877361788941386664470506663212226951636294824789312946319906066890794983723810171945001746587457701633196918430542557504444817272866605181839151710770139540351371773849129548356460312124705759446228922547462019523794613416520269198406293805441423075515156014630927535242200319896315907023320367162879783327211282853547927913350922205888261728184994600515817675706506630073941209486907692672687493056116577091956581026632255939219189618249513446938021371640680300660098153075085592102182564523765947299030912937932938967788978975886327883792810097308333090388811014378202897236670776202744213242929988403995506661596980229792432362213996456730349589870970562715883788908759710304413318219540922616798733121691279744672205612851237041050259266548147582393114324841011442068090690971470552652181596385038136983141419149671048323369728815560726370851788442045540105189047115152412588555882797670804980472465937000020524950237399571124262871548773695891491304238868791581201685644755028944383816114527929688892516471906509578619148771373538973052610374266369971965830576358123483535567332168109694270799634212050213319921259711418776247676130729487095403384010453137228795612954739326953219273243094754446735340671699732993920771672974478290855486157278444158696826797498158651276229955261517509171829897659496162954134143387982788323089054725369062522829700200075628253251962644418267744055305427665195951532163874004208882994293073385964857953476456137656189061879135861298243713584922595813697999929608793594465106974226845928723380135946551663487234464593502418839648130198732408130905530702929093348464403647328972855972466819882034478113034188340671869787291212777496459091758073862346160616386480368830734743359439650992214941201420051612074240153484367371344474157647345979900681048437225755297595319754185550318126256164157835956867444642093521706989813821222798506953280030186076646848278900509720466880425035634875203913602851868740378232136041427175200872045107511312133759085256757924329529387373674658996644699655109412434662793361036429990215908966317907510151215654275727266771303352113402642420269048029891867260960712401727704415724371988325263083228463060418067418367709762240647887981923820466380734492876903435874137914876503787196696592138539574947710052105949245847507538679720101027731969199873812772114253871933273718820842217860593093430249789274934057486679128507336404809818123002691722515897586834901415195957314706928028128529262608370898808158163129450865132602076932854104178101476230355247785872098286632606116708892400064479476302746699013057104179481857457693394492607314937000960236231983855072448950070793491968411650439494677758687233664863644516873101637364289486530033570796426568785905063756053927373789565451427991929936904892902429265914497784200792170414675408134801177356114052177607497810258303152808272750548243830618753030937775094474576931743301592553644297677742822450825193784419067435870204435306333873615974640791737752757379349521239727570932901203447820810079194609472639505234789245745566392650232764331878453123736282479773246656506072055225233357950155690993537944648667108701790118027177061787056104767272998132897486177012332173629956240307136163738487886316616943229202904537856065990226322504263402485275761696595670197996245357237880413612457545913663169558224786077601320092908352710030483229783252445189614459288027594422597498655262776650619403434059001092662793378448586520336762618685327929998600151942667234662905767539853180851272516091898634144159803432786583712141005518996028483036124595975162714767524936725165533628981228257657055557599861323328439858858313320823688655196381121197097945370487298895443217708679903394211210619798567928141611103905834072210483501336031310940710405591322273596024629215628116396257505010583522058169020368441507715958466434027539851431335804780118152699496947234349760997780101673810973557144957950459701060415595414649288543434588639578775375454353353958466005951905362956494903176623792894471754945143082764364359180759533790010667338421079663774789666185730431705152508266715918286638294855228296055001127996538460338815773692601016384341944441550283992565365091152742223605310325956892072545825554084898368853355602786236599809285709140277335875812461918686402389385822277044133442581527366022410157392075838946593378550961935898336480559559211639063740515141840813129554739561280684555724794613487977161677750229060173637616185164188774578478437523087690453882791051972931730620923701860114361343549605631831001300338754858821356532359194202358572312284230372268572635147281516916086942532258265468070586102378764666740420496541923536914355481291909235336111173151419584193980854817594237758436172000531871897350585951599548251157033794418734779484431530723942869517070571774783350097354617428653335671770053328065479754996171796762649360273148973269681625788857586137521713843757269178225083402977330408278256117363670958620476552723100705801418443512879241303130821283767740969256648646896362968690525372131785582140682298298175406013710037323824356492862702846281632346806871061550524877602113917071410205384374060052209085301095949519052930289396749025685861831502467901988644637021299949025845620993193805052650219879414635533818652246300676174543202482312090671718647069549147204477104329289772169229095582065972872023620928385535136016509175515346841770842127234424023412087344480089443564141002208558584982489862364102931792284010974815946146830186753512391168121556846869107591336465505398858058731234805222733532125286327015616832870626783496894090289030883452685012965563602632968926636398958130301900087928675015390641984549864355401779796226511583918301120323073603553608901726407465953067151129603209359649593781188077966173019576823973360748892728297340972539295872332249371731558377959292485836978499091946330790960806784425742697958144111352101418762973315161815801167657712020308669208147405659817079319651802184003283984913214672308465850570832929094317857238456457273466343731452340523077075948506836844918011731425419981800951370633275410291437047906041328659085087632556514223246880829485725223210210866511382984268882709135643307147185305872542424811803399822809733102898033896286627483384370554308826265910318177784922155266484641194245875966395309813407392733709458197110622967589731334677931066833300446546594781043209766001352727504276086009271765278348263980721024326669531827389079997361874187991517830952336291183873540475488793214188057694523338445686194234958677517237210228986176357770998378473462157877654461373828549206091910638333651455465677579117279128085991143648572080688877239464122164898968777200493966418847733230524765156029341424778724099445153042311496935093244974868227063911455655969702374654784545962835415216304651623091710887437795586291635166988003113892401545555848149650516913850101182483054658567199526913345309492357634400807909455845432611412479085431538012817275859983722641840221169382143977385787091849128046788451649653690889497692288109785184108710082996839103719259991864189774751823082028057638826364901159015381527755037638189884226915568015940755030365801876891196691166824921364630694899035330632784753245530665913826153153452701749641014859232603798623241717906914511328896290778000740898079194438585628181045234444943031101315025600706374788449281042852987642809917705146209883929979566665442590942470692832342766422668783075155581135306622527008855150501172753203742602338931763126467579225979352129693179915500732399675111864146969058686074721403381316114738874753048158249778407889673742125037418018507337935131627345585569404085840119890746381585504100739264299810608265871297959289556513303409465801241843423640024063223878377939985315732204682720614274381012427874811284273729405518530390840621683996909546184319132120013814583850484989531698058279576007788660624600706612505394493393567196812642950596820525389409973775137294354451558467973143543860334653532773041262875387571473481081702480086433839447634904892485345282867041457733404960267527933029843202754402995204039782847115123650813005932034797250264812807762557991067145079120396494730298450909739011754704032198986717496284119566741738976855103717694066756438248197507720538466936435468527369115024707989643729573375444054807193381175983518454187626532820586710025880029244701272767825025414170508096800251284824847928575561562377037974093380499473125633311447529064614283754368565636818381441984268595829120949496414954128644761024734087648920518292771932422643549396247151820348628771930739340898234253518224489019888562636181218495610962685452233831569823099955056598354762297920821475292164000417867693754619900105490475514945292766396355748697594504112415635225540905644755995640065491771993918171928958578791378463211129862950040419844506821261951067323532166728399686972985384700027324735182525666948622567867245137450167716059103583094683509743554393489103908182364881994702479469241629655903206840584404572841966299070204679265734995095183643167696467469064877578102903679878414110666313609429894187096793998538329873479408542838127121514302143173963565850833850621878966023776244745119883356162834923755400675931933370733412174055289581506977180536565434104716116182641098349920346800036562565379003759469104976066748893049002293811498438203916654459445441984547427502476189526699907566398092563680622056407973524587552176904148471615231904365431349622234188015410989737952399823883928585370168159085619918719552399795937734272741723221447183505891123151533258297975558048534388438700683484207126138947243299582353117047196428505332949615879725322375927662420565179193436482554701078190723486597483100208352796171153817957090119697854586571307589276114946542872161870366688744824578882598055564810987912709809406407772013180689678563117597607944589314436353245441324778329677783825239763385822975276433048350131490341087508001876454975699100514144145546188838206513579444056809332691168944538489946691454323833815821376727145701210023700535996439985185526121725906794549217217330666405661702985818570411374081307540576027689597182247445699560318591110751963022567967197165057770200742157511827067949479935995661462541477082917038175183269678408327278158148192061625107892800888868343029698859543728028064828377377409067631975691721760983256310540691462508335496992327637417639987061828319537020425857486709007190013258000111921770303232632985388168529970665077105660177794817078125244393387508396125742298859498803017536863034975620588886916540430151031260882937571934154964508556098650169632288583504107802237778054088868850997239107844077519719349423023464994646975215029043372434071700464181193825334686157245472819631526781960389024683023348296909757711204514380917037906711847255465345160483966691881540730664736151301121748275644098721516426466552452605389640618099347473131673287404425505901440298568522122764033689838133932278621936891113460277797570058133981610210528184509181049998716028727763655527729976190570602741225255681203704321859384436562771545769397233260624892359469651901810593621023661896797612208574092532819456507966725717849807550489620924961149255574069464710008547919109582781773233510497755952185382636940328639258292727773130065290937556809345954360765550278684598731587640005458320422100625798935287276996225808707100719709153914625628609636793109567130204062833172018050691379083516030421557162653784463784017506835602359777396716693372818897892599651344783589701152422728580834956186548686301422964690350030063698497981302214681584138350446176924665522075679288803423254434734545995366324688748450730455959427628279954696219764658819726758204579889997504751332992779067239368628878263392199473645028198379669595738169152722431367986373463609430829389381221993094038440405381202172862159208820682022184175153885826381213832194991173248433202177050876748563095408197520682002316934918968688094651024077904367271815856068652876916169121073668579495497806325096122724715012548223427737051277537530688008784021463810332365839493058221267442753996136642109516280268769792927655808017824099319543241187939220613805943645593627996876358525333229183339333870600009516170849559756848217381972668526795422452550367076542889105895469658270630677264811838610629204208756077165000340749699682895286028275746607590190294344481828115777028708480670714997907956915344041130070858382420346413015680902589463335435040401130317987298725272038198996326411437018358497530586236825317682018952613516103493803948707311161549843862577069492680470445285117532450432059737167252064786029759335989470315537368956620107447911353144167426567582785768130617577982014329517310725632873672597100659094434558100257723353051214436126310648794309042066533886990189657372723958363224681686387090120261752424477931634088996955103473335551797623711221750068640139765926609435804529684562619585587932531023899019195040454537435905663188964460111318212550846555294901936587517683035748451768118799841821882481299117282072908598065719107537680433826623527000981887313082069907518025329802397260607855968626507341378588378043558900896768164043069307710105297429280875716682643780227435452097475498099005809467729553376774876219928621134152298333350731923154943405591173581522340912334966603457769821717991148933342949471107890170299374375022104721618077029357077302806089586693022191339196994049571563423849392218773039665609293278620604975195714748482388871116627497337436029666138576130376701911327553634926382539728489817635166013004009440882159620712522679703153148760176265372991812550084897248410027793118174944145088491427227008183990482749570348089878508224078900941179262765685323010318730685182605818006623895851299044101143636492846194976011261205688985438557218957234650336219965798676065975423745409116582027005009709262392850657590802867214263220290861949929267996311953044360395382295506836003337304239309314578188116998277604211534713187883664868066176915296251942624755759368811860138398393095146200751694237438055892204729337708419124355005988131834449675546889680612972006691855714306597889983561406688080667086481615842061361500026610359518555131438546313350749213613744341002181810979672624850890347835332889096454922946055212500606493722335909583254551149924679405215560537370554466616026384542855996999574101766420721157301816843931743557135162211673342618259536566665738101888750312041453982378910982369137727740846555372112940796735155250518438515335939228013217058013949775279879656442724902909690244761049465152624439024256293172142882312107044002294306510144151713756326885805299700476119745568266085434198819727868717446109012755076290295295809734201193599363171472231524297474702547496495765044982522674573766188210766486152932863898398825425382639313390055084724022076139723387535078257210196464926480878238609046223049931769648131603874282676595288507467598445906981739400243245099683454156605034392595471628465859011596845010007970714654317790221634360525048546266120927754495909287520163005099501619118317705381962494425163556620162863819182400277983273268886401171715678871247935766786593900321402365510630358761250773693025174804331856903940967204467514759107555213883314582698101902564080440852414780669782152306170819495201720066481483638493418747916679572863424085853757956587128356768356629607102466177759118000646734392704723661915761519250335864416972318793919846244350839435056846844651991420651397442885425233402548891538774287425816301140340445627349197656470871756236611869303533069879031254068045651852328267688240702694697412905843390987738522848458629783929095738415231630045393149384119052063526709051579228516715048727424268132755109771800706008532014066705333319476934987195426123942478159824610202616858103706262856444826895963589159016144884444937588243981276126057983495391936799708593484165922242181253641341826038728628282697171071112607039032327269891489083135370317928355595773149552420797967596806290413232188665614844439500901112444066672316962019949389957987733007131796172931291486778695819601983144429364584742633200930750719216994899616332951197822688497324264366538925312490958557953424116316514737336261837292894237313346732842803458507858318952008060590713630624098311915959281496873091847065206130771270970770042699258545610963505877274321080443199988349710042649479303966660473360452336622197287905874101912414453987479383459100791598132731963102315696607154790406579912889581727001972695744884685335535237071684748419078309649568182170052128735835348763572652170808854698327970019849135419752816233455455808849343661873843429181575502382764145635220698640544238821752636934706858617303447568800181196508905365398464494852836867415489158230500456120964325661311765873569150824636195365807352282523422244666864328986359176143252430114238527035820068950050455073868590357433118497034698509902118179888569980370304217323312849790225971524499402181920736167740558951522148320289768357889060721910175417695487495773807690198264855917995144983693597064139666362972052720213018327608488759466055734167217326216715271280236933475267531724027635009457699751128856903924613339244893948399305297494654007791809986914088224262766787221246284430795707684209216642672832787694151822169931754176974090361731460824252880904805214384776151862526420501297882275362543007110238688554447213147006957994406329699871943909690158462630012806752268935197404495899752162375064597106846646966743487753150733443182832298364738676335489466266984749086232190428654965364572032659342336353954187426725338038837974369782508704900592299977332508132045505537408782635222900053510479152283525433350009371350693382766009581250854713623247764348969353573960342233693646125002390024620865312708813292296742105687099055305256833232582051590978419648158571129293668417289233071157203819833139504662449077430317019594714108724108343665328131224566225136745893796296934761442644077084304893443437797857224093325796306437909603581100572076508153203495512909725324329651431157261288319666725588227747880620425435502113577736955129944327989390099808758280033691249356402202180578631548466125942067289246932811651684018725478716257794969504205951723683906020199156138322988059738312172863729072828630547599896509710218134727573891336164903235970496152551599753622990999336865273015584888029651602231212980737101893318094764893922562202342166781555598437707404333273270721958159371154914821586332523004258009081430359734193711386745081271603950323904463898132229846935427556445054882707047974843516315893960880800445575416808513517429107190601846757440555196441017776439620415548280286479149467135801652509694488645196884477544774921787699504565941797738847989630981979305381763008136919549199249811666031973342527185101485235580714946561397482537104640402016210491933052633954864576994928982472489867564008222509444576593081003542069175545274287227292044737178315261967792996550650873764269469451517981277509714712310829337054148792163260459841202326941440209626879687651393813123638191967817098646926818507972551197916488633350609864569036290177777712477780196720102466951509002975208480037455525827701637805016550284708194192120847904850468758975890002077700834318180989986864739264330447686812252697611992525831107335597637359300117269302876964698244539477509466690073136288379418256995753445689057372683857957665212754547588945855685367493117372670957422154125215094076279039922752988678257951060994038525297906510711425827705092270219507996393802708415374811239568107251533183669420201060458504320071827617946064395712250274422889970260880794198125126959088251643589753396167975416542720697341868709039705044401283088765019716082577909992173671121007335898755003199720046629696858812999369891501954912329175747491833331943743290778468467045598090281410858388706249975447273274977948488205848892124154338100701625463593628443534883540534683381754944348415652677760622235182399772033267377995993457165060716543129687012767027526386692058145967658410392655696659194160956797257784425312705742091368474138997093573744265882207978543698073225383951405980973628296656266335671689362627286981036513260482448937373011285302248727138320727556000693429594845816428670941896567295791664886804910757474555450664632013238477667399620939535344217421479922580117882834592466693648984477536779583588195143350819764692965101328996180393903941387497958399533801571577458894519602891213988274963189835061101201666832766475602744507141891836126079158255239684758303387934465552985753469568280536690699470520660684102450845689614016028346624659827383807124760806079729476208277060426929959007860503372525397726126030446374511499048151458060270882821723076305032735811867375572347614591734411378640321101854442386897535600982279192747628155718382055791265973610730547684916907639667359467585897561169468527492192955439871959449660641162938600068644376580958913652595234276857611378483911577512297766800351020313008779098459054699658653779298830954186659300825379977910056179792425622673698727934798140864293043583619847523489236877405037866020056966054353360755406596644119390889983715619536226800390284118268258066881224142841705008690046486842877994591484809611265759296842415950238249301090752118942744457760213650799237966359624063456847184201579268890964962951208387475504203563861831209910575995623199019806305983211689395511480424366543097882480592595588753056302018184217867181138403489169949440006575625404918752031380985816589720338521273376318080095936299185175218460060907520302074948770443684359054480366558693849165030350984744485962023314220698378533048183807335348985145778108518450238960727765202596034286109843545194654772127362832912236063993058503094767843911450363584660620759417341595759902648671136044462804856399530246589699889845873003135119945723585026249974162482335299730856201835575807083510691874125269908582985791756853770900011860595425655033145792929100251888237063102713508688684754395403102548503407332311729498968575583811793109925381065047309099238276424008609309467590296760467094177968683252614350260644172952912526305421755482210034741146354360791797656811238166540622016638134558929232123527458334275620203738913500926234398877894592309460004249760234780550199525408596544016587616050936888958877619365416220038834975620177498420726197064873718058522808786162966301096623725223927088068751549972091171041389050765475235909143675700405531681453520646602209890985536785735200491345392751051412079105760245090812441569236246418277836226076965393780046752874149418624944695658433504406202272526192618901310894664687509976304416490821930393164856081734382049184555712100248608614982028078318574039948868985381174149990324459993037322108559199138199158657905916952849574117547108871410456819798038115018594944253121115632004690000254944371631984479254366922018338537137608500013553528392216074423261300279782814815580220039814971932573651264515290642025653795705271803966532866181802744137077292585646112163104519761527643038707997186084562688276272870369614430384893727929434074997953970681876056602741691627318030153952154903154730736238582984952023773898690091498253656133931576263848152365570581142701674769052459305624582312536038382323826661551663081836081067378009194277844818048457272719991485481191449132979113951067248271051726430146756648616072271027377314628230110809427582931783830191907709835853072516654151426627427173799427821097435599136259863428798684499798736325164044370239432630440393660511468124108130064088571298795489246459581720410190499094345792010275645221272530620202078179725728222152373122030356090312789079155696112841822934183223554088499966287021672437539536684828352766999933542330740670054603958219542299119729122090749032020343350671153243592753867428578166576999341033431677346485264339528277850783875606776580559344125869828482033074134054642056404292071769047447286603876498578581897245832141319646934014424705495675370107031940286937784220336637782203839128771032364734676679560029469658793381712883542567663576692815383692376827742817373701809520875984947161697801073633108628659035533301523465719481268442022868333029855483427960996632936638749390930085829739054834251901019082983364801472454601070821796816015383361834730531679681380473745470081117996582131970065445610200511337245243639762877083206718545413500933167242263302279599027611677384782922509825821363074385108906064742764247228563183291935363272782630220787697768348745267915453653391426247719202337730701366760050141410552114122542388522439376003630659461410268175072279601574841762856863763844227354736013656712086254761624070216172764003867069434085088377163229429599015512077152002180442566895160268144389909864705678442590125763779672629319142879354594024440770287188965599362326985358170404767821584179732984170137443092395506875015655909056945385418186752305499651660144928808030195872888647374485616823139510680912260203962822354990562546702104340877187936091456152768462676518973163876562232989329578576394030995545023331231793568637449885068053521678561111283468336796154511843268308473574261029833869727583372114601080642494973297103630016630702366784316114593672063349793827898747848174802870358708882581383104519897658210450922127219962759468189615106231174707444566582037539948547392850346070497327898435769958512056557357586526184525807759873262096056429486187954772734295336178820006373568067189300629853881893700068237755694878784659028265027913431454662740829776861085788233237257326330084221881838271550844626518958430992739230429314334545280954769142367731399687670594020401150700647367605216277443987280654004585168738517441399566607577596879533599863181796675823705189498386545738789392223028349982535012453779062637480583818214108285986981716953054009739487898832318464965938535205952345090783422385636854761414393019116377670919944954165942898942290775189014538956119309787707682715571698623618246939157329369682816159270212243880226391277672505626501120671142554858384927662500750008368785213779245557123305727303153059607310043704262029657842466422754128681031586104213086924075078266140911583178629840147850855668453557487632967532549591440451484970284521128960092330524663463130756556305234839775868800052425418398424442657476151576928336303128210605905639832881416165382460670547017271738842715413562939412620431994632130010135423537305985010639330541201157865785924449246555193568469765004295941791028336689423190908927652026472150174429967235901802628641575968453168923426333020465074069113669388769387061885763995312310221250041136818449576570357888032819506036054716220008335406190974625818099858012375202451078401164975092847339213363591592104516900757620872450407575707197410549022651433371144817378768614419829867427065437312965772045194004794836040580251298730487423955867605124944418969672441269304525692591747955908433452992523204338804224412918462449137497462460293942318460877072903006962428204710393802929025158901021153975163178749632634853203379920796585191728746175802029425444732593946374698662758163479626747828610411291855589140130701822760694514418923784017044624872438272439963200167934170502288461412034402737201746704084513336588853999209657588888289696839053016386534698828436484388071924824076175478484673907613012456610946405446799512356475265594763714874013341885619439488180420487986934374793147455020398505216559758676986957696505276201196110676540132433813043578027921044427587480982604855002771810530154993600583014620733922620687349934714475536103698299300787379308607140095724820569279362001186440335823500848702073767285061753349665240284123934387261513215113710034230530766913438670417959014323403958048801731379939627568239792352525473538266094916154800313505710462542491197889104528364727210090548209799134817263669799279058345688745556847361437060627839301717109572370990282188111384940356351573785965516429218007644265777180309031850491417812817241133016634323288875403369792914691103996948950609485676529683324681763525856470159342320600503698650509754517243909915797832893051675820595750790690039969026922169109691119424635199249596058967137850512091679114456028992959183439038098154009116786735519351526299926849789144851776838544309334276458955941065373693399681682464907046343167669955159334541119028846333492655860351898717525473168848520572567451071433376923983087971082035721058473499256616586091440065145366568541653169038869377974418252652228143686944757371172981840948221240530473960253179860021027663736150945578045878142807318583857051239380290084375944475769177190361184315489574142435775614171201914005933878373242216323132766642593191970530889804388482362876345300323018909630422134065843134127120225039730914023767666145669162429337440795298104872056976895158877572757787742664681805185130979983734230190830385836701543531813780811308339194571787097475430769825339348747975012636273815538956084343697313096964499097381653017866517538191014244080092946822249236418115330694807003144696870799436917029763189067247844889443072061528324153927237412514247204767477815593033297336444330951497691190468151460620510701635442771253545190614414216996115627469859638777924377179585684195193321957576574938614069948025608678609241667464785612351384740393985514495798731365294938059208772878756631392611069514144519709279771583720277140948720025095690765664058323242293099277091615386199947310276720089399489578080246210064037809162007099694441229002862389798792393441625203182550622544616935260685776028749837193955752777674192223583653557462185545572449528415183140644579382863958703966393760326987385001227251499524427229400399865382054336733928348219791042326039736453258178154808683398650684245786730571600295469692842378955631510247792702824894062678891190817361744583841805538268490909187159372339878149626411004758364761161098630668038276127127957090470925290184210997090617506694816942312929693954657386925627608222135728882938399035822520926937373009653461288708336449785857074682710931939490109378527936102770472793428866969536183850164776779816607541599384884306878463298994592432570347224676772154546137182575070342201106061212927686766031532664329949673451742123831763216758503943122312480597328723937734560590912729340550917763471055106802494684734157335146895079683126015457875697133777247315998084078859337422282770296988304849614196902559413032366313440354421749905290830205121988742215165373987821056763555674072115192539050551488802902044425228735219917168910612579273918460822974260501885247755793391109867071645215113101951440400566735951771804652065248693046228542143685396756315302306852015397912773965015877140862836408732808885675053359471757542353741159065226307589270921576741522147933535438550160845848399723553716046322859802973737921183975509829133485094549419093622388922037060547467938949375064058580230969115755884756300914580365988344281742108742189472237832827205192021844881687770664987676736510391426996021557969700442828331613758540922216474502690268898664410907757113095908371846871863516219772336713320548303829483817457684113699419919026564069802080451447259624337003326297351642860601915362268045157083908840173079712720381573559475637817185119516738112718702407825857444967919841228217624088183871869552308656468065398777154768648711359980088060669191098366446013816681763580539058142453581173878101282851394737918750953356889862285690687950117454004962504384690398166999144107827109725127983771283493105497266582938480908034699636953673385715115758230568694198847941757153550577403735881893056786131783165009016465066412345393837997446080541888238213390436207149299082223226020689580676442231942081704395444945180467113429216791137916355617086656349173807037187925438361659074213241075901357407360894738593954960218968998360514290057568995138661892408124378370858420510995026055743338918955608534268582326424294059136249673832583461820458006729717328409246198055358809432594305563061789577478854129132244698924381738522147535392832018528201452242474236601362718856730498668529301887667175196023953177799463561328938639474282059072412636411902808773118653685436442982449171874288652259218281178097462479948391978820576493374057949315891212914199857158697226504198261494607173089101615395988885944064122040294149135371250836920795922551996096541765651517062670747285131204117872386749359506924825339292976613464057607609936329326940437934585560250165662932476133882171126234288272418191053670376663435358560083127856924281182733845113927071159469975917128605041643726692373905939004796895025462306970072055755592968713982643229676996688406598753765859132477664381151047338323400344762117464392777382682185890472452905491239773735469091739285297960476597111371749977642740155750033881093774179787678113432258080859776782551592766386476542538953635828815920318346331846567156874383332974709504483451916121974782909443530702858974403124124307804634161495548113702066924023872879380438359276346247879097865840001939397052576733682265469486054020676555845543452813071647501877366490141833929127826052178718618458060243594044167167690201259174290303484790920754741881588906670914353290884641936731272347284749945866236354854044933792407419049727753982028966935513834862637777924102999036024627671503224263246012674084275581055695249013789987282316757749293300726244572756116981071889122822957498628512748604092708639451019153318535938158042358777725687611392241393429312268850600607265264493640158770149871718739553072069612862988174197969443321473062208000136556215426008235674151482629315280259190411379337514373897792596249958654482222278785169959679958140539849680319360687983275268788157542481079042403665497907547977106381482105561724459042562767787393049056917189676107329358617180822800926793939162399015568896009111002010851310735698482727946493011169239304856950577020504056784523647865026692195366171976568874034649474207217944771427738816145952746992479217059956660618961404733726085171282646838022680995598414872502747419998290811125740476134047364993182410884876635679160720960739249313044533811618395734991123922261227131747805359431106304191646309562784007611350364064212684272675567030704013696101132090300138414653474412071701332474179591230446629757208923114273665553794123867362435209510643161723397598293117373682250721351000649978753069141899122540687574534283833651793476693170547967451915155872988348218236977890538632105190140612809888378321117768446376120933169366755905381981457190118561407604285551871925064842281368299780775922161134689683413851338525035386621036796512148240931684538357995375411117453469014300959589420761073089084859189887939760595586695929957375131516985496193818014420656415855938602371402939379622668942543163702851412074958917029698470389531158670898549682470240834953008786818733687526450556545590725011036967932297533782177215964188173461844378526869665025211029812173039950720770613510957099007063993798828014981645875382125415381613374075335738184983965434267412875414879742249007180097145711382692153813572882241500593277985588995481145000489277274962110161259818694242477449420605351259982031204962006886244531769144737152631604078271183873488980709480411035697869579053530223904411664218351950581447191450538195014323539172626452827957971750845267487828803824705045783560118413054024582980589611458960972562637076402925650947413119090324993601146070012962354048141937425068323004916400720896421551483761643177548106254448713897493095036168602363100577449330845641573730749865750343236221126620492474299962498492679393894370222590348318683587720068832996961906148191053378311756267947163834899041443299814092430627376479816545003956571892810992841693884598436139026051232991517914575347089471116522597460202304541675660191960461315398150556905296833709366793887602543034747280868834530485731260807280008625141535290605336419740893231582472881733244549323933596555919652305473323312844421727547600277395927400286941460763470327033134639439445550894653713169892853947531982200553777095745089742668390724241518237934721047969865548017584791006215335121324993888216049815784335387905431027225710337039467134095769023340184449547578446875062659346412144154071948256522840512732573820256508768176656683172241927494632534736945404211921862274180479472494710194899325010383883211737517729115776132450788716399780032751478327084232635952019449383641213322881975872323166702764980608691594903293418947510969532338707470601976737661999150096738686896173824789091510340957839043740936730634940472167453945690566114364834984471278100834351232428166516016301741959345356587872954986883401073461276370782347832362927309624172773588392960126519057748394161512594186645377766799962369154428325935287923621105543580475666545731632413506225933408947129655254817566607305097717012403111476739173765446646934206137974240779725845434371647319572850484459183957419181068374204596301973545297038233404446586553243664720219554801255081473820070137891680419657733939115365483755607035221245446589524079388376744453594150989523806079367282252726902676681111500719771862310701979671080346652001263891350527051223429371782943029698750920895429702981261902116937349045268903625018018266741168063579569947377794072223514473516246931568559529469877895809180695656923386602431610609654578446388376482127899519081376761276506595476613181629249754042231639618739334667321504802318239314231429287884810561937728369241016969253302237322614050456686072913349701988527649843216143967566800622602328986114622325371642481470481238395608108674535396069618562984786092043863309630379532478684632201681253848882091439140334999258994658906166002979344818415343210584983761645555940434884443145378096981005874087028135249330031162398072960990195190103196433982472137371666987793031985834455858562146590332376676304731023450666313702161305174791832793225399961018102803152480712730655673099705119509887787840578779438381618063164242540575810294551818421846772522951048098972551503234901427556884017604819734979570088918186727037036762482568088620560991149337995244948813866633569166354836876117925693399681373329521699481015282062186397320945545483213091809167935256070641012401253881174930510563389543128588088616485402752456433354926109775779428858520532110584646471277651816878846169809329466045954631861573405638288136563898411974456392967911499941443748515248585406335448024191978291650191713027446663308041108956337713704257089094726082718796226435284899771762743748703452886628140180068041414225636235417894221207970627144827664330608217985065102661615058521637168612431035276223622805902466176987836471753125084660986442265270105401025079599299939566936664966363243651286386306156330974540964553973630805642904748697006394149668864314166826266355045152764293978168015705428858461701837067363318074411920774619927435793967474686357041349270636261738587114740571676695522042275159900889315691555002619576483584404948367993998241924590306396244550407193933045047089799269699296988104791374469851874279472717143843226763400743587250094082153799246406690630021416257634507543798394541908757884172148938647220207539208654002618544743158272321880152515322017151957205397615863112370058253953690745147528070478109837301596277559921509705457578418805818935148634540141280605247053324721180684502855195308830086033144103633648563560724491033751551151116613710304570807563432705071398833837801161731989017528570321943468778499027729895928770304774227785566428951870432571528524920762729804178830519675273906711095584318675658259170637876099037203613144483588294003540676655947607804887754960495764324588274185624433470725709644531849911978013272632797980899106738545940089823475360698087991498115201701880362443277551331528300881897341796299455305090205693864725319166116192899854335669127741460441255207996445501119595480571133383016619855968505986278262400331182353099220390869003088170383740110068995355450363910518195552389596907129978250150732226891503648847320145497818396895189560115406079469578107753022919954446814614413149741648605667155469296859283164460704624160145945904890067816568915472423854374324992560865214153650063403831197751893982684414132373963823697808914496109035026250612101924745697564075752133682705663315007888207824785567639170086182624919871293627434686073269743356712127484972857638466749315994090029347272250713520595025443308588154912437320029682549332616504871164250671219586516911760454186235424220093028368683559863579420717073145900578541266367851045686317424711282941649067658308175211128041406576077723497446921888406971413410697167907757567603224927747606077120826759983188016195905631492548705273835073264532242712386611611729296317313230769533448972053941324712004786401771170531133289291042300016721831776123962011386036214576629250480935404719992878575167947031309314402929095293538210187617366146733214963975841297807164871663064702906923846935131825644388522275867921826009916182469974208917433494524961246776762607095243056907523629016619317929158810865781152137085686173662238926038751461316527566915815167945311215031740242243107030095878620050568995761390532416883191826402758655279488821180239605414699838226235357629123790043091252116629582964118196510532736373989369333012449816554801751071159371644516836037052795207078303560569176492831915241233221088030721002845797888708824695496675080152831694498820226728598573795061152573478189935088412338803465644072525271001227492745201410468704925927438155110680938897952026798665001936654917004232540924618359104496882291872934038003368256593763656738423955050487886780601484544923538453307350640349127268349114907597578956325429708273038740010040075829832771527014538690700921320823742546400427184583918988520620783450146777186603463908164646451922585667385759798383134391062396340279918292807091632146870415007618680055010501681170873060522015147942577475880598843112822869529709888536892252088348316273809218554719706351136914304770087009961650558880291838360726969121274121381054616553269121232678451272878462642877067603694685290187399748754084577759015903456892295052238078399299262160328404529598817064352927883877182231100303092507307417680806457173795483660038459060348492310132776780323653173513503350757679146612563000692531547002566438259922559202120396836090698157659451072605394141426982284087162682140761092433301153535871587595722971372838024881869361821460969068358524165050869977642046009109820791288837303560413311139020686338381296188218885170613965664296102248697773588341621314036312876321386256241464563122014756237226499214628709908989496993879998274061468643443017452582593419073897962321931644709726618885609759897731145459881165524067807406621081116982515413826971724394399648613633623200679982586232196702304472753259515348170224495339003103267907815427705085406761676781980968028004167776023861559567685129969852383356910252128005458418790988335472009474740989331742434472320213680725307327011173967611817745952662675668002258688438699073855000904352211920922665647865264849781925304173165485158026161218614982328601508201364789349599071125056835834719576015279945372250108623606289008402707297564885166407836037725316472525481255210430333711376592374560236163591731630711605087523531303719036415687731864031866382276083803893363293669666714640551256288003545069524358774724000005640959504257163919532842741392205235678272345758343825634197524549470779109496593337912828405446572393817679734190724957476527401663413881637739289893053981214047631564426330300295169507358281301268126140942575820620728288465964814282966065193846410146407615722702897508858954814097746795556199160651840898754954409109783963199025508451462978589832516679834398334036265930310628596081976741180874303372300450839468158606940309916893658334999893143592298350046019098760957315623904921866182874686161525046952254041362765107031098532030419635266485291143052905256221278388282121358690287581806434082594405161704881220516584768407954182003219259059419238716070908998780828152592890329200462979912319122465921908263543091351912043118134016649661175709540418887833350036078276253040877699173580170676266999479110155181563946818828175868439741005116200505444164458304489069408497063279509774126818403814314110827986842059728456436044548912502820332228891225064370490641090117189975333398510775336333842304027322657849647737139872245104160951923515863330482938021862791017222213952484908151747182526345051270732132563494171022200315032136787993987891679945332971365792761004857715448568869332853053800781748060165726083870708041210826930985748983139731210045909629490401850510842762974314199298970367393289780852316660367956774250635415880434581471130310663578782881902473805325479584412624024221322208329505158685401969524184732158982516730422250030298117196029532466730856659069304522378211918924802041901690622505658875352858150571265364709714313770298893854616341183665229457638097564422101720470851966892236030816008114370491614254530455281523965089094314158009124867793385862853341920825608838760904155052793103411712413233599064769071746654942233750011356153007785864868137511316579287836670782914336357983065122521575388076200123762555503445929423070276209969097908483235290052082049356418727188518264580913421128322928923675867196964102393981044560443580042588885346872040459228772747464802269693783297947647207942076601510839569879133273911311553405001024785849222124669521153185525285857931323698546857562185105527135995359070476464288086984437037208665166257012646986022474422266011013088095666850569927443996930052888533020305459890245101446635408178171808027232404978715929293277418884178827672994666318269831164701275955249969951162439271413320554155364864735936047093808826311307815956180709829997797846075333784443886986030110448228018036178289735728622946719773474556950607417085094740686258169519628416424771577300176815191766080062967456400758680623453595481515578841918899129892795266436262833516943438334316870008743560360045349432016975243905978478582935133111879142833715949981233616037149905528496378006011199769426074117277827416578033402240388881740324522827150081570748949184287498902545262385318152291164339261051466490737326906793527826121872802699350742920691364703206171249865604109287191847840080855409255177343948863475569552905080699367237963091768436140740907678197774703975134595626444283223791221150165216591384321477454086134797913425887182750432655026218913678844548289373926997640275108246433932923847483691366896493637177789753641191171786676087601391811104785060866940340465731394453144445962787513452579670487739091211440386471627147392203341728115921778123732500576410029940319248010399038719033549680613462565960895837908074314950409916155880196360439539918626220664476474584751264821433931592199873795342342649021263686954203425525891922673114826864904528987662261590147967487683220927457647862233305972566095304728797058611064133981765355527710682961305586452209035001660994949119792365469326003274390704162160934642115703867358281062980410584088611393755461487704893597426568405751573797045086369463560800022381523319975012872567999942687034372247174488876841922441865055328610515598720095732190548377053988184661134445757706142489001444270079395092675737315201062633131199301784824735524364211551219309546740076958017936069540922021732670657022967191783456446633083502590314082137652296276965976809238914076280977835296551719017276560532574661220852498174592370900320036817082365895324044012598401412282721301375694145809649577267931181305204556852342028780394782292130107216746657289418868585400501273546287313285119064144782670354203710659978419969273095109948303696017724640382928494028791177000281990435558817502657373735816785689176994855236792674802503691959745083871241562732284335538031412428180627642975970189648759561916197558906548907776579508438531912900458916369242713438104545028984754221364026923881790720341284571264652180185170272864955502716976911989977075524865980352369749237354389392239484116076164983018053240710127132986406646504259585707859017001796951177069565849610087777804602415940862891137160815776390366338923507828276879701558308734856721534607612539885125980162059901712185228810809532312262180193545461235014325742476794045797505575730243043683295814619425276581782117338970889161941068894604328334152711738938030598520271191612471718680413028906161612944947501220824646683928280723111817537569139707639273920830802524642811219453583719619890215138153418139284481730665467172749416706258829615211990070386594259711026225826873773419485014619222738037490634088738044876816591326493961042915684133678389516043587068070379668390200447046787774776422417717139782490963668502809028045546533711298844381381985655054992327269209086194318575489469921211017016695760020531848692873474343909765439669151808371109047266525645136879371639860425314499517388234528338138874474810183482957490819959379551321755617730003751640740465203269523285955961480036101939018920118146138241465704794105922131494281464967737111536881870819424385370491424717037827543144119318356716711334466403755211743308385129542950980015201173019092605977689819522921608300569355235938910448586967718186244913680292488427960338885647004636528145210106963489099361021680387706523464842998192239011273818507569609786323761352833746452124385982443310830702154108134920990527749487860356801854900194384511000770706576833249492802885363478956839405692150405192046025679759237420940356358833240384750772506089170443896253802703466940795615531263056378300409283615123012124260613040505695959438465125977601619581158399293747437414566775823962704496087781162124738063526203466215421182749662922732137156899930477481482990557048709702599747792888032544515300432827269642033530186721587439643545581943508919226542558717581805798201601586908702458080658794547687020937000355053278153666538685829475542362422463100535887310434206246710955237461073271260156595357990731015518779573138207218111418796050907285599510678362829137640302243398496810270187937768667176220900431132996726619959476980756678478631681982127626415900539528489219328205558134260330792144442465903144479087924743995188317555249545969671447502235382818701428843272908683407395050951531308034429058322478100088336067951547484533142574106407113196572039687051972758782551079794675368105223028162755495339550091401896893980849493545224775254854144637613468713928674623202893819180201127376231999723829583334578864511486221452069959694264090367757712856028661723167621510674895044931914727939884939496189742381408481358462808066785765563137577483966471986975400880038668817541381675657212415068491898359580845034798511926309523251388413039675663000804965567183534969283384336727505899731040888287542605629212145259800347616130213130884815338151292556467422593242619833106139302829711313687242855856046538881821491882720951722915357005644678242525229304026213011146411059332452010456292894446137115859438318193952932846664483802165235115471220074875915292979850938938906746074839253032322277181058828097855358086456415372002554852332030558652357982180795540063477629250675843043374128825668616694556804025771653230163878824102830063363754633336147519879728903154074467374721564711266743577794768592970325587004689594796524433155732447020317046803806789424142397407707008874008566538486344355587205964415701559944251130525390411253636938912071409730897334506931328968814953593971301032276028567012662552880508625307380507970294632351767790523121327167246633848379949512577613220103164526590217390308914432843892285692352311324128589116534322021279765574912738578059123497822885305829417096791562748497846772701314285004197240202587047786736265535206288092490302375458254048401261911089186760109655121711851556467929956631419315943902716527187905518979626680492242251803869136242572099642577567935904852628122493765834826403761918223573592878791778982657452118083801023291517030801286652958702556637088495262740454766195630169344115885760415027178329157724722144828758906255275354769926908105383602842937768787679944274029555350364251860758600467808105617197817409394833900852440586913454801292065708951805838298567807561094767925848090235314748131027693048731713814643127279988055524095081899921119766925645584927820616442703336055206916422891103691516544726851919695713509378237024583928229730128622633667292563464734171844953452782197631460306077377461852854393234538385074479867263327486258680636053913810940191587254124972538200635311309368326113759798996265296493587603866047110609762172676480289074634487821623111473966668641232750606016100824542302274235429581947034836583025906853736764518730615885285665509117103771414608322723907510741189489304069520892933098293614834249908083004717161625018869194169405359647442080696706110095775688100901724801116715857252519924646709656470748096606137161558408456371042682067357591240833271935171091482584182345295136985804752364707267651501474796499916198545648832500472095896780856562791981144595549776251249275161815706810232818955187997440021331200073340853394568131674941406081262812862938138234352961984533944800177254784186079196068777601654274571934801469009380017075062472388356893220312252708215457248202369059229186055667000671189504222072290549139108533481847037533179943133710800188167089032220874686224673116722414572817233893853045154232143361145321408554338720478297950892784809374546039572932166633305025323025449823466578340351553362460534060561409098796176119235255410421239898147415096436216259681358924018320360541558593765317892145862941088663874344153851969973949253369531319810201775365350177282460160615160226972382662645319522201118944743607731756206580877437442641083458478541934895443025030852100982707853067018947207929172033653027135350203906766939174127586042802395142595593330242875684628018866636657791868021982352085474625926273894615956619882636184896758072530033114601434719389491576512897434125530154363942988448427903664396884149790761455209321533179166769359427138293826895863381027415644884344244528938654387832684924986126676065173810873209087868650456093971563329973582311529956813102555037203589761610671575095657272118971285398514276517239111911030030241818572731579149559351774328121082772538271590221632160794314467349474635873916791192195956186670941364587043812162169683598179681730898031308762587081841769280092758537951532098492523303903983896677370623703660538001331998572616701449385763957602053071887166215341715519838480876623432114275444693578021563859001321544169492794404376308167474767502567851582956671937261236352012300803582183212007979117062846047523184143946262132811301361008060041125676845421161401692346089149429835239283417900936629168650277233796973387071220438111157938403995096654676823310032131839343665804140109383532769288223134211712168405023725572313513912193775610220388363976416001987258734995414275383998835269868294157424218413489230580786731954427726673482102547792644711258264601396224076747748410786965877547718516058599989659942880823877503321971826732089497793212457256647995882038294129737064089141472818784765581416480644803756143097699670119796988577336240256208403077247132836549433016536640743672676419219861396344593706644669091629453425505822680627814357238165350939447024056642668050462460965874460584927170624112695670791330808215017515874179615870099640947884497749889510404735483851778137207805999673540198029325418618146656800446923791493703427780104016672896721408761689210967757390852808765144357974109068165635629843611953494005055363209760690601232893923945644868809361727126723951392493810563416165256646163909025162594334775989399272241616685935424357274822455208942688460554536340071294597278489281513008996574596199928055082519304383570368575856874492951979832677031482458936011948369734314209150650704302429024384909147230377291593389417376952009671752099854796515416605645731828223405375452159655895244955367614013296716199247277745391625941724732737161741914230516248888230409185156133704786561694605904017744521864903305103426748573543786969073525117994302244955163150751164095361917314215506323991675071129040175017444793213737652732308037835653814580432188777372075423294795104757203291181192960600122467211398277031240884545349963606021903139092756238581454254374253852834328064829083111952683007064698843937968422389654612279630255807397328481795611238553963687442246248215952212170675108690515862925670134355424658767328449224640488509751666152437284905604441114590975596424660797798612932700138689401383343131882327284281131979130444887887583981697510772762173281431194561842732490784140017575783017584373217492608171491074404120112279189366220268553551293197801449650803990867110946536870382766784198897657968093102728192740092485536814660925488885814111476207324716798722457931782920677078775231992046046424510813435186888105598345417574279424932620057889820272362600201742353149957716475930023186111977069196628551614600907205511907712255646069296302530099806876450919902474102694827930332296486814798369475716469862903488876634640532963940675049757872155786357834940879427082677292212593976777033552197506337843685869655794244713666608614359851538422540893985727778387424569676927559021285648512232106084191948623946971773404664363928303524718747263514995743970805058321610579011160266369141028923278695418960276314863366694007686841802218476794518056297135993156463553867653945696974019734188843542936432215480140585002414063677300091291819490329407049094119049013249740061385092927454293867090812635893923212375636810294505197419193314852709898545657040149527154756111664597759158992294835981153345539122475709616466888436037124842271649993954331467641880541517139493482031487354721509437657793692403099474196758779229186687989573207383629861908194157325127051213685563780789091533297184877103772077303606393363603146010168751077404565337383039257140707956915524460481197868416472176512732789232331093054689031828587147728427670331955782934609203151849480743146562944779831783833344978822615508936465599428765224737129654042171117878312332830784719585087227960520245749561923520359105204524713697860503252384436169690481849668094543421745789550935459845019053392996206416573625415373217911848742897722362484319941190619337285837671681228140031916188028974428377468590970912858144932876609613896005099466989189494067436826545014167969737200506567364925422765330139563866139570023456891810703982721763840840148635656066714171185660217625585299071914823963710141803924795628537716646400303033924129230635252168378936011385274387606739512266611968465464597035101205148226141179039525204614704600599138517639310388707793768013513712457318692466722591864408101567726040564879057548014465703061634091596395237283421097573202971703087292578647332741241892279653337373093846977213509052358303025991396050837766346041453697766470949767887822718444228550536845580363965530619232013348672491233887893063564380674121448990872013882172639019239569833501176606226597800637267952940487460994457908110426568210101251086561925156904893785628277045129488958655122659091230974974106437156669641137266269438173377486410497783855254752736812163673052154862771204402443913438724086131464580412964800453699685494922451515256554736830637965442456979628267758719704745323096803218489026655456366686677962332672940981286719154818917990335327534244107489738855391327177438444403494800494663935754130050521903416817479974178292434766585386627095408005796484683381491263709817251908464364062198042278126759983377836002337823625848380108506738775964137714813073004442411624983276882547269754812128527607690372122135893209799550229697281889143950863517262972709868925779797504044778740242600061511741211801645720878941561546274424055939366740148618502062460544199866755711422590326742888674313448650501852621937016643822074345317830293063902843778834156558015228171576691271069508388385868370148510417378354838424560080443131329810582927578656075488201036066615426220980546670115359153369848454934800584696878016261553684886494287131093459763260885240283984978533520344300452451403371553494959235734814898321863727382696962868349059978107780865049344875033439610149596032583114340079991792684420576705728952643909862096277531012917024112506714128757640215560202801673079317645788736028645192982617975973185876221998784807199067099799774168730160854547442630572355622953886999334859202119656337521259728138644333759289480691341831103077065690567519404271142986447361785273028766115379286272097957850388045252058032152006424830286174290893937395438319241118099614437499018382377769024228212505095381788982351838151407570207981860854774463218755191312357840484762549308332584599947653634794851925959802922275540689882785182031517090276010529638396001886783911979423472709993117820459590352167194927145688871410683693447296697346534800048020504449527443797059773267486909984041707009570309195573402695729693426828121352036928618538388471153307004901944191902505082466973461074280774576286488591324437271911975985030261101004150391873944545330162566964167831729591528645634522594823557875900121901101549631176867978180749496250996090774017334632661521228047154189068027413667662126707541117847995855894170943432056263406207003745774374866874936230060321559732152166114449142877775780784954389374104790230015392986127956520607350351563619856551596585194175406007339627694531752172797603674502948341251241322402347900557488726142843042011572083608162239635519648694530787224712526562722995570390059598807537977650255221614627943023067724992354565620713369584016851561667242269812954397616728629686627055530301194143447965082824760361866768691643668780497357102886117873130301039594537430115967240388117132834753982414753755605231994239787257236695780187849068276309987719338815114566789336137235194253210580601226076972418177907226134668799634867903242519125622076736423888079399414148503360479033187573251955180005084362307807996613702591901093758977370715057173149001238989741659816798019601545627611275888492298575807110373438263996237851055941034979508430597095453171633106778490460833105407126113537817970499489107754851987543878080105413857343572976967482929729211524101813882781749018561622347695937386795601995593930126869563600518332156529167222402749932838392834145328398528385731556056458719260734593283770691358695737531703206328243309929385882501490931560424281124283842254778699502230864687911728454369266132305548982778588883080515189626776435863412480387832992601203723728612109171663561872828949077015737564202952725462293619486431432084498590465717254439319799616979941498884670403242001067261854073927211482543295356558492815873041547234359960259954667552898808036622188922219254008962404172911355979280975148540944968157379147184431522883985565672783873676734016855367238571787458607834535466837256595924988754084981089131179404607455077005143106449101574023701924731812929455495093389827891700076743439419406602093015044943046567061188142586207635473077238861551127860469007392944702622190379919163130994254738392041442599122814931011382510921930531051571156404909492227021465538364570308026599651864116871841185656514991476875565147946338290594911701322152537060553744035725270903253663435538555788417256829375938172444820089963731173625521174650727017475221617314441398677344051172926568572118623911193629995238104917160573952857990397894234739545089882701425006104236387247603582196732375368465365154320773105239523653221009626374618462459726794437424003003031120717046741749552158951744451878499069354671645418757399297412581205765531364714182748349242867539329651680272379181607450176472449634784993538567784707704505203563355630757100925890277759033622993912817209470475210721521181373669495684042749111724588396538797421817885397103920086057577168415002277481494618811218591766589499173244762270337018467303353270771953910983866789180336710388295220386546413282912458631251314355972804267079961642808493373331171343004845946343446772504140871145804539490627580423952361970498543883572271026148164800922644101451601087084413155570207212358239818189314002655785943373545018339294288220155920933746327326858812361786796181968958100791622512776110418006981179015980710386489719580937368690067909914743748682921358419761332349090050246773843195525198690354629080292590713733129814381007469627857463332939285317443152266159763212696187029861447744311349481432694151855000131031539357245123416567329968320970207542611321496705243428818652558383584833950495014425316338131651036527353653097096966795119562573176037723651030592436394693836096268958815700641279272951162580426903894512821057997803219904485264148197534741181781564524313822071812724035212833092852860527634225854614441436254159576321924172724024725130437861307779947562499657615647525661194686354938883461096746885130386629528857324068762525693287178577436279276360289909731413689504955531102491333533108944991415791972762394577892075597148318761464139996142416260193489182411726257038818933207480230727943837772374087151809592722484402906339758454431779726498389275524155688376822228578949187542599753729975410061896846350907378350663818353513979878093704116050497107809723595641347703269033743621655885527209714606827909323889462804440098734311938428632245011987224412240914547393380318488351380543683435515307793167465994068029259982856113314744384754172990862817792470447366923845748738681619883724800486941783480544319534485283906020307265790166428671160016612122675964104476036992173715574402443958831190205212328572429316864419120675459802056315001896113281799072288318172471652302973540991344531356700827162651918276895354837054673077793385656533938404349281289272851379361523399045367690430051509495771023905709017648962110235191800195843138768764203022488643514471293545205641504461309044353919203582437765530744363042499687562731807163061771553480259335673522430637389742410572976618147269256985587488926584864437902242093120013683752453030134884895905675195882716421197366837943045096048353732891299312506242736881550781328000690680589728571468295146239379575642711567902722331450494232819178821549684310550786789865112335416127734362085567127287592090109635178903295190641087049062277930756325068735191273308755822262383047945067808646419723970161365540205204248498772127137042750910210656708210018459902112336188291519858092021210812611624369284647131748391212024454119363310528145970446025463905652283610071588952374401051858784873506647248355829413617749828982559206012256778873202939601286610116448668277673800408029997840098238927784707176135278168797938711133057941533199493321274881850908518538837949104427214602603628576398008888439860031942072527994636016180446884716166759457997820660109145114703205937644337221829345361020642899260361297548437861480362686569998626073911060832444112257363363579766223501527293978096912272770930018060862197866482635371529502016294457149066116683184226909458400251524913714771322436646739772412834306065425764417374271745544772890708455523705405650665397208474112186482464068441992958756403993364156218431298612788816871018547139648038193493338771598679900267207089869964822315492372755013302944411460341161357732074614262602106789821176077650057652821556650428109256264784332011355862995464985476539173259032655049474905432434383145231005086038432538621607169073725150494682071999191164132406672171997770592059340417426485731919470948262016644924479403238810226549760638511347132754822938212790100045797202047969942758642129313335057971246900856671353616065622139425481892347519401370505330602213434921656348780524599693836888293690262680910878346481245089571005862055994027298275882520191320429323062920833260439963846604245525422941560592080597705623201150825556878423847780970691051132379044526478995435415701854292513641230412539606158311075797993572481613567639529507890518571295648781047156375366519671152897178612469994550242860445237534740453470441785897159154691361769717914525113398250693189562636646647714008286796606131011164679830165823769262679290587943703329813900950389504589603815896374675224445439085468191577598687613931796734465349713638324003113247120592581557370929045104769630626604851131837691988754460003222946368465786555976636334670525001068468648403697051951777911621640274077424784477635801596577497519544894942694961194524932739602591843771655829036791266610862486701965623035046832175906867294807815747784669038331114169017233712909856470951760084975748817417961048957132350988622097935348062376208206368564896946868283434033214757908317742608337295147028187458040571804561405812950785767566466936217896443625108125428265448979998098398602256179966802141540196306510300281871409797831708234096948156027678042064014464584540487302714613502829158391238294096206187769661935739529457908198611347119986410295349861271443629584378474577231619112670430967876989158340564802315358192478327813607788178420778323042645859816704080408792681336257103727254433254720311009298067076322274509062724496357300234288405792246377813090837732173935122157665876355398055396358899846403582405608531637958544917847645306150043999785344019426050763966378017980649897782806859825760911167896921248012965488506405054761400796504605204760963570615303435863689865762011512772640359722587925443714939791787612408855864462125326137057327758992822788547650682096447393310615647261022171522581423211474217739522130144715513382784929937674054000603073424905384747964892035182035959924202194945717310231946855291277675205496540299863287856497121296098472813389235951626322377404775695429992693989066636012927569169951927615427931858514431348677669609615274278617950349797810838918255689114305504480490590415859332869306187078833348822722600071179042498883572240852855400746158265883208595753692520724449526335857743866432362952773630371245649830201436204963672817410332173263022941183606669246740313477700585880895676564197196327829594684846982555494118479878020560418986029897741501567142445553459670292555887875034500209664770477440773893997471377863040767810263867438802412113459122509338257779100329282678117631306193027924689301513301232082402261828255776900340083047644195868586894275927616418835657509722146567571719846400934361920452174983456092764825825190694228403815342986888089942331765761536734552312892952178675883214457848351976590339941972271484851755570758506907616140189475536318782937537034725250216326097576810733644968162789644760617001781612294045322324411950747364437581074846654373739065989223665257967903413030846698061513781006296427069089199474794401543529482707989094882276228263722254426853671533584347168314349556043871972582458248130052664297049322028453634711838864206460415698886926872515223938971890035054658079441620925237722548054035237770027973958816957175412044790177302567362486472165573529534182926473732458706435404667743923852998739836516038048568583967538297417616475698943893919894498090794215622322941114474297523050368159466723894891015597816950604937003764669679925310386849526987603985025670246970941396003726323396756568775463332976653051741492977924290345861427914594283762819244054471389658992380191550818426513963223009425620603757084876567716720198643680766841976863541029905042313911300912426144377660042778008573605193366466605742346377281768555672799187065114156358911896611087047758584398868058831819008937678989645523481171653336068249702553838723645290950744391775397188919910252318926846356576972517407607697213218986802553034697813437807910018749304274116974571555867948212643566513088714484029372600757375300434700587596276699488946555692872944688032225771113453946377242091211855863707109925460504080285041407694098657869902466540263683196968994220939868344084609806669095907772696092682310151236635693345182214215995433558179981704784994441328027353994019604897342911430645739615906756065610075166546344899222275385934327193586473829609542981244708207707431351370732031380900316449931797599183797856960414654571480985803635792480360423307890726554346608220244070900852588197062113009145456573321984516818726055168445823969107464904640385269162442557048707854203330107746333499276607016371838088936530999739630813478595192912183393320281165831156830697212076688659051211517508543875266049177205643486046622114012462573928064186834844734058060488658254141012988857989517715617884260569813325946873083424448539541839628517804638320994190501859847911470147664678856633248620670481242195042135163553300657102219690188933572669233846182525046914011479529903416177975105347217177682549941863633822074143671190411851369270106585148156980635106290911892426932126701956714446056139247617934002589651138720163113349292263317278740769006606272708169253365580749933255466899708621193829482423721847097920499726197664677111002265612546401092188617079412154241822605761583736673320421529221882745119490840361076753788289925067949158035075417592836961496396134097428617369122384660008861561303511176891275439542545618592502874369044320295392515115672192879603480274913037391462507192705613258654664872049857311187215879871175377135916593656952067435371783723802422885054643897379552005370020366335007020227227932724628103126751507848971604770246213341682819512685606200032078416185533061799523394366304122704384758106199035006830861207751254659103457537803673526984285766982968784367313115107647289425826635576166915287561301698692852543133855643223612132923796085187580576990343255801345601423539985210160917217577837768232811195919178382230768728513355624393275032110273534596927092902650070179124437742312392727470811903521357615090469697591486091382323730550485261432077013234595471412726196925169366493169895509777784169405659852775514340406875191198934773949209960098257236594437086855976706039283268409382274079452130935070017894803042315960285294009328068598678839036219060853353191670700457176564460265924239404664922431533059811994414421487291153694830223382663675718303627101117468356649403687801965240013578616722660800713359834783033173088934604070516851367373668635502115481186515138179396716110834835278196940278571145078169574545885312118330450950786043509343221526458590939090954279994841197758652093256753370539849479308301596868357478148039361124285583768202477442949203704634934732963234013684580231589823774351330419489688996627362908224515029097905974776697753972176998378935354102931787756069587650543755135652316625995513825174142514745909497334324591028631448801467064586437469583724612407956327112295229332576885028034443696949954766593817239749483778824894297370849898843615731508084455561921371775731019042684615894232520760995350740491611749517460239916941085493091015988429457098644747263920863484274633284495532632048444273938616455413923394119737965748835287998332340331243522981287411193816271716241735529257256746148559442244472383814258482371496065548359113213228768618102299564151880343703222296083233162360603276122258976259539342126123723470011216957296175247033287767607885694146060473486170176571420309616903104660807460177988917982212181882610765562598609896999186581988213853269836327172243451428080358228591673994405552755873851512407108275284819708071954678541129693639508455047872521145695455567558397997514717865980103911010321644057751540711257085628017913054435657116344474228580393234159642068654900705132265083762299748271490804402383194758017770323715906591237022681609220349596943078675361146820639414517590937973262724764760088771322307366775468477263054029592830213770017187761377895771063839476659398986985835538524560045218796520208050804685896682187674137562511361976592925070727778350324351233372216837311788330664711900346722645171370380590794769291061137593412687659714636851254165702607455081742152120574323141135075296450203074368427801435979792719387908748017628703135704747619255989549815175714901219728539280718344938179567295508615266246649915694372976134660592059457551229896745918422970534992643008161720688466155392930466938136746711387854881017724516851030332016631336584741407340408476012019376641261898955319735694926836276152938149061593560332642777241519495688539859068671357226381757373599031206337577514175112837982898017254249486259968293831942442268396590164055404965392485095388742301403753132613459172091112859817918298637807441841712195329056661197840215609051206350957763099566939311751097821158170224924685738121111822904046824943820989336922964998482743246560309507810465102108603192459923438867291528348809635176816987348186606666099087969285383855389786139636588712069457528679482725223040501486585015763071408354730364950444659927394086891939163146160735023464191849743464096770182798271819794454658317670770265029778368253080300003990962014767714279046288326508839278551839841210245867254148833356954036603259788032906915053171369727889940722200690660202276535198000107858115392167762829374358730258744815366542525816259372540177184074199971466274231151133576629926855102929122259924157780065830951324134945235900599105712093079128714504758859897413848214094106440231969645254049771299278788634803566885420980248697025646759597210096308207662069135828682790391629605188393676070892311563651133970283319661158841938118612341810322305255805439349920640600230472265826913217575631140397818390051722384906733954810408102767979798657655906824694219088730339470707997517518678419843628862956187112427827496850961027184730750939423013970896401386542587940014871278679558516621661974411861086267769100051324800504950869714436608786538071110927076121513472640762217625216181887597902534602089912629417682641012730443916097812262744616345418118236573454595330012045065877170676975670469121308709748256957737413190540392867255993703781269162186325095246952663839016941860135725374354408707737487861143734026894258394384634404300151791225308967635932221545642468998367941283081857996234632239808593132915001232810738878494481296665599008148692719001095025684508162775825158638794367208952647874933761165408028213567067397276594677428957413539881404076759764736448023578169539192549515713698622431116757347723347398088099791785111257459940749196609768835977405607467627238814164632077543682799396788790410760483656734012375658857540656907673736201052665184249728924426141859299637883236175597533780345555087523534284857685760014232492176116217983268785923964646683998367851494661914060421374449530844488391551981119111686500657126205001805953037734695572624549527696980411460899134938615615108073664325470741551176367701619649939643410346106239844434526652843558750761327333139539267076589174211206146771162699815809795621065005369395652138914061658754622211610380904571403931687649068892826238625568768101842451799190387923776695101640433492062401378776739330073398821295091689711542662728085823595300451434729578331245101033368350855795112103787519861975026855401590353746387094085054822236420248840750668235024445890660185296068137078488979716123996859713364520922277957506246590556677779109509997123890190057150358845545213211579465307109440625988196654270551606820714170296731440264033754391680867540881548689638486827944457122913867797858935708114619496256258759475183279820028312442470137079627072728423671322286499927267753593349557583868825040706312047191203582309101869635890915139022879503657806700657830670967340830308075910580825377880283215124091626354055142529811228455112349951008645694609031378419257432524267659313523672826205108219671453957386292264151725880434866683864685753321664952345813225291806428431832134078482318102109645612807600634596907394383154396923496263503995472082348048787198799911255168568701106594605043010140894823571746591182450416151157424866060267200580420649298793456061715673367976318207743247116019339597796547986350064333435622962648585854238306171565988601529391967137457681933920324299793034566396511566834119616917746115229285159418274643183044592463347229361087283060468128418415150110838694503523223535175426085292031693313168918486665769040792223480127694662304796013927535050555680876063596391265462788301776831022869425482391931401227357378111014826698895306869363803208811684241370534909154371478948086367559646467394982256201181425671196236214898948943284650253453687372126482929828679132469551738588345481754970268988965263989929778660514402655769818464792968036541223890252691830076616670838087413587541361569840715504853505121587218076193930738586402070130457410872949795228030266582033387042019939133986274976381888135324975021442641411195709620005301035572236853433998130637538720731077532456213290688224699851930100721539680181272409617442693865577447401887743792672787292803832428323873863223386594981459554160887580599902541581274011492085295104653306183306934501222471697876570906069282661485003601057311378834693645016091746589737812197740830159912364435147929795967563356137321088921317392555731496665692745836761684240479996843729723874701422213869586775377447630824368760710232352256502282060782312341612524805035291602173859207844446075522379655001392248704975101739286005722670488441140237135387648549218982183220997088254225233532481709043931943033412099415238470030432949346223427845308410519192931497735142960274360324073101912986923067130799990885050601086559011203811552868900083584210546906461743863082421958121820722870222969972176566635586978231304987697581803181183443946070512119976094110444947736235654384145852714766009572741801519653569564174426496262741975231808224070602107953711266353386168580550609225232503195792486148357894389384181305119614442821314236301999416951688572441318171979184118068931466260869190163019486761662210964505796331063846081459099165636635072852125327969769883440936178538860475999350496336550436225332268515273628231715807157306187490134338973162666050518781799918945432659864857008083672673371541811598934680840462423207829384978032143173070744513524047248124833095023050367904354820455393959845738706073878168633067013120167000759312264561118037029396979725276722196073369705193845540375524775511029921865740659586756828746945690280381675409398948553015301697119631380376642659122897944796685296503184820979599300266172602193173771253000809544554270580987917954827560622545564995698660137622750099209870255778299741272567847145544283574175947276327921352233252582346189285411329706803826282602794366926008009625866802252060461425526025880423785311779619649145566794055764248875400242870032192427138449470322947289852062922068063061451887168462502980868225127675366445617033149442309689012058605147476275133010125207847477183131837995180501073673437620927119735399102174541440539141914250070227371820003597385101360333747652526317572155851652884084436413244208663516202596066543471003674432862103764994471816201391343093627497186661281506581944703636269105776581553251708503742101417483860748995124385147298129600472140214944086263134021271964768498806294882638844342869553590555690333600628861205702976455291768501025829740987881556953661787317462677178518406760929687091101181168487625589645701988192814371953012280176715654027451705745137081159277177072424058598194044043652204485492181912030900645753422745432406729535836490936091321657907301159145400476053738514218528817749814902428354550376180557185835194344957467608238948687728600337125444503905407171649376346964887440732153029156262659989036455487235147287267755898742675577148305657296456894920739503280260860293453646340208332532395718050323165045521809809980515005047887653908525311168219866311834052497056622217999202358180625544564385141420069640346306341091983228389892880201249187523374624600347529189270694602992610962121537272517753814937556213230530556773515637638293887064949833186961602473686421647638051448351713947435877830148038553324293923296177245749565987182186498902068267652018726679643058786696768740425284996555983829050157390685785859485411331225483162235207147535751076864101333075050726458708090005009083922550552230624785518727650883098076876980786711983073703536816402198445991027404358204016709728646930379674297567542519462951439568098451337863386869818168665873684528896311220005874668324408249878937718716651196020710562546976875594051324700620513629723967229784067367937252241452126062310367335348939898809324758540917668582272234388726565549728042455293399851379778428618145298502636712445398748578174391995119749075319010719072099519534473867517776752499858136178307035691363288982612968035161667402557840104127815099286383679041770301933687738800703014574813276053328543442709342873547668190936685772487184057660242039459566594715024047333580532410993531632061848767160948044930004576912129389777386071926490303650357509955459237974863740435617941289641159236211744411168309691138149478183345067460432198882814231787055837628198620909451885729059274214658424101445096460268212950073814813616941047052717404071448131941008546720606830082884048282922729063340246025559325888776777259354762687129161161453482406207950302660016920501295489374501341492710762320124066839911874454946507966331265612425208008419713053928815921753971110628104033978128336674227840456524695497500869575949491601643402910821005650956796745039581413338762231894398592248619588768190238826711508015305236763372043992419200636078045301418836877933730680161161024468078058625032881267696767901747098836918385354235825284072812225406137942981285311644500835021015579167358625217547454812993189488986158195854800442609259601247619591178872412386177947362958500407868484544985611010148603618997687677255882403313404728499723213044962798942057795001378340895194213309543365253944818925476961054583587885769950724395414743053027752603845674647017485982614301369756918534159734891164583841401014634401811506354442103328507745221101550441612301668543218971700464951092770252826893033308737747020040877146210645317821570587754519117540647912058455555038387549554961258285511802897681171932747827585550730834497895441861916799912234669273776583759510339853046782117336807048365018424882998004383549191074448431507434605355459176371156599289013297563996354728679088255328783850065200786662514480361002942857377852547818182412192898899570902924544356729357232988030271485436829789375214180050329596196449406133319616344075774054247255482084652607911542719712461136211508153790610593258091185578141604005031375638932017115641042682832704174809644237447782025115938836055193584883662417562639307682713677647876880495577372891360778145309888970559514041402102332601280036508112501569193552483312854199081005140276888335574045091036634360781646200792690749414063847783727428085082485528871667343867616717012072103090937047675163371354139004973449091943618077810733963301219140250629602128618285353230176583777831330601269390023138693336122901053077684645865133156644344420798686965975220971948410783856174110223956310284183441566536837315575054122383995226408619791501245852004675890725743018250536347641888798080968232111831051740208730545704905076047226297032563892432350657625960799242364187651440564218544319031834052277227406797822797536456825668903226179810349186351222102431298964358380775636342377662333394398679175499100801983719374898296282118873338948195198294242897713285846022812685040600815190560626599115079324232938811166654202109664675041431372805887644956543891662778011109440159215385397287505194240100775540697505692033821405669293430910637914362997607962558997694869589107247036741683971833503158808273556631785985219331532672791839517948800658554132364092287993321443743950019673019771925063644068627343141592915272126737456470243508994906013977426580637701615193714808324907245499540975357187283112990258556928381487897571762179910545518082528673124651784133664013228924001220195529286503613653146044484187223102661838814737288641455361786031720156028502765402215679354008552008557619964943976970714042544033267652714579787422421496465681922917091015730310893145964112370207059126798644390067102856972213477861835890995592029165449150051109396741006673332574124043777468692889996874947843349609508411229607362315210386699592170130936208254210605745406330964083774039014559337983195027740044056405963040814909416860387366892223471758815114307056955182421179057815958574285407584884848315536727566098623952206704216071926145411251340145036396134161453224719377067493828491437542422735518365329117997786197888786141427237854080045747628344196927387519317402264220323243731165912237997267224417533504655050589664116655929822409550576478629503135968504686951277580552479034606916506844405032364192284164730542095302599194662663112370241908649045384308921506850169518555863469552594519528528895579724043232595828065663793672409910780651364392489379314625045964183486506796936449391269840507512994807227220871436937036012232517493064768736801054715464586500525591167295617754910903373522724555301435916450268067176777496887609588217171846449127745651558513939016487753389046061248779943250262894438381074896383332795044304675754003184835897820029420916571445022628248166931477179601773554729703085620041222976716646278209630761555754839568600971095810601568772465887439756377044435017037240367760127634924563487718461133793773193289730210698193233744539652682556723004368981886895588811369713772212016841157057375152848422525185019999035302921037077439895519327789829605795910583628145669358657375916967218724462053269058078886495144849246141690404747158044975893905530955198136231709610579766541652144537140474553352752318040019545700899017446571835840176109626916335594435326291134084821591803541450240274612098124822255913688568505435393027427406758507215449888785932116256269931198056586240888736350216925918546696986852454812623037041360303223972983494447472712390231455685678872330141893758416115577590489407260146757691913004618299510062658955786405994118248322519037108735091756980778996571561262025489172901146880523945141321639402321879704323387910283369278951251300285945009921065494785533500462776220523909250122376229858920803740412797314481397945298986221862387326442033037680417523004132133947430918740920237101673578635150877877840590372232734854518942632351348315377965170778746402263236189395967847698192367027331279900347098333814110471635163346491393687945606313177220796200524941486472677675780094416156359459287600304734552849326407486433553417699256568924583608447944312964275698417657333084151380853071054396942898184232345048734426616366999380566092101036140977394200146504014592855818831061335110728340851146323432393933416881331798479073056651740143493970671911579640128235418811601894213875099617751667280652395514746366607984713813751644024422407956459440207420765974729315936046679442928512319096517342373012568337053588281559048834262901713028417862635424877169072008869728454564761972014385292565374251199319031515603467207063588262501359840112910085324812946235175041329625205076603464339865038510146765837122638933100850213040439698844934449041273600299690613075174165108735892762424702128922468291534646688477631392380900996898806152546776378191721447911115424431440566782214438414113518886762669027373103055860108537810063179664963467936993306134568043362144173492814611825162731846358518881202342651449070031619913209823648111916582748104124433170657383948364156185911814272452235846439697625778933917735454277496772055582480275949210818246164769894374304022395671278314800672894273488028921390572451109199375656709677690533019837325106653974540788611366439964723917426627742576388425117178053374898834583180805763998538101176251944066123237507468216565967754892825873047356129764552492295914202715670501470667300423553930550917143927474737646948470231109759114958118544860962203440809867062650681171518767918943848255693585607616625432156484056284834197134502024199846357760238318384177908114099260438539923504159958309410999548551464491624423979499460169198097677768227563379102135531878454102888970799675867316858777757153300204057726478944190317818306863217799638550522479389510778328938202973332232719080963834276163212283927555529580812777763344126322496201431809365589702643545253192391095705878952177673343564741622204602556186198529212937212578533820916342711645504058632788178449510082676977466213676676617451405406853119940818239422878637331094218979491868361713977866766010836815756165913777097335358730615238580892728509394068112964967577728334961927648907812199571436937352766427423465305656928977284947398891346258564209287466295761137817750045463757326499654825113234788658558073535767959531535015971694400683000550731959999640958107450052813986896844424389443359266166958973347116789588445686335849010920293940242347716963331862555818402364818021888862225466470777565586152785475052250486952686296212055932556392193339252118083391914870938751533872242200942767118214038244292481825094007944515746780383141493794544997594165407712853825723100051343614788006578712322158533786950188397412215631271996361129234572769198515003004271134619048214609729463947561236931954812767776869146430623295732067511044030821932482257807150882199948762449172128922817755815656459859426310537494126248053474096476874757887914972514473462922707330404246427020597000709483701229921272279856382218358464921196658900492047502816279892775893002567574916008986150060557062008847368195192105212616818295200480010532850779982425706694947429972873745578866508642117741549365037890250808608481510291371678055060874642769461413421100104917595477418627917157191942978504927091181470445247683537468145565433335239294115639408085702367202259736375451003561277838736895886882571063234441102936552308015311205504441988557883247883152780561668496957692077520912738595075065134168960167649557540025326194757234214637199913113647508562890397822032448597606490425752902617908242055538608289153453956799023607529760697753221646152709925184910596654192792033281246748905863140105777352948567826657971377244366940575600750451240387859734382674869901384492393098432361222583743045934780371757642440088230224891550127929410650439974666580496669056846462141152076881627551075238820847956652301208984000801441767018651106622940204711321622393520711754329893127172481218918645899578119234074423079178648984752836809116922287175525386266668743742288135235451739255647155763548141499906274783756362871120270719052267313693516801612697001642795756620409469156786129175636002029213613702570330470022857366700305654684935851634502619553831915551522859276764199184029877687324584941059043246548583568303269966314649785122158724456492087726092363218949574253213417567517839105829690047603754936432264428463516437490833003569160803345881093973120162345404131101489098641632329069035059619706263478610320516126336668563153192034588530167933520865997875057668706448749810748379362101669196096811648929239146298444552566911677566110583751018733413563946221253575173948570726549194628382564010405095204525147551328323831600839939110355440766122662349124715174401747671554599964913731813479451065391880934297808602741469792750540524105415096122437817303871567515017651620282941880024933709673799697309463590106116161177429385449549250262032125172046723695790953942258110386782571827304012145318888231118323808559791298369362000354116749940564266726887075663827140418267270098212957167865700260210259138685185672344813268704111226785887897477352316427086095405029459449373744725478191387444732342204556941166122126945400817070094084370532836547219152086916931602241222580196168472299833150800207646690133025723058362509710399525624539341346415538231319415378799079861818002696103997501470094978944082727731259002463064096361974314755423960663323216837649415346028970811043372728598400344527978271341821438830550684038092857033306338314759962452041414676989016651174449154697344411739663546370483564753302656823268805484280204480459410633302583077053887691506614321385684856429364650896179376407685000441862822667965815662169540171811416152675123720571383435122248426738025632569149311499462540622412547304218235000897835116849699960113998180171098128609859045376939215540688776028096857921577572559808524767981066255945337516460750845463512540060842779087888680925269017748109322680564125565774878231476538377266923412260409505684683298217218034809796515187186173887553384800624675561670936099272529052762365948001455810995431053497040674709769535261596196498621214072939382790673704830455694934326035058145508393221476399008119503905802964312846205576672614589803814152267243012397696573782659535072926019419100345733109840108515835346074691764803578093338657282076621619926833349694746566714178089893274996602487870326544180506863523108348779091381067545597559836278101288309016345203485308030978712466308892127005504479889243385480270600341456161895865892012813077599381951236781712611838562340949304355140070255233705186261898449158681177600287752694037659684134748712295746954386920663108149319634324434629991972185188079778339021963318308030322844174540385959292996176236373153770492249387271912774670094900411526916093406123964220631954141276005616361777776536339741661871914333306200951903330155000548941923160945780671554165904185911452823054043208251348954204317771045665745805200720766621314953614442183512422159592981588898987262451248552177802951795571564451857403012225684232482724884281500444544114775489249852943489875574758341605849143256886199631362834701377080978476880001058373613853627733038632950161781993427836370991113623147152321394424987634246104701235491668624114077856846330577955798085898097214491495002536784622548350358390215527027956723505934657899981388810330555634633328972509838535785578944895495605967722240295295585023191811246723559277151287008341490117275773058616525331970952035816406411184696911386962484523459779153023146013872770798501657379129371415041029129416883653026442186092395853442476817862018735763477379337697832499862531947408319222296860763196723951452036307142750221057374245032561970567247171787353569120355640614732650546619225406369244692290788924772580802487495664422397633123280046525725007576789665037783050954267044156382910680992900293862180917166543317507333912692222583160871446970907944474272707403774612924359786861249279450193812751377180011566954982364182010241486446724728314630911699809086005114168876930131377223090640064679534129569442448531361364269071297258206974813565943690333059122474684355290443760876945790313290890354686926199442128349436055749701165500640420286744965045318672712023515739760902568930027000120551880301479017859765396727169513545411662472837468319735037434208852062914946673952525785895465388197884307503474929543756759776596116576320375286420991466369877860774298536007983917263559142259795205530697967313465296152197075226612662480308211373521976524939313948799394589274270194608880622635735927880237007567795692951639748143517767567502673248044106417735176886351863788134506694430216754461935615192880931921806386693156372817156957394526172631879394894339756976718356510420397934238342879489149674543472560631266056131974266398105111624565012598670126391226332977402801015232080359289567225693401279594307452491756535968746663888618399377292539399583727176039597081737850058933931653106964910151986056481611780348046275310466198485901236874881225514070753085479555571922642590038876585334994546247835879761237482389399742936067123243733706418530600973206799805209613801036048435026329695708951187442689056567329543650096053341386962053375565582501014634754400123116549894057763563700265084222435556229431692423358005789388229315360866835574640102132977419084214142730109377963732916103617584730906711467033845394848238208798408796858675436992857751847440595940889532663396725490785628966374421685744709462028428163557433691686681009750049884593301127150563161749207615170629765876213945785814091932052102310868343558293693130350749917784881568920896060730232062088600388693655017496812236437643781901585749592359808601218166235876259414385836538995138051285005479997943492677140966031968433551813773002849011012195291528929030005738891506856562134732933751897082487802825061779574760947598376484883574867167237671707841314472143098105542949323778727334749175766213151068523933688258057662683575020860743606042443542184125935021724382561167240042683642929295507001807546924869704222568410019252590134053659050903375836760456088202657416858728082802914465730609103014194031856070299726669809965071052291422890514131912757353117394924994975745898074302885080952712967926728124406295509165322941126139959882426198244086777667859159425873602718934357196129860152666287551912519322447113807573363109825867498950697563463383149819863492079847480736969194414607173462724971210743781571310253239258151977662896320538012449545083154181599228439517344288842152726887257839231143694158932790903017894954375667355662067304494576292658892771636833686268728166255469442099320123683715152309804334204701871694438409677831166506031422138264545136922630697291202060525521277126394437377366116216226371233822050206143618127399988512296699125105906611312048174503484406228012022284146099275520168036598176573621357526927283955144421117588566871306816772492102518445572213949789571603530907749139055660703474465669567123977769076550645730086589579556308617301545420270838499361069897607305818401298257902847405294885411525763521376556880739338025665001506031450791359061780803945541438540835673328319779579377838718334470372053180390895973124069371083848974484738215014229348520656106597773731899480127751361612256643294633000621779566374569754703536032869759634039406680233734638818456712537914304420464478878686817997515659676229108717707978199390049195776507192648103200498745277041697842037430084057362741913683254188509002344802759736616776071006545286344155934084570083525899772139252829126903404855182219407308694946382996336341041817901713906201096752805618198708313304418252633070333300201982251330252245328341836257462143268020258305660113906861986095251553151589810954902224049365971808779925771612718356626479761274973006587909205567563660016350722726041163915359283924345454327177239854334883409563519466462705758381688555154457617012784967958832120958162761127152106276421154454484827414546147862039604560111229596783238949165964684533152038855598475596536149319481050107278884152136883225399568966648103759208583974678436335008745752078952340795455772789588520429473104207731208190035862776784732192560607035605171901884770013782520787878093070149791495290795247656401914577865354912679057103165564047355759929587487340176601443069106833953496302284557549226373379558007974402431672605345452430650416252613009136434403479814504853353169406298478830675704984791844193159310131553802727825974351606217027820129603986954033246449388767755182631774192626982367367406448526819113509491686352090463086817177222759743147932098445100919097213106438282042283568879000837736994259529705800461282362878424319372652727999127753801688597250898252688258754973773286871577068115219870953061794238411461280132169713785618682166232009513966703334267939289102078037143769038929128543527912384422795217735017308900225560466878998414017319804462026134487709848858203751647084321196602309938332836778959728691052148390713761298409319670521191676714465682949079411062832688536991540893490887008842650393609488921601465380545455618297984508124215691522695351217122154251628404726815146042630992103618734169424380705108534195193016103770548434301836074435798517365216960496244572598630748554653185321102206156879819749519539983181851623851334455742367182646520409401724934408588599798232630394605006412623280462695894274851987532124129253068550271596190871274914332272046409858021296455610993325672858150858791375466905811680506800213271342847097167587044188576239160391761575002208796919325127659047818979257885875793388672249227258755188113860944380729980942012691674355572897634203742999686273319279512448093012361412267936469183172074521825954704290260159403129173304608739089013920035094629282564523886514546860397330303406585486289723634563970201703710420004628602901673210962669542864173638942922574498403964333228899975953683777628401755940090386648950845432010738836166653547044273638115381451455533580611029870846641031521878139706616632685641865135428468623126297261925694934367357072592420457030347594181693182913100936474241458369220582384689305804950509609759976827584531232993434204311471689482098397723251486884061325862695488896548114144696269156051350100706940258527705223947372499626521168139914843944748321137720462028059380274684682049225685103055162424494853235821467916234145019280703144314637462703630281892559767539652149863437425562050952208455475056444829430487793222198191367079706231444831365214943154096967429617363186158580845146733634958398077222798988506372084009321905894069524737337496203559545020468066258009775519598097472126874662868586976265106009502316843090352494405511912764283053208140345643056432592389433059839784244298237845321979963983483442670992954796846132133528684061755616352959377226184211911340336026572738417082406229417852070502118811845638097530006148279067271551543098948488708087026587503598573778023696067168657327113996616721524451073958627789101577906509922749327686268300991883494085972800986253348601867113246648453825457540002961166404404536355030440903635581569331530738904646963108594256687377067649759956852464310395141047721312532845509149881231287008017106592444510188133814963027001960950334228490136916784764115578491906931764164721459772596592120057246450261231191994594686088906704296170710547724910160421028339744321672535242831551752465046619477926630554851697146364996458877225446070874526885291995571671207841336695652769113413532072200974965208910774503535651919244377838903442959573751894897327959008878384949983975411161224790380983446770538446074553856318912383737877176405571337874225163692452710192650355273813869585274367828930332601298543908685571687223192069281035383323505518027368233334011307309051619040980469038911962515048813117090443890289631303403409722444463615636605588219809708545208187457350752210884830861106932754766556687386272819980135638344383336095286328323698088685605151663908264794746545231248849180604001575869919753820116659799254476827312519600595601334966019332219903155588573287317157098085346480070739960533829227004201311361387925846064401072294676817454859545907378394529745083567513098429383046682375528472902826954035959258190779316451331999198180835842388348526811816588354128859573954361533981465492826950155130140265759760280600425720389181937460074598141588505032427541420163342128964093089715969902917475271929484242063056835686861066946314659485665531844402034826416781288517466372957607862731149223188439692212483879575902379469181031146379397483263293223940654947881760823008682724923580421032821253810987101948924519496860117810540341049868060388622157648117839438985324843529207332572812149605882489066109326673981518859206902770863276563857283039831144472590973655660704092207920854565185992307241628662535092265179196324657534984967625355827806359013282531244895138294644171222583577948832983798106235447689677986198827327310445360888566006830390220534211715111121097411750118556826082330375489020860026969372954185197003746618984938552862541208256921490946184800931920376289121016143129729633470944002385927730205483043502758433141274472266069052274627147187439878321935455505485706835338493073516278275843790120344792044997462542304260393876695462732224073014464653652336965761823395621833332290579786099531635692283055761497436984152072625966024363920625749747748637097080370026858787409075202270470366836426177185660526722095500600205269046912022685251873328633914865619681419256534615337755000795351095340669197808273060869012132283003264008445858065689268243927859226065977662652360084521291911096456972486573873602022921870090286028940402769939673092535537980977736987025094614487807106893155786875131564845542453481134217689042418325299384546449477518062165617871724077663344590634485759246670190381798430209742149037182304557209073417763410136887553089418499447530323970959983748016028409141632354892226025061479117872049464287243821232655246540385567604161887650415606201208002722619708729766233094007728236481004203884610057326604242461253251752770039547971385860316345257373450989090993291448807961405677391156082025826427431612051422259303252412563059290028667683349576351169113869430210073096631704666721543451143610549654992381775293822423297081224585652836359001572181904383438108340687026471340502191256653594276581063711696736081837065691230504916810444856282885579567106856356574677586884636468071529241783575985183651497264852346082052746351580042839992436693878749659901850597930565393026334860008414565725105973161752631509764835708672143168888354889743564213856173338141441954213134732059070467753595321428283481134492754680753576891353704380298252280466914204618669803919833532935844661427637501045065871421310485138509081700880353002762884530514268079947155443094727063418384268264819479307983601418032745762058000337092836094431782054678880328143068683020278541409586423970171111614247440366206263818335794474076888480973405454603886886645550377765158479494992220880619250707215557176014886174513652607613182915807994434315541678495952463988358596211811899731036279492617561469720708073692791008896654453601718016335070105168720105947304724351683835069317833858163119691856408388633649841401802650147036548869749294968607051251088107206218496924506356938339069567512699639093975462852995166217443205628355516134961805722330516282638074470856208995846810541075568344996879614095767716627524423474992492696641788121192046986958342887144216922077178043867065503639596306982108683906847840383775362391562165013999260001712157697005500715794585129127215245193280752416052350594489719943792632026412120819754181223807760388430829085509586457764045185482341679676147172530015649079769775348407036365729317173297876511127993972702777775052733772602570782750276513493371371734961683773664955928146802356697741997772266286156728965668434083145302768685262127352270715824913977604270383198327435524602850014901398385800309717322788284956850099683011177913079699500585458320598084340554563668331216870267544335485571412083457178432137482315743212675788608158657628085340500905397730840767088033543308176135732969684440455421897837524889252067379940882701824967131827485318390103441777345030331816253073665600454639355853146417146862837426585265393752305876704542722297220663481979083812884880610932051666228448538912460550691779261545462984746171937105614488733269130209452035667616034330867345993708662588952030949402755949082096757174630950624034356169728155442919479293841569605403327432989298731989842451683841720616832626136587501909104225779318534805861786981638585005624590134468768855900104083130725473434787574657176174955770303896076879531936214853849893400046165463348546111634939707626854499416235079500876960215509743887875361047808208349693513352538702738337253455967880685895385178689092168785472702496730308253699587945428516454327187503744204565616117504845771137872985682095018201954849071557653660490739761503019622531552057669357943772288209042346729693104119553675154001326515302067819593135776388083374571832065169092120983259717920181782311405170245604086297928700571176146871489398025714333934186647798270729911643080410307183641746392674320544727236830064217783258886318680355036556564701631182997733851406103182195896293395471666145278072750505603089908595932250895072600557027200704295696114159407194398827528176174227902498943945046969629575351272203993497191267681527970936211340263308156802386232426375353210418863554969089393223885952436463383738632887069375373050046543766744716150007508679785629998694772669727903272695960156724891721200301578304181902377492711622353321117205215022587514640923542825712861421395128976390610827482051411638324312379530047627959079359085609706861668287446634258446403570689327398384242219377832692335319870696836900510961676758991383632654259602809185270201968455882615271183889953529168614085464567759452670270802644750788587407231746503494007485777183129127449476596661772282780708952896731480541670278634478606427000871697650192170408967967855643451795808150629654726003958556013067776400249081469094879059922602731652390991435126854752876384321838360446515940855914945544658674376311064630939416205805877997577796989690727753170102679770150003942655777169627596495127534498162064741182439374822129262818419711956356070097222855368712005561999762218674475159263689307670343519633968424783115220165803267805058317743626947811796907585256200483813584311824832515126465658913915506892363879421884285342331304215871926405011982592744402161723265707661199262453660853389603079155891405615710717181852679033800863360103972269092922928206801580679355429325652039281529304760150945799587065867501270921111662431888357429159781418355707472638384672562743700423106387743636376963302476420683836921585350201128056844126442011365514264119453384766316245500238856184372784171741899655930269466381552687539254559624922734690609503802534641892061871615692856233984361758503920843878062899490304504193936901059684526260446528857741203715063182665751741655472771996424134245334456162467101093192083239077819181734201141871494651971075766273771779363763733053555443086785865902796624280022469480104021137329059344325109150871700584112492116728962713538190844732861171480127540573204925717467451770948530958326921867280060691537516863784494214976049490038443288661357509467778593595202872337132463497188550731872589906031180615950238950904086857714821905148270802773119065829356381163509180145045550034199585434688825210297471299874547784455969149749161543768496010750732900389985845252637437901960813488202714016609726339306480916003506324302880711318186523824616031265051563137042024268433118034484042826801767258363556827604344755320229772406436940132483459635082735729074469286069076607005132786666771010299209263354474961541698348395258824094302912396989325448114894099496932635641234914931301453660048999909135571508281102294259145507007179181421825876828721193932489189635541520127706101479173692594961826317449370811820512920080281288704979585390134999717668973370872361908048839387917925050846248507902917394280718688467778065645797347962327671908547805464944143207294133259576470375829720226100530297959328988820551099016820509066719902077589889308028090438673421869887580920961394992803943956314492740574156905018514009232531042551528573028889945827458346299257374227019374464916022742378709466143869995273871003172766723055795904705193192598039978316961613531959374333519359202589613691751607878564264780232787931206845483699367978153800710762586330471322084197881001833087356065442619348781845097950504017764093567425969005412482545726609048170822984525009795000131206736760080358008950181574948204663842610434839877405426281682577319531910976103242030612862609339139842840364655742434441004988199848987091602768110895972815665089000296563960498777215831989829295828881731711460680048516671450136124471478621503182256064034511993261434233249139229261742249009253298244907976529058782841461117406487069007317140230661103105864570148312422988528281048587894795338066626674416934579286400392484076958691088007073492518269258712232343071373402613186007979358936138790984791016142719579362562358833997513016780448216289747618699846920746155650957144218336465070873378000134964081458656271889018917168484480902037824181342817123837411251554981191050402298473350026589902417981932719874671711522834166297858472008573249230689688547223264836338769748805307034229786257326837119156122653258320411093804430603031971538390506824975234116268211301316938149610398155913964735126178784563450562967992589163343125453951813988665758830762289166142407077265400930408034306066107677806467866743203653237474420656912421016103908875736126259607048179212658785597292234979837388534409282913076033693805698942306209508310158962296358087990388913161581122295464251985218540267106564741189127026481442196724392092651512623972514711618335130287578434296977861475530351422813481519310995995765688161468709521663686502065545224177877955850371042315709851415264125103592739714157892797848172642637678773902796120978872799622756567035330430430500777426817106644570566893755647884382471726384147407553634550732163708570586216853827993015397358992691531113353565835640790137305160261961791965038359524352814030182516570281623094833430607159921962559320191100486159062313959087521892386370433288662488094511249492019591928947093554885317467391438744525561243151929407701243548892715268987221082690006064272363473626211356649063771112866896888817123886298304730139257806036964662909805917333012852899918464299955057328662546336362066024411067632194752810186260516666341516446757759655797758257140582214086039704282526704104117683127407970275300335529425589848696260023236671965779890525912107683519474603003087653303730151485113513854315360788445598164119805626295133001566073183595807811218960839103419598167023365872367508497533128014414586060044232689734346492037849796779909210679490340399958985390399312326453504323117446475118369150260556935164407947367429982982602488758359687730765682310142558879855428999118394520265801523162736276866812211109243081341364967917097329486366729583305265235221779238626767796648549674212029500361344610354808652553968971099719202987806102013370410485682905804451254051087074870271260216667872396567522253436718725671074099922479453035903625526264780683572739600310841352566462907552823107405408717142027944570097343746058797354842424462946812245546508279091788392358423076757533617799674429856984504449845545590770245059961695128198456881033386924237506681868478649907200040214987237350242790305999748145695198429076346955500556898748307081530560526032736477784256735862859768047456487489886088211076771382350680850003820713133980279060515093019548901617726894492134861211970977563975073986939609371980536112412408071356497131654195698856431263709493559656681451383758145703366779713517945323612003653333634247261157527828839015197580373748162654158811578873071408605575195194030945477471552618026535014384012887303869992942434389492267029153944725614017707777868836839508689491666367924057549303757468683934611918428356639433627207861137981507263255317688325196378638940350060741723903268221334066961658590617007710752283309800234921210598837162303039877805725021151182037903476139949657106758220001768005761299589859383211097028181002088120989471672650707144924645364199611780679041789711268787122700777933637315280314624719539380626047288937486395663311520449994045568540267224518376088572217368124302678447135709751214559293065632550275253929770142113861294438919302604477456408957804037545331103061468666902194293781923774319168178708568452233650763279206901858027556786063304408739493686813536362137862856510255881560654237168803950193376681284220080872932390227541946974958631221640969289346649917653844035451226464770236279946825024876294896607055558393428090977940807322831810109846731206398121316607235159283984485455443825207895967289656592686813029049939331189615119766484107944290185590372602105784859592792229900721618179808551397301313886910246945406586443250475866030824916687636043952397258846080715187734618495304026404301863724549611713217743932679301031950943236543498372698933774638432684681138201588953882295852988481303811762423442249829995777245989394004816413483797861164587341441903541726947160359167832971693237578125585321868493207383250606678294535364728305911251712880725944477148009549018978382911886122803429861411803575059290436809910610591257294204673460778249132774867482096102043984170900658834163713663037175207494688758863349615657453911424249968946315409439956441512048364432297880322502192159455347304473441207824289862580369459056266555379939889273884474493830661420818175188157498887777064114251689742342335009812749121672536475839748002237342300471705646883979015896978674458560887236816512294357643933824449872765660265860885092799246413974359434525434750596473981444032703053443660631756099967126144692037714160013114367403419681117738596201458447255679120141234977136289135720965001500968351164419410430178521600549999675477385007240633110982225741338902644235484855224728544746780126848497448084320481183813923461178781252904395461575027619419169560761663093001426440974036269897801192591433001658233956739523296849777342240831624002467688418500044337468430363974487750339919276679059933790649998125821534474840727188422626910901442333885016486407276044393521541498420002509772010952994250914812171214051039174267610439853404510695498280047804341559753638920709884739296401652884018911486311617362757237830143234683308243214743876769849490543358905471414916846337378879195451979584293684236494124909547479479934136811245492107752577530334467194575976542453119125809578583827756007441657065499054998133665007854528753734657816212561279594261648273497345480162045229839254978029363283982856337450175728542871238512527948215316768576682142296042801934762536229229353105569572651833219348572111826689203949157885070084386883368922904478904558082060410230910173468122167150183575811958686049466811050835138534982407367311690648988966099018372016422276044920976260408574718614812263481383452356435960032976695498028996387198113874312053928567708869971072145057153684762411009981780992701669551290458592036066432380126334681314669532877915269696259543522411185913196306456039486114446022878933852597586672915102110993621922181090185885904821904836887047943819093926902827845852954398864723950237805611196700129263102854315852824808532483654536822619887448782672027269934849046689372831797339532167829962312832192441485959440453803645081254133103024058362282905458806150745439580406758761477339658400996525809612387656640628172241798944395920071363882963796231404707640647152401357738991920026130789186282731850395579847986090750262163060114416062211391513281630486975245513222668332003409385010160602327707791780271567869105892326919900150304672720393402045724924232997455554980071879898663565700765750354890944159288530130597438976379930551231508722796119828862168141457668311354493061436150170337983680669147971428144118624153965656007892471591392280800393330673016075206961968838823262126363989636291323947543157768601475444154734257116243808720615129417350158400968021133525683185227814442647909157753948376241997143974037835978244924649547196123255908243215853671506249601563425436906823521658950353003634226633910465684043390374655723050074334463811783942566009495831694993648473568410704035473138811308214007113439438448345307978976597469288994100523003229098279739064395217086775228576697970321960618626367737802587949716866485945240952170531620592972903852220620753635699598055481692342591126402591664870016778413200019696883057454655476993194876066410379066567941403177058777495868217654022521930466440277437368438556725718342556235259114477480105465272256941200195078670198541726746141728714807133934598836235387205316957964869353486156542441075581545089529664523938431369173158901551162569244294274265308428504934370793252545986383766195001060362967397287594694764027306951836715716057846260949594882963273500497199422830696927489210131372180237698262877015344180643474406295833080970722722166219208667245933528507965744455038714456259678283376650841383044252086860430044787344012994378265290161578255959315154058496944197910862514068763170843209647104299527575492597491519720556867709430414163155966503256730684719505023250371042148270948774756407611268730756467907538020058830753238701416028887684060163196513326859793209138705896127608244285660058458990022692636928173622040734702661559007116556030309673503027586905744581143395399267403918426104598806232105305012321446010056628509194407851236592936490606551022856207659032520166142348216879004172841351612757488686300742856437022804743450122019719506537865616026652536793976356002089713886308252066548111027696390577163477476033068095609341723325150404565006497747641262822574016650708044141420798059301291306333587985407014702677375056961913482518285981539157273163699551655368557763731676917386474346497036664799704035795881031480788125822202081458719782785111836381088337820757169418221682559896534555324890600595882400791189424040986919242543734054314564891210115747015769121526272780707728660060051805485233509112686542477208166742956762039080383546651013520109408971802094366503458955471005033005381956433904796252711688685375131076878643547100782015990388137748902964131834594593486819216263843222556565109486533288951524339929052456209209233117533067449793669351020285808367653427587986004354060221904462389992239635900472103278129846529902618018858183408657111647525100093585435770442168298739611929772502319733769675107742007654061888575193077944832038953196230980177229010928404369869292784619635261836890951006943031930255556111714010334146351500469999420130318261074102291949972382724501286286920937146534068429278993879882244295250658819710882802511447309565911363888073475888579236642235921820818245202553890854329719933574747592722588426898046634159564628831673094750675821853724579844849085659012472787577997172769275707885311245920271972819418156890628197228243589861646004823785290238260460237990877236502477066005795827945646812022554860918258937387602064020937060148883238410574201118126271176399314631064891127909486168860272424623948680600277734010166924328780725008576660841432529801783719947799724379065003786638560296265199050740310318111751250948442420814438080798158168888857513540680289023604989271067315013626593247572492702278471132284373404608744861782368310394916586382318884299675096505207110503616163526353846859325331208621277977715483875642764841569100346301893933097359785027671147932875174697803559323123442623625231414308083389388509996858961639697903177459651936131950185967116309253095674816646139885356012472715160957928444771650071864812760868030569898683068260100223244019751224918930053504592560473091312350144666968750593403597442038606297601093184155546625794311239044765175778878736191275486656806563783889868048352713775213840125576399661406389504970258155362443046830157799553810427397096831406929012570889992467826357557317233165746717973991571952907811199293454103260348493605222457902507463861812729070551626612688488550312482148874671578932283950002436632000575651973904772102860344567276276160644983347671602736038778709331712088541601667363332161540541083293002224628499065098265873697137647912380747541888459779433626453513400779918700798089429711461474581667426371531659812889551678424762941924241587222835487015764805114316963889264228935058559303105072610606779821806212696506451965492145825576637001942447480770071384291612840929873191667406103449889765022037061295471096463720017833993112395118655744132149904460485696882642213881568026104774212743517700630389844442014532928129012626874594020628469868399714117209323790523237516382994081829694145504716504048276456006423081495586329047769071793002778481481296136270592710245063233523667313433161743354015120878934618271790649725261419092104916440567985757456372070004834456718358900036810023328458466509411261270612698988994691906992387344578583985409909345881155568395320069060477221499718850689269234372775727930367892964017425266512922130485271640700649924450062620839757459954674088056671142915576526343422656891066038753675632989285841086860312016945804378961140823439389409786005942620641256911866551152064040064588052606454053589018253702659965209422537409819089688819531337789080044680079977446175264233086629745964327719704189909294414774050221546896745986640730212779262424225979930590626631697166897119289796794718262660871821594540178392165314436469484536833501064869335936324424228214349942823063547144285906297695567136419470542922763439738159470283678186625884377494867368544497826459766318575759692597684568713419750080032083724747417075512216301894288424895157072009528364801154431826274337287888330541951651333971989236798552494557569586645147685436567911169244770139708358893285035042560122370743877298492432306701231141070007553258323346359368854980021373020453551562655091147571301289073304191453342745501385336200641314664450941736269553248284935609488287248416647978727892175618905096225787027412259363504816580728873753577001514665222719119464014526461246035574891942129213826154759722028995712375774550262089150589934498413693287427071506285042412480969400787718230123159647456421402732022176039980174540390854268517831262999874781406764884177133160524840864206702113439189345281113829299599642358031293526884971834963450374940912211625977309160511209503089153551810019073507347632277280997521430214426228106884939478556450942191289354511530406122277461271663590600362509271268927824780722405070689722825806221416180647361193344193926190786326849738476253925154007495587350781016295291137388131956235818439339946806802191004667009541902347289642150116200712463394280480580566327756257076682460154264992342769138068764961993852669189573178314170138369825200714241156927025943395330345425143126458507237791337296812636201112643724489366775817560215458297708244120059958461206038882108820173308320542895429225252722780332156562072428556341999434243631756807246514732849034981105815464676700889373771345189600296028659969393589255388022571261596047216871858398980299169452213649672628850599902458266641598855315105923846988126853398333441804980233346249278165737102319047487707092003227611435795972127450539063096951214222474671636405663116303580144580912341585189947748151205022594434435528804240369063920851248587024781653256668268329498993449366325616857294486601111843527050564944374303177216767063294465534190211435205316797280747160000490057497482059128334701195926398933235148143959391116454039463738830124737944492394499805903997404457657329205498230751373566436537736495833269172486247287218267742998289324771895353820380323869912120226603125610638205838107335824186194015828924151392685822366108054344460388746392416560425805154412030896751237634026024933482801165096877316117830609211241537839641971386649894028165346705097955556855464430285072304418433926011542794890074337727839022593620284844562862675743128311961151714700159940425218041635921775633601033162048696696992096002930511955192585087381925736238987265240891208393996348677979299528450033017137267243357891015603303532303787482543235196214759610595986682570598910647872449454489401986498256777073743535862891103856848970598200778051273767972121777644618735888850254290349490747267985505459636238976040206369883402370111383706999122189988253537923235673866754224905897425603752748063546725463064929364042777696405364089896260845885753095534446879166383309337452184113993814464014597911050638738921151442796868433650491899945932022668145567713449191696526075630969281303811301473370638547433086568766337505145537891430226291294692830879803446069898095091798649814009147225610436136463958247283303352662581406563784430736432039635944127209968203575186209730052065972870091291510818616608708227798106825241271159459394638652101361920800997695055135102464549174953815652010847383526119283361673732736230512854757427480264338414224115579071513784443670389537856209209380167255871453148755739554507332528136719187120397660833497255029849044472212702453384270725330039441712516729245857920087104955419925085635479217630446470166432663766838360739080312435144644934313139902218775272717143565259239428376468774551316688221782270291446651766103816358845584647283389542264960075067379806010764686100627324862012099461390540118113389896311199486691187281732429773721700413732893081317139449700166901419418559173409048015224667187155546930031261414200263130622744902048642084749296106736426429813160843954104846911674069932061279610586003284321826039567202701565648467476892791961336905724043495293662385662266124607856441278426277820333374487824318440535015113718055921274263544354561403399434142321879245429825301920505196238672228029475627442207428294401080062243948461593607360904250017148919054494741768592958490504835602984118290794025045333645390687524333475527335440212804481476799740320856668843005702258893702371370126555675670713793507771175640600340216416288750908667456364200622008787027697343959722921463158432734859452941122508150393506367552927493639572168858701631067587666171409170683263688755555606175708316250387534064068602423762022962747705873427060039516751376302209249206436063618757610639368178321268678678670134814059177380879801224573771025492271377521626879903146792286537256848074125183263627702410685514322678865534852404667080230720355486833910494093332323699082650198564205662975461205094930731848771013671709788419493014293427051351399944780301394456308539324714390946600802188048075029865028619198493511310423171526964249726288045533508163750561565647214837340468904852122357377623503118811422955796010849821589810818941887427016424554487443396505025944827062670605746377697170723464540008842693929197708957741110115713715998821050317528084435836744938361351165683582560876913485159576301656065434607996081254937847129160549194582448402988144596721775387630634018610047676910519911933842759248897254277902889248803977463563311866886150481899860168225534631108552976989134180414239030414169375837933963755236680928300522570855127781907107076357483981792425322459355083304621751979539743745305943298432340248372797882095614873391297615171763744830443173103258558896545350687252167302924198585811311866481445294049683058252198896902845620572450914972675236428756042742731746675010894294710041021372192506275895667647753396053616591040759538160264492023448162497355831053161920344460367660002110086335897444293212613125228019956252147059416323762722441577963288229840952254709462398615428443671940763167726654949147015039427293791640959374621677955416692275534159361176344141879061757829072455588026254813968201805416429185559447541556816390254766888547888788166815578034217799893817019860889514829901812965214594058748914451852050687306308321722011346200303246542613747785630692066614411493691766323164323829412188677279659267008985214467690051785196535990876816928176034172713424382482791322239722064893658506200096656539720786817934676415073091698710643877332885120400468277336217864327156764755742315926423881302769299939022497593654344884410286411227346326049718319395662885578736578937878782239893826712560754848772916109255344051475437283557766395685676738562262826436327856519415312050725554529724710162670744304041257184181875043075461392408745276621452158845207146251086823738595458934982212743713901223329502915637565902795959504605545541748587940611840796368039905683838569233758345264932768231680490968212491018036735838671510549931783510980654327716015051917878292136253425075066602406842745560999314853186986858569799399503419954572524430705158727763569506326365256200282786463341714663463625243299680792719413301385278238961393178534920582679044251535412089560133340760516187333946537544423012109540970149511793914233303116816912624354509207992300950505023688631649913722698637496154881372798023734451952639352000928684082829778254814859565289893637712942546801204221577859375731948898638855187335688041683337036524757499557394041030157889393459117110167148441401746086466777239286224052729855531093890774806150297664437062912231946961438441906366794933060020122626278031887159377051009447964362241589806460121397678617511663350060842380470377562563870188424774165666739283946971501584578008653331952934283072372489831374992512618705107607199981892686254126930357395824994106408889084391654454670554134484365849606968415153598102313416910058447261216148906376441787391123641616603974941494361275127764097838875784805022054574554710760426440642101499685467849177516698276155159284662062662775845395086038515845801349687519599728201658244888976138144370663262165564519896501518589919242528942497118133674763924743078410405112662677293381536624803151328837818396839680029254393218216673720691669375915724017135870050635435950467826773547597590746081821680845221297409418242110505162626579711309116636867762865561846027967363626452478399417754770877411731332630627808272049959359279972333380570642930876786599740841050717018749841255384617697832654136065296463871343299114433490697144465918603927429733358462776171206880110576290553882976905634859866492718309877111150368273263054918488134777891884858276244307554801327121761015859571603242151606105876281712447358389548127895507548982170599327013278840569726023682661245500215870567985394158712310184543149684190033762681771653917953705942887652389728593961948049402169234050473152417651513839648661324477681420072282204374917350729694767227733056615493568009505476744116815315235633276026161568097278407362802397832050946714687693613279909455236653307582779280236210759601889447120947533652377984686269247299168221476011945762150522024692506564162560286058248468603398841627641466643529092344583134969084630319834544695506436478496344593236773765338299966856067066273987669195796563406054542333252120008986624833720406757355439558262139148476372364882382866232941558109686609953072457150381451793719085582071432902857512367985298268117344263160261196913475764876004440914555393026549969857742103042992862811562222025921220670453271618726487855307839455014212231500876492076005125319772100925640972766333424286108604755173697664675183657493637911073101941046515621690323838604505184209370609129883177544009839219277656724864308423235963001686005423178985972719130210366158360935199231046593603840588299697852115418992898052501827100949217393559817299822223722768994342606526874096412541041912743966234523959513811250153194734736159741823501251060207227865997708431453004485050504711739185791278433504480035709531777493896620042824604210931039381826667945664828487228137876472317879282885299215318958608546936553748543050278558286244246740130821476539577261797853323209890611134261828219839591462297274270980695002034928409452501791119080680536359121132807202065359774509109858560637616113824620622370275104537882585960691797137158723508345176097886285232883564874520856337389889853978858992748648436733159386301130139536889266476411786601090695960639452772730773562780662166471823307179479843989555507327050077893303966916232216891312882325622937157277375359453186291177634801695136784953502765396505361031322635406340103784469214621720095684189376955986517294547293429255166356602350602181050326008441091146026213756123534856163440494184765025763542828229114863706243303964438130407494765309622673638485310690895406918992355328672590482683114306175928486442632122557477533872168094769358097883292960197078978415276415865292862843589984435131523691871540072365622922305248448969955442720288096936235765886044445651211158348887460299434099441500652434113954185438322790880005303573639360084228341337437845256433850618604409220695639139495543725504126787407167888084081526100044668251790641567097989690264198270891240978801527587367787337526170612542434749261369220333799836030710470017357324341858217948928018289051221014358761911899499579694094742522356211748321411244011513515006687933169565576311195946412738413556628890984809589829606668050480787645441698707688512084184309921564691905040230346641716023779616190922811208133700434544046172400992525519648961320759806806172954412460078656226806090899233981132740897587237124377932240804862002315420079188708343986957376261508555059043570242338982193987566145341736777673506042415560976909546216748803044783293940266005665108071120163971023868489916473027579104495684702663715678286317651258380090933311377693321866673333003857223612777585539290787645600193326132532102526109245937487330735599462870308562233480949330245408032640231063568111449250344714905047304027593854416491469051519784708240670988696355299786116377240909056068479002477841898613314486583807950951323618967890341179131198743137536489665299835099156973290602280156842845756551040974244969726412502053805433736666110096802292398379206027281746549376996296270002145579908337191993933516187912335830422604057476689088418106829125358771105125031333111376354002417402140884796319621898206730656651793874931078588722064517764560899355810160575117751533128893358604824514806455199863723069262780169205503193786017638321514444202012929273796150701380946069407264644956668029694465410876474936974481409296784564904513750258558922877530397648414508053932020023445994681444700658177498746496186793435043602577160368466161305759146144294895134229720162488555671837650194553356686600391724367424711718684215845755688420140065210413716584965843944987781485120710611443766630235456683841094360065364581159075522759875199833563009773569079836362723101559482924667580275583276749983598513443809139554435916987692063448973929048192617935404030169142110371619252412958154705903471919434705722016415614649994229871888046188007636644375667080101009205396744312510230031875614170523969485034391847058055655381318414863282051726821641334884661164656299020734235899117588764467414864747993364652822237382262198203985779748033220049104307828886743430038272683799940538614527016756261726020813373456675014729125448666707088465140206451655989476979520735965623006525518286520689265987282424228098209871487787313251116843142828690505295552805735579144543100777540816059557028089011548532793067806962757482311642565942734830221741277813192848501379312199325985927058137568625750460201221527011046096331631058758353279668247693954033631233541563878809993848941143912642310089071132253670022589009339165152206310911626734677366493920865779763453547115035917076397799619850949056263582422999604499176706231376938613691081796895049286880940047700261699176197967810043520755251700050940742199178153494026204949381567497147521588909162094996294680921834989029346391652533318144719328430832431034693909228157108121617981292535560504329200808448563362555223765540719492822432249426156864487387299829162451964410776995450833418367720061263504702000299913405230692560483311154554186945123585717988544615940890669337586413177953039334061024425140879450297118746310913389211419470566273619299059055712214734638247695882472770330200504444442296055458077055167661636440843936951930149037186340986228069492454389570442542553681078307937483232215199631678379549015611779975329645861043680419563929897014471142528241729846731909153734828553758318101480059948292447528686321827324133238865296414976219427788007824040428391172789288113512864275158183162053318020896495275495602458357629384950782056024949333246039908700643632062146233197635785917143823612864752971805638106119502500396205791640535035772141883372594718211185587714938888800703383033262570807486320871093384492933489207838565740709463843721734057653730333234154728771534926099732429534368240363458862404294281642184894318099736488006724551323703317018025623430513307911445220610680932187320197857281608581769462059226343997835837612602748508151448093626069473833541787890199213410826843133367793877155527746660931871664579904273712101139346329952146606235657482129022438356590204535206164510324055564132784188795574093835462795756970670207744961685083425824464586691060459222988872293449482438490203806038963172037745710625855269656205919500139010618828906781664959207954804735770294535546535139441297418254519984926658316969202102767587902778815096483743364142845509977158282399328126483617671045973638141176510861951120376104485416106606732263500582503539915071860328021825952112171310968529804309858129373254194847896182407546089841923240156137633900136170326408395195343944012017515966204429398378040823700942861902240554712246002635647790500691156742331118052033712095330483237098304410053825116277327466341564587198310643492334671305435017614720678235558382955255345520928367423961933192072777263980829285224002030494206677427987382444616329422594291335755028700713706579350154825545690477846797588058395607362563358622683921591624825596321661562999036807816140497344738556242179429373069673248290614841550504640583752220474276846882046046442891575114003187440245746300615965199017512229885445286655950179996189025458268186775145963491805617929638076845739440176544331473064485394620465449369751344081968080754329066871759225402650194769755050820731772082411750872075032530712286356112630540358597414708249960026523372616142628675063296231585797894208727721290624212768808281138042494255259720985595810552752129275211864436972172758448472976801321040327842297844174021935059074649659932805507708125548440197845721390076406031575681292441994735890941181068251394653115407541418480176520000734174140755658678840662777124668229563458864853882911770081055696857302852331754225901871894066050680222449037385276071028341051022126247720207337016403185813579075963234524894798138997892886439719820011193868562975966781046795213402363769862953322059595268381441792395982882430454702636523713284434353007112563757380409424863534951097805444079509237302470064046452518025426719177846007112762371631734497469567219330132028734167665758418129874664205976210915630996353860269123995286904601323923432910917630016036148135474187114053703545940149747097300814509259885421043853084345504181059811706809113823901932600498915844136443326829767827323571787582838028433650166687898133265828168623894608189214032041310152995841829153809219817622987369194191459778743803029355174561960888323711844759312740443811873308247204450883516667502790440660006814395682477629857811782543253900831889271515906670346751705107767287261567675190466929197887514473638047225963048351167067278728852781253491219815616630900932240206788567231891572630731694471090248642455604671081892590288398074956739156600526919644467048535175647497304256157619846585815516241172827707630872437318483031077124580547516142381207830598519521319102245194362054851114937082589278089200637009084830981726159520102706951365995527541488625228822663219452889064119118087390430264443335382566800646727716605106027993035943481889938636332274928428767078140382286226317066762766827604903361674186545469358069269154485300667472055594721699460350290651709964011104467283294325729529566465225790550616231029802827243414849361555903239271320335813292674424375396796864442892721050334469530277242251064638244016915155301359273887947896231289432412899861180454631098026122503118577840038330600842630584174471145697992625093069585895963584632148967071833902781471725319938752791015056798381213705920122817707751933592658836335229799738695099557414808159965798424804187022966725598935913234043941002968428783734615004051237588246356968527916935095720112442406500172228127965878850743860506505191322325588887562596290114356388550724375051377588547119104986930378309478364481596286201045501285759531779603255581836396018626798706013093332601992494426502851636277312572894698462837028736911083434334142346921538413946717634749235992006035463356269048807337814162916631095114847667209296698411133161022682114543087362222395377318056638934678856996364672558942418810907860312922322673321355299414248042251035059688340002079944473290463718919100289048143824101066799542406009582807735515869120356723667581671781640941421617399481511416852026799463596667826183461954760834152552088953686117362815486717241266384715216024037157117578785434988157243521677658335286699423394813575491897974135821340517687097619878764366160248269300013261037751645162259400631654121600092130456411507409380539445604997110810309487847843790492785949471450017663724682765440957048977896815304906618060253161927114101977281511856350235388939877115151682698645562663619361189712707982425363525753194698960622556483321133535345186679806374141258240221644308505742744038454167366045971872016115959769445382575791081608772444297593175722832270373186967763680689423061905432795346260814158875467062814001302500173902023450247984440473595986366159228044410963058985571638718994976209179503671265361591966558425694357884712837230141529984124233999519569068510633139768758372918856343810716213653070191973145965739091839722612034993453627144828641702215591713120556007306382188792578847431813372005697002332424776510573490449815024763414719043588183228024465365840578997826889600109141091560395816374770346647159687427493716746998102217064561248468819432868162246492675985685248227857063456928563744690357466042848581381100825324056975889813436502169565282887340696533456439958989666496482958554752464881193798138425091844418529435916850938715052543518694814927324536580296040354723997169435017847911778069684509423492774787598667839983952643918403956343650804386116843802719822108370374686844549488887645489464552917538240705880847396003720514394019079901114424380649533438624085357429151116656595164974636564715779516838071121355180641551917953039283863432780503311632839466383400039237490292844485552548987779968031625018096017001283457225159583280799811803719022993613088798812901629036586493754570409078551889099333305098919878456731620099906873020441361480064161647036587228565210582110974433424652736975372082897514788612417232755466820836113673885836620430412519786944972522902775533798740741351045936655454032666437525694060111227058175888290278719008392109689822818411377285611414489675474700776677221215810743294236395113256076486321066049490038504828089245616135764821682495203150274911422247240626405701232715643584478579689250737352341446133873211997064189530986744343527542643075084915696651140635269895249017958939246807539667243365847617328095416307897611158545842758271284465214626351456109759285772284292001944645411021121062911132506775971266495312714467679387377299965710289694469321070305263677239123166883135637003325720384153842494190115494905449869525261332375027274047579591976579850943106954151024134704893389703585348267040087378738786887925900843291881871983282793171317390036018581560145043080335712984937785394111348950815083115618181848621709980039738932335657657904300513192882702721106193593302061848096761092853203599704564110948597320552816663909549422281357394685502960311692519992772695204713841692020537663949522291271075106949200159179401409851022077209813636851844683340065652000637157669445497616688480839875090664705557710463206581210632733656647858289970995434402108763369069422087410044739654434111314123304567187134787734545982719886568172678048043616132457782518593138834162045395923493316175716164220884383389988589412912449232548088749383614340886640900561519163261787487889779445839637245091648039196620127505537936800849426050180760669707551720055700097694439500624666318578566568426084309113179544824413938639033208993542906677810128845515009677088157943036681843988746755316830978096542096731245825808887365777471716695155225602062347786137744762677608204577073690494759762356354149468580380309163705252021245727504214497608823275426029650396577008102999892139872022099083855143778318260263374981979979346626250909642924981902997948059126721717863151936268845777404021155900416337484394787429018493068800890709448792403395961827107043155232223801915575103404716213405892272005871639822132961454798281372832497322353862736685250718980022334783347160598124814439161200031862874162769993503329001409871526166697507934440508526948664207531501889051410838921521524206210471814212069825341563670133983960275304837966155370305410408394949604344055236421217630443819781441549810994385173024090026273612914470176460947400645071645048096808949089476463155641144873827384254081064034682894589915188860075661253104654826701540437182502749192351883786821796165040391837426071036735611464637038327711133474306145659824985957212026146642626919025593726581082418708438080488266671952202095277955760599793577018821691400041983147906455241494766203979557559819324424907299658608765682166501162148385841227620363193618051564977648643814537671573374585036809892405894287772735662614629465503104859484630275400175214234332325418304020662630022483030838047248419314222230912629693525187081463805697823787782094015661678524892893351653173426253506621758657252262298395042880152257034627095271113321085038958275008542389637078433333250321022073612638348767325859486669347984571971374296249697070325652987944178865004825667278923938888560150698896977639648598750644803577122756037541522008328258780399276714845226107057458576817381490595616071127193470363211651321783726281689309728275344656357235307397970693185978101554826582288646710432164112407781533623776777953414049053445080554077764820677160678274834247237730710512243625791130365618510011338089121122639720447858824151187625913316459975110682194605673085009402618465635263154048475512850476143732085782074673459700437838535688201846299633409460153564955801312384379086476073205089410611789069800877278792722684047983995402723098984707959566071680085493208543743408986066203158355872329292459805937414311396898012012647331151457398546023714874164342336040737880935227660246704269500123965863009507607732644990677854724151486472932081750494282950726888933730174224420440937082925414130127143929017633419919869701443339479385723948593848582386819846620192634295404471865258082308170463238191437708865763140255615240392440172068404532139058307865931851596902653958314724885285243700406614173847704721527318884913027796538297960913139018615791856082375675292838383023457855823964463177890873836409008729631658513114580195172735199397778350889166047257014121360229394180500730361721405552651516121051678777771229645662330982212998850467768295245309936778085756247533183920716414542198740713389311932107619602019114258965542053502691679818560746591109764107034506803232840499650396080760820468369313031052550695388975785435935429504804095292359483042199235797490474528792947055827103616321265158761199390641270351893227386008454357327656313919728843312980187431446110684436956650846610927822014722324575592040369185536320311803827737851945539088536966220818534980507556148389665444663639869520379819352896340359735538477879332972967867868990442434462327649131831897428991908505171956446296393633876411001846570711507785400053704820126880132679399007613446570653014457177703311085404664624421657278879721335135808651822123979040323297544268055765059926750843317945264091031000742523030427946903932553043820653791590561065850416123655819078498113101576777176891387911053485203183462244008497492825366969628159969276066601955758865482576725922713590345019556690200511253415811583954308899248560143839028392744425870906747099398785144263259135504727081470692575446917423463192297274434056544094947373153144454263451706815280152842158966511089464184240094886206378436383452087566937530180834901932915099704147717199311805234722637081821571300574114591868870681208386911694624145738698665697827362385168755352314889892527879189349334204287721084361488953566425648419655002096941287759779065325137673106083073079974548625449551292982575880554368022034618139700155452308766511774776218089608957107573354747683116102888267126259852359750008446301032522671713186552408182858989531981916386897154529957676101335873490538648879421304339325785489356496551574375840604969091924501180367738451202751149521849114860554649845949513356998608868121148251410771341611155394896616011286774659489867978880306527425292495492234512141302699655286571470817410022235269450623831889574675888070891324966694556611196559245174021330828156847018394895691189996585766269747359075231598900846790910201503367150372559232470740809941011956630731725736446840001309982284272284580764640171359994105409959352798565755977638221081529666043088900706357518015303234983390144440662018920250265370088115694603750004593423775902875181375356628175786286048070853802522715891565039405135007826429776750227320206176613169729600050770501017627573138915060647175479678817892048482374474818230151955733506065251854722970647191775489877969161230666328674651816994592733653046421427469350719974132433107279330465816254806977399348352702950442995345995727495506982969188296051560440033941781120550535045079493205492351126614391235883976995755321059158822217727709099323796103779553072271435197565527399562439016434591634597500074244607783471973792839325838364909244909351158197827287395108343452609823947496100243537527712116576092552467019207915921625562698580397215561891265062237376378103459942478279794765198627298916388459045617590796995014385953238311652042570992499570924312687392735366357546438506631023361635430894896202543650403789070634583732146484406241295103115325274235401387794437260923526121347235016408636767842041763120178167697112845874603198209763539323445543721311844304951695352632864501960044207928611860062603962115684719982587128143380949161353291383637405793873326140080473116215768947116120526950495057689611059343604876042327325968774985822710610650737970541705328311984244986695704798017670482550994515521276673562077834934340973614952805343380303187521964769168049193650366292387500449133391884880138298655872043276545432350441748451630425947250354965826265643863944470347015661660603028955059719710866965986641398744757961904914840961091122693527668383658688619107010070256946760939347625321053867827843127750230065451548908189822413037302375540483469713818320618261042841290280328737051677060036242249904034502171690806004642301851878088565293674111862051237780647070773592941199168594227301354693511105924739789024431577364966541397784288919361182168307238028339750767753923679159128498075854057771183204525088893326700713096120473316360935913571921001408417823780085190173119419836029737793306438343215893213525331148892277534654774692860117715590352873423954170194867003209677013608738722979959201470171898313403848546189920355009014326725963252470624868032488846003012258233063301023717975689598349728100717666149685889345231220608773231840447578337100512275828663404039979618210306220700404747330169255893112038793989020186891364600042922959937137590357926394800718154528827156783169334136391887030289440190077960029861526102173077797847816491922372434773114705330730219473509822569740731341238535844969317047514914754409986268161333151174553962075203015868086777495898809366368393264776696421245588685971214609710013137074302032903578359741148177209297637467462638801674597216143011281512058934142203815948882623487422053522794241197684353855142817125445550976543663272828194596232900947258565782150300511749423785895116468429981239840052166868150337155187251688299337536259462290611295310003038410602626379579442098308556475988570968266634739781785630248659580354326566229230065922352810134776320777352435314872374605037050941122991982604961956974871499387451426359965332874183599268870074635229253328046774975979437116313501407361070087882368629993577411712839402641820041058264250255288681103563931717051995873279056311357614760174777554630195355454114161284692946908997885932654848103796246281646434278892940805947127473266960802200508013392425197537800740565012287031159684333016385829256887737077829243455358492313613663654364797738927309899730364661334239207636418737217470391080240289149616165945801494700788063933103200711520079604458808076338187716192485999552163845659608229253273150536304477124556989066170793799339497566637396708617816783499956097664148706826204105610764561067903297948873942210445655228612380757322004189300612733713243685942891934713508071524259171590924395653512737218467876315542864564231036887965104804238695928280386565274277907384972699803422438483739906186272661714374883669552758680069526775348383069223938927834669159936157834989437415902993157332403973148421130144619323157490626630492342625761627416539961792078652738100193052826544430496946108609214636973471520243125143219823132927060647069573789135784648634816501547547150800843871892810347804088551456613228466082426612126307045536023875905995147240459456412312900550085927273583747063410370981846586459139072251568882853342720116509258618972315293832988329115097157071340216534726281995162910016079143034230498577190246172951928914357888409271529204690969064461468813382567799271083987432273133527072476524695279174843638825435275082637424260528807784825317908854248641009122175033680353039067725517361398531845636326773170158079455807606432393362535208714070330386712786288866041739481414907244808849328748951724379448688450311891769478391102542144678486492440766247762112716189786698442348941258718233567210942765956401275497980602837558488124374808701357510419082764908823887522251411502277696484131454090975388180328428837143169688549709481691683096186023009343420704546605064922069263220126371862148513257683614398329540692147388937189585794699290795112043725580660920238603771496871328520557210844960980582029535638970054481785916314550440760889766392834451109395462493988326201049475610231274285250572758779149816128335141546433734011799182814787260573868829917014960575970925505137816154063823008347938957370066824076115590630744470902165362614755973165451268261915359898629369909099044369051041022168877906906467412793608471362471001630003939396793488440451110694178580762671670906305872084710293757144207129094106757283989853835662053417688226171995029825805645076358739479707225221579765750022371962309079104940924544739581104413767040353081947299463153753608884787176317538154168858965980773551662421649990348183486658474263133480997094020535153217069653575253168859631519821516271363743455179667682497085173129359292373496965597364372051182229634095461809636597259691003139272131434895817643848279028137955032194739304027661892394996926651937503888358980368998358203779207426888781763783780057734793939685790277009880207015343584434520167685419520935299057782070175745835329403168291954489172524659709998180779020665124673008948161274774438268675050854748350869670813569469774842697878246323629112551361182321970313823836267373454411061227792472703643427096500458661135313365687394856110162388424839217499144999885628627169987260641745850062037065342029446197262887978492034296647375754180145616329247883622874926807962786049467183598939355607158351739685127109858173127308006332935938721923910908421390307626571128200843291611926443653184138864949630040123455863053309826413606469126736426891776528729992491129335447240489103212945678346879603672440429941652407307331809496717943962554521891043082660119657870575333041756363418783019850318455877787344349235976341139687002376982180891783990333152081498287145855502389601654331926214554176773311289709362863985434601276911784712497202639426166642194122407680046625817323540101300239746500010770360888548878636608009345285435701746295315332459225765391067767147731531761232085487277711075141762047205557182985803019239193154699673531213445077247378415331104834134851889271668424470410365345750652723498040118436190305005184447369529482484185074095715871566592631739441345185139077321182995402272124849162335237865781539542782835118768017695590408950788691698238369339258824514310680199722459756123483092163462431196359668443754225815690645547292078927465789374129031535981683971024060809455585542277474368193574681211119033213239782546245239197113272597562033004243305389978648583950834686860478516465519362654143418735032833652608164400479200839228087329553386650137133542038239660602816446821690566013167674717135637016174790683727803053138414799097801564669113988336622725309505185143153792340788259954063910776132913952188670345102413466653673494708356785576160238464330145991411162386989949087123799954071185523084342819260413148585065280112952038988118406369113619426069736610155802021744511155121260007653536908202950430553835850451327075296339994200716041246526553844674205104995416175398108094753193614707678049580797670475492349193692607908386211064523882660014898650149374733472111365868530362080007239206598891570211424882978110437324765468073975642543086939482966377302897854099670289829290799005476647089474388599404620429593043894897013094780001487588525634267227826046845688611403862472764297224400435269764056063729266740429577463567284818154069700878023800281361808241362273560897419904614419595603704866404737175634489851439197486438025871342338123661539736378999168186700544087080192978222809492519484231001409936463276425665230952774818141237866012574785985059494897433373729551034273509253749067112407663323818044411416980300168199975182781708564817210278724210152998243492213516582587988103112414268605524598769260132819467188355268450129768394554166752198511463673721003969425365808395294356534568634008192360209754222133210326115955641479580499670227064462900841374911300287364788946395388122171874363240935894522443301264768306741811420833494955749286981377361396777026455061717293978192335288309996241735094527094858169450669228080851704493137728822366380065056562667629486042766265996250036428456644609318625059925015897215030346074038223708165582553400705964572026702641028475271019796827649046574370913465807840226957365335322260968838236240232925598597181139477459984406556702520382727585189642696304611799016146653652024328085765595022122922255250390033978369642593833903721227835843341118824363396565140800335234561564330791964962070866279435480996975992264653408287957840684625397910630881698575025097890716014255781644036709115400952322142282248240945986461569386490282407651306440399996908002854809912852412527213693706392961274939393075724388982576408763444079265446123700043169542283059609226072226927555160828316418853228641062739216492735477467916025953984268293090428072711115997276624153838795707549418430259842145848578612135365974704218763834060684588133326113250979970789547757147555299118086036498382578994358644481989687659760768680137303676981937346354950361939729828308775677700270984197693464402601705819728308034414310548113385853414609241389347431695156700457436949614244328110703414776107913767196088858636896269878057542337776918526868714176614214905661591173263203110621161213333192902359886093838714111635533528455753962092350086342265771377058976280182455179729527785204138326617681363705064158467191122698791204312232065400787923843947733752403735737889504291804827589315391487613883013006525894767105224105606534428242986276041704519414989618110911026972511962749103055323877295801524972737636878352176545013565412194473736887441372408498588112054563171800345139366830467331858331661518621514347203069359377179518452279016451945572849670577359911569565435238381953398098004878660095219798790951168852056185887851208756018015338810717850620646693339940608165294853228201246334470548245428532618782714897622890001984025561924883005205845843442441620470997417877123931662949275263526019246860844427627014521373063995618056662438449630920361544583596617183884518771389739928270399781165810752691101503936602668335142506609128299366802609038137373745177445078766777749083752731436283914769815416074675545623761764716396496918860895629116308982137021162899833935738960452169596712159105880213561713622133895218492604273648411400783633329137006055524514087058568212412626799461771103858856159124861765585337266056120904788886034497999804759285169338706622900260315138653804191104820042903540286551778501798646597376992988500325777468257860421565804043522170961912352815367438727288686225555520993350739129215144035292305898303146684519785916798447523546477371037161244071867619642268021709396908271464048837276828324027171295193510921034632273943519089522056786682031602089395794357823134181189789377735027939807512015561444085849820099154487905734069492740476034175183019383891426023663639434277165742592329320838690986874838279093463104338621297127279332993735596992023255959167607749895045246389794612938091303554792394356697799326701642090092146620143513879927611902677368760225405294509166726591454336781153877729572741610459815050696132419601014741614410618480653277737020352128737159460630705330673050467561963408738515734143300398829898937799168034173333591419103841929389254605585966297811593652224651835385200489908494937819170271871891775020253547192476733544295402346806669179005636406018478871148796273504576236162772512839172108295339407203380108151501610139367522164112181731207653977401923617632992992300643065695540986307390308416037805972790782999854717980496860406764705366075837181783859858069313742761306647971481333865186023647489191585076076215164597601733415031661466944558826116845005643805521958018862596602832135574783892519171617341590582489751020047954382835595026674555557604388810734901413628231134409004622905783461802845501123150220590709845976075980529431375318243888915377293343569437429376436068946327501619252804752327009112201298464424533131142786270274056823863620354660176472245281280697513637799418418081894573290055471586276988009247339787702399513492948979024539278458769809157115569025385612561345780755702625096951684745905204603292140321132125871191827697722201009664928731658788496795873235464388952993876435402417742573308446318833609724555657260256237326598066154650461097590456889890531167601642835484849065096068049278644724101779145388522878039620953559626953277541433603066885279008336113183279413075065952103322570665975005491113377781396027381105355742915757307379489722801277385085163750975028314976281198039239514977493054479154012048575050330091348121333118525723818130339332974267038060991817053146190405205715324781420752466420458380866609191122294703239812706261339850373722283363237350946025038439402326213954738143070846450721769888380204207034054566450492614919829425914652187977283703769371382129277936230931882693192623735563524683520335453581586809075653611808198735613541761361892908757076506308723928644451549163687191070516687860982458836484052034184315344777349900429135133258805008198358618271891662225034899424136803894469575908079527576808665730379520466030289318976777129940971121768824140770099405920755217546694030835834432801461556968048666860180849163379995117204062047828417164999753821255519825932756422337378014042498449427205319940434949437520391825577008190624042909459757284760548576187973103821717271526475983955381570438301462319303440385137797277999382401419214493737057240170692394328422859054559504963387462019324434246774554361990201145775172776976690870364360327056650189954635927584664849784936368933514628410287152075476189028743230208957171273354448569893991837556164686891599090965296375461329849037730292831610373828420966638516532186252777678375864448069685171688578126015049921113881046491031948845279883917126445201064774303463724614510510114126228235788240231150224785898406579531816397080154796894363992195859555171673737485166152156406881380313022169300479967373851580054291404130791653315715593672860798301675341135249999974304575762979746455489819075043138365447449153185478368045470414986458016336144108520990909157386290071478981061070279955586408856979015746521069796568160070805181548035104905213060265076567940205486516894528786258794641055437259692701597284997958630258902812411058614384082446676899720781693233561691903146398322495990166060773984172025533976802755288464774434946085143611676734306433366030434821253177512125555824746808934175660412570228803025792715406741430776556479679824769027714767356266611694416871556140689985866343681078325528976588039457152939734649960440278699399887091002312619675969860237596065288886376263568535875922472454843531374889290739662684948338488921836892761109021944018093152662993771817965140225604493304516958732291878619417567449028940207374242318824426414334861065681909484113731684184535605291636027363803196697364449146588385171304449960516373056652974724476244318618594557661399848457512673922873895616386200749436505867068497425583544712135117890063912035743512849739377444113425190646322515108764497342346739431956073312453937090243835886221126472722910764107183608952456413837373527149119568076024018967163967577916550192345385672536337918769461174087135395798219910972940865632214297155947025918164264637820355404591106104727092358901375189896148645348237088796436569119046924393432007695553973872215091773608845430401961051281481318170500287456370598435188583573388358282914983083633849227135702292846270689917008024465980968627439976369070611140486122157059227123850246970551663655796902567009969216504977423248058757970323863581220601799074196448813952137523964436357648959919361120335572930885806422400959599371577551802467846422922981225658527833247183573778252022222252929517364674994585869065101568318166749031942557494829340812102945340868632103226922718065838395777077789072980108172059209223785947237402992273847779450889872015337109054019044686672703094029373653573292542026343865968151084377235989896640184370468132363254844983325503395283149904438110634061651273936250254126920957919198426900506864454717515083167366414395843248496944720948482111108712202525350104888770664897212369104932739506302442831688970319388680715985760115537591424586019262831337677097818773557441157877697563445534959279007149068163734379990420744794651064618374440214263111004247086393241912605357687394187058541801839198916834910883118820602345398612718167693918152527917136758452598508154901873466834934506725328036188209168564207535066244200570000406579141680127556312591254157507502551206759747460174296478624778828154449448186318050901032644216905546626146042300940282512959318463223620582994508201407515484746206225300478646851383962050149344401418081872178086950092912119085604411587473555660280171642759721893303640869755872249560752709898886882733251879195250330202304777667531123689891730488515313898358227072277496864305636955961032850778119121313140364542266634075288269238022524254918324117036710400308988341221948050609571372128037754590973062858940539719788803854623545716255436808184087371808288787406209353575629077238522574870674497891649423196253228951708988745724580308446610944190750186171987263243765086086018596721985840129474198374314179437948593819595256645507700805108176484932616933451511011764497057861572863950569545960637840643921120096724575944471894382825983583970356790015322741975554367535818968260546438806143803347856083170267609072312847663580727454665411736156199214944288229682021895544861834819173617657931825998648827938124022281406071712543841634661943328529505363727267187577669212548539966669912433675292576972332969329723908766169165923387757656363170692498034183563564805334684735588704805303789200047100547144614229903243280793111066410133387294959696638057336669024324787929069842787275915678318358481209280458673180166271719786996616295994471824405395725788050260258801394138490154965505491089793071388473933631963291510715007936073909049584903648321113525222238747276184513821809531738607211270580463827402597993955955962786818245140161547321533960563074161362159494692580654745720960605311213182730134736050986103210717810943272262689341854819014502781599139790291843803894951523817573890134870361613321698157739186498714388741059052631953708397258872028957068691773807425680506491622426924165160331127103182428562592926667567427233606092437081157853488841334963862837040894458429142171669250719073551524912746785591487406590980963580840959631472912379289607031616971658543819172641198814427284563816915935843423417498542648186580741754589673327747789468253290454423995529683701315425048123280725081859737114277180679264481349400916638916554423095837267936804997836929012909747219560582861571249446264346065459034815807056852049731796887219003733035893575349106549292193681521271864526043456562491352133078761254530566801428337162801888133655600517288701189291346842662984423779839056347821104985500290864040814481974743045490660733017048145906865422042715832579900810946867360837553468994259567940169785938614904971168686021781571430220825828519337768058746789674714155124010064055488338332491736824416898614951199500368663532519441502612821748908300683572950983121823846954432454890317177363228486736020083693565992077359985586123341056529798093607994736272367838021471615979779036259759252381191391701415603288175971516349989021863232710379866813340018845462843298891812984620890247745921045995200086612388587244182678441132219150917182126928312320881227079501511847616898292526107835510687435804762929756179988134672135934072267366941819339188185506390086761771260953569552228065698356105204651154894980170261828867146404834094917032517691880329518017201856951622548423070572527603426664713612683879217776558663143502033062009219839575439832798398447301046807886135161553227216217447455530702448770648031313072827224462658109512506276154253953862786035510379821529685984041335404550227608385817143314485076082676539506778956020997593257925222937338081664404414867402665006075830352021600965932832551965424076651972784153427654558392510911613400653293604386992592658440046368376209074385657011513244865622570685589756549383948053214021622165908384654556037574025438874948821913722937970235483595152647450088297300483729250773732374005127323434496148280131570880555751984830797740692150456558814671611726202017149593484420709514903642162693983663769960058614456949655724288375359090570594623983832768939358696578855684107047143116308682495321638511776561870917406320812773902660885647789992536833763268189406269915660638655120142663105643518910160906021150752612848881054456077083823787673221992422073769484751470189592257359639634420830765917732009488455031166113600177651203076261611967575849825974083531743527458406717909421946066711579107003198417253531744763287947291394854636755802156900152628701819509390956796101301095451657384509164443395548226107224516633459008401053722027559157479364736647685731073434255670422907657050912478608653329242033332167531199911526567749158212035783937852985093585612411972632856606639425908049886814313067277321852133477808805442287587088916295808273342338691805482596104124481386938569246115178470489441384829882728695653905107214285929624218759797233552088705579144845706970633319691237047092882140671201266413928950959197232649981597067132168912192994546549202858687982499015876074014823238857590131368731437659334171548438178485903435386828367656675032137093190130272600281640063860814559712891938824831186382264724962311608324583184415033945738411907043392623372080232698783708803367591469822918646468305201517283865256773888410577946609817332096554217893510627500151170382314425871168350528383350579932934222070850011968538678404713612478020825425230925156493258147144378806943608372084372582906307960393924915786807904990576347298562911504616070079675133019361616259227335688973348708517329144214159823534245412158078408137338049111827384777465862771936925856097905927720216579749936441893245900352011955341610589641751839217918700583586112068874876297764530996173513346702736622461341960434052531725770785582902337652394247379057283989152171278246656861225800233403198875634158246355506032662046905510077164438494007467155825467242786412192061209523681888997528494702738305692088107386399399891799510876593875162226720513532114590627974725576382176505752119330008020607408524016267375541589979682748005399851529979756308489489309895859554746169498646071533525576301119170136972465548791240917839394262621868967326944411562380707238696026977778992916744213404509448447689464282767077478025713908473336256811474215609424619894083206358999743635793770064360577994167768365965867192216617522859760656715062623221412139666491400380377583460047810634448270575324113274820690307308536721260378123285681840404470319826498969579693143956314759347055692709503870834239395262585848368066255753033500912061539934001124994733774111621699151181667098838707723934724384016948403803801865307893029127978337100733050241857014875259762300261952564465259856139140947377800086524527471432819316413041394720324531960636293184202598909053621420258815732032825223780494237673187939775617991093773537993012694253127898187900115752531293708810492021788627506702160178720092189020795543250697662984164699940953006299943452190154669951343859406323975455204996558636818081618405828029474416142562967110676676573627402355110157062718246131904379544557422551717169547808282371624826669108066210832070735245356941814668774936997581150735797377792736692896937919762778227519600488013113314015162270453944181658772144028577753121944513731462137205955278696002031437346760315359146056559038809621891087834014417881330383535564574747459982304468291231659338920379351785165406127945712407093849305053520240291206654741913097068934257496630082928144279497018931094683256470597036863132372966648543363576724144960411284130853119681711152983231816792143096767019297918366117892639290206214353604454690021033710833245905018638492873012213887003333555722456969113045908907068773664067340976862840897057535808750984155061779151541555319911663329553459763242211966447921319691217588765846385285905776540082006379797696832269284818986874454626732019474779388764418821017850012974000764471031626550748971029621033975450597439422941516559349710941004033182117710393766284826854770721297174182918203256437142043285454698428034166877917712511116170965130952262751489643888701718766558254362965761964758793879182025012519808112500101442053344710549966669554228443919712117227143943609909807395721720054321773795948613505643923259025327451949804066403063063202327023379106802437717829196157193049868684302519109466640135727268500591847348793723029423221995448354740332857238549130397138362582007512627777420959229492508170678905112781864959975706140339860211595720001206284078050905189683979820553136136870741918553432693231851735426555073689830029435923187785873594625576497312787262263516608003139155373749918097057862285739274528050652649518507519224865522424454136134721866734291868126266367061467462452271830007826377710186989464798062181377733314354890905484663412389501989229588653113895915250527780717716752737920311483651786324163178403131755946759417649470015894623977111304399771768046073130061315095748054429790637500554677223910689767589064920319478397911735469078247269153101438143461307626898056571355317655857311766915746302227040515600036155612379260676062303036094221130141624200602332616611124467844156686380251465771206592046930514347415161346649493883645956568160453430512407346175101513700730691515338248308281613821080207707494688144010005278727762860161319420665356865198216926318499160174809068071310748457666145666730346491751394850010727513924839824778630664896948921754164298667708605123965539538097994739638643111945818474576797668896451653069530517139816824063759424941383021383657604018384051200802357394166368473703369254233808546758338075681218972093231324811914829987696558377576323240486971859997835119434408680455232494784718756208739722971003125275374364861244683260293660038069041948616114654832143543284579784341942868648176610297040127791464216505360330065979580960142586890205405984592119762035882372127775665167087619620227826073339912905442713881208142689144380479115278173877195045844114531370247383570960556863412229696736308502548091435123160810323001434530213524773346023926088936010149198767142469322794496350153277129739521788732758763749301005712869997336650218020258333865956730558368522639885576297921949871330191721357006568038302717358024623734986364573958789030639986315032043695013807175365703389292008836889688019473211794969550693543319185276004563417807822913170277393567310128215013875064726932272409479723168058741378383510577913299418528490421220936648399084057321305111411737283950322938104951170812723901330602082642257242954658688515313628608448303931370481652629522838650774546669897092370774227497207391791155206748934018883884058898099600007972838374363784617548944539783596642752614913335633588709552047138777846094477447010945703721761969886143222956268188437666519187043015902523959738565796729229173040433723111700673698741992569319355086968731572501758542196861947710731617006279020156399380399597056661646238993735417659366391286705584317648909401456218382761295385988772602355558059280006236002046218900421102717199966511626542902552021831209150114569038528913971737656924312318800029201833253939242685373647395447789708103786368601150599271337831909109697585875265868332722224971898477374073441408918629458012761203564926080178219763445956612704601692267845022239843284719667980419654657019286461772247941512520902600660305742233083515448590771457782772648288682993085638654069837397527359545484184663425466995745136985441461484212147545693741307137620946192690919609507413136584034853490553949003539361327766541740965535894159159874681686774874065736673902034786362759684942033568024526835891647488479507028201664159841643467722343863859322045273466758469994034168836888908330941811145415947143090734666792566886133338114563078179626857089417775524206933379983961522791343052550769361214367449213309562498768045524086713029913021952021431255916015337660746379992805637971325494312658830886057638693468030560204108978055657867016543071900435479672217986847261327761958044784733352479530942698837675754375580947499779669831724869494774753324607963151232019987719601208560141702441641805691171357459122445183450447264795220206438382107926728273430039576072982461049186303532120257567595494361034888367310425182835899692660552367837106549619380840550428609703474243654093060968210725974769911431774476702889467379387424563471525477158779843418203945427620296105532561168232377504139580125967690825383686302179269871944199861251028199255801700766124773212381190755602706179532888430898094530047884325725346544087363366932453401639408738898256894200575857790090286720747545308335246970841954141325072951179964569512967754798633559410455319132585764050606187515328213717383052005008963986666567156405754519539361182378432067399360606308963355224663106857995858408441912566594035422743404955473277886871630727535418723826623024696938407097059986566780154511806466279543454831930573559647091316915929191018135567817681404564254560562427872898200678095498176238077133371532742427430137497094264828695502664892533258426660883076865454134840052263460618207912365278983732010122064202181219572778121170661307043912490971212536353279358020987131780785293600203514128177786146637768118335346004830479671117380109114099671249715298647196109315143525183645969689234566065040230822267941182048498706177270951503376728542540138035004318633854199506436978718165317916595733437674237650098746677960483681557647774282754468375885204303552081355848927113940826452145302430845446737215535709418912993191052923903355024392677528806545834523354701015037880532397935938576861623817044345306010801538676318982766140205793704410384201148289177940657752413934856639237680800844586108192508458544295566903636359995713393069961871409848490035116057789224390785117096529726603193653365583840503894690121881429714163629484991636539469124212649214575211597100817737060173600668270890447721668605969633040499717118421713553673586059480238853340501575637857859302396223983575322282173726570638289369034881653645209480757387090945803975736258903663312413767517099484899676471991446135147545252830007556972639354572120912427793705993175997545066558451414775532361261523999119431463330080824818787916440037849561869088086055233489452295588383439032688038046268901124941695465035001753635601055184337997712464172998527541285240663547088328434031234376216455832567459337181999304552782079837915991537712711209220412536145475282683172225606632044094615383934411858262329539616311958141169542160197491757191643746170028684516595377301405931219414830506722837239325718354050074031232779043357532163633804347444170402973326846439242012622926790284520676637352892628401926790902263616435704315824399662964988139758475877818139297786511960176530862237162179330300053424963212843145047136304148827094732566833569863636225137249900645731685076558863240422721889110794661152357297782547052476787161423368720990569617890423358539115605411062817643430210632851720366277839395395421047591821320282377457783167645365528016429706027217435625040532489930206552319209954160733084112162128317937855872840692156853976177872432190329884755200175574963929021179777572028181707590212276480524347125358182023443507717673138709623134720564146778114961265914887697539392115440241367801208865204134963843874712652471526719532386449567496885409433987628984549235283194543214510412236344807156272965113549964164085388003219213379316484025597902510931279629321509564474924367991062759875165402993214932002459581959151380847341627109816529550069436223073518854400116798650157838277187317427045068043200430650689118328215360337697871849497622618957708231915110493599426115262739780927169812930660811778356850664305684414708152225451742422333519548335038177010389331737007730434944295496194175526539483648993747648783736843531191473552732296382373159526407450242189319168420486002342568703314409003318813236645202139176688030958213584983106570057614114321209594200245640298406326036032207952551092082857215970693925600725589727818007934788833521846579263966449277078379774107444604320663682558781973318179658346474248431452764149598832502271907533810286447903752916242052581689883751628539348312373589204184100658006690271479376009979090716054650883508015365946644701320165840087112429257218671770138070968754584936024157809279996467414641507951304059583231545578023920419033661372688733529597599574233312790758785184219764575912922292461569226239327832276715391080052980754172692745465724245850891136454822517002428703431814706721208525801510681834062415129974963468964529778336074860641720341056342165695570779158535214128951313957117909184354484749725410359980866896575420627992285802840160145737357299387246243031408518066738884538184448964629879225782923651922551683115377278066048408905962410825152828653405309559857497198848441946924612399311685373962771902948430653134177186637217475367193381337014348576297159656766341270296158004458436607134954162420691991272199021580406531146590576468305144806317395143830905147400281174874216228189306720049451420481771223381905710819847529359082615379832209283259664656770058559958666263529533664628657944604307418960089162758161188678292366642580022887437087459427517405061176712026941697976357922107852437881505153246611865103830941464198006942101194848757493477984655506032873293545276212829189242054280537345657548427655990172910533891379705386999979166486217654065820906048115505810434969976029978078315375489892264722864049226280995882970349786405452367734052783072393092876731298070393185713922474105011445364626726647744061757675274269431397796940636036471193457595602430735504063874494464292112237185391456772428998617114779065742000466681739897690821163262635417794575473588620340363381218332680150833919718170595004045551808611238176358679814627684686955721731093131887689576687004779576029734108001495420659308666087967656269727614976086272529127168884226951168916096057750482211811336618680234358939754880627948568035661052232843598911108448948303492553446349674707118322741306349699686742156939105189355738995699715179763054483000739434903655319004089464781567588458937515089250532470718503902234152012719269772496482740547872480620297473251817306729660685422262734919793574485017865563245611060979827259673170321733295264424272162934632356178072037175137114564795969548135870285847126408313325403955614948795298200360839537205735723625732129876142374612496983102405455410282450939891383383045495139254495091396962155765138959861017379163041675117923175543731205203695382996569581599562619669545204487371841778578033970349928111348505720403891764864180994850717563472861767945369028830256611125543244115081548199523237206226348430775761001958628418024100482946166026072734330830600188142178519377146961346647026508198923319258074109854291702558719836318622987043675086569333706825082240910628302294234507265410638678760256775233827475961022054413993295264720250255846015744368949642794719654746951906773490733189630817653439554852552244225485731507166893744928197680673515682752019115435238060229886942889147677102631687120822863382520304118734255262010669512965647963111243077881026095808704072462467359125579563185210906583457860207874794577161232839448889201577117292999394243577356809107243757938101976353395146084766554303903781336493391644296710470472942051867074336156291122916307111237913969952886332162100985459754000240746331462051445109940770109708786637690813878583226530493947054332549529561748281942298813405964315109994624956222779590108351356414420646521394509460715764538003780985842525017880490212533596383149581574828000334793279407625027709515699229971535832618105036368110592218941395537356449820586050209074574564613725070362842691853092190253241336713974754990900584203599385665435945282140423650904390154544268138096899217429899327037010671233885519844684000092534132009471119423489415771243433645592115084525214677889396230119965812934116323624368784206761366587968013859559435661450615956276870928101376887006265526571442700998640396733104516068050800363855954038127969947771181963193589545386263410326715719922379947868992319982984061294609417421337370700935284166886863877710954330327796149038802495371091116105068933960700706498262216426371599325284857707201120883573964785037636829532375650065361541866747676541184852472487226211757479866889152834058571146712281379552237714017863032654422294534960257690063241323927747492047014495674461429942071219911704157625747683322708897470029442364952248889530611107117563439390400127717251405764389884062867033628511689236173235036136938631917386671984863937754295862840081378355469421674321707284516434003769477917979054936963032374678056317898164793161249399203414600537973475394488665176526608156571179888959779438057679227195297392259580401348728986083216569912217259178589146950079953281078101555376995350418008491044067550996945192936580973148902465337779037816391695114860094998554638045499538517641768023834301595280300608296955820442227974463316724444647146796875709450634133746494031301277193813255458310773058845029799071287817750922288523450093211677507535539698814087489452962618956879322402254635517085259449558864721126073739292828529020291419562988236189437147451679391009236749323369935327527011906654371251332158373037426776756841294807524854318005421990317375695838064786578588880485541314319737784239061953042923407442973479246032312326957281618026551194334205827726299552604846495817671388125629532517216767541828466172517419045442963782460881981727304581101880289460333713711174745348705743803305963317710883832107582484463781516229885048804556563819062506269361038480757626845146619366222843619722417533113656461701948601963224692319202924479737641584610993013877836188170590860574560003702545304421572872283618050242419901541777769901878175323452234616486955765700679357187658705520172456194314453470920727819038564462798872830299679443649908938883080915121864523464764444457074157580249301105094849493850743997567504404113176271152815694236274068470605906118473417308723466836936281676036988876703374994735463268976803015756947415776735408913309201105062596901945403483601339858899967506369000313300129324003903412624811832279444629938715314114838242373608546559137238403347342468625165911434146578526933403183937637723637534333536507920996513521396672627237754741890625547048786816286741886946726663884280586745156727237620314741747594479905325933387572433678171950412789171092165880785935864544795076801365180150368592467778313093236342946128265519232660104101294941872742428453995595916247493452401774784851719534772737455077939029311259834259974611397206247772589718572073929663109244664073292289878060667585300562640462407904956070717567491517214641446614136245390049746513303797315535045037820488118362703158101814455897602492309016946047677294532543969225923777202512013321323869421767301276790987811783082257831861074309435254429102131897293358254564161164429467219686933450851516950654362609277701702339044686319617668817081550302400021149571004918257005343026194903489183000347170711348153577078784994898025467554338605260313944756899080779471422077726426956044183726947410813154516416058756942481336039989699264543030202055463814447496208563297013128130140668625978708626452439038727579485400786979768603681250767987633627109716171052737335753762511359102771430673281453998783202203205248756043352197835562617062956686463381568295566074995796610756375863032111517739945835802842585310928532704692492425864287901912533100696704494794773400975340672513331002504279852078113109502715281256466638030876120431145615004073033300062294547224596363510678866044684845671704207990381567252463104326440313865487082737369688220222507962928371097950644256732624080282171536172926142652220407406744469220257326724728819307529881518744116714208811484682733447267171784146707487343740509988696321395419380784707765788745166284919551152028698572097354080051915837841126939056561013999067035829502306797248790029289328962814466165710728213037668019080143259805272105406336951576731989944203839692136146728272408164057878955350760891091606644432937980985345974222435572094407230090047175260869974025028217685353494214817806057284232165241712609429496278322107390254724749631221994817561340547295639923979387302792006734946513073951037769592960226367263649028134091575458666486560257508174204939624847327844856276027213737252548747553524485100125430580564536305100117850239783716139355676519083895566516983553501020675075223385493217759332615831253956835834204761042584053923082201462014125842413007025983193494485830302444750618564681946661079381155492677321169469654347735399830052039821944101910328835273613897585992699163951406439187474712667150590617104780965939549143190903519304938017884064542456060893579670691771200167946309986314014427918987763114971455212445606337048042670814889384138865357384999325973927617978364418391940520218886467838085528289846992640780663427540317176761869089909503416157016701668068237698386174925529275066648870313449385370826446841828566363846057131882254038758782166141660712213520334354503814887108097767661013406887512446318842790459635937773028291207854168218255500164638672616563533861366551875054935757399413364004001587199506120747473039734301459024964018223200910314766979399834830274984736470826741312212338191170304072281643901324695004280583702688730718390939965776589449929949025324037895527745922079242341777268493743557439121513496148983461408993132956141632359740440249578806696540894275270646671971919321638704117412805464224550209723942472329895288896847061427127767310999271114178821158719175810129131852705698706848639122214066669361626579305738882078012036427217750982184104577343384702607992801916215203593077276414591012921020644553498549897613518617452542462209559001313921014795756328902632213693464348387504030142649057018817095586118433410949137335047802317304653343686781286753480540415323747529388791986767205801659200680867461098158998123751200010023234138781171965081174288222030955196441490290332880985310404539441205309906915576204687604354698680457030695081741027252265693526313410989800987133539584767117715258827712669031074035358310581278214490759579031634259952997713110356111513909896872325081591909418179847503716360912485702943015162017347087845024390442589404466201026029695817854933250459747616229296917684134701581933575037457122070339624755226201373792387737525898792469611413694718934852069351733056777872084139218156294251348215491954457443542652024804251691837843566063700453937446442062140062678822336811369559572456248071097984862682678833487201190398682779307162723716969705116810113193575753456077520870026950650286504044777218083436161934974954938248996839194354947332410081707483088200386118537048745782932825323201011736584919490133602576824097692786245309024783985179342047171211332430874720762212110226549493455797986671680120970894576062238860755693767575832333538161577264474395229652091951547355356817942240498872275146974457298927541318758483641045932383726415691347850720246864036383661962987035719760204147036816446981965503843621112141258778590369946921665306564397943514293413435809652359067978368936981349386513339827819623698867242148143370934899771121263041011377264670703394959127385529991845734639844198920123596247116707529163177068696064478344820886664214389409281115224818412308504440634587228234685453546959165411669564513752104060732746656359351381097591503948085066628111773066549589129390832407529447940133615829642852460263596834585502744354011015525600373878899519442716867558580192524495766289696144455104528295179845767375664147886276511626201442528496772334548652626689070407740222877501045959267234556476973031413279757477124639400470090593481878148197359851972275424740032400602732155263440272246573441635105673725023016896526729454621402368119483324996679463527902272969023415332671918911474713905609277736545270090792003584927069092127230783656707532939462833650098965750894834849144759190286032867544479485476956001092776724292243800956454910398392221165321289310112010807024288433085712379577538765520720021379646129305391265856818813991660352580156806630486649036417211970416055872842001125723573440520263413268488167135149350314506636727676728863072132404490445380633735357577591591410625616584137644702789444464534477833724665747567250380086768790680421711219290526977507101092678665506285949481591415167179747166085472620324379728857654473653673089658612947722408583977371237211439617291225256107138391421739577825433183372812917443993812128814966252492150610907176588647167530118890525468153863066090776808354920697081447093799327978816086666988425509537088822968170095766806121740512609331172585057102575512152038966168038643078663487070133897971806867260893407809605788522637275750458093560500019172356727721036495983147454994511390504980837057577752241651022525686816484653911148835723649132096842341481792091293916502803885564221854283890964281423883895467008841280014258926961430772907215176934016092693096663986919845771304771915883627905104733767775601277959409177223703666980606734378514619248242679284124928766719130734855878563930774961502256157274619133863050937002678583867997190454861400455715445708799441496234880097362218383502233574743954931928242819845972197920601869215720894870761942666773846164341047792601268057616700286077032246424771107754044770258030085958120094907353550969058431500487669729641649650875846068963891111735568735027657720568092728021344822322459687155557748143749176091345115639012402470701751483980840717027422534704574507274613978948379803427642071955392398088256677753373625222473882310407680968248516333014980678455748942813766815083789731850296807595650136197227234882495265773619573661407726632588984453813982311990969331267612352977076972457690928289505556222450521350881161276870976550607116223347669540352129401532802933372897444860837478546237440817049051284740716273260501745127677282275005486891194759886302678879416905719158767998253086806732642981197326305262076681991046250063096448763309969320213706439856710701295792456076744559776612224403592766036315078919341059353775189404355801398691863852354465245080355282923384997888971652873645542723740119579057173811126054582913762617254768328083010310914165665564376402892595795211010646818058758023601174743811837792367711255104175951617812203829407970253324515195960549265185155391018839399518789618988661741359004969220752166227268699942868002395570018985568566668766798529686560540823837608709455100190594500905486138310968432748298476971003600943537375477434533859363601258094613751478271423741855652067837069915265954175516607088339111643779608164736029571344176167591890849357074872503034779301329840859173613408123506947047089215304920043964314982947162925363206356333271118675093580968658341442193977081931380365643665639553253059770785270848827908739505559337365544608622603569879614058847898195598518389794382883142114814505481995898618485465334718973870097758721237538042864133436228239690627442770816523448123603771460390857730563803161627694118344039644875986465419332900756693649525556216058223208604741810758515279347418986270524694137408942278680106782644201406811357438599680929066711598486605011108441397478235984418314662735543493686129669254808223932329018680333550495734124658393474692249041336562176707445808236813371465597522776659414487139697540704588770519625584678179570668517747937425188316984998729117161987903747631524357708321392292866947994503540669484126787746258206059387938437360000095645152546666887913486236309538972558614104768055349155965076636431888195702333133417966822433679062329162766229597348615056989346422125755440565926237146863271099670714565595066454600563352764739664280687113910807730748418818901644454920242862940832386929610447627409413720205847952234602634128826141515601709079083419129022656980868898201781361353928787648832822647935599784972058437362261751795765510239251049694988177074600002596315700243772112918046250017338761995100037210787439408244080453109110689857127697426361716264866776480181998419470942454287860496894639879532642619720414714183855416466933188204679924037071561713998647713579900792429319395700854893211081126120174794722195641228885564427886378970523264422721258873292518414905074227477245718467149473432854101468889719402238779445347087947657198387320566629145510030745869598764878551966644528722839296418437272715957899228332279316309670193472496902145627769352167776501599142799894759115295202554734179899884324774403402387631463163635146504998922856991401730271465634370863831542959363424311413723445950946518903347081498027860064220718213336460035861039881895979224069783785704329615280857682653747096211831711052403184768196560501613386822855477239323852823746676909450540667170255193094649522748547023286658705444107718941863551607151306996010610230323961630116570869578496550644518858801967533993306128587079103599960320878501993402363048102290064748887599099313794057543799092889370896878053260324638548671261735321960224193935653752163087936021039889364158713098424371888080123944848960950659982432936831785758761052593838181379796543601489956285796109964077831055967986229613006893931266563088430495919877783822462249257394571407482432417802624143134376230393977718245893513466085478874770113262014294107655642670935721436803806019210914554747240970703523744873644892200258921442286359058299162877266414391149667540585227267809724631817412629612465508247196164644878914201833245617248093292284189721317580719365272365789394964874166783754005343988494434451984756972403049459931949995765766325417160117839033661133598660443055369135743750111125145982277998997811274755579829882458469690043243304180234161166826416898109846505906498665242344552734996441430812582305642255702026402559783961766332988795051009505189099739016516361770734765276520926353031903952441560147368319956018420836006993895536381779886931511195151338868600962911335957334359243189865086095856302834755076521963775401789034041853983284303649846741180541371293598633388843198103084514479234710254340190946641036364432319449091764043583118512142778214544044971080726709766180593636818254380182979739190897887202566977947848604287203894357839566301674574540686380160164455455916743252910071793873299073689837364402763199539771667884212426782553861110309888834221737260194940585256249794104583467819511261181239139714536650793246968785155936816081264411423599167717470845263680791070416810748888259754098577447276093963689986773944203778598525214268663123699507837012658861870248595891346715962969525189645189810878402508555919718516501563288037732780995569608960088277777590195673873585977297439950184570468004988302044473804874278357065997402431453846933296775537790350002672670848442496993623206986050228882745809965791911227120468000947124297802497030913340367119565805549011936499413112272473657603635819697360950428171222831502520591879169407081051807545993038639102688438261337426843328479097486128514739674242264950115570457837749906442747251271732735059058407680174920729160864272236953947452137052323553864308388647348989278311681032642322541156082715899062720738786503671704721027573806705641109090078795908730128714871019189587918600185401069678969052875581509231967366633327482880033945250573627407384475727170385759638918026934988862963902921423229902190640593633306440347788102198626109297992360637838410991157583764354524171741002034081800518417855704433974178254965289191414174686516844088022335992295680372658969393142771278004896144026457263074245492252193274102796086350050036124198367321686516636459069926141105254314059179526805538600372816985684377763043758230105565166040511818790710839204648842803671933285215064532705370505992282563246167410897199313614385624891856300550505973541906850865411904608056319013058039140702451270349559672462315661696904569559619029699275535980398740137483663842935602254556578333020223342479210557241482865075739665787007415621415545596823931874032446517558297855938532413183744645781292235550504925402754685160649688892895752707131153300723229920784535070507692070894715081171357390936227963082753553586671860401580916560414258128033381403398233053685413344492665989074669169971444888844354748068443188105809272484495188937237662694570958933631453575881097986477467337408448079377216163984969210857679961499334053673870674502677740402208659172070550301678949256768821833892198428197957827840551707235381130808235178673630069672465106995193917528850826228034277127110116143219250682445725334948169571584429956807951583427432336332684819591838190239215777649423230826250327289608423072503435776647576614102324678126059655883250200735870691911716842098637421046465280253579044389900184856789627982702793237468080503423972511106373046559558954358498357130492747038218389896899621754366005614959960839145280584987621448084491202975663363362973660789161621611681034196013042220734946488864145090626461491768287316050086420752085449496021133191777812525071789538663692764011856163282820037265863698151947037692967222329191808327356935942617691399492186025816955908497672274856649823011254915215404105973135428167697021412630148639367660105480929570101359194837800458147872675291962375550850253747907446895554205053789952441334324415107288322532442604678159121975541114014487052955590887889460019471474284474314944869449242677302014252826904889159760651243315066902791887472949243798217388937132064773792065344963979545603068589943103713890413151397375107804171879125093457150590806129088782482832482702765900609198085834266186121314170469397345047093850774658863387484915468020017149197826017561478919301378459577465639017213241276967385849806713664916701083036404683397176379318260970207122728594392288562940978378146867998374397097325995659820959184897061931272950226520862472475750366297915024958078416684339403270267735407216556652526867493438361420951425487970075157966674546177029277818647043648076516870467270151252617585477818174685113945260385402990144682665071021463953209315411991672648698665476728702928736155161099453089159394317854853003707712431306131656784639890164888536762366023006864193026881204742475505485904739072169056913158712978545489090856096011214703345825009778768926789320458464700817402765600590823549363025498368207535117698251312783229397656499564752464560962724119595078783683606731345622509777471609614911282648739485462025573646120560573029811674306889134766858128596208490220431500805412693596292242527323228146374045573525534830821461184781680640957865936377857025895007012218510390295509384218483247779341922419413178299220173345504007321915623775704844660326715725492593343044299504907182422957794021663468834011298976106522942062922948284166548350401294629878398415738796468163500438863557809505283417943097485816637508408188163711346800444941936528656580584734462635155641077743658146979089074021005118508321173534780088660977152305476179781361902419844439532080876938977904696642123677706389959095492476263198754485208522129922024518704031701789458774035178197371308740769868932472453752895775022238070098580613769400894838438435819368661151838524987014536711935592211539634317281709477999363496854364998696581884117199043449368637261362286803706327954510875576192553613779013293376504464269662122675696796803718885795743349973216180910465944276085224081187440227286253838816037763087185253585492895147140380513720657308425145239432867582451844196421333163129909900662745959851848912677341343118255930434563880265998974714292409778085593966267728210076217374156438351947582247296753395461848758814657138574436905586974583026011839709880582318438634717961919783621232911018557726369517750343844998183702618817040608319145079854562864276382765814011685863857858281097569515158576274276656728989076740126635415944306232646993937831954098288530393748900432008945459827938434154599148605720384753432165363655729320850786160716836491121951096088356758204293830293726878956500803545977802683179640230570253139767623952507123022415617397351080866290625548748874931491996052638942109170127222524955713119153090194756502516392364326856860228343603272862998517673503650418101360519953911132033616263353369022575236403440146590593838260200174831058129954531827943875629871967432894466844653768198141450378573701693693098319195040873772198748814325178086252861016418747449391720158459540237210649808094071236663210787363814959900807470352297907801209991803614673552354478690623086824265472207814559733782852366390885592306222123215139951590430916108840614370890575124398320038010767199114360924300992949479617435122656024533491418248487401668880743131123630877788464654936654992931861323833942592401561872078534028254472413185756590723013853104169019851679185219617524330881920511483962883146298250326191882723941446695016437088565525457726932960791486041891037500360218204148526578280412638527020877314015064121407425197448935184736155281906501784506288175471170613565979812099611913978380436540611076353180346727808004892266828744762840193186757437697906265471715912242942240973163512875779100148578816527834923157613630478795563564477155586690846601671856893196284633739287189251428268550363832575511013444803603484070508561250203466625302240364990849040202519257472701951835215220520999938657225570708290073373082320050976960179690748437180350683867198879230645863875240572909430573348264930581793289102673666105971293821692167677588253559604978738886632901240770153583558624157200877515629512897049099913170690807975513253116226959292644900974610220433698903384932640396612329420068312301327159780397452655867000020885779250940413803538398931666434300606299894083895480339187176282671374475652778631748309560452102222432411010969220680775467964519688258498460575305210360238908846389042372707618011635620099950681903066523147257113027327173366394327052669197695382634847130987281648178085117110794785414851052983385114820185885012477014066968092017536209334989272054033192568269951031732861186752501400181033111948956303040713274415291114124504795970974632059483640520991447258189020093101561973053727996281763109804397391325110679261187912435640500425366678219000950602013767025098279127787017797188968057294307062159461447638096221137917421180502379367489657943418699267041280920650007891444477146670573489798954190491194456230470584415447630642511978954206369645248293195823813784958524074848851405112636779194515513819559477416406206701919263651241134375385565006298984436588853211382694734119675372759140819031762807656147918427188451008376660866925204449783109508443016022035158528566052692448224554196471768180899899096588192140375504015565159544894515815658247568794053991830371698606182625351486319441349341241253330897490071144062245629667106353120302225161670587727017012182304330730370375194625065322625952308770649139921115539367443513845639681148542630155370761424982817982472736919501298980003253393388529740774354034500653955666941968775807863812702730770142119296534372756881295570022318586889924758877909942963900545380188901933907427443467856326324497495377852394022581404531477157843690205405612685596493910032059420892406069627785814790773551949685456762450673092365226611587673211754863690447718366796416539680792504225285982357108600741881003688427653991535493392306376841308220453816909384679128668680453297889403740701515746201290866544332049956532445430209315028870701452771368638649269828869319081956731420884803086742479871858146711263101769700995915316198277046998717053970162922650462183247298395597229012253679839883409104828278584259009597067908258481642164149742595947154309937632881428917466672012782013303287248944529344911492796687146481623909648809234478570617810213006364288701656569447112582785966417440371942383712215152470100087068938532381189233386196770884939990836824664388979336563260016192023658677816923957217281405416115231491789050941420905182191819183269413892524511276339369376288220883332756317670084130060928253923815764378080176020319693358848655925494242490955767703997094426613285880878908258350117679068811924702197739853220110181756424163557917868483111437836125438039404318087596198442373937013883586724815425401006423376997641912687972461340247100011525411301699162541190824306026551643373354017863423612552038782417844148110028969060780485166940581019176673607921095259616442094932970435949541180644884231888854890838528207210509205353329966015129222914616319132615520994161725635099663325221792587737672898053167912533762957043433076516972299864980287448560861627859540433635492467807119230986554497624064541226621305801715758268861915178296197509976355419806360647791716379631072196127056031032394546826274839824066592234574315620394984908387837678191947385196188815633788862062803685577320898268812639811160753386180782831729064379309616796318880268884363643996495562258780048159017253517517971412947861542608062321746345749096573215502170839602827520470677236478079099920981756182882985285734008314113761871857806991217086440576622405979294592371861825046183487225211925468952116032037013011872038174097254400611669608728679335921320095835188426670014681330440979253427079855729224476603342174333791908453312902946354782131016357867344202266632197522913418262435623947328855753722419396136234580282575943762411392598124144046887475279951301738681508919419287871827743303459651072330250381662899658496246639620937196040226312468112626304073328172365245006045168180293289989260675100745258279025168302973683538123595196166514107936116271936030163205452446641627814566479227185200066952754662736038797209775977752113318935462973670091773291871810789819557631108653798731392658815131432658785468438259949696316263933739136904105394583305223817762349308302493422860250546808484471738376287719286366421290461191312009324236224705367172686031084042340440219212281901752045825789697698121376428258460208608937628082313783030542822062494878567940495891699985481644413861940289820358001864875061414945868555683162066669958567095827257606156315971582558619712841453879419807396506691852430284680551747178339899359481605344496788832186609586401459686360411894661097581831852446787253766852763987628283156808272289269580536567814936141364181007602705582746557186066857267686699067847974536846394410441912214857192379571523948581771605746480253491643265739153449079260414803968332110328032873474125146679211337884170276067809261907337844886615374707710915649332887040884524536646903594979905992694110952837812990333254131074076775708079400686820624914524089050198653535679252640006581638107414032023700453231442338222801283391450628974061493341754712977001605470861857637144476496293586064321797148320491089848123492874989569625583464410642891440002446121367925380223627200045410964758553320278745428514915960506721074247611193130000964189714500252119053906485534044575331359959440238499868846287743036144576226125289457729727179413119710254445374757157698841458256541093406651573585451810259122044298817382865924448443157885559700081636662354640351621790890543700422167374922854385368352744042959264140986940618621810905683150356389579239268543230893512815812280449222989271813142900697715078503660606360831908693187487327545627057109417701673643680083621922609828558391095326504950189536581502987378410354169377269546322203716873920192489356769115106466878492109504674536329101880053748294890825124535488408266110009109679325946139043089713403311172735926773981662152760720020317309920557446887962814290178993871683827090402194960420506937794795209008936325615050218646591135977904411063519979581263933798090660105291322313494034406010422568969395870739060730261149162440298256156659503760474572564879754263118384626079301889454633238481243296620549117456872008764386816547350533318433224249904932014685466394514025475782795987299043396326301589123416210223422084658604421479031796789400937547813646066248532537577052483230589629427565107411784371435531981733570472673115070861089265462217200988900717266727859635570115971057269592543949424585463475771960650653115096157248600871905950129393648383838422075330512816450225004291599453090163616783214195534660632628962614474903299686834186456944842802367236133495190993386750401188143155446648405262272966695251008508890295913589150937986825443946589830095270379561271453385439751871760034077295894304037259027612183458394665590835370781671805478061093859027687274264364016382620009082512855970079377843511852550327516320920966467864574157776153290648212108299538659191890958535885243215800999766076591118912266862443630949703660680889131756686568163720786079359864414986335809469268223240227914854084348361292563121103142673682069249896500719395277718073684971996913874515049346222447072562724825689839874622055027451214904131836587944645725604011369909305504335851552345688262062468546232896787892584053983492026086036964596282846126456250521543096118104758098883838400677383483802504985851206279237642369268140656288567585494520860882399613794263852090318169386056249096543015461113298918627888707204047615330366435883501673547748353988481615806776770699186265795244607527438396575221639438985471389619536378688948035228552386889490053677389698886756773985635044052589743393403698043070602153479232394064778557501470033877801402635867478773612227079769451205213009836172440158044144681697558839442844825459204512610585480392088940888400522554195577104700759597268897923902372320655832804299350442281753812077188367199313176599598441400114338225482916099118438217636985680079419030883022508116365598498010451524965946131759862268754534941789892520716915888275541747677593524529365710088552130037159124677269799498199279207797622563373689299620670871428259733707904912567937762240103240123765097507019652301284005403543333214556606251949036265345970600456452722794804492273198118506577164118773125690904435737784143026746409135810350607652353827058788223755724973919968388685028403534872465501252250345564139222158635823598028450202642632603761486637034972309098259211230846196465601810064427454806770354184990836850933185591782248091984892330520321540249504266226960424139804664502907203093721471461313766145529477331491966583425427005641735487036282296003798521953471836865238894941633643275238672791628985182603440995585809097843745168503278188288509573061099603011676539513089606290049827385129025269164458119094474573745471289525958563957921081665818963122270459598409650467723777349385968078545455028366990841593490020844550297576717456680957612800564286562468132598752773848147405301488476815751790049882523705754644137883423719478902812273445947380782162800283537345198379558633007317756942778107798835649464817941398711390150450093848828701161893869069957632812479331286791468080534968955480467966406966429292966782382196053394840889121195602075879544203777705914714004018185468201798513880624669543555902747806751493164671661499443109217496495293787892502165861951106583858759269984333470016970978709508304497468576795321442005305600835257008311260765962653919548832394261822507300961342806291219812201967239606265715777016028518992462959504520592897144372084173325350263847028765855298531656992038078742409887793272768586367769752573080018067712160149760667175711064359671829841998099967149840787254925144403098840013990296131417083115379604687455672916620083372016207500863289855138200835416788102530091219673659428658580500514829168261610499083947859466308389278409053059568051441630222251815265417234749571781874707014074743861268916466516516625807295786578242099678228632404275036919238463053027733366663117158152356989394697556037972554174129962935405957710198585708273118539029341873889525630745729029075699176936944505237423875010763124145598999763403203219652201448019606357341556306785828585873948689352665382325449986339609848228314672842606232176909116086870810620433530216145258367219487742454652038152296774164230428413359598987303720657142864153192382181279335185203972037678664855634804913543114529853454588312855315240088423767701612117291609678296722667932524857573877558688566757176036179566016730093957854021526302982336712475547661419244906170103979045259888282068185606743009884832661758059921111821004684456679389070429383562271955300172110471260500643044673045863808357883266976182251615523317330303685817979993005021895583865179264490331899713706320009881507515318028908323403345082488914800615620634358960729930030992125875975628962139976888423620567037566074855161005991162925927584400245131315189663667345993380816016832231897206607098814553940897556960134638228034055249637372487377853811153802138280326762024604875433665968677270744907965128566912343059790477297786512131563945131630461922432132583591999760300236103246334039094397570789828400080417825061403301722264695847093741539685953247325955331320382837452994106007456302532638170008549305643630778459528967691595186187106227670961214019350188961288066532554182736444345034424998398440659459766044952158913360552305168469899044159797965570936374534334778064794561137297918418103649001598624394519079044858746882316637996722456330191115048803896473652818219420127799382956770575050961716102010094620782948755481616983417989008992849623416514721529919749304076642599326358253487934576747483549443670823375119545415855401526251714695193830931045139608057022424784003487487862008547593676034698905455687109742500806955234342745849944624446374101642736557191093473175191655714008200973605993081097790979661126349183920757432099145348104882269633309491180308284484920053110300489138430006205446012411316636187927332280348661240957700981641635183244571795981359212161814910537363047971145368097156247800191750472405097694265510079674038491738928926900582892165014976170035492666036130532336079207554285267147356304941715101393171965827624803909308225737411545618909580686728101597916454218113628965920264669504004409103248673568685170178915413280926650637213051813269525984459248071538496974373947137435427561719368803415315073433463592619201432495600598072896743087031290637504720134221522225350382592841158654400335381984549699501450317062692072748482608448036488133797825079726776350248766990814503687491638155964229422154635165205830577611203603441815551989589228546322123192813872124848450018250169477933874869175559979799104802760809936452951393803407124773660568305003671499446652607424168110586811030778533953164888914853028149631348724935691426346556565068679313351049419173493473284489649436339430598646318272588293322701560683661147190893343094691271908281261423585142236939868151894483797409575640987469819355166309021090420276268297190911767351194614923626129886680209918937484049299737061961134795535791105048022824781233706979609740244554120673446232249141548192763017769177257769908255363160586992792082157799061759592224229872024291266290279732082757051629169250803162608656381693151613902758350672728324086248058124925295945697509595106373924312906660811497994495911327935773113181922152959389304876956285828566246285683983502601127845787908006569733025345384044170288250625180930936945897823058005413275701839419321022072090322996500487745578299419755701350440461027118495352149810613984548042395158280704977369567385083125890299829466118454277783707086101966735148064685271370419175152580554535534170831876488219983778206437907665218338716153912974850079735498389233891802601127215544783419987156158724668333183553457334473336695911937681430599110709361621763400392424883498315404365347139129820292675293514573576760294284959697821229555570020720418529990014301768506197450578275582694056118775726357993198512783714495920973423080219643946393519539098547003805910952224881559363102869722462322347316929622489837894162528742984118746377152242013042573037835873792916002915033735594883618801654084589561829681210626584740595277037518343036893772296285260392495359769566703319475945301986671040711021552663641254897438239769491338670036688026473541281736923788792455525419989225037137016174746517211203129735319097409453751876466777569521424188446494637668491661110252626995794893906870889000707945023043284316874023556781116363831413061805557813566046122119960741262223515081666718549982044310278027762027727620588239304616955078906765939538702547139639625311559612097897843571772877189527215131372952222874504417090050546812162548780551036096963966109655003300228177865452597238362083757235237838527878486576883468833329324451242324943527966280673200538036483486985606161804086545047458796780786228042907902254270700104918193174837847228649127974351372468223955883512010271122171734887678112092377244945722564947422867297748957413254894684303936769928422263696195396781623462819770547580542014678073131612968361002301351124969725549725994612172386856610903104881633937770134668316130683764379899456462783669264329395158405287753389067287259580304655449623015137513159698853950251758860372611748322038709600699468136365190699805995104734673139017959294931457088684384681358167170390284962010323292335799080122026137630272685690033415501135147791589663947933301957390817508357283903720796431713090264145618121852576988923898536362478129116948965033372514781571387867745967107556796261357311788673737179068325885161071720351308840417822329995815041114627156602016627722645179918622263407706477325083685238522770412220133244429132866120613904077157630170820320658343607918598542842663890627914369515201005450499289456408835167466630166575923674011557679997379881078276244431893277365818863314858936948131429127323168188721649276016684973234084324064784764133718306405128946809048126394821442748976771972230168632487606197919015734994062609693515237489530752225440692632009383744454805523947395388741737562526614776980201537074543421479235622437187554219769543540536051819770222547868791022347305204072667066724219607634503450115569593322430243960752861882821593359182151703943105424190352310957701857934887531556223131096458559347448482050216368171929062036547494199161523507606147065837549296242334690549703220280907721900370869657134810799335737850650570331293747168188292386615641280261080205412590309380713054943239874205615127077287387832100886338954900480039303005602528905232548084917058196716778381670690616745695953996241737122722043078977731268158216218037842670604882889881107057231776701420394990163270869323886831865744205274084053374620193217559127791039234866555509140243166262844401350496190637084361258134302263623208808076953367225343063692035848597622234207279457691723301446246418055970884927858938397130398838299402994491158280863921419223665319790679994960912184433668626298400186945109577935007822547794251478004074224560820111011226823472946319706310303041920428529642175855545625924571681648619648747823312519614870672631365767164037923138376830144432132826359187721108047973425231064967084990455904310558342537652773845803724477703858222302395138477170100029959750014075701598902437048030774477490767021562350470575629161844430915820449546499557560468725709865441623812085204364222212011002300260956649991626815864393394033715307298997327050052578316316736118012552534638294497775794524075606847343543167328694159747338259878363654774695196873455261240164580538669579907997806963626562980415619864750150718178695537765933470073918382535150027114430572446549012950411775366015714204302155498636415485954489726789931290071924878962790193506619681762462301112915431673423458831298324817223672259067216461065013428515103868602564219004837310680024657490217337465142262394326273683095107396617263575340676810209815259827172256981698491811087893812843345902419755129583771743011575376270849714574335291031948080293074308187709432416586065863270102950685562378320221200838751257495847828809676522471312462384965774254416019039735791665788079854225918894910411558165783785532976219338043593034827798718599143358407555332238190834813824203849488253389556716346489597758407639194073931143451782358030538994047384348430303448844530212578173324096300847447724167025778766277255026243289848125091507931449269085315751599103009201041119536386753104950312324759336978108141133016354377100230693080939061633878718838843147846056926697525645050701545311541667923613194793084390090179219142860365901839342290873135932595412660957230828731925107274176186771175736148177908113237058880001810031051284253748012811440333310010066775693613683385510971926286881466168901386478242879004723010008656576086022564308647432778433988046275864690254648600255979234977260646740652503471361533334289045444454742362168226394557865859148781842070274416271772340228291940038834624265036244301196612756490097029350765850016378959859773811272503258699915828274665790127667306626518193980009074025853371426366798975320544843004812969262073689524574394580621521962686759587253184016514281031262287416360965906758368403342521004940061615328140682231711336668432071567348533032294109766161358158874456409921736786279648856732784271022089193552766945819037041034780798906237837765100285891275817417058247035828856907699343182045785643635286440295994381499918676122589687234856937035746713929905061827338809468025810707819019501939637940802657089992127950609964351190023785530268998285780647763405822246355373035648560445389750094292481484407312175551159169230868757482863590638872599571022548300968050039848523332991191886511456592334856503127453718344026197551826638371809649736725960923734772391855295954760851313278853616573507770675872739420037340738416919147408167043826767943187316307309629604316094447943251783639556793050508548791025804067622692188196156979834316625013423991771041007998802029349906988339727777046150113919870776148346980660818600696620931429873581120615845440364952674300919432825296988629362542363972433774291486139547089359273304518571484675124985305416667266281231796571009704875102736419107998659145721165831037611941319666667207313987814763748298342602499114793216415119906217950591465133436990689302103254543252297910398603749677612602006910575311624644635280015410863688064239891929498946068800494771206690332281902894931885306389671897379648460335697202925955494302402404468847904873847385394397059931522493702192131850016820357591739024844277775107894962855497900429066143830002146554731984698724667817320906982268515746585853878914186238014651391381552483955367557262387926466731649762837121676324947287104205828055210563533161555082534869046131593215740010078515723386286812706346773448408188488974785371860302501613852074778094158074327619604806862768824485926592679440572686165823053527181653341628229116374306068530044393023252468665589730348191153392317781695028065789188686414679377852381401780324396058559290936163406304679393337701397102509005159436476480768295287736347715762320637311370478946505628288428293169245330842028964551900511824612910360494308631822342638199116152725091762010363423966929074489578197949124162938256853658889781356009579535688295992839129420733180519176820703503818461170224741845501311649383186168215934727704605440231753447412100672564725120304956354136246718694289357928795107312090310089955934955445283755030200132734507937001908462552380469591001019646772499101587377155805188698718252662374522563484001374452473623869825886779091119302460477399172275731282918315486192568919632357705753274004210185904731675450824552089839260392888525324872107786891988907428608319727148380729168855600050917630257342272614200474233039908376080947790792607865137991061140141251648591327475602828937488852955915843158563986840301337961279795115701460367743479215335407323805806320579242392514217599555041210602577266550642816065637551517490675649030139870176401721168920976116558398860140330848118034909848236850285691229960453332067918545306068058763923615702975904869888199805831889009493639334151429913535723381395689762463820766622791276599403509997794791267430621999296177109979270096025728475596735908564950041411012283235619766693507896675971787248650861952566331117305137638988589355684504689608677613193749721981696601747006906280868790718536377420045103898572755355799223842632226302585784510537678997572375262518226131968363653790440017189676589628954553050702851820746900913157121955485690747996927256928195584811455906765337832958405099308777029474371930746624195811716220561068506767300953511689023386439267596995361358356149679438138152648438521139606012725849831451580063224419323506622120693770626320683457906915800631083036899901427918542832351134128394655992740592395759271804449158479230134569922158726076615845604619533957698931200912947835021402021843749026960381399836763023751349738418417164960311086851360843241713447102934895664436746680681296600051666374380257564713574466912451643697866516002566743599691852529759090165225913969017793341747057164270590420783286915273742507252286556310604702373234959480675443837917547374421844257206528677464133345828097438842942989477652291181766134059356030781332718447514530483456306944727096244816469236060568247158545045493496103689305814203869234627159205527248287575129747596816463722788660234486563738646708416931889524720381637904980402327940550597982593513699571124780817676349528067002209218586940387852085715796462315163090897924194952761013027567074590732201739666112771022979456614891680473664475048135642583499662183838603679809621892536189920636350574769889810103267080292495114481313979933397130729225168996240082936384657661745975584831897058538099447082902045670504296495808688071773911551055944128252966915420913837000035703721751050398088896827962322639175148742336242831237665208745862371466107658298890235849572712921385621949045829119231508316948803554008563172521904355987518552979756788836949254222703976472757505962100122524939724398936375324179533233837049748937430428285754356572281580344781094290149127113410389345884599360853512521330731862962589099808362153175713242747645267622165129338814087723235614267249073293136110391274277327156174344335058730558129946123130167540418230482763706636054289601767288643150474941570840698436219234821550139019441831717134847949900997930260904948308647252712861945893286219296009330892241246404824835920996481074158739496632750538988592823131585450006209422946695468902464213618205769414116698932397735466181206600309626228666124846401490642971841866059022999116518866834473538760546766560140533002630064041465051339565507314651049600887099433079554803314366130726620087813047755002095344072521206811348074612964225033595266041305578681919502754584335885195336476352399582051354812924815980270288992787567808579946592888456359340580197284131968948970522293926526852336625692975241505847197591997694804998083342900028711244391190089639554700034252221232015314768496995800805404659295784551738248301239959600847069699213206968513524461684912345847407825838730504428838959737233856716961964277471886954708420299804624867037634747195131197756126648187883116107636170435353989110194586829373687766657152131459107206230244912940622033473526544819895430475871430283806720397738725225356423596273843790281465946684795013100020311229256012039254927601068449855335371410511556384645419175447857550715763484549811742760461916997838019014580556435468424815583228764994606313896276141452220140188873270838916213922671015501518518891118991517081117693032739450179182297656684981230073027165367639309979912907338572619431025882312987284477662354828320352985217154693465839496753274362675190947535484610570702752855926175705246454789049809010934259635747011374274407912636021769815030395149369462758157578037836225229485369110243224896446771927372995403142520304622199653677076664932869950450035980281475545005805389671507939510198648484565449094552468006253807715471482816866229225056469989937387939514114723955542798342873667442387653096181592857998422111334653584611226389468567288673994078017007030373550823749358025557502529060673946537124983190008178059668880325810481662103201280691061342559123877528837474401858029012118106815341785440065337699690911326144275503316075462107528427961231227691174829203935628827004600854400640241527650495399862969555500515173957739162364185267258838151477683392655822217720478439639610707787200864818767624622231765799249492825188539108820886681847585930482495342455234791899008909221765539277208400131144386506467952343226104159338531689961400591643214311789904329549640058116120491143347731372210556786772400705681304861618773254387726451174438668819978721107424058178715827948533450956976540337715123209194967798431423944923598463224865000281606379167291764430495647681094896929841630335848853073505769770756900340449409504518727574478159544421999139044732773685482679775950069922688704174936840628444287774549689162873781224935267018608893427162966357660534288189390971431482903708972341136163487336026501678701522528277967094612530230059768893603539349086110044642016003186427716023405448760133853361967008605308780242478329097683586718424801794698730405187453794427805003850601908258983776637446331807319343052727858067182691439560798121103232926390219033297984418690796102643710777117586881857754893019419175869517139148119956893097082707550451973676041484767480758663484387537999935126156443498386285579272083145902412669483677772993939056003601981255409445152596858630696368771803933962220205190996085874387527778067674927684502033789555448527837319625949681473010202267358394733299922552269939625785280036222460370502989240842105893246623204939977566945658815817391770806747979032121264799434024835625199374992559673974863646994368986525070767109790434856984190857264453607133478694206503592171408909545854915825956594983908948300377727651718697878263883240171701953741338774030100790535595277664835018200216273210462548785205630638764081225069941831076731958455112221951338608904529093968378002321680792733435964571372392849655753453544384591959608177289410124065302397526263902160384644993156449583103044344691823924767255223026541756522883533812775648066480524094657052746837238666051318103973746116451674623368797642411087320058896365229262359245119425760022899290312088625572236734945737900623657981470857873896273612448635301108161880749534882810805088910412898184782439766771802958642262114885648888894703194526775508601415838426048657435905399075914494181590332183675224132058611424934970834586668062420586256878493413805106513534095771143078777806715138555891550401134416256228675135554711860473710695431980262820109876248841892173068708831320533401329616003201906254298214622685030123871235369229159970687375804854400282873899828218066762040322804843245122265514826945959312924115383013878415894895638658448906299094855042122910283828023459624329247773804943534846352075558949759452949029954189951748150614475470220021727638810597267814713005776150132006972002723822546565851753349681051946252009213764462692773173500741135070457432395549872139172963015588670839738124520641029400724636629771409661954474142423826939516924276752207666889576999418966788104165724535458189096169112308399714293569710513679947741503193201804822264766080740103505003771359109148712725799844103684317491206843096976395111162836092387719040169756736183844217087667177803544575027130003416886399818922867796714052705326710955978040301835262603168811830070592185969006633093697261111195079717805620523870101381321152045848914657873266132047732803616596204708607547522441432465348296314942880139125906749540208969391300822154333941689410621185731006939214358749767073582270470767052738361488325732940672170004747283052984218983848482718818823375599591431167504666369094956054740624504893551833380125817997125987631956972486850137625521044843332359392260324425308343643526109281155389355085088098573422734216525966247498903442168790349446245089233945693451702824855761276192942233398515944999048142145725881942583491261857654404274117094115648204897447544706788695328203246255970394352819550103593185783260945807583105139171690809870354042095619783130307946237989821925692581354712673841178193497087645300273356196854178326061004331039395024894073362246250468827318663898191824360836028193160019134500027252452684215940251428263628784243162193382544742705650519919993822740448391505192032715903128420844304178578820967415600715734150593542625861910816295726365175272507621109652526020273694091386678018934130323402520553279633052587373121308211725108395839862819923048526345997861433259966823333784569029002744334154046054965049662582578355742037020029753040137472476902109054714832250033963334851305088924468761105470988072156188045665721102333024261665905397323688132621513009147653646778448856593326616688142846223671750029209363417292751857382696387783282688311539227331627691168611987809922373058640892550307988554462709947944135863198290835474394783515925234347234576668952156755151041343857329574867911622123537133912311300957366675699720843574867096676517927911956111153608471464496058410960446129850581297900635798110410805753211630279058291594807081059149127604747919767684522192372857014221473949826451074367077669674015638871478972702541812418244673810201375554487966442088569702693832076615017387082820404148628301842160148829631378942720986090248905236161369073351294699379757119895823486252716615965848571315115136178294976119847935815608146155140809990181042678979972395872055547571110218227818572842586101715504605352592248790251906512521611292998100354203844130772061362301562888904810022235019791429838964411849250394787826098379040804378696679314101429685446727003742228447594892755440773680675979623839793322161242061452772316532779350355895035696605715546137540228975819924021984106655523435481992160483685912844146534959042972078317445394184486412068160906976632696557667035007529350943516783537099134250821568313771060252706430779371772252547004183276371742362892065718309917269447796060550225106460059582042110354620032593974483318595188216049378754412495850536652802499366382565405441373180046397123566707412837076916043032162365567979307120604295762569142312495486066098568346974185719300356639367964695548382614002550446953349649575886953369460163408865874507407829665448787646394005797391347689898435997728979625845695870183344145589189980717462035124663899534598700881723130781508064105219628348592267202737863637260708832895815415738628280563433758382758342360112092625496586814954726533639525108812317738310300190062414534193231338116615602259467931007613793574290472371397038472341605786495185284669841510944864084638110461315013430818839355604626684802873400818409991618713556437130404111965711936247780099800254393257187106515156751724207451082882395968587134565683242919175818982957001110386967078445012879284706282198594076357942190842706115230882604899171794904342863862910956215823186402848514796386168676590153403213585747739354470880216379927961904509042451167962561111849054219795299311330329083897249891881068999751409998332645247414090335920243061510957336022041305141118739722089849682236836648205073886444980800796896897527010970339484009667998351678193290475096145242011401798610417608175660857387980950836082094630226218922166984553470343648293763659949451117808222954557269350106421070128563693160874443701894350322759931183867861620641456622859775651390428534848767662903587834968856491262753009107512760369394528291460524391941037556758802618838603762350191307450057001199727136521323826208322147056369984804398626902122086824214889418125950716353918706153633448768490759051239185874527251279281585533934755690067020434000282946106697106154009019810210738178423894366045856084968569307715519351036622608341487246328003381398215102534846537963354662120996247488905691471749879691027718859094961543393363848167429869742436842383337551184794960784930123801901541994649643488041300091394063808753618691004088875603460638214231656564070797789848952172476127439599311129910709604915386619731051406302832968458505450461401458818546812814027918587307364969951413777496477395449309667744210443310843000268417347473429465291451218203585839148038674137404159555617632410135694136255696723802149913003450307589431911728515119557159701300502648810912899280173148996658537140013072272132614795211225524879001608485500452800216373805362290296787547951633351989862926929142471861443896962194645567310697950050193305317824940725894968873883204315401000901936497559253623304423951197775714051803218233814149615274808723010391122601327360946244345539787360790756130185445760983574348434716854001557967058240276494703871772087036429401194514503310853895298340028952082296646303446603287138075013159961983566700588681748759583622024255734593460665154634278093058205620804959255232607128488931602517413756506840901895992529889958748153406420407530843832819951786448004136819984569980344555569398288939314510237494304735485913922675478236575252658901500495568411342019779319530009883938560512895794421573119366279924385730102298594113111846674215998821469681087676624935762989296307286624418915868066534208332500937800571180530809033553366127840492136529285979028767292854827329808785548168640012981600184569678041416264784656675310338273149136874929926736044744549534042056999082032470474278626021498483473237203722265600167152561575994274333996710037238455377895395817037384840494455168234740614748448529799127681663021805468076013082407799889861109094869656320529174170564414769496942419985360087580827400758983956914329485842245534645147421210449314690877069503858749446693897595753408346648093170480300402365313515785365090788382450868193850988281794543373767132479926849594656116839312768814189640250376285546778937704519742870579129575252593615838063100255367676822661261354806903040592661336381294820092932125549117327527024963667061927994601999890673328951726312766647228985617473041038823774245967223732479768025543048755589696071184524610732025159907135828240116433115696152309250943033062745764859411201007756579648301016177310206762369492143916646039276888978876570493002724053887648429457897658168278648388280617216174381440748509280620133152765424806324513525326733769151943550438185150922926600448696479134293574533061878816537224315845478091328426512149844393162695291598155235674334216605069684418266855973309165369618826983295728442834028783527041959997513921735161724646409407566685723564062024306256810499731102491208064702533923421867195260630471710130387493925119122075317610732333727713703417825879040809172171721844196277501700392165054206038676203144244690294075823672549765524438902285168704846832990761155847442518530989111403360005340971502231821094524816022749495750685170545889600983699226057838066037358738478568685023649044824544718791889355161614658868682444973850458772568919417997212362373395150259755834001639216709131248945653255800667356744715158721127853850328264946580489739926077652549119646335168615731348791539189043142545081975025540707817124397020588695890845431157391226721077982785500995328462474540520648225697560149390302064042207013881129950452323774809454541773522378072415672942814766097757453380342155729188208170230760810160565277758589560441446344344937919528422805755134286534380628270074865415603843465070910846025072916392938462748529402371743676917277375333517144375379960707210761555450523979298510211608119547113105455689455632867298111696967729579980213645713735730469700074300612784237522923830045461703138268370852544606110628501600207524637955691496050788393359061486246732858944636714438608379146091148902705635459045207701597541565676526374002231588114386022372872104997437371984797843989854053430793487606998382767943551396405871106367183996548083044536358222464406481752486558646149802976660557648385547289674408011358925249981358600937084469521339079194459657069898599449231075238368505780243590289477026848847786794567971944707612965156071845981589584847533466942855534388133714548142177817454411263059205822771570874007396638530994345157954721796246521694077967194945619793139771316211509719960881590721184658243605817450959118952816763647702097740152969860910957621630163743173394627063754954324515016809954172913960780026201954206083466838160345940738786385530756900100940370547370072375747812907211764923548550744931180039240378097271640572098301302231756745642785234152279526589213315001505190521290465170473196146523031780169481071866811644234508813898448843798894588568471421817858012363892124077165605494887521689150788802280389689195486955841183324339370036739505274454243192278295897433211505017082211621891399788280672567137665739185545417613744471225720576007411100651862287968183842250280369665093636793230628142355080683420133005417128514196737378330111606914322789696012318346058928250588797837782542008241495207502194005950031061960649135029792479657628207886479112067935883949268516874222843416756712498431211556934135624278639590993229363446718351390060645653064698408079665085144512777667125257807947633937006752312868451639099708643276711648514695115439987902509766835328649328707266567689078685190971011120020574468683694503181547792451387835397637423266649595442962381138427210077286667335895161169281374801499743423087072571473075246524673820343840369197784885645566629304609925266642839248229160043696145318266650798595059643424975598993164925176858056000181516538371837794576854846787465915400095893753346957543819001914308693045374944093089792236012746908224617096160104060699119354926148308278609882641935503238091291251699572283184428053832134831878769729296186307547971061264794494556830604601175567748821383978781334664812476097820297563197754528596103418959722903120796533480387154474251333878228926698626972398931507045888583445064453182028098425794268130815744297162613048345561897380513580691123985970270060006687884855977954025352552824525563340170232352164717814502876241906663833088297147288172903793374697824793329204133738772883253406003850450564696905069035158162309224126376937201606998930968951512963192569591631829686510633029971661536006315996461443288160900488922059205328779613472151163856964172645571356290504335875319614266786414992818708322482841587564676534843929866572900638814813724095867458791323787809202765232797786856571291984114331467058486823512135071900745494965543576328449851782207387124277321448305976867091560527091589473011466812022185409306368437820251999358959716081913796830060034938132462492916647587912956319138710922301102998813156638818561066324901520864440882406229209976815100973084107298943680354230621962761221650478095775654908743875561047881227766222265348839218741754130750013263273678033619664428157813672949480888315964606120993075558654862368140602249961087636235086610344490498178152258116486692517338965751912327230554084713046672789427768740346944750570463859992757975933702782230964619672344521615195666182423956622847165571465478640478371444172703601274296816184820751699045558763941856634588901287890302226430124678879707567133997377168118616605936100582183825749579133239138900605681200203882076876254844053528403260307728958735994600906406558747780608400586007898148219468990722491144145980585038289863130641487412966098113565516186964738244996418805233954736588487963084345429847646935179906061609867595736277977931753294785196829198294207229943516131450151719409508131295685596281529164729007988728596239603816327507764176810701453752507027960195092773203155218850016812209590234930367000714964576974369287396405822299429508323278691862138002252483987960227395356678251308947956917025235236676884912740435662286643811404436166231831558343104570121158565079081796603460377919871852520864552145264014957568202016100943941096219065532534862282491882136445229209039128419279666596172217512390203201618401793865365484619092355663856362738693262547680676060426480913029427903977761814210580746862697624126347855273477324145521046042037281087968075797030609747628948678732188722262742424277260768546813431350269808761448861093572017604031803540918584861517769474484355804449437228026255076421583897068592899558584082450126993139551418672360891956081733362347224137839149402311503152878819067500743397012317329636644160063127244632592839259975468672559411301101002989003044219609143554663913647054024936514980120159012368613375826632787441857934818932217822359965813241892619433028333269379585213726111035770562208230304075058571288628644890545360054499383647828490386169662382526021893700261582609809332734004441191316504550775044283695327786484946117156730775771607621692169028196935127339800918162272972071727193141365511031121219356684892324929514863410699302597646506330365104548229406434146595798955893410186401531946839308118402256486897803894202255554992723883309704479909548289894899895607800146865166471861128531415274962119713571867277710250991802621992774935365127277031777242854238338092156990116945218811589157476171564594732361046089972986315817697114832879909190087889235702935082611626131282542401722891550103848122609905068840527095192995004450521681465285279010295068323579219248635566562889365438333554619572833195515422448035923997384879978705270753973596278059760690645777882905289604603276037809489031736020226575702637858483366970164948816711077845354342151228120145388270178745588228426092123218033347749479895134337128738510591210310054121993752713342552766351967964828101643236408729288276261394650241724111210984874984806800123183770920778856093222912535965866563002085801712130966350880349592297086307894806544807919748246973696634823472684008332209441847395428048343748071931789890555166402518565024585359612727187112602085933740774140703245973702901772830183777204402920364251678699552617576356490267787287546363325194999787113909084436502447148269916110705913380951661213689829400968321302452590740579269955222544285605126350865550592521007188468195091041585341551289669226862337685529264446848494687141524629378679628824202646081617765308531185540966098890837810076429813915545487183266718437594953551286175842214905620053197365089091244998916118253544067864662662659434171718162797692174945440288563037605238636877948211703749474148843354498815400438876260094924613848205937591540056752201891198658025970536499644395664809900691560062607647537457286389868043040140966652067099687453699717647864294746523623564910293689375312089652554032862547089473753054188509617766360513025880617369574084310767455883126485245065916858578744623229059651212310859099850450217795309552386142746558241536508109647561387452372755592177667639653066149137502283872857610953983741299637286741919396969509435231877116540498440595399740238406883072357720432516327595125703168779036272111119568654180391896005074647119961514357526132909083585382963629992341599917591563743359593731902632455055117535484382953429313174872713546507317214880955721649370869606488724372754740079991640703796167941873632919827217892725659291225979860102878478764173471356475083493749047832582041442644013519335105925084069815786200520353528561257278951650078930102391549787353096163189653247166566599387431792159610686312722445748678497741747242179383394181756747440365587270263798783881323012844719663535635991881517970950328925090423110159389009763703513575515936926384627465687572068886581155742240420567427794003731765184505321070686096962858545140999441593822804471990565123167749627363346305127205692202812028979427601515784572217335509769137290591030319862861617065837774951308561304677807595352460676182956783605181446963101036905923777330296062394473350900809853967429397375415267069663514530550964611890145123662391786512810548623238528028987975416859510435552847749531005771121854660276969924875534547254880747405001425688356058016104674134298887939954567427393581440945400994140138794720114609771539667070740429114119768368003209721793661605454087764299421105261558267814478185127043142783932432396921894569052535507452819307720464995444876253966832303249800733472107909053889673587018486501038536279968426858189901494352999459277885074432723283906049993307086131719959934651063408692991317927733544843917469936813328534661889175729177371201853338825970814442117490577663894050989740719509430757674281595300316126508843848639105067071541534031490732952553943227746671652068980071492260302890963598186040526979085168026409409133393632788934777397259254770013878727253201612843080720968784797348742906277587925289085838032319386369589561663066697518235187747451786459452658725029817102279156104853355870220872583108634656992610015479884592826965152905560852391170222156556125845252195290472858409221140675656305844666817053872945944019259827785639307497765908223200993733749720624483803206991642541530952590531403648291748853763564374201310896430249610129228443842431936707047079463675838173556330345814883943284776558896053489009110671450608317310599619431942380719303300515686827933548532823168430901768459919401964771223829368980394373619227746741070036298757938654067420303927453340021742963436899403771246199522111067531121617229460444141804876660884023884272331041568844588163666583971391030738284450223386598153388042202071708845011294205840398974138577542426949832074949391569131214560051351578940894650515320038463868377868818457258955394318710682075322504504283242435107692903260097007478152515248261616058821282972711832865377394710444548437946892974903025042540772745438122519489549313964158665249889825221944214716275634995703955329932558993956344019230994614209594554967547568143441227124367410331508335073404564840195624192083334114789525656759618645896483090983810792052470953217813417233375592053870965553734391536145251169611145142041346623055387186847405709382403045959161169524504837781109926855932023589643113980939680582048230945634108070683068268837290044502525427674574027304831170685948601361570674885347399730483773190403178467866030141631938412336861451595227618289170801698668341827800678465966230849978084512527824879588867146032257765025912305645348359188045777008041415490583076687329986076887565817335024797712573010982707831261509436827569840879399321036941669820546289224402594597511991758470537247871374616841835798624965135427651340325418598532398642004411879979531309224220627816605286125061323530698378551011530353179805249463169749878204768208999249925236060195929662173452928687695048520363439291332716115069600509431704039310361033537773230197155436873125159765172834167381808629497499706633797737513072819770080723836632792380526459659972944079104256418278251399091058985397974461233501995421827539000747059369139872253127395470018268151251391159501399726914980663406524280601887470030932410187247148666317348521191406173947219054648442497087911940775261258211270588974852212376415328203199063659474315066408875672124909036998389090252204802253404689727621838122120686870677002651328029508329706691797132000318260021247297169564767845132537991059952235405311481167186504297485596296303262002554591348428766375877546060107874896951486505036493232364235461099473986541302437054495573400824273341541560970286657947615256947169378444330997306667399020167108321932514605220980096791059899600199124940062985312422108532353512808678357463908740746772145178076171466743004794790557563857483526451999285240024794709748283732918700410892475768933592700379029166870168276662626497976899093062821305612881590609112107313904777966306736476762830228284740787694780626062214905304490799012329222992192421503376877283537543107074883778020052320275587358504629661153093200127120165048106352190711050809752557151701031973599710585059343704439904875310655160472045948042944475225884085551448405536333506758514665016375297279475062463373440905243671903191701625368550455331077958936425450477843630436374298725062635788824006433409672238255250016896623129673041453127014835486283620998924684533004410820420996784532483716412084553004625309674847200168789150988580205851177965647172473041068460064803326739933840585417824032618471214407940483361022445481641306271630893544380351536195639973480242231846672498884229570298099351224376605153120202120229544534294385455063257920401021097404342005205220114451801911610939580933454816072253864895669674894533854883875870882452109010439607846392810748014588785281291616002357338388177444566106048641597447445892535701228577290946030070646232037720059246247893407671257837002544872166792847469096529716128551834961691980942759518731671577291704758161568069554941152133248144496758160429225058922450782595695567979174588626853075053183583825692122571084026351551478298040201721491808290122617018384105792327220021678859279062032980834314967565661108912351475081406229127037032667952425260064285122701674876027884995167643527639405019739010254256809124021068507097263365181987747857786717148086779523754416199434026738703139466269064994316966767990944259860674680015528415606492703701523694345259303496191043553353382411169189759394547988308793004608419272844037749424226085220007772359797320518264738129985488997200587038501255220486783891195350301726785226773944839012423214722022415089319167565128773684212999934570193595754276095969307015185985282377213285771089789582856114568120296955331629561002211146139644872819659648881954282341394915084714719136750864791216359522595314695897989236535975423674814792670028673017101070120224548912976300158442085295245049053966982347192043230500249337554519995391867251230885429946782588863642379767868102279992329086985561288815643753814930391195320013386759632770687454129823376681950015977761990961498296000086595038412817278001448907589716851457663498193723306035590281233768250958903967898045060059637789494263721415548096640936866071683756166903554273046641852318929812637595668306431185566838805212506133238774753533884621885898030517281169594018448961405437925187135084736730512588703065805876312573034572303145944648994974630446095968306780421678644663458637625807748919835773466515836206719403929731009137448470110124457671272752158372442748764133836688130590169556996013243859200788928249349161665757118472649505851669908391288860242849893449016300005824773654877048767863672307251636981800618370090879533768953075652647274150245818631394287435439544574886132741017986119218822673962191709053190056860812534709590997349305440825108989164158781151722550825697127695093157313748932528101828001695094708892520740044914073982508313463588712854405316963024293250316926909739191051231262488305496781921864597071907873046856454559478577076852037055726313446944566679980488997025575626230112939662477690214784461456039163374385026338535666849147264179989210213280558252415227591422438620919367433041648595055372825564019488990919265344590665826318983830199594914055793191492879769930144388174983215647673315634461377846350830711135989169695257669204353817030396241281337543321954347561763115082245428537208733083495699613011889513857365907776151881451535947471258887549104736921537193231639082756590974103525078687549051324963581745101384871431062013399593639523599058716978298119762741779177830138147772105614811214639501768344753128474912708948791850451453189067010686218398197271474359965230843675265592771203864845980592999255900255578993653786827324264358899137037063647180618676786592015888010097793064868557271531720078035257875454994998160721043185940746564473056715967782215043805219915239975205664096395918438604061999195227695708787493687167599738494894504403927273792029842743842805069090093488445465380245205273728351116684440120145291491846462645028990157680427152993035712870171220970012752570221865286430690886898115925367424111134707821868405583186693930227410511997995269265133697277355010719083717675479738406895837900476809318275559263880927713145590366721620146293473758477020507054948757411347766037054966533365964188588388011879658254136321448228737712577366238585597904141414726311351464945833085974442469666242309218945532375545855780094428355364923524679094965409308017242206812850829772527350996243681680651330213454792677482276995100422901281587952356425377542444739519344532592418227445046057539680196460062413515995879356158268623414047938722820532363742399248761631272872764998522836030999287894615839700910770996844702957808385988568823124208893178749704376467984601522313245939781911406610467317224961894831118811182780486117594765363213794425846477192488882879026959621471387869408605965363423234307990077807096092136667945456224860776586951036005656671801381752821708873460185756258485830476379925129531310117845010449686928468210902823518269372183339906486216587116638470395950278989835093011765020247312599392654101910343807703374247006499351369859804667666590378380682362151031996970165531159053579082252232350492062952430379074544515463848155417155254026951030035122886190129774279581792136977533213508593320504490077101764951644138827443160866629906861578616637653351884820961839738543695194272346831382429330840654714585743968745989063673983243001728751763927581249976141095179514205445951616451307587407848044688902240725728450388499455067834883515995020204138598400633283242756905528364011309533716014970772059999469347391760389432491747326809801033061932093434020213080509908281773869563301287797956768361848592735475785203480552130940024175318527789784305927983344771200871511097427197083316831851689241902498006691389466891290382794508010793560868476063665838414755135973187421185255625560232529034310160974004594456604013269001433740612114774390080457631218443867490650866310384253858932466265521533342745922186012641768645039491489188069779541598136049244804595622580335059122292727866372206039024960586113582171498889061807316378216408871312798994749860687714818955080910572895659625486848433305231429535771165333990011643982256696279881186405043943237383198009913268056185884060773181659909191983212410731725333506084392795892992405873493156274520148549117327413758522935901952112721810128165064868449067008344674951984583834783790676462305818833058098403476533363817743282784676411605711148326366710214518010761606511774931846962475229870832465777761822697076273747118756058794369013165675724207571661359374732325567189616456501086112890660470148189348430454693358692268963752013907679858759304661080781674814461678731613158787253776399731052712920096951426958000158577950973621684904733417364126582733229103883205472645958349796404050606392705486456617143372972661305019219064321444344111548728870023273555943545001411580231390584803709133911789851687966608153365955562712445026893512789035057762962868914032717125340962794959280092934624677306355575009216561757558722841343237486270138312303109290186900278990715613071621547042440384587146091339172114564814628037992005059906314512247568149013008165564113819615218757996519627238472727714715360884804003746907255425101586325516674540682129497224402729940335391234160032369760253226573731266556769576977756653599089471944877234748615606130203759833927328891624646911449312122286957966906867872200511221510026943241194776374061534756900806662884174456445831754579787373059283954706191232237941131106822725530728997863006425925472411147751691042622380029820834367924005554308178816656331839435651092784074132124466894625452350369824007746151097640187088173999091282136175620760237276421546294819223076227169711996641344645819986917822611758861039473367376185727812652622031758970072248767758444598500273464861921091215403184682720820840067920042432598585150431384928988492846099288376585733695311357158021388569687627006016944299731437918598409350745708549413076587322960518750538328501179144608864655688381879206634871132809045404841255213852758361456626483898126066797835366494807310277081147703639315036667405578400755113756529943662947379804675306503926939415965835793984613844318439786787027141845401042471676056670690966873080239322096982662612973035292264696808748093903269682322254317862451753397809002060907649879810980154972467309860310320201759886134439881498909274726088945490416704118194345766629111459178477992096416404289144433738700117777637806792631551333486362375978318941158698964033210703105811168343467415921946969457656247183546474819755954675076376415529837263543383333007519680932153681137055422106054948876328550652229124630442154190958385116221391223354382641457489849825149083101905231975387489028223705922523818387323741857191263109137153847357000210647077964649271402755148481573931454196168215535812248808652394158661064545276891732687710299221858494548486812204276614257535501389840015936668138991825334238688665598805150916601749787027197894440814343070626716868174517167833742044107348331253977734131173143980335908936812444830827497723683127810689259193878452046459866979942788652767356757003018052814919263309734766146639681929298064690229911995601743166445376747815348518615196663685878170069869434843434827315552960658329579746780467076693070395357210461459294830712243603074065916323325547263394765677251279736641548653471063125624047061737816197616916823063697448838696214758322656366598233830678386364557807358793849826382789737371094897468436801102777911762981416544770205036760625535438653302756407556669896348643837858749783462469996447673563436855618595096256362542413660809525531179535808938887520855625251753876440231880074426470444680945463697569534826795565378188518683159869290159558567882340247721037398563704040373323944560466053492171524366198209898554170760727686413455880592794837320090115668196023234804286462445774362517934125576544281603063145647108968495794757978781636412545155954248040405432277903580353506600777084599049608023392194598701788130478976067418551132081747411145613298650168959205447661685038113681749899429080331133001035559116359337939528220041927590977816803993422306388630419791701882264407641443312770580549870022712342802608597598362163352955235518903264531104213006682978069388133618383051717318453508379797410067960256675198753872022775769932983527886143462581338304335445304289911085411695750846917404497498175182163168297913786663428585020981521609444775140088920936841035401798973810306991169042000258823152378050632643446860662030696703127243695753068282042218372802747727413535395377882151552718701161103013523173911942836726774842845033999781966060916134017041085300033541867320449002457844534224513960646105636285590389437442340021803607891957792760972891311410951806352254001561956237745182338926770997255847571743719002905385065462015969397140553454041030192601422981784147198465113833754509431037416340376889787824661645785862870244671670099640179596684405848324204822625812628226448338717603674767242106710208485699848758405750938785940395558260744699424199231642302455410268584380574693126480772622899407137882814627017447506848694793968557305783621211299032115020461934070535132748688452500420121038400472842276480668960068872751126087131125249869397626109923209189559292767213782347597751758661094833736689545203552718810574058874756065920547519582313825411090738077700898158904449228881292206388086360710854140665978798979800204167968509780559147116430805140563078754800514548475007368987203125659273523584753497581665950168398776476899916216484992093478657452384943319070637262847091413122448109421378482618306649721199570146117958794869558102341698829822895335397055270080433897157214586003360278475743106976601987560592455785855994841766825208845221694960149231114154590671303806477050666099266228237730778509251931958360922769239573270653816228105468705988987735841946151256797638044561886024619721700533201121395857035790693967399400629325050225596306996797776501581639301086486121262508566023583151801990722752346322767407096035353407933187167984568170580118198954578151894666177019428366254648464760001597648387645268996205393332948537613691072371661643248613258848173404903280047147687100935048898613875597297000759552429816141290893751308278735813855067400701393846206976433359077512695887709264324706331309065716133568821595019889061937629470375921459518432802962911794272017184475080401495358712545674302209121752116249730971881252712823912332362768384165460448616371132606918970627807497560622775777791133631380900746730820697987776376446578327574256699989575473420445345769832320197337303421415460836390546540996498392201123973640320990829913627145214567207297623084009657221422077819607039300685423874511859426997893724635490084262744313206768247212937592156914940106652379199028105775898896729199072029229479537467495741652755409429550518326436075456397135618071723716050688923238278521164949381757276131323526127484272644009777667590143037912764954666273315012812960547475510167065308893085870417367859727083428059801497060092370631619912967921026851237928475047688368639120174385654535061324454563778429344852504966867982635796073358753457249423273055400977915837010211215876197830192358804977974697167037956444380901268187327825205008402147889383951880860443625024044613146206152293951758772806665174315694862595870352008219831563488381650734256869193222623551013967370883769546113199295463094127400377359472850143944226843279449414961665400560036653933126427123597490359732583347490821647613789058100304600763064074382555168096270776800110596748060466250664088916677961551108377204970048643631483758186887363836166656816486438649582979092702966979492473603150741635060579209261958177908531557261764890521849726167448169076389096249016591633018668714816273582713272677641250130551094625014815436041404242329555406336251931049159969226521602869874763440650009271028867640576012586526727704743305127409129249706357308665018640641640034661733120126089717320670372117957822283820022475645485320128944551665083109738930321892433703983825515905877216369045884841694451748831188290433595222217887142286315854716534779740671682191189278050163015139768428744413322919592833175542228586079797408724320786456464068394502993093983171367105916994779342460366890422322239587351999402554830531521572023230231126185219001391273890508814101734589247375456801454482810839941979764987144804540772521164893594335017741653435711007007233003793715626869514141952170239879676600457931866098422733762607361258937590648744224565398560816724867743255104625986039577633536036403485420534748175334264865062631691729232517988636803344633372567042116107255190131076367402816270106941362725378766967449482271648340273814795106221236121364467414253174473436508783891197681335761911580909975221424791454593843416578976398441938071124481014001126401880933878330865596369102237796915984121565069850762847951789798317134795272307353973832915313845066091506819962778697757243584949915054979335842283973882696543204169564126508875617781682550547253752670791657521452920821148700985139633898479465786471220199917189498900959641634818304621898601201081766088642526289699615102564097404002760390422943028543839737005440107251223534295905049177742350374828227864986999259741728961694608519492893058461130812187189944895885958697859481460069954557472719545083266823370779921854518810174585560043111079062955735132385470918948312214840124011915344734582757015985193100124942061243814996889756863146738068133442107488960269670056120237097394185544453956239016430789092983581853587055483750431878645793769420161730008844185347048272048901199608744450953584476472870166812585679039072522517149089331299508461829459070431180415357312923858032542092855842030381060403436937254662812178660090964540412785201948484296235216400669497188931007591643181628803775402325737596741718378725373717457683437984560161293367391292756767487486717137575953207625607570980718728133198376019019135835386701106032693261105922950294505915582094770148125188417961000099218816751268145212823161251282045907265256042810269511252244204326364815811954750719066702500312945676537581386373227937150310327381731005944992727772930795015077998496710857488976887633480277602166413142390052038987234998448397219340467732921001211343693289942315737073675047250539099156776712320296302041643647277552071024262346878137243071604762961834575126597845765901166838467400086454101064035782703484811572357049519940029138697987716438638138717115209638396561863774004169865925818041453514188839425569324683795830273548989569584399530321001450609526355941052221461747796784102525983585978684512094433546745221348283145142558140068938319988471234152195046803556279170925679046477818117592661259043530732705489498264898778214897511510323262436898013342295418786523951540556324585768553016376267458705871769405337725638174946420521100349494468336163158509581011068921822822442144660977845796536930230840517490053772834246700030106624379591325541363680377074269200127102899159842588592413735878498694626870371131435448768880600817166462520669776217266888106023462551229540214110675633049774905495779653601098289918353690189479209293984006547244326252742859033758340189188738465909366070109348442563026018567187732593344371021575584142382490509580863526280467206492481810102065283388771146041615702196283875470095888222779631855129635023428138610935163556479168067980382644442106146280764399584051316561126902748205849059692255760781256520845662639449664412579508034084024000033495428303746855950681792747818155042072423464619794855339805842821985538864844593177163926776699484272973507503839541593408144416821955387575577832533681166507677648306542174455218677597230247342586028706873153472526859721371716247488505001749703494746981875546146340502039000548944770432650399867048219606284862028743124958475325394120652747726174620689089840206057114846483910661315443098446058820283085435416920570133690413929029535288858896825586366914798280448999113983925309512986597200497845776266716965241285591013181595960350594683306762725451759301074622820604977753789295774151119215866885634755902288498304065467042744507265972434379500387619850415669116643711956048464451130596695520398965046219444312536281660039339053945087753296970812533401539262592700469304921737860207146444758324237572736696155540320092559518973403588721834230814959965590537096067092126136045908871981531033112576370090869674006759871769864212205824957069829250852898309002387086855777445558050704096102280623795033904078770602624119793117939922444964767937142437034269252651680423100785614340000432723290019918925967531363389979023668482493077838929265220033456303606770155375983233749484666259693122705669678890328063453203608782366589884350191366289242036587207301875541831241473080423955245093600843220152016510625249389161244599521958247163931449298786967694359752726504175129495206896573241595782868520510610722652957743617582109750833030909831618855841308150463667243908085185099754187992568080551038205383687468645503521770985212477147267219198760301334065475194904074626069938976564473824700011650129858064724222801534526213621468028618670306902003106052318364523317336292055729209630778489902237982326249797126353558160793948262261827891263043422353990282806374311374558590709502650603733663495068525397313455136316604619182134755222966128892011674417023137816598585042771602704547677154925258589080680694167830295407533938774106841815229399565628909992560997231103117826266446968341475048641361665191082577525388922489152474665150132833493481895540059393965353662779120229754872646094043518307900320472861461030952972225612443209810621806914767323893947016973178850183482686709705348113520980539962965276055585967575614354192501336341421707261725647024298069466998197268078325959896077635035547037984026175572238649830788889162958974102299515957790882301031968694721166821488415730906195043640065281569444287060778503345312082863481161374058718301326146462882054789091040803740717846676498287500333636612258370694085758956355008089964779619607004985742597595381025535078301500998841539884634383315307065983661717844640918651509736898957132456625809492676691341145070467005118025361345462551346228264910346670414654002452113607572375896824381713682906019580481685069292377719062185202742603268620406838111313164064142419646155423721735358013093227225585900830075210716802518422736234912594019469046113435116368305083754638394128869927390265228870615395667814987331002598073969791685413859128645789253072666343150551465045096488922599360828955093666867188059620787195924176599670354300896041282716622762189743658760118927095181478588012331570781368474106401832620190447148524341457640541211845321620708695641994378328677615086002220968570761116606262136476504440734601135361192114230930364458496780577122927902156204977883504041365103454383815691988685450637106448020133016893955638132223258128351012644788178598736334614883981785674470095561159278568464602971608575311325961150296062567393292706923442951517629714092627938219698630136441575954200113298108752327232381071361187340705550465449878556268151283094825476046328315598746542620140990652917163807410844752815579658113220299585483619064419796081474997475574022065296748059612704665223215255947217384898257803052737753347451425101686586517493603488526406035898300498295215592514242519062660988682681218382405324008337538000922098896653823626073970463917449249562580147348388266930555673964246065903360110928192768037140853908721890400784665602805724464466858556053007457768140999580753902040826067313651797989192103452053112479984609181612088438690996095704970442560683625642461343348368718061159299615363351021329966614936465612137358243238831284861727203836172293500072100958147427478053402370082049013938500044429088902119571760496465476056396591176300955462817573756479334671055834282077355584256512348583970562626110958499723799398162837406213479279288581716218062892507092066548466295096491087857379975147453498223116241170740865396681010462274514553009644066341919189984950964451954022932351671114881689105059135150581138554459141925262627331829048631102955580743916753816604052113681639261685177903456243272994609736222373871668615601850542162028377922946998382606401245871193371786331578151545921018360397256365661830164312363579315434620526220298770538015081976764812697752774450766934611577711464134586116831370880791706356510173352964762442148903190228178363745832012407904135493716754238283252685573183051513460577431651910902132516433472064033628779902715070334074380356646199989251907125802656040571803569365189358197760256017171673630986499185919364904482658340937150491805834993442831647139251207749769247373633090177807908321662589890775646446063387280589607018619350776959839505923414449412942769883235501000424858115811221749913302373985508212853484894922532849978213201342980299606220503681698958759303232977540966503223999215199675486196908064391071447866658946028670751622807710618644377865809567029084616728950279911580049310393080015777240044408960477436411418383225363441664929880168581054835488026485988765162315018151288096025418871362992148380801033831978589985005026848859296284209965223778230604467991397530013087541298649255254257690455695074187366574119691973102563244214066649408261858721747172191210365376833160677163425083926932798319171798005253798422490660494878742869694931954467082165888685226726749565819244724059649043654738803836073902356449162205444241314526134966525789521538877772144742059070960914647730237309340024173379988159829008287021152774778296953524034359481071221515767610564137847338200045583887519956625746781628223574395453461341331840804899315500585440029043165905464267424038050929448452569586472594343544642352021623651465138810997530751425860403785722389448166167161908220624169426035266314165402386706688977875726700648505629038537194867456345260124414971175163887638936990434732491212196512836771579938755608315478848750286815389569292147232379108899399632061627612332910160115599540668057983817676786079653449363041445740851982222094130996628058195675968886421563631900523545183289177528695511970236289374281370414159586045837088291276684874155984013264670538456314969773739081817970898672552497900932961754428019836923220840137413818554275057622713045659938790222311500771246239566932463564163897909366251837965508366731656653754770636993023644486301285445782324824776591408866307385349584145482862856613468989242555716655238408660489796177701774184366536953780565527705086450751455053380793544541610339114555854393738311212973678839707256676982063736680225781367511696163528634988946698714288035300721116533181402431813323752074643276855541632219581472312701480762415973836355431682318849748053763320772013572855167633797173824185954366816201643975820362171345756349668660763341288229929370157047677241292368364676925051063190136464174092659600124709574278925560673350660788271748592374624064599912068162982852849303439381275563744756722082183387234539599860004630179553598073322180933095166158722851319595631011144474976048076276750868469654172038951766873092071607838248606298602934981077990525896472023978531120166607195697465412345950261872243818679384569674944364792278455907079360821219155923241777992086683298686884942643178785281483384189371955730128384879686479546866330673742326649441377229437662154650357488298640326515467882549797415294153386686567205361341055675341534055014904646705950398855887388646890483685106770996599681717094247363047841036652289981948691609342860111963049736954182131930291624211087928829285467934317152446137765576779516913086784078833566028991545032718418146373326399396483932133846950812699934061958362557002292314376010662473491625367290452410655126494111690237641032199891949225095180664386232541201962598556982051185667643120675465107788567465711211569245892276591786381493977532749291343202765169166484070519925332895890895450997824932769852567361952569022417846439244568132154987711792533034054112431435515205709668815966318298687145916312627310501047382341149582192076274690925794552781824193423060782228017660398319674783639325435156834246794987016948116373488190570141002523345637850223438123642081790323376212155519337773698143303472948764684465679029380236592388478731585953100799010029975104167365802536673147879801092974540278350398534574304483917363930913481761487297147086696989129169498031785705297216138973906115688266423975279231120834684453031867180007200812884863423852822155948696706313198226849992447736170940905245642805610534514834946135716703765664303100245340002508608413910144143897242102689629801560252464192635449394284492918897625050030005043420297692813645532349195440028933704931275404518315653924942345300804076762512518751944757489570839833766581046561437845899358814369963200122824390661810739955290566207656748160126206731099373379245462450938392351999480298285832696581904902463171457510844217885438718178210481421688180459631626639187707899983358362157545223304349529194125436244337638665165808765291683871628894371151445329034631140497601244005137413788608473686675571557343649884576824169267899036373858895077403372480309553287809720195741023593021808549783440664454352482003637423643912841591550785531655939047044137843307889470837976628123640614128815321418330674523550897706907272809127766902857681679314887230686971022816844399653675344710437220206827332856592839776783889907520072879908938063455581597003485408243486898568610372097553170644703699094750856973547885315122826813091250921446931363586691753356096728983293970782754627125719442303872313141544210700755177159679193557557176068026401647211596915938280619424846348422774181063042366647401669734003911228440144766701666006782417046997609972559666624206550899096773783784687716038062165673593018014646670390415789857403181264902570857208040078803643072403206099371116248845789025660283759076564817413017598668393078066776329012435893596111401384111073558980846741139884767357514038454093319025666096187264884434741029397756833854571175336988674171707528546350919707142354082940525972805167661165136018921696906275806613621815739751938176811830778194472391954341651938018979736969592383911026386963298302796269111940910546976394953464439814250107869035092629640199686056958538751723063267903846447459474502186848701606283149327856780992941361183056017304659637393621407229657934831009231509413593468735339319414776285977703756608501982441407308603769734489287366761393001611874211563241404163823703005206552860321041562543618869535448648562151935316748690894434155864799550946904860245475145972943730243005248845166536533729179832236469035432353731860684626626889904298075243380616272539497908320666039843048195828316332870121647447466676713569513841046975498868767635694056745525653467430040384046030722967473469514141040454983609196806304749989166560302709282942794193544366723075280183546188956557676978276376362686066243132052415822866901627510396236114192922390502499590116215268366307855895435279564761996521497715963236799120062846924141135578914214734511205911296676891481724319347670043315385369675620505359563886398715722987298168782323368857788703715576228729352584411544529980279069509314985824644523764860110224410044216290023263347395456952619636467183273380267323688073327533088107557409692616910441243568967741628079166535953089708442981094460013385759494605960932038850089641741160883960633147270530284829735985036174758700555037244986643654178418447427398092136089151065170190383201184797911261597871616177339791041031782210844962522688286345024174957177730172093031901138147085577938375098526226018453877221573358538626007222834503194496358115599047436339688285155174315303022566851919475194813845325858149974545384870496781036293880787137551134265393069816910007227039589032072908365238916260179182715057569087623276994856007512409384822389518832741977917499427318766361417962090519444619372103387849726381326870539969846180210310158756417315784585409078429717217050488142550978009137914734301887317746291591297582072436045524961808994615503409705914245372612517473701418745048937535761558787671988439576084508003636858776466761586017711116950043616731867075764407077645169649633400370352437155109565168260399236708005745139198543042304613177085526966133501084881968182005094293518093206700192515997257546770563773766136871623520558269840198356425839222755747535910215966982793453955590743354804385539369765274499887027527140491647193715590417297415426741012987346896357229763775116574588028525665764391527741694079382431214483844768642695074566931782278045279790970978506956175786846007782223997640451171305739278182890748511552270714538829938416838572372041125125840356513488435933244127760856154832809084334689121958703658828202663043008153080371924251795803816005398452750798838033116765336159781441916490834136796893064875583801100562180207633104056292649032761321770789622895506337313218990612450297372078612175752197649973302216922260640244591067050663295210805672648877854318581601126455595838666377386841193571497013603323197029772282580873971333703154970173835807091814556220562641898795271182648189766676822051391668015489410204641750195510438995691965481692939000814767661861209568152175452547811943139633821936886319583686886314468669805958352954326585470236308838772922487267231677714794772398866778192107344621574266919433925388753185607361678513912554914171080073048666536241588009861315683911971475295895674792562760083665939053567630561778902979572547746471159332962293160428970097159259066323527374616382156265355303583711543388380550678455269159746259255680555477976699663089908519870749415149864587820409938340622690482628903461209020324417033098546419869112748420818272115018338956520457216055814630396209238413906560513625841504903930945224390603982275629264397326264323350306482047255447103154013963089043580029986635123793373816551507780719724925192153405811335566954229236665240817590744210320863983361539754817994943011562282727091404476491811723217312634921491233680102734474076960283141330278700472249024900629459406148180061443283550611590643065040650247415133977803828393640601189633870427744800707869504474039559239586709465347523864229155638293634622420398935084601974336618085026428776404516317161384733436557046543710074702226768280508144204387460536620172214492452653786297995070865832321655379167181929420197291626421798680997424761329683623863408800338555220560947707611356325377953874931012634429618333834478186246904264235324566229274132551203250262977815369098636168694040067767384367710187126094441842506075271082771131567504194156547812426517705501300428019541227561756902178643728774479151220120829133526783083026272492915147630404972002900171072890847693770210387571984291704919446689215552852652324417377698958087882283858587931584849912877966576201027185358933305012064195934771569982446480287841098135327064673242603316711281922633707401909548048919367646197843447309236346031903566689002850251205163460500239002401517476167051869736166602793260520524181866626423034312040096128354283302912409031080615816724619038080618753368317980404957691194410666317665455182801463589062529586289304102490813547394657269466090608783820088589491064871322055609215112440710481892683332015732396635440944709862352651193652031894980553655004894557255804169739305679997587432746051752569609683565077550317966532091856593181965090531445984503737083519676396826480826296482353510961820660144999815045110772967249733543022853315658342296556871098521127305383850354808006985457541657204729632224424356352318819588857763282306739550241957925742018335035886222629983452190647314204957508661846143215186475454666812405115060467465739610023389485989127517511646102986745505490772353249701021577470147202536862792240579462811254070325152128876112294245577037269506437336651796020185270182177741523082778619849691044631676796994109145288465147406631984631785076816770416239768112203384131894693038605059847646061101845467294273243989044542867091893711671333470439436181479232126373124242661791010688588641063767713106365007724054508228795963387496109045652920202116454236968090159031475343743409808324669897795453789197142946210740496611569912204892927887101232745070661280613720092749136530156603928694072259405632246038465210254125567826501431740666081679050424881213712988104998447554407903048112022942373760515072083348934878757948424238536416134923980168224392409420439094763229320028865502510929884639553824231051708556082503515376522974686700238557761262021410572847708836311925739149562351969350450375618474637785169615530435353946671442367681817876460385266344339890416863886181870348865531700496128452637705638743514472686836311144014210353609223736375477284163977437649504457196125944085702481221041282632633293843924882787103958106637524302585876343695198141985436058263671232025931278693133125086291124132169577761192559896345949331009940695046789608600957247345638927260554143566243244764287528142774242885273834016281860008898114728720668786198868052828123879676067900156729429962280944404240504164047299059717891691126471686261259385217804254987093603540674126493384027156077188470317304307990865202875119659325814631809205722113080304561566871728424923358336623352285370071548017940918871946699899130336848716361056093905622609948749016793632285728508166411712461741494772885155272998295437821983623885034213078631524693894764181141095231324194196530228341327869953682644765029593305809744738042918912238655857672628342240101625707345211311258746504497913355564665874495573407842364795983600329115606570148567434657079404848584017501390313582131018621869726617876784783819668611402168473614235316424803908481754402162726468963270515345709016923296420228121107656436229318369426023722005635078663542560363478595416473576522726387374997275787330372419120208315865210090770918220495652463320886356057989617476098675353736754521448320210237711661396947289712405013106412488440338544694337957669515085091575368113474766874406628759077681378142740671397050034495636308123487150948726444989444176269822831366918200686264955675718532499858775937389959032931291228108059318417242704133265056498150749129717986463177968808609600435474265676318802663479324518245139874466847719869966626052404815389675795276465811046322197849289638119485782854705946262483679049035006787913433799458215543125187186658724040985917624751747692304712849559987825970380812958532610992962300916577055619478019683825385579056524717474777400480152685621412830380815557257852940545316730053746559091084852350412196055891296568109559948163976086922716002492840125064097455680669869440367610696969810120270352979531428734935876977584605961107262990967479349551290298344761852338008709907936817685769486788627342267009433647588113268749375303051840418700061102129426321462119789653138780999383076024847297044088612980967694520670300503684610496733984591750470859527395575333219230906493153241733718119037264447473921178878365189782551992583744098217394554658493002061655267574678924229033945105888817420808322424351285252363232104363831735557670402825127997596291744210696460871441725219376078661894354987900951044180309111073199100749574304579449433082147588475596471208449137277431680164188251052900540690056383689992990156032056314045632439506644799471442442414453950978447378949982137671037438493456344885182170518923987179363370917143371893547286568799002463260983883561422311363110539487955759557998280239639483457427639409824325331987297266317380350181881524963959677699410281161381807086179221261840587769731015237526966726278852965183149237945955997781089781005244674617066753305986258285944035645621179988538503614724785939136924445512654433028763483255169678485512442640581845316971167736673349222531082632038807763738624855424601334239221539126762499967715194415489361938177809777164761752726151273409831212424125769265337331441446796263001227326293421596067501164139026436341370630052993199882886945079948338845149159248504040952447192755697105041147696842718152453845920088926989346315742627646379677004336978173011297527569773962829229721520170617284865076658604837342914752345659379351695043493513956494409470254050456320176081564646084678621756197093069144875677746185378399573008195144116331413238835686647586993788074670957807148542299560770550311650614098410924927246744731203818241405059652197478382565196042363442019953604653185762622069872683724692944821948709644118296888358937621089365596063920295393505473014308332523857093885130549078662448082559742403469373454830164684573514852010548927795859814419606088679368617832106343329794950651535561172296732660464984796634025644333915342125692744042488734363168836313147128943388369584036950395947838309619947686121004513795949482060499323579356105411255509225393165496735573616658883187339204195691829771386562953267433882544732042588747701911607933109806340310869158369975024308826415615169638154999013053766070219269464878385667679201645997975581622638178382352312127170071538508375030976376409994881183245643663182983955903396882645278712527191175263873029457157722598932785118143791225227651575159140860700704410893599886514968363743700084851435740976300311814712683091324098883059997374493870841644239404765068574017527815403391498596837857264216302467965726989199645396999703402770615792183185143415412165296037305290062557705648985256166858164146986520317730187395077400110353188174416661662032134456300020270333455878726084601905691882246198816644060207129806559110847808591010615820056188324281867549386266714860473035760540065441733824843577836496172091068756790133786740103709856751998325574197400798929848970308729675196930881849284841396857239340847350192461308328264221213234702777625990841274405495113368099783884604087579767507169482258771122514856818147844061795957143786867284149235751912562592274703210911699385223286427913142265081494339515795205384502100232617533234795084850703574534557361112247739699431934824485345947116168233323484033389029009880715514422619631265313106507224349630241293184369002681986793536890403450988127798337317412661720598195757838662658244199380982201166630016461300486699529514003903229386218260166181470816669235090026513872290454640333729278159518113752709493670678320935082025109583570701106718613704554136770686824761444683606809450965165695415283852827753432108341961235942643847719473534602336173190050964427590587937052479028081770040678242342698346488866100372823785200771334523457270876393237228050944062537914361673314896679663090081911129875256595861918295372769028508791417360122592138387987949464706117996965541312487107370589851790918520979598351275605945812205612504229967715973711135966826603093434564331185117761495484016510337791125885431218035123351391772713208674679927933587889450109225640640975702489228527796016477895597030619474279074013206618781801606559212448955179156534290614727880872932672300774703243986552307573036155070872946153133996172082369735674098528597375263987158531126752484194246653670181819041413292115326118140498797994837937098534044572214165798778129726354967048513215578025535502446383667848246170426849337120126712685569847295504830902144859298418013613067487585381475774634033723446193663222507611710772434607518723291131378103774636069997924550277354567279452552675843125900927036292341809422487701942345012036636052237209273182529713379639617447511187958292246165884101101440958061581407839479631147913873850271934676210504633661227484347131539454006742283062204676082710068959500430741643538246500074610855774513715595144685369236802246312882498961833748486492984902062070209571456073159315063605871061428017164318965276357739282835677806925719840392701649969844098175913306010973456285575723430853137691796790525512591858022013614155949031381018849973412054218647933596173758781983297206728379128983887585139130468101985900933233947705971591951742631924006780971318697897539240684102754102624664800405340279126142596194184586247779918862401115047053921706973128080679739793768975008734048027736813681997076294003499822740357589347950671321059959212587397023540646622510600348351931546068590900164608905961080558916442323981334624644720043739427868585305642448050501806148307635639160107606148092031072645186346321421509039990478812085807346641303393426668186415851710977978098896228110969624067658021407062857192372853889986485746071876528136663047337468531159452097544846049397281346959070815072449740267237784779108206147988584866945486813246490996121068290874268355474556784265830283618901124357618715856820178156572281491048671072128316195556367831532182703121376155787336757894285192780545814467881821688796309599010991801212630539416251950573229584732824040173155785210382641234882960747396923814121562655669250899833023946179873170083802807150615960992972598883093624485335008216955092221474510964157430107508108529175922774285073482550414516453494763252441160108783380657135350162966744443730659869215222718078393319443766762909083574799373944688674684015377753510508285332708988771380135649425111116821047200826391680980102364677381494161267260682066558731881563875612304953287757555918083477177318368813533253262501462616753739981393080775714728564137264854995360374080399423302673543711237519172650949925302434014358125933769184177695597653442406022657479292783624376558771312312988297144478938346476746500960297438249777249014949670277734135364583213187815153367235900238310426783078058557105905744524704234134620432793176192006361525717619710031121683287070951693687180863325440511815455448447603059640655581529876610010746632002072436571643995589183893814342101502561385432937055134928446605599884678770771046897394761942433415370306408290080100572501756900456600652468349754138576745884538679374791964297541138068796387104431277821126447665438969282303902866562166115799106880791256555516109636013184609846084613947518197533094601555123137330948949795409032461041248528455722137505441476300358127160600575229154027084511314892952300239538340989568399382908910741614405708705232519288234139989999297778039780559655280809532275086086340933521956166528132048524216953472133271358201685152186535313108840777745180515859895419566291244594801887731512024364917386749008472180498027437371859050397712962518154468303483924902525503700446898011745651230028152206272733606466291025327789047604427624001599753163537465611007839879276442364837302009457306757896410399381084819216544524631409903090218924582201464222049667073328076258722930541099188792820003266350721560203884130255123190846324395142732500668732351891308283486931408964624108464308197909093204114016676795442092549021812560517147803817282096274159572321637863798180609465979939194330830237869207774181240009790915835764072844851793680088504123523305877680467655716163496501139207896734790079715729219839792651833503141865746206170327021474207101037315592051593016111787098634128564465833819154675062951855869127245638741624813684883459552435631690924292580970248117113938475153877570018151253038481490232860520516300498762272533964678968129216111780701485635084432636480070196152171829739031329279479035957343191791730717531538710437521255406087434048678143805942388971948463165476874819897685020244410270927503944642136770314328966699963524436144774323975590685425380309582391286665877016554484496225692814628272449968138448109139452592747954484364487194190333732622225600034658137355169855045034700152795607479288687718326663198782774711645775480455225998843372964536113147986360629139801815910887251405758319749251936542714491140007375601528962645858907443706144031558241095843085880398647687218633544381832143913401235821572200641000483480047643555674970688353850082710162523677368784879614007904783441839505775853374467006325096628319041466924439987943011090871484403929769981638337111660065474417039029394299317818272142585671215066054149619225058574621073445452764492690087741718929040939384920573457345556772744190383900828350084548387669417255222681683403647401345893642101177337748791659722456744213667048305558488713592364448187917100551115693821488760816988544214568538125334206671553261202560088526370557411402952168655747479963306170492000103707551396323651299814353881046516286482608004843012478987342833879603484970906646255838681776429344875006572437692912880080013475101401378816258801968707019784345419222382200695291798258668728256331829694010183617452019189494301554841530906796893297785802966562887127886553722892706992730686508734100147558761434407733500880098331918317800489143935005571833720808452156526793503916947940493934665953868432303634301440122227996821299861377836572609678348793098669774731839584486426888028397162427288457261584103438586830614616783082450367682862082605973560223599459536076714897123463175444703112839438599356333790338473090216765949690695145920240476206334409213982988264922715065770028477836988644656340611009610361247530648612163242516802427455716428590369478072733538922726373742488243525738078864701389952624737752302923211018420142134658453317252633825553101803241207420740392555556506593304366992280525538473284925811760592779897575957154452817076696943098575039886077473040697406307516367109306968418751043540375307472884861941509646539784018374174754654681213388379833156372146647734531607338177724431178015437882618513758658444044436795694273063151466658154990249672948960076787750947236950433504397936898447275309140584049742910410862288154414157820068215940457319168176085635828743241919099483947450610484865690242649495255841522615880875456995316364578746697443932634444161456865119284698214792210737599412573498573752752538762653289071774386595527841205415357679399739447879917693786358009236146101376068055991980754372314551030156296463253092838596984428405265420006573220531171152970047304230196150111815700456497571494779293345313431488955171102942648662700192942777809850896731972469401255252998017722808914948406207575300466609712276545399061096025816622272415889158135380663155989957501048236308568261136856694103201168687040206515631312153141630994647283085447939113934907302735744463520491172966863122395227272844051093228282262204711184598505153393009627863705764106358900705337547784897744234215772312825571124577960570494387727356519608923029740025230363830042285772859221082317131884214414960744526254769503825063856363837154548281148822679928644773326759425657537525971108211052272499201688637137458341610201154681481423284660726844530129413716311236268798386469587509259623900554781409856432066996979027694511096487576041813050264644370953780232483243059238133536398121102569750164223596846372534892292315854450944271624721226876463062501016074614475861346008886030079551486475154855185701233176751076600446536546803355852700155644604330566106358094015217297462986167407746018528427320471206647846311668505449873774649587686108992217885555050963071871486850620801942151242095943975699909071862582854519740121404803490771953923227265556280257563964662126507137906071588253988310365049461435072142448510915956823927748803801803893810864135231379867146228525737221381332785043467528317479495810073989451297087032617871364160409863932352226692226277371434211520640037234853864339361514502101818356920310718279622599055134064955685519577346522338109650613760594233855258727450835997751064360122278811661921534650008814980616236341964097608237468742274255457994248994357801921245861281758158303782005573992977486091611715738989395295420333038487528242040529016518115426979207366521910584132737461790021608767099660646088104068597613865613391588579302050527542415200951585477590833295923974896488839659943781561353618654575322372284896323669165778904620043756282372093885323676128456669489611613498280617749257962674262005655707235779002708925754050368971600079898586561019322583995646815977615423664079617482178587823108121622132619836030998186321195746019763619791959047227091979849069736105671034029835128105045234341851543204117310321338651112530299040344811879469131008100679388178717155682923685119568113917226197259486168400293977681284085821285132369999217846462624891968964672773765087788052777836673545516362457710616839903331410154759557081105292643999316760727563392819403256064055432018245042369864125904694052330102792953490666108597024535791894433317402284322847211426560735340660721152814677561194278124021499777363023303932667678257101648389301098055432726436180130088775592862556905973490112999580967444435178049782817260760539847837252020618940336259579667091646226326978595492870368969846932028853131070539060994035856956443463528137975452275073525438432386072693320709235292450689807401274918374669256682853243089453817353014660964150706148447109836321627074958228699397415515333607148930775690618654031884742458170773088051938936475288545133085330270614321345650904534620100781710228667007632594253963013918464628817772345726855462089766884591409338180987276248707655670324888992423044047264604240374500683852905390757861467074741626876114411800640619050486296040436070282923425028334607138741131433419760831697128185465812664167199193769500612314318951889966104534044051199229233401870427670114713533741368038856352370738170069079918828316128461958978208398385520195452122544050247371124850708540089601329186026376644385098413871802843185775006224044504207721963869836307839524904274225836571992063453206479671531538327894831033755837488929941163697354979124772675523424383527085685095164999582803752584515306415556110859018850430997459382686596944750569954896944818428679837353383258227662519171606644315013972024117730536113826502112069215566343557740869942381515060733592675840126706071055764603687846836397533469999090780178073404750891480184879338311341022585412834813371950168614959609704642476178684230686606130558132816001185519081458258320291607899670578360261564933413246658701507695803076139733926626671600716752930785008883486213445993396306166934475164991608094673435573852469361118889223157495270444647338772805332058682962224273469231942669233504109260426455439237212738586698642654436457382942877701388889402018854380761303250747774052386031229902823718560009584274520553074712588972733526972447265462906310760915982636425576080561950373181920427658140592940820764508539721567806958404059932384319355853243186535500942110407778911153838417173981465222854791993336105532443350202177038867533786357798333211003518527972716869420741667494225326295486233413532286224296621826871853566662930419871123158289737086343959261277283834445515492422392004003242253146229620027857115771904808898660407804401562790382933122294582203828645947820175351591411505386985213937908927116539622132667757266388285554749476384147985050631442493321101091460346215495755974056678420751142746689499426585028180207450264632973139705184751267861771200866481099980355298616548145079693707712243736935375020161360970223976915035919118011695570332661389579032920341424721720645824216503359216207044134986010771349765499828002869174367682833941356732728278107541275970637315902849029161249126177823491238720813265947193700164127322329403539819674713701516303155910098098191277213046951725630860944959036556182070180088691827046674404262802774815085289266000966186455116459700417068767036143864705839721498239093946314415539678381625168139724221365800916798367538296028590253953948982311276928167302772557186465048609894094240868059041170884540593883620584627404967711906439875189793107746531767514211598662553876195480327321784855635703182443415109443116512807848433181505341193182658819034868484050552304470873889076745222154562797283504612673780436166861206957762731598773204628834497681940950491692733167109502779897298730147889074780566634526509801032022590892097243088037875389176168658376195971094364299293546221532543643221825142563245076591287179428979528627996788996767307947860676535395397321851206125423322085878566196991791053487995376755951475174667713458567035850776647275555834718275315880721375757076528376004734177394176345383780777763847168968615796904701791860616300901146087789565454867305662561544719280029000188278402951998310348496633661845043760545743560485569447581816876945999072607112478656569511015096196415147551293291613588932398400621500327150387018615410952269503424136433891573488408319275241067583713530079242239590515559830283749562422222748760046579696957490260031249652729465279643172300628710444504916691032958998698042657627009671601646679964025197983294980221851170608494267265121979499899216821096445347348711628984113740141298102120274480401036452177145703802195423299591915304907800380142720727139535361379684566095295403224249665066880017995687315265284503086872284265969226045940085542667017198628508117793699777840090207789042558968140753996093961901766535723304853982822513627446316177797848369295303517043474565877653046451391146374128997940643173813140815958643548836147639949795208078198659919344369563786770068754325759962203463990159964400155681334102669213815853815301898655078208705385187458490589489875798224750190039088561460493028066376897362009195077035330499728228718187895533903370315139997322007296391843674769790186419023144609542445948882765382735446498284391376402011767106503896338457975746796349794730012300887605840975901160941301177025577999143408769970740922346615093786694544028849424905508790833373607960155526877295145541752886387357956101781982070950360433534903839727038272882125607130072096786730488464497834150636959451066301811056118233125987198697940886499826699172075282944537034245866215493592055176082920041204407380109705415193169877341508715135839711339517665427046598819069047740177202319328029801693883121932448957933012458538243001854534754045829640889439414644998482090531928585072054281371304578140904272443120172942989711754056049756805580878772436584466161196088864995241394841273874027968847574841892477942073097426467962623729412717338862405967573431974572251756985847673126861386875561385612575005727987086873802039045581565810737713240189892011930569488872245531853688814477127889783584504415048802573075032313750675174520552247956655511270006804297833145594714185807248774123561844582680669411527262893491177826319496223552438768688340418082440320070329728900998156464168899577480615102038422668617987465239026826373604240486847601730986495104299251257061402648218241180962119164526695171724227145648291343632179816212712732204088168520880688538363780513916926082051481855280084232209959439638762989938020696006569649826815368252123683799761066136723230798583370306023292734537005384080978799369052345685226660334425420611234055797106584226039273818139830421091376483515382317819181827186183715722950102811684308765646610874917193072516270885843708028050170468701232463730971597526529050680714328360772785198163271696675198398648168905497278891746433747812257757721661571580428386889290972429579196528877527891968010598915496355511015163319843741869051615163663488323891057149628121504966737910558623921619349978358853232883307128039681619376918257448530910243245131070522528546191987482732894234253084547112120433722618213881575460673459124839240665340983898949450175550292666981574731511774137414904661608865402872883656280642379295676466697332853510156371151127737167830779090877305554057347319806522006781005231407948389934246957307886587914703952132215450771171466397903746620032952710778299051720155882311336615486452388943768590100851560179284506384631854623462733855153486331270256251005405175575276368482644419254394176502904433578378494816313477114611092169548075676236176342189715277086933357401685513250287008064029696633729054879023429440360495921109696462223562858487235076079568627006897405978239610755730639529911654626776293818466940760545802265731968721097085319622948625170811635364771911852132950225587742592906743186286554801479279400382068141984395542284586977232806103140053359037768242710715381270783559283106519650296914238601956819014799281625829594524376404529493426260506401674108276439373324880426412087720859474074357278140556753318930703443042358494996013459491939105758332514138169042047015155156066770397940592625430800813730072982550830918606766157221095445990998663018618124843737948132743325242813195020479467072226989379015210700485587847090868890688421867117745915068348804393276874122651920988071957932042945202092047899459597220734162374714458910775668607182058681344624336808210143807131113702561517700416786707822273347144148718638022044471111774568943160359281618366621485608961582017625719784412402636374562321335184837641556525042587363780918749804109134231978441787538919635067289827031934421551300480051047448583451584394419403673889403233309890346294847475809178904603688581937471194420158280815759879398530680547240575780488782619399389781911982470449210961308673696461886907392683289725558009401301191440751035462018945815024332428347503657738614207101137936751363314321958801840160636639521236461829006341063769400254249867326011968889194288708050465673815515311161516788723042528963170260645986748662127162898947085649359499655284801935765602807345030798375804531008544985763153046800517986747907202584150493401490352421178511474601108166644893596435242624452316218869772668505893618538033302425194260770658376235910311098760403884710035803505009776467380004048575767556440850143106908150908663934590304358490551025760618069881607440953530677431343860208676060872514624881806629564688500433161069262577477306759326036632770712005718293959043820858581927262888330444126766398031391276252388954789599078193657675259182701593396830168295400396280365920924318857403197279697312332985082032975802635377109944111515408769585546553780011674025508221381823554975793706474837808915167873935681106470699187221758521084132543891740526907631206683917300574227879018195997661076799661052434363562325126504110081996503751606409256037693621207515473163815768239600134239886162081200274769123610520491813186691114904396191681770512825325635624439684396549767156208801020651601634719654515536387762739555897717305049415761359121521456350901840726456410751443831265415957726681936666145968018686283727078630110085886868362770596333168524545480015993753232481008649770245184390755858896234401164333578011209131505818552839766965363493066711381581625255949414138257036982723529806940252674589703258434339274858792405029131714600171883035314454983166123279681595974137882523498937522288578279378686694672104098432819498395282679697619152140566618526056822049710275632762192435266783406377866112495690462106756764044717784827108909468219991421716631467003753720206765562764141335654202990894389494302656733514292785784623847761616966462206812589108422062484557255275920319132500723648142908225269190483444652930923419166441813690352318352545438386100473291336233611064319737208866179839717368824043380752720066923486585339094200499489087917634610245019930107954259995864208320275569656826297819217008483723650905492178617036142124422481622872411466939099551366683327644334021219346575965061964453643338776299605891452517556818621363688642573908708326711523405858146017520922431517589712836321299201492079967729809710722730675584483292958762966298779449329872289587025912294487346647297767064613121698918857091964378152127107144502237498129557194440987796921582618943048813911824096731651541362524402868398239653972733220063994153377412129876608844644188694776960814190777208909298837185548615239875210661633783244907122013910650976556978196343488974534093523134719025479669592156354888741492609715826726570058968133272590377910020612392499590745844211557491527940965377681551287798310463120211817852424388145248717086946227794483075809992712758327100832595891666171214836150701030598683711676462640882355791669891703186330343132893478575076281943796016216288285945686540349377536984544177780894554616949479376228702997800212684635581176306398955392037760096891670317113929304691532733469323707752023540951741723655747888413931400178303722590140680811286284896726707863443159018933353248765003247945219595275802335933824139205103733739203024889587676973407885810945270911881422032125718890018237109874870888630466638283745316530577793100741336143091598104639014241749697537343194573701151333390517064710334334919288238461263836645444609862838870325822240312484876925387767701307650231616735531757207442482097866731077909690157702084999413616918463652180889154054237919934213494020944347015763063671893525638792739016030513678477568616936644668404061184417231058066600046122684525460889794060807399227015475507668204557848743767491093168319939668169049023881351095928669667072125029256639154946006283294583286886050016842574848293329981208594204112002954714539733908105441980428141677525676427126904370973116203348802799472211400593738715673734571378499502153137809937815436112927722435586903376408574892363023368045116840174412232650365254490653021699245104899338946902152208176159693594654124247088127424877887493990957925569790651682778626064383251727402881976699554343287577565150917542392366961692912925129849058212519924328101570226517305650588342707856978559492439268276871518612071818340931819903706596850133163690971339845245621613795169466638002337930460621544080809099160292627404572776041298605090105534652774256754040352662009944960521997896330229908791182340163435313076762199937264159580817063975809250772980374408514145632391960956566515611954944467641355392549044756239456009593073314600596805314907717967797184688580769961881687102074236041740729632074226632939895655722387613487845154625675278298932534795824276819045692460494750662151188528047368658862657504590777643687222183591971031337339356103624391379559461975781219293549458979495007035341023789337526575495753306882377130721986164119653412021789826715498692153966500769057349857959245732631621620997612995652164730573124358794774142396384135134666562765972462543491253366111755324075430328369916955957005958663543068829251075740246430799211917633850609761347962795324043575153522083374411312894896950981374864448560739882474822834453444690069827647372048639475826751051335544506233994957465739957139464904449968993431441518587523814929146470535283884189944045802650780152176425164323403035355780914570269599773739262160863222272797560077953120926681388809549519643360656574974158369846597244520254068488611240567911036879806398384089977451580446489516740154950716602849604905041663708681173174059326175702850920104520163470575279190715484505736505400884111661204225502222012157745671483700136270602536487426926162237762565674063087300129016429711740484779076830604647713442912817193075805343845264330982010348369210534828439404312569781595325590989567672716788904807066765632556416849749681888814020129039412836193581524730892536685259565586281442614555924902970177688971866359870248059561793327053509417963887268249208421392481062977592151932567539764409672646524263511177816451695871391438559328188633392539945242360245283906798085818558651042308137136317451615314485889119813342787370709663928511936647761166363353946687554040703895639885616934778601721135047552703975780611016604930283086371174602801554457215153796909836835508181448555899439251525667243770785302248222968433648928135857977306010817859153224072761897117190506764074559690908104677577622771503671176605429089752917138981111135821719497778893363819421138309062004074967348762781991328745276002358102249246966091900587908767610278851394871474795744446373417921891746687326569611610423553408452899234408497603629388917050535075774608506200685681060851766269653693544125637343121306015592628657979479923920727193623796410467136355181247790910820856182061525883483517846510725687607396684346361642151399149922609006080848676357022586826033586256283627909760303075777629151001808310339151706435187447288168335691189809083055858352072192629954104952619544279838419388030937306035682616750603083651512034507014068643312068641536844323903214399089926579866533181704534936396016378432177096549211972093539510089321358537606568900795519148059233590441865770377285978514003569516432311574322905786464760370878813960585439859170839043154067842746399155570990057821163657560756195758106278410958188064791592010057904684108765695640855225893090002176778046446594290683287325408614634871196163043345838248493321965635537750148453230315414360440847968066340850388827480572833355288683858479938562284737835060817179240550129677674829565335002285599224612738776246443976291015747215511623782935193994580400322914140615314567349517593153648336360643295159922097057925659165906438008500883221781189364707583210208875781830272393587464803127108840484134578143255198326753166071663002069097979251414480831903246306253037028862009020806201015537499781238054653902747269599949649377391164885044956805679750824112201303397841254811113169243840122815250019705521008396924658417354621666943994812055217294340567656804029113185786572836220035548022815432345337878725541740262589899565935651826679247967612099706526145914565140305049571809257327745399479362651598702254096790153058462087310884462997562035397349879886665942082760073266860919956185004067887714218137477459049260708151324068479340768446902518058775773979819495611892369934996671797140169753613571666517766756693483378405411771175098794418073522953226185572462917684631339498051187712528797634205676883256503831705758259550918565880676246369945935758915174218020298594396859330606958896533907177011313781737052655164180875442045203316919329476922892210004045367693292663265922679097584873660859103572674764229400431080353199512293010069764997342232572404787071307721455111195215640329798996486211023987544808432537918202556734890482213197925162853797267936974555311830960767043978573661287884916270352631560197827029612612198217268768200056867750391736054399932216407112138010928715125128356292921342260626002532350088125466706874240338940851162186560133398252452152372793615236680030924763199786196964028739569700892717669973973835793611472396509783047305799002529618059732002220201262739377954239161014272914819390055202531310851665380016581724060575927645770757184024979403686783057176146299668208111818766438004390466565101313290577706021258331523696270060083286146118528903847161678147775660657342691989432442626427776419277365226744370096906039772711676281081892396416938547612423066924571250161234514346549430138567063133556415856472674654059058914888048583912735248229585875625550678037321132684409523528452374465058541046988766462108724201720243502381692706252539095426565458586156718736586592299366629252646223356744673121432401090363982994185778646468323830222838124324100599614879987282245495124805760377345910414956624768979691729287896334945003069438196077628052849668583244514154096060588093127954174801455632408408289594401953193217234896196277227553539818036617531844460382150709985848819574254328470401586340264751047333750441918266003090618002373888912668017315147320942842532026825077398223310946989784580137949438344486098644157482080013917033333739303152182273698535700122999355481308416911497193583931481487936734527533252576937473600347212978288612201403990354686454736146439582776638686748450411642433374475400909394226739221104773562292045483734310782170008327334092655671766694147882847602455930663775494127579313879615357217261071583799553443083333832278516035888992218983980005749993216727464593800971108619990252731347015420883474470983453454750071790758816080029441315382632532953964949157631894137475946635662028910393179458711835994828864874582226851004255141473872459534891238219101931767454141321558021512727993140900462554405612350098389053091394405209926051137887018949444263612627705107779802716326797082603008369584088505073343792180488465203144150337313003502938470371954745527141645246655530281731814165419360148149009491693132342074472101816041517221061765123714141221687432660714008488584099597720674605107665531643890322366236478535753387615644313179767324763595608436058458859834276570165603799709908613710275114996781569004847485347461082528486539884625784532917391994466561250092358349942009224162834753209399008986834145637717040748131811678200476965205395301276183910775033584228042603894369780806465493526747081890410683903267706268779473139535489794470242791820396747810388305536141863820157986543702852049819165077373607477566415848556654574588461527732926863467330879991843389857435326130168347232794618416333050201006342816940538789119249424654199425175487882615014438174636633008366305187576217564601686172067207664084542012375369904775127021265538862687374996115217500053866515629655334899707315956059046085491149934115449848281755000887328633090835514559736058547856611574681488312572716333036458180608376225985529844477467429432119340801330286357611427943209581075834461574946594070323678565785772173164638543649604724714110326396897916519645366195112471891869412255687204339712984408754051503051161372847219499197495186489101115693140418907460679755864336498910108191753517443390287975193484284549291980964437512913258144896834131963608041657296766784803915852239767044740851802619187100481187090775744226230928716336137914947031489625509750795440036584523440156265937251549860996776434906982243895120421483795481796274815574191887376084154413376043135031545977272917026579432033149961064755581661660708233773127193589130109595035190560582604655411961449281931330869086619529055905354469922855790565744220670736492956735955019364132459363115111083735723429523488013347995629304902604775736526683134240865320106597008803683671372756716413174854723859371199303978823909163888988470401092412895285721226427501103251529084691062556611934859955720477260955246485053170312697845879532621126050091989589989734674050412627149336949122454606412789020358404490609605061956953882829132846983261633601249274706772254734827435267709342643192824307488734456328657368949654914619350310608454632064505262781359382204524543162617892835284050303385940055129254560012481955115174658538868677470295538956485745550272376426999173215897652694851622442733485934841396398108279636341913612805578472369943407642031919179366459841149392923649934701024595915921651933373929527210780575775761338716612260433507253002618543498562305652908267399441830774462393490285709774803209525890864483598372831832922654889772480482359310920921744142404414356800978423648862316262676341730092460409293497379107679889295323101377538079854342902980752082157667104732288493399811712760989275487512994522628503139136672471439172804514488011572882684538505317177212855839711652578714453023755353182986914299016959751255833542688262744935962318577899713577311103099209675161162717063252113221701921170491103409030460424112937195349132978731778575135769615638456811424578017248190403725500404106446637492470571631124988149122851325269030780821064974724095543034143695721461309539726637818645584088245631870400516181313850625048421441888716327785956194012068915274507097207174430582274605404154225264586814752418981570640435654845217170595514184918140384890660495826211794098388929243044679993654750492631662895451524138972368709416436386767536756054142606203653242763900934142507720009270493344672208242802002294899627620525706715909930335992428649111011710555019653994389327996557938859631295101900389832332271753510882450552491476885189684655402650638886797539380970155019339874307721061399891442203323035316905034935261121021961871986112474745880744332764626738564128904437622590655791769809196542173631201369323035653108369485591530023385463332617864622097466060347877682140120436785475246801241309604659653215553614123490090397207669054323096289484845916250299427035301101357350281936409536589797178570588149302283931736578710169126535569523686438600658617534999256569909502416576361247243311144837072311951051980523571495013618846564996388610578839811937315369892535706034102323820658300646121532161847312850039235633262476057927505299606198689089911440934969068425258790517132426169624124673806645124880389095075277622882136948282957388255540678350395361205657977019706567554491314352972035390444111608676641616307289602231177956839903264878966304087053457219375229985746034104058483067762442190518762230593937886611080338775192853990929437875044337308617422326272046979509810103995154452472753602445983051046289553501403113199341712500831572500156519035159785176819715200211886158184945990124423217388281969087161079660067150145136469415406844544215637172769465453230844750568827214375472565906548794905359428386068506241333567909395676509888311971164981737212687946511826956523366225398644117608555651862550848268820047367670569699457568983755000063062943127927095718634409703138790624703590490259544973659739596859057609982942389568162029521851552426587530640237762837453673804355200214513417598446197161053467656007589728797752676919092179981050239876805232545461789256356634482230679193676347638284404267643961550016050120025030816121293421477942808436606396944688211074269463841632418454014128446865366360204283740530912238548597953625923269889474763329024029537409366377140545083400714864262263367807923704075423694770464185739573447238376809605105876931465372331608029180398330930262284530506792521101246825870081488954460810442503100560221564993267700440161026040736353715411846609386963501610518482949015393729581177734098515628006218119652393301030573509127038783774743602751533586655942006565969204178798952294437381038431753632366691486220558510187633154907928109210144202898477826607365323758676381013076835076435274917950705869280479571066675185121206781827514220755966999939848070908450794784506179800499588567436312459736638912362321095928887121193337286538121137966091317908668548637117789023717409523583040901945963537984640714402013946699819710493453549408120886351695883900919436733275115377615413519903251698362226772985939972117686871819545554099830490157238827985835146556938132554064324902627504697738205728118758274000815340384233497812816785338167320016394418695072859344657607436177663217651606873315864591960716969242997432257336627008593194247618953640163682420561580389336390364613886703321198968176379557746092516350286717167912364309142874516861226433186040914212087906541120100494759694661033981054533999340785011193969500606029360773428915231372308743676391207163215663609596480030821860199389579842902772452426977982162064917772803916643736563377376123502451855488551418638797802914510955648521129065050057027807551411301599860983679362206298833509493666197149877814661764576009386570129905492284760864308961867557131661826056502024714005797805431322233841742249566406650598066147793997063611805584211304795370982308212259069890727732433431880487080878017062278212549898591988098626484943473269534810823521698478538293865761777743800127798123688575660074120497070175867551158189015844473246207293615851720818113826154794551389537266847601974594072038938488662384255499357807276550738032543501706637546455326757828433170796404930145334703155787422266036526407001333070719082720199164657631046771389796132875593913942397612378858627567649239993735912143920024240290923524439394436241725692235713090150874048847052204477385146791107734040833307042123371097866348439048056583118873395938908536554431062887961538712281365021190805264580075365836300456492877781277706767093986625579373315754953807750691610083472478544194204701328970091749211928321167358878938940142683041094124875656023730584392206102004461808560070246131333187408760857932108822774342288891625670681307037564487029959217865564317520363318392682481987858569240025733059694324506565104507979629498925276716838987484073852141827115020074044664833744256435992430306538851999108292383513676307032579845271546472955417917566715112729563723930144744140922418168611957333616492190024059485535319521438968806158683206879085178003047282424342735227202851958690037975132153379691142784885181746918265147858643853189475977926583103214358410257801099585360468440266525408556918626180877040031355582754314085992342525905154846336413503121665360233342800025654240713739214803805460803454488973096235518606364287243065607169713701178127492816262328739512078192507407188460230738570432089561294331894869759925173350875332812116146869992924416286231340403032277296477513552884708215745714040210737368234167819363393955135822398974726614366473195704826485254690874664668105627528812443022717946899390653514303500044060097958812103613886077180834392479539296131697502268539481623987927588281979543614831110478544050107409951678543539689086170148735440916516243813720364204857317056348166494930313063612266125125507833060140419317075034877288879172242135047204567282819765937441898003001670087274055946676783452955962806301476830331925139022645045327026578082549147550517401744370870951607306793658909269453762845180324731883456156136007793514924587010827950047475867131979600537420943831849790805672149893561599253937697168898668244563995698469654723800203241933035904773454254743163861255116634131869555686605513848889045375686533381465125719922531522006239779057410305350270515433447769012527752798352198273361074916717179589768355142866296030865344306541962594061629836556283296434397535205786621916373256401976927309283769605353433552958809994537777700020180682906444366689550189640553027072110231358974242432441571824302633773018625925933245973736321192078291363637824648067612414874946548896665459769146390180991775124332901523662821972693344751770801853016796169841756190491351522732629544759880712370619765509210385540243477962866448075673361129223880719650030980222821354980396300879931605437370894894462067087204195740472888043967074059333255232784772251666148152476825587421910790826826543304189146432211231816464322970026442304768326562656906432860092616111001834430240352461329754099087358672822434342761996246184729328246946390893036786449540206289866224057230476836243492168950900634132087978075481430496794257574409288299331981335435131263797875301647005230662682756865707039233134236408770150893673589564058444893272182103650574388081641740746700060247280783542023511807744721866792691201131592631569221841310565544573300042168017510515828217216559088518513593613260996429097785035445769220757239704994021097552744464507216559063921927828512070124473851067963832353388467963051639378008551328470019346898814703800378303673928909720503713826786658668329660489990256260317156728555565144349390605468597248577017064173259567418011093252844678622117988804372352856210261237015770019053140331135270600617343704497684940099891292152931162848594585970272110646666830722699453687580643671250918293508606351025702905014630368408117955512444559264210330164920363804750493156717588550946945875432684563856695256148044859745619973702346476531487199448420995976235180077889990720903658549545906004178258275465097219347028517942073537006000617967710328981047440638354966161608582950309017202618507592535245636412776180817881447333028525573980835580153711456960765393126368115401091696620565386611357451035912664855027702489833861044520261944010374920287075340641335539676010769110106839769728665453445677899921848272526160030623366062594457808210297777077530059644797609617145690005134642838595729624122558556849402114169214041654307855312794711097113065341097453909265450410825241424901703372869648240355715577304686993806970164319620519526069638016084370502239791851433612112665822003314413037297607645434845979598744659861247386083608464125610414682477436214555657873374243586845974881438033497995579619088685236511589496099563949342312328250710739472493582139143786096821380868052923393814485743950669113834252696380018017490467888270649342938464173679633176529688376152720493135083247475040653798807168956332128129106321918318316438052081099940057391732580194228299610089581468726032324789542235418900729661224422938452824287942548055796510178321869524267045760882033811480155569569381199945744153072809162539149955055186923625541240153837671864293197355533089506108392937156262783807602899914654976742686367904103482771823798616465659673298227787802424380459536366160828484571868124848367174782912617004149802361292968768357451737129153305447843982703998656479469537871362782816082771033202858585653173786270571642458609984948207746439661176112698511963914063621961782185619473916858450250084291686755162653907239161509612527629437957657610757607515464794966418907417493661985275048919023380245614353865138269875454778433364441776492844801592551549036456237567268685562285638136152839141763909140911109211888964520177128787454015423660011530171293196872818843188799470775091485547793595778055993237234853888300258763631753523493675923309040374002353227600960597232754263788178089049889021487662703127755514520210979935377178033191260974331327557563468681415149895012775407991276450455901370765662239188419156298230085686587761494003458351478086942402214332831085860629146825119583767121508292579544164886107546659136535040400644252525899843974320576989887113526855412803908621591946371626986297533689970452412296058233956421942758506966686171480061130881161937043841223743528445586935809606224172532841048465911734968222266466205681600217366347751982254009456728592570354408139001222336029808756876342543611120361118165585991506780443441885017489982806686716621567732618965759883551067279203471417199827591032286690559152194054572621925528573473719524553879219272339666684918235619766186304107755929853883228497187096750537383264019884219295202163593289352672078675570496542022363310562239519240881142148739616825771712970664479202210058642913582335894175714960176550856180712173308511768591367867057928185974478943424292439770125859830936339722959963843149731190385516040904365429293372634307296229854542708848056040028853249269546599674341871633157019761459867839397202004185686965909334444815744781854701601850588297252703162941951659034332512175829179550459944001491679878390391680258286559912810788815569092377887469361752413840426483140381269605007402685730748798192762368458655453981009146751589087677302338023189316711016646296944822979200367675630207714025826467589569662466287218407139328838424533355946120981873428722709478574530466186845236094992009935819355508096922460401476729064986097036748339780318972830401970820421276716488084056169003710912852387531425626253612859199867294873364616912653775473101376781145283228464433360621742990600784403591969147975892248426820955075890062366357480514972061782237318177249007007518877866585376295637028845562351909323614442810958450509916975637134415888858736960025829798048543510847293232350944480964481330869599030377907109471909104196696577763719714315661225376565540836741297858215881019114267686659313556169459574506496014725204671388072725264349114307267143759327998561307213114466150194705075351936530578767467326912627115170245416933459630836137346788305303890109185082926785189178964212957230904420132945262086366573086742857714395315991831515202864326947401331359554304239181178598685909669036282990594281496599645481859433567852608945006443730394154474789237970360508738913701640396674053036356059446001879130054701981796987756265542031470264469186919678765689244434146819275265739090051195929674558793707283035278137538717758528473586394312839793608100056113402218220088102170615866147533193385338258195021396967852359665201990463897045865323419526442453092024014153156088133129798447408907935188116044441108399225504518642101858477132286505197012827125169580300231978936357796834636682929420160373275393726715811592598579584911100817446389948605782591250607460290634081576339558882755054368257903074261583852916262228470639413007463406617323765249820890906675502171576123785660276921107002075532775058199909956457753444301267925576492244427136585874358653473887152783825468211666387842966639846034627917923888398549985576462889652865525590532233552284915732036360698869630925338313666427350504101859847113437215277390583434178303568461315811055659727874900207003481245589594608436115376692493960440736850701381675781450535522091143552282098855139366847909713668703304341456269918163849270890435377620314200464943273091213425777133013994580413248472946796656573090165075845224986081768348698426586330753438030417265354429695812812160709607597432279612588457855314955349808046971986417530365310803184472872675578601870727831451463383559080077056259575354173151700595861343425536529031900800150607722879172775346915465783278330862130584171612100131121164314159246346086137307102683319361677545436577318561586413934432039699158471493724006709237485635327491215533138711047646456940642277824088034908457035331034238770235493428097930302951746583655305876680087121097874003459879446963906406157438241782174564091150404441960666374168492256044355060797743902866524442909967956226091038134869584177295721500307786802938587918868520861935494861714655426060946600919275468028798534077206715541855506038070543887473308590677204835213618097270559873866650693560909639339642463487862774071111383337216775202847843226877796463501163056369222022221890889802163759338613527506787860247824919875794999858963794523290980284902161495740811871252293138896679839774591383122692392409875158597383427963590426429642794389310368117204779866537415193830808722726809094027086039984272583713090167011142501025282629558060661536381278202210544892303626103100799860933735320420175519355066781416148046954527585721640507951493800310329716468530445992161490735923121360707368678671999834135248100421585026354984016132113488670156036488286542709168816675191366025162874188880739213591280665284926356722896803669047922389367892001768988343042473274191960365366253733028482569344269643356348694475598885171627165997435284435531817467265716955843228429212295844333427937771161747370771321579837988213160106266323550338495574697618226516386649464073242746195143459219265871744885420838885993688627847111544491150169688958475671060897540992596121291690114851175576987190933527390934392336711850183657809276875791089218565732623789806121220645023204508358253275382362536615749332817182579361753327071151021893424288961072489020775539721214362379937667847615428335370356808270356362114510973368429215139065447875677273227708637486416216341189541408815973415455636561397163230165717387836031459031893795113829580538013905055254206634304046997410472861613493614634793116081124545117323538540870957918544398040788733301748815010509921922906537475197145273801042503893460451520540626064972240073410709450933943583094186029486341167127191790475430053294991365211075453511653816493122170085277667777789220890736570717880250290250095693712433940824884793677142589174820421680841448600669379875506625463865801199014952979108577011156429244358592444225600607466562142560654875875545769857108111416766155382417952576284347269422018637065960950270156677793147380734093450730813144777969079102607341813600908586207537991496221888465985113156270833448097172662141416021243157854007492420045912468588407803721160214949103990897935469782972735370064515027104028374683923584038174546416996782680152903195095143596998585175881947592087137355688903336987589724987384187131870054266748835464738310129346518047007440439076811958151847362182405477067726729500033889628899446246687442021619481594118934816630126265833789096732211187610664316035383245224306738341623233757990727820916234225835161077272343927890076631420842784786913377664921691746073403224398268428625532839981933224164448815127735707082641849222699056143490696486492959776954872579277482427837422322990107816733071204610914147284002248387718715865722202411024828533918195564036123239360783584434283099086147891928312602821848074658044233043898918478539554115867128919872888449412526378835263488966693995148293491444857175459509726344048312960842540986851927742336617048215597313824613613771555572071136151173108609538452407287148512406566434098959307938092450408388242993262925059260624118399316282455348083513848498299408713090836107000551694947471998926449943731643852786451039661895271401167459772227662629934575444973213984295310228120191705883847261091909146453182642059508506212369446339050731332981840352103877541350655258678123965833195700857496184445420973629822117018615460521129584848942009897601067001763937728440182777129036296050466055931516366977677158502582851936139756423784569800324124378179287964678906799448123770562574224999186243394399269876782245998385025664384846592485183186883738484969648021089225663953431058033603285972628805484809296109993821889510129807606692139153593830633967389149644454143854779596979397339248317288378429651767695819549665460737976094020525117360781194437530281265532358340903650832200891594876339617043001836377573425409246762461297706730503999278027383911157208990922065088868543020261866587702337471137940308006390953347589155846063481746903941867764657100100741658920825382280813070887131460011421927690944419455143356316820716629583567102865850241416399990604370532930993146935104586557001455859306419471613242149827970954255609923470248860631555063284934162359215032283767709084187580823442410716441970455672779605425646567304159946737147423773409214574941211389068331438482298114453021697355860171650209289531799222142641878829441122434909127688074050520246786146127556970599226917461630491003863607042754985049854659285523198163105603569488583582416108999142876279919461724738689675494271601766405274188603757750618338041670678129895429834310777026258129544482953047624596931135513098834645244857874540488311713045019599826770140344582978294888638663404946414813769225516095474113269775841153956847345931054866232868728437826969638854184671384556561008025224328547561262090987651359402688908577202538146587917256957795677040978585873728872430939092549462546715466238895550522437645760603060191337833509372746075044097112281418678278850225520397445864750924556232542213874730431842607581318998179240658657043522903736199800328488669175463131606711672113578082354028991595272965660636140159948488892360743497595796153468834760522516717864192165723963886965060435932758225497943196613252519459862632987363332959845962924819775074904471043314736822036652082326361568849771154928912044449124540583844277653120474597101739889910392000182138859837982194082978578160918795611283234706452603600107495992387089372070894938795067232443032190421305087683212424218681206770849383156883251241860449326954964302710709556403792513799142792891324915524167273959889039383573768462259713103904180663125413627211762557127741093054616183394950803181898762092456492858363455687842898430456308545980705759992696203399437189658219654013851229775158002108387934254343028318834909259491889701632881902087261127945106486685669008257429481062134624556550599684366300152430109990794171527071362912280737778793525844384853132134746999940520399053216121965939436749939648333584572086317564743709322329815302894682857861076751348632178828696455104209875151403069411571421797440305009936540482884439482043009548552896763654760348693876797430711542186673149852370899988326735085805558706933806278630580904445227166069694500378489158972638214681927636280383024607346212706888288584321943206528962675460102230018884217992401653865061806565218815751240106436732647272032362210028344804338146117935698326059863924785267734585755781274995774569299461408474395620986940602817500671859540102075117118988184432609583278146481906862151415167992870654690909321584435575818439720231980483811348051785723380299025569664347506862166654385065201711235136902126995650236453114399669211199903641677401629940775705049142145235022505205501659584605341535589831651679343146915988900928951947082601139680039077592243467071056242074623084792269194992926402079651251948522671502246083763484648198700864592765025670339506978344521467620584780894963514864992779848618482707249808733846318734262335640989254905931568253820286260210229068985113103650030353563100535536644621801062239080669700112545730985166230014082055140303220259993784951867958021117805133096566733672743777070840537107710527604044698515287330016061793175789190114218721243946083951044900123356779753564036604961430443098836353066192125578201824555283141585152408862669192243928053982218103209944366683570923234094129811555365641546860558436622373614918705261840035324838095411301741843576056395659748727710274654664709579784663560201962165328331589990636479988847648120435901701070256311905099706705967897034987142838460065801413955859036402619433185754590259279170698742067450002925831659527694261338516070278345443258709542602832177145279256778964147338127253176244808426982101005646528163884067500827391316110667152450963900365129629227803525135547144906917039760437670731379396097485252653960466307112725801076949888984767931410953779058869070673569922468159251646731543680975731029893575827476215124050773700665637393256072969667703145903813572380640335547297908844254709955630345838259949609852968484231388090320617080736447362880007846997370427228830599305022683653152777829727203995896439214461543669567790648731345688204881021865712854979411168283428075461749512203723714159207132327240974555787495345235994804896656637862237222262026913416032487207599863248590948378399428890568261835006020001127125948891203409812572893733197547131480055457480971397578420554582801129764017496501204297668373357583453456895770653696501330800008746093584349752683751966964124294590678342473287825892468107196478842875183332044823143892786398135914335292670650254701168131251088022705320353649712613874887451888243181575418256959833366854506597177413998445976838819661211348079454487159942742107666504244130707506218706563095002075998813834546846893727416857858824954329612097175851222143099747688510695565289512498109422725774570387639144274757093385560449691927629411672844785895877242842359333351820458520252118834305677998341618042129531155310249586295109960638002507223840698622843256989105715655702029409507883526992957027679835640658221033487437070790524773962017324494257439858643444726947999966170872202406327994312021586516490145569259972944383871651887469726499624373366010916821757434418702078587936892605069540146884168487680779629664692055522558217182939709277087037780752472844385096848743387340841137492683835576463893068892081935814524153257388812196733036368253094671277571795479529327884891004268504471869887621423826993723806151835784796152161756182853522847397038105624260041474497347463759034912978932799610604957979794838597787214181926701272337587007003360893843886814945188721216141527686846829378225808701304612598211287979865457255877104586197092736313113350115910445577978388137470232541658509759851037718953161942666748611716419362542282661160861488289794209265520787999453359132727925985235920534925418664216252368472943781571895659974798155459683548228185938705553986003548007593809097111156959821255238735079161806080219864250984949704800497759891913226035309151134899802031630110589505762201558694875427707541395089690583649959660445259446412751311945625596994382486212002079369669500075019397586569577620951697565019366686568396017993540348482164446136086467096917012670408012102838767447209720158056622833491219699866874927717322893507228753105663214606890226489751192827205397269669495897722936714282084775490724307593120623084774588040007072438911832577285064957127874559777288749262654017385503153509212500224338290794366841599859219277346354495976937603931074656911005614135808857615139139935588319981469659985415464639479375632392593886141916510759548283836668021203892049126499882480802372710339412606365766564148227447570579759927496093579133384690619933445421977463359344061843943692685210902037521632050584602951787608369142624234644153547723420480380817362408111389282343956168322475689702374157671021687905266326300508381856938233108244443941663902912444355520317611334981271236416306388920524117424080635405865299158255935979201885258575526281947715692315843334889955281309161459016522159460337180666824899534910145751543533761306370711620027647745713351153033915261211333505111914175931226801687994657888732922344952789564895738160650692156833253078897441972363514317740891072884724562520482530018801256506493934750564074694280542027728924029402543929910280900779991424999878431248710259122952720515708152128329735619389424420693340550871803146007972687917633840397973239940459031350210387003095526459568950441578289855495761100068628584033274272205144315497058078231201815790494089221570204746420144505880092140273325713179268432376095886736142790404200587864429732887878774660686666248362259104106539141183485243365552268654736603763289678463401587820016173088523467508012873413749340257792367541370144666591609505930881723159998547202278829934856246427101530461026726402943366038390375500250836323727018642929501947994033719220602155717649740223415713420558420721235305513633952687740947459995579140695720037842186673535434433250495262543835491018294405511427575205653075185805220942030852122649262342843391003693537156881200018080071002886335783182208201299776315345749870641292424071557197501082684901682662145436407612578402753205095162757871714324440223733688053922349935504367779923884228506877914844497182200745960637142378578935295457090281220109465839136658163792060443006131738415984292062713886201927843803330084354429512089302493354649272698929994915138389870044813743218291510303492469195099948053617272124408783759922881011356131079038835890878828828061039057233814608453900981113099901409472155857275942411183324258596021948884220340997511415802428630791913198135405475799284215920274787914133980872239795129435452144901767507290825855488880058690210626831691409728846861032280014086897283293753685488817422524478838693140209698164990861386378162709408976327881406984096653132495628140116581030441912568398438477620697360973894611432097893002968951321643368910194256728255407154659866393549564955628531626711858782728004442566394766284728714363820444424056282603597941211536016029747533063692544163345609613011182082923160835426865901349163438046563981670713613657076449966299422932311807914936619406878410574435776162706052963701712908360961001123035352216794673845917577338218541692164278899243255639664342853872828818276608589190456266138712834085379082470198287872448486996695430992866218369737562240371802328306088465299414495094576211348036395354052500522421428792775197598550208298585456991349925792686605543333487627540721537155427530227578255830253965472299874280350298978179961421066278403267802068743643251027765706703580671552429888396316606047001228701128123220270995739551343521721759534037614772100396823572464675265878312774464557769995191139337275243152745124358157704245811780215313425025072589111088413010208431103267964233907815319621131092639800154404907410558317050841708481360143843300548594980720820848338041864866031681168101501404115076000277625393217603215332105056948534320412076019429056658355837826380440184976118402660286079160037132943720862624274931439610184525445903052296252576063820750862577732480495993401827929319218663685067065243988107832957198277338268924324396014340180169287675402059381767604044359959375447070924607636428470885644312117933436756028085911341540222800324713578304383633955068684637936528028778467015154622324784938803649932322020047288084311395488042343364334914506096845026252818712368475064665513949548843000536531740768392139183508906668917859344878029645873780805206892040965517284609677124159248008605769779359604409190814714385659178901076821037348941160310019280031642234215985523453345224604017028565988159132993119313996730030557888312713006788133463934095641848866833843821946250391259964993918839095157610163179623665840450164459146652630647314814475057758781597184320988518019230994099692010256740547766520919474996208209530221635495228552617239426377989951601500506948744047324986772110358495289877970205284674684164445225898697335806756626749481899129753269590865720318525470356937290898451833543415957297647874003451823965779971603783311687398261710238816702140993283662232023633844350718767072837295383226167237138718632466392648932390199703813702942473857036000712397572967701454894286893422507269255358667643723263887718582815759593076225639917265381077042135380672331389091710069219838930122910874665581188505836002988905396539928626469248016492158794605021418932651625393417639237247337297863150867540201104006305509604294656993217459155384818727868814117480559468872773445820090032081806239514133054517226978167968970791753156163634757064478903411851262183058794947783227118820151016052025354369567613480921594337951871560551343267298423638015278173041281055295452771876660710018245155549704205811123866206203357904558095637011200543551716522561299115810652475304851189785555937619603177106269355257171020823298959430076230060646499798760505943848685739260919767189057756991205781692059095207795075296373915057178290501460384974543106506628853598025049932673629583289767210109538756183677521601199979435028230056297272329880569169785081363406488487952707898607856395799943030687631873283465033000619080606811206128476727995829845356515929152343264375627378904086805839741413120753187644183732697118762973682183902330942036011295136267451932814393136781966634443408884403273349248710717547930157006649078365095420734736414238855235788528951668267183891630942299689733758027926799258840532256148370374177100139449352599823347083235128885637503876527436673854085871127554755891345764044017713897336351676488710911664708909011112932040799351538355035387404985525325741971765778029091118248888398722845003304085901154938527953351735557458880405806445526698558745231227897665756152876152546309302283911660498861006972241664181166543075462720787866445613300669533638835612298711458123231863697999281011870686834799251660179102585296692643253493303103929149814755347343707296487731162619354957373187690645602040690734300389277406367582580842061082427462444248193068691000626617017816299716390570475971646823160871481589278477590219526598738366064312179899316453119374761899230819391759631558241625657911455536113491015570408217352043123744281806786695611144013398974694939140646638150262571928597817453199765283129994363881619945646596376014357267300952858748878769994159747972340130201575745531237112244214268045510486150985663274294087741956787950002100908441909808452224192938829445662231442785530258875955020848741309951065545985293117662936733095228712628925161781627938023771568924634967536233831211145147259945769016047462966075179973600637219957574617560877842115483108549200178388422348786251579541284347662015339422779224932921819191491210287430134429548942278559730754301887828189231687416318606294875916571203730989854100114916736870060106991292384862200089853321023153639141597528287627124145731660268805521331513468755010301163905994274528078549715105382370233600037343358226840071536260148321643093287854333203554727777806005161233303664143792582611258626145198001216690253962653688115659451701671558033628301567263611462518010240685866436163040387230557663217526398684417072525844390518302006505414813289074710212826644433622929073115100851520887981944197278553397629479865169769495992119938509696409933428939052308605040551955077135266618498352787240179143403506182639952491106808465074615440785114499722135146777816769290035026757280585129011439457738267350895903175868947306469423072347949512510205872520039314341159919249427338152477822637594715674764472784347019652745818957798851951808405625121206068849707142219277714559724419598291249577844596623219882388306792435692063790295197990417009012303945187300314599820270247399647800878628715807272650164836645734662860646385289444581692981553841063508444519749195192203362274041648469104190082496989967205464646274120731522371470036596405865311160968478504064247083563878012586225147729020171224121298557837859935097128516028468041631896289823378762351334465953923855188776025998824328185328241455027792375173857425451508875084478623158591906159997666137832323449291153934853851885776686745835353652144009316175506380951930985508074647316662452513393763032124470907936714332566306602254417324098432685885097440737856375185735110461374676563818888510044363253251100700870563331009021513923867796124123854598389689962117089269974777831182803628241672234188015729984115381060214034675106128746278381512084461757792170307010867663774880387962028044822731258304751631714442372765913294431271073036774294666526993726489448898114669645653773476445730980782201527513218595980887705201339399707906663871105674927351551276300327569865234965452152723899021678654673011858484094879457011832193512636901206187326335758785174170611982926532404584298070026041169815005657013057147073430503626659110403042489681890588281648442210348105287439947501479688303849061903037324483028349496924363015186258101416855799116198354695262161991881350749546511111952775118613975334516049797341335672903926898258458921188582770489633218217695105430143210411931889110057916544473622065692763838261344759217118021134114499940891601139125650390029519081583900303004643461914466336801358049202971566885495254963793275160691883585205161242389767054230081708088419995450029054864556436037681911776675270264239782327403748851033944345963035284991801041893376250647040555202487517995863159903272263391011205515310739117603265036172660911623851481721712901561840392138066567255655289841278329471069532945648974261873864890708961734938948912998086902787180933983626783850896959073554392821849008335601493117961665867688554636104097249690515458677157522558318771896447778792288917847525947128253016382849463399307091462089646956297395213577468555531102957007962458012054758502278861880224409499945596281629751829422065733688279988798880324758228355858219241568753027646147592690170194662016996804109816043818673655507165110034527003573030221500892804033715902660985975950563470028561120835826608204057105377813345597438519008934343128779134405297518632335178666812754659485581515557461484093626165572557953943732531903547580050312937027825680916258471770743409560767302352077453563324058304532541127380314490139070413931271438790153600490089853270621567476099313998230206574550030598388833666149683943719903188765294872497411280624663091045813234707766892750437837946244934222335767611259940647359778977851730025928722449300473189971947230684433865140328013561392213060072474832219234630497896895796608562391350891620843769994047828225908846717004655669845478881235864459102104814981479048732087791626404781446590336282221143864284120192717078046154463112890676017511023024503356362715460464733590611194181886208050038577889875718360476476928746154119621603198734752080748618558501630712157533817044959153464145713941244342798790876908915376294415980320527180538434995121439475651189273185314252458443478100342188739458805032473953304170933832260065142125392659086778140918578066218710218843451220818408684681477102046027727151527807222986803248261945731365474731188496089000429514378381827191616956417471706372066677500265716942065715421789783592551750191166765180518281453268783588983878354339615224876946949045801333014869622115887550528170209656009862345709036575171605329909050899480608213294970162061899671241137082074624345471849173195138897975481032324241066027806668950069640674497910272106588771305968273824923414796316052020768291884561722856071966336616903315761757989698097480927418200132658350311393534855894454245025941240078042335124294420399828227496588460835456127679875539649570431013508403651341498764071947282849307089865782063436638586266401116238122651664540066221235937058763197093261125442281350744332922491457319383928398760268691661315706850514121824793892817153947636920721044343715948872437641628759785338952175217672399972516717719270283883179740079708148959964111564112051259117605282375980919835774994646906657221737360420016621839543761450209805388680777595303334396286301232063865982437373202966601524492892030613337639674930512636468847558710726172052744065718487382148504624003382879278591584068083274190606082201252899084700989428306606038939859096404879585981329270140385251365556129309507901019831466247714400798548591494820676141698414920417862758224127139331618889891331454874896377618746809910888009194430269707536404236936557531334599053465433803627555927976351685082071910780376802603674794268279092952685675221449698153950070644845415349028121872303352337147024749518213430143283064957754086050904287639243170926465921829080358105572435059702357149009100466665499718331076608959620660448721550188153862975918759658409582333806530728139264988041965102593245870681590295663122213301433142473148659183498114485165150763923024096784129978576656068023151430633983892399493772702439418217542457944774955503396057045981994346997155323261729324420764047409250750336233138337266904859870750123004905964398492150790062498753721201027526024627510716060080028569936967111274374077869911371446180340466597786326319002997873353363063562808380384224930846158563094719510168628451142769031398616949543634319332283046539866740419929707704039113639931206815386191044576353787018595110756201104307151183835644828848417329172258219669687169329898091678845432820036922644015333693413098050561421806530088102434334228701166092832030496955646947499557878210354477147215292343389731135961193736103564759773037346403719032347745993789628700347938298603748049453318634116635035654500149233762622563770613485187154979996616830364887205640677587784252959808211099009212882142043169524251172983507091308781425254706693711623728984553688137144270022834752359485480983713340092941216227981496243176264590556875420345016587992845862184346383960869152790402974599890373401667368897661080152934067472310731325750897964310223735469893221255808997608111012237421142820580251894943232503356244697336347571380400300958216179372787469429105907749054085186844283443922637053335627056431637034747046246991654639904985167571420719369046421569810427937953992300365701251613832289757773523283386951873895229763837019904348298118514623246779702276112113441715726045257536684635539152161198540865979547503300224634875042093637487540257867648905713772001412103721250743457168798894819512804258214054792932921557478532818292165891721864115575564308586767636014803293269952695071852789299825527492161681364417174528244451815256736064431644895219901601021193036664674034090331637719912535658544094554523605530601948255565156060662768453699783476079639851474981088113112381903601300876171352934815749410016192002210062699816364567977117069070414886945298138238525451924830847659383272157789021867447516776889102958330861966003151021537440610469031569926482925923378581798809245845591694483666995415391149265550640146663100030041486708855416096182011353085844345818423588511657330386376955784496925581037085827666381075493060226191811145887277276464711058148203336700602439527517335181938157357733618712116911746031329758999657643097799157772451490412937916931041323331394439188007810666651343610026919212058229706866873999445726654495493631323745202698309395644886075717112653321808977670288694285035999467602056509985054679833797504230241390162894506420924884771124771667138540989807196307357420343179538866768337982048897656622732282269159109640679260877385481154238341906643759656113535637234872732887229036188175032659996979402440136895153228222016366278249210237939288229145204509705133549747772838171267844634177961964151733549931191714981090854766450248053423643071773197091170076504838071460316110166873615012001875571652462500013706866613921470590343810158790235353675246521173528462845385117701823761334534315535444513375091938880358556540266836248080285473023594989446794024611392091205580848076181014302637880864470585894217955532705600841518912239263395555193884322164255421899038881962175594747284237829097444818067746213109140536771682267369938182340275789154868913892525537591453410536069415092951018245652739601387401909931996220613800647538082257161493608219007283944891585468525320643073228607432024287992500076979375699913204215971755612155377055322177572655077451245758039930576479337604530020470349037573842285317722426150350090413248368747641555777848659140512011888566794866709818671580414390041343662081940314330326924828360773830030815790869952942811150729011463476311881563286590089804679512486725548003048251852066318089796839361479287714653770718212622046530226952342811634563711617856053955374986377994848813852959383628170714525476257780986415898349295958161067662417286007926403100905269907243307633136925314965981027340533916346945623107811323707729180353258107524353760615514812576528440531995317609463433397030589404047494105841701018574057549869744486799608587376922607081504284589517657943495027378193355392706827882071516365072426245461886890024889424416531299752916426775212060048805010353359798380375750492665926149069688782313113692565174064592513408643483371228448739611595848650859196737948929139759867552292093250939462403788565211754312746045503322789061465832450638734890437429492699003074879055625455826789978199201839986048614052581792056861631435836928812162163097960069597875779925828794682814911517363557678410444948345343686601697109682571902723615016797017372811610552214390114349550060401786623123190443227425025155136370254354616807782351191673862402410984171156212910030880070274958420060144550233854852321381570405249151193489295554414555191962033837601227275104000530465554862716766177228368581440376813998672405952734959012875713721696593672095123524829647388487757360855981672826595883187789091995367988847062088523685809009373187348993627706097604811725462393779062585290433827331830938703942692660755813062186092142662493097066538418844462848687700758975801141155368533740795758260733937719462514331321990016409950604093129769094576468516655229224583655653413019832897376971549686363170455638362434010072181462051305253475357060003471638657407533600230201312039838422490230165909889896527783405098751896292090423115872194773438959492960136670454960635059412192111725573254370965485818357437229087359466440773114534756591193998762540862284653024150007377821114089231252860585664255201009155397938389315977825775867348775245786506509908493265402468297846308205578494908272762298901236459692839566889480300930799499945353025887793652376845028871989279277138524613529358155452237630874207204322106997888398553469362768122847317257976220165971555762310828223560004589272341057872038414401983371859170776957145497519216498177437120408780035011617754740380660249050289750790820368419883504824943265267640372346300388990721549776390530611019695117061705211571913346185193687843271310312277861639898191029879415394533238455331153959020215793197308115202935002930249720247281779536843260060402961064276729652614109564452018124022052058603037970216107236752110360836019202544454206701048959022011355692210423458047856194165365296236882530066112194931630374944128231499483023165807782181336608103180921067341718457840730539061177476744536504300954318859211817420893588268028703746230880809437194308532288807988686336786690460916569917019414380121158625684900502795569989275205260477431687303429274066895356559582711398385987035867907086253813115519993612390193175962408570023519026807967133116525057334271675121604602685651300444057142712145367206362317356701287761752174139961031743406263101954466079969245614120043889368161185361373256557469850712908210353529215523900176398113118878713399636426547868715380249563559766606701877032945283398777246030500623774997049580617455327137128795837675476259438803492028744059693131605968261036014259497920447781222341486422410086495610773115106692123713728281022583516567715862795196182763876525935458269652457488550892002567200409072331749080557541883755115604198039324065772449775580451764696774095372112502303212697549510949800727679299855346141366899031200963751079987967705785488767280711363294979997523500357528085843333067651114819388478805889105215194906882637675104684394585017503407391886113221582693982210528772632872495559572492249212503447975960690777085175373695541279256027851858461200763514545711134902377880314359698025864076861496759646310077628113590522990448718709100409877121652624774991821410502137026159052450310305222981389242727274968804232774025349329964706616297764871683217659866697561952138654461769305170405755946934741606495465960386674076344674399392513192406900963215308939172722157144660253992664924757527977372962569382841134674944927340675681005094603546049523125311732438750644245557149793055556600252081587011656013813609117674587744212313467735915217051364460166865193486356980829579821257870884551727512017564167005011634140283202144186045541548533655639028847808614967662620879616005498058464361153628640588980348095052489500477555521733007091838633203128540109385004860875079308790581576271565768603206019784387912478857693356115220944667051528508486707373960587403005343351933895394582014719326195827638966701823143032386942791071854951005094633377853343535671617923881959375052143116564355754579207150203933280916481471933636577714823519565759749658098073272357413430511290320668150670952072951842107391310264349143325521188759090910623959774702943273949141126182750992629597835093341269763004934998337466336444538072022024570767873211732025019977630355900148792733156942637110702040129610963804129419951311498006453642976253105334941147359472748456072603343139588623254616411818355260981548715775214904787306313956688867312258060207396199787348743997880086370663463595537846503702913589515161820001178404047336252877621345652273202732393682825053971269092230074534487835656565245120136535712744950352451316191217089823917064723899164768004991277818057005669430788494215188978962641960663189552703307175348107632250443293299187298952395787004234258254450608743311214829009652877375879594838432129373235045052761462933491702026459813445318231877092123402378616585792917908290335218346475750063561749444069832107640371634421176548354010601878328129768006448486191455746554663449745825635463720001397775148440574599254726920796805637793998614093115009764611711545216520073924314243594313011075333633723271684840572246981967126886587879368482797832600074390666710867745770893966405677477833255397686151519225786874682802659598553597267082297312742008566282061401358555587572773186287935751436471844058737711920370546260177910336262039453703959571774512287732715800709966087434447776874097590262082864585072696769417553169178482218011607412989525129875203425597095975061344908067857178579230712249106380857282640500316472091403530922536084142201320766059927661835125658741346756057673805825815188106240545019809697007112922501552800058190741271071630625965829447445011723724090327069242480202970074190790977548484004770819062279989977222594410973121966289879295975853067221831060453122489099212101377317918853876617717631102610820863858542951989317255444124329692250734656736238603363514871168433218393343092624615834123571710001932959277183287992381822817370336108701658213946801006423186951614288905223168481342049335168403720210436781300682792689875150945398375334711798440073245128129919739292540495672393122599647409493479039217500259265344979567162233744912158969356142587624351872675301980754013097368886747334297403535445580281490905967464361379355382816157806059578064458451916411718714767091931117398843120711693780943219178384652619034508890186083853550892056803145971760101031921691206189250973287734393536076884921837818645346679295597624451550320498509254101864303745702637182871182800538444059086337690025466210431558879749622197751076802372579645477207658716738905575536721400393316407931047491125239775310652348808778238521960893997896365985217882835689641576812383636278549775828638257648959921317900699935407745502391244402386350974573422850470023448083753343394828787755741655663663114021863850597991066443562726081308048555377831563876169326746656038853607356286666510843722354737697149219055599469485798817292267055720227531755498120329367547683479859911830064447411281899251553578235692882213423511276628021510295821950503751028980046228634925575100717395730229918729578159535186489978694036830164733553987338704121100161880914917967491621312267697998288304580688880389861919811660273590301238461281918540537599591023235146008901491772502576032466160698321432186593515633156031052042270117660422887684785485214451892971546234879282001456370336170286321499161380634759687373495357589673206687332289449560915542836828869351740841330231248440536161330031732001828458250893292074338263409316491520142770106310727788376725663330245361518349472305104980046999182640856397175622788291809911959676856134687033122637724289825561171748587318672636075102506414530939939104635184368822240539460144373186244781837308559522290127578272847221639142250272443950564896033127174755879648860563011500184267007653964473742748476691678537789638414362899287287536134312198036786812017866670777536497343915982553448667959507691294569002884325832336924760639194813224346539713055001141519127021496313263085546602035158048866019575331412231858954327133428461084463929229200552603646453070306140882358201341861094490944776295766321736510688336521336799190291585537030651420502118031472496727880021104167778731173651107359023613801697296435604333210707595170362529605208028699159727129815813243204311596019014622049872888531710741847434148102843206770297513529431616471167389955593337019077643183932649514954460129698972029131450584686193835732800911259400080668549675001850149445638578006503253941245865820639976006700220083695584331455708685168211054003252581112371128509494983868900955551307159561086589273229534932254650475523347786291014923000837120003038510386309907062017609268031974210176558868137759308267156262315307064021874585237365666827103883935090193680535290305181466747238595062074695378820272435301665964527048586482889714834258840611566719315908719911643391509313871425641858047227262184985950701716495307625508524461845121767933134272074720137899185870181881450258026474146855869122195068489281789526409575181554179603560718443146355104000359555925206189738159446400302390558532229367100665419761234965593697919124323336784145080016962633863995548226652946366240451346547421354215827608825560220165554922398250056502686289652421243926112662553568773000309340520857637445490113637756499030049195543641791756214629676015710047412440666599445985436442353765337418432678456080720422074788607512666125561059029850585575688337043688596510101791164600099435920068347167467672062266142234236893665339137228814344107860242215910407266467297670828184690188613761966249507677820287358856268163552616973795776767146792535058682433200272980888482502018912030200820339468219022287480314713079337332095881900873412241076346349676310267179145714655380583029115211626316359713292415050507334168620846621390794682015131326183176412873180250875701890355697241332448685925313933181419772535992406306270804935814332795592190312966358409779739333019324279899889746657358265309535641869739391124307824107415232249743410120164876308155898738699445944943378603278737844249081922550818857839356404106493118439265818042224152804163292088587786678865320336363966313772162651567389474397587635111631689669564522047778341216331808320020065086951484222263487616793889078536581265649184145293510738968411403070585462678075007458280461662757147573399926481247180137258940241404817830743684655925028355033959810816822790283800505561525619603905075470677482763754865199877199766827127748118312195005068157692739569023535835060785732454065528742757517188387431912085151525127606113271204446555881118549519810494637530070158438482388087335950077788654102842048602411359827831028094699614473393099878175656542423674760116706810837388149577926519817170578059123617355017050591632502108851847134223690069662518840414677056014559278996226759432600998495354492180824923181434477312976255378552134162952130826444725599678759862533381509481257968792137567971485901227862398358753371916463517434557290717673370671463734687462437520742777221018371355194037944635097623515923542327336934784028318474461898345554053216651308082214122636665529920439241431413526510936324563912087209156252811707490917454981767282158476440970911278338320018453838968466371802798331913872108421052359549677278807347423476673435447546165871414878435333671960807969372584074203010003253105253917700632062444645507688069582740821251834153973326141639201985020570382369574867292197060758056075502119116992514164831116612978184730327234118899270301015749599990102999935746896892773099622235625595020091190815517619218074631941563212716284243377174565840926399192344853857140632721116891291282360203025389570439098487720276673773412366120631148201377531023787735244667802815134388714277783019932100014488952877907553175318895072316770337501382193331119453939948167980185607263707361691450878520436015169874895875518247050034392656959037139889243398978635042368150901181111479584701336964181414648274575797012491652644526998646073860733912974566289458856052063519822596016720309042867211697109784591049762908924139683154641815389202312272145133116985163571080315576655645181154158516769717689353708206816681657264951384808343682798620394026078255246342228456353851559424810085005761602940094968000997553806494919451129142505658163443842372329000579076075805162712406106579358454966191379815736578784923844390455209131837550602961284569764405806806615899230284321891022240212742661305882720371936468206122600702544394357542133787551247473148637471990728351088214810920320498886674062084298768672302017251186130735711360505944247776298241373301328524222856117243322129645290238615394977250033410480431337604383222104170928733642386149216789995775749895386757665199588844667005854366821980353687427374411776595510508701683252558506370188318141555261638297580674521359091357011914206918263808808921873975731490827535392924090617483000064735121101601916836349682714212669894593816589417445217770862901656498543243356207399874370527445665162259208236369656042815966149058608111744312940709976356346773286735552232004101544947126248411875965191936676177106416802006313000662624816290044964481926866481309995012526275945583592138226881610777843516191106715606947001977682356761328567875871200339485783858393047888754956068907514397233320093962055997345047138165443944339805561613873416901340509690814416794055513762800613272726199987783311026066119584671470091928345316318382265883902085996876602631442202566251880919853999677593539690401183082612953752978754381093790902469625230578098265031448339065907665384775121286684830123030395187123995820473137532430230361245609828610093383014082081442769871226414986967599847478364872965114469945920876293014051831700193561364465377740425165774568464645256741926992983385340640061772231956290113170866292518765851875044637821104001455462461677265514838163771873363695733878154205804012651442586681764456494821604980803646985019550444154179449752264743950031991048803995020285131711325540214982420693231400060261539906162993001535945506644749833912048263503634706326683741115661235864011253529338094979827611822082093004543200980220727419217266079049619851528455619322104534289169225158365463162638213778697508987161612139955641303494569644138815779410093847997942084196647029926945481919523031681344617506036261514868941739332796547328505180855340658082371618242659951448278344568008816081593695522365197727248883093831906261550503524063538533006376286454148385395403484842764311997780486245298898212788339727756123715332764243188058099190218161662264691171677996814398806801441530537287461214945113285788818679198492335645956629564842534939088778859430067061690151239943846323142666491553728698430934167880290600457752016005620279508707937303878935100657727272983942614983867220968599862548672563679329716984851433227382062054976410055462858711029759576294315160458027601170712348742894384030801272478679246446725282629440282831396777790627997531598149703167054427526776512581038977405071147769960891362978565032606499951268450234863971440632981298950781560095719774542288068014074977885928863028833069399750904267198258319497453783503937906435902637694978238487324868193640189208839010827294853231264650930836919307183469895213728205756224578245628319378223528850245154338330302435327775882411302975613734179492792797834279490949631999033375999587894293601302965034448083756659108821770530141987529449998758879400363207171479575153722380572511314887495080963858798096620432823276234679670370093992915941723948434341223933188823828220815002754552248725855733520652980329056608570698566325270356739905503804434704021057062404562554763516465036346734283821049149624600530370938340642205248172957344079013242050420875767988967626164361495391447568991707109834911959644067445325717643661196295059955945969584735504592411249553056991276464918218399492499714202609874643268336862147079358420714950948575837724668014174567413248196660759418347032163072172470755521220791662408821156582387836725198184970278419298674521868136121205131266466685012907027656071341563407966989806805398931186871219791948297621742609816100486464661608787460917127977015442087812641717282630008411833899782818883586495656579767698721993108971407742419514187902444254740493102621649942379018164087715738182729635276557239995360748500505293766988005229487625442080908139770300409644228030995242001900894157371737388150479323866836042565742133407242512464215314025364422506116795388387436290534283004987715261852180671180233435484757220536528226809396620327371844546462318630029447836230850016202641346519675444663133814431008470140971220199183130507158784750730944252666960876013701701000530573951205090550422480334344086982650604615299443752262111455170158841389711158346640631489831475161232207772667821828151633320900465710253162983130025474325557636069137140709317027629308076195641438657682918722482435427991363876493958273146949577442182073785400517673163855981202845569894254099197575959339094186044558022689304832170858387249631218018511886839746501883555721152059957267110970271800674901521397901197355740052999777985005437328607442838148720091992514947937599674437029818863603569297347107711410667060179526638399513027276570505271329985210035937295694927628740870370351876561271609042766416774929391460287010413028824337097015067227909187240333048857285545000630210598154633904997672033212693204649029421488073563122479332778287097414011042732520942445390294703049617575460008075368920055765256452116943389616021399916215969200089062954556581285153513022584895419487591391162704373032578686507772518051367026336706225130954529527780767625297856920850785547271009825103131179579007134439258309092908673131112505669877107687621625588692160942158635322617901357858394077277315085374005435262316504669373156264914451303380351072448256668481310709086129579980801240888887808133491912509003232612429012878681684255501674135293627138942480246550075392053886640191745757129728880949856193817250518528949358381224326912069883852014064507189917862048800332671051342046121578937165921125314816222975001716444041331066195721297607608387930123519281795349012623426509055757980820002552241749515660530413396366163488418934360504750909910057326401780626845065897181786672784030465461608259832612546784271779234993218721772278646749581150825860275457732746964774882841811052865247603282207347670195498603463600065064381785745139693962873686354539432337663654370121824241397168030183235045680921393047052878902578699606403408944166965250598377114399239753002848066527708354663618210510218382899076603843645046207358955597899763106618484235580493049060591341340378491685255825031138411609696670268947051813872094478742411601522940490812588184596591019229263270826687289037410894553233700834245642877885719940043536961922739412753691393254960939417508296887999500029166029444938794313803795355569358552239700667012806626058538309062542103132885829743647671251884043522387602965095582614475566391810385882596532391020590770558471060254364849742351008140304357039326432514979449825930553763572692136475758763211955961255637161455260403543175094353519110682898312384702461143024970272635346179915458921952329003722315974388145388560057061454858931888738712819601672634769754271845698250643458615884003640133935246042449474634268035168966779933895412968439277884053137962485159771645596119864816351568174981037769078095719020446138338031107497061989145004381519330873189657256968835854733126747143669782707983374120809134479395196585621569949120597413271109537126896204556569189252186848419664294699198705775084766591059484102810308998317460817045192205197130470139772547144991662918949414833839167320810657173508961890584922517191782290328540665151655790233660951569226394412190427624151668648542895409973450410333385542648741739425944914284185574030137512678620516216880400531284576623063215636373107699925789410359965534274296100340194189145255571223174825363244727013583199264982723817983466903991346753220470983888621712340268610750569243097218670988964163704104156201605179411750179414408105045960793727156737911897131819294631902588970761940177258892766012631667473448231983263429272125560922746228352685954742716055620632344193477397990549714632880317819503945831713169206959944212213848197994021000656203246028579259653691057128163961944965531963436667215324436986515806471978566747635575763956159163927015753869988278174208574473120025848879606219568418013519991138648248737908174998025493696363659092907367568705462300373336302061811185319395000772447811330727726422806024768245625718389703560741802923603550522372549654101191669748771891780951201035200295864284873862346525803112632240162328145861267470981853795364653563387647600677084827682847971782870503887898173215432248081386274604769616746463265112297146272358208532018358513574444544546294094140573744598577177666008026898956969991037473581588453909292014706582046722088993704970390234321560986738260416549140039893902608233622713704539405593803361802280698838034251687857576447914041870388090570261377420940000967753764883003847958429339066260833155713913982076826958073105382431203421894419947048202560392135648384180355290760674292759396008608226500817548696408709915697946838963213535562949870515573404610285362749292400189782131140284400633120289466315843079044060306515734536366650715629422398063739806449329657059880618431485830605707106773709318863991462074397248354163498445517351687285318611232743824995398047042014751833369279856856779134960292298313836315857393029287905349223133673860928407031095322005092879744543144451609912260700599965684484234127215226942425264356411195728418038032153902432029631595082645579964246167920778978912034635654088303363773932870606934974032056564947140178666758533882152833748636662755329591411638594719812645384862010452907170290324520099668363471713657938063506182075768351799529436037018055271839570395946893556010103184967528892474192870683511348115716031460749702740335799891676446817590091609121143707158088799108467084916652481608949239274788298838231363438556502002264342156652051894255606218333954476659382222692200360575555805277642077748206247745857933711911294357060911106298804581570559467089107358842726353155686213376618917455721124159759680879158065361761474137214133002102839233311106678191744889412751867751177894788363736401521080009277005757845915612251893681261313040774187393849085753732353751821067514923824066274197802739100462549099352348011663023838420389048726818020991612748639582046880585545767624275045002357996755626533231248131449269808840369057191579036731018101453361877737578183181738137883010990924975834843824315364564938444812978541419072983152292943375203968864636410380807129846489943772155719876409259860702780073034136053323799175788588115582632024307734347379993440744618308674118610045831454868478339558880625350440831246711046290997167409306357917792313382822658916625005330137174376636362661345165476510216284922079435669713642301372718269864016391975211049930179559087787052743928501498436937467799819660778778920180690688176963380312887311382873533262839730011960091239914944444435690850735209458127418844587317521374824399259437677054262432253612080630775722623886285588569641530534391772624463003500277849604373607895741315335267218214779726041981777165040606478553990155556316589734928784570764801214957983762562288672593657086955059729123566774094222073566916821283488634623518024926519352076847046052814501948165866538782277493481238821440800324377821384425456939710930377960420805632011166078366648393394717641881470796330168089332634047652015401268064403308497347425186255092014722378401941648399911284098746286482981784780226359489973212900725070691043741146553680147508763636682149350953752901148759856900727155320412302502541038281070210472509665872707955032064546211009861017437201828991561796243704279426009943531213300647682499560772487010900187360605919380358626232919374553713280271658323133245076841938254856317522092333605976009368991788547985996357945124763048333982162156283362451480274301768739974621710845065134014817301594523401811069025785301654887722657771188112886516210322148204773398994474545533906359876951046581899379028375085027549976782766677874271471570022213689923365219165550751864323477181303808110906399956286570998241597829511319074435794517133808111944762255055051969962818441523965804789550309320325195073887505550758095447147456645404776359648871244553448652446351727938928443082975514607682271380270812538089562329488682041485757716861604177360357331254586233002865082030020683866844939798422121872785747332528770895374655816891776656979513573449501480922092999834553654442862656680915587932740563380416482648543790931219294392090012893459250311037963595888676071154225219843604219027632030884867047024661214017177986186212356265365565058180323868869558597117153947835503130873647890586891771671013798121771019522983121318350500429682471920068842327194453714215778571998500187487490352130033609324752129196000696902301794018511279306940527339379440914308847186913787882102016751961831341004753276165953009562967837178930896904850539898921026317105838650301469892718820475405029687905975166430957094790816101027847328373956554045880187312575400614582886352292976269109258801120094330649453169978809964913173075070974421151514994166525156395308172446686431141726367192726420266991941770242612303457532677876390525913377445356368612342711157786764615422926259193840103211775634726573367162031048295184192828556874685933490380038466570714054879075607167870332361724296846719009886615988173472994898943190408886050981867381324118535177080719745857295157006061958028261422154660472202049618643402706775883611631756100216842390193274066857783916822697610888378725885109911614948322630606931632538613495697173895307706311307491760352007197103935175792744632173600051977378881333413580315735222794328877317823509010111292308703381593341681376316648509806089962841064940157318167507846140486000359709339701710565212439167843220413931855056687819288229197024268728479870961732168180417664963641512972256605825097383768214688447325067885616835470337202425091092678213372824405869016461120130450331589508479633414748843124019390886251432770376603286212590001503999966279902825345532620683784841919228834338793891213571637134302425411718193525959572996592686823944152908649096854594321591209383373271906109972547237264957254541399377117750987786184113894944467776870424401704896809552178068011154270722983731233162795333812248982784053835408809679294365043201223407580050563256437986734860116818326979038226353930979808898423796696055261967064582036701740330487441756075383176039640612357235230564424067759228298660972075493248135993340252591259310604885625686760075484014433555280114837619315838474800286266597676759639314510390227538494580516546840269979207362724415629973180498858995757524220208903951188471556192464153026893111259021419626211857274606286571070783503411655992545390099503576101152314333459949453195319712687366262242874325728142346476096258754035182316841598525750686169097642815300297943567705739775053920718475095077373561816798772474852101510545417284011425654764104200137657136426201505287355056621205401110446663526096183934943652565555141715980764008694364197744247006767978794217584730589357083569702420111592871994462690797473547796588926850506447349169463618176741939550458284066722663868851240885596594401374949433213263828520787314226369062058378188758166622337402225375624505546559899162404744976584625708507628519915438267466609238156200866330187893076315082994118193874398259110917125325211374788592781018179565128224099402062560644279661585944807467163321182351587593999121187344483625385613090948883400645965331597359243391446793683279278629190234335085150981153149841193700141179147061054266329462797285590442308634596238462926361953129215504004892639188589779797710199923082105407658319914997273007152410992848216288564258571874487787337266398295957746011841453489455003573829905043742671755440738344146523259258248280144410257168459927129192661236946263564103379666812952954467184315671893994108922279256044942174158361995272855798936288526570376751683593674467996979747472074266882676411468268416890765159905056145079851901463514806721587057028449281438896191439255310261127819897292099379697957136159904788340104931149043824473326136285432614120276545606654999169430002053557692602554805380937818016631292720459510330822562651860930990100186879601282462874961023584735371403244742633659727500011726529569905473590921376666925670214446952558342919263626665127521566360097499830021939596709315880427806914093954452630018452858288005644152988434845832775140039344780754278579065963190024795445315952801509020913399151025272769198767761535160504326728818579075950719458989758053135648907175237451464513039030840521542631755571815279504749989061742103814000068668453324039211535193872430234599859452424433202790971541941929869588796728487666957473218306038331193910821428388801541259856025968014550945831220689357436341079874622385887597270796897446959474164919558479724610714744517930835385993476941014098045760224886035850726591787697221925202693924070869214635969391582835258975126348408382221825271711467165652665422889648668454439401155036557681752981000628325732227995865165304074284899038435873215856775634852555093574979163290943033999276209811378793553002683838883017027292603643618074451139769984312397520030867045456212021767392949585834010978346578270893613129003138525637762053801614863898600800286611060372624250427015840499534713373561119974678685200676569464333695110344885780903242565187261079306360708285982288243087614174818921235643825532440344410552190131074168529248226355083113041315604522004883606253836168522990352444625702391219806406741534390549874429154381468978659663168675781362543402723110551260419873263983959067700806078815966529863411816904894067579742223737648862575546303403603339176391177542278455557533809805141866380638565467092905091934746994286345579210701459526005421315364123709523983016138247910375489011103003545274429902177300218769374936818228311745753399465913547296633847601146788526004089183408317156670766079268923344237999876045987098851181917359664116102773107155266969061660095303446837910476201994712392411765521206624326139955748728012516011433045307523572482626032544125886196568378637292534587246886150301154128240752259431554975001559944388856412442317008955784309722944721559327765557469921978340012517979339904925583441560789642650735680981945400736706805011387803599571380706029827527359015790923486348115208946442723962098267420628546669225015447410128552633746846783786499395770403746273668502395816871885242971853312722630693150307374202143315319543616027023262861869043044559332920908008998235819447414067183516554846937552729055928573638804506677414201577113999353317583304710020331878051685515995475324222868969979582555470157372579651471310684630648333765745715480106593944760586936522824089689050157791967000344061521111435734697966791756425593070260488090909421155011036929327065081044026839736240790816344368446150420709679077759999394458741545409565381015857534073543251627563062844371659168418762933099369413439893983581139511279835634392050508817551339483346213928216310007975559172929474220911750800372464274273146351489627718493026204461657349345545476596112636249892768614094617323543345001572399983863911348001685057952037761287543681361690897418798636595790295068597033792233586075783135550751690681297732235077553383413042898567634676176930002774015530451791430135744310299433375908237108443484358631679512864426072503866830823623933213565490172697793060294775940489058899997910270455574864903586001323614650902865390220896307687914378252408453362840521919039675413992053926331651795095192182256518511822714502592056725448350594027557509195675025573841566793402311392991919183497686460834645719377158194364551743306062626466367891788032097531758370694114327993243370478844697478211232302630977240181450900450249829831558960025297963433111838376065791324646438990250313291566823878711697192983731129192662969851270646905709268385298426319291510563186828548682273345368870933445768890937849286100626444235819910278507477556179774184754462946607248835523184374175995362556204141691550425213337779456601615205699450175149655748556665792364936433735440295653313272958632852707560635054254011172383183825765930368008413233919748721364500357730779819454747222947007101373241342686077686135979111052253257816413479169043689666078982859242920345244484843055766483066498497000690917521877767430741409984338549406727066015560460254022939913432811994851099879831093182688209268744463633348027871390059878968086294604619767237430134595705939373325650387081559971145658718949442759481240321027729155814180567025757007845317179259298958220963196227222311709300597857859961370660715288197211886017432552640349667437525498726843509725114197856654268356210627266957044948861413486189786326686260885092241586840468204045783216638594414329192593713126844716958857380337937097145928380139878452305231018724056597252994044946328879480380159488496795265767496818778390167963736333379554888621896780401908623454247942333317530535462281238743677705337000075505061335187147908384728549597324023004393641663761531292581405553182245234681350507775386871798436385776752118808577208200075983772381169653824179797686140536461230452194429781499447961176275012993775230239412760525426142336429796920760290407680583734841738834173845115508725746876000120013017440820437528475176822512631194397916090396471365694770359324908155861867692261517686529819522647026661459252389640901357413307912674231242716787338992880660002099326462878646623886337077274055843075326693052816688502723092049017988540775273897231376586474904307419015899103109322443608562659576856394470238455492078904255018143782559334796403320567981270665052258393126926901147565488341682204993862353934959421010915062429063091057577889127126542793351555628182873773303552023478456076539625223191451963124233225095906702861710484455013070311971728902032294501542929283234169596150134737663105286431409688276420647571220155921669288700252971350586466383290071541898457430245118475153682471326112170614636553336586751768093830217263729903870142169291646441562620094772017337746339905517898720281832712716558779158621536035211807774855991658969824179691896214182794941817258128610981126612398967881481154825439285430435961509142995872835647245747963221205153390060443186201556012456384338434238000753861943599511167499348122507890597297786189782424544040358410318441357784061634911623779946650275928630793068522094502580223135098320800627691844824350425465159592292351246544400934264117536817003382181805578779096623436334549573965968373799019096806622825367187255995779637680136190238539936417966292811819884980686502936822905595327353312848217270431016985179180706407747236393229689471815710646291303411565644615365410096985307149827259346864328092901082273273148366147841195621599443005449985777479834485365495840535421445297059519214533293021624809995465541158633871615770066656047996207126325775268354285425208596857986205907108377220151190808838087387951116857632273373529773586763783095979667333225244375773247833757666366232836529204266686697075042707495990116495114436664505828476881252568888642147087040564369559937958939930859741064085090535858746144402904260078521798781400363421718640697706081910152520783143260181394592864700973237299902693333637728721656081890773619540449448904847444149357291251917902556404387420571147398208701394099162654021575776684489338298498990121301998487662071396021663912194829600431255060772661179017705098030183131093195773575049453458715902362808631407699306879308960826975311883218507883911675664817541781386049256836792551049629861944390660608021358192407796337069659819385554185306491258198135086562260767607392873018483237423913426020214073482310655072486826875932673728808263576829370502707382729082869654643931069067929360456944751610732814936062096475515126426205789535825215067438000950020099563268960683747077431957181023628837624955716065203391086172690841247730363239380670309879386889118823124815151458313215934885801049468309219644288444518980094740291489598360833863321648205557465566622216172862701958497301108400422894595737863195421363915367182622666701654290486588488421343965364709401551993295966623834313763339476809065824369574039002173195301862188286183757623670947067750174582242428713798665816404370577400292085598818663499514966546420205873610253165990762566151428513023081833831994445792032958189762610222531442736262165644599251972931035055541292285029042234204812412125457038957309678895519414660839266108566417878946968884775551051897836731522532651415083224205391326359514363855867608521458425320275717084755939110446022202113131040860099313564154218254583066661338575152748990452751287086468314534262095518152630842119031724973110235726588588422121474207336330959101980794914996610597096525656675956603086540566933977958260719532338767614187609417385303423045073594225880803375768470336764476410093498798566396557889235246782027896166716810053435091485925483249370415941026814959158785019327264232474466841824515036818756112653439155152620544140265413105966140857681691152875334614210823381024749019690827997300808251207256721943625100548575533727926454862139338623028815212987674823075920123376964716920184672712144024336362907205873422485038881293032632032307072735748009912233376699159371829769324151261076074978183306184883166377744873365899277401268271169380645448502153241052659221883753596955545244861438836351289817099406235702368626928661058079207040247101279285146919473450521833963817814735548982912576013299268875758039857770954101235013637730444190497006082884677261675308722147122403389654393433448222248825177428373540349230030420765357056559624108551068242707592998781313079472875977318732746904683314893769228071149139669654150958206441846307099595418452101885067249595216184211817561154486167885253439041859509273296842330437671982749752179967886318783138892252444279039365274286530650563634829882776180954924718633919242683692143685149451465566715749873421381870993414432002544104612352079010402722634281037592233592668033705660961261736679230960233622607319766547114371485687940127905776232097674700634862831868646332460915669002550363438318391780242525776341120110209741538147400481187502380971367137546259168076177854650000095492422624431461733063517932352408991042965300977255039494175984315496557684135645347392216162600197650276425695124769035005686604481929389042250141976485323989117431712369336341994735471173073981083959591999224202355817881333856488136677499579486448465450854589642799285324157640858495332522215033100972246275607935506282744990333578622748654323596984700831758725286618317274340282260818695047793457606919339263801018769771534481713500639616669029784023901268849068293826054273435842848337645528999798539024435872837684314176350878980196722049467812941723077135269228774421080735926726914777689787676120874168972668032230101110066205844813953132860813911798875222016973936604355178568847415509174300654937068509709594720489467386002803435426228944656313213313915362390420562609789946446937609510501977441137344678444700460219330940812542773296360434571257888693720573447033465180032761612080858323359696613427901407164831108848660444085437925415599448304649623117115337849409175936509329235962315843987313505563181435309343087986371080736464469799807827061819244244772426801355119726989109160059191542599969071345536163085166627645553520235951920041667438715454494393025586194264830894216513623052959956295283923121610220010771632898580213187863620042603318162359320718518532902577367324624719896984090833197094130428806080916749428260002862612049102099564483538961873019257075140980902141188772397075834230538207182830664876122218228963613964205344691015898102001274029567142389908611644684514543278523245792599966422295037118880367116688738043390220415440382311765768795558386222247864372836599181430572323897439486014917914196431016456012856765944608201351974139687537054294516512560553666953529504563787594119057560470881260675684763345484902793558803451159173203527667411805259625046053755382988374262242562155055107050695234694901869413045892565655857194037984964727142619697136179685495040957200093244649776977128166319074505084955565700402850023523191682263986682020946694697476395686433952257769052267949545261349336799699228968387941402392979109090824135754395748080752559604111856312168558307033067456859151319459391179469734680704848513188724287214318475504891341715444490610793256278062953584542040187651129031913062508824070157717920611871217492074017236318586604822366853866951001659789612475997196017710077599629635502524445913241347106255438585611384026653282268966911718051746833632093126773924663210060684392092540580522456499247458414205374256068446732319644755445234139921813617438509175703087596755451259683950768545019576112137176346156072144442791819979932008417906656935056019222284547738320406558973593556233361171242240955305407778622135343510566339681882214561618558450134043400134844887518356581977048298673677762803035702600423948592733703225738237600390888283963156449390079391379378923656665856808455330821169919929978740340974835406912629967640879765123344483697264168433751716134975801795918964425446073173864853420222463111805602637861517064645408249180810936839561018243554848997158924910596373088682451969073728482267513452502529479839525971444807137017063027636351165437169153954177118269348933545163111339886928150058995204698055682665634701534094352803894644878439784361604434367274876137513288417990766475235220333442477332409379732324393417327865503474831925498849004829079987093054188997588789352538959855224773752167420991219876137532645867567666933479662492615395785960899690252215589194912453161424151741827457773792093882222897071917040117232478985169300136939853210039603497400103408658379325579240250777155055336473197138835977003120969839351623698093641812242006206527999832871759851648144649333921030708528681421483529904802061470273040152619276720391823402697078419399174044996492083674828245032557478453611818047369851376076453324265679944149182590557719323205996629507240287125720978382829668709128060663820024332683438482705445046957280018166193498425827968944822494468563794403467537360207954097934917434719832248553858979370794328938119271799942676910523510602450223831873385179069566754092358465319494824930207637988019429723515792147666297261158378362613915300442252785606461365105505451990065381804856400437838351336622185864582036604758647203951291981020496634327977190770596699963778273607412764065414756915404949670449652298379772262688470869282959086198328620389197766486346438030908297451740369563253030878857479106674467419436701384376380243069827748881127405794811670520243673804025006794062993408210208689887778243127247341821980408562855114577034016739760509039407301420943745323098131874425011715196417478377239290641236394889220231248367663585536794610132532203476662182054168430860637224327236286604994814392992763552416173133442356486773356778837700071677233591002449208463950588544353998939035613236238493681193381127803431174151996891588448287825833786308530665568643136922844565732974292906117105103007937709628002748481656284984668039177373624784169025240920633086772381237009372724972486239530639913361003472937571495557926490980171246512701247649712843005958790662127278312872039833251273157434946153401363118384618954948235923353022413958126085475374853386599929582874364708532746050612894572053242323342260792114887436580921152853497953910779906227823676294731936600885484078834164158813363504334640005702132509568707640098475120125789336749300653907195298220681438486960548711770344617150945459204447655656724209742351474670010447236185799998226765969868523920170036074280282536014679057696455779560917966263868351448915732789642227662328207434595334876695428693600861304763757007078815503447611370510768166278388895882834541860444446141622400925310824330404642007813572194306108001286777000677123067807884727749295798152913015350340392289240425206289364458396391411838604935025082098805490207950782346895521101854447688734448004579269637439957300960559958305746174908999405731810899960937670238858365190302583411117673222827206250589829251493840866291554036757917547754266159553998901749960645132275235412831089164599804635358877646132422697065771642035620858892945037330642851716070917661182975168861554411352447771595500204393314512901950545805351564416295860189126455355299459049625113694466786480313446928224774838091101929631002810442541631958718220167378096252970765900815734243263016651843557815469363393741945765737352650213306513328157544478037304312742617757836774184071980969505493232184125241871423075714138373036581627500089791944020718213838587061187831509845365607452868888367609329963276630185637008205228698904986969813095594096697382424457228883511610036637455044999293236582421415440084520116134041849127411460785843443884981246915886199957925030579090365126948225203245814786492479437550008748686032689963390162326471147641627244663574313684310834534194246857774616069676244501594697229248663643241956414121540118722670702329844525449064845802951233376341387260975286647076703289275894985610899828374328398732807712014900007778683975263908708903137947759652303355906090198724867484288702398389383266003236568008317867651342918458999497457270351273260792047941158676874603262003057528197609963534909029924604470563282613276773473683387618467113104245856201567245742262805904297227130416334941118306407346009243183240248238875145208525270390990487792836975465587081140344626798535722036641048090325188427855737310809012581932737911369721524023854605203967939228034755275331302748757891371100255659070142988350693857033436371728782484080978569420233714219632160023144196446742297319275148669573631189678021344510100137112949004012772588944910346359489884972483381239859666285670187584960373262927689451907683548161506232878642967402605186706154202649609077753338725037607557322847179087677997271463581665754523868868804210432082843375256255105685311556452958560748469331207513234041355849153831757969839406959856491786528579677949336609692964700446028255975091604034666272299611271036749656111882253325205930847296561635229049599848768885475922456395329946826588044225377481712154538444980535962011231459623624018557271355149978138949292925582138839494716832136104483492689540632000998163515244064178755694303037579250193423737244021920219317293540542181355849402890804056848213780408155062356939767864946474902291766666121954637665227254745336409177222175569283711817813674855487021035080610113534659432565528279715012437139148662142458018045289158383420325678160973823335423172465638534424035434330800331366462124517776739890498023750224797865605321851521150737216605656863205084947641392922330908573137671245934143368710442728468101739358058042767147434956146125309998653862033590771225116675285831810661404619444646644183882592798044637851948665275045009890328786336430488909334405774861456978225864644926121700540133733724296622997423072124431274795212657675952551885645934584594202424279887341974614087741485352261090762202486130896847779852372842246108933283601550348514791066009608983993872155004904001790837252117757160862780949518653877802162608058129586447080358496525818380135158127661451837138670870198572407319928752946275857246318676974347364387828708002136043450246278032507070099229464717452807938417161206636167327438628333382776980566750338347538233668707757590747363112534996130906214549580901247172499138110177068043175130498249287047303865488832748265959011860046341584542216885091430629701881575677857682694910970605777358013328353144650125161416200532891709644151700758915983857276294421786457126958899159069654390967632751955731820273673141955969012898442577433701128839652710873036484347589989820848443199167816042545743156816320527782726297190955232461097999212069792145238117003516090586706209499611698305735296629580832040187383620849547934107185605765858563748890060329614713469458049308821104680513615852706951946852961726495531936511379915403468698688461909485984820142564428449510287769710618363013709230426156987785582876142997275950482433485904875314058643299107092559465911327084020252974462426856655297021171003728667826493099487697144982088388468842208496505563108186834492516734562872114292226988557791575543752625086530167637394072308347611368405311545000141784278254590569502125754827798827358227987763209994579161949178891920063329233608090477101544040764975971844661940884737359943732481612759342563985021429574629445192487329147655960476371867919601806902506749861563330261434814234093511836013023934571810779296943917523264207992938189726650163840383156157256215418286865131371253420311677548217404539903768101993432171771130965667599741983960371735884303521274902907793984937191724697821128549682782338922939793957670628798727353736266557493376805179235293098680962130925069494901158448544696152741902417382632077344080145053894752430145535476850919216433447636895830278094249414729543469937739874459253057193085484406565009782762784110889733492401000216721614691193294958801409572156384094211530333085546371353851531921514617020703971027510476715330264203362322392074524967291248543726932836474541600425854296259370334015214690003339809775206489525726847715655982251142290319182329110672174087958543382722043496228316900574647292250588401322867266098206393716725186857133556009653975988889707469725113574260101664552543052170862791271983976630316656034213372916538625888723916328655999488494588523684497828189178443575289386729287205535067937534886651028878986431703760196671898684603699986805147749379795662324081018929744889152864522912341492338704363955983192894559286753038494419320555623628501508925847049583861851220931253185145942197989261431022458734380715880950175052002287063101321683278267914980199702716793548740691932628512989372151036061410079022163638252055111811356874722514390651205529362024747867612648027130908651143979913399395032611138630514209984565870273157877853539417298993839188271151938372734940851113649326530048843949297922605417186278902814603028165344305925083580219181577337927851831211716919981016981501266857402953490932364273689971647025419268780719872511986595501578385011836386578540886863768366115749884433084889100667767852216287023157852168479443488605095669036637753617576443988831807278693840259343022904483480215989672607166750099802085346826348537907065775348004462812265935198192835354019183567644770281715627774869004013069542017264084508453263022365228349374445743466492809796664455030925048863692269719819429687487991736436572614823055462542173081391750574676299380065848999640016809655078649693111667399389754337047929149674813075841504685943927755661339453390983673072118427348867638109617261096185729965150350154116372118428424129154147281073462033129384102665422869753621604555584165319481178531595685376371307971381906844267003177513683189138154339422866393152319649349917391490699100731306665966917970133578030422221884616087882155860451521401947639972946363409820949372098675303262391955258468127437854328884703567692130480846729025814596148149581159092165508890675375778001982501066157680612949798857954717077035100331471198649955308329837349836132871539188023473675073291594040462779584459546398325312773351979537878942848703748834103750649281431019780313999611440693917389253066412417783863618075139075347557964724116121878942140555755342599439008849196074350389935028143524295218907237011911594462425688323672958264345576427914665495507630864998288167658717964616381453741692687044430879314867829233036529785999446531074792854912287782713774093990294127102861086616462571641408301338492688789614366149522460129078320252648706238379799424613902926112117233851064595205122668515816530017287514790189195988800886744782637346884789829168773188671158138410410403683327935223265754748192474726078312715534143800960325790405752020734426861073539628232711173871338056229865765094840524134348895260126191840186496997111579100234296479704171555769210531068219209777163204226673256108209944727614946437073336222782426218923563076706143897035594931939483700744386512539009217101508944754306521934982762364341773902486048851315994055108960660007641673788732231451159622489496079696655008463946681702027644016465548421472680380797107839505114080340311312741292257562733643535542991663549869727917689033017251122147952195768975159560439264244161373502289269887243780725689074167885825556646714966811405799518504574727480385452739994565719651824943597293164280245530106803640211861736513834746617830912507474028478871239087911870917513682863964626000998235968373122106878831253020099350918966559923582480341107863526111545659965540777772678369293428245930572236332997313424662922782604820947026815489380203468340800229110631739090789655989563147232798400254751547818451404624988643995436205186114493022802750167910109152618490224650193787458945725651176507554167056919194039001551702179154370498455716250735983135850195719398750979953137843305256376696983839193725224610886637914040539456191124261347294822569891445281198633807649487604559272166869418025375276002944000302583709169912210127577991452091041267112475313452649899237999855849879898643399676905188950322717352676822301684848248125205536673559262234531438770913147631206788936131762283161218287037419171529449858720749672506897441383513150258833240113626640559071574858534467803512346058659279540880791735421973985965058942024435939968692656847187853904572396739777761464220506659830218626444032310076941094223608138653908097986285268911269591222068293329209939651330170894523995428039524208721381339796264317280000590985292073883054175230076632428512370964491498892634501268645964430516496217162246402456387415282151072220323242196727327398127567787985919420069501938820180142409861480866260384028093227092411861383065102971711679594164296669481661519976557638862613573153294843334164248785461495568857414715967343296267063437101904683140676033427961513726643925861875744640345740735095864060265341953759807724974039027079503978226437410661255898977315690781396296529456416517441602305084465877792787298536721828746709833359934807225572006017577321391891765813931873048096912390016524024754804638289339845392867137404027299434741831262374612754136420156925885545179540054712554894758415460259366389607182706312371620443087805899891741677247514152113363890894925833594617880166473398477223520618837515289108714714179292473401040522090156833100205544425445298300514656185896165063795095407079602060787560275267567738068442544800451436834977442155657063782915338273937145581873729950104582777787673444335494189027398731401036962152039705829793381575798393700372975522513432086603846624478346724736868764623820163044878310774041626570592289312734927661048310677108010454824036773911105111655878399348955497328661878423689238645153696845201826237762361043704881621863097411048064206246799957725993965676802181636766534172103880142519120913567157872767456484442408511426521880170103995950226306072556333283310070588251332303143304430283980014885874285286476268177903312749694677993503212985514610628954765516716566763899734996016835314524153240561556834963717933201347515956217273987655628948007567635648697281262043118906664519880673869204566558319799706156676855893362353592599432216935430213872623904394036939750007802575937578936053730658785929899712627267851406796940708221663957797939308006176394028430553630417136696867306517562728554813264185720873987726859633427601197598883939976896777928457138821554196819829434346864163466240943673235622698776745672708736877100050486342333943530975261503314140120437166920100930070138954652764810549337952643360035668609058420939741526201082009271018085984812262447548133526435903250776429185897966093741236843805196315779606276345198919418545964122121664241359996580576592329485932545956933215772799574112971750143285028035124965621620711033102192956504161740718219503746398208492376651330096807744098430583445688468358287822077546041641399021628828342757389224638855864061068009686211255073548707999238394518289922584470762218971067397228530786228534949538642011281117697827655594377868852058026133769685318561552197935451832964201810699495431205043340985413843176749924022234680384112352752227414085312461270572034496873753377541804818664111672847917429827253203643348206928160120460436447949693850769073753499881713863254626730559516038563028846792295488546156149937386212154534499394333129868486228422300233867934157004395688600042821363028532895236319480331487058105249181878702617479293931509479970217570362466488970559986194961163355277761695437180417451754664301406824081213221939192257660844781802681966738550433367690128512211736002448477286608692860896632702749737342470388301938929367148432820962902726141879865373952890693766554688516147230942479534239563352629907455281390433800696379334762843727103302226656816303203885642912971902576901819056648434804169274925569523489811392043165204023657924540328630653580347585536615112197557135510590035915541858524908814399483165904712645106846513317406429580098119003163023269680191853908166727032834630764604796057853501232632316615556390526168669441466445060122958041036309045307042809127570443163053183552159566227750354487986655593706230608879287912977275410563441547561710550017398948481958666322074986404285905190696606695601797644529094499673682081067440153130040184761942994423936973575511402460348482854579503477741959340871450513871841457484730652364001532776484310454930588082802555413632891759184338266725151867472059725940159926564670059181546012576072254411025299356008198679171790678286571333057939125714536490756047306110257509914723397106995916535255417166208416249692782639320440399814862727220414196487385626099451438311006626927383745945349582865100968024116503685370009054229858373926584789422168026776996402463002330238931001781985297635035593136872679894293890411837702916931476979619528043584586841183087981025852315157893645641346417833297035892991454505077442592910820287116913657729955842393492888751409712579519341396717873611731609967362589489153920157988726492649597534847608478656759493127148711464710510972354260030498091022962252524694335836907696928727724776583913689497272122844658487717252148100430061397912597964400967412831195597841731461211784748298458418091569394513994084471638484284649682975859153697815094290593866729754668107940859019956032587860154736011451137364045689337372640033069045678891975536890400341837157659613555283575624366819453765596774632154182199496437877494884236077020806872597449517343527285713233168594831511552331886542941741026848736841546633210284403965835634233767947939108519310040228430867579633550759526454702699508094451620133321324706019907308718289202263971526435471991695321471765561257955943837579814255806009786891185004829650386055531832315842285137048800774635318319861644367840143705363119660477559809069318023677619856329817178180507730325910063717232686156035421936787038789312552340479762571631551800146079891520502452970576722277644106411003203232495328885799067733742991849174311504315381372667806565061638755121919365047806156158036905375728271355911902558355371951435561595543108130819269340107590932488218848852102414501190450105612947242358882339047648501507254583845271954082700568682681451805839172737422102999203449030684892017476549559722420864151948285298246811205738196065137182753587394803816002197125468109267023345011696232288501438435582496868609258571607601471758771338978666933465275011231286906280458529901640359022025423259593351838398875051046968788231021402222868373871887628036527412372572639355195272705364231335788944545323301167675068087314869416894524818619962546802946936644600992972047361745518316391189761859989407542661391681146542402935400969769397275176275039659036101177695407305915685188679223739103357139057359144829191988304070847041251239075358442893818269763413008880778264569879092647882463669798742475704330974464682159675400002613235119627145124036460887918824733891089599232184334945608318439814677202088995702711115013706286387949427040153112804246385999381654864812291474686176754704760449191453163776265764179694379921751454556728176918686058003752656962139244452587665252408470031341471074082593397260375668331588444095465349501836131262814241196601006807003415288888690347917396883301100657972929213582758821939090503187028958447713554277004758287529491890632479991484823023879317678921732740630657905183400808929218863792477145294499196079852153281891177090244563892610497849574329642979686419150369556003535166328244011694848889092739158188521926356879255870802122677274939497698880652032241277734744581983754660211088498661533921086795990904100521321384272296214257279135576061992441832917578501652978596029865678107653840167785431471115013425528469086204504757181745992229821384343202769099291639337318174875020258667498720762573885361946881826438351903999986124596881385360757415049718658990816290797899852988368475103911830763839635336284621618294132611536375858589160566744077702831075179930952968923314042816823353114405673657532595766592455418722660496997356668218568869076889449668631896526283010847434372807031111686082358123008602147674494585095772039328624230303390372785440411053841756620849348254353837864497691033797547285625354698880427603901230026137992341951207164311342118379481606761941471837163117397967557339339499969446164711149819994685148189192892894867148167030800928463166438037911559126465392032057935287756623208022682432409518238787322399870769429059831124346835552891577610522363670999640499360296890916193637970917654017075940743835095760486495593384857351889666470273651688572470688150537035684869863364704362987361854341366211831345217329092421511438549846158263690965721086249303628005279882779679203810661658265072114828986959061167538229841614273694857630354831943731452192017850303580469627761785664773788150944725218276684069689705708196014089385441309208259239548827824644278482942985152038878647979671583591916065773888188523346538924366413366809259753538383065024691141406939897742970695087839496815377951433796323613142972223006298985425568077927639148451039624705603245377948460005453031941739974550229571606851244459264556509133550120432680451812839555165890934858542105988242781886449562911825435853526730244216681470450673472371510445910840788256356790352431537385673943391788560205732877063157875092187201204738286361671026384464482062151374113844555528295910411577317069060884605436805481633519953683408117370927187595119981438399178873330234110556465561559741305265071369860347485340493430121353856020401527793073096397616724072943130201083764944906176514450601381701938764698139308785906796996677339952776540339596211042433260377685096594032631604560475679411293722639088786747143902218442195904210244648556367320955093056742261262405513292569472746899693938128397793840660816436085051304436383856248288220745652301887136889320006016258741112727186568255843887495113581356082561444806738959994538785556021864009226337578503733058377685947216271118870880475246836071122537460824404632161227502400098849215006713450650483309159472931027492849072787028548147682196582306069740801645622767366337237023504205954708812856303617605520785182354719350471788239828820404860314448358355427093677987940467144828148206201515137024158970719096770569292315539566623398300057730610189638340075637994974698277849686687289911191225368244857710790826706770336132727775234456702529472995330051010017801437661498920586684940975640506980934476773042730130702470553350753628127827263722014361535157833328595110210215128560793467050822123059764949896527735624908305644994794633364942049134304452378652757852000481824053360305963324068823708538751513131734531060249792258974419845572064132088789275781427598620027936917652960067115759252969207446345403896863107731222643833890232662146788815181536375906423220476667778112826230192672104897566313678517269768807693613735763568830672523051785193575441968597604982616843503462008427137106766694793667028520879542805324458884073945277477952570481935194792636340403999689248776121212721850932047937369513748154819161594208822982835504422446351938639853077366114413714839763984448838256070076058138966280437740781918251817823352639385850293515776439385663340984571511766738642758763950182675128596742932357976039873087589110767584973960671021466284718744939557390469415046072920967349504405390926956918379006665709002109406496542010406550119232409097187722455984310215358113202193328789542528288976236275722434536439370142862225727693035317398761839359038684795550900342306906748809413435481495208528816872613098942963285355916328089158889018631852703240845454901603231633823781747011215704464726054488802509905395055858908638354586122880120075869564862549444241437386895942779733514387410503174135539238256525989692071814474352214846290606602355918650494056583877665058578156622833936185272180727676502440215017721013010940275147807325200331426171286858140602165019306709474863900049174749547703967765149761817172647494105140240323614251208584996008258608863090485343009927805965011000737483275826026346949624849953870687592413256352427353454612236067530568685848318486868355408563152454383884025312748346294898264808719392523347480962331131638184137391562819657000346918040736450443057187305938325008743347643763321639801214447714594463830727978406233990440356353568915156099816626941086549855644854077288541638475788977650995428019342806663903060081075215554063894266367071289697982936314590561474112788950397366335952134526476490628403338104756403195047004868779576306287931700647037735388827002281966754270365799473130870304419953577072258890901675116202718788865126940139371133156768732163540696367916545649038053876907148703639589778975192762851925664382662823858058857021570240357957933146891184771117733851072682901262204519553196517971396871374718887811901068205280062186276938344275107380295202363325488243915062764884104399688355131051208496753354551801793059972889838694143814468552725025311676596980057820941597874347851751059013388206439359857202276532796317242765954444727828098525455562950249002453184851274521486448371050723041940051173958611480587119882951143243145010581960465340108967532367618902159013143276221198936866626667783421975498683679268997500771298702800831717606252192557324507806633001492099114438814567877616633009536580622364577409682683006332152718935868595835949054090113227993428719867226566300382111391998652394638840673342664220542392936522032956033441143950732442501201089732134136264883453796699922475372154273141979832670325031185186521383720673120964936525064394452442779000370671743354295154697459174570768255627356563315644356673156569600013888565882172675572567901115177563892997157381007594775113168470967395667177571720101069458319175485232493663683166593906530517851902394395102496429405157062937720328561322576215845450163842160756925230805356311000473262391640492276068086282049876649872433587556041333125469468845327980583495439665933461769401694696650109633708524873766830658186321090213100680776715936577915566352761866670141429364614094463640234919550136153485094306206239635890974840118786034850536096781641775970108216366264599182538209033060884990315334964439594860650578114680234187323314800987049049783504366408928412362781995615683709195048191961685463676892601593726346080882187148180443819426207812232431078778508661331139680770970434687963489782238642267019386551691148717470122177532284624476985280517027885544229796188956446163561324006355864995901829577164743599902402851685104746270610129851612520361919983128630506531115823470456180943955296607015707741662282638328168058623883079050614472255189146916628333336645956826061935669898451639490386981101497515371952121559371868358860926383120557582149922600697553065716400313151531241888475889560162529129287181315448007768999616150239436207840290883175737239373741476637302231822541566194712088442923657887600770454841783659875761407367876285602379700695843007996914811747084272515886684339710202096861699221502524582090582689695858312334850341474441737522394939543284557542525035501271225634255114056830641139936538914048978641594205737456352309527453000436414662226121907173496061629285175814442599669706034077045874962686271724505662059762219746346828476655636477230113297145801897014979702106222595133413384882989106621834118424370787568057700099601789485803969726874681266351038916745082175732307442881808003099549244935791979483023724826106190400145649869177395074490935871877343817920443349125101384964111597771590396814455356036942494472548007257426637067876127789086317601679963305287178253970311575731155725003842709798846118549504279960730603527666113201634783746513529246076382697429465063731752501594253642179915996125011611195054520060082073556956874060628725893688007918907436280126330193665598253293632188206567138815905793215796798523163770567890477214323058689884769791526564510492652878653298509097466532197462113560706233625266529106167915076165936862117012684592002575416818022736419990898421856439115565164532045537760499007498337040865664800006030974247409516414456890218152407070072932911121739015380053680262768740694379489224093181925276990230163548189350647979833855285944580380367766614792345336653401319841937731547013355487756767999417192681693338100723111065599688398273918258739400440055120811924362972643366005197602714806994639295048596392882871238884422507761221007167577893860076126667293501972899915110643452261534477864791751458296627751167218505874010757936960578172238537365416678096667146856817465576590581249411638393296356254896622518278704457346083694320889040016652820092309002132565114038891078829136767148035942312867981034932441540546680189609752123860377358761588668307738564658722038950736831299384542919816162108263226725148974953501347831203730250876290142065268192686301115664082628170197095840973550000216884980554798595431985791147968919844068243773385707797618861997309246663709001783538354320639328631905067440821777726042207510929940529273000531862368527907205597675730788428459268341426498858694674313952061589615954431766993223702800805953065107548109930651850005010039889449238901045247492795167091726234069928304372226041576732636072198302065184485338057264926005282931975521528760712063007342303124832011050298192354948670907672628201493191643013055122067230782006673278284712035590389394473917178016136653308318160350254668612921620185845124091588763541018064056890824786078436750762256149113699221696249250842861164375779384554473587674689439662206511803719058068079097943382429438061657178163576873261154547964073420398123357357897786346570674372666133406949021657980902851490484746930219610546841682739047079055393179474250208056413633028226741430708326002631178384110534844248454022215478244955782804808230556773205313870470104975885009086237129188729626569132929797196762401249013519879835816296772717523682136266476519480285055672158088692795156123594945319906243304821389103469005977119689893556011560739142203429330349610754757758753797992997726089733716280588531067469432170125435159302629034189986947185181685628253449377887587669574599237687687545503046112328017991635504181104655665630611900507345791910122118533579113807905829210466215364171843043555466699947055332056538639934224581678710294993580289096156958109286915704861211096483898546532585424227262449834688108303606636329272856682505263675578783387098998354726238997929474511055844654507821068771028929941350204541815503151343034688574236918882843906218414722870976256249477115632729329911890967353024290594615463581861117665875339519442501408286469055531976483789495845865770815298113366046637942565262264444997710874298920472955854431712314517668847117376514583831783322197495061631002244933591207471073889163455756152646792258752822307545357647934940506800560407857836159435240965276775381519149121508541605262018340405640206268678835564207557220872281038021685455235897864812133610129888937216169076084035697376883029904693263682033719986893806590495530053860739385571306187951249321886715345947243107848371983156489309217401084092827455874260289403647446874058001498956037760547654471880967567270273398214818175502335216187121844696161952762666804758963130379524494155143063885100346365854818558753165876166421076594447310225316877499596876482075921989223295439594574133747339709888358439978803823798277736667398436251182646857365670811949728721251596691342454257600529351683163468369369537282675274428519933319150352754113222494715590392815447072023557413508479621730140225487844958979830245899245266737316019351395782195876191865521639757885230490766180791273986516176290640835726391824577104277299802809908255277528264800973971839939549730220285675963677531244829373037065026020635793034045838355325021537706283736884237146315485200160240866925886701030213811436089203738688275691396774936917984130567714807094217386901101473376772350527624116048817302208963937204393261791767306950638913519988804515966412856285283165305131085138102564928076990649367935158854372672334871128835427751297560423237392845501751390868772495428935788475434768238881986576137068634693549059815901416485749675884813130240460608778823696973772578215350493364382462218865292184980960087124602183244808337392570285458857041138462675258175018899196620993592402215371838659513579138984767811694703818660413897451656481701921598235105090661927467468967757941669052293702100993506272241927632427464431551355785777176554293501837015854008445507872478046220314651630944034531189417632774457690584866937904844054596860710293437597272571987597067162408113356911913474742831271795200362557787605909592005338770912908663861712625356917805152422155005392787468792741717193167140520470787848480855509416736060368548613131546608395042193698153506901795000676652539402109040627556755447888862296713351491785406568875375207242093991044671651452415276699649662632756363976674631075511487811451430605942017807716741907857743658772162224146726850483820440907385719653939840147628275133282910069533876186986540251023139552313014966707244571582793831103434291107627765198700812655626648829177372614103896166432323327601031988168375532110474260042198650670229542686062248571792083064738091052174363563849640564875545754781667700503639906000182481683732423702240253422631276315629792292229350879006541348498896872325178159780122663990051868610022521734098143005715005507680499634797704224603790737329490023122290492242706249078089904236667024556888635041948241058721132655240135500671313482967932668399921320708744325740890279748205037522342645581438688486322726805273499049429866823999695416091733470132150135669795875703468790289971719094051758696984473324891439008477260850460173583091996490766045852093655827948580663828115494827979498603207582643167055767659673988082223731885461956833227461232757252727270166232615886578100027240275887129935090210054593211267909486173467899711696470547125242474983251847644487451177980599390431896950847840235924454994822610138134334182582004557644694202014036662795319991037832153020135147164005199847623626074381528031154937451058689150068409005063442935110032361806210963207234424080051014101363306167795857227454147470868066191614606238231124934269995980196046862377813069395302752803583847804211148555945655316890466314841433005810182678866056019332154119997964552725787148972584551421851080333221756625313928195478952181926530013884443553381666890052502979289618628667075799473264052246569764617656483544815743669541266861789706220482964994274634532890936117049738461307760392604206589037431391426807390275576558552626334258753113865105926080975043275008323329585087202020978103576013210717200487009794440296680770105775176348326125137452869406092542694504860613312321397132085624681458723398385600099908576591758084671111468929712095165768571011655594904456790564301418487616439840207394984193880352719761442641017876683168375648782440363164631448657786128104088847531340995471044170982999118193766241828508176405597231154465059495831261565797354805651798504103153916852527621839628587757154007181770148056858479368575572322395887992997421221099675882214330878468181648212711129694040505019057751686103994867050763937691318378703436152100831517596587745255536192482427712308285668783251431853833305645439787119344154202697683323487892432298766487174047767819314500090041196711894068324064467726701078385378739927267453204870805659606344655561234351142338737521149987463550553775371130508201675359763985360525852180374587225495271060931791034915734627817259926612191999019604728635789907809453334551119997677591530263594442301404740394082335456962215949798709855075133570442709156627719527100523894814027091096617502072849911965564261038380567323316770075172649131302852948211534063884027186813667738710837026948778106138205492853051747445462460787760254226541925492296971311599888400424174424190328259012737100490573802226602377612873077997867309472241356816692394094025946548234903596821143367333896025624106426904570415496697252771116648920279764389881759532788933117317350425506158975255449545138997828843074424596207650870826665810232493616956354724801687158922773022648615276585111251212875295722267553899935688270333628596701094184662183396123970490529177733279650236636730780662585163385148032200940054259587235461716264186826433281248142599697981062909946471952835104900089458777184270853763458405174893996039986083130437242318916857762182545310225348495312995984113155611202118943499945991959380144359133452540137148119817146945345145295313796746624790873849453533677037953008018470804267499669088673823870913072949346139320584607521905640369394604865169798577674308447766634212369452818289551193248209146134144944042966979198177308516110988767785451571032622586228380807184122520485345414673008369345627456166162868166506484691070995789809085991813198340531002652144401094086254558345906889662488746084926869499012672030599576822023234176765888049738296527746066131582684266061778548949568979967563719270637679740374225412839970097425511280573731444771744694405559180542811873244678185118605244544939052767126617301928557843471502316349575372607283556416402358019245040230967729851386108875938709627537819775316324203306571775906656580407239655648327625224903957645138108438570534401216614009994010941467914044098408380441809231445903275861207671467659764673974303246401472516207737271628101065375497993084543917303370676652929287277831566316392686919162212300869926450853213131038939701382776543831459455196607368572524878448985160203505331551466379062664816933701488429741775713720206678118895894270675105060954465912910997942667298272966217381167298795982889285082202858369750849735314392271662685982678516133321159101202317988041847987885613122850316054879940560625781692172431052473676310927428148582964141095511591208055602361845437684021100451695095271234860468361718200340938027350034387061202251547152378861065194243528435627977630356489871431081417461917097322182461752788762971290323586298749854200981808975450926878422672661861053352520857736340164715191869726556064598213153442616985531490036394409333047041908214197518041681668075902866367314084990892341864757445635988512764198364644776487381174053064917882272397029818971043582957433999813824657513611058860601823006356097637377354573098363733610069273929650805206374195638802602739301483941918738467066711445371883864524025879390834419058983135589813121195952794900192470196148346057505298427824291065292546853955128538100179359483286656032507981626039314771465162624556228862719812703840990868662550566737016065055188254071111916356793573353385257499699085913062150596745305693277224994658534361024506814632479744170548547016284969416047710938837936579665468021024625853432199067075700192217943328085564728719157552481722111017485646342148343526334058445002758003224890212826634849236607189054862119511020650218019625221643002387260553592831111685877876511182469395682272775371375135386464704115913183036769273373817692325274576296489861124318395758478684032685746772245354324258954472476065426819992117998109864749918316214799160031966243112547478590170279229183259764118440866017624477339365707563054094135011934134114191799058877557215287139872520679640508315043781257982208547036256443523312316777200019762047235710629484120777169174749775050727893667291092958559075030537268375804732226170349362829303604497055971570222860315658109779182813097442889173692497919501831321882870818037903605357843883587853632002865653811307279927448404857214976415613161330860526159256686148677638053178541751315652551089816429775919084405086216793240394728741018690622195969397612332557490472222617646235084774539432701073962071626801704253570783727620979542666247594178674652030284208122839847509327341817233552883015709560147106241875693977619560283630472230927768248955025974094988010089845146520396985573051284673355900001969413347720807051536719261092742599422061631293463434982264224912293371855904903549369172982287038186292800353863519811261449443684212603400315992761973879313242615815693098394530444836984524747769615409797642491853180472293362414430846381604493380730876390127552913994207877086185159415710881513602020297203338360343285244089254904409850553455668668755889423062065827736478101983691174767387454107939251555013344021526971308535717310175081563233506710130285211815622869661899226382239607191191849853663806181986963494634038576721245059953648462488364081127916058125983723436020948396588305091680955935796099270562123402935810829371071924089935216082960731427650016599393182732432890936006192644709117815471515307240996939092503886119377937971458197714110315701989207755817167867479235106151349052575155675800776272947445177033014033849364927822035142126885007481664879338362088088955574042936579095363260486783582094058642007052802427027623377000954374501022745479749972496830023131744555555535060397400014961547467647506304881815878277674784976305199933583256244257720245914250161792852764543800394277672604246305264319437112659569538355780559448132525191399207074022352329346682248353813854741609057087734686761763979490269584096543672316389125395131882829395196147565553012596261086306730940665337625257024989457553608120355003821955819361564665180164793502349720497060875738426220860536098921874937024961077458610794367044960330616572078661289987805898594328509917538114175256238651157264912138832309286129845229955261848504059672401061249914970974656411943755945745412399805639344639496139449533060949420723282060921915659453751661722712683603833206886554996810823951370808087882140443642010054868305610649669917062875827762677762159354293189119486810971668637915885595882715431711548605671478206840151211797528733315231444218148408735198253837744394708889543806802322013002028692387433928847976080022915171974895495785327439946154410251107705518904735263906665654490843804281267534913071912929166922917949100440710199960787293258703827871494659425489216815768539307401810862804184977098311638324364206581103597881399560273554932433770204402582123682441737676222747838902259384661511593910937783990049308436181969806491545891300585576707625560269417368210850332906267392625693164636445894176185796613809070667148197323909199100042117078105592932474382314568197273570721721964338456821016233623742057619258731778954887789685219594998691368770433502662657039335580570435235248633752069929438023011315698614896362507458723778311579498599830784610106934890192315926586223642773112275589652664446099560450488900568313215230798593926456913409937210050630292204245662220317838009454826636001896187820190975727856313334935531557128039745732303599367439966924462794332796227118934309468781673734488196428035772598804169457128210690433973050137117866227947470087276790869005456000832458946163116386760957442892808580969787469370968814884279340535659581582142668296940845855872143466447824031797835479676599558835740923858693619108852309177301472538540919838138968321944000865766567080421510987958927941638764346722037764466943692043658224540680154391409440781442436312176757992446336266230137839487833057916045629081084779952065412882312460126074632710616575412765514432133420251415973407901662603343740545762123255944636755838538775512096196329854698906872878785741135908337307920369996902201382742957533707411085218946118343965017179665396641495019339292929324838790174623004642061154760186217226977630583932539082963595350015517670576515209080635201678439169616413860651373734536041491847547183308368611487993997626843169363679567100392100650773159790887876187376036631106494620958412189087975926664089122995184591054341031615942054605928393979450621093374816001113317774790692829652767870425953689792537920232924901939047571833747992056802478408273299269096229606598783359689665899784759107937479819820561033008721905667128931564444456813096363954192392594686401327786779422339802210667722987225096541336866919003050579211054991411396918879429722325269957109646620129162808490513786372314379371314034132102571081038024819529496045292977957115369251696626945580492430423563340233182523435828661307608161957260498748114782062304533942216345773391595957841190699010104560988683219372323887724078063600314684065744106260202737248394420432986433005343003831621903666928675794667097158189869027191336472238954367538175413696258047690138286304068218132172470856870085826938909121945704413897508360191414006887114420472408752208386811100365707494223504876333013119141724734627979622784154924725995142156442839640815267998321322424817531635340582951089750982729518658507016313637898789999455250857155399403682446954340082446982735430469981847557096034379673152334706924330210231059614956696219404882196674632157179026180655134287241074400537861309427487687023029545526094552567877439402746989184139971957040695158032007749347303928434418532999365561624068453225595061830325747034870519164637890924145586791192822165851583360778102517554896382701955712971399665604640374383170987404394461325353873564585660384037050464630111703166582874790647561485756827518511043516379934192721029520275538479105640200553507581150097346572715560589096692159513596689311738635998063473578081301493285609987103027385776391105824668737017384744232868414937212534406696888261914341556732756207486087275238653094893600441828002428155191438647391618320488135135152036745977084733185353500963529113846497761910260084629055677033292551749017443054324568646768198923180665969647857558938862834858265302602683890844745081806386967210444767691333901509252844058115226101997665819707958401031188781761010077261865873523057805992376810996286090299055320843347022299900661765055076108381902247198286059121282534275020458681082222649581693348151057884832841352217324014012512457143641992400046291888679464754967307637414272987739555003621992256903028510667956341841473492353868998545650066031191704152988109870545034745206058132357438131326285633344926697354558879799461963913107022310917269984762246965577427551565281786020835465862817684281715109666212892335800885364481601371493548628843584716553226219478739749947954031905974723940218372681940123057501887985615308802232738930775945162566406476324175136194118875496255320180017247937658344171593631985005959454311330581981901905857613883361072422626773718096915901386240987621829199732166023852712484489606699637545090137542428214356424466762011783110984242774273877373340490694863804490282794425082298607421432959302681924514197688577337083118197991820450008281735585546582986448424741185431373167219536561538079423101437996559541736619121044598693249046768410538468952257549990824996921536636635392491698557463717891517679451095458801421449363901492511336001876608032809084406275032975408975859440560586061067563334505404892255736222332145389566763361835017862187486277762849924620663364974782468897201875807931908528623666599012989338803837889646909021164481478310089759029673818210659999879047860578383928901269147145043172680011355909551091785051320661935086843747180204025900296673124170353833726349058243695519842031599995881882054272308450090175885082548779665963862108513216773160162956468912110280196257992792676220061736206119789382250682444408895717238810108378191402454770697955646888916273088445979482987433087987213507157432177059912292148941624356645373784391407207902277897424733788407795458392021951194843012537238899048277257086778702650725553058099729389790486001978228835624870761735738602156557519215847970057609257182115861054575812248204298116677383341980860742293196145551905516062677449600476002728754861502175853429066450115524973733945332754111716052965208919245214693275693778480626265753914072600343853933003812553297533937811102043551276467503307039591364358161308080067691644972515464417026518562033158314262412610233676838708196808020391320717836598470574646464134974682783766471192441279241424147172407102846088960022000243735944093638483463086446831102018497714025717167987212792099833650307474854504950907399697767867109110797850226483682433945876289149907577918171318660105050354137357723500213446947601050742246093288423241062154798834850446494916680890959810576811086537166402354870737070037090334946505582593335132225316217563997721177162334130281798835701120661068587092559280069057283852621027888936899973960450226774878813484253239386260068880723704558379584523324039524399111370008450920168682279621804510021408895655168751871569530527738120531152939010920109773916449879051415507995383003182917930757616935599132435697583034458216763697310154344200019081308328251078761713214172606904333080205992776936299004490470430556674514229077344760225076731730065308826106270561474435886925150047015962413186055583595304915864005843615655732505622472978691345356553694540356209389213059120443110166630490545508858284070645242588439086189931682166458292784767246353121319815930241664271324913343276781921602564192447329656620087898079940821317385431715515610126085507103572097610620355056432823681178858627462778141805928730626654673815539693269430865548903181229401242763368734722587412313356816600139727178943787138764125010600420962771408183169103631180273399781383081671551380273105718985239303333676700655461108533175136197648364323943460561003284824991182648081300901504068269654952709395489411902709921700625073124384408174866792061804778964830373561378390219859623913465950082953514863573373040653844766217310313339458461324941612625896986775792840518281428165722512680479941208652259197169116605249849696983159852419487129956242222957748185248429802885628107743530810675908845290176802424814398660766075306003228874929408270404170944626536037995445747638309528868570109895789361890681448877112441368195449062836037643980422303807687225590715608723404957719860375177258440580197792792502140075873297433643604672947161560982677895965268734516404897124165478886384965149810101357801001362812069049106103837352744986438481618654240661611988845061754886406212576909336465186325069177498366184252352664397923300049192178299335421039033078064716495523657249942649361957420050616796582340973680219933451932661032602878479537127582014737093296220473940505777995831313338571227934444522059410351120469100975299549983749127810681723295150821329888908242922523807596404379233734183566093151399942643225489771849405452252819581401424105766037003462608919566248035412228223365462374085340995691719760869904518387539586567135602174087489611171506087597004059162825419179946348449601223052037366957213368266311874803026156510291535434539223268215864001070930385119425943633688590346777511287310932991266681570358107498761603093653446955839831453352846593299873277103151862578862906348537876028396331130029555975062341402762357313287045218721828364966425937171225325714540612083570416113793911262277018950773955270732289807761145191490157111902846773465871604836570382111531649408392446502411878230465336035705954439057670550307610340491692336844798162590119888117160808161356083986276024178884707250342990705770102675470694011992876303192205553047366986112180600824574243571415249257860737069434307491889154824523106086499857863825223161410306254607906794900232526825367391241431893077284210977560402507226392789332101419634604832589854963334248246904905786631219428241952948029606067236608832979920782085173442409360570592855458208635022620766644602003851406237525686321092146509477522661089260061316498471784293804202013761355368057148550857677355725688599785078889903285400836273871071603188688794761476832071559128660747597293908373013422583271835531649076397929330162911366921994580564106165236136083525261595073241994472095960971761384602249677086793251776595823025267391970304224520512711684130162177284832582911939812117533534223156170185726424405100225878807364077017851198373725959997383268909646588128870991091248736983226562776536606697393867557761906459649320650206488814349648183482812668153729944532745952494131918690737045086688715772090981381428509712061400231496028753852498489638569448241597436384393019412701272882944306280717257255034263169929229011292492064358392802462793374897635646237553393301630224345105803839812526590720964154139514350986514067289814948070897846032056106618971549248129876205651198077740793565931145623972677829920106767824875474122192772935553001357655949186649435127304760537267580220570595332522906010129800896360689671739305154372535091300862926216843620775993341083408218429792719572745516397350573663254403306228135627184971347218916322142326668182211365327122597529300759595126670934364476081846536502980164669945881460764344703120624488396956468542761504175047625098991503436730366124178151213247072524819234767154759124024172181595221661551110870591225211741522982483878751630360513275332911791003765614287092039264651272138741121797746484223507769268852837902453781824981509829890719950842331273678229887631618379293903898240803628733513255657568929175267513596013246662872996846313628958444523527198273148188643816827986190733005712631223048515408231380769593421357395303277742847403925148062137142318955847957094329836846514342195446842759497806135640605681013161058293110496741407380914173802914631039718713224459579484220990199854015716062915526194728391743209306654566707277639057445418776431751093406679260454927082543925083996757894407121131106286769820574658834063407326294828193099945838605994745816999855594288720358533727289534270085566627705017434722392056502272878783625242422665717385829008955774079982351436823937907026194610104738002112715132394039601837419146723610564138047052272637760874829220755246737716381624855794873873996795984312224544857765700881402161699621258189745014097582567420166117085623525632408989419252249823873312934199049647754645754886731830840811709014844855314129369811819163534438458750832124415039256221331335350727181366028571121148745466287091919129166686927493305479465582526978541313013680659307342133713326578551391680697570710037256759148767051337174280136545066046117892635320146642868200265337529852553051207355209120328581193870524527198205569587276632758796785316807075824068977053461250469646433834258109064107962678057156738554542455956983714945050773566980237280430130105174026308233105215332497655061346815689872674864350494639292485399204410045672429757399157052604871588360426206323095018784503367822589715351256977347744387316186219458803853502775801012501737590565765379010510122280464346027081379866741972613600322291352114670997745449347580066855791856871174573251592352463750017741327726568934939420803582618886594582854669271223573220957203738787297235204623605175028922313825370553219107590743851607486771284983363510324145018902700255396312402274410386976164727369126531930109013234511091796159679457556225803966057080422789648676252490248801356126271661339689659825058775043829294259744678097227354455657266099251349060838188755171065511006330912956423775843233100881656106818960509092976937848488362238639005104013711837699001201066746163066912794621955901763897778062446212852143829620416708192082412967995368421415208357360752102669059773834012065343895956426320883152154014956373981394678401484823010712091608225471210232224548162034360063145917825090277396749226119531004290603866079029021562671597706297348112787581766349388314391018012052384138643897896305531047482470542504580310767784522756464981371116151228827949973166689312733708555454072792486440281979296275328248917745736231784555754577869762643167736797717137952913695238546592255273868113561770709653438707278268318621001561779096635707260048430822808545050831268971843769976397654969025117330295997100770382441555046786250101016481467476190693762385064522759292252782728196209963277347467574836301188493177454790704844506049060610240513316776109854181355450967794165670473439553550755587830390596075665998181861913472739729987625285415923138941689037493364474632376074039658523498171038759078524972810432753085755050501867110637172832413522434939527337495878089017835860189799176371804241524068736941825451956092196879266947010901969946001999630205354067087680572065834956813117290229806905619123128516689933359404820101140085824744045095342166881638331548857577654428836249725631008320231699921341109923284684689372180150687647178389642144649316392636419759813989219880022290823243950084801711683660154717194071711395768539143607386494800415268972776816190428392282552184254739613060667044787903751651737722177786702115699382051094814574279345168782772863315225749406774373835108823325955490465692268859893888895762172840033265884038455328968373594014524262017561588174701659766177348402193109852153967469597778823164595379973435429151135976739135261005309856745367528131930766000874128331431061809024946598000579138261768835416579554145319563970083731263963390623947058763580111915920574113400040018973773543711485910710552885997125838461987310818268747780105692586314646647495479880051424886123217457875724033573688866304428540235220023600174362897919333483377565837057262201679116665706425462687304504126304382187427884655105484171043990702597414676011537000858367598622177245254866804841506478771161715746912267354428285784905653960905205381681813118113037363097643991670693026914606104491497899932956774496683380479795930529733573072552132911722469008823147794313017497913487782653940733001475399187941136047562695833284761018230490512265567356480103002465889155019089613799222063621580405624313332275799107714430164736274746022439346461149683299637210799464193047382983949586014306351056374801178259195445681427419552320082842071512626916149499780046418681188124262488117343730301096787161666000192154073829131730188422471578431259718129636043493546026742900481097871472053117780848970501971242232657740127516230834245639646749197078752148073934766035527973582638628275537915574276709297841600953722669624475364318864940268851897933079988700448264101193009626707687057637726347002164517761144136475929433722369807259583917502675201172678958685443370189446516452649937840216030526776542411756752331041220658812724944239765372887250400083170784224949789251876042269446480125372134669440963407924178496650074210932221646270214327175376135579066349622981987805267008201396107026343680339720753158072354001102968102198988426440873746287014873129202105646183572875894034500470427689699426020580142867233590196580406183922430304659462807212994150098430071165205826920449963173002011900888576226072805856618760360666286571978336004838878652241471498005846884419983078929604838668096605761870536572483359663232101832333706622252190608875118777996852615616094210413593343304559807004599054394480352283653187616346957610005875052619822836571509737734622348121199401106253200170339609191606517925572357700940159701426647851642005903920865550554166981021473285701259115048319341450696921887252397849886470609887136436981764259131978489691884009921885988811865155344722611940530575567223764957497507753549918336636032149962234684202726506701596516792624116486613737646371089408402113035131821669630623673181893381105461482935411787474863073471069157787234629602333599083324738797031145572577880313871488270299021260577527219990470457102698633570864488066680225301208651003663604983282865797052400941004899969051908897469529214064587896529131519519618274282421052302136582048938855851064314676863861286199204983385955076730130397986438337955084275242433264196858799151488094100917518937936713556870492536804409573939079498089923473696356595604633528077818288638449011736286961427795186656664536811843692783273038310123870410703823868670733316163902621165635140074953393740408960133181003485090985422655072155257960366074328956397543312054688682829578089872685091274389037431241345289861886728977068123842427615233872622889737978914422227177811519783925913733009753468570526975214819629123168879280884488638641475998664651867032085228538135782330502939510283441394799894104627283549708068997925285110626920640840528788320831516523490086908892327708119952782381536231334480849759467569301824465574643730780183942860214022734714385729269797748941844914186747273413386559614944351367043627848048719096651386220742435488685167300961715641537413662138221854768764770073691992193695597770144048628502883625491798870422681098422928085146395585284331655330455678240547958144988321720978801445628100878093052120327745090248622372170089526892278378244575933364199304092248450714020017092753798633945385596414766961980193574309570782593823416941050495570329376453663176452729292541615890494459749213558778990428736986605600674121389774928931125916394219176071419577404242449443924841605648541585913891292230261602690913024201623961889633192689669949844945646867361781480712118034098642356136654465193249727794131913301085890392479133855831746731780988720929500600092231685488224401812877622576477555661808215883818981541795845249638673741577252415114528715784780658760428377839838941756394490811308239552922079637065678899245196668625417872782948476245507969613833688656747773624266712979447738377573086551691764581520270965548130557865579800639473823419922028389122716486105062665505500611798398907168876930978743652835132053475321201273018175080139575521788040894641733052802309659039165095204490842009791145698059981134581436910947844171301126419971017801053684843468530790836720085913568355994891672940450280483586345919334722247066932957354855804718194175684750064915638014336301427288070043207285954390699526003271184692797388289859891225888190720471511265021109211420169269922013873824359552801804693199449321858018371805682715727872123754398383644097453730604284452439846444512528529601505995683595735202958283749431250199144696224891592410229800202289996656305991135979275312275797388382796818414737811172495114508127270324571605794786685578549539243281126091719363496320926322619000168468918329353219458815004378765189637794755325938456203244937882387540986554412939627334155343226841457273211024099134575922566718375308227543753975269239495305588317740291112479710919869002434740150166186393419773027642870474983965199109574066900106439317793261681685386977058274270780838271008438857072816954419611689257098731577585839971486302584903698673608099629349686501649087469217993963068617922218006369710524985419488587338251620742417266742133783410031136868918577270946254830243117034188091865592418117952647334672206075582306250867762454491396478383927139554365844349208243716858602246929111266437032476639106815345482468848230337190539209574563405443229919737517973095628268772303082440900640561398420516644099250810537411322026460709235773944573257411549866546356479421362342870940386122455856411771079051567736234817611465240055152166348320650935435641871216142098552282628319819582028835707728757364048634269870222239418818789394033996611543843327158264285173777841645573280230292156993463864820779654810063347461983202068737088180907112959630449170304750580340701918302956735282878015599408065188153189875852102887050237254658639478458027135208682501939158905730699741837710186981559038266517654472813681796302088819046319703318766617337934787417766665665773341061596444911417329771311492596829819440447194099740345433665728946969447610296136449958577794029907633963249196188746733286389227920102395453778753065587036131979980970688091508437175929801187582314124111989816329323222783828126023782701372049762397257598325420450920115641222397516317229181176386131092607093338741103769746961687847802901714550591803345541601964909652762562875357038650861608322454379687497093039456964661017884126894873524809128055981975529474852395288808452751926830120104785186992790817428240945615918397142500564854412651334681368139945826633630912881473522623126872161802366017393757181925778310725404016056174668003511324105650124791032368659079682884277665022668948806223186851482627073216386081436992597961489312945225004846014998578507300160978120409588331026522611652497596079008832102053021187734751551766232445117547755862593264247377536210956559532181038874382156999104112203933698918121533024698845461755205241035861509055486137345766351134875060345851370911634403098967254523858978328392379528763332295127253240027422321678966468501432021203468603725816343540562568832878265251456888708481025988627353622446319428998165458582919151366902569763270634898887591317532458274060862702516898346647167781546976404406104852679414766716635519452846683719014366758749785273209125822635015823241557823980136137821330086988635648242715114547051041492954256410679683197093548990320563009421879153957956186575426348834821591974723374899980956772886416106707713986091594447531066358122636231438561008354444349292175545602448317104484402941137800929764270566214521858533098939508085457484801072648311989522420646368786018875826928417777618267208736185218937631435642228084781237648343744757180378676126991090728417003266901434181879121699202215513421787971856327409337377892016055822435750037682523442404600341123869540566925501680103557000333758808434195204358641633048542079593662002365310389361081768881960210985255592669804802892490645884425730761303892994803050766182622783767604159583520954627746125471973967784279804940832673913882995622430438325253420491206147039574645248442413751632717015605315181275531510887908253609767136641754550466457429595722223100444064948667439764901028966459435604144087188241991541673635062541727959336127703504259549591947838006394427688273275717925480740178554447283171637737574432009752729416544771091007503490452580751132834407655253182334424046326751557628807757007762036844656445020974839231092481537541872046842421984234686164964700637911622639709491544251281921541511990363889812777311831647728363520284678755365046237100789018299680266799782853127194388939562327919211552522944986271144359525889667852362517898289020499602727160901957631987885883001261586182221414441402537818695852505989156458658103369941760035224293675219268494836379966302568853218827478673144284906514740787736928504215275708338925664351581738940073471909910321696585982119120583111785400753457835358413590651755356919508957118826975962980677558737173481254205465600721753887901511679892402229316400371659450178714937052959765302785009325784958126539491335353591413818849065726981773188719204101285308631448841771734090175914856221252705549062193255306928890931542504883366629605172968941831094161243330283427824922812321892123884634444565233047301370906738434133722047348807730758061766465810701012198575534021256415161004858377356051923422352207797815602760459414771966541925036643372441518513311019677122787145994357273541033898940096477798231730600504726699118451014039493579795717423106422695840562365405506075945112719135751846922313306186761002021967055357038693855279476524335469031100789623922047688710185894376013423230057464351546364275287018571619327169573121433169246130945591891806383588444886288114042045169866822866659067066792533206860025162541024666998449086151767089492429887825524506956927372859699729003913663037829323120044869000981333649456660723616684242363362769735519005915924433506893334209409144141071217021642630765745995500387981081339579894223197742740081338206033847159327646665511205050873321206816519447119490253296873820089964175260231611223553311892791654846675156656042661740222376816517860674078124088648162019595850518027509615929187176517970077394488493603319871464606120049099111527564490315041297463410499787856897600775508734094916609015068896552341735906042109349886493679455973456818376213195506566894596314687308802327572868114153968580755883583117503554805659124222383654064802370592888635764459787742382961600587715590167526833373701854809324645921307677248892365265137512452835763797182423798326301713625588072298773435563095327322180500430105851272159440437245512746160414777101278751324680283721424893210511040277092109410132087814797695049058240685964933848079913122302614187360540408753542052854778915565829899924734935416870447044518037069528904578609565751904520213725697751982957352190803745669606990995230278828855390900452999149198678533161278440393828191892029215794964929833420918286402121799503918103509885093957755432599298414576554811802036216693855208489336081592330024282372793473960578082307454289854366053185941456639078270527663047191949794874179465055412362309116672483447016305018126993232751731888183948522212356776673112544306257942705426223132213873755584373287843496656982543413005000294213595475345533453619926181971953457206729409449787529834000536237509974237862287630961016840084058273924504183482867716838560720679840781697868098840533631400995991724941078970044527196969979728051963390554774777018980144631800159183337037969239152127310538733251793926447106991669132293582076411155133894785850542715078980455950315452284133832575174335199791287650296053886179514814963705157492275389683389081927387939150968907465340344318619857311897962333593586992221206800076533367021457198385423622143646046870897078493462944279199989132235880828219896979260378102874010638979001231243691746062560443286101983002926840469593056971198277541115391361800564090027205656556903541941360784593539335400142647092469008712631204747860830796630800331552269331467089370175648833858243285082069677582487283206604317476336363841566450521758713683507156232417814749013669981217636041968679639019691028082040058460642272680359621597068695772854593613602412222693152406960754613197554573793768039519950912448757586979205958995994519397147131385909480329162055043829014517912523361774071799715312935829545126194689181468852653757039747855264633175103674237383385477318484874652135913718880561413619710775528515805132922936282991906960657554856274615909858746327839619841235496720399778637236995583637179836559441792808339659152380306684424414323956185616735129800926407486163813736755250939037209383180606398405877093717203531131382173928343045059443895881712309852418041981564886513852416683745620282441738941867657245261499812747475214020633226153650477014538832872087427827782494285251054915779153395762021551745778726150127577553424214239723857392620796266427989771287404285841023053577032455174737596665990327091647973805421039639568274829234059320128905375949837497814560247995384879504270736434894931346136218310146803165738989208624705741900358247123222710202836599145944425805251981972811792072693573740636148011683942539669990828758265376310636256186642592912136391065658104359639696079240142181057460736021499886126755642111939586963699212439873634928720097744655907774861384207711744336134558511699074037071200002760057780299662030106837346007235331299644134307904932386819477062366623248912739255290762694581000630578994457944074922166873951433072998920254949743945050700612444396338025729605323791336775724913143801372347577914537502571892600764911199686001748439624948375225375607013229477296029387849853069389088608732540914657504683663166968352054238456809327453860418552238284257746670346606296689873291456898335432569321938924141349247147132574047467581650265738284687722866623466787574184023605740788359976944294132206161281159217602126445327080621823856789736354692690729830827664111161213858857943309759334362672247614732875643981791683498364915605065318232965841571779019974846386063868729192986384766861950301854280790781532904360504383222266757758518657682113848722195287299207670919574971380981795695016685887238156493191894395421107094160417652994611247386378513869723232166182490765779337075509370060112037298602589730819035049213552791136483411131336713984228784916012943523487143873008583324570643821945887605640612300255935586758270233068086925737385359747830767564632739932055415738976841956195788226553819533418720190907762688685764514481054389079682934463116918207505635715626393557314218979113033565856188689632730444320290077803344692223397198570201643049157506067794196195415531662361467679170577415799126448034552136168128161177305343908222507231697754817391832376046407411260160716802543046681480076243231408486004550044032127687561453277148404933341333396858118385526098441685925623357300775637782701535285961861718994827275168468430632961678059858297297940056055508397471422460138684138617508291989846715799546808485460906943897497327161157048622025893142736376142360942466079941145617776337026608190047251711030153889811280400006478245062585097161985576484850112001050198807150156292412849378040091039450928921353640226432613556942798106961341504364270610357219810211946476583188650304160601830500898652980798397007285778327317465309259901599639197840700210050533732944132745671088135079494610997728569854281073440876221168647060197248744882633288684231916046497337948117860779515053411603722224936604352032121201258648914550164014687388866600310814987778123739119085645515231437126614307779739933880819110242920528486188795892348208521042733679348024029754899962894148870499576111829702699162907885960798110592662729588395486405880396000179600284059739955642373681627391095212833094782443938927492594050786619558630370426511264177869890522795960045786505103133762328782173500777631734514317651894300003375516933399007081868491998696005217136230528094842221776298094829437655293413137841903051635119173898189883278933123801248322720343615528051063024800276526458433316560406757644083265805205110192977730590044426390842607411068999057717161845665152134124184040628575380464464090543558782019464417638078899006427521529527429258991381304870765351592772254719201860487680526985505120111515056863988161827890862477880772063462251275690810805569991308398781097294850055774832244503372440884624124323765753995139038780030525504961379418301670894690679752708221861373266725247999465570576848668817968497929358830884507892177618523533235235896178298723785710433920130784907372505390003256633009041435895586939113308163294607025704278938157149809215398294140725207814297837654599166499707927727024493720832675735795968575482454840381825711062316847038350048205147330040480608466256513079124995332497399484699736367063554015572574533689667467537321042677325717761620551060005205951686694744080890285263874290092055970383924735827602936024547992893625549314987697874489406709733685210702969703564234282801339017228208144665226600869700092359685330555951916679960919263100636759396837610897101401273925366464722105422115226754794389679966175287198233735468094207419155810648733235139677008544401653983299616067573287075558305001682460853394631968340663180139347063384279200089812536487791334657686206911989459714209804676384367299346894805020907259885620382682672351770103997735708117516774692310369637285735320360335102973315934087202238354968029818087696603970661819458558706654886637998302353865392282885540478294917013469911874346516230641602039680574141129287487601895477129480421359469542935216508163640095735032453595798952707760885157148993507700329203751339643838847379588825931908173155458472904174472563395396878366990781754023062508423251135405491185212124029858100388230445823782720658899989694082462091811307103887491805265738511512333512856748738064649017488057870421006065626774590168139064614654361043007323290183233990432396138576509549608057799724038152183592285496205520522161821902210588613916558131892929072138710446584838097839643625572958208556983374500740281790676066534254492394627028804329916511803916421674107409735975310931500032775506771343801003878845001300628225525326930762881044157742538432756049428855233469457111253208388158850386941755922862763578470105606724131519127253411195868677366748776964024569311343982703593202360830561258648735051965204635032212524157273122070535334823816527387408244591948399757876951852282960616845541258100668178504983107610564414659334465122169138855743729296794038950108771909705214402134444789215065638504678216192004844464162995206480569948055397079874248647094778975675253124123939958752257165903646475289522619304381025045567051115241575205602523944881518665371809463295607517669230212780292165227295473763866120449202527503324075551996631066515846264943665084736367019716236620412284512926530895767497260075085960752371658428897309707037428547658344415821216689179104474836272016555904458508290033234493416385194805591504826568627868611677352022815005847691546637000044542962735517549921886841639298949544378531495652716016870965278933143228559009003150277707972741685230247214209097707696158781262699260079206310623888164908312130331202880741364387436013821389105401505669006496878323694953941716847155672752976596266003058877233447563453860556334181305579079433132862069801743219078311359687765741626481488080995201838390800605431696003844687448617200202999263260251257180809177523041517927593793445457019844854593638537243578311171829526509295773688673757735142840267449772719776574471514933928276025318880992101831686839177792933770721863630488713108337390779240244467119237498469043629905615581550709311973309900680500309393055961290042497629020518582113788145340889069069419591053665256079337863569699989597145007272879792002986635556450775696203576070587237685874058712389261591486185693992832285879629913362445325401172108110174501840769378987966155547226620607609425426412279801125147820610821354891306793737547902123970741710598507144747535492300940541358797866258741527724378283772583245722534629407888561965983006343108570657922113227818112738388769688540621650886767179704408452570249266805723767816689289391151212016907640176858467382524140238488662845972007954233150415303601740381356839247382222741850691863505078229783450818045249914801861696941398766651053072605583217550402390283665216624408592443259055869229260761633052818011458527306029377903481439739944245967082411945591036188538077792975831070783354433012385335602337507165896139775701652131762896376948149941843153563173959708038245194455050760442533655981905074548370327545595596418907028665041471964354270973022385293209799400590201200288942653929896611140954736580707335178158204548244132393209363340948709955542919525676817175693873610419621816597985758681597951274415633882891309793966174357105786612877846601658855083261718530819129043257515713899876094560604165348461591093563013530143288648105042942038858736619860165276430400759661671384077194744946899093630107548968901773255801100573079959853845554702201411646724441411254321194668214694184828814943012314943312411572550812848783588709928901580204708877160456890674930509051483477534967290911742711985560098553657861050003186348655078321995438361304973488294802127478866231001663723560817392209156950496553065466354714171408286546586875166761392560835255584373450346056733832514988836134199162770275889894553962389193845639413250080116868827445041676910737450078575774174203954212629838293964779802321943509873371951842450364683180582459662691071492076041719603304956899155562282517484173822115717552354260815130187977786969254307744252837605555401992588955878457666795838616743195960940242537002775334897873921793905597390201188852749852751009851385064356857864966941940637674710964715699052355109919134958636712412206716122076120090766686532690276600583152299791746515571139293329305262797316029376840091999212574297897558037294972445638690202248178831074521690352903086519944656583738444229078827499846913863391203426498108218841363492325124684291264005028815140130766750961519386038388625282594390356670476623049282856985839099139870556909117727630688430683933016841503145543654697981488386643872361306859309150926156083786293786885012943070978293468634689276402301491786493369552382611655365150485736503030188072006956654401938143364019554272273116881289660377889986980622957341052965881064457638734315741054663452450612014189194249967588774552310404839350595479348488935551033930505616645427346341195998656449660127080948250153668083589188747310590676337546412723168459469607508470294900476038465692216319405546475239634911260469978225097672773764691050178435740366837368873546628320063480758886244365688161139448106910933051062370845332563701746077575133182062349504433826764305529471804561603044773092837837889758716057692966184681292973068122274458264737298880979159837479530563944389826063573659919413271918331972019060095833637094488732837643302898950686573851733623644281505691373906281100261727011805763012377690907347750279849636949403373562208287108511544416425222497320245966052069692829078644506590574909470074085891387363911615593015422512878574312159885543459731605138049007950584936283471898844431019763533024347953585834483538389989613249587384562886469547805929495875039549938689899212284392107058308441169446257445879088028046791080634641996323395853963132860229255362273729498598342891851743605413671562124320827115718445806099460568865832748183893706875390816926396921175165164340412255913374510593414914857301171838967395681335877408188363748932775397349284779382173558895155469302637947755780468815561368916713520997749230199072136258829646035858211611956136932812798576810376981613683754784309701702060979892099534331615381182851403550613490909129633843652487953930779890039220933381489498629294648946777007185013475407715086644110024689370461096891692140553736145808260563834174074451082887395352996739101881249577523750406165224488631975845780326440413588741306984577796267942038774511844120718945129129804491058205209704743990712969122514157690582561871869987788260791501364231497782893323740803166639479063196315527303745136195090453768080919416617895434895036238413618347699552220361252179936212792879879502005937132442204522191504213032872498577814377501570524168736542065135256828754799967963511275739439528824535576017568386573040888516124456973907672984905054105683177914208990796305089717826339818418508366872758000298856560327253512659694858441265440879459826730884218302606112721428288499100603705005384298188782826113118943378259572778587433959468206101058843263099644550964670839282008520688094491437816794395180217562471596074824265323458771177951818876450065531961134628545467457621148169837850008740521950690129591366793474344594725699940820215047078586264867384185564293119865487552030942303818636483941736064169452373132089581126100395938433606338989372212938816726319224441449399407739401463370225022827408364628106807066001549621235886790405750470863562297438365251510922732757644019358056320971716596524302285692473436651369920419912249188786886689387197342796017786157422097480982895597945952998231036084163222253275720607059112821547439768863191623269370516483368223924051484603565613775835204911914035599082191936299073192756892041944146557025886899566775182222801447228525462833051209169360535001748288387709339012494524103850659062576215203474461044900934967696437493301043801146146371335602220793971485815390340752069286634804587354622735543503544178633506030200810946696708148063565412331231816834740676586620610631437337719330161023858443804751390538788564518980772513191314406279461411917731037136211416275493213329025551946360454908766686634369204825056687145006744466830552117331863123693775447994099245260892833847590062774615544106808702162336174397404647978605024011790679680537155398944692942383372293993850939407363858840567402789894888718085564048697361330157446264863662734148031949589491297125464509945320099293639180621220532639818929067940593883756918174422749507379123822450133045712670487641943787120576449311861001259374712700569135639475344152571451067479907262653034639515008123751041079563808345561393742645319094032269143653544821064771560094761371936086230610291991712116374175457065434060962888289183246525542444501207998890795481375285198719759804535152565870351248046454936851318920660325135633476729330339210849088392823729717760446971860095668574978100546034475175508017520018852374472997587589730595462671819410617297499467096917488022206788737219430646068157125168879416966815696771513765646496491005988294229556081693640305857955513931008707094900698885034481882641024792333867326627257769806866199472060385345105695195653917098879219432285654685593179594316600353084900432701579540027410098352163156138764647037612083460787165921111063959834872526256634893311379474343992533545800210115164096579905953297354931668317488791371469394379618898481849292384835207493859991705227767039265495708551096698692493013567146221538531442281971164001643552401185428268974719480611579956969916690584983131420900033555801668438207649451807775882528185236413469232946164975317182902137367457305467359812706201668822293076633530392648937899871046018650066020959487446337636715462649282009498671945284058221640547456853184881828019900731266838822429025148134459872388950617274572323303332126491497400107297444955999204652376920220085302780642909925466088771269610294243609016429893527125133997505317462809598310796516842667393993460031410767251051669927013047417890244567463969880489678863253510829410425973953690085811038042988656382137946590786263157799802800590749022479381957967039404722424096333281878613171611615730033900758559313725717504906131325522170363686735085413849120545781886725340664591866504524724360711648843940191136132089079965352965742372182309457992092180419447003341415084738394516988276341890493978299850707754591461411005214415986984435401329269207016482317571343704316858125521237791801357558510194141761010977789799416519719458331121526036740941180504472721600196152051337986057193054832200978755905220968944328346115626546782271508893062779030469012455121959707922931228828452374423840679985667078141221312478110799348333605885156208674853396857699502243144368861835396209209185574514680195367447820543917364796546683490281663614971657603689176849600234194250039410219328668234271776148906574944507422729065260585750541627274939904642586685655672019392661435864278563870083472619761700165574671314256133018550797017716450503014108447518316815345846595988556145111106548944696958707017939043086841718437085703915995545816772277599294897611513109284355227345911450762399909848093269077227861256793017337481463663247849551018473794839286585101518726155997313567118510357880540389660576847871062471636942997152301508501320928091787330944902233546916734654803817180198829132208231883281933413037887148498960032184201855249378942629817481400233283212972042723055171956673511503745698141371400864354072627168842710686961746413762749505590020340667027725261155062994408795603013858057458750865709702145167503506363967851233908881813461042872765232165380553935764078617579785249987821702462932152427471093379948616120822129648664298781664435827054885635653417988694667099026927989349093335278330409958112061291082871196846527075689736305504977571299880846983181699664891251052480541293337954786334692925073341759139026047727441181853614187518220496687029216631206021971558304935330472756035479214993610249459658680750543435835277119749978468652566704560181713842760159148460295895427733175169438113176914642553312707410697311909705198120119683640469343933250874485225033565961820191135468913225348269641318850012230558793875503765896433058857856795266649689211997173459608741444778396869310630782711664852839609534327503721109793982345763008340276553909221382156680841872988473772247474892218989363099986379517306344144250374657747091099903085284095202175592924663756655161959152654543794264311977746255808386469075573111925392396268596715225442807853247913957738475423994872418091993350426713268238425971511153943407234557644301524148840619602263579810771500408617333231116238260601244222024791119817088781765669957582468391233794197775804327618697307441163448498616604450394916041404508246357339527994470835008886681792356159348840460849235173137251113221779240922377974775401294808580839173578333549932589887295815521002973001561883279937648395607151433950182105350963291131660224819963205285644546009425446058221433331250650851324527538876810190616898735888273452780033995130574241875482671201193379510212056308018913505112645736132362996956343487982307204600569689260690823822264611827253075759207415919488010905774532657299213323393289567154449673229704310551501723001818717743575220371294426826370716804532016859473352074246993491925069806331174648355902094303548190097771829435480152448150633488150862792603441479626953621153036932431429129175930104349276381108028116317240573484308670540540943781240519231887624255776795197226596858321839378620829987351564483503565086626186374259756941783080667448426435173923739930092922986095178454341882644557394163343181092747574501099834036799903223557052738578869025076965551901416116264560997037784832327128858484920613181754945734834999359561772634302445417879895880483790885155369936319906013869001096517965750323891606605669292172259371610966918192354100107771421536495959568790287735596170859475294967592902471518878534133039243069208321350289014909237267610179892950617750917599128344061716756578805793539084594221970410809891338797896154721646039277339554151862122301576598382601241615397265239372615818286024128687035026213303615433241330491416785948485920952634473926946665693701456249367029022914309452033450396641455033875254016246309187088585470208007663859205447319451991059301086459970702926833120359098657338256371954402155956416745734771483150086967197799055721804440627337617116675715745338483800098826684499611054167751799194810866637665291959360732050531064794117737906731729111919387022576219715442633543857464352715765057832618913645164578180450512229476047311675209792142396676444943795773610704239008525261110797154961629992933690899426887343351357118257515613299863231889739170410730020280831520108595691508615355102958912744246874905675788253413477409930545233595239282052103395224678390376531398009125601353169313030667531197694409620234485615438999618069941935135268970303442629119359230355233178187909343110729403000246295777225337781338155782931830429828134079309931245683554246633201559401489372655096532988834409407156827872447881088182059041080355250377335386247009361101894155306232311999345231219411392113924946103565202487966209035015637499545125048568526185566996705228454193937070330586566670884854004999690280395507381580460880209013862401271606120489704510696685841837634703437591145841970937227789394437111693674755351761403431508646557475462918332206254894297458465597082802342695294246315579148390617564064482076595242567843244506011102753595522824674217345811480703104703862892513974891923601105525349528637396117476971479706855831506513575323333399854803522452752548342813331067015022179441938514498061930257297288481257837944297761108164790171871158956539367817929364803638956417233314461561966319818750439192480118603970377496838977112073094210941760075333723597483389612724820501238499950134028213782315386191763561761832938520077692178210749469672595023345618509419267090019344461426113969182186339835085653987218868314478808399140610735126335267156168108364732156016442816386788372566193440738710266460418581025627846057209920765229181638554614504472904203656240942210905267391643858536143816038987911332561949177168735457790859426929365976894207459847750974552246340246925456806070587607933448607304664809566078164274996148202660455578596344553436066217388746902318002805142398996112674032852856271747127011590935414007469647718159995610880557712835671857798744569080962254400766626257649744164156742504155005601263985902939786674218485819508546836124997025771680818777574378961642385707631916338807564352374541740536779097170805070255134975240376279898773399132821553319493331699257018781990333398542800258523894699925066103937902716817636280589947796671198181119538144143698652966360750113428795112591016969146908819264124480667648853275857770034843958600506819685466759285204512793096032536223365114289083698880119405307347509793217400553171897605178391128047011218957405611379804928564513716727197405849201213584478712782955570755457797470802276975306269032253363236663604537964754091366204417585397548499730709749882794433578473360451943826440567766319174004365008063558417309451077609158980653242200274280592535358743267215819478382369476577326758105205233122606131255563130282913401756297675659802292037888371591115346317730370339418000936327158823884442492498785197859066092420318574915388531910463829231822298408805055051964037969739476161654299990812998585734474715570309984532854555345823985806430987219127155910167897705914249279862130976929691814740400082460106129711681408285719548231896540348321824742168525403133993719661549253495705102394792803095221890920790143231301916939129025699444075789681613774036689822038775248068495071991739687990685990402338433952607744903227949898297664532257859570087895711707672999340007438377053084511551832443024408741291781857654404782293825512135331127578616706201422407776049419183472970352024798522056926029820515166426759165273104446992826434383629858623640061918639439102598574291602759347012324832860491891496428331714837723572991761976322534201110783919918164747787423022477036610362129226757553624834147626914240557245765359352297940914045956432594102173646262708715027929724370708431810806283318731954820249054971256113402952585359072097970736037118537846051934519863097997695280500137385049751606044853200555099637806580593489870992219204181778425347442029383759733196901324858435096421897730012537362815712427835853453142800195606557129667647975726765623553419239474291167028661349551483189873119237386910533370617517868941412470746751101044981828646051880956769479784222451889541998903122907291294809008071965268432090845908440116397179650505921159273000786078093070218665309880031848413788406667391199963052774890845475119444639559062106187594688221459136356241678370616857586574743266052982294302476892783171641679882954207204948487749035065230895274254520303264843237475767919772076786312971751191333355692658179952648560905070958526140684537869450217676594959665903179201632296770282185852955774416694137059703369971905960826724383614061906960529537025148276598212300953727972767978749407314203950921629168589110533637462450661488172236917721476491348751726012321798745196349504945281503000043519935153231849176906791239285108361205651248504159878759065043597091618222644681745029860483037248322626880257001346730745263392320607456626776392937058631988630389018182427177482922495752411838828150808245804100903968208114439364651483202885962062949984118088967566916721513166654266186165433201646327410892347104823712117644431955365926864846787420928155407878406796645034551605304532244766972736133127088535371132579418260930456953593151660908162038906752372408210314351121569558870888133067396579652503360505205445069874586462753842330217043978340932059365226735283418198564870881433352866794138754417128342793753848096495833270863422779451115428843782340343426741136065926325306506560271826146406262569889018414471203851919603570306351513281827862397985777129345404793840644269757786984029087023236042402130587382082841362576318900516943595243132752457330578174431476210121282448038651380239843076586279778861752995153026184106923184792182366940704427148854958710604336284801654708610325425899231287137853522936841243929939109926547618565778886793170247693523493490116514546328692238183801129908497716119217122042366273463317841902395627165289469015498295728691924967733950373120885928259559073536188905698991147329813618631707071647144463485650118995634825960023411045019134608786313405384080704007793464431036348040660357765601458847513459334123507665978169543541558662392362971884787474853574350226001929715367828349958716547682212384202389470860230446769267318147117318761653926893427612429037750411671387055762484424881912515414685310738413338133364773905993199671861996638262213211782320668335218402157525502727716438974943251312885092874535586483492021771180792759137794317272471249984181427119840255272226917890177675808943905894456994240969426196913256040421975986141312225048653685061603615770693611306901057824970247277867173120171271796020167943508348909469011160612568831667577562749927287476493311752891581344891430385368433194096087247622222335549823816258108347683154902825622510490310994725446198779086599180406793453729950286148605406195192297087733035065789200150294796036364632248356585750333749715015946935679081201395931769797199785955800273498607310163050998995584848474637274503946896636129173287390470366337138638595847956052145408692597812313465685896270640247188615663292496457778831246341976184367049597603573278202897263258267808523483669342082310017048722906673539189012724292899870121891933167508632892955549026949642717001946090913787500911759839197141975184064917611063501568313840195034804719864275146022694039069925671687139383073031441811055420265415402350276153303849416416533410981102408934198302497808975869449982233505859103238784511044256322043500135408263010146496293843568452324194416374203793178239522436912030572520086645107305389033468029558258967443448025551254983852358198095144207387589918172485191435409166158037249292328544977122377807489884498658444141613624754879539362476827301128956589655008508493502500876065649583896212881367286566813865737922049109112194131679427619155143021154513768298110368097505186882739293090089916202299772092915432268053608948148914837867896470164946316316303957638627233611614216580842849025781501858413363021255982166724942888189059602710335857274772785570649155756874162926984732088600197736448579313299683237550664444334178971169232698374186262473230059509508393582877932611255917941457423090798887475124664662337738700104607502033919542384652240359714363717575195683076011209179684336787024532373222206596986660072747835066317609867932458211497487600878247054001981633418043973975078173874564377592406552170380639254634299261760705845303548455103955346239527247370079466561428822830697360315968883706778914494439910724227491605353890893769892510577597605746263275634240829822270167958390878213025906524411753656801016649076116991253776785197840381159316472388486668731507706726556886738074119991161988781683446793928560882189480951107237448220962990373008828511827211211787269583971499029942089281080658144411374816840800295170255203558117283912464808160718014658443500679561637439985660900189242847810697213736600894601886215060976868319949095881716700267022948240201180542294202114075907234814371085204712616943360598487583448909444507243815874718909307034145284423117422901258361764129622049832408057970506770298136101795056554444781620991198837794651802369943100885645922110349580800845715251967611543539660200695198903418082253150806233124864489158450660634170025252659977875371411856106255686520571737360511001250853123274085218092455772129382671188309995389190842112974717720474339496905694766303922992523693473428359962720943886821861033875968273179295370895853125911563817458863605271746200802952694736514259715532607774592045283709992777849239151043301838795506024997901061454640358000776433511314789813385918221640927664931819961294781150037965657965382170891614363211531513505236368048542377156248623989977748655618087367968661606142882282240265012997600365496950882047844701267353482550934870342594937907054012618783540759251291591954658781908896983034194224612035498907124751471678760463232016976741798808798343261270067264539388313920955547869975781609973868859813743651785392680112221760320354962584458183998293286735569415474224632844787728991482607002515120638894314063551852451018743872166170966011103339393316213926845826506657306671566614960884124042197112395126880730492797866332652852432770795646818124775687636229477051529669250007458880526079464240962492768657904384382847412072522823278867785651297227266770951618968037640636719505708130730580842360944523347148761848290625013572905785588529743374063041786286766347167142772229674583173791579274169449621175463839339666894065647761608721514078160782990409571720281945805745376658949292030403690972573503611144871118591654793707447581746246732060587104765673635681408093491684365922388683833426896452584110504368359048459753224760552607217535100303209158374242301392477748822445179077008936288003722582518019939548439859668326626159978937733734512648852874541174555080961196068309728521732098905276452515989859228209955060337738991607764454033809559000970793746325065869273536203288822784147167486369990739648688334994039169882766665019972896845326555222047957017218097821841123283833298662527233867330033902071324446685772862465622396666088419544116486007120485368426377333939676795613581962360372506570982048884440899001769960246850613233919675740431936724095465138790438612739415370392301102864798663732071856983880114540806799029303735907912657743215812571025393914962328551476425835294255845599213277204052736332288539606389788071344412110447438712680239013025890201398139936027861480352239562441527587125456133129167851620571333300701943511334411057269754068437132072900003637426180639744608013217610039722434846197704092011057876508696015432490352229295916010606179953104100433674965548430675682820401628638212710327024531178253768298960820843970166008124343168896425517142896972083247126547993461780407877147607285271238810316141266947263636190424755562577946313624576861529686904391197818262720925137107492676613182376666718238441649975769980704209858671796182257743533234915538233439560351152695062454533409422692128435628322443099772847326482784533056003806633422819847191865201827350852388254887781192669154067493985642129945652620877066512967284091149107073400847879056269403116682517565611661739143722778591203199161566829782556667163350244268411511055074914628064849484400560157905686921566084116301000680508785094917790860874784590783644550828298212872915389280341571019934025625979285774766786934843584496267020883299238623263546471677504416927432807530212854054957302435168592613925345755396398767327986806123594636605868857733480923656227426556942478421066697013393795566025424043048184386095162623761081399760189329279516041039645423817267326249956378399517922982408297002070558218544972689254125421463276670391831254673755693809311690948069086860700018151222205004580680180048508327438117199306502778741297311004319100795806017770366633360550629952979960504433188686425620008079661409505858160223444021334661754358193350226435919624640099192834457744424064222501749308474230607127687680772784687231419637000589916180883380486260844535131975003812917240792900960031940735039268199490453213601196494156747079887020057744573670024679526540089112304258164800856972721571472976861468712969433671252223095880141964560434726291599382372296214804224803611751163666882482313990561111384331938761419324389565503356658687406663130610600644573976483711241866214926445971359294423591484826599464117700195204443810841856705149276026951134677919172405318089477250147048457974145995783474871422327177752754266804793426024407420085136419675711308135439079223919620950134204031608019209631157141966255355033242856895027089147781282339249050521210667156596511701020212576757157641747633897521781798439994903212307254470860324223359411975907632623205154180164708921011394014864471023663550298020430901394008999685099009854413564982515765225400515724704254183021546799784835396283644988525096172045687578990185687346034479329814236390360002982031396691197525297306679222515929405621327718261455293315701801252797306478204539551953723186962137695527643728228629760044931694096748930914989564489002624434481321677649195349096396219418662777428905875586969852678026240545204907436815529772401547632527228537980354096656694715018619590284001095731780707327162027622047994664930999216292786775591316981863406009519808945053726545139279141182790801000771601901139787540253814370294860014973456309864082510128947552231743977656111019713478560800934612104687766822545682677506145985419894867487615810905785891172410899319162510398736654812293321150512835137316121429687865036369001561192557409212213321507216486343830593169656565467432915155434418893709757203791847614110848186866686233761655008113781130576678735236499132252416777975046286808298302281480371923056326334986903851506995623609805257082953284025140323663647173378459061465083017444714765955771726101208552175891827912150310012008850470566810658129312186826290311220971326436756205133782163112013940842615387715285349710241430586695531851371349647504558710354578146194757762384158519590555865485089171646527684887323132345637439390986936897592461233436195022354624817783203576885093263588806505331600991829007092165707112157052719001576073862498040206960514583863957763856607951975369875118500456524287386648140440460566510970256409126996243125166384854604879828137863487286442319079009030217861812961945261189449329941829975466015772940387079688529903805123023907128788518951175544318833552059904892185014338963942882974480520206400426710445688670232699767171562909938314416883994229781388364575017820391811208151703533668804022735310749246418510417931705930205877848299457649082040257384752480902506978486397130541466687184714840398703120988977533863731735309698747371579945247995305523769022686995203095555462031500917349258061587607667168216502993839381796875134877808192879048453413289398983583329062643179130773595823400511722733702677977970159645217350932409380113131731482641928535589026927965797130751985353069266877735246017060862200016361985731214562090345858641127709327350457330863782797461020718130192160120914631473992030461669664948631901417774480666543245062182362800543487286852954542876923016404626043204809088889029581993063867879048950055861250738132794082110276533146859536486571558287397731820265994291637232904747117253718275161647888026191065181354297335757146229065818430226952243196232935654799810079638130816431722406343677993848115062668955243168072734938288535171966235216019585970854354903571686294659871555803173012366483157285342876432178006541733496180090038984746780682540696118061978540979569407430867144609155546782722124411564083928693300565820501979911119643367504010532528961004687954587999640133932816102518243556253955927511732557214622719086920591201943576053059922573679940370113238352544182479750505458470869780519870449363399468492536988042563538739624152927808399547636284931064052615643952016049537611622515003193569138414966955207520594925539856379042762003621342003748970123065235281920690326400801420427985675828461308811843789248492142248564585298500129132424989018924729167932688675430614652315257715276274688773003197893171483115330250890107051853046445730455450630277102003127892403083836654632534922513649606014872647899552544683798381058193197071008334213282226064708491623565303067642212229745982088000517698812478873914519975265640669224593803277422845972404932465895604438680098055591488865176547628885124870919581488487428616638366895960415042125156165629961034993405396353454256734185711077719039384637332700877617266408528549453864447699047466480902370408912380747314880871955342517792690794355626462463235899973363112643608306059829535276944554284964437193724511917613730870195830392182289185089193563434279524019422249236016729657942332737287762220628489436224225630466285610006318165712498979944374951250425019267814309982417150728112975603459068134721687714607172638350111493551465928456960380989053134644018985114459117903120793783029410531643860181513852496895099083239680484214067787728995612704421985296640644357488968150675059629273136071196373463144466787928432725967354855984941767033428166655641470990624938179105345995633515995143454914165906066370141967408967721086310596184611946632609691436061112685900812117672099095558697702941253933260873121223998342198233764301400907779162749829140526658426621334619285621146657975002238176227327235225332196467312257268548398741533515540020661689999619171448801378013278779251890727686031080019735218340293490682097982638662674646257087208585373036367036825969060927467170198454668063385292187248207144038697037305072729964972948256105540470639264613027784598353612707371452879198136955784424186623067451708758223460796549527064549379870046788594441098211278659750807781951866651093027692805718232142809833395585712816892851555685252000107960465785879037614247632804149207884704855886644266374653465819753603105500931338186327928891355087235678744176885691808998743376820911174529020779062456346506628323608460778542138043192435703587947041312492500138310719126306735232460508879487954807319043486948549615529799476867050376127366798206541303806773087219164296631594541776185617412168598486331372713748421351599836271295457117632052924256189963439640142183992009392836227797779873058117724450114359595350495588994346280558813254057059636225784281766229652799793575174098427339763001426672519994711225261100978083091738272665115259484790220693589475162541329102940360881276645274265205216316403763397772042133139757505800109503511743656122478842572320401452300890716019559550155058199653313129563644149812520012199317033396829175161429915544576849650653834964904761830257250345116152498428373595683188434042853371527742904185181828511253083545301899955862179646218695536144534561963239607528555125371621997294889562925066456244728039332760333147143243485943218310234056147252062257300388639829994776643510684058910266886100111715228720940338686749787344581108073320342075690509555118559578713757818320708285704529925820960772359888996963065975057849876602240323355247229241118084346873461655544161333609532535591301078644201640256831456107260521789832248276805905240123125660909816203486309530425207921615498029872367687896372508322016628105440143163081252333699594631049236804777321796103400127760716559635423120539129351578512125052663983973397985651768435867252270072688342930441139389357478659406865491774350419005907770469605523924708329613021874783572684689887816697561913389260129784414133180876406850495348273366000039042509891252055880657433514377270752277530481972109497956316774169237524011499186831068902035191022067072755510604482458452111129232360544624599584709256153698304910728238260158661873313961979100329603081492288860048262531228426395224621340491647316343049308905314172980397028055635707669808600862718701224913484329107609087201114622608848690131598460013812204697895360580023870756719026948164602259166530075846438682371465841972039774739036697522132133262576431271006158155860619775682394675429360025479108924537630219608904211992702510174355885261446448402320537082834664468065931481796135151485432547712393773574341369242311479921339913186001936688999715904185329441995251768551722347890956568908845012371264875618165098196904360711287692944072331817320999532232676770081875657423086542684776569618436673694894067828219007643196347594950312664491670487132937097335496904173398335315958354124158434193542378957746731372583871439012959211185965414737110963711672688286237089451646328440134632839785569322750304929098521631807767511291854400794066020761750854392012565353740916122801621724984692316296666702511635073011493208105161200424371866231692555453213972644323024476052680949506390719799559064787315372729961689517267577486284798480639307914343563577096045724078861170582366198854866754990518538525896988849362258010362444210884915362469653036493450623536989679233585858551875491854438061127922997061707600025800865588759101251984156578066642631957406637893637254129434635035560320313483031179698885673863382638320825613157177595834669615792170310826002295869555755910523724959009259924340054459843495409895704836726877865020815343572276652894831871270043129238080857694995023589261483918630858372726494479489830979630480989990441113484779240705131327210475109378998379803043870480356959253593439966778301110001655581563569920636150923843240572649305190659540430127388593611607737992540732678432841178410836095474381821820421625721012924883648715398395739527238558463169149602737467666509638470641599503177319490499348064078420438579957807387923306857427612781349562253087205109810951911532032329796896028169764308970597903452628132837851234197529866471327804938410017845598659055359974397921532773934792460204084952750887933286788573111001154941492746668483955640601679517443768800538101247907797747925120593701554437607885873339141189939244953978002784385121655337982723241982011860840304602032600295466066888167153799791912331472416163639055021032736998765316001907272771232308155712773848003088605838732070806428619295347847079247383626400694676673104376239261873389728349224510800203444309622151608614888243601203562271764686519026408410926731056062580577347024415920401876520852179709964358543185564404988935035541265300084048310740163776551490127635223964610171779590845359491010793841882738656226168092947466513395692940846356426809975291332021419545469173026926625740222598126893950169471053359450406994130289595534602411924727058986894588000287449282084194295594032457281081417800035578037318412433091068809783205156674617493857595037446820005404256872311153009086479876208551554268639889779933882313991371756680431077808725362808028403310470395720346771222444003587598667328874232436824070891585161951831424124202223373108988489149955228288274220197452056728776352074548397527330386420790957137062479296899631203719433647184898329115954691614992716301623004176873426118032782510655147598697779993614224929226580794678767356165036565030498795696887692816539911461542032373825043847530410344274810218208420905356556930432287046892779905429927047211511905738127993242676678263485038611820162729827100467340978007058642341482175235622987446855796327749363240008783157559940693019398908909980560544931565701545566357808237115241262852263618156602241437614365074005538711552558340076036035499151924082639609448064342213909041585949771992166159574403556307664697606943408777731800186763869560903912086238464559211031903320402614294828858562838669869404497828712832138245029212121246475115836761945324964332486157597324742133396267453375844823278597393989399701344156792972230046249621446787069955971572917958252798361978699230553107501786986438835227506541462027078072317144135706995755484991702923800556361760486242142951917545641025796717015956973228888344981298711752515480304230720541457413357692733061983801367930024128682859176883467488919522653870623284144060812069517490503609730227113374191981394498297765497417495457685041401965005213902930063744400866905667547973502795986904203569280723934128213476434829670355186712985914173221130312989181620730337208940281770963791507365448343714892785498178663497804937502327564267628636077898052614381262926827606930851412131698361171872042919120153779147069743650119405880058494870013419270003521176909914975057808892721187570819770151035224168556488897492855146495152233475325134124893759764041931221821110608957793698102312086503754982310775808175516392124017221212002519598575502716819449111593208301545841891770958645747162991014297812467024364578626771968163091062469389434253592544671481581382076061475514629937536323927372239366437154524112147730273158977350622027517505272331671912957594045021598408131543568097217200183550458780845009965815231131907696545697777523040362096049782546846988113692181860061285823321491462037558577681687416384849826832097348431264191944386467971471107137217838870496260320006233130344260747555325563310746665074334179988247019802727506762871662463286611809878197752014427056191255040302571244994807702195546533707653199722477677072564965677564531327899578257818187015317664902430779526321171773549771640426501046929812442870599371325037421999175166955703417767562560364684830714632749949843605610960813197570315245435350049852360289946288885973143961529487247572465413019469301796137665345539351909121882050530560072882277138982729057929413617833010919652538492425502997840405787506446902877252513506591134564065839166985426889828691679887806690387250230301708127066713063348579736173074926660167702022496876363496499516153512551008046787345909141532129376385528973326766825952742783155667010988926489427270545409023495011735510997302648357388024414891701570319039336384067065331500438220159474341856373774275736660383226743280395569181701840524347838754384778413502101380238336390790946355298190496337750555739252331984075429971315009579589910030472554817458168456638646077277374485234346441525165632389457390124817247952045243781977446495221683276371987227714304562291417482274712479846797196081961522776692334408969310962625028311286458305907258818232120722286045802301211509094634094323293974829060866033118092240952468202461937987311938019258536621857511437419383372188194639652318245534108950762805614325633391787233869004007773135875711340825480500798509844359170858049986383624833524041139435272462677586548488168873145750030651225831158246585473770016984078882118112302452403112749769518421840275009572440996240920489856751781898065378120158322384608022789191173616624615144128434383433998903694448173870670131704509344263964852588175320803449026469618028663686278632396975740275084147402478955846300115871215825047253574889738574423567216106535930846999474905934543896628193302952512749571961966592243913705599545830848980116622343876123614793963255536348045399683976652816798811753146651879188530855739746276394399200872691453193626552042004213816836497997208890861144029441273708795434900424440996497496027067785666340588601050604432185874928542238836199346747756672759852856060725070090331852210319470475173485960901517186771409138019536029159084709301435089450264662752097166189766161578924043252425655585738887218546916047780100885709711712602107018588777368774581100809307995259461303189278181919182842644766749189840932014797692454776709815682728825577711746662441562747564796340812811728173247336611742635553347607514147902625948092429478623735810688628987577609356585555245267549128882240474250206835586351410528757429107649263349567996355385531194204955214527707853691868840417814365025033258318807083803512769078640526017566558131949567563604192940914565889189115897166770545183821271027101169667415141884194166769386075587263083871027156151047367142241973590301566758837441301559129960763647096903078986298236019263851983054029183419842296127690960961837882480739290012567917014368270519896552414148574146427968576926723310136479059103272793750847259869280325913768092194168891207205273857431968606003863705731938824565070992023497061367352808814232047963702550123979085311138768325059439029668304235749062149822828199346626563687772254774689390324258771784196869326509427046025893391071957422039072876049139796197850826467610137965203041264254110466257313296892039142880281484519965781302304860580370256975875716919780145501362162242364032895743346623766186328758079160963304346765069823890220442827764685805422381605151030580809632624680099813355317921660628100158756879752128030630556221408372497852991488111622036058871482418157545161394774268404966121510688920610837207492950159172441118279122862294139944123615161021985879607890306023317721379375614914644371093120959985156037083643488070993885189219635706648364663343234064313734292348309705715686129604611535089802142981695819579911371070246076866047839634382919163075090096415377740255826176162480120922785384602029760086562353669416296880480845233599943438210623985880829422199301658873905288152723533166858560405780749205973603130611338563961467013189452669309614480246311722375373969563330393258134834933684011588220401755457734404780257550675109784590822247046579310401536734991967832423183886714426687755819799969875723876310748182417727469325399477598504764237549951079511883113313755321277914065987455598970077784100437281396855746879732346061423897082299534171662212693085563122457688886236832943001284944462621220447442509077349971261933288945860523260996990774065110397967135479623698922850344053778898916190748371580160056759755517472793931300033990175293772257027717087653298965354478014474881885518375788063144613253683722622120128958893938698671962209602442311677750050658427591402144022207590800254642000880100545823252107744013786250065099403697209293471477706817629218157962254600764591230051585339628154430475400135177394124798974697444431255470376255314576108485955673386544977891411826480212520968305877835054251260450990504504938045981300202986389775799462935252105604806853470764335265167227569528640703874695551166643842806925128210431753402163469316681878694583640812566798784017468728111966131166262692663994991756321430000803282099677050036888978883024619476094397016171010167551419809962420172297855063407727941610417982566241922944336512113184846530928555861946562775580362493331413845997009218806037265223047191775604781724656174574778087339610815344531997663579698798926746681519050245998511968345621045905005051751803069613328901216215151259103827944715415189644304710819362888767727614225077950582706232499286037723527637304689957478630572336184300750489523832577653384463944677287359277306554100884595641121087514800582152390217821064576502500488773948358383558647287186204363950737943979903107132952285227520775804399945101865065682567923065941359168360263956909809546941590365353656144540048002746830767895750953093150555615075329424486500649772167009074283828551733150874292859152286376661672723791202083087774954965499817138193967481520812556286340746906885587438322852218539034074804377767389168999036001359786430671971808591298618931846937318920755935998491750220121025374349147574230923290280045212491733053878763674308013357237464024704428092303611082228377385246488671317672184976727286418466510531800981528000470042037084560745195466759333883557952398069754487826908348120886009739241818637599113824738071157060101744433035657557928146957577879116346868280229334648896092019592681490811134970693046607736314580989816651946729109599429318518023068934803783726217748265787200896982439835019156485186831122255885517465354925616161688886650774750440138162691431264528139532669757338132346912703778883685121778431808053822411724475617796688361724658544999677323563488009873360230727192560560170413296164416536979120742598507406026193665713826243089873653225547485462466116619836429404258264336959931732958502466638042992128918042540448259581594485506148799174494992001715691125887581133790788782556040943482286845773625488765243772362628973174364826184458676936482151050799797784257343955380256958962634113999025637629040960351669145592590364482004090086545119931322940305585025590282817671158479347982652103700231950553659671610472362488221864219258769125425871702520448364899556044361352557690120867473769104766754198586136338034723390063817093419550822243919142943114145607031412125574250752730328545001641846932973292659779902783413812950292822778148704507286333231347649937270168353433653038137290871450968371991590087916003247031487759206306906630193010293350183162339886746873687133159498805441628058509094022777955031001702178243251461095057843955092945740730284286905237233878350545392612748846973322724010794775918283614692910200002693400634061358485006501965920714469896772441640188190089952081195784960635209872625610176550829457638741552877086973914911738009710241134493564854964649816729698643326983081222986972444225541622545980154052464875471337421551616363171647964499110222472232473928967437698897588019983823743741926633239891921786378253213100233242830522172850930077304167180032460314769719752756385905505931029117484035421833293366081965585181760557755533588857052457566944155342334709241921809003388204646819139191071630445271809639772170834746720921580291479087134467653689911943902472125675285290370524728527005845422347980653729770676266763700467648012147976813834541097936332605194947645758724991059793219873898987808232039869605803480742141045407170993410626992779225609608862522072588966941154890517656176509271153035128713205542183388256253273271376845972422532102852067555047551774879183631088613526699484689035041037152988393760497574026578245295818901308812914755436223859229434732275682803828752985940047519233592728298829754801420507254794451976925249955497267818890936356645570251918078579126086712865495627141567777378039033920116222112890003464515850450133872230483652391780027279384248633147263683965730857453802484521410033953340806205957710001238928661856385634928411161621775524778725489117332770658240688556136738759580109013332451164847789206228702581271382717536386216756130953518889388735738382633888801403243656374011240028045662869812000605216119973948128880681689515565770450954813150723778762657514978190893956181767027801647214498469067927427187448173397731315152278961053364850528788520079400357278344062467924160937586228554855220554792653154856152288114467589803306731365914831388050815933090209697215063534604827835886995617337791907347013988467960127210753543937287995744683273575579746057865403706401994430398891467879320284192564309091171056165289002236374096531900916420501466334489337995956129278099008891784076125296231910165678444481905668759294884483519234193400568125493090804840413049474255736903358838380112962157086717412998205352633490942330331256742976360276611666889369278146279434016665509651359549190745036516219680079213236773373109698930025902628195014148465906080678830682364724436715532954453315281658189952930254958814889562495191147937852577481224028371500931233606559046292611865151412940084319355633419080258172307072606224187602833122654965499946259350651761141189207703176823621462946139880537096033137764867493759478873825799531613759164275873046033391556331345049655621331243284103704210840810218850346223322295915818944426053083982054631331532419010564013804474496489812006920348921620222763418537597513422116229910997354491929663537325889247580876991711950476861988119652953332494351029003788511229502136715359955882606101445704763141748384525353306032152637520151507645595385368020588216654768113459684322808563583537067982585258053268213670700907668037457013606152598609793440540752728150959831121566036396794506951149391641848783443131540564440260968578132350843931657172200778446990032652572890167354101016355405575014548315241047735946790064355696248232811670938474269525682388598626512261397087930594842343872731954863197499367527123526374053931842507794884433492090211213015333269933630487584124893330191867341349132830036134669312237419234058098581126529102982964201175663249221518656553591688701135501644615674173652444628221303114875319400286748470205897963407923147243671075149756982755522834096185508880440796747052470550778949342762615872280863552628897914962493128453014563383456429465572777107669328398881674068307113303766400621593184037588552981578894749443794279003701780762007511184053357681292932623456686063136658459450142315923967194140956649146983320672962350156877642834741813709979772576264346056767490381105883621109719082557232456884410372082773293916036411131210453855085727630069240677895610113158466115322727214528843844092548288760093226592651703068736920562735848505338749303130699198371608938097343213108026151210804923469010090001934009187457074819253031880853274418006300453513246516522965425018321329018776062735603070522933170765115525274816147170450898151163966264111595912264300430671649025621679336380340737471509531915737138680080612140621861305295528319921673723050645366326520586305633975011633116253588764837792411335231137120185804940777608541377002386299571667004768076356737440733519696330633924380944205947409398945394108954459328795713256791646225953015159118117241243281781129885396497673809001452014959891811382332322133152614799752662043647908583293951452134087186045411237945533739653355336486013080835773471071775357204592546844946325421022985248924306214833087456899191442453555637588939207315358860608089468651842053378137467238316235669669479658938314027965091049581077862032427228218106470215830316621272467658549138547068833502949936607060946092278246559087255661052068470876007173004000162173307833081166616125067358280319702987682845615596717382688824141751583959239457406441301159030441678761201391522630417193148450372704550163558440250855477972295067335444355883721938830021281643950204768269436527327629821103991470102685035238859916130643845797595019311871939994792492164517606528139129154052788180170717975567085405022012149023487775294798300594900632596246549920421185642235843055480129191816655509036040076988962629339646929741970914271503006378688504457894262074418351178105786934444151127474681153425994376590534152658577550852330543669297466179116613643304335287385263198027635352995091045623386119664747488317163728557907983062617954496372035865867227803321210531434932309450569108817136749075827897630402951775113649636380744671905301232580463589227139138180952628757125772528184221725416537245023868084054090432377146139772360990857074559693089797473841563847945336426155557824463000733556763840012403355356668685406609705756452069489337214866354405895458349413475210247487085808300636999584401101047166155472603928315333449345070230041084946099034543174741085297559777508663129424664805460866268233044391069343114433353086628179833405496431841966519290121747311976140072605059602610185138212081302512573984126338301616198127455786407435705267099130691260692718588462833370273157298017358748569326584455469930170888034281577213171331432593940142688436504599000372728660997990032102956162080183427596693930746992681836743601607105263380003607234069725805398309931307899449669903418354819076578371828296450966651778997294514602121848627153816404785412900449083170888208355342513157909129382175678102269379772461718312934403405346370667832756305387542937053363804341882834837560609548914991554762199428944156958246220399815444811144925402145566862077563142713068650301562744784120244065407830629089209142462073534672719810118782026235484798869507891895065400298759535792992394981356327214418434446081157947320599120006851410224720906616350104389574677619616916729902655440057406220104064232539373072400110423510535778558186182594780335199650041550086977417457425989719384265925122158046181108178300910395496617707062261986102257134426175069464172497993229268872561471020237073583644208119888802984922289811517417562313042621888448672288020810220551105012968210616189824981634463991388244717861058838456541596027451683958710660417549953303595127331151518828711049116191929933377930733586228086240369352875640345503845571445118298670411298243104078190345889520887763000021341398781422223573374691172256723924263329222606274588730138925351672903283028634801153894609003010867703622074850586681030584910106949059553147403981597850536610751302819940504161201604569194296937412623958599744500495129713886511581394127539651826853951088843656691091982441857358974035921893612839771791281067258761639542793068548457192187616934225992650139123286001693629439519588396365153305353939257474634851708961998770304379698148253765531470028242591480083008746158141343344696592656584294557904181010743535535299880240006936623675560885591297348040484768574893753006403311364414225909505390075824877093012414301018237945131190852951203537624389281422195479734476120305691899231319965951552847284819766821789117537860780470711203527501298440650165872867152285305998148394024395993640991356834520969538865577131737529897354213728966319150449810105368864249957710296514898524968000895869230624217895146545600179471704287591799289236138845657524296574669825387444584428373556433318400038580692556870273271592053820767296601387402186745868872290345299527387058193363696866408282145147493544583270905959250536827392630244282364730212976127791515848327859000435211996332856920095395618283401602495809418715208372697768074367013232833831208240342859811575136970396604015073778156064192354213310275538199023147741896733489313132889203872764224245575600671383073169967938932838917488042527930014247209726327972045236598748231620739772425977284552650795771441964254963412872935749183196339196705012676743998848527736179633579091716732040383996819748794679671078691541426752425077893798599865897361798785004151185733474517317410669265150861390411130981929512522970650707823286892644704549556114362065560637484519834872520721890935705486724639654305493618343816636639285297717396445396231875558175862003924077648280526313364277049195789259130521468771475818318708530219199573829493337885382800165914730038521392733782338825628014476778661672109522048899832572781168631150191547101689647862752540020755601066853482821531721794093187672321302625732252256852443687940397060358788438119634953876993549771356418367018499147634008201399529653350544449729034454100893569912325751907395154267411578163452197164337705942228462040778719582865816364155827020885165757383119344033728819538193401377588627838160910750344322404809032400443193845101776996433847007858974981312241340413794353145352889512258771113664833409214103461930220095856044111618482255864894867915897758234094980223962772786368718442340590815169997072150910935418560704409466031518003937905102755837641855840178359756863476062298084677224118856903529778436329681246342473229646863571887268574168303709042156979365822041472517393349720097474558713917957850250693031034053788648145648887473702620983226785955087554681756132198695690375633688999987266950784094033045821966224340033519782275940820909532042872040292772597637860337737347987354197771348209568656526775066958381226760828477312622249872707576857392499970063493953342372423546191312651637545866124987021450058733862166587983424372697505920356374380881724623368261492739266079524753106058316226709359673384751261046618608975086493389022128309938654662830470397113720249464247204739017513970135792728693193410686942931831226572904664665320459694540043960027005088467129294658912373817145969382127131916520151650528862729480847257459931122592397665392433226140365954554532225759157610623926239062855527847273863930404346561842803767459369656189353878571153523972149455499554569207862655997452493973293639191957538253347443173335692976185490112133117747688463007534485824311720452340683281580017014988304495291542749804949185819545509612280347619106441776883764461138453495043287054952355502779562341564551936148818017636573992021697784987620935595141474409529842595829064292494218662114165280753866630830953302384794479426207285366078347977416384063633822375889827807204435784325215348903477439509847411143391200699181291868193016174167774183428994696559052233736983437255692393138959050156508275740459889330146496922100246878580533060724931254046165407059357800542736162414016096053378700910134912844117556036313465701850394918775527293398884972917025940185543525650448709767939593416545893990624638999064298555833578253363524270372665391877304799025136136275472528411030462884994584503522100204021990678454124791821201957669198802833097678265533580481365645949276401491605589439499727019585566952764654233915209876778155681060988654018775499542188772372176412848244090046123299982353446206885685383007604270461906361707376823762545927593316977484365372477183583629379019288301254881747658320813605198229451830206974943841220763367692020354888307724339145173976116816766277133755952132487881713450538122182426310940792243472120308139226613156863160792535397084062332782376889928791367113810023221267163678238874539114599225568626535969924971587009010027586710185375206643453256907356069754421668997888414732564597879321326334480486283173940166066667771955893004123236927442701588448317024057069272145945238549186015476746039725358771158460372221190893520258611146447343357606749925762656947230667391711396127854151717830148836227208000395141108724580561163385651523182320593732081889674520589974341419994342700205984876094795727168796219007885155002486890211016710140351875212069128931362842501860354017206922029317794838191430744862477683849712136094184458027245319083403494264885324838080263001321891530352897095124827388994995947699081092359573900134723949938582681697917563318090133370528696649713059970815114409525455124150984773540569688058093813605840191459550231943923076242228720483082296574660899173488151578821925334574807422509373911372060977339343517352922127308047678211319562726492630937006658952791476809066394621496323249730664776102492141563547579237673941423866658049103113120425879963509617506941331975716469196073458987784700111754769161162882247908959348122703454745258105210187284552311968128636888027629707571658145446848905637432124216601883198893891043991819386028848008519773207867615845501830224104407084468008051187100611230582632387557966358493162389066617532488050734158649186558161697028550257975882208814904266183809421958079313152074736031972708091763048542478087094724997726507998160683579741315125751468806629103764964810262655661052766869158816683023371443539606836394090270926066614093460257904702255941734674347239071188350492937070973058912598870331236396044257297313240425154805922082854172773303037731057588203397127881005301596854317485175971094094021264720566320335489837514821633874431610328390682000584517536275496490461239208668553083958523978901843094445492918555415286965892415358510431452872404737047127547328576768105995148073073960851738732300692707977140079738219537800489997638981373878434899328936764108314137792501166689137016191614329452282657180398194394888124220436295716184181221649801873325944411554431992510820485116346040979885587126770490430211743488399249736455586034158415129433877041944870168657444753276213482805804031671589206709051754497762296930818462030992846089488298470955663230196260364318299112850358417371214600689755916565691959887023629193683392403014196316351624803944589239846478439877480189849288770097207536658071890590975388266824472886388741414159387994053806595652538288189452413506435454463696909730352967441494476607219686581094730573772260747773954758196329890092299965450220663779090460607241986793618955117736319917756404641582693463213069525411263265402045878469223066258353833127737366643772875669617385982636410557414759000559691481653723871652403671729317505023186791598778854736677139984062811867278153781504975583014438172116848330398746892202088121933863267320565554173491284498764829018186921583430255378565714366870407234774933060855973726765397205417896409860414820659603444958537436921623615133668616108579736144452194435889830204189658923127361714425096402040602474682546040948445191203104224887684812729525094791332345325976061585754326162373606920989089939467156472460260073897293039045534686460711137235717962819929759467446552653013515598126973156825817183698791335349845528492162956377718905657901858178625072171801857433720364442960860423126012390904214132855671730270710362389853162616709964940249967610240672171320141250475981044538376564670547341967811994139840956056360126022968206272434373747242546943390810878946024429515060819654297853453768294024664002033510152194951388657333585924276668314530091173218524126219830211784046460281765321400491834414484083564062100806149188045457664423886348552985312462019099772942892751690354940425591474519115242937248264835063602238555013303188506904463087957765882759774172848405129141448527966350267546084777318389636790003810798040508114976654715943119064755282972227140079918006574304032571969043403559970118477552242993089930406940075659321809460282791521064307312315172451914244351853849763944948986988635447854203347818004260176684825670149081909576628714857417269565626858323429772577342694883020715608149372460563699214954381747732409588271554178530324004850045958705448724184114637754219785321684871162686529553658365119045284904756902780263294302973243853084769383040722049977010676842535820478350050242702050142343477057388999021992050189944168982946554790279029879822020532703189674442109264093287487939099389359187443001132043062504192193753165021369947965454322733180521218036919432881177875028329242045054996681721015964540580017749294332569878068812317122413827154961590538905249984849851265287608043091549921993658623422539894599817251754641759307477198186225655824148300783398208256044215854853085878140801212597728639310170331079246747770698234706827536395859560347153390140780076755404863068212508727929336335670143812432836236388431239158229031448796690130594326939618746749666413229833517599866373699777668604223220019352499905567371572270605798708867592723535624904264453201972814664540696090872392311753712510365003235986306815073338991219929393254282278182175779144476900893154633906970585866199876282669215709781063175899463145984652158265596070481824786097264426474508197513802255627993466475313827647104826481095719796676712887731683105836121263358266797397156203593466054627105501519232158836881204949149483096861489012650179243482121526897977206334536912077457641898058549974050636479088138520863976211437371859338701484742701559917220222278490478007780665322820067436989854295576128954184751553224819699752554587394290408495295113359565223874396922105889826772626741883115550665522015213735347256059794560141121106828385667669635722603501667286185858717110498683739150355162633584037002738444027983983290415550384431140362159535489620846857205220079060940979606028791499886046743308759118182333093231306338269429665713381107460412310334829983469431844033098554320597514072500793745355869771367917138966145279474272107289683893751193222322128150818146896231086021084406606399934043028282679223829208883229203226237804899648906493783945211711726476646424587821757222783838917289217124669864596050586124624292661392011812954782933612514480039799589947155931484795831574605225561191026144314021530620409443648775059366425992387716815390974029566278606577537477136945173733004974337741406923633521080259636516354368744401049694562038128217290697132077942709572558528557980504672352478604646125724739962443482801569060886280954314666337980218998704201375515993658227367255385273118219779851647934734268353185896125768753346734152352213541763311926751505385447716001596922406707301772413955191453159142233195275276255327438095798100334474669381918698015712487189304449671721683310511528887792764734272965945836860163216654308772496273054985803229811777336317708207972626152760543307534824729259520704690776130933902114060609003857474110619197059949773541432803133305864359615751885614524669791213814318314114513540983200068692008170804295564775013314807781141210240275964751757935365751272240246147530974401761148942407041766138765562712804937824362243829471893578283751613266699553867201844936589059448237314833540347058976758041848944931327731059185971029290510974709777368209692432264871936534974404702531072244602734783820894478710668088273600154498466281981979510069022893358148979755646435850562551920509055745179540745996648999908721681531183347766650168081127866741332319793463830641204891663702620850213037489797832217353498627874456978927106065210173508498006695263777861001895843441878113390546273798473811542626361163763794171380597444356553011836483700455222197588417300393077321185112993987278725854476268038266574243057586435911587987626261930586509187022365728089931495601564026640957848631994781241360343810214887796754532651851372864574441113795314736533759626953405240614164027417832679834452937080372374164428061465251289404708218485319661800054839299024695735993937849114948833155096130709389762691258895904333420109209961144080789094484782732673320962366918144539923914111776431478747006706428968255367300885903771679252725008393075404215717127682001834183898707413173772004515287247469376174799117034564580797948472357638038102005365391862396721119879080095623292050847577570735368267124307053299253006697604669239300094486291933894632657963749499407996314857972986569775153810376330942711649476201924200344194093542420061147841600374996924089916018304283240487976772025275924966696638042190992755477639915210276688024810297053792181736221507854130960868841609967330592028478989815552194014203934847363487822888457096746772027815658586416525675461247537318225709597344126152155926292939777365000691787258584415624786907328040749168032038947982991931411607457944106552240085068610987540403443981147320225476233495230319695071069357835539224134081061118581101049214192096285900789434285951305959042795909025307495738065238690869677183440201881858067561743428865358420055590025913462276879529771956667460683041942250572663277918662646335963749208579926577212868363325866583869521194603058820101683375613792011455845513044642801410799440106860411314776224392674408468313613923791995651755280425700299193933526543950196247295075493744647924186337234788952215980161854718443642898122152456897270154566358078753128174895028416532050881126196407883470191561768880619840913153339576618196781738301346525052229491217177681803440143078515413257667531237155964961350943982920434417668229742140644424179813336540269452832450784929200868052744231779109418491939123358259750618689670572125581103828073863429302949997320484967970791869737279955351267671123777120921654818368160478386957300944747850664183320798717285773984672040498706827676887087600601419403614961613144059163998566832754895777319210281438642222585319700810183844800983554389535518460751324333724993015224081463440498799525923489002542588813956155131200421341198520280287582572259001241494060345283862504954841878717375987693388068858346925456302622645747093790941739837526192601388255786061912334122886747557003334477505912671496801479458022279728469565366618990428755841324400271246725828471143219415564685324426356082416843667355846045857030706889655901591982350235926712560362164363339475523250147514976685129887169369352857885750055307611673948098633197849704295641718565830008534746976127600397519273011219980735677807847739436690694355742175757872144933948252074007172074038373771380645498712566727850491695628231418594424240794322132929356656968619136492253390805530802797777715892707298690085975810952196973595987475779273252872345365237773224038309676187585047106213591282440773231209179730689571800174970762830541011881196318670303992294713177780916659999793648993716375291980784885030519629272726537784142839182262862840674329845590876752987878181328188909974033978759369500357851886634297962404930267526695272387340274144051676471400965072447982576183727582943639169367900090648138112968463434788655795181907400484828035971360079078509721445220434935549385376271496555010126915306720116842408892416187297234009013668934086475705170202998994099020590624681903534523426412105781058579455563586330691974589432230011646237697796584730847442931184906298417173399436073412273086525290818242052065087835919411046389400150022133988879789276985616428348751549902185591390952482131675763439443615031483674076912813115850163537435461522470287856806992807681392875690288744045167578103838110429903429815197773213851312965317363820863584578079255211878962323458370458328151604136669849797507226050925237879307957459025694295630909394563146326025375820608331218617218085986224978921278784023636409343971265540011367482155310899034123346438800415576750562460456953102697495655696374625096059337822352923395570614072309334873214115822607468856482986920560656874755093873849325046630648935016784246609353725531009577149650987328023548563759035741685846743368486625528256630330333770104912304291137363783209262035987817863929549200671340729075560583133170218015098983564338107393200220955140029922723903594607315768480398877364184382251517628480007857974538788714900435159279092723157023988201532487207268337987661558090783354695958609726828422797159583074797506666191858165339933995591571134341211245392429814273252981168545461160123699703044883391211999305487678502055673714732685109973680711530409856681067542124460228060941054654115460378917659283145639887115803065923285932275609445434360729956604320935705686513912760213699446424318685191919026445837242145498669106454163742956664871039150524078912800141322002030623652928751436799999685071928057470017780940370102544513267326812572668780674481446389465539651010546827667362257149560720249969719225990051205833462335218058550677381138312813629415711981893276527220970723537277980772634169190895457649878149775081823967386969690815242734786501757016627891735471474178823028732020201570136670030407462747297700328807480208560684269231806379875873568409488099726606853970584649437437274650132695634425615423879855770965073897196618698325222713536253572210809781383266628252218440609373424645631248025671388300734967129761244051398876925503568433721772051760478316959029961576548930039820574941962980299554764705039101859128751649497852638834193978048571933117844641823514119153429650831175797803813806969736425914254247432535723656966293579258655709891464464245472117879740540128672821555696517993833836517274614402766179411692598575089729054328992718408559100455490397039457888284588053629742607176884093994881406410613437813066417163890456025959244843274315199889179899829248101912747614629742214280674852300354261287403037552325701902590601238331262769278125005037263069166277720260664548715634706261514486718796656492841950035325710782980288218495764395603795727747650755472384512266767159799637538101906926314728161295482359532436382659019140028750112847131213313772916890749518099388025042144300559570291515372844862187355465890608647403321634882264736545835036726565406104772529789083645562416212738084628158916103080972623666238343847514870183150029767408354939669194035235139701311951758335078477297053743908471922871133942226248171125236221598839490629318582227322637836350627902464380155490303018427471986969094586482910665413594380941269316078125987361076174138552069946159761473525417375035824918305943734538103948047989044352791197654544017740763896970734719308141667181648687868168498530128219239769331770648728800364306793222125462416949176142732153686394588942667665212199220083983799102946340014040376561092541820166913877470448587198466887941311179292336119122070453724552173474567160189621537507804974605059690022058135940377208644026579571375169204200528188935098136040533973108668165232625603797100401514875589434830195933876774293275854783329636453228056076121058738467346531497114378057588144620863844750316107079020842352682643610999601159374818989655791525478122658008414109835322090918617630915360946577018305911408078561107452280892486261963002411115240482368706585282068449828837306888420111676971313127309127554158837689797293087911784524269210481463086630157705347822744211130825757229788089782095702410781019971277621630232017788525589995166183453728000256849525407030779979093181736853167552655226766174842964830775890109145606735504764975234687093380417173763369042558439189101917671791587295478712934518774568089132555760586518280611732006160995161763061648034117234180883239596262797073843902500043929721548892521244567763198469121818452432767241952732924773835686056671945790942150220647674869334590718757995415940968515032524526470798770223508908489793793510121612361960323614559145939504725497244403862938066270319966180837322170325649967853477649261124099728684535329991311564573414274290709533153498042969483976414412002033414323045393068660175968943869879017232275263065122791242763799762690966537888621226849186162586866064272075988818367958558024448426280953241261213186763464105142989518124435122010645354320406779161622911528453627876715780928852933539276823659589173600522306143147482400624457961615691280067803104006205838437608220997930351197480525064423922074152898871715503061993540972279292192418587010014940631512511353310675779228557892580006486635147029529131175087286456559684258954682381439169647584895833910466084944581640310972895686773860820437801105886455140568989813005989359790131842441461142274997573842807646666538719872960815817994476524389548286220562001564626650717587100424364857608330097191178097929933047107056214496104262698667140549204211338568295998560778002695723511258786067503869598188759607418370788968432100013681073692380170037667447427309986186773085604637126032511483480532570236767902793513847761497658468528862110275394933841248286230787687199033220803081570328400652609082853313730589294055033965147051888090588938037581222517576846488179747200756202399244346623531159375134010310497352843917810066135378377650977662875867159574110086383116513311219766285614362936514554446045293157008543379847956709569870995796670444045846877580590707260873036102843025251447494956916904226343699845497485103903242991960113824239887825901016492752249605697530631329583251999324801266588327382746860171084108958402949013139122552505272325261203496648330943086708232715273553100191213445887673407953954349593970950479429303258062972687478412298850376118847587359921608332692085164985029312887576295170230010310319893398796907894200273719244604486080908019807336289848308249045136200987636373842978783295079954331842506786024549437032050150781685197693034163016070789711696366382855500026704912885474317637287379498185603920024808027867935871522835944160800747650186308629334373220838971392178855461290896282066540960141196406710543447811155969233620223353751171944195172359091956471162162801083347558781522898792767987329937996358534323506373130472698552550434623144026240776897780526993929757418523047559119024208275644990539896017273643368846721407424458170761978844975020863244581537814676959763636385208754225953421830250314958375030218262570210240481603891139137829775086381795565045907459319409765726466237401296050783089801264134780001252241139293917872133270159938656262563960287153554859800722518853221785122487168450850112617419367081056377093934213555640598723179250220792137801684534549534747141354494847460125837739056990822328597555811714081439412208242231705869224349867523833956141347298986942311863760929834853010791580704849947080238431855154791746557014040849776419595379984351558434050974148566220268148925903881371329663264513897974175972130253675208384061429376373241296094417791454831654570338077106499530500628269752169522522112809832807043879028769880336878353539827853154274592283693479320063571635281560886230751557342789552836451674041071816060058545117222565712653924614441548494783459584517506953172740164204613328236044506845357187974414063506332704242434951565005929737776117615653429928692887323060735281105488356942027595076871133962114775237300127940001243500270508104141353932314399526056600398000193567382390788577257602293438476669490696093722150219785277972027617884940568697504822433078388338670797373805029411243922302080233795639965836476254546373877096373991662313127419384933959233669474825609329078976633915801349565343845535471585092533696776666473220868518161412730165228537924433781439153790929346238105320964241099444448576568671428265693820865490131616793365854293592661459812257759121328324800158906351262898151524253001650457832385923188668523184133166426761677487154517593320487575063499027232539121121566713791772304350708723394759524863970180440531265155776211740663043698426870347220464941822160992214777549316044226513487341647930886297420963129420677182871942032495795964526526024366657739817485255614810078848080852313127438922873606096432267715140464041390292937716051193548783109412246509880302422023835645074139373127222480255027917943201191508660227772458490116955276313554252618145731401164410715824210085840336111162946171126320653073783816568241719752918366235988313596499547280578690781584502040118966197039729302698431317206619088480605197444035733809355273006884949748870868341794790780654715418654748268673470006014925932746402119006239515133598615652472036812135052281638097117562539009028148396046509467080285494694920533753990998436823872511886808101819124031306191684916045227931692454179712772728999010621271128549606800329624403637951548437605426035382917510111221998527975138463818872503383698941885931674742098540298889297475755784311213589383783051772947273325164359430684745304585500879905083057750795852007597087274726251991903156323696280122640318996482753129882130967316433654830988392935413958569499225707238364336966120770304586955252500147068649792657795976266286580891633597636477915112117402551865069925406076688487741538742307484452080047600310024733158492603345242355733509102322373160065280609834039816566107438513304534134565574465588173926321316811925641828062030940298122239467386904190053770361993417579424256844397244049535601870510105693187096896637322392371066929419848296089728404483830715964721903596686961254928137550709461906130600707205189296612230723235527413786538573766947795184203473653113739763228080043029652672435417281688690700881315989364723137537544351173259181606657030731360598661091711856949514530172943891445296072735826079928933131940780249374012589478458207082329053671091200762792537783334830427790077666999185253120555186883016993409729118788647652707042432802854087814267313029548994827991702975930267671331434767242081796249712542607431899478921033077128601412137762103096043672791590061685985058997439233029816231732165740097544063199132714068514483232981895971980023516837352929209094300809190202583584711206161358332522493460791964319869967706359854691621995857253844508893250450662484239404007704838826941859641525837782406595136371372417747150395377015208043639406071635736748950611949031583055199738564534915983281954863491642871056826571506270507015402283928690125744420746809799940047467653866898668910715180890697738833436534721273549028025314046527989050022345679397468506967902217027322433233345828553167427161426884323540028765962784761405300716079751697545792041043460922753669742483128612605842296105532710126728800438495295271532266503647505356323824779562648870066297546616323295787134103030845241813445013142395017904315594258236807327405534383614529501320039371791575079470072717545948953464963673639511031158227506393298412932122589590792030906073284322768856888392572560752987007338356649247212821915189910409106587137069722904273568638735657558078554046311199551902066679531182088802718850228623418650195866824118990188678168631480549477093481085061483698960107488325274736300720870176549856461308556448725105360128681541402831872279278840727890243517530274042343189588069544589642600468357098913088591713170375828127929585753409821632165948376710575265503840308329756903108321298029441054781899672700668545320028524496389766608256951862851558761919857438156557022235373939086695750571267351537846314016260676271320978328085105312942751020072426866679289225769205235922304253339764766149093715746472882483771182096571441907609444222938981158043081198576519339933775213636035989060727662003127820741184344514335285027939475693289825300280172846376207609675538033926103111435466457553373137489337923859688615688860951907157417834116555951650401662448607141048370727706999455561480459863393531120850366859366720743674500534479391912624094224982284700932631928306821809364116035406921940583859157576934775436878877512305355236927220659865749245198829387019563216372309800660586708190351269238374950716722989520890655250004060911077689839196069071388154590158920686110837497834058535305996258257954937095410086144698033635522941889533468803690476924230974590890263618548652753008759657785794464066301449715936659284785262425867563790536290616905223922700956610198769645595632187335907025942726178622741762010458821994480877691471528276452353737943724076903941557105953356299767211894378348692356326750454013522881862194767249715710475870617333394277685671884195474995281462870611668008897743932755144989512030718661479597846974712949170789551560037338700898415327099763484071447453935417770637662387968345033018906962763126261088585547061336663121509236492747547121113536398933302419697690129521901950577365065686726679413320094005656028097980873487956508306209149760948245288717783425328283666966402853215237361295132213880089374802596736097077230433615700544929330944616607468401745855661208497245462580140276929824674532983448561975364268124450999830955088579526186279107261456626767722479540642231602856660075520612717643749385591064501209645941953708017286799873704297374279105357771950224520091068626601746114308064443482240794807308431616656554703887183472629613143785143549425176733961578360050509871380247391106656913178153826649819067426644693893681005278939485502414958641841951317876446208857650625320092065774242072341559130634977418075349009654841257139393694807350446548513623805159584704117102496589076594671050318570627100740154508080753530451288266744297830329298263036354686238033843433643990166062796077202400200694385156615639913710042507757469611187665036973073252089011231520909592716616151705286031842010533814402402500090175959886889422171928311776145647148189059455582406597003710022965246134563341433113840634235395144888784945334782512715467511198787551557059401033656667592358802177361438154723871858413133105017783413567150050837013669532548731400832409289207088337154323822694962928914576822044650784911040213436144386326039578972766439331004675541268326936330521809835257548513369485598383529345244507213502628795184422601045728614632545019434312414594929179402732013142742098625904294073770616786789981700772121072530295681921639233327604198645032997416560620665368144934114668647542851227001936821468087810152140687121942350994992528630603475996873900990369205247529110157647019113868421577240621486375863149011697994001579886622205086873733716667042712524407406609917542609659089063171992107915288402757540995540665832077133263947064118048147997789081255286753071871684213728384116611978102547138291210424628067617257282891875539512715485449065398355409231790358799909519939849246594965413672857579108857233570523698267738794236056513808326047296864559732324194789932150213699410945252295865935515986117224762610904602983135663754026720792632045599993492509084327734553180848812347052944094202402373813006683268798943433605953379855188693827424074162328376851495602327740009205657131545887105569285151321936341874954933583379470614723630341281926458043226396972940115716831665818485297857955249886207104277311966957795179799189410377944933031256149350336494392592016853718959214302487035974273730742612089541108171622474431595424616737662380058784615495599991062881324819267637216865372956543542645585089403920813636474502161717758825219550238360600125541953705302814241742960803404408594112068550599224084953493610295431161240452722896405234603466079625645467375214535235131263002857701951388498120294121569493643974650949299009290414833487929794461107319101433008002549413402159898468920455830186400189551139988465296271870502613829789515908569233177340577172868953390713806836004054801713558646325565923362530078476497002678065156534796913339962958656227552531342842903727828644706497293929828266490320068743138499266678876303026150227157153581946040182092902822942204435951083637115942709918924058048927618041218245353593040079989378302613477671343776502651858026163010620918683449905240262648182501920963320013132812397990308175948489235367009485963805188592113432751870645537508034832357475944492035770737911572193432638716150861721145485165480181698043976705506042702340777019149772061017510816879195471203526257056457489390837005991346551462485255349274712623118398141825937372507361068467603008273156774930018245833170710837955851336878167207585006218195218771330384892229849984163711406412812704974091397431619114642582350343825506002796895704795773145218838628571763994219944286982965246092966762874292465989782707551318894311644560930915691841089815366980558373632270662740546680103317848361879621265255827022640177642451980428234986040246098657549184002809688748357901088311481567089958067384927259838847032398651803778452870022217780382821638031814297307363249607551272557115958760077188413256677039406142494984374188115938555616588594887631888439612696550222094756940566376073200639674427863382647195397964008918488251359324865258458701604338266001971970100741634166514335969813631841562941396629453755495152599233290106439183827773543738698523449347641980024504941769200773489013866724965360443516609329406819555409496536936074459700624239495603339974814708667708088461478409390400033684298436824151617763054339289921035497132835461647183729453992739063141266497405004707708739655075064410563390550480336196897496332266301478887249616508373136430441416909585037843766248679197813879206178193539280571976080285181814353605206554707624371448928927622544430002708315227825361774463346422686735939806586639581892186778963294981598373382509778136223580036041878258427948769293529348593820960405760229391233081490302119272499562509169237489943203040483200407247133919706722093915558985896004437977485593307998576048210634144645652080427413134622223340127791372167701328483387704466082179099927729190466619133966494202781127425098797995384846133676189624927531867622672190281762776185638243048420295595819476103796368478948401590302023879075217933862750232102968131212070196524234607595909463422715882177592110459555026586473498446972801844454432720276593995575014555561811640246493497959798397239968369512303200313146956396763224188130585280755725725129238293712717392659327560756095647311595894625490577661304332770145558970183711691919495847612552450969533075911885785329227906013512908227430327735356725916042006607422081919318979624910903915620275606893836834936659031904371943530073944373598678141684489982407804117535171180802148278196745878589578488147176771197973045483889446486217493273941675631363253396498091895321056246307241537890086587676331883733629501601079306308632959949312906946178134150855970164996947785794834778351218025205611541303404228905523844923183211953222623336854849116545109048445555111690315294824629918055136259222211415334476073441699246002636002410403391584305419164520265318357358882577466321297548321346988854409700951424758146669225380916839715077271482229988469659769514084116587709668614324829878628720964667115303798046520825109867702873685606289355579223278301289413947685112246681018752408099963908386826860768881619232915616867987165886934469322947313454122641308401824035179534551787441801121047574642204779401557447996368393982876951703286782220862047710961475965034504063117226032947574224649445540343040775010774544708301182621896885331846917076720567846983363650834262173282724540819569579337400139748272602745735881101106773979480446121198641917780254572686083575545930923931261150625484734094144684332699279066932939188490368261004113569002661678091732581166397666497336357293616077955910926719649642415375377710964352493664830704564034011291538217646543221173197245795397238356319466850074175339746512072604895537162464091398688576386053047512258914737464777803641914375654421926312689977937947288929047261467901410108746049358224552008702334346227881479716992796241625888053688961721059810172509333744358025114486598002115380059960499820305793775509093464502682647509378670446593556158499248048661575902658588778346591706435795313846995827965228485007135638465602515095298027412717888581347918624790492386384446635499081089158608043159661973962539300177532757451048702287153734255254476419592794785215310302990262320502006899024097097870884087329238451957585642905578348860980401754335980669977955146354349783900581458366922473102542013527685252172651210885231145490557506540564006917923202948218338843334244693018720102094405031395917927276270817708008995455339481929891875934953763035172979109517301259091906127169413743116174971298954682185018982946107735765028872197039685794874008338828640603886349005636429717218738001475862576272894615426780339283918521258394230292231024374943729998297255419782034367791163986417117453066442446092258946945942723447945125604592948813652121964402908788006565811687882645403196211844778739782356598283474296194223366157614175278025555095600581408481275693343864882104636042582855823064975994036939280453350705030230998933772953060229152259752089958876220596112891232504096397818504415701671498164524365320105607705061515897200825453111845716311044448549811558144450537005561044736808635028665425782982302300932852552056188290902900772272451794484214923561420217763793826674535682065608803320731323899290976882356021094059732680015584087558830654091019850936159051249489846234927940017853018736147936424210473329981924688615550112307619894994449047259904103679026914393100669009645824367361136643539982737346631380516140329852991456131844011994029462708372323421031370509828470841748079655912646727503438201034265081469637564241878039393289065999231432847104941600824871301853993298050229891344573438180369261572370780824609321350070176684463859799156513615597463892955968116617252410257585652161940697126963330010328065961996079768716731311110864877499609105906706227951424939017715970367136763152416495105279263068422340634343393971049718637239348130609449221515646575038060329303660133611893702633239727154820300698422974040485646653224110857477193190675614083347425770882097458558187933674076891557020599574494392082289525794176971872965456121911517909286896035762028258614384208018385161503963424347657781150822374433280038205065088030803992022632014599374169354804732726447545394366786476497944921421384540742680844021196089011687118516448917873427019893714925993936641623692522563382165700861562762064488417026461500078440951492070378165430503825987128233679663014752521135561920610409147605145714745087914386733554295401791835221138898831843815853379483995585101806827212570364304369080893704917786915208160801587933602446424827327361587664152025468871980966337874031272506347879367118520829636671017672702381884629756071843164282562552429228321815483844134586406507296529322195647250955740482608630630905889026028245376883723811774563158775524394690405304994556239057653264995457625820569898653049002811336795143676650626994475042756322339298207796508636703085728621285855548918106114920724392026092873272403088491308783349514096166206071871447899386702129040116748973002514631399589923365157842691421129651708833083937409790930616115396972910820702077403661859597443706182144128298476282241414903864673295112173957206611705687494360307978148355910628414931442430988367014341910384213248668797787776501365899477150907856014377348142845257362649974571038082808765868635887491622198946621636646271383260957981599428211466423066098527866802014509548057830635575179488871782227663424095491818619432256819214257397246845641515125523966281869185054946887097807633469653003733888743403259816542926691228274049784466964994314463913638984149320843712005856690228157250677089399555016296268411466936500612027672417859068414511943291395581065372122802838341926225485615404619426334535103821094920908242889368389515128851576135078956944105284861181513885321967040415058761478272749239212166277290410197075067974120853927534764819916934649056791173845383713574506643736387140190694245799438360058756028155066075966391801707427559563036487600786849511288247448455805183375748987264774663524550822236635802322256189447993812988797453892778843585270983016985390526170887230618472333002346302701872221563245943777604115758897296074964319072560360783723982309698191880914380019077778110659331540392228339710459702558175266505200763799010683428344160732524623880601435576296620323233058864220518580517205546008803768231882487192021257659160563314087752751028889655107504479282701899309907359738159726555715420255504574513432007396387823209771410639866779014059230091166215310221919937752058442765325776308160408174550683647602574153054115289472423342991360858827937065199882785055721732456261855552409930144515646304571153637428377899151209569822305767243978033475541491495546367445858838649421279075040746683297138973143196457948466269787193453767585947805965074741952876090340653385434494680740877344860561924072994427932618321054535601175401359498889281202244923921804983761682967607658569421650838165313523667809971762817018567684268449456066997486374593733565548746190451728058588093496191179660825217410571409752710871028375700878543725517604314343444201398102933246445654660277396900726868606320056545086247704733544866753656786247201426049250957433242824318478103022955905996418146520829963042738761372316775299740723688356076353162668052249075158548010642719392078750199953222002472095297470741504582818037133267200062912279392516353399023305770468469601573751473592709369958395590773122516592709893173190499688878288402368775862796288820126500267653606484847788089365199529992625908986584318589910291630330175959416029534597730511119075257427947819970394084369161127800561242297203797134765243462233167461648390001499160678311703998341065609971218243433251833621558447940442032385160657554973572538942224936243955151568258918623182584418082276932277426493396764767311782348002048649722475851785144853495687553095204116591050592020276880688254697347057827072710568442541789322214529043242388372309852914076273210306952462242151389618896215703728310965339469547638372437897710420975401576721076888651738816816915922459092474087601297012969839736095019081258902595640365387281987910907175404923863043859289900182379769312012328127888377657801160660065885805467864385112717024541756726035965599109862704019441447665306461807513580280423662711396441759582427851593773416923636574858060328567102469961361558101859012091923502038762756750805235132422395483470028309180398421666320529595615069354881936329919991224918724081454529281251983319570690782282634670379025357696117844380520890155805788680942433546387306477172384419235548423457415615027094052741319044927161182300697663129918765324301682012311324112558038027489469152545250089499552849187612044003521445180658695739772380311829735880563695484723611616234932198087647218481746978437542885632283822491749003130720868437991605093963635974644771091277001565506514733748160955315188163560038416119252767149435877600745572236092326116570219058622436751455452489765862078654332709074914537814166977500496275600628180619511647149978246351131399896717961396335811979885909416279046739223680290214733180457558054635721601636377681779226318294053359274351963641263888110736007230657707006210826993574842498565718090497751418496659724116329253450376865579838706893906432505364804119127289098083849928471304801850836286117323515919908135756903229801066911059005931642057897007688994028294173966034783079695178934254911283817221203279952192822039398944549187844031345381874392898727511263068642723024118374832337613770131714809740268437115970759501615800574819457302685487824990338852204024109801480913311204591992903202046899912000716048191115413015277000213327508550173517546795787226311342127721780744362833718643947012617273025627784726322883874018599645107032894163604641435913522014621436899866382254148616792991585711309214954648351174466769242160731825595393420069249315840456168651574676041511524075582714069606479795082569215431677115065749317543762108240961633557471617880746590233406588730993637596397143270239469919835832221105864810981985042050330556873720788560430147415711822804066750918252570404088190787788514443314926947705225471147564070299049740826303627935519415366421329413262781729792603146338873742190715413001462844721553683667140998627979797619578797207205730693632436265486928820927207569806182881848348730035134238422854453677098787316288692045763962748887128702922971435604354131837045572893894667351722790690096370033881444751821234271738853499308192538316586959571638547294878510004636598545579277906600734889001013418128498926430961997474735655820212116573646852138920541945560383454337686497980239281840425419639805174350476599668167610509753487708089668193506262041561431623114478032662704649868551295405795202790388351497615298649285937669488378566337244138711367337801610461193194394749293268092016758050732931013865002879079891987227344667362771536290174217948255261522176133652928388858283962773431167525912388073803028204381175816665828500184230852975930596998381043790507703856818682288581372762988983069138659438720917574976493543676316715598831114701852740912573328108323627205124611031803014804705064380465367118782092702921043629606075154869779273859117758331037693549596856039638971969880175717536818385135129815439674766804017733830292413021876677243789398498965808025594894652457035375684459689177982686032745659253721037674183522971174193471201164530889322235557798345973616797434475443753302458227593694902106480968567245517584380919135747738983800240401145439601043480230290893148731532475833494226016560024182023208748472213382057428509539204075724686995597157838126804086480140620456776620986561267698051202040136961201277516842437134413330419487720335101190423104761640695431048899512025724777640291767827596394650447962417173795849697152186817679760547372190146056828470793464044068406649205260392147489585422913157773361980439266571874556265817103567762961100980374037705025531919466480199331041006719929266196550356202592174120437861600686224368830229951610353107050079485764148423048676124868340766275426730771641888184866146856140869144251853804206887147699926400771095446504610125727686493992634501172751286851986308362030722180294887601373405764794905687697427048826105873419284032216061808866530284222406036872920030949938827712471207092367097272266927768813405015322300002982899324995795221202411719530806698753617457609721342033688536625584482537755019390774589270535336593911540301426350756457033965908065926934400579501085014185207242293770031296930471192553280146742738667298142970924846578170175474548053841961125702738734565754453036557220257959122329519004758368384166835326042896061401563083699563906578233433655703113169873393315597462993592244570771078341979006574464004280038710759004631521104811783499828578708948177560238883095955623426776883274746500738405871531628522877777397904350670241368614387994392747613299681875569487349045526071471754104437444664512246409834699505151814339111971068653303546347503980790411846417478772784909170632705212107802224269900090011587846967856219930787607930226548691166152576353048148149261294944553026556297948943380145767130299661235087215858819235841489138017995041896353644497254707124794137294809342073295242061596868510037958233986455919799539893148695959101700309980324852300635970099291223097788338881245399209958052570085360857704480078358776806015425313077997634022767191064485521067802374565544192466206625371935572752951374278745391737351919338133039849462767348200198060551605724386652649994765487732517826253926375838641787157984392581581783315016514559058680069227044501017563790359908592465784810604848913133393536172473981139110718429478267014877343128243329090785430775991274863062268447006600051000718913424224890179738276783770887124352182287476957568105550619703607027013432897018833967949746710604348318267394151503087068742471214506034768494496644763537962987210934797394809091411806727153455909110977420894706318573970270904911895643530369004336195937128322928497400993115620145383550438382371772182605631995177428006517499422893935745455920695480141515207214798250508748431701930627938484351027724732692086796561721131891219664207141122774145854613635231539604645655610968178216146516712841387351493258327573514670377599781389026677936108290207850475754824382562409354085155216175133549126790491570787855482624153052903167750509626155616929326487229571948138119378983122243801714322859505569291581899339618633354854690297018438808054063450798390610641214692852861485214819984526848807579654084189844465274327955601405544650588940196366414418925414968433298888815477485302749630649516546225154837929301612606506408461221328337564474454652975780861463476451773955606070953913875093099391475508908907771703720233683601533317431390614108901765739631003305867450061545155175382401993036687260004387573205663173738774564630329115483959274296796319106061461672942700589978275538922934329370260474281825312702595992150969562027085127809234014162707073868509742406222626594025083918265550362180138465643006447213350414565489772145505022353967450659813316122075769617248794172779317269631559589793368772980374862341423784349601292544948290996430203088780526845452915096477069205846748085942399954874385086168213388642419833224539387363281056894226705846757796193784261923279084685954786159190551582883687460793866938975325494554788009859649217720487155911460383765286811120205092944394184895868968857299827737822825607491646157448915437639792339775828864909486735050044027536655305564912653989516224317028340699886403651287250483714332749046102286185647340329277580220281480371777121974127577652405187587818480330136654032061966604297601103391298864592287903662384014014198186342443357727036323294580431645237681400336774432732792669872641509969696011937974732173109046429110814039940335807735019886087976855056951793192323981103710204634824842726538736150060926826310518166781849979219822504740961978655734922520666892349948728952384621024381160963170405080204348875145667384757914971105063233096070308770188890981754165135814246868695375946850024729135157482788152275043104854578204910873173126988248872248747754454440913445205317660113668600787575683013343556711699047650099443694003589837955557007295950892527569389156435040305440425929286292892234305058413445036291166394228999716578685600002013548795480417135931699796672873560527459234651303251209142953244030680291148719882459471488400375852761073976606864707658150355407149961835627975098759951516566137825631063520150271902566857308655097675610791010512084467363332138437713498129353297672335784296812850015055068446719012140217961208813966375346446496532720701565708392989451646486615857552022602466584482348963047168400943577040398475830486397215433398187514969390304838458927601033150912085751079109358487830391201240262796320901393629912814888213863757476197492019004024739356621343820665064256974807387122450098749792116603046945921059802706096998248622978911524183417239295729556232235984313545279570531608295749151773869807948297134808648865983951926833443787010983441106164213362902180254840267005980515601081921012498142836509030283747302171593697950731124997551770039113433134692114952077069992758365685927855307787168009329379405482005858342825038786149837623279013578976859544778513642013798497603126123005784099116599407855828710118049481395536013431012743016282871575487337577751021910259356729578206392463709578360247047063504157362891316507163929970137363228312370627781604411561243535566166512469895968964925703175094184717022803519932023457934880660246839892734047904879013829022103608398494271893352406598659500214116280173744647570719767344933426144612621120360870893234303501018542574016790624701195328418737743547819180121726677961189235447416955772856935771227447406652683986038971760939412546250786302837328777162001836277652590039521017056189024950844647828849263733318530651828672331391240537745853892180146876110662393388875500246783976029978332831729379571656664436191269372059769080581653384441853393076719035673256802435819781520630605794925814426504760937106055289629186333430823064859977860084691521367758337579609756822598052760203976514828560529862280917412591958070906631707233548646589339183128654653409493892525408176647551342417759480349752588451057089440596989410494742485670587090970752713017359076377019170098839150899946779745749175523192822929998784948393412910825579423785626604237884038505667651081093977572077922603619466524551223061480762894454299404741234394782774921747324911658576165804148348013924689502178761284628182264752094170645194004895787435319936180405340529644756402729503584522220624587750418511926484066883233817023895507290399982399441580292324628118920722436048657705047633537381790087245030183560811449037808606844693996647661100680998726084002536831987503196302964941031525631869399596316979608012246393870459443877392595437628881875941118444956624258800562078484642982585546701923928062493161325541823303623272571864916280627881404001840999655645194445556465528707045510279412913338479564334139555155306550090192596405855850434540618196572828869999937421831146847762328448240908879708834520231758773661588278927256558176817410735287225160231937661441536439668490272913958394511432527412689765027721924684540794761691312426364625706673869296454516963285206543758174259645344741466645382161870602947166142672405320190919412923500806555591789511038415146763627813388563090957776360447431686937268508534872835667542461511801134088138961940954483693679244317129924408689279047719974892839994906527217001472593069558662978991121227441470225309704222678959814348700142350332534781205976568177011193370429739775007151880390837560319224025856127678779474321591268636652119117934300086476063515084829047972386001739128844344333012693017802789672831199493850515979391047366959755964759565176243235944994687781445958019352206158976203608043138734452445500391463147595116269271661921212509970660539854191816310596505621259996124307690514223263149600696545576690991312739036575564163914911330055375616750734503059176926050908530615047646206796468025109750271536664801123584969443681519651884082264560443369194287532098047693003586388863407761994605043803507538295165083828300719300160312171946531502027857414623140774238321502818395882478243663204457843352043003097255378889549834434472881212963916515357968521894333800926234246363961494301405137667650507966768194708899535033238724769708183294400190253200008973986995377135064749351248536228192262589274933822340620091230886095765583314688579498358314060196494310273653552815962815803413922910415332110618672887552535625878253316067458467983661495187948469690926433617429312885181661476951609345983024926230004861262919973557540771113596347859892250428968478537282793294529513675463751980960778105555944613615729620307071429552452084140490730429095846129668255831002426016471805585326608750792512833292650308097627974482965634496687533726398351878562501531645227918714334071311278235342605095418128345507409227588446554781683391558078468887238870833986113366683399734722229726390357028545304006919787495231785339914379379164308855770793757456516645133917869256794846804626886684160734979012389952941205543166596162025536134806171159186064057083290361872891951319183432331083231263327096853677836379565092908519943443188730318057439472223701367764351181119108335754079866733369047864088862147743157488617341502971989295475476152234322194634086369139499343024072142308269566108214229148407296833546525922604381465555798001874807836713378581783199460759158303948259381305846613574666470231268104175802236828220131040867903384053037156564827148916368391965468664377519726586779034361270584222354604797276606994378523180365797097183274311565394167632902500321209190972441088253651180099314651965695604178477745473744353667655179882720375103051850472468697162007805108001968941468608818183247339628533923647800944506318704796167101460594173379665138377923372412178170497790848853112409026824142929317938265469586876772350906824965139016860341436933746660880070114070054608158302696742915609022187173164921718861225795768159101992372392902690506930874590379562846583347171980296063856893037170519063229265562743255463653003810557355111566120499950752548853284007522966473848527460899094986792297019957189081987661209761681397807640435044146128405987647975503929806671005314070722660855328499865059971679464937919103589262828569514373133879204352327125444067652401784918940211829964539711858017944869712043788256507793438560259313075758795657490252534292817512784008735055296283691530067185851178062124217943651271355686304568368062083628104212895519032845486701085717082790886641243107885358468211328253775115268552856922460650376711338269359327526877284257371677894963877985084561938370432775861730512198212681435679622291072979250238442760704629842942527352011322104130741134670404605011456281231949348905819436420988228987586594357630781692516147554625351110678259268970951354609707607851976392995213158925993018898538035606080756171988756770837813529911798869505837572793446186117373188020921636914889997333043742465978152296867737695780410508852804071789026030526163483410935252580824658039096570574426013024927934422730649203511996209824630013399354618894979659202176376174915756862179207315354953941697568693802995440373658070694817441902029397422753913932777245252735052788833781230225238449187128021401223803039401776841678732810868817777880682571878558653232347897349261486669378877616240252809881840889503581557242113058894732884198551700529308485700163075175097341702854480581517852297289688765169129906129400386396901742557225414035158294445932280144029894476472688086435346658843923330314723615154058442530413854254361645656830537602030696275366044880295786549461704724840872670345803865561720047741627373914195472589263392918737694966766821671106542584388242716211064162151704739131172492937856858588671117280676365561099062839833725701962196468938469191432041817633553898306159912157867218549019578880355720491701493568149737513050967865551947973727567101511995104759681739591595388299265224096605252717619067445276336408061411746907563024452809443122760028020853098733213215739060407171423797669153207753447896759904829604656444583386768404218361682439931695252520262064857811431493379407675441154506558029137197682817007875708747756458565864442247181120632709193364544900354342224229048947856433292021531764710264906305858062704895501672603742388529943402918505683361327062482447322775990913256850506399651110168570155394145700869410524512936661875599457325682553641492102447316231373779450477317766350571097917240402236230976149457561539835040971950833125524306402469904590043249807975561876731567873571999467397878302095138346631927063211494920651340349650587803245502428189016519719150623965192304103451986395247071593613340130070516301103409209883259397460042302509287064021834326801613778126289669219455587096480200776518755789605023375678882810213147543916870537914583187950086661898195330177393470741827112778613064419587637635624124561724428563578436391512265287535999612724600944365588668618612925733843619626604083423543155597933365740386720224069500668254899976630057723785905361060325626803705999067660134287346876247128251867515820424855107975130776303804244860328916220929697238436473342049097187608291124238431867479691129202175849712233982600059698460430801012612109830911142289063923308509662380485497051049906229150933386030164758647906299202833350310266131353648457119147218075021842945362160249575219106963025906677635776480250995738431037839553941768442137957798422367887595699931447122159859890052982089416603235193448555376595049591365843901735421938620560621721903954412181850519984459926286309975146766268872349827103554636846592572574315378079451861220369873635887463090604042443178736561083250726647664649142590950703485525453466057817532024810793671564347640676885467268446274969973685359753380833499873416378411381653058462608716626970865544379344225565643141764807747894223924875323229270023955904020436978138519355749973646814688246772649968086182207892229710624276699155448747213553433318501328593249091105635485010498891287427363689748792968254736281241331338940610943438613243408284124152325876794930079669188509690556578008673842534127902559633258931562477975963291994856235888389773220584415661943307912746478305213557764759551550599233782978410073428656511498336584796520860968437066561528835844066559780553944828061829642085833345818827770750244388093746902224796398291577611346840213809806223125295641141695950469197117316801017182860527431224391002084555380012240037095120311970841957505810668118579316398248107462809440397834553942018936412183462894961387159686947884046696832121047088931505187735697384742386501720705231871262401879078523806362888219035579262274056132454409644700983188191823564027250113348894209023068290784268656614788066770827111482569285805124763460362300110460201368182358605387985881362262388135911707686102713761764918545121255228356348770777980193537483044816981241067487826256577205117306515007695298548925174863866524265896999924917523251771684560681263798998016419327230627483852974705109897134882354769992789488255176797115870847738204509935231327825295997567683556655601894878718333406544296234058910002216720199899756189287463646763031741145648835470750277195004070833278457194432789583058099565512507675060471297716439802637845876331937353829724510287776262958873194996648742739458022296171066233417434358799266540228449534479963881723056367931526934664191820656001606986288715956605977512174741056545912904834103311694755915237877826310683646792376926384244878848948105107895856365187914918223757820459878506239834626813847991420525183022901292025058258481141350093051101706393809078308504911852010917945518924864198727634342137651591080173563615480419335599699183690900962522691357640011381406127413004815194977239810270383132258450774656751780211499108133964355366356603485054771576518115071286619112568845734683099078492543509686499841814244697637223994881080267439576054856599160519612443259806968015138603825457194554638841892873093025236954010688082119276085491184669906410477165508040809977217668878541048772245894938884828601941389392387235918338861345490471857545112951558498270790286067468756555344359936872675050085783172446996688459461908449585139354934842398897689782179081501108341010316187866614885236218094382906576593100518962438414398338104227344078970905371956665517573440875699085360556725775643682169073321175655777165529011636838157423076180076598653423664751780848027522610761918640940791614652772055970446397525611866903886653959862799692339180229881514038282679713055919043677792248411238649625846123364716971636307006999572497612213789091085254044572762920163652127442355507214149051477085269029402780156865621246685120038425254888965947981593064866981148295508603704993711772138016904281330963732120398368818747006519772783707128587560248105101778579580630631604214038648443355553027910035432790742108541938337638706771325223176386758323196709260152498424293900073578604357734054620588095396131541183453000071545884680030861073929912038713115727441248623957164565009832238148226385898389491393005576382305442845103925304290760587455063482276313918273262306447318792915976716653607863967437780607831046861754995244776471832141369055273152865202296274810145739001367705934953294272995951539758694756995954455523561310223876601632582945360525868128545390112514147226180737211708476371864562938988802581421217235041115971100248414279828344461727484081213286235984471348770950383744684663878985543664174305167949667469450097893601538877271509817636547122931790482181056539287113867853287461958534899495792463598666650001649185311086377782217083251727787250324399977873888665451003984909151203356773428494408599939228440272583293919950937166963825777939004832514830721796392082154659015865486212261971213799489633285528237677452477130521903569675819424876624727458094119680257135735503433148944489795721525616355097452336313292938211389128661618595336213730256115285969964211927899697046828484621368670207954551045393134212997838913611033936928009180867516102334039184316006079612663129873814232214924271920331571616193304502225420503435404105831369950948358571504814210663820920265417007821454664589299171962404273188109728475336886291056607871579551458900353466167403554596558390592037814599977521883547888715611804224845317244194009426539174121646605952899402361141377547070598742158826916239733318505380425520887213518974467589006304652222325529207850134875726087749716095652976174945529299264114658008845944215419931199884490867796311472234624394958361670975016839279569044658565104811389422393532649400423312285748843713427115024772087949549334703322196496659779136731660128395311849566225802141709633504399255256014755738620273505487696905393102856513634011119985937438630620305469736802129095685619788623636190764992242440662936224333322303229389323915728563619080416477051221365481016665108328397297034415706951762662078477382374505430462488748486151624529998895269609135084417587987828010626315469975034371507831288116519420514679750406539638118921949780186304489399598555244767731509636932668913904583280969026840990688575900058573808082959681206746970741795252010301114435543791948521916168962000952633144410150678759756462753966926612017375908580117370087242305690540333682138885457842042488101904795723412692176265221710436796102093428922709670008333722582762978999346822874546132660725730673736752182048845055994981750071404209534539470182298774874811153238330901439291553325007535603308181730936017207136941258273623760456445525002628950858334185976103516182372537747153869521697995878986997136691312604526630105568341648415722970069597957354297744962143810153353468746107776246562664550677922818310190100356708773203343642326245201079246250480914472417523537012052849475264724815110427486445377570845339759076709647180406385029760542704765968793243669797558123126120953368570119431153790094424451642699344682186306385952500404168608191253198781277323960837477294283627676493573288632982868794206066417039516773192913898722525120273195652808404853380592345756970224905803310133036246997054436312023512106896791097456071078138752884477283118918072633573845889458415023720285075515620586430259723183231558186578706023649213194019400777164072489450760129597992162111036681378075559476932065471189911374709917973182926204669025931748955739516802631327681390886338476931666747404964070827221359434341117137145696836557892296985262737053093094070892925342758099178527375995120708694568591105448927249161688815854611813015594481170404920454362976605361819102492790591197961232463930927947336603335375940120100370516390556904402931967301390103119822952237026242637216602691420894476737667094237815433563823949604200096604594719662008760933631172348101204289282606332014793287565910799518007790791122966836180973826327201609755524642563482178729921704768304830197438260367427513583332443301842925178188246917860770492220522271909765556254420918550432446975552914588026804524386609713014225219730051228731542879907959306599992331140673521435000722034294410735822781576849430285915853815352703064369507634443659379459610204314342616730372739778129676465202736747728330719592653999084576035033890247792083903999108425847955767794361373222917311258951512305346532168071106510441504696332759184232558933862058865471329322028965176046597711139188257692082321272561072803340353833116608692770673573738668395227979199330153158338199591331158310744129784835802022404882969301593116155900409402738585814992348522415990079972070231621643312489006877910547596883692314605711515638041159469205561309952930036546892943345451663954355098089123837537892900091237254471760277546768504222040156950638353021166267893167560432971408329224500478768755240248584561789727319312316549194035504101178791548282202009061972664686189198729585439009658937067758008014777840696715569404207275518452811476313658857771407461984213690076664597416747700264389789166605078351011014373134810619851864111704895237366998053738871080123865965378853206063522265887634879900035651774130094183992263676122568245368365648328518089936098290106425860735564858692717826999037320318209526807580657059161441794968871495506705896343694221188298835054560131512524791494171535845991322322250422893369615964114310823351899961117051961500026365355902968890299754150607034033326369266320559469482004181661195411249582258498211048503155643155223798348840185536973182891436252827028744378479320283947239435042725849045836914303667394778537166941146073492541962001067565224693177426944887349924127592811852333704932333082049781263520931932305848809707074299255276085683354923374778413331658730886784376869382218531396086980944245458741824490304397548106827252038083168133779927442051368182641902749331714403126554861399377810007923573756775584463750622164785826214477275362796424867726153418281768204776844566959528639622537848958810904069459738427455407010098048716956250241929588303411045675593866269179498097457241682028070034944120788640088272225030739875738197753278641474117487814768087996815751359958186503811855944354770282525534810671655405522396727509314946444915454154794694045825434188383734348849224351874458637659842779820977214253031859963247652083475472007319447741991936972655609763821195591739153175263029507814526844757210660757500907456041602632261703479624763937880570933619824983299730794701451852594642654029730455444534781873140320965835288763980300787344116990941269785820999115673581276363709418673148848662865107354905697610250515084550403489719914595877391728940255398454085817575715891041649504173404613189386656454148304373690293703193543161591322872446358419857550900374873647134049084475380397693931662175861852919101288945429987044211358073116306974755235848587040576116398843469970279385672035190416781500615065859785317372436617784961124453872543238397521940976463246508159419959483033766648808502243004793796025871644982390887506013461694992469443373520766573991703634355006124639145118203865456829793959073936428632621464836856524637467063143872573843647163834915671437117948237898742175516775803927088512206133543900178226477254151184757148544497171831049695457455653651511640575576191758942290716742984768993161986922423818100679245973175121021499436192450349196260119915260304997038389949326163549271788983543995142958734779515879440163832489705157292156834703366312941489469255592801290802552298663604186949698814641611578039856582171075892285385724589937626170150173030555358511697603292099299715657282755988049511375178753781752832734268609058025553144864464083320405908579366679475707723162511876707385895757677993498421553158708551760552588022788074188925394323111634268291851230309422273951751581580853244497209688861658466648481634888646245717527061782695703823679293404013837935358758650604931362840356189907958207673031646607427331730678709468903546775633547924785892107935768985178770987001476608635597151966540516453989153151571513134428646080291009779327177817075064322679655151931304880075884174491751049427997844341710022781185904089511278407092143039261584838013104856896471487238989716713362884766269418125315903282792993612285052392260332492753108022118604950277381611385263668187796980119877858453679512434997393310174045266990109564885086785134959803987008330560779705976799605807413688773891053563440546679986935575481057471137536196475724563545879165081212695283477586717309127963552454369110955759037460984257559156707995074590653978042304733621123635093890332144683923324888984600247034338226225969219647581702780329019692120139738594702325942715219947502721711174573385692772605673402907383202521029210150218328621213384211363068943738335985277269743519720171927638173089393342490038733666403852834467578381663044655228000650791525059708346011823551628214279155947224392959189426836446011772287701322910512274739045588533259905215983462432528914405138998969681852875228509102651005802351346887786824136927797404026937264904032966824353251481020219878070329469976621844095898887070483955526743512971321235725337273771368926136133075698599992922803391774253057409903312204851013568017868383039373762427258999800840840021381658148217559553564889701925005082373153397523162004981858696796425246758791262757280410598374182449454572623408055759540404063077236330129075772203025781269465556402212751406695075571321309055252831920764527221630036405989268057257942144343218059480562948810533499322000298053982888116836370816291164645171775518508904808883562138252571847526442899551393138285802604274827290595921229544027317964587809675529761434278388768336715210698139350275687915440731678356675558274907828308182017506692343515885090657773584482291533507808178309494589968188047155560116523424058716812244763825246692357996444336142239654152869460031489596816676238207738857154891371015093084998071770923017088181437643904619026707330374448703417959757785987401770471040200932938807162109063694365418604921547843967436280091091770760538725175188717421438325248433687053654321300257173582734985008007207384794021675702771800011409258410585225597105431961651937386636486468675664545446751894742178500755791279034648003262842828187055240057402943794782195602237499600951976941331098464728595151756772218381786234591881936593022659788643967727651089616286654966830727587155194870577353511894167839560601258075037351543967254968810074143606925297978058884426740074682351843422128283319886260109973278056374409580030588369013299136525888558113264143253698124489821137686106256283461159014066133362440519585153976604838606715643782362130903941817180887128445135924188536054237304370102738693870430807013373704409707888681666067981971047257267397148061916680038972067165511077244783260428496173266240816895641116161314791967571932666463365266127109357679477639611695194436525619321834885193783385385805394886918478091647425146824781678226463041310750731931538610166769432588130533715871960236752850179714826228596779423353805177787572131575222016670293999793499571887768963758174049710500894503738334367704740554343891699782731706014986998082337025423320710611597450579924100255486244479156078758351778946627015517001341163951848634263620804688654018718560833396909185458837372747176888966505378857748821190470305822761713274624876484376498153056486767814889920910339980443241406767351428194141502431833899256083991989761687055426056649104001404043889684668485425616112931714382033895273901804499306702650710830846989643760069382994294157783436194017704325835808267671007181070579387058843243597945919916293742956049978505136231046135395320175503952813307776979358898168802250580846366874911609703118245575182977276998476931667853009185350834606971652945299226906486888620772406755658989171940210525251032285244917467230958203301627144016737120865981486052218392272791016724532471865462396322123496453244697389773325507159115368930793289723319664919822140319236417635454051213722825332995335116301181300672204873994598649731244333770818075398253215843138925462995060004143781096168708331741028059493532573455965009424980553717207414397332691668221157716312597631060640711616722578841176589482088248689725380721956036450393979019132147637611954955908896032367167905080658773947734607932834714030727812917853035462264085971355276874209704835282525093312173100450088092678137196771886643820892122260765380839415581329225162240264754116781086174323894117004146828177034543056002834666195914744701582208458094896516037056265307728433578853466591186512474160275879282662191241541386429054876363599802307976146643187353591081474963005517587422000969657423852356942068349896293277683491152235872586837130813643378630841339899409551101591260083709961023214194175048278586596031266016422979743784717927706841319672242666715394913627798305095815337678089339198289692216194575611347775689582909733021617378710401423160123804229766624686544412766865569799711136167670055087494240387206883678881908890610574450421269478280965563648272305776225308286821592079914763514621814143845634128721720826222110810438592292165956186924438476571688551105690385528860228037002257320487990998934799705438815244493144678134497612344206755188081245791226254386042493035259298919929452271063268356453893568002038592723509861826497801980057882683297617574486397075228140080814531580786741814200237628503809391857629316038252001831245267616969805311096172071491426532338225621446588651859101455715272324516812053236138182789708405246245827564299797477004259519384763563084181488645441232902960053957718684660485726455897741167198122513502896539518023089300936571350855057368817186228961252238625006499322339706458293479854687280523288941383405697589796818885466857494683505150305789698964752833727352902845263959805869420575989041004866524211594675956722513963595015319799069190448548335681075741892661762802626477099352106587066117554105521776290108165117004926109778967974437883814162549982580362769060748552187303639689491005772502821773450797970231675118897423869231050228365797321767887230950350499141189622562541188219475960972692586662515862416722370235405708126119904188105838118851352876561322464838865037270178556434903901009862925281964261238086898273387771651982170831926460397302380097696590271972058852600840584967088312266823411645522558465410058999053275300098506694410616644670167824922191976008031472330703154057831025344261474026440492913846049226252350129831063259310393315522946629754406752405062374503309946028300528892729659388384248314709321974516562313635704492760914624750005735542003919002769377949158554543632377038909691354871008231166233363132903303491499485836266092747748648363762394642974125713038141710385153396320299348424673415089418165226520356244507442327873506468407508747054585591519818823512576443368918638154430614537009538550209378726060407868834496478760498890111203870392451655646103886297479752566375521468353386415432670381480121396571239615006869696989482277749649723015915860966631588168880564099574448377567525601392892511735713085839486955644750755328235553910951591369793658503014907423564451723718669292385763343509793608876726196050257021955495992819143851174928003487380367885306303393009092806568561177549071968155740648692211018277662913725183227478492760509399010167590059999297164460041921681766929173886858612326285371145398382636679185519149629253663965328232778442430358400277379462280102036728669887162156233277808023777357292431181986167388349695201420313487392169107099951119622800046629807581155220060302170192250453828739857542000439785310873919230017518435279925269951539300156182424231820665961466759497707632694824874069846741906864091506402646380640033143948976887701455781034331535680485541554052452260835440445197336243582637114086534168036443408132429301082819628078750399942466504039956180448937819754465197580238757574211669595836096273417110950022634794635523892911035633275785632314363950349715291031346444915313009442144197093686917305981179111725049711392787661984523683112255343279639905800152747331724401395018560732084048017428087446430740823003858578399564946337302735360818557199225549150163636352746371620797260833817655655244776590175194162011569663960051638387240049428186095991184792273527054295078801658312379808614137057381191458108976231572666034207512596053458936940428284702586992948750252406132336248197219696693426871531127818519720023543355295202847893959629956577942104423721726139212319602233803912160031904229330702253012762401137287283017719776256959520566015986224079767887898934548265862113020863361516411802612034367662240361362008253202650981128990717552532845648126695220868779648170907041554959439650629306810355650703363777142381960578516113503150050302928886575212976593389785661312235269068547540673240064477541294837225338458795263480403271237625123635690298091901917949520558396743029941417753639335637465190462562873146331023748482541797679328181833932155413747733462184011335800655209650230334440502887823669192324963088934562945404501213368397094299358636012861910516343015297516402260877547030724544546647362827097673075004404878157474222505365391399161265612114593843763048081906897606799798525575306321036655741780235681357625975048934900626696704917218665306007912102641556956281335098439280474624963100143119391034566386837528730749004699956870028107907198965345987811108291388800234954210497031040291523153060176527001139994078844172643130147195086383715570966165664228877771335281126572105684293005344028660467919437471530821343790291976621268465762998054365029546569717730892158116967055155618584614357600226353749676820643995005862870316262060327706347939430972114914977475156992761729384785624488335715125272869733905351747144822208893147409819941589698397500063429192587126933768117518051890626680687643104535646586467106646015469500882382528693793682788159644980474436935266891276060291360477565840065396094124089208396026915343081165337814319944431608549049930992084760767335590786727453723571472536169460775716213456341632481222298784638143748641130329251684413096702339924337547187579748336802345342384283714105398500408006797414376467094592189388364108999307814642954410846521376487082862581923673033143088422542154390167278996863536118124857287852790026212954255451847333395861544201522581000254704363817577820412546885959849234488148416149877075414862415462040276243473797089378399183213272597904665750567521527497763774847181037491913389735574937526780195718989770396186892157755723262419555308832274361844031050226881747815629564749217873390089254759717311071190396868362558511180499268405741618570553619238378966203106578128411758578467517667335189089882904310919235472544141081036361313962094923001539524530114331567887130450741394326749872310566424175968059600073086361411726627671371883853642793967914922794603836719829213703768031626884739114819036942346803354158210687568224666290584842619989850476977418070825528953601782126920750638420645618753635007419491152269971707692927356575567042231151133695210749980059755984435903336518501659430950490015356698897269802247309517327164438530661568156254989789469228212936148901340472718362782512315258184961000238231693542799452594482237807946312096629696726905030154125257840095820427878412842539291648285168108207822136327626728523896410314233659850704793194208796891776577198038964362487129866280443345440075098692697524780541464624170614649365682727310205249699438520042167838347132494934478865009798077501458341146081156295646662144528033976795474520369324847741028609464174018647554483405550403297304339850158112359673208789460786811057419112868713260941807598521852589926483085857927291405308815738307495823103820661257854581557606515450162275770098576284951505693917265972962989216376746884898301124572134020149300905590094388305152376286826182121925161274417900250795133829970740783486905684208901919567147816647999263759331673524769007735417562776107416084638167182599417015750994757265574888552809185177478006762145965242493784459685700970699360654440119736000459734818050802917821253754337106272995849158347177793239926388470462446248583997873583418280193830625167854075019735872234646326959091649428932057908481201725675925154724268330492419220274371290815894837824031733364317448460912700752436667722810058588642008533705568307721509316001671263091160658484777226138565615544269685890019920970833531074072722640832854959790554016337118650526810604421393223637596882111603944450368889066803193754900662129050684889235423722174086088381537026168059503952585933255761803134597184246379555102771915057651982245658680572467248924526635167918686790069969061705387450652135440164999767449759969562818952200224889322132650731465397488770757884462852357517859115436249787724857644197021660550929611929363017889749272780751440955430481258241110333550111986449671878146800930072021659965457683436002310406632265952048489095791728114905785382418266223642205477270046545019482192051263828884914994113444217650155744440454868842655080401724696257754621279183246004146904302057072521709173526693680440450356446228772820248562344986401338922622946098022983795702914889539340053940947597812519219440947000438835261707897686480023105935814146707363598603156130643546852884344420904120199000826699739004490088125147111535874751809686932378911241150971840276189932241054669578040226865148773327177030377569645227249733682406016554473076910150555202932197363570661935586707824335059645077109045430980116371284468830700224198987523208764255283245305752759369779687543300123037017368049061729480932360250797611372079314238028293526172830429870708526275342241139077442542424110925439140582211675167333349209137252669815509309324111644754815329387273168788699355236989377186800157988351584762939593716803937377405413790028388599579493697103537481676671617735469934758889505233801741270758468077176890551408796037188679730532876834217769808450013329487871032476624557454489772985420286588353504042446262072098311850826603949497521009589492250384618743179872349331256461888192581949426049236088972707156249356756934979307957794698890649731864758112881202125648023109625154143582497268519305724404635989616768218092958234327648831759133961298632027995627440342289896590827735917025705338360828768540335178799630474426814701908344636906059320658196999092273937308914135741857341767975310368790697374581330708955634419292822317724918295244546149620472629435849716098275246804657006308525692306019654971866256898943385524721955695497547396258804348433078469978804985876069257071265519126646652767440095430199097183261289935218251554035738421106667895792548824903459391244677182212928545465425186333755419603197692544662729782829263370574155835374007811972162235550076318693143927234906378405580727200925567294844432733821897421762465604720029630328802285016396111305689304297859411156407179883214031889798025005550065937244235958338536363861983850467772330802087144415453132109055462551368549103177794892009860169522210608832013703423799315124699692285662221809231372415109964070866466139980787896289351325227508615020868152453768970748969902788649341813167719741740863841245561208395653438334156079842707788434943536636773222740486149203202910801299761117256477175842104515175997874529511601090204264604603334328438706921417570383341854421053814957152216782594061253290282728612980432010780709315672487746780126928148775034904620589917017196841949845344123728317242057285001592785685727767680615696329761050618366450387208533760400350049589257490869180023567722723537810245846911900550181841180517550880490973252838614479733370703033824898557268323398841877995185127536860259417922442515827788964806174224781326641732095851139898534548342158286300661956818225703467544745367025875843481124095693618453255241170898267916979512310777991013814846865029264582813393488608624181491211231850661089593934881451121298484552248651278284183234645013090549961753713529255329745774545111639956418639438158831978470449585899516499609055538438803984137089764591077174510903051504715928405040912958460628790320939957174497679031113522392717071219453807024662287540618992067135152662950552528561035259641006974187082789978227955067122087586270444353504568202750365012299685286538508713743748080145729558654339117617776756013246388630794288926536317181677558948751077744380890751882437250920307908871206646797325798981808647196123662266255192200744339956298915546544206168747340004384857942260640115080936541949680004931357007779553257390109875463664120402746702824951728803279119708368556828792725636831510099985899284569594629076031010938300564816093251891321574787874502243944756617042889742911201127451947003583075093996381231362355707961948258802554586272032821218792064273265631227307730006461651161548576378991472694785360208728624574241150611995787073106728780121451918972277876548951233232776586815285430556056431468554577193058908060520133568270440113405459856541611202444892812553892016859844896555990173951596097721197990214903718266697183930889869420733663301967130802648284259458524703988306921688080921724192278061675922037577619188679489909093032536428223413810631758160658241103458737227491292276397133655886565115702350563793197269428985840668913140547910671599688870776289139800253468204705665383789344376378813854286896714954057999653544226382465376044185929423682119214884308812833296422812787222163208590150469022272189808430133719166555726741941704953556541880842070123453209582147435570459756651125017619628597016078323052124436149333832873858508340572743551439943092458487860916987218544970304499741933649201335833428287129750404671939358705932860900891180659943490009749040195696219631576892066940849937577916325651627071044795737259511618946630574235337058829829222695778185899975325889468877776781057134069506280370689446927930951943422116879220287546376554140415403632984073309696848192021386090124197467459148779575622141394315444286074075271203411993492363538710524172781783740607282504178562746722861638172223848370050165427745012843765601730096319883009023215174459686516909162246748714947329437205634496781536745383722797999698825926023712260359852644547276539719467545675240886241395609658104867309944845686032289552129034659261299884245891747503219382112834606879594981420765191029911734348842773772143343284689963505790386956458001816591379321329509117790339705468208099885223717845541675426270788517376713571409323387905697926724905849571125911524792347711030825823296366614195939537665681044380988586572507052101499486774833504166340686734403537073441877646407684741040162757397402398525271380444086158599149116040089434249948632199152442742568220952963754007601999659021991421859353385572920619128812545943368486711744546426790723364520372324272763445637802383594706421897380194809013789169217202150682228043141542229483826780515761256334570667020873725655315256942606921115984973131840108963652999596408224680722208476177625406896415725800342828551746584314280424562612572496387729930905232092973726763304757786814974307663628986635943443705647351820013773836757550588662795121410985896229396901862811736033627230203194065431927496920866894221761083080152639622033694175364229503239896142955152421914831665245684053268870908833475516967527132845988536485892506603015781541804722851542876227984530466569846124811948074547458825302028656619780479366375513232868473628238981809573833607294004717631986700381663734208626465978938428125556406846481030304453412144445457407772385992835081362343020162558343422941132761598367425558568141064456229030694597080177050455310381340568620062223999211951802854137662002884683794905872313153201935443062958877607028659537581263425811434501123358283802240145910959398548816629870092012416102507982165593878510386933896926317170454585564850497669963056511069312551379673138617038742931115998410118605495068689681791406061984496785790126675733009548567050486446739788637604485617487768750510859849745005360889583977628796149643122722933488921142126587940073868825658726252815216549325451916667787272803270421138158445739231773725386013505600079812787879956615163335105926209200039156763840956413009781232423848788823304918495568047694719521303494398189393567404327732917075148663999923441466387195478777255686977862392018603719984362883573591169664041775158580537985279616292410397689657967958676636478674065667821324273852485753367205670902586886367708962779852216149912146831643898226092578182004635410970521808512568620084478001907858322490726313254331912104312322113554805512042349423615411460301360913681553204968739995280367747158101618409441001331087980465791851544258210189437799990297559170708191458968019349752044639552396169037012027184693926857211598267896389345052355377861366232965372477209918829859582727826923895463697357303443830481275275703639202079422595799236471202537742480780989267471465104545130115535425993475642709106375289779629466339423388539074098211365343784002845022069891233688687001912988657642084976425986889106337629392837601883421171966278836788837223208976795314549526191239857719194982887421023547753440383559487391513608612741574149013795855887361631868446839496302617604622904355155439965985209762891318036889393036095815564937374889594249857365071708231387025426743227691033995501323718813773463297968012934717654511036810764212256319286099734814815438817324924544422325841322174148622101744438857184230455545893434261184075421376391166577925598834845272787399183590895011584039856444426611341102083933056334981285454016911223189039641211076626339888031540989813019442040547116640509942361900880794700893997927096800105356170906265381259386741454813176081310564189557598450030850402204338432316179463372084163761465603784005033726043037140399442851386519089246191110458789003367080287795907850595203510446760751118675251809384061351818037049106719439950814686072628987635175012965653070138017959945594696160347691412593868304281814000615597286816277504954347431801931826978444670628706581065555902008295261801244668407080372527121194850782126597424308110180920910688308049094848440019107926965096523645565603118811285608655844025637810513178313969333391501610406992942420196600283471982074820153532281190928794289420910014059537919957406765724586170775222099358207196848890092541342661657824230662291673421203919111724720158452894517369941337679007671549964526613316541664246904385443724657030168252073232317603316530719791093799386912819326027376889549335143465011292303230195948930821303167789656415581018054271337025858359231148836674226081607983336464697749335925350902424767149686847437325245079931592356913778641181981409861920333147740826041574281692933051264316217777424066893422379208666482836263763193044145555291631099173439569879881362692483954395208396908863754572742858933104351454516502523410799643383966403985422653658586435224016639105823828074670442195095592912161547661396543532919635323097833992749824024108561981269136979718822280222890983644095058834650075841420242377141191061250120007118842178615278756441749071898124406443822750913068527300079014680271379861903353081457834125517755156560266810029651016204055410472067000025917282847825628327224937276896853105042195015465014620458589576648669952993466575022680244822296208299146496896936459593253850056779230070496913848278518037303054014184194262165710844036004147770513564866803677616065526988166602032770205521471213875096336418012047310792869450430396557811005962525460564015970395100943151328603017376378354597241256507684277915131456919845912124152066596209501012709336696443333472199256918563014508354061268314205090968374708513821516467150734639453816947296779556074063433642174103610191552213943722594485430323859123212736535640622215462511630842054056405969737833920493092986591675186739284300597298615672449489451970808504161784289211881694398631207529732999279453413368183176266939713741990739655822734354761677231509798349800717748720342853369579397132590101391901226542504648520853519106143107144263915927903158818569625725654633674388953040283017763040638527658749344866783049102145885845793960833984775864378801597327799515971491785606380603320904859863661058517066679887820794213681404825574350138536167651217732436916867860746679124632620057487908008015363389514922362610313138147082757835759926971985634700955049545356953483925468255397839453894138983992604762933028689079885973908294652585153705395918750568085157779928494149025804099810665386172364366876183070304084028057079706972492640834927600961282021555085073274166925736927303609100836005914481207891751895947133454279028879685384783814947122707689469201397980868270090439335225699062819814486343941101857149509843597317244607081299449438281041409589754146697978066891617977601734048934740669129083755505956362286045200772595831219456673234334287138695033088539940269325564695044793865942850206285692390778493843478575145323142703136922687632001586065424671740577715267628161498037460005316053234881087352962035592963652102719986506954111644860091428082656170506669653736730521160571318800691821541213346192067854623529664936681604142186828604033221506536364336358439938532341596502277732871530998027258365446528031686690241225745662973998377699415708563600660221208835508504541131020581412249314273137275562359532289148164756125621336279974605532338610943129519640248569893850986540937083845999689086087911417671207981256066454410539449354780268579071207458862068680765982016752389515707572736654610212452975051309958103334331156763121418655076905597793667831618905542636872073757011371165016356417171345150504701303764444077009567945830485907538391359378667230998910786511216280166473915180326514261301020126409540369092373172776306612012636393083765681057511191872989988485216646076958470122272818058406429514979011944830695105512641175170672141887608699687635278608752775713637559812457788451669167470860540382000914214756555152064105940179220521008271043860222994006506939267261401332125904109260923038196965852700522755586999472273034749046568651992328225611932334433046726939625414189263007232083062165145246630090427399357664913308008386194818906595263874214939908169604545509241780758865465069612492767661638520107659673234557183336866650965360476897444585120129666611292562033223304467285048567881757919248061764356180121310930065361017983858774779553088142022449637781260006601485527378403586645311663563710686732521827637926104714894859875320178954453021715073556247857915119542539060525772635937976657434180458061132932489388024421843356330043378646380299007636104186843116059593778494487566765510305903956031109132192814868298994560609946784876522631882633876553403486972507573564942894969817791288126988322370881343143580925116518894707197434751888725136678033705267270089841564209924161559014447821432616546373797197110007066086082129870429939662741141452349900242405257274014096867179689737302210633623575269244809607696515048587757908189723442924278263055379753510351691951873296751610153113684571658709560517872331535665746023158232142223810008491133390445168740144187138135080754213590055575271559748948238638515697480323120170596372401508667210532519099420097710474479255067166438627881542478491963755204093341463297971420586435359122340258028632104489739510349900102823951762237450823097900836645224055823561214959224139547344160313178857906722412172284226827260979555462256076448121262714901535269392304594146153980781595042372499961393020281897009481832558630077183612137047512923406872706096741858877050830276289753652836119694760665134151063712752460450155827786333253641486089843418170045353948889298782842160519383165545522099948369297493305125408120956043890965680728081407159784942458416841875249480282450664576914562384252740968853013527845339513867536443433539828891991421170050186484349017716275932957271374231681231002208236842793103587441559141134977712067672269788319451883513536461574394813757605444591349281630974485567425632781045680894206677007421442943570692800565542238073497811623210551811993583127760208150408579949922833155580187348584655222991887618181930852927194681041634319850979214891254074098472362580418977666759950356195809540627519125445528073168555179813133316358064319507205211955637856621417215518573191892110735191672870360702476918792396283723982476021400165956204439668615624921809526437342583474880528792394498244546777492857652848271692529931138026013852192279614903888350781470541914788656009368496702035757841273782663631717413160042435236232030025608284455085870150007115391599270860453162514165505649804911091686737233589226732533649625725401133786263171923787733361581955014689277529108623647125582970734863195683489723678035707662392632618640742800150297379744157436341407659528481641374345181686568171889012892373026618076851745747735937696025409795737789103313156459390331061548825314809532015441868804821441514864225004434759342860717021008880718318035139986278523958704257809695479743218146600692119037617924620393113529482848850349527430855383280840819892971416903042389362521900501620872601470516034608667904357515391684163876180016091097436723488054559500451692090133483762765042057346687973399639055879324682380830697798002032372761128301235170487562730344525799606439482899788036124157541404141067716410679317965361428317321125444922499548630256910934744222793079750035294037014837287991398803924186031432276795516660667401041016113915023866728614482535883000412906600786607299464862688226363754856347388876080450787558787270058092545386756202566259027195273559843444761089251039611063778282411529860962399787221930354074608317743620394276836452065161215079728084060383182161474868600725959799828973750300643123369708800769824661620722584665364935013457828224826119466259602250575428046264385613288947311462056804548087004750932888667267651024048747140792134241001145084453479433321647773379383642533676616150666234043167518676781598453924334824551309348657133587534738392056307068704053209036793286138377691246501946875263320166200634780798595112542895846398586703991980974961729400627221885038789503987985453897216813267880838483240555889904713900533785124076452538022078022102525780978782626097163029892728608539671714955256892431659746022071413443002589029217508636373058305731285249433012989471459801724546413642851537995414300023227347484699164637006558755809501552222015070431215729506765419812344341365523851982682104115999268146436180866153615480034989337241925012075367018505463152146410503004011131852945055684576802008649913112748856833047650685979464501683520610401884142196961027857232665251745865759382393711250840158614456799250503811689785991611849217938676528759324399159519220094047062263736378045944933534808716422284522987891295170644391745049618644776635092464724395425926827817139910393467687531739656347878595529543212536627284866873403267318044424724540720621206100924983433054066850428366822028373990215109078469368995252675644800775497005537585643727623873268405070173487435977678041349511435719296520893078200036165039550203975159779245299264983235138868362188988726446600620744146511349801111941768554884758784130939382352939284820640418289718931054433131711921869936595053320057753461085377459780853035222440210103427584698647291303916736698530609771712734367273009429590492754285755057295424137652792712185470466179884733777615527563144344459459792886063376851474331561831073966087306015695873378777203589255371537937331098899704512276244802761810316811075402390869168677039151875663361043896692706321363610253208802914984027481654409605941137052350605531808853286099175962452366238686915936417859236543773199694572872010717899240141827667556184780293892870933393959905148190954083129186862738911420897202687189757403622272214073897798134750273278557202138702359027435476146731351123998006486566557789632642215569605604767705615409554479111270468101613592166210153550299804028271392370000323545141722500026523541827668486627537501030744485750460823242916717321867450412954362227006973690020850535449989772306991228699653644171667142795375326905204598366844723775804831089390057015963829616673747504825167902283404894885878339849169394855449034308936518732930697871129458574928582605224625279221595483633705181562914290740308563556605252408969086883242851166605522887022255590236339435831850753145394246156962015507536147827678969053673956080169976133853332048249086194231879629942461835442549446413458340908664339644519857486875737573021743993119712677640623115722358610636644081103030066628022945046962842599323031973398695165819880775652440742674071572406690820295738991182920610556380833899314174614788788885743714166082819440641994570511963405151561737872670001203611379898625699638936775066811551445894037552256516369449825019306030532295309185748574976614727973241600832493771476021293581787547052476880279097467285717533868167648313259398148598456798231938470887706712307760310251171095402668450035459526185628827022815153445399153908854493250362213398023354008044607849409460803480245354702054735639401321466902865498189097122495615224057390135893259214957187766093371170043376885380130562503533503385160363465440473562046058058565029792146817916884959415605850101071253345946959138994535235924993606342153183797360549894410435119401870202162946302045075156829789621031821666145689798951876525690506900976088885448953137018021025780665015077723940756069531464976769137145361427125823920738885611636078136581093935651999899346759493613578148973914541916532514296948396079634006894660133607568829862465520240962130492512885838579630522735055713729724576632061588829855302327753281122327451104337490517984383837211345846007051919501500138774264768242758858619064061807961251460421086506689577603256474949860954181832290095551728190331099788414573988905213773909297544525161211780359559973413109096137722278384972151738957804203418123849106924281004945515781395019227115418475395901438614846525482364092156781503605603961875624506268328703511268255183492867024399000769723716162185592762007548485500787974152979034615530433371312472484339390580549081720939315790797080596040947482493597021826996939553532563681641728731511178267703577138901776630738685262525459943937523192705166434381055905025757058425511506326173828278855606832410481748708770716952881297779256102159819727184366494351262697012434299616937563378338364566902943669657762642282520922240584775249562248917116628656002557824963551608297128729129998955502981067582038678983360997946023684370056949109234027148017565706561314200556626231646433520110042913293042349892204237688444262009129895511353256926405778420973359722734976308170931411429828173961996456498694829319922881249362467398809071581162501845920851281612678780555116269465084141568184717664315176869333867727912133117083025515559200442296527487140255206084717431431404036130575050652425309906739683789343435467728293426815846221106211421463921879256258254432779252634643594251021050295282886758618558208282820080997036790896873717897978238526653237206199481057948469331000078530128358312083420176815516701356900972976848240530541123328528446948578307386101207492297624645480823541657865471147642080185942480303649696186818950232416851033199219558205957921182786841822425754389153536301158758967556657458774816507306447030214613112101018489852325467736494792124036764660508060714540671856304005550379030650745302339538531078659378245488165186723889747714085908834205210169655157253703683390990559732213354339873763928683693976260001010549881711163511296901398329611194104152941959260591860934586740022405757688447132695577937871887366474062540482414135751336040639891965586022564508680251574727019014194028081539860827386590728938237129438375094767263111604709899644796747900401172077725527086368668742745333489522192690932862867525993782106298821873380307121929918991408088154764991151376240536515114592312989192240934784187510499369298733053775776556001256807645987556255098310706769112234750003560285027691989889252809887427392925579889203719502929252102479595937319090424621579584568879978064073234837431887417283565421997539121139701751349578361590222671284260681771735785349621445581218276011464471740962494359070159438924820243460733224987997374496061744911104597504211544743417748318804298799012203848721926760609313225938664953950876907017913938754371595992473260184124131691140932560655070263918087627380157101490565012240468444196722007741865290394690182438885164521682060265405370697390280230162529000250098704738720932298353384960973608372806000415366318918141977661338601464684056118242318871700474526655454088390624049008835839400235676090418405733957606370826859769366942782433009565122972173776343966724059346797203520479611109193182791389945958065721631418225527502628355162692560794525984456848202771483473104682825944342268922199775364974867220167100734489736192598227279106122108108978241515931091184499747271520971382397896631169264078715027393809017478632961390311822659088767002096381684410155101674190993965399485510059318997559351873870955688701943674220211664983273769559508096073671108671271424865610946031579992050785099306627985021970919832706874095230225942918917526592668192261734541226257446335806020964633564984718280412366567227592813383297767257543086467338139255637880124860237609025837013619183650553401435183300945475911695051647818944015122265595384168167252151979912990128713109113668878459622781757692906701745656868423642383931174635885055678708736861171636682649390441658679403910078279504356416016665822266835189138155632804254095671456266939683000685056217835800746424439372852914343024375638016330903840810995419829034309753962485629484415535963592448268518817689823953790145076859587926269787736010221198418046796707313550588545839537567604926670379344978220176194303573058558126245709868958199751244272367562034231755934075186267116618532364441407199622701950658503373149629674518436110981640899907623712472165356628515804361418612157001117496482092844207390585372026801513476910299507414123586086248514875350334958618721103132576425606107745746220262555583741888234701965055113051434084223105123652077269754440646034195475372442368722973867529836357695394840406768776865033702970592362218231047313347930318396864305653250268806152102236986785779547986657341394921258156779251975868597097032160718901485923551327996254814955895813955543966308548425151242867204681170248678334879540966896137215378621798621373502450525679379050916857064302819920400070440231651528720123182489611338932175815440726215385234172039655680319570563662376236035002770324404649131074365197792056826105376333106683963087259753672409138666468945291518957576203454761190365020088936071905508785630377866226087020560049152827375783769611364402915848016409360790090247969038669588589088160931982133972793874183442273405126102816746024911507233275451718656084796602586096220328964028404050827738588328301027396778306592375245739536137287180434114045894355621605693844921576544421183134426896452075379010622254424579330777533300652120008678372055147514558494460436809676770344724529288715138353397971679994798223483532924120796224901550208514697570799770864637856986430039972502382821605145681491007871119971537412783535588234313785659223900795458829459055179310626519737807547335041814308274499485317087702696011799854050838972989793990998226026757036603940506247347052463558578328306614019023548061905548765894274425917696159535922017711614276156547780956517457272209077959670620535521563321955213324796784218667746818304137579669451275026887526011648958587704180126663028401707981011852717437586038652994942016506290149902643506066000403949300201659506055753479739082350090271742570793979791217631906255050556844531606672761144887505241741729661181094408578263627361209896500259057987277759152493721961004964646796957979699912416417780767260150090840657746589604383902457691634287117360765979086367263761547330541276530535623863093429952888631935961476618127356657086491400818780644799270499189285961859707656835337353127630268978558813815623849059188974364316721887835555618689372732202798622294101334334014096057047393631233092766533582395367961705639541169354348939050563814028168743037905935903186488168805464178442357719310058737422211636768316081972643273077088767647765782848215104664176962338193037632072844877577715077515712961990617754887345737269540560581763489910137266850306404596063903939619722903347093078101639657230813964622759125138891943098675815109256499338126219896483122843308781601475850047413972186508117891889010111287275467839335305628021139054687264314295524924305209465285619980296683091220394480740220900090112151800012002129124914779165374981468479239207614440759794263157203723762583383320501751255387927968520018016116498603646653148434561556934983731334109452185870816659107921172133440030293102339213678081325695827224807432001804078467278664201587512485700148438891847461236042414458876947272414931780609726843347191446400404267478696877260935274226344331779119028954134961493369458378083105026338809815731870111155676487930304924228185066513531318408157509521045487995351813034514776222442929195051253361103741333969454089560999514634566908220224124658949649995734271338360787707923874945526521262779320392284497468035522539958594784723832088943982039929307129768011733785781795639603068109810736876314232941541273723900690526762120816685520466736472242746728881280069553245789302544818295554998826309802704304587250037280568342903448420030198243318566223062865144512807346097126238392392019740869370790828301371386228256601965896522388817655009197053702396058188094873056604322625393011041538400921910008929700168648039160883012240518630419430673864784165057349433030785690298360181257152316919159485968693143883457173986639305481940459814467199773070494230212748845085379077751622903284114670757136844398588532782943070888537042845580209080620721877120753792081531036277775602472226364851284943107333958382389846867964645510821993983607231305960674027097642012666268804625870417215526578779771669977987398472857433464597395760801652464210360407704453782725373893427178838242909968514641717460312243779558639082545966812444611513184226948255946399448646751788193427288211737558893402267286656992852711528690661805663256800358249413935489975678479285972881186710236756918945427967978238633957823105192708544844661177789459406772111342814815679156514774799132263841769786422297706201254741134894333664167886679790789271181620760942077015813779137324252577725332786899337698136172972544474094169544455245494561196240839435999929517838824980199612540064475183951737973504998073088272342760486410415570775637741000454194114676107030572800320545684353751753201885577330856872419376191145365773796312244962892769511431184573667671226403247436253470119614253427980369188541117451940056277098568486029569311274799712024531606437776945169632142751478455777352793373287053888812531632901515581383571123539633426919388359661864930364695636571119362802695398942836778069686184555593085572804178754273685101698217893769799735280576908319141042530987851534694249617893781461705629718084492880816463213922916635042053345908914007011724384636664689392955124136859903206730519197772657796226705443061017229337921470517883383611455135357537097611098110778896332255660409439651430205373657879482078115596911311840022450850524275226449785102260858924027080108568696043503417525195066841619272803669611174307360572779157371291258165969744260791736409587465061928957388825741586646126862846398215854022598729468172707501388380432862659248398215144976963318335846755503739800173412260206277589427564749441866624128859617228054573507060201667182718235856879022972044965116672265711273091842503177388137425010614325236232535469423137681615661111525800799921123722629223056635655570934060211831457774726963054765463816814300372169175039461177104793209618466366660725554369217022497072592599921812388048713246093628424397321562139053063085321137886099225186415888043947316279098274804466983902157460751043220416640582116101075632484701201751733802430484190810580194687894538805900309271404160251197957552297318121368894260067531585865012249729302267036108023390957509307143391134010340772468850599336122183759492459726174499870557604871054077475669880567139788756606865074992349644026312836487827398068616124015443506341556597329043539953064091521820696046928115854902361068192703093154538998350064440418078718574299901562649467357754212862983876523273678440417022891529382793384990252839505521456352591709592239845582156825123638397913911448024969460702594159993955872281664689571955395762712693637842919839332208568174378367883713453911150047532892951954418439126698316466533125420919397492232135519233397514471613547020689057720171690859410932366059558368966595808861414107887732208155052691161245589005423057815888769326653302675526246596211543474264891063943373158972760434743077267312900426099702062898791503213686737015360404361350621314094415062471220208552519177015014627112616036941631400304926957887644963642047847907895319711043742799133119065235860883558501403366868737342436176038618911109484664274845564699774402410124791016550481851151595634097931352428420776667122730250386473619629197471945198170505215686817069745828025684966486425265111228729093097039350543586365577925337655995141070473243780049249407399899416797655528988903021730646270653701152879734942387243046855808274123564423716963393964602565550972373366323460273283584470942626219053456478199111900932939144269136168806056894275315670008182131686564649329955009472662717537785474869237017042872486066479927554935013559571915818355624198018409070813115791921995383730029108703269272107167351276511157018716680781944579847985391244528039690773802518765872171109736478992895007454244692203450178275445418848404422496202082946614352302987458382789484831503858040871702190310809462950113528828000013877493848553809165594455639109966270725341342947371378875557000143076587663330366273218798999078483233146458174900486121258646490374466346223347025104861483022310407486282459902935778376895813519332650057469117923336081435184717867852455184933591553926843106695649283718441850349969048250675622146872030437392270102270706996282471431803163821225503832668014249619638973776814634475795504685160035230334151596307267204968247079016889011767477785475030900974539325875662421710941515482276332408551892520651353713493015564947547146570944336438782608405620316273226098751976342641512148583602820384838570527163275697495558503460270478731668750230680244046897831314080644202376799953521785392693044471870351003527416670679190700554516090274674675040496496750554228498450262670084181304674959409384311200829488508004971379214836686110202956412267995771971651288788174557966724041163693653126923257034254008326476399478321219723249424260314183932430495085377165625391677809055196710710784234581450857604115261370024365317935057211126470398734069071025454972434923303812319021013022229504065386210320524174572785308079711036368880108642244871371996632565546590317474862778952281948886944697865447811791445719491464532339860368885333298315772189935165522493800144807714682116527496328315807164667844072724630543156802338450099613480212262949785908450881937538146094821547876294808473811572947730004319786290555357820970595354757586588006883942369422855801886983869187637130198922154476703865893723197566341704980312318983412878503909051900625564895078160225561845996489393244479890432926469183523236288201270116441628522743160827512905763808418183855363629286741474414482453021294556828234520980852640501179140314463800991536949531747367818389740058270847185984106105176857412433151059618540369246169792127161530103775207806509669079420418056081140301559925377005662707392818897375853633137939653122538674771492549180370009927200322391790761540732316997606550257132647777647400984670828632591599899109312469024885995589373715315993584548550113539099951394085264136747459966709164341657964251716682425615272661209444178671973402056576299158931350928661118976590598184608003667733798040963588624247821988826506921213358556165154358591533886175590233631472858998313405299146251786584965510684931297827517312726103620906507480182945665685202672372880299478048737705580273186685887596054497813434665848513005004473500524276131569615990492413577205623694097206411617409910182219551881634514648892567985058588245474688828865623078358218383491212870628015546534443764722785723454592944651524690969213210431245889832389072664721201359713843051744107051289976278861067059269257907256327402748855210136118430739878715398832960117653590598848639550051684707651525389609435862970104605917440778816438610351337321388951843752286213010121689649722097939372290810606443928276832135790089308454532350774376703099644920684986749078109836931340815480863468797239273148717564823239024346469215028124770019767823244703042595191371929988459065183278343705182013833547988143080846832045558952175923091295445749504480248649797602557550453908060374552360744268099887296067809638235801748076068564248731314094735334649840435059825783102729663538521729751402879237718263733001251695940809388229091390666612935817962248543388135663576319487778966169886347608644874445455751694923454298812739201945905928025590573548494821042192549484045920956894347064574161298406094119974658738113674447449129246417146955795153549160520460636026883028903917535811721563880960736016310641109242840157645738856602736907362403104189638965597165531984697932891976742711745134856950482898861195538376101050957459853549609801919760745599476075360247385904578834066637742232325165462234704598294811455068436246935940403250633463193439026245672499783613671849974204776442172409853645985013739959557567895571874525256588355979021225873973189782266221469790758354884260213124813257104959198994292333167511463058033899753885148405272588426476267077288416957847353968573112096625077678589433076320389531157403417152591553591604737069910344844941678275720500376802403716530513863230080125090959074863059499079172412329532045088851144868371604524951508125828716265085533115968875004046511190548864800603469480027244864195885730942274208224238568462970270167125523895218495096997259440840574075146389819580873053498782351740967632160449493033611904612205194132683407841661770361645095223298570843615548458177381344016032907405826358994194955224431993036930515521460530512391950457883880849507222850466311674210033036977323415095836720149033234763999528167134694439845401691849371318568211237605618718567889911876451613529061629724633548520282576039762144661033123251035780430202124388135911997726770152743355650430940037704820641831468183839052872928860806688687115202172631031190816538307015241316101021707096308645763236785693916659740513127979932394105841541951260793765149506024525773501297073150442132614197278734939094925512987677951180461610819596974302936163464178711954222204683983107068021829214823024598793179100672378687424268665571460433546500441840484849080043017822300029287297685391193558686945719933287024568973821365756034090758097703373989314729100426522127974340737131355910691342921844300634593601692216578006360414119016281879943078459103659114864471740260981181523093741989528698407632517713279249498310264654584167539445628059860169549819629691486773545003541496332714384099970718213148631023319478169234216204923310753159322599214564602097545113307937217339543443287856817221096107838521476031912043075866392035631269537265271996571672447268204467596107827133101006545651509536829252035343802363418850101452611562386792554682618685108394131092935997492002356353217384531033145229656095137384972355466810570073082820956419151419881403856787455212884291904584601214204319101607052360579718178821190381761379305529613532689498047212159289806849931605271577630041502941220331371236153531373570019849698318971279146986982798199702186542482056696915375937793843104183432764337226679266642856904488392281228811160109132474655014739098971912223804444032805232966219606568721976833118762917093826398856220192360968175554127839084846982310348217212738618896975975085861188646124199703165853089862231639313074164851345432432527900595547231488321702602994226944079658616221880026446948088872276571067251352075653946053827379024209673396334167368098195644520889340695766050112807460346950054021926573187977160881341167669330074076679419454899331256340210356402611769062906435192588699748131254259747589737403622597694525086517986545270191952066241235260078849312639988306887391949399578084316576508022392461924667235869697701618057366374870281953876538001289717880875899730960160727738895403254761166521067552374388715581079617708848356808890303773513757564529836330639458567409455074334076065207331881894576080543979140397267440802628347832465474161169667521844516551793384096199724426168081119772877582111006819542104264418280186048406015974162717661994782624618299486659132690259026649530942144563551383234534395707632359871437561018061080008696560398982588010645626556194164274856697618338261312145275636743427201374764243403048599225088051090751673961278949437192930417906689221639255637799141298647968543219129888066818615608970230952706601906075858674647783749614932728451689762509031757557357090193680771397100975835226596507287488932393874732088121576412940838280907949762839952128894764068372319293507788923687884791389165814588795373873127188797915344138405927605095986514309900237002289284761909375337192848786627310766930275544194986836461783573567381961312462984746334529598727739874993180349787218511073652183382740117118529744020113825309485196634180004238855225858671143062152396445677156261769123316978548505409402611834042689760992588630553239496427036661512719016646870114280498157050934031769092901838965993436710475838088793173409617850508444672779509762212730788019276997734908470923675184738828341595658015599510983452623135270157520728674272634361014655557957396638899379297931490553040217194452201233261650988890549034424610800732851141835202641712160540723028931101776150313457524644625114245716425570859573382912364211916053753119556132393445433550831594784825053018792162903208643323657367553714398855719380858179645395953793475718083329007977168034028930429196486037827837616501400011460691559226960653894162294994923898543980782009791670059974008900949967719983846255666509390493830693832941156307584886566372245418148978867570369404544806378461848423569000651400823581125074462531459802361404052959112537476039250405752927673522783453648360654567552728296828147605643600564151778512847501367541031927404846722972314166549853459382925478934478898541026659185512331425590729275517429497768252666471499746902105030120286375800286787705023473194468754799901822030128185343189087980414683101050528704796647032326168189552468617958308627447623237845728287686880325865090256296477477711986466497748065118094601246524089948002199518239391308033313579662048918602359985292135055732364139890579790568408429525577060811650072614229698887565172814545901252396982676125841324890490828306541226151827874294106217292460679582122338286280297894636319744778544669095830161789077374008075773359365099098433780959933460571704252156405965256605960116966268810036590357631103123755967892598151905449330749419743510831208254307332276862806079695316138092251690635549571626025699605641084914008287789823263027248587740233168557126833947005655974723761004989044683369153938463973098399379304733473898214238791830028996762324000670037772346337655980726802759169826833350587469489811729941362358820396152575670761742180205774287670233113146331836523537372455744688477003127366851926885768647729139169169701329960372345990858170021383281081602215491363732610800611238589635079549352527197405881704453413110004573682511079100284319330356492162844344942795934968876860143833765474375128255725542021126694843502575124698327696822696524739194139833047123748199560336647081479704329981888125852851411879066854074598187253654259239235005087345688690285573607802450908860140432181735145680334206604767423900827820844682375524913954482084526091369739498051058953127156491131025434546919618593203254512856363948790162095427310709440392271375033161613087579751071840487805859034687462322229358303551197662118988901187138072078883089254988019116976926719637513963720463248156622542794959977626625113876886481767130964999048449475013583912867852865681583659400079827190165730031156440205025559538831016212066665924397403473096180303280701898648133221666423689816436091861144171042670317620405496858959638057946035209497506716956643330778366969282436951213698868115106076648023309237266250213531490091573729077556956480149643538312875186464127376166071920086400871056760368790100100811930924183371739199045428235203072904359396056211299532378050132558463561354491913137545390506414503119052367580201335888921593152818358267247543370397584479666791574435796417182252527130767357649723781397853482126020258782542862575720966501285429992965717435091970599165805001104129253910085576709800858494158835008955809272505171888139686943795103784528961776736641466675076971913450310048471143699328440503631077280467660007084564662609610068097759989488297682730471657967055188079843742983347990190785055437273073790532495426849660454997609914337014997683671624594092486533676187347538533439812636087589631643543701839425908708568745071973648265818335291652336895093139031930487855486390451842179837044940698393443044100181665647523132055560403957223708259061821649183263123859458603625407003113175067348209648680164646523133465516744101065557444079673067795846721529102355751560062491982543197805118914173664446493928175033469132377083176765427166560510258860009986649473837126426875138421727739641776928950453089975206327488474344468170088214962828834872563027780026962311174735988773245703528783492251975148251213691440613540301991709994775655887097761968396744242570346683043493174456565202541484722895616646354534161048036374627219955739006918809700904323552245037961402160157672420663829978871341944571754621299806071539130784983573900533061771268541311042303678077291278861585861963865139860375071673287020390916076343337264152419226429861583700963537735289802911311353413765638565196251488079821001086397697673866525779715873814154549314857406069151457598930384654919580645200113044861613386956521423245538057304211073891887936006261065722079146201176472610020911385142423459449578825964732677593056833962238815402511807449907891488114323500699224935492462023167100613023372763624552712170840489365024046375202446531522296930300779160089912888065255181777323425767253312951044632387198898792061271910584015315857455818169548229709096206080846029102509439779762213287973512926264999961615764802984812746298514514663809089881864904483906959604094089705208906639494323416770450534684788543095008402306222022194720126799425436890649155341517833888962728983495625531480010812969661466891744585229631398713258814724708333949717784891990719258496301387109608806857716853196514268704933322869127185662596764686959592337047710208377562184887033916012704560641922951911390307564415454036449894580212671589987536114098238482277164120631171618803709128347844954332920425191574633979950178931289425197741241207116891324154483328719953934977319424139156594883982667496015079919839320517280901528357196155980659696752853689384386640782793061711185873567369258788970539805323948212516257604680055976712504921439303870836726579568368105975961518331773029758449329457813438518140213563404382285856578346401034846567158520856525636701425919522141610150641416707523116399969350942628167018938355014586213793880909431849528643420794327488027645572657315564470271589827674352842816125038882552853090390498284044313943491072565653310850226506550408503997121781951391528031891882031809659887296406380825547390114126475435343330635271219932980424712073119658600874694576959775507263597576413310172678692320816820656754260809342100326044342144368018050701725328520257510079468108054544640620773549267318842942611358773507760973278098285293081393103538886216048494979347310887717578633893816805916254570590691468906827807891230313426211204993889308255766613804910137105782673433855968640493382729166485062851220334315662448538454709949611799559542923497077084041808012830702700594462330598745142109139504943921927174071717776684911461932139562454787659778750955943102600726126606226666240577553502943660223132948821807793059957690179659064723485296828188536129111698029361673741975514472843866113643533970086444698798287747925580043502901542487290453856443073771271350783289565193378324933452006671870588335269906373545423420142594162241523154188581610031237229896357414080767940741376614059410656341972253732459561439578135427397964509516690564678031341287793811756360624858656245831108982552606457128994432228673505520688382119799079093464233935657741290275618920829989496437994688882260853617605808426956976235899700119529168945655878202124498051952913812319122208314143267552065984296277524156593796585960694501464132181418768339962525568304293920278423399444746439102210936064310183085146238444989424125102029942460265331974484112611055798589658732242192072631543855028612539981229541690711906790447489424155326719692533284052922310187907959965142220235943212408937423463276320159560674375114703618179251226000265525703350383963439037006189095040303066660224527824582870958486891741802880696573980505335493480442378647304491782803831533525728257649552593367277322387696980593278904517838905795018569128222943630577385782584062940731836631859499307774956563835025700025873513449480345590737320869163616933235121005895473483975024646241047174072250042081347922428626610196423733375093842185383593088496126958591779360966401347626616815701813785585821234175004077922915472814648281152431906394274798203477369348191221884064074835445774527815837521272985662890627167762583746733835181960251912384652228772842061776119879432951051433017502183571456812629815122901349175264752962841595032009792674316321848776480221321594586384172081774861777700125683389872440581364564741887083956638317686348802716418560564428599362511533405988698763169802872225466586570466242490678496933635714956809991211370354796359775731581620872566044386634453080658469038886529351414784964739277819327713789839078190458566866255520677382683501499608506266296238333459151435058397314489711292808698367870083541370716610563631611659865581082663445084889696159280190306832916744448305293219931412225798296835144810052290675725160670331559046323760061045562779360496280920334332443963973830490743653260367369061375977305371279725789517600127369112299433126293547392801222627905772784380639468841953039514222774259842281037734605841920394063336738420468412913343956859916778777943193493990684734307286898591379812279929490267890969155618531456157762144506430629309128248778744432096901428597952739113953566131328700924053738026857945024879542482712419848098132956490652962206353182342943725024311661134415981114773326811899439291850335035995858790112429602039540484708174659870001053658822181615535442150397059809797570835647079806862911238062301244001950311198761871010560161756492877095315706507697157461695239428509806622810264890557147013184697132111354769202891464777384103377443880995420248849062457083581171036614188967083291774402167118826044359107197664095397266445465511220874254098356127942305806248406408796402841408908079901133026772849753301155563605135600743603589643550752958010667923528757006653482508944884982038282734227183215534464968081353320769242710227884990804419077395755207968674072036301800030806098994647642660022748588975867457550879883174307327495954039950498489020972810374461509394701412360891570601960880024851270244718549432910008070371739875864793641962730496164031798855900436086444842878271199240628558842252286741758541199022612590330058556930652911995543650509092024314622547713098457925067647701628789560171575749232183493316144258435075647228220942598388063228796642798858886502810832484399668620121625707347704647657134457045552454842126308772984781216860966298723406725964055785728212787093174086170863354842131124078034567589162677242827987236063165716573954056717021366339738945390734118826178267427358598193860809462422933706548776323710017570910826751752462700214887870033610640667148456408541379705644890059459877319652074327213999652203145902708693626474793175229169975079340416310566361853692126820134249856410660574426142670849826632467226457777300698428919321283244363223793156462740970094596062423957645358492228065691917860327181175552436132045328056224458055958841314567396108549330018314864227201154316214613602901031868949608659129776406943448232014256937754190381292445176426944190540007528454805986893387011173342506425714603163566395210905405035582351251885767638131827986547168834128911467228871334650965206850406703503262839815844423956374833797654330369672197179857150698465580276191981003847197411901946138015504301060099526668703013374522219632692108665443040332458171632425553915493268573683398349084782724972783237861419909305401686527497798147509782967745183666642149915383122603985245258557736334381778420713491817020849644319135405386110892436617864488151915463474622973815149702209900217126974940104181170764465060749440440380771635592743335958683363834685306130125431870493983679132286814007865963453413980500452093518845070147509103930698258198650108467547933394554957186846236791420060213615972460792267179182766280778882478506016873451360667277681483603337707177746858150192037964465487395502506684403732997529179133201035558493663344138318710659705142330319246584594685825736700224279406675085270193713772727667977116251741633467328420494769374611769219085329016479766305231097265109126407492026577178309331942759082250716284478368016642159180920786770573624532529555157596177221889602904314076070872471205428551871829417987877051752166142148802704442518749500886550428335478988404879869620051168629655127879472085732183678003806922757178891241385116303245543767788713290672763653306982765563379910856897026855327085463107059232391190986781131396787655600847343093131000102286440300694322429570521353046298532468946920828630949364109197367189179051975078615552483590878652403810979455464190729183185245104253928012128005800659333772032926642429317260598268752701079046191868751184243806708135559745949239128129734723548589594255743513108616181382488834697747941299878332106616631376135847792435872562266674264733110401907443329102393136350917678900254401650792412087804283799847266462897551023959460877307919453301036459205533613956504452661548731356864830493359987155374400222638521580730605828594645895290777654607568620886967431095133287741537266320458780495666096792736499610721250318439019613174728508496622147697886480815245543878366785547161981906244528662626019206831044260721347268549750938918055808336980276793393502525889420951483629086076772996767120436701613783369956942190929195384889280714197034939276194635554819591496160858321341397904057188999982664691037228279473894001644957200236047618787671131071201299475268314116535477943653454971214082119510127148465882075872264314358988120517156100118433823679193108027031666383750731209210763985510311707511735746152920873100614464353180037816762526462222184600929653285448322496196249492026307052356585742958262433774239731295865328783238491987744151824457705799862126410161769580341196290087313694097610407000676253279217060278248008445025963161906768468706806034369447027958559301319442754267559180607891641315444649940314629753305407453160690674130365054023681353747723397437396197614246185147892754865476733345047234370251180169811173128313666910680975633128206118478993701345879346831313831198092799251796648393382034007340338751023501002508158724508794214204630435026322686412406752090814786396234463594814286807514584697298318192235349468569666343820255711813793191219248935009446556732778797709012040472193307812490096535224984108238102381621795769686842795015523956050411498955728698371384384614937233548380976823121842117021091451551676881726755043955440410336190899486663756593761036183096468023624572105785807516991538950372570863436164151331156607158472824582607809812127916027411487686747792065424267029805914587160985129097552137081363271563843479742755766595318667035118356731433365842395337962411584265436749120982957267723838941097130957499457885137787575635346422756746015670402540963582966259582409472304710676836563561751876018567385650302350183061604973297609213036206944330981067350209638736619139422736925843679513494840750452443861644320766210633036026093463007354103146060575593550489208364737881946800672564557891142064800639063059555276000860219349936648692641011285573631777423587772344820062284664629881650153994312368566940771719901226372499272563294337500044788124815746178783128453300551814012604105470308454052028221415107207420851142210954961671919333930850474334396708158097597990524874643877193710880519534410444747857447791148992041171734871122457565426872823292526084843709732700701988800552399601815800005806978836249894770034268968756431394804059257700810273104965152007444268821425885608471423124218694729609780130762835699286368320761909825107772036481610883933133944082747073808879669843017706914627418169786188801222959105705231792867370760369324248899685246610334934850080490084568308911228780238476194461563498682626457194296290242280796439450334668257368659759741870602204685296258398360684118155838755022765152303777940754571558696113833220003730657332483208547382072772111100482233083300796809948969057778232210497454001863273713005927928556233321570186761570142555576090929571346243169559570179605051298155375360102188485252402182229842937041610478778248345096899752480308113358779419567085905967701098725683983759345533365640714970952985868685347554341207121016885085725630045023815445839443058610504065792991767506767384499297162924076944836377741574509893978456625427615200699316939122489076431490401409882875967527457071597537397394978683655547496726346762052342238598998351964225705011719785010673394132279861659694491368091707352732172299648544053332092237911451363534456417802559965317374625591177201836468473186988443004219456078105355820746102180461741581266907578648664579518208503914502860498464158047878587113748167619376524797999847335473177581254344365220039203728195298004325346239547916056317183411171035363122489962345010852876888087243223219231324440692401106129996844194694139114187659679473976939249350814981606374658962645535940313659794365440685207611631981624096114390077169455215954276488631414875972208227921839845077875000979538413773461142861734000280661343055225324910101327791847247886230554248146424179467823871081845024833386454490822567839304739415882268535952507785122771849663379124262761688978590859464707404712899680044122688839901411654824386254932084227464943091744628204644311702911469416747944636284988488264430635986250707019646059279704567299537854445975269097640543548619139091741870837106491050152862325064145433712913033379701134296620726514783502561922413657207075129473306759178740057235435568916214297109663046674501159671123131357854860137206388080563905041469386994124819894776542689347871984556751267525086381580340897217520587086803934011628295345066784012648951284505454512803287803080735001323882800565637677243080464744233611789480852633507193991839191171878516066723185759067684678930233207409085596794771751494099746394189591185712192068086159770946368328328635346615265839216265671732757709351693680295975430117644501549966379358108094395544842403601654791234155122698072003048283152833153012521542628750186654274698912629907576736266847226984059785538497921693840436101752625703636264493572852268918764766237295823908506660613231822906156260870079873270632551394541990266086319655261658707100548548047190661761314046885922708302202233289204724097274661075515416567701882264959614712241114068391736737868223811895729092182162739256835353222170235609993788955286530782507575458228072228849666368928795745112018402293156133969770063461571334506595069879842730732226777029668967041397312162005163438472491888538264045971406479437647726754204404390543337716501833565244205549811588551352816304207241525386543711151045987696432809710444721372278460403110797915807139648674340998832274049947483905663970166698505911514294313711555196549233730001188546096035571275959956582823075630391696537294277207772111891240260276702414052798403199876071486528541672860527150524215965843892357705678559215927753398227296265243780406520139071721414232631413129672502510491887401181305204728837124048567782393195659454469434258541481570205120505095454386302096875737069418438281394030360278422205327991531085824948542159089717561697518943023250270684956764613934983395916527436544679653544990924853216989845298736688819103155918650964400188256636492534697925403002436354360062455142873516551958114264637489944344347309884133270891814243302685042299000945995054993356780955019182145307823379120792491119609354109834917526200067426998718468929728709028498041612780055505080335294233662304170090746931501180707612962951222404299368812277537851556969569556157923952984214228057355211637568261285321728944957899522734475401000677113016265588022539388140232318514935299238795147706660328334849790901168394455523652528861511823907943301474044640994524866381319276577151238046972583287166863065250869574579653160777142820409137564234940620815426786919414009065633423648879460674444295095474455190772384899816566524679226255700361424190848649041808853253111783797671131243639029499419573414044338877954871790463843527222452364903107514766078537932534149416245133536399193205946783771603394365697444143824274599437862186143087207574660307097083099988659117338377935112487085026804026803727670538265690918804503869923477027482794081674941180362260731704152599812987554423726356162436472254367799031942626182028508279982246505322084833866469265705265504240479056580386526658576277893969022619098209479572226991018574806518868521702207663764482770390976089506756317345354500563838904003367906239742929082470734079305455659315027693517228311444183432162984119967255249489626918348839178137334278909087451708405097940121439011096052748060049978669505324625656509077829495711446800913730348829118198899753594633320718890538431018716856027394160342402525766300254886813018150803770508035822028743963370110946459989532278171324198643135769461735284793274211512434616021744737269217404491584196552586601982456535830404587133142940622981879951976837756346778727575869997670603831749108169056121732451586119793128415224588634210723090088571674985764767236009264261290695140123207270590861816302409200879181749786565168943319245184984349072452688014093109706215842587456957069521542190518777443525135997989513910645663958737164932833504826042203255175316258150808839946228375288540215593525641654567571130625070550391744337868160608152584353721833755128478974986363369377439772345686205395197832767389788458537022655416464460446796395820881832264490976003873064573896043802225561804508834431997635680125358199625029392116022915891021541403326744142976760042175207929224753976427944286268551342955718844472449680771165476090643500949630095274118808720845020698404096281339957948505827683289907733553270183116184340140012353126968470691065450995339035780842507358642024545177010383191918489408546669906144000145770953633960573722021359576972010242250550129006130507004081157981601075578058030989479010960179716613060389028706411985430789125707158551955027075133852895549521763238062988694065194087121786554171799100827712988363054269146389876215602474976785265193567035971046430457535204730671785724425225734637401032409973047835510155461458477004803094614877199526754642441383229306555180892230753104451038838705254325073777824129619418685117933728121262172047692166420809412628062389587674729967731955210076430716839301804160558543621536860494547977820499895779956280417818849144170419174634180480701673817489437544103993214439957021358299544085439229940554938131184196268933334284715831813358149106229010295996232455453278214346194907935029541082105420891375261890131675003004266330689001178831025268394911398026471764227474876744994923508408231348286434178866741475396032597944196875276357786228099374881244312467888579924637922428719463867588176990487955987346119803991057346978278938786890365539509410242078398064530855158065650461710670315581480565736965211659327784287307409501916810097283375340741233408339459898160088276284320399985543860031585876360555577082970263696949991132264579122459800291437638253089455310041996868856968704550140680968994211862324078094164508208823188204457779074516856103908252745643663336229521170006393008112078348405369249818759773489786347585810545551745124277416645409282926437267820119577770368677804932323391698960564036201516027630743259192205578292161223234985089019645784139882660998156180508509022214226714691393744672725630603365465663447287530286323758279560895548174923415824298416934086845818176032532376372117318546526870652721142696663969360584227075345158365263285084491287641108059848911540220256248834969740456552196989937592696316866322995064323113549649834500968640023770068325751516978683293206040037338887540944281345477481539439770239415141089490366982974977399126969614486470117893741454241520919947344202800600833487978222313972911520469465985882626642576426749602812264170014002260924256323637892132191253910250313842232428201675818441654475165331054191881258612380701597423729835772442036878228504318997301492873748853679730150407452752113068684974416143501429721857610427188473777995733649061470431183650314490764406512010939861204834124746544410670841015688207377142164462453083354262762052675953569073174672298220964398940337875131398979693775814304732766380911208683485330808708978899973263023500950732048914875009682149794954220232993913394940018872431391267588706928182140564374844959029967041690792373445947603268720527121716011678418887926462564540074319567517116930647305915439916479034380607582804568749423362687155949599482500910659459148177116838365737329846382000106902407996417003223613174962599762904508307034521763273757294155290261692763140727496919508658831339035179705547991778473032908806298823117512302087059468470035467466001532864732348417569320253005226197183641925619870145853783995825571780470157148472871651732721057419708258324187127348968608690063707998875806930712560735610162405025230651050353169272787250944105682047951679998680118791877461929787909546089375712124837293170570350810141917007408971684082212179636097355264369012167268001222590438177352930137012002614516299684767596330830464989494007309019068647328874926739066739871163755785039787696729151797155462106332599233386642648054040466241352611817331041651711175865201467405381724620196742366879573535853646401768308107488762444627533615237773863169086444120321872641246160257128439809008613932037152414360389938159405549702259320765688901576344550560134587973412435140059775916596897162340565919257378289925921529929891103196861391890174128176922166697514249395657737877534749178972270738186286955479459365627991635230485384329899115873052195412984040262019411226187886419446829916838745434106157993642296181890382287931153122697078865960216948682178517528383715490196945321354141677547456579376387025291516707495225147666424583010597323132882314891372227972395822486796385353278181017916991740605974872579113469410434752871726240918310989632183784801761522614027807488417760592966527954801610606625814159729545480343517600672619947579528676792557050681567074571613121867182213462281407096011625491027569205428045088912615202102714531143048035064871964040899261233100186846824326388218067556837678303270359942048070656937499585498736491831475993716679036069810148616804178553954813483073499686510045519841053826571629969289918460737667980285227857650390054503053937758049518890382471487961972920232267248226432696580010496246345298604555805485231869107519364874932956699360762989871906542554514278006133873313747575147440279599659807053884834149922853998416615501051963729942890393047283198969015065036139049058363600307674032452667244383844446686032699013262034000022592484670780770828331061237393961681000398227180869514879754204339761086900473824299031128886930280970044347377200162851915717957507715206485262423687205934423406604567310709867811992512750076266296805488654913947473261583752819675566799549567807335667800474020818561275017464089219661177029017022652008236658165526306146539681176547125784924563129683542335585625804141827415666170622604333520465355756559013865158995634612951791216008708284836052245529236771930447334219890491889044201816602361110910620988673091289223902429853713951101790884609535386447771331622702256624510080398568442554010443597924235592603210467232803097781156343799054975308350520988074128513291126834135154271330192699317858967728267365163077789915913937051309116553421598978270186572804344150330725183713659817190076400536197964695717411317570044538146525896122692390958441310415441824053732543217251222510716345836388261259959304088929792576779414743869674262187551152163116585299316504554664857516729746717737136737600073666566602942827902730771125322454191146488104669849135150286859998408123736341771609877111978025411499457587663283560714168525858998536626409656067341110068525479904512278434829391768130003950571240924604783588340282329827254956023270716615611850524824236862660881994220631470479158555316934357882728996885399208539067699998328503119978949636493631023353914073341936102638030695951297477622848708551259686877888492449842521576561107482696546677796170594858434827757688342429526099156489312003668659810072824958096911349409295351502144835361701581203512828837036181631445148824884317250083250603314596702685751022878422086101110139161183777465733734309000033426063957289155334245037116856146394586501837615735561364386353079331549740957730145923081630535359625324741712650631729334401932682862299491498266098861809146697589551188571966789952860709332422199942282702181246800072478142459157905137697213164700977375560312582413937940279114897953647052969889350434552080809898928133844890943123077408540453381090402003066936134697425542240430562814393797633777029986843250841565337135541429066198255132220974787962423679105967982273763944465623504604577664685208712571250000873331841680715501803597525583435011732177043854990967522476877253451602395655499111854522705688185960418277858649284360230084124616584935552620666849622081557991101804493908443262590484346090520221532953799670499632855526524934030787221703666497454767945481342272008688143572358688420912794383459051033375527897212822772042783241729523545367449184858681836796629429524551799118360195531272638311665884637561340892654574187494746937568229856346511873091273592330109041389229104926432150633721055816267063376211835636170724088037263530376562825924647072584078211530558307546320188168276469243503204388330164446602938069086596700495809670343995539043530624724408550870588927251378943514834853483836769813150276394334288425193397479688080896205823017591682841909975381254068693472624014699452357036620882834819322453425886276935729644868435980043641370293616143278187097142433745639745050500191901962732492084140604268005548699554422028385860941814984602085992162721540631640110323900625998061546678175096931715446478775859257623369416208787146522732208084233379825523110100438891189146691273625854773694191216879457827540232834446776148119793312378272331354158815203456945033058507869357200818460910055199001884226887760969207828655039290288866912531192770047923120858446407056569962615187824589470499084371045443922286983269487265581788505496091106494945961492873740395931515248154801968271871551650896413844899674526531833778933046383478058375828183756711403419518609540953464108277606221566301129207480979998806803750632383095733467977633325803026232997736078050993559858008675277243931132879464418496713539614928612003573457899893245005555139677927255765091161714085985992771696000164388843550883786080871153382702362356632604241132586601608064334131982176106682973410218516805097621843295238959246872678308027426965313516777451927739061277096474790688205175911210970609742934519178024750471052096760621069405287827945785687637506894368285652313906857670281275639453766965970403967264018817959469528123845197897228703336487516214972989280800990562085073626974834009590712004931005760586096026102132430951378199297253275372989356927415605872509455077941230014668462774532928274944381946618117448243672282338976070735625351921205792043085674927760956633412635966643818283537289050149081401635642390222851083928515323313718698535076883301758246120013201934498045507818025236271782594379785593834693079778285353822438571004519680590411140651014916630918906539944094528272738160547144101591087627975499469761427925227068564404174631477272990891822755097045124584383919968109912043238952585131217424463252364114994727151934501054223553562913898368052815400911504515954503705552076053069220713722697718212848118697429650870883802615438263398399484223041224293824966302201949775000804586946505790369082994991818598336102205311270531887248843156232976824228931771131547528269115896694446398036042335793426516518381104830895802967054003440127637030789571724498316273885833398466709139461051577410888432336295649401953987523512410398801169517188510492260263902661605040752952456181171342178799008983056342623031046902865806534789891186110993843729006179734058368104338182208715649869227614077903704844691456812086033872916357207526433404428405458100755625560621682806943527138959556488495602502840387290401390898247185882305239608223235736895706340285735879186585067810807029966579310423656587440136535568108460309201865934176687668584210572632582570716982390546076462898552620077675424949972675375827657198683049237770908708608098213703447391498447933583940222913223652082354342168619845169946498322108505118968823075148362658555258990230331975102419099417172130300191001218798989053311259808831363695880456237635641769944652980109253554193877860166342889338182586399642735141487881805802109632120885402252490503820396284823851127248722900328010604853760386235963568943367902345206008266684466224881618779855548011879247962268169784212937638398271585564558901313099315136252619075228075398263647792557130120658161207899849551825990708341966825316208408048191471191481907083018903689655485508746150221193139436370074534608274328164084008327593322384401121421329666728104666612991654016936697454683127607612033694954973922480629342008094152490674858833964167212174228258463475674801203417092012368931585828961404066110087673184096593849876572551263729135392384756987893369716518028604787210937149690256511636872285266804855074163868908634187088101475264679572438407586649681939775172213068985330626901939455033685786937065197211492677574896263336948820430938521876948908004859052548271589019028489066174614789617149192072468462266404416400129265682321189939286987719882360009114460834339300058807039883972800009002012091448721829869663809157071320002493594288784514356282181324572968324895924155769476451985924747962252502967191167869948773768094935152465976019239505235296327687462057725039333068675700333822831689445914506089769098270542768746739263206925912464193223642598198211225070630406722613555365286791749232989962858609841760693279896138325937623809610249674828835581792760709257817758103855136430622579144702035551973060965659987568807813979964998209657975240749760454215128257855411348701180221663504078399398183299449206826931765859263432779247084251408719252705849477674688754738295122629129938644288857925950865488635696880736763116773755284711414935537945619853693805002709298651081218489838545536530161743327448610315381340181744099859013607233056542670280686407148072532477193849950882150530206293208957528989313026020917601034805298417487490175881932394430412482443215127666133680219135474869112614743782621188373715132264241860428789761292838018454920389564286391376463298612656490038434089792000029173395802618456239493318835985149457331363325226726334122233348793293654882811254526196624754723135973547923489157361057613967254006491038835888143597349675506740940035888793999232549120716525519013426443285832330318293083388026884937780711233035662455714503241274019029139327687514376190464944725407898486228405038094082129865238176997743319904584967338232326033606570699787174520852766048303537001909702277955921584811788167933002267794071756106967599758658813259573939221487570992151356450628271355992793827250932167972569953954577190186559490399960507624806244141640258522474740817820827211720125454351594693444514245264253462133927229238424887434168952040352208359895336402272460784283422279054110890953063826074568642182622528693583999878997321853016442129301841643324327227587020590186214171851071710656075430783820582499630631871416429426419553517409520220017329322880402976149203068344487972043299615142092262721600049380117730103028901763699273879278974677156972830017821872757904570522823152323833259596035551036504379979816954115943109368523322182461927649165564534857984270150688522901608338695959292101962742637163894052699293409680896836643181242637000061504477053199491876424140914568635963639025280832284287647542816634876360594499023793263518921085695941934566971226467497245391308659177649155354131740347164927473274056303145936251524251868630449804169689793652854051906567946952559392790600329173339312352717315814874966353293114579398009845651990443961933178509416228292323710825000949100001073509331473833127090304238522664974366620252447872475685535395413910740101819606085077923927253173862550333880458952489685894392085943451704197409193003715347440391523629557435696517646388608440620241666971429024481433371297136748884752048016659418936120738469252780230947622703031957865501143449609740772168731229264397655755845513982158387485091247172299873559404045796125030351991334130611426553728252680826810940036801619386994284997857361365067290876639896349842800100418172949238623703306191128522161554318972619476566133068392620142449820231842359080767733456323736097696428594401882075137335430425316293175033402570405940258753725664996077237691979866815376718083702861454325566874069997743660442902772378051510629769511537062146834874961250899876423847480462180024427145631249086561882659682943887305427005541662884148331374045436199840462384073842270645516626981335171844740578897049025399701511135076102777413878762248704390162399312106829364585180905638952201095095417070177792419560784793087131696676554583715262363198047357175419196449549288547835139612266675825456739623900714225978762471849224740528925971036620394373651184080216455811173854043408484946658831565979559038678636612522418901202728734298923253842214557577991674450365568924610139033810868778869456257103942275214187913507795277189934022472531295582701230425697182929604048794416240303216561069945558268319079694757317915621217865219851357530106343712377386309617486928687397176979690655987908648913198251893549204837965061997041009292615112907199383330575839571153503934305558935044879069092424023848425153802718209243426518984634214351011666302036284608957457316352614648898373418813447129854753344793804535422888430865546213532263932960570831999499881273645225374101351871446190767989868689433741942211605814269689511484151145077535840470453814891271463452759856782556449172123483634413694675694652271578546477977793825863341898225024125017054197153106443984595179694951995433514608446497557520087662915052288849492228227418799523588104414057308349745862656579787625077957681242614712042712266900847026254077643230042382295860885380802941698692763071926488370486397014787218333462855851446230205947423754663651502110293117365727862169004342903576726383795328865476536942273162684409762057411059792240866992323656339840679772417825451219215993909770733214153718121126144735249509498666390317871773875726144627456664669616390374120560384766031788801522429140864370876943604687844373756632717280749745029805043083282857888872417970737402973004537132375568054765624683177701219489990371525962656450308070319917544892095692778111993184882281663891700637459990385025128125367940982703425087678694811161082232710735966357826906203681988701504944183955951329976694601622327430710947162299648643472998348499385671423558689846392263470321597503504724353039479502379406348538948905819264516435325894312258778903720442557793450288867857004419920789286982516294773234984581121704385207249288931402702071892167669845433040667900872600722471271439992626498844189655459057656670680501024836465778411321395874422053425824592746184140816885707357581219728828465212338576550835637820601971150357289589317766721712706134343718924382199333602174052108761594333650638942519880368893359559198223627741856333697718966255057773265995013929459586447978005947765543458073573471831175171488918372849821949853078646139898026068181500303682861868720656147828047645300877272190688624786205650428586596451035647501086478304458939075502690293514223819727286675394459453604639395405375044748945206236175974065602658629052920241904861215878971212953622891146018822283203135257252543461497350831025851583850084447400128121964384132196532905040714577965775732357899840429036852836593626230044260300044168949312470138330041998589128328085409780298237767646745110735734198576073285342737587095693544487410524747160598918385949922819466476849822020011690024882587789942726682399978606692807704760861924128848502802871685833172847314082538919216572166950122544159575198525376346504096309589384571193153414432758933055846413927436526989498126939199859769106301967093490652739715572111374740270237198436050252306741548728940828562147463739080365704683248174695550576004623105342561428929355347599487461111312808509883227081239174960630298295243245276783574660030730764539220246133343893645628412422662503549982709998710520874104801444128827397053577747515999535878479383901933184974347653470597448464425780271190069275297874621982578621243874567622530477280724390140692726797408793614345403892633925249582783649958071505333324741484194616197659192001954204870824449798926061206850169044315816424499966615871066308634292208666110401796701212358507677109105483507926158277302222068100569047583989448719628777493402661006870679623389194152639533863185202952245689023597384501125302676858709981330408579818730818221681317098881971563355304545200981842831223985827198349345802185313154786479531395735067468733768054350006774256405038083462262244813529598423644244594114363278124728487038812749082069687393996976847577828566572806124387288202591117915139544026099266966746589131075061196350292554719987771983385075572718877281137607403026949971551370934750769761900139433217838853010094260849696605869795874916214663653535579582590463740406819211490504280976829571566248096894455844791311731588849970111717733361960578029051830860267770604430151013008146766529982632185012999532236232422372412736861399825698657000934169594804844631786592116623443285642958951707465650539202692403673151408305118251310731603032430948928375355630345653381063740494285519725973532306542253811911428837553673941068881324177279470409258707289705960259102350246749219044509183978594630899281672192119884415040984073751182354997199663030072072066045525597068307127985298796076784784706780510743319664968967322929101738482921079091625855801003286616021289549001327434621851882215305320311825325143943125682981415024461630733944473601589808460146135671472303945093895026443435460601367768135659858421897837827445840980661041081482195896349825066949114516368327050766930845679180301247480087818597979954682283585467548290802506851458673547903527331780595388027314372135489317694861364187092189998878118711839792633735363744807287353455911847773812831381420237430966531763359314101296414445996294978527061747305990408284898271365993190541934224284264837935875959604832654750553530640934579023885848294276539269405781850546528722458196809545996492878192021806486935157023473300094217437316605879207855591450693603058515343241405419717136763165450543247706028351951689824997890731559684241502355508680646315995482278333390902721677758487835150550702424489558559633276484829465722272014911401858579223792781467035559899574389916125712414703188948194580198197354336383273153253257911531785883776730986317513297035581719503307602684606206523595534790054350295475261447995219144890003592274618278844530175260481127799616108605595510631649620064226604550625092417819877864028457362020462944881179491404825596756169863673037262315657899973225990765795740834223052438293114383345998166737891364109761904146824107345151421360034989903619792872842605845955239210900322974753905491692873289267353968852325503564101620199321951888499182494584733610672368678938297110657768095010252356540395030028519724497563589135956288202187755292609305061017893125184075745977019766615627561318510432254375224843492531704587632700376209114257650966137671460577527439831672884294839788443104774469179686325512150172548008638251589051722238630345297610126930096570404928715928482344366296086790320472328134303905313195393021410139965084871350634244484789073837258292871812468960759805949186708593708114989431346257982080646921907048943984563135059400040521965234935971628809493197657437748487295337436389065885285227542834886539830386253493459716729181225441577994952701117682342029586078429003812813654752547395768926303763426878841042952016201083511634773707054671948479047132627474844466653468426713889378708968115438828322403628113739722147945899773761559407886706007917046304049945936195492690164570762320681977080230358523426117876736886731895657006329706187690355230357740254643731285924815078141884529367915848192235883213816802745857382975740029357896025972142908162291168082650510111476943591924581482813213880828962599029547910066289182485037973552500887056202073054004857221477558029846328041017102269254967997155456827802742549455600688809779037833170373942573016283656607090626105520876571724790529970789918117487231493480242060411510887386410799296134722942037737924234784878549367575045731805353133207847976830012636091080023495305427208185323410202814346261260206815116772734363590090579656207094046457774888487286608507359776293049121975769131332196034475755250953871746867000422186079122514894438231503491881185604070706991708574534062916971892667382662757065371384304240175343788332512310819418828488547568411810062148600015386597602773899915152720889526940902404266723173645475241473267230537913282836539103313999442680551755743494795692075206071921467343004551050539714056039662944385553585962063949675048299994723161646586753803476732496178008169929598240743441979895943037716743394159825925379619260066276785315134409294108697973277296595596063863806770444000571043198623133071012751463106250076667574113563517496356983146982493753574672435281553889858065067650187791175780880235683921806241286981551860802517620616768816382627328446932913833199183342575316420747711140019498044390196904445349587969158859961727642084223064682868683939526702918353390992878336824934044829965670492494510997063847116463453934592746763052237568057475740367701161682779790062128464293085924953077599080943915659394728203578899386661085469427505745501234698622095959057301624316260950350921629907489316155232261273558466898021819886604873382525173150627532233168231849603820394403905645949720271567527246003803077475427161401307640890408347372892943452023878201568125575723165095363424074556951883780119278070807257352987136436508163307678302726205574447995383642820787556543712585831743142793267984117186933423680015056063448249859045564259992523327330044579672958510952230590986557402301380469296763218735767968665822860073255287295279378713721217497550565811784000243109647347521506268712643366399052408671977676138346284253032445848833397772624893757900987362852731873754078444467715880585426652762508765789322425334591355841726650389998902666864866670200934539086748663115122881536895945088043516533345872393058261723641034186678290813592808606036103909344945320245168407649989778400043738725964630275853367107006374113335896281995740536288052163931141001931004166783471182218552126466569880370665423911439513750104756555668415581445803396435781799163826181187384390530773768198668093224138164493195256498005531284723361388594387232680608930341245978995697293998472753523265996409823102024766584102524943581724287289139159800011759329561826029351657845171302857951382025454240066707676288050006615037550820544055447630254884788562261007821570310285728722661797924533597717014759462055658748235854379595718213323607691748352438320907057772156551141107913404381461005662711179703257570688301228670611729968502894267034418168258243176456048292710347908048343402176777984167661858687550748424366625612185630238131412406058489564858285186696502480972404571611238807186728224681498831866687326060605565201187784833694771258809776059751079525993551388461795226880152176861580713771699701319736928432288560807195599406196910770385316297056704799320675380462827972797694571930746734049311583053434972912880648897023939753439878892101578122505022860294883713146006744271461546463781617151149683760389235034052046624118606094373786448016550157829601686529847723308179542778663907286244342693722706589307708655012070239957937722159752946064873910603940066325008302895925952331760495086953245622315840792820150169849117452168323360987068897241312326866598506465666905565730739313113152179252064321717924441105166087546723461399469813563750311131450687901225134889508309590437737408092325746866979972587827112606055543014133538898231445929881701143548024661819367387919372704318902556884338020820555400275022259619082548633913740575834767673622771066600465446565943075466720585755115848138692277422647643475753587977977555951368084529182884016234784956944554116882296629962799049660457084693786630918380605710524847665943869609945053032886825212085511489848894310172513324026485401646272368675923246506548746328839820950097010826212614740054692020482136837353414837828155370151702111490706596915939509263310981656192459222984676037794711484037309241667666239318513464281943714852284178642368675629370995010926628490139623707478022071821172702759914417152964680187837352350829549426226637639395981239716365559331350281669384802759708830052375306193604259941618576363046526041516885687873538136175296219609099152743804046444456258418811188182916514860478013058317207532415300508171206557217637269801148369995362215646048069817261552253518259783600677293251483638337005099488738479440830193293435556423801474593763309609298114423040670520843430077199607179203962222927751730116618659500421824892255298401715333230478442341797576854576617187046012906986518803308320326167656810285018869951934880787344065482523842904345878261891938129263831456794310060600492072811681277517262818217412021453972582966898338982359127132490271894946617618627049284817694970915594453133986981013595554489881524475680231874975511428764514591756724981114387268551726310887984358665392273593271127701816402709822242591770086935196677024708479186149327076811874740426646678317918090117975796709886123411174071609482088104270943841423136179882744447312641414062893928716720242362992109568604523933429839363505069200859502229007248528266003659232862916126531390401289142594547462272527745120576252867953896769777295660995062064689429860586858435830735999809490508556489267736247387434636105579091752234692265272740894739701434848486938982105362666489914745157920247065334901735273267019948081747745265261594225048642294172312439900514798147171111921987643101173827635033740644605872473450588433845618827851222807863161314222482058773031782513133448024083982340433106873720747390475310852924319854124179084880072422963537247152367841200627473165521905247069126991968153956949799595336404908057425725360438746868323904988441443461991812461587623217024223992574447063147886406042386328652241833452527080097503617675063540778954705756868059215807923915605686095900083515496551508181583439150548967922190375389102526982410154858367035785719176477437728188245587154048321970672305658920747295237352277190868959771311260568020792345315467794906352025305902191373090890869101526949631121907497550542153107968429641206319490021235102779177238397358202763198311312340191104655546069718302665355546671857490574392214428517366262610830173953415448156954844545514694198517418773522633418791851457837930959329088735004043811046460291011626377091942707585204872688160052907643667679609051669562727008748912283799383389937777885694751585742243179829968444120458195539231171173486582213337569643927986928325781247869062527618671503559606617827897119218037950094944754346265998196957548641150782334983377218572395227266080518999481169604482465071945982279144439862247159216997586412639925850836731371078199476035918851441268477492990469414108755420028583009306068409302274322908550982804601050073861289207897778333851352152433870540193404389591802864803951188945687775600593791458920841265272573027899212600526238121141162414779051010523514937093958390291479788152509174454247859928020522084847695479944347103941822857295806447879133200542901055827960546599664975492334136111795550431181859919711452134268858833067543608567640939511713208077375534249128124619980168982210807896878220751652871689883389370227109921830626491979423830733892907107577572527619406796073135615276821934277279140580004221239627448658918701214304587517916442327338901962912092516367605130143871107933401345392863300451945595143307184505674037767388079344015550338014529418023447977132123501206527259156473387069086493847448988054030815850017703581748649334727946114098942256902786228408466573312517018454486881003747619794996362150987480868727562915440738289124131983693326473833921663217137303531660590749890604857385638367017100622301319634543190043526636116261890703639549656407053745581466999964876161605686081258320766377329086696498411395573276622987487863217469683957682981312237088536177515625650514072721047739595792054698026745215704282389275813443615748600384651893489759501138942440238056787626263381503871385717970300196922658614645316598232320278725607953445167606991959088861834330710143037414992826731684144065461617865943017382854864458960754448465357521182671366200139633417321698482746679118817247326592353389928264890863849204760825396853233334613337600739766173400631533830703281144323504707881792428408765790174927329064944906938948149157243081368172659493023816224023866755244801205157468489603355953146651674419356830844958458780883162126935756541452535325721086173334742399361652092061180229712546943188608457193099022591020418776069262844514335584698603127003859240868160607586262335624634134891728570115207110205049485893673409016166699842403416744287914742799766535503774524506239915805539339744133456205579961820014806972361757837403437658065124952163825164358808393619228919893136957820812335045930020138236461779154459171168836399436979574944214029779709736521069619132719888692016691989031148083467859296916681251193780925183838519157888017658265870977028759798547944829023177132925092645979151098126473553815850097929609158356772251702630252064994909188202071882244781802888988024855604548221590636160346497951906039986352304532055925748930872146889259580571053719973485396341163830816225056537046230276195277445514158011664421354696115181269383913519954458924058029315665535983666474598036627884954351743134099063896151566281393710789643550765825380108060145993239484881625730745276793628167904495290323451989276321879771573262638419220427625031832062684194877093556221101253167067401163127873595332893362424559766421145386490393800847029744534729459375400620715282791048347421924973188352343757781677176140169804395081028649937943343517855873484362902050605303320680227747096133706468359015315459766932375785537719256140171118689679440979368480785097060504980054713217672250820869706489214818499269065581329778234325008915284163995562327146026021451282524279496870465985882877889269849752537031858781076497525450102360733517477642113907668969545814133891756023808779708277948219665429813707045794338181521638636379983453719428932172381940983579141208139674913659871244451910618189017224878036600770866632858307211239412660079125295202096977412751355779269277855098259209271314913984042454904649786280487085687914794048225930997753715171893287300636999415534683807832842934084920039358216708254060267974962156927219367528952298104745635070321841395270411701081671936334030166439708890854065981934260925123870994320570160249618181991091795961454699298406183590770327652262478260724461480223859785989281236286355439006812531204298301497608410391644957231876787550998731171217356582260140006715584392867085361406387111893604828224398073516831492093702709574742180818777273985186513582570680213125014299865742309057907177593325369676487359445302417699363519997116393110121211200485360357965047911850370774286790376892710182790860749360881211698112114786043570266979411182548180253438385594838466937391568542553889896957184245524242426969236255904702424818556100849243980736683204289525179537615608679183701242041668327582244868639361644365423529584246921370118427371729177168153181055090762363177660196570384870254888785731632964403587118622132302214986398330496754649486482572224611195945339289085541692509602015974298535090130268311217139537631983613879646930804352360397822794833768008524661474542875350300358935303608978879823953192499434891854711137379134406859061297415331553744265465701665083644216041102038106512722941456121355626628774599468831021171373863730865141381829728909375430114582717335088899597138537080957655786006275555195217029590195139556533673579168168863328822900324972779360774853946346675677936949854883050301846386812591648226764429446781248399801714530346762197950820858396492940007893960499117175908644379125158090739588981241214912001841899422212723373964587519983793488297811752983238405527898143979777803403282523084602298719792607588077935939959306987144427121629532886152331477736508939194021594727970470110494399435606241627349520384559883450008739903214561794189762365802224334112614806328765208883813433462329850277484385239677636361031164325887011996616269831579858778511206967467107395105049710413746045756061584866489952894161228962656710873055662957495495496118212995902716353466576962133740165755256858003039046698590986476850937082462343873907431587862295531703317939372089121480027978928059333703955552369027411769408888154438321961350424700732244661616498695363427345874927548497995793503078967042284363056918966886389678848573104801335892263834567779104310297677821859623651288250945442527684809947655032339362071743615743235518929666562993579597676864255933841105093800726448748566733850084340839504148109414461688482290100042973618958028946223771189578138363731608931558870285348970228358416743528797436413912548709629896889878141827000181296998000106436431130166736150416693518468122429640109609688988262625648764140248309766893305383242331202608641140973647447301221566654873645126507715667583713911680993660181389007480866999590260350621035993437317152762898638012506969330140658558190064493621796942270326074345647625424480476963710947426404422787271857547535427381692707175552299470169665329155859418357495685906445125524693340331996371565525074431788130277563711826522689348261568320895473893738637168623313237323103406929088949285458506768638202194281412626385832763035021490792314349243713015845793188396169019256704572017190356276566336937319552903134429703279087957160149274259296182810178548433362465421891960857185882364365964458122315993587540402187739011645051995493704402461627892639243543117095928613558736605163152475597767042551830699467484285963295539319203711570894409100698210067377903553197679059404688082791610138978190231610024127184395679783871710689499704489242713252426733873296429545009506644995905478030697106048359856227459350873400356141619934029604857413395049535569018651355621824843785186361193057691592374495401129339085935918722072580593382130201132571461762481457239828480358726751843947344203105911100697931393924823790179211130258131521256422537949083671596559960773355225732042964143736400262939410711179741798687570685472153168500770303777924696945257067574317097174910946412373653089968720448047467082005099375219802236108401565950313342264187316233679750756094612617051926433622166476325601960095057467258733904943411899212325372375942270647966946931250462299910213414463557770892003245690146773827930150217862928944080045782070406023211705058021695390935917544102759819185253134432596697770248173117729998045860122991753366965259083495165229767897251660037855672342752870669210141181116775845310798556273172752158711158285948893991105526208103727060946671496730587635225187543335101700867775541182799592758640935317995564762303129055241965262935612547142584473616610250681255284976281561907474558664765973921078681708295754690756646043352095651971879848768787685921579935902007222606314690070077974493044956926027819327659245331634950248874089991142737893467401353927642921991044904622057252801787973755099071705999090496574935450074446375245603494584723220111793784696758630075353918226544280758219003131287879794369318205942107568442835514968340134902202336353105476433858715249520181328651106662320353711261274662500507420285648074447501138227250821876788432703566832651928487385235775053390948866030801155242250103781822312089968936022837468038162641727507269860882663282646903811241656024815209380917159000356263993067307349402635898134050416440374051808882233162173167760653006136758311861881266865438809482655955653618490832458090512257521780746718963307610874379468099534332592932600635047094357880371367584144951134514801084065349164461008055613883069633090323699701203644263315759250246995233020902458976678315688147996174523506244511792072112418270399859069464466469151832029781120418426878433933531399844897346329781121545615491921521340723595075835315878369836053722494017990022113329529834351477594519935531562065811647605425402033273066084561449052978271949981661215193413115782738751895467796237482470934404023058000977823517796764794047774945509592329935210967537928773693530263868522535596450544641817581506396392119813915066076102391828558051553459711630318857747022690700671881248133122384683866504874453011603472429768220135336561976670046679415638246708156866239937331237823576734199621814556108307704244768240286355834399345449490506687798865395613841943224849618493211867953850262145840154486576907185768662263000123616501929786219006813022467790188906554163336762711326400835730722681146578535000657522234027742421771412771198544163491081515942646092825827481786269604251432256114290163242365210918926227829151493583703120524683131151437499193440509689750396745617495708601743601729742620593114831919729244737301764664042520792695967419223921118453795111830018475810541765700142037470146706137101960021533930770067095038214920406282053184680463412539817944729920232607497388668138971814485600398004205853146138957082327722997444503071441864068264681952122543004303887923245986066684414144897280328030114756882395179487280933284212162093443274408511410024826790264247968303307572500589403572833314382895237119981801027617559896845684662210452095864240941343861044072028685142339621478149641820198201558169342420583153559072426307866485879013990834741868085707094833762215686234669628335549386086707116354164492844910775925898994801723922544303808368807911128019249630678226252223322062618892738092200598571296679524509853457293767944576522779601331353543045096188673077733898825295500327862806041858048460894459136851452582129698069040847610759397302029666987757403236076520305344281961136917209414625851449896747929832584949960050626702332845363921114008051239730516324656851165510335120640815090778167746390255337543313184887464409870501623592791420150742704078085595355597758102250963015198486685248045926250565202631405657748729174905585354871110339300971580460202462414901644217339440106466745854773042822703175741798045990991157917199563676627492712894831063631861666874552880919240171627373467455772751002320971989305704863708374886999211029522306736316368997180561911158465010425836124141194885917859325375914089769886093352423581119921786983905049911251695823318109279116751752423345303187945903903755919856172466489410766382343839949700271000756988289411636137973554615721736761331759083043355320510213204724439509705202077838518933407412881410941461093071011209153943747496807310075516148574580545582101334822648649459022328686312689767119364385908846144037373844883667954423458757703243934468489245818716395678543626467547357046412184463694337964319994481792618361506332191299770121853744306056976349659806901655479829221514730275954114930541620479190158059309340718456595666988970659004449513895797575938208200835136203475765315524496344288694713503920304230394507140710358580822234828252426879432685080247774368473149448078971255424235270172518591118232494619143454095526083136322405824142404528328928504693595171827311052582657335243782244742324480247203864769133070532419441631555329770427100647572933888938805236191690784595024174689036789312238448055422118159271595128092139866427217276907739757596732130284999144580519820152857099801655729742182107693241484782912286456464500323148135624969930861742933824664784051071332443585937512000882261643715493344678774156700437701160462219586058814379289151214725138102659859970042663994504823011312617675987300363752681080558942620677763685607266035429939151039575923721245444997874721860786986385991754199523675713964531207299992457405814756781481482422802065257293602403392045625994789280530763650268389222462624768939762402962483511405319634547968892066936433055138982661280776595198698089622636517676218272989596002294282526763805196223576006490955983570460322660022562096934915360235660499677314467650981853860511075204250290355716356702312200411148857422280502378309184563186958202923954283470490260138238081171635825552553135760931533147326544221887555894365550350242818083587882448073136553777462763161218883413714291317542792254769450105372283684967777639299287763005657129326764764487633542016343410840060840941433819557830287796282622974998429543618522873301765025609503625153646840458014593123238777354107961768294527779621556228830444166049589473685577574248821359161560462352127099717588384047987778970791303727989607819152841062324227556838340287649708367937470221881224026146267129177662861757925756614912639122841249767553283111870470762890688552449753664081728153024276904390924494518387646622571984824226242563531783541699210575459738469210432388422774224624389723981014983220897938474215339269286577583344674919460375947066085390967792562509705440061172995741177540158438682154146095498107242960797043446305577671512475882531920914996908983820253040825415898786977358121467522552565942163437714056643152272619642498465087851144027718693239528204281438842981886711201983165955381203939188008474451778816511692965502785126246377907951032663219035586234766123598570483706014995421871747660472254468058865176206071849459856919366261614212500821480950488424812538523803895650743409518348744717386552430272157589301011169482920059037593576962847140094949848416804839783388245180009792112968636768352464746447675096224935384586924368596364272363661597266496986631156948014311409734768623021113582570985085699100641211273562079916313191940334610688619186536844912519334275674856459325493616103104323406952222047077063537612022131123182509324133800168499441172636051756623899090171859333516760025028674694874643290315015750456307465174549538948124907760500032427159498837040441098152215666533207469120165457106253003699503889873440384335409179179960847588239483884147532892886853134326512021438679065285867605007313312391001287532873575152242919378662303593629878110865470964551246451678923963869731809413531504171946148530389868507527722817772379174686399322165437545274283571556611116656350417803922201263342195858863722006659395973398539634489379788943608563276940366710540900581818238500666604729142221968790118456203362472457127108812550607683628376923160835294722902081720063527620593184879757231215295674221204212159006298249341608701262680520525049888255892967055754306457336214152347172690214813318964510914020881834539222496779827847300098698547826941283341107622147680395217095120323287506701437604446706632679676170892404266450804757440527636883363941742881426752399055534069989367312702022314700262406519587297867693191545858268983106460701266147259571986185554993227144393330356384005277253311289194640116783524018144621103258503933257164190048134286044881275813575930925035502816255111492323008133185253735242611881661362478361212642949758279447561530871177443650807264427346328627928261757715283339800808086016814693948566536450068395117937711733248542563470842456719211019335148363174633271021344345197732579846857803897540866015180253624794419690108888802646842611256574743852799947542736213766319846226595640830555024126875386794607390512421709224571282752770244431209335071118314629230486272361275915714112076677374865249726157414472016521690320174348233378187948990928452875262240107434766016397881974834088636321293986482368137302568738842243254792448608596303780930271419339385355985197042500646098940689068900405136746764818666153301329244048051182859453958920276769680026418109907628220956024983868946505039450272712178605459759110565951483363296650112251273431699682818158149428591364616371613069841967686849978233303551961105916803327256375811910838437229992360740447618439589148263500286677539083031046945333710992624030422618239481013075938659562475488287929479693906817117118352133064636147281749048611464894696827951676444099256205159961113418374898838396286775062557216771777836221940417876346028039781306329616709461449392582591584928278100483249929656089190693756037764346302160559212919792549514592123188624480482321905477946685507224224009163274279173513317533861410917359364083602623911648637123281328409084063018697362852655765728669420157526576810360870137245352283111101254134540447740234673711092766942632397252916263886909822998762109770760707555440443452694692412399636292075494648493927085930898540746612899643281835815922596854807530354265591271166843570036614852343008099567333345587309221235293733150771189321950522746310585444163993414848814566984560149897103939381098658266295416416541711721310285883830527343737215185119076029847262708246040999663037032129530508537321889974386512398071471209602129948312158688998956221218596555977606054730524668220648091901461647841316570051125036628959500993362213244511003437488025419235433609568844754269687830281638249345494160884062145353476961613801615261533297184587576579812967386314869756340417553313467126387395025305887825829205052151949375486146488937743999093660349818531144264832365129264464425136574994643862818089664029449984494788374416549527855263935311380540438062577090024612633044450989888204609454240569964059636072230979430537036827585242554075472023486091107965569650109097665010805805295475404579256103905105591168199781938814934550560812563195533421483287786900379943588554210904685421452319888595624572791500162501360990379377829470516707459802841520896667640754757136060492232990049719481608211870510741202944902112487678050135263992410157257975422913258261648061047466579662225014655139508909633410333871566622523743778718336093879421715065511523121896363105211697794172210029004329892578958250518266595037009470068615188985742006563606822504323943905024266847984747734428914530403929489283393329828261349033204470142182256188679517361947445954465933350445013050992717668894751583062673573353909162214790744005858709229810018389334149674021888056291806381218527148848487074210594828290501482330685087459832920376654410956254290701016228777093053316077208880748443827202090985106142768607597134692424880963306345176883928218712892904521956067299146220438553308255092204727446691239048313218149060408215213034520685937552049813090383261580359673991499883440296728895631015608956912271019131148835441703736430544917960611870112708262978031785502890626990767323212698675269776699900580201994538538016299868312096327736034267316127895037049473921796913653802896348271673375203867596917810354200134481139905043637061029389186808422785471304521804345022342196982347957658359505713193655794919817275079801306218037700600590285297460166183036364422358252049531173596646590825364675829565997789213177469183130243181518750200034307151409343615071653637838863928429028068719612518070602092015178431778864840529330629806287834301679965834494260990186830016248640156194674899842857491228806455492195341350588163273801989278337549013273692243104912958194476505625438526145390352466802890169088395070207431838432219605065303380370851716842664615772305655927668290877241009431741860295831597763550912221870326667667741752873881154499417770491089517866064946964175622256501734215928166494427565696725408816988367198612590478466687340189904446990798393395384412725772355229357197173210449183494365769393576666130533235167675930892550072424181080339242674020798091541751845641863904618821077399529999088412941506531968037689476479332978929333976332232580275964475534386144730470957292853684615065746655134336775432130537551115055979938153717722227244749095818936786986582329078029718476622508995171440286094866700623532126285291168074372668004694550919368879159833699896693350419625719404386262845909775016413470333511510997057538348306680111734381578403952834232170464968414495617372353354162248892104052938399937395472661589729871625513561193949026938852743948692737407934546579549431628279806125018461025421606800355072117154352526085077796862876530739234967945342283100019783027607205738977768198249743760058548359470887280824299738614772800998175907902995691327520345804661518342223437522097556112460074333138434588164024724468034250779665192981767106778903627336193900090659153920021214551918549677009039813422602368516974085387019765440391916805728125544636062484905337162941892743346087483298859178142409828047598764038822577459644669681171140044907431650582157878866711485684367391974849424380007331297135757279016740250402513291223575812503486728029387914138261497485874738881029530369815640677991269549176377001116415438685220745444587343597182109101929724341103278586136771379613376927970444212926077598195758903527771236766442158008102243771666389768493887874258363010848164257855832108563547431348112434028237361173743645022131511218725795857105509892387718512749061026325217108985298967868116993489435883239025984841768381566747848500514951517697279416950692236186703687784057749888317627492618303497942607573559524584719714306513910389296872767922124014328894742894399857498097018028737341376813889920347528194746950477383140250671870081962826546321834656102959378173091960886189202434092134521246260777137018345519942200444414226761970909181882547117361331758598526444956729234381937489016667474504913898799470741212915583796249540658267535257095708367029813638463921707785921822682122768606258289063182280239231417200728837089612748985135670220446266568081462159434465963521775419032005031223684120297873631994439207158178372652827752606305122274521669725193778992345384360584793094555439516699404897072716267140166199225683706730289424597902600367456325780799229439463052001625645801504497710783258473872972028174813079207107619922540223744834898941758607664963719340865079208569601486399245715188496194606485716667266514148018041274366182615783425551277884524182107804079723188363133804013286056366139882931074972313516303682269729223638381094119759024153636988070408034410813041933878336590628956976394756614483166621455346292481574943759443685392085276000948201853326861411979668410510107084848640505885306496682306496385867831160445411427374458787078467343485581108853876442163169442351961975070468803991865744847079005378920871765880200440718468630956631921880462890392464732627378213975945936541994346923095700031943832556780233530903870186097676010936859700795785540841448187821984246164122341361706696318550808151783053958931167917849199181138797412472719665499257709679323028603227681895880516830144280354941670406801707258471646934019769922085128514206379758847931007161684545742473638430942432414736188774200150383617452369212933209557185389252586478495363862728782618100198819224953710031391912445468316234707106725956268240423157805172739565265493689075000489878255954809547980863908577274869793076101088745075402348945084163332991789630655164835577188639758660015309094775767686582791232291795297949438113654023906739601317530700920306480941182264462291340713394842232430068231748978481471915195986278149791970175101075903696689753945816715873641788013674844575588265119779778363481193743041912060059751454472352053920558592883915060917574558305947718440050869100432460834572404906808084718817000942701618875569744868665818768030005614456051409334631178330917647346027216779055378084379756387752091441192946155637596935714071092007538612573662123600634627623784410276053929983004174823294595159616921386420434867447796705784881725167289542885466545084577664857430903459369900289557266724179579306535828164196918660320151033903609741556945007399737937581773021580313345807525563860406737222505355338213215431793755659681997997547315182806639702078571229813015681104376689059805166896649796788796313542616798632489868695255413882901321748448215294973631641901082093958903991406126729161219362866311248767657582617105112388369423613466524923820121260971797251721522393715582194678886658669074548751422770927696141396812299595441177186350978857006965878795399002903079057163866686799756978435618089251892275535542088264776222709829470639099849951129869180730508185945426867699767746280906729784002555978075087983259599822367765006906887799048616027408182189284264873588208991170979772116092930392679900461802660211653161195587753594294073881058269300229481876843493843241538254499432345605615273096201151071117441415745694533880231687222391304412556378328288317205970054789406973336377081297931350160830496563590786564732531552119504700291744512311983807080144553170819149635167809587840946448068724114087794442950038349048339909163167999766533095547954524615990674101644128971747569173908473643342593922814927051252027549052869075766369693166614430902218058601463630425888627876093051594740983371853569281145488255484622486757814851359303462034603679251415266855825716471783818127351466889979381613373342416066164797567160038277654219719373018868476180818686229629309131812600906035192066293665553646487689861262184421523039900550365845901075829600164880086371938736004383049254793236196916048128493835214227928104522154911873942275209975717719231716080382909068111060062299142940042791986794271119646017697888042543823475915518651815987212496464389388183353536167320041031206158627769747952490129813125694020887895472286319260205480016403605985659972112846037657333126686165397687209610326654635448128451831668836563508560840115605922868843617924424094895128993532307162954449582212800269339632561054942894290041177660778064347483796342924966910972107103281476870866835658627349996648013107865239090498368620959813114958817495079788348384844687995734081524618319507025268728319150318979293919583536342816299669757605292070852279647443590676023107955354777849089041272968504569098585933773240240204384973802869091956495112471239819574376495173849856599241108619096057720092775212377122157344129222902316887520869858761720334628425131906888712528790216129211525787159417750020697531674813094723367743630721737922636301632708012024319913621274315631093885804448288376342494039786198871758215973653396637775341734929991649671009119974102108911578037778317913101958732724931583669643157819094106533219754613971159597795651070405782866488401368448927641321221585043113248706426344357946316312540091091449733537183622880469326745027057653234983691566990641680115761172767370379465489845128580151057906064518206304841736684951121074369329671567103597350829705169332768843774209562834857234943620221134298743957319829562168680322480530116332467990016854085423567961253725337957831979091747926263452979596474215412027500312511636571445950555636813971539508115835333827977058298347741058641004194255921824590838058532544229927303208604986436308302273901403135760716147505534713192982373072878299490616879046122965036940762713169812036748624519446182267646376709774080442667428635446886890452132641289012016051383022711085576010918848941779669011579970223628064734912503643623584124519358586746016101450352795911365686663422364953177511654114748539045896414495227550589212555897193129769240562332684756605731624086722225549036435183989263989180563551858957856898456709468647975925204214395902562260363176693700965069395200498495877660378405838890360455760782998622908120931338309097148209738361179939431324871686888636295686572430234550835082189465883010007765897719916938367270636920805674219853098447418039509216282393931946696805642928379948847923472802795294310244010513249486713282267289573620259221706143355548333953863323076183821772654329908001876773355461041461123721482153985789588806381351869853194208555138738122801204677095627807136989908323606567896170448284697038074709748495394692871603156942390503032006689748794414388462866598940281289090505135376962181101382501966948174149420580187215507768094463491488553942869030961241262481839401996513039358215856588415868631391024719733997059241954995688260173062554201534295957001892262227975563206901609517928599454162093204600539079953772524847298816296939649415997824012074316214846396532799271015360710932419212719888833173002197370033217985767173241949869659305571167162391935078024531835887790990856334169026307224931285900022851909199514052544234377879617439516306193663773724140019330649786814237188477269200301522700305999293105031218131552175477979127813092313828296887624140074768526579975536250630852541142604717486044323437676956555278038508297058473082641733095039783700292226750428631062861449301593999486720126797687424732544211552727988609536971312738158217056749173186141995733238156367744391397507422275118181220040303044553793543069524669275374071242799133572328125311605308474514899764487663905706642002554765414067140091937849919294487003509469596459051675905265627413807631712157161746824070945600242503155247864233245978863617620741040438484078928537389261924611932883000678180568667577506131363312219196006009469857423563643804268208413775852075979283148136863226992663044126740333677162576215614311106281869047612658864741799410100264085428961423633349314456667734498057579630589025224755790746415874766490260673476304163725498605137738273835585223852800513522145207389422384884240292852016123052016369761672552797733022753798488489041053484868582836047386357139052182869521077310370455250783651632409573555134555747234489630043952880193836519649471217760614023654979547639590146648853169838434906114685870542974924562436539135863850888210894157258052852001877107240995968118347058802814656317837511006434987234661455074009035526799631860750943643010586896249195380286390373604174261560674919873436220670787047160349410341110886103270356533845159403892381562511590875930049474569676134006483433759755666080496140515352840950627540265913012273486116465557218631369510057131687037554789862154681898983160141062480263308193914327163804347696813425851832001746722369130969101469860063001671800795646714101965061038434913515394283094176421607968452111606851592242759342419292606926845597652862515141454529610923104210189035996343253742019656869326796897802483245157328295609939303571622213975546410197575447104180902324085315769691583411147370153773914677349137053013240833687364905990439881754705862674913531265422106584760907321044028112761173778468934118587197748109989833996785548931488563043307181705758110846081813696003184955179297340591328365596922988273220655129794867238716487705322150053767575886714266957693088258399270502404173005082182159649327332958182956634255068889441349828128679846617454711208894937868462575911534297103248753051511591288407137204194699170404209614430774083448893353196645974588382981143509609371334246007946108565915203626238479119224041331335495755313146620041813908367640259176890786895463563143940152594178131106158020180339615083856582876761831961779322982931730232903064860954877656241377482483088884957414637218190971663921637179566286526109937184657361953404726210496813012254077103441821599989917188185493089726539052227728596700711978573224071095489832107553257991085615201858174714208261669881845414338609506373630559285403721623307797220165444154446904330539995634983625839662787751356673032524828397492735397058125233938191309468782455987330153220020701499383441479396622730584323504636704389711110188007545505218776369288734983241027294852053913388653574109251259743085564960918905486122833076373124562755463242229973737556107411800379500988641517025105647962943754675421333533614378560784316783522517665943360110739310823526288845604099618375420415339852605848247340252593874647532453517797207921811463683566029635333880587607763891710979703174043693848954903649887736060452971663876713394116562663457309988922460112064392317802559392556857312583233269675298695722977944200792582941065954903089728684103558062008247451221873082347131370576226840963624969882499988014615955394681665740141603682717946384141382365619297009564080374144024612422741904543207869948628108412598995984582757918176415945660737260620044995288339614167953495444637891982570373490260700686076349838448494803725968980123105608612586942283792029990048169325875781279678656539920001674848973198477568038958454258289488434519220836983057764411605624057568721827776139245458553022346282329109787805261998801804629620432763693041473079040940497548661328687766647860827607090607990954163289240052887516074593507844332867642474345289488253524415448663330372636531611638847364999511130761024564479955699798794866123387712857424684329840411219596955704585592441118951252623191313438568384911559326748341181472161665738396897133305109378029780505848738215585475181405235978598091278621685522888792394342179313819213082647362267387096800563075563067709017198708485922344573263120306537520444817549332899973741452015736436514695290379236797476360730593663950917758303472706915993119731636185130850468398386335460875923935119132555479091681093719710283768274092643409300296800768928163217985289871345097820157166857052756581323532252403444956864079125491689365591028014341907482407356711495166575446135056246627680838248413805786343428295139818877074447638853161965649030474499224546028610576533850620685235488490694415783007895933388249041364994833523807117366950859989952927421979418760028621779315733917182146862107452743599734664698040209861575121278846682982880565794515970751796399743201499807286635364207940165024895540501410619051886678324353402426468426253608072836088671157839295986676812526119755779874241673261617897786372416963017485929151250492314682985655818164089941401220502922334575346619916460847898807843313500397217329804923188324975787063416205244558996996496949970361590301748539410370877889340387623443575039535847581359170242264853912202657725244133019945856633766823012841222234685292558067958231010924081794680834607670663590784772101791237967187145438971467064837603324547601743511032770091084853768106034299090359475781817580083072133624954042699131507403945247684136544492196955008368077511986630523355119815525728160270965916587326719266662616880123627658257086964418299698394402522533195700931385041798542398328730374859876596056743291847830731248120056608705370708418342419332753208070573608614460991159620029495838074429118373994944190625423264988745120717273113045201378552764320985145679646292504759528650890274872377773547985446239396609968424045899610439401073780959779268597937833406690073908878449841206156416201127327773991041681650225936956751428921860605886933049624767725359978426170972965919134128161686150098362787696056970617546773193914424332084719314963712477767000321354059760663132197662423201656580576572896601976581459878007895815627779354353596516421361894785087872198294510760041991070184707168941651686294475079263760385195399421559453683261046919328531385542584240710704319372531063103745902501485683914747928786861151492947037266532767838136011764062371822185996372702743170366892975851484150471614948316148891614873571740707707660098231919358689761300359242369239794356598692078225593006697691107842665826429585942192148328749092910376352457229524533227252495234593351977640136773178156697379709319526196303700450908951316756692711354393133116798958439434192625920045038813457229921454604536008814315008323200695690815384459282056488123951431558000972887238743913325759877165830910747980999385393890095217964799106339591233348950156435995719349355070801986943663359077189487531453278801389501358446365022263688232644302889509083664266917311040476728523100739767915141804941585831599256580865322752352547866273944415875573017264602382882374967106849675210359172575283861714540045309870100727070430300919977268907047832478623044439783846546124278105045997317721701181255720565826176327948027179299861415163028842662516882537966868104738542805770463205594765906049806056599523358548948850801791961796533133573734601944356596343439099329801410074777074961028266127435342792456041444956757925179223494068578535378588335315419432640460854103871548044950281818856427662216317292698673279165288723218072450611566119343241520700122006535947893476708689539006033527162257557156101186039985518710257301612500914106699963989201778395813275377848215491139096698041925749917997517142107062837980575356942494859021479032745860858651316809689289793640375596157252603270597267237318137115616819635504150710631271986913129682040525745051444910105386970040405069277805214938609134430276920044194502436877957595394810446170483742598604475297786133151094979306753084062204168102679697402845746274661514374703698995844985537080674583429500929216784335457212764635737584759262482221500035132818323807717306241874226679824343102311285984570820395435166379293349094864775592329586862889560475493299576329191621512136576905354488256488916903544049887624843815468954822318571240643799155169760845374320590064436949404388484197243716101488234933192426112058395503901159088635490150231793754263018886836595218804806446470839848249139377898755817264817242268143271870024255293896720251680495623495288754883678077802749844803095599132226222427206110424663501454579987267516179373946434093345606925702371265580005973306654037435796848612413610356528759723384277251517837523482595169413162787701335086313987044743804701098400068892223601465063872287882241204778211486472378517624147787778483204140863120162484060425042058475157018912475292394973328931846908277424075741332676583337085740405459892844628159829156698955434580469754992690331307796401694197977080727707230364394365414673886663645961646313729877930439412853933971277655718352024597560740094996601253023042874758547475873934530868373550694835485723668575157483052614381846369168704589131975355847927717431034495523309085812969004484195997935387027595895119193836839363619570108487575022092570303212188982369982217766727936939459318209790988148373555382050183865893933242165245935380334085020688216334385737940305999691726695848246276060648395599877719432852158505584789886751287753386243048284007509441063829154769762420177611738480862707757546340222117140807368568605307886311492240967608622209101654954342981024370584652680676450074616422932350736169765644296448646166657620505061668711786923343654621765968204003240536406994935668115315482773464805901297453625558042165977501367927297853114990690715947208093395188402670265252461264524990691851839718006531753638517623103713559681902760496523689835147295514533897917239878301185684465475434984264612584094368697366761087043382985376842521831099642007962153455017113854938151556783619047173903999136118836773943059014199128294626682735660143140820512979994734821104144277521998677215987739869541388347931104149737100238331448856363503596311513250549365685531533181509052076665407485204132206189201586489085889041438018493460867775788695009135600393825965533384391407276282860574080093768082231204005209470370419677396225974370745102344430555756886303296482008672465969303793310036667374580234075899891208975094926993101507078424227505379305615083661610629501521587800859136567897150929727376733433393015576400449850461888348439763151275750840955102607881006513904150286441893350342395903123186083190969607327433106931363511528434462973136040930970908179476645288062741052234028987813156894722746566172068561863219452300683721676331701922855733674807994765941290678642164377316184782660183887020239730986934216712585799543538626672450604641945312333535740792270106560832353319364671563545113483453006328741991176893722078083509290861743608338929078976429206403777817642794842937753349954388967998038235095731154695524682872759633038526104280684520157255958765106154673100149933546556951843917073858819711302478565714585571112155439180025565999995284710061723208704485295023236553747182843773628929905612006703414713550747677930045383831396023628510673671728767729557656707628153659661493214336740302005087620666386265850636938696739972498445605514972913960807597622900201516602212898413309012972465091863060664997976988737817493178439947626308272834385169919262873363470974943073252502992171942976727153785971157925899305415726128918250416325160706711445025743725027634357884324710309762790250740885660303255335197904775121218131108675252372033107824366295601548587289023522862553374883416805489605725741059154123559934980701759139773115981124609621532829010309535708294521839535269272999125390645668224694998772109583719463378258361436712002080576179489319647519200581223241503066264648081436696826607297942778003294647278452440698210105096199466333682117915589041988813570786968492644329337945594273025607592175126436392010837511901344131058712071722856250763293002177660580220013419318980470478321360270193904596808071802311343825009561687755152140970822596678249548909990177270145779850488102974115980301985344589235312752272110253867368340400382347740601769968869234094357950426221799173369248565476733126392773800965446595689820212951030437896633533457068829146017890666386791947391228225083240264609134413918446978016579346065479054583308168878195526050871411314001795504677724958222841845628051781842734347250046980240330001486233906851515711902206041381648010793703143545951710565116351302282071028893592206740383970681643696645991085949037263730708910050764714520051025768240993122858049627180406881973871865005050557322840174969673373903574358586118430701914793440438463280645499941102072671820863154459624902745290489223666982424842814639454170171580913976945600262390352634349915189169978133320650496424297847096724755482237136907005182848842060409208156680936664226356117219035535424508444609455282155718766921934450610938635052454756369979854563084252018128437321677135779953332781057000699816644825358501196761145773384702615079797150229024921314214005947961670936790073757681227545758392117573381868703940872708643430824749847966915567494527076035247292818384856063532643784952737616439914782077995691985716484083051183128130211862038845264845439691929608384985463628792414763339477048028621507009188665618742353450294164294455482216065355911676530954783227683377307481539584871638753452703266250474968626077173885053324916862205057099018866041120852754070622083721796374386308600149073200337402310285611959297019764323656520460368904116809410786096012285009033686546633481752741912757357208644639056904271969593990418939816857960317541181787649622113148537195800897449538215393490563709378920293735386532617152215567409983403003397148545905501016681385402603555279970689146833223820897148672635487529965826594642555872073125150882726265990675436421049753123687445756547382469346693051879171469007242851453973578096296689326840038769627553092342700711129379437663378181153642032594332525530151925724944047441659317261382656782132614827337483746039679072219376773031465967274083075212811635317545477986452089522028335374715323161525956731302397040914203294151664857497749403065254982113390989363716535578500148883522535169352654027152431108643616134496427607099359449212623888634860105824913014971628575103477433584539644524422204312730683036664572212506526904139808245517892206707788131101153223017739940597192197591774966056566720698850947900554083545660293800844352344171037657259269811508538714591185494812048255963011722341741928506980881484067554745242665861830870921417938383421050860699062058370785965208916892699496778274494137173177419363774871494410983851499935351852863217286710341803092595842278188481798691858986810381335832211259722796113637369848977123495348962109872256882356003174122736746287346814406683078074623019240315797947095307544771439830123699396824473576425606084341879523499385658637678966953172607277230030060990217931904058616708941976358689585633150310299547875198186899462984064975141769908308743925447702179061751545927575771032052613091897742577865703888325675987333202299865618636368269870889303788212688984753145274752737926508233467638191077336580466807894497485482210965656545484279697885645244704442652695634249157099012545707720922031951586757190459772650017170497562418780512412830380513449071637107489130631716399934432706447854471529254178258037305417641677093749665672379679241236158947721792791254260772876296346983755593881115592874100309211418484071613587427508657693273213554386066849978233488059032589291409495546998829365399830702011056438048439779544231871717283082700030195688864499618237653364599595524749448312668384251118018659086121307366455634541917603401725381795346495253380664082825100190101579425684584901173413838862048510480560032140598473209336444729340987141579599901499009946667536279375297154714774486058208442679973730911058412846234966272527338294215537590010292550022994597435302412917718198481493550515672008901416498559450835828458363471065876915074142718094840646451067230936542680862134291727178889064268100681316404693868333870651400501482243382970781964291116820803886835181717351711078777658617867251488682374995469861902608603356303561726815118901669302162491222582493789397819514341815423929755589584199149445939337301216080084441065687648102645685022515983790347172633153936042334711687386493616387803975052561728905464613388399867525117441763611307966590042236633038222050526830162386768816375122259496487727533017069040550402276563582007504082515431374977540501814332757929244688057704139179147157032863382990895188513840044712593618858107414720346871417824994728421482820653024988932307566090999624485820270529038602692991988288094217380271253435527675126124781107245001448039609799365838420040416451442349907590178906178744967540850219145826401475073361894392983651224613195418319815922052574479944073077516398617288459324326811333961458943901514473963387847429284063520319563158637960180509370911037934372396803371518394330140740584447281343304246378521249259095010339783257594749516507038418578959043637586424784457815044459395160150422736522401211318446041066096297757607755948755267130913687336894481478991604238811728138529379045330393117329524403425159560517030233178265753207066045529828659209850442751010669151609410053250262372332205066347417682825092720475781907198258130965815454620403320807441976109041706850390505190936259411290660571480199846713955419652911359384217479944767399389378439122719580860611806356394630837860961947532909323887773472144673871465799534506104315818800481629205045645943100857102108229882864988862258103511046530369920576179799384932595516975089183437094318235551990734830880310729528905816871759504593705757840237379153384691810988952703452398901298146268339757740176640987070527883751829920950764045351597880497154409598856996666570718709272018695736930866107514345904381569940467833887384910691269724804615479772648708671012525787990101699804257930041790623708831816284136954058976438648728805380045948162987543675308589841518666489716176793567145220664263108032006528190998109148859190192585014174899280530950013079498551277790571134346302910797679583554104819389918436884604968350137179708263528395785915522970725677532674237232128019655335336692793101321557776536028741963749232914567059522317117190280153799112356917720962849373360124004725530013282987086205435232326700199360692530339307034501174948332454209308155500213328701478676220654236635276479035750438526272508267354360642725806444287653279842538440508830206250700445012994676142857001781588216804379667587860810149332172183385831283239583623507265393490934028306222211094691747682648218456471835466857623185874622937123240945857809772197088753680493898619496294360013477998890430730615857407238059116290089805002607233378916790282725286268985275386271122549672770447963239641377199730431987034456965967607345548129781143204282105778501290231552175373624992458682352640250407120836737586507119095357795781401532846006148870872561803910275560143614452820402050924604884459496044682288452108066663057426781626637751467730927865261944610881814621547344434051462408463494506160548589979631186265664070126985499547009457499633048075318726225376934335014580821247366997460158365895143373471088583995251896075136978206364214067435210289394548761048360757343412444044749472765920671483439195064836812598766968369994499516711039637102920181118653005601046664316139316337181719924810966522814737270836739313221441194624712645809664767633174057458077644616224443735125337743467058336603275950972140680797823199013705368492048922974573596101254690527460939220347915100801851514363099727334588580169407580248920825980109731244990310735038590096877305346937487428935990924865465142917356848288411499785386771144927844390529091276257459026037418114611840258551714068414524373549433903215704741292990335026431607975264664577433401801152636565491318824449002726212971682329100985983197476925009358722229072498613830285506905036371177488707228351596461933723124317978159077212373807669030761246693681040049554930641264298119129656508737713843120983196569902095177601588947517637098614159616532226209115686418734539500915690980146543367777852640921133801277084791073114708173877257515878914775567509111255215259880947933401260018661043687345730722762561935079550935393527117386313351834279561083920497524772617429252008285787223115634913822376085194105728982668796533249355845141271824951109244387279001758518478311159181464684471210698189551739069512346688866499463708418506905607110077160776004669233753502871444704524176685104052357860147009307786112904100944338119231554728604881254327846838095920689095310777034580820760532762950652650729954287444503483848856598634980660123580695922929430861864552548707061469586406116621017162289217459912665186882463586428990048526602330380590780311057897364409800801659756379900754232061856957471029730922875077882661884512648485108413353454593054092380753738559015627011634670432265453852443153942991103822754474445563260107259834736264718881120537084978905755084746644695535754590467465385370416210807691944395458486393451779297534796584730420948844256995471038999469004585428144861838944732957392193385200265872455808461620243665137306964031151533099281183067569873005532084711618758708486384936938019082944282952133674668548408212321002906718133019653583741240904704613773465042866159574539603631797791332519785546456821625492391099230087048251155140112206383452420468927671426830130839113954800750798230815389000018473022122969670899759045538102368926705185252751112390511756549452308972472846929505860422385535302059533129928611145036763776003881344813295024417433130467494257219915118414956862576841236186525851146765842598603636957954046621123449872696187433160759445944665957596220470711975702493997011250837605490498351051741882143755211691683840477226614776584605168304863973268321750163543684969217366498427175597317564802057275137664527606725488119521027764189185677625821438248393578116731324627086424458227044883450261887799556248498719773505460426756865207942525474698909471383008914785079154431738883245120437659184602134102881791327382502344852059514208958936276792945964745228669901575614010516633637781374624365163174632188489402294342304685073427455372104928443683703286285369495532640388890490014144919359596591641212469885702616424913510734092098196619612393754013648881985190429899980938690239134701400933804218994849022007386002312672055164347588160921265491615692026570889757847839887765664900708507986436589716197100434290506646937569298247608066348573363600944621486694364746973028452468449303784446594167010056021096000235528668110683371039957863871371823803227930384933932128570746321051691590793149145864726866793714413703482885635981123943728022200030985636579084593443141018355899384796135156589269689198201602171110518327369530627514737862218928568183782304888321529047360084622402364065609011436022242702319635035796946840142555254828216606001006905568407663523083763454752588716286500728068534416355808694830428849504711198045483369267298185199537770432632190253702716789530498315064688016646056508432022456604532570163570197215839449516440761032920990419001976352734919175556859023462735027366807392272297887320475470120448330233321526594415685829507418611298933765963563203181588784726858294993870407108577141793872944795628381883037653697582506472413531386841892274240551089908326445079547896258917590449438122342997785447695580522085837010640066337082145883006781383430985553501577955201408155128526636339717443846355280652011098392502115289719777398621546675919291778334450866622836309643003418769634670879226300926074288469394683725840500444979781833410717711816836945967233092111052087969209195311736910460272304967360023403728569259648595001220835834913296306408664718062898104538313078139056793508274526883034574185790784778646530863999783371858277359495766694866992386818354090194066656367133016010391866947018657208427255431704407036075437352081376654444525298132919435539282635087199939417174499858083001617730677822842236139845871440110858126540539848977230434171357813137791154549210805866236511467184605769500007807045106157867388051637806337788738771311891202601912104074165590150007173185654582925426211976092268556043322684675311083127050304337238278312491889300754929296385129309860175800697151130473101047147266969998681481023569121102683109905939211413872312162557407736156331367286421895861210571340580347602523681401038661524594414914315365337413482347952866672712029320632743023422339632023148929119546605638698228314653970652526448310125576777344630558657593277877757346244958180002928875968482357303933208237341077772205683421382061569936309451325135249544957411640384058289828833160522889850257265424436680414957606194679213922029734123515509709553688003227734640568916624599479181540817277021880910668524563075376568069560271888945950285491197222617187641778402273309547058726530212098796401466573267243765348595926456976454881839032865897774404403428023767207558722059333272505994105663217833292247461160537354124192367201586764798279450783986103267503858108288975058569863252251698292580161342063000579442958182166997266318015636294375415515282755188364650215872085833317161933815387624340856073422589250650342970866273801376383963538160996506220404115515104086822684608796155482681646207450835083483668442311361438295222124503537708908037922497123060348196472078015181145061985306736094202938837379868497415543768857798654798938527969724283708613270511151025191124014822318942812274707861376567097272441030629127124273768944223618032674003005844277390979846366358609773761352552344667670099273253518803066197525228954004992955591652232218376983453789314009841199356709087171574029239574329693802807537164732747649030751539605034779211999469817620765569261850717614183542974477664296669154825781822302508966417017781049850817119587567611264297016665828021421307961247814428029028804197937649670953461542834602737871935793683551942375806702515808547781449402003152194645882517407006810580544239345149026507922066605102683354756548013242746610925956270652369055276179680809910022833622576060120755678675435611089095367311766092197141318035828035154889322928719988444230041213798785783194696055037366755631672152248682645139797570434608010081333024490699105793447841860529987314780528017203629388973340161560523593566080432087435868828251404641408749272042039508698611501184184476182946688399447523532716221541516774356960650883563831972211240182481256637606051456874139841065156516958969950466846998445050115183891772223699543245612498038934995244466381610653722530732101509350581780317682258435048465312334397924884766071023020188952370723596600163331448134787590183348168527859183756679681772821305028437507017654716495270020989257838245921404150651209076443661366535205264212453009836652547343139616592040087855090270614517607001341027512750899351613329371415007173492980696598311100418791581940243773775994193460401380219011169163281408089251953849317408676224968098310054903870525301636349440842205995181825628881726177185519538104394887898305703033896721675359220887874093887880251980233856097040839223935209850582735346862645437512165749113101888003474001038416272188230844589302316794657709542935030266799358440358648679496675939964491066104795695598162404587196096656083139117768867098910041103202535827228518817182868372430719640727442932416970647880643472442215855984919900076943064053509262068881067512076582740301374324827723048280088995819445108503515232518678541145030379732443933208775474023778353923251649072834348347541544887164279443935117738560681755285754700688752788943656868192510463106565389050503482642163397285901604269956519192331629960951591151499755020494232008207787272632008843487653764552194461949530854614268425630580291795419673811092795208972712806603473401601406066375454060924254843116954243154738167822990520897732912242881765692070074744310357870003619446911119762769712631921641952594115224927661009248981642005539374668675787593380163102884279005273553106304877047710312703386641637609031349345757271472831889752968301215308381698842217488915377884568741159219920010416212028452793547409941604452706785638356280282318386473877885939924661675000066951270203553635420371153316908391268369569001682303937801039216634083350782105371616689805037031747001378158749726547299536750784458741452046910189173908937042267001638615197288168047575790180846383976006812209373681264804431675542274049458595637868287563775941782180926906293524299964629366651731946805036165239004650389743388717038691624907275025482289158969075650954261880704628650635529670741625639168176745330376986192294282402249402171400690068903115845507540264791219312538057922029025375175699914876630772272413745230654497769709370015015064653062155751516636858687345487828615535595446198131977191430052015858752259558766710790875462880371386491283584491134535432606480646243017179938377064044199680754852227682309156468099859557867907789249109165546055812681662094138515763921977173623474425436775909873606992073638903400152718012886670961222129911120463726926458011596534767906211465834695315705966570429176881742857114201441171150393073996322228285094434482431924752859041654678342954231122268177203786115457610200889870579348986881112879958655447980956634176029373773508743093976984393027104435857803866745721472435297234075226721946480711905173005837433720317530298143234425112277011062235786934577402300586949757021768743121079979058871927970524268573272929340793331663279315774277582381136019721463596118526444336195614191360502577072379313311165041211576298666983780468033010362947720301963762383053934987546303919789997800185114795811222314879588695513888912196381006489003898060903982659654987489406207002052692066574525049457549794684818472071104580728759162105013420647856406399622392492350751940429531575424893521412457170481907160193320386187995700990628526627358109174399782024261172700347545600133251295253708254904995009645552913940354173927273522766140802859485386151475838884728083321095913156621007068772431434484293579817932314670131645308040703366785641417384202830105676416674535940370203462579409036072148767960051932771525686578858198633046040609448810686989786643513078060565093496772909330458191133749214281208408069681799645956604244848960102588166972214219004470921012284353357020411251395581178626882855361080164797496679639143880258301126778479572440010189757093792237405722419808837449081057295962910129862163784834594678218902563282819787422649579381995067537934398396767987684889926095161663511407895302596677641586760130134997271452815155206713873711773360257585691341421646839993954485628026814072001205497204356016200295572706427300858531838530512314987179857261091775467331997544254244771448963457263371815557208948508392229365979277947049569482035704390894122021636879454687940994066424300760914504777513363207386857444570272272399413324220073003286155556340960269341280625089188265294514596412276393511770451400247777814652067700445146818848069268434329595089243714995407448505718019183453551997876617188121999549849457664593100022905494113544046371809753332771076608615479555051516651816840483908926567335197779063404060545533302713283206094587675249249699357909453864976760817250632353613015751274672645209795010489103916045988343095219532434713918401857304042521879509079959680398791679140947608888867068546815239728738216073166312716362188164381804210383184173430104201614857456163915861084177337101048299981396709945904246498251602473646019943812036949015239225147373899278777903613427289894312260934422173506077092440003781258680135880675432515672572510990832099200784560032166868641641655790504313608095238907982075488540089783906942529618555458085941103764108446524830905831597623393479317879972317460167125602053355770223016036084612694456320273703629919955597125892691543293521861690255106562206509100355787863513936542014158587875291924224312161060120530971236055166915318017498758747556655978243279964352717593945639587050341617327149988723790964103618265227915372882187907222817828505684686109864004631548868419886329331111483752782658730999885952984356168534076629248003930546543512247051118275870521844318039450593427986124111875831913761391718413645038759156843637722719243434521685378299103537915327237070021136206107652593389089863086425944816166453904066534024895359265833537413149578952136931998783378991319912187574930824965683294503667906713016119815225072855797764609593733521226065964251860579782815903690850965546730374531946831149761491895609724597958840625346377263929729552461523049050423660516501539918017628022111116393483553944225363991878368213288935764450405361645413481780544585822114035410835793701352024932325174557904190332279077587576509505283114397708759652589492531041932791051894186682956294522093328477710444897226841725583571825257711449903661667653163870496333031044698045920426442186216587857052672254571163511425721445977883962141135176987141450511137367278231349539215555659530681401589387462356191979499242728557463870686841124100991951793684653532947787768226988529278954869620930215019276962935866314559111997543385690142182985720879166401237242193886062558233432607414956860901258401948679104038619885138519117742545913541974161499111729364429591979635649456288554450102965195086497607971100862617690370527803133940054456069497618978389239642449087261784360459032482747129710754680779139635079554544802076192215380474426187066955665610747619427814708289353035298366722146483221200274311496849320596359055009460262577978011208850450850878738915695221623033363354529276694050468315251974183538760043778828112651121101500530842968295686886152091926954095415509235887089622943820759384498995905138314965223877323806092204462409252977641589657421863197781957645991612864600121255305182702987183051100796396807623586315295185945733046017618633345972211489272079300577590520079811578222037080385368562470936227427261918593582206994428430337787771982910170343864861496149433653217857628203082309954931525012470375696166028288592363625734027537900335367056994054269556595057212114054847318515135042036225258301759739427757459014392779463197707193543250877108969458116640248737465795729917660132706980701265153909700026492330585559712124032367230670739810288770783915101470566324789942533524114502328182960122707341589302533344826447951629434015693606618831141206421698774933619647810776019508961154208094665344248810613935693877918431470457039374477209103320722625396496345733065736024109902208217391199078674164713654692630673213906657637677979498004129135417641974129357793507801246548869468421304033714028912024465832063940633572884070807707328971367337694907224208059298229317482179107573799983399698051993700409664179436430453335940038132142886510056145917180993807778915972293625852385313137769719864678724440811718810587255129805844533812682924648589767227837057709126495410418294726144930640131795583005638597531716838387968566160974050007338060996825288337834187992717382598319834113699344699144687385746239502745990062771406646696584850525825721896441588486537727277034662218408401755278918924784722777501826948409097187297057698182411926729960350650609675726331112730298333832164727203476456925299623819606432517834429551707589088571910832601773846455221838962564954841068696683956724654599020593606322965182095789281186315235208746740147024551253704806450462118759466589730025291257174822343266644335565035410234969804411193798317260711665221297465276512175953510404097685085305944897440144480991611339535448591585837365221954632259379210881939662805807002656667420551538398547807625079459046005575001123944642341675408080319231281253011005723488284638806493773975159346244413689226857589031208953046231976821356366745887455178417350498076805630743011905111497094308248121863660114471018932528220112027475712523428984175550675530910589364378420995956756726481474970768565516049556417012691719927507862585384588727526495541552326039592982878584688597245453131415933134929171093125566626422236532508518224407077432188732320755846758234629153313903488070037278068866645472564885863517532588529292357995430196438452679538298853673414774539185409104967036562285847177866223108586497584616629047264824765609157327990372971631817467026545623274886258879968346019172055156521463885883552739323260962907577280189456054354261525073787501546007559601867493793918659480218440080227930338023049232624600723901694539728062117354542491662477258917592340805778636381633761137957594509514620183053083937834080287207127469378284253792909480971928557421944097334154370071884252822184151377097175199401382202289072818743466109400985541116207539546842322492389820194992998446136405805007354509943563173285111903641497117007273042231664412210985816104058396763411863547585181266620772570316305353905232028506217931439103535860048623139896548800464685028308498668998783374146394845882078976293904500252338782673197638193735314893991722949797005866023216214606914160318469997734842883146569387364617879113193013521607391000319860891969486882816817200230932608992276718170065629616112353006593596655345304303779240086829520712963652391365333096494686003000817900942867526588027643415474141767178562664348511128377949553816014550063946630962788169014550838025984296390964667899943875265614671435972597646924436519996801460659608405033193515678537911425725616616718162333320718668521372887653528204091730531698547188345357482321577418077150212612027320534513930390344601847531410472446780526711258699901926165770996100087237801637966591677261657160893509658680616578558980379755282724360809451810209340506015751218397692421590123821241567368576986882567156081992313806811209322398353653454551570123124152727759156200994515681202046706659769047519314662286300069475457772792382079722718920548271910429631450654275589188703859225822494104189670966186418869866009820668709891423650418883574478620416182395419734191377472745953319137236031663421722038612408997387095117792642972015165795558966891170505097782530284626205523991233108426557288458789013571181921247215066099304309475434889604664711278951264826147661870060030259442319811727652443755950420507678426819643743777639335862259317009724661076617895886076431508520409073693489629388627205387836557232365126723539483061000047942546697416104112681860953166151903247771908439897682128073316388183414171944389457979724425493016685856540861781417919381728324814915046288789987292826221930931238156460667320887659240509932579418800318600332074881681673337994713393028379962487185265734539002413624139108390658620526775799453282689095359841289221781726541116834393663117805123308648003718549829343295186694860250223709578646666588495145011937043810381443743695418660010233765013454707038725725990090828760407474989240844844048761368252817088930324097306214512583998911433017368582132429467286949468868758978438678082416541760213254345182082360217086906001871588057087259841439378495150013081495670655904785102503876555372031779886011044750168566878496469743891381001347773129938516535205707612125855380745801842606874848807614915936770307638116083900657058790180004024780967485679403768935024363586738564830343347204952461679654681805259046892798796173584724230078632459250425145144524049439124642038921846572320087275145939461447864904685411557919903129520266360711452024759330575158836009780935765569640751919679891876744999460075841187577955722084901130845092918543742981242547901160866328624971752188889643674534945522361584916331762527868344631003429800282994348477138537231274738345193720323462618501074425128351940156653284801681191571070952343601233825289107713047244463842513109870573452475575870483422143562472686924622371756440047265639884827391746602073046949676728436357985409107708780938173223220511318885993716927382985774369691287857097769212105384812231201138952355362763672856637234755652748473314487852500546570991390386274393569810120513051537547797024490064557009846825351415643989725785593200016319708737572245623977701937152024679073477561679962191432685592340412665621897002210218332791027737175880921571955047444143189368064995119908812583298204136192153375663707398789384488523719616785158948788572950868214050839517679810726753388261976812944072367950323937691564646853193105607534333068343159992665171920596828186564893264565894316657781930872473903987570275128271788399427411459347478442491055206527682756301192643647207013287764669892738058452776566854229834821357543863441866743906099516191253393270711483446540481586897569575176009885917143399122940060067961444317841255324760824090744463303053647459050695954040527277289564285021256757553265833360542517072958540909211686665599011611531715366273154941739434594939250294398074655520550474094082275849412076840612360140745268895957438859860242061482581432450206526901727512274053877688287200442252155465022223704783804692853415942706230333637729944114286577730293085284051939239465242212545025784389458288596189202471400086482925161461108052295107027023807874006242650223522275538969545142595262585730519874945740840222542308048525961721099009491021951710171048325100966188033948579871783910474736025044439671341215289920582878027648177145317395551358983840610502280103654539208483269061360648917962656529611346563245530765619877412911479725751687432468166680236544109659349753707571409743000956513222933259885448059190185829599617642041588962586100300585949904656430276970444242562322794702407184109990415236542511846964165645812726686749812108492354966939593336448145138301087176999485581295711981252682204848397191116395581959204016153714119379613418697033571811722290857533298375049391982566768913294520286082886195317046622432857866100537524538015241260593402904475072676312365334800586161220390909715165948902401536664625062558804169879821568772170950756346183236770019429823278493472661515648328628103107631343792175479765453217760025509044809805429442953653331217321128968139901819981182519280421362257455051582513476457811425869019623048876638177054621305905498291782102372877027796316608883901417057329039269689518576090949231346241627751919355949572046938038095448782958232433244544869975121604594977831376671662317438507187584490335486062908709238903933774041269520479926342117193853868963549760955398288036178096027298365044659653517385910531195569300817777711410962777044778737240169086510713220123363338201291286424617873660459706586401390895570175945213279733541099890893765816831931063666891842150794893515550835352888300174537322794307043719060727423888356420031018523642120331827825419667814735878172749955820447457703386366535989066810321500480226845809657847722819486151323837432072363792431748869521819432917851005295478323290567140962747812923175749444287685573262119056888678027170378608642666759502448158581167874280750150520228236828396770472458549440354032934157706668637707466858847272771855596769267348941033777655383897206612212480757923099743939830781606209674277888520479696276810075432239357886411026535861387768388434465871455403458374783061748065212606735144620590850144030736852474618588216622388315143904148787631067963986547895224020903887557443247649723230169248558014452666629630779952043480006553694049287506772648790998653705843924208373958638159258715630174787403376655459196283712234008647146736657540991485735833842032396102899117042165151699853809525032833270767082740429488530603156846333229109567057007940998717136838008145836856169022732200710026643865320716040133797676472407349018246005513566109794332799262739687269480251726552195242836295713958404900367535763195994492311776579426972530821616064021304696817011155916184945838723882976288176830646997195559652931455739006274874061154141612445215947151714374408009005190443928051094069660662552554428334408990894886748774182198435047896379309631921267848096215065957142373308982441282621068983574957678226699108691879819977326791811459558848635504061400900220955680273499983362105741541315762255722574835842963687170653299003989720553768409536227035347963088338230832169885707916803411557908846523580309911069501774861068230452446977138890733914441986224165056673615308552995335123515773616878834125594790688297784105710280597111055102203685239087478162962611514783216267627999752965844468052723411247395493580513572061404906089825380578843321942161819616660510818931101407815453534406205790551374160092015442121931669214000576091342658124463689464247838784593565294344192446012521997426419031058031040868164622413062327541610002030628747876858453791470207112293782244496657640832223212108726887156682855377152091351223542742571626865388303333223637919198831250655903903604722344747819607876058804140294342756155294825318069736553111356648093728241550143421687771436468431260574655407652556766928178082627488621780699012943648270762485062260022626072236803726594582902079466573834545766844515816241963846569548590225238881883688406224020637852728687761446049226538608571220244809811443117618802063868686061923826828622078955528124897646154945307544710399681849125450402122894529866272285766097339985869912918744545261069398347192130904571204018766274040789400863685908723882653222025038165988608180956348709412600593158331517943791355610689391046315477244578086952980270070700194585182212825951550639307655048632853234684691875463701052449634027804771391687194397550823649636944329182979012206690921847546484995301054736981714749020689825544269841788714925931480688684796606555419076673124299351776583684101442901171462493550204615884348145214711763223305536026292261181830187141280105174194885603175333067377336332794637531048177723137642212041073156326611250064318293733518991581592062683879591190914312068960042852211921020489530324647704727333962553196773806770911383673268066591183422235848808174006461819977962895962347149631835770154695697876345105639431006267342550866329098957534287453923548273796770497009922947106578744511069888923150721779398141984603525689776592618202998856557975029918902106234449975486059394831239526247987706639838419524560005617883079761711484504650466674006113961498030682108467022939562311545796445618446134889764874777650359694616038796246104417314720082120555886709265279338330872041585930122740801892682119118585158943151181660019106871568673694270404202782257278531325125416755145607365395795080836865010585770009659084683983009951448591699375332601381329269484472017150118764391716941826171963294448229082859227865799025325395925897063126443529710306806248878179816226745469220563474116798901515251429553276684393060846561876966737944103651941069424720523013813740235394283031787406738730325190857663608644486882187989423412015687576025062991544670668654650060275530324501350425618259322350194531959601025491341052364806411781305526327134698361572310309918247636348938680928849597966934082732442900707935007426050678718782403392233007392090603757336032502950074831607693465259743271369779689647020779060928024042613725697736690032186883001964853778824163668741039865011632229480554736933461042865269686660097794957257529940955834106013411846496392598916125267981486700253798806337488596473476619975205799753604475191614605715626348805175682135862468552351192926254497018825541499628371221245803302624848117170790104001986551390436216854012913538361332169623755253951372127884075771428742779453596109782203614879102917596153622416885019868724268946569842931931444586344195855656673217678788438167286907056543863081855843265157553354136728353025222217107585703357965651270066000657918418110990366329198339170898523225112845370691254257470584838047098948959983879229644995270695957179801268650543765396980304756323940149525770939631073652088122942122086160399815994781112537479214506165911015119698762936944593312802641695007419228259649479437586348886349362395616994125902430363193464154545747295308193219196710391405082637137999524054420907800621208838948396824036554972482008714345949535582212022282925563903670601597488375773986424126956677574859778466160419999697543414100073234066889851513159501035556376659621913836811494033322851621286961596027839381606974117826306399748476337770674611083819831906348506518285231869209493292133153493967099609676844776197777637216939173017902453893590673115581187038678952023630829735833793477837310004003724800273449507009867972370019570318319351885484779531526167037234317584708344783211810716159545858051841722097832587215090822398850863185386022284772097699827474480781989578279255893645234702745443185951301450011774043064442232680663973000560656557740211545077500574961938347242166715177104947601957639011147627769723732870373546627569202123111016963117664699129389277150726173151193724305643799332811624174034945608042862191643408656602830376887341381923779119361001822276478416167113762047908636262122132519034571390951801827339477175289924972530920370505614874486235571050226896277957814169765897051652231551071066362093210734675845555116820967654627072420461456683896058546756637534382575542771473652219561860824334432074930184011501019971612300099589884282005293735373968823911642997037131377756377931259201946508190791572490560359650914273585240288370126554320856723211691136540823074140167021940361823826793766042588346094954068077808530258424898093504803415536961828829975487969119799583758573334195260468955840776162950040219570973655047919585862990567026047465726553260946628581110117354861940558881256679496749134531951055342491673267181755164262432699273152205778844267209935596410336912952754252166296096766579162735265186925489860876328470306819945228425394997931701739980733224442600490760561197263701122337362950255167749319457714434722403738062796188832241144957737728734957058339558054857117781563736094043129770484713242808061724955516511470914389681339966539492724400091772235671726971400568042413381045137224664207828697983101181545333042221399887119329144352542666659101821400716592804103152106037204614089630364559304084854883488448406606410646992892096102798650606678646899890426252318208138968265717208136972711585404976739767031443166095755855136195888531415890630251031425067625769555550938506561535516783071829581484193042603025643840982821606905793164593242437887025596438680235230146015696945655882763124355209764317186150404522621081808005951561050768148777705868372932930319809989761915422345792893540381294805798308917427708803858274639746878294028212174681255952426994369476140545115620829287983162087740967122066283045914904112546263314784921450820457244245238301211040349003393533271683830687975178117459794637731482142570951940850828671568995649062439703086972037066638644609577789188237147488116402316188947577801658534156200870310230633423669691855666232093301139251510948158274760117150919261693570577146422201897347448070512058819267253373423304943064367857587165485914403368302649988853652956144630900698806983406513105072122253204675928160517988488044865858444509747255631228002320144002696910279857099041177826986549033914018549965041863898760715007670099106128233287716800198599172452097650870410968953005893801832824181664593719481853027350812336247369364791360692908657119724815989369769116003370662282936653645218159616316627023724055444944176124319443442036268059353209694558348481440450781508314182396067319283640231667505563533487563049434025031616594201388206741495453854286603811461559551720135178981226758398052244416345782381931341847405665734557176716807245877818942548976072020890705271369184289120071236450779886606031444880421744022598392333462745476599365749465188217939112575855054815485235076758291379388033705220742969006310181168635181726800291925867912309736876485446560718884991886864141320782172540878502188275383590284939581402167724768891503360317175071816447325509494239604926717536240440740424799769291911851640832591898736318568210526549645638970398279905289910751951729832775826123884817351026680362445158685660357528811634777116590516749980792283095037992276718096582368672331554313449726588336065713708693279998871832268179932786767642916282327684368100834641420589037612182412910139253039723535326000991473586910270133056733547864926474044579099204535725871548059478009473293409509241699666350938223870416295557349673169046938639518445483525143390564423721860176911148378542642543402006626662865463652368856261104498349599031608073866374518601961876606457172471066307855479345239123856912047332318216705795387900554796952067596525347382038904207906824760037389434201085132336233387632213006653279861201529496832524414685124695592569649393171129246657792216873356607113379444667437377081497632590968679119690722640593199604348677390242577978986637669876524212631181504408090566140951808463582623185636918740591738590834915679566932986799747122915658271636938881143703661155781151837608289413152981330282155577192105959262295272100458400119127923474985180072785876974987403383098679746328583809968441773880931319283257074178741401012505939690839616444226372253449363282188477126527913005174076615543854948084506814050113120213400808195626542241945584116462443573662284827237899757229438692510408557072445808060411930273104715063613565562579239236799996460205112416129364647374327289241243654580471504062281538457094380716209980024250910210854095686129845593713739725392117101398129449015769388120430528179782553457789582357113150953505996918277245489209188387003682349289276645863801393086116565424140057116535631146745188560637630225036985419150487448797218318071796449135792337612148889335537945560633702434418679745701314405751756639969734599468244185338283299168280240307737496244691728796301917763815684411009544818167507074142477217482740112810710331032204499078782182989607404887626024879595234129766769640013911386169589169990178194966277147147704393800785959760147648387183229250406694794046944692542776598215094945939363880803727777501331279772694650307959301252074270090658514553738674445720854532410139977431489871401713731446939393406839034892136077022033849649407900510707603534509146185426519691285806522464654364841047062510008260039410925018974962229121868889514219313690452852609848658430179402244393959984043037155622759929375830860864996318243115501320952755176424453851462862618026347893630173690781321657130617385461516244394220956370589973397253817164615793185601422749429691328496904628433413860916478638322040613279206362941385343073626310426656119771394503132940786560590386357563889877169264687736326648512830800361558526619784309233011723638146052674397954654152974723747292982039527717934527013773345377747367160410082429841332485697086633711636517727326120305507344045331713023848620755162251395992587686290410449359528030369101389023670370517087962269157055321259400385596708918498922998343683590706288197184120291528415436995031271041605597871018990363714331617472250121085740091238406769655547441810240009754242680002938291612563307712855667684676458601184000848194770887114522911572382028484649326621154402079337024666173343910632275060169146036928051682015356433591301429090762401045682631701930761408200553087520472819337977059445021467364096715082952981701473300944231187977486681085034582981925663050660023603929967392774569001579860932135088953892656039580542512103272731947202213459823104265891197780114930849288749716417418045229023936487320739952757248723873781740763078472548964894303949356129529988328817753121764520259133617025455687132467516891649859223900668537710339749784057168776756456752623870693808061411911231812241436231497874630844275239310817782503029073088006675873412259029058194673036499268690235224369081928499190151198735103801560764245250575516857095383874127887116165434229225189540460545137207447712328813121451818842618150113404928500687089125176361073224490723703370542572921882783098369167790579976614863499464683061188540341243654149293689080270245776639709800817790145263531581223852144070158729089986967891985025880249490324948655168570826993301909865402473430807816681789499811656359734975443519268645182788622087009811569965987632390521898595939293420225427699756872449459434360440143830144799451586239946934509876593760128661744944002346207057030715268615583438100306571058259232233135958186181810301075760633140904012726083820915597826807190652045240565966462962789593309279704481981274878725003287743617630819323307946873553781661766814508421321651680193949142121902922876588452553548610181323725111693936878867302199856733697427006041061946526145819116353646061837718062121812621588019359291777981682618079875571841286295418702066176853850389052262512499156207287891893847513565159249511916108865213617545483802998915598173198271279996334584867085055947929611149169403082919191838597457972239348361571411815585082186278144173142730798030043575050483001130701307818287125236748019153025720426594787556964918672936382166959825857921996090625207222113897820650778905314279854117405205484556489761023358756053213258082091607646382418467464110447515216722568792160028075861169140555138788377444600972961450138051835806988762759797796306535482457365590997790706422774685330611089038191429276576064982715846095105272744541580671974968487428791459210879098938006584499849454574514981185837926272721917100005810351495798091136435608694713887531008891545780661897907192320609488204344282242381188494192592489063206118391497406452268933956719136968755704238119443190503454436170545161387998594607670028078063713493851213756516040517032268176056021257569022539400909138743716358224225014981677890006857397017517683980068600551271752846727648631543227860354806307328886794427042788715012072771193099092531923522711172874192203729941840407603847899880225964775723243712677271395454283264500429964103610122336181116868500727944226796418244159881122670455262488023922815607072612302830106800391686418644065051206941208534950477098319340583416858767168890932612455899098277834742867450082078817009533594293472387817562052009834962509057853294603018570934604547341986674101670760298501157694592709460819612271723210499014038759618640102779703285010546518899328500656287472901575026552928602424884520409502327750061208379292785637927921189425749951897140401157953928814582754908716514747249941523881251968379968543868812103859905311511832155269471818162358196268681848045897310070495817460956356216788592386399370795693289039840722744014206003918820226644025204722047641239663486196982822390385666703540968208139154149886566456141223467394382514021047121364348558248419720521264149413193055306988190874373567907203399188449559103697271542850697747200295570812079176592848967233682163637443138960764942358863752332016613680663571339690938000450786325979710763648348698382366476725659132098751635390245565162282432720788497977507667932807107093916697381882461704481955870267423941733689641580215802709336556856823621406970893067866477985063562091042517363042735887908766016744752958691041482218867494261864748600995855420730236339287152955353874687143061353412675193147051413500591293343363526996850714707648230933332354401612415786687804109019278504815087300202340703751027001676673608846012770413017948607713047358388033425468544603986468732491932037702447082716476902444407920741212025273552188129084454685513769674394727906336111478638082180756458763073952106738792456485535380275949765229308676863570289362408798114987573368413250924133833588129237004654609549167571974366384244422035794833218667675250593806345716288083133877072437410701814128587428847241561478106366068517929994358282967587066064515711752821833715091224495816391407911780228592121054024142539402084433607031370164528756315114074495388840148950329202615679704963189231426469541157814275771473823838941847098860946626526914801591141972893346887833026075004681866752557954523663300134027554056970006784833741622379347694789856064531410244644245312929068424180509231828079106678518412394663538454856646240647027706593404453084059182445614366561824393588336171215874277756158584623841809511036012861836172911438661861255567195654767254103394751488571998364223457461289204808352185872527616774476848919810710639198257684718098704002595722470751465993103498812668897449252383621269921994645242353277775756497471608734005402838822510417361157937739087782908966852679768837594141378377827150920438323690362339638549397725235769017513051489962101785875783389092161404971930496785201889444241998457951607328635166088746466402023248399090865948245698914375850061276288657559781559454799221189698626462629940116273301445897081004087083331897177854363122117759409098763205789555115422730590033822669060269562509608697701679369096939269242690000066459819342144384589431168165048768499512693816839845915357234090352503816018745981004741402812933405811954797845703080509747917353618852453348503730884642194361983656044206901052075537764652290824835272928075278762759911392510921437568478203743486700112708205513332873563015274891136738846493131371290170210775512500662561422103438098599085092261551287210414485022554834210565443740932981431109458871187842199012663661801949645023768882481510731017413976178736592320389978071308002377335338398728582215802993739794222156016411085454335825372499251176806187330411955865240108445236009065315682713054385510796726610607856084537354999380930812797313031195753523940405511708479804423868115327458274945040346874513562388230296041403128326605589480292018594863629664361922673630427765967800462473937762965255759472098858015669456830346655609294660809016829866215229356843577055158549307292645319129905145919241886927909204973473422276266952911813349547715343475267885899986345659279024089433574532425394527016880014152290944566139003567178012546606931129387417924761963233647714515627604496877549703849616885217620366373905889908940044838782814260874434131417063925485375024095794462111099916204219229737118623706351389032322494887150014347970470277717780992598474301050994692771698279659954140501075751627551699320595045081351573702849720990782063575507984591897431238613165738485954556391163632111743925041626520277816489273684162115339024197901886862013923602239731979289026422936571220924371196489473798878534392926335841155848554278100996718862787950947556105036947683647201404366437888815944531133520451474613735249308064674871467515668005246079558558143349803192678570192656450220437266267390820545210878250440291764885839198881588981113849455579112396882326376755897630489422565563259219453498985429416900100272692416266863455707430251049689639619885594582761980952761886834836220837561591189660049342694086026311585882710341365266783551203072847176691653528422531191208741599900430317567347695073508345558264935665371408804113400926970203986183257203526419776407204974184964667865665354625795776275938504340551975330521840986258074770972448069220122368647562673910025990914249454596033144123892915760694955081115026357760648361597538407431828258623112303104112083237513004273479430502754622533891446660665308464815771485089246294053414990178585458118965127456753705649919708667155251440098152991272198036196638749444208459279563574589853558643107740400038957882492114539435202188602957887529667471403964885761366043682516373316191710740372373853364635009471509148207865612099385693376426616497239111983065816592264177888642377497994781889023020879155674183714686858947980424415125321633116887850300525562740815773454753014127426932718311904816043385945447955302775317009021771274456524006277699870519695800128712487990895135485200409144778684113328743506670346892121332614906582277057981940193445997766542306461529343321708362373089725461360592544774134311461482686536928264383052330361489509760431108048030940604747282142529824829853887316745221278459933587666379370267755384779872066828673962775641157160368054059538214406764798239412924569398735039863232587575174420679061838278142682335964674516111294722088252168128328272743372771455498976563026323031939629385325779895592568447944662851412684977835656759497373575138292350770501555135511846603519763074820159027129212055392167886360374615118013396614987332272573507085451002659515382959849036417148596035001366391194135719819571782074868344449026747413090764300131646794459822048099991764832081611194844564176682871842995747288657464069775339541557584906461887715083286143567254505075093712474944345362200867198619291477408534406636217095273101153597944501521006580977824196337479523863317502539585805508632616470626527478649915915122135056935911727024404413718735044407283158546305676748001311602472448599379539512794497690122262759472352744013133870509300670664024991146049772384831604269472355367998490868644450099835880418638340226554292754096065640254093342942859270010057134612752980209048318644625638810466920417992010923110681829468494132293831879090646080887428985398433271943534484368155423465697425161376472727465663909179926849908923822689521779034733126808654130945225842456875208640724305512610482723222119484719780491806173852328044897565309515992434981573712261023177633713252369134571981863312920686583734369372945999917810313303783787069913901124935827382960252474452951046010531054767346549907198059070877476947624414376110979460205298436763568371944708900830824624513290900947468857238978450174136213771905045870519812084266669995143070255631770267761302728953680830453576726175824318405385209344653798512211839280123071327605130840710069701724495568429606821443979020581288831922878960873916863136986774521999237527515722705296443064664104942877733644734862247621502772199405428350074441968015210506184987877715704829394396903775800573586304065630846538035926313541843198359169852701253955866149936992778836677623879152314952761556852601286045924249957949910682215490660712330249794339616403923210455410216207157675748732682039303502368091973328529230038073197175787993750432797230343392655299745606325205975764652702402219183068348211105074412453809483711601718289455412934658823997466299623910193782211288457641003986209049493858001864147331071876082638474504085466586360524674656898935682038713312324652165044212725871528832820297629540337465561757278487275896830579718983287224469220521591019656540067182930753774698045284832037182840284134232391317085789423975559840747027338554336805105962060583060244679700828265710802343394926989919152994123643805045975750176163722199075377643729275013881941202284533471736790274312131767528348980212209393079884706223412131698259379285139326900829595482864820168453682495879774732022187798886097880501953512037991849684160883821757752594414262124643180355248064812543380621367582456981722142042506774104916509609209100531634107276358368351645203944140521530403122799897738038072072766622087612499950457557127336193018518330032485417332894225328741718544907697761255176589950928863338188827353803660432121743206552805323716057052158715190144430123674901295282450380095588665788762718991625399754826276536629872986183947910152728113573540047887858005908991678265213713200296517377603271539716916128094697248614265411872641777953464225753413277437126181129001774759985413410420907361423227004690733309335184515804876626738147500733431245409239563279037825583996715435132989380261395602894030086763943090474143983783322585637514690718184139301135819786975981836581655999200568632427006203132652854740710777010529763373156209713994222992893258024525137565883732514731437825731541773625913987091908250575760750628382583964893300874342842643445869967935622091538017835836169409780337724863225520188400176290183163812397982158637313946068826508812791277991430484141874394840384156176165302786686169974910858330307066599330460413413497687188412781372284016350343538129584610831288152564874525882840460767097013330687484456950617507660585547090182740704340523892018644060438440917827716784038969929282800984751205654767854141548743057588984177081718427962720567272435612693905647433609910726334867044791416621830665230170160052175810534068766028640419709229470875535624218743934080331910869172978640309010811898977026304801940412000134222111336057939548716731536365397204775270974937538908774837158041357872775659252103191615100217471732969073193846208645830830483668093367457355438584659619149685197204854111992596751280144963603640771278986248507709610977022547986321669873295570796821950463785949841971816774286875370856115902931351267817090509786471234106132939988846361764432546564142287120158015923580521720201351893225485599730078277171183160996502786351911010679278423478018853099773895084439158170158466878794755678384499322907489771168136867782685665950516718371733539131970836699718366261480827700007237336305404269943440028825704196569172463571343877864585073479570761194119721602219035076439307192381855825585501750671350161483697211894269333431947389060119355918648663745022939405687910009428719887983804334399275185608485466024984836996438028749567395207867624103459096539412843762451449986120348842244298534837865254658146571597745749460115358688274566609497954005105288556319815444687514618293839817870062441695046076019161118984910202414381271032366651558624182289811530482673209104269154360827952219324509901693611036227139316105478297034715733242378012114130630153884886417729038915956708679016248269706327842086454803813556432012200498407402150909698079568674489106080880877563056869998495012907357461195958861844844737422072739894929341939737840430364808801312183185401606821713951749029587260544560632673928860525594319606891598984719763266643052677419015377097953065542616873063300952772542315441504499065598750205940198045554467269382556884022186192246581932694289025905700135413602787526621656481601743273740899322631519666735136853460281176334767918760747522199585233783398936704191257046400803860451653045304555491027585200633962538845505858064270435225395143554831372911533599734857436314640888137559022448122953813334982361612829545270477797502158878299734172169425409695686143146893770141957685199757897829181573962150643163725060919133999935010232565610385871377697930036004894009118140532610940100803678540716422671430592994183210286950952271396573728061161449932274406895705480370588735035594927905309273587573663884987875050706263064560886370948074397281105627412012672756536219100583198852466425745251466560312940617649285564994657171938540693589614062247117377406289085064110198265813236093933402279145224742799634622545476429933291216885372742855050348499087171954982665765127264880553117084977352214018812126272237125525752294736080764904677523373547193227313762650169965977620413651038031632395722973323132265661258951331985727262066040558161876114066125017920512645500799123022855132533626682726971896878805739592502991633425283039570251489131800288299469455827142159522197500927409721361384080547519943969126752469050589452961761171478965481704898430835168521581924848917650496169453855880695990614566489922741168220824679531730165140503166392511883097534280577954310643808032267969663736276842011918678640982343333851189555342433105429107381052401373345969708918624078251681463521760229366550124604949311385477872945161746037124805308791339692656805265036233936468211166297651445644304377658596821093326208706966938428104737905564870285673484615188124660852754431997877584572549599644768531399941448816140532400971828491124797456339743292608731076763183027593594315926421485114645348773646734187323333963466840566792953618748699002596781917922904367948237169106077699566047095428737035259945632292796370884024133932416861420170863683997861539424902307036401390810761455964306711603877394256187872305159366365371417092602534383634610170798813828842248813402077969157648365200200200785915527308513578661038707716798704222343824559971257454912591222894815590804037090899246766269057171632266106397295605276807984723293804789297783093563852983137357682201913373529099360747686770973346271277639755443249730301258495722567835223314409487837975250234480644313089417777746835638721984082457824427818403528479140941722792012323858054793020018632251143882894417653331474814316108725159820019201764841451377947310398820837422933899486234713551993479640744887506827090981461813011509517874375010734427614444505800792570730884208945457831525285628088124630138187886326798324085555148571262423708177011290225996514197884024763537244176755301776245669851952021717175106092991553989020311499635079595525772671797416835157949415601648747120119706913435839834669881380223490181694675642554702956965688028311120753258451230436141926213506247664348205771164087142968285520615681741857142588741861517752886752932219397354496442942413467922618102671964154653716074294152114546309731913035421113294327560955649910322527307886943217209299657955588061789900249046601261654258586278096147531125116615823685595937751425103438302225718326877248411459438334006953234529341786376576077352783011104581928089940196630322559665550925400945004956996705135875269177310518970726409703670286945910346365632669512521530605674816250866510719043094750494758841455095736534183367723626203531942606218633365306873641080343443617316973880196757378127883413935392176097854592994492772628401707637030158445197298799631554332139582492383141706256138887117921583683994081579086540404368439024503102073899979449964925250004730249581683544783552716983968046149778711523432715026353593007505476966059662702765008117823974091737190556630636644227747738828897931482227382849631329935296011533796057080783905617463304059778958364395813870563570627290965793719646101271305029426975962120578197004120915482717961326648069198677729366507666978230528180847247049570794375993310360710765105926290855640045891609640214076015698185654724148406334343290851039414353160914370576512581230655259303205965079270018616213049846115186556562712761877743622012209404781975785743564026868280092394671108708993416751150272401841129816931865997472198715926855031880465800878529144705429416497499047355499062127162702809672861568606628733285702543511070679306923121613374098084489465806465778192621106011306686258206448685410239456708608807603356321647161497922493963710562498764237687387942522814313783880404448518132002718842645285444606717693265185607057147770179715405232443347499637602297571407212066790992382516538049342503619758438940827375551145958103610187343408529081577775297917794152639476783904915069882323961068609967319824546906574282809392670167344106582199444605855199051742384805485229319373156953412532941750966163165981103754434836651299211389850112036180347939624366344258527676174906059438406781978987673027482864081370138250089994319154006688172429739917716365384742583131013230375963136482263525382596732760493959544729164800467977453389615537329784647260290385071724364619466719861764266757842314741790404414435256619842084568121010240421109817806187818113453337489300082058347066778241803167863684042256246308253656213630487064748189043727329601498630859360543187712265926362482899492057645860100244735240456178944910225476692877126849700414961551836961516440559688359026163976438846083093602308029947612486978116021121500454462822524224365987124576106748830268213918493239001934921882148412991145176128367613539667572689511132829070822344766834947716117642736102492736712506215885506881220223958676954084172126946702666620828239064380829492224272135772710882068858514671882729094593318106230459513340838290577278419976704188895683385912675249729082837369466376219634073873426993993493127218951186907961625846332076847111180057487108884271794707861648695373342663849702354535418843725768268993618176439095376191981154365774954230937208045014933990558811479483971070584740116868601769910303014912382897509871458679587217988124272982712040394561011630521659770995235932561528929735717303050863527277156444329736424313079079586616563815887934661729609958225865000288764415616631667226128837527383175368686223573199542876508753583055805808753652170429407062561725110484919874123957878557003160817352219496349346420493311578304536905390510333666180237629429442366582991773347103944412752930931921603100180016864165116177819301994190497593548708682779312641551121853441111088208305444809084912552079511065987709839801438941302180395210541426056007555003554821645246269902244385476818173265616431386413204979497549547695830377512627542196016437479236464015233905051680516617395515072978212082157864166431967078776653215262524063826295677336027036792301394543268959075103894053432356458086507946749791796673097231724690375312964731688907699825796557635124776028513469571977033494611752501473732884428308212201815853802153323712808355059893623785038595846699525183949472863829604815130882054157179659529368162413930284892525423998148138955096847856859535962080605513305955038091371483343673463983273378398866162470597599900011895670469671340770138909937532830331714216358502744527819148987796375725045330574900957557430547556406031051551625345516714079744148638692212802133352406648894807690406704841129850980341161863687032451265267319219305103940758933368305072973048992719194892552242932101074326589930560591865501411121734478628103855737641974367439728629144604338226286591297161386991487911939840760757922547333710783797726835378044608874853829038541800245542377863380848715192523268661899770840243870149528858877996591010217274397079743823066401202693765660916982068025958727021996290949637359497337873048152521626250505168805849192149763616084016033045633073914299719490359409002006645696623643796698563941898539770634656622670661080056608411481399528035019141772779869931740724770518210985176660900033912364073554618037014162262449388574628589618805830600215891919026427302139386972662063342082089379482247544184480295580902337832985031939014222609261833394055151712805547056345902357551653205117317834417878187603390635135341718673900560642425281894018163134926621597467852657442133101036366091695681784052250821625504667752515410089310527255060650261845482496306773276431580714000199817931584343752388674402514041323991415678533784002521287523263053194297934715747307087261553209398657116525131273932943003976947289063993554866006256067324580929561871944126964605068797883797442621071913530152021349027902914575814410808194659387650791376051022981925393644354540185749142282884954788330416785594401054271936007603942103398230594903792375844200227073958378550934622992334751400417390047451661706078214454966269192033335747041833184327740137609269266727791501292488060539861131480156330598175717734679900154350004687319991233224564784277905256003963962552350606909815626863539756039106394487016455424423361558953790256396646813756116172700539392209408372516529888931279624130036482535526883047153448680251230032824588132328685948891436911928822559430978001654023121284432474431909977992427254655003876042034544386136585223960361554587946630758445998759717283311444412768562343114774627236939561591606702041607043344798447820038680665352046919218958793033710290728444414640708262023841660945507628802341401724075538400782766953870392308507140341168200844736736482462191450480412299486050996122344136513949881660248557194253939125370468463732610010646336180282376839759734570381003818713990181090053274248272221808630196678820739846521105612246358180810881983663414862021923592740618641720691453666170570978462326512246312727074423339422459197197427957452183275759962545099115210074534752638183524621351360708997347226572776872783734966744256759365981355948051557208883175482607590195422647003821887182776754305077468604029153913241624440029590647331476814244288854447177970427319234820159923091179352823543889925208778427493353132479501406538381401126749882176072839678379744357543671598018505679080680334464281684350374631745220478228564207921269171533069741629634321561419972240666979754995297573393427221420485718877903458764694789139926246959710282388403569942826976215632047051746750432584887487909417886125389628052256578244939499437915019955536283192941364590236077609583252153310111359322105296745744678011037548979850900864952049684559953349817487016850741917845050236714854536431713274715571275449396546203864996714375101219251916179563078250386463871386313114792356771557222095177849587435323511842447780936955718604686041384642720093562499216761017983435791261002002062636264153058030141161514246793536900681408918387656003652113618811955616849134562703417352510279299942358297832471679246857097480489525383883747252843243202947347683908013382708688905501771430535397900019171622622480301543204775429268991212733727169875774430022430582018976946718010989869438210636401183918914725340937161890347177240318002653994010047664886307273145975485489963889078288896905232814987323395569570779769903961410731336884134629225067898465644657695374532217985231554431546466573501869591957348648980192598141833441108884134516279213775220357106753947866726062791329138638941193688039833716072478340302761332928350815973210335237086690054807184602861515138954816770737112267902813622311335486430613099523826142487281374929193957791313426215717965778392308262889612958975369765610423483908539663962207567620440121661104983402379836171825669320413419520359427862327835515117699555393246218841292352445569813905226712906919787595095311022964540016738603764151572966837863157078657165293436424243936132132815381957345494424210743959848153004170626080285227702762552288229462705454729399761698420118638236544281307534326096613805699124716530550430263426845144253787319888027737196304971572373739778838507568828833713443496127489753712744544427689662227220131052986322638024413834864148190975315430239749917223966750816626171808715258676875890067970442413547831388130823737053734567541758311275126084059966249685222400796987824284209706132236332746466948931928538166049022247080513932579394786244911286554796210111622958489487307410086619257390910190647293803868371124926801330302335330318678362321672610886455764372746648820377407460374949926064167196067306137239808488383849490692592325390169588509841458522753012957941032217697849555152406477252804953603087606094597613110827980326827653138660307110380455515517922037925876863681199304186927405068017038699409493996661894137671494815981760931299510175415082727299436848217769825459422985886368892681405730284287353748191356474704548657995804887946769686455369667760158601958257859953217134491077179837422989775451404668608982596644423964597151578847006894897326438504432558721074325949019456351454508851456162021726325356967063357709409579052561971881913867017640114507367906051238887780941765785939827142909387708102106592565743868138995551035942472076907893838410686353456752925744082633713504286222619004228188878831303612018526648457661906173987530103004028105131020484784891664929080518356659493385911917851154890478710165068785306601138620222614813673030972531359078288530891575586977085556787240002212887722545990067789383566359507818577805552862775963727721867491861713208615671713513898315871596807689432993986753199956938694405973900309318408828436860324045979672360887067179982543651942267733428576553023353466674198455077040478315530947501745764546521544315484086384466729277535509690948868706537783686985480102233322805475248425879764753035715950576651813080590125192938370621197197961134820988562441090336257562023434292832472197488656752774742781124346063636271644751568291979877525620181301144460267861547783227771835510264352906848961430106214310546877548956630159860169890494248857535401220707500444085838557639226078824362757095176415374284781781626081204314573799477299952613374172531005343850370334151249102934070218383040694834609326067921769594196535741800545235979808776069433719927279006465155146674923267490156196291426942335571370218662810246539497876053940401246430599360745519716694991076073699661581266925039542338934791865735152198597657570713987519280630754434865009359078485952092686174961929789863676624420780980157613443311848337024836115571762217625503300878923962155317118566587439671673101699735595492751652875802791235002027818703266720988448448018114625136412751045086766495848452211964438488984790777534788043522243017392061278604408888376004443403140832171536493048978406350714870701920272060505984259813400584151076347554620619676305208641611665613563466976229082658602537573981818534879482927463445207180315076980491001391352064717748751922242788602136895749144491459432881722932865925281803467965282375422723941086476025868794414374038201215530147787359984424512831742559237829593980185112717404437312336429961029936521980778307458466797184053766579877263271301905869359711920850370873366450550509247749866334256029329014015772721088461057223586122734740718965120344829231044120014481660076566379881080717767885312737813594155529614137007472632005218283000989619849898877864120742900816948167817235623823004875233002237409923374698320958109524721547069436289958346856815495689676640770693140991491614145079420676628902837207256185925074167021344928298681832597761337150026575661151321930460506140002377777413877147514882935232451291213987125760090943285800976348435453769874972759146757314031993099297384765873247931676331024734143272120119183757532243278200798567808433366968700998663087000180260705053992537798963066931245545166077057591870336660951205685625681321957398151430110502101207995400190933510426713861188692589026182891832483676473271255493543896725764100196778632886266505786153321621315489257436547109037736029526066674204327233630302991242919481047954496663110467222934829665192267526381672132722569958552533603339624390365776645645413077334751293592385661982718803062421793158247400303863543393369362823198777082104402194797318429573135086849010612565676412982868568354079964392600945606768088145353440527039957925923323857606198670074266580013746727092726785308596526774936709023193807062317550437311442392078813849706516122482293653690852478176059177681026284221471835438145543792234442097042042416393717496325586290887885246637703120311347893183530886813282138358661145322002224918989354264487803172354506447098117464751734941077848188570430262838942434040348831951404460993249235537785244477859625292727253203899090032085610389338155117004406303858072658396482490359149693940277300402340063778020336465534437634921762334486147579977707888483731843599992138468218494436987372836224700572918679020590526300872759070353893812090207492082169195001166511473764104231640810226624969066020116913051336237129261141391693080009389623690768126948608091101630491851912363547418993268179385504517804558371106540129493695216562456512378940982973472776534267172131226958281582842961099853802357684573713460269086772874800176821649079331479221669991958713163742341076911424467421878428292287025532254950222396414826139345623906803450492028730267060592109670364849358611593337144531268875860783944153481369428657381138644011962817757344934713766458076284901576064634144394365857570153466416687037141262741724771285638938745410652055720244899184972181406612352950096787579588155223440476986843538572856875337427496501824944599398176792164818787092959080084301665863795111126703168574379292940095722320172565723986104677541968856493313346483352705518198714250810167661040497441208961656117001243801504614032421100132964393471396953068862631878530977284281965457899265945180385452537245277516988985197303126376088645425699337499901869408130644353782165971293833138767718269201696175898729360915791237493306358480050351768913565764036886666912208172901067545317905806241158519636315597663775280850818282225416730037909567698028421722642988783593519780364053223649588913761358049848324292742029294309697106694381014844243013344932613214512254975734253236452711809690314357301922008243273841767481680528649573583023667355916634564572737776298228445437188391728452731299381754097598926669938920302602803603687313229013891736483447535940889264122530521964493843203064953664574201624217364021060874004486508099867151640014772117383859646689722462694808712311294976013198769958596967767865013371813577456778871507820647303330391945206475848483367286275199154742825373695384337471415298568555169260793577036814092951530962383660002415284341131523260598648829039334760688083234056469352107035459186680456757417305927716516683472677624738213884278745767558242580153220443675921018164953821423632079799263325467851252068486593941480438413857383108011811816772705488340876203096984386137359502749434056968446128197861710037830090402132191780791951820642599845388279746176695786885738916631775550647255433813139061837543843808869941588113894908460002779710672428151952394283323660238766317969517373774928465103502599560530143020407163758518684862100911187699896829487869444610922806564423594153520992945253337712460254000511612723912292487775329359371070640550822579097043318016022529233154379877264068584597914199010705263463196310996562319391422086977769171516144373456442728741364976597572907733116144655692152696318459728218192425468249632338752010804295501429693268252959313880180501475483362702617574483495162650138363677922196633532657229875512815947203730101387459883083170866557124441026728525227021234064691510626120758360014716939741688924156949880179574637058048009987182070901133267536822598540193190760074891172448359977535974548676744582663182213009939764447872470002091967296274504469867789167267720893364933365579633120989132504330020838011363353596586288718952403945244143364205282243235072682718245291572037661603979883386563529720689490112630368255332370922257322952065844943159800526654439128980152570201695946746106516002548630172947423030927695441489693885691997922867920415116305935330555796714335813060973657041028609336731705708375083861755318247403243663497344233415965727077978988598667731549658370973839615417065164585794639003786318162659575671947469045591663573769958410626686333135966214534233502132733540997678242787750073119866387234506691524526739846155052045759396885724083607049697230641002146196151213461399411019472999154219278400044084206868546366149842031434613581675863641394913458473303059675459582263671181947804080933339286177390624294230489866559502628285672277703144064364425924992881490770816598430867488810955734434798054308080573695779483261006826306970435663902625084173244162919137606712566225532050988453304864965984016633259006228563669298315632291631790567273048646621989023598369874851306350836046968628857423815235811209945359304716552536974834456519913261661533206141207005830572218048268817585388335240792402486975024291111382225312465200826441002782936218390321410097109311592423039281876706957786139305713831946875263247913919350519269766778718433471368258290453456985230358050045021125349106362822965616130443093537427825070387909436828479628772059342644541876024470134363724093758787211711493915695999415625175193874963567848299938225676183133741648251644195098119953737471015215766246947901901112422103546324823349822935318577211884221483960065799948926973179802827921372391656349891023674238311809688839215592134634993750665830260544137774631446076779985408205914198299721609853653693059704165020743051349635816881524047558371012745934103035471665671723242182962869645271618592019123699667885997186804713956330158259391605509134537522553184804292195930445849381290961533696149996320074865396379342111128800888750218297273725052612589654441365126754430173473749937261674892159658002027747983886584144167893669731388044659629253580174252934714403854383237560884768845440972263890173076689794734288977853867759118739404958380875605667485766102047055300865997241644876204227944758238431924562450626060350710982249328806916914032098996132348002549455233357332880619870673051371302437361239801261282191565618134952413883434064121233746312388657112347188570559161293322960303671161855147764136761422924733298787750225985040384129011495942033580156566989708070449336805877825239147077029254237698537549861798781012318020386015666469557889930778316291076067089454972472848881541162720941790135030466620532987606282191110233137025590214189373432881908402671556390756909580813481339632445850630255374831559829500254124208111386222829823723982928721622805236719003283910454213386878613562035964643910764085087452266848337750039082075497065880099835388472984356134069060939422938825304268931312880325763237404248453007491479981316203823335678584975340298055334369693903025588029632316722848654544337637328272834768019650391807495126441754295505049829357232222283173424763861434356867978191657371960677845800916648583124993165062925417470994637896824935753824175677317518782552893012908574161811817456423121097596045214152136935522689354690772733940123586936424484309045079663058049262504071097109133205931273685448055106319128342455983609145689368850031440269661204033840370144929216854486530994357451928166632793247761264071588956235506966770730888279486865680307833668766642566428539586170784404164394643843097356927835428235633528920860055514063680720489734994641853543566989102641000637593244141375312224483196794530857000188268988495400638113774929306113726723055824443167255136359489152354166806641894171565697081807596698159104716090568336381354179949174080093388102389840222148989173806036058605434990161652017911416599434848772802517808102170695080821619009960649746264524701046913344152660605179560037153129532977913525903676512817178875999034532074021166548148238725868401031920826569696766844393295656043697128356803585573868346127913161902648696335869844450343117036444327562080031315974408973497588564193986114885658591203336713264624550970468492354714679933952183311859132394164700734700150205023867689905109425194937408850031185500024939002776876617640486213483711652166642465182599415023693763461828878938332400087133860813146329076208709033435507322051652237603936044986460422142063863454831883195695585011956378764561902856805983748698364799271690075030715663205694184212112062220000027079350646346348062345821266023089482899367503777739573685782530418271969178636708981203205535258617418327005946320849918004569794300904329576740580106122975258034305523297791236986321418824211124050838182981768521681266320126231118452557721217515624200507454677382446986600796785285872734368705993601875067510525334104396891254541723479483173119831252080328348346510607935808012362180799371697120424295386856830077344090059559228532519954680533367105478894750344013885023571605976815131041148263432309302628014374854291836670484525889698359041114873687812742216711526335251530268798165079215095240956267783279820473815360263236349721031915276908459518312081388336108161638707453811203204108868460104417585602446352285879763995366728699331724453801945843210449199406478677184353785504946269653057939735570817640921920626265930787335668153997581579540915176573547938336490443862428266382481584674555011083455583297706740679082995249231823802710651071126585915684412006582813325833953587667156109272201444432692744547175095995512929604151309815886428105533201829476781291911978825469525516555906281459670727081149011554908436891470539661419129031127492623972360553079480561189977167365251887988227966497408951835370611681120889168450154172920069650215249892178965357279188337907722755172961683005173569933736806885483542783472119021571166128016933036527897320686851796674570924947432012015750399408629016257549643658884229697520727614130889074117603822441475534190032099613219850884420235196270427133194899420313198374220693991337478282619515657658809875529390754298817618800254408316818783576140744256993338695067626844261727631188388332657572609961186500398685070582947245209235034987926375772860110601410955230032273447619030450329045788972142413900633785026655297097783281983767582262700729607731174054517895923341575330559736804068552218369766045749554722704991962022586723223339867807263262994566187085091696366818187699807373988924338887301712668955552506606288873967846294070880203479842733005141529767834609735580484543544628093679480458433364076245835779022904915571870938886120987782493421289902261650626434403709806244756609105520897561938057704235283419321976129155481599310962060821099948258295936544458483628093088227764466698136623438279213991893704018767288701923650746229118341700939797447436582408715210248693789415774416388439670363107909266808435007547005844441348958542829977248322939712243593526876602593464832774140258510411904231401817776976591468358263884951534464638252100759979851510226031770869309673501134155954539325449765803982985692356201767502570659493940612824336531270037680179480582763421174123762105701303441671674019466727627395127308414438027345224426608348586296209263416917642622932077111507838030499429738555243581485152826829740543231465057704090088604741702577600385345115314026549779380039140401325520041851503556615534076876892324326061181067738798686793388463620959108463595059393806217584685598509948039194502935224389820054660496007305597359312604492461661097646293155112328904434389758343832987117445915153687023919767082016061517842152346367370917286840050466633305648485927592803483745671499987665305041120480823285509503841384643195111010948087660266420260560214655916200884860781612672311989952771049789514511580634963157176691990167131188809223003978089476674130855432381340058480204615580090109207416803757100747241592382214983646338613586208671699512161424207477877358572645250950538268964593949616520437503245977136179552555585801631603318551984256102174815183043557827876373299811439046889201828986813332498243698810210407943889791350333515660585753299057797170127675160429472391408597051175463332828265022412743129180685714304239456962347071688102673065553304518454504414503039167935898662142014755877662803172972401817401932940176250421101729550793407042573536084571887122634068397495175849370180344932141917682840633778431513335165780534323073506437662593132287639854112726912000093490488360693547921972359270155362002957350973742225239566899699004152662881914809034256231085416114235835624742659587614752583074629891990953309347823160132219474172968433799750005079174838711400887736866875721363526586322637150201876408518513324321298738212686616749192848282523432460372182681429256244608194711398738947370702023875020473109942368787178958669128816501968536073206945766970344795809229034343225678407156039227564183266064844905996897585003348435685849574641989300518946569668656757788078336229609217119782375425818664679436078416901464479164221474942346707175416775673899913425631143035718075938049154161260912971585500631630505211146727932242140727116267262519898626770054131089881487513376853104518988492207269543018629238361524824682349437709107607491521310504336310574689080761074607792838365834869413152680586466997255898732027358320787790165129637906745530747804309481869661762208400147393810027951780606716894880234693862624583956831621156093125350851819816189130843401798372847947157001120904020197995103224346655387379318295622203918474561360397844867852308770917139370083835122794381060965292375049044159022527216306457190636845186171816581002734148174507690095755859782143516414228432611290011510561319015648957798130832134943436583735854145470550024200738195014224684131064431518585986364604470219216118724322100379549504690101386513976774942029778502650500784176864835336284086423280597732893830453326511589259896551234593066077622628287291583384413346497979955821916517647856824787058253386773306426086714969887872170780380987631826140504774061302778884328342671303934762453456484922830155347166803695983451570384904562615954637274643310451088702028921068394784304554402875383785016014746804813936862245983718753408991304488843262873616674533061554803582319243874439525553770683030795948861393489923517874455843250628738241669818548982672622448534954964811161612227591438216311882799743383754022668589628612628356829817295408126351699754240666833361788833919275697454916391033297304420418482146712797123146212156961259214602795246082891072790389732965056874349448888923895772834095293112612559333847262548677491612489107158191747625936399077440585649393541222647119452669908652070511397407643276310016182356110860129243866945530103813619913388299756121347503964969413955553897513174043604259212161742652197785279301469671394713523790735765144572655657612475475435355631540712641411110092548514888921362678638890561213860495191110637378549322270641759438673240268445498442335897845402629896402549650806301534246500189599965606557935353531382530468943426855087658499377730876933326856230125237621736501737592778681734409998041315624890971884672399410191278340624888838134680698591185160260007668976846080032602436253454325485830979242372932420961804953853441500655994717729053654131816386398940121796026281854924172102071244925049717403471974570914052161266001994840156814018006194748344069988146016103580120556434330137918125196102389052535093086172060281583056597454014413710239707620998130447584210727397992542215363087219265446673846142125352615796586850650719966024704886024660530733780617346544681670653195208556892789725733972650534512395277456562819992127012029064668476240366093012452867067626270347190347037730229503434094966668169456303083310311402670562568061464222948907347392161943014323169612853379672688876529849972633373477771441611489823753252202694096146525194324819181397431395638242955447943360188540382305545895869264400287512547678679977062129127147201475391860896122950169616580695347681622249360871610256463091385982272573603969989286094797979714892473529899024660591044392000898811003269003925003750579174495163855056527712571294524895672313515647356222499407209414490587074015466384393791622480511277419750869434321450093252894425239449137979840924626786494489842011042184844255125764375232855284450396273189326793971418050385167687815848212080724217335523493582523626960237872304114374527947389434286375503820584627889212774222650572818720323808741937781408242543882884941450784576974685283027703665371123737944797164726713227252895751227682034662618006619144595681199476788761064305317970860469282345177014506814233577266934872223764237547614709761925237757832359937398726719853350612023492785836842621655670253403666215793229946396924285252632623235001844027169850349226764242521129558415310052873056293226260863704291220675501662292392665684987062524837101826354569655173717567814773316274515407560974493866782677528741909084281686204058058710885969213707323534065541351232183836121686536816495778001431735755568569616784014859469777730022560849137479682877975529728615068553364999658688924562740379395252366987788721460335855609530550513349316662269489215798948487714187867663604587669705025315244668896696169342317707997042778929246271380039042532268962054861602853260134370265099729577895276964156390970241589198305907701717300151051353741211616246708996843518953187387995705079469440083665265133906195473268161114577526508245627167290951559105733612670789703057604560295651292802520444191816875074783923406279277055111665719853475815143986758582299643200595582618006365615532420226867246505796976197477987545757217511008904440557518417190926971690185818421961110016778549854731077431183967444650849358612036376450236646021055644870427576483859042034027166888779384419863666477837421787526275982539372488996375802934730134708283591196918206437607428877989945421763998469327524482941564640891428658279272392757661870887665951277999875625719408149493152050637351629317098264751423106177571618758513242395068752998377089584536022671865494072325620672511355123573965085011413501420988954603605790163976290247968998265259883152249668092544774595371966863971285933895099852598617414071222688611311472570550871456848673506545785732005545061833967890105595241363132829972487685405533840162655014125852321526854787678583478837726179586055402678545021494215886935857065703748487736027781985941015899518120629144994291431821559343146677091954706782174057725194975828688554973716252430634941041582381163693079693145053761622110542500285534910057569296949289080184416221581335580299960737536615720155326251829657915340548412454608228536886964033666882799673861062021851318811658904377035502404913444837768048483874212459502974448303205298733056321900644547830499856020582606042409313786318640429032497695198002955460025469526743124781355460180734378580918519987063380737674237942004084046769141372266079041358306368319388363253195463407968906379696576679833363826512054536129154849287990357221794532935156255912549937719682772578204777390803990397501081838252853567747901784335080783464092804568208745943155445805766145842871804954098126941356994474561760944524172563432537214376810342858904626488075784224672986799969217207730881982114770913520169785869117342518718476632566577672987623216268183931725298768579526627279672926973413349453015780678973308657716063057578209840826803265196219507596393417082892493579541397837053800844230851454914324495725306286469839760905100877556325788581489560471291300043153446715127708737075020917158506064540628627406804804543216026444552038963496686276079056338465702604375404862833787861487483048767120873225989845438366913195267209945176464879392305226844710742744290119793169581941331523741939839451055038274636969905134064924857035840087023734449401626116286473514964906204379020621867487710167468961343586652648740029109754900024660662272660688371170065145663557567510034773490388478401805667863538452143145246834932843510695201856213021982696801545574375774124384880750822097886406373028750492405347526093784229877298850373912181824996431080616354839094725065295298805966922060670521498679055430667710253538822583415603967221743339882901952407198669232584939481744760712947239696376595694681804948021218540555743063065668266774930597405619624899922746969407717764796908226250249182279483617206961844677844074615368351707807460508757105658590757332564930106732200399477986009558246034629023101197475763934149420470837937005760256675992026836462650234470134013397468959045537113045112164355141090452305305547970579386012687810606354887548067600450953432493466855759958211923728839080906393306373784431803297047148770538729617563098569833723623734529408456714443803540750371761131784485233125285486124648415844494415889994708486156680657795207373533137960043282452765274607111785886996107328715128559785588767523510680869217458095144230443135584398038561854973255297818891540873014392230681260736228125142860183249931882772078673781623303652128430191828469519483601307153199851445659560068971725095986983582233112353658369220957455396390443761351934001203898865039447789623282350532112894108473313960575662582028664591149233697804319938128328060731536620102297451675096081457985994813638805216821394996364686981866525540626077047569842068837926679741820260245438111339108214029129378967560680659500065887111354067594766095034726914074651441743829684097204979462672055910890103593656429158816698884403878862192791168219275678386276797668254949442942420165463241304716826524069504191578020783070740521334529742996691540561152324406929153347536891442465940224964578565621578334543156527589118838224769516583302869280027171143437386687520685475098995324555971745893312053251002278254727472115130465104480633960184179374014612692851799148324403971593639254569727027535114838186329532932898438618488476028143840853760022255828826705576773944838187273553654182291870677903077540997710171720110340043256475673894939574618614332955592798953664038600352122934726663493580080780353726118070710414182968542810499171212423272042327961842034640852783388942005338186795211989164907366917082547296281186170516611983135291763733053718465563852908351599122333563311844774349249518950171990252679222166978001523541818603910372226838195702605508998241575328366256773402260130451778249636781783202782969049349397287115202276965003200303639933910875375540607935872141188235696244027174423684917567767187942247515541162401353536225218157300163393424553981510610931440236037542468982661245113629788518577239870287217372590987450034467646378411237897835415380123334196378425808156185173349310186050589170169035271705170699858604875024447539496329612756329673828178621540259037534586855292409656673840309754828251213342886124284026057365931488801433621942534111476693860842447781646145922549312000791164049945944405220673608038381249765077770965110644807573676387737209843921295761667783052975789455517430815737519341507550816695823087321271479048062873641333004292902420779158594945064451406408160004118479604863498060882925453175229500486445271847657750704636469539157066120574885417701414772903023615299722599209658326801789001662570535803306205390178158165772387609669639003865750983395800927551794686038395116255703564237062456713448708316059546218053347236373717034029262727312866526847687027332464705437888522605590520929864893918391594148658333015247074679599422140218764919478353741567025458534534772379064802775043686121830505555256688070124414641930530275863479571959410632120510451216617327501335649926240559255522123892061669636458044086309600334460271955335002232460654191589760615271947698547479789338150780133648536192286818025277208642928661390991076006990936313605236105058823446834766820471101843665930476407013693765417095375108149092690270125419768331420553488917070738477777001096620370402052732453855919762141982183461282305920548362175844351848916745223679717640599762795803600398087691914448614688916657214272618040213642318850419795758866600689491849718154520284987136930393786822671878200416421546346422559640296835564991831800225885087031853749013722635110039838340518163752581360694236328043218200105752838988158740900490642253246359559776707352458206865962752810592132522759316968165930145491765102128895501654181231693782317892674424584795933990582244180315354774934151094785218119658758508731094970019375254103705665043458906593837752254839251441674003053299046997358312296811182938416508145110059876303524413668120370012599427200158649661587702891703221891786744169038251865219449525419985510392041252672511526467711912330791126408244754996989333476205617684943483789754813017731608573495576150272626229558875411265352275329665401328278129953934774643646966699270246734727556347164325725492920404639309128460422786911002180921014840577411199436128654193731079469771786291773045793952951164615368380501606720980576846106566082243208556487093487645297494420957220030817377313038864287452847508836006267759898292803723279165533801009473429679136670672273111539619945245188772631254375380832486083345320384280095405552196660349588679939692772039027590522403737004146850943142689312627251501572752260893348339178850309329136597103548888914125917777386282865310775738708803484150203198915922948137859968936258332887145624100079117951614110703593874286510846553630610040106475534834783273938412237605195206976766431741392890410623869955381174082230816039477519380651479162827855629009221557293390354580431341182067062870576278609690436771509837074142236263864236651438849717231181208347305473345963620406345353861107597742181334758467738986478055189982770483892900740428612309747516952007738267363285823345172095665225619488811791047879357373400782822778107895708853562116111599501408711956436577785364066714613077820394184289105281332985781740499936548548024244187200436606303199630491290928606685290128405196174685518233606744274387318183877375198087372496653879912724497536370339568082294236411595012640952334768332557991560939665953572420599135835957691423814381621379217336083760748356003090681508627732993308807407843758263571557148787933687748459016052927452573207019859099744089369455192030713515435966178864376044791901258929615262909236025806536644160337625246871291155237621137000579784991670323234505106908864474937794647180608908788423322305434817217390642103376059365575936899144786162025754626869552923418864768037304083367397354400464175923514112716483666229871188425030365555958756911150191506583692466024282687248784583036507957333127479492125866753170265861131804298525449928429857159278694056929051421200559758784906260074727141480293793420028265491581307020038889874449282302892106589307037612821380834253509147576797557205747816320704496390173219493520629948323042627771445849758773490624677903235533721115319552233860928679866663319448542837807221457539661005846686452177408501960088805587663886758466757008697252928072822351583730712283361404315647891067629995144843709546881381858507834927421155083170155080187773689051655705667181260098208985882534963656164327173243487283470473820514152265325917935342414905344251430163848628727332134000147102216697549348549767476994831945654423757011059672215792399411072768040425308772568825706934789240005141925407010047650217866106881114655876211278329843389002963668891707287168645728588893482138221891181889049683216554898097956520225036109639239821367616950735366245589563988923595065936558660561346718917534125129517285963777600012370237367217718472350615741676184300621004467370543026489827786480064761389733978116415789696890218298831840675253597512713242577069010644498977609018702923292828077787832479950225658484980610701306583080161710827275654107855808891367641533307243804711986718257619057306504687340497918204680173470560866094667885562543168245219943261280083670364817774412909674428204054740078512832434093846931422361388800500556665816137202868789128104461552866490386669824366892821319721654205801816630375936677425235666410553769447168388837015411836783187963476959280609153484756202076786298292768368784470472367228929136724878672186938447169353573217660033924851057424559538390948661728184523511842755253875273756727247234735418535306980216360498185289306524009622163987521158411436225488244258706688706467346008333902894046214619032475516161580799734466307342645954849181145246263443108816179119812125665692438110253673403275941307553041311667510465433402743270358896547110156089410871383637156529827280100864715409182362835829796791360249313657967625488596076030289611749758103260687001827816629062112471609716966242769973472042078674799078203952564598960350359662787822450334591258741816245530077460057499114180721237664319399670895420759669176438887322399131156089496742424749069419683114975808452617978852252637281737471800919925829179810299455705410576204999123259141820890109646523113128952489204229330089003664541250407872763802836915967373900431427905666315475269931352613523878300004533900282566693325883721449557880082432398187949605570083038976839207988520218949442006243887074806914683785442236174952114209808985537921170458541774525658275290513846402837822787547665932708158491170356759368553343085111462900825762134749272578957770039949717122910981268043375799203193772282768216982636613504681550430563538207118333163722520793469841793193314520599553023147947307438799751510596777807904117747535068220747108761381762954565674112294980060901374060177508045755120439073706302715395037594810942450492419609365734799328515547179962569521449630243727673142878020985800599296394884520299658648127449666279296533858376693097009382620725184349861460764150805565070151103319560028033484762190263776788187741589676174896570062092369541453735422367948293520929328372140433409479977002931249431066446515598877875334316980594007105360544158906162366043561789367445670696920565619732182339384283457317107373495925919962952602559251809232267977975783050164385509995748387900883518947613831418660561182422483932435329848598786946020424080035008146640323470677292464667933577116040744258796670259720647355383894789259328203998592324586523976224277384539707639671502399680500931035055141833061942362555707787271605351004098293246731412146015656219588726060924016951105834132457666501132232396736675015837768694273145710157799859848459139681713749530569646743733474594428841105745788689939754208329881715148637077518898921640498085685204240269046318655357385271610709782948489341650101032135988784918751897426158811504074741947838489184014024389006231967163948608479601143145848615113178043963079082950423350847336727511606132463697407972695153155112552203438146611482365400115259224301065071343518027708367215328405273761217275487865232463873676119815506803176034843556777663886130794951841905906800577001696449944828976569336994559867886791523398979439564953731829944029319047492603760526402744476078931985941910421760737160431779867735843311583284415208014849511342597932543505270078995300697696556608326208739722034095825302287268689581040055370239947521897897077333784646016544739968246875765230029622899950579613558125287604105418248210683871659453824877903066642949576230311057463030484847596640708133661609009049123585932981985989271268445658542329488629525313938693169124342359740972195145237616041461278459878318152922236378982591578648352757297527770808841301749914451879066238844177829072120678100095379341300119912095599770306414362233100221317215941177566958796439101710667203244032523400593092042999786068645772812522280176342951053442003830303613542851438035659298360397015768312654497567528783385149135294127343402744376354115263975397501376340916111142466986784330759012049503691482188316634784736607607036561731949331575515655681755642051409798063119066733589247975729435942903897532871752171815201981332178203090315808681832869452314512109129962891673960254812004302841515401808466970305432110060125719162493105094724464682684402222719627996613461804416790769193438656498507939975549289542589752926645018299101731269111109831199123787518348520320040193176733184327498312970909581152754459524760417195081492320433092608175456577882807445616592569068601883409598521311606198012320229239787470406719814287642482584652867314266433350301607391774304829515815069943657354528713065193268990988589508312471446797895692614247509319532604094230764977112571677351259299695240532954045294766723477163319152099517917275924666097694827134547816290982374182903886147009825635583531661685220997127577803473126724774031965997608669843118878366783911697618348716032335433907051912093494352074209094081734884864666381223578653812573369093039327785890010601551296514565063938984398889213175915958222397795190287646452730664526733040233573262371399123968734111341406387971669253812342820178168965415834916369700236777738519348309612850784812891627475250552721315603635993085383905697222168731113326710207173779124935451975014942588306074328525934615849033809529107282006812097219125376084200136134716572556531907117831091988059726971020086097320171766014935736003303774944793691371207848610963377389867305393373676561623411487786266431825990659728899753573110861851201348007267743124338667211134794926084439070304766216078283848473990378145983462517081589402711650185580839149458531043591073886186078869276184259381888130788163168119403942841931190861542494365399118491692742602160898312515135956430525172907124404990771861620496363083191806588014002936998936404073643374692343605375072916058743792898399776726878564119855267940618763105969602109459489730783471699007710075121379395811215033016327558667127827947246281854772305346225746755519505041622039763096829718035462520923181626297885832502310708053597568865733985276850564153881484768428132736147070617037786913125540211201935632841219846643084091842861204545804768226536529187200658613210357719893585818184595125502515872920834762050960719442962194262334440307377611473636450095842408485926042271078812929819459576587442938543885036188574752150022705682149115464826908805835791738025778832163979419659229713143499411893174140373106156645365968488380403305176849963903197200751712927055281582566630041725248243140367348888309482152594062149207663949508190435082956484940628582217204602266067679588344534541703289880686064614652832285067878975688817858501938724032865884985209555976002729703388449497114505078926402152138976670859258507097890687772762588865183320164702428803486587338813238075033167861902927116181728619652303756273493655029188860559357889943357165303670171164626142080074252922632922165486655017699591015488764618396749199600822460906009555126597002754995216231754624858680428827876355691940432780478767992761950661324573378488397997954438383138529797443110089942827315813122949279165436435816318862421664453636336728325350818279996456194479938022138817026200899264061025169912825310450780228440571851099111297181657518010230334204103818954933720249072275679941907560600974152247041871541352324833814152508105846287631809916778456451569901884121636584094334896490932107764668287778716418390958454441507641348625690915536285467601139458664862518185548002154293049397230020025064422830726496418952119279976271911430465531405132192429649357537631451445520855789398979437232212839364250430966161375465458018687825138225315570746807455249497133329840107631957628674585901808719281786393586566618923926765787796918546336800653600883733208773842075251510856658406521535347028903953524865526017467644616248103056430543387062318265060000038381312062512292639132845963907568806603271982687653080002546071833731957169975268062114423251331846476579870956904265192300297848539133561268340618189485688270145177009638280965872076293892008718354371304293836691407178352847265613315876735987668525551355616134888539105716533866155237373361564276761423951797169507052932562435086792651405250175610220603094025810931964343982185209475497216141882383393956538422853499723546435555967734544259607832962676142915874510000422508974134284549644111708455640302230831059153748821347859912489537022096011561584622742928461962584650060310409240111969262324281733482836177376827242271889326371383319545478186428604110912256739408969410233925545830932686436749494545293517767275155814532093561766185203945145020313700202174522364752663359481224659694713429802581380792001582772083746759933985389554760185092063923472419031149855608875088055798539811820365368627058771251866436447505941457709034564947833285210936163456506164968531557510422972806951855626606994742385705473919793500452435981846780080034887282053838770558508600287958071408128861737119733117604614980189575840661949254889746648562711776065209101554165368705564500257718216369249632443897372073637665054271335445247572699726358732083834712172760517263690537589307853262159727148727365067188381811488729777453225299589189063968973876555230418420832134849461511538177716720434906245547550495623970461732699458297492211805036725952753099307503958792849212619251378422689599748812657923343744774542555311669321684063581468744156899081804605129787442062610505861633155928101079740208812483643367468395903104744732040776960108992105047655573992398526502440761220313070195585818737749155918205125891352071447175489309871504453759835100273679342853774640263821290100515609581822575761379210898434932986843386135094295310434153537412158651123043799308862456690551425784973663608220698842843115058336431177168220077290588078101387012151650560763789777064505972768089765154936965724737842187487293621041224253191746981289146978124235291552099868337181183839675792143716470291207722009744033051796520186948175105189516617361266407618666741985279556231356677450249279781039844295238471822319618193758423240533322690584506584543077333088152101454804774483742361550867214894644256197623714436415241205191779365157201598370010429842873812672932172595221693934187119855080685368247999704154513192404330436850224433275897757554893135999084095286630654732284770714159949927638322429765972861498873644314031747489320626759424543856172867807401566166126639509832477066266161474908805307968636460302522537958223790946351809800786544328632919969473979334387707087660993505839625597662837897517664403422440415580428336889841950172906283614333825929639051009339988064902567810150855986573910204965894812908693937678938884517494820911907318447010879178848789089045916422433548838080924708918978843086574133346650367179037643724912953449630889278161166681415108895429665791042593541412561279913138982519724178357014043373686850332661159474453614017266327938526903548834321509668585395293926045535216864254733575806579250251888943982294442906624117930959393495298645624139353645144404812705078961535289737179648189130558710884308382436410926119670447179529098670566708306388792847519184924812115204820434753296375942518018017846676091886351230903927105847256458752509545435329275328317067050653249214108001232401950527650549538932656316624834415512394747975776372674207550337037721304862952135820977348644581122687908801442877803151625881022931686385119095281953331146303118833576420439070084293575329459744494980841261329918138603204166817367316040555503654481664142135902950701561743935044088570705149109655782791034225942013729992681428886726725475150101427956287355949649666799054434773651705371638102597973199421049494500321070604000350275868509989057905788283390827084441696957249218908958835933657473467653100162698587758602150540084953077849552438645676578108427518554800227997536302526098380785193090429102409140776422229684882100197696526376042636325667712019651068227792598560177145313548292766309943863579117574905554437540389234113355809142378166714120583112308220953086979465199026381835347720169774048156470806018348889728441000490174447705331441579455770155988899776094037896604855464507937395317927257552116522376697948673611131247052758316625322897322002946677728014847031919469555106154059738622562796083142875876208445773244779888226435378321810311283778713755278792069889987501683493526573846607444830087213014093345283796399214491174158762838709127620037424490675540658575963468242016912258261966016107485715557651939010294350044888561330746186932510724120807531714654155870011723289129650475590173664176618358262902752820255178645072150372883375647395355883769012848728511795389010530582844060218939477935436465524545601394821892728290262627395766854656366684915516440206910146657316574152836578025381047082336163839243511934279393760986510075498203622641808229270006423265199662249593900543187828171466805715031617738855427317066344561355206393054993874851075788488686701070336040361271436925615097690368132013002772809562617593429522058982433499847617672747531181477484996853337060433122902553082031603565696075266653212711942111661780447075441108620651896279342916194173851543765426297005333710114902763972177636366508804608528323491279560257981381558526886157073199334701554545190182919569689832354495401177144280537995659811738188100062534093737569801139932539521498012053899366968315011660244207751388373174530422366094048749003285919243167748471541125191701879564193697792243736151653641393140211462603557233870717556953506915083470022678792896055297295705831370276108709690931535742964526908557771282740652462671310415395333026289152224790059760179826787718538039134814753124377109469724728583573589760367585432287700740946587685909916378607256881081936524719919612780079400602629608083785614048090770840366368405136807286215823640806646338511034993914761487917438416122954328149280908426756621988663434674511922422996007873432563347577702946601312065600563404403452681665417255960305520754252797939961805952409188134835700910346976425847195872635032380670733369867939951426664261154516213056364018418689285919743485268823885928010463415327098711500420022262930511006018088690650398530296903869556586760046952769923199065819368242696013737101794884653545928283320444780918264857487030328416748312788568042004669053999519789951291331785677492812060205450860306106806279125036078886551872018313309385982406055435511644986649156554480502232849276343518546551720797403763920527119759562591127567132030586440377274734569587766169267992171087359742155205740864448959741438861045019055292701617950214294828560112369204923957000915490585283396742931856864156968449217254981009539743488215723895055482930851559467329649445173649932853429938173478280372653372986001160105932087722348624631017893584522675754040114147202852288915776354699593631259345575020404999811589602213765274583502883929122549611157712455350661593784515814349539564779039754722316249204885283312330336580248338597957842390765040795583670712081814712531356569780439173979273072795958330885486766095945047575640281107400490154988430906779594722550360812471386447114461010135153384933976794880092755243621845996920071063565025266108090865401065337198152070494455273000561567757510523756242041805138298565408598026756516421644192524506508007153207372354754186326294167065936702533152776490682648314165489814119991187406266686073082541450051739755646886863178602039528664688216583108536361878819709762744572533652199917888926831284017464012788020637337495074450382942021436660352564813200103267259344325225445716334261966232320530365202395053869184465258687640681349899234477496673634382851862730017735016178641447158235274121208213162373317673157650932019218167986762249636937348229819462527236839621865130409567126654335635577678544064048657630414032067902848695787180932878710023705295701637562910171540623094919385186496919933541541825228840591291336667907685574937450087043500979363756175264235356388268997970515379372649700618500884828243125087720393131802099679834430043658305721390338498363427793673239951386980057421866421454776566246691482276946792372419485334392597617718521588963674372189816123460704484206940097359532609791719499480320658377000015823961017691192150763181000296615036579243475533456217539316641098111662398994450131262413499038427007885808261097219117594180992777164864106345432593772054123642596110684355468049853291139835503405662791716765753997906380908735218243306058341576492191555809503595226890060963041370979622451067248253985918486236260818945189391776865272137181427695610553605889354934576783711750204908303304570572738467697159057783515369885534753139346108810826722902684316095131493976643485138060295198177352971673685378209476900588458123773796375919121250835606908852981521746636135617438312543924059276101953182324705692405914785306486477350488563655771434453794500082798925403143906956864192117698327522911333020245145448282513368139674786508358309344383376756018943892878094401158231444912707099993875545789336909435115406736140825993881510622204540052688920431160941115978003586394252488040036732151307402133491002014033911997067577462664787729558080570452076233225631834890839477278336219557076671194276534401372792184333248677100207692207640519152217093213953699420723996483676326521002712317357571626863662580099366250617422866792757327755617219373215057085576743270398400108559581935393006651133583866864685394000673436423290479215003806513570336996674405312201297821200881021328157337904722589423662203863543201139381725251882911936491365732030160305244961720921184845210105835477498361030518079982375693411262408108423514290453601349767601195989769242610278361258760732141657945334464547083455345016724049788263835479005736401994051571007912426322387346054953427726747166285128881118937072824181295471016724091172952767809058683748418682835310447485048867743621648983401440384418054547034931151702813109207213828149650414982635301778183533631332301401917573104351460516412381225805540487458865414849645111498039055657622835329888242386390077833525708873025681936927696389873112440832063266742689767627013037271318269549998272514900492864377782099596562090523013569039689281531296068781469088453353844189406384457534952177962645259190201718916950605554973170052882630588290979079866186785963456665001896179438421117313060266956412964902630477911220817650200440940965750636190003712607676355669405454338342853931316148786587464307714633020348112453756765155053863369208675108162663620760476691649924313757761850806019408981838504388316884482135774511009014920697257149712323755136036635590258428270606980135158643930231556624434908661380268508864989253622381478642881736113605192373285076938940890510136812000272018648220141345365962293410257172746004249168817172529153506888307019283521707906018232690548350671829091224893126185306855039288260370870647482999153491136655759428042229134598983250295183605150536941661359231437164859431325331768940133199138016398972287545690708550194853500422376621115533948253819690405303914650250173494765240123555665876418333243290588073138470230080080235310974594482521120878304967554730428282682769241184148494818066739786783851110884949793143978039596148987799348625206905529831697089032574318208275680310932705482458664431787161071903902569469439736337708451509119668640224652824610435598338068605420324568403933051538668386686177185699574307762159917650299087169405537267191637115214434480862691896991436140516076768388252948257329776208363216306243190697659430762555549644578095587252394553750331384181612656630359003266820052413652107741237558278099497973658529646374452459926615251616411396336365903244166737882112572536178817816194172409049887599772027458489557907528532907918675258307404152328496827672584563426685296772072325027150748161297455937589907477305546816771991101150826893085669945530482862670521288286392019865356319982024995570115200385376157702399620758682700714415199366600669163886341050793380868696052544648928757389440964224967014184177910244593135614903389731800076110081971347316475195910636731663270808365805179976335472456661639625048120582069557368629664897886551342872631166480267266947720982655821654659356612153902358659218625685187895696000043378082823640345426515834518015515669407462799197804463518372935771996406279618720214412726095229862346915483402891840610196573860174359205441547931055195314395958392089329664020656070698481613578464084690557816135366686153616270126542259989647861389708559994375458373006658688493973494092788741008646156781897202012349211074387588414862586229996385063892835322681587192188473055254745610222979772189212389072093594517455461943790458403813510088452151734416962836377166611025235302639696440982462000430570901776161831166894960459698473282810882611252228817403076438949956275087610814731122213154724129931605326299376380568464189218096996349560364356901888280902717979600599940425437419897338468790448179723794806226683999680643274860129837902543338659743495043241069174393010205685466944478036555185412243328293886841240215025493938951592076727946441834559289409725238112292050014141572271018583792270031982175965364710907603368249336232095832781143769254699337254617002289459691177777243216126621760699725721123183157467822263657969051101011305748238701328740514045475035153563865942646919838593948480933339943062229512231811188797991778659044808680144808073411581935872751055137212908644011856928282357604815612144206239584805950874071656758124311352035457540020570046688748983899538834493422344076754027882774391936168163782244976827210103684955599266258688872614784537891274752181243761659011076426841702142963742438133371372121336407730572957945074080515343495627367051516486076773043762990052614352691399613784116961747306711205067841014317043751281505046293783602061246828287470648627710982313077310704803335811655102641776347025527755769108135347044749545383086819478882070791558017446703330881785322112194342589690718780982280681600368649439596336125911437699198768147763093542787298055403026113868676143956183836574273317904511053563603088722141508879141263031218076708993376550947664948576088915041858196244129219262118068951065111701284997120423142059036645241709822845344752709237099486485011955467057577328137713268399397158634368055338783396816595442117824813170771953655122355078696852299944945567559954998301440802802420055532712286553674866652709959485342701617310646081974183385935106427374781866155719349582861305469438329183272984479709387140381012749666022177160135199367242265564125356735798195860900654768819698296979744686216448241404821802468928667710636879322950500961575552014638472723323034057487297174859665687748435792242116321704654956285300795469520769247532136792151530193366114336103889516486519895980229503718173609625457937484442645217360486182057906263413632899957497533711125404771903552495545412283967433847469191455865528361697510332054247492347752717066499735039128492215528732128866655456476347285211610005315595718669785455098620427691345767557492892697950681944522604041274423088483369102138564244796339417610564421996655198774438360040632883621249399895319394337913561324032501894526585030622520833102682721592542271149509686019024430051744246382753001341457495732797196292789762638656280983726558247107470096407044094439776952451588835442054718428400934104857732079547351268383469671168230142597527895677181551778295559031290162918265109505995374182634086494320800806445270336414958758108669154825975743265818127371227440702472605621608688225257086760205731604184058553980291725732758321720080704069201769303240593455357513049203626164726409762381115520653346574949897880466715896351263102762845221676318565988212627204641642531300208237071192153139386415045160089728869395965867421887911961923478632094869874158833084366208815733134882577003853228925454678796141816921689241612258993074935713251371571506431471140026388289019968472525850375303884919963054708533442041802955543051364488089889878242771197657880307183874655759676311267149857764245739434586548411849715360166785442860799783902774833412803692234508307839684420698593461031042016727598787891040208264623859504689806309730330100798171463902577852169807361110326712350258710567928424923794460279551351955318416012805696222586446267573971256980357100822776664691118245443425774189119936486904726222226989618953813456926329707583177202084255189234355719563076299825706815835477632947275821440806163104153164837568476063000971480037319688012861653284438121696300304519167886689552328667501096432616617191131139460988731939929712745427016081923400720332514721135972490988466780514094183476423648630405742716143824931100086445564121606646035591009816348008124577130812141764224403299697312479175904165454185162960799124642839254369165934796471039371883304102955224858224280161274728152985075928821708469075566784499624168991011297348548282712219854875548215931192860130941761801758862444791518320735213671245705029417481993517098715764758211891334155192390120231134797442095596529568562846410515801408067538566076342161701261434652699000255432863808270973136220716644068539488985052803476099853728883909489712671497593658582859328624128666457071247874783977349685910343387902577426166064857705693675055329358719708194969957214284112172126121464111703236710141993660761121630693098098371872272155447768860347676613599770195229158718342128687883646616556062045946218626776242444891335964514503123661889468320566878146264886049707912829000594467206156766682194059751522532406507214740993839416505557058675748075308357309917193880877555719135427697172889915312925154317143616746191008372576198732276924406806252140837131298217709544707788213202798826839796675465602330740861586727293632232855903093058792115726519105668727612094897094970937050028370698275767753912574739998493360411572511127633046767437233851586583973213569989873465870637861739092154334260856613147921046920335516627994073941927937247511794201903594078240071182580158231375682049105929011887408190734759116528838066686989821123394758013766243972908582423967862797440771244977888163281595039086974298386164395843022503400929968930903275509548758754360847260474086520887915087346813374188819174811431960538330515629547291716521374707426320713530982428343936435487480773679526129942640882559939546240750841749111369944512245466805735440106888602036424378420391185643293869660379868067978510073391692219379359196187375573791793876954453137742313849773271184548960300969502066826727090001695393853505181778438783518180672561046872004863275490651949523667397443520979533441850052927722111462407072486164001009341631998243060559852711635572651545908428661422679335818574585191882791338390608098209694896797487755329273561126383664229650988425295202180617139479856582181200513287983912710060785836094576758450640894428520665895551639501323169656810233298015998060864885090260474349467886299944270647691798096235003391953701781544556039128350920698014678279231218347683949388935222449596688938399387493227338289471485153563285698359290009273469351311574086825420768271184477399713571251888871205333097775236155507775914172638518010794822897237826790869460565208354319367336536504269957209081371016132180457206866012396660294149450339800140172656846330512730359087918414761891186942046568278011037245625833685863679264871274598332293816239660976842776740715682340383986865388392274525856225343121210445600548904677717437726938734449681776849921484479397668187171648678844361416889445849475273410420748070777953462961610774840368237692944765267328053662824654707017206845699881035081647578140300059390087421418567582069184765976389377749579061996946259661698384340141463822699914665607370743908268708459254384848846874032138051481459659354305934008168933685203010831508241128418998221577926043663573277130410984934322859783967475588694953240208902173497933332664774123268194573948804706903118024259066790096513255089673512776840128542344127588165352630299422532896319386643615895441971050360520096531773258899636838769141716619634078097587589024570452374866175496509599843060029491925792784194234875882174195733628533513533394704436314898516083684595370191367652268325632604440817341587341439328081739988615499726523771802816281186814506822761470696787200436317964898831629931825820299100712604791949024836588113763654548501919379170969734248977351638423954524523592440330416564490664102155801824046458495454533890168708342191493833812617420260410748311589171304585738330227883658789124628818522138843000091804093643850426860458433198690357106041222935736880446259772075194411199716526374840835289761283692806736435061837757655385753824692324456629240389586116800605800936706935382203235655032116526130980960632110662332657030016282430103871172236472827276498389933164356784051767913505222676773369975187674381012908448551283586002391326163428163877382197185213818258854710930118131025376949806263360201071989572902265879204900570896338686088412560686498947166406963954003122226719506686492058081223977421746383565289577500598691737165376364647847404173477976275799153330725018144005759444664370357264083691289814443057148893891645029959758535756380853757664463541588954988856577253275284959354672328817753993481101697721476785593347186260522385218329471873755208019562674417248066151254165513125187285998651237989725370168734747241763515201710422193333333084214918197821897148180947453377302573623413563754592053116646016908831143572779042097068586754803267333444953144096996924137732719405036397176364590624540255730265295018545704618088402702671426777757992027528299983070933285041365656114691895865094418839087970851378984703396342276251269379370493408932692513796009868004167252597951678427044106356004366788686624141181223515314370235254194106250174603678880940956747364123288721948533337739438379600972379315878630791985670937325022139304396880259328194975613691936720194876039781941723772637443601174270566639715304317958627010669941528173078653654637859781122546200183146233329985719249377652377884172244328618599819414847548516977203285267730726258426426323052795791528593369221372497995373238866018913793029079837827228211315072565702395037779994095854394943231894956725688523860796664714758709831472652402622368492396984946274273004248488733028054816791617197244387252498154371369371479726148289199144000081922573970318367800438424775353240630068595834751669346251383699220259803934814696028641988502810242149958383163385091324944857967438449957476862924038841008923851447632711717337055531906086305219130568532067536752885044461797967188480104250113950581668177677638450684084794903741195443861155284225682798619326429178711300680142566872999083949078459645510348591850498160809608459129019363926214548397129334460920297978068033068345573310865297448347109206269597126101785412390986190819663050734757180666111514760933138729824381243373508581151290764751245189561215709715907079097896890500438772872166734429543014452624014720842631353801015732419001690046606571013130125954517803913994797312781021229147522875850095754623998056863867096261740582987557333881904004217655102642496864550403652592253628081718651558369345191308272367188023168886796854807124540131567695245852597329775831107965434158411645879078942919625521713856479172286862886313379635045144561740132975049296902039116517202620212571624682648400283865721903837312660609489181026565890282451964529977000233361491088932487658609100100658795857920358657512755020868110486540399787839569594246931130875269218427507531350669101850745435131485775451956699628624546985273780707338190836753291552928789662613233999752804382823422659800626254109531828430788331605403671579445842573657661401632829605545440305282142323103281197621875550203332710400134134846632463027181342086477096746772189284019223947588513434360397659845120017076791407532976654517865838384874981403821529567150608898688706196364290130695520171666580738018210437241128309764748328700348719868745003401525675303455597207374921577337121988852353084695427309737528202151764202250908339926639159970119118617186762996885591088267951638777300543893986381125055205505177969971970590276284614889075793438308005899366034699602958507553823905869563039837306791437671428688122736882999749308118095512492061942836370748656942639419455241776099330513436149861625064066018187808454131981169983780391122335411312641653151676856346020289987569635414491856861791582589485407471532883781630748272406757274948612576821087584520111620693524965978952624536752086180170875537231682677197037018332882608529307896721561843860664119260831822366061781997208471266344356121832591229300549188699596510427896629360892678162735926074985826673248562373197982527914567940551223965466070839371460037923475482961100787033855296025356875352304794152107962174855812372441421002496077876684477974194558194536913512469544911212739067474859961541341376772731120890616786497849516168562243893864478916742231984827272194693084455321699279121776923204249542959258086970699676699937066584691907476765980296954531739606566737097130636225511198009389108127035517623843797347994127092671029784734569079021185237523104491362633430960357349897767719145772209810751394789222532152507683260584684968713023255449949937752750380303729669023183518155620081208826269074437071259837821122749842356845840050632582202784691021541993230814706700558971894378085088959480566001260381187279315192164644665614418157184000569064302704050096294079539751274446130125325188986268990012231237084080028447232632455914310294504647093734416332688214109029488902692008819734288073254125690129334802768075117286573328872782478108618903826066480539927443385891073395770786178084309657583339372365846011354320811911548851459217587876865712409671483400229760136847104023089642422859296336841689291871685261050204336551262017210973143110404046173255411957708775181599641536690990586330905396178004812391537515139551951047281380301639529482918245389240302311978652436206968340127327784187365480795043220570211365573589307123569200838456996812933700746324180598889730248555369485726746651174842008733068038448160713526888406423530336533296863218062925941132033781638580618432212362589960222962927479222518011814200528783879144313086908710185911257665030256624031164715893175270360662437944668360035662743066953275798966715819432664817000802710991652183206789888267605695697505574623131942952615036113052287902462603352114295590161642019218724393076571166229475803967856612759394924829247299776438847078085418965409229461810279002936005153296602200689703940393327814331160965025280512080015321563620958105569753314837755729574414725740147492664816211466135318862452312498335853232645459945392501285594511263100564857107043239521304530222479400256516109430313969915373061724802174542580590329318047347221506667273966013141896625367306716162810819718977363536973966103875193898877331060853560766175847510541404944722756910722497174807567270950720354947698787442043943987447703846705360516103971979135393097468447758636855207936865594399005112999683013899063113183065311983923295164720433427372041477417892645927590299881963440849902606986248296641432547463218896777999010314430577699442399044478328520483404968579466758033950896430339568634294034976713172359408732203219874772315194090325953411753664815570865734050111235728531734477539051139630846761594609267790402783233494142367189789031955822130777552177365809227660457244639430244460739995929874794476094072413764153019172411686077646057745301924828016027216858129605233209798141350789106779276782137092849362084601995549670906556026593044047946123732682584555397563979286975776184061933409761965739944550743023190561154743679058281449003604734024125833589846194859940583837901982055853637685601636604207077815888782890677148516053086331547863681345426479590074454662228937983025513036620608648796736206098610166950533817965652406102342986480592002738525709649642221651021980089623869912205710346025726899616348177668100471911809818263543583241589938440528957696158119113435857274841155772704628290124658001831912228610580941229996402357100007854514675281267796624685261866631691014235567127762062514429531995194298930283797145218974477573253439571577293744601878667731445241195467662761271170033028099145968973188392816817370005644698658598481064741170195076906358254656203954858268649882197023448488953175305225191342275262745144627628688911716115267585161444605202287489470372266626476511397533274983706386060980145544026618936091611134164702975983753322622665682459921326031208306697547402776637874169503096977490647058659817921622551853926395619213869200095238066175770066835164837575106834842927373071245567212322030959281517331213801142148352277995521732626521691245986987529055869287948923935017725227032880349606229186603709377556639147520503696511238983129851831753907943384099205151895168040223417086953702764096474019264737840078261206435624239310629710465086746106941253129948419523483393515663090117103742507377127257385112430383963880665996399235945711470352165097191757900696039078772314528173195175303438412695671524050339236386135195103912054213203858597320021884803608377128685929684648781796598171328983358443375970812767445229036013220392219758159567245948547633656851283478280491298754067056464788183794377067718789528143532124689388330082560937259015245152774931874382970087242069643573413554751045842147636975736927715472416502008839870928719250769795509828452995870443790761509560266381032038606637227825384341479503669598699013566564252278190295458507106747181135642637311891149512498342084659013330175935449411585741043107433605401413301380762752939311956022301848048234757696487075893349776608188181135221682315944685674532063654260323762414370609172525726364464575293816459598332030553963908457930800490724661472758922093640310153327081921023000043460534487201166137043585938747075850980379356083826039361669056055874527977273050072544083941388129610958851410584848060925041918783420141614573540201549567628327653404185765232875973632446235675036599391163958420922517678099798332601454803075042029427051822409556640117158166264543792064938982706230990493704651808567661076788802056523138072635505839793779008867462880971538028113183734040697839122854397203190144100225304986022238629731131023977889722928027724577770872218827619197397921633939929486839897775572169554665142901059670143370605920992387599918903514330951059278369458570040862445202364188406867751755400398687491995606109983091927341986980571868922052287578138908180387402235131666158874005563765932302208735471528426191958951796126930601636802956978961510922425518277702033883981388164806420220966088992138632659029721117728562204953469980483916256083496455374866971524429024299717816465330340571720844165069005448430271061916005835664647825490644664219541104708010804383210291959397369223802934800052972053954212826770059014103063097621404683058233012324221078681282776674444978436804860623933151282810091486611500984472602677659400180203565914992483920517568383244830095522238839094628135269894271484363752946103183331932710736199861319156585609361342379665995957756449882784939874840078506789552355618149903347739830146515595388876662208848738909744872750790764155669868077102004853684243269055985724510009251363786012708043361155552726719156642313732097827305795489467291431537106979463124066547512697296457611089308332010246570279758990320554513641529186109317170528001654974114247695797355874257578366069175862068837559338596255006631534775211814159993397501278444834844880927396533784006264476491970275113535850252789192425559687508050522355481519530228322576942704989983169470638676688986422142618859457937874788372420689481373072836305441779009804889535923784226659294203651219934151254184869304588899567704334595679035841294903082635618958836529581343912519764311305400203935132120975384591608701741336559366524129384231993134328861120783194516621126372392646511088199537960169669035504276922299792819914579737339501737247131120583612750600075777458333500470688723864796631757105145563108095570988632836033786130991703556513907882028918811126997907556809142725341864782890230282101579127235926109581528524948270857118315189425825264092958917388221456845399314564522381137560430604617793562743401219399837202693277774442351027895277573201185929627586192141512117680364110778347224638034449893024101844993252932686283171534730653300357791415332741796592858560176261686518260496065191565002275239670605366736099342647834048916388193953028108140229426134056422285384680522923451365642680420447621499322001392241188773687475376730372076804116127790349839399608228051736106259023131438774801744828313868694441470983299716220290242988798769154064702136397324675874201296967044528641912873310813569253252664260352643986040831519196893128398654070631784180522636486896813824414430179727873399121334977827121725865845773751799027002003663340194993495465859516786078925813939017024102338158052238153685421484459421209556158625486175853789314675595853895943681866382489087444660211135627008059142471264235508002320707913270848773625173675036270755061887938342568788224946717312874227018763615438770711253139691027584642146350943246093991773596031026834524458911038146072388005654690927707596188444733952810519934394618234943949403656201663658782106906482989339379785389293422014753430331167222324966063835897086219148078933776407881759020055625298989955813826400002182579780791246438272679125568326238325550625377432548129018012839010075560032153583831689940759338666421637257506651432066226327582458355064717652092332827955605128832717849758660549781069333523667548090059595998698113806914621063710942711220868502819738319637727803111524192054505322576884829303827926551968508191179192668927208985133640867037704299008732518553231040570081939196823735993623256240373144945928758586262586207651166392166967837977743552649737013975449952446915637265360315399348649060624301437100769270353149156801088488298082214041182269124674605487707490301765973929388055218673722968861486693506598878255828698998677423854854300553766987384906581174424588221607761054498995903465816313625673748012890750628450558717570313212291049502336780350463685194898524573716914081581884987489051949570498813874448970871130384954669697860690637864030374442970354653548982791645585165015172027660394709270360576347529998639075556307001997230088198614959476319814182125348135277647188602819576266449036781035842688799130042251448066085807503228411085548796353316275680053210677155463053532860253275553461844884889729196287423098567539592370188085892208393312787031152899388062096759613118801129729086100531571725022713837892522620660632463011400593582795743439116994122962982455441767414775545083011173687315372178814348506033459507407338268267525515079353304808333381339335582867069646251297935399546757980007597412978559186726929957392344530819602925293892761173210851392755697778934819949493614599610175805745922775781900736277524748394197645213241788073560671079109795617012217589484473631999914377008820019239376681285885668386318770513369810912670330297960459695131926002170164744977673038285359626826839344322960607976020311140722595098353833704382078111157133587655282643780390743601727493099288698326391084576178914894117456866805198535574801071926151354955455681452978933469592845172368751772747785300328120148711193725588128430304725644826733915127446976785028752185729555179045274149640966842183080724562445162196364464927548545097154512555088221477603995480464442422666666459641538581934132389020070540530122239901046744597518015120320572957072790852832282510140498825511656488802336457163653060549177855285387963875293070165035222268683475325722943614609728842583204963521889912125822983407934632478775065550372123315018669310655983564232727588829609727464754717122715538298778108464563844490260360728031274184114543030904050239354354482951820185372915925975033531403541087142278828350515276898941813615608572365390049355746319514681897479097951953297943677012965658949280716171181311236254219160311049448866603088993219933442014067267188500210906980437287162036271769904425351641611579921980741285260165617613017860300243523016513210479507237745051681240391143413239145888800784457089023530932277945702925467095171778523609348606115004047080582531474601363428904593056335057017996621787813570868170611060871040681915607207655441194108912942548083035588027930811610016292207500211485873684626591027026984112793709314064075264363167841572148840250153278169891433404512461962998248176088642292794775526169261052305401677971284910236291617607220868891741079779849069902057630476909384768771178348075740963596265358916178160920412053609820644828734161412721113278667999162180966781219244710109266128468238420252723563998416923130761545551780883241005151189621255628289363051057674930482324276766984809052792227016699334503204361953539444932811733016751794755450069658597937697735757117872834350705935897340525043461832285811417517108745091020761799430535498751703435727786702759595445036803887291144299763621709599430802001404595258295826197551891734087822956608471108474433797946854804858728404869907478938730069053122137329602305449183878976040690868698918233316047687064445957535726150052201324310886185788001583780231740959793768272475823131048930259649579362720031907773349166758987735151039722300684910225585662282885263093428543979215131334227764882539022299125113261835043828666845296311795104293426489543047317712224090324679304182226313060527812685338358330842103121544827639134341729210472612208823825100190810468785533379003484958764290292037310601123429771024445821887815217458682905278583140009655762795750814721637047757196423126607964247088180426212807471178116927531015058560584116696620287309484746772079835516315083348031808469916413656660503496646260765718309140514958659148786601349747745014339777711691526628321828516280524938069421244634303070833933416460452997833469334816419251269246622460131372218041524207614900757510464115960247769871523384164930922649123101270519153182102360052560459098972721196760607252697018714845245910386110671259383846082882843461905824310092897454135255982588061333140544501182494006060848399773517979063889188223560848964558206789138573971772129367411173851172187502826433502105949610190823834680374660064435041686089573367500192330988200362928322264545218291008994387924153028344779241812819266744091674961480871194846210242979889768800379326770029557611048835063217715388673545319135539877838237550885169276023181786204278172641824554218513652414040047463178309580648874995626471871123002210971873881348633778704331323910759823169574905531951767555727563333880529735030285053484660829308839227099981975575064790391309575758028711788083720253074014141551957174769970913709751016755461325344551776820615357076601845117530225871430009034463818617850455178406178717456302227629954528283317243602701656387207457394320237437738900144030562318520836644121873716514362605261730311668661978168148893983793669384306077441691708298415450401519977770031183530396305086596512781639320942098851447828011714890929416225519372394777925326836724595865599172104201234541954065797189439685398255667182646057597564403281017000217130599533955260401942509810323078411429560636506796712609547797540556805800811227769869605369116241248493733964944832545086643482792730320075791107297217778050589479341017526744288350064190189995407636218052475419430910996535597155956783747424822954844902614339401495410897026431100762760150200374385948253068858618000000121744152590672166015033282344810229896758996434093418765833406399916061863436331883736343681944268749219591318582159677303696286459702100990334721091520938218226376181764394510219109833245143802915861031065577275374138736345887016770991518617684892130712685696435569083348800991994082735583931340285310949045904137021656087199381839325027389444541721344217251322466422635856875143282868993231442896909338625677776436415122895145968624182947205647971138246021233525555485229633986550497048778689534564216021018970136577569393999434865568869595198160646380726348951175195261367349830705825710829154136912668342633392330705926270736988853562427194475667971207162315908760638914116725613906698620051911740810630214674508363090385059635864449736659746469138431273679064358668739782325384894908668549329747983971627101601743369469603832522751062599235926194129811846481729691043734164055179169565848998269467509171166784138040029361724517491744139687179725560566726998191289953283868805896024858604639510745118761384079931546585283070365557345637308899711947910479409277637281313971213510830789969344332999338469363065005669116788190978287863585947029532403736776819963730414998484473394186211884347947483878335840669325413222822584683053341373028507785332324309351779019695900859042893203844150064843609135932867546810492678797174723264693485541637601718772708088716144310984518088033590732558708871573346225680574117582901251680669916180256802316515593726837211187933992965920262804292663802326091428528298330180916863849656764079308336357959508806768671978614147687650498980798602083000016348350124570420382294642986386982375410879424293809983014768049625232666989895813279145406283987990184473732312265553470117919513708950798817799465396167559321090699145115180164160616029453023049686676430449432096222525066938861930133155577575368753218948781266757093184333957031288171013973259492411646267843305291204902286308360063336057431600474379424903178234618039438112453553044718122663346348940844034134727181996240139500261608124354416624470609984670478338372190809601342751261083607285362505190702796905170190956461847127387363458226378430984825238713755639176076803691528160565781948489198151076797056244489470566782365690061111478469772281029645211458453358137214188097529497017845696228566838587715697824606234749838497025347167462101795891062594487391798571040674660627593304579454730696460643784753808376706417747359294388162416023695455855705263009851343645328143274980420415183839250118529678929716639594857213658491741876593423846963555359297952585103454003955938616449284414225594126941117434337550933252037321363041230027069558254137961707293384044322227103127815375234532382464098286473194747556791547196574027487169379133661654406803421742164919715237654825330664555228031150841944605698911380302189871983404674732412392262797194147106389768814870964783539025768632802834857521119388449574827089947222484692791879817007910885808897642996355530746044886330012607112423282647593398680076751446355841827862574240319766232528299277653397329829236380711220119568209403715111258308705261934632846038752962064322439314164660631837752973182170745199212481263760497667565240312596041679984545741080032996743924150215680319794476925355429101780206852699044537429475242381911198546704081323956635212255693085340809990511696834793377481790856756757148951892514721599921727685144458188684223411386901914233029906829012961957262789379137671507638252436891961837294469832176024888044253578685072360011305175709377420138155962109564991671310297510932462371783211223925137801656993455379007121610033710457655715996724549693855531949003265193317064347712590590620577343267091310214141162843081581966833367228379183074590172763468163868765697440103911891843887334783728691767695168986437464700316211233737301824424285701160460970536696493249432078105821565398665119247530365131118543236066178766776321491849549675582391679523072213214889711686160196837713428678335367662489096061135097320729509796776491064920744303954785532162353990658365358960226021213293913734859190511586960544461228633461679040555138790482845469614129817767322183317098184450502539862794821234658093817851800772031163497737931811846761150963316058404535896775393979835007865054642670343192749237012584222379336934722039589155748259032612194864488939120893425397238468239229143949641275744496995792038653569902049243287836953135358960930337878213253829412677227167891682362041548240549030080651830880926775278040531906302371594579638916272539609198331906602227958579269791976603174894970469219594462868450258257153634314895383277899188432438534005349637629038846477707798693196736888812363982538360551183445421277104860115721261600429789783508404088662187674853936074245741101601327990871420187260007316935046762408748656490111427714734547933629939408137424069594768866884491013842186132721855646484852951180187214086663746780817593267027992093636187932988105180629430898273707545965880781967624995656485518534517244914032413476910576292274395940749239471043833457803980777488989682806605220231430278590913465856007345380362010070557314097635444892985496751113635949492708432243162137198354801671788424522632640054057815650830038197325033343634151842851086824145347849162793493492294712871045761299228483383002674839624208157521924157050854236410322427729903207124803707140403950736716370471443912571219821358112718505983768463658123231006132162147890846755530690236042083086172275396170777447456497565166824604554258611713176292875330509853177816652675064792528659123843217681795436141540842205094783725647238017329474479706303601177681249114234148454197643933301376328086245858510596491989290645817690358560502391313406130006809689448649372675189074204012176189915559710832109626293900635489671429615277232494541227434049550022846880948620722572346450761133105751226306748385504132963396651676267899427980830781413719742642005568585233698768926346831871427182805495756612903740459356947728861697087962431965904123947919073037290389849317083378665945109231897668928774462116800160215473482672216771616290065630548478732378473950481300062024627509750763337056574659232066180669039655012548886232734487298644918959516332497226235013738478408274804206334362377827967638628139630795889176825064093360417486026402449267041861192223066874798423920897176389000359144055100390661242377198564947023934056036029430442683025320156582546036508647887713136313330791436761845812258878195678362697942075375401572822693502099757155528778780820258312866391539063559741171184628142590181100073637393736696524818643474192934757961917478871976434949620836014958175505382128046287218592040816054860289337229374763137078297832766843626585633375844849949506006505671268650720691608230179352806977763178458714444883370560843385822624889288767516467642605218034655257462468781447164284298036446982013496413056191299287243705019132799043597714297617118500906387050998444191338785625986767462003485237615379236448472050229250131529654809995369314852589209143146458602679501733400982159221994025849154929853054640910467569181081026124293402960653665278164531184152955273265184962758425141413105702351055205943511951184778334419068311752893347386923103497473425511298059533159436698441951549580496522747552344573306242501632511728435206571983317168280859862091452231105974753457145112432148804546582862775795248653860131234329322496761110405230603073047797962619104813006248215229750948099228838329585977896883455967470617703659922460899846896730222274905770397047218152896534578211427842488625682060446589427311857368342388612222769641835547738802116028090081276529310023322495577862811736671781874693233468719815474988252890509588754874458451188267940249457830155143923795254286690022900673295603824513971605022973805005192475706042197510947555497437311158486200994665647995124320414821370086416457514571423261434276069227659261948094225083007289240420272002410082568994172339250942930101158542003397016549513369015695824786872298828860099055158304063538385630084172427662963823052645121881817929651110367706283260529938281220832193756694475464810148759470317150414146862498096122134879829343644794784223894277895615261600121057019180337464450627211133629931384454779506048321627096048897004833051321500052805355106278157103385473662699973260436856022618783430090995668257057203502648785496443674064047384282011475315103511938034092636588941121595660667606879340197963492893379869565662667959873210780012820634932183296915010290736968749783358187806285792327664544760102101634090471318287988408823326739245603224446679701212162746933016569540646216979878695489175233023940775689119680504995402358748270438650713820964267165134962514898551050967529155698075224060128349348121887822067092426887765022986085816227838729990301273931972094976726791723527058628769446721434277472738875142266493423569308913575476149938602328946707734799298322709083965152560390851836963330462940537848069052692292301359857590478805152452395778116315569178010386287476531389889854230488453971156945815868589932780145209668992255414854913518963660640701767470357946276052081845931446348713615932424353007473530081932246515730855757871846954979184292459306535620372409243571300218738655065137610345836027490331056239637319230932671877792365660931618454757753540416609796791987685352441403175263695422606530554366994550788210371110147429468359414896856757570292007942663499074018640901511383505850643919776246683425088434313561140083596952783081511850143844047488504071171412792416718898901509498043682794152322687800237699945487373990866226636703379773675543188513098895904611979381757092813552058463034698209924092916946420050642809287712861418166452638746958474159036131945375618252892628950432840258177100104461626069599391225303918996188652237471512238503249960630121332283643028513080578779570460993153849182881664851440883203206410111129721470215489727695211463543915045161975160118192095120990879733292901401347318445721205949058690360778800816300986864399881601006684254359152754512674714939202914461483942447096628530806301465961444331556812588217648216769327553992933918012396270434653643847312439609502259753999570239888198969454574300897717724184745234977609310525823724601411045278402515044039643205948959418334522247902162718701471233429093031923395017970437695322555845913254972106375984523670368050123422282849723919684436630468901952294995056638714913654601261689298704069030222792902820166631584513136019829176529215627903443497925409686084865062512373911784065399706823086251809832131319067482287242892645409768672058891203260177640660562838006356097508400991302608101000882195852971520334819849358019991401111619153822171223772528039443131017613650133895183174813166820546206811029837901886372898066318135752739562912267515839856808104034281383664604378726928825080140942261673198456971772140550669221846678033190686872961994106911687105345917636619333209731675960423738930933344628069755063752315558645951909350377809278416555471331063046329992559564870817927245378240632008763114839299704117171535743652790226460347780336791908695088087235558430851455684094288379170747452093413315366142118549779247824656822391966705117402924899568079431530997058605168184913808888926888628002710054122065127974616139652943325798175103502535015981626191726459139514180457130494430704227762835838400759452154689081228321950055862129144831720271457902111426871685536129069362747548471934712372513620408741958702445281185440954715952100261059058675228808575248240749191823049594904819191653130380420287221024203195856153326152484991493083689869695148054939265650803973889081776619484379133940540395349494909610165364417913675249041225392105813942541922746225864375000119248169709178615786148345340903221961989669870551083310661369874266289015032106453825955105175340912160127107509080889646528229415349896722165126676858245048046087760688055253457945835668773748340971639405823911372579118881265099445563599323077234726143605683756555170681977796302878956965750481144703513960200835806565873549070636106239093780219300806065995640366975199023817971431188380824926589226148994060681599770101387822030082814597362681138057788869618135872422831648882505972700557058954854500646405121401512477771361963178420501814144950593736614575206883713415735452624051746765705670576697369335976271877908501157783316917631659315997883390509598592698398237138569724367087933406610851361283071317144080799710324866520930360061310960021877184340789854235798950521724265357816890503179306781456322799742073300025732974680559799568544314204117487214513870905595742953583798722542181588367133961245132418195747018912870119824565654571270898330393332291864387190098673245631517870023120053830130093021450827246920003582427250553503631463960034567046312372919282093427396083841430740752598486831126525351486679744212293569500607872399566463243944910809685317979398740363814699595246877756892386337880679693824989669704701139539031835236658340151568429643766533876840765716134408269790399010481340732153431867099218369573424793785833513823803743114454253596346911116677850485119155270380680835961523780014542246894793304048437767410749780109418195585415892890478056720548132802862326763017786159911103268740493308742875650436650744167546063739174805042760536927224809293227319813027966258334524291416906225516139968165537074024929571708244752702476047135419081116822194077391051060543270504846328787164098555646852294877330668470019054200618422778113481964758665246336609939447989426459884455762049802560221920974715754956157284726919397314746750164515654903786585781088928753712191503212896546773702002468511172275081905753708963453067071972892198267441876361665660118159332820335876204596904331788300654989997221840470893293850971902763471654360974534237618691164895285697355905400706591812222985576326673640721511341774802064172762450833187297079689696394189953293128066568938486523363398855965493855872272562788909448886450376540319762755325847311788523149868387604523651491003397518912794453845566280873095964576656647990964740676676280163940202225699299180914392794328508639244059769196918049330661761997287281838995230741958029710559236002378433063064463808209801051206666373864168160843949173814464712103718872096470163408199963432352995053272556827163854675529880924516538059133680376826187457937860182315715057371026617580535539896016514011117870362064991628497802114672964151604512959166168162335875287398764582486005667142482170008531254582648805104869446812039925942325809882505489720385216002181519069626324882919104915141514812942954467957803046645134982818319272871738633104806620286640825189686213350881667385366684622184217447856629035205874046723504488222209056268336635651517508960121842703519738129036861952837505319285801334341722489777070350141852467991471721766391725085412547056104596059268619169457974788703080405769922846318164305620500852478910561933391673873496914556425362587373990955229499491704032252392326193668364576820657321755313022187864292086588096394775269468453849090918478166466252107819433476864158020397024004994103404622065406180147955481124811432183859460109547055348139136814993284770689850496451741391716386705963266463505653203494291007926906623995369156700376091678781280614500816253770718871281981217687095567778320182708180680452012603750465305930136155897321867687257680930107011844878584509716410135978204129137632426051959360724922003914486365918925086453716237138242917065653767142248827386961893930596875785678487521834440290457426867411876765865586504007812505568796421054283499556853961973850864401584251444703492262581419984969366740763010905574236724995505533297577810426520814143364333453874351128104518903428880494355121971265655985391869375321367935016608724507568501356632558768613466580512880643465192999184442204283577948281131203842472190817021927770988574670393357526523434813892109982814511230835549670869750064585461335803135991672372926361437519912914019557489563934667368307501004806707562137308878166781123763508302296302765301834763005977384099669997934296904906114080211668855094476399751721019510188944473617490705511567500333920917893203098465462891131691042647629255602936131419858641535369073040070271235612322723728098765676446902842656127397895180807407532329605087207648533446446016586901522101871742338526768481655441645705404745769284754447536834065297155450492319277674083978178295755050382378491266586879675894109610907405136238923691703601847584633669360748566754912343575153869675019394280463303043736031673997460752126925926618578301560445000521388596686522075952788907423545508525176486862481262629925928412947253949018598524099753604474989022420158348330716291210340418249049496512008866625235065240672745817944596101583207267189837952974078585194887008494459300440765333992011443014634639339709881411973427480357415349552911479681796589191073717302925094704860918363777925914083064083167382787226474465883949264512621014390774056189796494167728889232020914280612253443296575651681751257115816139901020345682698392230150039847846563380476183036989855855491415506384048795762241453311382939309155792870350832260990178868291977961434030973163947850006049129526084142969036095948064473935106778353861333019239227562693617779865178984644007936117123657366040749909214417223816462799203340705822974926170050942568014248534373863707230306045581864098742309673706088074299859750236520818640283155949795291027433536070939866224561138947695211996714712811373725559518252338152764765247505506550162591547352942456194696960099930727932966340001584743808597396740410027554846754002665197931127916363712396990112162553782925521072136272500150259475514042406408790848105823606797599380879983126400576174689120828327240734569828843016821743458457103268927402317395326742781664249126510960349553461070442340625334747725103251401453750696067523880495999916811816537729895894863301164383976588316714304999356524013258020446930006697523441536298112794461654140691012833415148931131182912978092213771587893627306212604476108245711665177018307114991257474738491395211420709178794048980197870965561174107568424034914353096659049747067896495027506454275535010617704900231237967068022338835043055632757120664698329310908426833469493809386779786477071284618721046256798321482348065082457962978763839323192492664023387330909867126772968183383450832779994777589109936677769158259840423733129701367743093758839775035125394889092012918515706184251475512261079002083822795717174708662807926969162022465386472673843888379435456854871002424994148713122467900692165122180141055506180751819187463056294128852547219191599827896489238168225520404503024397390568389109913386888946125979696644439772728796441380354994427181675718308014991119522924129284345579433141977860728687229211184715794555153876061242905832531323064752204829530820005893737688646759243327369977625159774778436786681561991043784520757113926640857190687874957132588015113062644516858797022040002267916528416653291586017488802815405557977891581172136928368262156794094776565520852922138279951461016332359381479000428918431812570442334923068507393158616420930243853201518864678349243305279951820776930086254041360862845693722474427874704730338891479610332398557025508023240966718483041179384397654980324469171479383469506028041820494271676694933651287545671579742385809278181986038592630863858873241591474356179924136396026809499629148063402635663222974929730343594760086796038555086449215630048969310566699997422336704408409700854727194942901902497680040403740524411171644459612827134501596046499996290850392291048279342200098829043305317203145876419647730703767499765727252038831734946578452315176765834895575500867258723298805435904747288346543012716499691370558376043720025824580214676901205439577264082250655085041393416309286715268849173278316691680740810414046590723502547158927198518876347314186124905049982402877444232677532179073507334032796597823779772647545180650922516518354834420105448463344675460583627947604237697578100635014096570254237343624271699196052897073112009434736359810678616948851711971498773286458074295573408809924638972196460942928865933683418104017337154992540332187500997213262500670586779884488762789752067477058032097473036627775667072445007944837841266793331960018267937063517734895135986769893147405315952803705552934914642003556517654354594240649808029212184857065555556396163969787274033375152518623030471517611011582726897491548972187239072359900171315359135020445124635885162795374551103630552168128702720251896976443527110007893778522263710848061182866532856524068258508554408360204413399768386900835482044939029103716214960889121023397446339930978066403908902941708840074645111095943385798249124230424087118064140771083633591196236690913541157779989749963219896077231435225499679077102015266086383942263053837252660381981098530191006302702874703610343149233251126938226809531305410351931941880807440443854075617475453970097980948271813314923207131542004533038964693036915987251124537570689333400284026299136290889854974031659632822342595506491038119523651927777739862814285740071029194969287894461877439278450882843857848375575068439979756309639414795618428041198506882576919229188452164291299393149501469725822179047592352841642280471572904079162447573484173778453811435181958400550506919380821325474793879081951245393315198364990525473517789605959149760833071037025522995948223758862842204301211372446956118839987653323852906759132315113324842353152281617395661081171081681481479576009993915521448264844125297605270830572372403880567340037879895204104263144470730616363584167741416262310015436203885520921358155501713281856946782805937791242813949812240331732452232388287295322628709803029248511600267359734960332353520647522301751182087090619735762076619172706525631185798454543329353817150907556103679439510262608824498521429094474319724690820545422133683587820456005117743043398937070124931722528202277006228657924562904700018075156426486087314582822118763711105374530133282777646937357258955277879094049413994373244715102699801005092721785359359785776517614575958027917819007725916288292270255253565607585718275074367835313742361264113741760521344852068316276494541423059822084883073333207766892894825766447667751258106778544801771849725680335826526024398563223647975098723485828881330999383967345612506594142949541444568896128869553804391929739046612778057180610900478495990475680721596055959622066783854270994419471274215039409710689297933593652219901783773585991193462544655994876294525726490964077187530091461013631328134950733521680664763770623720430580422165083520718408936872377568688850171922831583086407060433488811532346985379403679881067256595217057907203005935256118637765957512428969532172624348062211566444394923380498025446800969400232193830919219310399024300729552778570390666513604524599086018473539499228406194386403176276844252599996443978413554443028292975242304029105551110715752209047489679910865823489397188636993046565672035815581260303929629511759509091983739930339003568087237785648162957178625501391405501536217977944927879622398098938054365485343056116587885969972194399966018345906668854988847265816345651020551612464653137519558417632440106122055582070076516926812632718021706541822583590167327495172271211737414444336351112967572888122042404556016300089756186292279479487763772841812577190158568504508868691702694957882673014632113158769077795892590500557251556090240727275741074886677030362348632012955331806037228315986335541017927270266100593157381857006568412504753137720230118346840941977037304660989293300613390347873186606811477111964081977341051347987475726960701245028780125494998885893989643909296175625223947803175756386378080180606184567731062008320291219059414457634017132599829579876006720684797092998266603100878170331609465820710144802323070515855256998813542339651732556397876474390856303435714255270633867415245368772793463812198440376142157500717479830139243796776611711498774622991708326146532813382932182891205506949855044765165159970142405764188423043272083377273539783037275718342680958987070671510311057104053455412744342463883116866028842035249661953838939091333205741066245502397607765999255721778269766499124878861528914058759333237442380237803754116423767288568352000114922922739105059380599733094373342861359315614515339970275452795121375458944876031145270299922804046493090764172602451336802660628124929897024321930189542321627506915235214194329580334923750366782402054469547092310256502768244343603753142360950270280356129078784210180334599166294031334931718443804051933455881261513265561870640986623778988961056811706568238320244845648632218757054131508941555119791118936629570158884761451017780626946974010845277473660393563367720767823275221210498895153997778974803943581662457915743722431010061914407328087446776451821168185045639156723351762562206902293083567602120554298559702801840817105206411747607789889304083576627054526682357693862343111584841189394472684426043751890741918133440285278548696407459098580630853601869353383770404176840873816443601434657268456096552046811901375095914908114909937731773856382952693965521390325191004011109464860961995534389503963378771321691733867127182428257927278454660651237010165312862290700134186226764557618212781728349619793742403391272584820133120582655765600614442168852921140672671421109968443888109911371505772909723342334959576112768013423232305982713786397304791269605987485194633098060088838202321464297710256679969562535534710608576858996816945340063937723673933945484493320601727640126082576008548778177629397010427489315800315893053737172789049126557632716414833605373480383596112759896945815282038426308921775296341958892180005328947002236416035561490536307303563808150262527997922633612541486617830823785996428835698353998725673438447996026406507522254055526076836803495376280756464352318988711548636432215031124665557365441770622740011050645467999192791377023119867559074851228573762154448517404853703955131047570488773733397777673163461447506588688281794854906176156415379768696974431511380747406769268563143180380539733333577224617314885729907577852418004445624567941546430958038917821507201470058119306012443756451108705067395111354277763683701987899246033862296405838700745961558218204503147124721390033852753435674534333995471515187770386276981725848843056897413203582365233342670867556736687209263632234186849678762818559127597037146153121593325475373543674237012296507522095663316947185502214963387008261409149179154392633638973759973302418102059750976352412653254662174485771587849466948441843813693113876031311911771937464447684014551136543598841845064627847927606969748725905226983326776601606654604050242795261886906534587777631226237496649173854784023223349522590527532753636154989928156860143347535995468773280444926616867671750875198998189142607113995739680939953691157294978393917122968557251315769272529772796717582330349089544921360745674484026136790475263984187948573796607686506709285897639772185462349020644158969303683641314069024371312111399403894110278010418666949694671072458515431824822558042956516624320684262247673910611751549292043114443035594193755220370457580607018968270112740952329601250501129290775584758534822552924329460936485027746897442415138953900234292484702111869289811064351625995442408184368611855536094512203513076211815378352747210912921380431121567243107834761615002972867361062679048112201918940914869987060403314375852458560253027758223322883242194670133326941083450071077970343257993299124000519512425432639952685726992871554949165221704596235757790981164608714508172010960254664113760988768431592033284911533911824591011349228103622011719132641342658055128959643800436799204885700663961151508283958271304233530913606854374872401554982440062086404034240310699587951598677045646312555363208462958549384744783697671783991691286278300421177439361170658504631172020458504845757285158088441869766105594941183205633503716406976322446185046043882801520520068254760631817351015229370817650452494924469533411838863029595328579821956424913168832511001226617720541331011419488854395708624810303317324374850108925078264228368176284094207830008119625066506531401692015714062975720984985436526963868921118340300045084814689103633810339062693396478861421734573557678127208089190809384778947514741356072769401588725358972672883105205609315444219395371237631936510510109088746282225403367211802014483282246224533951172516499596506448001098375612039793790507915503094753657774904591334167496159584877486761912584966675822685807238025535816537635789345604197705767687705506017846884084545527892670766287232870920773041788877253515774243863833189268585504552630541696655913571854805269477508555608143780970944000850070029412234751756794135694342287678772233153321643975360545705679867339732108974552562513972489915076478561671039745056457158423787630190581626586561635188193859290333774874997733055649429250243790656815677834490830647000252562062590143862939740664423608584917642316088764356011010066378711323203437897304574693439560787516048323673942067569468457564020528264649426143144252216593869784107938581074955529563970503638766802178921591101106474791352159759943508519034169174918864096943359342764835115374011225021738762540402394959755764201320181132976004209907030924729401400363704762019150855039442610629453366723667857471464504598401795774449000709195235191315856793882936543677358617454066854371715648109782140346401123441799896240835875404629533198059609629242096801381016160868006787101086908867603124411954813135492009824249389323335559702273357765154547115622868001213000139291380154243967759733428365069497186382611723895050817735958659394475410318390629221590661882966734883161584948665235576198918461668856276105676762939324692071013654539319666415463914489852510319609015502687783729244399277431589601665849310005518082752295850881385207770908915836279112601335622655485113278384109719389356639876264784425912176625658346255973388897392716751167641427581390006784205221056875048561040415599505002958013001487224039148204359438038529692276487075015347382552254757147749504759920763204505645165505428659544451575378886199990491601514361200075358699776227605690005921450358147971152462293275250996443211713054402607154425371410989461620938562542972247285064500920404353614542122056996858161434093474732184142106754366882990849836115446291844481614071851581250503937245722533843109204848336481068338227461530248322613163082499916668070498894592804777661107973181047880489111889231297010436336319771701983314833512822303462990467724339393606877617650472587743155738119202362613692520815187478537946092695047675243997611809782375286783974242153579959921118818390025854488966515817565706195588341720431195733872104187395878736816948005625693644524471582206683611945929569226297883384920559467526234545310062639810161519074464055226886231727546936608661673994475404751219381018157363453321787382018089411165746002884419373846819850144490038478108889761741270901167492325060202254702923253779849031951406619717753973786323239051660665059494403369506664113583420148100239321204783977195578513709446651180287061585224219464710534131969613801428516186554603351259147123460472505675326572008148102049850543829191910390297000106023168719149193793482449638724646740889428536400342814484345229845855577919951071523839792683818701012356607464881398696338926718110253698503190341518422867380312338902044079110326473559884922163850049279720985796405381677453903318495430939745176211382133082902270355453631916128454869790091513533912413912665610240290747884907833973494529585230249606737910818783777144968364120187056825060627805042825993538621991828811795607699877415735178248336051600227269515944747036619788737445300145518334739877518732016451634117338440577260095688245680518404914572545227507295924568391955108675704449850641887488895244073869477669126842855473138383905760030268865979652345121777135194343261528550380523797003480206794925014205954062209505935412216237212077870525585348341644038365634682805087804658016618897352850087769549067837441422464257086119355309059600277418027430862514172834214535093211098294553016281701961729065923910742288001151778837926952187757098892454666684426454309003204775682652565810009639689240733543258482697010073042796038742820065674761481208029459118916563502160788464513160166655823941017830908624764313358792264167110334433388755189750494473567070289610645257824008873184343520046926604664359475666789849556082269162487926976944970562084793686288729334760064457921582163975659107560082159776496613089159690017537557636585359456868292491594101942996988952016059679310463562671000156824371904069567330089897411837332745262192324307892682745487448176002005205763532659806474163498218042401028276128725415622349534579242376290506654619897903526634367328290757622464240468744485310509131476278658872327758664204678661922868788295727882487306800669285397787139471122490035701042273603708365309417470695432114766851602554170281214756569482563676997459310706240662137166158574207403654615688618500399939948024581565037071290834423038433343818832867613531751497603300589750298746856826249514309593364432899995099596225038856168228659218677730422481613719362889244237792752522835906664931493181160574380308909972263554295875602804407795023336378094152895761542731652227874364540935769857190225090699072558745597754133359942617082189330218220928594883962152732581466882480742762295284824481822337767596660578965368643530425609492117800012470138065786647388775528030116877431207058463270717623871117256707283020743976029000625591464690855326105861149102475840568472225721969810277969402409717985608353730194274931855579133520287024016317701967401748374781476531806499800711912393759643716663017292795296497237003508140388487356869689190317531261064617599606788688718758171666366512784027593268505187995864932994085064584255909831595913327995246690884321456839361934818859905395879624750991838065371572052349613354087126689608407814935688882440474038755058671129125767672972640595243429682649076952074786448081263627871920172239185426702522824711478402180452429126695410964813702833183979494587423233702769059455045395160705875361724101264208001148126095829312260729747725798536197604334802118495935811552657025268379431007414562312717464770961020712835306376409876264434216708008454334402073525227765092219200058438195079602230853206027644794666037710199933357861155175083938466643525334162318606499962339207316774584960991721031220863137094515196171410880550766244311446599431760817213043935496373925653515647309370904905081165737183459921149238219268198112142803404667169114802493330866273010989613783057309027202959022790550053452661106142127403376110282448373411053017540964903458959885840364253000196721638034678699026077884898749878342886179723097658166610873485177474202166618620882980594787089534851216372369164824293450985013084342717794028611197017818622696438338821635264224049476093208981113906482661862971067440203346079371147212608619697864605784892491733663938411293279166528207045916031714761355160015059694087823811326052024831450586897690685756182908998376597266978569530051719483127939378573727393973509892080154170641256596181241302368064001456731945452489727065384684078820102982327354457680136351211585252805717341492545728540762358035025690905175185295062898155844664005057942381563319656922696327934784389105637880825513757790104370092752194448980871587504016108034922568742660891407308290633033541392132877006545220980866725063547390264670908556550702508628331443262448951537312399293935302783637162415482816262649674982710892373107538890006965593546789030108271036826698372152540875921331942261671295882575637079389697332651890414712334573318987305052192204394173890533445611881716292189590638048292736502450371658615071026940451221232987533176871600605790245311407530212586807846010227513023747079664861833877392511560147482204793167224438846657099447460259156151546368159802885080809613936350033762907342887160011382477262930582624565612014850710126963400583880266650989690101734338264698687564209702171760827013388913696290091360115226463125570319887866307139750084369860463797540951013411177917695671992253601912431238715050814453953291159240331750941856426729115090243660971483379271001470679219062219639347699465982398987914673212888554389242630607665547311108990220340335061734726285886695525126599757007067316116598658337681049246327910908838999214264266472874038807066567469555848092803879771068139976889449752706300722122247979078156334076040942440013187327691792446502782272734107238141387316091179359551976260820534519146398913545489356235825310973954341599677416211199114052021338413932609920081662143204444593795228490489600577323346452880353834417193753604800425078052234536096434730674844605082410098957480725616268726495188981501489268502568509928459371769693797931508128316748437828107106933164288497455101783203219515888478032211381234158613584630380073326825931356844937752464358485388089773724387590640847544433728017598240567988277518232990461081409394719228777937184254433651888359445552129656274249526470700670765906354925501704451320342151031943360961530871904147163461133752127160123708620518100532213711049164583659293184290987454310536674745439299360651874332768804115367174388559747026539640808184338711765090915898861805115421523130830692285677036565770152854023091351691116495029900699260988569545535824471290666090772737636135070658360809330125750260969309159474810306043489589615010756355595350536162506940134498944800048762635120251853642912056794165145058066364320473492230417050938310799699269507410483519987587105363209361909100469589798574978110614370091863490674543475451257049888186277201176685838229888152971099146404313381084195253656961494139073958522980233304741171799156977716528712764550405485852552478469750763389588052565062550512274678268664834336035835750479955117322634641146991041764670957886952621037609766342289695418064195594855387874440984428272023336525527330528601725749581828195450947307048649910413578183103314396855397794124565420147826472516691881107322887963532363538306452094393325358796956278015217290404745943011576911739441341738925965046440220422160819247242110395058451322251287010345673967091906315317778357098174673112517910662876382857066151925050234279129549194709725692539382800988864676046496960940603687472958280046883442136146414826128144603118904086357127779123851234207484293410133273681563526960061022509078608914153600492187896453626879130751231361464063512294996580863100486482064183085390434400548256777591235556507001738108042302391964527532633115618988394020383968310395537584567373114027191866279091711101664944800348302785488524147079738343048970002738052183281843621891210399658356179693030233974682289958856184336131501164764408115383478888911060485983360856770887462771422801035990858419517715722724742671344427269847927810130064696280259826001093361572035448761571274954432936024408034992969536647392944308034868249347983351606180572338544208193589324474971445763959399017465516503503822254422439639592147313042398974136896315314735699159957432422806559856478586761847872576978103916493598141157067669986334806728006464916986453114831684011505452222510985880534040646922114587610925436672161558086055608402293506737109003056005637093455739699827266925656763499225315017004344372924135029687198499714300274436934979045157428914426445048421105921680785009116265785041173291798905156198726010149623381257372463616530584538474287590842208055066145243488738284979559755006910606790641066740854699000581158600242255811506149435533007200665949227154905943703891978032690804434531872925610609494548037237271990547751344809995288102804029673305765153545764210832163189433377381569648354379276020337345693740703997624259397232392287557633083175857912094314528453570119584423462946920759677996016643577835547793883122181937449136115875008508465021757549286949585784225092952383663171345878627497091951557393701814590890620503501953541861762359553646568808572151925376315048342795814899429973606259560733284501203260542662562337402542709033406807667112138665429255573227028994846058358827487108597391508312073899247201867229284509737792643001964114362608011787061092246445691575016799474102324468275927716530200778855796973450332304983475666403215953518449265459230757911413975959082182490843063963385777685569319863862200347053002342823936712763482182938565589647919715867475408105632196765303907778547868123020899114947421141044442221679336624207569791917931653941077172377237866308939079946581380941089354186897133390256737078899805492863565936068184242417473674199216078213751473781625289137162361536482091524398113668946502911967843916508710879197882701751970777571802268550969774520975716362944195233807955184444160582921778745994098471806744244776331752758924855880857944329701489913518993765792441798928513226101062487077459069071847382466529738435615048401442911655054535310089089447143097539500274419770956616158870151757247379459757992950917525496691869417680410241413261445482969374351176383683383536139663337992361972878982073689377907408742989096266734810761823422126617848913263697862420972805533713297025436048531612590297523218214974791528618804329818208055471835016040755193324605108357248018525746831147295338594744369683135475947448511470068549053118472630756027742217179123089936731120103045884457537097408527698603315738419552802957150918543878801659056723897551977417013410122316428483934355439841748966694409313264638087166887220783416190210718946126213739630390067737537180298128089700532891978201051753123078399984417090786821790578929137564218219535665100447260381307623214186428638401831895787822790284488081474210433240826220798288813895467505476837706248301919723605323984443613076706537523253446853224785572459567469608812911731956406862736670451479647586122570521668914883537762351208252030963753994382176451351022997131554695934801670276053627311168720284415238850877872049132427634399703563710351350286332866030101802953533703372868902375415995451253471383047502017573084803204566108733882809830687148809126671527617383287062918896119850319772404275335044755403965733517928951816305052906371131992988553806447317550630549444753997171574498226856908288777918750119241222603045722166251855173604081547547179872519281764039954661167847538307090823867015370406427246797182391009182030734539825859236716744589073791629916481511937858020739771796114401938669268536384087869315203836317651514684053068295779231144704086095349066159997324754326861185222355712687936960935457179750079363635698323017811196606384886738034433660473336430781577998304885614458682989232381272474822277886720668398162026450770113558267419158970479740360901160778045363944525165442131140825510040547462095958282634573503137129114795646262844880943213257885081423679020018736782378900567263314643366569158076154284289846953530596904011468935459767529036465325119271486499955855211553780789689964866675913729967741799463065816586505133715782415337870190316602333721491238071655387869165463326285344778942373332440522982725456770802823819317377324263229899889909439322526925968732363525676412939568199829755718958493922411919092186331937011861918765166606905233560233970690692799336735252351846183978086092369392701504053850745809012729282822704657266931142686974782038020999384643660011653269365171548871931749103614878910401901487969623042703632998132582607998356133872936462932963254730010867087359988562990963147510632541617270200152370978229483161789750773838370814813738653383413306354537612981318864544282166639202875754701325094414334034687669507514536298021377606353894065874031796267616765477519854502055608501705596507653414962046387347872337859923644078885430296026116338611981737417289559113397470147856627641684739875535643518490686895035226699616630503218921891596966779475272287484921665503006378045412463581710809593479317497451086092073297958437278232037226639197718460926004556755559941184473830378239743978704769165902895851889803586462559303357960924476888091387387774867391816563857729374635386386231440008578967811832276645784888093496376627019626943588991058705446636778787795323651787816096686508561776398818780654987575133495637761997698036710964263430784591748671676281914418838740370667347749088254075166497784552825830155932322491838004526031310011427147500777503716834891692943649243491534186778413055481667780224157619562154730814644067536759919523484339317189802163026321982794848323797542385896485726104031223029910465158223860602465611941055123165971105892024981093511680296407849333865558294512434723805233636636086318355421360610036185911149373696118372223056534654136056023024287781027293728182521289597462196550984149265555390184514997899605614087737033796054956366028131185314086436494564381672929990076702960925559491827109371844106586643248110104102892427864070794083047454621112417790882340371737806585589204754737367697196097442521671316453478772411626337042642759216936254655195617620982383956208809171555006888041371088055126992862396225783481328172028824414335174283455763685626614711373751244190753826242109460372975685389043921142082238302011349839561052300776619831909762826616350906892262276983674232911842874704554135214262809854303577093479677774784834609395657994125183849214458398301067736072882105410819108198278897145596502104412977831283523883539963725446453574035425159059150344850427491906837705332992722686790125271721715659267164243085269059725465400341808314249605579274761368951865230070790782168454157119758316513712224779243758959154082446200716740250942318397724944957506282193723978454973777738887522440525559527082414184702569448463649216468944799138040782267321028359090588425339743957654526487252250018601681503050943573065313483742665380206144025531261261838332491698934999724295557695503375428773602351549153067825253189354886402366212446114109834868863315104709584549413571527018285172052018851054722955231459600166033886545951722468693130413496449860920807875615883167820446935468460128273198773602347380416960494882191363423265301889984487698286391275615867126420245052369438277413549938131971144771348331944003213744142071812188770834054078466503070251544802708052565618500614704926622104013410044294367198393362513400471378196384399157141314542923714095796143531578381905746548494497641154224645815029552971214159014709042840518531426742363065579804657700742772204959023136598375275697875284721929021763742611493675261476488164138979954063211844443153914556599545877127842651390977061209389260574964915454443869462825518858787036811980356362516377281702023103633789476151186919001643718655588281092449767699476124299576154046664681034658090972044979043635695974830692211065652967528109896285742730823296785406995492049842319745978399725636497152607713158093172763065937596466584562991260251426460965118301055736687627735874219449195281641024124272825360711196545905379899768419237892180686025971205757355540297278544158191568969327755421791801559969301818366047104471081141920245092785834290825387381271184685907079284916199906036690380822736568387305036771159395029820746720538103980198208913016819563488728071944556002044743530315424427141543215920918488380226018135878767826976527521775538389728567849259434679533612518797219383640014138588148575179630796605544689360377434705650600909739724436253856137535288460619020969789138758616905222947407905190013231442681764642011136252719951859335310412818055506621914255229697672171422749993811107120286543379633566602249265751948537061020560442546943950099718883122479340512805391569986306385648503728574921818469892247004229698155492781935763015403196971718392602680888839751413198868137380691029179221723976414941145538590847378855207402934761966361826014866123847361419719808043790552672247745432442743162307636390428214796936214542153734084114084606030838415285244642657661626192552815336477855899344001943000235890989982578052454863584933157016455719380814675176178815849051063266540144035230139475083331101629365187303873144095276925968252647085007943952101177725738812960337017109062075417704733755078801977998657971074069999010127456980426763706501892959924156028883899868494805425267847502698098935543100454574888762573401778699213927692644797332070793382352830020441980533976280861338608254067240647578633841721251597362653106456298218967272509668419512160820404983869580260595777664313776662918693598814617940247543978331386824877094208216507576484160137801158735924715554159552012316709154136322280627499523305936252143075051514218960809251279566006002772968079230394778812105731253735301781550337830720946640650393736411250520142607106125812911705808731852092260628124992704908461783646314715683506277042660964442564330167703897091389881347163083587120814514290451837445734523330918359862392422802472354469049783327217028311595121604678606348033640577168219428782651243118036179172571906060125602338363437406064796352472187398446122194821301190773404293291259508454228444737735867628291181164742139430053831917420227655221663458780810174434125442117861866209888100621212272901605402095010022079796269522744416177179981772268589508199318884882537327629109722753427193131906222087293909354751127433937835567397822070774953874172437954321448050560807022863339199871583146770833778229089596118723140269805181284787009579770734188767028480361526494155706657078723830628615685785258909201034869252576757351549367885671560277610615717758204648853041225943459633426478009644379905627099851497154957866881166097086630618878280941929439242155733447397467605257098289896657478179144939580841739438767397724458380241184860174686245660980571187976255945796826549475383851400910929222750491827903132414842273708844018362283219272998455022515666551716590310146132816005834744534278551488476766075297254930435384830548866423510735947836674705205224979689099289427233852028313465963126256320841864247044909547089664157037898673776546724310571973895853296744786886891718011224972179854519768062415439295507434840020906188246121781722135506532371380612371613924597734068134832963362321740095801993751414638929206018079759495906019065384785567666946382782977573969117484480108723775553512114865407332701918209939881912573447212582043296903862961026617573308239148932584281592038324412269886156901771807354544503613979391653372606519444214510050960791187721233281918104315558646737284286391096807186211021288851834728171229370549921311732305610953986007641420768260327950357626191604777964188068760601428985975966791745067026902009282725181117272699286364980859861469811686896554302622184813980618476132878669476720090570378203813832979981631843021166405240248605857616286112945433633835254394398968457094424105100756267553356977092449862567931707155285463076165742109759155374958627495368218387359470917080885942028611881248656528439656551831801563393209720681961750230662703832157122223571264536390092189319430787840708724268521527142941244240887676116789226962173018792178979268480519586742485599912432869739444222418200552326442424692451645440741033559574284082088848814746425431696004079407782176683127288835248976863081735610705694957188424650490927667720167371275234878587990687322226565883146764649384043904698428294420310752977429918663436740765040476166034177333354373290493004716787814209631376596128194834616113354159775871339981350300681893544070383409525192475270420925736981798209164836044887050399712183977282389136791946302524416370269432417804039148132479078101109591326360131742418140472267136046383270323402703997597155070349495191291095520436628288181978166575103466909181324706031640734567534719922936009032023117763414217486406151919686721110737175845325726048162767660897616737822851253781807732370047111680705500656228999160703761118670957835057111901574504159482799609082027971281480978866293757891523640617422378653646273781331263493579289624761534930159829675694093466373751109428794729131150257733825907439206016648460787913708645282656679329140375609822584844275423800073222083352316891151921242524080757893971110428649744333022945694941617904911771317569547311314238242221181539564027966077986056330604544546522480761979633965258992707557202353934925324051544618718413702306295923939176122604707243532768099203874737756598317068095563967823762773991621271284502979152266946504802361122040763698245089114383213963077885539103741877898498155327638249758454842386806875484821925460983697161660023058738296332285025249720986863729070311144470183791526650567275301024148743959145888892152315852083097483178590073836065402597436295691303977425178637740736540634851069429515405513606800958682266355337437967106284617025143433284778770236526560167526739439807574104268413395355734861806998095307375141645134627472858125671605937841624305479688723798543240032104134685877890970994781288173622817270730216602355094563197016294514789371894987319480978282443042849802545271470936716637672222858707269122181646421532196892235559855069063485033598535689878292456698050936582430923191557463258698909843209213105348235589156203684781185510710109054576331978802446702275568609825620972504851903669759690706657526197319528060087781004648962333908251961814621628897382706685018006415891342547749281699733714688181770847011702406050478661848386575475978177127211349217294408215477149610095017448588187258068455219738147606787166861385510388518305634487597253859774222290536934306064665185265026873017507462403031340827374590877585949643956287437786516972064928006875653849342075412724274498825537640668836531242937881117601534091594041234400549815127477446568273817280975552500162745063026909833291279534903844256925071915438115502633845994672951483819901065188751596650947099224284633975832156811472135408571990324936914382549230291037880546647884527044560956544378724143230641679171250628728708491062386878210727347562296478640627563939944029500316157634597404105448377810482972536049309910654529611223589114239134698535269882820028819707801815221969757587253482385236875636539424347930975881421614861448836844178501326721093278909821515140150635571092958191607561528512970405196381520460364479867277319274435396790545899751571698212421932624875877520887196966865988139109491708281020165441107350791060071899523664745473979509999527070469347040260086392212192228853369209104507600521017165385071521338505460884004770208713434011137888327106316577407181754969488375346318730072702387580234790575661461696252271547031123131297020626284789512831947199060807186979121230238649697558110241222559761453949130773286363270973659091792090259893949679453600564802957311287562285015255305596078464077257649070125380297596948914415018900148202197879321828504363845216934052418185407195335650856269777703834282149370858764150316665631863333766151515772107584927311211290104471691635934541508761407181325446829339099038573945727989676770195992549561358248889926574834556041006470206665605340436817310632445114635957570108744953396231424447567428299279876914605698625530916149811192693795578657728875186552176325005396936588597649593368741893285744359767095099715120336668459072070361711636780500878835578827772094614983438448171928522441416432047480501023931224941257481993646649408312773025027351196040507413846271929988567181858697680946324253760146515408606010750654234594035052350286534497417036802898438577584455180932306968146653592423323016975640501115926118157045004675814746470189532850705928566880709728978106153768575122848241679810654643992675964540884063300917540396741233343593360003967007645471276992995482612530593972953406627839336171503928233845930713278412430723394542470326081768573604463085840049220731115463342388425553974430044127480220491471850175259114322268348622038890573091203883654777947689388372076517982843096793219576085187685249491913253070405366967685675762063874142103943549870845979006027952850606975047498957368254128707966380135152939270735713698747217571937247980362637526778094695824287406033066452608086703619035820903653328414733346412282372056171712501488246474701861812426500272935551837632395246495681987874681235512667589027902676401518478670469425813961962943660381728478665962623651975173293762421200987347881842205893704363155471798164627904410311594635903973899026346071414648068387751273705120281557985796156999075518386173488932637906378931109783336043330067014696760693237617185329207351133024451950645169445932803854144578808149515510948921381129100812496115520014589393578519210421788260113852817798182929919863008014295763661667211742269033120265334166716002857695395058427732157392638143779201682446044058115460433117400581485156862505370410748381563651785194759852725648223206840947295609484441625812985217377283873372727155454905795702538088920277800402547519937378276743109286400032765183119078975385348492115004063714893064071446754327217963699924844780544944014885542293887810067079549521920867703517528262712443650759281213842475842135736099816435167762309030481768913503618108969131440719079346152619204970107329969399608090305827009791814185568858069213135196308155543552034458368081972194871340652399155864614551442505221963304385136022668577703342914847407193174397287570909689301675111238645648007941317767972562284289305201925805494543528702553577694852785796316162082688710328127876451864082561759838744910686350863133390033424715508996976924706918434345833790137829309700069840475423469459048918098006642459428020163189408012372378871576996962940695914874348745061315258448259761344500984450986296279051696552059547052014914683071622545826400807956518026907366408557503664166849493416862230025525429804559307056789118094074393357347438027816696070940017166761472100704982494194801968575480435353080958007016152860474709680256651817499616842040482656885134761594103912071911049107423825618359673895727734689572972083482675377887254506939315463253510383183775418260684711086713285624147102354801842590661740460843767929500821402374896763723686283829978019661463110039048827219594145008724493062467899300302041113331008384536180875620134909202930988535160200796965853742406389213634580571634543593052535186890892898318914318085991399526566504542786268209265295423482431860913629742044351947861162725576287811256570064596896904757287251309678882567829721082796683433300651442054330932078737271634724981664556467885300005324125760852532215451825707609399431440660444237438700300323048213019405931016775377223551295459646436842839145038522093091421934029447987167642922802668600326135784244272698097592228261766307947294047449401079781500882334036570241673502852850317796836052148151921895677178830466380701763575041176402797550828707342540232864545139520962484003739967105800036658108788840562868259191903149086520666038490277787655345661793729760179853665809063314632269111050665422708020721676986734304649786828246804533077670916004004465957095518521178816170899509284039376973763001819184853958950562995856785459201401512692075917360003772033184935774068307658026087872287711465055312121284732368235721105409591090034315537534715912907428311903003752229774008761287886746260299432464207088758995088542296894551873406389120042988382697415300997873417941117502124251825213157227929676226205185713704456309527922018969662058989809343713894335271548119102589373673795197086150838764479956089084344961934364086548273222859720139812743366086017267053479533557743990685508615647487818380561202603956281611294487461208836698967151267356487984454683958654520882893143834019694744104282931746594279981096618800461816376936632654242277071852258570562877671389723737893411379844652394483874454208198125600780171976331765935798033361716498361923038605704169784513387345820318627582822479195482456651343526098796081193234579194920261738148562269422816804366530601258209276278443353011676994911033132919906385282607532906213166644015919601756540198996628398205481801321029688860550813015208051062794987942619175706287149735433362371233834803130471045588063926099823148497421528320345630790635041785148313405766705590566695884081269269656144935388220705359359666004251873736211711417591625589352828216619816294071767264236281612899072799913460430036829042076405362037451244605838508707910526480694493185831699058042916344992669371189822712876524980233177488710689058861946650526190507838257763494933561900737654106928374298793542805424600547521329736507997689793801233849675778381585048148687503646916935289373483422790668729519452083177697419794526577247000849548398708772349738493868555467934322231227025828573018245731276318780344816249269741486529092269777571361300892742110564942921047899467115495427974792812809797283744915979008472622525380476229145092483661192605898841990923908961746107889761048618659918396894648852142821565902547220915170289811931901439422929020061674478354273735804459572456505044477486143333982754212143344606241638443263896589922180912190797785469997577823598898535601335919678631358759591233368332487606556689510416023576441836936720994569592626908693711499322124950799383262864933715492027463827594230125439441049189537907746241778950432103106898815854539063656635977603681157883248093561585724798358937641805117070713136736486445136538803732496100560736780415145845405170238244201893065973496430114391629436470244597882247663408736991098732648570285893491351567270683289034961586458858135283087622518813152455887408090121984410295302260885612953995987632469900163733782222393450726377176793054062304472376552206010237699036473450350797128708369440365603097387591467757201611867757719951131600927605497824121705668558272997830547489558012054911251217468459920012353458944590777417146059345117689413656758337000284705215797795206008663649849911490210111079308930127421342602320707205632978918237607280514484129500784047278689143770021075555856980280363657768414096330759228435348485625644301629639191590559651605886010544848597132400103424179204666304362725275770560434017890601070860486758342410963228661958378479883599768994957679374775929464776748862343509226839524366556064327205381285792177858346641255307661186865972358846826021409801822390557500440778258114414045137033893004307338586201353514296452223159759810511024562386887773452587316813334509291002039507149562914279758142847002224945409718344865565337936726150536768331575610765417390438637020828571680462266195413068085961938457368335473138981436397900720845368320283596608874027745090834721788728880634517852915464848921794148997495834083812635506665712755890904423530575282798250974463531055326344719883635096478839723717064751751772638338472988815493606935954988939347263994072414068961539196417263282897985221565899520546415919195392301281559051469780346367720608986451074441534890108781288914787108299974713838930065727442164065116397407877632408920232792642801451478114245635806661631759399774231487729726742187608354193031304244709817638618657971639616641939710528634740429476145657376984785306517395087351222247343571793566655853515597670421149208283539961251537394214059060962694475579144640536065274936510942915411218453441379916280590835340260547255547721175953005621168402766175487012110266826553846926014765256372450767808609068038909480077629689197793828060675997058543919843613216268871532911560145413366173254210616938315385681646355454794419162269824016696284770910019400495409618680886886919641042844027656924352441749166068396260174505473673842867868783108494783633829042323779524608587597104109066684406332439786369246970460059828352758600682154042447758593801416304042661672959226990218681075553619531525636901716153002169299131679832499255474544697693662205437703381434655941596478761364457347706216377880362684656227138803398009312711593582427991683806916842733403461196945526579132952242761567599854792027244766170222518464634640613383910289885754926296788594106652466208128879972319538145933308574192567978213818208812058473997860238312617060809319615791557656507201895990787359109237254022576635072368511538182443228631448790840976430335828780204772527616189110518603111328020043339559886976112370310004934527134410391040165240911545381914351954853469202485883355799834057231578750014093952355143846468538770536385654446637061449756184988083784507881330557653832577267972446335085570762732077870337785293614208451641536192967236771684954303591868482801503913634977629599362693386271911628574642143595358151503546776997799032895308033099784011828276866408848886798132909361783424179114593739852337998576750156104321728559047041907435916996465972465006772856641155667181878354373287939578960908918771526727880974783463310561429515296852889445528440542492015645089417936305914132914932267654415130776747635957957727641301856569339789294194178414225580807660109290815006414819530065819209593283792475337226556081015127644944079677338434557250382316608200057742050158578618039926864052034382881922605488441662069005746014969560552141033603525592198558357835888484042503872203663490017715928247118996412219685402704979531449680396281405680990362886073562677804598830388787201532707815956409319477995718624751106949631387137479560362967011219954704585439658554284768034543401725835398496452820569465661942112894612559989153067393946106909962734894603627848262997602726898908366374316065837226416841533532457168752785956467673297385884740062201445698781340375734448632702232498074607547664539258035489376428511405298830865053017239100142035706796975042543629808991678974587313483552252063565595501457994248026965270143737670885135976547012344285169868456740979617176334166285192796782777638655593011991924576686820675266979066584479906966107082088510008528912002335472797489786382740121190009771911579912053823677209837563700164090474316593739239293181498861346516156748030064033997217428395073118529917919316837046384416836288151268564587149976677507492532733335701684388138221844157799813659133309636432340509213069678935462356984796883727418133451319743902030455368103352352983443284679148975018863514443163946421190118622637067876301790389456378744659881326603392121969199389978326227945287617143864605810952671673161642703727571323170838361430661205668841282476985053522894955503186262834085502883252242964653289470333249554897935236570340240772760705881010555502453408892330768676219226175783434209404336871266502967514399636748834534760081465295803960804623693453036020047200232603341149496612005904262348751306860984781547045493710728077920057236010943714336731900702128763928570975564811169385223550439091558725202987267268994822314205181187260413076359997814520684969457260017903550355635873806881617687830049660949878817254782475714946885939989657158427230768327513123876331317100827461782914760160672492277047351102968946381032917514349191280543939821648126252607182027163571420543060525886654741849640599753185043597212350394972985574436032750350171985600998860246995437384431765231850871025832460160083033533208588082106527490642262920504286660568987618782343657196363640472924205142134670059012656095995597141049583590830591291171404018107020768843015695954152787285122173430585874494687815458083803423642769656044590445431603202189313301675649680866010626374197592448834334773916639514140152737815809493431840768436886627292987296487915970392912697304116595051805047708297711378360124839691958168477518484020709332052101477650450287347832853131379561701958464530279469322954819804506962090193779384800569678097465090572500880227733840071193193133060716039415970504159441348275883090449809448262142994735331156590270080681781126427806525382075029928582506242886392716065754821928792561316442758073477241314509979365402923820502617240070888111405565383776669530621822502672729101376801440367525038880018048492951595515905917658332137436592270050437712379065877717779169814813778892081159804176363566086325162496389131617024040473951853469102635656677349744069189822081758388889370996349118687450809088151547374798391115592918238639073274846569624898491851603472917754794261355807674603452574238366990221823764659584717377746419348844338290264681540278667155424087140917865463587500417697833832994978846542301013511315804657069693674884329338202294292538622940222027803949200424047912758105484981792184866934513972634795899971879481963288097625148652798946087379478411702499223387990720133283965281659064057338470546675859071065425635255979917460707248475181785819056166891324903014561518100673574127757113024441557920633273049682597104828431551404049305783481113179384063290793531899177097768886253183304651117409570209988265082345885756060469580381500292390664198421334415971220829250268204354074614350899511105408906302787783590054025752818168037140492239254066380492690598042163427704081441251669386093067205517743950263296192183364678086965270909689469477302159136704382676650736469543779137388931498706761266192391161161648332566614942161719244952842275557512438883250923889770239558014400213317001648672411737323120493560328969768935450836929320971530205786549469592526750790599383359701824180071731915576640321927862463579006284418316863797886198828433316375881117393419346109839210393094045194596727486206115001111266176626097954731092213810837765174503998625142234917871299447176546737803894668120824366327988740587356000754717024934817813535163986761789413553247551865352366786000647910498558661784189351311631111749846368354145139739080344269723719789693740737203879271114697016104379558303110275300265583432143519679441758367433802552459888954548976327729172281812100022709978355400291621792906993558953846221567501546243361148375596448206851533922436841429925029052855927687469702257201079710213836860316403426754297934955781430736393698185199396273860522457246783639163884960962754774486961274159409362087036908134419410461128943309841767232572297640269861145028059678930040340877021225203651747709038442007267968132867370400871861456296974647013689644721037703068307612287692371641404683222297370792079264525868078677261983532991944748098424365451552604671865806977138461792555300108160960191105109357575338277333035633437114424861525374619192375788017184614054152426623609671304534700005950519271356226852038757947074607492643570976053461188761690855030688143594080543624675664881458246847227371010761708312503162381010615273988611870273483904967541510354127152516993322835701466495722319108146483621622464599053194402628604205798674673551548354557278828633014707492751547919467149327800296176810880654049076313906385499757136002447103415421759402100059526560362735788177753813298058259319189728138554218624850399977287190689236901528739860847113270264657497342194743263087590152937628339062865759858123820768104672106793495468256091476530194141919721989548248985771232235949384063801360593431186869836855198470259075141220472382436201166064962432733931641308320677799074479935623977605678170016804950088434392088392792251323876533100932439295348497679577255283051467121574846169497220709849614923903346448756311285732430919370468677148411521249530490513550236796460910619267820975782166180318732802993980323620714601053453697946162798844304458930535084635307840782976890493937943676451461707725674086474428461980543193843499231502822293988355293766849682945394807395344899649739773370269793770821088545471968747068838125875507865856818344350328923497958668031520934512488670366796895306628683613327220290681659385686802132592968605943717993435542854600617730170736471568161239029778302661659630052555150926722216470909173505459739445455801550551081808885825556389303559932174079201592209945281443290173892259212022784387141583519321916623518566276847049060911825427544520430035039800516155716676026593908529891201208982176134043766438624213176385114876461007176730664943240146289465122784504082889136869433164400266796033944698299700682717199128738347526574626273380410420818910571383517653908405035345494785902233035282322023898146853899716818392297027925693416886677427830260287789091563893977802112773473644473437010862385744128521630041951764275619155292805762818594706022209086008666216766897047543161207458953167265969253394442845170802454853949093018094930598085651783311227594823199137381350782884631600371884980869580714371074119972136731162278474855399844201368053663943894333549847004206459516117783191959909026938069997684099609965073346857122838753321738939394877070553589481050745783496768547453563456524786478287255328502870508959788967192666942669433726959740682922529193751685426419724855860538010468798351077253390228537344231320729571258953795373910824646571017967841475532482378694080744966762884531509651395773440340952965714178660367718920719345535198121602657891772420123493661815013132907546113239325927447713317601347464571024400795054708761796503330247468481110743149822705834555643234105169767087901614113713048099353187935835987307238426721664714830147102115696917230111013780479950589471810332983809055884104586799434574659172369517987137154960891981730572022849381260828866986950213751813318871700094401828182661521736831503302272995002432973757471794537811765971013074354105015193156630603554039213681464779248972750774382103329321879211405456358600209134631457218950300657135029976382317769891217553242526630189414369349924054853439615692943368405952921424474928693355571983417818058696182487460388548639649116950291775343395903037745884068302324674450034646492337501605079431479156476633867313676029143219765142883534175482960643903347170472280548205730349070674229586079358352424046957059341366090784480142322290766406108869233895290612901263329655114711450606354782109531567304936876153542807774514619974112905317740747096848486993733854449432117540151556202781289151830282869012296104707922349324354959352066721433504034795199599590961663650636736461660589715264502024535128431193801915070093152999730083618589305403913401232274832808364670758072527922906152860025512646184467547076841978183036077106169221414272053356329083384515717578652000860345888945705478688582850522991736008104661307978535077673844309571537493506842054520839740185593294968805282599294861131241533794584157196827741368794366623418986605753757049528793827047633648138989613415942945102020429073491454800943350324753004514487803605873709757577633555358364813404879752652973139484464967105718341950331310984117011471575500452251237333546215020704911503191584594030949491342612848695940928642165283292215564234247688457419201597521779313091445145447937249367166901014420093657843974212307629570262443244303340537273879777963468323982387589178274766136907041091052807132665713728433777093915952687810186854041341292596196131353297139133651078298085489035889384080609758602846677845500808996410578834771068644989651255479383743193639920442243712865224763788660727065547639574503328989345543889573906383403325836081686319903780030167273136219173134226673864457790122765871759595667224263308518625519950107708122295944103085759049224935167015086048863843733667248404884835484751586134860000080940092221528511389446208466935120933273161218803614648864187368481816883432646073893493163051275412794979562474148419565800016707028494793454876056996243204945043715121891338606823629904856566009903645692181503293917212368895471477370877486888189326095139266474115050576661583442362542080239068659331961806351362052641837551449155031858147700544278565668943954677873836377819406042762770748618381793786946228882862668361750503430747725485544170675126013620858318262838160133437662917652264224305155258861519732349773053518434875628243371921305602892049311283382805806894399060902907979710564952519159713558975271135733464183409539336125368813940041462027938365682628891984027910961206567150256804537804315369319494434899423528734311710303204549939800739037056921765433212308744676085471806884331495666310437370553587122935314984635414346122974751018809029694041780116997246297846966891277517785694871146420722443862314905381343979778765008799203538651950514608566131782338988871925150411827381784291872679585549700886331259037450965914050776757993083042627155338792324689255181675716656922289431005141290826124135956169085404743238687553618969249501278103481695954815370310778029268655665470931061783908780317388353007705046282476918090897294528177045075191203664465570494545184678559985695366340982046349182626919086299504063542400401950878804399914197546966943695997934556589435627801836682760266973197274294822069323360161296779239802424529247969451549902128579783868746806102080178138677828030196718829590342081814218156091692805750551314264412885188623903008024883288211245037400458275074529464662877544469789915886314628438178893412184294136894851006482291543947405297684737185794620011295873451299520141596966999140854607212650370972495988905500883310674170058845125480805625682979228058052489562565015944005029641374287064700034018606687363622405694607249544040220647820611247682698436651995425477237828559289062341207604505994539764006687991163753944446286172762695894493514301145304697672188401631613695531068676149036282761630676429784446864697888920948838007593699047191691721897212006126749565850807267753670690935346045544941531659530054119748496150390891729641539723342515155911205735373489859624250449630898974962243445302094495916047304586825619855224082391336141091927898331876385327726957897446869844028737588673746047815367385386250819265883832461788878857704894121507980127905021471135063975798586442026302808427934444754749654492580085178733763365187514699163316385677446067271309451190880213393575611154714135217139926436826932185699239063665245118305611371964951762779388489527890568131680281878691676205781365967521488178114790277370457128629168104019958276936969845642206838755839396113884345880481192333603467204611188505002585335510743656455679677026043637702109365241147355744352845029197142400761706411106709336791425529712998652030395715149671805132864778634402742369758083709479429307025157381951006024228209163988524530122853446587602403951719327197326059521515612202620536338272706242822175999901837617147263623238158052747247891253808078346364113277118150985218318427558332304193442137531153308636396227017077965594639640716090640228481886347557318003873461184696217004178296461587069984219205406128115808991459625210387991452411398863352324438022046489550874628236868178038239785569759373652177766441649788227315031890405642229837945158896813296416123324691474677227307269034521202781889571998941886490323852756579480861657348833836475802833841206275623971246556518485410276222566928993594054883152830123943645561866696575574986781353261355081148415758364645687160263179386706514814694190667943205035137511259168933580977177571163816585692567121636294306457512705961355790947552549775515685515312531324693127821143498902303078611970187774014138590853110154207331001711129879650003202831932124673570917675499147496429181736156246432359235345220165386075740633631127531949686157270982200227326088307516435994489148678416312681735100889458914112525265071126459882121109226760891134034923741188116601097273493580701368205674380824769785375311205979312514246952247609324251275881666205133775829287866766688964547496021013197829151328426320814331515055536476049708343917063234536151019028458664314027955235918458973001559227380984877889489091453651873518078928293995818119918271715927934931780529149403590935899451784148092087292193808604857631231235956790822675490223178321384423616516546384691231318291799624244787131331187425040884187733275328764614957687068135448000158259435687297516897172735508668744140324462895456528833091117878086665765170117776287105058537282557354073595318289251143191141198588151591511395183142826828598948180622476646692191918571599550725974360527726757244638106407342409331337777731950747708747449961826404069105582819850332246634060027930404499449764517279963285705010809931721267891472539233342519902478867585055542600294664756137932162253492646296903171416625146857404479987864607956276683755081183920641069926951566322337008960450801981530081096407966738611382158294949225830775327364576448569863303015882420132503107879671979082789319692494376933092181976469214527984588851995757794391959296544187291711841329719838186977979011920160221604665457938856376410794539991530936394979053709748206380122327118277173993932252267912845865830331049609362751824991367605083652210853157770794086470049786499588336163430933970412436958143592947556216282107520166481923222541209470097868384099821530596841169106728472632216035297465605082917483586959827899525813216569826571925828912228075838081331916453883806394437773608239268388524383537141726715216332374375672465620589186763935120347099881883231396075456430816095409448155353998666125837909222562585090394683692330564556867953629523564830328325793735528157537276681029947843349923455971487107876169893710076209306713239014624463656298582315206431411716339815822659432301786765961125781471037858600220643533757104666384651818167848371953384618142474063974812146399488497983220603187644114808080354950035018488199019619545056753717159437229723779631689023916999352333282908258502430897797221254320705873920247008317023090263363301637918096823630897852132057760186353386698410828443215152259205553198455853048149368154087072108030454961657401090195928040916525946958886398559051077894650945008841106505441171394191857277278866490552442365193362323697256638776372808178043334013249165485661647324274609622012804796149693594431175045124876862284814993204500830923077164391349340696829729499838189164808249591945123032343239721226627912019375656884735349182396051448281900631407811670132002325989165209250519966638047274774422855001652396067965722172512307306911432713756031821389815336941032318545678717058384425483896559274526325002419217024394796888677466431601775667465992983934442182337583280776058402332578647930685512573369388252115016802994722323715648824080012279483994949569317473043386292837986560368267559336028487795729601852731400990155319109066012527719589787517221263914128774529410133336783531467961482294941477263144280796108924781616795508311260156910104431828997776111833153837314870603001579298932549779973762230937085699049402644753932454267986446482215625510937712403635689654488010493256286573853914134295310415268696872333423109902332864651774622168487144050705006388262859164889054694961370664607031443357743292621856965894053382642212696229922521461383617035981678601081200150049053372191019662242783132893049082137046416326105358618192174044520519778793782517487807377758583974344315688820132478699874759864654822627853859554645209100715244361482065726463986859949960183253920179746311918618482023230951042176530964354610687917267199274975476025239463836824485191692604179340333335916948021902985869122777581729844448516337484976511091065722783936668799960890457364390929284298739321048268807852547587487395454106783235812117357398487897904819789723010776408342173862376319678443419086231413202143935393754436354263829317799110624850570570519721054018412229964459593889091909571353442771208891616514710819401844241494009587528798050743703801801311410934459507346483318898020537799593969932174550575844831762854512216875133698313033951636512060860828031814963997446328714251188103639707001257676401466903466256237582930027727164396970669340760790880951252666861318233025687341382397867963615267896414101700676361378532933655851818864800006877658931078774212751932726337434346566571593958730544202455635794870504446615603086115010535319248558427551851176394211388364721070899189857659037427351792012845242002512606321333925954392395915706047839252405020506753071793512289779425204322255668389445426887209510604772981364122103922434564571310134846463583466012518705784813783914828061906485744669373233534479848668411527890758724999667442094412068967610771947857204372100830052085784083595408713973465013679877616544524163233126257516944887777456558720444011421815824923157723651803194569482197433982921493179919029771634546884925147049881039937744166202596986453830148995210762683067795037715760104214669509196183865056136628171013794313614985566083622849857663156808724599380858972837057484218081560810784378636051076028916101696683903704163917911637413594041512180671145509202329045701540842706530511852354356271472137796462847020214932191023710600741565187198069946493039492905081740212977642344352642183929170558147788161049740627482533854272571555277674285634141329698427060331765611517133704132250221110764420236082253826480257326774535135448643346841345570365577506089910859306339847234712992080204524527698286743703646487550836147872769668070139019204721191155634802109055154729216366656271087510051688643899882424386249780790157890434866921045317633622068502222932182893529185722151326761990512714004305887075582889724471211491482475412583479884681314743607796110349129574177784576479694522790841872145963581468386410938460205891211979893219702865350787730504757739293501900016373521039675906346109290160373032618300912689012339157650229615591730771580543916709446239285004304891477863751380313459546923514314061870934478508388478143691373560254802419321799571427482515815716881002457640771871841398631071071331739001858723733912201733035634214756777472382763467432837218689889711175434219046272935543859360166844829224457977501579001219747041494427527126968382300519880200576237798093147750530598642869032998989284014108861143852241818035047866707700880489644794130624235290500434382370915267887956488013639440985378979000484090019500920440172293964683162617235909866756407864426047544310270579676291186537349591961992338972421392782552082111351671507854458270648946144745053485968994982555875326597879318822692541602658014538083499129211564565096417093156948898498642728592839951635234131766881843350077646957295568449890458445490642421017990880646131003228239616425675750877402259832452060103537685708242483714881530408056953250467238857218460083533118380547076980931636577166355616334165625437221755069457997971402019578037427962753290569458195230685780307984817579026005876050371814639668029549434911776173184874423522106624860263270293165563254906194833529967665348755626238779421342263770952771362001011572059794804344365717886435061236174732218639013457009790297728705045514382971243157219560745746625047429840775179664818406361903494555115164336846371601327327464961729856965187398485533152508685951051196665144756592053685944655303389998242521253562532995755319604725809260392383426207027881906144659036362190106317090529250935884448298549247732861460533938983325466368052377071265688816458427729995312839971794597484732332803833312992471269232998181123345194478050879513793613179515436643060134384627704939021531176770808460132863402332628898523482688697586119967752638332615927249959495586718709407118581215627650983169842341542159768397946227970987327701969271685295000024195731497817856788757679216580302302064598037899245511843105309738551368767744611588993458399073386161358874277422042277711440519644001981957373418879583582952019463933109740902029620702085400786066244143831701866085637166080010722238707422894599196763320404429728453499450474980156517123099379372891001329968629884009574900448356544697989056395640137175758824480031643917670080647531872077567704664622647397422377771982663304670126359800805114059125114107483314133436193467269662203280368021889261476407449727807941657198934001791575595319525386491552026267892047385012828202183433522236227963176339042999367345863866709841898976190854483618196970305694189507707552358011813422202566648882171407900083095860304452080690616979805003292563345715015097127819982789876750704059926736689716057619071407414390286883767985606858057898678381406729338381159284114067108142534086426101476367323637981931542712924264871357284914536746045264327135638257154533799855896059180327147771829127204119110699626286690752602931801720332685011945310031723235543927774678624174353186953829290588262900529645658785694718539739857119850430021542784718168842499022382456855647398986465880539975316171964218030516603270048855284332113018990389262388964032714142046063592243751580879655107442108926600245681996222179149365424438352234311134866366562710411925641926981049819078858173279143704846675184899613417924419112922561439400052317668586952625347111330518364092491804686346902156941138458723719222100790301035311343586573211491915193765128232739864096387671633956422546333505207925083314523735612751325274379657394151274364815359055471594520728642518160652362357308852796167340551011987454883763507916648653939360239138441250180638614291693052425264907489206394708650339829989793190625616288886060010242325277388643292551429511985108057194848760865207713364399623380840277172841597049445721638611700352517788927645014619857208933040948506516402906127351467702174635087570138201311230956285802517191984886317933948969115871796013891311203240692278014227467725237168536111123303034251304883077125504947913503859088410104420969279457951783138055451061528399896669353320352069391334300280543869772596851620751461791846282717888070558966999956442587471513726817778752809552424936500619150800861504128781557799162937205746888404617807575172754338749287964258770224886194903056355543178531693614522586284451070653135939947393036699209284855586509452309957048451416943933465245951955196201380619129480036952691510555858566299240964672756945136817382358104598229937238163885893808010157517598150697926240574600391557234328819797966237405363132429788220383086816856055441651554501384497909484596572497813086119156079278400902312101657739420117272526632801332874290004088591647717165209238812559371418261812195322198604316811286855219815839003891015268380574602285862950974569874080776928574444643319107956099826339714495400351763267262041109963274871481935952175208354531380044439833473688944011758754496713729252701844921983943693616950203013486271145417365939292622607868744043882147090888860967440475179531143389527462715131251998131897070821871159221749598817350594143516090904491909479905839746126101107550693589684562933464665037127330171430963750502882655960497308145269139729604890555727248247403624015902066703855229199803659959455195048545960308239239436458385393348869191114654162214224526502622089933726979332832384766491855816787937050266565802119931991812917409388950319466784305337277779410496701133734188158535283948370170782431350023933104271586084318991315759773856598890008189505465046942538498846853353119663188924132069509788784797262550133749969437466538136969475120169396987837264156731883477775552495636653822243065063670513652167173864552201315868272383459481761462890315297622879130958936538043889650185128431438799311426892970019756362030791760448721608051253735913275118144306087660664994668299808276459587438544669915838481011865645097914476030724502259586295618208656936520606034878104117018827969099066041440608878391259319122802531587658633016165391885280010393291318878341414122719998094492861218728973649734790280744273634176909521674307685934574038316103544341015833332060250658087987061985535647698752565984581855658880676918270317164251446426273583428572032574895915190202242261323049181525170139719070031322490618864049254608451799429204342909540408849210320561017067792487737038602987991417391906358190835432481355133019974113659775188462498926283421263528495260148239302434095398000012392674342951499039914877047112170888781105387724785299156594990493728533939375566040177761693938003904708754577924491472940593850174358791974754923169022182036335908521929782158596268621412069754366918435451682300678309195974364462787915520700470018764293301730781884003193325572732430357369808726022351983473154100925644609330530035118575512355018537648442634194181937786394963199381997060319765789624169224347549761053067722052882539454982167195873774293916682846982236600699384149002584321987907864680674789354176966972121679198530583855691928188503133036739622364599829985859115033476711065806428903599989738304645665982873087745373221376445561282701319962634982451275376965796518103813237559698700565222553328480389340985734023767707130980752312767530395569766028981133244310879469922242479156613224710568313662011024360270402118865378766684126887659434488097191188031919752778947620337861143484052301932249377368884761206320438762719383651359969118207217530090081991364986818327891591399365333090496888872490886001582443926941689124909044465171238966740024566367354292655862478701917175434069817651733514798073057575034767192319852507051489044401273749806207631646001878374621003051557774891880883481836053598036772165861510577606791461364404442748909563503559241847162757102810339435928439486676529756638641572935180926077661759304168116230658091435634613910978846182780387936275732871744883346544304286820179668999123572977084447442182210813876937368993079681080087920032373979029516577666746376712738444978385833125980471153832377229500144030666306402951418476894028256507703590928220074046508776065126558808896453621184337399267191428671128374285230568446609453463138141749060824954648697595110158954557995967086672666589577357578513988168967411460517489729058292442874338355387716459805543793949372565111912369459845105558416452963165821727715165027195298736822912771400319569146871641998263903477276287920375742504889442557218074619219592961030154875087251750428770548117546044383312309132087865727528738437794244801783150594030737541792725419375546950105390077203634559499728086566316501566665488359347037655664137273196009205203117652936100442666547270436457691969504304115797831664031262694560079013517426667528305774910822516427075813191018795591983114372795544621229553125992336497147763452561179076567972327920568116908928420689063635441311667803621639956926178161689739461088013133169706311808418270018321055142993925413245925047878680552234154803897453268112043498243658537326859494446685543001698536824089267962285834671033614982157936873342742978690171266078946558485978065947750957838802792714646247852323786863837471740263804257206446098835184524546958669638274720586422343327090580539304899020728700025140515600677848363974307969617656627437223592604729021280399353781535741254990859135832101148295605974347552887386450451523314138124304836330462777552340579454858717822721083763715390374320630385046024006568882617988201197540472773486882054456830652443443402173219063725573024959142048769698554289874281567063867121881624024802639899053353402699279811537133071833057384976203550391679414314375052165371746346409847323151279679922944733885635956297919346109256362110587779259915551669170717196744721522699614677237738385265922537042730058284076204557280326531085623438799362218434885859145629647626865107030972275044872498320017675475454808571086310826920538504342655507680569542007084498270095389457353917031396107153748299605166546027044026085639434091747706500420220785688255530594893046524795148272601749835175731662894512144540155799585360764449723359013876384559885193998696297241794936394777822881877346848090537260696496935307118173575665703171313919410758039077437669925627708410561936978988665855646618704063760871473635871525350505939161435188504047421267773868930293549773562220021969096103139983870200005479302710157579393455158853675488361642473533189632964740055804300574078609941419909829276468569539796061083273533970134977298576463665663916914603858917194597050057794039236019883397427711555047534943589412944532728752590573712052762457251681562041236718549498375694553178377463321606794570146696366606030048799799823696483334247028133104488105941533782420945009107158400706626334786618852708045233713036194777528320917507354679236758149797171170389653168593864092638856713969497245625748619288711397115229058030404922633212471102282152019225808170601577919248910199181914571315816923622669184751741386054499324415087155598531868987353826416524568141903869574285694834740099756442749164455595713536977613342743347482768560693935177125591987427610392901747060121320671405985715986768806755554593190043035101335306283507854040402434565854134197871801724430505171130757638845966894514512311239122839222001346043821554055318187713399752928782356214907967824449908291980550842905009261053711485591878104509629973206037934026184992166222034423077375368588571937719510205243522771301252132607966211948056510990308584716106242303580842702664473076747176134354809362557867330725834146541544553770208948216139176255683876544892206986112054275432426695235034895075117945069568466743244016835141607762974300193624853632124037671716442036397090693783719431586733267753840197037792360212703916141638967139668727879593976828329683660706009566703126860261712825980963524110155108546894938586517079369386062924405742844605040786810119516843762810226146480789986124367830626429868322074339920108314292383882815997356217529781092351202971926343911111779725615538830917573670792217248781612997319798821329378835515726474651418415921714468203339500500036681799121246893304120299586065582347807399643605584004899395575494664567840657800143371617025620268090787498542792660417729085697535598239526159207967884386675352788730581836824581800361444068711163596930915860228451335774005670279983701486906487553249767819010953179452909972333629698681876369086090225753835531043860561221329952270717261188901239116182480362369149116913153476491103304087886912818903504924791982403111033062861751407212560619055043243528989943025757142570360478746808555583180672735692787689741431411044246515337850201186559765190340043221013309186689724320244045113052103036419144504262854458393283052264246221064723982488257139642486039526745426935399094893314907166016779633071879061525205800479635504398087330305681049754142795062180734438835034695511546094064245279879481156008377383242146005075928846887153943768690606635271027721269545560571398794966005566414125499322140184746808016456793593726846965403084760678465508654510584163804634885345984844957853117514460234690323804242981498510431450960845757489828002962407264307826583787100960271807082323665799330731414258351058784275082648189100631969511178524326946219294573725108606215551170294835398180944074239015408429260975136003092184814069408278324456112672909261630321487353379539842182253821218110332432375611225506852881574523109490393389237804665005772610481915468584900211539260843311357343541724219425499528280153419014624066840704197443042404104734972967251312428856408481559443006237211404376673820640121309531649333578106819078712931968462964515736592951297490695904205851859127009338939582543038612850041606112028041727481140633607739338340457637286505766183592720224243714880904210475778420343232540878001819062632172075654930070674609427738000897626387038493193994536113128837038041048290672619126999108563631329502719550468761488385580605553683116845130797768816776276768014410528807604964354735916419140110573740208795546670251882313998656662355900981604405742095949558387079494311291420587343964024693526064745194426966566651141149142163310930416373197715595650780927507821459019183908311599293473795108275127695592696852925582233001709251990355298247492099515504184253605080436457868486010281041680573286111453570072533954876012141910422905317468870086891223654192997793148179218093570119073285031955256324908211504545191300152603612397403799836610741157218205909591048080233720477571444592917284494593439248379256600444310709893009686978324836342337419865546893898460750229713171181125867788479017573846722277305168427197299881542636996111212085538242208713418252742027128913635245781160658553689062753597867129955043107767813733705739949242893192669293273140507517829794121024471093302031539023879002089240382832856492920875195374290055866885302287529835807247984613525168575079785490206660524462001192731025976381971019118520020969577176780163059414304994903248260638291070771113652823832375333225397070168407531376510560045457444977219129770826807157802126281900867080069288615931910806073978970480712570654076822186315883416148126642112528389947527904560883469004136089983652315097735527531478561762042599103890383740411478193557099241921500771133561556379029149294560151693875735408809561264493819953374435842684431297813501883434184926360265189012694948652720569355681782431747081415965372754184775555286215022659804144577156656759449112197001689334509146133627609328166272026046450615204619017375225780680263041467768849305411685575882649809442873638888645957917744162246613455418875862174174385624235174611693996966195985811979653829522072247174609812863623902003818866537105334263652426418653376256373604993368136900604785368759292695412080640531245424383364686609066801792677165065293323318981410621248695526128134210057084187860893742736089908676229297023587424522426490461383467227619801558395106881852419539792515628741814143808938664701628249210737300268025096401076494679065990036546635434999126383293906800104132761028009325844892921138051598133643332366418982903200859963861606054547395313153466843703856950818419649277759083297949112447640449968874461522453271797824551697695780659733507159254167462467108054357867969284821842132902504353799019211486464280249188975548360189868822688757098908638340467530553896442796734036141833428401248434575788995238966192109232040978468801427825801250494475903434305687056156337231074627053112084042203315496092933979484216061654635455365526413119346883615169672525965790268730445996037309363741421445199487226742148635560486436898419502420961788251452767047804570882788680838534123082017720560922925097850313914488425781207979536833395536213954577702184410989604910437250535246714281930506376942398277572681078574665455601491523099962382977117314931313764434581990786747461819032486248537577035307873507944204666393221670308226499088989955104734582163165011736776657910069139396249491145318056946046319177538477837011358251640681601593271484337411191484405716066513847770737101450354110519763790491350979215712769052023226627481037230325697014892361701878665052428768015058366413745237787846636967354038917339632486347027963470322398710460384089603950139661432249717620933422552835708481329737193204487408310483576509515498297046992730994377282664336256249963229769291531635473399922721085732724600522721989930795718767636740556553413185601669186389135196168141910473992836698965781135075247251276523454876270880751038608073379379078131903676224274172362106248156641487013867785167049201108511143293990165408104205108533772569017711579122049978264984182170558235545712449452739235984205884087235608421718884691697929376202417422676914052726161228023305034198068641198101712690812837256408289728870509253599731044662049140200070078010849499858660929838309764032573382707781430766701160572278414274945135443887785358087608264180438810425313605977709136708579092376604815791778928908407761913056979072175987904554792180668551278945436217584648318945295764878530089556710495954312157628934128625480888356187198162622118939850574256529404356349652302173690126919265425785958315876866915319055513561368668382769231674636877236649748413542227497937100197323351617388418652261088363176383802477600181762551206186232433181164825633605708096782824537332747182889978718893277467972277123563497830123784159710861652037975006514457677411001478911690240922118445087902626641744091324694258903484855378976201667291193831445804334163215319631115468777686920115966078541873006086207130652623363686300123962799479665340270803113226148418323915892092530558778356762043790869363393504522739319210251926301261416697373862211374830936049340261909206951786353667785863775969598348151431573735138046851843793141176359359985919295937995195796134739520006496775983477631113011392381705115268553395708003581594657057016377144697325533908553032785179306702821153595152159741756518119327995961865412682695862814838243879204562726626490130180834184633952537443168295617162731889299146141480919615350077132839492679176624501396548613897936844845185826362380239496295078543273742754937314863943367242590924405057997630801069886391751073219633253745531584627631726617807655544138483523448067111956724411194702731692513850832667214155304160071628009624116019620799463139825345969255187330820467170174761042814957604473428005904186608287741800088764219921625371144095176646684102228734020649919011231667543847787993666267611219636696425451691722073902622132772742509930463918932793868606356270958395463723514130056138881560605906221882153273059481724789375301584042850561009249769755806596918180232229576759882998664129324259346651056824591901470692365285933459269712990353478079211307709595983799265192181506662049693550534796470159151828685155245913698151329564709807185966327098747608752100667984671674881626404718090802877398766531224696116755604827109144415214234254399761051046530432699240592601928631995613208466047516039990028159997870011640749276867747478560958301328464581393738920745200531235264503541391744035295275759857000006876167230488079208929696747182318869564165423524660208181034100077218246872737311726807737734057265915750300344739449176096723681687362166231413077978827744683096947345218645847848089715210458236249805956866369432711937117540075825135896183141892843960415841621723918896527149377211553353460297934236167554510804234022348055110194820121337203266487201185580273458902383074143417275245150559414615373649285155117456209009675173089764359335628479119869717939021835968629283582924243406808572599023679811591289290734501686048976535206605669560925909497214921918931291566137932827818996600406810276583632420465882008634551659873515749100531447855527001731760692900220017249845875625835442132978429926088596038685981405281011729868830972285409565715938070559295065086372063086822701308833706579773135925463894053856091676391151206270470268371136832867664370830221163255650878118868748261255230852144246131378064048123929438134158792106622434742850789781850618234526645426672118248976095991841460942515253537487303721882910454294604766897307215921587583214505477610231607932029223164792480942107613737295002685491516326278818335210999466845469120378102348136132619052897155767141901368644492024851190208637561412770233572337770926604148082641557893402098774894269682488590412400180664281656716252026425715827274444560559391600524197650495340308733082644498268006597675746097977339943475333971834467732208267630316766630029378376309350800045100697974104064866886896021171064991775678227736375127723131257449943125715525736089683847467376446338822282954600405562008155257887340022599033098960735302542110674704216041204218292048578848903187215445944880517546378466950520714544710492176828943909269744061867843705156955317190605687004898179195416487407344649092888393334807606733307968770665535154590901093686912416986143727426429663916889279121307172712008453426007453601201693948000015999786215419262433930188331324105077407736258072450789691907457248356807861208670468169891596931216301112376381594906009787198423705387439494163331289015987084175370785206702553966177688835659886726044280719917169145311534655947592325786125306922932937503042296419288289793578171505379125513693839576256291683229704124492561609761193659005731211623837297855334978283062049853730491797487908035149204853186417484806994087385542545773954527558106541226361542191262566729314398751327689757033774044184233636740342632330411859534632415176669294587001039675521807356607530338990893963569100525425676533167788529818803969934435117466344765561045369713487069548284964698012000358398988223810166516606432328702525440155540910362937637099643972404515418661016379395264128404949898453154183519529839704648137136781936796639991154842228278324643861276331237000633106622773123842451714133110486812854244513116312252907077458658837187086871667556072561887057190215107866756953674154397271440193142885556159497733324200300643086664632114148743660735177554467752201773179468841711598457072755194744940106863505139867674255892890950769144054861291739383274791420423839423648969521408790566348316984074536646428735245585971239541318894928713711999265373063996034047925485737467678107535497213864369839514621162438976347863943537211378948042002969945537126385825506145315048750261666703420741425538018439783877552225749157932292385675508122081855630587427673909746080104437121601712530360986741072001196989953849794488534825634374054323112699375259382793543695355628462833590274192636331414676272788339294452284736360712103168072512761827242517377641194773488439239505263865124177595927723590090922044847946353851913413336137955119737250920401397293979765161351403402311095201340252821020263174157463366483514240836219882988463444914260650019925316451786694364274777315555374486562545180238727461944660337710119258629306015466672144694349814675232405996961371094319622344767413849310655958260960027100572922043095151904578952383783345879653651264693332795697717147449558687707978538174219606920830608388723211640789986907228662946619555785174173106212566386529258406524272252975832151476021880686189693894178442629559698639675557186787171496871357868298379883135906111447828336252678657386389674103428141088426649059960368880532463999961278846620121847442340348578747288806035042287209418645164615157976758414799217747260876467134204698741400108710591201706399355254457178381993848110409927186732362909752762226895158446795692986336277218223219538488074137975344506558972539823491475362226433337938111372012032611291723422411218912473303589941785472096014458854716645242755067066206136639425346686635957505227067145050250979624280628528343586785690694644859397068204511245658121800664190531582780137952538337825869087796769257369306326280956109910213676317174982577803634283036094440831640367819243102225851164397585677390700243980329141973578130491361488461250880152317266920843185760303600716767748980747542234014518667856577604367080699290236679661727334536778641954498148218784396829311815871398837015345703201202602606915858143837949668888402431859704400892591499158600684246047407236492957923474313866197790277180777777992813678196472726279147763846038755305877502081539469040908857038235292285112191077666583516396615842864764347898814643702101293034444486435802779509107211011486561771916620383232763755015890064014758915194223081030087474946885258083846953632301266699585393295873055595927297651181950007720717924368495813837310058999952281110634160982506343778095457396594915387058441318583025966356455532034522907064172835450702401336963149375639682699914919667966104625933261723297607774331965257022380131272551675107403742606408913167183727868515120203436813691045576351392061379788994934012675495155033604764594557264229523262653119908235626186830899800089633392926784612142758436513483445965699703972078609795032902997875336857703955501666292160709517914017401907299998393970277151794965690316343894662968107134670373790116971617559408456178583047830675641171913546215855828377556654186121164974026556557714735754444735008063952365352963520745661104037338252828973692651688638342360713849617409945139971264274200728627907399409433050352800192207001470581699623575737064613734114828651751903559195307670432905394211579014220540145793518983421323708162905893666260449795144250675305572475151304768632778784470735461997391340442687939679542645720279407844217694729171001354854694545169106640114937482837359721186055316537646323970012511880943740342694311608008803283813087444242786797418854877070295492836391736275521990729193899094522219041176868730268063988333446142390670519952155224941188211582472027749928373187793843661552406229262616703554154029931853892464614592590048420027908470406721694195145349612061384903484892787368616920839453842014877142598148805057747131806729691892845761223168092402977611425278749172030461856453715924055186041790978920372912095877813778999612229739481334510957377723779138416234016565486194291156631661748634950313843917081301525372682544100088803321994466953351087835035284625029621900146957663655282082167100477187576655352235849716530610309409996032918703970525017624825278207861261296045711889413239115117047472874503218627386160817363846089160725021292048112409948273278319583353394993617547234042697697240635678329783835004338794342013082600278965402264890743762131979867538369624454324688145089041870290115160353289415159778325012253683992703746612928189543548959991593182815260335052939857642231981334688480483619174219776967199857277667844436258679789519438466384505942670731472294296960324758352682321181885977624413385812658125502009439877090904853426865637503960090317473629994476829795239187895778982291747987910582740094430491517562030568313423866694875506952923451856627322054139245948808717697852375843465909743274946075249478101361660019419593094221951145861385772332620654617199023773447736063939002429114984810711756259607105728687783778234016067144389484118477323707148244524560342834122325324462156980867300308274266851134370634302354987131106327556017340420361454280644722555045032907009170707353521524467049467063245126497594117243110798909916119174377823180963351769303878762733982622195207945087051146317777493391198872042202626063262765948845278429180156230136418528232025672808529429940176788652449515321594377718582608661830269750401686710609219762323498799715605942873990584120156218141751403274084847275686011256244241057845497190109844618147471255793490044247898154594610351909857802059057417313236440860721812291662298068586902258400061227860908470476681068414911975642854753055587800415306444796754892338032847129743214662934195454964956670320801281923790243982233035075422327705379396406162345496757153028518882055156941121546030916455064705257165934855348031763887176919795278075230001442147915179168587220043178448772896698133064492477512037661159544271722322016781680265042937259590537043312257605386845026667153446198047359593531192716853242326017142840701569777503268929181053627655746825911987859231558358295346008833780409933137959485769898538470441174448352460795665940001246645321577854465893864710837276938354749755101642241989443643436369765350693977337619772266897246546354660517852230809195911189681463761190118567730777759378269510196172408767699277936891473908302977297554698455928069436397061487204481102121495978678650491048582786427465461947407198850460308684737948674639658005802024260904942003942345796227335677252600461499730073431918408206278970373764020734301766577284722027975415637308025210991446523215690535588172548311402644303397966126617186422174048480238745545580145027103346890695242096896313192941495827457726919899321887578066093606359633896953512884498762180455250455403333356554611316278506125210788349531961032147100935991108540567960379112764281547867448585173668981456296626521044895881413261312333230696523838792283490292796707490826747039845123198958333788442006829121811434038189902310150861989362064000603918277057132925747370214694002700933901360040452499324825681881630519468193480782152553572663173038273092056294286025652317487427798095451344880949691527683168255503471328703445874889166735000157639214676495995594506888327735905835090562474686031235240850904846592045969830217816996359136707692968313847374120912971700053743252319760765582572689544435709297504013373968942686453102245676044812319672807746586629477758730754955462615700363493064109847935481301033726104194944767889271566386552750654624683023256072227154288844469075772320520892482062859710980699032343565572146543280574225369334582839964580119822098280854190326871904771775460794844241770426058693299595882115911495046668895817926716066468346982406422443712579315049907525976563670559632780657915626104317620154509257954051625019806878534678850593090697552927998438330504406474602799042910567887984788827086233438440292815665180356988396467143858109974778378406264885115452553306006326302226871572018421112324325848964088963296717923485462421801036605309718497663116609108910064753021835395853248271574389927747118723877761066042333629781667670400887446635327019540087220631191953673181106629249025930381345648989732682841657970667369465926105038804434273030621758061916958176960373377849947467571887421051324504346572117176670416703358228936116103569508919011129538239636994685763980948133001773013163724480366262066796315146434628464836703369204888057828993904302971394377260305919245646006392487493834412629753585343285677283024262022556855641166516900375680031878034987085339323438989449773026424482679018603168917478655561075375139215453886621924814217997306469225929934906163537181690286700225346616638645824676276542280097295451775699133372693131750356245013565448879253240971089034556970813038516668159166017307454429350722430072968870553907950376444944463850567471218527771972869781489351293042027915604530265848789706307657898404003703985434046444385525344417176205656482302441000699101222925663859965317172034847861020767478944461043488693768402878768472708525174866048704717087024050454834934115304910400601836418377026201130657194654934510173950202529924035918757686020484182045474991824481362539746846121350410093453572248211751056863030671713893403346169520274437319924840735335254685497105038467565365562313219478319225620520198367295963572777412906727609805617947443133809422469403293263995457368634264225657349828958424980085720142890307414468722400061203841831110355843394139239881511470379239681969312141655139028239316100643775754073536683299500274781070948070599835810402533450529072036872799285692222374941238748034610036112006651377561015464790951293629464278465241445658350572015826579318842421033345513941057786098066486675095316992759654031227071728286891887054502475493944067698973024056668490046517038999865689517235670941803633278063994289803969658341068730826731177817928994262084510209353234969927435717127590987010932934461481099981075522668072369501824297857256039435422360521300601090997316834149005179448427761759662283722201053875245736774970882901609076364641273257584322893532760792836225746918891325554576407896811905474731609722086656933266718490037267852846483270770866152658888482506582670336910682306050371242914829129823111546788410758242764425443384132647914739153188813664989680731535240818436175776719987869686255146715629858580547220576208316213252662378379371067251877633303576058119129525786153945894451149887164868688289713546664408148836451044023169987986079246021951717567221809500823562939069498939049784562500497254160875603322023954146790841615182834553885441999815563106223939942473587245677919091383857148944636317605312425397322714479862227857238620905530090481295185732258671488398374020067972034858770934028315223665718131897186541610432803345064288842312849408304884064639682253276838566097173184539214642643811272261884758325015416695857906865787824765192301888746660497513378032009327195813344827689472429826316263532960869478164906602040033773703210639949849004162490715395686319983975609512213064245463121876972961190310415444370228331787084671081880380692339341308720255615789499095805817602330702944646599912013443043039225602959436077032316650864200403739989539115261057760512574919419147860662873879885896547388319243897559889455500942672658243020685302121450035216246405113068824864158279904085699439328108478153981670163049810282282992594043246190637394153510143331706692710891352265278476658674353390149186134732696680824823552215613704665652388153358536469862984056737796017384220924748185480202252606861354426770024154077055390530013341671967809214318702454842915995652003243916720101392849842192271162283189586281689396718091158960274089112618359597099920399282306738482604376339616717425988387403037882215753246568197622550078212852653073727120826870502028936798948129104636705316926694073242220076943380605663393901075776385756444999904269050008158876204077565555422511770814007520023207782685484948030314660917870771741780339172473855895311344847888040463371786334195393640509820648379325266884218341524061484409209845884466197232568844525583069253688561349723695499135058466390188445700782704668324259321694881124488475124749291931698369315098786957878871522478765216333319192844707331275123747732872419118668369384743613212402685317375516292931489811566070116260853387817923141225563797251810346395423309279822666115713447278676519031424936248343958107620166228849102966797629046504819341404123427611207207830776842721691322349786972383790478597265695256787309314237407217279686624703924094285262175785701023018852408966608308645069262154063921298751542224096982500777881915757195048954304543414386785610721715437234548192426762395604463888042586272776287534572728641093530511051594934477651133221686803440443693347154536542150807254006936330081300053203763032060967757169123969466498990485900919403199637380480147761706254182059838042580320557889170324082057691200305391170517337258437068869680148386144425042258264101811256791246853650530427762812057337883414920408833704497495810885328479714452852458298857727778922959928058532739860847745900587571430148049750636853430690391227041048000339394629162602727192267776104646579298832250970047604011485031806303128426679941515533733052109366319626010008901185382122987981907341384730370863151977214704332801733827560479170196514701321664145980560502009275311770717413387203028963617084604597427677475424023390590558122856630997162595173869094770648622494813135831196729277296209866321993893399588252049806424453105154872186801221418290953730531135999097228955551612726898885341787265207572803177615231633309534436091203111725839207468457048531581114298738459974740539560393181383020940754878213223929201199971120140523024233982028088888257181843671527534750636491311961342776982930124487986201969473411069142631621911726120869455750920071080286382022406673200960665997094546179140084139755412973320984240938802897967998648866567625259623732043181514351108061798066828967280811211842838324312129836299703574169849816821441021437403083683647686412162845738798266660571849159776960883358948073762924264361835855274768220532756316442996107496230220763155934718923065414138435484435371319932306071517967577270527503953580840752933176359381584152291927919560035613427177135764396650973653680060846635959221361443430577086128609773155973727883510714052249976852252157563085252714609361907477888876028282719488005435751822516993787273242543901142364895397163131091745960657111043078807865488640731506666338963283052329057957296670756043694403663412718624806095908132843303920450530155489291411995613616486800987690358770899722789881182719741044594865826627896010879907564011098583795906296895240324986265472158848321916130895390615426243351843994676460219821462150474543645315770789495880972326361275262540982126544716334465036900254263031937883986451289082003333091563712122139844295847846120648507072365599890229098533517704968807862321489887990303723291700063315460970331312030682900471030199641296078872153623802241379864127651872582741805294309082963911546572621040440679067766782252061804054890150196981942354048273248677480625613366287631811875483760711740162805214975308944274331427013703623623899482045574772926146088059014623794963084382386893846901628869357903300590800473158242841408235095377251496760338693309121109431088904634059695942518749203612445325119295723791949856719252054950483697591989274397983513143053030900963220581449898175022355633537003739119390977382681409400560657250710011143286427928023037431540738944130072791323929973026369094304145055724772368242181501116043610142908414087941677444457108736304256192116782264461997701441577618629568153535710329581026492552452863477842750759871482611396983403053725418245310647894944169440772187981612412750032716660277285866853430614138147798342048384287812388417374957950869808967713949870466526044886223274572489413442851998093497828617658466657946740869817748010072261753612255560087987164197792335888762311171310723490135971781791544414923539837358978745129711319782676308268984879138787889799922643066225875026415063058256642232678809882952552697504586355242408701194601023404479313075733984721517228099900413496552148108832119446309701834819571388431968662604528637888869443613914839124459980487744038513212122223603902364757087866632925618563761729752848904771219056643851380427842658780638212804439980680166022202582601713670846296538856876546396448853495337325660174754257539052318956708083311491106941490732942906744013316982935571062765648859879363700951328240604207052390075725493564761019197909065950742954067870106569163672051930606790504243613998032854779419321019547479070484544828448837728247456305600726505919433523309751539418028446108907928044002424614722231250635388190153041664919563344570010244376581842886750786723378091529466821900570244964163408632017629287283750149140938583175559343433325438567587046994045704176116438601349990022773604623031604683067725865433321845443553102535199193900595419652383259784328443831390601215169449752090994890367419097760170833715627937191321431321906665497009866837019577812515291470455249913843616202837323386338713090889920968094623466510125459451899706254278423761830273245744721711153734915241017200189048113768683056542668022754037432818315778477245084158503777978832633262110652565026026680279540291317511076938392959241534186700832158085996752269240633171918099434928933212332697016391605403233483416947520618598968854450057013855486662413449134951541198789765536106358240710045737571549955327720080272123507654965713948155637581120191496618443949080859782581865267881767688040955041384073354871305388519782284493020707575872452955053596606766944081132218680168870019859935104813617810264959569620884328035337173397351007043597463689019807002380937226963209931707027166642215754424789384320591576204527446281903793182520661891726878481009619794520254079496713940678743015750503296109975060998711546000316854466905300220346590274129802242958831943453980033166871693385319012540682668096017689648858292966413692873182814373533012229054163358211121865392694292634597182539885750629507893335040438303165826436586798538104157534218598986649462729106400203213516466662551618568024265077826920863188494725200469839101646692769630458827032701028060092962487631622247146630612421769688591127675579457631646392287899747722880278132929255589608961541547265200145362442399125688302764077361009690299750626186575722142646502382780195028083844318325522480529550206459461251630052206060502363146920379814601850803851195334457812176375760299756452929052375029535642021009756827999927521361194019206270405536545274391100069160696867458234483024322229390966344593510870163369254626749619487677038420176074122750578182270134550195617392882493919297567433239743444976834721685558474260836285470235070887404087320135059466726161001617005925068729940619810521989119324453116000707427909817482604096104276309553350890691658934393223119663057506145197221106019713048936842232720973330022499506590764917571274320137557284124216581483469868244486719620911385217763438905248372336701548162526874040548475114405764348160173570372639000173318693681485114639753367447137512800207899055823366860347079927111314263469592897474010231928349351569374156885410494881713637339767137525663431697291605823323736695158714255142890789536500493114683375923298369903611434202817372267895015868874847715647073236351651299604328127643021801959957954383518951308444259106144310016184114337764979242557116606706156568164840762386741409307141883496921096602921905144352869454448718214283906862952323412477736532727316619142316116062295895269895530469759801946703966113347953320648863308635180270239204486218615542711920519573992567879722007468038403815714288049359867499446909408190793665298394292001243415477712219934918469596748647350101941032132382522050980730484784009372985958782650886414689919164048969465901493712589087879628257582189835763525882108793021628460638014438045725312747687065911164116662253138982904767482517403967479428878316504665113521699661052516162006367133296486912337900805579585342336877357066214653388826450184481618990064690817953411232176752074820852450445656905035163708725532766891990527454916881322798449896496912392262823753489260617851585305043925261265068526159335216186747362217259065761057271904383062228505252623371822494663337461652607935611557843780835744290674007198148753250066859298468081162667235599123378648039693869864284289318405173618879834652127976277895815934838642709725606524444058064129598925197098277148901594777651309710968928784411231666077207363255023809482487666246876028047365172741307704677151804864877679319874634537655023546949037477961698952274395729552370358291322328696835276138530853640257797426087760357870737493129007089785820995991126747873663960208317681727879677911261183130873980434833195571116342992729859275341799549496000037809916191702766459085391435191824803582056363363334642747921888471636509784029516338183291489681337460073125140431581254683165619358300069126221469133493910103661373949799911481720640495503578045654776113271542693130710108412513318081549909684845308552290975921442108627379578728023872790852031293568493400209633489106238721883895160796846384807374779722294569869401373808606563405630446653891359511013589953507342159590959909148459010460170392672860186332672889108843787566115454373168301627245383929165315449319111373866019518228500006379682063889004391119726431402612154873008636818479160164363553605834607096685727737537729516323295808410725456771733076060966458908220186484967578344312848696758992301643781050082376428134909569430589893923823559714863786199270171910991973019360133894140355606957383851282331361201540036613601038719414198726271178986886413813904869419632642569195901293960382890030976972039614992417274672797051468258969162327685669746248668022478354456523250832482602924951369721139885124238295416088400928233508253542904914965747547259611686895480825430674575742708409581532027586107621152672879265434982277373673642373108657259141560390910041231560856347995816068217265913759854478889507714462963454163247731692922058802122991971310840452040630837541498729063939355656216130790542285423595653737940976586798828024150718815505045347806794845380383557158355849774744889420395425583905367170743969591672138776095353139690606376958386258873227983998886800550095324674381841310674909197030012404729288219460131561993219265597440217957800289299611177047358304718037942080460939190994433501425948469295997205811284697535611473362467687676585701382305163978384113050769890303222287510366311442636681647472020857880584610588787228066687447650980080088383933281215164671788579631216942894083590064933715220274799418906737254225701765912230404555977077645992881447534433069961835410887465049431082448480597120308559286865260092502423585368623074366498920378706249925371604538588932172646673272383026495056763550682410569378167183952091533638591902076295786080688687565710198305233068752110278672952140168897842104585758233302708748360934865699811585037338165745821136745004893897702206604046639783438707764063222110435082718747121585180922295044825343717041963577145479412072925836326117372485459773249305872735155652662453195245227814214385392162109796068006822532939015557602923613707632195643181451001828408471310283412376221616368219515806936039274669581661394608839353290069905424726649790967725150467275032420994960737760317031636673255689981726043793430889879123771506925240795471945838749389884937563167592682602199212813738209845541896740866770731431889964990934419148302824077026709977144922408361069515105842096572088414033262279855726029707094713330257925022662238169701980072677109245465500405514118214895527844109015152231028034653880693753255663583235732819474015158248030248372846009540184721510448144888648054610582542349022213993897152295022736495470422464670612834325736967942810316420449627520748109741288396993653225134019744180979993428541048070121758512727647397695429764798794433354134540634606331233323909899123110943307280400196574501865856174558604095213448247590480350571692690236821440872535519635126527191673655845741924234036010798524948003560913060866745486458961627683685739959132359487727887918193166225424079951936971966293459332979088535600813367570662969792900079166977906720432276456494390334253764061065596438662529367857885994704480733401262679471988133638880518411398708852158468181397152460040721213345651182017638462092291705143627233792505282864692148867121768375493439153790408351990461942558566829341583862460001262149097314111822261445588152472246386762788694505614822715564293138778814569616736677327193355411666932655301039188413833892331686524655696487847682180907515033415779424121436083555546668950658951539378079385618727451744354914841397115648720400478339249386201204966922197455288209245357855492617150920734400416581325011216742096196079611275014468001460189922703004625375749059019714065340576587972225764123271291427205996434781652625969842228030867946122653807534988488241433711405007641314866884019047521412541153735143982360386774432254387763224407617062143916728896793692209224826240031690497300483321835301566236500875533416680286766192987508378258106768816977388931481153389989030797426513506966713318453489248519000625128542192213387365186019857909750877975948243001095003563577746379427021683243408502072247360289634055052764527969436165727885648440504738299355109910440600428320441415339122145984252319572429671483598146718217735799292098373168624900760089968059330716242024798829262287162541153154969711662424758681065616752852064910374630149817566363762702337682023188147082007390155786389246358739939437549565011981716116570882036903273894119304204905850374278330378164763007774030760544849446966358157600098993079872168027491028169959078474711608917409355640317985609872207940857944412648046845827672478545923072793944777779170984350371966550038392007524429330585165327525623552051391238904886711203438141380148640751733320358130001945229602561152440248384420921270060113842002443943433392775057783020521148273344688410918583764085313481029870203447362757106247924804887848571578037733956701207409490818622987684539362664945330123897393912367022378172797957924823556750507781505347940782073790259564366297079906927179031229472540729885444108488156328265975678938517471694396569081951371269546518375121340962053538331697950752678992775937285471279918288881126944721212370124667186954512213823692634260129690608631933136828255668219388241221519993217248239555944906821157719552520448105200191304865371533773619732400359251677570566854350295297844223499152396149861845290464741036362669593330278217324780848644092045665142480431351062715929022062097414779326612629341076364354190620581090144647120206999989311256082302159476894667578998190723311786334388155128145552926929582297070806177612661790513615604810542186023525601661440968866910119150521606664969249739864413095360975788921618876958249861188537982805088279799956344695132330976358054644020265241254285657880841849419575200093135418159967778482324584077678347567859984146246683288878713061225938014123223419788351114637148228213730549327601647717153640982450694595587744244981884468376384603299839253187163197738189129631129163831453825840562969409336223694804636505134150671379093492807808152841983298752209922329793302526784788500492992199117213700440605560877557724946052373929946189787638285122796672404087652476524880347110663630129986298411349070182779805953310474203461044243398928135845029303758002581358312105809694505697157246441472496330442951423320064334669085111349409676666573528335509397685932817166631652351460240382147264822824496160893166560298239886514743006465554037302684370640380721868352723051332474456879361173319267300542577527556922626364393095476861680319671296895038894396174557668947690888023105379276780413403137400049853628687546202065452971988268936911356076152682651052371099529748091143021755462012154208723305661841920668864450161644164857633830240539393240356690080672716207042493222392308762776711125885417465540811411584645139124362295239483345407032760569372927759352145702518403328663649506501869586240487882299614563957309163786559515290948195268429447097104794080490564074791915519054200076795717125842628436073429495997967801876379698016868563670826459546724588773947784817266154959680125018554759391842968345706758741984272178059294598769502536335635898716414444473097842569947952146216530886857012750138820107252247893720459492871417931256683853171343928061878064973011790131617405772259162157579794968656773724068224430184131737073902623223253235210111019491903937583964859149372106959237571127540459983159981806099221455697862562677802674600761156470342417689502658325826096493789749980730631699254177269897840297191414347500367318698198739609916259785568551995203834585516547186043467771696957258375344888145849256283733085830165547532031821012297003539471322265510217324066172892743214043956514585237169896315743731081355899674035761162131945292213808193570054714020848837336649572986985023626919323233336096019254282735908352419908220966143683292300308018092649935335605482009165094586719125401822813170905604578600567908141653360234908032835430814779393249838468760952743126586658534007834159849032058730534084620178660065762853871666580955606921146559571039925073209946602002278134421950681683594132390300362211469915276750449814405426196801026325799210307411889872362925341589570468727500646875504900445066663229227500912496471896894963657513049893309110240193008503163552578916993468951135748980431661647347169478196355422024602088696515821357827178155962342725732004851408858337844581320672202520965577893901884450935557593805478852541215682912478326315962590505876490989688024480749793353627539881824891733397517108463937201412355485717985228269260117623717331668028403935631138624816849914185507242142656782491401829543064305721470983976958065342089144892557350400842026624256092971242482692861616073151042508380577636947479110450816202923877304120456650441583330790610125020772965480940810692283793157923014864725766707233622556330176415182306613737221547900390609243029218199540470275927110944347157289698728134162128136215248199817257037272096953173234881837988626009855596818987297432434625091640355117774156816881536886027243616356140258549316638907803601461711807999368322322608078071268846703478509811322658672763738876555813368596347526978681399002960682046607845028536249361856977239987654772633627932912229283354025172917200252634760033954399294594355065944493512992383482923539357289939928289300593885634394361165177857185882519485060535504933047092929515512354301823581281792363874115761575781443623241117285619529186615397288359005384761034729787982281207840202118983776872616521085075783712240789310484989506796178809587845778500028698568829799527524024975316545734784883130595784023911722666344156715211832691476909456064494938602016941347901586701395263222801380044450582392623670794634086648832100399479273047776748181175327395243436098866333942686138368877765735936258296994320411617299517717161529843812567565582652706501391346763053378597028972584286126744154854369249756743577233729923799165442537556116574840040350486689550913115021823502453241249419120807951606816285170547576889799138798336054961457994188122418555841671453441146877195874916929732896837369172248950693983820035545412759229069405980317590910576147652301931102478546277867796520875974271498378593140361921058478193967326850870769822302321281152152799745608501309520003962920615680567431439172110455304200807964770969446130657379904955002823444581906859935305630759505495461770620432764628539875739996975436442291174898559976307582083630124051737610685198574356583001795691780670460574298560902366019096902416506450176012677152841835452785734842614983719661066834776586740839946373687295166018274166830508586383567046892419925078224500292286595481162508618874780952835528871675825758588359509351505477896072185468676649136366223901397313735651739568055014448884684201042785053009897766103232252460829987950596385415946062632279250995249214728868572962871642567399526131613737723439150496234113093319965219013965037911924783928444101998274354260669977914764409235948846187535274383094784303566058204099536160130697341773689808992855428181678803259585858338181172628130205296587233433259465642645798771693646973254639061021853446886704960839336489542595753611220513838347973777498607461866105476277986123035424959115905217004996720252872538314500056633831198525155261583388624117451683001951121757127922330995392532004093574246815554660933868055219393421831891571161151754017210339960049881127486143347192450926512213991567509062298094411879271247941305132988989134350559033543221307009985604147561169873393193576395454595551244665344038437189885572332722525270004948224911061465513332696060088766260771480142705640948278134663614647471392628238534650724305907860271658351690159710419937741566862116335293726104941866901889501032556338107855649689384285307242804628284613302395820946402426928594470926590305597334273130594307266343331794994928460497911400586402713512039310662518404699687471952088527507149416428253126356901543880334838130818103020048959694771659939640182447900100489311620247900659266943039033724955185333821757843865244696736250872172956083849991978395662580328194334584966741142093242192878263053900877462184721199532966212245239479290745646087942132543538392736299925069906286270779506123405998239013887056922197482799552590549705712902570513542314726499868617208895232362653215751439494652876901404928385938253487196160150561267365201980071866406269515216477164836222910729678577980284020808636003135174163379753466451711634911157618851995688374218828931469203486458174589358447236598598459371083498185746736458615748581481566135568583460899739757735192443767967320933964559729216633485108400912473347635143712056136103597512127151046829296133301934472169712910495402968635823606800584719002708365890065411870376176397255945415910433282859607851539385980747846559469299206930587204602598597009009306717397277484723202754802091440155116898462692882988416815158678764016389037988270531673018507214006687958993792036731084044690465129390565249586698395771745348038216333068123640923524950570690004850984482412885020614960263542112303020205218879666741073619865431929692371005920146840364998036201506677200032553315235319364435504182603718992831496556820564496425251567798777627027360606775832854663667103306592627493856375395831426623376694008930983086911024115116975385269587735473890296117351609072001983589782712691491362653466725127905127983082943951333809091879099809085899382950257792929890335519833185207433642557127666272792288483078675981951592448780924680602036591079869848253980737352396780435064814631449796162240766171362683424129934106956298399643901494395132337989082563802228789025202249996797007663662907041950147354723424763738161650742870989293238235468669046164373880035571645574298336823246833635509493265326901457097842695607060341568286810499207271536754248418684831222328380255221071435054699109798627732751550167572051502385090243430606220033149622004212266502489465104744098545901925543208176163032490446205582417346518686025750551342153315167230343864554659761710609389866866814760592388027143845231667816849377421816080060228090589114646749008066008521855688007218578479922777257110186984630605040122883996532022774254040332893640382719733858062644906994196374301047762548969086177691735972897164336247486749736208602760495877437755791584492928265648980291173342110596640069700769226758426084857460220582327977393733826072201480699181054204452514898553728856684787098733184172232663278700182554384624942102922280502585165562539442169353573851046896055438597527675422134553461900970115955768549996188185918407283884137426363314696653774622435441205026588336247399308420859027176672382563287849177168294503262718332904614983388754012929635939001440809119812465041765630704784766230574516105856425004496349366687418434449470936553849101856215004133847573468082646740765432574026875142515988414146238177983971808765810411217156155698656831059809313114609141938567327238803319584525165632812344416387461234182151400182475744475525271857910886427843432356230326623174194531948205933636988499857976624581590991551871468272376392716731426278911357537220068517710096882666813033555816057298055529486818088175183426376846704882157661571539591389324301861068245194679348214108120546572705332877844580567977064745590015702834185173773347428509692647265289688531826817991353599807291693061728689110830364341278133995213074067681192345412225023259027794225190907176993746265846645881486444617997328029744816992612976778383906687269814835343243861403416844691183712293298490936757992729357487556801685503951255734990287103120967185195238209952760449965744460875937076895350910477630681729403677581220058098291171484375159666720619305623816617692942541514278024897006223400030870358112134590439164249217113016469805713108376264604076650346161133035977906496857844741308762903151210768857456258711057123285650967148075768988017968119199435206082483260660998077925621239580324828242345647716516052572192166110775925325348453534181315023619340800162974727412086532139633216990164839131320967059891551236237578613908635292846656223125382589095388506592492748777826147424032524682905562388212965402510894180948248978487748940309264193109004126957284878430431542164921206822239907739605250997522672387949441524643082851113921946658143503392310202733506184401600599817962043819086029536195589897927875579282290939499378880304935713237911306000383765171152401313512638071046607942071098245844011758234919547382375669729334079405177553617299703215575341684067270727399394127694982146758655069639282209510847366438788161588228137405871631486622127424272551869203723836026281340604286077170374620369193106635287021299693644378772728038642965259313782188627481519082140513128974806354904616685681207308259374969406497368594516549369693715674557898852518332073716179545928275585863284321924812076320333864491551969997101100100640493548828336465221888978868315270278459415962715503988245367788931932051565048521701017096335498282612807363863298808947461262577794518571509885848057662776291404415797097000854839935471287559316880064819614085702655100686005909116915752715138535599059596213138353602162256435222224813330672456497324441056178077013989704865930262906364370941063416079494015136895429153651228446853912451916723989724386268713103058481994480799603775751176979143955750063242157232785400530447551619383889845381277894030929840578313971325811145356197926725266136168161176620731278217592651894832915581865630104575396050828846310859544746720119561743176244115480995720737450623239170634054594440245484187435932162220352145280880818003259341858216479748925998827921320540655978654627621247114090521570273177576953526606723015291287664787115500043069618609754261960983458067513914293122418121166718740340522914087643727931449559291426715302919751707443324802024738093162247861375843597885696731234752337662683070848943573314043432293164403696636754021604986306363769549447743207927936602387435788711918922446885345534241942482609376039832922347569557960278902327142741791497913058104392813945265267135727759139970015126482987428422388196177097496016240537652085389803429008260684546000798861516376485933028945747409746075178706560401212567736889272410192654296662030326239772077753762012527759756063306187640582817821487209962188774464284467442950611712929940969937952674172468349130703538021670092015028613433987869914978937187203350657849192389111704037812787033041672397574370559852998910489008662000398636141804109261489094299718475969775273721659284110753575685137628696510288845363009956121526094408378584584991277257171621788362970749960459430188773441552893639001617075271511110216931852788786663552093731121159650239770449175362047885357616243790567747633244274631313117019138509472277835637852548148750287561022025534463996894318539746143801957977156083077944447032842098708416741347043540087232555015720705666118529144943814817175498541905591987137865074798168210714161052267302562133088612730705663119244524923759623649621472357277375477086983978818694943515719484818604853712827869986108993980046333176764246409648246598943406318251341637082277166694058317179600589848271053239488889165451973265329212877757358004069325524458325981251158378894563512945329208689281997571786358489331689109292903140847082729476036881932619973099877525130539973165762569212460135339406107427592933642537674640838733699857933399827267664679272523652714423899631775457594566882211299702377362354984222448883809957640994011601478197064291799763342974370651809152608355681004376615613049095287532539954074773421614357563164754149314034889536323171330330196307725241468163205131498299731675373916712686111780860743288896310697016584571264422842819334032590760415051056379602753659971626565755685805101484922512909279654847931961207403870461197647817262641808693723130370129485012718050087406739231122905250343475458244303063414358570396169230059741916455200150495867999339657464815657441084867825776800518913876074357727142330948068388186066122209635810336551115980406328872112542153115159055813530097110707049884679775192151237711085095232150160376361278051243459958537327774338919992954326228911395459497945819372196462961599926615235105273248176757736314092771139808300296338804809949307662279780447091433299344977960228712160870538337254699563781036830317465525906715238214296308798375931016772744369146790195747269022759969369798214341169689616372081299057721123855989883821056694938640963421092088708587450692922855347922248244135121838892598698285397829089034950467525987427821751791155672113134164968689980395579430176202732263679887089593290333045563875292884514604989325936822996568170684858855072450842717312556924146833723310925626545209485567966168003677261445994535788581810763063043668122360407134208109797160371969670336311085203549866891941256897398314472478048242446262225392080942118266941863430740808275957389324593155606878262163146059142336972642754149471708340490593197667811839389689461302222138843348427635701747150940283372630724660271220484687405093826099985946836600020141562396209932919591296982271459962363504896762370442375589367482825303764217467146184929127067856966418976102469327710081196319437263082198939996090494209604484869212972053462288487015115036104488548855640043601163665877848536825236326139954222173109080497225437094232426403755522656417919454120809787714165278852986761805469652619250023109966637560235822414367801437134418269134411002868135835190165790239071847569630167560411066484750511578054628019987149037527593528036975719527699044701173608480814411203892017560288076694741164609903708580753069272165452355357005385451557033363437184763832837665383761577893413475182141679957785118518573957553298756904732201133842927862398861847577435675794113927079611740051518988807499745392701104600598295423304949753436671201357688122391589978443851711845307923226799638095067612519214923466353366841426159043689333633794476244532362091440928165506462704476510729676459592181006850711347985451545722248280611545516136857159871218391094799965667533678249499008567669062640875964540224723160539563163695363683462602071143512955337504575509078504353080488171007657636855850578079291455512784674657344676974811584797267681210531197013938153471737356564342261287542008716165502070765968438713823904327458369864403370951493451446115402846687478108889340721087541658657678171028627315111623055854355966310908600649692271459506175161346599296224145596360816237603849241667238272256389735047173903763038866986096194889399971160732358212926563416821222987372559923394430572066233414926890903199383829498588303170193727763636536393764061907346536520719419044269535939400439055552380648175272364426839605711624439568269687130605063967797388379793632758202644291734962069661230041070690660857920590211210219657194362936199041229381378078649338778304426358882873576778657846715730810691495373126469094252625299315076020619505095127739899370643933104009561389642760026626254188896007984987482619261947948890358814716590130748887621386399901441095053798981839554926323509443613541076445140079373953016745171215659533045105903639026469616021214439706805678137853862803328179357941888127493417864591513407263193279792443964646060886762935799192330317952808323063358245244077040153164335810039927702895102354097870393753476433551412322032451083303556746568645869163079838177996939325625499643655118911171701295464670132183910130080120679615993474662687877606068968508999598739051271072177319325729599283009194150027863428042955701815342438604502718035344381452117045285719995989878208020260061906628095546738266815265823007140352339873081514474427191417680088711989269653786712898286813883726509657314543076498593571804206775533118841602978253228027527101886500723977924773648134504300126341123484051145426043511581423415452753679802530213669204291647256499726681341215238600169867175135159979499880233250846584653940482593830194380161456042072088058529701608563727575553814240572958804951288492784063803762394503751931983343795564918945306501021056970066889031021255932670190765195630234610109195861408806648059996552817420901947972306792708313618282413061363339631315807135692908546162407051401234981081048736091558863767649043093835453995455516862266731091123038083786493630913275308440742094445483583866640638367592474520171908422889237251887358708814753140036387911060254756999396929243636921467512842695394706058311946932162362588202971345742636903762083590498264178938343878769078921369355082260150971908146392524993036426227916887729665594511602467665166803693273357435872048861639808779649277376491012052797262611947065303516984621056401020560408696290309690996300238640220762012346453454264028770755119565887195917666276483826536170071798256471078472261742218751123937962772034465685041225643517925137304622490957443452228060463652846313027859334276871118553739786870611718233690892258813680907404997979709662210368559884839417712062633092715589621338728639761649329576664484718306801701909239756497882244299780614058916722765768276509960808344504472372542480885989487524780977650616739919479281298385718708718588236226939261520260384217662204673399909256808678962685319850397124486074394324960760136707092163475917698526539099996392344620094541064474645827405329136437960062316987895651483055419125009540693516030967577369072186262156156220505554673432438915550738361748446521548142469281580548473339566265128568682266243812085252967576630771500322674205583746449780895007880339288650952473170404784591096024246744862828823040414653239668989226738038191250324291523088841486148719599724011822315939722474834180508326521216315083287746613967472880602300032701266250716823508033763536489790284008902556126562471782244748169247222142116233295903404488441101848887799345062360805572780390970652749013308347984926124062087788524189540018198145402105981236586729753983629826815787356418037546150569281857594199038096417957806557788257051568854566871470461840457667269915119469760634808955295346998510422702996961379444431229273692412537369160922095835289618839657843422288237574778672569550157630884183119339773332232655402447124373806385405237030530910987825082695439786949619160052882500779342451655190345431608429536292346836281252486886141158635271076784946401319200717478777573192152602385973337957047168400652714881833953283607342180509547612727222237095685548031017205843840477124886911706591521321412243564553281603643037663099625579920736282879788028247049131305227970908720873908838924822271191761663354139920664630415686761943431540495320646560830614631487553786868390686943735131962847577212545912336313285830945807117101467911629921956874195493751785872625393007363222840109359190888731930811255549211157101830184969170131767727348271716754448769013518757767524154434279870465101564854167469869964797878330026104468728411031276203985441272687604695768827915762323682863900246085858433877547400732969462237032097453354483624169256078417216860160537997333837212892787713755099378216080257913955713870593343561839382281371294412248009602313538203910497216558933456467835958581169730218565390682838100647474386812766148751150684211676629279443011951310874839784503814766011432411832138029982756881234478581312686869592727525439110740535764496236860835728405995348264757360773567824009020370796082959430859059662845462031568576588212358940275152212885888602237679529633310901932641657248146482733106763690239759809611042664048054388418651224871738979683530531226056040262296300859555739208374830768025898668104976690470366791589101668133675247635946313875034731541936658120929521748028053886096678269095713001034361502315886341483291006938776530805386534593491330285938336804327578845192814791412692154603306436883097533275036018219957763500488355439674119417983875721217752360589173423104997472143021389707224208671149562586304464726037480543371751640706904445194423658381779459646330663115019871000450679201548970273629692123726181004791857173539003331049949201729829252930588439407317210681628130898832664262873054182868247523228864792780758356223914290599091165918767456045857881274926692565862370047743594572295936974987487533550180033571542878753968723084556110521750651776327806608501597843137024580409421511518524432237639030926469537604029950877020358568007202547023271876937275805017114104885005679246182567947679412320372817975698825262787651585407620972037967120003333413045652223728499837813128001624256629353242949513168906887799761082915139504071487348457927032927437551862934277306060596154290532089907597726439240056333704857105902202556719047968342400611406237023169218125576005850186813294919657217641316186448163321217587867232963427960638515162722536249527284724531473561298062508515539441615849696519266576325887940835624814196472396149571594519340069156415122108482390851541386346678664444595513918981872020136967658110516466761447421414708397092079980373242723652013252727060106607001785955773353449931300698451315016854591579519297588141162947415948975529212553616046837997911219785418268841571342772704614746629890747036550692838794510054104705651602717978844755827837737706686460251200732757059456071780718526204171078650105363789266974070597270488398901432182024146224220954018095059930104926813785441085417922327394050166480194315809713989633627233139317730245719323943127278221010769440543132001015231174884669316633947034457958784163070795594138018762602244963353960631743740918251998487754553500439917021814132139546256437588009747851157634653250419065095246882233673029068802155353832207948927547990912994966715186052194542181580363858689673544951807263394750611187942340096805330876128046711880231699505032414128436006772443672326813923351755495445828098929059309656428844501820073222346201499433418791409874733398490731587073409269796908782542759846373135873823560540772439245780305981267150897611628857092034819842739947458095254670382260566818365277718799817326832057515109002637140285534954545480909556907794330420486082875576339077094381996165481619273062839713757974329214356034312034261669629367864742135238529756114131538358773406992821438414235240460555042493084348459683900668850580583949918689607043166231115723070696793660051647012731778529284153109825017076676033231731187009766413778573489417963188052535152050236702883434734409875047625467161816385683052038944120861455007520794573790838424591778217330168230757801194389861856522106098164848814244085669267343493557530999211244245349443333931924897857495214943819562123666697380814847108770485944191930984447303675279084230559555610518098632080762223763425650022594760879423685699099605800459806460007498073719075613032033440053717517074712518962470597243668388575123036116424914959548709103220488696697076994170496141196469273475945863722798697469756604878109989268656974716874019966220416045611596734855782857556604503407475800169563130726811065834676376506982571570054432107592875644834651172853351584250705053072222222007521035888752528648532341600314215426372281761293095411840582361972390197512543974591706985204123640328960711307210468210086603536060268968146835824776021806055041166236499314331156756024712061995157383948938058287557741590183135687805373796849265866542769121986996451377472084652077249829603035099891554779872116744136345500328233275843146000650137605286076092512263979058186932948872069145257009329683153650934644902559982700811674766298478783086676650093134565194927190305325589335667360868033911259274607731339479947583398393153926485896289139616698807695228688114347975097079611089092070839844248457824605522415760393757192727495022097419903584786244775339730820659932864033760854034325463055721933758434241344544796684360963292629521625002500462413613976924475151970751373754694299042379722897534674377511774858705088678815907979414047088813997149022391392953958010520268893713265079214309630437608552195467592324455828165718116617284293994409033093731030687773187920610319077045554908393762781536554679543497868402343894637139672483835212759159875598996655135370614816543873625495183716049575794626856285833289933136089728910913801223438394222957374069093921032789811741882716479604746147656066996880767525423093631568336029824960210573343440114046802231250475674540002799178958564511363370789858290233145412967112801843627582903884846450827446865245594684167526840777593010863563235157129912675526420188391399360135670589469431535144177529858032805611806855808310265584536938982670686735431931407532050438796335634488522537770881586222824323078932898717360244870455655301188969562956232515833778299743779648317732170607868352032256858277732839750400911563989077014148018989203834842508759740215019440513787382791722161794020347829419144697142286064332834080417622351289514624236647857041565788209595563164007109586737434342621933222414654909596443630429292694543153376809644993261974362691883770917213726457119491948295450576290172924103298782656829738636322501562108058015048081851118456884282128747352911000278007564919742791859152885337050053578202100839125258661256035082888715081621152444808556387613988917860617942675853870744387100043873277946328336101219124747900273145037617785667437587745091909344864334308149366238007550409253363223853273744997820211069621834852264020962124044060090741848448460501844992414397245245652768715842677362312634500545464478216885216493675747653475864225601429961053876709865368586465688230429700698537927187362272112144278383882250673166766090459661505800337238476943880946643700946050630533766421314016950222580613848450073828536049201983155709254067549804562969870625416985524071351618234101868192824285082219125037562301247181085380202187711430818499177146904398322278413246924225668231199641618085602472615800351975770374594467072140560842472110995204627362070234317759356171275962584603969227726277848959444012262368539162089835550641111285695584530586058295228259101258311868797439564121795789014488819624461656752426565608277574865876602504253645585740884467294943314000395656531008752275334057561531634208488081228267209307862203992461714843297936510326986009815450596555751369843663185820490026055782632682428889781286720332214824575796725716338946168364257633821176415445413488255086035646796411059407880134848371888294409728674608523518810426895484935607359548104030881994858291978366465819834703468415418746138175701041719437654828277883489958963479524178172662227124446708301435802989470845876274599603792337896535389874855566900485504091031029014495203972560610849661323739620273761616971187740828086983075617001591898635116575000032879482807865400251825850456267581242854901904913317962594688783463019950546736864054594750294300047791143743054896281192751640959871439667249075681893153505937281061131805468380868399262250375123711670475541002160544031625950051214990569308064897390808388057895282044943552246695587343433106779534050753016524457111976767937644922752176639715365094106520535441343212074318424289187513218567214075883535179151695993458624225472672937144418412670971535587366929403049439586956640967915931207418655221101082796801919269851021920103299813768420748753155487244257992202034765203093538557939953374003289466302426602244155950366033026513056807241539067170103147137725012514441758713411858339149777618173454950314312454182250652913420833471944569891756906715244215414480921156459935143471331522326975823168602338793249217656135426715415999682395509194669038769411549413477302602243332123653490278446825732842806346428256437841908095684613209919945281418709327761474009924550656400559521466868488247255076806053312910327166986646271778023499550779493763102729920943509187289241385377538978133554433228312385429339447266673955604103897421355204030781055342773050103649128957663379454275473690751500099910570783736639150537465210593714278258830898413963863288596068388201178002945634486149168881090895745230609281580802109141826843191305271381135164386875507283966183501331582283782498702380895074507797553662032453571294612465219443695528146120318860741930281761501299952770110833794190296861347302499536388909538817304264341205334093659269822549457504566926759009390368507255037482184606662986794858816706734847313575527291206104770483884215723376075184977089361142817384767001735434925741180525146882829612977503641055441555451415092291521720336195272375559517748726392342519653096658402476051091104256026486061110664711883830127449750965291061130805432334339738947721333596051831277865143445976112349995027021962141424910077858365242508020649978671524660725389609811928643258807305318981038975205198633534085201542880051099822184443534818894421693492490221952613089306188368206444279094751301501474112971230697616739556294309686048680901740904906186308612524284576737828166150271289021748164115017874718143166660227201940300041154222603280666816110848031259312982509884426427310289655626868290153025586247592152366221886691871025084132097950644526046910691059604267079947700871236579392537549475533093927164671312662192892236809389188104295357345864235261226415232942304590158039521757767492544180443033421005124333792947952837459485788451151530100422384111003777477768087657100097848315979102467299497221823290758930274445314940636532825323165903144995546146699392310677810038104824309641430977217190893828126063257038752459741430824305045027749513970389745411545556413328223901148031700117086571062575483797259645413145141953122673863678588041857193069891796020050205639100986587819266998866313419430922000003711477339628957442068529882236089665192337602009352255709216395019172944515015306464969899991893439746555166230014219499279650809973915972942127902658354162028650911487056417959031772309773845953093930600430860440954350922346942198302454402803725195475122403385805716357887081385360987993169751554464275731112095334505046351134225163807481092428943005954635109920475489163810385989919381563828956396835210424336463449814905548292448593244960027501503041880894758519012096616974088354355170410866203064939292491584901264696995866131578423491476138585898721055931051449604679190959989797139264006255380019379068933491202289267476774613462543431451035220493253443175753138081397188003180691084787274364272382430262088886229554893702425315507110293176897346586231127203713282134415197633325687583819186311374825022591256848472903449092209656134734408300023240071985094416568950051573237062188580045925427092495006706292223268485969885526997470699552766030268541259489104010275511966890087567826922464527404230922491008193564381325682774397112479725319085166533227184509719602383853375868669435623209236185560747542342374216104811429409270174287548176424007343157933181744218088295274184754827582684107914712907672495500686704326929280438457809755899748028200449275977215410599529826026530034357467469527237592803676413907263623776995041206256324841352217727962964505959639348959164588517816297711404674702082062084155668159408367698689238744866564786939549754400120637163432881312733770483184077236709710944762827298522298368277183064504283710296868534812764656863580284344924012956206827247528597470871786278704358812319184504254654363369279358757693451452574624722086960708113566802403754042557761746018128148489072246791846002666505427786573003998310609451971287999635897525071801690736944013613154039087602666181026719461665457598569224070048409480769841780846432971139702374112294601758382747751911583340638050030434586198337175787116759927240001093193621020388900374481172254259144114907059004253216232282049978428598413142261203425339626342802562113774073061876370814573196658151504439911544714965590116315093349175709504810332663875086030307575697577835500153366438712893009647185651941844371476853455731322408818219557899529857663881511272419508392947665883019306997626385301561454155234485303474773233995461491007291921625426278479473411544067416194672319438037628571663663167829416678855503210116878345715763878872196363966151356752453749145961980685334571453459218695132769796585206916734965203659006264061068958377770378578779778829278827365125319353243125236397049102447446844931408906555813981721338054185875408160966449890899954415558742833394899754285108343772783078166063661878215598698553438742196091563394965242216499934722307256924801584636992785258780337530914208937803819815981805961838866943256423099664472340006279020304137180229918902412321970288577523994710303413403039430955593087609793703489141718058937771893852481129202958781720259144110374626259677634622168590928263166042922853848153125826936413792506946318965737356866267142250677223451972592416705677126492190017496428463049654054099419577879823255492335617205483359477131486709480791501467550016447460243037715455979159176218858337106267099089305287299672083300051167323162674929107196381031174224501889392511463059208197232898277381271700204790663141377125091656215995205395946033136032519457271135189718360107503990767931510576676132590482969678317585726544023183377284022426742298629290057119095946552818873163411988842286939036068096563737563690929173890701693612503352689947370874017511771850521831420947535244959240860664956425087558220138149150615763455070061602959558983698369281601256967415194696322667234861722221026239522498331558100246840184663710065066374758650398490326498594127867177876679465261586995702044402713872201498401154962888467015301011022449466977983176492146206263801808911782801478698621712998074105508598918785729019336738181277425908697572708215121362726653894566342477198648179998668565028198519852307373462042822078366530724455740202839860825454817197155780323850103058780641194307778826600426438772261230552675812073227370898076579480101809036933651532884122057340320461612426913181040187566021644397294516744715450280590164635413149974852063019555393931144394875116734437080022506606026633246685662196772051133309850694863074023622837704319271517375717843896072106118958882161306729827096749704564606853345430588804807273152582566746891677908321444736915522670313649721717985402925063373035987901060659778937980304153861694730572432332699556215831464129958986636048536504987677587807076510532068091197497275414069878394475569626272671249079128369097337370334632887466365960904066282154547951740046962730075991030049455555187661891827257274551640513773115097101365470438895671904621388008792719241857238400638503925000895196371005690838502808413777446721094283904280772810815564849300807947981332525115710468765544773795035002133475880474724549246019287657443066876476503306594074172452529412232321830666902941238294545502294886731815809187033515573808206747690859466063969802654914733417979546885439239262842479810400937139466968419056153244014642046658599349998367692545082327370934893287929511305216432022257679536548574582186585779267134057088179990250959991750291532066057434168658330045698995736042630252155953794675581496285850192597438081523191112534832940537292960118421565205578080888918831248318988470097771389413785548315438048955301348702520155752336073774109377175875545571311929198404120110723792298932702530812662791528045573612939945740857775030597101507047512365662342792600551016088335373745180835561857516285454460346558819671233969492490652755072386367069337087807137121047925872791781286813698233556476982783705970787217640514704632721424845802180286027907591592912266556745437978857548363072647804696179833815801002218940292274838576511015774461677999533373073013555671078937508131343881784850633678587606142492324303645995366732658499611302293807034167219509494911708081542782479565458915098841771410840000247207692575054710904260974688266819391719019679674330259590179956616821620377517987138871531035639470092411403812903688920742262107721094242500135938312046666825925367775220142392860637038584500956747151146604984578476682965910123292414895243762216468970112658991425608731960746586772987873288839451255207480733178738495221007876138086359835820160641829114915159051457315926964883202501581615750576097509894825026066369668300059095080579369888993483663606821213439133679758222238997346782162763405827704745893216594541997463958378985257342279121059709253040465052388291218523230922917352798867898783628001441001463105763135822915064326093053241181894751513662668123241011565935814803994107328862376138207796215500794887421931007881335300504094793847771336632259668703187189243665066153370258578296972934971543852426027846131187912624011812289442773870405083140619618862868084518552570989546227038498334637745076440019804909973828155745874758181145345244791025559150897625901293707644901630563221631054615722713260259792868269016651214959044180889703364598462646822872559836388511440323658909892867089444501797342801556252678202717475333374296638370387019266554135636828119506553160296982796566849420990562676304894690626958591731304475612939536641285570742449766668043388461223858296127357221149120573182584784758258103827560120349252194442387629675835958297479184437133394885982615617089037875529375915206912859523392981693055720735393462051694591192016716607173453975576235727947507585525772624730057807326730850173620744646755754794323635131290707896812981295761132423918950153940560645376374586626777339321770909807042479312044244279327971177874061644592236779540871195167979639463654890537094933156541606689319775273172734186391680249753271417848671528083123860778081668179449464167046828316091887936450206215973916091614479962335211465863110959945477084902335350460639186870015823815523485931571617493847896116991506263018610778720193481376361322594549788380042103166186075291410754766175849698245144489808603036410845713505834554981516625052684891737146404656996123258954394903950597405260157198116473605436839688683991962943688321050998372806910625845377532376815230998699239285475862750784203948192394725252600911936992385355896172519269785289162937741642183496548094431158088791050709965906844357616417096563733052220262097502093749829703637528688979886366740179037474206110817013653819267957344362423403223265805011248251993014174825296102649220514583747315569724414456869709335872447963040638159170728002056963093090199011153878880901958507481570301161774508176768068968829268727139641510971349505963845230860371245926105089876701465388825673674201081165019618781480736531840461991761076480908860124141771233346207801681243754771188767646011832946045368210154503682966145494926245154717591901432377720056113929195456127712166898733939130408478239899462308231858047640022614891804648179715128118435232651290197980697810668528945194760798298199823683289929589328763114714193024987626017555954788588832358571253776725908041587178384897070847821605128825937460111881440829957507500843385606135039432698352171134061316147921204792291771577997244500523057111195128552783843306006556077840921919227159329524670216585466013643861661715660150128737170373050165282935964191207461970468311782888242890656700680635454799502750522180823209750481434684915542868182518301493510380126753670731138005445157875852625347654149354090893916382557241526744634024731689776547258278047398334232509206294087154533379779901455789000667309858703958447854001998493081754070748909732306114939664379737456812572102174566297676788379891644395214563586421726354418862437072372115255444737685523484757640114195732043904494194848920373851160822564791334495614046612183891816385224025494742947015760511937963738894198961296749424265242032735321378670619225563597043679055455528814924375315654707101796082926451206198718637384173590725121616004947512054803242473343442861047859313336830366981519474664200040401455826098379437432426932843805045932215434246156493926018351410307415027620182161573836728056462109829284503847812477652293290229893640654239071160486362064549766580871814707817492944058841209678758153297954422276023895032120669013696967090533191225532524292258955087301952701765859714386737757969659114646458130445256493792764213494856825119722055536219573726648957966731512856550393144290677051804433144585561476079387964916960623432581347890599821567043173798674863690633939095083092234906168331270618153428283266007852893982385028409965822275224422553648805236309728053023898136976906314853648061134444188933334915769257610871569063377545461253506978229723207090963975198948903262833282937425121217385474759368707463278362260673281543746714128435469695249607595148633132722550308834632933769289439247401714343831833295708543094557235204452337036301558598765939057881400963407095908375193441961579913387205651286295565288878137663788989095356292675423195371128885592026855308512756181705999434240108201047418171179922667320051678733728436119511216274494581772741207020279312596051790858084433069564000003075026831051484964039094579094886278984885386269448677785670755752481819221226534944118727508600563441088219349489581025662714988351743795932270226455110667188079714789778604225441640572840500018080281374406521337839255780240198848045104601944131600115703180015310616013313839969557121463314383368262229789217918987853174384487457315020577056798176071264369764775650031316304339699466434210531369926779779218658657151046813874086265351500772059147767926028680683271768089640720804052543613035980022478439667723368220796469315010146453643494306296746378656335132679115923975749151485649430937193264952928827990521004692084829389172640107472044261164331979087406425496332092212840976630525657093691753946464915527687367797021141435066715788548994026471848744737478511408480834795772260355622689268804950310742314867695507338707794266842810671021652570991328024799034069813133229238312158094025056835956523113314234336016984948702106345728846803474711792828976766975656105499737320625546425854887635647485720125306507701707644134453374763687921899780319531410130970916480392523668989080039449851427914000972482729603917846209533593398759996847139391230959436566969977705561088673025187925087166622784724088109428332451059532853000524407458382586457815732073582661352665971139958471258699696851469105384994194874501224363128437191552589443638062457595378701252245136313326777329743382734808253368811060365903717594258683694435282650943904321398979232283923585692104306541066639577474677418238799864377635639559771770038571866164249557540436180907230359051751260324506303342146448719295603201090649887601405199560382117033509736743285046921021606517201821893616356590998990328183258211406827887140828129621579098906176932159916173375572547822772737738903489552801900095549597287362239059964792749049521427894405097263266761679920758655845914940874206759222266757666478111741930408392089589288890924906938067084723237537601413113927478286340176546949064199000302215070906772699593562172402966564200870568851447454315933459570632407661574880847943466510213715487723440736797672939494827266276226081968071419802326146139462226351823885886965310127178452405468568172515470410485263747725079771729220073662478974770803413422194951975181076167218944949559932018861305411240446027780354100778178781613386502372196941432982794913488428876740584425355658458144131860082709061684698115536937417849475533630628330259292180805224413872357830165159344867292968109755741431044055758290086896833352149600990731342127711587197210794300369445061317360554353992668727906633796265033165646415311427717511200477106316890421363020411944320856069186450357930464102315622184188448282063318125785701050702222171126289707148880585319246440482078241422749952504110791970743780957541338572113052054435531518254447434295736793098286415133170842484894591257506236016939852780399297535354029294365440098246449102811164191892811038839410983949497382415361348953426430627809679329828653150197268372459036307944824002136450583019515146153048420338234599569433800590858786889512595131463641808751268149278642551303478835942305119436768272437766522500391735506142133039240877313853351583616304512733671622387289711430574373664845986472198087202587644327498466522361597403019230893151319022071680054696225653760798487928705235410608463290878397245399085628058571403946451543627990269802364361013126003006580655747640098190215772957085985713783245197660764984903465251101928112772756063473230452083981427698481335888333350071007571780340945835286013589798431334608184192712884066563234064702547579087624135353426406586594804360190945893049280573732918340092193672209250064806962355191177208634738483052647783236350616878290203840663089052368105424172634525137667692876947540306065991544293534371307031363769064421660664151221304806072804873622907467743597299972117309839735494631715063459182983859683006839663219442979603465660636546609032649232032190728153851710400645234746683731848648321506378391026809933020299351531626157535184975378293208506448363342872747405692142649143040214694467506222833252647100561250508337064097640575557065665769642425469766521697555259360763288786302670833737589448020898205750955894058750013885603540175716123045522494555071933215101785170811958109364068201310012808303644890522185879549848784410360674772321143888998068058690440135982351840716580017896646890829811336337864578152224116035124381708856673208351259549788338171883596627243280982215318547033439183821492049270376005390118255972354927553282087050218949596301439086257323512406389006716199617053360262514147819820957995073447926816625135189135211271849030820274478350503807657547858547787600065928358432099786287451138464145742270482714992372632714813423993930232320300506295686207606004294799879109656812881739496049338984638842287343882325074135296614761806245282448327411646572771610352136058104846131249416567745418300255433020941026375003834402864141057788954219845241204703037878808270655739547858950961108022270883702272108281580301591165523433894615830846760827232159240364413448043077337506771322188660066387905208421987207993855684027688125474295196983453415720852325073320152061344277525718915149995450278994842501089718074698504550939859862780399586950295541586225769138705037466422546266446471528187816041151638336435012581873869235084312051685082117506121612593647611278409174777571987362270228394090080694438389254391420165269472555269347348020705194220029513020293484885976128471564906941073065851557938208383220327590969815857380538321879651573375601036645209382610064033936519200195015796554653251415085614903054018792117898875413681904003855011955460412935688282346629147295160371154507517364387091742473314149870681038028330349133678376180090963707207909094956724087280217030291918061474356545746032546589170660959395532259505841560630169145150030378098632445003214984087899877608352047283092482282147260569712537381429722034179616443754736173419090744932705583821521271382691354165558751834567871235059905671151587105304382442527259618936811252360018748352598150042513284684023644328100935273770035789017892643460725049586313676126054912745156959749718932999037703947586531562530551454647607754663917600252473513347736039335518184425193666262347263109230195085355533834077468740434543079873910151667434557646508898567778645310025120537615702823538070742265234483639031529368078728644417543900539621754642988374351648486544654050654864770231235026553096681117597861187051406185205337261047397754746146891310765925846919364937320414446183591701472995824991784811134082582758768826134992878170177756574894393911192888828236824669489427699231547931963235458480217692021856507733707594486347509369468930575793478340901832794820978742993200443155992386193444408821116191425274446225467978621693033707207762145838954783738739036115862230779829455216656524118502568245901476198756251520479408906075467410948491055255231298697663205351077312762922187414511051026344844987341127019200147105294745103871791799323628988208803017925733227198530473169307640245693575436834217729146321306114138828842582205017310783265481633848818612074231137505870807244805050736010988391742618159828052257699498009625840088515931997744499857921855842920868857277116080314100025433717803049177620911106754457410302256973795483292051826311555662374014643063101712214820417024311390091783574518169386522498221652650136073908520541400628336101800549974752030812161255021346044691957948745603798325984466282981889453907581222682936083566556237994089783971109950677671434646742522977239719772518064465442946564658033605828726320654288039812473930808351870250995035042723942543057496245471060237649153858752465740776063926536075638558498881460127276063725804129112702042737921528394895423014150556830040370343533131445514768199724434456042862804328033321564479480494313039573800037867357901388305904509394223032146349509562268712943951431055998863634174861595410788716391509044384128613847054986990486316263954183578462100579656821574529563498887336895725025302503792580074158775606858219402498862474405565956244584858710697479157675523959429710204407564658726508983738481410183233130586995803518071196719687979556776738680428307602065877744869435805076099019195805961143786672945112399924679306151687810742604621653335709423657637259419058081196870087118060423853820870308477334979597077715697682501888902734226980164431241341217540748845875469519228455809664580647901691352435764076441709838267781024578135053802395582947845104586909128169185711658283277943362446185824700651069414160416746515450570831502047345415202728797937688432069640845546137283285770165128092927149156230167189641771231955963653020962127482225898246912780923249360943410576746724990386293000801052165226167369675605709700545902540386078968078144035868879342399901991868701647708491186917147743193142707186883205164888896142651928606753047812565360601014896587146262698442703137415538909802529412686804600863628399413010483103916375084569294871365092658132430024320457373645785124919672944326527544344723450819760835852400700342498101934874026216749178852339282935835944478128676895436665888629676840931214102534386215574140377037425766895592080175093202452545915355094422542109822974212853651415953350070330486937098698777354168914082743046387481338387983634831876592803983370320059883530596083290690444767142717638418712839951719088763665419343124068388423330772628069510055579917982697837446342454601261517373372159309575102262593374799759537442769191387263162530131126558294913620875607497994858433133353456812756493147837783220815486592409570188278935844269158785249705593021899535410635375900241311271936814383093141552827356623007092936593278447443946016725405555909593339963161860246221702498010534921131417053360642086821495168274369444435358997637670963838790960760232931709773560720213762685948613664927073441424299175279548875690839889617118267872247964105297032788437461025924182710698474414179832848328212695163803395042967756177956276868791401108319252735255629455965984170761077878257240252951075351315757586772380375481444834352715713935305424243996057511146540703641892344992046411120328516374609317013768733411237116620588502891300998529268629092660410832674333277444459747503137946502006671858407457635391961706603710193055587823352593515268149406548003149406184951198119758584185116175830257918930468352893478500166926923806007508032365636706308724631927513266900938705547037022014979794577974838871534560024724216596202749545575072741001633227409543949938157208846936130169001297526493972166844793625206728594571668701753837962463593148875760318600391291488206974042994027279355542216214410625706563048601194545105238407001913168993323169626037827572991775299455057146991146594670008837004347058018256649000304018694282022523462075024011345948082111517243178290067743694392485179591616243755258093239837854444817805217730596938733705990204106145190611657327893650842709315421611622708043288030879300991523764412101802243380237790839638459771768318864993386162806329510410554093943609461821615915691696274683145765187031125173345126433803908696626716544834718711594058593296758503332561832351977034440988777573072962167764392164958977432797543198392404124915196270498347406120516825875532776115804499633342255385841830365207776778113381758410423456810789910777063640389469006535531947956001470914854370779464133595126590233490514849279323446444274204300409355253084351584892677079540869616318508598518247101867014000054056658783698052788684781692838035611546562018174995453499046598453810840488311515428773636118136037572905904947919874640444614105516888202914983495176212500344493427498690998705645282143372946293999989355283563941243081701548101369177709590814110421287855005759350619999433232915825487721276872267051961168044180833331236283002553828082267241839777109046959593014226328258313780138848886650493747820104224010703424086739094810529113235512171188716991516311694663528648587447092554488115147797868957684863363380332996460606956539866791211966346735451704674755611940519520045788837684774757315965322281166023344383568406923568066894931879099680486100447630492153159677379380532505618852839682348294733355169339917266753409075103467260088635952108882140253004785683865360588562808727114983256089761284263803308183106726448044347899849318597730323241928633587391844368685370468127829042297310334562658030952644843280456527306764162283682188676620347198914552089761412860624420573411398551041787380689034776106792332839301240412357859414301363647319220284249778315370572295443698198401089323538074427025530628197160268190770985220521088223683350685800959612530304267259042276047179394582002159244987295930120984847417045624705561571199738919839329842702365630416101095891325472108410187439172287091306373979059562112531438815437463944195339820708331103610544414462514704793023093362607187828769861921703916466310705831826481383729288971436957254070226442970616419170494309793324327510788844300779705406425474788335739381388332477023540713801314127749940305492874234680993140138834431779179466403699870746522858577564073517814722143598840546549763164198182008607446115985077969364623468583427216316997992548000906420204647886971634220727098972382905663913002624693369457940550343740751599652106462426020687029186521097820665175425066822762573886212859088973481608732955269950502365017072921581768383784610177005343741449846938241141058452417097031644449401980831092228923006021743179776991586716566306789547713435762887914934416426945964825219228934184430104468868598454467223501442025635563102296715186447147380064107522921365205139125338266687063381482627984359037709230025152774848610985416304178260885764015335845342863788372052053774046996916744722779850125608966965708843152504489800500498694634629336990395937966102131122383405210427019040775338544633363983495050899074784533923606214733815329547906815670139944175708497836085890264844100221751218007878622477930959305257135637846155899931920502783422677129554848581521466728068165520996578578806776078668460100598720066929861928864064956501530758801763066825709367106040904478798288819648258439906645763571471610662975360208267022886493061786316247474627219516609811568444431900849073811833983249093492367913554138577877179922750082005223003257164519610218598931622664022598613556302276915596368226290292789500855161974123734265320396112247120954111516558137465896482944638033800418313476180953601395834179486674328585042828785909416750791901933180812536027414291455287000606488187288961114980268934491134794312523957721932463859661328203015110697384920541237043119370672518573813295308217405594082963937391133362585970732370640171756213155558974776311011821465870830968418981196543827305636748549145502696939781707984530451852532521282415678263285349599606594679176456911687109411725516496138356288712509822375727570922459409622369389670162816053706028166529752491815336267002020392964710439250693246992579304705561090797001572873213847695494004036567153025768026760957665960053177771857739131470967204711087005497007367456285586677357444422205502521852034353717329147391722580663285018960344464357567862564793503034375589212628704493956879859394623518306273481467445702715441259064866076233791932927790995348019912627260143798378476440519368723558904268935683536757909275992297279784295779868783647759407719139810938270795365987397135587730245143286067467945898767944132335078026889217727377434123094776594161569026120743381078533213905784959242473284207120826255074278151656902405024639483484468402063948212269063332951621444377466075869206115690249555330376343846107810576443578321958604015976435886332402231816789712257802927915074835392880188454283319388504255929948294025181331818227465585076882324728958109645859029464695902154243797733214159458740400461906577784557732211810736009803805891378160221772335261355620326350872120761625829970428133262433363650685781384423987693714778985024404114415704578615392589344090659268265054879726458450579915704874880873333402898817820515347095360188221179013639449659365174596047792028275271585912094076616130723162055006082223377686942924046067900364459944711862904714990750301723841298603815143277172546548941939305747467516695636666189751501083104672072633531807157995917790789119884237822160907182541796285797723578677396057304512404147292726434964186316229548745346957683613346056176360802977915779510574032235070920636003091322124031309263339130321168812836587571775775653475318896328005318320450647995532584923552669826247916046029340563978362875436403377638601895165860429973210358840772859479959208390643111371123868183324486466170623616517345443571416437629687493683683216281314716569885821311812677500481627077170990207628848507517797457290056080478442578133032599849642669450774174731394495779868321730661350941570807213692766655423228412590207054377073509701178651010655238001921627662306819149128702003393383256427023473585620342062193438105479596600320020236725349087301108734663057599790872073332449780006807496731929871129511089160720503952856698914426724145056900510021114283365148483917990635332494457009884247711848104382107577365709289403541372259541707678142680235225965809842032613479411585433059264390415772274577255828263298562428994816201600177071990830290569724739893488315805154223274403426681277501246228600774395784389571033694775931972175618928312680387654791867382306982413159698789143083208205349388225170767607624505124755660461028430325558665311281820529358990145905595218495675959609860183824746420358900114151975810751515918370051829499553164433628478879373105444159218309291708950907815126344352944078311265649255399249090011669058045990599918542789359943508565233709147329141335302242749296714513158785815903972408060241503002108714594320112331434653586131534868247438089414787686678596605568647328837449650919957573949135772493625678363428153204351907216939567141443282800692343857941433785200046992007412016760761945888216202117408307817169902347225256420597496542304025313038455472454128862374366278409534064414047674635231166840342564189301278176722131624393255298593437184304741695501037776876663538283726223216255391870073597189212212808313982907459415416743431741285231997216564443204718243406393345634618827943494650491194972410310969780006015171024899897163889626564146689379419727432956916212829701208653858073908508166221067805268363069570086282721933412626345799667002017493406038352416482818203778446654525565976070423544262074766840338059876089220761280860177674361374053820432059535984854845460364701810430796820957401998774187259085223107260673396635884204120554800969545798433815056403581033916596577832116241712118332131551396317719901206361338040445547840222973224786901276091000305457867505977182108477907826727818454460632643604298740179847541323151180168583983632455218851309101201747443634867985580466612947069911651545742432452619871749550870292770184745310789786480697556797324908920600792910665075803816146995966463171803750601844757423447634129572680309948425062837014924522562435531778215593283029690471788443100228958866675482368280659844937339556954325398357188819737862421949489625154296017668834959188802529373565511186528274809664351285931760049885996216875953967270111464223079358116302168666524642710494803242882639445510188318024800728737692991947459308037954231468167319346880215883842040771327541892743283638888272837046992198953604455911476023224773715013368244471659877114842896577838012251438110732117185535712632170812853841281652883388526344118542089328360346148859305587362646605799768838668095750278876479905875580621501617319600085711198019197634379282663673703791845247419107502128823823633565008785217947790762513645838468526228802132198615971777112268068191158878047080880391978117504719275845918031520110087900536003516521482546330397302309190396272289662904599890079509192734408484927906420139364757613734864037626156030101976076858473622452290785611893468505392970466621951200367160045244217728400190997928131538095784418629804401354322496100817305589789833235796739384590037689341492780781551357805367449529152641453903652017540021984258852882587999214527124022155259482048440745654975787695190830394192100928683161511992209393168271263708502503090944425499481310811494808284790910495758319973866614867221297202103523457661999162757201150161649271770482326687348203165570830646196307972993795080592327739412864240708103890135044504314987064630905056596336129700867069850714311939253378755701133133651635960881517487774072591573482728651289765592907291305675577922844416834773573507926690112302739303894336159801672954019883706375415308288548555909136268208749928422121117114693463629770680273546232476270824187791389080841861675865510132879442777886160145962456841275708719057446057892285275738661268734543884572247277697046688034887139638526984435555307989565647246988110250555385243472413642217561729330876248198313653004324062240902328244152705451294011970329404550734190252673855819244273317833631322290510529565745272932833213154123270932752620530029797812805399712506506881540972724179945985478760466415041867871335245424006163519256624129426552582544483441692207166344487274674559311144981919322897312263132644699410138216366623286134321439168312074022858130601387969641099588779883508955500853863791526757337734999297367420696580533255279823733998300796904165754640956776010140104297330376391192103715925131158120552741445718269666967537112732988885188792640180566871509390850551991925198418363328536952512588191525884069414052195375672837567549893603601455049135042462696648214005800198730256434158389880021515620184736712263931738465653126636362627421749575289231776423469359765357865164855835962426779106574525052503856933908291571647402619689595473771111234274806352492658818275974719434769028080355046931562604514520905499138117719109247054078608377546207650779423599178972846363650659297807303451024050399862889417687623257817269353539139688820455828055010119142207050108816551126930701143990621642449946502569178318860977562983375000679557501947584403000786660375364704711799326594879361135222552624829125223115356357440109915693619936553852298215061393838669980743791310513042562969172434856803627066394314669963537258238811518425970670785245054974271754743944407499731894898696310690980572552390068518494797756320197050656976470892484595986709654060038862629846882648571856500644322846648523488432668608625219646506479122933455231412511602316943476171154312990666277397954622521437021056337766381706575417416236316562885064237623089720966690895436737377896831009857797871301076606839027247326413314226403031966909970156337903205090580060171797984823800623692222320646189212748001425119771494181615872139483531697314052094708043143304476939765539374142607718433109380707801660188313517512855275404616068813184163098711168934804477379974190002473781956510937456443648574141359200891072382156860741551210893815513657074516787111542439677703772338880217439244860985771910037465710185974258500448739719884703638107483314831019364632193623715161801295782263006723164946331402682106207220023749902570083808036825136865078405854342605144463522150162127139251257754410584176415569123924523993756319485386504968622764985691192615435621534665637529756119155579912083088879651767921587297302213649173419961132876213225900211523562862750488940702898771187512130499586853135473941149148891660869656692034732716573106842292017853953563585165722964419952654229256816659713046403451890511943847932879094741447124334480691507542492843576005381214866745469646117198975338366369610575655230901563326461935017480520316512262213154173088569572283236926798259406067453641327965345723756758024697430862055296123561118439552642637706321953112446467881872186451209650905525772770046584613470769983534144023503809919406537322470822946720497991703148251914061612458227204353757624370101725256603357941459220244512115782263561411326020748256358766215394878077699732656640585865001054574175490077931318161860741478649781754334545006828235341148020841299417141210687617686421985539659433546387372841254972270736205381678116839672030640612820499215820970525540439692896859136681054688191734518420326461756890011961149258549051497068968333516460577038388134302569396485751297256667121521909772437837455718236087578089962835612716109587726578088494426562549450246219941569622519669343503972686457090931360011605988819293188648354607428524950511252560323510630070585913065779621067231176047255620564353279087119154074688872116336134299926778679196473877552829186276728410815193557708883198935619596891781312242487340456881056882770252504506319492435704296265057653484914337330597186807724013305929126430927424737838246592837550919997973798935188414869522322600499704800069869224520538559502127636194815175921550899096403952496333612938071671632354024780259894688093108511351529329669436795507660364706330023692899311566771786126045264536126339649855010538883765642090856511980143761809392466439114084527289247921871422470492532190803302938005150136694153152168266357002237199162434588995266988860443151059902178356242440864441896696846456961098092459045577920365543594015687895559077022860585188389328313861392220649066819421970236931520982779236180100005008084101062448951695093996607239816041765894490203442507125508944271390138943675259498585734903829983772406387923948253077285477353406421382757700544267406513618408736658936915500845046657467728746566742798352153241442898038115484909281582480232552998925644841969279707059763810765364242721086386610967571140253979040719088354003584772377908064325245405520704893149603279194672150646344537319691633154110652921316098557754187898848105164507438144600529582399025839423987881566366362389232026280145852250333480346531546442222420458311056466827442242434177401794356707861420030427433418139289809174584763851997911826304562631178918215645308663788608985089520774509853014534802311313309942042146955691681208545522181625306408163938631025523488151176393338586362629888001730860762324149211296656041554328138158545729667795458555724417853429440947605146493603214703422149171424249445487695467672745429717230331598490183367409384781285522806553453952010044675041632525601373502359864451660024467721472619728489146785253574465607733130997502402120752640618072099696843603914212098293464188130590291239790433330432180611895614852903195493637051130041184660636203228994892264805432251842147938086855507122447761943707879228124229816671183369699623791755524278858575830579319773845786452806426553604847329328222322649984193811751410688305622049303749054003015908552643844205589230471765503353947057315046425149316629675930339921288732671374824940586914902863077476210597546450521493945835800264865247146148074506683000352547981833603173411492083942320149729913180651995103078087861209152076661275107948261925224428785469534980909664639255189968691006618577612738220578780690896279074355830359245074849272915981755821643433279444489883862427203817457009343611838784977859114570216104128304913354893795897885415390578149416172655126180570902723400802395004940381303383659974323835226429056624598741466216952542142090126909757281317454028500321025635648813719050574371887360288218203915895161813155589473481339716729068170727326690676339000316185796955589956425759873753993304838458249664935819618255328622763972202029426358736589077636118533103475595094684103232148221663116316430686370254070708186532887715164156780843883975290925524073493983860501878017329402790269351036962662062736671458165711826671101208015934328165646991514695730626596381707602908832799083181405363101257707741970001795517654970139762812301426687669160319430426395328256020500983109661781827437577748012702240301529472682143768669006564882523796301434115102757930467932038529088664164195887761440401775319794356621163705759991023761408990741029360578987969409542636274784110898126701923399192771015941293241238354232409846007865646331163666957292262437668885306722807389065190932051293270062406175473321984900142340807374946009967145595358794761526384845563210575044568370596746621873081672076845167851499250085531639603958791079295229349385403212380855734079568526207235149567991521780197012620429817552906202931880054363115486920374917210709530052178998064325010447118311039256249735424487201446588337540709628135453059468906471004398115256000623746677683644909127158038163078952972860804447886395585272780128391868620663966093535078748372733540148219595857221424112805521218755734847736869952473595949012155959713126215433155391291379469886598419424753755263292217929974380248615192381855145240275948911736253987462815247627909094415985859034255156548197327328282617058770746585635501721484146302282957039621685404342620037950582776078870285323667286434144450139297517079231455390771962943374430268505790626797922421147296140384176955382939235932224859248350198188904365632970518034474958759555508309766974544675969046712256347629250042235019113078653121916499549947258668850175824688982472612287922929104603220166812393735080252566142501955528236742550533074433024937672738771605695424944681520579283332462650227482939558522838675815456187226203867752151940048265774725450655830812231276878389601067606696503312147667475096971203589423758813014361513938445478787443166308236512327269325570150772767337199503076459973513247614472731657951281812266923419885905329936755120192664255111685579564219812394819301606483912131194784764210708626432289140385354845028661896928216447834307082593811463336330740641271082824960177227404681517095954069829831631101276489061954224411355741360951922236234898123160140431584651471994871677296871224097724817730189984342250244659614230371792652820386431769426105979281602587764475662372889802905244945493805214126786728280506529610065474692883085867297757982715044671000782060055341373165381999776788550804420086376970539476991256121816941293390591057154784248231664690634327379033979946220524962738183553558155526635356154287092370080827125441416521489352114439187267418086893139734213314427443913711313420714799185652438627918696073858885207342403568772217901309230956334968245702268780638749389665509866302934640202017531942296034525083990435889875353467599535350573935019166539516582714629606756024784240742519641083512938410937560119868284168351771932587389645499013135248812523959224951093232796529594610081380558069290361636069233802431696783511339782855557500167943437560026517654830538556634670428395587586564235705171731805457507927023765068691971775195428952834744780479797552042360269043854703143772831837203107443168027461002506045701674888191918234085782239474742493736752798448600049209032668357822514236864456083977817374255914931094922385513757886027184228222401668719248695412403716032232346010201496531928749852458732145016429902293972824542743127527764510886117892779821696091133979383051808136452040045464002701783848983973938706110134537575295597548705184213377640948814453172679301162930341427017664237977852170531963441741066440569424511274045889598911457976088795849178133035659797106980039951615356324014227529542065639247423130879738292064895267404851553498259037718736799327525901839023551175057195079996636692137281376784906711825483205783932476754383447668679325745071638683727360658931942988086301185462779657481558169660627846352140323346857377293536483224872242980095671515899069174045255944932932760880774749962486771668609457854639059344590699574196707888105839073135803578613308687290890815209092397073510124577460313036718037832163736704076251748500394829562871121371688823387489324219026788856259239428007649777562018213339384084506866893946490362809942583067115403015656261506035726196016057447334448850264782190248517408764799810606308420552042992110366048848060918156894137255105905076955629726311326252073023204503010465060351665413208314724298090654678295014467599222981198634966323263449650035319169177323680985035646087510217468945466798839365295631545057370579796539885532548984819424384752332293107334543918880868558015320779923955098058656419755743489131709800128693138000987954434763162381333003908423596326300798136865161789300071048847466230097345991771944942150610092832191443381440974272180046519889115344196548570433563734346380787603129561555144012596847934563104002911839578914170145729127768023473963560306233450025925292848891040769100297646374545609780092053775263398959721418026345597750946661613800809818868641907264028800081945482329279302785845340702782859534777186903650711795306320879919050864095977411471909393424452145254411221865853143295735003506458339914361451484233693184198639264550053883828476617520228592577292568867302822155685788356271054606554592043315230723212345553847649486069837516899288341583292946959677901435547169184991011911938742099371377373196024989044997728992319893447696257482981909554203219271201848108468985152671869914210145553670188168495219310117729980552627050671242828645347698827026732260696808222096634222047265603076980392365127421423002563356524638241367685005278102469084378484153431801516257658118783534017961561408478718689264340476788898169016622402530727450503164074445160964262079408138168685610726401345107662017012234385705572728213804059998194086632746980926049718459788533105298268445582644393280063447848191931691765681866237284304011570168348922187812624560639052174167584557155538487018032293354813272276920150282862640286433586221847016892810539293621801327472017778192825063703144815772932528127261023902390883946485533617623735733356794224505372179926349454731306137433033586336279710483882255322375253180556653368799965176049711582421938688272891491675358072815552598622141640778602769250495091743016244587326955787856613666701459651651096953572283092796306497615675799178144300397357968956793908154543298585200777930991830292124941732298583210501237061142937242937897265492519663213530006698143657138845304639053099411711393916299979255740618370303331445779390677489639791113335222308937057650659010470633127235160671858095193237764677786658921543918309747939031590516644584198874276854787662792535058396863280279065019840689020460128421935074258361008226890674825355005919814480549722897247349005304785155045223978969424376810365020557435556177456735518372422000086194605820857458479606972145620838438864450639844062213387046030177903509009869242728330199760548316943919300797103523585871854919576440848676532271442656960620941131228286207989909522191306900699244431140798698134292550744601772995245581807257960343029114267039197330853935875472847202732193767722005454094940442522774951062648428109884368416263632313288296701446832055165454530707051276888867470846684415083835564632735399056200833912717054538011984668920578095507915028810860812908111478320256017041333142966864915776129932387138493200402538015810765603198593031583973971734866053484808354638212194332332251258806206567576467632139597029520922813644492366108036485305706027798290760064904996785730058642474798853584745956285063538207853465919100834153050510010001902956174117084139016731236792285408751635806982980594939285435621801357554030005045898910168407697789764430049626851845122077429134683822278350029263688048441424759238040503760715922318016739226477615593390603972905070602253282293271069488189462846010278262230698981539051685141240146552962142510520631815878949894719947089178382240979256778977374570513446707372884147713148835562844805986581852644715742159908450086730739231336513538356386340291902488317653369825009838791423892296866104329662855897080695829069008091038933853731203386215072706726442552291970316766668035707668135667652951728216813531224628884580885404893862108655961240588759312376712928641688149171717429341385162485787570951942336639086677587832949287689853412073587095980281404454616764026770502410920626331941520543789031342017404471864626731013437880226425759210117623936728390797158438613538747856197820101421783332806849325270898447782529763371576063928332121661627944716922066093901593395522140314120534878709832586974193219092215292857501563348662076829292361181922207600323438399275251910959804539546388497991605068589253059801240454621959763893865214297864094919143247610666997222306123641401801632256094772125600754923658111020484585791247626173818969072004234636788990807643247611459711891209282472077611976353907675554608832308584217861696975086806325555230032427330160683542059001340878490463063435076102399973423885894253640917456559163737288113640754140012077187104950281822126990466456174235539726371851830434536123291880153439555286217377078716807035322854532399778232327892308538023546812902086602106568792145330834649039993973401545889245892667375290758964256696984235678758433996582406046213463962356134953802056214945787080810021268523660327484527237590094771094184897939446757451798964353891601505067744255401156219287586400444694180351975199335979244734483966620118411277217925401265455116191970154737533317114723284574909311689608968008585420090802120484643138516301214108653593944937830865987772283987907122175270308881524506289603702382325683957094593632653793834539284210923454926667971526426033699998494258889145138393982435173739082895128361612051343798097610840653164090659066534134661143493343372218007803432675238148612075659382459860222797683674093806022389783011489376000583862491997567635905472173912345185348968085655090662944694377534814051446814633832846914132883943453597305709458755911641856521232143136415199541596176467418953734538994837476520237816050390915624946893164295686371608406798581905355744024564484238707851181937524881845600081920336380226069270893109189780366868808198151675203485545689565459571106103561812007633638100266962464218437898427202737308060824629946995585544090001962736202536801941120496823501853349390612335015463890263499125674356419771709098914141945036651048960839369505258742890820987959226756850400554860853927023711120941018237983547849069372624536583605029469328944068516661783414076489987150057848113526081604179478084057979204951227095021656067335781515890186593337087896347360698870313065018168066038731095512666503744564547905713351114882522714722748098674528649037128556846420145551892925640834510387677003084329633118583155203248664209566279617925041009740341942220162706032839794325717269451345329115058637713358283894844947770730301849945156850191827568407081747962570145974108707887152691030237522395671949890419090661043107086936987625406030250799158024285889146945240968564169908155831347406869608746737465661815074994362115732249104436057227905008715400626528174457864348602521006331327772129055384124930163235644816100351305469014259419099561680764893759589980103213609640968143341028166438548391922048791896756151804045034491151911814898004511856828492833041336037125490905894324561042365223568929619567264705352183942667110843585431340641132761625087050760655604808312428798421291814569914653830812339982716044113665703890168210279075499409085590876354417622123286482821722427711912904878471473868193810833060266771225110879573491769599387981303336601228958644999022142661407980165920434903960656823523092241344937735521776581721683982938018357851932941880831512020412330686751617433312821860919242409910150045504281316878503251701629556920228301779533228336485709071903750866888325026862572743576558243229914190599447071272719917883016571905121160623757562569203900399273188249771776093437876026665363642488411121099579662718646637277993008781665493265162639401978819895367003514426559593708401919082262631427708316843527923189295275593224382568951159132159286257096270010385273526299006536469477634532183258935188361120086312594191138479436230488170907111601100244104314528580087556653516580962546064476831273210342593709675652724998158635064604259689100621065877369590156656120300308519802492817856927877401681824710314503634873775797722365678959175424311666901093061570566667361561557117564518944527242234747902656150365834887775161223020038494875917531865730016950044247631379180599274792892518896449419111056251819397875220627480163125505010424613670457677050226303219336876714312875570854471807503061498257617059096776232957852280811041357669714417270709679115343541997197883838605565067818236110557676860113968779287114910915195955456931412913732418483369970740118884467039164732293817136891711897752623852521888446018829968516701048556041888624664268545631733701453629307918225072788112842130898411608243901476330453485350106769450194079343830651018383327702186001826451120466104082982770872394123339013173482895672786521736720127203235782531873635895155720185624320831921035653261944398785100791237910750319541025758812370597728558796960175021159650476936881229057633525631066229626122165061801372642174125307830685417416009498912197876241368585523920018479950241725592053081981591442696605962148141302734974665760438222987089885542991309447901925207322547862593542655219796112904182225217882422536581055511186247005552898623631896430783973262029631681252880602758229334075176297557784663906936864816131950689580617069145221346076385365342484556642573745768575974668593600397765966996921948531747481060801741112156304430968574621434311005222801615185962618252080858991731639110991573148212294977585034783371014978811805238432118067187565267199651543381084366768132627095913636977381936637549746881896389394967865453138892689255324674984020327330615168065178444580490511737939872978042437922850319492624674680822421795945252534930749776718475486711988832776036909885712319467264166542054127607129590374684681020100421084405511435082473110467927375996471028702741986764310515276655382293624794663875731793758685739309539717684193443274480410745347839659043270567503380041402834776275994724308740225536846996710782449633546764747196193333618545878592583839605902731997706936012024404869827288555989020125001853188765481184643885340423750083022075115027435705612235328853655747813235812910564831947696354754713561774377800614866656191194035815405783249260535977103491841093204047859010090355437287245521050470821187360943702324509730950394886136292867580952523794792702101162393843626503994574663182410017500732889540259699090251125089068105348049527232415197665156212122555609223451256389328992772808827949997381595448030600063390143591601018622323876920891980862054150733681901740218847600697976619686409972446999936978665257150472452824037319711490016135055556494699430260468385795266539521519698260489526230223525667836606882393162987828423404185107398895609633331392466853697406866598040081244754076480261007157916398041301739153190018233572322353412361338973299473471493180942155879905441095931714405290778641127737446322827532557653931012175494901361110310010043115960982909419558595505446345329836641851474931993224566418717659082514432588573909670580720824804196800724913794147932791570294483032052753110138770413585423439722959228251662287159559902130895880108730652873499344033352471905943657944915438905546290749417519025388582926031158975536729060205839775120220279515052553568510465685945220701718159723351410090687963470297085109038576284749985107521092021416665979197526224200547094722801205025734119425961849957767098583322936145438122686072390362814845654123122441121779585920955081020358462377435530982143216364473965761919034283196599471297209274021142455519730720693419924825900677324567971550274801423016869985270747801948971537802759659401552285237252835845682087242766167210155574465494389418187306027901906904936017289724921367673820694170714979952309853658608592808982963026075829655179398941833065100934836065409033466025521914749224408280167590119174037646741014118050569721281900051240779475791559091748264522569327345369006430466831116592725836632324734114773869478283667332026028825978056058519431007406297815154080656847167840727236182226190654149905102657610196363624536206609606593030131502175375004906485000947403428735694853257321143705125923696440241894263842598525648458536880971589630792226320691170934445380861476722178269184536996842573899169028772084833974126232375141680696845062341784403947890766268360601822396518757315523841774105514700111872764054484143404007169224069184720199736627857279970824632295857385898282892910342948109150708984986098469724375496167677679570872178184120033020017239479040719961571090367936847549852067376797460701807367688758709205319282196630029836462495948173410478597959537347401511780038925287219800968230488966317376740642606393548645486491203178461767088285210605030162218922334579189749686210236758500014203081769409254336517528882532031484817697561457821157617365152427122648383848289675661409451445119678547295847308760581004871018119197336922485980664299065639987858756467359700100930598025694780138448203566556934771482596839575813338126288299187272505940430371418447527823148551721904282644704334251672797033726789521916949271124617590265374803629156795522477292696894101242805324089470158613896903660907429278558779273966730409729995772208769378645448651676995821784258020098944012048208153534594680731846357070165364019401125901643847203657367993123696792497345620164480337514785627124748879053214656595977619866592943928586460805175972088391485265468242645294909413282826787037520882010995900410611300875106654827038396817105931073977426895937973348098489773369467613683660879340058668880624346851717226685184817134076747656957462735013067754167584827790766092323224114242309533166044174458512956283161549196675249531301509204441710239681563314725257851457649559785996714459776375300020421053745909515003073589046014419217030135445897148087325391597978680591103298388876035975755004550447160685216903608359125150010498762354189972967910194538540066526519986409440290735082473149272295502373401153149339208171094784729158247087362217533865471506618234543969853775680987882023477400512872233725669484002006648704455400150901214175041300493151561126820538751589085846701529420421197474024400645999411083826080548251744940145067943472967230752493463995642961933491502198409722288332803682630231355203538064682606951346733408867165830036389028976477757009036851790774795969854277445725388654823819802649525777776506986190144766805760070251935614767898810005357813689006826027552969275102377599920846522296025852838258618471739898674330239836349649237101705227139501305957750931123533450402945218691391794942132717596439370337984518131928645347628202871578073571462693491452333733624936982691900120480785319776018771110703393705466212283483668843658057421819963163989133835269191419170396610009813270022223813897386682511497669563231785419426000580631039679872986093231817235614393898612001056236289541989289457490187579704937874114509932705487957952872642602754721357836353137751162309240669004476549382337331105192480180128623523077280911463027429691375720099271669857966080877023228778667562888656890522564378426133159294714730718837193373412752491400480212507637994843898927739002955200844275457443398150860358252332539723449593636845060103747582197389587219840097486357077120234307981799617094716786668133765034807551891970896812864845717474777410711880079404534244926162249203298114554262055872928362291777318129160795857156587573819215579330190659387307552505398373123896771121795147087396109484392362443061901894294263729155286824995721972963936739915112533790766832849517506263732815521816174413883705215093636777969655230634983805009663717035235415647926991206944161696331564991480206155508418422028697879252410436791880109985087854301936280417087756393699178940322907409963220099678176455051206702427283633936058295066459796718483205401228542547052669230032775193799146843382557533089807631502892229934611194943966969565182407946710218935442612864330817819043032511684090566589076311173458129769565567281892111014529303731108442964895680085263180313619679388213916529624114793662645606991149828984503663430104331339349515173498409433172282974257500149368974298313431174688777624491340901059314986336388281114729628403364630297187107226108307904438095630719866432101486876154316367862941584959534974915024719196482540819154242922193203704239779482912005053141960513334327513589882159583788385721336543192699195376137607292651637774584841683596902248981960531343211074385489248269890749892432307181552174102716382287004044462306918247425628825479954622033089383677410718750943219311647277558170398461354276534034299783720838023067723335969787698581349082731643961714201040708170155586493335204145838028520401560416766539823954889883800185709406963268361042059102167209053996896817540761153697123093421168230623917616779604347826953824458676788431001729326847193692103331551970345221542101415654954079124089181301307930577177212168723693020187436973471154219849101143269815969775375861103174129400833718437185473939752487017632980216529455330817175037237082777779658374266546618836705020577101566097812768395786685536327852487086129736400129860079449714438934849694772088546157044640311719530098132613212203236023883975734055477390123283377780093742683578719836287468439413696397806440003309816097454553206644918105057455646389681680968455674910046738592779329288473299253806182190226104360089261138479826122868858897252949319021297237864553930606892050728027219434819869217126059350359578473116127092276577924764615971046979743838237936680791810938540867852267675603116575675195510921337420234976757872625342730201481685477778427511564585933179528384498020879287149673598410604746895776522113582246619105029389149526578866663577161222061319965173696645722278248295732012521940888347910858546251543181961431993707317467509901582628722589902029785781253039621336367571751905824906264827924038493148533280586387999574496984885559798421884266354024808253155794688840654356723993935669880529324486237637608574888943129873360129135128299185323768106326005292936686146363621753614867820692682799957485550917747957311577386315756338303384278077890145765984154824499666660094024712800790258144840877824195386791964404353501119922775080904032119994237576036264960625387508273326070010641723443412802929849502645785618054558222277919074792589206964374214608443207077330322404699813916690695431234578320172753335641451440430915834088200534987553643563721482565948331504471772865468460380531006966437528876017491009553376117439546135474860078498382487099271106262635571747144394281044154466665647287252337699456540383304470748968930220140050671504940130277213375659314972190063720738652530183299779138124833174490425565397589079775127461182846630614788431218157327946216867515615304340363458582993143826966277267641584172820810668425247486286685520859604520031225639091918829828365739796618889698934584016654060538749444462706070399584630789315838899121660439483870854435923434945374728418775625779935257436678132229284383340241952959570549450851709210308886952388232938825252829410229497675932075546396009808645886567018225970094596853375230203916523862026608696202009288858462127481336449739939421761800472956093333324099462804601503644258661950920158231279027899476926982220625279887071593088457209768858000757891962776327680374954686333962138477499071621118611533080317575848257452939481371644011773995004689780538097494129263878090798960784517216685554377020945704201370334235692483140171215592033565387539364516789997118616634886553600318998344953718662058046740600282318763382263466971234303366956007548046250029919061441823953623398958471490886391727782317676326385598022593378005655629460051764260751716962437476019262243195417292266343394606309804366455947644733446543375249074567190588585108329584192850170048273761310069044675461417432822845646401328814991592272361604474735235429446758907502673529074751159690796103225957588934876085182245910233841607836515818276734102164343589995168410328628286660048548332738812244496280993841820568686354199414255121062860827274443265951269631318567596350509191600438747482071469267759673715049889245091008755569649869178752157211795233874503184364725662709160628353567943585926480259677700485142117478850029956163638639051382194196868515285287521554370755727136568991464063623540854820313276009658560315393683838137720282562699120529531726879666173362012713465231961617143219696397705188120861646285042038928278968203817807322383126046582664114780174060088434361737251168240159250864234125148143708863088965471501403723688887138488146035899404683381244532062420075400587927953572601224708424747185549293776338609544568132019581618411091315617391606032792121483183171064842289721476941377252547130946900358956571881555204776363648412798559201707874038290152412298059991517165175054662268251148778759629523162168435710593629645597937480096233361402503398118217290325125830051884760359239147769789732036651465614023176184655942781035983349617002183789796184357539410496866148676263249858964374430436262082053548198635878120656108040630472196104097953215782285025197026798146368920471224907841095380352748726213892209511914908519802911371627205947071806214135548860911334820970409593515894602346254500777434616454452697935797515225501931152485997783310776008632117817763671066654314969721956133082243285199417962368178773345131450469602433586538152537112009617250203057951285569692769124537273747858915994603481749941880243504237321711831860503402983166433045055558308720388245094332489203760945809398000309018550995720824831772575254388474016947025596269701904117264363630018114715276728784412837419999237591899261707853788754745437610750969951015107743315304374901083676318249752045692478796072749629506088424781281994572432515349283719736833956209259582344100928735616242974806200387916902778895575518326283103345213376703886879098717238574321660337689348466187562032891420541968580069797131944948681049101500308547917923883026621781216599777208309064482410898997255202193405604492071377690824766494494541679897606715567101122501219433323703266044346934245952192768011464678191382507973997526254762489857466769349424127171892228549213540525398580962791466529460384184471000644344301089665041829145489965371927072244601319848741720254770947774111319309454650700566824451115684983949726416074021568866921113543130523312055051152006495083355199499206114789931845472848112312822766364828491736091674564830694109428111934449119571634699421436262414013238717374347494939370541848501599985965946682887008455955191290709301931535422881078202017521957136321968844755258303897506936397689931122353189286190721081089421701359297247337832843415167821865771189899974594340922460108201547662443545512823335417068767235970307988921857094304353229335685055228623448825750079109564732251267713143896165725438484618142396486441578335054119601197552505661236116129647502119441055253083173191811068472216274989632594766207980613177205707995908282428273907064235876964607415110177272019126626927964912333800819640815149588654699184286871182102908759264432342797880927986465979746882080098555387309248934584054886384034487316006642890592331429256887843153306922896092499168238652372661152359476018459786634901463512615989252655450958345398359236430985576817195081753677337626538361559220103190816531857732770939040666221923566346882964246904561019977462999859412292520234727064277004994703536634208166698621988669726529064090734664994651816366812236529168289724638127222152457611518876619410189610215784513290534811503141561448202752552755744430534968443998249838852573760793985623790668384375689322558972146950884507462583013676566016086896953587623738920675458184053705783401869551132631499033257848851383154796097701695109231061380483662554665438590334848813465150572872496949824736149660085207686417826744265426550071923812296952708648336888202374194707614757159614970298685315605666461078274216658928627485333800510775337895212437369070824931890289905297223977020022215005888395356648149935762359418607709515789337845465493962563372406542172633524930759141230516201697690128626386786631707135397646314852451696857082303127600188447690121769379522717483180685882723566807692415003929264796331901310541271127880570627501060995444671620549793710437568627523674588164255056870155902290962346192732197538848759282590040256917654701396837012382547395240245655722132629329361018550775606203807152170447729281068702929443528755257151590707620112673982720141162644347982425653919448097566696130562409635146324717833671544424526176259180155788191012454446963306152557602680672817521886005136407721932448856954108464910361444264966393493229484915069237416979449035165835856681745791188721024037107217395555249850677844242618686281315208986513976439283872508378952127368168270267491414695077146445047593776093276579484899144900709258664495117905430405270978092459223592087402708306865873065849814774097667745833300762343254033087628365960149906107584396014715845296852767946699777253181092822748714189160666567818845311085570479455200698271618953807187426192442042236959327909342914423252677669617417030696548566273750983272892678140089423874142971753436694660164540824632235248383942655194212836802917378655382404173234512002918189857245848492836696923308255392032505866865907507460081826360679983360674603331493792086225062070984235246493521774429070212952621014054122434419797110524798292687030652016054289337842621350412606466569635382087885658717174121465097809942989154210968242643137581037802095643857963637947872698821388476332988713436662331794044800342350218978791267568904666489485256401117933358908423300790349641087954107172977807131741663051058374239032652686333002348321012712926728670696106295746757491816892723220591092205367526904361205170841866034866159381200933888357630392975015082782451711472903811795508296082200413017119368815767809434912336404816489730547352638192378082681985166617520758861440226576968082496114432474924361882759682456742772032336605559248050526313217593198235056945865107057140875843144116646512722016497107347683341120460614961899835282579624670048058392198083380446668848793177864474615072132853837517519380462491311449393955612042993288217290728007353533820570972252702331976116268038958891255499292249042170306356857957320880637937032076361353250779182410307626286130193269399910928401457024086628948417955910882426257346563731217824412797216089390874468564274448722252170255159259656443258851665857474489951235336329647868556826651698670237051144028729264577008885279561410986919164622691904340383615805443766555079576296584523338537630611284875991580299397237386622834537338105583625171969375223411065919547289377852463943594328625072649772890429128065062288227292584080987104962429196403740218445917004271190201533592243902998130996062436649760904380797454627717607289799138262491852731623335589695742103897761336142609013901264166879481358998789167731828166110906703322793385042244822189506147683807244202141312546790692111429285444043682052040814030300250471079167798691726693983675055779857103578910809174531667194653108295828884185487687216314811036395581152803901100213153194068699242116072336815559593215957537440316568054053326807829936585082020789730655736082266976239237522736202062006931711000303323214105252250705187560288347851132945583497722828154639525929463707675203685643216202291095463235043399474110408535077816267265915851451136930756406688107035067588197066641697276200160166919025482468813928152700164821749679431965228918576952830328896501078953229611867197587268917704703093496691611810004493917052369835114563909661757575965339940498659193765620038570315896793980055540899583726187236410805562214273750981564036058860429148739307769428817909539210994317697145540207370518565979431591644454870102793803503335390735902463662697928784716584890419471478977465758453149737829393252393544616727085591445905293232877294208109663344155046242998789857202390841247993047951211921989474418138585490379368408524270481815239615298579637707659039166543264495708827321520298895718401685938515462036762508028746273545872152582381921220084933276620114459205634276768119698828984455712992893465538632686840542753318409773385494545102980228077554291627820549774837285303619716942315237904239396944934222327592924941225560889755581790937417312040891972809558634606939227283910636966353948945939628466304503415209313289912495421654783228048228221941916853928508133256023497669556601707354906799888901377660393143482724411033060679438645036343643366769055676496531075999781799164675791170825968929760725250615635986902891871352709328646273120493416987513678368501645511234747481405810232040242232971773153261241442875925012019409095130106724632625276600992552413332543050180625008090052751352835795104775476432337528803228246413763544531812419125207763106730715065151361802788075838367225518556264765989685673173269530784962254500832368509529196808367043180629052944908618426974157503892218690796251627161938934510008399938466296079001817661823065119657357440138971171514760968076471892082831288327724185273838952029215217717632387856194617410094339162102282149385879228689628217807980354897429797496368201879259430201509833268114072566793384011261944235386177011053339177210300681399781546023355578218907782215076005068370829159012479276894506348319376938162675195722419263398703651515543876409788140310244831382728921373976136412911739526989136077568344450800393471272225788156972187878838878644654035362399263655268218338738020234270799395351311320136856188459375305544890416126674415469165956076117983983300109045311454975073905978313212073058777712864865661497536974355644227111150786111053225964482385216445832392830504242537872283210549046056394250970106639343403594606928317695800916814476636208356262048313091521126646875596008819698161632451655507823833210447318775815747767442488422865425032817301160304892465968438332519561256837871542531975537802420323603925493433184580450663667919880352342849598451354267962714445369230969662260964353925713166659720998477474272112377481511410449686406189988239492422784623848873082632128121590212384097711018442901752617216922488550851557788062866097089773460465141958443608942952167518891111306751912032247131636967852063825142657230613257094669974556112530948182757745204182807889189701895560794783291354299208535648874289101311396168585806119860124567669877627985137168103138121608813033719972512541080495545886890539654579967629507907813822245669639310715141511150036172555982477156017448490598309535031837188398150384828193581528911284272203573214049575632974147807138420399468259887406308118316883854031105402360026977789852432527325446509514387847270897526344479864554151343921540749540524954343346429542759361812546050472437427548636969460066351516127361476128413250781343331664719671626456709882533065008032556778093499315237241962290511458027070286028911969029949134109460341811460286921669916197535748599320906640651283129555762015125255550603034388477709753393015939534067787950712228474050189124576942980388093752454251203417086077590894026882387587967731232460831249873923569639148930569217367030799467750771729296565465903791720637399870472315643119566342800571780380773605877644010918029246576167213242547648732628786368076636590319558881711101599111717132565445919692395592488777087808254184525000557244794321451599468375303488351896508602778448476889195995673392089895385276837416172236785330000394229943603523401266818875806554262001606714851822591627396139395411807317929267944770448914069152138815015719828799782792804272025285303024477711753210401408756263352992840579208444849949799189014042657875382530451962617863534180619263574025350191592340156560727697547009454120924337185679227688224119812102950415200563917029234119675877262048950483358562554901358492248872628196098274330111892715690900856187879334649599363691876325529602803073085879272614279119553967527735238166313018641100378268770946799364708003192352447935384416375615643503661962167812541283571811870460752292236606284428595786148096035348361060663347478579861087379375707645928611870514565304372496840619363824430076420881863013563142908935370033263985485936079355973030408221017432711613666149744376916612325183837171068994161032179334357606375787968293435271907699296327468939309572900463346203864679288326865889813049280974794132181939322237639574897159723349944645225101030678793473286549179036880772392054526406938081349674670029996892077251202814949435201445596657557984470422697501251690604982728390372639498066328217298362843608517542057813585029761007528781138113024513123964162240945135519552022040487977571637290217505567889342502641979866967187294287165804950198447396680721303078438255370077928028376681999701098423944653033490855308373956752640730182085181468390419257805190350012114276792070784554756451906402737261999867801522513132785567031102045987910144840960864564325574873708860011601313036756352339442651234165796773641196807073837207599685261638827954589711468099036856942258420369580305193774027668891114022137071777664642281329325925118970740165102931104654020717956308495807684567981155373034096025360265010835502240691721360700817245366076186488842646623869907767931452258913017045650034423785564314288967374772836112650949645331098608929990476702039096754089321852672821155851137048577604106642150274053854737806348420722241511647735119370723050718567007721968143732908739506565854150364052294706869370287551145983534946192649731020049293895649008155753989663535871766817311300644254691100394464428683630999460271604737269942700517005625728488956601916015883463627978699854510787459228792382323506355896325109249391892207723753922283519594154347632072750579992615299189806662737415545730084846132214974940789871398908936899601557218552368027052852488853220995776750261977805838446060663806161790836309393236403880969085870320577227708527041990909906015332324972489076126543022801357403453590747807489886605683838434457804051036693124053035255819221819075856705211114612522273385676925662162710497552146207113238373289946487925020681632075863019143223327269691121079571136824610964607207352900405314007171678123370047656046246003459200348245502533796550901906274653100721704426886976589992085621539999585635361890473395168614490597882762267438430956443413798444093246281840223445740921106495898805895180054216677338487083004517416979871160882327078339178825428665221990709672313631888373175941236764518674036851188895688862713652088032378362986980735985093395992557954160282208193358788541087159525414549636272383370149722512187702028829711588300148502576638847795827689923571736349885032591350381525991276763572368814721159756820345632432851573985863355698403353234123368397803556363002293576370383566706252100580672329230463250574849704574782578022322969961611920915265133158367320079334199574868001314899435896241930834700379409935659254867430143835566669945021973750823235860850189911145898592391460170822472497587589970177735169444109072795180199716130953187511368255573731153797047733694158850680331943475952975562245077673374385347276841673354555151625187760685038932897530773744553734346439980242394018425715017802047507077547594636675223575514355761201613593297693232285743004765862294330652042738131046741799180068704633791576707431556286469175384055967803806910624857562792913984821328102705462298496403654511882320585583238601175221141784272344447586731695802433791381553029302414746828781489484145407822334883142737818754085111997063778639364708191775784087652819712232668651142287700768428955795167901397896259064333107135102651923744502995169969477683154307493135882498163593876146834661723997245709235320684593888800007489579339674396292220515540586515340381251917366275846683256432444663908082439216410221082766158444784758241640671446798295195756444201955867272650314993962843062654339820638289213477039077851858705768869851120672885149297402555764592347130300660462985180280681730725061734919762035026210384982637847046096909387434860432728884387257688363481151517533388650678139034531764563962233984361110359488572769508113839748118141524168512632891445600413368464771716495673948777236217892710259396435216253463605859564690391780933244923479722432919513937492509662828535692605324297804537474474630064058889069948909233875456902239110125451377761991046966114912656205831067213968688262899560287298356489567867296869563797701645305142539659355273272250302003009358886699551926179751511172253355354212868338770147868834982490450832355220395969175329964639461778332556978543894195603073970192534991435143451914994280427975299843312351781767833781673068587561301473598184723108554073137461848837620252135677846869380630986167911518006518225259994917070789290371366103089342584739253751744335034256617079042866871355551140241486957563095730218069550795514247235678170122718400226095175950823417252103068647161172070979821156265453094659759353885355621040979439695084614930918191460133112838905153446236972461723693178654204284243993668884394447564343574383184064650695963816712901249124466463760016692563751628062386624881586287501756615950427947673480200256682455648596951624256304176520322197531666558565255663392933252819641240575938491680430645550897074770174766145358483424319185658793140482078847776618918643611104137655567962801941830794295854671403215610819371938020427428409468680811657729724122826171312731861703143833018203529918859180115558593712909611393347239337193393644299208287275311845710130880286429190079822153524257741650352959702177178512324279146654843620477701435062488557031828267028860776283375926664599555354698542720943063361630394047099818476894205775363506016058188758888573176278768040590347513639104673115891146053616506134988545474617851711279940666925052931216606335246519831616546020154284527521341641287635473706619659961721728902444816923359881968597680842575144369629109258668081814622433394491095444236389128296661167804255421508122172570381079855235246592122278792949407336718924393288789332611363757752289138152427118212914734375615520347952188301486402769355229660851890692123843058907769990293979856549540895149249338307454255488348110249592251587116701309211328228843935852945704876578302963851646787413538860986841442779344910970587255369257433803207894103406268253028210165989476818611697702662694851721878522944659401302712444564060779605294604872283304560565927781054310916844825089268247360869414844709619890000536208413458347884232779476999904387635485642769361048990867596057971531162856274777535452403097939361260300727074861519657704452040645572376279654856528962227536940372479783888676980654850349494076335565704589347186740664166054996247388607124229108457413760045882277401839866725429361691898491780916191645337552287856852375948015173341988616473927954470512041491624888205822844460496396546764012490973491803907470159810690765885110795414089944652977795040363103413601272128706053736229629033543184580935008092656493690119248582633710405695917881508567484635337619352182913544853446128577765810574566838730446237073472503307780300931889875630212007046637546193834967900059034564206884558577938420148421109873812946913874497020398204622683918688727297292429735894435814662006375110857963347108083847678389720351170754361099306142287662722356871786428608489408233514842015832698893413641561708822415765585904081060164159326651443324710948082460017983647838872760730613944628249060749387832541968996951952414389350218052538118762620628240477988636606844072985756858628460064317312431966305752479371166848217426851775853057784074600672245956038318596764603062341009512083538055566696360817290992353921662937078374912035648281668135202350796521642775725256156926756549029234682447743217840309154905433708223170197689269130861465739037621756672304456902856434380321507294008728781196214430634942249340379857450230812081784282382195529993374654814455760763908697715746345997045068453652700373201009142876169492443525650005507944195376463618619691905726257861756729418072809914409030461281648312195408872440542869639777489424619458285736027084848167802888604431646034003073256763868543986766395507700665929762058679679134193299829963975691213812753728877978162563255228393438995895605950453448987817145604229100139290484827734711115491591849160449384691566795954988482630561715026891969796083687354290358388435531529808454300068068658550842336993093901076898725306074001781134030745229599226790622196145363978802929476587986356009012731432807046284600495797849219086694128370493199887279756565488516627166361218299234090007328818856294310624230193247782181541549815693382139237271863042835859248396776614877638126621209311484949129241666516397161924390446252528491529823543018485717404213974048293139562864439674028001270084581932711161221774536161819289187023533285658711534292762671843940274161720037348142228315507013198955831575454705669781919027341196165690166467176728217993184842739701440639666304468141843783551909949442900076201418861865515146103698214767335558211610801808806217807185058573862105251284934928278745127662242791837271826783851611205076406767888826704199901188294943644891083812883290765675047799421250816415588894412893452770457100364262981501401633877978128268207208620420305125418169211885142325346674432315454239298692647571784068656464801716806878031349723887547136874508090635903753093782548439804323932386331962369722847207233845916598925147313613829031720468806121810885747391714542546864667690391427424266771504360534668334288788149579868593203307774273937658858036984388915438774272075527109160106685538851999374802963049352838476816624180594141680838992114027816441757014918694185073288811499651009053235423143444835140764213516068410059768735620772366907483827574329104978146241418733040704418572186946661630590279540329258544263233069372621897561493825232339765212726180986203461379655463555913568601448826263050646595939526601002772225901531510681150180159938418256137226074168580167428015808493706809659304596211684429635754014361223999448611480353852257823139734222162462887921812868381598707476656847422875227248908279600681318945934157241996499841472387692440162394280343690125885806533061384217710433727929440100028902630159079553323161062080458732031469709490437004625331228160917444181267711251555343061159078964469704520932995140905139623337028704855823893446726106815904624412050450470150570988958309386655113979074428907792946871562737600349349654532437869092547083929066899539404949321793641555425501639517025928815246814803188374101555350983758759385849728285313297354883792615589863591088489858602482954982881632055718854664257591025205324583114051949193565763559903687470669588305574620179893070534123511031826579696973523871265218465140034894405682464823763032050390030466708576716943170378415169452174567901275802056551268337839548274979265953086143412775100075644729006676303657017084407666447653249593355183795493208907994056260663083639098444102147902644222619959793130954540301667007471280620218870534918570058342018729600932116064165683070478936105480333954499309165897829980511635950241966290578847075421499155287037241712314132169148784812175281879786508803395863592970761410319400115298949390361203808247683511897634745801350347415902981204253644747761061384966894246732458923449829543559172567031569011288905646159306708000424106398701533970816858595716348931687873878001267760719487037200401607862278788956864344361903287359717978637931460313926805519117105477881516454377434618072942687471805439912774255737774736950411681270972142890467988007475534541285631579472865571963267530132228936694288646029492616916130459859733619482991641375572290798222053186769818647353418766114702873370778757628964414936741202878211067529196655642606965985199645185535952483095691555332618376768218840215590010685877658649474843557103683309750075447074451116202318158257618790255312572326647183733344045492134501231957995073873178756173928178046197068358843935478816263352211215207844345714452353733092437546277649910364118051955068812799123828401548006948295989367424127123020538435946139288454150275577610644341197660217237092903650254008432061440144117194524095782868003459650271790901542607219066333148393171455915794241948551573807988586646345751053250072568421232794255276752678659356711492170050288583709820467243380316414774427943443061742038098561935062955914374035408753476251725025834306414238503319622588720930031678183943168600836320825038809836350410033130536192281393121666894863877477699037910415027076031593846307826759814539069187398001274814235340683802434982365997736281796776676110257139906293850108307791849435773677328833537784222938443821790824729858590188241474602050271783553814693836609885905291120313632218122767624870076562206037766764102971448652503888860044458880071833958110844671295329784225148240452904064693010728619085899889369407769915794309594905106712495833074371798633643250247952406315411720348587489722235538141183680684300815011059677431563102157482964464682441860735500322726479979000298708387926593841299803791669719284990191493716026866393893040516501210471349069601838991435511010572951246469577552155522895999860088684684349203133365856466932999364054175932705636859487647492246794063949668980229100854673314119751655272338001589760718827711290893354930266276008224486645507454268648013871314720914014604571830523790570833792737705303721717578726675415920206835217516712667888749606469762841070400620673183276309953854035909132990150092351627056286918848923323304346831231012009818449247173350114741113445575282536870920090627696660224587096088928803675084972992657790199888569897678776925890275107534314479462320891110903848588490929351461545780099498017799214312069304979917147168677875275159573087374134750643938517411528328836944573970610424050784933885320259959161743659880489014101047401652211957033299647268745325065088060099637679396454452776333945105086320609650159759525259989673973067672768107850691068796957784377558461681409505505663074204556315380708169066284464242879682581778071411749235978812651173683953493740705364801044625352472621910101748503613264275029417518565285759889581613749991126067913104411683341128656277898871428180152117255970572489337503036459326118324391438975122475863203815754924768711698809462833138520938162239903227333078697925795453281543849904807436583624830305574558798345321270575994280436249237236663186995547125479311655938953431075240071652771651677944357246370192971787810805352133243178877234844237294295386029534135113554296868750701999110960643570064843560650396655104731945016411960673160605438860881725890830572449442178103939024904080683957615729391242792225582413146456469332635848739367504691751624747043736904447832221058905471297225468669232212217245372259492994258310862207720490572070146710036314441457293087986207673950298251320878481542697060788376772966596142373692206538031933550164333293010721042263248422469080344549651075782592625644766122520607765404948244513349700369084348148355936146909990557669820849350348231036088979127232237804889367491557837417648594340736296263980285841033235771234018150271333331791326313307807459182655647832227717479935360977522338607995135325784233835314845136372176946446527513020693223286143421659881925110372857643810127160999384882325287269377903229405159108137883236621667905744400964006897298747491648360728083953943898187720249926977891455867559972474576663615637262164736593850794446430684560161524224103006160574853168006019344566466986635067617299811297156778638710679521889437553451606312475718498151155750576023690061997678333436198664974184725028953536543827215936895921072457595500323754017201452976216335083797588552950920905362903732032315931467749992836487174675831598119789590559280899740868924977518376140674322214937063074937848714225531062777648417962493464064260704942144856136833029170288355731997899535676758839294236358782207720557672993960899894470712121531044360765572095129678843040389415988599825487875678908719933646700870036101695571034229631702957574311025650074039664698938075018633910872018307932719891908419094918974686078731621094243457747494326430211045185000126211621350736669993619967681906722148154375580372051873543831609545649957052967737194280616358571847175306693675202225582726815108551541249814752551311658864143016126732000390931262898091027576314198857870367712860530136605640365942276805533823075482757158091057861299128628674587032953062159739717016362471361774630404066408017295230133559755716145293378214304417375284467701046472957183632273080756236783249511677645403739668728751704087336313573035520651236294241141207747718772005474396224977079925930699609280538823939391163185496282084521292134620664839322470917902973967358284173897986602584805218389983561365179352415097292765416738903642592780981475765164753198856766431325720968203710640165910437977651932308817837596654527218757092583008328993013456719899100365909466573688431590516961943371617173824604823497529831160646237455518023717128569054358092021090901866282001128712535555085690690015960388071303651244135603813903493286377509011162463714993615243956361812984294005823551205254513982941650121626071233988434308732794418106507985406321758348883696730074721443209895116552874667207341472788920099157333010345532973944055929047234113894655720953504829249805132551687595464637578308826479308522177481238186769738659041192878830745963876746497812106202497905214364747895798034549813596889626709062081207932522373179611420216290267133807402521646320211877637795228854111113024608961632014799079558642227481633866748958334769808076080287889291159728638679871478809883108348271458748709006097970423082702937697968965438050382538634407985038290309907367896107069437919508164345458343862950161101264768327195880188912606640212144823573558346455397526037813555933208210475830009153045819202844372041356399541534111938907092244574557013191595543045229548468886482056304055407100114677791219662838434031489504069988531826623263779908978811469595973556115108547791324055355562453831274585586675418186233694167865841553309374708340601165078273495511863715377809504533646005129602906348384459537754088792112588744737148265021202072115884546305981707592538920786491243253424437142603258098122990136015635692401852866252462862880546311901823185006319242858960213092785104351454224874978031408372665769485547452528681653027911572797459226797063138270256878333590453703156970758150950121395038405304074944010326516990757366895414694993762018568385564447590896313873962092504856134029049107322074045614425445174823121834221938106340091182726904107831271810322714932890414184625264982401204334098410615095634400960778069676692061903492283088377259572941868082796208032825904785173820105622877597259851260892106895446793447388996728685642730271695741365843494031958968452889598495066133748963955585610250061327000643176704669296881307559528966668970077828829626918890896212804881314888638021173344260249843385849496685269134687937386889745525936221123407005062536207794854804816205760700266667846060529977498822602121937234160121851746477301468633056189992492019313686797784723412972687196557334211154075763005227394701516407659007117922245227240119908278067612597928322411998319255030746134216244709866826613953201489684130671471732902956299231477015258869660238518504508086844717349376366777641181861650938889525615267572552550767695694738289216162308220796951562445134932790754943007504600543644343731870342666178073502355346654682341773472399993472414080430620408613551029149082652056782468927868870380210874194624305974261805916356532710056201492171268084361175637328007271312866371995911212029065996729099975305444854256698186223102865778919733674175356994815892032124074454667393105563838778683804808620616212374007172031947547723232068981913327649797775401437326347804032714837925604971000293413569181227376686036045447766380114477309015410078143230491176897441312798402046813263258511409058404720940548645744166300482399384941578036256081591676114637514086055297674533127798992396080177111490970292566866002811808984849702215477258417681525533863116201226034963394846620506996075479216623348662806922644575042055458879332069287036767676059166510976358638648539631065269012356113869613269299868257801245680976020638079129271511922878820548401149737232968495918291181215096394390392547578151329880418424880490191570351698864825049716794314003798672977854215872662256239124844303327544856835433289853996639731128052789115247356705092512078981651479508574637406724347120517501385332542657896976472125411237846257653889900443384378033959243665684286342249359515524892864675849855828355207294734348624968093232109310182290320583006742052782327649601009860847948715954089259562447438684317875476967270885384472657242016379847526112360114756108136301112043099745723941899494986109299483857644357262096611288156629006490136520646531157331231718248385284376457997197170971644781887790569935336355826064968288592832921893772530050368933254156107708828846512216641409116291297583985653210090528759006359315599282337075439125631607470182264153402371596798127702274687022256451430323983286724254863085570150145084293098405923796666764509537493299885681319736461763331208207542401013083975641060871317385912137919297384379611020713812988992343331465107119230049070837011417832336205984229871654548994597524076004117874256802045537185921060542837620921279387726895258583389883758348067844060146402447721299123647572416293030789898856223778738536303345084351744614640019162844135849705954537477912591420376290176799712298228379078547066388133318090633975490801365573019782805720828921377529618856158237128243288179176340129359525781154535347431414130761638956048869560910119430346970430742094073858829604527786274644838031186750187147964250614051263431770838166625990126398620007042490674019148017391763262895135624711290486125389587987104641877900000714765140828744913428268713729298412120047435086640305392916340778161203444776402224706285533901967558833443632507522834200791731690968155879674625720849890486626428006732474761575875150776970458070526001759386969085054996588304944139061315242395210223159104145731631717603514480890387471807343059242598471819473088383519883752518655313171491545012418665641766165932849309069224877969429738557846205312647028702261695208181994787224183066981605884592822920582176514660087482495487669595886141108876943062261085928414815329924447400571633386692756857891431952978801054341927093529836076624875353043027696150941213464670807854658387294365699212414617166995391130858273241944305611735742726658733565710887410781501335581148315166220961203804993499286220416359075115176044610277651822736894163364004834416587437673934326006641784238897595404905337498400884655148827756084335689438397195458579380060715409164116578312164411168216781932778998991361153546318101134118700739055161492530227578252342329284077372781480083714179992326711188321269611052022018179406120434093829071734112940288841101008514536991517819530178086744611232686775334267560854012740485658789685251565075693757874712131093168546984665107512299078644294140165969429828826335657352752310804692178163486707161827603289607315363663487609799401080653462555081415286877002241529370093829671441911832720999154134808888454831495291174605711065880654377281982632373090108874301917464400287924177020488570065247284875908721168222706331994314605035406008927762505125776423523406524224186765388793762917553748207211118303728345728880898743554417599407638936686761368249034111837812688133635606996311300255489936644513609705833427381562410105152777167046734821923831039204786078058982499186001799908125933991540748135995384465458085622155854131081495281664017409557740848864304154683727288230347115058673598988951640952901447316025479480750938191027140055970022858533810471607223713243248751967546345383318052573063172731280339881349366288317318339454587574666109331839051889779841157474696484040156973093068519377723808694854203230216011807215627915508110546606194577089343361080220531426553475614411167064765066011149710993133516201340663274440825834884054370599653257942605133866810489805694342269738165433436795248642924822471816428170427029382247323631419229359162170807137709866021026081692491104395809192644594980829463423618989727328703317640375839163229443745037400441106299099560541361968003345881096339317110204020655815714447194888539418299524612827645470109805776219461125868915696583991056979354825911430538154994311365206178156448164622131307940461199293791083791966108082674757293385168272283182871796210712655310777736942720266935685264798547439575036925406312665278645564089544672704070411586055042832538308787421247598691987483070526407066386223311838672033289309414001210845969363013130576381889824349872009794326589402740616950891322788932194276237989251864121545274196731131281088911684917760268929385162257382757081343305874329009799138856311507100664997747293827247922798987710296945550944687775907839205993753400426975470732544020790862884799594905704345132591497492188846068035112499054844503886790772451631815301427206722286739557928608492639247362388677332408395168353203020499293682773094830465778554818079771651856576041378411289727963091732069931049545173744806852823853495617903594795695971177831601264053757781172481593318228379257298228308134189030550997655914432439088036519262930748079275761774044208429364118923538982383718772547514375239624593407384129189467437711686497330673382933180451681545580689770790343628252504227340213867835054257350806630407990913778683591595136771757505698430811864295758320240989897026512280851816341549850479869563233172356922228605267740810507783416433388585165315183583945424536768144889527430381908451142878203022726144466537150048663123216307623145813609705234444843995952055361440803390232295527889652809397517982968698116300729187394123707057558181641355842759151966615512608550911471596792605280961819266465269301060787095560828502687259114855134986930659495268793609618119107248956341795429629019013441054380056957073267794512490479025580222338256730921821514859293573007402034914687958759233948653758527280096252168862042032259746420049313935941753708251888233382052809017246333666252830569739867038736655336820347874753648637864967289152371786760533388908488995392573387124081248679509246605079486161152028829795889881417077209294784228858760467842688665183705609542467607313276656366619143406772745561215620195547881084626130209112063721367471507012356044171658540190018771420333498784583053276824149379036897386814081019780419848660457360059564138309908919082431456340023764194512844106968160632030509982517233070574706877332408619608145699596024763026619573493406033818955552175141791109058529740881227683204477264620125036064809520405230621071648916360372420043687306146295656141483655107913284874682107368128575485468933559942478470927893242518295162890023497458452977993530095148582612638731048150027349097135946727980666531549288308178719415139972638574882903150081396338183363323476196978723240400711212225333218909583114135887223187734102391195099403693092616748718613137215494293890935823761924739856704744019571513314050515309511114794679666852193646158214552843218112493374054009575383923646700669161563154624522191990267704000216075481449542191168941278984513843572229406071700588505998451786917652382476964223185234448997188183724437535473258883366045160463513604133872699298138186053214645711784480171010379992204945813470487068889689762216758407100925317333769873164104766253237367903657030538675610256553777026200783596573703582839447503184817718988752552635934204575858608384018068427104193037437711765776864389378883484446657038680979824200371277268896124320091774082833435379862564542803853342661699364862152025357051873457698616914333716752284086046623421623553309448334643390775223010807461400924268339671267984670017519799053322320354714084156728077869698493212575525327167816185211251321707743749303119533081111277348695357992125170177673423932221541847163327200603427739011499384419674340303923263386650086250664968189449374676955221342738292833806568432593673058145026312509952290267876991607504191438245202408298688310503702422369436420911012250982301729756686486095074496540307168974773398964029287320067324006635311199961742525544265154480300108658252889143392266021805448063665341761674423392200003161778323226680864630399509096289389215890223087063811293803272167023804346178308929285604448686781405321931560120421315751957910209209382780088643379374072408402218853471591799635665795216701291698279592752283065323265788187351901370970064632776025884243622276492829371632870698892322968216346931930901673483362500780861328440203333771137257624806645220832717956243562269035788846597823214535065646515258336189764737777661835322739112169857364028515307108381575997007170637813146331318589064211873588401610499096653705902903649895420322542315398202493121124839395526524157849837840679147151476655497485430336920017880337807328149822261213196627422995268747335566075163514091250929383668758210209315155821781109918081380238135781883891131774604738735865399581013386949430700110226975437833619129695778219527847553180561722008042481641707575572307244481602345884073257035915326169161670686452427224516377291051454897300729495634426804763766647682211066732895061191849141561896735883520773832382418614218513250284115289900097961873174463670180590412507810414503817148475016987934737112892381154818646353731678388948923460481547864998193080636497573511069298753677924216824975860402468925138427603501944669808148104539165580983722594604339552089497568376022042657362326874721970860965818580979248118226377831352640065214630146444638633856205712519220511356599077666844964031117134963278962691492424173232681292846474659447043137895000684190912587370777344766005010472305082578232729701272757308098379464053988497479250646123292371945261636925909791958702812072578797140037431320821512693619106934212138348360480773308792477911981919683665740103709611174698866986789862420821581467462782545445459067595708452880834958648915344398167991223651058563536753847409494845605914601342699306010766797480682636942436954099806022107924196939899898207834356973198248382440736674982666672338423941441210276339068659156229505135861593786452152168161898054716716016229945821609710334100021887151486923586733559582692958772673849708438965325441710446381726035376102143827515469812159484854819351440386868954519505284600355453202639342047323206164915342894834024095736939614274747742676266264057450158398200773577953783171593285045371117680427498566380346415697273855508801649204920157247054179457533027496322414274650317521839384322818128991726318389510653999951959140667614468061286409583035571540866551646757972983006296196323988038517435494946305048379024586568680381940507713419873395038943544823529059824242596188472487732743066123317200730102182070835904451122373100989363526980084811760180276637632403218518695924436708548176991652405085995469855258832151261548523867602196208896615522023877279200078842131115135731389341763851098550662939173156528148322597963721172964712877269827312190848774446105817134632622894719268302770377709518621511518251846745669803126581492332973791945966518780728502333860936246780648697070566962994409154841107394933384408961174379146696127634540456782315747122646786593749963780325626907235145787000003054371146646740517267624351515680609291737902760915971917232632358561320619736787786689019433023544953435478902864019976700896004627608566010709557141988317354456861477863904634891534962695907780583201254466650718689135791425138675963789473575349444196918996169788498923671806836593583865718442865025758721194507969537279847709155942198308103481971442881839658786311853200835734468876288031304063527855948056890668979732848902050615796303376491411714120826535484688253293956713892712725211756723211076536870709189605525491114764029943861168788870522618779819248853146044207979650556537012604405285591394793702796326998296077777928607713755953200537974017775574505642274037271937236595961962956165346967076684171824257854285921176572308493102176037815343836546321093745289963194504513385669594679864288609962505821146858871972259521931970754570223363419686758151410626007275547767097654397724845305804702480777308986198347766000018629583794016264193869787875979128135841088567719972218781327468234982104517538017348775754412807866411874461789927833295658745569892971214679969080573804154268666137739377393022038750744850305575665041524545852298300405803541553323605159758143723094247856399168912864625887838192777186634244141605953322857713803666887861555942995048445872931724408757153204661940109384168601410439581087506300921686966793498782809878803930303364980613104327391388270539028241177158119888852565177506832642888711885457052073891448304064565493674176250493359208190267314236522063385257320690824167419863180642705256412383552783057661156655331678692398142832624442796096364100914696606357461735175277772361305881845433746938107488411769341821144369628000857432741246119392195804377526384659694297082405765516685173221871277671199639403335471163442339780522909051247892193854719613067558551424518506998238629042430627239445363175403180465257142976316397259057697011275201727727170039299943043409155762268502158702875683090510813149401063536909443097799203854249001987117444861423464053040345123187732432345109100791327649820230071854073430895429620748171353663820322451925921030547544250179828303672388698092169611630412922606343613809141082960227861931084754062149518971976550907862699516030000774018466344699657220660955214653315679886167284834933868887718484039049012219478749819229216400964651081442884075051189691243425265686976348519759733402811186862800838454047508614816182528995164640677616882855670536261531158818840059690056020051304342636783043752046337306384750827231442126770658736211127793462385735883807730696356333928924103078842306774731717353810811075661393064741414907978498310113067587895041897408855200941729338314943793465066020274268423222556795105538580805644850063647056690394651948058298803893225557029923462196448494741718197819664386190899964053615785008007023075135210652566781707277250410218731513471146661643668257742002653155879247226342679025110938227152665631206553269396949049011310681427853199583703325654075780091730043678589320311184111028344295585955067699476403503370819197518788031539221465357717830085795297340253756090228555258478514948362990420656763711490140585041886641559322895978475240499944479950284656460454006246188344723808490408239287959008016712637688520558485100021826559097751446047449347972984299802498486592593973198029388588820861409295801480655157074832000231642051526478026705692215904225320666971907630650967851677479032481379271099522228862809287056017815609671000327776069830584493046226885453950962535105512792276356414699448100578612675941316073275545175271929337334828275186123409734533284150384191012544232908410024345810382502436807401983012750942916785663214887139385881428639744648506924123838764719941274790072779951812245147768279447013035073283374314090416773662332694234056787313339158753204353818133644251923931429214320801600468389601279411272011747262622099034680634624918780158990019225382402313957559411694981980528611469777100426024551354676824137273798533075675207870890744822074136270778259934450925848448079918322416587446693201180286872518820901350919383850554745417380304707313271992905716646531959736588554464743181166352203806955549522428305239962229105034815994217179535402476228541147218177892223327056075145735201930869372135323758337396374385307820640801274820487981034205421427509183247409520188782821927485565229348773225952508391334373594901621815758966199354477234555960385451453805642418262692933789584737025194859558232507768375599975943436827716840549468156731908520534806695763510639889888614857702285167502763295118042823071950474398071303031857132211054847505803370047804424659574324248650808889286672441687141935870657416616955520808234925937234170815052746276855397648122098861627864664269129965189992226546798323668481904116316482079907572046490578065263454226579905690817491894757169732196685168681721616259233198884764811524899782249879400672443940318897778604510221213647633472866679451047089467526601211700768072280860952705269365151820096721613879665882471770155925331982884326807217239328955073821244427158143122531556490047983606719234133709718431583393206428141901748750450785749784780962653616768115531777009753181506232010260270270987179360804055134123659691733600055284630488738763636792208966273785841433723440006066489129343622751158432370822068111077728423671450732163170867372297166625643893633235021588998955330499329598393696723301400625223648073601782980086606932829191978687495894017589618714337805864970034447391191445598214143041417957238923823804020309571577101464964471003422539989060693580295379221769646984758260840695599803694613368483540610494977692980127265015652911991095585037116125324482037765428434359508766489538071519139407277792480699692902143250867007068760165970094220237357567329365798775537276681693860146417966933305177723426623211277169630908100276114724324344789151639679381387492959575796587018696852718366420431843058053859294509391610010131998097357285257352158449177916998841711020033235446029900634419984051623494220377545129069204484198047292326843543469326044620580623289847020989710622435866001346656179903429721035133220412912416615099158874798818947078525585712926888482528295648075719642540779643189205071245466201387938524094587024539719877785111217870942820760688841631191811427454848137978332670813616689252017644048656810525426576483992000147287287393072184287868168066860443223020892387831956175653518251756570183143381903656324397063773302913053323123301742651813609125094029423148341952413153565906571167810525495511346894695484177549899076294355397949759552591103447813239799039359893774244307519269006832320283092154156245041351046151519339336390236735654834919727092469983044302463999938221542484170616281060087240149338080269310820996984651427275757971806768111230217611169692206128415862309120243046658230974553114286079949784342357279218152030221913862496858292491590194176777222917491934490061604442223401764813507296912115468020473262385292773031517220912925605179098869512005990007202987016969736348180270936390930507355708224037012259386461715099630389475596297337629568167145818661602507039852190990958832749628245006142288778445192184238057401262516287826709402014867624081020342310657161911982713257037237095195874404165973118517857989592491219125826403962301869051375811506207504014042448427090029275263948963573620844645875075848285584542139603371766170169794874204012628449496393511275095560346221526631603435235204323625781888523177605439033758061687577725348342011858182586816242938581608245969551777643533075381199083959606829444580821639635920227704520490062520715659013007178938709529444392675720576677111136957997287332026797220170481605412780460402353336785249673975879835690278328775344174232932730442643752409342659038168807684480288918024065394687818235262412977775456391726308753703193104355702563760819953629205080796239988678296626035545208002382358645897840798769238228524833050435833366457847138263684025501494380643080041504888520952317893630200513786123799848950994809340639654184881786486833541342847134048575817253004361261898902956181263709711080569925227254650935805998640857562756239264525227592439441838435023085884859753698702724059574539841758360556497617853807405301978775879962986803270674126749240195917530258388355607911668928040954146459208825700351608510309653210799761644958258983219665381640646387294906378444715748236060618358746150482887669005113007155085945764526791783285351605060629311557210066928520111452865148969758279679642729045771896505969887302078379834156282386320236920206742384033757474194055985056039467432125422930681349901279113798315252979069257928331508836870039403600595489074150626607033525170948692866579786047268004974756589187993861833200000790342098165460932305357484252030312001856333996098026964515070794729190871021175247565675819674717119464461920562703138013014652648311282050591397890055315432226025440924683665570208621420025572574098804272199122552450876759010109238811583304154035664892803190157401833478154932264834059636827498823908842104819634200066058284167613031278348647353257118396603853072370986272122191528122853904875845005691740391890982504221745935944336141031147008299855872685920844284771888617470588407296468720871701523432806359474221983744128309782216060291961711296460744678493476208779236163871867710892470616955863537278541812605024295976669476258054691294105423528193971975885489012612578741993179143404454271334988253925613966294528309364952191158705017227075137012335959427008656930747899646493426115078880705961951972813514933915012990479284943541562162366380300079813132689735248738284771612695793480239402437096279319731793817006961857357868055214009492275040410191302170408945010751887159382358711192215583618096016434618765609550704554702469401347844478324424827810721942080554683017684583802292324793796945876694303017397817070846324080607149229702263372527550619684039238530743699552155796764463968650334815366763821397317811390076561136476579702002144195828634393588010641597504495474797250609650517085528120977143223041721363853051129141308263305442367466053621013838958917961719930484471017419267963807860723408818104854687659299163445199916380601397858843925648718087047294303195705455374230971506664472235564295182827839168849746913488136789268101857286006468987650171282491424244231436529339040809842159065710076819645076338419992102832962196097832669501688566553367280327256408714847591711972440212745865582906680991952891486619528434944291948786980368592449288198889529371061189903714508959843785765318871730485785215435264597577058554635066703900519582435117858589095988843245550535362022056563850162306303181377421132633677881421008054783407968399797800884658067439556576181722593200390806262575747564354130115399028424810386978571500559675572014048011898042964590770102420983043214990566073634629792343672017527165393604101644058042078088628097106570730289955796886274473986400130862630950940285220403381538622069612110622632154493896302853003034196062178519675738081751654399697138668930547729343533901152997311430364298258646685145219444482803417216735851470465904958886538031927731568775472801589370016396855964393674616716286383966750837810406520764614679990678696788867708132297966866847636861998236388789812809807196320659651692216300265294742085108870584874160914897058429385730429176349596611287902392135038328035936269494229728717984443840659703955855012966466329458588807695364610748606155032689285100190649843158469502776696716174049507754350032724283906817855620923729299552321125690687109076343382974342583703985760240224358041379922619789003493282053987922661338157629344211892989368879940678434734591361484200945976215700353324784539745577502107927142013054842826281585195629056376432448743155937946726823085302343281513126036524581516385560254863821664042408799896590677225541946625492827504646415338772118466740501441676260811498317930403753856130977580825063730432987570274531432024319095822687026179997604176539910609269705590935555478892833492577582306603941580470651171105363596842526928042476956565415442370136791351466227292277303566605340426113754997075963336203500663192345333610943918815635777881877160144033705094832779877031490026657637215273701282413134547387966701358281143640008272377942620138031067850785508870662967392475623834269597367584717074646044317866488286717669714205598994500807666961921437551082036579577764201581874192679706999469872653425506710634895320040310545773366413644540134768131957140681449819673291960719190588371248559264453384751609085435062258422167510414464369158545678283872086720230160379561240546798846598923350813566856441891332916315947420770689621694690227001653832096107096793977706880757904135412564334912371893076967100221837288536003036770204058610463712430274458226064086346517013471580613684375492230158387910069309588071869353180747257477678824253208429835780171195267390062786839218248388260752354243303270350547379220165808636033477028237046939815020849759101687038678986889155799284579076244887276493512341782021884197257670659761309751267125362355068786272383318157680331552377027911666072348247753442677725829846429661859411726161259241044703942515849013540632694167285200230067583731949767718344105648484619733615852652279747358337596489689310215528498360883846658560631390391453116836207242655559781969732037058501205471208347379854633838097953542592720857105980858055261286526507471734820825294565251696608724136087733471934318009023839061168353040748311242681861283230186049217737489135736352584167085287726530859651991349056380413918622362716345994785803046067933553810588505784118408512342134961506161005656508565272614186008660275893459670820609529295525170590927835328573349379264098304773624187659633442291044271196785278352853669398069212791826324766557346115919001878022181265950690027208867727055234261590149871678198879027607980045966366405555475976986029931169071042802773849659845171399338218054799724163809353148472642415642209616236926065541648711867097197329313835912073456439589144983987383746171230117354755098337068418132110492413957793488656196921592635873698796866835672874294749327985909050983777640868240494190340290458230708793163662861240758554380589110810068772616063094993062957241123434845448723538689420635949793879340833417486846003531536783763281097818902586987266292364992380786357966778251017210965952407013090016840292035269328914875764436886473841717205475951606852375458345525586144915839784259075355203299708179278605103958930865630479800844213517363899902192814847288156050377292027786281791763411699985447945371459767415605260493891167112643397100377861902308536083035427636186248428184092962995969044446498912467474725567668281648784212423785356847562039854973298955878667099027495843914106766372437888228596530624245944482481286106897424915501496084449112926170644510973657248910292333736687580517506128516926088929603470680202643223219824785722328927421446607390827430741663101411550875064197650538500098995552230126890353798548435542549529777707107430282251878032709630803741370280143943559220564661322149845038834747623798944769622718807767561170745625711610770410523295957541964204415447907933591805594417391125020665288925527876260502232651710463085997404090317198319394541906873225708007934578991717548973982052748094989223976449689471215286188926189546863221679206790376908052515060332879910472347902043711507850821181240650136440018095468215534595366356468522578430781442098531663042012475691476891762364096925698286686652038985363658570928184797160206545217690214943026627075640095698048408385357397247741926266073753789938540805522590386280173935504861766218862522127269657922707444723931202526063114075608446283620024805845599725823002347850183136622426309737746207967941332231474362426261008350248993473930921426434942796324158102920393285957891966531819106887115138702168313225088117579135047724295705796061824801055508929613136384463598600348533433383719127417634888392670264616198134254102051881460586060257620634022064954885258759747619428893665228058818268073404611242954830317182474385889255384096773951465207712269626633009746032326616789332786389234566690868660729940683572574321943652812235242715944440542219454226639616816473401394044326211888496436524503424988146346410689243426797532347819526916554998120064607045454922604784668475764852613902756382651590672970449154721160407345091326090248525997037308231613315724904592872474511012952005582698292044103330518266934722923046506040128950933300027454421064917966619247234017757811125511397111638146114331013034432215760765827319541556776950900372249800886309277719522369067010105097556565763664753043359747978599546538600619536476427722714348319907452993802712168599052755431246197387502567824910522201122853307649979395992485050185870644108471680942398943615586185778782291717746751995246426218807942132566144894500547431081638122029040133744493801587388933835011026753272285739794988242655965792094392453129211232171986952446660826522852267479193746271497778224278310130935511915190981450390992606796999982902932922278306381199248620845711897237346213115532492959055055285005184903976880950073302862179837430795646535240476044140256902974262078275411571931991362309014651698826938845962825994346052050203553656372802449447359959425982268871134185182974346220688396751753466794864483003951387761730449550343682884718982580336810267633698462877162022997156395660954897962534290853879227699168850869340814472506271332158393552977016696559601904796811402851921928337588912668822141289737059106622913150679758308825664990308189097672314084850084502910761340599966435826436923383209243061079197457955621984235106967840287309791213702906110506144082934534059123447429465539738094945827079383850488687981836146361898779954272225327794689717552904466418687121485864672761874306284908547804792826357482855963801690812853242794559197906936252479400466595177774988553915709359041842602605145773849432091597271521016559602535581448698402419798397121631119299122330983351355702803013954371424747132643037211119941888484922920353274252634854368182115004527123151607495289921452366262385248956084384655633423186759793854009660410034077877453704519859787339489013900990300844980667377559054732895416526259423018178302124873952274371425070787506972687274368243594215776275982160164845398998070318074927739075765820420304870300718826413442572434982390242709033674226995525870605377839453102436134181671012321736089573652073061213727483731708718115988989197555094721356543476018929712997629641869829523185496761842106348495492445511563351246973303895201365912649382584358900518587890408457529980106914901132254577123073951669612649639456299130064117359322616168946639977499829506004640615330868755558770275978485384487439853774881802194386065464404473400379460404748661188013037796703364989873720182794201507245187133052529142187107613575670394766393047333947868872466193795640092010509779245719007716375549441206008880328616522618122187064612418421096266970810395904133864301750920095190892218783583886025097827566226594577238380628373288264504992219015902401192756535204076209253644097662379593916091422184283541542401951782440738094742172640060378399441771220838581969168083543601502022248008982282389040820625323808900660343583691090907452239812275075195346366731527801833619554176044342151621640369295880430116965124917607342708832862680176961776378800457359246331432165989975852413183777222250184519239979750675604864140481897773197106228102192889656204662161847977583794649707360269938775245910114278590450758105115917284788493875231500018651992993432820919142635469872088824360575191123343488306444945736363561516577791170627228409899256486863573631669970299415868317766144003868343667341148546737251984017197461725761278325934103107613812077777816123002319833411682281385174676639876634708682720953648378121289321204125228911803024337461783076729997536118141288757895566667810619245105061188442004862014371464716370771480232828671880466869079337863033092831083370356684091266767089104754076684986608863619653797777630581705474320222845801800904143507656140368179767139365900718693619538842611511159433328285888922565937873450510476176671988146484614974298111013638073815292254297208917515313386491804841548271131424781164818584215604409193484644711954939110021656243227954455585832967579816747090158368528806797142518779721126972872728051665142803609776222561075952642998666235637708730201417710193675407917881212485602971816614593300749409513096027030181632821459393239725564819091474129251386433149763772476284130791595254976935236233050935745608417176035314973312101319778862517057407805678380150639110541015840989972551229493085255330053916674887453860306147616521547701082769429918391488006235613553521632792679236302670750349615252687859699490023333357498634753129848388348410134447654744285543653495875573317055511846028866084617144400833903962075651082887799846043068734948948705889984860332466880091931789674550374106961476915420403915859213751296860912668704308410079897036032036406621966870394484185936551228435706676142312064625082709007338520769970923987732526429372432644634553772403566982480697698946985603842612318287428985095211515638482994816018099191620364610892942272160250762779229269846425908049974938066668755062432622910276682078561908932301552926668864461869487297446603394817380859666925532068289807761267370632446090737203735371577717448258377713984266294417869823077744340200558889855657992657497266176691702068770373301201582073939701268584103137527351887830718225008817683663814198202140071865628230658331429686348026277967571955689724064989494191972152932383749744953799201664518508145950958349238427446021561706303364215078319745292582118524827802598078548086397975169001440190649316415109909041008009368533705918238028336114815320834295816471857445557099327759458637498538149270144513730728351970740479926825221945335532152885362458737940617509434272204830907175184815494691837146376165032129214826270006070918622055146643732266346950398981502022446788721438598428351792184640552886454182702243428933070139744713299212559804617901086915500716853691018205659387612658487026212402408356144624223077527578184896953279913915591795622395523934370064188598734785270838973538218276778004561446055679200446736170758780145499948305026768386962037424756330792577524088806172208601699912009209746797054788945275204014441580382198309370800409573157674199733039116989646479548013051507607802689431773141369271560196949372111755349847297459302550163194619239551867910739880226575333302175983725567820551350463543678720497504742425913602504251177146664994775460474442922278878415676649280374135598578217489391323787556575751813378441315380326011477107539737312255755633442686610898293766894563280026795433043419454395467423859342989010284555826463195527474952236914836728891093132615810177837730548518563149386915547230067645153415778016843950525690132285063272295535024360161186609812344486169068634265922574298854084362493462598999065110886829353221508446221186324367474594992246382940200763255347601475036896430830531065260158218364273168968185520262086749776628063093919932085161149057592786838367350714038969568827523630273233930877179529555739218943195349010342535624291830355513238368371191834663198129215121951218442259807291567893277008200491470906694043854293068977880352022311928693159156415084010313348740219036472336209188098853376750705266758645177808317363738189253747807978625873272267484037977254630525836233279736217131390950638080353441724656607994039868431927940238875384718580827799898446894272185000645280622053449591430789225367749208630455089838408032081157033732355225670255725340843874042471620648583665469421227814196286030681989832388947938751131586130360543538513904396778238797368668571412143746104300921303844415066272074873284081882320378345066918763034409964961996646804578247592296220313420244184385454878417846725988870654485151770340433887526979703580205434930027427919374992074223305804078364209860811383014685168527793751177952548799967504159366155008798870307601201328934540080933980474785309079889731002030041717618139642414193805106838822674224409376877028772155071128303564871980027351709811202857534818545566569820397217120708417708410514775744042687919925938436919631011467596932775899669724203934530894751622484866495439855758732520197688054094516153243171617830941058392922538814956426399019644203992321625850139070993268933612103911006889888160005886260901033520735413983620167064422939015081632871761792711974594056511897871343913647063633502491487768074053951816313909691480890438904598705311282454398405811720350117864400494281523492720425984998584129092795104334712206751118433654737074369814398549176351068927055811388131839738946433863647171555990234701868662627968494907917547097372890417344923119914746863777152748162235909845126501857997440277321292475117729581095782894639359360806547134547817283871957924489214035797287078431644466037003700454870348958839323823444470987375697380984265084450749347792108629523741306559223585328488272974820095389733606887617036392119462412957436242647615675748049452565668274358183522531146626751514912171589609643731319064382487048878268478924935481742522537638167924137242195765718405261464323624975025594983710650448769386329386023989322146381693276577192999931884803197481717320039068845252323929076781257375750968317396984495715818711717934495029819564103809105944749818343403637146508666424685231136618763673173525880430175774145726146219027420617813179698462653610838366550809242419323079658133894583894279548984806833296163896969119866021243382608999451312256870758583740517807912327508587449290190411711246367173257150703935251031102585106896925076092911956316725668612704613982952909455849515159800675148186663554537224991414775709399846093169859848433414934175820501884517677228953888212305551629607003955244620985222879689852869957048235424757049543790970882006356874196224132444244719329372596732497193199839837529720003237443865455595981671140357498670158643741829335969607476393468213266133373299757256595999380061803434222916769535049884904321124494124344092167406369878719211226014755659682070489894757872768704753494064368422224418742645717565756256591244635032104549262079158723601651795651925364785590582829281511718582499624135542526593823896783070268678875175671432018413277552157978627368858213838133966786372893552264118847741804011752101549360902575208450555705423065488277683680297621196941287906576767905680161173318843976433009889864444655402433785153211157924614298388189447727961073658884541673463522424453572812187103490813939690505394632940645809587308680702623939663577490143371558360367071940548832057882838616398818026646875140831707506977075438391356051151773887775459379591588686131151119362655824236974550027699538170632688420079596662052579822065233437103950978038649717902604490151471556462427250438178812867031283463372352270272462714208815337980798010894959481111452397210823606258789225311921389609107364230621680094400281627444824832383654878953456427764945273855947475036809565424344445680120735776596052556724823210132765953968819723499960104826472272249663339041856503903803303170558682339099275271988241899722061043082592624665926202383344530674159301589425968422683677445332949084904145370980698812975622788447871521289596585103039742580495434510262734352110739031486769728858558420643379040134087663211502982376661302226226721060164969909552344493526621399031281055876955793125170048495274274193456426402335136468201877945437503777430523435404372117379592501971091371198584059016436489991744220789552826632501777253822050782039358172628983743137209217208711505772850729109479895585218474407635945960399917987600169598773517135690989972534488608501302452308340286677611467052412715178260581237748797709301684168479276618801900478238669511776687615464351387128840201394180927031700395627445740476981099183595848547453686032850884715784124299125631158307373937795781932887421991609092009212718863562518435204570587755076356779529164923123262486474270421357981374936779632533208821439380811802045080097667134755992707462473397709106527876171494642535055261449759875127581787542689014688893497941169361963581287665836074926463225036916328864817884517500516722465893232212312633075118695992145388681160520274856475814440575996173941872565612732320609407290550934269755014974648929085940989520493100370433890996403140974741957296483485710347176456948414972771034428477318768292313474883794573213034260862626165354782554722630886206020988441016269176267741264719924341262725642436274971233313535679492221371253781232381350459907518809061171545115041453525901098868682362689875852775265514972757074302748071452026353791161575864228578632255154629487884379711049434071572980609315667463097409412414354946553698671818349097089915274431786711526099745918910920176609236464390542633391598743939782819353601182353236306633890702133260346727073012274141271849884989804884200429019678189591595953118289927890486503180074313771511913524761300068487896914395851291089560299284149294382218256816197073197711093053667646235234379357461215897611025974524729571249229600220828826027171129889825120047966842496502417199057091796646436325952315367053302477143980819168285045199176487563388953670713856381238960983240224892580334202434998664143048342043195048552114611540989005952469478659301566933418613472792942055202122841819456029424345029116214859213994565879336580425086980608866552738497352693140764385623598294229632436359881841614216911149596500964382574955563914656003484591669275955691696282079970239249236059329228337804859881541531270225091640884806612842645420205228470569465859452057752438115223795741890241139766544746176866579050628310405399080068064137023438689260385845134187418487518259342148025769415060507509595124323810309749011016961189207332076189453035833551710569686996628633258881762327591005515778308341578391731098553236988320327376202598989240254769396314188367086129627374247208857947974802931490823317185032369584594862993870758984835622523259914256231343709624200084564562190275715885246075085220360735327384109740062001209613546533992000324307797786900956429257465782023197729957230254731145797968203142046359759782868548925010867455789345025318682182539771740844051819464614293826480218837747082275301564151682878671455482533268651458185719672108521302789157644219555788658216921948860810004670583784977069573179962028651310649825981888807190157076441356566583705204829208732704021649380134104922342852832830957791885760146177979875510877998964657194967877936396581939995024124703447100802199871584493442242787427323755691719462895108029991811752089207139284612389223756591071112125943568942191693661416093549989626263611471869390893387466020844524382420078809273717917043815083026327688202782890211248401433586599773945231001750304623968311811290767799907516323790235988341067637006790835198922695978055247581550448744953351243426542089518491478493115418940940121334833438430261325826983271145262071846840750212394013390515928515438813305260083274401508352604705296216998117219965111679995239016787839648386460301242329671611200995267692840349617286747811083820184273476158389691286751978835041516513845288511263218604993841101120389029146782933386531211575377560361992356408828534781219624969679788927943631571094602954726890798772482339057087281737533941818003145580736849030429662554219119392647812190314932170467349701147502047688387798025246491315527582715416577517000030050765744338661684804898631939945876922490796078976980504806064129004622546812050831576903302146582371420929559417275034503884988696372653571313285985977077583815860377521300597896613573969676407801531438405982930551594878042308250043061456763300481854056290503164769133764884469507749623378413878769533127914148809770375429540082160783304041842514777323223451469973090175533024154369824388734427285163926435520392121693646650317527980666734478964005613589290962662500614294230408893258770665660433252926090777398077378226905084322926649626959197045720367356289814183280840756653939928836276318433253707648020667333695657515505564324863612407753232113017307272772991944710572449316364806111625193432396020364167896858414499431295420475645658788150289441502745794868605455971066206364996828579542321587146578976481800806705602334597179086495892942666785019131771419357068953661149234570270117963396230375547042795061110616385840182072322942078426664236396388594652328967121848773306221713489210174097713309630912506339296653957348213267757517873929392780305159051347774458268327222637064283826103482015044988737697216292959998619881040565983992833338918011846801347024061741060302936224080217574924556980535537173641328800019176979808573994228681426146017970485783304959269394230400551902424082303478064008750575823784172713691666041700494067945374803232114334947946868804158718571942751628912309223442611023498661570333869715765512230395108591674995725037915805858821825854648503398880569506579334624842390241265753357076061101961872875277014971219255407205750466953884886914900791347268838273919674639795564410699213223627227798142619698538174877854698582466066345328490044981104953376226482545995276408861639556476820759625462992050418220430284163502040534533455862949349825787603861370546081717637562653291933947954180267123562428565707561517406825709106094693962868891426505325961099871710056324487710466066570138216872591637082347981568093199723205453856601057503684531889546641285797510672070159255051538271447341427413049987670960536378785510450247627889214967645912698062506381849909544036527954583880336383887322052494279676538676625144025683200067386484773169078390386098451518535443108994875138065227802504591245572707964611616085657856950801759470940631630806681050947115798794104624495870410375944628430750852756844487474967448248398389904937665369814020391272692469452667798556767167767776817862471476164808759650364694986406251922713581806703502117893419264048080940878249181998735367819154743348647855293562306641425541398869386502606958429105552972382986914772199347485992467531337323462198646419702724080796559977017880138870538880757088928655968456048571202498791691988770252723314896001787519519693002024605584614530096767992153365102863144596293859324492167163858125750067477718599618820704143020273365123328949072721088605565650982642303539243306380748645156231184863437860065868043309687805359281069801727010733562558530555292764833931307376628487219803172562302186829211235843080723369431198635168329586929560376134173480364623442939254344587939089514192119176785980897339902647568181780576961676838481306769651654469659775288380737774203973289866518811322981818085581226426359746827622614528624401580294781772338739349371019318451848802434730631322972724056599542371979478397600326964451506206048968375285257175952854896001416593252062840892653661644850682813601564896614488201637172711506143271538349974293189535702010551638528224033485545528609019609057445214976729759258207278969725194712378780928838112481134388565399784979412594715279070758361714320280387685483710801709278973496223758408171439834190749053215777714029949946843552923206633039460785452903353897301815796123151359013169969990792755919531068040995483116336706156489165869056748428447601244492249747439182407067254744599131725336738592483191176998272802071390700738313561848541494887366183076430832088427914045126528865172840709032935544540487872916552194945564277244153055765004327585371103039681771325957619059398860503268316190551100977089544193193361203872457592788114459049799284623626253660036810294500928420795512331282026634863860138822210810372277921928453177654904918516047550477491310519522550000492673338454461677281369086012520971359728780222202420948513024449680170463553386313112774725679574511021967801669334424413844750338015221668323655281791738082564090979593757934419418747422107034984161646490995599241921809804173836812338784781978235654811149570096284661179077285834610512948942075860646758310169438405181565273008951286311890021110031499091293917714219719544689673094036219794638777921307858710876676480682479191492011498193781555762349290190357132730382867456241326064980814829252079141961197325159849483431598246318664307903141516958021885024554310150809532910956841144316053217571346085856249447355893209749374126246299637469520440509222440726515424409760180019307677997729677186081583456649421959441793869161774589035042544135883267209942696858463169026013888200113091675423194021923140305604351355942802442966298930494159812715981285912032786914342504192652087275361929621860714473038984476449858671077506163609679565802205753595115703915840745229215561836358457550004537613083615153055147964541183721323116708436663316554089370089156326965469515225322743536295999972290109851159446752191066200576439375232568165652280866528042501033826910084783430451525420915570065732822979082493802393044344518567759571529512668964425457899009838209984977045629553137554179002360103403967396590237194835499350235176188041116705850972585382918251827019332833723021503322082739610815941989071527736487336645978083337110314495714372552830014581719013980047245456328230412426215377426411567047778521095238845853354897077806527563984072672873654397014048490159791105407595167925641941481566403306701499018443572837226932766679912988238807265515538737324372093478586301559885248901707755019828619005783783947720831692134764349510945954657461754331041123551089057908333351451466363624643746368189591258620343031644036606692588495897850822336508283606636906266771079131559855524857067288846766092934176500717343074743214944085539911418297683384706368000398537754126978662353467474561435695641770977782299092457737945702511520138892535300655834556275997269033144609824588284408347651955555304941035042933674907989385053620953391898114160389022701399452266225118978376340127357217568980840504869678080146264086200743064121667799234665619658222796554240653024922083805201297673142941126287072293677797135981096873973635404582969307955459873570777792270142497046090074689618301979072702456507724457980153685729456801861493259259048891210568453758486612226648982891532029745644957170205794352608248676098144581448062446291207366320456829136220137994608864893850152114502876497392560533406431959549740576057088342487701955870666572020601904238955810371017732953974160646435057107190240721218272835123074072488976666411550174052048148469531965969575160540540050684565851919365021328353402249297097266080125089108750420294538537109806472128219571467324658365918937796278537023416464421172484935449785998489882604787297288101066761304065753699451245638592049240137923269201474060529862610676419722541834312322979141573806797789662528211054521545127986693652940311631029605672922685914284450395519633720308985138288724732367536956824010880447815752938664413169694498248072548869274528131253401143343809300127896670401298014695449413352973124947442824762690765683071419048524060140482668252910060306241019076800777614549626166618148215759589808986330899905107517884600763791807864843937722897161211926869591759951757585870451349865838575295073573452287765534972877799096170273210177192891672274626792944369929984384298611031936310226362039989198716438597842052296230820106812639830525357251509988657060260709081132183548176846524621750667992039271289661542097399633957724639355757700949757058922926560763883888763387278962818218551010251182084275242857570370701288571442699133765286711849107317218780844966844010743484785094045858760596017756120957430927159671970664767798398435480287901757067346195951140519741263881487676028813837593359041822091282199510534777721893983397019215146448595284858438059517270243472697181341917672801913601859048071973682851685912812996937341506319696342655531704316704297963600309920737278173010021968732809621827508187100898453876860903672083056882899003412713603470204352991979268744491232963789807288794493558335399673791103135664323280800149662278480882375514856569562189829599457975617763846865382786546942342031748949210513917988128839244296590715113867836967563473812197679270501178578278385058004493038773155305338306352126125470366310744186904576352134391544814749516781556063507520721285867180446126810806485485927472496659846081567328258669201789654324320915656098155626904939621029884270176386024510163872541868627823776049321109974487243453196481436129431672652437644322110278285685888898126022475318560142173346571445640756451214549108621531628123436072602284573232325226077715693837229672462314869970521072412696896424233770927805570169792938180721545472181967947315453226080280331150002341831799516844314666512492986567242979518504682277578715633421592726498469889310876704601268144897971718575480496893732166516638023994581635314337590300518619947011701982615981515007772013041554941910114856702242397399715506075382351990501370301784499241588216531674773342135866800573604966095623712144453084906240244553348245025093233546031954281197212664748633576790000709729277940630019843948556429171766522442656555384588615931686264582142989585373017938292467307273496180812924589998684689232866541295229594843917862950049335238762999898955085494311724552315133906341647546257286769781649475354310982256301915666875737271821167309709994864965223682751453373926589631423825991500386622356620248143629030167171445296551835083943837196098528037056429797629279725694000261931535261182548254028810766725563242343434978049174072124394553099233047247542216907969251926260753229807468863070554417540698135833032615712512254073862033689073588145777674400525009818181486992598878260500566350178561411945587259436635550469032637371131135580226260662734729936165747995547441634017612327089593301153385385933394258874936596360361511958775359123408232386912771510062429596290956808953349950469971755242689203325288614693276389627482982436904773075206890502833139461895176294629830376814730398880896351695358490230833719623284080975487002214942577354044887121789606211444125204191527912039500318025967493238238930439938335143443805615109104715036972906788195623707655489181092901100636627216926788539880277505578879633974623809850362093784599518565470309040684054386188795743891468369818126555455153997983376791971446796007282864247922979247090180116657446177534159740626209455156620027109547199346050948794987192849008892495101523613146685157272054330958395225821317173690621296727027680768757570089157552095628806696375042222704415640181671269317311298994641808867849351621298899384892183686018433435947166422863703336575768747558701971698573600541498759646640274032934023491170895495222170445806061267700688292289863666432969770078347661968560545981006751136544530921075441971243172464750397008870004944379771294714666127369666137509233563803684851060929062382140454307494071223561002513680490972308672443456368617318282114875812113371936699724478846975806050954270156791288676611836835309638288870760588586672491712428726170084344060629969594255684520109113255217540077340185329790468828889305548462039805180233054907481448255807874824239418772229875208421563912331014544395060515961403723952260711138178535102379398781161715820054202091294867049676620307670632982886646846372809890996130014374089368804518538331189102100836583870231159099868679942136493377795003123466947459220808641615060602452528811684965015057007417380708760878265630901856018897715395501357989765794747695207291486933296499847493887135593116736296735865214045344664113100275875175435261707382873499939443661674910195521853651630229831050211443222117737947994744145752638618162769940415741139704583258435535915953055990440421405662412756244077421809149533404896052782415432650918506434656982327517483972565240260375529088196159985820599563535382065915891180899804574209397943266385218303042857185916068588375603011050588048319500344340340875179944893864727901370078691175861109656701622183901162349350705318817900414013437772508625553958434241787974767159365837789876142720474783960284966178359782516740997939235405285558968305921697429302530975789739471993620173092037959934189624578538150180838390695556863307298961629089437803422915157609475323989155420307249212940521729936672902427778372702800080851304458119731854414108128860240467013765775261694089358564950098284263869224739203302031624727268275846047714197539881770583309056005173301605142375251785222274570798788242975656372628234744438854759614725171665823197362379578513893215460782623741645154134517498253792831157980780725703887125871247587510594571061153607957664967058633416216586061709846643986020381632220013486897245394406502324363630441525854355023568274591398273751602162974232653781165689023474929152614046871571257903470918639998525135026232783987739651087518981521581480828019669670727002419587086028383635492136827647177433878660585176624809051689684439803935721777038096045914896004416834006012744023738383213887831452669234128985542005064009973309211497637200518054312975359471654342759869307356870713339846163393041217155667377725786469346187161731043926461201897629042362894029480125558099748770731618816462461402870336195099901243539557786853171847357272363600496385368806217553594632722307544454700280055440747474028496536087737853667526886376999024655141479659777938649935031060118308878469721742430594096379424848317212471662230147912927716058517546273122766886579026166141869504313111714673118509227686368160257146797321698618513405305789220599483188323005719218485150297686352521801874221009518036834265264925033067426786717911884752203182423197483991056458186925799888036491868960709165937045128918416525440770205257290553407595901494642518115678930135646438429335967416475587924820879926952740945618615886873227932583770030716802177113800573795572497390508396922542665354012796225475923116094910810212504861629837724356047682146778304105395220731897378269523209748703329754711500617961475253974421806481577256563618167074590704651014142161111319309540980904284907817651392756135238479000536278415810855526023317871828589683827692086842231900455055854809783731719294287619827120886097436475726737816716601144226320346378072991399538667275693617379166135194724534082295825223282253319076684214908635477944378357513311342372183521913782971794432858286474771741688206414185139505997833717289775438294211937927308240955856292303111900145577237540616240418537154153715719436172115280985973071326268367745106959960949602215603027598995298989300303700409011700431505264471332365531670967528245511629368210045341385026299296948178735284053228314829453161420497444150201212878524838921914850371423944136210229112202167503945919004401960579912111880243884122622028528057290173841649740999297777832303531365870859431407341139593679452534263434434512783860491838409300573481319291334631199716545272824894791165883667032055538052635854399669523987888083725819019530847619907355549588549588197240882506149332582203441803296899408562230212863731190229160835910042242884881616882414019179408359392282699583606099574302927759636415856280867028113549793654906801207661310220327562248237762576227187336546616499657767068016714482151304126266962216840439407477980327599653343729264125931965488333128329308354053587048876999281153780803877214557216969725777873386918467728216740666727142112456105121564783033645658387617592862065778101857611967758781456140277440621164750057891679704575993378028703579197753718406480466956842092684939654716491420417529456587825372817311990207505339881792355580492457189632782229555918190471430208749076770890812265719396644788400742250276771856095312138900169833442550113775130474091963022243895421450388862319797035012473423500210940279630542534107935165077149848744972462305097833301455441422620610836384076997316893524963293073880619982117667805616179147810515450379701823439513977369770394937333187076452552390512042253807097610014657663982533472854141860786686283001566502442190409474792618143111577956160100418937954333841525959582923664358079060551399357837115180131497206951742248996977102076250542038625850699975831568586688806260087224013944407860859879573065860356826803397798712995340374958753408552160360472298884091012280334293273463660505936064609157649960821984787875566590376353758237143894619140743164652507932389410332737947322955460488205808009627836795365044730613210745593640721815412831559071329077279300125455616487077121594769200075540836619742587149378084255367673074042751698584613788998302216495957385370073303784350006155389061632457132972955393667585276193845432489194220049009620435217183132952208263712264698227129480494931985728729241174556900176234043315448941303685877701719506979177284072698553801743065875835415863966781466496986834693790191550746442259018533279924076683601763202614872785190122930220979699268644154050673094971526887555470590344357718643051718988406949984533743807241096927054826276296272633241194815503587305937248424327173385949747200555131745283330907418325470627095747102485649488106658935513551679783346443671503124198810519097130011664453509584542963997587063031266681373662256259833674476899046336644019111922052026655062611649700379204977457611770213863921227216271974429469221893220001801375065608794203555126228148388369877900430383329120542049556592450815713344361499392854172888467226882687313516500783707979075452913641610617081091761776914788316496249979145771413113905301334832160869965336026095829099781020163078261034849627742718374451702759476340865836163429053874984435378081674871644063028566344437851892081543471330996819984826466626365569534874161317274367849966632410088871487720398052725041734239748346587398145366952585988543792081007991726432111001248953717583595474436545683401684106632412147194785915215385366928284086681275602385107344329032550388708396221304790850568699509058590951605349553363556825896020901528641315406852021656566130867481853770899282488027088699145239071403706480114954813993414135501797742920962726266033792724584676996973263326696949072380972785947529089521010707526293214605140303725163591763921316256309499742784142257414150936604338868861265561861871988387285679506497234801654560501818519651361423126899605708797896368203452661082281975047159984848164078326404126511306448753468840671884438111847281540026374213797246969135366781250293005166722113256063435079955343345145280066074611729800106801509170559854923203684574101590412799272442569771612337587697556128320413416506259573850475619041414605894504153333898912912140317798940668742878551474434585687395030786703060233147207393030972204644092077571430030472264332338576235170472236633975013608398874130300584588124015835849592064717924500033405481784198532258578055255708406783074038714795649758125761930970983303349327715551197360144108883634138682458580082613714165670199581730180683712582745440026240911594015846427762955211212185310727870280206962289628601657978586649008648138912992200740835814015838390302155034073147999445973797286224733234597926426703096729271549010234358767858960911795748018130392367267842885462387486745144388302904748223007738406503479458214487473379884555807888194257590369330098610013122088300880181418880473638154374927394248727644672115010263617574306077073828552531053813894737392251640965523099524845151416202190940992817224959461376094419941960582446803960100296306339953205531845586012780057288016445595620947470351001931665253966771103044403658625813014254172120899847377473456714451454438441292812500913699281978605504883722185163236916186599859944911212293709818274031413167637411223960347473645980442174868544401934054322703293873692060197579409728403180616701147191521172451592703033135151900606284101580083426399655898683615030166371446897092266386560103412911713750125820529975506357839339460857615490782244370259363393188023444856991369870976879935977559349607080270713428739754131448770622111815330310385590788228853749129462361242722689479854620626042065972986575600387874986886627786615623477882704295940522387418784000450781871522337024426471828694985205937080744897242321800385712285035050566286173772020763550209886037612923338758010489962452608911418624046049747498543447176205551486791752731654916306634096026858298386592850210037595645009757451883104916336056967640926828385103956156567925031487175249671538708143943323968286570331480073968535945754979943745197205095337095509548993262745852812260260748906775211603682442635942072776569979369224426157752428529648861780797843334101477112312619035472325248040084347188283227626022122664548949695035012116964489216741338330523227768866340032685934374524112108929922907079079655405119616626046762110811205767683142921621508668833678357600272542221463412365333047747202396519177684859392108810681464952136606220946204797192490791316456646055228913323219926021172411371720867031059538478340305194336907064181015941210587550959178188422536694115321996650778564697852885913623839588698175106219208987826200316050589796080240638386818294117541070287884946627079561754250159209897225086742999821298258307814517477578954293020984936846736613315473203166995793539888797047529894956864470531193728059978457170208282151575542592872788934406355318402011697979500669978440458632686815604761449063747883091483540797899700727273069663929283375329796849227869093522910785942078112070508211557376011574220137406035195575781108757368561953749384337364457130162050746903353267567169728673053632900248903156836870960694122782009513432130846925599678229141258025182541721036292998903007289850270041173233715202374263674271140139844613679028021378619364405655935313019894446491977355597342185260353571293498895053374735632736516778765028196110923470104230261759476717632481477138924882268637961140530301977175229937286407815227992707086044952254294336465671691203295821909130157289402524572090149708894547841536367617485709968877314084333397075816113721845602481522060421014569290456073922620721535162006391279491564882102611723849145623617763026917931538361007021436500318988061635371900347229626015939851241761187073893293106814008046148303744344153218831657680510838067693420053768615568463734686744979276316201086115195452764129024130132723671548619724493532889091642689630031959588453038880910459424305453366669166269620647839687521674240958027242783893898802769671814190247318885754855135237907950148998760507304348012520648722011577078793081155253080618112060915334928787655771296524343276223585832937116200736952978042451852625342816543410802291168729574126500081891479568111893459461226667675188901639793937453618236604279344685293650481261208975727476895576258157968409064248249590490721681984901652418973842325945702092193809473673982358715803220287340694714889429262067673771914177740755029774044548595025933191882429771135359344907988898466537997539028474846742437956323673742747149446310888766331383975123854888118220355344074019243674272461296949690348658964330903024800569798524141529198035930393826770154234975584594193529801235598719064701646564030824352241118936794629132291725584427311528982353952598724677706122394672599012415178554532530179506616777705377690637059265185045943308785607102673526947845760418993186826545921122488694254383060154683791832607061612630805839965317612286874558214294869670862373403973896038443895788782059848054822748266150166003450379719335494703114528625728056717266687661234918056153772624237641081627661624443586314003976468897463291214516912374066551981863470818373410155599745286142811663224912621019170331545723229312315909475471304316527422533460832394221315983266633930158516953494734599814635146162815375650907552069790429323133961892855542961305451108208280892281246517414531383130155034769505251970656929630593113944544156717856926799169766795578613090729110714186026745643373104588451038828390477489041258673141370506855417190613878594095222815704552843033733418192222853888318494582358020566658066409082229852390075394221354365887167344204894991270442421893072574634766637690327408165155093263433421949863313067038990328723002575037891416811194881319840165431902850523340415042163400818945176573356805736422491447074899930187169918797473843724631944109204639281516261826892845979211762612472177225482671683478957329086376973360218843767861554177966611328496304462712204474351455470945713686578911410580499510239031034233016601529159320117482463946854972527841678494587788543283841564452509388314342092368294181505629820548252473764634857432408483262308258151395573651764193290186777676225686849919106079664617903287704163600549953399481661238741443052352644544501012905611746258539483440262290477655299646341038486947282872684889444899707066394229723584043583403769784644834065024614722047826988716244953349206076220010924557358866930074938011701589497868112633610603172069110009173791786608823543528091906504153502719259888927959275528864358979823036131480964676663798388350341969941647920370963969220836636980550751721921646810627543211325372812035773538065696936005995790545897641095785368526275509074092001455855108668368115157313949754553618442612630288166031699303894448261897157072799566046630939416715997425541434676024534213675853031990234269705064023211808723688033961024598378788289110936649636522648720001730324715339600101649397981006129569886073507659702133233043611510846478320057053795907774957257456024303886077742608016452944325166899221693614010500294915459199711490830031983555621482176772060381388647137506340313119456801807507978592187290132933014082747066333351606911417354362572864591095817163029245450235310811503413423346276447134437468245674590027836263947887129504989138281026087802340230103884078923835075799699216090985467297135256368456520626265460091470008653744341478241390510969876710051852889305432278684308002407854807800185095722992138644777309927578463163022930537527986905735006238458097019149801418791411840839795201198836976548113270152249978227168392405587692891265684684232841016031994570192411075331519259781418518669407300150567060612522660361544325541400064693879707940708563086530644933440587603819710402782245425977886793664544573277233970903318192653713323310690830534701581027768662233547076099010767928663410302104780284898948354971490375162146099865519265697263574375686282884259441009450506841579484044502024067729678552403649044551158905220716667596179062746593917075887934268176215311339639173116996475557915464285973978930373871459619952822498544830972764835977021923580085950085532263328616501411594879103398197458522813210885277715294740047002945526798042020096905797861971802365297542363149266544378366858918075798342021281174869446407198330114297885398180610137304856439295160110068877364721198493229744051886868585055394769157218068772844253446506324355122355146889052527880575473728435323359182332313642134553443390881958209812179520352237267240792622529835375244407423487173888188687878343706543246942020829474866438146110726412555526235971604475440827949460271160871096413010531562371456721963939998996309983345772986370850213209598774035484370841016663540449104590292988836429523168347219612362728946270149181567915498253190844073450554364643277331965359299786113287514572987346010698904023788550686988467820444278636462541619821573791895865472431620493700013612289058011741294810988295674973316247414949849754786293320396332927892385814367559044082160195751542898462542925422385972989465248427569068083867311667095224094688850216905389197885771267824539938264590739844195732459074592365777720148047750049089536698342959681603743795765079418767209158484534309881498744463995359506316319322767643691407180798360774165433827428160707030898370050678235951826253119010354465653153378544603348005432772125546174027509220376892942244964735954606132133181550700262185533856169259201279472754805245140897891842443879168965389144015090491081364017556465227560767580407853916444759320284379192750141548805971635912181993158038817433248709854735011258588869486832977792530670649986561906059368913030264217037560613323251330403464351963183784984748842178990234998610820283859442644973535835032102964564855957525446405607897543182429867943216332241443205829492340222953183197245664270558342081706244529576797810688909083218158196687356124964012699708757226314338961616389302807046366536063034196786644136754318033695485227225269903287962068173731436410004043201574434917223986955064694197223546677696471895610019538429843269910175086226390641676276282219666550452245933071337524466774791354842061432584389237803190862579560803712463265164620979884408237913151995513795119391320633826253422160047931920143784118096389216649509702516325090652565695666292383224891252518431697474877875238222741606587757280673506182140742014134513773145553457642903538881533697707546359192108875682667852897282113279280813620912140833376998141462822287170989947427646916394684549279402940862175068984627227303420720091262709381717322147837366222124858900930326457297864103234868801931280359309469332195399348967378505332581435117304381769683485359822455922836148365916205056145286024596640370760844549768678303572541301037240109905130946924864261842174995390152103274051271481391642570563888940333941122734907244716274275404277795171010439739577364954613098391912060211262731434333343181915050324030392382930847188055886745372016123847623370450352152094450588837036009039619122220271621629053517556539209925210665248648619022485184845475164770694659272134823344609586918003619876027366664684731857367658517830153101283567147444419873989130621381671745753434262449602365954779814072044972037324173319984548095644400753222805640600936796759149612996550506583459799425024477533578240256099829947688650881243042096674754347248637690233620498108879760380006168753292523929724293672679283671005094622309909016995559003655286626640225709711676213939364987476341790426610183420431314356367959205026546936181223489233662934154560635320487525126747566688812469571413177582942062214099222500077410760930390443184645500928510098660856714021229923420629577192887853632841840086439680749741335266229312019758069382725486058866233020265536785722293270367431994636748959509208252149733737813910946786816442101917257137606667046126273665963319309742304580954103508348250911036035978778324651466513521812145451962910226289390239356151364057885743958089625054637143500672001557317250148799591379847908237826998972483268764382185698411435228742211645543396144538057612829415694836430132243135828390983152919614265944313654775640627529562350753747237983773361127755577120459795596744853360680974053496581335983868987441034378685281701451910712197105919738694008990148030781371081992002709515257433164225553241705127471767488765346609339475638690535585249020377249343109593806913938715636618876112864521317254462011613550510244906163347514651501191030206659274039372019509885480387078553133672015253352414288191832621837560531822356405138956963855280623662458848278792826487159354750160080514601864074462305133561355345468807420627840149268942215048824177975519809400979451943579521808564147457549764714557836799574674920927072029528474717459456577425819576091244515271643988542691775502294838188858577096817706338211550626115930293145433371126294165678545977412467201352817359900825561496204313947766798422064055140870782696971482930228356978228455072042758452671179849710527623340974764044080626435264254599362179217877384841305513458358007481516446336448347397515785286642371574440382981207478292181162179417109427703794937706636242556216081414133400667770526669258902130584290822602013080877796347414091006587712738157596285084156885309226867345598590021554374167963483432309018329720253923814366082470234616521964463910037926958627323854836469237144280510342531098822088448003662791735677423519207160475654708103209476458762296508096545522732106686415814808795902352992101249221329554966125862729474393130782767528289679413458968677396921598288318349347674441592142623629344460084483392025583230873604618490109910431758276634489654272195120089461497874844066562986079101311326633783183888509029343783662109127283329185397570310112876333467780314147009616481324155629077856309620447607749524672694927843908920665160115441519440569245101130163636779280511455233810295767620263570386743642739240767706257552688697538054472667079362685587148489126259956113139180518716489132624032296334534735850287109139661548141463123467668156872825827875909373183087328832790807688001703919949925162000854302258199503508687378628399238707374323387476604535244280531357824404805572949779811330327029849293476117561225146838015654794938376213395345524002143312567407435160711739806090404467266014542248024857821677990227845605984736827184015553981066725687272991209706406758834183950545579199355216291359460701480780511758232526365692121880496644846910252807744318588341007668120527099476396553227716210837501182244061730240620173317489442304594601025241589913109617980407043722623463586535607697868904587382876220775110876267890992117736225019563120474270950075786869667248900485455492356524046167454611698214388882550650812145491270378394175138065034457320033145019684467187195942878569973219292973075976029283276048422238534674250205395160356297906727212754676084916644056604386759160474396873815039103966715510792007170538498197888189624193874263468232171343595804682649485983950448228640228233902113715043654090251677975137469372730875007427680390820470688840907803367901668643301685768012427746739006604010384235772943216877097534723282557397264230514479295798670781121937578083251416745372371836798278926181567792161389807094232447868772681120451381563326411297213067117763664122846283910506875283986552133096228280302361438668190386071162142965776014770014487005051362903033301982847214461840048770610489307172130471843985113847500624289820519321380028314790033365111081145160437398993518414403412224269830511631821936940246365584570017514519820203260888522120526538098195822046196665310080436319484872223062089813061128323844042472305110602694869993986848628995667814386045249759028659086529767157547227819147175900840613336939664411036602366668359052647748892952067378402292073061498151118972411431764509602995238080907424284716762029124471038992268609286877239033620905122249655306262608164950824736813720708073831897049302386631768400719747064801290722476777504563883105940639862116627804159214086039571475405004728177002767054713917700077984408795404824226701716615326292409114118516752160446812198867163902972708391733519709981231955546295014701145813531525714490871209012163367070384813231199346681440327411425236044343253999143301937536146886473409609654337427660602930488058126089986778928486980260015550352759127650322127295425342670880950581249955609628060227432818049861472320029303004438085055395308916020823395432532294520887871569346606556403111527766215511734818707936189020810532733462331261878011931811454924182864765173982984002176187862707889138109169956208092046333042888511235810003776555083527894212189622640732397547604213588282766492661454543417969670411405961798692956921525871736039174401561873550162924739167833234322417563430818318735116730635666906423759423775841234408793937559037308063523088457379080766697332974811310618878440621005606257391420593259335739862292994892767213629578189048740660012231946892932667493334494363499907028489684302686336559521547761901679764889461244131981829487015986524109183776236092645239381769902270376178283868396369640989867914917366296269855386173486944573009289609686773028079221248959823155275455280357261047665565588104816763853151488562979264873297878452912581065479356177660159821491569080889026530750500925614293905243302428033259849826621699830832601243836087388785689328613253472641205017870643723167163930809225630676344342701305092118219852206807293901961465852515474162117315443482441800583388035647785822010296354367862713694459212500382086742260639127353677108979860603876049834959595886294366128125298820891788361229880007782131397391300930624937480848544644053346614662102051820965688979448292195800200291674900952884381301262885264015138008061515898887151412023285452560261936967715501194330517670095040559007840440493864938365325755034092932239379787593809999744241389255669692993801230345108171679209106273810333434973663359740040072233978911214055348705487879317996161766838800529529940022554817158746972849761616886687827179250708925975808107685898586089051658177828764187163428507840480093292096700341636089100614717140093281228947612084692796375868944759442963912373001044568011709748829838279845234294534817071442471718803944705814962695327125984549473838439784428804560649525412654426997720581204084780601341182873831879261530468669118815407853664392131506242925065220066035911837815921979370850599076548418675130952392456390683172879861247149315688992652375214916694120035542604202449789650248923250337450563151222130346437663632160271850349580946545575657924576972967530491992842735902946479254881722635861348807830269766719546474564599854035395815151629712182576267221311136997862239113806713534694747924996082561201693952776267989967088567225935586892524497882736670712691834540971042623557882580457073993832034484260888421466989081344030861042525388754465377418921111671109105044925117203949766561441119346167717050681664936948788374101038783351954090967164562940768496818627098140718788399748480302745596128113336885939652199112952737382714054091410454058947223100668229411069636400085201350312116086051816022272346482814709580322280883087373851448323642479933478809683556191200806424906672829666256695853093521684985295500863691713955284859336308395869281250190957688363895449230679224164937809672980139382737638677188970138311069340775177764690508351811610213646004006438692020574751922997323832455129412718680550502595662345326938268565763592204447791830309393091864764181319876168434764492951557138384442029636351706840178010640443619216089439220270205209444463846043542418111144703422801499790071730920101257396554820963160961843246254732098752430886272910735406665005482590060530887582492413119212617136404717383853039525259290010751276630866365654041779160108933072354083020321482585550976958233782802159138999473202822308231443933988760924792031960202454323837699786097160205178164475731787295077399056665535762741157853125314663362150259074074125326588919144415138550834034445545986921845991425465846304406978608758170334488703548711354262714615474501269185768205528807226641410664579438059004154627591593201490735783897427948062811597745409718102742017332820521510384242145495693759686381367399810077512411279003283806922677661836295169725610948114115381423403671511705352378392541039750364664326067283195619004481401146557150157475395456767777105953325367378624180614409924302564749200299831433520472267581708875782856388478183517473862474312280003743997565795913963610677490860844162980822864317833091232199241835001658036115478740743842087833787308456335665825220384698350537936277439442867313415487728572958667286227353299191694062392647542343624291374309568899952894051396545805691367877616634340992831022419362629950464796709045038054135401386088887505559365786614459473821256488923997530486604559384596816304547133615907720654599100519003265540529354666433962487723941158869542101597266501742366475994880765110621553128365498728700336306471684819153523826144820734799217830754357876658210474902317574855073735438398135029203319898880824165930853019683356965801497574703962360451908641098077014857042606002598933456984768279960962641557498335162770551913721844571059515269668313529385976181806612018330383540132363282186596972125762044060308026579207810898313464038456555414007994287526569766341373859480837561589707995437678051096596170849954343320396338279441651702783973355803355713902911995775399576895140008045900762277268306894201364568646796559661026183734514199289953707298683331173580601069137322652634813135912237775394440207275817635859004412927484435892639465649391759743923651506670286939323872373800961795095897608827010317542803268395268918802799709726684731053695787928507636577308365134647799520076954347980362208303000441142423335044241141755812848700480149091003735485377453131953977256575272952241772583726837667530627103599728414910030247507323304282750712797059016026920615837429795765875705232172026601587677144514467573080363870377509877756205417014308573108806629572738908777930179659170682663359101192402911346419483451338677892413797084024577212508618765753924230395631136746750531619884832952593559207509785966206290515307347693272341925597212178169687651271765537410102563463006966556596846736423270031592306777907772770128367297003434910850028832994314955029007061462386023157709160584559281685264935346284970808649253418452970383168621398535443506306540195151179272567111191561678129146123965983957107602624802129274358064260426606602768477998574177620051656646554885585220788387099872506610472905731434697165545753955326373695696617129571963408295627669707894389614842008682558369028332807794349189346510748107113031727973476940956879386391558804978455745149779050688216655561851424023021399100699389422597487521787927358906680987501580722144701540475875999544781086381951154246007244173998772262636455347153713701756462843960041928325399240694375154774713228292390002735199986168492654400268999182257102472413628746261759887530717995302136607018267921426200839444283933737194489318495303315838474480285748195797124969572330966215967583278780594316384826254053251899222891898755255414604794039852822256881723291821031459625408460537575343583670320642751387147442152100402359878770488736705307508033326815539544229627541204550251919339088361758379292542270598447333889900514799209955949955499532965453728699884925849801192687819715028198827369995913843756680699725285538608324724728439347641718029815824463043788515014319724286627212354388174813794610840943280813032376072411714330065907426586569723912357992262704111287645133099189183463256644745896854091301962118828912991456775879024380584523076971240719655229086481868802940566873293259005642451203514599162086584190760783963971363263682699733700061012339886156783944534459392780742810822976433149985491736944544346899898921218520083309656399948304906733613921124353794577747851693806452404556651045131906145993115673617601499261408738644717194915516507324186579420667313288609115150480405203072977366963441495494473228673441523258753892450723208546967032467157548398080454204240749982619106142660204664254415935721441588576600426856533886929816886105370375750133617049859849720183633095377856571931467492863959975682418464239130635851327210253404815378291300023447964822709507846005703441969758353286458104885508218419690111007714203410166425608955986267900735650233431594582692837737662752169082235502574438889759231412607501325949146047064509996751112184033256859147426923121494022384817901734704884585854115316022139232506251968575542728720580090537640138516814459965931517711318068842107676825665657877272009265250220414724733936324783641719558328800890595174101012606313752498193100894246830927517995151640610592074707178665001716083806095812020856410717834698471451265051078730581515445817459996609431019230362060403626556535674695745129514498109795446836179703461221530952072955370359339953803564689697218587835843690511142394769013278404821569979811133054042219391291058836294048841721543197931728461835280976309846958389965599921972763023550568101764809121218818079098352922121176712621298436417501430622721377389065335602844050948952861090726197914300371637009166705297632598939282705626116043821732793372137022403053145044807022346633199699147705754536418789978884132490648856611574880683069999696602236173492350600795431605060763475520969528040716030895797541683755329528854782961515778577561084386858691112939804364715293134134390399601159042033228591723323722407504241018562477045158562424003887657453112801410088892231849459551380207231952571785060309457670022959346326371297427538265682707991285946969978674196659110092423471943301198305696910861721729000281256885522437640387859191069729753952908322463326216692077544732466758326564061311697666857476839999572427771958944762428131428507084781576599505414719992396770820943045241402853361310307359426648194102511295454472512726549211969552091804638865125501460210104380298825857185116907162158799158040066311318220718821113665899416208649039432525930938925568925203800984487767508768136977391828441718770195077519697555835317377306055930121842104196072806650565487197990229693081352872844746328670652849590711676847704932227540956463978575151664022248868699597199676922962427226583994419039322328192227265844898789709366800219218713529057646168113480308453692322039664156629332063517440637952690666765895073608163005027055022547623057597055182520675569642006765713170153054776358009180684776687906179431577810115782097987134917199554609514068032229000446027882388793191696731313269718706870410632809046994290794130423465457263897158002093656827366410690057171155882812471756414518637729303909442985953527899328334128391804808475690400576870494670500115162291137190229798410605695904216287956687304009685944796253777601739022520479156886297400603481953303169870235233033758688626477247374114658460445589690104034229983293045474105375566156643724690214578321645345248301400882026610142370454169974277191549219005242926705286630895184508339244541301465773902250898538983513774277397864330378737403598041676925210607652066685749069530273547009186573650441015640003942466265660847901383079301482713533402232820612303233139314231272593760879574665423401584345430055054870693918310684779563206594795947760383399692213510094868092073569627011156440227387402284765604722149491661560473093422312940683185234363606090857015609458852288827397628874808283756889274092148912398770936878589650948790948496481557046337988921217715221860692347984452510390495226381797290020502176122761760096588829596618402448171188489463851309964315786959440798240255269241078223916481025106214488693022472706605803709592152701477927228633259313993824228774648294070516900993907214374212959343720331209412520783919467462929390552445596121007203769072806573685963572801963189438694822238920412535093248229527109401670131143355115134408356227893126450323417705880408248155225649424448049094761703841785082919572228518011527569206399410799543589101118809018820236115516809450346751148435154373266927645399766438161804466961007982997600196871540623936878532908233449039441832308536576500169312720309525639149644183185367191837962940947078477111745997541208172196604476492469608198046514843798945784789920744773708849850184723718366121642022133166795054152485747984368943646553288596895556573471015009766819238571153928775069398099983359720747493725786225602580733293768649638310383080635964413573273852747853349008374818844575387787746736857469116951671085689007579857159680401190181746710251781856990758714962750989579180899897561710634358243147968463611512854841328354501722192760756270238777352336908974808974826368358048141521505611040942481156658054735927223296844517194145710165994332553494490142508861153757715287249848659714729101168745353949148641019886052494725784581635320657502819534170667107608941922800806778679843083970939900866848391973743858424171550022749440377014080669804757778054787539264110227797930777336255013614413156127585226449964367425419879173625385481422540147890156370987313398600256693360731329190088469197929323930209036397559949198457811121976828961689861286942030344900112681996300961557224506504510075844235712363770876071593233494638129338919456432141184874423773352558209520975342083486168005463166709629945335815725020166630416615811795084667756875444488849458322365971476649416751815676454808157571607069490106803414718114481495000129094643050352535422804969916098701270140339043385210503937462657450512748070002043087657981650216077152064535810564323732692168346134554976067647976830105276062262435207832141442458186259184179391650824413820950613584952230815428407272828383389471194742345770155998625048501746467034402560841569903801162188090574650959958701663583370724272695293519395877188012315600402417989819286419357433683290436414432310447268005766428683041332499078457928812258684166183587094088986856707231141018818695633344226253584323342629734766811433473385851448505511724255766039794534032148639743594769207931267082077915066100552213714628712938397905706833661934132468921271402823924847684300747943565183460657435110433196172989011914720163622441509686561997479141446823641581145622240330023349182967420039346394906920962608842837499408296227248422752464974650148725210585388844061532846818472515834375614288182299643852007647836569013333318046180195883924559245260693922973547614514651157172075530211906616787883032924455453461646118668597146222242998182090669458211659020879878173697196450597662499336272620767307824885004219411485501350156896809868482439182299182926076453600033475639087894689911035971109060268768852800528729480875980798645418209062663908230031064601510024092378734546586562626663696551004991799498972084645937184833374513874031605748292294700291286951880590452077470351447885797098477567538620542588886432044635396420939192774428252232644342817585957232977132949858570235462572958475479923926732578388092509885549392536260143387221106299921148057116183527140855891195235241188895177163453244917606041020689428930337196602701469717471921979899346544605636750340144935856962938662107780254242390292497488022682524540055075657987823203372525681169562736243583225522906704585096776437804803899188358695619750475190389953220395453867776297640361476770838308145573822587105215072212181672947244205571929731804608428317071451551786196018038082856254273094526362199887502523082081943366821396067192332690537180025552212240145178839147686068863534435198356478381563012855420387539372480289250459348066772735659225974483979712142046536994273541293115260643928899483667044073610890969013779446848615292894093450137533850103133623076960427760449951556019584135226067706333170722386258040378833183843942032110686443398890720822069708031758891738146727222331934504899924488796820177595729260203219213392172392542022341266929627792728655462196546682495289405564258420048739228930704377028697150791108821170586582080724264318857121586149481687864921072597254518269636099102138212730798735025484233682380846580863709473337394973985472105659434623209091322702694856792126016559496960771109795053957281504899555685660958673688090553997959790225207167845651204541571728217274262660901318425725613477869481412884805644508924490120033246956223043915805287013813389460145250072817303040805417214022598497457904502575876127050131373831003860321080960171040271279041226031421267360471732916314132250180685568066947639010492970757164570316560706466167491823513486723404994832048440207244117449102097767512059597600892437679016775363136293640464502275582075111886092920164593896625819141118008735474847692170828836954183607384033712767600096101243452075985097452734496166310511832519189370020092542327628656884873167373762559631374656414851704754140258036697041298808128944514852750241996224659683732956173480135470611548885265297015954394568549420997878245351630630967490541315114313983513893270262436380496348795482441853807467131066127378589995328149354949736770845784396358148371565707659887020830256474126544995955480496374062588630689888629379236638583460158344759054362249702718398635489541072131260212242100233114890150730434861599928782234978104945709885542181898939278319504871822971675651438750328350602001565867355526579838695813003071693493736250716451430411473885856222702881679703029351683878541415860973507595045905934972756694638435641601413394879793155448536517902253100354842241990395989410302049632721059513949184859691411688855100708184770219553260356767554568467718689717617466854563717051913362178752343127793311342370050190806912853861533234218254195569847067898554764463103252708203122258565087793122779879501751390086092334169467906555685902371096153846241185809475616262516247821859326362256871166996753315083635195015309306848719460816451299949417823419861946891035562981781613177330351397407419857809767851041110611817640251976944568468577189729758788404343051700464872446702509853705848020818115770919614445537330481327316088790252875367897006401035403184494452225715579567566577898915422104634891761831864701231802532039322776694748533923503034996257981832495789079073012845432580670780828890889425919157384123002079360685013512608434189466664682983694977043606093245522831860924815850850793392427228341205530083309093439880946973366920861859855368100253570725151811085523300721173554951455266324140517362306311599274241065456059478114503522045077897630618934713021997990539476555777454902157238295278303062515127482520458704014176411882764615908046754894454947291767585628392631390888784323478792217073626833966077618513855591857871150481383849531764758528832528362775624384306791876220432619046349163294510198248583896259327193799448650326066379356839451157075706014462945062956365016621594945781171627050845294284317015923865795361944686007244134277052889045090375940398324940841201686724037319702306606238922179054421150868491453186406786227050140788614705612634276094461839652819411389983457178250119284742488369997701378024368945859494565612489710058609270334762454386588604342635979963281700756345078228069743500492269933477676506875030491575829832813818735304686478807940391774288881192446451977854251410229716038368550734164935366282745342045836695317185050278199633090606328496336191397012819873935927664927601332318671521549059736980729350059203768343735128135716711170733413809746708678218475858670939729754903073714916086839839288322068775592258646757229405403254386223514703366766607546731390317378948528889548903579482427441234704226271837319034112714240728334768538240052015714302992230326202017603096471714816877666027165780341968586654954709782535406419563314927961148478552992331391998445556653186594212864777554040100788140342307052263114012549711684956500750323681316434906562232121658984606959203609114908368126745604335851935138419341837588187021876915355558325213803663076019837851266503769724520222471277964921969910167845489906887721460328523242189064758533793810369219216307629330262586241302927984045958796477657295421056155931990232364028215012559107988381183601028096234875595567873064373121222972693164631129153898853048715345961050992022224219044648464350027907992891465179663975547013748741943614389678009897313260726298620573933024252324572884373414787417996357407972803008330902422023481736056524095778877189554740713131242133608703276478525795618702804338767812320311312215851825711526691583469378286727879642808668584980367772455833210563628011503898229231280922607185782154437646725075035854444224448969741271125129650633571611870920514301390400442160445767242570609017797438965674933985762374379442671779818999732869699131697985324077616535659577073114179347002662571596920687669640168431306529064370292493479784526417285553683622291538903068205951810297233168687628444070209709438713647039233987901189100843399517818811452030611047371070451200772744857744241300452929282822110318130825722566932580729519563794213795620562686790122073050147672198358172350708637056999134315511070660123019378830714467608622454797230673879928345928455460866609768985467614088486724164130651140885725512318609340625957543732399814426874274033468220690252807421702551651099361876109992242743219660473555776074054317513526302592550867034395033119162688741979757646434961612942969223785941615501196021793275183446722233075908888597155887237556797721745919971775371809118102541561971248805160463543009124249226992975108374402906075458606483799914553602590863772214805023477305209879053663524956073038155153551934327752762504639283308980734571065210523309413113007549934264305150445013887430280753010843875123601873594512189614614364869067528629135147507626029767871698446789931151782032323782542993980093001869921413995640797046404642886205755662474025563698392039122150328496301698940190573191470090729313341344147669367734741317973398243376186126700247319956357133840182744428405342379989441233294820031079956770318479385195762683529871125119778568881643538785049195258329130855394723100216490677917091869015464097951112059237262181016035125698922834431772569977719799981012736905960070605934532650612423783877805383258342306553806276094895363665017197092647251899178380117224791689787025767392500142784668273246125723576313579058095482112093931892029096634370290514418857855606572146864976074266663715581927489691597948055843774787332696306570219951304916032741790051791577618897256170727123858648009065682927488678844492703934794576230697046133322007504433229008527214339853013540382733213908185127877721928556769183140131202116243388096729161135710476606742472689901199849932884892833603234979081390746070734524784001619318160210740329065533769466793260531449295301639554360438510458161540657355424950939737222251161143109489778365683119043818860998714426398442397946133569907185571338945884618654259485683905495441613607261433664134726843853547035323288687895734505272242723568787436716106576012325821293850702476726528653719133226573603567349011161692844585768426320390957876983531590167686045380840521043468142024361276929119028181924134056058695044038583744891482264659573228995746909510915680918108079804115232887261077477702693409385519810598136439642584431949780529289644314092886529339846698217986350638983556445571215430488716761137336251192907477431439358594925238107593371169200539368167335534511294103624664436201785912901035235000117851026906676243063310527259645698305915344374317635630709395251071515958071353382008863845255938719978150438950131963316791576651783693364908997784301306958889496549850668301739328338765027558267454715204124516499083034667838690887486263971641093445068429423509841533725205680370623430394314092877395824340479472548156980740167638579099347995040879066582933055767410956518255796098274328252366740947771814807493928545054270807747999025547601431362076008196231111649625060121696874855715618750919968473185750527003994021425854887377085616517868169029450529427958558215106071075073810381467025251069438632804808413634875364697020633142816722295424101645442508066341889649835189701122423267368698927894216634044883014885435123901923952919354721375280954357156897889007529932549962704342195063467976031455450877830416529792406429290395528501568044987402586427833032482984879822083719909799824238830458099457122565750878940188034381629182192447359219677031940201038251140572806945041557719816994141404936119173558479238643031437800183015435029819606291986687606821812973361224711454297401956785497723706235364877323230367234424540707922844118599310098192136525689097228400380797531763313877658543602133966491071707900346210121251365674703695871889695236163020082559511445825573786538008056951885757110038326776518016060226037538816470024989277256992827851296710998306431241812107863678104974189436276514842368435983886063177856729587557591422890006838959375521478567631836482506453283831396612691419433698321121234127789733804637944625267693681646974162965446175200368172755248865572070409279114015693152032067408559575871158218798370017407856339122685668500537319749819761792060076058246689463975954238508283093189979005011430360138574032935306811401918410556318144136914971259434625255899110895671583897122601530926692075669543972465286668819264592934598467908741392596304555177685819776728452844481448740327643501180982517806794728316999957430989911716490943009065057815599416441642229074034214657700229683767957828984345669997794499770975620548624308109223442380401077929184615338966851085306451304535981734217066077312655039638602098315004968948169995313647726509297284692559354236893974219192404674626663062488003907384959753432862442373675913140767035663113158145632892444621197825627230303984479061267220167566362958604664077195152332215736489560048927292330256147667216094401552586736232530485418722831267601962051388024302024025305497630532687799751498819367936976514752221938288139985595555464370036809584370551498572426383434961190055546531683489778050212769812926085836772695218564572504749217284324860091390291318648151879952859295383784262314770097650492778218697492613094264547491443037422400630202102108627480252341342196778371728472400047150414685053325245498397543106059707305282524467505129790740974750550699754850253481820990111340053106338000761622101042557929214539952324113221229468428199321353927322116633592216414298226558758387352772577229421827120629537701789246304120886193307054091511938715084371276853478269818251238038458653243273378767521266536009238152051944204147006406885898020961214811266314231386452942368866930135018908268549286725415322220773816573414452850323681676611627592918235888584085422279094815212829256900726460637542551521639752001667043397367018327559622042349371066410282394292461900535225974656860834779641038667634126278426919470874407885105704707822001862932672390952580444934832285417962259348934776605709265581476251378011347310065154439259433999537457411159207364485535428096724188062862496198836979598439766821615035922740094862805510164455808256131688773986814089109133455621436962381054301728070316153225361688547163499030105587483719332978389721571887913227074648822592242043562320283440161297413617860136753995326824160411611067696592328843350471904592964560251887540210392574302780417328590274885161331951374836138994198872477473312086790593234115524805822607953519565562454299784535681631476550118054071140218411169744327182961187466196535689748933530198392598776944235961897451015865628795331497233869248911998754806135732141366284760221492936272801422491007178099216510904707110242657732644984896483699923112655157699008272033393045971384595116741572678314466792813063342224053847917082261500300279618667321723852510285015793562423711325107111475125259002713123382032216156020117334832402502205218114405500856068561511235127550685005130095909403880310774320474971863558114097815159951663653413840103199872254718590500902652437151534378056064515088027364297952059080823049203989242605057547531967093599445847273380056237793969927635047521544499593734850220227563324290978588052718564161422513366884197430227953861748780456020530936371418491567576105556485630512258431071603672003267231136979155755061038385129225174817853401904291697265612869441404378937635744150937680255310381755935012425744731710604740615240208671719017985313919414767520879236735477354152687394248115149958297933703358930074052438610473565147935006563983276584586281139237875085267803703088536563047910658346759981253780916294016690424591289658959145863750275131041007997166401016300549948236963043085261638432572043539319663727751837311955999397832085961286963250222902585883879957901788246000685993652487014769986816000709613236047467670974384628934351685983330789418262951625584206467105771748197172433592301261677047781488317211287852431089020870146660829638694323514425604208776965683487473124696753874758471593717141851150616039259092391557063781611442514292510288821459986249430199575460578755163435745954603781308934654463980679821351049495282414622528449272293951156910957188076948952636099552514816966796294861763258490559001290039126475182448672810356064313133651078501909131651205293854370478074852588445561872107606963468182226219753175335119409505555544089035386319091303336699156048326075955490221450315993609303829175085674464208509972931207895954303158712357108677146646016757640933547422324193020689038747997430614087052846266415829455662334373732191589056332400477835409562602058549892554788560546939230017297430063114988597322368888041498190788074789364602760622493478180677538017752700058072776398125364363850268241557429073966969338851291900879289214345055014306831777325012157606968800873466668577594284706852911324562100332697183412067805927905835874274635341473130229858252579461755446146205980068829165674825717745148159317290423246086595369709847711765932960815051261187353389708336823598655367622811554593045875497450143203999508954880165408735797705285068147091357209292267888364192910452933697761641941776129698811252441958714425878326319646300351350604327284480683523749209323944738971289431860829042071650916493669621438122808784561307526059095774815210673644986553119897112154561506880525729573764671854038942999738023159360737349190521111855855939800899156748311054858563772461138038668294461504596881438083658978555402138476424816541743113586437558664700105619454108693597831623433740044727633607053606031283303076223450224741025663083901080068102499085709360045930089718059826993799745090448078299029685856402102864511951174174216338889930829452376911994276382419164619472042970288131887550037511626107902008136634751586636844567974029966916067722810658019705220345744115217387127918584042707888327270534284607469915241453448196692351286022945121839538711445500511805748410545651321853715944878393937571804298685187337910676924254648054825284620292455036303650768618002538749974818861813881886791462827429667381238310309056310071055706741558373986869268630517449930508137993058204806146360465188036802865264686605385212185679703412387860019274832228503661857536654108920405903374259299095994209387940577220925647559343708425520669919630017595710817060438096652570188690838610710964794223301958889630061602486981270866352165735853626242749490722048187126106702283128250733460426359200835390866802320639453958881703390701873791624802098688215865673204351500461135671040952525508040693683059989717962432358043510330164588026609370744283229419724810286937613335798202845076993220996713803422762340117030434444890519544498634003088729659974425886220632714421387566060023385759256900369303046676949449281712364990332980699854718310678211119509041408386839400771892447969395792289805116629602645897492897340842782355205500158594800296979340194541792648551875373114090202218079696708746947428990881807551172859021496523321941158956990384140192274336204032549517277752640993783620297564831178176069780600463025523373368465806172841296221901623801699222271207456289345830683806871381901459544197737760827733227288881783058899016050797153820368153100769750257441557653026043449112186079023252007588622637505510858000727785954971326082739644846325655173960161175759153567248723099711625381249367589779038466330403554633861728906736542508988319114267935852430814604025610305362439056127233327689050624107126491199060470990716942755146223394556196673235521756361622352136444432629615556914971351928499666463127427829617744377797772496462002153571021651748781489849194784712356111086758057861240535579643750715822702115485835258175393835820583796245312349178889244273866303786085903724803478780900806041383525457536570273833811360087588840096411120033439418923271035575250928323074776414226654187083216595404658629414937509380156235728036724103516233719913534666586201467950911946608366252786657132669150018887275032329316046533171744526923389173139041866426221169666210184608714566815849400106639799468720933633040232873539586973142203799643157737895624315015643659824983374406685776983544080841565431850445378017971536142900437399632983579791380531974047274754347286062072486373762256251328517000023431711388107514008595265338794276994952478348027493152152040449074409326442808337036944358595642302631897078611914114146339152389314309827337285604489736305437143323770944157638175292928101574054920686081472993991428342147846591720768051724006248002013821183278272398445924031419977568861465905172790641473605384958459243341868497520935320203450699769554772483166203203136390669806479526378340575053937338702460868603178854134122903054744172839834182842904675868645297755650010134988529114570841411009065330498515674627690119841104296105484333682479640284637792516411205774941531859500203545031980661920105851994158235195787914373326236281131931511721734879628591687411836051494312372113022373457019021817745764714688487484270616339947875656197231949217860938371858698452200292249489680340561743998853730419782221355036968977404159503950033290751746059586571047842584537897325516373717039356219015827838063405980586185461019738820881952511247034908123039542676914634311646252186978528989421900373216983382792149114494285775057193127552055729736113989463296755271323740521626589549209732115485013369423914332857435312526665868681615233968731297676009303902761941793162395044909480100432339575244569224960546018028037264541912854434277980085465900808087400014543334536933849295595551233755295383131857230318697972009785820012280153811057227201529303365223084878084023107615547556836408329192498961517846786653094550407979662952050046688856582535288513382254175310005721362805166193927676073713017427497397307865580665637957057240766603351123516785256295600063497881635497697837568993360082838193184450422895956096355839196879809539146299716231490250121027400391999213271111830203962007512253418154501106662653935885677746645501875524261834767602687181234576642873035478253518326678789379784629582168650840232718348300737639093370319080474586108300283002995936077619815567605728019167237504990383390446043599657925676919334880181628268762869559301368529638453908983589734132439406156902872132516352436993179381131513251771762437538709959665119861444347049085822983207759363260967349165421220198893164062049322379277086074885189243136484209215356429393493145033726815460107067609885630922544557778183501534679989851375925913428274515392150693371803370671207954704510005441930765456740947322993918146900910297242330149741546814455430021042147559114200905919723823798189057376654168960879878697104482247890880588286372218918728812307323558557397487320485660857407503134309832045342522369526608492289837675795609089529956043737417132872286996377715627752239088107589696873054989646852178706706499348001192066429666786714682905079415966615005244068911913989752750434436461855125095286457045686786166236934520706637960933519705573132037596705353131857284593624829218677566892636851841316482147509132323776636671318110004567297625053599673543855336822794439005051912131429999906339069990884414772828186255552148597421881384898607823660516023676058427019282629998172812077939471455962502156159278576037126415176528067280435868708224533265593715506766541252607719008557377683257243965979281396192215237614674332800281573215512173714098161559864094090076964943999622869286854728403335981242976127001551389362268728105807276363420400789718195853799366580617585675381557283167782838456931932963170529096371043758772889792189302860240932116914517902332099770484793607690682839679755069085962721436940394018509731572790908141211260433043864128031159830761358468969298976758331958916479645503517300475398611680374513405906263128848796697901520468342844340418255678958280541165062243361852718177613536874666281668255498733024757382651125926902759470902101369590556545953508325422578375616332057668326241874296639273891702234370655904959288643608621038353790358736494694930815508420788637919911515064853459505170242727440416979623390105297004918280920304231968595125360182638832018678159728721186069251277515788879455543455459342908304475034770069242938457363085160672832961696989349974095408520369267418015236737074121383190781794056761473294749074288269154202464542789736582982819149091777766360986223860037305432784611257564311927799248370547389514160471929139387253372385244126835247553612600734758846933695855591422809247855024659732426864446596699843244850603286133793873786942666413316215131644440431195254553789085265004074394404480563186119696557364072387959125094291034762634903204014333088912026343944150003741677748100082422323567710513760928249996868761124922039262189890583469296110430871060272762615457413834236693447524832904516883641140581300946061474864013871454710026176347855192072596209968530960129279082350268398771483765341300437046358650116744327481067450429821288837791782272867404359920489194859947635027275588847257386880881692115287467658993793835087228127424819779886863509717918935575486706426059379152770952884736170448749525056954274407781105548900893911636796151918268941842400579734563035717527451911586950742107640396289550247440394938931799117776468378153559592279308795573360968186494835064880429868705870028871325259068130698166608512712014016926181353275331353905804589080514267811098285710026216662809106331685711218885938439000979248242302789828490239901445879443758437342270145270838323257978386419996065366685540176698311965474965046093481524346458064328036081752322370066608152498665212050000125194816880070864352123674568083175803504724488826243876521418004002146064311650471765578009396158928639212499438214356577722095119391931498189816020963181697328528929606156710372994590717071836564839692709305613992218959066385872470140706959489545541798837920811355999916804053929525697639731667600409327210896832244958185708558203129421868972209112446555012264934990362332477987869524899270384375020684284027710885445447788215443666305843007183654352961604469699861281221298062937063746036529833108461378864675835379653594236655435622212753574611509979453218859626275792358811693751637384676621976298268341428141081044429950753462219800212053765542188918991504861419744378437252527436523214507309605753158107515784843966666241601512916040316059767186499578640243919386777640157236348268458664156055699824679459781726984155682750146394448423344452241105399847973714392631655997937644330483476065667566419045865989030987807952515203833458611904461116171806786680265111440268140022381894570427237820827368747588038364191261725458749389497135720813687340442930587557862033829945343630192513731091020636827815567527269372967549326835852590085929150945776872601733040795779300001209366530494321544249260102569644897903184799227774214712101760686193639199811776397038401846964961067123295554404147399278793806687004105191349988893258780901819287322861456827136940927222751233394300431311243193626064882933456326539672706946419153533320705841134759669090396571751545458290760326072008226696332596719599698660820862315810528357673416709980121381950553144695120341806027806499428414422003930044610424220261542169034297822662289179820741372728623272933508947162607520066490873840277929907203067861500007907805435145239395981112819013236639230786294829619519428384721094356725468287195577979387729852389039805226711254277605893099364265129088435696424790319617159349904880421682546141396486792599601286990949390567962096642589931432793646334481116631177749136038917894055791790059020524659020431457427811501130443081272835486336118417434687627829733121861751013412469012292795191969061050124180560690013419948467158429285994349417262909647762961503709740289225677588231285061620310885331000773921207339056311033125754947712484051107022914181008818936833269963376647301409653056572718245836460220017603147682963696474343174437252935630466060749817382593636236284386487855386079732704598835926664809160193322944159928672659447613989511122970498695638222362045831185375779883419158136193926242857917207833261383586200805804703529110651265695910669590056723900995983522425768949387622234140671150702424474120064325365489838086182761077890766894015346306897055742561595088306125465562415825802148367630584891351478737766830326419857384508331056877948104361268405805780341113976994774401983746518756859714581683946687077823821487649786723991696261587068157383667260362971228701039569303375852948530884191660784399621631173732835531104943804738075481543955104109250855245621486167048820508215378258516051755725165240671077838739603028456601521920004337295972666744867088987024051586023915567352576559405770981608251084763054234932456490817239877093520695927703681630814690372424085383166666142813032447572084786991696914578215771821623078138171550481580806871622324709381311620847583393977206769801572806966003982260827024812890699871407611922766097165408843975979293896580688235404769188563173052754751219393332456124400570914616233594245250678127356365729067598568230086042931726478069354914059710330967639387389231156270468169978516494969726403042740681672798068429054238935066923843490962218190161729659018168638859548459144693901133327961192217164400200494910322641858323515049246497115836108377812303571528352504542239519489636966799904371797224995065088411869433323668964249826881401342025480108972479590147647077443235204267457451547484682109212811400680274648137365614175384712687893575270569747618173194112345372524466793243377824915887660665167792620582826396992978088776381387298952549221169403010723210873344348586883877158945576640366836939573638266382304271284133916385433670151894930963627843353548705493982608909917977884799779998293173691996929198488923962255936731767548441347524923083815937833605581733478484500860604464393700398681478541898700835535445233192323137071395603273213843827326918913673968863190987718405893006625485771694614917314166688889267397713984695199394073292784939307939781860186265584870379742756162062151797091663100845442545618112692211959203011522509145786196463435915821508096709848802180095438073828906663903589111318123361685857490808318517364525006531570335268681765487899889187717855903090110252567502440454781508187299617153697887772796603563210037008375563447813734119184009249427897723213185050878523785478180084381775738775618348958659954845581725290739422895548460634972181976637119068657840547947361373862710925348324071892132741375255518251001858013562403529433752190583112272149422781549765707534097718043807240916233241498029176062262048032271102672606527876427852786603099259236034919479559369223032097057690728357875704729878344238316323931214022882222505321482173374701301019165353027577268974283977779394739083819978296628630818391127372793505891335062680633224704903243386652036647076925747116990153322941474126296368331045007262037732976332531294552306373268350240151847789833629000291710343275283361211715866182773704779861154869742975526666525460440955287347164253267659260229419706278491591601901309483465735230350227810558677312535980730829944022747049804665224349396851191676341561874585284295063539822007882619512309698063002148498892625841366127091379364571691651476307057287877005227529328155238857324989258405997144895902721724121909977828466198859220385681259744924454767562004841785665931372116114736677197321097290330557911150364287204564745705959872939741462190464544603487482492177784325053330927751162145007041657340162136114701592317241345812519499854512016033291879143269350327025305866883868906467181261252752346958774026399938004214987752140112156234374502808809113887532900847003566076716619102162271549318146182814151414258995203693532684131188978957267198192147857011006708878116840280754961807027159771116871339589876815715930949920491157808879016445714064568920028740437404100295084107119171218857280502872129780207294960903870608264463786939660739333237941758853961938699395154126543313993643263970570983341896824303901350707130507389863193145021274338292941681608463945919024364979649791135332974285451645662804087785454209855040618561250440575166012669098715601277806607579254641658588733170808402497576481794817732520454086698215655410886087364100188559950508520454768164523375979033637894348355250630472702834483920507243245566440470737186701223553241637960418640197732402259698314877937409479033110014933544229596038097248690530345448501472390736960557637816084390081586446011431197104408445302650713196055429975371907868514618260701186959506898502170580133259006220357544311379061672124672489134370204627078104044254130883549017524554770106590531202064002525039487501348033529326899708426701963739421591248497447819944403376481687716562498035815695804285111693115306798148918833818361156834257251345365103270336621909124407053515111871139338170998361611787458144703962858521814978063097472336742208073780462615967160171704006730917616622118198841327870490878275451103439659851617887408561584428278468941047432961646492645717963232802739437282181174740042500799416707416579310737119718642904079122121936933197159665628593985458795849580542856583267209292004680909348389249827903808076824275683247633456311941332786498998472088185901113446841242350991857502851554943085276238065852570347514813280593360227692161143789795408537746882375203717604347729854124697275632532883899694558353113982275536710211816853588978109108221755773827978377104066294331537216383228599337018939746188098480578616030774977657484269318499874311339843246612166547725808014389665111444275353566881247144326737162853597081012013093356201935843660828412728837239955949123242153296159863976715606407171247220228424338618498840285066577032036349980565357949760435066352442643888608269795346055510718447816991377713415705321957345938670480028381189571527581664018892472627748004489437027179529912974421736962344875603741443040120941053441535758450033882134481114415698900062513313266729830354094968302781249739313137606436490662831777081534039760533806965412717929302423827227757675263017016501050063346673682641724877937100266080384080559017608928295863127336878221926234570078112333361861907271053827914319820293531209895238184773046986338065448674146177924655895556792883450113722910420677434924972303145975202247337537217374096138663756777641456724387515914121434655184564413454337367990605799844172981535908983350058259172358489385941426524375804609448151830512748772883842497532874507028897076967026774899599225921641919198376351285653511069277184038594484263062867000589781301484508863121879693178120991119165705265372034167912460413920618182932549868224746544112635356422718818338682519921707709578576552348784129890546361018656131421524637148265887432535027023860249235847111848278464485677471130875206311544200833995386491675433642492566398214276488748675249721115585765273021235408341399837374142095611710745368648070203023595012073723194260104011615412000184939281148202731787040623057391528793395045888178222485083494778218933472251307633632653503888126608729918616137382190073360301300946836217035433791986733885495124010202342892474063886765710575949140183986855389774103180667278319418364941562119729304282040018635002656562041975098629317620703889853105700454253131744762716543470980286407609509732053850247724471739077721376043275260896337091929388556107742565849501767794958360233830198890476963540778006262030313245597740637538247121139179407197936555159918328656449373953275746642413568660791426224106754127229100981765385080572237932442585599773952776253314569983600346955499357425207532273703185789852277758625369436961201147277072939832096202599871655319291055829573724432630553137605098239375265184799730224132669157152167181496466213562162553558645732879033723914620150013081172212874330760808048350584311042015177225988126523049195551106669541216853467136148305182560680839110960265890032559870191048967703003721721428768207923967760199708823256080863482318949806410274776095629230252499248897634768593432706737904447793197282677868493527063850852301167504967203595409675171461975490664053995132201283184914785925123717468105717209281485812710311945573118856109822313662843478641675805422284542613979991293776731546512994206401950450101284919414113547100818101398938973869447511849492394788346675582399415027144784719315630750083084227287673861231012638980452458474155058898764472976553186181933184009206480456111924450700892283126860571930783304102657765519939838033364846799701464878528202411980801249356215120075744607877464458890499707259451990245848986451185755048541259312190662368305446613670043421105017476973191827356815601581316510350840691694802864076858768187300536079195434596380597870159562754462561970277502601656866489748576140613206202098526232032248828151766578522338285333927786519070632360626450154818472098778323157537599218609256848126468664551573995432485585593070399120402577243899008000231498176036654306825887535136372375802936821464430283956377611605101846541509967525849931163203194142440898884305258604125670115778643678931249826860996882034353710878779135334911377900514637950118155341033577976966577175593979628476659443086649247645025380320202243640791528315467383787510373801400747881148545225574735525647325974416842269889940400356437303701184344563567824035302110545292556681043407011298579477339089984276607801145837082695767622770393185232232488858748511175326193764168891952636880823918771790692570334994526523233444503305349242769870690601673766465897874682824396424004620039164244478164110588085933682186112452438845819981150716834614131055567073733112982026932957651602602507893797912290115389045405208780474767137280160252314147967035910320976880082964719548161640202247753287555205823193989484161020564694909466517359749910315850051727939402135650607445137516671636469410173585077881126728296702294764035651171780445042157304472851159440035679438277954579035339976659367551439209617999632770465747555089495080469972163550354053946233683293797745552179663118654458452684660283726401901304402200532801436668390810673761064448901782006050814100077238055419903682830692117808255907339206458624047953923800018681006289497296138408403933686098779181499985994647411853468515763154380060523637193273475124950235805485281706078409910414886298371281245552998470382899002066598091058757368878090009917563229308272720837120019072316600782431220664881041133845034703644761334463155189131176043943260901928937610804462529597572849967637073329681743580299733027272358936997526779620229337205414454033046863393587103126810985256625265151610040383462842270610152440518601543985641541435116141616948829970558205919239511506545990181098611528733648699485885189184261611022289424945974927450083384517341555019956684358737722113749300132325623109388891149356583448630172542407193428544031088862817898316430442074917214804282791475238332918240101034410871697332667141431995370734457121699506572715139797591249882895658867890333786680504873315040130010045504050751174751493621364725916031408247910719106397525040403768657007416891660683784976777108444868617084908518702891666523090086347442088332981528544572190823644491513182743799295316617234100601650482741904067417437898781085767241429785824386936374096721852186113505249166393344197780916891803463869866421600655743526775181761784002611306085819485161634806569491663844699404747116060286460570092667242408906321943799852583728954198922397470014848386751260120147454903639510664704196626933195678966392166348043983323921312294505020640948915511263197241055193612988791610818124341394771918087974181233602659607226986447269108632687091092265363514661193881371521221988302364063542508967652253038622914816962213325751075410670032623856529385140896477824695211629261423586840636436135101357000588764610211799430032069961640503252430976210392323454599923832521386692969871860299438498822175888337573325953848001744214797308263324431069736446234535975238580084834209428332097468763223019940453486421449796830062216505468850771989447530107983448829429402624779569205146041228359391009026594867486413492757011291847145763404545050946332244110358635798845769215606368651942381557349482622057261849295715241135828164429262802652109218095281604214181412474907848486457322694169668855069892545244676658248431545927042263976345111788774698468606686261454287078416599617506144323604480019018374017216965214717575749645401282307705483795475095500826451658398788102446734625648891771475461123111376982929329491729164473181568554651870138473478541032248829691467505284920399809061303480067581668684756590437514409877862896499198952841249005364232293898626053302005238951612720601625608775050990287730027833249330759484026282357819130744997314394172420249681040550091610693810420033469567441394403469467256989761461977389473115348577946739372706174020340984522463266892111872572887681511881471009485657497280864372222960175866821794873348485732635667840761514099624371928868580017785920370038482399975045013628153569822741572770186612846902301980360688183085711632980455246012627964123112706667681632795530862348837677624255239708555777222556449065856002668842595774011527262097333512595025257586794093386695240217622375135708858158773551915845622402225046866416329276696474496045012137605089654587825545144461894700538234296143520377555705607045844702020299545014545590922651998269176646743351063729576728483623901372032688018979200685598349076000577847604915766972277902139802166446661593517555555292404674529432249169373214248181525331595324430147427477927189058947942455229173401798104609942971193364335259091696460332803013439310819590761273114862518206142269057073942351660696227166087329515413845168870012502166486990028166484863888056796079415825711186081681624036868356938156596661740088874015210434412297056856978755990796400477322790210696630722562817782028367727784898854521919795211175716696139122763248730582695875965135974711355024703799102297850011921199989054994355383331086826658334536318852946800383786083839984669356169026218516441981356640245030946717685769264232104590717598055534737692428523717480091059192408345718147225778126445375265398344388720479519555476528735625214863094085313672575119636278744765385992612830584678356534425016726954906715138516241362207324249507749584881330163374846805492978980790476724147172414352329570035056872874245842106066010390164683379788620186023433543677227293871412174196735968557803401885947346326947393604057105917324535113247355776246800642677116681097637396870715017079418249869635540786243764494794390100297586687562689250833178012165897268755363433660419305691899919440145287160199218973811842610865094575261165115735611783049402420790364859581197393358399113941164924860576960917653525248349385807442560326787408632250812937979602637368535328691565145507444791366908537724480866772602831659344417253737740318285865815376628999112895000972777833031207479469611319639967487201322823163180922892021891495480244419884291591728179230915504881888316968514084385739925776480981816711598299706900445885236106829817034247427167068342508921725397980971750737231464180996278556053947317083393578188094752132079818955472516714101697684382980300226647990802000279453421763957152244088897291591789910427391297951439602391008821702998182194617265909618981453762830654619357115830114424978468337706763576729787516752111877997530564858372269018307988503113303073642551276530846681244284869122971775148339908286291981886385999713229185283418644798945053411312022437138245947119003511467103264653145758298693263760650022355229457176879851213963866789090801716835312372521857963213267915766080508060896004648593310000698716515053072555101002915435577968951566982972319335279440843075104686673391903624847839739965016581869087933586579865755398072795887983952690162847210483093490282624530225952008215500235972519395905179929315706103629813260335178389638416856733781368427599655125208131027209961171686582229455128800675550911786161760900571229836061046499290592478834465646245532255052301645148750807707896886050982346739940735301372071499494062423492152704279042351626245551250022837941794875118452780674853702223317116678150875874595996682374426091281708961735877027015837899764695068710653185264208740842781577980547202454250881274707717726491112600908498907252146010266529120670846081178334756101682213463914959780271399846891250083699797594785423262681872691729946809472060171300096356313092169262534992366242132761599346416937822330846308998870063768696902307434127092819168521474544137095703442990837717109088095342541360598756381868574401832312176551040824267267084077221003557373189439898814244011184058757547479932518893943298091044092734728690001864029463620124412057015786329686535469801078270380700232828570339307746613944971812607982691033684579596926558252289573194344518663550942739034406983169362469027617645087852568818799639398080365133340218503810716106665832232909892983575774161174837661380512355118075301654419941755262496065716131397926118579936018867925927929022936999350680376312567855764511478728931406632631291186390861097083584961702604744252109591051367134905148542025557699081587468456113087422002310421177785615474440798070794275648222902042191846542006095143713992973951082636787535744926953727459978660656746769342392212313055908995602740973886340846375253479190443928792673647691060288860082628154295289375544897153155987434010376057749290788961534716250623243357709519979098406919783783058009790115078153220991072038852367909397393798849470144085569510383433807192237750509920962772216960068461609206234888907746621145431946843699990787325475604839226999264317753567916081308468518285499002332562990273264159234165365321944498444649969402522508733893268359312410379607158400668797248059815830943448174867381191931805618943611107056941460886917176038398601529079024931651976410828284616114278551238616252160317926551237851054769614087703106221305611638026861197458658706230945632503297852942448209126613940219096422879864763984899862109640309023968194887919863780656108862058238739439505389973966856729510300971749313245910294325768445167292166865699501714036259240741475938496053138968092069109289385814282818766364773911129315046738570582987818877608382859060329844441023367137283036493707681835486664412410242887147095873748663749295633168726148530189011436223011680274541950352165350677928613949827216840270463080412634862712381476386269030056581444346247672926858976341798100074966848244932988099168855329376174262571114379429741363498926467477827125001619631954108150059313384030834071608470923632984431107933656226135775695245922149703745106934451668944957000081535267307398297594856633716378998805767042310217599158672026776679282965290868159832398243216349399052132909057950513968371851494658184219633460297720672972069472973862450780633205003046276289291432889906193771080387098825770203646662282537926776128797836575226512387736640016939084352931990439806227451825218422130663502370499946219683672548414776276745846910732559202603166695321527417029529786477444035664127212040283299045515640180304928931230183181483076714962033851621932980862234999909017705074377811368250944219160490805470117577037800855779998152932241682946496212977912775538127318098473367192056670393990950452637239752315027241408741662281317215821171169075359271281790279395001092062230182284552356105560884494566681707793237131735250689271466313383764191130138396551879618819600369057161762641122340267336875029272658838138648062274619834207110202643809289990252665879920205367505767769952739365491021062720750184523174764215358524960617429763029629155546009691443139408318247031847867886580284705460126783464272241881939490390875958888881014722875940321652293783410527902368837431822399000037002783022793753120313112183531153395088063070372032070457452180404780530364461949275687151752342192574582651213940526618035584379140622513252023984815982371713889036575102010922194362816545823971496687115930546077845878168703132271391650686043794604458599654322232544514883314930081875622603850186957581008711681111459639531556819195653600454179058482766898046061870501971104873521960087228607189701097726659756653842469028411623563748943135060863525837709930192345602203411286505303778178818116775097614827114568909690116488792655688680361254730215620695436266794329780976761425053508227335846262489096936261136351238710746582767574806544468831393795686291541943781763430354122283057311175967183970965772060737920396322028963635477365105952482032386162514142908996093089221779669530527748879424424257378918051196241891136876983771718579451169007962522738456143140582548477726760833714009986126335958204761587819359073953502445869090771401964713901430061266568494536214504270140377603633106742115320239298736563869335327963633894447920252689816420755626052471303943846974729352097741408955768117748665082012259871353648760687195324374442917981342362943536322519875494487510665631299958566179781547766440874974357034734276474733903451407749843561621190580010515208099149760709612446785388230398115406365861648255495113004718045592732768357108666632002485987296393965891270647268463473965169019480322348956907604463373715403439320483882737974957442271341214051053084066398733042776182920449371588718502409332279577069590052557747165989495941508073042784724715055029363196675253610327737964962742606089609529862023816850536005562389490935461432599386030257878173104806934516595760912476475087527825633025891667087583967222545530540969668206893132098538390065727256118722876429760798828592028707430336813919228567730836705457639751640436172742123794006718859586613281406724421483626044257022341383092006470492381750550627468729694037805303252069689968941088256099827249893072574785614950216333305559995023086476616421930540712760824045226544571756632577875367582483168217420649861714480304877075035487824177611009331292980450468943465002793983573682231197011673455315753323917492779621710828487505742412202548962505916813309455294776944996948797858050579347538999326534138751028023456155103385402738798772159300698552188915409479509995669545288824849621728274674501629343373518946962009775854942906113230545982542804753526961991104546584596606522609853723289809820823070860816937911497457911133350450762801402642193057055407425306122096508140136363401310329609807202554053377623156406044772160852213624579162186997513115022780905483528628458211665092551523505365578349022403209331540416075692088897797462432640062113927130621582066978110167040096181505938628161223348390173976008977141680238676365876910007547263213556303341312509736223415427751272229073336596720484879824440093945446812420872216360893853861813293250555987814133717789655760894285761920392625258189571163236133673899796634530715540086331122656750525512982712951910258814191386746520984930716943658881902458051655940302093729111806182640761386204212540326497848291592587467390374779181643713243701997997147864642973505566344788437648880994291939831017652694770226078393474839878584415433735910467138148888446094036404502296356307597639206489545619207608162643110543813402326996667052154222263668136566756693473085827365364249683734799884562426237718979620093583737324645539012956150747599342993123652077464792717241665832769928905377948695195190277576708905724820435601685868375586106951492096270465365422273745876802280791013728103850056903830218219361469670983478312782806146976050867607907076801069621437624569808014022649220560668354109150955401494523684759580841539980996931781392791006125038634298737735902551740598074238432288005740523171630367335519297752106863329245049697778363644974057396410673316582081008805495567872887170487883235700623895603621769482394682652386670914380330214658911623667204266513220567281884008572747980634903673893217260875292415874264987651666788439730992530072370470050785560939383724321766125830001486272670365014093779510327121775696572142148211653418771024513799438914414230976736243123812607576486530174190476446061409488847039180268904412510740737411719787264371209820159303349228165498720466037916772610253784561350817531529598371999252576024651635345879279452053028392070531067562949813895870720589272326743099048197890802974640870101903143745482247241246276947176182048219125636613075008507098067589258347271062295162700779504844826737755198577198921591108009636879308788518383895186482455403440145342227991230321101276060370968164787902738842372785148005276097443121489318167597476946932024532906118868268751507099897415261527944826357476722443020669988037378366734347690539284600235200326553934888975432628912103348052882178632871403724386987129963497618812714954703500596620915025705682950071574918998441685809905881126084064298260015423036242531010587191776775944974589055701480241110266514910293700325995968051910875520922169884562201049274396161295788410608616744289255962798199460568263934328680610880326216895336957250373377029155958158626832674007219268451993280720357465442081307878697926237163467690672553479787346250138290407400040684766700719896189352189454376612823364753144026326228321552053370434940835244765669384089844501526977752874521589159131480020711257375495186155211921525076729975957998195714326881180164586012571070824079146387249087510192739604592301174717684982658223235553721048444099625213984921104045642630046695061413786644834950864337596268231147155397101040974940370512689436925189620522199001417229738475966575072881151997668116155710972875505607768293686453972543041320445668914504311229486433995879166422018096792495879512865630722888777592073036990813926020826190399584121723861385701049551613137276563436691771449656787345801705885600181903194482360381620471541553163605371173620201890164142939105491952548062469726506293997086873365078267121619967625200186759093994090545565105516826686978932276824379237239583080183639818945507378040261513578072730919180022221564466668662461619132802719950434481777266629994201421630095943449433830307206423308501239589506629043388268764128409088915197513318480553083981115412944516932773298782883330770274853707848699968979255548674180799760159503319845707224661444406567922088011188944727178611303070411818631808137861024362941854193200567878477508332823593374452880833166269055839387992191713649382760283177108000364212774744871679478068846838437242839395711015616784594044385429763533334516121061458718763651254068182197745951744772896909381378711137998408477457588226824730034314158882106353707090732805930120021095536140860301356242208857889472343799316015987214923139359692900214413400798347891576271892963692482627034524515998301319153243568117903539186775786221930579704041189558960359313196517315594330281023253359920748007967906061471309166713198072020680745994912067518961360908901810707005174018339534455388608838262162147390347136459169760286414310058358154696119827336681141525950004632962033948140721874772232801665235055782341326091016814637185902001890768125930711241486931117385644813404018645021532396743735496071926327475581142951079482102380840744786387610304864839469106335920766470420848947182054654877081644158146705501053081519421098316726435690070571345620589766593028131606911429804913249915115151095150209527400376002761116532645844242714657194544910000747727886682614093230399651234205151705636428030015082687729015618287900888095236704199980276184596625845364511854919051503725260777288768202543124889413425812437911588606240613555123257092435094837710432685579537755542394914388252642180455512159645713196492311737258445251557452692923452699735444412547640863534299127646084222877938079588092932826109061864497284742638139508270547654742893059063964350905509362396796392971636600907849702579604889645793652552712638767978637467625583130248336762607626108311943457571682648207884029162977172344589128181115142786120546205282688638403250572533514495222071604059700776275743328821524441123982172492413740657109475337269708271575623126933975906597761056835338235566562004710338025921991490718360900541642551854108197472875767356573344445026253462108714192309782467855563557827406159451211483227900837952448947928879759491298896424949917446630761865180559220739115076192769444021393105938385089192566358266861869066798664446937020749399488242462180680974476782200520172788468648893345149816542129199800250887372034691405697399602206672593708759183078565259532335870413532498413672579336070171770613465178926378441908383154488962501879730276813506260860177764790119450392632916921676363485279777706868561895659935628013348099386426316567610318382140309016962434392662395865705614991302589182402551774338473165779705268392241150568177625006955399743537574414570201976055204688674948402327658854732170494921140126923888117656918550423089528506694219757014052799593273058622791290984955002799050102236579943680964502778370926068785993516196953429500207057641032762830684473090886097563180237445257612989458659404737528261810585180322329536341034512538660363777696893843553796340950098524253531954324989300677887795810295439521127886117349587269712785036522485835621567517667871657877712004196286162813071484027726595230837194402829094616210612825602458569737494686780831092709323887327299696820984609986608038481666557436752048993092591930711516530472564260759898181423817861582422112735634060383016507558176135467556361426704246072958225265564904280583626383601166066457253102226963923373022942210522527614933004993226621793501315518795210156052116581963761290979098540811539575317405911297384970145537135959942521382194620155728966270309497273969450380828438078680667408001756821036680352829356257041272517021769042389641645217680822611301254872978251300379841661436230930861068116512502324941362873362420957638836186888516448184916591542880913804567716788199518572380401761701182738328435592775292959403241073278083530271848444228443492304656658723223328573503878242737193472574315593840722994272274520717710226878785367906532403933855040139888759019023526346587024625790976914276850868150599021120118363298539537942118369285260616675031154607394274108826497629125241110355690386973015554917306755931574966251607679287083162517106857289400272412628469035928673512738242452053412291704803059752881378402758370665262235114572980892079204079709261636667468375950903392444122405824823588625927676502727386745344127835748238821441133556045564975319866088956134842778898918665478133679201456165373795476390393816132856566926322952022942756739020968606266659075244765648740195585656591105749650125536031142116364502323740155229074318658779349976560831012518546907540370047843899282529171336083937591273574948279479981923416238531278543443331524957137446398208332441633782569346806311525063929105301290918971775558778220207851197441294166945367544863093647417831068868049794974863285727802801137213377338623815659350542530739081579778446897317531989406977829208164539048638998103679679586120665259463182203733178685163105501751840272559747917316824137901477188832551317673038756097890788451624316795355005994563899339515329916805765516705221353009603677512190789530737379067567364824158525280744010092690434238979956511317107238874781140896237402934961491468218929786433666504389062037684445097014090655171383960385837792149291937245351969321219532641804569087348151233779607436903260007503286035015126964389483361020080102696943810671304719830797527707644316128677411983609194083740510746354008992866239841181577670792282304665224060775787180136875752471397278298613389173037493220429698802580635580982606523224588942948848216815973597572877625929475577806732368795860484387612868788625020036743329938946768123323911480048700325552897993567258361615720454541332892749665679530862501737589388409332950289484969150941982009088673284589058613065910786244369310827838761029705823967401219466248440107711059611719652928947837444785440689139576522210031441918927486945108429105142216306541499841125076549340618844823440736646865962922838160404413136750016121002471903670400687578923492735105120208521353059716623693871442507690439134320665648405190138280482631440296778443009851686965960381649720474011535846084271421121938168707826328826089892550213706748129344605786596064232897728955306604702655501714841371729925700057817644432402856734677781758019815763745367219549822071447445492014621027740873639064603466147668530045697628228656156736293095590820798038542825717351782891639352955768956647221522345954478963229315049606137472881211295521596784386518610689180618449954967162209388170155822228677297533275674266242447938714677453006359096319014760457107138038849175210694174751308706970441904452354874162946315175525370729357502303522809801275722569670336824965378775151962739919672976095009682481777447814763670943787181241223638743816697144355848602917556210325293624721349905213090408287896045413012547212029402717805365736971915717953685674834388807931502135745509621113793354790970044110482438872709195149655068518666821280281225705929323934942977565660798320228716293277948034907985127926217469542418410101660237087500815598912586355038769236944335944411470551170466538284808420804501815810682313021774395340338800894851293210807162783187060611332652108794144371089883165232446469185105138521236995667179275453855322134104269479083469458027359091375261948025681989333301515949427866666812060838813563146985715254091266251365945029029518727013606888657210102858656916723582016341319076134640610507796380883901173174848949231938210711615745678243396819647046657910855655406575107572045388548144658348244836536445784709948985342221338574492017299074535309191025432426050400111428280224683419475768608504208872669241854267872538554794435868907598485915974427590269354456800903580950028912379454166565495523771872286136572858984625609188071088233772296135155616182977714369506648313478001324369726105809001038965607308290453725349382790173963074762400208810667559467846985862757430901522826851740585279592924822008313605789723072241579245799691841595169910790732385676338018484147303600970159666846468531374420208875520852819680208022155687235047130039504813517643610460897342119254738041260162878773671545517968762510009631102134391741134295543199925108695180345406183139800038184331873347843532590627921458561361524792152515649292030431325133704981630571741412908971255720312214755979955996559063179227134304495420317833697391397683876155810756169560964195410126644946879311344899733731348063670268827920181047848903163751165714759656591800279370127709387212052788315338351057896072050473921649499883670685019327859361040694845696656165508282594674820470670822012033215196948223629196817287865680046634020282773128972306782733613956365365650140021002543471264661040159623265218747517246567468281572326575803055073367378283886110988460206528362856745453941977453958981581769383517066913101265513161053208202382363982732517114670801798843783586118448642529050808224587165325799563369050711463375487730206421275160509710332612496594073228732075467151565661047283650760802945394389466861489777428130034106910851724285807097437791193461456422297692387344285424845094519165030349302498688459863857406445597486629249333295184789001636915981273424088957494823297584237523383005395396819981902543129657786264707111301369006812113545111436880328781659399252258884610490576290427053533188988050108909045264029894426288482494017314794376849491753227347170987112302380300275158525489809009975374981454159306850781357905361627356171440261634435228508918228998674118707619481780412771166920997225461777484043827110014249950410658026581341038104829791434985433848392621743023532724946616993246181821885480592472478935653328565257122325784649675659546094067268808443908672718126136177527099085014310133120269127486379363697078141978827353900956902995795237392912037638820947163904356628672919768680443825287814095921951503865672118009928343149304747388028355078142845413075706107017405552647828057906017925798919896234782466702351892507128294596400028796858040810083366476008766957319836680663975803412267479970538251822160216717538522346748717850675070291943549640056269547276913929772637308769758895111854732164725714317263541712909104576618713206149143876808745957886701546119538644289469407904809319511221859214598070604986738533172439800965411670404100758788799297792286571932305178204676105611162334426513506953851839151041499280491922846039329841498727359866947513922796918285230199414717050100674599428229444993991365151564690432361155037977082491499446088761874780812094162931212036767052156078590412259897917311500817815346662421159238012748322754731329948562249933358328399676481468196021228506146929119887309323798234325515787254596108899421418640001262928020244211009865664242853175613716548605789971298626565558644152884043255388414496870909527442816175115898308938358209111468112997294032466430845521099236136283545761553502698777507352432510576497436648543170168171390117080383904627939366085488413489011837582604241174686018360167609976263882782141602881903046540112868689015759330151932029137692687216173785685152709942934160058709757538812682191683852025129629734126357896186900461219251520497121132059725069274371144139964672837962377810515312948789856994994489520176273788170905658593873092707473747126052980642542796571500298234841119561707395339381073080868258413298677168943478092153676496287398164250874772196563416780018501421502488361066679080175268540424911314572388610369387059377129773385813211870942499675286992970680178031437072308727137417561618438664039218256239425265021327603763137962384040185031981227256130594779296151517254729652424608945384594020672935137692240621178413662667408277685698844486842567561448563135242522342471369342021328887841272901809588477293568678758852047133894558434600198011795576633542975536357217965640662294143282649828749404358100465596101988289000210393510779097848967173447350722107645546526183408453853997021835825357918563644898841167409606642181414613835976982400032065412665381573322706660913443954611886964019165528441843899848988476154562236536333505375623582594421012442432964898293689584109108053316450583264635049656271131595933281258829438451763747017560218521676843173593629775338558875153111905928973582536204886123404273590067234738030030668808788018447950821920797366537670912406948116808008659022718131173609923386321903687239435833041066156222292557111965103345521859988402163812670566299910142869336847032855831301644012518930868325133727758105844300513114532388606436483333740490490301615490731177093087241755561995825076570918626040228771816361169665688468544242469361890719867460780734647159351090899049788045072541340635660704618427491842873707860755355318685797075920681572724737746486624144286010567754824093478162474473765648381500657836715601648391970053943179412688402871866602019756197518496959157050896444855381760283420117901484845859358033065902739631176833949220320212282929465417383889992857874983421992360532802370409873824392137558709490752281499606097153459008881855708204320814550152163269286260436173640191977581406736259268373038497317502587498449039674271764545684503648584276062200874231550807833339881095519079371895053219999653744533699191293259406545489276100688594499656962446895366012449295509568891494571704843687495017666241473102999209439110003835993365661981203773323333643101528018376269548289842925663675083343540752259316386875456457625456466168330765693213437202546346679269520652745045351493995077965412441093194507805281289879617563104231145651787181719747243675117408392315780905399338454227676012074171979514426299627200648929228388459189824604370226835120300062300058889462581046500289292853252930688145821547555026039732353318210766627279541086850781281082220490811261277066173277326905242435260137141265308917678911783843215912089871191125057765373186919103129663505517773798657453181279306400892294255792664427529198630110856909045713986367038244798451346709659954518104620403057445757330710277129602882275287660867051250262440560545065737100421129425512813883774495932479397619087188535876715264972840443710827555741345199206796221617196164934860169910848863000352919570230053664581417605369655341537431711961785980504699659735311089280757912653026194623754987406213658927427773439462742340109094663243125513391133765900630504310258593139960336955385513975279968168695423113065553170480840421875841368718900005949551424316019849935294512170114870315333990483365305726541355793755094708096760241574922910781414446404310391120361034932539872076347414455074256204065996040319215939975954097328034973666665596097310968002107224965028156734690324230739790930760946978743475033371664394989163144706728159351386880402633534646432861034647180842780082352305909236189173457297499019391610638832975074027848288566705694712551330849089840623982357405827093398124079414662192456163677089693003285247978619623998650888354827401806369112772925642374743620955588345373966305812468325005256122525749978932962356439934683594840048224635858998703939049571764585174175555485335857286832956784664474835958832606817481943585630955464616949971671547106399972045469595892050503525231092106898943247466929776592360099603692270532528154066888014915974120701249092009257308988929802460073707729968093739886565114193719435818425966739575683006068850407209828386225100657308832185171166423812967322415096284595038627744222736392774063914403699256952525178473970340651657625893584114979734329524915580269693402068026695136805171340143603800242134045541518233248573194870130951191420913085186144890946380526493691953689851885064381329811849540549772985094219940349750676416140041558724318804636261744388594951959223340935586444900458725743209241297028343740255362470759099279680265700039176674542656076341723591662916191433045246728543285732838084908197685036411822171972953414906226026001791863234635603497471198812503014799956761283786859776867007015401565911393466404077042796157198697682332280471458450792242942359577993833252635258851332171127098281463371207199882058727937770809207440250703544182444117279207411088600589576729148374160318896631286944451961228780899890273875382430907455090083274515669493862676287585771736188036376217887066377512212229267001185300911834402893873031230153043994960802235507085953156345822616049154988177217907647429349151600581653746428689204892402687726272448661451155036311628544770289757855763760572967637803720630382013318959375939529394437945625455208084088807139640058821987948890446676025090910261854735559376986215520536933433415382597695380812967715786002447255519964684205220514358373863954830247307558806564202816173230009434601420610522564362359742766861835575010393191586033393368716151239898079500622987184194651547181234652389169251447261701048600073339209669203461781325323044328181583971279476964671046316858308384651390645611594401117221577428667239030525087437464812953034097604284825328675311486247675595671677522024111412375211020240674653759646252193763904167062375748769541015165544463012239963128589752239226901703259305844999969522903302831915380046602277650575594699313871677199901634121387034576104148570821395353815427332743682827132808306565266363743001544271170174007681184592939745610543362713634149253698583520313487023702465698306309698677259665993261118651993204014037365464403099313737254629133724013857249323450309937463052326821875655371356944895152024409395412833690955599243635590797313578999973387584909291753203901870845518674515515488362246843177223521588515251342731473650674235223455112200085623501153307833642912888313067018883400350529070756201751813880253116813282373561474669675905851358914621441175966957477240992527573600439819074793931894775936940942336173675907402808302726133390276820020919786570857937326952982096354298382135271574482770460438685828350566865937106288409664794211269661624302461544867021503373495652297934939111483392631344285624539450700459613677007197025114271250810275855604708182508066819170173984362770873411962560657415974096623054964734315137762319616313749773271476933631811141248079374361117792851573058408897526968921525464779123533349628930622886613845851181474110307669250508868548274191166849371795105772705323025215937746810862690513663730989967422658712460062769499009710719322250629516926455341296879531033517578146865606530410971373915518740930252756814309807747225078017553131256990164319823936723623151706232901038019421604755497567305826993186223766656196119513110066717516572962001555645088752109882463447023166668940148250730916189018276342093027240148973572218033714769178915196466520135151265428790119290511652038600683375963427096581167555155877238299603051270936233464229071229530953329619898322776336247245225337101809676002468133392072690895778400941426707063388397359594868575662843373302699441378820452228449326616136614378682195895192299723331090321936634533849869498559844595746783100841637399972421928580971500223804307930702702680520954403783355399193229636407709688517805603581099229609404347989285463211698527396789669573230147411824844777310973173265877459477559355243389067698365296501465900961333645429473696297904707567199633255845453950693906631501450024103060237033087384814950690911338568312488422711809096148370311858476191542874031018149018303175159386439602096508172625654824431669947623114691220389492673355719422030589566509012009206489166435054885062091838880985980787959496560782753197748856618687202410352573879406022792147698847830728603648906714113730381185507331447950918384954650125399282913844628622025352063681414579436684195556367564092627116238798116340769486709261182369538464524495645090707867607814878286653930068530156241225177852396908737283631394343340130928203194414012581953615041494076711887671349026028838943742941480835485874856871696018786645715393584735146189832949644606128930055756754736053562496192496406649134468518441088002276209517061256152919342148626890111346731660572888888674289702833666021243318406367027206430665029564146863712734711147788940144452010786226614303076022870619053857274097739818279239476759363168865674346213646789535217854043415139359302863383697887091442712245983790524137908933757976211225133472877509922247812026595981929887905119181014423244038754106411089125321915574731203439120121629754020875514035553254814009207297206536417649980463887257933942463351102557049201013833057760499680442552695768460239312242212090896025035407102168423316320781700264584371661728074211902859320017855801093005857283114097490344171443487836118758704016939397078840761533928795056746514997194044210256893921273928876732985821749300176889786304023024968467724022858769561397853571192464643377164899314564718217796164779056509834696791971895663816280993061756261955501143816272347439985026092277418059478896331578543723733442019437335268686893859011884314472392659929870818580960552378956498043705853003202328487714524465790646722080886842273167462682353195056862701013020605497274861999052063833329482325207103686633652423873479312887190931471341651123695290997208134003531762525104815544075712924109172098161326111487704759826097485436689853592834630225724795498021312783345980243261717307731830312239375558884171959058838421613615817952739315383826658008326327534151128784427680235943143951303525367412312442951280460700218321968563960769552717277105491504214846995834611847111248021145277356900217488140377856740113776515053021433690678889729581288822168807095643089332862391948552525856807732088585268614113132223232081974784761005230855128883565082393963417943239332760884923056146051890624215908895553247648896530982579457425614216964830524997087195913566593850783655999051739204095212202642221573468659812064739537770891474570259414813052057475695255142870724937745563110587895243334620403947581815556981998759601258003366457485004816659451635329504149543525906416839328589346170272751091955738701282452137559184734083798974480454266451167193304831664621274186706890101058343722610426960646165845629509156885138450477516020278185349300683333577547116160195266981650857762892240000991413450256887669691721261541398607058605070034794545020198362899628123427454141997422636155073946320020841470085045362412329799924428256198267678090640597368833514484309094070207239560418723395875182671234652525177752925966256807119352553281507487293236612605031547653624414235856699461707980831307823758368854993954246544770959132594979269992627396669810484905632756605431302281178525572768348819447105105805793064075845201890338105347460525095316540739255698134075797704103093683874371724220564583201429813023704800292411577566196187950411420008262131597260073601816953786379802970338320732341799391867026612412556680502274373042017242401035918724853183354943435222473171283221214727592835325422863528922247795556466971176770095643414393143348997607721150678813100667894747581586150377763083522433217027108667315793677852913410585487233025786908639034455057006629921297672553104134818879869736697905647706222129567831812949762084574780264283066567876085917402280639107940496811165623769086215223395719751240996283064906228499742886500035272242233504059341923200036210620894174356661030580082217655505594901330228542146076399626662554369986870002703122262357975908256015725529136386341504271661559658522191715436427900258850675311043583649280156484707489637015149922091277284464381185353142987191278561018484607507522055974519891023986095127820553971929740786930013819400139556811487866203101016778533477306360967956783543995406768600136305953664198449987982164608565423217490370626341657674744039900913839092787474673627633424843793846748748655405716250607097604328037672220147663403402001957569053241326567343022221512915288254562993650243777735563631763618602539696280778780225111418606631780656626176829243296776279998473116631936039825954615134280061038336688248927908047717631292430609116185172277433017833660621307400525257213859633669558097753959431627548568991319219220285764578713107289526775353845744581195182186053026024407087194895792312243262726041949104480817693814190284833771635263339855805892973035547913919727948962753058314743885258198629427746478765078204195362467503310766334182257500203818538771850570011688088814733583873271023757020232160797981208020995785394493676006422037092867205187084527947873946316578659828406041491499510564607838774116549390786768623512511906197538131267270912842360002239866706690599889879112071146979077919936473446728924911182886136323732413030031855556799630940161189717588764074738428304912233182528971814124192657199238266098289953358837980025372810790629821469146685474985088891369491709986301654509610006292521494331196439040825527259309496790616340662623621617539430982444049871117352249571276992944466259917237343883634869514286126812977025137115414601127075175750000028121866357516272790135520701620921723674936219401299362805025231219731423883752446539616265163317512824622606234884510704772069466384871153904285430832875950940280926498232551274925980613989565856312481322899762648172134263468023357732430355052667575010459179509879712282975897506958883689819658393746285308891676825120406744231286386831600026744166297117596286048411399587833859066382541124329156467949792740255672372391049402519070296440295379455741392117648890522399717094793694214612007728725789050630657241423804901542406420871231627494333732811324326000027751971881231194272547231678938589395905537074768060589466606414453823759092738437459667922503935407542971597344632419880136256006589028627397471871551757371859189873537152458768740031361309795782983856179649026579682527653646031154580522573504225696385792112382890220716253457087655932071329754364152297684011681865434360235415713468461217229435922246674103162885458213476957631744039123640751761542966327503721738073277692669986974227319857826991275786746315187146809172506230502977845606013778817207322216225953805353302428548619401343735977388456430880987350206975538818251937418209464599468347243091666065913596704441935932689229353311691294901821964196649549718780256508045402763107453372148103921882517624005798828973590783887570536130867106431717860848794271881198975747167783750243138697263963781172652433130695598107244697524680526679139792109529385226430680018006908395688688521830170432719910773705927398192898858202150375157815473038400419652390939877368507561251822453450525901913879236720027279481295850127223663224334732559787800252277474302317914958694472561891722403233127125416919804424285410859147971581550759559931696900508272104846284699803314924486010648701621779616790941978996046106473028746375498254666635413384890517356749344115558369817600682309019145778951761983994605294875472127116898026004443950936872982848380765825205925814799810793742508021961387537380359433411727634538693299144604367016861550263107080711590721226464175247621552577703889924785986001472395293325174832758623613984197716470794397943778905997614483731547716739364319706209885542216332962991264911723644956304176422865472255759841442268514770799029140704958148007077257832619171764639484633869632624975145971442588425909192249612972281105513967793836744647088753357501207937707078089644824410959349309783669171951959148848466447236551878640848079886717274045991936948397141050011644425284411060411205726359838972888702958979546630654105700126448146280134926376764866993190661276773367798049452611758080198883189653465225861707595351649035867697947530171178339276105753100512862548266719038443844787205954616951376886820780430119709429144480784301309006372505884827736330308830119860031296923465304496603248459253495841522853948987912896696914999860487137924550249691416948893023433094870002318573404080024860595425294476886432641230286355954049925640094901601183052156617842123693412018724316591903551506497425898931576408060764700714239379845572900249334297787048272646126454783551658606791546692112651462726142352524676098329772019987538711101659249988909574547507370708297593739391290525662480093286865907961819388874949049869547595247705035385407334597577800280192899469705158382158580123066817569137649652482299717857736081556443254673160235938663886408936089995429022949716921747309517782989775165729242093482913324494539389260420173602234703565919558801416545579344895556404437796765153042703488119235322372440850955477924994051524017642560558017497976466586131491238534386203716942368836868373579873753386469990665872112164640976216374915210379307315979336908160094450579476026590952831943158216152949408250970011827995561060127160972272012020246717515554483809121379971674285373448048654884521733201182264151692989905091048667264292858834444552409392223530598474118902071545656757635178614357654676164253353047119552451729197238069016393247476039044394564792191741034888540917269631148885441770879190896461034812930062011079015660879169326062357077264949529334834791692323880946539777986793698976730608500073830673723288117849317352874797742230931147535253896240138893943525772098023620475834409340813775358113244910064859843516458514727434649023298079996268089954321728875534263188376896235259106837680646042279476196619013867074967049405592159024675114164533286537016151997340763100413171189697527043755302658437932025281309390045452749414187761276437209077472485399351512745597713450807425448889937713111550385668740625193792385209874316094848297048645086840246411220966567777047220579621334173962909055217942383214394935441884199422176846433834799695506539205158900273015600345988603838312928952640390046900336876514963403177800087948230648245279767714158052353751826167056749146162662057223470747281912546509525605560387965190312937100845694954337794320326200228532818957946248894903938346356739057294464874439652795092216424789758756930173403691669673753908666095160202498185818526884710238488989163311515689767346542643183829429699401966816516937231226203063755194108342866216296709975480058906919762713481183655101748753912728814603251213096586837285266167515136422328606782110627000105117224682867447157894911727836755146277562703391047577489298598916981824053754449557028448380408766989463295841075239805525199864837784559971905794502204407694978317621237751925987990390633036749160403641580756317626411615565350857393533113561832392158045681672064357064572118399937253884613243137488898329467156609732776415154091281312553286176680597081335276651617025071064202383203903631976863974214202427219344053378483350439596987050511968349710622735714492923330918960704805285661443636673897663050796878947736001444814390271959361291316146637987120300528289561409602965797038765972127981817091818209206898642428416557520238182349105700896353869725543179045841695359300198281040460793364075934403611649058567437961590328948239926192114902092286033661951539276121901047154159280838761663099586095256640274490030659396760598566737578750597042151621167096205670153438476568618941299427634794242166269500029057454961836529643343325300096779920769731146970693712776211752437192776459371882557366816114903998503813877879851539771939988141273973896165549225737731156488229647092875945101584756482870679649849347864951565264240051965718138588020647547514248970399106430395022938632007887765438685463161629545732093638238206803561862810439226985438959479510647217940980877133994603890308827728755051931497364533873409210976880665709694368497657706917338744508879587151588996384516986619010666818287573396955764502475962427286731555300851227890605485060347099747575923460332827364592816025152875951392330387139768172606115577728427587231546743098643317824993806622000470397552955494917832658799222054387509561284515544684981752416371032730285589493344942413950596698411865343351273687611505615151381507754014540326379456361322468495559200064349796746787991444396568372798337852993886694234687309238438517050676685940868614995214901816565414468236798527083186081768339045485088909643196918668265803286503422954191177485114064123322729862313308337650779290520204342619370463696549941061457488956266207567408364673953213215431600910983578861497482081694299486838091863485616229594324773925225196020319470640989217864082127048248593499964293160267676907009298959140008381387954768637269446858823520308135527359585727034980282723117223053621945024305000114822592803002684739123770893047150748418290256136065283080759804026954836743291509191886801914180662316718802519812629787649824580448480031163799064058084957202509956155728850316469941889127362013169111810090300667172208106034806339179822116241132695189000002626223289327458295626959055679623666765854710261412266284610816468913066489328918677188924820078039552161774876873475177092752818101008343830459588533448659778622147510499896650504191400846734489649076082230714447980372280605436264543604322288076351926850855918767989440709803596305071045618943370031465075352120988819286422101301592113212184515723732271803521614675341222560826534182068707825836153443448437202271001912330739485222709557817503467258233560012684057755874285890588961697930121230289894248103395324020688337218695689286631325485941308032683989625568226397350030439331955535855802512410147450115795451557749830985653804895963324873211386392291405588668245880159226236444919714803885910135684893888213450891319150009298677075044895617228421514476425088788611111708165496958902678144952513650642681764662666517706675759585001981293383547354201396597667973265817483168866909060221686903446942819460715513354210699430906910186327081824509121018983570057844468991377031457294329260102747732548589573146286176194502832647410924651633039740215749612528954670089668170193898866892179369408976854272278487485201154435721016074510856905864300841667060484683820621574627063257600466048258341961455886604530980389877557980530592917694557116258060673315309733228158519237319006726616640045914513186368116705217164171316672127005685860719165585004907327165285910865977069363203674028668893293590979910721986656350148282019840791993033406648651053695847904381391775850213374253660304827736200097669992918493530677536480980444041930588288791565478600918912941305580340606608890566524738758793706900354988977903207995562542219909998668731369903397162660425338577422680090462820241725242680683798382313852560010744121309953868170851901408362583475413754873859723351648098959788264912185731559690818682666099674539351172206297575656903984331914972045638340021735057484008856839238297304591577363816424214375164890747400291665602531867809599782574528287763709400607371471274942936351839506362130049110148257115104930154567059676822687893019020187762280280270190782646772399314709537045206918319011685651406504050367664416400864454644976320762002860463500140484499635309680616099180999783303905157153816948331121064065390315976230193674937218560709486540388728402405717251265715766193388654970796407615316938756862445854462861323642119915008379138572673809994211052038942935754877529643012962146950780057768447594634288183992963847072162642021800862729986889216940318373829786889939982718553877411778919164147796208735588460550886748520565362757160478014728397151216137910578090112841187240174869087640848058966263804881424091858742537328615951722458325745446661826624491895189564255767266963754831840386206794010627227665964216680078503600425921108628535793078245400168295494697589171410902377082361349215031038353853334075551083659865167117251283936337354604618084249445733198085935623207311050512339082955201254256278779770318206616980754472178116291795477788120961672321559829779160914918386366501774663724925203892653971047709762868559589546381471333908135099861723665012238711687158708377604667198622116398489297516105182595260544381549019908805974401166353715381184809250927450589387600302584777658786866136821830203336974041095867327098751376076899409655653354983627960325252307128469676897290936063559052175944625161239659699464615977671377414053114921227132867957924257118224185942370667907010473125446918679440730747689387040058521818978523253683114145864711701748988060183352802833943934655402014384287411018335376387682722210567620397447550914994361640501818149227356859580602949367798246282138418961646091514743405439213719177300907570247912706478232739221484925277357589811441685405715570510195470189392159567624369834857226407397310552563310184068653875711693105300597142577960184545497400548898810543852822781054737632982190012591855494884963616061478433161629850918596408183317937469488673395966531344430213240535990574163015550236408571183434211453482225259178023517628456981901411595519804061608758456288545045503978543496046256858221668497123078742189682504511370249288570883174689535670014682201410490275757967483245494407769429327345729513654529981891294795338062037252051631220992360726694317245860062506554363446532392155792584098928169587994990795285175903948413140631394953046972293853813925626725578089963331008161445483032367997271190244784720342765392656229279962486905942369555806263204301218755768614735705129799476260960373680640539881280106937712234659507166348153683053269239984264496360723608450910909837410582155759384845439411387447142010013353879386867347306946995753503173184387311280522273696462941316497093461071653223617837259180438254532578833838327794671666646257598856238923874543803068804490083003245395799297500866754161561946184914267467823877546130274142336571807166539793636899274081014171770568794720892388844995137880163781279002729882191433149026738569121614752581209158356626660469947069578657078153080313435809048037390310390996118198397466341822872520472470488565049445148761325545242996961398929577561665686747299914157624153345685356739409211409237090390386980790277569862572858802564308682431714837074394507321435899932524321722572415918830460067611613464519768419739769450907675569191177370888727916150971078630744056133624274405449753857810071418710018677143398779002402333521984224863324174894231194850126439174761086341676072945707452783147834347022368510778126359627848192755463746437000278117830572952292987189295374834441898752812362727974583200855803897481280947801582290668151682115362136059908059388367312814163524860657006350975061300927401944459216560473272487756032138691626950852887034100762110768566912559411959431060373004925279447960374411284110996056489131632304941896467594275153798572201618727833745747933488288096727277961427076029267812720920347772652922863083592572826131028614565739939329494652443303297035377219850728539136686057560280146549405599984250388779562283441822895725470348520838689090935641265722543451216773263720344478033732118791861038797596151624536989787477725952245979705884602958319778856164023329196174175398174046373864241225501556618388243890895417428548772522502090238732151337274991145562911024070268562252067325280938650753296185062273320147542652164596065244685278013727750286897551582861949355046876925013935178920773678388489884396348846232507575330742543837158938296975526144058043529786838611769527468694535262830905052549838204921700676533775353058073992076806132784448290146099351135082946525152555996657067484396753659749028878968107829444222267149548346670104231439293646513564333861882021630692939617341358613082956174036141774255022735215904321470078242157384399534832710548158504941517192042013262916403426547287924422427941956080312947846587413751188278853284294812273378230661102419504729658622782738334982546341673599466376673080391563834058115104774304287796093786031932278310259674032404706540664864604871250917044433399493240799060150462452577711932263056696157052782609937592609417975115335172933974338049570178666708864529095819507795002402139764401469296533198118862803816042696999897265796812653928544617745747004310148657747256323439942471362508146416998171644811342266078656221650214339606172054394036839779521115717523207605693407274301489544230142625671154342441490555383369985435361512273836650820738638569220242150884732768742711405523737927318531780785067715728300565277122880868030027421727237113540175137088278476647101479151145349296580997987486576350922872595219863096896959687080412246124104866333529058280373178049218409888925969393877312083706815017943086518435586581536026464776867844060189734344461261966312981435077757752944608048361991303366073487390067080126742587410842646044826192526934372979860432983360221990070165827252240519523625686925927095986175650026416380320606845028099800008197748945399304766984614450474098993423616942576257789411296737921559731547945454636645380671178500878648268314941106098575445935894012060548916651421318395346238218560525736816680740192981537413445722510822619820798508722307655095815169730735438161360955885976794349289650861242406997612975349647184552464748317421068150007001481294967782776815042743676031344367474123006497256463757213468216015095411364101849264456883835790956861969712439459228457621900485577794159976055621633140634162159821498714441038117206527644055308488908277496049236811327964188033508686940318036256384971431360358380111066133859307678258502015449396880808994152659647588612562643760648452169656640244995536414694006957349405107829375687958770058986732069772645467173709451082303052525506491575262592365644425318463953917899874915964724465560859776698334912264616293777338781742503967608881419811470269292573818140170549806153214505822794357472050259816496866941347013606716661414441160928863318878826813147023169986662920758507757538430359825268091156487641495020177735889818295828345609539310642709628293170885993779148687351080569365852696065633368798381945118399130323727934593867427106617243165980377226717548039521356230598184455472195673190481609120628116851192472421432616760375235596292661107509167261020277366059772442949245665444076675272231515008952937297194981258262280525282734655737720708849697718014534140875237213660654335574211341088470690832838225952439658674277552565228192869782063840658756290222723592395441327943987536236926980643989283370727248927694154470897826136867379805145679959180630167137959013139223445819310098458089669088267738938289708565509999294914557203678294947214035275955961783425131053436620857454844557371450788899298077388598018790789441661541007813054430487762227746057066141184982141401407755022181030628154596543684635100615426584541687205557474159649307747192735077727062534933474956172081778555799870603569878935322176471235048672621952590812440633245032826551742446099438675990825845639407067438893473557182054964882289953234600286347280348407971110222522719436500675809045372170588316266676019795875416915429917531955210839777377215461980577310687286691435042549945625530166737002663576938971554747619504485868960551393856550767092311634875207114961217069485306884824308458109293854840460049752738380670697404900662939788097699616026093119091939326106802784149697543215445152237917835905618516739735296387879021421951109428603722961237880897787062422636798189167375485178751912815886041076685358788509264125565741976548125605839614471376129800193867205099037329519503188974991335204879249366691072257692327797589297739870124394964165239160167347202993852826636888525564801313636096106918952057149663033570515888025096393838757885468912305570490461224512730047258802400025780715698697038824169476969499594202933061207930482780937341867300484685952384983923826646848522773077599373577293918986324991732574013776183525316785080494358953148668261291810442542220736082561896930909908306693709122825660963420798137921840028253563430304550298589418056848432490066772065709172256036929020884031203041268925139055528617436196447620168009204352309130112207813476300113466873020774816273497055594569093928004780356269279687500983318235249254740170614726826463684057136185306435079874246716771636837313264912045961825220563937056909853166077689520130638090060783689924000678590827027546151253104910245581819321740212373846340963983804795408705763153733535854065928054687176789859364120322995713446100873554954019680545230841392723359695455469312827812539751416127914543038528433080951936276731394214521147331769932681508279876089832853542648005987386692169926594257925678129506060708411711419484156023123097071547409916278609643784779921118177496842016474094238745576300785859128262009180462740970178289497651981735266985568479175317109039155430828025776024092050546859100453571405019112845779035875388993958658938259685897204496607970602072484276185647073949735433227731361108968654190277039477351320577878501273715912473338637206122601580856174242585144172850876786893755612590442025890092890822114684868431285213561642058722754430041976016612400132330899187849115735228532856741555872354540624267771813195733536994466557299472653092439096752796602902606429616850727452205970970162792735583093083111481890414620542749463407039182480803294722142527323101112533201121143673732273463547477516552897295712568252908962076094184982181503362999503386804499929377445469980113416525007884102929897154925586623246951248509896509446004188330243183646069863796876854642588976944303710166088773013533865096013665717779470531651390426603380387382916804713771583676449954519618043215040732310126338477045830296794376415830611409004376265402865361586701622703385852160872850759265884858439824742194321121247745288045173461431528425329530647258449394654955431513763080484237229606780143467950667586207427145906692527643870127939749847257416409199373981128159510264075749991383785734996612538944400191067720513375527954300446621217970405645327169016294122903928514304457061217834437979174911331102206163414259425153190105094094887694184166613498312326686635680613621585576437190453952846197234064343904936034027730994460696684935018030609440742434710762849106911440688915112871217605561849078315497935811885783684176326187589660949786229458381929806416887520555554116497900911238239055719258142892971087069932176923745948982502468844267248371463058889721155138763535274334975455846215012359961970819155456518864339996397445226653719800828357333239689668991944329515622941435771466146227524109435461129360121231575928504273820830879166850753358889655865971555921265118871361043145100661347070574726138638725353373414208633858190854007712365652264673294740581501238088678441455558933097809672211027312345118298865865478628705602470308542383936495850761771542382798438230342526097775576075979525441976902510398752670803192702959790406839278269946343627106964763001721552667778104084786156432932995289394630260987907788615171883353963452552773701888158615773614099676159255131592745181339407217470962187251893012042125500078009716740856733499986306925194469044008302170730743297108188541966679716450322172778660532618238447906105122194453823474456161979344961270043455767039086492561156838370294746966959483016711842373993246122016715276929948367056975552906795688430592850390679446267950809834644076427336391114340122777625101072903528043888582559813885072308461623083693887830491578567558990410541295830005277656252908224272670440095745296609035680821311682630664391625468676110884269288623148304015247135156817287743505601854325207884631247514159306602114562342820927514875435266685411424046603324747219458328094562467535428062009087204020451339790681677167251139453935699117982853379641156603544833492457018792296071824532898144067906572158297356510636589742160012133610541403264943205473202490902321018098782641925236824341149913198006455747779067054486333221581824199953396515878581940456025541169365770545538246172816656390997167707610794604239823393604875509572279275216810213660754904671028134858507617607019449172831848975166818292109933892438697288736492505004827055279729629095490534095751101356435303524998531201500899795170744313075639733092877303800764834945709619278519248448018873643635259396367926669173035132888753652562335383513264860644380363831122357640712847412476811224028474217289945117664723021228975007032752028073974369040600316469145249470696858667524879422994768319970266905586629045634213466723762873519610960326453228883649166315536413156198933763853373517586266950413558370977175136581542077740222969119045120574409268183856623214459206775942518907802787651888163077575633114968232566469248751286162258777142170013189603935362993726816616837887763906500328544622260264497273046370587013949039344001151329624212354036759122781301806737438205692545800802698941245270269316942481886591036517189283308649069859754558379788260113942112162947246221885647435148633129223155690946635350847436617741472091281578506725825820128023075193640731543471883888507681669856003619343138291850697565700335868431031099015479425575122559215437212575722369426477472443421763703534755484992398495833548303866148197332268950806656327060982087392246610500798508725064669949903251325291477812914064615569001679757946377553570174093285893458608583499832177801214691197483793180017276197007509887188306482999156917785663622745840724905006996086153101000804716075722892502417144883594100054958341393042834929919222676125412587976589291617521281619204167092265492325958442858555345201371998402815792013762644429975979695537407254365166378770901849000884844466643979568511853057705007628169368081418906770501201562689177076670553560028022378537433753912777429507726167230332170965772059552608600842708751570437603599514575939881043599127651750269765177549136760001894019216424280244676989471493332934305145383020575878367328477208902048798352864533159706337213541002711374571067101491254273734690086647073992070588138066459101768417387382287005465131664110943545542809566172091025921448262309513039253158724487822111190581294772045312928291826249744796361346464460048176694939989530851955895021165807485614401864885633431104213616152289346390146757945778645314446767119888832187722500479417810170760670258542184166424973545677455641906938106333760332612647290557082037330817163140492449255437882873326323050755033910875806307057160253868194038572460693528281805815061058818155845729225966845465240758887972135675698864094307631196032809500336685674439956270549666720486787263324141987984950529261657755270432414881341357781130668040944871185436981768307233388111302952588304837565454323221351544341640209362975751988750476384940485609544222976818270668403881541731152675974899209179196201545890388676705637550087402322256899927983330835504667198704908725088832102575085715928034196931903536862163033606205239016815136765962582481247700776704808552354214336716074775483207581460207172526639253613633491665278335667791553371414233729009048942938257928716630515721720748709464462882104630719441897520482805496189035019483805906981678320212440662446984353586168309556714363574130711892465689836360550935175210644261542191697793788045496029257051426085684586070581938500867234547336804843947243545949012619701720808172337177784990355450406413019048560736818861191330853419035293931008248124647419346159600417627095012799350510382232359258598191272041104060345063288782622966448312120770535648458893982655046682759487785188609168386079233867904498290301378804291194108234076242373465394461705284236614072661553698032565122317454992989581234731804775729696995674433680529905988193948948029473110257068189804526387532743116504822042093927869613990910694452637008598194018493120756449940413944540413012681128170968491057871703348578171448791780140197114549835536527244675537389758731894787983603461415978679346915648241398993255907834354828614070997082272778246768325606284171389987383506605834676770804687454559477999932493648442180727439190775262956151148248516482310000448861148511488079318198071818311177435780326499067201107739407394591670538325533577271925114423428194446627732185613565147919922970761954911638584657458895815531052586076355305751164017262053909402796266128085678621319580977519550863421420956740209372049248629837423749895172842353011394937857397019841503988868679414058646502873734797768909842073936968373645224811595076523688077692763999899330223532600376004252221681670486068055611109928256817696234733833223101711303514402530156630308050647735729395884027718960074504734551099174624409524117433479644946142105378345633616332104914834429081589530465256663571079337543276620656348820710359343388897043563375467476239950116960109015771820333767154604203018265308112074488150042376543468467085661120131772024803945957895110270333053122158658162518260232032986950525098167568799826534585571404491532159834264190201807650906520269558675605977426899330897213728155927946109945713500117929637058028017157351326918230631691669268769742603743034437516177495534922428589570581148586111973971830208738113953002242187766136081761790966809052121587339955023685538966964398370258037429647077208968031747590449274445400526219940376496703408217168496571386578038158710166290405883839416688701124804564144905483499959337850592341972700401552901327854261984362842708582825648433797804281014004596467064957047078952350651325949460200004352813808936001537078566236642528001811708181183893640167834245263865165696620607181101590805064494376463481699290259714228162054033636812494648310302762222035570575835238497345482385540807119671263881297997465015541787547805496883732183386441206863966110616777781295806975837278592389813664706749010375391727198254701949112941553218327431149478827844916315023015250287862472206854737561116009332405241943610913577682218697482695408635441542133434616319829827173706993384739487448997716538534972654286581387753401019161747962015063188955539067398999626846983682041517449459708480400464413825884624974826306240524478304966716171289519180100452508411212576301927727839989295561013077292244981442992386419099370013513889579510183268310417059206739404312980736780151917974318387676074378237527128759467562730435222442222486674044439787723855026073499301171681791486936819736416338182817938893361725575632561662607881301507322587135055404041716213988383594864006481186669071465288949567575541427750321670583984748097004987067058701320875077160563648532947112342554868515990043013029334092952425818738239991990209647080644031015758757394986805532534933857617440506645613672085797788667894285537913499520772946001667586924647957555980723879321911351658898344880821339550572020494236193939023241940545375321149735936706088814511031223681448532140236436548324258936660208256747335633737642334193897248277570005297285671699969974922824125044541120366811455950437073498996852609506989242854163417023362626387025269461388773377800212021304268376129442043538228626036837460375749103084816929071212089578173418690708129817616908088765257199184181295153684752245630917474937343008725842577331664884287096097022080010403697971244345638107259110797347489063724658412834422027191551213330693360522556009035150442494002418719467002050741726090164190647487179842155797909203286810090650574053820563645969317917683559635478574991357349681747399495915813323154888067981858115678362528634073761232102411887828181397183624380483845021772424058235157610175188944819233823201298493328571585400393527919558772053019412784368535766137288074626225386069754014454359786127283060869004901535714638692750904807146829723712562079195121365065343168304811690235376549519682883798359773301591807814801782537739025922420187610028705809005203527115221517800792890570357173146419418034816903847223300234334501903761805244163453356736642115892319111275091839213375350403580199062081626896635092191849307259388828051641358364642151560015350235299820856458661402646286312970688335055498514563675558949538914958760317005041532578178993280797877222810185521945680184507341568604737371810832449581418048291855565067511562599903497335184800186198772463622025027770233322010205004401280780301568965752828309361678935565201464789760903901725034692552550853187982149014649658271269356725031802187482511375817902505285327856599441276973808601764083325587970966876454416885424568500704579935435632143988816359794821201858483243163712003624437673382969899645827355150846598267005978368832120092408143588516054446525395107307239113627073319865760506122562998837660637345814613409602302072038755189913256023002773780836544142838187644677884518419343473273474157905923734489506756081483587358955895486788560505207152800965489019060149070725850966162669674434174081227466603610062235143284391116814777845759188542932415862593487776047555559898150702855339528246671772035354581785266888804614483025189691551040009795475902495701423988222743299292955920393533538616341439269226149253200735622423135214686934491579857154721999483924923845348329391580261083103485830761279698769846036910120726027882376806556386053244051267916690158440295871500054968430977144214047581941198008465003658757955124778746671459039931756227275024718736880610017962773580073334237962664569681089166414229205474495962558599431200581775952265779802209875970276912327198521689379015390215353270800089801097786266283132983865444072341127413384165762965723817694134168634150687678794325324330907418447604931503836368534071802677490150881299190334476672627530700096718281406781543963202294033342327842657000193302441825084690494255701110356133566418101577465308312499701440910087256906497231579004938194456500298385943569528305411813259968155062966044478546183011104312758530988684367914646935282951828343238756120431372936225199306686371075608229387924848491146781524967273053016210948070900326845882651172601753106032754833985512169300119693897105917951320551142395995965681421971112319298260800683176433444118461505952977957726436106289805812125295592548260386530901022826402531721375030952913325483000739602092448439913660328287810071660628208277030293910702386416113943404856790620353191978747117027664979208673918637588350217434687270030496425664046229226358453704836571176098002718817795753385148797072046389208721203306150564426479107603419754909892759421081216757192222911239345936522019594387151533992432818633312497457629029532059408976367060927365834729769937051290709014648229563945994060995523455737292678652837809355953754695655459371007688970052532974042787333909030038859773492187027218983993797317064287845325840553490717420340314979746448378884554924343025258079474859735431577691552463662362143009807043006089700985851429875104879656009560459726733877194379628312076573566198718027812942879645212985017392907093336095658579772103664081905501919931209762634683111154575103711951096340178676076573885711305130720014553595930398747873364050670833255118225140131344004959861384674873959796769690510786734512768531847583389770810099639190495576292639436137976109571693736617911688501638245691879569571544478869617947265931680642917817013707557400804486426017295788252878041712017355771062213707934250002946317167045021558749395710266820363803475800661495620289338319282569783180352643651202815550414117714735527778851292839783501707088176613653411307077851903036284993231227573285911657655781349892325004702039881813460366378380007997604325498102499244477324698667712720273240612623956974359079893711353466666593877271801980332997329364979884819269926630642774052186297072020767246891153963560047041239575045518519630383700901204985175581891474320795827540569242814372748930845370549150962827271136857452941765596015695693114336444869053418021811988968054053699615604002664653189089810240125844498456249446067751362286621842972989043039448251852891140425815625989834634866468888303877777452551265290394760993110947469284422094051602083433821589158696974703858277851045980917767045585203062648376313793341079942357531486228183960076515093691708156392891253259857562017681612479591025461176275410432418496299278809680659609569003369239548678449970643687724972375621642104366944337231978449141439252792903549789271468994237997217481982664567983050618857954246346020467871014635971139948268142534751341537680000118472056013159890725682826824429694725351780099853871408500257370738208497463681010670087622905551050168115140914023979065221717955284276573522810221346368983211756776041526973043077374637927264640666385139320869966409256059186203490397092715898195876480460017624222863899994610196746987968229745852632296811067062388452854738674055172638875809807077646192179550267456831087009159762909629558889024526239893191727495210496357287139339630608387907662769538174829086449370508120412867933373330865639355075846478239240058945355931516425823327006232856704880978761849734941838929178635559596071089102895509114046725337275514696045273743503926770953000199636481179651691541590411081978397706859722036312173097748502036104245899457935455999823300512765399477708443845840096843732796125461279859148994966395646565232184573746218190053563513633502001824753324897488996599241486007361299159764845488804032438049365199201093081042611239223941058411731405637960781275255577288186802536891368539959338671136791603702560220383153647663627031043416549261086983218615953939295762794074290279588349465780304607557877219699097359052988004903985769181554557091089973042049787056651268914521578250941180708369617579948326943479871189485219403729094692562083618344360660896970214650107279858541796908652259003647632270244275131598629204997003319420279413321681232080150975630612095507637097964637758595010739447745606409947104786859777932912739410565993694400624947786472416463111883494837443494748549336980376107809274733268794253053873626901232593814596098199445568879344576220260896583386245052061680269081815605713938339839542762026457517294307522248999913206684597516047253112919985591308069931217772510502018203021718476480605046688052134050000766665727293042621484700784862412814264805083072355676406509786766635590821715947861211005796405719127182781956122391431414777593417870875174828914840700979946309203961413713599283553338212853257885412151503106173400189139012141252433410486825348896445043798600637711876516665552171507432082396000915626578801561234918912385184476773655319233994948580951896532476913026249440294417021628021763239493945664981257723148532137012074088678709009894802445299518009408417651278837890071459161783848811442525268937288224393859735469508533414783100447741460567522278357240517241820166229500914999641015457747178140297741422015657050337914298325127797937308133902711772322856254859451264852969313155221438649136171735439526633389825638381287575362986238759074890412710395484855247186644469057609979673978048724770234490909087568300729638657192494268421807956033522197170336416807660986264730741434909057491832902633403791747563934931774495844645943530073887321727279406754155500780775969201524362172327262105959799172026206485216916275947091386639094796628988231805394822913942533189971727101948195206259445181588036700441267777506862766740527654704347738628484468309686447305343886859315893893092131409668895885826488130455004158911911183084438799307688584636366778653867318518456106468368301748522567988457769223733527384772816453957549384825256233293584747214118971251558155016590214469120361513183383671988756958284599364407903161726091018578979577279355927012945695146864785536787416553702130715485922100578701420551617903527292480333626475306558732681857795679637611468685343746369206477816289338535346458783795468492592395932065808393731971632462626522096204819386373753706315032033566862493853975255149163331563734220964857785311323469191375922461463310295202557277035012181387670896970645855136705251857794079108631275070069106061947150403778681384340425399091523232378733672310946049729158026695024118179349004581391758169736271207982135517189921800102648572471383994818027057213798842028352870406346955863248229588400973143566286791399786856633357194143409599034777176350999541839591535422634624774777995730819046675905642360768551913336550565024184766511021329363420778265233206799601108254972541438591197107771611950883440741952477765313592701376564671123627869318878245147469475564095028255668794530107150407877569830852317316660269185462034312767626524765383330369990738722412672359061397865958114052892715689895097899577966896001103060113995502275901220158029952442937220675135889766407616838557767075068054559952773814084167699759115014324968746907352340871989600888158120750916887831996326303400699041825762635896995355232345087642042882777585579921906049041060384296975505884533771091667130829900526396905552689810706849635828916338613636347528375947160528112479904196842852681141022813433127382480801737122137904252198225473465763783174094093230141618135006433717984338042534691375938290590756573449230146273447726214494411206654668911393128308966436581095132106206062980479691682589031457790423389841572215069283813987912213039592827037984140598693748113962695199741634247577425574145058253380837085041433773726783423365770135018193789660100147275622486892385633117489653544503170159975304934794131839835843228011785598614208821615537872414216258776875043599069914576556847423788277312754463508695502086843012862216397434849634122612820244722890897895905759300535410586459713424059331249303892920662296000465595210411094071923097728139890380732872037731528932165785067147332126882646154027796836298923461805178848966451788948431866048080531295034700404909540268034113353195864279640579141189967901950651259211044838211921974583900746867384491362382078936008878057152576157652806253916852253459096431154206967207483149574560316192656065373298571705551148714054599924169318745786379404937332958287514834877820011310237769412498957053655076241129531680386036207265174467089723100847893087609755693511452762762490111850218949277324315951322655727704018829963075647682920232192862484087891788083728999401571848878703586860745463004078714295917655502684550216633317078144689270979954098695817383506573434104866629526618666338926787519044041080698560167462598810199320960006384679493074005796881473141594654505175541154932477475874907116519717917937066106901880675205812884632313582848060013232809918530437166454837947261732414154562964118686881611784377277220952838404980137486205081955339449378111989061416052445387032933070233112296056146372898809356175979473758774134816605915897715821078358950277465556530219545539102979211433681728677785295038346223906134206904017469924277339922276980207079370443690532308553091254131408335555886680272682413582773848555715774323043788686417407843789905783462668921853567883303729406463517687477553898157148074020572360573808147875001426711294404446968643068521105287174807281979311192341214475719659182491467979739860385621734735855440129137406562707091201177034484173344391401328523998461011489893901868272786869882963138309134146616894455460184313875897871382388650669003586880221575588733828073361263665713053493608146007166354864567309080658742614532380251697871018468017586755092252796783934849688580534511081971594378662990032829575983781442314835534168897439749032821610897160592253967252648578194239707797950649866418364799082725944804607466079296976528270437698537840873950930828202574193493028315095965343382883951243822596709034097542398693674394745745661033122735349025378273749797758326854474188292543737262477741280418576914589314174144864020050535117291513058507088276316575162327071109521420424731970659570213021778717711491587462876523108435609465785384727594209570311213262319052069556554300460758880414420355993713946634784390744535316293231521065343720252817547008549538821431830041124475219422665131370510481136084257021589752974655375127917779644812432867706661353849141433346482315387223454498520731927575017917079408410101646866470596920710332276065159142651695999737555717898610814236830215766859699561082761141751260419354066453095515998785517671260330917839838479811603656270465164502315356660447580422685086866671802335827132118018994309754214367524732097424287533736667535078070478054881163732703051787374022871994370127206758447731526712464166184465675821393866370424918875777822282865671312199198690262230815905222184090680551209665919739200592576223981923158575616736818913324915581855731384525004815291377115287155197293163962192409927087309135301764126274618314843197801520146968622068123205043370756571041505732352525579263441453988457128881227377749018545404372264092127129649274148911085154309659853788441441671216185494541423143764927692435836224057206887643190591714835697394492206693142096099504054799797735871826873143109216129482082512334846004959341284636225005131053538143574112487393386118490782698456394291728524299790856454702464651959489764925527448591932651501667137782907471400623021637456160702878813964730148585645456202702396996476650830922350317735766853452746729441569039414224980163253646767979634180611559102251025666336576466142368113450253727116846426731688440321880034754932465480520155725076817361592666316246548119233441097755288328103805213344501429300888283089247007743576830890943994637180567719692137240810031918996170827375484081471114453397596479571609486857044565599966855411060683048463891114750372677049390291524545038611401160080619350464594153856798854370376331076425698028115682276075987163926356071943477975054738838657448044441943904261922390449728220172904516720237747921421428226593689396903075976449544368636393535227313544236035305274953990250614534953512356208201921285470107336842113139501123233308784444971516614266977812984568532496596102157751905323959108535648325324367471651839615218399254507865650732921464764224040416908346755677956299036353643060710876100511256325052538532379604760626995141190564480756861536107694277538109331280565642716931507967729182563707574957889510757580388667538504417441708359225900202535389059141825683896791275004871056487250629801698588774628237017976976843674084757375892288489912641729686756680004952037968040067332407036978872394039579243107923722303290231978120211641662253812408715815908588995638029905705977734314499129563192423367786768787754486115297575069983256476379348884249527691990571791141297629335116621659191938174945143157151071242217169223463279325495727536105106804750115129416621332971116739304244094462459637399946518669380871360168184701643805542779145664872134797520152885009611895104155296130792342114692411077662826841631428836836666639834930112414597863155925048482039976163063901446738155543128635678704689538688804558488535613206799124669694607890644217155956836434996833896185016945603441209915807439723006659967276546878066665126247432179946239721661190701201379294402915542356755169783506789589300930164801197013229096547928565875516934606408557859127448719015094511626623282206737590306450665017975378827530032044153935916676872082094682959171742439594375071696670253208656655182867915681230439505027064588893753533084741296919820994342492448906824468390810274984296698236216192055099326886075712139853489435875379247316007475932831181871594613079840623042143797322362750203393373230569339359778886251287009526397810544893269109392020392242487364256306421156444190104176964373069472299359711268204355688122912144077565257829199479926088609654269520285791902630912446912776318773235100333419742931347590735111406432074191303745127249845474096878936282362298125465580468826489275951980247503623245363099534793383645830848727643000078487732701935148655551996456328084833715316918990314624306472844590966073133725924864067421543602014261013250990245025576540040895583247173827574902013949540494596950415935418012101642900718766297310888154887964809774029380601395666828173972479396027486191700640959668055005274744074349066919578790375245437017105559606318136693383152586569225729473872080942119126099036854849584566030660297369148974217908108295940542431329772614571556172351190677512644972895858512756338726640945886608210144202430843116687917056018735953311749649130985039723504866573574059547321241225340296701314962878975138118397427676469096061897852857256301848799783328657765426684851608189338342042942237336986432162637972956622181488994928535844841850917445385739294546437504183524785211211213351880558148661481622241626326379287383399694330427018784978374792555188133615209948990676771884961948615433063449045451751608080941334467672541042046213280125774978981999091801526021082881267257949368483285433924737297777970028573334924085153500320449593274064125476443589454427643930645692035156725718057081822037255143318397433554940607805398303355769233557286344807500717288241098830471916887165085545242782294350773183985846598419463245071509626341059039966811954313145966647592059484821354407642098141713861738512375867874860444273392248638790017408775660169934539566636959427673109720755737210903543334129148649096551128534229629967208556093829191179116561253763815173827227572801745356130864188348023026159505175785566027612677859728551888880223505681051426328210246106935765462082809116384054966042747492376598175922036069641517923013130963196102656285435753335555515632388917871072796499700801298992851802212963448773455671405221927458949983316332198463383285665942494540567571751235465934387949287475685603073061920835078404547030194379133014700328282161813958281633833390222041627678916393646255722026702669478402729955223154506169864767987045820123592129378097268811074656643862647351775237964975668526195062946992851879500806291921211395916199025231334748992297268110706395359562729177620814682983994323217426498818710787006599756919956696833203286951315289153844340844612100669052763943719649487431861226196599357704034395857082802433126087190439717411950440936785150639528253783868030773919405456428815539355191632553144504321213383903525826548335728097247682151284898050826508272201350762157528731709610262810505156838306910312706518518026871466682799228596306566987060669381285179611616338552967504846783224634957449660236339821248411576839891562785005701447716512362951991212607463072920126938427212168580222222075795537149007181406942221210251357348412426009881678971144170592529583119153571196071474566812943509527706222137331945491624513916016490476098686885940770018723505399834712832829295689228289131836124499198967730206376373129641359694245245940059487335069858808724929715852832095767840477561007205618748323930884896679324169695564880964568286674834899029286274347900024991830542385316223915432115218999658943906221822954742838805148759282197112027406901438506663934288524022983922156925700679330362675443756882364109519486787502155429074163198522244206878582673730350575063365153412392780842639470420303519386308477996835396576249274987073430144693331693835159741393456084888755123714877367613952875468930416876868331297190118641764600414741432463974294874956546950121540688810648119228821178958362571369222161830372542014514492314540101756411104926395045205937290065604760361209162790034096108164141119223450256133194778250094692565266975941800558799427019588501846749057300289235322215165840132501557337193093533659240864634442117317227076452070094512309006498346849849562092287195864411751222473001405558024410133646614419389576260856190887899119139696775394571863293836985678044952423632125936570698607457104437364110780025600722424984714772489812853502877615207224885668885407843788233784134894876649249363243465606820493891649510511366579974876914094861458024722223938071258333050164923293245007374842900443806717970534146121203394807662125730602272679874361185301703999669190480418366255687452393335940422893632822510898077450425607314128195334720347711754439822841545780564263603223692904559576118332021264934559665773356329291189728934452689892317354088019666444341912829509342073749210338268282998865727206854643161951166763497130559493403428208318325098343065986879694251419682398343876254676245005293877997326816110736565057746331848179794945131569604253560964069446890301385594739230976433059383678858431034909886044874739112495922924939366416807016042301372374327588036165342037651199740968678809461232041010258877447187220378027065204026709398681683737619786160592349435618719982186706862475896777431954734083829513772308635627473149348588934617068205204490849540435336186200715985985759287415431422762040099064315196013500135842394759697083936504376781070617594283896624200676357090771273352767633287015105544472661810950606958751181770802988716957138469820342176603940151549009905846587771926262233822627446891172452954234735943125599664800459334544069204550507821519857230603879017222927410403277385845255368683382785561409737853780562102431639906736460666197224820520366526839463946694486730516838335340871093869813954754248919070537528331568520437532935034850229468259440413096547378831525550226837128675744563643427545415206649039910061691742400976217069974224323741974224826283733508993541876180892766413773476417128331015539521707255279065171673566263762900395676688211366053316623424121251032818314081206735623834829897521007017103219650864753589301560804651822581608325563625336267404943902193380711804103632031908420063428458369891474868855719124864311459067936520416421366407754867541039979552487952873500502051860541150823771934217134518724762971679917725293707627234316176692314941797820343459563946737299595187821384126148942938362347004668948110481639982466338051347420463535525315766416337999017943583567888886108394381191079049192529183234290499529153306647960081353220015839222734583969083135884005622928771992455205901764006419570377510640822819144093153509535107920762057593507770751571435408101175279680295491961433092381120914092266599591369393419895876703207224134639645231317512888401321734302796440920268847956458449113709257821476378076772807854673181242149790322408709243254376184997387710343998167938329682072247399441681492944364787517446792007707845592967700079313247050227343697318400716870850890424047615441205348230976085269986515708235253411570162680437776125515461891368066125085741502831851090458095477924310349466316237916740561750116900244727095859611168837706404288720224083880246661017935031449706704442710111792301137368358551851548759239760389596703368411388282550708940668003165449722382816767886310981916553046067829537601719754370648116551190621497344881940300013763469168527969013473066588590476309640561635428638436977185487827589971092854053386464085992676496788153023465481549206728393187303990110271873006778952732400497924625971459864172023320034345581007643087721153121763962074600173086590613629922691677439567851446291838592969577009534839576741312160918386566031460275444708323385307513346157976335046992737975807332471185473933690223166960087910174997370126368268516319506482510171006452410330709428122632902064708389804227416208145588181751399239476115998030753787408363902612193117319270135889188469265299701620627361800614180423859200751511564106002062934144959937974716248672981171814768986338192985558338050242840210087945359211465696317038318295133853004223583132878717214021022748541645613231356565161242616032636837381521794111201786114895901745914586002596236328629067625507403470851877423714152429443325422243841947444983397884501601558807599974501799014650545731029467811833364819516678069012939543460171995995198987756783372454343338892118451149078351287814618302421073660564907315278778757224983598780918948264165632516342620227458113090486640706139202756531300148528888256034218377583935232212521310306319689402139417866903881757696798800141571407372185280157055081316151967127067178668644805440928687484254806612453715108938869304807825400686982442567943491493442151423719539884941409556919955805118926830435422880018358275268032856716229174010153745712193138999031707226931428612165984161136738685336501996201455461318094379290865384339390423808170612427374528367273859238247214823993374254995828058558236807459265126241701502336522698339262822312967760396934290233546547875078376641441647565698029963660734944405469259025832415806304167860595712447408313621340916982879418431486141612938784973514584739368636112491592232010494464173172431611120235016759825090668274341367605552999595612115460920367477723072584638345008274143932834663291488167057081917179467331307843721678360005671149555235107673064896591964214462080309126761578512932039956285877865560887193050879542306286916259244319176236669700846369189432584292776946390291912799020331198694301926008900277163257420480563404091051848455417641469404813236799191244437453441983867589790331221320101219490081328345101318912724039539921904131181359632546317023621488796487356585376218535891033017400873904178631067592696369259634541859365181271810492380359757612981028584515743608736677582817499262386678183354077602103893937013500602288015681849922581646574725544890999850010649590737392322259887425008794129062932782864457119262884440452943964935578431362965918573284809899163481547182975217147961592092643566463520591124749397198898586137633630298349650462393032633189184489851809263754524419725621621562020231072303923688598186326167475145989824596413208947700731383729225300046266048191559809658800301399276380045494219628715211824484925454447147261977475102503324484297381869304149817341369791429770978309039072298665753017950734334094778785328809558738239300060629114309640176667406566696670622497974280585195233665286413002558892239616394717793247148436306872916334300748088432307053683824482645331679128768539946235789599136474886301414968753593439225528363451411886562597242057541202053954750786346285908852620827262744584066432238343534119518277420302452817690569607832881622656953173335829290838502804507458658930594911549068522971277985815079166332659445806211534330528109859022133301747968538654026891964363443885065867013516703362985585521785192580546288912216851767261035044804555078713753851160667056128426383092558278263344380277375416032371166970993829132364732989347129216751815354392493264924366594125357250055232343341700573868846871757544105691535628626957433611311729215417183469536295096653521210742353741956614293555078249840034398866996482048724890811475447691588392196151664156205250693913497053778413729035205610241848340737554085615940702948783188561664641873342430349131023924496478429069697668318123440716785646552574484733634578439072302517270045396434429542569156113574426528436558363091937376388260345731314179539706386189837794184379834439437774382250126716057053451917405079555918134541226951606173916123041838785065486781029417944875969829590801727239289222043373519416486470374386051687782534413202113893074758893543144040444377380195870454039464541343009797474091679256520776713013371657355311991215977023463085110000537565592496314643951781943039386210250888568308996271180810892424387948938489040514399839282675733597532988011875706017479871282201418510600363614903922871758596807513917505121179361457821351526669335715365747221439352427428832541045051744897114007401789912444368307065622873560517567400065141518270795970028151517777821898636340306926999844982160754320071193423663530514129335399301314083817857094202216026947788335382745773336647799398380929266008939814446627648636554713951268914263198234074431643760007464942467139259891139361970836569056946940534604681150936761232736154770584643803793765187453210467725636264442363256431167342868258783849006342854181114539520582606569553858747343697400267152370431910741961734917739970701912866966014309474342215490083698897607921442290233648571658346719668032350551868131100355098150138577143154309859255861260970710964713211119467389108290081725751579094260279364833142036252350767165161557699432922866006216123569678205448163594624548405651607930928898600321736047059491993924851803343631706121932867778827745464607141600504282720122430668465014687222795916391812912622531813409770662795069050497972226270290145436429606683537538235243338720694384223570119123524431261846646629488189607911862903164887320551826530082756284093902157540156024798058155425784238091447050634648823565491336398066250007497740017656950665612481891136458348626682307139532721461671275160926215123219064669180421420319298293158053972622977057687402197381282221034628350308835444482254254452491160086394801014544904967905272992734184210662409766684177438513602321041145712736685701044589427486163470746131199985150928021233382553953547179304944001678790835694753893707444563481296067730016714159395563449443383637564995522019027618100104658162142897815575452586978266036182802228321621393236869722329256553422975277628543270927024236828599737009803591742134953977732485472246296337287198035268219271955167353457597208483430319789602125665510999720690004286188736699278837747589443394138252357415634714659249422901671695245305733668900513820679504846042638849541377174355730850549155944767277831472474064881872802148291640638510256143314119980885804122763263257308383072210440766155352814449426516970842052079083419947049134421663720963649698822533262215858660569255100641706984054800175493976269776328074095764400815457648778121616951664163693522431761243598899996765206564034204470452704370933231241518473040317524536436503346967357983324915446649009732515925172173781673461578170746395526991155228738134022998463820213022999350410607227112365768788933771905226059350354525983397614795370264971348914848345367575748886403907235865352987535571125410552448109805370908765413206973223555917452313020811008335503556721668165887753357845830395954660064458982863654547587498408139936891233379794233270179172972767266257068784361193844966095805261624560403064480028591658951283255638026798096129593514014884797247822224713327244299758607227601222028634871306350369900727132413107260011602032590923737368535163554834378224473145916889133419590811257656635111424966666866560123882101554573147068864592985327407088830262771191847755199777818892392554416558502322976789479398974336407688012610891936150452881852356569286833682761587818172131025240771727710539428945615700710767405751280292760535892464675637271545771804035332764902745724964319962027547948475489892865954250922144273404364711038208490682466741019968398157405949422425646030800099570574366991117899531322221238178991485364373664218169141957546334542173584169861392956123784799915708188770595480537335871193073805119182320681555979281663053477346157093120079272732044846369694919787032042409521734728830816177912178211138611794006698898040821009628939338293902548626208266302884949324643640033066758954403419729277334100985851538951189163600625817775462301897715107209134333070428212397548812918224142122488178582395100998346327780722506200442676755512936089666731454585337372453175993073203170238178835515671585874588790948277933040432453567925138711157552456413762189874404126648908207162810923804449404497951334315249285617933136503037176658863914606114847470843898323494861855287043866119406420253978316495967274444630857116523094760564525873935910544807468542063918100731014598230511261665846442925231763576389805089758147938380242746901250344045248300532331298276486658180072033031581627259322348453885905429743168041347535141382315400707866583201882100502864739220745643125265003423591321426609922253571389521635897453936460477070285024585578744515235544722432398663535151178307258329341280531730805052608544147310721594202100184796485054627072636728229984954891395242696455151086823452597932575484476954910074101437865583026058265939415602705925432680347520550046018830054982137429673963090693711188214756789591930926625469167570325675626037455629885669511484198957333985545144748800803680920000286254169032251227365526850295876850414308785034533568779196778029503920194245750840333751686250620884684302278234676132964737400604717722445221859301029602709682432940651094812441316753550332485991784274076157131858673524342187286351324574338004362567749694984882980656437567572468249764718952180083675294344162261736154043268311315954034267126282715620119699613830308941553927148548961482374557613386000996404195854713620977372117461731356580123554526963102761843840077589814583212541922925244897388518503641413727998504161300714427174726576206459307071158026863868779089489392144600648480748255324732562714210069300794938143270631809558320737040997365866965262181630328040318326556836368046791598854842666563476451789467781026671702201094725050925790623912941710085088203782296852803794716668314239456769428779736121605490924513498260420662974316496980122680255250842686546738926514005254151029491797169709069232780201177546099691781360642616075936580284434533047103561182749501940600627913336858055014647909489425662381941957520295634434583481172810357252909188497676653392988841881076850796769071002529918421454504251049805319313975528689202526760202578814194136341759195508479912873707631055766896189622340150798672717256507844898662511530658618500026280992993904754200057870724231701639359456717948453428051487878273889328579593632995890184496030328835957601484597449214960681160674288764757067040652498540228323883123770375310111674045804632017492754136148367636675120777367446830911478377653054073166596423871867174093011639920031219253876878547856558514818714361296360345015679944056662322012668964984898674840527121128895656694353710400914018367171888019397026856294795558331656011021645886384084816549688923827732468445357981596185910012453295693950943023906508049533213297623811453067354751099551310649852864635933762975466349872730107108086060000135486773509215589371675466287638396741343717738026520288625856044552300554959661682780576173865491359270213691925990452045046715895677334269534072690244150824922016926439568877944315673409193704497549158830339350887476137508174934901960021187132529211481160021167566574916951510373651150508337892581687911496926520130397862857248328818731630079204924802161972342292600980183549611679325987252741814053460385314851682566820597554253251870549266225789461198199151703156961123206094259376870135028352864280204861777927193212306746687446462520408940344437625403622928016597353363788145219938411322410216222760617015666165948148686363631248181547552767945315825731415384691423309816051322347712293382362262186111243742719630689709673062268677605703820697010526429931425556054500417136591816178544691108073223176084678305266991037791972937158981267047801543502499923394334119032607082252163903606122284627965649702416433238182827697732446685670877733325581259099427199437446808264244151681426727370687617499124536040209456100035183783415329479106772315708060291254067918470942783051548559588206016784668449391713569477896140632171755011585319541023265777738102380149937493232288831143127324667404580752301997181136990661290547640166107541378641648582667749619235712052136853833731402124696762899507980191253704667517887325855273122910100261474670864533176376820760546888640682150734500232064342108290458993356220032486630850358105718744972101110679403165356679937460556595780449688025712871356773461130122327330825158449965982470050605895631408924270272169798410978437591192090900200049292462494190153899320969192761632080694380597685865896574158236105149925264039300429648715985430737542126165914475737495901938051821939387545178366272519295357497702459305461295221644091080752667748215128731938369741981024006333567627553650504559071725187766274581775636203491824950198696212663914799269490790631290985273019714939206477954204383916054195130557208793967950216841320175723747185154617275884444387883491545589065413468491368601047234827855979950447459667509804216761540743892507231523952199640087540954665715254795141894203363775346217799198903562795125000444571255422786566984509882663844908397140801959921187505452769746774533352221270732295110843390319443746392477473671865556876061690396458786622760595289926037793114421863063401253109599868493946202338985384141245068537275970520363380633064940643459456134711768426140707498886332857541946379731165828154862401099241566149520953905296843004828809300651594975920720056812234201633682997791632058237175699558304157779445142940650159190426874383652671300111443966965827688574410417111536147750491151558336486947816785204836189542927527887930513173042397034642980418254059639400376441922144497591805048393426835205398663449686938186673257216429886957574216832347553332267471246009952951771491160348046171591857093822676829972606804252665333515847457253651610764740284772410250904877033721172021630366048883820655432168318603283766361505459314802838352345155617502673541236845481922813671262569551307332431753031017084556495199645833872652244917704539753581179014035980693727559362532027150973372996455271350799126464003226123762084676993709465260753732571925461855900055685311887233529529972490022529435089330985825296181960761967740968051511549002466661710250684729915372969558439684665289217436763131654292679742202354480227998207219313276605570279871217305882631220411703596547357694798439044772887314945576606897931134590444836031966158283930371124154825887184745266120804727361338891537027518617551514186974471216329880157473863945106197736194464661165049916285124091540612033278471079645317215064746338500172297003890925869661268023490010478751208921982177447551428074073167061065825753861887893367648219052054072551684934493146156876472693085421968068822879365624849196299893723207966996385147000094713215960772051065812149035954956790500923969054463682538365591105176989895293266676061194869580023067139258209507531788989379261590394717600623066202983197318176238527123615086423249682273671483908922540636310776889432780480573549645791914245325107003112405420129437330104555781243247301781182215294664100482075452426450769180222391234129991669551794563643686445270136676954404730465885617284098941487307101370765079411667723358890083595508006627657249350853514667275008194390575521646155433703290035531031403392700029531535815214528986481857019280891987901072427468949342907879424176272100888103113061948073938975554677746531090525243710568800285285462838329175529923931607069542915568502608704110916754077427464037265615312480278506637952766110362474193943628026353444802043426309157670584439976562870173002463572790795028385773368187100854506348965140679452596756208190562569530393887759659307816379154620946847263638516697613618684506702165254400048100693651974197513265803498112371557855818498242880021771752843074761824583948588303451169111941478076330499579304309356538978251470338373769781870749960664022635269253285856070008493057493220229903961630476889828531278153876111817306043354048884085122662789665482777067152063539465358068908816398342845895544882760393348922230143684662333966960285872397034673102564986860579317207764854267502126067362951031126074060965894775336052623683224059225169423652309002668065661887537559478642218786100627314707763232913329041470206396427674038849918944309502660812771078254436679354453241494893474765322043711379204272351794965581256042735402890487159735695348098490303376897638652712591100099562453394391438633067349652708890328371973775589528770194314984424274251878815973104256458501638643885023765318339183261418855597541534423136470484451494348203156931736272354172942993652189596809921719785813654904035773881959274976844327934024207668067268564631852753972402923027472499529526520917951566512172138933933950410934952865255334116374471611405196717782035388711500769523281115319772016802043219715516643520132788744348022052999969036383951068136093662971013556593198762594382737878825028006907709135587318911095806744311320518770349554577739592361464692315580235646230901976149224745983113980348189453295935516052623109383179048527189116156609307189209867154001357432495847825176320610913632905501837055152180791469913712920251814846878223781166890483612474024955624582985473387165947028875917020006753767011316127402299019652094226243388685974628299070072045771331404590244747936337169976681959262215830259389322279017916383799775687920050602102202777728602056960125288260069729153666882373989650298361598870937634479028407095088512874302865246877639760182182658534796540692220044383938461376396945449296834472265058271989521318767143588636855559673303520013850303818055293908842161540373813263705057975274906719129925521286643234996182397470673826137774475244589537795443826056778402122438804794653663209618070426933300438052063555473441060697839164486891575925989032777499283506711828372683745732940844349840972863685935309084313430506752961768717316175121936375323994359824497751429288537558237446609916334816139446709395567784319734312501565555419965777807954969105621892233747441712043791837298596622047532066015244314709014925079741485319963794143034350175180959416679014463978410766759979719324555032448198421814998964387129121709593034322746323013672891928396720629254963117603119772287424443382453374761528122033070331705615517371384650812988643674557280482643054495092194274267257258034191477741168315403971667084714000797784609421452942505046013883969134575343659929493668321904461604099849385465528580841277652353250928076207077895496347971749683727545486834840894864060741188112764757077058860960100365697183568702026813247740676348484057482722438536333581072412863757470013574340206161253837004439309175758091553098220551429137915280906437424891513873902221958410517456054010829841576860366934865831089493684098869400226935179300575996122384494170169295282464868068952143781102596696825531634888949954306607093194271430210931088028064728742533266962183545884513207057943583816911226657629127241193190279421166851022211747786258753332566054065963623934104964500793579047376458739499524396526616101915989187676817993832223614119819521751316614549041945745342220809444879078409465792576269280042762775634989657716713228696355866141905285383792433387479486485568240687039731296384368802120467487651403136460571766122715664257485425069708308197385456827517155470947661715021699176115302762035241969373718244865095785213879033013799313910913886689478663807854826549994879313574371065172991767354289370962563927923602691944101832788713867870556146478483664432578326563227534405197069570912666307374756451674603833431219078704823006671136508482278707345466093536996495866908055461845823647181053909897640450208053986964761258644798477158274293511384441810812563279324952376734046995045130025869680087397472353533295444540453545559109991854770226305218929527267729979551453122688394623259078735887882112745400897443161641506108904109684197655530451742656587677191872283815583032658739301471846158926634168422270778805417247463479742758408312677576929974773312947209075449955773032605286474637992442868973664993976672009994805156654471891839622595864851630149890651918859901972276767589465366451400388088518508837742466773693318400416728576782076760526923988072626315262442051498463163010753750923621823954191726442571424858328614372016318844688686115687318344379961479897031704329441475267930722419245990870080432786664012459727302113565983783691041548998590909035128903303075697363654521541423540060868635902810657180137352405795908552469758206402067788664337126239250341994669027779082604848321137972446747308093449329639959110066545224325458133086432779932656088871985738467895304727545464701963270802489768720663010665687975145702080732207228098610258022863162179325639746616952557033489029475443762342910545150590001173744805365310853280507623020031586892967596060554211238412605188979680098570611539826410926748023230706195064028695091021832898018229498878657881162110815720148603406105154174590836356600324572084171630603643140503165208561586048232336589304472159980095916876756645588870300247217468429855432108389832985338172814690545758683359772122718158667273972544711432468763786728159809130268335956266703560019212996487158545040476771372850263768938931776056334197993138979458855788865191000547134437064491731989754929964023340967329470298607524279545462036208600722059037368862814545521355307625165627287355961196975493939306980725092190530664295468967191429207300299002190934469281640222261034819027209684011968596840300720418900779656553629988096420897727833939755684448338718958530974120967536770662981646552545945396400648141363110541834326903891500440436123981399904466905194252279424815074060724077798885486851533997979589412817455067151919381753666822991919230294459478929821351242999222523261779859385489892518293056977944139511606908757455561993267797481494073656759675160193609705979099797493000541072573380343077194762426533824609334500115922417047760945236699937311058074319374820570830898566571092679184058740123953974632948703224828141094493758064730117986614455939897054545641686570658339108406073753790147337278119468913751653540525622764846144380272277711891006029449612984462433200928137193419046238974152167308298407152427152184090996650224977645424335116301029274144652193521614554228556045146704269766848306865876513900219239732941919593881493285547726799138660774377477223215460391690472947907468207772537135612857915657604336598046848111155760898720919870505099337445595700349271070400302563176958905230487910579511231390138870669252852409799390063260808194691630299392274285248869168533657473509518257279867936473096808982711186426572927744392787647775694298081693734273242715775298472486826537376310120222810671447061934383237458398895483780729327391665430474350109687773060983367313452903867858345446299325526221413779548352114620508565301460423588523516906337430279229252215372314705953842877575425825112454330933294874791961555752450954344038986370246937275933952088486895488053895908995792464020780114480402447823027961690057579199093066811524047028343595149063070949954414215759774412574849989567678131767614522947968575653867777107228040855385588592554528239273759696169563211801236673600060574219410044692757719372802451916907556563325844792504532765568241884546645203646987129087025470510200169014678796962429955066322520352935328103467960647793506384656079938547407827880252495302578358104843066552199762438235651656633550956590977505902125415775688752072877518969259291986911731526477269404248542325480548223271749811214067168192172477374862792331729497810340379346806771171609390381498875434480443419196747065382941777970151237689351234630666562276962697696371971706920530326160823865023532593684559407097956701505462064921959664744048713732995907047639933764855593384769370240556369681961543710777380568031642179796916115194561991984017147452591192917597112416149376852993404890255579851674483210013401534658113399899120723802126158315267039094692815042784913209586777936368002732370750856062423105383639618741957778329111595846299328957164998030400041240052681337142097880665272017601913912401821611624559068860972856239441324049265542123578508942666070018323406939458406346424447642278574501621184551772349623638869176672702602567251418985007522939988083088006521725193235735571925477666379123916934999115910235793485287190920370561385313078486913761208245246840333730969666266125447604825592102854732556410414101440194190861221095014681743764960068187148437659380239456058176532036084642030492366624724726045883488917162280579830139451641873710123606476700539090069594251566332944452618686662245312167683108678136993741159613569572926536138222964734798374041014014707703361006480600412853547464943830750332991595219780297753619650637268906830452341501513490307087414601175923004855440088582008272054707624510154726298872120949081312431216921353026025989879596624578334016230807907563300997912727277298246827290025019993089625201301159708271410762300178099279961995825119364568843164137949896266350453810815942586111379968637128705504547568529148850271883240362618624281173309805671561598877759237282810292615463795213319654867123801480994906921524070055208702339774471797442869704772639484355680608706927204394367113689220258443302218343935981711800066247298933096524390868877043321082672535330383466875804547070127683951644308957922547213702074357458885442878954284568498543140577482856009564896711893964802889338253983228226432614208367890820637019330024545032704016503198278380406278202071737864844967128927772699423250679599827601515656781421183942681133484800723959290367888823929700734665275434184590530803907271986370375593696512110752890118641477367738876144405059038202478997452112196458880660784266918102106375646689572203441603972592426653956018549573434140254404871121798000882436477671251173680305294363790190307241921115943081094358568748595248931125454092940261335711607136658114142832592423471608407440273521839236155206672399149460727338193177744818724617432276074749461545053619455661177497097330792529333693026684880748347609114514047193517136258632319711195396026407827286159473576777239971162531078069609598105297402580627267813637109189119224730254798679289433715914740890913021626207830939978029284232198937456989833154137192053745148136608546693907674931977907956582187151064571331958866054183711597500972401706057895797783513358945806854047748798817623505364612282346703498120220773588492415842193478730200097387173838311145503674871399807750322961514361032057068550312685782298131863143065566311714070650707659484080968085899316678768401161305563007592326209688359328769646606540465389557272896835130070309497983201901906872653206956637349367262601367463953019151019152011260409393110624954909784743693827144883446416388467804207918082889670140350686417106233492776949745613082710746773086900299731197962132555827071525938069216400414308009672354283905277514187709000822302192461939479975989659030195644697801932129581436546609803246288354108119725202332230887769035842575083855550455994154973639918745331016235696745442406619806444414244831454885599450566369589752129870181562382434955829218370460715814592911634027973625356380564879440166549781886083529172289686540681606429142729505895411379312138106476905755944659111995164149260925870210936165439341522579763958431172323349906221523107849887498052703609052088589794191005665419668512065666541238186515260942159602536608480557610791103896405393689522389541809304280737962647001669029157497495554941444372522065159607372045988263072023605917764867241399771311740028975251967237003734584242813871101883519939203029967790908191641096652986526601194788795659649595226408163653479993260824765317883161061544204361252745590310406173998898027316617676064468889727331006808661435392219476015569780197868818116674582813857050357710611128611683648532312443148581988909138648268014999701720964496043844737363657835641609456247862943787073269511853146356211850026312188598633615119450182049023860063156300556161760558972267240689553033202693259100795085020563711672407635576369111841496477560202449248793351767176890301795044373739502648791019696391631592154304053942023248849865074069521116309078078666298629991010672191717805203937983005352715594062077004621334084151408305334065022195058773204089158883809431809008416366952754417572739133192520288548918308163758104128379738219760365284196168235902613520653480107703045793784311097590774565702683565695390899730828109147536333333421238974558494147478966401536111581665860661542783503592981439828272838268266843126158731032259107566107446748718802036751862112039219265853417910825003678314229856255253067293716304874603357078104598579465941923210505724645225344124682744068332806057617916972400809758552866626656426167874747404078144150698231633344549154107343126785603038931831573466828978878985183209197492287731459981388808680755122827419032958303445913114515189727559988111706676982534857942863040552841172165237350163116874812667551748333250452049313486577108852962625412982111937051361575519338203431748122009868640480810270911177985615619850119117216337530994966492344541144885706250356677976507539150132175008077274014265894378001500188710370010944928301544840140527700311340578937463272273510059341465706470434788484020890979146650382133022825462691765091326505833080756029919821200003373463031840395768135365364450424230075186438176236412850743686450876471580138725359819757667375640295870105840698266565655429760899358546310958822261363207981982511128026486550075023822723649411606453206795646770466539060021441588128122995110698947196470119563358196467952343981743718581483977633141254182750634763838881732653470393394174368413855856223512708599099937362723797898145597461868744372276214455094211054955304528656922436052303655181594681764756097087698708349033280117865695550299472857098630620197294411921166776632431504160913936683548288906992469270371822582144607531536384419705532156077957008126447816941675900856129350488601232012201786009289025581771152166421418095205307270347103716597833222949105560063158320098996795608761754776941605291473762486870299137094974161918058035358931908267921035926780508276199914900003655832606709206407359545832005892568798648523981754464358897276606731895567871332467233795456688192813384073583923006540523421448620062661826280428011127644020857540409654895621567689733707238186569085992436520758599145973924975664197693577472857522127670290837404981595304260305426665912965245783067924497522651703217780654081586906282330481723574396456515651239583550573082163355961905316495810141654169968278210744367508065213737265976626226015791095559940982146860769382100386753347288674761118388636637865304390385476317710190059201909147029549984152037472710100352459406860989113028898891386437683658593508697725311907954566313990206447170669129701299828259620537875252093017515162781128720178885473282833361099203015212370638797220183223241202361758718683777632067978777610919347684628586542126774362703899891992889674577765935850433052236450230990950666027694114387796017049509792458002992170559992850706392466061946285557396827912751563482767696968180880801332574533463642449220771839964650087644168456804618204931122443501305367173006293196387807553561322954817624809714732037577377749655392084137904807004938627581987019024792729600143402940585260918164969298578141704447680096677061134051774293036347810734812614732059758440574817275815720696800853580602742198222974864014589625807606133458731689685458995569311876975475752554438608607787559784460576853384775198816125936831739086885851426148148473320406314947323556909564285277915399017330451879186431201163684127365727841242591145826759720566043688785626535170670954175505415253919197121041685010850289288220578358885733320914201862787943726408313816800868312904048996812213958382134246124395159291015611259607601100224583615174443199207928594842101839627342722266641172796448067190493808306287073661489362123063737217081681691860302908192341723476698005003483240134521533591018352617599838831651545172441427986438731370811465958026482544242418806275169076132557866465783432252562891466989880714104662152716392280653497266201203430177332014559598482763799350281908956480910156183582577690514429736454665171432410475131179742441505926129060144744447509797702284786548520475536014422342569570508627170448261100612537747014458733682748369541675267699872660056584124882124262382418917527449071348713394667961097188075601324735932108261822649339444443775140315775662553921875599120128810764125371925140785746125751120194772102522278169729222587824663043168461500502244492197124274628051461031488204731681857310621967125045505044650454521276695950874739896339269290237380176328616435591833640774093012620657293620527257466590368467785195996463441761635637508521997213140838651847995559791081168507748759464276595957134603941479075251466638961781769035039956097335885319536984619834016269457256304159301584353244744150977592332136475465880694709825588035815186625099405577645214271149314637506479203834269068875271249620191186167948147499522969473731085708477468873740764871621142675930321115742360546031197892469385581158870637358048528008464246785998660713718958368630573952972586801224477672366967445476893058463521284903312402570548716404663035249669465527380375233038496031110419068368577436048120882048429386090626781402148787567809734909673358289876317809927359094975526440380101585454836787845296423050464140758205797511333581110745382804910891509063423327085182275385119073942369949000881410803923322551133468837323960533351802701567358399711839068333429461533842444338329299914271953676976983023198952222229756279273612869363489713643858307365845986981813304434833552528777718365847420162542948440634620750130872487840124072761307643672730283145638569691549966096548261769930667158153415245515311300860807874134129208397298409944183296800002758690301718632463154297539971158525214822948584667685794657538624468937731444294591700764712643690265231344185643088587559724245925078259174743401711636200760970191892064543785138914466945245458484934632788184970634681575251759061424463053844955541822906958577620525112683185699941301574283156499842929859455979647338894507656265975496826993924605342907351968495704004654729058863231554789986894689575927970794538196806809722164722133240688309807805007266362572494961045958592789039636410926178488817878956609150143184209337370494847418695605555593010265719110461945432037029934136459959806287075226528885111569756023128638450485379973022946083288877215002203223664794661880784210922862663076079174022337775350586430088489331568352370962065069679824626058217399629821780938738533582626903473534329917145434356042215353950832593226691256776952710075656268335581937437069443879801377652550124447479170005998608153118106186396084555930725982639916911159272992605265381049199737271684109045721344524952623482861388305391176577269626876214779632113191998779321243414956305309763842504163042279491202742376552240801694862060832958611194066864517664365986776931238135471316494297606519705915067038450321567493555333144160999276475360950893528385935544257251802810761919646277378650892667497328179445343774818909893170996060462439203638548443537755267544356541454085662098910130012511657156181973364223461190852318913245816736049616559698586024488821848804402853492156491735272581216103195234305460063890734956034819303246201434120878380888306307793209293648082819361186589951282458632970647974340452651173480919701489013258104356457387922512730537195962383411585302406973173927242345470287034177796559003830859309635674606334964482334841059965531280578604527950779580214871781608514631020940766171065469727277184333432808997408548548015906390594457030214883558628940391089224435176910138026001687599470116781398702734746267327823814172566331816381631409975491598820492370938803204922147295722657307488864464636838368568784241526928761812506255700355874919464519194556379682360730581298616367563902680177903497599260009941311585125449410417897653605712096939518682392624587469799247596310272746959870347533499517997984134188355471763548393161216652693688124597103652157877571750809290890029542700826307305701150530074986496714330259584073381415909312015707299036780030676710627527826320713802159780359253376620403857946337689179422931306038916957949635177808574745042033807660318382276940192080115376752912566642958538988283140274622534079036683237075410250456209852269462535059825271332421473592297819918519567412900730298708857475375700285240175966092209655878645362905751223031477721587374732473466525213788953390207979022996216942917255869345731069556940232606912858964958757053260310847871206115456343078345024966428470971975108990053720300302723877228554636027782017043763982951628410411796352691935049065964478185252396640865145133792796382550480288256684204763147111342417041663661846249107160697995957649714317956844451189942134270692796405607047962681083481749852228842319846932562354535811946863899722519552084624242980924590269607032504068108297947686178559857840742826742480651928665620932007074807134041147107077212007134850888766456699731705245797951171615930571582382383543655599293641428009012518264152614856195730101737503378219148151616106563246801637193171999934834919161560413720870754757527751777046356328817428529342251083272161600118582795934263583697647497589967289699100757730430648651188238554441288828437110130363118113514395720716599293411874806674196000357848802530835655418087184333400335613012932754327333671426315319499890718915289242430197162258951881204565458420725143749106944221578184707094087270902212410980215597921902201707944505819396188471299943711912806100489503852148319032482156445449213072564072552096450193322570534437382123410380372736370639528059110503903887214726202646540826473555766651909771979973002642785186699977491855189253995934203705763025289606595559935619796364745906303156884495849080945368897070902676699315373407286666536784644420337119756860704248641757279222251540318948182332523222058292606493124185045487751392423532346719164776832159787387153616252011636305724498061968566158522970965062390746734585644778838894787344768326269415961801296495139455025631925132278324435708866297817759060010265237371087072067959847528798152977473302703237776109320500477975084666001569278500597046271928130431734854148962269357602486241083449843982426754789004092602790150148946098552156092504203609887079257379230748988775390012404587958320389086205828567041119765877047741131006930505585771525189681756010614015399985223065328877844041531159104561700455639761123420646086589696941474030782019962673478653069070611048932656170829864930120383188133208507583980197824383748756108209847122807053736212992097611715479778621924702150808945510533388490831460389301057510826888637952788349210673309960119920705584412367067626019485424388022077303147654608693337886863963668592512692945067144930658225630640050895077296233899701004706139012730514446329336783684421125345516556214588021592758963170362545144498584106631694534794388007913215583260374423194813341957664207781340157273700508257218320474686948090993082063796103821675664214494656953984316676750543782305616675208512437309250954063667466495232935582252824223877782986478227116345185632079593685164431914649636379093098795778179776728189905953011475124788333825282032548193697733076115043973027872506618121845915934555086788922214696894595292453078571669948522179750367698497455178259617121493207075909286461450626333473389850124725517270855003918014515648382272985630196661933873655440258206308227057130531029789012415747711834416760577173829112451379813075860301802625280456407296333489475573522250290843762017689691444717671700659921400057227614265290293140410164330115372883705707761872220313840245995074157957637960164611220754616079986275292709935183988001076554728181804554288004489226070152271666900879065578232579876748481222344977985977736320981012768978000579904806065999055878244183936978552052273856239832747088692524286313450459653221873755250288189041102970829678938817498355346409070702451434631499004411393281823301536301265176742487892348421247395464069273244107192829007410058476936715050901096723018966037096127202415755305099024433262031667130176350433911617902877448487823530341786925456357048590937251584337096803181610732765060334841961081118982048683246091250362848449868823261839818225208282677635558567849923863899576701716215726335756290299159946788003991467108325077251000659806239285472930798968129618944888087893369546297550279963544312635555790549208182468349418687419095835366797043230236686336179397992052099279280956250528653327055804304884693167392438775946398027673684218413282446081857418515180639912553602535494003430380628595651372636312039843263006756932936366848861068366496829431346712836672756808424017556437282801947723762602272435724947269703019753610941558889441841435989109593834824009366661048802103590275284315272245113872266026393227503920671419663455206065865640615498301597552613616195379092188338230658938108023546438508479767938707692646715931818463109501470028205022507446847066590767199463284856297466366760271599339395880302838938286220772828454788209131870767694996306545951283258879296261323561822371349255421492602307827697945678105008754141114488207612481071131484119404836850066272967798950256217061508052722176906292437725166974240307838005212144126415028704899560149415602414215935377440782195884769699387449797340151490198449149101950434702015030116998976186281801483548853692814869140837444155706448862596133962437670962387556675808063483719610263835330126587242508073964788343327355846075445247687041049256943347607094499633882528645839663105507531649133385068206852875496593859532850450747813274620196765369033649593419833727792999886936232760301359978643735641878159301431639511493643195347580691711705534267417169807704591347606867642764589940419609144511415997294598981772537624677450222349300247189769968690786921646347707863133878164344621172465646259207537110974947746561957315056323483214803066349781198481795597171143695010498196353227241204674252944868011692266633542804462120563968533605849192954750139593554149709256498160248109625646102261910458842571888329638702601269331031496911757010049108799148647957911533760332344028518906616216629186283728225503772682597133099247784003513713180641191108328327112011090229993316482224081629390630937895634377624905466294386264864585632251320535582822415013481116111278949422603501926407078445732059697001513679374769361562419818421743523320309753965137773001373543524269676207319713092801428990267393007126887192364981337945997017973162212095303121443981932824752289642021506875450314287135534469208956529405772444857097686471023282943782117363268609010476915386148028144007026398110940847930555287904878302946642803995774694517960257645131915178717509323226222811544911970636427569951110989134461783128425842133042345965398382424940433329028726221019201657184274226589509688119638213760310873133925370128419837417800911113887024793022732265623937676723085332718216275561100072571594958967673127985462844707841609999068798364976261728626011783802908213497615722036124084361678670818014181632945681333292907231738203724298442050931692495455843496461491739978246399063568263182933333352011623232198268722868827586601945278328375987394509449172035644566998233062128206803744276888944806881197313314060990488645687289731720876779791815543745115223580127825930082967656287295153964181293633626718426137616919698374013171843090822621679252149814385408472099863803586060431629899599240495248061913797623543893041442672152280163020877328947402896114854385612359709863407139469919432602626254563520227954319905716450043397682796293832088524376431316407203698697305172775681523706037168446318571190275458909772118713181975186225016742215793314100986316761982009801127491987534313940598320603053220924342491357963472531553630641708835202476207089890295797423582261543850661115165773830361291496970183245565024108589178232260503326060992667213868392119960877173865698859031966751327379126577642504488123234780939719545525460500678367634858242678170036624963077904076637048008748661123582972041708220496373113180846159972246091376609216849865209643323315852998016348039020405672055737313917462355665744181170702795851948823865206045117490164140041408701680564936745518643717123777882553893071502204907930604185098444080793781749487023285093325041676363894088966049048473887958992859685410231321058792131413942736684742813297763157038649686070018674076777055676492916696105027888593862652984593390656772004293840761839470775690571588466758387962420220630960854272543975293102439102215850508533566128569282936159745215724443652015947133884318562372268663250530515911464251109528833068150725474588952094739750788023970888301466743245996084525329636165165067158415166696997752841064157171763528436255168150928870972223509306315353482883824744212486463212311214732242703654454835766113682612118690677281527840821436982547734634710147034216183105978376787301225234888740066014035087373358810378546063659834716748630299122527788437364603631876392813742567268118355491716367117311567621778066236700223788465912708820979859612099242083994825366077657377350854249485629981773151043228042084452700345588847275101811657002989599560806205295420497657073226562800311922931169184746573150622134592761932592420045732540928876624501064240955442883689980071915814710795234388996281144567417864503255259067973746033623944595072144937952119367344711547153949414087115839978645906796704110320813267697656903761952851608438850343612623686372254023035985717166219960060555331040125597179150297508573294946838176199044945144331422466212508871181835718195813831890782282184538416813029330857578153219614664892512495749531507527735506854507126169347346974596103507173366009103739695918222265893179885032655963032662290209552156163841027726580852973872360000942910637058371708067546442232283039137726285492981807463249331281910524845453933987463723573023839522551622741498185118697610891024705984270715116780866787868903704501022072889941529410172491690646425110947364823153963598812842998455416711181254376382217874819579660606675641266496374490389057650209033220967759864340553265091969122357820359578747283633428295892349833528314732582945743574062383050659368042344210371489245095383675561857410977677961758124565637288853096812696483960909014590781917883666359665775032089705409014799952313616669438567056930701050758413652526638024775257173482630379367607932918738640609109952032490914171488123477598917808947209636277142647920101143658838791845243067630725623583210811400132604177625474458862860591138313146709468568819654357194566755687360995861421646074664081103947916939468810682895719024109003562224324710698812792846531975642828147077814093186938961782104758470582780478538180329910474681193620645514211341615562444086685021202270547451478599409860388682644014932105124825204669569392989099354472302440067878398024152596754606235735694045617744352908077123394254781401964232899037346756209894580149176275955242338091111108973964462575190671978873244841566952824788281598138672199405158482933281395141089564638521868238204975664958170287831444415720041963688646441074668291176519304660373927504533258558348212019154945656309519810690866537299411398094780450121478639780914143745434185586851628851368843662391372817470314040067776855531528885666332439621795517764517937414233729120431893978276665217330183119127224671596833050274468998852726184053420377772188099673292972531259609442369409391013876592803521361798343588301252345747981135030138993421857817041831614445730807230524307907774229652505405357127919057796095180153217630607750054203973470656173864582200687169531626819462094217010049080760883894118313914212233308374465834143261543426515036159351900645445992965004340144284080489055845289583606200586678042795659788939703719807126493989375346166365568872829198513198059742382587397906109624290645652505578798809981340719987029034964537084029032992674877927875777409282997050264086227214233740663871408557698663647345005066562307550387498610406388072939060593652376770759303084300877014852879463962842198952034835145489937009545989099414925700413678874067629098605916370983546770052066057218917768325570365187114325530876918451014661693683981149070195994204370132674713131467050650866638568062290303195243339613188579333971334846706107269692865295460277974339641586332076968832900098559145313630048874884019717796955363891486332642492804176821219359537879525003773425328479967296276992739797768797435216109169049400007361265463592857302105229289254364187290269088367703163991933279924871764530485450546413851125274300181697727763226647577670322963075244788801348213704470895083909906047671119449866898239765289534865319592174761526339481668907290620519207724111421035900619868676694019316226835454158652182120130486267876774116339807580255266491812704566721827911880724086253390469452511946072997363177460632356292276560963177265907967943011432863326521278363967587945183963491803322743599423567987777707364878262799497479379012814899544835313135996295099408881809967343218666256842663558887691902097501836920681738042657758725996041539962420053564343923730575611363796854134908364012603830719063956040905975919043882108392345401690534212343072807340414638656653169044561718472145001751549437353304561521891850001796011206039859074739060727591828807117815790908846998645508981413479814373580473231119793494266931846425051898975962971255981976930774866567280314644750595589078395796433129926368208450207997321310229607733493935838238214403624328867393732545370330454430760608532393249605204099046888435509803128924880408241810824225963024788869414803369975472214689049807079257041309684715380024291109952442847875798531345188465406272944441939205669609600061274605924705112194804056796488879074157445864927833218133316358649330392327475547669883954689300107015353833884147247317667777206314985933174212355552937242116981848213179686795329619020134293962177951539150577812711328648832843146362680740465944131686516775064217683311440894260819769196666416315075262558990138101562493743413371151583267313344801577548941418657582938905261552473178008519124007800780738447980535396327272792385422312382175082397141330118841208272869582385926775910229899339586087490376014772419298729642679056874855540498062849820519190846699410534032827031218966614453390751709787007856389285884686797586295312466996543860685143746364893136503595148314808679105091494623103168213046930589324800425197626831571250925291108852592525954025873290856259952660116624858713073726794241925938495960783419311274358077304848052734713248369211220211700805507791119002884588825136295666221612621326321505579406083134427789227818144616668874084182582146861979521305924021358181625369047708047066583149080119120769413062372475133886474359307088431738661184380563588558925948205567775889410435384922281398833527519708506248259099892454771624427795161948998440406932266494843458388760868604412925929400054416257722019568096071768763313393470956734765723738725287210551044711194943303980351901358227073570952240712725185316940504257638457012714866340565066782216905040081167907040184453489239404485999525275849829710712317101551129666948129930431147205698114332572788613424577340982883601219144340208168337437088915651625101186558687704574691487293964766786404263388623707229223824779587182486856807804240913286525587945109586289558952019416403904428740334543368752270200570164101788820414537244230865975266583013806175044775660898482831624931933829544462705499915767713254363048443132787093451333561581408667396832921536743487119656470088746123114337398157838136387197074370329183082779671213949180613530257312623752663046109050699875937124250160021937914456578274351351274050483603360279183712762085206321724820603681713716068034195764656943844611100120275546091706681601916755328450260368865659577735365620883834968661137364509849407678010058275189989398922030625349741500083239834133301981685528165161039830839573850100084075366642548594235484705441740030295882266586260655105060668006163033238397096008458049698397907956089232872274858479883753443568976242066994054202852400155030955838868026790592038774816963870139951409325091993698568179992613137945128326549499939678108347995496441732835544384121803376329431031917930914677811952352939092099018964470133448794135386415875208778230770599932636647887741279864375665192462399732681531931276135809321087371859874479345801916148013142127646512024628171824929889939421531871659907188637833552701363007911094305749196442006374006668769387811953365390542937171673038703905511580752524441465355778387749190039222739718775166251094179604377091102602256951721604653843673695951338458903813203961924647905436485800571446156998502278876644498682888779684893624386180112656644522120954935579606783607473631325730431370581087101640672853482978119578675606973910173354329656256212174819697534417710852900098683316181849255739744922321645235238720101225982322866359920211929156203203351941900258043077461831657051015752517678260216235185230289516792777651629906230837743033723721577145168523355385418300717731157151794619182156306174444067452475787629877056346564411436564811603359292962734642798921142631789709919049749426099726297924522868034493821898732871762277205662801996834378836298091303305489963768624527705221937172026343239998639596584638504733251667675150215613578743984211606263628220153595415097088908817859173755095772050213153259794833161386900992157253727235161286471830629107347710793307497814662848420402067639716930552081588337405891998644221360513540404497464378443065520132947196693698315118747182039240510093755677012744131965762346094901817090141491894915817925713303121276895013972069959338159073367155619236748983032716738271507152125205466743585471996887243644463118363998893738975538447267693968297833098178682264523446477409164304658971042483204716732747356010559444965336438875546273239163438537553118726746849968516586079386049327096214592280505980399890335750700797136096623126848252342139414054108711717182220666246099728400743477418411988889204726079935573714871135647934780265484974737698509230997918148257774289742871750944510878366551316989940711627239102631092134857061613678303654766196573863645944891303687709918507434189952545198192884526282800441168852988767338962304348603858165764887301987028430104215442217695267980434878254402348944161049157539271790596057672077450731439672564577749045630315377823313498890487747443932918737199986278616744692257413592943103658581249874515753571400418463407563388359074980534076732481569854640837163065352215487851192393097454326664681247668621216709178150760441332713425552261077621222104755348393522462407401390654504070539247328079932349493881148474671646070820644009071794590687428130906967290253078168405921891682123022527591085086129636362920523149530168730358617399530581721882271512903006630924314289874280658179479759173847466799040498602325084996597015275736249010691704395045858321222371407696029995215574400028952796545458237577375351088398833433519905193581029665331696061759107957607421130330674894138322401515600358595800786007794668767782263654775200921882914251858565135449624364432373406947889279212492014952763412849024947992790407973666116595652696081968252313702171127731222963604919324741661628261070200584612795354198962545755542147331408440016596140436433192077789046111895428503983427890358674030679977950590285893885032768549056714788567241900379098904875701278934946859583626478989233170160080732756717821021678529265241110009878186408374652025013580632953622136132149970629565467128912045967918318967810521405929760245623999132888454873338868885781240213734597827151267226877815853704417281133798982337968082399226727382369828353236708579395749742943885540049941071896558810689669908672860240078025796252772460613153288693412365455288122120293627122525392667093621267237076475062294442688449176093466376178718215190837357082294496285785974513020440383795960980000271061053957856208609045545517851340070074815405036657114914379473414627363093332499729283730851256484624319306332483200203234266745299519199398769370607241543070467202827850134401117737868062118483568446604451991173607792694683474452383556308850392122768923386266676603418292581968218775097503817590846617012326420558280542379203726343432343469262636038755528863608722337419293264655365460195540300685419102814752388079319113827488955276246454674956167610693203233777842052062082590588730260111751114611571309004336843394279327592485794228532710959292617845793517412652504682095526705818400326263446482424033937366144883992580106009792491534287081073872733671724248356632891450450017991482241959370137533600238124679459698003606049579794186228056384018739680933527522636389186279047148540605134598338699854684965981781263071661728828663563029600577671892780178645690263140506711550560288519789649831662975145381301417594300976467344684761991248581364763954393231651063463992479642148574712310271453668548195103951814577051477061012112530163323799458692656463212886964561573494635112590434506125027332335800653244886265313602209738379352456140923244460827652281402726193359182723191199490696477318666652146419630214665865900265163317517459521792628837470275589553235458806736261746463526544939835418355317879895542347153218463796583369869772501257548943572306125137279587030496978240367544778023861409337601976157061307406994416235588648141050700821990794336722375577087929868044866691666128442072846734515920721302144539541359349932801090522773576285657540906047567876331648729759919838097054543244733899657494943422090795328833381495490851057471610332693399322757489260915884644703669209538520863670881765354196792591506691628440134512586307820041681773551433412251900842230994207490735464430117515959856114685629243947589555389226258182651198880678164263327109534335960221116716122228872937488289810794400070388469931988123618821133026828129743005680580913985958573014571670371223872836687077333812450951471301092064441475469821041053229948498167406497979305978391538127080416502769876611170404458152246412133779110866579377144791616646193493226375534384403458494233641502435413232729638648195084518947734163052484481037914045074114838198475418352735590739540773993439361878907322132063462470594370531487187255120479551595901503901414014462245328870512569681916164235614601617867360745338040503554464870770030459386276051739643090829401774871433929968200493378573164059102898186712969549456657093771102511703989116791391782491090365058524607914907496621977627855366241755623683654665188779539810845798088416854664862225471861409753328374387287166181133699247932444609935412013195490864476215729475367735090699319776715880595566514642172411377691464078995798627193598795294236471528755483301828802203216733138927794479159769319076425030894853770743897775184493559736586795233014525565302866117848953277719510475891040150124597533390763297121744053763447127122599269408064963452120530363846492029753872904608646590235117127686533936157158662407682627077459033539732365852484598328322691141294720453827365290148754228889265468194506363159662629689390251146873226932484465783208964446837409682514045123945846133630912832559292458963028470832562271887429749406657912605183077894848929127573649992735414975485323676995068354781711621506367221645175253474220314280535471751605567762395196313951190633813437338009265246867874245488821462484268158533203926725300241605549755858838255071519857155897450705059103951699629239946129279762230311340147383492655019489487102155532272023126238074823124816365251743789348352364891954232997278802294802721766008859872450071655087579125432642300425015654340444241523671195756990488873129383292143574168787929816176099952848211355042748683315172618640791552850982013909037647647249977557328045557780038761057981324663368803659731998717390612391572276449339276138502869895435485945623985550595734025631616358406382714771046568823131647967876791228617218233192674500878334725855125008251743070651057635728210607559940349416065561048004931453444426720326680518616711355005280158516696286928710309407315554900638051954581496582505095901366929013087935861979650560400508669760820661476884389690514057034052482871157179962967765855083194118019294698099361243196795319546260424031207306361813105918800576099883789790822186876865643588063237174743815508017623987242744752261728818115573281864933069436498442609558869210362020694036361939711831090377609624850570811240380393429189847932040451802791313304579038866420933407850331808670444178957030953658645286193489806818680497821537713629205419047182477448308058910224738138343719741791868761061240078357544789100128837558363918132484936868398764932324120563816250751385950041553910331134549877127251072792062418212833840940365095001902736721162777475949736570731187281900004367108103635126786081067846765807844166263757794275970153006158697035181797781328305093396192280860259698265611432763885479376412059291721971064965326590371165797412215924218256472463984394597601638856625601851964223605328414982683998705133625653978234710682891036949276576364066232039527567667316088720732873938887547906793962153302170604370879033525125755343887230028912183209823664940823414787532359957289188290587513708504671227110476496315090332119054023682973716120945837679796012890970809266159009691871347128278980411227973784355040759713912901634967139030564350067158172564876977822129464089403499879289733942855888676197311201150045892332905658242395162107240376177213745401423245612216027922862601148224920742061864288777293059347799229563322952051173411906705565553841883868969170763940010907358144764405523647061210007519279676063457946360817020199703754072759270717983429200480200123276312239495412151833452280418073190053759817748836387597402391202428874232399082735628335005290815096932356450256538156730209314065724876842195235360352132241254681963162364756886325340140719594506554660320842504187454385189709229635742249725948357438201983517681350986619321638254744518658684125838121298973468988985211546729646057568560403836859806330351549979139211709826020656811213799572743421885858071582565038770264110783563220047903598514793567835665773350639593364780481751243253163866227713431202970751061712059886380071375625445596783011482477049053360734385659812295719940686433044203935989580735631156830932901021246522244450806382223155139863437357146428564341705118825670058535642362598688818573643975991648167904524524655694289975931635303349503929637452323750064336298297880118272734593830123383943507300847456481973422408004261477252780919719128734858305867992377858508005453591906232842642222004977557006235359246587537260571031842772737096091002613290605574334380780667831185959305372128878471587348582364779116413957697078897369880328906297985784316383982936395461322364338901514701569237752764552826294929992403795783112458123236031290012554858087317261715825492835988883374180414059331649757672278169447204850404767949544087151319953520691659229745133563821889605200522191838755373822507037984170707441151891904547827300225144525584079471441081154688783102732307632051202949622540504389995172662975532703468058453501358439165514891988266073576281974824024523248998754022293807240697004703909986592231856538808980027146232229060394368209206401333819770090699931874578437867779407912568447847194626994479341489248515783303973716898054723620539601861626157155016140299797093417330524604956188819561135507264282309422340772247296302786883897992481944436276567897211852008126924108111649384632933091883412930749447242147944365900283478582979019601821043283772848418862188320739088302968436295902268307652777186043695167220315090480594167353951936822678636086014061998501053116166956791029336650050507783816695049176542997313900173813551333063145507007451459625581963545020886651380395427747311049118507438545305176630265614913969794525291416440533005574607886313065879351175140312164118180162035250638380388147090553858951961766967612847781256570594517730132875392893915300019063628427676087625874403763437853542930987760450032167135844919433513096661302838932700218188573795667130398588786076700628231647613796055531511889374552104699634207817041769664953056664914669963629747787630338085673514368215516025187653060093579676465966756347454000468550646142578604054285832355090899919112033071328038171823621702511625120928855727108909408513850391814018348262202644247343919910918231216271335778811211819549173301432134393944800449745938650250826583961014606515058275122009117284611550251051119511141571887443230774977331937501106799828030974229582757532906240778337579111720100654395597821515881375126347234801086067858210766327554745604559313603238879872234821715537767422749533462351092653648676121382982526495188571220507942260840722730222235061049918479214387101969196419682685715645576522075870821768755991024912468289701450231227177094319589778846561245275061323866445914119736991450005645325106634395343211908956357191861362680140480001064261116810920899691806159682252323634946187011525576507393513733192709996623442233103578379659728008597921247691589490035829146413625092860212579409047970359021625225466249305069742456318397312617921624310197877553234317325986346292607240800597974599618368966747658002362757829271987647215628974930593072063210573927532955809066718833313432282502083834297308372634991838190542866071268079128342799549020943203746122955303976966227067345714777062482476956884919978500614742653366724085699720688555330586776724414529357793046107473310296662485785654464830705382581678853574594125215671831844819603110315035722891909623998681888867889699158960986311736824982666922428380806065165696864561459212729815124599479250000828446471358329852951574819018170584519543350057345638938596836254895349630434576426629742316306183423334716862288801267750360031155008912474356767870833352071793317511590582573250403560979403892575245026534697678865565458403547898981206016856044304439538242655584263561513546457279099254040892964703857778613007517806288178124150605573785830090469856434278763716631763076308557837015017199977968004176212925494538529839905202650312606940358661031891107223676497687152124410880851789669983450748173258789635112350982223107386601837382072854577884958190681373756205557209996479629606231433356161237166335727423648532124626443597295899805640555771627409359311519314963180249896869232048231476894101848949709555262938229104488559213661167866738676537611713790082778289669300590326718717813135463250911887081337060726213307185061735593759793085125463519912383910591459804703632524321681693831088938982194394821921421990946486911252495205898903364777976645702154359139681902674111831886394945617533514122922679169080440752385120975544160694519968515543766504490724845548781753574908816115527235245592331131413075963638533953785944606249871929595756943004407875819419297714477980356317575954002181241001192856472729994598173125458174897266698802432228958041480383171902497044693494849817072525448248143406880264227441480203857708025623176277126111329019429540598075109693904263218183513854347874454696978590099133321581940856537877643527587515795210643201994829526884491175372882494103299322924881089249600459785249777311091130199658143694491442057878893799150280252156300181229344690962442619989034621872510506772711157104117313830673410434339621251745325388724935374647428958038936746298767870376571731048562850271229872264420902350777312798408817801038328620688500604244427130364981675283123741098398039869745572205396045159806104161437007327576828207067596898209212417797481166083209482476656462333257279631659856976505644866424459537719884115435901135791143855694956946100559949799899879413622284961473370464531215960799252302147436005996015339217601556020255472140270660858738808488563112318225213879745420326287390429472601651512758571984129295877533036280023485826399884773602211586736761695588690160588749032084708097649756675683348995089308018083023363882545310360302958449966060722487147652360835207539754949694973287321027492748404607409542908992800073389247746228683852843697634444429928243589218086313744962794665029012017653034099675178595948780631509656024036930601485124452017580410588485802231945225781928616751660930983999550012711721769199975141928168404230619845953837404991635254983867277322668545913572994012364561455367533299454822094753483103715241918827579820351793295284009284513122129256335430986694720808422848320226831070017216211620464193040532765176122284521470968201106554653577738473358121559872885732360668636732030332175388818600957676374908522517131753752355182302071189852692783110251902648722894177672724982379720778784659695401344034826251956246186402588803310407039475119930006039874650312268745395881196254229240562414908443623130980325934150634428598740309446686342497306558549227756222939396255905294447511328240049576455390686675513782392433448973033246296308811375175336106874304874941526576289003949793579691038833405253514283123346375290754932406831483258038157557669780148952799949955914675486570621093576608375965313314333315628042741092765624442215294001175784209048320409294541343799293997095103174916318324841882645401415024349487372504526576153398219321224875074975209008900109305072608731546898824072981663170406801354004739004936086093898920638241484830030513157569241002919315858760655818112197172091698269938880131821278007788012679831554517318990292789211074972051410644853966708100776946911522783078515071304544810500816930890219002760421335287989825911679565361434876153523886460684779920189201871675516925595760207480671812419193016053860746168212028949702436266974486642915507170148993997427827629762059481403833125330418539388050720868110524038828707830710470733978466585587409443894647086407259356206354545231927769737095185770854431037191499380807972666942755559777499186235304228733029532113557036180976084830581861898118471223974226414248834760890930028972052440556085609384822232335655870745247539609595486395997130612926646899352155278996266700641517104002673603652305418161177779159220641388995538910753551999841776143013884374785260702234442127043928817054430604454554043166764100252397426104722338977928729042861888548499475795088810221125513549997280550382585008567526074389159609768161058931905151136465954717970087777228164664563384002355660019706719942383416985610245582024428942244634347399308307879653190780785931025910672891689642795136799592170391538856596361265108644605846633295307664348195265694054883802743025424433882368487193686744040628467992996410494041076105778924871628700400669241620967497472367830405505041835606007861572892286002178009503555230437137564875412328709657508187463582572570552965529331001493344417679344513520842139968014711406811984580424879723353650999817732491360536647560892838647263180125867714187275568443953915100510737968230678057069338614909742898574050376008670461430834655134486444097271758901707136300279253069004788519528229478665942256587289658481302725173506259990045708228564363506376001804187385203021578857864213279249494445870184045824004767226585680806400798316443348880784987847049996762205691742258676435566401315784196412802380759222278479583733386835194935642756986362598299236485752564177334396971288041638039329961794236390010034517164519946654318486445395215893586636340789540331078997404464909525598569481042146922752072662302545376962338231192028605199823424645133606623132288574612290588776411180674912365871484899114979167838697682065927009822598863996090268203597014623521026834072976175136447371261184330589552682239620634720473149922765674420839520094446124009845696338867460167125127494418420082963485881463516915114322388135708826600929582325837765207179079459040901601774556276978297118818372875900891538034649906110283654558282932359042422658821613333087759631789489449173179823139773921328892298754588560354992235168328574797230970553049484533808290684152112312727743147704885781655374053455045220371360240544718761023200867884406206124249570433903209530108934116854139472663954808107059101511373465694297869618093033679312237038601798645018777991168117619472703500482654624155727844492040536269798914441102985485034740497993192994639975525930649307929382198586696367372229005748382715838225527104371675297504675751499425169806523656510639591720413891275119331669066879899671582925332324403159150971902032142435957606885004763263724786633611108277712647952346359151662483430895055665300052297071346672824159539521664510571830870362562697676164758460071411857456978409531337096051131102708447653861537468895239594572362639746641759181246524274403123794706376675841406080472855724520410822927348680030746077255360434848197491090473536624124133347217630372895515509969323687014654587796845077985642543311029090962825605330435444626371485236247546256710960522604975583022937824322478754390198720795559692637510153185734292877026537514205845081580826203959677189461311576101336668006324633876583862746395626144798481759900757827998149780278309655041788517190406693685826890219280839090149352349437017405804026834700465577985163465944001966245456959947710919515456717771261477750888406560561864383674399030481208780147825636375960841768521715126717077079995155955714219994554603803316578987208885921765979351390265494934793813279083266535560303035124795537512274295629143176071615556494218304697848099837098579315867174196734167278352212923579644423778097728958527664702396153459714115813089920714563949049546109597452914640558427837874479253236076296830434217047454288817535940648669288829231794044684359530904320027580565957680668287087820318101541472323177174113483848811869358642084551832447224904866652540009178792897244027559276078274255852421241913780569967476750528528701345459714375810523184210768453619229585874743548596171318201573930701755808054996033534265157612407222228969702386952133548389687654635634450839255899607336614324400644347128490905726800024175916675143909389166043073486836220747631573933645437961747155992983147797733036250528684255468074951918507502590858493903056380949675544601932889604194669604142753264299029810671559669105169636985430439907144180548464052929576042103255775501384100523581739431803856823074440650487515540500289736318072506406724820280273527040359030993497778505546692894337872568120141745384833389254898729883612542007631398758518689856077595621020130605141300267969904112362600415342810349484752712488405381553030191917542823259048280744913293902296648578576781984484468145459681509644994243392337971221505843907498574158162581422655421853404226399064992277998286620306996337802785036717661415270575124055742492081066791395693576978272846484018565430065753944125020234624948517656128618370337645165977485831811925255529343034903667191296891168157316636347446743052378479118178754979449894211774258487622806634989865230631431765181154160693142238314515796118248136919617562799247499521676714291330540684742145370128404586017514570644936977085166283698156279109607183329439897101424029432309700408276524920002560229218756106800762281698889556629151697169448359185860050685621679620455829347755887038383935046986125700713312446202311761834096741044924445683672391375293772860769812974265443350216691146056002523718811331665394230388543174699358852270451912441619698976235000890422212917124277149059467585289279143143834242495527288945419286316873314373125018939276493164090933554055218273426716259827180898241621054545366703317133937215096765350249846594548326435704768198876465020852002638556369893533285608456358984546107413251238232417306489874909868132769340264046787815625552719490564063754706762998551222453892792748609889147911874037889892824953971982869055793327018610025433862705985259583633280650233487214094239121248829495278331838512945145837545987918973066123103597414854014584089718711020845580930900799572630218557094929987720130352750134015579870898107120215342296026287824742252039406766322300937633630986742486319493377038548262399331746655464854132341977463928282070490617290994611678674867987337832071018367662107221097701441697182879592665701595509493486635964728265187131444573830447149945233030646252010142403953374435422838702841999502882739541206678856312117044362601025732190765758011281270985419062777818361819612747933752959278428279919384962704658973363797853016301166581878561141800084793936225998274289800126877625241774621938206126666840182833959532311834588341137281707226907339652880689672362150857550083520978926974647982827054697525010833149780118667762469986361113438440966608443542753627313069996075645593698707810872073121383894272165706456903620131418105473851511407501174618962787639502775985283668659163107267013898182273482552735389224829267713667292980863415331684848837401117003693563093730722611368833453860077820019493439493603777978562978098316767388178485378979912456675086799048205828397074134382176547245342963689966741298953104627308258067274570706703872926498017171928708973927211279462803949618324923824442246833255222537555614510436464940994438233095782418641626587459161894774009708095921836326277330037714703353912724608692522797572319142747765143943969929883252849672837788927684961341712541823468781979581984111135164716626685242555667444577281276041099527422059430045153958083034070409739543530979442150653145008092136753312667201192025551085314916887617674343473735933588501161287064482262412941715426133289524062412431773429070640214317380407625042199528178782694016137471778343972184594532031714879420727097042130256663989745836790097761062049877336217819524012173339976519556471745302553736759969150803528516660284234085143756074569258225276688780630320089718373639905677775742910098334414109455537452195523520970642088245213988820096289457314422944212657840190743554212118203196594493710116211681334896372405824072785879109253607620851311632063565390068862580285324040934467479067789052170251971132494328820792568851814405307481485859891610337879909593976349971115385740410907157352794270901009254815482249205428350515237535638719763673772311906543732188432836542317623362589753734168707891065315863443023996552411103872615179237857779156641240844635520324716933596217295615813592985153690323373762613678554044488147879237494069602558087601135580140091362134231931903942431814965096499651592270874187354865770664343876158798934893040280357929536022586269556221600469194181746176793765375810556595309942993983759080709915789888372907607596799467986378465579840080034444835619290170348983235030515712344412962058518786172348033155897155602498604417528808488051029737688429781547428196861294242485319360403517184436401932798032414218028351922082963299535957056906758106151172495185423230213876509018674528660995618709325831752719775648964305139604960044581120892872715116427827490488037480444979474335753021742062836597644798377168359132517382262812817402113282724539725199424062563371193251877912806174045204627096921987874581342582107475515164999462020869998539073452795078275799043519170401156040795858277623166760314902607762364047790433379566659507709942702240597446577467942814700296041203436314257099091676026022099535945708289707463942192787558171043826351847233576612676448719046509782067757093399272077236167450258743173079121557345149835593173677091217084324513604144746207175740759172583786932908078876538915157826328567871999779877260046936886918127293308538854783716288933189165622918434854435860943034596539262225073031295267319674489630743969887072105809504198833953050324110508839257533248567406291496998990667384017283741464019492854831855712940161389523959849678629794618981790394381828807162431460508040885839403368891179256256991000478772742389196098268340926623681032760856676870854886605557556338428616712938553393266703776096535501263194164372183643666435984801709493779479019375388496360241585138813771377873201079511014134152633266281284937566493849018070373768799319451866488581546850789456789631038804977393515374822066006305578195676372276153691241515670690266353652445323923762273348079518050683189477769811473504222085220727404735255499996617973363370468183585403408705503412945654278274592450071580960702779316594224706919593666029020669938055720532087803730611403867242726311817380915447714145289058460163412239480624490419990737601403937861402535494637021676571757229586826439295722944615922513647527938905323406689101711588948681192402456506173881623104598293079983982139941744242897068329017921666018585402575614680501505815530250876955896864001887983538635829669205453797665373836480173086127718322332734966597013598068186750183220165237573372630210387693583302811839476958792899858713219300272026404334285134458831703172142315100710761217999119372941597559116272671590688567209888047269732668539236148566884732459081232885652332354957745450105386294640404881970942785959636580095204955609722968273021193267162072894744901978144674223851619733289642156576904436637461629193225019830987702056839781905992346785275253632161810007897841677447885087100914804172007404654972910994275668819915493036055602831237053670180826593683686736401865937296162058793652063440203980425703082283383947259271236290568408247166670532926514723953265631001434322394049403815121919300043561019116867721526480702441730180238979100433899830909053082533848711178152556518666900479109001829408122671993116644649551724893765201591948117290340121172149972226375513616056835703743452275777723355108230241512987745557976997098735284122600573270599280133687788859138945188982655593764883277222854387286471996327133951733412834745900795420173593790892138218699252126226420613202367517850541599854526812754383212372278552642628974641538170264010217026987499150640218738621859187804344765394405825940430383449159633072513510635994034455142482126543343715344811375271659374418643043985762973536487644816754050083350818940286060484928507572599867623639923366476345295838938495608692883316361919599742992350697885771322117646149039557164448389557508937093903415305931983680962113787533122434263603405996437200963606254833471938770197148278859341715125300516351492564600251985568293196919424395115400096809768346933069552786233227784934170193454417941835362891297851479291253306961280037360943607068161339148777666944039476090672207956778300617748681834210591341572841968145702008891412233849006430022395899383687949503549150164487512838503713534122484335590093392793836139877541957180994690632334092263205581373156123215689177180400621781600937982853770406532636007501530590798931313790231821819067739667952431488413516549803033240268040573586539400935376776563148891907758168201864294393690701656435489020668256883169319277944073854961840240497689030286070309585538625370640784221222645339788415578623958404050918869914770960473112600529851073180595403328909707390243554020023952996956951918760833188433778314579002015893051636432914012515630417895715773717210512738979545944082936114196339233027455588579389659769681012133866105519267870650743150412450092516658131927029500014033387189221323194911416504422764467455395753185247928902090328405138739720490877685298491057881094770303046890980125755666850073445673614887936591686070113048824689679174879573437886728654616871185265662010416732033817660993046451697938829189204511711511106022759133669395710629836837125064627345971048581619792159331770819221889832504386033916368967318015792084059730044699469958286111887505205386010688287288837453311449755226236561413867920457834475101105221770851674310070412709610986783374092311079169885178507536424234229956758405828585454189815632703018103296588709347571653050726405226225039408289821190018514353374549211229220360014298839044910396694716537333994126039030429239418392032753958176226253564255676292136595805693418978594985645816547878413476534001842349593460882120001836706184897685327674873200437393031484885822863817156387196850352216725921883652933116652754631686551781206091127875455128844866753059144485426188490584195726285080037250033450816993918681760214683922794774003047504847841870037189995207378959376126124957201980396800202695746035234467867976955284785704545155767692329938667184485445502639110043475607463872771862901294953982087875396503170095929691861276165908369952105757790558666925149705980713560411421949741778710093873392808448033767962837581215132033720660124773789368248565207392399257522608946205244146795952421561188979393802670848593738890297916373430090861516659591473742315910134363520156618000976814499754896577787474436744142851598261224712132748705637594301099670416261361629053789213263388951760795032880254938859008006225004006303399568894212858104245366439367234321066553713217227747336775952869280022325261656538217475449181267506482980122801679258892164459467141664350460719704185452001199793840661186030938898513887262698489182571378590458779978239145072442668588987605499433006614347440882865051837906701106399970379716379937639837221979974215370998002690410097963751494288492441537276149967238709280884422564990519209639414986929018040584823296294719964316918122567319790325281367372980856943005903118256364190575884602488965028164231874715229510341764304001338449742591073753952534577151214622314823569858978322258072037229734390959113251224125641272044113424175454785238223713308349770746607141224576744882339478560250838727488834665763413400269912195514077668128548738447020402394899289719734886224192160516132087077050417360817886912484602277576616574729929005094550916034585098103494364673832716879058401059542553700944749059189392896042507593609872005648623351658960372593314334821870115616829835778010904091323134720690433454618380872642356083799040916794289581324567961905575007150051124723087100210409193243046649888591367059929816372839912113940042607153538726124237092919458663312285752624942113752962261270515347167306276634405664632344531566098095577261972042034574215630473499339909234545963296359886277910079100050374287131303530223779240039510539226910855128357917313602150100425812619722334144403655867004351899658381850367269072385267366906481407352991708881475010791817158268321933342651040849335988735427193480315260050478343159732622221626189854102170153608972163387483260682936679178977595902340458163927200156390173279480182598461289109010712987864517537999164927233848407234315596214724966380815199195716348870832938638636912888630577464857455367729190937710027297502804648561866310989663824176944881542945508372219430638907239944600471366164013795155593076764871510672125050496040252326773175414660845726409410469543655805488281382671346116709039499942762434087924747822528260844143402443529238480343060118471038809530952971971197412706851013295348946854132890597809103521074929326792554517911865169009650788164088347295886836870746181430920206986309930407688366244155991028128545426519019412836306175097912151778981725514500712405049038632420893055954958083424447304161060385427215488195767498847181715598179366846582927324608491672747336679694162517812809391755748365836202786273318012296563585935693340664386158008279458932695915883236819045804314240105497687902477858201279029635146701054279421820879074662051845327194633975303348116212423568796087462563825842604463399190666832651108213603380066560912084925576995595826964316837495421213825884761667731274259398548594723028056729816871847075531192315497945328131996663554165487246290778598509806011669797649540287013389644684962438223911073231201728920750097764892767915265067025417060173899917002139590802492175106739542118292846059208704579269110452089487364731115546655160541813600527636945894164974100497469900405779021266980529538120450119092903905508210218698307775426740821745574608308060548201710812312353179458740583686570771559037007905070804995842061771819474345807611786071217633306503478837075175945762852087478585561191316224974467042171517913901433886801601448242660091645547383208978799000195839004226957791651453599553742824414736305106128722242548694131948438084334867397091834167981892388604456795621752263534813929355704899083385373599714733299113581731956339422479251146114527672577334564546884634438284610468298164325105396385826000246004497043359803976315824349165598630512879977684147059046229599013769220176297775171183542869158730293652855083208422292559207281582570210333850541777562443312824701641911463607781789710703025391761697387113790064403143652148082015877125608117923858285829959281739387399366273459519859273665627993245080425729158890214911901317837561808554307683315813883281764572303129446059831100702802153945734863299723999610759316854555945036606701036733950611693916596859625173257329813429931556926204978517257527094256472097699053392790073285215492910095720838456079168862138677416501384447286947104954921022620207485207105448446517367292709035252102312079862333812977203164127932714398170951038932316778528075598197727309133425934743821620566228230024174413639959532740121283919204602343240425324982402325572690327617807455846898741794866309754415749192270006498900750214437741354798462952537708031836773249121950150700895303742407242726811349610660833058843690214288669913895180797949738668762673619949413597975148586676559360705316704868564626751626151761127678503298585328189221361942812311361043342917597224061366122327836948358092043129440664076310103891005008679895285499323933053767613578778969057716789249472203600980918594683485457375652796902007372460920583050979405823619596897569344432837100921487568121253860671037185221375908353594978730695481979326600977082703383776043533059233450818917028366221494969177870973271817230233159922577077318662741508026787015964458093609951217430005891261896688920101013716617938444701564287467744706182502414276669748859143839495551275971740709629720768463136726811321080237214360516685960664438312624295267910102659328778400487475966083349624727376323907334841551476116052459421738312091289089716698292712541282324702520320120910457426969292240900055231338948232949720782517570161161057380685873963635619749304422581943917127174899841533078776791979925965188973054842117228033891917849174806976394870039335428868978609968624351426358506983782696174606504921110020085576870901659325201514304946130687050831984850950215632729763710769828628977915809083544745709827372769186816422167835090608819065212650336503321691335631674103458503794261802860042748578044146003955207111301920239021050847025413819949640316730359783286609070251858960883636096544089422587590101800385261252547101845503875044244152670493409589063677405971962047858785786595894927930628101574117530446593710519045441427594513349958067725149213133789965851394484089922619537902454165567917235333890629509867251655518912895994331019088677496129836867675729496750088342862448312261733923518428961178764062666811927580478451830259599433873092949217101300411948630497087972186989120665540874008741771687202618191492471775907266752917160352640417478496174752202643818922200920057094176943696058106800349340146004942841609915623555048940004624460388916983108250706776061582202174035089967594977184840912135152850235997564349735967485800940541848027382165350740906764249089621459465048758640839109748526729638732664906472696036444255314239538767355385284181237275767039800284644335366963586407683753001857252369276050697172674153397251939653348737897016115634818881468863603133127265225497332896449355818847263324424460429288575925948062834872916338429298992330845006072767274644706577144974198978650868491554935123988333197078367340569682159423690819315019629716444251595550581830963818642680001531298433608666886176337519114621614269388053895277069665076995488755787564996322345843635492203605842151231447456297941268055354602396052951200373907501526652108743501033325400465367895518672186540920103042816382420170025730460344564188339354167007220982714269277101123496639820882144428529293644730232379477809617530478340190086901711170000028210451677553064424623718071284442751576793997230871352724368519440928999727780612905660741721802719643679848516932021212536747623920860274097308211487709839169853036053237215300700041423603730406914013701428933394263024362041577136846574110970248146021118554004229284485921416044505100049225771852819859092610622507492105421193264257834024060348909734806155933303968094075955707269954547927860100604267859583669026855947059315089802415714596854076499516257126019027354538475846994650066968605627091756015533651340886957716770545687025620482731663358178724910059758365060469018449714572106096381298114952850018251301801779753939764616423306033167111806382884406463529835522405225842798587087108887841879311430401469654287732359204429484034683491280430270488107105193742667090712007961884440288346858803040324253033230672710004802536695213845838944321720515656004358343972624697509760506857570295192843611241623713549936870197582184286131287544751688019132334492929223395058380475034548588468591587657842963929829955946098234948179374888806848338270147710625570626991112185777642115456952249513343683595731920115025517890628022494102850125652442081516505082750993857740379015171007583193103319831663708748247987717579314840400964074626212006018658164407917297434998176907244468353911612095773321583057210632825078172286610679639575346832655771089757476383473986149944637813311248838595764552548280715458972850611381792989432364352971463083160500688528414336279781007675712083908868502454123677917762133707135664650537619249286315833046192537261216999156550322800663041768739598569655345374588291784196468816061337211257514541443309918812457769580167776835165057987918803947513073509644618003399452540314304832578641204636120775875843263004969169119144350253568484944584125514222618642106160365214548304622657798726994798153014624686211922569948118756055288593380916321209034388371603611974122682362308835512090571961197494167025339486389604318331865117508073702248860863035807466294205144786710834686579251758084642484816314129743597830293420778293839544026199004719263560083234925885245907236749367245398773581002346289866876514887875444291892649575800762412720621877149176513809937678748090605350846590079186717684720716871101376690495251294518573518653839127758465801802951754964072762063670221503671914660510544810907992985962596446002363417756182897547704377609880276945635376292193584138486100145595486873019904145280453617665576925094308250635537898113641717390624368160942093034945733226350855534084082819550937104431714682946922258425648201912773149882268340694587709046118849473700438144737902310347814050008388675669851893655627678139846932138671661192113126800660874447349290887255730726724831491673030720567460404166215956071241623560691210979146126435494136574108760863259928382322526746254487115905531008395020578197154549095467785189902515059970485626273175906446646121768080503486209777660743515633817915534530324989299240824754443510209394846602901868504356125554016901425619314643655969234064174962401774245970295654223768296445353182584845665004815260554379806086371495384360610533855012290699096567528921268289398231123973730977019930501345966210536569478650758311285479349220550337371032748782653580061263925825883394475206962929986228108544435968405837913729604609876862604364132747205062724364494588885874723965352417279220183576251678862072566813874588111395133549547361238084241475226154200964489156038729722098048372918103434750049043167209396499130877415997297637880584717707649933692177068811710216164868502919124893105024156292048475323169080429975633799805332474013558762603089083829453494263886550286299775417329224660874473605960278104006933299257877761537413065701773694100807508255228584008378425556250545433909000919516925069568579679786424633731437836889964594483715775899866768745654587315737404594322191051073296901228158472128606229317036091697381194995385927045956918606419655621316923456168574613145672944171797110567528051004098104402471667514415958895277840926546938210693485968824328480329811722624063627335573911271884498506776300186254337674871544721403175586911513704710813797785173422662187629947567324012104395211229023078279407972408883807182889551614165139272407374521439876187978658446203142071054339192669035168308701823935017721266543567092773041405635314844452550942869417796657051986614827268222742491146690566407390971258091178294301517778309557219587286716594645921553967677120150112363275811028295201498721512488285569290838087970076780761405494201317714220425087576629220442421833817507790586078080749656469931383264998485901671721559390706377113742950043123055199619759894575551163180383040806545989216475407149140535843816401202799500039582100609383177509865013024719769074152714186100623833391321342465345145433966273235220748606640857461166976077944308522598356062841514976818848114622464285603784992325815440132452785649096579024921384733179031108400800787010792217810911396962608803140746844575099789485947906363405096473250621599642175860233500418586812722705185233612802811459974858465727982797811130465908615502897038029403784463852288436744742311496296345016813625372714218371762604443119927496470830602976861802341821772862382703881433347662461550908626484875467286969593150257609343340570088035144314084893400354206221668169763464593472656749644820282113301973380064426781697892123263974810161862413376264014438862051496844971492142091191498925987624508751386925152996922544422467342343166965099298601970855300725100867809647265159883086582560609237141544989563169933208330309897439715685008312541148717827609030434711427726966407860391912590254017891356535430737662594824175820694585906143163599679006235845492427108791731278154422564904736699884244939493968384408892544700679795424448827115777568219313894939861838830677138571541509211254410800802130003059749007581314904734196338976494685163630771928143688340585160672821916747240277379311408160886631344378647366723270021579203773146753360109655956553925831576429550846652582610918568402528394524118606106147967793011285975541395971151054177055323737780358541657136980980337457829865777004169128190734315270152129493018627469303271827074989836123215293683542236497720408330186712486696569120119890652852494696372598386745840405765580597874283818704185716992402947070033535190704165812792448107573976440427007485563531774361030052194258043557865965032225429562281643335959384717345083996653019041105144305017405267536160831698524950743400938258200566647644677154791137162709626215140672202383725077830671718954129097061668040525263796750842455806136008435278843183370044228703634746373344908913826775100729138619177661858679263556445281397560788374311156309749748508422316288510290133538711309070217587937713907349714875240069327934086090248289985071465562171715243986376240280224090018375432794867591758450348714679464365440607145141190143137805301252798648815772223306346086835579548961191656561222640566721335521013769371635014884108594431900408517437230104306401398963103958693741375006484154145616455187281465768686556678111259280968136549071697429635258943598103053474306569449493711637719157873587770656529064803108048047489278395438351521318454306193787759134384116901035451385489019256616214920082535757928438549339727766642063754992965631971168067158461357939516842796026608220500010157268735197419366218248074893380184193366539792051408546143333036176862401252642963572114940458207616463230727379535778284573219166004768250082128523013817566638192667964758799680856441022218432771773017039709187875629209921223449265170061906382190328269470585143823092935014401399905489911572909338046029336607602108799673224007231131806079034976117271745528999192659905554303374769699416060507957010073042288929831385649269144516982755902286209861588564254590346782031379972495050857727118666689900125593507226563025745215791380818586000225048584313611131915309720353664506892960372001179197972546772986502276075595328594696896575842270828684929852119580139067469108918884081385501111093167585863014056947671574976815638029968137584908648566739862955842163291692931779670075081740101906384271699745462164263491195955141505732597925113210253445098325579996515881972255395121368160100223958813326155045788149418691851996907820129609815389733523591169246972128393704839837664604002409266530916456597757137811402681826064884448335302255981982246188709789780893209342904758665689023159507599233176535591082368924253823599064722255053072648878796080204193464957180101839126067016072800974333078411724827444890984318548631236076521726459817501606851293394641627246901710106456959889731856949774720191432156755787063349716902337954749973236030076482369426509071258097821344315632238460307198885571153921203030104688189440906430591359951926601527022857888132775406620694623736135201228401782056363507299427171142588517834826418448317158156159621277236013276869433359514827325217496842634816913606306090733543397475643338887974172704794558060567938514753879901996908525640122812047790487773453860137816226498833264122860874895850445213525421474727125913402617489328788041347706355009733901672948609889363792242557334147096768720716696874075321412582232819925065977964689829693897329634753402881598493241029440900214340397745175516685232151151934517943657505546175661851724161059751249960237600646648252943187514628976395732453018028967494022679412022414668808817827818087734335696490473994122692423424534665091595465424008540660647582281860712203827170665313808825110891248476713808591184113915580970639862693149893105075595702574688490403658096049051368459954268447096586406097268941329505703835151752386235998198733520073053219461562970406134214002160709769215145113321364796375727712975526468667548919612259541383532513695055579289376092757558062156434726108335212677534853616491271572963705245010372803248219817083406229839886673274761231161726121589724263776930634310795635782960155609410417513671528393133379131976400499525177855107025536756916012580087040819428861923084301188174503830529012067627317442203162920863420261876640643260894338371125882176019635582369712927307572242934186987772276264690775729255396943682659747373214572700084259537472775909109711186877662173076727942899329850070734563864279998999076892031494393379499175477906598516116856099495550727610125067309569078368542557085702143461153355597765895720468824466362769851941402381590661392119646125693086763007799277193439720121407514617721006385932750572346589422438950045132213190417197209393328322149813697856215825708549927139018906153305847400471846176287182437574261878000727276093995047324337676309392873385137222917911158372513636528442563780941880715751785762184648293991356033230014062417046661246071168450066420719355498995772501197839459484139135125846708290050841190238681489026082233151003669862855940584282279383611651816293016480650175246914896164004950174716100104652589425522249226316288479217301466987961325954539364992341862803157721767730782478911830117422308197185180234999589362597750936471069812193960328343027326452387661500207497712160273156715641641761007798988011638699650330568440872903354591563423617420559492351488494926365872085874347465544700830957678042016167138511620997725849816050387922284701579218772002898106887386126170973659196649120837757185182377651674259344849922885333901623359112779294311627248336855019475074147897601462754143597271586686852258571058410794406836816719258777156660217012956479531944859757688916171491773722475371555312325318180572548965191310393695751580320281366446081175727657499434634431562868128692211900467409855196909892044783051940623452219964185535338175346065756278900639127136424552955313130483114528060627581139059092814695895648141848788455867827934326564828024761044121164148433616633585303608771775124374727508544420160488973157962570968975803604274066805090910331574319906913277217662171766579000081671130546123636193349415631083383512531822667773542038437770521659079766748803873975452480947673674530754828787782998824484999768511093096305363280482736982883114901989863211961360502159347687857522267926898917761799109325205903919871163981576951829557278071323341195206892173376979464298704080686595363339369691690561416149590549876147864272874319310427540570179670057341100127589409814291791357673110800794341655015996600193951835935987206708149140904896697861962238670345534187734199601789170317117414282259422849607248166447276867635161306767133170961060770355571071647306292169042040968167764660761161174604405756097895218210327068804576837125636390122981889269039716539814556394819302538417808338043742949261600064722265498019036390730380558896248217171569087339749101160618564324740573914484638461696068345536769044193564457047769687877143494741114320105853861009908877201884875468602387159554115866924950403326846349834237477184741389020010568241838864384238348010302254701012581046918515929705597823214210256255562846634892286273522821715383129591579619489395692139374501131387236864419872244186004220063866792428586190571298405830812813148045363003713281038891090604276909182544237409512237574780190283543553891643757125687261773215968833489135419219537889641324114512170727010241694955171323236234703208029921179983824776458313971409389241158962952949857752592949568153158631416535769191685406826104024004128537565969326425728805803213128979884649749529952700588082132686968971768308149694559673044330787569661581414328435870101381694185363624920576522689765737136094337286331641960604703629812105759868915302727581126160429524327874713490642658405958618689258809349535598266883462425757463876914182046331146647200877258485761333351219173939764878842267568299153014864338656350081020269862114155325218079326362457509406926583793296939208451356932488480937373984041534820235437120008589702221956129794084849954712557360633318448240391806857098706263235812290066393202061726344102080185838487972824027718945599727664359536584881252381819318640052903161223118818474434846782272013590637117337168718513704706059235072636751331637469602411010449748868990077829984784195904363990402299218831305211825204920288352361266490714589516821930616938738778580291243364307194335913903902482313228689553332297252773318449973042875298288615184874263669873859766615190547343631321377563269234527306515109854839334176846647041788121982777222584614708083381414315694220664882688561011654859815371630484123508422840667553738832004840954761051895876109683254568635666033067089452358433449937856941246586077444369565706463577535495782739808216781471509813706818996521140673134747367750337168466508533805833977184076671370805629589391780006173290825422026757727349004930338718259827322988551435976144158012406886639639398593035903593020920257625552017158210852315680993268087710398430745357463423720658642446765086021142591960022591714732538369431084186288589967098235397346732120161378286272492552429975612969033537818364198637137854935820215881878567173925508724761115478611936478641623121232015924970159733851741752572102043470764454653586595319632552074717324891858462708495506108786497890812261153673299009690063184660215385398010794230424160161380298488653825067731524098517698287679212783084711991179178422748571913416135892154559081021999621353737973608334100026991313958730191214951176228890248158673814109115464232442804761503017266913718098538394284353531436536226145206456028781843224567803698534392873760644157455755719047134659740060230700117849768490809722019463126425533468091548771457060597390396642361542499892626184674394917402288172822522892018632662880383193070669383110352256389230209045783847427264735300027690636146101292734272235640452636909977376323387438747390743715172786761095745161524664948585309620798331646234977823820018993520890488316792225943357666794265129859584952680701697756584384270208959150558405179287556764729318199451071873476647781958971505134626873230129680780829136976571306670116537980177445016648506818023045636573984667405806095606284797884635565945393337789130840706115568989933552306720794618574225994728033309621125206359383881018145822051484685488348950266385803668773738680265486019652516997979574826095442701144259619520807324696754697424537124719853950199704684880731228740452532164218565465570199494799905392855830765301538084905283474351210157669137299108470118212069587387990600479920836217561206923457820831456736133182197024288866086921761708625050711871048299369773990159309957641962975552108643771515497788199907542933267354950169486396592948383699413085057718167155845782402487059064797661441917095021324702578164340770625776759174488495324472821766225420898026475208776028113892194972942667819991956127963518556240102984417551396906063890489331001233826479259569422415607750503883926608260258089778502359176912660775506284256449431502900544136852233368401888260248354337300764330643521137216689473703200754861516468912451237682626953816596462467367427156326162349429266124634463587932695054144075335643650484839105281505386529544298460169509039761049971706483143418658485377109183831564653050394213207674722263888933923101093437706342321672051877237857123529457092469513441683487057057168500760227834209612960033961400417326201032331090780011683922277600670612096953079150547584128466437587893018334827787435106537256388880856961869045752698122980986066737642339471008358877893059212640857770783871827708905154039870590022152517554660010235291659113170541133728242805760888864181873473163992866699681767883950188839887832342033472801413935629813016055480118254715765702582114643484960355991101698871136454706736389192059161310367429163920175330627112337101808825438014068622717673194099674164637297214549671529449519237138664582107663027134675903439505121241491353671583385635521433119934765018916800881943875705294525794560778838775332748654160496582881446513763946659287770549867050552752370297884718003916577852193265702819572261275999221138656818321639757254912770063237371141242564190268433196979587314167127519848440938352451283297110845789510159659919654430356041655839583007296514368498342981806306025371717826182910157852887096676102284638877103221482383432061496156154569303066438917590360910748094496151645984714013594194658127666092510777854992708450451020344117571943493345667782081763267160370625217385347157418067282312395717196200794770545151027777579138809678789979309952783444237572332677415089311172173656553057244436234726117814136502375216494967787918201610363516998223782792402238148794359338493059596893643082452844184109337461897609227624879744777754249334579198378150272470537939752398645973673149641267540121034099148030171120372266987834050024953434820058165965838925081671135993629715132877131648292164009833161305780452212476294977448045043473666984267671403765271120636817606089632367441934772539061916462273339599647129191483232751660508114036248474191447127755696517537289030773366613363194283385970807260594009561181147524944079315151535523561468914999608360888088058234103665468050262399006911113741800115498875774740802115197270581823708789013305720628002219829930655668221844908096985224427104920719648948018183009342367285318207328791597343963076956871944013279166756464088526268070481475238090074838979209362007332702750321948258359209523629674207972598413714711862574851514089098738524885062252311069472730839436845571646632811549608436795836146415270261086663487663055870706077712922015868589735952287220863910689645895872957392113897233065334361022219873412067784135120104170457521828677230149311778348158033890578275447687735427073768365718478461284272645516229136906009790583186012631579513100757650363799914383505610971402202763800256782687688577010931162707728010366394050421527657623333866276294447255541567327037712869385949512344432295363290811063827719140251122894280194055381164124971058836743356805216418805094594797770341010147186164526067136914737554647032045857842683364353952621535809484876739715115526778330359685023429655829237651093326995541800296576383336916998496457569278543298543696428507153153296903940533292937061091111474282331834592459161371160979517659897309543520060539024686192030967500151204520517506525735444927749496487460771483380744077611067460566512263131889729198491477210520541814224131622796004508915348677884426576314309435488158056435441744742487917874834885543360625844479333605034203919695294728970357260266124043450870784986022492574596041458327534661560079125675641082800643461743320397163945008591523187546526148044699040003844341608548600647091659255079165644230381145588021675587674590542988620856526447601627621225046149907256764971768784420994655927712167705178843371942432823465419093984207542277314456553014141289309947461030669965360452426326365321228966496346437193043143773178419815102521842323347015222270726617781010520328885364486734950802514715714103029784933983269047075171102654664227532892205361541612708785523034711426919275162027641454664162035296788488420359166731960894571576243386041820740936700762545972724892841435499776267312135906988134991225446942427577686770284522057035230692160777772333597833598720448009693985519502217429359300568333977626994774505553487772630696096092563080467034814024162011785305181816051020313638444050153321651563696950066405448716349653214307991462890168567089487711895927681578944620453311637202267439990825329687519551467377062274511689472099761091434830231487431444818976531831018304729102693186816961415945217561904504834551216539980848177655986613630943234175161993243151564526840792692193265318989940501174911400825512989302784114761955983307897703346967157264890749495950891913938077203989218376247386356774321724485702914367690191614353849086097228870106654697000913045099256314564105636771454492627961713646685028739312920686158186323772032309762294040780249892802543914771592937781999230986736980532599187968880974809751512053099074937249001957922476004015634850158515729919778132162218241606345384967834436304965472970192805119980422276980949756400277333539889761920925517602240704563836278485375520127040599132041874627623550559948387569368939782827964449467188126620936098032765813922717655380949466703969655774164868561746149030434132335390748772964439562476160528171683731344950596825655650751831462728051155696273075649192167132183886220353865015356023421232692247791283988325181876727700295826622492886138803288082026132960255699898515137344000395082223208663712491591847810573648629760167718801888550563415026474517564632901578036823608166258081673099744131621694762445315885488498392174571218743401768754106939663444390240392681194779732899063521672131512101618870229008520549259390890383266644900493195639356647998440625874656773533273296337451742448346629755160615430090409582173385039167126157811665382031363862985626187478738483733533727527932193418223384902509361505996175431001806835068750569660125789189731388006164835117488961207618314619938138440981664939830562040159790344870960227619923356887483433895535858445040495899846741457100469124329273891162398807320892907179613125471682858877083044678490671754355964616467499770101392444007216768386373811945923803967327770435760911545140227212723814150216100004477688014283813919643954971515657183591891222009202176687419411197747188447954109529522653474208719585171257286737140912612386223368418115866584345939557098404253924123412429013004319957943950236117279828808518700798250309178489625779511856456493256263140870579301825859884274897493467291650421901763548850879062186257304096568935842379538874932343918819932028914711593810485803017058282295325795436965536466274463379437238130915435884978297679575602788888541600923339473907603699347698239902223930714950577559909439065768115318474794869078163390876479816272395646864628936915322956354582661363675973428644530529899823155840864027949221561517835506558208306910430654398873255358379559976359328450098054507113108069936303952443194941640762310233355767719900034119330059362388054976987594435922003920213171809829340217824844108676981371916687344502986651807129507925465400252892058457469735773458267185943617455666849694889964437418382489398637451169373159686321547103423229640337864131906722032884945701181764608428811119933157632362129069399843666098838292608397037596139713793252456561593190872960294011917855933314075656867225481141444936128613752905938020260811981631178110400568551082717772895665079369057769565832313172073684105708218560274447452484525002187534914725879045021540852138282648367975825453202641098938242096576369622038823746871877821500061060267691076236072958846011275386944765175590108029920808577791398083641930926206191101729374963274245049493562041746470456766444817089380120301283631916134757519199009532077242266631254331939912183690365346549660788057091483924222162503791298878370455988845492084338542604889614787121435344778836251702550529164193085668703008365210901469981379367168479083370390444609365026470281024388378437434221560528290863193310248276396908793983860725046172505643425186122455020218182018938524532530215084800502374300241736655000880084212739734692670072709889151976062775427483019841191500970461015069003986663250943067807266087484977412555733483207800029503718019876170164997633844769246681578229931981695313879629632673747484208166892650953927989770197553269750724433059441886503865953799882035657296387619553514299932101232415133505881910067974823660353660185869392552989169193750293446689144578319016467628845214303553437874331601784864307817141445252690578947818677212373224209340874055392833434379781042636113435397335678259905062697466495782849553449238055327573819996802838626638376482416304139893415254662459048552204012409543732698334127942191682674927639896147459364896153519105719815073112491914510314719833765420919430854723975957424609321508473793638937720554404116782393353425541775202562079977795602939381844793679411217765870056477239344332525688429425657668548044400835543894406630834145114932654219120646432377044698651559625098662347709027441327095349132558582035657509842087416660944174035546268089510268952509949392824441769307586912265905624318940049545244523155355209828177277843676710851017790465327574863595578950365575894264080530185384113061890551527617846483823042413308419918868987036980921358656056146659820297484126569832184801005324128741502985244758592892004340527913889700476445881827025481972033849518763514389749564716741451321846501508749407911174721683852317014695584230924726361106766451770638568258199989697153400982286248344038892626445858808551724062008407702158177588944203658484110817115901933512418266791332749653323291968189800441892845751150569340142200050189446851045592138816556138328458010895611605970848640885265675352432619351275553541742991908469261929876374901860946098868158371203403622828372980297177005737361272500644879304170309440704689425374864039517100679813631154166276920837938496036148314223388449115859834214987177634319191022672858844143829368616266998803787389926824493279319182892440095243642389780585987366916159410024639149020020781756305167931478332599876891887624213520633953202919784583367831172925817601699845569114519368726636923985535713768746622877051917590757830863311585569135155992349339336270192589992930329874585554618858057162515327805299980265946864883937435311123019343757071382916846286623959551497430308074249591438330007755626767709507077247090709248248720661206243755937808570105042552034800824369526665437234787778834659589750102111063077626831655535274508279893527822160404793655522911040679963424623490159223719504743203469533862200163709107400997426912636401391209472308060127909027927783017109121592701405016413224628708892478203421182449823618528733027716859295688197842245557374097115883261278947082847613238414702114557720396457345047928657614008093372979240565503179317326276641295486827709058564455369183138146017343751206546834364320299156404563768605716947136386341207107187943819247232345783252133931021909141979385927640119161717625418854448716150562731980622991750379092051701679781375512249016100479469025733226019983335381929337693120978647686159187989742826160783952001436970655657253894941003875392265258344765415013987859003890714958769183045454793742487417543671497468962818868678453323131315679693448475726569707528316103910077676890082889107039030630518093633195099108278894806812474856650344668139082567039587824702934361483628375097845972620105104808416592527936401364809314825733491512820543747843155855976228871543866792224505721582669580303961362703826752900010936500960894863138692409307893500084480728024309245486769228352628912537263087026970666162243731062628773883987180830707335720821874951183303674256608908603271724389504733748061673704792609661261973191335951818247248395440336248766456875844395606344213555119026467348675765430978352245555245082120447362222338492696014463616334328986697645336984587097434967657228911122401538983407670240839331299579125996998391180262287692214515214305160370372722614450579182927790819432471424998890296519504691538522560951541960638984653428396126609140401571794232563309545911786883064156024924356985448110776714892802862654016509754969305876765950827839765532699939283014188113659714138960599770035205901820396999784366309032758232970522107152600644051409904372336561330553917004729774206514300269832016334807947537018968512021523587235979186304800561512414339364459605814294849923992011813568556914905756144154193764190399254082613357572871592726076932421033213868110869099354933800752903557975752686279531119934902460342534005345555041474331817872730185464821021855112259921948767304877768763149217943621874942474657742100782569305626119688313722862051789783797639942672151316445718528911720605913494904691606126227232590175509554386824353592635249884941925102700454261488521446081821403448024673850396322897682759248243707098003563639315293938127610026505678713815471516340646990304804675476518172332786275741596536434669296092932551503285292096317476009855201020223304133002503159124474705093237457621056008573134779337166789642744623247342038357003950952343030096388149907041066954724320891855572818553254759001983734613643781958422619272245178251098947253415431377498863990154028944778564354351193823440881187451413305021616737294211355878209301886791577014328970211056003608090433010179897788892581502602048562379278843302355393337006958215158510703669858686916963659282753043049487152109818164697736226907146997032269436399333566620630958034578890459843185353054239218234172455045166521980697831098833896774887796755379402876296869474669851254533437845460040951031327709284616821901164622514710568866058093577177149176717715299964979105622022865142348435241366326826749143288774287297285275348516023914557292915789269387907881111285669407103631620326295640665367978337424651406469943079322728992485159872920993060614771986795853837360010613026808409143217724180948727658359741963413735313412507270104773759209075612574616979158382756634430310187388833482203564183651449166493370549866895860417306560765993857520774789620683113590753627711039858452284077949862054131818190114920681268611012053423737595584948762994407686431517150864166432882071712710974130510086933487540951394705439032013004725450593497987188178788292034207401581606473882940360873547469635193095528015344181304996968121338920123955609654469793571471216712042814504769886634658787079330767543858487862982778387247569665285770718013452923139497449241333290346579422009243116259817449598932685327972355036041396453856052760972984869978933195263509143250414635090072282371361657588383963652695898515326963364215555118835228251686789715290003506748191463085773642203892139422403927868394299164411853922897572107303666016646774670010651704986124901543159489435379769430090984354278755422570882100274658250226022167948528950879136899315376245631330074581588240517174176074995045314083642124998081313539202547876263660975925272037259706261257630180681690972841939772394368890246551769960757916815847659826064619139768997883919570571108428891457375121009061227615723263526322038723578069659219285364411818041883009677635774825922321036398276078002434635386140326624598864599642332941847556523082207793799295969322505029095674010957849097850980275097558051817959502643072114897926974365928030191900516441471275664645952650746725789975683354850502392291701989802187513329537900629786171796515819526776502669295147461880217133781203477707313979363440158537991110188305123365627794654744973396141790870556853127627232499993885923833923812627808364843643105899324781818801361367847064893152674301915053734208341745331400316541800608119699973144208594027843900280106257289162428823394928258377219588347435433659477324228011450642858203256528584782483885802975467807728625047189388003263092146818066990355476797198608634040766349786022839893388439094232346219467909230042714934943499316568337988886087860384761241844039685074723622811348317492849714082909847266234562773880267231551313695256965494392597312390567631941847072735405021063665720802264774043244372867510431161264171212622842537555902075199263569241407280626910280467467704883453943632470944535423351097192025454282316404565154262617044591748217236613875901744799593601890468740453445334402434804862979910613493354496820779971680014818615959677442412115516340910659237880754175375474025183791092008118481459414325877309379239981113126267353494970987741279023250269945257824571959940518646967313469401015548987964767499995207479218797491409245867892258859590005182019158081717695927888761489773479146175014735334910176143142404157277975805118715005542764358545155508460260693370234010100025094361933379643965409009162825510980635038418633575851546249775012936489889251373276030700726321481429361357971094553242747485055993181794399682335876112118688434107650163060010164709493725661647677777948504908501109664834617257274959850284182796656587796253846558209846183187270685014820370970610785993955425958744770916145867892385580937302788056960612850800692279008596537408220666126726707202815457980122100546292705336691659100891156129759374236529763315364860470509548036638373423710495285795071731789529685033577314102053930561319564660383455015647547467822351063402363135527185217820669642757152213032071514351823493454927363590149211222110510830729304892664787835718705061200210006646017588733675391833188791470547178594968094377026583088412032410841497825073836332488140786033295951892130253542495730622333440022444077745010997100254546033096423616435665045448779879170848281642227033822713927865276517364406985643506742900056586652218263255752004228509271408539361014434309888652903642368784245179994474712739655708913057463629185289089874522823769766018625663461444733330215814567651532869217992900061413133970824124035704583181521734752352839516253491636921145117456428547603291255814839217477618144698986268151207351513420736488366056063942564630973732126813678066892676619400256640196690501804130610808021522036030742909939752967390428199134084905608711927258630527981439926831272674629080252581595441489712556234077865752407072118990857987982354752175565401823723238592951395125240905591868035244676047819610223468410451720636604728385570066115708659574432735813792699088415448519351652741735607833770140523852392165523974984286473914880185414169269127171302973372966538958822792801056047819091301655526452987061734664574349646919771612435592237973434759527354471551839883508100768003183453500163167842416087745855729525954156384005641074794489460956933975114950721411175261419434785918780536623623732987943241083147225576693558971357982301517303078594993969673133248048504650249261979952144616735956267125709768759120389032239432436276893279133582749758104283792252320883804612041021587646490547277836087516982186774531803969758876246987247668483780076340053952087292501640729718003773771298117133879008292351574821515462649426238620094933779557627590311507009625366499653478445087897337619780084302728939946152418565720129245293995174450785889807537379468952916011215281727595975058448968327311812087709594270115175306001471554617946479732144816540877377464021264717935968360309231541241175843446832283321128129960828341579482823449444371317238842561713546174914159255267245349814616667862459113416426361080631952365919664075837605591198868222214919014018447959074046331425624727586269013675712641126718005442834158905795956537581701467221310243381449342625100878036326704627562447384359973480855740330394809082803469015657899471540564121910516907250093096984220651604395021096443001089306294691034978126166913923031991687351973217416002647066585461003129299631303301732797973249135984510487535927992513675399079453105817812774019936293333503738079488118704909718974537974361905949104399670398561548847338837197394728819482639572902211760656369639021029133000102485944952150290889092125685108924301787570096586346732935683263058703301337731514110742167956255597257262798553460390381384764278493317772603566058179680562228985409560934947483555308943101890895641801326988898247747496904055631036491565089794793101579054664182048502297302350724067846119651030685921007409031771966782307801203181147640824581173452696845220231588526798093558449834290394153765435200907823503639101041213180040764883617234722455443605040794108957384460647802114191232225812784343446900566886866041796255737776645200074462046896196131012185223820967496469898090579842406288056347190164142749961804916482405313396095763618890270521469646723669166331407357155662982399930178841281255152822008202061551115697068571045426158139189403241841757601461241462474947776699406295675831757516028548298313033817383080645681111135228824163555779038338665264021211137715768754621825623564183920199169364296264326980978735315545506810621289676025232824365563350762327370642798445501212483122779036130973014723085219132883734959582390823838050030640820365854069517954271925352606077866995174193389352009073671149678489263937452018009815267789017448130410013250798135140162501495653661497359789540849014050081494683857586753362453712034478769630407854116042813634704264716531487797122395916616892495026286456089393984875291754191739611552675912338382607761802088466333394573769308589052676925933519504889905344859842329273178830723343049864422332314319849594626474838629513343098204245891408543878828108010241723759980040685360958900982315019486173226524490115889719510630360740902862609593071158997424890029448346942115550598603303022177274085758042608738138872621551618210902719279401513745130459308985710282560703826951075860471067859321149997732677099389408594420398685094585825341142488606076547472872229054236313509798721481366293056251899381351004703172906616549685285024868692154857161708163819188133652100936639857843929216663561834253955835605820335058308808141246152293494371212250288628209089427506948641129519051704813021716985824158016197540850363475441790957162045278895625811665087664096092929556603015788928849579228716033706327639811648878831550026867636078421795348344615620517863027436323951911045671995473932529106289155708011073531719779997842151675506997840874241965535664674133090277917817034208337000078359446811941190885996768670740975787697898412297958857533815869666135192711368736480680581349049681723719015178532276286675263614180758031268235129836892879175982507894113354234082213190717246377662758867751835886895333384511066967392486126975578973007191745295779055724782438053877891681782379673973686077044094344536588565639126083507132678424177206720357921613700294822922556686474109743103823673346634146715672860961690300301557319715901828550221033338815258063911725115577427258985110531745347117562385715561757165136304997746154297707232412304844454317058104384711751777858524264979752029474847359124822089274137952318893952116840806360607121711018528494545771027724863151096512434885756031523286885321911411081731320849332176869994555179589093311115262438825552969831319691185268789505403055600901115514616257617122447648625414220693450221716786201722159707946435135432646542718837927931960589302662109024350982050281339719762595945883088732626594150848855442713608245540297701404748461690741178524971469815621249940294904364119248330565363875824784180575179193094683825222010060130005872738048791585831096637070502639924834430176774407817546169719474461927035328016663727460517664729020093793551088570926380776097084308804255970357117807098494931125611117418287177997553665582376670936558155804327170031694904277774303445197351412927128120967018600012918671018847043665846718234633932667158059181386770727547952333266740513775393510306196208333980683212035865153972719968587554596803935379020023101494123686087418770852293382294505167418432210095804124534492385270247760114098464963613163276873889213728508714543749238882221595934048509588176509346653191725713526296012067107542196304236789239024585132719618944962127387645372624735687324574301125947087193312083963362572422838069733295252161512438703848683572252242963417591204499987553770224006312284483499927769953319615059353204407246174413622078139671304964215399029141948697427868582842835368237301351932342379935408556659711537017799350285739313700042542478554615267785222311045730414019019527086407549228888073194626128199653177972251738166512205677046374981441468919970651264954523152019026678325931563785409277856602917405219791804211599061370564938860616554392730523184100117155458651869431581077568874464736619303502177974439831942069551996973694139556474507353701839049452264221847419071200706957133219818926020713640472800290585604663567194891398456042467900140732230094135069199071844289383564347809884927505998346913977236539086092194498619906029824775264333302606525274056494066584224113734958969304544442072284829888643710423720414464161347414264620650514706267913263375116827230868218405488267562069023458042847754374664969368726671777430271179072032564251975596388761895310479211649217141505144755379765585777091594977538828169186404059184980653980694938314455955016768344638630982215935319446496674663074269750449023840919864876970241687918390527161327709216345264269517358242296053448920076734545816624537137748989901087358472922638575732195820397020825702912584608032867803038972652365778368421542552314738901295659060097811913865898837541494860765144941457374364126689994398870653820576015274184295281022773973093543467665097706853778198682070503444056624766373132263325197447195740652040499966671782585863170340810335807764642775657258698260343224631224781857897945523966818629196712287844811619370621357525380967758713870727406538585467050495969896795841092954299294740352336383490013670490110695347961897328545203765749522052791075199185381232668655532856501266170457993383164043603902215147253072372865167655044211136839327039033741353472279812529665418338331875951832342012127687547814106846120527053424552422617268406411768068402323820186067225546285673262305089612965608006020808466683474829757091224901617008126001165131988918178806512803145517338679525932031499450947356300764732718018345348138463689593228050727758451026916382794872503529053385854590599684983909078812881234986055531838441766138132197485074282893091056976764590958081462295739800064672427364489772073629536721253032961816905815117101690838597223175392721340153060765304282360816044163535854262222512593292905865952643449741622020772308203442050073667314474706153474466629948381916038180820107181365834295340600600077153614951812853992501567142490916164863760820871623724093620861433567746955862848349780422255019906305800755539429634532454139646417282797987623886356575217927850239932525185983371057039099704270302288686793510162719240217339420110362783044677905933105744464982852384340319313665427721894055512789908645757622286795807653510664944796882825273408477762293354629270698472507167129006526523395310053721288741260168696626113742276536112215794926370092499689198937202122339597879466534697278296254591844984410551063279245812052450191461906217212766076664964916821510127998969875240411780700262259908722062496910478332151935795685109897524751589984794244756920559360455423780811198463247924225016136665525814159844104394285152550176701397868788619387159234560744116061978863346865982250170048556160863482793578917289746065441692595705952708005979570481700141511791366017383188860523402804108069509661807254573398650134876274467340759621667543246868341395130037426224370177752693550601647717729671428490866453262444933921277461056906134668841416379619143726086792524448369828164480255239246977964392258967397809761870128066070893698917220459619362556202254252326501669925084579730258335826093638844437965072988339396631736754909607239069479995318017134435572336322252998754529825910670577320270033106308337960885890947662484180147298905881624970973382079647036554929876730421544776508332037863007564784215576711908282308344763609138947354527220591473048126244736958852290884923340065492881896064580433007068972418630637157045300402514098542145646876582976857687579506127039429649910788438147374381044031306770643163335155090225107467964714072798425785132103739669868373439426179524158748319063438248707957557274342882881210595238072786436530692744599676718834570259879910026007348045001415993803390853782339022798907853542007675712482542456777769004036531531939797354326938202176696608463892451028639808953145090439190488357244031766695254343769574469420835226066742387781361301606674721413546875838126182809915630439319078812904885838233858537663987787513821826964679349030376969195962384013308591991554864928223580542962424312741362135263460643328751023423101513071993251315215644333632916089446660867140030462842156019930416149316396626181166796426722938840749102809970361213572345466940846701050094732814663632671949373250080148387836463441677682848536066196992502543637878917485731658043605098242230604603544324422595733537862566481047039734359078049894137738607470078454256668264293214641426246969554046231393694080311729439837985314485972990373862972000381385660690670935687806737450354856374622702386120719942364229638547093953723817824041304489709259607689424416248812085136923253751712970270360938513047122559652614660140743735851803856576183036820644569692820498816805153304399740516509806682353516046714889149965261849643019177899111418762822130779586269858949839152802812745737684880623210293619232513498424512263589095107571506916642700679099233046091615238188268315648684078653855636316123836462436254313096235488374041045880191894512796725176073296617191696705693279646227923645157083272021092569285251881257458544769567642163078447709943245270274078729831948343087419942765780802546547336593261585060905151864557711274409239636328992490193218701295185454618712650479295222711161854716942830707985173020205368041406649226320410511107247968095163672425137293210867417711950954985031206857467436250943692009569200473633342538508510943044308856502377908977403129497061742092730682199815026282462641092765234156930325465909644067703371121424806279727927113691825544791437153358079246805202390352232954690807858609986622291793444409880801918854913655875402755049435738727465996278242058277236565104325578765084311298024552663440930216873490303076021560233240688464189436009743230195776462414646219551249346668485012542886753682070996022459411775060338335641766812619309507140007641943425087629465134044706192140570953576859011660528138610042268102025451895828386218814039342243181156646532624794812620638321155687584957435463449951343390586695907727940782399388056347665217044975860356800288347990335252228826028760062124773934781543042068751075577276772222944638013549857603974051159739195787950847276202592220227300155743763688727875598032764621725475583184965195832645332707896518987208461360043062900573935272890952751109571189980426804106032531052350662200714819756277335931643372455638844918167384537190960903923419856857989432381768868798640445515769401041902483235253903227819550726523307351043155584825823322221532912368473523499122456667111831619287980574727764736229559666675633448007463559537714100902007187202193746515887139369227955766856118447972124679642323687871494761923505358363033095403539181762205668691556638029825135332285148314135520045142222094456320140660325177891366316273298143155131345234330497629906648298864751974018123559623070272309928122893133796742725916742101446334392269044393585773652572945151917736962549802022956773600598963932378531233117138774406772808190732960313990277585377513475950238573024664631979161989061747131371784080972388446465094707866262992890077793420632369678124681404768708617706641297550862975101224032268451994175866139830509010522521454164133260577774717508897462392947393420001385283596603891622762748845282144868231055687111961936185094181053793533204727267053711033199541882181077446325561433598240284086202320885925482903410775268826841829817266620179565083230394357586435279625415722023065176311765507311019151397950272883826505813458720225605498565857289295781371110894686606969855454713640596126615472817560731374372992329294727675506447216548041884696156487556025286466874757781249185234691498460559953190698166174284628600365069676497070803196708614874419878626536662183539527336504398639911040714976152771638852809925680160454723562363077932329643124207354856637208779466689884038724405199846503469132645971451572576904813973991766461771627355451771264434953135071380528364437052790740179463380071003071315507100219051003613350659193813151870032031894749396275558305178402366266705906436742085584100929828005447480467562469384819768901085392749081554770800457437444182276247520528243313875731363190438106099481309102368014116043705127612482663937057698082580446393504719165042923114330499099366029854340277787934509221568288663470426152749369900622704136533541366890636942353638594298765397801810900717883715964833083955044590145887726671029290358551333117819566379023182785774252713483442850096176883628015044568634350636401038589420983665166903777946976794457599912686343603202230803100491811109416388824245288580661569840373406714712621202881326673642055745026467461461472695172370095839093977212782612146915789071252706923792055645033564604738262823594837634661263465893596145291408709979431501490727671042340857824250485781494727641237258800231304231802549174069536779717283151595203689719351056014959189347761012001201020260926589625560329311953544532727151251425950915551707860780574876129041168222108059678695776971109611325369103917158323279741257094535684919229184026860263972868121067191132091842715916160955648120696361654588413003542310774860869769569010092576008376447730975831823539285821104908828952055388773122063531999036359408127073305625672593973169930352669820888165299132599004105954936327502464795615736420501427818145160610231752378387142913882444355429370460766657440227627149509645636372052713674150157608482057645155949396446284928857797738869253341892013140201490853573754912967346028132690383207971007310821694575085628257162080046596608069219451652927528346697351686093243867199399378603467978084304939372674270853866574477810990846941362188436623871956759620494430741969527911273570177684367457634688829855581555680875536043189610120099983740683940785973857147740962451799740546633817307160583974143552046506264897864539511785722788071387630757906223157047976554415668319043081387984310549519574514650937888245529855130262280971114740407826592774384901552380957463682107467700096776205974173040192917485073830434218446383405725450455403746785893862457608847683150586133968892833847122513812782759707033887308992382407249900143772631150120014822020911407615900022079708792476547624802169915415327725680792232954704625940170001894552324818963675696146555354833995418218180973189679613124027069536397011411762270221066465068253275880849933870285514232144753409991778937332635130677979685610736876269034883820057671057731379769566593485925009037528718189520670985321794117235855460585192259066264424437296602996176310042322472492464790858232029960539651104239837062504559140673416928576509142976320120479246100001308923446999735724094749487343793289077111869894028065471382013470871414797033200872888395587338708341272033405625871073872151685980781323429111809395475584847281044375303590502358659477885941340963063813484144116852724094918193261633887084681516961514858131660222727066667882869090574192111387292711587428314715889651598754772875062888727743277722240711675673776606653535627366343862039261826818505397670461435840811852146742455051012025201565895688702573631848661656867568669876376647753202882708443792879818011988534176073470592172469249258328952391768533020514778402033074971734225764940969072223602934647861396402022424072348686278801288800627404528769594088822885983892617172063221101334852668511090532667298642378183446230721846306315973200468090806605989492401840311232341291597544241195678724666458968114398383781869384904293482042644157213449277190565650593689924534660595875490307841450903879889390735277820424881917683709702293829246721548586942542604470724634058514403986513854580221659749880201433901975688695092872189211460761613681135482747731586095303855806043251935653882685675592745970794294860678619561460483744250924517820250308347212585196191853010070683392943185684536266656714050315988881494796288977150582079863492909395059773462027053456035703669713299398576564709666199561846437893876089729709661857918884678120854297125686370457201278647561688378484886054198271737746334913474717891808456765414286598771578801168127752753233389084148107059839128078247931462737633556609869842550708629363800733344036779873347201804658355698696551278900670694500824467222287487520638327552046308366390824924849489653436071786126285789510279323432634466112014646976489953020472314387377527687480160827679743253942444160496406365977736472954408621193083127722943692921209149128090085132313180703916236484332576455820170446940573632338997323477562930248974719160928970549381971670044024880091089348268165670009753542236576204865178363085418275590748635138569293484426672665990720129902892728412044990313218815227046814032598358132478037771709150269633667352614105949804310490232308433899292138159360016392644672492570473623640229712023704688116052986119134119185972396222599245678645879205486592654866158109890100792148787987326380485651723776900422363626161026012393607362027240966286657934886968363234360538465642691236156418942038540824945379135288958509016096552852045942386843357940256455114557246222693677978239343978870109411021622488082889073455884808484679779533589224582873136789206347724481635452844569735210614128006360064515929172158699701158285155160535757876263541149219240399050917534806358921448126261304911500607861576960755979366775229783680233125834648958763344685958292607560798374907174128314515291754143709189909000368607371195533480394045111963719431916948715118571344677214409048947893517485803888858035065249609073674114695849945218287320203157561205111482347202996795075357495086509291839637930805121182305444344325177480457567904477026381105114839696629140538598485065818640820304100650472680783133568837829275741028037223823170709635795083421606271227697992628456208381669695604136989846217546856893850409285249177071116365159856558391803800881508901383418956912689567604042316550319511167745122610396701481894466814135558882133916886472447606431635091340911159139733282653696663155588797417769285539359311889980004585622420528376419887229137878435009561296616409365534592004104296514826112535621546398252727641370456101637689168298147106043978651640203705810961190449418621264727704204789989335841495397812905724076826974498985005197079468440936006703235259127478820236306388787237136521259284110693828306753071384839699748161072620542834432616094733217314642372419316245278174870579779535562109307640323734573385376512211526281870239706306189421402199094134284856233124220686629367882994293763477105043237350432119148923958512853305295073865066292432644748659460320360543308892784784284779635943244445525434884453868989323727011201234030982678089109063250491765088216556502489056552572836620104135585398325007901429811314818465736915401183092520308017897026931052532066818759749757991238194315953448070033674284380436648185675541283115967616848664709634712693820355517077832103130241514514618933016671362731368912274387469951129483172023906995289350167447386291245110161943183193480461357645664408244950592841447253966163079836270442274845084301951163326646994015534499093515765638403048402071224258947072264643063611128038016772967996314421528937229431915560587200940381583736328012487853900426699810045359920606260698171095044060538466328368747231008399762093687268309922529355579550364575452183606276219181341511980550247193091537891231792145364047261984842247721927638827738188115741094348210319268812681196156465551509700616227167973305291476826528461134895899948003219978061138939019870303676314942746351201723857996377176462034590558050791225357501151190016641382894081855562511622447839450073105625811525623224337559819728012506759015570189874294311291074914162129657266446426625391306986707529485074527078310704813733315577441937093179836771283030138629001002499682879849074919466410855142290884754906487494220493268971175075981332156771742381364003994848837626657586333631016710306249395281582809568813171958045650025776410951635205562568095388169389674564545859080247673139955952169385032937498233064694728985342642004066082214033060221431474743059255857126888781057384165208196831756582727825517504570208667129363176330395650772991636688924248140369461881420621421246954910028597641258223219928474554793935767167741264522792540886101281324603823905047131564894796512128903025046558855547930163849053564287640189350983319717730867356573848406890663755057873219605426238480397727285009635178781300020788304994727224266540955279182486088412146979179152787568830094897169463687086997549168629894851006240148284212033716946971375319499411667601006707593625387562081301574270740405025557716803972078123964040575416244618869407501330017872687165599488306129458047419816923651163603102393297520457152090793643708294996120183559183133313962554072944998057223258688384747806235856102814234843863293838513904468064434088567807650661380398861208028030998367203718539638988976155472640932786054132474667072232073607950712493124596644814753617948069111907411984856623501805445454035940215526749783267962206878004622578218304258367583853237587957524424516791462832389500456385111329635394653865226486589549442301396892441960962437525403256231445612823846689560177388323530486038652630643291341044680539974484147086463196823514809354571891865390741250716396475816659171583714176486428553942098669622875132163162856163252491248247924566750875313003978968958119958158538138326974881052545895718682784594926993251340109442926684289585918451501735247060168493593943891218756217400931771353265351289879527459388912169753532473631609356514043555463323231810523777654460409326461756735925662889854932033157325348272218525452987085750935898438529144819134631663053670492644581389440972728391277135673806457428168092523387902608450853859374837338891328666835294758097401836683788484796154630662660893704763110783133065022309997685380918039255263862789878642837651993760925077561592634421447239700106650024512633548302112736668083166398223193143082627218755155396446668736287743931812665968420202609545193513213481103587698460745913532136169664384780962185319425971426123036896587768307581715271510548849297887773654090491955557931156825166888223961190987690789324602592742209365609007096517866509060563967676953883843989655746162530465805176745448383027054783163202773323044634473511018911174658836541915502704622952483807830498086435276005212900057451786375683232617085740602228061970368786399489317664933652273754923929720073421966592833738790879811671280969075320032343984511527304960251127699229229932246162470440600493326238371649694632022772794123598870212303891274261207825923013072609010682480773733570457523523086601657472460110965298008073786502618996157153691685960462865156338367544417096816380040081628527674107142318964888537085491823643557394631137323947031034962287236154193688447554267622464589698917292569018269131594604223297833433947154767098368689142281314372216723884349454608512522143276922020102048042581206192809621682754725187342435534458357749879720691751298016972464179853883235871851131881956755778406244518885384458981691995357561372327159701948971987703859591291802535775753520273189561448592689615095645145713911399803463189971847527134471248909656399412562296790707122684078143247155451043206002902386696611685715499581365315966220917341929929921331111609147672991348007207603333560568892258825720984821285888454974510807111087841258810811668161016455937145821150353649370561173792694756219266854932493595123464065971267383756472205055181708581762016177626853853755693221525644376552571452484612247055207497581468131808352577796894763717228106711669879797466105157486723925034108030441890654319310051507879217164770550981654540117139751380259198402629740995208508560938995960623062905018876420720092096497788337669232674473220686441667485669213988843765222021447572513672909468588189766358284626451961885412173444482281651791376924086309133621648797648064657415928050851166500314214197117118297287504195985671015473607752145700658748432008167513865382952713883993374724930961029117937677120277791891896492212149086566227009272944273970721438032640965477566007469106143831358076514243249252027952202975879786355619467815130950688594941925181547660802837527018380688185095750415918876024219735376388171289878497514749835942251939623183299253455797002833221610877879042708604945466107058177662052179564452128533440438103291691255475318881961581875788399021172383017816741791523737414882342483344224688781019279643844512270779397537852829819160414370104766163557603040520087487248529053493117532523066645767283209375993178239838468477036351074729400649166904600714417785073914943386273009650401275464092777348951034037665864627042940434677359220251373766924624481416555043357914116196906283317950305693543610916974372780549512107393999299824344728042154948684712484903167393404754447905961770243640047955043662619916908242047979107011050076927749423461364543112666032081585082668601018447339239812238941984364738896750286519909019885429022783948905868435239900141846849947745556566611612526059513173146768678796608539256665467704716774875978022060976620597289894077791974292026122050255942420464852814228957947025701848720333886483211032824576665173778649416692041316006370788025090621690712852569149312402310720338358747356347790540373603542856269802966881136372386343792111082470591565481940590195731463878433567965053210989071016899339951592251093021413745530442247459114873823244925909215819135202151250128591345349777234779802824950929796665359269691292812529976358756374526960020735094736893437765608787330211716800954636728170492209460925041363339762110433759564345044593305612599814389736291917752028872712806134137744570720359957807977182816462609561378136564202309595089373395925568185734313876454634283510921717087953633803814372962347191345970841692938596456946312350459476325782673826370807516350453306619911199550455813355674859552626821086655928044133319197400588946206577566879230568293035597927397303456715299324603635866253993096856020785998520316770640021131613689808414550592020132293170586219321702417262250933236993686038079480032445911284489396140598163087873219770801367826578081083002678556201828164458394202642169445200992898485344641244531031769873066057699591535225396860799415067074968269084052478544908567439482489213691105186784560807535131679348787434505906149260983818897938187787973195509874589388666292239120760592674907391515258831950491572711828902104206807643312990140173738031299115034862643067332098269355470763713704274512788882595035970313304628929651013204300356124680601211154739183476508429832992140955541127854888242392323862865334067334543738931536454008686647249026864345124363802137150980268101671551068767312534218349577797174749942691952161866488204014729420841071688726732472204954468316774959884524196615864066790631036584971523584374961144459866066902207159200941246963545759208282017936762814967565786232414118059962288233783317184451758645103639592057445400698342370101831895038313202710131012198351504323093231246441283677621342805972114735813712082474701091673327639721438184766045448045633749907703262670088693715902639766313067165675113412486874670307654867278902801514248392761455240594869282980555778362086300981811873546539149159288333176218899945761952378740514618690741635073042722222366807131639769920619530042658764345037211532929053942172384145504990905270560877499643620573701116345008463954993143528919305099349816717222740256116260372533258076106254751693788412138840961577572270536126960687557185385192057275081775857679963654023976311186100018122060432936356489613287529121103552926562573257296111370155226005406311144057800265662467491026128821943436509802507433607374507650980819739628528119595316824615193949051331102723815039801438970622823103187588688995317464503589828694615134681355645616074875208305475441126846770808399553608390897961531963559416560912812506001505638466489381908608087297876015073437152380318125009970404236118443790378502510984972956458144408617272452524929337035327248822429582545897887390963966883065985845065270904824537513041880981679140803807997789873338143538037185166164251599509643634837194587933259864192418420675972550267856723952726766904320373871902184576072724426320614895312390778460745491189737294078087348012565433194754524688034391180639545205412441587879845036863345830590957995137032285291429179580490899525347040229352030717093424211498255038368034941965756946801605987547659871328431814504054829020920437212844453678170513210654076821328834906419668056544937579469069107769277882571494335697972009526557540422244258463358213241008922614445469155310221886431664947045404900333217702447816214945892424212514815225192941853193661864322923602997155168952863988316052849718601248688158386516645301749607599775037804358201464945709153488551151925491015481305973714251787730262952657160660429099128963405444951674405813199615847580630039128149149458615139748601353060190506745010409423464461373689578445245226547964722209740627946838762350658964129675222554223753114506916956565692474521729287092735319861263098732667015742417384168572481132022226959267425044184837929226904616991421659256149679456774351310407309184985278474658438266677946501143579728106903666548841827655682648243514538805349319372393860926866006157994812215891651391566352027184090138899805872554759324340810651880501600551341398132469477806349059362366859343486173330606596767290598264571970503046883368540134825413882209204193001286065783046899710957133703569056213514412263751296928305221360199008125425364881647930552079608441446082646137549020867525435401582677068633803822912899863177692291559170426707291499573468970382660698290553528963592238138261291390942717791498888812009773626471081760834111672042394340967407661828751754312243508521687453304730683383422268888901465251580815156544500643379881380467052048544291140306485779628001826919781986420241765166054602363371586440969772145217202871023846605484414133986736500609923172766761002126847323249259875222518210132971460063130673305145000204817763600402401387262597722450964172215674557151468655516675770422189480358304939154560868942191140703060885520006191039077402145021423478727094342110269889216341526697584367496886594465228363041457451879709476080695229112586177957769080052651770762984446171473653639050622619458991405546816057312188233777695585192187314023321451341503652200315039450310446641476777405271286749722879880169479285526227756550518383898505319323469884974394806413236866937617547035132454345153649763614971505230253216076403252848341098115719116153151431817682680911702040769608191501104596388612753416742028980743806113502718537908349533635750055901950547323954575637876620584098221925321490488084691285351998051467171377018882454137788971199430041507280280370585553363221846627368920216787737533192816477565085488606224669274407379567056984818667867424555827940012694376856329059924556456103688047976710846694668520528610163926006171236538646819366204445877393380629645762864432479813088226643346150851748058869017260857852328845107910680892855522024019181825919326267564064028888983216693965179794454131461601311449300122641843241371113950919410085245830217675589911524760569979924827914450229425419557159688369445594723497898652066078276581260461599872941332924478009266613107366174097162003246588823651661736667007573504396149059778943190791441920575114675371726422245136304941100785693591204246514223631356497636865624374978504079483440625888864501679576898207092100994249782619131482199547187780485840090736284921316682262035566712599438166249672450754280031647489906013790844509473503169310361777286869733808678567170944924585492908556954288637272937898879391531622255291646184968910993075207040139207906695051062891446846096568513140440215067163435612509050329942912804386222197202252152838826696539740667766142504826665346242926365036552960747798601761710606651188724119106900630005952866366726521792982444120378032389032564241883103522089261097077236306742851192749129804560613452187601593659089507625110651835863290148739639290226585046752717726748135139957268688101590567719446846659274266265150258190891311533078170782614225642650265277383016387800818957474468399857960542542515696892353577471437707401964350587758662382501684251409359502277960337303429081733776614309390464751516540556257569982567846119142149905762460611544830045601517961062191176858890164389132944747467619950411610573121776260670961933759945445738994491177053929637398071616918097898836255357163386781198262516267373372381494248651036951922014512947497362413281783559869139540107118415922873136656263351542649816552795083785439819375209704113312928181024555313984684661438150997860262494592344480122301156113168217734383230281656100890928060075701641534118732181897957575414762369935477127146051427686279674678796325744075192072880989847684174708903716435155376962454413751304483925191514333672801277384184727824599053698132053039524167521981059684685082440159429186894346613756479038897607088978150064118270141989669485044061017503667509239220926485889500414204219199861584844121692809535795692611971097964439840248462291140592957746883263433835662762362393143365159599926716651185951703449111759736388505783734966823431449431421947532466392708432649905572417454848485631876227739750544532622279443002916856653523827087862841276504330869320233872648425485251771208593183521987025956453760536154978321167024356398407240058878324381641779234708074322579919222868903168115369032690281179195898122996034823599146757078653077228111912747053074212677021640825485706060194464786632639149303979684157531654640381690917438751351207948196380994012568287087947375956751398570702197880908506699002680447672446915586447086511131344432836466212042053102535849009983879711888132396154949902543199845569038412819849887108372827245872567030126949100157251421372264055534818162941273790474065440584832121537296968393108511134924461115189830929535835060746898472580125750980461006322340951115844864816595611435211095926924869218705715912994390264941643367417548445760207687427632342803249720224538202240275137959346665688168379455686093633075858501068837589516299432566231343502435749652613317686838110679739014185248368301633710672596104993979656861564978637947792548691153346952760331231266202141087741141028687492685597405878038008004724857316037060448828678055814807442434551645802173668698458221499166893313224547254606414019632482249629234523853688173701756989760371735867597539655949947587209337902709748594688296530131468744582476589498377213870190570312808547537555165842636586408811038047491007568157803028739342300647856084430403107124000308936428368733402290934954117878666604958550564113485911571831967431947281925174126281807343732373642577270223719682757236832867550961494435003154487456847490062274196743560365025600422584539948112823438521328420900491101236859154493571748296270415419239467102429782848743846994013913451542565969352396339989071169974529120938417347614830883613209254583566956274495960428084952172819569544884639181195775719088381615758488809316222470194735330230061504177043612202979981585056012440974560004057182838126977211375483867314130159795124110316017195784300752320221470313336071722304526640509385673496685645652942787752945473131568168759920776746035073444255208745510267005279658930238085177284531547201268490319814280101773213005739416865914673446557007025349591191724477419731819443771740813252303695978606225855547558082941812376731541523415341200567640868192399978153420686122490637421346952622959070317072804347291906360381970972377740012262955179259784588873989964144055495484148661421505341152490947464830773591836629396499267486029947638005244077429430116057148083388308486635375219661892410085406495825625856985727975906710716776468254158199844132661308683207883414991326923958962700167517565619000133864122041465517013452055943079337017336870206811813414646340061869493346937818381589303037610005097956043031050730229942343557393116117317375325104447730889044721395554791851818718955383232638040224691330844388117965508151035269936543927457903035979852257310025581288980035299897780941114372813193978197095249182579663780209102407643634408759699482763912234875057432569604323310997958804811780693319050143971395547025107471127786852537167670318134492838863937801804122317285149585990401968357933200948949965625950677292951056716421422735241126027093588901111876554619983130464237736746552020906837534261915657043009729967281513433338272284025980650577833203190523997168124282293956874238705251261494217228453948529899549647677977350176818093087744668440023839773182664358213862890820749990018528517355086828173259947181164839609554946960665680340590688383071686689559447829921152350577481594917807589830378708385646930956202312869921847520201331501930787952078812253310909196211978127425250465957007234775027902554214190478129761001775228451345800148737028387655925178339024785624854557890725443555915995104340818668410268674586152166732861089281303977179998837281553106686441740115905394314500809809053694040919904959139738800324305731202027323801431724936717240871151564503630068171518968374867799981777186573430293401690162800915115908409130267645440081475418255379499693433255818000842792440818529837934371424529212221925009055772987037416804987691384442826336438163849389537251622508159968999535165099317515994843862409573009861644746727385395674095298645371738433434235618367312450606386942667121809856070869655672124763604873863794529281134525290974671183059635092552457522673529039401936150306977622176774447068208465033255157792362536804745537811301695603609251562031382877688941778217925511816325967478287830133304923939907594300421359922168476060300463542621601519978334669619694734041320633573951691866454949274649213081191956016705267875899738456988470488755603457869326532721202859629238756898767457074064344035274390997643769780499817373612994487151385250033343315904624897342907151781171678175700691458412931665163299614367033304093285666347228425401722836518313255784076567784617972549030723191882866334428613169281075013470035761329704526680094612896273744902364192228128129533209617933142698673410089250864309370670133240232223131777410872227491185112329483838361945360673789822766011565013267705720148923025742627373139467929671015515106782779106644445674541137109923263934558255725891420602673307895051029187927836392975444225715035124409070140144157490056357741285959018386251562551211522163007502230573423580884887848163196629313879068342202115770405763139101679576110978672110748633750103883645626584718257864614674301874281759513474931650073888292643771836718207113047849230995321716038508042759521846034029110619805417608313281043282104096845350739825775230219984319423645233472749883855464113338233214178728316219453139912641274824231829723737627163024923951266181678289011465846860430483192934818485679504317235011186342918693756268223458171475547769006296608322548549591452649394181446227724236038937590202917565148787029599618989633601985358617417518428322379922047640902036135947756958381800576572439256477183577398896178326334565990534448662706043322354536610760652548438098959874809023414917617247638814485890256295876009514423620883241928490037497247251449172944852144436094668390425055549276525455486399345390301500726440846863518009825983656053163327970640940395555128646957585138935604520598512324419692079360981431736726984933137934338133311355078203753722578116147548093342293388199194300117355595995468882907224450419709813806509720030185980123821731842972629980422070176978419367471411880755066801759242024031940455006188536084636327301419407612728410963939785067239896708205843329940265471525292166658359727370599602711965919190798707812788022968835611100469817510797268927156705707229085964754433418070518895677638489025253563522302370220678649463239970623972801079020096559825461340185104151047570944213327776797601570188657718520889891466284893422046298615089474799691488056683337005388908791911231657346310231432767934945825639640729788959821389752661656464953336219029688537281901788260913278226845218013984449756576550774015956627308592148864663687402758118287772206992574819467810090430036555838964247799986644422858781684185605150645365815928355250407289268812117401698777600114162810596919024403308513449236573261244613830902219960061445816098988567023436308964222913190197012025626028709156870144566226821076457143237055386885037516560419557799020370461710912144637819992842829326509487488048789168868248424577433099700540851716243404506437765608833912288198202649651804917794166707373648476783837614922456812222672737227683191724029422655033927792082148826360643940999395897712488295926553306163405707248045292028525330701842504958824265213252176747004528813511036898190552191942179654175857071471890816606465121239493472868865094757457209718930183109716736192444482400331942638731663828800831600053711557461417350778282507215261934238562683057558785902506860433504429092358723375521654238863624967351454534721930206532091884293287742550367896356632982948813354439157880986545080812705430464509312729128366934743236744422209482138164195856820668705812505115852570476276182507615103919121504381425433064273894192625608603528587770129478523354814223398368151077307026005163616472581270261146360695294794689734798708472378729864818884077195014832316836988098348675889658527674157189624133411522111738149461242393089725881406142988919443890819695692633474327900846246728274365208104276116710258540140309047236299183930455755454421019890549163421197523014412799783582144366501012016502304406239929660616356451107602590230560524150141815380823736886569853718796192160386549887677276393646523147929771278936228279769808787884049544360037929502004815221580175251620763062331688387290031115034282501649044758819581601384617468246882029619831336607816336143156662940708174319474281627111250936840692843217639988955959560168715152616790840426231393697904327691076171746202576145947678827109831537262713237558331310331036999739605537190174161013185669246775610674504054440976173092758766806186247219095426802443642888049792562695182741017866256571150816092552235987164506582560171093056576960247696600999585280999920681634509101621848446380840612338945772752615440000672672201243550549197901487391557982755914820053534965589010367161663469805474208428306222886752476315820826024782384051874355892926487846555869465295864496814319395032364468242322815923507504930640218726860402474934608252995455485626888531448708964628205627075097675738043410120665180773864400892770549133041623510962392430099977152349320200484077049543481759908678331811372917342068395819104474642797436914097185875179120200270677674436871812188437049630571198315981369782161347111682909443416284733945342432843949720731781066901356307880839192868976103310535490316333350451942899998378090930669856285293950446479969142091795089053993415685179111832318805847870132342692282734201967541042351094961735219898130834326971450595383336662057014691104509224734059559346650025862593252091190907044698573856586563944842402311651163855365229912651341533534211678373168053419385601982212704056055732392459635979164101608015691427945823863908579465986755019290454292944887406418009751495261155567197143138186265936044525965252197263293611789705966948511660355157703214703777631855987591363645320991885683333713407360166858863128218879359852623940327492351045810527028749975487916016922579825099390261184195731650032290532892195058520772688909200626626936218269569102821606257605088733102763366238329261203547889692030092671136764284935710487177534508965066080726285489703096941653091220248993968083020170198563004917151265699814010462278215470218192605153001473712767444480849584729762281720555733541625756455663855225789650870728672260350553529889751653599085146291008718403512899210834697391510152926732487635283932886364936515523134333811211646343161343436994029932607053019416460916318259348684295189897989670130151797563192514511798809080005328838975968900087383606317103793328429532141069023808909905732916797852929065424152983708964087152685714030857285987847045560934726569231589788825166791349478722646957919600310501740489864824123048821569831448428964643389111193388499630226299324466064402773965563687513055413445262383100648700338528553610043918134805917014322283837275587221643593996243914670018291305678436359882556024260474978550627986937711620118431586511030378159394555936134785626606442641938383617487285508964942033383045566813412008499624505319861165603289549384498413782716175233726458971200518000887375655215002113245932499662320602674876555122315980970246688179376943101035015703279675517392597717881445988177157955168975384363534610394291259837099131913620461147034208178828009790825915472591573804443833404107490079104866606790066359669062581374402241762580055147560542166739342623727567826954465185082452302471686000154718215642729310183210444767380062103140124369954507630568684086627035262191790021997225264803582335357789241975991278271388294906796534114987519557552108888310612182791801990931387033664470333563578821022406457713919799595584172980995478336404227203532055395028819860210516592735916021624506752313646145446751057444226177951934493708971479402705614989550401570371140184421983105558733875996364235114448196838188139824062708458113997784633730234647068058839596936455015686695177874419445264443037137883890834945887227348495435434984368739485730180232069310265425910352154103502768098137972681154156725110064317302004027903485410615466042830791443122064884780479868964363616647018279211169265317279282967337722509878081534182175938089867421743370305675694383347601570332812676666609471190550979286299681285488068195096075467916256266041437797018853657746908653317241778485465979118135121705525774263926777377000488670355495452858779988336211537883221923979166783567752462038535862313179475939947468578682086381071586926197607545602002685390699545650516271225990982214598638953313182126511544010326996079898188901339449693353251043567033876611801562751390596592612408148592654874434370571154169443850425880829310061332711311518124091335801175691284407243883534042514989917363057925313795716300793009951249742369955279247572595600956087720140379390539084793460995852878595433160561478659852943324735440145148755887585281000085649583772856732341081602977844234990314406102516128827830582669953040963845739669199604184111113701081130436030412732185979894470676926459086402158150634634887883102971769965416651022607446045418715922069440121721843862731801906597665931883480435349950767298214555328588297314716391213224174405294894041705642707112011817139404978523939296593538004864587220762895912260056082262682968449986947333952928247455444841190288299436917419620514066320654321242569376440495285772775207251341788645011597668196242282421934847130299428770850766517101590487625519458687736049997525896075443485345027233068990889621210689269761609513518548040730637431201726943717574886379399979997449804418813619959658554417512059544984040473791963386383620243967229122444071992842325915060748712466063280213608639704663488527161061107062532916351694290241588323905385149823631451499572874080254596966591618247959741515116430254504571304884722171783217218531305556457443474556850530712494974161073301627551563802425931579053508483813276735606292686827730473356924898876846741454855279987901782562861665239297091420943837447706478146057602887445201946813472055780781162524618216845549133849453042886945674256169079294906882125975911819608767624294427147088824772778879151807672255212031633199533355481266820931313371199690013772877689483333036170120257315331340951873167590970761732479415629605759441702728659657680149571499483541842678818772437251968232330389336954636966458374241703832315724859838708127795667034173684912505369272604483179477681027906484999094457256986252762582370829496828404772967662875484518594916524514957840973414168317963609712355127815318735211362933836101727735133010454069176407631400363416212177834794880172345126967316847902266495706566435041485380534393715791355716250752375274444660534421320401335869604815002804079860766539548716023756328278364697378859826357258257637234241510841903139854064664724379993357277001756329954121654209521059649728751030263360499651670121236707449341516589728588311374438877940788646989290116694884574085512145209241004129736353033404253139622927503990424717332464316239023782157594943624859174528249955403728706484788343924092945920729936591906066861507846899372639471875307826844353774681386671382043996642302419445562453042642549666000464404584540303686021522864159357239485668460730004448144464865057406610784493160299490134856575427182412295544791674707336700620423452273471343290013058767537639252808544772089035619325454206220018625311826979786518864093252153706233962773018917050837642352598862736024440756704922131246675025396453792880392407812931369511320825065668662991251270831734334054396127352152216932026331971675803246077186682421096667224355017045555036637108265257031335031570012551257776231253202173495229846410997210806334908977115799375356405911035005197132864508405782458932434945755519571473676076413928376119261606334692065820906053323570351353761244118816382983412361088252342065716283194472234785175393361371122311247832052178995889079282829492311526505727518374532596047351644764857788807491154691738693195302685855101374955462626820439255815321887468458529737447234481262726246147059438811537989903002418842412254969777784342691904302779661833695622608135745794972079923725998040401987899613044572135440250718450224710980770381328588652846804137749042099047249100515472228092167023650543027747849228635070196924242390253085785053487293816169092808252108126702412544623719230591580653088402921057366169053754308557535256806860158151803625725305706846803367900511931111236240048891373590191467362396927470010045980922110714559007907606324373683612310994998473955551381197831757536834172733465661976058115323905876486255283907961567786843287121083700126806537298927591298039879820953696324015274475597009454500725868975615092084907641851792020240888296658017787109171620666831794164812572793531901546064455898495699677109373977963568589458339543841387314464810040662953635408375184245790846867445848997736854947175659809751648703036242421504081013681988888552441035092795899021723980251828219354772994187075810163239108187417795386987935937884892467980513783916394437480486911003291334628878172349519485045771939783464529022978130979420835845319877183635129988350398208211900743656216296748180518169896549995682599827032084386946923087376300418375373968957294425004315197914423675539228427464368243000533168754916005728579515253714587798708804681743809644357602173444302194362616012066901246778552195443124179207377612686253246589172300885408508681751934500273999114290740735769434559568592543071358921767861996773031847143870646034618107103433465732317476202362510299684478612120573542894548323698598477069784786221196930506685391379390623422838637016646681415827098939913738005133816210965641081913319541489297318391707136879990105573105564283668954703571283018124656359483610269446569922208311637020580904110438384625380240803119924938608035511616878128407447511894336311585448864706195386764721192014740483312132880321559137614379448045356233694662274978891488058220287366661858711706259069314375786634465434502224659354081928237681043718672010219105667817532797194055228213047402175283596727451008775207888631160522278619629550537161510642691032737762637136340784269340955650284290464711017797220516696095673011689722226600502208009793766271747850968214325493589538899344553155757458262956806661520414128967979134774910484377893260519646325273303985701325344342587554935855312787563309086931334010922812478615762185848568425532290715395201370966306970935343313433776636159382698069189275485073800193098237707579185296285739264211598291943382460546878874838356600312776209393310647036640042421875735361709760390672233158071717919579473188090498005344966436570711007396992910328314732808788790269757649122071781682456641925798829714249051504124843921897997265663027479666413424325069753648255619765588028008419675688798168954662934884069496362714110986149396118249440358869620552319791795427455386180443939054996100959564066065691251174369141249914564256313471059305983073567680585256177578387194223810463227916461290957201729035393753868575434745523751087804045978948171832175119358633484857982873948770288543143994394629325237226491918815942944875797376369635763069900759936872419520042588963421028946781671749688274890830599701363817700004251610396725864504181138129966903430245655544715971573746996067294275891362086882169562917181185557634123315036180839639475516069528968514890316338728552956841722165047274520427985383939551215603651797782706749946879798463357206829787714840635682604292557549355096098480709183510854673288016646505378027479711655555466689305904016860404563265915425472584898249087175585650300138457610805038056158797626252182929758525874323908132920906558141373081526185479857582296017185771800807136521145132634920749078498213618402646011056998415032167030345523238642132422125411793349265960353698901479442217679517623386974711587789363942707998152876094602026806495834759457236382975613542020996034313710528177583704758728604485763211328549740338397094759188552012114175585090989782378526922683999454864417301548790705755909571937331275999914877985290393885815088578516035495004167056836228010900264534766783362201596235114612663072284578465627310670791963440555764539962630415797042265629487171735284964168833765449477903816666420299622086321004072670607844965978574197941590260109660621429866602986042510455153684267880255089674500570479612714046318322159872553360818837770245186570191090602482577861072951071413156263095627809023054129601583308885199976630202293440994588882062944139442434380302031353024383121700784260198826227672524197371473187612113910291560738389947213535779044522143711110870804057972087226178471618062338809168046674419849380690181860696578344112360796046556957450435850477744176619686793397573772715332239003512652661857985629332804801455665534352871168331536587396206120105991264414459023248146220548942064253025624447088580283679906124307357823032280903425360844311506042524810365626413102754509314271072442562231306265316382074458604602071817790713849033937975718339738196981754449832841744437617767750795616014637455878181576062897486120215920299544606206513348690020027990332450184879698037144615560691289421651230878494012866377219076898311762053263395821183191790721968454758543910885903875649702085850140469909348845452667357913346876632922549135733230529593083790844760682435237330617550244032558538893294764767018035907815811165808465586665309413024874296284927424882985681473297197892916597699764349371021429082963244855982851119893603603252201987085648860282072661342469125249841806943839419555393872142999588889371164962448043242384017743297088396631476682158593654884224313393927730388267032689597543333109687068757716224282504524205863368148507770664809405023296378954555783325878478071772285016154781486518664342924947580039103562089868088649064055807275613290557334063689073053139102927115925831745092780534317602505349249384737190137233484372941670180584461872650320008182442780477734470004520730649094485159401277637374804539043236770010615220423270301579844069414633181561230432789366333818316507696499403199082363343962188488804454257449217819339103513618041863033933546729529204674782260080541327316885910855846880551447369594262048977827096211575111254252682738517282682028005388736253097091039450363285642267033199906102072248872554313797231566833693055092263782602080889061313530574537807287712450728799936093762776641457691860905983962995003068621885296534266599160069459337447518790813143988187623148219167245124454176239239890138174090998531952576578301660962721140425854938670827081620820883822655886797330059793455127919542318090306827670692787653363141034866342640984033495546491817757698215289470711248852003772363063981728218924784216727338662669552471039593838088338682714924270462002048877915234916620159541238715413908979920343314366061275170378961406383699599596808673017753728679765765689385999761557044412546474156704228665084387869696493375308468281638900176743939246404763195344958522710404739779804915679725187210629866442369906798083743720401856853055567458476098783724928466527521798116584165630537760673085496590343900351828083225994170902828322029471998400579397933446830950167208852572092389772905457083689419479298877381109691045605655764406925308070431950066159418017119814680471022170065543722576108414971830359381939436982256040853419806682731760279728729633204196757527438685986591895827081821670792741367160592805877867861557377350560723685147446904401412253978455086340275676863720129150085563679391774993462175911934563089871136433796464595533558517429127283221097480051521363144000698776235821626833080128817742321666339848650615890728377956048091961673493719860088750797651446523533665827791686964509362247954513649661338907626825877397392877618877141908960603050979938536884214563025039056442544873083291104613082850212829130436965870802188146916091168233714052846037344748883693968326806423085043238470451092255674359669226686524600794241890016108445208938293983753749488044387963811370994408485275783240150380762101420569011850560623010853818553885572747359055930802113737789394637150769390546072202437253041934317302846902080240832580351586762952828065325500262683014142654072141613583611813812525643217363508704115161851530046206751163941987208353677073875662037439368566666550900137712095184581159050946375515493963048247120750090026405206422528487106066817189069032372173440189799230076527781058303101740875951448540207451875735898200520346211281569820920296345225831469854541007884300574646937876684345445445250608608755166994326254103160099773527922075016852993963043433467688930399104983325381951693985596270577812018032944458963999081867776866686538370814100972376684484388806139968409765131662184202968271617893100993951220742267738172650125728578444531216722414248609148367313669410599552052194393268913746861423643653634753568471386933596463631182349051378212065191453646349036158391003191849188557313828577764699130367870854481848135561120349122511501227797005499985447744849127815405324540026266163513061867840899391309525844478610017511617048651399950162958026796217318999166371070314697234579726427240763354675697596485802325778146449681301610207690200218089261282051722525386120968484687145760348623485964250689660517642726444806669827602366170021013831288992923832275649237375011230847217366599137544227032852492112616625803271323835131786489076011387024248490129175348626462685560790601282715782950575015835634118753040383431803554844108223280044890392119952692845235983828856118586681490281652214316024805306357709044522472173473096953026179316630941785750629851973827217160832586057853551907393288881368625850980892998970202685849003372704160933955065563047104822617908874231347753809544755322010979476888591875135992548681521771986474501116216382491944466525854643409697069877292305426595233767308767597014098356393537874570829118655007544587693931223341190311908713488616142934913440621401319134957779214007673071009899668393445734330832455665444762031438736264224485483541017374259086760689341717539092061310600413496273638473423001331839010220465683369109752936413168809869156213129638998873883479932855098115070224837103192299037863998443778224965622655182100231387898508345996378756998048869179172867518551179977132273820646424847940510980088267125826467353815134281018773294633608425882142316697279056818066940689696212806094863153553295042703773506182118692365541719733162126193086617132670495155502626242621371152709159537330390749359575865754595809812192694576592420721034591651320575918319047541723255855474839306802683467310043219418414422657795934662193354075885343136330192996982007299704974948896038095041216460088875320256708829633361604766292384675411844343410902249492432826938597056911937406154882247168171209183730276827037867833670607651179946485081165561258671607104325403222405808962271609066319126449228836898717562614945864100619716681804142271041640733053940951749131616215131479016454607277302327716743173059559402211440148838862133304042301563828500986749476695274941922450882468584618357771608216620367742707856784755296829646088026290074742810707449657999572366711446833507938234829010635707051271838900451675027119861560577888557042252984806789940241141076222185202379911149334821173197564979531712920702713169438563474542188232665472268890493611315258439233028341416343794882467895860737875053904718595299272102516322076304470946346143897039188301469550774084252551922142068256274711159265334907224667900897142267318800700641840619869576534301475917183690338589777766639089630172853138803997624157185400522170901160596873742939453684501392975871735684509005592289244540441758250251718158450598174429682110776701806419915882838711815819609206689361892667125159557174118086176022945581674859395689597269990754739430645494869908455901026366465816834501529012804005224047156324865560983725303633557402117164991973528128744452838289787419062945486736125400132802496715067035561770319938435336400893387780935468967872502692976003165938787603148436596038344011483984962169232344050875932652417624522744744449959465302451225876617108290633871145126148762218079274101562635050180881300314920759853813419051655728760567051838626937244095984482585610924219042410942177390713435999844257103612173214510683343516182568482724613044617671709069141737626640727893131860811204463949863567584784127057578802673728902257048652934469766066381520831343684884479971730449084804287153719075413140218522181507576108084825168788447564486314590487803784084242431703748749974751030994968969253272454935312776138701446732985247456668197331923015698064746699390475044443911450547797936447743494762686225654732453617627809323681646991568565342082959511357780963978832857561872942945965633348338597772096477225817079393925611424690759826475164200824758990069974835855700530046093676922720129607681077485354610982044428671630592253984204622534172319455244582220314875697633609566384886701701821685660471057440659913731031763495670942057918413928085359880164053715560139339604480293647997233660964454133800683081429109719401254719767742629031753453664426679087989420912321795773412773965888542011214230361225351127090283187673368828071934085810144515703574568566547045218343463130230121961585754310055379477101320631278269237023231987883018418116676003959344490280645460491971001807202955736510187371466253983678085786633233777858756057644412208061029511185719325962160906153383847192238390179908903816225939790424752767622917844824179744421721164094754448686012082960315796247881992640272260611098748321178170862255404102043074348268784066821268123594267473286867114922783800138530145986864578666610025557812989087548419901237613944540958370379643762613299797157754126649257497071920603150124161702329845229926408983280943518099516264898631297707773942947424587532714013426901032662193253109526387159948600452977728335387688648240975642420536228444279196698305703359392411763623555824679718831406752675960165959386509350882274840749089661167639485875329966132034237623905690873315552059964336569639266958719527774176295774217128272344167445858662231675647283596920882581621547337389209368246888437621076638195232276004603765194588361935590332182408633880044657035170499642337710466281757861447595688712285804586675291965035793919728839743160865971549951000796243894383690410540226780477230231349880926661562842636571376625400881160909914729856290161897626742844091874400288232427539756715861836847791706499861236021112399955880156415107753209463486407477888064448101920620639595750118954389297537306783598695398714274363735509309049526051534595653011027072659522255667114694844854263330259344849156752080231300537481463657201100651357244735408965270435637270117449221576531876307273668841172032181693203680161349411889652358606793745160483787895575789075871859548628030240829364157934280923838170995895406154232361190060022089285642604009770599780349632630685789039126749977438916457265860252280212993628121122617183187746265382154950280638564436954551250429589792263561663904315411715508567058201193118401519068598713257998662092394670459053223284247427056055415941843708661888110666821181689742205236896991575491417102830000711401257438191416001051047589828579940661016058872935220174159428051822896014320969604425813704732123683835682120001834117377402063089467339027123789787713060841391644602028238881691683830290399236566992889262701467321791463651878158873102785191232302372189656909004662343037932183637276998023948735360293984015285623603774035646569367522956272548855944919254522533573546929809297003780238366682492027963641909227560022661986345250366718458012838216163358397294929644214676586015276683823083318496178456752853938696378632118665577019926811623970198388778380611774080884094353443511352767878949983381330393625716883866146053486668228302498862564924394750998124728936877023156105856866427439122785887925026221525316417528635216402895784939384192380348162249342470604811909222662632328004252770823193388529784278373772189552010327598082014086719003467312671980660791252390539112567078295207445070077589890979656705516830088513356588976951058284894157309509875021429536497065196914237720483721020628748729470389551448195363330081427029942880994929277445912238629193733259644351508664180992552633587521268541385695067626027803854852042260404076994075298317414427627256644441398070792826587944433227154222176263197641483157424037577389760986042907129358335141771592359992137947659394703841395550314164529595634505132142103099168405062775095214501977313404742547039223404318772398615940093045817561937349262244655243453253017377083644297896463214295019360682177351732405126291681379476950642275497089020859324965175994275534085090333585180503757342767961574679313659996653831509727472646056033185920091112788427560124136848873751992970359505162033171170937482034864404929039630968724259659484614218447331023134586434769252273464857059412614917110350115897363201918865286383602685062852461608981800508252820016246328745222689298607459267968492985834613115524785589657831032408796527094502168376101494653439564179965903688641539054761980174779818348771175391461250303517170590792964695187900712012875979401765197104268464298047885426237344066463310905918733388118465023185578581753483202559378191353284436506318694312493945024747664304018582389339920597338319663194384776580316131833228880618108234778955396215951525778848197444604099372912352642464310137142704425683255566403497381654232300433029081774126387959830443829506773769582740636497392587348814892202383147678899437011029353243401287766785095342296347337233026788811765815843176447038479073167728414151659153717499517556082669995021118989090555456198432426615785198438536053880943456469313198582249299556653050960080590669391575738374522239364435804703517747959924097777173871274570941821794239506138052843534699471559238032222391714336493477283422898657787162746411033568635265160845909795157425397083004528518299197799707528745238281563282911435076813277152946488188944163979981414756684404120818515492153130633297114161133705642829687605661599191865884790955810501023232469505990391475319709191817529413079257485207493774058780359558485870352658415132661511792150335858719308501482701959419299918323221694968380795780566004442561329098573669639734470016028623800553667847999265414565688308479997162486799006214419247698797449665679135494183914861587249884914929030608388291396158741413873188969206678869007383096975858931345077006561381198712890650632702377531973041625607751959300311277640517507788010005438605400292194282223789728040143115741930701684945503394837133379234947951996226644345992049167514482661148626241645411433203231070421344515617545826522355584537652867762428629059781179159756345177429459625396217271663694332110705612292366512029983196053990434776181164811682239021270719215533360576106993334641661607516503547868841060028980669919479293831432946036252341840909004111854714133435525623919681407132396852567154309542227336054714219509152683830435634628576969792893564112212803103206935124288413944629732776766348474614057733197668065393674159135312765327040246336960038322082625725986336949907774364481945580161903809942593018005311348760301537998061683874221692635632501251600583375137874065583215473973679560439207945041485271650912472504640505871146030680259744002499377624184844426918298957259420947242715131713427750381564203954131650501326734593658445268776696781292107645219491094861756676387013123914292075800828775985495569086869908278262978246225539698218140935268332086237880435632723562635664870790711352709686255566402053441950807462898541058458195045539735880988231857920004470337941985327873436707523567217532853341093525532175260227955712779867411422530620276384426810476003435020170657799285344599985627033294805525127193130744034498756749442259586469394688421365309539435740591089880378229826456605456830892521565197499587766645495270201049261102897444386780597450956570768002040612028942012398611285932615452172073129682460323554121762352694327579376191611181277222055669469371949170499176775511191749087564583608023341299181630889861165669701810014913684650195494993921893214300433563567129113815472276593151134126343458878590322309323759424268786119928262843916453259186336589887338266841753497238580137827982700307563263523734626863698213147090290922808941955665213408246611784026805653283693630956372691903059787613154096203917772436417043931189102514027715482376435145713462595574033040062351357371096147561492607668388466304706433533848971482277322209471212501341811829226241369263111642814628362811328494017643548858981771581807999965674026503845925901142703103436738949452433067010457611000530154333936718871472909340823636645314854669027038506429672646626865708370541384443205307528378994465363255231534598499649068601605040095965171600517559969357372014989816406393978199310103007526534555111647676831939299226307501989815782360576904009398348076791265439461831092710188765643935383062127516308884806811737101037113002253554100475608576180173993004834308644842914704656980629571768517240732807413524915661585616562188233382523241685045665576366603158423511009250012252645727109858984585082288214383491488122469017525842119418725003018273021561556511381388330475734825511303681661263627283316507742389034984705023655532678815147720560914698061705329027101901007376149449389011403518129963581300091536081699069750641266635734202942375003754495047377307448896317200615503793210971232339201447236318873266475201918155665762626264974384551175765915888948653516190904426005833887094901140909720207684635141856920018343059429400239512683349727534954885895449519513195937699238227455950661887915397535335736710129687797080814804042986418056822837537965908051814314969929850520007135913674872481827917379988251953820286019561133960211695148309049243553502091506606000897129473733046621544003965346923383284045783767065328070724714013003775774548496476128772274040117092443499773991671741149790314921680122543469499268308359475378953000117241509213348332676354689442576259826539939745044427522894461245139315208785142499517566651160241061250862835773890159785721776095433041176697141698807552895532796466461927368734332294393905548312272627838413620321729317340084708002893347289202811959566196306529848889338573471675950058896114751837403637897829411030756664223749898074012130480911154617097653372016397359009728952736039620685927511742619942601060943266041958648715978384191873827836648985444201348671098129922064296124178666691275490053289633957886106904963301448944283069561555549493429148413897132478790225780244773298759923256989450847423480400360925438987391459125027415982668481224172693984306101176361714445440470618503998733375636889711367176049362234403713547891407057174383876103081668916685875319822884846490628902379042904635253780462116387018266222495532067280948545136090712386795970249068401075639126045519145464644072017399858809447032307225641879239781383837375728507692291834036558624939644631844609051521635984028073311149150083889088259177810222040577419298252743761358502130178172464321809716364749181086549650870178267102073973150546864359725853672835011943691700433575450423925911394065890178084926433971065003837564970135658237588201759354323072961150472000604965504727631542438704072421941038518852598887637017130334775390156602452819563757631020091040411943349075353660685973082257854124016476395990514986131062202951723700544098100461925712810357592015652747482570985601935789003375877231180877748035900471788675744537417350591367355828025655721641235298714546281143956543523481280516657533577186763171152556871892573839989561268045066913475957827944078678288866631426856171844769366042863940207172056081233557205669396357317233752074106230302571970427741403599982925477965121646668138103283280343498621084076959074248213143160491864667399828319761684367598876686357541665665058211725284578900594878637859062851455149335605593514777359367352943651828792459430113750331857942302332037359843788740985092410253498871038745613982104411243650834652249948068029341051432137236162359529230813293898793990072011839768840908604020235455439240778134577318951589517313168666595989235612810394815764329429935208467619161529833092050137727289643779803374125487464519391431545122129815043543469785460176926344864708251219403252897711205097793515516748834137627132043904815859475468718078651250719291912757356153009581563049298078040698679422345481503052788146647041231705307699091097055177413478227217074316478876381311566807955991102551881350913877996886206149737089184160778953793712076389165346670565058240529255601729787863248467510573384119505565806475047598539780740825523706888591160240157667749357810217340802282468579904673694221808535078234616925998844324995508870730138488827793780911260756128174843093400141118752711020349231853872855843889124632009070400192535450950960501458539098339793871414940219227676544645906704921291667902347614623529543434989064428129483603847517772875670262351432524194982190679136396697130623288368505850805878447780261206815365259740202871828658596182900412463814746533831253469921044566871067560952760506257637731870212915065604432499859634575306545493642197709345514188532879936064064866409139748963451947056840829337259503777487538711441750596913812268788185432926518170108459132290094744631469746070012376792403549762691738171439888793679650176614442542242773581210897344953490863598863073168619583381683652566257008627290396063177743526883124684388016726032232801798271819561788315808037841984899135984176260880292810787702924757466503437184074512236938583114144564089963106359689077904501525902286853338993592909073375355724797147178162523831285527377663305292477296527100669161302664228173184344891922932523134598259664774464820402365070010406148646112438770001215515837585812379608253286057772372246271090472869918388620114896078751987823157525939288317913474269468356700184772378463000850625061874749667091016666812131349193825098215732080968947062692492330482642546859189963818843523467814193427496541961172255195631090442756213354696158812651447961447535592628380814585934917040783988855667457065015303871774661014895975574608756731015792768355036081936796875599544892159832064177421905383986068207834281641237366619559707209898151153083909543251413839126233446582051754136683926865004567181233347050387274795184218177693868707476528090976643905809270718450999035517396242994293192921202246898084811553646787966238504816066306326694821448089546183246735836264315737865282682730209658371118983205719989941904764146668112238824171032992066525461928175188358296402388169722641404423620947756482993583764871527433362512304224859438947156991938648236183528665959721284904868708550864424972080553196910560683773489552430337036984561152211529660241749325381541022889094316753251442836394144516753394324274903200762199999012271570173123206429413310360049687987667995872684940833773216554338665557948139304557519799712423209905819714581897793830223311561420118374311117028222569430268249290498894396801273775107043373830478740831430769960893206724928988680477145957086862019543828234119783320824191348738593791436808665419692291500156106900803923847669547181893072467331755607367988564701596515085530106859196392997782019238648201559309424532294720143325366961176205635196784115129238229764279187385192928294569861110682715264545221439389361776502985878427109645518659896295829506261427336268584078673812244868898364188051894154184001349663924570108859161621507276701663048905069726088291879239159269035952548308474524610005369060588614463034798617922415148742686771892157595680603769848364925376310378435649016592534758505854689510508274373838043366214222903683761242518073299705929178518602435053707122449005172143522163143609359580770137709120726752622042644644897730147102221509092958463908773714468019261404604383805099834340116589110510304321593935338448899296390565364678878266738330359339326935002116879709188581409897765281286792414898345845117307299500666796762169368648383687875444601920623764908461272623512145601071459911382629260013030125147031036056959527507539430015867249079912718011422177232888069405007819568045870268531051001944885690605648352678569964797998145342372004581619169535462013526166124394544137081616005549315576252028918370032200092366936778366967793633496334620015515429385763539559799409151158896121939241530716407759831763702643185530333576732183473714628902364104920972066564668673534927739245877913442450989341582073312914795196256837106384811545535700853320304337107083899350643938706627363213995168382205146529423289224334259118954792048639063670341524341126953589612206139557238349896344192314799906054460475622879355811367571058612264630556263757307390088061744983000690328038066756873426806000440871139079147881251014639761660527579935161354019227991353249269868117871484652713813914155845514513488735455293204896538537324361926341249390940364065241174114713059580174102810698207562717628008200802831668182285812636178216106202694541033786153218832673647196859217734300221615761368085920860045674934678498604481191604494258733549165121099530844126030292494839756127254916563204608603850461747446911804880654916122594831182731741262553174052152209215028293748686787102602783503152731305720533235030178404286424391328936037049222458201671054497759770133901675568935502225584839098775549882457961729537933113782204515564184174372392258600069819712664058032867918686105263826244056746548420903549237554007622413399928153292242537321111086954797892966818204935526835129189096114449050278720037135045796183090297656280325704394622760395576728333559373305512939932618293511116753207324263342169871055661270969993414684150402793155055569032181431566180494025743584807717717188914701332061095035447164022296540864976506838345863390733232760465012586851247518932174466645308958291882232665334300401379961292036239386425545420930834385484036012032935735851198925730443079177330898917942199861024432872378776212222862730508010601924832671140520210879265310267820249754574027647357138994988503756650895125117531147589119107310199504564428070544105035265376072245024457795976138044045146269975387722241145146799505993014086203217638668173532443794640115322370383762736235667465303212826191659829781690723759354813233294605431209492738685517488401846045698198920871836456716032001221061720562917106811710882214823961254564534864021052274944183298488058080206951092969413650584600267785151564129153860891224536973401931585479224987474872368581188978671713657082794191762198520114354468483925297078364836361266344068132962054799335851346624384592989573180858345889915298997439651813122505434916484956677369253932148046681168498713128228212456025434416163448250489664429853100286240833112851540950637976020340099295286888304673982214001087137828112814544233827247706870215270412264918795070118787139282446890767578230463740772409310600896436984097181320317841997588161861914627795864931697058047681187327153767650290654197630643355296279244581197203264986818181046610855779407317938575215115971502328734694844350037280551470739670475049397773764547091539278360054329392237701249621172827162940870826480357660537814268923653392576158090985006929434622840491263593321468397772507655257795030301059039695115770503617791265257653511731946194310915548656677881282981298645484262839020557657433652522356458700758153643932118843056824356319134548269634752787619057587583462070791531214663184749103862233591379220040699475073715611481269232591523719495169442169818969945544017546640939979625132228915566224551251701696815440361315899315565453351451940826660438701906516736279843911967875428330158112680467197142461642189671626757901697684815854664008347659560766352451201600913562093139980492648916426051704366332074904221315524742436288093819785480571434550325876455731660799590450457441650714538052827175152667472720746643364277903543008980232484649453016010717718716948299358924103565402605973973358293267933365824454818421230457808322148055374719210569963869779119692151279420839062837200911343490510706187659263639458536933385449190846630407389153567883095766119127505145755529038091568987729679066477950006893042835998010470562692940349219759030915930395739403085273582991669589861430748336543338583487406989676597053132235471438182163938055981959272715503142807777410898434503881284490170082615499437181290308185566655976902173439948995136981683247608817134577272377830799036795469099562759135042994707142180453269920583732852532651282134961543116668636597198882279015280010912568212578661033005966701962587013336159771664950790602582885760086240633344424571863042371155123462717523884531905309680370445427545946919470428019120829213581204072006681910813338646020775133961560570395376378013649149039034969470491203399301503546965225100594448251482294243828158448458630440311842104524363403457903923977484036074687122977510996090293236989889429319636082542283413885953058785251057414839078483106202114479181678765900096540685187758190988173014399955990483400628122023425423031854074055315032821046062174876380583570199113430775356096070402553498504348884242195645733884053578710737116521032431123987175170489406173406628844143353304687390393054416666469817551880406644344216143928380434136546695896427037782685165798585401183017509901237551514019522654893069878110167864696195614328222415887915386694110142091881550103832169600916319792169324956642859153657280681101789391368692123122061865520005918833787548543280131278698413405142089302608120234533303009197165129667299121925806742315695496671903598266683038724735671416629096502973047720082497220454518762221254836808923646234211168196193820611833678554254586126508970235827175748630371246319678905024926149219169341396586829280493711439527712226716161575397949579484984399362486670017839926375647047938764418345730472077264589856592801514017474696339986890154134244849277825925165744645562131829099487895052294462306825060904575857254185479234929672784417979271180245621032189975846560592144441834625794662534882568729191941461118258134286860394624163208642059778911021436338404024762579507413317679122332261683778058721204792690758439702696734144348138536541747664918931327386691359642282190645824985202032720961952151288091318895540208514362901060909553033083806552192357943450589631796298670401634668211052765568095194980397689385572539894041435126800326278002277985060285770637539185818149936914733256218604320881204372377957184137258784460152483411213858390618064278601706956417038312796877629727225972242764316812558740583411217035094642162026116109354976416413052111393450462140084985155003675139388740350343312253385848599800177352937606053326111987115101649683951952334358922529900340528880536809155937760208638027209798601127759049383582898687075425194461030072757841530927935420014975805764370462954573441808770819543821154740656413967318120789873627008338101618353119651005881689827645640605303973385770143793964308172411162605322647645297305595878679974079249734403070245096180433906793386781122041154807647022329404862955090768609810602964509647327229225411540154599297877516514903228131500695921430673590386470099512283385504685011676392232087776230384134199390599620194670230157794473038063706111534182932994330410522330851388115961486583506940542131821841888344729952307471807931551111086492697466428690815066863066012003227059243328985919956027550697335188472807151854168991697902719655966608186669400749113611791081514792646230198894276338574726647198901905655445045442949391778980719541292735165659756212227780341204585254052589446447090265879478606198901852477708618209959456577420268367585361126491661264446228395653194882705066655853845198672143045883522579700493607287896328751735954430830694066139949159155111164012679312767352921980499138036358279269910695780402400359907053579374318643034093977330097017764451543362700587668447530802446510267354156950722208630409634719921561770489091750205282898098174226458199669046330079691263968300983936394332725402438646348190073902985406638678731833946347113423566086275575475624061660376688081422940711231429606697835207142928095557557740052347639743504192553284334234475313372482779069670169002041731920921023533564150326236878663020952122982130916600688102178305877811960659201244244170890390210689748349207723506884583133875820476334431572438643215921539112175426006977509131085964543320024761471539441998654919585802304732602294495167504306336674868414936839004975875027044047551349536825270708761761575770004533454922116961949345627827788195786372427318423993695584227585723004223566514574313714883522933513040237360873840839301412828678093707761048212618419145536282836262941843828080416646262684244296309160269843521400550922617671854663047221539986100558184132424271948470793194877802528529499510957279836800969315107226457089505621147461461241269489064230570397208512846316553549034466498905952773192927238085360276096854738873228081464212093213886167980902413275225898339147633981935853593152779803609029890336649676809105814792983057203989949826849502729321773808640458279500444980609244026559576857850191779800588513464852212855230587030972861073671462263552284605787581442883360261949877127573218942899801972363872599793503626486916916095754570124183164548443773925369946500548996442822204773997181487359196348942572446358771847991746124940846398572097805002135654791114865026948397862701068841854279851953787563855944103483354119964694605852469586138888884427120495180271624817924934324448433739233535108201910519138166162502962379723230758480676328015622377636242078155867905559448215788123157075345688143948648268595305221737346328930493378352910704305301786807636630783308474712680223296695461463039334693396783870235310207062062373242507695689492503055354458472342145573951906139100564657334844415910671291154308616412878012980985282836904334166188300330279465559858091755943403969835338456549165694052964489967486823123553096346581885299142548929841945868920231491996513537612612871745743100375520188059527205689639703342512519802680802564013097648320004644848762955526397319759271327015497217201489787086515401688383408583312237979995589244301108131402674029683088331718622850499912717879525377405925366772791772478240186357185152981010244276684048777483298369352340196967205808848376779929092864558838586939742095601455564795892282623787296014201144987425394802259015364679335779834823693784341928048537219193377166340745462238510242538463172179521949289101894549112449142429813879363672008613507283688865983117661572616490753847345350023391727556888861773576437927234275882408932490128880423309939156852204132688603875251605863338154376836859022506882273342382531356531420811568131976137775195802451313996748823321173549691740671649760875757565395787070163002026495185048052406987948219062619754582328559951333902526947781780797204009542245821073083520540248557230912177255614194789233195663700345145135625766258840797811995966991560307033360754551827793346230928387034904779707448058667012824639409064008704434083530506048222929480293719188842840589194870419414212065648267530084138791580843781804657535754756943898471144458684441895659079553252839176258531569033700232117406039887438066034527397469628235661967250970019048615482799661059491881328816303170801068633631607018299661223275765912818286401035703395635018094348706194301963175205202075073291030767902718603662838996325051835535941807666333237319600334567948073456227423657774190430051326109974734314359540838388342888990050550047283572431319695778480586118384435882229373976082973175298967043018389726846091393710137347156057711864252251349189598667229691872974430221486011310115956354198586292778332547562216233609470104074082392484910910133450535944211839494133526107603415437999285850061471809214855269839424004110820891307486775328655894803608602213490916561794538019111053818123021859663828687616309929219977527325972666625443825619961772134640761363173245249974144737149144527853223730321765953941825416255772089776514142967145985621734036108749086635113965880136102345901998861187063034426964181953677934762774796678355837645206137356326309851921162086604132706665181090206372006718586333117621773392554827295295923130796952626420972840095901885234219959852650975337979274543067036703518175740025095671743346627966396399405088836147836544892543712151866798504888199813770781120921295050160567759920524452764155440876355379521094410719087305875636008737478817281329236569637145980706937126111148674575133355656856393169042875106086317058878194005157359627482562804214398630629408422492894118467743849739737660395551182695735630789480628819341090285157878397737787287727666558892879996830517694787944133140670675648838882661068722375617948218265456579733054765059201687107360786057209616749707147473328540622181435006419915196564785078816785626943773733714441832619334002431119085144910024042223973847516559894282381678831373854845899501033823839962935900312211417176922869991663709524383117958843646454282169836236792545786945003268481935608740332023233708082529492506176567705159720277838111471937087913236714658782650331290207422581640299419065090283255235244481311197433098470268128238812649039170963616336265005400123603645829311316857624614669239609420035633372269757710050034621605732696985083475259558041118123789180005769187774775318967794072780883273132994580729018592258180262303841084468567016596178292844152211566742113611264953447122485696926577284844376751099270302503294262136151942167709998109649405379640314557415876772457768168646621237358940035036315273189589603841435004602617428134573618615889055870947467853799558136258121750072491749958136449016283627150445796159666890675710027833761442065870757172325052940923825548803503245156073410133855950818358526208142180245125225734196404154826634049660986651104102425251478648010535946447931383934131746299884134040417337290825122395478368685714813679787027611148712111807748867287674362648151179718007839106326169360137342667784955885472941007386612712143678669760572349350014475262037184675901572644161642571022408032037173453012435807667439448076947211954639104153454423522133585311723761180276304279996989335659048382832259386201082936586138445055762312345225944096481301535436462882221092356116724706608536509559521516857398983837005752337536315420513407016098483814738677390182930199826715836680898431013414030447301486607050941422386622847457464642819724963777506614981811738819389012451204408006557647884174836458105810644905232986469079058264481330616874229074104573826474684785701407415316436031293666887369542778157400281196309454028822764185073457813886506482437991496445275315970986447208660411117766233842423872293844705466161527411106760639195056063630462024444429764707090266490332209817311365347910692818569389903685314708674033314246375352287954408850407554986772971939211894384590828321454721436874232331074275633658888214304075971659169616721773425513870446691640740698471460410692929940089081931061664242146412406750578934813574997317472191539875769188328738739266658216366294583267715179368845621827234932339681590195951260958208225312864569162484367726910869300119537468139442786936914469901555437011561765345119284178538927488645920865672852777732479104993376339763635857239663909282922840373997442091966433750307779841450887616468196975640644451557922299613703430677966497394196407327436530145415776725322706998367432987115352343040698046692401685607595687514005533062833110045986259855087332852030017303125391903941701098430713795104508186786217603821537788207350957168256715490048785690887934827114452449530046270192451782221463378483033188645466666302742077988494666728507011780140505881433577514018605872177513697098316303205085309162164985208745442300322174117728691584699755671995092791637995608382024681685013172036180174545693668455960312275360766488988502512714776665590883187680120539324636898035488233192781370790198667552410528480062363651420796417887658850070303870576004295775779350644459848954518227839163271420915168702438504358257795984807978357776302911789192810916706546656454644260699337963327788112223230846914392264677648104896688795022492921522966357442532483419346553142407151093987701259181324868559662383917061977839609365891454009497185268035164633153102305045461247642373242496173403135034181633015876080535835189213406398414309139567631269643638304401052585649916711166401397021279029059902113002864870048158100914430231581185209807265094775661014576730866976432917883772318578542829694732791303815581980811518065398146421592727761962081402076027593932971870524108765126568115712497519553888655739162788482885813340857231848981516812200671608683476523790143741081386973786664125257927150797115715452999730559293303442394437378505864465872710921252094341335910318028843453271216839328584577832569357371528837186373483627364656831913483461665990274781059677523488657137712383915014036266507836175476631258729405115418964428327930217201948474061353099634012205018246320758860835926359142709696675280587249133788069541919037278598117340511559038050029611416197254381260042113115907154042271121431221582496891661645978624494727329124178463295609469233086361800313633341201387756488449690594642462617802741125226840516205791213349839464378783374803656066399099244377809337516479392995260813074405285737269434418987845122401539812761805845883616704989918867466447469895866893522606536814859080880156175671445244183147847687420412203266703849313300415118517223872376453521109369734392759060166904543426112290951084149873946708711323057533869653657056627302303250132668015056022427816224800218042195679581971623622844107532641900409377923578859918025697925856528849309575206056237241635633625938745341828853512678287945623416470261130155447503747856647594787119921724425584827998023309976448598058800467100284083056512365324229906659565698448531292699274595387738240702737283597597332648791451834010722514678018445048976560033299362964182471308255497070866912055398254001583519970515224833529644362760120411473366043917665937633174460906979449025857619313275026617514470987511771298065369718751175683025165663664947533505855915744576145295044564434558094550414362045355064674266260830981818772999590267520042359674396746964953058362538468783848313377270024139832220399761536377892660445767582303359479868748914152947514978369709708518310738172832015369968202382605690837474654457130015729127600286516463957900077443257507180739291279743949503007790353110817824301952505044139373187171917191493509536536062073505253628606145141728743434949512087395444597139517727021027023432275722839243286851174053768330073241496926142370336645324287903782766179464518564254853419312622574454458083421474563088816372908117414968580435509253845706877272252760348572952036504140959200420217871294376107571142584739940890963332218126627885984897773232321703471916277062328296863287392268463947652510562387558437118881479581626244944633760645973306790144042489653357512842749500377883362821960617701829790853401043203446163312072576196678183464495961873194082794531436823799317547856717351045194610354256329374084828490555634090166834103156873086610534269148067686058910088143062759372381422301272011421058809952988767291490061837555863953609010676990006685110354126285183049249291801183048186764721861667893402792566965281849523914851335481742054270398678042086738645735491348695578502174634687605533731279593114346453259730839728566645575439172082750309395381809971445158023162167499282451399597014858263546590585564076811010206474891946686135093995841622661192862661093069378820052650522817782466295933982915995092207619858182830432309134285232778710544381455413463057784427670496643140021515990345267291416041610779398456700009331336917703684142891578416872987253322250925152335443982379357069082100192466791184866932489391935720119992627616971213213059035598142343668794047790794941698921336533181256858648630272570965843616176679465143686357494344929304601608023493909383718533239912723954497735926457120897144386736347224307649602827094896474411386130593278556878240641529036974177830002526399644313201413897053598944332911101788682265382152400507939878123975008656084539001695626492786076018857467243443439510418801600738699822005756796014576847367834827272463300382369130110619297571217101934452198521361065641956067946258141099622150868997712894327812603313577683648230148446442357447788419950744865707031768245681161394549336628753858690511530783703221733360873296224938002374116622607251528243129153606082784375712401127665376797951252795629972868895396517837451201096234489402364711324543685284702715844758791583578375107387559379702309697483031935394297284297777267632602688979923652685352106897299410606974650781060650478063061567901556214961150839875753972574150417870013965463921598115111040800103950482233491885634766988830522106033548057053776023430798417619459786718170096483463837642834117406419619451622623078156887311786104233843231786455655511666158987455593081953745824915533218540281137412122374730356782503946416389142817655978926451289797746505451727333834443824649922416751432394454396344694721403211218031290243290546719880479250235297095629402647525846347109862261334470139685598408908745007229805391584860321604698693380503379547803188321346349548998574970182088355403233484975726665316628885621557688359511016517076835309016036272867117868434576164284179348795822969289257660148814979784958482467930566917717020315593151228455028495083850218219963897026526786175158153733325517648612064436606935645092245610090295376779262399771913784830929005018407849590521923599485339998717125741691692388159708363639939283062970267950823285437115463203158614219804861017848471577599272598199084807073686414101643675038498128321470934365947254894526107621494440450128282851068718147961024501622487893905438295660650743087816208661241224185295427274692307947838577505107150595965553939176391739606395606848819890739917641538266016205497494978554550241838644464022514461345867355447862107528445037126356313132411918770501000261841070217874794817655737982654447810018652302190635554455801997635358117614977297826944651828426006458698726855405570090308164472993564117849333859470237306111862684684560857741151071349393475522018258740055283890218495073358617675976857604431155955068280733540440693117672369225242326783069717942092532384536474439681864271162607661532621479907502886849349614025874636145828129463911342714910309525142506342105040945704586572913639497763149638700968207286704741906832234979334556857562340371474631971391709690941398083462847985062121456995275978223502810256337532608190092826172315238867076776868626382857276220432422745316333150477779743162224692476940786416025962108905801206485032873394683609290757595897045846389283086077011369772643568115907255682540557030895000395775115472838848891703803873797226206606912535234632133792707348970675704311932540954765807967854474899077776928247641522744045785750071363681432047215682367081682970857819688045179898234662992953167674148230937468083031111326424477430877096263588078168220417493483353412063425793722544916076076982806314059626085636156228587813088825464291671970947636351803146008873244493980443186480910541105393804733074641179278945568337268865827648441198973865899878335469437784591290528459863292999195273865863530316330612846433170702289161544481777833684229811183327670147803180936699593853335820508274001348933440253976942868953860409512505886148072068627017563564016406333528581912574496053086278260189569786073744986774936982654413409340810664969199714895870014494526269563625752038781266117458018406046173891050143972505053982040170162616035373472771973554222931132945824313960288582090326381477008690906510978497646133606140085893062455401628234802719794396381519536683517648891624417692609855289653140317182217634692172832299525704819672646824781578843621615642463144514837407693056235925915939078712281879457545304975198542225542162990971746734624396081769789262070324922672003074735014762071500518993639418316975840878938973806393221917960060343029103598450064758520305127850911043979138666268952534589783790555328916398991877721513151093451825603760336157154658066923410115098595778840299113730578395399237155197660318302903172989781235498497365940777904555404990898590457844567182124911985747855051442029515403178274372074341365636583932572272725702335682265323246717418302483565355060264404961848195688370467774335304777327221851638375223461079220589008247368250285094451692565146283153066437185265203408017607920522999656856960525073922779446386791705996073536632526506993328803404547059922459576733190444598785216105500229788301533582131136369606489966878486627577110554071763930712517867401344326698757868026770250614229745524285956817532924706301224121569239634381769238817968293486428064386497994839755449254005116905686692400604874233481865401571343220146751262393320829742128853337058193036193552924545498982211224712715604514101636233288448894874646545367838983790804044664355100912988502116599749263225645463643897237491263039375734315764345928813445747362134610319913667434195218163204194075763090263128096480740297504484755446988288362598050131711765471879101114811594326814359693877283414628151676572778656428741048441948443141290549655096620595178650377814522170610989511979352200189124988591794257528538583567390230087618188573794756954418012228563438977448652126310612329254266600984457883962630601728513318232634102859906625561907907682031302376687644771916784265409726354966122837351408924325708821203481319598099362934720539128977444058799257524799204598307681610446249703298319642537039994912132334483595276634351850603244126622048643860992924170073980130576607887129753702483610692776407657542165312821119201843845961881139730600193246997251720762220631122642272518587051672883577513827888870122557855656406332672111539431342323738010777402847420993501934473019105460534439251815732784157230632994352557003570834675297385110867476321637601764251595558186150605867553144836729406500798785781618630391785997819942046229384194454480617813523803143104907051930818077741307117091917877775161611792332390501207953183054826058272854231854307287063035767202307660103579076610430333494209486248856103495881916718385522512027920391748167629456996541821835140816722574867908808323378936419961950493181712072537165003117588481391651994469018256546976303070146572563724735567839846162046300415555102714435027307805700685037273355019574851525747200001351038011732882750182855908631412944127901695642294275100174390367351464424440402516114312035716021067457566380878405889117420888654682604896037553600938345827343204973439378243315542675979487212694647094991797870001627933684431147719574822087289867219357859505399094542360755529469091598329717495522756905369539514494827401969764857402868490424821792567809321351878083567859186943267866621923288439960684371844970536084417759772794085379006498912734641833396031694127666884666223888520600025512575729239933229377975386407014191622992614843347424334499193328259018126669814535810054444040571875014687780499401784740031169286611832837148698933239290207173772917795745352129713963509377988250563618913206899040246412141335979798778337440973415667083922074826856759033407039803257338101630569005653218309612547351048361704458187206192978247747430815944064972571572733090062823349155675491333558072790485263323170655618895117621162961365145267429389536814948786026635832735472170254778132856454418016690987516241655514650605540807211345322789699581265141105910846050554172597205661391172532309261376698136634494671505704228023007351333131129940808742566541289956666262877733610428314356610888397310262445750953028034047738283090360336835554523775984019259068742057044704445025583116053120900633017356907717199317097100615782417954498069002751548561830277094132128937828025406079463037265386885548977279279315992472316029774007016342095584038312990191922610462467167825996238329868164138487521480805965543762350536034879310016977084420722585168284812417461808385220495005870774772068897909561452086385753681042798448079130367919990669728479964078321036236569374413768916836108302783229969897490321034322277680164595886237632438487462633557746529509827844658092831670464566548823802408457361277701616495707221413532018612708438391325839214867783209206331958597101706169739507501652892256054178950931548736327628057377869527536526894948174651234902757030351785514661169282489287803866902895037664216685351948134029441338634198644579437186539965846962527776941839721478030899446221816806481362123701091078404714446380292951623537884864569689210768210371096328561269445114730856145041139958546974576724948163900366497949179451598563814829478484854298595170746298093220248794392830538352269651773317627162787570482449502530977879341108642037443226530336723185163394382239742313708052966011448417294667968811164212631217312500856902082133948668620282773588088839666697528337284700666879260224946917262026770322290934243884910817179474626137314069470785198667330407193193565240775430287948669564258803943458485216065890281700623098591935634177349225342965834400442571959222773311622409770933027280252363181968348788058497472044959027557492206591226781839820926165662152126327500546601555137540522343472396505122454932300657434327189653670567949339450729899084081644289341163508890245309634819964591837598117084443688396522681957385226740445920374259823576657671221987463026195694081760613073539470145706655309309740823861897775754163910402334640238941791836157496265819885089242104142014054706309527652440547713553418558283007405740741385091884351307969121892618593272407627274013577587149663464550297108587955743233340670422500555170635870605611240226376282965712918919590613512483628326045436005064234905061480575524877100306582933736624053750107413802215060475128257556019036357370514216026253014704146103825929073411309612768118327449280767366335343450184246585906437585462964800509622299759265373439842977542421595001981314948727728073514495824300788760876447284798646455368758653098395237418950888616545388759959545481337894696580031176567528702889382854067253059821337618365748293280441732023260150110734237746623245120158076002592882384083997635168217686279701963904637158193054846989527644801488230947065195528742820842772377117012755014832753842529495754405166605904501129293156905561830313268272118136108092458719405151258699558721392624009264354994262674732340228299103441346051771546708594631843325851772129241611973652444327801738714987537802506348117344730267443881129743311338429109865436146751064434366925435487683571862378016276162461464651598457972458718919439563365994157269204687224839593719401360214454205909848819719409943968180793831837264830721360047154156064578543916868503928600025973163576624346211187328584672701849533700543891131363311858182546904236653926547540782372070127877777109989308771466185549038280099339361100104567977497763797131690418468608360946980495340769613373064223477556550482605385576807297062790347471850993560555421860905546628270914831271270431020619688073711568713330257261317039871928575456520078729689376379420525447943621946623172095873218718977732924265188785555502340315411895554312183476491249281511445422226972036359828578870873964735862284969253297117204436609062855967923421296627089767548560361193673067386528248192143331269386708927113622069573915713651794496490603180228488821719913167262598957442358553473192305482372334717511363630080006387693840448376283450095974168868681124576188562904811784656697891974205621438416760705477416559707535793780227515935305168889080028509673017251981048999276856779097701193808590745950242691283856673326484256032550001977247526658051247967114863356397768047402582969045718216226121565425268173413773322150769930841744547942193878984248492377771657940889849812536051347873572751202854252714193136999439844393972149300108770742885512982139708414264553642204256995201279141943194991365332102035141596711429170210989334900211793615853770851763950189097863369014076898892821891138880970485760052091509921611849959922233177765059035342380541174305576482229601559127059703434481057425237307038714528623851451345054256895666528145391606686989562427858648654496188041792501075532804262573359140005047939010340499517275690231579832188655139410501118282268351103671600795283187149629740772586662138836878159761741402231528784970680271691017738890015499843456351620134505243867053194933110692053974228988210787879551958470120194868819225989270950728293378842856578934478022609402859935783877526693768986235533551294815015857296314865717137814012445375334220089457118662471302134609326630129773705253276501107603855161901021885218760971771336384058655106975262352061990692455646405041554155705748001622117802602250203324340524305417205174072251200455238531068364146017217495970712116364333391633932318289966929200148791733179026808891358161808138370927221427539224330213212085057979032314241484466396681160746105139203049804879147186573389464426279804288099015544413675504483549902381309895853985247560214971194090630476173459635863673831800286982850528485265754267020961666677254232401120715709259180587270607066094251280893385509006445966694508581079808650588166547540797235407700982824218599160708480883925495475489085406939893009833221969081017192248097415834015505676989535477290555347981387482457210132979523786731367573787847826038483011633195837703654204074254224844288545436657480289822336956539877444089861603609567967750181090796474136808337988120034195770356771973041254234765426536172103741471102808811940692460852072895425439995539540835261879262916230983733824942784957943105167454293666689604235548624449218365605729075578516729823935804558056761045076684286590052117523955973067076959079657103252534152957006683384404032427105407292017747532620221895378443886279038952716056623622376405128161449347425795209245040196682867052122975028777755467076583755651980364555403802940430733780209908330625508529612260843757161421552306775984589031935942960682357057756504022260691867305887016628026942796064840824741188899153759716525089201390720231197752962893037318682074367405146049596680087817136017853316756754005018866253304339817550797401837078148550158795890201091792217966269777383892606275622809072399971938681473297046917590192494194858881638249627233104785453955314719654041002986306694223289038919653720942746236793842957194989157755554230261746203205934646116936261859322557411594804576551021709142743906081055544453484014812047986924943977608931473388210058421312952832602160437544434375033295064382506177323816321408252414669794358876630710998095387183500899563703404619407224475469764829523750716833024239254982395414910848961421009835258603214795052387120476549299180343439825567309582716567008910687911677551630353603886470038981796928076019605947159468550532906212358844036482748145687543079706836891087807596015019196067229588129871393563627991470278116440505862187162585774709020103830978964788550273839586973886163722471691603677850699165105377545696901435870062616004895654392544242496211998526962104977486392404402182533753662200649537302380737143411860759555701138429939239927869072962760700653951493346906824073967089638310349727599780095036980931212038909495965378715205801918845085486629518950869925798935416753416755901846636279024176238900769974484051063571476709859961725240089471625830629582740838027604793975572009366044242003630621646732360707499998076546533349304864510124830556953560709573355566242620281213588288503405635900585053427974430561106787496378522741259809068595947292130089255085848157533102309399539720407912688291383082325892260925160975563060594773838166590919520931560488638803079957566935163824960445819059549451388045846970396802816705845371269227786317207155672316027688741747840146058798696138321290257494513338534019565352782255450389770657521658782618501131836400636698939863867061369944767085390301842999387694418218620128413077474137803762527025416074544078830170029958634105768619486337459936506414837170413918288099627329332189875287127972499570949927514161077611552850214880707769044990727925523098313701550386429990394401226491313384827152082801940899135134102508505146496680475862147092634563825739806670938423674492207919144085455128607819625992746466603741118637059140051608936744494063636932778257653357806444670502564879757625027194256212791023140166524031449694524385649621072521609476407178653903683885955517973179968481563411496653166603154818663660903062823909002820986631718120620342755195088410336622024196175088493599353365367324785040251103813179455454467996635169343567284225295584194800279869890334127792781537300465190752817965055378557678421334918863731655098538067984074523259562203095621313705783479824895309518164994498786976596116862871767697666601162961802100367404906980544338133369711255580672764918075884514159672650873313237615586737840656603591347479627878035779182396972896211932754770550359369920779044157630946723929568352324497532259158972832990010806505060274629613355417832371083220384442355416901136885322149111868639665562356932276145655143415661511792748912295104116922721422924234765309405940291647470889233860620388398310755092168225650726343124183495761251640187781859546427911111318259717979168744360554709596606922604767959710278743518042238163288670808434522060373489798423789263922450861676435807776059560773448016006940977248199286741278088734901479482699455690732842431744296486359284784329656131925884447745262719925947870677745563360643842376936834521618701720643710691054772839280940301705938398143839849559901898372577356794289005772350758557936546165898270197830186395120284234553118367796542649600882960419230601264686166390114195416743879709738364843406755083064948948224180933467686562139377883422704036876915779555968022599460161708551006289089129075732752837602342382155200043260390731856810503534001247619250778023275875140269167300864961023673231211492234867871263192675665969142669504471923727758002843254482488428435408972139900895431506628811136377194131612652528855606979890618835700542302451789880956867019324972975797324887326662516647923869117159214796784267998223260700279324649422426585528672121281883459160277338076853603964752210306355735804978511506041323868768318074372474985474143544336319336951810408216261812807414387654480966621014433475690455570078261305707295714119245580782068544566263451284008116658325810893261246930432636232629311452408480127694155852453324915663806576370392939551534058253392416255488789376162603195598138167159440771906830655928625949396041901000887378095465843530388504833854392107601535243566921723874556615902530829838917712395769958359753851091995910269318233642571539907965697839385677652421810239162972656308398308832614101757769476921224292168729549632895380301924812289532243645206017467397558982886968118459816817937050332578313613080000767500950295292693080459609320058547410499822918704757313304743251072997905942862753889734454502875514867482835582531468265690230889573562312893340318535495631846573850931568002432032109446862828290413684758671918775074101458154850559204068993631389741430920961536873659602319259440054209187988804528419609369832664903295490016537045799695219848695190187126237575821007189037939181421615342943480022959980087477804593191628061969083652551702127492998382800909723994365500128867937385301674263058705669831262285176970675038856630124629729280804909737218237944023866825514570496577460653144631201179105270355914307155379662460722339630221066259033841778322906314258923490429732656404412521017364398939829598828801848255338362136162662779260097056761729303092371938347034766124990127973209205758114597177493141559591786208403813325790747821051041654530920591247321185724367659871137135975381265981949813975485178676852527284498844651573996348257704759682656971757001308351289901503080354890302150819398978849881653454626281987601737744945210498594992134329907095824911185564854346551760722261105122920818300836546743337746511184538725907220626923749422608306658111680313764160590627343634568959405603759044320379726208548139446479367309466195791854446720012596504504177900692983074727881453791140744431225373608010475213982106921557270928261384932298426285810147700306232697661810667522244328201459730993058247388384274873026707823079098542022223168031971478992757722349626440868412192341989410262096457557109425240163784731113005689430179282530744954677876655909230139059617174944271954893831886665459714577512870999092659756006115808690902900064501091700469800219912720122929386456624355300158940364790381699336620119381732375572424577813271491224741429847008557790104141671070354522335685607251966099223953472611448108370410062458002623320318606682011446505924664997226209341737515426239097267529072957607742568136667104457251192076334688540082327761692410925027312816773893505845281717267971088699226920643467580086068964508495579565340901768998104342920576658493368027134555123253304958360775473935148210332835173072925080127003015496777531445058418448385546759347163025571805220444788840394829486871866981691058370713131865394162916551062999130242144816562339843130819821310399074021647024048103062070430858352676991716069495334131790783528017640195651773377341156002060802378533567047413374167338120430490858672627228859145556687587496764105874944709472304765493752640685719070379651973642479663541858904086895209324458749761707487381147003132925846259745458896604891771836854628571712216639581122870632613133684592469425302461171540896408183638048840905029120622310474184516229675226071500439417482928420676845054178266349383463890913779478493556759465982391044015277840055341886790382140202844608434780888076030717662938252496786473348039025075945449762521743823194976341436621920826528432236007306200771369957192997487230296784674691198474309758867209281753940579090455797640270915172097057837297471649015722927416132384492710596204921614569874672594478569425462008257276474040889278250177247124937113346906831481267774424147521836460136968944510906892612049123232212486146915238040483052022601394882643165393073391762235730398080073760221578223938995743877728856065906204785254136849006671449719176403204976291740884199243575322565524510401205005995844629661511673571992493105891184095005419676121630946821264314021436563326162126292759451373536805962520565753876898270155378440409998224004377490863079588832755528479162943594255569015662510223280357005645423891074224722216170970088890369310034164241943578349561479092694638507957076730170710021620972573639870068816495573841959686217375544668319412860472295138797466094371082221555476976903352030829743776387395437226886200387400359148190995938920239506809873170405540404120280569383413712074713923225606157895925023440242708897679062076829177942394968979917338186627603191893160152340992507725129281702608702403422210505956552596886049566161342606746574131963671519472762393315134155407154233343442663866071680374366302540530449012934733923921891625087390808504465461972049486526890797682176521547882860712928796219839673770183135138255050019000123113122101887391747866739576558006462937091378130237841615178226041087488843363754709114746002241849924428901487763605366481704924249315671099909632697021116320992680810864101139380487693290832989529493607362550769437058974088632454262278383306546401208064256032603051587418206624550036622214438625092330565650679180475795942102032256185965106641004123059782466943341246642064592620629725923578228943965780410746898552101263418785825104270832501694393770467440010187472798798586424344788577551505812356104650053298855452388165683449511394028608282990647780121849571059651313507913606760875252773228919811361511890503536914382984459773568531520164764128111472892167121791141534837416399628671169828086440429057714335183172400448758061320653762299816063833527765704756255042238828675929776158318423590114726101233218492840414400802229214396799207340228898770015212585695706584858614481707698185783458184370503185091759846789141757865391731987467539022693116502163575714219846001279934049114435190215273536753530277913131749531855665463367599285407808118316035003977641312189985523491088915064434382844554107687544805872950394444597872355035091933319910206075786386365691038151966350663284876590438532299525156438854407985021610960747012793781814631760807352448316875494028487058214412954447896865965814789287097767310095995819025071529063927242018184110363997764270476238084232979519908264575506224538218370959543546642031819886091980564138941433558281803065973829146311592815344752832896434411594172032577944418319354541847748691758246766963094627788988137675124933558925659347281957901816508897140037150261972682706510089415229290744692836315597917213500463793643838449234804704840659262413066781550913888595130801698832924144231617727379853975638401201972573070164169932153396041913162172264837059359782386819410695442000264228167046360662266270929862044651586513239394023733152354319541187862849468345368645010055326573069059751749429426959430686386512675621009837657609882598229835813907905786421776397554119152520602581964288826374677951691549693438317943995161216014561507203710221461808574138119922836479999039472725947970825267440890150075482862622755309659948493125135039009710632797088471351789959306756352298534998840471059591977977894569735515238193843038566700217604503209081387187805511210771885955574911921622488228791723222756328016051786262842932073383722712890874613466939914038643365318083226417375880316597517501482415375711869087602717027877171329387044517416164421005711492156556529861070807729949643371529402909165751271887571708080979701231141840786944147331614364800636810577128907358058818964237919908438926113125836040746377134899987459637952854171727717402180453235643579690752916572377959004784065483578710566768045718253723279167594926262570782994419148046584315096523550962844916588465907497430271895660826496846833188995659773221310301147692112747344731488744245557003899652897692772593689455465143549034330860188486375042649592469766118264416951659710323686098724677336626860088404384205862176865732000841186458675487513866006665974342438245601391421744191124066442122665227203522369937808580072591588417823089093357325943094164172240937995118124572990137242955474293153924125701743502026429658224889908088332798283158557077926242364901665996695342443308442811545495259828928393601367097741267723988103365955604157073503348118422299687556858576110805747854801651915001114844527230962484884218697423176464459679944960902438653274457834424491550706809705202452224968255514622189765975442481676852370662551508010950121323678832380212457349899886787620115959782216669951062457093581184378556692183039802819184485472977542066488959205569266611572815984879812159406198368061496549187340708642338037603504436574025573959764458462207753358597608182625564643372519109706341394503948453500636059230188906090717447491504593001176855714607404582728273265737218888257601560560655946501849617422546583311396675237508236707370191874819245980822065100364801194586584091266281846208679923391494427034387869028962125007888123269606348561341894821399333157665944866591159491119859583445046991020487218390535624327670438202383555571430558370983273225551577381883576331890794648393519163925626557450972716686678253052069054947023165434733246566370694801762628703822009829938020592696065706074441618385970164041544092453308380958811991655734334158908420330680334377506225039641748498120191088724888730317260943829582791474781290985598732652288375198998747742038486888774812377713718860011297323446954511016715287324663129827341636015362709279455379441582579023278726612815894086058430373046935476270616507489460579858150372223069106898802889948202580063101018502421880460950813256937934965274576980214659439487289876598850443609953901187197366479811604178852002330835748659380151247705793438227972928947203566148641567124999910838675946744427019351930762277522916150688587877269940589378294600082197244185722605454170286900707378255121287549801305387853566421853628639086050123452810345886031325116364756767835464335589462761720353482065289780034621241079118523379311830292643927278951334756864200323980181964370059591846640770268230111014176880027048270704031875445459366747655113608292230882370015196220235878728275855212184143577675734991940584597174213450428069125494684779481975210365863042442133700959311776971410747650376309340224891667172803499684897014772483788528142934175884715250904577904909524859073665939903227732521426767719968679146119974110780506038654276968701296303242609441847812782251713006336978320121217460437959235462223974521197427548420541662083524982610622924297825990119244923721812293591039832362648156275383242655501914583501978690578945984587286459562664729800293653115051639320968301320356161457099918092697966768239656040063768714305327636319116302142071847536253184930869372188657420072032627823403648155737722819498513668983561695168637284609975829070375317851842959309727479808723684140662518514218387471967296599459489954948721884277217014892800025146590838338774537696255483141889639716233035625377941705871674539868820421261938401379429098121355867756830061101094168973275692920109252491086934651332666893362578988837644089096569045208197886597324531584408766590245778725604341457742123329862559366189266441017821984365411073015392700507236934895866659768567911218101660184421011930036983559069468325827404631312213164981239349291996021892721992526611871913569477604078736892413380900684991712495842143566371216410461952116893229967812495777726725302474671795620963196720675742911863370823580663428660358893271092554757057579197062915024773390526309345709752881822127761134977295871744872688119868320060170107388640605326854494205440681333091519149359218234559890448654464345372691526053731724263480782604679631006916924318782558879476595974125993267433045972379789987622226741634411554655071665727314661373063221221619847738220344026373712131949033042703575385883411782218898941277280688341024340120716185204768050003986740027916388791091874846733587155978438437645986077887023052583235304842970313677208547650500654872525826379659469402415790639787666888335243195572909438143882933893965434577482347744096046606114976998139566276922872667024902925374527289130437436072136883345215235980332957781240409416058699425158988594826475422329093304213606177540354330552014142971492673246927633901355670169314184527181011155944809775820268101550450001491894181012529617042317899424423227688062579111441178995112107859607544743240128783712301802950397486854044889837698482579512648732584812457686923395394335884055097381808123610920957847970524590969213170130720596113246863318325121409537067701604552525315354578562702728137937985050056720208559941813263874831760109821849783784367303769988489542669964948113853314482883400548592313053349523303979111710061846247859973786985248608953675176662205754467667550900613814350068666105678726820687658814712436684227278544951176519711162098813961423853978788744163457375163023129307917237994357323946300395603898877367122505269469228348042373074859093830036821384218150447142082976715014697710658137470148583920336003725453024456208547072311769659573062689007306918373694348137421484714288529512458873533663198825401127748957198224679645268366353052294630664840555569478549574382144072921383538171266480892979750230189924887552154514385341506098949295986161778518688197608451101239372331509705425152749263315876879797348350809091285868904004282451455119290241348169957665963795870787358033235644962243058233024994586459063836399384713765051782844795453365437526884353370870945841604750161347878132692634565301860080456256731332932271549869202136787093951312762313280718907344293458620114860354176910606912190730585004151340513286727783271266896369102858782476205583210811532100663308939077992796366658351448684046836129933206082035765754128851565270866749851596018477318321085816134675331649519517364684737213752823956937809666384537751940903331000790084343845936512400506234143461064775024854077698078926579389985844656372586316427309573259555557877397944356689171535810026512177927475942772866786689283793297420530747603190433544716802477230653168411867863135197798319997262427082102222947415311842062528584358460806712002243469289146232238280742418627178716545350600478740543595683960065182717273314137286173360870378086657148706553581800592717521041767868658979857640160780617379919640153992108538410631127718134830385302035384468546321923713179652815145772052377838410832377615710269485439141742770947584986283544913990900903275146857916363148642118355122681857363467406317496457467448277269147320938234098537700922879128805250868737126673072339716428163489039479505739048913266388894738678662435829786521943781654611256243429900257973628673694789870804797930207231170549414801125455570960436700620992691397415307167538984412430031566001246185633560161082122061924210480145996483214708783739341441819746474364018075024639020052905110406650368576746734339209174788631149406270287948119454926997224017672089131593412542285249558956555996373339182844010219180464811847709274728304044515928487295241374438735000594931397155014503759016474639090051650311639423234205128362970479154254690698050716366713116288506189979762619679371829681445987361926207076338280233588554419585198711573564415655014311545846296026562550869308534347113865248591283758574610501944204445883220501999218192515533038244913174193977341148286499046035382924670138090140866832566071167860238351385276309014255966165606355270627382886839208300535427952022341128456064212027322230920712126574028202569880940175007809284404501447148090193637058885887325686526941678378841218084520187856598995978041648113920828247064601975208136917834978188729426762263385895469655986341086857706386163753954995581942885956646367161836713496695423458050707359998717215413285309462964003845877503199134116251935073609799608709207952011820999017901943361512748812630589058405067671745460600235861571403794128294625719114389265872658054469683969103850884570383339264714313907632364489541047051423015976931255430769532858638614142195556922128358307213077407467137500522048413337349536889536390918591390325223962006567015167485575519148569753178245578065484272980528340922043666094672234215484715436521467816463697566102185859441206175960911488718979628615822294320667332786075198025913390733779424005101776629384230720776955091563766789419963043244766771626500778478721477408176112089266062124652710966139717287539180104267766093970620141412579970306650290544961672959725360354440157683329100437023285203151008152125615479491760474601566896104019690347811585946783425028632590380555265603595649727813374878745677051100767664610200484107204418641615975060151817515567699136564469558005482021586728419780169292634322455179115427310010116869276648368179506067445854010813898864928530974649082985610974254407745803448195189481105237046507365164883640820933023528611404278018239205077992644299634769173588979286132410690236682977898404532570681460999913495551094838879097764801227044087912325981878237673387245795763470129392975271270499814356097504039149993477844499738979698687436824422763842613639080818229810086568443112759861537864606567169619085750799508878137987056849862317827869655242043471804608892571137201431591954021312064243119217280898221262266089336053856241381965539476759238061012070615455588647999324551176567754950827891448158701500099754235091469762064967837067296552107550428831946535698199824243594560111019919590650217239694539722958960112535367236828783505204361373533311517529166164899663580601022443426709931090545199468254946609624098184161162423213261509134844044887220177039740298400751609354408068345562765050416886875358874857437594931713550942293707376469011386378754862718122796840143646446873974089420375154082837697968589336786609132810434445335385140988694460349146578005279639161871800812402232878444338100098967805531882591520911757061393483867724643218622444656614689443231774338919737099653225454342710811678440281766518449428315867690775503990583800973372739447254627441502381147796624283453425200393615126963364597564138090119004380360657277990026424143959935980694550072148922079667179569349066613030240023920315203450209987892710593086986839964264188767131129034795679990253021063656166760235181509996979332827141432751268989713537869580782078885080106191002931510647761577353825545898305386265478889146323581972164809481748117014703165311354346718305863417613535398864794424741030308296944240349417490422264375160555373537654599760780551349718634467079523549408935641395282091768987528169421634085048851888073072385952600504057557533057958773214520789413834813823730159581861397912058157961872099622075319169742193085368081607842996676011905658942256569062679317533431881947357925220223056294558136571886224815426270276272345842396497568459733070235298797774391225333857883075075801166676388325918611253574180700151060572762377950976871914535282684915400157117521484386903734732364221157726273604426528235012099494652465184920234404489553809276463746184493580574206113615174572792330784917079944875037280830408402771554170543792998170735080963432044060748140794189251519686161695716288918237760687594605143299439009029166473530099762311371691332480518871370822805028772482944995832050828171413334645540449720975491188277295904651086379686161843178899391706855306516565000301248205382654038504587612222140227525697598592625467748388930800951735126591728015394915909938842017380331475165831703816194905008032646547490119235691473584593955137944048923731510389688421250707326840751603087955334706116804712491900416216418068444278222637061618624531146950642407767817613677210383253447393248580720638273574961576675081738192797498633649947561835122254113375215639868600801458136024514529939973923239265738229940987874204983110206709895145703738032249308530702404804911144999208234128655131694200130390591370501178415219314050195346803039114130988590711941066416401521386925412016766090951613080358555101339140660357977899205110545946240772299665929627302679520981440115227689655209742068053467032026549396376812695929048514264007433600460015730076590278862283405024990642809383402803594277635038816190200933807500053327707526397173778921864272139712314150278205730174176103581399652325244379485521303581120417329679536480106809915371857023142042765801588386735195180635432884673377212051420400958072483110877023520136678777973318945060946078115151209209773638099153425725920227464955866555283158521571221647796347826501291315194808185222388508519687973385324842734963254908631396575291539320589408008534895232845602263192355075637924918396243948418257836306975750898274088215610534464957944339399845593740075767016620694190818719570708610289960800796665205840141353363151784036181904571546274126742944051428011279779499070463775983028231848807935327588776113494957520632967328341785528021970835747368579746741438588835216736710388993542902091151554025414629117605322499543195927602640076978620634830589763509220694590927697457890194745590710464185442176788896023665490950977995955106337945186361897019699927433138596834889270409941677145008088592432859580583500830915993931105406104055553408129278201260219804515025211633551276863616293460321511884106278808652923486042652543141192572257081272088035272671167410335085001492279403970179295618747013397975554987334303126666895634230256324312169162164511367247549450809622466636322478396517516267541717362316990007835970005664403114716488511773906944734513333995805390223594328567093619398856902268978603409560140416842967362903278880892508835861808545395281219576049293250230008306297112635837637727684297025513237224903251994503261845026761824269831095173134286581762506350128528847771634482147811667528422892790013967643368954733399622568214616412371661889822462537735253756442401173300107956447451100694814616894965824598621640436251799635224331540678109276706927406193321798313716800476817211634839219039653740986300153296757190241753128109413910780469858593297269822730237460652191267823605700289672805269809913582217019283283527999952075909203151518762128342622489898880369658575707103636658510827618961878375239973828701523739293754654548614642895315722871149966081024221080854905501782790144119893634091645413608258780063426394441454519618377525607257301452091415145592902263956012526842237746353068532671948214681941587101046709546318720392772997082700517881474851580359064534412821006823896691509868369519136734266590044724533755080258294014055689468054170009698118404697642573029738083346256948547441098352483870691509800675461141501866009755281191537790819467492285835639626666849774823376467618190464200131906562989668694717409311433050396803164258812003839834364451182109751281346781411747513034144400378736923248960035679444604217222594086884412556743829784908379306677329932235034904831478852471961689787215971084781874130303443454763987295936694289762323310474974726725946590196269994017411654920773383105647961018795359456615127203986643946123969435815394215197674502417136954663583302563492233436879163559559523602081726510621161660356074980158871504982807087457210021139834391344398795785388028100831072865043007508701610774186704148207471825006782233165157779818079253987545388625096448616958307817652756725114558671065931305167600897611189948196376451694390893916693068370459660520433176023313446810591880321497584425257800329187521682386668264398762027963714563271117193405570684813276379350116998859327701510518936676135526137833243287408675644083805215447033442293577803232291213533768773640919978420208816907662578236685985379865978311561202918343156452653527899734102896128911794569310740431973698600052808474679264764708123761769511494128095441966151025377014073651916419062486450530114613512748427132832275323784304829237531897993246907875000666240345135371504230726555975665956317314705402858329196051837232764493090913502500488837752668117213028346525292313124976443731951569914436179281010688382031728074120595412054068500377457624276261930600212949830069103179796570774873347937198691384812477995795089125742141982756569171917447850146424455810770336846734142116544618211617480941045492224033609747265168682143108100544702180522926964753657636707854648912245039562589059576269111907234686567773213114284110290423101265623925340605276823290400357792283960168661967906145235063137785253237629584833810307177981448368631400517883313468167861585315855125217219978088289859089743744936762219141187928749084071033734730903503385797591809474274036495524155969640875653062218724877842905524439737066373965226959538518656861134283799177884425662275890530752703544369719206397628155691683545638547023314957508288583776364869692387716095819832168489427010367950295354792986587068319500015625589812969032791290846974921876986555073822139050349578060083017096055913097614066344727909135898015836845078277446958832946521241807064253666645468224431372548510309212776013382412342311268543981188112531884690381249500859323590520512742070757968136324225444836969498915157468455852516787721333769770339932756503500518895037408854145064514438122526334542227316649827127301564837784217769644462448262736346116857392427917453324844808846249156117603936948653053139152552305156467939699949711293473778465216670998142802119222988509641712296879573585994943979009186932678552826104699176491444182490436502108922319998859363161099142609275008472370703109799405261044450993645840931773472492136725663080635024378734402157215712923615510376771283415201572776448970836638010473807951546653670170214466889796946550954248870738731888620219958389180801361199531765952631371782358125870740597888333224030763180324869524688107743613520822312363079275975982972854683083195306648344301344385399544834235282985265233836479744949585534976686405043522842587117932748198960801376217024729860855137110454566253118762873029246779950207324330052423554834182614959194729975899220801189748315066653359924510488625928832645980311145319695849864606670728170289360124054399387681935047790131882557360646533829410979440278629373536645819219597112266311913257747207021697555752124343431288998134791874125252045914086256645354020819259303871973812653402547382293221286330845280833780748324947325919096313409769453105267770706017843611439225422235237470671684781288861451743940509916857300708178774915494035480584575334732800142297199967087502072697481593489724861754155907940788780542905318099301762872546150268622907333303408985130905837766769443752173177324086736204081692617265522725088941263440126377077851044343152215926993352030925022535849624205312873147981454551682367223246828271335093063365451605935979751718973288999024738657142294904194811187249487973660967970950744477697791321941539932300789868704544239948510488950818226310889633696087409259394925347356917792507395441283229782698879500228677854159839261408207096068583878533715443282080306195121404035542895694748874688942895769791104959745868530654520131143574208238209906876285314749176777596525334998737940209497262592749948271367213641190112837877490060415338312104041699068706250844793627039771135682763760011719846429998325354224081175976928256742048007184458933456003248793568921686724398938169205365919010724752169989118782417082866070191477768249968007340727237433173592327386469809311368192769668746400770780606944640378924794374501959682996072458696136016872416598197646585910712074487403545132757917586997979136936146584617615348622365429656018190442453317168923391546989284221757157958682487866558273236227118208276291691867542411195407557163466610926611377337865833417912793026601970827895073012970844727990150457319829854358115861513547305112871967746958505891823061760038663129833592037024201670591966326763853953646697912688066345143697224794957931588797478965576005139157715214428610985414154524948598380025403461032464579150657764614444273693430086412100478447069208942679460946634066820838969319075804321490627691011452097670448201385842044546626102537293918646286113099659507123853430157173789758905663243755731374294572573065612470892733192443064974936648966662560886645108463566537664451733644869316165888494312232554773203823842237794114977730958236255181445848275883424621046543532915812058542156033438652571139806711559827132849417850211361264782912951096432938332839655810158096802991856467202539179068804548610654030965947084495249636370872045520208541053731589665264993605957294933854209481315037420401750458830507583122869265532083686731713253551644416565880299695111503508250194474971661054214455119246774868584232334255391669478897662712283424296073214122388644271366446507971032326104874490528565738076125367947820349823531374536777645213779058632286913523865231532251257315089707878707285585349300865308147042022774344819609614116089690045471225365777610897933524588118482634719930807532671554893246150885188921553730520041586819487917484620040292686199654540025261011616090773617595256611578176331691041336981851947997410209782854854834899043739059873564711961688928567473890663777217187000740032884551988056983497241966599883459594804559001217078982175607726149477342810694228533643524629658115034025853972684011158120383964047803904275879166287706627001814268059143502514673151134287010186196781747371132065245734164082671492208252859933996300096636732586879305037367448749506520635550187021991356791610424594494510008361262002621282123864260272057336066888665112935322202729174022911754364343425620065227797175124933453281365542508409685028435432821620826980923612010918407039567500707876258175204120318333157736469456157440013926535922043500290252467264834949683006026310589429971961415344293477990646960380808414044890639169757182888341992196081239439100800333801658507904560891925089344391854696722286945952257529728519297874285419531801162762177965134767561640584723752665927253188054127478458225864813576136946494996402985767968943650027883698113249904068355397294458673353718565294726532874784343045693254214848445354616165049248991188981830629678659764205270314172938093283170363983391479069500028956992229634499298298945667965653853692031777784955135486915630660128921521132785121206344572829296106750622928744804392903612889505006747306606630972907556966152089659080596100940734872460277770707390346517314676014170574133291212609243637724890793190609241944012792296926532338352033289074739756631313752990174054957408843178876736569756537996974224643073030605898774785578799964388296954500039608158807613791918315643637680514591866548976724608867259520112539605513913428419787468874696879048455106455046598345961376853161556426951665477588706562836831469317018919331863653927210315255155349305222438530445142823691827389210700084341731748289443981359156133856947089824334855679724793045458667409175236094984016115993860622874357873022371682191933612412864443585485007180277141157836140695728342976724034664747048694318544469192624875168653690015438299288616096436443287373400724185650031956546270359234346850592085823966981327245982301086435326546878565759489311397679033821713647437478744750290264921236257734506898473752924631672363041425101621368305273718549263368490988551955722404119004227291029332761377435383322704839485689573664235591984763269016141079957816279625045414724723633249270182939905358516548107761247336895265119734292102191914403788732734413482144977421364364179157074413711985637865105274824209572740182236833503979975644026354868581299351913373620043239846058518418906647431654971400008549716895593940175356138738480290942550760940857177707294347780811398191130868583142902461175777735110064524799263665054856095145947929365680394725054443275490379394387264516419692709557783227915978354036827235400407372802351255764335468963431470099687096162201956568077530236856971093523577711406384664187203505400145385749649537620322474318033082136490333226106932594071059711004005617455219063706387114751595871215036558500875115880805179388704743915446429824401735713407412779308360588080768679096898596092612737127943389039427104150560081688370901417291533602949715784500710004521713022713404769201978336555964247249813998882656692907279027996273277797491860628152708759328483651759698389047206671717829004276410085818081670916763850025806794963453443987714959847774277236019761923838376452136000022009145478350178345535792445537335345897215876908159021185558208231339427269682188892088525594799163904596181331729450916992568273271739082742369615670132331478270708599068808066012142140789960952149516026101326858231323985178238021265536821602597658744728464839251413010328965610468171139583307035287867258116742911634391645087654973602920223457655809273862033256586172528272015935142736846441822553587912026974024302139464436476821682313160336042972063810123777437377971472576905746716724535493122134805752653664445003043718360182896788972383542407517656275276192853007277224729953082996579835157315799557560157211225896456371264756016584366153960466777319653333680012031372945914631195414985070429801326275419301544978791636103654640089151549137414019200556075082866803270546622658073179098113724484619688928443795940038513926026056737815453324672614135652790023313681136218319695983852788924013326453021929979101155689531739927682140789129332696662431465950758589563239431735600251261603357642424701830635858393142179395098972765755162317870770348515114052882718220401675330518182839604454013308293698966542090952231188159666681055619003466676387226593258304216219792214483393382410640432627950864936125709764837168004613388161581896047320145080991335154982859000385524079077195842887867268803659021388715457646657972798678757157881305934578364133919366403160258351922620635631016307623226474013405991051612335231276107068333445438335323015917156787404128548831643629099224776625664521764910919066907596455052407683809443545232707867726961560533353071910281398731314152550411379926369489171046493240863924866180012011863332446284707958174737827887791899115471610484281436627210680951137699859563682902045135169897423162029500465048852834049690165945710453945350665841229003143876361767934604885879656122430880721876447134537558824381351749366861204322165635066766252244583609244130603180360725906205413333577592125625749123156612604514930928547186852151971445158414569480472627540709883611797550059849439407241176989867809726000532788758501939732112650325677735340439055916997867184932611509700416528265513797240558192009587202726812335750951291814518633385586025058048814523274120891957541056063744294227100413313062950962896690024282680090162229616349222898061586912429324353320573860859759095934351843981135593268787674311150194306687060446449518224183286464861852713407434960789312424319780148940503387959228027644591332174688855127412362336536041669884149323300044403405379787311782726987288669529994599044082228600064659954505165167914648852124911315026476593577166349513761826937797729410330880931391807728031027324092497309017363331842366093057858047606961053105793938135875385514571162637906675670811821777812159985755328386207357681359251232682177642832973380172213086509922082017479040462307314185473000473466246786359529337558782783757318579747273286204200786773102102536293234860968936825718279087449788602969598089915392612751698912328422920030143600916654255490192628766380147778705904906106866893820886481465259130538187307176209043620739587752496228781637793796547610529914693454630164522874129706494247117884784412803605586287601760363657169529223512253515079890805348981846567128576001971992111360543817738017424943403942157174409855262641763229742274232147371044685557430999601244084303826394091580312199576081000066077951505657811049562663207490383188080268270641819452560420321892696229435728481205393682983055634446054685434003859482837164118443769995492009419691308797400678257176724339713402284216179820658289490411779096040328839598383807255939745906120423162665018706165506465630347262882138170716573408135952486784345912873377011285418064589367093573842354841710636780519335552947879278584251090621729349884644792724321660614846835550849473643947529155015503103119502869211960289996588370506623240140745721814806694196791624215096532768725153696085096158316073799773940141730279034100401717772868555457808375013744145497835039846762705087694621462168606638777792415257124929380265726538007497734620266405634387180943735450693297056593351664230369297019183089776310930881431515418262983649133330312193417305942316205854792338370081883056784965115376760226087843378374627065157895794700339385031307799879316856432402534780599158215317749843866406211700207956181815932001295036123650780990539130305614257202323017233824839339347226875242528249121950336050156405940360597154540255878957522906293119366830888365870452642489676747334762803465516501405141880638705887953397613333521981669707222696237142566307768177623269513486870020922215100321854361709635117141766250138153179998709931616579543616244377077311991934831088314565156182376393536943750477890535257892578205282864289048738083028185797195841324749932435239031142380632514875815834177006554994011302474121692315692171167471562537611790948261411993626767013026228625715202669175152718730267333518205811105539727742848968471750468718243101723259404783330708571729946202436090910200253745953019767731615782483795230491198041971250172733836074715310179403860773705767601701349814786247132020905305878955689600058161461374667128440626951544352410771718280718622542130801296919015233536487648640242986321607453682480932493574885754085271208544263693109562141471556054971519951614646655536926770445438544037428771025936802537971078119554766250889207768593951528137436845831587192842264455667006162451815595561141974691084945950017614087379974441222393064274058436137039689850972685603467521630129927111710749344060426313946691521378005713335890897478946681885974141414230426961449316496511649477568491955601985096761535409010853857381145518376386744678077658724493659877357221462380842495272890940273736511847670778924889071808350510775332805022224457432089824879276458223389553658833380905416193588090419666317744978840804288019660980175174414405633792116864986685327748590737539644369798456246172748375488890804067380365632490540660652997245868957246564383915713113700362812631867216710736594612678462406941907937037706479307091732587007869971557220460935507560161423072217382602729859891475989646235444298322691496027857528476125135437985585459361340373283952035561653117809093065529310272264482661506522199264915207121980902216158746378226710595379625728496242139551353562636134955748664906879758771027156246081740907280976497782682700508106999292671657633886021557128749609567375465594203581581939368781098421166232982308891004014092190779728954320274050806671468689442639697815990954761661481418625013547885195661604976744710535643749456949026795756788666046258288957137747831770158621486275340734603847540756123770754176504607263184535240904376367981679184671703003808328503114857503291933747416485527410433294752096736653440597601190041839265377543165602870070825345134911682543449898007626437169976242668936072099429465823666519541954697939270339725699534863036901324334608194572448606112913772637903731059453958278694835445439848949275576688433861676161157382105649456716602932109319599725979549650044058340436715323186526954471146412980136957513378861275426489899714140412368987835918443496290934941913540869846271760288242513241685707645374013540202140441225073703302350057981857768119246537083868051233038957983741519936656145727723296299488723634229080936828749423180923408924104897799815659761299821271819981250822544118257206672325096322644490560620044759320143034246253876992691392587242798995341328934183387296387701476386544777445188488100070444079071304138453197049221832699672684080224007535105235627017060759477827384369656561635696507507011600094417472391340177751367429925045028737575982352491655501047272266866830138095407419533785126631506839239265351892013844781607533372078938689587988243721722273240428352440425884213432923076640327032840393743550225349799789251172420082940788247084758994747200964758375833407509551372780623570653605325497701032850441262366877665054856282480115471718612522766226815179251986630964704488105653122896693153417572510940831918738983282259493474761604951384484312032072801063365126972287631284919706173027598710670966574697567273851084778050693913572118820686132246385772704378101411069544238322799644315738696452918302705462477558984912888685963999952574575382820116582530649160920549813860598606929893516373779784059485796107638454106715390610714816504864876057670020386501305765662893012313305598569447157188908195270447273531705543601059663424980487110753761862939385710651890911883836113161812726232071779986132328680071233256115626125748073972081514839334240133268607560097252736256414080682713649999045278875920433152055165936448524309668614243430909057515901023151763518570380316953125278396298500954200573359337074629044811865552881206492543140123855609069046042138401901485250774520461946027792956774217539432812671672266403610644600133310288556656726108419620327331119951017260578155425697589368110740699973736807754541989641106544070694096300030335155219718541361914240305429062139750722203563198720270234884298447866546153379987689991175370560725266183330086113855948137834607057953656822982330344137960199975150458102963029759351034283303671966228050619975233841601870062267380832387177296520481204732929680675485191847756426626620151867152167287967986799684883238733223883557608920931228083733882045271863374805118106174714776312387355808991974260101758660191192058719691931304970921662525429856774303525488828241484111709455144532137446152265504408784826734051225559210711500709854261980726500426917601605515502338284288248282808615117211376393022035783098326002408341605218003067046969165778570335540964687795807820684106328756648567324843672363303160552627889821648291362310102551583957672711968723264338726520051185035783170653491014467712509424011374852804114429985036350714569014752178960976660898369149985080744688897418237622283189506051401553915672408472469230910015347025386047651995235350498038968089302100813877072359195910468386852558646157982812810856114795099791311097937503251716900039405447842997781344390961185779748614123178633966761343953179688533770748605015424710347989085439750865894945819574834088159423703950698750853157435124498356231360437015795421446794038566406728177315791288154064068245983054186531192563115489495891647436151004840442597291764791627028245173132672018883589030871249427734553208076760437920954476851355080371745554143837597746792564807689739373338163493848428813408909695571109267189526593032078494143983051847230212626527224638127972475527211133214240528550694150264516856323147035624542603567221250045640011238548193570688120644729533225378271975297498000457434207086079643867177279816569407229703897785696973281802654309721377708804500769041818981378114045818553621192087821580540878775627337526747661070035207319042334851303627853427672535417344635799858082281624539297016852626933446328863506252750889882215472031172299769119487761257153045310878895465530209166142897101917551628169372798401223447680568990250055385178623390250419487552585909992690916404137373193716742306331959991885354854958506044045932814712749533591282889933111244202800758659376547516173358364875603845198376303906599045860171312068711963144181427685001854248869542360464151985811075601158455859531748442450911978339055295856853172925895684463313260543253964498224809432510536662448926569587319471475602695629808790338657610963746541468794681547716311823769297868901577356017170405860748594481144104279253071209661215977808562837513241765889565595399654230371868548405258827747861443302961273020985625610557019090848675473881224328667973986519912522357505822424760355655972181851211232188929648463331990907006266693632207552963124588995956494720691217784852427195483110009446294156346046641469167611003339787414497478654532300016084366506582793899222450549847597699785051532576531720297419299732157905730080704065856684231271273378696695176740851405589741480226468703738732382403839918020707013955927781939464381698053285837367933737985717506342238143138620220751621505656588638733361535390129445266817478400032063272798852910905917692833435907678544054161262081966147815594781169031249220410363768958031500435307602168802245564747286878552128856934060507560057934006792926902526668932313638787680326430966256722358137385980270927430011091733132902159138696274599705800678274079403814555826536544676056406309128078227146530811331233337077906888513450796674686891152557169721150676264891944700033550319086364041594768077451450701038845757472680469590999115286351053632504744811133371744377140356913339238976272065145745326182217827714204553748397889553324049897008788120761904853220185766053666244972202112999680178882789317290838304296538937406464609997838635956603941741877634632279633758788001490557672685037228742221351782399353471772156763397680956389604344076018751223379067275990733729910305381905531784773635277944869528052797356933897949867028559144559063590134583026341742985354529817568133471919525027820991828522153216544821068004917517967107477618269075030613404579128703870606807501755205230713213025854299736703760095992322872328229089884732799466581706365251883399070295533570704308736383656512664305300284657004224447860021513444240511716702384251159347400255206704832065668471527051152946041495117559941582915795245890880658371140509693468733133216566314935406231169346008088131809975049190996763877877196574880857510800569543361837625283325077605017720397101345749858806036974102393796322589749407256557783399438802748079876498492464471126480922106313429323685638601340449064844160955992275044361010610399672474311202087525327711708559636650511780124697013596584638794439668896433061915008637783728067426522451285511176194632920797266274518878917260595206572941040187094346008146990484324460459935314384984161561749898116605416859821387025149873479443921784125881191886241652932478057228516386622878308294280227137120795445325247011433614521795242438334748639027659341948321724586181539623759388970317859374189839459739409996504901522107068749781237030070653281814822746111870877940134929894163728493956427032965663530795548670226137893000440993962573959888040997372485634117957851412412587366895982822127078346593397124849404235240219001448772261439774053592022180381014226974988049103001480739170620519395783795622889785391604170426613816664868148118641353976028920232266023343176185231975347443842532919104735545253435670498212924233988443083741849165734282782777273597373376738240084822293204049110655988143607561642500956306371170105632460088725306467356969812169857472689219030839981758030468072978158937064983924566105648144682681370488629670394604473843900369271534503218384101319018334185789890058579000009230024545546472955224994297054475659644559137159396770600288265526584630696682373217741060101272028758466268302087707334921069638980949239152032113697938495219070135790757596076568716504913582212187370113944380933382813908342920964994009480831739853314740001538675357989829178698549810797620287406525123906886288375895536657246684825251849759809388046488472771938630672011333792076454688272156675666288979592036384670939681162008402610529878630911187045672819081016063822037079080854537802449206865989691387754898538996235049367061402490385263330570152059408954448278604490223077099525418865637156544967636853907745022850639446689874719758563946333782712735693816425747802922443351558255958096919429639763930496591834267808420359172711393797016846644225988053849119191329386214014616926240113221504328896052172477324293871123970915017807357372636418077700403461685738743284508287272620231551226424474173336545669613334623800992509922763795549731315060419877538903305223366395603466553966756704278492510028813883450882928587863548794179055452924912908651421109648498023277095163424373422868835182823376508791801913287385359148864197565078282356447480604896708443212671384065063716826063506129701046154358825429803336410430094889990707752584408685285589100948355682065238415259667269304851161195535535021201790194844063831802914526108530844468354102879912123946776949740779751452336493425622995761493217718410472924001898017939685561667056994616482824543211573222889945625450530728240423445747826397750847638138061227402984349644307577917325530665926860996325358254091866867273093639654686704253191691874952285348178990276567915751343195919332065163193654923229135750047644342380746547435028528604230648826845882832120570681564347119017808343462442054232811582755397115293048397279633234045825310478587063287390277135383089948618790469853664169110128394050235946814638616360952713302599114025486161235694370865801550128204377466384280420658350683553254547344555294697125651027389739743517653506637779003093160883112585135738684714342944275287984197693158612223524981755634359910910581340196477383441041885865381077375058429944484650693799280880284813406435920340118562661557904996710872456148209544130035984863304863396732208880911056861399479616664411369869014636988114419402086210461921105975235070258503681344759382442560862861463005955952822755356997723418755813404703429082367274146837649536805374470236200545979372659355191916153616592489795619442986701654692227852638908385563891810181377109028950929254367384293877463221666286288972548112859326723651767809179819793946182358306884870568544252799316470206006452772955829145337122011441574781387768669665679638854167132605791280649531637361637030519175187452532003432962372436775538858729268860730613127957440981733992112415876397144987171576096621205183148297935490760671854128810264843253135605871471888656300783323890591381266316468005290300797073661929580915541957682359117979278536636362711830814364766271506253583702188125202673645946986308238232661959310780645858848331848835858016660718767871624351182950832405950738769273931193347505644286324507145802235611951808079231406008902991756774481403521380681673977164935501437631347757443573747412523215349748789230394694327379145931978542088335307316425411622171562891187555828881913672322851615831593343045442487149956039657985144802638531352843850484587045859777220057904375062446262228556263761397357321908633292149407164487935281148880042391011093273086440595931353564715146767431860629577914179824692512502357945443683684811076768193663935991856222905784140234075887997069123445561104508712730934989959552490611324583724827685255077363765470018678415588313195527626482570488021682847409835698794595603093524645138182628579647727141043151631002981196492578513737205194195619031661292691361543120338287751315765400509925713226330095521791665497632913289644130593571979589958553160944942145044756535413117163235670408641647405665599506022710943407075509823832170466222571369234510994398154656746530608947226585998033761716175851573804204583599957190245504962574946587240371104566526482612411027227744246562211740940120860360960797623874814553671446398597326992483667370301805403762307420839917921580888016572290161900304158014555589069626445845477286543394485556403052831913794420424857223067302982978948563403015096583780471216782944296841867665457399808695208400705603802636982067692204999709587344321425652651144055165589930828197041262209365329241529791106418624051492884751978813160788441730503924658355148654282232042830808170324669724779980816778480231378806154468521037933063233921520592486138587717328456712847605670372775186530770783812893310147790308498862831477478963573067190208804950994423371330261718892351012092729912707137068906821209353071319692898344807621559243855647166498985445141429044704158347197868986364797950615765639394667588365041064355164143581616140923053116373083868882118258728140736972052120855787792261617454279372353800502227829366406210729868269412512520676935643687888422884318026674792321106181677449378021922243027617804255868055530509425645717609023488907940671970715101379540264612422757866520071033523700497093570075371304808860607817015244243973641985844752488414616929098142485945528464548655516927862787096342073633401459170979751251308936125923486089020522615267032323414553642662877496046366915843795383978439209260658002383490336046343668540646196158308202485956410007335127394917045400560430244287004122531306814154532775632821949759614549668680507542961712736363451825359822020985622899597828716179882970917251945891990302746450639140028863168653538910867857173432322474415693138258526198478602616296431639292882916701304129796477793476685737639246866987533847838113337733629907169000370067668219717157399908005435572247568229696330218005035116108514585528343137131501591363514744334665722952357303083261135800177325937730360510630356852896113633658734018807729731955573726087355834433903008108650725046715262974940754719050295421514476698213663194860874276348730994741864204835359295935177843484861963676074787299673854345128108677007745983630184180470906897807393776993443922573084540615590462696027958270587911752802948615292496706101602571265663567170772997517159453229194402646580648017325440160563697310705303719399402628027026483323873823870622762419742435329181827694043564418992351467237005801684484911607382482179214838374141122783314355965706960796432057160957274733045599551651600952011195012067596313231227778395124441900265060446723427716672129181060897915481937113849488919714362918791187527566767014809086109451545759402190103334724175888026129712074924680997578279332662554589796442649513819726414805571260680569935334607072292804011936033006109221460490084842253662886837856255360629282222679748667595676441312257734174653007329415067624033822974987485343905732419389050056426930683678991222547689518797823150622561697554981356418031036704396239813886360275857891101341721107003023090894617721220364213317247552808580966470477893037193907722583557374478969390403336171069457573057764541039606212882442059631751902647558630266706769012965547069124440677711658814508533134430104129170486071944169416343869888159397416509446796906057124816547985085815768511583244057108050788629323258248660101361236273564211153828376161441028948878629480191939064975155646336864693715757754381280380337444576114675300025455008671225362219388659812087141668175831894384835827490495831341826997228588257080168155942884096792815826244095495369801206956079096619470034296490565978882861390265353170822836292042180461233204252121844379368016638820561315515710505990448818012368103417176808493325749596049659857435215436046920785632126654535344478259581666676293184120805337209426024178340164685231122393066520926237231321582155225141287406645060295958946435697503943947445323346400814642071189380825251201297017779241037985081649117090898131478222161214329704279625246934131772515080068651822115618403200517445448678693499680591775080536962417441330743302649886089172705261104879362520299740177462960836508644825251046982489158179462056362363667781165732471945912441376519646171790481642427942962356152128840118770717296952680770053488233157409531583749521370867124029259988040817729222590377580865383035429635784955287618861138201339455479612077131799867768776845916081201288929809621149450950827530536518150245892829501826548963338642452478376617278646192884077350131121328324941935010333095643797490817743596672304449079416384447295826542621978023761220585171164546209866787002771685485827378244187018017376764613346253118138353241886472148383299801725798417731374422092698195311654548891778065501445877461904851928666732923486426880341274709446115357219407385965714568380599586455488254380608672214529102481571177790945702157527317151513795138012602219883708144622875892329882694149334605973283013364855967667941426394342874841216435687664543015992551684816808605642584344525811303084531800994880319388883144528311885171251328761333429845364086259716425604489601173070199958543604906049319843936634513074055598480697100780355952393960228318760766169932088445099820761049852186558834552608774209905936342604173848746696046422088570774433626078760517350622387361823509183804660315027718726111469820155415024282912280951923906413378894684285726897453907698264351101975498032930526810787526733853732756256242514044380116619326096075856890081190623538772485851006244302166068656632865293556821739272190185072962088277838089964138792786746382724483317985622230608718817165730772293959285981273474895792375209277729924002496415194201025674818393519774908223731089520329100992981316969638606178432537338148852821236179004877173667655237782540083460885765569076547726149043131161939719357020021453505395399357032811001920853740042258386741868754719123190389659289704644100066165515184061688958983060921227247044074602534627229347410994294313510651148164769252043906307575455036690334574679815623599121659395195218559286923916465463957478993845412903877312784296914033590962856723013711980680447874402916344872704403284305745970140753951968341488103904491421476392383231194293597033115992756687633557086920761397428623481058203461529709582329603530225513111270153962167497755684183661439086578170866862250840380212558780485450233917158814125209470749965282823557869052549989773737967117930579720579800256278546192762508511059623287511201233919914366213601817049613633821325377079596870480479543321249794880105096299065801522174049898433504145174213067710885833450454364490081547108360213725494073429282929295042599675162137556441006387903540164285417569569991439420507083095830136954727719198120160896244444070795667199426342252603422799127492781995167047288443927192624595541485030542910290585109166879695468490570410250866984802563080509232664547912473013778612535759265781622713756298092708056675931049270318033534810586502851733789297423750699692353512353883762346038731487549457550597489350240934943291749706663338161179730518073850506727554725930203799021318120074807294382890105941646081597610801676426245882458516741510880086706687496393729683479860795102791615500432252321196150372482333848209682232201378186583363176979507714105506089283997848212237226809873803091342192865293793701818788571896006841313217536986144121824247612960354805364665875690465420904152556795418382300297785489453051994537041984842499682634975942969391662907827778639125080682125394793277679450552530770546158274504672455580135816046992342247634029557107000739889465060648266388935005534650663909838857653532004720326560594554916088223850898298178557284128696350026633464789525028033650305743150135096084537321731823855166203711038836664535360738797397534855825064803196383491085171307232282416649296430842083720884686066039536696182244385392187105070602995013492175415146456671197652964398576533842778857113492561476298706172944486166588833589668277834473604104845546343150886861984671612199974363162541320938099506039354498901201501695307383088535705362270228691326090951520414169678256980574571315408716114669360732699057735358251297605237133277406346637369788417341258425779042792307487677765687529657428277637979081598442711411000354373093125188816321508587725595745789410854387795905172068902613188136522444755029935391038643337389643613789874939953552884660286745101995802821273953228390954498344748023742160603133963428267659045092057882601363729275728125916899696572448258491695552649600195694064398803141364245593628749184480130745960750805714658092043996744565319667176727392673961679986942287890621985974284829680852313442213238205183788628322094413355988777579572686685902721310060626886736340645503264793541653597593417766727620754171045356543035768215757319723593187141841308379131766616260933247780195529082724383597281320795146861577554088399481859846511111408466401879591158817897422748903279306692517539764377949825156962233420387088207923782239488074927251015590101293572543157196382095421218198814523361625234372978795445576404980578184240333437599183735240481856654111314159715843570756413781989018064788822070031359263385028285343848771956143628898716511080685494055037774544375259332751510654699097022841345347784526648162541761101155790158073256731639487655256277841869592198239711363783762463346760323312770819740746439092594498323078416654758260636104729330422827711987739014080746903468407322200746993687269867987972301303329088654687192689984848310891988955246663266266413668528740850733916012719951517605311207423373128646933904170855600144477679072194824321789191018644410939198425867225107693275972968404087750053499939910403581285381793878354093432656567047320099908951196204270520095667971094513403128562785887547799403226008706831667332528449915631281180189105973471932010724346894902459196750662148382466377140961869577964665711224560096040639564757630077602663544969819694106736318525296084590877325886214235602870652948010896129767126505764811293111775642589501445274356938918423240922061795543773849395282637061466840964055219500199564482334212839673558383043875671558651674748852461929658315743711137621107892919930707566160714234411774802068373527118039960760534850227629161119837294652162501925742238574431366551126917593311509500948412289817780211370307385076722769443721962371825265275517952924675818810004746475111251770748314094654291764384246892039670877148417282128673417128339408648376235688107906646502360109351454740870723786566374941177957679206683840026274742312240849266377015264369713383476708819281033008338441473380046722097790255288098568368311839328418394484416282363331871766003106922342600477132405648260884168701394379943777032641023033776201640162182361912581659844442040609282155526494145606315342252576613681504643770484254253390599636271833744182453790889965019974181089559272218771509116804631314418132260037095635293082315497083865348497318719865908229181896596735635561321032882575529577069701424874433258802323245343073266715305723414736619212380129854440423882880589954965777413762434200303814705274936923003855103009341273636904845573595629022100251115812849517682621409444348554961096615926258338004747098651006663314072384751268048258682146001826298312884261755608498421374467059310763753588872013145377459895337198024329799383868928290623034434523754675146603042499063101634195859852102756150726919678659687310759442059918713942571927418296853065473851541509235830643270892735275375020109217036776797323723962476663484360112358399209890080432781526636061203546222365599617017861829739247885550330999956936257344451766204445909991506878652491234550324331627233203342896981829721442543309669008355210762176511455712178172977589129181859144142966769023590757558677050570265365184825015959525527606829156014481559146557573950727303269472792045346171529348741254712009087611159513946732191195527019481675024758492662146069291604720450555922119832615635089506846589296780767878857377053508656979713484839754639535505293997166821600857254602038145275391635392794727841842389236560787967292028347534635847754844388691788257809602000054185701198278865025268289971634697254361977816347658557838259418990302840782489616972414866426414206150612378990107988650609545201420407047245750964817534374281165869364640320998726175852911132964528062694607746029994155301212463316852292599487782740909384038131457181112452302170278830735607502333814831125578082113938086431266329580424432486155165569999376862556895965465968927633905922438005698519954009407070589831070394554333414960230015529561862515900867367131877559517677521514455833200365694743705372571612091297595521374932616290134611332877914847396424631713477363619476904640631314597476513612449956204149272554163090012392524407835012696550884153629278776328913551818904712115369002733317401635046382603086849438147566893782622213813595944386704230904555821010995930954249506827912189449606954323588541053667048242133967306515034933156588170621076001513746890123644135230003580367779461453144849501082813793245407166405807899807644354320532637455671478488245375289882190754948213287304757616834781749948084499804631396585939779130348725416670181849574944572378997493428708959116870080384039572370384370391075071229304441637041057189574924960623566930802675694517414262204831307240164667165498183646751630109901743789580436712431235000277466380684716294330109493925601306857680088348223032888169287228513995509247462413413553549596717536220268571635709021771955407538587279395270633438935707868961248989999569447027816466533794064990616416434616938890648113557724534586449296526393478823496651904553997933350877777284107642713887689890009309715605284027659693865767149406908875366521542266018612930371096850793495931220078229041221928581453276046216897781371294459088529496828815706710242371868980775699032997102223720612771619974330140390628888384791262696695264486960836952242211293721647612577087815042248416242928087065330616001490792098299104179306305445873895055081638281932186553662307319276260887172613698915509538487509260116871351978643479899442604096247690838311759478944346014238485491816254956010936965164701511259623826975760998909840409744381806467332618738033293095787401787795338408210620829860347269351237393086051409471116476357382042686525195493868024210088629050145830862111508580274266728220880946353061582999166676092904168607099672470594351619434207433379571839178906346783479284291146009525307456725162141151757271636956306362524515157737493563928598359676068646207139536056500382584802732739439068284007952588855925877385118601532978001652851376775587807580133555581059071904417781882982552702815067509388328689886422040423109755234237000418125075431168920047193097125678475441462588608293909578687207915909944062401209940924878997826740839657923799960031618031429358797807768008161775034826624715470391618853850577291070564838173018161683533785230230915221442378625791765309816346040680632278952206536868168425352266780320597143862320556829382081179420058284839917245307182677182924371874670524151642596578619581151389066076439526637017804014323028138369105874493004488704139260853764171382609913426394995057629273332892879813451715429207728232384620579152847014715004796415869961763303523582140440326090158754639341893452110379920292978721563282026238466850104114645946543920277515342493843745759439570978548966565187844254946213939911500563946445126623756268360175389514306672391811034146820531899220927390170095748937885476346665002350864549508296820820608467679947495782418001439310196402453427111472792564434572606649212185071241174469052673213200001409097717005280973899482578901109135497331334287446114460132645173444182252104410292230313232481826940887108416802186393942724191061192767796525836412687454583282841047856828089170241123381210016038900211980434418805903941626421833854023985117629433182931459121078255514086498931540004305641451332119589375091198637673074495574209329252037033119971590667161195256513766033503416953560134152684313397761426134465184105379451412929675819288048769056752158619278716619849168895380400979822675740822261653113580484775941520194534794769734449201422901563293779970735996741556222787591646571201861529247095213264739383439447944224824185563596357130504735673626832576642030706270463988554220242310090716242424240220463491043010709836004738919967562985429212219463566901040358416760808979088702895656767473121931505685650433416243843545095209758187706419315268274706452978449523155646673295767099344161217524032327449882317381275845446394581696719141981026944243455334223549747200179343714336743015469792221210890039845083442690277760135819493443678696022358364199053908379132179257553251184659603810714975380799906702835915202606337258966905804010811909111742515524950704473886698917287641541043018604069429279346148071641485062499491445506973168628232135239919880399425899445107460197265880630710663403479411361466743614325867889114523324810060958885785691142153631711165796472643747711756374321468513882037409969704956416154732475766744820367825042464267368715510889057675453126791391904592920092274918020411778511950753185473210602241877696332817681276352119565066832555260520089316665540678601763363422933045237121172416729260779051574011931374843043532002333233506052847133521972401405727554070491780929901693892083032551786427309812555037954461589485798968007759874024605234973008756652706166877144767696719134425226080881095561419400715329984713636076911251837331484631744284557473253457084916883940668542132321783832625761369550508368295328587807866095118838666177732068841414939994014683592359432072306219620015885938859854094105678527689045910915254254082341493832701827914312240373481816672158816575624870645155604133161070127269130955220875585686630189354928057104335694434046261641182958286959741959355053755803734912152616359778522179541038640082938991954259296066709757591230450579745074319367136141614184483625303439315917249056261045988854238862627291984610583419329081235682717773946770457772486351386596858550607400514283696364150025233357822442236348128315283530113501834107373698992391919042670491537081429482203511100312481235321600379835516083363194767928605138543125052348345316352515623388505482518234189555044828472544722784458615305290174253686070938993574312393963708020135282823204624603236797459681819184761582462853283638931390050157523869851565725526048690258920125518468206867720555738708379064276737965921388462495715873589347088560465974329271101424368008731459149394328541306451535538309158726020473149487167764100652871571695974975661673087732809051097021139920188700398383254981312083828167938790858267598159434944659530339479128375713418663316101468111182009301175493415117536166768833157419628490120441177600744474331647435792425752465673527169659738148242052347713705139154386465993802203237050031988176595263790668804936454616204764919667660827045277577021234272178939129098782391285871317076488104048074103144951751365813505156410842350277234590586936627102597047966448574591580727692916741775930579424937965389833856465250435781897612653280204380392779262533185403459574254950115256026721472943741537040281485759660968126836544987536084648071574459207193503968514290450640600164913466227220492135715887105264444549585467152165511005841176350715323103566512261997457315248591754332422098384807235046515322901065271507456998930684715659745637500840706729175459975658309211502503089461440265761016030278662626644265581825236786056017428213895321776864850748036173642313508531100377498418624652829984669207568709622806291337071413549718741468524701078837910308462449228619490042696731112926769074001537395126724262772621117892010722471109748312630163881396211523212540284357327072273863709328857490211623454221453489332679256030180137616853851191564830983917095866097924015882113829757641067316678858805760536987971891587780168898747414875282605810762940801830370617560311086691419969019660132762674013802179223576560118141896975932484704880218503819999586746012844261539478704879292581713581013934719570767083210198615594968148134632001262603585249088187306057805774496198755533576281317897436797953003999942221038604744046745026076061107333507899343580626569442150648832823088513155020781020712653493870534174219145471897092480560665756789591298548350486659922679494308959751685020727760847105654390772812608837628128226108810566114238473800214689372433605062415328029412636725430413410030838074876359320346624268330613664933430428340267479754519392893564127449591350432472741143185697716919701229696144778517462528092567679847878572828615449287734910019144003198654255734977749303965133256295165543224731740967494812980674533119463852659523065288690867684195982532401254761187733962597103279234753194087489140145616257465060247782269772931745882040587820380007585387927382997172814867599767944612974347747493811843371331066022380108588908654988804921376605034980427310597439661316250541979751694997872582407300874771638662019261215184287436215756739640668456237871495206399594202215730430349502072402747364734393990069538804775704457756207889417079630551194038002341837732428755644246666020586570401103634270786644111087043890712133340810398338220270430040553847899162904062317661460761470867427781803136126275882369572184560847107888658296001056637201425720877647302452015719311779561449542596822273388357902612918992298619497055779877441523947752695498790985095185820524627873998166604668004527059694116521004211348280208390613640348910783640414676093867830904755935323985403158599043755082889310682082016730601600741298116765732916307644783234659802261179367355980542461485625616806194850049272407691820965298087115439193933540646620504330331531927246573205689872421919569577383737022793663230514863027488550564650248517596654906061194247787499834239373490683921346276410020218484371890415486837801283432665332468136045425952474723933064545246606456184794655368375965064464345770490951854528952164625063983069849161576994200305586091054520398693656579022060393478002052384466554933087084207469758464331996544524829982046897978413674417791329452421876715388048291386045506688842742738338350055567789621186646815198013096657644634869043524400897015354980243526745210449221266925692985229161926938641446398454669620640907936633788761117932581646071253639806183709492733312256321850346389044503243968025765666324168891335446163874599232336307887045935849278990291019081094272199208946063000663914083841189300807563260759307758720024625323856778297472535276363720450918295538035877229622181016567222302041331119286344672919154048838595073817222402534627016671118257787772226701728339394776723033774508415490765137693468766084488268186808969517275515820753402848902711456539655151021201047808104440237698663175730767518479128652030850783760434218872011014218657645831589498470150084832461097757080195898098074197001253847204955964269639947962451284186401647975776760912399860050238205792810335317963017717796536666355456285276205459592841011394290139753342222897490805166970104664917903454709809591149820916708963416555808483441365966166075928889328885645212369192881246698644115498385196219707152069891048554530232926008917703708771294094047189505678930411885051869295723250830601313352288750440366128148117809141745050237847529254511853560650927085100946271752857119694617871068743507990638732093731722650998497087094936056033698222099066369947957499590696923273778227311449184334614591859335230726072195706776265721132503871265482787769045323116820860711366529902442953738097413715965509325690879609213123014715572046876866468185480021615524040401070046054036158545281640623053068248598946704652018846760725967391518842069449234882310076303320041840728708553772675470642258469235876641039016563624420853009140807264281149647866900022973268265223461985828189188398518422625238164302492893377469294449009084158003371673285599102108267899077800495707080435479227952209132357998280717486464301244363160397792884422988350195476203306143655748741631487463646817918873787890506587214809365833189316433659637305003136245472541195435431391952205599730212712528663371931916400149272665033852699421103627104853117808180186719022398958087058889549442097597694490391752066177099974641424152047031425486400854756036116285183285121204970397275505693969617555084956245211029347720531980363569432278813934151980311720036339805423642839374882894608522449256405412886663726949119601134304742092559482629384965276999731610355523957252328709018919284847250231177922286182496477179257724174807695564102172640193177662740040997125058115402621612162208937243727666060560978870408097549235701150273708465721793233108433262924930724257758832599454051562566102908484183280290936102214539506873273751909496719617767707107287209964174328389382195316348609143013917202753177221620109250371930986422218048145500650685992743478662164065496592611857527123158536176087280292811618687290986439084181033284285361621597092888913422247123340077811581112529912370682199704243974043070677996652133017785423228543189075986886459018110700577283625846120800851343351086266591638787604588144013232459439634835418091377503646562584907845853127831102272578277381627925383413015115811624438319218940345680457872991933319983307059113277326226871385623969278437108247170593701118732761493871633403706727252137288836204898588636793643762152391473598647934034656013715832666626405011408175025157971398595024825244680933354430818483010685290050816539691602352104381088846274877759588618377728191459648998726753358401363611334034092332250394598944814155823316051066783884252820003778128965818810729232888971739806000875648979968249052060206655348213654936416592766815548864710046749232039720034249603110710870200268878132034141403847951543714151829763063379084025064901717277116309584562111856524745904369760513682663288683852267379076518674881602859205313925855103516329101850179345284388001477678119419856370511059170714453811322049051305766971524636276444590741956626678615069635361294943287747347309089570282157224773670354303469526409930244555332661804735738495168515636387015621879679457329861697649592585262725718577631429050905133704497502336463212389873005406593105027737510209868201236592048763735301150561510533568544741512910723170433018390090722359670021014869947389840221488176367653664049578997489272776807253800455961805692852251916799299158661117595133827731641461714624580764692611717786933458291003862795338557927760132053886025534906202672158487488106125748997293596446022275677673399522069759259711909021196168103308233945723320684357364257779220282899093929578708134085502470015510851168979007902022010437326063841769567335529708569195253773497211387363234197220484796086770995984078698851652004949692548112793624838805247097858291496985480768034132405110674886155887154146356951541987508861674815495421994088736676778803394559621054710660635782224713776492238184032642159018681571198017165055686457888964269492964217825361525282903388030490777095398162271572149176879305552802258664328697466594665968240450977149745453462295634511427938668384175002487419969188607317244121779876952265862764805932035798616545230706732020505060227895451473702355862407795173358193540089045622805232524477057681022391075989651153326608627846996619148154710365691569479644570530837419041484785971973691946727770869429231324737827998366303873599518408264702545000353292209557802329682896331877786466831191384056484141630473719100278694060556678886254763574890221992421797521800159166751077538243921473662084612550447050137810964060632911833659791577872105498192821354425418273808870650597696356592722972797803467870731585210252333500594936714420427204670670248349539002116457244735902375523698245808657237508185694698355666110209155499390375438207900964735177274917505550595743635270141575466592866494014050647784169368583093474373825653320323918136144457303373044243507310800611307689582538603989604247640182004087805015258785037225776769726616844049338247534851819442840218360649367730637265938931447693683199435686350412020379984397553027147754025167680712156409571923053101891672065489009637746071638492442134557028736071325261294439148044661764837199322932401107918604696114797439867435147070990567728452366887416086603630756882913071888698563206116057609983953544949087408146093420325498754173574413580704929030015138129562559998483522854208770318404700806168766292112926374789769006208138349201741826412134059636471470919150040527590522350236008270787105151707657980579552980282367430525838860035985602736656292623481356822476980225860330275755080640634359744291794353895049895657034370724596413810803069465714042510356113277185376436518915841538372277697465277892316900684415654485657634528346402567974635723221833038012120069538249707549184113631964337655372863928732997778373556138815551863231015200849585470985699665583498166716225787527275814301834475363578917279736504446871930560772676461799879857593603507858622138379574833140356534995187682254357817446678967716260650254817533050059791663156779308865399112905219402422308299502910110358355562184417906549223140222659975531720052475834566274451685798530121646367849863145259083827039059048348781936386346250350848641411517873025860680853519157318100311770771402734479370298314564923395311625787207195271482956310313820828938240878642529085301997402096010851737986700769923922935005029871427780046685781263528089930778121999268270745508843406626035409993356883501300260836155956831400316977331142386933794006708836379451495640300253006739592952817355000218085041121034733336062411625060894420079703005031411961493294047972584652251723688437933580632053637022860129569435543733496510848111376930619070809880133832263800736036471296696696827829741961842980572686358012161486793558061870282492490469363851526702524463377826940155310644853265957215405316031807904833152045195646978549706998675243098538732004425969622342486189929366716743817581381594784408589318272893341649897303275799496128864012991567154549659393972636728266233886636750440493842870488290475841158622641191675731462273941763189881958615256246911360696996938196928455806782667420367739313482642543326876828061665352596855701078611887023517759572058391231554789277413911150282664064378779454106248750266230665629329719913255384038978359187209927975691494662483045487669081648777093581565181209865826759211510071694831108368685157781244870546272809536228970365339501756487787167902592729609589269845592182882828912108774794443087543780629523525602869879751843345137011471892236230703204375943418560306351843677739029763465831504227557664719174623096775986614008305644571748278821391292973697744854419772054273225009877326546155019220711853756505626138674393817370481881435275627713379070171754880821800945464015171230041204165093917835487896652580544726282516487250374123351559902065849119337482954273044255161660884731670060166811892821634225361806034598581120521531950187133825516386304457694145968485894486517815496650469673836999593477819748512884909759319829911565456891546411875880757337922250643130907946506237727447531861016752961166655005280799332828587088848627497691984020425955356557299085078985272081545859874901663171619846576789567174414059248800441799323454050899489125367534273007755466594142944317185425578875795440197105233146819317222387419219966215585401462841666929399598110807354114351101990638602625839344213142588150798439893051480275612388213092549936397445393217152987826504134608603051887656961563835262659696859570763835850216505104494822833229280962707346361195900371172940599918537765550574834904421864848286874976093067977158175432128124811753163660540686191137033678615382733257640366601151355442638829456627447187514050433707499871994551692104885761012083448520446422820990626489430533287855889751939341172807510163668692614973562647808415691693914363497694901575233614330407535310286779662644314848022170036962407456285522001576704653134680138535175584912755425891299025511331012050110015093109411014717909812621139819795207762139030944737674485713604149180260841658791986086756048445736462537929198579639145286509054658942941020891918980625201636338069220669135244715246107718505690793606221343960660722990115965133327445592320179572311765761211360384526848764567203277693934553459811905728020772189056696332893065283957509182292442143608599463471556707128043337012154881975990370565695339092411288794652406823157638123515881601744073656022844376173795007256263210709243620617180122676370318632252381681097765742612772894927699879074054573130854005382706840686775323876404975139561274298418373511076602136812506283196740901337634602334204002733775910542439805803553002918039731071596545574186154324600703680643186935229853861531213999155007087985078891946376570454231825533349806321818588848478031844939818883692818272540991651479485227702717709816894388638228597036510486190556163355687361307480186798903286569532865807056726132728983125408636605363217210777121894913206001963342501643061715415554761509674751341213555744505546665844171245095242315892150148018294365100308039234462288191250669013099157902881171869218734677161732806796486942376155779852366653968377346832601891053814131336622638141503310516459868381221226922835090058043471002976072723849088912583228370630925330216359062352431789813347272427744785441906331823440613398129641940930561224439546001274231388033141340725209653817068258688961958375808295695929278647627817580588757189400914163406889854923420936609437710719329064640444574381548966309887283191911645275465255032510597277431115258860828412085212446391602667163914396830463961286879813184359915158696186419391671503492813139347626819179857088473787008654460733140571627504253438457892508369658575456253617527049977687896752425800735047777945002842183392787830424185902235066854852182657890438046914221769851516946218136265802934587403100133996195037564723142803739029373567641254217543650878138995690735305644651523673187136895786110649628710374489464360054476518432628014395405306220908441233052661094854148398220607837305092635968375086533854696471382520137108524182683150318787905137864730869010299459029564385596759482060220078028510880630953190301546029248950652243734375419553367425449551428755771340865490108374793612611991044322925028466845862912882363155080640468529657295726047913449005937558810694250662478523173492844075964533879740071394171605527631675235502650566714478685772698404565274265378697141066675033234409036450267970417068428235034947107048231095577602095846143726033702306852141295273143491246168425948438474217290766093324214440804636096424374511616395200117554580441654446258555949072304176412264911794886658041539913706174723237257791533706302439931651913539676031440795111849632929388456608521457763949549082159280812130663009476998839289640335887848418809275642491646500584923485557498153600599781758950974477793738539601761747833789002034702770004159674703572690926024168252181126133801814509300490113233410621317176192999173200948912411720426808622897715808374015521640380349890111208551850120757540648617933578387563833699022538454934302165774530668261067916342662384702422033485854567290746709610116133164930548674321948792972815471969366445413817401135230830164712321063535386797787813898765977943817348977255538076406144825551091826394500025260129108842230817052259859430115687644335026278953688389361999436124826261912597893271111302863750447630751980817574323095751920507190230798219638368715106039830353377389775886838589524077008073553460548062588755888413516431264322967550127889077899287735345627202141543944166761595397694493275463951462257784204798267681865355586236365228278183621892004817103239148096939265445796227062354592075182767218403474399809026383344078741636973009102801116851408439527862719438135316986063553815633247405557073359818281966096163654885285719639805452908125452926971839384545771457186355535085741076862420849771492551569920184666981527879189857579385112074155457202183760935809181367445265217826218225665099421528561404073686703386095985203939586613173274988850614669187691436310344439594259264549535618523131684799842262571029921359591484726791742252963406638417063370030546131863300320590587971599744613816293419840232497660754016012217837166821542640636590047753926495459875073889953641361700274783123102416299748816393861142318196251606672089427124642724721314984625580171373076491762230816664741935010552880588810942050139836810289348667602755807094387192153790045453251223386315718781658807670161679146004081296160426244830254831145988584698074574552562563697653202595255309671104013243712634992126281726272398656398398615363800485728027396996674164030723869429257635294668145200875296058533005536254342534974165331350266939292982259215377946222344331572175803770935985200149658267593865231254935290153477147407734090025419750121928212709318300955097330316413211929945030944848500429418021017393079746199930114755593642568649049336121998063517734041503812999685206073705512967537980711310137609971073328556692261731287244072383810072503651772997806812192788760602620099419501195493063381416710019883173614834130896531453039595222531507982576468806795751021405251880593864818586374424123470608285230923156505388301785627780901583439242935015240436333002639217188685439656143356067454129925240390556682373167312482085868085463474183726884623642223726964589805910236097598247273634832386689178033381081217413170178619885389303241548747892263999911420139491937310541967061310998403514212354262831297576419065231528519138731639096068536937909318549361495942690454375555605927848007277487379241904998566869859324929729952371152963443752665752938046565063249393344365526155083404041610282365171649931768827343036553645414053265220846845469842636536662631039295175997074605184124383472796552087189770315695779816264191932536117928652593381932464706531239056030990511947205929139185248888943714335749663149789894681625589228171006214170452913213161114094967733510982740416264250565847614990935392003445774414117264086918168243746653217677483815720162101282760067440783882131633014260746328147602664279123549880247876693842924297761073699383150220052555637837981211339072913326947745870961183756002357092956274144087151797351042078108776168846494781823698401463836938407969385113062076599370737296308202073195701760164693730392486077722264637327909413738436411680509544326379616715731634088561125328343000416345987218868197183397160475277149067642165378445828186952326124389539608485506267041309851694301229007962576024061648619207335900678244849973780080175903040608920375262707302437767121528498843345373168121921073912835368558788841094930358297843721058147187664131229620937314820824118279000745595443269345182089258837552792414694186746736472031296467053536011322279726625760989097123758169043582531223672404974442341210024232544596038489789847849100390757936811289009364759266438126551879252213094027593296253527485296269081703152180354769832549344488429657017220866632155824212212655253929735857698736257384286136830874305948111659964583471908205258721393393693732542311015571562444585639514963218126109601539296852899887987962010488874606856303791453670190648379986596054019943341444812836847707361290923925567215211003553413213676294128307514358622501493251150673553281003767187346617654016959853094955570779408068211947859641748327787331230392850851674502714600165428757385251233744707503557473393003118808978598778328587648405570069888594239229595603457172169973485285919191330564937487199687296500438141761018133614910115226229416839379427816925140466746525917006445862114300248213141543457300669257509378844120793478780105507197268280741832195221718062864464450825706093699426643176563400291542121777196099485382465382898369084913974337925402666620967418136673045047641477999083143734473122592363266115713648484521699528362888930241170831858274403849342700883429993338842424064646723924495670918160667613789485245526645764350582499223497902591104782190661341975800738918022351711030538233770515451715590838470066238259919954758678073539533647572249849510269453900498495448279213448713663186278206538437916220085779789416641082459262616404436124378814800490395097548117435091306012624847089871951374010860814379845696683730449096703294142778299055898384738826157766641524079924291017170237522667943520438431949984384642101362024808191842270429589872133243366292431753525955543981148572645757328248000336767245315363002605539742539763501693817501781116908241472887749962996920640704793925910082309472713121873094537105317209623781163950378862782378322624865225761137198209579663395261637695098220546309037667851786569189402499319811009723469056338718914543692141849700315226322211377166061390799906160987463279909771445041736958752868224495966608397582956717790198569132560339816800672448742911344738190939976744909147831959802391149174657402753646452518158631331716820982417513376362365695287700429380575678180999433645070181699982591751765456496508794328858283198960939113835406358817028496892342661701996883377457833147837965654056651832434663233690548200314283203895515819033154392927458706319340990989650945009411347828142156062573221359224287051179774941945375760071231992425462093916492534167581123250586674747304294659314828963844563993028133580173455916685714212326388658489191793089657627867344186166424861341727246792762479710812392790489843114510509137881332567211232762003452981830511081135627675095390586465882889580826187508634802181903115794098436901109676814184643377251588819309004066647646623434145833723421799214481403049227412694631798417929912455282821312543836729240579022657978136483385579838339618171785770028132148639237042098761144532069088322411368006526143343000756030618350584155840705960948333612626560286122407725677831026732361902572159685794358852297231809462104043406992423127669439545024980794578879386293814221540037272454474088097373124517761243939204047159239802115391142120442814200445172220042158000033856344212100109282985824419827847815288891084052156033661804497538727331718934919987789347405155362950508985100994070318062341433091601917443368097057203251328306520622252474444235579378289461255879229930718852967850884541959945905345703593937691106906784517360388917596775533557990059017683735826108126308589771955002746110595563538845780805899525581762293226127324064777130284158191501990803486908634680098528328663348868544542444226809920353706853046435837193026127613499806244492330172866361472900290562252635425785862259627118121832755459605032102904962785216092820560303156725215786962561495447908910269490020468380179607933730840876975875545039289079597766731986726219596787768537250342467717470236208588102499418872538414443022897668985358202968925468314098522888623228251088406239555667033121588062012592408610478119994749875667276476251806107939106577080273306948166494069826720210482831712231878712084915133602232339059218565438826381906829447804955392096047206304682576983784956569470653853941688922754797312476719812678836113430818437046034497240850603377355691598127742809263512443623334432763066894652808570670249867095383476319023359450625105663679954398921164732249556215574796986920354053639943768774828896467066373881276167725224869823007077487334927003422104924256491716710651064084200546831716109902746552005467878565896523424622016984351551066540290521623401435964389845887893506524824798429966572518482438543174832729752345891932965426012371488349583989729340100252913331023156505079742127709142277862833988623157527080058145678650033612220853966418389424182971921622881117257585605585433641374751146235079396062377676562319785150017548287271092748339057306902236965857360618673581494876709632768098706027505218436432185284536644043699899482085719358291767685583110543004875034019479506683016398812594667026130235500778370427329328655007698991520263201848067337141467806361862617779301624267044464208497181518177891326392972248700723340414097470155900490784290093405512077150468582441716776123172397436564286949035142612696264889625839954323881709456558417461633607253048836264415518210548672797104317646273613976500357091924168665713133958092549765176125858067416892509776621916205240430847642759251272137398781748405212763178867592312927765835236283768105244424632192988698339465891469227324798385594330124964479654591198836604775976830887363165290563442449799317296956290205122148749310567669704475988168461303273303272732155246145242073662260202004070747067619147292650132694750807011863443682022340553790891340539970868702582494533068563413081865469974364687699487741828872557821085230564530196776317530388225083284861865780674455183534003379414828302825956639505622783873307932186946211138087356077095456231788687895984747369548799372635457107515569443095889390243534163150931884171587029652297759549759813107494550819676761000068662356212613367043446473653944439512377141363225345465221041672214110682765229273350495859042296255385650735518328327393940817016969583140777950542837513650750056368099273092190264061577359993325500734623289666567845239607274547614637252559636509531879931967864842901149646215612142151930292942543619130691689192111540884379142094606386585267419834853045441470375059980531916452972326332097973894463989572084844558790071665562095811218304846567264145685164766780735410552962295024882896480184210907375043302635423274757855042906319393431557458642337441459237272127386679211915137055792903302926388684814636554151921053869487690722249508481979270027933336639990476609992446576868997020197816123163894699740102934122725737377293450726852790686645779843506325149367504212745627607032817996210369063664876053442193010331504557923410778393001333033459379498640473776922198828665685405760886985441954575984060865767382944358453977134317873302150030850259714865286604918120428337979749422886482481268334677415397797398793249266218442166289763451024661243309415944793096844678816348665389724666202041344203365757049848184572670907005855096828720240967041214808219589838227131916119109301650903743032935653584896113326551936098317919993650980438178929853612446487498407946047266299895900266961778379490054750330431353877504584118644564959631849393643902586446458163421680913181010963152327808394966338017743426516333759866597386475438380654639732409082131503554239600707307052378234199473672389303562468594011831795989820851416974587341789480438497333500212743025321735023884875441102159254259129201523025241112978390203812190549115350182429785054427419967546781054052698366707580036731878953529866465415109125406159835136064727249592640010365807346591562128195029473446941378141782985409135458307268628302307610029035275384582444539926886219729029593515797829629456915548348366877228177143046937273686915710909601400002502338824636210445397804431899681064190587100601996848805424302291737012446215011072383945180310884525263822941238550399514238937176582067719235878038355402757729586638453673104603900939346103771669023771586973522279338877429869488360914163627352371856481592755897364699675434116068101158106605787918696269818456905141592270963978043071454118115116299055860160486787465839323514548119737506840064775733341385524937709764380748961598867251986935086148346764103410111923889340312505311473987235776254666314675799627096909499793587233398315645554511842042907746485273368898779245452901325943437418326468172344591191299675912075003211256218607396202652502253630482896961470680904077635222060680010139097136282094500111465213217069608594264263675955261151213514969072188684853044995377499500484890086163674437275095199561901002725705844301180328984980647577578810564897695748161576586016411200730317506966621741270320581910765643476544707427560304384307075053710403687807858306690465843814086865942825444213862956722161064039629885104932292827995552788779046164369413060866275751992217717128335807326191231563352499129820162361147803168713862643767262235636821382055968756086035968815829014603959810011102538557130571735598984934670656123989422645623106323053422671124685428164586916001778081873604020455642686536197241768164683091632744167572118634435027950650551390645357785829545420163420646850283517594673041236188522882170955309436521933324989078079913794381143923398754689686199371916193879235583755429936301369683809077998437391052645281118517495615299322543383774643328449495063547316703268603141650352400345103044511678087747698917668842862410327179306372633245333794846737368049060306053378020763640771950349635426158291435193934228399131185729983317921444607956474900333200478838649044394009869624872621014107834130988849955460088241487570530322489864912833249519206294242302104765616688383210212173840099890524448067694855338663109898237697647022787520239671666614053868744748399287647070018168480374692967076183027156104428905313238358946325691500986546422516934656874959113271906381719237825585479433088581373244445639230803941460470208740580190603648208776920694110918676043132855328006368773726569211968755582806561804067252927504878368018154700818259615559519976177068090719773723465181240097207037344861922547742202769444125821873098916822209280792241138382980161026603063132883264301140389376499728223863928810255471833545450146759251471315007340521687592651928500935574352727205016443642289965508557901680649264106791034647905848351240714798709626669966615166646109523936657936395967327158068002110047282828896485445967946589975649809213213249395738051767537576092880362709587934703889391553034304817619424066509016267794267502115596259434069750919895232907370376171845154388650137482129390094647675798416505641448238999657965865534086048730251507659620515106701349505763925407915939486939944300094008166969828043706276797621100518882521807917538025641650754858911052982963362946040750399132698236418297533817805812622536169311255910075253247266273912507320162416710497447460414877182863897242440902129901934078479763289190138700721550445513587092045503793952317589106918436470933875564965369779624468487840333727196920065269100388466210691436977035739389467966058381847178939929453690009276373407103234912730751304858747777836457899048307023500938527944475032883782876240351501419264521636016916668902477973936240474436356843082548612746827058600064308933785474354506214832408381155708368081091346053659176972970428862987952025046855512319672513981618964091119130992810457431784727557169727184871778139120439707497620331091065726158161891900881147065526534793295589156395151571602806732599584642589450874524017334809702666400078414401608584649645789580324186642825756048866653022651345743425741024979323985888213503797593560515449563037831357311113249370469163113680476766216821736058727921243012788106899541601806494462367707047498015092623768818659231176716280028049691264939163317961641695476852225303654868944848572952935392161727665957923647047612493829494823306436916963138803309292513368192718415497050032080663298576489499396834120568293537755200710353877297000218549461725443626032975949485833505144611595922373763935417545766713268502249991684762477863901882390454484400597569986588278300987339129689280971586283794733379624188332950256906866880499990177590528696965573778557614057587345786253986786610463005357581551265583026895435329755349025847701959028898113085414078674434764649780391703480722655520201530540772803722494277824230016796133909103756275429778906334983355335624768282193288946874957241150462980005620984715551033682742043930817707342667352979329451022052608821308449063519990603210920029764180919020764355718201484574657750311299368188581886514464997569561240604596137267416970309842035131306897652736520070743751976403012838385245281374024452964226916220010213702287089854536342142550132743421229046157160289016595904131467417895999129343743259947274438309035900198239044767938103262994439610284468016329122532652952743782145780165987659110884749235166826202869954140192394893370559793957131832342684866539187100601865868389307868003550094612544476936998787421932388855629816310423277712699969418402685727931597009754153110318560438551889929591552838373747208788967740692296691156865765943970509380225913059782065375258659035042095580916556923138086580420054603776822911504072937683737895325748912834672971749345369499416591116185249652682256051740759758894266333308390948829359707166700651207597281095076907164187523086627672163576911664946530498289611772735445054234477182932465600560234913904395600113139946860667375136485488222309854346366059049160850454549763237345720471755267990442511923854156341996854673263369212494092675726664003986564341247607753383235061306135639520533670134296239620270620884679881000220614616360396731036266216569940900371658013267896018260749018231940944930632449078315645364975572574407548140133401905086213205212101191918969333595950022243906929888924095173378569090908336517403480587154870096249818671565705424391835615303748119179921031826172327851388264561742137668676559585774598424560763824183659344567721170619118248863053313315462902712919669912901154694810587387318043882369180229431565937611492034023041967353659849630360366159237373620179750801558478298341931058692956233747922884696250308744860810725843952402610805507955266724444616353158671261628947370410550412892644965656867963111448325703026776499888566559435573834442865164894592929510352025804511188751728226416554732057181842312047320088055506130369749622144995946012689181451277943512564451391588527513233842600175618265184534710481279751050112985558930936655396241913253859112490117243804348207502978148443645773499170747707612632242812017817494643438842569505577721403275793525053554665162786444545838617029113930924487672726621277220043227341458337755587760424825521580898799132107899059785927954541636245448964662931255683023974489671326555659212826810108817842749293774091807912541646192864560749136149102832446408809313967769923239895180977148995588669551487393942905405884365961136157895983812768554166388667155363336004340152176796892616605582901899443909169609821134029858405414139700075641661100787564577888333261800618898595598132397167759897775138098217429457339243384797353578977976969802044765977800934925069474653060816326677998614283863624473593187717924811431907749273716743168073326465126041740859720799548302186984165371058034530462284912074125542951961087442555528064762813640425839465351639339395531236532773816966607874664421900983110942518559590594210909241392805383522770851981543353059370527689684072906762804098208414288760722372498520784628486870279323062863835857857238209019164311567654304803728772753571613475776438748566549897869329800803504709918562670122722707231779439607941116456301443559296361286989286732202643502637819445519222782867443890375508144797477668335077366178784083880749331499571006750284078858606915789340454071287469300708456929517593366256139009224528381787672113284762025873807468001711723831314275177534266271064441342565396358999069445956031113882758498005253074362141335586011940141497371506511214447747362493896597712628581612869310028168808002506507524738325281604446096801162095907239316369881998177475412803177757682472853208832578047005926478360125440462741359250726366000605859281425421060093041457618319833815066371266746990395764564297774133529879725902129508888331604400886414340221648017609224292060850654225004648306807025890397513390103643003301125376536068277687345131956986403744354410743792336354514870464059155980224632928647077536872123104322360669076939726244772570194017175770895236663661871386973818538790281865754238739104414918561217159933089265021969179032453861343066010972018459571659396804357696662813155864993072994087566903914050044443691455691369045857424877264233363786647043934662768795791623674180291514987357283935023671811192300545134548118550381361424700973865576806279615894604954644914239269672809944065368741548559384995405736454847138343981754882753650877537039464327212570320997525003039855068409000450308937078724970227702154762545442070191058489264593929211636639830421322946956104521693213637157842469226768810666269510874624210888893081320493376713382067165951746782018604074217475550792625080924898860032568559348471328007470836733186788070824645778251168043356397075385249461530667806498497252260939474268683754157632718638370011771807243199157698643034348837404225479071280617719167433628215122741863510301874592388898588885977941440662780062734543182979630762172667206454843208711257992112796573020001642935334347563949251471109212098379978421340851285139001824672346803427188283116409633917440275337037608948012425716042399230612749408125404780919151735511800932129415175705070320675939369954667827972832634790962815169025270702416432748592381604878228386308848999239087833476331395226404396398572994736554442718383818845568698476517606112149400961252252890903366049469780675004162170611881210151578797477707777600025826650743064470053504328277222740370196480641573118340691256880797338849784700420714032698360752645502252853525984880258322796325080449907183804729703091962816535134811025561114032916001811731170685245141692578164492400889143314597764845385980592592099368177038871959511242544772207134717233690162427728489667721969065384175186351676565608047481586030794406715495267342188009901438688399537611767117493801735908693567731422974320452942341626922707557348431295956700479588767120854119382599388817736989574550242898479896578921085561184500372015601938283262055085319405936550267315224708450814985038405846008630637283445962258916011200347812626575744005651957330867145144734101795517358169169923840609216428558732097182134257798674153251610696565363336929630369148369506887662962472203712002290312019270638235380947086554655452324805609182790946313273466427195192046449231636623621113217131331765530530975113740098195719955243055676933955975779120789075519572531851154766689347911335533756911803657271845923128831920983947581647193701851122359685205475128250967790431697239113777565127402732799097786892688605558772539949439261296385198137863163190982564307774462095041210029190496779043800345657469282811502191169562854730982216210601489610329628826118534832688176293484149228179360836739811729877141920327996509763612427054370305730127637264112998772932224254968990856948084114383398727461812480888972687186843661277773756869650475020446889540658526860902889749254851763662956213173137972003280081693146877214197248296216790391473301777958251791969051565953446583295365213619589430793435971425292475357950593111902732424195139840103356357173135308911522528388332399994245023649692408896131821872173567763232479287351524157707425529841935027710367722716141999575375834697402327826978523516156336318188126760956985273701623614636802760698021472023377348433273198253521288507104510507538229151782195653803159468740825101059283276903414812054772043795029298822237675442215744765837129749406071617038089068128226114818900300268073337352596097559192419394044826989652182709511308574123514878973147910580176146317847705945075558543275616639869945951628554092710567000368067082060783842815144092329459838838417721562535118749665861641984328304552751709358744197134585832865184695128748646156611287991101590842218581963261621936500434725129993407544883057755296247721515666577885541889442687023811646360093132347788907431017256962384255338963556029525145083353960767815536542625455596605453067439676657660157218959852037958352351264284362522255321671106503648137221328016125532256159285722610809610840275833800526795237361122123888199700854925992608958482640468069963796305829211702091151735147865569097686964890556085005636921482803381465409565114291682186322598569663732773651330018537845473008937065909277700876949435421683551164594891800356770875062831558690370868737914485744443057280028275803391070663504795767096538150486614627209509906221774347683954213400306084044580923386754419282040924351101162150611077257658552519396557850041449116652223160256714479154490254560436686775822656630648395735920118104241596888945371277628881623512556430615072879098287202796553998139506592268511015633706078593635807606593378718883632632299492545155377236544268206759515542182538073179411664149064948068251228829889245151149892844964507484555174290935795409346185906322622382004346456015618342759010479060902737147526595016911619407748452927500382894137612839067820759554102247488383720378894212133405781922448975410373645994795870685408900070573195860228814066864633505334895926667430277492815766340695032941152455486276827937945891088538706808546799657415666181578738211757528878991879382456560753559550730456054752975010793570941588124657950592944001645902479769292343518037322243697578801514417744888668752622478507095421358580115869150644189990597397829112414913716389489435778310122326423000405535645986803693312753452711599517118372501524099153552839774810273707629407822618770572358169225814088756148127268119132039237495015149325941446068119814123537116373919716417311337288820363622228718936697437886956245504796400121531632579082788133806905734003082292951713635840807981056133285360880934000629371613785591618778156957097117891766019416266894948740250412229380192557877647145549675191409804536087523999403936967841908823283217067763165215880232952919716541719842493847793586377894797657197250638602958588353653702224455587986891581588664303753931743989984389814424026844084741991918766324924955259910983486979822542681030986517925811650677471775487143630556955673510443080284802502453281602683448548799899286832332919552272248253154112545822413202353673502750202403705232937569912719204985416078370508499846106690497607733941814620065085265534346013737916627827081756644277664278963821211607141539084941931302744510664612630204241916055057929612952477172015507782908415657037915340596406511899492342885691542074621402154103117152986669183572659716610897111681841952648293937187111919936282250895834480167058968701777666851312005269952500448556233095226792121524939332315593769386954274349547629836150403811002609559711468558610992421310145054144399536411493806699883433845882637191068880394964842296691715695514730325584938626370016961686555983765328663671098434318773815221231657697184270884494112461921160552604148451533435164213324697717371651800676158704569504829943569478319028642272829067187957109333643567512275619979270999368805545598634476041078386322726165795255370972146611944605973268337647081588013641380333951706799498047084293137364734278589879412384470178086645076240364829112718404350965420965547783870552711336297762271352948268177551190380036219496279282020345431956851915908433597758854188951613625607434153188367256087924738767182031601183542628090074665545342182969839949744392883562705675824077424102327732522284773904141254146836605310328534259530895615966605091968127558895786086196320718316107620797624546250258574168332850369075875481097886708279051998983553502137684686084886583658599343630012659453347250043476834619907824550105691433716611364060946755415365875922958281532188085486373119751937298581361976081459043005558877059694029967726207935937696840359207139119506901840789110331639496724143994111821250030310650780223958017075004763950119221490301295098345460457796823547895609092948547049344985260588172819993386436692343064532039415953428609063671193462912221487008450604845746587233428960874283733312703740542578168545960993988586144169194793430881467722182560544267384412950688483855754110999467265817800621280870944539461946827476211451489935729615830622065862489782805373912837089194014284459714869483215513800408834082810468676906168177421640359759943251095158671799730606287404518747694877811744751430368685565401117563732616862435790879696297228488341022537772815240155637111291290299158991888080983500821701949018951025263799220251827255586951236912017539158959605850651697545142593381690079619520728202868478855732048542147497952318319103145516717958569872303866400274708153905657402944282170459734922644371195080460738866540490530113249405367490086362567181330419094981788455629857074409255078805309656316796814748935734775000448350614845095346481917061807283158458232447096733424008077599136876440849727806762542937267881260604326348192418184120007479566950434571768921704197745455293077243076655038436741324807008459528218830373832994055173932997627712928963944330107659478374753211299829070954571565237139836782018961846156170660628349141515259076704049247195451793361671496130491933057267673661843696015437569073158221220545461451488371472776769537161148532945643981315534536612470233219615705558619588985870574406449548603047498128160341795299371983123107538148008667474040614760137991618936701289918887050683041702925753085173154399052666225698809168269186112168409555226456990371348458464798991700932063102229573034747721841636270453538515508637315898824518440715163560793700653966159434077210274299966132832905753373955941189196887671374280434190922585333897744108967561424318275360810036280371569212427769914653323296863702015142025715038037866374538426239844341957648054011760006191929180402136886990990917417349972184849181489812586807587567223647419662503963291976037485375972906051786912813348674070147469473508838809749117818593935814503573246876728810142762597874122114018261422637891735858938878459479646654115885518156014662242977724638596131578689180992329232097525285909591526525302561327848267009803625616385470960567061261045508165504506510074851682919406177730323034812304881791133678663840022488365913294686453825311434672406251733082843534521778789791371467717097884137665222655236725946032642184594901568835917067133138344943175775701664604222343040754169403985062150803162021684827305516956483888229986727687002192902596033817771557167594372178216826792561023868799697052480725832698355075927040028040945696061498547075480608642369410424060971869850191368087738608111249376956348523281006984640513077928027694136049014111059074718551983843322862987959930671959544829870388656942341148044779360201161682569320404491380953453589495880888304378031941955776639005026342208330924561203486820186316186269661344480773495215966041668046071980643696235517343897044361616894331670302467647524403246555767773713178028993806951151681566870872938452424036177880082663702032340372731577921602635830603330722346656709859814718765112180397617135365192522158946596944438032014565549200725698076045061485043016614191545524476132391216312341389760180619932042954552267224265648639937152482766945139036512140957362882367882891008102855951346415090723727591113773444361539182710068351118393537732648211865555001926033230490611890560195306624511321986835839424383338685423510588986124472786828968312969644995793506620551607035329013917130707268924330111413576106886250346798297694672103545487775617291807791257797615808975576055338180496130857446215586070525907683241544287656855446771539318550162236230706045750524686768630163507660870687687925452220895094115757970267284692700802675814602128495050001484780204389764718661919978588426371866561302924538072825336291714180044868848420742314902460526091345088999361793038612181932908465996749641759029695854229817396395788950051203003936884231650700974403512904464860805233766318000149274897617747980149538047653248700037191186318848537605084274671356361565026360443302432579934700900319266045080521945965097280562331926554925771494199974707450222053687716171727709533850012965003211446153283453135138035006523852450511838014156809967447366115444501104347467074082268594000247326266287898008602866116324468220352764814316153949571737244910518662583153053134908502740396861712600661994487919833030180403095442815508109579501248156731119976934943904368426818687302412144775883737123049506279592265432336225955760774806054478754757369553564969130253877899654725468680639983543279474977775803993825165633732509863311718983670006386340278435377555158085496709101241732823026672899615466142889428744842049103385533318933188170553713169894621493259775762478277131637242776093467178211810988798632736850011599949050057852025133223853209405334466616125958210956074139119842811513280483802862504316771964087803229215802050338238150598666746582282869227447508090233938366292748484883038026839718108041458891688067725772053144926461986007693980823877160339578369341188232191321912735316706061676420756434426097871059544782643416071332041231349590132797537177417664750254176803137307338276028780953369335598186001139549558795603994652846686023610728759662277529899646644035187366623090724280585956959063971174145319467303892199028756910949128214552297748244795909288241764686902744884563186803147995301619717635343039707573227530725098758431015821404328738237015456292218835725777749737939819862211692095494545631622124706820474218986975278084169025636149345470627801052863525230728116314687644033057281943039753148894605822690706936636557767113535000322305967984608683061994201538229748700693538427448045953288483437766020117319456328919632867263455103414625325151754444675087444818621691376980476670909002977331701930531019922380095527408968104010643126675545455259615481300791393814293318058230817357934521628682966508787659599367907506116363927407831956359192417556159835018748102349142132300980513088667521234808218626923822093688738820317711126110847511193203349410439814114931947569682082799997844495661659804129111251000304165945488027313049140516496048349544045843390675924225045798496521198124059712053414880651072108592869052895766261186313594829498382475376207462517303413399724913717054048916824775834077270941549850184904482382211933198666814804333778887988006599677418419117372165391392181215460447534178658825398278308336228195464534474657391315279262732422495909775765842667828759800996273345389808985180287695780118816885975007772446202851423988454043184562283401334423875576172220262120650725442921628869170346362327694134478135873299113675076723026169719333770693560809423721610168850161336466059283808540178871919061104178251931499739860570875025169349909399260642864376693482842820263414563630202274405348676237611285071451978112124178004923064368842736413324296775224133568399415458537448166062983272188612234759579894459929723299834823084276828214184366317702493258775825365727886904479773865122550304304961551388870316444408342937857842933490029939591934402299857155726401009057639546868936869880479623550937453046971946700981441487124332040582255161069756906858984150309441947315875950419569618050000419663849302027065765477306708771262271315326120624504789185691627246970547063461391624335740266128085909841395229531460820518198574144871925270926093248018077676826793439765970294650661235758781837440666854906338130292215776833755536232778546846233166661648293503538021832868864951509515569279164173154934312083296338526699575970245611232548285844534392027311070346820567242252563701767242715215898315732954620624460397252356442346812867430124547522293772467864806140856741200588701606436083665336113172813331786228985208740006361801143272801973823704122486887153166670467344226100954294096577879000948864897832697536977975670053315004823348460270781703593028945936474804847355864019188144146096675302636624027951141192828702050853105743097693637531948955881486785745008035311573362654006387298833397982046974635238910043543018617036923417367108938581408569597312101215548835099661174793998112229349149859174302997895359241839180188844297602328275499953900178892758333121566755736418334370841459698536532629363485225804166092105042761341902100482689175920317212848334267561770053182706591388187420671300505696261856113803391638234254983131409639316403316783222546371704056848759833581106922022841386582686743041750536223541668210527906903423922501420446622809831158671383707860935412656336832036651438386009012692346738703084416770931564441778344005602342967740916623898443982854917432014975117089467136181533550877321135328655301588025420715313923261614557207544735340344091684538715740891025334542342923149816864414459572881695115373696366248476219271430262672965803144537847094470229951528789084497887981762407617790049928696776209666397137245439610324588505699644040137984149977967225309451767493862587894057489914843425492189361005598600825707872836315450320246251813668562800064413055097336092734025293419517828082465716436458489266590168954378145845495658691862133300609784420460538920920189605994687532172587964349146191190725508583540635871022163003971500520116363918382771497140266729627939388253259005732118615087112982878161017106760000923329056575845822214702059482262697481939198362011427989251306695150517403085678683509665390598077980508968415341378327878495888911448802307930242477410673759980357514084121633331713362104656376168625775884407879791707390212657791711499680883836310678064658251651578555112592612761659891501125772163067401456683336225429222360177398935824372086059176993866341292096962656245601657346027547739950613280362329264324131458225384649694484070009999797056144603049504757729730545317329242165389962966742198251454551254700263209327483580329962470936650662205236473678256543263131637955437212171615077587804773600632313234484765187847696612717635268894192671884908868434391864567368245351626488404461310777245492419825213449606550163868128810591601117409536222075149769147906338354532591690085381504036762611885265332795201882304052932291924437933612022925647971714886544831102796651236017620898481286230979436398319166725013139868673962808248684172034843041885161843508284213095678720085667123207531546332654917906145766682366708371792127195745790211046934274781772807818241524124955112643514216373296217734711078488333441927921913377211665684523327294889047419346355448915777096061229872223850595446649128280105059947219784238847132985815013106675754346378758605333044324175251971757595772871162429631474226381135745199829853850951841571157111202803743016097897061316761259204863850794196665233741059156168639212073785741531489829350690197172999714660418154278757932399142324531194276559012285921772743124445766385421484801351831472167834312169316125943600069856860203189576903369192351092044234730854778791061084673140064674780294484334966998416926395280019436006699118996241735983508120249905636726840592813733059293704031165530440675383659029123500224351056616885932860049961408974750945363111899488728174278163603184042556188145901978983666250902551640540570655058119376649251407791798233682601061860405352426741033538009491483196811330913315448652223625893555223036874577577272114697943388976499418049932510377793864871274180353845947476307970228759299458786957344805528540904538829206948621348547574473876347639397263012158702056889472472392532285369851121836271718363152789829929453397316356441852931319249274866734177988636123130315060678018159560197095404575639170091516903543017632982077427277278753528339173697723682212284833072350132244950593978658540145863024396447004799903520153360438368738293149205313086696503310083100635855911349970323687692882369363479291752353419418378157715012099918139723813838255302173239563773235652594355453867779302445437598900270404174911319001683494287939990064807585221358301453648741130802053204779584177115340273918990255165369732373985317803491678685913062668417087062278052340665346610649572190905792098279698299816122041370082262831064476215567146176960175668942287113473069796514397709190729594062895187971924153720782909432120456717588194986001196816720098088918466287820007072341807557850420759987134049441243505395614841884491075716735735491595924585643635095175841788756311619426148460348908815070446441552888543611073977117116271327067491139338573499449121976079920073678883297238990171337075404575323849035563340343872428799030200995119107266335938607504080873168837446601713821043342423433956703655410529520101275659322005395827464125389053863556375038896658994245282577012809528259832295101446816920540947676860724211613995712874753857295086415144852084163649052984022211379215848243253595519735942910313018174837987673533290770574181868603572865685523623890949618921550040052145213618651423563186037267320345386001912782175826983279005007639259081899321171166354747864704044716361306723344993588898352986567189303531578728993704968685425729496961046318025280898392648480604634792038408955555553882158403234469501483577648831205483416116512238122879190337873741093416347318275022241145058422628587574419548636327930036506469546979385253333039032475661034062219814263145142415121196421250482061959813289302150610275231837470437841266589295726759804892344289347742185418914436565468328084601262245516084625940567730400815652826952060518858949817935935938456777798525998980246891790099973577265797057486458097695670829713725333213635777640892902535668650256572583868556596581598568940076685102154111628050683230411213116186724430152539029102414618711091339547508048021575382442778644725161701512973751718033358779883055694693794864462344370201944382628896280873482389383347528154192564074453025722484864332028829343585204057440306477816548619136515500889340442021098787297547888133928668305487897958481337530565764709225784786959832773085924661115038113195773637464140325058200503498529974840115334651290265558762096297855564055649109111384864277540631813538976184848128561000884800889600963547475732630473343016032171087034822795160995148610573209256563085384239376723722455675472447171028591352856191037191555586484374239405369751178948366870435797719862369268606244381798400562972822038419407115170492499596949243498221256588233732782891761902292846605236878788690460614741344231986059098496451348940572080816937285628416120318201940790179786820050538411356724048622249488589336316428753345303222400276808582194262844790718289783067566051308235489572192125304983035278991412991203788443485366561995085969564107935190317560554246177222060886431763892893705855533191672324287641852183644845058411357725445948435541206162862391195194219053757375739426546854210172891020565499305435470008902904798385035673968783470719933319651094489733501169608506468822598319743316466826009395601148762757449242042209430136149526046748013733106231366218965909731851078941341139167077373192243929927790914587375501011814729303856435967847654117829934733588071009114441601363729768760816081607689580874889154787338764059997805411837278056832713082660205640828293421716054768543314877537683522253075894060148755763004509726963715698035854687784479310304194623039544192948840025925001281609797406319774660103068690216016573727614367711234095105875631855824914882935664958271813092067239403042025842566093359835635797514548904990477618009881542177621077658941747351537364954682839548821977534088416732951202914353557941443349153844950436405206690234321125035558943279872192903786418144259394327638615022639187565874287468394835548975690498971685545363686126122761721305234282351793055255247990277114941232030137555265788048507924088185664133793153590054732125690940442046788366473886165682864400035427392640145885622804622765933762994141713104520014594264829370849762957460510484467805198041391254261294312475007486439975401467139298935465002306025483345956455000875566872800807967075522540143726590575704333188365291428584170173560897677710360342219626565261640106931832035253357617687406616818101308853766493297575319568727498758130949720025229713392628122783113422519717464834011813087918782835901961152385491727890018442783685742637107223631039616891249838066218386916080547698192082668744129550563411738138205456473223978646410056521744162762414125172344124926963092029404685397808669754479334292315642168122744890687240420137166430428508652311685297002010375036706489286825543954552786323712434501434680589713465996758395155460569610755623237816636502444378433194154286606149120041957741095080757353486906201535879942235462796940671135897836978655482606429204801659473548656779386420466986773187325410712700812799439325629833671609676578546813501026578519129773728650191115767185766467444539654550687740876445945462378644425663803813620091466497641791744964138129979506289847379118865317533871304675872067041053322482068244851036759416019724661810263378836814311977057381300433993132386936332868093637153057721396882647165858563879709413250293355112722524737211387632540050000952422604994289208496232887609120039117076216895784544472200635750988979619311871359974697716375652192075645147686977896555956750581893115951405830586565959707984975160792622914040266213714361916773588920056524427204364359268537937422477334471969929777597830244986004771343046151105333652462739311251559468327337218987449497876085162977494604708986311948680609203554139357543614201494217004152199396130775224290476093219456915081092203341823903704271205498552267496967805909970128581262236759861338931910952585667834545835739261126813817409070260470731759132222539573109671871207301924946030048789790401283287007819486861799161449241811570239653025669007325084585965634593890935889633945326353156185463602204229064112584450274564731792327125087818744830115962087093087960409452884890579237184127326313455203166339714937076669361027761101926300359746897285454832770834838043259671959503423166928252854091269595579393496689548510583549580482995904947577515329636208834323338288280839555539550639145087602334753673168109786506463227150310404841328992786467903901072122734300398099415888805911112662809385935209291535512366594876541983600665808223852724529600994594122149016637945248330196312168153469188993629821690198603156680626719097264591960087208803990164261113608720233641375159651005011391355312994658670452264969649907941730824418754482173352302650782822439906142928088618910336200877631351718920375628803856500530293326725099891255066221234795817846731866373746438589977226596739636023210041389484100604549994961258371247398491506230651906159361240324361092930195667520051971715113973332442986013241559252542338874834255003212367757742014699805407132804778375346193531794785045313006323364444424346175273576558202559345594919573631881167396597341636749900505757573067502581736189368314659331093068885515604569256674243810483024944782551459723906624219552643461888433750597410425051753888179113532928471515835944751616474042461336922531319078003398707743235480098304522324534100681033921459498462443158068024187951313229932537674505099920028743579954090021564545091332206825464892028465081206927323261954655387713940200342589185809102758985723788162804908090391448302664379197709325881243968478706615086230787702195505387649297978329594283666529904342214221646679047645772060486285563473090052053644854849614594682172130324040707432398619908255095492667904954317610591371156004038203724621201551545669326092824112158796787009533375683359237382420372141179606267104123393721509125558573216142730855997036040057079485269707965421830211667374465024806969026666150049868521130139588718713350234947210727063614783839924716154887684742928716206468140611125400093696204124463611952375319601883380928713458072991375173153519382539519123335811816274589734150633368320128508444083466500335203608175847259984978590048050052988279655449186723416671807021818160035560947552133817166924040103088837979385308912025320896769025576824951029231860006034053180852376928955747504510164612513323206450501550398588739025320010665652768711412682546279539854382550486067498375541552127893763236752876466353258260474879591496117738911992580268755231263123293131846344772013875046752621475057341756714827420347381126614859433971221933623843642596164607320682002007124053110711383732273604196532482734482121476653734290393118175405372741012230013870147074586618219268816638088362847510998154178108949033676100723481582390470203402412050489586374413141819424248122848114618955959872194624661855095535377843941881516588527923245677138107633228083087657155834985942149273138181957140917880562754875372281036352644890129915977244932880711895346560729548560751593927460749446982506452729475231017290248376406414978659327006217096735488165470171156189592993235565062181013405329471838775760937477838496173258757491103532117671041808164034787145621289730028722359629999320872741487373019662816271862512546519892208986824159499911881623871770260545046710371821435487734253659154605857384847590147082107920650686093763771460673756416649765276219839005944512136627734671910172756593789309174330530084873289721331365286260491671875474061232899493679565896802078179945107693148199786290393187132884334865645416380386354760113375793622274466808913086305086678177913923369184863910769044615070541289241319160675856157427630722003430624923623203718977326842813284813813237283443541436757209179189616676858416378069672042895492826953466647487832673296348451300397355604310264229550811184478593993946396772159705022778100283978070740256978347235839247887053420971910315841748361467643341431872460871356619652471365306626174313990014458731507327000958586623337722927644493535834482877026432601824622798641986424999061301259777152173327956914404199924180810852773219556396926218291578571729115677320337147873839446573489425109028426920349971340003834984571861858236439057389657342552081438608970387152385582693113306712911393651570455259004094999214102898435858440832837607486036517119325690845115743848308230280483541918274811713366625219973737961980358760643670797496085794233444851888763777155209292700528781561622301482911431730491233199333740236790060845279691767187098590825206870548191004183004820206070554558187879167695938143638968800529820504043789959732216189234727137071442286569155192995610558684994468110116780294778448610529226464528000119461168744627056885346413188482929510875974633360785393103171595756921657976189625170067762702238362344580499526160155099914003328400365350343510927811130369952006407434803006003028666408233096500018834058732244530349400182938285292143035553177614683974451706101259358164308538886341625638736156311145978555578324457899050153067709487371866413211499755227219224183648002315131769851440466117667951536898025121449438642206267029292740442055082753169296542949081232782800286527592303128736349410730884850729939752891063301365132572129258276563859987035235396809505143992730124272211626550738347170565707989103791907335135303679705973292808964454285053216888805872182912693931795345630481054875591895252393800951120642004191999631246813938926259961138798148918484824633463631801339530455927091215859554208146592227144771698548003096050706773372947757611416873831074004795182580492729196758674703607672893914364189341381646768836676145068340554897761175075541370028009536559556970163679588021398709782302682785733481210805089437718392409396465379632180149580091405071085128368361671598054078792397894255073292553458160051080718583136947922564680967217756302012639511110132513134084184509352692287918072509301506469287797057180601803936519502513637936097754789593772258627669959261561888660447052470614484696086100725349946139714231081076275080283669470942311247700277972304164400293525915994750023451482625296210249043575963207635440629253208702194846989949452354472439541805649460621598795287742227249706619479622297154470198749889824214726092143402610652135316876950598984017271395389192849749512442774709814249599568591399152776902662804330917471876756460913672762528279964260365978141801360316590072470162042481538390688017177660564362186930881114980339139646888377231853239688991631622006441276550463123407778801192293871586046453414111999032219093828723159002439987690785759186290443116310850458040920068522676642724853325014307932554993800674605256892235047158331113302776366602988356561180441993179730518173641388927231868204618608458927387547088505162657103447351987255133060603799243121929071535212932809378498617483484716748811000882952746198772478662727615143009666040700645576894216066393790353340446419614046113800644390825904776346263999933826449564494640397085471417737922322651384281288920873187251947959500219671861663435787941819793531393518186489213684750456824561632969592557084551916553582480470611810095887727838373686184287827545501971232519422124152353114015826789747021448496274801576051391924377642405551005514377572824677865784072756255379295030636135956514828014415898373140152338750218779054750463875246356005414852401512023910584025451466640875489686042625790851162548024217805964134256836557118997556629835680542794099342429975308028391892519842907300089212821087330804304968973436737295675320832445575330419036114942015088694551117513943261932845074222128273803500026538999317846878664945686677121136448723696506570762789858304115522783821844343534958191127336971568240509310094096822412739102738460884766053304326009746995439814704996289405911782862890230475443289283546057437006146070105153767081308726495690553857151746444912780813406340877273182976131288830669140076432269550410129057236662093645035475643145494010694580355126875698895598507885358821782000561080150588245877117667155076464300632054812966572299648586600163617495773235991700299109918018327500808894475315971639842251911279289815346495683605476906019290454582604382438278508273491614174778019291327554988228488992420849830375137125740703629231315942631390485499869023696591356405456633055491497315251845434550116912200954441884580164116875881009280889924138714336377530657655589117993069567791752822640235055234113715975979749674009249301905284069250345834233677405329259296345476355954293420010336552995607301221319653387003357535801091592048393133593286555449530649606973697781918596810275471562240954937455038006978665377840234320496015477172606025811009663957496859832048132743903978754466522598142161245989990305166143449699498082648363849721736640813958792090975442114644111940110685388924526146024559418507637829925363330295776960485380207969699938812565938733777590587583451532385981167482910380170546820113648544512460496669691663353295362996468791375295791268372539637829149831714860931954670120974060339839823025009827418818977084875926012322957690166752113336302856039638791108383865067354472401277032701982074024788047242176070805553764689097157116694265289155483766799186691550320854462772572200465356188226747537410310905283396881661313535706223050312995701937697389722416899143551748795075216994382189848266278629189296538950176832720953232693054293935706819155637601875411576409778589877564710010726956157576546485211752578979303816190831778511846337648006886241611036712793834724568958224482723537462301109650364092469272377351516733617922038006179879949763055865403147110628287154512601712404120619897773294978247712285713484368989006746074785195876038712831018290887649996175565439071737761943037068380077618174257843146396229970821997949629620200547740452884450721813681410718441701754439488973415391441900056258605265435298938194816579437836507311887574796759280941792245380919735726754980494156995548966362805882042613421826682623388628643616820891037097330638756934973342405409453110037054534207897243937762155914847971576646831690375435684051427764332121296660508115764628299712467249736946267213693356205858654484964904509117220537413030128715068685800510142650853891050590582880928019834207353218102242811017768388731533944135331907806031731399786206918142560642703943826942081747313697424450568926734923447039661082104596405250451777231018142158759172491870156187852585791429834462327892872388392270590225498720917563293291032718530195007176347321901002845549746363020768168536574564937320829609831933543373636571143815368336701619201567138932984780592199216705611986681404955664135331650387054708915235479204610751983057152055852578038369022171579720173344145638816320861334753434152886490722209353156648852537593867827953968513040987823138469926381916763524225904650909041409944733475790883961915550700989989322058202925013621402285876019994425490918969327022800632396508148649985233242694363729910129995041657835109698086715564778630267474292171781278843748014133315129390918770374890130587327314292814763575225597270939813584303813350987847112883816562638532563021387787407444592314777160885065710770143286111196215022890791247860887917375102259453714195323370388357752372199100194376958576339712085080272154551005769899567446673480132661580020094691628214965287867274649072418563240298641017277421379928749853941820829403309198568230720259570533012382749681158887651369755554276564642013922713343043658541080125807952066253972929640803480963405773913150929413906084867085715211882990020173838674954873120851905182507818194867996136915539900050650063494774721772737534811408082718121233524252419976944448640566566485597414043776921680688244251936833611905766030497882798606222667825857224026712012335466413924035241035801087285537950051741391675285116047862157683638768873499663307218071526334666996002218002993565543013055775298442611223992773537104566257948532666786500630801569322985115184524610020719126094308965680309556177688167631556017072962862229719723751598728937121044561973749404322869036924196022228301375685588183700679395820775334525277370097617469883138417801351175574757294903739507988475779307757329342294605785924713329296580320024114933545433461865108788604471961176417466345926770034621991433167137796768044241864959674539874228596167301852359429967910868244363845680948046888571228273246131704407990240540346063020895560391798589551285033127113571839480946170947788496928986899522869622701205732731783420545399272530910502857947223968264354532965779133741881285581074019005223364880367896924319677288768677132673103676910940200957844668462757071163108144489368371391065555146523870651992229654686485764344963618354443759310794935727687636096362371993831108114577552160086012187001454287626115762385866977822693332399821797390788027935489506588482274722298070455983884692412892968109841398225150705989623544196031951841691074615410130709227263412734587131959324373468283429814341724537776574911655871568249932706018460448089699168698042693294427499238132260957908233539409968951515287721714232656035586105603562669615706248454074967367940889572076801767832845357369100643661486471024659437796794628810561674225495983360265961884893873750819920465185975492649617777593804599240719897935775020142576550296005312361754168415960171754712747609309899207836280699578308878123162830922328659520094942251081712357627845397398904462137790454849341825409023351893340287221886376123147801362541485549304042288724900161662073014660120420484260117183671963257351397115817607130262004448703084935908356791965280952995463166725399040389859951635600425196578573814271165748490980348864480124124946654047870482228663105968335037884936274970048921576949293709369476346976646727593346679692547458931971661166446349014152516811499039298849152074783292982201373806789875690172906205275298080307230208969451109804673422403697986278147715113683066969188469787223796503843914681087664755443206757884843991740447032137588745965901762536345537099814072695194499302716907435840916460050597378690626850142186894987688760620776014398034674155845139018786539753550273964064235665718053358659802466402853483351212518378884086162137047378500148427409823948384234743396844073993138299731055208329392281580830840703348527542332300055356034393300293523104622356182293872098878713602992273202464955189503298698852099853599647636241456802035989194488930422658468535330769172497852215045461065612150881770440061613222762193714357567320200141784489616709115729714971480259635459602597299680921219801765791451565649603673529486105118646614343251128660187337177512630741349768910652112775449118226393140146623143794559338030296678768472192177916935371149986362008078460482297686808717829660494427502787859904659201444552409176531170885136199066075991560621889653954128805282078975592613294997177318869521665336977497259152301246502586509417932284218435762727030414617533160457213940052340806982919772260731567847110353974026021676139074860572859327207975673595520401970739484827050442882449290172168431760677174977980885010986381937230733331813490050792990324364882263012037315493067705095188635671908945793853809452290638985435581452054611464500447419273864724187498005838902964091282727888408503809740025009384331191338376648133260317605733937763604136495447731028237016973872603248644988448709882177737509357739461058650191112317406611925018717617256956568395680680085353735455284588076078849220453964927984933484924996730600456410888589229408768217152410995106442180722834903521297370684320029817969710965354318318781235367005526532356211497498884286681356154480214913286345101774703425384310239797360526401591423221336370670409964712155335583633387747097802766905434021216895273166060357461005454759908309355523009200554557371204388936923034113904148300082059179787018302455250292689660440046196362341609344537455293286992291968120667120275273533808728677269034401774421164690538304562117439401118563752933108653473871613698262448260804782709201378811757172754032153621705709710598625150645866519402846481947660751483366206604747894526605788411222660458178762306138353801540940972632532158666453803085017014861317393007148826543889456601702425427586293197740393863889561048254032510713790380536254710034964398712683306374631484594140241969014231860074931959917324213437285241471301203920533901731117454161023961722599659227594954029779880835096970491050205155928001062831231834854674837332443624372407089990299619337409097527368799429787820474686105776051730041095993838868198837102674849184271364689761858028781823249786594908858855626054104019750499421492659116657884940335274729707694257259924476359374051828316934249122192791288009707344449125716063081981314494277366609882106396595804499338244086876683238391138953855782806482891231146698451057655116235483199274762351426983346636567922665981687581835910966768330752692151177225203447454644240998458688622173754463745681674714090851962934492838562218578275421327117615223814222866669175498749163128093000745711675481382680405723805376835550838968890917907316450954726914331701238076930199175353923947707742510174882714989011920684353577359341923966672612200705790369634958675490674096181230879528618646242929722771682227131705236811392375749074708978267910619587690963734138076110681248472329818773714304466919345177735724543288475678389326736459746484425390660917666876561526416319082837892089216016942892205468877082016575836053079226712664592812358281727561334996843311298320307903209076964076047943220826878281846761238965663066187864642623806405258082857311201166770692510084708990051473805493992664734276538222481558479084074789761976841867496149039261826757427674188528287232572982043648755804314662912123605377495785344528003815623585766643487632067451129973379110775919875547492697106163284887369992515319581528331701241374683692749964968897970356689138670262581783298317160140855485995848492342912872765639069111248461328451955717641809096813713757044236484352261416307035770366595166476275870315824304199110126700658030779765849053620499540872237059723061594102253967403326256069067784252707253908643575242483102418502557348681516206822141039524828853926984848812194873789976523915880290132229508397465835656302494581955961395098639522509906844269595720368048066880388422349071166064207584721903097583753792487213760360600952878093238203135308623946097895107935910770981087427671265246784244024607725635330116607795229479837271749941415226408749226668346843953256360503729034398320975458295030140589616647323925641770312899587738456167104559102008229987871407055996541812396377458996295284896679754769610517462794542070753219084863681644754650786111785307565318256820138040726347259569063072388622990954470201282719550021815423630433641221095335558972858772113329647466121177677100657755378607377867207799312819698546838691999282116218653236743175810247709258567125228957644148174206876003853284640363922624010955812079338168093761898404781013805919485902547088836848742547003124089084568869772011811498853699626829933224073824357378918877765991071440741004380821050900364673847707148981823249988930410201181356910385048528125395357099899526314505717136197197503194446870009661370193844414380079835832545276820682719469988881861794464621945760346857017222277887317651375891950897160994650488109747856558797105838334022966373151691843386673159481161595965939027665556778257371682567064550595288506184132661874498144653227692819746029731019160564519528063454299132041179469872424358709736828217400591307775990740514693404697465625922411116652470680412258747125608576790109424490041011493365888503191779147022892777202861738483745359295733768888011721966890763731086949981097284902469456322085715471589502505389371996715974986873070126413475851596958335484954271613462154810257194040199129568730865343816048423396461766025104477659448730878960243713314168422499979247924488897196726771709076479612481956127408088008332431539863446813987081263274672114684162156595766027989421908120496551329637293282434548022894818738309216680752225500128220157026920160124086214538070408636338290285686814162859361766262498260548719107143155498236374137464832833000733151198483881117637108186734582578685062767957194345801600007938952681651886327771527008643939688974346621590042446938421476712080683071621955381445236457818914901018502954111634421832164087724812038626820461903308035943902454085075120913656883559274624505997942834617711845267659096808871627330773616623052437780987730175525795220475775370455286583161289255355499788601010796399586062478365921804785250085947885726904095970297816443959840501440699453967030583168314122457218801546809337192760548236517657023470387493885641245406625278034239705282978360066829349165422596927054125489215541037498327678527992744471886087052249392233025986005140610974763220322945600644921300754298044014609635610507767381837671851108298196691362987198533640820595120687552206617486284740803927349728099901287097083061832754723288445650375479433974740646169321012921535075837848974991289478216959488221208579500834639744608593592096967531938254894002765623803492604805218185326791553733082440705907356644295827737953537014192731209536708468514542275735165640432016617887878031762874940196973932084912336904658679120464419252220992022081285183624662539319229341108886036852234123743486668338232415651756857875138590048027584204541415648833680488366593161980121527649442688615175569104897922409170366424032575519216473358172833069841700531028519699958891955359813634507250259950399991286204316400191744114217017814707580930145429146470248351757559390909589667885388721931619249754913613376122172017940357300520985490793349447627226006911489572008585535728061071362535368319147121815005652973508994859480220290433375748385082098809916817508144039026824635676606351226898381686976977199152577150803885444164988265314372166999795002089839027509054411449801180137181356565692636089439707320604356903300776908020749603756259634542850431652824970839576865311423101676549286058702991418332610506183173942042763869233987537360617761589754140566533118431033705605339951573608495068170243148305842460038634111860371154281668029728486260994762923868071526295130040814462228766706560943335210746971123485522938129483525106373543231826267869446115140238910793752934289503895594647202121315373331827419907444194430226461864677168639128742804136950362340295661886640735156422090286787111397396564347584032607151056591747260128276097935776613634488880812740394202051971764027987905817061733413661781949259145866734478678595449301164011298853464164209275590842805532918156702351615767449595951764921492562954254330218957755292972017996367719018731296230144637049836232776077704487903376857924797544015366855770772209382894874349077302460157349941322514595187502579320783004433567652103044493259717828532497389022606856659780298966331834662855217420612541430644672733854498982028597014507209200941771594848766999142488750816995353921906877004461695374371229139985629965632905439955312000345893241744223267349868546644109284615266575440829010210597185603123018948647785674436987236241767043264797857449286145540535158248185133799805061816665126122210732395155050536228937397922236791405153698833086842737253123340136266548053916508753518400864241357538469083109295275556811801266583694913672679535099809958644183717270470929712294597160379897286507784053422700863951419424623749671720515210466809247744649655680321485407540137364916445751593518493621132734631549475382562982814847336421144646024799801623913582736400377115451796445607199749436170482077300773240266827031266920122425961633023962665939103948136187197224549457156172972627472134395842541554401506099150180192144799041462108550118990096130602625475104914944827774031543754523599406228791223407525530049964930832032748371021212440167394946488145225689296361920223760131650003062248101181063004959632590044496478340424256984639169508812618843330220688482924508966020780083216685730182530401960694432407501868452711043775979496069188682928417616837045673135331815518125502062769051581749556765506474338177814796024545338064543219996057882045107571613427968476953625618121363886412436110640545401078143547318744974737331823827860910834178499506830443530673606590767214509858915385179608015967132404935658820460444346555137125378287121326386030694043275765777842420264782348128818773377077051314867970829487721867944123944228910420397984083085565382036295641793279481808404069138586493706789159186306411957421656154620497628407687523177590728302932840862993229601994276642725975388868631346956210971935693529833351522839440396230998195572367276984635705063337069637492038363845111971155760625802678372535632998699729157270708730140511401404828288229747223057369833183314880067341682859354729220891015804093698399441617343457098814154019917485220810512250599533098742069959623107571536127116111974826070526270987955013522668212846247656610959534426656354270110856831621563275900302037858413467617159567156782965271529494102794757170362103421560144388058852795772293185413391881724736987321492786211378356364470648972080382517469219875024675425849105560271528297748718237602763990965466563464139247759890203546343909440394913768287807126729259011015832698425150134265460447725746497883050253847691985796610641639819964431763704712896465805849453529584911904600614425382552844265187273082147355418176372443944525304245810591620311922108362346857010796067154783780210598785541582217607263102711424755884170378940083364139180924374392285286898218483402593828599959181686861911622298580882403577574889137329332794936917174767451076423556941620696984078668498889453049977854037087556218400764368836803256258806386768424422085696339079989535612067731436293334445537991611719576852030366661276575236548073555195145125759390798467819826973080252583670757235116758252467845276626214346804383101883259947423290765989355266561553036679173991746593296567620606469799445729203172204450414052235185883749009153937837912241711336875565780325002732422596393592528527673952856423884227119681807140644484527723180391734945556392419308661243517680247852634717671811628879373491580657679186370800366615152811616172648499683474899492066232161103284893522878533151244002996245274830139639081166390582264004696014324988660689716911906525371271214858510560457719300841762893193133206130095840052358438640276015680950436166231143572379229710756523133300356533390772639697474902652526880310127193574798661365991207551841606489510500658404873758715305879493851821250197028892008100876877591503040004846169378189732728468503006450034738896693758964214063612985527796790722402723995215996858565865833026974062115868397472377695689418872955379384051186194101954547710255898835585452043297958675535234685096911081250085021582207269839621587873042304463012687686561623749362470580172829195998718981189013753916959747639418717089334733694395971601236076060735871491623832349356916493831800816549433809182848202335298196799296422241207563741538709071804578420295227217343508226814397476184366243245856496360155350620126885093282936202708286023841819298824682648984066246979712556215687819597043496483840952383396000494225990304261447380463317547211938285364359144567848243972210374861932899162725928895913684367527079793574765032556937984423528482878251043641554399725830732104085410081518230779920955539915709871516985026109465571816502623192388622733437407433962345710721813309430074470022767868125757592668245712471542873194191787067679873007937728427991533099845355709244237608816930430759977937522938394703090257716352782488758654262177628727187880182287796626872504116999230828770865194079970579505721227996617474796288328220635927204311794906497800588220131869173294574511662751863163834972986778903540861907593836828026817883767527381045378474130426722107106152151375410807517169537334113225139054511500356642323258808179634472541796443621957659996291167243609471726650182182234472173974016977614686066623739474602237734709190237311002214623055534287287669996966926606804476286818984745003781451258933172542755004164299729582365928568162977379591330722344178415437167900072072259121681494103886075947437884220705374229236932204154419838673107127602172262179759047268258190860930874610361916412915924388697881408347652635806971320633962046385648694823343956296118348596274714055427584132987546248113762163461924715313921770006279486142649587170824734568638276596872084201507281632987718266586538783680085043036148314400863096978385360929362816397138117721810652212807422407713851890968466327022068041043288129858125448353484731204379187229976086847707449349698788381337007793895048984486579554387979833788122059075198087245302560100291389089899634928885517976483738428319905427095500981751747650150399598518108512165434152653461905490077810272889229445367012178301377448216327555789219363764070165152928967968103910478579273330853222783596954034335219196182900639309151940302422628153917064419737773643258457511703668491761859828659660159031882647491222744724283112458401511483833496377368071544810248407346874874647174063813111097528726342322822506712446566048878243324866124058796226878191678195557280367076738950016151117212199280096212174419917238630794760246511115837457439517523502236285126393841398236341712077742190238240660118000411103291766317712891827727654715029536489223089337036975140124081618766602109818062480350670084595121854831827737930575896413239654484172177199094517799425373287885858311182241060716505120831912166832706171111897143336922732769700609028883014742656746711135523689439128619890446318100949510674165516232706482434241113971998731804165037864421865384619410722732051000403776444619705213401773457437959202127578190383145409239506318771294745986120532734185911426921640582515495855747494193771797746927274571242376180061204568889101685791520034224540125099513136055939630075459749366366160522105022606342166029214410550517518981421872521366886154601915506635528341897251527741793842380078712447227102760223647540335630349850050435415236953863562884596857803593741540331425042173755173947159523372753319461731564404869718359262035505150783970883416310108191145694818972645060721405839467015019702570433531159130133795774328362370807364404164463420858386376423393615799908580691361327913539783051168743739184870891657209267255083241919383207212795387524426026137920016798301662351399948099438184933139265343796750020029075623899465293476263394661432217549788408359923265715422615069991565168019470612245694420553510082945639608981717802401865537499843585745562687003469956757743216507805413376196777092974511207682702737274665178995669931133176519323504154737614705312745738629794090312340496408887260064431886050132524971009289772968440109319627287498988154604465345739094151753349813419260718269188290657389009937607970720027421438919461415088832138448791583228580965841264046346775651519842684366717911689333814492191166408529650722960843294464771094319425451197113161684329739577526458356141859817635225472275941644021879658378594450397797037078893621658635380342029045729408869614871106901528676995714100759905380207159136406173039172568198320786146416993682716609796132112054342318156665622087333373369136566692120143517816415844393118228098018511236066648469038307848298009944435129435830608526181163621078728698571893951322553740297242280577510576440289389771658288348052846548900143547496088821336793850982854617362045958555217595376813027710780118238809610893099577437626664476724324617475990995892270651659432610846539469313469991460516612737776908387185352862494697861932254702398240152245590638313365531511024052659021690408129730508348300966844966301160147793818974176067614729312570146618887887383261113252626414796188760749125403663586226368560301166813782174089162922153092804059141487638524644647760794427772338219091945004964097582376712038473020653491219644866544110797430683967807702934783313096304833559806246083200760468664587179515565232838508424771306171739069414360325083906406828295275785702490184755101813464338632608825978999518935874980005769760322978756779898694164179934179444661905069304277842721654178621624143851589067011932859346124401531428034314437189112115847663917820480458690314156081091422805655028049841653396165562700377695836090045006316478531601891850944111606228697614049655343876874021662302182791317882675962773078515258286879248304660341562133924772983141082689571503749142078572031125768601040093101540067841700777633605452414279032324091362533523427152758045592298303350135824152912790978414238553595224256277759764626370491020049794859791628047911532605309373961033435497946405423392044251944045947717881915719837140106685382879683021748086570227253768907015646376767275899624731492087252932698262590397262358915873546935613677741214656207137227298391773891538109660845374822114080863826685916011806329080484975457715778188504045228770638190873131174614268535909296415140971179672209014110370919810944879701250750766990073850098958697483108950912761728541701504668121002258098815489867188440004260476672731956193887302507614616441903069572192631819008753274479317572594658375688799507068469609064416046866676483214149962101361920300220534659002507799461518782788866013437385444587865063377062294817789821850391859556538603919114914321892266623122181878838294007463390042776915928679512507151982445086511960993020838951444945259850698761679436413324742269435207978103369918401463602815037679093475484609915943042717129408774262969215439056994033243183184378738661845705460210546062187072909258983260802984646756153821434840892299722044566233504050888094382226521068966639801791911588635167740747560367674633649242193347961475226839213849942361388357695018383072686267361892114165827965517877970984833647221061141746446805756276993022202062962262686516780807596790643351972741774797562545380646655609798021873375199365375597292716862042755899339657963236774300556998114663566307003960018784888376005485010713908365385572428677590791666239012904526948464753777908836064379192747692118737730654154171590963911236964468613845250965085921243819845839954422897611697873137230063008333755197333775015218755322536187752199934640160358079103899353349297257138680677188587494604795524728818743020502824903871885549552945375074092242874362812872382497419104825082885477894282081575890821248313017019845611418883271471757163984021771316884179013253993275888148469122741423086321128141347442669998381093593541705525649222606618224699950761460609772258264597564152350443506384405354132960047275096365703873691174321883541856088819801165490175866526449877704499304919976283827410307406347346406789224063462926406627861110324720004677595233051071715198542190336689869461062145563933167450792315378417827641082115099015416939719062322048845341141822530534938954910213013960389639348658361886801855233777490701772845741297005819710993397374017237733427984710300889851869673895991487629887914727227512399408624752759961031640050995871362104980800213279741492804213249709073968418412360960687238286255306013368120167452890873281833019778100370456624915090434815101794323547174663109449507497692219088680067893047025503188496855924644455043409633916173107832044045332742059299545991492916820599420684597551432256277984079477196103734376258544488005436223385381073990216514493819860598248748385442525203446117922279882365803110734804675973201530331588838881423059414235051151309399356340359786818736918664348925882851367863034952506110988509991950625508928852938832429201680556202192621582862916176067507691990420725767558723021577832629094093446068503357613526432956875851419831481131911875612662053755025380120296017616871668484463952536844349598204557789204979357455939352244321919349042837727545100123660318346192952438351354086274144045114421559342668286863368803725174942597909714903865822763525007614976148611558612431245029067530705290763177869547364924638279852286517919591566856247004304991375454776573981239539279608248782177829535053230351374108554260464612420431165878905514987725411433730696263654682885644824954595614823604191891429681117455588019229707192328114928440691384923616282896563620143328902427998517581736696411667912099283797035922975970426936022525238779059809399647719102683888522567342207024416401148954743948712586109029541055852354988134204845338586577195050020747754973373304327373709121154606800361966026033661201952237839499360419606322997868840240763404668455652295404724616166272295663221157179099070097977610156069481824111514152941557943980259149782121879523255478889803245466726143544527760632945929182746966688530668441320148323738111887268338645045296681181300217754282534797962855869486105673522719037463097931155418940320152345632105494888716866608686647731300311726434655118049430671825511568116259756577282374231375470340963935298647388368159996530997969530018364657470131819911400424244011899559881453684697678819533529503733823098846613612669413320849376902637199851034634603032390276468627788595007778320673389447545676987188577826740459930215507071663119198706450923509717575673925121000618670126729743095393796789404232390452014589432801363306668867283173835015886626872342574233674890141605913513883459973033912548155049335101378803983215814247099483448142093791708502829005800998766490898987863272372656125048982538103398810010815765839419647220741369207776114989933542699993434957048228503807103035605768552483018435403752911217993192360352276797366193912359341333870859543344640199514887300709606565320408761499618781129817933880401985235611945705696309385809149858819950171607503650860388356170794431214198962288373422735187188949645064998995187299171275787502664659638814018296956745261382886899678094514734992230448895288843412141686002426738682817840378258107566000172921626980137306726098911194934715438355799317043130382632684840159024995684995971833581963393502160173646856306148177161600464680386035384886903546846610923993990682585681234144434161082026139189803019305865341808360576075137246637304179742542042564230351247258448993143531667291119727362780191456544216061624287634627894357286789697958335352711967137403634791051881590880639739137083654462387970313319769733469364907374079084750913052817822526213406820603250183400738437990513429835408181584141290178845317110431564466450831062327080674214202071903732851294408794081708886509894361032974913086422305312497877729861419098631715377088653697108086707446639756700447163799166965626027470251423739964284012278138128769802013851513644807982039812282432159384674826569773211187897270152928138360497720914487739486725564847683501591273836030950174640652942802901104183907890153952423181802472529032634253850659151996707447349625963941490037300973997073928690259450326276876491668914088144966272740610601139940865578968773739006610435314181604041775014820393658051170786426858141058144180821094725637158928065501484861382185717212623074710626726095610644094783425693509499886759166607222342616346743228141629316747948224618050138252815760069795169005414326354328439789588768656401522550542326097213867533476027908336809020137769904240686462250934895817226918035125245172248553032951496916760349511215102001800208638841305353456160323881427682546114544495674314304164116788378567367569985189349312994647666851423677992615852136241373641108684954067421690870227726316264596580634184605491274279210982848688873050153075536562460265717482922368780316331747483639274018995160619731671431571171216197412418906229559621564832082905995220789414035589382968822466434890749752532436514181405738962523109084263598520631716193613633737845475998815702442557926124810921437888692898251885350517295775662325235371711078404960721813429490775863524336792214574322502998257484467801732837700857046377375749901170385765633391699127232387586393550105568794795430418586480926205033918454684209047076944852933081052046402735296692549385436578537022722574199675821073366621116785969360033735434136168572857514219584383680079946217737172305102989363263097544168435474253292953990431201222866346024864531053830428037018368037302793065039509670595944450633978073591590061860678335962515370032858398957529588782300414420399883156470392029975722539165331588529428352405314720975252566552389397476287627703016786881982059819437275303271002302952812003397194438817707119917535430895060540848487177392835904842724225616576306227526797926039386079903609046496748088297903650981940879210378793601684853355841926994595746728571017069866365896806273919358557700590337317753137972373414410815641303004461500910377856835347538807418794698435407102569375821143303121885289094741320571992540495833746579062315293945408530181793946674489140889204488257808330946928466505770141137070815705007030923595665972236772759852185317823672007497602124034512799551170237497478370533211291581029880934841308855119993588466321209908023573480378286632972742798058486054705250461907368622251064462403591431481296887941009932864684443537252521717232155432169272097326674583548585827763542661254869630472511972457965844056410598435244004346812761109696992460516242141815281426978893114654549065177986088332818386504294351794568407785277361258873731022403198355712050670300714328744367846831262384545852157623436518297470799374606945753466833387635244414667502574166062146070368195259734631788052145498458320460242309265219604083239011979095056529731051453135471221411719180347414123635640336978728023536905873208107297422882880948771073493696243202726924206444552243115158082618983563769942740811169265075609374370025349629866493497308030269670743315602061383038220046848520624857511618670655268979938456149965304098250139390254178101918561177331915261551286946452185177827872770227418864124898790499566973016395776992939086702969315280685342644267988544888421525631316571247279316238280467646739088493169302958295217727692984355413133384721607085156221544667218434432780881458278830526884519910317042303420357471442255863784502766601114186553134018545175889693475476522792414112209436287170016976164885827724516536797477364523311144697082282260966145952632102927826359277355285164288253136459897199085268653841518858611676667381405077476415246337802077393729807960576001960833757666345296700833297509880874227382103165059107858651592576724243079760780343820265653524256867206258773493313815074385547420722929039513554609880307563769648380893257195588483809502777059471513079767091412863598688400288563744834704418218915037541496390054926387053075729173979969219217606271816985360868994468521169017184513265712904920975532828462942554925058445314544234003078826400117658124277242884256309652172603910302265183370042249790654606288248937574880573824714835885048726506910046041901057757792480723440347566304778550693391121866225989421919042830548523886794476981575083511588648883261542967665852675600726902139461965533642268566305338755750963009182243287716974091850033930586025158607074475661868888314777797822358985310648581652183609740985957988048811484268335857882804555744509569185526392265629762422610966528707432240231494554743001652375383717646867267419517946198928183448885048903088792981739830386139124073962258405784364569226194507133161574273518063560779980549518406723027418905269963789921981559330827635889021578358456571065179437588438227200126618252041451863817751549779821123486602543970065716820666677508614222757987733729606580133104356613776592208887439680889956447902893638693007515845935575040520833946342889946786092204322562849301268180699011430389444847688480912044222839085989184276240575733886953284161844557134591157412211888397519926733423406351474349413689516471162527113863702010748741214293189665732624034652748412908976728663570837842445132886743231157128178826137094038624547685715623156453419961052859847697363772273692223003311746496397444995263090104815601745667227913535586011972115007558813862355045704151538874253517577347582262174822852687130992047858522063172153751847595236404868988689432269555461090355980702776412631793907470619537764611468423177150559897244854240269345491193488747566039779924505971040739873405993251929173373616730676556609046410575322705677141519917044578411808553125420626063702195185898664779171916205969076866631154654736220652359983404446937234918257000367146696914435965057258670177126232944023490531080938944915833716861290688903201501728667466240874286182529629870593459944497133201760967379389482436898160875858645477179810241904398872541452361802895575959045391459120093984524556563715431168599142223389538858773417779231539576896415764737919602550314821310131932481446722422686715830346134265441187409972900833372299928115690596757218182775484181711516163382341751482205979049049405569263989376179703288762261159962520397561526019633507117123168631602425566630026198735757737849675439975969656561697883611615849610439359857334246061691044211007399792607531651994612730412101303006386709961061531573908604841556699209810523578429452691007534356233039675895591093506174228086630525142123354502400635382172770996637569456231907668172932339431036635343680675826362545162209202321107488944216998680328671435704329361730275073150028009377147986017127270698548207991612579345959734619589555404090887796044972614492976913127420723671305950975226015448186012269152128075912941435198337372689877759731466005147715650957468182271353599649278636815285451106999816591540193459184250226953809408246529148861897705186923459101014095076621348800969532793156436137124807401236940885502715688493895115507070255833576687512273692065937812868398710253183773106390201823413906983692679673979448263840179399565896857066695640234802197036362981092274846581190332051723427202484580654343191079284520689518226416378344813925439221751530492663770215512100936200232363050605704145981634377405219950763861432303887880956689856471249637003885842568276669885801226955791031692356549351987224002903339436887752691816258454449210430410301370353903442519466955964933900535565516010141119279669962560098441954445145937534625345382093882186958671351868729987221807282045667544352070938634873687173446766478916640993101200471880262261532614891031472395536663023380031949959750163590465738645847610285863873562069784126134958645995743043674865738290144847250350029784230117106927915050906414346864306699055673955938519170645032929826971139590246970728508338811859955088544497161844749641694327720906705922612800050787951157076776112513604419242098634331461745470542842762031704741118098451199147436719827060298583280132239894491105295368018471882678405356014280871755366772258877920381481569686895242494237880363604882466045843220340079445197972576238184329275349636201197008435630844939172763265631314668993048471903802589618935336666240201317324052424996671869704269107278929524175856417123786332866513915938215830488105996473343258647479361958935134925685876474150239667245771205381791147966731165211873841651123323058888491096496375306502731537874228522424501372024139380166899987258316767078226203326894022884193407857257584263354450613666816751172505460313585247348494333544346156114621180704679049972323266803649047348396968982344333374768520880810510455723241495283109489679897964260944656792441688339990663849790849550262020883119502470253600174941196436076049583187595763175176014200470534625204589573527076828270373945840727502374580106390646418184950564911462108761989825529825962432183727016726162442917577267384611080252751055879451761274335519603283538464980915200494071151434352333297274939390872009867676832006731222177137190269425140158581822390891885737660930708129717063431391740468682132105804846181086578230064458821572892515570094530426108001913403236400744800141907916549552372694659563833309048659689232517294680162413645244313806927702019791956121934984613678596942594997318544755670647942127117774916956846565069930487003415515311979584269827087025946399327324484530736554092665857708788085536114383450277400174726175290700103958843581303763560879881658891409178409558597699454515258724988961659113976972235641815850199671677031574729393027929523034949139163005331418375726111289036478198909000730302033427326457421656369166158556196735045926757612229183070073347149944220032653871680204198923025615885214227407444551449312353500457829692877841703984121843491340161368674711275937885444869407376290471871009855390349612258778661645067763324505224548065511067148128465909892601309345852693466783766579765900399545824970983447448811088317528694325733089967425651570184146200152283081782274952826090401960211491552657936917009481309153960036561722080206027427577434356823166267804525647852474333945262512246116250330233344522338096449102513701074140399647862759005626716152885940151272358811539965564731414475009332940596726845719870398733323756617106250656118712677198741576655379995666322502452730144059077834783528909608627324549038716824135416192782077843806754777470721243848617143870317183638814091893264935737535080799981179742894935952781076330184845272463105923075599938195061246945109162478431473888519652534796890016103422737993547000551960458194318315195532377863392714795576439203082139254977157406010532767923134247924987141987828760439299078236284537271078510204001662457027695741195694476782078621676319637689098627875422903474209216534539462394050749001865787195493456807530954299062202836014660209486911571043803391487882208260283413247979039979611822307457680083871534593559869363169511759331302179610261378194980791925433769768838539409407171619738441002170840597876544798712523425983920273746433651754149027485946480212753312530332610444738224999018984736093500473694950194256318659486514138682438199538405406772027596702707162571282177188422877935005789164556384974006667535951381885951604308034642735703641544783773492107752041195994702322432844127863726689280384370894168383081194331805832461193347842209045301120824640363416462186877323184083512319551157106393798045177983508439661953830502830934207698123009739425505988172843070381642703861579110566803190299008355087846139790017868946392152064238413184927346821330067974234559518511858883529674905588353904976733131231457793706538684024523128813041829203212800164972250352638834224565950906239629870112347152969906259682730267116367609196827978518134676582062912786789393961243394821849536748168036042690382026451774365936725954839469422464912925564543598073425873580180661067360135772178154736569466260200270813474261598567933290432367747326685952772121243483752129827121240075079349034714780320508959654007216879322989530361496506921098928841932233678445161019278257881996705539496668755679739457269054650519394881278056883503062414484287955353673109820612687107883414929230795855921128921033289399032671105509592082953693577048100194388206076132286347569365054808758314769075225369595826026273908128560965371854611996644639771359284382475320111711854343715488564514939819171129474517725190132521592393250211269487901696925024476341389917389352148867889118943704095667195988660660508646177433692682565330308420113959338366860034810304917183746033564865485169803016242899843654571532624445283913414413773924220280682886801105321022646800909693556886414552246415475628478580977826271766081138374223848595917307649332623417511832438138098194040615514698858744760807600608623931574482661352688523500167740328892973267696348020601286608786396282147817303139207839499800284808062129592085243886289469306946012323053408868806533955380226037834458917554885101312259589809589433690578230517910387581269514878948381032519982025365304640951656028316980394070776201677410801373421730841724733580476733010816087911768483257219143140271237838721787389407564138040276614974302262403253912008418873086156956537769265052675943636408498419789531788708798269977843630482875001013123595019178081995708592792662192929005196236775887312993424684366575702081347634279075939574681722493067976480381931104945935174436658588735652711712025516676806901784496475398261683274134550287473191387231192485639589772351820066632864598711367906811562506106402434728187245995497876470491095344282639118566332203763498934602408659002179783591577291329757307713563023523515551239774838801295363523871774551811403936585323091167948157232139999297452860710341239090779845515119415178754886163304437232746524656346957704592260117606916303121030197047366232396062360457740584036968738852543539638905906783462790990373369402536678299178286414672317279827227940071829256532493396956909714154929740357007449191718981246666401134744560852740928718519092850334508061500039040501600215086716743054550793383134548764450282141194449078336226873586831753699320107109266834329249944884749959216233476787493249128046927634930437107475090490849909217675570416659738198072312512709029917926377098214021549628277202772678324560307114090811184375802733535058719979451595908400962330885817263840121398638189158170783979828213797891907791130884437695821544351391737897004995320123772964415942766299096017226695299093558394526062088461209326382331885422745019896124109144155909792072014788827625145355066887821293987327550817475084548696730975485072258862973842241578695213097145137318260727722443164097205855298805937257224249509591700168343923558935495454033209523777355353288433554000677712962288603867939770563566790008914397916056297630183690301035649300729664708798324708076449486980756578642978859564618040731932583017493761096381571831859108959310106867272870845219125049109238771159856036159215677576088237432870924050827005517879919033751150876918417656777650032387824120288238468152170118125855480501128387281086084109991462032688384136371569987042558926456476463821169636923666115814863682903796530527515617625480521496841022442459820184971695903216573185784394710728206093302803472355335260566944001011361142242378758700285671491747799141465986829362647139225225774939505739853807371681579218930626964154928667170898984764650472500569721174041130823185723395658822943032537103603194775879852744161447798723405192080803757791547211157025054209449194309611374887752097933470015204004642988744244351532269094013240113504356124802350482431033810030105401745825278199825034934336188628200054529295630043439260920695046642312148292577852544835111265706243064805405712500346380296403770631400632248950056730789763435333558694069351109531845098755032395373784600528523026625151637347655735423054604174138303738983415063442301331736857392661926464255149861886280945313843911732718241135835982986591909599321106033400507483634899245462687509392511842207565780750544464639965237682567504656616469441687403733110331639945922509115598753861468874257368099566391801119803047234859173878348805850556441084560773007717367628362537173796449212854495674869940238886174797580766954167233077758103108561478690986777220744943587844737983697256124316134282431204491588475652178083041239985349409287512941092622108637659791357224129927549311646035394853181346669803924011293902866211796252970023209985842121637716335302941455168750792617191047149846178678610366158505921041056412924856983328651746658029278172912798915195765350094895987942032424862403849615019510521702929626733036582680243428521995865833015080209194390405504233413047814842556763554412472019761736116959785924242288492583985991196899107726437181505710310592389188492000650895420525639928634599069714463021631750731457229770009229415725589219571761092370805903777656906134500931029374965629664917765065390077140435365650499124615157218764400157625896299325173179122586822485487786532102385870817441245325782268006083378897428331844476688296850524499075225065916603066804919310280230065240868454146314536577412492879408888816098101313981033006579459812800176157806664938641600477579898638160542768392463134993476920377692768830634400749796192491029145179893345043505100488173726391738087217614620480801430440228909743051808244181837061882051284669218928809897538939925607211149432628990837292249066083775723316831250771435120557362707343778030580956221700759433497868777186774152624464297365124817591103368448029485417799750580144307870752641723796635732110732465516619681697620468632252388604326156885962684773044955952082345645612124536205046236317365437234461908673059735714768032444742949828921682996967580515066667797074902272452865256909980245415808129772529877899022682923055913910997865566670536024735577021605264499108286896487885516008533463614790931405406510794178251843984947625562690249107631786918936726330372312724479956575919018701937030154576967888314024704003283229781524757474388819159302722077461197057348774025529196328921376954161495898497968233261185226816669253077385375013240197165353984837811909625870136223991540450644410878599374006176137044943596624855707634117690195656634497784931296817923858309143213337858459924910929092414538544936789460739036292633839533313688406403840778714787572332163245179967750777813087783842235142835123405362977148812735176026146975909619630608340582040778507655158840943127391671306433501766238774371342297999146360796543210756706842627391346698418380683052579975048935419287908609396976568696811334245593824444712506358379736891290601658719680687013689816366479379249238990244586342961592889429496091974929570562704380795838182298645846810636501088853486970995777109294995548035712441342741967627192271120463506716801286076838904534817939824144171543997684142150916185453239062180414764616850235883715394308219525549124035998591493601133047777954605640990401059822344596945866830316390556330893933989049383435651650040397082620873960545561364235441273732803345490047099231706640860773406942558584033915211266582664505154206917541838583266001710097295522441369661073151858904198908059912521725240345460901411837779193988435126478805336373605866989070950619109795235943441790680237722736572613223446048284137945039079398373286509537966528614502152321800534091811648443733750727183828431733347328125902414222725443935952432903202988268308111020029036141265738991041325854448683670068615821417728822729268479167557953726706114169889217248487237654885542095272658296688043091566850863531869002100712057289503987138550979511332985998796844185972716251440859247855573421074562771876562608436355490396767190599007298013024072107486681730709499633075497008725624328853317969326418764512208099556518817083885545216419805828346552291126778272835323305320666244489886745537040153250494649330697011165941340599444782397293813990685053914298696268687303681069880980607998731641406531465036645307109922415369978376812591797665316900342252156625233786463273750973230857370015918794369176903407488559475164160527797855582746050765302336447984436638735272931440741213665577716927036296286672073491053375287589254586480690888726627554393908685523556388868004101708645650836811430477128396965573896785394498171948791048784394855262082848854687913492088455159571835904249512526053883297871083472943887682662738333200437138295409065080696465924721450804200791454501725484363499450289377755757622339052028999478967304491325212873720350669699916533564815975515802960802112530841814871454259906081619634308969860679284566067960567742832099547904052789645595280275061748007904957532904751393690806365817139167250278364422349010146100117950185245789420056905349840941536797050662469031157612104333271532387539197180342808027273573367807434424849310774543521604871733511202374471775584072549202336338700894472848372418322422280032141014911799646887364862687179417659474408394605623544697119043249917623633599979707384105397771179331409044199840483687072406496309950341321704834856690224735291781668589617009378784904078323528794063961203905966965704747044120066024190957801209514462392452039044661520886600881508890299115976247802199981412772225774048854526110129542024706394065655092954561121179214506202316714937695253468545203958104549017926004666335156579411876411223693254364834571876718034458072928535736456955881547711883720816983877096193712280230826219016460767369110313553945792577852860747316344593258705419722944073673307179737528133029009754264588561723493697733444383419527579619201797937133023381153019397886980807204461353747614340029959808885373838599656866134709980048608059936434674491536750037865722249010741066275607938105592017458052767760643757641755909531392039350171397169147389259038565426549182559083003035756719555562724574806512253154982560411684957950165482251233442042090691137165101286239541344110243143667182587851677910838281408979418196772227782685225305624124659236206427173461430254214849444027236468744414015120008845537670906759059350760029873831628328187412420913326254693090090408941936713601542195578649318562796968860011774052312258868392967602697781658687651527145248136637905560635047604093895549304100784091751062262940587460528087481789745310909520725740204160755799253199952894555982650589984743372059692842862440911199571614732529522098872550825018909630493201870114010238618113357570177185979977907818983392672626058175861719873343164475467902735822447106275788680842596463887273709411550031170306782359471085501535694785256569504850460446179166767925178666803213893294521264467015119856506552919750963357425158161671580887939528115732797234094388250893469601672024505886591978177914424263699629211667017255362014591334535159045363302694119875699060678040467942739482484021732463499060542118849292673248144718843778365551550350687162206035710380818109313818069150093666917204772707924332814488700550145579227296946129298450950419324918766477736083881076224978389290827552092793755802219140432207133533761686731364211193981968614755770008110835209945692450345519559496155358039244361449994361826663790196398294061078595233999503376884984251657415159168259392251202940190021166407697120282232536410202429883103108820265946565630343517552651981846178301770068411971841007248490961001202173933486461854308046843126821058051277196462996988153473633160377464846966417332491897297367439432732250887436869697869120070249812122991371067419842996636432473888549594437227296459213477448617534261853867587224106801280135585647268502721888655523326116378369726059656636251480125463645946393663107905124227793352229366605316312298254194589217366833329745207170765468547697625435478991285820359227092166564289998074874616188933676127549620803555837410137895369629273671421060858408625015441458855967889286962800533410291359176128673168428231062950149456140303664270456679932769331332511866377015650401220756782527397440901399657604531220764224420791777771469556247898511273080383543060226123575454808408344056451748103915654948492832896062673110750983104735493377064652883959722871547853804945652559612911279511786931551221333325675719263068193446878332346242935369374884432767639723981067006622992761738403574186843136970010727012915431576317904382908478515584356187144803671988835576390026245860157607315332987217438864675187314526199146572857667475654672881194457392341372412487928159754170866507585051500571803339065373959813411179120409764008621888751559135407349810111761758490204584264253017597771839718162607077180076943266318941423010017226042458804189658812747983200260915872138252968420106114276177773441459978138060264436484862053199460006878976194401841662125419700323851506007657530975118223601930006896341688468995249487141579626852082484250601697838086466055999582708526423060093741217490456190978114369682290384296107710241028039709016860365064974959231212180253030234083970912792027212775003179358200750293117799624073817451275194964934705423210842590657076129513814053778426036669116907789469539658840687610172400170457262968275042428991382417226756982101499682736405082951245813114035500007722308031076161372113534143290473608256640269876754134923228637066083335807127551522158636582937246375403618272312630864781700084403866686266998378252345277393380032699369256995818670721532171179643327356281512040162670227169786351572066028297368348010689057857212809075731982180440387266457873198203782312599560938601439762129014592053348491632080925741285955523551871830584056583591448798829043661605365506385268242483320313428081770968705599748878962506150675127344961176874279815016170978924480453049759741091687302620900089940865856897145568994794026498358738893757391892135875559494410295661408008477967332176560842708921038742747942631173642420867049331506106270285623823767306612282452931971144037122783917992898492366300286711740123253166378833960709845661704326952851720297804196902706667020203858191022075347173074578182449481561251123068976007071505291656106710983176901933011123008377196485039872474142244588794531087426141722042722687391522800091735128584939112656494113938176869740962872611412868563113030323934818362192690242948851995201106625019787582065765770134387678594378801638091717526510624449710440209321576483934154232536118959782854549123570271353810692728169670047355970877623075641732915464182850188040328443086248695262578791528208053969146910049718596648599149180452880481543156670960549860238729810156304380089515314914587571174605268182291594901225671703612383695881706448514997160231586098109374019564021084101985188944982766487019187541849238581850216578213450328599731188528169665058388581943798035990116350150628510868857499997157818200847777007740460553695255083583207044982306769919382442904452449048237328768231994216049769315021376549913056623519774177386760422342777788677679393676905116003960148280571955843959677434562024889426365397286340743258618921749585324892733559400533626811999431841223978299336575010253601469841312457276174198292901495710802894246076914338777711006577254121406868841326977471219553930504533599276564944818716859332894346371224881796098246045151714672676777764544572405190733916008603904886323291503090410193720309066091196676042816525056268056624660922007210394459833136040736221081175479947334013612480085397457879922407411090145140221563435168751641008341196743290546684509191979460956881673719540319271963401592154280614027026238347328977265157877999809847893382466951012600961260017553564571059031581588861327476485052406153867479534316222402997274510239171932295485897280278386304473829801905662285146096557793229119620279404415363075521808933823075558433519099776017807696335981021115902794423727173061231842702769860394361232797017956530779785629474621448385893338576317610826506760836551146583368554203353330712997592056567173596947160651524782630816462924764742520287343508519395892965086199449462369542358540226683296677970207415556135755654599088230703449167504410633089938155643209299381356662034021570902098446031672708051924108083744698134289248041838864854173211042745375467267125423192488170294183391501879984061445448644310858445220791545610774495959788734610325116258492008926762468866227097305575608291692066269084288449402359874253794595863500303375191766330683265295654013645607978359275528743496990291842919888192202307853816081443565651503286229159738436071044516807770224821841052446621406971703160128802881626756904753250381268716338795451504024272325461219924673760999747877581475559634661479097882249799821095408068210800404366436751671145831060883276852438120349324617581620273412953422698175798171403233710100680346271120797198159288539689115956386036109275195659474002169051261095217054101057619865499270641774407055904111689904269560318816428283627964603727712811980964274454490566995658456418598233678471349351711069253611225651446679604835057179272860719212500103970600538210262072095947204806380494361303936950640878303019570998190323746104760337866500653090307186460710996776051596004457422702530285071547557229306494424847699287148939327063207502677402042106777214356473670214516845305391080006239339878702158154801231630478021880107085418001269681825943552341723412739928088719392011436741613011386430528080344372829948424120584620566553552866776584851629147983413222562498288835652907819781746859427298632069064657626111302256774591470630674326194286661001616789334876211026575810423052327739479996750724074911008940235984078129225919129109643326798289023357658425528439854287785608286776819367886768726685304251353186258252507818316731511540524154737554963919898385313658024362028877477058935557462006479261496188420634380688422222919658776016278451374071183972741854873747758668825175868981176363071126719245154223844568521396909260568904263562772930446631295271258573047148367305994995797230130316668885011912381089556346351307442226807125619061469412652064010870875030813773566686828683081344494499941197613848884443994581112094856346792579966298850139760128912463091648722565706622269375113075021301618065580585672138928706898348198769381174648422733193760313231761039453994078635470680240482314565688153212086784084356634113686034225935751718157372944936918094165620496369646200500817110959088524623842435105722684948201284250109426370112010069875483731073197724803093995711103061274339785209218099997191705946073124325354316863414199835246038817107075593179758006686561210661601306920830505225797011466264932188369818678717801926838692904515907990781544919432172152167425903549452394010618296087105378348708388585655566246421643223997358211552409533168692441383365446511267016086146919189511240564077581805613968612526035471352233161525983332085666075785248992721337070783490322952242180456293375932825511259379004907486673065009069569628308071344504801081842685498349301189662438236919328017235295693683363711954156683092734079671445502654542972294707122169213715336919027617166876671685512887632647881327721498795683326439984053476066063220970489302264334583743772514006670590667620727740341673403380663313133700468588640020759988799544679145682076447171026108907079084228376673407681561821953124320463881049223351463784274654107190259989255257215968767906866881521105396789148976678510574565274727474310134371030740770519794657271397955129309079922224487520842674788342738629300672747789515512069264819553789338634341287991306624113365295943487879263987671803666064613856683558778044451643455190277854374194065251974478776677860791920209231172994177107283591447855964166778615162311132322161762596666945563630914962192585478620178118128899299517382463319153590579563706033437488373112688346769928159790243332356628711158124658944944850057675597124004249034649266430622936781192033276788634164311318932593584992297622150370876500936471024232021486340216598346882058533264814845436853225503182034644346764658892530528532865514550557489210403287241581525012002242626962457071006612547403759574658552223062232200746413205345870834767188812401218654973925421559071014002773822002648689749615858970789708199524706637612558240905355795070811895363683116163293253338747953137275382083138438421751914341136313008689954497602872121108861949885587442232691682948899931452576861092085140570585645658972245198911141556381107574890755079802462796893774124790686105861051231641960944907156784584295260740024776806317227557615400129398186385647579612034488104181806014578042478072007544746897579099321772227259282116557434381300055579075824880960948646346959379921173783418300370435210865023480825560222609715042495069650820815007283783587119405498475034639691220399894061849589108746972415302289337518717423545865151904534054299912694741796467936115639446729059262743742893005715276756743690963818015667690299865201372615236021464745262672816178018924845097101654748224556708060996710371560796961816244050022584544154323259352259751081162395476077302842862472312240078763168358436175116217924366235782357775861167794848562411942467424861305033050228382784182550871008554542044342766695816351235984430359806501711913092543913407335072741639860470567772129367567181291930659875048408365049218748518078353482615742178274728687171833446218338427887846333933230135234428345882757486210570313325834551506896894835486748341292335134239420672052456403961860979927670578114932388008909122756631079945490878815238103513996164458308188908251021288486700837748043353511173571981897174869347032032673413906938753159515802530800022452864542559198451554210750360171790489846256354816000522411899723589440314756741276701823804692412589807904567327502938524905668883009830491455522111236724605492791574780764522810779507371361835410375437852101176686195543911522932486594903788175092824111471388257740261684475368449303448636749383010946377187787112027413660031096777036487331871201799151969426166165343392313820037628976425770775319733985897471912674761957233145525368714475892120023106425567267750280212528361283223764526505581625567573042678459374603703457375315229298198858114445646552551887709070155359081311747552079539137394767074333336063971968343683794427076756268182606936911034554464227790382692636529339594658898393240888500746127274309302557841795329020995116284229118238752647384724935660928908502376668004811319562613438677280495334217880845093209881684723846534354452442535716593101317249888668773846535389770192635692890783496721980370371752228623304334482236825881582435572649734535424253809408166664466100790495317883974373659367414175368160958028196103499521902204598743378270534320097859070219775802434179371828476149739342427220839372234325082586422603160405468143378068915790629735675113313894008492839658049989733812304485524868321378537226025423874014843837068094764189123825807145170343822835375528147065320789514868711550103598590447545009948723409967335700862255036620958957610299629166371967847949882435195634562327074113068146978366544575662330092278399254317547916211801914047809133839354661798956434888567670411431526408356298191529219091286908466902396864331929963761524946199839195533419614392800403760828601564586117808443036994266373810934396932197809573179844642290805391705438763636180350683278071220603512074562405544169871073456281408178278277059602865164396484787935107905092449532421611990121761260256158448215985180382271376577595120752108002136554539507404330195485597907631626267914019704520835304793456340232225414215370971663748434889385045421247461561362366562196985527258266180554576622323279638353881463245188358871908814053011073498556415862838128813172659641614406537773818112322498044332622173470309335689516930683708257252363639752193746184055963550494282766250967952655656849550824078579815872724804812312352501162327343579947051051682428783851822830929177130238312093008319042450663065788281507294824140476847336600741144756448985521921217008895444209674426708718248477905899941413157585408970642812261933516313899327912467389537925329413055536630841296968464477052282468220544830072857345800848293678332050601200260052002786195676863586980425882354553081125461828796511915745664697196212283657233672146111907990304623177240676606514350461798630148687379353691427152199733880319883662974737978327147088117458470545129375738404133502197316734542497153941382797957585100945305402880727841001209451292735746723311509921302050721266749165457978801565145874952931329218402506814197688035689085991711152871101600915550897573783484817528946904701847519329069859505992190110715115681018086081626740495450001712064513402664939755454318974110752241029794156182016898180217707598504506573703035363899967085349827947573459217501288813689903172247345056799592646016747069766979184375263912749795505126791956376269332412706336665624087667120516837201328830298252521961379939344860689255220144644561034916493548085640443969725644197091177173829067909915179624093102298824206458298642878779167635134143369196427775135347451642853431425619967503238278863839599427706988982673516043392469730233870199270615264816991957317080209239573223906754535064544605850204420536890136247277721089550109868238933247916258965664004788817680699534662390062626089973904773234662909838504047786177079461674288335509011928308541440033558569180427122877138855312473123216085225397542882598087758176905869531264220301883789189440246536442844620134949014148939087444233194006773741129481082164087583709948703083192429425234586225718486549048434883183317606582355227143850874309410575759727366184893322242018954748435997920004437877245883956090578681241417159007643792789437056113068412032680094787593544741043123644705767558034455362378686079527121114970084669660422297110395803783344051399491045299883858216539729585958863290973649810201788190513681815863566392598023694944385919015729013064468123250639191254638885484268639144653433345675668326925173167695239232472153553455185619665845549207018295750559668627571126883100264240885943612421678656674157476162086388024392793754818720769933454911840133819917674639533746598808658168944078403179979203966692153790723016825497974721103642228958313386406816194953750153959368633209130920078347059856544989931872568957197293184453401792684691614090281829953478931507399397787304879135467176270748540097282584311390239632444845749577505510149094023545834881227091021598242494336083649906458425050746251979636068320664697813400740842000020185516403389655091372070308205402784057578547929733486566647455323371510155550626366341714028769491332990105970550948201455062004292355803373939816055215128153165047083189669837886311597169943683937238312935328772007998272207111328052152293531541703763478568841810022671508859715440904346188291806215202890067438466284254387139362108109701565091248319032627013889537952983482052290542341901908715504956628457466030777261379078643214913648578318692342081331335907537041249397850605755209056381619513876907092415935219281560618990647359948037775353736444970902847303317350543938848068255310225386110092554446536286856221837195033899859039971192162204036286045103701373520596330721837156118003289813140057300666508081470986472540243773609155244273521268575039844682946882280430818857044444467005479319308727179020897161474453011537326112234825047711404284289345728276031096250054517964164938355882966425902713565192089009583456488644095880086695574419098078246959328019741880091559381164423412944774454637980504805020129477959112582387751843673578085065032582397492954395083592948614943323431629802066220097270765149964785803026876019697392642312354500551064548490055547396371090782430449122783594788000945728130375414028786810760114382336522190006996299551945392721299259236894220295970039596341276929475147473814922739315896244015690203202739548245382433424655968490541304058823890192458191385067987998049766535824960330364534560326570810692302370992571062324444495054342993944114140980260093472920998896664086966605857848206741574958004761751679043337830753920685507971049888738713397131755986920063229406787891938155695526092711584779177964492215494643506147957158788491822988515259498025484378698484048613152648403802733463879253839939329309811338142279750082005060590537293701881584550322021509754453990829909217335382371063306197422573547129401972375524602519391150672700129557899489412309789875246594963507913380456050211008272207883335264519563993083703347956330785933554754993671022631648455648876431075788606568197794104091258304384830216720982956031679467123660471899741037184228459641992285387054027034169506094165603734832664731904372110722382483974836454922437421772538522312159846900656784135915299099244356633920033363193678672178339704676030265540757393203497732609368748856310533802680247914410458254891695898075674129755752167103980269482890487085655707637729236031370775691366652261689604041330786252459891726981660814720488212035741626419633529582515210162501859881601937186685201918408628201364465225376695371319747109597790721785313958424618508391712487184005294448540594527327678753741483166707280431454071421671725005736306754648562568111263862405638617580511791027306445723065709795336320074778540714608660199084778856928560837230780976440074133991351225780578521082092864809429039515340685314717959291638293091800134303880026813731117725056059469963412825918323269517241311646643176435206655279320215116224567389900249165997431850540825310831497225664449438660123237273742922934006121525031693361134880764172243644190180266221765234077636069739246800158665511344442594887254424458308912716710444778385151195308387665083996465310766152763740019999326701945416813499784881532351425589068055703911783129399346280505698850734596697089097886259055896739564508128931489958681527476081513600824595465641753143571802690998014206859641610991779537449490714807543252004732921896892761324194514190429240846687777384752748760910006767998575494524501197759139080322688622182433187209241493469580017572355272371349129330194261557262873944499416549424044238005438751598283921029294566798867694442332126986799868933664243816213942885434895295240398719250261983707301014427609449746487703051085140428725548140760918850121921650182197653768020541724328566866252947466632461891627437501701582456477980240554277995642267608830574598289166003607532453112114870799965761726303590555695972209745802861368236829958340443914842168431306110828755798261422045780966615823169636197012856794548814391209598045675169169621404819266160220721973804599191941705441400959769058863121118111039122031221395661505875602621402679112800842230078691247191905338996554222250818044841721726722169149962147507371849599359064728611049869333327132800479704685501263066019346108294332241862616143693565658354123789811629935015647722220210568451060210489010937088404753480625433343364912340748806013101819744115687129843777179019207008926666849056921434183832908131690170476595640251415697722657129558283669927336887837079622715468486657105077817672634699830492402041202793730482904041702064285177966124821094552894365640948717041640531967771929170146153174097397560976930921268844229932877054901800393209788426116723370668770716470707904589566233622289784397563575989982256343852909577660175538519223449252744203373336945909308735396778555231301632582052294066462878984636597613710827110706653835905156212020220582458789901991685344392740373029531070746155336297838268713102278235369924691849402307153933423743248029250384731830080005890170020081752923383612678805313392699787306823509647850481269432359414626137634387222102972950145173792428262110316384025029824875160834765120635488071774538975273830241658526280510468132709362527896422823756038367001698939925797552537024851526305744756066015675736685723440552306799890271147301608101709065107649616505301272834372182546276768291203407489796437760246645292048565060545774592772468398290503051687077750890401385071438808661888098231521729617991124334984527347342216124975155636979746111601231607542043668877408438260363960598737396315895663337977617767797634263622769018682925303866492738722904136745117614204264586217292128930252720896776482067641722210758860325229584434934165261091662590449855842749852778570577367658123128787467074444970291289886251774697562869025213955137555125392424920986051045496793831193516242781371848123405296489489095719744679328568691360641979034071214973759229648007278335587970639757051822748243113034823844854445404631243682067604012918977836824735140471519766432266871964112995169615236525041063606377487940925713741013851596588299635107325546093206726065558393013821633072254522559486487175958402224034142703951934566139091479591818083116787124976235969710212068506065430859743461379901755686808053280668006123247807440084902392141307797725890872543414293324450381509925011822944709826112456448663935639024334401198627500697127491960835742897085127705430035569099234218276250821252370010366278579807156658911826614226240425967530673477260031092287809986273305904843416215327403738983407580532793892587082644225068823079997269482036558065587273387451599720116751950865709345582873994685665560992738281457249447199462719273665168197704917134807482021059568542851960300120865911751479865460379261135816768830069474200644042302233559933858503086129965672004024598346779681944115393153871724787286098545534324607386453277416308699600924809565138480179131959564136427616146011784963742772966347846432715514009749838093922518339018289891905021072243573433796713294540839064702544819319155463135879840061374838483599605481213765774525995297463337975067143927510838467568433188421093975702609066786179524761433159919227296321139676396338496903235735350148082820387787094059954355497515832391160787157036762690922695809079220162535575595790367514687332026779902897950875848923770944390880556395950537194649492205232860535312404535519151290102472009728238843956037315086981789913372382692508793905490836624167782317528992866229677502813959460829264759334152869819908273233903339039532285646734207166136902603897265851087337712747709782456200839413324284642884996765490851620328799830999467834186570949043264169107029483936347556141097928506370730105712285899800313721277090435752100557586857109835449526708896007018617456283103253423226141050623943567293880929670880577495187985656201563684198811851053405230324938721533503905129028822163179239428144016297119864919023709403169548300744832266249441029980990292025782709140630699214613721811453773420344422339274589083112482659514144119766038143666153797315083010184482574283337370181527167854605700873912063713613590217698519945577165967006414972278673758186393566628170889151877843453050679427391446089286367199816574827119539801360932644781502004482530996538300059786928882515421058495651694645977848734936733730869824916900891604548927094757000943746970075224599200174290950155696507790081145659259734019823622964753497310928841542655543884430001045873272499563034373151940456952987263213131495979947588987269622188196572430113412409413921770261789614882978185367744389662833860535782781054152875853916893259986435082975366296178734410141405148176535039987527709728703891162242432733583593317217737208629423044232908811915163193140692918081033033532368585967574261214824426361677667374865851131177312761010763898596561705065465486543789043185103953577134143539732360394029624199917541112495875029959037216624863881442777550829348013081254938158491812131490118693064354392207789117865452015551677495252156398060604745040496400919383095588470565146432926316905378748520958394143463871402799279896989985482092195637730170897318923453306210514986004248713239402590258217581597576876340787895035263176942416683578515577770528585524348139015197359287178779800644277878537522806136955569723268790009433983971837426298213657510902296738549529169790176735981017637097685653079526344746326870936915146581376365618576438496307903200614206807481964140092853861478734963360026851172990224610775957249610390649861102752203918564313438071477757173481913094521208387584508461364585118052171238491244323295657723805588982837773076123352886704670884695166866541036106134755479483148340196836462495620165966942514650879620171732617971419607812622166921281011303767368511145145500558802114677543434407341803223134396688048127639524008275651516649454746342048074297159308462194006891708221553300933575690225815652886124671216121728595548080596419988646029739942444361305232209507676123625109335847875054795836542724338545341439380929268133670868259956176645193919085772123745734918666236886813215183439653491450624905690531310422066717024054313094441835986858408664617030454106771805230739264095885266173861845602336129284090185390230275446149468792053946642081583294955751273111782837130074620687034959217996472576115753911312185213952100134857310149242113880172350889321840755755723024499644962531112088446009910870620895931262531331065620591673831152040025700903990950395396604628784087930880141638439414199159527668521618618175047628203709163369620702264670826706674730604163888725813364956444624108404484065587531117600901097254929660788998322665352035652377506451037976997164816041282311995080368165772825327175929230453711469420043179717326551229031250565691106795934825435660116979948737544128608102164490265785232031103627582574043000032332856693854934910097926415495709811333509311481820150606736894030961210982708872101149334525628571964883937443754732482002157539229670345372091696472266231464863241676521188826802412305397959693264024974579418703794515077374442656897326912449274043359121349604908183737130549583592357017646292714029587333871871461336258582116249050070959601655371613555856606971040699863622517693553736738617079076960020300477795900519497521083442166595420189454199780075108631759870929353144674275017991231400572066035461580493391569082768085997383083001809397695830973827084778073753206567749523482805175406920347165732285909576284115692825499622599042289459437927841006281970943994792508367296835257523592078587562626389552730875420514330131525417206500593464892298621965706509834436553857353001325124452538859419714143719700311345213801843410780079323553362815629369616179732797663346164275669503471696430526290822716608132223438892811642482039999940663887035028911455956742359654281903050373499237985830203882433318894962305200682685393197143161856196353292193920629045961163144789620034111081526765293951642610565446829865638989168119572677250905664360173060057129052892363320188543722911376577858602105065808393935260322424231922562775914218651499980696648639538810820442055026842209912941346030121812512665862851205110097127683900152256474427024296050714652690020742966640716698819986781464015041005212374284542192197082061452575944168948567051854838249045978370528609717062397505592860900503657105160693054211637877557809478238406303760654398489074070298637892270253491941381280184398727284593895449248342026062567510386743028872737466024065581409325546171810516653555860196995675799644961795110147985603871672170450887610127928361104519706357501131338772938147017173927709851979285597897382480453110799304702186525195573549345590216911216007877213289231673848236707546854990817225896767801884895097691476872141488222808974658225904929127937718459812543191440138201461468683091260913320646979138778255809388356250229143456566786130418906344624959101874273580269751074553007328254392296107864845616312818718080244862118240248664187340990333360555114037900494405235131930885584430879971214029194823400478245113503979547333363297145573136155366587816332526598996986006798877293956554082694346079569338098515594034493716828694240578450635432443174544666836471090017681784885666300717148801784675821891806322586026952457930940634435441649238501117984979805063027947452142206266488915793363440382249498713757378518288570562419694125335486030884703209951122722570509408021674925226600819670653435397455310493339172957218603572437353489919003290983809038719271587700276144709742409118736440851242581062518001550963696444183953219634993533019046940089112230842167370204340079976794949890007537967680969785248813472900886953197798515612943677878070638655202626414676684852678565582773716776703976255547360634338482668908118195927633122638005316437822853926646516016233466911975117316888620351583566535123830194151418759647562719840862656941170049976734696553545115677261292566408643062625729854355101753451496943382639739625515864020553271774575145547830315293505425768884307070221779398805900702000623499296482792197784152143796012517712448832214022930252757696762993581622923295683690816744031733958489317482093738588788264704300580796238279282207348019017949276035268064857970108042934112843207362100319049104790004153503815982278438492875133578428937484460981586486497930860966299485167566799874287299585027575394792339269815106310216403368616326517322818288875228542550978231108087500476561324349961868036139093598289967183802400226439866421980701106555453738704931249403318092525623177137733570277643431373239571485097385875430214834429261935044721707724157810192595833495679186315012586546337705157320183624266026498267789073768162764943064077669149306420370409288616116963484331095213199467169434638390408035596857383817949966188864789694885373737032259558690710432643790494452007884317311659109448670864862223171415002451057944894899290604694111985938476904363603854792793968645793048917023236979875149886302387896136277123389486637378940814305787782285821208220377564675199158902297023032389263760952138650982383085004992992607146323689587518841267434066353543216479494901857210626026722900417469382582770498776717396873700939932060745952748093915396701831120700408390084651796033529065058014409822164450728965254525494322459078276438001858934287780368660752511983122729980950974958219961692030828259426765668338474701278955159131765745948681712178288114280443752822135277453529656948212773341444912527501822474185849511859224045747283687889405971263933957877743297805948482828137207901289964107422820025401326652276343465723408436255478999208290660856535371079582723071260826627380268829705430385882681669216713056200918590793472054628896714937472473845430269840247360741165922094672151074404518834375855044503800289425369141524749357834869642788857545659117694253625589791049192028401369540449773473328968612403587702952140947950930738239027834771457809088689957445565695212259317081164263655901901576348917102205402811019004902097704084484777754243313471196858228453722480447308556582701244881264880498150225777992822650294083896281498245604793477339819305373055265434684803386065434426513180770692379328743726530432515568666853411118837702399216740050237394965169043386738722643487026130493133828882634994206961237770789070134158144464811214759808070599457976526269723398981328422331551981955621926679561694955947241573374313449719034392992621722274236086787958355200747137812204913416183446959459657912420416596571068441158164965489421065017956171884979549633368719489405833509819914158263433807178780865746998531819841827120651535821040898289858155815139709375742752493933986754919848047627188385990931776479219442217559314298956881687672669577222566928676658309380060628294113439407255702341260463939952675901777463466202935416094832520023588135051136293498161150863389496253928026338941223944050694330815566840320713803770312447459654248068097376497196021494022199008742893099787221667365024544454796963492815738979269955451302625204579570959218748766641768409034383543345623531939124022549809333261961295908303933249305102834926274528493396838750288997179846789805122289955821361779305019058311259221516949093432686335620041144344419354799168777201741303432732900133491561083925009693400913604181016881348409482869014647959940103971267605619351673188355005771994519584391306152727557397048429008450717585836067354127071164026572496673893390655619776445354145439487599245201678388597021033810144726614920425706286881185772447216217195254859211894440413693412387862997669590140430545201052183824360812177937839446545494176113167017992576150174230057495559511035965912748620761775106365088863009936052868567757046307274821866819177266975629148914528600356434319410145831922951571834928204350776648635201577341136010546887168506927684914548429446163911411046825826896814517833255095817532096077715694647498384656664351626584368564254539088631822490269857344808901595015815932874717701691184458272910007963746278173422087000568536601557639901118137593190974297960240796398677331630517884739404121672589158211638846192408134949558308687451026812988246689540286257152855559855008262800305076506576443734018051982579525773791588528629094695172265113688159251912646055956462736763402224164107933652169588909594735484473884891620792930760482117328279628480855160403416080598516459362683767119291512876375372154023614806720818688235573300232199152129404134491574305776482223140232675911503442031240308133935379629697750542257616553557099773691710036664489080550077142562581133086377030562120756749482463361025905577901842041243765893237974112281995445219197833970487140469274669410658526411231022104667097928586428429519339872793080902868962274122016442921209532272990535137085457043796299754977166816131173839982220661463436938968493040884665529469299684186032010678133823259161104359815400120264236795114020244443845809396790070873215618177972590694773329585122005799961341418237400221715555899393230028370970460857156164103128755578702427791868248615020587760386666084511239552608436722699769812642496758417133917304090861201477128557866681158605868275846613098749050320702293526972469691681158315710251075266835841178536073789416157625472912404755483745748676952185482136334410651095024772231479058077845194413730739089122326789975075365445657507918393183167498227501960070846882611546901492954982376204320031719054196074608684896287823121181911339690105640560975954420183421755622789692438717323507579704607796856412115184163298263582919110867518197611335242038781795809384409365137210645932136387366086451937203133180023537544713513941697043695669641774575456399333681407049873445046041219444405337836953359226884962358781484113963387818309123832129823868240037428467505001425531862979883062290756307595255750317426013167217702320087961820702817803545186214813400797334389535190463768436993480050241549215651870446660652770685266544829505781859520023378158862182738771035266756246505674425704924868548875983468946485862601088528351376980200520821368444396606887730517483693392200527775192758202297714817373834117471585228273141451149888337572783098289707227522529736660551739509447011149045416142380621517610792338394841440339766538866586432797111850845610880751298225762574700440535715052234708076795279617628397018076188044009787661581748907989080268069476522502886720286676927863691009481984783012051149422915643801106624532599835209449176032752352950217351023752772611669979633710982892687439953284262052533062814231992769432658316740387078563881360081413236759653995761364106550372583882892972123687563629607493091491989406718718654121246580216880310528447253566489663248154088568109314077552359903256681603984911723969319298400423576683483068456122804531235077183224757861448825914141765559165924567057702074721253513890008193342993315774584744506455342656141724227704683086932606881852052846840255435076355303370608015951139916275666829167234349631970859122472342879940796906056104271916673385063421142397174566718697502420319777866442039792997589451395913448933508586614318876008887041302313277836061871685026561968160536090776827690181009688694764336127050734361739991901414492904408328943612825074080893360121253934733704615619674690053249020202085525997794356320827727257757034037420426727383171641965778761779445203136408185485448099159115479325005234583783001155160411136745881903056460538726643167890681661869949212336248995307699684670754897786114635939387381057012510557777689479997297593502487298150282071917144672793381648168059792954395463648840116788792982486532364782235791689918047367529373618083546836950327055495424427496991692112467304692782908145975639329578511971444850988042363494118614507149238784253897076081796349464503679422225638464194906510154422694497573493860094546974469955798612626261538717785818796765035337494942368680019129162083475983975133814635557380387925331862454276231759165391603970197920201770093287430732259944980211854974530415626686734048689162580434220211656885658479943057812493677634838266535268562557541613764393515439888873806330051929222188306817941164376058494700937578434919759768837266805932305539686753678735806201468262650547992136933790345895800014232203540614529341872538227450158826769872857663402548764535382786970062404149817698253233449706813972880478296823059800295387854880192946661874288905121048394750323854233289272695318214640601281899985955680943198240346264088097326936550401734644027282859921422550433383866998259422549965904354551923614358548164544458959111269121922649307510882267339969880262340719895766984072898664355504915790605278693223187370554690130451225078005619965970242744934324973274320719690786726715022408293377421318267715924409983134814758929240777187994584187297174729557825831967255872034262073418715066968084884599940905557880403205471263917192900516672248749672904454058913974693938742834853893133499491589111109975555770104311821422201002905367623353427754493418698411620191732270165487786292435489958436268011482599327837753147241020034328560789675940376898920207758798478121730834426876665673978128361346923932643204341685950874793807643037902112358363678553103866648060440308838506932500999858638424880892696629091981020079819942453565502628670467576907141360065851306758340360300843547895621777433650030845859509494511707694625740001417250309111218411564739696258634595993818375643354971809309737972649300115908986482857304071376045547231442127862388013476799280746585937709092503355975139549937476264336914369783171198845522548415456943646917739560332171802162080858256022517033352756235767069341932411296179235268810112126296688101750322045367434920788885918004789104654889686050494765409328022639112859110753225631055593578801154353998770755943535382772347339696331050874937965644369384339560670255132864026926376290135442386052501683052826859726035046459311326231535880672026161738205406005242922905307800016323467916155451686498754930252971865966982657139624965408811243231908844412317571701971977916185388962416154544924788162352082123431216721408946585780018058957245547844586780014728530104276980295263814123964326967864506264812579843209412680057615110683764852131570500390877557607198928551921966153505080529552659051963139076383337963937392278840632274541272571829072725682412744669939451221544092063598257881919945261281046186245325150302620698925536081122658372351758639646993564964996779243773952499215672098896866220519236248475632739339052269142160477393963678591543961003035964763735043048682620867588271537924032296821170982042216133441398872050135692186864517570380702737725321011728470227227740063853892718345302075928233875716307760727088807812738804618854369680325528732307860586060740499569470225278659360788194678501432820406540493609582752990786310413848835538349716172964737557996500651756425559316611644497697179513868705483873982247737552199363198339721436371939230602584996543585792221206817404119296951347499449188109328876471763478970080091933270542735220895197912422959683570612548162543333611460366805338517668419562141935684570862571951635256738458193329764965762527388173649069454056206351561467262276104152731174886086523025125735344278035931256338646406686491174337863328888308047630760963426545623568553901977323588244348725233695962365530327955227501252008110001556688596804461013328935809045281624815527010934113068790629739931214016082029081835920833142816408315884158269884663572274382918804565081693350802532097406264025237850172430951731700798058036480205075633716316303876688162229498734935779256189090087077866156217152514571584363818873368267939736072057863710868066597510931025890684775212170543664728032786018741895249818082529435649580466940603785164583850072862498385944083476895674049211034002709372460294488519733571816733136466915641881956328551181982983530680721434747786440871694111493361494079347628494928262021812026201881828805857297921161384333964685552600193923346543880224611247861073510984027164118346690452620870685400362610773148448554292438518288467773916257143918039583255093920143568300188989052304008594444629761530433116895175763909597299798624419016805782627913432538224490048572504301287316762273121015224469787743000648175875926043011763139687050516432169321835046645333958453613956793220646840063441804972215569580000198918317685138064034010842234712295320493729632605752765825308983855652634437536388778523492942545806332124629196350664784134955936822658316490489572492857899089725120541499564262053647879251428103674140117517166660462399335680208954273384764306393580865496568949959970762798556929556675189161438109682877476035583971390744501526228612984241899385655710111628861571925129413922494929554962271036886301726940470094000848438403231848478994715740174699463659987556959046839421655831058558853906824584681171587807701890513831754428029573755830353745424740233906348103092089406104631404890103523880603481844542009624656391538320492928075726755974049551527596865798171232292693414280840157464449182259732608339791375570496460157285575300512111982437969854294939173480193039585748795085586323142360536128412370053630810751830451579902321385964291926493640967069499624037733729462486116319405331342936893542882889014909453864007202001787125423696801394919010600082854205435572997118765940507614263660391755594117764911301272576270004808624533483450119647990191924639651381497836602520712861333509048025445836794962033713838810036225147257248388765617777118492216064254223666446692289811803810850030532906408130290390497750305237597994239843974072681844297324643201968057668799558986119223490039407564072441839522258308225895030929581990138320867150681999111236908718757123340607282754526468996725576634246619407104148759788357985715603483032233165411651453183971567564343361793999393726249939802802555964547032373806487761924940790759593322324880722431950859336034850314204051971023809556987633077342293345856000975450642126172230132864506940197069798671461438813491276467408103071225550496774791519084713369880821283237344242966684946076345428246804173988909208493544796285000507981142647520449238571976807671262063887923550319596885390107666996857978709046320459690619435099161718261065831191816749649166471146080686617894204027969858613547756635540115901186289944323704882636111399450940293588423864205898308934003714209772774863425046128329170231959922990010947010088272534156624257277152636762228029834608357214177013990197918261981266600397932206587832895734082056418919075300358081658190236853222856453115297294242421204386680285109724493663579242128901813003664333223654594544621193417294582724971745078829899905983115976785452932109704558082095734163262867925564477806951115947138885038065206434428293965227005671042054523100403118255863031339726427115867342713593125836986142037751649856580299067531916357957497210647281194301286772448609110261392288578591008614540927496089343978152199797914729264892266092755647318007329135609871506502488751032590956301462215774751246656998425348649855113770191676370782372238202410795522906164185318315445504988567519800851867111065064359531747540376522239282938614288372662247274493870070050322465011759526411650688671905660450150122789867518710782567108809551022819478672152324402341862143004347925441082320827594537674111718939532331973619225599928173551197170442342675584793627741832249130762421339672163219566892484609347139013469739967369136225205443082745795791139106630423440675706751363282726328743111736580384250223230200562009575322398905998219301822487866661258262233483305594325278344091806700035040854841611211571345087408870978239539851541297580389822665385904377937256009975821385679640410385285585308785716028619156802480538141416341797506824835755413142284494116304120873118609876787342739378949626807560432764564490783955725898810271656375976118508887014929728050982265613586832686946009111356785875605564363458216511639753760799826828789345678603428413902892380096058612517821666993359652119849670603631598449965678919298339194687144941755843679626889449570080469794584701206202420185662715419447921607711100132445988253204049774728323368294407263540522163586488498529170198751074546615566048818992957312403183499373745260164740339253941983759331901000541868994250552724725358523729692786513249866289542720560401184478236899815420499509854958521340954088057156942405289962282379543541694349055185121515680202867175561775281761240506639522518704373488960627803149220314202100048773365572162568385364464795545644002337177762651751417705731958227306716604204291136400214186926156976520356810790710758858244158817743550501021935716398477445741933519695345926968985713817799666426243006301223881856530279553971629578113364472161336083324822448374887497123899161477103137966747888456071283220277070910580491250156334258914891803744876320345636468462458120875889338922168306322620644268291675759199819019673515837633659000286904018236751320354675104107642810108545996682646040314218261966899880695081557618605484849212158615794881816459843506880243092094215929359552857039160010557368026459555777662857192390871937269270542950548069092252762690040177971061781456278246536470461399788089347813017047176699214630256809675714675287980051795078542883561389592471450650373905326027860322963008296250618005663568755180503616426270066098054136057728390196982117362151685854914735656059347549967874517838165909768296310349602858309526137226784311683969231774394119559209596120976125965938663670253355030448665478123216360880509500031282268066962834299911635420451593761581250884632279207337509033852234390673104267327578548274594549744519827293621703744253772602515876358378360067414089566631331537574304436720047962359498023393998478432159541197155096559756562456998204486496586286945175960217006651336094243626866210519896926335174565435654286284289642545087397701584984352679679772224800283484762971097574385259968784034796252129361235884069164150401364469196450980630026144233155837873012741702715552246063828277927439749868232484665364226777258501022030064884579089215276559680211600303271108327311067176200977456318969910800292357303613821361681557293888827697819313259373522074533020986360437229065286240663462021541358827569731317211298983551441255783775178082876276191346055701622588527030679522198304244614866118669751545578985955323990949232878725606154800139933649604699332462686403508570340668643960245709990269960087303608869118146092427073675003449859846395538998844798864572909140294997964593941066584655105456818614079613874994202932153189317378570928439431827092970764590798718041920798180595701831526743293035843556940046602870653913337192403186947134832599779340901385928549513786773804085003133069557009280992272449579821807819305505234023393398300222544597499714877804706049711489504402044057215787073880361211963167519739076460900458930485653405613519438510666310350953911556384360637871785483842805605642988550545075526449277324952125850634567603818019693408444661318843590179106030019455109405869775190963312257612185939285697875332114528746901227950086982088284344655968305693487125643889685860532918672570283386125760252833912141359652221638526961225122490661906892055564421948627958137947247609003768677575883358929029875783994362253631620216981714125516283602788368089775238305625746598258224042457017141288253964787052143905962510214085477002893217059771795399412267593385131139555656952243216863171545754026932214674732152380036146037738711492431504182756750240588810461035490445980594094525006399593453835615413562396452117120461853400393352974771952081871294398418625731154085445479797887488116170032187232292624419999681862596677018777372867050458729981490082551053787926806124904834998006845606902343053095522792339195471168680430061169619198746121489366476217818995765874385832982285169752462652059227315105378610573713142738561740816928327163436621733026031598083550663321005108600683371251201239073921592394685585721928046614711425616845323538281695072133070495515284795362678121814638353615374995707209297463452973200732737465375413355368058860714690619089911495195754127195307125026635192139386365889513920551253026798920016537315668064702246086960523963844613418024464252828470915643507936497493856224679763524467217267232646409997437773123100026426737755478261424931094532466438960481343352163655539223526416188332742890194894856344354456354924288212077019744374422309016680676384712777282844565689924502015403000406437360047968119932987957969907036942461396639284729082652259205210017759670390775981546300539468289092572627670953722673152623753158592150300889678714790151151324368628080641130028134897565416736372363507390459065466689360948387490938690798746138742233834540111833448360902061010566093465828174677575682339074135334170725345931999049131884101753795380239618025007470640178205169871582668991791535961968812560185566947085845863671648637564975560458734793054818352281277057151191716489401623212737432049582636462160025399183231850298667665868863094142132342891409763436252734841156847770193334171576589107048648380367709107356876719480360950998781787376281723213521826434470362355367459676368912621468825956354271788872629436934602460843931747545778909330455720449934513449469173671041979464348632648553101685735146393092337303669914579927156153722375243774978610033951773350026181399748807624902585628172527293052978442568595003210662168052878090370781191909228736595745319112628548999551358470862807682401198031630662962353973568041652464370387329918038811585811338554687270751505289294493591593580089666709411731641879562150718807543791668530381030366523413095249135532529635129427804470230430917388698864694719454635720184584206139986754700827259920925195315509905248742507183525641074222435408782798154000061065111421258113552582065062537584401508565636126259968288535754772275267512165150491879048286145276420429852109989924567715121027816741953126171357875085651186045456338975074634266339421262601949278299213531506914944314587155181529417385683867733143700435713350814408117488079163162667349702603652866394704528993686162211174596109270664550911466148841391268657598156208429105239054630495421133979760396203186559261815023282215173569928556588293903298427466551036453687541811207697366812762617459609775486978850707146446547314266136752435518389142125157091782917369750071814487046580525860279020886645735125209994104544332216324740600868361345851786926806344131039892293875289558201462515212109317352273934779972120058676610610991797020585804393242136798732453187353921432292730758591617893954883476418018754561337941986662363050375702306735020937349366423430954939689594982872962907177808224252551362311208079142763431937652507042902558733152841532313564077282604535983819952137004553148423170073322047615749820802118988036277209615333365355689350722892409496833632522666682689654271952729527846740494694173685554892836079106119895199817142276266660258567782582888786732001565100926982666434642109470215778539965694363661749633815474650111035969291531968344253889083200048813886807223740715446341855810706904405356972765159007612927901539374373984953997458038588357443018503544028460254377469246910959938647194846789601447494653104741894075912492707221912195690972123880940030135289925576359285970714123450257798288027645082978387383910065073105589892016288437870220566930980501132594896185566942129704726935982016378352845707238618709056611261998431488198854877041043870451223194220283022713231145790242039674500987810628133441335215059451226722560043446159526463711075003758745240026806724992544249171963394456010843608974303806891830101387955118435813168348921316555264116555533910378925147023258743949678640931840696379003024711960820173082733503041737119188980624344038469081913519952200617010520337882156183313851718273178016927730463195464479405414316616581703611555108028063702226571640463728769447282885830714732052575187695559429197020611603540132502085765599218515294711097574865743548424230674625076878637718094597833344012768511880569263402565815554957449948113525571368353408325767528196174395928279072885629781692443429893616612244469576549613343832342158867749189047266329895942744270418680315906126742046175200088254245768501436134659524475915519662205235175926475141789048159291322462589361546631365634303221985247092261475345525137973090288736660240644840116600732052588386978162615026506713097891664969088591544357957619924839056459975138276656379060624628487462248557664516302515182957862115529111119430365250515669560924272394043254490629949555194900859050093548221410695475689209258364586080300215837842675207609465364442005153239279652416485749975947943555633832143651190939946154258084718844558984190269079823240159111579262593150993565278078308229780562788869096299948734450634792722715305468914685316736632537891392681873661182752391438465200456311190984813533837408683552630800164832613934820894352658552336460435010282753226928557566973479470596959436925197908749274295629786579710194577892532952619365556377970945359665902535926717359440310966344457503279303100001800719727094635125893575165388395264338564605616451457993344652442375828622771099195510876540458290801456926065570817460116309331579574855929728921567450011475442205632923687387848841856580286052810069456880200069876704135332548619512961698093507006812161785699110211493465049902126244652908495364380488222701118456129573189510072730681709792546616686685460379687497700426033245086676291566125069685576871023496443676110391135534745274112867304354078562147979047884945248767618622276497698245547562801702895070082413168393453426113286713080720605342616327563518759592273224625613129695401804484210314149846046374912663911883482919219060112624105114046379858724277820630723525642095782843818696621253666682773645415572480840645986907985894520778942184398876269559428224476397772562584552552643333088345435162191862824937486280744100034949326486867959770757354496006703383623171962675405466230823785487802117241722439944882392261776212476701146994583769659366797612791760450364644331564845835991529334889414109517464636325413435812064159078389558481469986578609952464655751850284156895961247193910474367919165711985712934663598218506027790987720213976695769445686820188895158596895377953294590887861641977895149708355735258525497056767794019869443985340781906436177118743364559545160393292326336160348039150615718252978394488359431168026921195974277063964806906738154754283530320759405923489150406294481196534821891642193896536788609967618617864227518891092795481896426838460475330672189977389051686442783063538072046940360831169185791468981011628190663317890918231119453078317028176029230442479807419393731418243926042709143975380313089098916012888447584044832139293568477930253261933168308031482283515798904238340343678428263240086028827666764940530357292081369242481906194416681516386947750952832065890186805967203484963746185459551526584532265743582092395371750323665068328759119530054884235512163899292368168819209580819833620395046813305680210187107882954525690926491254057466638790888177469429919124219083537894595555589512652300044820275374060871137807557253434857211039662015555306979500530309349379851443212965674294738246094337183132409945093084536050337440053322269635758117286115842228663322462976892301295334579435368079839305221057513123540429303068055410063083803391330178957766244377264567478267475501318643598025737573551438648276996803803655205131248350983955167253861914504316755220400845959690647257619607998154559621918425824287468367716728663145382320789120173643089708190103521722634605841191251580153506666573380772146182458589478787821824066417727192897770235693123987907374415506683227715364522639089123611129054230227715413436295213113482676346154916681649103261670031720367087542086314005273119068458106236959414608336353447506968052912944457152144025651334214459687579360161994704799099488690925432659029501987904034441364430776337075551465931615362248951442839826935777830539811805741839175993300334848433255750500202441732889255808966510436184106411352425310728084983553683168587833523382107696746854152726582075089643507942291522681242013713206994653029073068186840312893498372963120129447114922738627923341477574365356685245671231061647440328569649114169713177134078610900096859970396276381324437745269025652459891255487756582542978541333247518630665554433238993654386360856045467990929125574887604273696104687002012157851409453422440718301361302358863724376837919771707075376279843910464413225040820432157219033842473957112801520577101994865547501557745407519757830597012534597439062071761340235182167178183945136344842850291214063294225164292504170125403325063962862362156773117507306702405301003362415087009576595724981139575973892874256767591962548471758271596824587280904953027926857546829765719465115263646701574965531027749118670047704795552470528136717653371774426757180310792331528850968853520679735060941601776794305486469436941539775906515452167301279208097442216598256689111991275664893106505949052651954591169670764779134750173338928740825015282669600366423106262430841526828176458878883733277542246401830184445748780082943794209053240033513751831131577510061737531497393866355790674420948349705594232064699706073214805733693744960148776151235995182817569760229702820343883718336292119731045677896437000404180266560177941535039633718886079100797624860134846605127737015506170983102398472068941571015013322611136764753009800318279304871751785856906705164790099852867465815855996584768342533423905257501886829529828716663118211291636523700316697346151193430817644760748289992088841735266029060840984250649593249050965242563980967293557962154458514407401242378821625084896889346567400646270252974358791690197621303814457527664723460960451485253745589374642970252245198793445097712559907021747433916473124162710260064574737703162140108413167518331638265910467854612456595017878176823305779450921114828798384807320973037880028437979732774364621212842527484809115548134601516247440489938733831493564956857407404084964659002153509375161352754911842274141301735236408247186063510461247500498584477325609732886008197462676444240585190589461856056903782979803469184644587508578005642785641209453924169485854081610377979293766986557657085028552177477320161237866610216366987884302223995211996256374147662678734602768371528346920775554425407203818465598274103334299091209241516341181680736907568893695094446007067695688385550964128869672516745834323387445360404221050095982581426656144438897431480040920405751904201468171585960576341992849150873460503973809508599591687797455480999885699327630667384871574170673609486223220978613234383292069914853953699837237292722566647358463433645383876786305281648979690673514378909254556150274947314063511769403139430638326588280543028901953404586571014996181127629630298488670484920028213777931891456255887967962597231619987064791947121703504815138099653167718364481233307922119440092934370977067455982210520469222476105213307961234642388910151257086902318607956941994455014287332885413501208399432812916751895477577282269200128598989463140407922992702500091248395943872975309670585244360454736541036642849320183216708093488275086254156906385140426965794592433937446698216707444515459746073241263298803716324932041941669127056822012408486656648638876762411853023632632184045950460588688979080146756910837391402710036225714026066330345723638461169871143568220547755596613207365407745472187057804129064611965892408473130184514482612656814195930529887479626983072733615621957488312406838498780038598597829185112952802568378157453825557577292898293192192865774924428047093749836051879314752114558288284911692307805172560812105889257646299537453887462683074178323070675272159870513087400048481244912305898192797685138209479917039583091763482013984839438377158431487800462451081976818144515564534991724595750746585363395890465438670967418492800377798124275143809867456465613526368600250851585387337392969505642229161877138535914174109139553480053939254729677940290794809802053181903070304273427891237944536953220271840465698397361835036603403920382494384727796584431040546794370959619623608246643555441670091882462197177594036792988655260602112661992783963602159085091114131865310213295859387795882892136485071741689665648941744929374957145579557545141534172767671528701571857185658376997790281776827304397934112824804923969005441793316831171749566338914333135186269799257615243474776947429852376050314785100558982240335600665244401160758384285823699220267371949772758028481465791722414073378189954280202788752504286177218035564017809716268182549475370553067440803790327749063443356654757140620424924483389715297563762921802651778266414044779265516690341755542641291979077066987792916981556608876176846419245931862564942527995143319722850318200296952377358406077469358037362066139682529531596242990328961153537141651839554145736817125280159918499555024497570853037720196284353377261285269274062429849544416549509344277619312745823359859615217935633653231379307543492710894216501798559052790384488089746314942625343374889580568771572196708358057545699635227398087097779102944306421806736893212616575451505142347787888449117812336375279569346928751401913463628983692520294204604119359291846640122000921860926544947471263206584982605815866155641992594030424410518303469048292040186930194662414690337424460465133896452981814986726896168757673120438309447498092017490443147019590764576617921149495719927889433938703194113540363648749724316819992151584971084253661978543775784376081881043093583841897448163970856447233401877634365650908251915876026719316677668973330722395823081977891689900941333213117556346916449937610613790676346172667445296464927927609778042499405640581430267343660975243883661803629816309656687759363899989393993639376258651806788088021745322292533956007217985231331023572095900057109313524149180135221370396794220750070663884750925665180091511281040695660175665107822342413648471732803467859186956378283739089832594598473469267154250288827023774858320746491210028689135527737205482609542674499350796389278900135636651652824534540499160798380298749209491337902688863279733008563995517512783378671276065414980577085370508975914214062899366712775763536375198053364937366534150562588573429278064366718292801396721643586097965359113251160316517800551516537102187969735178465536508427497841151705086078854818478101983217863151226660154998956413590402192557431513336984464737151089079660963981748917606308700120080761165899433041990660166881943789451919970043967955451798993769301999479486822696747833687368729683169470876140413842705278018630140500243415177258275138908320930229310600221369753480805900358211716077271492382181167077727040218391333257392163469403448944695549760865733854482520560917146238057288683390844579794968625672356770185839324560475716827414681524356517415367324572241272178337287967216518018993811839155660520394888612038482054376290084342292564795450963187884938192481613368180321406771486016683081309799711628493815871492417230144690142549994169014305573828384849115655966297421105119448780625087886070092756032133326471406218759845418842621429332348280775126825681467487668841918643173320938248055160092459824406745744197990734709601175272576177566600539262821484933438294754304729948739620679205455720054861616267027996831406022544226385121427595012786882149505475853854457084448077574220601200334755473134309676298778394399862607061182064442009810686990947926897965246215747569667022652943455037218361869841233435682983791044475784241245298810440921362189825419990664725562329723650418817798481657914576627888417000581175583138553589290748303855365045969625038313128928544000832986857132775771898163415818645757214070459572385313319198805366875272860880922015112076501252603512884100893684052583675416901213988654721733074930246374380607355355943190573543648904473490421020942786934995347058563160111541903304351785752990582400187511240726387049760289015590155786801805300266931433334985303375619697682825098129676494089285857364707340321028567882681761427086366942634843492879916977483564178421092102088457692574631625230001156698715002564843995516659239306358967919937082813183634079168923770118908050337839992413061635048439974831702520896281527764596388280077336415061011392625433783233104848639506168112895777855981814038928199785905623781662237295673714425871189758116905639770890643535691528247517109665664186424695965197135850561164232172451687128673334761111592065720639437365434234958536003467343380045329649212259054537911015586635648127542406511851590617805181995057670373970824593455615429682544097672502298228212097304285049308384525195963722128383418024713222380702371237003254419545512006451946521058537887328009952591083701827589226292007670950920214754675551361130947621116487570598680018815547557378766732493240788448513983948026124484229352373737830270446679949664461968189626003109769663337483329386662893565574650968691186794684589941287459032330733582936082385685759378752512320566162941636313219541544863348926164163687056392007580956321544969494202850558757293110194802112322057498645765000896511769079450334117334611533741596191007966800539476610138187051342234477405230801900554102299896008481631495907025390459414492507824477693150991044584350331597927621829721831690821155194969814297343516528765058340771793401496873081175041794732072610345173565869910457901898501990842714955328587391959795528503479742556871397917552078649835937840517949716640390966221879854828471141092310903030380689136327979220430931238513621062215583800418492413763305755832816685845781607986242300335466019850391389175523474660914403134731789641359385530991210467254605725659155887066331498210900110342259365869324465936470609942728823650313379005307817003599750224776184482785301240926484034201961652045656595048193075225931889203763181457981399591960205573843295097323850188592766361256125518180603343058982217393767297861293944388227729904018519270816271727640649173407426665872148877154383183956557268888678141272851188906396279047365488631996223091989905271374906180415547714163323616101006933408581168221236510242159490381006415643773647265338876208398157298215803127880285991202175489642996949921101269410303922173979625993214234177318081338616891671340312392124758530310051440601669950032546439974702728181573182179817357652280613254899103370678739772286346164231373737146789777868456344518883666451132849105890754936713396903064643895649108470225297113714068386795666122471990890214073754063903307081599460884114993731953177671268338715027765473603169676961559780067268428166422629825932467831408036763867974262241217107411130178390202981315459826329586391426670195189497834751674702494247395809555087082727218421824211543525670993295703729623955368387186396873259728772636866610506720454558889171609850031349137702054053732229436254796366264605555039968897675996354861516964365901073074614195832169275886964917584550485300108910613895132457114392799155578417060519597742001514400456358221986944940490000188666613764911156399546915757034266439222727812956273623277929693953874261611634113386882642054729906808854359245202477225263312737741370438990321023370987556858072924820127495875667868956237361098681608852232275139591386677486968467626887985177926837374364872955405025412426565888884355132441466847864932473038993101642381092740118898445100153811952329120175360414395850583244212529170676625475189105553836094285404768360383226845367091435520840026364903951241795035586045007551394126588761325858027818344103848690808896043532753869935373221617122670391988637867350300860315547998231818250608611971425713749107783454792019460599556302433347099138136356959886983360348247011734989098203993921880602365847176010478256904263539880000756150678232096225185393662853034239701557115197734700839999411998143846491066803321194391056806978954353191794308471411096844457467044408820950598092212364088629199381303350972105175074274139756303523143072517734897472983261444950256139933752868269599221161144050749542162540773561669154363779867074419690815208004452062481044888588681505552787186408075627052926094712500007113516246532515979747558867514013691404627185866527894336405450792459159241563403540033420006009998265176788440169089502416090610199482972009233158550881197096411950684797590044363665445591553225827143338587386756570946604207511236399543936706688113525787399395095166537289852557485242539724017866131473437585264893035743091894803672148949283184322125378078658005027790152497201751189217557932001114804983837127661102153043824621960673348135467899979104304250412747516420691452727131595782561658826803604295203457224063517007214777626743139739143160713199264917359135141205652726276850075789606621323743191121714657735407519772966017815750940153414891632782161751626876669985054012457109750347803289547345612476905346979088393236734264418969392597189122530284167491718870036409764938842470155577139756065206829239353132088901467227124355079835831320781103156943119132512325633773001284940963535148223024281128836329854449792332817397390611843190159012803889180063040166130269467500540844583846859590194577135558967558592109432746482041626526338252318705352136163961390990839102212258698442949892064326878623341399726816133907155333209004769095551581009822483518365917328206499461876666522099809312839884707218887518040704811047210531543768853877867252274069976094747595365066777249624481587423723161396382444513152567693304962199332653514072161489183513640097052959256168139346594551857772772430461958402165294968370512036143368376669165964280963767523533718733015472200930579438810163559483649197457945829039365569554550241197433442059088285763653941525609341171315177738929519401240143636098596487227164517840259294913365984553170630351207952791528896047498450231638981263734070629297473381022230561691065593037241476373527186144750644170187679014189525767003222585620648984797561816437476674088114481747820699730111255878459671213520563428588394489383275077148771939933302124874805036819331426601858238906478043515135827673492488755685018054779834368698713345773715504693848005630902645503731587916057024973395659193280738035282882892951410892966584471229673947933407193620573336677829404134232526521175094525615522030241651486055653378527434819153017962169682193685894341836662808678727620360235761148489375111388487672416090801479327186836618991135393840526956611932665256532759310861355271492956754262563274805754907952208212406119300808485393788026306850893196531197541741065334659777320322142495487427483337200693328034711693431850067912737251789626523106073935679174448015378041574546657357659948564580611655367923034965290198224977355554533448967664488472453317564947480796316019752750802599650017210993986007700121594306329994593867490211927672191559542801512918257849423916448655960086081927118583411213424135810629521630401865406420926485496217302212497065127249482280838532431609116502060030085602858101202700710389022683231164209494290747703767379376117525286488447756239520094949027200998032524363675551532216873826839072025840614484871571936242178688412092734753351744639741479677034653112187475536539477784547817822434557170874764218052066987907253785069819880902004594831471677512615812758945536468259105659578622888905087767683205483415103712438087943935471164372879329240172115140388065329252915056752923463270659047024197734227546396645850019199617490954691093405412775620763303202930067602718622086256802647641062850012425266881738771262687294312235236617079670273610041122852334136831401954094439759747479467725067006137512898933199357219199374337914813553671418471905752147932250948775738629089441625890377541387547909933648381186188187032437439857720941513305091675609401971307034115245937642176836260170416679901838703633053910628399515603647997722626067351404245659894487217554067497549251292416577739623741187246849574686388852850461578161130169002439940138363345469585860057486510690117154296399430973249574103119275400097703393100780204233375899814778304160553927598401273780634852267934615660338952427631772537768919243522590611355068038018336326273061666137482265206753249149169380788001270891805078428200746201495031434732082305850961922954296228515706612827680193883591077963159724906636672704488612144895297084989597283574320812838465453193243318384714945939777141415689400920013547712007259081358870453748544104849283127127985301680067382396234907496300510711093047755469236550870766058972452530109642367067507501180164123947455734580114065242497662665836902655544972734682351462075521195695357821397200871597155676064972542405713632475520245210258720462572958129750097716187541272081745356727759019073847626797270806271851859048691900813455878195840787128603753817786552483956527524156285498946126558145324375827121775718321737813146542037526326999952207176777085215344438419968196758005192822369159256666265497846381897436329540161371979116780817821604007125708978652854682565083979520614987840422159664041718808374480110502676918171856508939798398857588308368021737369652640786273308900735095505920226146661550075207148000904376862918336373866397855516884720245850087738611192942853712900076819093725273559628306398983963819781133704598886696774929758812891196049322659018836034949947101828240229907631770572110324808110534454445092407397688218534578901171002310056526775649955504920910714172236651253032489535960526441212760851981898705421860898506928388262466096320125710479361814943711337341631482485390708102383313967891338620346451696999409489267873878804226916857967400129687599601437135632755022191569318466827764134668849824702359152041338505429733824709633551329971006545991883376490722395868284080965294490394705829945850458980894808617954151770180805161780653639431369375818534827296377588625367378805185439715041843839001655055806695255281554031893027439996463864859555043213733592403883514989064399668225673181825497079087698129694118456012344381848142968771666252687491356810139037732385165774929459080037784214594116427888074908475727688131619066212593499358641267762991126397505733360179270759404506634132009701205987158115894731792884589680558067128115748004774221610438979935529985238428411751114936767514405633658187621677105470591988178860894722331584148874315510545307286014812847847878607515388919810128093987704423600264727803796634424095664260056915345096915892241206494493608776165275064389687788055315327382786198801275789670431561787187532180130020829622884278587090253078926162383298138378840683744142774810600560939518486049498908059491227074058720794450168532429000482985276347941713272169909212384334087335830744725770530336040136934292006659837648992989156255342487719214719164115901581747345335795155941685090369378522978646359353312960745984484018891451774111810998613705769237647428679334004965224891286146097114223454475396272192409580925970714883104343543141045893223643325718363518939471379289155455735410732429590621469403741246100541242021221935927672638479755922028664301969170380348791324462424620723019912653882825037453610592929041949078742095691881684301621372909550130861874252221005455099109147931936080789823960799220809881867773908602970576206965870863111381288690457929843251137239117571379776424802703050678952417662453135502648928423465212359946962828380110409679412322776970446662147084710699916696186525665054194575198692245148838490713743754343921365151718759326126896392999389109786058852093964628943527032110053989700622055630420008030647424274106223913318978085208767748426395235989958548042147946078778411502592512413833185180750828213319612794650179467471562323794530443114001363950498849257128149814593992878275769733965876570569161307819935619037878366765527029454648586401380729275669711391868260202014083850413334859378403565468079540409249135480284905310439974495134183011495739045273445448190199025918610062619721767109087963047116400947156635751928002578809003202650308502992517620608381796201170703978557393121385012405902183068341196618856490888442038724605111469386131337998655534809361528909888987740911528545166975362922670816123260041595587854586973189482479002583940476254373053997245816905858677758780255522404417436228110158264455332123923391652355672353653637666061664952463105897400049535378566839641790111162187582291529783920321957019069106156386242464062943528253175431971755412706513683494196466131035217586679894922165970514577802233779633926162457420182954501750369065227412020853226972063489041484831013262924232082359303150190757824744504626054908573237166560750376633543296134177937565248189101056118099047978974824766775827996898935679982856032156431460389428514729543980813408457088536521277156706320984430988990682191070293108739187938855120748351704219256799458500689931233898739474411815402563948668696550961168039010894882325247757484286749153642322149682101569374917687697970412325940684940170361251344321286327325777445888531337916667315556918131775201863486754538238814143080642717164042912619353508533946367673434262616983849358479370017453360483658306175122175363215765787590599840284172303239130228325362285212485392122536463852656835575932431677984449231971879062601337037776554284412764955734731038305347002180514512883985125106512943616931074897374827345496044487960351614059536792088713341670229729949057187839195707732735223665638668120230637677050091839873539712426170096403240740342317167214026938740356971544568642164916490639413064124153873822741096378413055948856166630727943774258286465583254031759095225204874733279695111295196519314842177237650382691721879004615506746073068275201847677329288985415505914377565856331798641096479227774276627624383867653786039656858548740436059478466235004599508905935260457878152132785968120697048769268368278942258707400796776332993695523433471321215698617366898578287860555828390221033235788054047311991689461960320577809927744605876724079310176879049316135027709297460547508042808876254697653035768669579537379857353106623378761080924162529546373247318860219792673049967220182069040382504810460641475787096037377813556126437786603457408461998339457108126219768710178570575351105069126876615086654563179045101851404633691942584613158408301083632094749432713067480284722214628013476844735600758784352961531030263681561125586065515327802578267384908397443871748025228745988360227286804029009170069935225511883202454787121693042299085809760580219430601444582570782823212880340760588147301315638194008010376909286763853997027887191812490532908865066372195484960261104789157522279228594166000989334594525445453148295816874054158439204267887458332078830640165170896461054371465570810879618283300033972517320691162931339744866078078119135990236514918745274221269346356035535912733570528381822587994471832130503297688705970287722670923927242533060422731456880342987444366157752058446061394804148304667970934841907663394466905847083061344796413507609856456053748688033340963660208019964254993444934151998768603584476771325477597460873819843639378353909876677942472882772147065554524944602171302497057171766460550008706038092251136035378006247886251208276524048684406282514038337908012361878388654290510200898376542029403245560911437083397642547550956574624924639858927301753570655332461566241169158722602061325992309391004834518172741999563914063093502945413870858796064859152242306269468685507441017416220408907429611981226258845955613865272570046026423892518557034795371668426356238642611339125085758403418998115982417986173568617860906756476303951183684143932075206493222404475991043000743759827774434872655627457537071379027131184489413605718129270999052849966576323753198955757441748738495466844505602868772414246887664060116377314476436773805932346190499910663627895829245987833339133971931170288238012737322003205153151625979106230203667619782556121772317905910287438000248939461483166466799480260588399392064936886067609177310529562489293121348684569882568551566169725889367627807693851235396840870751427130780278196910087381732634695767233546557360408382937787963586734863741700395115054230708384384357222790768062357111816792854783708802625395838075938842180407285224351637821987392553548633243879354793545616503253858583415785467415814978355224510916449537787994840528892803593389429466916186996173963331824292424380915766706861671599607608526445104301726899430226991430961026885241618813626097500866434546904797276001969441635912153414411364747234948070837090227727865640562027057189076968489925440974442796878145432795325253960306007163154689562403104058149033556418828283030498849807390626890825986974366295386339311484413407027616809658853323291107542877142189721094371182570059115943563476048014210738681573154393855196385252492449930493952495326131586362461076273731873880746315613605634154701885865522371973296431081348560293914794664004369571812580667536703636263172284832963248886121483002735754902774464803470408632462250124670623941811816215759435714831185305069877061372553949959300998014940656561340631392348260461735569877742616536414254563346906276232362685521791980816460772418344891783397706468813412259672513120220226324219332068999055532309840652226775166433969429182934849231431901011212600061618778962632012517381466483331689390810942284053889049739217387329232914577955600495701724636453030143298760813147274432021647706331064101078453281187672459895767327740207174311199955938930382682491467056930895012762476681602460281046996926867336992530205321321857134487397013455284301464327923699408373045152169729548027506320336316903829565895977128939007134346578991416879311435129411423810900729806506071495708774795964927144868820864579351955438424745433389644416739565776340819949989334040370905909912787193475273670301868405406236258111722320081530667556114515148689123993593048932390045064391637782710651993471279863038970303943361025296628293723739895743544825496283652220214889529415977974363136819845972891433612981262011701079357184568122842780300008067027721191843207517070984487397437279883814318027935440276855670091768831715814976301185437429298946967001996877512852712684762544554780550030547643279137109173635214000628185907198161457701615478334242355071511590353391686489771488085188180191050470351460562815346756288533218552258597796198024151759342921743626028767248113825792118218297307451919584073541623082963816758675242972487328681725880812821238504358710415221886416640645030393305422218588563753606564329849706886553579808534768609708897364044795093916521416089598093994941669719908877803114473480103563420223107811991239776161438685390838015875751630173737262893449787706893277584769397484764639306343635453651008111046836230121222046752795765470434248908936581489535250001967759456966412416511635766929519143948499895992977033768318235831740280459076346892544534913907835329260788656961135286467212132596938468763305191637629682593580625327512424204222627856033894769065108988936018707816215864390440052516660343037124504380259730482119242736242686300662887305898740476303541725457106440504431390923156566109236755356387652765883876700120139259828834919577921930764080896656256832999878981051665968718332436989051776518727265501885184490714556526083924308755251091402755556297716222601531023737433957971107188946140219508693394949298476888398408906694954603015445352703518634493161025275201704718701255356207524372965744986257307808935496099808165978055905985720058172408018898908175812809584510514993151230991493702551690351796946518867925973475781804738302937458028603734991367953119842182518867295763656103932153071244174135926310326663091734531189469714015719950914969979955508778646509699349678257055455660924834432692263890037267500276610044105696085681037938764162025335231122777147461944248322512019125422157964495576496380103354722067390858372940693480681516242222609735090029179430470786567194329351212683876482805216431598999508631930187381180309693257235809387740069221608230889056971978227271110466487795808753580430278639271521419009932961416753289577496569841940057605853393504776490897052598861496054777503445166379646302367889799039484093709055681210499340019239665875418002818645134479901537072191572369218969313546892205470373386342827001006017979715686721023749127735020807938722521966641955084723671854684004713656973465604745876361964200579674683897344997437303943406075873676577372885481791984183945529256808822941366650911209871206866870670629443683931245969701092896497103767233509712764661240777739775847653447518415072960269219048244850978890580780364394439051692662314187160531575578296325648271198248031620641220066505528244188204538149744179736899142120681793052752281961879502032738329605015228862884623791343565642632108745266338101453073519249032940947458480840138300813166999877070466919138181555947559694623514212951849243881118069762334395282562873310885631326423342731859255431791928643466371816831535777213688520006723245133305138805847036900650693948755057295750996963375460328402305496382709507541358668108516723507407908454836108302965749379702790437004732034545743944729520483504342348671868406125791652770761215960397601992906058972140786788339811865738461549634467472467303728001561093518093388093788824122661099403972752616768281449050097195532185669174927750117471660013097059613285466752170609997288485640751766710876532735991730713695192181770064333314171989239261149858724261612715158188117615451076263742642066864314168747743794771929633711651924216409760622221998044527938143506008030576796660997110880410818810135615386873811239595185723926300912529227081003264410748286763077138656093818592865541029538523315927463766013636890479375647034380561397528701075162578991382983805926734525979759182608843135803012633859357770782883974115653578179408502487940757840669820817698840208781043221054675197706339200430942434034920727006540819097803383212569436066430649547701238406498573106851806306284764684567696356859578716888277302384677941640367143950888903135670148513337977847424658211320282059913987257045334389976551456440603002612037448685350549403207355800049480141862954722219712706853680088434938053495395711382736401056379805296848870848557720125915454827800912927028506184862230424583168003658182560851747175269402893843792694553329989010132311851131745885108811685943827812231411783616486908371131966959548768387770637952219297354355389246803607793340697719823216541293057240400766497550268073145106531769044711818199751330171594549624832308287936294759977284800522421995820910558120545741609884400825482909706642778582437497485018133548594508910690742265681606157120487640035058425687632183864551449167879087706857686129244226034162796781092846232646507239417524585651190845586314440670947550620248085433460483157452680525377476561817547142202500898653353665609461720079739527050028503164680498984153197291663867303688599981153280868541472958756781371093899306366870758173439970243537354582957254149030606213895587590972729718767479100154430663008517120048473305137582094750363469165979614430948701995298189301513077163503559146172968226202575932889689024542798923123844201427612774221133549400375951721602845923155524103578478684378725816720740772883593527464150328871239671227305108153782408313055944256621842105554960338565784378375711725836851816940683140776297559501908016267996553778818795134300248495904591362290484363983980024866563042714931241232333471797042234289388717283996399952703222941963663201788059423617393392331055699178129728974023238324541557678772269998818801015027073838302353045725328512241209725568544396314269277921143491351056902959896108054414462199010443613948576444465227451831331047471610896934322936791728955877967301266663990443321566981006252152989175034996095432350378403205261213743707784631098531712837936491761703339530916264622250066161900561272238144782454420673434777570793928165966871368092390158816204991592828185032111002375112036042937041608372531349092498136341489382596663900848727235087183489084724418904835365583189976831544181928235608234221307342934775878870925933382517001732066063478456877909335091853302587794401707103362424411902693296526801544892273524814903718328008669149446875696589627571401473782593760619230977592062028463459216114173862441273886779315024509935561298320638375841159220405145075826068698149252783664950504568917507921023094161958672197940582515200670812139471256100650107904979136537408028353399459708390777649410278439454499949156722212189301291413931862180791162380415632007787728346242446824671229192075146849620240660127140224113443563032261860387291110922589421219164304592033538941304383543403916779592848229193895716966422713121092016318137955311753727435002090902832418384634806531940369051600661335405279689740611323458402455590955263300167078916634350116889812186243236230782227660572312334798497498973159634419150802928203268170853904140158642198155178122876457282349949166240898936539146629536821461336672699120926242039343719328614641327633022495450693022054343503670961797180896060986087478734951306468069458899147891377804890247682665703039413620375549027396498386651664230729253025975008519049176694238162692419993301748173355919447933224027677134554864800856580929269767478008343585604725820055778419862188639414942856044605662032481692822197538995565218093910022330713782821851330768171871124427949491811762523108173578136779953517507852788827508782128247962102655232525598046927012256825571493796060622256977287549850907670901875601563598652595525493302582572677790009430454331741232617117730581680138024142075712424161217432108177327020534698900242456131850382074111443094158802704149967272953798319425932713935976840581396511201286937644661076044615077114597641962988972096134020993840156403762591531177448112842980033404855416761351960837742739614768391933411811660094260548935363045272131308079417289225463126891683980527019720051438035778574838630890820724854235700837216366061884345762935844312925775833673955576923184337746737103418857026270854905260256021175101516420540068657200985364359338609560967682580162325603016368441768882904524804853990218612821716181237377810599132368042595801687547847732873973219501770230222743001952789036144097009623079705246055139405073051023090826027395108934077885896599357702877833782073049031385921253339246080081949039298461023681233266534470458826216378461964877369673894395794724563009012244749553031803547895383239650551721381012649759718780866669570272565179296051676896097120650431959980845440407913725901450899645024740591297728784855591970150337820229064020237544679948309890552394398653150648540716915812848000217261900828790488792507333440879347438126385424397949602718267315104305761917487495085749980606841821620399281641202310885455388125157528919230181632481734463311665341204947449922917362165219138236890538877324282557505977369928956057899763082618139847461905313631009309626533191772665205073430158196050724444823926128042944591013201712597864023796415051002029175115419465498507480842256141393752139835957736555770135857448766314703653523160186610921692523911654672484209711685827386634486808481281110903574658396736548736899023341354464613769433761271204621738516747515330072014440964148005944855256246469571758310916481647292552749873293167222759969208664387899802430675007591887052992739468525877106853652780863980480799316258832812439755655804820934305900118380639952613486831850435422946621530302684472140097670864849204011857258004629974456652420832547128352502029388627367428925227512427284778293974228278006121702514199758398525439146600799701150793942272634867911405243167437002675443457638459472599331936033115810619653077943801396930799187240267912336446649866219067224498584092088166110799630223427636958922343268977701179367208086355618055147247187376095669513411560161082522918761248947914230060709200983487216476735671135865682440643193348749695007998729753831665406068577100578776410054040473074967653386761823913978475295780433429382026867804685699347311229888671830034085646538109219482749845713164380043747189833340329759768760310841665630905182840267752969554643032110247524238242851044537348476611563920107158214594908565495469944339183577815304464024535753842201400240173878774888565327212924192205242028892241855900684125813012957170880630389629836807004050236759875360790793334912021047667869128377032103922029035308326882172443990289576860459957096109794304362791932474340725095740495545078433678062030171659319451731120219007184268477587696168608042777174148954054639625206093853635854651981541800370451854830197024772390450212416237932163366568523953877660590644140376682642316170234996762263587171024925249716578104691894674974310131906519980997113495050043734150015042449445513375352792728896349190893905343201833612641987196844337041178605034720050751727204560533322378442330031993357792426052235613512202858680811970856159050949581143320308346244981542860117843898737862856626167531436782278318441581268347916955297888789642136523323856814171405502941411898608762531373421259602349507693999419110044028533515010025024861928616282822136075171572172720875274752204897691601038790509651048206892513348698813564354722188166251528145139288797008968494617718758394985142455249409471265261862319780742693009374360595191759208418468072887903390775428361923216772765827753872922006944167576486748334884080886276582282776318793361642157547047487260301153382859672316830501031731095098581221403504066312065265069348115835760484659328871920062730245981053021678028681575833727824991937406252657103991923194112694281263136320186498197102603932212275284283762063705286808575501045922408420281026094966515848952846893129319859363653501931906242828500177950023583264699364622618783270010917741729667834432998093667077436017331641380299652484900715032707956425204047221783971201502198538866070859333455331076003649290033437835828072285973147435653841412255546201961017443285841638869231424219766007699912326660057188334993048415382239250099560119545557421519456878321247239600287146565743356233859206700721107013185699852427677037523553387523334749263790175992955281693771646122552546436172107100506819008588987577307863825277510395658614224825621880866792779504083173568161633268084045995958021165573882127077203022547742430811094626055990913675917677628533213893752633501950950628360484600448785163492678130629116520052744104240697177181614509954968482021640298796158258080945517451021056609387348828045471870479769047571178797930997564762096095251801520843120183968510488115859294312427169009831856739860082857280999746994504316817545013092350469291416188556967148219476880948864480604290339628835361130669210126116636337439095634446285097579155822241177448140655952159208270169765392977021213529283860305319251224848755291254611735602491684972372941373047133680456531779285263769858693048687352413344484347539684267160604365717533925478006833642605339041867459534951011890768591197174191437065146204481404601480201499234810907826121635120218366302345687386922763351766049841188473393155670390595654318076701246005191168217736129257824656928812555998602113569278133588703524794252208920353271401039347624500835191228625689224609909871865794456231728417237509040471883369732702245998691623133115748832164769423197271566995958266011354309736675571969936070673017250119376357196154491212693963842336234146436391125015736982353446625479482495050084745131364498452704924720122785090090340257903140955994581236731374542385868281500862143017707363567999088853341256457047798987265475762919140257402580892311927268160626202218709466045921659275851564417219206418960284301299342344523680336546205707611862647523843815906836566547861790538114121148824569058881436797801019994851185845088560944165833836080753339771812010699522962715076798241222721136581211489499460403299209768365807019935906737160939653786127596221199949500140648715452333478350717974236113173424510864265162928348090034759272004247063974798240576056540200231210489186913835127149287325300291313369316940921340748687535762807410379207578318034697954035598849834381550294480760178223433225809483816712797304954251295083272785299322496177158647460714023820560814339275934609046221905547801477028617427735315818482110984517105006367746400112587945462743083500730786064835356799653895365260678385603925037950636470485995473294936882312542766972368969186756729519509042925812890412363504534928099931261427843365202641895127280595054538532853337459496928474998804070937987814231278762235201451189361265603818429504177523845425605067199677825150524190770329148124431523906816503276395367626317942966756679329441119467001844555403995102935838104108774256773570106292423924168173564365452180153688265271774910070883484137793787975350260987963022034044769641637930253062022372151369541971689248054330296817817662537301841862823704866524911533063310614827424358589107857482081090854314023901340329605247295802329423717659187295406396623561691758263984861448090762088361988644981778906300129788623986822885801657911009184117340223163199978099094753464137946267900374486602813060497754161194238028550207833065109973287776842261102123644720998924332218684299680427704925574996015125724913524989303788693586897557080745582267293535494981738145556677664776738050039107842892889813006511513478629776365471726517597788393643996438522556295457957455534572539274075326994411462810369036876236016053163778774282027852822591178263200434912180899735566316722031227536410945848542723350728252529077746238617889555685922946446981011629197195896929661014963695467878912309013960775132429088106579667104361516493233308564735360530080761389837395395884860895071317473219571967343357031702233316030749918560512305922844979696659118302213901134427909517781525796223367116798081163067579893868207828021297426057073320934533506871898931204303002647152664524403128580608398258271272533850881019116948328950143311977867944856373675408541157201308752678893693467365503041478356117429111214625108205578696821200527390760413558245969076593207751523834329395687202177712395008468569588271332579321436093187954329393907820164227593564115540839826289738724966787854146167800473476134811287993129785017002783490599696811544800588583799665772482241929553210289908486401379540212969069961809239185715877020511801273638456824646254570093138673406590669103940198347143416281941102586753437136631752435982142174011493562676011696776430862405237240532030758861220589826777714600469417030648663258997485793628112836155064242827958039320906288703191454992254993323390344752299951110537789075949138017327968489798966961401313565163327998355820852250452189836149304733135761645199690686124806584204236407510136646654439958295408607846240028397763487264508227916970063845855946247725441474003467124558432621020801290115330835392923891863403575954568500990886999365343798315746361277953411771362565683913248481555408536934120173735923147776861398966577137532305876892857498696660377661449861660397559359909625054669493410351631255769228865008027877610538733437855296132200160913054282602804735423068368511284268559702176792446391635546900847429147915912903368405168425372879522735729905719380125337262775849843166367397782738169966921351570868715438079005759488629873644079706977185907430393954761669183161401101553029011460683823011303980792309845999734784873976548406818125969982097389117621898032315095203348400351183152017917704083206386838399847390295477741454671951718783507129553725278000399258881857063626303545683205755286575623963214760944570203203736415853902916010813534645837511975026842870899931758417193533215490514572622674324259235541211519725223344222337156486051538338002345601464418427722268536742758764394440104554536185895635794623744394372450807483999648912787140411534978252654070612178853521596940893749439073163461612761431414159042066846695956994631017295417729828580325580773105990234137242618950503067784490554347064553307987414898364221279878196583948324964707298426924585511768267166344731442694884271531550050820024890344264455722586209061407562894347621410487193209795051990010520974071470068332018400708164679183672440015440296734431026422675385940604537297458497942198613005624058115843476234262189709138941670055944135157976306989435211219812596740117318354642543637528996357587061455839413684966347425802159091685861529568050990400898227636578563509905349322463357448324717297432699226920274212337555170781342154222484649548801299129354313763871571151445845083644312399892848782751699587522413310794778458136428575618738017089902884704667566295255532548192066517308897687566318713463387556680821718006722320125928383632611073519321005075060515848643723086443785023560323866149211133161753545618717701373715585409416337962467900327199667083218178998099097253748355547228706358680629075311305490968010614543462962105476083100738951520973223354123162569801833105089356013023560498705032059603056489641982145135673172214222294901406184991113539693045978554399959828328035655743588285721283183764054678673527994207761076775230874371914415792289104621648966448204237523457272935846756210496180269583026169809299198157901437819094740161501948919407889145215750298198131250100211803545311749140086911099879557023302237876297167915180283213481905675461933505831052416190552137010868199446040368887233293615687117068535805137896372662253115894122597355337206873035946298108966569962229509826369976057642720161989230282586274888083412380390645548145044929324525017380606978345412819886337748381474324571544583359973380804405520522620005728855350009016447875867862173429924452863009371449468265859230052016831166776051997094948107585101015804080393737066381635618363639424884867202460459535302725040977786785260832373583529612971283186893813687150632102459536873855364641529755504157178734116747695920173535277473410627750177829586969702748445035444863094815707542593923187261498883451270584697347587978262953148402072998250481989755675555781045450329917949658090257045881648445206547721081504568136018324983132607943052954272582083341918688083802831730927433076448367624906429937770767257200683585789998333984028794796833432790751434895545001070943027593310928807586437652127248887255819453875148995868762258351083449034215163899187482632923851178190174895216182939430430028923986127872856322813944221347199444808432415304229638321152934817321167893922177727154504800817923505948350131953831059966613433673386982416305602971683614427815118441480990828231664681845364362717202754852789048093622772259113873092360153037277687887278202787210259483947262385238585667899644956897719072695494475281764513416012113497600869723866915002078056377078629925916961114440909641776111449342172065350114979353519081772935639191159608077263526451185942669946034947067329134900353855947264706247323642011722546237633357579546426807755316655750076716468027535408896932859919046131724880675892086643219776871607303592715521778353142152132289523073862119474335951716584102968225401649767953647148645500483569182138302872678210767161913120650312788771522906998320095493132674102942675508399605786349076052678160183815678096417058709497147360904368549441688582651111760213613317471937449421334494072171698035086538834313425929377441432007194519804534342145634828071601757673347707534979579409530400870548305310859261029630375772453406840700637745918393085100787360367757294201883179325020369669323590494252743562152112530179768921515641578554426566356507274210280683490634258284057270986900180662108790121861082744692300066852016481315037501140871939916611946021123508579780463976603955474935428533323823857257760203575903210520569920755204245177131409144552909083185569105016820210031245752223875123218830055287310035561712900163734961535252334547795648488327567785684852877681483200228593778348584961031132858125167214573164323649234225616677901497284492588661107554794433174559762179663293808102980788496916085878333688834082566121229345258524404958491824511555569130205469980744742283205521377251108278369122929718015372787945895477022469992956950347549351064595155899405209041085433971167300387423512497989439725612192841215453718961396138213495707311467332576467806238144351494484797301314435711734589131750951482056610614683489727581910975759027616660685322642480785636229521681027060692706648323449613078129942746720790201526251920940393248932968216328058764960207237668197388519520475996737178879709708939139359171432413683164166157991444853893743969159161598721154791273049447723587426745748379813386980698993050367323626554644384191601889705238553631264650110983336318218678325770993504468254702671062176081167625159431854178821184207926122377109586357963690381958756575016885698373747756151244517302185481210036314924712969242113649271881794498698585515653306803609016638035150606802628072801898208646447926784828243589114528176776320323027190824093336735448725013394359774330976622941926073934835185962882768794144907056806028825388483508727262552970960756159044253270514774436929504247461404636422437323093719914060255866405992787889732439587028372668214423046037109737012273358533027017216527088749923968691301656781785281935393448619834375033341534676516921848675775957586597289025899548299435886477303711095718435671145840180591387410881690959050451467161955850004497407136792653892401626145035722322597178633025395137307089395318606134419963981108474955114526605022427870031696309792559286088393739653457271088086067520781277854050772312330090041396965834676962598285402358045289800643902750959417029307048576186874534967173260821969063105726002660457852206501169847424419015134134174497842530835770086452328227642253990168562986231730012370034171578192778908658462587348604116055259889074465383232824375320800036833945199559303726030578269901961865829395206760625198279397117041110490404636396619079953689698012565290441750745412734022174595232923861646294629900048008112980639625877618008963360213857932208446926897502172266979410059401125658774425983337219749044853360349323083622739725226680709722592691157920485104678857255864837057876583032006217786437238161559138154600388318996441625947463007273514155475265908735017115668646694105854912166953469252970304921516339847167129654508481342619353352507026965829577123798764219228490036341076145812006124301183533098270239255006179397760442047519808055827750057063082880017701550739264099095195250859121993725543666399027433361917950974028148311298345025294147615141143448592378203801055891399214109095846609083569091598206597838622388704387571905549178808375573515291103459767663957721426955927034786136258692017128299264989137385027864318597967473435714924401273194977041963724967011054036703895245954863095654961531598833127855466095458344371224762023551138281757412735484609440910019200895076815263771982412533556702153988424950447619790870258857167841495628347584920308962322502675547207411493749658137170960912329148679084898652333813015852116292359319792620981677765579985504582016812368996860300114029742801398800174023417443330292927821620554579820869583519895581269068592454608793331757068617103148313129275888617785722943646493672566622745145066257129534256480590261288106633288890603259097612912969543571536633991511200404095739260572170378344263462556550862726401745481515872783169964379724022714798026393447403674009242044207741382094087838896210302204389653642419811878952894295263290198058850167601971140073463262660129712588522674844784472112291031561689846617972143834499036329526181453535050618006531204418542368447498993107945973480298251774631966593717832036188622272640516302404304365488016698483744682826949133927202911809737366956465299166232030542384312211884462962192926266373360398272785058062327009237862812543854351665264804895191351575321461587749616558188113617501848491061568104735083065425270632527785119446077357102536336397155892538596991630537479993750383042209685497810740844827672435080488360122736261742994961797663780789362627732641678586240398682458297254196195593230273416894872704858455588408083854262004478893488312843312998107289634018942758720786692618266236108531839524397680134595620237705616872791843679860193947910946930379043585260202617879606043278999341096854101589992957558568338706537510001807572142129923533733534586833366994688197391831096207444214431138961157248616067019259219881208815906561755579348636167958843352949641825433920812085719646981581286205071199191989034787921831097439662088201529118983751630298188147540738926989210374629366800013331405074413503866214936515976644768086931143956649640647795229607599249764849641856718727635291685427688616307889411888924898189463576711759170350795154525320535411226525344829619397953542339109431596107696387875649126144433584242220138206954540403309644645576145228491292926921846876097885660855258413421027402919282687707318662079307598491332536686089828335256381087102325573045842167206857896638420542153871448962842906101559746064352760497256266380369192720581208001552448428165533844274602073100326030431567921935286385914717798206891540612786187223286085245284904358083722519945599647289642699850284084055938124178185350886832112419906127130119796385514716364073603895652766737683818601238383292719935665427785186074486802743464273627553459795750352217082408936472424019202144526650499134508099340664346799556306954149795820631552095551883323904021829265259263449140284879063452200689927638446852357776961286287232135967164206230731739395376838974299542606489521825044381552639755414876129274028558939780381866503499103151189773271179425214305346424532934214247274448015741821520461539899474161460404433328762922379217436377416435336242634132245855928272646333351379049929337018483685274613599362664976429146805425133650049476579861101709787079293941813069705420125179897908632993867923973050436248214640026701603361856059019876991115478745677049376879525302672915216147352359390977067765458008588114809796372719154640802715215055021055952083199218297505247912341709709424952013746730666243618920175765507334674908753466782233928876801397322686903491681554027194373037292105383107951510196020890218347653183919117664902301827563836375677664834737182722358159407224352664445274937032180674706310457356937406399201153929791775227475723766839986857099441061508569808913894964021536443754659631859313499667513678861016140916738964742628893966345803515872283105153605682390373092809634455471281793685789388518561776517616096356310166713125530063286941255488823761325605361193279207875915010291459266416594202632460401591748759207224420783275381738650144079900297637497164729217370542102320940887178985073775794997213991737814551788506147140839182206814284283715839337388808066799684078072480174527709357667099200624067224159879890462235180367463366051231023750604654192748451611645811697469670927059684298241835551411987967943904873510413156243821596572161095112455645086461668646183784920425210938984639646479696551995359194389204962267141123667726227459652587552461543661040239009664640024314323169199302838982608625018931701356687621642825023591603632591945921284871219253290016409352051491429734520124057048458363306746487422699859438834031571064357481730318423710389977737347074367175797481164189769401888689362205911248244704863531069375827225265726426458303297767004979927018507386124131837627389641261924532303001367085215735595067352701574754550306665700288845680781651838343664846790921744865512275069623001144479241383169458997765627251019837301277693065410588872460910971878891842757450751955942330978406066748380226575919341609643806138199824464868902851913283599183154695601995691420586842132772222424456451573978768003716588790218223332600530678343637940315882866609683804567034237955346484794349142230471008406936503822412579637078181266955737963665033536785792243828819222367140733681708426856238203294111850139864122926543149770757525379294286895973392815087994574932062444099854187935507845004218793035529209021175167074732418488498298667066081209285585088512949593248469451690728608921028446173036500099548426069195205626894600631659073096798107022683042956856222057817048020217186250716399654155466269167478149638396442901172628637725564434726654235150597727399420835136227128726043183899259019722101128722233766503345945875488767227921759327895417187682048925257109644556439644865630366599044343789728965228817296535755022760770919021868492562006460172570829826794533630122484961139729717146482162595679425917430775341545251829567787780163688475050225985089864417924238924554174842389050241704717332119468853968619771192139820501660919828148817736987599394284903452538290368299314243896611453196860030735009273538478753891232047226267741210434313099264293977387281884816708812910450325191954624994437808425723072583705512876356778330610061957000510621999116863125246765838978202100427403518109722461353472192595095803901152293906532496583532195227511070870118113792313267584299450193746715574882544734767001175800625109570344783443648236697604154606875604084891612934016665173207135434314167641723032156864629476855629163743385911758772819149943843480236804722362112670804560805578641177272396816238611989057308597542521915857514826330118121319244669888572022850673048767731417869568254105117588387645131226723407476294275881559586700930262273879948417386082895899947502330344938186737619373692921184941686319906363497760758141543779671656214773724533055638221678847599141637019968516787546121766181525659884418442591465131807846251143279648911032922769599853082117467942033321680144297290587635250301551404463959093656037858749223508853456442232535387587539899304866306451858140037202024594764827637906310484063397991886449401665989792678845311371192186396030527091983123062148011081595753777189862476794815681603507550763087618673224847801370728725847408670857155498570869076286296517811459078636521558252103902001030564000389374635242818053137826724612241277274246676231393034849758449895180157757363150139327175568517532002811981819211767993696398662766754449887560666286924528501974342308750022707091207807409311000195765695942848968131072087759327225247468912055881780701138337079356522699377673904205838668896450936505962272595123747771699626901205631335575874765584855593440383362499197607663855843094643522368781818247240360401860778170725275014916682489420246061323067733457617014211583069948015394589801950219693780706608037752681396987774615012357717070528226726591167951907614930180078507083370057030327645556739029489092552343423746113183427214356261980048244278452642642316745572606454598674213380877378420979197970797756169566877707218375712863905256816008154861651323647503392694758114955394991472309438228935617832076742830321209986676904030513454487909290643115851448023173558960179762774572061207458299699090389263752575610763222529058307296997936132293676303742030227171623502152474619870235841844160863206656254533907570444713969715470934170405962124631709785232794062118684355786106514340476892554035389036890572207808068808674130867011380634290646856925559057393917723200680711474832274177396583239237181519202255170549767743792889443295242554173568090352741307904630564456910163028883053720760081680743288945314082124500656246749987973591487233614345810371432881626928720480847977171591322571225526481073250681395388855464179656183618896466724317248348376468849190641517105381776016704277260836063165569756686289685224183373455625107155943924309342350837866042619292998401740455555633547889236937938054096511514546410677657127422052628533469053031074030003530082243824393378671543481500366896469672773051415462100380983276485623156375113942845591563715973175821789200527675536850922544350372623647822502223305045285907497435066927530756937081627463155935031889576759397981991290477626625448676050268816004477423408282697073538547066174315785917528962039543485958247823039166566058979040750059393472618980724730046189950162202116688881474989637341760856344151936777480786310767809862778338610294273364208856622828334378591986025016669985114081899416059607193752494262740313943330974881436374823342759063754958898926385548507297900717609321256888304511374198736349583727640752728395909008389858303364086753985139394555906222101779354031500200144012283869290942252172013252508978789117650390658121125652866680812195608942958698040661506705773414480213690398662084855597726722099446509358808483847784507676871599129539057608771606943843249433424520676289608629816163807123677989290763877774210310574222253108812609690808718416608532572183518985066096973662906058220674958019266735215124555059158123629833913097455233784391985655652884133858765125339424323147280169822224175051434466264550881261536744477703986510402381231802232724592857914620826733088263442485943798144769759230027525602773292164357208657237718675761393960124356497714715119682818787186555700414078779183146218212923642535665143042275602446046433451680498619808358069983954027376546182315814874911384207395049734831102613661059900635047854804207414449440438886989653887350091546013845357527007592517601646989674648133304325031198318825558165429579718271201621610392547925079917045427393971384384256841136992083242829303484166830990101261194065688549096808727341946098619762637795599348683738951547097004287838214331961020170913661888364309682028278469863822680342494682365588672889480812571325992008172259543007173891472042213871282813955674890521151967312992059581899754403806318612388150297586918086512793319027950332648961766322092679468254503099074468921373688482804757543754583592291833741496762393497779019964833548116820943899581507866793583574197890406577617869821455211418886192633308480879223406780688111218039236434163023889151470101443871224362504486928722103300396641079125107591716633042625263994504817852411412925583637398258083069996590618592679372360643155232424857179993152319515430299297345311561953324437871391287389054716751607470107335671159522966238666999935580916817250865857966908762244990427821192479968729598169190481591203749924735665886780441080973806892124888536332872764225044086083640903694194724933547412547246511727849275544678482467713724858234282007387930628296291842823920380041313720931802946438983446262509167445567422662329844587201384020448537076309151956284670876644259418622332363150618005330944424215290413806742882378892022928048885105766553210415762088977655643385045675232547085892298968319828717121148836652568952937776022146765117562201167844832088777800806150665638997327809887235750429537530285007511795924500867664694004753199099545086733267222329348451765115739799075220410338909797887268421856090408215547769868677769356260042013975040824535399606468770194497828155218819342206602362691952681430949247791006371418480148931105537942146202771500833541025767838098014085336467711799151702223972979409434730736808379784064821818425154776778626203074411898343069277028469897837187738785962476550297378761959381905253947024394583455448902879944367549253754282748077872418201954826819762887245043147510827202539434287414838824020526481540136433416681775130415962020276450421006430214624687195177796089639222293198186477750477715347981722066731401273488888474174999901538028601360561489641599305117492144261432516215638491773438561280105675168404848978632216867100452376515179184175812219192378996414090429752681016705350444458635105685721266076383726007953216229532472130907688648846766582024335485361936880373595885048899736043342556001337190565159196581159813667794258146488121332457122948804765380964987207826614709284636508374070135203924353906760836235968902496546465827899497620794385454175811590768583821100628810728551165744033971062015979278423138866851793015607606567578939334333599568873699444918676043011097672106981348910736681922935052496056918171482587083325907458392381419766576408997275183655213157586439109937769798229326419463838210176274935108859289129070947343369953759745130920980850254644872531858409220891467313363982859580931449169895732033494798901556538369490209382218366614983743223225049801461499060551150315278753649294734247600996608734356853684141660104928779430811788875934927252945085790151453898704918321568226049953116773762653676806963226948221356305680429889826776735324998170916293870037130245113468388167413297615348071313232826603272132199690565254394172905146572864064444675531516819678310926495143111243806994649610611592608920926466092073457696491359297876196173107189893458873064658221824901191004184978657411631015758214083591763716892441549780299234984328120992226468566258400452683847237911506246457287502730054424149585227668750581953556581253903540194650591306259014937773076968520390390526411273781431059985472736371498034392774131305705599557372582171256942442570195765678183041868352615687732726858437729908731365332837436359643358616342579195042584285162973170169619355862824371464621763657734468643064750908017197740952869665236058601624166939077131006408251579032080046195248514758938796794018332399745115444466697865750459820816641318837465246738752672149590850773836081906797686771867471736117393012079381300384249787397511416285864461552016340331139776685591762067873134177765567538906278593020740416033053498089220764327134492473002983078916609938591425399499216035370906997836575549285929118295122184998971844886561703568274075710381784507487062282499710661256823251613169844452289545038742102865481075293013357252398659451947994362513966357365637828922110052013699014590122026685478700825511729452065363425230973689853283132712529282496992113569232918334291991540703847009691700325039823946301046186260370828120371956439628130611267876363355439272113649224918733232531331546082915708594911033421542927243268683194496752303969437301207060169018788518326538202447196327346797797354323950257251543031085879950458941178297610685282706969440980353114136562520128774749241680869005165631629620324911123004272713862695053056219448463629632640681969323702818547438920153052669443170032017288616020045220462309209989336315234521014186993801485974579540107816008013764682682059508592996176414184873513238968161371256356401187554144031075842770324031086251587013651004189226651445187506166755471738255135019157593197730856381217245397511576699878442067129723202990455799813167154902669712446334199236469970792110896162598805550474921061089235420335170285552782554688458800177491914173502182522678259662400898329861764300719852706746991644604233259607177048910696270839471832934575454407627808975538528576650029370585712217656602362987908555249715373379351484800771712762761396580274381998657061766765056636526846327257652826337584353802274677642170981210540929905548878724417822325318417994182800800410151125408785800761616879175163061794163525461243306801921585986108223216141858710634968248107605926475185564088573704647500351078318875163830816480321099529466886923136812048576687400287863732444780616842027102009647166965996487736181077088994282972374810156741564749988400814972999719150831775977131016615616100821656054696347615859622833167171309171638856104217142877076294676552757774478844952083384656926169971577947119898106995144041107495556718976934585718362813345179825912834714491495272364073291749144260484247582677604775120638631049317957309297082253475676598390422235775002763830821950635268230322241131216172214401541750105811087222290725273946191806709157411197984275160874359215485844262481201376854858277631980014692273887218047384141337506922148201193939326679484615804449456179561837820461277922493075707713958315305112860288575286535332159525546374795274832241123163491617554269412532160946736187359244627111241266827293910940344959302642483039645148297978801546256531433801991637620697944070981462099381772892558054812061095103350897511167044684103518345755596834334048622484061334678737742706264140685457824140808639427245159909239004460490638922142307121413870002327853504182952951638456040823000397921386290710930705688878809796919257955493472049381284962205158850729352676621225308247796718581344437164598177084229141496506813070234723461632218357829497250278992110825735125597897751166494229999982490178673324690204358867034656195147773502841587883690661291343715147102699530395536442473501878723837830452328892669666621118798968584589566026977276148120362795142198542127393200520317297897155766227750630367776727819218539912367198399234684194371435781950917269508108397660269642018611051073009328238590320161982435639756417816495696986264197336519197558873868573734293628117566782486423665714666288866925563937448396759897645378759243016116667488954430531126878549077094773345837382255990285279836896732064553665517427007970202998250985709160785419244263328917613742336758355867239357351778344000317158151492473425481700494892579003264113953553632922658593015673913442791159016305876588387812311754584060553448591326858237881992040573352192691502022159003031213272286291605155648783401831349828154080009774677457411264811535833395606625904813880107312563550618559435507647447999893206481350113079778595833042768371102131553518098470863442304418051186369414826302211540738165253832525491957708222181756348465260211590658453444632876529899017081679101314913401704764443729544687746758347371560475524958206107267867183658525440161588272520787340812425542861149998914265183628313441717254296123579355817486548794500468043666266009300563586189717016544666379301663101085767646240827478770491344155111733810260539706982964603340212179232039448718478444025669224417837841033770870559083210534695320094982085264815230092930765198652019848424466229281573858563399939004584682063928183630221277531175007725886622899427102829722758790544318900566493055385183009572862312789039409788547877295418741540110243653680408434561452801375779336128874740561958797543955734525572762384639985958000779829659328821015767655227209865160310449040244380676166566523357993477225252434053759953261219966784126354716920765200633361599789899701797871449914508711642917904081442388558882239422796324796181307510723517117960375706223802803964185420219286649729148885656523278618065461841157985642353231703907312511793943680685895998225770639627434011097768889546960681555247177662394814219683267458003572285736753406725135807525600280197990690601601153594334955171982000696206437807435354546027295926027698457771394486820153646725946734054280789821691706228098154844934605714396644517715159223689950392771354916608680520755333432496909716371417216337134943765994338787134368605214308733047348793706675987081647809914829253826819587687789713508971588691230308728210511757647409804018251226819118098247184588071131214785731007031681404046644475033649836639087085149401617815769497368829034849604381367407400220349883918043617443864956144960810372808957941638987291916343609055429258600214005725001001117787559954121821937108482926837389366845023180845037409027561195676984754249054333218994882564054347020341519328129317334924130987893994228144213009814133076827919279677059526593199517947766679943964300771467358707988322732305276935622617981148395658092187223701760401535474717112472314152960585532382287056335743459420292563345982544561932350763707100400782024030145058865835116480724228221049115877321113282617356330215735221900469207791263266456664128024072559346790935907388089665307393990715637915324430603900404067380223086109440698710757123658958657534588266121294920262067901141638433073671837782745682896695159053329719426105952474418241433457903879215881270494432823368399152888792271984978087995695253792608633338132094820107570716641187456583742990757179029226791642939133270869940694344021428850554940966986488622598864436260540932295962622302419305213378975256669588885768958306962966005279522531040217266204409785508579831369331150672713112694509053243897487805615469400531304109479769404433761990822351499764206326588420892275050636290388586786827534668611696363126242771272787046512625443581196752037941980879352492344550167342988118679435665830904522582919849333037535138786571979882203410414886229572062219202885961111227080920235045471421373860519213668784893367201112076494779175567092806883225079070946599819965273499786672891475969873560158417711352352607381704540181043856401429548552075334191388976677360769098197108714049569038043698704222655622760530365002740593690331768253165461457582188525612522546930944800170797888772666024441219186646104591134020182901416893804080465268103556959447993969785458132940956132957165608278454451871611293893581847342310159041940119988406219067038319851678463804978891034340604725249263930394407148983091242731730829336279363347532526099234973778341091971892474194876920790173273281613725423015939658558964574396737332088868985453321480987509254703693202204147459103485262186667802057677776992959643923363728991818359572668171320496049942785371508812765022258450921773008638605683918016835571658438472352894567364805465688574634574282525259615304832664660301266528528636462601035022190603332610352509319869687444843433467405586973530125844625844843698968144925078713095765955809914416499356572053251689985954196877096668670443164249583812914866711959487011189403990489649274964221207662803089607610669016510988366731751531293477303184573254541866643441699480367762400157844684111653421569129744052257275215051270246948704970859374208286369766036932306523211167631673522172245464876080069896279757679979751442720284643531340797691822532714042004791917634122261391031798699457228174081110108296829733142790289647535210233249736943761585180534243510081548678818773972037797769572966681069862870748792315396433224922622235361272414830086182371899553216450599836450781808646293900273252173764322026799343777609514477471510904643934066430548324656395924375799005370588767476508706678558404350144484377657352734693079796725415400319648849165593674360100160221401636489339100655809643808514431449111296266848799438358093208542730289904666216487482109771120561638280887006074780968021823852051630881676595755718127996306777430211388640565482013873457551999876737701178313513832636636286895306517709654407857735346559325770182751265381011170277601745054019513827736455320986347800509401703084625439994757764185541998356386565472344196397976771737432408241801272365086397720162343819810410288408535083865115295950878465719978571239174022254863934382547394533189937577670327432502800959037896051019155911461187465421644660483480349749314721006647479287872146332606977027863465874839132055786802718620458922430419595541187436078185705041986846277622309847679676066915754984575924704880171560669155530825826178812654072769075548530856585489105907231895859791856889102248924205569479603482135537709419874060370967676078546063777545056257259776992773331211966560508540810770343976478304713779503855038173445035811533628121653528718502112937896684238029362045926753571912022312499933181978176478259644147586429965985516823841139536080432912299562510000131223109974859299953806424340689385832438534868498174493055972606742785465687906183969612515450761187314890930188754705565434865696200784668393493105205936920837899051668953510519807164860290350801012442580660233214828367063447892768656843135465957615343577180865689379231265508698167162204294839639372930171974126513713043464090313545554460326198928349991534245839591471430600789294758578832415984881594299031459359154087340472024630283143485561448948576526652558810524960961796812160738722122686123482798824217251051357828836730843992216521429727456606725044190366588696387530614580318594020079663730908011604665737194959781349151310340506186350867551295568394104227464589866600915935389367429083498351495545155054444453706410662020618943731626620531537432686325531363508182273433952422013260390214508141511939863487322257503939924285492067627728845430813747641527611880762042134087349713339586922713518838796859867481335881014385769012500688365202838817075312653960433396693269294105902242347848893488756984770238800033061075492370166740381650489892403353669418526752241076629506587303619717263895853931694895238421256464855388779578613206077233354326753738422182291812328423677788094574173459708977000226629228246020831004903106387283950000135690115797024138947189915773212524675699883018979390065213954924538502331144767065788252315762039922364127913817443747656470711485864823918541190977978524234647731701664605583962672486841700937734582191210102782092676797120937807464984587149756328117729865894692287507637316771464717971776306816154692586511946782752727499467801540648608200077051016531916016868803278010688619880783324697260330883126975861373921501857910609502924753721063958974040515212326948674548140495193112771674072514413566193284313387318837535555171947927887504697268015930200411963925692798424623810740895499991025959765186877300205587711617565903837418853583938182486161643563069677662988115116953758479812211053370413538820798814411827668511073314768813422397109858175961749887633357300850793606088162881494633491807772798024925853598042264695356672490477079111968112741582730314499644507353896686724707794484742639151776328192054145390994654950926957909549704513490185940236640262096723937233208791361978358432463579218125169195842088966900859656811621615927819603860032117455949603554622620179412726071982100030608125781526395874046797799448886639191785867339277346107874497845219800100302507711714066722857927701147184133110982722186161994454312963265326413464784509498231601496508456731267926721688759374490567850549621289235871108651703180222684725800533105539201034489108920046982122576684421908994489829398800087578906129554516058089604346205527155187698676830643462396278375529926855600007545070286568707941519612438032706430754068717328951852830809371336247409077394863021477638730464902072315418784081044691171421289261258732303878631616478593862482924928831435819988438897417194164116795873843665938436774657428076690267300350631900694673142905405141547078187969577560974766885229677180221862894488368411073386347007227206261554802506157261709310557670342605585914670185427979363146077916958521250163008145233724235333531042148149463431308859905531996151118060979192824271077045166045590826022560215943646436152505480421136015400720474712002306921264356976470048594425376842440012679877724690743622405425147417058432469759316579143199583490005427620591639401660450342885767693426338801611532418868714922615029777344943665163527257758830802286922381964716809464772248850194467661202642210399987131776833242897670700601557046331355066511428341516693295241849140659840783501686805379532646511374358616089309873615326880483113118974685754961534916925708723147056189769437849217016146263660352150087495470342215490210749692390120662819773289155899572216275675535593298467149865191877985302660940755094657474750835815936852218453395926047715413811157895728693398014164060591364177862562549152508242078291647559903441454329895975007832643962959005447963419257211116111387552715767309657116757912677135611618236286448305625613637702422336437188415189636644368641132770473419691702916884959336008115863000377914785765059000716882211894519883373451019864540626959822943816025793216690353681695889219229959872031969830695433584574698224419934366328898357584927028146834843468269605074501482083909392974718293402853060494376895419405957964388785128230061232713608509972868228359207210182274883842248476084132318372299319960552807942237489779451513820707881846593692099640170338938116722675818260140308871101108936743229977395534232486474098755056626240866704666077511627980658416131950906325873073495580670514979133149839158460392166872053803027511769694871436035140831730479311679239534871256854301651447128914032439580277413319303911141507972134381871259320926257363255271326138471356691330569386125143395850231046268500809786330856545966011987965229451023788330505755260539577535604380036046573711855649857731283888035483926071497316221530741925267801914954418872177729027235077671372786698156699572842080581205931562662544079794609341272876690470262835458092058648833690887003351218425984587040752269131840212197990051972065520518480352017996238337603983949349078571177020811497588328512896386920555368126414308028187280850485351957648188388427790901722767149161368421524289658670745156144974189404287700133538962717616115879131786363020682731705088483533397775761980638666673036877673856111563076639501603418590262372685513404052234394578053277750415349625221349850798334350990352084865645490402493181340222030763105856539924129501710049974108385607149084653690099689654142043263454961488726521288211764973306205887434885142835649149004401953443538547124051374230547797175629198426123347671574574644131623610808022613600329125692498891970605729769854223374288451909917587881072553774896356418210550413371873495048603676923953226346009461195938443626819449654477054341021988167542646896262591145175599894931830372218657111756843721694645967496505711342673104334021911734746894633211818140114475743236635039148597827316125832406712835691569880833214989208687649528073667624295619988849676683580788832063507571171432650001310456894666733392425204554913850141475824529427898579873777492334243844279732208433789122342817039159528615810618488757045492871879767058624220570313690136353894741575230478550302319396542089328816718528976600414397180163370073314490094188993895946550850630514716844976331189843782032247546122547418715188295084986271065155704427892212757760724490286194155283551521903484207405575017502519377329930872323269477835398485380899031182442857885836074396936699639205043817147239759217101320247243882752223627553748612326699987284079015272535622389395756676016992893968841280582295250439360426774943992263358232753864676161727149859684627516440297136967692856848983227937915115443162895374178710193692592955131160157202388785737319513301034194418403360432344314309404155330405191830538820816997275722674270874476406417236927367137801224897319889554152678168565062640049290557828301979484449618650261687839040236182078447568948791527091105515785079396429889090883140742939961170264470143547042660313896343032323074826824370728165855954597988143417158571380919522859792824500749995201239273482482795544779530677328930866850948244374666678995039886478380366441803930010009008529099450833551840458959248785986731457806613372418881049418848613242358795642003638224879653458466753891719976849124556566653164317080634200010076855241680791547640462266989795606635986653788837280735998517277412524798693711976195780648625371217883241775560205627858684028368001542505379679710401379964949707898734173395855531472037446543543960310395431187593240836526686638195049770934127336272519367085240692099338583361325220807350082582370190066194846814730299205178604539955722015972222760084445066085676123437601551661429657952126026210267124738939959642555426086854565886671911546510581320557922960688941116755332156376627949230714690567195721892351688450391751722412911408703200846087326402436608649005433146586924918750686401140721310410393430125799490339793664974658187060577468615270127407677677361002697341150917932670108653280077895252780403120584878749376382227315965403758925777844080240887709081257316315686221403360520329095230175045437746635936114461757176695898133878834944566001452845695941572579387480479117470227375367516582521630311482042176987962288125081390160432973452346402941787356032843749536970866566830807855018257402850089413268137525172355899297350991907196487292519772458180041778346124275876352828840270304161638314366892267721416863173759676230062021044562841196173813697048626679875853140198691706154891702876646330633417720028322511514365754181448069509356190364509959836750425850529668453594271535687001746851836149920273107729255194461762350459676990896552417408480328391629140117076131475993774236668221133407922507266841135551035705191786614412177424254874076341770151131053972220349606532428112968967796188114180933064043182137322963955280218152059792022247310146326720792484330991669981389960597825832876368659637331560014981095293562164802945920743477241412061743951275010723236023652804444610423789055666992883107138276793139603780022176068268873713881956921305947273386041813104695183328844378323387064662949326300194376828147530981827410131565769792911447878584657629836424157194683616108925177795752585394489842653227275707388488690353327353983259578787300012096055021065994671082844886790452540069851855566066352153343576053796834183876727551594973133143309855661644186785191499675862404305114139404918601986079771517047852983303714597359099937760616995285331346480879484863861890166461047406438671319573048298809798715032374766267241281521462391948781845973284266230197988657214966430873242594709145921357878566586486853746158217592931010663668249666952581531435066695205035592971152031282350638655453320204897895459026723685317931927180072873782309557061461842019023358867125641656976480055660247859458300091003887276365910841572453583788213477373643367313274612871529744114086407945456390294172023250179207894055917311735382073975983032628083606571629645698199388375007934612514695769977115516581166044193892985207680375929766162104809780371576883391425004443976651370647709680490090570858980018990476825736787194345868571567269822482964355059155096149356790014173727014932272577998500769818100803233952918026718963681736374152060970421201081513193483454364073745639468910027865980300795553913490985694312540214403307195636183191457478346690990356724297884935605886801899856135794272243950222122803394656496920105689330604120939894134331739049758572127220706975169768371864148736505099298022335295036370509230580143041086751363574987761066260322975260594681602403433934143191288972911556665733985571629606227208290481419625417637091028312301192089781325648160299542169312443048812239556149023519096778048519619796658521908723373719714485239224734615382746369149820761956612119181633721522448310077958257177276560999912407671439139813008397686291980156031345268539414389291484483569028480359226359917709638889297047943365158299490871663266840123278819919980845241573921071358385969139258839410070246565617738419652102993472248842522889642659893362774691549827257498117241340364997267519791309015778448857625011517190397587120875824513964230122395463129688870896048165633192537353567098356282155296098702816079709932814838685854450371314664410187159778744876137957383322817538529452019328302168580095410691672277543115108115911230432076318532174489087132472336946645354829588737829082800035774739211782488375079698451309631003569395178438174034944567844796236801463784550012978632576091300847136513059629072284134906420081392493779681225955281040603447120451892608969180083246952366547498963633061516463313776612605938043691840342297356844223578736085994213162598860426893442744824173901510093478075079181689630659520199689574374907238466752164893617927552656438987034970673227654262663061227170755512296723666031743250247074078840546073541743499237903294354928681467658164316982883706437424200669782787330499029462714842677053052842939140052759265138176105234812605623447030032878762487717612451369952889141051327902955465509004325551027128982333888696694367370422286745850148552848276440160125125946317250153045467559238663739182402597450739320403501710786466654328666761306582233072105802462640306042596378157333550086411026741166230045679188170786446723342291703844855369483690255367027749301395720650029903211769489692468608386654957729651598801027257831612290683668380811063089609400364044533795049448310467487807965650719361168244669818784501636136179895696535005619535306215942764840592275420880164283666770622058289587986143241268177702208670988664439880313954185890384995469873855000410074531222408546153008440243361895894402173801466880522147254623314203657857213018052456158646741173079299747055533328197455075388227237006573405259065628488322090458188030053047640122577994923899832044491716138432681866761422870377109387361753214438899673847465842313133856362847059463263550303517466755367967529594579862604652166897804872762639565181822659820608131400382732939967010504307920706807340342791325508412053747392059770116524054240779348774505033312502842892613151071843016752795439105438546458128341200992773883161145983187344249404233218280427386061478823769744952295270823439461709464316264015557163305684224275027403201741255610991609408415209075306413504692920076570614673892261906537890334430919638192206316524595595995610534735306312658739416331442512076745564802310900806385675782156684748085460044266858315154817077942143968407061388649660457694398819045794521055984507921956695132517588824733520679792134439524714833936809229572118928001877969270649716640606730904900066600543245992499381952268130553486610466831790242338950837934477134338739082056576931864227703957864525047618139408055029948427362007481810008909210233387503649278996478557750490220624186896005889598913817546847994343423229609025434195547037912660585430583074284575998691451421764143658402674513187300511217251850937260409938302672298264830609354285229619257460026081565529471857990936005801911423441913518225044448278612802114463503084399663257092335479465402475951450418622715096712193555547394372250929917797120044441688175802484835597386069613941854814146871300272545182542594112361329912812250622254403650741297584559018028949898481552153648181042440167819126513416480880133238320921882383229525099451355237292130227745012485106808736687931098849101749085406014107155943786495678856520565855490294386304910510082768220200750475425976569529809835073220806070852724138724208837089489733030806965613989128703603826014928497541821731727368115281610180214594236947914095296352838587699010196731663039083635789822882478534452182411608036829364511897346844679990827027846903067567912232109539350061302755674356547234103549851026242661315353208928713167473847882641208478116640073784628337605210353063830705806078585329431634182960641586864733075250869684310697145957560009621836289960726086119244605583398945603661789966471868663853578940817334529931690101254593502673081836195912403913053915317327472689478752602309035065366228065252477969261123715085422385710982941586577190957037101126963599324784966102392064136787209106910930239381631211539900219975555868196461394759754841389875701872174636540456779166957766938449674567089908564560674985316486732681996000930617649533114038520749576636796202477985504159426003303842389012509295185363300777915703997854145239612664937105164034170777197883873648464230299829157113507371349007868859215066792409015302578911058394822416148741691369798990666619461752199165860741216625945047586596757167584929173221603771525862038829196344792718231858527665468298264850573384504381137942943550228345402590811528538279732382263335771052962294108950987050302618729608275634586416535178078628639904225874095452399187545595333404654834894847365480517578881041373681359191459888885338492844823479600156328578673376008500891452711572993367424508838496015299564959294286890878807646393081324555149109838286164387409753810505408660269728885556850740110826858263122477302993853174028410662135749431557425589073870840080660710978245987339421911114267470082247376576702121865022351154247149600226701978156267624216871676477209080981722426264345538043973030195066135883270297222338378106656028454924168970412958129495739331343788401540093207999380566789190606708163248383207303763522183584482287639977798092768147792631259017782648792688120593076553240058105716145508696430786264329695135703228490224303883504963976479965441787681635026700382673825413935079082825483027772052451654317203960105450571578959188190943421138024635786480616085759284962646705149527626059105989706807057183831361890668376898712361891429525203222261825526575445925185954467242299736262127238725057808956375381841755414700906041401312857547206171776868375441836462099048742837589743152013511041368874969042178058506944506597311633045814803170846351326143037211899504498428750617661715424820505596726509689105748779310573595398080743139672450780468676301582638664983613752170399374235141334518834210331186435377875964081766197993040713942642383329600585403141268549554555336904945598690446770104252735498822386510009003294660941391589682490591378912262499321575557783885793124160690839745869623286318610475762147700573422827085646221526141133060554510958112364778929347426264117215087768630761183761003669369435311978209905040958306267538758170668566284156161798916250622379684671949200743510024786135941622765220850619819554477654249353009901560080132376124229492325854602403149533444200940894939955257844246980667761066043495970270724864673910977052289640689603546887786611915290785366281343488399884507502765882217463182619391629318898627649589917971077865179559067286972768752673353430076976401813125799538601158026118383945176956946250279213617258407664257270262044605079767526150720263341528661675916782982400978042786602730444099318176003208812055665478667485547033410867906944368471261504154989042738776691167241883776518042491183753042085153986748911977778200642141221351760497903414845440910344924980383362994366097121689088256811206751217889102942292501376125219829554418194737996003925001448145356299444405986450148618382303300358232526438338803231835784134315305771690987878631141018434773422071137308869309127756141335514027255466073717949973683440776877076694871017751749935606959769161053810343241065277659047151552936690840079515615061189752228693288080769224203934602361890492772778689442404129684162295162714052498506139631187571408173674543272114492818144037783704225801207420437034459043606090098647750567709096227555412962644743227374509405845361382849701335289811098603617956173931346808373274465346604195187819308137080818385794037819345261771600710496107860793577173910485304437442936609960648816064363148749140771694547347764596173454898673292563157341235381775591776015932011149928014158787857954673032420833707801436446749954453165165670491175120453594686965236423651736194090350657476989179527131346360691021530780159693315173791738915833209988616512351091063736920533625083645651146377400100539678570376925358389694013593367725303808335298504635061736094072922590817222547396811942794909124224949606118388349625997020439973546610195152440820685096484671790766992210708406763563279431989441110284877364875675509461225207435939483405471501786107132886085997923921548381447394173646913753956453660123607868949921206553903315454097737264418177776723871935364650027299012108558864117579216720327070384315889761860329548571425126640296218695902762304808014952287780165496927870379307269462661609084039634252869033378540385509712279778942281263020757442166930066189699670200816121198094606719276827039383083400097141759789620762433345900863133975983885241749454814936654149140949832999456108777356218380808706630182011692744919221626120805425568926356796785583120737647990934962657179684892812401072921512657141297806877681706101441570504068098056693272073917751953063588198737705684567654602985205403490200013839953263247430736792404623273764820607366977937242318292578107179938570958628086461834064187409032718586903522864924107374985068052742590454777250343060266249967619620221943367006898215939671810561164712405880109243987419471724453815513787083771538841960449162672007550899965123673199438817523868360253229082724496422048499191089432318385446359155529303051937329625286930660039534177438667084510648569099844269524008250389335491832120344359550651458938604623320694576103469524111147797185616599332361488169427835409869818446413956293817205586573926797785732615657050921871671268600064905149769032176479956418299807300153093756205210351460466787333658789247148544227564294430867014595626329422168680511719952043782862567458180850343483021244489146108938369304756699824113057545322882701468255460520507527775734928921835664325814059146550858779208045708171608651191421280490092567180641638348878851028368940512397624202785592288293450622348671929532323442734723365943998871109913119404428406162084764937455854578763404375662721394585816376573526244776719743596922243654149975618929815942384259346601976113084475064718861055734590646961898483974134045430193920451947737599459444474324131739847482231429773882577178273625889100687990714819727209106630627433006874211805805083924693033767433423255253715115812575252278231548870125004716166211784073767614553221375653023762493203164600700341729805979115334274823212542530485263681004391019381006096933893024916735526288016270684105204963021557267389012515468607000133667126901609920917773823026186869975919735322338862777553117801434000581109196067247822906227892273078554117251606014697306875661520532612601475388668864168205913560409720349923148050006609953040272592943334574220464318960314048556816575366945480118205961325289414676511311261840779205237581097516549594771912886450232897762486880941816435206428920867871193809658280547352363479379302493359244715014674464267263729888698968748686236881888551116624907550333793227122236899943753462164525806007625653117686635502716150951092701556031337528214516709360171912506116318111264823568274659636051328992796306563536255033067482364677251656194525237962120561260550206011565141937819673970614147347646180006156394293882058195886948455428281921653698580143020800337006316910374600687089855078571976006341495770633915051046568802102246758330897133248075104798108368287631228966437481108175501755420688090502089214353805380477282027155326101630888722270295661082050026812004714820870512557517416633213628482203863085708483207962469779564075213558911714224050088048414226033692598537826793823533280160421254360957060618600482067958897347966259667853926274265734689679440410305597433314660043882760794686975422164641215569902836731175529211656553238840251737786248918310520267010524207449194921335754655118631981437251311039857793249450115725407044637795627851435808058694255538739688662014979470957097460669626396966100064315576319918708914718015558410032580491122506587345710836844279298493169386210259293318291155444722528592589349360888592305600711036427587996869679871609754065664538370919765798099032174589506176546599450221050229465525678623861672043427420843710222708751949437272339909514094822361194389193074202559735618629419381745959499866647096278945869460425913165785699285956460581834166171334267089694010194294065154257470993246720179523695093050973934705208883286172013526169242765447946835242042263646739303913117554626963569842721673175841579211718342788663898114013208014244033548234291219458464859462228488806486618880253525630930213586001094129069820779776950230996259572132055252513192794976230225803909687547662903929855830439655184545951440514914644342141171090842422759073486781078868862069741217250777033552720243201213345531135926102621518615283691780164642144996717861014226953288540853073900288074595894010142034251079574791541856858606590845229265145863918157194000700488624238132843898593176417490501785995314259896969261855116839465011578515159531986821172991493028314028528368780037138200799204437170272782841204957580644095000777582049760859461951301226189381039853387145270316599239129497008153360898036247559208844693666883216350145031113557279466544325347405128286505566181490815910084677886469017632420764741814240559896105340788818088620904547213681348803625454780494035321893171947491903395012740818388087467540559799678990262952314563475288986468669483424989540957582671087883951811925454712389526279055997349524597206551305478407980570508466881672119993114143825496980380174094658695625479557463830975013500914075341829038073705596445313762782418633134612025510300978645692150758106743852747213276442134816724374291762532068275998389842896704575485554490566181612834508737413833012906291502385027627368049046489554586869270941953801899461649799549122153066018706023241748190779202478216605244131659496434139860058626873740198544599290824424707110823077205001716477214100195461293179356262490963918385907870050497076434740532234807783627016858021560474021445701706751897459476701831418760912671752699516334919600312424528528335711026012709370270127407899122347383702724769343818546432092899172324835851434916239832283312448848073622149979920889712034750038439393506754642803036560143641578672178340934090056029889524893068919472850045694572487737629087724335821294213537109530554987376469701191719047504560929867070503871510795775661471255778800900408126779732937803070043638382662446498908923269290301276624829805882295522493900543491657405085067437647846597052766331161661430910968094144428809058700194930602487247176031802265317086290183482318200042856116301170053884037479447199395356941589564847675917310676732932405187725016212073749628523155035285710851023234611760518357230601483700804232849206499529158987961062205918842788084184375761037864286677653910786349448139456255456252377714662642413817084804758982959668828233653312715208686088131047440395873233724226865340092671706206331831947192682750276623773211954683636681536316545745553768378413308954031039757396391603989820303156923490887290555514554466182340667047870824636802177748720770725963214249166876785033010589246756079058997326932010395825712701723288213837278697694939661033238945349806635815175110114986967598269324048211411020164626862383267059599978726880933306320129012894561627833433944859387484940735795721107073025544193188123324180068709063928163472772482810056768450372371818166886094880520123552583781857877278337984384868212906290148364918296227038187377536346636073698219693469390986901317891906574229045495340089371057430277694750438749663407268142852923386363387367785825788694004275453269157797382209362732319988923801247044065756344867996363453633763775758969096527933455917183916210807798566411779019525678015375976039560472276821371549729874473605200122341754544083244493945884902082876345978195708132732060522411475453446753306155991917859571276913995098553771180971448758756185030599188832408247141051600338120166091197116337472965559811107813334489805830339069367750798949051368387352468082135790392665672653405363566031158806889941091705665639434349916583790745307059917795291025858054806079751101037022908493383660493243075624261437312442182190347344586125286356680661097909910806721965247907961922402943422182651746621256126992405436585694953719387050596971827369339896381459564267664436253445773871396290547784136152924339886518554608478938989916414708520616681734089961574048103143914798770001137785899683134439080760911801505826587766482981563625157141718232838653067378583615112244004105818821710699779480648031201803489121920419439673664156671535142263074411226932793356692559016959419022122921535722595544976434524481925428780171741019387923414967819447199546899793899619932985687739418991315179767129854148815160567508147948215322949417162975774985397264803481175049152113215694275799828864038351126685551535875655419267615121075786468302243958160715153730660737646830217243706467641487021912183082299947931655304097692758488489298349444375664751893238220773501342851203953234766992862826482776911435437006302225097871648981273758109482299198042243790234043017498261826319915652224812136821140226882103518803512269011299595771591788686525995171847611053500590624039030834688176182286294497993834839929348786234146843884856990280235990286961404313451843837421673134236296854462154416546444168218298636878739396243149046180899747418618129369939358089442217326553417052971772192232412302198344148237737215813640974434924361064768654775725229831737105182815013831857755535099153733378718132904456539855390466364129469793098990109735769706365974807031948960292002176673004257678887200371960974289007201958009144092131632751815779031917719712244152507920400390296650042434291496537812703677386548677284133957544861735830111461637806544846303959555916437046898961251659261220749226704238980923644608554029275074996383480583591108838600395681286038532434524732775279219016378346718434094840868278810296531215183191489836838283216253469569150979751528940261639027550330697558791933091797687579119342451288172617114758123459091941140716878488437551868289659967482184506377877752375549660816169702026531685164563146997264097361662951600876407289549263841495117292165378012001154030479478580375558552728165308729713632957216210838807331945601626401245090683383119855333880093386132350706177928669203983187018895027736929957366904991915540647130009402264543718227941126536821403554842021933149651904581799441204561072531306649019908059684744596620066616231009844304825108091381667645499092560727403452604566576283477425540792822376918945636375833336589754319074509116093325295086201865653811174636134630167281323776550729743207664535953001982943173267712967132057476480693329294675108280987043565400134851024157525387952120103867353832921205694415540703176306921764386161639969594046689339814614038897004585045857626798250806437546883231614589482628886567673139338847553028911019823593227659082931573706142835905174831272384470978186814361205650735172346743570752235671574007025968712779333108097272618226960655875526025275473846572462639314956421299296439891893005625368299856123549508376798245978204590704164580338001799848794549105521338548736557144902568511010285682898840808900553176491381855631627510534114949060974194260843055544459538677793439728860552637470275971268718366750673069740714577671873028213171344370360978603695814002529516198745070603872169084590350977263464460299457392074357672302985396864775001495374806088227018920071690002207772026998631036361223363989244396585410810262021653128580837240264948999664021410354191987222579606564979711175906001019915142265342961087212642797646836626721452968326322173424577302848191013376564942533209526776950628313235985679151898037952562356614922120405979610420909070210788420628531277170636246917256272040894226652613335307056291310979414845363903114314023333056093388919032537252949245541090951921100673427702979934496853117841954819379887014603890341216869085876727941734933257587529166269265366808961158281909322429213821980152129602429409362521973940129257958875951449790518850904006024411399571874446066872025265801246569620235384747570048232201752023360207044604539053340457256042045444748536974039595437065317926350278353962680535127345952101648859885561571909695656879585369738274882662060587625005273848901510916761490886027340673730473154677154274282496705443329978309942386978665393120839357671297727765184658736385287238424900482742440307210197859039229594827888959664903101132841661517252453710944888009072305974211992671480321160119369092695370848101092521170690052889562520447919278708370105424626314561427465880238124334108485008324234801645069665033916668371391419040986728983845296799411817937253792554205820661172530965514395375691198566600533536304602261237727394762492615472997425085618755066539184330637691550953689962794114318928257935630046681934134902991454767578260828546275960381084554354779762623072238677620816357952351078393845581421081827341338279561797385735259044535301948533303433599716231922713353460552916812375596779999300236674483759720671255357949440489093958622047649082548475827331121549788415178293961952312179437808159114554835618356973730792591600894818229459823501127216662933728849998323095707858967018573979146322429310441207448738646439519797112951184913723584805442294990724203745910671169538687915468695917181917031398695818760464864174905408911748563237129961102463443459665789977882039593665424113448414502117927907997419152688993260765436237133675801934737222618800216154363293775588416882162629692541466158248251426877971747169841022021233038776988941326010891942327068890555723349155400427853563085183286008562928676997928679732260161182214847706793412063007039511569757681585932766710095097817916388381114868359968487850166320936044880937234978984748097724721215332409510707876530525696477875055636059309229911017930195859671849538820382942980995852707551232330670906738364873212397410089663895380558307697562146467533550822731923627761168465246682037122483649071229504065419181267525667757798977987569538579419847041039720787500984177190230125878383423389671683527419581196431544198495540090637172777347963354813762685961182190805322903669088157711735257874370498604283077180647066032477608976514811265862605490485532610076715669821962907938004959502714414724798921547234034146813825923862195933440103939403555942061639537668895299657567155187539633518912839115630819017457624231944420634484498528403771769388631945095591088588786284300650683352282970207255922856305360416798945578221129702408584399819390847236569277558352649868797339684940526397663831448323004641023282726153520719386641995595307369008362681931201929858124243957076761387348730767075180607192696485120891963989440727920184839603772646043311637169355295422475544710881230247573859208274713296975480087455778539547730716459871897957251789446578729619759660440783594768808381850535456147515857893641646862752697641914574925128490670758560048238496747064487472757656925166756942740937168506281220842588258106411187829860159819370482473661218938913001787260869339592708844030526977259724776860295672921054889056260680120821255272303003601352550254980937686309686020295652498069787263039143719434621240866367436205850661081811995271708862070287250520675321024687042663762042091828479109675574336539128060070730350347418098095178218773649587458612703512283381393702260120539790363135467135127582699839889877972912079112568102788292191843448064576717314717998398989776276344253687198213230314943780181913906283808093714392663108103639077634484108136120942118423209943375227551294585345755770680063056858895366700818304348189409380380977508882750361614852822063055372018111561890002422762897067706937849455210152821688762880308376815212576505336134082129676517949637590064962408193636222195516579424766982509882425218831161893765268965820350508506536164949238666664978647366813577092960145553739039157294217700354994716887233857173210352569836272946899323944235480214306948231860595213948627450737414651743623849070437722591501354318464447058906565696150850504394087253736527140601893600279844692900431417215560539136573018331569664337489469081600188069919975147842465716110452720312320850742412529417798220659706581171291432508654098146217443917628651069630693631256791081701184397250679312637413964853433941352232199930554230398196216664873402286369449053015001103738212861602521085559915453038849329473265436622327241985789313388469966700861067905995595178673443406202377733252900847546484064654903882881308405044822439960814758173439029256575406449148815979496755988573982886661169670579320779984050489109472855372344567404771113611367723976629228087912396043506122094412233157961865418552225464508930923858061593832021796675245562752863218550666440208922964431965508893878938955072613721013752519256334957542724918135351100182471723726099932891781815905191714461395100638544722644382586663138685546924827111003902457349179521539964921386585004051058503236841861171652448270894990324882595118044407744631549267902935584576716716755766630547665149301165332579253490255334258781365041114002488307935381639720987177787265296566126795753610151808262539364119711069550711636789864533027158053589787702441784371396902416251704632715589589611331506751703991890229944121342338360877207360586841796631745994813731222259229086343238756003607033488477708785155773637323426483108234714009743916139494747399148915146681061844534006792451584057078047559073151628732604032031192062770965152223101103763820357032085808655119962716493629485898350367916403677310425450747521036981414394308685506738567442727184107365042836678994492304257461405511818187236841608482917083864446012211435114597846733006938063224882150078338552233579034112436909818384167436764342958841398914369375588339587637265844106836877621004073345128682637358662164659006224616101185930430988845507804244804665007734366967474464629501202854352662314752773514099646699043028480521782932989658128997347554136340752161586843743012293672384315603134024129193911084373380207245090335780550819173661537313883892553228358957572166017575339079183414798044158456087339799836011400159192488649282766556900928718275962527973452052998301875256374874327883828659824668671204823503519361422867419462074126134977327683981598417089024243627517492995826310999223138024641213559634133385690347015803321009467859400422676179852842481696375941583786380567022701013430686208708991995922328780968495680314461974937427189738265182056590488227493449733671825798837406619716249116002545905729429648411018693213874089800957092759010553096429949495598394392735225679852219906548533243377239488774990178630472339128065778162003558283817270204498923772239712614818535970480640081633980138875815401498327596098067855745305205767167562982605754598211194558847727590730319151810127032337448109025339609568116980690658977890871505305678686078170225263866917628291022867235728953224619807658802357055972208152367528452633379645390228892915164891631296523309038671314101666749623067719308141380925312470362815984964395446264764767207240748280662310304943539913577973057870838726002586038018566493437655685953881741438360858868403894614829323540523255713666569432442502368156317993892602186653064665409628732484921267369325946951845651337054499070085355889782265017892556205278583670917454410075002482292093880653247770896549197782793459475268117079563882213343605873140279795463961924863289524875560956043659069166017283130853985308157892334533451164569608513301144076132893010185994662634233949854558288564952292956572707981208732244450433788488688277067044383328911041382570439352884511603671381153063581971650519520488087362369115246023426695800540467073354605495108408412296806028601900202936598822807918825175482412193009351063464638169488365794444404677220948490980751560754988380642741798719572304955037958717826157683426252262087077564629076758293129410870784419576202827188171178416552185436937701156666928127914242033334050853827493027898515223440432564635553964420034023460615791882681628286993669030153738623362067266004121345237751826260791221423011492763095695573540398069289820407474286596649943424628035065264210266452216660578115301292872032706455585526200061138622244635933383959407687864168454071295728673249001515820809297456796438523875895740577960782136029772797735440768581247597175977352080809174662193181160681536610164295998281329250684588901815369473881446299259402328732926309631789308471469209296732266128692187946794731283490872644984617814856704907779569999848295376061306659154403975604144378262108041924964748566550316630591020545551673740195773464969094128254666991867675363831296011177768333153410706074368294052873988942379296148408226728702396863835420030919355318221512103365990861754914690777290200904858925302483391432986279977593505338703112168271296127493287461678940727731226442473877947389891763866247279922658786189748421777160207555279887174830009443898681499125199945753323294811515784265564416142749325650468422962292085685787720818977842392729453586728116241750820689624967280446665322007245890506402099769289326984009848161452933149497691288612217012624754681356804817133873014637322792811450524746246497470737651192357047615168372003012004858354443015574288659584059625367601656137476499697454627309617873924542624614678909692028579888835158962996332173079969222288159808892549520587456217470152584823670052425314037210354009618024425751479304181668894777442033675840739158578020491520530297481766897003571125760111820947636011815125890531287253472453304259201235229934794704474809413739020133511141278154621964482435492406705739699606281258421141181917242277069531696593370358993181802767881916576156224181473561895468852986058863811784016251967849147792077015164349708353294703374688859445007268514243632852313792691229364711514353897374285742696018522815089945045964127515498160753615071709483556861748960081288664063512754066312644690577578283050669265785168523837512271037020345441859722159163297455228101187967497022630991462931244890450752694416257807388308115900436203742403347177698982250444802275166914672745139841953878839252918585487447858615402697959707870573213108288128733169749585225637882232497694425037190333577043209308705134155918552168864011715420008246709230238099791616487154683283946792771872540980319628243288248640021145946671154226821190589832091499460719422145460389361692414820608855411426239549172439488087712708488451666367358011853195927195350739545301673969986484710187091786224306665205899412605882570241035835302476557386156399303568740375541619151178494474147397339564573480503942828763667949579998841297660491301812113213944584757229864166581965768217144821799048146917291090593066832670177547511629941332404083884655914652212649487698298436786228501232509691030243223433657306364639162931466062539108219460112483179237490818427601951348056182055998544562290991729100486794569173344860464786651797289846137562176304663732482598207614027146646773909785984448465207205869323891305410945501234600118444631855567109003269321560175684902360395981396730135020409449305628509844900300684716899909100267919590459766325487535014288122210102225312729127564112141535289053035167262081392114707022263617893134871771948643735833316848930408403074965097526068839042628682778089836111961348351703745245390333317226659703044022146556807368991981619844451964714500721051648833595488647209722425842528543680252680581165509432202435614687899880955033647255690461254897025627748752160222284782750526538577045751985055487124951866565008567580929482870525638827917528368386765384222268821597102271803653504380590682267845023377165487017192287766017084045993250675364870946747430846821419876129987929834980121673129789265676840076235937757465179805820689035598374621051092358217145836678920198327624072335644639713347238879475513793685068549052343378445821185290848296942583888193379373355751874473428023707633877003824991117911293041742029406219464835959234983094761401861197082501147147703662478195507566510903552078949711968184235271850797608075925442891309701845843487669349296088331349281785649096085451021438030752729391700695118134232517030501342095303645613670754710025127319402761946146373044446799721757038284789842531299264532429245302792423977590186319212599138125562888063051618179931754676433859407668190909083096907361270714777767224148088674659382865031555854781064637550564494452041784813874640103483507762555026494659077368954328806208297672450087288398570586401819433829064259406058316487628948269736454501323179887033480560961127924884276602168469096650004961730957222530079654900031686781260334151094597743273465305565458413222438783175579127009564974643626938769064235659775542464608598166776513351949911696003056436232037045037754569014857277673143103812846828140471962455924755853142737030359963005156274730436216739767900195200721302371735000922850533829301860353283509124162738974619067916830361797746842747241199957763012007767219854359522846862182812745698388789296931913618037509074072687662329991132805892578135369239224674206243019124824635695007795827721627643772296854084177787199455535905643411753604898487312238109690735707693282030112685844095764622471835118168624718259278140343536944032144384675413148170314685743862335169345084553730306240913826913483647583591786439145609618172934115334414242654418585562587905983374662171546833575564968382938948287221888665127604536862344628170716460739428469639989421613370198548427349275356128664403476120649895809307136006236362933632028627359757806924874505135710556918263926158636081742879566723165956759877540441727391320590511074420591835778192892220865753928212858881653810647761388592122126411248854778507061064803383004268757171638345321412398175961418441653571744378536323189279704277084256830363957868505057558666714566537094253088996145161946172372513890009411965923304558845888626879950331068543270806541914568711728191017853629970051506425819470415159993766228729794250038700886681647713109920255300206289582046129886536096363649889311651278852036280352529186487546057932320037407707146635259230106807133998818347495072489594723979099583476077856390825110475457663312047943515261983187210558199375822787989501169931893464690447944704148033574212987777639697123879268205131943339332801550109069741172571192693994024062511428517395451483889387286349690677172035599128974694324838734269863535803896667451799285337795630722359374223867365196820525224886904837946841295017254413455317526816489791219428338103287560736390489728110891590508601364294312826396318729332459432601859625269773914005611005794881845523053856449772146689793409005054420842169452121346241031888959908359819784006667984304393600259190034965822963608935306464439886385249999953624656106263547632226328193680283128482374995872288708033493768084043516925651453065761556233774181545634745480586702047798922404146833410801068382853411781982418730594997929789586764493190051303926374347487249093991932815001434491746754501903241678009996451523831036208037657190285776882045591720045208012241089254149960114803579312920004898270911847313654129326763079752489112885532852345898658247150306315020767933027169926076416294699168065030985798198296424157936791813946551805724503156731074313689439614735637219242518286720878620912533859854952601617760024089217553500472266395656309913653351690732306211678437397017942478689269620907806664977258634118131219562444499319055416753640595201677889914408262679569840258074925125560519186418101880974461851872288232053386590312728200800014981193620957171595689008586966441007463697673011417538523071660590264801047428200597238621134960639984164427458644083615705352566786346359342969846825972805915606735062517090474654859065037852288128262446263323249535852892480595726425528042229063529295210776399337420370848217749067357057155414302382924286401850478622988120222203125063359860169121449466561698405718851782257927336256389210118006253634106195272078335463237408906800243858416200409646073192056230683225521135300042540093756799092177961081923433526343567026772537271196533717982808091602297758540145028064617717654185841746862422031073200787094886966505864535299510493613596967480255419207094949636557001582770641250107042512012451067159764531360407930661224334500165123273761746401479013245268859075060711095931449212270324537488232223888883782843615233585819803043469098246703781802995984370849387378335799265259527724846218049244697445341649704530042647590884446073908136378635953509743755473795065520450777794805915788263711984841471785089898569621661864266362286644612565461856057399498799910534962123144914964847242852335375992573156372770573287862670106283392043864611992486073914223810065964549963844998208981249823871885431042469643997668675215766731282629454672238842767482013734881648934068990669161731968274125754272459059409543506336559212131236639812461863297727601911752956943808304495605354375736011537523070123161760237484755419805725444897842868110947961791394029790708035957862717645297063900688512522585734704120443317011952086356499920017499740974064302438927673290489686108143089169876407165865125162235815505430287427127504839686160336875987226252249895847700174862176544680288674905727223232815520335127910379344058320957240775040032754892841649110355827668787918592899635538312533301681033322018859283243800888201967497496054884133594995536513576379594153288229345221744913306048551695081145070531917281006254661127589990637471029861149550567320726742282982063494936696501757863422391853383118879132762716758894451552317730411626434762490288708739378182206195644870748519041267132987379482433545654187741594797357586609116710531597300265151772096402186284954727223136844858164871706368652416387187961116528737080306673144227528678214730411724354679042276317136086001569602000227554139833179644589885569482833041369514553119309954347039380254399468507466918770140097469239957504727470443909132166444412238967729296612012961689201187168239145211221806796270351849047648898940728688264853446980575976393985839525797445133004174997272240089143066573071849933075670228475294974448696772736472401922954059085309751105777746544618660752879991381158694518684122518107436404683049511755465735034314939818843730505641619306913876694123839787079003108715573103102914646167200700136557814362966900273907243324610653025296592633335407909230966842339750664562480676311653168918454644342212888728285353854109333527401256156079414028025077350704767796176921991670237348205732180044383773075708691534173035802295805719541444945203559728228565037779597244886866029057956056381534681836051216033341992756015340237937596647630720478953413016342617619170286797102093539263276273764219825820356691686361656664963232383465710618096077035379685441071880536917364544824487579177540650177286849593782871392647079788812487726500100432322581574093207250074405732420162930701642928231341486252801550116345769306032137691302013104023665922694385669619416681466599057067068916885838329220079181386914551793110006056549313346835293727892388849240473197294358300466542262644338100572453919553499656812264925516092961960447958831414171483999807845196240695418797673215620926082771463262345772551644906354226613223555993074256168121138737368281282781748087302704342721466615574196241039941843633541546276583989936632800973839470123209114781284136690811470500927233636873096664613548513336021160789186271244592828666161145407711245852172778747388927512733554265187746115835086823284607410475462837401796297515093307693009011271937660522320432859282507839495866753321372305500066235215722212823567997078486521487145233107294379876082156059209782828484000944345189716201105746433685312426800657652382593407360177297676520671582177243232060540995000948351401365217469166197183293777154754808777013081016980951044714239244139964010794722137805950423669890137067422644988454391502957659027281591360727179179579259025190247892143537048309078249723664140605727348048380823821547809129065113901318319371471668223857279816602993368437293388939849092046906738543099754903920272531690731504237291899830894234916044565541930671729387351872939253906409966772385904961430664703268706486132803450316739971841421628328383582672538070070196486438099099628498684630631366639602310881504790426245662172257173733282069299387690851100053064059146594479364340296303194265310580802315995993420386515228330871007782655827683902667248778194375163658872039480079001438019570831707211588822872750381078608977291384753172908292976601667550816978926857523453145482228950028338171830344622373938188294904202245484032375481270194274316580652902420053234731447340449980774575493761638392315729052157996913699470333288918183107986738447296137108655874537566671418783244247021806703887883681873081103497716983267208933656853239662320326626401527293939967171059869248880905474775419580090085028069627045305075539418400383542553259507306761804560413331010045686872802934674219591687767759648378724920624773979783694373681591267994751664768562274322270582424204187274149627655300201659750740101985174788865611349302746588641369267778965059372195922036489487772576152658809649520600895981006688210247628156746221675347917899623572468421251242402708158022661019354348835532681267951112561372258698379534078781668024945827900407331770627715689989015316070521618298068498811643111792259784744649793625421713585221059612652157071757311014464289693662779563254751424979939268248399065879242340481562515644797597390050932474674908830714396014900615741021021756241149219147908647071942775747575126233071171059507701105251535394765252444083087851102873566037043896010955968591428451076690917279153866267744920793605377507877990020333759654174865600246458897339706495294573597986144252346639173549995500504899867252163142539530656581830209100356142195576296621701510408111554257163084852336546110094737400032807976909551337854307240002699538748872109312975973993778596982293914136952723594764217335089913656930648276958464670600214857871906842194783735800738508613769559558215056118904661383537623320330460649824594916475794073286871258683846499001927829383396934972172920095830549488651851318121727188464418064891172577430309573765848695824117877564988713919329976645605215198225501451384164615878263367597495740411393063850939997093945582985146771234748853662905495406771378485211422190472392282066075984757136359411584855141541302426017930898363583240910360425927086208463024790294345093398560838268155600026469029597878830348177045970846222275890207347344645427233328572451304316359106665938874915749152419609026815457368769224818187135152323666902283695439525381279227161117992100740015975467409925332819588311344321813289108010636204882082240016473100697845714740508911523773623575175439530746075703637483783665733443028112852566208311611165144135514188303716075696315456280749904937022142123061895874986017812298537763005774797074526169858654340128866757241405130163488830089000755641274593601162674402542314395569481646643888633680961917406028860095527530582770388363591413891917170437359711184569693808521846380270649606022157794095342861819665553756354932872960289997352857367778679355538287580552652043294480425648021390736590094577702988639666897357794262255214114223433548276521124312528913878338286372749201802959978934572236918938877688116632280964691951213379151941387180048300917650534105121924254081588061629006914581247115603182394106411381302520245374689599123558140432720689308438617414606146026030745756189380154384286581000778068593799292849217440689935158598702530153858746444840891969787151361243569377253593562502121403758483627473500997362816463190989364033264725238628409875645843423665861977440607655806748246622520831967216768212981743637807990014952760604761549059284253704504593030474424940412169206510258051058438188664240720788493367136117622987347457593241146535805048810400238483845848628119941773831729765488251647075163867946058898346266825764862340294805959513926584446608994416803845223741522708765391095796594508335016265747925754232791458267567938702426210439525874410799569374285329112436072758427703617311488614767321768298237012390675833192707230327107592793630055784619768036080896322573822568442006320178848201068188237043696778232375042649517745454653754065178596309856249555019232211245540795871923130731566189297459552485619781564198921442040964682336260054454673508359247971139327026073806406174879487180252421856039960913060414363826816306995918906880667239615586443739470072072087462500445818787419391203208172924376101561334268320717971524761503038911743433840172268088351342667547354217571572179980311048574118965308543369866481993814349653370751059770149188479444351551868969894075321198022385518797203599768416348008821135058895656240377121563534789890818890939672033165244882869983758570227594343954028481294013472368845441266171405861679862235641240840427824072963425063909715424751235890755201116362654279791057840690287084410334424613839588495761767030280025971154471014089244278567056502649004349870144094966513350604815903097029395662925928733441940675574116999983801164013179015397056005007073083130658504951906066646947782519574889185291883792190662764791147372984400127719649656562140501986852722181123347159172893565794018580705051681259285277985816995156815051151842722448974839433614833284773788192259314981587044406097085709461445320392350055838747940406453583926661380451258986491483933422877354813825298642969212038548361963473219650392341980277811494518600978293866443650044926535031102716601170935968131533249591591632530118094039277659463180689411369409086744405929869599540195691211852573279915012076848897826626489146216315892335154076776745010916729931104261684397160036511707645977511712437221020733393018572223578321698864416886936521392486361206999962547307907082161330552538964261677115972055681099364721871364904554251578367993761060126849891919586607028021457797179967260246959946891618083652584349163535362259857334496305487758611328902968597670577194557174774431938300540582458124202215156760977758092795787776721379914140873482305318851701819815585888628612664133017352918360319359400877960890420534859764818186344732932553517515512806533461420164156691787744618818296838439096933223972848747982832987047331093959367859024632646530666567051914089274364533600521896273856594899813121249388971135845764974090354060137119600012203944322242351464698892232493021451576404460044349296697059944504121692472378694156602541439505606175090739071853834097160798168549302889109554644776640866423290544135930319832353163415846026407777481677179588940120335362463870934253706909885552519034658392769051967907792456521760358361827516762702442820725049722565407847021966223000275604174268400651971647571720554384248446468790749645620171510508849059863031984451212462517686715081015166482694095792001360496294600088723563661640970754782975298017727313752091973242161846544063043048029221699674917157731836081154918456935306231413630355600025699766981249121966843508919514654584258238704181336875410189925100363304063325693891637377890024762205874510236476368199694193101492249368464578409804849141521360343399768500972537556154067100355253994365724510071865504569145540645633566656769929533275438552150243283660197763670519608880229216243987011223526112775290900439473748569776851620182705857152035695572536960955668698470792751910028134131662783944751669639695227943177549861296824441768424887108595701145025999661827070381373523090729099708001766459238640466298209709518248641318012004788754511549020507605070187595761248998066718567893159821660129264122741023375762948091511675828879412961169289195877600169072755375526449642411408718783080300454208690981658515188763831313377589157016683064983286507947936815647530865316462398955576598175147769183783508060686924614660235079784165090541797453628707461363239177276556209683870893845204631520965878093924681701928045222416977070737401960462279213182995964420379117277982430811380182673604767490941237232979553915911532152314677649689672294693854280727489456037746818315589391010814130353456503785920984674121614086355881036424937818037592905426633632440513471651942063625766657657602783192194208247594064980127899605979850766014929038670704690229372210340901767056850390957387041637048117119447918832144208774021829813720784795893097161930484222698297606869056965743751020170400694688306979349884623822626139577554401111537137661110523818243925087553270575007160441703543832213063554460323684978845352739671816048889924245726000723077792407611294476237833229117047743969920498636619749153768161174649008907510771226179658257950057244786264863832702753955177549242642087562308315981856026553442869152148003421378270536086610539731579144034904159047218706496436981786772217939868485106505404646887029843735038152688758218764558557514225479785044072870183536228163454675162973174671614420130680733981079453156119933097065314463229030567292171661165953887455243115873443542627042869631822741381870491573646413740067659038821768353046056033618155069648413421092928198289554777065435294593770363472895444620278801045785926668052150355148623486467829650720649334803812750517925638859461174444417270394437815350077507870432851829876078974036144112040583889713570594439941180473220522571051195519095740054552781908217589744425098994910996641369230332081144353070934292017203553056442345866162506019043932593132856217211661567078859638317119689312570840422266950892238748918410761508677601737612751055012948409393338339702877929353478873071058525368868027231819915191965396038514880048766242716054757680276006907335672461205275914066392113580154613342673672988639090568816037283015807981787645144234311060718075429335744811965173437745841891568566579169052320281695265339408682708708584920540874214204922406988317041505948415706033607193749571016342978163285039322640013265147572170086846840954998142396169631277178113189186855704095929993107115608297435670095252591306939243192745623224078393539164680256300762583567872933851297393568594624315971399993803628896705154810695463675266137670451970940686708827270857217419309286370470453040680264930255557859904004108510653535612150578206142326044939465095849803384587437067341981331041364316962647980669575368497338146707276269695768718381002607759491519756521103261345354522206573395861217443061308444044117401645749792893689730493238490570128120012330095855507631052290906178318823652800509960241655451030394372986780239104645484662098420406064147974999110439392565259488736782118669814955425509602509319254715993731748458752807140564157155128761617724383741678630312365341406687908749514336989077804363847892122461777901458826534850549559709337690099058956459647640908774783290834950059777936049741276245919269414537327828395281589140788145379812801277683350574646923998949412067909728288180493414809406120346518294950163356335370086783341626636654423665965286303402111638480434968620259317199528865541748031824446797083959519109109898429946037142424447525956652091414178801516290278887777456883011686692976178927509489507559561787293337686683826461176252802430906799233587453713842133952810415599945533061297495675561300817801688274433259338388732806052966125245992196375884666500188475593344991336600172063256257582976033858935347065212209830196640508532152504268381848529605074772906412233094582977128328156659269393231919966564420048042960577766585121480403457907854403984674549978129265591884583269623100254397749499759743904925333730190243357157629371492572764146130900769877907859232641795916734035430954873777009664202001330087824031650879512406183031308860182853925622268984905272717815984494163796234721385537095946251181879942622212459600651602212484404068722881558546456401278031852125142819859991372296462097183009843688771875470241064145686166555261430711083035573558168536975978133291014631888440702106108797121730958289075328092154321871031589579346976356441676579362757034095654088600733403161103404943378395133560073918835484790274608792194430474021812419812098039334038817239633406329921584475347709415588988352977363255800877083098742227290505971737183777516198955619628247649911432242731964099370274064050998983831755169687704472257940894820593536404930052327810425848141339816071533229108808772153064670749085895853367312104309071514664051842263744359776802420382396005962122690947530760421175321262049832158611615310876300745154631782142988991096006555715386511370936402371231970997691469104392105867263900202201884956686818427151006896892054252099868499511393421678136911517522084394417748527049120718385986479319117862059803784466337937402836490245555162478923638118756866204055342029903065934444243745878286922245150830393581365551574596690998677496870358709326806472883251260962325342376173443540400515330027586671060373963847851594119758503874188675657853671883838618033536762690519403497773268438692412777053462857431689385850297804020154003115353548337768563031392728592239933292262187606173987772735932691861185463595586027133853667792803014468933193243581352344504547148598986190365615441091346377013632954570794921006962144591518846929389894065999221905454688182507639742218693457447101208504053227730502519393402437558062596637489561216175742873104107113225030329720897914579221718183867625826342587960424287446404181168205958451499035575365872137483118436768710600801444228617480341737869609919026836084438575150511635325159616431606408045166034039906266294197176147103734160999240810656890619306469328897901731204032943621827915473432400954225149831864677561158393815303025060903268067849602937398175400678126000444225877810188487125825115771701206187492961637977840452514866657472378081986576339901301732589401651203236949002605762290503775295313624345027428085702131483993605076452270537227561273903865221079683842202810507985061027349380172763814377332461791622350142638829786405060997290770261800841094062506773712757244564736571913464974863213289502094753475619810764085139559287560002596738456100086028278986745446360832727091719334009303919476258207837868790535291758739225401288298317123989327074857507418339993542677186932506288219267546054868182198528139953621615524402873611595046314140965243841046876698861034689396939456237132199688085448278905237934206686374912919314993496903765724206399149312965098569567922043104224552944392421448142116806916921822755856439533204929238453180024442380408519726768093050504152226514523639292928548797159910710767088813860279686246338643938633320677725484753981078191336874332932590222961122689034873901483415373023016560706028531137949825486355401781171803587183431490605286457732034413526055077268933425511097253496887776556731735556401649037105591417424945444874815933876955689283233445971677201018321021387405013036443795719880744271147344381434010840152725120865149968544695825109182075168996327716395334539534808910358785378929977792923377424988597170669134864385114423859464050149702364428077086548971765096865384712864026482207291308192923454575239982825179084979966973740659190331793491517106829170602375378673726639426821594732379073290542995168656815365053532558757041248703188876536305087098123590572740104195061896285498771215251202649530171866603998093593590835814199914904758267324785191161056147939772060247264113648734558797016958166129476806382869971310086292631469167101448549169754119182304841966281419623575426101343343862730566596879114154470030091292988318795408453728503854116898471029183469595547056216351918372353042227282045166268955108486569165309283247148841164924433472105737061637105917990841293477868421917580526539080023189871586646949405099292495694685454563105412101509522127445094334018115991494733674926391659291557907586371372652906911930988570209690217138537669826971365431244681872998822243182038785338923803460398589869444583002301037970648648682003950628245562107812584985626736160839077614858078984221359409849780915501459289726771257421816690870083304567677957650882404333311153272328826006260909767380614181836053337295156923806545430833213247489707689249524108766403709239887485947233959380882728675540746103914631752658929320902459877496956739236964664218020146180274090829862754063444804242372738969339992090593869168243978046433925079783737411414332981777740581135687522680010178221295978386944202921305720129145652783881102410469758680233722276111136761271478976359897991936974150791804373975655186519962749809909679007166499020773505242043993053285452938473508138192381645877857453265361348441073217258067783422337758615072501770447798801888893084519332841880576111622635911432057807251492636704979288579848388167699284290961283957739798289638760789503235221750788138250951058907165765326387819388274758160074003865006858095649205307560292114096865302305089192942359025559731899017352458317813085961062646038270304956007836537417718765068943758717898074004110283492928205820750886548502968483150055164295329769346828908627254513463429120874174346161898474095455057621970544920063266144328421936584173500337709394916922049011604742608539111710088375371369486744233883396713538160222313573715726375258396661990154574860461617504906573570693202945004979003845504012234371593651038487551290492720576220778960169199667178714746828126400809377458443421716571887419846968014183836051252454020953728165856862452801330167984852804346625363193100501078171607048535987227210588804264907971136366300721932654696012787367380932740808302545177695542134605732328992535588292777519716014176829549285787829797369725436366317020484986455276678004939220670492379795747927947075483710350734096438715771388231932276425233894847118364061795927770246243122732821215046311491180700894577600582415063831185390567357097190243384879880843943388307234066749726586696411476508897849164300992440574020108455487635935630576556657779419568560878493498487039781796113675112363153534872880538290034350247004101898968573613599996928724430856142610984057448710693497084083767843718883798800613695237547463674008120961368675777964909324591333337571732561416288363726398038553837158008657586953091414895098475747125567077144233035580659681475971458550544027060201676040935068769675782297463045891612227442698380150438184523203470237862674100498656061302406727098375698813495305700802882630830126234833783637791427431403759176158874097668619589001247658309532538620454631027005743456988119993723500930911765976647791397186727799090985010574334379794991595938460395695203175503121149784996596010807247327322102931673861484715142972795371563241620564788681880124043022196889610443841138071278975020283643005206047341039936718725475501892872155241705702062628135030519474809568235819951096810604883053681446713399395564588875782212698532299393049134199718442796668539810990545409560507423433342265957648085752140567457455515563102549069531832469847686691659849480687358876579229504893662711300184253612521404146147678179085863621969915955656384965705967500883211501145256155683823585207654063652658070024693035212449490664732182662650827981050435620500876258081646842386486356605429629266769736685549494807261755273243776999940391896802450182585808676142245842868858958657582824148738521113110974110817238645597662669690818941720844778827693883114931927231457179970762184764168959549163966078516183051450427782111941161225462577913813993933334969247224617227127893613492952513710321047701693723867579218436111576913295240670723444665680514602336539775906578202652932132168156666312885628645909213638326049247199542780608465148091349983422925276921413336931425390599441557831813017232761436927114157168240970465528222802045395205948924205842487211171151032004508257469772032561768074421768589997213413323659005567316982639709457380235274529294314511159603456342924986162816885463075965357235755392532102782297320505104628664949331400193187409934095602848037002634624606625023684114639955467033976623184008834616451820470653981404047820096694908782960861236926100510559114608798841301324555363445730651754344380094610174003124879938031018884484369410920122550113068525746283203173590794736418765649194655282712308557484566052890118882614430461850502477057981437312321548470349497911709859348937589621363988814083630208040790541288027253234884697326120087538561539250003597641545848464336367874108017269351819570096632456874519297169038354493968622520473933581779158122167388979968760306703564801413075149853057633896986905801565942658709244169573316824506250798961770814213455808916473880451674963572499198048674497985732721810156954571470713693432671653387872728869107038126970456228196677616244934131597480073023919774627609885028133833288057755140720170651201577584840591297546226973366757225505849739115664866238373384424828449803922690450630781844538486915351567942775676273796313910552001680478968517759714975559386738932351769157424030242622325648236837731710796270228805286769580523022381251937529284536814872116723245836877014534317463750800026732103174638083193409539526496696597066751515850399151347007945789862209592586421651109559474271181774761938785948886339036895559451746540963603556797988851109223379997842313659068930334363667444685183928207391343233202196176321794774388182214075029585416897905282085325646060063948153291338273098265251891978451270519968605038405049893055778082918507073094570885435222644004626996647636792562030578129327829137398204191752643620827760237538015526457141485049763971676543412031991974625875732451087480182065163281599697129677591214668567652001822967683175091951438582103392973995978883992408663699424664375271480512723542807559962896257698875905028402903526892558634178917634410929887047206723108233750703729432911368485128955906239728205238621125501027997700619403515541263063719262280017130850615317397203157332654092658197374068238572058406909483251249536106277539883971295297457480556035759081025223679459124029256692323337705790346135599436126054398335798896640358625286943054061475056648332495225409632467835121381901989160041785984978934572032654235477839587929222004248598607349815870529198168668901584734542642731545053308112097257838641227132507565192730134616466155958886013440963736336467187622112848229684395469794854722214348435900919741577156129962732905096462044617039689054118425504627563249952938763074906104680211797602986121795777772167939763069304792772700004706110062128029471891300708574752978977508153318680509615388580390300637681305154765757412605613765163984697927471616567303677333172286660395612225854985202066537521798446855095497197050784024898008702076231337458262712856272968670669628125990568110653397895385609994394392970494357409566526532883903949529405401287515040947856883469402212715351400390064100793245425524704448798719132427767508324975721991997038590446261532824402872996137264811488032218273397719280447790414963498148299600757515046425346670806467494154984192317656719438445129095973508036263867309771674614338074575882986396879954131571040553455425578784791285821489723701881669976470143870074702516672807682230083746723821020705501292143170115404622170207210688279371150259597444424431854026274720468096827706217762208084487136498057503532664572891102501167537003113579703971140224075809635331480348909615517109052488187737578380550181488037467875005689912434348094234294130624844149342355074047541029133570195978840528516132240524649240588738514383690688665206878900677035198028638336290913829320461058568989282295263785350497447766460944044345494503586723210671163425928331335327539670539999931237305028089661257141381344327629699137931175874131063655306242580086414853925585806695439072857148325941471416474031338716240137081394702471821115047491400252826445068021113300723122028578136661896911132018711146832481573547627240741751324603103829226584126310005217037653902469130093844929211235977098405295477681049845308320328501720663180652879022661170986488313723375376094269826921657602532814167690137761370107375675098661687891764442270164768079218779869136436589044728137135973075249363957140943689800730061553407647233916112175930554355323308071528576725797020431949761476328552631048916736590740952980465618113539443134422330416034649195226305776502594990409348140554155555707163174407183647081980133304266622923701583283133907950817791956839816108358744778155980485890467144919258615989008758702290307729805609954963258308808145623429772478662061129711799606604700574745789448271078472133129503105866952366975247909511268326152792261036018280269882199597753411681830940533944714638288370661744589581202477016762024356805595864807464356986215859407584346617846012408591882241918905645100811091414753802190777164223889062456888816158793707594540783814332039033365078271612858575683199051984209371095297935034217815065165876638711666986204593558622693671027205276873478094223087113747719102285312028566492517064324204611762945917684817353487246854147329510920988359602223995270187539551036175622776807581964351395594602250671324536260462384478088575010429738521065146345018623109519187607220912308870625416329761438085558466674530325202147660304012464218753647436708360263628165998659082955796538756906859607156698232534284268686524934641057481447273461670135126402664231200085210727229879237754666091110007155188792311984461779316863480925647463207595820312068140797504304402482073655377929622059403691188828752435527620278750250341469207850411027054325353757405436942537101835371421259898905289445192540047422282092729085164694813454811271538343705828822497413312091289102549307910287811222597821444065453398095425988923061976890222704112456737519326100390484100283523507008671980793835529734777763121237145764464243783527494660223442871084755693578265933419527057120979307806319664962156158334688246314739618651165224648350071723849086760358909672427080704112359159194207289396821509584379308986850376554912205681763274172538821791568232586004506320232344464191292757544653880190066207666170332610669099006783502575228495997512018784637107378611746974264217297210781269034016197734902006301496933814092218194424902863850961729447409306807976075578363174869375171598158928637223177430452606948528365280755130577566403363047018273860134456834255247946043700800039174311154234715397510929797790539228980215304692058928834840970808386286728267198468486413511609573810593486982900857524283909276617270204922144122610171470087390938831628017420637261002836673839385309062060806462214506113905509180713746189359117605505310739021415686237211018350238710327923713263481021888596653285312599896729929443931385319747210871132488260640139830777450002642956205571848393563959650445289942664886430261936345109154998501854895726897652412435608105627223419539728026799945265915076853841465679164049038228928263125603691448160843680806983688435768783881440223219994729100219741818588788234321879549219178903784015642301173304633783225179439357031755116381879705229411385375547888359494756340948267017290170470309896192031592650848121399847675820912175693809827458527931923523465133549471328867157464869355275503824558867307264610674133637125702677510119583728839315725052540113257828661854308345432739867918645815781505587816454101216842160216767345363539413091922627179644294775826234933948109005390957793040320884672145837824000202082514421816989661637978721421696362720843192046506259777701843582725299553719258554065657037800920931394358059937131449140332766141190055348551589469076809790585118019546348018878715019629269069358277244250356678725207657740899557240954848283905234548581248529420943263438221751398638352632439231474974320749099676260500107596058468076465690576151970642941185987888478102256095396175640646304964450572618694833757626779227175061372831465494879969552673069500558562135292758530522986116379952218491303792671190906610562371081145528031242490374900354871415660452962333739091251316688981433221152093268199758647661565515810071238632219427034605634451436906262528195671399788108840570666704152957716005178709076109856358230534608530422340738678322513583781911691126894585709520336577953897705787016769095008238099573562134145672444139010416094683614292254774813914139316422249211640107662011490985899153576919949277695257782288457984100609488825891475309873537607901925721760423516044644601195508690872108157507659182411322249413000765170223790785448409823938073623642267569654288425142181587941331220556497697759647074377376732649775971589890930764234445542757658766905885932602419221200888002036126566356883422382740505146890275103666454632238155498643390488661956712959134965805523560779966220678067401796050592016306470567504675262866376410843514745788940169198145933314300696382672745600245839616462366046839759746573369611772105271687307146168644273676505043397039761599556888395930934162197572865259844751239862413923640236196840369905232089476422914433037734964562745571607065130374590097897346131187394419056812660503799173604112180071661781691266513898335670881447841444830849165505383822074657116640467767472528236353589442983204981818881522206789493180442496428782540754645734495616772608848118066701435624905969178960165735979603235972459249558321328769980942370077403371415090485280348841382366349082027788392442977924181356679980785896107832420542709435277216233457637199124207660555253661724365424437573824390707777069339808619539531451702036439111222467872421604517380531198184520903096451046760272434964793378685382222074336998283156121671975202586639948961387755431043090097374867894508914443562630331301095492109143009452741190086953167539016051854311829035810796096343550144043341881047350987684191719040375193857090635622867445243331657193416628973946854022435154464429600304786987976487274427892610548420783595371232374319973697331583596804624053652082271804923678555499383195016059777962655277589224136416992756539152549939618309575614336818625222024818918072743387714403359809271779697060393042740729836460532847193164853959698270028084930784442629331131959367955110623868448788535162049183790168752680283518830884223148851755188114508447193653124446934628005967840612190278568731684620263896791089449136396803549372621043597394477031737982193847559361237664633501595195673799780756834217501053662589939705274771101012588748292107273940455297243686166347394857913233127321636387052728426244314166436631224573867499431270910845979112575566230271927201708755620209293657129800338549898509070488521416284562192645736653723263273683801322315845850384209649253893431229039786499013659019370229813960891976803275486439680453032136497414701748394972163217998040978972136130981661524365771780904144502571454743318950956547587200930302312951092082575363279119961504308333153754293070152549251995347092895193673245702226069735400635351682536673528208988827556507730700838727024659699783159893200906519984924719321274454667737013801806255136104023428804357120816007743926251801866696493878940949826205684811483972178540285204970418040150591498228109122551363321629119494284456073803344269376431964844710766178417395078922998464284349104005384391142048379425921399716286878742839048231087895538262276075020213978276999194286188848963183687083512369399326729926541643390065859599692518764744890744773453161842783912879903072625959909595180720359686438776067106518532276172274851558640704731124195769285247938262798746047239867922817903380195161171284224636656367125515482710828765326464572346357637802589614861761566544404349594195755908361921807106768358411386078719345319623431055457101389332016076435354197399934179110574258936105895740791805991195634995969438952315325865901357091521652648712070507471374798418793288418070177335165319339871032322654171290074685533920945885012794929661784420601494461050737383912034572833052938633813167349332099460157396248970193451277014780110981839269613064695464071113104645049060863576766391393074878013609641870306704099067859009433994105136199252774360929838316363161871776071751560735089724270680695650513327311093183723509251252318149127216869643161518978901740763212767047654285432005287826800637486178677946064448134963491691518767953462347155300331389590067328208526038760200329785711699195201193282934181683378908044066263348806488809202332389869757202522560418083240135281515454297968518125584115081348156739727015008516534513715521931770984052431462707039632945726982639557982257499403692504940955370759965609495814508036890968176379929347154049373609213148522215935538183280184524032151750835656497275408083609695354990834577823481312073562276790221382915226240259030511909107559366459041533745811541222763572351012310418321324859118156585771668142946777332347477211099639634664836235362983396175073208866981376823317451864031607980810565512847841571112489753311159598362884993024288001149121757114285933358394934607637101435480958190647451644561866252860063915235453670061577049521596744511466128687812685483858257903877054547421635040461282537225065691320775754341835425987232071046575249086199061835611288150417473690771945943361603048729793793629482569825929604855551942928615673539778821283877456590310328392206850829762655404610177018692117221666619443966169391791620494249753762110944288529800063275573848575274050488872574305650970041686056112666354781302808615444725743269938634043995419604034862669635656311115518787276701490051408557717336298756654390613822538734360654968887149218435751739239463302149303445502373068021332155865167815073823296636376485643090154823580888342976576575944051669909020170428808898145516135398073943730588582852541317052160402915614425745880329971687179897793657382392840306285849599784162971972831541615458938663103389115294190378267035411642769412867268700981071038860540933390102234432719157949988154800925651928338621796202016502924288687034880950820987691211165511985891026137199752196259495778133510080248729545787803724772968571585815442118160397942365390448802647108522979517458922953693877808696908218019875502783542522177048156284892288480908460004968005690189446836661351206880441691433552009830618327471236258626986691928427839993992080132479852952478649915733074011862431427579300194332396058027032106327027680509562200368362493640876401188798777955006711981442194850831443123963193141024870633306472548405755709136791248720741570963731924445288487629492553545696650375925296117106259670122021342619449995104363033491346459863629222439198536608029021196375590767974799324223106702625954285202707653355882744420692321436415103708282128060625235890988976751217915119822912264472226379703031307007516265599712004235941285467732316217940478414840027990866366342773200467431026582056565600793135692548025893730003179050129503469079796245382870845642203234831836433279377453268177741178019298129045792837124265647563501245362127795640289429723460977038819097420845834784245929223451033910553522489595736941582114199815615182610413919817846241820350929090133015476187941895305655559391225651724900021861274467469307133290192493317450930330133816127901940993373372943673081989769935449126057626305373483182419376962246305028411709559500354829209689832632275154234753308909622705419414268783307735099080924354813186429388092998297514837767965604562677713802989683000893966673478158370224637211967738584040809975706715999735299295680645998534318349510958060096907932370879965732837026038863242410785880105787311869404821144291774288566336279388064170984108669598122795056292750272795818692057869446293258053124991971865053850706043810927355431441985808261135884386595606376878005561778682974206150282758799203257457018419418417293349710490341199178022814186435332592566732001416552573795068322502893349169314695721152410856408814826975965295231555926393969190294784003680121819220895419650852549080116815061008227029284684685547948750539231911908773025150380962375815150366165457876897202459102131105458409935595433081514911745133685804716248407320793907019478498288953904867817103021480139132886799113242079802724061002864501377810324980752623139676791295936771364723524370301596768479747738412366172910160681411713608268583854892611456662835814385518474945632343412896992241703591402910753235115295691306846440498694854478156668251078313038142021082971029597878025662357242985850187686721123413245549971948939599602310395610374727817854269794560660344551443455342049028287885078336913661925626953388653697738951754288526837411583549838594008780723180375837301019355749632989930959850112872282553062760550136128517587590081254311579672941189063259005702119156493355738280508989884351133628985334199888294312366170473824606081850164643212833179512464762760966062438517987361782662186773289424015119218372157645065622678723899443193359789214177210015904518348814167152565085715456637715650838931693493268536342703286315674877828624231479410162690694674132914728145440236308853330874536686747881504548064241865446977791795082449262658038253846667518839490763570808873541415696138767600306223203951687784994127451179335604833319684268921673000124266630948509970432263855336887621139582099636773619227802971951291402756948220923521921033992753017937230816421361627727196529694176191094477113509912611183563482837463556630346354330769080691589658765425068108550610975047936451281486694864932886002300845074847571157710534430312836134397845115716838051515467797983240888796064999229787131251180091895012455376537925264024415203576008246227520284112565148655646796950190054411376428685646706476561147369052347345807693154785625523804435854343276167972299738414610467378681335211891591283115807173559202470187510924961235810653681797628611412288616913282827059577215402714432051715738111366891450863856752879363899916141289540242764443100515287341072323510736700349983791907472192633966476647380494151614236054323763509799013867309909011511062255106784291671469438343004952323578068514031326155626401130486439216306329693595558464769892238583823680398769204789179367960210120309466673129370777901268475403604787498704075076524488825885558168547680594905480098305558827659442581229283955404467196895585589398446536456604005552595178513678039797207650223664192619352691165581633259005505547084481674282983959037373024742448538739141514097078103588887354168787488825105493822329847980170657192058585895029747539803837084973703358259032573635942524227898752680625264737254679084621004883863280017552699066919250788789997739195500283280439810714254501693538447212106118657345706468845010479672614483032831696523838726098935562956984277946448082562084484141442063432163634046024997892839913568352822716987777497597285821720484311880721206195519001424911395680221711767242735858603889157848442798414845965374282447923329426238488936853697579525025722051901292958913256394976747999673353706519414765551862538544956888426541810461141012490751745734714538483740917129860826866555633897454309843517796244161617191748050496153751146355966410945632487320098130475282416422978201116605431572222308632092316928736087211695118400687108130960377052455372469233001604259670824441944832717703192027773646386162964080267012949515391554706923421095828061355144816222774621984005487637208478125828925877871712891330652614972560015093965144211519560433154075881810197341349375094424383968516835078512197406095542224597983340529264632554345725107166939508958518520207643549825524157227224636060312599095221850998805991860400485858486278060020429367166003423207358078999880987657849401203356696120170811927675304747202059750924775505701700144292525740070752686008578922055052545644999639975436791830103688950631891441583549071393282759688462750871899618251660146945955861663452877855015417580143766983230039631939974573215503187565849302222126044374170541135900206525417637885188427925547650863306128715961967730497173560341676698995457487305866239537755690035612804710352446304324673774880219776608334596369376804710861515582818650879542734914536406331331813022001439230182504712271057960034428452375673382463855888306761875872717863113344082530803101769364508945856226047116814254234032969639251227950420752701026286115776518904055378419579858569169507222770635321512606739813426644659122573634341096639924844206441488580138608290211809319290479561039798681687701537242632415599081621620310671063967461578748091847932094790382487110289600107323017713358892703219061051739851744625506150402873044849377534957274825302204718534784664959417044419540524473208253625348159984558977977221927021359214212973682885060610355543389169832850481655516066473318028548930665624185990104643713084863281298103711294004549258881913324420066868801129340880967592501006279407038193510793079983085968537384151349595995625087950691351983812054289924518264574837485565698442919939383714399653704342348603780677071737861192712307979573887487341255165575592100515495062891640315641574900169871672091320007252203360361427598352574299731023309767420925801374323154515944054533041802628947519607742605899433881717609850091358358568395522473326295757445694039964089140284390924299322105249886108918387777245762137925457673401964659805270005664489233971737453612816573397266028601627443166675231059495566997863868484964019079561147164517916873158782959351190454537141338747438365204373566249501123592226210186987925783832633183688437858986222433412404981893395138900641769033206368866117316963349316517153036534358532800536525200251781917262122383714604704953224844678907559945027675321346842119924674214295382461965543427961132502418109124804014468636958136333909046572449026910424287547896793344179143479933434985627091417165776554984385600530227443810932402831073264068636387875669249333100632833062966888573385051206253302218702653400881396557417535408801426430459181814776962491150128238120120386576930369968781288688089034575677068605092468731715209476269465678247364678553451961434801257921513114815921611360897715074970535073788633057362475398049869035609300184846026208738201031343036434387934588228607466322083067763683631092119585150715187127489797425713395834994169127199560678714216871162724107863831628397600828315483785325905880749334098740096435361318722891043813857831969608112522690623223663303624560742513461243528538671128815446087170277377627069181620985259740697896241849647037630769829606158674559464725076784533417893023324678427552158959715763733734906994387993243754057671140332326097635688628081975321116864035654354050074595578993564450257837175294118645325873487838128481945829859415289014323125928947177239529902229211774139783700046337335180744042980696412242685998951884385003470055644731818533607896666533364530225630900299614675454203535953219860193637882309871137028362555529822844237306506466117957097904800383013091948766987867508840578627797054870683032760382409425872978809321380986189697609196826045421339990920589857970746882839252386307413109113934041820125223237858584708206894041491275775498092980732305457878212237743963254725891486604222522249952993912739437947620443191498721448907266230923798055526997653861274000506590002509016094936938913318126153636717638362151338303665188563467774064109171103117211613332692915360678313660809070038453267599006353919408465129990062781182174737933387194883325187250226417364415629321459725961913015412802501497254870376955358221054724334894455726637384935904469644808179162667691009944563262434685402392975861740983860485590203475816538503729989423704857368133718209685513132366619313894379860011996140449923233122158788243149022260791579508608301852044694980880250661927319259382323085627175464397903473054270234116761974313205315727469289639371878920569612769156124872692169444301603635084617889751512612600405914913295047935593934708086196427435625972329226677746042160326896851400112028814287704126788807852160673694642537989895115473859393840471537981677604980540510058211870699988903003586933033597823301100161923730449363841218350614256241575969226556121287162962973934767325059085018997858518485375874942523633935683962905556317316286237244442301123791032333418248579935457354244032382746830975058854969423254011583243056442233641098441720577735003408654751108390103909604117404738491406981197151949352614731863323198571992829817134991840656011758148435841854846831522207031764465882696913409381516612125284955002318385689374161004140829510983174308026859176771692051454691171288143081608379748624477224103620152690559579030636007296921691564180793896433819563385120019606262028779258746537686152027422691094446288784363744828669087810914744199832856306184586502338075337682218443192037487558603579285473282179401070181404826821783756923205630084142911922828473139961508831739401677653806421499368506437185757256066082833882225831998764310805037467475002213782587032248908465190905757813611990935448272602513860960619901443394806452897198769462761885223547848990037659147638384799064292254004906467537648356926682457869993750642121098267137820496209401753067881492625187957910132011275578095420492897349268635229352877256261795747760486893141169727954364268878270607484635902533247898854448021812180380375848428332866259976822120069712916957569091019865380202561495075696021034381577121608838808462422813961014449690212970069510935293919128224944418893661576928001552086724770740930508795287101357528291608113978918325079650462111956227254078849507134757169033677340963609995564900317632730303140918063508654109899397083790108443504404066366054274988320549260527038141780233218168904004219981200030988575728721102596863413363213186290973964564356666866128117521930578278178014450426366720987179953352336274134162994014548669049915511162124130838302958440876390738975483255285496982370913119058191003090233169713244924975997671799180359250908381830982076122437152325739259933152502808807381627940071560651346874168340180036540960442839972026322005294553895027620204950480538689486693383264156754852659405046115968834028758937310902690039981150095687609690298574465351029968687690020098002598219199220718777879783318259007324798019727622319549199890883516737862551445867622298839939257795300796827424774209983706488970446636859154010642715219148182067366846964544007565133595978311095038454172412928492773588987421396942681895941957407282667280679877993292078722044078849230549696024353582358099728008798678346140137885636455538000142292861264106217660347480502508062710595051750883895929502370860226521049950869694748472680283598679966467653833828658875836848962851145044017237385316400632326499358448940361154745887300635194481405906733670200943912361849156274125235563902526930920675720876071906376845418871777378041524918862186642947451043683885995450656644667132100164302859488858312194543187558400714585229188599093217906138397324815201201052520516109957217049041978176421457718464910977399418329073609968796420367966394125697712846271492845532058412847797138212821275413319522241773668053058101032995614767533778638135202074697468130077730106618580355230882182786520195531848213263747597549023366874757287293538453059946209213066967782809526892682345677239974593825673598635020464779373113578464435804314256539481054045530753528265666036083606136121677430166633615062402729620752739388835902885235986444316518260514604064928615878247721748636996073335366141889158316607573920372967809114929559902389729112138674694182823932239969288501375249553559537751669912048275278430898016243792199332229335295548567777438644534555716082890996253016769133343619306425910564822981159908682003427799000331214542624198614295178416854230736672160968482558769109774592448914054078066437338485230296075964600269309688100061193737036996639157771922665589033194908272625135357872897438512258699839145069196161476933792286789246450404490953408769649536159196061853211044102192223905047177261202602411868489532384823305088211313167000381058325207417029569370257919626057184723690928543789126157476728310276146500454115671378603124551551003825392985742508541371709266856591683352489172524773729734071194101076086296487191464723219018453708522827524385248782205607131417843563128070525413492890067945161161440319092470189237823140569254971368545154787108301641705944593383480033140438859798856598595550801649449098553086350552301763954017509639848381231526368236399344364595713017211019148563473051636064836667688148155198657073305778322109478249544162378967995010840759290147627742985346722289428870402548250200536905815831374966615181464187921690772996196260892632571205295760566684284643078142864357721582075866175233948514968641004977508671006942233963890008827680990071175478930167657939741479441419191834162671343012941963010371656759625340372147701876524309998431631727221963560672356703946122916091004852903508870839378541994233544005112006173863456389799195639959726437159716236458956116117933188875825682353959105067164164803191328814086128000793585849193279560907587844770495087741099512369743735060737214977673632213390740580989094212919589449577191571409341298269023611093816663878684509175436694268957842562356715890850034840179753398864757456263419120363191884403254538852976051574365446068852758572741591126988420537441212610074594382502567974416134050081438161715002112965909143797457014163527371982802096263360744492341675822250404716946684461581960614904686783705044542082430835675975838551375173504325849131967819696136057641440262322152061808753928540063558182882970214795475301117662390121315242196985551022875891811094255391194963293798595512396996569698636553606547969781891659924140451997460674703573159208484082549017945815343955906464823291021408209429277584149611605289522409023771984975003557962770074121192837193319599598404032612557058414074630776428538887661161650434299143706610360491264890303134539371826414049900901839212759957226969510473016885470132553956950786149654433273652601904921769135877828368422261199637910706514843441404687062579862298334368614054374344127835441638246408935188710871066936623423772436390757643451709533808685457115333429158507086981150474044641159262075188125420350784674873111422066117348368081404716530562267336158807246058020862780946447783051490189098039893606177871357046526315376900102078417942661830936325874507652889803431681292245880682459308894471202342401286683893738454342762953197728518069174897567622957975994988986155238244982300375792486974112328355537354570557132415759571253203944447844697028688776152731107800140742906244728062536707788326839254331409340617272908398412601451996163809422291684956424288916187015779670916261005982981247842325846532987055433464965703383702799082777421286324261686437158783350498430828053703003189064019069180387512018336400904616002570168123784196324365210186588829652905567166158537538352489713934371039819467987026556432258151995445457952220999898614669186389850346446956471954430938659571822855398038701048402727458624856125046135375380003308889280874709343486435836785777469001568440752196787069974183628019773891317975548686828508016049936240280619632195273130431999908076291627321301055731657188724223401584910542173869908619101125698458033206407845298577256635496084357010038590383403445360915110672859453551614155859245469060740013439754604990675576686740176196774790336540343869771331858049515179303130995515347929454934013848946854031770969185583343215243932695424657308202141742949620150347819952134236437921256707843173694623118622684101948879254165212004508888232455456555610669234333785910037983834628627268065892987590375052438544422434170590508763664005338411105174949692553305984378517600590326852080063202431858911627477212108947235275786798376841775089456504570081746665340359793905478241753547002196196074501122034804856867802606132777431533160404589301823290471129854564167926985322497460486808656419686534125699581983273412076562114061363935688587387946158757616835171058878950954082392658385051657280751689711044738583472399501114394888104833084561748683063256970495135831204959137326287380998185658071722511347680020547276734303414430148454335207233134148144552416855890131274562307328197938371288412384444842087683886113561497801812641908534668835474232259123901990858634800120165293006227154569834139199775690057264746666165280530011815887889952670060098735246364751352729277754598759197714920938360225940370467631943989299589346015658508230383218800076611003666185795842566439999500526031500661877917095231837384386032470185480751450070605592626455402619086111461783294217099767586521293004731832964119863279914796519050848075635181536786694163745271616710710274875769609250033399108372172868816465937351234014134596518287973389058373366217246299637312447002785238830425511728952859100063120512220726496168115740019635165421740727195079307499097704500643370968909907306137082035657634067469569626441619453043970522443673419923581748603144475813531736077655338855222472905649030854994030088730845196670814032459627126341708334831808122256136971964764801441334017679629470177749525888668052516729100940873224840759119080124626966342051770962511982892125100386534565948039589136243793994825032585409752564308288842571886914182356137321207412354728891434461462583714054477094765698739036150963164295800263811253347551271612055278057525503601397982048568402530700890156537016362859940849218765887455861729474680308650389483761219685098724357376595454559645234889599620687050425397814475596417502440610679373184501727931349070653647288193997817849194566099069671843846960022625250009000235227274043732964538503793635627717999521335073068086555369480832279471797730950603760904967824745089364031031684317072161115071110646642128866408067317301382688701068419228518157552533910416799564238436374647856918630479673848986736451566679861884532480847598401389518085811933412475445484885570295466921557789379757063298715013028237307677100063134462042095729788673312056314758706638077604879626842166316733592188847328770865003008136392531650047400044266613714066820428798602920166930407751522706962614705308613721278511283231594161940126130883882173010333759095102188948703382250863967306315768951865610243316961087069945104598760928868458132234017633025410245062336512514401799983067006225975078317405913763847644626210879215836798973804786722141702063781635093453054583194187033664631432890780634233996860638260244092124953511444957428948547934887730980628209888543154137518677337312314252050409205955711925276998417137002211444475079174635123723630171222011608002968828357174528742457599704319450091890582535787993854560913993443686402172266837054378126463750775494870703012539799872875575781246060898851876763899960959063133289679897014759805691532768030394346385223571473479362606847878719159292391932041297305205320851321073824932404933860490977170540201191595981078979712493546136721491169463198842281022849320044601099166160293311139813092196940117954653101957364985817354554019125856509871584870390699859403668990112905357659649440284524837742024494789474238069044795538572168871868778363621182711475352206640406896001590030773284302252144769060330551055611868640330520434724222200589701665746078396324469572114505004658344382996256024941539558532500118034278155887511341464024649050540998906929044211143597289984340177061532237816422030088186074938325798847475359022228403112487047407468650082102753703718754807952480941738589584020134293387652845966005361865361678869459196545828809277411059095451919931397345729837597863981982734334168103783896025948795119978212808074110723325305280283237046717133583676517726457378870892610441625119960773276984472080385244870950160503761952517828674411147943867787985093298035222899583995448024027063088822309974102779918336060111838888383108829738284343625507308564753455633337069798418932243790707653517386164356743772636550318419998907488868417022568209701423188784521857281783340945452183083641416065710875991466648273346726665076176319016020631200466487132504274238577593088605750237143717074234434138772631824113935371095746435020630858815335566472003752842068468449700989524030699570301326822793620741920890832831320591369584619486396496904235184287287722834174836032357873681022677006497596785771790277331297243952355849742620901135807215656249415969236662972848025496772501602128905053564141933987268255423280702503580354186184114441268764638169900446585760528769845755199648627789867648785493597863323359329693169961076491297143695595986117325491963896694647362972802830270663247865308002653726319063198883622359372290749756477625412234003420507099117816143644026079843118660764997334948959480532657744617483787927536255173416489342153587270611408782595153826582177364637329646693212394362521518070617280604152125299893067773453640500098521739483459198812114325070834429302850260782096910872140321757985886909315933891653037601776764040592976535033985512837897654785319865571670595660150670847017240923077653575706938409748292930344911016992093816318584284444376392164909290452708019658050180436550718392802085608314856874154424462557680231513577754912002389685688291442816644638746735188573629649945544369003203142883629751740798626332463431357300788438287847655001858143614334479772764526059772295241825921722163629690279700517092609859119562288259296483022515428709893078341479468248813528872994341776194811083702444058962602140470162437100960753153111949190699327454176955459531635617651197372079017649294970282547765154359666069511628286512229298819146873807996069358316350572456752082138583892515866929289776204379964692150210109434321709960972347324434603733475177902958382889629521059290370649680032516186876883550781903148998034194975360406439730971291792878014777531262530175812822147581458319259520709050999718956751998152398577030356594242890980423312274651317106477713859110719632884360173877837486648196530951386328517819874733785220951474633329248536264244979537638061522201462839653264287614529946695530949063950697484052316034523503150459024976047367733910184639336323017322577116132436627600764034079634067076575341762137410947468825925362794005448686282385315910689979976369615746992078107423208452548607195775691149000910795527191382369521888769012592760903949225212415878575453305344792303392916210874222350658438067013070397344067989822066408451936307650299033095479217439386026366742317160933005278532331257349174380925284087941740662218372953609553549294123848014481675388883703228121608864919902300291551301098233578319172507899980894561050622307990425447902547299740981285596833489243865260237616102347925517173907297813602629861166756112427615230144338800922290663763828567567280567495664444732454347596721010499263907333096152188696871128548408073022889525530673253309574978471310001065029060297180887168324585142331570009224259640900510251100002920085020401702240250409792725623840286781502759981261295245187157361138892619304510788982015114888011263245380313849125594603368977288326604965845588374386659087869363565092931227262255986408072300874710301807015599796862142457823281225359194722866714256180885094511978766661401804342487310738848427636986457017834012790713727180695266282751945373109874613701199849715127111810898824416257004702512499369688607404581485797657128977908052339761803697861526791964652163480834359142925493238040087965116677794556315475477482923606243882831915187698930758876931686531929174548394715350601912979839617304339367568973369865076918005434193352492259622988067130972105029593779879444230036413845820344873604081201059603896303684595662660709107850713922509984515616288243104118682133978441449169224219193408513727572535851944715836247921481658698145854252985067518326305005907261188376458152611820444784401731003958587760883881862367122541383695713371895736230534171429389523604844334658499130701676238961090733332556302121338861439577370055413577587592945805384577422284154669893625096484545088467503069220692983445579870551907789561911022172410764987121563033865636993595651449971736756747040828480272095181530168496611220920062123437595132612143388488813300628294800832490570641753605318453726551083475275374101490072171621195109098108646752641319536384165067667575287055829627807129944664322350149987468039701175803375134246104888017648335374124141097468545586992991887165449436441286311527714540572307476425834403120480470940780296830056269134281163609515990080535123709173266940428977911885533985389869447864296832715080055608153302502122367953899173308124878520642491667987675421908720538846199038651755540743862955781391530416965251491864618947230235931627455247532379421728693126081747820007432316969512183440000315445667663364544845451913924354528371972199355731803565914153337718447424227122612491893511528327790675412405863942496760450209329118552556221948280867829193040347774224026524458867372215513651729338766026235894409210625169103446620111404667537910143907414235078674949619473552282593453291628570820271455829940264822463652956738190974697520718799434269897871794592324452609273784451861641130710629155025494507193677273900863918033119665511049205747917439606344949420510787571643629911982350425676334122745153739467294668136223931541658049055278273879481451047801176898816303217448354924020481217807526170983009983806299446203772196925747204476180754622151017834468641579607569923914676021654950506842565259799755606484982565549258987661503659329929853022398691721770965916360692396766996968078461893616589489517570566938594276395839966258473554679371551032305219337336884971293442964886604529418021396992650224274859787551909532765418904330514645064711369769875636658635603114116898865393366693080289657409405600149314427059784430013485984652059538452879806130134428191679471704794625113034608590104164069647111097456989272805671750367974247477040311094148840682034663431082267977874249943567801145517549224234847301117145509391056155656586299225232907180310771129801174663368517970462554901769323773136285230664174632706953575285813350827944698263439372672874195628557652463496749135761378745334239994321337979492137471456037308922948992117471284176613739669718647405156356730223480941466521459665928192657601460130796507251223234753465047078202959231170977514368627071869152497658987923977680115413158266001721409633301131308459282115624031165607893188312833707970626216418961417997819980677615281805546196545995279422239067451409494158732364331228791074334360066806982393828218875375826789166244429087774317714641056285325806702819272265376970327952331000982401211683302269325179302711142303156452131660331442652126805787027956836115615084887887601375658036295705195093083473405343340921507830325173305271061203715783247023640129944288908520428786768817186768897551493425956135988878184847176046956288163077608343431894311699987351771404774988192074059631169903885881914210956755466091998838335397817438440443311753512830607493046293799247180578276272071991753472913113605012056180879724610592204378196198527990056457538312110103003346943313316085199105996364105198496293429755098420978771381073689129386950422844004189956287015207758885803190543772913445650958272194105322059965509824924954270641897145327849759101942094844520822827866847546038540227721006928584449367395243095057683297228506130493329375578788942488632232509805428283759484522827411842858511206852709254973198923201531241986758079410527677448890420740248669755165055584356553800095777414518961482650323653888675724757410900443343552054210637478136099127349824184777027991865281671331533650649981258822163694186417159026478525896297541292111037706935628660636062142024195770141072998277145013767170529318094038796158792568733429423085205316710192122520585392996525729582362752019327878662846574444472209082848636531469070186968806580380461043232383548715163211842637012282152769373637642235354491811115568702495908436452416342022906174756519017487066696068841568892027073497671641630650843199542020336239540931382369329808462718219523410763850837754906268348169331377568425648662482153099294114417786357406219006699691889415361843249968965788598418130184539352823312609204878178683950871799802971516902962425262094329824839033876087248372671633579381039882207798256400591898244916801288457969624530071630254288218593113107485558260978053320185497563268842952120873152461224332157881074056773678193423581473640050029530745248144541152723479635651077538649649990516660069572259747206367930987128249640404434342202452068588974940019920813492123058830030096493506816093252944244395137800219808104323178412127352174005415004618024287538284486065921336928499503273968047773671575737650777970364227728973247092070325343229732192247261697644156054208732900216402514704692503746217064178874251586354895985759972364426690964226548525653439457111420567453561902469305253999274195664816328920897806919832696326826683108985857004598692859397750738192895214058799445267232524685075326333446800722666235733717120186102496487815831240266519184157412117761659898361492374173593403694793912388818067866662675203216972909447084971407762609542350000524935852234570567306376395876918237686084075635784774560492191270073937704802356985168787371523424311550483727006726122735650961306292141303934729328470181172638732339464979153257046578409675842500569424996234214253630224761170710866214761821797828592507622919383550935490431129609127351317832484749249314994602754784538536650290006195870638496943454318340012828062019478589095933874322542375183992704226022806902902557763413968413545563996986065878303489447537408218759670197446973181472091332561062911354659095931370764922379047126834305591911020668138356215683705825251047097791148189281471476213787135077598021108646960733954613377428738558464259557594228456405106610788682880018804294619328430481606849043533361713405116870211727941024260302135992319929799449601007325556528332895736311683439746906927659856132883620525727124032598348048261608246714720893119237786381092074069283306264598014178328390832507757501256118354052060708430271162407827966669404412703223787340849183175654096581511682920589611972452986537829130436746225095061368373861349697029106924419259884734013710474367279099585434945261295527991151250621100283993471718055481594122934533645986918536056789180938368382649879000913719445763879714905863427233740475610193576109039376484473437515989833326891808633181927718211828163321072594863115742911488414710985147629468624785905490995245035980090138247865990919628259745658007688564863777974417770966867742106026830126235492821965965755385237920498744481768937671619661813065814760293402143227311350055346897162357920472178123150165050955764487431870397932750454544341534866020465801031286598232165342868462634655126276508882164482831932225661135907535037115580557190231358605888751915738770644222531215088506345062819416248541552514595870694125475406559725362848902126614068247365062405765021607488187565456437229997116054574464182482288758357150980223958442116307138968687955824374496745837002594773004757734834689618771598803076877049600071095049046294947400310110622937528484315633936839177031950020723558505283168577987271672061642368546750866689233398253842624035084102472893235922359246139000502851855518604525133725829708807679168545560586081542382585496803924801232661574474037550297400170232771781261848226824857109648192092654039174187643632680226370816388121049109981410552872223081175661146327575248375175895103028267602811445721495470374641950129652134858166378411089112544827235140344386291007419991546410215182069235420246338228682048713253333090255034779941830547618958891112367370733065939235523195788178447949946336693959730995367207142692934237595722500573109688834632552244956691957467973502368258500786745451633456551026255565214126353996336206650619576224691147667740747418082629228401038180522981443416804510759764970914514123926744652101031365137494815132988553851021863433570191429293685375581365968340576211106248919197370747662217787717600293093096712688256013998380780268918729308211675071519953566081673505003261639035513878142291899487605372156109148174390838719204653548874380313949171212520455770904409883749962243097232348725764754436468343207756920035325440914070881526320403025990410315216277045963097800254202925689230857559947242530943605760671693065146157209648840433618398014635412989708299343607218621710025587247259187441052070381375189090533237582431636263806012858729551719689580536388018729088848916557667060572240356326802975520551313323949555926972273645448687632442617802158661327461369584814695218765571156928790972772789085888154131090218948525968439069168425465447606711947762493917863638415236218216096997604864833677104398579649385239585057805700925646582472200896557493887126472685279494423799674561998722333863450514212017134920481882499258074201219874721277671182522552464874841419562168548086247737270252112112639968780708456885030330362756846246009039431120668679144874185620031584382617833279903181584211497010572239850331336950876384692667140645633439659534006361828729301008386801799913610178951840876017368005665366267111314625165040738660531248683322515993599857933351841312763885933797629578424495195595943178243707662778647717552194418748274306642178500501084299031819857565130929065497291675505966358314869410884034845168752593707049040341500575443514514897030920427350782400566542929800117754633551155615455858760117812796172707605980403010196221864790535028208962441412734015921724975054518872340571093153741123960675158325096631212226668431124662493382191219187466538736245918855187210705890609141057532561040660463942175059311434832879918246775860765761771886139619964493070602350407345437230369403187642303349296720205397309988206260429559952358676702234786906600112292118273386055156472656739245520071860114711354321519740736649535357913523622258693833488258295006417100474471564138795676990189378555030457658904522739775588211852349672463963328114671942000777273379159157737636910475439132921104103275847959919862640895751712954585831591858927710965582104424344677530558248984575948260610241851344215634895569052882614664620707225804304700093648041037227401611530874619513733534773130061451816698208917577405229525644582903138577437928189212969218823083706498049929834034595565752891406962327760112179454762645118769183788462608343759166839212576213176336002436177725678290660617826354180256766970245453730718579198251595047022194557833137107680952332767853501747700116455403717591564232762069072546759221891675219157500349449114817827726797940977040393106817840621808497324643512340116166888221613849433934597890567148265834574355293264659312694645483190260805952553984015673608612966266828509969175472656000022592540762892031256556660365718498525869631278612846369568459916905063494585590488964019412346046723544657898706996905674294677810213071078110292655353741106413433310006215898431159685551694754085422778646660314484930333161578276530544396742818182068026559958986329383264828534456079569038184958841309097572545222327070155868337554229796359225855185119046387998935084217690609249912571605152997684910309310841055653585064280859138620816004290051970336628686605877905325497200418572269340230325580934558027346007757616303007102645089321193093581664131213584035136176472114760427948681017876366339410459810473931601227401221002348835148230879499476080414302133037477176581904386752689953113497890791794088881719443078307705213746749293172104216337575298157654762293962774676816057848640811803602688065528265715407334556312106095965572536719360248871660163632436016987921579534276543841725801352510524789538619999172460573693655674265905572637613536925428397947041200185427650510098520494347308321382046260589624102292510543352693962664155120613619831109551761836952811998831552766825242269206862690323976594109072632997374045588054593543841889361143945632202426098388256251275101354669735303693347128914737098761518135618580835952415017598601735672386097855536871401970820513556758372326596779372774001149000021009840522897351234637527057162781472058228225240382726702046397479020881861805982590689617818912677629294069669895051162311348371904457683364779828653333147437701585493542139523209953092945892711772051449065615535983271404690244265959079783918448689880098936360453962641975777732407277234113127679203137316207276750415628171572578299760862573022642569753829028639884869761550960414425394018844448658139660496256578746499071084464970968789153210599516893319964020751804445711024966309116783877201738972726221292538968684816410683387040546969651247889367640144917871171351224369876665004892761451551628913414771426778648445981894889389396944967013735880195274244417349401345148541604993724914534669102633172983114828306143004250406713889832077697129612902221953842809176065149978738663280398586614523469864903642506896489981116677457950830282137659999881349151403017959616492721800303267185294698189151035006405309542602829881654804442624697948176822779310400653187090043524921806097814611042710589666253922292733349185863142705901462502133503015735386922839169589103865596763324283120044976474427177692730203435967716651510143648088441599382047082414047901168519772815307844208128744324517751917836267780875437264233588509526772661701880944535744352632100422942455911127925589808255559824505431199167137072302438303750282587593164572670401684230225462635081279684932118206378871018421399453377471082802581272934982197083969348617207711583200784772801112030825660062887467234924313501170741876700961422031370133324164968441931009459498068395112714440017843502600711942987628586868303277411938056043443352007323664997097008758802181832634742687971362211022138867423074612218368797829941745347419212286048839267472687725751376844276930256715101123747699200094006123010811237926096467548278970770690852144411208827296192104862401241374622212541917046566573701681936614938651781416346446055617131411657878597421945993674288757328436103685654198988205929076342744583485046192844766581921983874382743699926247970948858932555452879831729763200256286199905311388730596044783608942546033537187966915934310594754388388091384805098047717417002945188307986035163676113713765105784244225794761726252082977291626452808785221953524950968829015689881733388311097288290865761372486032645994729313772630540782148770601346660316535446261752511676722839226668728449887104211537624192439043213164132423075931265281410960862735022930057210508481803502020512972249177285683136604070200167740576408411674190056377359559699317953333111842915507879444918736539065313138023340493583312552988253529818819131561668409211563774064637712808650625519944448236990420297099140896123356201625980888057676211236616231156338035003997304098481362307316614696699943066151518997407541723015950602621821615833690187729465467570632562227759265407951226294117240523087700122689047323259759272671968155324421311548623837243418569495812278535105296447115351631487390982810312806805215763123243253582805464427034951538993047515624959943942428194720888084200536620843983735196669164631417870891615797912862136633528226913290756568129584487187409161326031666346810943824493108410913885000504802131998604892989069846878363325656584237421310712767169565129385381717766805567253941649166335564701803503891442744911492439876454079286851830320734829538336074586087623151061132092049927225876506415764684156891113525759565238893805993624602911303133341339200327203941322860773970320733781163284184020024930716810540333107412502875796401009113230879103798084153731006073733274445817705720100595751890354719482767470115145056472497443323542014535516383138957751652839677697689509171423245432250541210504982215005251971077449506928149728369627665291930628172848479393266134953490000475611940444625673856586335819969103591425788813842924034763110717964920331202839782343091602460287715413253095200874534375536896800544213200133681255957769184176073465586805780095954155116729024556764360783606051875392016150883862135213390890574450416436557166867841201501801249675428448426119507538190068110516230668121428223038155883776800044439878176459027643178627549320328164913006116630995217822897182714453069382548625513767420955914001061544782840320164269454945775152751374723173155877008148491649464329375966445374566345178957371864910507297848215245610768252973893407091528409835279517538243922944109626889156873540075163527918054928093779211936260328792493424127190531201735441760123299395307656884669485660565275546130788839839100506411908302671928195698052341002210591084657101740118406410992072024213732630163144154266195073385047255918155990102931142010795235185377913929328924292722270429696863212776229485220192933723489191017029076500174037285657941094964376124547055747290766801279369465124989343629632633060738332465674301988407211997289139909673058316870794859936523837439988120963294295014609560697185427870101688243353129403120558378366901962174462474138525167362474134348997023380285473625372373440455963538762055856217830881789489131707105155191731214201795276404738816540937182945739118781362861174537849649686300007701090349919927916873657985519530634442635776480365593684701812791431060235775907382639712847888000025649062970736513638852380343564598300815142326280962293495758814079235779989789449608991773522514560484429356530202168410806778337101803988228190424455901655549601178606295653724427218489228146140284687806351419598208675584377830265640001172679082567709362771577772193196990497801437288490333178707788383291716938810324096748638852838426939774346406467504557647647430466937110235522725332865699502090572141640569440334441976423597186625587378859344050534106259170751868316264160081389791023441209632925042096977397018907654361034718085894012218851273462161395355340734301617326021413103109733872336602788695721198902799657448327906739991826478070577867914689796005728172186527227545323778552399109052100204915240240756423308654487718999721949062825385182958994957130572814886685245363052786552557689003663233082382510321170354375212913141778174080128448032293501760185514183919028497542504958518709088106311071360787105408580819040303472439113967036273981681691569249308212606639933760347759652122844725952983471739619969814990725965950560908211013600163382374299468815161777477983883253950365793721713866105842847197338160685506919597890615371708426865339177560511147503227191769915155864351708348144872047000079870622095532974139187828610684065248361013824541766824435653060615395741040498554374132268076136148350099019922050765545749620663439055522527922404887665547564711949944724824810693423780553241008983361702245504187475534187684681602025341470581138097656206020038250725809637179239751410688909492695806466964377136047450690056543889331040655752330539468345004950468910570404810428887517022230796464916317988793049965631390077807338650248547087424118899742013259636491216816834940426297334925267259078102967662422501900353979033228175512664842601269393917315305666035210484908181056133005177536149207058494468033583544291224126898253348173022254437590360520273785124811973490314975370403048370892139771136656488270492558527440472007852558477339564796218833622623882523697530059937570240728709428824859656461397289815127013402497186950272519772407030007305291074033954411855513061719677304059728132929669895071732526316220117662557913490620130523314405343646776018695819706285318974510777088520855715631044858028643626580267667301234875243116198342946409495889377412899880078554564173153263751825924248620163514160358311992871662043679778845054473231186599841135007179426755197086920502242693849284378709569354449255181277220823977181734602132299826727696775620102044525714269377262656443865046955254185939952102835430461623863957418543182588880438578527738020083866231613128882276587335454304878225989331845471308321548139463139795846068378295147409137057439935048234048401678583331975321716279261397093066325005271429173666637699593340938638252556139968081528644646185166015572067406111325120841394834720133312471497572131797924210902968382159532534676629231143683034087631362471259974153011358486188561502944560230590630583534061800542985614674779051875709629689067231171790884318474347018529197370317419769484847098213415890404730144725344352682260621260696315606765743572199346921588470891893688478887903455365358255747082769057412693298028629464881315633744131127350462557251727039091854103194074212527146054110990461752168122831132771565216203960891960497553249000709029990578357631649663005510126724552946134245649409187363052955457202730756586924618256346068845753821576633234655606294311862433825024376708829812233406786394856378983330675752958054333543774856715027135103645139404945952878657721889562160995510454494454993910886239467179975303202579630964037386697962704198197739486222222123081897697506528156537417959196200872967769529725021644506878819480935791588191129578808594842441102582587304639613622419323096642701133189174415857706791819835893740815037975255294821453315309314815697568708668685874041729200111343779073616481761340143728535846057835397716739114459431170976510748124783244806200539167316350527907142618042169966903422777442921268888360603732336164506404961675712275505253862411800216892104516401306130277303263916528281952465446930728203798973017410756648416236626384975707810017951429291703361793943634523256640162941498151608059210192186815673197815052314973881492436140459681131903442780693551508350313968092347418039859927474810755904301374952934154539171454171324549621081730597219543250219762541509641442185712834649448240660116684443737646502560209972092188620630325079086237631975083775752257310381916733177075599349163652442957272595491627682575759891568274426255320370132350237537637356779041344514980545375165786677414500387595989513492273079640403774332832164862260357368231506068859877271443219733028727069691516180232248013972301375885699231518764655408604233748046888438317723196454009321023952535679223579787889175525258797628014431421799017141260043435160499046555068882783019758714496844194660406381925377065886394846248848595406218864673564013894191601212821209042094462554403543878941222749103082185831812171427262213736264687912945767462049940665674374456052158868088518140675199407118621546536108410966914329619213252793877237093515633945739095236454618633125001789358182490942247599727061785395182279456230953991185368741294541621216600257608458941893580182213719636284554682242849926196256721726790134162222928313021244846684467899632153343577462992065500621092294556285103432310909863702882444283551204801754353849727103550540845763332513511244810445858604021764618691203304560485170971818666997019101312651040107203976393787020683493897299358936147552548063333721713066376088525236067849334788157207636455949158391926038292418223147751164802006832454289818452117311627961940563450479420285067769555229704704159281707335404195423779182942649222463296226637860581475360368409386210725196231895607117998055187224132764688120389300476045473789894686440771581302342652996922598701196103487691974509877791759672457889779708704017465947528769767481533142961051524068092803075799372288990129931967616945206147592104988146107263253487945197955562354704323708868768802907928881626389947518332239380601372820200047454539283950633017240632546052800088402875566388573025667662994844395116611076655838965142902375390505387934623801602658849637358926589108262991866471359209259296531487412268747916302758347412583857537536243663442250418531704621082208745695784620309406990507706210715595369133500540588063686905468557264259993434624731364164626746176188171534047333553188602885601668395938269053579806700281353559162950789020700870370634502952150906690343398418088072612411475783212270760957932899188328680583998690572376148281001038734663041838151187452698451412524682828172076828930228965012708964166923182606145102570235341437419792843957705852799706467604585525449378148387959306241824668988054376044927965776612800444583538555003111355071359694211027487204601759246882476654438743995260648583390592735869782834917850643824651356655931805625222274803873811326555788437159426136964622560719938725343391725022266090683823625600443885424731900890119063625170717170837735932640944210234629138308541755705094449348166195826407218362735339688016970247772387903964941028922055040657882305202635070505252036516644040309515056180432733906759788465069126171702599238169219521517316154030780908695024378370355643933957637789647594049518541135670610300244668532873949488494395952962965426534535065885030927710122670817847086397578629421187531967504209869872849583774430857522706043470592047020749860773090932369040106720388378333449998138087802090462779831455289346176239237575332310577923644863904357363183614023079982191735374081259451757509006418649198156729311182080220345585655958217340851947750799336153245789900344927593258880515662421437795399349714989438986603032457526003206379831366935055484207901500737748224683186742063717369173358142590687320795533106428124161548764449950662787008575551627157498368695030632379702629003123105144611194598327079031311943289608481440197057711519127545352385997222451759373993396218679177156004185487566253323544805260500990301240568353843959682701389848701122152662295343276108970099952134625589861029821646522073104269192077073864282235557425158229617100337803014844852175977812238433275681695753984287256764048361270889822999242780617945648180764353727703250987113156145060356472255585562805392791779801239893413400597746385438277513478854340203650968516804094666739793095832874589633603452657497857648344268252813659440090155310206948020806124242543336908215253726773226582784489191507360430155826023077223722932104347479920226573613269449777545116517093437585854403618333173122420474257954166088753398059356900282417066448043285507710269966284666479039504301533077258512695840387035959956194369783128060576771533731053952372132310331645531675658837963922778727787050421670395917308401216537977512434614264457102006082701500569324053476070976351201830689796813627636168935646082555804618459679775510683591010567727744248281506192088299670367610638061301219654991382859572375859291536317825339144810567329488435883336434745395157468020432883629227473933051574423111770319383946482010222857623978989432460620235397527607159112354059229013367892330146692824591994219919853804955038043505394336379105302752297028531148003260142035789121168086906360482110149714990532569432134592260616916559283723835835307910285416453729698988881939536624821390988066214694177490723915992156823306554641054863481015224157606155686424262787450408867118352758845304484132061773015072678007868545534469951731740984200987187744110298588327255691073830611198060644482397854273425209620920962696120959477796690055264576047764038019047965341691864720446523051285064773921500441138715608334386574088239295850303919540462252330013325577693360621156851393895032614541521854836268605297487051185892252396188680363963116079852464722165658391149000261152190474867800581764179085058587057798977693720070515150009263469240485948011391543444768022875543477571637752142632505361658859752591656394541131571295211149616100531243013007012173784563371278028588609374065935557277120789099327317374214900065229259197566351051222899417576085809422917133900797018229159277939921560982386538832569786915075159225373237439818127326294439227815148029869701068789957759333895185071940235967844165717762906018223422853487529466388066455263706448872577113511223310395382750556736237462554237165948370292896766555370349820472278219436033873348076750162182142258069391888663208898377034409394643101344714436027359928879392925567782948708801886351963349326568638682856772049505085745266781607867491787999656191015846112642630451151307161039097350402546154510266852377723864870970895325843711350689510668324433536397713410386963289884149290118695434019217420091048687973026429295516995997440442244811022304895434563107252080529169832896044694711527752196176196850559775547147334113801912854494462250556178768543367326382590817379473822479012335779186104648680805971355665357151877611137737012956579762213320451400760432429288425617602891792449608592037190039725944454446715443822387751553396705383288262681629191416557043837423945919169305795497148802823954226038274380059095852446954977812466719879853355796136162114647590931504112889081456179795365178857285695965437207957353137029453496038550595876909501688497497522839095818563586991098643496846652998008282648035017286009263292895723664964552085133023098870485338533641243030858112630985731208067612717518011439741685938176844665844052863592205660044193437557046002161681449101483203643384066844262420728549098133660041927792263875459395522469948645567150729659291482660462241531171541809307238742041069701607704927959442311181888083194066963598181410818622726937779944627354336542938430287491836837833618646918426010396351776796614006762769134772734779180829554928663222016783100730672379914192440721942662692569267218480115199603513997362080805581650285721865829568571424643215864580027903560550733140839517293367491904493598584347228839372619837434039984125008102491052493591423053443477391630510760965192222131596630119520948947494193736772998749036390028058566042336038308132347125145531069400405364370469400328914551979045465930442112714426220424237978071606452595367817910409978701544595183935630377404345732907138085201076638507646590233558330630300368815671468878934930640996514578212120657360197542373238569605478721098120849242702196947145006128385351843177134698000998826307242209082235195050928351540694394358812104128569313177257668214192625570680590529302433942975100643965911493396059983651946569016757775810750054134366826874501685851370115063808208983156365441629310347625856641937320210208311446192905569836964368126589125886302752928756462782579298475364531338731607796204509282613789607379630876481766308232447532704335345595759826758726391892016542629925889983176659689460289753132527003936583645630638723833707271176978816816807755109563065288366472568978197678404297874949703328083535144043144498532180382598288886796620827785788991917674503412376501643957025508551791747488704454677170628551952308771371673414908244419754230895181629532707338275053508226683586874961256781510624481447015208735869853669636807500707643734843800476226657814042804323673877798006652216997048628171581314433288657810600768619800986603477262372284675737922308055892848442037248533135416969593668337956003283492843037391824853057652149853563211318395371081697670286358161538814912007933632069758654017791417945475664963943298738905780380011133660163499813561544693519430584969333317864157309240601677633351957967959080275255051283955771502923312144192588947126037974675279280668468236512187743087580939443374426337629231479616000953389578229732413016828961676232090370786905582930653095599377010234884435309465039321900539152095365377071645447453007677311998296612354271392365452902680515248152915389379197960913357185713711852025835454598647342132611563587230772172250482505087139681042072615108001624557537953021054696864036096498100527849805485804411564837783005350475922158954898605324356142978147429656525530975520159565695553573304301775248474097307353792912628869169714322811118580578811751277502232222935033229800839777365467277395452655276051928675694664449491038745427289320472057444396941154084428418006639858327789537193024375799424187165627907751184005540197194688621382460935899869101295617208149575011207322825327831466577920489914188187027645406644739314280910179169500518500593548939307850545407730440145971507784138784422020343086655974592258505054027836417411688165927997044912371280580544538625758169908159564167062967731274466946419899138209388725365001578285261525030270643853489909060511724790487071462929128904153039945163923665580344708826993185158051680407797726785979005332994836179630183326957589245648752215595061317351207146595100229250197845560566845174839411539005298414238152593623385972301343100650802241953159625211440978484352584632481077607106197833008541552432400760929428417109016015117668899918375003542184123785316683840864975954328775114902220151780296374236933938684139126275427147152709225547125881445472056831611726550232356633068876609350474893920814273833938740476276071660976546289055125155000099178319162404441050689044323437829839314644943857946517058063936327329635415205063963004572794750196972486583495115563469920335761756034075277683999447089194650639493136420749650800206259312024388868931025970185271986789173941514583702701519872942500666072773432382016763875473620487529396275528247893235156629769762818007688846824065814298136298831524644812196620264879661961670983932995690302780844545274343042079829532503033451450350197884050516147920619902507353450380154142432646741989354592968922139119905381326761365651092171928505411895829086423220244583997804859941866458303806446343048463337509220934121988954552268450219334752153561627133408901673857501263141151879739262180989759209860956210538016814509747730467739947494305450217858219822082100471723730785253966343629836435355831404334494161494448862183247172508089251244609042346488357723023970081399085894106768483798581259886295229151093939401673791827591538330011107738584410746676839118053423527042965984719713290834654765500763322199506365184346827970214236080884628953959685272945465809464645350256471553971136722373272736888027396125949034792076874333451467171123744533122389840502802930908137510130493754337271637497204582415285458251024450482912387200310556276493180810219559085721273347811734378380708274781864875237320521173156722353242353381753859707684656548365784160196283224553439980960670454420654610178187274808669063981447070036595054966932757313484509179075040469543378195051569833326476457839644032030275069181822285561655208162750636249983405084906212296529033008580871842856250657494253651944264274056427224353841651190998493960809802730592109729201105838666035270924794330452118673623090699146609427085412445974778359328469415071629177026100974390723918764191654999991768248836651998207525572231508726811066987364326722708531923793314169333173557435127949594198760897155460042234037922328643060297149524916335388364511385870279398950086819133449114494979306686806224289332992519067312511413946604890568922803666812185635814478133677528191616051678617343263647382057617448874393426719135750020635026427546872583229933518733280961794179038813006088098950477150199141141286411096102773047275963357747642095393708555424432575251771693036258019089235593748358261154847173822916229052452896559306036157446653258014700680697835135204978342608700944751119179920724213853819450124300260432148871429415682409000958976698681117494409428268208262980661221536620686743504149152337267089865578188218572437980805483847200908260449249443357973042357373701742988360641325098442946670866290440359238844430093402762214463218520697679421129424513098660616804816473518538606911977750133242847760660583223511731443488453684586598372525266725814976887877021626395922930837929050224184254956987980996324623939106299967040581159128241637190616413155693680353950096701508471263133140439043638979561199795321230777419938127074803978619677205643068783322025663482589767105392458887452901912694368219224142894054683920274153682544766694547946329686185521383025930855239300378337136722414179566723841662166053398379040486465176525239234146076040694323429789929483581382480680851692043218851671503218668675273521351925616344546023893151429467642297547018458477414562792017454212656232094951178244378502689093046334684552899443925546555470811859923132363687905946810565685335010208089145083357256249072286970414965196325762002751043429720130653788408678397921887036532592084588258588645461279301521205656060093926828100484021184256222516182956804565571610769006259082181535017706103625286925934665583547555526840533883756855185080071500133672901695759688289788665373771046962804119863197989495323452760695101603342330157006483641774352329400542038907933580998535729795743950910014251295378811758087653849379907197443988698693222834567716025458714999406293456675096559551972547722602455456857911629359279085038957984077768387452511877130478206836818070156711681316355926139472458138150309112628548307931094222626432026459945979286674570128811007483479036553868092458954374074940606714002883422829303813637388556646022534629872194865134514869578431197644327186153555373739362576012312660953860243600878669984457756281861458909662820430344318466445709954216572669404216579556080850880448418560354919318661831830954193554805220547021538319666471163694768366475646050946722501754315616595131831260881094071616990156944270243143296463602083188045408449532874039036019049713588106778393966386327555878066922745368872053306656299501366343235891498703654399757865544088850768429275473840259266135607372008702586537603088441615137304391024699805978177278332471155177992814185388774034100323892761411790228100799849010239649927752559979144211825349594787735794801136329879336215825078207011190464397697823123013131749180651935743503764387431521278835680958478258675372292117186461358444817214946726345428461279437579124588951802696394791025878615011239206256661500599132676809283789784209128140138583935578748925395950768893867684029161821069031297262448550648375905659464853226906063280857328381821339312150641294730035987882839186384703910897514971867387155078342993220192088328758323994380132376894579670968116578729361191979360787525342159404984105206745094809526518892427225646714500208895258280632164786012639607463153504734256231726822174042349104042528310878068791272985778707994917401919071358677790991807235932309444377008474885138373588001821056290361164411884554058500621243925189388536400877814031354718633903799284552586955521877166650417836412615774487462916621957767183671109723393341454444242216087343580558771622911101259354249940274232808708187008221878186372071309194207760412457896645059329573337982586067260912700333127532884303160475134794667115138755115706099859468269038893608306736762812671990958214283050681246817342772326327017161464879191196638535665910664335352376933829550303565810869264476720257818585021589354438790060549120807174282174871717738627797171902834910635495725576902752055316504298729847029796979614085670656500071303977859220022110710457895883518545041873634383321261067332919637918464980467021308491923633851960303150017286356188582171088226975395983747488745046020420352387631476539143931767544961057980932267795261799448101193677614865558136073930815050199902575593074536594872488634923107391009623037106269573640225429546500387556627130288236070503771391455126053982223836284615741823461986786734667226478079915815262286576953308649854381677780978809040160005656576632306604305262571282881529820151687120589194075686650845011606907991952613829789040063423904716520425969591026481420029917665063822638423375989699627340147620589636126127555890609353214675376592830889346162332550397015289375662930677900340903882577380078003901628030784103926474892765354410362747046472479617588695538793364370493155323888397185047034134459699311540286728550066360155624635265779797982516091699579059453672696889353487774961042586191099857138860454506696910343042092033766768538818953944363214765147598823841451241233568282297163481969431990442415426644271682652342990786475418108618357390267353793229210305645140101578664258485053791815210829663347184606323703739518779656973085841137261213689215727747615984388394042755455505660989074846403060941037537159600991632643085747782788779706503000870119996857825927639787953088739560832241927442522333730050726419751212581951756261164356177978749264568634353407356286298057602840590174626360632292230459353885606591820408368242286147557482574460241463062152779469426420232791190204384458282720534632445094429389547622799811266756430473586381271739562013569136888504854938235745837080110994027668267074537301001596565184386765177014075240270425445942741618089461649499812390970292644275143201743487349442764104601618763020386269485964412928171325232276819964368222353673049752377519113128416336849672496690474390530345239610437235178927048022760878134687320403872440823856127657995520370836204351490068408946921687595900595177118400359283828010014178249551140774825641582320714449492433433681168515468169773154181463345847422545615581969769936553863053084899113866973290777683649876209224222239012097184849684677307833792349614922757508441847876413878309817600553115905492881132567164451336506613855359554016642371833007945766679833075835014336071653916865300302767139252386311774963556115147770735009528664831255602752010108969454642869398762574464389905355525348213424784482222327641380120511505517055352500224832997500257134156325511003722565223013357965788876070776261653855600294260998892759379334546747369308063282215472168446032561143539682104830360995000158816498724829847802138917311582194400488358533386403683403105579171998735654880600413805856890859173939325471087621924291736985322722126699815787806378962799406603580311658593837348352850456991327081923058102291076755302328670423461825300273699144080616671240525140874128298651452212190285312016916492205752050437205932741024740034836256624842556930961062089818063927512405988745220716625762159936210577904044780167991743546809706475633934224700741588833707374422939208735801989577696362323081835681708393533406625211020728315722530544633142180317834464912995192068672198527389838831035455200841447331272857508198348486472283748979266462082663425103774589321884751350785239993960260399075885387289248469924007624962046811558882897298707471620108744700910326141266904569886956606866471613311640262460634644070318997280187973710339322202075451202664408172337584676688336347374575668224267795341894450003643130093550171024217992168278153413065287144230521165518459628261443099294156262415300827355194473865042526765805137911977161965971888440288360160302128614282654506545970623067747701403369999584689498239454011772542725694277141357943304509339979372222548251805008675243589157694295018526622285969288242720634216603960405313110108387805263924242522689405733727693063318186410337013130294399360316720246799030509081016954698261125785690077811779290064143101029228761121116123989899375860187131568368323346410593799663910708591157818662389611070681612558433936379874713552584625928384273523732566555104924429487736412173068153764519272941722427538712403785039585237190187450765881173187669124939650345275668440146973127394905063374363779135485534195857527279856252624868781325736478761721427744321625153604499519142953744259678245739493810694652079717599541955507417361486901652895872647628022768849486266360854323020996686515790078556897062896414831650681555927541200549355602613441799254719325003234626663593858540549463474994798351679704948855447291193989298906142214025175296478620449573429879209662407703254176746046654107287806995777739602284310844087425453976889360337237286888778312961858477794164721386684919548128940132545179426552928674176395859276571952137612709143819928009208074584598410786167496340471891871068229718241245942312590454582786793693073474132565554482766074371558713707879053023946805755872682157318335070296148600471717320586599923040615666230412224911979264783097460369746215054148056240384479933020745654931900283796524241667368076603619962707357360522565767817157308112353069413659673683739602381985224045243375982716501053167897316265690522887146182727981880745367012275255142099036035673813224260113024208347143335037966531704231794426127045165377522125702484108670028613979611908632658276450596474960750711517806390313909473832160593680678127961737582562982812256455386995778415391019755702586359985833561945516980570675243888471675750554289338447891902773719549153432449985049050031382969243368379824878830650253797882130147698181886899558528647407127120874541359765422298610456551243545815182192355649968812163930143393594233230156315668232562730447240092309501203418419203888690865218146219973434723222168074173302302015787488137048209953331307386937661818873521469834783000395128566668571963509283668609306586127547780351043091351647823754836521124415874401291656052210306320231142224736430850297926700195218501493836453519248078074971316845848500608071793051390350931974618089309083542767178037665298499232651164687331616370585404849366052330090954826942378894167913884644876498218223691659902824647217244441829555639252075065552258327015456307201430506605350764308257028524908307834861230564404098984672218460633684887504100039120426552580328183161120704883415054212596339980375236598447622870470044130266523694746791118814539880540916066394657341690304405783605905166261316562985314758970485390070770601378415942648559802747349317210898832665996834920950011694424821599343945924755936630010694361870267027796191309242936367754997103167879860467212688649623005421743029948112606136022063282469751721178200401113602423251127781367896611431199493712945584313971857513078349743269791580284830580735437807538723245114245998549929997953064818303114308241024921017228043193608762776741730958521698814163901809086006643264965451034801235939228197866711760011426833386899376566953680329091585504725604561684198893350730934905591419674981524001381604844644235859396073310331100922784725254888943372446872849132515658324505234319730435000981560723350948389375739341924692067577831140059116060393154811823987410041993472174748854917379751870876116890616323015910418855927271923750692622799645875834541785589517397362290266276178136858108202532987370260322073833455714141216604280698512570260426293879538372378116602034873684576960111248769090882156025894096515511027076738114404841367936679896023474554422239788224974615117932143318686563203503530112139217436428964771529218286501835852864366086232919611821667010025123627350028438030253256941313344334630715255887985592013639167173897965792182436036959936230926668656047399986587168849240543297060971534726715164481739847304989444757113447785803457693586911110866040708901773442692022628872433703582131264887833687842503106044489777446312725792411927173920778105468778920599031899185216836278271461610575726936119361187168441456055706743552255031808441423419327035792777088606487932465423446601371137707263120063886983675774816690313658545195045058990449734132000245412407708591094476749873975468392840404961949226778186658394793704450672233527620776087682642023829762088721673550126403116772868274684451614137028602297799917147197125942913219477086872141409619943092695683244739160385949029030834443741526961132743316004782339349154018263828624295391525059487873708919622287595766174126246125498377716681141288731478317183740111343229218857273451821766655907634917095692631074746680323211570677549328556677379022813414826478250596262808022425580213520642184284250550413947567361769296430973115306011261555735581328661735377052673463313237630028176602559578226396870734212293212934568711149118545482634050509106586211982353354464720499828361892926932631549443497752676423521931553207369720958120971007623990264068291527457547651976252361117223985147329369886588057294319958470320500625564805790304718945172887088502760953874571003010748646064884500605824103687514734985245832662179639811330469036144161665929318512046953504350219494173211305673332322055100855415220876761315582471926153347247400974125364706198291100273893631835558882180294971927740046613676039830986972173345341475460612559736318270316377003361202977323500890593027079043921541164811189036228651550510221153953455219790513897993802759606873442767477193688968221967779698603015307910148253614683911323736993687303189386464531461801429351301218539095955015247824398931339133642116809604869657661457434071089121841076109162431988283084002511813353522620617654386809392702239356800407516851992236219277356399769240214986936681799289791328804718203488411476941558984647712568939786836072208427547544346499106826709579977159076800229785515796925421861595790005318946747412622810378518175319812632657617180773548001852735725885174513934869503552663793431489367012798505264139641262357482961036196686465202834042164959052238729128924735482412280112317548517789575010072715212124236525099375235352808982357127340577980532631856212740044291165943424842996399450590221815799136997792782596732007066384061918450117499204019844252894535771460402431177033820334429137334182874472186568510664437530736214217835795840004751168517999311408075150349843889003201080993007140847490388387267330516488547335833117057858906834951507819317293389559323650353605524816414935622359558268509998547757501333794123269000765578251445038233389358290835141511785715432835911114065531256961452049927804630587673463273122451183129758037079459598349445662343651768960137898520887327822175745811726255470190303363958725688796616634690069877643455029437830900600794806988768672328144963979401557812100050828340129578761653938701628690133041445182350924331206056634654216806152359107890125005871992950308725953296829863773839366772629586986607878703403259830379440200175213852383813094978406121691669284315008343626430733381667763811744040249299943761830084592695477421792244256953322592484643896517147266964146689145092319364528888811645908162334018905187980887866830029014078886961108773945302062859596433980751673716245943211819433169369632946453307480422373865536469167877055482797025416384813790828398610202073863820284909550650793572982031483005239223888069265601909764329248215054813525767554724511083509501766493861474883263457869914185808869689727529579564203234634515931397546024342057514073175133495839231611262487340681607064536869604381234643825432689443255643312953216794653507969932368162750268422049085963493449511243585467258537172926266010129450796576040539563613313333287000321029490058934600824410689307119846873274834485272795310806767545351278353493595480350861845214698372186995334012841670355606693543268088248478401512894548078160145983445932626915564263038790350674205248623625045920094814628986599415296281102804768439717802488301917497134385478676489898071767751444188770926384053883181194950357427593773840458526575403408559609835557515723001988270190116347608671190148098695143457380121927147390309685679485958953679021039769529562482218157074832740371288792758141981386027314495133664334075570871583727356198628440989982153232308251387631341816374271637166871631586587877726673969898145091610637085371831893678151988101078925186942861336436154449495241455011545062717400761643052907281022744241257877237276637241353486585415083667416793111644879689390933311554395112264271126084793371913377839290060528787971699551895902698065235472756401950594227846686205422581675972893043222893314562946903505501311514238506541618518287456940034503463078803342209579204293619771030049183476870063029253527186487340686706832773540012805014603983793059537584746229086607543282854878304346131379768441875019412219727344862082366147369036989420920347764997122582994623246300571951110559056479837203397180586968987257365254970893616670806154156627455859686380191519580881274539225901532440720928727511765178798500869063087450553195281534346117502620451439257065816956955515787708814022425653701796554398541048909109773451216367139274908179508223658814955774205519845158869879448021312311311007798881837403707742485848162698931590384487116149064571053531560411478053730269064909994502143551635586243596190001033561108584184577720038654668828720377914176787106300340869407940882455976703517126095835565154381177208754209031261765954156407328886746867411238464352994276424355443881926258770565971952233352535361578584429675056267436372425298400761323147498522776987667574728528550283009620323365533043628208979606231538000052045298125643330883259597944532115500400382401207512715324843994164158504436618340228250281711172565929496053892423195600295281328278190019615609162962244965557844548847540784508850888991967675373729723235919808134029506946922618470770087727863193117088336232404699792421888792992868663786282065349708167795349184931334369733324332089351703417874612355018358434499043145187131858592706354303520827408011214360732901356804124526285739520077836508753488764508485548572719437136742405661990249199609047767354004750425677433068840199649712455453843256893742712143078637065581755864504595193661453203058575455071582041089764592625934113489843491819781652125345473854466888385137062673861011353138870761913521013625958089936082669093150564226972430411404582104140290844423128974628526781151109232156502251913151873577916302178153490403070085524060986249484018475299572316200027376910010420785143250137793736873162824194333948741314166023612415171959368888042722647389816599912425210699328634934278099126976256769136545344592899603381289128676493335539238873079839096349628805247079151182360541467356497230122485178156583243825552162307792753629047474395429390604049969716548001576761799695698383953302050349771519037309486906501766605371820284137815813092002214674383694615555179176913431501369226988312246975204114885740152995788349518247213801909690704063860173711843358842357887239368889133605979675491741502661576212305405732197040486799542485749863189850579252041651943464922661149618510645483593232889866875426635674171706354185718281445406312489187048641479023982972331208388167894110461426775669523409774761390893485770738457137000665045768470466907158396856288276214562500304503375843563267370964393375161005134575082940914819520655543447552373425606134601561396474007592874317389849219262725056144717412698569898458505397984113342561279187785800667569920466448478517828441466229246475297048378095648718937569311400617111699664550011485741713509938198382596000042712986073561410454417029724215997199704193009696372065986413207108087224584228922679761370055296038740911693255393037610817997443357666182475276426093154568869656254848616008306981171336445250312470487057520867624010873867784118491455042230351439925066533271660885898589735858931187907641840920992313052066726861992612975506287369475846712364097976708227813212906776162847463060060533814775849611146407834259573675178214643207645393611720928562242695506713410592000941430779656100377672541700766718386955132450739305893797416372938386593619361715626680554898434752557124515780971525983241784358178500654256912192334812774524906820391102656335170317727542482145309665888315993813796461504327575974188811346505734321910855376802219636305885510601453639264366872385563943017087344164241608417778714769905246909593351232156988274207954891864273559035107617057198787815716578360074713879330449083663317624966205014972103189464932887246376633360395564414472075116836779583819185232646916045115095707760130842145203740085483998135626549565975356726178962499770086824042004675280604419172327712894759150356457525379503032139414977245116019274591623291312312969346252806634961068104778477438764713435310284451316355618852604713428212160666501136107802199519129509742073925593210187323148992843776049151399706921865961774786638013054405981317958285772345170228980976677155464757413108841539820473915732423408181595910661798926427384831658811539483861530959610527222173898980315284763535559929049679767324052505724911285536200518636382792117066465193237388039431330195152606531407128487347673190260324489020211223483207786632332145237331958186566335072454188567469136113942770085244361616107619829956529414831629153638544403927498758111618452393018821259536690220142891187927453339367072735651790468508458956147780017708621689320649590286423306990823410275616822893873516528875181017864801423100544136164972950262337213635125238356822617836835694822119974301294944007354440186665740931303413934879280469071278641881204276236989268385083576273615967125458034950178439838624954819545129726039296576472881090782976379639773820236503614748624859497841793787503197105963049001492552716466468968139316236598522076435468171557573798505394888410531436071074147921739450359789903445294875718782658959947336352849559707975767650770309495223040898584513103806895524412621255452562874081091824021977831185931296051214005566104145792465767445696011005676132046718741971548903763201869536974436460508378263106518427144796041223817267504997250475121916435928547765661432142781110381380961081373771620389292659424023415516765110755277695012819755162178659922856109050494059995601902096526539161417099988994080432593487661594905496530850338395873572699220670683169588539821838677981837543227432770322555089434656442439472689520872201539141353702415720765532479114825837206772650779973527436663913126168310984809591030043308701982893412248757355896815041420926097276350971880003753377200165247077156433463727509343422351040246395974616359160948472475082622719775631264046834132751803978905778635614303441710548777600335864045436424160320116575563287669962145206339593700575187354044702116598159782565088227284209114239785513063474010655442940979092675705271526797886910046542110805035683156711671760774071238651083344369504326475625579251118051751185850897116432208121387484888187221638576957132972026424561068225516235786300711603004966544650119706598155599978523983457521392924274019388550715105360406216192191573822347431478052448538774133153243051354116410381077515030442330401412887967988759118375891720454204790446840780281259751881732930682631640306451636491752262279312642375146584275498500526182632490311733125691409440026622278357633991069136308737057169676348869437302111272677062675678500118435492105130181798764699925306296417713363403382427957901857884708202352655009458427209802213687464239863690157442535911452484344271194687445281916809271692551176883668585292969550834487819139070983182686274436266122362912383890409767113883804081526622038860658990937185899813705206851646336899078356916152739935927155419966398902742038112144732055133893876919831963030573241150425935674987742039260213372558702344874764600148416143998908623443220819468016772306627079260267707468408033098018512433238017922833915801643959774562494843989654779249197702484164562505676594820958506109239858241826987495433904540459602972263891583900661745366592286983877526402627105436174686112464590454914130952969876355110428934202427107834751256798397058436616145970229677696915753204214226304875456186614665830159949980093444943484732567590018363320310788905350903497844116281583687788233989440559277394843188125949620038387099723051558289171302058214489180393038395827142083139796368358984652170291354504618911298931284744881171404612508690797017880961233043616819805854254281118045542167925290624602115866942093585574374187719474794037581403727777664064888953940514195885239194355668790691819547545710555097371895396403586464638927866462404923104092369731864556656517637189123132894610009236695507807492845710131838020357358298634167361549168812310517366748856749618991395402051066543420266118663301295032730591073377999185888325046808578264751399680434292980143788769002166137638511654532998936753620780800616201604892484007776752620396861807589550626051114421321639059282435924882079814365014195925122941292101132334957068848529810755265105955790599412790643269397559672136086437556704443206577899086494703023240956596414589373880161764015240660327667155864183867799298708091259073576407734584187692347958711745141360098894880871722153987469279141398848457154520747130723060946922334388424357496356697057937126331017869704060708795282729623462090673358895861015949503304083256967332324600520591680419099348083145463125983370591456564008759587313735120095637633584525583380159795602493334334076054677463394306503315628613286702735491899572498378737339743367566685026724832164467369139035623703415168985495137696446126735937946280264517018490432732240142611185952943418455237609596996308604702549812490826198378649590739886338083325435039502374299624415687004012893891071931488181609932178989072406448165083030027842529857054512928484399991312296829299058358257478353082986524165273573409833605222685016816083751828446841343446423859683391124747898102731524257892564165509837172515778723831317887658525593482616607276319548809414834670192676198971214655202501479137925597925762303376347463175533464179895183051934301696909268809194133991778616739390168945493723485415400493364739503627926232747459882773031743934609374362833140608770832236039799624458878192742756118634400761587885877872758649821406719142962490223231005637484547367606615254543569341218997754549892232046229754932915838656432944660642167940847449959840284436564625462488061502758924950440282102528145759459996186379909171909374691521315266431123310729712394846604869950205695444023986198109025919192194434267339395096974756498881672384051021713073570077930625315726504756989506549817690433707548837909001878732689844590232528107991844085488270161139380431227056151376846873089498481968255623469331057762391762614809258762515928564584818422272982651310237265110670006069422067716700754858220059844935941316006440111639287953776164206218844113935139928848764544506478939901154538812478729007324749007508606338365622168465789753144242614443265340231477294059675414047614935485566220829574521564402738674412788766339795223469354888212691232309985908065908653700343889548769617121065387301041115764140326925442050887210242063687358442363230020892704885136413907927718707295910599143820343825219898265377818020793781918580538617760668218772552415808115935186727652088159437163209010049977693624129376420082770478583844401009928324775454998518109753441616571884296372007432981048328852603774653239450570726966981865555298734008123404335139707702782824879427875661498982159968364707927977619408418774179978015008578041555961596175262792540551680942884375363320601488081623580293040460046190675225381058965916433753467224062823949030649334967105068503270733958030806791719090219588268709890008000279174870303692302580793062831100375927839729773727141463161574410794243060488017169853573203036708925646490760459461209806352535344143572015191217095108629742673410432947698546418418650272919304659167121542492481371909648240518820315308840080259328611774935635152845358467734521582032593422363973277498115347012181216258385127407259533444840699624478966742605296460766157798984902788314550390887637873967648936015313799819505014813665824485885783043290394675834709641291532494899699235101424299422986574389774915226087852250716848977333257800858087082669696298400556530568271940366632656236723864562896915444505965833409869397737007004011099708327454928579838844672864062834004522119455660259614878565815143132547039917134019077835437154302608602068217959345481518234488967421574190528183469643884813572492250362168879628230787900841696857011076035978807037602372875495237661067262818703570199017518403212939426680951195726684894309782582399032260726301404057907192724879494490911063537837992328594733176287474937057862647014121154291438299080043316081930863437476388690715940593210229420022600157943077011497938124078325947621100831398449790707509696473759088586965678047095291226361944089607090302182315126977281323595163161059814171589109100116023540775828104791437596119658829781097010939496466045430027851854467115234030570843119890505746584761848825572143288876429323804816238436919993016675982202262151101496774467705601675919344867302259164893438720055487784238190499705859961187917912227046429321828626186732387200656342458552714165775576571993858855291432106720287556637433144809057547445188371270138154324499833265968597514400793568170599977061226831474531038596338783536118222744867029355815263526581272872053408293451708632249500468888348296869205304080003876518911524096046885547497330751413209841378355873435275198626689793813347804912140515041197786389481949784820705528066269043182614620900448993662488609925582030773689748518356013668491266905581181708423322620916129474283473295708470022413248263815228164039555606839188512213916918025871683757930780342300148239621093583995620902511361746879470378280273210818030901352094183991126722497830344876267121085661002440614914428575946646917918816941860668653507467159219466818683310812228838057981706505336623158484493879717201812652291606452886809078198455952048782020565211616185490956112138481006556628698105794299891824914206156325000777145734543232108592387170656602420001164786846505068024914941422268908901507496482698738674481438485425251083689142920672635254785170531519671638598880136058040895950429352790165816546106799031907919686480000423328692795979922798603174662285087208221320627589870588476516406139409252882872725262208699259208982759644718855279831569833450473251747246642492029431616702339512490719153427093638256046398438721533939825492498161141709938434016691196051270291550289981877464634505365133428985201802937597600416638264413544334576524686119207586486661602823308275135967270039908304273648555237775429208918655222212467068673787148780086067843318521519489149670749352306465911725375348696453480224488694309038488470952668281631645677955001958068331839885148116167528876364589898672644118485118554135138679791255897630340646091805801992444635377786455476138052818687497175807425285070121230313007596984151466900854207602117668968029098378563677601019106497294237126969527535429488729438085599418562034555351524024073537623739228239524582487214968314260557154735954377344749537150454353274538724827732710995662218566904611955289155355507813548411268542016174596018095576285679160865766602083852194197345267483914324727265288375983814301527363624295426942632874987555274247724061425641217698268851125215170404811124812069219242939390077152267016494567967067715869198745498912195982236839852774808607140166667841862801816143355906872353086550418900324015761415570285890541557391707050613890647781783921377926166978331406919875615680516506950174865998257259198084340380785692142487818902512243109641781588498057914199989617218984119478871743460228931246884010681588537014561856809093776408736907099623182333139454981143363394064971881278145552058682312514761044914051729150361803572064429646471989223509399704660581013106597984775550869598120207537244465642831205910294445011142528555567710127209873890705871943088731739245892693156256901070008773817548510603802948983086404742914154347350184753601744915261505669466702206462906055447644137989434517734463269576068846755421668642082744405958484493927632570411488694479808621413708508202345884821913001400418780561109254975573795926200530724420890531928753789540513997146160291998037784030755631460642869524673058254725079314766189470730009161212174834591645511596340386522535687764658663407374186044277583140607141839884167153049901436050846263777180007023278378134485196234193225391864959172550023330608623753761276606622429895448654014753732802092957639006215047536748675065264081259207240600891152847499103294436660180313261585578569512705804713066489360022737297814259203815799956880630784868856808171544575485088502460291951506950169957607399228618044441719122188537451658636146049965357811443819170569040016599059208961998456021801024334323704746954317643599163528004171712713505356239109705932830920550767300324905130135093346960101358150946840809711541765610257293915852553678334261922053353550479381340008036276229892692936784935820068034566632714723933081058317686397928126120399259594056592322727256776463640462510654746736101280235036632662662929287360878521898318344019017007781238923335815563828110236037284492243494836503608299658508584186336258707515486450375254039284380735017938699499617500436352203509578231532895118753847110450520513726097491482296318746308554033518279030660376074684190925151834063470427228897968452678891090021940679217905769238248756345765922295429099072241027014376051963544171570934237511640010690894068077139509857618177148521065271488767298648997702944002965178568414321934744988591289079614274794692533450383695563950784537470762229552656503077143730910711436855375973050585077809921558364969848668557982421333963417089927864786602160324833396143336527262066867419339274883081246357724950478501258753419585697719390166437471031236468004496219177857652221153058693893025625221684038236810515906503666210855571842664461406748854454410752839638896986040099353256211468572220543696760721506926341324590698629173279270272564112911645309172922934852344459982755325730434549492297739879727566212339229580802104621863028021426268305881042632808440084022489135245559406410388571425192948045804458689952246798015309445784709035960421028528202728362303836007369691534313528995125676592312349004351872766264949901182036647121797575516345900173488767566266807679544496467467727326295323647958221370420080309953775369587541439908484679195823475686895664343031704965091490073644628636381699128586248424974902181043815283807462321571830059180200252965552721363222175547649180148890598199102490654527577791998137859487268660065889775520727539559970705963260416090310159092072936883433202530480666032995085091555467443099155427285146689330118827801264385765892742331060676502161922374502575166912608114114259103871427932506752691597687268918463199913237638664443598904936107087924703846753336874696687344327286112550109286913818765494400622916848617898274478201502669516748828481791388334767635447890341223144696013673378443723376516956605063593808961072640759466669846984959086633938197014259247267981262046915145422096510727996372173203990090672663469247938387153979933751166577088176338049809104511879622430732681908169636949540189248699758964617989693399012027266252816669181426374485459052697279576571677548641867285652161204591336384126719859760487415553043805798622918298430269980529550155525856042105875201073668980656063515248246876919810522192793112734276721356344905680903028991332143057309118722111782938452794832865463415808972809049150376463869310178773926120847326310295170920140937050161124687138274219521547691223405485237472281671691613831085604487906061677515431587627403861222256995882134441213238069322166999741462943792291650719254154827872856488935904457220667887215908564734233048590174461779117254278273978243260194612263774379855879695344490793697010681539194114074463126369342695230351192905181276815165304603759410306344874128054600724849245555559827626720965590572648684251061770159763227920003748618293468388200824248559042419650900895458727494037344115648375609657052948153048215804623968604373072537300755863967011653808465089306857682044643761015980577166115463998680664484115119068556880237281736511398700773365055714629619198100964356715802202511791406493554253322370711948830636212576382574818811526139804053396809290050911743109375463133753949862093670524800552947746663976667814792968858335591940872527772001011465459961063055633851110259177952037517964103779767106829325455269548540896491701376058334615459200643442067694644516801780176628897656918797479993721300967112105927159705144989185163998088406560440124956286567239227102103066091317943752507906915286359899243575960012478330029501173834083587876183034408287305281884168618117309753569408935833468883338140179541196574144144077707426338069311870012615452239981058530154777583363864293929790559224272264429958406744809371359053503712053576681014657656590481205548577967832291411222009444051340908991115413758955845470386220188683758541872068776787278666183503511257207637836275917886725563391613866039700466808595433241951771642160842983035648379664197440505179768610667566182910262161923525304062973490637245224837978175569705688541033267518394756956785092463879855820364863782408110613679937079336881873297812930968565993382587658502569681956939794935243079430754796063587200258302051774206870021500675185939348020290802867562381970250458088655537910267847677352963477236133305771977021358856317286302249335267040161889546818390812707555052564936675374092365160588031793575402144976983414972111511775287462758762308246625145422955025961854594341759984598281154565220086508052010437251895973074181062369134723527614833739034134362058203481482432710001310158295238817466428537614614738055087452913570648950826666939610098592016993158811859358572927687892503535392200971694851440667076854852584720933436130952011751625011847038041223149021674684662873226976561370232821282146810050768015516714216506573647981602337725142096466200920729289061855227138814285538819846975188139742940051881608231264040150480899393630831088700387198784609993774674947371827099502919808476387236568004495253633659313043563653480987599328869666628725922806888618328425281415079173309761050270178923408017354774198042310514089181030992177207239775713932258533409672809275596780225163390705088830971190355914636723875939685592679660846072672023178812906902127424571019091406807001092260376098640540909051428042287119372175933356798299988912909107160323006673208940602414454114088281885542781711766084901024446853377899111134964537482170478043205243766234824207890860627432971596386932288631673188200631859482276497010093877078250089930041148927996330517858588711753463427410409312449735625856814057274680180110560747604868143253311260377777553660444347019582064241870739059905651050617997438512776526877231697298950735481446296459391042658732586690004291058072518791156048093271944790328339585357632465121575608970072103605335155739352985211061198566865614688815623341125031046136582278059819629058676218945624959252962321362137271222419031506625499756029475539911139010604616222643052122680732368893735272986388866073157548290561298007126853192521065761673481079834434780040398303603467031512553818662432704015846465899440982897706324362629828560093776573326581637116868556893715174354114311383819311841062233941034310140173162928350427857489278546614309628301481072477667703435203701401644541171728370663432912112656799249380820367575550687593690502916498867421074371362309697594736650522576037431737724451963259879103697259179785832520386424194897196352885788677446645874554375179766045961586145186746727067822667386900674722602630613550211535669871214903677060032731048931772574928998229267009447941377133308498693749457639284647678496149987524480618495780397791773108355917633715430927744619804547445024746326153535925484305805419104066472686647671381446158421531361676030836193264918207755362479480307277908241691215712113545757565914249221578407934815269857866651102666991406729669196228983564651032640286855978318614108119626828477082421007162286331549123595240176395379050224669161062271467924250464383524644223383215984620865723007597537399256054636675962276242709282894341821459050879667153422011642490750593602767562302031655331356730525923674565593827506225248916238059502740328272141442285669104267441405740444191600963464414536922343685024874445780163357145182451512900493240267019124143437590549885169467145873410466087109680125668929232951757710966457615865277737099422966796838695734010394625771056261172358276370817957246922459333898082532523895261872637423745319989347514450506675741002403840092979798819983037114006997481518314225927116830731023835902266500327774935892770736939200316756551116713562079512462243747998220768544362698263073774889767819403032571358107145125170109312717287896806818782073288738740551958026010632507177051464052441100217968807646645306052536145877510721902143630073959565810244612732023694454491315326404621323146123716167107497943120315746462127097437245630748644261271046400194558727203198736947806650722223001703525524665105438975781239763214704285326613577261938220177545945627675703997454113539889288637378697688809012470994477668983446238543521089358352004639821223905291596376559143165030280829449802517028978849453451050930375065985975335814288139742342721586576626121860749085146066772384541776161183630101707552860758978870175243395339647312440928005604667345930009705587746284188499236674982925412794520776374620096499934268464766311356948871188026507487201810921985853803604292240305030528279314424716782353678812780416203446844807794301761125917000273941718024686937208926757840255399888840001748834192265736258145369489546182458592577010825305738880614073959097576142876009606120496086585765849569458337999035393217273082059730715730639214716575097408189290145726911809743844859219299443582166169166791210157825525694529810657658468401080053202889888877794520092737425886116371068668859134644109021533272540965435772704993822067879463352350684414981217790230445300047316624017829534042317314195404298183284066639063861522386108419496572435870830728492414468300340842428518567184312986233106557494921085863624637202247043883134866146250374738163419723372088827718694831299794992656092409750445101858711485298869585414957740127832445894462190984779594380026641054164901232542250438461947434338620733618589504365499222320010747456109948552783148626432643078915765349128021840557553502267185419899344706061226470462233182380086871611483956170641346820664376142469737314765891942223367431541419807626639442779616895738445087543298159475585719029465067663151174399174446643011746825959181951053996443022600705710267770344248379301424228860086277907837514453410042975160976480116348984384982393537430977668046145896958005452747936046758832075296410224627856854824160961354791384731763019640005777734485708828545500338233600327032072906648719363223255267511725853196539543123857071811792092329565164710216987023502921778901082550617595080458160654149020834568731954863192836125080666340840075961147541428585719403042205338393223536791045120760779345477813426693683278988128930868044577453551783767414845602279735521195766196234725489956944770860807910646377396846514162983881005209861920166616945624098391938106016758963948682483528256911623682818039817586375691159394171040356738072990836360746527462881283737873994762985971581835926089982928581317016376528599392851460111649665526351948933854522479342730050501896392486557238493429775448932917487659080255480730978209176102399058031952710922106306932783399130292416378572071499072933825900608772324223036269395334446198457692992442720379897711652829430103812860938847622441568841867856553134870756444545327469468998957495897077902420697225860019819472181729935214059791425540612083288083167404646667678549474206691963192420500948217340881448842425740267522302245147217658556324183517550019305733589307377641503644535117106221759893270984818359167837256400341297285466409630548035234525924448130770498294413284338917277289805022805220653635685057094507981427806147521459778824347409790279861518333997675980844441472861915033529663886247315509039142962946440364394737155629769048236803858903602997727521770171205254632156353998496407734384468349823748643823336376822844754495362046223500044544474834689019411821905713926312828363014823106943377240704175879480968883416716986169984027548686906742296404058915636414016536426420159891014815200020724209337497011204680515954545332085115625608279114583423956250310683869070493798755948843847837138539661335827688237694913196876651378338045288521413572856820819112876659023894304105377737663304307988526215933473245609580209963000703263222019915841731996987394888563610018935720919697157824044736926145975787614308383076503863543401919721466267530742217692717326699964455664380817110764848025084682818436521694180389943849592342772809201951188559461286339722191754297951425674221373400557682474129029040106983402599018007967803332892638023829553732506942044504444043072174857769531060233935562057224315274515312744652074415532145155156754633585160084735867125810987836721298892846418005763494536767842021049234756149999230729301272171575383678684875793257228249784330381003385310822240953162780533174113811683914510967969092670688485432323629346723482618463354934592659944629942601678486062480985426268066016404918032122943365843427850854643055237741112427164352830043850933526508746397128083159862993747003567594119197682449831719432589833838115876494759707687134140595035766154732377231424534896283139400602478865484875152675337846730343089071868647538855848844346682581402089133814779768281171378822550737830691453585418476987612973359226750074813991826772455912037663034996626039537958107353262904948462086203240840946109745301202958605388091642564325245930459001725494007373851884379841927414386209186773041999084159513443960255116973622409220027408391013166308808459329568047383761250287909094091466246773803791994789304119480604708441036486326664019154162760693612856040132861012655894630680459373999434439771302371228087983230025262979928592542712721008297572464406088796549931562193939158812524887580772812261575154726229433847719504100290620833148707570787467087512067445971228676589754466099851627340776566052673118093369959215215744007877400205618915302024575809130514532765404942094275670967609213374567702606930261251829220652076026790139240229344965071564910047401892392874217361673890818974423889877614092678340357844462922708261978838793291608404724263483979139600583560157712776387049282847312113359842946859042054300324029318056460736448437473938983820276464334471987606964808663733668846282151542619333247041672728884730779738159370535794068896867982376331628502053129789891964894893092375856467761757401827150910365540678402808555437315104696000914225907005892234860124948699432907854765829939765383737764985313048269381596987021375788650323352193867293558119172937404579193264714962495236500306055928891529974698361597189174155594792875936862640023669758599643817982736227485958843884616892636494909294040091152248592978987617984772933663212219067591861710143505945825880026001328592588124352240157458311878908443517116461811206142294798258431858558421437718371378956574198694147339081122320646226175287290291460216262662523749204971176259785868127993383155054669655143354948108148709472037214128031887419999117554067901301882629479684148960211565987593861989973289486993849460190419757589374159913197736878423147589272941213075478938847204596343038636072584787841220900943324952949962742017414385574748266981335284573749250785873344977636647231011167453364846405905180947718646042332261023004340524089819012202740696654954146088391685731659894837446142574476024875797983974618100868516887872836610839900541602546519229904291551783422365476047826027889240363708933556637839555748676965992928082461305047096745054476031336617414863803948686976687712460326572536724356895492791366162740349657187525059412763390559516417611182462119964119584954833831788008061174247789338739429838514775969556109522705729324225421474335139620230297048099212955926331789505914191720131349904239977605385388599406133432515343336189045843676382049246702439100263923103366656644614227281076576539275327566795773778362604084514974504423515986884500044484557292302827124481368106637570994188420918429195282546077574103159690747666817440513774791591064659332390506110368537950828789348536119480604309825712763957998117736157537343670057420229888720415051391027627531430751016167669920328237349747766963462996621497657531445853840447772622181895228181678780994067964637428193364623139832014668125138945929290164672526449655898589667276934373900569332464783056062549717271651658585771358192049596603914931584404131446750699263027133236490808300776938593186740493063845293619604355296602617363155262051403359936593425137351204830896960924120658510279039588943976544570351385204297166584530935019571603815159714259944125968286907128599414183607619312116143622517344057027543870197907624650581815357212305693900633375506128506036965028548196793668516615312092675834876818089658711442640442874353801321251632423526125528635725470865106540568437860805057276524254271929791134569500738832123365862892313485470989568285376037682701098192083505809179589434390394941505382497687754711710961063868412704311508124225004454100823061521022580109374134201978213181217560921260035924558138490600105502864192516106726243367984879977996845411766323860820455783347909736891019130112599829580694045559080540768894410583367392393619529439696151652650349145846163287926533034965354315622876349409934717578220664878723731360634727866918010011884150413390872077053244713158892550200185580888436701452904032029526930727314127010964075477464318700416968247990274608344040709528549345355940895805085215271316209023275766513853176649965471526231723369792163329628483052448930540413410986206396443145748455218098450362406885123020577655077988022745584901634223945217817349941853026095527636228718937276598785592734322397149160908076348772440754107636314637473243984529776341180575832442881004364985703907534540482911131981585301951279142025854879636688842274291422231199669133271762582527370210905302708500443063909684049172613226774351225957637488389540525150088887896465761997419694855296825768639912864600415716397078822429634359154949112965028366492159293192445115795036953170463850262708574995022869940185290440539917186330198494614873759281060624182711604467669095271490033429860809603737335784971282613983193831859331129409584824725228801306615274976326548114131554340108658797748510641463661757708052807310982088197262597430604899681975629858082873874454637307469556612744540187693519813674484878204318090637481751060340942643633349209087786143208417749801678220948568377706349440685520032021171320002681689288843319725579359548821288737764838130670115990640427399454355074773447287573340719258507342611495393397104878950042013072269876523079167190736086777939259987394874032075085644664885402739812969811475533083363367072944900532762658287733666298012606488366080387349051020477849085709043109500324240225812464154719844857670759233807799995023387778180296300176010753229672592404681773458273271184187560697817738702406660244239321569818958827874945810699519047347992098495597027418132944286928128938066892402972781114004772434883106171522139999229189459417855347769033977012414434149296195074889587888090834874773904668478899954165463396302319183238210882299523376227889660728182535980645606283423060311834274632648792987741375771587724111612668891034770469265113543363656368647586114255605522389964144449617211176497987392172937806544503791366322972137414512028024681469206153217080894888867604508199561244979003082394297848750218483679874098993343815100122930714525368744206015406216618619696736134654716780344841962568064142261827518455044778659542877203447786040690782810222942083079159103538122080477443347332356489398977060264526542523284645209573938574688357450428163110648328630876428575419264156007467774326081013623931992017915525769313303218919193262107669093580310255364570873954621187339337078666347156875130812738637340161966653147509587018495140682869851441765299042357385208348478357934619728030352023783853074845827689598074395747526804535041533617450636093701050899157758704880178842724404024247393431622541579941913855880265675196318301608647987555656192803837758394800090200033410379173877932980271942183177726184774478505003648542884314571114633974284738677573147254123987109148861867956817938753959592690577060695277315089280908976100938213509366203390914478944107464837036968018388012739336905424581440335739546975645209387059225366054889678935684415456394690171651041610319723392085599279767680499569004512214456552217307036136078043012541120697094896816444412888487428927425062585284013153120192622692618085371020237512589200162214456522019285972978742620139928399933976267755933284913214766320782081721121559718409754113083830726107247108364475819460104247431414844070929639831628158662488649007430158647474828846356417308381259072631373377355708338148989275290017190444253773002644683803444426219077827904706594967021886348750795755594225711409813118761142351862695772584983827618353901270393409872042432071254244073848269337346378938980131169303212459393788916675417074241486642005940092461505693182620043060581185524617264297708921591677812019365599998577695082151577492322379396147893720845444138256389990445336416153997163075698397575266074072578688548229690362044422721798494386674702306700492637642167243628523069274581582404330489837229229051324191724056153359297658994630173945688912148580088637254244933138357919993864280978431799182412555309918316217046166459546140726726264770318880221289374786208286544008362367301071940949365368109939190509154312244020951959757717638202945283787903107001431684361453271884928008663605159690329465392247116019454992772562477878214660237350571455162933745781191510399730686949242165622849122524173032845133203172875224726390629193121794054969926039670119679202346290503829086443200518579363406834081162912152280339355659412467415093073251508619435264224483000674612845155631806250687467445154473107270312707673291953007278576261144806217013480700398860792523337846236254161974395108155526592202137780843038555239044179055948216633952036689420192486036185656342779127608756477077440170662709700657837170100310192084666975938839121735394070809958013702085809641131299392416349438312137463946984491729512201882797157621971350387699646414577081101105564134706904280716022089646038204108842417013667688270179449427943049865287859161067185930352355678174250918376646057498591719041726386861467848072116353574648805028608883602020032603713673286389618440249789241254349060446256893958146550292149480932603085617353505912135440702005044755008033361770679164766382544502382838161611882352314270472305821546237606985240864147419382472817618618570738154896976370643939093163980955030517965834454247476544861756971329818047792654164026522215986493187808176096249273298646365439934018639040538704241878142216104414757519687104981375538596361897872525012115902045880550217419449784972709771864151099138461296654705633840506960105428740519437033089395108191942493829393474271695358642450755176173938158531639713239335259403802508276588621378860195214825120064003508647717707432363249914874074042008156456852298199316485702937580049244854948329309007753063191935223251445614145154981193617657122914263450237465320191632642066114545673247454017860820811077422549863070396721837982826825900062376431856928491732038488933455981003890577668247896839336516250905394255774845519916748753997353797969830345908325979384243280959176055777657222596358528524334298819029584964265303555084188047042433416342544253822625292161338669339125500032641229261011305243652588640749602671664483314027819760409818853153094129365038396644582625015053710169524959778916331661093589847250458398127617448534388016702081931347380065430023580017230841451312490401674840306536118120626064256843047882579577962967398184267165909341464273676668294378814670892517324152948282290435595020624439937931616180632369506224220958377261834114881947443287683589273489629283750802119608440561807233477846925167718804126438345785759319590376344236470723413910743154393714829664259914356178848010651547533843347956532203514313186411158803955834883587416241108659041667739305949309707982842056387076031707359801895586867290786121704475692282740549117912102521782267141356732731521871868012391819205803407239172405353325366778925440692870645662839369730125553573732033545251203914602412574700906255785586270235892232427831403753336812019265219805621323659387037212358259211664771213434700433014638376250768528278443458930775022085216839375712550199732364595470543319896290904956121772095239989168931391461801880060481170561880092336401987866334264839086504409381743358585304898851280759846473761227119226435601529165477441952838955087665742473414256871358592252065893331676000593354207901280580746949185896845168108377413896658956866305596004771702564427622772215323334663204673479710327040674933914858146600491935530613332542012432122177566432206673898157622575869173170110882367022884775129080284755520402367836572231342170683580736715217362861916162341330102114620057471901598476930612246003980282422581008193032885550018631824100557587613253543712347212427851468191902404059596581456001230444451035561202018107882647031699484055827537244817345075618333641180378002066968088550104101037975506441282164677682543226348953314034680995978183807038848563188788742435555672550890908221194568030285862946964719924474445441462606885598009512153187981030026600622820901568608403853115432265349582052470160133801108669870872734776116407769514763836149947750739034845643417568691505380705750038402719940813919612965330194414269274302799523535661470684740534518103500339694965571458728932459430426383779625127208579286405530254593799671943329249676572305077540913972572868561449126738045658737300888504798633255358887474804893641024035099201563759677091656751323710257217758962389403325498251106410468208828449590831404862651064179569519367457865213581181172576625746796062726288453631677638093261172086721853869658290443163926385056888608850291891424334346156176579858175025801190509525449248462362872034168216286670012454158405901326509229774382704997987410287919265279880789727089547653262320778897277673697183928389665407044694535304146942153639667937074761634304739600692390052520912116583091100232505220247671771366962696661758391594291422893834569664464099662298820062866897008672459107360831780743742067987471543338988559879308838339018119420968492844771907793530896641485508268604467791384343411791645933658779303703432669434413598084886817780663906114070569645990481065985356773200909505473700787070335533323071485927552496111562530968241813602684631481934751053374091363819886763149424640826214380649790179108592181327419159921274808011771386233472226141827233546892084971104653664360725914487117226796564071659544837399788586418112943504889075683277712594594546273878132655481228734186243809670545540115250280491413688082208069948868581775107483899324225681731972911292851309876767138124906722433435686132752805093357550192801319376070720602655228690867677173755965112871373953967224763651654312092888553850591324939007731460544995260968347633794326080079775342023261355626988623997177484306230501692544078488285666993797108211473756790424973418369945079756148448447562030277347864769601749236364243229388758320770078897620164439271401814633023047105511127638180838829617554687456939136377758929883052139518081116972326039398211325777733019001767033976223824602170408212031991434266271892723629491690820389956978060312057852403673400862054160077177503665463378490203704584962700949679445782064733100819893280697975913980284443856118292573747565212341378759388196308713584204477078870792138864840428824446477598774997630931582385090220273673165185492957874845068712692937658397970233513864496840268995209839209054149863781172598111123295732685311362679325280411478129323293807606520618773648349761694264908312149327421998027892241512380075392412966500104405902848275508233840311452219429324141198045510690808896060924499565167162662374317523481891431202574349976239152326144653293030051464615680452677535376362364666278541743273774703351207252452744114285421768219334849399109223606008579729209509787713006596008193519189124272808515607674212551189929673362797596899361805934386052975116843845813727578493079178374970802139997580020308376871200803640333399615505691604335657405090531427651530074354120941271453589357460863558558668264166981109969346396833941220253181644190110377773260173485879501830657247973329930805620368921059239283530854830742942812028589594364321454622791536801536890826327469259763734582205615286279542434414461824602248842772432608667967082429580032141309982579747128966258619488534914860813155047441023254614654459726835739903049817707454798008591634612452277672566453089342555791148636961460310412187553714312942781865102890320044933813887840440887522878764881037192079711955461730041183288837076403237871043374139267349423106497438855641579424841557252077601513278625362787299205233255889701992896230632634149076313017931332863765677633513575771266275261713840711256328815380805548613585686177568501569297855959445615435469952916141839022056172235754352101077360123773225911926777107288332841796360814585433381481265504125609087839323850586793346143402835718964851677628231381935155483258434464852382586163017007634867891622691960723184601392967587663946218418092076438941465279428411919997991536083276647760128709119596524281805911998013900432973379599635595501820081555563333950516205003342689883921704335598330624931033765328009258680169825665038682205247351565441331269702108698027472276907718760315620442478528780323045798504191012208537147988159584211277040391660226842218497789346932618220969728020897628133933160084293703233131131477910356285933085916391802918583214845077386358204863873842156350216673970611217731955472408108467231277090468975073858261971152587042312912100091604461647936850688151942277706425312092384850317885293486550073165975001921662400362332374277587112993448194952067666594250723044371699443178982490595079059038828527840316424129383942271407439525347313739046107794589297418210161082943513492172317293179959937681295186354609057011797436365399433978254490653121605914960863183289975565710029713123994707548936726333358986740829081173094994981062892620697048983527387583864445497415113506236019803931409467072155013632120283355507812983874344799387509501108407656721938477492977299367797908307871939831254826918424319142974157488375182329217664938082015630220764248862145185688241698927533355708404368542831196407588066778186665599639145603282377632746663167767720897520667062788664302106139752450567663202768415887648909866587102860913586286894768797854537761710504656652274998206294830239892909171678911728942826744319569129691523083728410426726651092584763886166283619349577349975517516302120646182104087394797820527204116943789136842721732020877451134567341991798260227022333535826103382329330097780690589963472856976887105897087953794654045058083314023694448308786465898502855150234064668155218421921201713147954722760425127073504299292668071572190893409514074815612948439553097835598789739767568336653899399495731326586407535173273990180558380095399688190749644589941049339985969703221383863020514805493436449991537849792724153233891642802770362342105131925499403782796526887459152766987627278829115281110337536232981324652879225323163749456356842611546360391716745940043060364430954588979629630353896847877234479495053850964888006847020683622499343580618486803851004244937594226649320508036031000775710626223887295140112444781373673194572156804252344370861494539330492450396233439384749336223410401960885290253611597086806155686514433957606853070810658549947631051311813193220313746486284230759080207168968267191706955742763776085810110832905696703307999533549415669151302968921202570926778817369904578451064769020077187148561664358039540530319365912082953095630288473576112096718643001123608252589995664536857751554728748480124310760420860345679738254308205557447460223902809096775800185091448780455286454605763084775110761888252641170797895596106310660507414026351798606812066933167235378322385662998762162621206038200610448098922332151960934498947102085449631723756526837333273202418263899564084865763333744051877083527271439029332840821254560600868982565211029897591087553762836195931484412075017543881916021972155566229564681547513240188885739560845010222822253393380651329433113345760570451866276809521985004651699900160351198350920162538289468138156773008364568698332660527628916512598775951868651914868873167196353171620361116294758118049688741755859973286955191833788364410016139971283728812960257336465227346607097516514606387628914720728146218550318111055524946360057240143108425514503159519028951948579174314108998559962919744357759797832728278524699524892964742695532706961431593921335256696149066813758745998878913447863816825199693708121188962617720138243161487811920358314173032644920830884897225872408225258533610943677769779588438824245156475319767273723586896005415575312141366435067901719259808682674638407073092717144156791060160364458985426778266003564178650997773927439033583836315885277987487000494546573194578450320305625107592159528498857396827448090582917218710631012084278215113817135292017244790843609513224694874079625636995468296958947676040916683848066141838519372229058341512650844841246002145677680390569349674571157921429436426178711452138840678482971774462356576949739684297678737174065611330464960468219240589653113030775820447628792404842771354253482749788960472254914517184563591274540078128199367948858296669237122498984065238460321586840104787178010148864766636907981043480349097964451658527325151636279486720727233377583837251640459876773173838981596094928978421303438903908138562961806787617554148351438084440763575511491095272085932187621045012521509623599186374090902136758177191266515606611673029267769914276299706436872597195111495753042430385020716903481133370852295758521126957297302521012973955852680962896520370791509395388118746927442680468456784711863223923660761623082698746141329817146153125496536078445901162817606602773758356365842599403852170238501326290283694285907305551976783152751096808937997051908824052720538725074843961216683726667539856293244847148517762303321205178508297070516727975049494018669085282969219527022556438587654639953741988731253761984420750380704976528062011233243769059645726292708616831388074171020045935916503214542293960310379678869464165841697805450063133352172358180342250256801706620147491566837743560741064156148771620465729327118186723299531859384344665788947121562457200523105631685276829153291692065428294656847277747551617935673325879833170465271796853272818343903525476222796808302663754476419816738472915045020475725924143927723022860657985924651847521330087910321959483266028504166539400522449464075317390537669872702440550365143463987409524901175615555396308097884366220239449914736734496039642019294782601900240976120168824850989641372424666197749599102478280049111755648264782404024745450068019515607900000915066528271517060431803887802201085687212567252878723700367706275432105104714505902228699953616589662365788647596879887630675266275321427308404230085252545933474813806982948432742717848466897809602175632393377218210611801672516598088579506732751768541343725395695071822560151349715286309316619010512350010669906842610741318802212764523659786512783302549001943624251355608954411072106509555283683319552013970358736888588132974288931823143807916079299672823552558476715259865054611648979268780639103791389932647774260737398614816655076672811422010213631437167874924814178294936529811979822660391869048872806184294618462837183554162114379193407904513727464414127603422441204310701236147753826001070164839234871969949911778896940455776286045734494471049156870977299330280977318512041576771244718857097246889533262662535091891105697944826827654763834441764490363113022723729289097122997773088602481103200182321851423365994289227619911550000218958067517350535314162541651071058899729344043283216331847956505091235362813840609083274387477143299283024877045113096464807078533567295510175404586038844346488116448401127731711620721746653711252291861774283897356237737327458534360086999949006971033526544498668033911191918301303252246213488685835607803265851851248488791695279977047042589064088752705166671000836275362280755356874908636112094622262288818849482193790516227675045164775176720123232566337986483194840196409283188026928224486050876752542696530830785289887316569801005908342086951347961978994683108187880398215222763757669573001469106713853404955297668174574869161386448760945584740651360072015413513289807467693812099697424632299014472245857266068956254567134793334970299647068894384636649867010737252468670954479384293590250749363235235684038456915884430117326054249144173103034639602966905349357523799759591001949930730750437385160040090259184075755727333954831456286196723436638545101085700676401590519877326400400821546725771757088480488882217615313334108574158456162176399584116781663124519744160407297994748079541065629894802833493035925042739742435140215465261884286229373100475624065949801007873828999036813065019785589817289849710444967498956238694409157836375886038572955156119612596713403974957412971313030631171149883175240694233046360812605909299669093596826429384365090148183759062499230826821269483524942719865849204989167078571717156758725363308623531254012391644106408666894150724197569059989619159087650339576655839003893136238210215253677149569733413970798217671547480513489165313764502888164935954989642910990429128961157187480608646876444788227728704197749610113268194266115734922614753886147466830212273159152197749445598339788016718622981262778807571458574615837296948635359717818458380867488136255153965729875237759871798242538124064383670809437182063792618730574172535820308260116251487640947428980498193155575942936566364023408940377395579681199061280658018562027279049346526628713313684738063668608556590830550484887972819532812070977259128870123893848460780857035141727128690134635631262989876437076705712688084963017560599664284806439871966069000069368017477309889350996433359701140803043941622061970011954546053492751700532027015563479566922778260852391384704725283693179735390683116086013903263957548327462481368024773328416908052171674044816465001675441875621783502727341891539034000805582280363259365769847170140373224283834522625330143030447275603839887816541067824792528653663677478611907820154405443527025886446548181022491036310807697775492058097440694902416546070199840529677644053927905217239088385660734580918554533652053363617701719932173168399168393250945190462533961095591733720033350001244117525159948473498912136090562202206296786073644956157874650656993949853013449319690825118696028822253571019583032259798327547310286948377745783380566368970405602138975046186377527802678397470781806898505438783029562223927825728623979533211016462582095159464419277086263508677782305727387207609734868173872688872679940489247043108357397580770864059962237805992855316945265081428748856213181747955952795684965941569909372594460270382394595171641792306518833038568904186950934473538149860595533564274808835780280084269327208311744190008910538036295340827051792418490857029453980970662762173429323691546848458126277269896982513532308771768425774187505960880563599590138538599704992264480299518036300083875581904374088505246033731538219610203892923048085548760832576517936902917250727259614313076043705034738807606805546148015986624005515502530867739645340182441141922781425166776763323804082139297463380228366337793225638828893687988457507311804322890603200833497806432408590202903270538445457789806651393712502524881366966933774390521371326170419854015359524987543862768086634621894742773886398382408787752163879552788041466967156853684783242089756721821026254356583079456101378679310303420880930761249143909553510157395317747092418228952290662384045857642035804973581840541888869676121578670540072547349301583314507690326766539905285957422493567690314451539458239760937185848439171536331124259385824280978607773248035009847488317887561625151784620526254961731516448184444625356553754021831800767039374211720127343037156399867864838530442841656172590326327112117973309767855967152500221292807384045661593364246503334949885434973472533811685251305536194823056993846898959146090240529547008230119775309905990315751643294816290744095711311353480049118369369766296347709590065153841407469059592894323301544416371873040029866752602030404150600593764374925510168655313562500478530377891813817679940386311552646434473303287010555667609798765439713273853337067061224115358865145467610549785476669856601593898573122967794903133895601518325833762112330256351102794778068601432014439539632486687799048574329778803586291695617030210929338425863789461556320712531324794969774315428355205828049600054423240069263047274663338870115971652182489602515641834610252869887974910216113478909279777052698503081264557732766823831722322396313722457489775115512782158627002553303015117951329213815962817158158047277437265318834547448976075864011860350212642794342638972096512118047239734829476422367018285397934147620431157832232106430208242442061059451779011221969152041486835350178495392787684255522724269113327932852147286713445992292130125141499991756876159451842795021276722040953930389984453112747678140064742144543933362068236358848748079809558115712795954271512115747336499514657496052931194444630799392638716626879140091073308658771618832202099993989093302830179294884578773815413542045807302055127330920245276935290996432557946469563967616335298026619610901444515768012107229462299454832693727238178458030119270833960375939446171021427160712637679805173950568497349900030106017895600918629935494588893353233554985122472844811929856920832404157601749460798747016966430226389763398875266458822693973330993395798576032355093342670390454539896177554351663181328081122945896415620338805017463718113513417017313690251197574542627909430840840207996387372211949963937569238827379257183200397782554067168891785640300342504173285775773598303760170479203915769917461701909096203192077466136173273772629045421391273293960845905484430396421865841743798039646913302854569091239087564355373261974435042465572217724385434538444915911238826479373356380655530915422302089866519456535083314086479448515106781164795105353922315167800419608897386167324750262996743105643370811111042101063250460681337923983007194836670690027048366283727969968850184017905973883650834270005160899272459968246876366655794887296451690944013484322247149661858835362066414284269279459006501691599392401186248879785503015118207100017096388612972204596622992911046625129127981745890769733935694717531645476403126782002103485566945488633436941884100281022228108333758193988138265854929706045095130285676456353060004834914993749088925649070315701041525745118704882508245262587703074393399692738762474672862332996856617180239454005232643260899989545207983243052144690201761357900466878785478393655409015932735642903794727308096145710957737622802197806087682299217640660486931781961015640143008730407739413771388012549081080264797436625158083745646068631431157520282883477700810378418359761727026916550973861130607986467374913911177814337890275646575247870068555526423749667862269780165955387281268136371613165616205838955775574487749649033319171431663163873162186606327734562233792534817402459402867171818283752086260082534543632453381881135871907909272420841906096694553766550217730955844669584555850624375599238964964297108452276381692761159412336031476025994546919792796977969718868942846896495078108902665096846124875282623224892608093721210632546699328001068029512455597288499979008740207126757934952947881902360356309287804770758732545047941208948342822864215038641294733697762543488162616931878194578570536158387657579919683946805844512728338147460133819819261136143495178335055237293488790741298071050206684521656687337473929923669497190866628543360959819055778702834440312974372829991340674882921150740519998044770769618868028638378674335595015075015658285793902093162087999537361978897808469282383176354671736199091806180305930227177783429915273960127645863030636341753315238861644825693860053282668358319634484862202408404810698558798531361772715321182450209836802889035874427515306496340147779882117748067197444118241725209342350881534921746791296012942481872691726726676771322308731630701642055579861468915447439076715837255210709664803161460361285764653031346317867780557241762891808506274530858879677025618149790331479849958240866796580241374447849313942791478132987982512405099466018488416983854587675733904680179279260901991889985985580160351011503194065241409140854504060042040293678719936151413301797792402734175853972271272191943019095006015525316053219480396612404831010428562271036912898495995735825261602056423320536850080358384316745585168829729671014692567894266822474692196624481062251599552425970925722223605401853942329837861366448654751156003410872225295123671605774074150622577355199064031152036787206640484088438857195569784862551758841148758621086142520378684937983867157545115498818461700877300420487220068776550838038838387591306010528903085628946994530856397203911246067124841151148060196776878589177045208133960695881435317608641184246923998279907100204605112179449575968108913877811910968073376940493676436253723161270715460431967444849276884068669428245288189119451489095175417493232122311910088451972832964781912483103020163917999456164734600270567039828173609571700703054524390813881727996924848399381382998062016338610013601593864488532464125687690580436950262740866420085324254614741614356886625862283615472614431802408170689097830748532394694469835990379673601487129058213859665478153605551688626278932037781795461381685116021486847235503894697236000418149542548509989120424448416985859183375668725554867548671470184851338623569868716055706548516631616549885985651855386415814824048118722066363859892884023127843863493312859980686302455954594165237017655468199566379875542494781566203125319890962972378822411544726910439476072801086766328151110637632631007071062251717007257831115367334435977580627036674168167292546348203478921831568907311165727285818500971691583139168724032595051608103514650562027517286108908574634626190990945335697418492942450069107425969985005849873613956574128631931502110314444685348312301192899321297071701317002302697293285593425935087274033475063125699273875128269140798484376567926850288319984497946355085446375795068327257678517606377439385399698854947065650067001010192162236765445852242409154929394037463525012461241235323793932251473571377915258737743101950574779517719003304620383185873454303444613536199416968944858386187193547036119858413682478854182811231557956570922598516680013758361396612465834500129841208709338312923308161894004273080390389972086578916476067170992488832543881154963581635805117184079024319268392654855985424987754732980648854018485611052606447539059703210371756496071294184286045742971089218090756061635074494561994412748642743932739334009929940543288915145890683515795505814495492671728262726335001078413334807807136748978719534215451799580517466883359984385503016931381640827337496634693938631729870171176150060561510793602338396154862223740897640417812713085823950852902972667903208541683807004380429417176755588553762821396621190824767788678107857819416153958449724864850698757288922566547335512211897849084591186578892194634327709885437584915257137836508680429189925095604662000166171015884992028668403993239464142970885260639101912818817282647212771380764094706495109840886370283140757604114125959667674531214311577191135626207084978247380753591825391108609726045387066764546060869616319000599041887406247802652612563589878275991941271844844291607888172898502252424850222841157857911532753769467103724388238280605386170565660799254752529246898684375852710713553993290037989063450673995458462275768461910262708363793535175746649788835800183978912481026702049367944682525523595796749445087938189507764618047067907247852064288078232340586997877720183713984547872811660963188483642264114967179277503898873157584873952005674194782119261537496190046002125311079549877673715047681601516966842023949719056006042433946695387447152743114475540550689967299829834107939376834158671604864125015139476288492227810571416628986282732933372413247182103279651154859889340083182154538611083382156627603005673756819064888219648798284222844602242994647485858947340509499088178957996743879704321659845382748485026751104870267509734721248534922448321055396458920204820017738834810782491836568333837850621638053975176689747910912502192861190522567815650068742884200973340058137328474386900171617897406760547441183085960344867154575969436930805554979118796009871513022421321390432506948695664176520207066597839548494756903609741981839230422919484829365688491098667225034535327761637300704241147358320089959471866681524833551765800044690646115466150072022819735237979820591123378950259147545407216175225503773377903240527172928129322994898565023633821860487221866523183049190556886805970782963690421048161223948815750881354692062202170330776125958952035226455923965761690098331810424206667215543230854539191939151104142091711159445231539624588353653503077886244299805390586409316547136159513861343127379148221984504679434855214479376631765581171103222905235624603947932117559398571365055776997780011362144547921530623853316750344125201655706777495298224050742733928669124017688656631705759936715572966020661111052683228225517891496661393742351270504109168552705405921837053056461565164795742233389034152917574486227507041166919905395164795668337269254825484980301103788723862819287029120534284071032593802553665810800341411878889525750535963153711902814045666144139179984893334460468232089669662011543583839637261146821016918764896308184221040931752020431625303380008266053368393340041233753872242469844265441035793652553725891403488771718118095778159587542084723346689966562325567534501524755019341412624557361233660670205202030599994362431867155291576755390556326843278127543101518833025551184772181217275854937480261722248182502804082457289405247084457971937858013168298369675217939007576880709784895666391724421892659635053691247938676228475089828764502093953824849996880428087620999044498234910117223658409258835128680878889464760236943994462094874721022638753568654775826168132171878891057947552268959646286367900493330196238609528694282068278553608032144513681822488623623803287144828179128146723344219096930754345291225980084384043939676401626917278624407952382296261262427957904274277575075234614003075244032645942283610985845359845893174415953609526694556708354336022448502204611996933579082708604486779399743546650095459451770879070638927147949854337247734272357724005386119775405731977217220250436650592896287092313353682137984738338394054066005467652259843451553130488722984387363053013493866791669848551645034279192898364164342603540075764800559874844642930185690710992568251970768406163304261460118682721834656058816028217481362607787409335770406889987483702748824430818877237708743217236313306863707319310423961969725262784806880798872175626172344656676922983217997647209881657128541121520365278596942294796839568134305643389597530891476023912555963874794209617326805598708921880827830207242076214237239654998003293900608021694360215152042980040959094902616759093456466598037424362580656915409895343271870697248165173417874867439138792028181460714297550550777935201018055868386075941171857055126337230668792307008585174057114290273251640164077870195705005024292582916330451439488998192252124765183547817544924620863483098367494124279936078556756345042418258791134336691021683911398993597633808188069012619125713914446225116766553917144543463209479096082285235002243132349393178324457186971631375622762522698577844651524807195258714455685779564723737828037760062511599399623050041536326444335263493692645850585206521049460064022010341284636916212194932870692901477398601243561504236109218337755505296900429225504650541493456617779912773833140656630997735968457405649921394758484170403999348183557011364375140095776383100155333633695216567831929486209652091546166971397672952271339581095945500060069479639769509999835294413325604271609350628928650656383893660688787791430555978449395364347735079022306200368498175106709886528034150329709709564209571243005489470275048592836310883539555975933380575629237743248732279499734859185864433498351322113453325572859998259087646450434919271991540652200337009499226515476244565814388719622679988740782474742528399403388631195612042175459259768250555570810142836097150659094470213570256296665446681985941686066450133493297393066322551592236036766600233876504786303845932587934564878062439149608399967584857692512932226017413562826886568544330497557415136138523802345951854627346393387299362454346463725394610386837464105817136925212170408342423718487179154880630298113525666567780670738602393756566656682477580576882759753839205344116388036653337625722256059783778139919205714394492510499192861697973773081286368649620013317579424224263347048014842873189292506166814240673452871757454286302422063776811601980907161875471399543941886385041258603709984565278110464392912271687229910599297556910577855518428184483513578841964476831711296848051708794169122105572859387131047946815265358555516834761669591041078494785508671068991120844613039881708992318825066683611145114691787488476083987029021292711155104570799863872658627085924791233046189622858142116802077916639750232213092256197956389165373780690269203797997402712498711331401546201578377669085387952117114530124631582617445980195788716979321739183313722871068476785739359359620923961596285598528019805144636224162502771969610899232711078289632194779738818664722440414936919285802145888001545732219913995919934487207181763787556209990767936672295265566979540437369729634953537741804875427137354301378590712593707124952581824994597810094053539437231068183777814450546205060365730708106610290047474054575327611792294781021522093965299668033558136488234757643838652574891640490006397150914180648214332692520990661627757076335887719630182325768057797848282963730581058062911745862596628553475248646766296255970726781992396530665540193754551534360870064097646501224768841772141516686728550469185903192096151913000711506310865395931186934396092099422983145370737161067291937834539844113279942246228576011799383573831972793783457301251830517624747280501687499551437172037606496072138152182236199727476212797559991289694105413330119424886573195228408975776309740870221388683184451163985334710109388362586982048905903164350904937258503169114975400080632091848003832709097242649405748874550034545590885610439192873346855851148740285375610656389743176262797695107211267803042118873962614334436842434420597204490131459305358491577506822142826055755446332754430745821731526667946762129103150772305942956630718982583357028783681549439167181690100868416181247836627079858777878315066205256271652881348899054108195681896606777964633711646156062393436832591208940994918091549784608838349044704066041200281323551744589695374192261814324040154313638667553486917769510756534312471201525566541674825700097522570621744521768029155814911897272091730282502897839498856107314761661612312731094454273419925250397248587318827367110991318853536580248317370901806419867099452257892528954984719146906739728854029684281882956969439259531563088623950416215781533594025415431387711625056001013224296905640066170864669762152500229202770853942156477251689086180489565142051018794080544092663248572058063694872877958662883888580829902917994063102640367145833309803908442767070024097522743718462280448107313173771349107561150035227684488242190542456864286639212386649463147493484303839813648906204195640722974174211575932796012753008894284825841455780330505379016739371311989598554941824619804806265173810533523671735692856938314755633571562192009624395679508868480299007669200094395061190533070817179420644181475831661733406815806095777094692436508852866405274626847152354056137074559361131495059615241914448019946194400559563610480099367015538146751691046445998232350986542266703540932481276406179896181695617025464215581475957312886837989856047304875833233167492724272424179415976883020754009211955549296147714737549977443765762931059906254893036782506128029992580989246313908846078676487321807730071933848208183157060228894197453524266547884663609840884878543478891573157302573737136332980439689467828975388404208611584364208936238732647918569546287631611320347384208407153336415703451830772641436278836357960223494194636634635664301180691749608370749450585051048125574435062358825822308412959018692091502792252399494666997733629173642803947510737549028722137009656526276289722526828917237987898318063078058160818521185473207713271008675557626044663824777854614001995211833592038161203151087846512310607932814775196049235849639719152229915333655308691400277860333622443520191448230824405458732916673286540793190334037024404132217680796532703990136603124528872469968342909798458138087251687318629291512304912393649458357665036441815662420181531335921706604471206238727260391081871975647368003667359512566908351937732611871769195628549824553067385145501667074298245227210301976486001545563281726345189462827156851963769133636098441774589581783881449087784117619890518320904002856602606517826914094692809370853120621138617873751064673505496128376428434684290097748291735758590011565336855220868883871698612794886737222274786930377862267105346438226024437265742184530114008335860974563362874517822076607436907846650842941380091247631374323214906964556022308612567037184580504105843940411908635658878329392444284253278713333738906725348589756507092749616496426173704535163283893985769402402366065503597474581349638798758461808866289189190308513113394643685276831403993389288906030092730418069347892214405114344276841026544709147616398453685524258016529920476603759170462441947877792666289943617258854813147092178690517758984995950671595990795810178562673959547690657408306767470401752022340155388696699851460309576714540708935697497274003103671974356497214882163421428202078791477302988170776077617386832011464347998915005542252203887614301100660071299086766477862022394982536323783955596080718344610624260938784145054027444311981773752543985531127409279008008291899625277288123339286836761122784610378253090523881339148189450547206085451547554477009338662216829157459073342135928953573189887322948290105802019390225769589398085181561019943718085708054358788466549802069413100936331089491318710284373663108846478385615167202626156732971534750205292452438900084411780496053130298239963393896661926874204735896489504217448054250114075768331140294105390640910245829747566186279473650672454625267113446077616076193595654716610858809156352455568969996700275344966021435683403165507460732227847318053739413707722849924217371870176353722937690168014593294952816732939186097886415553028785563863502455047463692707161960843577731747898388680040691528177949218721579291763873717016476521512810481466414328911158992877033844232064782820501390441181597729845193077042329915884223205241182249902840773567168621901632237387831246271569783665226219378036127477061156300856242358792310373958955183453300083265394417252970493352971446829905702121845733597554913277510676934184448794472512935834088186250079325095206820027483513875816106116908295593069886564338839155137363950104444307977419569880314852711271615798212401973813657898898599267911659705155264606395867643809233708651536180077468170576147925478367741723414299282921408298103883253303713436636705469292373085069439094589515348374537707426369317460444516180517581365554635848589299210341277156548314860248042359498390567346673906689800531477286849863497494683848713447196064580986516713912960266319987242391469654880809109350767887036999315149182110465020452067500295379148964357221156693874221062935336517114213938551999814573334686945877440929735764832565765975430739757842503045731416457685248578598733249097810222532405929930597680053628707601039225606845330800616244769372590863047104249416505899805032809646567709380151207427057310368170236540693924212337445018216099396900655984877381081036374379012906034119474407336306198187389377994147425035888238404757020603385326268464748303216720711763881118749844067569247497297118302376636493326330081424648204713708978809221410531767712260415781067343011764727501192743594419792732048837389576578920177999958788138375637421925111547762425655698251498536786112941975318087103577303098842130388840770601028515622432662986575512852865764698619669776819529375923239879186396213429810273020053291719882274026869025402408102695428395230611777625554089308399911493842491716128508566107613395609095420367384948319904287584947656761438816736693251357049202488924211596367355748649723883740313322109563711872012592943162464224874414879064374403015084688705948282623026030450083640969572893726558444878979831232198733003187217904267894329750359755892029834428604962398468983902599826919954055500292005903032694276354894697415129102932981071377851943768661007724141200996506199698363084326038531616343332977099511901666000882637771025593065733284041304628790725622547250861221561876904458902985998623482175031081625093465281594714554559132564183120005716805104839930482802362716696351020691575226035100530151970901472647200955033850901157761213050059729725300095863717538112471595671272629389903359135994250149909128729278217279120682545844662507159438062461969453383660239870851613406865561243020311771983576587882162280112563105838938813296844751574171537118975437912776190424795491926230284115153529730166381332798546312715310041471912387237303923114594082946651467232650279185061850997309639422356470138455541149337415704849258878409657145839281434004776559845612373547818458150326245458895790588651002079782850366559787486267248913606216120667275865849306638320776682614221271017860667747913051605335948339357224873848636523991420164372578774358107977523911420118369946285660762069670235359089551742210215428006642223114479955280780687755283501602085211713020316416548219905243031344225254196676329216245221348305348123630136628965975668100415452174632813180815191883696833445007318472326718624259815463845143680827264799495464200224772199932119862944563307356314788866855162386906143718606712369473475326596196493945353289005043672878450418716198236998458852747746289487821443850425614376638828488014689154873769058663554644241219895214947196905836830932350231468106477421158347710858483137155026148876079322302276226855207046414774481736626163458890431966519796851769392531890776693287322999398204874277978165698657607573530275712599991688126372395955516732393965060303724544950673413702400525997639562274574738647610999755486696597085118876204177499019530134958844694780320514326711683983919968940396505336373296895718661487739726046273335945679591543816984622691375789473981382681032862774317543119698917847741810801023489249761067318385214779218016348289504787201417014462165757441131209202541480900352232656896549557257254812734182274335953819683835734799320956130501444187076303239003561457910331391779458508462491686176024841757471516067792486267320401205764731605750303254138319840098961612000993893563080510144307743109765292847369422053481658452904230194448641867528333041591421002922250193787203275398248213966700876662487199892839179352022232059533643497817922528263766765536051585374391082055586904541108652569796492105523023387181226167768057128345901064052998771594674114537447100522791001829621195154529820286694631618554550542036470194429536576341427313161258992309536540014641916942509069189152130688305056794669372320822771507729482278346403671879745867215429259192133436566891153902877150795748372233253038392626386372997482103253708651218673714913484781131887555452966001260652884334111233588215663087438838814205131607378364170439287979525606767170809952966403368973158385433298876857482998123560157761005071434946931821189765461700962406754645032679289635866132351248767022740551311829745382042504576798764438532774754531981702396389712434002535034139838193235429482801438257368860447403309640116930459427601634537747156997848693952950555082629515993020986094402174069566132224393543408598894972323371064740988649033413062712488556024937553491437033081666986277962846671128573764621682618431082575542834405270597519274176259376939544321540021569864203867461535346760793586904478525427191379825299302655788867785617899833801327217724102271337834917055421092356389622538375997137304823342612689634809878723153242906719218650198269517032754456371319291290009856137382166653820002820977700273328667408745096260068235579258099559910773273525207404475013059168617808565564844178722178352624207210244810917473555777201613983529077919044291928000492256659741521892059677006557049536362255079768818590757830546869725686124775076727084463990595196885794743744821802200922043097352450555133923385738646073481428622575516411540923800210306048684555730181521725105471895193967113293408536802735180677826960821301913379762827472491730138129462343417956400403897825141140233084040588507552501632213968095912713692654567301578143602978597554845161144362518340282420027438678217747379286793945533008130686723345173754298737651620289950181768355623326811462427696750647533789991453296783170533382096739302613459774195717030392575599668527139530800200987163506277180855622504624950324833659491308648420209384811663524809583977290450301806697720182004670840875169944787033084676752772309947033006778497264912334915233376983126583049524840891728038445675462680589390243487049998298364901594625941965989956314649648568467004456766191233315716214582188092154918638706487622114526788986262573602501393167585500595852277190545576781582284285452157122000307434418302338206394918591512506515330776195050850667805206993774311766265025801547912697056207109845205770735004721458604883788392473434034644513447851535467469720055324414919820519379338003464483951749536338532423005087568780964096241509237471589437596094404139988574794386955813275296598243838948894863599020076878278423082531641816522632669248713573397561857654316121666505991970628174238698734842574470563499371117336172512774915596287534993352235120880838737701925939700622788931006710925973511052017362355830925490186349701306837559963839513622892331367315937772403082513826137405519346902558759153159686192699970711239655453496476508047909357597363813362393384916647765995266259001675825626161913869241650175060569267319035818364676110782091669386073810618409786759644111849579838545809936752170824421749567662277911887807888200060054723656163524537581527067350724251854412521143825373980136160250588866793646382544321775467078477353254730647368206421109334369524408091249189573812341736076863739458308644928778727474675715130100629973297867257839066179013800826910970810204237859660908146446917875803888555662978823006575828138133071500113133932284283786143822354716276562875697757115706553346832358467806682837939744434628432617612533573152469363037035598019972528809097711052581437896176221600052120417690501742578578724208020958736606701071531049718300441250031501004804090415063916220761732784817129988793912895701193731009359125453664634911358479643359378823500807562541037972541994829081749672114080045407754628800294180641396845911907535612970137061615885044759880483298861721443366182707076368531476295249673738061049942296916252384019543776815859267047554523061943262393027935360160419334787047013695575058533836160605441303341461047292110610138795819925660456769294084989945941044245517544835379347726560100869938154600530571694419447048068697617039729597543043379696994484579718383141914904920803980696425327746290313221357540172381055862065278584041751196001591171926628646080484764786134853346365244789058896138325897990978361617000758963614719064953716540624224826457104005214173760755480005232125461117036934562529422509321868209573535380258958072452839496928753663096010516990329565100888135958573331956001346248137763219763469443860112360474518827054961655277645805184359767875229856089744700641128649057236479039945789340138162267503490760699390930730666013961383595398438043586419061892940355551795297819984163656483635841015211187792617142648005581185234013836000945361936692971509801170819343073609773854165188528600653691813163356833798272819215965633872067597950575432312266785975484112612968311468650272904734506590977463504761054880960148138319718349345229584853614366259168760130350345928173328553005088559063457903494240501275373435034386219819251328002431501459056608136877304334224842944081435394647334652709332137393643456163404242331352291783147293992509645654846917238436364608927794223172065787938407566591076228538899618225465648454419725741803581058059497400905601475601465358769122119971309390142369511782150659765600858680842709503129627694016623162946876043859818812364783463607527630192941756580405189037310900257591278227778971821178816570019015689111935188611252140069578025351091061433113869340073207361121440658788138965249994283626932601110580561715172689277140077589431688235774441927651986618224296769069475386431192919089988111964720768583157786706438789760569257042350121655081638110326293735627217421459236622169540330407563372278790130108744324312858445946764486291384534942616800763130338045195221806047018544598025425556689349226800734318965590427355839760383428248741704017314555344413927886505770109143850935022841880383364839664878785001942180956942914111991339686552585110098717193585066360751072960813762854265135704456694342426022628051408254344426512030343992609847738121473171336581039460202412129776321255757272037545530445630809492642362437820859215363176248866777090889117984985591695337719457744295952634537408604538627013144678221316131109243783359497616018230377343040393289970922175150351202302827173746465848419894656839488395661118927056263739415358414714523329344801525431321267010386871952372099354575676470201045149295409991074689404869823783550061394490130392867980085951605612708597199369415732530165256891592840813504488548740201185805732263267199381799300096365137990175636534937164266386399626728577361023348652731090701538066740732742104354314523566791305102801253152812478609821709460486901198293840773404608699332299086788913008817679544025034098165710472680329889690075764596954175526902892630837417975059034941131692692918572179473490006606848690364431069008437582882663233875944623018061820389729964495821318642903795741666790933863051167293446179762426906628019691707872455005301166112455955398892289821138818624521099101875790514572993043363938931821220017725901381380861591274791636446661108487689867158856604292500103294807953606673671224011164429783878318689058744499001543139074634973569228250046510957386274228080759830513861054799743146191082665207545501801979222223229546232719048244154093571707443082877610867228559262696048669536268318741722015198607302870121228045075454997735392718167806739856971948773614761767504923435084620295466739185541365147325799167271588009668381774073334815101241698808033484976027975826506978744718221636567531925193030790546408536185983187437633407436834597010563341612558322236163627857373710095078565608339111134333816698418968473735021076297260534024955858352591953929438407325137508248140156415589221784706602416082148557223778285781741411451018835861898772218046841875324025373097724634088712041713263324645544945078184545684634838911791836996843172777633976693375051251980843109387405154384373362832766899765826109456539881490321073932573248085227481035603530764535409404033253730768132906026384040202657557692257566900600901727376725536307258033545281354479693975508963537243603297802330646558282819897265770693830615153823478158112985317443531769664368836901098886601942947380712892523544171929164417909153345914990404165373428567717553921367074831987836353262381853271890945981465070346150244696294402529613188436184757341707808714321992086678801210847547319910237874110049384227752448603967491793128839623259340753286426617377122016629415019653505161437289227384170851858195865654051074898841460273445620860423259000570631506677567087561789518148737246468009911696287266988094496075517326561376698076381713771884178257377482631426837551620296609536002828709621655036029188715160693929804397148864163572203576157291425407268501518408087467080204413094514818349646574921695037239022972635026267005863120704081227891384134833591801342803736165372177134311486264439812506099180042684206815502858599286675354656744919631232362815289031239813946849715163606910370368651985168976088723170056669818334702079059575699699734440316046059863422925082241019925762041381052915187744557770189614418163931266351202054490022884889670321550776116297853377166347839975325741974981623782431625117761574777150477104983025851783502617412654104788334920030302545436986607260561076767072081558692743574966390984537857602608364912742571788226435197032264063056162659750006679026792971249846037889466638578241811211498019945342252004172783992586732457207674091153792258344247327816549330033278341362161683941406471332611768100068521925143213280461712588542736432479193721456452248316323010273062494674665914150799215379913284955807702840272412185902084087211247075412153773947110363750559983894724076656123531069274832595217971543115779342726427651811503283833380404471217519640199812713796727109186428546119146975390614681650946366368889854418551319865046110554603797778285178078463896011856785135279891969083621262121001886377108469170699185024203648785045454642834659539990608780287831920500674022455803933547375888230531655929556803942748242043093679149433625423435850398026822428720757535907732191332962122467978196268246145200354280438197257812491636252143495370846800478772587612934258180603728706273343711028317581110341704103308108552530762854975640529725007372433626982571988599459252851607704809573298988923141141137401610209931371055656957176613896027355265516017162198864390569020484677717035773401842293309010176852613090169414166070692989876386847497674807311002667277358079594926210517845228309051913690080915555059170810907397277592872728964609512175397980056536629890415019158736727664707817003137407800016251371980126134712297226489467320020618875269025230420565908944241381471888582253748145667351725017171889653632033724515125274117229926471515464548894708709131902038337892497728949253966698432572890968323504160054373612811264783266202482959522767664974338408653316735387200626150893813648559669376392239430484154960382329905542179921726765022094789210566738811429566474592386400600319957652772777376275181816722898737687620739040250787553571421042589320044769707953479151215233519645683061772259434201217077614317095071163190056129148636086410152949574125957158147500012449324601860094521782519638551955684661157618009689223703496667744699138518405981876336943180758995549804770772022663153621907182711842636939703391463299678429036371868065386239797284805185734579731371741861435383312774722697661468827276207127942813800067745217114105663567586598930855997300779891918032801531517356878450452416510707095715670518508510456125454180344692339786836150426992964304481716712893142775195054061399111859607022709362132770330698053730215110859474688280321011166237866769640614252965200101383392029266891153652049375292885373280689582017066238943441694471600030425853958752070894676459964184134073608202367285692756691650143315102402422788814646682257483060746610426964292969908349634119525896409412744159424522894295249514634508600288881093495485247366213976017918948364884530028110921251782814249505800831511105294188904092148286765708004680047080503053408552354797778014911215663277057692142590023551591014131318443179046061939313690951306767676513178616426959742936797096218537553805087776809118127835894702907491094087207922593197334456084590518180472937470388148919968620041757743394526189398137088518858249112411295533717013200649791160552871034336736925525014359029989311364603515549177845806660735529360855437228224210047581830832484872363728133866346937106066789833812154507610557051347607463997526288628130931604072546972473424519435724230418861847270887061752298927905767048591118787078992895067398423126905714442341553767216687828605765617446743427225148469062553693660495442834434680241919415162753431094761211647607880747969586776239099719245138091700944300064712739317723892564801658677882239600078060669908279119186060262269838491760703732527029874475806629530298781502962129910399694842038627178681472436987384342706617706975632508876972389166795450177312671364653981410974566824825326988088015109401628665677061365377655685440338813869463953116312413345262774678396887579962407380009468798294813188754600175336926749156081781160903855175732994772272689781187654106927149208063840687094936187597522547334777909325770498869911440064870090004191177068385088782959017052360462842406165907366745194159967764987986069963459016424625018424554746758942384656814781872427941482240415322668184361754356946021129681270018793270654387051969677314584912782491740157131406008314414438993443378683034919548488167621771525283031029119935233898894445114097144511375856044808522829481690991490574577680977152117339722776543742256525219824017060959245568708020370784558071609999316663125997334047353071628051416705058794429164957475421012036325988864843990420467729091159284124738897661840480130132666855925234213654986666065440287118383230111931461683528853550265497529664470486553563989701949391333080275967401039201843983735719532752588859116567871946596215039682434986663143718892687244116924648286608933452754759852400034230634327750241251397731819941625814070408168773953766163200286340568327449022310388325029420141933981735158854026499887890838759357102247491119252106375418605704831371544289823807659683539880080003002381728617944025778497184394808271627110557194604888532550095890315079521406084983753072716838697244539458969504405985934192458966536748325573425562784381774459337222429733196315712260601588425807599843202866956566270388025862361184416855699547645626482113316459921795507051241739494272895758574690333572718199133512385818506105385754398237523220061641650916431456267646471089390641073284739725511755016998814910835037945352232796630618129347696207926803152769860102861133286389376227277394949750622792327688129241336523431855817594738096274796840354361245218495260641038915211915314286852290769392678944281885665152540696427992883603810344870498812268132951963701393482561613251789398070268566120378850210587996861743017922156649187786805179040555077561367115206219565049438977435350119726562071897325150112845417167729119462670870707728322465715113573441550114250756005771734430691002596473962728581285378806078752760736227689725929406076890918344346684992449788850968616060843274991571855187954637871566248267973626030984917423975312991518162697814866349135225601089223949226364608150474887770601456098315364851707636428173972703506550170605697838033667999659484068018709521863019064333052864324340434487743935110417820116888290257356132262637661399198235870583056933920601737071717315839430915551805680129543231889737502779658142661987247096103197566123726869687568729263618578228429096894012359200165486911195589863139829826045906752769632934450001095592333623126327505009113188569527568127886283385795921667402414068496121516106433783570393076090020476375723692131949058982482295787369952713082419714788558487820975022659305359195621596559086740331815582227636858420953350397934678758793464459259415798328974350948221605047065448615100108480312728299504741236499155884961637772557364507327191997460517206543493458223328706243249004842334082030948181440134067665222804992716617675318081006989414888912695140860235872256804236992884650552934391418569820157549441345984626489098132016340191525484211470044393100347010637817406755258727584617948881237969673698122109956623695966279203179929383115469112384003850661949650209049305433511964343279154194213567828670801632078392011130646545217593774560658114785870593671367496980176038638856375213148313101941682819183389162599213622663879599197726993071976874755429317967747008000272964262216208256043974341887773507815016162228989740526232831042494907833648235563514020384711222478205757509924785100852981232508287255940116275211411385281874363763077956633976355619397736226326907399011083460041807656508622665817991061998065004684914183252019131225324615053865533504210383777824000656511758526145670246624644264430970542348339293334388479833864387910342874772744453210242719217780539989342327921112429331559362161384174991945880834508334007241356184302111699266948382704829270331315693018778184508722823566318222034470661290697819471937757893900363396245784926876932932164550832573842332523503591591647392055527785109265331967132802053515844592764236887926107550049710584300188429728037393431343570467664831202117483678195764353742872022846697023414140909990510425212459625094358266282707850385719743132266802903607726035155098844831046588299803114338569248539399649736839520658327001111217737742781862822245905170883785316989969680791087002511171180111863724072590201161484159125008418121788096950876051587726845759266905531570532876279892465553876977141502278675353738156672887126260734773630107911909418602788214433314323649843569747134441252656762325304413804261101786391540449311915111070684760482337372982986392792040460806600415623030274282950697732447808658376491634465814267757026432600915122914223722621736538694177038692256780108059440505336386782575151387993800968097238099164993818393761851074894835611660435797738453245095975331539099378919523904113156969555292810261727643720961627283899440181111468931703828686408831392413409634155566513295800680879498743376959542303817708289640842593541314295310832550522179393566906655279029308219785532493484446105906647260199438463469292227360448773626568409988077975479646545802809196037836574950398552945628702041383872930259522439231106199746731959419987415138980308842355420002702018195398668130497410328692696776141818949166935866972738413340560031461217688258015828991280123071415995348697404477108823384566888713538426721758338969420518566289616156826087198534947301443027024044556486151590596101872732803344129871043016180407595641602241509579471510557520134276830341194230596337755734480328751784500250730818324823431741054938191526730887629860323109004191805135567355267036176513377792214442910335258584012324147015727690617862096024875618662878751853614607269734321418876955338877722975943466488217140721237241367487906987695772486564383381548845359966694531603259323044577769889390523358726870616476206220612060457625109891050827272940520441546416804132353362376806997085566986895224790248191262910309981090180855630705816105963376342930928028494706388427052575599969050381692139472795782955617555953689935746132780148073845342670538415152677160832914744337303377037027538705082913344974619639196057614359007074197967977362720302397281657701974052004593986338767168561073581240909533976536439524966220800370582170115241221742539258378852888593755262938581700123866136296608264254902614813078428611867642676791611281924882641533646334017191209131834453605990086647494502244136249438865292160824003797867535381656055526494814561762927079572340128345357069939234047084118970105729265603435330982469778860464192818638257051705341407510069370471722887163796911754344962238337335785944450400253960767090301195932448363969108224922901700098402888568759002986152199798210642651417584216908048195155817980759955364584349841772753202915354200122776279503299293027299239991573985703591317705835823442602446076788621319114400885418641374833388205364843618150260763449263539948703169905569462939300641110936422936044746884923664529533028297065976335004561241726976598141212023490237106592360864081300055994109010927556810165345692774803957633284387439544273319647297112377605419467862343529494256038182614064448113578460571405713790942147989603716931059043798813040945473279473441142265455218970263578379687322019635870012062562295914662312109575258086700682993463551330541586243890634960359665283796522466957231825256809940063948384380092244858894414895483999924425497759858868513811856764114733038506555511306756996171012950752230315352473676866862066648043615693187279330006462633027544887266330818101994529092877863593695655129009861070661944218778482419043972535678289940712759812606102598715774547798995332440386672736502876219884537079682566942164376394319046306836684900613671945131518827906883031325457993062738112261580061398052356625669262953785057380792527138698911248633815775551440914525331036963850691203805246229553964009121074062416186025767420595946245703724315324603210353351738756507955562070653819669171937398943266674703883329507731818658587923568308197312737340675452259494669328574938325920232519619978322654526732581146539162426070145105355772573264099059463561046384327351511113321138174541612597868715386979984303499356266410631435680799446483376871097275441314787489518137753267524012519445142799446815999179515031006743135886023501823268904284624619897626505381767992009367960662817575476427898095161778572861080072377434838111389196999393502371785489047003451327463851821544766944997096005725971052064933201358959481547730799149819170470284438049591955778096395314881951907645786363757182538708586596970629241608301069146274240813104918935374118079338147382157613385820234125787753464532206510626594166683796927055648178818168663965580710730972699846314530451349135606044224697277231872052968531942518642125568789143130425088508560732652984087997357213051949548078195350973844181672688043569573167799912988777239433621977282447337074303267399989380167643256603920805029072814428116725596419935520587159911294847715309237268572893071170970066577915650395839874801822993702310357620329098959221825590786820053444188680093659662237171812226549309823798949592499912728275947800027358791728798542366474184262423436323368735662300370066175063305028410785004314173956631045921877642897974101647649880290567637735095277486267950883419424427098298112252917219533588496732714601339316369386393952290979437796709391966620659054073105501558314284675753041611953574170713908252375835871244764534057888964584715194923839935050423311510801869779664894928409192388516771715589518808216670947650721741324063238757370425004023581954503787327983449455292365976934412882816458706185296087911489003026849446068129530498346333098638865109192360839326287894626993815895714519026410906587748641217151593111464265518829258607714061284938748410705024133099702538296534067069966905798762779412141560046262657873560695613053839341803971623039581824786302142727954558453373672888758730681857776178041911039465318220739000320166797765310182478402624316956237176568907373841805919607088643580146611066054054939251407710989324071874845576489300341796877087090452776526475364446386035842393706578488709531223713312305553599599794175073691610953271160258616537773687704101685143737583204984757302164884086217646297265769686949348985137516646659234719369704168285658204170503523645871752756035616571500813435964110246844231695057916147677083852030734277841137257706841196773537407947784600138309777193102574688940092633759957648130423149474289368060576701629165683279354832507219254927902802034164134984156855756829143781496026145075489971044423690732961108226144257219333177594164166455385053551701670065913556829236794295756175315970627478117439015169805641440553532736635353747400742232580141233196219703990757680586907618180426161009882734645642400329656536276681599586064395315848518463203484341993807568093060421606761409278130615527888746863303591271198974875857299560245765276007293184324769863209422281614174586855615592010543173619425759621589471036342613105752626154222958105275441722579127385490002626823346570637285414685829713781337538693772257730401504199764080055676932332247381634146599270323384830629861362824493729177556288129352266134356588556372431896795172549269644178696444324058924751171699307503211234335524451256576119055194920083607588692972316505548508621329688922374161425216150920653720861893861835945889125333519663884305338680049853659859274020254095593525259978405636706495747134590529983857659133124306793750650085540827209707656027401446189837128921354103386675953937331340566418825984854031361864747157348788009275039851605963188430862750743325334379639234370776292069177297115087951748193957929861259949603632254616405289880134797694317988529072705965449953955142426899075478464374487110157967838528155971176815635328148123919139330771060717610745092183802559631890412600298869376418019209869690715179610385913668427528998295934025412194234095164835372418505109317904454299003282932205777770362926728154192739909282249187148976502425478387151523576918502314325426325211938456256956942232054160068347137570303113104949076606798839601856806961073818826704906326599678167770114656260416813618591860191872327472737919450890372728180433652906634709480426325901793266404843699793655854023096836641476221243001158546786309808315314403830093843893280167239219980820447935005856320570671518476300059299046837349287954332807587980920297664574683457671080480047235746924601490327569313867356248950581940632461458712365009927642421581661113739556317067761724914462945207142011275023338756625364233900338925500802400131552071955253588946719786374070051068346370033718774509250811317095244038154150962851341925936719837656241144208887243127401045863998832967490931330314178372458752585741607712174988005699312783735081395003965675802836441088742506449051961514449749709447153554897861098510741597649992401902119951173619279583038088374298801245162726040516731512086807245203342802376160814752325805651101688802704859226133939383496865834988987704973276158183292014161171890291241698837157000384018804362565833210138068788272715403426562896482844354288429887577172022517261022332563978145059438992803014058567372328501054843646735933723936540518652312384817452949667737397059389502590303825852373319767540749964872614799862067104007614695047020490199991882360811910643137554707811057954646041534150342057794006842926546785549062262724367007468463926008973657675925440066199471006172565515679010272518416181902935322303783645637079681818172100732226624746076446013050652281417737756740458634035423583803677554656130943217728670085614065859632957272058505210029213103400676562959260989816506229636166760333078843036416083535845964708128667493217264081163196939470470586334748112002449663656611098581187913795273871367355370176709974276635953262495111814273513103387185114745676781550178529755983096048239314084835052528044979529770555508495274063579788792519487546503970315909199446170945314743095284455212689032869237710888179536094468881117929976404465384257329513643394126367771371674559922099407927367678427890941237637316084099164730119634951531600406271897888119056518056652335117522155980093068912518300883223026970733867292390132112846935533033550642113672890181912578948789080820552027727103142733581347144659578186081070967746980190493750647207713560734445945129199956819121803329557019005387655980707132382012928967162112577300227190465612708224646826100722886764704445794786703767510448628329091282543499289607559988366845961698718942255707539575134525632972502334787712550069058465478952483720272217897093645654575885560344555196933343955838554505086201641505873461321828739233318164085049977647450400236183451783618004388934811333394906465271169641601071609474279303552947132432614107633604783073946386447843968963918922651108920565532618720706282735200579521963596420946506558206054927172557677633644532295578705280729166622124364134883622382628309033634891603284314910448535939489345445871196976596557207219515442747034613313752782337497941342903596707951188513373757560959568328918887392880204315922368620232382257486981421070097857147625953573117263957015935514479829642189076233395473744572767743476852037846726208882973646368253932579429484700591915357984485632017787996350475246442533555486591356605151113618495686674168225509153649177889316197366987760023946473958793338790796163367964675527204936909532252334818798959137708026086800958018968315421138388164232691862491869573417608797870205256053184539545336604706856409937831037003608248821177866826037903587110047156229554464974562917210340442400823116702662398219880438781142506123296216106359066408804807249590248847617007982134019790066193008697624501601633124824984805674479445234118038252700336180012951102991535464045945648348532687863338691313885567648627357568359528229100615953242959225503003618839494426339517322492846131268060391556135863053722945528699429028049253266624811107170408285334101102119481336497761735418426826334572455559144364974549249076286350061458125525610788140154049669797640799643941082581069099605109017989728043384551724077885548661888783565259480240616317846650837562141790423049567485348114000197926295887767449171621488803412877144995241546856282953615615503561360639958556682096752447809999773927976148828514931800936044061733436205446722064836520887435741843251577852561680220332404096271798828193863722503139552086235362992040727988249547846880816113475663310694062900266443442108129269866237626465731448942543334466477473369534261936364708081142487983485701150301729223668855385812166973198911484135571882782928719073339508461486557461678434245604135650642829703782527371255740048585072343184880335078071296204035326239067667258547182704747896161317447303179463129010260106384980688596454651730771673219364140737872643522962814482155558557527956138393493906927510926549604656693757361261213525185423201240400398661364296187687856347168697269790485100462280351535770820850290801663552963618719141184813908940492884879107152493178829219062806320765305264098147897012084230439063847427974262545055647028927712423843109487081117534258271324898241373589252536003876990762009511121649562939928675549089871465016958015872133445007069299392773991209458372269015351661781950793977406061798173770120707670563405732426155867045201163527683818327969249038503097531991425641720009513028051773400726925512162663350517620043161571089177025361376216489172453504444972574974005840999485473487775688028903326239328675864117303470791145629382308178888944729257963743684106618164368872507293443876613067569346792682130866300479859380073508000663019809657234228247652088063370749919432948650409389699596610974460655717684329576338623879131426472037994027970182120763403172696136230239337961012946942746942161285092958146362141431355224200063837439018596207063889707422065479506436667618152864150656470935614136617582911806508681302461717583382377544283384253897851293224995847080954615567074923504245008967207146352172920095871052084661106126589632524063645484727270338793418800550747995854072756154238698517970856957669924873424442546785407342871127517481564943912399483288357472418127041292237982181535740163627376668968754571945799985594741682114813291199504553584832416938536391857820632542266686932066904758177828704050714500404342498798507147761793253338728209839826319005314750907322973386645119765771589894557364028414419321952131948010100906877493814870036143555057790237391074902454284873575976608066888626464541081071504071566095309317596310616543574951067061507489625113165423143305357367603148094408202990272501173807068811602510268355081080923060147722371285299410158669762377485147571087529806469712030922007465594992528368270198992235974439677522095590421726866496415353659964336246600417888355739199838468788266228212726759554964121688403313576128902764537076991447445562885639872468772019253426325338936706790888148077281968847289764701736004789007974748245078243125193145780131139692086641412683817755073564893262142251817029674837520960747643870634280508986677631529199344248463205288537455823847576684675982737057518721779783436057077813862835564799791725681689079880528428270775739307886652655106736368736483741938074756906596463827925147477316134640001902169600481632044799937913187966043172629141933718933533848281009933543232598217482741674504643632863102472821422187346923039834512851909710307052040576594795664023328782685439931244380347693569513036334100107988805135660031233511008767820863962311327439903419049548888064852819817698816573593838700936858087325522909789718108213934949966662940353399808619399133149537173214712184424964385758438669539728326435910669048444965876235602565540819477059936071919153826513047499022107304857522685004373030386090773583313966644796804771490929061166327111640323107024327302978982209542065341945507579255527973820750893777940703536468870259048063788164091639883730492416348935904955323782654171529244088227969714103054638397868327257937214563034472785446869623094120368828500693545523464202410400174892795366930556280967647826047463618203445556488552003362308272317847597443003295869489957825937243325388108255340474439579346292776235810927321883625350926599081763490900837904716678912407052703665906707127094623233605572064489819176579466264653632574067109964684485183858203997102361822250978686896263402038960394241671955772512651821220858867247911088254541087033972166631681737018645827848581447609620790901887980861859449128949891835069114293194225332512994024968915124896247944713255044104808500544325453993484739793998831926721871989089509247774017930260589073482779537878524116501529388839169826839980703679906065295449129488277427428563438100802324024702474298692969124485321359903412806104910551513781351098572418939026260439861648462481798076370629943641174956881535658443443595208332125435436125435593407034430206249555356171855670820042429592503944954736097774560364808325716834639952211739425224946421645273222456560754391949963159249817135897250263744240421634227784399296509103109042336791130822821254073819885797530865432189008229646120377877214141307002331061797904178855211321559281281129490655738823023397394643365326890387233028514824941544755733679694098954366080138158147717618777997596154468622067288414731919287373713898722186582276847303119531950069655210793522234871113333734885491022948878193914617858229768430959971240700946839690519534124511731927730726283321566966346405861526519958123644719702713523701107611578575437361581867663727376493450894363169088260082114031273589644681316240680999319163739967036685026983363393633034715480699911491838238595552525952423533322397839447285741083219827801810924587447601822780486829741874338486697069210792746666768333695235785988746643401151224570930720089806609271358069824675583012581114993589626705539617206439421726704977091058377197622592639151033130492316569668601865398895455240720769686004657394809952795200464256829191589808335499361461789864157412914664128696737792111990085624424563904779430542211192875374675442266454458720126757550952311669110406186725110982708184621422248213756670438571236391989697009810217832739874572897306722403350481078585102627039741263360659889283585997607447920390948673190775044277277601424820465268746252004063007495726335158230449554285656037530579299452952474452542532364523130082724231827951314440933192774294171813838183912970402859565939424125850609541706818563666726792580304104753147668259471564578828050339175745315896884054968814805648257430427390075532489061230043732614936243924209083097329288073882546008876860998383006944857318576474720799730722448861291803503881029223240715231314147927995804950895254520854621848715035734795171863052212363898727013598021553687173637506626712461569421934171772437268425037567612517914388774317624379074421659504109378352030006643573246910073862918537076954889564756153231071388730990718529441500600513038553045193129715408060608558471998313388321691958240115859771234248993119665695857916866511073459908488554986036700838641233416945924878751606733429354867198577781351006254572365650404085103574936446576713119600106481154377896186634518400189044060490937412468109522548714853038104186795951503115797544843482682474412769909780100953046856033944783225409007289950471337180833705375179153623328906979943930000237334145737878410366477662642657236191155679483560045751111661179049531001222047046427062884671666552592765563098278803160709910467730773586808273839087592177290800255451749069185345375417657683016334365010278385785296346474585928307454688365440003140237679109443866221820269575523237970099267253204489427024691302229320647446669613697407454756956788256008211953325067881611974604073802929186556560679894239926490301126015855910641942696129541831820437817970899684349569567665040661775185384233779711845390193106286989567638946973140911269831709673726672937612537406662678187035163470845347878610026037772966670566545396659166071108904771355413017606680645547085775583945991917591440235290393095476904543284822939185933900119781235450279797219243653298887130406432014841945409928080350437311454931949203336078423104036077937715329258667979979342031292804609881259232403542443340058920612167183185075322498789329091471580796301945700924895185253145447595751199643473255784451155394854518077018369618181911721824590190188294915351703338168194078124299137044005690556685072709663934008642136414283798915768744546551585300697585221129359223302675301554732354111229098952524902662760743973937911994728651564767747172791503637757658901868529874481992907544525535077953631434515475294785863339284446228924407287221244533281008750552531264618276991773148251782838875201809935270764056054405537190534317872764992247627324364687887410967415127829136203248551881962194743162437014224373125706541253770491540471708462081294056836339265278757513600364189666946018398267609077369501473231829369666756524384855628918666867374452010777618873061463986955866432597767778290808896399870654233517599912586886701168301150427542361208094783721626273226753733662744621182371540071625735828110686025880359370014345527635569091759529441377661544055228076136952217327995408763834633049970814525288812871510359390083801720716076093264895176117555117291236586367357181647679277693752189121278086793095267922602826363416141714607100127797548668192349975092908837881009555371301368763787917391640303277957951758707217547270978549542897648108782767365151020646196866602158437457359446029875786006971816367554963358236981277857829412639974597424168194530838157749067030759447598542942253420398685708665874079028879924425618267962006862231766377886095038661179939634925092696621431303331817195413580773602107805578387661628477599828266948299252725204114251840177498639930169022703676706607130945913842042514059510966459299298532453059689468695506443242415998350334319713462746414298259790395651950652570704036715912564248674729505472577134135512858882529773514199608648540517159729768889473157298449618417894800198878879520906825100378069159243673231549584088671102131243440277398383083096857476899447265087039067523246226870756094902114529770819315788115096757877369821355988321228527209117291825161060532374046861645482130327198661143809689903376315946186944181822803449449884328373037488248792618092075473409821341561600925314620321653657908711052172447309800205209878356690312154034048973277980259978104494340575372623720298507369102118969709560722028553150743738490837180557605476185177650159975871914969935265517289202773498949428045433159632378590315487367285351500725738844937507386277226531641768582784467091048915939895304257330274769734507043705502156678954893067748949798886742779584644367658170732495309986240026913787801111905642577037825918184557971009792505683961121031470698553360427372863228918082970683339108562204993704167102610003292041889326156485788915423526310326003191754445863380437292000277159688378326346308672925329485306897153815392604533063398027632044042391334484939615678636242058345571978013811387615613542267704986318067649151598779986872052343547649397167471799745317630932895774927088740335739976631634922298067218627573568370907522287008374460617231358651605663953712680734730003338143833002676934893208951463863039445997449676834900065568160228520036786267874214437104823635438008907504013640026777096750919849217564518894379869538572966981789943524396308579833561755755780571306542015815747465687125012588220385286948841533998672477110663943020294421527692582615152458930650926418625378416751331657093900147028499515457961688726894859711167935714068330018280730771306103128463008114880414076972074060433644269006960086263630904912837549251468027710610674654934864599646363197162294302331317364748277317610248389512290483363273120518429393181279209271371726601588796527358868507745761578073305186288671060747823714299998887100838692164255012616323145995025174530979859393374582148322436304953901747422304089401837881083630395049323741011727618960485062106002541713489758965677992779447847211984075479496759504173948635764316813011791777561370594161963754686600146036792718691329209923735237427875303071275716570134071221253931939599862715374218364202459741443320184428652548388432321916176391471914440750329422076159163050163348305834581372569116506951048035003616313354431507599375768791018504356374082216070562473250357369267171379797710572858617990224109658058332277337971944648893811622681496524495046050652601040181477985963637878666539054225666088065141686706138511731393432930237146620810775155247818972664345345281451236561396299222941274829674478142879526459346303146606998277238014679587193141354464898513055837419014735462476455257801356512573792977112574625432961424862955603048923413822495248245641113695674051510421031640975323280043978312175918794560456374009730626599079575016298116222489466636338807631244140953133747811537359507660804662531945118306996338109937240774619986579161177976490232424864825174618951980267854437416662079244962199725478285220274193873722208290170113975697388600958351438907293113167451709289272097133905300738777594110443398983615038151758873863224470637791596238212109897562404026298346662149696311703995302587293694192794875647786011911255118031931306314717328347197624219024407683094016951147610856681837691580916439460756183064852915581292239409567328740660451352832688859636366046436580728753200683712573004779820156360984901179371497642822782616633084323305175569619286843371988849059586639439371540568061970572830760146691423431178174744029696520533764014065359446396968908417309611058884834745413055468069983029140104094537507311761379496660996976773470047925345433598814496265775405677400719634165482017078004310597973868268906692099725785170290013486376531373357265421236131351487165402863717620078193868082418682176807529628172057054600666745840847668849052663988126196964348375519746207180402080787870687716861403202036160309815390917797268458260363196961653672007121337446728835276135494910921094909040844258987763652114002102547564331826143135194564369484333906827789258901078857153313552705367743172374703665529144624397764356132645012664913619021055478197783783444641244350154343071889331145932230851731808679025475698349581123880807458677844219441711609121076901789061152129995537827671717202623193541577088308428473334066810296479089590435616415028241255438048064946055874398246740880573619763638926885088871699805733856898293719901726186755634976273391596300522204559439501489615334844484563898497853118924938191989874823418905953731903289026446043001213278882285182559771943779683231056790948161266550410111911171190042927300397609565072256599434903047809413014698400663126476759001810749218464585512949840914369074782890367819866807231908304443622500614375275192481770795338412791936504139811961223704154249703520021545520031414550979113683780859811706878814168009922933025401919836801630720864771271248402964490997485620474582852428281154808234549419753410748402910364209449560525146668401099500031577439895089140067405422202917803914767561037240771993072941837957731956777997512080121997514121079136379356835127900407254139598358736863964543501127884929185364540279490254268825267867291234553671712931053138898271897172493441440699660280487702973828394395509679036971234891825526246872218859546052642243913482904372183948885875812938761275023519804570157461138535096816780454982284426244812343725512426519320107848885470164650790642391428831551065014258080714184503566773061768616919092306403293987773869829435568657870411304496647969840568215111740630420667424358276069347695744204351709977649725868282134079730766559404405563096096756417476327678430354232414182730875625274254058603866633720338841654424475994788717402589462503290265069382432056514282940839061618471200738243270190050924825313140910029277030666456024891210987814070415457857466034174526262121434571148958363938820977942460125985757596846977449657574031730567737350404091948536433403765159606181435047459369246192961522566855551655375466663913420842840785075794947844601379827259680304579466023675102776392433271641765191217583119520021882991783663801019617271584865856837604867585507344963446810308631286113350604928540316322138398899901067773137535289023317986423749225257494749986446017765832617876189054274759621472611999026021028921617238712707735706557836835761166841236403892176262565509578239937063350823170268884005913037535900222929223877305192271752261361537640901543575496078214211960172661054883097492217092761981145944216997649152375463302457501972753510171680348426129876841836496794139916854373667870164449445913032959826033346858435508833598182485388190343289025645934399967478582096932563458872595439123706209570349938818513343828248605436142620265062432643734720096163009390964002080433121536581723727623304615213077593654130371573577086320817515895909158413912190523670617370060738676737232789227356270548858079824046654105093216098320488597358562345444025501586588377655653329965708639078514987802386244476241600574592612811413958986315670824478014878856431062238683242006911877657275178085951401005161518756163447773489962411785946172403513062418071963496336603913394263963221298783339873199297807189804515350496361108773449471314717985802007075460527153264803698607740636930802845816782724652637902017282188398432681335029083295743194548020683769563414715794093110489174519488923817472304901982844058805672848094454271290859974878766428787303423868539757620736474726639673364571316057528164545567514619330152343242396467651500166181430920159504467475229213558199533787335022917942573239697591197042830441793108302772802925855111692748804065861904617829612358873150148796876334566110883143522045046821171809010217879350905063895013556012960856295130743752946590905598621548688648385975500486981720327179743559790466201955317870074319501696381807818824422871644941692309352458377563466887999294852626404351852528071514561334904564631680017502555780007335767720032266443677192431967286973335558943469238877069756855964695669328313200998765203920736547333659095273285597084259052705330615945718805661417676346440920107494926248591309283242838083983702604043711626833218111925871032168259949201337398364572218694581056166515260839084333031918150698363649174249162104463317181566370418238166687143503467063696290818830225984501383800265792402277992097207557251282420774346765173219867849742358072066608180401222017921620739237350578144685701586348424191086990944917960028070968498503877344656090514977766068789485133876357512160809942678961785454649147538213776929520732492322583084234766063982689000042086608496299971254293368837223761371532523731325927460236370085457687563618854628702835624236328588701814677767660560915764937726450241443968331131694703400154221822523563294531616340477191466497911464511178584694466987153476716715380088803133994510662745933964459327615060901327105931596513701029101784854902882678758785438424342905416329947701613633473506099929636291112122978570244928821785765301269220443699688542543208924441780009462678225373390824021856481046998362589865896169318189658831064917244845577085961940223228673056882052390194467990812029339448918246315722226036584037798477347370861574255857297554267150191581726825353911195458841102911414452985392053210133605337179644243492775202049730183978874338164953468912374505977621226964740751124920795490195906285590405134128259595839466916613598491474536105114902790709654303665557011075822044447796258928082819922888019145366979539319904088751522674112818239922612609177977551971760092722875363224269944305764451590267567618930928319707199551056930014545434796674378640129695804631688245125539874033214071285392643279804329746622644205128934277347320386657758625469701853053432502172014796421421038721317869003495841510526295548697378845376749398872323054678368508945477400439957896663960002258536109204220981890952755064288591466984457107259592717675726720883384497744939964882824583935102853157746323515639737185518335146782432615569978690369793584004180505844972102256900307034169323046392091578661129666074735183072046625911003481834183059424023272919603682003936955214922512054974917240624980669412644697643215675339459064193952120744874161889713769022243345533014903509375996298445099193964473717984938561543785764047210605281605738647328439936604874514043686319476374724313092101950449576186907981164282322353424786110023556369921240865672217487989293851449845247472319840354032275527205847451041902686183045974861906550506538849178934436521506539212478089928332999669989762320148546116929432805203730385298657969292148603689202213703139961931340346132056837406518606769052992119245585068167063354135787437111153515894240043568796654208307968645619965528098470165599491218498147556179119600788849240080666371969403082060175080999845143396369330966347437657304431304571100884041076519913745171398119407905859121268513235657617774796839517655083336882679568827554844956232989894798960126233915349753961722937638543874500359223060040352477619891410519763288549634531933707561628420040263697449454852269122501248250613137619712935016369816857631771327331050764893211746411274914432590518559676826935611076886855256794779255362766923842130449707849004677843399133402636645904680741124221585690816045737486635274341767202996819651005884697632263840537489714558303951139621877933958230517997901369148016454190170528843668800765341625281802884176787168974995994265248144352040550528329194659927566178928871971995472480211650760994433459283954861919373639176799027747695866645895100731408166025513093392589657429281315097158749444671707102224785783017363445511064715094314615749083675246096751946791350425524009893732486310655813902839193379909870968241827956642722647053158553911926819796489504471743447602874106903269202937156808226394572142869510696936519381949325809159093452791188482276543242252478761263265913275685784667226837312280630679630862324886030357020545982981277592917534799666349836799677001815309976155116626458163556174764907841134147016829304596572143393184789504828755789028341094453904966911150715137299217576738843817660670579754270834658537380501368470055500459162262352237841218169131296241076426614791999282842497126691219151723499659935222614678387331309578735443117930121205582838375686161750218359992385711298155229549106688129564814319672403073366030495302247273904499625816151682994907111339187791339776638051024830665954918932202995467445610806824578806785314044387466952194209330399068612407168163964504438294751946009834930912676619865306610143408536649223120529060609959805828545058021652425607101930012280655479814719596374751593258720940054483227104845321023364771267893887606374085063999849215853247590505456737168413444575931536562414008631381266399216773156602912764199214519920083631877868532110513465232214317380712871403471293085850944869029982193635944701328665832312213854012561271617450732091728156896332579999175284849873373727895157422509089308880642415596722812721785378962471917705396919627040357721340775167077116572775738569759728930049453916644263086199631953592983055154723734041334107396629827423515498686087474313694875192019118626544902880758982054681985685208644177201223492890756171655476757138284992897189912419176224380355542860086708513129288678574647905082079705331397697269419625048507745559964425964240167180486995718036616184705866028824905163360273685189578435100813359946934158821367541573234917392181649985657590189699108820955873244024344826905333861101931015132560174464078499739033930788378449963543822245860189566827637334744696944183598860719375440554316192535991380683844677919402393523014483037164859576529489058984215193653459753215584613548130758323587495292035389464950107852353107623557554119736189145434702353816863847822409920160744908811626432221696356304234994386889759136847162448649588706134889606661612247095477525063935140694725332104729066655154541186201881359151291478387590398956540415047483887909947960561855727082531243716747113098936270364004117594402474418715061147396003919194746319473997870545759149136623803216397354930274701119257136532681269890404171621357011154447325534501254601546726770007070951215196292915048264518059172358443850594672335177679045058862170426527292942883365402191512763999943029258760440395099124827500307926198452849063886526280926554133223031172616889278126292170610844933930233431290049625550826231829457819342237881973619111987819679452295234204139583357027581304082930784686220066159716061600509785254300781331847815709220248597698685452686531202686647519018289673904838609905611223715593342196707465939135874446232514889461235770876864743364454873288862498511516660415721827216782065416994316041120281994627910844591574168786785066572513473443760884561978485542602086120515842407361646637493031652169515044117244360937482427678661986000665850621624307723817513642961557117251325137435046384654483821210718223391511075737972306841039227179673533251568331874935894772649903620774252050148926676741113459770182211562661492199772843793303165086241988294062106727524781384807361230035222120284716535113387858892395301308509496322228929197738633282011036594696089168378556404910908197681761735755808818012637921082757497815853222181382460936582869486882795341891588255394538898779990200451803370700343970502218731907680765905588839986900668223673037768638103143560410784824427850729893340219976821793133064873470728408518715320006198405764207389533901835178400666406359079222920521810976251710947830143889338168362995232315951846817970399195994992518205907118058992403571786250122571564312926213545021145749598591460392592493004144626985660341757639207356289541721072548996906779268452183368379037036505464894159092454395725723081570136771773503389408430245113399496303363297997926973711365386834230609709014063357904985094842004934609700514292992087094172857905779544973961917074026651395342976249922198817021588990379882808051407101084545489031414683355886956972353260548798688096541013221790443843470580993963194783008741277488368032861414383218607729751899645700271371636457026578677861653641657473660654219663566397085737191019313022295581108256629432243615952923765056246540946519838621174471005257080168793778270131369309242550598875480399953703933427819972040760650006091159574282572353503517946855259073861241001290427936090563568996173189422447367017378113620577651732965128543070548835666637623130214584994934740921469537999317550424988633376040445498469259443380799423037654928735298111377715266112012346881172248004435187963341684638456497645477273891124614526475570457401709812620454873718962979841838715893606792796573121026274640457535278755789000966396352607205759988218529734522601975595856749971810003104116563605147044806331104886424742681060886926328940678211385258835121118163905379689589647387145495606962369931138638827848323942719674553370973527381944296029380439097269983560032588397484750234211839898325290687283555596413119002806839827964105336213092023623212081318501065536490819401079346800898816067793442680360222541073078107720880633820048864487172990606634328758580180766644583264962854549469819906097631500859586584721949128354725172268327852495525768834688623962202166464906537340369526672601106660868601315958333784296938728129348184428886735405755667701175933448209490102624657592232542732153833313660909539909387316514339782345976163866334083687313713425187533441043877877709613426321844853789916544936908235637108909732752990890453846390036106894661177720831889966412131378150859225392596970768900221346941503938566708313567663828768450209266190173341015334482969683165391353849075867860047739170476072619430835686880738683507798815942869511448670254969784949386781360404851052746095420523360757246715823814981827305393403062939406524928927865726166081588392166441998079313480309734413530953344700223611271618202330487679756459895411740899536328191224628511907716846942035648112568032147469095651103840247150928981919454008576700113093282477825918864850521373262619083367196118002754340444378020579987933016026110320251788036833679134000193361838037993503176539079816051198728422532399507477958382888693667726120305947029410560515023699997688880606083623643181480328718673715322217562419618195068241236013337166942545226567863548711777083741438571858758638782544948894154973680880606405333383857986148475997685116725072559683857536619205165748248428929900740193428069699894053076785164507309014058338603926725517490171875384106625263494583574366760335085526505207472151878809108233314218893748351366646785966660743754295917584973397445661053982381522955665978900195635508241304864181068344072941763100036430475193869263857101313318165098987839500674808069844417633227429476652597881581001437347358237125369998640541631485276950421637212864947706553506111828133369778623891521175618857544477175507450940043976532419584023557715898596382883056449747016372801712927459959267227370412184473231519064153223029767056091001524269462237213239052019128037754479632141765367046147288632377220953203776079082294666371039138762841318911246408368475355585329026960909925126690630694157595769053623793978657958848261544250920406278266858631489152749564428259621460791173400403176466316638875041901523683515236366995791064374781111289077076806826287353631284665654901046109036139709031100492885905717984521560659287713851919386631728326393103056796703310323546250428109787555283299332165322266854360760330983075731021075414069151537993128009790888650066445636009152211892014638951142341708190924725465842448947041806929807620247261057422337175605463860763026381389875369904229456447646303015839137477188278226897527889749794561646764379050760292424199684625406639737075490652905026249187200677637564455018463731118422040907427820710097424755823038450591622552044724066264848382889051038959516182276361136840508272023446002430667975964428983117318012731788388450251971771223560520482457172341573825950002838867122482329940665781288435768384149655624325878701062730418308600420692400233566879638679793920616005373957503327930683665907214020021982166889075732613061919617817524651210570140880704794308826985399506002684729704055973080901813335135889832945942855578270133960775183672465111530389918500509003225944555395496042432474528297698643327616717949818730016217158435309794706390394777689444541576389460303894454748494653763247787919445114612270181703891688715356897813737378296451944934672953243177829149984078115707742109445595573765672977425525963697558897047699099388386972103546549068800442391146906494801141445937371059728129719394958369527169502639873469705353101331419003143284589087267970005217652324177983803413791655694459970933388687671208077427452082674906817020896230832225673205230514789128833958241884648208565163023058140259828072527964158379589692480053919021692011007815894157559070661899082981043872629735855632828394186558387936832946500785889630422518613534925671089428903822953822019483127422513562352016045039102591835037333503064464232890439630616426259896065700625892902427957137049160629387314012422490689845215725631193704897697862702404002224607682900381232592051594624987838681822702521756783356931974221655807036995048590485908288025564055229034970603415258830161400174829043542137691292014595290847832009137519750609264319445974578242103658930363811674011988238332221072559228814786002083793812395431087236230198372313533929845437003866185928090514847835798208383603051482526645344632756849971579084497125969257030237432355579019097844709963311592470171036959774832845509464599917479151466115747059170905705242054708647305841104591243343277161425406125512070241751148113320434335682052805370671370936307915323153489218893676576401293838897517954437553901753037303000868471277965961641015333039840719146902104554053799705822651260424134688134785334936946016657760613261173202445469434372816268233449388784900437712094216931776305784043165996228615967962997683156779489490819516487649279028911264104298491022192819549043407209316047298685615122858064171102947134871013195425387703074045495813637016435301507163743725307640756086964426949578512342938689187589464014504020670699164120547693210218020301194137322204783371751919508713063290607009638931862930414016950974225655363159531958649613599688703617710177494132748338797463834842324730728570093060149565429215968528024625531906177668957320095621066198647274190262116026097852801366144669712492527697237989826177433376961485942766542740848073143602759352253248963703725351530663634856944437100308797578750201057098432292902945839196883017157166410773936604994465777431265409426112014940621726085524597333449770946448906984688357192030236607966345286587336640374221394465740657011029065221810142707669596409126939835254634981051488407843524799802233190821939578647936872683823901174650819146308861882200790834333878844520941960932406736849354697104424195343023216314456896376678494487941014321322927463053572557602862822403890835233838761871892552599888543446963955294330567950998363530328432029359997525829667418532505339202811427623520396579436062551310325828011184281740049741829657116259171621831582106352301098157618160356323045738713851122563120150983546720343097681875817609824870461981063084646484229309170439916061444784851152668089403508543500056034534127599918156213974682885818107762930711202876132568556925051289529646134514562852403655364488986205302739504473679395054004775571990096830143553720483103255564592877626561711676327287333406074613712262910290301994582821741837233561964297476161288260128088498430180918030087517974597185435784077825697411573279068192265205011020360209053939474465416826359668323486684320476282146720180488342353595683825923342549992153030529219776260433867015384141687403107871698615521091589755653029701936500304368440348375966575886065159855286170911043202715323917679910060974737930032473985236018220420705331688881064803204455970148982614804230172226331368104673658537684362977133917875038457688772052625776558075468688315079774532288775507082410927159576364284991851955012581269454772379097666925627383152648899277625219493726743015536935158976299371970892731527185177818109717916678943350884609219290904792356345187855427415387230966949685017586789999660407084876700935907205514928571907646927977119359440922189699323454796312784001484358260823696624694009738607768961941698215592544372843997433341238455899045472785568935134661885413344902002697150086682898683327480831758033539484664396492000294640111541131614214692662291370078908325070510962952616529879825454771528911027857136321401033201699538086843799278789855189068417013799381623152485197088852595575156093002848939826907015482326583956156056236393780222953749748139879384905345132553238263857283317865106225376533400707202052589637671872337135209321984001915149839729276721306374205141431222816898351325757349804533619298993050382107616910754425175988376704972297729736667121292940713045510595221419047609824047320337702143008164978027583286648068279929306903482538777582853009027381391676232324248284733168572851527225861503622886507322660735636887292866830303072429337962458187295610353077949395808002305819420770266005412647305521170715160387551582280238069224121776308100107839283476418224010226515517828110641758809529705753598918439719083445970339723357720630961402178460450854143620057723037070323089252125286157800219543595390802648622766884674682950860944980069412142949284258142144504216225288666218995930509238528895657990736570214956566613135704235128821986896668612723070588508927564126474749750933658961874186988628404475864595836143070764634224234351830368680430006864019348345398422429591493442975977426702480991510664900884135139750938160530673783213823806570079476991096464448725050473080331671818282139714253981432858444466690661507087572676831843542606060301095762027687886223982296870838478088678359942239305714575281094175057731136442570969359928692253486403229128770846212943170025425109387910196248876464215229649683908677642252364365366702956672424494968012096875365858460220531243600180042679378890140202373914417561191454542457046536519074277428295035421587454777350184151513210099897101973745085520598609446616541661299600369869537566263506254863587366615333626706935000937800582814779386559181862193370016453995420418079356821450208761009751459561329149532434911922947641236842290339778523401844183852646342129105766880535565855104073664605447411249522132707386767651028239568490875323267875139807133164269941251014190071899350932886904083562838329316301675284781588063241317634534364446203106090337228744704023817303743098381046734455124325172344729606654883879342990745601698833541070072660887603655547941340996913504335760302411739815911197596301090160363993811876695354790243232654188365703706362461963931488764554163749083066278897876887983870905075438661557228055569277282584502969841007133585331739762959523976863456263700029798970502736101041286013889222735146475620450834380273415548056398734284717221007630701632725682334888571776552825272986234947117406253047345067180107487275793212359179371572573280565134201392526035979082568264320347204004134055943228394731491150920196769207104648965980612044989018993599744805774592454404076684103331429518155130294492344078768070531443717065153201046466142771047461871508190849305111397692402266395262502588928736753944303861784203423961177216316431806683641440249390907051627670783058460760514071662616395582496728725720836231953015095853935578900744411719577480527021912805912083059228489161953970522924306411015093901767341127841042351135555840854462657935861153747729335650241315368518201543642341345918612791744305352771860782788371603099359651502177237657814505265811740845413713450988545787408941439687855568949533688239174891346694406250750336794210248572641914917515609106876551991855069292851117276206319057469029658551500643441529230201723321117373752129761216719262414929975247023325787270194735866262793841472555116211469217937296607129694140956175771482536835549025076732628573252564329335924457972015541792659050811991862601773021459394524166327153452450386026429392315952004746826143059526075092333538670944085699413438364917387042371304136259711291231617375716755009902759045330909567349727324445606342098969706392730210929368916630021347995276296208828730316573542547351834443944169893282194471287145834886077154265746088207942599806372165994887455330340973209691809685328610280426897694940312462582909071096334470179642289644967628504549400004469835935107997047217610677095290794983757812108659613268642984584834152804906706883899040366724031000215114710238448250674554253274575183453271166582910782088783523257185215070612767522911896426081526386297166205987844740364120437921106708867505631521338204822506320413590571446784880173507259762312687693546267930020132463233656810650344366458314148095760632828545070162953653497777512173002890847635630322860485129342264985558216775708558889181084548145648066083794106188703942553083809708955911291748841362160608176456540030667532894866230322759922273705232874819919962770751042294041290400723479232226836434790597215092042667422515385705334576207069161635544842504242833482232794136470220116917247278610558321109386620532358589582855458756196248834649657827706003605710291095228558210012925467480266997952797547710643730352951143080035292573525427797996554167426204355755858742578038817060446185546128331647073577279444746064346959888238929236785669140628842740412163305304671452720495266131262018898423976409619420608034523403949254131711851168072365183780330128289601762479127466828967772261861475449119957204546431566623205978860800385337523267692590762572402531742526738745040191015251608871710405990313543285868562169288179895435862559816999800822849937702052791530530106503205359025145755660844555788805452272065375585726549139197385605867490352184174402154426707520719584624299125312989205073554096231721567905530962543499187712375415572627126676727083864516990895020096563418727650850599147333890277211852943876446370826159584049599691564264097663603392841232133945271292498172267324154367466583288026145447773228426290575542225293200174021295925866703241024540170865429324994023748857933932355131514790404949337714132644961583691981376794404080862171071615994756312989186058483915190757456253140170283637408082542960792005535705595876306032909720234837190389687874793622543132752227071102166287227418515331576660749130396989467180271087568002168361915140067664601919554714552454426955234695949716315576635664140891964090581368312192145558880704973316190231566308922881609188609320209855379120749419570407073464047851425522307977109966889895911592804412660722604831386253748774573930056627686729484018325119409173134871500240922810585610153156260710210417138684918259186251189850316128358372617186006713198537415674652323804451270740320131474424633776005381406310577583408481488146861782078436220381051228532108289283248003989645528557866544345610621376193584117251774262881786288769291069538552102290805892527635370941241059894412049758364651938875068748672655529045906299300725367498549122497293412971737497854817584818073368665346509717130011819741216984384649265974954693020001201798830003344961847039228478493628320063857898845134232237618725624349002859410566256444707019707296570700868707934245899072344363315084328784808062658250215867014994708134652404744720871980499547105421101317130028962439607288758306654143959683449978669551198396182585196193898407526656030120442814363029169534787813165529250240369712956030202556297848534221629417600922049066476281978898342388894114040974794544901361451863508676790618224603735871450549291746298759367512475339366908900803881123167247178129739869240025895484780334018536051311097742063884306968733334646745913027910057665274195784811519565351077625888957911340582506706144722760817872820105012673275315856513526858109109371406079727614637694257191212082362336959243593526024314881613427863467699579289090673711106232922666043899700496285291582595180223593110736082028700901733976110536878359422883140783648863542200888497258996977505591630969361849139513534494708048235015904234073253718677052920955833436535505479479945644235648410303909118912862281699433004650005071049594553778348447445343682355828222924620722727750817419112001868928221003501410833171254539774636436367197706054262589170816318559238465731124544199380319406327446923484246763693685036304320562540032755168278441401476146714933245029656235578318375471752826079880677380569497704397673472713001105203977056094105835527070218256575395138720769820898742746537403586544342363939338478293398828687865396310906742599854388845894412059314834252308277164657634931774318089250275695063425481047444742983801844704131377189399411433238147874406122767220134899874064669757150296890914669554358211562380460608903862488609011276493203482080099749661456118310436181070466347878609452919384698471260536379538690555704394671537207446108539411948362089211708829086088366111550036326745046962227972394500159000210678824917270627054141900304248286420559530737374903711764175495628837915890220843583070117307407081424521023883188299016910982627765107904477386943580668979102276350985515205233727040108743379622838896724908439328600781232502798720023723809047713669135507774243848374950724888202026346851121318086755607423846322000213440703683649487125206418804353165847357608312192417212257331753475924654594833420940379177608666520667540704610960315965739847537658589130567043855666548486965174750492756009023775630947856971214955850578284183676830688252143434660907926015415206875147603625870694277535250971986199538359935315362418070793334578869236745647652207043294516374560267213517924901699670125879166865624077229166699498642642962108034428405756652578771229367288095801803439807687897449384941935438594294747246701770470721026481287913990971013348816837026445762946540181986028711921311937325911621373422274196604464283092495947255135836530004800473013427610625184377226051465000818107247870031098176639352991452427849242729551297840279958071386076804619675064933888135436681704024679736925139680385883519430373511064507238414798959624867919955798120594021729596266467459226009525245166355003890948083926926681758588183243978436168324082904644027174095273721198224964920107028334965162430168296910878794587328136822506932015842184650229664481435923518178825520292027376772246240966389436004994121003290904857501984719218735540886714170201764414933215942922467463102301370860238435854663442711287527720331819316477301888888365583814806702694551933295964281389543250740637752219821176291714944758506705512360057112574820620453233033399982829400195454696749878330435805760676820417906426940198629798760915266516909091912804871893423232782201764388194736942165861442447699542499649140421614175515487855035338338610113828928123070780114297876946967062460630768960517620896023425101997975253783184848590140164974640928636980986220365387108919861261724565153189119960397924133781737059483472301215572548338654569467129112695509519507538654466988610508251835780833429433236617297921780041242952075350635889120916561298866049396789715967718720868785298693832476316975837353059980306857113436573535335393461654294430214401795993058196861496341413949291293161846483734740154254255461336821879497336862006198118873726871217299341234498373513470479131555576013300394574785299080922495962657934993317096381595716360088950221956115859685975073860341215684047383110604822904403371733438096149461116684230784527244459212422108797631379594226794206071220486691878669191217217516574052738312493648102461845440462969066439903273008555780477534211227051834920302393618087086356485242999497975781816427271783585960773264108630165254314576189752456341940316744910434065652705194523049086553333152032851272147978538797560688886348590431165117290710220544390616494930305845337296079706491537371662821602225666791847512304237237415321984764501543117683416099959220653274071512004777605035345300908786666295059073469319529770268254303267816747224631583016120109143152290184680910176827682139167170531200447414044460229766387770512325846856305292712667108763701045166323278055665043135908164206822989547841190270131941633933437507205182542701332500760336162613121616402816818619877805769716057862753516653039506783259218066964972027597928362194875923178566235862025901565878291094464969587366774546030520211530069708484264512892806388357891149718709710421020883258556059099821483725379639573902848018086270609994329802534798086854532548482220636918827314178357082309990479225798950328537271118837002519131840007243423946505857989464495241012237709601820896246452293235474290751537699327196406604842626952142458774213822615362107470622983230391813286637375711392870343506953225298680680327481226822930997802731273742951213584847041946772513409078416788081178212830627487551775444804503769526386854023992219021290294619681288229940550192465919811123835430594700445595115011107038129954774970688117725803389118809309584323153536794858424431483923928566893864026119215440595277732225832767198950279712008639827921734717424117925332967880659020404570344566598725865220966507594777379700063255542316441130056303061428457532757598073259414946203949195235537596495276136894394230048729359630312283580435911516133279626600622164174824089661874678189413738756351508286091764199086782324601637387717804849699654263000812610417082438999743499474933050977754175622620896729881944417075294077012636158290034824554402568972488491999051711320965446288367462536984746114255086680564747521047388557333339288225745951739317675383680559763095465774399941643185472257915471609510795884264359003016108792100305634412127571907631918982411477320550898427070337412781756191711257980176834714136238110111275724387204062352756761906024902381607827767947431058296987723542553221866704785306948928860719339793580776176140616336178534911030103372804366750684268960204646185273527309544317470687551300997823000196630042639598142784405775007419624030157345011126452148373576423248665470189006441566716131400870749276586186614917112167552428701640167590801653889898213472250412289562060381779689723820126919585615277749791100780587406560670323543327994745634448182890836234722995891685062740352818640630762841351576378452102765128077436394310326775432515507310089578139891165845855752471019580377700547783157586071451426692556070322614551254506940688668515641662360528762857087309897669645885406829560784096561381452144313829531478508993942246981177199433845594991248775798184379801312197466588569937565629277848528700564570666782687656935056895125063057955727675397222594740371685549208121398076795425407120014297378598941283301462979996358066961887955422277642339131031470120099944085688496156384932782624706565478328485082331798379926100859367650228134506651370908715562051031998896811471519541498381362951535791709103901186289758986733895967118131345200590529607093626928455437053162205799534233413867843949044977717870755575227924426653335407628506131708510566405034522561193396846335783916192554820309996465430939764804047434804780882656598540465185636626311032699374854467995705556243681630846393160192558817458831613678858444536214548708887133207938665502335826696376968629301813760095535503599562359483725003603822704399512843228105372941785905976796952928570707946467898272693875404939430712707955746257793676044280959434008880368832401566458759447165776270397720603377632314422319599551386996014473379507901080203366332186574013297830612825701351412363336522753145642617717757354018567413633127431578997114478971562876214907820664512914444009648201094136379451744864942860272744947686213631316268125922564056001419995912834300902359980686444387537668891485993848808933368872061681036984938499005061810604258437029152624658709686965970364054206803509668608691104190041011802376566333093138746123928339786469657034927130417656248630854323932876779152468262310629537941948939227006886090200920798372576955296739317799173929226337809517931845999064254675014605544200417744298066447246306242668129089256247252418772723319688903280058893020233293285720508662385347708147035985305149453363703314723537846855068614795024868178936188002446232947682771140747562303996915402368448530184693714439432970161386973523168238867147199121021968749259900589238792220625660905438376921326332384849515757585120451476261277270828988263779480477828949654578216030434378465818630847524341524893572765870031109582809269571042339559064102723940763341047903393753178412437073269301216785701838367465394461477446609125827750942973250060796602058915737810874333931421980227726910564577695083146187527667556342534900003717451434789272035990555596882231274253068695031330215749035856797783874559516606382021432907563591696095766988301486417756969736130193792587491794490301572875265260941717111628829994397056250894655216233236621532677424649614159603078569814078936786480921620425751314516959294420860929543423344402419611957498850003826980793856147427068265454778475078870541378679688541179520568033255656267031124581277294894254676841797580014563432483701475374074161628531207923280322988512995021904286665289157785096863531314804939634786998618560620022509253330403665374666377115782375907988799045244616161769155125332537023481522646203493912785186311396331325906005311432021132347201764027319704755727264140045708207748634153368579033365993037740653364197209034549951265590050793171173026660937565965113870621205479700980967231664063257736705007642320286302998745456662871225097957459185149396306046191459050594447740355761363613982489366144120873545940966676568898800586144825166243188277197352616780360592317450568546977235648842225103987087859688190503696240957774231945200824139646449513537694687517567316140204901939424443168961243599768557959541221989453667837110113117775581319838758955698268693276536032213443637893297630727913235159015867758703991572929507293535736458048873519230203975564775202761543638486267618931245295612310977484814802485565367127379194335919587113518853511923514249600088980830185118997571869357463062806869779048248709599124869665980498267895453767354886671795810161120899914861254704279398637929579015670560517845658743308431393855179939165132174158724138257254590226140343723795834105210634250535832033100278473649140983474211625915394054638243587353271742044145513942467295395497130727923209831380974630671696104369474750874958804383211079995678221087130324567992128702181882212697202731270732296940939095460511402637441056510764707059077158581123143593582293555285627607430765844426778029973557465352781522352823105491130623255761884749554974729120418271951374589842910774877791249581162199135825699578682062141168478353353050919498473152851166791432004923635663143070702990428554038018468940374547144998488228269824112549329564771253277241116074439648869147893998569379264681837038410072127154498833408623277004612719921576594202241700548342194415365398701367331950811540920853404140634986892076758666236540087425899095196751435964790027929001419669343769567673999800073110342513888151456855141682548933041879842418959939464101308090637341069059502370536918414914871402466836807296682106896327954602642970604328573282846581389945422023832814073488896768845419688904076731932646669046791528369210883316885593555260131171809200655530021742292900939127075667522293026258984355402810841606654726781008437747215711219242347397629945251612016389894115467915919696576925456009074232465439586303085652250467411320989879513161763006085868238671078969315473079886412244655856200821052177841085293984818386842083784330959316786714264171282278922670565433220846085898803365312129305081916290591599898576752974482206767517734088406592956503979318713562447524748999975710696969913326633852767515717306267589878866875219437595958632555549172452081504471538975861448839902834027077529307292056404228751812087058063004119662413475162201415226403703529272405042909423546764187006611681291632485954908974245522901315408333434500467423084457586096030800363731159426886251578036109703141472561221601620953464827558377882439876731636568429228529966109667516606614091314331118224169224740108312788859490623305685692733853651993003405720023323419535064465391083198784430154290404220627824652458727122732491824566938993845815046856875671495706292985401441068232447894157394747554557154729128199096353737449310317610910236438306236033342597508707093219038987445027342896099290672788091225301465194947001088273292466430004842759986685430304109819976406228704674448952542235208541575919374559627230541667448258824156684664615748592376665198786024975345779317971682462533855219938853418673666290042227742210795519537857746787356449325188539336185775046039138806481372847405114778983809215996834683595903537390452864285959168295357299785304626516058956250069748436408914502662355812688575295067261736598794969530328780171742534727079480230415129754670327063187373385110326338695505426697701076466862830807895556049567290995075793862027269624161904071790124727334453781132164186336660634352564038665632894803593090499473015238410571256768426708530069234279210374543503185233685415083271334087016891575334385856919554244633641112963778824797166965435788988017353076989923138583068797343186675487255023497553435041877490679082608410643091050227391533250567115868972587795903841512506145855767859122227201287140896502525434098999050559727894645386068770148947464369715592877362995563636134113750978645800179590221374698109618883547429051267496074558885503623462636076178996019342589046511608641965610349674141493773591829901710092498431040280112754482477075188284675556213869668628811460305630001163112493067823154176798300983629586959370558866154584437950928023674835094739190406636763341291772355394939794595967246319040061534502720948813133582818033929459023797309432141506162381612843476984358936015316388921473265187125610232734524779024397642877067885475947683428130481193590309117461425291707363335824068950922908967963425014233296559970769952634317479410563679462905266387637991432123590756475680859251801120594529114455409596846645894211521441284744007877137607327175190220611534137847707088426529704140363912596657109833790907043728487737864023730237372568490341904206659029471281530045335004649091194342496120341560270278164216682614227279711699743477989102554702120345589122194360001501308568705216005141164961904356210371975687135255832108682588792184369321507167154778223923359546657306616647832071343387019814174326892924211856598235132764749215360027362310297987217699073803247297092788883757569613198209246441587272415132107057431002460098483510349330953455527609444545157924613660203434649414760427097166615859253343738948395234256792559383452640256583768038265912575882837408153432280272356116369212906690832515399712238803400023451208877783136103696648189237397614601472839960845228336836421550831765950131681305846448741705181439880740452618939642095065237053392283037012363437998688780035769787327346775904993796842066919623722576250328442434286734186965532988711875162234568758132091924821919687283558978028799198718544464434175422411657755055298011307979998714770141563784955477594176643236032279826035345490001217332275132590553298065125798436308282138102222251508808708498625585082490288099005695795488845351793711576140808891551802071165519422891248375696248266845003377678643881340795743380535105612768880585494595259438149872747204249673580617829181475702951956791730213619036602948418159330465555387964080086544646175186671907312551680196905422383082274941646188798886000160974681136724453459644081242271181327198221290634413761988517596758303639768891287865628755666722466578937698727230190170308482891644978583539927547044150587637035740801375684959130113612900651656238127329152237927434758430627189466089597661534422640868973467824893607829393007294256077726787532091686419171038510371579655861664944510740401663525223340419366212655482804426796044451883329700148651614769484587295051355996806661187312317922993744826379222328524677911049085969528613890103774913642629354811199238600195420424587039957042776463653368273747861183709129406580105313499104840436868566835069706365040376266390875139828894293578967296111136722335633311201263745237973002510300454151844796019592283027497562992516110360928317353069474746860349990743900856841458965728712770075946939541225541299646598408489694526005924242618061383817475039588377187743572006320213131158879468690327458055692074940753409086998697270397735751809299418966755770733024581040680680243529592894560189805382090216260561548410959793071485111718606478821244342345550711910942330462290469648805927987481710947414025182310969221359110342771464729453247255912335965740882381574742581146505580466758816664684633879030576290936630210670626281279261693850451991145552865580561570320230891068250332778454545170434859308629823948432884289685771838671660550171106296186281538570942853943276438950624116958963769862530417748825848870855304096994826247956947624093902714557787747868779439509458236711283253490299676041880935130323786921767542532358053283273543204712819220108703627837126007346611893268144790712351610155444707566634883961143110820888611288825390918916431909036643455548320200388982612339749904399530298700343795883476422541146982127581425622592738290134494732075307221925382565091105609701435689943241345862201822157250933486073796820119372886486362779787693157387203891580818838964583421230655838335261967399713891504551680782931524957194416313134411398086281857109098181377457504736701307289695078807054416432909197039528235608579310461031865798212755131161432517869820475267583034797060304187171938138261008059537525193568620024883659707099591861970060841154915776507013200192657788763008166106350768821342248707781082364693297415572376777156543682651261156230010636988496107332767264067521410846109261755989703618338192292072989698341076761178134187854818210034409424057999695082539213259535565615792026277878653156464121618705272554338543045509254916589401049098088227044021408128958239474391870998408307942309670379221916849920891854572402312539625557331905537602219781382321259697461464383541715602052578615772570078148080030734119146018033706664817365413034789202918416616805948582530319106446337874727668046152882143574843404122132077059512253671257436029411815669121773684530519811486135455750102931607821088414001748468312792182437457723141447617157517101339035082822618625116708243238712285676254617178474239664641119772051462281814463279396087486181796304634006683699247002767154287007762202762429196556822642150400608885653057048121489186733164750805238742352676169088533239362927006510892776637243942279009140278027381448504151487104902498709308649845534064127094715368179179960389594899088921320656753346320108634302381400656721086602743820851574906276433755067172671140487386712567248385722068700148733985396000594594622613093163697399582996227402220198428553456253962603595693440534487624628615300815085538096997246670563004930675645235515788233713533655777161189728473080224873806990679297828187234542447299858514018455718003130072953887229445890796454128955169697663480014104072961956941529262340244327943695576178084184586074970716828838712322364070257602823357913616802124968611033523257768706722426132117328637716130160456983253707668756478077502354833009900913208517700277421029220552519300750210422925180736329847658362150164900363086872433580734592271453636210038341140696164635067515118245053035120607033439520493455597520914695508842039558166081552997875499432980303697584336636659924450250895057023880998414353211165793083320781165552413049831620939465872069418844504377855744073729009658056237482802780312190729397284795897398145572447453116174912493719006947664545726952683411865184093914188724167757520848449407536730283126332044875072926669301199641999765197494236120485736505128004407404671138951543452952309680022736342336679682297076296285865689313968073948570063770742085808528057338371546506261484597299056836245263725906806348987308326468557460911601116226724800274312825159923006291201334014053522517801185725663076957228599153810402061774778670007508427384634983091454268725087649572844890494172432030720169719900773461298603063542856329262462507730068921977026622301027591033653552938189259738158005967234721845816472992737869080917430382179133557650520476962519431392588219142433744581940647856795581074711025878256184316709857221883450253726088852276618470191165692807932926459462915579198125668126848251955698835876731035320953152949588855531555828946468450828752923357873788106367740641865780337577324129523920297193738443908396299948545165385834596551893553121389861314362886554030646339239525153956803053124341032687930253473124584342510596611275578784037394380071840591603500588093377628447291278014070488314704142186052451685277380762393507031722959853566320780234717934586165500869213897381265451309843043872919371661018702155384478237109465641639914011754637962648515139240504074605802225886577120011535996518099528169714625345629343094698163291386860653018888645672855720363695463942683578685534528192923504328058450927831699165847127543888986547513763580542119082338836024254547801222072123101163264879611068450807281513157759561471377170431325202229570745094870703090933750935543333987357066317021470687847134802709884173096440956162373264909636099644173964056056580963878354696546108862631992940638831549430531758514835323031300011194796741438176639677808984689933243357229252511181227036722012914086021237229729710777222824361614371328766770015424726110530235162755922191779060018386442681740153120123842438413759010487118243360829878853186295656513719866466819943614367266780704590533985845012933604114679038883461657196930641983621572767480415197967432758461442881948556669910029918812288337673313567596480369744514359561853043907554835076053356830315382539356370827610285837980830098145591823240692262001039861724384331456375784818873080204250218271401090102489034261403542873320820744805699561453872752347420391612037204358354114442715639448533774563676770759038058690978226646892401785595049011870282381851373997905348480688843294145780761114495221788549005711210462030758163960403991911864025101908300243015031220805106546003744001248898016871451388568653775366543525323075164812553548474491082994323803214260417625037793366690157700389952781910016978192543785535366055537583875338947119611544581920300096307413506023127299636005915893338513038515308504442872087673838954824913224710243853142519957657516689531484099840016124071484549559886807005149325388295534600441808545089422726141511581453707696163120106279117138003103060793895068228209336434538401086377201828234799996005385443960245188118464146672928558770380340868377395973272150755117295308546377610663413097516102397351845728243437761204957802593004943547385064406656974477937464803339287315677081130909227020418342891408986044506527135164903529173165465347498303408160021137673089941721256146440663059541511391608932017389292429296585208978639678674047151621567013971716153474362032133846077289650353537437027575671790293778222367326721345136384848310559863110168071873300725955158293491544595495346969313294002106020747366910856868184394591635780742109197264944008395069368464734596701659708094972628155191342681143140231426862895668273816331835976280312017277877760490055407082779017234868370887882435426905923782656344277932799725594718504621379862700712470183229626565534500271537883246327988045432060907479003407311860994703211269625091322863236286803028424080512310659421472310912177717491596920359434013658155841473604960208693948228963104620102473686292313396536097765379738829574508965326530724806625305700861454485596004998742749982195359062747178146981193752961194982949511579855596928115611929330498328579315618652160802352702887275004865647565646306028662479665022936221132302426125293181927502506925224049531939298768156453519447404569176958973505946049908269818733911543459753365711470480672466091580123923793031646904095902342681751880448795143265219037633234111849242521146572369851461600897862713703380462454359407355830210294277951275163274083544333177722075554400221123538137319698150452714699349394374181903177484447434258338672762544706224031194816818515234273116285925247655558706429957438677003784753935690761517827614030847217232005145115746772276592155882971730230666594552335270185954692968334123172509073142061317386612961030834557664313999414583868107480327720971446840076218119718810584149736945883905038144262989363347182593667201780185126237608379688118856543863393358676461566661282434302550232317717617105505995558427730774616197659415217799134096659301858615733243419464800742273133203512298432356863793659816486230749194745199148471335360474991083577312063992821273673154006508631801184888800393757424872228754070926126767684278507694080638695484822699309550138843402131494498826224076601716908379563012628376550324300459723426353731187720645678535887522576474226936685936077947758783714330791868878515207554821369718384444269470287585273378951822432181840407080360868752369444273366399485945964646947565329625033561146186870149098232642505342442853038133234428644189679905884568194374194676592197441212846235776839291843107395416603370796350702512682356277599223808701333934494276968105649613178286041974367059386186531533745943412225160336263072851208724079973691474405515385550133484824665076188320108555416773002301833390179819712380851028910330233114960354665802148090692888281288775134812300883873323712661044367132917191465240187576009256360001893041432774151083554599948019752872985205554361007979574285625829758782169961514598057373358990757313139291777629194723751520800679973225123845258175951150913750400444151740176285549494947247849620686107786950278860240812273138727906168324403417929088726867601320226576958341852229610030912214685350772106324813014424698505921570277308869127781427352412457416812156609229879015683517889991166972955774829063969006594210367208730813978046267038901118737902856565926895868870286104858658016635800906077784871277927592471979208422727158385243005232520716982006736490712639729097747770883331464647001142488121896198542580474646036271912909208882461083666965974345757483253188153537019073817391979670832976463153397083385015273118716208384073044580440582054919313329690746925224608455798521848650321402569975548584922565259281801196950502346149221675562111643088936934899782093905877295136912936984252469190479997606891573281482496540091885781111447030994283311249181154088850396411817574418400389624348118742936976769826309927657614437493365208638400641465024065741615334385018508386887714528950722708534597205471953971500551862982237726187236775024011208421923139476554551692982468778663672150667077648162080923933272644472744544955755898867446863602039530543593772171163439161858560140539977303167920215310828679225443527693479688267073994099358111582574337074818792173410338783653225111716231847860133826435967992784751282575953121213338745094491420868333105720029062605575086929495724580524903242321505858858486010115311446157531982542199354138888552098370052188608978577527022450473608443638038647095995362254245629082413072314147978734988074121676465367389389404921440947376390218382276308469355322097739703906403062990892741116048905793174075641252929105846617118764287880903298731473247978754578937550440013584663254598402846894333967154172427805857673406329303617485330834006126768691080453557450801862891968334456399496523798778590517605422213384579895556288930320284638065036917454689747237937662436332005471356143580227501323844618082443584840931447842297453922950738631426069694584860655674140493085134513431561959936976155840832724135100795966262292186443802809827294801495471354096422779669174144686618227685038858313057913551526257428108581721346214384011541566087804820355161098194793382560255002396578441419507641576672515018700281183278068906548700746767428126584752750677434696617668358188317880895003981509709156470358347724471536531295616094323041674400831293341525580250092715378300449880329493325673414554980228573796802204434799599740859875251184965617864987440375269186228812590913395761318856050911015704664095529731804320026822903025313195440545848571136051045992896977204392995076199408882712433130054939510259049372144935776785974344747068846073510269505394884692315269799773695505096884700033437573983452570742828166002962409979664677260441442425415271868977455323926682846409625751722275354421971427027111034106228322541125909353002778154214485703107100594384761922349232274156990783724024422205675797467632773404053639640820662872126879302207344014363437194463804316334366855121146821635829386221493654387306364753227120706792649788203492754842237272822932312347082078682650042595171306262000249719149926551113593946417155261917318571935629166639134170183745043337610661610440791745550920729038929943849574169671857524652026767614659537160680401226329895712552966108824446492073459203696569821049416371999037769402707103552540969656720614269234125365604938622175757747466542214718335293466254894074451428372592097299856196355868216670026451283250188537431324191390342323152925908610143397942959574088531467763920038310015231171776753913138871907322653503051681738264618417912548395284565839743721966266363379167997769684336404221976056634766647222867580283626967990534717049219515472591755286550412388825755338427369655706704736750019776309004149152400846671335918978704529709269252010146299022332124340152076062972303839329622228286555729160547280898039448071012817519811143394383362721660917280650425424610977000319632795901126211210843868464571453411795824587709490760600674478685801813172943022414422002654154495939288911783143575477878532759342798770741611143194311615501033069709249965155431681082884062380026141923564005882485744768012179154801445208777570553094947799807384465700484015601264170386632594297227636336697099803269611132338466282784673601383848084854439392257490543872518230880030780730815654230257524195181189782140566158954607036197119457670231283988216832662218183729540340121084240986428428514836831149479929682934237888116325460086158135642475749825877817311200093036967328681159324131877602515502394864560587174357363501175854768464593396811250823563191417365255467042881662771343224007697307314515042510554371179481802524788734915016645425922398353988253889574930303909153869866887936134518754473951225427412226401591001522401664883985294531224966669147448220181527928781979992012921090080654449470689434856838471828085770086815688386726306920902270549149043666821740741716176950789862279915635744833058820312422910224500539554714279027110106160139344864660592186247076844859104778128804458739776522923471665698178512958742989479334936699782900058549208076427334273912612595577221883716483431803105049927561883337726720945700823400639869508453764927772851307106281099956487130860368796610954384580298381235955702541047833810695070333290085700398093429274542431662332348413616787716202896449138113265719868328162333370613061299270373268767196991918972463054410421160147030464298729551702585215852559299310232132202674843896870194391810544228585527475671445903000842468932383648502436776822149776297818445032120807686655181039520562667750182902049612141558383739622391741112981666253052371955614180935789936325903982613387825619279842494386544214962612908751357557498134635791794075785825014567120500056688907789768300780708206167520569721908941742666714271071991813168075820219288651647221142853732880812532162674661733963977984393358585300711278151798171241626856404706520458061847267892625321688620551415346187051374263775842134136166048850714248690754483739468824403745208477585564530357309877435839476247574580299747513350967025430790832191592182641049014267155804377549609783766749596862058078393653340437423265512250336824179205490403755296349320006385259110769373035735956861233871510839115897170464155723037220546911897478164160400473546570746574300104207577644059238655202863706902460122624198331523151250902796673600929669785039072299782448860308354010987502376158865280177252032448498171871547352379516372124240659382752363864907014543787430887070784125211107564871361995410810858298735105485298514064423995213909638148619260338792081178684793520237765389891394231092486749567227184765458750422593141736329522714941992499026117580681237876049655047288629661037170525882112328144966117824392182172120967624384324672214914483616501794869804189225768088049949618949703382968601179638336199362872433176407603241815340184781325887939371926292910559677224285467121008464927366214292202385221337289652422122416798822617951694739274541585926957295278812463425698406433115317320884668956370642297454844782855951072020868216963405101751829768076376897927010563406780075003881670834875694163122498961839052269398977958405742328879237590729830417934599854082158101120573309726979955031083423631303689911664420624505621107403322885624747045724328558766676987284494338228951628060471512532674023891654353975018191369911208255293986602121083781644810142919681871031750834572475039496773637901104648345681712379376988984582035248469781960396599615198531254422930940698166296699477533886726076213667256588445245345430160920892021468443301137504414282055646238990657603957240897832348936227431957173649649676816566100498092513581352281016859410595711181679173380634877733804063556434525510686248913760399954351580667098475949990395130442581396114979230859226092042938215869816600680478746404386927652451071198027245287067237094680124071827340034517582329116754039534205373175168366888563379443823585151675957925616424996825824033750209365461095247543906795467382568580283217306848175230974620153923589727483010522967714690425127298136867339782847938753884688510021955650182692124798675002256086433749733754755094085711116190401679111715450954457059610340309940675412449920003993502774189099902777779803437601253233052649233731195021722343647474062334827794134534563748626215445102796483717759618777345083773012088985865553896610237674609062888879841617392822003603852919181095950164611755643051741896552074294964595902131121517193632595960238710154510586719986149515523571873617691992588105229787945141025580002811487556769399376453373844122118679869979729832143044134769604461670574544415266326526316866450751789967740078263710020655795650145955399443180386065167810600188087546154382028556554184095249893663187807185196204553858948922074662784242170503419333279546651191231951815250614605100916968930443055346822202465847032701502598032115306268970209957398808858530392598878183766333287751066688331939987514605236657830513835647747239844438386739934934808144907080064552018528422832606302404265851314636251170056540276343539715260826514691687561219787884850401335367842029290672302475683861970354428952982142495199352628148129017158206318491171621056045410656368373974219233483861972236179953438318757685767681658763233517001668086908822825396640010288534612187749590082584579563402967049619590767317345641165050304647383141691001780335043592855717448935897683780116462238060867996046116790415411247039124858834617626363393657201771307264918683685927080960141669810239945014892295191710233850405672179146792778210074679196148362203481168112310335252125980774412400024333707016438752313981331219797420326510328725773842746390412121715506404340631618664892478669587193725191693153429384400743869162560064783073585595685785817098295913151687409214410896199223279259763054069207417389681038185710553349699421421717371084912199379824892444826541391321027916490385616919826372592340535696244495060957244133632149255828169845453845880078326802343609270248053593820138979371993730418644754288069483178056310547522209619117819649667669110383673117354984008715656412314282484018563948180433840990755185820753324946552965878310591068243471879029613949210168059199047004116656003155583077412538101527135209591860046540404193054094647475076749516530573921901184939024292196218969894510828352293275030004273730014558662359332474164374765897796470300191665082285552610525403993303905826408883887779962222306526060629513591687440902364617318383494743732486553870639178496051366211043751284853362099149940334306934463849195415075032688716907920416143077013245251941814402930385200942110346945398148436238664394661960405394893393812497201617625949845305060130117584260685982018397957616399788499373996947756217671729206569975723942714425822538214384563798385511857864047647455148049313301465778975650355740715057422572491013442172565727833822306017040706279364120419542701314255270259406640151667016424610327900410989084127105276426960336789355415726966995405431679474519651959526104369863893601146722611156624925957756139010992599382244440197571639845179901392091469274027256486455265462817752319197964882279081465527776608484264793633255563358357876218469022484708276120381996655520180286150368517474880754995929408739004215732632841148655087178314270531467021068011806495332954514500361266659541103476804653093534632919410480139537732148652568341578606778109938724563609755101519315159438727881995605318940753661883106326286928050635152452615686239395730483705819693282651901806334806094457361617455920599572040620088634319006319851152672052424832505030697215941742756280065478167439546635681269408407692225476927416585349359574107204680934124633516150873401653636995337601882790085767897073390969825228311762295377961593868275263970163233776264610279509804222822331543880484057957686639624716632453065762515213674628030280570932176555725007580705885446480073739818263889486254754589045770558472645705720925956837503390178880891304358695640880244811725353436505339170417899649594453648079850967006328058469985858785734849423513605704920544911424408020722213985720284570428773619035302589077954479316348411378891088089693113901393477123463191009676237752964458917731858327915471964071886667707438050456361286542084593438361129913303582965627005758708642585312044555390032591158610818473297849581972306734259168621895708923641389961568555673218605933610106071200236472854804965641677237224887719568195351968259298969336209520059660491418716490656975278545077561544044469228123975761925425803685131629289357861952645161594145738186940177982015378792820140005477118420137777007367836703361238525776552521861576433067623565109501732411241993514765670257175161905177876712063857897254581822735611959937170989004528026503152805961714692979909203686140919117021346161698063525300983558728023911388109622596589622414598436944810225949315867527228779247912435239217584615870799265393826455205415736851483705667375136091005198955484637301006440328542943034209717276914544288556224290659505317969746204974503358182076543995771424250635457516267454580394413394456159406935278992568601468263122685454659219480783706234883327952036843445957448248086954273511300057473298464859921829147816305978459817216309375744578169812673950802860188134198007919950053646299065359040089177897878337321074014182833373169783732881494234727058637985311097937313178165849499104083699298108014366217918727313216459235033247965427669717603021440276089955395617381401362977671041882197750070151204695167162013160503453160454031687012064671752540814432939107271004041603764061024210631433165279942169253538881373025851783573944381521948859213296612232564564362209504413997778709205827300729671295663832406560936125929832641394429074666514948138406414740386433260875634898648231370132791689681750419203547441663803519895360741813797329631003110411333195283600749068688003492169530067688171187668389212681172781602083771007472652276926410437317654350703297889475646572253323818249571661479717747918546715934037645131683400652859664740030535600121062370482265349190687035666684648832030687707487354078595726438644569646910465548172555813546139210406338475946557102149074093211324135630739044630686528736159786287325960434851921248950637003481515505871291462009073312049645389879863669428914875217030679388615103435325837649306451452775557105931350336913858942885530020294348981200459322363249879974688033942957812886269638888311504897640854223050792471382952064172746648951867209332097171357764456700462977092292216332494287675826242022846319514633118637766235230349624421719724357183860995384264317462319439568937491860767005886565335296536638808590300476502858902277117606747296144164796600252968191762954308891121672633516187244511262999455727500438229333268345901542522108455626614747388223688058518898132040208881519362496264896656962155555827448583970700708266091011190134629182417447663575858165483483427371907391172724817781924605876662400337621232882885748957188611468605108849945375645763817877734747385184775797885056322878648799357855480283917131598443284614739587384274382253990127415665387320036091503990177180500503504987123170938458619766121107648422551202348172036719915098925529318378147642612941891895689490246919161856145862628946509055575452032221282536890351221555607512985514401254483719662731703468689860511141210751193608551103950280936288364646110689925713799646171615175066277715754512442747010659069907080246011935633954016443447461928642124287783639604230079940446054999320635544661787343313455964983911962653132724644302976739594480066020238061038928980410908701386089797651839072874438224423513812150010211896673619016706231983465586175433456931535851827992207939694440596140095045764122521710696574722969784366867603607719093099848464183742152338700666861806910186120616191795340258468493215798694039074424007214639792566923095843933388564339704623883809821644463698246226953355071240493023149370663918796173607468955631259705393818709658435927054173943165910163736269250699038940627232828461784600667139297259412579026585940808949670389589910286652196589212800691784601616278343625978076978138404966973876372755804287087852589526683364764683459059845127591716049833082045398940435821932177974568311753025017270738625790870101346824234650010129840212007671428497051438517205060334211191848211529169361153961213684727388494451322175056939226140221973145578802415593334422121334280254911348922705340645326270854346746596114975687589192960917308034616426202795074396797333257489111725138566915196916906475592776410929316476984026984655033992171930430424197340031854487005173116573368986151111966243534604503810487007886973355719151427742244211699559929733991532865312021915588183331686376452664368844371428811630087842469391887116036521131489842002342796397187320808655507755847441817018132965791033674703447199783829731237069129202915290733537104074295262954964718644298695374688373430162699623551325712808863307016491671963380916772146810196226093548275221549293766358634435707378709737503889720298121330106117406429617203133315803613054024821238938986745225172630266008051742405261655308402551681821313732131718141600770499903059300502750380759588190646475368178364101303291962290544969385099294377679781560945786495377689559137806604634790793322038469866767239818554928104747823162875445932135494962674429354644243507638668874322058306540277871589069652423693906152196444928968627180142296281036536393860280118625963132709985709861896413478977352067898731690227831104280595439971161850187249481657913387580575071907831777153980589722138519229139752965975368068731458377322730413595419330981673904867319687710090380019874500653442987265064959625951981769234092968683319147586410417846018105130489222397679689486454149428341861694719735035786627248542569593762595865747675297308172768475902379808473445708055823698855905212834973668115837741860599222083541002405920315387681253289477105357009625243107663268636612196249249590524261052368403915835861290526250802413096769198005222165158824377475585915474723134296797554055151032896934929256619851341033046026924050744602532440408943833705781510821754730300260780636383841825444738079254946337268949748155018653722141933941997568093661877511824204177107568470834214631117416727783956528312591055078127998139680940537079392372853742037346439259258678431077195645917973823347736572108411929181491839274715821503687480399147811334117301134323998223479272644325143725111884458867227572257314140516660405996475374834547041530004554409289401827976971493034831680267583929518872917011631846015521588225556637277606561256389119606814239984719781807502482273579249956087947162771269254104393476940256308324187979607968900882364440363439313740176500894907646996024479489590703622874451721670024527389447658862530834918338086247866390019806764016799829423590950330635581851985226992955455567846709383389597757385119962286579921826279973873963206795780042813484497651636078032842616947133707677426704210303687785724892568540682964209870028987999985224235387620015517797819738876969744283511452574418165616450020220081236854691034520177139637365809915389158194620903814549425893715177112154121535480718168762239879858375397484386668983555320454047366698845057194926920645056916376984712394920447715454580503663048602239068772823022598309174467853367466804890515898775352879481589393286419801289117153976253296535229897386637101145991401859907743853141978336063078094100038423001423508067107319199411866667552313452687314558848939705513110565597457475360512560659615900914223618111602110363315247760852147018839354780647766905761834522603259922330300457587969829665530081865868406035734851520155946706616180584288109812879202103911254210097271489106601874735818401127150416469152227392824881763765905203102410112082813047844484042181252389934488556710138890673243977722969700395439934478391919604122898215921935689355279891955332809174136086421211268179519502772753214641870554699805954409724321214236903274439431657683637484847036358490219844014432382826346338859093323988160423226080970606523820189532858376112263179511798685113903156193656270879117677299573304985045270899382884690482788994055678989737334940127486593752440900998323678077209348213968302120429298584476246296802910530257096661053632329432356353177054338508421373131672692432190591517986410725235425824774395073934454227383747948165794896881732090725245220680620576166277954213071864377921190809209372563387620623087933039977448129621863833773005093283845503372010400681870531425108046743777487140112409927302307543292254098868618849246787389803503001764653065761378538567715338693279022626947826779176026047156598634045661339186387078827070975906625984056827627474521724698256375657887414631705362713108709772346274819350227946488302051028116729226180761894867377493005711293984561470525275721005919305371364045138884005767776266816132711889679904820399286199585004315812370748776288193783517161924719200287031841749104603586981241073310450750975486893101268216220120609809164832404069236923079213199050419778418922468409253061949929828805699197567213952003969156790073369285993464011403133719987373113182370908321576597888592357527295583104519697308712261022592815253833850051282139963316263960395558748282905144482776905863965216292068797309813592553983337470120302628131647989470910330634748863861096665441899523678434181291178478274397770994521081677429370478976519266164112833945701874839067104277310568462522078943896884750127133821270825395037454234961801072627634674527954609078260210387741402163276603645317651444152998676515893582285487878752090504469814228434059263087334506542218624387469008108274060077892972613477181436874021360599353358896107461005323093468457660797553678281984095553747256313811758015794414979338752546734251605354352500899847014135041666217311512682499944247471519728073200291247560438218758759492458206633833001094623744884514981894027112625334334683476694097722429118958355732078687527134940000166709417814352684352193258420610436754972471477023211781106795286777417585234976345524924887094422487225222456510000408331127772790357393781847750067844518329721003942409742414831385007326512842360443918808938409265553017417376428669064172639341957118622819046312843208331047257384109233700976123905210744878723710185034258265881511620241546673611724341600867726299752664018237072924855764599760817056680127644611505660555615425879191585678371079599471927796552356472154271878791568955170836517668778009595587371217083381103435981341585415142298411907905838744201808044621466008448265863014602539269258547369104237913815208956315776260755354885434248159302347146834429665523188796135153689152481372320399972611948653679536389517433272263148193222480528315053301705272368974426860581023299487376427507906196057063351878342124424309164638026059640491769209395298591062527787915398156323826233241008300637601181646726060979389894078594066117680025191224875693878741584627473273473346955703429996082418396631644772993669597007901681060143328319472151704263484580361750318320922620324213747442643071535543149933366007166960404093251024306896713109388659312236081408992849167686106345609568833182525764086185926559030364680228263100815710128985978781588075826465754853280618138620080401849428617070998302172205492401786568017600113912251092005145991345457148066684003257161755000019534161827644365424584540952450026802065487616212014186452348702986362909451968334280051297582217425532288100491714085080810150626928885710856304858548922603406697362171212904112068839564369978058899759291114594460674882945780389194085420619767939314617326154424794785932399879480543170505552703203767655684217214278741968698816950265712167287458928940263467534423341243786216930062233023784830581532955849176088455106036526765389008676272200922867309352813349434556367528949836836441129744044216129765798513181428968751076390540553565075651040900493820879045625442919778772759247844470580413726824643924378518623513392815261713958516481057656296508809240694723204514199934853945077499360266733178642024705121734711631391693081138713708670243248595308440178307053343890565024109543032205981054063892859635987603465628767929233850359526097893130009822726053804740417879422056899134652628753395436357851683913110973178666486205821110513241408305754749140599539828582332373186868184036884549510451490571218584086701286192688076224199018173913230010930632572976020831064726812452605581670136653964203601058414367420476452843741535751259090950444842617533308558457450032023358607809550758028685961770592298032010892610174037544627385084427161542649478888844401973692237791408379717707890487842020685292187692656862670645553283634917676176288989970341553631052257022210119685632014314184259981970480739093255126413668050299395075246037061782392482881048214196558513059707868813041852484575354276972512312133773813705806079727358604880954233713979257889253730340425273212153564450257595165261918381653362825568288180748359158657198662147428082539746930082068087978365503348365985695737054433127883498887654412484561127300751952579906435738536076997568196006777751877892527985647346236777033725748046836429814289540240434028539993811070475868258536755243304802174653054998187124766642091908591429710319658327795295453134062043348073964069129238504935091636901246223641867366255331209445310268174384523068575289179349242186624327088119027645592581922563418855504778056653546722609774595273865104622426324331102230816706418263067187548819575702415930053633644782352033810617608930512818706062219272911509494588029559215663670984164811732761421332470669038934547627216661226498631370476230166424683302981029461668174916048967587495556852121921957306571587457359763380364481748885043435667387388199927137792230242167027829126922545887279583611860496030274839116429520157534742535069699998143670534269366978483124986546515757542834091238815947699947631747509132145264546204734389412439671089050068189726844858480376433072918005950711864241465095696400099346301625531011302526850637414592968123219786983787498283714830962346910203082379491419580589461395669426512133379780886268485494807412113728668025038461722834173282300881037778423226662291591870025687997916231622637321895608760886206253658136555123741449273020230565886635224675983076876017319753230468409873737610260814257989402194843583779172136197610646621479654273012909123628194357288600842329926694658581982998832397794649851032919950995057395476437193285290082362311144358143329163540616220372286884411845782578718004179662610099675131968953022705469413077080385866680997933140971775948977172401775659882810704055587684658765390763735607485617745273910289450236335006899153225161708196931975647349080577927934799338010722252654607724426688819119915627392321409054647944820815394371975033770690677208932271122591741693066458381561567017820489808146949325661361131210035556242480268531855696373107000631094721066496608449811117394809465268687675767974956059575941213316909742980398524684115569393652806172094108735604443985268564797514065183858920271711535652393578960900191229748470795807463695088579603168425980635032618180264124769423228136948774336099118086923162599703386462459519990529982885234270394886759110278106969883829235466702458317173621838029028833103882439723680147939139426975312562093794817025971912832763959852282669004255474587193445028145126887897679988034128781223235983886590693702915364376106544989638326433045468916061424773178343727566168613290994591819843974735108359612401331862716700359937821296656254564473707811155801261086955049065547633508381617640552256157414277358948546966625117951361880790795775692830055326947934670369518730532813080048999533303377274023137815117874026874718522862569585941859570848162700839888370559176092337671529018240762125708195584540575974100257538987742351736347727182626645029000636284956700334043824285746411949155440455810573480823827938429009681482337429389522055818629999720624756373658073000116037619919448950200371098511800138845238452291044483488655301798827609905490621497268046979087653465367635671430578537523703782735095757204304569917622452624718588453001276020828435989606800213254478646624627902485975288603020843175289517074101705022101449404927976353373607126131647175274430954830800760787586957106927693467869593373816844620770423109783726155760238258837107947995360220610734046097031573936477250562718461170973495885237144331563025776883606386068007633228053322987154780666626052859788186827626944507029453688039473582283484187024539390678387363902770511747108833850232139404365726364519481884875012589922896045301924878108177168191504647480409802673897507803064449739822183499498528330497315071267474490957977484045666165660146222269458790086906354996108517230321276776713427749640376603156390190207901749354092450524130043419747442926089802130409712880587917656874600556523688319564712849429832212121035976072342157936889631399416979883375608378991203050680079484852149959992909270069037340172878935674747776643883554382520474003787593962214939339554980482547865049445336981820437749420339540578608505651473014215487519726777324526329550226519073419472079612528502944093317708781438715093932693278002428474501344009713503227226374580787511784890306694910275158272576964637206360610434814098196517022202761499794902338964910926447605177349426664480652198120588039408628054419007249454550093274556871649879366371777630306704352264965681326937884724703492359191741529170172974578522197693816251140847889124068677994752924853293865054533668966793045733993207089634034883680172877391657309218989713343615019660443918820564763180049795427225694448986499796926207124100161403093181413245966209768875428461222223847206732945302951863029973069180283544263154244022202258437975811489603620769104068611094920791940245974162179802018463254449584719885757684939649901776647247201597540434889723602934032347715599378105429441386480545673706590471371217745093624969252992150812933025633184951312087387285892620625412474787025323717982320043090728100286597854551471203554011754292617548277933297947768726022716718809228241590803196402933173384892298932441247699209529583950051336252191730082375002734555777041108494388003824151885323703686378411985569323486821583684201148235143584026332304274995570405656846698628789711329849363320492372970821888688059804051590229030237992465037366534864669578218994315484277714915894412393224585507429736353644014003043382104796265181104409678295414253510471769790557839189496707147481418974724668860966830868522679304501243531111556204497428014202431620816183309884179872856635011526885223469199317999461833761936850007063239879168193472917227486867369853560744280327837414099615506700342426836219439281361550264808632739814997091567918172569963650337850614207959139036592959611092181244590166075594761210058616817892531500477720780381847389009438202938032560248354630771490000502977699181211775797856533546977644001117249797628609486141934714725968882140270239562777843803200738061698587038405224695466981728897289928455659516572564034194167741016629074286997287249812695875539176428390815552763249733371387965758228480081931356483097361916629916087218271354986781833060646415244193454881795057925400693239208086570944490296129495651179460299540622738374340702653227137626781318487967063698948903582462552266702986721586646411473707238373435615012248926043035450014079607546976201433638790857513815068312287660003885797123902610744687045807526328639608057970015196637070148123445635856922189278987511436592531214084971508805075402757796419004548783124608738610765522088521731311265516026911814859171171322353287001505938444480531107494382948341679535026339914353930779299756062573491622385909335287803888604734319238418499620571544865460795270508180105042517192365741231495491152261538416949902184373101014169149395434095579321551132607018560301816475935630079055609847117770192134844697477921393079279968070839346308311573598983951190373276062911070315787307659846913786063866837311854610729361567514236961610928318819440703884393395099399684025518000574194243520575743943559418973671718771854299331231270978020661136823761190923285191465651370176386796658784092783999371513967411866522028485444022613097213067123299563588222356389520411442636136854427925552777417277512176229399553820135204041741501877819654235796615273362761281091176106367428008978997594204938752239068310505889911318239819430440644468642749182959388810187850686229124028042191802386401853752179902878564097649180708287522117677685566583422681410679374207381738283578613372255162383535488378711321101133598456380615494301382952780459568296163342359947925173885795686427994192417515637149703237616189624535817166659477069742918289924276598211866280116260799167029279480170373965075141277986156370500434667687036007744453439006689338449381648342466462981914481523637799856132435549131135292636270282233714742215663779823947369145564496848949537938555717170269416959225413986644989026359944877055641502974656183587401405853694882998991202811644387962535936473126068293423651290448851328658517226754174495099820244749156529429591419138047676092109515809614229281926770297012793186766110515954454145045473379995689392827062141175362405138830347728279184592402634973078181730015699001599069886567817935981605291111671986277090828242107938202744942597262619144520830159126648012584829973203725705963094661142426446221160306979636870983913235530051167049628054924641147189912242145630540456703206115531773899920573633494192125235378456573938758036305121245345990425576006856950002257652464533184237661717109782433236737786086329262978180965215942774703362716345626983882150720728674298072477391020071971184663732770185017047719685004405820411231916915015956418554236484198304836267455319988129301330409759949953811613411629045821656644070188190981523024736462842185266354915644197050369684636289892719740867799586326610620972149007837227149918603925159608691875448869662011529574431764972302954303075435474730125520994798179885193048284559629430883861791358561605031958124098715061752447483698543863366437397726396344924969175235408365920643799135298738417155728519190105107579476813471593551469750670070525053796566918330485416056650057259551812345669875530448248881111740881267720429278536103662685267543112830004843905540443081424791546565520133059164486535819169676157132482349264234636437630432162656625775138491041330022499936452788457942901106663577294236161638001345637437032067834059353220686206408135143277436135904439076440009202621730226887306401725413088674920467587434340594120231483897132429679565338205187639859569871614144228104976031794530112763460153366307845729405214304854148441488495842708785169166467439802405989937924490345608991383701950563521205995242689781596116285425614380048096004293384448075756710716865855921457464273926366502781269748320920810346183923075594595735298318449502088888972838370032108308270037238685838788389434653820398329071083199413147821406183659658376158503136945542996978869596513217973534750010773228687745949769778998068105804040164201599381980343295360491895010998518671514229015974279053271592623016398291676765010036986983877230669803342293900799495554881799862221479513941692914142133316639496334868349782730753575875125185153533795681628088184053748726187631245778441711975145345705225491305657147454937918406504230397631915167179805714133615243290628090881357165115513064526853811423309451944684990671661317544129579758231664251436161770925160015053519960545868586812958561259712166934140322114109361690731300819803351519275218078744543899247699203474353723932966393069488508937292633060303108611388946357466330141087117493999802514369836607842236764346782139623712785544028889840793993883427723566151702322517749666935430961161659069174829671326993130384999705121891200259385500297771218408000498430912364154266439829010735249875163283262531087673111146578245339210127465530838059506504655572822667264164820375273863908704884888598198202637241097678293622094044998226230614707080450449874437329627672016038991880549411928712010308133381542509596481687093271555481046146886051621984525750611210946518453680383784138583764676351452655275698174922581398220945664921250410507426833473616557882045164011773312650593044840064836551051866085315002747038828054008399479109616795624762810062862801984005307026974051513309507833585914629400799410805789765916223413046411544062926794190459647175543249298867661190083826388282699135442508301779558077725485497154506656602558979129646847053741945271675416505956512815470371677061007530519567321465123350995540031462767384417350197132686184687406953328786891309283184519012528029633089724115583025461561222234923163534243603691154132491375740308720241748036391726179151187185803457447849212698506612675538859388911984337300964036870371222325133330807896419834981617939820041806725721278143697220253442899357921935999289192590699109199114273137335171708723176131838302873893013294226161377798601097644461378165292994959467967755824527471771247431772343541880591885510492337835217349988416581348851529482767761073486594018817442133345115845023945948273565070973766646157334113780513622496834870942265268864261734296244155290589709561193473166037803859423585270958093623600598049676933048670007696670650496926593644787871976798491471511421726514360784261584145288721970993488806039991276705342554813096366548279081418089817437600079990705392801929588795602409803800453094708831164452669949023379677347961115945693163107539166687202444279017656870391558465331567902421323270313531394512009842745037518837667289155775748990012069370117795926930607757054127782313303523016786389766178056619786229063620376740940284681613640979391638047412658826631805861867001123088607232048806822506044511159594372734765830019134276847867332001963066608031327675464607167442538521952609821131262334640165888602525674546480473040039633857525100208423503910259061207428255482065000988821028989706627076960146026090420843744945374940240634256594322830404162640773150249734862114864030699100123554541692768357690758029970071166710268309004289854634685345312347864283684988566037587493467786920995792078284544725819310714322512908879141356191313460170449373287678494419361253703456131994450842180543594450825212535246220309044353843222700523375124596606111625919303396159967128731879656772715427033241167084084453609448071977414301142695363564469578392037874248308396952106496135609027761458584169547957793476456518011569718172897425917944602735319478588406517370783759562633440714013023272231262716213505253202498675575288700071034720823198803937590159979866866721057407708723732952554381217155905564035294189794995293057961530089966116517078610380313023516386816364670163115297231307506542861854466369977812703138873055931467417967200084993179733983639720534564713414808997994356892398847005921493180748203099691805795999174142875859186571903429351219711190994543507785840744303656278347479763315156278470929508191196732291321146654192672942670058702493343519581298003056489641601546667801404471696109605843125198244762520048238683249178978326797244903383991097135320821797265801352551477296579138556964151877086285512617851043626949059470825526980594051962004748035379616434618082305450526609252004003604833646395481474722764385476068663875467639267840515904543537454469314277388534399756238454589121225794693472406627616037474135675915763779451384120191485481859876121115398266338700826951854842264428565697191241802112318503631181005793946134971776819710254625827668969622118194603025420856580056425116060915869988904354679968889189081367833335139695630879364893979395562542822215133769567100886688692682767600666527652345859369787741042830721745022247390115263977697943447760137454142626318127220053637420300510538305566967972191574995514360891715826234246928834582978507302078431556961654862654300348025135610856192665650187459872834103321867199934284555192557391618819908616012972719425862504653701349045743944664599250030033855440960701932432938433582078651940390062473650907524559618362195823264046961163171101786266042890079061504559583407217436895518081402819955911612183678000581789220989912723165618508535356529563377292690520139429069513938566426855436264448173779352783965678445301352584173373731077434271441851745165876508418597345964827436942652174769548581662574957142654974039363834469644360131711289102386856296210712817709272009764985681016600213379571480141331106989277812097347405753370945381682054517193236951370347692095224551915844046172333404790996209949828915201633171386705437835745223494078093135628901014906969500028980151412421307817642955542924561260897244291792576596153780335650363774052362628167544044330080170240316015866725874232752853313771568937362881224525999103412156092180086777714478011976098275531253782337581988053469042272684017012994444424472528698476768427166303297259896310925121014484336948899610573303230537111490838759958840483912419259894231515796028478265309557922066802566471838475648732925276261036419448432646114653342500634495351831064571074298356441730395458022794828042126391456556834709436957322622456027214047877714733692508001118780435452634233186754830136748618852433115253148889733812960004073671291509935759142703846424691732602387774620072453670297597729435459633683825496825035595349841299523237441640172835376029368141268385877013422038298249032054265906332335235873829994858804717751743303046098805825220444698566085769048549829446648309262622275131306806577047596858732701166379605995592070497501254659304374487368650406344182266499311365115094847267085905838540558418410361022014543723701329293458987426011298058261159064934717600158138827363494381391025660622372232712461596191794183111625110739231731577042376924774905861727015812704085272743933712077553021976450088398898315208223952841486271826105169725507850565999886843967144069829284146708351983115394845576735748508407682084690969769330366766891897785710736452439244095443705202602174346552356517533781805436425990675391367803192643093736582675970854651997869664818112389690178563076535559836994406574693859532470934180510529360057453178128341899192677082510512635871128754546518875757658111961532961685347348878035115606936406518898105138743902457280073623333638761796323814347553759997113349993977271888450485897938066991328701173964546975343802656431183645026277848079128906071045103579980304425199647722796419383737959130619601806775059669906358143831579977216091842526702016588131802911608213878900947632090177398790483229081698742389955327761187170590749917716320658092005597939687145122294132220799871457778657084114275063853943998797985874538391987490197464849786987162688676564822133817663903608905069436653539041058236389399673528721020308981170443064276305472052163065662646120392439680494748351876131943894024442947296453618030640549789461203942598305969277029433799703153638144016370973875851250622577675372667758340756416252707167694731120960541862668996441844254625081364447920231444976047101368164703323376971095841208803352935211328578182860637368427824559720222832671119796049335894550088191979996921699095389295325596698986083397310137065518244373617143232694765513769865987540748502024822279670231192391479893856377329746657267882520648703273242705948221397010721307643953422424168213842816949253575063148550301856991012376062987140602217482975337558779590953181460922679567518910438327117264319210971373766756820290528051299165835806200133905043740421829866029156454837897535385853781629405468210877291822861501227301550619969245563368437774810150826535959195039556534956354232579771879268770706700500664181306197542114359500376175271718222455177079721650371693716758568508150593105845154835797388356561295610326592491794679506597833354251604787252698632696239561977361303289189138506402715046157460498771594874162566046023089407426104980830428209276350042752021312345962375144664777854848020350119884392051976091695442780929126898935714556040503082711304179013932754381346965582416481348560023215934104554356577971654595064548151693692190623356367080334902985193650261060163604686025006568584546943919746607169881423636816866360376179131883288863805590181584692034697697755624688578751761051185072571621217014016460587473088153973211923980915846692595860909744457969040248197589237232007205800181306264628990583581782813497024141172564687951098560190788784751294354429614772799288983021852948856691147265489738810829861845162049588986530492877666448214412270776700504433749061160848839707853847992409661528560964588367543917224035650926590594731800932973084982480430984667648591767645328887990218135802220497346282348228061551659545338307802500925166478909503483332753346429733920017401306802387376416359938610662902137358630710884123076617757297926083253435581027837164172836308526518750151327669015138659246726765419781095217167488864157355598091959540918107600591233826102672206377291292358763732946136042930696736934225312031259788475610158565585595332460486344458624783416373692519042123386807943893989482276330570774790820112987609249905925834389621075613236510415658879864887845736334970883923912883495393581311914694980761548964659834562534569528109957329709458178505133341375934396292553471997110805097259311618050307710343773061835816020957265351857294039680202554703719074676120887459979066052791990980024292081255002555892610019927619288382071233910480098373595237221201447925707246122702678290924169694933190280328909775579005275295791758965253539431488247131141048640758808445949199593917756178668485231019857791074054046242453751748675795949717151012310995651303912913347931621198340686461773696842724742312634310353370059054898682887659862796199922227743140484786225181403470119805923684641805745771204873687454883818587602191748843810944941447111388737849610293978350221818584468671216413519171999382183667541860993938748548610017989326868751599764838600064863988386617989530751499269919331684284806591950318957963349798928283448060205757962482797629673148589561047493422392908551407683835094511404872678528068705264216964490495796210805191115484865417664133545478914989944425143328697122733639567839288592927995275481857857824393909676395382534171498247384349454461161931135368167447186180059944022799646564672990358818571372676946374160795816556276464900093676358798618464786348955069376223481571146148609007460751666153658480428081690190045312493103002269748356750098050308301783915039540278764825218119365286867183663448591720110125044941372850359574081192761972894076149336399194958503062227766155642417625024478901794847642465983031292370390398652851110754748213374192343193898350241927480831598480372152605226359407967154844658603840947829757796550840958804068156904201287735959861918238686747057658732450489783063810754053459926851888412987814276391549497209281739634005245513259697862267453890099537181705167131547797216196243244734088004039679169730328998069613397454177736636791829136324366244254981021815740943883699430227501606128876690925307080060627671732682659399456847451395664835894124587482284067404603034467915929044168779188452219546806739879224579598540265756559744412397445403318898147923846613238169256731939693326063172797218149716228936728623100185467334678683716933355766663096971315945003111193991606966552682692763319385472395274083041395258979199658683918650466681441572452806408110807881355200782056427877321235023940232735746198529392238957739482881463522055428823030757447309028361010719745917824595997991093878915521145914181074709143418480389664003374503397798956575573450682224353911455016619744333019875819010401288614457467284861134086332000175926577261156663398007257052350534952288089960535115760893444054193749321580854264054800098138484162314347825074883557748469850257444596474996539011538066216949238429925520337559625970065664420971981479327690000119045637267947964484703393157402728628954273456061419848343663252067516982347265388118407023751622883640202419250073765499899523320462930952451038348957204495846957623634726755731324080406019593469333674916961056189274132870322601201134524082278687735939961900103428541138907468529104681982546733314624656832876915356039505797337487359155756470443316276487788220314290527150356195829551109901265260376266431819510529888888987050676060410785149396003703201627124314056437810524320823522862513849356101228311047899656834442403471446511278811659071751077582523927302319496776333323441253336826116461859489475081306123530610050276590819399635266165136935475172899515830164556496877534510210239878402741697506406192902701030705631625493625402322836354046954352957680075820056063805093359318221812642869911458818502156478625749897958758061997766580836382535524380485798347051859922831241616318446288763406511270485999977628232811707192127229928001610831261629453933835635846869760350448608365789369151243526119109552693427357463493453859574697831435250101740689720667087834584509717933415153683135076348368563262391599075178496418316915928804312941049236796749405075492315692365901006504716828013252703794899426267510834945519688795339745163412669320823597687176219785212276153063225706609523649924397148928357895173581215682486048044169463628068167132598656572259138273567309530173957804831738007277250276011542853444292387268755613333966069498994427867485271292479275215807224041872825653888365178298890378806069129957544164371707073254241747466742588152643261717024734860869920308394079796909182903369409363582892467652512502182736915346793575618635729832413847544758425472015637979010750096399639324621596610153039483583756355419457383338247381493913044525811688530958357646703735222497191162136156403856855804633085976011436040301619433153792903747214159438828225278417219192536026270441702823518199485876990933360424923357353177196775865429448297926744662212374717681417568157232365199518188589300955561214774510609389758891182470663002390203680534972722334520671503934097408718248428827692001042157124861700276795328773710215870042658395132238823598905324194485840283600773125165484964063490624207531966973036614376612380917588565156546126818885506030901193141607233165016339102447209417857971018967533739253781412739202512304751893795695604500746879267865204129289367480707040053470174087975539119035815491426066710439017016251706658876935368783229425364549223727849517090626859276415441289661029984858860793592880836711114587092286546508746765935809336044095920801575418402722019701304301731757565913902079280053750224694183078221593456434868300962856897408458949680668196831774641250177484964135134680435723331002968146042935287004854909615625702766867306859205429895450409550129307164624949405688970679665547692065029167626687105642164184481890467593628571869819438055652407271714605463513135427595794578929167487731988568944048416412356569005737845581537382366968555574507506241103601188995881073766867419093572721540156740126790880309090713127932972228654467759674051541419997315252431382878491976842882440151570435340718620441456143461872944931256777568084898966102342461483544220319532529698270038283588148331841964238073938849032391019171462396985208726060452861852776265265230211703973330957976801938396610449874008450751325678310360564825851314878974288082454221203926760985109989913544777092474438498258026472884367784740818039315848818270059237490094960823097751520036891888317994375420855228233497862271969915201606464696312733670054281606534332627973588238312363651020189966616277444837223338001159546820773267160288857643071776381621624972202449478212989468532036520919728603852667428934968141072571342290285924614915591363158490998854159377688848027674848783501163722119619620514463072604621893701969383596533963552955585173257821386629356345940070551964224361042577138870993517895208289065365951827578570188477562407278039492280846162208123780508526329397956247160404447694300373548077027759479793515014279224745360475739968403489578492986358121709215636946461608321482089517440690119166640881899472452855200769833595844921597657939489871500619466442631124489798915793600981215687215201240928884347792780620242035826209960467213627020172684806207872316444935592620898222230101161867857662466094543480828198711569049053458593186809520541477879719437415915291198213762899914891149703959024012586495925537331423053825203924800515811612605588651790482487768475285257427436064647042423680985885842050544544934687776671475699427947494859265735397275743335995630740141860712447550014655535527724342895791821416497439107780551932887785271674913767259222691681287014982297343444229936969838067266477011701036999357018699614802392800115375988583414106992867924643690770212195158716031789925945645881280497269598397300850151628089144234967766207262032349026199336634789343013669232697606598557643934841617758530786446885076224474912249555321318901010399803751001660017297389892111879685091756281168914830339896111648707850681568256215386054728813344838998489756400483779138096692877604352385104284471628433244601108925983546465870124555820074833672300164259927583946900761116988977678965960225469888734439957302519021421883948352011682318742914398474715887388509628244285419950946885856152723959877098057050282642746239198866306490319117023236915187313234971910669092797489964187687958822173557186130414423900377361105553858869157894887659846084574560961956083238697950949367169603347784200759273050406534035673604494229436279791709788771105996757412253616010009224645587718621462377551248043335408890823240278078818570113605195620274487139513815372315205425474089287497731555924985808827921441894894648780411617493111136690612125890487022353105738939871918431412265130751255748344215529119536163716618975221672110242650275505220555876352664071916723322399935705220634813963416612558905964940282156252935462774400970766528953121283462163275799998603686106739373005286518487390756593626971441858725724170397519592109960159710535474712064766940147995300918916079606855646634249517434151154781405105572969339308317805398394584363034320264673628443269511837251002645221862719272808947671332525097928045187119581798868825479593663036713283371379967570022560260037158872974501670840678802899372469149435548168404835247027261484776656683882655489423952099667160110445745491379913911589951159190891622096046702290730626932387883830020323301723441307277108108271253452720344646987910726303260748552944123750769760945281172994668470412786085939399899936355810252703948561507235140689765201650701172016060243454707635570871271873590732769819675146693379116161477660627998192460741010919796038377083052484036462888683969639737692212234891151065696726361126498771674839512586965079316499241796741148803414307282788497656941775417119821919774881553433600141231633162772038369713019517846060319166069714418754918820392783670662203521382687547816109484941962557891113053689825332732997285659528327920910856357327270409750337247510080920021204618946594092874766673916143887557779241190696562530700694283783339552919535377856450192294071956660245860688824899103510663034953369553823176863061126738310551261118030992589851009988414294245842186318265699718127901663903182904948221684558200839030043433911048686678568742914929832272322789086941980718600409182264443442385613230114005797874611698452513980835166110139657046683584646093671356792873004911753043254858641330848210448820255353733291077525917378565587738081804893275197968483072997959538295493650534898620939886086658759054228189327441291721256758518785546423195894015719510825650647890428208773765713121125348089950835523710685659224401490301116735918402826975927316538570846018611003274020178290187844558522392677647358184739894747953641778870704975675688134883529881309314687669282675050590332414304059246847142839000598523376122431899050569529113190531426863816243552760677854529006834447074349851764658628075748883479562530557613085211201253390672084985190494025157503511591667945923784859795150034991096604166667194787655031228505768543485015020835887325543890440124273403744806790358147779035902177754201978307513997627217500826791941425853259829210407957060878529187697165175228592509108608214333541862393103158398224600952668997575584881928582617788087435129576597502276313821604326097814449788662248787447891681912444994170804145914215249454677832081446637180305414191861751468594922426784161104032992249570951640933757573918839375838102498992194489026826094319496572084566465136242472613764382072678864363330705562995341095752416207590950264492695395056380120752996271761129738139017204769657151902744680250006294061349872265734244996079843905666110524514423589573761588298986800971016368249430255050810094448567181007002107773336170013584978768949494275363759339995915595410588662427404870422288630325609364118670278211067143775642773080120381575232295612123822665565835629011279528273047569939814728155459512905297810546887698470148659021616510490098706304655239763620837742837538086957488657737954167196516529158336751453007157943159999562644360689013321741652587469539895663440972067821166221220672100883093812011404992198549752509174711475349990692019690184520288484047801166559189954949229281615396021346193589173587489198891149078902359979895106785596239861495331427377227289739366341120813869931249262873491347085563359376896288481691754235843768964882740412370504194170290941200814998305778458989279337752379980362523333532012774528691186224881714840250064168706647179258944866655918142382582464733411043762597408304638008868735357359490207826796456444897746644955944932265014446195605076967927375319027736829378372775625535802976758661549432266702100965627069758979752469872398392339659934929998811415103680887287995248992956571457350935180840390438238160070363538344302884472051566537629951232363784644713219838288872819377487092784924250107667532139815927488331885653015201257194244234469323321331016701363091731005943057264054945342986508126116004310438314770776506537152826850959338533256620026268835064069016152016197382764789939740639070705612138096459132520007639327608763054284760440713565638528874218486593693989955658413262965447716286459385705148658706600830301861672694090602314373365515843191176031336541626798373729181794355346984444143278952228187412103353659362676940247733836185463225269378229829692821024989042142638241223211348263500124874090696321048290881475130687174558865596663038298014521464130954364706009767416678225496950535629672058370764320572681455524148348815982381757116914098656310318326634561483082134856969451425198134839819757966878203290842503333876837149401032211895203141339115126464279261230916394219447925556982905393102141078896343034224860483132637219235282869256737493669302123195144750832980858618972439737147716993461682093291832261027504024596852358098539454226746370032055112569388189584894467735600519826481916444204398636862795229262818396833946591711886464856908031216477661331730863738417038663845595225093632749552939368965111437101604720493447155084193533030904870278492540618230820326480716161820516782411204692668557185358554238466855982737155526501111230673476438424497512931364396278929846262626261119602704516213278723598521853083987458961920702395733831372396456094597554568646859239282638247953857063301732178150558946392675490005633602077340277717196794258130661374999142672265482784162892587842395026344186400659194383859321928071105983214741148646639105541400663594058158363372506595747619784499971659094976375089746858068476141432776313419132163034235800636897418459758686933083744618675743792113557856648635490743848964397418546310401249130644106635992499521206396607636255861715635219673291573759851967888637808854833124668795037460288480443010147184834683399223608683939816026538201615170613482739372494127661460585827841437133782320104892938030123954417236090576763342834979621458684606398849250456166715801628446636079934636130083881165945479938965629215680756454852729141475852619311486288489790296474643225664810666280648045257604580426420970685528865697451516629396090860768222526858353992013283964548694855579150869900599210184435236346452637826607008988006533532889556395131616467583947254103021813554412326752906188389645917838384599494142247113049128055133533641225033102296774204705189577599277089034001930481414690358909668882042636152476415299614402391898703764480936259979810989919907122104675444825172191642878675701845091092363044687584389079785767335954179824295296963599953634756014628206613229543505976391095693842966236438154941613986637654609789892830569554163882162922312030855207738175720443195228443265463379686193041906169817706356196518568626295409773935692512862944445071464749454728373439050627481914215955053519231751628879564716381873802216545240766441556920853856538545733021491849796034814417451268279677571965936007350983398245855922889442191479457892297227795029811497406827909204127668982366552286634417805861548485213779713739550890234491690892584056705595817045197118614620894765367197923523606528711571054829707119718096320037251309701841938920556766460344662039606099344893415146259671198649971729919141566871728337203440895217096016689961412475557775866421579122522792500573417808370379358313591231035607917894326114755176526690661646262146449208190909082511386861031832392983730706734109099295885870883433982709918934686424396253861857150394054091011701848842206129006258932761965219753537417281758346710941113347403982913295651988280465993999109751577471014049979529496075000107921477964335598853447677998523714317439508006458585510003258691096361392195057248174240210158329954377511230151930603685371176258897495092892121709310684109771468981459720478093325521926842787051627553274092792450731359376914770758952422574212962461578758428663762562160035160553519694526244177731822282954753191388576240455734549084161741781837148326061459470383278308265227918388964454659005054441263006945202026467491228754528132365556717510648938512415269872285765588741544697796612300533480242795074819940907548333158542942778414010790838045117530976871811997606047136511190826063987103783685967107102897338105537842350310609717215376389367683279814048488627513355282253150493088657265891976572625496378811829196253980295343348804154580173026938872851554033361732044860068526867998202702648735182825667797550365662351974973356914176280269665473415635092894180142956806333817775527915430284349283450934448634376616715705593812947759371323523922350699764717356644083594326236883163829461291609669248441516969067250651399284440767500556649284225343737668587916313306198120518624861589378054400587716125949454418423203046565041780876265796495385287446170738192308566478747358502637881758816642777113312597947456355551089433925558099473646901035335382416170038332759629025800706664043618834413150970790274248495423006533227669782621903267362864507324193832550589912598649781013348796679708579584180444463133086146274919202470259766941423696934084643917326306263078327573721434149275809972971262355680486083156129534722483767878717384514841562695146648946893492854892302670000781731068061765050908532315123898951256096863404551298339364618781769961993562010787763095494279781905913315400308759870155675110009688635870528707407411061766843618623779352108527029151834497878696613464932812193806303575912388904949826452906328460082680330577226110121464751393357252964463899377280745762900182395253983070055631951958665613495699676373897274291413574882378979183094211549163972896333053669025563150522397820206824973381381742227116940971626663898237393155101003051107471433675926346493612187215747022258310256855841743333774000857409193421685329396224343916092709061611607055132489706099570332386439820576210171176006815127096566335436936911929155260643518797896002160627297696879732968840144455317344756781675490824369496081679819500631701993324923597378038793698313784811387520014299503992928303566762603019816010676028221568625973216404151079325828648531052223596936012239430429949561462128660634121207275923121407740576440610159643109779870896944666057076655381867328310571967596074093682632852206557506263393564488615627119616142235982956814583114525342095771931352004354930240466530873252216401511026866337542065537355624174740724800428646503545124711029110772768017880384242665749225751343434309506845130274914934666918084532366079097035630861922739121429241362217861703311392982293724319241415903871383799340165749801446832334108620874246284404939326035376824585232121018070932436555898261034305416809936502558134071882661084431394526819969992738605334348289989957194790559806339133883650439390353996756182496455955815565841239683385190520125856814456360275046676971385681568847422724974957347531208153156394263547161057634339084989966750241623670981764386528368619256010804597458228075080717399042714880705771840049896495268807525509004527473925548296090524905881316124039252517431238509998721154062678170033642427243938093852880021081371661831666597060978337865777078832940768661682040714800265506955737897722215433291719014128512959708227790173186224078116215007192847043019167328762938331025478564631033348938015534353392650273695418185636085845638166859406035481779406251965142219159336989666942623169911025061415462474505503794978457308045866268293649554152657985867368332891098631414034551673033282415759925516929048195173496497549300186435854780751088232216226551063155756555785232957489713363413419604664065899518095982177435186759183209676956528910125288533815094627317236438045735461292327091227026589703442913634620980811627873215542886005541571968942264027933424330762448318449233622809070723610340900821488624670850778886835097377731528810095753993137310998158003314745569309353385795310712381227178838017283177053894717800093356229662211794902359667109046309803348636908311010440514511155300513718188493977783015476248286345391103905018585170919826762688275746063674321204263153761029509303574121368671151485239256078807116466304114908692934276560204615634976440663253969223279676335058109150071025365237904577853374575084181818730801563465861407341888019149558924934774086635043215647219964952601035858483011026353362301652908946540920370537843334390911872703109969281078543775474361987631355036312517335402626464459333312741496304750809314064651824508973730654478746550034701759044626796200552920222467546212973549527592722481458159600368269342699637443296784215863548242031782580759957632996957513691401144369964717624068839366910944419345880630945016626375220013372904377769646911822516575153468637690724107848586593292420362488564131139213477867490133946198886150749695159107816993510185830085127516784783990980280556602681324025045452963860395155604673385053872158046549672178508647533937509093407544402942448829667875352046352698270327058773183983351230304100377935851566693418052330384803747920807196980304467036473361650640952851384658630335766563058710439709875187945256260817307475189500909934807413341465858534286262496371062570566319082820989396959326500287321677342659526503965350389834654028492088957263832652646598648922070951977222833150694956960801810742920987080365791486617838444673590651014489757768359270923324908998318919050328719599983102310092057098762552619367356073133377501215824954544331699104217860107212048383682888060140583910151394749988222666174245804070124731234761746422895001391717597068678381993996006886720278046648591182646337841048270981533000261832770801651412229052651892965924140036152440478838037901537180771071405078791252248970502936974661480681600467256999665328144162241309994368532541934204600326079719218431930985792596401479698790671409782228943739402669276460643362960610724688365670710700880861952397088500889369770989111751001174988570312695858068108769143147619181361449413133071702945642730279097544107846680683689025851155180964115681637640757643452725968620884135758454490165267219377614225909050293257323338599967252924987632514258938200993962918931977307055982857279481821296095935664017265752518117046270133250880690563464240193821360941608912033440203889165582698656001593312995143566777522074611581430908051484761351859780389920410591798049667224781649827070665289127315731982949349009236109948786819227795816071043101774231363265901534909266318291894887176848276177124471597965124381030168154573483644120211080311950639716429707656815197900406666648752592495257985037363560644373279710207714136792602540658124456685160385670010462602440784053016080922053366673043787710644882010202428953608681457909998819464053045705706582358835689418293752885852925345726500548188406596607369981468921418683777001872636164815585133215057371285451464042630694363920439826494240577091388913969595183303689108439320702653482997111341762637507846417984522709848109709933834712995085613054872350626756802845593096022082239580777268890946324439082814686837921869314561955154950497063872678989799074723206647791305956702414153912133001363135056776197433829225057484660429284402649195253573479536196062226893069295236879408190196879689757161247152810630388565028185115007839474835107885311584540989497405649207751488191050425922825804070090749581639563230198040840464941971669943519391543323026022230143474306694711235277919431157206179614257922690708966951081514078100863722970113949930184308237869422349423544766089689301950956136266243605675720586652066168327629694651391290932525115967893827567931896873807783528368293810231040894994848714404144738669123916902614920230794153777834857058548684106552938753160135534465774855670981950463121485239150993549813995413705648771016663843621967915907519572537433309450766675692817444344628795605084934831022065882110604947387676963161229431003505298372004327167873406726429326185469904382031658393058178378887021264478892908397111444945012853886945055566523932392258972964445459734654406234317332390358548343479916006988323837823731437955643761621842673996699070165895475489067753889889809594999162790814557660029262215753375277271369338104648089576753921843080097225939536833507910632009409907418206553751040311954265348846764498763336942316856120908242247630403241582567534911311619760315213202810218968892303176277735877025572127963687457034594012490632306044324231426199932910470043221011368517278832567841819844414644461899325686232367822172287954546848011584604285510554941955077271772635501926234327677206752863797385968196886486305870862281944943056063289939493591553112649363625234290155676368448463912684449815562182741315436380111762492207944584272594649294301984063546386437046731796787270438073141875251505745639613362068206186592407003124359111138204208031840323165757699002928709387189149868556863175267406565025757972731837055553436474612101642801259447065641524179582599754212649946476247543389002974285882845174626181670613239151953251539709106295591822071882829552932124175309512597428048088222791835477625167639528144839237158594424726572124744933119965363878000504236970253775535351818766828748846234951656945043666807547091208413183363475118269156282700925545628745551746580879479277618562097917989745833662914779700771698686917900338114662536495556738397494949057252798281134649895699888703884173274861767117719010609868613843616555997320798631727226470535683700820926060411677804451018276056442285100118447320114193676863303410284105927817371295336891530698471806360906524847295376293100031626537840127640639453425320185433159638063888948418009464322870433744386102584840874825318776878467364195550678139432878190256962489602989072300604238877899463570464871757240434990309704783509730454342174543231801370418562929331151930979677321616487137979505463456629822066864617448230257781186035472605984385095002695762801476258265145447552191697356551771231079908357353257570381515529385382180888637707331063960858894392817118299938938637173001579712045339598690340890340143026128492051108702175651949924304950273392644268645796073371390673004386541043348836104309676339620317603550784413915477994721688977147942820055746734126218456640034508061577243412111618769615649115338139709829151956663864681034033654778348043076600241815265541847563573199685756063752960467302045588280283595365389500817421758356748303674951863889221012709270954838227183361069448690506301513312446587667312859955890278031782937137140903792896576412727121583418257591191104529283478594712125437319212255971320026256975384456376818386861783142935681222266646606544973664854235445863980574375931358721087380814532319472173335811883189642921851919568375864105515969807777866309737342550069332815469510637884837146816932495946452279740473445699971223808614388118611667310852027853541588431525249928386642043518106939307088551685511969831302778425434903381758945326207409785311250426448568630193883484145541637359239255947742846300975048856555068118231264413575449122420911273869360216796316669500616997928514887258453781680551647349478775645688616593800640666708426112146505956568252632148547725635506989671507804267990928246163876282299321380489500811016910967697262439010658608030099908803110763602294783446128453325947843962049647824943201625775666750593898510344406419416492835303727359882929314807900876110116541070974407943728409929866978702741105135893450081209348009864734728364025729078491832751946913652831534099720069147897001311729916715607649873024745066730033174534583985999258494345702352055870878283269068864203056547613200300886125052259591314857152859940027031148126647812783551160208867374893826896870956986618879044667519956970665586489639486677364744451686748605020334051207773194916011461553340392982547982218674758967389287509938055830357437004654656589862817106506668928594690827914058780278201823619727118387384610619771392515860716179640945110517407631895293930968710503096458637371025625357093986863768026731047200081930089464639821877590207894418509350227408066759175995235408792070700012149112155854382316509042049835299073812800508500382095673809645692574455646135214283904915275553567725133649740734831924284300783383878762712663332648986893784403158651109747353514408928467147508569273775072394678618726627032223361791639224853996840693998439343299211648123600556488370381271422249409365524863833687242295326631167197813075731924992311798748872025466414853028378171466627100214953613390444072454299532800466369796560519007982951703132509394520345953983359633133711763680395719318561224443702101554147870591201099818487886098739479466452180263643949782256356273002377270456013264568718153630155040603406165225331704014469637972484982605155942082625892675007563504890651387019012386337410114373898725518313436307181133387795289294934367862637860989599105316112427939371237525419191511331368155114391221578218733517534153094704404987724634478275851975022052156804850831322259656056539225924331781576036385954662994157669667715764247412752357280984635985990837221421175528556891571673784012352366752231001163579437858937446786932193745880695058451783388793306944140853738195939598255529784518315007905018751477571760596047774289715742641333450295421164789954048868052886230223745714417945580053429367001396295787321804603816809461035303802668776235453702299457878376568506982617464283367202278138818758496782048344150180755938757798474172824551037014508818603076410912233536034010835695893110638927502395525939349822483482667012972723812592755184852822546062595156257413231701434607814275556547693736985692260028240929417389088859479387455615272901703357270067712010905464745667872859163692443750486733414944270598617529602262883015427649150270243139419074612775783707384870100683044150030868651067063332741478961584776637510590398465642714209413860424549756923320356314968815669192631957032700141248588438927058737788345129645723970530272994838573088458524484222351213767814091338104368631920794353730192440620355538758532147719856093905814714073589961185973635620134715486427847032981772100021462699224671225730944359730333644956158020529266626936042663194724868471890840482364332959293701288763213924670149088745457254926131667118549790966220967987705610165626480294130491250934931540749643027482891536639042423861133269385710283435066053181680011016519155038750613010870738214275437687467124089926221869043031235783735818840196657547377096679911757444605427869089157830096618067024093952670661866220736890362788419834403824066550768268741123832105093357164556265518276114662395830899437486971052301597728863888493596030409680840073875117092360436058431556066739844894085660053574267664564236348211568453646946746840952774318799589517584024680535018512441838689167696538224292477696629077658773504524699366603463761209682119477821921745858288421483242420817682205027998894121485096966263950350629292321460782758311332958333831703342700131254527876431197137566601451946308239978895685735362844992678870069017706892768010294209750743470470482545981898701020869108744844281247687193393239782840146093969182364415574609307062599108498769491421853935047653145100207930119183791352687530177183489109494390996270657161373577251335456337321230758359315551224651538267308997959140118010320506810560552580126333450732867235985922055190337569064688224155276101569157591097412296789676671310230699970468634380722435698234594200985167230107208656372190306646242391919933202460050641949791338397388492429690319454801043353148688648784997814765339417068887178759558757198043384035715130252441125734688041914655047665498130070452418669650640796545096856347309874639630541463136947929002847976089321411298106541406363307202889695196496302121579295168984058844419139387679312279236211102334416914641271683041782471753106087628135544646211549640725411307657182098718153172953858803933674714363245475049582368845900620167330931610624035622062827066381638841407951840835229491449719199242454765223071300930755434142928003647936024720501703326995471293855649384919662409553323237266205870843475152770029622119234889861498496376198610927647566699222930381119542494519143891385856936707718493026101574327926151099493425607873935308951198799110738931056621220340367643737216290314340840483822209813192487606811230729223710587065955332580299188597819960672318040416819265416228183431494700280681966293318450000202925248555706677654005169164741171870874251797296498125479199760276259977183358421162965407975126630950980239885173276589654633308617129920010340794667547983046922448788088001557656148636974884985641046140497025023859166843792599522236911503136300071681410497583963545635253086905130843956684807467856192092787585335409332410869739352798125212521443401764877012626542211380427561856862301754901280197336814221523405488074968537709896218841404487186672081215966091820479564102331642915468282652207625410926956473006951397963512746600695884835527885600229476507960350451998371035620199678014533566049680005009006235614092850179544410376764419860290828791939969274450675693568849239650302343166085615966361909009808017991055737670436069769302833013728106377451616691632692590744539018105936980541710051606661006501746461163186277216193223158020152539147693551879024208432040222045334122037891877580296759911616427865847952843182007511478690257693381038509250521565383140368422379978996470419921953577204720533889739976454878858149402807981360990315774994568824088521229607169641981719665105957489039883595053455637211673336063608708991478421962530987423429915330737403300155348933242106023047293346544694578544015511841588654066962737021936756259867996493061359152369552889879924398312311781419641376803015018209648552746852072325347600772781589050772551653775262331702922246994316720918633028349224242817994909650292680933964603616762848691512276165916730490787916840842870548700552661240935091778396868663063000677156421349225385260532636308332847182964036322952776999386875745430714559502432150816796572434216715915243893658131164094534371766559524123620441358340673944497723092948872115733109477806387795981983241979323171365781963727141030433424336820523266866242956407851413326082430420124766051977339178387140690133179981013553865981553164382520383295381359378315072052376500817569065634334683720778858552118113764998872952686181466963790393881676256058587291784077785914107987624078094512840170848454159546358067088370954622611013331794294646596307620157172431850446559609960602491122029821316995488889316665220223918291999640857285432342349772404245036308570087599352104221272646553771927239530512010029934228185191949351271193506185668321670418984346800621706021452747157592570978620287679491933126065415721760805383986089914790892431252310590190819282615973258895734960889421596658434853100707521005326306960235417682241389582556289230985203648776833287935413972680623271136196679191368626145903871755421276268360093113941676099119286609297994298748140403475008858672082062622142415756643537192122102607414631513551038030604075180302815612605816788256836428453260519739232925679673883369873990796989703947141147161764766101411575769419634581779935612968353466452244234219849922066034245833548690163279589680748434637539141643494879654351412409892314643485097379472489288366654992214699299270673529968728947508544543766831167479902062942150491312645278549329509104225290668498580466197371525583173033498512360365299987338178747452787962227169649258986163230739936113092010955602297648426242677878530200352719080200117583539097509887016270967872224065948281631627199009061840735557822791722601986964721640336242477528419151419651197899302067337519488541395911329966916404204559722670891851958050273152664137139891931043899309440695664974305958495302933044150518187616355067381208111118240451117873581436669280095056969554438792637462668586644554614773331691827166590397947369987703796133237220673933862063780269764403175592154310587276524814419322307215780007711299552275156328813998902203576556924711260099267198007897023989106792505051320902323914474149798112281864316079909356265982321697583887566674531762652200465071437276218180786505671068083587834290660380525940042590290204937389263975923289397121149222178064842576641079990893516360193507417705204097010054743905489656604734058359615868636700330767376715947547722159616366482561611439656938149453702516175992239101282500340198716880442171480665741571127792910977356426589436476483832178275856209459073928795724996922256815744920308582872658744754354885633279592405042535404912790584707082054567518292685061217795468009123798852949992604685846125118193376517731914486224274195265556807010802023202721574395347806379336420548886143954246072143188249610845211676745354982703759968866342672449033676991776517100515470815931104951059560325948139068388905086728466679012831016877889235814713434489631112878192506334203138881940247266514899192995005604603554624602004129304188175525390209989102472046093851021662350564546117613611289610571614610110537869435513251096061857718731045159155844689310697255191071431990395447885857178831486081350796944614163552697671599902136419940098726096850089145929500459158186593589980877137979775094575010046243124613548123036685303811784087554596511645226115659577731954130945336637030615131317267698042916530526462863688006198747662084498791919666444854478274023579493418352251944591169541404177566331677125932493574190413925898034252864864802524131153797514303435164541371194904562998452556097153708926725514251057966146241397049744655690487119438048672409322547659694645130972205470156958141296578429063477680914541232220625976515416728386033804188607491859325368442457458414291772983020067053763495288968557525926340520576926880928722470800063462342268732815204114183430900779456716184911696890339121145906548369013605346543974049940014688412716030297642897983875894847490563375832348467407639419773469046510088848211777037894756108434170213294529362260912696847169755855712978791650916838295173254742931418306383193224350965743141967731727001653939458484181631047919045976311009490271171147103797593630135228132383519704494850651792314295249673775398786692875957864270155123948106844075408384768169012137845664707539523223445605558144110158129799334461291089263308644664969728266075736509901103756563045231659910873198981033375956602112605120048110398086289426833773574669460855858862334148132169899165870438973134267500438953836462081509521210010875109591426655666811444211481545845012711519304576805295214658049533798270984097084502644967989907136498790562730488214520827952340772225211237431859650623017431176699232217197075825805087423858968807907095612533864133917869710339549696073599590045794884875761982923477018874534114639309284791386268480048799832564495483672182202814648697590990038326445001649494793375283751022436356078839914448175316162318363737706415297268066284393415968084330298798145383368311704946323435633732938305807318447497268707227373014638346685067737620989659520604091784663598535244024707371874593383674707501704193282685406214318497929333105632985459294631349543905338952382645591977650415214738494111719520007876213140009083927830327747863727443450749670483235788081505944652828184624752063618056324058110452119322568650903454454674543024081833103277896514711018639618666341069445356725077029905301109809767880052458414743567283019529203115409860307399893037162118056775760411300383537352002191467764399676188475361181804275972023160096594259445258459680867611060861408484261048197076903086050247411326636470396782288749758797948452885408970887089258037926213687388710935795074171403247004474658003890723155125641675316149327936116947549639815972635484208900831077553397512706576382337213638864177999645104460890491744593634246609568806653450776388622697487154622361232408473491756387215451554630442282481643110244356686640765848288726276275936563171121441937654767464486470883780627144933110251593992337520265677186691858338082281681400781820202474015503431468912831916325372642272960894225602938264241583825446000268168051159869047217276135923520275958385542188293878182994128761957351422396929591067247010002361434629930297459055981367687111694952432765605638878303440067662635497940880052137487526492665032500269857706489350208518258572410649310133206290510176204063193531939514560123015158206958468813355306929603186604281389222863997811795481344796334265643638377233822331715971779394690000986209613713241805208066994840582279624104288058795008126742136891212846705400056986027937114660917194112210920447243141860930722010132804335041425443564505112418874651737877575931838453533412025786754832058254364920025891169885660975718777198187606143055545479635848655130517996969422339444688659090063421437610830021883924556291468590642457668594625877402894165176008684395037115793688723287122125587569645345250134693554251744968736367307003128530232515238128465771200524293943042299725176527270894294478228450341451466257898300453902333228055120300377045180823994211012746966299322369102233077551508923272064426961248678676489486515352899699339109706687438329070216152936480152992349100832976023062477511764165876877916175299771718260883175418309790334978801210500892378654361989651207858428507233614377216401885028090815979932106266986776273410824919385974755728480095216287134981347463612977280457372407377776925741872222371278846034231558730638815655176080635123105836811541924427444591203667982984404888937595071958380012793027616446225821634203522248397600018136911333179805645917978199984985681592749749949064365009726599935528776190167283399392678476009416802279196672804601981468632421725652086812437261977097467631982251379122038811913260798348454343836603352667131347289974100911186970413024017987991420188403196251117508140578434607652956401755521833830540751696003179231858651424343332115474490231011572315077865993907934447130721232893027124892027366687110205581772399916304402653107726993133814880854055492069804064995754085032809024840584742557201658867679384479425525643277573726268436635972818988389655001893974076836713835018172906410544352270099580260986716671158610207310553060837929098197060365308078091238400507676616154241179714063170981175589627426203125826521179231918135814698795092053079660993543182923196279376437425488672057992599527182755062636533670715561408808963643336303777723739537607330480698860671412425522851457135710472975886932374733695834246796017718484489663258538571168783811267500356329316106973378112384881658247187294292306803568362800010411431500032038383720299117391264840364426750218110608243002085675860639411499035784445098116186454021450348778141327515605717120705176165527281669081552118225239869503138559998962716078800885390907304531945488037769445515102995865462681932295850599697008005298322936481487327873000088351048360170935525149089703030149765601646705760143805698641700121178414996295471559726071815575674533994320368902083161716146301588147715659902485319231296480218359971814753872567438109661471706778720058948001262295583974211599560988092608193614029007399488536713192920557857461762591527482552714823069069978079681772171052061168482389627002634917241380553803323958633425899950887618195664634617529452326251024252828113325427870055037595464626522493551369511569286205914521978048468682703540861768090275657284136108255287792475878146904895673566471503815468769059426241455910806950305444411525556467721483457259970665170662107349094340941997325826023160845653593071509156952964746286887628862321922528334745340497643440437354225628994482807482478799249085661824363020946526445436111704497496328160087794024211102039898130986361793988012891540763104936819237969276057405244791103007832831852449354320537484852115896987652423399899737114020912171909295263299507594362212992019456412503699322373440837194641978934350019067097395710419517358854221219303208861623783615130630125907525586791393522991631712528511022571572860886288329772264044228702237149105701763202316183877492330284628806150940724507587825495581523527278098941220293969196803900119424023558439672285264834799545859168225312269280177439731906781333991364515058237695202937878828064860299213418013051076965374909307164146960771907017038491747076628299192620498277454805873533516075226357487405084042973084339441551692389258766173865514569889103812323735653613040548778482352412211152604966166415304888016988502625812399406738249399101491726875745018143403130342772183457597815762440795863851385257802253162183710408270390239367219975059346939116377922635009427209778121627131601617261499831213589939273251095507413277232657939972360352979496646842801817422939041139319371782525893287540284449418565028537997494059741914234497350471862818424302619792694827543749859799653997421650530713505334427225468578872742571843413639045888381375164876720618482711102181529399532401794183928182018833077559378592881103475255439099535085761037301271874377878927463895775995998623330306675365371965094811969274790516576405458465394479674465338362614456673180324045206407935125437625860635834674152299378342043086606849334015977198032389751838014158902562142631153821414125764941357950456649208067216513773006176132744724051803573507014082297563670952027660937508967890877014416059029032801441953216240660456283456808205002146349005090865214932773660085594472858807239476401471237746575049587550821558117627019079266850131703613558861519889505903925717303023552138651207910069259399053380951063226245412239175768425725102210957950100202093005465779477102354343428825604842512632917394798824569436316443145287245494084572569704094075540275395740573533425653697035269542946705177660614079656863566154673905457922595978665987221563479390551141319414643009922760884674107026736937429856856331367044003718282340986965278923062585025124207625193852394127322674307323297638227569750871359138041347760148176784772914418615028155559465794498828993469093296895036433036306670210869808351553007449128293680715207289880173579353955848496561544616310755801755911756641135441478133140071004890112742298049147375524209130053410233080833429392099729180242432007639670666668939277351802371557862726164699752913675970182100967553530824437842573371189908989438667684055092300255846817035793304391228011844808990586292988755257578997586370702486360031168572509163390487393728505877523427663262211913328269780545243757371601806058765886596379846429990039354950601998064372324629354978664101542679477256532301899122717291357687695313626569755578591981026044460422424734335374682145919084294648549490875285425994325278661439077875780586668624507078882811610310469203614973541537408161095523531331095967937449870541201790960381113596900736781245341418721751871017011130346502951029751868888289957213316209012190409269743851690667284171885610599351561620201821601308520467262202270241510261729154694836593412047144619474169143344636730552615122726499106639071620310401464006744063245635617255076706622852493906507526091796918685123960125248822436367352654156328403532683090498737388157022173780953118087049878763424778253527646874258818278486041519430672938452256543185445443728669306297703663049050799825368188898327123011901197805369596366272216191678253831738992080454490168065600721895513141387741334484397557398476569383357273360874955340608996505345901399086322988317119210764437109728762739699250701369445263772374007272901640934522175977808987199096238552590328490291841133029798932957245423098459319673061875688487595706126384601231077579765827109362020724346382808241802336321737037854184067346790817014186898350942542593320022578131739918928772975453208882487487137823714990332560985933362125449052678098988857210783925165276442262355764486550541713831329045267429523954806415089760975304325700417368174731504439133524734501279296065579778655295315625334110245370909621025395765180046779766204021398392047160221775940470257695459893004839839563376101110984416819225312003405100393486880930058113108545103153813178570507461934178346488948634005875856224896646055621073458632898268619849769925969391132316136917105879558654027850274189216921603992265859820505610293857731481397784990348410820640345506615518399901695429299932214018475275520147158218177488623250259199634953786042543100059985813432020785424357901467357396900686176119457474380838929422902833048389513785395988515462941151417582165487549753250633718381751532789661054310289997534177614394578340129680382068057721390266031561224973991644498864865369556340057356639556320481641844022753992015357043707516106708046732218449929969371660555043771224205666805681766339419683067002073049591685845657921331240883524524024961541964539006893273958064407544157884341849355618133462071082816167857251172799536156760185155339977495949669444347422195542404922573336488886304622227660066991517609770642007775715786962661833071466724889268836778226595919340506859955993427297443342805707674694825154416809223123067717312388941609912122129974685260845736624353189167466295728178708729889696289795079827667971254937324856745835767690280662643655000883751626941883065073576968618905931735112888336550000535674013744137995291349912526272927408131276832510476689213751257683152203419431004136908626524184737192091057431662035067791243816183976954119580788489265728362936580630436357706530880139496696648008706202359485134405411003775527115036173171884907524135477863385719067489970740200768323988267707464481471338417478887542692380892932955869596252525589117963539262202414679540814447194163404346961812632326059590064531401282172938302337946603845830758169367002122847282452122972039917032010339389122661286564492004289309138302723156606659323528399740400326883448822042759885524154012672662653307193149002515616958244290747254697116451296498384249357206172056725661682813452479554763125498598271497329055267337393651209266850598281662881743182843326414477111915373552182792842547989825517054260693031973480984595850537934228233024635005325643437757625206894648709991612244627863174564648733407994571305944931359934821333503003162646740597334077654466261392708263224571298014667960322094648485979133581534526559386847497363406606794061621847788254993354995235126549917403427737012990179702472598904047061563181250899562186366518792066369830419632564489324626920613317722540574560717295295365161296833044110995777994817326533585907395731728216104868212818664346376037540274851936099342791860544734303009122103794132571716406245405116869628660861325843288833566688955100562524322738566806603357658285933901114740698484311741539581821036525217027531318323814326231551049792441227104752316993736707817747705155305188425072926242517938952250168367678245975062715519119377639034566822083473356375283494180187264362607158906898539802935326586940637282787296850405804843695286314108096138562963687234668114547463634440418383558907802330764711254434998187212401313095051718875070349863777705080750865927713704764373068464429933166560677427488990257387764305430804651285206054276353614704725894853676469572016572813919014050015550891324103013517923857547364859393445415277834619153464604350266781251112649746938354065926910419808751230910054557763457246578053841085451613905913042589822032090289676154401787738098690069983832702290479998784335438551878887028196661203086328539160844912810637585949638365772934572635493365696785196951398298039811176892138522936710140413112167090288828476526867312668569779104991799584648676561512279795069974236826348026201399550362501633911141649704248370203398401706656282589765256334040659844437493273817884327128674614677827015835936233664879303863719227930450788614668784154680970116366965844035190997793807429183479878250175330825666511652700155394614874362743603910976287138341259795091979561795445352322296299074396503421079943373762933469982479847858942408447077122963816947186831967720392878329215712691104222801896874043090515193736383393602782337957133757632482721534999797704511366284591486188853365802964283118870891518709496287138366970439093731800572426945468884942935008668550818103170082712826425794397410713947479907388125507656426721257324354383783078841331539797870482683331764257627594123277134637798977207080165361359591107332086445024047457102791941791479087387566515564551348516427291007799985920694145596175531738081092979450193840853912949752881883616241223396082157801314282265257988958249586737066934765733797972838459958957121045483277019261183877373268798121380020807856087294181535692068207369596761868316812034616797148892276861278524278867994588605986330758580946775408290893875437158516076579109995836258882026163168412096401190621619604146411625159239380795089628265694426082325589822420294773975221307156466941333724442874096491589683442007616354897853066969004163644802776051426633258541999449332524773281637096766351437988134552472387503890186613935965073248438120066893650807462831803801555046114246383734761452628937072845769286595064988816019449963439857395097920601736943619444615274408273910176930442842673247627473084238487113937595287874438915881381507308849755073816207585701901700567363387447777069210492747726628113106628453668021940927602673369313772961610452277494175164947348194606832477396903790243933942900304925596188992377351526567108417543809321995572284883483688615715971654092177761103204498042511476471277442361024702961148610918459716594995973507866286149064926904479339639522325309456597751186032587944224901393026986124304632271095742411769358831511357092748076217235945430193834283847312021668567947215142929619616572965903171639016387207499448345588903665666164066003017112981717515382236668903745626484082350825638915624552659908253925078782343385198011454981852954653051284251232369426188607014463440624174952033348033990657814590744497769572775462289576789778842794574129266116418397703965590921158472215081480685067199835835016648576277183428586710164893009308314683399874622102772481685635510890534622486576980332864115088423315425527866862085753222835881707795690213366806199008945929129638744862283683558300963202807048389794365603294370893094232949310993696469426160140060862855083934696542129139181241124411605381654676880228953224413807262440775999241799294316793785847133109309485350456606219296017739576784940952442965950389605573745765908589691453286876512327352496254133210684335476096556529765534091970328364255253439138996584672962545040567488312029738522234536578248790385068069397922611770569538531201429667647983461078209976850541218433789550748181213507676542574256003072930253074566402256484419119892113381210324747108249460476668662100221293122969007113934517582990806296547427496757180999879260144621120878007799994809895718846224192573009437748078825582623073192024947862992201605192070843465966857043870359532068542451832068058610013989673399667077343265129241722989712429763955051609297578228343727442446815895683092670729653376105628158935161847010368345569394724778996293190048114960193870474549270754278285910401894170634484752780934206980209108766329278370427521348633352364914397596079468583958479030514978624172240791505315925332912517176631738995882376402309559243974515098463085130018293462652450145943403412443030664615330072063595437581871629386641014091243085955811273870770778131498220822720625006976115324297536245421761327006597557660974417582605669232859402408534237397252307089885996039356250287855903623139262138641364405943433893383768076206489210159736434762080329024356547959004370000304588174455836304068020886663271042117079061348392361983739275927829695543403651113500934780285269797562793475203424019137695027651020424043692585032544804822117977396933103262421962682203425965288606338366510772227174864565452792775644098103945372948170852556041436599819679062333976197309838586995574354939355567681771506107577484437897724346481145674941519533386725002589149162178039769997378094114263002614817290994925806266569749289708355093422411632782516070792454500062094710316889629672854536403234089404180948052526492387773647087183495158832992557359107339329981820030428159047275035611307742868642831748755185329298545803815733047182823782930409672665798190229040754642875779667953388452915745188162213233597694150015210793353171307149430761377705061241875385515530690344650015452320890964320131087607104722998319607413547260045419824829850189858257225716270591902718263821545415773838606437213706698122795470504548351725359373619424435593242668881078454783718915741911577373975214809754121384185212627471776806623043811562738423980715052957676808270116997720973851871603658761061144991550329410269752056702996393068936538625157178255028351961459231423451022365689323487529336891574401181281899630971874230040061012349274561724002255397819647605846344091462860109256427667221991392135303598966197393132965780014976186327634893144523802099948223032679498213414860462966309086005545469388756986261080629340124326630585362922565221345311460925777572826430843823356241399411258933108238437228071604919909143962268443876059174965822852888711519850846328323479492999910015492191446268132499643355917960163536625754575625836508837480741759591723450830244927721775922912419937119128423343354894446072495804153421335046509846732595282401320778652089900875177860805164952887684160347420714493694792079227943453720708109607741864062914015249427561164106590321191112232143057684340554207597009355608051028889187083231801257677412395618330068631697562090582334205297122409673549966610376106012367193130507816181449822305462274652171120482211106126466053165869452869856081853767921528884374445348112698827583925725144806779203958420525218903608468423536077009367200580914061858484929324570245968443493827277936249097049449961546909993321465532374393187018956365381215447183915016314975193403123436359988391268617192782682968999167257507289449766278472320354508894946947006875203545585303878156465376824754035005088857640969968771593364720863611042610080812899432740805977467093749854683819382233162610828539172175816385441246496207397401835580677481400379642366990905632875000272518068898185654245474068615273458762076486850013378704445819641136384139925596634098306329106727181966530893047438688870046527630593631274502600189700068629473924022488840810025585415848938526266099475017723403890683583953419880386028276321381031573386620188156897709577964229268189147272716883927170272756857710137406064078530066988405331640748097174735020306524752124945264554383365487992929987969509384962843192166281499039242454858108311766784118523163736067454084229746555864787079499287060393726233950507421041285332658534703529332186507719871431314480675864361401777922122462233546817259520294588809034653822687584168985659939089262870377179913257904259406635094849977530497539502987318734613352641726950001839138079902952613978812992944126614980041987512027279841431685932337947282932785499899715092727336180733740811845197930776742017605773828733289846881138611993974177388504939274444200214035965426918637955793552120148468305685708287888154143806433450672020739440764111420527490206048606069129663376992644093400768419086387249314114829974027516016787211088832033651375474135277071512364195452294119129586772294640909152359815613822789734657972584652910369251003786774931987312371514320941702727028865450891720989231381732260413323213357987538049990840138082842302743934169666800641097810433866193811735573560722660346282762283208038579524245362496583189074397024494143224760779061707195329497229863285085313638424463749037506867773015286456170742544453985557626404237128244793816525975617222969885368454675078570356603153153567392042144306361031784401375894790602336218206592616968949974936609983820245264874802610063720037236827879288840437945779141355077341855930635805582886238820311080315433534712191431123921748388827690851090529922330277038479896140970247986977163266407554689695224376281897617009970823937844141867112462009641718423472914947806833830649008727184899904000977042290854744197807136207191187226210679171515492237648514669178716250856499429156384190416880143533118672291294619676243907611670777762486608790021188990155201887730985605354006014274628750474034619990662960374851398279149233446458388224421847705058013852040879202379273462643229701256103582574671340205438774370216610017276992430797859519387033339436485047198268175136534257206822505940957504526315111106618183276919155377734389523757215468317909288868908678402192961987312561614294553286775695171304935561170057826396967489083659896667737875945859760423199882410899694817288074232077022583458634702286271881579024864256679188235506030699956516919094256567512775592767134298275583183200006298486494947243731730581680479903923453560384654224917416683096959559139982796096776197505946396157745483318969061935473548333763060902357610299142253254355950345386916228675600231390170217659282772148494412739532478706036224123145320179358054965918051790645873363885564054977594863233860480998224207288001070043728718836429528967427063826918943318916302872044268075578092134655985757983206282303764800402153478385572405365079295756629023184716193443258444328098160199697177279308559246990574758766140269542278164792052847988494329792635411724519187231024353987043557341996741491713102160599009276508585285055170164498999398549718758485180595094310004089585014453226252746724804090346259134549166256674572059035043554643988920449193683438913110645399308295542125027939697447151886942813646105567494953546968968817547730494001948755706332252794938795630626752332134757932731470655835116873376633299825479788252566118508297905267605203189027629400561042661388092064292645095520234665883205502718722759448486244094176886703024937836847921884080506827660240166092644654311469127663517560826743130597572054366857691240564595301852965877339119395459832618412400835091527476124611519804860432344576736296846168246802940769315319402024589631469310541871175568202386818171986044477988413488136347743806489962190861862007117612706704551630185720079033510180078756027049937957810026062824436753353601222285512854448952508982582148680227403501179960154007532471810452708833453763485333715232090325796033191533627129972540054124942004837625924021874130666800995593390268882318341854097187344522231398592269024991933629060688783411246951708343279074810605912749094237527095625527656311807946281110214741726502911333408523165255253805920027460365049240412375005520617526483663727969420382104325178861685553718702309584274981174501500916795530680815855217664468975980261489421590524079242684608999501132138795122652997614168888111439716794306966932003429588567425623613427417533506080430133698261004248231213607983115598795536210791083028592484643700758581827271365104905174114474032014385483307578544742841933333823236083356356814571689563331808195742525383354345931101263417217174140184614057683102308359455260825939116226800490517239250709793246738411039164144451639147390707656386199551221666760949078090795524006549085502013782533390287026243702421948718512047797867170466047682607926987899595962569245586896047994274092471533855388167220399640993105559091441856313134721331241249284982485920800937228582289045038041470961877201068030755463107448229406153992217495547665204040556260082605732220235906161663543947672060187843049229602214727146056781973187883785079319415540085041179338494159667469781600326125888596740420473943036329292964378769130371997212917169354322032986463344295589492029738603849077543056819883383738201148359809983170071121805915330071823152971466509948108496767907321681619719005221222057249892312981953351697544489595268625375166771845065619850210101559082782067983508845633434907747832516951306603417367445801590215972375745878980715657569685492698284803350236960202070825889739883320862053885660921283640072582614617577594969363000277510239304394743418195798838742883564438545797396806817459776434440196479433729726429661925600632566455473959466823143233686621490882280312863893053124704644294774540601799920974480050419378731310191359781599773479150243832582629185696943713207529296203946088485622866784409427895363672095266453861283661464845867922431960049793569463514235426312099814201174652887266836137368047133048285265150226743374354586817909218502927566359117744561074658774008796578919984633768695143225913452298883539227855845155076357298036983946594639673566180913645653820216604646178812539002240905674023630541312058110754169854108830065075592989472203566980084238005916347945489359296306188306164698883613195341606536299447806148545831720651180934421826365408120040579798000729989069825047080613873401131269048275674209744337585326288737831734339400363289765438171187739498630461543288981083214509923969805333340408393987610037055726241953931583499464619610511341289784691525711059316394832480926381366826447094041627674319227428645737738209147144946193606943808660072651472358326480810133327405144112973149303199671696120200290652740980376345634329354627090719965258818249623232999283545727593477533245535346703902764539761555043935355376639353347350472503766537234820560581967589504837935553305308091805608437007543487526761398841944065316651014630055373697768999196250977128706180018251060933687770688444732640509477656673599182984033047811208577512985854685608232615627758781241139305119329861025941089499491434108112312387680973494023803315519061860340057527034951760886080929618585423941804420175538996146141307800013542973427115281847811301216685234848483058831545109147339814500281740977637001985200070952680929895644449953866056555382672389160968626274646561310133731649444097347222478712441985593243179845850581069625763744709991028863039029085875366772036398610746838629657795020275049063795068193188396651394069915252096457519213395639105967401075385693350203439377963959866309133079268965256928514112529977935918745440339587683374301642299515425581952535423906677181330897439270160533017560682364416809936878982528614352901980703456840610323292089739900189888934338047130505565132565166714671540444134768613445713433295659997373136292575819004222005997009081290930660820480990397304753704288795311463903950311353177703702695578961899228621007335434417205801228613580946731754885571326955296197758502653267356531382616270126693256442130706036585247793216416047547671919388813716624253301684541740311765610542816953179905029082124381079302490561327443962905998455976020190612738827074046493271712298252040354135708006560991531549936337772894387180784162185467902497532872094205166860211779217268115531850520590500546442121157991356278203498549644878989412082955402936294052915110775145989284253516348444624356030566361269527805645074639161756947785853265457954926990590763872536086353572507723820970765192999052601338591952988211297767217564863502360252023977478389883832550345062714970663828143042167218009942046071839315256572220083016238921029065517464728583815425697927586583572404992575479288465755197431500492269342498134534383368581292950945833467411276809201488663320430929852955875278657463112609300718565851124333833993757898543895733399012415288004724971440605031817180630042422119437657252638829208591432400525754497587406227546669964532605742786424109904556747079823054982792021937774279161398430268228534260781444006921657523612656089604736276686662322428015007222115601842504586293825014157539854296126545834184722868101319618672774165452130762179288855682228111391031924875427198094929855974138013838605755870067624928781444457209484242472725823565693749875575618230359660710610850945253490289360323964100816783434388699145674526122962442562140655683663872271964438499200702657029476909196399360692479718212021056851184359240185424125470588826604185602073911956736563450639800339116165600868553787796052451718951497161394384301586255193967331778613511638267018095324233249709042020133275329314288264123717458896524936557259641301355572354546324267145651189956797749646461895811576984734076190586782665360968597843100107666436643074766566557221065141566218923476965509965160228093000221715467529542031357911658833718408499029616024084806167193258969063404702458806008379699699666285149206540731577474130224578008997048404863753756472070398092172264418249312599735339350714408301019154289795179741154076159869751778555248444523994465089735471761617969693265706830292154925405360471842921717233993065605841558648433778631288839543468924492797442553504885628974251728306226697968079355137785074187995476108308267138961780862464245386304832700818693758995301574670783912554044375539959478608108194894996123469509219079764117401645583006982661507400980648740822370532755788003422975791763404982948026954428679745391743332116493944505090333116225212244569383337758027515373672958485275839238766396331930778183325873829275239120359880080447456577827106948699314609613864420708475632632435723271157463152137575628123591652520814227089302256810913470014385797533076719337463012489934042689194851861072508366198668376008979143013407592890958821132150131149155449790523231801411104067726705146731278305119712610470191609783895679410051994060271971881376513687563441934583229376482645787812065996656417089301669314398499035893934130816097813257045098273207745863980172895503231009544615080220274180087919810756731041130435446885122541709306325162921579292824569533584731122021768148761519556821305920639680926038856448795529511187727233955981867198456909785830848301976803235951217279222612267932553731071695478697075326706995056278138405357630122333221510902867510858882208415736089449827134346299043779704605746342393379344233816630177924285924940243379486300057746409043915134284996487354460731726161465765152639084078299581427198092568032193469146028860082728110858912951803391275961330991592160450667651176709821236212229964436583235146850949628359587389166289035856081460286759096553163658369734228960229829755210049407815441009249503782511975861399254545211755728016280217281040509706221707722466185608637373607590833452880541134688393284084560209463357294597689727907328201612908592340649076799048893841069441460959682709995575372474930324064518286055052090287652949764138356294196215513007219945664195681730059634170497197026842322227977416519897723141824952984851270787638876804182335357889742371708219203983310171137845435001373921625502805274223432562181475485167114150988611776160061066861798553446745201240826549542173959183909880208170163929548636399580101828058646885257113400069484726984401323816416033690407622754705896354702421659018467264064319243566803625270097881002022295490954656143117354394044117594530336177439596225722882545599804591456662780768638409307717847961302603057122617776296116794810050392505669595918570873106566301130500422083335757429523236695119539208830591966230465749328206334364692602068899131854776183335701457946699030800872537880948403894595721457067191281269183428914697051361111304199015763562707831662573078877672055367733787687437808279655070694515583931424923969974783246196715448735809489351378896168554570528231291343998261856570259321724092021650343790293695340712547280130157085686199494551209492937286255875665510114093099566331065967769182917170075676637840200955258339243274477057818424232667633035270569798741413238096249321896080686601879632239628739427703228422573056920344873379088467322400310667362652071031474053163252461983354080939543946155467967516150736815605605177955797635015270225116592352443922188591762558375064701366801985497198772556982172363877589319233318399855729269386319496874972373497056379381690574392472485971925898449866570188198154200237189150305727191358325386439903717589715699327701677948525409516519521649961406762025511703174226032940013582178692857023280478863853706930888697710849967660249973813249295312712003996479802512355749049737079237072772809910896083591961448881519035585268118215751510646782862912529715688224644574216673954994669330285292215788387650665261144495165799826062125046750819403564403297805106534881227468314836146619700597598180510599170389988571371223351832293271617515100733810044583808367441744882325487078572788695821492558227903860807021944949889114588194864226049343972129127360877656841614040432690897912227761647937462065610596116744854471007200098058122968370609039972576640473157492676526970337402432863608466021751489064681287742223947775834637261240036169200098061544631760949982094283611945298699833226051074771963352785812378551265679846737008430046718390463829683850753361677320453201962093064358757809287054324263608878576538743617755524846991644620299199835783534789557705776696324315226686315309171199595128483753546809754332242520997612702480801181234186956158316867514359235089242115938950452800880627927804028885657899766286127703163636670185608092495048937055490392435988281341155592480778749741666443111294687919097871262407908790229230090411614186313802512177452167080797208697060113856663372637192126349699486034705521906567403592231127762032980100170754368480630009867601269522546863564278527209852407456683805155058766816182026658338234018056500855687255504747956222157540105437813276654831748612063063106039700389546221738564669683045344491992315043618927259392238535470519783149359109672890017580654401635505736487353820081781325922650206256732189361959050575014310242170893137587719107073799354680098263594267101790383912337646715230363860331287120840423914474219440769863095701839094372501213340792850095275039602166025105994424171953436672843942221340173851859049439479449782364596416205872865738028987644383068413176868232002439418260937272913302275276834930807650931789130584994212740217201675509229705909135095112435941720219101093596977972055871526805981424619645778239608014786455660516768375771807190641579212715372957448635188254342362201863969653807050021283439796821494996494346901860151933531820709181086738740546632600223519743391879144280707555180187344710768983800238161794546407611860807415995732505158774485202707021637236830138321086717575231428006934123323221354232842836281442555059348430033816226281642060768453378354882349676435546287958104443478375833265705406171166540886347256449613353558708563055376675684868956568061709434109576065164149019760003940125646931223114345177000653433257370625343834884070703727436253674934218312658223818694591794849400821063978549383359717350409512700764875634161958781603401239694188824380219541030485199826197865450101690664620037805021399138418941706277702488913720861573678439119333030485251674505274232215025714504107629370708827699290643846069382737833104846943446326388514038689938811645756741143735421938415820148082978383102413607680332103490049453235279131342201404187461582056274499732460018501327608247497886241975343184910489704657537716027006669706950303171847715011703040647030277801656088218256271903281975386009662897514311884548532247185692023533650387838734904807797464685285643190942357796205999569493688106576868373044740406384901939625496090075116049446788345375494397251098950162197135262899839026207571289963033031954650129829183534290994200745357971250210855116402758717363948077340032004731369795018961523254031376176773884808693974888276135317177019943368571096484878064193614734211246789885844602727755082773836040094704684346742392084710333432730802725745965637373341426317593644832488631414053848892826723113068491718152310046725785800277624744660707458072671966733222922685362016119777059234792605231317072758145514946135599288636538934038293755425750204767665790020141906501389963098209144746376137306366379525886794635924497770887445311633386276000850799053163610463153866642563866468524665731074660888322950529806754637299634529047684596275281681375703105518231104890530426967244577310050177472837899423478568646427603947453406380107008325099046534063790490665411625150101928235390168770699385862236265185710712432584262223713759097473165089364776987271639188772785419368271277669465434950312953117379356064163534858910048441075636504220661096807176745879140305058234467826044992801389947854631911202825912547357842892006822954543264161411561839851598260890135001039789573141859626176524865651244356761916794035796267738941924947150786924395582759970706771116116488045167795080058402962294130609013910652909171936125710868934176844497258525945540085180272844222460636848807035960427036558969499453739063704617636606609453658539375179647408316173461018033081391933171855166360450239348957613732027428292812209034344645216899527383411962648761339371031965809680577664173145597735475469397302410178016474188866139626236079779507142837863663005757134147051670947009106062273020534888253846448240189592165876559636908160042953214303539018406939563395923402781377080128491440684014997567439525019198708003505076519695985626630678758899283109465571262070805508322123010895948750212801648677468031050081456012997712463830818655850871801912175651413409775695874171144223063378202554010125118476860615005742419828271641197576085226825816174418477128799210642958553338928030068456294896408754032064592273101038130475279001843827616147028135428144418310096398896950563735272272462645239615807672717474542306247674122880118342845018701146275707734079415240195261392288318583602926446955941803650184438219269259988651382862312929874075058381441814672473944464563629777809302639339703136672925914825200543218885399781667698243721461919133142476712509964322963655820997414684108664525226169382038170377121600675662185823970491749126337403375422252471983342217879255468737347786970677220069770121735695469789256452468649085880026008316587172481304983433310650261683385445401891950297520669833138658332138091449659796011295430890140834933388018243700404064233328574701472139950019316768302756051573903271599550989156635802301530120671845592501803925051264661424417474123434313641439504177654526663566572337029151433693960489755299001956132510128605909025636245694724469756768101768596675803348403797306475968333752152534103867861524725146732045088465042353857453501993403110756633187693950637301325395548351854713283744965286427408213703555803240802617044226789178052184711596153839660095487485278592905107025428909294034539309310969084877039731358024730688985175215170199961763420136525032522398243994356634764513074190090151315036594832194338500604154658828594270705891326630526218838319122075285756967740566992491031014712695559551265295898765796762725808071049642985012836913006272736750689477108761317968532884084630182424336279164975517462871338928128052912641185723547754356929803169406327377552299047318953982784504103754087274953873359092975851207963165310731148290911528520908032768901364223321892713438517703513155492150035367153234595370716861057166464739430692337327155646109910151654979587392564494031494609097541925896683441816934011020226958818727420678440364166487674695633764053136290471091255301601678214527434177405975849308089722990242053054743290858881235430278104695938054228434097062634374201191383094225825834647996924350351340621603143318667335437571528482634259428523553827590459994425654735991002751429470787837096087144317890472623579071954567490191697786070771493307188141271137014280106079764093855479392888423570443581933863620132165359391380689899006678003538829235589812877564484901034712073205011815608972971276880035677649204526725632984773427393212518214537759337170225590022150339310829017606929345152625043911227517471032943100844919624539270264518012518425178083487279930271236776271011997831847622661012008056409858188374409277906094334156838717914441871946928322266343876539549088750268376894701095467938193987057706888528461957919578675330210100720960625268556112422428141368063211147057405246072894678333432110918025050161399365897905191832387838229455482158854266073646289670778003966500209347417275855818467175156972601681719182908186871890486739716741322775187415498842189930350412700730284981429350627514391434573290429147541450114397866100563965383919795336467548236333888409033039001689070459639312424453811052497012011008854428420135203181410042789368197158968610385931663362757113995961810040099020920457515505252636980080548531952885742615650162596552025374845400430263423407409956050872831910770954415941629443851679424451619946527357489474261252461874570644217180761750727590934776404635413769641998311457877402032275393751530677422485816754066977208890075946114348242266941113406531771824277987063001318513239207645744203249049945873928528771972301367609554883138167241230616406081058971457992659453850034774970153320770596716727719852476775285115989749450493345245644531213562917894965279108639633610467288277675065133609356619171288203333436509253157633829145972845682258853940424355293160953637004479692877809391839030073258273104663991299202648744284470354223807193017062298579951412205231539587746774697765318987031571464704605183311188541869421714991907594165629336814060686857698082795640001160722807436917439207146766593268730380682605562041412550854398376295584227766857286232502535008101506956135560119000545510578275323944161249734487803761870069464550409781384855472132698105274559292422837006446938733641377977260545199177759975550218069454300985980456156725736300211895315803667154288906736212604839390470864078740262092383806314085378261912312277696407402623573370160446415158483392128705740302666267640187539644869302154237718863560339939242097137403677465042148066547205706645443232276633171914643317239239677851872720759387494862729060068170515553242154379047045596354954393022540456985298808906841662099439454675379117999882415071176346023546569545604204806551046804719093079831240820212181715372939811851077799928203852267128816066201858948428654083724541547107566182142333139355234564098583376979432976238786364183276987234339830973701279974284260852367597559776941894050372825247479274658295076389627425264516711417326469053491833168879362238754116161150555355763861512239816399688288120198919453756004847512799528208713015905524581412306739979923492737238690722097279616763836491272041172011258466639827758752456531953005804013709672375535420528709421346187450923801091860365910824607687749865836490762337249145690751536821991473100623232447668371669131919917412997120168937675672548382218347934934766603679865105215170514708966133773947143388464774622139791307404052591675614242939931160136820516977261124237628683026580918019926235044558672797769541543046780565195741044529785269146607259176907150000243338247295447819912490961669031865907238892846295768000117136176351284776407173598613650823603030780817431497650399997202524566737247839688391781017091540427303652940524777133141392420078310454962617340991414034540183266779068522788411483782772431968489126911166144009910319652966190178105768669890501485972916186778987015588455374479698582978254651738991021299759957195300354095395870160583541097062337813975032026405747761176033214993851485882926720658512751788016893503123367276059232875426343605614885655688724268041799645941903732779074487102992345044303703263146511995406017030341394596744735281708150146447529921165109878742554530008752535693549204682140286499324881959773279590163777613350456919887602100306701646467412498462912939703360241823493192301296709219196273399851800649652861785518840631571747464796476590167080596547317179460343202139557638398414083182542378023527684841562465019956660071104243716334687724956711653900230073173805587443296575319050530679926748414637254375615580119534079556707001140996179296913953947374584395118657525263211504245245351337037577251749280973931848741729609291534087654643932345176107003141014571623046232074460929341383877911050729646206201616734597837917798973348021685139750335006552809273848718087259767953225297566868373604033377434128824137867908981277093582041053369086083603190132756212811129566140833407161625980648859950355220555522894522251779403606641568243198706738839753511422008583431821006260410334635792418079644518219932656091885994662124952190519592715261699424164171065900367370971593757977839385485718025037339606385980556845431419924135876149956743325682989643913465220886272355683284414588406791282514191200647097341452847687361951893311070618613333180074272541262412225371434314489547780166847240040570293353990026160817663458094991158567315681561305009415067089989136619484106809988707130627078961471569179505376958251507512807854130518698931516141545305566811450808379363109362746002553787587022647342478015764963379293634987274497126982786631871766306849457361239076966386713826214443130382426028282426005198268302285689271176570439392825368873959776386609142947489813938351947278795023529268061060732704558381569517948882249741403223130565201668363322296043141884419671848259487488402885871486027687126959595797278583025350203721627027699346934221399585607671542817256929759175694594376569846492343898057975604637122282371493621192309281923314532857306809637396137824463804069668160529445971859136456554295485059249035024598660104622442214236353272803172032636384269081041005605937589391022458256618957764169380976005848444883743738743128782194087561626211021909839897887305469457555674179966092800409411127072821882337727032643916489262465100116228842108674919299988515784057262803203476729467958094129650362081408385577729103029789826617759788402362090718488266102594488092838510640485917207248270618319475685781394509651547233076043524937660738830626108202177042349969185950929190904153357747188740244680644061244765987605352835728638736189125629062153886364375278102558882563621646718435065846216829386137310199134120446121714287744932071832032911536686479632874271509901455162652153681759639267060440446867493689312834417843500875581412142801752207255516438607275415844249847690938084043039232727378323715222459840869209319994392252525941150211796271588917588181154173405494257409298554657575369398765501459054482653204379132958730528220455007655858830805814404208743685358803735238424541675448167430629631857411399158912762094984015819420604206066807312462223974756882744319790798371341874285490659781011616941662346937929750923696386819230615607009497915846231707432700346982916106772148555816253692456127088099495865768462017427541805793162924714478502728489365484491554360525330316998291176271059816267272291364536323059841121690190549163698644287503815666854323568994266363746713079371129202583483728137520560182873652598808313033541064205030143827272041861784906708866119965143597374097478833889185350402134268597290869879971305180681297700396333346521868773526710688807971175954569736096640428866721520191351269930912129870476355628132419471317409455584604857279209406796529770328485780544711646124753101441307172483139935138737260742316226379515865131270127640618084484114057917720121421998632441236179416326726663487212567593256085964135589236989966782720970325709522292993977611339779872664578993833890244991124842680858704763830488951310071409734795777109057561827557144313382408967934129831068530099769038139321327643104459356188451283333526725459363280259563002391404206889111254093341156391349937708531732127437833219071339522540051875343659671574933147749304269730531864542277980528944676424561294852141397729101196673096085262566006329397854389513060226731521916568171977468089499452953814276944954827197205153057814592037157286327988339849656843708039764356829480850396266271176966788706272206294450558845625631627036717643056905317094417667203263421099509553596773793618583337478925309009408340324199749599648817433621022800876199103401483027938464768584048850688257953845212853718929880346237111777244323634716758626727438819729085961551445521178094571662832744521479351604886828886893276981179569576991506140436502480348740399319152552639210865927099522111507326527789244275407388521606921328524700692296101295345925142101898421204227541329106813632509351139018149267709207074266279360267409540801059947843608920707379430782062314992990974591591209069767768000319300200254596623508564983114123358800084887828422894363583226118717055012724586321761634290631788655050105188235772608714239388853888594361418271501581009890452340111015084248924948533158107015656329998752174001725906291577695333761382096036050626236353270192988043428651991274244908077832576296812806737691329400397559855519416019352244781384495201879339362547269727726383522556375918989811858031566326740713471080802255145145433693927846283479707637817669410501308155339781162749684610513547478907034848994963159872220555045891748620058087964817775934448811698386716265278273718616798687112667780506669092836460431182391911533339787697579111985830834565683511297854439068971080887237254951567854306701403486123622379264527920610725739601585326659612658745367974186312648949010203264407677692627286951040605827383034835861630897099816929246742057471263922081153208443039641844989988712147364473075730663864613757601720306261452256383636659977012003160475889364576143917954560466986055647705996091692117039798977654489222833157493301486706179499419957082329922446929136653961152304273065705886215335152200057283059935818051506507170899269243937238490840046318910579378656005414919922130072230107976323897205238063942022469297094296890137125290150942885856856718632846264603373060755067637743193107390453146092511115644595481375001304513749964588291802662892500196963946822726250649934454973530254324684815004365217688324714962695460096571466084759209595509735104233058785189846639773227682895983961480092513768282187816108200194972798156397131705887618954794870689698885572818531781078011339913579399774974264714366659207236959111080558064730925096825204173047196945467737121747528123258725542778760723006503267435524781779533078828245416020322024291206284507727052768978325274078901811865626435973455317516424764600113868034569145172432392341421927701086031913820401125906616012005246265113336487138051941119425283814027968478991295643125777226212597597375506224657524156908122890844388967925410456448959795207738138972325458574956301242335476155411109581225635989954655286732394288928499540852715892895941101850829499787869076755830560400353528549116048596068607724602781009702480905089594260822089731760770408585599109798047933853728182403848894714545897915584646506048713464777912619323028483769117135800751015140463741394308497132468338665885003533524684747904666087935739312154844455441385590644263912335352421199154452573700761793631715241205879119636362701151095634555578364005914653417766495941054486904255509154070754296073373913273687832039891870335897144489517540246830501173946280103411560416863292860945943408241549127557907213200637679654717226877313090599134232330209894293332265136941072558845675782921533816020574000306356276384834371116751383555990666542109786740325608530526194389674594292833319862408461297687687307882100083431446960026419076353328188790852483512258512381597262452161538085140712656099471346339397004539828212019886147860354937347185836321319689013877011272649165466677358573991297703011318401710648394220791300218290564883958370318767456487522215757317694943780782312953072612885868623321001963378453760289873561991437713444041002922521372344347356390563939333910749999879621354356003547501887146040033416597390423257996823125520098518310705554279905407440000009527438880583788894008964071274918640698898379718542885576403149118451608062137290934214713784781732625068392210010496195743115272521726163840892567234749162165211356690262785494392299446872816307632199402994800922441799977678074433612066286700436144748659499804616079634950684321200984305305269300682052970535501622885441781455168166527933220415618755768842035623686950723415030822393475126607400794547478973928773562780026657858808233713716772822977359613213602414324143097573793561897686487482861415541659088791244787506944519556551883788454784681780598962212957285219914811719349526379387158081322756187576197962472484358601945395122638950109048810476346054348655915493674100038572013223229451233828981228538668584066461285691511003971307362456835417435638265656887829306436969141328892054192358861950216652318797798492062714152353448932843099313502446785376292240185633987238489163846513478831195500879196889892288491314574576367061029930908362702465526710419686271686076887148001682633379317462643417786537618318584239122752451654967330168911806053292300877376682242923861206979912030658718414961406279479473722948777092051345056335743241862323909569559928660368634337958748059494558539134103752717908173273415430658940544998765062537108346327322375638161963598773103594963848917634083497573836774009547794834121807760292116363679208107241228956816489931139151645328349956321844566937707226402450922374985887768999102051865638184192166272184493135369084063370704940774978471638655869576932511528383182043208512897532109605864477065732845035154966280011057846293046566941184629248194812598496039064415793115090167908115343605918495987792617117523996655537902688519361520615396815243494495902326424860858151063970842725542051800355105144389151995787365027684476979005423279713741011359369140684223364463034188814411808578453607345427647330556964496986660858141652257251324839245691455368574587173086844562545619096658072241574805493163921739831843245064556005674769217144509340908489398656542780857076564207303763291971999110608719801446658158856987236534249685585819737510355592500919341789818880013344249760690771452161042128998609579482485392222733195005536744011319669879408078780107186773502438436289417630207638075290558701352008212623626483326225155072188413006614136421691596639194734570654932039049802458505148239183253353758600726972880617921188296582585120166381815827877097757101953355788023215855139080037095895330071769536285740282307131094024269064361209444444153549539652729724481360817881300339834332430232138090126887896392302426450772957132285150674950402769792630992941669911814746876529071330694194397281535538345417737091393831631898194699508163186475269918021266112851606756491150180537063739444362978152712724717766745777567003527933938222524939060757361131973656458974424886349371096191103322236317777199481595748535573980687017051357791776590682392714347047292126486798464922691480869721264919252326633171102468069120527600994296858487937135794172464342287707958956670382032696820206166937839172194888432847334054084887234632976067834837742894056649808638823718055988187329997583008548313147024121119733777641501022773812424699868871167216480436637769688835029380646295587243989920809586802681199922539218940892224271038662506405300471858200060242865100562220167661151984656655158416057229681982829445373867407409913034870906383445390622410885097817925848333505001960024541260328529879246741133269097908318005047578484196728526241278381799486003036840056083037171400202568432061217714560650916357988429240642223955234574661176471718147161865054295173501431265340864116261877149863098338651041623626475736890679241767793351055421047092897595465093343972115033274000472236079862556273703360306078190551513015712243084277628840323121561159793286812583206310776918730624434930768750761871635025767588759942728980769655858217122512402366785220404027122518902656816497329319395056777928947333016099096219047380031934694857717457983378809529942173002108898434626656321932106826912219548534730145245864506681119945549715681205919771043459533388707370016060769790878173718137095267045056263590914013512083548197010289757429831305020978204076705290583781480021510742292674974239784471714991437859142454276754517565291459932414756378008725353073071187205595910973657326897017420977850383672073909754211582072207448319205068976391928959113771561208800414996041406672663811493951775373353714335644811814292876665207110890947327289759145293704157808507524136441489828125964055231501931392446743882868372536616090602463193452532612842845468034069467325665206314151176890553910258102247174858093013528567472776245082687831373987009679646035584593161536357697011910593999919096299670122658774801353416694872195013506688723628436879583978250593437567290219682957890288097053455784537931489906398708567478180187163993550345035040850662451317489318970441545866715683394812079466244656513460469468570970617566301256306627546546854621929237655771242179012842714592533387106521573370279526920805754309057258119581508101223890066890716500693932450182104975640846403205022936649501149127728247040720394179647414595038404869119912060344180403643256039646520852422137298238362354155445012378133559936445566155627385401094954816521004808065220031783661263081933046886441165487039698772900998586439027947444818599406742087459634668539639142207691275613462619429458002202445945865105221968052489684424928248526602698001622022435567521551013049369303445169338770322563798205915313636185094788943137769972914280747159111670936067129767654808006866960870154523554277695931407260962272569655536935183013972780837338056690111225691286242456008361278477532602974085744981069298271952323177577508802936958583745510420922731148827461111852660816095010964531006082909562734091696838932117373847789801019665496833206524416830679925773649131096029929215616930470326768081042253213861742091195723114756254567884907234421196273043077142838095280984255899486279097035574975345105574364790784617203209947769937835554608428922590918391521212652083932506717293420343994667147183222613888492039020325759099090164546366011469873604733426607131109863686561062474937644705654755414404546243981491863845695864948051548740079508111187072272750891682314461463484744261909466784186142086443505782866600599933932396794590433547648967866336775696137464160086992891858817194516634864897706172179279018139651975613404281489708074418640371147785130546234681120592424018774243489227099354480929876229113343825446463649517957839877407103091556889136536696910938984272788090213970016524418619596174858579732199745766495863488888443775140018389420238349171638985685656840878291819958116576418575267663588828314431738579212078639916256043709371628736179971453094564255799045660552219782269730506442075890270950722451087929838272349189867173258777073882083567291910548464918780915534726688946059908067344693560554143034828487967139899415519797895551883441772781861341388183005267995437600966277418753812305480492626293048394133900583992280239175715733038673676256584856425598139972889526469731628803342163938190885316852774643706782803685606187983188640353393930605955217894636967902338726082902774292685917396347360501754036920741127375345555861584488927204208219434683665860152807490284893291468473580880211553178083456915380823509849174154644132635080120310411870118727263412263178600358943220641163567206146426783727669849729154375281438499779842974330052486950916776648598507194086911953923640771135156027127453592795068472540561140778209214135044451723847102897776097748428533205610230380080221400398865339616234139535586921741217975195360024551399702577724894769160304701452433035559333099890278055006576627960587716919365353428938473537931024584921630292886935164199801486690756850220742525602578333792319364042674895456775903133330710226201807993681005538786482745458867433828635405467850389296997625005656334042860052538614304626826243359737787913531663631576414214308451256345511583929682731671812234841061835424562571074481505060786191787515513849016621930708679420437572156573541682837405152567400853594714547887809644868313951160969699528173235426683298050402395574017382694743159074163275191230548309383375860435013635448391727094851881309707200561590668038776231100061397656982812464870214053954409908763762792473684714952369477054696821441826255449244882200020741845155367068107052341920306260330202170013051367950460102403891678363366161724078437136835488950908770638454848237993796298585236481054852620373124098375369611166573132833778876273963042256577030517667086990474223568586919586559982270559839052211571970047179601567137409191645887303821486161424196432309010118717127021139108315930563184053417290148121100290136932293948395635953130962546170851889859610926198846594079101591445541053847175644324353528460416874630216124578389223529811023073181283471805682419079675948880960284590761889335409546464506350349358614753559564810344532795305068313806791172991667094576888905597322815861272146373606249265733174487278629400217495241117028100903748016587554394586603201814613220225657794154381873559751954230623951120826312305552865523133515597843711413903985838839850861165118784881265621234809426812820130531213152089890581211453512486734603501932882236522069356996047373333887048797320514077997231394295908842957445281766969472336678294929785032415600925713382586452145839956168191849877480285138687192584475353575592840728928434732304332949911731094057273246795241822950407298542364791572156172664232416355186795736907903059313791026365771560276807174297009458843612160240537569445125546736205687677978136219300780682377376892167374672393086326477106241285933482065716437562992438040572058978693210331336198329561918197013229649604403093807596229917773595263277477187067837400024392577326996859803530813573452071660460023474079051461793119438477492674627461041066262594053016246474748406863858499297512015293604380673822846250803536364585614156049404678217852276288598255553817513446623654901709124868308358450670616686379537582762980993161453049335485508431343011261014126568742865099229421428709057367865532905207989779417158703190630317421378846246991880295709907033515694261223355562952324325073751886075672111896168158140800856065758430702747948614501034841341569317051372410794206761604703457237030767868540978347659846729716699793901690466807923457366969024951840086711311500545652689674193947835972061219864000407793169532688270220151091425093964739862942576445407457933437950470308494789702477862175782485288319532986708369241853656073814270240348147924565002198656596758423266187019854132894084206868645966762226887354936919547358498566731511142310898259289573536841342555826996436344412912000916976370377912173121833773583246593851065599690350235165472521022480740012512907575717310200454620961888318657732241976378705633929018644398629538241980673227891562125275397676792167462006533209954271305429758325364332148210103366478456847688400425146219342184999555558864159631349732019785397817251845448497967482270100034460213761194920792715166224066557139327168137229855636982663408149833843261240214289720183296040401409606134217602881390196785169235467506110119136485802015252141881360587734905706890959198475091205033816198791443531835100894938403949188786083503189108142319110407611207890402239272613687431778335830620005922783175961069144063808482782194914013884994696895800621182011967111753420342097048811796066293356191367450641230878833884566028791797727771843230739041035398296287745234014835453212647728074146500093511092143815712889058602930521911460433635922120959176391689070792779512592662248664886739533259691878191182786757036853718632123227679291109265366360895124466647105227865324697215880501600003235122961854510999759178427076602193353118085636841231404274073577226434877858205935483651574378462138853868708894658853604067112929601303469112961507803754038655820989910132139140235264431387789398689831232102459491977858746993563992395251109697196099435953811723495051911428593482410500149197050266226137715557495563210942076366284071142427610929063202450337950115321022384223309657333478373580134009021966612374218958279086058286758039055963601816112252495330973280493191868471793246087645001462951550147319572889634899691903038068809741529267618578717081406322333751937869459330342966729040300884695610008089849503868683227177693631890234010055880708330909700857561065451452360532048383937482335365738015326859237396058650723279709542701988041647339972485297195427226202349351339459692898322207920750211825639251220731072171258308837123863213191494129476137065094602041120930223998092152483005867892524447259813299347803629126913385132672992274642724309238078991143254771595224066083289913127835529097081058769977904092660715188722193612302904570927984367130190504579292172465194089646372019517229562846414967109843893676366631781408416677199104566214829212587989387533027252681983501128078242096434955841459262037741947532757366234922951291964647584282669163869717604658074715214272920592464788907320037632429721874786398798222663385938066348810037583982848612750067113378416682989372450748248827177770946078327853363772920989463550835168089197794624768533840931860738439122539910572308798430428281980532920385930800576396104104092700536350604180291329009506212336054468497204720951996716445263210431011898250157399695061109625882005570100550884562655161718809333192320549048935000269317353300816088574346383498442031367058285437445686912588437027346632028050510482426379072975361928044139486355882036242567014882512518867264509382587271549592262496851284990564421619893886205434260521290640830593874864295468220904377063873653098886877754641158992676265033593867354969617534938240705431666262236893947985488345345575199146634881624443842925849780245495791816787989231285303359146627312384765174384639894894003342512614336850728954206359696278151911205695494850188826935443334634866270886464382789651723512480528128701432157895998760569862344519071448006464887566125833291900173341565120452020191089278729774250835916255798566681333512478837196695150115759285148098213227779969261848429669277245514977699610019930473575060523851995708918550884825273552219978914817106301087466253981205981281339302768836903450712698804850663200008888103895719308982950214628718356255172205251333199066371132933612730915852012540453846850247083382008524504501126215218814161209163917211952394881628668104882534635602194307176226394078731391642509161631043577045339288981515028996694860917557380797553380960767021232971725706316989040290019933489134216493874997765469986952077590668515955350014580337904299513041017585234372423197895373832198531429373933005319245433195820292162820901435829677570528274383893809140057801992086293741542307590987811522215611818916669316453611414454056518476201132043580777550276960754071247422211470770928510727624815294855790288176474482746239530745449727516360645290209136410603819305711511160511892960811549683100921734908296930281082498724646844084740616581932679575634621672134433268648016045050314404514673710275297047680993423140181941938903553149602704698232704984128037653404613799918778060414840866696045435690531899265298585543415733939827264589526011947115463323000410764976399430130642911421329934657870208738608715216762382809539098626243777444508730677185837008635360891788826164624669531497501191527194019608542700889607940992348886558791055439440484116390349100683389032195720337419849050584254765482111718515622907931422554487065917755869314696981951852509166107233962469444646665120390743254936833030113600965143281037358235934206402491064504282456017654175634870736136866372117219648142409870110188042665609116425655336078647889250426603931975858626403936635826892823636848899768886810932545870890735812335297930274585919327422163184734903894211205270522467063671908436566833667298331744452518359109281094825336914375775572137862633846060054958769864476004365015524239514483131857180803345657108627579829642006634905560901897426472055417045865237688064220993830358405836975648093274088077910676862001249022968810245915779638515002513664218013074961554905189372637674958888489382017717988020898226198568236302956929741799449129617538773294748837508147241092440975064455699804579049448023728575929407309887939109941712385554741979163069850973151629984544453494863101934995724685099517617607570767359224017151916574056079627423771143254146134218250890271909927489271319062615930857933880664672276837212314822724741916321351144432626945160518200586088035682538219509254407341211941393733497781183016955584405143845367848593201019074136528055003050977184499544613000808121275150678024564593199942494603124748593627428625654891777462469808251588064495660373750341122890798047389751181258563058869940260954848142992610990764198649302673740858936896226782861230787664204396997708961733999983144232048312978002059915580908154509559292534203132283376362056865243283491604931048455015862788575449996712054283574241654059005917262041041523777151380582985864928683590501990444919768628759746197469197514897174824094798507299452866799032683916364314714581588692929795862055265598440049074572066301470091564380693819076439698971474647499164170812656231154628663597583556110169788548733033936566655943083688384602381765355966518651285194457439134712845978429347157402700793147144653129848064938601184566133305173164651775197082157535236475666571041017282324009774773684730524895092315411025501912300376697076229415031845986529645299341750548589757084848838108986716806111093649193313354543041901249758647508769919531477044344068486803580702995447470182289780002920518406474045790553687114052234812281335145133203817913910377720033731950870776468702798417509855193081857420566250300130182624138429372695698056286533731963704334038901832502352524994666229363605016589524501902053297799178596660986164811955575512258207991271486605532477511783060130705530536055231102115181261102015957854995183162902787993336444957415862692241671333914732565237839047816723176235114863697717507068532319284624508684874230109251177799099732742609455073750084202361889884395453028468791970249635778806357177970189237309923094991716849248174176246252984341035866567953280206044815315640361144871829759432559462262499614380443729578716093718974858872677819114470086949214037342119334840221467082972271356890339682765007129544790630980727477615065741911379956069627266997151425019555052922681571385416806225395534016580722701895229291194361005709052670661527713799601381690187228966620082011583586927177058211147468742601572763319740330003154420246622974806149115475131298496308077966477609518195810509249105920775441986133216321184382169045675784204498356071361684239047110958419620894578793210258896173477258565661059095241157311384337339872511942086590503709322229324607248976966100112399534119729133268150959813461414590554429785328580396673185465617311460344453725647704567899682234079746550048203443079367277222800968188698873832033487147994642250345447825820780289437120714349227006688405769374143624033631074458630053396987919760557368047126278721113695454363192620077451348527299400947551196362770732265343795701311626185524277118638906216883635954188158777090747372358602756949050506842545884549012445409935043638646664096215339834971993051530073392236134960967486929924869154460371621856321665055260700275000280062443042276563536748903997687008316532101508748386437411383745406168108213987230188266606995116701938808606872033221545359233742219336450872553406088021826028778736890599675425705875380610266898191487966708174263640824988781276385781501410212123122020811206619642476900790504619535175643996451524737373015235674956497971262358986287623270933380723273476204962827349443622226371123221028602072883599952562801463766630506136263288010967491408997954500633855104000188809000533083964910127618025023015764799181263162828811580932693196926998154874653976030783509462642012438815246580819685547021984669382131808660934847509894672938709965544647463395715836941014992411403336906383202691375525095599304394593639638731679157978166324893412228976211087558807984210371933848597390460839328822043605140225316234040998635499996460026980107596191178904969584713557993920287932184621920277853534483601716017188003526747265329778633085815759145508129360124504069493967459164866221988092147347208158820592873888598902554360983176075263829812273315720188806681709931836951663412440061289927539515191445641243962482031377964035514858921578679390596584175464013834058369575651315159117316504232343585813968052946232799707363453296934264067851603672856843334271880459339129048935799540905135776102013360449663370171403936158909474810349953784813559473837217533978571713394671655580407959890148456768135421842751913135155954708155059785398690189272692105806145414105552247384510978270788742059355360116268288689604879994501939829280976362535988034894307179377708051164771882142173558939165489268611347760184148044074270618303266212203664395539264715247283965847539414570156891402707076514940725190058317031690086715454239493571549978655738309687761664358056532887067673061218943695628033422488174755562778139057302691975385643563380754818352003602039226785293384740015336548878556276625509340165569599293972481542355768369887899612943557045585601090719091308156549108511113079446619820789552401790414938794527359573121194739490087335154661773315338097353411496316331639751879666788628455596474791419638413530184247872330148356221107354668289344155964562845522469442689315598225415952947800731457672355300881610638188459042686856919066188978060124733303044010197921290989674254162881612656006036764519513880446423391519788742470294255466928569988169352311250934439988263278520784124915381887441605506600390682532778204584822094024768607544193672088398870821224469688682742843939047882822524235832155802089690244318795691927367976385472021998603293588114772687527021294455055596607486845184607202380055983456502631734703562390375743390001648844847300799667245156703501537743601049655075272206271552310839427198822728453785062099149526859842039655724233762739757524029951522743577902080951556045648536461544264829496121887897940236845985069737707679444242284386454936973824536688761255675260248480389597287095908132346049094552482337071099602528948842565262793649643517571167194490743190031365073891812729823092170241236808062343500425946183884126630978199058258051445499665911842154658720983153937329943371623896093595200035441882265968604931001486029681344514405966176520593622892050680910977901973141477313883442962400587850103151211282648192112151563078316309619874131199258524719469518031495754918814336003216793565914685363820666456118981178875707472260803529185638611438330527127573963563539516816431380389734711507780736017552040609043103422419815922851256481175061501997506241601736119353346506632747629241183972670029166013246144743029347434720017370551724214753188729889899221911830919946924573382552888990511993754276715447391291364449094242068704201757818403958586249216258162705300001721743306088410533339273554402629395339845013553179224362614163091086879575599731864578779520357789612853227645499063690157024714348467642122270067474342548199579572234221008366390054167248120512434208561226325724152810068616327611555306333976114109367068268677658961409877108568757723660845876049848221008620950775279148886012747511900841220549614051602113402207325913783635982702344678013543546218515346474191923292338975915584014404277994922075638987345426527917789157364475093895324962117552351815181319741186834437004162969920047839592737992963790738210242790165481986308214635486439380565372928614207645030814406892282944434841585059687257499773993519204719523067312043140554201652620861365228550972587473549229154418378594903445771369239308267852735616736643589089204669685340797187123508120832752866712469450938426471398796853729060443917269401433834136720764384893299822524118879944954599322232569036015082614726404471360117738839009584403010036429523729864458733441093896605881595915384347425228067824950762554290006337413187254571209921626233192856066581306175571986690362138493933253041383687467414984611751324041016664021050429782363480589223047999707093526273242816608212746148931641507270576845133368285717184104314312905693631835764927296294936270812268679594802301406195597831487835017794309272972962819329369479091057789014081031060626955450620742051817303918600768816327117881301728041007447191032817603802497871029918348306159313682384748482313787929323200498871524702869356353606801349205715682494734917938973212120527850061660271779216550325592318354242653304762626930875249261933500850996244418418021054100853890467115507702031797292590991322771928371773288150762254168688478999598607424201974349178282580037614957270423518245027333553139266213455624225812274896758507104727428155527998925365605382814372426488425022122789223487297114697323286678029537782611472417005690745573842512924531647433128647787302232956341392166344750757342321811468991815772960942819232851356403817247788525231124237897030158076477506155205514602256721840662960907260768599917068093704242899230995059403083828194966775173144625802263131067282992117213606195009516915700910259057135831841096607973421194530639582423071858269128083514471679619471762249813768322115829689415986611448970474900075189541366276052496404745716429243740291880960168853829248193153321503721616054624865949951762565569129025477268113184644576093508220716105116205852726615463171924801699466675597041035786785839149910778007952629281366695087843644210263514565536121703347925868175218387273417879265598049885379169019169826963944319659708998703708341396627729438040637264349113521579591726178251357424164374858075898807902353771088812764447607530058451170991003867394758420984336470198252100974899407236113981245419215745226320882969906597226525431496871887956211680873889980253462798955973340453371378847913341485579906141584749887598002785716651323986059179887690000059545786610316103403416733499907268578065848069565682529213168298024990116658674225349396497405682086192197572201911765852357574235892982482264157878007226735947480132221105107198836772065611803384561727776785959694472158957917630193351962867353262691797439351597828613909613399438517352385007359789368876336937475617994290353155140885315188587114446796372764579314018102395092727735535899247845696071081484066453272965117502720448440594840444976454775060158690550045307808488280017406361325925921130031897236104218771562672470465632269222736786783761950704071361405937950781974867949016976855480192826488565827628647000955310505743836003890651167978968751509406032327435566099581783971718293955779852709574861761655374737592844913793912701765507380763635814017507577690574957328904771683132585517252462076760696205652331812655412591724368396015771953014330697835351863014487697651494271838223358871224993809642219562763520969164359967291164960792374443955115566193890433216517596252046562702639309722465444706552972856914456456552580603766048909411700431301882774121551291401003489100535596717774840707599439800828435106900049307504880861746100849005598456716322527785120451181181745055224423965310802183760669263234504533847798606609439469694542137170239011413311139463944540850943021905019465862498700627313086850596797232020565774686967754419982751792366535994703489768417432228476885477840216917203142281826827102376095717739451365922252333853016756958508773142813687643713432684387373009608545814632302567085166212910809937196449296450916714796270635968959531694167912606484271364032646050795576030895798487183602199888730232485687797885931354167149268915495735878324339137330368066045283209056737671408374449843571913544567359302742166792639335579309108280747539423747441094961723993576604868676063867155902739517282785096407557788512786435734006284105650442364575682747334868684403854667907436855471606714904097886732967902918756529208029588516057728175093174069964912404914740696240755808929466997802842908272869441062074872985314361385559363090380190914056061307111086656820088395251852088190156946199938252178474047938954037514096601703227975514902557021431308866126677054254445778288963221021550074831235539095972552695367921789698477984971097156694056153096899736901429838792617178764861708894546571742508029367923682272462093749591653361942290990235157385547877153812329672721238513093007526555572744869803993189056224717726356042596009749248652615999875847204610450675402342897964156525732758247597602725742365638717213703707954166394980738827059548185330274201657297048247978867130632281259393168355661140251286306802210237192939072810366726470186148452647465500557775575143742120039825433955903704857464067937103022232735847571794895575440751020015050558213820355863569906967250641800450939349364553337049405585596277327034643203530409881504514948324319257351739097800986790181874570818917061890501772032776092113489420087532412592493202558717505463552043395139662977741344862870355512181512498304516392957634617163359983643271304025429207560277252696516680931452665458989032227553584784107920736432045090348558598390126696369177084574756300628131676722366895071959593351985387083588222802520488573848115319941041129244296938856234314685543558485482574682766923622021610384424895572854541965265543398663970735744330343454315449799342267127904155898539976428416868033789508920944345971898202418950486520772326593928620440948825465704163093909110067412256391131154435918251456588373772229208745316246824386104038821326765463592966689630833717686775850404822535983895809282740595578126303417960422700734678675008495422554855522065582249362409287407226113423724841894984078997659886496677446256172904854211960877448027678036341825861874290523633576513299143676502463497932194850280302601684246764219373908625655972147412155604228234128075549102266772961622356098874746825399287575165244943664848039645269940274438191149210742522891500670519765435694143749119754116177711868701227815022868308170299305980673170493221361560944857294974008728964028186326465321258179789002551146650549701184969635490030133921723050295090502316077613028369127041510185364650509181667471822252972724662597336274293353396258841573082687351328453510762158893985652186947653747433262551783757035511687996233684984203404881454740246475096628730109545716679872520025582953006066541248872327126295436220213232602783625581404400952524324580220313605655656021817580529991996539941697361357748406718227651197809169159771725341712636040698852575606501857446230971982922446783881911728776211834163850610458265430034317214544688223640540463698194638272892950539838450282011459269139094627177618096800843536060700681570671970378629111907692813513308240912624525881487124934788280872683032033359215627144981708334762792166785372697457959824926206179555695656771758848504070638652003909819233410592804846177359280840201948399947123660661118737147274366453141711399925650656417477249158663741998502997384583272487033364116762955714712822837635706698871789549038921896459069990955824490752073278552972293181381581553539790888000032277088745357867516527243989112918091492168277092612879747266277426558288116333438249360812729859826554876005334938686902814367068205393050437268272107127936028139433736267235515224696058823830157278982390059386000446310430978932771105756411000443233295559866815581797192904160636089727846909513026981265830245138695428683140672700604198695106818166934126691631352596627196878599063664798001665276742411149836711917190489412182574344629592673454350929112379679025303737146947997214338510996662881395105415450018181754055205039413239932752120212072637589202130386765457581920728833783818288428750976530044289633788821291550888198630268449567998046773673576628865620672677887210545115603244026461246155839397461424499074153274212684468719110762884022205605906150664563727793052148547762009369119163261208021221743019056737255891412792512172267825475533619180539057750331181403758328804471253808044717615226145367686361149711806416709527455928998625262164787892924795047958938793519444948958873933764458569732490123858082560806889505401724480102436666741685713722871465787527382750232884645558905401209522356039099786395318345220778561974877510347475103421758765718835512612475176165477463067705211518721888417196322216599929925663854159677773873924892838833027152191279013549957141784903801703664869671361260541111864433208036165558973055965764799327962307073737264884512537304856782631509472969054309566669386746000514481540225683496724429158402801261561847684918947432878904854022716862262972309445285260974256562352037272366872476308270961893696273571115518608366998586257385097441080061879170592419141705169557408918310076359849901394182633394920041172703813164957978029492746160809703629833327115509655316876894076479785548590756486076477690070410468949996422182990202101447615430632526051426309392493954877729946125480598808021843037357663349745875552108874420909977418485722204773293382981100475924872474467730961705764162597404991986637270736131916055775994610740313506026218833414581468434279671721472101309988795550212910657286986142944408742381144957901831829433707755835571851768841989480829007025886319170568370695887243215173463350902172287912096773204458649450780533283186201651477442990350598698631265026209911786183587103915643208031522453874015942696278416517837984941507272787724837287962304838187995016790155735841857778184757009327066240205801663342714192107747890034824696408874113458013731031334407670316298478643714510909543536766420213657617281569589073827083165094228419834848520015741731296821596686073056136863633185038242472265761594401577591322945336143026073053638324753818705170993874854245163043290222198155446163929064737313709328137694060145407501732244900030210708764752725982036395547895922610671367168632163523048701409077845871606587647942319459634329425981019893669968668751721075084588426698471599980988952418607202013503547395693730698432646412255479805608748062144638625598520203940117613475724353103416393755849459745399528911661694924854847151886356272612348825787571594250661920406254461682882909296785288138416213190185740991568077587571499803926177808045415379396516406222283114295185506356357852981009315772726927672369978636169403509527245735089945802136483224294486721295036530149490296542297873591970004106955506542480687415523574326687326328464115896408802943497911667765180431349763612955983450063459026912602359075742875454645374992209366490538747124390638063209682776323947453724196246026255658603622278067925429256125742123035041479586757273196195275542667085722709497661865538504030978869846607231937752179426764319387398730222361099451751525943548143858770228363722837093302005514222943292136339555852244754250353354492290440023357158927119566845047892729544416557508225968326438121629881860069532291852848273887125642988777411735620032185939109625798061717007689492113874259971016472420901736732978047481351410787864000567147230168591594778812470294607614464656494845600601376280312339702374846412769267142022625808445611664956402991484050795180615301546000222749614958415946778673803946244263528361401303112922213124475536844316088459891283035330390303318103754544902550263214790615363018490754662672640673121647968346965052821605436343668128583058336485386170700421449660367562247821974670075639278320733334901736854604667166632377161314224484143907829687239163661068096514072134817811301390589085888715073180404372934415255356056032782463924722722295777511121010711277604750400784926070109301992092335648711823631695272514643894248257940660662989361067647862840325085340184698846808392316863752414812314963779593721858445810971527334931057571246592152331470261216537598824589268070662527111420094164146884529370521801090603986245692172941168173122983174553644923004504942517180989904127523541613482355841734530083069140764791807977784150076804458829490388982793664853137634204435411312093424216847335885216293971705029020128838743086943359217241582715834784343460295197733042107147525360511832811253144315062941916571246574346231425748707189267102715607262987595970559100042521235265439604105711069241649216025979080811746136931084994158157630806060551684965372947211724410840886231438906916031804467027679616824304551725352570147704489577098503618051956238169760437495867937685798274209320517462295507809363408203220182557086457530914337404999689394118484557266450808043984776815098262991596277756709030930685478345248524684851015420927804242566256523111772895490750787654102934847131361088951032038622433632305851703664293918639317499745388737729047700264105034296477553092865658177833857725086943193833986589863036762563093199670583987373564515763696608611601153709027705878114776109116860419949669138448202259841276401076708154160212028712729704990705573553394553090288819037568996979343052007521107114017506961113312678162349735298745335233464479575351615642377156325473312842063861105551633752655579606320274525197805882071301431183497843096970273529375462528287318535096031567380607203045253742827294371748032461153898799455888758591457306467409211423037342773991588252601606350060577665933982141153771383544710452455136790623013374201610187011682392202979099983539313042060454298378893433605931098533210575917249440601782457657923768898874174128525455774919414043170116947212022306049720379519400746352249652286944060722994282952799524930989563968590387050993882577812473022554577155800017877932001037809846797824139018943509791007547733349487066530526093373901869837346012365722840439810041021453342910506515430789406333793681631620350934458728371020501854790768988137152811342956810607588209465250611467034098742358587796154523783811376412274606848988486210545738733657711542526049491733280848511008900635996283469115710873319013275403213488977486329381750891840599410759107671888933608243702788007523674873715679193739807703448184368492494996448737913738683173807622022917879599584805240902589926025090784708318459207685503486969452875736442810188536953617956489549411032110731150314888013117599903763003691035199766867122189032652919049799687122488167371767969859526306184038573579412625079521703386194248630875727055688878676176831329468667168476260219125547872864311759698322174893482327067675119442150176331057012916834376083080404393061409845923025832650129754619281893944170128790179111578961426136534240627646869956035545858582496104811503378825232925342535255725954856603214357696518981346865813312048538428821054216771156072552445347618470782164003003771416265327593579678157620326026785768543224989716455978088483789267546547929323933248809993905189312330084899620132022345647146258879517758309809227915978412851363293639859295418230753866118800152135182107620568944654964478670825139274555376254615347316436918721127216335037316313802511144776633496095212525790455123079647795660778590015349056980346119876738779999958814028218497579001993062265523544461806744640100797931132702550987261559067292556220246585404364071604732549648118680772871793790907595226538611672995452072997633409212978214977625181600236713559082289132292156991018412741552074357865230392774345751232260820372788678441696138976855549520350759809376169228869486140133966696249112317101961684553607903923572623791416589274685384562990728780151458478154580919687299930434677523921513861019646523663563922605444184244898617171857619616954597672900304191751301133310957012346539236401218753139289883434482532116479341512109429075045625477042563962742214370871375832056995887083698597422552190277264150446410948171833980692978400414688271874433189557574073527273806779325599798758359315767857263567722187824531523998260021375181868010134803346006099811049695955601551714686288261605595699462228431011411176504859514878255827796675457409009538331761708402891815562967868836989659408526353297975130898432492431402648600561891574946977638500605198255831794556020003017055061814573192015467323041683172161692254716892974105740694846624852983008381052728428545055877067687042781431962136133872110435848604424444656646696255841726725400479401363329402018216118444109803797231564523091763763348107066984958728953158803380769447623193148374944088595070122472605958360550028598993061091930378673418609027096190908082446301399113823644084049834815502352645596105057575061759383025952834301454179746572955372363613086421472525294734247461811900827652399745591334982939168104026069911579613538790360446948288852734530558899838301801698728557670094114129480118557307756892399431084247828676244497265440290519496734987465281310090028250123704084809322210438227742563234959773001666365607733050035993875981006767034239287559914903253361693965770425215475392939515738866963114996004773140365493221722308141736512282382181713630463121186552536088370375203029730725563591659982828236217432929365353572217845283225933022985968252793693764540016073222581949551146921324355946138206648789588895694332934134179539359228129955009109674753436992559449220940159429664834989237195820810550111921528162522007676487362018308349428764180605481751541104257262414225026020453130052804824195455087157547914547996485723651826373514274951718538553895824679841094568001289760235047958942662963403698158753432138073166539612695128870800402435207152187718461070679328073255773079400671964273692303616175504411106552788983494525466493407842345369332349372090116325319959272529104513265946189149755752920205636967709474182504998987266404705778913659372431188559856581619273920541000188310328049526815971517741196965562061456732251121765459022028726724909241239431073142371635087694552024956717296509630945651818127523100754764957798655187160815435279946966932593164836313167431235556224011145143540253667534060239282590021759726441458883761647915616039849135970715906716500665358058946135268932557466656656187214036939051438715755048163261952464926570507399678917238880432244748094686758045631869267111531759788583898272252852844590006272848944252356953062117158337174230328407162401210462892802751096242229915623406029012647591309348264925848960717696822994835883174724288787544743188966828930695135202380314873006401300540255608598020134219366318047207519859724599692743406938016896717628584674832464073859931104426512419227618625230907739568247758586636339062571351456193171003286052675104824227182490497016921425816574511722141086547555049207370914318170523034763953675124434717749107029777728678102403889045202466915780770173160307207935519844040174419552822980541246463457989439083993189634305607273212572361853865222671883113933575201072154879703223594682181646627369250267579437748494987885254132178197353720401198807650402681132917785586631018942133973291887705806126997806048719347595830734284654415926109720735834069458789027887342788584103312660858362878755584092236363706967135980107759019864755449691271770442012536614623763277602738228814294798094894559119729117470502874992627634919740451705277652913557827325991231792840360466291203406993135390391554030425414634273948697540742937262097818945300107742520144802324687470707938204240114078741136527724757423653450080838229793293910664494252513775078654674602611597726236590800795242101606843851219229465486989226580797127516480174848178118934236860432039953462727860023462964921714599759039710242981803856097168740373585539388919304183162021745906611904641822778424210894752570720908569919303229203677413873988998154287030691624769942228592259994410575955364269539046769950912403970609214247530755846581203925748879336209144628341028624456728780111006186383496966292790868047670201075960937666771979859665968607623079159686360280386945995482668796688679597176105243073201770536163041624078517402434196902505419169028999390063996921021721064881234030883049518178742930995620502025648584929560823812123598158816458976350477698290355886357328983699636488576956964504154198598172771277862009203803950952778784352903960961938405118647411067029258532362250485116844679046655494706331798184752938312308360976645479201754113317268270987848544485945748123979438505951889308414659812845837783313758386386492058908589265369056310676466728718635775140726783448659800541071052045421268929597228450668404358465715679798118440247153390180063050603597673620587317578911463615914975258602888781964816332191867755700510796657383916633992222533051823655868155521629067586910659407020958719555410553453464461266022795432007395052490611359503613331997104655361071892542764360299743413003490977719157805366618716622481508628460491232268912032602552568260152789565532736251404689814362495716247812629220861225812654580546988858486546293903429359457643344781887303610808716696984088056932877169317367294847243956019545742567131548658206795363670578426892116025488686903372285267687399872544119913915625602902792036073000632084570621159770179943035176932915571523768294848619194171589513289139259373981889518082605492825842884687405479131891461663243073153515388496395832832190136207813614132438382290221348889340274588523358977779157340324224998482355790971008072673366682822416747802373509990452710667634707150211546296531764628876410341110687834982889530770929439396134479418067907828207152679739342978251642285820388190977801911607300177957849809430905918071706164862744008345947799581670948706769982651202697453420690885371286409575197106245520760756666383735298600152352637966067581462072195460274853895825001308982719471576028221111056615850517425535087734843699566015253649069363296011902740987143892290489951611706902359086916893463035099217561314549343713619211209860279987917948690328859561723372119065648179651764154338358606227621202670067936618830996990038585971437892584191244764813847538565042901795892867685068698363984830611035655629113533338705077440011560443847780683467179191265471685655045675727093833395658370479003348219352234510503577708724250266974693073075749897679300445754041913047342888177074037168883135570429952815109738804017257739839315133631918374508003438871604366426811491811122420781733393482140216132205326326594862128744493936616747885736412477177735769252836664523496077974249207101503184867029140722806798026319101490385059636170036445235767743131027863688123362709909915945787487014930899448710674088674830148809777238943199219309345338406010664254063317921877108822481466744047224083283733528395704793926742947249068658756509966877234097652350265135977552593913661690205148792966911020059562899466410690060558432276120043707467397376754035191106433413728931298170423687296327559191346724402756555067709388940493244626317578850014618116094111974761292923755559751224915440611695019130036789816381747413472027059036354303948914282883332972886144211889843551361665054587686920420100569102230767191569096576890525101822575792809503483737512270327030907039160094185161393292067274531028548491272980340669214347567955282230045993193077584328680108220256746396065531369634063571660399746192301884057390634298370301600677808647196680534122796062433037457098573739796911251289320991910688260225164739840485804325524066809338360515692088646908392481778185782713318883689635163833932867795232300539116580705893258649298449812388993308973320131610854669959000664385469723783776983939425207196970194753550528470212723242265174008208367610008263122841480075881109572418968024471433277141203063304452538178856899013544399262903921421021732859707146756806357814418911170245243966619100260812244519873552189751374451708944480652705549652376154013589950534968905720648759190933172513390379487868509765933994112215130446550514291685998334151797497981263457907605131497218829199164871480213006980741260985755552124518006207332543529510456276467614863442722904574357252521830540994467786420208212746765746080567340998523225419813212934926429844369205478257670858347916021631438409913426999133981257308056681105971205298498418586733934430830378941868775485093191414401514792793224167199996321919689754214757295178462163286758667145030354336396135908756422536547352924748185955067786353549286336602812588141947052629474234045739563141610385647054701305057179589425253570938387825210852931972954379996852972400848129659353718423616736322891489318055644533688282673051481324740304283778873897019496035470738810770876369936883798396183593333157585562220295231804112891856689485067175858030367706585339675857559543306588539905279165854021814661144859360318595589828858658670416830033813127787941218635481753723875005991310091944653568345632108332653074743130258135713024398755408093695013660773443937022676594367532525911840921183960809384075466009779948259906920409800903658508777534861810718448393749368593574646015630823470813294178131730148330975971362513101959353388465704960405485619955655836814425224525100683889487327453169350214357692756061488538577943972492320431294209986384793892829110959126551927379766167819341584203404723341084574237385434984346112644577579933307387727560574269140596278978494164592501040951977921434087348883295185524496665091585519251151366511970900819539634560506381090383624316825201989785124852585945552964705760037066760926452914756619520635493507863797518475113800332878764594830351394676309828408583817888698053516964128750986285503488078859277479239688576866835373723616777531211444526929875869352780591923502050449803534944292106254525518092953518366082894241478464958396521679758422819592513126146389378408719828684823800951102288938617866478986500567418997324731768242171942070074689893177043714890575918506656274404423549329301993365464258860029012346897213549095325864572344154824155833198219782680113901265738343611012909327871577165510471337726226115724788992467871555876285272738019290210664698059426245989776383685722363985175637730218423801220604520206906810969710741180861879802312634605802573420208783440236925351139989203631732881776671726096999263275820658302111401791874394916084453440258576359827167156609804533197728990353784118317783367737504556115615377126212998182699946507132911498161372317840286224279317728657045049845975735764096157772515546133877610318935041795489660096161381162163695834934012563025131842929597108958189447762532117025267401341803511952727539483212697454943456964905531938186732890571091846082828028816679172171118867671902622501019958567127736379167417403699208132606623473601752194690693904729750728750838744990918583901376626993202141282435184918546081344889440966098597839407221768207990198364281664413861862235901544560920599209363576479546444594780129804813162893787220846631143986071627745961209959370728364418697250297009748151110525514045663977181560449850467158104484190777279710470883166173390312157741351170529052121688397200654904942402194942181317621765905773893763375786734628906251130815280629285758506827999274589720324021588696582967988169237700074666184822629120779487364897431578485414428326974874044700255409323209993981945526753803961583974084165162731823075865368081957260900866364634650607133808926043936865193546937726616107489001018378830644227451198287767324104302845538908375843470540305637607020799336911168360470421076845066316434255102427752606572268209751252984497697508430723974146440442790830485914937492054051419728378446047940756506480527615603900559798477883633656564528507085641877070939811335478113906897001816543378086955951546734562954861459870372493201035252388318363486778747897766226153058436510298452076538488493072593755769544827623404708528328003283726590339568095298528075293243904018963828924935111469382923989806426236535518546231097811700858238969002697345846952206418975282942865675373849248048427414812085929441353511602922293633095159119910711973753278508517914974399772647813431129412400174454776012859836141070263506763141210426093892571733622186847652056560511847814695963991171994868277073010913303419216092553770671084118867702954123304224287603170913610509273749838264022247231248189171306251974092037318880745318844655841923603800852470956841465199558049086260953816469498874420020728282500043444634550486658739654057275126497976585710285715033003036769257181893357086711912294055916204412792634726791200930105403452834951745827934146234388600164556117935599648714027559034345993479713273052697162095083783388885332721935041068991230323080714279940286158060009003818242488917479023684151547022125465996209198266392108003691998493016726902879021566056203561562245337724726870895809875580560362667853379022955048734829522964798192860237134489515705765521566343265387567642986025561955995052085970639712042625281459636685575405574769402013639348957805236493688017202376586305333086107532815265862038693595335070107315623761947280706128219661148117502835370788501605391465721902481194968816898864457586135614009165418916718445265502278245451730869836995311325336743592410229989029664407674562447681302914408034288106259595990183212921772199058222338378761428386898348797059405626558210000022395785140871860447058363612155385902167245734952741478857622885078579017869132146976454676614839927736294558109564393906192850694612703190706714219130071517137156802170571905522672059156463797917138439234643182570753843199849382386958339941397837084183546948395923099175289696257922016535019461926200158122974168007769824905129664515553670776699851225204298430223323608953582445323839345532133030675104571065997092635169221220052613280676470941507637251651755941233815561342683146814228090910382722634085768747971960156205823738249746702555269746114719204758272601888591250061593624735468478794847431197060806392935361795811016473665741476341804249388444934691149907469602144128767948433020351117848971031139019792364320680754212597927049957892454360738178670308793717202303540420876594662898613475633597757973161968470788535719969829390333217398742499839651936421501003390098758888272592838727867536908339291237185715945883186095777158797478774296260412659611833297129853734436546068777857368781745992050078457921363319585108300673247696266626279858599984204193870790542920338818688758463893575605608950640025082074201028952495800279179060158305213719815284947863900763581865389018077194564144804645466850999338423348296005084698016184218059242017703828801446148079096741427404449404307399736555352777897439701548669982545117910015686117275385457164466159399131742911868947051878009080876107571634509497041898821823464674460351349700326089477079745712978867685339862002702358092134438620686190519472889978339410378534287666259122674696283270456330807381323943529641189696199042533361959549162459169406347858785855532881785735386411765380950316498002028357861696798024458535505491753064983385608168286738058977861659910872511671500879060151305862871045286064144784304495052762255126605065594885564064200729038081827875566921269439202641901415049425263735338973658081435099356851248227300202837610228528609410290112504264772222487928040283047825693135122571439254882459649019813245344693861126970640068754086705642132266948507192870757901038420692300366560804342452014498771585804840395430788419191514131856855739098122274182628468555250084296856750471488869186466775071863740786490497456032476366452806980752172152194282075959802673467419628372759513465042024409005796498517746888739979368776659115499221591403771355377596086305792715003132456130784842156259411686150197300670850316757168692595961012898886412571409262416949225422049593813509096945689804838116143821045285341807091377280914933583708404808957663153476211142796201035609818903640370735062813604246560960454531640753669238833453044453578703979454567868987790895175672399101954600181391772125458791618348253645731231753717224830161585157748722087824060469260167196152465884504712431279249780640707432811068626356912221712252344368775881533387038579504363327571613944781871745336922688176983393070665978871662885732856165763043097732425384601602626259056979393727614628278481444866435089663932948167571500522989577095401403961297025216603835090747269309912123260146952893225556698298868325447452113422428665545247355050053371350421096129320478025934105523501911403880425456496462418467468715526339372961623270699641447768932855271860716241689807147280266963149898417670123696744457955920340003409223119604614870971006104745690736254084531543093343272942204324034260333415049860639773009966919695398862029745057561555779864839138071556482281528822948641974642318736093161847522135707656371493453855059298994531170487194321437269089751906532602215067225549082979205167472061186560338565015554129170051246419267387124454987112608655377270085843926343380349661755465960014081682845195166281218160582502102068866648215060258955583408298763725920740742023556007013186633161725659917256360865840222447604267919243673889707619105641478732106671216561792163754326061764101861221281825891566532163843300437536415701086929501545552962185817187290554428735396869679692697862349908522462407699207467488685847224497378691429352629632835013328477308505658189131701481916775308186826994352572562698654243655966561363608007748254442684606160081185665747104747640078151356267178672681888945512156370995172975548810775035617578592539348321618472503672730594532277513932172118819673825413673607170820217650380238449681411804787108422979571323302046941537015101081488844799470039510624939882591884161694751149605075706645430590754881265741633885721768120606770558929238081206960387827601014626740456159004739008368934367383811282759708686161226666138919673908280852016242274437962651073074318333400780156530425275221619933247939526442484883054085617742646550456404517171437498883833566352296143686068250658613690501096419540634264072153650444001131408606955795020384586455192904680865809336006586308437460860885185490498476861460088797725710409694244208715461191117309793777387774283412782399382503054047043649203225137271605837236438339215730566584667856315870392808976786143065966405559490362509785445927743709436862232491079239602677269668087456125697672985141337576437341011858086278442563513772726881448082919474022758850715731463981821876655133929725425717235874890386334676495339944524864057554305724136561127615875704671216062218175309680444663139413374179570051288726941936459750101313551305581394522721197154645450138055006010105132213296581559420408344966103632685454654173313067697603872141660186801240413594925101955187377573555838685363495878576931928455259220394667796561884263614955150936706500213747024596775836495084604256135784716736124016439019933905025167951048163672746355725521832848046249163241481619667008103806509460881405477545371455686684031554803424171073662693544372063273781966981475989630462593410711489709474691918197877143585598858212912984641077606409139376773014064174332443840281056944819315434851529784576069824557010728867365610597004698430125587777183985180950635913219577803593206094043803757374472184246707144809536532745374424466220603340229467710616910785887580744495301241333355396054839265556997601162067042425346696577911166476189316847089776077430401950447445131882767353453098896828424326370709723400037820181888609294337543819846616209067945586758561673448171889042424113194180842664960300488307382825547676100542092937959941520558653645146405489895713228596526296257823134549694508992468741304120333006593379916581401831855141696382897235198032404814927730483913403713581917332369812566147572531793336125564810519962502133995536458648166269076146978260748732097230780094695692306742046300918112232057655072605237783132874342037189552718818906366944786955268879421044453792646841875577166550850694490426518380515052082407055861275884307759442887819864655590469426613436549066343871195313055902769841775177828925768653574466019966287063719602227560208307087980081125671220529547632479297537754356827400052642660947059702952779078836264899921139722224491659092737689570357956063396853129161404858706852009897545298110830154498537055701902403541045635887812413239441113247354216064135333399266325507394795189228434039632661221510620936732492195354048665034755547577082453707349738589350983588653160122692930073699102255106948453227231650789494826608014420109043554872492151571770914035774698862977909748016687081373955524838879167295970686098376940375313952812543736516327852430770497692308044411796539872512043963911352010260434286553373798659629980874050358422972113395317056612966116257808554222329803509656385328987693097653806965014613303735920846455292926754741905217150855626108275016764302689508253693907100256799808680466743225155803197878024672586791602944319717374372806506852928377463609546326929120639999726518287080260392074506333550391881024677651438256254017746574721729361849294008624357779232225257269150091927144802529852615226487836126948484374254903525535643075479975983821298587218866567089359388879971590256954599697854164947399946744484192722480596847598198328965640897173663592698135641833051729549314365075943410763069963261752916133450099868581641500193287981393057377540541958453184137104261404850050465083030602428889089646072390294373760912418147725701277702257544808235295940261267642748249355011406725288625051542314380537317571942955243880137986762399679885707834214794150325512297610042155195313742432503546570509079552322724285015728550782430330915781898245371564833592817189358329884832103426625810640053397790001094203004641421401663393801441287309372562942096750286787487602205672602941789114870546122051168321011680406732971084006863229821096249739193523073772004149833733841445110805601782335493005167094660271960683341065619130059215910152086925646666404148942113405198190536469562828261322705616715863934315788447913150403650351712975173449529155204757295380294198207629584679711704594046050526263048866351102196813147631088954175190327248012841933897536594238085538783248371422234202287703294883598635825306740630326783607473171129279780434607893570477643075890251000671014723927208499497351063168402387024347585342096828539464459360793376265009127268920401921948582997112187763496534408618165430035710564085401052362684877495796124496959030902218639272674558682327319596066532786055727884316170092597357233798137587239489790431072942809687308738286733170270687127989707298293692202169034144810098736878618543535919377768225752675483389393187950174632724870159562879723986832944557473355255611670964995090219277495581299859454610091020094717296453415138149204568247286721352460971586734625849172815816128042306701032601611109357754700220994871021036649422906368236944695038046052470410180683836292338346052342100497311037647762030530752721214003077745224924406673687051200308263071641915805375359218156909169378873149691174852110217285205757632482009784802704071572479884452218194473997202837866398231637429373093089190467559966031001214666341219909334118898310898501819922374047046936742567520392548148254733504557491118578824857363173013767834503617328048220424407615862994413113142804042764969379966167196166211406009343266146763066298088932734345171093457934160541165506208971508805019173635654492994114188624764940275203882435182130983506587092025342782651312038702103555554539546604639428008785171077777318010415210038093658151297866800866447705086724360758075264501065701153885968019023387703056940951680587651698336777367790028705884614014375856662105735823492218382121385076870987451554037033410364620184669144757268959323322175090677432347246605494069217040574314979495243233791434828928107695383121300550759680348615835017939973742016411805067200156557021001408799055973567347454516469698503197606575105486259943338463829908623200335281308222224349944753514784470212869652269943599980196203456562413109971204549061923395524199672129528036580796553416892565032000069266784047576408846407844902409532661176202496090625157654121186522090953264537790693301510332412644509771020693778177886193358983707695328086347452450635247798054481003572549730633883728431344892471337557811470026588231780874387894351875975447940084497385664103870072348916684416370243960847758521246405084226918146232308614870047529426370241593320859886945566655775554792695976267669601827627966539155031548618380132944991965003933085764228077042190480313735843913648490734888052005311330349570097134262806264026490844447201361638869648362942716033494625366219879627118233833203473287850371572529922050156362240946818839885045030036133581655267607922101385916488163733017250671864667737898887802907381805481148407792404957031834787731048202497959513580012794713240427418668106795830494439054274815086719437969424329294907713284811177709635460468773783732699596817637812607558116676785582991993408050671087139330030903995354496125966689760160037268029625750833039745173351068325115537398897495926375542865292250101058930497124348225169744904025497321715336582052814004597975986578974454639619154504499079703600149778943933239369126627831443749000676775503550397457855282083764613856186730321111163408952258171665097475851505430028207422786860905736303225658768499178804107291150830283563788425926252561642571426131121873221430614413902032554130037537769087802390065139385466010469724901992205271965577668404082020357289628913165611627852185169017090411722329767492539628153210249407344218794928906616765657307458125214527480960327272611115411099431819882955680856525168318590546339643520921948143396113767368806764739540395964276490475382723787132767679943890659598629468659026675399194876313963252763294631286346972144071903857499412128993617653747267834288815333207404399921664622377930468651518075321865611724694066944555999908534715910733670994822962968227785732832324617302235166729169567794155973374404085390237526716966328457295059533074570467788840356575968225859100327472636492963292746774113997657980585421431837819923596145008042439635968982720260000652636825414924281107952544663300789841533712659709802665883342779954179853028857360281065968538179961977603942017833641688559227921671605146107434909813251888147735406375920558589524928152186600147980661914224797067937946814452744815798740098783457549414727379132277903279386188787250879052647017078083924292310266540112604378416176413187859289173973974673872724163148224732249504962595102579700445534393426358469348348085032109309431620150316609613606431979278931090632493367322430761129281922920155533136622203166414384466753253318606534376189332631553727134899043823979744768067171027813256195153124859719082977459309756096504851682999942896167976340806258138635851010646001174503320459784413973691817823547490261309630358338094825401891887386763191784307417868376425771281747396345162426588871843850155364780658545871770060632669222861105486232732452467334604189858023360974272658939679083726923164030884451371838248251244371536513325654436387301107150819714402887335897347749907550469166095314971569646168749030302834935288489020851616779601106730784972175543651845788260600081945776559080739314650723425679667028860577312062608400935186527570671780617763919293665097476676155681131486689394409740386802557641669921902565149054842962783291443516984821300249807106068543740391211408666077298158347892447292035342386274639250377945863767589185699805806998143501205129967413373109523923544095064562416496345320718679772032768832962121595709523578209109443614568610659736778813304335799221380575510054797645393290711948352912959391378005966620289332830640001025859999379702778730462257110643802780099878231104005348673155942464630473515369970223044779914468291144359639182072839832966376921134912365519927631068415212092958805467661193298883422522488163169628773645379538203680528134493856321322278522490396706484680724789005739864535612003040236318384693135001770297859366142395514911659859064000666525310516771307011543621577920056253976917310608984093287762084455626056636348560618340463957628882416319416033212061761826299057495277647502226879625081978680791189551641550412577025073329714677764215826824942948833865857826690615525689221648303781785819247864065885880924816402211253695019342358279192843141731860477973537719071311927079145312492479164656138841689707472947129899924603282792212732247720840102969536031502147960239431982707362888770175994048401113171659207210095039053180920195851592662823874258390485759432554617277308347476874072186667558683077831866515981082207230242553676880110349394253627317038458693778737289863376292936038306833338445233532017513568205932589343929482504436586256189726288810691773922697230452004508561352603734719653113507650464457660093542263200804596146908515666264960519548924147982419340399636610995178833079564487198854975529103886804385627192745614753345101728210238553654065046378631167860283705057366468185338374300029260247287210039288919995885716785397947683480918175006664259808707431996883920799426644109092641602303553276983791581443928270548417109766150743965365283591771474720443008994518871341879625257623156811176095351671929412777916174383062225588381657937022283565981277431627113085501163897709769373134774955789921969863217939845099317522007987898474386136183209930826482837786994232964539083496216819704090925462900833557529886049828871502323846003997781916341640191372984714739642090225963959186575893059637967629272614709440305596283168185791033883850572402904327544511726017401378801785341690341125393866306972755591733781324831027215470405106915615306927992150287460687440917115107502126200203076674288905111614807915088052852129512896212541510473511542324994582889813408982585448283349312283306207501895657734397095678270146894941716569750951174660304301870510275991026069576876780439441818739480005942005174566275548585121439349407546541186756972715759787872187574470953925800563918030876921209333502589043859879928108133416864631526199840299212851856397583178897557145851223468304496785651338996069400540988395613149220325749384279577295488834582685586884233921040601496122366741440482629107277563980762143631014221839304356878854087045329300475710555966813391953301601711940198483003840688531503139625031778687569536851074705399214049269831101301278293434907506656362941542468934058463167844765319051331560416817087177163265818433405687436298763468089290699500361117383889613697402580614594701535976519410591339686841802587336192357092144259648571145255041247589286324350187298321327341762487648067617545257919844443109081305345945605522331846040461858083244806635666699633319638212304177785510366145043234048198473385028063527603956896097733200604454622965533558256434212527601313356348265716506649899477924991707152724683201364799266358921987962848065896879143420746699063140775248735560939990488599450999567916606743551203129856821381346121791435427500920221025622036763692835740550373964231239382514515862649555652681230812913563194647798839789654268029661304721158282424994084077506111651810064114640653490998202586894247889354425319515371997266351192268605326023891153573019630807172779902211682128288754589985763994863645747698869556145506039639069414389010503027261646101598323778279528272502946833578121307912408284444320152418358789208180245465914345228691190854052814201658258586683662444029325133108757562660447981636056012386916463501877756642083326141855528139647590774277574590622083566056945644556876830587953330771615101033419093783051246906054312342322307535021581448913503606117692289995137049684197071162921282327582592509137794239761549965181882767390445647397859024191637935506593186301575108470771467764151854802432140263287583302493163784355595330243475174313541355631158965916608499019143215047427705216386839319583958191170281910710858729443357114107035355276015414518429499438034797493331841869628971476246216632545717220926318329667805573228932871860329224987403806595840595507795993962502911532111438345894550146954981140258352975711664436600953415750088036947741342802341864202449570633918790809935739326752838951752114852126696910455712738544265556447610164242933430034354821537280834664602632902661628661845243157474877234251761603334117804034440722730263839846105382597360735164336547399552984861422993308274781093967232736036000950298601693729611222038018999488362195864474989253133319193283212510622822843763892038540115286319692716277806341933640070928119840012556807492383521797546349303012244131785656346816458729069679933496314686486691805328660927198539290333403247527669268891982409504964324148558258640982602379097581668191412526764477504857789492182076899642830759305831816020930671446949666774094234682390140534529858765017499167716348563444115516869295267979815438918973637977043389834499385112396998331424847107609102652701964545122469887660688914031808426930621111365797118998364257242710933637640189542831495543595176632462561554717937300649655165481460095439464775531853841878824640046838111855401160302701706896603073878862896607327338256683776173277605336810102379958070186762642251606222909933403264796108847513501538641000114351908837807250972563473631447536914659380695209201986430234596091593278514333350083602944577373748824533361791053015043729254199990979888865513380293192145422609501750434106870078375469277600241795768421415612741004796582765676907423390393326304741901254845576006178220659831630489636479153371090585205141912433517340114804320005768265402070377141536094480242569472174009547956981396407649972148612483570115964428580201138664096919191268609469205747824079330049296610511402914027069730123370033413222359505018958317482762011974000279853199407447967887058059194904790925434298136421736155963140238301188362533215476385267043575577143377811054639737642547755282346311407566693109660557807536236508483100939262893348850763271128711641351234256726218253478978891145616581367325792780848483633564082763810911863900340663405355466313251921633456764253006501614802336558224024365249352582558556273281565907162116716506647148724159125400252057120594603625614389740034798540063107037992327993128491170085585444713850478880836299663623710214870602368956779074291050790591950325424843201471647026687625110007043164289255775327148025004733023125482140544658829858639758606574098195889441424283823246327489672586123719926477874633157364491737399177248087134458001939342402542956325122552057094646665560576725220897915262053227818391455589674562873761859638144004034188158233897854845282775899893447952439952051697939495287921878964388627187162009944023726521538003096262518404990107530000711439242924261620640639954714903953590717190084523015076960233044286970699860501681071495462241973988316382893153393112946870848238482512662198568811521102601152487576844097834083916729954058251041678538241220209020453134691775887425659297339526215654415061280497583970758742593716773358598503167333756052338695798505522581046114474605735733486678042198026442046135845232073812063676174293143026563491455767379698398787931162751252111604657312490158330041141033135643858398820984077405657351315505382635717852057349284890813241056636488997819274263408630071660762111793378281989454520533853766945274973283890635314201420680764280606521218672101165961321766219254912968233192292597580025665588068292624645390353447019899180047776654308885552171247988838570253332308546353467906112021146543681971334034952925142558432722251613619564267400876653966599307010600481528402559609952835048496737172744580749249090063811921051715923667241035335328128431977804097857784082413356454538607764938112952800880178546034062079778426915692658888309848052091782726661822448680698250469086887135616263351867183293907012601297610688563986895862563916079694715485872391766987341342496639533230815422128429854264494001345348560315556413683968411151361695399481624962391645253684155078550418994192724265095756672155667780207658261772984424869888459983011204597181797726511597170896398751437623982903279870523212890944634360190322142966019608415241428216461174894429007499871990955026537530656598153330074009510685610921694466107713554862402815036708746125357683819146382398259243196332287913761057901257945163125451620212557163074753027917691172262166777827686164452799364809933759501929161675942110493322178903367873511400270875852150505234053366547094827854503212389994860811051501214280051630628437290972862215426608777318822961495465486077455798738429379191575088949466773372769113911688196016373282408846950658794232179507378824053869256813608530609232370851224629744459655061621968042657129789948829756374713465396461844485326919832508171435891404575795123087087645864529579018560296139996302526012624588994119859164032838021619585526121252159025955031426079358281676043707348771304269482654534229122821213486435240206294538386490128280666960947413005272592027950528495087484849435945598107324446666977231509647823055738097519477981137989929879623532136369804575923007708275496666519948435646864087764283049219920948691550258870664945614251884390071801799484627655317304632320243807011623921006349221411685247659354036484720411304311157763275433160361063814897930466280922711611974369314101189868142685018103298855982449616293735327144553798662552840140484510647006457123771298168854877571132492433898542981186869687503455205850439257609735431666948067264702158577785345342621329637419014210347649820993097584599246486037145966330472453594526138012556390392398203030956243718585500832358764608627034864949273486383186928743908451722138292500705047385631673381472090558492161680805197842117284436986618125650797098232361697101893497871843597053958270247264413655844258221552253018802550554346671364799441943687983474949625391201777882513453960460180322785873198755768919576133643236459805512264146711008800687988007970752388496245716439193155115608753696260436498653197834778912629860746066704419365721428944325512346281305193648828876864224556555067296861834447338565239517969409276854398479962242994967340748536846420514467071813288884663951803342395740135856706170019326575348055388056143674476147253064509015992454017541203543055900200052376778457787471453383394818357322086855428547022353522851899329339257263562839109303248663522110751910867065006592707477478333347223047636688521304019161471451532562767640163097468928124822793780318080775528054332561331047547687579746293242730784839915877331455417332634919293912299284254598764898301856663195393950932558612763690862468067272657852566754638034428599857430728374878777402931228356061400157299720045443901622844681699185467167479167826606473647431032643672888247442739718871048511668941223351935755565637058035486920970277372045835486382080290284843598086043470340297184155990153428679856330489172843011847837440794772265603383880062384331882595427496615194763984646575542973705422849704854306090104915220490746226464327778683911624938885946583069942477509881185488042093894372016194020958615142804151279544249573984110070834390713453711973608923136429743000213787332258056177368112769384201962698401468594489473539932467374000573667026449116968512943262961622413346263379574165943687650816054861222760810643755206878393404122054953661002103731356370979088290734211752311061096689523684405564539116475594386943729605411668925057030748013310229094327572272667950849514694151085665112247393107454478578752574149393128754226064337243986232919763545409823012152357761664855931499348643432501822476540557272775736135207930700301097963083050900417727342686674835712587761775040573262236913409742319226194611617648607533908805044615244805911520260686825722335706838095545688719997101894607023115885670542964208643843025437112735750880074411774000669257552947922899746931884259488271750865064217449726566567192464950568088340662719530210193478509943948605811141579557739987151922778041342432817859435651884970443850388435239018204657414373110285482245603789842104803971788351506988558514766722445233100888788732261493456732366459607648538955236190075507150395829958507165986155157915634224108599108320844765897193404926974953194149968949801563405103095175334365422379747856673146723095636518738412580524457510365336201155872325223302428781441938624061301713804908199032690155264062793250163924239382421005804022452780867331596752696341979939208238681682607490259141241813129117636424284252147722626260009143386453074060647684311525210763482607719345138510627455841538127137942939839931442205597650941101281106647505890882939392380657057102758571969220027396655834421206802817900532059178069775150925795910739254369811175349755304664030346470109123114835532465583138415764410351080145568021382435395811525465672667385932208938857775518178947067095447661692053342720007627584228367618766142788242471771072916278543134152623315127852929357588425510775985305463724713652174585365451359944778650237855134235386476383219890765949923833238828473491320635154517231014915072681730585143656181593288235138957070220350192571191741272506647277430215357603506973521665853805731539784379205389901355241531649463155204892083780489970449755248446470308333953874018895710505883565436526158438563700406869691143389609668459880821489039333771550726404976717761018363147006561997425007307111070203266879737512917012204460015957152724929432416989063116781142930905695511506888302405919313406356680275291551043919623235400814404713178699650795520655329185074699742933273491015226559059717356074767254072077202168019934036895679095510448211732629921013357684870195598338594609227591301683063228375839011387258674474768707104651107444379034142966893547283975349364761247307055093078926208452922121659568486753325338005686815831679174377187351599648884923234736496132248874067546891173150222673741479935495136693498315045580562440831941345273633735569591328408945813801445673466771872265300778128014428599548078822661266982980144197024700928445730955581561517985081295367852851961879478274092878961708545953445626306024119268029047665104250791864822851233988657736154647738036730255710558241540949086745267491612441963462922327295262854303193857293173856224073299330515386087216146573479896898607583510865978085591061094314323887639292714352831663621578163545644972849458662354076134892287581645813104891846922483428771331755791888106269877717289085447802338983368208312537878123776834656921385117062338815607603528876686543271359372702364596691034198020569851309617483286408741721924750502175494186949344673840424080638486683486772926484946013076108086972704758867306218015623953756386352926512328597977593067223921134214526782543938362216113173009352020847135752626399637208710294019671567956394198867461232149953443958447735359311217211527443784394045051472358515794875411663191661592658678801958997341098795442874780847950326946455077319721196004412309477275903563044562235187795039492256048164953110867885312136388940639732651337797035691043059758440774380065996299665008665682006850308027150992080916455811252726045189981101659637331129182613178177013764579311477326196940620673882356475694880157778182813297331433300116834242570418113321149184292859377167319307438878943788155552397265611978542164127834748938176507128215606637880248774198637670172308018083518339201164118239658315573404759714047339523844469303827202951392709524825006596000847048912271375009837410332603986464867601894874622390839702676335488906266877920684204215818369385794199406778884408190126586257624534271274371840376931691419451058628485010419273738968782818304756439138587002014122373576858019270697220155758383470827997181098072691368942450837821583688455700553523658929422442322911284021965416253065700852918663050306574144084446877989116331759927406039993725357892647247776459332475310248540262074716147473521129286187483225168971972131261025455944810024589501143034330115720407334560897614855812021912407885010402069734036699502293480230617820879348020499637549896543516345830173566619568659251012668305828260034173388696567152834813652186106557437514557906680662841001958762097738962749873409572760445607065780175485094012178306514598531035444797467880721358508598800799387069328183645484305430777908326058882860897823288388786926776385956573152259255964967083215146385396787582504171964944980271822739806181162236980613283353777972216206930858840252257630224545704289631912835447388002959867402570949015581494095383651315212629211459598187720514334803938533564834754164555839536775330393536183926953779588286177551784659805604931713238281336850868941904393702308330060379954270033863534170895135653938986716082958684750701369907546095255571956209429297276452794291489912362669046318032721943364931928946887448687455251596507546597417900620151301194863686108006252874711768759348041523675654144351384646225167252438967904691599303164065286344372116819330047649951872212771771312430897527785083631473910581158430015259264443898547875952795091611144350853333514436600418600982242388305886720908015801099445729461470846304577315913550135540782080280452636328099385083598446097458409874255268319593641462850719465981994237890195435735175786906273282582157643704999864179801735075172623378702825116127537796887111354292493851072701712456100244434320997116161756843505425573841354185771717951593754698568325560746348458764470361049783970878107764390899218402273718124229764874367422478266450585904442306484709231889759869656547573026868151937819126866339998154742488365699192413000487980407188937981463076909123986162348644812868915534088929253275439215423483267748709586300443377161217062051096560764101553174533825653160532347987370881200982505049271208219947188596087162321469822237052580430937041103264446076156505423116525910079426051729052101209634618234433187600671069542350680762460217304467312215975073421927165265525052914510527006849647089614023496425847829795258416115356275887489704997819670616984533609376419575930782033339561720829341310910833987291750907643783987282945052054130982731580140882300244330395449818805982746722987788549682281134021595089204228087946663533889403833464116565512353876492224009828028056863623950649808209077767077527886173269315184252167895182815261468149179554315744523854836873398705312079160971307603209461883356274617079741276330696912903105696633934436507027132982140346962076900248415179864473762474085102380605446638124541233911066445780335201147348384395807555055820872689369916576833953637939632395638797667369034403948463158877170715316301235402161301545029276224403179680968654554815583704936395378382246931285091047129689481128648558608245582006422509358664904197687940429439671828322295404324378558924165799462119932221181333617415943488921487247449083467184885958826946931807257073506027369287521881754761411558300296815147145125811447092572119598544756765321630566253844327418936719699386209891810953251879243428983843640049963848655439032673693506071929730135660129231013290442406199712056820547148607177122184047047579054893029051553637954491466962631258500918444994741381076274183325188785109305633287220120289002426985628995620382768895400458016771614951477537117333302120361944591402583661207697623613171873465085945959838850327262149727454564401625752726210716521121271015671044443321632229056798743172952982163690752876298493173312556740379530017601277390915087258851858228835663142592204307652051042477403415447104132731447606498479960911750751745115578443747034585760257108027582374490078196377940539784562906001890394608972041958483474597316034495731163451185420739738583105964296205776578755038754783678638173526186729994184127957724009077977632170849334851031961280830466012550941189878342460523734069881609620317723191023669036000337102533814940412446916715367893686272177268496342150041139973871046550860338168124372109518682797994060159478612567262436733239510253954179427573549805234489826576464874999447887295944385174491318309945098947939331211915218534920142791220047103518279069225780746662404595546925830254986680808718956412112341879210491589678449759946804256113756797039096248656683880777548229909391223890940770699632644642243112314334319932066435563442981616340297682433252246034054335563979872979534930057964094308405474480989241708442949339810247964840991962038497475566379455388327028239286987815893773770630184651806682137886017406903870287893655952679431192884516533680451997553804883388584945024094819830314351501898900921982731487805730705839551143101712018890043018743812590504819071523004005276548896252314323561663807348794813185653506324693515463320025039877185831561153329703673365873754180404051181759617059180144228495309017523872595651783495298139653456361934593512905943878248953574767727113806510129652622430568494311948310343485848553529878820797774146436652714619760686962494759017267220949656315082667514733550126573164028352139300118134181508666066334524721798672531902942498913800588847067816614220702012638862043965038864889376627613192544509076199927458350488628964534395622540831500160964411293922727922319918806834465632130147471410820564940553043047465442816243205148003901804704498606283674374207259009073445336509461519364195728067048476487698772320715561411873767890897843809649364855771670774429183142950111597178605955683758177481982828581244950766667307330423912658073451274115585689639663546867880472131079124480096421676258907588527459289921584684289409707669699230002238716355629363175036029587048758720745212813556913051761186874200601211200639054874097444881812534385062099130562434668183570475243116989672747846387707016476727746842147443643592139466137886009536480880334505667736768690776997308790073394527423418242326106079432945549475662047009683893397511718394443875584603330665404963455156457328845476571416946561661793454823821210325871052845992753466515136798507592745498467247014841317630206042147128158395653743072585230009177929551776631091155800813438408124705884370704294607475317063423841223185703909172010705303005016979539481627007954658364404558893995772401306711171007226118605726045199446296113452990427050763024869477091493734576309724621608148904558118015572945028035638581211308596924480044735637815920120548115837938484464699369623248577120262922720971920675188535208305156560902874418965100728282624035490642626988234263583254824799678252550194320680625632742708399993337093968317705844006572563177617206486605026837628248329318423549520692637458058236324139148492403654720494909333043662319648719419097782044309474511943076496714329392521384020571917301569766065971662352926549168326367316985583369651166866316132255293284267567020967953196204812531334588380261154932136850853942495003189987847602604734615520809507294180117854864998218472324678626161243113961814727075684847982139428905680492634075925533806148602805502994489058099677394556284842940871603786180925901499654198950532999934857469580774387960674873398952361973811714364972491073915119822620938279506133030648754847826270072495321589908355832353906957692329182797842978518916542028314065953537122137884387218553278884463919230304604222888474847877351410610395882117839204974494769626337711038540846773221974576539528131314138281662038000308924315736283672772281707826283585726061818025765530176037953915211276445877792294961886850337155497955619550674769963703162425915358590263152742205510294895815642168888608091912874119296522684921440461458648928097244811522778883973101920799781249915421709710024230456165738402430044705368856343488319122711914757586678823278177647512738015339474821412118385835380249227390068151834324225539124793148748848465891821483130996824050281350596792254716562040646612615658073032681722565554336667433981519306950433130136062915348642468634048345758038446462152948514733799141523217896049559152987343516866948419445940252503197844181342208936409127999142692668690164242124404927016815898667143372317400891695671885265369953360733084412530110491462459779123791894639967968180233170382898497070553193723008250029243323587065629580453343075338528458885787396228187326218289430743570153320483688058598890722550598121550086307399903676138018181765878394230561366711650043662363654934628806651269738463679068007370804083836432442661350145882189959881437131308168274053389990413799377870451394588606199940170366529168283751928661502053313643279143041902174838399065377746418005807433875812640535743012868309955795688675991571218576736337364227418789571717281136082993672493555200889448216490089010236701344498448447483629714413682843451050459509151933651773629733346205387161495556655525328793619622335860223743787350902066974514995269957372463683386132673185332941300437748409510713820001469686278677861288199805084762398775327394029700703023035036728715134558605712460925915018639613231475313964657627906544170458583314137503956402719176719690528772274444209602388465891737029879443266837992967482159870509828960722419184502825203917141096319932678222727458102950727227525112103555594369345416526581432800738030841742980637557658467280885785957297013310173601355050095873821307859598022731005452844497057054386379244163695380416706013160595672706923641690167748897328002709716979238122091133323884490071223373673513716406523004577850669109801276653006302658922240235441782189286512856780721654132980745883901108546666435172045049504588813134288145979175052817353434905460294553530259225657389954969619894178988033001627422766100532989400468899734298216790267527103180361654610846490143613945132253940442516312851266091061550948882882654276699595848763312249745394905814904440662854786700470556759712503824182446344429359062774437914649365740383405258009299766518029042083439914160812666022281345822561831378266834131809393909677583715879820358643500501809376409433910966276837818215329049444261293298401998625727022456549445474404714102825117355400566090800620927451966979834159029854819440445166782700904529499955566525052384770176952756029911716216254926074546016992697520261578024742750938018841276844447123772484697827614737340342940108492804651017599228501063043235555832744452049846218336221321433360429223596214241688987495261977044288566607995607628158224010253569209379061407397703881757077032842862517752074619057395126179647537805099575305885153880001369185855801589610510293032600674382458721136676983057640689686869939974179202019635259074458494287326700457148344980480327738793191175125714970196907343522710915492082769195198101619695245976371423912857911230921489861008130380020124842948300524082554906032166571345951846597174307169314896072120983597181649921601633287897024700294363978281235788673592775602219192774198777598307776301123981050155397302110065771067158341589361966008082987059592866150293994418143521576427245199115054110850503543146644557121065623739483591408131821445965000864313165819943385053484038959606950312341332199567624192432304146604438380189421263413120356835176628276106300288283952621740036020516194963888273789032325746110278320192359487375564542204149874357258568978070839128692612307007357704269430590652363248658346390039127936060032292688884375471985786651833207007825929022502586020014781549729671729522691287639417162252627952826755476358120395747183439414891952183691079992474597777844888914973113000840423811595345364721816254655853000845227054840371533051480443895234653581719353148303960769081069432850531233414818241850252998900814329108596577264308158590427100668087361728683294587799968011108828933139449422210544264127548574072113320769915934283320605228608489520400066163045484628222010629648321725862022837437762279493068109273268308123532245167503497971786916884094663249022177644727396951435238349649336152380582528630511932908927683049686375995646757742537337645364854977047917014898282308140627292117535341878589258919106054240330781736722346748515733724316491882028891104574342497115451611261984484957775339132254896013532529943570192309543439746681156232052469228374094565258997257446962586354018546077909465601629076647737276472871920125088640980212179849670295404239467453768900641068574783121937603139848885306651326977449845776332481855338262315155061566723494839814285924422604680424239313794065637603704035163395198633795934776168773937603056581193671161302052376504215505943469884132483375344069739766824477064000924257288720713263499295453799321922852907041524863714355466162271610171293895229317038822278307273763859976005768839450324049251203886165107696644875808680432885551139496817843863973101949173874151853053050813458391412476188321081622734648306144113100300431278128318108114721469468131539931824524271656844155080489793677707188252385582501735958553320665907041001739312394750075332122102323870695566671872815491000059195422404707148011974198800014805133283749891870484532576830680208055442367602550186255236614924660628044650410434215671898066184219626858942543062468925529747137838806055825270774863032574082470437586598216692166882311963255201824796658510640382443627554928128207610240183515021276699209415858824329252199436460563680527022525359599553842181501263312566274071333137826283771365843875905231674778086440434836514180909862072080263596249429949849639572626482136879682013034018387462013539484865051352043190952789343655124855528272152330198054866977728192739624228695661487580831474834034974388097967358359403860906638256600892925417807587236615090919782100320457148358652793962965158600554462385516238439555720676992065688294025575129642067703309886347264577231351378801281630012138399212727647861367145280951960049884735910040426329726681625985233361851440185843632840705371820800493849307796387074433667727380929946976093874470294293383879605777977602136977523605326003924513694588057540440761634555436816059401197109170381917202780024599169115747408624125991843662628272291733135530817267791825712493192435742462757144930669393467917022657184780806572568436885948999111110540338643577990242735254335283103749523133351098361876424029254979230836668065805921122388186766482241293950322559842738329452298680398536906269783121845275133504322531134088512375475297961967737941634883103651724898820490958555629507988377213523712607031423306314739019107157291268611329093186280246171671859710955966200581842329950988066324055636989353607585571193531285500370996706005045068572339671867440998267601466026400026060859491263863786738842862819361437102589120829014616662781270189969925526112805251989971900112358986991941014818965345872135633605572159977861444973427140348304161396712096139420634282543490061086162638644029997479827508433966781108327907458199911768272714416241867189573462489926040079532776012912145746416401426170431838667861765453048413480882501100463239282670487120887588655221787019084015803726315383542628756759049591991009183236893273107476756110018823929531755632512983596580938130669309235586745486764938427145053094043016939615238629566383397492109474799766277916540380679372517002985638153689656164584097553845984683460513945823122488907271530274236401224165863335627316771034059902230576413340059457391277050213601292631824112339690259077397333865901976064650197641543341854444808430930805717291619924068018047001694705001626486847465025575611778329069371874077926126785953916846144559243482057037937560469277913390676688572792005716976577081583875459862767735663589872997063033420026759771607042395813819435076685897577329353089546603437969161581563817976380108840523212947115170081622851313755626102381339573921316214394200083628386661709723029338414539981096121654113991169160732356523573433965138009902898301313271722796622087573984118196875472493565915263856704004628838588897601963747440267713300049226159442614390132865002583506768178207137212468877812063054514565065044479248609805282059728357975647739143413858863937711079893626964742167147251528210851947858657102752710820387014456101545883806115052463722568917157270037440192766631455598374281701311755301866294667072432207477396248139647530747049724957996404646333349003044881093019316797770388124539754760607701944328568499481424442403195099206432980686941731667052862907870416792773349147099336397435371714857266911864262245118294150181824031982232569800053279680295301031002544020941121557819959899497434890212595101751958124517544904067459198863435882112082930459860890067265186000446306894667604557565997093505057251268545839902200390075472295168153464181305258465736452235797848484846547468841942114750662073886672879664732239921027573130614681989124819074234814203541005993877587094837131673749963387220579532432674155756152763187996980870264655085413788053940307039626909967227378692414127655901256021031024713903342787276164752057331302261804242131354628245473653640195603954508342347308005729389926085981164323876005119933354773381468106343458461848998506090492098552879975455371428354691456349196975104410128488534901188364922368007920181513755711736351478904406000378818121330092105365072100964254214662949527526817568261959014379351388524573730529085252722636826818092370287342957345124132688664698694926212873200125022874228163684369051646918218460540936317705882645716178856719752209006886109423050034493465012226828240728302405117712037165549334966671051328850898679189272896083999666987551369460942558355940364515634775431109984380946654518826777466828763812645406085641193629760601029871560588015460844448665964403501169060282392328596114478199490263110808330320823802588313967287192453915559079951828938291685291984234176409131087595213875628101061408735570118048534273989635265967317706211618885171904561355456070639618277273310674522378928259711670642979145169141938921379864056640918282505977614032931241875109261363836872825434607871242116190534843888575956556814428992338074036293605527672194181169438664892968353184669568775267366911658968923866038204799357543982862514975798013398621821033654322094536291007883041877329639446048723363571161971150473698215217721300992597249606367227489537880342566452815360320695386588332721799388800648195331427164932942512378399268348359186242692483743031422550477916600033649624615907298777706831637249494754406048453417065457869754636904611422744511156404420077332572434742466167547968564002013908334098341874407270926400301697696568880432428598094929014308458412220533855797384934577561836146964055242782083681522912798263610625675811048341388546317137681339125936997154082552673232184711394659337314711214352654770267135389481465954635699925578026695113802293171199700371204622968028646753753614489227558174116921214323414146033946224700384081487079747531241549670867249620686538971174518619273231077737924919268484357451159106877658043633510873124008650472247442713167110689971550057034572586218982635926308668440852901311184370360237538119662678177832326762747323319811703835281941392094840605815188087920431180830729350463681063677495292974339076176617853154440941366045322885941444361300830383406508713990330824252372723959067472092973505412363913538746606493636959004046735823575710807606113122021840208919998506949921790974731129275708558028291433929558112377500827422989308143854020057250371866449052311992960292763447787825023050567799418638997574348914236559404411798736729965871412748989572743214932852504354930830461645145950584618127638349871488250451894280259931320238730124393973078397596356682161016782821445140281832939262765419489480685428585732721321028657545036493533349330713875733500741171222729946937155439345475862557931640234698992012576854050062920996330092094163993794480651311450671666495884297064850460481760972364591781686591451679859220423748564810440801072903032603151307012468037475568853591137839568560090343225202386061687155729620097306355049296068021636452021492003367875909760426676602173771299379746599605775098577655640468454811487557197505316536811851750269301033488610150344631350878896830045180223924675960156521642811548198213578635371926017875672113351800881114399136280161934820407012361756514911065361804840041316710562629970877711724681146929964974912894692551182273918810415681888583753237180502129946622442499544014775662576431382769510419648345084446546792964483136999991649950814268020976915527242539716036320334181179109426622397004161785542568799619216077971030487271428199513409351178844045392079864386113481816601335710086000527131602817930275162043694045833969609891108914036708365673326106509455541164958636648708426725382562075846606883781147454349722248959827045884897363288837282129816129353169031923950349876466788555403351587270274356023135789068264112810295082349915035104662455077536773825165221465539333042688306537624233119420076249183126300470337813296171505258342288800554045144281619476079267341459188526240475029265016229014705998665632633084870933751074029735897927924497118601084439612678815616132777300820500358505003485488053312705388553893539775355186157179387766584095195149222558173698944615693387608144850079519639041667415848953637665889467950971593313096952410532251726330481838068433616090118335432736951330802704199455261464348465683312665532755152319063705837363465543723868410566873323419425168207622135467892105384584968100574018928355524200274793430308447454420592406600294660920138547453651656537078913305505524003460567974376557566209202533844845025179116424015830127531700279552156169432647259231107077517993527678076440063925839931991439749285483684893480602433136485374746341881772517585577224869456350649515599273958539946693823940322935481149185997858291423091642472229495491912335100364278863462466782165042557869118786200165133311479259612898930580646111477175724357003334386092104232362166198793271069746482420642041618349958308078166296484598952352647928443107123986573846466710430174277174135549534589400834555627186594742577237570982603224456817115725729987250822935828867662366503178983570178599746827942726790104608001768620325699678183755726825839808933510592366010735385117073938460262954246679818783560890282801232404744754224272111275972189045435324885875955967916320569598707023742243405871365648158860287409897709243439669092853884829611048761235280153831640796416295728284665966877677019718733005100521324020482891603085476109822626876217504119022831250410923457896153320710593675734178014444212818815608856030307803639727489126431034158781902969177558471336388691153844080133055983513046901011163260505914418087277103189833473004335026792825293418894419614611765878689115968637624766553091255518818873872121025162661721591458497103802876679832510825008864946686822773852814076995844502290694320402864179702844628216230427097503077085334673509318795360430328534461688427432345016433730520799077166292710399490974764970909834876263785382344439502647229121547815415137289241318408084497708114413753260063730847246232914068679132542421228931732125416950801144288592360055003050100088737839821602351908077663093210322763311084589710947680417562295847560931479684891393162919887161323466501662033853402428772863223773394829808373596511436061521329820610552469066678383794134758673483033479152484902032549394554373797148343203683088396384661685630079095568051907886658039946541502082568749925998826085765353799882928086845558660665370525570326450844076216925851821417044442286693763170938898629434530095254271499900956372877118430098203980061969206398039049562040686289738300003303572716884151362225414252027390478536642409974304699517301047911047749003813294505293444639240926198083724147687594140394848429097562137296152908194861164930861153279715556163774023311510113869783925776898636800773153679293521572828995920739561088182198546781640994900730038116789852014138938081482841478105475806135100372086717892875918872354594972003560386722101346844498005880895761118282853224791482378749293998925607087620765081428056185341051150984792913192702041674280046730097268373768905106495734997476645431994431523797308628705860925760943001946191696217397516088159621847774690451665555556456697727130210667776521907465645026621432701175326664004823653951388888813645922364925674217104759994481242555288097772734631568404068391394898966873949190322930709695013825109785249507380448887243166317851764364861022315051631272860776838946435395724633960211318726595515254574926252086332709932818750633586225297785367435061069237802808266973751256318307572722758808592086668122632772538552915735816608499779561538255462157800842031643305851819573345058489146804187347622839461267590856173971346208725924523921351916141974458260060572819322761651936495066813636614483945549069219961026194250448219482577148603535347685466703808431678271536028815476001681317661372287180077716371154939183941410709909971592595754253984842983621338477598818970195124754138163430095210046106803372463033248431979205780605661582778654866217046829327498849200644940091355780906125039044370987558890982794331084749176532077483478881009223333022599225517009792981219194388455349587307676738443400018244006731561639936767783475237620933490759707777231009777900143891866754712767597051336793411030285744825122287293640811957768792690568009789424909142656893797407722877485933768419419335238833652084861335471779093530076699906666452345443448714878580066510252815849282473273877280350599106705610137131551418064397071286164693793968962666697470837043085133783376853641127407630370506854709535509807518622585281495255837725480582290911416373985814939380896884334848432670883514236500947118389101039942456142115153921311675980959306593750520301821867635481303032474785449255590820071437111611476193116813401219087037076191491458616754358626513392265739682443698395405699263814841485908553741927359208987861418111498089130992085268827544357728869123571497221036902514293235021032481813751253863462822672983962754104418708713985665697005557528005872153442517744240024689834017575632537426992901999522187915673383510557892681371259105751814244560011445576036210411275674493014428168027253084398023337852272957723676366443787780758060376581364402417530024880833301346191366697430202348981219481534214134925242262369723536886064116501235405829626388250907756566954495329725044547979833363413348909766132328995667457137826091285553084595263950642462862357818439526476579139291407690065445444293202158824874740681824370750693321290492889583157988164206402976537155919699739746216784185005592386300557018942345990531636676669585387722961482572709920550742685454369816198593108991387324683789306577570688208701933596288058991447105627799752138558557745680499804090548014405926744482708506308476029659630959954297285231602977378202713388695170015769063943027814834743570825706139830226950153376822026930724728139929452516964547503960615675283317134354279445697370749823291825522509591003415155360058397013919527063590102077661420020009939988308777119363442743647512121266805959424936366638171013216823263663471138140446007386111709806750086207734127447003330130907266601234164360498493126007464367113338358647142248600908006202219846631309843714068394014594261509607702188711680296655857686680980382902505510837893655214791965882552792835375552110898676880827431327438409609803205032523646866511596577722587301355725159296673615043872387065330411278109384587038024985126758783804420297358343977472430838173642116020858334571648357891377660780737269462388738761674956015675906869589693295452445015113553637538083093108511952974934444082460721910832319287473446349204398138164483479202323330665710136859611766414666098029640376530468056089896138158386802254616549392468461018629638808473702043536350449147353528364362183480148142419875048469180138155617811597845112546540354968146367003928773712895384023155946199912256014430402402013250748045139831895065311939932863775596273483272059486843960235432057124558692373322586779440376532765253410512138267646348556276101647002575711481018706449588107882033917049730584422486116767290081629878762388307302389246457469637410349581921092390933659687906436288553050501109419356460068770388970582612340635326167187491640146663794093401476358794197430306374630376871916925337759322226271445005150469337576374797973481104408576789057670912834808575035054952284056822606470419831383630723061886825073864140371665214168942332582545864004428025187802501422031481305811346841567362021119378499005028473711450857113461853536519659183058235170419158457407717611939669295844911921168128811325802819864485654373631914688966464711397411999090085669766046735677156566964371202887621993746791289881373755634885619875303814451466442318805098990091274499099320944466811442554930043496895406087551073916156733424612955373947554222022371554585383199957623477931890232846779636626556866407350451344173621847999499741142630365060461040970631299420194912131329274476615639287779910085147064925782529206235617956765663219309762803644337862817134858788244681468058943441362204599258934659608404926845689826977875055938244148171603982267414152295711832769413413398893498215605942758330442365488238250044218123984231519231476486607316884954083495206950563350333751104939111314161117400294108556645162976949045934707932421980408901850666187979339974768277523893872653820086418434973406335720477937559941981885551741574258748289842698960037171164258838631924741586797596087285714765833599204537857059530711773521738938227574442552093253248477839534656647008727772756173156189780823736640630151746273742759065541806060940143722059690543235194647686032758147510883154360971028113383005819474361018354055595986808123062504008047444615788076403231508616513819395839915813062023301443622783401280519626312435327742916295858817303695863350227083432342716607855393745828972133653465430311317935008271925715644051805958811858725655469503349267014278733945320045743927233994917005784549498357801124069537971285910280305363205353717697245860902495846476088988585755908501666483688312740045868355631822914785862581970944110436285076751765493449520230691689205440486502236390405027258701493373767076930993185732756691875890024348618189785380797444222533735479502035552663327829117771177310007568053309826123603367299816251166039712518766341662490841595785423688800453023639957107989530574724625819905717643873380486132433570402698627614971245109151536160243812793051046667565954688162503393579498200394813413684427714103765700596322719782473731749359690125776484216616344771562468797457820765854928295706965767880249155484406897519170764674434446726164421121452861799388230071604255503659611604934042589571333126090767673143089940606978593053965684884257358194686960866779244798338151748899150478293055982061446785742883965358310146843877424565631077039206968576461670951960876351816384520567145513513701843397260580192669011558059334344615833885811772736010856390292620316596974129061382145966433166099469527896629796262052043220861093019894782363292395207240415333093740337900295665071284102994987869312572834563268271669764341132845334490907417959064226394546770808606273303758111954098689839706469714624674293017866950109597604945660109421432345824223972215963749463937613495889776991270024528789806825871368608709306171875950658248699480800244584891649354930281561156010960371473713551484866340320074433853997460665434308974205557377871567769384915239999856558399364644455554780674838797409598964768220196431141334836052356299627674005327159887354444687485406837682684333208589954274763526374542692365260511539031315154172571321818648872325870629146740176090116793734127673737883829575942525713267422060559063168199179377240900527791935868191131730006620533816827337072725726514619026286896799663181561112015551973122616784562485659966229864940139725222523099351147166841444931159300442814766103125365336778394827169583023186049818469223524174824651938204047144917434152138540530127703364511564188680277401173369424234862994634803635603939076226200952650093485824187429007939388617493719623797075838228835176823019950200439259635556663389092654236967517640215095378555684300768655015655193760780178357903532770172570239511851086384009616379198386781685085412994493081087702994073903935848301923876366258669726628892347585882149492618094888466105583247974093725122252913022696189023639718816938877158159558291784557650020567090808446043836931459747971875448389813687017818562404646137427950471398493435179902340738430500197643061634567143317901272260298575955790370371554171800754398831443212261267937599864639940114889852571189085543984640668268391487438444237497180431242194642870618993633507297421430242583129445422693934658554217600208715113147625616975849189205157023984182000159595421004244534681477182115108492685338305149017852339320078149628466802489228228560915934387112085936456041384628764126530092846529071040370832028984116619770008971893346436073321834449653912134389380687617036683433515710537931398396776743888395314533424605162282394151310688821796352429328843979060689218275187354211928915887964530487188215125996469063295185342838859939616411962000576954378058599829620690324191610228944889528030621862057112364303216728092930796525253160017498325120500110027592092093420792101638133360649750411340885075140000094083520674855230225844453569787845269343062973873316634290124892043559837328728803899993180476972851161750292951728232504298151756536040892669007576325756768052253703796026180904367958619338964201875359067203332422178706360182957010370475140207773541328840163455778713656883097081709800254357287266558278851402741243936617375071041992986251088624657537184390634653378921774601265584593513630350091581943333716754975763918820472079115392081263089411804916938856740472755269118465080165914462102393481994158650352986850495691218755783842609217134920964238623114930006490502221602715958644990127381156051975533688048692000679088586841853636819436363853141625724200436755728934931963442446853340383039141478213351090907045032569406404939389981424663064342702116704329928974847530885997657396504990998942996068074845499892700697774458043287583532066269396506607312745423776838955164805640057247333215292213041420331500200918873502411080696774472800539121128873899539120567117818055730530942839923029120793455165460365352233040020932799665931372027675894957680340463538702803832365784967597293437401224621795956177359276410678659965348243245587034679810400907456901513779303157298285434431389095017484552931978634783172770427911980792284437356822635652855980743297474530451274508511786220243279062238906953990522574831974431429871503418298875504147230273412474537859264756878020574486908727584343169236308724972887132329852330153587344017441079326039293489450532083287544058986314069562913592009676682435362032336261771730515939915876668395329636156661443889878682386408130171347176011501944176900751772861482482634231274460833800825865232613041125044312183049164410347514810265292340576681235516239784267324577402208808601991065224012214310884186949259037950311001287743670091040440505463412112950351202028349107387687950807852310365829214135132333703473349773918127302068686848770014714815812504208815306128083204483155248266611082287429565840125430165715670837773161110592738901742931175549508139239097765767293450032757123555500367483147934612607911721678637648286960579536659619736956100643180148704362943601269211748859806621851321905521704973030638940480603554215763629662892412049967376819461080647903852103471412430620700218536635934495968683311727555471048663147919543283855246786258752562204346632352648652454243299093073688293010134052919001772659338557294855219798732468884274763615770403863968846821873084442068415949546431881566899817740835971806641993465430190663471118329487356089086675333470261193733399525373839022685354385305503002719039854170539286931463738607078076461933878449068248534235369613488693014510523683616606360695028988516785903787444709526075253762776369010660853894561388646043302857918212993712383494954871897952592591597264562954436841935003850592248261968056630275753446269491512146908783620752718430437843813452889951010164649788191367931544488720353365717926100575478604086458587821564018468584871967290781167214835118604722315030064575531465288033619255625803766510176987192347898085535056812391391158229555172869445507696899902489869397271490949798801951488590234343956669538685430826160918137187139971419282399469994667523562040472536700987573804344162193526640985374453950129707830532267347295022667696420278069597765303549032279959760056569132047642351045710401778798725434534413397094446800008193875265128392194555848016965390448896478037701024682067083729893709388951982506692807733736723591993400561533635669614407469150513486371770651974513972063485742923878345083662086998228758867627258853657711755248767106858046799585670849371607713605298838193527928864502191764041725458043800788719195721915336120755962513760098537034474926393061624105087454815651863304115032283364937889841604543045256619804054615742354413558985836648007647519922489133839574025694890085029665688401724487691255496985676946951952936847499987719661972821591747039814274037982535509070652765849831074508960858365034556177423727340529601012802186094323395703384101476886401556051097773996105507244898244731557164055802555587252862349168277749472783075607846583654628031021545244705314512138467427194398991627026303249798870618952998753518608566289749321392425119187008195401998646545371067309484256183780691098443366981989291220560411985584315856822835406048326695027169150457808036626936694629174308584210998392599156723597183530675631888372834293726925187948989874140866896535320493441393534576470832216719131417853043462946214791675985728741164872789983851087809208966790522635987928709508666035887585651498081544953905980124657651404201471031742226663023983302738593883026437614193633009195638188014374548284533976594596836228342787948789682235143183616819699049305024272930921648985517887009438152726596087121791824405771001346034611469082051157276706890260106439308411100322174496057208236390136652657087758465727002312112809410354128420907435065881845135373337601677071560686441678575381907184428855972719177373790008445072465520223004180605695343726551235330040410167122621215795519634205132155876339086048317368718641263260710830478978408259807191419912627940999292902279819810567531756723673452577285080891288951370711699502278135550957714982769695513715700673934957369147334724458103873586451455327630227096156058872712176232533963515597156986101501646782550542651738321856326556509614970492034349927485215996401566990994518678542634883230680814724405058993065275579235373630848944660190764143024016497961199858433628150815937627617559516632433579908386091444644948170845430683640323265336910246200693784746963478938850108727965954447578416370816785042373271420525813516782915013836904092219023723762591868752093079833945989088533557615854780508138755507778201474452263120829830446730484723091511043077595874451962611722436356271735509503305130522659139009948842615714874496313448638422189735301643943209516852710736434720802281094524441507049516023730002757706978846822856445845494999517842128607176210993196562990703439114504692364811888700390696869517719063707355950637717068467699581795269005436206387440385041643982920948580156016068913916580278074188823435759613348591168286783696169794320981456796950806891709863014961706095132260015691163741166783220366038571117243240504590553728136132397568246918498839977869517214127870137464943745834117710698775982308242550106449890089724659434581055698542184635509079020127753445278253384354553756655210060896856867911847460222537656598743523044021002073096482735484151821259779366280119565996089007739156761199827241916563930600664747515351152067396450637456377706744759872603498209420987487420259733004499804115034967131100493867905676731641959949398951258603345816602218628948142040593521563728564907420705009270099753221341999233638156988401491388296669902125506640842514572304268390923457814748638515672988293228794286739760185797030134454474722708533770449059656012878814472205090981573535898989860367519394850630113429486906913587518367388385498190127823057048678897285899265377303659928868905286253940912456836694329038161499501250479397391977884132448783529803055803399650094700045087972922137694840094695889617038494409052227027937734422794522679414970954817017093810114306037580669518349416374583197939995357412561556439289839469244653505542788839038520213720998813146514290401804425788684641313160011973852590765821028263672577270045524216131724082301978609891261459790205229237837934286123589995411413050613525244157091262077495906417350855497053727315609564291737891888601891811560461319706810883879478764467127495977175144489928482042714268836856430375242832415286266435200518536959145670460268366752087762741165971382808572199133110904526158171860532338384936082733323027315489027588470124690312795763739241178155756613774852730782896486683339189570866974598046109102456579536114273907062937351135425808188228206362097663626688928789250451270178516635010728068738896532444109445799607732860730600360317127257939499285439774252843567851824342929908343998739419235777850152686722994543145678337604012987000169043370002986962461947467128429633395899733802607226964697470398756362718958291645561704091803255909804235066930821084851162619998140343372911871431160905731283807202736090611778780998299220468126948975239773127336723403192229539779688817527633614196105907454657716118868462023721335361547000514334366732446279930426943169117573475212960431384803070818023259449671325588365827669984180858240532310465514182108561320499376962241276812596591598969650442602767083305329775893075922399244147831397626338920422093862083233476995847270859413889071282402290278821936326979589899949875307407768828831659097625634078234715164435739125620964917444464807018470670404890188830739557561040057691341787005430721517032565160324851846982429794251652919064333722483385429002112176535043384844328678536674343511238818419479769911597520255523575105788774237239817504234312685488214276117187032369747159143811707482477480782115948183673020171324714467787090045791575402969021961419070634915533523245074122878636906217666365873043876226513965833163971554707470334158516864367289106685234892386931125593452268970491786118758927590780904796700287794846166460307566202769980970559879526545637615140749505759337200398554531269186263251189472413875073435900456080816910117383821234291995760091872911867348819440112097173720313655208017724909204517427553684197757097291923326119347573195421271774932458937220383544385901202068029282552348953983792617018167031077201092088454875737219294339602673774505042756997604914258846989186641547870453498015845979553007180358822775133506255536039721603652342048160340965714688100002558267138136068841736064217069472325001143586156597375624806219219837693181666259792606249808712468103690415007358242733784254663223608223363822805741268400370560159189451379940025237313190820426500684008667674126210491761402205480854602011652267078388689714326170880157478137467018393717959399771482740130032181637426299266118686888923037386820665891433336355878538346226231528005477174754149646376178511815555334267424141385902254079292866368810516202033350064586337550610213438462012910429384560032252129754178017936737043754793678503931240884087288935726025958772093348899451875947837256300478521666071152444465774464641498855789998892509263776559799414971822388716586453489274836365066355944055743506619909050622248757581920572223335543804762061695793097267854626636339605013164687526518650961298966148943789298754986782954756676761855999270540354268513926872765563931887042725971984368992938895768207303599127793719111738744659643430548727785889968633659924949315619466958094180929991034746512405236458822703569616721997520290213408880444132756923485380363208006081886612567327276547228707183741238015387226146700585218130828496651237207461028890360080605955447775312504938220352674344602204507481466786320496688714149782291220531326460903501573114994726374374413497483652561681381541376989823965507100660690215456138476668914399661775791498568455627882903650692852885873965787958248964586565097808744029791454881535074798943118032581906027620195637556776354491259669502684410663508865271314109208227214553303081013368695993009033020673212098593938568234793036675155088362330614805559575399679731248743578837795980905979122327926133382168124332320734218400059477116595328097227014626689079471065527484347511159116851205889563780594493035704063218856716710536264598149541389694230891064192198397862472268293796259248940727280159752324269021518808704929184920349452764905319885806923384042333781236365900067547850704015635749581030131193836343876332673691936974734022799299898427685827430782273400529389132701431206110411391422048780958105241676959330504509787245541370429670998463816281474541640630780139840591753000057679625453548468269319132540796529674683382441875936241651555184601162619652149485052623372034471376335964351397076605859305988023062119124445980772050339955682535730410264573299186995610699485949062708144926762373772849114610416666280971358074850361474048645197747184740577831467978227845378767109037585327885272339048590824393276952153542536987504583489068760059181270883613905860203675504509016901415813023992180966710465972785515949966511443312860594109052783310371751255379362422621024208571607150753292289559123393935746504038157704467534272203090702151523497226346151212859613615299912855006168972803207220635403980568161529159063352216768822717896573264504165253975819910112182295654551111298208245946871437857273793550274527139876286124435547703720888868359837103258509848851691804213241591283592283983538386954016136314528109940607521661329429186263203698407336631078969170592057812731732907349072723601615381106859936965494695535857817110779264015907033639347923550399088479024616072546062839904341122754045217320159313367613606877175321364811411568566040022832018454177329085823522547962508628749360565533223925456447806411070795218365033620946789481054557205998036523064161631071540947493261377831527762629664601235238549860508160996872952875979699486072219374343757691424090659455514497235900614378656555622232112064296153024099597012348033905564134726232771574338584102550268273980822759926518006475201043896912910057353041774211741135818037017630082086266022524821979385201148323066197387851189000367367807213026325109597347131592091844776276881504108102936346988766595212435863118120186011369657125257310807742735334084866851718744329102891510097134892296030296343164605436407185169228642144486936822264518134592105619945100690608946225226418477085445302232342625589677798042754234561161049887173951548746473806448467082781440704686681297644586570866535349463957495723693370975723431369003775823360560081168613950150126034735274707409678357744338181838365222777474568194887597837355537868665500136376937037532150449032478485448736529341618501579574904607045014186093832238418357044221148156131867934105622034083975755471753625876026728820639977007617855797140737278422157080288410168415915309530167961049778923328048020370257969200138956867323198822457695888822910480393533319909645927777089058155917521371061583199035893492814544699594446461631526306579161415540343829467827374800043645717171209572861647008751626877650286170266117706597192271967722598483740278961912055190777264148262234610974452315212335665579467514954200743990144476768392192296027099546109873722101631894331413096741995459748341141052036906747410617316667607107788895657721303604960891597116513564187206520407288635727059346543302682877461942716565790039979312351768704882590874942219337479664072251777101569892840495753905279538080813355693574858522806018925262986985642004830985503519606265794103914365710347292299329695282101587218035596771708355524580132975156704913610822522174525937978470283864007278191907158470733769638137718672689711561302937963807533335936044634020679532845841122102082648593060701784208730742310120700920542283148269119149864342496946387429665139274297321079887869008940890458677654903133917067270957709641604830602966230196793018561861624141188813456176897137282430970218598555796850046401820661463752758839132712232917457319596668177526579967098006296264220279087385694494740943898891439954629088822872281082389013313579279679663924633409761797608663502074995836708285771571525120396041435306337722034009665794887468873724118976717127294651713633853539201257923442009077398200327404463726839374630085315987716724648997492863260130301268045494618550179431185729749771506154738172589291644226989138427717708304398078012157342192270027287663177060426834415547258597629095615864154840915272976228942590235400614220133316845938810269834833161076622341490556729601053466712153012083199176806248104600908850271473766546665730376774954665704726920425452390758688589956959181102253050949911291939513390982043679313389918000425679622604980395884568878644939051841537943229055929282610382472608897104967701823143939494367149146459402420613838536957449559172579237507621809125036250749102014934228925324615995571481179863631142841810678797265993769101398384745139225612010159949556188473127293756371486176848057425037899197455020350945820584795061643733170653240655806722900772444545267630160149513459863653212631106127771064340796827428572885247654316482402914645247772614037479356268888912637580932176243881287764590714111329050142915687071866483262597523735151071145033267766881979559061132103640720501507046784190928403532759102041980043934668208813616952593850780954552035158252167150660785933429947226828759087439916466227949069615969244791416014486503889527981366393529683758181682524080838898023323141438042149494563474690748864471433354955843116963116221421004659968791941909630128935709793436294885002853584548425564157085342996825499919096025103825749891782828627651550582863062415254302540225535441859865517985839595101643917009376423362322782218470846514355674202647189302470530262029552878496101221854747977167652504023634277076356119550283586016633026960455463923018842756988430863176669825542522679361993057988331177780429744287256231386028396854380671394479958405714367681183886379572854099515061764563117585601271688743070280543198264633529992003434976218351549861777001073579505753998995476949025341485492808460390910285070561840904068573048683872358726169499946915428976953992623939264318161457210704122966568464396403640442500139831104636143842928672275188566531743781932726042619490522304736317590759667088556909801984958910615717210967636354807803424903813241549527416079596071676633507709447929481454400071237723606655833932401546600565244147561989310832062364151210222636415327177617494383990567147820666861709360636138564526713705621396073268880038348135548957568814371060084722651283182534949130730016103759553403159854490255237510596469794302653345375566304049496966900380307179840869695487064723549835804163481675730316157757592663982445984935624400812077587037041429339808239660100154253894002553225510448384255813191032310267158619888086268024516744138796232556904695137782933599060996024367558870051214372394243316216473032294392828364964443077228089094925168115688483711261664734000034694490846511749163585084023143035090026791040365126449093512249500468255361514946494441013274587012842980119724957126964287240834206913320828842641052604310668281892704571491081894513724783352581573154517066862607829701773747251590898376078270213094998881322830418636293986783085315202497816143269628639923135922446476695455582686026344253046015409382029876699191779864169384292472463515495032978907028217606055238525902052104018647335355270622362116838139557129740192877317054782731453015623315680257008353580416974591181676672678307353434968852764880178283554891891723634920027968748362418504686825147812628658476685822852871658829431388943464933308210081366742756255530028226974163139549790245679147002667650260783129747643237433392702441161942109759152719014911073460652989308594841405361596798516348951941195316453844833212944685918316863916077923961025439693665602140824508431864887943372065761228317003258536877343558562707115274034256424867373403447770347009982916688307230276822274341515194466652587007950315016645240166627819109620173220585210608906067476005941222750042155322394959063752124575229920615984293117865567623943669621891568615888118279307686131564608969892724057129391193069085509848605037585977991533090818493895182573647941764242929042137928724968452029992037127415667834593107696489706044101802793396588297380009430612924746618897838746756305487712261087074086185364397939022054350206774092452088104347109899840065300382746411211942867430729213203592579334067680317373899152798689114779987705283088507408054403827080557146599358448653756533570467340735072919298167678438573864594597802219443858436810628979307930458291479732814654804276093477489179592115540544394136550822166300489202705190011739273085680368071620081532584511556543745691499302631603679075061020958785294797431365221344001586438782651065648596553861512791902068294601715570499779819012494754911652254247133858197719193539393288442872381716178967386069246555475418701916729703747337823433859532972708848350096921997403711555386154078877584019195029522701170345144359004253784560116941488520765409448080007551117356933455954372507650121578593038086411224976677933072580486427792831865405422911606745963007596554427916550310692405422204961753697718961567398582079172366492915690980726358335893411438903487644813698546739820467025800221518461130171154241900891232525692116597815281689150261494189659026093340316607036926845328086462293845674143966201055350742529589759938157285400675816037489296636430843104678151395388760863827946577998555088659170896507014709164800013163795276890880184051200251436264227180000746252388190972187445268487723794911604387660144434075263676047244388470892172817933739013637924725219683369613135261210369988450433509520245972297607715155498782576277270385902109172188773577014829932125428151149451250728049576194028015099346926646336109927028961153467529048604458206986687082176831545749943501125603520101465281576548596114915452258423607612272377337583136691576382008966554403798829500663832555351524965718181897629419620279075138994773592354827506481349962161996355403899943446363338656724790737024391833259760159450819493066330884323878225868983089116687872185176719528110525985529038103721717348563855012695655082283356156934258831128671143384751730254610312619107797828561302965859552412666562727112353395729782987415096109476129132708173916202939404676456795253403356080283761162872080374212434062561676485778163607982933791705249152263572733315737548744236171339564711734137935277393367419960678552927984669819173976194126356322653510760741183015221446218868772626858692042992246674088728656628986527320378488037270205821433356569064496722767200570841022727356966973212131469442111327747742782591508419557839265761427716271512117602917874841185348487050635374527827196413467897617053686444570357043799228002709472639089303419299140490874429026460408918926676878437307203552950203712939850177049603081229507777863379332630314913430913914034231695194032861497199355437492521774297111904534773052447498410339205817854549304043485930746185042091124216531241765186454079138386388723416818782337530814086331071929268489491633977459024975209280695390420234155845933912172504517096400767918917840886704819570555793724446243021105995231862368222079813799251526571403009692759011857173604830575984161223754747790275530184154149886382996772068639405242644635197648205132011839726870517763241862750056123652782018396504349744756700783153113533840101465993907289909794331010754863918516824733737270620439021814048080760186325397534874264001795668636761573398186251518306048865325440296383311438503382433635440029152884480496347529091449921413637594897426214463066463952969627278016011231722879880205276664945331413016722763662778632051647404990648091982358898376849550847869214589848856708199867846097930954165245075044274716133259510810794372559290718882863516309085563317797159942551116808322711240762442700384321696984498944528459588995033192045057077116329646748674785776106532267536875036783982323130219728280137111037914107776834470820961556421693490849674478951881569893668523996374762523675086652334016736458536083152062406541092684532641217042037152305895919055728949990090729249994139530345861301019537878371273412857565336028721331685609564679755636436375443372548663037268584810837263637064887417147892574500116940203783984400704120910399020694325975606624342549583296975937912054475696838116511501394749775933079180380497339935121865387034145539511956008857811856775179240483232527774706878970508724772290902453477845446274817578465012576170079843300416348675557384779105824153845922795845675518423246843810685727962152965951282917357247797519665983969999794907802494322840678902095974959748027155755942416926468509767625054886882322198246548303710113676402831661238999725586950232408935060110366885752322317778240330693869539935306782373835295101949656386898853387747358483140201880074405367522900884052488149420805546845165872307290597178477662385216077188899174553324842417882191268898679440572631523495601277845517021774693074358423040654104212139924183987446258758990221826291967516060068226377589560008508392318216543480917103399734512514653384441248588967778423731054587945207762655095509181585854579047191809302300567099824598103215632313758483630136549185956844234113751629734643497846901566007277963838195903595720901880844626016056239422908270083892731610202993455565067533375529254826978547839166852868692184839872955052439786600219508594376640125956456316979006713702259792219411204876634489932081010003059782652436763910346655449010585628358201606610674386641175653818866161623220851731667601259895051179411636498549770033827115745493567202644703114641138901376789171649145868830749145430345614156845366252306650754017533173888595097510931053293649800590068731120188367450651319703994908278857683659282355415661955115071468258759409633017639911550131265548823695616320083449292977198361383263241747876498111238414671387664262387388250809631481134867361491363044010867202983389173793777844320803995624270625579077772350237631914336178736632023409036958857625120434188488879513923183468939702175616218795504807063062752608832569912430466030146911911230867432752823528889858317727884893654797047252509923335956731376827919037303235350987546711371887610546307303617110337296591757627452443382262399355627962776114882329283963930043345581611986919881960310051236300971440808405244638615060472676632153541998083552236849710446995459111121717055044663835341060440367046599722911360915013438222456664897541868709446935765955111868175136989471033035404023089643546257847652651370226487300037102779879369420685304164769962279246543586748493702384597782919087962956629347136200578386389454700170468762810492242199047573294984958843325370677190242792618316206358273035233575815292946777961328825887594501097811693839871022176896278871596687996862449075547294700733770177310753906995698764697231623123687611552136987802494361140641608742851151076428883582240487726577474677210178831971398341431640952001067890704443898130909152278829903253376218274181026487050244840173908364356872915614040940818771656160929471614004092133782226050156116826032562912255207298049929101321246993331279162335401722462343461094936990874482417592781308919695673668827281287399870252906782074116510811466312802427278909886692760374350555376001480846012659422967787241165730614404155026666130714500279493251348111436151089127648283920881963958021082292293037424138432995255416488594787889751934757112218007170764601734497724330073723726604484150438672394396558339092065579341669745443107331362619198474988752413056754079142955499147843134447307622387399946998408283403150131201783753649608211863382103813632027455163143851562512253825681189479340783672268357801154504216637439193388600462638922816051276219485952160059476746625223611680403658796084220299022888359788892557796996578494988335863242797570892068206459595365256687869547759013041466440883865629353986884720761554145056060213574218896242404074597020352685441097216625338112212639958617268712051704491931353162270841650972606403689672802930903052308155601180501983920402235857787094433234138857816344381324758160021694139637101275424191662759603670807280813014214844548203947572935038285328885874738313350450771227192359602963859106111759901210639929435357673423058958209785035162307966878695316907489313594844466954507598247038559852427905320226117965165589627694730944070403003787089010004136424516935073486633485047107864853527139135211531550990125349693888440580332335194464988373214120147048398095706999575608579520854505018286400488913399763543546932970668256430133517666068929263326124556243711085477447925075690208399653501573080102561296920430576847840549691209022522106118236897994333285824428568384522871099660561914848126655579222481676341907079476396891543710907840386682881808428412439435247877997710998596103718666894590908569960254237142270835072994600253394723635395925120687702711544764517950670232060752636048081422707886144407087144678229763500094152675823647887479474988063952649118288035788216622260482531200559999714807896971647903148821060140759328655380284850163366445526905309490295277251722116463033428688396565446483323447046225042425099186614352466559665399925128037194232070347493668401939631980595279490408359551874167168099794187280591366314492576100081633651626388362092680797540399250991826112025169262275292844570761052965523276490289572845783588069566910450204507604983302103068035499133656586120548187373445238128839940779969196580203477781871767936982364861819551183392754924940685958502087444053573819628570068908708928482857993297031798469000872007773054453208284933243283265358885830067274091193994647262933838673669262618845985951447710655240377011269460867723721584159983385744388410276788811341355261064214919901646880938523324565950125988390907991826880037183646860148992793962889923130652979342939496411787135759516844194119147445321461223295995345833129782922457444580793183483178635790250364626838276397086855821864386879212891432818526976120113609941957975984580126842044714365609593149645378727079324465251337192429017898440449057976675998517183418067906751648848816406597948565558931460353530965677925521706427728181285005145103622267102226655506307570110469095596371180249337295317691752147773884390277694663038480033779148032953419323209682695336874839816483886580413836741817408177264610046813815221118730370206451943797977378112884899717862992015445944654381322030165725054446183691077116744034388828572701348237699318335504763868107771437895964368982189495363548194897310376338730732626331307121925851775603852967777682041767722536044008054257273961869777582874188310484221983189900998955374916322460863488862192139272161454815501307275575332164283410736151758157406471238066784944753983444002529449531752536963972832785520503693744891618389241102484024922944242779706245541791054337716686899178427317669186584415118740964441367103137992679955515444572673919878393316083116873595300702495643679094383884750216255027357779832439490322044370217456127075108595773104643828214896024786449505633226187237184699761630686529318691439503070065866802543725360793522292628427779594420483114435711632646176768655871683397394311366335563179218255118472315570813645794362882046602700182734342907085012982264526808802473268611626470993409496726595984520466849018441847223271016686697890219409778960928327720918177195481065119586324281096122370682864417997076112781631866838417071806851440792847088662290157861701419898403053350590036302394460736429882776930037984482838766055889768425652898323429921891157478388063036077311483775451915823271872197693455602192435983194823225746103445719016455929984468649761066567469357751734612940609759581410404504865794722157514240874092827214489127630379909855688742854979145583812306892471359580937967375484104652535626025535251808089399466585434961088183857608721290423719663896587117146092376327330218808525712611210966195233047880352795087561105727582467161969438456132602220715574340473297161646272224084648409964796476094376111262110567915553878155107173007031294180988567018785620672850785177927945869931749174179786189831641382514207733415609101291943227604770398068876220892849790546952356350921964239588164127614419930133841268599143533221240745093402182595959058650662035198513333014334279805860371880830127935792801637971334993281061196971469971193518636015154661404775734308777652726279336192263063703809108663048227328511880269040307249194798686211984457866945956179091462324978579184423914112218761036182721322916265875740100914623200735656056539866855127261707890770447515706943391455944838194422151533403296643643066014263357657082044127551672695787354146540979506946086697935119138065982382323005396201690674455172004107706743204309340838370475479452453331752163322299762942621891600459218633333958405808094170750346634231431445047968698154762447236070495733509022344776704163968687445880030970135165940750578305915123930315886064863719709321336562838591026157973211633609236316656382634037941270170679136074352843770647852048442081630998684187335018585380699849583042890520645874855930630606779330723148707753859434371283557115857888766478711239995240593296797390862384382712414669904351035519416944488032624010630385963984885584584266788551241489996249564313116998249111573407076273649064967149135096621833079756438333060818800284236751441183853624321238380909759315048763889880836422358641505837220328476639364955290489710298397370270512543734319989557601511927486966002975685644897549607045563758706289293496068945274209399774004490539628701933180702752352889981177394303647111221237710074475916226221085199429778296190783277503763407624017437135781039863026086802080584693466719724708653929537298680528642318909309380315661120916744384947939143958317613409728144842759310748404514622317864042451106443218114405100855300353330900258760203941527434935673327150132951429887401451645834451910426214841395975338547399630519935728842715137146364588277806664628045708281886397425128045255826487899372370297069724339882517781154082452311977555278458075280530761525637687564827828115490433223001168057070006907771518014296922402012352678747263254906718906703515679124048894489218744199806358971960198055058085505780368652230903526134138574063658308859613927687729396779425468640099302909075230332706151347108138017165445764142466278463086880555374910966925889715244564550414591636913263965149142753889067239790222855504971759258849490296272439220944169395386694660059058068979374810004458821935065977121378324269469055119419375746998129761367910801200950495432282256073834035255510296896124948950093660973386961144900298743688927076216281233714270771253337508235444560349063480221769492807000526889527645417563745997415728095660426794305297588604407257270542271921402200030808459413215423840328018604682832060475025459870282817281358482685709198969470072496612409641791472035040360987406832589704275998356476339764348215781325057889818096182830265423353986984807938894778989777681855462916948371531048650582962471193744115058380260598530650197855926245016939996987821665500191178296970977059049791340869437149901658289388087920218339668745296067192993491917513860199985514954202378523186595511556441987400106379888780246607085969615194298661517630751278706134418260570808935294775610493166725645350413374384977174884694212857215441737104986243320744277052708270431811908662575547346822160073338707374629870020373290877586967612666236355970350174920039418196684212980833445020632886674885073295285531693490817985230194707411318746254777065267820482390472496037962929248703398995293557950555655391190294180911149244158059524613947211959942444013833310395509256410878912359327476479791859071921461432247773793658853847883586577482372923578319600637172285214778927263758954082516922418401988992647593852864027170214752234660974725499374220544634373950498789840823670753782137840242247645441125631979024089444320386442138085690286456662419504140515536268196905070454842512301739651575210018522746035579610653622118842784840617596970595640066539200232016333787181303689483435729857321228349742224625939201060996600589893753858981954703427673680291614558714762653488510555202916288099373989030926053695374491082469601342703934918642533103438637777871842552595718403147260005761538057990352441264339200733704974453920967764898622198185662471722072747994544219752923724161178303294410472972537010787196712720993639030039480194708009316470195184709264198471589498776900668003430250760029411908690423099917095128690456207917143757222776631384690474453260997355984654835502765785244997968101244667960122175066334341058576985245944670485001399322151152436254243007900218587277041447423757970107321292489396386410967564125425861519096887261318304691391387543422351269624645914319532460762216006296524392798500335782096957925728274989048497156265006475251019222366519407941478945887137894714789176422474359713028451499215475314737176859608312072696108436620793552968907949868314127086573053549741770705794948077572270042387257169999513035362895095929497107227349960870723147217189218066907227871596548681767840102655721814408669619362918625273303240849300393234321435912338128494432255256623608164958770071721141816623184854321970710687031727435880533942729849516181335884074889732896372465432724140923653392893131244151258810438793944233969195989890871358599224585802495278198908306376435608453559822938086462725201390355030741850942147201779349254834438410878353761007148899944149630356596708397270399297926272736599280654491017499423992637568838220860113594119252520962303992850995506285622296790672743851315360291365309312816695164070662592716159850292927623814935814373182254975013219591787291069939114365226922574226245117563558499143549163897362497492787839138856225010879835940367414209286959699547397586488711969642845302848125816246011347293714932767893752202108459366618129323542642284719498745223924572499025355660051464071325909039576605239407862005738491330238298092722057875125979755540216729405739360246963352065925404532533449007772766764418493966550714196837470900078768156596776318797982167503195055486784142417687224450598430418773196562203591549247322362458738443440254519986598109408982815808724680427450762796016291432113424339538008610870131294054821314497113541502735732976782438684089881271967300273636657503099671529650236969671522461789309174163734712004107114435532568183662522389264186663140654866592577353516537274941887467075236584050200293023943946984443444495848312780480035081830194526696406719716302503500862841173630637171752425166320715744166615291541006658583599014473696043568140848295736986961244111660833220464237556324735619306851746465955152623714350448675022938204610650099788713455779866682965109746299567007057406083314600702268875360800121046556163127804853912157321852172255082054229148544550326699217079820738588515784119720476468561509893896510077799188498328945388940316511477600071100326665399523489176801800444106302674338204221763688787323196285129555890504778825602552526547135207870927873183588791738279748006567570102118603541531273388197525018218203797568068819958612626136140523935483100570655694350763729949713124610511280328883630341735452487594062074148465563980122929085356366927668075049510182358932528832433799225883189628225610630527807830730218658155711459286248386292323644954079363998185442966237297464094143521909062324321019925589151751532235743743823050012633767464156007989894778224628790174843272271448695500330800535970394913920329806804131227466435209851728765401473465327503083548321576847862278469656807185870852855240874184970200347459419879561611395918220915181285561859114973985840801687815526025492016917858670433906680007153660184455605122853371594565756354033932265346844703360054861662795872221556162645552496671530403251420752657727871954002392182430593038253203458402474893804096638810404198743961573651808361809162902250028097735552093848409324330247922498605692832960881606395246913191885141120237414401427572222449130236068896252466543078917982523483657342044142365412002359681149612113337084092343681388888767358043959240798041654900843731223673099504178316667287387998484938104082464844748315635977182304180990648172087211454179192373130827786739507312894686190914724230642237163696347152550575693590602139410932651111308824157847974977863192063273982946763729901638582436010106387617074103297891879494286660457213972609416343608522226926344598677592043413580691000894897221337625687039662572293126567079361345703587259491848654411812605039106891724826461343937511176182937585644021218276768981459081407907035554122707531904885918617198588381577186502250629146083477230008576978521414183648173348767896831560703122425728449570150528985416887630518691267042458506086312933860205839399540319389536113306143779636847561321627858749161763489044550685154560229392227849706149013528406678486827559511015637878646034529177187478441802231888783900160012359590568956651545825622355115601184647987613998938209847350344967682436674198140595319210201444784359181251003665619276017591811037014115143508444203474934211414294264747689921036576576696343695746637449771197212820512669140617633478269047285109313655754828275766779850358710581798262555777262656752129750403638270934512111413638273982650129089040409348459569821701740602303541483339990784587636779704194638980716678453358281930587500126889848943846009476356913261483320276146141348231898281517493215835727012474131701725268089809997479482722753736171189950097858695373275316876665105469180276754668425067927762016600480686765824428985237525117465954394234058891250922124732981056478795162357551046188899044572081896597446567332117200209389029875741962759348164513026023240762649077380027701052957959141993141134752619361924658711695139989380715528161983967303044183815767033879471594633375707137453693370495467704987602206959384982370359187176573108142750027303557185978270777104725214018640120784956536589216006115788921727120090398888939448846447999993617578700318822673344202934468311418594627857075145932052003148703767833564304653998912678371008245214721197855881441559362383531384475351234728702749124887466346160588540787448971992779577454439928250291375419228670022209864358093562244567219423445501918790628241994179242396995416057590843306051347325694393114130584640830866236296566773518392367409778572767168553312671527397662487481049415831584052618965505036707401050358135197694763797762617349058308431429813561636084973644720887241156378428223285176661196859798559939516096972225443379013656409612933270816632760854987222371619989766196174326249563675105455030180443073404265368128623623032643300257364502844440509263838814105767083573014472264310412621218618640689678774473463191655719868665515114844931834258802037379483185239195437812112902416367149742862592522720640072911338224157712430760031055826184322487014322131450294368437778770292983232469015555529853521003047201959144806922954275618555633839043260118643748971631903596024417462894416883162818568590028762024519795754441834935816256212619674618011797135608149748331529742221582007767909266205764551159068695255602068950351881114825184147554635428695634347867276457178467781063620108351924720359368885998092487254485824856785219334226208289660129486713278031623465706964199927913810708385005788200236327736131610118449717292570319948609675899965919691328348401848563406536872856813531926339583384292064990541840796322017953263687232143827566007280340389731664179006341230470673477200294675617676398438431586056443641668906359337612381214321376494046206205368225233571939710349028815039021566014088151444210431895519790505120706861311396690382726734517230949866801033758874081346608009168397891910058476484697708382630958582780047605011885381341443399870565265062031870424713901406938055308241456140575650594722594511614049212270760441813998511549668266525836318888671793069852572201278119382183241074587163563535357801148462944566055489297511649708995924660850811190867223057024775603248513341105223453591618290996951502156925940504192958344471037735232914846431665456543245527716141450050132910073735514018541758446370101015811150048271233049274459677910354279651522056252875871103327529602764457853563916269556111156906222026144232367219250567037861959996546091152629596524362788618374336555799872148209757205454058504375823593673989496268265897735604535262617820763933136860755203359272891693388509517955104028791878531477624503074364812345460172561341181373163522651748506149624042161732458719344444809724929281967012233603999846281192038351084383097425794581725812876854849682969968805121656967176836431948379972133264864248494317467788195823449776596641835941116245712629415416653454983934062731321691786221094008994261008886573521674403066177810459802792563999570508638717873863695514033764714307334716961347486603402289052084392078801168012810259218095000401601135187232558721869390780607629937093816377100677408719875310767993723706301453055616051127906333839052330399280665455438972249663543389752157376736303207604483241254630878664687242690272080568930962424294504208249898641228302827614457386643404908034209030419102066327288959105878005170482698628147955595063532954768805296969082606415401232766122850996034082092261759638892396997505097139818113702767364605414122659459765814637690074219728893702521337645074859346853379251292445263888833319496207680632851294384268151186822070852418995466187414754060836299380576509932343988257463825042808850595020234359154616101202846566532488404850636566002366911490274552597061908958522988653182639333507044223130249985512977527546331364735908794464364418407004445260525833481613127806456768735052988873675126952997082294002244534932170973799806335158767490036925706484372118239979375972396959012179505759098111121383863508251668092840343499504470695740319340733961680791508307503267779640596818055722013241460523338777127262162622457119458975535073036605472440677407307842002420473700373478146990948660817414264158047360918423766056052518450197353894320306430731581474563494868667591419632033340322267504058908726404283266189199924108642367801473761590044733299245067719054703585724825434531048697215571354237022882507056935057153462991792466840390151492784437243932151514113340036925437906235577867931197755049816011967504055155879914751275010697390483600137869130037835466517201329488809121755657098538362756932629434312329645463612927053435765246139178569438505962911009872061548380875015205069711590598203943664022634259928393929502782345291858824212506482087844352615966187724730664414469791452427137570417185164134386510320964370487845281595441226511395678085544654675401983462666720352838314389672535214276417433320264884022651141012715199525569600603562760927285332726761168330014405045801970148442826106968252388896031507895709441856447501476036654621250075071499979017877102599917609686465736561560316390975698671418295068794049297356466020936425694357925117503853548803548321045373002859490524088027984150131904823658329091050989179236642714325131011498103500749449127207630673185022047599542146909959751686745656624321587293050911456614750964948771086310647472854298471726085335752471406125034019695135484092416057777364979315516644089994663854060886748368621580233082136647109740974381964383391732159158225691756996705063878371070097185999578929825858107458767332572583796405252143359885872567487638938926180764854593127623597527933562985558095107185209607208586522377588114251448320144739982693992374548060042218397685868491617614178102672500417403564922122578518052465870668947536228373683322985760270943325955229126797889823866595551702568746541234380706268587822799369082274385153294171049620042536349713312097557407344900736421900739808898446000243099049268752669576812204907443088138344445599618929707616152537149632515963071611825573009923592430600389353517424899290932462307286738414978346220479697703559081826698931978098370223934170498904618119815442248058136137801091972860768132755606787210544066547598173315138270378192088660043859564218607895862280442097257754843255667337549815337891766605355484809511088790614109034028856373622998325860921582276944269095820734218245441159889819550880580177320609452334321752845636283030373991248156851642823898267905138020372052534917495796247652822837750846147202737031123812130074199573248065131509129312910932659316797013082235164080789776088649315798395249820621970784882624265733133378269145752702147509502874464657671766805613978148713861506625539615472536564301343686558573184427517885100679912614762093403832180891027031641065879053871460797140479379101213972133427788211696834147160994108158094061927186081677187339687621764508498269067637616671937805788793980829446583600405193466236026127283959706661920667638748884296723408842233180158171791246965668016905793721747698146272917655394355707496098610393055352642672371727447629374061104524580370459271709416145400344701459964048231289726846777251587549787292191705438177070219874115380121817723003880976689833112658672457409669509006424439124019403901532423045958480081025188414137589351131974746519117366908124735612369476120526949353889971456677060802633504500186058894531750498925471606704145752194712355877455953919128807733882972903220049033296112571524910343492074264875341355109436582255652777879705420847754362493789220335986284537289591399465548039115022713721865290419013488228526624880114234259899765055337450708911999869911956949182838751570174621180883249227053859970938830317061098601562337538752964986017205260953438916054860598750775721714659659230104801515825984354191270479970784800179405510759548398415097819662101627981461960992703096608678942744023231415402296795252977413461915564529049000634340010117804886665324935566956549225502754222646237860721599617194519599834242591391675204913692493802768907516843056868732155847037211561239036180863651088833975313486159477850358987705874819166620041390821096889475305155216473467941763064809959712124126747531199297422836255229647065717800936089904447632539398180389310721491916968435423287222486707361302828360579182346912470120519090157803923025621754426849459216035847344060717388279776232859175486905242499373749766921655866302101820127020254173241603635311744911476583740518220185725547658632627797898516650192605542144456446175439086082415115867075503838042816863778840102914088419226180594775641822563016983707524152542493782878884792403228638340249714707344519803980233657174185943225097547995976494296442010192344069879284463378885972957045543560310906753146757738948809836186892080859464808351183312411258882925719996009658142292161475432633637320408831591302049042854312002832162107447103098073231313503361954931809630532337370256467828793904762784660171199039477095909225113489187328849977405711342732492098172058345637734095231055881927637923590333352704116074097987646042122743811221050497896330227303154832333551962262856321730379395057999119375107707105720662312192868627811721483337004008103031752683631704903033324470738813902496335663998162873367091510029650838620837296399697611723141716618866261977000073450186834801140293618132725106455632959654266421162289258972789865991297310750341620498888444595769165992194765023010403353499779922075783882953320772656633980373283533195419977247012071651815536203077338863580674632020777520246068239256272957228158575605283337605291610723846526883796469524538652988915767352480573342300359227078652397436899498888539532051468863053498819029332227347343253288849692187231705994052731309756851887362626663405258662912401963519199950847033691236669226151923688179433880305608837723994158145743838030001307736160751452414141175560030019590211839649319336428492637256053959778391306661238789145245794835472553483221284303714880749377142157636082032054004123646196463355572818904354279927927632582112532619333624899820177776340968924826750700622480831852649647833844053882227112619359992706688593283080226854318701513601759923049002305120672969996884276592028729180044839799807438988153148985173570579188306525495541313533779103930212607737072027329449943097880246407737528545796522324403562119535653681592323912553250501470272279614129062840589332624171323193551489597139621235989715661644862240213119381155028332255479271644702665433082418797845058831306506859746969007805922719812920962303639611527227270602989862907162574433830747072865067896655430757824471207858029855059706550088136679392941267226685573963124466575359247407273326472322043108279750883148663263608276590337126490436078459971803807012061274664352272508230248703292256374583545667632348703213795233882720080514892724735716106908453999901120151769949549632894868349240121521831751334138195764043509977777546267074749280716784939973791524728222891354850766257215253676867843886783249039955064726660874131487667457573405683812106294770544500100931033226913517925910732446285956873758096975522195387749024991247870668424193346366393801556988504578098953081350962007235933623825671154722717789442309796541808119387294795135115174223381886663147858891316104586158802427788163313799738747290063327169851473960578860790663409508564212779639307938879827660768914068108697133390812592217125343222490209329968849324733121013429131356777116782326148518668714564145874705001875791958648953172033709264456301521133842114873233805556894562234725746145637786322134288949270726539620438987051779536436976397941147035816492508724178083955960226620352341234283460415845379495081009073704360152487294769110716007939204026188790323532804049272216480535598015831178340837545760484613133214886045367456617543915899703677692230794756379014003199952166071180823986357466548587393371200471063473527969417421249805836853621978647305732992269479093161029684486097345754065864575487997880448417209564913708808564990293318866750059846600355852126812438944231305181908939897833504281608512878444496720294446123918968109682682860334645867086239674503919042409174333027691953433498235247738935453383520858123352855741217179162975157191336651616939783092731006338993725998298012344100105441820200558026486039293719131776171550061430351390855549440590753567323230160644162124317366093278401841715742840444407435059931498268331002985334587418210416033718099464388006733963789593928035385880952673387484276058932719282013022535940356072169512112869848747889190625994745827257357510379160705796559806368679912999740559582136679249206257176879499808281698163234820530907856410214873354608500656909215039505092910668535348681150445220940439585754086773307431694595143249619998223440328424833449769251358504751499021965238927152581930186195555697786122185605670490211820864812718008129729150963918794632476433252195282688829284438404507738358385809088667829969052485481107553571020252918177353603308598638095118298246668260651351316222184290375277291593729233612169028395973335478997359831787724001161555445092791695364400979073757195914396330037859243808113876748765643585390393388235926752507053458389234561354778391575021317358055172314683072745965642102303135742651519888752534781783222193362371878070904326683742972563452961239772651687609814468892870828928240873570522576977345195847837990189675644403280625776924668098196984142106606055471948172727332494586081819127838991134016436836351764877525295691644185039912284052689814386468461892978141848114335597551753528997206405174148342924914574760666542476518180778389321841155675657546066609909138598833919015676163837622636303468452140469955245799883592384219365706027617620012958475238124543631893010293808483283718492603030911891788751146426319616870605739951392453624117701885339771610657499185236962063660666886977973604362442122375668893695423481943977844121308541066832321064863858282767755032359583337595473845439449510153586227786639461517032189041538795174446871383987394500144223639115922837580800839534005447520188391971194287135296361067101624108781306044938525472854296918966842307687243696677581190689167132076183857924118927063731761603479102930443321155807731876154674008885169891820044636369187481616588477630985242595415143331953070503952359995922487367725980176147068210707127517812233767708025846948508353706997165532320308429666213488632753432713044523680824231042892951538844906787951225982694372719914892655660166307344423381939815618236506025406063283122918902068064921329783444813507914017333150715678164171828029490268130430377719858510274135071393943259594637856801206782957252603759854659909437367592160897047952864830755524160393735266876458508124726917647695674438837375930716046774917494350461743936665145332008205286212755573874997828102779135855009473127287927585569233851057958255911862219905439758030016466198311000742734517173625877773272258140062556233335979781445226855620859448451849824068169884829661487767684898165886334752157519965762459973462799180543076458729260280202990479482575535972344624269286601504551283240276769199820198024092650563864179572118386461812751394678633567737310659919868475234764336449211414561260626670240710639314585186746794190735771513819461036310036752005162086008190117028516001135808420891251392629282600524191762461236895713794105144952365406059917159062622466587678000082443501450494729243960159230027590366950107042092001747356639334832129935132903911916502346732602517905080130778740671367060343280371357780417107435708947555369674080020339572300944585886600213554311293160092467135141867798152827262976193085585160803207283463308980174224586328106321876317463205065977116285996678146805238095049918667423397519232914050963536415243467961417222074531223672029133360959606339266193037077433544863294048398044514953966429904265050078736705122302339491904224483496264608371383640613684251248041930041808788828254018698447635724542127046607921811637922674597382175935355654349237391505473974791099038941969564918079527556172331699351506790295207031900033138952224546803945967871863545725124272778414047716377000623249051090556921623856008509252408694207462258850197345401590007405520356414840596475991998324084196513800636998345562862158998938927837514088331631633091784761008558231456489836476970733121482480446146031364222587205261026582882283254667480040215195742171520586225426154046196816341941485716514654980782486867768585340744042507039183357798832430218039371855639919789066464457737100202242394156017891747765398756412530428970323943449782596899132532918497797735794455482311125732412523209591854650001954264569884782027739787600536959412701257244505154458614891275360576253923658208386021458866029841244598913002976865885445095941302061570056957136135443532701638216361983709207952217346705641084745750269098544123035751738633984372242984283813918965003500177938765950636638313796140866922442434965447494616275956864880276425797795030831924935297504026288261524964547523749736625279393840569986816083523098612358996525026972917330520167543721204701718162408686316324155888690663052503822146871999505164151439877093307650725848998553264898474681061849423649689645553260046147820299965263652853169085211473077186465335245269953078707041098635305480639832632903365786187614318143756458406474508236217381514847326530928513894104978521609209192366596459200794943491488189508058817299004485974600098230737138865021148616643568921087710889536256703850718366652928577521208193690613167782063548265934835948154756476793707715304623482483803847332807035029476376602209743572066760081281457626426522324950192862865959116504589838528006076376204322800077319650765998032099396689147623770212968590029592366469765026820475077464722885628584552565127802128504416801942215938788642384464004573139572054815683524182791725788038136134964094321556029931332924406896487176944238911823891433484895771008079903384536759955917676794678709940792549117012715569852570760721463423827151845948011748279135403400107704714201377192614679474372365948457100529507618279555375085994244123806404086697358415830601651375492894519584315582936133499053249238361454011977788584299984328989805841727137815375190418579700703053667901269129714055825634073172137776968577911548994064761124982802189752197064146646619617063575916816003913648439536746359019278584261225205433575169392177185313693567070901613327388918309513361576175615409924644131154777617351410828272579995491058784634756807942369297016714506037541591125740740960271858992605512526885903289497679096959581280535891226083813812664005535532620667375024006994844931068720231384138712707977235891852355241014555212415381560465003736398278828875860809705681486012354004100798894145256598306188304982448218314827727854003489977726130937221484027178988107043541826527039423898888880874459774346921146996246963762504363071131123057631792545459406324166984664814890486089592919756649032067097929504983989185038949759645827243436897539189908080323370750535095551338592869612826179951042061822764375497615727957094549424640950327124267707941675461854627420839956952799328381102693187439855372123863036249625297368969692545459751233453103349775747929724528519262852002608532165503558136184883135289426671010760577287694187324302133895529480004102100648079572593883776888252911835325690342932288761958256648876486957848131847740802341724441589703070365222436938269181199462515605568422697271199903375665945479768703959324019216030373814911274156965331670171169595543096431077244948871015304120701477705684681832091669519057827714243033652699169528340147415564496343919219456749771909833072004111671572454562704116709853500312379106733643025115465137755414359215528300359143560639045342024836414281533929423357111069397385288503064950324580945480865328769784077998641841256481701268254982418972344498551899599479221297587631822678354185858816227360443770179312095304627356371258019256118360423361447693185917140880027693838302142526692816866859888284872095511278326401742663102876075830581923682102297629211525463246603150127073511835870550972354708491556902894577822021872973458175302714697481810114733088135352652206561308184613848707126582996133675648481918290476461806717815154986418421558131742419954022092375039230041675330302973919916290694178458375141656816143456215499160748174270461483588377233375422459918281064263637793632105785264765434853280750588701946847413548705820322833566897763810501584395241308664953154668278760422282370890192197961257287838143285752392359178644664534415562528476858620837106534094097415377799942241280847833335159729521120552047037553820199706021311436279032719524572570066231459198928904293160581828032754854587002362855210159315402074081361906095541311608741239484609080172829677682792688819996321927598322727913069514723127571588071221729314908099583526266905651684631490372572213740189384501822984151889042128776652446228135743524482273797284629108886802281129899493438422873589905412560470986795251109465816660894864873024071204853324695754329699233523812575006124003559507145844464924059405685646758830883309387155624389650526409892649667991753862530977710898320577832058469978333746118844036041968690668362074017386027831877751524996389707957935288479493638379100425608465755341523664435654171961274651067767633037635267112975260924591500140569753340142634231461234673284280858856469153440075768125733992529167273124462753263518506218130494369668750912241425755519874639153272155796092492687239241003937538966090814308016084427620146175411539053584621537092384831836983886868680464787897315537749025046756311337853439790608280144013036399280181489355635495041388900568254394372674837771834190527373492857582212387775958859793867688114347148558799177173213133378867250799622142840916377405751008120916710869037844830416234396170325215072815694386706751775182704974811910873852465335903087714878178677487663165467772736690594496338403012623664468379070536976616622295268400299728954365187313394889114694426494342164060900391086280161586776287012332965343985987947553287556372051937824995022508820724693224584845830721927633202914687716877612847382193231291436119871163338173748839310843859004588954593129925298802070748157449833636164034773161652078768415232583645609566863463285652382321752094925769972366686910093897807497184033335771894982810308755659185176335729455757633446619025791633805963886950756805184222974988616157697423787276644138636400647544256863662572292673795635769006825849115421761245928905954017947046041979531995182683917541634611809615419014881003128228973586775310128796580776525449513000178303172438700935766628271219812183361106314925417133014481842213485929924932061946362872652752284558913505790418334177416256525838420762793196250335636110039904894391607890636500340026752426823366392041025853297652607305810906997259517551784758019000272467190143341481529934490754196326111705747629998176087338998897357853162843120342821552735898755159415134388028912652906256935584411864472164682413225356258841582174800541492322456838674164035754760176038008511636536721384844476340094731837151065717048370667330949216245508127150527325332955611270465360425605131213724884392035236577428592129334257537397248174619925131072494207869875049468038553070185832583355643346427767765286519834967198699756874253330409105981411335831843675701479560146927052909778404046743136766741954948350207170771844374574562979055108450645845997686650497791718214678330253436359874667871008194995462698926496421728815418151925863084435936450628151659676378643550379996208419422003641114726748412175336297911428022649858883746999882034889297149619198926561050857867337573041235114034878608442664964663520395421780576854736760748058967459010006831269744110352878511342430201979826818002043294099345863031664435548888827723832659346280940860163471912818863526077193681774304604054297493781116490345830484442776738833463267885943658257831047626170837304915311130880074597757946686964800356196132337299363033798163858294199189710223818443890147604247279564083812929335980646375862326241966190841378050789625965079681148194243714526249372847577746362805550424160335302676604499869089264831181681155109671107272300966187692949700070327580928033554680632551005914825929054338899398639034112579336697396587689480596276180480050044205240940010299616139232833628515730803705572106062505618117339901458129526224998278665941376227040072983236571459047654470602356582487020717451808370662734644518924186091917227846723830269355925396472728331661894450037026793737486933482581118966549408324239813963361944982336055106734049580738911105764786903875935172231340807454483154728670082731760265941485205551063052394372684678104764158993487576469289767749236749625003087166238409787891177434555995922611495316120840041649775479530372506330695142005891113088470862818460665994095090414727146928802907524050071114274026974829297712763377122504066905853919694033242951284514108154566696606541699492455657106008974500417944128777745311170690571275737595472006278739279883017785023216456663932449347836932193924559413406052999683493560886078825605800009676853169593956662602812728428566141823412667101588547628963190779252824700623355006384117438174419586624503065551959766744649175427389870732391112276125990098695566582510062186213557972328119502840005409193288979072717273184838660172626709611279200038065009627501024829341165749633248403836272263302980919824865691370543683775375243299184805295784447701044500486271881602151056149564078305009340781660734405088199295170655166514622671897537352204848820226003921586453814135070440905784274218326149183643210771612040787794735867464179340774157947713584292220211943781294864292317471471006986766623991082634161543618405740229345499929980188979509603829694504364741376079670635454575598230476880761811552877798699709572962715829951788465492865811197145551385554474930943508974825261747252393564028451851197960449771198255406122118523504411868228962666576260497282259174343052075763882640393707727210707631646494942484759806511884865009875169462396043583832455992108151846193483018949204713983160184092979429535436259131253271117522557459978072269970050214797062541134043361628682254365080626369948529987824932559922040300259862272375045670069891375437659518294458771931920596624784751904358754067747698513705654988136612722725255243076108780743451467375457649982839178745566997194208126946070606526253719057264324199899482528580819825208463948327067306697515990279888525498209996884950025117953616064206192461338607190958753441826818705733168553885721474380637645428856512162068105723589467752982814732061452713499214547624868649578557640396445522434277210090859199144592353723344815934258543070715357365491700891816962550622405132882460132807905703476237004057752570169348442213157271373761519648452006424267326991277934550482084257763931846824237728293163103483230261653568013836238638942925421445289359249048535481408623045430029415563390528047320757778368796128810741016275556055987265310140421651188868520841125452437963675997446216141374691997842169220900085748112672925993198984575949496331329209283695034056376911693103937636498185887317518914594505589123244110265007104656591036683022599789334146301311074600143728183052018963182769526108650495602643669704152959822762615562114465362934484267800694697798741394338821845816560079953465247047691651390105587807125808359325282424025680005925093361410125692882314804470398215481364512328388952860299703040689956967392085821482534861862498407297942490246888394194926976629137451410759924605227735831440070602547998245100043650406797479740108648912512342942863973185941733123987337668877428410362593491654465683826387071288404334412452801321473157242223430347483469334944390898918786089979103431369140468167958537758904523283214618954376586520482604829698660470357363541140190093830125624072126858083055263782893571172151958275763578851376451055231690447081617080093183989973734339165652523250806771759632872698263977931662968657724311014065502618991317327163356115727193821336529501958974424804684760073144017328716187581168015171223481970825056217942692958943337244802383471802719612164852047151685725698022416680228047316957151714061713982988508071195352271911302620250651391035667154694906123937625639354000854719091719063973511247926541080981178187104178736728305174228779518861861922131423650971118766513511940208845463558894269919504303028643933612911536270863111317977061660160025289324762133924220729179933927713466084153025752147420509618779548379373604770000156906994278429733946128939296311214420579755828970444812234334408392641811305804552952087475672782323620073779078300723498898807864980800012182332059721189126191925296496502632302098281140022652929515829333295469491434633156912731667618310647657044222082776422172089500896166592124591087624217320803328495899201066658493430968764905984597153777539849145927398389899526276329985401444483986834968630642787772746702469553055279111536396748885805298525973455527410765636949467544844691121509122983361509581088928389975083617400319896620358195233868827324893640027695210111765496902504666956902114710843071829897310162582468106486460952306961027554380847476307018407059152275425107149874435418916935914763965279124818830906092547261954069008540425759415892818821483480025357586688944117368950858422230701889508887920761155702272177411800681406088909239576782128718729826767085316239268535192720169112560738246668239549705541721004286172398935952925843205083799556828180110963737982888047290651946942461775051560549520513217916479285287826192890020062504472245100539875762345635678771553785603670641525908436875969200393324689438985775087600397311912201513459491044469263341921472761587477423324405326499529461433340537792804085741471740044200152309263940258423865630121841970780479497882211573454346267638339661889798281214781331785212809298933285685710445747447892451788519737734241833362367200480203595846151564780396789766879627893632951093235966939740387411729208646544943290023411395512111713207109399179404188227726204297620019543372164848035083181441976029020309873685092440807694937968570312994900476551578165544925437514011624309891163057115603455259469441236714939706102047893571701160588103968324236089755074846244562493131713726928412298954733349985003549818331178131105335881614616746451517320102180529879534478031058517297954981267130297533336132745235819701852504366805311081570132959099165732406334746971922162009208599469082429676766041883876367437215578955174911584569897102747026087169830956985966584589346527472448445005930928734355037930503104140540795045833724065290807165091699958347448516219863753560861590706034060038744260855097826155597729584052321017505210926666805873823794517995522986460365961592413247897344485873579007052259301036302690856908335442174030681601703547658536368395157786487654584490575518745880311854268074428332211029809201114029062405496177967774933922677994280217622729197217109865853975559410922570379221977910328383837754178796663096241051669113997754477618578747582132076172363351859623258724354679857903286868588725428257966629754665844035022321355861325099668931461867103823313158717558279549019959859857282147881545225212590315853129408393523774569955065662303283224224752919076744770319854712243372128377394312545272047923453553593724658705487217745356881905881578343525959805990324021942114620169237070396682386306126559202952034553422855848214429063801489256786768927449999274774899975973010311439220530223256341707469183546963792511451169246744767964824329824054951148554392014380019870986416408092024945181474577398416614794161156873002219365069025004732512413647136165789136543457691656965352898190565694729569671914181660243878119051251087265382169017380370479072071400025242098675601705191581425995909196383013865867172893940110918388009670500402899513849424696470473080918260409232824726378878608940241117722779554400876653048201438028761097986823917984376873108273280204103503116165829695488392859232741774447135609503792541873716372274218876601409864448668781787827403193327334436711719415407677090270610859101144030156523236446778097499385190643637774095061294687253643389893778507157739506482974435476071484687243359062293863957973924984852795854168639087342180504681433961225613914970313215654500674008868036017414536687979557877642785918332777648199593917654256032341201849805133335507701449707655118032378584529500189532861007519788643762303084080741710256140103455368569829331341805991764149003444664004024514042476507052000470001096535286427374420098604008181109601804543079512268076865023302614940878361181747666195596113743195861291643686546662908639493651302244287865246006526380681986514275863416219025941626179147952318103242468920963809239667162478945257729286993025704977729429169495116324822569570646886045286930073518301310198437141978554667019571329594968564840532867344401079312380525844150479856863823250398442377839237117721017098289529732221361307281520311882372714911122214519959914688770707956039374087010079175388411282475944752573743767775376455161262458513526753331001834618530616554873459516424304933846024412185523909147866888722275699862633934275342318911737043304655103263476282768502072925362411385012963104648862433947097021357191596690814523345048183869618841872816545022383067884229187805742044329585765344489052082320396155574467139377967282595431497164503324609219552030844226312664192461392812022106055471145916304127123421618062543074577904422086507270227054581664804385840105698534936373523676696823431846326796576503711032718053695361404855861714430250241452122383074096094197845083734387573417922117618429799348027684995185762495614296022583130124920757474125885668966026359093519185444823880693736782330952572124433076377865361874255505819287610099365289901237547720152999405873990232554903729902100342519701200323897403962046477939859351147042608946006176219845092354457004926136214010107095172792803290891117411493631467576380926527241458259615882689262827496629948598293450472498706281644349864541810203009093719077593728788286348745832598469647918428454471547634174758383167163157851339591196442686826019948041201816219806374875984451126332239585941474477020401001074846545660211341749603213563934099541190944583285024418802089285023903060514872107166776818741097685275568636939499117829582678296989865006520407090269909876301869246034562998893027292428591175407162534478889511675941685547593537055387534664809489572130866028566656653808385726665684675698462634867212757820234394473861075615263900506675111261761962429564148876732570049893271884789408323555270688196254259426130650529041653487165614628181267047820020416966370507986336924007256361218061612399051696682749084476036463501740905082999016143555043008330326915715238203032561929878167883288435660915281649181595517500074827213659005089474205078498160348872599642843378951414493818033219719530880857979171768365530457393985007025948999747767896957531373232567244803741388746388882183085023295035706647212035106838896326017627632363075543140391063816600483052354953322348296876908799591899555237050852982783744517771291656309135565735365710304469698569117304333604961049840627560510039135579688996909847521248225771964305005359648606580273410799953368338938814459079061758644435646897956162330981006192202455046547380793424208594919504155424480078286854702598912787194007120666184976712089338433338009186163282987345103637452344178582271831460499480242431798080749410176444588580745307786831239891181800345516297592636943238553125029051097543577527980551046031930129845153947038261858460862928470761850384656538151118450414531561809792570413923088361806580833786915609160256974696083159273651729065571460945265385585979532420144447334296043126192121749831125845585787244293803749496850480755870213118096439207209637827904690032954604780955421643398969521777375918785580016199373654684311808872534973259708259489695225648713567756463561278662991983062390983908836287686479807126294449460456816789225936556084735597685956057768935510477582031689433074783922874245217124294061785151717584915780468133123163775874463130523989340840633438139851263120029099611658345929784665045919361267223663826794826894093534722394110203756873223248201214092498177187642728679673113080770401396223225969401768615758382803466104278468355727638568629183190443789343256979165095283751039804126962805505329429485779868262803760495948023829175618158676577603902783069544009279334447255964341140486461721145009959694165466487969362364506982770592065803681043938305910993625222290129109969614444751967966555946095330398797297433995785347175467949781020997694849579246659804298532925733716933065513338797584805447263463847050444237190638828765661712872040286243639059409191384700654253565751067815159234966806968453240121869022871117839089655788298824877114912189719328621285145586128148177326113057917276060994278022278957850268553943300167247523143489848066627273611670472602994795803729869606366376611322373806311624342588854810993555592632798000377296372246831036140124208863864377076888998384318410748493629101357792424831617137706883626881217053574510690825344476615848967451820253660950065799716916237287077034672100564986039077769779968582100744392731028288236176779807801290268316045987931311079237291258511636993508065955376473908935767076952864004847183540130216806151504459133615160791407184531861917131663049765028575827077078962586679462947432076445118123283053571199792821340218348230861153845868227522193161628265483402474888762701152428960423585909167077299191284039717554731707315869249294771354221696089821485108595117158312270850874216852573449586737160689518604956157353906706355399919633155353137516550697123274046098386677489518250097272547848301095770429544054227439350010498161402203083980942115315637967343756263438410399293052712700445168776939882559343565445162855878636831811504269037787689060583692683200425585930291318375715868557469701318715795183731411427297460577507224707281096606966050086000568129821528774139673051759259396855661434975552230814340237653319341104189006829124832028847255495530925440508579230636102617271739256002655651720320777371758300610108829123593378642886894787403984301480545071848075607714613172159238897337773323955956277904770641742213671663846792563552087832063378632327735910665527221040758608494350606880181098176732835689869477852455492806903916192714359413388577804402794596658701458053964544680045063525613528721432550101153467066937960577282153855172290975912695515645538285191538829630746301348303097361044884914535368948936612358674083506901046112333526056350337051149736774446049143407408390035744283441969024622611780380245965566684577803092834591576933285530252914144090450502239280145020573898629094998361932769366771418256531926190967358667928180525957501180146528868150280850959237474613936556821010855679527864642968174258325969640858338568471649442602648838727033595227104075208025544706983199153964810927215598191916048452815073101854158396987118476623443600379297936206573999742967966293654206366844030788923029524983742977505357070854241211732193879802747634199810832362723390812342607031706617044950726898509480697498636553666371197725334642936375062828992826149371696336395736717968313203613787520415496422913366183214682756457030304172386042873830257598489899514512364867560065502994900969111321691384359646565372361351058419378861084898155471451416557613999039498509909541341699413905584043262172189050945805704553593987441702724897549596940058597151031931329201616465928858534868773979484102194979426040931131212254677770660740749889649396404754152519984852674947171328932772294764326154165975454668691706747775655686310096261436416925047188649793751727721122901028230711466828114321295637370880811649914716409841155741440157225796721150785670438620150540547279104786877837209176691667155639521598285248287158931049743039136189693581553848922157701461177220891563690786460163008283562102530338886805803635803802072674565147657175462513120933037233658377548159594410900931031845839332642798114002844155995380761411478902216097901766947573304890429388776601945835057915919647176843066090217255943753470328495679545104997570912467600645304013841468922417891074955232098838365089961941957316009478102669244126591265513956263486367568786150056087669088143723310244802434152070243085802647515281389150881247072190106567895052783823666636118720485988887150623654118053677677832667156627901687870513264292335091659469336963508238906930955022658165221636659344836712471466897782337327085623102074801130907721620924132111130654892763080543587491738159909797024882221364816182668632937035496791713047244674329605162836220127435807218413385804353225059663195419304558684368037488149125219170946417102684034056640926301086352884898370351293674339442489954234128402937734799259230921122360335028021329267643253731666599866395147549478723250019183227171229067510297023061639225387707367226690620709049739887999515573798700015844069497499474118071538820388290007727438223770726029703435912981507675879837353499410164552523919354173800182225831191132426429368554266493074535075823608123040565955632897712082478348061895993432475939385086402220039608465617815727635134381662293556462708311304264135713599832031914846329741882399717117840200435726341669783808156004854400665965014098992147468341561566465979109605223938223611379890583587142487474654368421198781657529536283453422146640901965557630663689768992403214284930380354172666984387754765403230510842768651302041718411904678610222888592360971088547439625162152241273175831099849293143186716169294683614931839523064907019657838862960946621147518912598837751908522684708650598165179456552673627163109752458403897470231784601043699518510821975720411272626828660764019822652313369658570314361794939017050124138633383698805483218162943934261059208911201571461099717182521092954086934867271032202309663371312936992360182107824978689823494363545775766627950389533248001331660959346544634205312454879168088266220152702399863739592417440347738960470404437891968516520309582998676037215221709353991405025309311339237030923391583329067742378502159715588671705151846246500728752827320154405601190049412478437760854527484763198441136000821821198539415908464966151826531736647138359159602855791318099481221345233689706941602036493857009052985457070606781449051026802270082011295861006988496490917980437553293293867700601356159920058157985669003161977915239089203443967048060783447990207317985225189368681062629328094154051829907444480095424208645695372439297025159240679446363431883170181936610938531294394047667514410721196253008770653490826031345786571888768336588489122696900760548818201497887080175811557056085635470571818501072643099678102290693903579730835565110845789363094971554838627544061532550254748508177703053557507558102237224621794053848968181709004657841529680979906365266539061627064770321528282766765158208913518785177721610582334636678645499844108298591993675652161431915677129443287093908828584664617838365119185981394043943075902007628251857471284580048301555523111300476827354401414502735643053438887577604474744040484947506425932460389336869883547075044159591136082950425348236966973203940386479118216492144384447987310055970146585154537308310717229207952815373270822509882054607009517562903839904996385480155385017226495695957248407519801914956463933980033407721039951560141026488155799764298499785563674301264965682506580746795091564901877569439231757881951773707357183400393280882665586712367348667827042524029238347627203211563713001476630401852476962470829851992084322694805631192609837694236174421421074380167808041664506171192819094158073129926749268917929866938707060358099622771132733410643640688288104168267282586044511028641927721827229741399749228653997437403004585102314377718091861197335459285599354061707084413227898761349194074262969985547760377992344845050943727257886599339097564031456899484241331710395091387613636323429747381427816234516776601878056377936047349253820135294968690102156186806234660850209362286130478005171056342564448044988941191331458204126571452494593047352007310467670987978029741384128601163553350922799421292102308471175255244362762588769440995601877747464955342622534881629550197370373267024653262789544557792508413201273278870588833559754028621693215241696953012812035632951874334623850862761425585534082582126177240443992745324396548496532032371758019380371168952115204670974935085164359746803078382411589413676718392286163714214966732019479739407890585352586746107600749231539668441755708336718520539283622993530807473105515250071727377022536248945070509709658809922884093887805132147774612608224526259960670011968925702089260796115259401389987051152139559352713896241060510835126494278673470919492875039228395196230428990506805055996583566016545639594046193328230784867771505548501056425865776089702238048585315858829689185385388357817295511429673561983201693649779905727632553217983660227243278655624672832741100354097218679173129650019114006526386184211769039023383672728833220686440514639689380405952309359377769976348458378791415910392535150075202139851157693817149734397735014165263498900370808277169865829833167045718434190692262237264712944050398500566844290351357492871770562870568964260649402321777318011547098666450965714033329041333198745819581810961793900447077939729868107228783908883898180924510355450595328042018206409591536457612621789602145882315753696903207680161004493861478835340645007509244046090158486365969102115741981710855207953779797034784284027724832550270383877008531744966088583001242165296591783259144442945417383140970666041375809352379157407322086665946265094962547438825191084490374708586681135605159214089718886552600733890841981345471999806536098356414711289019230372388411004209081020065951393198457382819235933404734804371418238020540233577813707641705923020283407248654849490802463759263059677561731279495143972768103341041987269329863070115425090543709487880984272368496341681076676533979646278496931782179619078380201111253526076902045972171363025276051143427287621026866337489701944572617083920162057991252352051964293129588567095444369572353537858142511725548403958049205938894357138968561180471405414035127156684643403954737479478130117674460656635436053005324534545036982015309897112735852973678831847257627924603310973621916932027559480234448087884661546189397318902011282141981949752227050534582944337795375048333359082581000168093921674620552658703459677278859600066670346766631411632176778389549697215598931124767635604580763804285109335995320028719822204929738880657207389308724375388917012581842098918813593739357018307413916735960607995196286559919694315734673467520652031789686992009863352917058808506548148845343402471288084691428496919768470251723395573083465270354557803574421371247355735733553154216436684435480640310354548002696988010627623079607379303410850118824591188080477240485995199200609407210675587568402647362168921502770022824740755942574295456208946437272024894917424324252337711284151485241480979686846081134322989624801603399080926445303045851756205174845340635546956475452889423398563224572492130751836814382113656395502352416944806088445077851432631427383388062883207978989112371802546372983911904583220549974323613110160930619339401820168188590932062108931438494598572120290567430424304141076563921658707772556643311180044804015161318777829168854649017936074615939636071188238988635859053170464514724479399111781920433226593364109963581200529571504654620639037170342600303854169656988024517989936532163490835602356079661004725208038283517381708875060669456913421455571652225749143089122569172168094665693414773047342508205991090146779899247545941165156081723322950784657381667361539522948828283334139208004549748540699135376261314640848837389273505556242733204604197590277398540256370195900215669656876899415200175163271454238598832535230580826374209384181733503972092729397743756196964131013029597575122313564983932863042671730160991861277724891381781592139806503756797491284586986730600539600571548716974684803107629907243517402909123774519168426337079915225340562961629651266654375328380242941025310439770499974624252936977608583741560084604697609391922032334549343984324499945016424202624367363153768591361397497496556487435503640335852195450399963096469311317915404400945487362069467967315963399507451592951194739513498124487110748340173478229150009205251289807024313509639058395733898837557455856884030113538203743328437493548466076905192476860588711494914300831019671278690881391923825333738667749363594964051006125351992774007261624480709370636097935411219047803832010850224010480257593916042652926575191122081427112685470501761790424489595125664019978001061640312048563599835446032917919467103260709917772216565119500414681544083873755465486309021878295120266746090824767552234623686375329606795539994576660622335799631641770391350677355929836067853140864551963345479909836726655587304186885399346710583192907831271992122389491072868301609166442152336718373838724820015390579813234725081792045335385239749250646625748677604771737955229308279065584975534771275427576852402692707481201075448123028668645643215115524821379377155698425908004663247410759772585550060866861609038807639378631480664776490025937774481494087218746510665354549272310780811196978727417657302001816820611226750425448881147398419706300550140018821332964228315035494679973903421166748380564017573502175759986955931693016461546042458713925775115797062829286109555792319559710585973730134807367110874197186302724187350684226288071775474313131963562485321459175442883060769829470583876779491685643730837276766817895378077957977400112407364358261763468897877653269017970474978632788341680204111901419874897472016661707050211783671320538921235034268352106326721022033340616893842934277640784208922124584385620189893700428290956320873333300902661803908978347094982755948938988716449132618077257369365222013179797880787717244137938722400954382896202280226534359097376453226943634136341970326522170414977193643766795186262389622061855303063476714379734956098141771715318467009589966643611413446098870668561254910075199558817319648029219915522799335354411233029402159186817052383354482918266511682446466498411093573582903493492341845620230041875632601075426538945464814916106879446973696475663108941143236040371115857533302290096999586126566856283634410745707256861736172149656988565070727142591943945938396647682161970162631652695103111294734007965660910357908196424768610263513023639452932139636926243456104688150381643847740994540000787553586350530485511123308193575143004884552266023045849985549597907079809182015114453224058000764061560093181396959906697971524491062953600016075310234635031408072469209519541547831745288351041654524172189808353199370371193813160696718630226940401900779690565209766788600062489292534507428411265187773956113802772603520779180876115283075217808286488544883518933062421602467414201726661862203877038990064724913656765726442293876314387339529561718639847625739417734935541081448107103696275899413342657785849924553233325967278033920210328572724868074878116850218532572607479400375125039572143383313690940675793243714331972773021372278944046672923853814188658903063769757960581937174544303660310158311602650453908441528599530719693758966996415397920516733293082783753128061991309188449106153036998657174537229453423120068762380770695895079806997503407777053006950834659727866016169818515050627287202149127110009821861628482428963412211060473089066985362379867602710877127089220071927433057745880355895406985902346279543439272189001785200587674950514768070615644005014935616695132841114775860523615674527353034092791651316187212717007502336382297985241997592114235678001748837626579150378630415562363099825902122935283697827540126453939641371709296260364661732504572531470232437677210528018529018388714029616572212793286943277920652646499708170379925829908018603709185695291660683538835555427063366853038861393148138918186557707729678803844129920676322233501780224367436743097298512672984234636430459394729373006783757505108156013466687523148229101577075760536116080954181680124774803294434595941143340212060176722788292468169048220109054353578723132280122557607554001744074508136462370740292072223755959947447759830570482174336333918098869432675545654444329849832169623630591837273272283418346542002546056338114559473892211519963033530553644433464498790285478303225022151582782432324929434864776788036888067846824026974116234486683554913586747139998007184165021424107968073606533772646875862008774467398702333591939885285942980687949520680140746102411144244752614015410483175890244153998762311141678646226859251358110986832524917865942076240345862527882108234066481255480787327014577406337738958319162209584855920666092969753390133109087227373323867452567893422086120654861099820709243511948550195727596969585440094390651142267104427741974049396083394962599723005899452352974864153069000639871612051504484936443352750248895303678373143334470956351487377544091535611387917176501872745108587773046313742193374277405535928511022222413097081711291125646486863140804986953089171972693316997182408422284868152360822165810045751671647779006843307339421698431758521337045444393945773907897511222175329037402395511709941607315038909239667546375444364883787090404527622681925750006162003451159265135641664223060296098137423629329576297234692025927931746844200436241473226952555524604261002671305496875215431359924204910222536496085272053200496476968122716932391043748565612951460614157039448707711044796684963348107087875097783239853656901757793937388128511391843126654625214141897479354156471617153834973077682182078657016302113023590631470711836817764278183109968046597769859571867805040831241365816705473544087771587488847732372466884711296746373163045246268429965737088254825317956696612021945582575610111420503241855040356146438713209849108697363790108303020691825090686073432980254730975359022686145879146325925124277144162527926416307373334046966316781392311308669808875819781163157409653244097777704893928011251818951879744690077638237951516004849568681637166981840281225779797108488562198926675864311813423494354402953807748995471763008176599989423758399978474135269929124342347946331802779295253736315221353800911236460355376401811248161407200914449627803760207161443888682073449260765411648719793437391459524437251251604972763878839048061188907366597885587833056852968598867487688353119203655956899452455360759910889557178564304078739694276369806767658124184639854891157518640803434856022349258334507692721857362309780145675927297731086402759527302388365803402311046741391787763625669150209051583198191139584835040304469206658259300367188774664367423472591260708816378729052737528603411754597436614912244650387106948800414377933979789563687777708905391069631998823435405628889580163968105830365272730515854284600672732267123447009403557782302823993933872603561183871737539857699747505313736435518256208189433315300305063491138335522877659955751386414809432799863268512366444666682750833740706021576676270687722604278373557419490606000907476905842048771867895641950497464215054844881206299954306874823079459292411429552055761419014695962210174252748124250082427751020985419176502897559551911886144196398987712096663985128774975290658997369107448286819079475507066633240549665896886566417833726565600651856206605038722407314039650159788217553565089007061051915758218208467528649348628747907376163894837956832738956685983666614658318157729839845771430527325992046639319726794080776188438780609844887820825540892833303916730588802810036978145684785637715303821513913533449606836879451445330652902712094533352506848512390125113019539450265843081575058770812383499158100991159787882491163066373551497872719217205138688988149315494807166472655717166169536719851896587087047915116425494674212999967059078311420358106853884692434048346421985566470876959114144930685424562321661858445871959760084887211480189322887271170546467583595864720568678105872968478275507683641150690902815027368175894011622486285863925096846085554653214452363297500964607004126349394466568056708461855946488177131034226196595464010900524782540400776867433143692628799918353935464671854208959702173351938529437811958404460546783555098931000953419622203913656413584472110140802053885384933421471143747203744027359264370673183237913892413288827768622166728098056319699495028843411419714324784084972404306322084988164171977416820958052829825286743975573190306818193193341638432560775177849838025271626108846961823843912371865240797405096059105361629660177149282321400466165112755107387736155261330674031457615314745240932208996891177589809694621243830487536813233438336202597559073579033701264032121228469696927887071037647305779838962511800695208695266845464216563527201218510757971982142516927954938348312986097864901650573448637939290194522386988134795951160503543801530099778545589942399651649747687215143779114755334178820381389581428820648050540611812082065488496905159845087912609579443532643049374871264156658232500317823568840808633729683993062157307339333783428258489814099591966239896567323054356890602245952979738290572411315137403422728873238469319997594168100563931935761313043428333244789527573141168727630457244909325354840302869558514970702018702369629930793203168526460371496626321190621068662661383698104781269790517364057802834811580592430643060236108397659698293641663071714181631250694014336082124813062459495888951984029705226736584619896450322396542997592750152716344185774285483441178633820454133669962913123416668061037042983850087463204233119404357526668568374040225827111571742923966238476505326146500869568404852167152309836738483077538109239951404201943094186950709576336565646968463136920716162751789710727561874231042785397769172547806084660554778207662349582222291136582638275567324715146726957925018792976231241352240082535070166593146748288722982715641600616565322633589060649344602500714373725378305357013954956507350380875655235806353830304752754271171001900225329274438658704079501538703119612576705589773503747020726708424514605633051915934483010756121500205812213221708569311148621683267220015299279431875098175154389142946730764488306544288603352918615046372911950603394857622852714107641659910604401201477537055419803089389075386878604761793706910130751675166637844409473873905116256408921553289929429571676743357158122011078743180433427005487980595773613319543267642703222539920323928593578666108462852227286929324383075543815593672538457841085323420099599129737381194883739988498468685161715916799000051641372805033654160578500513224105736072009588617412448474767047731025016887286859706168998585796997960549004195104005475294545841298329976134539441076249531748708727841803659367620589628781427742646752170592717450883892174516265236290541641467712045122344001380234446112124431372124584746726863384887277130878683753779484670887907814211321675775551611003357769929891202121700891753476323278062224620018652766050074469903491640277806309170668579009020611448471561350976055501878811430919164033814541925274270130120298215285450757135467303545353446512835336634078633905163431044283852798196981239944799005309563993718169299235779623001718678192681315572213765201542655945742749157145902670624567640310190125457197176974270071327957396232458023509026070189723399880836299147397286099385167028474190574610599566240077926346125139384440244890065783542461026586365249338343536994392326288340271756618134115494115823029226752332234580544888907824757693916334490751100301973639354835687968644813647849248268267408874559254991379415641296662918537171325490144233108980603733420682397720322582547042532430992353860901464709055458179673393672025975866301380151756878282810157381299028732746049593497322378156184853498121341282630533492957197768523941802238912533645356401316080045192609704385147522863000462431950210869627964469021766377614613118171287855338527201169767625936157098347359065446590769658031116810258379184832958659484591328374285632936470392938025764201332816363344564163082008164318220097421576561433473970868741908959463440116076235657432994297794135545221256359042770226182781916805558847203137617423643052487570947408582387954918076565897642064312277367683677079298838618531999823772088376508907386893287277471547497537489982450930016688804227265003377391816765172338374150761214229046539368695092032606747212105044278629807236175068992703215345526215536057888740885749062385013273966036132579805312553580662634537178587197666619640999000208456480308109100624485510673014810700303499737289237792457647488119808126394717179562504166132889313767311028227962652350567273335328212208948975203324739965793900743140718572697752716185872600720718840988224915573398352623947364336912856813990259502342339677782875683941272015523048264225908664737532257552583402060852817415942288026758414201364091954817333749768085231499557994871312926341140405633230724973736941065212457091623519605561370015491701805403472099096643339126129297605744135923261641265389650267275597272560001999835828071838946360037880917049239981295538447049869940273674622256611857675259749166498569979755757375299450493536162340115915441451374118219734270344359734928729318499089564356216826602088359036838786314669518758825317127307397538523300324295278596364936121416456182155001346372745912071082241264551458460014676403356512626016240587283822098298024440123684792242108432576032057266603134725374892747743146842399123010968663804559512451512206525557383108018480571559563734156036182929538721975223767315780251289808156510657233429777108433765122769636296983169506009986205946350031954673974531836013379965942497412677543166009712572727361820622145776831582211346163034828347755857228052710909941281493890011433161483066674878938149113807162336217515641548855038090798483708619795740175470354100332968214892553767307477899646766888117010652012888736042364712799484773661361779587004853414050295485473053381995919521780027722643834809896837656288360716243482267852041769452352747044534604632382646519159148447028869451300146692427863457203916334562344392605169059245835606670218231493843737210587990777539598953420858727756699746635506239650106308506197793152172812819189677262721145942528343758806983960582895481758515498600120996026204437947698952938377790315754223470416779390594485515715406879797521989171097219824953237670792418911677458298552570027848500673278124042678915684395157769539066997725004852618907506533822000393591076930892424789623157715338224155878737744515037696008139087343567516074931039033765770778106946058591259034342546709729993024724898202747385831577938603431659707605174409354894861818580172041395259447826653951423561895824213475281084877784837896139624821176038257665716832532603208524642554846352392908780504106143179452655745155376704278535041554430996141448909290240595026055100796046135222179903848608497961096352469116951486157718531110745408332520543422796455491817401642490705082148163924624801351361923744307594850778952588592699833986360366714438441453830462870195564490966658114660350515866602591206685105553932869257439722385544138893508528292646724154984376523358153490943240233033419911128607111322110857962351303682721240059086565515080560072949564323514862213621209788510237864787007136465172656772138478349360890548805176883637239422897033873439390950811050043318016003261704866315095434452067506389031467499049503610953979637315375252317551271303069116775310965946544548655704845427711119311061896202874563291014111120637518868182440293360511659791169462678369108423807557634695722131198571255205147383696612912597860200902002496594372627318248485950049102569160256156306026766180102082055284965486600304801825963347380692775791657018560736371825449082847113608009178744108811653043399040548351319205219010016180342708360897906974327798803679255685946041206686549777287103519418795101591069081151760265605640277530677699095549399326088306743464698656088661974958732149956134546007838466677388031000159600886879888895757117475477148172207448196996886079416432022896823339252042570403743317146198223172575007475975853910132137089880658985588810017165890317937993537894054636775925615505620607863460024207931920902193723768591554287698705694884819146841604874108410319883930934222748765599946289252198773628497317749752375361693979087970619712464284296085938456963836208906554600642374613306868726819170524622208346138379033020986505351074513207405628117212596394172606987512798380442950754658886544525843644594577797608608750763907547563702548134531286068809894018853542336546409845298859249337729812178130627159407334335128162210121008263252123223270087857300192116780512747993223293984567667074476136743413174608871485305171087363867909930306942415959636187449902830324489183011578367107396143409516970574430659544725563845576971557724623495586760611539196905403477944903534838322740591945307196512081631823044975095928847377037923801975524618806095452255916768640823169304310621892349699784206400998554547537383943576848807609084283752981136820422179861150335772400133534274065112335907928163457907549328172655107568375513024414526904865763929332396416391126027867516518034114347491981540650206061194747043830784062862643175785073808787230755753894682484307802140178908644454207286382684916528019642392112716059183876034764956072555437300039657333758069121171130427544209565512510403332771459582712538049876165289547370570407757922129438236920584364070050802219288984099024324094038325653796860376234116950968210585885061590007131210973105574549061557851480271504647285159833860946873755687126553106675596992048336207515556434822358679442051436062584039933248175796709117307608536774221635996568786243033892382949486589686707152028336913246553880091415873906659168668950893409677594747521705345823450219878050178067114261476076446431099093572031422080406973329098680643821444349531642880740759041256765865017385051434311390738253541188511070571178746558440075239301272478259715137964370337097577594916356216337655623306866187559029321989518774024101485366552237195475710565153097782044008437155023324759861629996995100858935000469565421217948778826517259537402696990950113925760610986471373468081266707983073038801163549722372934400027416654342247757505895916152060299447343615759425636546756887177686877061166838046990610034294143179821615462697783025036004293169560777462735897119279999570491750374129238426063793111562408087295032211533637690931015535232252371987530694551128780999727695586282353960392244095132417492257960201918262362425638678449146456188439766998290629447603158441721945655609661379333842952512353773642820455050326086567704788473546168074215868372231932840000070267613973635870551329607274494518726713603842462268697207505431354476462158244447652252147617659817145151356121522145427286295549937562822098062324678457828693205107037635377768260360559340553674967439580135210685807718130888126624565187184164570298905369919445527744543026401095894898414827989619136441823376621846955102198137572914419480881494123194078676702001020021843260725938449621658753948425305228366925980886884890291177019738511316857646805972435096250530194589064273619856184133324291955374806022824738254578802146035400250019418489361086169707535882205010055630524078996040179875022371455942041660737496841571409677395494897810877298370291230713051208678950806559958449561174944000797629112534662829513005187832974176130180718984065493727542890183516337622517462453184726752322906182060987938357105560973034423738175530911263391798767388061647917294650502914796040066508520868840861932761507138323490769164830841597033854139970440429930509951159400995651167095302362611235207053253487369375622991714066667935749298539388409159381341661548638703564119326399903385306024882750710194727992359164418962125140901760728696153372266973120966278008528499306214788342723784302071489668991018031166148598158464666257933212823794832094949645954126180129894499461599123882335697789672569647926496576889003330051128637923298141397851683438927301962359015108634789130740843462405270144313672365858709640965282121403194273234377337972916034871733054749636438287490109982148381636109767377723741805851070274986618013244973355300001030334714657807909667095632643607738766962332031337009985713712968832837450540622219798824835871531249233354315060647370461064792536838196011034612812534476459490240051485288569304745153087919098302537463552199577715300841048783584678156561557436033983378053699908832903606632945574273261346206329949758000071307745872254649027897607461349953965252343385104673907728938084037441810911871657984624381540226521734935341286278600099030821133320347630973799394509984195093566043716796071161233231409728595965289838478334731510236009564701033395724780343204138477976679895306749771891060566248311916643828686499963628060610820222216037664519643990516293369994377471943125745299925492055037774015187893784459049164768336157324746889153768464657268727726419162757627982121741027993789301456959938082912949617148397528639290295857188992987970766412604864626368730829618359827262221940825882419870112204343087658355590450562961514830911678683094584899813128895333313853898827110543723171009744686090730475085698684694023742494784235152962205237494461890503331437153184388592889344490723500878125586121039784599777569971361306157768452664964594049549164483836150670915847651670525910994499008218710786153051700899847314333549704263132814110169261100802529234758360404073310921421953234067180899597309721317061023899246696977822651035841390786777027717382085115788111670898317370933458961199055631079666602257482696735985065252489254098283733685012225430964500917510731336051595043271795671756015837868350981522509568921556238334652827245415470859231925587381412824088876923765536624213572444096653752945702018596477233321645666589908920918492174625971962615163679940173521521590967615590350987697934905774827285736939142002558808178622561387371340494969295354343577331241352481045925773374844907041587013285782076190813586939521888743426405882214760567615900024460317159124756976562773549437448263546499362954270083797997314672711392501066529812111653187909403949466128962390460726537788592229350419136707313538861117052357729075658605604211838515569631215347015891020431189466282036819616406965943664022061116930285351442415115364005130242154049046651711991818483575044424512393040765957195777491222345932430385060245646985692488561098850449349190073139834319120505685483066656257930617717453797758267199071549615728849774964260303720181092671550281595370690028704657908375523857653394871695708009806133567125181321030880848826820568030234986341802462140470569049045390049814813688873008203577230610580297640320005346253090059197435516391057775530377525287732962124908161968319605217442484677226068519275769692232053924885345753787733467723392754492229071790398515111400983096976963758990544228831553314504436281701280342354436205924927576386288278038155320937796839605746334745550115714411742793960636481165257403584179684891980123916273239122626577135973418903861525223963867944241266756696223599783329068280574210033856893786728078303522716749660001745196722391428794967173391853665552959584026479796265929609079731582863933534771395623205835737971562796271369860172369866504233721405441345652635834657874952382504133660865251416901716388903661650127613677369715358207369637257732903798257897866099533925160856472445926485737737357144968337055212473221374436833809092511187798306636439662763417300657248088229586885807093466003163800061364413108559101655949196359906934238389527323625997662997324135957330710886412861754894222727209638952316227701818059655501282416756258189464571682820568426912688874984819390319117776151604843946253118640553511386490168800608594242508101302033467680804037657360001970542755887464683760696186137871859378427582109155015524245864920690177907519103672438561948250523318782247486181850257181666243885174586756819561573043721829920928716848454564561059717005964000703808338240498342017884831301088584278899081827230007597188825640009549243922018778799457748805041842983471529953409986796468349808610678414327073715513214606277254710308986864605777568537597936372260849048746765136376117493202900971184998619655310220186363087117197407531453066390990003731083742315148649235510895025624742544535449377644002513565999136332190837403187442012686293870266374053011436807671622279052026144806165089233039861582842143478737201250084905464783291284029527002711121086005969944861678131138054998422232177352520231220411063046461405189669594061512184556277438645555818347684481815547791195932105238086238370738707962570726914353803746771227498490328578041329915581229196086044485322001215209119609836780963577680299039867652532460814229613815823079769186231493450869605310266443424872163839917151898014785169822859938128041255149916152989269475622953717048382808211543964776837149068927268523477857311983682348587706116830809278408593000072389918703306262245023735842099452344493676855416051201215270691564957252408087842352846773773271197729454367402159476374420521892224928005339383410532065719889141919920600136169547641519072339652410540879504866331286643501752648471487656868486921775831533607071229490097066936834691725546322775048597017250970186275433644932083532963132754717972092990364753732321352447599523726889856150578514863398911440671311675182014733085058986983956472959483682230469743677512524961158773875485490015575931044502771119447164245976125977919302757877016497215518712188321214385086688101772525379330809497659479215907291428736848111964185231591189133997629421015961945587877301113800513638294604280345265777616244583679827602284995559799161142872691094822717361718208450017513787540343584806967814986729316882806637775834347192271765802550555579443411654682201852014477488595931583696702732492302494681675863589444699615304310625620872527858872628808572162806006379494170696252256010541079446836119356424073082247963646124942543885326626307219836428278946865308320525175709291391893283197181235297176715238838031766730231434971702379535414828626138857965737719504928168762439921446498203467131883849123027809459137391503623868301796041812336751224234096466397538669413166840079763971830138749655467200955171330375341275859797383465438004754596544515626750444184875718529965359058051091341942476134769093084412482949573066887790352786283750468176546430831129859267064321530119558431379453044977538752734259513221549979570772215773883296640346533469551714870198529591523016805242391110346864300390162793150744694143555492716118467056127425784602665713849827144472856884709842278796595901738637324679649693797516419890024285091126499761550053103172905883852236675945535097833272313869696643555271187505805336077560285511815532992582362201498346629783807505198280892102495638575659203163342790347430145643218949229418197080624314409069094741012732311975347178625325174025131001957640487631178496485329582303077397549875584111601986635408248507859101112953064562266145672032344216366460862123497547875179685788076802858543793675492575991826432831411390797619716121344609990011243412364551773073557488785984417449162453480246059097293530810350876099078550967879553718673450269595849743167244522595549244457683473801604474056372201957083098250940253717547516687607889785632631441580078434553683744686571534968451835935669363705321894412723331769255589471866431823837998973293917141977426092128423891242049120898017433717724659520420690932809308950600754906254939170972755662199322562680475939632753182998161087203291310486330082194335665277482123914843099246886038610474607652939859281168483751920948566398626568366048507466909338214287589410893259210521946512544356893772168575437144389503228308612651160121208426087450905903850362123313402679735880187761851999442102034612410583982833392624334584352587401286395276223639686440276196780019830309114754452785181216312110625519999175613758726672245457897641615544064331610845124921951439764034205546971414453571035298545042843342668390345751248735298775696318201369398365924154311507849240266613627479172653173007549361281724701146600718620230294179781030355990979261444143337617726328296085876405265446944962349834004268217560493213002164219946557429618389043537708361251570470719340990980741023893624219147357214868885232979110969821049197153253265937175890434429641489180175888885279985227920971310562918543908818239727643605573371177680992292262344960135395638251861827762003578555923341235831156678865293879552144533363795325998751639147496542247996731198783439461220138223009845056888285235439014822619771051104984335493079709711083013498353652752225846977513794059089651220991729698926335028496987740442910195733694591485214166115411093388026690095918025425256068092443813579950668496298847222679931183317623408133856976774610207249250431966963204719841641571818314525069300677993732659618155286347147357674540093486761637655023968407896313447414040517505008907402813196887894754592238155013554614913206933909437643676687105736134345733001286160326363359492978880871492311627469021498239778950684348330630733046847906944893088756448417295802160348799325328788155114065144887729372484908069098746948216709684868835453536150991127285702216228731769518223202422742842298137790646986948537434912735343766638701556903950074199400259129869280486336830170124552772416380249929341228298117887953352821759704789844044138988527929840334657878901499813789875694560703240529552483805749689736752942194830350494655561194670090258376559727727046054504755444919482347482593925072010099501514813226186773079794179791280750180984263751233489016595546649492675367536987807422273364455039887019671186419883465260627494631166611773614233427221530769566016348856118193731344906707355788836116935320945950082989843356690523380088714663034479969867661178626924814491860074206591233300860656745373190573414990647432179444266511539391042349443901634799495160529071601384647724249079658880119981403736642508366708970904300514666792786786604437888040379967745498291130646856693895583011967603414160285540393667294286171817071500014759435745590072071629713720517918947950596792809127822606916468786674051705364662775319872643337990720411863469077132526510396673504848427810529469605929810115250886388159067928745373453237685375144380566469148506098894115915573185978737385350015139269962526766621917736884029867087281079452029061437139116264689570024928043740135122933168288341311201923339697809926119331995827779763110054650633049087452318543723333693588453308635740227931457943661534462569025594949138582528217016708875443984005746027770359762715842089006890335709247173409547839248905160168098549219906904263493078303818270021466516581651790951813479442150925796604271608100763407215059114914655968129141577502294928550650072695517842279200975120074859281864065720971769796164527613865670633539470286527962099175820808646044820588261527762337896014826610164165737708590140155090180572143920333770171865265043220622988979941028037637022283774731260030709499903944620911645863531762057494695686921127481235403743146327968136705827837120009359948029730772129899001624543697413454470976318403676531577421340628721590186274657229727239908663963939616008579908605906433487891245711414668990122773462685708872099806739274430176270801532793389136716143274410831770547666363152047462624167636519052115869357993521049845192887012768852201343109584368885522767473311654607272469669486728279840805903939587104190459243200454792431327993652770146278057181661247824160778078955643531762242771825259451572784085906157643180382712620421029986520529450946993655619592118597904649758277806575932191815992392062080906468603597566188903189571250816989376568320177668964759036546999413852186398700453909693510632327422690718198140393486797291168012565720680570182518419554601675852478931181807767123134635117524267638040193066212354949908152769194653036526041156505692439740222856409897315088435955233280908929449827613382397526682645087548675122563444811966485681354413506310497689551136562570364811857250943671810963628935496266332355553259221985117464396408535701814790521570894829348645736545409078066796959985757683531149134031132461450020477905438481772566335658815418381092821260197141528897432062677188962739819087848408222672198382219043543248921282101525561253460219228941936038695230540076096009872651685476285948676123466046207188572278324550396256422710612201633101964882337040737282609001247680578506187448677217631793776318746661959518185420650785935399361501649145546682091483305775768570134059606726169853776332833176022523021539396062159778129770327093290701302366453519834161766168666266926506153610287114621515934887601543197912069226707023218512803712369403239337294148629089040730445675368709135817678893722465501516819824944210454774920374936395552291214866508016479413781449572914648797572903767402946945091637798581668557735346491946586543407326970469984817026493482434546778576947788014690563350428782312794197016768769339408481813725683278390406613916933104976158908258290627142467227400657997119808913436985666967671073048563693160537055421085240158870596428031884305901706017726873445716028147161990242970745119109317269173694181823123852517829842850112544119241041988045617381416563606023124643779316609219070990807901766728412584892861044216492074055222044338664437000829776765800212947943482946070456779942585706068426289408567957995897553878750679982866838171970150016571950003544558212626771119249993286981238505918496402797446097880958396451625871645214157159704796392022064733484116216377843440147706803881821926218931113406397502989020156168479677054044445021073309930687077550163525301767926921482109471809660340537432632517462447196793009972626347879939383396595473684621164221257568500845349112426518480104868402838119874287818998856607449439264237391066946208614713046461468535418417384435733548812876937698292466113956676703631726060616905260559071545673394089480358268128157691236450311914475264823014059575333265423109278675100916373545517069064725989625966909345931205204614268367476048355355439805226095752550765030146374393655246648011841557570820197341440268821379979149451773605877846550123836734238941141342890380920164908831565714669314103007387072337520261378202642141527313389480012118633551793882553095854460988162300221346550830593708134630253097642478535305234118196544465036469677465808525760288770772156137532073857028150415498742973386229919814268697083664689969321789056806484337821337932987747173054898419218247469498342528879551895814800742503383604291150890325551113893370407292312015720665976898078445948276373241559039755660797938357785890798061135278459566663540858417096017662244630919513391562639251498240797751487587973882383186464496482601440986477815165606301459296823864882324511261121990214539090010722608428033247022173259788322816381484394441112362861600413098608940315367140559187098711445539191510342598858810822676202591779807232525869076597597250241725938619602183815410210412116082053218241376168763590177310647219912581755409226192441670952004400222894535027160776005919247969384205026659832437138628778853858233766799323720224612511835400158259276619624923668231137052703999746224750704223023057106017431213660438517329942916933636146438291346788446724059817020923842361664177746287538554942784836289304430508506166462298588636668337734394614430744924824789937510673272291397801276822448485239785515407449407102731866293783040858701150137364874602484589293764433393194967095274731291080094574597167187096479599399486987628937746623758727726406073835774063758254678657365201796069611196262907751046386965978604837675566049682082655521603671447522108201108587257260851971306072330469261850768311369371673567765827889424473908473780114848410332270046809364911272422575394861989673664836451784426461310073587571984586470632473614946288694212052127689435593835672201783464696410495631124138013058180523283991088786370554865979927276772866149398098984734745080136409556034766302630548120637316051813371131657260565920590886317914510861223086004977900110587266230070464485221676262089838112627532007011139399334724156531442513097647947877368892566724765061936620066594578842660372866956704993983854036990973063126530491371923937886323146341923293922720337480152128413302270381550606855138167685146398299226153547309724945283275737075019012542049335569321723851581372458764788435714190273030734082098662771218698106441713318927886108607088703857587595801747166665411486384404578043566205847618628124783957832819249049369482341184985028579048190836759780277397547540995840710610515850214010447135735251653044456901863114059295349456822685657711023195519437567057450082437230223850231556363556485747729602326016556794369450805058771768740801777648326767001787405488229943180621074489886676533521746462995322611147352319450751906580469638307279185399347962936643336059834785526109665981306222986110113698389517400557035087399508843117107510796770116779648520911531983060999503741702318908972073565279775151189909112444666321707190496293801706061829780379504225040198276182559347940157590926668085618123779365977692056818462222863543496214852817967445490900780795771859167143094497929920246443064365080378236734759874481369455087165195857977098259643330444962979544909138224363703765388188110123737291342895508263704129702832781564413832159765779400233263268686985911506284029795598321016553505079972988459976491422471920451277645015570351286992161115215797302976324043143670518661822998876896245332549618967613901812367996775481997314840400173317431752054445182996669175747478005593475056695593836434134302377876025285387820869801386466566903229967766994994779024700329664915671691006287105733144647490137918750806269783204909255682547912975029142221137357556306990499310644712382301629811566820540781459982030402460784909583436141574373759517357898048888441782246872866929336364222125712306140189786737788967523107598564817042292111329464899116364549944175562617926376436062807557038189940629115589590878790732086553216645966613102713219313644462837005073652441888404618562652624094432092630951814239292055504205335427629129791974120907636285812393306475870846953715465179208896982391029683602457241235937824790108446669536426752038087098659503496435391503530252020175200271884804619233255033151416541678542729887825974445221599106913422833494092865145748704572887405581205692756552768179441704378384082850065975228621291844543541946016596913863700147470490016626933493331846069844044811586015880302891797233807428428188818855972295358039098869867860263229020801998296809124071037844296365446841559089723004892706336471334774706576307318413507008501361950071604840538166268899988202428515892353266601985425595690413009546604928653884500448943062054633193039114530795057030513620448218119363799208820078529879832771759031680752558490436982870469545630517921205977356025490186397322569724272399379490526607823515935760034067261178195777347137557180492579440297615898304984181669224578865772355815061119979710255688977194722476609193386681654255675900067968071076311763960810248770099561636391395780416572661734570244960837186309064995625130730182217457908026875559518479346982680183098956155516985752297689636145671792361105833662709620792007453697482550824800477436190777704366571410599165180550003684155427706657199263938529981282373031292743682602103177834265843906206704397165962137644120491586030716916049695797215774420190872770675766583628876727288765935800329235372387332907151116328683919455655188563018110047616124815414476685924641629728525114972198658484730549502593961603363639482782080225120914029384921636306104329154231264075619420384710924701420205622649879062837794722551991504767124094465147517127173130327256054676253497959111335336148000913513989308153275093448683350141581805182052363555119174292734632630827179753268892835705026545486620442988893577116393337937024582202916778428874200154808320352488230674153110016441820459921392039675462437146180090284923785018333143562618932026268434148895613490449549975060723891037310287247900627429682965464016051173921583821151963937236435654051491584428985933905188403872676427262700513127230282657371349459346575277256692918095125423004350998600060501033650484751619897945633332687200056983009722772906667246768530896876203075836682128435110002650236791223400722787878304250602146872316508801484056513629683408954654613767352574960696654265334291631123687063754653080035237725217164889461488926159665656428410748640974740906612798573007087605784278327707011756803241231325519336600592780156703822095732004747228957787400152033460543775324424867679441791120517150062906419066421600210482850657991620950556872941534497561525315877609428700889356834009032286889632672118112912427903568335671376189715254835824121980006071345714924748568434132564163193784057500136488304861933144230339923905176658535182558735254914133435445881589524293335610015865018025687568894090372995057486329482004086283599743402815660283847824077148584980457164278866421363526331919217951829546380744538555756477703962949254093365300514854374655400839425699545714032825155621057655931155120451161069714809876941632524504566190686529676895761630949748769431592276653681888038095674021315255834043824269303818599776073708620184494377622860224215541389660454884231527487718589847441471465805556571623632588680888415654906700834298212003839021129829291596416827635327755579905302904670532845519245446477840374556165098791134503468106239340255261455839101634789707492276735756153435353431425548057777000777742813691967728130355601385044236350706706341299826184037328789236122276520687617806798647837075086675623206005678379497987399328984562041387170862956968968812395611043621714999894374454596796053947932144055063410841623428767433843702213184715260605053113918789437563376726129685343715190882596757716094642744379707464645456199558251531191672519204608706796392333546834820330590700929807945735958819615576271648091715664827792526054607724003057603441185901802469314313924579689553104234501795815425068394521665095073659579528545050434584525212298588373968907241800417931749605573640757963630563196352548956861416786960108105625612052855339858469917151402574862076221817965805617462239765518406942028654938065068959743695798504194484950927487443684336296840215035282684081085027621627450075060812458367959854613253473599702279074656035750292726106559154097076765567524753561787373429882805375890446094781130472793555182380238753928013918479224934927638746171814399737424541996129486608954574261955259144293358954839732560700275096513444089971276753873422488862973390473431364608985499794786771015308085092966210009773348686713541165393002232078098663048582372834122363060467035735534505463112102586990894998327499409881617410727477913984038108764007019990433539114308470497278016849221350699567100511499302808762866829490370547445058758485121544675708484395204851315851250574711697761014778389334894049880470630584348128150860805731540666030662480434771355566465466353703515652624335621733353495230190145563826806429740929351097785700332028640415209954028307538884060592221509975673070915364950023192307407150257222893621389275953787229956513568387222997648075373737055641631377821896132887904408493766454595922872123503578134123869992053525836668790554416667895554274965470209944215917175580316557064651205352443542170110660550552039972950375342789617400400060467139714521986849654111589020408988390999475864114427715416857469353126755491474846985404826707582061006743981529163448580066201906935785072566249203081846562404090656766746450873419615919257663198630298647939850985409168342360474929964916220006309606631169522202176170948336206117304023491286197871010531521267756050272056460459412280481679230181101990715810466218935910968542717006092114740820054331363880088222239236773774214969602421182153451471043298446814270384985019252223572073505053168264964337198508825736315693199050570858383029934266698113780284195946242444186277297245478686225891622723201115653381413056478655029757182407286150622720510263345256198998124867321551923427770783688178390167972972774287707813780200812708948992033374861380367436636112620935124832870443097789879447519059787978362018858644803198438398928178124550346164990158991086294399387703281854830323753073789260479673588621366058706509192537682921249343599139295222197467829294356108819253471851479216645383485602817790960303804461764644689406424946441867134725069653352441176949443701089530265539924280693325988263503258898447631803277421254565399846982389869316706937796537197157392570684776678193349913375927053103136786477948307075163391031451583963229062301052500128655622048012987520821121146676056380259980688292071250064423507312332541281041778240789371298912564216513452900745166262817491842571667189642798554592169697687868678250190703003322910959619559991222458548007417246150009151416322065810657118305176083192038288075697830535887356124243973807669347820010728081708313051686515793480574464811245620159795532818404241175438849973609200504271760369277412061729222298942058141771830550643071687340401922577383974722792742484661466411908818934711744688380328942982428889572047486394197387118242292797943202494023480923072556294877086900785615869953915171549691851388555736157716425937679079884005341349249841292716225387145868513138639414913323942471613357349648604356149215560858369818664840563050818459682836770888306678947633203836857402072331641722660862925023616255920560562463182979263259230766803546549864689907347281771799907212917524865728738491252213612534795250106727195647007867088485605895768351272468671160493958735254729800064886987464780389470193003588933086683851426752306526348436948324006723826510387575392464316483832828336881232205578135890067882744811138510546511771298054256396067738455739985283603289188587495600601461590710615548458615914016043021982226051346535853532710724553641266109005985154253753731951186357476680661634092490422028574084967451149706848996776524937900157133399909223607509869935616690709736124926031303758882554351559264483316242528142968114871466748399792521154241313456486318914018628496106213405486834237991738982024642911568363480510936616406789334055314126207705895137134686521245968404845781298890920613070786220132820658729448776683494286673936665710297204292887503619025944940949972764338207936259008021348358649724866067051222542753989279519512824798471365796762577239596697956547675148818179153441111618052055156606297017254614685711137451475835360694367562082401868131554898521025254850043179059539846897824253806386674972416291506515006393114881501496259092433285806432043555467920448212947965735100494515017804726332570620082357283057557381850244942649603974657667474069474078194874306253938683481423027912918892640708467398944891515045960776449528591521548838120900941398567379538513167809286818378457958050877621022364749799581991424235576633539710884574018245830467105729450454594579019270886323409925736869309940401240395605606301327868294573823892975702613837030245507515019308862280539029881204412029995306112001083688924396314235208203123464786612188291262506335838398553621406605900728561753469384075278883355534662560817846781329138125892459961525525931552301250332121078799015015316751211201707898653599919566570727475426177072124593618006780477918777441528597541926314801726587544412980755283538855185322601179696477484989236662980477170596921043529208689605041902206066377213262914187680573232939842296915757339217722410875083150815802703283610876921910377100368900978394774755853962583358484520797297702858340908707099846394214106275269648719145713974019286831263222431914448862963803500528056129235253132408543835083970600287676999145125507813196122674298935629321240667410705808989934038248743631935473722829696222648972267567370446897751175395660371766556372670605895721217339002709136349717480632283926611696164515500696430621915950848528844100724278327095545793564266556147527861163943821799195738206740657515981661212395806907045981766360472845351555781444979341324710667251588999499925631018696004217529543696497625278857068609309861825134016491612638417844319958646519036846743388629812704053527731038073092010843569260899265773920554073482462299320732347766678780677522739414125016069565473991963453519555398457841767363503895472328369535117653445092904170090863685268290744555240401235849437520590240791575567761556299209030210167624426442147683940257689555540490203498044902427429681146876565083160024504466652061772863623534181847680176315851435090251921514162145883713022330869352570633075572506233867448684138756100170317727102643821973016975282510424732543413378576305846358898975653379552718724825993043865661708312354174914819574997560712169130184409700042184070155801145118439625829352253486586257547710629982224627628566531979474021240946817164119750724301063153669126918881552871517886149564217023083052126071069047556864614087259341991265532727973954660248727702310886195934848145729064015252717372552726897914680479888403425977049321777711766761326844128657096202076105132583618998179216962125378863891885360556102255818436075012203867414490430321168464133527514286184877885944400541492519757266190363673298210010207854730969102838536878358222502023124455554247518144958872911998088448942616085457629752802237396069366269733246840819930977772828793220188116547820747816909153719262694274736294183156342383194383279669976473974315920547820689833065753119078278513400153896530229349167081009541741533681968772719204388150198404299546039545368354713609049063198589725113734895676477578497133661996863356259776557727099405847415993656212330408370034490457613263824720966353047329666462610414267760789158831306569443161416116171420837150720147703237147725657976823763178755680354140953495563317930521563622446801405942859260768311737457299869066273427225571018344088841756778868398514720437851247898397621008580804802557996640662915832617166063472355329692295199519287693736717118861759784974546808648962916932535267241003015615130473111027677686354413274057425507070180399387679513223552667052981633959296703740487417369157542105213938621795055594756514049197887787310936422662710566063015068275590688215413510781822279359043429396057386024325077809031538375196757865604348988432006477868151524535322063165968478614146934326082160074840646199651689666309389949282218334949797278309260153788141966549998600188065222969176163263623015530220453646786596961549912824531493654519780923716767086068698217745710244248835389299256828002173008713446382649830125951052935250545393807610411616262253527165573968785615115811480190018682477119793727165851321637339201738872786763025470830833959680217505742502202019648113021299636959267876539882009130263310017693514704708349540006208445617697825508434666715010943011759986663986045445943256498764407755697610576529987768159329549775536313132942983693368769387474486809531559429172782807318014402612960504211849598046603366311679503981823804169797757956072513059301260003539307304260780017584197202904260630238112644856118362995352728886525468249845994290694943777086254659266290776887907278761025374077928258758696753956220427673557639494057985662554988455276161696933399590645837088775136981468971480541643822942536137905568513992868494572385113120743036985152467270540616784062759580855223208263958395947023420139869951778531343379372197809284064142776786698579071959068904102103585756435559706126963980750422590257602512806388998843495886546963285725504898654362067836461533525708061737023111150432848325477272189834165845919860686569403057398053568242965926553038409356310298302222257917874313012955452788575184882638485590948800447633828726999377640443350713741101207663097556944468757984661084944433943459213061580745805575265042643287844584934048878703197695606377250879349102924472233640387586436575662346773043908596140503041174795274818983976481621152647730287035953654891937439376049784586449132838820059471301726691241533956332101755618568296046695567649010873648207978813591821277954462662998893736808996866314297524112530141789354121757994157599196191492360827431797959618907962733762431049064865663212405234727468491403949473215545563145658067138248883610689200818233881748206156245980717257033782792162193276548262816880529642820768547338369873162606189327082247802801642351352033601515660163558816141728600349029711656194693555459944586748536269732310712268783500702601472892534847515770184911520137843878420540995712874188069557478038069654283248593852735153202796016362571050215302684907829982903725972828164354531178458507078652004056330946778980593338292951872142910920530053347600817045637658227158352139713668365826559582294747879756427199568849802973852873175744176452716275211302143614369125660372464467883155192048622460382783770123624614514137082271720106515889217622771025718393199862815933134186867257271007887820875908150889683673470826175339936901129339441329610526587921542220291471466196972997873019435651500001020844600686833881546733921070520158880936470667649148127755953486727067632238275268432233648684692810452736943438846518545486977927954354385242042323080173206983444691893465825700035026288255604267013174958402515374723159239640488391170300446908559121425631961620047108403945957366941129320204731082984094131547461915293320571951877580811576193283998526532297668013031574744634493843880474539196666777044623074448028544541261292521024195811468537164652582307530976408413603450543779967716677186698211515248232845269320784957854673314040870060318778422487093836292372975492644296036268884038147999921567702962269530130889382045036075464826242404647597563662150407011714826535063735731709797787581197722126553519325401358319717321066772106426902221517606652858508365665433896946385874738396419601073675096365828985362018011048392805917568021698001063097071127180631676758374888659603927999873615966877105430367605977363334044817874227502595718865449809119244917500341559415909747623813246856884304131856825913304806894972402533656997313985541637115705340046117975091059485960247149918442361939293287628137959302595000968898872732695655289108548137599645023859937469310899700140835526640682709400897124484254332489288767228481942097289548526619556991414536469929238407892654567466794854683326674381331292115319154621057845895271212358288174453902103076666191972638468520301946902328455985048386746076874575786752297550063004640235712394843143980305979391020317415113550316397236812709538074567972949879668788845109065989802137938670850190332681553749185509374570045082989085804040789300850626066638413836222036258371684690446559200509078102509900112375302355380686796034621326190888844488549057796631045873265246106709074303029909056146194773017949179205509282286507608817872649103649544915661992821244323059143494548739941927511651136325299730996896128584196697247334809132996214686011593817941576466650544483489968256451815160675270421570204814899354830731626592256040015441307878479894302234198888961224861291003168882295199418119693643296057150170747468373814359655891161271917106920074517168096955207447939401868249240784144033224465566089060451972070430119741074657113887713977472527867832232407070671639685926707818639043080102841458728425158923724667710558112332775528693661717285932049417837935638648243114389716870652106094487575669392164392223441684872054816893536516987772504611367232670059677966249077499206471130300043316869853241557958492884573081911357265929503379893216921275510571630710910132353602733852973579478748699734518517068287775750776661965729006018447364310552377983493168339733959341135420802914923482058162590513929715704242889745986194262958457515209886269467435284729796752441841939488176464594074200505433222476682541654079244323647049660365113934967991614505572769099760955484945485719419826660488504521114608116351116608471022163081719914340434768842643915872384833989823060762893184237163042946923947180453420259494905796623553713059351903106559676930970588627099224640470243432317559723621327586849621159914183602182081513318383569839659624248321293689198331869220014980195008281535107476657046688246026928559229175309140506091512091752927160599984781668113770272464083425289635827279563847569494656901055837953667477159975568703617597253023765908701791980979732156167419916034602247101298920531619567983460168900206939730218204726300926030100954416363919446859282507568629814773082389187222268691836287421723972951424292180101930666658156217671588275605045502900935993089396489851634051170581075967533467399865633303123503043597391696863358937412815301191165814634764580663034463104366838657298371105913846355884565091277316010775644564740785585596842147835995449957832335056991644051068293112592324503498742648705746639839990189218428882101329525896475723336408705304631661100247197927602026855358147284010336859468369903501643352089253075335114348610717283959788923305281707388791583897016230054960998796888610094092562950658227712383177484306473998979489802256381085020290135835303972833454130105312145354665160714461638985207897026157860873078989041039339797729270066846079126950677049760012427987004940421977547746440543205433804922580112953844622932447889194340735741450095431728021401629323534533931960304273620014458698252363688988859032356003144164731507821435181665756997711574734209877383653477596900341264320997331822621646157017931578385726529176050237743507710885231910584270012811501744782266167361430220949255683576627322218782863716733237595058043583947586982272382864466710332992866339787473098889633941984442811488780067304968033573505009122085420829293647939493226651555259606045216332812334555402232330221411861296965392243358718500089898296007715500120955629941713770072690644521917868859576695225586982963379880023173062032087256048767005693962279503640235433370628388078012872674979775245177218820491903497407013972332792689511338717151682574341702014841742419441098417438928549124116134913328015837453667757059737946606477642332782995738717143589957090961137584460784031004845519501210978820473618461502327832605807460632361407047019235831115548532540208527553559090935591897519220284132671114679286321612058372238990533048775902633705911736652414194197149819204302227576880189068861392978208541291412683201092420145196051335869813322952779370156414380480970482127604630721649892491945342824966223722798670248346569964110955154636903602911838933189184031473360846689531503138409293957447002149689926901644643812072157114564367795637148696800149843422637927173628325825597357668426143975481837077546585843011979636468012717668439669688284220143303508047017599037575330098097614858132436563689176482929867614623450208895072782321086909599335903616842450244031548283737256187365536253777851471469473805315504534742577987884291999790904235407269853453800279391325194484216744300222041383659382423072693608964616493172253206828992831730181186344848753049817316731344908239880946762112056067600082318384170716459602600492314003425598190528680226040994905170651301928365730249457765160252190559846170462236800173869143742098296622867920687592089241658824521743502448561745532834084849547008805353450679631439413298013374126645763131257694387433899857635543756813560415354544588988557727400664782815751834962444820315849683099370848100657384422275215468155299823953683103444387708278088653277239681305117130731494330400701154743118465779032076276945320308166399605800710236306919402458147864288483833674209569285219076588764578906244775669095346444407825640874634600859387183193991370210642445402956681587136229490288519875325110464188637227152611401902264691923141080723158161670927093502812891269724850965416829319884906753708944589717747356579906764376533856931410683529192473385993007672863064581463832413781925101711311018880515355114944817831836813403347819256408437174049308011415990122524516452123431734878782970582879677785083554630656739846122404532917781354095830232484636809787669355438733520685513587554924565001432296096173454390638899760275261429999585358691801165613900116706631282103148778241375490299059854317511095707294018046523325699331285530906070615008652194348003163101806919891832613974538687570073816274731279490247382242647291666086506123039142175945139205779956816572174529803443605560344684602824976109351029774252788956731069042349641794985263599536117842163108567650666108640338685246621786084861129369678045109021731542148071331402277844187666446882509785894100860435286709719810690950069474492594906161202165702169617711750470380229415180081729044183317672287957496731369790600136773211150196647668061019112907867226923787470114850519503206179072293077728251923418945432178756229430382301642830929682071777722433912239169163338464183870413816686610877767716670048012456766561403628275688282111693894104955684491873323064457848856958050090518751863135631274187024282923772454430278032487555240711435768832171089511359495388493154511454039273793101297059952848031809965642086802683449332122759194765922526021190628354844200763255272274602493956507380175275415977370228013021912084408716414365247144326288720194946574759511253149483621085224018283863934986320706674226266485892086709655303973779396459840852216002884221240371278763118539331890311719401489628080968595820785142428099589071219796924253240412914024058879309994220307660990397612601978769112439016900771261753489061757054316006705091341080138052570310600634454889783162475936791909213050847857477416342574923427866741101785857528502101796749035486734245662111791250018491873687152385098989283206814793975579276947570862804958804563595779985539479593109404167497478841173334935767409103486424181484636538591665208981759455717600768581046528076785885166057246041252015461856753177833268820861054263337893975368027709642214015905991771981083728331160997664953137753406000825624204620112312621700590368325814561891449049822685887486835365456712012166766635823442798369008247803985191846636181405328190122349231842115049385427604565135810481479117012442797790967702122997884926337503167438077412150775427172975284619627653054139864697560291216108048583103169273123854807600536554746966344169453807922543981864026711373967483138218537976706442246453037502956525882662797261001821455981113920955749313254161628035764379942152867808919776419024976628771805963915573233351839297443311979543038784866092505635529857208957869858338400056619812189258659808803849714435537456951813421443085060909194186534938341822897272098271823815721163812942687203912009826797885067448985435308671558366522156153162520279364596208576455449601692779609992609565047821933741244139062455956927462220148125711334153559859022123724742534352832439577014100259059306362048550458069222481170820967685882602735598288555830399777189889425168342514334575449667303806143414531176854780033348859196516842476924736549036342350369344384006991757574705769396225815143015871970379187844969507606040945050744700177387769576430449598727390992026617010002614321661176223243958647545221785135005886592564445007360226888323659703649941696074808052918760477809759839332025962109244724997673555070159411625028878784643857907698850646869423172435160931863456278442314797511786892099210048065055513063220094322918743751094280875232204577833924375782536273854798941111611838706042048719805314397373492439213581176307310803861885287997420473400800322788164791221521970505430335219745305519472625145132315064297371574388640749843507004314972234522225973315703319851699267165080200140772401810258056201298021583196490878114390149724116348284557766059593040314128839103649971540024996954280235012894308009881029983797082610290957675093456549901642258805436260147411180004056292356461275720307814566472991848431169710784886654336224280819777695170250077530725403543505656516115892928706408521515740951615294623107322576744396775482056323482795203840671894553887414756385439721283662567997713671240492688483547398891945919931035717230116958911724685512729452730504394232215269552403488880162353530066455448934205423748850647000651088786575903800180383691141111254402491132888338120057306326168055418950526130359593621907527710421101843367491582622233420342125800199935022563861041690945788533634357737249394883098253357939987983285746763270074154505126874603875868331292623308097984719645731344306668656539829482675320216240889351978220897528403257313226971617405900495443150519821228900764076880248867675451784127140177541044695513014824176380574616392245034746279209785686116195427195177032900028604520360012948515955716144151757408911198354530710064087862753589092799113281230200954180183097002129029322383724172406922527482799718393853943138385370405482852445408954452090070325226460734405294727660571403888503641014611697268378771571645209663317522739937226369065976761251521555451486956644405865591206642936008551437010699994885396103029873746712268680745105550949247207273362124012483398414258178684553386002948164183233271811607263235631765903388115309386959431577270677640621373810951464008308409010241250481041124967742746564713609686593011445879122428970881393107626173238920446899779809443772667814993244047206157578264429231024313276927499249094530951027844481555036985587149610173805278426121995722534536298961357309104179577407732292232725784709605649863835893440533240361625642898832677031397693979504504026595596690115791586081272623231264330681089045817866987611919210047666634302097138588774477233108697480733444726770555337972048993151027925608953703372985483824298096915067431171172240316742015558151971526674046940071536812397320602334998820479894050770665764581889391587658687671134465432854041866599632980575536976076619921331037939138540264311202011413609847874231085631892440751808996413745625042394563133492812574409295673730357254136631293007895335502775286543742850553152296625986501304627042720021436974465508025016406061578236040896107138826454723324044121744698255013012958349320558044185757367780810685925521074965318878298692783184380361165077672774737945694122274220639009486837675322692541102791574685569190613713832815742998883548005284073332359032404466079547325735910663321756097870912205804777669579408937986906221657136053728608228724117880124444411101079622522898663982099802415491360356502099801241697892058447609739073014793426988036641941546449040546778098031577635530934734409873870477122427588235465426428023835552975441450860711531493875116147944811766104228716790053245795791629183666924410582250046941733103758543328357214685226291419943369322843072636142154557905639720087567407817327229659892391731779694200646480361209845757578321876692757465266237593296326512160864096788857816832503244093958730453779590068983548764976977574051903925667021964521911845049027113534453167175082988254696312484583214735229713887882703846886232917137115885696046609156254274996531679985252759430998223741163781152626309221054280420004808761013988922199445995742866718238523552473925050525873541887695380158308197030162838275436385758940377616304046043251008702764414440144700573081110630873841813715763941361842620706837095961881594995973266379748323806453524546427483562710703866322856270454060981850634150657756556256477972058622979083727257206345536755327504547563063040486309594183853753714492679100468011631338910145071966426166905704820233401638947959421483009226318123194189004043273434514295748154470645436553310109990403905353202756134255639748914632070275770540969642917426545263376523826659885067016286215587249928851058796378528326889226703755661521916906026316989055297533765177107099845959901734115339086401666524781437516996907961493361848017306698596493815375285872813596077426380292102310762588043067242099205379072720039780408235427263780634777977805825204167682423270022963811508831514854824365672961045584308027170465767757536030749447563819955312730406893589802825705662828325216006778899236406233826223297047752083115680124607168596511793556376243633614831048522405794528949093264681695392234960407859057629787062357184216227091105144902604048979580172969579497960287901324212786629011414105880588972689363582213848657129702143533147383722257249082796083871701381907947563221850519037719112555837689448277453725142666110824706269703615960212790336299254407335718521817777512680475100529789510825382123706517104004700068076237036601080473269804200017709431078275144929568150422795714835489027059618450323924632467806734791444315493643462361710969676254182189804581776104918389752350292088079787320237478189311440532552973251418748290131516459894438230097409076857460419857670098919259574313258363309879135468449509369510639503572091775657527993458958440498392474481414883178868539204645835483168044102865233768341135727947921142503648917747994256809137110877327127920386609442781799320715950834847406171109439941940039560979708190867568123029144505608568804876023789725845988451761888445253632278259625837404519701916595700668639641360812243036977607589860626003392046198487031993712052638279676376813019608142542503047316571072240391825230337786320691343409910493891572682791193123967715284320557814360720038373780293523441172461345724667883459193446065130786260124659353187815809630621473144415716939373226081354553269824954569154739420356332361218354085926140409476831231899246989662196890239814570255791905985562056216975009799198864051193280542348147054734889008073575932117746630374298413923907261918815085248495602868845423225959300530275836601169078197189261146350000686039226231492043278217268403245594481613063491245043859021354839373638562237728706979831149848623865246396809260290288597309649042415635179703621847186533903760802477275036674283083663327694189784796356524823097035164293978937319975986330277035447442537471743509049573593920037058521506631100765662866657969535508596629854693971937824190651117778935380233799241147234226755851933149862844132236614487346078989130704028786440031676424207057161939208538502136679682086850426823836349759815381060599963400189442869011937543247367646145448855700507642438247748435430684310454575656979738896689755535712333163822306873632231314484780466514105209740611193490658230537306653462674426635219812507746640216415948538116194639858843760248661572606828252670148236013496987930499658413420570429667649236186486331005805308710107277828003922049915807851351472142507490707911632049455990746048036027453653651651220894413371649095213419278204107339568442012336430652358286049469856918368935998167813869138129626180740388426022960427064572378028362467486350735748901417546806421777615253925002361751788057589798482920718213103340012932947087485242788279508159126657545731827442307481910915746020262913314591183866595141711479040879840757301314539317971966815118851989126439453194011329093568989485179098763793077673234783739384597264743023852106084457113908035163528936058750925268293873929715094721736960083283848321945094533217618314454499755029829040060004993804290821141126897354918696391735450869888450363072731356191697596086490067465720246319705288286270216762634632905607334153670762011026441200987193252261300565308754256547982234174815681564684776186485133868657312200218315869794862944231640460833655220737208935295155948033384898499479466061266753076442416626118395869268233883258012158012317190158947860886497356096405177732412660011124898858577853029012267223471702129451080532919161833180152418235089367120848499979565208711130941205587362173983357026923586564961802008362998230669964835077926034062147516406482806734745843593403675013992131922850812232155135299530491908184843541785748114742002305223640124182753218158004913554840449628177748768778646556034230651682494101891948530313324341221207068652889110309206745899360627884206764010212862930080661194546379032021105127591671240381806418321389293915903505825939676809332441558236448375525792483622222788703266382114504251805409301688326009251439631728321105711538964159351298844196302438676888793677061668082521505401367076564519962856750077750430272841922525156201500594022506322262911968317637157881266234740505397986255648206451858785003953758026134752296780493314017340004471387760554232371119784914538767538015594928688411679546418938704062867861883365752622572059789955365336832581948207891023180981176319854397573233095626271813788515221408130974040618982641480804413109598904064521746523065296482850998949271558312030578135256206769243751304055554657230285794666380521776161896876018870558250882844543206630990004912064185769044832284566900151121031225078046259656719470841188883504091271277141469763983672376554344406065490855302025974893811292585998026141875933200623810747461196174464072058955384373288171823075206958934771096041542856648761151997623214305960409018651322777141271202003062290923326698586541389690401878546099379987305855409686438992276930741556376025945493427800980195572766471964456705171037639828070645659796621836257578555097662673451653183387305561688804070554635982753896145688822561147579760729866391649078208872073989312740162783400324969279457620719422150599723113672236977001243966143295152380008690201684234617507062716409501255220611542364126969720952144216264136823349428018865225189358341225265032681423925647693658556764519699862013455803196549101739204587249172193072919181063414604373694834338670085925132251599794059598559001201163129259332618352357928270946246029841873226198114482428211823765434094670176074645071808230507325570211939305190120439018991608071293191452793848106430209601943412078324404135225398335066281246011216478377783861235391107556772677847539911836752439759073871049550359286263610988910252340339143375997007058050964984046022308186438132574221740342831045495307716839681600018019807134848285137838100263947939507874476208073706492075505809421988980829754051693420850633699368406099059709863230052389319097680165010746254541944412044389937205305631637139501224515272042309768427285699815768520933463441974640774319761083606024124914425249288755310010543303051369630296034772580520816091989337968164387969541746057678411348704089889064454421060453560732302409121644755728058485225018669402087953186753098927284691186640576301993411739315663758328814849198919381373651471495568472256032574161304491980195213645001509152323572202026192966010076229576269998576641295140374091946635121926188467585105065667291340836006849320450927037962965298025854030910864007564690609756215991606659923252706567714136205549532742823554414995395721591243298541510727734511847015249450169404857080622294980203181876669486479223140132036538539518471345176885882843651761529687848313686723465127021599976327004323214943935068923752954343748169323845772792286727026235833303868468904954816550135658416523331728825382628196074117078698226105461302491657798110042138435552512205992558904650843000050806274063047511819113277359319577389710244521527512580222377751437658450817688364267836072262960204041878068002414882484205359462829430452880757175979533651770820681820367003213228187403920752675105428732241832412486614960371893690634005703473240256417337831366849740777501801842951794806222072222996222306472090328055166532338858468337908405003343255129116967961682495484637990065861051432372350689031931057380217174832196632216334855215237309533189081270635028793443095380554042430188129430961256350409711371430208758028521030437817306777140862694028653547714199616476619572814503815343695047064408709167074145479801970602369783542367467637874028916546177832155837844489931432213179785601598815485398939209339638550938620632158504760459378915206071046365723567477506787358947492132150478155992128149997635245730903074989876364066148848570213525868059916650942632431504122378889983055545474172101002699218522785363800565433783716710661056453221444258148263441322438369480472200504232858293333773935306567046943671680629818334525975398180970415104151612496810026357455510477970953308541873620725002007133412913217521129023674506278257840038329028902246706192631329131181872835815645970472865996982121914353927942059820688633139684041764614551288334480827422827656249087975836479037805810792500572793910139197225900861560800431512752532593830535526861383326961703523861304294166040687519570673741363170570303140379632695296730215312553303103256771889307617115257386230314815747973869239785166586058485168177705618350337721614502232597914143951618256624538619202949194986824787871574983686088179963265006246580107033425694516171495510398478835395775391541437583303912199633025965193044884559172365838606523871426603655344300087208736985755485246236991802684197481747784520473620032396223647715124554377655867760473239263091699872754760007039297565844393627932131891319080698175440585564575733807949429192797980451568649113351932431616328935491973802369856525119379393918907859851362819898764946530376608977115786440303880186204848165285475717895938968303627274706445867395252064706503510504668235694755041956771122944788015485813182155467577071280167766007348277014300370097591176113265556818425348965424208669543611487139081889656914715856367121634121942187933373350471063743630201038648566618677444888257642617906891115366333323348374573462575368028967534422706152092820853802655589795311014890005096068730171626979317593446885687946687441093750328869377308954266102086426955817895122600857301627486962876111508288844544785889405306748489781124860397682695788553129157329012137046542667629742963867157070129311817121965394454692537799928046403039439542217619872848961402716192732457548107739305831297151026378892681429109909499606073630195755464592050943802274130899521531322179179279163450327149501878938093636861544592900174754132350309264346339348547801062069389141096145450071066318033281490600712342884341179942306707893769327338521817117215950253074092202204785994044662228231746026734540626419072947998124061423171510533989684337495800113532572874352404184654742614829226034806602917789982096144025195655786751735448652116249382884908783248072185113932566736707308083458091422992179650247864896933913085731496303409318660871219872065343654602832638526815157097612157104619464705274988562098673381549729668571599047937828932538023900887861599324102392684737803570647456329311059852523189472258885269362805671278442212120498294907941164275552640506756820167798576601148213931636169400583496357315166007696824555100085192235166095958984505571275004395445452377065621350795534844750731563142925419695350655082284030516884647368085633944553518695801216373222484712618184110219204648633454955924374886965656626718193555407051033987303782692056711019384056602218418476361790271845526599325098537794435125813722259150752779788256219479308279743549498298497233405527819400488757468088159931848553959949851842252615958674193045699426470486032059279775036825741406821621212402916872483292554240433421376303895592907992274375724952674886387582033329428261589935503587126833323178515761391928083682336401957526782740265934513884319669344628484996754885672994827876917465191405825313275991910844501669496798970718825989357651066128102229621910586253743715396962498911932800782294529891035482935253279128314804207650183637376947631169850106936283493552049576964310972269809154027436054814946905421794956974005455998425620483091851245173324418385413153331441305169716124219964383123513604720335853096893483896157762589060680995322091032771123847267627825829595433808065401616348319322798837290143945878410362953057873581760176520533148996826781244733394220905191834474532892480976134813083030172997780089542485608535219555259903678134685226242460616619671610863772187240760746643920394377897332430750156191751806934505972484780174619989888198581312103917977336849432232795740132368895824659103993946465940481085752436704829066584306740359852743371862107554978469831676045687617569631877174219377057100986359147694527438975534325218507484933233124714767865556385587144538994629919635924436667059254783149318786010392906658838004616148118146436076887074891578467043118735498462622089186730975311043754391035685722678021856839029725154058428902929000354412481105673992007184878121031013979423026026276946832730711729880765253607269584014999794157934679104281464548626423538803194632173446348488160281737875165856287027509147578178099375033939398117186951082616877339335053878635898828952518566196089151546083745403144568414658493615745760683013572859814453672195774980305298697754496997345192543600962282172396311762937181263135768397650971030667907736757451406868925196018935902608998458908178786824096197229796395848708970424040566327097922169855305755892561174310063078056873119904054586524257882725568132727045465282095922528406255669900754346558337881851922914847625262775374992759448443706472284836897109332950352110277250589163477289541770444500199949976760989663922880807603623982330356654685889961916265435805288122767949854922123214181005725934570210271233298301117290637549348177286302194345915683562495552219132243634321780079420172637348515698568950135443349210108758641822253463302213512046797151647751901430994167922198813633412434460724655598669452793493379664040710528469619453797597932904505453615029811348269023774559788891796211476863834103146318420274755111159613944102424138074324128920769284150640887207544670887271076213104085793765655756724214294248591812765378209285451746663856282451273962252110974067432437218775486327303515097943690827683816365908550842753375074057028632490017284838260499493970207172483091102231597128379329647343764866190897764124602710321520492127681990247209361015704339241354414997785598871102139363712641091601384251511155513248432775697207818706291268274993047602985486850223003443709970265191418809285256581976394972211727748227432751581495035435856146584766403729502122129377753331413398334378306279686720890198571253735358833149794527913812468073149486929374976918968471634845455354450167989566964630171565063472517124146355830242988310487619024871424154795630675221955126845321902449508838332160935927213417512162453769987698031500076189548427395231112863767397675730026254615392514097465353424118586367735141343073509026038489042938727140976103393570967123933683355103013956954921961817484119697441003168455583206406875603764342496678688601159710832017030195516487652419099341006830754765607360019812861572267520939094677067173569095051777870693860621400195452183794297662012962899689409613944419718209631813423341760561528706663360500635573244651990054100145610429949745592078738744058933767161050878304731174812489520099601639497837111589823721525331824447266351264179998067466533854863589625203524341735116094979774506129027546131415927633485043310977755870068170863646244710719525170776639033946704749766339725933725008899040385206800324048466935187837659885460689910195501666806988879884800097265119475420842442562490325322995131777947927846047010458188475851475870644957901927880914393621138411285564313929743963762905191583449235583922016874739661923565565107850296924310983740932107102884807839490453521297144518071912249136447448717653061639687071237872305413974284598085601235248824470362343143304082009489356329925929698185445258080609913840748882913322935519866209486428268583785327546567972193668069535824323297101350520070623981282761097822233129577960721613180064212150097599990213403226593151238998701947568755201936870036355680701804413376571984702909197728389324681697365975134569054034426547649081671750389358489376085510327703065993266162431053241791523584952156643693413233467416314457623229773407845542141453384885503142693425525710586109227483748747276200910699273898708091388123852710804560719427675342493183546398169814211587662200026476927221210663571736799871789640509636301823566140931366165148286507869219095632205430970345436423706449907490054031680813059026320118652716347266753124279264419736361888120140671957075376501382854189874335388798697049848203227194686624148275219686198125495731615559474313131820109387154643534030257507107181554065180501844885848786045625922229480001544257500943047597053846216211817985912148954549890349681146949936031410698290474588334805870490262302354695450986527491249579055974403729237433218115146064504838895872122197940446070686587307856086208771421514797452194993403982344047346032234092049365457504355711713151183876142465841820180730944783966339094859519983579759492662724143130044030312018700924364041278334980050672305269020882088110195312422956874966687870721217656436525676930600712888070317467327481399336629721613585609122909432541393162701668762023684180379346456008972922836277967695294660496831902061831879127535705629522700359695059824947689184096597871056320716959790562092457222479301671307156785929670031567913129195367684631456306077413946688852139642131164921320029944916664172551132096419385621287421065037458790171971033711710544068280717818601202973645527294831711106781848046458062435688785729674394501795516559231436971502505228106512385213194285103173317831018181963018297029091131516213363663630959399824284779740657724146404741520986248866265156390792577023765911874402930760929695949992997438236645443214211265299981454731930132493932383470153226937677106038986825047821754975725887457836376392622507385862809414964819431329268677201930335110055554519051777037236896774740388679315653630875818762315942776820439812033881768568627631993205136443025735467078994028462737817109031284361683384928957566276783090407865386634942786982042952064792452493516612205749565077107917163294709463194703421211790705961018265759695507226594262168354391538157516826649988198064800275075732389703808338693894599127166788594590659322155371125357505096462527217599051831028245805853270963770496793892397592144686024911280696333544702501633173342853236888652787168780771586433125988066909195261403764219975772477998595002134476948346166481146404478247369782657281566219190553248731976134499490667345118751417205017904446757519654861880175288230738675432616542247324398734022899625958491067930930495781455521889202426806213955374212714226528422609623609578239228410043575440850302009153446480479066252514600456289547652085532667854874601597329891471910108033466535348584215071657026495077351917547927998200410643170715179031345976688264355878931314409027017036330703781741190661639787442089239161833781387013285612465096149193513207722314870737345526243293773559521390223127106951829772776115656676073131868671320298082078481796006567180858151054407146224017882420782527016605439248313256645835594959177307446375717315297803039829502372706376640568121025959512479075947842119774149630986317308476354031049027812576685588699778518225778186199504600450541313490744908589015363130117318850783897480542373298236143350384974888211476216743739756305221956345154673455441775287271774610784158436318486415591667963790084231275252719268263152823379333333236622925100490520329792131178713434321507805655168777131937965057950672936862293735490346142329583983051717107356757187241646948183199248683018843646047571860783617047209472931052893500188668458182596433028949935029628096614820349210145894460642466677045992583018176535416606310469056213689153306714451292494865621020005020494798722038262751157565071587079158987211045438460341490989041887037687405419513987504777747629706478818890711315273834088840633074824405422208785426401470601304596964881688693097238646135136379782782249788837067492890573713055238362501092020398300281186116978946033545320593308817495780380789756164182812640286493351801047154436574551069342323540363841096804347562778285481579329516893342615323920389142181759271501801846695973002460092991665034570373905332910941080934675814933884256895374086239039519383714453950510001481708886397228199923728553757191225752047822316749163469627404509804187505312537149062485690590018814045902144895140248876915045689620121933470495283454096862240594890589673352740835535090639871853191773005827350300190326773074004935768377014527281646163128297680017121687666120741516558815414394680310026190351211509162669691219506597654162759613403441403372939214026182998369389278976685899193598733057375673957548940812740433896354078903861028139308534211978210605453098304917983107629093061675456575561662131164291764592843915197611808961902070838915610553332738072658261428521437815183560168839060896911718602196131041715257018364945938529820277564758734003941920591419277445012368201321523700754877352167562307607187112883709394319184658356023863696012115789809762469864123863784722739502589213914181496022419363639111629002629167243565544764769655310565464352287340007664156843957945702129748017794290280573754507399718329752702789999290007072271861756735204352807499632446629755231113249401947337190251304822233289106050730240647970456743813526098876590564942110008866670891057777349068920691860245273445617301889627733536165701564265427772097596380279717175279686014758068830863715593391975949697408629959368309640183247028827181915858089576433657128465563652394347692733393180553814264894009186293777998429440973969531963436098576402363382303570039713915559196580055464589542592724186182368226747747475329005032407482969417321993260106507559888691917049607760898734385463627173098688442773350885771326990612829355170883837880981495726117350408657340315667144463519660054642796046977104076851783461634025847359771509552281972539808767768886846478802716800981349146291242948188383294803556058340658641725962683018500874371314210426246160987301672487577089742231729016214085266702448211260988109926390660501396623935637800427308183339307694323094793505865688953287998587677686400780198999631012444333737525226721214010356431957302005632156578242636624427257633259839279302701275948052417079443129126200116687164716531451466865691176138279898847126208832648681828778602833282161153628132142587653147235497057035540147943154645869872007814744912237506835181583763764144240984879850984898418211333936872697155564470611099930590582337011352244549421232327640040202439302911240539561367858048442025978062103705831981349479973448886883545498691057217925993854822469543944817453921511105939487958717975542196007866282772396829607262339311118958925912910520464151430875580676959261282187557269768131821067693472121927229317172859315963165498086317665090101833957757587897485962891387198439153731577858995018578921281656226671770839047461367379921746204320399577375628845473169340692186584360874955483623824931050523914562623489099582166508685138621034934984051754212924582721006884542244300248596355816842209268794463815128699261726585336588513862172941149933315429325433514354393163917433462055058747501352290761804413525264074285185478031845886455625591341260879928400973107573032659893670635019951660473905852854730112186451582895004343671481268653908699887778582267955023667835442791132880411912025300755726460927922477290930175962492929017390583209962660129784261359987615779410613334109695644018347077643828952846910718008602485343332625273723196780178126508647020517537171754008606557200382489092449497466642404967999393484659280714959136761109958922983591206090193489845779523989058931259799519192328342358196290393275386156286924228125605327746171465965890670426594675407809118310201272412676205119665689025308670641554375960570135884390699756280477863891424535599766441206550935353616019522740165645653056562036251587552432792016715428952050618112130005148910055393663532001838101229733195875749598978613752044642790217341550926118580335030364576378989136350196017540821375328680492404280392408578554934384879049709573051678169234971676239017253273770573470938229168664718284181992615618332063041503571659810035902162583532329193852016951310886279493797080466507325693718722900506227741286405389564349356038818340615114795543242701120086528533740872581914317817575721655983997591679750592241720744942019225319872005142780794946797694962154633647224961569865326726805300489222319824780231979195530657479128223171840051653094496163557256973746383122108965142448925801599853425217418753786765956518097588980459409162409721619715790156153188868216202537916048807764625180175491923017571855751923121224070636658966763038928042583252777723438738879804747370279906838341573065727333162913934978593062606151127373537763082258676096953744554783263423722768468018806539394728635474574758161887706093659386288305458077909386877761991599196906846364611026481104682790832287174480727109503023473750982894979366109170190113486909669378173890575965764736792729895097915994820506784888400284528131990394892335493297431682213379716486639183901675201938739922107487772614692708109759932520332303654063348683327249229260908741364478782619319712071446901599233413982608597066831927464135707893821188496506140698490956890983006919043107429634458530738875363419963959583201516009509157851374896018078214882451656702151781919513578374086452440631455556360291931123940855554089789324885845632315063837605127930360579153185724530976486870167377041002224404392294260769013752058078283868715380142232570033904870452353994028119729745886156288296349857607342367616322736270039939804947450615632899597763578862014236628294965243604435840057745090892652155848167255569419074701701501449111863810276170157382344762916918758834088494585696783817193871388438421043852517253764963014508264169629597102804583705431713962695783501675770146062721211574216995079919398921307426598396024022146712843292161254397491542515246176223444431420257833456343663686057068446518929429978402784845366000046109422839162294163210097780508801363872071511833524353587980610986424016645674208358208262849201947210925760013474674317858703953090096653544623146431568536639693572770683471946929499738926807765949621637894072026026363568422775313295968603126367963719598315975689726685093598209682555757991265989886166392440958480170786598006660681552045440687073098952588298159850244097890884453040665099755959310718055628279424452145529342339041660273492008554000609423071322177568364443136207790844376135500946885867698244020953736215056934033088374200579583433802617834628482089989060248507228865504687589585024646163510894917688559420130779171845544832718290526081293625841110076374257789317674588647510692739366368012788414025059282748453223524514045602797567749515437084203413615248581005548669080885160489290171777961782395859347279947241313023473129291878995611294903854834346974247321054502004563708626560852027559436893470006142791025473783927204497417313224875828966581082394220093277938907192051150261314560075236792942537790550867444638914168929185869122386305792317989896589398267251355847395851586451363221069722460307125390266902924805126705723677747287896717498431295221429597757745750024647200650704400693979034030359900238166014452305410350153047939608271704419666704701173291703362431184102585863037625744802807355851559553432403800508421097592781080748067851412199938566986848449436442997378250176539460904100544290108922786974857484161576314900578522356565537337740040121110904949586383596648829367287223984235885871639817143197879431080697777543513028342637687475598544310755016430835844649666124720096552342210344991108748977575069936692625204645525263118080707111847257157393428873425196855157129502304782142041506086950341476698877587490141598729511268401720520993602154414228161602465742164561319333564059327054696654593718844452162630792208002405551183396854711328660898107338763002978304616663889737368736058891824586144251310741399276436477399446403310155125001281609985918509802424639477837427141115934465103543821890755636943738792303055025182612486291088318660187305316689319676923854107927356991722863158372153726722622363343567398568142609455260134312986744341169184272780460315674227619669442026622985243069888196148959222896071815147703778515601647030175373342144916003832747115298891570944511155334474685476718022420589844034273281928847951194307864722162509137522140407742329344062404348499616270865703404626471478403222533168589876457049972003114235558410770142380896210367474286850006277398105947645927755517288452220349655047107411064391459602444022024278836547975099093276500739472443643805667875352673633935840788654508436545583240234302277925798512854683077082031055791197037784867101853150393686478612499056525484849858237851913911236574661288410463744193046555516928450848693750984902683886254795569515401974482964462899361305161908874313590217432784982613144810950475928975951831056725381896884518903294412779707033695915246933085227278236063078959941027618883746027947341879378378880684790144002802863802612140148315439120979477618880514058294898670338879946064693711520515378455264291630771612208315292826979060227659322044878736319597609161937265363842852446677903733991286938564696735791050136387215231542252612121563445660530961310130767244958321955786375778785706222984629966542077167926947656961704852431772104475958515730712854546540342188545655994956062074726204502649601038479182987909209655445287055683718925192359838499377897569164630633201797849616878149012862087844881012171181360653202959012471392547586039583009123328154442347651988429645407042810456006470868842276268345713530330542828445651873935800494547309069675101505503094642674167307245169833482259205095970595508332721359601576822193729842962827351289157952347409624684273571138789594172603857961035689359103383519223934445513487026209914633187025291533564958163789030615109294709681568724485887816330623721606905165320569556923890436913108867939031987453318013104759910558571442430960640857442000687312859931034310926579271364822782304589562388273926973767259596923878116426117335368301791300265072831925785407114204273630641719567275452398504034624402016802296445768933119065132251020225900707954563830533634577800352251697593709941909227038670239924566801365956791765898650806977714935824083982389552673671740953601730334524057645938430102215015246244339461174665168922811816577418990880731544977849490506784506095112116447931963886807942380478454147795336989462258776881635902334302865380569977318482673815686004758275208794099113823207074926612502768465610399176731288891758003754812790106179585399595467228619749215329422444937367563401444257648908941772556006923832651554113082091069376124412716452017302639036112069637177484510126044404589897912144137429395022864270755114177373107111390170914274686651386367812561839883928724118523503808371090510836369627181367516595822955268581226414657905486811228693064862428353325589235324826552926923810005627832740995621015563231576196251413466706463344202715959735708751020727397836470914325921691238929599742604539673298222601627810557790941026682184396446385046812820755771958692765943813312851693807065416172472551141388405941959329751550856183387888805957952453312754420933793182452951645043358822508161441988144844915066314971067801784558443897329165407902820820204541414005265600380554318581619354484183190673214743845761241539880598510559270716646220875534927942717122847412504053525930666785793886907248796181295712574159631980947524953565267949331011956912762726051942442071851162721013234247828025872600928756491539674106405774700508425935557579113383695189112239090291626378293292803128102050345992814906242043670984648337684940533072794944943459460632100438773192642312660014322756239569978117265963043056541185146987181911847891936199380468328440582107223125515202994038795487693600388004198785559046987829056813955846397658584796109034785336547579209818349837119480403216704157735860085157908902781327420648430228764955987191800366914358388574163445438310354458361102032642503039897818906853895221749799134878837712274171431789696869916077418249577122230088660633786420046640678842660794165962089821465613385232714992163357454190237393650120084360619292342341910039718668660046231835461501034971325617907996284686076170342001308126925666627240383421204589996572151639653892244483411242828271639886958244088112466610777594337839637470986517332012764781110972448468070713220828479774928911747573104106762752801732928287201744677202733824309981333479923159484577557547373738128194112186951113450977839110087977938137735226378510208461904118211699061123593435166049977036475589194779061392723995779428839028075761574439511176263195658354272063349651390174660964812859572866733245289982879277981295231773449270322213949599604262700578458454073742799561501139883700598755463908992788198470708662794611517585074059014214776662535366193407401421619439719193679339663340081401865712857274716100335993949809132684255446019253686125227719166904935348399761735580945775634861046657394856420709560850248509034535581996525404643397053675381415448230659965659514896788658911111942104150147621608991565752861593553489492213205611260331716204524116488185797337692635798201553471247687234672026830208471795180009283423147758099162076677558759227982435049360928996635075120168785332196886429758339892411197537043860382295704672392032498290836485901536045647671829093473188737235016712318725057967301624022965099987066933733015316347340168787903688732878528205279339277885304017463008219289062243595552618985742263362029008375503410982797549403330771513065927505401677058155912224885310294759780145321708966273175962880538369540571444759153509388593270158298054345333618744130326766869605659676694867762376806726332652792276502467187156374159640680049656529442582096677695613693681656760182903873083182424699544200779727253365017657029497402689904881411012122229304879176798600151331789339130302072021588957961907403864369387860404763951599068348404026307940357542493536391084120154802062849938437711343835169266473802901666412070022730531981554516045989919104067856687744952604089352371089088043995816775867004302257253743449113989879205234398672265392702719382626008103893297427206984588797968457344288056223063006422519371482813923053623222400491561983644989078464583351817750673149349949752503042887831249048987201748194329409768103391448349914638570293510944416351381707282808386932164911899957299324273004091448552243841354503631736882161647149639040921712279590507865673175897781567021214925322008564392148645555411669083485433537009681824397281536446826349455845301246225286040758073502958790152725785150709505113721440092494666486743246883773161144579854366079502006502406058453260596118317377458732503887001009725556111347444255306321301252351812647189215951010607420738171194476431630176412781367623354679803326191011345153748863050001059750653214966052097134263502339839141861845844023730039949843147594503756309714072093863656738955244365182211245985173922137874094968983893294676612775583869725984486892940988942990345105364265527157530841687608786651816216791141547436176569292090675253206255600964945557527163266923226696370980822370034156494514633706086718051644133759285482270674248467186819106319234903647387050617490768564381539337447859773910579815421622525697058314502819914325256857894777155138954376072750061111566506212991509191839314383019455878819355290918265776512255603029798273439379207968280714471509578616058280549950419400340326432240820168483004071107316440182100829476353069089419541433844669947413529954494338103880265364033215340542863822637986638649670747592312937898910752861616550240799341093653053396972590625601894726230984140651979192560039644987309449962739894652840133974593294529168900594572201297374145588620873154988477377099705202142948232426801544844090260345065309437041788521796759093892663697465552682055325957296443828105437880050334521516641353316699282551628954809654789747486206092102932729348595768904742566507713531779332170764499242393098630068663879507394137220283258023417158432693805395624989611632778878555553205870408561150656112280858341396435466042839404749865657825788233626431195507851488129910042222337116265339496992783124050168402219196452942082593347501984817772079743013881869806720475539091702306925916470648546253469379919079808546668223813143654670125996500272839224567542946000116819161511599811519737171191998817982094064506578974443226288369135930714957290836938637429769163478180151898410317236055253372314160437096320819925901853115006591699047982300443536904573873627293491873516144048445289259780420970086867300829118517710206483574579043841242405098817099281923020897619892099539973345524176416760921593979411774257567294141978928478352538490901570386512026563387546120709236162929665170801852421294833758385197763294775345554904387464562223704427390891065851032808077085685632053950936914030354835813886477893493240916881274218409739556052108749531122716482660761581492295468634958976652595232220960150572144791064669606346313250081446061154194078338636430713112153395521288584033834277699991703475943100841014888828050407265592702714705475905964651372476992392503303835741473512832822057141507684611754570673126157309421786883094051123755448554611884177119295975986513514565030511134670254722654470701125022301513061418027389231736721002756691376857246062239960248569498191399512459723478765191982716466027421065436108423685411931902693907277350438847412707395468150304614520473503555511502253316573568778370266106774431052257360796934288713856540140121887271416906677221893185212475394912963051859144708657306586628232424771049188600898737911220184754692719969627253144713528025526165462329647528246847021111957597922726540683726108032718522804187576824212997895620556495149044274098458009256235853435985478812690728007939125855503512818071492320800056127487782227785643225290493417097031419322392258790236525911682332765213866830955526393868680772676294392956691557673895639854703223126268011726963197906584481897582073740025360272448814503437827154953230090365009893454267571823477525367841012294336119166608470377402369559794287236033828469757177481613315477106536452479970294428702554254007523743318561982395666348037015034846020814708505592215503502131810111596377199937142651012176444468419220419186190593805202254289160042366741188084298918887722734808172112980415595356015349986831936628066703829615265515849311596658631286779417076363402070326091261950906075764061532439849131276949670464380970205203222570889825747355716432737208136973258820460498345347239870024423439448278171962246151853590704708723746272133120794824707221709025985272879681437454509026286358651994897040305151191765883178225134352516372231337368818218670561610492844399632139034259653518065553245041587867273270300596802490670777196759528238246822450821029905571039012630072327983315922830431096194269843437729101511188541734331224931140106494604698952177204072969292831046962963935962864797284955515910081622740251713305075769677464724565878703839004560428027504401259407529751208646770233037530614797733736503240479476721195150797185037902121717053194196032120685500898310032833875755313572970629303413209085262343019505987921328938927036241228108688694288672063577130754088548027366038302968685877151628947981283710820967087262737974716454370480770470400287172173034187785174689962090910078745156806252856248057939437143081918140718891781372889293758028162161854849017303141605982808829668851538546184012291246959249213677214607048304889944252947337003518020157822195617561118699590298910011693419387773546704050269923262029628904622065820695482317308775827368068138477678728770000058718481804473517358845495129870888444530364032265916074660555795588038459899658229545994022142500054126299004278092383816534299028317006031346226598297955251675686166307244952767936418810355678672438652099700135574371439442118661430164556054177536245870712296003359937563230617733358398175659335431937478701579435614164686313734768913744222406734748187864822781220878769561917971456969034305040017875789232243294787708519766378336023162860530384512415066718829763948327215673935714232438872968967322870807798320755006863963443295067543848958794966172355959972614814717734769585632269654645184937767026325414231303699622845619085104607590201310177678107805927844054470800967092901718361333079642062211431604441373383230455549127831450155849120174652339611401345495497905790257326144326429366847849036017305073180853377501486648167952195150954835989424137850640729855877805796605740439791653302077549293614189637546856744366920554018891016074306587848875897150901001814360985625285922263478090425458803429548567803335337297512427720117234638169346450620896515234122427522997832018015511804078958549267481219829221633463638614917604876207617635203777141721192233361093738639515457666094998201896423320501395869334027938564104534795290754823921831352197196964603584152741704188300012475064328675748885068519906851534495390307694464091415254526508324755639727242256516902776526474030933874861423634994812242428808995808280656420157674681588177716787757629449230616276408607152159101086377897139556312180966493495655622895507148645162072297986182176423932882987054523731370357664325585134695892119472450337902532487828327513510912840623627992505286082106143361725965518058079497073355166172391317716892434788659366919238159591801573392952611987244194707700596071516601954442901121323906149988615924462004675552313951286842375615486917972060209798312434387415583123164355033440298483196107097954907282468707359753355409723709324119625007580085217493942563920322101518424464493521739040301870598388696905203045623232216342543213128383557751541347290836799323031929808198002625286338473669719481276549374344251139792046645268069326079690851199761854509445531515423892811390891893926157870710439654970429859275740618765740942943644722794239171614073390012684908429724802940766187200984616539111885785588737134431701786411142896601551611627623594339876196443444002513345229781416238838563628418383112141733766997999274105994979807285609855425377622329180022665581820241452569959958590241390989271985572704875811667863372310016353572716010616192978288071937002107621167778279678707767087063656152271807874529550930024296703328341381490037827930975195119369050019929598623792790806175205381397151194078687178332529691330678953960253099164972554028299431012142932595296180271783801717532774373607358286287618150445100675656624862024981380476848358117249962264183539169462253956364624237956458986382040862309080488519758912185183543056131593210717754541712979742988186836518291565597089448685210034950821875712304703591364967454334184082920907197993721924191459502408367079056063365431278452763071944059118671957523002621643375361725737157028305916421069420091481036733090952277735200473028881668786365198036721631412916855417370501779845042670434032365675069184422179605519004144911350919362137836513909551632372691122876226308243941634960908715928907782088024492535644321591448711325347152412814426861846124105917293405993614143629139668367395486331999279790210302644376138040551821825248901030047357085386036921995192425519269619452305945311427497979115990261064932710793034208313981811854333877195652933030824019979679392750088394708609530312401830705197481604637665021474904034401700823248492947964647025924794820827675359872692434402621645336468992487779525396167915911422758781191961146865953265269937219153687141245955086888116965283149003341761587303155598825184525956232536154999853289853838070143180462178160050901510559467951107146744348669302655561228879727957366819357710342841030839027256005615136138567908923867176926899284469006952286186355991596629671838955082726893235155818992810465146001384118009375404609775452204143381494108376802511959800591028435767673229161257371571404716588874890073980064416809052549162587636715328921178952740291119907149279079745338964513274724940352151013185178727082819708664587344422684297145542645266544393267829924935883776938931931488438728017443176023476953475352315398735194050223722599277458044555604446975594749188799999884628929627025352966676857350920265691003447590135541143390248945995053397907808168844256760546928253741498163589472662309850245169571350389389480839471573477026608728842484735849983261325949337356425266689133354860915004310039159726798659000537097333791001691426059361784639166991895489743129326110604132471557796209442017523685408992128328632497479299100713682911204635721110984616323671849572385888739917630466514540227170606076469488143840896763536215982782189074166837376501310649961777799452851073285702116877947734845609611215330797337572634079119930050980948434285661793067582554112976063129405112525501034587170984766766657467907013205540045118342897526575261615611801124279152675281793591506819194601607559574768454218688589580044361755157221832664914027104322138464011458312493409337099487459478359508018015993685595416004714505489437684276068153798668094546121881442355336252090652798562350839291763243527644278660873941930270165426471257313983554992219097450393750541341413590827522822156142894735914262323236093684807377846734052336682589468495754048055448082870795897814754992412631092877566734336491509718952448547772221022705382872945654658659218393831502792232527213153882486146242284998309879341380036554825470240943399103764580856805179948450404152987781251628157759593133928601924931059493919331904162978088839220113429477974416081199120338816876217451495044841621149331884959731608021942176349336366762916393539703024292874599108960645321917019609125311621110540723905930130554176705807364907924204260400393384010773916756673631481746756892397903931543813277165990862901108484223860474745099330341562144370084402466671980922576621991704633237026091574586072655078764859398375474050450227727055595155475576108225193903835391137887436078266627698298570515005355887208915121629762220759752121841278465654871964220080862727961170986893206054222605656507655275552290871064844818089825041508165529381667765435384874743360139663906364533976764898828658061628991225612201619608218150958240476936165209628334776291212078608029093867572642766655013898675003049524876732864953543659956105350853785512438159538227663465238048084024647821137618763147941563237650152454673950741823540862178814567649914745377544375190950599108304291450874871006576762980209520045130318273413274421344087935815831916085216098538888132516244544820138608858134672382802123255401285129740083821145427485663341674334067849843318227808345119667543620748809000585880795504851930443534027411210553361587590679540955930334750402340958167430828609890309206558029246782399557698300009575741147193371079451338046843512795339925826082236130359960005003869195490139852052395517502989004372782435309820714978691345297014775062516192870995799011104902282983492118253702876772240182371574003625392164316547279177980007609009129918386216175304991835913998658947768113163472946120136561219711879295130565707689296669445330569304243233712606022186212635117076464639775119592149618035849163585921207380828623358914246050614052099510369021548110062776671638240456888308690402299824364458164151054324389966883288030282178155021024646016317167044860597346352283859708287180525853390869211810006779504801803364278321507081149917784210480576830717889506055825209567378225293656210026471397201534070622979031037579544593844311333639812622784698118184710388172713741066929933212117562789009441359581697335307062979367428879146564254679451504618218477858723508661027475895676775118495791904222859630972607133946025634778715450133186964719306051489736572662523989734607155860794533335402369274655442553678604027930463085197161881064674348154707196438046416156370818574176484487308240418494608242863986162252962350137071997680118774297525119282823284077646878423777829809775033058979571977303291243815663194660131392586146382876746531466288602293282583163668014017076160689093868246377302802001055241281520625521817039361318254325071768491202824273353768810161933577425168240571762383579880735456783531176759301899375749772045918363200671085392664193673408284825022788173465406379650875877634427109798275590697053659237240150409169339452703607239195660122142645810460277564811671719227408699579849736444528303681378701894948133948286523530123757103766049867825860778208047382878119084276475139520402280761258677381431421847737662412625010984389008384206184962919226089357530657292296775474191813155728428307038343925899346463701594563243075159190258603160677718469187771453189355201767465377000250533644981981566343978551598666410684023229908576651296326252275779937822525854327474062472252580336722005064598354305917148576172354924213611647864733264933723034840119123587093102909692059191617268583531778785709896075400625709261410196702008285059312024925102904850098681355695057222783069483788732077854486086417860384244690566819183871143151680986621751794597441907445766971862558019467739688572903511377098084709774751028967618127055971782035412522161095932716030066616003971759521130898994272616992103359907856499314865701751730543137403254530002470369061424812354566255893882683268062653491159883750910196516194016097600540992285625754017724818919190771346731607958231667380165180353794293326691164831232472181578500313548117394261318515392491491994528478389066999924363007678477727942915905249331783674035906253278186155922693434497898306861305679079488463168994446169648313040543970755988264321889431062417322657453424639428029122589616698811529128119233934305006944759368158579041944940251018311448080096151546408682214270817976965027392992368401211951093405417773982969763102967877165977732579191992058108704891758583798237421162204199376155265028379791955073151074816157684487954727832966662348171293488630435705357199929053752204447020051723765093256411883898367983090924957628286582619065165260327161307850209854831909368494625257576477104877450268765646789714859934903222566065499144689034732073505161031832472803939739475306178858136237133673736533660157357669860725102781455790983575571403923672506654855353121642192453057575941481250039294375336618666658531855002551367335575681905395614052980236328560948586934547743883769234518620596913194682221017558468573896772475659351395525211379889827409812123134278071996806498181087872700616174940057939328827653746084594957965639016538350565643345378129148818683732645789866565092226492547696763138920087680011700991491280597476744786270006445931934579176405392578693968343084932027854422610076726359554959586088045559000469552547895970821096172149062823865389041505847916913467060187148561243247019888112796548555574270457789206850450302912047524095307242121762424648870306360867462717766172537715645892000001613110858613224710238471954584294369087631980191485886903262902102321172297837556615743685303473070493962733387023696384280781454897928765331400252690398840557964889009676349824856353461090084658788736977410639984944451356185915894112984650609762549073207540458850464897352967725134613652138618819691095184918933793167263861430621003927105192827310333385268790659329863570973372460229031184746640745739108194689354743355203329503969588789299072431173168868507860104488709639668853175975176918507789441944758285426688395841169988662670650807399858512122520737255108568941046163137237583731553547486759948919024781638239079359242636063759188375353095344745739377299653202204273330259224374117469403101715689622645953710115904171271267160755653816727913303372606893562989818730146325618341607644782210672680779704796283338701761971645119696300062806731502269555929470789891033168127399548307542490825797041700113944738760491654379625283659588166457401935588459924336957170831020582223965038781785196713371304402474594273828392303951693437902750157016999439197257005605262269424527513209406426229687390874403046467237802173144598220225704579734224325518197135676608239480080474471903832100846428295399710443452710058889185768406327336762385227086430327331812355042323388251626726657694361952677266791166976886610572990165346788643587326049555458185186977071518160085127321414592468398202197300899653286280010345670834523047216728729807216075957809384642037433085012750313841826425027717750057574995225727029773933971106035531691602706492683053321015105333558944796214065996025240857608856913709711666549119488274248825551226801715351709994615757879057527609818280162241983367931140350350206315761735288742968355359270908714918998179643098603239293292770638080379688646320487793890378781059640333250094880155131463809450381433754208913972954093534985541729618694171210064739952518524780382136326936129649798600767099713051662632200156812142270715045371685833879626231425948615932389361206035792834950647156738536392672209951945639785918755910547920046568832516626219674198943443230522199477621584687696718227934738520491053568854622515917996856190764075943204741173506198881179487067546374316217051010273989635081714513574271111802892999650420605497377521350487874972058636520475677104695352500811495242586403588141887864804812539887711978983342787125006688697412451999278605799538866155289629964106674014076289575503793243541983726337731323173532654793418888812205981444626811330071838802078964727301073071022151784533928500096959511019622744776292073759402153404953279049562524962144668449168653472498032899161650892918964224691496119579157067761210737553036279869348469638659933440868736955197021731264623289496100065738056882610650636095698454263775695920535573135415655050167839341463189838243089669823731912635375710318702529809706150703595151182942763407822136737861407325136533926626953406775278068107646688759649181150244061988551742222238359843787283829804687163291220202706430944216477010926248116925429225717990036833509288188923372113888311313969578797821470446583216977429812634698358807304988934807874811491669225894318842765339243678060172794667855945285442607140629775306616609659769619256323343734179386352987593486176252784281990161371366908827635100332545759687823599011454348658461134940029626749632670862337749378292599370125240566310737344939626456615618866960381768894765858633892543057900956139504694763178565130364999881201551886208133457203162177829382226895223618155802765385948542582085334045048761275012888295540554037522192499632525434799078740260782870146459084341252384012406662398025259393390515799794213766593223951526541618104541020974884992528029666352466895524603163468419432975910840512478848654509869571964986746187296453124782329283608996580068804009108955362675273701679091928731151785743956463480997175875134120474700772164390956592011488785058509960155529227377943688562418272778713452208179876478834592328148608815020506709936581215443526308346619169952492471846341879953336279453827425259685183533649486044437072025193014391883061695604659682651341814824538094389554150047286953223824666966704452451359310483167432671254198919009707058811855145724122360792058828309495017003128918562056625339208445672102377375184732363844482565619188625621410746623227774164893863321449348851002002098616442341077582518482758584588077219316869882184458642530170062488782855744970552328029010553878044624006116393554329091708462175277838025708919545766326681462478962513882456460988230181299345720895776403620135238662465109552144990025226591432687024719513006262938256503286604088286543516917082020374395203183948911598970487514956428678889948545528491183174720246011498448703652394409012413555603646201356314672787732206281897599820770330637841902226576969188861871377250384286078100367599539587023134927851885659934829048102555511882699599782474860032271970558864044219186339768909067111732656452832479425267592332351664093791679730923367944769071719893487283352632394615631866341960822489396478326902338445890513236867480249241176351967063064182603757426447344458556349190627133028493939266883643505122227594599147162821330115685194124504305259511597117195662385257335307352102071998909718744155708951476692916374897012582477922292968083556211010290221409105618210127403901842765278512878773717451729584792259610402815133110601607905549239491125729049811450400669310808171323240139369008023892303784113609952463823787367720806811266821313419790815292189759383769881961697700278716906046337984343587521758184852049413891475131001679343371265609426275744191424823552751900600727333487780707744121658023604001643772721388279765815076880152996623024652272421044646325757812137918366706761364743124162715664840801669746765582720677503527703436940012300862902982691128850331280027120287525891444853963843706030571478260489753597296863210449832110271287915390591132964733827110533198263943213011260438476707076612446112761764675408107429483447400125065543734409415907008695340682881559287269458388631756561758732958046560386790528114086228479267699634425325428260766251537185539055471600613068942036471044196174606142915532885538208631674374819391331886587951157640547283765294205137708342619660146076144360545896028303827888276377146067502447559078952089423412529880504503265541582874397694966415257059334576499302145367832845224838413713015445406411668499499327799677857901429311172526527341580404479098817748076926991986079690114428018728291898953662096596027531797710903106845200193321881342373753149616272811646768872803056487676604183291199105718905088897900828375477087277241886081852052182602918229528244750210679137877265669760965411189405105604374599846910637333540186887591429970179182102634020386017367656869161312421701435585375113779848865596477060084673262162109096456809631663083623520420839007000088189632777585699908821115352417345607813944500240894447237741311728761724812279136456325553080004963805819185828144639681640718599057099883868015318353868218855152755717262734890200187698028926391010504985333844126598561579577115208942914249903235972590121583849913695779454894304337013722717049693748579753216923337095725594839071518255198501069345476440546691094442156554348122248002200606035265384118849217775513161437364304016116778229913484483339658881306433547629667823545902903650255465011211045951660582497079547769403221047335382748048231587850686406523970034731030401137217358101872170878442099514864545645813036960540434597233239662319725221726777576924479792822597338090862830878786901684947113222018765142577229425143058937329890628795164257542653324107325657081811633018708456004073309540264102616674437749090520896963167437494328128764634232701791558240124335612228794213915217608480181315496143615131725108110803239873512920313597821045452156178744819632060121882720012804320716104234252792158752876179177072645728963421487909073791927394979163338380453774687431750210820539048502322795576432612215472124305881576479126382055114230172108426111380614585766960511475206451978977570823947928060534365555331507168939546261848044625834350557346467900133429164576757110545991091934032272353416327920902109326993874056426417959701755742333598439280535019310373430945792714309258557383808534740705405705728099869354735004712472581556612236326094157138981515961627484828485261645324607029031360028333001154835704530397188798001114585957339058286115307147789536641662136377439217725890085791927583724747093491179388523731326457092255086561505695921859441079195873869473195662886320355952012125440811810748177252238482312142434506162810586524174978993609362384385887221927297572669333431777707278865821251605304607267768380338426413196878554890523607117283712327694946327966346934212266179954213343627034164490030175917991115665291868892314439506910868790307903102319634720772078641396735271028568100328165625262315970909274000950685787028990847819320519666293095040114913471239889981561356675957448812601648066366953333383629538773016874526419754208430662506275576642245876632106220615077003434077207825727979770405441429044721963922596430972977350056524177151790827570509849859245266310113641340330334376076341044621065179620594890081034083097592948018432901150615131164486740201908106397913303050387786880637408173236375161388476417229670827379261405611424193988714514531758247410584686366443287680580608100767656243801273032844260248200584193498881847122661289277117132850639133754546521264377900770178510788664258654432423695984378380417794234564761415523056833299593221593928680858957324934299646083638462999282124716370681333722031650642020810572961555697327247585301930352318579829053709630134461277782782316172104334796102421562399933537396457681588212505215251809589008926005601242344576572243158855962288599368816788946355204258524537088464219904469415042500539798928972306751409347780637333825462332332098644568126493826205870646147825807038782258942150213823956650410653847702951795692157470212766613114726382528161574736894386772475361373809038376750152187311349165267940348476199742609074725064327457173841716910120725760261485427021862152169593732197985007078543890656132422716984851002759047671345676518145144917855879830716804717598206779743696753966375755579602908167946111048733101200855398675356856868491727683172564415993225362040991932311061194930590451827867472484606090378251309088233123217077550087295140305322153228036535660937392103950932085026233521453713307905901733511473118380853000900943819856495707631373411393118568993753780189899822730418163738468122239028445867806335869707899574761171593243478131067394133675997857012343295313383013143106530250032798301124285553204988124219051069850576627243465619782068995640035195720485778586862935441547008936071754124484012185050851346489366285958079846681369475081667431831679049987856118478619705360706259196212862659910238610109110908025376098589339645277343594193037878196993313170746881044996589608036468900696655282914309048078075551128643804257975920700233200973182676089146629107362626076402301615988040118745335819561810931690083907202019284314284202234223946165962408590290223071008911143309002151902456773052310632333563558351776654204058202882027580094828225568888244358345036563808878958662334277692426365748655916605933319084621542200469607269181664950722346255556600479174161332112223151807583971555249616096936739962003375517183444290043290174784439890083535856282575799698038594824786202495294965419601713753383094581431135970704327882505185237666413017137491950470112464882991431661118463546234431016364526978702235419077494597197652535059557123665752493618760946864774859153246710905380454076872324093200830884135321529419400250786064123115725163734207618524306556526725054618666342680778641060006248048138233629968604530615428364454641851247780028472327558968249928113048757124826738886216640791309313203822037195253696873571970471480830945825528109981808347030506925152198036218633160566876676959164184965129531126399004074628852672887658528412659629098646357170033405028159093631962324210277267253567664891035894043562663059957521372393472537694707959142557639573334480372270519828089745068811771364268670394763919500437869980585675466180675502901213149622972271106270085012669642753123720394638802511049079156686890552679640900196395802871397077407582862364177971674363335754337110094778105253388032624884998261361284975602035186562176219997084918390779117898191356321052278191225950630744172624237430215239092895561814803758650185078890484077666343153397077806205580596201665269073003345730227944961359416274211154725479387166283556009409940715447284218825844789883131147910231880371164302051121218824469802679797579545181297000199038631171742164591594209972880202000621697233040654015473057137847851906943569457542918701757433326279754245070332569454939690287611654986945247923006157535989256461472878747433350769915963079060232584244795101389697068525256282451257761130342801638276316278149313548645255532635436038790937920195493919802173298212136243082056146598608699677878967255229265202275812445922483911864091137631024492617633937175913840291780181641044703345791512247767071632701067611738992148532177836883643336763252139156851773794857002559539828591129775989240539994140615215946592672026008171248854474295998082888788950735742624974230006105868892518538031740942207647990235877768116237189967995934066309385477291979764937090613645446690658914046136865336606637994569078974383253221479919312923874277108371022444986550179607885680960928288614260695562210477409966717975463247168410075586092644752080095562410182820582618143326436271326722682006192405528921963261079742619473248659162446018329878577616675571836405815274418719710554106911807188717683058249619867492087861577433173471104968828503185916644741789008049139493106386563998199218607451412003355421044755553190812229634617875787524180740636402246264678162710733906928329713712586476292460949177422930219582068901959571337548320995097310758417035352215676118196183736883641917709272307781048854789982236783208815288459815175786643434294833229631127655440560095493121199627593971837298622172057099186036036057436308372060337801164858803687654324842495289224137885441768598039805904891478006852704491662866114525923235906010630260077841743162269929114593577354467353443288120632411913597075882024174205733841048899515177934340037929423701336791088821727339964429155105643030186666847886692608852470963800458117561181984315469937879195479679249023134801207175674206000595978669868030621901404302709755642268960532358685612333563124415518867797634667640291829207709602038292549446257223649457551791138348454411043447399175215683703500583343907713665627705277991817058228957454924993985443058245282776873967247116661918555010963709207035260217687097016904960684803861770142811417446105462518799375752744015574155001723971641567535916808918840799841034311769293129875583204896684214995896021202871373535981714857406816415045391066615206839087388222719812002393272982429154946617126532726024741576858882339919102240994278291030185205429357023459594061580974981669831689338454277277313198162554367610357272637078274925881427340351489213746225150563130752398698494050235022401125597387999708016683880883375532575711713951329851834254603792315211764107429419741056395803557120829529470767479341447727265650117567248078736281986560367965780002699142782182135122325718290159668273283624859256799815232829536437701141611242038577373885675156071940783740404625733044131919557377921868853471678159334280589832656032415944586772373375743857948557874020204019734504456125669369913989125273403248715570401633820014972108592757929921452007050923227079701032817098122018561821129984517596341597224384212456725456183010688773073907295685014191215871052906834992495857939063930444821891568445284866704391198967027999899341853928702324159652580381094975124640218598110788711474790821021026338254640337111150119919640294576280534004615045604541760468958620421612930905421570708613146275798207912148857352549872286928221897715383740738529400422883723607949735583863755039223794694544301603495722562675574362656107831436844025503320645271803969097015260365984109977704778550059955966004409317401892926443107266891942108861735979234128828874844292105311448282514220619775467336472785214619856345882490180028678784465954491341840940080798343443508675900792007862006330882107304069322914012872248989473263484376111891447674785119136992452842470209727740130830264481123471630979909003444138375777832145834975719628496334530908085683590151599209588690658124342465721924399715935226671403797324658710899881283071800684794741152613615114845117849194412014698291483426126098270212342374502472617316194343672027864739913051673647979510282696421207271942959942369293017137873490876038608399823123848105424231209565487906675393514196013033245946294892867814452530411730137525871237733974459109682117613244229278024525978902809348927440673626548639481571572204019305067566416604294921468721211488802614611530039516622736510629730500715510999308396119591384647835998246639474669854119547910274273026619448787556558835579050127865771705655091767624702646337452494765465953781965440437763656315076956511498416051638453917467360039765177043362811260636147251336667444240178937089070587209690355756491360679248187721866981017467849558169448685659328241743912847960365817140858387041071367131015577120217417865243536816158502582001320168664671181382248393905212942310635642349608413951646166204289292304745846904259815461059045714538921376619961643300304260259687598734306689001246413415606982047388880501454245820274718032857967868480188180218504190106644969484592922301140884509333148484077984942211361734170563469917996171038268586257702971296418245234448765322069397680364863983632256183024587319167538470598063732511629644233530534725611459888811928094479507695456141965571432773243844857793185159942885102342354807115449512242537700839057519042328424534703713341267183580097002143104868506785134651684911859142870532105079103017858398560373646110152122761758743254771757673249810878482164726345680076370448999466052095280597197966621945323124141450722672297151893042046504771723168619067184720604052141314539505057194087481337034236321394472420744073996512146199090876105636889366778631921695755969003228645666630404889432601696989749706846972439543552184362002744107459163451258606988721573387711355905471635723901758782693850760713817076665540011863135641115023562887373995379729029429750404161995143351828161578353012492435241566259141854631579156830844471718096448433525142266604437983953002688073229845517737995329359392132571561642566093620252733388049090524827713257589321761275242138745618044827206986947058879545481270961653513310878249519750835627099771109865781270339324378512966305286576315374784363783443631862090661073556211161231439441063016383326069664950701860579011930779874250002931718898393632767537727567284962824272704382520004153595359252488164822237450884103208099333092339803118243071984479215245174832605627480136559361657711136563682677573606660270839882342404766112006814156409024821093511967077018893373749147716679618445038888680584887914187319535640842016586629166081785158873256472214748323218661757405934290609369029430628462106827067651819058265169479103129007583365098113109694106978716695143073284890553004565019743606381354189218649575115256928618943237718171962332651093225242763548574962201011656640177019589631949074390422691574131459921817365070091777176088958787813345824169199958456450809468841307022764305479421241042817983451236492533722691958664007189523606581247045206202243392875275535692319845137507946492085224745554564844143846846554279167268466183697445827250786127240283477887469433704609789858085968716020079688831346106485131912460396980807265477049393390775105016320223114872758480423230695998470594377252114854028219876924501700598042647970140389960650292505334571166420059309200713372400246556435636058799268545680306059013567142890913210711935029649412317407531567240011605742565551961770180457889445850030890131981657256295167383160007004604198180313379565997417025125296708777984653943134249801386790677964877377505903431853429859796977896475733145123938139193305211871330176778095361404837124875207590459611282933800527733277717600202764711715567140514082226004855395234720073269386084530806620917526597951762064572920742637005196598593932641305001431174738346430496684529980797304477915258827902806094946830187288337145312259219797426663000342864117406360630976289365196602074584667713381975425300784315298252151029584572336021683674012141939740702571616632558896375058560637992055256062242158089719934098153601356555172811428389996071343873023828200151621258743880714510112230986616394117795624048805007447751848853334976346870081083608249358759669617867209608001393497373435779900588186346658459633601286799081195265279919518681813348446392501324891808660669221820822276747069014280412064937837574207136201921869176274990488657738767461873665550753780762794523851379774201441019966180077827944867202270417061014123896776624538882149409860968386358954088548744187143871431489663672322731840257784263919057920773815739167166654667215294906608184984769967358522919629457619529644917599548593606707486361239252183231731904961588501586609855720929771851027741778159119412867147421518553525405527067124989913223293514648285653161075480634637083524927559056806726117640307253230386816294434639032367500505972883097672464588711298576483296509561699280544646779244141915702763238835200105339061461321916036643805330202121782134003528064278094128143074996307553151705015582828753269565220805313019672869718058925487458125893375014687014416196047080896511513335895511919136554240315234854113193627828745621465861930468606066302729297895635222958090688605138660844635528244931641720168521465897670098484122538620768152210985572345215680508008070484475147627747432915570323292789854603520153020013019212864105665826757778163528746382549818255108164104940486108618796961340226883087741710088696859108525827120974211364493006983819695647676336138134737936999701389211924738509271743234233663107631036794188671164767063874772622287246465223421541408474475933458809429566009165100966251431508787893690781632640597727402140757846053405806392099757671746720898027874478097690415622203503402411409413867042773203095058167538897971628390716839957404255363660081024398917504309799628651298651624624898185641823375428974870349692867139115821660523964234737557039029805099893413011416061423503085831088766707176075663524923450511985778776202107994613047218146571399419080199960558493104588303509782529914718028790892954794202110089831031169804948142200323793506377464517350880456559361090887784921901248039242472183876912686337258774474021527044054379508132447072646790488194891298100566699205751349088933827808283130628764678165015598438039578520731152624108368112976859910664288097318483597991058575148379670970641569119372268509506534063206300143666194730720793914767997056146036748437258541087256698019770480203564895041406945872532470821291251402919394677892064757687347296609664980730223629456179421275126782601315478038479776987625012319781432315799259915261402557409225094857821224626521184330335784149979356777522938480272593782666545651453924671169697650379219780342018388802710761276699684742191114663226818478092283969463801488020554468703626184527096730648472568462641814181434287725719508896176074353865655463711218877693911618621780049115686311397604280937280791426835215567518405302808506964836652245176616291781388029257201340132602789364244305114785677981720774953173741523109274163423470147676240751388667413807335257344387575134388725353050311721017403503515468027503517818777861859877393819767478945410510257939604668088922136733063303043060957645091610798321614887207787373926950067920161681740744000599293788080360009366404716530395479333062806544467274775981453935284034802745945994356683047678289618325381983133827789287362165565602178100042661342189342216598096483392999484696199234878586883242155798616326593734041495159225706712006286129988965872148248855154340928304080084683274306200856000436465016078367706753574103576547351113831265144800188267893408141915617393254948857361360937271569842288371396686138435219991051158966849795802035677558829126660954317379827985752400259300188886157302247982187687723711000976559110207249240023169778503595961222244072939772127358756438485465039022344302686164293330630448522745129411217413956523632394221947641953321315535567607594705783213823286936959133251690741360184731944543899490320720177632412230401921245225897917275326488655368757856183267894184143663052657397227915966734949773619112676584685247279329861434040579783015288024552759837533306940428555485044405975472706807278414831653068431144030864720809590745880729303116093553240068348090433604409678904265093145548718574562480988505276676388483026455008744922786588724432654062836772464878038265413758093048748826561305783926130181391544287804806322831606693672426341397264986743290049388794814739742443228994254562467601986636128540561108007515653945951570808663942009761917402604232487620323068563690402948473477008283398644761604650590015038995192521149443998349620673257443988501749611269547513458256242658205360715488802967672051174864877646108738893308325392831712158236406357300703799898329791501660349233429061161592174063822992333003741716589032970941910859941955064836490229244622809246804613970625489736242644679578005884217502260041240725977859883238097125812927910088795596192670358853912462656429974913900283909050593051754401209934575564168145211791069130916428655714508524468034019709564806997772837803711012488960911587466102058110138261052538439040834458719123268830907620656866576943861163760332826011949662752522880477123490988564285333513239639531666762074117606692407063888875250560168073016780667342260892413251195228471736301028127884308886712386159371303014088660232683016348689393846405260471707903588269662478505456892952745080691621226370501989743470980563380542225295212479051520206966674182991013696158002181539336380788119262264688978488011164982744931407355585772182309868545801546253141400869566712362996564721576883466712536958964427785366665708147456350900001264278961771900496541294211260365622377064506670392233554492157174431111310678321939520891624499649457384691865740937793248306079372720837974297131812407454571922368785887176464516662836416570023370345254598132453961176994348347558886368938849273009046856103675081629833915703930333839578790878263608495331950768284877567722657336891957086322076647386372788695243441768143870381365446867145050212393356731436229958860791997229290634918052792959095599627354355845894984021276694169591213581124610520328897615461970607097855317378638038490616761156944777058229698486659515438143954370906631021635107340963456280869173467365548971212970548986731395786253041069309523672404218494536263746334140423962000093770964019164302975475301476049027537957148886196364169090127697578319425152252116729520148223851318848310436836081879709535864428856637006610673950156596563810491911231148344562664256534479191283228470079618380057815068687687454443965206936012749919378188866971120619060149571192815765616119076939135974175998703831062830674937592536853081185712837714271555294698185459506076344488547639622462308557746616231610078904954032434031246694178486083041364912356770433545843633979419413668351683763504095541929096396940836037510179838321937703641318964969322655405156011557578200417278108351014756471105569067731144393584297319182572974063249078959016429602569585384266197835378387101126644003319882277817585237168279898083865390400857982250099254437337401258395421694337894442389430837030713041661303423241663363791762666591061073974786666254117998462653013784852801108095911485883691277315885258486056523307376073255365808294163474935534286366783861569218715665898054163529437848718447206726741072150834552543548522117489753441570175502737112290760185326514519914847056705060214921462109009497770316347949499976962298676911585811994949723854553229327085965921004214851308183855227959048788341238883964818800208836101452046745093920534652276666909336124748006071793201049859491524182244824483405062177108908875884479873131934741087804023646167235951525562468540872787512503071428722536278529145940345124453998701756784992483694751305190909481900730706211704096954698052518081094133142132515952933755943071908107015610445543976679071184385498576943802298308177295259390670842210665754682089595757219385298723548946552637188499314422722270913633779041263727479224441034342768203196573750113602988021524689651179935630822037911076371218049620374474526884616420403323288420652609898416894124801645497513287996218857115712803659634793189985556094501326424255472973945265428271604562848752747151771805978585025175415199624236155902873660217509055558941446741601569130175439771513298663838911452268678726799240498636021861724902963852715054586835246840701192404855824963214264518768268803325191823472618237671071531980925672961867494118668463187789362759249744841083034484399890907948025958009219413462377829496475961365447714582989826929985706855217566357392309077592727335935574032123075976302046710842822959686402382997281406418773037098890335018109514054672832884714193991953621755819908667018859656954220436115823025033300715627567236313768905406231367135283726026867094717748864463123937444575868419354995809235797912766729173180415422231946986180112866761458562243439415616882325173824898961706572602396733173238415484499387249434152724328335575831123877492939109708174891870293466862478547899115598091779001439560556441012378982676049680062345898652855333727932529993853412075199532759790944634569614867751855117480595891121336565967566756947920140890753473187779979239058340504116130214726264363432950677076001424047595752623937446136679683330097780729891867983996753421106585547891236579579216645535314078205374769241599988660734447729282226042395411203527979426749981247637997808638078071380210018114578255468462158141209017370703325484979047047252859514633176276098026422217726462497649842597066773641584874052753752563156769526821722934383241752154314021982227730131515556162174322064192464663649577951458363024591621497732791738269339658876075430837031414988287873656355358257232063210860111910903458501346924134213631468398015665395557549993098394236597746688731442398054275992153734491390317194731506013412332903204958939181857008902479538575694353986419973982608994130918911962410075755657408373688047002456286676622732619474883894045767940569975363898431415873814962830899804871480218301682766677288889759396247870997023248694770499270961072605742460518915118411642580968160967730222420400809254219471094003854533504647977698564027820928171629271142979668170004084148055199492450869660950105714125890803407637178557709875134250415705768621295697544006571121329557585434734421743126409505102254505530081991271143475235028327750754840473911163044070845535483558993027571569507224790542992189978774963117697677332638873689585052007264770421723936262446047950828966404026571331878578883346842839010588756580126288486556697315088175914855008098053619594628914128799917153790257233986732788962737161753563714775984748841092070909763430927110744922961392030224645645314856344416605187543862852562506646507855071938054249472167029859142633177778282953508560709648953948646363968879897434961551009242572267519276321525075060334059197356823235611343276053674927133415214040802923692737992263446061504442963088823102763681110062600343718759291125492076988080808283787613626454077042864108151839708393129403157110640557487721453962021932447526367589598646964260762395317682785549659997653547143402806699415737017556477301551295477707542854650449061871557523231786016986008221482129261595963555229198707498112601374876488605264233123222844484648531170953401520340408253965883377793284460611657925919079692052679749847488241750655667207896716916168819846589645397055664983982131805379423612828136300722897507500740233962848356869460753842623060474073267423155391583473686176480059817625057077276549274322468357689238889555766890358743738117533980485899996052967490942318864455147917167367176423389321404711585916961208037518213452664485928131667750330286209060310186037331214483915682187521646106031982985980591981650509504769869400131329630616779541738250404983270700799924950036346944462012030957905187192992026123908261782664630269489709660402492370489216309528931553278990991486812129500987722086363250525231880233057084348220561362055908809499806230923918970258311312397297153344673530422145514448096396678142354626129453700569000685856750222671564895191854539456972615937346060285020679868843807574043098086537951086413902629484528089109192789371104761385667623637827880528446377654853733400268828719854542878148342209880970750431933451220931662451146211177818727114938040258150781966011640039227822370078774824178489223047168308027702501996230671544755519603913240439796214678858881716268685712073081632102065855472876951534904920420588345985017047780468176903597425557538513649846946709873775956782939850929748593857259905176226031825416856873963119218589027576375454679077046123841721948113739155609874747928933245411418836262400487684036738155932417442505022020468086479231519393504787067946837778599071412692095882981092595732370210941493618154090977868197067602174181752005420833782840096812974963747564522899938683376527198955045110093595532668460400225217771512796521325487096124166004843579085306993591849501541008970240674373836147393537666310269987872121146027075038780142257020507031242651536243479723074038701015142659648014577492519642148111183475921962683539717811607009300380573940266409441219717805231063428197182622968127327569876397250336702609190184246491606619484282234454768298918548145244145713447955819261750957703794283855418491073716112014436690387969199447154063402404191843715701322806156195604214209205527601944419886928144543430340257250632050074089291787229529673115617689135545896648222668035171853428983500826219281869139314885458997014669779062298204555080689154458352890726635653995212391174362622634897927448316349519999042900764675980204404373161486832924159821235019302634080232812392866245110661982002205296981022668366710459464829165113771834478454893190174200721592447122613416512432559971966310332777775775030569947471199106229049110018071748950071408986756091066779279040704038095296593933371324463361236664290882590870423731721703540820276114687433546507475267217661874374814542186611127392707495022848727831425510508597378778191158035497788949870115233428526112871881869314447556750000686977263143339815567980269653171117143491190896926648286415022732804983583646972849116028806437608786461265502162454724658262096125018372827620018164401390463710969503678730359431688973949822037438680129579237438687203007121358871198534793327839822353679256149485088284892976649393927864154906942469507420789020595630323442566820633691455674691684271096716441434245482546034134682327154520649060852129436867087167789282360092319624801054474185264169919605673154866514908730630633977992278939720515878468706740086463733587935145907782856006283778003194064247390221698187060952889139100556199198421635084859715811104704848634759697890401814067152278750344025545861435455166565739262361417903944078873894791438406431228104407404693592533191128850033286254247437707252591391106562142074933647995219323331486612984192654618825148633576139681876913091804379514952154221461965115924937146673391035598872169561802198335018745268828739831712514798382942279214720012257262701349479277652651744422839529986431563109203741494911507510307636186617836442721994012809377921759230513627496708749411415701107162262874474908591307982757139608848744963575382702031867695676079859670214472055046499722081761746449671434539158626812929349933837753570762710360360837791535950384282664474066124168350308226227026970761203261252072744187978113988275230955421738936247294662824666579875282363293410626876533571332641020379194077334843625971479324135747991380019133185883951131883313647203476729052982812119574940907932228778310865634199056907314268778691717468313080361124488795239927693597212790115462776374111057612675408497604713283770080876150977023701581430169076627847187842048393241021087588310601538259258928247881008740955380812910377097971760413247002040511846349467183458574219848172987783897931878509309687916570300157442556926799076405253044491650534200154187805731769033414434334124924759295065573667484799712742041972520197732754706997496545336310528138883055790569765509835874600949043566986640480059449816376329747324024368306247131998170442680289940841856543241514186716060910733309015419787443826989752009431839548959606521386936610395880293080735389188119755939111886073895191356164881158315645519109318448164340514344170693775097312969894161649270124043337456784466616140534413928652966606000932631809744628483208328300352238932390413378734592255267011771927772855187927333903003556293481214934428693632390691476552742587459638675250228788340469900218765003916990184092082651556875470452967634235512679630115142598857738936311551059799171951017566715539486953030332388599848282640771845455467381834780675506106932814309120424658801949971637862856126912955458570875620825327133650236964937963764843153235298057279297008929685382181637470880951957013012282962225095262942971459579275869282046436547743134755524841965221523265669250210806877417652712569108568096852002678778134291858254673368413166705485467185476321285508618293296888224296597066501479925579928062284073798245692074186341182240618760432287980432274189165091052459527981707173076205269095069014832278278543978474633525318235889410479091439718257750401386059881563606163313908951288506125296873931308952432905591506979818953482673883380606691277929626208780684306187448174061555701684109782116810339398382755938346739796787736728306384747578118922444761260436978370249910720679256443720967548174289720363051839586110271010395221591857934433046492634338073865590902982325479694308161451598755769196798530456713127291101102680002058571897150083746815693570457461754094125844710897481140949464857109611424767815486543724400203324115359348161775469654870469262879347003898709750634237462655540589382492745553300592168570984616838170858600444728198025305879335064528449822429132391502610079725113481292589794990468206082636770575118003113682464496791391426654847081635471565679134691640990618237086406193720770504797106812973931151556326471016584235724164567560446764522262832648341004546624285004160924549462553223024292065126778882110260637172621119172872853748549696024029835657699484505945031003114678673028388523273343029996757268811925608258305969203245630178593856395437422580945151796029054702683996486964778652912611851041128694454172144741860026874515010264076015852617430822500952458952991300979618551491673545759134776111492901420408495098717926937208870002716692012145890695831186450895560040977169684516785552260499383808007430232202697900196090323233860607883255326503198252381973898293733626605059253384612075261834258124508582269606249892144694945294936011712228206970016494357487641300817871468009566195856246920395373164463418041147625153211855533669587253996394977746754816003559384825681134851541578293246805410937979991700316566142445653932888863481897050416522386314621911093979987416946499430467024268591371612017982454206766570694838525104809948425309353531749655359846462985767115775597490901710413601548134396719411722599024946802598984681460557663839851933592877130403557293371905593679547549085217815261452348301981104052654074947135097588885987277605076638431997319823400605131330757458904267124787180777237320678088518108389452153080853638381902044220391507081556818349561028707179041221802625362769954898978771254664273782615197798952705614827389091358806658889505872576400003979545509635714904612551974378741143655604446037329435243789634335305760369732408610291274249480365949661897314013266113107234887783457465328298918692121418551624820650159759777581127606622892686695917337641239235365521779084104368319380338447183004270208724547465325002986513528558833360901818618019312872067427719256212201602673930527128688851168531591897598311836249167096670791103810277273286774501204884646404017384319837401376200335917663603664403763073603106227309900500115991293041832473985554824910799533916129946243513997713622938929286636996326404100523827092599502206497070854508843388615425366153786338817872961732576951197777361953362902775179785875696761902518639138346638585767195405785429975907341253626993016812428711802128694181042037935620038247552113381287203505563326059177881748059447740691817824119064082536857366948989082642847873126299898416808094200605649012287926608974537173967786388663893966292509391103681506368915351184772983980528411972288753212155544738109671457528349441944946206268998466126182915475376283278732736168854675936794513116781649062905327094172922008347600118261540128468141672279221296984243356241328211244801297266214483630336993182443948309891273272252832745338907601047527972147549893576908255668870161512635329881496037279408279195977209235852003722041293347453487685955480013572017581145682090563326249139499248583717617921994372050188098614237727217318675479988863954526394929221066352894179016020105540900079267177804702290000474411705674238471463517377340049639091161172418687522719818884360820208972071310186509439161852922084013092505869261095447200648256300250413914208921023091057269817348229230724489925415707073123189062337693922189569201785682336641479122650062682393477996609584524206396017780545786196203589987079459410072989317434335236085599776507896569707002523181157784688974188770663416203969110841507817009286960134323066621405645462348340697180954132367322262988647098194360909179215018541498941055550131585274339688598612896689502340270044117743844994067659423489256332112365252787223696612759659299380067389972701839183678639809355917385693995100930338412108056607141942517812322731784963248835095287121196227903449109667511905888057719589682132174652527382651279806608074196043848683435216131369395802422403315898514406913515187945040950170221772151606848089961681340730056468754130364813238262959436791181715069365425636965294507426201419801064411774930046771352529810350789444679729622227333874515848485583131455433813888576922231831103241929149498474165302895716488186530085672993982101754047659412029751460788888908127412004574160326752334542828595062016032023486195843300113696357804217235956637821106581100939584462560304123560989114762089077253454409749817910471287195104780967720105900911602140134307064160031481545535861640677898486500701859932454044805051921623344976371109377164736938393898413916829743674668106733961237037332893323721411573294686718251024235016588523166708655481819917865628096702604608279926480869342151853788202824518806012530541414306226495804571363838886950567322547366168375082990983032627627458891918918575497827131265082251179087725834034020069389499238752247423858946505819623916851469648882915489196936199604972759300371541662615562929802714465430686956896721927499466875052327469583300035030853174625645383521896475237697303734469681312073480327272463849147196766818732301295403343727193793797262566356980017337929966988346449375315296983535717472207022415850611412478699771347448103826851510932502798781704121025246323200072479405303159496196056486166347615478663029564803000235680299565758225731240909448348948870934903661505490380681856697033887263510978774394006648546226991959097001707784611188503954949590096706394481123214788416111761056532355286339258415617924405739230833597484599407479531912823165811607190420275455724156098286540999691306706794402306015940832773382307871740247915805037221755422180143060139714107424364600545214416034292896987860647402400484854561819293987799976624040855601159056918663586681165058820675291929418266544693744824432639629388497662821729075302177372775593521952922415052959487237324724716030141977587630006496310477008489072339390833485381184999781141392141298197425248621156133951235205215202328119345750732337501416362797233686660484378696601925861126580112073618828555065037394195092346821105595990915566476004035735394515723370523923896246200089612915349770737958688163477080355448783887643448771450754644885222534152870599688105977288547121581012618279455711964869955829166496275097046898365707232988381596939086564548625390085349175444326966763195555959143949495156893328361619871069361984683457597837232753780132198640895654769509332984969182757839357053956677133244802751918981966627634454307949202105467868526478756376378042157800395017639961801796971789472652100624631990228374212481404354792240879147927168282914869473369313826022027286429640426945018398100347224608796365706602918956607236030223793298658320947070334752620307860560505121805347242480166817100465559082941900719219838853083820443594125207137264888580586321406043991816293508598547419721464090873723507859680216982422654296170998343763564639313329700488932686717797349052514716842619582256330897687366414104719234340446700658672448846181917200273430594930904927203066530322846163645478309651974188242148667320560978750799903043909116101127250694810308856011397576211619748172917207293097973585471857556927764302267671878904517326627478339620933903404396597712328125213606203355061903822646835266182887827753397160981404979431112857901194807097905689371415941407105990270033575272459851692039286949180688696550127873557363769782319464849860852746309656856253653770291699425509159747592122693348981015837169799563829354029506687137008887284962714732561830061431570988197856510775864416963015010166529875336353401258933157372172947786127808142850122593589352541651756731534599738220912598348694702831047338155085364748889438690505280525771429633795057507536090419390951833303749463943575431882024158408402674907673699202628997330296665534032440032150892917741223675760821465560819654743632635380334225790418145187411751955217018237652926099657629109158391429977188521313093036725161453383082365361864926161214265504817139779424191366020411544160891286726682946771080039438529377816903932381527659363195935503677238669575342322321561943735301436869966743217558707992264198315749497203544732534084120317712004815946635424646158143778867184372854681684679487035437345053293720441574578015174655415226099605026514267563245317123699814678463289516133659288045101730437738660346539541262675418268120684251179618509403018427233074856265353750271867225262752782129832168222180259533491164513444054366560653595278078266739047684147206002150363024985489561865061398524268315012122245103658607970798171815350514073534507898490401351697621910356938693093756417629256497523015268066616699975662645666522524302334425935866868670782413451608334480569271247022493646493611371703564645980817269625669464432515828959804239988262700731338446633497649379554979537305471872849507569095379450151584778306669643357543468928452494200761295075528626902421988603363549867202478636054334039228152514761299265734991112666886300212440888003354751707969473254963371437164429117294427825936961998442133064321975903684278462781409937346140986481563221177197738894259640536219849594802150362720384710960944917433702546300387902807919841442323621307826743089130685889681083169670659313391289546701515176493555919541383791176205965010415227249228730211161756471074264429364204754909788951059475412023801237354163178446481492397627077467602424683978393323082906262008968081179491580442192448046095965933656304265122309090778280823042507839890886082882508271689369490051649008841708383161811803730148139675895606429772288946985676797228277624648281518991396304152534621583414863657261735487789556527446257820599872666130031273651879905995677784694104281327957239529906987788529800529206692633747059303070864232853423506954035372966754162334467000454492537030208937271057951962146704558321188155462412044881962997412608928962949503409827310327599540883243187331943642166755211372005535325348712402643639056417982097444286500511435799139513446549863783478515681555536812255268534568898852751879135559135036358559084593145432734194505565709693106516462805927864698390944394305873747745848997851790098712529366061802725681661401939764431211508908940131803727177865481946946025807663473966642883658551112062277072928247529406668252125967727532716094983084425820591850603385261956068958872136282476671033266329982200458020246921239541051711667857411361491507197535063236330012156483121945031727815766714138570954767178074885369057692308269477716426791729520970074811101585177162811814502681322193605689865319299583946366717329061238961623071658681993467768600489378257889078887045169544258816962837600884119000543541120556462387761571476620887000258066737595662121675720148899893752618312738899164508485842672864113673369807337108099597708775783060914026527261342093535346537451521691420217940662132347736277503241252455055805574004562905675208216566286428656250222618755192503858258950207201798667471083208961331250747692102825636235698402757241044657619100657571957948405341896336071317247841178119774218034449049066020611616696838024335451560179327830419512456608604579974878137946154786600396633081737423930951325802748023616280614223964969430523890534003855261102473626525201879750224427250545228033417542609135789155675390797256390436885572098913135312700091868769944879276801300064133056654959964085545185974525141870111451673413036954432718743948546588084620892906805301914400416822109315744411005611061179195360527291898974622845312443318852754920496263570530038138346451169756917271757297964368685290365423074099175979947948767117733994829366572525472225152785715874124127095256241594015895779364776738654769044646671550771208219756634438864854493957267452936033883788764198698717332805233633880736827398370440963030223227344918718386006568121130850779129698807130655392330719571469473295788427321155463202697052811571276075486097602374938276827789926156861131851021015883074136538605066967736878773093557414631344359334242523937936312770191668551702357612563351932565779746436358723545740331043532405256260231341364989631568280609924126515763550762308161558932191116228957846542561928247697631564936678360650944310076711923400806633478223127661960460355935139305331413913480857493893166575862808335872320674666707415105243788122741122305642558217156320017107852472970866158645095139370828937787615973566979087189711922199036943624471941077932278627826484746035513216125630204743154060470118225495481090308074728049453159851077908211048402989565277574432501988570054306609072957141104847071159777861210402216906038031734468283809501269238728113513421436858993643663476104522105911918005488568663759293214373345007552365686152842015362783827956362008329191330109864021685354337788961054199774391459048162965806480664585466462898539790975222025702670954337773719505958261838277386142502530767325377656798539847746005048842353685564342523210437838608626926872645071709541908336475936471184647467280833628511558603432789173739780145029137694871517399151740009379093355949060613246057572608071222341874860223354890426933135048254121087100900104127042192503903905009428445082843472758741328945563057323903525304619359797219841838383060883498907626881753157419542413974881726443822269826271475553218021130780250776849633283709163942286685612672649826563087988883654117655047173766633237218842573527854057048479453669605168010497601968401127291295961367745147308836301331796227963552178893344382454479031061362114852557590065888176721539521844292415379660677913737229034480312687687105574461928577030317198603501261464878410332820769448895127502663979971870509950777688571065727893051421711153893965414338262434811550871879291133017166975975755033708102772497269042881481080741794023901347834957842268576791616420432554362775341007762342438996837758171397303053319371620510329137648593172508385711660663478721449810762952735412573606673806528101317313739600791007942641707017440458102482997122207530469482398360540694405174844149943113960281822217946971396985597752519464244947042973355243526178467044925389090472521758114383497516486516011934594755480043482419585947977088836385437516044889117432889803743135499307525715871109819805361801625435486355212111458183131664488339975108703110701607773557878044943792912668761872619143847504180064207394749738314165928378501005570965085069337244517382854288306589580891063909712963727808298739283201460333950313277310153094224194616359806214260248184099007138105244888491433582745411429853126794702036078131468104556199801855505401382854766727505650335979584506233169420814100915152841514987465322744032653333461783386223450275192090219114215552575266869527880378927890349590115397180693914915076003566928458747654858616725519006388858098680711352892194246680138943280534736164061161941730103238390532915969501315829632199413661178773762285770825606841167740862119888894529245405206212280293052944196295890126332863170289018804753025643636983542181283948886076771096171384817150378359715519965786691565341913631877689959158027522175421451260108506345652189953972638183030809320909461286959064901525395559577314047976539319613375092281906701884350537161533501743801863782222465167813287674966393378639173653083816079714057906888381963740280035762046377638111048833720997107573869408591261094976019932221149838870653549778080424395744768085837186463209607618841908925583210804236488529145885131071186020080278719785995865757441058838804118676635711236832880537430254817610758711525579116297702745972030311971102115145653408677105506105051198040774304466897313079973342500726850940201834012892217644549981370264680938087806577149835182731019636887241472778695950458116638108848648538487987825272266463916088198357040567544940829340361505448841701862267249953861659709390346195501365307808516348293834956102562606897066788937753292779042636417450669941091604992293243581167574824470537350472510319325869556258283910519109609470640408746810507223592182007745611791158043710509070225410494330369277753439078165933454956551068153510509344148761485923706890332027496207430067925648075213916147475797382244816774518684219285249478019628852430972849289948707268685317242931468800372461424168799487010734230384652416950291542032069433349937682729405658163702547429736915671726262838104246607613615348748270024799308510698603391899221680194181224398604509678819332252333063430779209820633598308878843134530905193984917481880983861206998223827767352289151774241688570328689396346495369391387559885283852880529245121933037713144903697315139760015136500929759563468160205551813739486634182393495642786098495150134227097072840316287665324150470210868848600087820251509661079845721599782644189914928892575523479184788993869893389314032708474437471609466926514931744636493832947802568405235178573372219364753362459299921706416893035529090856587985402600295897629832363087880238283611243826938840750620338273776615284419291171357251268496066113825341827709962439483932212348704788924989687650997616825890532213060210083264073759400015936822142374459116490148548389645273736754181454031449501851326626418402063461893719131220168229780680641004456514574974235479907321353540321273091039468102233151005328425782735966593774337338101762138800098285727318979051527578302173620458499545827389631248046414188631173343525735890741954726566028721683255866376900190425852132506277054433628332131232989145444512305511183387069175617549607352596108936136331515873921584432159435753089961129159051034290857935109421205241435155023727471970581178981437172695531545383736794850928217987913202476315801980625142039900847706258116937368076153164193815150420186365760523338747551947239144059663756766548684746665060280597989128808558848187035944827278770267773600087931816234896971293561496594715095905693717077646521282370359020235547568799147575704652080230540644317021852585982010590191695314414972458395311598502326721387191736227546529427406835831151477142858986565079069289827169667454805704645848895187259507670082735545180219209715252663092186793805242459785415090721159936409393912046985152666284553671018932975313649556034253299342816466445901545549105179548115899513209565549909936684646820818287162713264295430599652328012613561373901274048789603721758804250900922706444838809117306572614906379339963772889838191496923702449049077452559983876281980044741267211006687665086208330700937007211346816059017676090652470821790970480887542803305136330278173614715387161808844003475487754855046288134315292329847213636785495899693098356537985345426205884732290890088832918997609464902368840390136408033712738608119404680973565291476750005564287020756854008175415673520409218423678037078492558190780970298680910536578830717881439134565814906663545663369814243514059491572457985780833066990189349924742852764875945767140578581692265823891641636807764209915134142747492136619775496714879445618012124437612154896918963876970360547628001186415921560755081716136465754705084272618409732749388877614176585730936693469998869085526263915284548297729651835147361171692794910223477844919621062257909865105936889948687012149981155235128232004523208729711206661590921380375598239198244997094481089059561162206902989278726968655997934519394844081623823897364454352925118492024258223296050607387910184971374837117888726867281791613944628623712467598792124682227427298300306056512087710522324779064305386488291247123217577391301617316778446803965363267021285146535680608231865401892468930138278474208802293595607694793959157604870719342090753202897912606336577449689553145813050993339430579968034811534338154218613984532367436328432983749450361243999483676374170859056424710713952081488679180849188694773671564672565472496432931087779411276539101658414705399196725137567717513896575008308693345473692083398079695612494963784613099366395465862339151457565666614183643949952748434640653653110511457946305785415174391374675081884960760775111889197364750573278133523727793958193177096751758971072010353435440452814794182954963142798083115210830357914310612730623346716994461436639692910492283115942756139772422618066649369248419738178738651961796527000487290223240931669765194139113137736530395020543448611944120668519851630365671959259293322994176563356487188532490903137588374469444710028951382754730841396778968716740911004862340998660003170742449084585044396148909255485596197633660163368306984046290308040496583620673174775885510154698283264489599239681567124286063063890214480179595531776592753087044959951484941886682764221714426226833446343844228601575057752516100050327559139838597684877988750439792876120331438562939822001610295344803601773630425966789361597593314826317351136344641945081051417582605606807794644213319326236032394409758697070992728460503526097654520434007256313958496908552732782172998466735048729839132776925395109624235222591383498876775528810718529664856040944350841851404832485631534166815304205327120309460605940689439340268983121731476395391004011015586975203743633445834864745227388323065034261944171441667394827913504466784645092143829145810068963572108801072643464469052794703391561820630065027340660781309641277083903356710134757296881297697125647443883094547758481375236730098868890904105081737840806187171372094264443194979593595319098593135139165956938697680495564305615215201768472781914016666908245900830195248768444581122699562402180282136960960061866013453680608834321385768845838362583955319937945374443815817620008405156649998413345326126931375650977738436985684438674031248410723669778415671078006522068341923796392232398438577819566079107613621414857125976873769670001007909535585665934655178975566585567188363897145712979902974751661757459238042947258078155868777632746736465810197612961731363041269667901336375345247452389676268598253797680132597305241938814467806131955641266351457891629968521260073095198309284329044682052937599643783342691617982923434399693122043850311146875055903911770841449237464933588556494357211842601563150299475261105074029184955501627600412101981973655479190929320814633274271862909610966302185218247748771264326287950467168350679718583264630759043593682922060847622489366047073404439262104436346284092925050578890473345035106754278087573263061034560638412183313087789704754829217367515089979854258636685072613269559129098162929651063055179596880379744545515283871891852135078311422623737949188547862930781278503812821329975946091879362567765431164959885284427797202078533508791087103693623089148166958288553592993967080991451756347962617223978913797481636812381714400218275321985551634059917496135253085628865360085048057927846743062369830390638190224153940651488877057662715771647415854135655977711571281562837415844943105604958572242921299406750925391001640807029725434102854858427530987134043182776689307853460063031359971424439444863377852785940062322122283865869123922112597297141995838701063339344452779444542267118032865319669167991460462135155292674419740867515656150353099640365806071963451329096417782703207592117520106314923586490724770043828448907993611902181900043228911058984333618668746219239403376284455749796373003357589801913757705349788190351965160554774024687042468400841111276636372937637061770933866349455286488883594845204365622863004351404925959555789203721703571149185208715845350769894289617864941213595701326843887972200860339676027186247261489719832794780228849649182686213759255092990386175163367699127921874432293307238798059575501502993831745984806588723991982815944475064468775242865343292343516950739621220494255993065945992004932231996283040121294791474429986438211580799493245226423904576583454822720862533632830028213878649093249087576675102865910816408671254733832336812357535321370289864879163132952742332240941438138017596894309231182685064371321267555962920395085101343870303840561335403678070227169509081898580775882245040137718588218275861225407494624154176085565874966613778080127522477514265542329971190913000665056149048116601600392226664949741181235013258824193714734116486229580830568883005778071629523368974705242090527171544342512013687283672782960948056306881674395389249084816733348280008321894812579347824619040590625383731847016202549590252626418876844983317452415244120644796308112606649242829078619782335470096523773234598550723242024966978863313803018974833474683631898464962535698187603186775565538822436124551563768747709979719370418229885789528840149800841126321164689572751271395322531148876883521057737097873050250338943393198573010446664765692403390146660966895715292442589007892473273583460561342537143616881049272411679779772575277066398206945614940303136981068826728753643001309466310958830482598496088015481537461417597535752751250466716015956039276884577347678200068830829329038421804841070139250480259430271516093081877434992235556386961404646759779238864939103401355604727386884874786520620725816668010446335593120823395106528916328517566235859942134426658869507659179564150455253841292793872533089744287909494073471632200192658086309112088590316335948388563605339309070639348538915637271957947515552196725698340722183933589137494172114621191027874534741875900835677644074562442827707915967309036850098075062237358241910041722262434235489401830905012933066639465823399725061073338075191438279552174815634320893114895616449226646606505700976459393730762164572557331836799413265792439404569689846020837413927549067091248228521771102844724333827501774455071450333547649029629728317918025804748991456411358145014293806232938579508925968370794373433949502684927195036145684719164523126994358366316248545130608950463522888367131613047844779863544768325550111345859686891872088047364070084041215951130911902065258347794356453961307293807527553758047940589578799974485183936981794836023448238223453459523534117208035593737750908864378651236492593788942724784823727421884058665720645345530453277216859377115302693595508549838290674980727218474916947305292502949654335972466054611235686961130175549403390386327002348781684409582098484327066305247079640024147492059556651662707019829650284987237765294734934880928868989190059410058844090849285807019792235448229925921065064595763223441741138899854562922208964117249101129926258500898953348347764829614165770146928669035563722659712915430169832717132052746736398996946546611432008350908207190775054254146988458818507014990455891197907667707761512713948544507219687378435879120782676866400982523584170379236418034934032893663905606021178717423575595646225393287499111604762329175686239855502922002746497969378577781902312673560730524983419524692431113236603551553647736784511493353474068561093510862057461389018354145877320135298582889133775309451082700610786646271431402958288319961668998317911503950749576186571154648403442104772591664811406518967292803735211358642270162789743113158063388362762204069488983611753639422524502676701335718256332360815961015318124852222811150825272448917648238328288680600107032464965036230421477466198947209445521967707368294164106727737682584873072583819079624829743530827991540693303264822801655531622050886156545323733567761665585312691814100957303617204490087010098170015780929941436408134740723360190226559687655426735505931148598022548319284890105010888973949047276907283367556460667734940251662837344216208443601640794471059794777000172499284623321847187741385567503822725954541726809609246779464206479376561351463908874555252013743163157716041129201338745455372516219244468065540536781388070084856522006313806572653876812647913695728933261656811544190117674380087769878082515322102855236689439661087647157163495151521672214236585412514927912204939632435795195461369964110060547030461316413577154736870996763543637246468208281736461869126601364623908885852429216861818247619131450713644116176933636107336465687460208980564140855130818408844781620896656852678309675878762587382542713914656488948015096115812056409867681071857193806367077838650425297956923000083538015267331330494259740986972579872533414477790449159902043877423013471479724214354985905885928597059643008481380516930775933647809279147482529210297380834600506129702436071790147964018447409638630371920181876944999816636383002247965449552008164022715478400612720819784700714908688387373178541472184283976932744014781624656689198373046170295186563663647669841222323935048262676478086580326721206062623975346517164263308628946162481451575317621839340256358917718938375475862882512876392733031312537865134887358168275585867993612749946265505595012010662105844245534861133392182042007000172896389300328532909001718591097508032952212155531551566080815127743149193460952511505715718573024611808295126483068320381952876052639155263921319602464035949228743761350365051289207653929182094771913935710021575030648154889149696972464362988959903613102642102454442640609024039490955300488548688114266211656867591753728041189964871566911022721813293955302204853448720304872247993707271683266775418636410473479331361271557304626034631767771616190028953572108841758495415787649869724989023393636461124156997927744686086921489967392336840730118085002284087705383547761242161585252360488331658731335122096320095131997933631334623441432814506819306734932482285233390147243467521880498900441094694315444413285274848454934763444096589969899281931391541810952001386503736635834775591635270588375351381369315803726762466778075873351590107587265929418577860502416028769534636896453143173000253757925981874595651686421409675297342163933137387990240201983061281090926141091806010952838046886525781936102110432419874744715384475313192122465321887175243730045591489602846876850279686450977392817138817820350914312461597204283625401160570373574298854645737923989796580122113114914242618356565114964510825039619448326582183825723111218872348134552526429872260942723258713760299528956814803226570661411532928287529253489871342102440333917163054672491244257432649397842740658426440278362390302944285559623582308096595233217666957894170104123183703907241570980599284557061397802213678261958460159781229897857780708506034980045166721781801937168409813069984511247507486695620326915036046024966395258460611762087744505614793077637247020195687875674194196742673240429051092595199775164371115542553192809959976686040319442396970929612456191645868105145573298111368419484760673166639872750808063520617837236658647321436401918633629424743655997288719045791354174876953354149235389364446884146871491396110644917471315071493108628004313908039927150186085815489845145247267399675203798607673654637971599730142479485713615270426242051907345423884803646735770073010346102607619208894268017056689171246232764377484161263771626512387905437284354871624247793362536461335844385925495805433835364177409084391921456590387940250364096172332043616246611838144831624091955414580041651802296409607431743933037541059342009021844647957690869741807209592510616631423857808734852300940619353386813708517497250585932046064833305147965833145867475271815454107306303334198588925605159417696563093960546567674985459570021435725762954278686091669861163348642832710602018495869966556638135307762134241086101543866873542717702843367032174511125329472445571377505443882750543641937348158336744430081095473492046399707505379926974293883579579496164256641503546672234234658479608310382186699748302378378389229727583531866901752588274843308275599441872338854959799369900471793393626668916454550384846326963655862556011999304793782190016913935531192488550411864139512907639639504675251531708847416081130255458450226429986567209570520479276337653212781739269492907864927921320494013230330049249743474573596264243916548413130623185992247909730088457556546922810516530349017372025697624023362367528810325119961155925877429686814450667491699349682234697663058946181775880244142044918273706079862958853100756997370559377845408469328276696749906890351066442289888385717116295917791233243585555705398845041240377413185029007103911487100098719007070202857662328894958877127535796699333465777537264961364552541916170633322866596699319115629725391144380272352124019948286141404444760697394741869248717138117260451112538138378649285508019548509533660395589124685973528190739310192933741107272991703895169854083570343924544465626388482158829068543640263593705177613951313703205527595299962124987245751014791188540344013982885610591310552279412152338686942957007824841898527312880194163562782148835591813878554048259737933605719494761158781914003485592844673104391394854219061771428641802068640476760006605872185919155709368946226094250494871074552201183144543235808073847319031516011212965875560439167883666016170172226202153352858525649725802171702335588392438886685513600862333029361471860331121174036747320822462001331801144795738125465846695044058442409271287666851911660982781234649522681487089040913322259251809402327495476737447626543974962651213322155196846731736687337872088340376108957494576897798302409774859490120462692343971439780913190476364719091501287980979838412198095108428476904736690300637296280123104405105706819215923964697257725071231696643600778528673541865268912480466391876431563575755274756840045950964909815666750016439449278308750879209954729322663648438250022936423240442696753444619539841517193257610700604137426476605918474279311860456933915798495655442247951764733265238669305659363804294715158403602361674580344152907343943482454152176406865729188560449258446093454904039297934462791878274995580691298842673932855808995822223431103336371806119395829918369619514437582230944831674934844200122463296076835248828857079740331589977119892719091480522414380645495781887974263672395014000161695770540650506831550250050768920844231584595543479700409031486829936743108125731416872951771057873787295537100481218904012362977821642688293644563365996101104905555064565753923407033337930774917909715021717613630910456041802339590623559407956297023681564305032967350794667359716225366018990223947577235691919420356916288029289175835218035467992133611220675329601292195888953073884590417899943900898194475529510115074356815247138969917971635680438194850335255721775646860044044418621631147495946647285671650002893790881472754865130239603685249857819559182094912795377197182360003928341204127159476607562339860963776934137743868125599152693895381698699439854817925457905399077332329730016195437584792878672377198707175924111212654548666281034917027668698145177976748158216844021797672071255012221220809688284229105605640138262780379453433020447179451809054472494407842121438049988249442372753383817539026074586928603764133440021012287613890729840732431523713917586850663526655030303791223589440746001693140033458729946908079270032181697731726076980180898230166055275873875716604752205350928018599731599293119183220258746015265875742721898499030874017783016021154271989167268292400632631906536021247910223750811932444668225626503849881222995285644167995041252505963466880923249095085636614510050011147313266910979455195192025818631375262915174699725625770504206131480970546207883434298008322844690629891926953295674208027595012364843085085096954105871134474502617948849333825903203708259718949663350085905555903382710862793705125651793227858992731547418428934414931175036259505825010654214167321529677302745166112219246341814952965375526889088556513584450609393803677663929086163584010466254291316517626994538371273167681657913731171068278948722880240255272149541197789215338343725902906574886277715373716969520240232377666883335029567407232906886150405653229145197656746977747810543268224158466444807950577863968833849816777362601013517207038308215468168155158071997010670043793408004448274688060497316332777566169260294766325557167080954448448410369020696449089063240018157336678749628425704451669602090881812988182256078156323786257313030452467182348701378467713395241125474834004368287068015284794967219369854299036696124097688095162525728802019212723101973652670640037814712148890682101788276649986063011222527497721453775752328706602311496573639531530061695991428543402010406002042552988463696736992653818463550899610882001382359169681898440970200931951564884577133741270179402054864255237671705727113335338595460440338575607332696945884129504658049567775976683675550615524032929187687789833934665632503066017515324621124785728367994528532549462510588872467916080085260381802752972408634079219902594567384325934992805667816586933467419421164890693715656536210191618668248553337607407061235543606158689889527620159298026456790204336856131669782906784201261185116091817455101123774441531983521459880037194199470910587956952910883290141461508010459146196550658210749879642238296361689890550921310869360389902066836933208275787574142441124868156799109508979368028929314749077751735871481861290772347445559111545029383751983260022773202974627709194681343493975476361714966763763443939914019339512915369971827475325441378380891930131522851929356639169651884572534968828429773977425399271095294224968442049581168407340431847065010014286010515566227807743329010077830535749199981820820730260514614037221526293263130693693269035023019089898502633913119112164266482001155014671585115672280616546516048958927867638207953282247241859757690559101994034231579945966142581340505399073410971904452638341073347908493694472200042844187727329297877404233657501024332056491327274878165375250328003232515787031876664891033175911359227210244138697230576663345042583652275028340629061485431901745547805584054309730980413328081727315535679604945200872522931288517289204620585330733204791079000787095426290098540561988053248563685819777346420360546539016901018239032645481422085806854071575642413823600638979534114751105572982770146622822814579678889280913534490828586037032154395289213436423079653334562922556699144829359719770991250498745817539716855553431109156633198744049286358068824993513183451333464554789838175751190619842445480725720324545689634935302368737646823076660050317861129822105025465621734911645801645212220402744206716532241961066574010777326314885362082020134646090550359380408805531112519893185068434585106012458571206694979329609423037836275121039009303000461947320464820024219797176411811089893399684028422972668363921345847310950153719909129744642866337215553622757090613528528122328137133724753714749794321507811975307024886825638507633584981364640536896088801312719314304079973902619014054677499295222776961702421147080974566730418512235228603720594591272943934227062786385553089492651030009332585106062483299639392871110465946470894816805970242984132152524242852084822167679143966312435204523411269492470722839410756648133987347192931814746542050771619458838242512960245482017803974309211187655927202499632220558398379559819565313335991274915455540555580434220248170870435816882704577879107914034139786870607336334464754959925804670403308226988450008709692412916491219719771049849458888988021115161903715841070247733813349917140038618536872250885679073198439898790707814563056148323914424477007108552763917880290481215958706031851871358204773454315938418182717800929595691336975453513380238437585646356552773931872439070683992569560289239014669915375804994841159149495290649383059028343091045424565949237456297328358051475411642366259498594541503592557844981668604573316044943699839777507924371302412193091872670198593738845498106311969817426183566488076357298918384918862216179061332472974460901494356760581293253297844340178888446999648902948723818802056409986032796610024180897132445251727623672587725587609334399367597672795460227112221487828473287464596372442344358997609951125866006593190031582726530520234563574747969289067513908585081646956815139991084029492713691465213126708804542810427697102708424300753713030651534385439212138524225958639757217773260932398538725369709995799909750074238823089630755596237135672772127171351586208365827878843137013410837543491698190377468333976135110260473531675166701586091726471681852735230117688194828981554219015628366935837690949746727202977299835668578583706898759340494580706600776977014696266627910119823946807921219536180822568459293303651601848549271956720695125666767135394600246364220764320416203596803549721635653328008672256808049277729948902913257602210950991873340990596165671875670917458379628427808024233408063640476173311220731551092046231230738687495166733934648707152604382496758201600662151865162150459927373738660677220146361544946128409113198225110490543608946554387877545674361948591076693609018035106768939150541546506611162797894194579869046030176790757470074475102581636080532073717699373550962044767791157805469924437738016685443875434488938180818410100463751612851831732585489997199104386702194614955169098840766280748175068709416653394640948456561335728677087157953108772523906119885350851356114243144552381893858041680256929679169424940917095455440737502631088164352015498683303135823366954263876667457770798014040877299340244219712529503011131717170379850912160869604926275777475069355214838313439079784996758777229468582763721580384342748244063021864263919166166068915654966143342072134959166774561517756710503753720591132045450635499740657897872197964437606000914721386841601368673184009275096353889058823815748483050697485911288140129566700961120877457503253503007392058217783721570920231137755122858414893874752757521929160822415889892266593309194832490219386230390082861768077155516946421529573554973718898706088389142988407283972607680508052724208078771382333049658215764128572826510312134906507896360438963711986232915415063668374193511805285013263987083771833849426826051792587474103542901747286510074921640163235258791279167827627964338749700208962422141472189944217932586211484544059315994613291682887506423852448602624801215015974657973554785787654392896869909065792864186180232323887817144707061409559515638271931360567138457690722947824051567671366914423712726388594892035714089232473380689055812525644734748067673016079844395729576639449111876090388721907910059429333102887170823454182611450181223212555179400167143186897422967567490880523198039171098052270644250321023093791436532926270122093994380396259551609311067868513008068993108527083906856771513559245046940903840971310664429079931130188947552853004433080420646200442991047669773679029112908123362412879494239345435981105868879351899464324395633286493632173718826187273189197775269497285145386332091838468354293193737765945106913262554948653559063777284530281807267465362192030175597958521529636314886421049129971880477178521585102648295248461045953794223675548750908574701071108523572146433953012080142527607252182472653657430249476112048305669521132489905985163474134736893929637593588577011687802743571387569285317039513525686543515729478863710868088778942263714227267741180651385530888338881787518571470018082151451894375278171492463107381936484516390384499942129288100162461374320102374439509533573541851552482531718473706336473281108416758525578258294172853428361976659910180152990886110811384700713866252823377612759921117339949994572363580678290834105351012057464101434860965508040999121615590249490029568884852783672516854062001795315613588583884865131982150500493551244702898262202045597741146071862135906730812755488149424747415575770378704266512480371174700208107670019173115834048646266986020374198245010207859120868642131783916254039129734462811606524150242294869733617762241102915769270679957061665895414890255213068463487432411868093624144600684459133615836275468368119705223886509980170623716726879377283567676517360271687963078717243337784074878745621002552893289641652839311610509705080391037943100807484876328138439516172298005061328364441873439529320596050688162899712803023666124181874106954517397951253153656570531855064884308398769870225542693730538560674435235264668714267342719323455097926886898934931258450910900897571691872489266529656846940769002260030835724369547114684343548209348820301884986105101916916957477115916782250498850457425757839812280986658042900398250672192225312445985412815619193256217618096297007370898469565586242391978673238588285061129191476415744934422268633737086655645260388662247049449298422728851106847971902806371591051176637880345046918467819888671247488205070600654907877996128765556744130663441114089588256317386378511320733239635165141995353027161180517739739233837423891921471270906018482615712272166228849380696763808004221092570614603563598311292859018526532052915859765082396064549945286679829335204460192997389454448137901273715809466736441845008893515076347455359721561734141747140023462079242102738458822464444725061650561946870819206596384760329709998839577732652529922111577645542255294264652880796414944260926737805659605496318283362694818091513521776972267196949986558263491491812241872088011371027132923455880332082389597649919393233416129934836201551771421505817184675410311797535401144462947840696092159756598426549850025393245316292250847747836432387870870696841090905515772246528587971099186090602325506259950038307391774141328778863625097146394916132696905127018544695331220842533562411308788748333837785379743328882748298059141545412536771041124505053831977630367831119236999086458946495672971463796808865131792081729319186191127407027067855393951835141223652246056160861234306808224219362150051269397319181388384682706937627907739767354033477060094478788888553360560608371077832640268424295529592145060778158562300666888263183954721319456334713988111804760653831263087618675562199044497051695739662940384914832990302279967973902306961232627153326190386481050543596726606721872158575687504464846514243315215909533095485591969299824763260179186702029003750969343540952962495066628279223960610422221559323425026954887740278265799950637220293274916761362716637290888743656948744671105164454404162570015499956451149567032641711937538467462595844401889438812166828966889355487181069087061587810954985009706392889222184720256119111461709754867765714506271409353387267660263760371401488999044161574732038222591552363859995106648704797420292029368422886754890000754669700073210323010432149849810402467260495863196526712250489931631011144671193875325787269407492221105206354531774523446369291757734099151995206041170905558104487844847324913760714789581928801895199978492416559498219713435092524712869798959499342286086549748534031088510336639649505763616204147525395858394751708392782748547863105127035478519478719126457747052328009362453814915060989669219607616824856816567796517089391301261742852346798302272219930555762767638093715228022857852796394063921873482269245037843232635688391176714852495344214417913770438708093592906488822444336714252495226917828425667115450950955539792055588845573122220341321709252025517401267053943384019486285955693006194665221971209590057768726780077434341056185204628469695430561372872327380145570934233070906680661563550283624975740376357049211290408100369545712095960453987260858367216459269735686070077945989266066912277721820925051716771470768024128676820097645441030821082838607232962443286712380088106405965603870726293904930577002425221712904369091854512089846493559932857771726852025796873003582123644604362794442625239432623562812621414711262141551898864157102692263106031240045394288094366451237787508708571899154213446363988461735182518136075063394563928879433912082622265554563089713675949844858970877905414044429452267625960685601369894617225562599911618083856928258050981094430518065516395205824825071978486223143837084317126047663289608876500317985645169750868704719810379571510622127697709037455168587449198730267766259676534722607728377429350521647269528885957185809384643272911400576270970848822519751243816476048582578966615083452663780291124055239678352309564923212555269949923766771558259083287528396797188629627689314139542703553894920194331512955959302813748483197560860629158143355277081523056580642430159731660596983997542229922179123170633884928548035024261398505125091568466932007255144117558429923605002910316743304455436682225391251796803601589329584936565998426596667165306481826932884437081989957117453538082761580332522818055370549742950638502387611314608173136545559060932447291146450516301740811878827038619132219870154170821765490244588542865491604738865491723931805221429392793165638537601494007502894938128839872484898356580552699415267507543968956870142772474463377876910885756986978398159925736728047645656129627968536524999478450582923908541447091968999412696564761842953190480185294353129568246216538026572815040835466947434042468984371936518977540028761005649880732345650627463784510897133426080127541780952531359971096708684970210799771743794257429005007216962958196987952752684050632620364246744744499556042302749454985661215530967821403818790911079945652334674682502459158379652687123250310578492635997902346855875926848715679197188979486675106130265467532880020928575707719721522653863855519388998832079576778337646389214755446465029802866251138605272678418395234149863940100026374283501314397009389607238130686914267544431001982003640507051100882317823835072240949590223454033248290041069961380841493710411032186153153979618200701115335494418619569646868000095603585033352689899355318996684752336754798042312257424504982414295074846920000101138604659358881432029504811661625078103286451505444915074389319531244758266025248544645341925670616651687533189647127918997279152324196853622233613472490495884884088560509906553973809354575614049684433616199453507237286479444755758158050715862252083692085389670704554804675764525501643384556829142961096378268400416646123476301681436541310966442966009113339180853859060725664298716698291376188439124082480107807358780909408135103447572904631894047724746296654078538406573987248494320242948598436053936794111897087465181965063866409437376362562047970738299664820691643344183554689640722490077640918359091718164508402483931669669585004596612994462391540254403197254136804764022981868018711033059087585818212820793710195289592590327176936155317308171088360166038175443172846639216385752169758336489118008195586973636997819501541645187017884047359390263119720091107587897938289857617869031492876491629289219077723406043183809918469204946278433000619507762917949722120981109431162924348776230281873940005290266583165434489393541170378869047541494230224767080756237888931263042093183497837519811457253794046542106264673564070827431765905684732533953792612780273112900204300648223658127817922287924707942113545482503099307242869656344995748169316446071323943498101035581276703157967117950391088694375256677899828482550315555719972865381115461926939539693387231115876005405092664234161085242706892181511317547881446414444641097042937366428143427264141898004946364607631289165568978925589082421147734841771944492585165811701323076305166253739949641077511239722502700777799625868909416143931175888718995564405801836513347950705168555948516487001377390986073056636354870020856094699316869623489551880425493803621535691401206452067281462631164165995644631403046165055515071941656924161793656939570742300672780862686992714185174730395189656523712479856794556870592886958662044247990160676659374332732516785315816851120363599123908127414117588696089368309805543500175080323468896741860027639929111562196581819056757626872264985442826700021151664697599335714377981271932089383029472169830187054310455868938629640180392899226677725173205758377644901442144939705217756958964751685057972337179735949384889304860552587913846025495242689778831468738027732235672385919076415211478847750455362869634325927546205231662416876265943539075404250518368197347726756831855881400149908453599121434119931519523097028701008955227146150340654022826598406679725580505091968741052798540607649069739269441914887908342671830227731811617131286706210488382697605689164274704515828935645365723349560779943112119131290890572053731369628212465074307050375290524733328603452257707971807888897841653038575876126728913072942227201192281810845446702159122248284516066283424457751637930693160382011392692134491133624229505413294466418050285039233534288074966975136968778011090784049525743153614443869123243511101696209241490058370164659263593962825352441607478333932497675314591396818273687713553628011309991953685235525001285502878442778793005037741508111210164230471967471764481613427593999689830028987565829778473709382063687908079687911621571167343592042625940932164082173599400011580548989485926775230220924562043589062218852927549204693858497687164647655150446017846428810602478864310509144784690241102133680942674205609028724898880411155836814938844891193696178853391673430126188015287355908063343583796552742116795571741255969629837138251578789553353522377189252189398729652435963174100523976291737704963721222790527605177936625128047787523545304090543075840539490511990814794314095909584244705535405778908108909491640744054587406983871211460625252357892840837423547553151649504693630524185920629056711821948667875747023289463553040461530507690435408630531256752367150958956618234236675112988599657436119922349105980248069625589929955820241730300840792587394686607342261471709228548944002189596620397857225984650326474667922703273525905542431785967060087483203162495652843820166855855106716325271670613160446690389790200118378407033983776232734936285788586798048200131723758449171422599140398041287465024403811813955790488214697724759163045279621853332899229671169116985629989324898876736843339712101661990402731610035724602892746697759763147397594855325087421957384021280069107450697889807818617108795495766012986787834372326836066050452972458912454690839255128694189368474223215374783687847736648997839788951537329105525661115538414615627492847263166650099209344053398915479406911551724284809132635877898477569711869647426511301739660692485690736964424759772835927324700371464640048387537415906543134597714013841423307941224652455609295841061406244007097795207329783477974915470786084510483278042129361283670878231993267847307998160817788699012294784669656803052499178136114970846040969820256987174513537861563240264909016092534994632512919617977958967711864750994446664832995812852498528004824724486027594297431199673329294836639770988010149079748106277836007897505849697444415261677449760488577885923749958191802335106204870214384545400792579736962400188739309101010471173225109645289977319087486498342795798201992500333700938338051899134451828468126763289249956816413965462178672533642283518444081509698677635854167099948410034684843937238738470905895888693759985859870587652827011214214556939363231101174750692229350272104549983589033783626166113538853217243814566822476717110777419955574507233310303515895713657463466270949836855428383624422067112619282491075342790278726566402442494417054292097974965322490029080163302640041680691561846236187637225170663117253679883931813397744148892661168678019005923314207253645624135324134339276555740792761876064695184533189133859170684001255586192315028588203323367206403400238872934148743329905163288936467937090022742029637338628139577158037727053605680904971705026232440279744540407158433537244885969212146485473827708558897562903288255374704723291034495749472643223761253067997199843842510345259864455816267520720905040944904033645803858393165773775456744268990350909913134436462158188939173032459908618821458005983601523380139725550151624490286017698614889430644240737925394186670182268041175339257703515708831178478648566565546554121586740464871930766340209327293087953317507010177950971641478124293076807129719226497163318492058106570458025168161405477094592479968689529795422471042901624399695086081495340034236678441491446020887738056456138005473465224126850960344528641415544839981848845544012252195272719851949560332532343177744024133700826272669418382985451438359620127141251134548994931832499918095857867695190710780960458520732689521272614969778950125677471773706243081140721274813186383844618269204718495133473475573854739079684174050220491871109525167258017882053223712037254654732672651262623477858242513529815910052247008674086583790403557093194827830370499442920946445473794833553518781563581359976637110242785655296671421499328685846384295690777176853536113258322556981301720782368144720455305306660951672182139127496502224845173774659317918917316356631118759831674553896044333550633142599507649610854833724330246289557248807996662204324767376589864869327771715124149718082266252680673729428087765601178058132684918513966906200758904312020121035354829968165931208148162771389652753654999222606276493624789233091641450658651275022737604042205531869336048737835205901592023841880646972496660984641450822844598043143206470209940004781125975832580201173358314819130205196071332795469573551861488279179900352805267090950662565842134354320676653672702214309424938823306138291695660483717658140220970964911068352086586580904551533422971836041444645462698617236669907758052922607356301759607448883744520407698049037239861363735677665576647057760442565341193230183299553079305738080221897630483251245931366988732772187208816430585403316589391966128144108096805919104033394124550947429628408529388310875144582019261710191182876091210596655890246967585551275359841848921494760434846479966943854398662607193908779876086213120884274297530220476241045783377685141917403199868240804840289811455415019062455017903598768607702670149336381424496008085798342645390541004730912466899085619024488155711469615221431820659940853704163004301508990476810852169849744872634618746102104392055523029524035706092957383663918566368917687307478524154847901756392284884197751820382379033019575713949735326569599554552050867097617553338805333619870473558863732323474625013265367751930836081983812022409232428192651013257912246543130349433159411207645388614818591687071067315168175093251575146899357038981018941492408147013301779062046952779963133998345282650437936205547857866582721508635543692100392215275511820158964297960345321011637476864501918709784964742108573491143406187604426068733284383540837040087632260482264838285578854674361444180175785462785226167166247014395775998834022070836094705725987997048306283375845966645867207551532960186981006711682766836907813989636731718890070534235291008788248940206779287096842329172836051149320659009689969583991955593525132022053517232858724674683902506251514597020815977052755050821696170845679620998292994322445456495916211549533752799522184647477995098702940739399382206867704330250347184979463871521863561634164472436104675561581892724043835691175496803483234259875011187680824030978656833658102869191392668258374862080246154815328439301227144160154373360565839523543551125002800089580405216741609512151356485299878335642471458563977237938735386771364631871928420977675814139168359337720666839506961999828345812898710002034344957969573663099639090894715549860542518350845270492930599007752301442675398103467530396975509529591787103006074380667886254997463094338144193039263981679282398702089857860469251305136147204114762542564033818741249437668831207780956128652928276004452272707172316728270852948997597546764309433836480094335723324700599761355226769262194360796609550453894356149252176798790802959809241030102831224982321406924180422355748599238983192479859203034657628799171152021337874749403078111189418637149177327954578879636780241680505447629169203937979310352527871137515349374173366741780142583682241148726841637821470202842291438009628486713664352034730697325922997021172109482882853179896037896268565089725492180495885642850582978412895720623805965966090010824496829123295296309477424081498536582236805339392393533161237137152019716806393579655372124695291482061777691633174622438622011065478897594501404458134637871885219143585383416171970821621354316857047082795972740143989449031967111312338653260673855039012571641327492934129616214613748347100867245638456355005921618021616987407453205109648485422877740863579699122849550822673865982933737139616790232133903157157405749954638025622315790934505783072097086567009456121853136160383458538505383405206599315723332609844544278434568214448150474980629014606371535760162152998953293379268823910961609019555921120577405067767557391531223253997358285671508608789128397627228023653991282351813325410398402684102221619289048853063629492124470402194544885837073949460498333333979025405044639761482609142262954492814954406261526815602288201289665170189900014677449731433881455119908737010484831047410765342689509254576483149483196572275237725245326399859296523955921740441167749115011479639446570138705834100605360512873688705075724357806898291967661307097901379978889757843942255808611031468910975443776404223362290476263021989503265638746946299506936966971639507973145206987429610618812427627047876468400824942134772880958756892662657480702325222370521112421060480488015239252274455066696489786248024592792494720652528890952517737198448168720352754385058714454832415006896410669410474365741895531284307839473177103395842753199586816113138982283879086385733374136245201049372992539361230437347669757543643725912079059488440121871912475873227894884556981091069262131555521947994118741513310014158013670893408455489550902228885896860985314055385989715430716227989938307513427744706219353211760157148885069513670552676222774797987773579915311298485371577814163261784782783617668226765120190385143915169132005923411641533067640693282334194342424938407485525567934757544265907068254116547663617996451523936815847322155905280330252638634998688659827040971372666090721997249514664116570146976277124803703409686519746751318121524774461536797960143393861203071406924889746116951982287905240897636790938367769861991138585186599330524642464628718703259095167580223762613724664272424221854069203705218084073914164844661558825815770350965349791092229621440871076297933397392964906134201331015301238447551845936555539824760423837667288682048430011496896938677028518287789149352428094454002171101591237091498583767557430137378481018018273577571428133368918079322613715326642929485895750741956155945383134168243055397982954972769789376478079971215822451154155943606685335057729215157906212776607753856915654026288888017647827020825058659848870601999442741410983222165108276064199042872855927247207664414930401334501380847195208092115467406349809783302178333554751224041412103329446779269931501682368649331666880308990421467674745204310569432033891948559581275697296536224774133488828488068320139236536318009272048927384259720153934566211970717237294413034809917552147872615139773561566110192116136908654383293952535651149280344219133298413046830010759091959688879252376773807065360684111615836407751053200095869128843247228530363248632898300628797534190285758430622432062112388237988354604704733568439814822000017027626286006801378475277995379674539231296950556462276258382894809815262661042327013210041955455520619465348450628353924990424822502245382313405654994651276213065559301871425333356522590137103716234329641847613482115646679853306799651095247463708811150426108291457695580910706836792743900224650574259775670280349337202558599223586761940805717168610454769835810466030902377459420269103338123059137055373320672470602656697332318089517172069220655069885247114279324306309371955403682160715539698915269826197439832174679721228400633015645741395076619504196459967847412676784934022963401120739243577347849576132724035991833650435598634503642287908417259611531837159357460257926144231303865420383071462687851356818561026682686220001952776009138391420990118219305468826239958429736226658141567260545862638868493478120501540654806680558043719273055695920952059561657073282789693371138482849515131367762389910419703933968294074043066602470835061092713162339672448055952772645692267945887126885013527066930737491993700328378466811287410008226851773547477483582117541275263630019636596520302511346146973348698751499762298441135543041646448045229689599136153975272900025478007346428234347706054437063655647177134626895094628760574852301727651688096120543116478826550187177333682605621217638465205932703225428946491760959227251842830285218735989966269808794212844960115137605930993339654329602704288427255381473312469259982675780682458242614108416475230833510676129105428488058456982751095851252012847237870600612890270617024085160157995176509574376246728626397511556313750114556126973432909967939363597253841448461998217776034794643763573560211360256297698070066641396302817152356064693059986422607433047964590831567155340372420521994585583194925473913034472891773125342829190093463095202055228165882441245548981289294924510838672897864474582218901828713594770810989001205081799709898160463852459453902623530873299350607665951537432265934661179534236228807301661569268875365265467476857317913146769712499845399818766514659229186418947119239736419951083624933646550163956202342430400047124427659375200227829900800495692048881588654865988611856179852533729451341273884880209750450117466749109012082195158802493521442095731206215482374825525122926456857558926109340941174377415630599779281268942511575488937461404858304159245083677031051994925047194057686231000298927887560157785886076879198396188812219848613155904624333235327145568521542897986475041986213268446445710225444150978498381230918357791152017595346146238633343284591424855700041718033898916974602944961353369011265536451166534883113499719975103616284979970288053314987203757413433309085409391686453007229409117516264804031140567132822327634273692769334347825217002579358937248743245224439117364899343756241990213062200138189674995278684350082638194495219190686916141333136828426831805029034960313800478243356147441871352982669335242871837767493611570145794041320293456888540888938200597441521395933741806406153437032282688754567938724441716566005826230147371122530963566410837717530352425580046871505725415228742710873844836184721151478975229202667141434590983897455512883703133045464573209773568280777889154716340104156798328276953210310865452294511290582652028625654525147706084962541866861842893442784065893708538346043322924414027836731754505125980074841174653366594373700939613310361295584576594522418746332605901698643524495058948253659700425383438523630523940282645662014289662021839787554423636255038665511837948660272357170685688903318429852617789658982688959898483863598053050443104627905204909433055652001606227589983023642030247947440241849102395961799557740993059702238065239539139432776594083803146877906066979871515064947281814033800141274245516476638581443809851218274444771714638208090600988494181807325531425935042462069215144814243153287915096747928390204852937946414223371892033947350722183025008146639705582907169116801530615666743720708430333309351919410832606106856950030427102890231920921755673754203929712563527384994216139135032811120410683959739787430635462681462440720683565768045640229071499952519953596654247775689963313413776211708789273988528582587065869249134143958610938495682837556271382909201795094837981864689307899322863030152305159774869388780303142199760731753714978299691020032133364030711998508068229411910673515331483602581605136409525208788820937761762987498014599121006243859754890549667944086199709128287054500044751132120523355189084175584663591875949330562304283319252578251217031841897785639788270260393079733516017889383318297594253314414256373231905127963924884253536139064152335055951830563335764503498408139557590203436397483897132332565722978210063641358569169165436179426362660564713278835837674687351704177863480133302172387802793282511466619124431055993813820233117455974117395137554404422522720650726042079947526445439051143979224608764214049783064848861742472107768066299699594181303664858812386929944164089422220377050766637915667708452954966701685747099535517053407511543372811077640545527864255260668586266728034433012972924333051115691127499142370788517563676330285932155381332376840216353256244272395636247801831084666714172290092806031170127538739469118793242429266521361118865372862359675899287884880883839084704213156407726873925690573391836197914840399542007429253113917383294795865724157678201760527263826893225097469664250187915016051650983998037670139852124755072399470614247379297955998407401720273895142073278136691970687651909328717066815648023434178924548451121115883612663784589194721134038078530594353262079714419483014977317423121152363646648134035792803083952380684366320215657006162279170640558608268440538152728872766605719679375991820424745002497906072178030891481631965975274940281626588442576933355123669063696888778880673133061891978629007679067174960408111550368168224183076194098986170134828449237238460489901659976684812532828719076680789826993223614399342050566441962897709129263418031402405552219306242820929795395940507615903693811247624504368115774717227020859221271408145163882550307594458175764194549768246697999629864583014586955180100009019881408540209615086543404104496953751549349085764389426589791989675959784297296736497992383504064000153196009541038284846113172779731646329747195539621046289186849449104701757391594606513883859331865236867589336176864160838325886426034008600806687321117218269247421718895178714856034780924646167410200399331372353338109748269300605531925205201215458240303458920491530974148431972622976308177434514299589977560846787494426025368339344376447323541898579420273016386422688643008611210660420192728253824304978439305988047952155873543745813320033854523249344201720368107802622192403945293126953150548496483178869016039757400359973144028644146686999155466974836141629629825381257030112222964377366020669658526166533112611071874488290079983420762414459944493525734641416455445977241003149559131941199062870021079744289858364411913330664209773257228998567816675509395660016511811346638941834536156789570482510597296268859330696415027945514361112417984892915257020689607802325498872694030344927300466149615885688845051315785878862151715515528274841278959990645202585730849361348651558866202373227409822884879301199728760837204737558951656865405780421578609930929564710713549407312581816651097766210358804626127685287174167955696468045658763333874511220921686410039093093402153370146655493830664240551843830913115648294844984850246889400253800385080173829978389148095061534689814526317767059102872708581487502108644271621509416119469327398918617660443243459867251830933723672214796503668355938202966389885509477573922753037976420002699435195378026815158792032498053145390425079928283588683386029318590770108998424234673372349754005496056455953890581591569371889307471513268450634999475633048950533668080741374623449858019078458861609259504354280229334624897955515728561795163653917053454078027800481633396193306226266781678222126136646047537822578149371568248463963963086383295267516148770523621656928844439503934392766647711728534438814247889606133688101512105937381998578777663379585838470440659603388906170089027345023091767238150745598858291666899818077449792851807899914181718813551358540824040308923057021431981538369544483189404442359895025692271443969987065542403402327500272790804268154908170157407912311440228233231069528794366363862770731650281968429435023848493916924259671319973071748207365625791117310015447306382455521000338346484276244111113901812953619016777652557987289691431561502730693911246173592637170433418450790401685909409425404099165019183946749121111510916888781184475876104418796298934965336864086112787683267511634987661956677162679237768167246306209775308796854269377051930504741314153976035947310034299353370491717123708098601878351310580506493262465624757027054360985872941663152793402640108865061498575486027377034253267129326434441777086482027218763272019031284046796127011291070458741989912674916744449672997634775615722020829327357029217797380866069724829588247984977664654929599600869393700007961739856014713680952350356617802321167088299505568069707800704798828019197841992175341739922069122374123530560374296243516712152456245355517610180558333020513161076944566207657214685013055051207218107684263591730521586601952332631259270160143635146707277946338482590674891034518407180552434732331064918416221608682422236772656032179760910281052410774591643755759140907669138569170262777936859137983641565203044674099698833138939055543406957497119832725633878146920079739289033017094964554349130733003372904682102736419411974748356275548944578960347115378640008266481492412334995709463653336050215470677848382726725477620802636820913306145508711663157537163991188725609138181893743446709501147007597095950070252522374590528062278332077966694983563452203761081375285581449885386650372200707110699309233712061785271485148244706850701881366933012611523409797012028568150989774671223679402828100577218827065622856612538596953709750437808781748160351262273058752433963216534651177889753671922913757200690237724962723249490736671488752169167153544850042574385920981212133100266701169906609844866540682972572464853184571045440961434762581681961321459395084733267833205847152748803751148318753052912790491838435413452169829396370976304743571844711385142400425307004024980502366788797492476177708295446710672490549357434457243293264278342073009159400635333299719401607275183634289298726793415435180943422288761037521750307534407940809627962141771574339683993670757077053046293066820091810815075298081450164095332367880433131172224932398610960399830024139911471625972628019831764504245872166902816347208407546171253994499054393149473739377390517895710900803158908733182744667098524438869083172891948537364154168365091235563220588237415718147779325187157385838400608889857918080929235786847521204643704690611719113123426151287091262706200714161628348109014479774369837329715849057287273519408945534291498337715848059806195531046419001290533034334799045431603694347672054737005755038168593649047289018972647804366040259272795966676723447919233303311295277254086412814337024521277337648755327119316303228812958164997411043270551799357785551121821315685804702176153467633859906222401497178826197679853762747860807552348025230929149913465428758965821406030170932713761522507027244491207251488647627818729565294748642667942631998628553545605787985519408821637232814208014653095985788070768111944844970007670113393322790500354890010216265444319836364664687947234832142802990088786333584981086401491288885310534549011023251033391587825316035750671798307135933811647602025269670186894206339220487531786126738715437128484553756672307290129565712670641248486996578823644583840241195123644396114966047730357073552413298701358727595010840983306838088039790226258632692412275488327079614146791299418185435364309325000035048946776750802908029889611949094567852383292443675915937881251804843289562996113799178236555360669442961413566369962865075884378941915650324854693302787173611116512400128293875541189299111202179044907191307595115214952782758340351508684915217626034351077685035810668412140818976917563051523280619198110979060400149184681581026551713132416591130538981049171494814797342972434522493370314564260968962190470743956186509346118018363799953718077233252422153816370649699699628206879932660898506122311053988506850427676991392280979472948260253031162845051666704777124179329928851645185005274950192094396653630731840156555054589373837889997632207922459522278814218729260429979360088295364546267572911951317178698027768469221288017836854879900935314660427889709707120014167399344571311942848145823829743587264096594229287974843979982156830336545200861211739342691189492772618656187094464693422246366087246783883695536702179176443759797195431341314269646062104475005085489014134879225843697251757247735155914600194819496963278181684264353458456873682409895181701492653196107732938424293099666160702158953508235883139450012923518439880951324494895819260756668203993774998958186103555307732750206126629365371060733880063169667524088039742816890418117994578219123531953993206600021064813959803204802134430320470847868427549198261086650843486429493314058334609733906589689768581958217212647673158437745479681976338065301002574235223943352317419506917820707918597168603563532492494310770570296861232553688284806993808293882480873626911170710348901334856111890195518737166643948018843000264218829147033350573230265112442665422023967048623831368285976596687095896822727596244459239545720548090258198210845919709565623090683703149194316441564289287285526558390784347181988446707253259859827740067388158665370299425698965837149957892149706531640285580262196199507291788049865153277697809480150276990827121913456755383701880085924577905640675400773195287204586525396241847117544366763673018550476019574565327302349585825530251143630048608432240891993862605604719248715556260057695842634481873878861801698024280557485357640635481028613925567631625100889008482351239232686771328180476207281550350879984397829531418627395562444908963135557722082055127018854690441147289135873734915051359642043505985321665857068349547834911837557154833255820074310113324207780354562586078270758193149450666683355834840570059265178282023164745355453660844133772742105618246999109966606529410484017105172598481160799104508599058477346741938469778363756707568996903488241614132845128808795906697091019072113525860066880799081233402979799262243811977083080395363978669509751088209320187948025120897161987401919058540498965582615601099460699266388804973339877343468904538222989086242742839251099723662921651673860296413012930461036341974347357394111618995575149970603166191850429586783218275932108013437480046272471770926215755375806374461053968880615236802364221584231648324357881153059057783907943777561251772449373431321145437914294941121639183718949417789225696395563151970569984868162375425207485919967497492617232480564197770638264065633473951982840062359485536112312095647437994570785660276841358820917474615389054061199106467404877151252026611800686578698655963584696812750908820410796791643343338293335010391810018876782238169927035335982466456341477161755007912840355576746849506855230470971675462495894519382621547791148820120715043581216867279475510065837091408634772021244361561909468192984168941541858200307871380755826265042505515972815823511308692129407752293934636122264360732353006138069144686004821418702756083079354357831882973667775045916794504013851276200099230763494444248733214394286928114116363715255715104209159042321391711574130169851987883102020566979018640812372751700679341996406407797357719146511256765852095153437646873318882339044197086881871027087221488659291368241612469730135042776485500690625272663928861937160750923555968005009259305160030306546841786414699582783556918014828197706691682746617381323486983848014759633409395710984110412971726102600799473153064828150647889270526821270870643076583938703032762414871752564031693136104771052789366645573956887604625669194259399978330303247601959963024855490034446711280870756364101315677654638801781590802570172374387021916467739177801674255971736707078393825706985598924955917654578641488986912406788273545593765452635968373412633415158618178519016138519655143678837499114918388832361183440014626750580601411654511604728119417081794741239362964515208167044146492622428623781907893205824552930296303666690635013258562539026050140684068895114663364743723717769315138756726025963132917528180901329059442829908253790017677196004270236969289608135671194025661327548916266399957408597072351146668542919507149493222985657521476855026457209534214449401764929539971484152783420727599032669672628625328422833622871059109542673612395475201998286122789873886638994839591405840069255833179864924602890600421611124253155334475300865460406203324124034944245816162251529183697260591173483524956592019845631565118896167427662635817199215871586759997484624286696802568735444331154344755987624139406406535134613778951984234572468441169915393810374825907370656623853642201495722969318898282558599385755929444618045898493387148504808141088786884488292250647344609439054887061360876197462690370474931050430150489926930407107617900159963522369071176389797322228247612338470739785148035323897363992495123458528942854371877357165035416281145661686187934354107741148955055174591263132247179794947437605482533925706958710552589293897246011098262564078666365323627808723232954256732913067279040645896979391891218631945097616431171742519089390209547631416954126769595376705082555981435175814581999058515861747992260272145206675008241740234776997990544292311047761869925339382451479133908281561351627324733439674864911966726212519306421136274456438750387369043416160913383268189069059444358729075728087287159520914271543557304225601689270259070889839135253134876252031099267840829075549503295557578490127047432731894169817795756290328032929334155823224163463910820330263644126891762068558800795963267671093103392399467186763294596708553206629954260489777408224102588116020889953492357179199427682573428372188684149948335021021250181741448083527324131409483763581901755187204210222806634942027288016653251047981536994776405464539039670785090281845748132196758174065678268071003277696067696200291605112173206304832719168410605651111193524441808588646997415931173283733704353910730657755711628072357172010422495924643039320601732874642142310178720499315250559738019061104762146173631046322672806640813670917631879040489202737981529895175336645040069076614516156813002125311314998689338756160515669823171666349269434532149055776185382125533074559451611467530336001658581115353368066038419852493861914611500300355623264664041604040521718919176624589535171310303471517083669415588344724402998526220167748483287179925976084489431340324843302583464907231159224120353756316228552153110560775889017644734617164773353410904261674304503334537628837020910903729055646938545966447404270552040637281478824868179473538644190840054621538868671832666968962578398254585071031616306648274896842554053383858131808322696225508407618064498804221516154725370623251832169755647988512732947195425903037290021567688090473644667374318865679278551717098493308036686644571289639160953683318617416722387553223276097514222891052995122441325502129720159832801117930086197647886788863994924119140077426450909598909211519366786836518251929997404486139680051184327483133592485932335066289506917619527316643710303791670734706326310900850089960143608845195997527012370795401857258421887053811199380257218586341891235686244919908287119401714535193645820186347113414787029188325402597975234474487969438567667294305972819111612598096456703354927557884973393177294703401102076168909214662699801209784292183856964488042244060675851030054775494966347856362855270946113452605562476696345513971509951267197808904333652164297870039539205040701113391001085547331775494819031580836472310549184748957548393313397120106818950481790415229879297164943262298325343240018534723269476813356787748926998960374955573169812228402494087521010151599453711349037267945854668552784357208519342517540916382979743243150774544909710712173841491810965046587521222639627574694590829006623032719989693534173903115638517274398041133130279857298959762328901005597536201690323123029740436761684785440296916458476796368044290610059897582310993539210323901830284936489222461728183978708890306165605764994967827451366518662847763910156034941067880775788788590432124757901203479347033016891663074039762987338256803894395274081576763838457976642576131823975553293157174532104520910758693352737251337383975743443432340773531239984959932215147570068305841377513505163221390856145264459733449563356466163366052408098190876833810574720909054630212553022760558895142966112934729047793376180097996435688522748836716001505430242467500523439086434764472092145830886038730412740679980483852909709384668199522485704079737102352222742496196567789931626250621109513229167965654205997441812928412668391194868147260581278176309333639127767216947310758462851094283069977394100450668008536414577658322705468062102622536394238432224213934734707496723335926079056120289416738073856921144291699607723553582723763003824821053717811953730796268430259150744310169530222657255242577759558111981340548968754253218724748838521900292668537737943803629393122400079944743856198785341714407665435265114686083376487025790760244482977280389313784430099847989850805981961964725737985553012940744821558279950200032486988217080626895794119977927608045401700415685240774334228942474920245643830565292396121998300533460168069492007310223675605491039031854264258909609114271529141118089893358182093819545484535132621678499079809742998776492162528328246240750573206901469579010455340869509441841176507371981242992085711250822211056855694806923378717744362839679420595241499981877304490006437806241537460279265151765108963368965880383339653721047168161791294566900644975990594031628691984638338578656698625970302755225268049888863331048178849419800886602554439100456512136030203140432357713625615093259502214354615775993413455846981230360053263184746181327634679274594333566725878530702263006883256564605221433119623094753669459171578960002317597568144981742415352611552133374538084948416597384213766438134588457583547671102664400407932826295267569191217813765619008625712635356843190985012762158361998297876683481183309612894360325962807149122914113897395148171646128670645054346671112026242370824111134955136307935414517107879435800059669386927923570394184899279395282173953884615958637876517758366476150856555963304386281266182892730990373082931325557116592170262968000698523019341040684633955761604223248810238650525565729144151656578274350665081473488043796593911089388389064229283975646952845434956410549802304733067352789624638866793704530794633408844505274982626675822151080250090208348383599990263800894832900662256769873456676020105529909543979986984258458254526813826404987908892284283307343764658255076938281387141625883296759203433326186373509759567931127012679620021111444666094154733842215779697513485897572286139657117089041057580156294008518435434746962829976092048176899518012543546226768418413339397287756704191071537150133297860750980758295580724661384402392031921049742334412465499225693194464618258019278301710667343142569723003766406324049080001713532266333947031446732602530586662965141318465108375602866655771576094964260780942826231027949354740084068411610600212919286726719392829126823802854893791556214515445756602030791850089269224452406744732417829230523362514064913812434616047186029877274096887092141070945250296352731272475087332250942178319769439030340501811805002752405687864476307739844921315473401005380004976883883857309465475342031322451184921007582766798637456389523020356175851733395524371382547177213938839915293115244716767958608687768473715745926457201966799161187159513787404798534884645498688237202511005066829476037742087390611590051496763316923967746142539867493532713240584466518384696696211905054369768014532579448507916791696776889438247203214884358978508935230985850137302089663780266960786551901861677327928310594509460990448857905551049154500961694396082740306570866301492018700067677776238319189045747292857048365169693749971852752616527087318292546828660216190153900861331189427101200166550351823392324098197274751005086707151781646155726993577530497700924318262337020134074800863502779737634709839435109903419450706221016423279181204557967954355244324894319761120779888131361942653862970858416849513774633454005155387177078202697614286428505627446364825523906895766143248963997985374993472823398965170568014467346013849633206484426611013056144321312537033097502922606127429152118016888310946266050159930610469138489988244397725387729883360461958143484443645969084416804440491806479121251660631164351891797392322901332325507129730843074751617175293184442581365702358690126734954744717958923296102313555093166410243606303199181307877556236089054581498826026489066429754268916848836385877202966406281627160497167575004214072314843355612828678722298259996261023685903170947172527500304805501800634116053213444265001031076938777646248413951354269872306999082342239917017089120578387121646634746155145452690511386681387265867342956571577746973946562673060576198569959775588400862821151949093825432912911376293270509680721592680175613849435944347051823193263592429114130838038402207879200186341402870881639128919806395615823285643643475220898541033424065836838615366203229609295445827222014927847271517392984265435899833883997754096593418899410953130123864567529423430468445870544974750714301352590090017308191576884117159937973306656690992902149213747443923407069134171323375328492881303011300781607300588634238692087542578826689915612168403338918393406724382151889765365236290399730432627356893138908971134464104532573829651232709505345027227676230063899387020065365943188193626017170435992442878473405602559404760451617581472260280131510177280740116677585594920921967929771445636273491853178678403770385631572663882931855156552417297687566093088238110738983253761721285567039497754529364297071342298664552711749113190058466362164890334030483528993818817181102624873612123437995445299489010086980385149550029457717098334965322580869493882242436051850486059640168938805817647042903071195850036543664130726506713589031074967216238505705884073379093676379434709099734178663593276055221442254791347411131801389444368689542450739032609636049387389560363704701342010271700019412388454961940134909164796319905569786170585220247036075076731510835194454022563418171645426492385354352330011152960294666862254340456997476271839241817783776928337024919700889763283546330952845098844909162423239622975950847306072322946104986517132244692814696039588898893949691609420071481536097542962283953378700358350934440833798976204450499501975537347548711773739922685308471203873163979815354354697986756544242051728214863547018934092339529780359937467348449685950740467058688877924651638448692126821613523378615875388545740243939972903456050959686992123361400949985788766134557966651287381206451813825855265420787394751692254497118125320581100431520069751450070069674235606129247345766761568514682398081817592846800540114141479217618155314966222631590790915762439236762780765160120964227527862591196182456620151492437706311376605628073023393316956949781578256722628846298925477490857284901698608089265772296697987553064668203065743813280719245899141535179578156282353346364843599132658017639079069954373870152406712182141350865035092784748769682959027086364094031888576458395890417116593967365616707420330023579262549924661847285781314630063923420965762818983533990847317436193167361964070360357336025520163281348023160833577504371902305563472544166492362521230980788835958076569483418819524055750864958428721293035656338563600789056031842923464580679294557362156062442605823146552114080136514641097972039531138698936450004511085716444858874409955168519602393867593298929850948179835806842359943026109141638504750385680724639631856806773716519093628197931692240373673738977871066256650969001491898899358234351652287863784617743610265734754506433095590789882332831223549722455688727126957359160243897362933843548193900983880106160001964042257509289668885213152337432528960074646654458907693899093361318180112728843502715474387126678355969368689840502728910470952914181670852021519196879240125078029680001531988207166952369347969137648341989931393403691108789614849801407049946121992683323538179272348410123613372979899404581405348347933303221811912080309400036640722275189637148072968733339530277076747413567598717048265334098471577193068121428770459333873923681204306796249238707390790036033438118614688669580021897194178812713130062187231942940199816861643419755771773059006610320036841150932999680720512495405193249017993864710722694663009907240257414620829304388853996724904716521107141388894153479176440079959231875107934386684709561186080990036462659938560151024043760352750429651415086730680116957927773480664766537636585499796318154099936531521265156978417148886653172518724525097311982441685542133798209726729620402392126519801985468726351128194221671115026814956000540818175144064956746973864908240602049289224697514571445045083283537681058699971003124629638113363964883243565775303171354184633346715352972798192401174961177615963771379279599223793408184818844705777059920845594935316579760860537554336328692047822421718378333229246131799244521405928222148253178678876405747262775218848482654832248575280691518325255821311617439771681612523739257978872535255196535497078876855970449006598353852655247236004865202470365794428381397778195064988495813369878508671201483969757778854324430664401983898109626947875286685769447500109216762986648269558720402816908692262369636161706838588962526180066427736776092166212188004782357350063546520859903484758601693046128995237278562364327972839306313266164827081695293471223357220549655419262463472287546614166063541876728918526971162048337809512142822320936377250308469034867087486835991920148334094461757261745978922027874644626937504072967645819619694918137596010806739092060042392138156970402973247799583306706708178340712288002749692322388856487465216160281554491071647841675126343154536463026982022823545404402307633234338126683554274671485722474883396846845434403854402560260631354206210974669461396115278866560872571927432991675155363074200758724115764664279197113104796120810235636659839510319709401987304195685309700253759368085291950135926108094990909875202481367097645519155171198731912581443846162134653077318006367892917124018875607851999074820358247745118817763364154392399260053411696405466242206444030917199181411994483504208580025189721673605730476564022898229865921427888952509568797813667242292294257828977189295811038809105765396922873630007003066289789670597109189308879616172067732050657537929738232870930518265455925759915908559101634951353434553266422558279833435912530132893378533236394215848562113438852865662946901944126257576112338536562432924259689987900678297205020274946103149427755694752816380430890305931146147464081305379710769104460217900654547493366318089981065500196967685719363933713496354257642002936802350103987696618730374602711834398962129903735430999777289585533823204366330430299706916081198893986033629132499699946051501340658175461931843577894446914750529307160160238255656275021283260225289061111194946670354926233041081308693896958185251022813449596785106419018237519587641713711134292483094434013855056054477925099426151209851216030336658351751413747528571780544122564976682620246642294967144232479979680886699963918405268088604033239955123627127960227818612242037660992195404570072285965691673783817871944196231689705213915020452720931248287187024061613197221168021441853056571990770946466043529590114336388499638217372487949715201673278540930227642111557900995626367786562696336143617481711189656506418501722518039767297095670734392050583443248851436965897942455585637196171783773305725389289662260825116665842953310963675515745509590858896666459259234985505363151940546352307803910504166544096472356011941050290491113122543858120966865735162580890333043905676663829095998295395416269192861007466408259612294008508587394998077451122276511117800217823184881740202730512877337496225507569939495056168916682275667479992420656167757469357098897189874454168193841652592493284925028283292519531491191110663179996613172422189608822152214013828464290286968725581281839986850394748798817610160944159744879830316387709142246182651529260187705555591811759677073929573581423296934655970481397637570289061227362210171650838690954793583952907730819946619736711256602953921919319118956499746401077425578313199809939903869181426763329245735460379445169141826641194023294159496143635287882182010026387667741196728366857583872062245496624633940840096544490843267223385454429890144262232032208871901323001035952011952937548018643507457627534641394165205962713946694763230067144590629083696211311986949341816627032520788302144233170726533517651435495407120266747263129387642690231946418525850396675272573455365766530693976995267242845490963842293137322962147865649280932079390154237945972109436856503702425655543720976088758656006180383712656772044621253562439284171557496855274457077402790698075169745229817420572154350987948823033011469038229626839158464171801209264279043491008561269264927090109460351989649513364687414378350026585865206398252123164344616191839911654250204482335205700992869283244344398221035852437090562608514133364896195065069292590800486854957156756070734600748742952334314713683079159344332015753679290489490218898949860064960657293680254701267449096641577549136315606668138133742797136573825521674636987478878672445398075223699807763313926753230144174356701730277264218074010582759132086624466283524681622872669119176930716212875406017735045271669034482138640928224379677362640179217438709968449143494043891878370385896797625193361918431870408726882259852801115518243555964521860144412433372750344531616631629812572164791036458725159689343580210176008182456918928157309897296347018922433323950146907383487381923650802608519642014151569154839014466703358674889168337539522050125200151984960398076289180108505010632656157452440906643263865758399832283694130703957185572839372891167319384135049224377224230849444440044450994387841018541614596553864744388552873133189674691698316040718462664993245873909002279650425161294561969600325390554834245063929789967687211695754635022224814624666769935414099152279139095130945820976179002087639669099917910002099502084495326875316409537407841671660982376977127349369082694513427589219957908454882523966213736710316368817146268687928087349054435552844595983133349149055356968963387988752984321555876909602921493439777741006896283854964299673677606127143719062334258174138896439643152406104285138505556656477698703294469305999078210065587766682530558319470532540426420280445425118175419766479884046020933160775193458234634784373708311394587960149793201435422399558420895621299639710437350392225092443010125774314160568546896519317837820845655305834893292403791135097915649425575257279786843062142568367156022813814753594160599229150463881894158707197827452383692884315283111774899642447879828363632898020885910265289945869214330344771874257829866231897528578915662566512759753392310735427403123927195928988654521243268599786107730062405157706908401464853301021642556199914895968806773462302724417837031445753720603977839554075633369048042509872129390526211728703639412496149934553894189755862021179623402576779534796396665506152695851740016953516658026162667011095587595835054521391355076819104152948248794485914734229933140353147745487931776723170030094304514116535581753937056225108648057310859734550421586244377203321630067976743807964065620015485138576061748610220137997578324939901643821109955281258541063767887491738900240655486155429542957952135504199290547058651507500408503212001368869915420242070076184624438805323026866231857560820249030983986967540706492481277856089342061735677799872722175251359698247297674264839835789438263751442147833812892756542822961382828450827062771437579354619015657415273153770479772721831289449639483636792854706675013436463601877616767317025381885352682852499235285852613536418645394771037978178019516536193687344554459254658389313454259657115745137073343149251679770813767808404042062017239814269582690651194696821500178602250790555241901175025993411666952711781618258784354493286739823680480460838200526236013719955743141397202849907717534801186389777823247066807322260410203186008367525088177504334323708817676031494554727668558783030926926396814967276197096870669737221808018926091563115780029079391675855259215623139339285901676744084629222786429238519297295278145989200830224495715834665881645475207743062548469874592735001989205977303474689925434910022794824839420444164345885000324053218666627841777780408776155125336134319962713576327915002119045903090523379426534232371065973128013630732343010980957415399539172128297527476001567672015767939038060667753355798016831626574192237822769874604571555678979292316919472889651726196810861652151443939031770276074803204088698118526693486214867558806561567209753916163805891305038918826119918942316510324729564184519725517751523275304160459897926214868747188851581773848926650363575480853482539713067766333162994460455912403275452525741571519367507063859984128110896537200511059035420281817427193759451569901891371735244776753265075312202131422765313395606897575147917659527385242581318332883727883128824325385355190286833634331665479799538594553476976282258922608184920625167714625380307737137934730100032141049210002607528654938662413079008177280302071961959099321308048452021393261096288612385088897225511136703698222365094506632751341935276759556096507486795183793420947587619180229476900313117125974718443697798228104434320070982463149853267440549192033937505660883306630976838062323030695071305744150898488664959918299287464618732349592671541807706003259829525949942021346865224674112583773124644318198582410296171360315757764918500112612283781430496430158460881495393652104601821493257686278632972244375204807900873211041682571386826452154596853873658580247369061891721135751751107918213907381230663228980353866705623870089381090545650429387401550816984251633434004108124499861242157515694929363864438444408299066911139088503646603643766120925571211666414461499775682026655941590226367987266570703441934026765330395777644718430994624269288319393997242233288640792077072928280732813775158131550276976462185078557463657133001589907844744197171441309907874990875838091753837364631449382582233107905947483680875778300705053135997981598650369100148173539822388977388896120606103780039784912195727024010246985251125262426875744820514695036520143513439817073183790704880098357063433399190114940499376555796480993399456123587312450877334331851764781431366383884094544011058407553035831826047753951745216408687370038654374968494724160749893019677327219440327109891372572568741285457902232241548915953887722623852591722590851013390535380360212021227025293480531946142333252855213590463601850779978146165201267981595348671477442420459435781410804179948309656932407509068632335089607662078512834753741032035709906552280633222980926002787957519043580050149500982678788878782713877174474339525638495718861145746437481624622337861604734485100202737863037669434863289489263847636650292068905928707410179586109753881889971648823188411032545912140747339985427940654468171827605690014641565453881892610954259256100344681124670557749201389919215641262641626214746608769122274049183932653295605782555747742341406252760864422740917780320656333905831302992636152211869654073004727913754225805823458596824417549395208696781834604932110422379829028273349871746624888477977901743954959648530736819100502899267619819719764520663194055456686254681408788810089509789647350284000281870054188082044247840220231830133004717470601316554257811673342358811899854773626792832619881553697584431597669319407592852302781955280873606647361889613382283191282419013666235055151026150407323369189428585305371918914676598226440927906060179836549506970669412115456971676903671804172685229633050921105656724480392507949626943829388608912462926963236309124953194678993210402738099769853942483466721802240585081716479558992975222831832192768279625788348527643470085985940997247158397984631348746417999552505304436967144012557091958688801942684003870939896346000908228980354131661833709088180901441482752158349550020036005830215978216469484577367317978872649257203274189235402731273517150705769237265354820868573177256250087932162003743190012875986407881600611422672493767357025718438138667662672376200165688593605579440244953418581465883743096357139786977147360139870221754310076104363384469716828481778699160540939080644804521532255200863694128761852179167093982650564443340957554887264324797158247665927462105045113456128338788282788052176971290600767580424808419440460540705782352006316406813434724063707099861978364209653738424371093984702451217163809870708295294372396379155912510575877146690997087620093418880876637647276471579099381680171901817155296093529059180684387719980237042622141911852789159494824105969016068523229411668408737959135863800867837638681128665406378458121279149151157485881498154095460085308505434643163764607896590472622183037680710169076026771246658576566989958947193138949613398837282995989091639362728823444234539505837301997786226153417695145711899797998746390588288181463987574264626574678898134185542793832320930415719201922193816834436611564613305048035869209957244744162158799127675137627898664464351856969232277068842347503878568641673608376207221620380296335411808279405278959383318930398475761638076358777163636723621818524432499087648569307937709025856216061155049786990887459511474696137332640152908619160507698775202109484011558486578481702616036700649026394606913520091039011623716540220734387568915166915538474733299427359251547587178727540336105205744009827817368424146177455158089545644217078485589678169547542563766144354645349016878605054311143988148581978184891876647451909794731832026811651615563360638681746745201249499131807064921304715586280888246794960513541517585920647132197683530941411235426244208972950211758396927619534213278073946390401873586157835859269111922589142945555012819268469817917969603442497973525396505594568512379335097513730275362494558920580132208004671222117389607346126513377970512240487220219125716802966069489328858438345366902006238453423877621364592776291210377888727553005699621261657366881219857219125617317488537818359196614498966975929557979850040849119987312597739849974227325229139907677412748518553106430906846603313787863486480361135618953770493917973726820625996785542863947662056405183846391960726548828292501990946768690771172748250404334680281937150745874646013757635469847757045994423191902609297797945371814890638645577782826266483968821598585989172810856526217317619807221423638181945765354877720255403641998716974688683755781949229819493467888538555085492018003051669981974728658744109340426143983453642141239639699385126778577684946686638888827803048991413312702688352036110592211982367954429854324628947594566284153665703487659202645732995411440443927245437485203578620731536068243853204590585067006116364470113540380601912142109080057892587736987914636900014858696138244323628425629895032166027622975567795682369847873025181980113151769479422307551254287657040376561681796899340375722839591695095735089190351756191784695803850214729407077575626091109040755242578312858401984484237428522553556073232195333901654174556824917847852688736810175416089688653757103403227946173883616568472461929989274058039230327713824137803310037181341232825199204150669677707332318595919593854608580583774850603021323944527587669805068801219712066715351427508160633398394517098549856922454029599144816337980525665346827259018263042057791038676617666230759687790468901799209985875919251517097483985102810102155464232333471397538061647465533374612955359691309257397794504943477646005757300992057811315777297446094138234799806855109082912873143165383454093885040428545996285554035238048381219067888771084886659159075702205481039593043665775933449617040615829678584304120370516122255138437612729247902422414835954900848202814544084753504750808313543032101735986975770108750851846439431735652974809117807428498481432968182288317426661974342882226089042973567354213749870505066559619478477776384352168132610429744910831151130999421534131669049343768766667877269485246245338857928544326337963065188413841178871864980078356708792004024242466232719310062198669449573609775510225741810683489821139093761982324179413068500981350591400462670931349591855312539734047531695164513012050522784412250181208402760416191677988582910780800022304521536164195241448647408937269284329220031130733649314284743004723768751173149184109459841549025734192775708054521951570308891331111879409715073585799292951356898405971872462692005825301124322292941901189972788075961583128596806836692709299149962829002314274470247491857256781058690574583329761824339181271872359479102390715490509157942390536567517696916504390271720765015702694043521213231597892420244475526595161681612288107938214698434257847504843974703178562935146009786466949788926558691053516684909852087919370147492374291214552803176356091775861005362790213004091554659957965106287929102704071459593143830900610085780041072754714234820976552415227831389017185493297023758600790210318844654248919676304117041864661361773398354813167617664041388919503805302403338176882769189460107042880735968932678039026053208541262937218323479262830653419855402623698544687184650085448021125796426083223990712393687075349706089437401090840226876021955921689157297596782407628487326249151876649805602933506620373127973744321292620651338742926694141150894645185132728878640141883280455579644024745520413890841464390664142918903048720512496869719557492067678860106407404514357001817308930536959365947862455813798761649905934502675035382886675978426825105405896663674137921215397191808124418038589349287310083434469398087538845571713937687867383758848297316510798601967053245683293438184368267990726270707553638463125085055429860815230031527704098466448572721453183664034444228832460712993894570398232754412542637039618091411639452881057648832789721178099575684404286918215250473580298894316534348884002346133362583431268486977153977655208260435768954948664291796835738513615721082098848206121013193880792722673580830831586005654395392359139735980533518557764840997434731010857722101692599525852054708613296516452264210492369906636181746688769553576073818969061011574226766102087787741635571776221576957902824302726294034750460393784041483283702543764509902929559511087054818215296963274869087486215648357364000329086094409412190140423069624584581974955641299224916414832323001675701583433004534486350286259263189681452210900745254281071082364764460691532750074545097842163156347748399197936639062134441770913383646077412813034917538318384752868019717194070109728420843497642036574115483826895995249113073418493670857649178536875889014897534595250892549746324842607439355362343929077572222078031439827991736632005511282406687369563699351477358571966909425647039817946195312134204223751163825004932992061233448694495249917172070025586198228778029324500875006076628683285589431304678336505670514294852459291508045274390688424106849209447180673031596073548244481949642632571507042808809624434734671583652856791270443383331746857074809905541385866257877456473820982762803215301256369605734817995790494990856012747059485865507571642726854957496001964388455806839257964764636033230194710598440599317594585736750929402398572296453356607996689195046313677673843323221970901802979461974152181928139543744609540580715477810893382414759119401157612762867297634909120526525311728966435756037491115825948833535465413529132022147139622491719504259870445374373879064617791174286381873665676943931934788826869805257769018600785893464412075589459908547258070102244464039572275805989372253320053432751193737381975414154126793060864025704195658207287433435061818252755875987968184245446449134382794745780463867825973470566338696072478796092137199531535957209261452802315639964959803302290408896708532598834250641104514818030826300290453035379735610382079981592033046501325663995432607120544373744486096137364699655369029974025089793668257177443606175957037919880755262978907818379044937954570394149366975912571900059550613666369906213824106510465774771656961774787091540763866134788790759678938766484479259456610369537716359427670259815768941110767783210218883068207859561662854076722001965496464368221306314473026765131929553858996736348113543629356229093263853962077841853049006823085274643266168397630137332310591594838661400097853420282082224198040883514497481707945994071815647539836347896874406952534618608796823872843698817671054621469828653819089241821867618966602552998853114109425029411000390563764048249849579649911823387156099379421490694734836846815843614679505573683264612177794605213429924230889157856305757064842008750727475903315809534321012557305067974911189435600006646429482700889979276867610329697243117785808057374916731347981405561845870557866841103582249364420581848049909716698348986142427266716803371603672678591460834325970248545384776018417324406659197901365870885624879899612276414219201536576596350450879198355307701392186794009169765378282761852279248142957872476307001609912778162261218439257815605602165802946350687548858994661437590437717635942326332171411682130203577110167295307214787174421125093538377944297720585889017097985979681575570378222062919733720003304693316433139727380912663163582911770761425440817580666342726288882747986939954904670924427173458369922507752951504036000598924216551455377432518634657941284197257997405683522783624571891521017332889377643947670887464958275400922589291721036874154962297698726577019765162697213722875516930157988295156795314140435564747593200075107260603261694350611645979277858218316310034665820892581110310606952763634818491588135022793937545859429094501159317926721098454812056110915528838681524827118311089410997706499433075504252207250466840970687869030363061537729311761653474815203343655680190796297102514147285539670302120028379925740042761361578019777948951848964945485998725615997386504658664515531282417448192772282415227150310288515448330574904450277796725566589594899602951664724319232940982717325837196962323435243714726959440573518300892000971446823854293055744851313475545382076577525401524226021597298396535439880071106014760283052041652531013713176130571799684509262693827574372574088134395444676521583569452490362170279828608273340870207521601316330821628135613799494625325019007020833490331746489251363724878877582453985895220713336382516263912915333276635467122066459808992488110725742985532161446712737964088759716110788654719734313463043646350978671872772616028608689839168952568504129706067663770619098080474277969906454874292738601437235653866178593985584786995444030620464549123396223916802363931817194397325051978879512573833071347122122494289257334053487003786295588318747479171079192772246958449563454627118970002415060846785209904618068034824404389993135944349832492422741645044136953330004313432103201526039784245557168336740689905746535771781790381806553428639587228007736825325902192088174475018822219171513098952649699562602498956065909258111482145178579122079997426517354542901690531136702035867538073274179582576701299835740377357838201206445204504828791954241900345915759437442180170295969326022343212311583573765296441621316187871047974773350723263554690969214890855443216800942835731169092265859109712482962771933446342383268583033101824766452949353365788601962119068079535774353352189736022727697095949971265016300824324769506930217341115584411145824104336548182368636805693785302648939765502787246423549704678905268413814483944979968328055589205182382918818013984260769104875827527675357374500667758508590612556899777443209334439974657728005145946611664392482069188932021662383491075508274410583776117248521926576578159978230903009043271868935705641168585518342028049358491838537647506895028090430124878291854563132902322226366193326370347562214182505508476176877517799606337729460363699571077643915484620130973716781146681226123233957719014665442549728603484243924698466532182663126995114658175449308324396863535872900248098467154893662066985260045787738349569444210358464114341238465218160202999444969241976900242189154842857327001924538177294250256573172501968809437797481952678129802879242415445611548032502130393258294575295546190868114600031872752269539632509012230071317383097489302138858341660303487282902936201818530339912487132397463851348110897550111728970310047897863221354797870994037362444845793919500391373614932307145080583847126174152308498123766456537971993860759068145744849045786924219161113057080770850360176940001093303077815882994696766243097730326891177884624905674250904364361061984339996371595233002680437182818391072330186012741792722476826495352893509855155847036235534679458335593774895678560061554153039574560086436614337756600308612398802331145707899373276278080055099000246773373811619659781054698531388759598686057604296272089880590793544791948057182481265952844343149755717033546390290389841446928840607219902762959828671231547458677285629407439688577146927352641961018763205695108173139866018665593949332546212150271815186926279340512955814417503089440552278651742077136565291504133813915445127512049435653603362768528369763081936012251768819204900472121059841308972736762376219466191879846334805773919892185617079229200078424506872680523165767643096200290901477662148393004658023042299308283825507479749194463251099910067112507267368907190922171023603735027823992619363127826894680487549076351082889042474132639046644967500667339192083623048435013713636834754012122079371690908672883784329675431586463804466131659764814676140630240580472851331624315585496312767713222673622150221367644414849954495608483446301151592351640090166235293586630206338606409406597959991709494036378258690222001130530460206360383001223738541306952285920208772521932406877292528642146402751793505689536629143987273066077186233538869965830632536214072283874462628521515786415552154418746606996489460214598206428510995183356509823571078044063353784513845265980549410299573403894674401279919171664791409826925332689414194660434519195117503327517358004731947306258829966417987420881772121838997880217421310657808438581100054759040514340664508395942058969113589902604856049129803686781150579760229949082739811599897266338449021923847639071075191983078855699252251154440662141274861570667505480173080268869638793535667270032073126214896470200433745613806004457016101875437182196630335539236057754638794019904465837667054544826844606143231049836939079248259147917504080924398678656159570773815100165272987608252759380703423070880812714850970948814966421204526080013045284602960894013120487050573515595882502717746374149976014793035381487359061991830112952548320605741393448876460772640066994811496404833417199699975460799065275533310969659955248281951277337592797024146507227488363501008323661539947376264163550919362173280690154900452357628859221410098743677249351170254572044257117107149378271532637724535272933594210733662461552781414423615595903647714236311369940760596447186793602044352629356831286079558492566731379862895547137018080090744321771433178098920189475649733551484679795421250789629270604789232236796119620245844395084707423072706801466848568726168409687910721302987762437894955434053257354090895201036052087234544354584362110553795339236285071866872531995052182759809066158287422269630011797283896857705541231214869174967308232135726071705503899225067977191109541643166394866131259151812552151172673642632444476004245593009079844178654401766049442964675760806599687159145983093307948926895266483546234920519191123188138202681507983669223324700341599292297262439523094799562371312654196646870737404349361090638543870721018569532937048246945450733334379667504662210515639943898830254295609318832329260887797044168926389648375879345562800826967159404219215295925849740390265231785205616809946306202326192757162515101978193136542052148681370110311843182097272164519326381304140879164249905174464278311786772313848233620375850155710814029663825222411748483159160212098392147877739671723416890751862324567688953476698967094112007680671249552528758985623345901595983704817388559700028757721153194770600651004134141446034386573635221199855627676100667443132304198340348677701647662705767897093445793726678235846531148368894033950326633179344968079033356510761031933085660355749269331411796289671417396828877993094009344496595128088997992048683695034359300287598502170975808063786319585551449007467685375733324413131683407648552011953309406995205652288064981593262772089518792796741807422509104873890413326015806744359207362797653424848258089881039971417938298435265503534890657624594916446294917959345909635255121601017548527063033134869956744662919265153831810586484867539486389450806578945786821134615991252867054111041735606385916824790888662847806675343272419586780683107652531029640048241686327759503033370928725908465663933888320028576129182620442048553217702599970310830323703810115015607238061420565319061432930827947680596517415394651741124976832906525503366937932094131005997456763170542620590168428728706550584627528972694348254235903926740306764263924506061123599836434135688440414004878531789156151543675082907053640864310289715524657235920344112604695024289945599604126670531746059238468257879330044469305661316946510535264872769460845211735315796554179172388929134998555216946160962885655615642395311084269031031841193754424703907981862764428673113771383683697054987944297485598488546635435125861094156982846241051961178276656103304120879759947991295274721262321465168073661898757497909524244111451155175706477913381706694445375578243297854217888705558262282111649664159256240179273333529413620904919667459766355837990688699739297693861159377878016668865278218955799564029358458148406478262933225308688655109882717938114782186697597838867727933403959060825497417414236054803532562084094813341439257344894080154885595721932607540697029162330814586210353534063967553525259774848669042382451865748430952096761041330923343974546937383388254861520008145651910716744693119427950374250664076772602226213526554862638007448935134688855150932937062694632860095110437044441834721613662274295553787320608988942025473596260171382930537919165684981238804462836657690423695545374151849775738692151582452249460850555469282324853057022520837845801868615841723671213590598638799996034211744818283154731122092224082036417299889086881980382807919054638922909883544514267066753980502279516121368832380710864654461293103235874374159216066871187742641957214528366696722864413286204221646324782617967741673539398512445748509730685051142181995291975694061662843434254853099084335443902570636117611712070516915005005418690155539174775066216651231032306020436359574842769670251840449003795450586944179390172455832726653089362216688860131638245670224743169919610282510039638004902484371037598072432340757401052959471052162774046062056875729768496768372419565479430949641397361222881109146235763025942810145074064681744535755237871533089406492967613150663377814637065057887078852468506876882680675028868596976482668445456809470242927376938992339632587598308297327947481439644734251866391874224762873624491358222395100119464965128959141984291065871045473028276386762119639621029109687300283689741394841329005636834259640265368880794618450645925977767029965536799112153757515085917220855262435210043791260460311867789052925463656124393886536725389065557735894629794672723972099920569583395951820277789269495648535866213881812974356072485715644355933407387129249334050603169839947390253967091335862183866149400618749581715977861664402520303751455820365199624417999158589561158951120244743302108324405184294168976117066638399132649325389813096516641589601338049376535403938720960768233545365634727467263110560403037373906367253043296944122362370451234595697130214168022418359766899120803159135798740670651695163713580612919970151906494552248395654411124146072653056430452173341973502170415657779553024692927615102047763737039939067194329597429393469646044158970057208967521435412915883409125235610841512842613322369579671385751884655529608030245218171482415429379933409702832296350741310834222639568439119882597182999634276574054676003442849038777421403602963815676226296341695067542468636005941239001027666488186698951976373934215994642170116696407016744964248642723375741355665322639312741260080346755595290181628958020672113242203432860977708826192856230680611532351337458078364107743551107872634064333043274693667478930124801824248217042551831248370856059696016264307458773303691321479568989706499250278367620787155555780993189203570411676643075953769914117713858320253140313638639774729622843877808641528645323649166815135677765012855185937734994822829240649330111942650596087319425246967601226548922179445799563896178260551136851588520499877157092943160724759953186310548887774135391153608233337818206033965273160732322949726897620563079989253814630064250313416087504106214223629926216232585920069520239938406970600673813604273197545402796413225309203008482250814409830381006097221250131096078357761080631168427888500371931074823180025401687005637621309887272631677367167471022257047464164110249610295916023591936697972226478617412971706007978541179971467468733039133673296106014712846112511369857227360121869820943304196787631253998402405620068973577861783115496111461770908503554839232805061127977030565423395593956887251051618328720375608624753588290103846123011475711848013288073337354187472016470820953911237588286231899663172943600529540355154793992371276349141411306597050290303824634190989277446485782422895519081966759704980453618057547630714398102102325248592671482792221701087314549402459998485533502475680234055567161574471049623014682265564217540281902204157615144036839715537158428231427268202748064491561944866090696763168950952850749219364998180850331163146288740676771808390737016171910377704357812154697278488829848703958785659163621898369002800267244203433289583824893445527476260857433297883746562231152404616399809374093821625409832805129387836648083138155859460168954659660502418682101243113332772033149200923240743317689825043970439017359182537984962000193428454548734845382693561367331181331535707257772814116376023634280638313109994767365977948261964255776833670702233683261305423361288477945931877435596356451456231144094172227763615630730880844864924490212242158424684995341967171459273917187631446438299990269127073151267970150807418929874407932557061679249497707852193714481973947144560749750984279046840749359330959890905431149889576131582715454573449396892882274677973975735601372066961848451671477380168124040418245961435538838330215903766529090728139336996769378203247769162591807700894331334010415245720164081590088742732599916820684548399859902692173163932129682462155590804623592834133460835377871498386153150558448281899067581874273825694487354089007228880417093549760123297575103035959862209736813514135812425117474689913541199719046633870406663182498036326942668587611774010851438238034403099515327221040952326991449129124376172385262444553477559314415845127432343405368303286820637382483980612822635319974827968809256667608832264049335826738246701655764858540766480668065964484897478977263660025642061265296974975930083956292881534519156025402407850390877728990706945046238252159163746116951291092564798250575511420692793840913799306931722165582862634535203870352694080186842138964150524437731527089713720428914584649456918290186992479656231376649747872934078756904358654359921850917091845153899027813510474514404374048598011524718803654939331894254973160799667605863355645950335501456883664784916413024890908663839686851644747356409914397048155010275289099434278565523110145878272400812171282860067084697179071132683573161394641906163265666322499576725785769998975953219430966344037151800599378734368435527365021168512287760329044425668169295672083771552745138746458053846349591914108593142778901573566395389023841069661738182550329292235678334332560711077524747386072027834944322016265183384013825953223924474714047433442877525302264759675807669407558999162266909934112654669237459789895877695414948244889050727493176342094721703895158218510530447699309516755461474933647184033951930051495180135443988561268612073782041549947011447129057703854785964791508188674576445552409877345237778020973680601851077102822821633301477844242699092960268133500193288854333143747301252134550524787029433045861422325711489405350282874992336700201781524573562116095034637065537449002571832212393216053240377486869254488958354648922267009142900586610518416821126589728285693679634689123766345092400884984062246877181976145665268479737247378180948006850970268507045253648378820588270939326394548171844802499979752602571330929910791499038964191846536509354171977626227049471097670998740611347576512765389456242518962539535175928632451088479792870839701069204488065493533811394873303591140862413591853678979331271532434818276229682955932949775471720654149591231639055480847337265652480429361934445282267449549470409616396178964587633324270667564013600916362051082403173273104264020667564523043100378650434440311046004876722547721141205474111535476808336260355205341587985160083826896634025917396231443842983175792636343451285734016930062903705830493625870475658071302341324945118367496321532979856666549717772860651430415554369748446210273191664766122817225121431541141756147303219326608539586248131472359453966607700101092942828189755596615914258046989676119361747418859225397122267599442160794208155027908749596888178284188141785170392634410116327838901932638067876133948302248866381636919519270648740958233048207500653103484828585898590422986300027791121241622283642467143233594846482226113767323021192905768912525870261806912148045576129400247962457344184839522147471339431692735129723345672662376244958279862511073451467195226516544651672373579217278400640487768003687687526179512949883809599230657670230778291337749224009396044315805479285457095915793848198420513464384421168303609237475941894511100641271757633379251595271669429581192966170317516326180316674235538576601582516425828100467407021771280767214736977243403622130792656238305756190568365515242607596464448777924655648370927428934234170036444498288393126082004605632670825471890253192060243134075824090370403933774912291413874835268058805207346714798456000678019938478618810252867548733412062342225619008616826760090764737761267441720291748821036762836618201334474481596086577002934854369600685302113924475918975864515489192725379767976441764004498245941398824965173068969558157803499916207476220826630926118515264834124270537020080615652526025872266068815318702121590130480216180896948601318650013742316948092459810675183313587807661610195451427701978267003551748838013179476080061656220612626403361347237996424023954342548251466454309802857454937612256646175240592479119849243639960105419434263899367133489896740488328757313794929038421848708498160986144409773861361486105147011596712220465296409169567285561410460128689140067899351340408569836003582267055584849510757024494409181228044203885048253910780005930154738425535829739832821562406153666481853179882049404532138615278239004135420482135065549778583072457105134589894558508703129938523235797406490188269719380882198739302022143770352828387589688881873034674057179664943305275443399568022532185837976188034266802589374572012134169607314637752855149025371643785495566324117719767264843464133672459646859698135178982396701896014666713052849417510519764996935848659129932257234443275468861538278417935447431315194319514428454121158440346084433068519657254157960064250659005554654251206304729686104473363094607072077726707602397729849712464928193949693751024883472493797913401661990802673544153191407624854536692066773276541345315647593059869985362070979346650714631645096677572541012172605156769797309561096237876628760237209503056497166098881078177633303930101560201834665128717781657878564845226839779346451252600253298822844323060274281971423227601559227288412288830055043274890659372632232290251595038258462810092473697796994149995079326054376687889744715042010583787475305188472546033279573034492866633420007006867760287573824431159101614330461715261455433007447511982213031614231202438190702186667416308741026040540993641768640759859674725190712447083866388847150306410969440638863565631848375924302610510560994853260363018177108755390591449782918878164572093736510410658456180944019249944270671068147305965524160732326361716956123265046899365382916257392559831443929458580184856088331801076987833517817411471737192212570752284021256664711659956392033565056901232952235497678841712112396873158066842635682232254290248744944754479028435940133269282782398199421052054213669971367927993792442025079424627235593522195771529939494594037697572861801976340121918942791301237039157419265627252939441973900174200658211294568060191930406572713378409816374182672665206820104747731325503570487792947631329836273331084277136202791190174530565706633076587378058005923838343800928267147533160542122702105184102524153824575389833837035927208277708430445545131051866970818380335864918799644259376633007360821202180715956153569848122338257702146476353071660746912885828656967772121697018036402420024534424273244744621659048599451388158053461101842328385582183727197842051257006925926869555367677330511983355041339524432387434548715741896250661700545672610657292384667061635758081072420777936410800759619169133651885169158063063150573220464709567517619951795355673193409568331690646125250153077240445686797745270024385816987100605448498992850926294003422318967263927962502526086455486984790022252081910388832974575158375672400293099685772949308810900553460844467309694448831239110280724115560511072768455849053008647104579828406859699671447673341234046927664752508663099514947680944605391627233782240446577447327337341564773007221836952685967786016809084104939230957909048698801590649328949678906669432370149822807233208159426030921201978810815044099347931777461009259908098414282787977049185735503024949606801510653882366294100240417007449334792685851195538575780722141990739775997980364240612185178992118737006777983650531715793365881553215010297751711439676121458882510630243690726402697980621906782868490636166130294580314917641069014218171975217715090270473425955608471852793472959649768172848370298180774389465995219780823988266214763034884052899203863784533986510152504892227693558593688159306776652297794200518480282149515745826728387907772628832700959203653460625587951872995438419443626577876206769095189650592940906124394509872971419443119473283266467760536375637145005222408966257621817800643193229309621091575553802974844776661025711048197621925290104162390485483815453968462592785564291414809709542058582222032698440146427632102017942701110783624761314169834385455531280047990429925662139378441828009681757729941768384871846578015805894452648105021924828865431463035029991419953739467098527162636501411125671210770781823736306594533238878580004454205026228819093471432725950958590098055037394351740715080671142210969362061168915331949500143683714299014956737137205005708832892587930280311843891270284786109882188409989290144679110766030253486967591394952518609286862789183837987591750414984709208336934751872296066547103247809508929748797338230576626216770534942354466639030419361379625466809440998654746084544613657999388173026074850088292252829722331481180046264224387193636195892898894832866831189482945547336264928788491083479138002605474026635041245448028359950513138905015908760889788144304723803668409497755151839574328032720704820081706455765424538508829227871341827588766998417210888941954143072300025330875084792538314231749207405392843543533773872726591414298878813454948945898981555157063627611374299941571606958575178317920250670631824009679572250888854448542410476358624105891054552486340400023024316423007618836555798358238282499574072507872670615037495607826825196792108462580528553944893676769222176391165955463537235499557816654116775484243024363510415468239171871617350012766267513022910214276844108981027394997928111191806501737239294419267832055651258524378121887693907827753891831998462662836822804958303965571329279257865106484818248423616968765660404550826902071649239510123649563688198929957113968353721095685843104020736989675156854169928661491006558472668923006425796382902246513505816372093538816701225381840946325743256368466468277799142627042437149680104925747904526740972604496112117949649926450279951686339928409048619886461297376586382863785860288008557979540610859504063171647663884456115858326560330498044797877371917483263341534487260713043411487781768045999327134648945862186796318134960891645798715276036419811980741342464472249935277910284236743467545349242386825003699935549854747752384182899138699275873969596497089113390703263056418167835233390774554569800803398508197743479014698071267546177237943208464093703323724140493630669928911045712615900379220590324801779859238341088241367126318788166066449046638139867013288961346620772245356333037978258698977105826914686178116069200346608126966367120747061836507141196868265884536432160154780055261186951412931494831105365545479528706379926053590161612830548814680265440510642744638103607009129692196155941794184858644986788686755109122919683785553173260155359698848922936833306376218098432547057886449520091485503296129839110536811710850991377374624302374638377181276990933083433305667042488016791990146321249681275004559580149703827553713935106396470304028616838344666637147305728986188734184984319567612619846774710056239370212814082188617641610063969396060810553886733016952270990577212471056930280720017476930050006884908262367918589990032767790536338807699927573423324189994451071971958065598779083507474711729728578665622824013178201503376757866966554232079563020497572913813361881634293845380153681791252529592560313848570458849539084444129617702115518862438964634513105906962029296674300072463066993616567515561691205129739075712892955945227166946918843165735345811355460399833302210369833067912083076453226557282951372797202781641072737556906805059774591856178991415600820802584541455157661074997199524816824643704805150120760775382138087311232409742048212142624602749296809130054014377906525720056918032336562616623338910426471415158544233452814821915163100869080578937769978449835817807978723457065104000058135707115737887713664642063107531565629800429985717614685705280902774151538307205944143515068079096520305110744268502367111641474027689600593175529055433286910284055953817464587334708570393695898797319750883072588319445917604904827781240330911436997384511439046572383742919651278869741088734209590838560881340061847908960666967128719732173838450329156095781734241107281486933831948985778751588251503631887282616125758147675201482647840977223885521913228609264228634572211334103226562456303019870204292098285032682136751544767340968450352927964196287240405216759248160530095230160822186774997499404244537663862476815181867065792463141056720514255947212310133790832658559436175851728009157229937281472032979713631004398395355634006172014230300327189772075092807913476713029245871972771477598194031512396337803559726459137589249038942139278189027905740133673873056727390449257214877560595027862273333673760809160389466456396775577332762200193388877259597586124500794688312839693115497255454111392541253262898383785028700202459790842691285890685454886927926071836185142810462585743034070542726475821072803581126746920746278168681991663939408514198059061776197687620217820600766942054398826386458242109111426129394996719343972129832764826484669242844505482701084128230737077937387171437898340550264634314286485277259331795704495599250817849738662544461676519733583319080973384975167479966938969492354249057027483114657144732873931030774679876592301041127869109070618458233839724124913964927746504964806170060499357843077773933017321783344827276411211853442980314826501801901531526931406558801484759695362786827918317785435190788431760006019367626655067343492282010493418328846806114449294328377249279644267224820801558782615264727539760234476323845081053389531280120124501148675203340916969670340545279220459472445004800183869040446850320790699336329584774104281066326514272898183988093428063555481636029437406104969054352878542833870669489897127649717533908841448983845628366669264551703910395467923705454286123291775029861751505836917724681972378290106240478681658053075629454706818107078062299577530418898307617655858017853458404686661569135817069937662102171571847791418313602562293207734327384771736247959190040679591934902023790161680442483422843432786292611271616192057513269854693009493661739715724982048829554085410111659019896739926948427017613120021828609096498373264453608713747959246305848510366515880217079189362122048268758720108036607589520241695806473842296958748670032422179522051821793137232698401140450890905282036977225873525386145438274226128671342260704605097027622541895987758620699431795846094378502780946978382941915693706033020561898072756680788770162976319089742096127761204632224492824593317042396166036629161553259949289724941877525861274515836930769486596429507599307104467043426003651608929478254367331533607572841134687558492780527102234787167094254005499271279930271695559824794935983993663705924835871623468745671725265097437584153258163949975018380313854403026856326019848162626244859528956294006384651572885487941139810620128604420349769553598406367208668932884643326126949858173253409803392043726038447555865432420860725213632614390266574796419485092774930360061189244920448199330087081927076590730456018253017950871351860691748751571346359793281382328825111744442899470731491656707651876841637811365490682798052954678913965335809946424208347570086130828709358687868557050640827684013182420851407395390155114743426097819237133522333750687381038065929521649227026858213723912848944163039666564005187089966902144856139403250635517179989000942805768207481159170403845073369308676420602519748451126275414688854876342887247000228078113967701927669497500184305185258030258300603866584580866566094678294520653713194908024208363236688189864972052918192283037466077535380959113447288597515653022860977726701105375418907775731187246667974443931531581620187859273436340333174362754479449923976645914658738639353840837381977599707875801169714762237821355531223302021876444842803288612274706153593883342219638139603234052746898487776671220162885828356796007926629322888033335805689853485263391974078687701330131507035380629083416870952021577419329065719704529581722248210889164504241948804414004584591127560642453301480829461465598129521176023536086184748620085130739984055768975433550518206890826166774867835800164341554638459567114500708280521130514269844398554043258279319189008749479586526760220220450652829068445595018210848639418251621693452419936121875566714288761137827551804072703738884942132447368972489828758151826641670788817606409386719607814979593822328132098739481737113686460721310776215185005415298852096756313411844447391190587208280088577334979527374195657151524079902331275936912170589942636827755422798970713046476474203363563840582824108606756673760304436122484443326793073761899310227094400752600744298775747354520454492531744659420656513958517105964411819593868850229701129810988690401038744846028497279963298383424893003067227527695115422827924803673611813524694240547474090509610441049594786851355518751982812080365676312406165484271836284551349576607163403362386959305154875719502175568800563392185230645555378080905958110260957912523375651283521517002224098333855106626907867778081213065914111028888448378722211210529242381559627831485130924408882788028156087092707881899002229025574556655230786092945635013017968196267744311888386600026701946758234408774198719380779270627422373780009266967281134947647930567277612268163370422763712330880593895947257225527988546594348726181808246259005837203889735119529771112637511526001265932609983772495584866846455492287738541359772845733561316151550342827464420149118871275011380520000036757980964654133345613083435294020238552252271584607542140078595543899942228983254086866686980127013396971721770062851730529862597096489677779694042618230042882835198283583693159574217728865850391710768164299916208815085031633408910792571394428898397150634534169309716283320002707584175644859720695882250083357748095610426274243175646057187154325105784909187401277414991453724719895760657196556478514285514652658731773714088839666124784579652764965501118878999712673946099996091065099982115052815252995635794301551993647736425344598259917886443595455412712765227751616918606673226136745235303432190142987905842400860285982589514726854320533586412528491552418486123598848045550928217975928506972785438118133099535439082470867335632885142603914794273709377333983976137067544429147578392222897296768953766909085495897405594183574976021467540267061639594615638893856428441380145704918739070077017117856544329077109100528218894644426059290758873197280529432428780250223681140676329825773079358995345549582439586276489845981531363628497634991926968576645658537748565340499368193729893074076549898630120965552618678819518070219332664879844307300982819527762936663111605130392212589091231193892192038501077156372353644077407584448235811904849925650164157992479866984004879519977665997211277827353498926974689328187586611460220678247050654260430759636864588352763097211628166678114632256431476750443385905840131177423296803524110447241431324108730902436926531109672537491225711828496600374811888320627613938037039698214791607026068266726127130663782965813033119255957655552779841774774290491563159244313207876829801908796207709539357156041740553871926429234415828734330265120540777274318096501481540436792725304727663140411751031820078726487867458752157084989988645300981532163655233566254171865338669481635897401003082487491327976500969766003631761737380572674901058587930783332591201819656962100230355857229369533378247652719042423456859459013494915780519642748291826537243376525431699504166686036513716026636179374818002267474825411278635072188202225317620703355491607674500178450411751122755325680847393760354350015923260163571522035526564994616824680362210436110212542311881281408100987357993956425739323592119475182604943858507569910694239202816784471619713144167578850368915712232799688143547025254782976777569400908503128796459186448972701051753681636933481001108863893530027587458103206948247032610744476429485033518665181353134045817070516210257540201305059264769389016779142825656729713297674990734621741166554155997398172552059455006746343783303917444042106467936240453475453489246308811547794225971864859354182559035088824668692493291317613872214478158070843512391744390340044754816781854654068979532335916837241684483837021102370162750329185894801442360538517104551072671685496642104928493965615655510176927864671672124210369338224605317095090407292714438048069688314510491319954141407906895353523527281356570231347929680277539560498341559252515128692615507288603225280562627521454730974445711980319500585459402268415154223890935489164473221943791165743635483959986808076954163213932555181796621708963341628193773682981991368899719713980086514060181211219588786925796845415449971684840327256857070713587194773626703272528830979519799981602189201179420591510020536942653165085756798283514417007816040988343479751600118915194699203460460166996306475359457077257784929151037570608490051974367038739363042606967821728426138155160234449719169580373266876729048844655330160048714413244471341199625211950952511081103012559707345910758151009276710323070655285666290066845088017798028884553413786810679161234795502970706747395758418296516581509956319599073650056984781772895642560867208942755117287994889225666984166545593858490879434958804332961569436541825743307639329691764506123649456031526371710618712329654540976668924466154125321114618195579297806892208559534813159288604781855268369253428104740764042053133650247235046058474605094562990216265776409553350965587660307335212348006525437020559556307149736200418636151735779148486730647482286273288069981825066025504915574076403348902999978351544227108329092248481490878498808209138558404033401745944266907588402273028953689107561400907189252609801456817821585175419170614233159050282505673142328374413921532121269293772431502019459518513533192119405608661734831695856954141153489135915384034503197716361970904972497505736026524852330965881696702458774997281395991560678306372509106946751796049852206972047044032238275698825408824730970029845313040783747536564010663040303477594747655059001754875600651778772526077709156298733202467963843970803998282901689757808174862225705103971677381066692678997093784531230326853953671598184203874536575062967760591392294623584111026197228242921975367903853485556771101578021807865133668748594551643606243824628398599778144413014136173049705934962378042699481758510200580747970062464625298340095132619303291728836851842362996926319814394735762686427716129732082908141147881409004078420348190786773100181130834825076506850653022281282402995428893879092460613607302091956549062431524809086925454673302906615261270100268816539677633009045566989990523922978868529362168724841235901625790322985096779380904272280575528852340189459200328148925154426001617487986957982349479308808622311974228031242931143843742927711993076035056563800951686247449865948918417766464417404875774109968069072952030070770496139555050534427628251243704998833251422306493019585132182226897355085257684476649489543552418893237779554721090435963888804481087940228835559600094844271879337845954877732223401134632782754393619045036067775655528292856562606828584354510246377391812320205164825856285291605185224344404698507914546391005091347494201610891412882875068574964794669081002906953518675388690395121227060847160588917366348632414860672397058714048665789920811482920901891419875609569241269888112408805803322514792403403875842615414563510779507405420312691179473419530277697361196941926779521851081005909758311040810391718323532861945416288962286710179131891723088064847550942018674259491199183717657003097827758856429055723052647258712823717005368154581887248982034635023009005851029437338457889971514414717806779122640455360999276372455466557395984696247043650288733783911523046999691782941114828511005931894240949729954478359905050719192448691990396410682199268005369468339315676008176205708027802726531991899295355615525467100826312548109881981199576055035252124051432770152721207924296720812351434029567033955499706432602036502455327104922163214384849550326688684167403356901296390944791696216278798721549342520082551763857151177385337387271606465909876848856167084356936167238090075447570776932515942834858663565098302006066112250838541677336834192979448805431970771331468130527099491998122502627590693602494426282876422551354484988968937006048806306828692277226926328198241801084604983279015135335851779840511312570215205927747963360081696126359575072233541687815910171810411691225473493652258642054709669376796879109790407645986088278948561314042145130973834415543742020996173644992361383691493922456558834294897692369676815228324924429208940679429481623035457981470146538592802419279480396635953018618801255520301816550048594280377487860063085126126418363909515983968495602983002988476435880599784149619890945929898550677292221976524922398027355213923081579559110722774653245058026563166762004371569635418303179243321006039531818295020597055586160455796459506563708442429172438465005644108940510345915732534780218830048293860271571065572728345698438200891635580209889058782664015774590139654097204936453292382235753652913336091187517020739923662189511635836044595369300270080560204409205030923136278713002904030950459614836562567934417760845851027398278493139845242913142787249839828845276213554328306920358605403898526950465310509606643263760245694439514834037069921601850919966053758529431109444067627480429620841382208190602542361703899638746520908997509961733025456097771525681684379528445432410557092495790844541525827629977505483759590716275927648222814366705273768039530486304079957726522393870525060239045952593277593669992329845535018149357812441862510979182728730151912595762196917734303518120229013742724788049616666624736484600047565221502845846736544124914375242495478907699390555147513514075033310807340745831402424866709546570163297721414284669546191875005552640500104117564798093944729967179068119995964820644890457404778253811971761925598361801181282600055868602439727592692097167120224299015055809826874426633385555146027965140328815978763460751686704068083621742187031599282889423013971674976683804171830243387540257558537284953428031896732879781158590667169706370396681563254013445824197299036893423318831662096859518367446153483992777202096147831893727458120304300224222843542503617632266774678341648528345437024477081405211199432298506570728132745342227519854819279477632402678415642687393173541009951640409714057619884795275730628943466020129149472617371016232504214504040262752417350465646661042670871916470990425549827473187908281273566553327575796866456765896485880621461697557329385676856621182020260933290808182455922997594462999540202885646913245562442848782311117749160899146325445424134424177267149463735507942143319661199638772177458927283314366977949416138828189631919650188093999921451905489425904272122616486569510094166685099183801628384504679171559724985767391276627920804804571351285970545965398651817552676455963152385834455180286254674234013466948055164219637317121253906005454055716749239125957207189815304664851482521961118647402858000823060295884625731261277684078283977345988166090575428803201192672122774724631162827650143876568016396777416783837583256994250640318586508737817754491998075647388035611794513504647128574370077879373356091361840891474498802481066616545118542406461785757063598773842152200548030393799132538393321001592903917926127139477401149251383068844121973579096961147662704800324586700063319571571079824478305774589169504931736430014877991373925044899506489818514899335124510428906014234326959031171545487140686653022166140231052247719729512476979002336914705545262947369446092330688605267870011258992733774450414794317999704022989603780383164734139592779938166905290464820569275209310023654242176780911079537523251385345932627665076075740563397254948728182326759968961527257003688198646732000861316153020753257275508754218907264281655531086952693738534583533444493997197875993473107738142107094261266550761282680436424161467681926344409537507846114539131628528835239527495691563958788096863369467525780289949685591393711417765814662013992450151973205854874216282994430823942853620536221868323774031165091465960131403087952802612708590034090404630534643664468603896884218908129395968385805737773575974361204341436648317821742772328069274623664026965080901267402852810862326802076262112341309250430394524445068744347659238614901263387563159921135762599079854430757929980060107842929466759265688880021481408504000328723232880003841846296985874328110324791264901181063305073034274329205841385294120661465760850047388827987928649041551518542908968594361900774617529874680744761586113920329549304588058659139359414183044537134184345620114746932222874364292138889205209539104277532213302201932215157459388398549427204111345840824548517828371032699745770704221574789000970519111678801292353945874092941013105355357720728164715415259034105834136714081372425671175852026865231892769386669539854894088707352590264380094540195700874952404843919257030724376635557175928204708525471854321611020111443175548705605764485831937595241823058266311522679584996114037938213545191279367043223400346621344220963678713194436952800367950134636848930758151998189381927526191169568977775775015447813028751791568462386560401693568302216392632820760851463197372509865574932740695427513972192896204904560063634598420020925490540698279397847417710316153052125807054086426361354112180067658776114759960537867972881562017541499884964838848086645921942287660456503450074508104223172420606359323991126642327228547893423458559666026741665769700143249012277487199015137868200344205177838549387208228599473261960393004120780752835848416265919934836599180077916819933424413462725356536204014918850473085195623361828669429118525132050982830423636372907755866524269811681140743064836181369901435876501341078321126154325587649046181529857694820815814410397167674740200121387524950954058260345233896627487958439817717424670864268855121922270204923053508773149813046603551469566300908534509257595055807845982333284555600448650307162361311534049318286180982518433956534844550569318671849204565451126348940664651682273067840984724866071116021729113899496519599680166215490878014927936394808303140799699990507833075664776213877788413164339713484301957198769416331609615511230049114552534909957253995043502457603878334420458382442701465727607780303493538899940993985776404212634479216163704863238761991077106809675384847005607472266246051131885142108085789785011035158477532554239900239074700446117013351773140581863950977085838860798150895421184322171656497107427353698308596356863856124434352348839560029961209406329148809390890121277357151330641573566768368529791120065842575740748758600000183161938043429753699112318534317172163966079682797103080828029346444354333623832167030624712181710029496950229087333410237392413152925960612211797745882572022608641989022018851631082288181958857194448493424016786660147987124820914892697952389708698935044467205256797844624113039667117148605609062365812673885756444512045863485656916770922700805240545731846454025573365882309950834384046526858387622211597028293557282954408336844756322340814668168514572395262161286010073061049342674133624544544005670062547769203502765348181677310734863140572690073589668725213454556150460203689416262835964582515949021332053095689561714162000503810138516075896957713830650446689530337308623504857395896826055845824637146713323390058081244422211573123311608312590491240543941368329623631447539939010020184509474492975609709507963776351410786973510149559464687519460300981079345110880644952788389368911432187108666367193105604068988420497895519677706453772629999836497531110105606712266440642169380821808906513626909567364351406482783547390433619989186647127179866610982629619967246845340315538702185337724319039223703385222823948759649475141719193881925914950031051701889353796111574435630268624028422818634753929120513530468162057544503433525098802408735764588349588177341364416518959161214114309023735452592669254891107864686852417989094784932046920511657313133794809263664935876809124332895436253075363068767433773900532713578019034741912621264183647672905510992521669827817949273335038682625928197806638858013311807958182691815061273641423872552036905219341265380306059351426421331806216210143970555687717055016301886826055597998466611654732209890572991360596116824864225628585137043834680585471343578071717592160683710522089772795910490457158641118349503241965290792598261718730799932506753778333362726443957312810410557889331971451596717920121946153557154510841554364265243582417631017955550858657549578375367139427817437405416596891115670085181058450135851593086766233850333599058414247642487649975392371188034603427382093534980868487629279785851553730234611996537678212329038655768131209233038083353106526491078904335311651129743010639572568442773183301491244998643504129883437513243302136698281133118629100426376770199226735542673432717375516794506168315937062540408332255403545829896665939841364897965578203972849642769561917485289436030548431308893083943105854951884465883588586143875878055852368594954977869595733717437837980399807637604477274577550209033079448162791051670652554217984750019624569461498008432580794188608533358952991851393407326659781086114289443464016451223741686172434796891497619765249903521903722207972858980163074782224717993685407882598958719225147168297723790548509160354544748837381234290112338417129923768951076542137002937965963797637905433292171991351433324871833045362593324409250668260472057757494813917222654245254365961722446983879307424398657405543216487471502655553378598104723605983898968664991050326850344957176050833749598907324458296922869567495190597772954802349562491489461475339459857073046027000205818043984593057136049780940471738710074052394920657503043445297999650523046555009762123348622943886909494792323813235383536917734195151132209562539038216354985375736253023454136631719042357443307539958489992746574012262008666132831019214207443009855994957980416033093381304907285566688858581601953322444023911641082472985797259266392839981813077679728447804265050459845780012330276989628150966780420787501653475129255968378072554044164129500291975547648262200361353718790067540334833544047580636793416161401743265717303781775261185067222513936434194285298402129206655122739787154543607460460399247295664825921795526167553773191821801869086719443477161697254616500634028826802522926707279374605474996152149213925297790334668315612488576042016831547583646163032430277472404218529370351618002306450735946418647570559105891789515668436173579563077053426474248671861255980693224752234672707857207992823597030608337824390666462159701036110568205502092451922960456721339659906502315458033715884480174816854440641878854195355246692603668900387674081931385905912355916045881050324449991893679426468604861049620756046120247811106436837947880484628537443189465027272758636761782290652165740917360789559307661022001378505750276649930103541655207842405201275445404377186515387196422718973127880483855472220589865876202153711695234125989521393502394389017883935677993355296933677423453322782789786821924911540424567526012302335104661976303196694139744935782241779899833620271876611594478036415819763923908831277678796288317172080230776912441909000622085523071692204594020596332144818166115302282030609056604251992333848763507804639086457573108987155724885980519389815096977553274861199953099936707596213267281251647716892498695546011132216662512619436531502381814799492285826548356069110778207091679064645140115059431965050778696855885252402053013288055359023004569526252330071567473175217078008129270914124019040505413196268107938451366202353725891276300349418759942599583524498680514109992952516222510447340772944276324561267241017262182221359498481313943916340844926052689658512459149666424297475572690138557017434039515260352829147420736512599298248858684270778327687867476764711847747318662090993009567372108973970014784671068714957527750696289206128179579371872505130818533861829692155264610631378255789950474549489122409462396443847132222935398528619183008721651243674429933893472624193305623789662946720945287883978443227530363093968631919898882976098241115752431113012611961252699931510900427566774867224995912561274003227004992024939351321628897836290008209270038609615494089682650819324387735112574213338463777752087628248679491960605123182549045987814474729695138671382053897599861935154604788235445399945886455290644112426960602161277441268972570022070231762703075846808102128575874115144090464357695475835975227319585035039457932028184760603092754077320179681191872139068069473181515354456423389373248082671770699805153629120536944230403710213289463092158777247531453626694262841726926014704560337831038716762151305385542590628362382006799082618169520961618385020647314498895031948581400399728559447589530877179294940103297973837437437101682322528626290965812296175722721820792149063027675138989371955644961325958512105607014995965700479121569042767239713545178487046858058833570978306333109237219288255703426263426336075490140949653048779594581614304841089966701530111090205240242047338199425412731274340916994050577114515576818101448876201535438544284533467342996371321186513640711237423882954052493678741116356650007104241509924909850776777132229687762191710561397843156940450754667170229294916974435988769482099734834908570908423127428445498538300264282361875167251607124381161519624813530435589341955332689579131445884193573270794164569414578295889589489010423297572899305644723733959744766225169417676596858526645922427643969459501637284255452077226438176652856769288875224232632115470924624635103773301233893676053122408543433257840675519977640593233735379953236432102885514945550318684436223618182998583629524448337440905503416693113295990570765982831187724013339599515194597348138213997360013851340920980288513369049978412409184171216990762473085667253601864893599395771944834272040528106467142475587548860781253947930360205152714955877763114852586899453207879652826780877445625821341839721299374264585826197340271704653997742411122217342127140027548406762944747101036146289316462490772935959693013622689773319721634458415110585019801785384804666864644211734435864547387874317447692779038998812393094700482881094374325973291971887559012038498038344697316247108844618992980903485806685381576223846871568540697049648618286721263308607635150897170226729160183309210637795152645815136413071745868756400741283445076511611616579284027746551312037257858613832922210844098093943216556462063774560355213935799036914711751120945750300438261434976143323971784237272288367444043545376562656615579316924606247576276143075546490708950961014718627807639177025109015691243018696078092135463238397740645354286664245286502467254000922601567436282475330641021931215822622187004845330716139054979946406026043452956660813985868991841030453778620200173058863172850652912530289555557566528316420309023396900844134019894556432718519252007010087084164000207229283907723670968868199566879689194322411401419053946076467228003070757595959363707845496342638231146463977990872098825588488287466625120483724434353020122399972710266053880977381857895991100806334925735944459450610547276701497634116559664543726029248525793973512977892215568427043441333409862754509543768637592366168576031514853977233820822979761043938402688741585705484777368613964147438730520407743093762368441977904612346400203012010955679452807858482426483924868312204796881024468781790269601970005645558049393712427122942418189608008152920309492538368845789449986523404627161346523992988563623872864669153618870111580792602382170029322936731017217900896082241212299779302038882277139458108229192783444830919043957610007204867849127199218275361590474191231331450229613170440456004375376961745911434851738310863445244530932860407830131592241124095233306928862501733689305976853002446021551553711422216025503990033371254233970498909480648043573941171111462200969410103371708945084185650091420359302368461589412788536464101922194899064863949679518556187641411941167689473011681176125850885766479860197433797180055490147959685108565205759854250020503668559442575451221118414122411639178050920326577399067089901024687965570573995610064937242173422477576848091018489261404633111447347097689778811739296132910540505271739101251128639853387344871102206436952572331428893210625213065807991228209597264532929248712019969076891244622589115099174100130145289490167265636888117406617829822080030963652359398900220922988369698125347202915183465922223971897973410736380997977838015182936870449034167356036051203350055389904060158310618573923262349648549775866002358932735371666797771055111390063991799284261557962867797850160645970772970759462898674371441879322112904170622647858381406863588441736440583742360024078028400616201940440029325951095116790186483771360967426752110601206791194084739806513555330009935583668170195087050971127009643027026403503941388117076395604864625930409585292357567742145701644791240085116349150155877839267114016582878191521854238615674210686935007773286804218350219746764570882882015506027562361761030686808484376643704109648689374939941550248713646773516736479662885405273104772196241732757888105122133475115985534349176070655209832377382733051191196655941896808031860173947544912057462255481036454030865255121207497616769837057505194506984263447474616244247610967855118688886455179810463450829193835507537552199634147803189578914778481801246767050280122420770100049776563648434776917757384663121108493126590267620080825819044269805019309617401289646247086917454944707621435246544269721781288346255481084636146896630492832704540450027781993977963075987779986454875176845870506748221881025297435630895947515579319487620367829079684455156945243222274926785689530700745654523274561401384485983418556716876093897781964562417152892192883705184206311467307830150867881940406169194054313011922408278043200545522418835530661316808546770421014853008913823148414359787866485570459015868180574576756162667525393398490590050255900974901758077080007730885981441151434479657041521350586216315428476398142624795826749444167288373193153836326404713790145578956776993083191547643647298325123410290120115030521186196825214819488654426429367091047695107447968981487271268968665000924683042315505652505291942843216529355186643616310017535725380193397026182140219271188568963061503745757587538462063719222285032398573307845577866631031048299283082356691993596130124514009091800793686889038188447096670297414237877338463900053597488358356843671143570658765848971856457342768339257550778572710956879520287832182092333281659155844129893923485734168661752656925253197166315533012550083718209427690604867271702974451310611046918024915674555776716607718324673052551836957795272434011574941563872831951717061497490923113068769813168740476315137217986425685376188281583608687222747072595282465415779567927372933010072321561846063742517236956057123656546957380137139822169212414390424583255805294709681085861255543785141225979791770178910981664481704102400532608050370809359321448094391431054641360749179646502484114034084861775266844332864232911215213329416290956475638113283300710449579661305723412463018664108821464045658499990449820194842952177097942264932808773439031863895338392996334785077580395152047606176565785225559892135182710514289677206910732879673716673089515497283480407799712380392897686563499104219730130708381028443177199796813569371393343133024489465343660032240775224758954184996324163759957690758408086716757274541915862204766038537521397997277480907910195942961662146359671687408716329840960796262280460221851658477983153314778332187026007732918340797969519625256082980918557484367463131670465170758962486854613156913058340760885155727217560467611882136931234108549167536900537846194970193613507498177517773876581738943818271143597271581027114767493953571052201910874392282796075963841602673323706387290231042210646120713950061186341793239683296903572438195996680858262967248906140315554491952906180042521354937460878344681977704273129722199745798555133771426740651235231636129288982601907006989779396901873031655867481554574076353105423814251449546221087129448385779968833376572280523618576542155219884934479682020585475143324016098189553154835337122427783846861514880247407075670048580473433722201669851705126767897662707323801814638595707221468057666737207406794460859862376116528255324047679130291601897852709109680131581797823793327226684631890483615095730700943399017204656268229580627306828365516620163737646403656372029299082669588945399200405388357176374171242274966764168230102481189482230889082729316776338065925219653307900903670514012813026930864810489266240946369610443888860305505534384486642614215589611422908672027814646200059915603598639910666971381608856761853614407785877989193359401084013829135606744733837965768721052012048836902705145277739628539907901771395057966309440786417211200110046406743455630610536697125560228786831507101526013654272658612010106743460434799857229641743937239464268280554147890444103767554606508873659668043389960350214072888553740149730825542519413902761830118418255014371293804545508173343773201548006093258983576435210898980417119018898387491926595082263753292190228408929566458002286309838156675861554490340495374073212425205600838804345203725589546688334969024921802931544716850689296342736681323278959629362350695759504289615184647908196941912781882941578363375063427400651903490888293147426052662078908147616777345350018774656217962994280985725896830546716523492643354317308962332272793314111571784442479017363438432673762510864703266519468191129746536615652401326524684442815009015469258046731959578876291488053043393731942904981165609089998272276400527452827647613709257156013390028316902622826167626434035581956607545017347342156313114931457493877271004883558992810892067892731069192765210970415017038286284270636298245863640686189530708049886107102312598066878605190377681999092766234866931299395165935814792082824475885633418066571639008575264288261426221841696509179852877099752375595156324955249567724952952174327807748584519479314845100741140526003745789998418506947825030009499125304224840730000856265160619253003993935810845992173716044799087863951873500747180167731939674074081542850229131492015504501890198187847418378812532750460900738662666514659970482445995005721781593808416548260258132079595161416560814590977402776510906364070844337052499696031034912930004276853983725473015405354415505010352320932974675797179520702292722682915082052032107715394062531225693494609075036003208750534551764771420383494214536890865580097334634875646291624366435114010111280107723342388372692759861388986300796590925627794239540523731068854284187715873097713106564270899048267432910927947663946165307459833086948141565654664715084500586338563616562883617952182477647275934186164653193414103628891457895455666178825255910175663438805095401750285964176207112138655174385069692731931142603163096784607463662966589697248192013369481935667551314519773777982820623643810148953219690222698976193374582506236213811967132620955851362052508144916766987136228457285647449544421629510499441978691286109032605403501448269972364615549801149648581242388898719201795307064655530782534038935168898631912882707710150081650365120716487322995542228519608876684308052840032429610916871086333602649318210590216273880494209805505341220540877305696009768902643814699157628700035399685950790514979194293767292600863261146532149560618213107604919099283277991366999453504691390323875988379385729854967811095417977416607203045557062913375046940903414380866003904207742806665662366248176559948999807922729680125356656824244004587988666530526721865654013610341501598215032470379383704147574748671461912294868236430021910643683357566895858334780735285726582444391557338217694166063760552927396756116958562203314507326444919972365989908773744807962266175419759193090066786127313625418047953564173070362781234342177391444217572082629269272387270934146907002571388441325729514787524154835544436167116821066126271417019332039413929656754199855211653275722724005327614151350390345417022196117082277244173828007390846158943053421401819959646342663445925826790457888993810699459805538851218745437845145807736832891724771919891170538521283352522647001993558526229049329091624146974652730489927971278891194297741265903575209982332034500097664375137169182903750373284880064666212782511603901036320695402352803912766374975399591215110045386392162283392193230391331666768512767822855680119616652574952651587062630965818869189988564979635307417685938397022196861121206345555734354266773566771779881035968195912704668939645011722087030540382839970676055939821488656491456008053651543923762717622363763637551481971188090249425786776776645905346549344323543515824468913882808078175759430342844383426164464697307372742551235894789031390934227032260131187184633147160414042147521791728740748384626332940776607634154347115999369704722314591031063254075159421330957783370588183274999345203340575846430545023205573436068809271288785435179293856498491616551154056155686625057836415113596174504918718729923495022558697023633662708518237370902084598444071751632758440658821332893513665505271516579837583383498930743269578546799455653577894184721866496155474091679313469463927521476579073598978138705114671651570134410714146287865492308974388059288447956535925346075029136957508431026491719033158294575558376803621209492855380407297113300303951197240226359667197634509923068181673760719789969685723368764877759189641432800988785705471302681222625788971683386344628553671290889802742876821274329909284024056093892070377967256514440100412556883712473260111767912842122295018816969738643327425068686277532085178626114303016522737638152676299961273442723919192015474991035354318939539083805260475388257374824831651523964973588580330211679127324636379336611365098004692199007730909556369243549312823791594029196853814134651850621970506406868319729180356114013107542121657513340211541774399459185911704249759710840036969602014591059153124062956710627200952705198730293559949221191991397288934214166950704128325475967587803278534357224059808489209396514012445298785285572298868449151481615217375458134797894610790874293112494453535210582791595999884335144498839134839846451005599968129728449093910607057674874451702750552025969947344122470588168345788929023095696246730308620250700927668990703636903782037552028211432343912810026254723789445840947075654084179416288501533165543364590508534274431204316235498496812065758572659873260192568093074316840767206493340686856933301104801703949639696310062393052881196862474261184010005905849604099241711467907512684957672410936697275234910892963564625282021646951187185664584472810580769505160313875613203431751521602012321410975934950626661339796551698323183657688759811396378483952938119542807943571095172386261083999197552980971071734774992810970067601093423181549198510221468316304049842229699661137896637269583178804330327587934765163560868186959568685671890163141948190859724951933205446797237750626129150177662664182166880497979503225543587750805245473793921745723967511622096431476265449564520499690951108166404972625800872009164023075028235898145402873974911690593039963579236025588071477089856477786881746925641731767110539102007122036740865478576353102606030282402514618681254815753348669643622627263519838295168013550435080816745970965777885924454286518637364370504391236801053597612685752343953845553271814479469294670942518997620924270168229053523479759590655822256389479856068942102481423823517023497575562255018268998507575729821968248869763384841399817283356727736706836930908032960362143193930305185652213238534540904623420817228232967903797019504845335920756260200984225445755068378118753961905462008159997956167055335265056625843086386956946625861740608171250046775599256241928951659583869318899953381397294129175403432915745708213965110457124873939911764529236058559364722439170566592129961307744685164188245641445604703558628828596862680796875352450889920827345066059964227073168520980022206518478847244303275892485250914935033623794958210755120718024343681451666297519506244943563670588327786436313399231009655443260979198947741578839270522066651167308153710048291079141811183492489931543716403486773882792997511200573536525677398003505866524625498127782893702547582397755498213338596636129773710825130054921651197172967584587216863159290880571672235474756765433884914895631377867309662016940364644568219462462823982494474052095631579735283510170048907587499338001219050229196936518537167184704574081130099268645898013917016704419965014449106082705631503013062092690589481212195616092706625817060633072024889370835466781726940467276786881680358393598406123363115794927659577037551308322314142170789381825373528598100809078981604465095999469726068602552769117144369469421818020659431678179816917333157652818013225076622171569067270997937324443655056043922265542349784386598325324136266522524244068078601640223772356568590467304176489437287776329741181864889849507066184711104380454885189501588955102250211202350604019730586423817831728784229328055687683168219971690825302914282655312458042221819466879336908120399236531446414672097013318275032955166024657519950806484396568786480396443416431164727518055007519816556325909796679348185356542789316945208737657609307086115044500281491783866126374594302644495446943069535459092004621344912884919242184193682256185207137358710799020116385099265628790830342476725806299644184598745509627694444011876436592699604991260850131882704664934927420134758425276396009174716687379465107641204907333987487236809393692173330460295358406386914973880313761988785302288413131282486430572296574431537137272953398276656369076024701304989662503366941822308245492631453776395330787835899911984006087963714859867332678510890910977302128150271220840010319826828032726603714956345623132665404557212020552863577979759158611530006841075748581538530987088246729866704165654914573994251481578969289263888298365818233968578829097465926598056867130783443553968290765299668799221838416825035144181268587714901956462323874451147450390488316754216537051091076847545660552012152884593968143410850755928835422795508821109229331689767998639702860606371086700966627412404932168374173107318186360270531960219649114682295665474372522161798163069108884401827155053559772667913969891945932814301680013094639878215287354632901797734570449908724621469548835522498772244512369303030598158521293088167606106861617216394673693152094881673364752493117691818353965619514360864376327312301523028451508351427620697242390173387754813638781037499915995979520574066480513292770615446185546822201169801698406043485183428310322588521303309886931297181578227165747471075261164148177114292358047541751539463146272886589597121788314713060561390524595471792473651902771526008689711854391612432629250875108551253710727942506309166577331145157490623892479493773682560127436802340675454599417864220002709681216590710382064331276966183995815045069458830650392845452953735802792605890810983940942137621675801558762814480367574641055195035704890492348326418025775915841653793914985518841822622106997095918463909038510624857792438627465268714401986467121906384807156308430864367826734404236160266900164202937606110810288339780783445347801775953680057453932007016053164692429866330693584174846926565345438781826606835241812211942664790727720343741244292783985504533312777919774381959577991235580203869012498028454885110719741389358690188034694604168771740094061388180490192266350221242466216392133335217007506210261171322043487629579699245475200818827433066947123820590281115167810295606237201404227874795138194985784391422291523478937688012925906746393712413636498725356407928732144499295285471098843268423718472763903704441045975405734842355132664792561403927411195451262239947818355945505091936998243772794266671160230100526743452506524843905758463418964167980787940233672147016775708589662792992632543926044257524145109011203626921249208763163084652870837642980255530384034289767959435201607662286881359608917154825366476463103632419990819614178448722074804905899462415888652304907256517561500646134872042548972921587848467741935406381306202661619844500563297972411606474055529412440692647693551179298730187043351896368155584388881420943132747222924227667218934282733436769224053391874764558407446979421257659618119903927194326010956246036700051902875654424811636797254730593770918349021508393917293209943371446229593851968805346103177165177480039676999687744640754024930834859570474107311125274181401022750754043020089983325226785303263189769349181830516661255959820947026980271643532003142944165518518993739566376528503289765378220584044735479406451746092618301825819391186440143232013773545023885406095004188560874828082241741893382207206314324866564874008653845104425842756011559242760952367434504510560812091549522700230201713557874012964362819095938087782868435457350268817406205637221578276894043362127382916836120308016032378228860352267321150677861134488745511347963608795678145778011359525816148132657830748406504645842754322051542254547171803068975577780415844056397233983587529254220098357605593804546562385795868452330039968146950520592726486776662848197565154787123874324994189822211861525795294975464161766470463973571696716386539467937687802587207972304457895826467402617427003209448026347175858813509904488123374255339202218106895730381945932566727299704364187544828334548672289006881709762949322761123645580319813998104546136992677202781902641659084679579240106519805771161113001237141373225214841993733634859581735495594781038241754794758175253117613422572793073033376860683451259053002665404226024736948649238675857217391558617059297310346745334560133715074208528840457710415179421931674733546996567461276550306901407111729840015466086446929781262736557010055211297116688689276396767553421759710697650601966659237009338546716437406863370106768423122410061282018684000435300936636850974617574146768095134720879112553345895253203419936653977395308015861344942415550531544492333266401909532356388684279631996916581244873827693433820255848887085741803426661875043227036383623696029653812438420811883414962621982586622561269289017862653052372244675484659443684234866675694428717698782847901986045096438484752987255665240118324882053192613597244302382472874532239188809277852232387486378640927729170546790021727342049522675320876138121961821967758012579115509312051637633085846702474369823629001433812930745105995818995269869926200021874279437271222389714594288392355945762004738377777696143482467645035009151685114923137989953847310986899955271730094526100647767031583570903032291823032060125939335395549030398597923802490720768745073465923197800625232651807496798607341717645971101333693031845297359750521140142389236902978971166935622357719652414561958487994656600319849385191944619897614509740148316456892589656780539852548928150661944945907172892728713928624315907428101471913678495085261941312535111758244851031160520948087449831349744998303049449909490932924683421611787030589937742641070718534043390364219078245512612715774035634665265952416703009459739485831253819389710827503304447055599353232218569397333726699268891619726175447917024611732144614390097209682365611725477779942093455958909807764912469056937900086468706549434184478668336958504778069203201856763552297913403092333124227282464182843368727887946645308200155688311165775182570304698652638514376259474166574748561727418706198641291670877354426070029025553439992292876358032785163703269155777768858525655259564987846388984317285560744853610021721441395002613216234840408708028938821043603099566761712920560433159100129349767286397566100879593575791842824475662339920664190532411384149203232439309283704350698239784324069631858343486821907674081908885288202753407480571381080304423341582097265051809956257309367794657591733587566659995390482458787600988223022737830464753097284239419952698121751069423930086078612092584550809437453042605890455471025474616263082107590689839461148138252172055553282437872714859197294324492666076885526731783965183230899951198045152261459567857584504706832432553025806984308341291856152854447691017400747320346231165029667526893243692755967614518383562424843316880598532056690855491503179792096339890084742254329251801188531319273237275635005161453344832392353403005283540112625600447743573623391740053755371151771468457276505692993198976684910871627180724906209365802672412527472226044691530270793127799535879035223197687436181494616596738231924408738239317011463580812807223466946907231141237815770816277201265601968386950372916055188563440070590516264105861645824862820393128482000507047449244285243497527524541209631366651152646252087254827804659117531926093138989313817374636755747380130627811789749863506878330410297560219339790795883901442255219458888127763957252556838854907799862681860727555445500408772135584733063503608724719745972885815764207192927819621315079962566306859419238466430830213078391661401274615787022940677743601251140571917264251252011985951660917517919928070809462411631105468833890538311547143300767533518465661854956080487220785841432851721821063846854864487442647383759654179825799627354250541715128644014986494906713166283940098034453788378818377035429226186992661003324390425563093602336490285648087137469577537355206139242607628375518567072715426181074921411886344294652054173428862553685478025968450263835759896779524528708739241854562216931335887691043932266765044869936426219250858517492576065549678189592640333430387221696915218651055666496262413576432558150612104370313085163047304459591107528897625701279103417017155625728793309248078480430791913307316826310029148599175086952880013721421666228303456260519886650933396468827483876195922083369420390608725558594085909115974272191698680655365128473931105075953718162225103554935858704549112249919633102169248547282577415443632752078405873913560626536973547410011521405443088537192050537264304044121972396284502858388255668810202897666574925273895862221304526963607361129610800972374186117121089136053610882856714073620342476358279603699201800285476897708604063427733369718429434810283858183145919167436955437052950492160611757389412168383687109035788671629249329431611006503623944342691209422746126436181159675955588990670115594965727456313415925302731567281827703469546878139231034275611912085030451545237872229886293238111530360756871504991110252016693731520682222975792002695646790894382014165884545466467819827253214139134369239512035152952978187833768282016499934396562332866395495904154026204313339321422257395424956968172551520778512219736567948664556497447972134763120628279738745863659538753048752586032856241361498360852702688702974228054898307475010572331755021672761907212558414343703435401491351104326799191270908356895086234573145302679006270250480653417705988276070747118543347171685629708644670302693374120511652603336128763957177048185376633000921513030827536018425496968139128189821924205854112126482305507715995677212591318150774432853994607234236425852798919735965884735268286605190901963980381789509388373299407909889561462100723023658356695304066707856162675010618843505851041930554996258166110827536474421131802303199813016325266173336186116309455851473855863371642441963541815615022265099375443641831900508603593321281594511952161297739905143912246602188686233104935032956473576448844842092303843188528354055107652637558259247363503532297914399385340661155119763551873264059960699609724175989036337612158915502009930269903111995927751786552804865734748495118066211356796128939727418923379670915645836127546613822623203279373842640571200805571129523416359613224961412974692952952572533510244405064553120877321927956441948200937319008554119519525236674418809411640132366396855749789839112458375459160300853929322057365805942509976165147220689750911982434475358318988768694283239660094531700462088164056558243300354034299375392672696571803102185758525642183865838411135112034594961758870690058232413084193897206101025860448058406202186389014889704650598137074429002534012346156769597872080034216269669939711580363636069607491574339875540203403717884097741696530542691596542856666239244759951725615149574865672488500710076684719565982252950464548796476087432484679755809058690624674642263321829217144551198231246197689206056946319817955741557181638151991286508635108709611562011996228702077235668433009330786178377761335133178403335724869803965589553969133133189392185041939259073742231530987618908740209867321917912200225901030646033160391955258819879225697192549651071208118982841584737584824931839892942238784565394440931196704669852984937628422270944258717810464962835487229815717512918438607960499876030939421931322758858676210820944972852424661975839243520062246796624389784120348037862605505765129537016725547106983243080097024917160880119531585623782184649198682395474492355138949161468543365381678369259036024323545621899310253499374761709790745340477234486279259642797769526514125324382691591485034647449409699172444205301303548758161286249190886851193439924927511502314901815642871255457727241111902459340025928302329779839138300492014966576337272857125282779844765584572198766087204651420470866328934215761918280465002985180379719720711735474388775546817105584486848990763931140629712336076858430099836273003715666288968091138192723940668193013174056159160487705909837453513818854016298497879947068532956579608528660242387021939689193388576525100377659631096967963686123614676626932854150271373987349115454289573711323574752681454060576479005837609721957478254396128776215281538753789019355248130570660558636171846807786508875255951350004612565711859426425170020770404568524114099764914141961607699044899765697030635969574588113692089526516379215156093142211579332547997203952029193406925969595021802322331563538893183285059561958916019898955217243417248853641879884545122214880456237339969699055883207599007742891961542095426904619317424442142070444537931681118198401689317750720759001164186489690999798676721978050181399377475786283042243471052892518729048893302741139725677702080656152464727193112852271071673193673852474311308411367236699811917189714578478951642267209131443638145822860627854806056533306157254999712680582785589463225343545979058701275151507643808958064857404275492242623466866329083478540827460855149100735527037718403176666604651328250965873313549384671864427914768585511534091246769029786876531058849722781150882906561584361684675801079301636704430327210103288515351024626959733326430315791663590104496460852319724951438329827210479955918817532362463066458648391451379564350016446547447026836323438938778084851048946038983143240931778911703633439955539169434289299200598743939784708370629336545433442533899019410750917279250094219207032411852321357768652129960731768588926722449933681935246339539517700096335567799835416527486009937198256520546098980341902455954390289038662042815446416774425933634582905165687586732103486096573696176082108640410322046057585047697512144207442521845665018543350252376731269353299786099158552064048351095379021390576042588849806395875971758708773765969500728292116508066542662164650725348286691741371194886170352854829989988201879650112900310695596209501076727277839612308619424139089508941616400318258129849410371196805223902640209962205303100457884860316226289129829438390922136427454971735926247197699613698329328570759179544800180721252716960900924512986086640492686610751394710133994595492995097135504641896114672809014221855014709529994121047088831583431110418376264278655105307604087341828953904786063739306552234549913449504918008725811759460655898774322530868423055419133316860143715124517904513720131916942026924067141613875163634136120987156194308716087690896320948925456460498007818998080324839050491363690542433851094476298289380602009716462130545429644244681308901889269570264752662273049592325128004201133170958563733602674533750626800796837419945104433346280294593247678144322068899090081925240309287067851937985579754303508515097054280148207000393648469921523721331549587256280364572015724562303728008531147788849984255148544580395051220893945526489068917639606490911974613918862624002496652504603450535867135970029270581707066727805220970178640357269874256140230710708097300275615740596964244411697528702179629804032313465444134182624213657455309726091294030965727755465515279120455399388980693122468580959799769983784743362613761641087697114406366758391311069832923738632302576550532011152024358444748938482752042300280015655022110345011969220677412311961021992017079856731242197223339098306162193197634501026623696365960198656439640021667498689109840143521464548918588793799935976531042741114831009780628523087438431779532387143344953600849404384368318305084287890444906711489322543875777373051727877467450296575483743789475615897112494590989060198381997471719691276022302356679550194978626290694255524168756443330684576390488623367787085537451392497627803172423699097116587359036111156275834354868601183386683579513044365584970264374159096762682494258735567048476836288551684729006872605057138609629129338499560061679374611540545366576643979719454693759638920659175980064655276374110235490640397958685074016776442504369914986498861630960794572696523745844317777999906124932956540685947215235906915954136493449885513663069192123638155381788072734693892999812978749230813048819916255305463157922807471583104172830095278285936080989829001189694815062367168643121860083818254145782044973837949566216531366896352740814408551754855788917596647403616851602772427120460235024498375303052856633435684093899146995110306537811056327957984766188760939326237255320851415961930634545011706375722334614822221897334346464483627459094704385151574495405747254760544659696662337708548710354922930443174885302345689838847277838109440655469948861151596391479568484137399078229101669098031696264995651100789720993981768065616801895272992091913280505701329314625683436714652208051292312594780485012219036749843195662999086451822285221100737459649297534677108767710877238181354818031906038623262821695035883523673558061809891526445801325768917875577481659849452953467896222840040731411829281350989093563876147551939767725718223899505787613400021143459898537416228741452012501174532539334337545387520457842781865366852511123732171520674604264479311234412936831417656791047058956656289863220909704942230288703389752915630569548359876069202201634641205809867104284725062959656624373474065140725957154778799954204215656750864480650095099062507532428850103866389468678770830830655877894158394719975466522892846326844459898785525160457685499957816076454193559801665657394405414784745861332035334579566596106835364458087535811899196383452532765483072947621771898791690233798462694611787136537539949106857284206132019943915660564433415228614666910529435099603303366010754608967242720939853663797669541379051502331830028549816997758459300737818793489329926717781476093862654631389830338417977766686795346027391951304757965892120747160027581101637663077558742773937901616172975316549483230374576803393891054412799669359267316547264062068534225480320918379150336162558904164505424087081489816623959045468426266431261332631552946839093367005340777097509984756575234023210418032631772993110310416886134407709382953865179950838778712635557265196921414033333645046674362660257678864084963134359913215342010776584040451324171431285684884262586584935893621981515673529959390899626321645226546324210109663055530559660166290076538276776868890794335944314991551802360353193882026401091396344640588390200205446177878553134430775964347059512153710480991932179253925342246303517327523896597292392333595915195354234615417530432667169906541221526629651100857399564576262591822317969770919951890914459813041505650451748923162613732202921222299727143230013622324225319335611128036592662689108330863623936593636081608691490296257564736002648293825666252095998797873598914831819857793415476635901903342986270040591421843342002405628078472656373137611241593646832417069002974879993103786738471266412927613387579862969913033063870256847931412343870246112837590009823978814784943944939080171254921007369424828976371170512853596654017156352302477367631175706678312968949705701965098811909520108450683608248321918481841170146029934108891927061915127931926158577763385030255050578446966496653999234133448020818664879419154156218577109207797459266748018264998372194775789597492668151140055000646010677579412051231740521680946103090762576782601531742974628469637658196963430210795720300628681373614380910479259688944560254467500210227177516299419684014492167528586772241786704165099905869852355669565378037590080432516411312748469720738155729872752056375378423175524573057190175408620472847149007526667614691944277477840965448070491293208298232530567157966677502251119517638193702219650993630577623158276878035383758226999933436908168454743238511106106449321254443543203872119256167355537167529458826199222618179371306132157307136368042915110666058976740175256928148030191813665484656293177208133451890504174744519541370830572227884719771516131648209390331719580126320891831304501475336169742555460627267762217256881128516167574778817098021974997895475104131311815348351672573094752203884459816581063316016234363207691801425675819368688168016759478076290332979611067698785707877691187131212331705159864513860147990243664413346386840484087311894078799408788494215569034989612379642451301822902360620167921621046738369972707722607181934719719536938038800078253668816201602265064533112439248862990334674483908166627078434543982969162181540327681117202090346756966764335804288789102594298849553120805027979750637608009007451686965758131740585003934462810919901892472648291680595462392463313397537905574061372420888909337172550237730970534993695973920300466753459185843114317207121867833337976358283218394131628273732228948409585756556496276491071857171546706335584798444985969742576091913158856335299322169115452274493228151570163255146311100908601296735184942056738938268586716416453378275552130904192193938764703948280810074463209440650661622874673936680744184365578192489690193054140102190988207258963506208727898628140420645473715720165610210936678790988814669828828874934005899863116572722392997792410439710605337494391630315620953662313174351583672691719081036185539370184761633053236822308206361056323224287151885770687705401208033639803129614735838618108958079527377702551110881715063790254072174686430101800417882595714328480896483907079653777784618075270509983719241507892649484593560155782942029884684605446797089929017245990056856868482991149601762294244414767430906163808027728511027255641215934058672954652689237642476440388435351265025650797637956422370177068091535279089986181078570863435656828846278835422299271177785515162186684890664104533140696148968290277573967878060076861733603599281456791903580249190726563374874449332556967258821633931390786711430059860246526427231046208044460920843042765820675395539412527058655780510264534588096746954031114170558184922777391820494400745304267057429625550585676193224268994646520408457295965363146610984045438694680952450082149385021580436990612574566264387321284830402175796889562672380679564587954514940022791328703758164051424036426936700702882683389484039915547537566239712825862581656308466285999628600936828224173138956946706814783695368650996033437378161547907102204458086019536780744713547460391168341790581569859733308155901490506444616372732278060296601160969275826172324173284099314166979946799722868877716936626619185536240386222684952252430118383759997912226783383717081928017979022965186185825614641927687510528876853337684941211097626882475600886633432306870692375158491103139760688135263405910858911199287775395406297859887414572687423753738627431082122901148497298079913782062978567144579636855675312186673140302629469513636195740377009301201168969500925850940093619750236838626029448907252115192553972073654804528248542777553882532567384375833659256288926580489567664560932634966437793275610267709540520965699727354887341378021063895507419834494184392685685123774962958244955269021378307389206316030592789770547842583452264452099274355995312856178273940413518858630430957898195457359712790277830526315302993158803326127849152508574927831762558803757615906056780087482411291053720748642550681834063405454411855641159820991709038657228308533234765575383217304713868284402126722027431294116772984280486603309102344697656394577941223388848343913614708789364742674305658420650979116193139280647723371264301288526477718284292386982732961487297856787931982908634190414588659605891598145314649582644604101633444320458301265910649822839298543391778160873603910196036242218044470242822264790264454396366038798230519560665088231570611545123245773890280451546036233730550817579369614089365725144830772507809478963797786245403890245711256712736319983826251117135515385228738845171429779024694630122543224166823979750045918530602246103347379517030341109370758638896306278816869584214964016036269578903497091915315208041441893641245370059221472359975249069669929211420705292474067307750791584346235687188248964793645999651108214015803690422860298841703048170281932681054011939484332532621853111411085098542036156489965912625386244459777512952388269332111399176376654587671766321430392069521467225590750860165886430023286423648138241485774970842280096825481661018272434444826037064333953009070259435953430040880554096562861377820327902656719643898379388937927343826210921115935071007684522693624388100530983785268719839438127206083540098790526450855408444229112161688638294056273306208247796745226023580641186360191945521805043484149207560560273621563083276982332430827984140258106125938453764429770776226518033089448114376157729526165846183652805863891601435295778179678834199509660710978018982166965216428127740870544922447224967865059222137089717158675255104956204569792100890269091977470684625433684135088189768409278827465177997488801668221321897014125364469773895142187905029615420179534388222244249124340868949716251521162917101750285999336877851416611408382989005779559446739700307751755596731842352375992543215293216676149721592999602520694391223552733261464803339495080437637266032119033653722070017583125514144150326399817613831910146568623290781977536199868507552748986912725974045405708778369515480232646439447546797043838592649215864271543417137894938382085990842143290187260941034655656019144149765905078807859054836496370416645855965854772009199389391341335654121769415381565860357313026073977672153799107091258488834597718309766232283363108038866670469590574705881454720375001122807377284983939126605326086450546342231307764728779246593597100317023974453093572604442018088337627729147293962040382379244827672353948254507095827998842617894986372636926069814335067485014386867121385767664714155823363334633224549883402039757780756274032322709849694054908376028256445606085912158251373760192442968206477890508232352182302598904894633743444924851960056252133679993399994077016434112661872436077798289805353254625039471387091274741319174983725499846925296076740273450581667748488267994854911060704247297822771382931225582131985031451040957946485524840625172990904903206940114528601041372950211527337500748763205904848804485742443273377146333160096527613357495446835771038440449405039936515880229402569645219015014524772835123128979885507293388521165861845861885547988265023817719457256524893828147425761491447488736360209215549463653066402085443262679533765426523395914508847188570780773690490459778159761062994049039600579539651688268083915341551212844827666606158722936300254710469956448266550874092090834388569361901651075491877925879669169034276898486025471734174796284184901873670488566094863605451309561406966335872621650374433140891269877892924498580802267734315068321777852031399649625214695053048653565599891003795958914249462472977146194316324938681364276365458099325166802720268032853895317732110014693796982490965095198285810206698993219590564676355563099917536564753380225416781064370725347748664437918690606125752799266112653916503118825740476447180191575865130690238812249207371546010513303964880787863990005209320502237510452421008648059476401472690582917743929500158819616276743315670291675498322430436415636763430011443523125737099546503183906302719371658408578437231697361327360309653923034437931667786550077455519418602604512417442112697047817317693580920545834388781878893775169554588672921565500980511542538782835654257330863654945392319961321209584139672745375347514158747098609524004864706284921774507302848400012323930369730970035189956536173134272380784303452280221679762492561492673958722052257265721278581637877154685706813602619421952795832215029611846780561175784998306795472562917494960338881313161548580490789989189138012001574140165414151071103116995739404999880274619476604439180385786273963193695254390228078559731437753276748204198304836404519308936028145271730506038625848997549519845902740637479671616030333457966460437981462831209810005537805827573631734524311848075502667711698103593885947287068789076125691018670914513374045322309841260868670166046764059082841798275825872980814690661142034751972120554214254249253719318601295415275992559001603909088874938654998489024825158181031238965897335996902126676172997777982749136921569336078813933897962144152789271090809756854167905604110853670716962101626031381638640004983338002692162733176772148946513150279789763254285486513083845740477013810112480579862730960451317889548735271422175619467804548694611992677902007251356622221521708642848691444724525358180939699074975376554417620033463523706437193075858357023502427801192926561679159656314397723420162313349765430260942701221301193008333918328535514749895695974872333510927852902347405587068578323630662008074543614898039550709343649403801592221194042999262094373321025194122352574598044290971517059138492522362590614787554346139472607080187710293651954402104769772792597038193214106083199669131274555207921872416215099505524141112913208659984285916812319681689871629763657167599663434022528565793415215293582272894799538897343476913673864549272171218138864363462753289788713842633050308095376482872412982638889624982791634631877620152181624208121133995932291605659044324111610314358602889284907409004067012495613524461007276284176717470750213054574223185617667906820918262417591864167878772397237943081280508970738215030115570261448196521763452336140809366776768143722268168975268788308746031078940637402595814985900933341828223522241340031930429311667468034699185376057121163292321352167408249238852115438567078881394534937831462964243282656062660313565354058141073655671522359226364041037655077251445502455378888505581230195812813214858946467029175668552336965420192410635968005717024530872513486523960369311387372173150506901555848361940273409468846174919398683744602451733360106808996165344369239514217843471725661114456160973599786438574884093063956491108200261264408161728375901977041049475191706172350666998151576624343218301708468323060311119055898762428309886992793548467671981183548944642816579131041366878713489366819578814071287271658502522032681802625116866186506311184993226264774865015047957221288519555558820648723411916512836488871446360939140848937777043825189048301235081521216174178564830053008276675375030885685749891603529900689220121205318202305756347925305847839027326510373051456803914824850947645664773570864747194022044993223292149055709846108959653628489378879423120441766440624642864070233855706903599955078272737322457926213358766127671354036755534465688672604424891422572336838461458962507169919984189125053318315678051799700495454905790038375276704077439125979908466852164558484865977924931126964257594415994078827395056185291043369382149454534914426523012217636686495205805073531726300214904551838460451474176926473965136044450735973740139217092426579271027031865720680340306327836469088221105097674211255094610579115359148573425243743492573921475461199837489460573256445663956976281337423936539265311690701899386575828684828759921849558966840891832015804374728311642184055041442640006088308825153335299273367661100628961327932672290304112442614285551208012827656356009731452405185555885782010412628374346215354492107209250621222207595950912994642763916404627500671742935150524052565777104198771971064999703650815178880278980164319874207205959605729669805339415762305688026021566608328404078861842620319953397025765301970067172735946649953059123802086792590312383508400104146262127788140887369470825924378860280335849688564827649453290576374071125635244730490708163276904296887247037474701847451866832022053351929747450125690875291167266203578683224660461037280351920618359736901394823918875513237679330514845836717604446843161964352740300755945103394046824684582544009661300826352123773095594817271354020653293288043681889850531757336963310428665456356895845320720041705410459927963429901667372046734388654776873250960796467657023183663686830110274583443090761204975923553435428019954438553128666431699554005275141282022220075879434217071230941685901287302960691381823177751024163320393160537560472615423539455542850510156760849559210203185539059383326588611384846959185778395436680282389868526456862879860273118230042654112509925252076396497491308837511717201392248225231980824191167250938084133577780139980317084372075593342148185162621936737598446479931788114033386433221201038286852802277522239614851780684421464467548361872368703258584905372884404905773962305903374197898783854139249434744092744819659226129293075829707198507929238584793424661229961769555859253123504702502268447846502602182094156396974841629724057450960266391584830464888295459703452829993857388778068891182760104075771516388217120657002866110251599366603905800241714195772114207282775651622904978639353737005127488801310174392900488861334746019964293066121898269107993909195146740003625061840733250556148754680023542797697365958909321324753451545514369377743070257512499142976273970653863404679462592197224569078612564633600727407425889783015728247100683524752633895634737655440719672648239294908201708833448575620414790848761424682066768606937267607452979450447347390755710279178787947537365618686317994940841474919988105683848895621003227459436085661952439232498664497685795496712232546490193037113202976233866542687592468005734956437107998024294200752514687564455553215847293927400593214568011166857447966722896839166758542068301829164082019859958014985870716921961440898758411549644310377639159481016000263569246148056365556333457174250460656782490268103516781850838511888977818780270159100829624252192022510560833869321486699479335391232951544966110798418341951632701127619582982519190227487434286510384454248919910853101909140711429416524486530051061053625163771595424034914129626728421354653995049771306923223216266035811022807562910816310206256598186355225470054323884510966094563250431599169625684502496619069000111072950092044832903169196001751008964576322100785312814385351947253900746987877560907464320237484567249766648860643070560079058678408277623410327872589724436131243315310935269072339727727442497496550909559792091031882206077027479018265399072030068210427962262857877554857054758472790725551763530945421363796567284214324162634592857425137628102135235705204206712870745299835411285922821894587692172182097796696291892038961085151400840784782468725607082833093643706160076370062235955286431392032728688094853397291454290279789008040837779879478887378259696472724657617668834603047781067834660790113714194949972668918086685034318197115096891669256585039766641310937335809420588294182440957174860663046381629286403539970983729131200703705800526351172173888853670192390383200002076802379153143532070323844012248733510794412461403022972535847061912513475686063419210707907908833085709943684267767145416987596663137804255982102218404651132162071905973038400383010926545615323315945153685458120703460421584492723599786954533441279273057607531848601410690546917477288738939215184608276623425837396176175412671754411480844750075894749550733598599881168289777047493805569269833196973133893349851920097601699043271943589624086528094111291200657009928490535002736883762542177130299936300952999940917998714834259407787188189738257900232955757212193560423037171385799869077873502484100748114591405199326104653203526935512568132270113934492345033989297700610480056083420714757679138904857492713410055794239919380906852997261624269020990841311855807891619284943106638965936347971360283315284547769124587136230392577425593343788903501639557754695343257752054517632119100274263922383096138716050970204917626577434090677074273717885973718741582442761682280561790432740708803937308424513905262305204024996466771026679639245216368559954471010654935505709216512192967062381741763708525969118312168400671769084207549184319122822012796282825950156137984899157687333790531681497738134670129521873517596550710201882631808038294909874420208280988877975454606559450226178396849974034824752154446825266924934994370720740793718557923278695595982289081126558858046391127783343935289043629012392687774415609759532757344217053088140284570399804998519094523315512416442793868751799402163610288069099588874948596270298709287552709745256689655517588025668485412946721457065617213173951956934715276193677017587160171580931926375436725658692387022346270864202381489298734780856175167439543173008728413262579044169904042261612336856539315645658913097547917947443619828582782681582654468421247608694669680748927771816006091832518154045788537708955963414990954019773142097967793748441751437721967019372939033994562391009155663182503557569739993651844787729405476220288031684245104456527490387562768244855913724895670440174589875545291667720307967591396359562927125548082173107444550679718728950648220081764920373451079409195519239687783101559517144146247736180255306987505208217129212593496345694583280547973936826832699233601126969715597920389014710829334032940033275527459800527013994950721615147603819018468629863909023220628186710885142095793623961747702067996304473727904293222676727397208593985960248838556353012043364705555522299199857142617277312681377924730236998283423541745268496922191109806906764102112193531744523316536762114636102687961156858476064597887387749836603033043850210557608160425627290600483029326894025740988366166464045806942209126033551355194238427836958133723883826275553143515387758248236916742048935987877058606290717314115668653062065442437734655021231668966266167187565707923935007586225115524870498042927519943180208133118342450031335392579032915909952557154541701348597281006349212490751338709493820527710072738316257424267449750898569269267254210519328718020253661696053979130412475374792222246204624810191254110436750533650511859416589228935978570096843035443403579627645234549972304863063592923582077637847546680656212934031967207649833348824517270078973674063476960424966449224829668427415917616976446702273176073835544966882664373446800618229199992650980873165719288520425764349351216489389468688354813179064945942313979362252881972702046048431551548175036051292925552096245700381995725490685797610701334302438092205412391250768018895040744772917876128723465504823685934279299663108301565197550421756508693649873645179608927659998429801115997477218700843023285022876301821258168970360301658527752804865750261335486788826550905010085515478652484677045621838817742186189224780908000930550612448436269617534509342428438380858926079619362708273946764953298229904584368537740529378347979040449058682172953880336956232580056214170450481012604029868819242493190680438858733881374831678183767447299619004177307920391956269364720037216793848129139217300289702206597929412197688744488566822879418222886706961303580654280863000238119505973026289971771850976234355103262819713265246291202182826444808731936365197547347625388423747027901051680136978508989585125560048511223062251024516028119642928698433345386228676602323493629773329734905030878461426942517629253828321454632706044168098381806314445406420152883412622140700882551527228824397310464045969572748888973823311814484221196876853818050686051153513020709551461551432197501376824608952819230800264284962324101216059040142913063887002275875676667554869936692926484143788105226733366355899788148931490138456942999774825058017161726450804085900382686718029622998276519923890534978054469330174109984751571390766659117074762695211329648398009968024142508744212252013003519005812169436096454562089133036195325674814505641005157316055481778762766343377265980112420443741135558001886136306199598776739482310702390812827911925411957190616558354295078485167463354392482471134399548649709868080582832786920470852538374052032012911103530527513111488711214441650284067585580100325644953950727628649515305560055444442726608685896078252981164928850490411051221778591244871724378471619640187509775461596237251153165515948376133355815581037985889111052297457467864449580283809796651843428111879043952219342853271705303187995037382526611594990190398259877237749680684940310072815197911021966631085215377412528699888119494433738590840524791101129478163842913632495749124078144238023298116172536313582302965403950093322489348111655070541233327156801150367816363595202090169063811327424197292797782433741700537908307247665338339069576559407454310140504600480171170745998395664633554641087561041507025882482789939595986588294205404057131190561302652638888540506398730656409597937184077116651161649425863542850173344717061344112700178621630853398216938573889653856582572214072987585875520953163088165035321998865124519858885467699442607684072176344224891772160431825067597234268849109809686970221611094019564051171132118496680344326414084877210804322109202665894939358772331367889805097770048022086866852697242518398302899649306607390436433612135746336088181898456439833255964672276334404575360413135737304249028507242167035606279312455788196570528593772761438635047494711704626904039387016955409053513777990565546661360974042291641499223571988982440725168730821039643159966303401905219889393294899258778177671334235715274194913680522678882427065209120139158271918337958074323533016515437839114464139693940307491682360085066022991201668575175464528893848739295285980867647899145955247757796287093457858167757111632565009016180747085366965755769178441962006539381986026721775923794053801010216021596059235869354174066691072539202307209353452360452787673069019699535163412253554901381170238882345966128950313428007976777544661881698346578390260078472010286451173025818156088094612225361059291901637506453857447637959326445876373305661191094771293452021573799568266968862299277744383457939028025088437432991686418276665206892635881263626047763332514200470962813446876323479216558601727518847342884536880600775771806907122127464924467954222906545521884568632210403944187845616825107031069992287265007582010411079311534495663375515310303971936291513530760824499970387176653119748313788035001399073166795877635878527254685222733186250718218238414083832114950505504353025464382465017025294317059504377266951521975473950078048724903218577140059305552812208157298840238495654205504201933375776968765891676964426948187021359988838221917399868030105187089351756053007150674852340185244765341276990081478139353766748696110242265627320170914771860171821190069311951212553007777534244014409340102508742083194025694317535218345135567156022526201337850543031495769634825696742737181758101706693306099775537356971960884725774115576432522606052228545101308225794264986774433557145422008194055027822957275268947806762497918001460516574231678073254756442055674325169933036129235848094140838804148392344075226063596570355976270869543076859314719267139203957402812815677930900855877994061999373328057932567012991538295703021371392587507170921501113315300843539128738574651201549393540066325459670578906610465593833990914708214641003990089831854634319105546589553939054768528263206253896069890916084409373384367049098245048674974938671726104737978130319483817549443551693629172789849335985824929573962354181495761406106335117568518529152633571143959417025917354150624254864440362688612953365025614354177031105481091022158365468983509339695064722039898809836988631319729342884230143119145260502380123569777143561138716665929913702686554038495355462450020436622277081430310879123751976274027805033139497803897910019704809605176478104064857546224755256693303705360022767437331599800009115455938234503726789219008157848029570377467521875883059232695515793015822416168169292791305301476310185359518007665422655723201002640421533701846995696642056424951232422519802203319568936067804221782770962169672068797150007447348807570426481954007617017717101268196932362731783739460465142630933290097308733291542717093467729808623722476470024686599781086404512363689856732966200856869962655445539333835422990486333086803761092415529600838186574236101817234558148623645524272188174488970545662085607434518133124435214977384768751498859630168690042141039312638503715636365758330747665574200383700728537595221609804530983035629976511402248035619230223477030935995582088590468590186020503505320584794527018183110962621640159666676984940630699415331702138555164276943022520229421658533771513478685334063210193098061359416191894878000328227159928156672655244952506087810155521011793286556891491161412823012109088960489169637736571320435540307226378834683920061800304636442235611622321976113407249089086615955372766051635893477851539476368387490949964447665172210687214587301149173725691100290344436203207620663532176734721437330247514609921207199925151712093830271791563898569148036655725133401193781982120667033463727763376920548526532697004807191763430987286261590447165843609344900299013521596722765646658763218625659905227296361322210969967209854043664486990961196720262026726978180245490149413849394439603220850808062352401895146279860225686340713517166935038763021530545085073402309692407011953911271802502511653885417693283522836752321578037166918727714287713997775100850393228423100252269055780259674249508972977363740774717220188278935048246799500717399084413500538546516521811400937169380345327306523030568674248442511435378557446578664008918345242921590429635758847695222353571434762080205358007071759486161048012230505485507710357713689709477968680510276625476238663990125616063657349689133641051652160017513523860439292886127341961147338469572241967269287204833771221530714749596194696586353410033992377234750050280820479302528634215481975574761805876515118892811304967495236623151007316220060251663239270309426358489706442050942526819271143408527493463861259861408326780046401201124839964935247493301844185019108820432882911834460339332311132677714419356580629285163696271295454303819946971556300842718674408002570313268875457958854177405337661822687426506743307363785409968640810603197363677596542121548004365372440356452517320507615238883009418827507425160315029026884740458633408860372077664549823912494969279973626043698234452201257569629444662056144967216247923092930791044322843854653271282070718350347595235132691213382895589970703078235386292312538113497560476504373178749181690006790829851403813946585257848703816378639949153126009321761815693359291901290163155521796498849075059668752711223896079234817484022243448202450726364595122128473546177766244567961579206229839742048003883449310762492820340284809603335371305866271046294045467577609510472120368845537720496528126687614890518155535057099628403630258240892621669157382877421093500830562501989659310957478278255898117676128930688121283012748081636243106956046249695350361211767631933751274141793933892466240404733902386503799168055816543641506111397549617076819114726142139278896672111657138448062801688867352945340419624185940748878963676143052132936562571622222037764000948532433954761854814036215781228834829911857150106511062028493171810803146533703354032204250072077140749329249140903991604925656106938077520342865311356464645205106936585286182692024216320857363287379409102216251421023509910117216333821407541962322743223441708305470263467306797781556380935269743897250778827231958008278594762279351229691374364008881371602198363060976758426780014320913852520950353715873856810385736952966574662278509386069817556103789560094485294238012925157197099876030452177297222693811050451745281112347555609544406105626867192374423071643739439253844425332101297689696760127556466287802423894415315069520189586106234304914393659025773372739722098892115035127075104188062457073141990502848977739259948200009098555910821718239991080383667519063315379767515897390217398231221527121061729722425017335237965687431100564732243160160636867610914720512477286831320598618819612116029351659582870475984476269494044713641936221715338873877915843421779384535000533614335997328910400207309198456942866019223735459826812701617246155611389317416515820907601642021756704083477963750292186104200702723794162755871780243661657065805502988830826030113589967124537969430602559399017944263392321354627181581209239525653588584468523059356847313807907736664486359078599943543104817158745915120056135472411600052695745247471454810119656546718556014352774280390678815216311190620633622351852121602136523496508276438526688446761635458978088768078053398189812993820537924376150181942369290082640400912442598814882155268529588889729429911132944400621011639518888933752683979787384557027614950598453915468468430264863515700393096641802226393802176453123064565170994568220450370785469357033490994880140584420709495216777439187041303221015810824809230510724375608485372921249379260261686358431312972764607582963555266344543820530250905070297822021860958612091511737159830791459217605838726420821851854745078665679840630605897524626519396994210571916350493672243681644943211976045066967887314434559831229321768384572703892484608969613113882886004810344501880475811764213964884004181258901368095043666430355411740943064077800725244335121312840499876743846898585446537311554553758805300646660189861130019840420980003818943996154777051972925466765089088368677612110664650746546593870259310206362887210624023483628260022936411987035713767761803499171843155817072528002220606270614555791377340663190797416173770326806160524816974267284676313021175328108344584509829396209291781779107839123946816572272975922954586227140423370730907757956231486099248382041479885298616828193771030488170934706003035361669205299493484861825178182947278233203584890376343751284176757845865801805046483204059625916473655740780475843043116032636870276797194198583458158693329192032400356454166357142545045916018581106049189472001910390254138765948509215137749083823791816851170093717531615424822563973623668954395903646568106915459288451378991743923923807689071512420202451569035310281938845781214664958655025181528812398714808014269136759065959981995611413180512134173359565191437473760697494727255729922117446712227066215763703525857655156493477863056819208151414973409705626497199136186347526385188468687887728190635969613499728064596354034969871777311064509850591163260039861472724265194742046008358846497963973733689443938423981954542821769132873933006395879490193955421228264822959184371575495258092978020396897781573190589129767383232319421903503038361079712568560584819602924795181119483453623483172075341869353826319076720593045916845967158779007215806551447982157211034991331258565125576821118883418387870036350369508224637970020874977714409616859104573195006889077521592775507330319837867592108949019941265310012758900258627112831575776804604431202351086356841487367955951412119628428293870471028480879093469319493721713690029162584719674392593572629739729225074015273841547588704091685460673936795585092508728646640750559866546173151784392469922773018325044806635716270079378016572882080471407106554437328658137482852237814904164768459474940873995162859064921873863970381624929383970475164660920624482478642849444447924854292666462024265434030444514191655229051422977442919078045764853670955598039019777590651751438471416244835425325138797954096313038705427498154788709508925086903980311045312825760955617003053389431979448220082543813506523588361387852239114840028107847803211667798562788899265578180558888283538087307031755386786369061958822958720992221677131051353332821732230636745340062246729524063382100665561206300222028645493386031144311885320085516986856592723140335751145395205596949030835395083923892591186648141451679793432761115487087384418207804743730633489423475574148823957889596289448630061792893160237294418457684581805453332653262873816552704586563509787936800645068584394978668367638399499068137922175333384751160315538770712437388216443945693847240643826258306290057847527729711535587208567388901486353315957472182313953738191804118912731886016252582940620668032412882814094343264579916017594757493777160987493187166913251937702902611440228136421872027887016730694225493020751884926607001115228652932993461652022582307847707559174848076354013744973902710611846334275575130991223833193058190721231941325606217811414670610084465622994872682761748028459337574749219973921249907948237654945105690728818038686006308096319477830998495969541774857423346263389363179312880359618724463240387733040171703500142141735010835478499319541969292125509626158439086886985508260766075849175167216395774417774779122007192795128740050869288288694306901186946821230722154785689778881559200718615744450854064342542560530197075995693691876076984647097919721974049218872645592839702141865951402389475049230668883396871669366235511805711678050572468096943542023666882739252961453903087915278156073746327827826149370632149757170636007776638505707431825309578694685976240359905104223030333011654891605176908261928271602491248487442342452517389704674556226195701919193265025464228249405771813820835236845194372036224999553232199170747838436850968349008106939831378517662308572563218327632088899547702330450959546312749708903523610383912943997561429151523617469387627542062834987620806908181620911980393694197263256513181821151644684969809560772630900247844571733273686319962448093793587979967071783192151635150530224983677812521993632193695561368256748312055655448746010979955395091588534153262061505804248194793619634141129449684800542222698663015321118353193642527648678624731631530475021941008827773253496321336225902649483930115645427913801167478558772134563065340033993031300040056279101018251859795214034502320171178547060734778157406797476321562302407980990736191142912341804040956004162989484407557224874202322970477036297803509544731926607463445956232410176304756172916472018496478303817776771787197773946944582617309292288061689959134708789944448777435056939486354123759571194244458292750784978155892794835405970489185238754426852481921414102798412040159442440009799991610336828014313762465547402835012094109571319166806474994832669733314161370864177189981689601032357884117081608017425668121641276304903914874877339990440642639443481107185499733681951662419945946272058922936188431626376830871026881307695877195805482312982388706278316215560989154063035747560469115994908948880341228271881501540445171482542915260405915162280076960700008876853561711395888174233799649197167915147426838770385652461359496041306548405771905923043317028155486454950072723071201591794898837680721235226325257202606633083013713041503029897874993025687851244873730103908409585180786693579904995506278577206390608627621517462764851398932108998146675822415795490618226640989905061848768921773064554463421664663229702268779732629495414926172476006713166479371541086391939743902920964308804805414445768571850287993529058029189779173594025154063744582577131185811326234100067950157123635831059269069167520416609148738251982934246507562891410790140009396694433463364838083266337851210144157180164659707249538153999130441510798669684884999908164582335856176405499655318044832275827248166383701136093143657900306904264467926462003284036416399505044146397372470864598253837192999900305043125796501798298578549775423167171874019768361429863540260004834908719876110468657213291223638360960303422347680643112745417687332442514026251521160598351923642253856165158624598235759630392924293337118867123072368946898389965051158051536844800509230609528136785606937075033370978861166953508267018122532890922819561504805211670143383497104980200029141624057752438147290684863985565596566146650502243061454347651791771482634963492053703478285247947469351141505389756560119369613401628845730045447252305474879781213281281497446254076763187629313434399065062516449212249091095809522694645422385999357440690271259634447725894372349368664692078800274439557278604790490215633833962649073827540920170118231178697926798653528625743108937392493070001376379655114541985426967665869286925574034309877502892933064980187487950726215213768433749043562119321001583207970707580151031818716549697276360117311278006025483715191694209515429150689947246821714645741962544460873291259615956028329321570816523804846676351998950796352306428323567674086829970906374868322130110992326453314499353776133833997446520975687040566932107697607498355342222446482753852985984523931529896465631210689462199481103900186037727658245938995246730231393166055597666888843293040773029375120961691274510092942462081842933209004851708245094605189795346908183794940177422509987685693236845862564312059422557557226672719740691205580026018737605930025536937282160435358538959914958521911955524973487352932468003967450412811264637352976900018839111301018577923826295717229129423006191384308975814443920316032453104827797449101661486489351645588457144881956599512954466748475002383738289067090317402613455934451655644327548385896159453210371642457186423379803267620376421696985040674053438088549063390672862131600271371956925735373000329049559207908320129952402115940002030003257019132857285736012203533998271623956778012364276703872504989558197781004128552127852634928846761339921100732032480113503737334470655238106125110706458144205597689072017873154994468463751344433474895758509852816246372496866578500127006742628869282262145283922869255190416462015202927837393458520549945926367854829781005731842036350150174159340567800592614395484899311531025220079901623056776862188027343655213200510387944829788103677006827858994937734441191170064312496612467745225242262366663416349072306864914337643544664160268666323755371816171428008412856736546201969236354335915595152897611903405153908315861143480742981377548895057455367767769299008395760067166023765812196940833786190465043580283523137858898223634331860427593923770335247389809548012737880084613997142780910947938103610797144784081084821270235314609983146703701087488622936087309296597282957290790372805458976628246643974093017928518566304653643832414106594161931907481337383615381825282828540261697471006421284080273988640868784813868303171239497780761132000845090412187344289705759858576062057448805053783904177531230076175057926966386477541731380884814415553645399094242682758544891278042472250042549470290258151041255868959760276396198845806309985976925633257482150100245370336807720709258363464478528364474621731814998087729021625738818656921227882725469843405400648304047872629446651710269606802440846405089846676702012836901065908928614575271916278961937548197238910165652571027935319418336438645221924397737887447656010197961374033857287951953736573111998665522575179338818648884775739921349305461351073510628701441465464926649074697955903051442367723827202004936528714905889924165811476950703260349223007742844498134690143536174329876236308354281610769783854479182124829178304252302804364242634323646061061420319455133273382309478361170227762716233986875209897008040722635808778204970921662414325280984323966191838499405368529095904190306994763972830726140004875256467593963613033277476341732087428927027906452537153423115905295770979200194835000863470882418809347135659390580120807204174390173820792122861660546546852659963487371713129699807087799571872942101964979525841654113406384483810190538470828103559056858675252386200448369124829261189835486057057365708946568661764977844218926516181531683482156556264808418154064374600842823994841257293586475931998667077068839523395401792557458021451356133130613229308413686393510304382924905294174098996527432940303480249440658968946277536442979164634606907040720856512558742432174719269801933646512911515890280920671670464065465698401074119080045524224414836607990842105472474882742991262782577642265463574685169223063635133218654429674348561304088417258342478956568467425556803729652975373134339958812360799723373993572928263806872490018790195055934246318844948173265193334793503888886309326762219817061960174670259693618335884138217704498959290792814531184914327580976805091392478024828861873049791570616061464400685889985385677210552383434366130256233547049316252456827427942214245409274775322995871930928689722729579441823383569902610023971764014952927713794474644563729493638825080179765265008834287225097896071631148294205922640287086688854865456875154398064717701235389688915830465575369483667365651084170607937845668244015265017279350510428640753747353899003667216624718328383438737387826731818411399306392866534764679297262237776544836725677377981640641326160644322196171385157918336510241403010928050646975485459356658844200038854100548226719185838508255005604088669438719931182189824547823181356519366647096659025958634413120943844357324986169970961611695594335428294380042625529546220268387137922755032097659130959293963555312124925024273240327750144393607195815550968557041467127488701637920916485731201441040197469265826202245555047062247045047601178207583562909838851830984617591826832181971914595899271486856682112295714913316969347938323779164844043875643318261137527088703082571962431694811087847039108533162424637801935593538179242650499609274102377343398000606690178060072387091776110526257593152322653858724052740143551593152214512370762527587533863125858858307258444271063073286712210059696404152127313272679137914997129511731579273037135056954462209981308831579232708773899297570311498019284048308201309740718727166835987036097834369584008595135957772302955475932175497268927046225165280646790817861515865771657931187204816589872193152786645514957020254220925123149925147344750110668613967951527588911089235854502220711003254829386023583980402124520620716636425833313286938601488147572696271379612916650484253414613788952126198076371799250824623591765563933450559519487646783875294512531626042779306685210335260640972120126013858095953950949945139206264525055782923168188976492524511381311862549988279061712708827800735288682183166301154382615799765542152971550304781709275732207103819026536088133467182709277479231569897750475506684411740224578439421319590276440056062427252004378853563469069912273530194534567213019656791324541763306861837462706326944830628135507812178620499523637408187209152750212206547247787114069784657812822844168558266637693237945238838261888603380781866099107991452491962019039425994114148752011009321143772010956258391197292405688857558513506283529456838360324607934986248208759701043414930962736076533932115558621796075497567325038666581661354770498803115850519066729589048214505993071561746909775522240748255416161499103290902858459972283902367178887367543287519101563291260147722638677517575514314646147417422988893679956042025237740652958945062921662211909147617254079680564358303965345358708302101772598251448327652844244715484896353968051599605271990060054559890295267832070662532117672188379498326983633996150327146288916547550596002334775096686623939201962013450192649388640331822409303792622888883047349696510996675968098797085495080593504367305712439416736480272989210643520347179569297508569994403960884411307641758869497875293140658910548194315568967958719164428000828782273851521178230573984010702618656490487572483188570124800466255179475269715274297743260403385488258599876888215078040115626090761724436457745669478007750922769206171194781012466964679262485545165369423861363402999744415985087485540000335413985462916429461712520741695550823808927895399368990351922878360428335569436491448650708552051701389595039079228787017595968747218255851446713203591994134524907651174566940637786678623043355575800665287292266017141541245346906391108769154633305539346929020650445441317427054803031855987046040367066002668090593749959285992586680903452934000898417702472266000761977754083224285617900270805955433326892964003488059066975201020422568877173093703690641840754724918954937266016960474718714758020163122332109387960815114847996873316364018994763008779533560098412282326366844268641025109436706197050743498141817995983611298876152262300592396045135482861529054143194961557222957525308579938132998783726202727086376785266551354868477332232468386748494156267896682275518379768712551175185767639230346755361967820165310415026326954220579674738075526526938849668740739424661274996418654789800903045603987044831551554917700154352745464625414342829979434955484417165823271979841161376137271489721719001555439979103001100629705783335810506995295038985247786810764347786732142329381478695242425147738851003373210870164244300450174555846370527922319790913182509709561299882056388850589888487988316049501966477457059850352150855883903467961595126663631409905400070557271929584350355517422166900131800991642419372336686907221359868646134108409624250221906501647315410282248658545779410495781045830825389165070333044207096015423411510864071444033681016418359144886840161370355057212372242199516395403999605003241182367584471627835529576875018119499488194193172472547163441857482485427020278490569209857824053797306212807377692373266979866083566424241284051381673777721102236321033869312555816531284185102301831122639903436895330779661855047156002274700632800057606495640576702986342134746600024683934916937224214095178905149066820725536609320697367151602911962425555450553903223561727511458675274264497490001978534763750343976522093347519344807569599067959065974782032557115689396001469399214199568660509776520619887149666893087359279098483685145707383182499088935026342191912882851172438893766445707839975798593036589700549243967442576711020486877932712196017821354142328792488445240723952982531934367514709936816188451031220338433873414149283505578351422734752178835886324764756324191988599859047158872988799112533595046953185698333061161534034970802744164965135198999895886648361762715667817290416828775686921669880753975851701162103077775332576047769372593487298014480172380848106079550125095875282937382128522442738322820637205329815120254363284029755051882658846549080978312713833676674046891292240781684560440788298785366275446953256004761368483252024858164380596599393439016205022013464612349622111071185349299788857670962032039701313426478398744731143874782605755564146761980150195352083783350067797738323559366021206670444647617125226459867823137466530186252705307088330818263579173626447160423743029575171290899927896655930205803674938170371953186810914115355825164089763891142187997488234721590387889472680674578131604566085604478769697488719135842300304422979405426418145195259748855580580942053137081089547662146723262182257368347076622861941606796679098001596248719411112006892626343228778944973875005248034033613619915253027591012767889622933953464526244508054312904105142462557873028393223854935279409600835580967330878328345793000568638137702807960019575119403901918952919098284110803245632256084199718198949717884943579510208807845760967502395087445041182167388305120926935869810064083922939118935669627410650060368382410033960269986834104631513961208616717939909591835392266890066768095684252526441558420942340136843899714988092851678925755817077189792294117815976635328820029809209708893464869974823344362554863648748553484554620269057661568001813699793543639174750000327045683245108533756092063588331763790570031483652340659665366865924152037388803506245530840545822249680167047619356458424214515790011012024388699250904211613949204344421118253493200678707271565090096148749018159179771847550041369765996264803440861731346719367915288084903777554505652130676955183641771454946213401617104257478267811416992507823571290902705770271304320788236730431098129080370187805030475913042999088282398273089778025111539179260884831026315557095526010946686621165216694267384901193129265917063506166113508769778590314449117533747769639921263360725027483274508637922876662382387305825881795810335899106977385316925025102189751286496887627866844627234059422593947635063890387996543697595540640638562076412434627748048541512587350155512238785573150144456909591683192258994324405930413028761821695677440428240836891670721008596421358420948250448863463089800490306593403215622746408803430347688798041443281705564128136805323719421670038536937416676342308958885717466263338567062856019313353174997141518455304293809215080306610533863465900968445373871819532047661855933192854483582501127287636230137538546194476487837465563924292179833207968315215232302759522876291779743177813484347693012782814803226875402021567617825554780927546698567516627903300185775276844550400814773022361383813087467621574866171353813681336936061935854901461430352168916476947386027831324287738244894549161612608542106921183478690782883141962822242758633945247107853397292746175303934484519831997963486000339429769766206655128089670061423028713591572461169580781712329052593750188279389314982605945858112721901091759494211749849513710150632406174901055350348271873859359606529037734657301342761743341150268449761964658440967796962208376312046086029614714631237609965372655868948440332596942137653963915658411719970211777358663701686016473631361125704267995318510076452153335720259347352085808445682095080921952355120658885022479593296427569832139957704552886236457920883439377006407766783953295303409808949571552200136914869874874587843213392216178544495628526384120864641440922699666072358604450992542449757992594332764220791187503432544797354644225075234442195266212206092672117263207403203318491061842456562069443954890912351139066567712337685288402424378073860293801728821197170015916106422437666591692028336304762265858888428820428468075148275650665846946211982116130906713754863914956775413808546161635362903825927846446047381385947303996659265594890163821839012747095510205270603058098049730076929693592157749157589275971742006898884387464200007767408369206649328847779966577663228892687206764703031950713871529872692602781621711870594089602465005364739114014980597250754901067051069368330117328511175411241012243532783037928185176273219031016264934368820558845121779510971230292380058433025377683553054387252027578051671383163940863891116459277988842628515126153919805807818141414716045850032725246541696988053949820806371488650537856565035790803412779839564012780827903660945056734016496555332057025678816742776778841789203258976642288719182074245534669481005446365536137866919202484433270041641761867473564858313559189785469622519484395698333941602842321559857021884834761818225496388461892772764670644009217516130102261396506688901389372605666962422942183683295978797160905696853995550470697398982794783628301135714543480921065598296914783363961634251036907759328381576238566119687942932261380668295519057494993594278476283242553052735896043736763566853573021152916908428653798136391119997142419034701437489148827559740715734796916689807041564317440366791924881915223928391968287727122189558910758657716363746528068941970796557472811275142769876282387496112137858354560385871552258132472281214593336599969042963891540909014387612768773811407964832505687029087628090340528315890917062640729555181774756690016471139166391196767357832306261087644030989546695756992510713661138936920346019570511601884970251188920084471169718669136391658413472000882532597019576094868477701516090486343711555221542526559808422312676874450749401239700309758163316252634992689689408281742637456327696285140336011285750697631399419073547541402797158142290744209401828592690411620720324067214405178217109967518602022251854717421210927131902177520925927203582502105969328004240003765872910605655813065967310408860577434008224975539940916164356692813096632806861523214967071172420409334243184487572236032726045391985076427338848219585870938023249878762401310949118630228430125181669172866462063917420606893759772169935969226251375336721238513388654796354249014931970528193700970472573466760686794899172525382082619497444477014524900139448041906773693287539856399486546071301131920446480788917797728192465579245159888647665203545088022452870705832832542461398389123046277412206957921462983634749182751433665091064078204091113365082711116348117788894501301626580388234783339216370578908545161071485033149025288375426662607534196394924160971529891852836735766701207020885147510258848258317462694919147675514202675895511337455443207342984468170067671761938993100417139122659313400579020238280234452958718933548571803950107971293572547941072246429080139687079918516271264662955822691933579917756819589484620092441403106662457825085626793981649816967522821788118742292466666217757812218411404419254225037755767035350717468475426461053014029585953204134261173829197605063751635949145160272150478376303893882123764681723488004035509647939337224056603376996652216686016491046666259992482004483575378768000307165937480431986236567965138330809923321873101416852805164085047745029585707168572365604215306014524180206988123321333724073591576122357737283709239972961338555634464546838066742654281952838013496481738155871153235004558601258492386608314017042373510892277639323458514750243666475570657417787716397089592955202659412456790276651429984283890955493650090619846044719654770184709335429091081202409972892705017928958335078607711163110504207425337721836227078438074779341084739742129391330945239122807128018782473299759067229269028754396230334612761949410929018159206445025323507287446840675794474100425618336263399240526311264964417958422654555893941456503534556320823792485186733804335999076440580351046688551628990794671975953831888050858606832257617423630970706578414358606090305510483624685953820762211186675247716079996408934287060901672027879496211244831349670332671915964558870494393541934759246174871293491893919717066873162151276043536001425869694838195827300238852362371383975914813943006629935040129218457403687434600515932065019609129238187718371872376590645036145681489688371326910281272191768326171914377356557224420986985552111612188085672736714233759904955035690287677738882822382937630101060940968955664145263865155283062480209395890038300312259625014471110995698353981034571827625329786676825660678078775030766297703960142936806722737872739688721183135328167236084049625884267479942114744005921663400779897797396351238263461173080778965875825807276665597260639123996324465942598138096764579056262920618613644706273519762430720632201181902425729232095041758840546974634932234487481177726630009400165268743802026389876307305373847051074353146432003581269300445784991459886272286715029705231258570056852240359582312008997249780052369102476511657110463225538661030018607679375565750879595102099398948775684173733077046003757761160424486131538736776257393014779194637078077548323512944416506396076960722153870304064740108875410264387504580071836541102376830726058741525916441445418088216714571249294909487340888094969902941699795725070910752703280981180954322109379771165534646411131082631593113834384173283170572034933835720749902030048174483155169040618639887087244652330202337004157757123952443024521579565058558023097849347722318374694752789898099861302193723096213758628820817702761522114546439390362409962648972597887125020955181756886845986479619549409295404426814513641476534352660356504796660347307587808423811710033806742815292197617339880368283035842200738293415250590792637404024174765858259462048652726809201350213486638588455731870800914034213040715825815054751176627237317818318458085441155650102180733752283426535404027101536230603113654525349797494904047327395772150380038472592647768856366819510743064300711919252693268730756351153370598362309562548831889068198807757318570013003467165392727979742553129757028574301549148136458873072761859920207470578396050697107870677190268434041621435057095268998989591789661151335605972923717532532448537806327915464808176948948567814402674881520160208235309870537776827750841156839560474482325815276292582113420649389150402289574049181936739242886090172744049716370523151596943484165564825888614285682725454347748482863705698294610368036359169789582319075151429957261783125971788967347650785486678843959408579335940024948332721663228330280923768973324089442223984369833120850328586892223332352790692825354059469421177152722903501630001918733058850235596384002772879123539094761766450342562016108040222663472244618731274328305580253687455401010592140942633046771658775360951238277114709029465710906633241264504721092486259243678552538857961774181694288582810533249540594201627952120712987717825920370466366202514609916329618289966765974547143735506179119526812664025656557284060037396105115183138723017470102259784853788934938149495574262767631719864132632595360256559152374692993777031180863206234676504752037466225314050756329787553455888453309123756756964654727777743330440764386396095873804910733622823591312070941118932372118717125367128572885175786733255631924347454678211043754427454104460211877634981194723753195798758070634533974267105106007300401703574821972799390184454574085736136115012607137603684897817696732994143801507259419241264891018509188838977500754540841921358178452245538820109540666926191318226753849757125864475452755860558698634682990396390479644357304113430382172672036334955417413456025825032978094984651975724117517538608126661332265960860665252483987668652692973378915384242029504475526124331955758237195926185625810386408274770876575894041553855398175950788428693181384203343842656578026099082343222248105044263131319238739896629834349115549723661687924974187341670212235817798518530835490482301851820924700800532738572427041356159437987301349088298353759496409112943776049848574047185001256050228397787651019786033835687644291693478649715998405130375006674234592195588119497289556082749919592171697984824087171005029152015191865237814618574459060281224735988975037953505479187354985102665071975766872993178559138652511283503532997745469710858008066411389967140107983647298840995649351947697681359645709683565407320950037476907706363901074848938862639226198579908607035348472219570259043357713938065005052629805925302435358551609911723793279813135200902668028971314142664535174902463765373770229318847179566151459149009693364210993982396177737639451472720400613080876569031238016246832003643334307891765052305257254150162497890883300206268634842477802410198595269699367020574078320568444996663149202273393445436799788592227257160310034895070181652105816400448624990014434359600601093408955694396057610539986684201090437232936246660460035150694242168787969072965706861593345866771451851277630024656409095193483606331199731072802452579071132218384562713638716085723378682503141599749850419809973831630157114042689391816779173123293241539630463387939866257223593938202750147917962328410551610470700573242860075914789268231170190545792215043830134904972651225262120373838361986600004198089892497801123916864439462492342447204456950547256073572799240050894621150079671090396860567334956567513401763697466248374266914510295708550401434338048166903861984470572775962528507412557095013250185984486909112883445142093249381013724126216386232516145528300245466208421654344835624206655897713820216587925901865503338161480989849059643350727667848136769765341745688446850351033721904339254685021019811395337026894337536474480094921461069301096694842716810410824022090181208702370103409365382747976972480895016161476863911165581885982094319033146919695259309305554593667132734007247084478807107750879415105873191416097868552027169733123775489281393643884617677372269699940696493920318973947193809503506554483165175879114426607484287591954192161815217487294915947698282143065164399990046046937712475230009049975383820488875098387042201502041085585870794747600857046165373135925717435026333566473778812465331061796454630349481879687126803136770146703975475356141651170148342529427423498901698114838237795721982392402599998262887517709080330490929403344541605981627890840901154145973558353573782774253446995729886383714662562722211764072144895085583026466513327809713086778457659844281442556921809615258065759938861009660847001781289388151403808105793469338183196781217868689395241272628231798742493956755109601795583139646325504652752200654551513429976600178915887197756823121073889849463185763525691162648774041734471058401268737342321968128804268359534552282996325580678908222023756064532841858533578897824428723480579218610162541744062661466870773225143301582893085280082079935329817819277477799854865734798375368232598225021757579974102938410060495039018480292377429511833525248807196394026993054273788940518953528908570353068367486251703468819920815781417470494266499238651846422896775917478429719645999864664188088151126093821306896810491349462929219754114104120719136572375491295643852303304656925781853502024926119817301143460562696797242190954871815388260919060163903501204735089933398236375177108162391793585197533336728128477594664414321971409630084500468809324449847768356501362148461777196506070652942747638476701648791731054640682970467496858711854335172052788056536410166568608787359637111240359012828886609494048967296200162726928730591600542806603009781997448327092265672425776760261178094268072674026109466105947412698610877652821664161969307828924262667486047868229253496605271944469625961687795416143365625199277005665180156810371079009540379819593043106177455277440457381739925463213272717524590503412650849586949081824102318855318899775068244270852712469806797599453373303434614862149152208864528665924125143295660995712712155438158871872897644667234693397387936819576101863495897012808919779225028127362819543153753967152866595910576011790242543723480614170384107202921706017656001763910938176032821239269368199049908345124461253268883302153442646748419689526481565054541434544967045456200462304261259564734325715408231158718403897098652914244519398068954292205397032573614886751161519408872853307325202701667866421184790790458167976721947532845027664921235172887572107078549361228096170095129089119756503046963836759254960078358768441641204911119365526440077583423424609114153144834034853364968126736010139156875124043678916445469515313171220682107097837103114067911789853062481592194219632284571564969609945269294392319884615258786042741070384665230967915983711115703661845192807962399591909548199103266242436450094010410125916682527074355000184358094870612431376372321531356016456772776438742345373373886715542223826939050113590064157657245137767980898131364788750591192938550175527740825458246532463963709914033025874771063357816867358396118229754251072140327993478145497917946503580035794142219079866862384292032867447567585526379131335897586275802736380909896134320982341538342383613871798686194036576146054010424420482601961326819271257336190494118058386480738051554208374212819858066440870321216577563915704634018126863526155045643362829753692853056264601156751134450412489737535270197199280919797202455165391679289784941803755275035883885637752219907536112950528996473506709065582721363976960166523747281619693298932934829365849285652050123785819547795219793864373876422265112754479959820609081404577417663160405388858678952174247186747784667793077636951771108026825005419033525201523056229537574462851821681528768555295675795800200132991799288217229801585570992334560773324660977863105870369327072875110665537459624971350907942114905416462841102382221712697291074985611481058416057622992891955704580589489720603559763741501627882078839161415604892413908147861748431791912582214932153459148795396416035901152184593175015926365570191399527536687381037374184822876085329080898445878665780361629465483936347871554342791566608865756620868249548578370124499965609135711277353342175290617341308708667479521190451060649772737877605944649547733522416911250482521889008962100453475214871550278861834097033589897223525250351332811382909163959837558482798817348473655341742928398899872519116157825464407656005864984298060904032002006354638870218762209258562941648627035641925081357637338183238332423014379453909561067630263806108019262714477760195332012202231240057573601699202826047817976438887427832186003296255806651354274169570761195995162984739062319273971337136833799953234922194897919836276421454687506669107189638369783479777548747004221088920953106028738174507901568254233112077132211966617622103267917982886900188107745237006100703064854075758634338404900406525848500140213284474844221765877835817278809425772686792392453833151578538513072719967292958633363597159954012685453408602761069231598382567934602168300164309056210297816790167563205668677479123753576191310718985728112553632160806923275586150563645443119479352665567741639869460685902636237485844491394057620231883944519237622749751938181082091390899610049634289016468287073484244111148926968937231934955163703138739297173136621670386145854092801951890072451118583663600696515069085667292231385956565309753191560179866715509339410657889784777612695013002288077440910859865260806024498810518735060525079923322959743925028030206607486451358271336854446458829370952620651252363203335835401446848513216718433829001157351931429440175252659458773977013308285940723323396397165913804264765377536878591023040552690972674152536675461747784963623008711881152639820621179085552360609471968996047146127022999960421257189755670702527148225134767922888559967805228871860297090446285414788953080961290979505443709223422559202473247081150528819856567165280653315510908527903031057901935458026595624545780212993842497641884062790295415338537576067196464893902727940183413090873595649182260852488808636264474315845989371736975205746195179393229509106451778494220859586894696838838714843620592876897008277396597370428916602937480978092088207097161386704763942651729903583179653765319355985858936736438973578577808508514075488098584334182956765327929969779987631827188504498019946481612308930785111391674668261939301606230908672499400953373942126481651931408305346236740992805920814893816617784929638833742562906205774555774415315835941259333711138520063881085854750640484958998376074336156454126358330640999432869614229419032240676884139496611917212152309459330502381623105739458163139521338757020527458182298597885047514388057569067927685837995175149250812069596970451239713543633901922983760953444965275960543645581154490862731493685052409342903353704996736155628836853683364106119376608012988278447845872311585186839953994764615936442231574704462617015048745203753967730855779426364418163934662207626846134158938156473796126965258642623073427265912455267855921867564688109397571132839295298421167539123920186589504875569300477136792330140940797883559618576557785486304612199027688295059565193588581069842772042187671783604746888099131007819259392790229394494683015740790298337098707414851933267125754563768500888317027399792070166605610312081121231321660601738112315461006877436293613489061872776895390516050150262639468194456244842453402888094182241762789311235665706587891297958452798446159091290594917701681984914014397287379405358794275571210213322078839215917761674786810489257580690115536648210957991046357351699684839253713259678271622976163018054604454002223952696579391891891893483594828840940785981956551153753937123355319421289905689053233945208148351971664658790075271289047962061054018859501896530703399908435821868012288155642833593699059146497212366025151404855691391730912066790071026117531839028687174078495269374347756782681629468987768558124481024884327059926954893292043646659366153947939109876611658738256026807083977072146255669546022811121258745080264095772004847992959238738356449722841446640121279911320472723325890609415750462502929780867914579734334339394332782811534024068164365624560816485938233799553904690972250758190524145809171882164332471008127381156609721727089755708736905158969225277028585290018698002115719169608344461043600366395298746407595856294409206785671078027880762747395914706133943798332555083000229693970353017156721950735484796965087114984871584395700302771869355059075434471869386647005173509340648892872794801938092001470804748665704069684334516652705670265614892937375001974419269442069514034190914259216643565652447244109183208001129545778215636837099643540233546849387201401875263428080335342360139261476993779268413658782656968740954183958407253160337608248826599944164878383412356982305729363424695678353693787539053353197735921417764018334075563342004860162738130754383756890885966084343015570511808401960443213319791125752242341852091427930626710613181847080721592991300426183231786619181899680930722774390848942504697029947990748731057320817115719047501100653168593800007885810209730991122703538611212092443534187566767965819363636516039097402597883124993188750031781485039622516190616602158456874082363214507340783940219665620853518526260193171860807867925561980813207172721303781981541270090666794921107609442986180097077640497090287220910465179324187575364721370365244500942044577227347477453827849755352686933188216972184860282699975857797346010493740354715353364700199071810689636666572075535880906834158478701766040573578676014722894181119754667430017914493417419460097441868142957342519704955752242568375050433532979654847181420958710411451105839850040623111571134874413545735155537132077245257231429286526233615924605927426876867139266142598104418916442420770871232766307862800178221790869890097051831737160023814890279261474076232712596589335162958625458065434182738695188779860166134003580778674332437828259686441876381658963656148841981171374766857530528261336705941029630014140519745221694920459301715115502984000763966397965411635036366223008068309914501177141015341511922850290037011538562185642199621853364416048743108816315036218160856352967374031040700631519390583512870824063033367792145085927574182698636784031860140851008638038701839082735635865575173186029155755516149423035850079735816687263997755971600448946826090028579009055148116897661555201604133624568775296013603277968206329999769409005317825236293771374780525659070349366134064069056604522847495374260063225771438452808311518383195862533903246062961083267949037003820388082746611622605096739587678202429924042385124662776251838420285146468747135584441473096602782969437294927622949914619383730591217293218465864850720991083330202282063572669474631998305660727226163648806328845139831170845279265074969244406850436514214279555929653867531864042841302314871827868798692598435838193119844807299630271793090989315095998588227926681094460972543595187326439007190423878211934494471079256116967363029759298410858739449672788733702203023097560587103506532864205852878866544198668197704073341931431320287079326846398792629195605248348180258601408400457311773026975423141711943089462529846201835296444365043406723933257774115525826372599272205376188209513041966987970941041005190260964823424973919389356974034093444585249113657972332832485166549124882899104884438950065792747364725053549180428654326020222538526819769342693127755201200645815165069591266714977462552945211288249110873028065724033744383374539550475462892278137877935079457087975879742438371298253468536217189430717262993739252016797011168053473250718992168134686507859719756048453908442010019546279636672698768308152357866730153917769774387145009627229235203843815601407807200887104740329415028796538529187391630939861329738316568884879861555079798042872586628159753203562894110236158404509560861527158099541162541330705417678628546128916145204462464545428380816954401297255047708215950244040191909427004506081369257263901233615059635576560857389070546219588965218886577476553900050133181603078044426270762380705769880615398631393977627123784168209876796784371960580001314408221327185465191861588425953161428330133707432049971424414284281622970146107662559867002499542045823708609178346603655585135598674520243326793574163231898251680537039668535895839248260131380491288757117507082357205878147568578899586462090102871375867041462546569559932376926452079162877297492974950574175570952305132069195402115134274427240058248745231384338147084086972724529549988986150096247917215298788199706291864474303681666306277390434391430788605001385303573027093310536220219007856907222771500735003687102865480910672673437883183709816831390050188395719623272031992099156114305103737096425487353619030796615936526541887057547366354064661109647183803692052192297368998430528999959718563667710329011285717406934966204677510150754748876897507890718768452433721292554404802189135488372918205237805350217519271206180847583404060239492687358774332560176969323229120407563483135954567300955314365500191275527551644296043903210871733541793378195479918819533553109483162976058854352436238576117761699010208955050827329166307411790053435271583975759293429159791832316364659681322037338728061585587531617222597073297320145052090517876318355767349822576465622672193789702638452441655868588385104355475929165667933160712164864393870039928841613470807157366606385220550207074596747567230236841727278932234999174005590453120889837279089995017352233482487137020576794438976909995562392224551508490173070264439936375939079215126977831305925942765337884020380066721796842298995906306299560298898586483016289209863643321585154610211177797667835930486317222313365327205079910418705314994171818382078353676471950820035344270638588327058879760851886525693581362014146487813388517725039505749218930069165181954121390210593006599150591505016945063265531773552475536463909473809935997568623625640413183597686661926934580321728297052531156109810031685804597288833249334470754184321975106596895255409311119153044711590823777531318326928797168041657560785552500839619724471402386928985347599787052434819727361462763362994555600118315724440714471908201193473161353032758580730691155488977550950035670247880164815227925889774418532157459089162748394045965353746298482682221088991588290724103217585969295166558087425580748707002858264170363400030111518825459576481838886938061611116811890089093883143470041303270356695682149148948034629917153243135555894546209963440918488837779606117019519852217293323079758864051623739319019859370460994306249955236073462053378285445489799235387692222927317878265984442610665839834975189887395897197098666799752586241192649448655056309348392523910499696763903373821259414454031264261125059666866896953711935430201090961584168199920998997241207104695054148241284716691901221880672389012891393721199198498647839789673592703841429555009592628207067760191586221966723756557502001185080725868109620505916301282755321421449294797755694442832248419993269788962257960117033844146399089623296413692843779749180622967601154663500722828733440097873825611276646272683147861478452083999228892249919855311098700401777645606756029600400867027761895742370076255709921046004295769243186044628452269883283106777698405200650460686706272646794160559642320547905179815369623660000702410393900965386024314666176877771991616986970098053366157283020665482549344520564724418747135978630128993083015374068204848231654279656037317291088403125121244977535048532094444333334824925550098600693780094621367282134025457543195145181618632446712829988960882716049430731974729125214036742043066931199524954287912329840122194936694685600225855314759002409513721055295646490164468201801240967940183434310175649908208727069951154509144502291324408190939057334306195929244589233710670516914260956645276346768061729564640979817349632034621310410669686380668635956965253617648540843937340448650911863252835306682932875605531500686292737127939819315945919512829948108733356465482575422991589705408065011561503290731338110399969698675848220218060828624283042800524636773045344325638468720323477386089251374220501654423470935876674619859021061112122448395532017423238195377580613925447391104506627764620134659782706083571062117020875726542794753483001659799865990702024495849650277931576153559053624543274802668086642427424017565910297996914662805854555685087383563036409847508481168683436133691716275091454034820018575506543976815361544273390605758876686525358561863521149579190836475617838792997573118557102898923319232760857077528060798594478502421034298010912662053830801789825444903561664008893131302320492447398283493205676853318168901425544817555629485307416393524330197962877546906267992227358797965800755731702094507181453048764350161936342317413220999811622670870280853415299926833511360233734552655136640145974769623505451153069340313189055776050131942642873248725400367393584910023448772718178871256589493257649764669407997860324468158938683178434778344868121318594650682503023370459029533121653326787040097519761884056236851418691255072844494198125402976007982361858494993353431244527126210534553583639595898039202761907337325090389561446444607238244165855186555423831433904636065224755189919567096149397860099609989919063819593592756625097764699015101730216471221091224574339861361955644639302813052249532179860251606305418740426537165609145337926488908525954318999907841711645834798023140707293380208434739579420525719920663832833971597455325967029561371627508142698517307957588256700233594587231205889664218437443245209525283089697623317326739753124314135205170150347327651070723102529080761641053225886956550137241446971234338062243359602216290924553483224735612164156921010230365913157808541644458524754271205700706743891006758073098567877844577513183295869036141832864337248262652538845264295782885880711861528420528517964761301997484313597081766668359779878699630502342305389009602827839100275861312402490158055151247088427557822335464614852497762249891999000763991392365027897301618096727887580812577848269975606157078501048993452454114666807628486735028879003299653244801025745870012942688171425734806533620785543555872845742342121850598586326273717056633284631035836336427324510712389139559750586349879496389559219785706868256244113650707027724377489534877165950611071675748427299193597584864095068327626863364352888115772567510218318138342599992356207468625185384921097569211875523108916477086255292809722972891149066187908641272617216203122942839042538463194705210698335326548264312475162573260279634081567902073308506938292917399942016797507471213053932727422164361233588056154162740097338148573632034941263170652253251340792448646353349744750792615368047156771292446563188247421555750801129847083488915860647822608592438468651462408026508913294034674978022829845806231210537211191164720483434285444597205471379648435602180075167255315853703714283790916809412400107632776836729567708870750746902204050878682098263510496800651370425969719595756784264506727216908151402183200617898567398913097931557347868468808067412745273817384628465696217076533769915355477576155049128139078023956580091885856613115654931840303397461027582739178550846448654114273206878718659681360528670120801146808255196973299485726345380172507743554338867251207317122537435671182398336818789625123654334394197925625674772572830829403860554600233835263118920332907904770226854262665220016944289632471750793482578658918779061714007988993047747215429634405068808400052688298000512043258736828058347540682695720218284986651877649822810675861026551004802786137463402208569403557219700061585821901510845138886675216927127136043730639676006693399692291602690049888040957799426665093854598473630928984256560915304811077769163113080336131110219593036087309107173580372418435093765819329886704914972084909391061591099300357204519350002391754860956410177918646325563283389360354742707030296257186060472058156118707592193195949429080871628258790116265401698455812015660363691073794015572332059146155890898368669313944116972431155390394987365163051514054573572827328447566783142945554966309838797247685634888046504613980616687620958552069678799546356413954131232684581420891170801126135140910076412126153724013871090847930128679609610169815861072251885759165683890529316124538270665401296703199144126489619092103139315578815905088165082632209479784639191488723772823369538104024532655740748929292901890015135650473205977545220665012983115542043129635955350177285667101417408832233213042689150436832141374105147893147393952346296078204973405613268002454237356915002869263564985368845713269139309568281611276246288830419127985758430897313026794385465269533993313447878771517996185846226207861354302999732925489242946047899780155190873918571811336155406032132463776716947498456017421182267779532305253106143265368974675942492206762518411069697257374408350797283696972641978474856201870127509279957467435652743418880704928622493032851286345221759001929004423078041928211696961230834051228119290794855398933391336811090622484521293970150471561755392811493330722746089791033799835947243083397107401651336623189481200027299060673079139784821371986578437476702971290731657280647323011051730338942398565448514778235300438396178430214927670472948978199591932992247477130551082035831764718293021949921549083635849482670250793682683105116662741698308375565789334094550215127975381533606470799471192248134956206034253755327272627353488785317941380523664429557346535351878105810800317077115739670792353523028566236802954722536776977959749885475755221147848464649307572126348944771784873544808695032706864814400486170886869870341737901430055933627897640058584046542466127480149397063729126694372750407063897635130233112838871373940994814856689273230315952504154774183898080140915210960971884509640787942067042920258102377921526940052634186802517383577896948853745558005007734739655764190051121876089038765946495827435116821033767244307109923024805245130982427707593396238145076137273682720305897544312637829277922605573942931289448655023260630364743687407875160579384456465165505613855078601628910446271773267740139207432936317552490000968523234751289132257617393183821438332690015369527698720458276963531106356517767668170799250921477791906032895203238529028212166066246215868569368446131960058563853126466214650237874354051585474708072778187443230523615399455456398549151515664791467797155305588111169888087307967102852823960417577580964903646932240776533870013214775442405714869140955693851639839438340985021812019809896872269145396271738016455377417738883631409675480383912096053617437029541229385044085248890286532132572529971092077294057708056143763456240569584507613366299273671834098892339116333441714733135764524675899675151061394718127961711905923796300231859891261024418815380458324644842527121902068754957625168781310311383565597421281115519513829156416634841933605227668001237876102734838632134500386865822781769371877404414759947786750727731873908567025702753627111557156948539244631095699350249332460789471980082705476479644403839331254069038846117851983004940729817976273435491136236074472997950337024013650277052656952389332116130799227730065634672358466292807833523567722740634568048091718104907092642375348913931531173090724985717176239543069746705957752119514314824558610921799426204798016437436868592780792672906303953102550230088058070594387599739319345485855144848134123393596642883223208206651535897043526460659196402662498034309817233713189328532921688189120340221368195889562504525660674233272983774046386747236283578999213723594216498190718522537902581063740861927317269808548004363981720719528292978265731495716688450154489551255987453049744725291153583696414608105663358945097084465334165979134529018276839626056337728637686080146134025594914227591123403167203997958411503117930051894844056044771367442957484429272405775675531014424216492872415515282410181348321226004546855192944527194220643118221764565051016956370459264655053947242254428573650264054753666253389544766492426461311065922511756456422221323880409684635227800863902169023454467876277251960880849758926315451185833318937002246059834458184732602780083443364718902150852773541110081191702410597415448785340941537390666670616961815198082304121388825343183005358212826649643249199393935989806090457750692860094731183349793381811982632375105990454275817329283802001865917389817789949358771005455183533886348420148180532726598880162317006322816623825049555220888751018905396141405128687509483267399154149055738699101016345090504023774420367877063002959578018402065510465012797461933919267872425599000851682265790712286016760777215200540807279433045213740916416067276553137276855600803778406696518673750194122417288360775842821165191536888669336806886437897904923497281251421813136389622475142621509229382288167520787634971962241993070704058936762628842531584050605745915561775566614266282547531388550156179189958335405865836159975046029940703377613626113788602617445434605231267333237469808264891202238151025980403521815109441048905643466443847157891769575843508608907681181543311289719121092468686520678208159020974697427358482831515798224685879459740821468261940812777894989689002180870420743146182411669315159615731608305563421072834441779962099351049413809469519843198539026461007961452173179425684555264460599429221823759462512073564473766460224820378734935232162902053275033461011117216414503199132611453649738272253870608738673248439502551180171666164387783522946744958345438516386554113614866497680497486647611119665909396939156087025530724081577087879908871284519078900459031099130394144231020091203508714140526242347630916663512254269772406892545712382761037976505326672537612549648442814386116223696131975382997210582329067313979912833733434437420833902971653310941826807368127235911145217075677357510278951303141790691061980749834205263938797413525126916257792850597332443058377288346174568870610376739233290185523813680608136948759627782183125757215031346489586540850546612964804761125458008736286575461552490764628407179124174102016774110506718735501365921966906103236465059247744971719351897932693575489228438908088605263634074206605307487106266021406792225306631364152794145240446750966416219757622127180352377566986760232172954008047791112932001009713758187744081882967827618968465955481901136415171866136688133158661597349213686273168989460208272929979459884888058762695396879950588257960434670421046544915633223286971859524157186995755465545110536850190434391189648595302138778453550528578494908650613677218799170938066348869885666608408594134956394448243519535827728110686240937632289632453744571343126452163874412981962886260278140350477666253605238320104281987264446088839814006568551948557012507879918236673414319379495135959622499950329929220523413134542833584702966180991168627192095589190749482318869977786087157064692541268427849152735211073496152271088004056960461782109990020235405286044882527702070903859082167276813179042670997891967038543982319201860493132152396651167918105640639086029102973384533517981205035593320589790077099692323447177890389961147396982900921004718674637489005210143459768759465690366413550634748931846603165626344220489856664694068315593588745206397830740343420251977603445437084907902939332984747979502551995584889806004591110147722653903681437805844613524963470579728943671712163797571341435941647542221482425297631525883085653667494161141913495241965272168180659795516353145427200869096347527831578660869108527605458949670059994779938338628943875588953472321803414868530403247018242149513243525715948611155190699728278988222626299925904710873083646935970941483765722222414631344790575437400862663463474798717487367230579210566400758057753159132122099903118816546331148049874524794739541957833443453226569281579107920738352181897240833336440715852338536729862410667168574919101646432531622097392052604384180336723388637856211350743075356860428691553393530399663481508762867213484592150092705974263388183419101570879010499239317528417603490401390074304769141793826545167215315186521818765504455987968604121442208396864912456136698762932988641688075399712144716351863118833462223383562789286324045326576740204962271390222926741011153172780903278126664585115544978006886962896996659229349063343663121435151828420243786373715402863869506911946203413239653769122223395830651096944580171683845169702732331967607766838963591123048022654986170815298229325139016104654243557229263604751865222268568470317864211498931558754347162449763383645164346650271208243451863615240648115034958165065284616284366553385554411717668531982311185817129764568901591528674865069795380298518218220382758008325432753660423522932587528038914564219138234286521883788016729209537627236317063140546895748846039451754452976895051763461478344026222850204123462193530401915273139169697389625436105930911705735550146665969895105293993405355464627608704969958883256039671964032462403007824188767317437235329895860209757584181640398375804770859732823363435601208366321390553488732521030530636714247360444316005692843677015082052526746461819207752570035429656111464885079956863192033495294346220028140585299035214702950102536136592308728288004528839227487195445698836828771662209976477195307953203657482726573991466959074336500287744926215692000346548696326827594692996293301347263625523936736679654464100602003667980534140470822957513476353615781575876515529917823532967961468455017132494637983005581128238332891483316722947485642300570218293492990969353577850912042824869174263492451961621902354935484058301748681165823659539282282929099101468200015424467350013748791402293405179406683155921701689923921712377485873325293346213981380397936163858068863052498160211456424357560095638242810452290292607241129904373170037180851136534702927332638250801500802573597001114043780191223670318709038603644498444240139722106732687545276955789093777042287367580858315776247213190701195515628943227851153306981860482845153946509538967784446680408270230497347506125571880752929923830397005882395607428290233064623282056896891782272751199831431563562833965715179207012227068537296021616136216947989579370722931496866284570766444380358512469730685774517328610463819819634715566027913151626253910381094614790990719505016396930579827331572354113459321116528449582028050070550070216837247203369871789183711812361528426183051076220665232700699997705149226570058939353929518763241186441460465999258517754893476009549467001030947521859867775590030606332596489432528948684140388790586819858937300098271204803252116581754881403756163399767183311284143524917223055468795934349953121067796684205978025201852436971662134837028474990409208828905345141070812462379372489355251708404244223058235283681381065016615852305218751732812232051772620284231463474573667849785352237677432874407561490110154914446756215124344699146472957566914054937474354906436841102931813759555352753045184314771961675462833101940675422508901703416929739222346890212030657609919985367207733440221343744368244408184821918296801178751417059294332081954475069796284530649141754702158395170596326534981889369496781534015387483144031861374211564420840751821124238942905244089605232959059572886403224235704325050475149561627991775399528706748570383643199653434611390041227752099848018497391765706210922793207096742274907676723490654564962234895904677286784536770994592275558194181193979643591812554161310221466946745975443919876799737235141325132303577946715608726514292753066040554261122778393659128987852195739336781463360720327294758683174383230391353895836582886032292680327368354791360658984038189845248508218958820695200127594393312256777842697762061748705198452562496768568520061690859579510016538346070553444507571831899648240284799540637085588051182062780175705278328327076690232560054529703055823705818871149920281760824643882546635198325714030560207345771850855402443323152391185430640128127091061949554617430031913653905499880161931168630902117813506633502937362372110177669902708614837144868795640909803979193083044657821513558021731475066933618390460305730267609566484792865290341781117020797998835581213984444418285915572540656409755238508508755779302388819520538452560917853885118844490572515571461246608661108696062615543841263307178989438398198485090229803913777578310069665779079840430155904950945303636947265154125797547910223262934480993565733733967485295524591395356276355356550688721782046499023004296983084557168072855066139779047480404326826733879549436873707788104171830001630561980278280388770643649445803574437222927871676201746909091386125900159155440379686380490135624819064986279182857352962312671335639089745482340542575598548344716365640731066942098441222324817625827322395503713453223802422261912935354378561685136922162068890506562462407955794320829487036738349824423475805453757225807448723524389572481883891121131843334317690535190159373726109485298589913318770875249068258649767609626724507012775769864165470932434563754405404110249163784051292288861059004913038745013705815901707702005380502600918239409619566448478699931829502395471182254284943754871812097098190203238496663837382553260158604903438669840104729241188038865237199007590182396053267656720437530498553679511345282056022524017511135406748037876118774907699995270924270076922403785546526742985505381932401157183363143608840539020342089831888405606535628324494306450022175093879355330439085715053640175770082832246652812025540607763789893907507882125553947373671717240228261622439806668066665379322884334096667152419138348212644837579470322342296627310137172036926373425429523737691583627302814410592151025627160937580579237280294288252070363200966450177381649787877386872432596183740755132246575386358830229906441385115653647741975982379383669901677257611026223956698517843699890030922423855492442299542903275878261036203989426531880453312692678472866441875541537354350202039314489943340233414675300487765601163316421949251822718013069507858798346665328830327521086890976120632748082513267734743374981402398001272916531285813385951126808095344906528067966179139202067903399501310084567812024471871011011048979463466073764441682346345461995132206939384624083206961797788561078682280850868669312862909462952939015492547421872616839125348237202543410754540644475686386917831743477965724534262042533030667184311366146765636711406580531535788850042719583971528120201844805448248399763196396077762669923565574317460852608040527353764614653836101690937149948172182089656783133515811896080983017460755995873351681973403756517334209271142884137561469005384837832080260328171755038937774911354519403959721557601453964526873195589160414985006647303122842968184520788980317556260320301303682318399552358639254636045298908928858231440542113834351462280828765202982555857211481593583485487295342809740053754327625773706492609415146536901372467992333952446616373267167448015160628744119496841089917588411048573630461128683301421776493384728429386784044981770811163207846952550674780729056610089170443703196399787521169567040023027491960527684575131999569297313214966065782768955419806311135978697413520892309450827817354628068309976149769131513551632662888077505610015142610165462911542053961327912517747181459858281996651675029062194370337219373092146699251891042520938058863279046212035251781939811418123336514500833396237478894652307386264059457726735228760880869773070322319830064466425953515989298418412814734761239567610352896630952600885688274858525309929024676357867811564687851916088595564720013542328815904768360860267501013445898192921924559039598304837778423109196074600512156647042934441700703932136026351587288193328872516439186287431342393222493927864425484158845352592711491921903866535119761417890350945931401490261958447960710822514331427429653902825267219509242066438822097193802961422021793244014750137341144542131362681237720588723094706536286423396444368324291016261407781340071993392577031594049601028426693822324968612908636677859194343167304503843670535334132607406522225274571354778827548241157236246913643393566925650628402074936542573567097931612077999459085433141171652195558539760950742618590986686723333792268627516006745400173058479332788770215091266525896163799305758952500453826653246411057430928548093007871755464874807233688312145337246692940043938532682091504642624625633877291059549249030463934912189503153260013996129104984001695636885676118058768249307348882014162802895943657852423786178412814370358538079261115901914628786313408647991618205000838142135215794808613353768300540066225271344949159812135215073004222552136501957441517155785982160733098183435307408421812340968546599872355902583904908257730572590836294140779748877605711721436744346653265244469399254741071793057927660692597461914811033503450111427569993609377651023007795567810809641402465832107471717064647865994220110845123644033900397146585051050243791241937041158033529006819498899834659151013963708720258356709077166239752000010605173773048900592172422622498248603941957251501269628403033408283449407171466572364530198629467022291123153899233413547879515242127700062257533160602498974261594067130735631446994597124996777958969208497492098478827663840661827815721557990841820415983895116700636614560711705070191149478360355895878100765033521336840838159251346799244776058410775932399383372204192791053142711544577709048114353133701537607155704330805498315371564622803532561314630670576765375841482600980163194229902462724338479068608945959423179265062598327563712332779435445074188138235214089299544418170343921404988425989719788158673773774288268024705846032555527430636122108778455405858641074340352907176585885155797952169034818781277739311922066516209538918130581168146424866717493201773563285597500759826144995876747028919598557908109651841275516986204571176031724739776210891336256819684266967792903936803481417717025635544737212410891283599046582145272711193933560836172158299178697223396741738601851456504312918379624433053789738747240138551751363078066959411520291696466313965238294763009193362007533828555294789733356272084421660487066588510583677395473267822327554323735843508685349665630730904522003818732619874697833938014637252103073894128457106374246395120064285467632651991691749610509184674591832149376519482736638044436070694485926973897597512080708419952015278324241049290339302820252173503399220873752817186201744472697220643907161334929561296157882791832514413178467715160983634447524126211736018677040369674686920808084045659006915591256494429726449941118865815725698578221766254002026523794163064092022071567868075757641600918455093793333094124179940510758930217997378695625158823959200860431836168970723422799148131793581616729487670813599512760774440819216976239928587495027429042147562473864509097522865772502940416763509259407982754065662610133358161477120711024280330692415441174494682260218685859770734773423026182020518593307835977351182627471804637257942732837900753966664017248537698685921396874550245884247616261376911075117705199749483442547133092578471034554979050210490046799615166704918731709985506526910630506494270884650808049971736641973468913100770352542575077398523353487656570788572117541004463399432103473487218039325403560763507630877969251717944652384506361656288158388565999423682007999714747551699914230958649135777355715734422366052289386474891694181950060635529293033377465081866658921069563449643859193462127427266343873664036837390411553528499305883344760956650767620717296639491698863741789145808642086549384910524044108987067423631756328251287811398122492777725941541511924164071167354039257697204383815326687848546008335468466614083893183120195972313961418640450386725468823490078764147391638401156549391745889308876913619979975977615377409720324941730006091435515027418009886586050457315776790451891847899770316286991549949853189165680975108086999149188821136866957006024452967901571861355110064449469333786106370952932574404948638045786913275892092390987663287232744071698430119575236697090361845577661596288690001619557044684330682606248703371369618524998596323242306565114154251044989745000262353094967044209838211425260455999395487024976318363003964062739893928175970680499175180128700020320678334913090340838800241662614809891069595698117056121366495015991763022947328617230275497705508356912784036810394177743191399210171130582252666767185988961197104336160686956652291834468933042184679251763387493592719869912838514401743548254124869433360464554982589589519187746522942129938254029938863899806905211796137716323320641234178429462397570505789146619801340484016670886914082646711489086199886744762426678566653670361970606055911461274761254792578708588273879625883913247271586675058754138242951477321010179600649756725568090240831816013274833087287249162152423508958170542599881621540957759355703120811196056346061758865926359950717998404063928488272214508369582431825434430299140667212873508688931268149174046000969404598655606585900215599612366254943883978556570026718751627771015097326845271838420579175581220428136024164748684818524703379014688264074347822364848244205054938065817777475011014042028365999053427508053356306979701397494669063890258633446678820724068258483858483750365199266820291406325821131204566100678501419804867220950328150440002922624810961384748295220971491440359119543792815117766294990055011211090909354789262607587958310371147139348553770656106629825228588646612747458398534061006966664786528508903172667928779936764217796462924129254695572424536075655199781506797600302818622974496753209755641318904726110826738884117432872360478697175672352987423929908276290391796443556444200023762128819360222278474102139488956369176923300160616454213462249959115746508442287808172941058066321390864928086335599890527326327215791140603725955687693586141774439998965934991831068506470372605150951496170327048468045524989620049102464021607539785416648004071673007935445546249412714055353893969782351434672204757396871863479779237770978432381408780662479313932128938309775056634573254238417602480100404912214685790191467324928809910997112282289496311180608339665600186807146420771989308101998718187650880321155277606745502606888501223620728374723045828514806997030096560614281462324259242897277102099114958734475787379671802229857514639923915244666310496830995566814628914467845665287655980444168758118008408334090681597106197553491885381145766694371563653767762170394920621528795322416559600775318683212877426496599882651201042983839341425408503046178687083526418177452009078261656029268112995935258911075917039882485609533639268390343691457374763623396512522717668398343475591060432346637216027412372951148143679669512717099733178982482656045865104669132689533798725516547498451423981205430935654157731885760845986321642493033031683859880651337553678166778835864515410197897771190680909234688676572831170713531692041542046299049653708358482469099989134854727394875673868913707915942566766223649611302891092933714224787052122464586794425886508524954222309236658747395365177692225819795759776658149078629121832277269275879053486240486793609048988177271202016493125525169148325736379959774510467379578652769761823282046294852354858669778495646887511900508179931864636037637051838973527318380123542643953772979709858517184328823349952909218822226458005573654776000515658593996008401739048447110009981308278078552489117755443708579881646756419516750594869825044018379202717155469911623062954493147016929075710925550839507332064631840640761347889923878458066380382633473665324346299087984259524776297334903780274004827649467302131000780558362150941457644974677414190063016814136815539503802532160259540372800090177818660513262199491549754455285536631449659381973923891309002469315749320589351269575425978203922542085356395600664588542127464317126411758635638167926344102092187692460600441415355991398396943200024101396419912603655247331160445024746473379940840113368126184518987791225241288605631329319954877761999939098966260797349175115276325497108630848120650131043180026046201667839958256484763901495583181252376216160585715944102342696520390989056067230370278250057663320244016336275690247241565858923881950965495036432185169710484580034666828001438115667913398039753584621940164454265329022629376242090459855819630354374063095868060504289564829854877041235804303872778931548329410598608369649447019195519891641716218178811012528630123210956988497520134235350720875166919736207592198288868234438180412522818008926064166511525769977144119843323362856654977310489241103657199856061070854332404517985666965199239070160320287560479746805722022693280059872693304154245273231912941196624110540806469829947494235333968095836144518215896704965616105758805230504540603196653803617102214784990441600553287440569047512059173319671469439359694365311208798683932323869508696742224600253188434115740965353230138788803715817792537162027549298481963139826865543547759433521588522674694597737091131889258249819256049519397304777758406683688971777218408503427069420997678837847807821482719552593188653989142914729023170653289704129910856110912158278489193995374796567042758399415635965739065625429959947736300884742590133518625511599311198690820504135444267388805953655703541499394118740304458202809617196795873131373708709162231238453318937935057279672179578672359737070902587570418424594403514774826014910426707348419237353065103315080114489136948393715175869588874510792157615906833289795801998212479542466254080019684992025480954886120167755583219153948822690499018091167093782234807050766627012628123189238284197191597120467400784944462379100555649117795523957495478390033879675624910131088933507008350565637065587364273247003095725821057537468045558579999318537863114490433758719236311930280168090560184093127286774099220067045744830784644099538213892864739117783621568325919648044782543809031789142443871420098183528502772245156507818433564560676907780918199776508832800770730077564507940278276145183632383429598141452613687067052983836716714102008194437742751828331246975985085947750919579970830427420642707964029651562182325486375326244047774174687600096215256225085754450194011619094369578495962396114647270354372542034181740327927267073400054678290239444378009806113614442585269075882733527907373715946918275932600261569814537607368867411143647720284069354899266260559980767325880049586097368427996278151157274633215869052205151722396830509770886667463167658208953311666968539822193364303568931030635384035059739798905167882576438739182354909904075043404763268339566560322898918183600279189445260926024129871771378251318182029370080024304941504630624805790353150335520033058522441147597422254640521962548298569478468750833869258220298339687472728209737731679077279494128936792545290070857905451106338340677745219573318230663399530497885505554385859915344437445443948105036197999872365970403530070523764146424926133877930804688784683556142795695214237405035076897155819458178271941465208820890004957855973123085738261586153962157966047287884922731385421854524230998439882236969365930510328361206372461994165899991573792689459346676767972638531918944386204109866403545157585578946286218738216627406653637374856934504988465236141087290281086474001267121712665367808995580786916738494165537490246624112115916918403642124672342551075104044124336297613328889996408214377259443664321592663371176809415385767671232800608722652770551338836592351436982688106236846830913350857496376964410950233281065778156614827935190495726747514724981758899499292682399272813960023465413164111301804607842040992186439749829954783779647309616792568240493396928537533626856780221788617805958165027729482801029431174813525174987355162560672309880213327677127749686551928291428058829443575950495343300808495071661923064681263180442336166585370163699638161829895531290948327060701489843241224146082595299088392389529928693120352130756433982541150112495236643846119987389177951246251429660527358320128200128194740179795584945265496265822415181273942634779078132001775746390446387294289847434242307109677408365910059634303714995507383213465421493376489029910449822732529957985816253152244362564711519642865742866685679092337613247679758678083883877459069295398015663098482740972360332413981816818547574723657669911337737764087180425754999701834130502526232667335708029653040046064908827643011878785775043487787006890490284498099876900810645614330969122109964026830435912919786696842823560459459027183510092543563861364811012881190829067132118144457699765998171650326956508652992563536260281908712929977410827482990905942525234691251929796920063706813718785230202181376208464464795510529309650314252331532435244581702140569045490503256845648525437821188953709584608677889360711575293706990173257443563844837523684275302997525741856591764621905407794605488913297195254890171345939991336379423051637875046386933285596014188100910817959244861529466775318806067158326649629311748366684419870911033486275702193511924541296181146441545091783373815150658986713829711734532293320849574102045429939285689226128018889669396697531096063636292055323053829057810944318966681386349164353368605438633414134207792470990934111420250822363159853005092795410900911603768202162083056727798440320850731967197013403055503002828215846164253013609491942679739339332604468113001308625185416759215644326003997889498549980460422541911632777428783492595113764410641530367167465947695594044452138306414863281928744697787441747955894585953346260438299119617957566802214240508645886009769847297552373144210385929453334079465370153355463829477936248773640318649974136600878153214811655406343090860750949098222175804828635220565520487922106884365842457093730613771365247622191062176765679745176836357546203095618466300103081050118042022750254108131683432113738304652027617858770017412024769054504998538399235539602661889680282170951239975571760151656021081934151529844800102056558909034955770395497331345589862581678297343658642553490604339090244398867680409999156948542912312850882905722785916901974537460824125666834493170995500877691114441712781510088957065331562763779270267601472190165558454599664386762176085158334540801449477679758658922122720193475341894872412452922868756026423543843200675894504793123258670994666755103937340865102419415693625184766156644628083617371878341631246213924945396485439576652197791948896723204640899394425608674543094441883630752461433725912583669158997019835753760759672417420080246978944848177772502469062796404352432197201137205899896124887721461872319769150667985909292923888554342296244082190022712625979272982664421775699267581030494338865290584984577354630320802637616301139705282637888464251472970019114442281496589630784715622639904421580680681614537932722600955871472598807335498463002484577230207967042741883174873376376379270461049009264772684473784252474838615550295999639154517269600625359530372632440155650961526267048886556889122443811290921109689360802668444491644052062602676441599839088091521591650535425631875244189333923226554356276813476236670000173798441927454554073053618666582283077969451430798206279438851297844237065082423090000628443522802759762831756441886044428618975499846992109064044004335462837566892488427996950227396430498854343982145777098681051094432213701044155392786757595070069536954357439108662543380213497187929391620342497299181723327375785631067284016907043178814054324528693262673213118467285474284226716164299225977084625112636980729341128821007880566827434144630541486284247240459162112275431618201647521644621847029501107096285345282546120205170464165714399300899917214233710965148778767814852936974315913855008232140562773857634436323154633888534084993132074373288940815834093892911028058030384933446599089957367145757080215874102605374413376104260399772767015708019361442345243905159204424800738148649422521846381366895263392917074806911343047607768593559536281306877148424899220307157363560485145895938924629156095858285315476335045395099685519282224875016774915279195125092485499157685399295407308447248543561039244975843923144038525689563196884085307310171977575635048944275651492577603078919963704689693363230686314922725018712064135692107173301831791861373314364558546747734784947096726377716705146865951862389909434780257693206992472711840466316647158058739609855808837897636263540014096312608406702392665968179037428644466253542146975851383104259328348825909626038678716967922815161916750937844354995912594870577017617818648713010439623316752977600438796658601199920995927078691276477816816698508792486284475883211675803772909142351988707711531580435274328834774035179617864599977602430314566376131044048649346491953361224800011409932478175104883320034738299931610205322758096613536112077000142109042469814787230861233661814744173718972352896316423971213386573691493556994460993881913643502559272698721008253636128198631118990183415129803800148248534673997900025561906414917388060153422425470902076265665199582626000758269976686280091534317210343592686455176011743290072586740467559983226081944009145854413232419488025081152450491861970379951652647290680819830541460716849264593006320398829651478900522091765033751621858874941086114574660426922068475408800746873550737579454912413267676200556681479735274826752442511947673115678734869848151613120334973856186640826399882708270453418052206880629980826513400235807592363432490802367342866381926553476619002582331832127551640543581264777523314617885080926705442664993319099650448372878554847449374195033495529559756063644238134689653545209918175814103282235855620679790518692146343695795098202216586795083367620463491779856799754304453018319354350491674806355736248045108003943707838358538911128720496866372120199165903758581601580399253498936122464321255542923028839485021595774006750169450159846176069595159358473086742400376912791980368745518024444367231606145581113876851637111560044220693206344311843722639653061850306390819501933144209464662253666739091660782246182591526457669225774730560705948386699077120602653165666482002257106110919792880241808252665692781525392523787639375818696439432714843861801189295960093129465971908516786429406491530103018613970227348263451173092769550334720092587619745151794553738910672547155818396334082917835961460014360457046537075368411433472251147971237419737194575389642195967728578874798966610541977960647716577914026419915018657617229406648452263935079568063151574801807749461948941583683753024194179676895071742324429047232667143119793676653980380217836967803151245601661417395038512045677908612164035500231945408959739039096031285511288727213249643485373330740964808202364361563675653197824047231292048855772276025031822016360882629521677734781511392292395214318322691296360193126220358851668348251653781484964714675409008393432500642691188807094541639302634201312880989643791883154802417338224846670213257414525013312211559225724454789028562696144146567217036617201896026138438611151360814368331501075524190646124368653207956992426070093903008523752112292467310169272255412104112873409728431245193609379423358272028678621804151365180539765447640079517465841231898965384826518351734769470636397455548181877296434431323930033930175853556599157610223095914091203444653218659115804302843784530707532756113194750291583346780618961851026107077502407581461487269197409301548919172909722170511935275248983300028511853693341535320341548505436661899622801901482543937779838206090540776726433183772851125992011987028219815282731518878929408407102254699022088933606641036513053124602077527646937022066905158580745293143074966011154936903680169877078415578171060275690092123277259568533712387755764670941922361516619254989075770137020554067082620785603837818267256732326196070350205158049457032356775625462469066441736295658032141083857414483145563025588259439957209850669351882242749063833218500665680488104276868446459386956750059255278697157605798614738828546549199344358249540058543144633246616164348123495772224785951161413557815206237332406907023843817911505424511817011211488884925496510187689801598646485674153791896963839736016635324485696079054441329313388894396147638260630309713636373367999886026425752305392084667624198991223835461015881889747209171606096441402614008990624008784925344072532041519820414569773252548735095073504000983969367451743145351043068188902332340272680912788246906045701835608568270546785749489323940156266546172642891873489269141202376325818097479047450109316716822072131167080576467311375639195070709128356447912188277008938430694713671894742378996348074943109843492471838682083920571796429471280472926458345203872305780381798887391647313925290954903807366480492349658335624675404055860178424541722239879019935572534103548344111077347470985140723888444487077668633792213211300918472920638674136301034140247596450949991701055387883942227471230176822003909406959680153982549614709773089951792832350238310183500317214953630890722306756293444912893084252597250271543944216238528565060974260124128704943072305615603265419690688346207082131606256272952622579051847074780655760028861086180906882054701635426214941521854377239501887343509843362425500832698272330970484679872842166952697135808299775907241801192563703109721989835245564999334595783944581330422280835828841711480911534586950144792646216671393446177425030953974411902079964876716610933000424146637424360933825797138153307796235785911853414313200003466219434156588628446343197584110644188876342678981205679858022012291537605866706520545339595602023971958953804142018860130500234305496740026971569388603599607261447569441855579562352665229203355569680316388449962180351562781432305220595172490262526129436054295067721497463184455776983865923740627159996736851095157148592763912358139390870380329915107990113801792359989740459579856786523979013097525048476438757589630215853587218584310193367935027435605532496960799238355437058453293580050019597850488513598418090614568694314426002381004461765618277687368720964705927121502753907967620510689214097338889766756931494108261825020893570576436437945457231787167985681660111706252155594757980977827842830107698916065053134991831813317436910163983423145887042930418881456312686534907997988015292955998591323151218563351081097095169752833780617687056841263206023376332801103588651264590483418420521269780203292237051650921859147985918762283491966195587870850142282611433884530453421633455632639325554346854836817811420408061088417995440729899476120604813858069799803359168642520112833002077123899687072230435929823563340818321960058630427950901257288243710303356599550440291192024595953972908464595481185878113100638073348075621854838140445238185804996875805578187563531272331615165089125028828822970903662768508557867118311135464852293027735005977351688759840729335613867165506825575982193764045929493232008883699612662022493813031634939038807079456367570491551520194104211947964290409946816982580998126660115700736576032803199701887712509401032330660706369559965119715676487493247785286904856522632900530510848013432679505760746360180030497965427452690861745927603488691207783402313763991786495729473531154353522477063400037623318949136148736282399292110706121920406955826479677529879469041778029750265682541722969278469012513318204800683850358934655539364342409881241636750495054071708328472059780075779103333604451642131824869635408242342534550286976761473597572085586802267468288596231616889484321375828456114767397241553534020751105707978895954712178764289460479279529921915304273210830345699819437222497965235673780255687984186761054469695432418114079588705277809094604751455640620854988319211741045412293457347443515041096313002277477142917209587932386302674191137109441257199288343916770780578404619325751588435524358992556914407752174305641357908488601640182085721983481737239428992977014124071802263233655853131232701088412193824797623041867909906690253012497431023879253556290695411207901453969694103465399030882942104538914393683025389930414047113801163667806447999074117802976055857753363468418867380405519571135857886303230822874380346046568544340576187464519466102446287486961405647489900106475665913146386745279741503082137308547566495636004742677691942469583711280683961951478077927500949789455460624067436287974407938425731215494283113198180490617743815271648293480859574271753739638866745789093210721949091767206424310698517498042843425067527611748740579501161736649318943244052923323012105313507162614772893746266144834382552306446692691103205178886130324135382991575864331707269461249007033972854184380673547684763695629433675072679519690273610019117105687916632729082527416572011584612916392477768493318090977634940552271721352562817048527640269442405216971679200010554010461696905526883196143603327269193581747683906528637913601001429495584120901894494210645118539983486982692303646693993795533784614014482559956253745845881970614493671918229838944080925332173799004353298010402297799622525777397056313441526050011344902247607235726391575284223631094638579673303568612057884488074555082988422493964855650773983214493712403051251788222430058266756857373895348693569853330212596812464202516357361108073090762538740367437941567235810048244080337698067903518630072796482163466057702970859400029475556284398038675819590097993890592430494242645321702214863644981540581308738435273408383002416116764568112122770982973268363000173946451650768225388240002066901158926449216625153315324930465497848217240050849791451431070909013276111035861357293879485225718195687446734710140723243635280532430618482337191490135076300700202670059949746078795568959338571174454044916476612322517636644569048172722197226536554197460602742127406395621389092743038256857066669732346291266964155836309824519314254135793205014873152187259630250921046023152778716801536614157580329440842892299273768930625773098215968047324427360231827030162144828839589536630533829796174450315912891299089883715632396151740165436680463519986898668069553803634237930712629319443770796440544791084305310779100687282943925816759164727438030883645945410466071646716209547307781590729158243538147591812006722222066216157885814421385096277013778316705290177119970952826082146205586755906050524149505061450437488249721928278314303776194697055856844279728391644177658714255041116437644171536945555491813409534058940985728014005718750938629913082904337267210976515421568312285509860152674432936393097255303292028112396348409288673121504070778108846551989972097572920827424780705122288802053692060070824879439316440546056046934412980560415128215835567382108970724438240396620412833601720230057499129446680320646489972291740333440006202729275855842455841429952489408396008355527593466881947481425208457729612343279457280301933093507908086181996845482789565452792510404146521232889576607730107001279879767273227613174662065499027243830033635040398728935526692402856299094054304152967789281421215759127973446077792033054359960752823084330834032137022278376711666344029469442238674277612637039662126873164484872107420465384009862235015436445613345719305838731667197412360913349135645543049687015392844097704203917597456363131425033083301179180524453734748773857609726921325695384432062200119828156074874453602330350459101631062449369413226712022400487070102006828614261428796150615496651776035306716611481023582425045900902632615462518390699558514276757903979019807214140802429604873164947211269352625079896183832794652297787349707519002229783503660577365154556580245056025005686808811497649994059888976539401609158551512794686591077552067325734870482020116045333251433945495701994006107514912493068284775227758281907821505438829665791617393152004053965821058093795216888977112759256068225259067289354941031070426520873230152493531783967598607915288910083509218594443015168387768762446677518234616432094209568844711421456841064990083527742468585774695402157803910547586250841530142492460908149389062243353489824791026948590666612409874555099180370289776574839752965354460708233337874034844768510068215799396925794046122751075112840455247636864867077488538583580408093888498234453670110769141691046784740964685683244994599534828631041401217930629493440905188507462941052889509025848076131747994228724101765321877926365283877314118621486498715458624232304937993362782470088314728376178185695876967629873430905817248733201755819670186217521033439918233875700119377674623561141859568485910277613376425977217538471137057066137732115158607463380992297747207051271043840375932535893673336809321685358628556264895763215540723175307811884877808176965851894881719254952193544615801697471334949868213455542560016294799351535915811853431439351108518263004962398002851662687358996489522269905166994972583601768124616210469504475132341895662232867331527694246274314528704062339921533750327426440462137732879192944940200972180475103283232726181800083286894211392209221251859351898006074210470387276698311530836136431257812601773753936159830130656400411927176418795755245518026222431008543368335435639931293286642925358990187508609122395273099342741024616362967109463966987362846132606997099047319449433549130249180415872501468296866893572841425775104125601925988620869689253249680737975540206178319401610487291538328307747578745607069620625428771838066163348352213015395773757693769147815089989716762591513678910404214268928078338520333435335408969900913557222103828217520336346670232859779284901234810838213559089247619800718962803070628657370510200487112277767138783528624879823996507961483631086876227620726860966856191281661683632611442088059969743824693455329495442132207270978754353249164855351734690437792799332069516342605126419743462078947503449066827988561729390650673256071082077710094879763392831045414459207529179654298124037201135363462226878986184808240612406006547826091979226790883987880171964620824983878230503754532232467774367543024178429474016929876275578412384209955058450570815578131785315897567982004089682045884001912697587550439282951690192900734901867744133832067416436757802373401714081932238842343323327284055433881127678852998239545483024618547553562281179907982973472097276895976499052421535152077278960097560952745890389627031148029204042883913580923784100109128466159068061431187224584562138465407839444505096556602115339947625406096723138008101547590773780634705764945841262012135994672267697372705792044243941707164022031849922001192488270862209414741687361449980361394709151796233243101782721430988898836011598426422492469751952134972627428187625971663597097030258465528375670663308908657263369578509222454648503329873234356538938517450151361825520785202417279900774061312319239691158902703960514195468504477517028118491940814437282205178730830997565587775091063871410630967653010064250443333447972795188866242649150179163608930065635009090268458388996618350025693372985593007107309509147072715077895276244711925832088359357025692738949946742902637018947893538714501205275682093056879942137537506193650731285720576542530609676316016297309291688030116780247565048637378408184292073774065407913851438157566212500186598524000199866880104882452490830713780144818610998929630885544766734543690410769696584790706897752088529665175238997581352095986608951899482831914457471933879579023701461578190918916446188363763085022838436927314204853313190286207591382581919247681318528538380578838106840281556308031967797944752396054639933701118419081671159508392159874969958976746105898693989085764835540849022715834542701425359867753761374185169490648134453063514716434808345077491431703979309805509658793302931596954389980311104634991766454761720809431084052768903315964267208127281044781578657772547906920958190188191380623007978499144032968754948268368755659357287550068522049950067614355732905392960785073550229686569286215157180420742189263884840400684541622682887396693254369581032428111251391270881560313004577154362701787996165499367016570497211900823420169499043306266173775756468289231874656884073282748171206693817557869028470694959845226700818682535348139870363803642165100447596435561885324594288393124593117218729031496265475187706763392983561313689341003245904822809106135693452155683966514621853015516168236483081879538786747524948527973639882002045833530286290430528313483205110310387823619507253937495895851233670051779104011284423865246526946852150518641272097074116668808099092783260201796739922042504234968219618890442382658202405466260186860005631573068923829438087866527507944185994840096993141784237790949835434479951296378646492250871031002923054074421832189018454752836599314656308374692571115098924902432773112672522224315792358647132553146782269255640496341654153050431435693856781171603986240970712184985964495395377594466771274325704329790500065385576681700522812077994879531156328925113995716231855449720375380629092517424005051231585308027711615245938180113121251520737513954447893547046058227523135191361778740042836732107950256711719471601400240258123905209697654775657363477269118817213278943122519058366465661788562609594325041349362236308966634999986321725874511778993345423832190309669385785955634900041562482826079954576373854583913483342600047204234032704546427877956321335404367762163626213884338144495348445781784262608132799425289191474500243634093290305514952505823927573235542685250741241170114253052197617355503930915133043525775456950249253643738352501449896863878082831705789452764946466070511434888042024037892396947641238353784901278162828624247803441202078351114451054430772286245393368958392547985050999366113083085318802068815190230822580472676840158514268989988796329008197898086117876846750146192021044550751488878039624478327090077978398483653000627418931312815752688755636147428245946684679534311519101542134011869120519743882686961044053603099518193198399437742617765288268866970342741916719400170144995099712208838655718675063882487093544252389644978041974414391073700950124677295804296294392846346537877143335225836882198437523791969741833097826569924589474528415200215223254220769906569889469371949841125081738904028682561398853295584104741138703138741907975576573336574695675070538164766852339456515501727749388994096233515272327954297735814828431419134865779121046225179867344592429158227672064918188420300514555648148532966082518662754198408107803515874426691494399325872273502776292692826902614721913832038451252757174334965634063673971563625291974875537315185703624280016271080901696024286876578088906969228999217442979059755301959017410006606043589570119407355092796376445387574812811647743384410138490780468740209892258734763673564978890603709365205542810297560545990686843947704686146981948593098305110912755858393194463250779944956642954548883334278861107273818384702433266693802097331906932490938838041699668438124701541229952117771921321619111709085189708627101756291756618979916938720949831635695317096247180382206166455040102272623096598202924142616926968488228811652097720726468179668871402575758204672598951191060484492060597599062604198326133882937291702223696404292008559897815334710860225107337554611199367949856739028232090559903418657363108567671149695408575167948701833282038175947871753854275049382080837405425844948518461409746474770738472160154434727762492770479221260304922448795987125119992200714479137692506316284392435287180940516840119777431677346595384411421300350011223744031208929625127788307017928097425034073316587955194495468029220254338891897319010201033396948342869424882590816091319470928876891247634389110742166518107564137873423503918583434520771458622140280833503835031692397803420980950602526790080693618067736044427811982045011089408911013986642532658454624547881921818147193479181930624163751122861576325485979843890192454468851668529740318205191494324062920309857153026194532987306871142304105562644625175787167057862679281345160951610144502210361908214311333570034860394335626661450878263846021241415196844730456107378978897751180231834641055532435200352031792490992049767950988022605478828020345007141637972108760973452335478275426417826586696694139019647784363849963625674389102420156039411308610412143705040438706131285483751818546996065975232530971394376712507556448954307911911236772741731744987130813176690458745662501502037183522309097634206051200097550505073909677758086026464090350633098353899780526937185863228907852786390301020604114563207578977383964970940281191869611217702495536016823886811867103291328406695231660327498499546278830718920529841429882556440916835953426323832300004396684639756179188420902554372795625365754257461815510814237803881904702689257242775686506203266036087940000012177442610617585728197202492424817551736279757947613572642610914666273964613290090312510410577009419282479840485784982876715114636759934700005213771079117339362709936489681548199317206860198690333012641343796296615769229180659433938740687029978944710669924811946795215132605643146320904327039047955246814537607314400802771411269364809810920670031934502558123406229769248586194467076205623831908377389938836679264621752378258215286771473004733973725065643768332290735476838074371189316276351762155735118521217551086073833217053120155054216840973437294068351095328373535309639892584524271778867618867613458848288309946790338214455481857792461478002817834028426427934287235369662881645473385601638986390682615338155582798633721533781127362076133296334913099566961266045757269769943360867285029175787073755441538349664274824161599659369001018417200593910192994161367200111088400944448347580087071319297534721373537272769076982346912511110749034154898019446319619587150310493406442648868919412277925124859510850936201230156374116799400311199583169853553116860125284854164753724457449858325146788539592073854477940976264806607154140320050311412682327390634258158315852547466267266248893280653233288455525019812912699484033259135799594122568342312157435264049377276697718871500114580469730750964897448119265039924234616777314410056866261348857983387923382438638412299490373261896671377357009177705166592238998663407314794713797264760060588387664447619656789639270196222135816826973394938625641518836675053640287654150154480653297746358281651934710828908758183820285777343818332534847733814164778722878282119287917066534089512488549449323481965729182652905449447918766546754421787425038824455072886400050459699468978666559731712288396941685380616920185444945141462698305879375430569309072547046884260359850255935554983065299515067861436248958297424200795118182097003141373264179223844275173030611948838736474038789452311171527154377832443823936678020309416788199325385219374551007762100661515492149606868910873583078748684271960608441730378427852524723996759451914620269084523748595040832557565168555283075951359792134580102117456572788896649085368630384349370846141550895509735104803141415154395246386494046358431798011397604178199029347133958457213816760989721696135298381190705635864846946194063028634020401030837648192972344513433861702743824501224614376649507429860114567450610359561094722383837707548084760739751539210964289849001352702148425019370654757641510608413345657929621989861484250017644991143073303919396412266004805145621461397963612884431554681993885315287997764399340841803426756032205937031563613442041577272867512687150043612879448080271410055269760330541386318036263050941321879202154111896196716435013034905556129051489384847226417642537653951017087220545476203557575540758630745373427246622282794788530204243522035153478042713106877071524634834689645145090972250270486378739965157166002260872463104897595587680255217607547262836950401341040878188198430429986978378257817835985453627304636794199023294572191857991244444445014782613362539375230095521203135115725718158581264927073792550788367341271297160877678037832902638550027042100002980820268472736439234176958582108577094543470172868691744489754126984512125043838288872198273279105989645485086248187393285023425036931154048823254476234043268226833302441456288320078125364917965071900151308134511602843007389059873004052796718615861156635525070931555823874212120308115962366821704967186034637639160200103824185078169315187690100901917603517619269283787902379622251230609111512958943684095259636625416748146495797722690461752394868063010784221308457864498412347283291957146282403817896074783729652492642360225481094931696060677793356632486685544091335689910158009797070986499928951969554361656431906808991093077652161645278988453501021722189418890796357056461360276957516008347101502941786467947782289112863513799958768648402539389594520949487465634366187819218262102287774530678138224048883746246138103491527759006134050882806934559760731116784590931923856147643581519927353484940395020389795580151682448556935162454862042625414316944517454967588878389510387659664918003567335157089372153056807860110872495888532846020660139925548725457258703519276073320628686328933166561627625377242948088357518918008662481478866600298436560384400779925236682259620549979939748829236058629793215480745281415072005149774425484120425410539612135808583639260748002041869664360042471499146949296517067771054372055146498993724874232068638485861122155261728443785433247578067138229420817332012308924924291595387285347105425744586379949457271771839407685862339286247294623056272146292410409872747365997738351141413291662973756970267223619376040808900257286087684074106976382623272964776199781285031504698938945953195833563110622430331384442431412210286422283127844796742205650362954959994821625951179913379724868253283064298165712341067320069573569449299131207368155569456185578813945798834174674937491044647227521900830084447572040913325548514258954189754898327849097923608675879974467723238957026461129469035351088559951446339387092716002816259104084317833010482301604712452414169282535296767712104833390499206106017939319410789135758029606169298885344315646258828542926890939251304077684278471206735708039729072339318275756964478885260365602896028298703714167301262064045171320644171606840342614791434366144604684928184372017166927342037494183882187277660026135636205531143264502483538588378209851383533406378610743561711606492286506487374329251113547876114157043070175523284035320937856118829341415936299764517946565643849588331846141110226380756310385903224094484910091474757331783801104071899036245150858065856552166498259432245374857495963792955665023586182104095280071118604919271000932211225355722152344510842450256300242933290099804606000652486383876229180416303250339587038163855658415431323087108551239250454838712606092633401810385187659755022337322132085899900824390746995974844326330217125741106228255418299140465808447932776437389517779211241860923781947244413274168134010770434180781263246607408685405538938311469841086930726829225425297295206367144220981480265843457206058175631292887707554286922330190549141363083789092690207581816811789275671436446747742951920959381458494831232832646207908005473125099835934164433110300553983221187446733707948461911265119243537515470188203462722118047813526916645444393189982793862534136490003333952089407416758511529842472654982134873162888779588194871998383937971202842275240166487845030740849971153908799059630137147479351492112384034732723518718147504052431751285501898355310768595506052962194670494910747191411186343078338860703903001013120028063803320542020494376789059540950335743942885534287162755954366176520578811294248882571762450800870657065043275590151190132096633060694345880584373352135436133645246690895250980105111033814147050888447801463806863217022817621955125962552941015826963558113839777993638657047915003970527142871147302924497513006914252606411348709147028789236992593505340816302596839091884005929669320338584054718791229327912663513336051156800842408352152912124694748613195110767802096285141860819517077197116582250143644356432803258832542731567085807611456060604185687388815313010784515298950373895867071857180120132835084014604752458900641821710591515557778831328073412546712002082222840218319499806353588896586050907817425977552066744751422034917333950525120383116918793418357145206099300674181033763837635765483416019667057105835053250384957155956966865606686754852884794764555323262242053160810547550036048914454294751108064266064986827245579619026866527393678484419283113190741668734228257981050221500310899982763497198965099673825862769570753251268129065505931178962246479657106779425575264956796703898771269797793322207766238466377545643228230490618524561263486141795771606682050681048813586843797256056031934063460127766310865145168982491966458022567713903570142169142925587724955211667810802670020911963586631566643215073869318217115409331175468018222140072275706068556588643237207729456851015988167671934767467841922904629182892741208492564831069903513952165899005157244812201472212208247677847107134303758325340375845900363423827153734895182253726782483524822108172629801291991855120142574501731693793559268805784361654117689590259041119261811592327628696719487114713467825991711695903879337128690657103037482942065176182608932419454756512630320097996629029074647407511130838499079148267207742818263146833408633151144004302385357047926935619550333300954556412475920011906234038670199705736070414352134665031789693027137965693955767901697467125543294394057142139885098708449964795082464228929081871912885331614627836849653078171214622943114945887888650441256307171727510478373367160968299540527398646220879308640877720460902464616513863972980497127867496721128342551568676672940021566957812310593091123311959548905880998636415364512580909298070407118373429953913020899399506225265524240871526911094897141472024245196472474752167098431086804423992201141826864145247346641240619249723234919000675457887377786989558727368482198891793353063137870393756074523127045703679551201943045248636488851729775184382146245200000236523019413375848642922408512194862129144358924831227714840915985986349101105232279770417161498474680906994196636861835303038118815874002380634828638494862609769411345574324206286177932882979807248065415779477486209670364221668510491579587056965710651966975754065528990110289217872796137655923342543693547823533199753020140164188052284734427893891813964984160072920349817787303862308928771464462213087607007864964798141217107092380913361495262039073998730603094490048428336692598549265345110951008114772784731088569644187105265163850555603642439884342565311993547644844018240108158335138202036213825758960007202616668714893277003653029103579695029017482826114771783679153703427925867314484461252102818321849288913099656028481747071511088407675972792125355309203614445264394356059339795709209936331109979009088848406581040469107948878186830528026418344442131966220618600546127690627571207863891538158630435027041283534372564019657023672964442202751855504849837527385630760517702101316242142837577773898651355197248216914683301742340085764822983095231364874122509165875977424639473015347306880124336214959325997581932165539187564497472199488255309239486064266234879724383733599825693252563375132598035140695650624499052776900770954689994830937203727787784471901737682788422435639312272336967691052991999228414380960574257180514684115115618442209600142377941514635387555909419906648624747456225453437956824715821201084820455286375567109686616906592234122475926556476175417305728037129831983102134573470653472394588920397750348232134313054739529869142479281667017301586173571645526624262700077375832587804439350661631576184295468303893645108867513055661582736478895717325787381210692239498726775401776947261189350797983847006205269197102419779004743296698014969981088717178048337021154909455119137204963306751873831985769440204076608949763069060804702485916474537028121469302980375792838036332823937661645355765891605558600088229402513711529391502149526054454608317699862231177120034953696838871696752328084322660748077217083573949835471932831930138100450200559102776916631420524891017997820254182652511635074869788758169747702046382316764874928559641163623497261328856574256981937751572855356131864000098924800992562275664319325129722560717942754731715376296775718497169045993496838439977722852239110816416197772257230035592405839594330345502730425640276098201281360473243984799286199667355088433747401130338467521937879267784976000317990621762391493779612681642926376947431894508908486654268080693943005836147879155126880152965068292022176425321142208602904460903627776410196818521054342749403135411296733703702972162080577251952936067940746146755604248722915481748538863479678255759985573717851399315224420204902978233356007872641648465734289001736556900703537697161411469334414630903525271607495300365778418038702539448254487464799242170384081375303241146440104317545605117729460871992046674425849393983934678669135986815142197285752887147709543544093720554205690811439723529910896153947538254120492635385728818129918548839524786688249397750445150930555761094524660418968435163244511810553145276961374508814497200769131435853516247203861293457817282462355132782455292392185576831374061474881468124958314897398054294087512635871855320003902865225482651004911048771601681491786773132166526735036944288719108932238137247804248075732082351059967321257170117217753810147142043627285011987820492424988100756946116375631988106095908229012853899988289299959104979012730301282318857660970017559255174403646426163357757783114551326786103081431444076182974631441299898277757442378633180474903605894897691493982760135188395549576913747579649804830512205248754301878235986833092154202235467206072003849083478839645102846141983812043048421136156030607646107033396825483443620429157938200585097103284198067850793011751777074220074615220746469654435117163180967777292154200181455004010258963645059482132475022173009445786623024145989423005205576940861236741714062495071473833005080912683481318247254675343599233293210330711655313152497039524555709204486257304768015443951945361382268455752594297786894579264884003657048307831885541646791123822181496757813487721398471182424999625917263507584599134458973466002528166433895866651481573415085753561848173821799463545779340355771947475652198357167409694188484289144694193032100209082830386587647907036553541026180347897870980724954678327075979158314144236756440179144782800819016143356354986716048397440914750345735823934091713454121486991315470010305231165722827641031120153160587172293134345309869716009421834836824718242376480877880243199721464467590601674635798587422699548389222501311611405234426652020421588987989388231231638028957565504854307242836006919676007764689346534708132478523554386670051721868799236952442170285209853496138168994190919555796895094809406802379751144323125295892445019193679654219443619841930536617283166739393622965386539530579920416914972210901847143820988797553405730920421988870351133600875193932351113612661437011554111858603788972173307879815166591445750360842538554218180047787316807818356546017725969773872014416468229036574008064365272550976895460089535182931303630090505618564172915150566484433217910090346806594191367198411530297481373022970596862842871435838683436871201948081942798288493054577131489814593704969642033007369031755577016633040624812925678417937295045369933086945849895142635275588128076307160377163666921413011327006148089486223733022105135891442804226287322479462153699902961254458907009650009577478462535682807872173360546205528632479842872981905954304329756383678751109048835231526365844179065067847924495653793681751682555092224315563983991300448257941957970544506401011484663442488453473505276681303653677697324591631367268235486660442424916659871043682781739402140754072640320110294016998046814146402301560064924501746392293106729868663840419503431987588679199380563459070805365190767528065871220641428938226795381079512687419624768050591784204688913978928923019906549341553381753279885919776265391574841158603580141387104780617343457814836253365744738377678681423650267017167364271706829853858045068726311882475608864001277258873419381019821783961252610963474554282196054966730579306880862090552924938541078296244161251010205410100962041272468609653140782619992387874433240783843397078232722823140851786170184930806976670124325043832817614585017136631284939416224951019230021410030690894165996854566768545098929238017644057768989346743090799534743353745173362668145548090844501085594591547852407253051189934859128092805235637556544952114141698473665275768221010176298795438154826724163666319337919634432305323455595714897883005371989481122669731051639373432015016309891425526063963140333527066734037164307643474476365753407356913428588345884158227394476115450511404517950574618905443320481401094188233842884069211040303838156423106068052795843496284068942879431645304254630681023880845011858023502353671144670822351364071348398734056912800989648806818941526282178947725021527084362605759704906393192253560844463642575674068194054878536064407409894445105364738041642489877342656156640033047142877825636116421571098240600056234491061946751076630639972646760794333332071774533352835797628724483315983305832699269219201145959648981960028135889278249750604249028484887557752731355539373106384169270105166266219106449373535073435593710955122566605508236829087825569571114909219149406280155698281110483519290461134709184954195495047165942410321053586933961156127485365105349455887860900686995146687057388548609888068639955133370475892703664512565752050361697246907243116921170149611928517207435776827057328188970669352525614096289590531221080014818203659334302719948736171696404630471775636536386472611654276569849946147536119279230522346476983192436395757349169593954565981714010886102132889801511864360758986429657817194897616331227059567799644857442475777549167423774052745414130710633218176125644212185099054234000287693548808472900347384267292886986127857915564394197119515305299477547899696316089972367127031471485074611408432784854843522276402670653501708116316267859923054805706002407517849834062690222654259346829202572462059556494138458206623353922337248602841334682888203891606864955170650421393096962057257013159551187086012308362809317881960562729308120556327181710735420864812989327120769354971762919288259621383321877862685458086837401951635503250657743422759989134849064703288473383907182696146680131754601501981093813667764017638231579649479271402238002227374206146114401172220477158404053674283078712319575206884097279142362344720962044094680628010662299098022276641889488507998457231206687134575014711262511515356016793062987899334153997859166124915660792596774486474040529041001204569333982367553676288277132351796306619110369228172410736820218362632437253497423496349745734352113172463585583995756055686897586358334308517410965246545388660958634031889700569929020005916419678677570780652029431720746455600685231065556006590154605336669813371302088143173017938318949008659778502205699637317605444685799979831792652100768634485567175935577977081160126754924530663694107117829408368951739014880082499708629625272177200814180908358865567180285956185636328988502147844793123343714965602186293128686522198888513132167122058147480078660463913824455758827487094243450669726646527332016494160535671577920532191200579511750219249568575749128838069857051045666512135283537333688907694550343044585419973038215944174265075755489767779905098074337891935167245210287349112913736992754882890600082105514660248508768986025392860253414603479183331702598824911107231464160991307397271271054346346318657224320899936566662811111585238336810193888374126291389360086047135711164591862618174898956739684503117799368478121607317979785726185026098444972515334690169649701078099032073373254743901034755308623651528251009667446646859063947860128502031971269122400265458236346726741026285907576271435519019432748178372969273372876635937764068811239714617289867751014534315917208922520743308481198360448408092585798685046170454056828978445886506573457245032597647828980622527531761147975966068497869261126747493425190183185705544681514070897938094028152954042188498700737891480059547729163937037013313248367556271275900867756084061533806988495150134980778934032908458857933978315349002796995419241227359023522463353106635765965433785113142456875663768563057471248122329009096615625443444259936378896053354920935183705978019394583106294233118312329674116657113261680000258154847450915496226588154600099905284959411350008079977689266280510484140697427880641504965203370709889003917322991477749240635008974610230679121754222387999696248014604969658915638106636973547478189094595775490089974156471884964803914837405809952533566860082654358326121300181740147736059187683381529794442100446877034864152053717982847449458719838807944417747100981979322187806018573148978554381273988477959183516632476140126549693461005875012149858406467194516812789068005710453516127118412028302465677505272246743811413793334715459234601157420985328449324873835191381169201856000751354188806543740677318291940919222415483573363471739816946303141504011947690801364191573155117620237979838728621865834321815278481832804644585949445638665281901785302341112280111039516272189027897144850850707687286227424236071082728497246421586615152468874185357087887169159036512400614920599620766354341130724508475159001714608987187445120873958732773582045975418168125277995698891850323931720679866768055786507453881741214072868222386883501504881489295563696871216323910916879345984177734235679925488525555323032759781174029376641189127177952399552305303761969565497025580890385112717306257811993427302898422110587434550892704239605961059353952737049817359568390311272322452048499980570483095401293010450988865546807564763393647992661188969198344732837792896146352112347681775571864514053609128969772592087494969650381077506794224266277978990992604132189034032739742773560346083462919063375756249093684990884021040118490504192630245157656924170961445565423731966138470059369717311148147432265208199475706990399649173604158835738075546953504616049226071809587997060248105734608232078642404733908030813468073873178831133387780233741416769474011722485806280217645626722447014600686824308278367710708569834743933065743704766536171029875355827154342267393355090456871581298162858931038260990644802314754860316571858824571538922065277601590499367019254942738883590740748309094832839170648497652333370273910167812214408628412940369730081099020984691934670862946830246734173540746192552918144008015722344653551742681428243064681133443264175352597933300845877812431599526621304562387539072111777124809164228970452830782273273180805486252021213986450398675515177409952598172963120407148534417249358212196048187465460271012302745967585472474222525296849330714394504377899793459594072337365063753768320044163109229902238297970225740197257622283386165938154993435723460789342809115675304416233088715276824309181699727237905795942707746065263142672181137807920564574749217870997562726938117409479199638090680747155424508078847833885472611755833790741576940729577096219617399582271643370248118006666867546830534701255532261202226370878306677381228241957749694147542253804063978918541188369490301267913589211279219420299278436984610062379466377186072343557657607525437040107477035042460029283706995072933919907958980313146372167836615388296871458055844320723307772424802070630573758169936577054820586520807079685213093084997665831032767597298065385716362027210141805057566224712858478129168600016688082632593519273734651398701848532850322503110379531490309267460281463179070417703510975111845755877648539990248228311743965370045403397645769904415174214224847002068682162953452488599778700949050269500222539089085777406865244211760286130169098652547115686951123676883762603551950854246200569807276119824459209006488438588191238480325074805815201235592174618305451961607596735090410417662306767474962833333500876396316638241170494574489981780121669247944571045813486657502861411355281994756052051474820432226432983560400735053727577618790612369846401592828868845850358193156803389135268534382246553663149190917924144330769322976386754290034120375831413018378713277568918978960759398079817336777635906813572459417496706327729282018000099884059310366182378033271078342522533575856998854963156569184058775320766794589933464298438032725913156789937677001075982376070618824171172931143815820490031824307456972010286013018317712115408925280663732815829239652008834166950018517920288763415043385192642078455813208154080377937891228764102741890451774388700413841526347030306094170127707862570549487991114833048574758933653680192354995947679191086080873673324356415399025681909045970701344921640535122929282187261293008983312777489508688421490835509275650886971367908862204067915450065669947008504269363448308127576465719289826632968752200054936491646750883821464046417674724952476441676873452800284621429043158235121358116171585362145110446408270190306516141724218302333785586961225949703074677744315678469109778682245085795248125139325191658166479909908818596944034563050535514379518024236393455585333439158174414104525027126406922215763477102454188073367457718189983284149423444071484230534091323231894106446098171918765327008056496682969842178598223625326757592647442938747139649557997821907929904322643940650352155518646053431218881099496263946143256791054797130414520583794535473656610876176548659231594190753676446576697453565277433884391032340291777319005702295486372189850717806132124259572411560083152518627676374295586817553984340736855015712726257072661818089572971935483331875448656313759949876056041664565894965748906373504800154629236501738218497245073335714003413544686303700746527689813491628392025495429766022531411969057746513722503580156410452599779078416211970364262101735011148194963623090146793337403346514347476933869855435572441880178681013072707688097657723269397323142049657950242742346572754865439073072590881055875468045197695836954488822177075534725110631748478100957134693570926605942395684134629702140693677680118800872449118227770010427770730771982376100319070733642537394514494504446157915688091833230362344982864784679261989619281859083748683059441679975040345406238508253094351381298480121702488409629812582169146527808947122567481707919449091069248841807393683219868124970748768620189209819773491015478346339168512926767167608913218089032021652498219430939880642947799667219236327683056125596874654522071734188170444306603649108254523322776694395934563527389957129759082068775735862756747385444329018853257760518963330348390228154389811943303916763796717083696263713730154121671275580968368460988068418922514034035106244850709960338163094558258688725262644268883828867287491292477237867982212677259786063463588975689184169539259189050706363529031548536856088862243528781512514650358326545146328918742161671739560982205244295093428949331275779927583509145571224796395002340932783406876864225958174645743520529518201626785585477407221564712291652365577440311567595516413115918830249393918595058674876703912558446162521097557429450057779383292888076932178092125871227080117964812531775494622916886644963197352022399083292311235076368047954095222517355057212437018602615525917103059424671010293110232796284771245315601935351352420347507727076006111766644277702586966232708292228590730371854604070879249517794597817892568444072989915082387845034183890446299883483997196863180961770392279374339518887025627376232328210633832665561345321363344373998633183383154151939183112985642382182446690422594208814898533683690807381309796423886310945729734554810646405377182419958362705766008586939186690789172766623729293130622230030484033922833263475706145645795415154935378027385241640670049570916419429568991466589175407874012497876055032158288230160868090890972875096918469530490820379235959240178133666842336659688676122522477204466970610194756762545698189372424884230657861518644277850744514510120571299875565691159479313462383882499485350844628996149706644768033194019448639359941524939300294532706461542867447578264430619165025631484520577971646250054306745760603538490227051320721627690801423858266507393363363767667433842233302022470430080613335490356941470210800365645567067650275556263013452903978737320147122518026321987834931805870538640293840105462539216813595248928305135880340936637011219424819455370759829085154769279758321222111947449496054185219783430296484489816317715477343121735083094069644808748234556053476335852148459567888022799686192561767482418798722723183133117623779252031803365197467665083525064718145961655510581609036958812866076265421650240966658244325737957283742624914834309272938157407062227385502489941897036292001275738020760892653721014792878963703546625980694579513057041485318682710672792041157148954316481260617261014150321556839085357019951586897191131971433065830772482579890178413845233749357383928157654713953157817845558167051616210430814383255935281619790863099531322461219856199948197730456419690842496322637949259874905633875696979406324378497295162473194258188076825160880770501812175048036951185256299111322011167481456559676001750167720135556649486061498231266423224883257884183402034413438138835843738673994635468509488058908525918110840761520698843408880237210197303189868464247977996777780152245532765151916180404423365267684600185556711237651255086502537788513832771107642025404306807072475309513720214503105405444205461712112996297659350953960414144105502428182813440563180716202711455323899313722379441761134127135443770886314370667718755472695350635115471067384276540010425872032566888984506796426532467970433480991490440201965130642583286202031595407584277540444039026685223484107846406624230515274104565687432025208502534276823375554639237774636064455486892557932270066157171547874975463453115811679849236168206749718652333547323418932454974508558584290940748076113989188519991963134517667878788102146675468463378235561408690458982088791063799112041338200758688652599583088582751297198095919502925900104067618628601994039017740406823714445649911610135944194989768043749948641413181606889026787545675965890946850184881133685632309096300939069151844868566464202327230201272093649822111877246684427216968104851423572893480863200394361886601306913570984793029596099146298101698405013769134785894474643950067399882885680673339894638114879053134931533227199302514668345893635749337771456268662217414897820950144117228921173227310004119347728377349139037097772214603747472771608235971021601587242689014763238029776299547129531273627114609482575102626436323452676971902742461345410585602484640824288150603024325699198785440839926289496713502678874365002761506919170572458285867075569775186185875316095353148331100573469551330185136345163906315393518196593736848276094116813531920146222730740480863482942420013780597685143271485434395507194769496508020458728948824226911954013732978166758587817282489763771699341456725636871607017214706374887685803784693447209709400107658567776690393088661573759861512579592344431118792654548257000758563354332256636354250016502731300360473984054276432746395814464616160275935411273639841284642759679987796952952799627351002976249193820727170131658039324675254104450332745178548093761619217647667635118023632376942099981178647624363210877474966728840247837776419491054553500442627022159810005080331336374817103316856350955393708091352180202851613208842339663220613211556108062543255610356477150261021281092789135058417587146569240327433240423798810292979214619335511647436598746281572791754590989818104846452816398417904781620060518775673589017496595933479324866770780365704402595836142725807284698538602652455579682080344293018044789101271859648264534372776943879529297430636720695349592028792923856673997255581610902785064796092787132281214100025669590585580731351694837163473170711450846667823086117801725334573758142087803028852609198823486016144447026564380123850446257163366386857090901827215017667089993998123910987042082854264440398599043122262906904076570016604227148408442542699403336755538598258749596097316276305493420359011897416347105893832200473705987287975212983724849781514917701709976966102026293601462789566123042794433330700537027292270548298281994436979822903588060375617916848515246356275415947474789006198183170792588359441218011178934389329956173520198957925866119436921113170593784562608309351810490991543394675352535556163313572558076334501467584914737812292480659250902222360621696113931134672594688650892721298492029369315739930196382176329907933978981821664163215358809591573056548108374977957063777173994725612898427162752775790803233007640454957057488589698917602510887094329495067225978680163589746441111805764231599786045192517096805116142034014215649661160275399618386247492008091053087486904635328690110352270168101629453105663681957953874466255609753905056402485648877636987511178992846844676596151337918020688713613720308561146372994021580668482969320186765760162638994006863823202078754717729775515274725869191789138862894518454351527332718469577080479844601887876383061401689381126936284677730635533931353299562789635805070583261041710721479634859789126495582838452688561921712239307480201197802121930465399397976927084312151753187934366489033922800756072945459882024023651816566484988330446559675609214662783355577667951903464931484895835556073299014407553034236049050614613512639704197436023364114893313312215364702330759628770494470460947842101756686407638893173066063287856027219225540815225736131998272842141222106172815524468198972084149817176562394112472978967470281465497418347268085673622477966321618911934006359159774242037593647400812215281495682246259896493280923898636101438661881828704201447172857417229713891035040238855949574480906133615094994818423823895566434996564136503982777195384094235802507817510682231890793343329240149649185190199316541977626914550489606200767656294886290524788305241781585685057555488344002791655696031975780818457318656068820621943051461153103877312237341691132543559807021037070301181562664711997236089529815751049958567652589831337665487302579238690735967484068816610664780335073215433579623545821129830557910734523273661961517731100461635495809908447986344868942643515527039746001154947695155254865882043152365050143087458563779991755810563904282978627636310934011996605314242981664503209775580642708254983518939311578839882267280705386336148987891612777976054456757341468541568021775098948741524647111680315741162542903855748706614133833978302782006694776458197559711186038243568631825778406710842248725790054060464749598475585547659505828791491745836374037209200117962653323768548959928112608873986965655237934396886339468295561009100153246329862799644557199986965494639562628208992281020511696804553921177954865295333059812240380270611233526380304563021902717585737622723871017014710219605193818327760523395639742541735660382469157088060326516491209664205467202394490604406537603793883960776674441166822126099548420026238335111746279740748007090149234599128220791639947523523784151508459665239100319144552096604939532434225227121279444530504917555555581276250736495940851809766092104669557245896446568366037310959514799795301185568661113732788279918905789041868105759768826050704166402795108323800852983053468742260727617103603693615770291841669598461225400802648363095915186527716359120631163169967216831209855905967732867345803836929638849322819534015501878557576247783772584790513942740028149542837721396939892706711162208274349152327889399982333320924100934780415785533481184659065916942778841666019863214702436659661931785433590814827821793256020889346430898856337696257753273923033258507599018169716285900574903801102546262131279918531292195291536176294117875285525538270955437951498344705638589948015831054345456897553489667149618715006930198590007576288817452671044778250013180711259504411039086674834740528123199539230933324118477765624588005788444997621135343238962975479353393432236202175975912424896536236503396529338015254623212456874723039332676198569033060406963214380364341204827464453400421230777207966056010268011316135392352921708205604573391075428877009159026296433647922147622141947211768526923629565796809959545709540999257632977758901394440455813759958674643413003354156855457205296761431632827354916040228894438151078649461212939861297041780784830310780521470030507595226813401023423131461744680512431279021644396935157502144697634635853694420560052934664068841108692035676464843824767449417535831583553026090571787556378347968124501813175766784663095026758956330862220843949268303972374640024449133384252352871900584757825840739042112832824707624087567924787774220247177395227350707173298525936163737293837182591407892141704078678164226551241964760843487258642247605844992572788272296041220361819550424726136741842702215702071146048801851244716975736087877110485823451594255469088751068068713682092198133838904454083470980717227273636530740836537941587652898291954876797353265268499066760719666486079970973426559097826134383134848624281386619412657670846195982112658267753000945780592405271386274381054145502832947775018349967396593209381595074004717840973586436531904453577880751299879510808561712177169015975939000960786836598545491708157665813906359880523099685763240867487942749705439043704899198796374945126267979204454983142318176304891548338763738540409780168818627740548127748328170108079267498073412876824954967220109762002366663938383884117830310484870306640757940584153164793529660043493077107862031062023940224569723262997554947505205063935701630632341115997409805464941967524916625118436746858362037335029209473527545235510908716388416675580326375161667526708845233205680986118633522468449935795556795084629322232238887617824258997920301339659562466036903375172777408503845219320154887742581708883692452107352924282429379578750803668821662775908461735368618989757573291806119048649969130093189807621579200131398475384532928243985957162209699523686076024231743754772127458550345688563593534732882780621662544920935800912227225331515248256763147313914833918435507369716426619043495078008585114412640138775568162467412782945488042532487010994982549229697847978162866881521954586899081498826147314697170192412522489817629507599265751577314641551987058331671789235156308642630022702960438676939132819690908098477216991457969410171210188696328961331277011632790609648508632141089736300485765195997973815278633339213335773475424757281458189420393696483801840978578500847367066364799557857440202051619588053770949047639731255883066555255883880412380222985270799603991366683036774882798228703944404302124672049885287903493885320467741609373307373442481729694982651930361069163332196330129111489634201172146458138243297845525189484220243611468988250221187815643251923785985578561218222057194638719301685393310359996557139798190368610761000136873583557223673461496805141070081957818618691262142490306883492254300157998128172837123991885361204524152269478434965539474777241374799185826240551165338412113188312834121490588361644785786011449191805721080098872797347074646343701101115350516321473454102598633446882621473653182701617889251406001968354975597650666483559313935512561284139099751623833199394117947298032525317867338300030094530681246553775978516397833329779692387408797297118796064831410114806249819521431688059293121775365088732685183904883553719837257406777894008611131214980965172778620139876565068091213379668137012436181641714494173262101349049557110236483912592913453144929215366652953306493908852545033170427131217114704031413952669696059112627393897832280296489809039446298264732011222051230643341995467389223021388786173496876945283479139059219840857711300247809243133967732094268149744472391516342232027283112145557418577365095843729622557320579718954384863664382748624440369408658004154502834231621629780767122468764161687856865292348217457682874432010110816692994359318313957975887101859848370511326313723211555503145324953669657398926681436773633357592495868026506057826088428710557255762256369404444307643607985268263627132716949590955539664274214480289317928162152102581491093736247462414473059957387628567412640734504755307986977547736118014440415240608267679906356778032429725519973852904220885918246081541439979047621789678925784170603491762486469971860208110761970062716854348558164473471511541296630385423827650902071906900668386956825283850855614361482980897633859677933547579890098175663671940117940369965924001576205660294959717719438583144933609728109259238572491117070028273863907654781535809546574010074671827013350968076509524667370304335209666209879313490716035999277581985889382756078545692962388156896670922455801439164052118276046526202461877287546891488831072304423805654515541921456808004075900298367598959887871449061815706866073136610988696794151308156797417008783842758530897730951486997910447888994362758961597555998490027236918351369999590696481431158937154516292014166540980221866754205855332254027053153514088181393185602784360695753018742483455073199287340720313236842019477068672902896251844156799254786558936267956717780749077395134410263037452177342031758612578257346452652529709494019983882717481494626686371294912500837566157240827416835788354675801074845203681321490203709278806339828526498779889106371855948672993475689092365290412276577326922708698523920062362392248906275508253456587778210434192921112202921641582032765192311811029883122040347486447860659866342133780526092020658268507416231846055613625772926740412699127883566967651476781473439569952574372868255057709646541156665453490390304150993762665576995616139360923414896623152056237694997820231174431630419231140547427261445950036815085550317210332918364830305887016867548724465942857676852857510359307589695578869880245786009611591223325210090854612326138398841729207199711918155016688403885931280459293105111435703756669916312271786143546438729925218804981056632726142636160709734259321874648311954441839854061991217683677746458116856020344141984509684435654248983173329884611795777216045475239225501924749611136226364036110204943226090838603917634940410272677335140407536362198991174120829618523547497067662048866945198682468759939880782904358846813796797017023730472079618479119680849065410207761508609066477680269656860243297591592296372019258976874812834829874364428448525390723593333331862952019688164481634085431610411673132676424888167934040268571444036601481535026482769167226620815530095716114423977995956077036131169135910194163246721009967613215056774814667065651595071008253847578660827908574400416655903535871440121243999311148898892746022263940228473291848937808704677699070076638282481136038438176911143230276084671302614844470710589298419898423706642287703035382022014306587682639103092634364852768358313531194636891847306674768872435702899262443623620892024821201245957813620615577434549679904672820529603203846258507639614795798923244518261623482775875042670126082888467408601393836293375792916708381157616236783597628527871139224203273493041687756445405488373057937376173714470038389568066470845919634055391660608311343744962268819039823200280944139501949108164600082322576479575599201257956826465384714828948378157998592692560316449488245384475524875805475840892376791905540633116794675202461223930151919354027917185034209602280445388557864485039831966972244082685743516526500177147178219851329067086310556952614509082170329167647009313455519497394930838644117575827607688923679427654260603432874703082482026423807931527408883407701012624250840030271485274326281764742847163831362510367121843206078043274991415803433725576552480023838991161913782506977546139370057865213297535266255893762788212020006365588780309942545462423075537352545343680758749930854108404176558766709170408355657674635204031698572281054327602760090692521361218345788917753484807636097712204605959412686474082647935865960428265042781227287284929585532976051490078117050544526809518092789222969030425942399102399120143940709512999337857052798345704851644929308992856437456672231780764186297316205259700388517357440788035421972773990639467036271908088044858411408260088526231206059202107312817049319919197034920265361263539200442732102957218800298562487294090524921201199010159709998028596739480604588418771356458254412273246033178398936777188344455758256004851871853499553404986103109820975218035845373120610983368142618676034205463584739806614001412753168979708076206387270054107774701011171341242534785988000933925736800140289407597139396647895365006959738983425199094008331484806153186976849501064348263231407172577974945797234144167824766558673050183266933800645885648710431239870397151878489317964635191051732431811972895885125250641777220458452061145416163809750489721821173780865663448015818932963865304848909594331060626930286906441270206626943438658090096167330683681590555591309063208042784546188560161970072756173506511388658748566731340845905897279260487267636233340895721008280298933203558387142351059239626534351715012587071441213543581287541788053043451101915016155895165883142285866314355354168296487791441414064005394497310253171331851261645819670009729034954187072743390240560036529068101385773224931040561336575409047552217972656060242989414476419615288050243208962053610068988031276298884100164259560346454986340351264418285786089909537226420281065301756042320095994395360512670016624568981002065940340147136328945969817254767419790160057302557670213681249564909751349665107802069167825223776255397012581793663918778513766079305160866942079306584957375887390218412281839520884887821059836046643662915960807068125521201006756153582264849928830465368338396686785627916452983146287687252365471133643669119188449873400841512467539539925436334604679144260935760129850928845911515296804698228404670342441545314100207334552359785009986103053823775462985300062826784853124645263757212720513283668797911307677463527845300303129739424399394246858670294412680797640853758590800980194759946165128753962438355582807399806279321133946442901275487605638075265175645300425900031169140860775921838839697259241626022890327107065088637532115942732184307741384421089327136862013442439228031001286583759068940103154612402001985026254070677120497316079179360023136792788709265073034683573930169084686903887865313440256129949721151539374272563690666430725173821455614145876775141151829970228696205403581302556105961975619054625897875359850282314780969647393437903637038475249952624774293252904017205468795186693904531878346527490529861939335673312031755923720443219608185327748970470205639055299798357508875113689428558542861351814507922701795474192152174445289461018109618321142144881839981805026088558788424357001933854031792997228144796153173040318268916230192094614210760332157281188526023663851762951868477728073586001118626513983273662367343081139679765139722382444799535965044179987058540875854442948415230563921000314796192936759540904285385760493850157945467034540552029075506248187027845027566844458894315888152901909268968767341306514919570686279929745945777068566252242248289038254050762628039650936938954628533666292988964763226132646148801539730616898948682489267065529516978517606345177228351374655140807297970417366994901843662902454091423062146697883840809673223319992363425030089171788884832062244196469984494104763772838908740236711690256404726534148210863261199246556143974388418600417135699097096538898177122932576507689021594344457137436403483947335587001272990498364405195849511286355847869015708757336946400222707986039873942082758717171170251417643181613069146961045405913662764047909480545203338440566739716436471790876025964330577341554121101791988727832609243142456331234847169947733101133358909520209925986606039003939835938288996683626603676038798222863533986510125615463922176277091824587931932623232639055602529471383893374693314352753471799549123910559686233028591828928992247313866312117856814992778278626215207693613476577585428614831189662484485037662941663967932600884244135672528279453130768163375542776345452597111332407292446708549034754461485459422096854526615249696579317125581134944742502714755017135128370025628294782166600450682239778450105428605670683297861360670780126550657225792967418958947227584952950280618981924826966245571770917586053000436235589054022144914441278490359635495688210376050459623545220728745206259281198617089790167918310351465656100557153710194334556122636770687901370079531121654535314094545352494658169990921354915127742754536080197983196313016769522142336214313105447583158637954084271215682303633740160370356354746438698698953033179960774236113755919505597666318754335425875632086148805719472187347923248088644989489402508121620934580424674240121735637393449940547367247471727008163417852552633285236163058411445491745288731640003735222548170044373988456109245417992050103490253664449074809701957901641724503881175747802493694849183092189724288806804821074694234253319624272632557831214880907233974034936955282866354451654988688672535915434050061708893138614584884656353325896643398752599144378630615887196694901434437201717126597226419809924732872127429166395279744948970299294913003614443616259794229084417490618815401939677635708390538369365276099891575429341256381596959446673131565456196329818498198328352365636145281719458223989027718171907810073410720759608453176877862849485867794365370898291212889673423500972887569240178383736360662196743634093024646981582716807812534336691265992881814253145673253172997103435869922772405583271808962284047480484765951746878075985008639062940174071108361855334055142480911272489429950900062381892515971867044500609881028777081700182501159324843872297372028987826815932131217066524446862798620947112035842034322487117809827963478220948593294382458908387334702538813310567737872148523329722258314541734978965050730654731322470982773755262703710768672835718264389010476703211091491770052935689023897188488007994742673598754396478557967324139787067841631616403008422718541183072136505240263127367724974656717439591972600332473174406402836974533239325092720015329892715183486949015997231116943879047551519372252334380038440971627741384708808590507465190622908044173224859178264117064660135721411288587461909283558365540788662657813793659958295188788143966047135605959391346783196568140195787548221576425531037892517320578637014008915103581554056463459002251315054876010841726947150355248020582369872259736164251568326672444542288454577083703267956431128625738041644402028202227197634531555058701804642739575637370829945872846135144136277477320371940927283498805486133668788479223558011585090956231285795082489331746910674741437386797340024677174092346340369929132299810551351355030078102075281307909230341323297702273469383477082713994158415421572524326405369882725063532256295985506809029781188245716226126230484151569128914336678063799770731355140639718764315246083223786902973733507091155346877370860940103722863625031982036843060117398215217770371933373679456697565856548053261648130889056900933001427037034457435660764208497411728706461898118871434885234600249272236049577274267602262552983586474011925310441807134638808948161204530472451778107796364847309877254961481797869105974979338398671526173935010385757580494523012311784900677516160365081599130222443091937088136431138099773417304265407946222354563612435366412792755517422087830436996210421335285420212435057598515320031750939184406729069078822937483180285927342875081859799150063341599276071978503470731361140677084780235171415841500390252755911510083116935293597977534657848012231880685451227164983440806864040762156327281300775403926452423025623097453178777230333101992394623758365346691133897064384019611907398968941078345997680096289796831740240152455639482730240634219339208791095981228963436711473487313025877382113127725817922368935285955983643457788305596296637246827434129842089021893203852692415733293645850211336988823918327391954015961881522180771824836592776422753563408999012029270342396929198194098468436123665991311798558458591577928951624649004990686663515898183281913015541002742210147568774685137379014592931724403740843322507075032439590446383629973647661781887657460483180587087694075796758974752390273648539845232567970035597229291317706236598414856516486101843170133232314453475302580839636210903740126559214864728492102544166996541728730494273118532212235754809448878846424388885426657063831035733921021897969944903772699501853549762880971073532130273003803878589423344551894945895230070921455319985856888640985207641981013071710003966925110768978773764076761579540653318657322059261458983335893640890403465536420922406249316562255125809712759138812087371630470632104774697197025784381409161645295053732657062857613300735697676082819896826640245956518847977820762094998599899026163430485596777351967550299272640245325511357871389490034149798496187172123528596086421654790602830557874610781786258498737804478216108541457060410873596027661733102841805810971914104058885825242455038177644940490383916072476418108585877885900844993414233017001389134544572666054995508181851878802192727311204920765537158167877970067075350959499233398673880629245387104519132086854189720133267130066308804855703275341373409772033830584116342389484966013412861605125760320313637866919784630147085840917458196201953074789963643318292517812012448742955032660589493154724654953649591024262536113593662846415539679804166241674820426217696496284674839693473184029423701044030525442050435675179621139608449166853310494513656769696501665910781937110962134978667152731844310523113248760659047276535787034173510475225562582014432082684009573711960642877104595751111017618199080727680551113211140275222952731603476964636754505525635149422314965548502810947597006605043674239526925623720341840196786503605673901557961958680434585148997441529291806096862630466694052799885305392663359967859776352149110429851315290241714907117849095852807401924651634660627539169636072563273664243758816067922744153342909492373480543198850504491640997624940507217824520544982089326673607507814832753807093611950132990164885901812360349104647191682844347984591786150800060226896635564375773162830837962437177776738698752231084240062294382808357846262717170985219029498153633079919383328043742815794750893531163998368584290273643490191357079728648831383717811089274978729101944272368943620225219905956555164806373769814266924456073398173489185633502680511290780299648943869928691357579007990670134576018368466663780685523401388546198969626169674331523968996748212813254658763466629589179668675678481928611412976933221751592968925643736584638252524905003226449965686434787843336345501631605075224445594256479128263004620596300552030130563442073291756371546854956683991741934226084530099251535505202338264778018593141646064771163835597665697030702995441283581062554581281865167749772968888338261443864929951104953981542997515522285112041602463850718906862322008097896069661288724033928115411371804638967812334819083264544427831568769028500390901428841313257211744153032355832215165533764137016913133179901880522025741888628188879689232177003541909376568853014385217117928692246374071307276342752939820064277760314306076561055748542528819557538733951073747086982484827402297691738442859753545896308769163248463482557818583321515169734737871582800848634551186982036225696192277816443042093728334725084869327277999359249745150921875580139092131637509622991889337598870285571330680095956227429853814705348075314876274762002697965716035171558985209143299165562337923821654949425424473437366931371384461105591198428802008732844254939138467551484718556235176026090398180769841721831231744972236723075415599405210291489310960562359956624997482559519804861341037426521597368678830431963495746331744756958520422704162536890482348730779507565757053084887944006480838237652502611009729691801383598213867608649788464946564182257111355270581218800708021957532972156699268466883231921477022965549795973842360946129289358896684874462541070768130141805549224082188770837211465468905538531170668070318964841766912258473926974011701203134235958590574490502129830215647331529245228276250991043048314726022354796377744688328425226659098303949735957187316902287718634164139380882079996825517172898137867623700067123555671703827219646549709497578740330775676979953153283919376920724779184451457367134690369158261889777367147559723868287302335423278457229200646133035535558538929453008758137099839229405935542409362361398583235267937292796242101701629468688091886153108225027345403731522600847833590181924339052910795433143384509357649434551779852712192445941225988357287510504488028880442064355191249888348959648298492897054417735285979113362646332687920719248587854711932378515816251171290850356781618832236233629230572623195331784464611001231825665187349027335735452070056568339858914950523043402011317528038605239923038764530897682655596578392009995570656560170001057593487819037053417835224422557232360492664084889199549247647257448695778371891381150515604737370276997191645267163328086296708175956196192484975837356261826458796609991849942647940145085512048035593184273556362337894979384094577886422055813362080862553056815759985655684580316224009526207164388682030100892499238263206119563941225650674016146997281238038119706984351550425853820824496419965989166477935327289560608701265886000370455776226998105328062285951092920508572652674768262949821356762653312443470728926465643849357828534214437686440536739599795774303066612951917919024588243289498547557018339889862293965945808369907333494183698411794321924603383016430803958085237472248981876258367856507174248990536150056577805565699540042874492898419819912749556711256355497218647574249987340318102220825027351062818602514461825951086658639543648868866716391148206597107079603890722439272742644723758905724261356820420260388658511726953396780922530019001425597549933960694391386971555994077062839990409681689420988328295505318405593026793792327023951211844031832762382816913989014974826264956139506104460407637235017147442776791400600346063671982250489588552963630285280245680987227351924838784834679341455668141995321957486701166040590121546492866387722930191295508633265531050053128392679205906404772598017624174026253028991149930994734908465992125756565643580647173081794202270141659311088825567457261704706948416807471155334137975050732480360526599930360541532105054841654266276524236742730715023538028286454268367169327506318635501147181630935337114603193513274132102873219250976141286996621744291419339703015503286474753725704691924591664629889595232079722869025013399183935777012620658573942144097878475749150239365992187894722318216740007653975383019200891938272613475330496350990903400961491736382593699170962814791993914153091750824596164792116017082558184675922398506667127506605756887423449721045426703646557025839501836454094712327872278364804930057888184312769728077893767572397868638348192857862310016271025583634360000903426246099265381360069984240572920150930779014066924480387645086059468682868983708361945720760566262764108555879241404701371906893547314970521315494893583903736100117804579850317829671723264670329016399608122717985317643781776515982718811558363104304263191969606968526545446792452388905621257191361412471691583376816452545556383001430269842896887428875680868227056705213847631462723023665655049353253862574057728286793027478002984364647740897735838495588876454019565169831876852621747607561175044994930960884255358954642297886164516849700705916318534599888284953949420267655957810102376840029405444749507811302828645588969979743181516230951087759739713333683612186131615038309612576898496937803436907748206225570391078462305913352941505956077328271078725176141787077909042187723794946244494469454573331415932988742848659892360320186264334326383234588481220225225171844660092477076425143686592727461439024989989758522975774301443911033569964286557335112867887449721358592617583347184214394132081626330227140940208957056949584309071660849675126162698044133939182407838029241020916768415457438140551176716689340970095093631615204794031245401311808842346406885024189341019819347633140602485636124558287291416962347228460412847979188036761708184367241052879660987444080911010017323397285662953277105718637803729266059265103218608498921325460598842045013118958763565754029362471380285938908864891637189297005780184111152659159546728830031079751612886935622476281407836631238335987091151327375122570601085190018891826117968182417971183501360160497210438525956469677356379652080060108730596229509404805099074236102326854365196950193085569147829579897550364290818367577818197630331349931722945920722109323668746964558695282582313775273177847670402594371688594792708915656665336984685750103545904411086128137711875788166951134062245460254144139999885894049222773710784290599493046123218593593226414662472438426033177931185420647859830584312580052408568956624919931585825402753401088793002498644107109491949192629179513241616942526510777154436431063799387361715245094524155482363723218089484857153708462648970207178716289333682959873491335554172176678655635441618061722688909333095516631150605771027640947267834658777521151908300538142173474759909788293610922495311407907141967463705180477187376515349536793322537729498992584098045432076661490418934453605066605767016890022365047526532026969451024811855915576349623017016049132658139523158156451511037322165734708853061500354331895856155945874859100035638335903350406204087716907760776187298090517904391350492626863680470410845709035431283953277054332573901119459690120173616941008406758666796000059606502005880111172165787862915139232918745397865041051195337436468522465347547642220845650039619291828931280564319552004974566618111735189496845227212340186829199173115886196909566847210862051273166062357334889411771859082700126690566450023335220701485018888939415593154746232166224246654499155087470931406269251278088285394700503853721818451439720265898016776937683360055754185116779648724664614856717228299246763325811216535507092357697640528162124222945804804475225159573013487618257574005273786822788865176015549128219259988918964565589469093195136859749084320851063465229979852006905497452163393632838854903502401477516259833758463522557326048442326988179619423126775254079969394991714155794439470733705785045729241427802707643681286771399188259228947654366082149995646414613976990363764483332163141657716268190077501447970067675470131382092322170194898517636283673234330360300039833876461709432683860142543170182391959039721337675968173528307774555718026168897880521058098462443332213563185311712870009596121357101078841654923476422379776431852515444798741011385309692321901880262651536032457437676288802800421330805068886483908935259710063888883685442542752228622974906762895460811741344322959760629023714431409945645577217078950079104930684422797238420314418585875336292502552366207058106563518684443797397437023113760832631886749800832730748648535871533722901805517575564910222054142510384733555430197687118641065198903200882027942735874876159617933583547205352126647973511798935878248648123300376581582642395756598945699400683595570437398916086531528770391560124073185648684356946444637074651343820088733463875614627373550741060288830060520252619947953338162894692588400465744336989361009313144547191446423796850886811065525613889956162636797545111103956786320950124059473831293285563921080048934824043714766008455023213860274164529726114945996704938720592806719120459404198019192212974547044966259781813791509284726146614652530942042540686245918682141785660581725137076989720416817834099558271052147620139348095365436616391489605821400329047530566839556711998925925079420299791851577906168689275507543463739766476431140221743239350790453932756794654590927385447869238992681223502547184673188458165774199779030290256523546566533987163696026673591640342340563620626218847986044165503091481354505887592859691942211029028394117910755644444087089752814466874569704215082474099653934660512751433043992125922526311578542063866733932037157446402097799488636788325407684118154057773924793623074243668116625961464877151810411550959576084767092534879578687495110332455544982625273035803544866294296020631903698762119031700777944801773886864309899314019102421067640920132856209877186970531381733396091558577688454032241589842996296501695718471198506601618749201452338448328815314881606226433114185879885526221660659467276810168738254575048756435089728416381838542187623150227136874476672985212427158073646306944797225218854327598037513888613307057487131722506339534073767538972344877603732269248536530121133198516069715949508465327483429872408370169680546552617512882954746936705800498881170869206854271153936320554463505279968660933532205980659701841131742486882835144865692667875169951951938601087276070671572790703073979850699737942101386600317851427236459565793711332200059868009533017816381376048727054027612966941685984606501531453768867800503310593180738186136020448083588584890644142775643198102525265887428690237888257690055192238365805741355362128182252021233306385878487411483260585084939611994870926134034903069118869162412674020686815593324604342989405841803243938106857205940510431515974063088376848966877310665483067959237267424405193106634674076797151526475368788536009966784751361870200054095843919761197412300875033253700185908294886860899781559199455468121090327233517769680358894671035725045960372469011604521254126886584066066902533493184366035757031428757555237764015866299522633165429660809010123508841147081363916383910793272192788418785798516962430916738710360722688705636141747427315079141643241253368146357959917690143831920533353493223601352857263793884915162219973229082270269245496422547624554042879388856719857210230885552307286947054826120966674644869242223831892612877654170658744205887965384095159160355272405230949581571240686304239350777209688572808126666462196263465171124620839324736823257521602655067226905041083070989251464562842895358779841160006352972840030967772495881688644740763713103953912754627568833504272066975335981531250025543920693846090258236930530211269017657739670327177477208363146016972507143395358958716883413355131416563807249993665987891897615563288670630261532834916206581550391182149657587568980923864915490126213260320501725628627467540310928241666502883084043068571417878927017095465537461337257285718990288363288998946320855881138599816539261795919195667686067738866817115535041216746398785718557753242576425846633194340494496229802649331637273415891648313033809128602707736339901017606057110558422058100677224372848572839012162060634347862325773394889725020023584289170170938855787056293411193622383339966716874817614891553554748831074589874916157352822211100757704233921108572553395111938604296021332668429101354041876795198497841819544681367898718970464765195244759136877770598066523901702842469111298159611129981812482648722890846874091632566501461138734452456687696336454241624997353550875837900575508336044994116678705792758724131330903984139129169948006417511805406789177234331078098259306272254419738202704736820945707006239666182595952984096015899166208134826840359344150486587500734699869281224810086945036469020295390986398074779749946389433534763676159741964685907366377817117529879500515012609523832344233872121598859357759091426451874139253108270738370745233217567054771238727605840919195433597002752377251553741368989308310106704034772176963935832784763510833860357576175660455409870438839504896724281858004540727832959912178378909426395801414847090320009916600762809688760041331142637714904345241642328389571341239911548841935350820691231464676770734841268381433655525395950044958459444775036527715972607979565816657980293270427581408723996300017397062211581634435015980757265547390778333796455056526309542400049407709575142606040391817855119460310707376088118311014389792752525426740914978038345658376996776589640004096007530952304695363518874179811352176812227605895399516492435220738464426743631196878557329436759157387689211794955201212278445674921611596997227734088568076381343596621587593738520376489314211667470716422959415294190579760598569496792979453042845550573431331766505288792328631470165093094875727129657873314965087718186834249633046959250823186314428714197690134902251322240361208858293162378151178732442971449676412117200296963645575949346566419417936988638072386698953108199215852225022817856597699480824470282742285736912229881610488615538470605194975251594760498211522164436970395784873945487170178460472297305273941690940430982209068589972666672192830164069740036893987418251329113353301182786403844146968147212411917111114221301519416029158990262216900216561061879020518659204406759447583299149634120939988964709344151033571184893499343087303767101535168705273880949606980266698745729311902751324028807555940491640986759477197483717303496198962451559348376963962402280285286952225557674516294415251777426203028817518629810652833966157924571847352547175210428117824490723425903444898756957095204153020466281510659046550880055145313652307748465518939799339481912122681183182796780611389548998634809736437646496216902264304744864421602811762879404336427650049972713504672889146792513291849890656790645530682968544618101692299106358817286000426063307225328078554907144518809476801799117214789845623759038905728318998758860158111765405667181239902582192666476215421451852888669231411433243802521587757099427386070225592688168356352168399308690784324197943977753285235332042989361056945928039126703676658325645224302036734856713146682235164231059858159034485875628276433540966311424161400563798247890827993088579816532310388270938214102514940761624765875539458274230297947948734361547843093371155438880363014693360500961523301491003584508058343122967200975945960445794778781661150534800563560396748430272871282164181724097163669115930461070604643777632957789420896374508066886940011327020074088877164423520852131727446144834950644071080312516483940167421280931432739354875836025624251976686443459306875160828824518111875898087274308513452082899645049047175277299252624273608945957955889931451365626923830315948555119615012634609732822400337905506078318016114812333700135087312724405391066183871512061063767507964990331786274262650725934029679073133197611021965492774712584772036241221805924601172452363798281800898486117099642814536569169153844188935293324086075208733777932784315309714426099256325671057371236732559405804990618792437312503389253431015918414768834053408230314094427493626080515198444045532905606682489273984646794906545396185046762458050561922932055005399275336248281169188816238543690367833561496302650401295613606456387240244062865136170901453656795734927758328626944402030300726430824963478083396204983009103419297125897968936306427958161036440176668652490053703582595201016700490477235830600001980939604182794576015926161616237215626157440395253666496676018686687092544568122313500470577324618098596216266868326834166965170640708297080461333799038467602654668299844230085283671593506935480863721084197394765735079750513208997402353167211852099848415164961491202907491248876553185284348939698151225374495257324438318727969961554816558550779603194447795836029545950427608098359955611206980257471946584742826600249400450318307372347366909732591427953598849476990122746249795773125502485358129535665798520186463234644692754108026271393365457779753944239355738262168713571262532129552999964154028035455225815519899123263215192324652017575615497673726326217765443249392211075842682905315107285280411816769751492192240014218510128368754328583041832383595310270919908590411641874143414082687430323507471322647078882712329784153826397329136500214573011741827814878041461956314863465082389263608453930629400558906905795995441087713685626724219360021846314802442188048102025511911610646504907860787941184928436220089740041036167677643503848416567201933666154595762260291290767052443248483747438179919496935698396915197622928796757714149045572298013569537815721463558685817834816014938970962128161738992127603950299993547924053246078879129950023193393716513533375439127773821827984374782400719081726192848333907355573216716231802638371112876871052491972825601259930200765014580383423923940049417173471982781803572514965634706518644984603362754736763112185909456303237653135325509069835593319301626643467372951853654773267075318009236711981435084097945363342692639027865333823190067355084655116125861243144334018872051145902152031196663479917501368901220265138975265352605140935705802196160056497576980142012200282620149580015354834746785580834217598267908315669363386638803649937015159263332227445117573596882797113770284560790469531897829397153296120627376735464423831406806840879854057134041123091613931283511285852546829121564229769212676876742883435443768041299977188601324381195154683341176598180614680628962160430386019308982741797184357185100498025238696798381108881819207678554076485023431506023456561586837218618598889470010629530536180124144441093299623035140690382298576392567126955830032860463890023638474384818315313304901825155271548514053586414019696242538553269081930922280103746432526870653965663339744952784206432940973795855327071556654557329218063260327375387994069214033810679516195196243846954062335134945049655510403881045795639141821827368979016459681342843969570435378213697252660919965845268992949947165597353161162307508303335195315393413683354855822209024976887797119248856005786088967013129441748143882497061467149185856989109730951518835230433776088609520554556194808481752489543467701657906865481582229344232110490816438523607332110586924165530639645458524081797390400127253479245293463612751036137953422129282662135823518778312669697296454613842985262418228079027222205557806960897795221482424963141055527829263286879644585682216653669137295342852695992835257294206345018447062219502160575352121832241871855330214276026134190333578215332652767951962039225372480753233588873842624819972013528601699793392042073042918687668779844550625830796255610138857089804898767881560653446209894888333648080922751733469725133963464498436090603622703919082730696879341001022211437076001484714488767871360723901685243313675221821541157423553479413804132696109653551384528199809296738585857186837818169849183570157443381830468465428002886469700603869283369629781873291099877324337286494056243731333934395236626243489488440005731227600051737479723142269875895573287658863115264938458746038590082364592395088834912900547283352511157859325499996568078733264513974225919158910411085165493935085180043088814448783263328362720913487908040169774057630800269070046156339498834913531046218881418895649274875865682396681707186418229997111204657209796990435489668290235427784527181810654516564917249408570989019931751289718967836015313031889689665486099159461354473852060010583219501272577542879928225720542563269512342437646785388105852083939798625635615822832800880265105421494636234183862798388564837958411861368532013950100514161833966899881466714396043564696655709405571862947369271640599115474619777935196756955165896080959778011802062903700094242551794499710452860206022376840045529128505805003515670683426847684920641603803229945390773784450076105207526262184615811028607559937781473264554014798162434082456878852314642424356252150416513846769927410207070486418721051602700526592410148085625655363567014596999555463776456924385783002377570160310462409353934702237029756871272657559112677535252724231574866913768670598284525179744394711516516720308560076504422644880657648141305059407215572659802876315412545197626170009608253253090877416636528906294329189883676263979605937892130146530483436540134765714811974624682404688986112836086161125780575976933759579241362596926320366109594143199915691681904661167131974093021486871029181677332383181115946763545876131472382761857457071820244029067779693585842072241296907817745123635915867033274029937413282649454963965851796813506930473697168869918803397682710511732634033568993464173105889952509976549349856549226912900196090651416485286633544543107525186814646039374522867151642262154992382507340362645443189810337210220899514051840243943552867326587506977906208708046038198350900885344197973887178907337965528383152353300145609454435448112040306312248999195813160278260715765550596577010455824923318462633209814107145619855623827754031740834604348814869751997388484613582789638022544033366061748578336844556699590972770500864702883917220692829432773219960279344580658962500812233119056756994324252877909959459960692342785845425970423568447542503582130529984006857167357524868720734650969425513121987542601284150443574773969911123886888446355527375324297936972510888237482449307976112218505696811131056856614786100276086701177657355479097155706186016079931365063739653952409300328328905637642617244126321611604783765459410104414881635146266570044087653159378301983572215960593041621525514305100259771456284971537043057416794302033301152918457181122749140967211096003541243859239918821028751949137415155138398983797983205106009146537548117708617138384781888624251732884586884522742892092552918459181256611513642112890019399192031442697445481165755234726632159569628246381439609868019930127912222110559561199721467748015519689571114994025311310867063968858497855422999775722928285345412089423602273877557094429105498709880228283463890982164910964285577937385088938361633149747958736135645248472547197309586921809550062152041383643084712835345012594840398194674774985571335948337826601217595995874352077762710630947503455983853670467654915590875663083880462087184649030028411177724699934872804808284099006240188989537476914621299580628295549930497640087670687047672372041925063654846730374390898486919323426882223373515889859490278375410612449962332289877442896909154371863139312903537572955852501050330530379749450049560759833442213273699829995783681724308263162675231765677389868919015964807088438029303326798371935297163945699512242373510615474766300511054302798375714371478864725316288625001815079408200281600694366860429037823915412765974291705339989681257888537501475812112548151879871864795121877110833712426007264244019074696372981371967447337559755880585789307146824520009723194249682361306784813148033870212330370005016731406275152055887770930937303303606803377910013656672800018649861417628271064493202263253525305343526972159076604225687219887398837900419002494540081741389320346736842209119051852231400766402952732088952566518736227616442340743598527484036407164567088592295449143237012568430704271429365608899530037611831401705930163945564134922414202866640432200641561893826479867565027245355419240847058045008193859887095845914184907163419604935486076626538710557216603676087300687387081641841674375310982814931261389833996233324990136794537528490563496663548660145692140659689756379795824637361481137744278491853143861523309585073251733702646424010952543174760138518865413494751532286991832520131873766018279180435887793759304397743603737666859798761538035657288272171110197311645519477895667224590820654602923501531213732361981664115539368391717329977151157198198529362445902994146483646308031198702012537339112970796757015163255929926825843935592728543709035452197758324351808553349867132917286639243827498489308161293253936910413983770580376877814338998827440466668822494296773017058082357139224453032390391394044892939772111249335218625685538081131240326607576572844538641701697512143404769573806673252268797156260714911852380548926166332134126754157736408829052938082735425871055471766159560768105244177543105239719652142071747080677743578043161775310720555206418038727169253744700011680990566302324806448264686324969516057700431041629060135422963913573385276036881817248121531283352826392290540270502973465499843028771180238802521254692280276745040021558331280343802029810282293655225469092664248871821994729952877422019343899879656850367934849627779492025398605096150893568906386263152102359709961682827101168357042217007012250518082011384375074489707297736780473390710503532472657819484742190012539531403735926190116552854362446508166003637814033837922600849359889462228508085771644877784326053228210041469144799003610117244466984126485033604419973314641857086392610958724135602493937399351438454312985763874196309626172903985496537790217224390517317841093239577385016352713487575612200103846769947080952564368422083372324687649856378025072345206232073908794809254408946906772110649833750736965385060360950034066750334871127713651999233715029904566539806933949105364140753736179636964260430900714480819630659536037429157571589700403575993696166651353967431399387936526301216703848801231768379590326838832905798235789887879006045898818500640131720045455175183560095179608304550214769465173196154213795822560283516753651165046237690067473753870615299973146195667714984483283352120709842613324319640520927140475591062205350875235854713208771174244509753662772564202656469298419163954280313158603738556395124289606599400137377418887118411177282679636413970477642788223388480217280499711090645068856668281392855744298166496811834021507353029918691540535291293336221372719553618290444138342332214614272440393993220919939914509528024222540014371679590008835458218961444400176556947045084268764489061322417697258582433230983873314817773100187206728158736867192083932163654377946225041081278569417427017585089653326612481468222658195946425133980152144354972694658096397691659842234644578509724976657578118344358285229858024042310933811449451240593423044270002310654927954926736183221183430613947797882506320959824457415178064111888404251425463694446718225633216556501459587685292654694314318035814520600559053512889029199808299121860278806720803416367883910583420947833941955950603267136857053603623022006423191550662431267323945952023670355198291337371563784057289855153515450885266197206139721519439516444099035217096994773165701341549996138291710448025922365609898225284210187992277282606169509278819182544111155880071273798726698131097187955645883776888496525459328953200486360285769403835494414038324718964124209320298321733967759848599025284275075495222391889447677886373528087663043790223322849410824698544131928786555469867558291370321610123998624716471041974837391500936052606415698560050465299428505454867943997846320951648524616506469850068500196620752993747608790189629186566776392309062068377699121531965622604103059174960609554625797070445078991469735939507590743513756697462272780338955580810965474779716800428380438618491923493460286134384955460898803894425337531140557838096388765699123231463601979751448531825113347871676905438773296048871071419112922235525146773831033412863805258588095787071275174487428375883930726627427340431470217149643876680656143870693318512821251146498731722457274672561904569256732947990980610014466732274262989955617159908496302112514794638997432995661857718788727379474159854254898550846795951613411487543512593830301443455763069861943771739102796334625410958415444292033482005223097583562456793799480623165334251685167096088471219887644570569957418253522517113984285556205035106534040457916037970650564503861038761924504757025185351476448725289794967829174632709378148346019880557255397445857173196553497002979130984513612293346358573430657322428081212780528274710889712509242425972538005246877448610016888621435963510234188915731079366715044809413186012727200908094975936019398951705007337051130501840912826835186935124516764617900584293290734989469538757717194813054225325036016730661967781977591701989254311663018234887194426942846122329808937351242195615964251159264092987509694604126399784496815039018602825212990595889236465735946178075408692495322560644689328450479555209782697919186345344926024356574268511351091938367835043816858242532904372249526830028496646146591632181352044531041361683857367835971984188860404363444784341980842737259626991641776561597465780873493439895533527962301177749788462323554484301757530840563021551468294316074836158775698297663959879797317426695528623542391791906221488473727244636313369423665748155753756890780991592289541978083665347904290956858213171312729883073533747650795228262351153822980125394783970591552421686030888221697385593656644305804879336870775432012112347441684497744755617044161058774888335440363849096036516705188072861017070906309435828581855656282818155609284341671093032883858387943932883361107353260534064066820266224745909129340566476111377478866135312084460933267879261980895112040226700879602282929566049524087475178106131750353938367019667092529049686335853907800721385379436736169846354988992900102110754429152498028349412609948986681274615429082755672696303301175324311267173811215498628281735211226734251663292609078939082060236361747709882622637031186950302099727009020479288694279577727141981823111997335442164835429831410572557527950396008688305481752023822553636675114292652548471677271669559599387748554656110160279391415838765951666347284354843454421618402924632033176506890893529953237875720693342462867206708178336387085473693903552150212795890882494320156071161313960091388521006832016839611527953255961347816415886742267555740553261492348807607307196861021080381654874865541218927939305992871957861052157905008411530221194482190335017391564138413387441255613887213647996162034602202009009972526257007883114773595363655187306057400644172746864165992015535114974963455286168384644156962816107669176489934895580250914537607964388090780204760252024029789911376231071504532482866415804007168302789343991705950671489151024393851645470524459369900741963883234716624242916586688857727719537876818973294810076938857492127579428723234165321947252095283711496725303707129948112311771803032611770397856717723512726781273852070628196764590212988305985597078399085715473975798984508251315791650106382879766933231162682641311228329915777565953922404890659839531459236677978770981990019536031024017024661237419005783643326039118034752954036307242019168595006952908821362011998017984575099967451235934660232980178748497182411841859754976562278069555182891028257229010069850448192537228850478926094823003487985521534696265290466829857002152368885740098300249502816014722293430398962993920866945978581620579622923946519275249094825621573395936464715482419780852313273573507913445177460614202374451694779776298935174653584047907199423000560097662232033558653608040184687270650937212459371349197643037293609844752214008745517031284665512713527134874798529821912468806646053721440768358308466715465928545162368886859046558669125832871132184788858188715318503942239324245002086078552238034464373868914824125905584011842179844463333610950097140117514207055082447523825273430653872387316612193166248542910967566225376574272053483430799323132216755466997696412199406306903030623757786992541516430811845412925890699904547096759853419211490037298848470310791389325707876015170551978267222272594546708242732465625235843315593808469806132224574605297340553400484596374047393552045756846587043438666989504665800299806300954917554088345453918846804647121662407946083941044127513402666553703234097964139469335667572062742370161159624949942314860013229969137322485840886619633747455343625220535588209642547640337296177643554025959843931986963218224198349581272169301594308187633337384213171556087903625831623862557440192371879146958647731999525025773492752448786699385587073302778892851020171048276563481524851726864764345444218429027386130299612739433862238015253461751088530410945148719331567345246494119130000186778967522066839742348329231079844696753837782657982382953425681529132608366830316170067336482741007108645413987930954094368268515458970709100306529128960187221094273147208421141937005366930823699819841569730034935244625285564273711253521716507272221917283196537944257165483697213443490615486448285406803918544670877931409412870800301592213653097819310800657247744211192700981733376374668780568831915225928912555682306514801627413406932733530194019500735710990655706288163323181012231876772934319103377951998510313232666612442517256289985318669970736836837203932893071066291364307260955860548983931101834206112318229034366992384254212270263562703525243057942652503255585034494158565993907742922051757018698624292115803082044183333716623710251911225638711635589951642419204788585412590214565809162812125175185305386644770195836374211925055897484592679776824542193757959692989143572793898282421875573635195828323838468401952972962930179317327541236403773609787984825837140048775287975052348158189144437094392890488575598549712779422674914633734806598132363179481375612274650139778547558545543261353525933153486550575523738269800896747642257602370825883394591741650536598888920838677388185946088907346587866738823130820955196149336595415898440540719791194005848874875831830469328394441264426482748902940783996981314942324375109990185717612286668510992917130351407600844662177933432731863229327453010617955287790974770928565796279764980591611153106701634363499910672723381032386285629158906081796986972380209196254348119011992585792916132017680939930894339028687773157440774542450863087150190453091717194487298211829079906028297412323116131090453860161527776895851582595951341399197739924550258263677007278549041553197747621752263021010129990262101289465015280554616474582867210506332032770255844621945266198247962845813037433539564488204917142616492457821044426180883324311673494586802762136483972380798374930708876684167700702024607434796651043902661690886325831073768023490895234157112283038826216997735647070752550965815060122634495691738856386921213543654583902128341625633474853724401791542217362196964286074589925249554607096831158909258090167930859109832784033314246085643877112120231538584285756492387470250327943867014382251925377127242432982080599472779253166230814427851020775651273320782123570981701872270317478601956788629349781636357473516613587759116149502879833369686963518405655763887283159952981015439562322155383854863958914596115400832037055762241359947383150773852909163302594176193059237300938427419465217606895897381797007856701468096206302634388432617809890170097271287154693977316887741149066662548332322224934715360600267236784583464140818267846744800458118767436526396894776262675954250388084050344875661669850203775947946821931277828046929644301364541208565846049105090177536843764453111239407319648747745517821811520585241343504330561342153693883517622600336280492418413800218890923046619487522143312558240248390883860324432571384725622446611852227225132402802901108713759706157257342720627941010924873174332811994712504984448318024033221593729989363478206679300602943056255643541788734611006204550952035562807492352448160150827169980813599123853288211814662371974906625635125644629218304059614526862836849500484858976472999122662493932294505437633192796775863048549749802127479927450882047516720023465690907807348618003895316870144992033143064034780416568539936411436231358230706531010502675498097440794805749694270191797179683361090951727316571652166979638210144333012616180781677802674928396779414221505165739851002588194762282871787935504303867913497907739396042882852030540845680065532695699105020722097865300618405374580819998921184930445514456114614550121712324305327138390198478497335149798433683820623811149575196109905817333090310357766156276265048213229924418584105943974132066469316617776831746335359829640316235447627190464908367937246466635992870873351294286068631448732039683863044554098735368367934825338016263079145976142134156873987190052922627434778040570448938966644831703780790036814189886877301814999939122694635926565169600304286869699094303118035790476998609974999140983586174153879862473770827580888827594358466047535485293607307333395349201305004184825874804591792912941619240144211070582455888752529704154388239575850298598869758170855013849201368716414170758031841154968487841207922147614847749538242509502643865771556777638093825192450267569746196935974296985281228508121437551879768258864410929048535104891600997548973158889644056331777263399339745703120889035129034923421844833319478267233413745818540396678945191150413477887523830260735446739454632727677370060142587301457110958610541116308152780546318195032580273955806536791384292694020621714831095125960427802559870130374974448777647704945902701868204177266834175499564346643301381453035974615754825481457327905239182201718491416844798708285058679930895728360465048307688478648712905090837114109356032717819456822207494989294320310359059874402618803519295367619578683902336815505499779562548432910723882402398872124098276828543665120105275549971048411364367124528285585268180964791996790585300564644799050659707459980772790422059843504813497199865974531540313009937995502195187638328663238874487266015035524748558580632075209396953231819628081810213011525959571645168082973838341725667225238144006725256309778882918213966716764112849664248296840167885914238878779654282008386203274106154981460429897388240969628344063634159965808805809868121037467643918189032488266549113358268498832272015443049834803832526553449409353212491006819472831906549272443553236483077258060066169593945062314055426481698343559368162274376189154822831069295170884988294636940484451680276526831711297010489924431590113121646851121095604041149715200950909506428669003720954557757555373708187872134737272657435841855012610071066067824962665055954225869402232962218298830820918611306189509148688988483641373886278554953628108955026786339173167913885892748942727886473133297664867259519208383259729957406189300393785715616386553649004188129859217909280195207068220338780221752714218532195186979129429483963629475416316832252197255370395371144869727028216203854428212984687381223185848469735686635641938945085789667221021726964369489728361805681334576052568970797224482711398038674176101400860290412807907813477395820700009138701691755279738947663602050078216367178963444986585670758424712260971500721829178638604679472667291719091272978369796448765667068755727350173777098377742207204832190509334899998630850981096829577751771272781772120323187381848738160220720401231105352115745256887970799879495051527812577275278569520704685928271558221266073273392174726348057100653838283577139603551361865134306407125474455485507519872745517628040294861699208447289477838396152185775408888424441322671173133528253508646169611208523277644468040219689272420092615047406585736796589310410330764116283674230875224306291675086682045555964142132349764383294240608479981779803703793191634458206906432292157798955765003443118263975849111758097486451722838258489492853976103766734517105557043347446986000280668076644995758738578880758463675269224919133586099513939950777925184929916028853242777379761238299581447070902232703246476308181151300787715195377316786092279035172297108161283992460663212521031539330341058233255908100229811037048891044345620340288744492600123128014380959642018558766086755068103390030842873543987263811436852946549623850140678160448093356959085197927256594220994416158622282772183966193229585577501268727506667183923451655713905576429461369976290854179992871652707497774746645071013184637528281246230062319733371648161106850829128425186375108022470839476888589647919288116431904097689873354574745219919705156927712368020169736625570778163436625539052796243276999784131148441233542658709999627328307821576518866836460614701337428186944794917511976942797891854495696141992792728365687422414831185579550707997568269641558154160265947633442503207993871942444879280148942779238018983236479746015699865867678033299105657604382586266475043479463477363060059487116830053639417643199062872964531208674876639510830782101379333690161616723862536224455185777959201453331149543328856010099707180314197732716383155892753726948985797356039378703265955128646699009218348276864361989582670308164478414630471585154973569101862145857437225677980857600255241635510598285872849628146680428283766875884764218890900442118072423522160701271849722894389624179161000559377394598074811216003060440483518241044065782839945685727443506431702771399982856534095163249820436489691369295941659050761781106122667581071583234843771586607238013612534071581197282283515948075483889629570431285587968838509356144151051857022211500661219884361190465462561806741010945923356852225015943750759118048083124897886865798924062048016408480366964925615441590569763748999783227982508951795575499227327075486286564451891475720504579068757045496618902773917304667956392736799959496749028503819441749455402452406209384374351598080038882226233739076922344021662336535143963518024039197555759334971432434533523502214505839822321686703545658471511467169860102333417683961810211265568449473524057173141419311378499096512557145147756035348901445758760336044659826130444436228379812322695961777365023419216842739918033391904669587357316672078114191294548885383632473573272924009442226655537999123749996839268607912132415825895701497554275760966177303790574152645064744940112040133735704731038311687555589705037745707631639595881052998388682455433282387433378215616352640891577516933022321499269697772879833267132938830654449297621541809393111474361575369955292662551129528094231552115264374350939637909347169266271837205044817361208145394062464628752461549081809734865010546242158842613487571060900609270722676808335763610889546564689176524471749222043998445761915043473830453770762124643709480548791877109367713980027867453319686764798583625778440765664409688462671260547953073359514215422650305199634415433091713993213611194396547975316329502755323939854119084514288524035681749198513294648535794479046396121085584857355599983817908889616541786624068877759939931223955321546831668665001609526762624343982759879270410568113415688901401579865056547897127651663870957956441063897939958108179029745099077120838362679524578650879883536616163753833382230191993775484717491305794136158836011986050408713125773278198624402085347420850488708396538122558529179184298458103320560658851786320828952442921670775534114235540681015503635464202657577927672222421178310257583163428790962072124151397899108742627839166841948821938706501269795588532352348192856583376353403380133699847109582256185342773366307780382905967516654823807980918082424449670880604286472211650808739405927582137120248163727773119694514527014566015708882538227964858923151183637669797148325783032695342036090921527324515970726136899051555542815595244870498569006539604643478828148920797888865747389532847311664025248488987430575253531448876558895748424121749073211279927907552044413869075658999634497165057329583938519927272774085544384681447634099539811614368494944673439695174259823593449424833079241749574056554664048443658146171418066875440771713526067985926295653232809344447925318299560259744362213025879157023517632924429540297556385582110202856666951276253037768806892507792970052447111328108085427490103268685152870368217466191405810410773500500128817512573315965778515974899378271399716702304988017205930265999956752103738610731088871190011038035350490259730098472564018350895304186305100415544930638441250640714553106923397799714624246420827464247027765066761071361410566496995797394389918320259675612900921794692468060462009790129489274879278966129306478996571932520787560358103451732572801689006008592802156129394626494275191810749166416314886862993417594983782157743752510428926949146204041955027802164720961035698459158060916247256375936429876638731957386320247383105830593813163268071009943317661051954478819085727887876688289427810427631746918130972632114044471526939857453657922452255729049698564302012069519021148589961841087265957308628508681674948051543730394134793226585062723659124221356538080643930985327184593003821739040883615089297881865778852477292007712570995520793597986415001715711816620555904361508406433127360405993579185658442326060713687563470090383172060380090564969814612428507475213334996781880786239616848826056184530096671285443505245076954963125159499615736020256327966888328532437891890313285709293918804735077465899050981470883642429208789731707677315766817387631583457251116891582860679574931872130643623100052639428460734440909620688052374912599926148550350647066454317847691804991696248769091588996922706188348714846037577244990622183641548933402499660121715991285185001392496396876670314243333968652203261138580393490662866543670632789315920627193966303333923270199513084555707943658334199747993254244194041756633609407482408116027334647041798508669832328977313382419294177571998942068546918205648278515381859902795847313856017376919027738873924697518863668024812608156656478754891542813813334846618455110485595096136091255511016405980492014819607493237213316889692671097640794314893292593335977623437881657716444787003669405936738203188387506540783475911339329025037158979617332117170621602345307375944828769213305064710766669758458841709844132752254284634962960433996048892926500578217174834040506673468914668786745687567040408720089581187838960505793385713095366731889885378593563781820119810628739022157975439972093859394302875726369148278086037365397961158600397265808064738442416645994877531549501572936477085741776766487819133450081264084021437533671286753138174763096743233604943877256776549621231751512305224153110989437638309609608800257090686814527740209705794359493015885651680963576890532451977935069110149095742604579930545435326585799537610870058443997917966570413473483593603315133866903966229731066917974621605335325017359184442995461765336745260424138391953129270654592132357416678226645631968704873529372126773521648747036925302748098072406381289634129885626789222471291510980006863940171463360946022361204987258525497532699619581207168451874331945215832796526169516263999992693445130836378586767001367229420351038625244542823640210928922820524489003020530395501782884598162428773325607104991713240811007536135125215003134076414003830763195323095231932540691619073690238703462867312269171779681135633101249569672902683458570351387450148044637321738167558493810539551530188389458945365887421716491560748427312894491249372089928389717804706702722582838264662417959710629169188765836989963882401240606263210667572457725430740202145369098372731243275496944445272386076466241562813996142161023192878243003552821638000747006538892108712144845774114159289376357013607007978815139846978178950669531974622898659334115166012854274865249070262006432867911429279104449611526043089568667016562615206894704760525690551634384729402400062942264077749544378260512970170759806820632399251026595992085312588045705136962447984999647262180066015998365869358693417120036957932454451673094878369966480490975787967301654555724923086787442744114667505372854383691814061580194113210882099847889707154902174999037169288789613507683278353982146579722264868041118695013460099033022870834961492990877652659204468252785829839857589399613591257289670526226741128254562362146184715737737161675510365460934122660908437778153603901606420811359321742163882602179804075332110967341899655765101692646268256596170814525545360785834419203563092530280895959046564115722919376700470146366900507336962150322876034822933736072920893598399057325740855911274774114043378556083855007869228518093715089028561435415634780677987472866343962978568417258104259400744422077140827631652995573359873496788245872605124490231115293610848892707011092921582117430031556515806093463454048071934643632027411307878954228767588971994028495029896694448705269804592977553538071961692054571291715083643816171925243120031577099659579975624644674409878844323341199447250185253159791358388234823334514469606228986947378040543162128077088774965508618864583598827002160414830431112846975346047404391142576153991401656348733094251296362729110246014468859083963136404243780357999700087623010822839407211156287361053647462993962318800942501231828767010113600108119372828967567092523799969546143528218051004282630060460345893985248420978805696325954254531081830766018092381450796466880441533773746949512980285092941837866252964699608308906521853346572589263708158838240623832600250115692562554974397716058317542593171547011585736976727021202267080917864095419906869123927979701739993833574668670329902448036186534922000880883171932862397889998804155729668824475471189852188269841559421772229691200698693263634306078812376345678305682357084971558340605585946751504481052535168119138481209974503000084307633098925132323363651078399967623536780032250269516338119713599839453310808876258403739757902216791561072768288343266655400044811273807740216451448880697063006811222957756885161601150511832817094879525822126428372308084826381852262189578950751043579142379246961771486262676554545884748094500470210635314010692759835769110610995821502221408199140884568210139365959514628456129651959299764157073183917362212773403217311166013165613698276423474943216122132118798335395957460906003659855289610774308695977063759455318336320148456519062603843975523473022435724667944501842026346564239748429594253789736714921268792680016914817411473911360717309520006694744830244975433693459492344480513328645783077004600548031282732606542479607293091329365434755295689465189774796339451820677867003597995470257647461700683998719372713873922553963317179641461953991988272174841545623341731016958390064522979960638917609334679936750297431211088944571541751862247661531931281203148991401724287635803529956945261292644645162038443720797452745625980589098641299342487143065349708278115134733469872496025991404358707893975237106282167193532660036668968076191605093652207522659800479866276740637327947075787962978570258700366173359197828423675424961211137394866682202102776713145944312762084630320976681266901650499840707525991952480452611016707658363200642790983731869524543029193150204717379986797815673924774949212415623679864408076020623878806827881093850980818649873341332257673912518691777004805069802206760063903454445739545194962240496348581078156665208573566140579515054167130934698624010517235493772867144176336758410239074756540187328779404015803173629095305286630822719567428228654530070464261421450733987807710579862240562773649788829456443822029292903119623564672430744167403207894909454244600274796120177884187074481728988562696414993648999275675876401046604373219643758831867599012654357077482735706570223262440390484621696820339902632555196219495745804632756478857403338309546934646273781063274488273673621280650032070469344875737777662667040359990245840028405897007247456054044337864796590697427488794358698703469455007532072889641024535094577803353576041575348399683192012639863135553846980485690249520892837204953477184096434781490600617344900504458834269085245544654496401981543137194032104224024767092781791277438427420156518865456558714239422283660812503502225478917829120452476138679331630450191571939451988993881104128857381732405298822051208415520519219967903603756539637656930642807742715865359594317767060002635552924958798100364141758394333434379149356826582062515197334260111644673510322900340001495100832706827431081651903652251208860009307442001985946926930988811847247697998030944347905482495105523601182464555188460582159891881252798438916562700152761901182013576098741432621991974708083182139798158568300367602298483201851369069693891793783967418967416174206878942903176044421323575158599996472485860452713549748535038051460290598881395159790948837937311582086154950070241940557677332983888966364652947274511081050527914143178792864153737815334801512502848328761177467633606392137701572746536066861933859977687656129982070705696231336078549834344096866475540542730074571774922622735240355149334700520893410321425728560132788710754443003054263707400881558877275257330648998496036340640966668153867272699997870297380957359840140606390965080913167596507997622599488212463772516660369191886109203838567082947338412396859507430525311096260553152031131202571203891004432712290963054266951337698707386708441002182427552462053472130759281579860819531043416085864929782122635290439693522066521780868301021894533696743072128889181162207517594891141232955812466563972140991671302861021397246955419292046627451005067471112461388243373268032675572671365431917570591200813170218448993441313712984470576328920298696236431118503056785048288046157761192175135329170975055024688630589210846040127392744908793068434630482603892273900028642285329059457225047744955839429611601212205970584580455007358153836247514216261950911170356705854584294352977401604389716746897356328503378552355446622605451124963770559062712420192505644729499667914780422949175663140272041845875032204547347986259898062302495258865100301014448752153681992210734141281610173314579711647633377789109318680018182401555345104221745497341842441449607760124148636241169081791842620239804900537596661729088761318452847267528834483371971724476221683868007303104228649878745108284959379793610080794254995067005715002282894091979114963821709125689453533506303139605537106754641086611311316320844234236208471145062344549834309144077383864507781037220737371022586302565289756613828517916170180088597161041978757345183911959314054342457310706665811343114842226443535282757420167224359694272433038036780029299717727981446202421894916341730070468635544304629628194325915235368891803381759584747025649914210709682587726460277931186462589970841481731350479967939198579581032441894640926934356655321242334414467825058915591443436089834091411611644944298038603772923198142197989640844549215562169501261520688507844352822448914126282235840900769974220723600953998630206643353301814759043824451978017534137719663619308552277532074482607153980013790606241249303258602286153512870432118500121629817307436716870480940463719734315698934905253002804703834344427964004116554341693151338559352381638327740692815140509973775928272807252058579292515607073781203361922862583038405137514643600511779036065053850561116637099566929644407091692811574485826615889809932156540292684631452900432391547782015940766968647101144252615435678720053856868261090467089598887978903278493016524624203191113204769739459228428287169977074204655560256870026693858628819454213952317104689153526459142846850022680926696191428076121605298482267644242617111091637746338333214520996353280165213031101571288907064436967166426697585717109619906800002069071884914597073204618320205219159227009239123916421856349681812472703506603020624781095336576534633766630725948721741585960760517210165518836235395442779361457854905129884622801936436281837972885974230252555636580968594280196465082150517834032127687277429263337250250693063039625995714955367630744617180974974956699765564676353950424170635487593199435793539518103227705738732320888051487114685151519219860382574938756851843441295905244740300583039305132148055861020680852771720991833860459529283557967304521671721488755290380773883872612666658663042617362476515997045421226894546400717879666586857828208863442142173611177936015203736440879582699118308273569307315725052992362592240362190204333372882680860863854518278614065674598426656008716625490783297899994650720303218071898754776168528261602222642070681075112634557680455825428383371398414972028796859275369492089374716631589584616729528761719179746756294261888620514030849186630528784081171915027298507281528078424308101244664373921594702217821611431582396409893617814009350815891557211500690949957140866112815715509311196136982769155389642621831704656325175096418627244159283237066740070865072537994318266989865584564457923961631483025618318653905580583656571741974728557691785561371728060203118198468615101415036878442751367529551812294776239599877668000330652638759635869758536579568666002437347500196644402229696898603188855066634646399964918564696536613336393565871587401148152444967211308732789358497667255577987389364751214088755946588688061306490646379064601171006983136294704211443530487628685677210409053955741405041194579598869029589683629785333579418224859487487955150017821979954169425403793832147824133486693388087206939710596125149073808924796596187635207996567042930602469897146836677241450606331766856629332649240595550439127508111523437959513486915827966412076358345526442826055285448275247768261541872317927580218659754095305204595088220589951906026620546270361730924094528067243976397483136667579551586042966798178700365171363272904469017789227236258287796548354936229003226658875351211754446508432650962347006075066315201138039958842118017512243659167037641629491960020921542322407595662657660014353182144850426439946686483469346341254149735263247437032212077401485925776365830255531630895012709471709962065069900920612638246274433006684695657073817089850418751300516043038293359530271646512781637148203083140118305864212444903291480441066778638427575519135803130556303789191260401500146942425224952089434257889754784992376382381595428995701234494910049715144156631290259069273151482949834538857638065300326260717540933564578400070719109007528033091796397201340709429715419551058278600914569909901192516059798794525985901532067472701468240779838245298282216022977409087638989084038046413172045150671221907617947125820230729271993587879882566308730566452427408085847178767884730102799985680511706591778904270893565433417896336674795861570186637187771484605089670998220034195732770326049423456984662529257771777692304442895429823995007364622316660279058081771903684594551421861962076623109743661139569906582577981298412116613280101456352485968724887937465504419469428333686886961606778213839719610224211122000083204764072220758587002486454466152214550415086316914347330013922560432779286928281936317787181709256572915360637278722328200037274609611224299329325145980095820686609168620598876608558714393054632621262545042729164966359857318048158733694005366879688889973080253125595804716184956980817740439515505350902434542961652488775443292353883827583579111764099592291284895189318151722074218640109798551871758327232934235405081614994938364314756141057931128944222560582762808450552942794312942957634472267180143011327112729778634511331324008926999610452993848412434699887183310796214537276019488638905263458230088154461689068321521621610443397730232981624856834876485697981900992984226305578464392629202202747085260135726325846899337674138759907639484425245833702565166762591721848046646557200982596994979660259130593072846890844984050123720502374010115405227861384473778800724761850929840932116801967788410555346874710649342297985604422762321522388147994247796113460681061967192461542200063246381262499406638352514132430884219262522613536843402049233354239133196469035080399597092818813237833445191084108619543361268667550982547771697182279411177128934536074618927448897770323314488611243109382596564434766794378377422780405615819309018386512369493004600756879462006316295282748741393694199003302689039099544586757846106943530229559002522283375985995586649418818662972373837797117929703218520670575022539001371317761536908744940414066880367754718518121363297331693383846969446097208518898501653980033909139670211189072893491905523849532565157813323455458179790232214854101962710479430368409499886906081689552762129591124447929840036340142470017198796284508266944222332907254551950103237091020828488869869447157701541264933518462102059188530841523464440342162549769686256974829897726004627147290883433801975740089312295842979655431227905627827263241382200160667471506382080349573584272157103745351142492174607046239885352176411027899624176156353242369352200820585223853746626766466329501943566558492335846517795641547359280481852580978169057530243682257462921817514704399823695689655401542563133911170382595855498072660651179075002842544985188018845706438172091892914493265130559890786219675744585712468988080290457858400981468438635701210690120000773747752032138052798894323536896528692220606115103034266929525986648947070977622519867278239426498010952358560319657238594105819951480585482230761558790927542256160653875974562679676502459618946622942740979396758571829337982173100334321704135769630013641419937675798760095555899041891687540128381288164585252432436187020328801641222240482430308736712174279191708612617589976448089381226076093473946490990000571915533884622535757231946078491997050033763614243082478977719880034625869137576339068214814100878399458798394470964422572044245051152727885985771496543447339148966405325939896594911019231811943731993079873054010380231860194122346567555245251491123378203229981885918061527097063290080964636587026163103448059369828757305266752838910900657685369080020001974443759415516335287462081785206663090393127731993107507237695669879879242747260325307545172910257046329156542171470537150517298472527836043904494666094872830583962303428279245467934332335295652153118495755340002048594273362992810048326514550952149571382541485298856885691846450192368267455272160724611091036558397824411837663835128974134860791901396614459988578422186079023765796578595951890121066551121857313882577473923429885679375282466494201388453368776459907821358738334989167321974552521115042487315561996217219958422574902502525627686007817401839024270723997033010985599776464155637088783992739523842555050827340027963289145026818011646738960070167423985335884909486525657112741049250764356063433335105565224347248089023469131442015647711981354011850334359758156008115053196010955046196213253810093739887606918115885693163615912084455817806993243628966435401987156546304874798839474911311129380454647858362500560662543362431900661335858996347790979612573259586704303081699135870601745902360143327985849894263785082956150669751794013503766945703310089098581567579121661180316239981592417805025137488508419043620036365536755782039860255751430082754284868772883760744505473562450896873884659543347999006465602383626009830949223588792604418795970507176036554943482645163267894788782247708929910383183262966736877175449947564901467927367924093644421807148229506411471080716713309910818730707027625680216330104340341783400819831429802868971537811973238863129087788343101697297582421751752465003016091070151347399909851791360733991642793198101324484591907379218802254271093808220515981477286670953099432078136121679858095548255390615107908362049947832803127867557587121791076611569544304446365430343890098032531535738729946800840785204021427334905744553140957478281474772962313472862216262346558029792970190832537023590336436685350007127801774565349385091411153940146387545440517350889612026969380616110342149827241698309869204121233965684469625223688974305861396872096461300004734449320055012001276752107212528168292444905251633148642492989956629013205964443837986903625398281339953446949421299188924966604351977617728543450389714462735870512453607717364823621196585797724700958514462370006699330894819740339386832867218628218215586952376387035335335085851453637296452993709494401907082744733425323078303629654162005304057496889083803109399882566919024018569689422830287045382739246319698934858117271996347288118831839329598369086749692547636754631156845167559468576361758595384477187634501309452771334023281654567826786854191038437061006807755557382420838097861669213147520938511183816692534369586405472389879253935274877483313273143900989362752402791555150685969231649578948333185079642516522054915351791024550687215981775362156408664073185842905579051723045928484408427030679923957363823514819253521124302417391470558499534574943545242247080023723055816030475925044062927217791794526054950224303170221798002911806807312023173142976922565794944192267165223603163501244140148643490351750080067657586766380244671147296575893792706838623153987872193319058188180276569123901801011039554883956699216018089653483579827462892355836797700626553250815036992606433809520723356987677609643012607415631395884248765721597311336269915339732208420593116427110654319280974961997817861931183617780426765831182935635417761339429536697801022661879643235548551242304120007281074785237053656368188357416266322842213143925671276419914515271234049289466080942345814782412203054316686533679538909744950004296307801518511198031386244408228657970719130804691981092981204343837259938326621163588877369157736550135855684276778282346427466727588136545814360582871676063406313201121199078742212102905409853015762921196747194881698140390524127657459003267263923714157905027352797015661214127191167465068921487913196270291812789635010192858630691825017815387513662843887673028966352844886319626248110261316136380562539361092580122484049167122149554582358375864055922695266851097879542554059196882598594381995052864620254860748152375870351312444356759352028055271690782446879314590286972695317506606622801529018997612840914115168511050396287758136854281868264985051431593020996346514278292685227182682160870537004145501407401181328249078534577100021924313676320013952316690065012053218449917895875038518187594180739329153069007148158757800470090373499390481616316434175851387543828189313880305791939090986859646800703671106888932650438581532082052497123553108156616426475634523301317825479656772944828348398613016888407457402648382924351968750923826274934021966509951396212840886049208688684166983105574895454444124598095349719622407335684702669861061794913843492915106875135704995987316955565825319348196447246060432498699144229280074223548381292978836358129157668741820173607017525439967074418033189536625898670957216339348477649407692850674529698827668268310295942938410543525823913163773167961673863034741033495012908884904307702025909439292396931500602260736655050325934114671014932348707420717483082168066772225476596074216883195836896360600920609447994373885120404813432471896931226223719104389321567992619143376966415132525506182411319828046690649034562666591901705545423527804307961457369692171547823105520551746029219957237718977591086471039075159568646147618233242565475978414425432637187726293752511737701454174602745916996153214214489731493005284968700731749130369610637390233331456163204042071008720275437969070095503782860765365540207413125586360343624638872343740342408005908080621814640742176409690293543547170736654559419206993981187583245199898075899242631360770727592196357989704278881553295601252586001959592152829223680644512975516376797773118421504132348447284784774057529999715777756941686171403728480672307345495414515571593644175570978127713854159485512073018369077122718559006528649209208516188624565403577561832329213568267162215243672685593701039188422308838829643885609620623128225535637017521279920011703664420200824656846975377571532458810468670531229179362571672356317694119024775679073427360692089032421757211515845509896558202602990517552775042881769672008910570944319149432191167973033661653898625841044130745701970862811472896250642171384153240970142932185148296768487468496152541307751464892352133246425241583519457955433338004630486725602357211506485194303057777561454639537400835476694900586980756579221507480601452301876866339232123561183830687424304362685884088271696167084944737198405343600495932257362201782951784120094230152514439815719230436108004694420278696638367039246078500167422474246457916536839456178239654811755152588162529744673098024431613870536578459521982395387094639704405554904462863126096671547825650000374140166657634515733437229994255045760714156545851224419431930102705598921981898369145738832306131057695285120935888564627636657912905214266951519743939381018525674497139244806420954901063091147699432178136259085996064844103949781423026757054798354930962614663128908588109815709436987315962001521094961682832303508144615125370542967699251382050842336928313725319551112923270701825691467096246060008911052890561484408453157466412010011017135257813575946881427235186643629119119374373968282592815961711194561176930268986819745926081039888326172924435587268480652110858711517911793467264616990956418950173733564817379670098220586338635596474449251105217883628344095730018013793706446073306270917156485328963181716676096847646469891836544524616249409207863725586100263377978200924138596921059013467385488949166917716090144815931860245007818586331081256991555503338424935633925764677132790940140483054612504600086984669050469509065625230884144738266227044219248031396187844580711449359087487632436060849087583795915303158617539753848708110371184131651551923021697613677522073251932174201065062436009397849219534118855771592283861538603675625128744771892744169076517542972755502641696541184102004535032174097955029810101919204920250531184799353841633566381353743812523956589917620340008904052188567262601706554959283469631623589462451840193384172077764918974624363611949160470580015132751315403761304571456882405826453452813819203722956521677394301875138640589921531154985502589186943675018529544178452354341064057419096832751087930250762532009366338558298451322762709717402171665255140071877729060140631199223735870367183034991516985861295551908686519300243082394937990065704244654420125726068950978630194782793292821261399205155780260766006401646025636235232093400993825884483651856510290294315783731990611326572852340505748482170931441613511692885075358147889849815057676219100007361628535426716914050798872503095304168753390630820006489723041844851768822274566903334430319729673893770940638432474864551535616944469676164849385077245704855073929950499517182870433941303597485749331066691733301120372920867850103129804610744115557550792425013286272337082296802162774599027770120556352327206968638337634235961803852752859484907856773280093859912856877062778529710214778920385912325274996478122896319276025409042142529040414874743890944375472157974820672463907704625713828474879962276228890575135966555320763382701651145150022536719818682866416907941068766216797620844806124625200906863428072290599779792441168220730084734404194921316204143755937717314486040072054174204396034567698027554891774814954853282424614929910183499748506341586236784322265523490817149874510488210808562926622873124631948462633679817265516934723510855142363319905071984960321968251828198040671959296598088520239822504236768667950436524515151760740347799124740517914383719890783982417317321595793632846536190690811641510151646842367351453246494347519394073877143193427851835444667652311084992027759791569119094024923063981369706482377897129639108799522201293847223580170880727231347789105822594993369840598015359093537247210193087770361445997547662366973216785401620612247818321654777085106692597935481557082664159158477417954291291045372653552930984836294595738540639196146752100700979595295393096630728603469220987233855758228462502183109272005351084890319796930590874569365572190821484297061469759134934041522246649074878303874163163406703403464679332874346122278163146640593995828452553439167921336715320357200824772973919333514073520000749252973485601528624885207887013648146526560661786012439338528969884356112616871840179783930936489764805781946654255659691074406293980784864124838115840343246086007399428523312494946987446768754875107852147215979102052977423044869577806688629164486041384249057393599703740912369178821684623453219567633460023665577152895597249709682442546271457175981464298496409870700421441527208945670859138596307495287569271301741779476817908863046967802580790918574019343995629689264232087977078471261917020002641993608803099630261689392167054346288736515147192384767935954813881504262264567737351827608429330743158522839006100285701623370650240056738392848692689832727745391513581343227489629617628436410183225764875604260561597216212390129942559146384957021660330377138678481575946482029667802442342618120356525359165786342601742793533888913873278970080268051301409802546232249896797702241207233956865486607481958212099014165598776425596021411346190374718401932960736690075580532346630284142584593436152812664362067831325788608825146136900569795027479346811050064948868722643075168960707056751585980152522768092206578005544720996045871270761675319280717681440836627115941982595597065232864731858139148363847633012834502101692357655125929522696308690709343229187109784645706363320412191569792409317855121581698041756579931351082486565397262900377146328308073884911580870251612602574848694152045493398409150558370968911432918508852794211826585849439791145207886996103905962959628549016609698717537171896651146249147663165251750675975060542296209419108949227000894251203565147094975211048594703696287017441239903007641910924531964385161902964893374684375434940316546392047177319175240333329449627879827255793969948680207554189579611354872431105986339189578518002765502385331654722483205808279693311065816406431996596350376803643680599518205470774006927687536296688179811454383055516578076896592713718377660683951886424208561882545104867875419044732748432880129166634132737483154642954270573493102960560658953645986745235017132903253266161650738437794676742796657830260661375926822585572095082846860523167862853024346727402154776225336533697651833023025521678990240305443148347438042740779508970942065147187017092888748302731890311638593450690057209714456650764151049002864300796123079325005122061284656057363011609710307045312057916127854385769288861511838312241187974483533965833575969378565663183523895689260099503318553783582537529359298679887508835640853993181773281655677106560131068522754162009403764729568968654813891437726252158174003871621568865724591322229866527518012855536343660691045457985414311121988562718368940651116991550292892374012575435049175891748503020104692297630061871860340642539962125767098456557594483056749820581060324137215293377181347637271572851922567658277975703770739399584894905703690635458200401912519286681983493979752474541279955790686983472674626741296173529985024494249392146854657935608405590574512063688928732031001345648576541999792976954526161263566613551162892289544050817669259834852726779553758241183505395015530559398367762760870945541391851206890808005901888493827452276841023178760980269169512312055304186446836198706819731734220745354263251066967562935043212311238612160256763273833906032031066511726419215870079345998804139000315661167638911885753012115623534936196486998505917984184779262187868458697526720716722439964664757187654277111361542984972998469920865705702717599975003479941920897677022176893436025526979273454639720656098284883298165244873923985582971415898715250396724203418942560570490596408953442271059103532900049497052599744741740416474103867196096146160805890876934837001904011074138110336586198099492026618542841349335961506709944197466127916760997180823127139547810428567681736291459648423975524884517560845279481999755670235490200173222374837163278104820426456255571448282377476451065414076990000548925018185114917389989242531872207993522932784839746597812846923476038437236806363548691125305290071842444012027885059821552685548854047408271689822698619064153536077478234842265117649596516112113960211164060388063092701696670149935600235909215162372339760229171976574998130565560043441808385787077434660494576551023356791499038541204337543428253923135473637815948003195803220357140525543478263998125730194956565851937333257466999387946977130282207023793339793842884905881373321004363021822387423101974248161817007788846768037681596623134054247241528849717565197018733583082691991513361258246042788239453029482686570699816710831354812691529665292772294504115332131782966833804247148978748996486614714648783101551035592167478964038214509183130584356130571395765287144093188311404079645482953723056140766629860026834818548293619131142786216304355637686689912054433936970950158768050289241414100084696730171855971072246385118231296068504326234506547588547291633541505389122402845995111574157175491687425938420741586504643085782900022924996718661803593293305951741710621449757218993071849505448582836856720594501220701480718449863789842017673884388514288132359021550107893460078283904581750766066156158569929833223823490109629607975528683681978078237471695238538412411339426848340007357248089687157211089910344530709974233799398046157715924637306277282350404273281756233844954713827383384705914768348856818449409743163988429405023937010116372259803803057176854255107075635017283360923527174598547218009618143851835084210156588046755588038679031028099031480304426303420865688502758079303796329115810228390405339158739078150226647776462466044094085361680237394742377668086696120303927187093258165947675980138175469668276803853943578293980746936075698360640145300499234569307057538310116727423800197048024128711395112803908461058048668254990872121319134978516696111467763747512988493874654167791256910734238775546134265682528170571298484459356358951384016431957407702505468735620302016669240677398236637626419832234841248331203841849089577883912022674233753629267173572133458151488100730378193613764247877937290548470204487294831818104106494376515417803105986579079398477877409427728329041768454420820913652623305085140502523122053983349341537880498561178352418387006739765460214044052471082198638371609741448275259347477628202040109961191841502996493763506223486645210000970611128475774590016247326839754536687833860860216208400766888688647156803995627771394371670722020462499635182642709778932014668222248165969891042690716750590739838367142204552137559389922748273917429143455080846382683965353047726192060705137028421138691727677048777407889773356349840987848714285764680760735750081707494291366012414529012538554309356950036572958811420242550781498586414494679688562332730199528661963571145075980541869881240996000576791891749884207032279102097801654146113772334049686723710463039999150445292714232385149287696779816067605774402148656448159307942639934109814703188302951504703826709297439360297982157051782198204802982209692042189559885141125124147263056462651903017361210360809270894030753528246135615790444510828423824528195180520303463153965291433817908602775661038875536705768755368458379854688131860665862064998465281426503058797771057313500717708277912053272025892174987185533038110930808633665682246699353849059674837827623718172237836502874369380561764194074171396121375810708873271631989319540303192953147557843750695455042075416940142923782565958429400826609021563406369529136627862254762684024739981078153777938245747382989816102381716120868177616451644069234554351399158690418644049411287611538126193588003603817768968922153428156229444860114634486249646502375235955557768934346920189565090893939727343324413616238236450444403121993609630342558009730819114350285302774033323264788407807181839650015225261377585777264163438116666816040516573016508356754659466803182823997834225302750569016200645818018636344509961452428170546441851927835624899731750302541212111533845742343437346781901263842253099345196186836304409581512503738633860585785941252473804600412664238690601589545357481247696104528085393987338822369052962730608844268695993694387665729113776339583951806529503268952953375049743142466816656984231749648179958091279958061752900864175773864797262169935892887788842395707983585434307891566512148655442688090233089820759563739744775214921686792322734130415153172077897740859440698103248982392855936357306698962809084997283370082823001306107774187025892362214477554997106609438903871211927129799536629699986507647146151237481888576110402077336078662850048930333038617826464901598049543128193125673084024109118309520028631900703965642874786207496505354376373494561487467058432541989983071492264744964753390484808606278299752274726649947263274932566171175335971740762338483151056280716018843304090738052596734592104025194206875032415368563307868945975213942448292514095757483424861393191374170743732558025632906604121671144707104241043413215001179592034367048493411440597653990429050226748114471492431650476393201057799500332811137655761090313629705067555115467529119020858910914278785014414254066171813542503735658499576018554722814088024996344273232783143082887786820708969496394832369422688507344011529740060653040461709402463514694424075215162473491763892320518015886527638182217098372539379648113959535929651943396878034686093935428241889998913560053945067295661650177180606852510318663584206567722442901870519155942186348327302246816458933841978811867961979302751113891598014258323415863075455324266567778495743941533222122601127335290357680321730451560705444096418056631387743832487908776911250045929508850471503545396034606048580576594083884950599862962650667433896682667789813320348233815522124579135415450009726707854700003403432824380506337279182572156947339039705193722496812423926932654687565802056837260786883967146373297845021165584678102140549804043076123905024491932742371315283917901663060273188950252452601708956668837887163665452218808355161359647073953306968366810610536436182970699503338663805971155938309946967904656278767797924729359840018111579709659267478393283989679384914463225565867187916511033767897325824056026106432967226468558953427679627193705873586939102177520726415227940849660806515950104464018156283285957754765697900510376767024203749779980868567964226401169488573078729357696334214953396398881480804607252242224844265304931430688107201158160612560007411736681778813060345013418333985817283778720642328894822476190495110479007451752712940210953218378682693319299260823197523698456798563366627085522958972607754957825502422590381822450464195617120331149537491536806505862632853923890366145049668994476865676050396943702194105125323139201635832652372691443841500491900321990518908822313788898969488230685536730679189246071554333224542881407924148826653758759324660489428127269161501256646247626482404331009026670980397872553659827134438678223308517088144886391563760355375346960303932472514262500141346025929916236026535390588473064376193108805914602503479365362206067767185445751645030679807720696522792926670675586597366607380644414115346587044277081549362380254362879733820047463272405565385713746534628318469724862688514891954160978601142435054581377103725954620941753947787256593579502867282885175430638997024651421175347166299075948358167131520282183714039998932249350621220933246546687858618907379231309855954138025671225703240349549726967772736623853689505260646332710046479131849286731465624095118850802200106581621622594475019710154692608884534433262854492001521052248120107284091876833479904832500104153512313761885204156393208348385270873245471405251150878149185850563847941075004271760472870962512517563594708143539664916096185845565505768179271172745543998527434674843710920722084299000958301289785257187399985071633609211889035983303907653075542681769933503530335122346794611829006543033620615297505275329862529414139382181782586302709265267148489914120217970262815240881265166878253087956867441319304827391566301104565422174111055735694478296335821751650321070536280003004264232670866971006244892235991995877014773268305456199445770321213689143459847631854306998995535511193567815569310813842786076309264130994931494472007218427445827296368308860546853482174863315305017955627742907584763320644400022169239528073347092215517629763557273137299263462621087041718909697433407912169944510589083684801910518800245829761724155510321481794653482954733280775265724034448691914223856807187645993958472158400768679380097164993755027359299817615078001002828877378271768056487449072883949595002471361829822168168329354239179444659084036884844747481016585582849230998413261719379751302870546920559510346197771894593275407069747944975491528629654885920252427437321409101438043787843425064774058026039170717958224518938632129230680201593937053811204365989134077125920634460686872376569535184689274143279361224263270744494725259224320152007334670084550065885604116014148707230845014692541507105269008648732113729346933156853806493521295299072657842245821573955442026348060901946690817154187065694181017873657464383407769766093349750147748251539646644472061853386622375936657955855506134877848594125017919490082881952090651215640004542208994780947168580433315789546793679830733501160713837774522091797341010641421655976738353628567076848725149511874727719106184305565112194138509402960697581724230424530007718507542418479552358426638627862061442533960640782550517808011069315527707119235284959472411528819630776364711452334659719321647015912279303569167654582312035897002143713998818428230353855590049471410472769670479127472036457131822786474728978819820498809184494798628353746677056200997694355345191179198917152448772595167911904728787395661871247225010233865649629418106260124731703526931355934544243312600860778950576746042893649319205224824799229420822223369829415841296250990635700383199936899834968606940695642745490476788855097540864387595249336626431833330537600406240071357901002811069589869517252366916604245029890891240578906898251077927341548755110777537297143599039426592799438555856113144904189245894404210021870470470843076590631621835417174502280664669688986999473120450162961186626256825003112582214557356618293486136458820942816241662983754608944914968908204720863480343562835415433420861787221343088924206347038667401016907462506047234172227321493027634421888315508990166346132999856079293958565498332266503669062243879319314222847584610033196593476000333543780001557746135516827822752007035819114240900562073771585758913130272332043499908531242666225105697301616785445470971768075118989594793469016694078509381002134913007671188973037455147905813932366556469110575935970564753581214294267374534800115841708606736362283687938419614446163305333036916150185219020480185763632543738327541517397155152545384557802427350404129328677239582652091180448574112644050895845900314558568243892604495727109106705260902232340177094616460144493877795661601940221827078295117014198425979135788595361117509927585027462941107429617413029016263722352606336620263428732498039203206847986071458356174838438906651441317448466249942964413396872479519450226429442091832972505124050159378913329325643701321243506611988096277086126580789862853811516676171263208811950755500260615637383493723134427028592966913808017670558939038370681011459134626508201579983164084610870571757162070626223890105551702873752502686399065530426468207175274816087264116993627891804565218040489026513299352454887912800268006633206020268067151907902846230425686171223585863818013931412904296575718236573073414009229729682032393836702214136621726164554612532401277247437779445947903304294199002212756023524962070851243499722492130063972562796010107913936479433745027219755226984254865258284891764423648420868239605365766229246883671016947982983060499880667066319813528070022956929125736780812798307828723540231822233654833124591230304174697509017255018626207644633386167865984531980188681192338737250471596125056541140028687740235955561251562694602910423336506970855962180332198694279127800607718952903696542924956944322089942340491716642882272496337626901196711314076190545361925244723722842184696279058666069768509481172805174542141708706752781292022190489892183520951128896775123402362201425334193931689098315707925565307416616545499464091618727649989721413308548950776760337102206549117183618011332953699087786598124743993776918668695188525932395281884648710689302576826247374540951758279051730408261676026863157973593233141839042614362489654592866771438176578312135823223202160001622329990709326382992512015156569650479572000105730936057496373363517140365541462331168681857613322214948039212479303466900387900261072339046399450587236397097552189795097477393872161333433302760075693242924176776555181910514047541911677353779309215224618412203297043896437017236885076031932369841190121948473971420601979973992530766506049525732378347369440384455528860927481560869443507861403379322585834900961479221554971840130172422291232065714655948758264244103404536551717942896128492298567502284447699934449701734353666275697139974046966903636159906720285503466886574996983105770407340509263068901460814569121748199275846754175195082452114321382970737407294552395052236680917423071218774828526515191119547530240200589935655342086691158025937918653702133745135631964658242786948223593140878241748271846656537450131407045840178992886690026165544090984674547500081286311128089226312414319238644200487852321203797930635967693087600048105521473829106168627812975046910669450138435500799716189551864508784507978667128620855362923852006760963332964953163184587883861320875603946236836300012253963409722888258327643294979388139942832709088187568462710271151093726634112892115171576148639785385300016070742333988189081160714204155697813801718479884797902357399648000036586727045524185566860970329121282790369957232205024419281915922966303404732762636839512549178603491423106607239561062617331854547057379656464743927194330824892140423502896968168154940998784154802574021987273937620681386104740554376878815242164242984595478972746583875031542596753226823662364375963663395623273478947838101108515416648904724953907352235913305728877398695426572284372027629749471252856311648844051900507729095078098530994137493410446430779640124033478161310028147960506330873856434828649532655188351563685502054540948166739073869331482269100892866807707639427696304456732335730985532706454672312241701973052804056594202051756333557168620208981587749001495125987620222342069186576102454239922222350330545437348153468369165024959002386426549158318976063868493839530789174089657506724382577470762492970206768331864972362938859071596440156807515334778403698359938704753649703274901087293532929803693678534832537350334785297288693359151449078840166322730085596630910015809976302924988763983525972635538413301435451498269453109402313559678527721168393596064399944466991823542495868332805148857491757449734895448507942995719718915784562936693251979238104387758910444049267759401945556568024676583330581230866369212174021691732222853468173953179804674284652674876317488693131831288817765025081205768894771018709913605334518531347369347182650731789881818613293237551082105387974676395280140513075909785603534862865430405846387282644882603488348068516489320505041163242540349957101741245520097579292329115881590384965612249990712758387105947362513340113723199118440338188990226818471063218496794562478554782333092720706909080759662043593774337355926028991577709987055190595350780784019614198631576594079186087724670942562622919473554122312946054878057547995791759830439596198038477407812717518915244474714689297726062449437378257973599837534089019490995670281975337561946889050342614831038404643314536365937095577510212374445740626085451647108221527329088772868351240763725447269897368004996100265718529135395960239893955482186517122965597654159321285402483064689547239966817467005996862626064042262612194989497288058808829563659257020087940133034521370512550595550575624088867672448538955002716553793568398784198550870182565334863958196673103610940134850667573308457670103272107247425941332418628644220567018767179271494099785954972938729625851864108262796785857162730862247850687750502033476724446928988647777502636224399083357564727881326836146193360439993563341124529693769865310616831075019515684207732879732724673320329751723600643889814494228564566870530508875836209893819387916358847949561969890483240580521581140193794461727746713082725556682527952218198028348761527912632102033087676421247274871156643163882811787911307835644157322187071429732536966753271755899500253848039123173585352244950092595178765607542031016232311981030007018742272529160406555803754343045283388150671695614724726693586915558395563822982659954803664970056516944505106326576801786452727272910083061997907366906740946729864364381245558019246591678332402218534129775614871405302721255922464116379967664028275532086384214186931981947121018950456325267838695651439078699779317834953602157743643512186901173256869249087410200055417612931179657555682858148176355767819144206642383842417304831597373058894134532334389020996320418943283243572206600852421865416918418981224424923628502979329348643314104390623818353750581483435458438647282930672640565176009727818094521382251839770404099096627051616830950801886799829603713360785384551798381347080771255343619811808462570517260472426607668269917106142257474107576296048575111076987854127594061920969377222889300262013321177402479496165521198358213376059541208350560208450241556398844555024849941461161490799775958645446019436427242822419275710218272791055586227574965308490103545416085641314489704631484404150314199112280160552425769581813087665309530688259275643931233672283854573677996917561058312789316913089320289025244371600643336798899386103401505352679597319444473209287570746011844335121224611253442586177692792942459128490902309126694801218648093478947590603019880521285817732942941880162647323593890239443833782528518331963364684633303156690042403003504047679614407282599999659677117305051719694111111231990605765331952748143944787035718810017551413520030164504246696905268336191865384678982323439618280737432611790306054003183102581648899545649113056546437734255020003388200572466945166832171896887779900522612268628478403121913626580056410022277897555470210347568956620439205116964351703556039862461020128412929308976681489920925219521642664931139510198788440174452124958017721256936250166707389257545428395873502188752873549921268355681026319334090538301778382762176360982094377335278244485840464493504854597763116077457684127546330947513163563672776394292492217723411229418210071702754099513428694130072227229657117050181277765992726256802663410985145113808145506163931951363974487207757803908489173806322200652548085797221066220904383569442820737189162030910194723818365397364028579360730730046914603575545381687196490989672689400810504872348640431729932664325709158880917019448282877576485112331408363809807367609053508223243518673176071432529954226359110349386945572389148619550448536997162883195813810668326588860673082053753519648309027549724087369328647046417618205430004093177692115783331792296871594390983914361749577953197994956769079212761538580513725011551381784412200351328796919014276340507917812148543271293807756772257736754113185962880873796458525591764938984058268302046492695485352714161106582022739627196930908701603582155163519702043422215159527753029723954984073371319330968443336803242430148914280018892537825450997823937904375561470156419566694779218930470024383355816606463163660887140240401287721928605311629080794891741906402271332721922638126761095715004241812155432629815223711591623321537586164995229751325494434877121892866282859339093493870879819359571326662525645037916826642613666094508495780391350630644239086367007199017408600261203905620595589740435606299859821878155392984989793751708401116296905099501418621124640993470944200491391272519692463243146430540435325995153247120784427766298285651442762396369004931819850052627005385530905732091067054627367297265761760906478258378869414971194272301780250857508599147819361344152583902836037217705965183248612260666437588426255372453465461587713782096886516226336332310911851459613158524235664552300806124061088814093532304084927117913935341681832589148334661238124929856951318014821927922310275361748102700189969626204493216753489203681769158625674036989940133925274828149661180819116183142561867854971857565182308573656510468102637201468102510080660161126930872347174966532120580953582419173892374857003928892383032388163293712292131821782311197078742600271550165092673736201155558823991653742875240968121647939790697855921579316418794965257532093817562989914982071049636043455813061752369203305681191699639837652582466897076289161448410148268271237897717711712722558633772070682325737085314603847073599723711347336903540700037743468439101443663577269666215243607236499471603438483057076104183536552657862641186669982203267267214895605984769930752685507858590236832897303214741969757187654971328245797903002992557715170180486380309236016402292441128131518260498926582591006778457542007676742224927744132800597428693396211506059365882700108560075655742929344495279823629094958858340837592547624804168649044971629320834094352745967513483620275584904731502670199721658336044286688313018873262238121113732503074593526101701976200688663986365875375107632243597207259366410482884317595331363819025701836658806709786289064829403964839352047846834800064674334378508515825137403291720817903047900522255673780978387621309171369386410791755600012771831248807567742790539411646542038379636848957099452641417551014454707502933921605450883446332223347599304662945739214434406934608041230868467115330708613463742245262873434620652560688456231342917504381650557542252428107617817871562316785003758430383877453894735519559502587605517237256421916527423942912635563731905594131091945845822433670702750479548288744576995896904897927032256678910751736084795252159605110751456893282901339546030459863887762637840205032788390787710090119501448637386115821265817644196603165714042731094143016347462571189338772194782889205130118246409836508881095423410719731682136146864873528303790009898227747789515153710765464742544864336416180618721467560874912227788940256576554868341589776862763978904845957736439266337563317244200131638400472557796119651776890291983441755877203083214214959420216490422015579909466809532653958537364599858456823388150788034486382734743307902587862043942155847656211058818301668047387818975085936855719442212192191127336002438387681415420154978384917306066990843603309305667411601392837769548203075675755509056902736969617116389499342454393887674743552306316014874424152625635278264636611861906436085299243827644589041858753197966046939153097605277923705300259494719616919950121852797960330407486841573131299783441134512628065168215936790863302080814635558877658234292042619438526423048916602180463886366876905462391120234788307599255668322930347784807992247487140355096066565485602444594160427785181419515011112524890354541358654615656741980058850894921278684706179874927502052312668462091898573536271811812525312198768004131499567764073515560926143630001663259152784619287435067676521570434889157433402232052482626117251236747431277314098612781448092901271214815964798146388559856977273907472816312067194155460147216032884521449403198122115913882996956779742706424744369770304822269434795569883623480564599404221519639628847403451636099539853557248802674818309529783336854483104455495244959031473164244959844081136638422772454363063540158698807177526993529104689254135664370822152905900178307042461807733838451908677252829248302968316481497607415279733066020147910166683213531863747737872230145791326866956019115786560705827116730025141361615405598738192482676528341517552566877715556553939470771351066983506422317861329664006541540442829170709319896823072814475008143316921262363478036594210800997364717348136187993076095452480668743562667606717172702332814310321265276125154979270708098392230880859692659789869734319752442406480239180132497516904160796768365425941115383850102733616060253496819661534253125490985492906738679005466717485171501587753065412343798807539760096983344116174265091533662815148692967577554300447624685433857276930226571618721177415812861744346223336172497532140445885328761862779025104121753964040614484075355886859439500495031443958137693228839274090181390562659449591194878283578173516816911751167659451764831181728208665497770218466522830904792095094833461921108702962851446882054303713251106552966829559929778477118905731791832062780238855393235706075062824639154543537041635479300180016487169113896106508623990296395474528546114999304801372243003835121584286831864627260014089475765245135111952134087490104073391620226331911804564286556914337032766002530512085045877720422627452628994850132193199930563383081549923776771980043349378977956058054951110865272660240252367555148556869788529459386161774346489230063902678811202615314006973852698166016467231034760701544839948247440739261875214569208770835810421226444361176573871218469471516964218385134065218625429407744132826588495193299630594910404980294791386949674492256676209360269397402402616499572957719772808653551833702350924843514344515316882052117171750251198518190630199810192246969003410433410825020916550113431369576926035053298716804094252349633245472571720464623446026907619347690014037833709504419003549115370948312660354303644776882399185407384967972580600527551029597218179471232533953561771028751704218778885247180288706990522725207553382724613829877062915099103005374554469524330568735980088466706618394506543561981343436170328050523677798798264668550339888803168983862894260927246814631163976814456566629040593330937464508550320263796865151861255344579333196126221600750952109713387215602840265486627492931564417484363477790328752024033557541771971735336444708418679997678018940678781808741385726214951870811444464588018611422931259580414645998270814293599335055169757394734732983373829452680549232319707400222421580883542853394930397734497060998944381252288468679051083422362209412556720796459834514975089467544743403358254686638664275592964878039865773513967702638190081101076137844592108449291524718676654985076150041464254068654051418557102713629096650925681310563321862824768841440040705695784592408831580147855405482766668312721638254596610100841054258376036129590921444433084459844703618255608024286178696150871737307655143357259783284663227300750005989947112986505857265629986942666326212075876266705038603065159741552844938810259013599319647153978524667263070305234757954925668413965745613426860988526583077979935468687643178715087177196984699406749647054919541870447818373479555084345055606621461469561567211895850150466596563608749038311523961009597298318570964692500706610842578684324933748557040118588163148646819192645402169702606297970492317818992959429710934707331453814566505641482847240869981974776529084372932977572136479154015317042402852932807351413319362764665403070500166437116572607713132154713408623493647612992942709527126421885422433650133422493833256432507866376681985445890976013559364632312135131963899526690872631036560255512296120989615310988154409714000689648980016702801455206279154218386562462813319600665095391155980982051818678008533097582673523219376754947491315103973688296670261035877866932805412664507667603672189538524182002411105597768199537696377064153964057300182372826272952869009367600036983178116692215831822367625897683387611103362243655225671322388419532320360852542989514305533335588996938056882723102591532931896199002413531887914255863579035078189991820816998248692220232286295376546012614821815164049415662496772284534691264150585600725121720006099448014932780536321514481763044173457968315760991427512023144876725175484033205166850764292389209854577355914011916157233817146675451215403903907895829311437243764395126602545396631194226646843848630633192680946350607478597367571661932935038079199820190193131312874191237208706253358614564808619504602632593104175697102988090961628565527696371787697959008377518648689071615247920842192889580784658711118198983670116917535343246387233069502612329417409663521264545283386701677917669190772359826461100201359829315051996236347076198075625622617727557870216914647859032015934181392765161549107715632601207179647948027527694232468887484827337654475909073611463910938647909667523740101543629524336967900954473306726270424518406452979172262684202654204066732351200854958315638721969749643391521244604217735975966523963558733481181819112949274963133840550278569918382831741408773667739848279773422501030785095691584680689353084541294129958894236443386791235854620580227932743840294321884968354710424551171766929868493826227430448119199309626899234857828800087710406740450384206930106159076793082499939793622810701601683695846618606436974167418009375219762594132695386430329748996437123004911268856672589560555245695750625203406025883050692449477844711793463365497441471652029080458356488855653665747637132026552231054559457977591764380798383275647222656215319833522237550923255532367652606655220202864263677076294004078631133723513301052885856366587979292066958239946884440707205813155327684265906471812581090288934086227005261241184149172437640309299470903043439778926072216650001159631717163640418011060494532312537576297266065443707752778495565151336701681373885125228653075385299449230589076561515212194035926514013129214437255970209943614308216581231765798190209031563843345858253102747509035103261130623737295172875226299250161095356981511351213074239508139887616884422541635745036620940564065059332113231902675954573240889525271329425188752871677758422234872696722475143395368598042673853285043610303066158157924296855877803729400034709204062823601537562103342549616808965861829802962782537525864109473226332454136694237681454935933769945023715863233575702277352008290765672700450833917875118440924580614376122710186220013199907336320642353009658976893876025880323257480739340655093988434995865189261356108279105521757407297783291973018884326656853567240730524345477156787415472091243892803370602516740721281769818223639065496729579011374120264574507967604908900944020194409587307137327042872104656781124296599708133337337011654204668878478290708134910954713389923263176990792998412695256197275381697827458486049212875092910628167649820315246823181229349045202460635975933589868325333952925679467077732119875607620171326846381277504125731550702576809831063394259374601028292063468847228627071070014534727996796976087889566025623935858199792815644363330533523900236002015956409965196317324003455800331397905977307493344957009574417275297401835802663854785782137736390464642329627081879479722441657150777477481896935182263250026633417188209305285613598927865041768155386942819631857970568483499535591647087574229104635675564390749750269871125735128944417528188429707108488576264062221806964963288515638263976781882778851904597244004895049537526951604675210411754003058488052440171198997467270362933540590106262417062170583900310935605337634728632574479204740671208712039448782672343117729342138735342023818407320690976592685950891259605384749590594387198221011911476300043386385607259103643982656010472509623699762315189520283032349878920028949942042009676924683977762694175938665099444588933849627092054710934281615066022588308638394086420975321338420565015786790216182819455838143330836079970951322202721182972779249826265235742702893264599877418442476975900327966262026135085979673735205453818744530515254442516949326975164942861627289744874966222520337072269661951526152164148423430298892421050342371109376796214195521355068014017047323165658241166291331581812444397797160857735901566517946406340838037868552853092339719492093659387442772730842800098604691195533079259932000037448607564884798850877815000001761247509034048259231430427135647436415330702552567667334860767205193442898557700618315072408885469336319302983072897081870415039823667997822337051260981526976925264728483428813606081618968161831008271288414258016764018535126249029114689645387400642024761125919870782463228148895794523963841897913602898705032083292346658533486087898295302693032833534588917698006691193545614502315222168559034229919403814581904647354678365791289086990399930029288851163661264001370695677630551596080418146077728757979834035390237973708739724376619000652634896114661084286672167378032243377357234957264921305776013927790899796664481602573545779903672739798453371219500460482348685492895216571982888916577941419011106004618460593906434140242479157859022018161163227048827164594982406716780103620450414190568003380308733165645493540362931680191726479617583400310589353936653744165967627165662997742916153466096303179083629021953845177904463550628194534661925994885614600672301329473549320408888543305158614027407770096482022466071891088773756261018504986928601063342774372019823956339378339302614287598406582814741371398513258721088207912513818797089967050574077848373236234856010483516278542687795444416803606365098012924146616399609453963077128612653731465164054655133659362694753419238162371170589505159386312761644997309145058843516429191461174885714106331158452164929301775421309078113028244723876018304309552553977089373094948006160859905295412251794512884511076916618851919899818879864171354740100469509097762194394646093118174807414888733018367719242857708589190110946380551168892173932888536901964928054277948280396667582119872682708471221044328770133330784053407625750666307934423714424549794036106440192815191867850913650793293791835100932193210126966769840469877161098795176758701289173647529098089231278664400665114045074222077738874370833824265930181888903523771764504264996497169038701137018645500625896904117382052474722685506402404381879830719289885085128773355825140428383574101744660164642627094224861614405337036359581066068797488233987299007717215738762228188815866016947056075853298158827635123751658639808510203124260833597119877101657374700461887373667595040426733607603558082465383647269917737766336592000015924256547512640473804067366965250227130258588730591341654504719672125104063565893736555471058816171344433215247226143350124823658869441387540821793740414772006763206960123353885827068389117552276835329310946674885887857887344214191460602893103005987813349570080437673938926899497184697998435687196093298256758042288878776495075739385768409700851472549493503214731259872555598166464144394095258292723849547138874718050997579192434181090343222762171841367889768078393047935454732457154127099493063061840311404580090931920899518598587267537274452251324002267635261811324843435591948175855027397762985099746239695298583170307476698599373044573181227087426412949685614202505812012064194673396588029758791454643809361360621648406666337806101197111578584438584688104688097829085332989726900493416617413634516610943434961972788920265517546838878251685584044730290861653018525492241451093735862376726284041064775865780712741267709763361466788093227069455033231844795069190853693253185644618111374870775199510673640063897474379724122979549967972604295845940296749156298979583813840310370578951329395952533283251816104478686576533664100039217754700022424906498223552948947307638586182397389787362192004828810613344403536134507215408225386165253874077158525953423337464224662396419359856952345431766116567010780127062064943737858911182895632727953205591555378969688822342544196206955737971671025183881432729697277025040034630426313942450742122132672677443461597089152569444652181581461622509525763149542852910856535444914438077123048374090595607260735636034759030765122390955727060877836386317526461522495207374590830747962958859083214108227226024096433980435557525111536977296421973613405214926402615833522840898600378430461055114558222447808163965092472012043779628863075002190875282842270950962530847864661271163541831639841966101887179788534139385799951102014815431988702484836977680914228173748392180463568998672067312088061302494546795375840370354603814600284863923380475525488388662113262518546756630739458297949433724001804780806817413209723508637531834168958599867059138354833094186241873680992442750992732889914529543341247354481845768464124805272789156689030719570444187471499165803546827248663326295506187808924181366128346701394872909549560700535147550824405521820901878321399024632886476470668927153635321587092937368847013848738703589676073519345334961045576552873569048900610984648398332159015720731096105431145428248384024374707509637590133123479756142140306337371910885683701913869911421898994875652868703710125710495019863633302873380096594557477798421549656100828247055858044568869093877421894633741885538164518740559444245722066623936412960617807339972130661981609658734743168793352657526525084596387178516052726538092412748190036474192112603994416109739211034707407270650479143714092544816722108783097037798700948323584357565929958223250228657599640829762385167973380210923835119770728285666050341274888201051222876532161326126213827860880090075706996682114616115144626004497297393965032219878858791341283984754754038668155981801651046870314818994166871520365707934726405002516229023986564366190627015052370703255228104796474810700861412527748886784660067184153674484296162765749152155376857173071173772196444224820546231849160075852772705937193788159410674538268065256207682359666924504843833105845573283080129612623678367349863511836469754865407414467735437296533437022629179109761474003186620043495188935326717373555683936129435939197613446257546513224719928254474431551104627198022721282753429594472284705017296044863966391477867225793028415404053325030402207012060175588666459063317290986780477971082179676363543688577207767451143428675833861098388022874285131955047082843561813259363911569778827927486648133884526894457567184476767638272806586053602672286735442630829042515814849771879881964115736896775874720941983956637587485725435565365727073755409793618509999676872825986712585361612806234182767817003670542029848719850143653879899063096188971027916395752223380188810902345288598094510047500566140910647261409219022831471353056036868349386663528797293823603998331342330369937228121169585146774491431718232429498515234107127350237688795070162356922763590036819589169026254837952050171698129978100231161944527998614694221727892135536749918913863202921619363636928814520053392193995950012531010345589721926037357977961243927599835289397057904704422238891125718353466900169003998459460602782920202376367088440957366014576174503795551320032864862266397920108091865909208025462827927856039369130898143507813712634585261151183615822012263970403110736251703503439236605956755459522874945589404766696676609281622738842450643939645942032310189204772903165156051590618588549712907139643632815868511316268438620982341473977230093366416428324304561981637192298622175198807101859518095516938967908468634883420858102834694483256928138132235382352683132662426083276565691502465614280573295075697481695228831659658021810621890575605890719948701410782430593187322431389415254186621017339400208347746163286283926221993085504735174498775042538610147038465218728835805054020790548106563963175258011322892127073919461599684043238977658713427774932731663446179734349109997161580887821360760442966615758120665554233804043936098764007298768846669812772978941569808660607263473480727287184014242509961795407250718708024244899687202553457156908510507266158104868423140941848081753076866534382545449335281083987181909275230288372597292837344023087754489608634152425472365500985308900870293080613874104150630589078857431636598209847820574285831268885077726647752171622147347769873372892990049091935240640499693008469563147752077950220268060740681667511810700205509265703089559624787631242283591485252123191315940166109516022368578364739295942528635298754149215009392981342921431253278049055802579743007711559293602477836572213712614880104112610558854274945872781767931330063032324677694018497507433970477866983950917795831297266099073815906130064767372799323865823567292180705521699146115202125122418760169801989164073984967851173648175257452437017798537516744512212115222055570992345894597603338032422140036349677183038559377745119105219641507566750548400684057787808227908695186865823219233041725411916259768694705605960956565316048324831640094124146934778318967102768830084728546387299681838520010490573452443930199658702751539232338881113817716595043098039789328627556135335271991779615950788477773098258390141365118848678336836121493801832312652912307986857478201674812757836323909230536925694524796927414613790869399918554401509101847081964903838396784492484597535153748433360311510642642222194681295743167857816072616084314420467382717575753073229351429563426030647383401339638377671872446797159232087410474473283181539703469449680180093781536492368050099188094564041777780943918474791816927297963361439607263593909803336895910047981859968396345177952160011263389705179393795565426392633547780845787222700723493405963972643713725011950414259612879642481778592833367280130317689519321051603747257305701445939936861668601737148565958793766506330387644655722940506496622602231632416537943189904627547024277567986576072430012254862170973697193380059976450176812851662824467473434704754524968403244570544518459999404534225261791027341359601055536750595172242969663520063552553251605501877489704410427637937929731699296152955917816599032575648147908586591241009913973045611766971269603230191225112802136367580553906817060008377911091975508208323956782474529567373489926308156070880396743985709177231492469725208622394503624488446626227276319497431691215568997377446727888507772399717971523337376068925298312148767861687859697207543436460848118171079955081700325583972923650377447813112854548245504526790593363764079355898753543590961634614727743432469634019485900888887556605532573602861840927638539032065244037490427666721289247424056455656980077326181975077956178448841937157691673474558436699856387955407126245810446666655117376136450717411957605778136164538793004024143085357252214291394115727533311990539298012819718610196532469325652893030502534163087473257399406525237550257603164351351003000027848717175149151353239998419091827729261696804266301197457269494322471716174581884379359113545670577222461371454184247523577566354350553939588551827734125275019438362858891519534841933661256983583756108062463650364446992740145657082958716927943435207039481587541081235567906713987116027103955838969826986751284797236010489741085293023641140414851731578642546877654321119040990451721160339389688589758223751654069723183915748962729769522874693905459506992363005121912253078605342014116706302929949665610515957508037676254628957771005704396873731651438061442065417535053355870933098884182712318994162629872394071751448911962346999934384899245746173264067093237902544725837724950213443037564246367920075525957623913932279109061017415222236788469957526595890820262087810579157301313757583965551456708424534450869052256327789991922639996607611807187610618820878421820074111499430789036958483610545016259097407673114198472277031017905315419062231152714658201029938877864862508822810312146849169323409152794855811222887120981695033113597178135984351025772889825757946391932596660692871358447260877560229168621047001681874714977635861018446890584900976207832048970762103592500457548542658152274179842973739056739171700573943725306831485018318178349387238141889449263473123185093636193630301065775430477885070802121140225484280348186525454883958114648440700884488921705991644050400483913563106874734515468262980771403656926175478349551253894804950390111322405193097420756962762378744490632192022787938315783803343563477971283278525609616371333459051997310715351312047071496775591346457725930109174904463011482752127306990115840543415962338357215168559785655601846951187824790519495416370855672353193319761355698497544799970056433303666385559247100590826725998774034937092174522713216727014951268648173135680599958940584572913688548278239109625877970464422628321413151401446465804886674934792068924011326464816713211044288652306011124892352838434838812750680897036809469570977529292642089127037566019471741104262686345429260727009827981089245208103763597712260396011740618372070159801012645214063774709986423311415588444304579064071411864752259378528127313754056718211746451709539048128801925609001266825777960791560044815200891597802009477347255123358847127836868972533500994194974581885291112048483398721064178453970735124229168586103481431405400120344918734369527788366696285845196151489745861047576899297174332366495477422977556320567180805162751414696410801686380639680156261883926393165423472559738492077167209978238723743650185403545200092591120229873595372633478700054737869159044022457439751289406321187562967277059716824989132603338354249756021250602282811096794554226006019946987462509853916226477729564772956809389254439865813846168029248261955166109275104696410282098364277039798445262650630236860003033289959979246273510809372450804319132688064190077260577375577033710781938492976151600956910845389742827911849145100157745306833937770946874936346144082254966099057811195489667622283325971433958402554611639772368953554022939633327087442958109692564844143978178074964912813148366110541349198675550097205392038051395634400220674121992149576029080149739330675771679122926997039861667280600473165447972994451820962477012134723048793749110487915164195293397684127561163363241848965870619193850053759716028487302600299072592362420251982078405532497618648230812427797110326408815264538058829730288511791474514467033765280697207856667401736904878084268550314535012552088445663294573731621113188812686958129698725397400597069616407458799282699719184935935061753602773860030083155890812033249694017028354795507899436650244959519151464347309815109855119948494029215622768039871651727706077703295518323006450779961197164509465093996614961653814468067745040441427498648433583147279259786399554759092631086722036932545438729292087954695690494369265073748183310594174792472074348297757179481338945260119957126906034982285672842137500461202798767236505052126812833156811864264748377745546916803952044615388258211563196708406197583240813691881387813458328032313406246582064151380172009156560359323382250679569115156625963165751212070881063761627301495614443326912184634496839137062532429262452912477533595540367763447017841311848957151489024152116699896964965603262765384853167831002837638532754694121324741148703411772295085509651204519493476825650351369486189712154757643304245580430527378691665061025242605254266638986632049567747335114423159192130688198032908950238305337662804728462004670549313345571601345058546482345713343496355450499994481700036530799374194158534605893559376389278270194402351414176047160986282987169830922311529334197059942323519980895472478502966854188763766401831355201549128300228923242323417447200974694168830640073775445849687486433607939025728990413926604508219605431986268544814121931066154274979393887445494299995543210699334973964833394330231953758362229497107164807653326148253877158773076067062829158558843580227583286799589292141266996175840415555600313618074391940292326751026707191803573065900187589024663696174032310940632991420569517374387702486940416250553370846435945573551375349451261071660318028930043577424925132767778843472724125148214854773092755154300577563243613558214321959568378119489481573578057737085195878477782258827059453887362978996242583436030521284869644771217639196891859665131466629337828510487941142140698518295783698688421346945071690828446217121016616494053485980122397496025962023846909824611016309812242853553484301218844944896953013031005485179931124240737883491297468812675500947005304108756533971827451697775027851968751750272020276025453211383074421034518469460183863935411064765616607997458463599420010369064530148379119470679201290274428791533148114217281078664654546613493512104742269397429270044706123588277883748043815828651094475047638780776922158189611372275655538220127196532567396575623250949621646020319958740375895423132529825773984944678964326779168820189207520929927117492640863883913768729119863597978970183292162044973846190616637033318239593541262586913654541110367042052159630189759250364332760237591510147888557489141727586808979479722243770871813055122685028536392116486321873226690114359246292019711299668464489763983833882113564571063507955710307404233751919635199110875703622955109682115741047244600590277692830088287682146862028010232848197557397872625426816940781753761026019904166620860539347651088260415480426272799704639438338170106775244034759569093227341788225535866941829343568470394785819765780057337815601251711396032123862377256013862765961579947298566151113386920076664628156167857453230969788646370011882193745260964314152890102145960188954154424465226676115033937989403599657024095981238264483477589063339090826795268272776599083886588395331562704763124528404409981933446222565750931977623118471825525150059409494577448469265663463394243538426792598917205059582888710686621761409998259053322943774129570176949586897152471469801835664675708915087627119824732203435970585735132407549360336660426753621216479321100929242552711052374847248548940682200098153291201569321182445806493270817878311593545815992487258361258934606760933472949730479221560877815810507015540702535296955420314187580480458688512819265507149252234420561413831039866407828526448024132410420307818229713460837549911121991218069799690974942939170187167271303937616415484675743675415092739523946491307589005733033509612375799030904607955634104078361940091029319085572522599509290933389101346047704853749367087153536404545570096635608591562020167847498256119536399583039235241201353738145104505870088658611355309191229918388273093287554691012176076924855409837923942650697289805706360742804346602345412523221456092835602773147080054114988462220128038178281801777268483206379238914310611484483539208771288169996519526617851179662790083259608581161164926132229706271127384580414051941337368758193014053970444285154341646524885773061494686697114324550730355281173029995548777091736411673874747890128225154147482955288792044086147832579837952904554766032313782352221829040015598316241838135248405942594532299286349057584123169038956856444788565175996550900434536776842328077924988161729102596199316305345886849824289065572993179731891352388819417739454594918762410486801047851841007961025458676419246647409085364361769587144045166093736847245303294358909084505364157854756686181427527354284321463999231736765131994697508988979444183395695625938249808677182382160678933500897708930996229663292228773740747856346616011786162318643730068479833741752103085105698947091156862522821169369505787702363347227829600994756261147204541040966077712212088674636435424304387006123802268359314664120580834173681509165867838065046983029293693152161136667616656992311581914685025792328982408649732199561526108394197884912613551928969630811020396951769539324054160946684894954497986517875327057418191036473210237835503056847066654862059792888427418286730534722498257796510646498258987524821174104092419162236436307146880208152035869583368720102725628728980023250449676827586647286992668124202221560914246400947078630210443087971088427393914872256410357936915752617013954885464544089880785877358719407205685694790247771917947922990138461439006769786969346376717941970705361286623679857803824077876435532501696452989285523229442282660845004857502508207558714264901213559134309590256347643306627671095570254328564288085816453026121968016617695137272947442291277979236406805878043194729908418678737818968702322678780010120074405144653383633949294826325753710280910042344755815229324775032751363642801072589806762028074917622515341142884383337304146678087025445074387597949710835892148382164073432510710820628062392520166550310088906462476431804798733001897463843269170552102444982547264710914767858525840488353579831397826024609248038400599605692182732269133776479907107745321162225464544445287126722365189435179153913615372500882867683602379676532936733100058305573148251249681493212825176203083189883110148565265191490744823155945126715584290903831702268160283916742785036449388461166945099827488873186142419162635639092412302019734047140423716077371005972458321717535102005342091371595903444124333289416222394191699195448581434208967462723456750665290247672140666018956898431068298654597764174855329712495381515181054858645697625773426515451503030337293989643465844569810524792986060168631865686443568781063986126167597113240545449859449778033000765331769113539662156787636757997331096346523284910286102502083560269041731871512237032458480558256322288332383398339549288371311443527666582763840866215855686030556960816648382247144458348221789854212052631815541550304021661885040495379233260000592579402457239580987271370974212839516886384209305578629899727764608831213703639524986397435445029484371326009951446488029714037185966506297068470429576805075743386403658698791993461209779346861375361265443282750568087355492480849617254217753410088081527811217472811201435577611663743611052509984769516034025054726624571393100570134633252791746011379990208876903362078201877584736927167545227324173802887372403182245956756620903371745890382938240980804030684980114993520134318763931861710507731131009187692192413874617199837001927866272567704086909386942712757200116963877183056903103637168397449873073552909703103276999187897057842143033541701283051224088721422113151340847348362616576448152170064047864834481574635508280429830885833748948802555615045904129166721323598101924870651836487892289026384554668310042386564343948466871193982879312571420339463025445031122128100473623162045256359108289012276911751945166648393486100533249953948226569856691356084608549658475942351170259005761534524526344340706744795914644752903119021430657322907984776729820536370577629587401100755820686155987017306376676673711870176779366982494028897778944634501306446722610156109957691729896004380148045446003608681427435868314014568258181367265228759382834865086772706500886562643285332114363155785591387591230848882583215879727645406608072856604046454552019740925952917350915353469769286001642594169265433913799635334891999521939572345337772679999807574181382260510213339992932851138069240283764578128655653753847998056212726675975127821200392540412771743185571027919169139499166196658720731266507823158708994392388784092001058364789699335376095222140609361634583575696911188963231391241057553147039518354588672025010605463670034079015175096254177734805267592230730426682703532778155411855886584301788581868720290235948207644592989607044358516203280711320119382754646960362051849846362366961682401708185247355599200729726823239180115481818421714353647713535072977640010919957255404381355055874875075187111779749357434081483096366157438015748453961777487083393472581307152946975999136573127801638993735881434152758492889421148605905749782275856939312065214868460464266136980621567799759342443685076647672581265796661444014084196731878931546962111147367283341284935187420392483975157731813828360487552427163633120585128313883003749152074288760919038741748629546629859985956059432247819985288032639811201495124395893457372144668298254076439654886215942593344193684932979307033804011712284646263383217958597633048127113975981873282448902167604362686914403873015255342188032203263766394691554270532334003545996197480404919443717748844036553534635609988141722736670062771194841545645187764062985472083110538163728081426500926688536090970415357873469041529991427092501240935153974657647898971982535173420021838738245095987535855321214043154298397323219707229621311843895047291774327402482264406172460712638208110646144392611028073568786661595568161394180072276735064224679312517674165514684048286963743040582738224542512301885945313290699714471685239987639899205726211932292806824107008038966866666186624088116610825450194889228864759111833476321385244438255484510577720564178123740394054474964615572637721548354491973924635720201233367994277507516755505929312566923185402613558707894512985597740714950446612932179551932932686151496568296291726955418590647355024128954420571903339614500104209685517565065274898974572587761122887533268001200499004816676875330459502010585169969773492936133923245775771556025365275580883293107826467181969108880801809369608764107980940247411841782123419360544883695978857563965134184866273300150723356481284331543088597329336248775659361580172773115119931633389510016957168432551781452400768770838515163437172813347422613111956121328165932688962233164662354151496945609458021717400114399383116366423117335313513085588632405470089842347210361501572433559065264011482342548416062773170910039080241733148300731202504518467601466892628872369903158630594464187376729133164262855934634693283089830816826502965435157300303683280808751776562585919881721841987929961039345784917706887146763374813640682396715948165549495931968388502675975241026743082632892501662577273825934701873346372010576566813691490873007579942513133695075834709130240383774216857680639348416091707243278628743151545246219642199463227707952293414319224321073158129648815681582780015722752208695560186282722896895882509470982217858662559005898542341913365232920534259052094971344113806286469240742581727308228860878818020198769780417563323308717129872204737793915184838111457151032959561031465935348854248021650107703103159212892526907133472256355431973445349653752956317297553121189383615387646024106748286722233007360307510954592888739571629679972235166238517414405304455344489014196842632724637401773742944911523591839200261112587940124988329287871743926282831471788065860937588563889417835626135503756436400242459038415223216740874295317074804986344413649489391026208840588109404889759424595654852730633384967541994307582866020325523018188026773011166933007498333866617502345333667735498634709174531087730572128661679191136435359402776994718560637774435415310594490529028646879951458829930081080685991863511185368259569503172366975047431303514364604596832323335809086525069078039856971765108673646990217087660492437815300841295621663222476894271649822899997505387620579133466675309386434973575488840726693864885148770496876595886402650483467573720998869243647741221724880777236475327825011358859570008436166160608445488108286373241461764836719971438219952725798218840473916211264328170177095204321457028299303578490193141174670250380168438530824532635644715502838123924005146163288412975371528992539144221985820350282052906183863307120519214203959473470598275703556147802521773429364333019434898675784558335529727558769703490408505835799708773727800245545247326332301025447740405764536486787514961750793026068357329083950798371102448520259733792437902301493233187018332025628020729392712261681613332515925299451942348852102418073696650006275930393364234454973946237083115523415457653699532396097041827864328871577593676289328975575566546839266485290974873475567004062126371015867622885843496668811183125253100580540794601735114528055368564706507859130537269921651069082894889041414132245626473990887418171576850033349178955069003425363581992129967130024670570476993683499158976421848923706584863650566245917616054448329050014208235610990214139274322558745029520803873413545540375361799211948505362929011821016672307154591089235640460398689376517010659968211098468078160934532059129053527457725015708555482050779363315267375749174893686111876349891319367226423044207661247372177670559906004482630948659739792948145542198464919511000544367403963621256470943162626574757032978723634568868187386717313234935907979583310368519272177776063793040478407070437179399770637670458247663662831382557592450218996364676180367976726225184867816405824161179418540531115114620445642875439474014970242251258926433490545475985977767052391157461765590973038885738587662359887487436993867546352601321451930965025675292757019514490724968762056766181298725045270402266515787152445191810791969256080438226663659055482298337792207255124999423120472136559351055455720478651921489283551491198143230344152393244071497355403693157544774799024867592151074633875583795130081608563745426479780161169734278847719068409036030799936428559875856926818708403597896158443033743282665100868371691607041179957486961968515175691587093738713114472351478704057086550371291080446531179057472519021517853335156266178726076736739872607606711807724496056614294880535854278708916465428356669561315514420672639490395588171762480772334672554334212286806607647578294769436177608322169074214098482805980321606647415512054981726240474693495448091667027487490005594046804605196417625077534417665023199859622048492012624323307090234594278605246622630483309237446613295858882817582724454277315237977723653310253707516212309780533940087721432411269581599468550434397645013764285710606657523857618928859117131606268786576655090286080120319675686339169772397166227223949186538059361202670834665841416603970305216594292417797252770588222488059508980464890326059352348396091264116015580225294199915432716829953207506328073296887597258693016560846704544395402388483525647381489435998049803597017111977518478902459349329482906013084428625297931489408437778698968730164161092401179170341799642855500867509008084288103984546835236232925525692951918720410116657286403026550054028026772224863522987448884982999017672079784289317541414475148512958028492469553076834117108736389743786725405852569925727779114843976166161562682485174018270114477420873911506793459946712319712734571852343562447130073144393060886943300184586058012911461514771636257042883352345308051027356931949174374519278590535816261541303249990153035490508572646543994929424752950365380269583325148591951617887669181281824242905985666244071447717388043794659098262587045341561431003136966657228679410755052893904815430661723194649522987983954409996423239864112066195950629225168034495326868948704156340198565827036365177523539605805585548452828020555927727487825975836431533927781881159687137714274690067188363796914051614080313875895532286754483819651708536839255452230206584658621229548248206121747469466089509826224023956015830254871902737512234066883593330305157746307044276049304267422958721182898239411914737777818282242113358574961844635988518310101833976543241871279882067866421379653033423624621218771887271505551024735274141644302269693568313698694712119741363985657315886750085005922096491906488630090944127854657742040417356046923611724365995279178168660689402408312921721801721973994787342408036906849635666507279914830979947970817114077810088719978256426595637170295063499938161474644747330147833734586455767352273113904425913249752212241689838969251823695544426418589761946151769668087571058528001598545804965837784864957248358612899448411532456825370279266255426597035089766972208251882688647572579592507493858915208540288443133820248033463515615355923872724242446889374669406118086697140710765524741669791313303089023066431528766341279700343373687707597392869520199815279281704906003578949852244597125976721497614614645365206486056023949063582357762778697211415129676510002347282883552372787329807725523181676763309707538933418285920086265392715431904322927660223152617728878737967311055808340269362166875902012700220720388319772053622525749113128539701488899165992493304797398227977133493513365564803765357732579940396178552249861056672503819134009773657000895959657126802216138121026921964935501045734348721643188992391045942793915361027134663252935239684644967464789154277700988293081358183154163122396857330791105094514893294278796765733233376114948612804673161719189382621251221238707686730558507986217522126469728294737450448157694666453170555048799108595650657380573201555469118077084797418858115134913996070491365166885748051270309907894100491879007218532888367958308469214881671224873790159810197041526598415948782182704109720586292061361514153476658648125193830178284891110263710382639403698521208975756905094883962823991604603359508831419131572355999720241434382410424042091289665410100779698048809740328920794500955713521316662839649706901405818376432016403847111033400423430476551106723593596829521281128171375055149910044214041371670302440902671304353817923995661851608204393572769414616329227450446236999139626828630733938870559965242012733922252385743118760795277309563640423004673561674075551655585822535882330336594095102585654041133459028410743382569949603121660760923931830695006488056922571221820775508176151693436693425153373091242025734989393237863453360274005495268044086285337650305367843096889820088756239326861075319212650473354643198082972720097209496102590373339817771684658224701332631521501796307249111951750543284980658149545865205461222312066835673100350026802892055195692715910501923668893130205595831418156977453918524620870024868912981393814549651109434939626723943011388922303445985176983403611036753737348840700000959915865118143700495627751732196976421364444669195838344242201182353376377437042069628814493151058268400094494940953082876195854567990672314963797145079507947360417234947415239452919612696324003054892524617568662642647917843673889206316622323374727513917427020997872969022925528871970858366503853942895049300868885747419355949812629682484681361389967407005268703852298311841209024843967759115471768019562845488361264811976383225250150286880916989875138087637280493443057528211091323973214406590528631146689055378181269966089149860968287891159552646327261475715201373576989370204536608252326499694855790510089327875263760412488877943152521358485918714903461751850571871758333314341046409650060020290814476082080020428477702152607283678125252487947678309363266259785111951662132887440053195121044881400652173072151517790238676782798239538074537855898470830988464291222328438391629320867966116535299582377278280406332329812899038951233343431852940741801608628084889049893541842904248987766671878210577509338550066241911704692006383031404608721133438569354492238105960213933674232852326214260318017146124255093863881299877259211505390414446342182915982312556381722948294964914978663328220035945058533565615099420435069598096876567603123468369517870426848305069909365490618224339519834990018115808023718346792643963800529956724743271640564390171683975597583605737006479651981664323632138711295736798394419175748904702731827816734131262988595735829440958539847757790005412162479674766938426370931384136729196975596534520547731510448136681281212494147565268229121312679018224812610728926156158282567235201114349985442549212361289618149804395049630736452619858801519433767050883717812467619835648767979537686656382588387256832839285120391246634500551403595687583141358994307032007269305281536930980949520756010485853068142624406786756650528947309622775561709299544882867225675324011645153043504085371239748083873466294134134804858889735452914791061902117276333079615342889107134094318268677790059562517813381908093803873860159466007013113469524898882924775291417983127376447628531741351913970408168338866284605538484262761862034012209448392912592507013367608529947976449273706108346574326525700396202447410008385374010586425667601181449778688273260766283661879721964031813306085682698309564228878269380967080607340890363075622876295709111951201883644443042795557604176708428132240778853707442481547717298324223191364521088832484324254414241071786262957916594791550347131568213185751786709046989812149879387941251039383781058503344785913620685289334879426304381712592396129232493416337799712006208351404156390497183241510844368719464370633060903152154661603809616157436523867385146325790064621707546676878615033598414139447086102137476208911044017398911205364362327095338156470744524190504259834829288099846292809490791795522631571596403603265345394461249350008972719798408292603734806665587054534155493661381342334230986391741683222994582839665862283820660848919949853341492523853496608519182437205633420520120681754639026595508925246391757496312642990733684376306383837939274109755975906486719752707234476652671392023477375892660347010047201524226142932242335093836715531423580370182769275401093108872048413298212131404309474289412551898822775789459750490743467060148700927013544976125698940076301335537919622514761449016417342588029450255656054883374071116636782319640059347327019439367197096952282313546331407838398918887149554694671395161139470253444479454205263251012490083689216137804691333764342040806727467568818501867815740610178863566560011571273306148607574401545937562559095009698274820724836247781905369228179868043864755051024541730826121495417258425236595052859735860043229180069269308162235112725216051965200591150164121913151046561020620047014249890529523316744500132654507178487968899975751687271474674092889566680237560602971907280264605968758760956942269603772668526421016875724685690389056199504256364551357595008317527644784217508970498195533098632487476950787349050323428434602265867178131110203748244943350668060243863187516851977346207016532185210254152808045681057331977187396001344565869790300171456816482953222236808207017800437520304102350210816966015558944154178364527703746002536729832001811308571745232285811569516348426569914357650840932869076786686239668648310210811944970209548708196794469508727744860101746461469149185480587243229590477448268321395013618179735108091611856019989500280598587331655566431677062453310100568892750799350997010056418892446553274817559003645100794372905558345990434068425747898884518394085811374350593404636880228262940289452621706598680638726955553676494742255112645845861912918501066675846084978342293243451787897315695663444935865985903253922239209605866564505593877922927387692442042021618130597390778143502607503881297945796039857373606224399000728714961201624176781519115339185702652692899984523068036590328160171312535775374641882300438607295974924469006181213625380144126614469416818575091337364059019175163452885046691246064993301527252486019897520152748468645654841044771348433107790869411426456523063237345914776623486219319786195252799899534614589700763269341543077213691892421116027874715038306888788482088216716313387229723534559387745625271419156133786175491976899942549608647429017577357952779756938531325106145972584492472560469403508047965875675643527606686964611932969265963936955749196191236096653961355608046866946717033936918349358542215069184250352208973646874027655142608491199068757931164267709699610312477024443886715560456633392834146647067029421532806295135127927183719093402668259959162909314515569440898428873586789640640333755024463046118256647366335326951557729570619790747406057420861167921744408363264608096039558601554850611926802189646521237082537672403005028880984386975729959382548388605569744130277013719943139315051391316214495861911575023722773679198060559893486142786263534854449318267023276055028768116283591361499170288032353081971572951764127231273716971328741176749573698504932699118295037155402282261061992984158766670303990248258297602083779568231539390336668602243803803122407419891528018914651023774553650806231813178138873249069089528624461981213167866620895071189279007751462445590893311745701468914658757340368231536557267732638819127105320577060409359041904733762370708388008588746813711707857605765147085718318328180540743557735344172878394682049642454797209793403169248915687530725972295616459691399585393516575655151607886173708734337248817880250005658102477993548095494451571386220969144667120185885471336232975732352793819178720556152779953797106382941793167512981875806759278312758806748699022702142592883779199299494240901531595763304886621574611713988856656330526152251852629388825492026795687991578411024704073663254667036932765704984040707732066933205589694632965519382016701798495907999940150984985007150922669763807707780180105556946985697649833183392727742677415609037625986232573458703007127339232665836928658354479715957198058787721909823032176160362698962814115385769266013043800142910673211638391815221869169907431383638026764074619139537644471523714074133461210135459965494839854846003466137283691417694955133876477548427059405312710132329509755715620187024789479837765599062962716477722213608869946319090732229944842837982542963906705651121260101454136640781251617927309120656208212657460503285268603742777494845745736359830655998590010965661437827667292332273793539453519903056861948098099393698736738184165377839437437912903554591456106453840291510506571821748914286573071513880872243707227830044259551292819188195674002102018853661529910780988749475278206178625356555504955442898082074622658983532473368038064914742085322385841178853197550210482981189772560393408754248466978579916227978929884299700618613483996227188167327264125038434591330403647330990006645217258729534697295153184683920998513978982418248215754988274512383685254453396311009025184307500244703720190773056612159775753475960809777461200545279589538684677756323533064366240191112652302483486102172196129836104562964997623000785744156474899144916064453166963314384466841063965707332969470438188737716878313701463827745206920175699698385759244626497037097198783980415061150636682109271099502473102207995885902148980255179514870991388846075380510125737249361006737515521992558615140467431849328483593562516657713318926011861720330024124089211351734939655399203262001356323845611376934751030534862760291628478554683405164287142101498897960174992792008709946939375757329126588535954877129582382413948154390493749560238986682974716068869190836367225958959992401942663153145433768818526193148337270981364273067220201296192534754456812043966172912433718519502817199497485556902313262387402415779833103800004628554279486057030991861788796916158055899976490044545106110270211241922799727370436724981245101633893796541770214739400105153444517692033413859342212720073682555668507616488737667718468204883544838963008560614892146671411466380561627648077200016960658240418019341968059407704998599149195692637263558678616628537390695374338351837157718206413677925483968591172168415372656948101181420745423965877245531381721195040746728283544683721275140671455993898087286004616192484676911971564583690051419714325185772112391462026127430061311607646750471180980904609280149933966908447899149426276112422039113219470971094223816192655877225476913726867237706236452975257627797600655908720357962332241248433131027493991477997439872469040140443676076441582343461055323944931674870616697794021630067029713426814139100013582050363812385715588793402647872242183937093623165341133349347074053737771099655260793317842384024812064156814978721832319230975473176553704312736346947107937099504933358679877705229758490093563474543455925510996489699890888001243132305732717356260362655638791058433332428306667169889191941380363595321547211091451585177147081999702683877971752837301786273217728310814484767629842566450944135735891582700375138799195604042071663558242881575951218976192827329400467614821001445041890565228653756830823250185229463401865712179693419626066434518253947328285679393393124941643199284287425350739982802742883811075793460745859523809616060516386085062893710428689846228920574773755966003983435580688580714750208413898824409788426043901513707822936602662220991961482175563048973586024616337134936574576992743137449128077887815762055047363330044685918341145992058206738262423648374144654207856030640890999915314967610712080388325481446591429285533880135012063949623364611253009485054506431477609564276356031653910516076666140099559094243752766965300501360498010793274093882544635105034900208135170806336175955343290512700900944040569482240472308138074240300215528251260439949607129324437654321495351896474044179842725092056975722528959313994413693254318492307849301035620201579581350593784094991017027183881187845124276727294275939033934211322162069881977927063316958359607899378479554425040777562983078988488940521358588086946093784981590780232572088492187474054934523056816572193542779573912602004725659329037544307945925546598111816595699287735276037031843136732644564697808013170243646267008907267992391399942759035643012280011753714842396097377380288920249769894538101863476882873101689278239036903577443182957768075530712360301396621534647983844652898473852939917833307165003945914609681032774336187973100788057302329578977614996456710777153593606846338658718187801629049052198382526072500971046016880378743921030293329940448960184161085064501703302975544137354177029772318756409758368350440375183957439329955520840415227456064762094782917221194340164693053962210273752084765717329175014749566664447710112227738598839375629051886862157015392804938885463620592937187499965740923298528416666083922154305462707307223683059500670968477801288950714422922200386799021239320247946236966788978592690081357525596159239578713473088236252404211194414137771979454572475585139541528164082000187242700590061224656745077397223399951679690101474514412442825604840371863979432710372795273983375593715926456361924594339227816313823031157873026877122826615871239070392109404309245835252781521361170007129919571272417474841422097683401712437034689867548014657272276599141246433823021974605860313481926270454682827485344744527212966381094523322160423025297441904898211496844205728156609606211392514826643265118417432353722317477573322114361679961035581150777548843676333561506706792660117108382140689140649122188585246948287205863329505241654912151330503117007522795704599733964925563261822597198190066514245268691099529511519965302628120625400145554345774630693930872905381767448627758193053666786658459712163272396271665094693119908251416658055939039536353639896748523747984244732230816697772070813839533135855374024127295479826000200092476629525902681916087942731881547984958178377135811303092555225115583317401272393357990116426431671858636130615188634883966225474635520087085850720954957077713350687110859076669498331042564769855650124343869520608082010855039119012702983854609624641379739047967924630463836434959875581359083964789090662348383222472146037477151836620128720668850760946269845895365393263903374474428101363054785958380544218490460537311350289437764868621019385254035794878618935367029916637727917212680328212290963112689515473606592857140780814301473065181373464501717653135196665734832350124597698629780903947142025881479098142839453894120869817642644457851809592926011380590853220716380910358825126495300771297971679108890370657678865892202629514809656226847091598056886154890546945961959352055189105517104164075895950842771396748079920134764486290154362025423255263451658042036808761704782783349704236789467441409016190034385408373922628222091365155869249643881763850337676036937392096187754842250689820846021323241688339609262821850007808828766625635710593309146306697288779628586550383975329438576807144895088938404459329503781588002499123194380753072064971938079025127566304979019743772124520803910890475268716211493129661439867536643003432324552627379699092267057477624274994776433319594918889259577420603885023417319440021136678436394162314682639680108447678205958239089315362301684333787038828836145876607270499932164607053057651267311057496683301392984141000534660816925013727981844927670670774343285234475649938529369747696822325851492747419268713208841108906872321162674242181300876339373361005583720782893787156257424330205078543046285000696279619069838974486346708423807489879228650747918320530142187085602633553921881313304707658843084997289828825634209360079318609917666310635532749996890556304194500360850782859492821312126310098307106503768173490324795686883700158945913009736605394442846926606074759423659133658016130604277854386316528106151701610506552103957562500745590387647613460456885713569253905168016689494510851953873311034971246975035142329743106462708725043426998305275622301153132282001993345379614937820714343243800826777768336364190233037448869420227824867641855541175687733827953948660369912853372612942058695488765362666908159543917104244251453483833757358814458627085167136932743313855490967850982474688768653403985622787565354897795675313533749551671815222587494271490353165041059619566625774789821317038270906399733988190921997380880315576000957234689831501056742934544391680416365797894467051076551128913998017053313157167396894707392663848802459058169867847866663183961271623516080094334120382181733417484151098754485712630113080987051605776080775404681366031762750918262951490619836758803942997421430945697114555304127000700468231828474255558979187028547926120746241779116663757291561365645219297251243439189752877820496824090971806207998122234051291045538790063859622848166082919758910778719531767401988360548445137882453950530496935033893589446332227303676577230506940075979522364222285210659335081933438771065572788328579438117970083537615417311814766514119304550485138609964122191569475839279989676701136598231677752038413794662787362043761759636817227127359093529485309994267938201975359984359182063431217409099404419771682977389964205404967733423233934799613001793416366200123659704727619689702941298160911148524076764285630769549885435506858477797187663300200332266470553763288452342993031967766898985766134139271447297285570017917127881129387765961036472009402536688860186169564677132721776451867375711383440349279250686319077806708550124006079777219469123892058644184673603768561029518488235720906260243257192128128611722395935720558272073218064420893800146421981385573182368722750607096882453214952387068758592363734053517304256634143336065388723333609115375214047818063610280188383080380499637043775963847079736280754015896001972190864695161381683771537068877208620884610947423529303954518129402105991429304713696019426018513440767635792678443202189006230871009557394592435736411955124656215531049172804850383037141806053532332556251351192572278624757653449199813301655423814909681627547362184155481814267092493702921700915093638684454155998273709216914041032993464614738911538053561517747284452515442656603172303115720329998166114083610561157595639369429963216254778915697443323991954657910677910128893496682971617528017128719566416565329459996429873256111664001195768602041208849694943501261721964561723782871781708597516773373061395064241395522792287248909096095978434707853840417397741124319575085877559910051334112833583476397011683546094855391327006194424254198349061422079325461188619390128345146250867062718494026064290165696488838421459250711708210382079913148055302403243414737736186971957404524451959987661130408072225250698888683854284383725163494646265375311207459102175199107284841988491639938517661059682693995336319206304346897008009080965543109115885098690348926972798137040750131242494415784479216522985801980505675389009853635072175662551943686768090376553043581551541177945316550596156174802874807859542383732298227411761992131283270680343974019820956639920745571830957560592558482770559197018353034147649870433715282732877559482217196036566786854688884300884095129742666833349720608628440106572107905627903598232463549146140967028276814632949727508527504359045825944172565335246929072498683918873454220642615090810580016366363051461899054711249344137948351701511820146192542000965019587421256473983313061802765304322027638933060740433028617558567372665355892064418328289516662767395017073603930401397277605891292119834714024185346592969547570471067054147426587777883075069867979960528556974744267912064776040614060918650963261387756600736378881057834712577418977741119324068420918487928015596367312124807446658819882916998219595416730314183569101253843380438066132248225874423555108476491696169627695381140765000176561439236502280235921149171647243834633826824385688432191944610849458567690838333632181132977200954452966822575663345167322869515982781796087702864401457533010279549616949512449936216269956535191166266782023112363876162817615691672731630587599456100610285024883277218668702467153871233948171138979820132892218739268588560351155131506726102625873205278326151196871381586666942958624810448213105928456167000890581428708075427114791451632126060816441530479563679415845351345726035950477615252790901015184033541270969930218480226454972821423347649084313883908674385384486065729063830836637015063822429396176274968107990883811386436580846747249380393324991591674418038063470559740353139095804154400974443940303955689416054717855915782485213008588468697287256227044857178643459236232769603127653943142244385786189180534566700257369882958805886720284112224681917176713605455463705302682339268120552748915038911029747569957653854339484509482467578095586496848632551047028450867357399308257649839808839024197195044336484696011838450301764733902304163865416011589994451627388039203657124535402660855551609573980716389907139271260542731588418990687786106865963622616379003598231988907772238029183380985232250408234265968904654909178861828270911244103275790233817562738365717188979543450768715410380801398901381767213277713908466025246188479961863725938190374518223692064351412409484724142240498768341073348435604621088055134680993901433679575185277875329449122567601886964988699914935288624538934916873990694523026796561048507163556093317718325042218258599313502282605626994548419906507992811627838516152556849445975773795445348541153165440280789279428348059234212362312210464611541720897732123504899212079007471011266187628497140447862291764700961482034082792388907289126661539901236441981896670551145242127002731265816221743365059463065285428951844980088235257693984400538170359429441627173722079377833974779177549551668945697521580077971122300511328101428540903534829136317582015426290673405922551976156633911324393583574100839897595496723794614226084730062116691605556732825125189517280182786030196519525544363441463988572270484468485852832920424858793553014728070487484620075921725379817500182122761895136495300712101597288505820199542624083288420364245446293291884014641835108197675748962019754885718735272545307788595936850129708976944235879819244521876080064105335779243065807382007921584279918727879082254197638901341419374033115008899843564532209221817668488767408913032928239397624188185446893960710212483747803305529702619088247754182580499503373465576322009797861797215117783202974991133844449557034512864014306347524025384557614990749046917624701032907671704896239802407468411384082821778656922940835513309561651526808065949631028046901741199033749794761375329829408220469837347128137093619799912485155296291812637958598953393303349671807470986062290732772422302934004985849512199353719713486624039281085456872312843196835463697813303944949084114402291016336345863256397471632502515483432515298731657049559721423039291993150630156577175446697467133185000254483068351577058331380729223343874554279411128451557949628235368346011336081949612008086204941163641074414900016297281417338560712221960377785448087016104186148787931035680228381411985322971504788138897738748331513778054234688483783084246429941617710175550107112715259494592073445147156076715553767943963479096851765067123207173898919001599348251701493114263096113036052215774996621380922650315178025061352923450740881629476336231301429008387256708894808965400209861858414210474332773335895619456554073798636646573909372032952635727145979537856892684664187839369812815883108260761067172060003712902177058497154380358783824415264895020138849336814687235014285667659022427690632225216608952352926657711764018453800202168680286430951331319686431136650279204874169306795682530479563706206189328962062117673889254136458727021312271705475199589643673459452757005487183337698058778806410329899749607801427199478984794803026626700797880842289142990858780982428514372122374697248929980070185359504210751745349472387267858098215181901826136056988278801816450443598720573699085272068303139284856555724882456177734452872739575635759262287725958219134633360221939832693132389593612706514293815579640695084542528963399055356310049430086919247101314586624629871577652923296495567451902274172933662655791990338975730273629619904483708645886488666266729523997086282058230243535807187135514675031748584643399406517870008191702322190299123058001886539125368526194578905626407353840071737248195966038789794434253235162596677943148888803145012315439720351404749211206307572277667105417400985897632357599782304918965205107912808819433045309512483000343350383135499380267224041318882816985034028301493731401937708707512117405927549556812146641538188724811703145144719978393497418720710151447332254032432124066520195397543643978060903168985482830252394557386654374098494857384560935442712346128339662359149766209468023962409272890051685626895082622115758004349019371261736347922356150207642264811913355572153577719741210044308891075788654410754750959461959228201348829681393197644844292917118140765448753364329950847799470271319922620980791082240104391519262804758691766601570931131147799850245206945544294501887906931771821735380357106049550496044648259189182649024540396385319548587306230774910843907523856378806422205226297732634767796591137165907390354345036178524387114270872486977037047771374564127625774126843607153810496361369763439825294013081486870789456448994428441979813665424771423993190850229649317626680710608820866165931197732727701330713604573876918955321907865462967374660816034390208412530918768214923543256562155074808498442145467694727928215021955933894847471879649077675165506242453164814099481595859870940793919782152317880935696598937537570317898665637370389405269036677272142850051300640743109629107451279052385166449746129132663783263559367368408388018176181424148347382837282993655732244119946279193677651542026931867702015056831888657768053455172160474292428299667959058165778227964210664962547497496287972631700034398826307557569571011107809990839615325310097248345152228885871915747474773505436367392361163166908407863448678679584689718449685575712870276318783188294479693155940872943302714235394193583434015854769404480742936929368563496590020158278854689116959901227885170135247430134650477551573619785546917882913801621432032091624295659495396504137649317438761918988759238259005319639804482004371054702980495776956153139780626618550356757172841072374836645827972235141906691193972903345687002033219579233677499966306204077276454664717559089838801656708543788729952638625453390084372482465911874954862348312918385958088849206827054247233545544619357282934910550012761659145299389432812959031480708373636270218198559599589501391002548862353234332612899583604425607591506071781753576373653811086131866349369070248352952054388223085679119708930509554612829356454265307212106430662337486129445135404571343985378640569180181862181158633589620775353643479565198582909107467902716455670769507377918182043929456560213715513256501715637417999755753063549771501456582116176386333675697632682481665198090962041555435342795127223019312786580898224833142154608739409053076316326006866921931181551605670831497403948521104141289059897616673173850902601202976427042770654954506208680228502339226142102643740470925331863410663104008377455739628130724312402492545399755524413490573976274154153408647203171115771669469322572829515854304465169346275139891800228856271079219790643608114994390406977019848142227368185368358524796794002145891699528937236836393674253601340422751222377246655657065387340427722956346951141718421664513293298630685873569627080262016314798959777674272871163566318597878173460045915570626294557958689524499124964002934860665505817112726399370249908422401904479482484573076023178463721397596936140567452578954072920524937402965443008621893144618468670067354085519210822273389734365328049867930708641681097670913883899413275669991546813251098862906168055414634099508064380092197269067394134331403838953738988644556298347091054186066291037870942456287336714548511763076912393110471946154366821123801463645026400071833621232681328373931528538355183560255108592349715200132657976656727373349223289752000686735762789369511367988523293087082360965565342927758797988941327438659718680230244663640050917237117949852535876420704592762254520947434394769124505733927280620520773804252085489958238403753659228610548062608373135813276732513018223204537013015347446808729856661647106504929060137761875623868212462816227064332401938411925925073787314159480038884883144979468987936673612937332225271215142803303405724312740356768706527523177757048367952404403569669543517959514209274772141591934932274384435073007907450497616825126097556079337060702082529683917677693986955086021864399147844458342731074851839770255832797401519872153535963568223976583248253236915488789807397020697474123610857163717351694651201857613526727377638709737607749444419364253188715688128152460844334221906916552185129017229537972792940115671053053904666726931054850772536304490524670261746756872636009300597664436398023759443135013183864222150525394633730354408110805053042489425655932161755694083140967005945753669615647613786848045174785424800959439593184259069931189349120704069905312579812943406057689218882253521827320249933391208984880823764885353740304472832696377529029548268771962430337809258274225944539591911329254740382503224815450641461446187780556792985177513104712015629226004001705023745378281502932281161809292845606332458426514143531298099946905364293200458031170125861537309230836891041051648744617482897911234437830772846415805398427478572691758207830454301101252760051250511494289294690889727762866825769726211447275698086263836488825609435421601765154116523239573674297946427899431752831186807302138106854963733753242403193091609431150088769572202551944360523845966075843180810503547015974350322808445341245393742570723878642243150529962798143099680548513724258387361917295629560981182520554836396657389237923878370623748776872057507889952243625298751523091637462310286181715821031585018061609793331287337811792987352684331702928412750478287615978052418974604426927816442832970547021592766060112949733969277575821316259871874486593257063324837146354367959440284684747228286529651341083397549499664599616829721817226814642134702388222371211420359903883722639939174239179172218170113128012111467276153732385464200937246525516319983376896136358534836941839340807158384603681181594065946034364509097289906126867155766999370807498505269717234609769470101935962989460585866610076244703734022786670834472347806427655278341100892691968965491812727622008604291051618288160557059694874003107813424688451357476012179734803987492089960260149276638284822648851404771807720588371909186136310532442534300118838617693132322247092358671923812217545484016609620205077295930469439382223523012249434566036578336418186394346304459381473027635535303419835818349098497593972605572036835423543058633808995762431024197776921268112981897438424216861711111331873330079084189455273726385948343634818544959268769802302963000973882553807647861618170371890138019581606671925426099736021037824300077637933300803012629006423075296496797266273897569455227036637000355387221868359342610848982917955761811387730948779824284086089389990601850866026188795619658013837480365224446125971412587731109389051666558570635255093097545585787307425809226415859650523336713542275861687935433467939542768659121603075119722150027325133015188804768195769488060975270025573408529943475427555649735187958201793203321654800423551163207086082787559832823429266460527801121120896219754264255880880184101439433914212996438272262411040126015963079020513050857443015396699286269103726870384009134408647320410919496986177787157362294894901866740694358736692201884067656953261696120842821610997456501963814845598623862255501380244001899300627780995219030731117741398809702711337282142030225993286531141541248361260417679681089507317925057522432842963097716725582891107084966301566885131845398181816601983612949504807914876580947783081265387940889654505413225687581058860850051619241382286844888704929910937499566670793860622278312352133981386311376359554307058700439516790742222276356501801796620413357870064731842939607794181238967260173429113450261123822018804449371954944605340495231734921308033887389018115554379317357192506136538397699559216679067004222984353757029004609547618338532478182997195454462592075814009835371944928895342806588449729970004829860968412152294887882868009212768138643713588632567923038657746601841470495618095159065787413068771549717339290376517897597049754388834353121790678044053547704376158851835763150442963623494696099236447391821206443016128969297802413278306726120571651631752001722477160289604293146895385660829858815669312296233382380352621683830601927796441334808369957737168685014748276721744895591020681283326199602019714076910862901667194924835514386236572480025010123405133387492828235926960395212687881954705126302509804942304526283335698981861544284743350661673986069459959611496981971233855280997284405223572932505071723746655448337700076143686106752619749442472216316890577743275300985046697934403955080845774094325807800911763595780401331006450444437588642280403590006257122435396628582158471952847090480867681231262576810693619702092643957020722161441553331192818240134156940857302572425638617600492736327985000155269919436657683343465516360057175893266172642831336139558720894466356189849202059269039435324748413759627219413571686661990412709145446020016490622926145097935002031469941622742413735364000976500988798505061490769567145031242472435088719452687927733223217537604309175543880921468833896545917331915945024825943589759409912991600823525738642741580842179831616098506611228120815969395397408676238149372666288514850211064825393777408820451990159062985090526830437054081450879770221421966625325093882103021142110379633989855168716246471747233061962828637755670079597795509962352419520186972680638599160468202190758443479791280660505576386475500848959302686731562566455888592056618018579277436927896756795741460406797926179887869561635591461125539746587478420873738195719596874303640352967816120796231681666370892360906427130896650400962310239309560811127122103931179092533182274902894133348413608428510120370650131181473397631208697756687279886770947433885588598272960999070059366669823207955434953468997775345563529383688761184108501900388303845552283470031468041628553963955481830318599165725706035390472862211666581476414152050993724579735608751882267862490016259076160190073369016730338380554995967544254008731257899576290978559059811973529087132365249279367664185011911098773848501093318572557295526171697229133955079614770764293088504165341868360628338314013757793797869119689845381003404432265977518713463110988407342136443866837910989798229034988759916890575549235830985719335512782751325626460880753338322607811585541925930722893759613358586437403988474496145585922964968612636346694579585482551098601047430572742554990415440230371103340051722793967557304836711916944534321623722559701654638219256447410801987096588954949504429280607681888409491471004285994579532208421860103157711016463754525590969414975551775395045130414957568291218170138787441791759596804746167161424395393427795758361025033951386646531060465125549562102868146094019736428788543852039102606384954452291616684200178743036795738979490053590092655653540904400009265014252533228854844966930397961025568770396829043272997419304710991970824434748609010122421150629481184981435599898352468226884792832641937756053399319874669744772813326824364070041023414888908923417016297170194289135908670368481473533564656774377218634271029230398115658190357735498864514013121967438527131912042035947623425057222473423964645424288476014965309015070231288225372670923907145736846201036420131138791193080659175526638020389515526815832479096574315916131858067179967459123727545291669431554496388522192329200951580341332897306948941153924197234113489533737674359428904410702724678011192415277312137487029749911872466601715527847861073490392067290098163395167966125667728836515634974695679493877115850428538995407677701353042558035257093044471402004505586128567127463359573394713723405669649685278537024014409203668344258616810503672758570164879440902585330688037667011844813439313487786526564736802498534155152708636420933625152771961144345358687834910617499475992257940574712076036283879580229747514298670034624589365604173920868156112202531917314665114018003382281631683714346742280376694037599762320529778956101745117041754075315991491511547936368731490478586281649916518050513831069451047852498934590459096910183197224956529439620142941255792482794299665130061724634383673373909033310522382891387300316837066053827863777932530232862656371055957611368665264684818148674317911542298199840888587917860633782487895247109443005298503995222449556782892125639737542272065893961400083173364765910125881254779151761574967157561836260503112471560558545309538152227834180490481005339691079502471146800606542809983233812276295924758440618436286271086266375144177347212279674691939827016954072423337363089616322359228435225768926867903036244725714688724083787695669359311929298090786885283799529449381953981325075005620848237993181177764555673728187269059167472021243067402827227326424352887441612105054481146099050942797294001428109388326947161881394995480193965767964916899621743772886927013122171150878864162610897272454121371931029553257680459871742009579537035241563224991930893894682531573192767604772813417051360214886484901024876623104073047820011676587437119572680653970811799201659373540464172385851962960261641426014636575921056589584488069919035995093530175090921171415735949355724113012715929304725153664781358923845906733618023111648879008441880932461158005088136985622790633046069519186408321043381918690010118358070696980512031427134941929706566224242497876543057954834786944830504704563896156327990854659978941142453166285086826863101961602459141138564671340448351649462095462842174668213891621091649318347603379637614045862470345618676518515244246300426470549114308616012176601266312853167726021730916998999456345879844346401317070767784694512512761504015789499396013152946375388985534501698411453573825750533135353869010319689825595010927106798662000734025112059835067400004759883715483985773429714005492576004892969029350787687258939553799413669993688578675365412634646378047918598312842636213524245350409237439856772170703172115794374848265014496553227634872210035062536103003207232878185902262854281126747284468236358773006850547458168904534814589298792417016263791695902410814553122673284200735641278713689719212974790502490238497158815556589784036844408022448390775277333915830885049200177940640286164235268788839039030963842918239125323596194036605615014945294660826655177701311141040938319094589618414924729052574854593975949167560582852473339085937358596234995253720132358951302221590777936575746486604198513132058232250364167389555213895130088694779295868779860320723438938429962233968872747672308608431257801581790858555596492473847816198804943565778306394212193069873150646211335225286375625485367324312865426358292361352772118865068494755003027034358518146398222800787938181661081035355448156961081986466360097807546213711977538816673192150616422514935222833640453259436239665903917292697790620845538463779831202733492950908172110181092209694387331476001685891992818624214792859152760014580739558581368416027036830677648219981994748559734455760300494948794809743407547245362989356452685621610539702642812578879371913736251147057561036388029336149341725107067548518170017618734210057373168859127807776035936360457868408412659382065117743309290180480236848888666792224580575191098839414489811066942079234701358167847000361210090100544827676835614339415408723324775195289642298749430044774092864784795554347724739947845064886932833999542972768020921041818863261434975855533513684825746662266070109206898652402251980594563887505279073434472865926072579094405485950141259643690539035470124155545632512801710994780813884351543930578685352908787378221384408408478619541770683526265218479568909275489792999815546011229332948937044252257885007510988491458151823839409400991793965864867077433183128651981212953497473947342205515459841734119364820518549315245116946124555794261546912693745489590836079666806642210587299983218294378740354744053546227573480073882783199077020285623385446697549607922025382539186254270858767028749286509860959178673868996222727467955632886599649470645041934615873156937014006809317489023940124696801836708596159845372809479583401324303301577505655457266511616033719901481506742619956239325588950641306865141869084473620563475771800930844971776852297400705782913928226926669769531310030025020527494690013879662524298279924026602191923826417356883625315147074230725362638646536518567957011390457541438105802343811660673904887166011471411786199504582214269246805316710874782422882379257288241661930093928018567471371004822889530281661074960326403633748523105427932569021251569072074476882382147249580932202542047845172540355161060993208030906034358310545089447208628737401220655134166413634508142783367264805706102263201398893664823832308247581713504226144021889616095149424414586604641772695826509177152004600648196032151510106399374781676292687408385354430606770813566043913786486695775137865329181694859342140619422158471544174571720827862631764076446340420021850878570909704327818047812782124940831672931325715090197579394456140262013455442394258076869332610258661276428114885268324834744574755173297713490456853594805722156645479476240886097077337891669336076011171311442568069903681017322819050829433967353712207759849270451141384536665300128460865136147218413590610971596793380582299276160438701244285109380709904074701077357531266050056413814883140258227703888558582639943266271723201349878216936951484144324429163050120628571267836527558386894170679341443425332431428270689638525519966497499689914819273279104146009291854858653333302258216206008437340689983237189213982350950479620850915576034298330889529053302429452030243152697925749306639647431489148490910372865571080757440900992499666892851050883613929095728539273730054483171695743928575353207755805381730848322520173993551655930805188736173189545917958231085122798499868175044987714492788952116881972652779173663484809158194654283130323072466397356684008616512242995302474649250481577459990066644287410476017569626006337875055830141175983218103356011654409177700869745978891774361709635422152930602960117989046753588906661504293993346972383550310799471056416886594841223775049143207356871178484669607100456933738765828569420758672639693887341484623355083980166882221516527761024461444611492507402560740476682618611931871669209269790518396300087779066401442151627806877832826024105754086144574042937869791944836854825945778839459490539368747020069423618774820931620429278095050415860032780533769868839070402731454684613252069887313445031386651006656164710709378247848376837463476207040562235799238647304101318068818455578198613515131236722794747119839538112377891075516799008457356502171614760214996198183928468774823874331787127543818338217538835986684574537637066031361946465465993467015200766727469675245454308816131519573690779427492953728466774908258776566384979209075029438414620741526942274588150331976218767175648682907621089409165201888286926997880649476533226392695295295824402802965981478115925309395130466178338229257383620256292797805865889327841533643972120878326913059271003958613025280472531541205040921342798505858517443055662993635783456662496043449936195041965224424362444761583645923349784173719274015873269754139050943718272729633698830985513619133478717355262810538522540838700832166288221931722478530721382072112530894581732279240400855201016965902910626243887595261117935461878165686660411624791530708487463416957197750289390429618359606169324673540062075043118869725949141201732900057008781211000585911443124760884377641910976154528201925956468645420084646405461155363697779670826801079351729801832574309367138027685575855790243609314784905315684871193204089000095011171964742428783023312727360436098573178999377494734215576219198196077699927007665267603070568627953542340374303439049919933835597455577121376450973747107545919256761560701580976873271649252932757814907861519422701981480032303068982348836335819809394836056294948474376254293405844203245009702238438752395160038443434758577259823159703361066571638724329044889210628715206071882733951307916956776818465746548845177930046564532547045703738965892413394771962155460828949030585445592616225514514799249122632570153084675845508391878071776849385210651420394334536897305265527770183048885532887140719507226791453658857667970251394922258395586682536246512470805180054403739239711679343507011769586307036505464923001657524928958276370532992998267119790504733034366952309191652962655758412125389865681483108742104231388312736951763963408672001973067446778302543123254993349018801958392367889718044052423175651714000232285625805669111421104044607827389594824889715533775928148054587884221181837017276357846341761474843510984626595142828150906108227143304577000410130586030090991254752199342844273961500794400122943308362131027344805496359830240927573811832671508022886939934677507150066393699563923777661197735497732761992634036133966749573784413680129748016020570823711597994846253622478984912368217043253584258835557183939634897693238367182760371671049325611868154179662365366594838267443836739845146552324339140712626841184975438405612621081453491169515803145165807945059906794462329403702304005731168752983832157406364657372229955098121478109570565873551018339847658989936886709756581940968149351442800831092074573800985043780830458970258622833739381587419165827946114950882616684589921968226439640110694782747031089584204428171704886524790573304618114046442125177069947032527481691404725269257277904970448665609906905093759343118197559886743747138513209757422878370836361342113283750990899012832639516672969419347168259889505673033229182637897167298161488294063398587522008543139520349989215393028043437954969378776803332117627182806231532844003360784773440489397612202591667864736178681327556014379303201862403069613921526109263961423402063360013220695096538803828364297283096531439836894618845209330442538448373372857707249069200156052697518550877666798897317010874849495104064518188407896127290092378334538169526546475118229601078730319240021676048260054131101677634624863820251046748468030007141629023267629551740898815572035975715705261703286274960669283282285343487607105542637001176814139609656108231092472897310850349633275291101556563662779441846916903910237143507656599337736263171212955001948268419417073537576243139214648391953212112701685436364047030528034303332233287579434206194587239795020166009992651552626388125827778347998306941772423276340583387833241376563843503766872724036263439801476762230582626836199718105990708811362982069451270778236283496192353965646804868801964302955992238047602865198170056369237469005868295363159477221407063948904841888279060066721316481710590124142248659068641978030710820715673328253302478311009383930033172220625066303073199179921027652546433153882748348307106234471618033601576531529991830273841213168449063674740757864846634193134431662423906570039634058334291968475056256156481419736984936348407676628150311596837372416737953409414778132607709995854670991865931269378739140545250690759194210616625253374569670427528810027163215622031103144350498044211612791647628996385706374714651019485504834716941416244633745326341725091167622784838194527601338931190408703622945579969985021276786748422328235243349788238954179397734306592347718344476345678100562623926331964725105042637894919729855667037455648822881359002350848679430273241406674826661731618551523576219604262975874971073442354303509772194314563021805151484718483859313836767598237503456402261819663651514227971044391549343440496130557938907873907236295854214391861518943988022936183781322514903390248277020693418179623616799091024009102416843149113118625975813208464896438717354662090206876065779406265973688476410890651904484343327223203856555037705443632246296130719065135432207210996880518681699398619118701582176447720327402654786929988408835038251513026291964060614507441199371551396618605519839904218287364011129076186619856938299257713697710214540140400468441598669843424195514884262464714846680257598158762659385593905163124621350656630022481685665488693634864592568584557784276638570742635538956632479205019124103160934998185265660218973346920243492491941171287294775352663207942815043440720377569973662463334635931656850925791663114191319754798787467718614435609236727011848607592863318301342580283231628666465821654972165311068872951319220138278048074023830393936161187666946165059854411389858730411918513962586104509588217617930606527549477138432005339072891941590307099872195187132433507073381921849864983124464634790262669272123292471805156332463173666728516209487406760622223824580492632243802109789148631315136843621843033481351530381089853859053896699880652841638168966465869208259675699470934043134211679575961806626720339061845840997746429791798930813095335231087613059905790995213584070416912114680382041057078899775227380151254086098352231632467747516625478194121979647114447390671569626593834862209845166434832330063375313269983664519167689865638881565502285627216680887292364106451806914703700961121480078175719464168623749449393658281166014075927870434345173247490946899985896178346033385349555702962134389853635236102984945717840157155835185772636787011798309537948588594922554690444560822123925197989113235172071565579928477091878551492072765397569610448729996376494038236450278122091191203644950003204306643851424282762767358054103271197646036411332707949089838553608206998478900341858505315927437987670227193525190514779210410954474640258196151696056446293478513160344236838904615853976828386320446611358010722551350754618062511896457624830566495299326871396240785940545173917483409911875440548993661684365139693677632185063396805731911825392467725735545067981673088907221793927176002997232332719136684603045440161022123739748339673819588681728798850593796604019402596471423534942478013923606201568033278212831471513973437147147582819233602195472213380982829106019589826146767954334454792842020441134276718597554478577275760248833393552723825302692383114951597661074140587291574262662059344157809448896179906841086339762586601175021767903821253394359115533226369230083301722902866989665607331096478208862832221021603966833798707253709136994862806403761463225971014665329922267605805950963994643993386839113297653793690702765882050478764038220972115287873663249935387629075879088837042853577305388332534622478305963078272406178615259010996546510834337239124625476217774257423371223564984232550460305543842022576669964059095540324626479533750227033693514438995729297477215892408205459075665287403655247418997378408055008704503406177300902947684382779061612569474806437675147199757013402966907234764885247559356529993910600574939199266614212388867103248395710242163016718046188550349838032572432908108190664072280722809905753435941742313612808255537571668705917975357373911494804962537181425055045643433130655633215598766641184485937587797952132981203748392789250987378053897512220967752248249090701064668126916757828324451188079949298372492290970164909425314385376477517306565723704676417704716675483432843710618317470996650079252078847825971593858746024781736827519408874823680889737297399973881613027592446253344698374241887513528222367697038573492545716838498453595251451497732742154921903716372063864158190956436069158071577234105044050047961420063982385234482017128420876026421222683768754526636273811607779417078010802571216675323703849413558387551542075304176655711159956838142510599262047115812531233943183696944836648538404581714660776338765774297760777645287435238059088889739341470705787300948132287842842029974768478473131308907529705825372543988130187954517240084043878397091122340306231634474305739857371724728643293519554873936946425749907471101976019572699554241399077808312709783197278256883431046932831192546683987192582398255865737190277764953380382142360403688943791148534858229217888299457678842133625389819626432958563853997541278997892264811197534314939842151207518639875425818296125835611084348204506049670526398635860577144935316486871622358349975425182452348565673747342305040125828708662391413157257209285366977809944358724795415641225073895447659269549273633879329263597743834716866264828322862983978553641509255393314716913087133781917566886296355968433181695512004596387509625254012553913391023644491750330966066470456379465420099441991970021898575262508611443976466892482557968589360957586879102940789388966851028434853600755334536734875843528993720650281462306133772398813477552978040371747585189145647682493207768745328341580525427907901568028657920641074690499691440543588145443587392926687435312399515701830978678189525591688215530600553796425312423232899511663669651449257942766235344407123958927478924575573670610671337572487206772710735665094607728961904794636838881653791301439156476151007542375955616257698321884386625130427660686538881370617539925362468767560108646737991078394281298746060339374398762335308792754525809274895384929947327532060114438969817665696006655139234841132553179357594764949374804822577035839579198565976866149166665254639996156061317904726578694748471337583506751113996790656792000408222388168820520572599806156996718844191036893257394608745985693321824629211675763918989083916858788989294330622093494609591964145174958867479907919707681759437227757108211278893440134248081000326816867569892856807553330365627615026609648504389539947690873805157162790273589783130744023075246722479637201754464905492105838618828091724727967857119730579686599048608957657514005132839517433037846571535175619559462615572407308797375825252533659617615466661300781727323983798760028625126302034889723951676903524266132068884074257888757498514041818250710767840827171673430532426002459017865373566084926891551082110788093321751227180759716909315264365390616391250285160925744099244265437952133808908556194272263388630831407996384324730774042282276345160078435832242547853040082961211408229368037003402555011187765658680634754710511637035214674943738066380278996263889916937721212856026865911385444258884103370677548311053719255958006924061182333202778310924190967392402481816247622838674807034266157712880200099504439921565855522044163792312398641599290133823806084470385374490717038600430092436346068771285855408168441269213582778195863582929186710903055079593725386543245852552050415355146184685240168266303281574998828775065762867436732660726278038934390458033931986402980340536791695903813623699036156556568257931523349408402472840921151564353844594726649652197802459894700043958286603831884665805567249876065231243625981964664372544296874442174062386805279877314653237094984297083621487628102805464350852438534251446738263272637106339738712791190619531368048707346810888237712066307721492284502742276665562183095833033969680492447608410210009775662488277657268404939168473354038614332724500630543613639465774212044836341955615302243027507244178027012975392803937429562549805057146318842555942225115537732836200519231931690098515637672198096104651600153643822964773480892312254039702290089668076279897005399810064752790260349037634892623754972237736365970090726274123627474358899240511909837948821977881284462593722137143953286070693329483563027685852645268280068890096532070706083363148253544277609010632128900702399901532081004300622480945402608747352281755394138757608856236920503060669132136078506338251975423847679676584288642623378447203124059291019730249511071272611295348282287911603369807979920221066861899965795336458897599745170004488822777874191764698558980309956895702770791257242765595453886367696169415065930456674745469968538609264794211864974284746338417797558566476467724951935216529877957638251844517979801317373021604460635710986030422525596100935776438476684564944192807759395853705138799240056476928028428308764093558957538056467732325797224665907934429178024236985233993178812316077361186793847239675014301687922462752428487972704026096865334586069265405080328129463724781039188849563251444959074393893109058815353196678620116188959737506528573609932440957329507762070485433819239843837476258074270137097918391950386926108324965116951819017765458314167407146787570149336314353736330536431151335863783790222723591869992852055062121423963720392819508986564607518511659747258942670724560283711096107939251993797413630133002766593448874640414475489652794683239657121170937150049883694952243094247376818726410553027535041976972901123114294182580485692064813075317457249175996417338646660529920877588359654538515628497828478525680461217321644002383507215986135143087009689633671587524603034648242484881246132664097390224210752085507012141657576729894010025953142718467873876869737035773170353681432080263017559620556395832011793775766769402296172396952060728253641589116664476149483257143949904270417852772872072557509428960820408148243147900935254348754890960136517967741222817189110614712260126507600720223845939971711596453081801312121079457035994223553535255366949774286626641691760594216534976140346978577495110510086535796736366281640237073575177064670849525964780477863877590971551600806611571262669232358421350524948487888943443903319454543049088858286667232243405720733334001379069094880823191890288743745840618728079656297481723569378485418113984194559062592121611074169778487568234365572895536297949723542976313915331854430488942450095346210816669613356744850176775108755516074582465919493634427971260326808802195986856408774411859762588911120671917546694294447303002697359914787669282202447358001330018010988224917485267167838265733815033770108128429338467773623868099238376405763539575236567495800827745014315056942720874679723908852681817239328294408800586923936256046605724359932361570587602758238875315152013044920423664514607827785071488724708822372639377922395584430675587069948267616690947167522428743421086742318785872157308251088630925201520170849416481259031448672661344887738767306772547327841000740367307642065153535289180307095378680498786976822709101415799147702730481050420131893319081386861190548126541244990184541091665529200633214230653969894877885068776721769339908877657446338014811591925236682709800401488764645392020797665726563914640558236781022477234041410293583456780460328798525700219692307369659183406611118159290652204184725284557966105602409030738820846271654442041952500212735454792228776592534440646118583570807547811112090827660510821268801963808789576211321528483838195331539315454631015737865834004727058710189578349843105101760443865362341543136684672465435605561053368690018083694945851934906025391448726659468157872466148756534081456532363334093346760279547002976360286995411723473784315752697902427774524025344695676515025220560735600328911848878518231975090409963641978925579601405111878098330204302476809999016418973974308958951878332772206961463878557163985330722794625320275319999337414782679922913447270720757943813491119322245582809564258929374896268488029044943455914025466316350713146075963053091420877464743023161265526298032041828309131516947859654238020964768686453329628845508996810072252521905108850401095823307184971657697960025679673213429599357608491875789400968084418965247131036915594497245419701770146491339754922657172249722103726290162710964450384360369939243568178748249299332643732974315156977218887822959469431323655400884057338569513468728540346563389778220505549976442666626795535504876736611574019706317138073648057583083582305403971700562390318497925296679896848400371228440762848152934431897690299880376971161370638356603571348952531809245316499045902264255464313211319246456279608615904959970747478221239043347102729914498329736402897479005357721199296101489113032882845597814951440867827202592679259890725050348148447685202390865049480685197244478627539142009505584945714141000951815532496001623712264753583404932389406724246031270360458286618806246804403779021404935186607397377603376521875383418614428523140679223094941442645939204986096207122575418140553124157926339432767705940585606435360911814888015366930000123153417424894625918887685059292369024161425356145022682003425015231921711616656941562031423828349043547165925286415768411246591176408368894940550686093588397271240535338196981645715871400009390555391073397031052144154589340923302971548340390198266056958115723100706665714677179900740219071890974233938778216421314845082418878029466815830150747281680054071367492761076680034409411660857533062545616841326508660859172954086557393856437077169832895634192746737711687504197952166090897917112028428039166331771001319213596069320124202493410525514629795202256864573820116148779002972493147433899993905892597398422015524937643022961502913566984249792354446056117976003641865509336661707053404597695602293499738865710262199155025000953861827136576811130850002562231978859405229847790398666259180038461928261566624209989346447826296459983910221585359761790035734784045668360918223555481155530918960154556789960902699706763686011710831412427915962826477216833804311514956201275141828046206660958787336911484775576946464838819487985031930795054224543302090242302023666221907027870647880427665854284506811451545599998276623078467989043188913613480725335064865943255832590535097660727313853748853391615213968132470530365223992521112478781702767484595271264651709135095238467561844598139828754253119251738866914006120523758508675969600786697540221400236882617024703600614587702960785234769585257937962837177173832382774090342303112546307245122696657874614310000526477658162602248137798135829474724237925892607332458297331506902698939499109200440991025277576799711039079851658366637971983918214813985135926205157862682649401033550070862868540388920809372199726390082702357869484053885543678458366149057339448416028212392898970339418253987715618883749266790488063186551733818814643907875614002178345837529102604531052847350862388749935738399160030784544290019618728490329613775595012945555378282882398761741798938030661302087194204597846708230847644893808395306009912215155996359273290615196805282643333310472070901690394241411502379560029540621744028258148712722234869448640874488817951370755671029820841459338597441125481538148642818274023354809358890575674125078693433212570342488918111649389876962387094135375836522542196893215425809903474112271590817686790819409123149578869506111309040986990439034725157932776639571239350387721014176789797602462534325240562845558466704350590992960235865947159948884514710442675422400246589789000272049376783760220957631400280847625078879453712123118117479909575670027593385282354271490141142425823496658821747635679699196881702737156940078300589744143010545361508146976097033538505633509408619804595143993463295122612474761201363178899399230716743138556048372402514848578114565414853854963760073542193313122811138907694223339980108830147191862804810503680399769540762001989090573475733111192408972993220981425862701623479497262134374897153522617417325326465714966805089333890473884570671508247699996530719346545195798641680250018331347115718426457183756092839668532840365212972757043415307358328775429843586947961790040975760863618173594421998875070511400009410413984221745248099174492769370693605691238641958669712562872572864994164363311499769896468465788784604058608993291471106527475631788520564745249293993588888002514032768633215140508785240220022209792815770092510181751129562077720507427995075507086851962780661721099340847146518656793770480517086071059603348968004815891439037117158226028463134828203211753337600421382505953262003366628980692507931049819845268330903247965271997185310154643226938546883626133710350586384677651099502653013075917041597355908488581416140374957740449007574591346267008020351910911106694741339064326279000862923126222351189662925454492881356458149710772479422817634706039675627440511110294451548210741521008970530771622430323639797093441377957529001204060170238460577978920829407866505413214511638060867474589655932834562233561900306750124479679109400742418378325001081424342513580339549295293861273173900249571385692957516389544978324599841644717307383331817839111648355528892129047914858062280055083915492959392439891845727279030676438291106201697563178738341747093480790068166623865781355553975913556794604584051488053667715986682836824045649929340392076920522552966866779179210794150373078953651031061989391179959230835653383531920997971632490317988801438331956791464896389579247777154407232336804311427342694886345580141435661929595254651530640113347455665383546876830933615266243780793017432359355895980145796644316637041733829939818179403466464992652276062116406662485462770933282472604983005462746319158018879308314353753444469700002471776344712794365505497266330415653373751522316347190986888035030824084353778054177914412851401295059206252805208388818891265108339206795019376762721630115576924342322136740777470019674304247109036480137229576370201194064334574645608134154257732462314321171275764881196387420077145159059767119165078296822592909654152018847896636082535514831775981791343388543000623228471193453144500151068449057355556494178162040439282007204080668161442359655962478240060179084418045242348408428314634417044012926206106437507889440267044175407925506674287575154205610662153099044169191551868376070419844739139057713625848874421688697254005496828433290641910300389388610452399699481078962583375358401113272037486076125100346995991930747721258102317145123820585850509494840564091996372067416543085537580111949756393733065525947359531404769113226640612960586485188676592306377880756714602643966753932121175189007050651987655314208465021065888914418111253412920145413329070676794346992546922861061202846892932157887267250155520451799382383700352425056825909990898461331357570223271708612837557324150778055827233781332116478782780808731226021482493839402992616673092423486988120594597908349808273823972035150797423838041796915091489971720245062951808802770527599386026775783982947440711087132108771174965733507944239682896715398913230458021080781170424711302792074897064362143095669640952450420674026576067082087159136590273030258067911244643885020068174247263825637051503411905646580798227134763659309667553921270428007273598902346795960192960381210619052385747316075572214936324860083518215360138095875489046359877938894519623680010210953553917620948124595467598754615855255782195468925684963135234133095244068360441646214591766618588735542816758812940103448557571583474251841214277792142918061976833266237385724018009993557599363881751382236653980712621441441213712639463877633575927065441581400316131039744885443642670289609391876359059812135063960934660701004881646933066690945922804046486572790427801308920676546970006938647554399311622122972916678271883100700075977105001328503698637550941877944915890618443567690353542685242244691547678930118492768236331837906471832359938770128440587158115811491877233055024837542463984111521316146764094406200119596405481959632756826784486599354076204084320177647336483966770036656892969566616588162071437832843203956822514357153370844349107959232098072750655375314423728431188880566960397894417731144949895184979809904041611582715547165598653119935187927422880517480894146891474062297201946516202087959882204418850728167128259049758615407053528279921945921245234060706286731312429079371069047558560408187900790180098611853660320256260241556956446138573456051357056331325544651509442907032762815494994649592795150578531343387551625567072975427930272114192930746069528759734367631073604996673777370396330894704119653675097773979719297962925090423021728642270104847840832725655082029617225970088434874101279080876357215222005469774017843131010899356831569053689213704517878856520904185172667228024756018391244394203371841621956816737451504374831648913406696692663424540841431561369975430902189614020820788421305922065370044179416717402623672006580469747081492583900388354133610184573209969000749198343157333381534379732883401043290597551003267022053162107386616040221142143110421579054965965167071317088063656350087317963147213779898845665247459427576564351026256204627125571908714043131076431579312888935527373370826180063071473739625521448247142635121909387176247633936794136100138639897992311109907333255040042191737000303981210120736046510724788671096439942118134210029449895670159171048283819662627855193231230807792050714690168155908317701792022284526980821011860126281994701447857371172416909861458467004062441291883378981841122850501551913871618700706898907137719558042547988081808026569180614501397134254804102885478577755209334603689339371447951248630021289008655783101449675159254850353996538039726037501373160283600633274342885214269772773028172769079126379260277382534902423372734895632585327841617059055079621444920926097440044045489536454646634012662215990581024397257028307522772164086014523724826634255183867605543755180463285735356379896426209833291762088535432551837167650549131075133101542766776912958634258714271494273274742756205838816500280547608552232056258957579110478555965585569836051079939837024265839357259783422691125901146779800661047831878567001686195168943643306942616695341176493704756379128346959339502005373279763756617849147387498135732912207998966945031820047242431114056029801448668667354264430312773735601800754550123339189912907806317226876428159579115254709942712185499171116613397458951749214096903136589902917580244904621152245343583199650046495870992388310699793808258015713754473767021266518395408672735908688521610231422778767876413328753325230819020659184876109637011028599737777714187257306555986150758086767286444397614828749908843700278668160446832945145109277107427464628058360581801089384450936838075311112609954966655689773657275201831586571989008863989516256103082530384897853233423150881785797026649097861955114622557591695766774132641128916807975767602505900339973426993685058510669577991021931555161323209616743281643134679164847654581275920966144532925972187324576888122730075831796546502991456078959968773420546850351131838754253519798876852577345109378029830082901948956137364966210881636743607017578418875329528093512109513481434141465276047594992679412096609738184580868526957554933224403492678908371414604737844347092329717179039325015778931471500079837349287597853653300015355535684683903275574407273701652371535378411145304289776646532403295087109795692224290177475104776479736226867268405786085552392628438672355292264057367943899858969266472474516298850782281309185436861159121716222136385174196679866466141910267356236799105998296320244210440126148247883960927097159089419151056863449446802009771436205457533524091831678301953587810315120380655877506725767665404226759140157464837289060046482412782866916387560673682441487885514032844986840508341605342014609877129577803056111878670386641975416804246934581104844726629101897328012803388966984780922708096376270713253858539068317492993108592065596770865921658218215455962439666526036086170522681745932054844744409627361841560150491277423182633900311974983534759307305976558849456868075235103400368406115615597321041910744108134023494273981086906021391915527328925621567513305404764914178164820557565276499873253110339925417798344269110427686932753575068592377849812342391401338005598470820817847926976576214290604565078962976516813059433149371344990634541538078091971478628774109151097438955146071907349699044809653992678213571401055583567930808092809163178331272766101221164244744225693897510993532965347259004087529634853683528757988421352367549147201646140584576240881702848471585728795853980268981117819058192094948402424815236796405143349915441845304073163137363109402924685101604392134238362247301434187871038784636355848297281011764852848498317058230943004972277757483734165647146214638964749501168957072880830553272261131957045945977781833011333381301104347750447117818268260758974999984989541191046131521005052382491720704869254429146351277297830498838245910579968736942606208578616433855838354634695131791078743704320807228383746965447473615627295548580721699841822336874410320075387269012684333920142384974610560922749857507480541358306099180249824099064895938261411329933271903146933420217077237850433610304653663761048130031409260452608329101560181332527268868079683797293472308108971835586070646209895880829260685620107102889183664335140719734761913454541284017417152851462539669357495925839404776746608470543573586766326367949594153962824637696540865453050331981222405402817416259429331864019147252113240101580282493432021781885667871165160794771155971190132178940728872869625147193510220733886643094528975172293244588290639361762225322739662814563059045106536392384426440648187603692272419942893413940426798626447981280322046748551889162528735699021274560258773969049545819771434940023059013467167494147160752573920160960152388709110655565229595013743658707256073605425981855910513656436853348359110581519059762652474935029253403567607852559885576263777070016166464048780929474231681096020666738093925632328435205070981497964289126230367220665418277740638641326044890438492610033573951055203868111486150401692219449078073456783587855105577825939771735921485078547462749061169946997925052052321158050641483061162388295442550114894712782661627150003802986416835864475419075164152705351000406136607893388441059260932461127210854282219778237304309652370579325464052561159314137224086245788381981978047765148076931486104584641646737425827847376072132022514606625374258805034154318802896531821252169348692365024062254716991600316389939730420662319484323276135970432141644317615232705522920548597386953080758100973835480065865027606072075349484573690483081391902172494404967934435122114788961038422960338099682682282513639026033812881775387680863112469264356976333703149141000101169164197754871477694764244600070049764773082076354100851967090879338492476585320245807417302358422991579081687758937382755478022163017843884768706176476331706212445808349862197812071630229370626549066377273818744289013936816681125967864147417259947165435624210323848155961542125480304503275818234264264645631040390490571771817257903577448495718937459697099748370949462584739909480050430173535544187198974158032210274853067871082343278963984066106786979536799025089776600118841647792171461536862462504863345548390326806303193882615889978591965144381046013269307561138848714751448730939186635114739580549299566544586780024117892790947007014489058764287275380141623835317950071889062865863093797382638614891554937302201091867192698164026952588121696435993614701956928478173652176243028643720827903634577184950252134813818042806071861961765675684172602055989533760741713747440756787144274342636973675848322217072785770847446249484126372483761874728918477539287707194182533598958917936749283916411925419241981254423039085376418305399764083761314016727188058340020079339946076930498833757271464408175252329784154400346050005042228827395832183296516434310413969374692972604153281118315532303259808478743287672483807462021986937046463751474360552446026816159485092089619289753131877156318954151684364962351248694767098887655542760718618803744467512963918662921411453697498944739649951139069404181085403000371844834711146297819086855503707885844188776725132779561510392509993513787525962936733262055299331425345084816832876218559821412442060445833652163571812130231419504288651651642098861825672004679717816585280669120975760214252460765086298807354924550427370707765578722218015725037801435064200698978610427934866512274061310824909590902033682252800352208106135118099280012940438423678362800028343907346389195162115009396704443894540217448982515863389094075736671451495786835391003271780631812132488604797162172715416884894032660855008048708183728500587955946062876250682680060200333048081254809330526544034001546868371566400865597325031056083999460652220242610122881140051103065497189689654285231206501736409313631643222697115830805230856599478550796599794544858179794053247487466114909330006483641494221408627056930504116693739213783619590520490479114361157262913645892774716716456395783384382639706960978522462823682929005112732705837928906826326542963242542240174667168067520890393731010090138957213160715926531401264490615174924564960748188735548900995929932003800174000110317861191048923355445670239074255571404421033774760076627253708270080491278163908458124284199963035463793224025446983872760130557390526404038343223081730589592773780679102329807526200021786196979934365866996160787659526172371975741319771641375565583883417274457721471754202364027826562134407755334286872885558647121288807843485890096069916086731021560444921703467481916585505710500271343779202197423779835161058925512600824580219428035503874477823784479006484001586709147150942266843167972760368096420575704373554265815540058957953443037268264350578050005653013387185931390192597440990787386133177701037215167670299919779455360927083801389180102934129564842860025078705886145066078615055617433248198822332222148249745778610231473888202497981813071829030208607689080486964193128777011302032343173508731399338207985863408387468183778630294960647949279173828889513445923528422263199697585992130978974532093646916870361350182548737385231698616363471531825938658577496319546503818497078586984498560289827252376918258399127151472882066729466388512791215007061334640340025385372913583781736281663714702215584405745381094816393785989341395722317539461224227581254574244073236713010179055033181109093144010508309128400909518137022675217718383083271752346991974650116750205281790346350950643215182322137099751570072787488266248797064044427691067443111098304586593269050592103342793042469738550654501061490892272327139355027060744660835354493701404280275472259885150134378608232852858267450669423773754903915597624264802048309043010901993083386217712150118329002104186072306767923674530601777391917825327900050098680899404481337958853367265799935073156946091470570187752324179646655059234945600769328665487068651227815772354230818789206054957179809407316013312204743405239778357004396886851614597045554067686992974333637322921071793489612108870811482332753536615782162626654002713219858378329106153599379032151752361808873756275681276001436259703434002919695655256946931760862585613174719597118892536451036963326736457534730926693424065125426258384873003356150228041292746245250014743538561581206438562261684806380176373100011775000788654065910366091986716326279114465457561793548800004583686773917039679012061068968412908994962842181348081860333423900444553170982874736782714042333626252204010513504122713124410142005524491522226087655048336346277338652662729554972848747342651783767708441420549302165371496860401699690814066020951288957051427495413486472982972046129743619320747963793240837621004595190220002924055170121661822423183950797404804687146266012617124998175002460111405939060633063141945114462396050884890230720492230892639302483218721538151337420808243536373995437802848965814713440951459708671168138301807326946721173065536123240880229416078321893103399547535106263548813179980895182199992435530731934983004419707875241610954301587819239500776433354721904302731157301993016834150667481572595972677334102702060814633907915709204089151426606439799150165184543003706516891899393256678219730560032834375172621448149116742810865604071839062355434696175406634722460323047694664640608493803636785787341642622411673379394201396398640618654633413421050841300947952643432948242372619681363268749294299185975963739742005275810555612423337995423471445518451128167640606515538808982243205459228710987227386412381999892104641534514025700294172736972742492570301552760237818298403290678465189535171925108925802048325268156662034312516305570463941280567382654935093376285012219649673862316089453509443243729634780104314510481509428997722406636099796656888804942085528758436061271907811250038047973586443168369545712648323209247733666910416175143104894873799512216325881428178647764882600010984768008659241338649368800652788791489057330341283831821394101496300991831903941539260127819940930122532993609047022662729701342528200842087654370763161369525328323554077636163782040454492899983086848130412188408124918996975390934817273871095976399583264421687589213616331016956570379161238378121691848225707258335011541385852213147655925662220512629613847768284256320478786529666496945206756316567229334864794000392158892893753403840423565134333462613483385109219388650429382023678519607202168286253785020759481913899176419013778062335188848863385734304037798342950524724893373287335052488464176367513301932371591078655626457343440935286516034825241572788031253433626260320698614370077286293280272482905122032574234891116786510339334468958841356808128053137213383595286827193621147753611670158516947978865708959260004322763644051927740087870019734958682855498966397551211592738666329733926566319114156615290739142974144834865982699390705773054044516996503142932844504401779344290864560104116445622876851570453215120731917037921852177322989644044492385499618705284591704089787614603340159224975616510051595053469647837603629192529060410945113607457847625794636720414190186954701567174997687323740440892324648433415225608329609776766659513446796162676087531296800441025268603487828480951049316253954074369246638375572817896649733369591542068883904150301302209126978002395945147996910888347827777793157585594029734674661818206636040618037535825613170322147959942857316670960009093061944383142004249008395141169242811529827166638551318418777003500698508989400498072660327405019310635168040216568810672705454723185050290568166536714683393647831253622752985074886111667355559526091533624327205718172499829063488272886583640355577457368936994252338242553303473683908993249322060150535019125847807823204987157000961996879336960811033963441654162165339660453376454236436274286977046977416838636325300659053946854994388889130342435969007019141362061646107153452075308300874284056559863541501418039267344945917806935775345724227983605204568519688300548614150535848246549963848276701349750582463525291136141376749391205778487747457841554277524622739239154322721774600514763160774918349984665820435167939965302577814828489724166642665832677409624820777799737468109889164055823408967006033281176138270868086092777396315199404320690866577970321548519193227365371862785587540627541351624751138747385042300328484808547745621616773920515003415095687905288099732417806660930996883199714963300648573464770311141958081476364316455041913507755727685635109613889856989401129317089397896039236574537619448960815244139802971828682557339092469157883090157001959956900891753435385664026714530820924765450135302911944575299852267797115689696874926157069878451710402035266744123205314112428166869106888825465069784999508811248556559696122048730280775843272721903441209087885694470247484024206732337080641539230440398087404712755238257769387473983300359996094867103959477997062523810300550730843167256535925328339747173756291173667952158721703317635414069022481313383664065271983047207807499228741912529224155806424825886797028655332700505681044463551430417560893186535481706551588090055536899688995535321214070098407619999212508468581583986451676681280218102984393733356038522773419848792796007639377009482843495898381156873311735303848942233430359824873249693745872153576905325056395624803729821999234855084225657782599192566993150037585079768405345850742938747190122866059674198878557741687720165657765340362343724514240858776186624929952641100993740660082757214592633941157452510730073609090595984315643381058651970798777728395140334309744025673821970783718898713432766602930043708555498708855961990116512282548928296805822286960734211008744967459374531929475101984694900637259680290064433086516015921772122449351701300163272750046064313215572473068318113292680083256310619045958956914573292430572171481730139607779193026841232664410595081714881326320542715320179014404066200390650381893462869072818552195630976001169707702803565363447777703190326812995113318153200417288272776818511462287376990360677306854622976824652131553034708209115726528055326935916610555105575811739646684151928078100506599316741632253685303971346510876923207189015062496291945606761867335200654630953885586965199721649757666734898977068291175374488730309524524718023565742014655725398631436611257492814213643678285507275841824237580679496149622566443374152835377257994413371961966340937194718694466442110951919856876837353063467314926987754052735247385771067771694140592775899559694622440073436762012165049196965460938387321950945866789706504466853934269674349644151883455481444891067803416301793468768380142808906960367869214374551553150410984445123096156205623757511593026373463847394049027823445879735781384924148213339087422634724621933857556072891792767201486729383119875439013744111114518107499491605142623649567492563012052866690005114524962180732659225814548094014613160354852073890054092359180129016237274275208785495379855605605850533447304902288503379852954633703351108832563245826151352409344827894599146607073483412722669011872635024738306113646873046076240567242330749073273775907811515964697762648631371131636236873655175487277436840678554255955854004451588071166623211710231601295954854941974535031305097148398458431938695003775096611239727006835855459033468167946566506027187878414255046524285755532977398085454338975014636566822861374224605726530638258951910947003600092250020793351794690791961258377358410345813504761397217821779063314123551943578838683173578663722675841462417260202443898682918671956197783050443403647675536095653158359336807242837142843583423770884834049285782942084337540741165093077638463649921213879298402230886700135217515196401241344273140729263231599751645682801481229858079939879561552621610829489343380407346478106500535562801362620620297273029342694993567112989031268855907078944212467348284532755256360905779495571749212081233949877018869035716616115362831417459217391679181109285631901230858429719494599969632109365314923344025166515737024973240929921340814812744040986766212210444617472447160361273793627598395338050874521519811609190468896160836583403946568958199339275269265493835876951506758148289150138981619059870056720448056761578943419361921323151487119544086752174647226867776912649503849020411392984420972401161670794312208352170802329861880739870892634206357740411086504342702632133345870555797159916375464983227169559754298059442466581334606544313911387164042318776883316291044566048770810907984811108633218345942511258624053168342582130172750953306090382002268543328825351857332441681824036293918928442732823451384497110806396935677828262212279416618861780142667743245932518812682858466052046532456302990839630984213686251727803624487790871538462856245384189647380795042861900333983569162643887287468787709418686480901464176225043991632643879033401568127813067662602888665759694147477752777697709282263216881419347588815926295166378767830273784939207063951653651037416918614476884774264664759139472286200748466093643333561940170419274956215293759552459444692857020054494842070496105601515485619953973225319525110530191975249354010417630812566547525708220064917123989410875487593289268361570790866422662815133318791199217958617564236443616807441115068155948812464938024834899300228592652721858771280618984419045581161134944729647124025667218052256985259451344823661675702841559997768326442471113268397435785562442201203056804479275786218047530202074290546749740215336048492519314936028221098662754300031355066065611941789700753767435397844784270242703214181300731505277476341525856925136730682775361788902753994151293305537167523061855009082182273766970793678371925875466868591483275079754737099437328493252520945553024570331082618820511746746511205969856099604934967018677627158334034860987439205121978880781253400995634326426880857775252860792302300131432088188541482310535777814305877004759717756930018491823964298858335287402469023810546587080967436633798862782453994866767050917189263219671087427044768057848594427525413784361542414160243212818153475979083557109903761447454504243514610107683121278743821283226959923914820280491021108330901213763813099754106815005116077748319488168903915609162395354739624167080792902622163441671224419367243577712093555651007984515727971735376451876185482126907880236169254210390969065872043103182533823904208348927627312483899340772030406409505640574260342989263169358632381335658531795897213917065057796793737697740500690259929515335793317832213424541641659922872149724112513433569691457534044472925536435604499735951041707490095626438913695679206002969054320179780260517829380067441317785327985579893531680351178082314951429958281897538342434212106831488763776194709764466058104136296883353987623035209952244562607318090770669318974047159455774898749944807863159721812021434944978969022145103732316357387386383598111047223295675290275351121521008383706155057683540960514641468620368374074073480350517947636078037017038505544193779358796845609529103220711977998834332899050152378870629218419683313431588096298848578154386781243429443987931358044971310162955644148599179847293910301696339533962895299908434235203720115562040537603959348597433983970941009888020900764303728730231910793074554468609319086832521811664530133424482479030522229866259392008281006271984245015441629478329019438666225553215759401878547948749176740450742610597943738422577493971684595077242964104990158654113337767511059697778279839401587162436960911740002714980123038493322669477306542169722040105868518823300084412215952798559257464107670302813801984115555901029305346831682978051585997068844486378998328445206639874453203517555193960957032690720307407193012705800021333846370346730006761520877482041200879494960774574077564405949645409528387246194014490659759297731935976927620199508114194361921062642591130110722899228308879248375087228663677360828424920450526952543689613267183965906663636046594243821182233747132517405170629189039951342013916001165102624017038888489390946981322040329768768700736790248806973939074836571571507413427331827605381177388003967204484024700645056477590641402395419609901628636679010730852691093510113041176660577018546555431506039231644703305968138812430722033920557194835694648634695049369543822409788497049121701154659188701738005153228043603799590041211470696004595643746328415415877657301526746593581992040064650536298026826871088114440897779375417493245144401940091894987642962351198022738910452141433849843337038324595247372902033885638944533894783956092906446085965975556105649476670910424528497955463403599556175852888047429091989418136077319154812049094508499462943411528938831913144857977083799873366891728631477741988161308959231068873541868035212134784801900530297138635602473519072284485574022107046930298514671885219108913912130585620551983814632105554768052357581580399749909394224673472698937842175075243802699700455085246727272446783108819471567021224671633999900074351339774910747741804589645552740007288482933305730490741998541978095137075681530627567877575255076872763689345696448505849038250108157827810120523214298794968296397874930024615607004382121959114943110095429113552536564453418704027653264552553400611035039226928948853713042801627504986775346255389924617055177068832356922462897067129772791846350987479139894476074856826607100918753827174609915423688502428800250896522765063528626579346106979622460015889269620233208169806805278070994490539005094868019889773622791766503120936519010758276981137350850968036340457623555606901226490478484050682651078489855647151254136331424618043641206571669024644420198056905751687781828447777662910868155298076449062733535831832209177955850904329718499129505357134107515230553323405097842534560532365393165404660177793860369491297002703154001665279052896948421992133038091760561450214655945783318223185434117637956659095682449783656723263719008116069541177470143005039320483534780775370254283515579078810227892395884817370770441781729756015656901824339750170488698635335023282690455807162640146365751268182981094581665999523964244245011862533310544000880708043397864103248355698268097188984780971935300856443830260888947789516305252947996470219456600093212733066389778063132281243706537171489157290350497057190495725333283326865445935302544540033406259350226329159116503455725641625058478028229487546062792875744241475634957670563888596975362485959142827835534788696257223563764524971847119254388932754155252862207304799460141797653303562552348225479700890939447518835516725681523923653186274956464432145637801983038473469081549693332643922026467912225352386913175880923010610681149788123650474521838440766461970948803338523369535585598940842708148728260013029612403014379248200669498274897032566933949841757535991933952689247870228568832448303389403114730030725095269551414769228384781218903750839022400559349953914144404534215484744469788609417902151164848523883195830856247368952049855392055632613727556131624227298642740236610218593160596633001735079233407778180157985009726965771655078781938417430541140926205168678208019593630214574928019412201600802053055454858956306401545727649514168843539166748840261906055313898007393591602528871435793966629029421264297378264423004995227612822879998411894982087349579986244322438957681598504555599244467432459762196943398215119018067229699313663454735411366749967336100842065142437161095345380445299737789675238524304679128578115914548234233623041993470511913288116773222078409870866462263935426484754074945096333361909479822779896114501508799611678521796081826990665460455172109667713119851036965934564212702750607782375646274634980806742225211338952106620677060928042051578453846483767409995845525475265675730717730532301134993722693581083805247850394363880234356810195587515036450344015871952119202790588173529475700049962136395544243089025115871978156744876244943956859085582461817171623301926865002135427612718354550556697471360502795661178512246644930408434147450113813582565690251275131479742297778253465002257520825937427289259452911328608096140544341227605367399054602782027482266017450165791302535176828321023113710285110249063715704485112311694378648148067811664931752359251293587015987338994200205821262891589232653194998675841045081619465405740009133591512244473620653472833308817500423660379059907021246215154721917928978246247214940178825908470667812947013035350823621524139200123978996777283651427524468071750397624458512990696811110995697175045176308965312696599901489935714706560194677014516372418049376261063513705119439407006233592053474470481681112167485676768757379453105375781108374893007053596173807215377487601187025008468274971180833444087652967437303222548068039412190344145409737854800863431638643719856579379826874388236508033050852218445440217839880036197450361797995465091299595976539769379977047509815450754381928113380746150158978350377176513379288865018625517388297268428420791940164167114070765079362039305217132916023530105765450925947757330356751730309345322314420742881815303970827150890727264619161702296585652825601442506329532436631646978632402361863037199622319513950584655639064003742639832478851191724463209441758912086387281558298340725779414227714089126299790579381564305509557619921637782602081452585908685695305796130864625889215302613255508890465349895281909055328438870880698215043328556914530685456526253338379585680887703033595490753084501329811614467502298753236671002302181230937330867765431685907023182727277529378736149241258699048453711109725878327038365136771734699564177593183403262816362434808700999073217449943390807954840512998250518252945634039330626447371592075016140531293029765985826758981025671688667114014383788990662578726278361971802104046147149036358838229971949910078836720257522641794169019505386327928047797834084017153597844512618697507396587331400131362183587330102966786808513011365473800513450508488530760949155283709398384455588406224667558116357978979919701965212325435275124384012929714434193708241374960319351586181896965983320934562526388568765582351465047849231807965120293831507183690603177588161550183600970240152329648995026266758212155814944602343419415523913276187160333494621937648916164450042901549242979159209031751328768149152281235599479115482471640181901174951695382025772399816592075146782407331691719448019917311397593121396308959740640532760012121951994669191139871304722256704366730102191113001756714071237849869117406311338200918381150107937653444637928577880698442701031789457386788796781054008835795432773619845100962837015115297635562200471634240851327108217750363348185376899918784548821068083467903066510217339774284550100234550485692404561156497722804554869453219770109858901275759353532780732492609662192238515560704169926675456152313220666928356650580253000677510797125459576584520679949912532574355418152307060848351882802216151250185349487225280090528076897977783375902476627388394221563105505051064027778977201299195634222673287508496776422021146654062287868007268306990931543559753636659967178939820631104375359593040066658885445756974127735619964653381315100896145405018724897659177351908734935828331239911428578037421142983133769319476549480739411294474992667220697731735825581317346364612830759369686722881805727335793039496041808794048480191945413229893010250062011806824997519611128105157171161335622137193776429231168805834774477393680433261414150166776244119531008955030941084421278064115778955215048301600402330825146823553799440289056735502489446689667861661699419199091026908177670579841466403940195921949694208222627246852392245714955707225431533604252677288530964630620977736439399938993704956069532275252290504059967722620298923891395546708393185346381941551406583855638505317400001026728484622423697780641147656586048046701963617763697566008766288502454540702292894009211533059609621725625383203761522495905740746846540818272124366237033393181341171659935370853216240873910217359672013902124616950413248562652587632670292289255558304814370890704710940002115747772872685014713338549029245343902033046323216273323294402961402576982549063726515082345080519731320104273383602985771820918580668152501249138386729589708147627914990967982988317242789403243975334985892323502134091564254352975542830830777199050404722483880911693688010378097492839648657879140742085749895131400342935272433330784646495989481634874749101849099973575151095449900844511400317063121458335402695552287078097286676669299639482066940141732685681454547297723446934531332560661183278904271123510464832453547890595833364893485508231873425071362469065935856397420170803882142516678246727211352428932658616074913170240530712757694926933965466804548262473206642129301295177699361052490361109910794389164698936266154755091682549457003718848562803475990095721341829589337392226988380489081423770611893258433297452050018329480033478024772622123218769360043472477892008323842406210584162708968696776997168460592181599823100656615301827451336897960630314455341831076839794482025019165381605337099164576923883825178372073778058879609276712533356918667126379402658393326601186264773172751693731492964551889116586782901164637699122087652040896885544252924552547219923246904837414184077870942724085358693448803721008063779784142550268353565204892001547810587939234023375592538309083246898082777899547982429820700068404611304493473300415222460921661544935092095921650475155732401094784740482673643534345377170577803397286998732484063262458466890254566354592027924033999116777138575647700117661035815037795211150893549896772886745521367483148814607523071863189458723522205972054477584835579073314511069661521932565126584856075026420328090616965967156894277114697069008956475239113759183462396546662767845827585124175085678405291543319049861363146192730878720029558350643777275145708913815551067681984026461383896616167068745053047685871304405717738894303712448739137546598846531599022721800219360317962203433442275515114306601620505104541552137766643491862041926882153477164690013799466032455617812094694742324446372010265061120297356840390117805402826013833617632598365885569907829132341116656650967860305119440696449852513562380683037959641619483606968229914807715948932170911613567433239683265708927262464861681545314568528873938949417103485734402950049627784416266385726549382394379220583778883773410000972484127768943308524616218148504469082052199996071035088229554481979344714697292445378173513663805574840690217869659112497107705761372440002653412463976422694279696514939143727620145249789355246322889156249536842664632429484265891431381783126277814977786060921374746865693719340128896565631769789432132761643861939440359174625023917335517818668018488677173951299016429309695151517331604472209228718141760460984733301054936095182857681692151477048574282086467405656634587004527953630820856693548307820751604625041286598423920990914204051079568977081926041243271776679407246211997313857178048792995668127509420128060410364956769922617430884124238476041837354600323839193856770005299172708869511824910920820682876025368658180421089014829999934497535582826394689917126441103104223779439431365246039571515558078695205054425579601108623387703504775601943927117868546066651593634190673376497428541982819150452390450266543410870209742755002211932359795036461242977469971722441501043972431490654780079130276658520720538939379538733149560523161485723407278693226280783479749931492044347500694123817027045715929100048524523999421318470712057188248117000914312242760626428169163514598428539164508968237591574520521441354708052160590428685074919357063084760197987362004825782972350616134240212985471307146360931272694131335571148746057205027362027720165391365656913991535190747118030251849226869757793283971439637201923464074063502224545310189067239655341240280560842757903487114774964247544989845346894160884246345283120941609877999661913684769140822139906323690867453482136473828575342645732961607206309735097259276705772428058765819830264548844757917313323781028209418134312758507111178291850554571957004926450222112149787557510730978890842876177026610203085214063362892105817507119178625167215062386476209394065309937792211143445128991244601814324727518064715764187568701154805084497035166236340722020820120202917775627677514696875715234493000057034448712348886893589048110643727790483584703202654521147463174821361628586770071684370842139013991570305023192403271510284271792566099683946011461098786771755610163781742491873092935922482936764274738385128855167106722491266155597759978367436429546811043525519113257280235397022695162939911122394040288797060435566842884493139051955232053498498149472786867255447105050741070776595693367765548845860295977593364123518803736797292148546717960582705905375237820329387747192775700324920473487583950921166170958509167369310833792465766373170652452177897737868595920600684791561337764237356816136727356073680447990036904490090598652711776638407558711897601410602749707712849844411115521514616741642563676324027994482787838897112955145291696946923328238946882069279816242630464297465866866276074730619418487080213176901413273923593689332703331433751294370155856820697743561880261032275504394078213640991277507543045853080181997097118672790563527937922122107546135522651099097831749467108376813193395242658581833459677193838290744753127599579539000765957683702610567897185998290993814593295848922095346742658208538140913628746312472102584077787003482143812535427034416523075009825642152533579605305648734725014354304833545387003321680608346082108712217538818229245351812962417155084989303360903464878991881812402134626169821623580158384575989343486361305431326787249685711967342593745110452372011740615656481925857015511646630384464892399446636540452145134990669436662146512291795085007153129962431021225842725230449690951710763069879477969979734433876558613776010587339779913012030047141012655476979366297517462636829258756438765292571789979865912026752809978787893098100352402387981469135873825737796193864537629133091927720540861704174687007283859493110867644757116130931118111864118272764658038687606036499191765232519809568613344230719124061934580112077481987965586552463805093883866789285241328826447181870862496735296955097081793854491131751818868265973175934773631732365882662098022325492691999030784073002398984874956191684169519182743449463960400354731744096846744397468390248857515557215566356933308047157193246311762633604292955397959474116846355122478226147278060047810318059568931883187834752726897943434241689773077817321382220620404846128879897008045067243744737057246802012675913253990773163532664429169408944639743595336592867064125835880129536376301097241122489162528549504173503120879806729558621105419543891000479603103475130353126142504889539943157845534408312789083986050567609199671951776181920502312508489011571248575280980059159946246277812181477271715064894627228998183400517442738191456392539279925343745654602138985509848678367477654630116206153000781146913131989497686530782101770795215337349550847676724875209293554325029534142126540283205032416109713718607789599221801594518806720830456443556598151945758024545529309248222428503935109543962280685096228297633876723785008635703012085770439585959883846700166762478813374143869895815490746410573897681665443302109310938903823550531395012809333967806840379969985446688875518115426526138540870931403491171188990854692904469832352145237551234068387977545084837405012360938914842693050309194165582342680649518413130495987720444617139401468438097990871216898078695274466771535897531367421848374740700186701925846216906093665692846040113410296369383083220385910267633010244945433102077220647128322532338120356845439238528494850217235084253912198773858776065104857742419369942724376661589803471978510447834527542478115239720853468647378599784194725690337789208611647910858712954843607779624954885844948219396665062674629021846314428333912201668681409502771761592083380286373348745463958296345293646976436599232751447775567855694979515442635322494155838339388980303505287254783814172984773246282835440056179626320524201631861810828126944875896058371079012807943015954080100266362223021544768097690187649097478645557107154543056971141219653576788414697871242651017586695413838826164089608266701562351429005672791441225033755206428873985996460324080789552497081435990547570147455813602639192107004875765441236292323437965459419197650030438292992060656383408786411184649689764031218240413067758608001732420588930771940218632222293586818372178492206940649021731014980398210833252305092822781926048259630644099066991848767036457874973642668799352093934300396370044012969565873378975261504480649563537487456789093120376710098420480352361639705047484800465336367643686647498248717092637929751373988862516679452434534242786435564423688768913358319588487397162946204607496812539380067208617920218906744232327509960102766025882813027852490661525478917804424666859878632426140771939662642642829073016563058351568414114918351273337935581615255446811782628465259516180566155464471369386390316844374790910523986801021643543423195909812902123475862283838269375310163688050635179932818573159829683801800861238921976462785935309559839374638168443318325114875838053175814549522574682570626049754133436596340293734399518189465386184935925008989258006936910607794416393929154609326049103840361547977390543938279788793837878506435592757247158828002204021737276488113162083774504516013730549972233610951657125457002383801411514458727488805349389313256564532713068640680116305977927520904570909328020718469820834522722325946495443255813731793252096030575881105118055892504886590208208508487605560830274560949548168605803742661505646879862158649464214292213203605043322831473499289713568277928651083201364128310780328778167512551012446809194371681731067765901405905632455922543331587461813698449401689395281750268584172548966521685089955930306577349734468336453890544513429518602747122677182085191165646835315415038872885137644858856268179513408093214348508715260798183255794394071253451738992080992470843738070937299417365395820957956367361992150471100066270406454736715158484247351705409311546885410957733643680826406336920206173204911991422466850911815060161784405097741252482190263833397001483337916770953521239516809490741373094564966429612557450607351173903388637449470957046668983921143849806643181329782127504690289699877318917302718761018930269849919337595018935756124701699588961972859907329256267846388619308604867563210371928103573143634912593289321600421568497878203185882229362468543381304922335405407885102969806361051411769774207752744164910844363738233175360538528620873560216657351143258142579402883695860121453915304206891684962605721159953377704782668947307754233034702378218974192473867843376924674484720461301501698833129635494656890357245364838017142642947027494196847185302651117632310422316792478522896258481917086873399514619141453643999185338592219418840171083140764692485832547763474063260303343907126351455292829039804520720482841680364178606064405286850458283957956402961324776701980971510989116597031115890196905432583812700425017913090444185249098961930414193170180989187980057532511926570026971216664632966228268165556458828124534454879871914677307617489204494196775527039704314381214655366581853815275604898770530159601811464870859266442830387623001116733633085151144286087425943051622876592182766428128004376288662852770680999464175582523145389974226609736766651393390697958122863688597311824900201780860891963024748678563307779366061950908475323819859635723913780376023065350037781826070520210357607748397343488257310881910879148588884146303214571521509305258624368896845481007489817648753468007719327688613940743251850196803199537191063864995073815613443896357110490706385998193170058136614160845596991473587521894789186205806706289988914330477264791679054882699345547902279253975391738151805408195579064242518983188529444336839672771944379908138083795306700578052673701586561971938995220240950183379672551343764193556539244168521424799648788845853547200044553249601916231317859635901425408250899093535128935778023641205573989666269563297062821260861922971180842727883584052286803807745698520650297911633371376118168867711267424626323219012006751011845315284033131107485001738359977595085882791385512371319987989321372141435160058536409350802695995845168577045040391472983611243205938646712865298917791390342861329849295574362037862342159362932534948648482668509738852882721371342172766744496153600818242645700149313516035907568273928466151040706553357110238220045729654955836583560820814896912908276715231835903277943790510173178627583626726460810914787661133904724576170511194732980120780969888653830646207614549305382430231047526257150272947609942355075169283323568526324279400916283863350002294543272287759505120046224396447608579085989052128972686476353705124908694874069766642963143431098959583434180426511149751457785945193002992779769712194287307109745869787886279205545488313117165706114102935945316338051488855863943480047092033288338976223898226553046655821120683729008652420424803619746277815178750656821277895530773024219623616319498715026018158923979948429804240509745737447627984988676090654023245693240659897571968122403035680738504166737009049020142022140016347615523577352748305494035080764256575568980832005529931583484661901949233404840816776212756956461016255271852891385637475088691748123526825948138240311212952664906265047856118571927359672155030827365298120575182375431592376009139468694560062045925387063590807271713984227717112026069475870565095521031397674147998165878775724429092054524806320018292910729666524607952031580829077768723121225522336193320681600697606863539184014456231116939975632928081065564137676567347824028207643521390638802105929183608453405917599965770320018978737639537238485384829215987597768960903152677345474291237813421713417577489828967552691770543674968189307941102399554089586529582084166230553715628768066653839880035070238665045744038057365816826345334620976469829503021553255790825127518570361634016710572019172233964367058004490535371763961579111917264227679236609875955650928615753726655098943851694274661696045352615524013150619030669647938252969066133566725309635488881283699923294403632956626007375707135064226977673012826626968931747987741982129933613421454055389865603377675131802996419727496476207482584953939280301457922807692228862502019115347148609160087924893800243358768401714910411596471511571992303953095195856232047499097775050637423435569473969857142547706587857515014251832906329207866615132407732953330348828494704055665691694354872833655086173143075853525701059098918675395548518020884819815335927082651301956619680801811409465218444359558660873869230761481297955730034175586715470276503212920391913343656985575341764598960727214181885321871232159782036563821812094017753581034070202678476544171153266423972709889745307612484030568039487337794278811589299725460850121415954350924974579880211010133963669548452259249089483409273346479650085276931495878310297009785143193126552491849253480307739947422072771196949278398911273265204309903605857533751233884327808799608634384097194822767824848111055773254912057212650537313529522137011296641269312748260364923001604002271818263980931517868734100275147867500827561829863934430934225777351461317946328750291718928084682412126214146506425041941118999294026887455668936837108369878529956930129846734271840737328045177627702052259211929257707131625164131518145380143515166296401260725164129854375528448953187911101643907049000786057616051091707741898181757513011205704467199691914014315651452557861037084470450784771412958334769465954750022433639504523501005984414315434951578001964215121551851461632061750125248685459801481072083919258812132750679707459611283369437048293342557833292335723906477272000752794100746136295897514047908369197467371560431534849937469259893387610659606889614678135658315655835278816128114772885387751947717121868622428059059017691343557038732813188548250630840014994342488813371928136505107943702696581999214716265940791665804186949439316822959985319019567603772345642218732949819055850915492874193648828024757368081822938149477129271782057911409473883799214490180962305316910696097403571056141451436904094662183300896614225384250849667874169123122603018429407562132516456231508993753983458152233012278754774465535218391553915414512125092765935793736791452457863952277360302771293986518124585849251297937533695784173138023871024238742086790165325547442578700932796128143649503541575437761846503525269620327739621811237407471239978027563303108203730653341156039440889089938043596417367349563975237033520378832187039097848880731387151365836233974941027646511355832207108663177000774825518929505629106232093107634959431999936239217136013414715640043197652355373660304669553550396978265274888279689603382607514380315889852576166160779735165592114163185000178783338712807857312639142004445802667752240156641872866274185429884884612603843387163912285353069095325241258355416366860007687544655558399249574008318342333019081146862083484330604563488163863329466186850308811833111309947874943866920239912670127787337439569954623586600214477594193610237306188722617323892338611101192010392232019438769680733808906694436187155575073990406212520191143564186492912105057824065314916410038868397883791280211769234846309869734738851693285754034237746301464425538290897647716803429672521063128700346633657797436146931309904865295349326116053097331361065627437211682199896226190040322938548250715444860595487654979770447692988504312682882139531632995200938005325453164689728591418517926085088744899828667848087610690346186785924665567215651008549913316303840900743053591822610596239981726308084515173935046937276922913157559391521755096616322654816994164780389613190261092840043649281470433805406580550714977289195676956371104886926859657231121708151882829125698889333135048449927567371141346630509445237803061967873612629186898775718715756571052530075709036764796566274931270178989714654883578399152176958395287675184299287655209988071170473986673462657644824454261195020237211245728102928030599511070339255764029536846064672663534579675233520347861167484528500769307820871038050257724385595086428665443895716231888051030917505944038226311452774940375341037922851542695741961794631774446129343087694918633912671114671319135454511375576216519660748025547232369161342045419694691222993425056511548050056134177007871547727512316464038737159493590979257415265119763180910870492540867815713297561889273059198797112179346788103673870441902051387608914963593842653714647806264762139036497633953080045643302096244548530214222344117807083219828500805726123846274242308005327039133295900729151633797036290061210926108362429217522831960576690204920640378143665357047612965633758746972504182876918157877684380644320603091241162077178260924036631977631794765642972287712250566979497280169771286997538484605296744289728965676756834448977311705667577798471853214790746925938398290622554037801824702300754149145034040770621271489438102421799296056295830894544870771640492280781375173872193883517209828796125369127604780751340293822693427009664882486768754576623657113261675385793550036310877970793785392323859180164766305129716152333296574419114033355758403640174358939786872872598184255715552662382008311277263872308565077870305099025742993330527331363401230889216565307443298507610443163724843746536319340843513530635087472554726830107992732870886616692138767915671509025457747244241054162778883115522994303930541758613991228940722079125560233896071441020445724077861059280369445125827915396065742303558870071144094781756811853048908659001705762286856356629053627503226206408207524689388991118985304717612125884175625376634570976728224341610620034208671832298314677828707989951905711250346406889318357974511290871867640755965024232685765287832743736981286540966823663077682536376185616873691694419749000746641484717427130502765438546790674666382714445962728111899550111874212744686000354382247462987990904708812785203578308510147786379235566918974165875117267818608634925294287230058638603544364871300354581047598895797428240312091515845654298985107279850591205063479105528738208015747351400387866314413275472684346098312363085435723033945121908472159340781817910281847330327123533088095325599786617273756993087694427063777740943123035710161035026637593088410691895660056581140112977821920119777996007693748563553943484173738745841224732823757183074606385269648332435864506500288681802204369364394899874161108044439974450300562755229690003807815773714207280439932247471713210527704360177896532573230614465188190267516002530095744771785238222670691551340635844773103086502151255927459199978429167480196306936869375964328009833970708102663800015236769785187218736109642103685748463225742523684480499650974794086746658532833891463727588896152596269921607777338268111546634980321298347353996918341214843978947123055468980787441345372675062077265202189056160329414235865021893501971240682734989403620549530182146846092838418742686332161187619380463262293530049140064488363981760182484526108724220361438947105704111632966855404367706280504822435345957375095102870426170511519322189490908337266446431006315687399279187284992984220396948613464447645562237524883107155423753663616189161387726206014280847803990014219023095201450789412805328830354237444154131550301254939362758886472848344088188433941162249252033905081605940602462843733709379133726005863661606688455869810204766532827333925689001381056291129944134591911528530084750507712352044496007282150927142169970265994058691935960208190447574377995789992919491697000441737405224558014435991752779572067912741420716252349637523197667335621429853606353493084708255375527899521402251593768084332826957052803801247651293222318091029855490593508383579604716243638207014314514903375410647308106077198352299708421988210811730878762839490780426393214764703804786634400731756670711294863654866953715372816147033165727966507839973325272187822008113348519255201500028518875084389055519464757199904454930894280013376749668895871144854856458212063252322884461629250282775609892974886809129380251955960512555100892273644479969324642104977270326716029291348370890892974739476903694707687721044418008617089922099759240233481729043723158246486870003312115308535843617969588946299905643359573481499097274430714757049472879508169163580292345542491341500462562379563433937234818753770420012890668655394490354805552483030629911234796104634395734058653772230362503577926110367349651552845425694520555432849699890472089257400857708032719527701452251702136546623324866633817939981855696003793678117457468912174159942591625056015540325813683257802467790697939522187917111049434101192136340602064563255767412855124601337520337724533990884886021381224901531301448576027970788806131528334519762707455131274165543455152300638163071559242263131739233332846871296077684526424065309304006715416455669137622301222189222719324355745024941701457545266996415761767344210004319337342886901635749338480644642236020503403379431806415564218319270646205369021371236719230295657543209218904249012094593412826266649180711679572024587543965705713231349987138321746346154195170857863753723319918622642144333375855900874038359667751196163712488902932641103179264145140114307417172314281394968807000784338792321982665008918596968255201006469561362508184478311840601728409887586581833206469356976015924116520752514959845907102828624525819320796855483951663297283701830628745538235620770346129138582419131001927778349247016563945299992860069424085858847486734452922529152360941376674160898140794892432535395816318372256672220859505371321208708469818316226952309336267350849356690876752109857471554738975338517034948910402425108770165296317953840179656401286712012089723112584180726453787803157257930821348365287498294028661164071172335387299171358383392760919360912847857436478692530849510020990919565059276324808835527248884063042447113426407425480160910901564237343656793490599409775370598816179574186708024714266282292155955935413234329130617613373298559950571152984275454235156272706726160879219441301628880374837838084905227654690529901315085115274192807322936338660296069412065597122298938419949152373438946046871541204331585439307330960314042588826063755493513093983334117360303427109650132068083092564296326871969612491036651707295536149428973389174689579179622899340240338423355380006385966892134176835573872583138984119215187143590423202985039132070237751536887873826057527707258406961642038174254913566674579777068593086867014826217703360359702276068268967398475889532651380064243645747023365502751395116377703304464975835779533823042652884906872884144792004518409768811168631667221253951326811354282510423925727378783346270522477260004584155211574774888697082074929045542155407213699258219552212668725377733517945637591682281174607886929635832898626545762030957926846179875222758918354249078613400572469562822754597448647743205296093830226937915104629545822021751139473721040130494589274604254224716992318727007629008549688521384614731237033237521852261643006769680666137880531408655352079844856194738996199742599330659469266422036189852918397156664326936511983738269233180276064116426997291138052440645797028503930993418352869807914485235946453841097651570198553351925650545495431397780870721868034918625539883261252043800793861460772198620550500054566034477436466194264671903465057173120460564150318056361877788930348044851436870481724832581492771288760104157776225424207067063017233383760141777497136171373369273549648746077577324642986705794254821208300322902060989944823783329582289386603161387156414718469816159015841595055977081270472466715283889492973638750992654908046412668352521415525562671044669761800843267743887953568820473882691974628383097176461918416946457906756154020904243995000909593444973312857921169374733301151880682158207556018630895698401384085938925275727834383216287612102838844566237919963403167608838414840776087822009919964051609487401128141453449164753357114772245372907151942320037041330158803001912636075573981018671178383110959837484394117873298182199050586609631696822373465194738158508801199474873573413912203480062709640944838572067907295170772389850875013158449886698497968749432763950384474926615074024476980731538812304484848281877814770326571554952220847897103434772779001089054539015548193679689112087854522235740395203968634640390498474290206225261394824090418403583637456788318426769935174819671512851336292277338266354934403375932619915442078356613944895878027347436922938476468329703113462412397384445311638095990612476326442266862939272464361928635914080249703130949070797680873362883251478311937917449326807953247116383949010959373187012554378918579473811576522491442892120514525306939919018871673234514448237979402252141033521472710686164148075533334756089762823934495673817211640161288567811487873633875247390439127403767648303294438437786706412057246183841748499443635494898967520968808882158979065957143341985487894648365015586009008159832147815759666263799269989884679633196803710816012391316176033112891315905753988864283785251657090097392627243223099414606322125877639239312981976974565137849258684871486485561258673055311347956398061358174583616807710212594673441327391182303701071637422102852517578189109959633740321660687466859595898465333968409496422031831273366250575631004164918017630043414086199609708312934657257435026046383362135966395477511459231948520467780851848397478474127531075934729839506161391960583680045069466276356295076323103059227702001548052762924983600080467642087686339073263248285383683185232125958482962488897062355912474611627891093528950029981167603001329735797414924783095277686667955761137657281190559493109869005814387350726710677721520664073118639085708810827585914129223278713412546200356309797018831664995711150898086964514570919163117193543484156189685290175495335692191931170071898044281189452079891690732869008700799952012668787016893912593144542801668726626097538334985390096890889595536095442843856278543268730860248455581956466695326472596451063490218744397371945851783533002454776970206470386120950102522318598987952598309534530895933951387690961385413716296024703698510431889251918172015975864701942231932733774653334491435506409347935864130618167854613633264605120402189893254827937092352375251720150748784596614272701835376575671596359801917195302525563594771820854149133837758925498007821938062262902348283344600169802256560031246950122348468660099824733482011239314119812670434847097225689259003365048455350376425218886394461582167927277940642519415939188290442367794350149221424849928251550924688274768929803548577153646273807857944640124298428861217540415872283178627829683449081073544883252891896258645411595375099716574484086673370173520430483552372151018404900058004977500959006856437223655331022008266790939062510183141724107271818045569861146139433542406645537484071557873781817727554631505398075532266097134843804437351989542266926340936959714429591189929185081673963308255918426050687552077136394374643947536163616471737546737950298496586993799232168831451414417901202691413104378663071072202139501859224495180260141419383127876451371759467838982112870747935440984146684128406293158465293951509885017259395197686966818987221756609676650425164399740609921096575575075288752812798942365112996533585175279895605947363643711849436962080358528292195656270575895799490466735543816518050096497494739061176627847749519367608563247074501273001095338462125647374517174165217704961387618628367832461673438550675049320461448110434651462830047315645125724432604524172778986059148841522164424288259092318561887781227669582500064559714911179483922558883052773302543121396656110325718659301093247667347322621539926025810185868765292899661627977323237682700334986030166788928267066199296226702308965724947561034028377475697446409267484802852245996867275902072842040218613998014582639516878456117415210585672298280689417031252801651624874102624769754405001928125014460410892737591122534812304126531724648345537250682986789022275235578658617628280776441458720980213433848603262019233141273855524161757856069164179116072833861901266610462907801294728264999035269014571708306550250153869692673747641725362564391720487852757063099693428860890434584556690777338211469360400603294745922700199525887278201302864343642627553227461805726319392551698779382801733567447682313889678369228373299350143947251483082387989640698559196012688226328672920088507004684970425270775454023206784141148301813223205750012446213856828749998567954624068220575165631441120576568330954651215349372596150467561519132504071169175613918284068010483399432791606821096697708780085177348594652780073127151341673906278313598228237968230258603573398588693566938769210787498084784676323443566141560684575822211467843245223462804696193819601135237277267923275319127124429690940043648334382392086989228911155740250786782751380185362772301583553863713735543491791137554864278367977365776606914799338952111533041266494787743238211644063194582712888591183854755008425784650307563936850448772401051813368310140345156118926973785228804447031030043643220277221050199768713621244090668916571056057254151682716115908650490079288303628146537957526659059137797760102085664360280473504239399150487367159690069727602704999031341116567438223964541967093552858372710720652801293635917761400409107794238581756066687077025347029449395257594953917620406316443969550303402882634270455312010086380628386161917958903463938121889125840266092457885365475669103487109554169479216662897803391575239880146086509973132884509066175113920561716358973268017633807648213073510873816139537603471696262027484920845878274802498161915105516390635865042615300246944074156025120578677609019039640247117776605841787039376724827389824812975533636195410468720519326099975184096808072565944914768141627459359106742698184390574837973035055121009247104852265756823277732758928172456416146708179915007965378255419520138000688497863794800159922651061178628419256321972333742179169106797494801359216525113351036612915939711657698260288882722514416114372973545036902170809090688996526965038740237501070891925448259021674408121311066039209042104079982641887500175857169152905462818926866365557545525553598986044881098628593858712320423174267742919055186419796459846679082538560514190026577578163873556869191578134751928079468664877065259645683174726717849173667895679062369775403472857361690992470597400884082158956466753758143727414283583868545791836151844852532408005895940912378135935153700691535401515552612150147353475479013521804873755117275866794665905159459502122616772728740536961862304812486162562216966801524256908462147882647065512834560976892747198828981322934809175715420484988742725849767290180321168353262403551138718340209170407887590716011113392147104367984923503513627069203411783010113234153433235153750468790378852511462049160712464685090802780719969420110733372780697179564437099216651258260896143801864196566707998550600141803966923700570728758708426835926461216850183555994859841459347747022853319188423532541310585671576523956801639957023199766694039673721485495639603265814303586074605603483723622221365928622125137396270906744324869447904832921272937533525693537504726101014656224295207884833453306431099266269338211424848711145391647164808878045770904114211317574585331785494933645754772467962479075924570936532125649341041184983497867448094618772854668284228377752468396831710356010946268624481842733786738824205206786816673809010533316568976324642853467055106839295724640473319927616928617267587188014994387569658218792520579123394266199669339510828943467809522487581814709673662719983055489047951254278943252545171698602098363166161607566744336384252915359651982345390939502169086516454581028119082401245801843530855124890487534265675963161308387895781870211346848168848576396109767618242842893045622856203698874954815897774918902155251640813068489716167644976130257303321696553551892355524387687705765485126391253621345859273743660990725642975243588521082676924367415967422754974707991757170758258638224818300801899051851191811961743375076078785732103816392624292341095702006790997178107442089596841728243515710716662080010946357861788666093205036160622308598899140988319136938829281962382816588048947631418324410599951861143756932530546798196684960408384693564569270250508192577559790963352720752828385917233614831760626841437451922648999897576354579842122602897799523731869745003630487978096893007471355050606930774022610375714430209606869045840285561494395973273736481267978055853494038374699540270675965061146014987612868421565988353737567010966189643656924103696191980449984798774957202797099925697530910651804917466512366761638240326617468342397254772372226710184788850508198336358615509325704275998548197925537339889308147125345201250912320115565842205016474624897674978634258404315395807347150757964888656519446754925093986792196433599107841780438904222121456985313681067837435871097101783637425581696432130993979959662629143564696524667831369969463624478719680436852193670481989028434968226245605832965772506255302674700874744775723816763793287063016165073382606704111651587996806002599321329213459768746470194930572717885644687296259951984596108833394610481343379769808834426302510399901116921760267141503843152515747172348812804151587631579953506934427497393993173015812207056130360934471382218369447904798456388831077150223223659493409373893639708600705299495734369593931340308555891214005383789954380768830913031681519435161257191587067145804179508373569726000857283844656264545800597440950766399393425729687725980460134972822569515765854046900371289586442795826662074210567057833608479130235501151873358380392709098070628993393904655178266773377839833201259660300784690741751852359961888172256964860291550741811203498657675124858311505654532425052699995353431464411648208036558445175933175931356185397152722251756788841729187548002158859527916091841536157407238582521610473943082998401150350829202644505342905395862905449512575113505416814592535947030420597812826592765450107396749126348626244956899042826798563486144925852589045383994659705844349699066976520075426344184739429080168282731802887377941015201779719398374000540578377131742163295011998966812077489898985062486952163971674789600092485602128605016938319841647128831069503273559500534710315491774109313006073332234322880068944155101336813604955691853894523979344527233422298090237949376311350409124177159059047915714058347410303281706041381980134385735134708114320647407030158440778412499496373335603189396197012391616775354700189186577433291142075550119504043824679171557301267856008363569025716704112432708999722955281406903341333673782889572710370544760179258296634977937370897812787721837335566944832605034894222423272528266722399766461318177570254432767424500120577043671024743975853561038295566492071898357936264193052838455221253360264990711978700510749477214588614146492955955286482289954079257421468436433017108608306744433394889550530642234305711195929095000732257854494519292916818040212039243996356948059390593352143634553208012048107520165732902646110400780263206734338284963634870278464993373282642014926664578864212094151338072153716334664264666300164356097075499527072650936820682501290390117637412051174900975943725636602431144029410302788096404835649904548808327295782184576582278717901864358775521593450730949925140704121143988629746110077769135349262748124263671555353737407099737867797303713428880055243777985317351757795917183152352821518137853809197441917231853056359838636524386329217691653057027849122805141137362228763667004088734481139734057763097588322425209722358689379614823337932845607353486023066890590689670648657199958762810821447578994862898011911730484791561048006909810659924938527397791373129510794841737830768318135475815547126635493634254102274977241269525930561706756051134922727448653012345766931474371173583993440012601841844149779055460795178231779629496968087415971094037869966233922937639948038011132780466054215532708010445874491290836074153333528389839144221628503766794862604680570730288608432917364820030448868214350929158179864990526511826517674571077124570799758425770623471332394233697249272069248029857304864745834154729407085243294061421720897007996960239751833173261388977726390190705415850338755796258847908511725241531622390150960190565389294816651875246091583822379580759015984673367075598883678663409281605245476648950111487820602273098791514172930198428147180133499737847918134653059672108716868897278483803187825544633768124041022294771292602853784088917976153628336171741769904960181852240960174983993397180500051108732236709000555905087434592638365795406215048833040496115636990865975328521844852235019560791944219260437386830820245390679341336763541134761731213067655188881753386815720046244586083254587104653010125309011835619148907207707598330986671652730058846009613339624817679861485067304246017001289646477113372313125136286236450545459838240817411753704380577317541081813260427376211451566550067888029507640910013211033874677484753893419377155172756431976855896813501971111512887111497855579937784082638983393952147203336204793727640290172024109158750753344996301023860935646585284087670095002946951904547226954124024456948443766123157800230030143289473466552630639896633862552793844150009335547786888986084920519599471138291490976917516029971118632623206620242044060286160315516057778944856371894489413422246715062475315987601148485991094153790641190350587502109878888575312462261445374383311192991542062057939019185289956428459849198157844397361864240142591763172139842186862479491179027324233504346834395440343471812295772529186215757911757324910696001288429587041514736390930738368642860260367619185848405494434807481538752454226958964689659947314023589613630095885608657654794456543088221670393591273548905872864524212528875145607726495546427145471879487253195019686905616657908213454872274010903469530124618642592694558614533024196735895239097100041538902402516925414091186303843315853391970652929448390820078168533108678566477841420662741506472634165604244835367091585432486554853224313835977149196748378547090307974408213337505133034180062004399441021785035624237586230403471516972297267675622394742007131400525791688874162029192594243463434478246521396817197618978378311601599251226094759035287748538479446815356155051831755780731841006289810132012482079389140279887196985613333350818985410056384319987287776644074420484442999833821570414639549486691023894113050237049555394323403515877980995042291912589186706458196929402374029614630051294394677358383747176527878215680430083897850388915129464379249279599376588908504390438010811167659901028740497394807990244312500611947382361209774250510580045981512352046308920519364603883472035705984669046060706632363998808656374770091964797901251164613920586714806664160868146846917451673929648365357579702436366435719169312971253560235693222566335371577068836599649179948908035288792362097284085304873654923069885275358340029325455896813244312352046244190978768126922257375954350321158225490186130983601941042949085121328651062419847932260216328368139829817575265348345526979073616765326792491842627106810128275115595875338673600946718803048223844831422847126229457968973822540584521566930007789615518066743872373825689188507559713526619928282215323330746990972250347354388825761730660649611110823968537942123134857026781566747073244388063847261791000694386029922974069333723374502299825436002682211023176392969884133232189658869095708543200396531624892864127388513930788605312484773802411246747521286997373527635151194201153871549328183837876808394629724561202165364926534047593008612786315297563174220393707721037240497868643684393238062530307029422222362289855498448520128257606839386459981985694017137086567477420843101065451159491115333123279173792093198661359105354219581838827302375890816652979750030458812984102074164306667254750530772494029464354587926120365807560618152901923244797176766228681735065419750785525529382588487119617243799751158728872439557765064500948362968742787019698300808049861507814294072097663596764536057145862432096482219358830104404896196363923409389330609434273821091367131832774531293767147080117970968708218349500012858419336179769409325097348788503280820018227641471765489837615510284583991304005454138288498450021924639950752674680137148330176947356714971109158494995843714816187723345336210267736200831963097902611300277751657077595425363418218012152442284590223815509039426701279309154670398549817007626566120745071074884950448626097333862229675674044279004888840462363229876589065405013118050863285659137715980616717410128798271931584222381569703573795469533072347803443686910632957713695126400122464928759205992884871987551890168570475275029560077208521399907893333929013040162367191189645632737156042206825642976513075311315611679065468459639837960766846977857543594481746419808176969879389013097429498532369182040172444069167109362742978606145257409862941489602055396860889453412891753585271089764114018244073817046813881010526755029090164095712168159371861002414624143218869695626876305818550187408269394182688383275464079319775308129356620264915910995646243144208530650927111138092860817248156540683510477161355706118876533067833430980418619066031894358486346203849169932558829418880125936771279324894081594408579337952849946955731930744785927912260801747601207433658018043005077769215321298934751227500611825665190458435945363593101414113421516299737368272771816842616485373011061272894231679381376295516488084461643622459965973449685866593455976517140766949896343414682603751972576402305352835376823893779051937967532127552052771344084822921760545241819523261679788690341770571575128010757235589401760491133081422187742397626359382692367551494836171581283416604983404402486231468611264166128733444367212306888597373115818979001972869518965338297189046692445459496984515845769163550990704764279964049283795124169559969176818397571498601180331414135936048636524888625315592751650943039813626917385152389652142176610018120032345524025014114173167800890673376687038562196535154160829274739248437979681517731931956241073306957774355592071170399450335001499407138128363252872117072875955767494891382840242722185208674830912685872552064821452453545833587079919840716852349656001304168596334038784024826753416044758697353719912820167564600680583743139874487788712254648272853550369988386394454310755979846730080509573827250487935171533175756030614299774185000281829023880881095530192811851380131453604940142278388286313793080877513835639767633174993313999081581345997621542672126903559231911320770531201966583200688042704542845935184742234611602290922557449787326699433636872546200334177119554584937338690904339657308154558978268799325228673666225550473475868048671862792987190116004091727521449969681484292083790668782071774160287203948008070103516601394174542319106939825915800931310122336918271999693458147275840543375185248053258861083408333174918156775226803084085376510259196725184719784688113042133913956080932492076085434040648716980381807640588038523402333984943359606657217844041439922010872318309929233712122911175003900095521317764218728076394690669994583957099107658064536452407279665111936805842249730482739859302621587916450557440340935040625979305121651130685893534953581513679634561790600863497378536756596135275484511152311267503985430096797285107168178806171647219237139432630510006143684862311207238567428206217459566283141233234471617915341110799582892936974376782201056709974942313949343498411557890431556562420751769696942429664512613327073541163569451111397778342199998346053890961254628175274616940495277553083656589480624370702774730211792335355792950800975600487198027823327727881374829902993485031281520321183598876921498880447825348943880235435767108868498241835188762874167378052481872407732047369732552722267475545769579236660235852438079584859043915246297888455319593303994799367653262481738962042719263000441752570925148370398258759623353720118338909565528256565494843696767101871493531048879294240355716288260519702627149310983444133903404102034736644098169059917324621679998253757178472420009860937277384918211018082875456021871768650477399791928748457844333376071131245493755159704619577398134535578823198112283943366298377903985991451944681408650444056293222610870090968912548080939272208116168704460481789783015630761614201525823580695750716019906078395707159745299185533324002466507855111073749071007690527256646691758102321869190746003569179367397018042333036230078175046065159772737173919611177754004671314357475154331061928290707115743816433048203206065075128916613855914479153431732753974261827874008416073050938803007375572196636645794973607750190575621622104653702503202595991046878887314836521020592616481519710537172807090919390414739393219958372253230323200713644441548523195780539151086177093807360554892589298580154102879668129577716204019082347353262135362047286237639673956893237611099127180310236430375112663559822599889302123653941762078050819749351114900516802258956060308363326140489586245577030741260688149460582374504961332772707457596584414846605920286415058937782791106134278056416558798045076738855391329507093660151845840579600762809522445822189176168448900862782977081654510923776396992973002954773595383450920734014730724371649283832894992728643154637665579267155370927528600889695002956334365566411876779232976464514129769124953635265985463560407806552571015263304081187723489755226375162236001710923267988621407744806243556360267121140996965746841503236012095495992440875838844890197338967614875042103989636477752123781636227018545632066613436085409535913596283609595461765199556930371971172990323174842331668363357365461591817856233245780400078173152954819479013412261518813775217526412334603269376308591983697163144390797239262619170572604382386160798298967729418049583080578573931050516452071061846506500076201998724445096526988298019916759920738000526367565121567917865507544476870039287662060692425579498270560135739134287436364484185642853037383582256451608636853422544670105240226260259141333911095604149783925236616297405397506975507542847750510590661132913561694294938957927032375495761788588480130989868717353251772811971016399887065034783598220246463167049780993686888918429932913586366310349702092814109918786874285698797948611355303434317759307733792548174102555469589245015386755976127675500775495646604281775411553315364197047944685289034242899170568675800219896695397047824210512067899332996580771557982631566789014376074381466686089569230560232437303134611658890908903407787650370447388818798889191078196151775482284866576178810187010621287700965529157368652577014084330431738003656583165887945166517573600547368216080819812135499509093836673224472357093019964674974216645020612176671777325004236484337705539412106496355447387463677227532267173788652096802139538062504764437367027859684630730446909933119028149497696022198123361113920848629031886727666757186442941131848504073654943037839759580653842419835910882240754639258982305673561974412092936345544061984101047311244689674706047188691257767578856845284515600309002228602990658931603025567584949288694973430851075481207869359072803269536999204572117871305747102088391389833581173642557378473013966295263121248086815937252478271392461530242580543054115276590325141907603067910157107817507958536430821705289726836238350253566481388105651452945238992041935339014172747210100461110711679901583889495142337730447847474178156777662781151820943170194696179977704473027618090156314678137728383662413552575293533946304520896238178326265175084382246819286208251982904867408275950894237387283009599660665517947246040822871279010101932679680624820186845878412977224339423122322324839888546667339999825496739282682890886618904573438063627294216502489825617100128174309141047128047773607348834879649361747018590939650007448960727829183299536172663226606155729343843750162244085622977043243516309659006444840416208775205411369725199250409422875107944151073877371661643087618464913194413634448626289366148101207589870370160789364720245784592854551328712065796865488464165556330113792467127359069397636179834843372972476559527613207610776293683389831317782527726518706185995030478999965404022671226374910003423971382074542904363386586231307587631755216488246635898015829370416004903350909511813091699409144664679976420333283287593416128069536762954711900133121781514496008557715079391879717518164712070456060313825757194574610218860779606357678855485746236168608403040396900147309208966290597305828696382796897697425880502706474862074559482163344593143470016670850709253143517580370655152858420720337550937614266921243971041899883095557179234789072287600677503791936534544936633086134350502496210258329738434189589415993883005137828206432908915455620969547200433199915272161130800337745202845801486850383560905504054182097484542411066475361769261508675719051482232334465198114550366526062550570595391402889882279184836662841642506754888919646468458746519623404314556012490147397528884502255989184873833914313545396026699801732792323459406183352953264401299850373992753500729174124046922880527775352910244328867575199768995754373674763810163146063290928400691346842178074942344250375689652947063621039833576605519010977680963358238401140751115115466452452937961610140101925378788400095804468786631837115258005750861507952518076381663184882229268038991723688844509271650169093459642416479134859635135108144194306578657435849487517873519594838921823609361809426761677919319233164167631769597244901425818906920281558769416092276942122733779099638546459313637686445060669705572382634402021723198962073101602465996878738060614391203961273355685699507875977879824908177186788713286422654003010457444493241846703168328062042249685268870609348684040929085171580008773793476575796596640839266590802333894932597828418435069599065668380442570105626094588993229027027561310385468238853754808487684839437942603997105463293901669193246293629466137119292650609536248342890383356628772035352782713108082436010806188148189366363362250294772370347916272028698559366742667496132013330496293386449218526436753208672603763697291010030386326219224340366924907691599698709824419108479539699274245648464058204723077311263554152773023994605076260785746308816926807008396268593701712098032303984116854277676505123383122711736822054972253898494595661679151436732440209756355377930738280542728432989210507247924991879510669249480166104704533215054071710481093024504369027344977417816431099763377947254685347703839440423032056729118357981540718985669787942394134134963061965670641010012282698284212730249490255392046735762383501431299449683748412163924130899887664798375327692462320689248757318004190114931104190842961550527750696633255796737841162498035452225656267224581084868000765422124544907483646298988384433424697939502816066366828727531183162422449616626787076890924240596771536167658004820880988969579211875895533706178357131130484849930321607565381267870287684043664364881157618831099207048637599182182794189495414643931938651048773136985997675215919241901957448999800118057512212191085997641989832680799557706030982777829651906335082116327165254092144051287106404326813303669763051272814500399115968044476683775813019879578220966152767033653795555973065629762938942100428988061027851604937689724126256576012423982368511804843206132163360306132648009391208056185644280090172144504906677636352776612218111532275335858334935920857734030597899534674444428294924469503008180256488199767369408111893734568012328616170088381773032257007689409397795563933007848482199651660131555263507361616432604856942705446619619940876709186229774421330034769601022549560224262184923128733219352976620918417828835378962494132184938261535767113435689184117523016226939110581674537326691283559203629665255825092178607264493937185081220833965592438796944081056712178922369218909256208716549528364915053435096719119368962009377411026383663012999329144402124806378413815636922512365387276591499156158132090164408566808096635047162079361579340288933933847763543997263665365444334812225633199297478490863430298035420472894251137199838028392044554946793134388225446893866496903435714061815684645288850196153798140875850587336179462660440244089710768547726137858555941669403269899575798107213797774904293733102291269404367330938837605187407053796646890647888571763033766555242690719845227630269849789325875908287144699995684214671339369554357307816083212786353118846055624096726683818728725441195619037243424370214704579344795149927618135545340924596858578509503761143297143053316103609895788937216427324932957435686268919213679044541386836265919209043386340161037945122305544071230452132222725141668571502430413106533538028994727939183158731955286879744049967513392222951445174487326025688923127422745019602566461619221132801125648045253865041515732489092919056894268850270384978756810466627572148757889353288649285879967118028928119580579460028937310790451918557568071385149686179678009108677896760503194130014397565940416746821856908469936629635165867511253855355164370069923511457620268039722152982288932248328369383891844694678244015946454032626438659510136846037738175744779968663637649006366822503597931612143565945086735247228982262673134011637305100905460903711131999243265793033417392482007604751586766433794409067851228261791004213171236857339514405959048210043646732228879247127990413406413028264029547300261242126542012777222354604771468163596613171958592278445382866314271195785628307530479199549240700439384478480059966332335983600056182924321068301087517907764217300617427785764098276045935321653268674388707992280827260457504082598752745078869620868238448741161436335506852994055125451035579508946660328152038899681114816468367367032188688784227906949156157545461886247448661765267941292880134274287598478842991008390393495538704217118736354583445110174808114310002420834021456422764098725858959256147817810508751071270091065688440612948261890877231434969494146254303084391883689877093491187958830424491134893568198558373824913938229871595087909257473658342479238322956587451959816277438506309432613675547961968708630979823199012191700798587453292348623147725472664839807706666837037585424316580056586606938506849852766473426346596742232647269078760372710546349464156069088799076671953389201315412702386099918982196749373179759015259782875258356856706383466445681881989979673156480641072995828735491948403126382597325793030242652931199394363068651030256587700228385761139293341889643294317485653719060584716795184861248690605013021997382270556633311632235016567867862231005975246204596839363412367879132972817095533228513832193569663369546948545629165429425492664779284889923344921496550413742003527315391701578280492672619796497125131116135978950161251687001563238730096805588265825759343892191457534045117634446853454648166842978411757924405220712580729113688646504817241179012508125406597669089985057428560233536170052378081144692485790861220189992933107560010894352978085165401289585046970080219022239375875466973659106388259159521303595721219049397744910436905229828487169946540312941014160440536788640400927719929669584465892310873000694019535046993604964376050067259311158791390565536448547619510096878279055894530356675475930365471860005910688283123036765104379939357943656195178667954640933975896740122499838276161040711853050282737322478445153982011763981722082053190533286819370980330739946355158041862924384807593349846038544746613586722337670371156162084953192760912994680415677565445053333611595295598643372482036025039786736226331135977762480802730294415274666539663242800245983133893280935624257512053941463847451459813039585524387822573393792154092667425700256892594308266993105950937072775717636845884330322883118311113643111372617791763176687878951721179361847226198814855949545381318448469297469562841008402135740129120050496519512336206425964509866279015752008637759859826415605151371013894906855244183983216163649307204269662197556791796621628689692598528706660801559687062292137009187819229851412132549211391685061613120339339765431234686088509857708471610384119102086821862961926664389762814265804912696746231482840290960893680052668928898431131754097236694030479296308204655309636244165411363163774584814721940106099184564112915152438480251690365976134224832997804948106742736994984557211885666244359879189583842953617278772117135019511667733788418416434944671637788060616089501027957043144400104931181879981883357201468690555257066364943208002478834384411422525877494379883061582516662860468458460404280260965435016050814996251832580153517926996238807338014628836170923467009811274990760185819379713656546466471265122338924634970220245211467540181499283424490809887888431469084247402124899666794003511577020908014190818608743576370889133188139377141974654887254974235397906338382147677062351277925207219831027350410034771109573556101420440336872413655217057157357550018612978543397703612086210686158951689718986067577745678149303487919894373113214531243191701882667698461390615174847109122715947625830319958828464642512152617956150256607614559450761097000681912049131596255367854814135720590678721895808771018209707604888462098300261208231719136892371545574464010330038905135082832355260873360440997996165679849852270512475649805153664056524562913371870197888466157960615858073718652144884967039989406741320967716314819034324924732746730722647288749463720522053659690047272281487755866397118186400389527290822785750777300650514712242422756045572140830479990376249577611327032692071202717711303229904817945061960144087471767650325112496546318551370945984584943170159840483603325057879955191916081124378297908134894298627969599112597840468946301516276620908725902955353174473534479088340474943154047766879499587718437597760285385396377300744144867086498518995978420203360599160474018676698465610839736240809089722567829239110639945232430930574386038807919182843468029029508405133662852398116240337453690723523033277788054153281761974981755857660375691157821962258453199618255965449467004633821918751276599312021213489634904880256491706049374480991568884089558218744937463768237114297387330219352647378147634880535705124962948863981572537162211511177310033025901538412671952608755695551242748391022934916670148302540747303896265862196422096821040660783540543901582026721344584177720274607109978071240942752637657121162530447336013817654617026488869967118880190922782182329420352318876061882489952530917996964478565280510681335808710218432937607010830200958736167677554773825022232681677161918331604160823938284030167578848835311741450629363105477546954446481257053047873830961372990665332132617552967693589896293988740669013544301526448014201805529923103122872848015823199161867837966964293004671305117047363536927204983724594339155661583191092022238903316979288852285632148987041387217501088102039972798175337354218412920354434882339186321495582634507870933437097275842360852773516861893888092805126265710914084880590240720598087482317465188264788090519443086926449427218807975152912064862791572143549045477416353150782864160626590045824793935065153918910777000739467809046645596375069598124203365915379167557969410368220526177964643654463853632862102441267318618571504843530406731325434587132237681753329228179687039318722648565829993936795019602996873493048274638403322022807926505245320289334852921079527370120879796351851155823474766222137258139051103789511252351517314471036659811474357123291323628615705150914869700364940331396201493973683314255416689621556792598081872804328940482100929554559993533629665744752463347095643018675098371137802295931810458463760679474102579783743656770812047179750672573046005867856310517976649959661169497575652744712096046927083589145584216927884460759693376526018663139876819291063826091142311965144056929281808926966203753904734132868887795682088138565323038037039746193875351169907358740586638405551824201287609801885987983691268899102500567369418501179607074012894307884290557243750065735181601619177601691803799047222325297447015191121971570436400042080971414443609114450924284573848395994444040630172547081448459234195028256203086905481776151930371947872796242588824909728812658902654759736698816449659612452343436874981582604485975514524021771492538453191219815141380404720496654005640095168577244732500348171364295931919924044888988833914872503428584043607706900664264863300091201298692148768957215826969804182945372383082763995202789134134122346764634527682169068654084565782159658478475244113511555537083822496267944750017146049063184025150607927621774645761161680706623063604236369769721927832110661591467931029714057658246256709502020299248264956253975928133726297635513137442319434480680565400126057635735965033752792997687006256766987508745388856106558580850792817248252213464445516609240276173751732547304634472747746333358773530434117024001499710132204971946378547995055735914873796540885820790128377514200614927714918188695826679661955017217867508984515811132184822671153426280663376965220726311851011953761539317090576039740739676523504632381449247625316362879392666003351372412790001767019509844550750743628540785630632053263913755398824778738439425501199657907733611682042311785103642687057861220020713936586058809045607526565978396110265248536261548956876537130571087640230025062998290511680355787473146746073399779831616800407154151765400343564644185066644594378854724081008033952629943916069424375338602287689969539067126309173285049519878602594995611096552073085242356028711570890173429345995152621654879638428563710594429529010957696863324824373664186714059282909123610718581204262648438159461043283426015788483016055787322375895443931155480241438396665266596964048588962195547278409761362834298017621746930105376353903505836278949754599218151180854238071650854089065295972670852297202205175616680136101227528084957357634156324384901168278842751432990542281847431278871816570385486414313619812899497720600354388772484781682639377344670139621114938277888211338151399552473826443443373355098417449189753091981960001207509106851348422767760439818820146872454501267886167418944397067601583496797896807262677619912249920952348008731053118410997743064238952975766662462811105134531532188356041140984005403587479500908301058313708556695617528646823405137947333059887955335090731911941167414903649715607801093520337893184761638536327617966786794269176521599725291333218506727740413374659350062826925133227406888211140130598613614416474802814098873212111856988183826283254109234309153040686835071056075356138417566977832648082466729799437017603500705298069298893083650515396188736705947759915916394927427869280711244093939695592942954846672265019247982247393137611860177872281085558785535024779976772613480493210565721673633358060002320236447049090126966654622662145986701778747335771565539942294886514529142804651900698626746402280371999034984311193559744386447924758603383557733677116343091229118983703419206307722706484383631327492678369929745623917345353958015752284915472163491932621298881968175602770215163016936216976588835014771189849530036603914490398374233992957574372540696642922468893882020457432899539604440408482308781294641665657938924011118464135097497690183926073828768470518039372341874777171519170471972083310287963417184866285249041713949614660840324730907913919850954168669992457034225309000052082075197040986605995051495480565275782437618437871364292007545392162624017777930652072195613322068125660381510941762689954917917116631784028384875709894581855787931465140840952213195942716998186799464301352414129832843790879482808472501365204273571919921215521684491820018233610212153222926004788630962984834396360879258142605947441667530965494610677222970149339771176232980344546301012899867320309473693857440624315322872524429626715239894108543369867127905505961062298775387937788360025333044884743874059034770460836153248183418155978578980965203135714282600267489265432554188630247739604381092912218058691589481281653618880170979068702386035353436867249818895488952523269322078305063541835881087306943493698539162364099867653387160011122080010961355848904269328784731785200798100263390577273224503285699676034771621526628465674795484338214324922396491475630166974516367808534474798391282993393199468054752728506372863495671854392806154853382600439637060519591948985183494111812881843525788458738083060060535856386493441613786404253042461820999759718968048994880361087495533828681777925486992881048049927638121469200438061894844614249476654648649643281766518561995147339685962050928152852371071144392468286458787518775873387204531858292982143493828334838928900011545415056526513329266327743692574356929464104605889459297638125897961413760005039881253640096848047072623656984087586196985659220178223604823879629491801372001713007912126999261578502588224886679400082574352620535039495521463390162073082743062006572955143409694017114581870913073735447816394599352791474628620319872802112421648004283080234512440186765629109659221034040853343343214033216034019157974867108270753910884600365082635910151149911020503539526325695815728410268654289719913967423759668328753452518480071351127889852378456571307680096851474392026870306759270447613579840589837191781293255394105750902806714977686232358683654051886246170225373690575275467884479806392739558083695784514927656991431435721460713814845433755837415178557360993678788103804103416934515277508262889900000645314464168931896915687931300814111524783365724296987855293842559029423624031880893572581144585379681430830227097404451770838299993046678037175349142139440064569772803255687150872877455317694801316562567982492179963197277392922923506856042494421865667135736691723404505030448498087078618840860827254471028712424303120341108596114751625995998540831535951165313252315856217327366993388614118598008572973378898745593251711223502915900871380546830686482730605650198046398233874995414952387655553580112403566738486731253117845382317435261124030696156272191055837606866069478521185063362597526226598993010585864072327329757140912781898139477855189599833126666819333311473641532678807529691912245264984477757377906241035371179966768202843187489896357008810080146070417039147813866092663390245998364253789656116833715900236603259604838883568034187808292814699664066605588335852609268564104886511563560147035494771634568653976505828243572315368234308456085409996745659802154078848755910758638905075108659196431753226738240413645649705390986181860982890360989240210541476033810663790805488117187130508922613492918196711289054585158497064422955500374134707699586132730896337472572414401009978346624334156297294906270035052271616372206621152536170328007169611648833760606153090202875054484886991868094465226427395165759403611488036622952562703377937629654695734082737200670456682157493286902751115016606255492714752381030661259456205204782045542686429827826678935351396260872642941590300696814358616427420286967500861771855063971763162528762672207982735856860053876504628785180113716390579342035066310124004942987453736282131151233327188680562048566098910060488658448121270853110260996173052345719048693404285796705417681527811074647817662745552729945499798753142178253563534726289897101689158844962334141711268794818552326664252879551476958142885999626688217686186272585402581785518070723953864927581032845979734761238008459874157352797912761929141788145770681129953919088135919649942592969235580176380003060434300524007659775417131633756236630774331383006779200181908140440591725635305101560824149530122286882848434312537956819898574802731990091224727712561285956366022979085871719886757582931041445951025702947331242801146409228109189947183460162607340044187109358391835645166818417717320877979212538185127467476427855583481953923182105592162045390986960496270198233486598978370520897446317332805011975830817122645892416303132961198744835544191085150205727799605056221763869493947746901016827823439452258808911421441549989060287142177494561619077575151034504697938236222800083895007845614589341564096041299628785365890732951355555651519653228381092460575713349050214864295867113214839249567044639836189778087245896896096782801492723817273310049994387150681431609436241405708554960930919230685891259995817571789784332797317685356693538202723560768610071942772115470832577241917094309353344061665832352180809358132232209011839697691529423982556234635222141344836731410203231704363754475851204915306127134330810125718275573716978329053528523418532099134601350117219536631475385070483614398255475992140191619333492732209858999441082389709622532497467891812346421023445461889265370609048029461313101694736397795449318650603958593844014403712326558962270609366616378685261514545986199410653639511606602075900778879176077497504874720950935043206238831707305959273267825087329382332889478360920612269274684266292720366406208996098153411723741825849033663846290840775491145784872448035887575711239836311580287858702817779734654969898307048260277445053169549201938442885862163034295930895632948815202282087384128209046848235082640237736067182916817361731462445352579481115383154434056843610688768282723570774037830881137946859911802986701657770746888065554835317758358719813798419085136035736433050606756096024904767473709368802460182784540565456615111022353303075702354939597020588295839309117974243793523013350740657093404987316192554127009681448089845340090884695087578802342068331680183649676474248777721623546488644181448830958758254456333210098578411292296497840114395823881447729001427983942208910696106767574851727983740829959603958770226823714518508916330605655603708964204694503942874176053859261628726079077827519528808119087740051302717361345421416410973544812273497667362435211447440260911728005724589018320478693173852797794073076575229179303223728200811825051386509130674652554888294576722985791910253090121676120378528714974698434784847368492617885174477811410734045736691568287313407229187557657588961038834899956818914713127186468753250848228141344108833741630677566844462388453686349031986593208089135667850518748502096156252935176073136897083718078264733257687166393538767521887091850150171704587092323802328898927940513820460142371688774706398353700894538366275746755220603077357233969258222059032185317896397859325278659774780867639397313383449284070392677317713625088723333429454945739403327496681098314119326958402255323445372891642375608413098860122245110347696726158247768813957330314093297195389670755784502798878033131015753373166375961384066554623875872584481843888533061205786529731911287176080850754382856157114038290918171731262984077206749742319710176024087069094603509122217960568989320263118521419916784590848103625464698804588459742720356829101470039183615741963099860749765804780928918635896531897822429203378466173831692903607082289130854277076641237324144366761121264662837089786877723034662143013717468771077876606040744179026707899889957140863995031955644982413571012496257256587808641937995490836086059989791712140248169130189370526502232670064676569370121573455144842641365044662564315749374906173801865265837819522093580106871950235714216053403701226388171892709031898110024284388319565024427722135509345043097747354923914547152660052749001415303289028942805978141535619724516629659727366163397359657718705915140178602808453929291685872270929717442267333118945618394423671042263886222839530349967893812361075499980925094195261235148541777971567275897786716521217268340364454548377539805617386463346130243191004905027783939214933860390042267876695121812815767202627593934865287865433883731248305731570268191521163043090140336492396833158202835044953084022839816961907013631068674640106113223305254228246099039289178021401513847173365784654382018829583823118597798607282698961763060885144048963283921763965724971741886039795155011188805546222112226587282882482123693373431074534616754313438903910093189239129659235022822764230225583105999756828918800603216291065115378654374577681252135332673123025995707373644508964526544609638596838937328954109717741159435882189393096717155750391471561441342408742271708542750733142963229571971926224217185765000367108992072841767410008256270718165423796773255779356721335570252430719715902114627768308735966801392920056256272127921849298071899859453462392210482551177695454173151356154806760459605549990962823576291791288790372128780592621310685738045382174758929316743576172370753650264243170878334840893046102052739155594735430705632156205987245452663274323766495474954003487042580924322571557003417261062047139565116309622944009535685455660644957090504448343863181809978598075002215807608505486576363732621913702478576635685353673687951327468797052132702255926489213215334288709304331519776217795297945444774138777387791715657205537560730926679512259437673401773715821472491075622386997367906703245806377250475617307025456164932772069881000704251514343286694119736551136919229789278387654217585474764461243266727160998326833437597508301445908045398724977146320735900731642800837383976966734049126550256193847334006177699267876280645319611046747605839831573094432522706598518337825896936521388876612527639648899211162824993545504931116623404550210082488315440785980599266610644512870613495264990805936203802987332509225881587864863475372281499590677104299468929013518342687451911535040660862408415843406867399401772001928686441977983713833669775255454455652788226012394883137236706227085096988609052220263126809071878053521014057466546510075594001656468015673489873170270095094308661610818025665749938907027987272315312461217841153965439870889381330699626401351160662602952822653443487269695847547282820531224799284357884184666399433415041165267763648686790378693626095204047458484033330355105093229716882650355732540590507378344203452300724549364901604443537213626805652256236790196233000552637521833298057313302685268686040964115533840811439984333756622565763560119563872393951857405823544918755273022401230785945184476706872256985018796206262470865975357014218892354456304251175962924039536113599039474103053981532865479926914611325801693219444708673659997611411236707178830184447522454302354367729342941606416594874975419911790544558387613112664629663131086010634120506823813464771625443022098505677215672229501267859502491074575249712229329244194019751030188673260174275101557435993396635604658356121002939393531914415344529090569935210990753735911791157620628481039675788498122020885548870542232391825970954713540401188509213103363608742359406666225204012059097321251059476735822126604289272236437667324144689271807135073261542523347772929472562020082483385072071522212876393283420606749636503136035812761516412769349974403173238936589153231398852806369781385104477113544292147375530119696629634800835004060870788896264642239285543574216392631227877835752888492903866791472660318108887143138034252468765008330840187555571873124717706488525346487793853089939917240386509320683174012021272108418972455263929334141398134544296551316774322391036896158016465225014390705248262399632301223201404307038159212486284147208141655512243128239369746772149950428359569601020436084805253475097546685529852532017109766941634827164065237917574772172286580149556553970716866829887353641805727981348678782525491888878214244567259694694554478070125516700642103305056343002376687050996304021340727671912686755657674812814387189080171634283417225363912830831868953762291552304363181201360139217184966090912094643377643360132367972542291764053659099001618238362231271574562822357047154419459527436665526514920980613782052167091602844805327269530110218357929397113640687605184268192159506488406125151455029991278206157792185731284831031545954904954556351640170887326517960072116281376354909944052031010523145721773371918419460023991035094348802424271326299433712718462612165418330655758883774092358852239589402798988152317088726781892341735604796611545603803730159597571255352086303705144291273150466672493863570289395775602437283520571143513266240762405973159569309692920780757219166487428354716810497999062908272773688874865055019199952086795345351313518546087047312310546786296081753239652613163351813576853942659051031806328972739970590289723195200295580250538314867905296790405289100713910081977490369884632067491696522600971036803833438269928810252970363855657718590040365057384161305394981412465309946737344860886578900650044442513192547618826253154860704894595048740981977772477675886324509344708303194052464851048949332233364436683478858672976707674476832319409370321145237727031512612822416760227996562848331167133721145940522872751874101108607140893888632743272135082335082068161718646202358440461786178812702164408986557391965777676110350815251613252014388492708898339972164639905325380298118410078585495434164742071002575932882828995336280821891661022615429418008974236199288791480816452882112588806703633167740225383211366607801495856602341440968415362213238535117500156495983583734115863354457783616630436394636208207300260700630719789867053144322424726785035981291286235124537262352065837581098713740090017869297748580014690925553624926640511530198432704618447033792165139945325587016031511208440213059621451569516371822600638464003286797504277624009435469046858511102905811128712895409511595120009136015846531373552859350613008393624443817049671112952827587522975292718196212050798146270969684888271285230252079484600410882176370418100748419823346727164574682640138367438483276276914740369878453868942352827458503465350884738896875486569674400880891807675173767888243276819218352511938021088734529499542939240727615528508582254068490679132559067798309974935186127193615780839731830346338492738404189202786959209829952675126437263348386298871975781932769585662143858371477705693349642864820431501449616123669336951074456019207175816784454612801090341898190253486962277252336022048517672624852212665819825746556473883025740834657000917179231133809223742801735228397606905590568331442924366949294918379493063468639406052569609543535273027198675610143207913198439004509861554004140636600804332240860789090286267616831930795129545536260713389063521866453631597999742894248950193423416496688157748372774766694917642289881289537094287153369864188858752157094080809096762575617354267590287660617478694852317810134166319924497438429128177085833273245069690822537622915475715121136477987388078177747278101293021538845715565668927673871497738578735260881335197928938510706351919656255770140904405736874919925341835677538549935989868578169158517608160498598598753664965399707522431855555833084280908130965073069203548846495930999968538965813057989527427468197525476282186235306281851096142838315449663314671185092929908894932244141685740599501682754275808002220993509171452816706234099639018163558752048387050629424274789510236933027088868980593568810962556307556680848585370760796465022839212008065460947481765270815648014908041808891413934562051182892491061878889394613880010865546532458220795669024974668611554534215781464538245420835904680880578426222955672409830175400180018600008944555700946630264510727095742833689068407819146379033094265449174036627077348148036188040336069249827595101756565101903571911105602376577496492309848078269571736591922340313443458006679151835074602886944154148636170826645656193258198376505728900741271008320990979072871436358294889809030928249252107688875424649795401802793196220128503605365431540562018620529687940510759996051295872225772144042753857391633013765261894570605428889173566009919362771376430009624697046150271404292673302030765670087021618930127950953149359707990564416781376637369773403526289174497676002491532990540861136785877735101958573131550413438660973989344163486008757075427672898501832523546234608043176611569747766169259731941220074892163202046689832595644340774901780425108769150218558523960782080575539455992149826157999000436182102736607102498528507379041389076970861352780605125047718792443543196968180244423559445141555623441047366104462282241990229528281169863482765787394554797077702436691804105268265181676835044449539020465269226748542331803726784751371962286479472821914203430584799885676427529063714992419334003532133984127993931919747062029849547486398601347591681246236676910168776395078689106575371646020292148129596539003652251753422116111999832856240876365580661737762667986142064267240479050655750179468304909215232229148585212852811228004852814307277575094881806268734409399663060881024305033066520538781694389596061854603699192681101828642678693087596743041510522924366271865069998363456431896551782316997405950216732702507102889824649026676556619314304547046355908716791926376155617691558983354075437363224222309909262513674566389427483576522214737772312357139125918429341364593890544558768510358115061983616496844945825737611517228375183504436937917613046899043271993874755271850426275543374064338024535454174140651299507065894954658219996194612198241609170603863612024897885853143754901683446753561872378637662667002741459441421584744857186179149905336376042362037525566732169962606676504345384637704672451923636874815813105588877657088174390037988934350301545737393260862014277422357740455539821582838947449612185081452124079649040209595404502452553198450404034014584811175772257808697790439139249391185519033502467231731864317885792153198549956691812704009407646588900854294062905024016843835836506092389893441260070424423504004680262100920423946194160801543844809481329589356709468442725904957544264005257624636353503279942227917062083740781029349782170284388105496727063422829493423907436876440159743450144419357566698847296160391411136435330074455161977355279591048762838301455602354526317106073976970241609578995017242838837696207044907187639736025772077398769963563942370554951872467995156139308539523912692176826725651416862974636418041654525062551664357808425244537348472631611438861465970264774164480670068449971021055145147574818772733760459514710133562199995555904388333284990649732280071159480960119287498031196367505917151326374619040033937273154479743300503110203250701690840743566891352198272564822429475691782945865103897561650167617208929939791255924520676907228078132554140441086617051855665796958988848321101816839191430713409670483229348177598910559067811899306529977565433177864315702756406243262033713756540353454937551918666397510776076480841410777955190768794114825705325511024251196041133440693897894785980431242718716370747429181218404063381608330601725011419150023583092920205878285743848771608441606683040352297369351231921731491436604662568769194979308556343117225444470964325978953932430319986801101444260204606494469638882815127383001740619687948469190998131510128559448524757421241656187920605262132378701907660955222480143538141917140901159655663133978049395809718486991857037528869708468810050277310392729655658661852141011401379802138439713379873775898090678457688457257106705465017059205372450030815144826370073594178793196188051193950149469389154461738720556251676288858081656358777211494058818326769163963447302847684352361892773362641986076180322952948367935546476068520788432909757110835103255144449446679065414045391762610868386851250667928300822786850954126933669648771612512535721056039826769891062369160594505677526735887718713621473037137391016923898485890183496624659037996858928287167839749133925388132311736534794776281564813345087693407253482783711757118509535170811376114914476585332767348001568196458479472345504129732409504450194379430164714180091969203531942814075074312811016793678582454108346897286776976214976885226220283125048204879023038807485127242434252750468800128650470632944851600387369610406889902027523037080057866560256453626467350084560725169942991599641738427631873061387259758785888172218013178279205297492366351050284051997020343596076858762670958656929053235654933997514133621826056668123325201652768111087617706857144081830184033614024419017265070967465648096218492820006472198763215038061600458801037395771998076069959103863007246395039576435104717283286908385562625005250632505309366267239933590714142347143476152739635600976081171212378497803475282897209041360876952513965729221650635705272547875663941727456072120315135850891192778846861668861906229981451943409558705603929817271258173243492126630910555301186715582406872418094546777778223112214387736613179311762733196181427567669019547404783290611500855461475078301722014677364601077562219380127165809728966519804654589740899193831523675802781423079690332855455954935615900923369883491004984275495381511444563560347146162658444044422340844651797910317734113591468516153482248135760920267130882162848644042571879557072318182959315691553226662146773085224978801099630943153042947011459782784948699293340929917398895222935012730427599106782057873488758997358738257678269435243922944257033656523940655380976867030052913030492212494304345465931760453628214639875554354432743987868075557831662576222383145734714689038306854992233013106620717533805613427964887543104187969974367828564901319438510997100986519576705138967461468085079250471516922216060317823593855614764791672630296853971162961249536868366664561575326726892505576641656159573638290611452119436711683264829497246889631060976164204767969717971062458901898588110204175963747381181441993000445816327598052966373308272725186072504921347937560697930338223340065028189359628896474302720619340643594898128868815794794006122189142600215231584248815091843835333606756330857001464646601572320309685615372702276134724438864077268412112031924280078758261457009814753533229929375911310120944538094261748850171030461772894529284201308423300410744432850200736685867641369074106449872316871631833065932891523161324276191554246320620669333179394328579912309460341490243352397486626385524000629094466257471018053257378273805442235002904834448616509884765028064335159823840395600438546238034150899339915888488326269096322701394736067909471153575734839232197932279872687848853605850642871240966403087816653313727402985920864439913238497479593960467263954185117574987238545643430741610912794629014720280246474167024635209293198288239890279405301387834966389502667213357793167345629621447558791154299737991604241229281482295296444964675354955289906975250222067136120080673987807437919942853514265082603992131635700538845852943839475298241938211466874348278413346294466411094593779101896444022659225714654885087672032512897841644209109702326139208490882657475108381989882754334554734346038911646383801492890703752191036603761702862259970929866871259098700861950071123372908281083954006822242534763795442072089646477005387658009219650619287813522257935445577136924739931165080619718338260823670957373575264865501097865237508870471006774675568741845784000593494533043409479697599932424841792226191487455968771262104652328107184943796752643585959447920628850630720525762254418510520969730328904862086942397435708272957181697339552668614983925001868343764862927269972098413140518490710225341318280576032030684681792820223075755109990698983056695039431735403245524038999699088083844858138429531798237184771010956987286564125544859256760105660374343493466118557032995179744018472059293905118223149786002563730736636310181757782207118482002583544996926811808899788446871222026713556642585382016561938175823244199377308359670537564503104410040018193166517534709866294253939044201630402157208746057001856879681058736883133063607921029077842465241881484419365464150984206645417070801551709196039305077864950530816270107863355325745862429391249449669180771140882082650178550534939223149145916852558660884235959015827782111416189028488613318344451305606694829738849022811812187103853294395085925307355947196620789755614939333362059242675653174678439316840315548003149864871085136369753662748917049967803217758545271931075900158663085883771653204748374214177030551326554042679766710243861611466403903771603510535020961425645230860545703673033565116337574159733324222695527380412071491471428999732572620592856164739374449821803184946112987637633937390206466753296806676273450256376382924024875206865258050783649635369474366456091127615491393519959341861613543873857044679416129397640423635414639551136039625737173462644522393030623508141327981517390074830659395794263536840830029027354086111344596761434050062227773502995686711678329678145641826928165110249709944997852966491979225012627019398425476581096877354161116492089166347396047444928051437971287121936569262665843215032370625850305807419725160552125374416397495131170749674785492049239100978218737892910589027648817190066690556817588694880234004690681476644520506089542380427021825416702847816528204350577558011095294870631844899976468164381989972070135732468255731523271975160448353053265238910980108595294934783073505266717710995767686077387086579354088543400365766703491025245702830770050666271971548588586859344263535446577970314417398454918654383376318983921891819492095207914749797652383500502334569993029570344382894802086132140954091469761483050710136073458633067515778212391558130839387958909547096077736158784448406282137637103550411616127301507850744777145274969477825899814536814752881871549175397471634157672621708395997644092564384461490619205770644009498693302644079089929334630708116935195903080136739896164781958952357336985058451503098346482369191296178812180495512677354985639180281689517639570260656398569988357815586747807076869000993848991350285279059212874054904079263727817314597100836465265637406671597769672194216492577633635130614799469915609605029916775443681420874284013199801724653256221499357988222637356886322731010907503494497681583036101163602439908850290819131615249504620732935631111430868261710466813562966761353734161507775236402669486027198366990837416673343188251865226105617955547112566651260971564088398007914174317302025839884338979764778224548852351147875748650927564362626635188227183069318343493770617055350765474799929839520175670947763198371276375071868095576118562845389404315169783810253427844030969985795527297530671149183122188193201810700271289104712476501216337915563530791068666303386122936414992989089305876778183266979892963509848873774896179942498979121462686410404891481928924242841131766704038199214758662170341521413848056392672640620445813728651362176471640478388294914319983893223249230393774896080559261791378032742647869611870149126572650005589772343252543814902337394672506186046852280305053931155179144275796440430936307761337599380365560131922932463136671953800943956594390799994460864577324805929691937047842020795373044586159312468150718890461537111798581844859382716498566736398266525540000814350774330492768562328213965920173648383215520174299686008866512348961003703351256801888258893979395961234603530683072633545071627045556287377169838943134893744850737616050912580096637158354084128894527064503302027167717948504173179658935455643617313616326459583973458843256166032105182364223259663137778597961029569383141597061820936828093527903912769085246033167248640154619027249012530742361884172719915984674769126652914927813962175097568014344513700482488823672796591701867012758678263514365586563309306024783357174448184228087450825033490728144885751966131801987838979606206861442806923092906855196311036546476332004972943085573178115791247397876428072133746533911545603498531086550232124289519441185859409702643889729378936886397374351527589857015393414961407488878577698338283681490861454010795167978174789857739216874064546514701406122605943900793022538822532947692472031198941264998490445730035028213245748570561528064952163155504519378620791461706491900236252103022788252414408728946055304131810931448834464546201162144001721802637601703146076249863679211110225653245357277419329302952175562917091239091112850375442033023403273168086417844823381533259001442892343226000216881600593857207180628149428057642632999194056134688844827748763973100994654515511863669771268761056254474384000195221869685771812440994243908036834331038512016768562445730721824375997067744137645595416254830288491917873416428442533435228124543868708535543462220809178427631369830263257043234034993005757951124779143116630960607789938528403817673572020863742725089373631788659613837080485307373100636602728943630416185377082098716370042667381736352751280022219995158836723341383123109159046382843065061703418971276277007024812871440103343888646021820418714198736478520122517104456104468266491088876385331314005893281000964947001864380347349351945009485433404650126267813749965830560704054756058406012392540309791131537994430990309470690027466638310349721273224404187784954757019646184950196880346783148269005779743988934286833341459794772017383458447933351751472938389078330771329608563732659938545842629121267612394637756690261016049452753327035812188457560900958222240295969957284594171300201743649430143314237719497908738583434474923647099956272854310985727174612712747825869971424854633647513724823986644557536364290995463874993584476843653763606800552874334010943858305549914685692928994119301170262774253561741996862324799788629804646333688787918207762549639268200096550368469769803143727912629808473379663267180111552819466603262603734707064887214761040525331236664286255344310963692679892813192226120744596969345049628048001060201786286928444685716747611868400203252922581942886294774651693443722469732631222403137023508728144232136308654820373537198033874163480671914620760968930002653808882452085536064132929894746755062054734358668162119900901227863325381017857781165051000564524840058124361048139712002867785493851422676980015973364792175554925886175967663733845192295315617232616055736202597043228933693911685342723260432598553044901380569696945997654824559899150680455796062300245392622793138276056481749445271666365984643007202340736939205645135610203997172634903020880383460211469156127629030352670618055789960791789839264503339618925540520608972888963790140300272025539147811984582059113866222261271884940994917672203197528913751095568081233484423875675829603202630755654724167202516171991812769894619185152717890161097072727013894772880739875152195249256331034227394521101939351631689979807828486232878317575637851752958246582215483833063871427670599669090976104199029312195247820584401926429654085889902237421388862048688380713711810519096052977855495360917265161407279950984029716166985779978786646363012581218392670918147331583078488189907719029939514765490326291613743726620474490323328149364774338902298785748012878099564246051773415299502864795769908298270359840107980280460014556476360131462463256201483882563874584200556840681980579543063884722403478035771072776678033456396021718899651539068770043209443600725573025573056564220121525777873666797912305316940055556011160944411189790660140231700490066419589014013760429436735625739322320995293386575807261405295581410792271882806335518092651561218490734119978939536627697937115410593849750289293349026448246242033033049885483166698755685545860908574790894529761175565248074353261091573952202766790969664098428529185034512773465637953094107884139242264451997096225098806255712394762592599943007221350633714492734108377330854050095982869564609016953082208821728201509776917134531315931103848493130902954117565835704882117023390959631411207936809140073644723575798421767546385646605506258556044282673620599469190647871764353987815385571634590705219014254609222954411637309209892581765288446073133847655260589010607451415213991974834522971767318076884266593021173026852184467502428312106979877197148965978103741431194512629551196270580967593494682810779213742078416260264322558163388391276404546351069162232727128156047201579683958266147290639085796068320592345822802559735919191122565763557454996862062287589585201614851799259491235989638592647706066148703538679403383594339382350715305671140680922980790341706744529483290081561516006557305292230331578311929065583001909196026102813983550599119010563514813570492668511337653471617237595955462765723898521945268122863437611360928357136121234130340392950911338061080198366897998708896516609225267261602356402424662221767134798253842750012588476276363286239181655721981998446266703243661426029373148798734637438380657375263351415416048057263912328690790643924834564977161586101282763807118633701172387470927471724531188308588663902247269956587737574628002691184132456223635002718302056075877524901239599107149899686937127167401020439627133507606511502646196496105307923025775797777733753186354838034376082607978636827455521833617316589219379918327931439447749608057076446780669795850610338137646662235904808810158955187539416906496001488256649792568549334913821920401442323309415862536289504191945013225613033583460399967974550280106496074531957354489256055056277874873222182795923713159554218523937881006174155373809244771870059387252243136534089907437060642761022737360915469006784528408866583472025357276839729172993933862988269399146684598972539275386051610721687951652329904761313602641851385988835010200347201216997403204496863408091737813419119581200282889877407490598435115329329439900610525571635403484155122867857369025241062826231831269604249292935614259509841640582729183610057643410694374689869981148563395100254690148850336113073233505951463299544363192214441201104620490057146584816346098366374951276127844307506643645311633528007579259280146450279393546077664887569446306197442080194216234473866903782953726669762616543841312954335277358046174443962297957377599130184797813368791680679701004549184618563613097778485470095201393961659747245146620911002386277563301977724054470032336151874896752786299731786102208169566976775927440897697282045870604353314030987785612738638840762158091244155265852179024770331295064030945131974350881322671498786533580767014121724123574503545621384499076303448323568286937367382954449180052639574204564540037857082537665855027947912495763137171936188406467315985247879791171613387545720201342848206480700221740639377036931602728017426811413268234317866351006837168567068373661949077122507178459164814350788751015911470429331409893096017690611509281022364653765817847639517856210341021524473446465720751335656608313091452842368329738752428785505036469537755231458169364008576783387376803493466628752626401857985793293781377896355405922954935924456677418065866032700279072998877097806346202781599587391311163364557044510203947220105214385208328360277110749679164826119400813176500273677923019196486340164298869619154466535363546458060954394863487236352040953015231405403935151917440945288237207225549879191059398424862402244992775537072660816071546369642529053627636470713341582814663739818471971599010740311755451827607822303630626824768816545153313929344577193322609904872515167576048496925912313877175885131825975196909666052072779420761929612703960597467092023014285739821064842778977362779203492402683486323953682417482283171921260337118491542923102045777015235166845572414701948139000387471639973504194834298341866719366485316234633446378781474850044967744929607986267130185569299955605958882531688301986717320575662398940404452145107025529786446513716821404693036813016255950837061320388398606885565552775375828566686998089645410604580518542598564454851529386075877967768880317022392328049651907326718384224733208855231368382926810130166281908990394337251234987142397966997256340039070141607193134664027873816872274882808430574813694175547002588221382612998464142128134445191802918974654297443270853187738557127444698861785644502916157000462396536950880323045739536216888022333837704815263209963829733860269009598207161579676789840351400664506586472625296933952711831291010144489178772440590742870688335864682184479923629031593859713807067790693304507072527784110063171858554819311328412013173314048778300877651237406025989795798213289598112046077349654220488962286289933547893616222576676680691331446192785782399214909156817161014392365294156255270485073114716474855367327246337953534967248741056836456294607142600970764481761069157606943783079181860004469520769802198061200878480570592181065398654366944505684705134018656780851988818777308710534144181926711282882654361013186819205829209871578388303951834979985294242346164982535029461593039492315399316951980840619723956518482210978174130279589974461674320317004407568042248195947436211953709455854035314348403997373250905449752335602354455523387359387770969613147363992233838512605785991998731840449967143562188448189433613661663106929818880875740460139732189003767155243852284835142525134275283741900238545771530944374608953215097464543531019146364829059719280487969624365412099820319633837756485871007109410773479009386523009136318017583820233691368867276509898586804921021909219869727656662353274908293885539349921061018377599886136065954149324730951727426738749531319401888037041804099061483543254585155779061331673153265485244792194895576822296386292607718592128207176794893572866389797175501900575972368413455359897510971949083101551672984526060967316909553810287475323079106202982615716999366902587118034806418657214191192065305966932605418442533672868370530646917757404485348180333318459811813609155757204294328021022506605787047031817075628760350958473204188079016654180467653021651103204527439182298754795457062183121062311758700935102166399141626384762542405463225669295597086896268624418415684388980180961683302828359602610426836972652674874177155153140766907493525470116761478349330642454521201055487198144153252872284078708156781433601464217269748391533133944120449760536275962475825915299920014249628583977857698467313322859914843457205394524132990824880110509008159459446222645613031555927153286097426430919879123736688481180210395799169770089989756721857201623574544966838416730487150548951339838396202262796527580254155158117798059069290794003651364565564048903845043768101271693003953835981497615803195836775957541732276495224651171734766948258977810260361164354446929827002062968842502349812690196279183356451444063260072088540990321701234473211204990968695545045505653832373699012613748672334009317261731083876636410637388833367925803998636665195656941947147372285981564594935330604936275261580952795038663476365636321073360432625234529979700900868449051446628311372749902857311995216642133245114777048637726422870885878792149483281971775879187207491275314433647964236160380418157672827817530415722596301965398791298991175869119220568347265929106297523412573716409850472074237586651995013435367423716923768217934552621515960114439833095320756524621150691822301810252294864596862581561272928505299004155059169065799044023260803907637178521439286027098521923386459130708965082176008849329915450791768857716181274939078620030232287016520795225831110863062317662520687600483876977082543616022299608455784552341076086645682495578603736384151571011244018566478739320826079281127843621035746874858047458544240328095717767565321291749032036477359055346766091575476808408389920542261006120667728670903400649069225838373911700129044831044979356450212921787389538981811232519608487350619908427953333189779237096147176548353932812745105921385828572852083976281401388981096928114317859349224003855084861127069406151760010799420823487275564100592616314318673693432446504644782683027539368953127788852520006576044953836112945128971697421993402958119988896323097532146337907041559472725334015934247492181212861760791891315481979203010161706776585461626055135016309693346724216575988493150758088100477268037117719215099124722575151618585790122902956864337303305916389629115642242425508908543227107543085031512785176999901752285782916244025402813748506468435513099374301459905935902497602878461204398714128321309001358459967350143994457932561344053550033127839199862514299421546335554315774716631701372275728882996800515907911310142459069148576508593655857072997318782005501331953188700008934233284211376151782332744249924274162368621622093365687103737515760375279074081495902724400000152582126916060845473125885006291363182622121738065562651725605015540074378330668072364472955960866058919724643233238140061712753506648937837962598481164519037045406569401650353910985621504382357692959650398544830433160098129239920536801143227255869532942384072146445651314310874871696997748121413285269465901341890943655641178887430347626187312259973466785592379201816447661336395456377940838451739713557702369394752543331165872125864626891749933788636377724732783955857569008429744203875901582482764685854306896521328081752915443162527977215729192807280309541748230746304133948462770607521389935378290782975365168875939984367966938834194037762475741172478107811920751701165065951583879391495536910035651240930928080774727805120100002041405392492850759932483848153023548242517348713794708543515639739884296801124808145502463899395830491919227317036257504913518701834865493462296355545528210461032636393568854017028326692673817395105577216792530516643760886371027797568042993377587873363021676244570901988474744753752684535862089079230586102229742886777879649115017634590275432865000228411745744666623790221252752177874808704275066105126457072393036384071028835563965222843541127213575835431737059574095104770911995708908990918416618454336348827872126680345011595714255283168155509857366951229781638532580926967716863840780720584120336566241813903944696962246670356683580469230717281458721448971334298320512268920501667392974709597122657851438108843224338628106242020823255483477627301390078451155240221833759664084723363182960604865222391803615704173456093207925972035493556159320942752022939853189055891061800284676007632839811434946014866191148761634793653306749834070777549994153597145706757917317592511386181694384739299293323421457828985776766894480336670998704421912437028395378957512397472125797380078850064238383785004124422126152249355382418034614018484138495346040777762056334759191259257018009082596179150031342355513852086896779357805520694744105565167124554236104185585156129511005054809443549695422598333948916902912875617699733380541360283548033731952855323520272422305052815903671051785853179144466858168781321294971124370561907811444473757237897738518314549274135372332672330720666510490194056685394218021157558345415732744158276630906328107343896333842346272660339090273070537318891009018228068012061745265986543396514788920996736568788653351329179160102924616780578947365783504984323561370738378062798259696695373266055799551868718935171710358143202701168330805973405085616890350480008395194204332869503065679652481128695372772878473787052402988944980531681013015415240697776810428643333735090205601576021097731243918271976362573233744978832451224442535837246276696655253682311117687973431316433764018896286098812728449500541577424570202115897741361514885095836183631645869766063488098037410001206260596024432410557418083557055044319312006766250098854783717973483549796243439665531288458988945498122630592204919089818770620278179893247562312119531332702440279624205936928198597973362154975875477195857749440637807815058050744706667558729342041674795518729038963026785314540234589284994334641503581131598675827010913999660713132069936868472430086666494900092205019307907125191688428363156341889557451895338955657137783749757372401286676881810684094429109814634994120548133768853742890071168821085672183103013493583241340122747911583563662650725406504301304646463276972138716175281461286177207359568777244180986449820504186484803317474409521516024875532511471757392268614491457592157428200519005640067639833524282929619114127602381056848845628812335730907031961774334161633462753543303270140447710918771943019607893768424198059194350843879988116152147143335547644457620596945027745676927891586326596700309600971241355956140681836747356677373831787072050468797150285685455507976847239527338883007518819203529604052543772423687669298206494927408883182982978893715355658887403845752898719034716184724632403545222804861056996253614508579785472268905672365023866775585692925498769823042984733780698539907545257875568522948899918150783148984491448812740050761154752902364752428783312597258054305614977818310904247953284362725594190059564314548689384021545027377429419541800286140030368964832693624875991479871589504392123266769472820389392458889695559625381169190867026142542782711561449056818677166362863903140799114278223816781214546995383983661689065373942872116967186921293675134731385120123821146989335630714232545411318033612600054226240136698039264913209178177138179060526829426830456260382925189117659606023519299836044983464660907910469632774587288116885778625567858949107727491682714500440743129640796709283423423901752806684725112712518711643742674910254927143464645694541243855758610746136795498172470309006751679704390444530857324705272239747472225123248062076162157014171910350625945470234295082568077405063485089181863020076123795286502264612049979560123279945746048785257801736338041839742370241077923981631986682586771777546909223828059241495453516697527901781233038411887745856722128784481292275945223081466170680862066168636938626209540415449817556107707092201071969925116584360434715027975065619473999085051069941673878856141809459162317560334482951195704116982825560059479758056688011452726336450237757657754689881142124937683765021330288375806944374460723424671282361267321846243675044145588128707284424805893028151009596563445997492276911030101387362209421459846279307353874788146932258092754111046996149977511600093201898482852134606003970556893887916782279545516393713298707241648073182867524579448486577525029366284360681280425416084211793235402887944998921164826026909681169699887737964247583826113743784412069770280003788344313497110638010800103277951773862224474329535838532320086003683276123200117663866461402303570559348051513184331083547968524946776484358235774405494964080761663936716919189272994227662892443724408095943724092799930892981953282894880667541092302337440193839521390850004020768984640573320964269364215904971424731988852055304849194441735808913484820695892414426445010133860853595721534984887640195146832352538056309208408224793759074470241231145419178495028043608491115033697454250785081517107842539725980485676165827028660696714805340118853865483931701965142332589845192460457092703652045563308493405072775426585486229875863551423647006354556060501339005940166490437489470280820063656364000577066076048928647740696110520077946374451950191924006891958735503408149233699330735371975643427283866305031024449361549627644529280488795117847597882938784715313601651024988954518093829066263339249450810480214783710691671012816330447208683254190474471589602307541751177879372415572112827289514399943699941071060562901029859927985972144550228751476126986394544066779547516913636169020436243924686856780713405198408762450514594100308346565639857601785764792840234291560341690898920536031022226653418801550202247389266025032978308918882582782202007497968829840515831737254719809696638815806679090472023525781884979645335039675753847215000743760195340728249621090694057403076988270457790316152938017010683881215203795517381320543245605007932383193578287935673015090609405804472681238733765076611424023039733728001842432895240827392126932312440061853396506896903206106628460197146582107568391425220939067506882298038081498884853717341944611738784038029977275490016464625689596631499008299551815806906682572020108903986620896937803136722541669426880486902592795364392533556210308842494830869970154068855897141794990065108918561816650537537236666729069974906569151889962143051330551537414627976706322713832471965723727772282317449637550838270158800325505390349470533352161870753764567721530174007918892898894779466657459999061044714179674437598283318540940923578899395791761317995621095665577130888663216975700887049283257014760015117919466142171036339146937282579613891743110843396985477186645957702791383449628736611671004623039633226050970935850884428762266296254346709084552748096655687946232483600742552444971522103522127755496460519173461638634194590617969192113311484986576172912930807427662007656726586515326311643354739096822019276758984089620608029667102741356062668974557531222266099222620842946847904607527436878824523328174199925332817657921201659471110774113076771599732630721743192749897676558186010323950452053134483210514159850121910271117248697445594337036166570937856984668242273961982241041052772820117780640818544927549599499730037987361609540724629074992263364620285360032407587638034847649333218936595087678279897221122713987136613505965512939905318894908124261367632587696025801879600669517835739650915090063825234393897588088737797417898619881991107474189343704503661576515603573860982896417684689892613662047681953547691165950040889650347164267796675838165133846187668184231595290152727745157096016534585401989967652552962244443715962698373957308926900475748181030130077743313246374420999581866286648519253672509944607036463188770012283580932207211406815219798916736835327892826421664843484246297215574054071785355491597130475645702981545104143869891722204462758914784631298970555536575401733553196842671029048770364976983774527682401311960336046088232997972706575585538340442541163828804275252120516557845563331025311199244587033273658679649689755423286263172488572748812478285088893833834245015950312353161224207718027720690019408250151982892830527706975671566140378988451266138890769243220659172414396168663616581125783980183837541231789177586911816684149048222249530924519007019232929934154825796893802961199218048076747494480760964786268888245346771607074071047940642571168465464074419907960270771283493419379654770987459082332484364137582194946156487817274180754574183940305537636793041507037804380682710301977521911574697750979575815846353087827527653654061281081902247828695350224822336722269220743992461681979901481137863195982136397659932340964680462977197116295920081273466040066757166025684115799714052865061472718643150580976051899686228547470075496285586145550358578314627559963497107153646057131742395085925258185764680578076511860353336909210701894226080566042693667412054883660104294716397336784616888827814645132597390185091098212896102593228417242549745811483850818177569945715034485963099446907431346751800950780037015109730547563684843177205207873440798712850959468377280520439313311731865851704290693224116592281791925403638830202849511077724898541684651005118190167292804545011943445568096517870575861713716163980181214992348729230105608660105903765753427777785180852422326006168617885955475356589248167160441048840470996362216222649055533249947744326060121954142583389054393072708339827695222187336808688237816325931398518937859902524786459085973287576780963060763448317709109051562289769783511991468317770454544470341136832005835755693680395349395775257083896066816487844502288988400275353100283592538156555774742280980474346785187998380818035211430341298785203749867389554281040290370567869686413470332881814424516162833657792303310938428061451552978175218240438474493942680394376581384134005445250832123507927898272578650490107306334593457089969909942209620594499302901398049178995507526606524712502808875898065484484451964585275544086094347889515031578232383657689812710524868269258643559717862868666647599489743801127874021270994555175833357462601713420620217863581178297428007082653542178371522188352121646071223140283164195780727359110756480535534760726325747370768358208963595748132544773393944540857772852006804025436086785207967669588199165975254974394292494632229479905151197665729374459564113137328841333811822674945815070416113090448520580709446651410165703495000651771404081881222886336548301749992156783905302785968239876495749420754805888971611833567856567895049345169861438228731042658984406799553565058236728746138815622125107503820504426160857830276795014605529756251850373655031033861619899527582226694261763803373228903786930466502406578947534316954851742889089501289465475526976880556596454108855718784596051981715396696927870670947242098689426636020599553797384063196242450179928653718728259447613100931605906612511416913141890661833021357011615142311437046190708072044228007217801898791618836005803599206635871152821138199357279557429359049169867294958518851755819265173977702436700022720892376047111811933405466503512670483012599135332103714071664854693917769892994793440194384761475327672738713770964184144036414275172654391178118488902435485150793064397837185045443763012821378950975151052643516099773060393806694170502454984701369181144109206103226811550364806266463588479226281840809687657943691340093549031648480501550501563696982110485659212502789156931077239632103410217966847780520463651050485820280755919982808065392715162697419725379336761588183165000438218450373034909830472363786633602232765006150624571620802377285147572093745120041145415029556760271875148215131014549369249970375882946711634068312339118368798938083536441614872343848314807440530055209268523539884833570158787033872912334632367314208670482444801149438135090800468216839953306855538293244047346716980189260313986614840066729973152253092922897250736295027733348466012689419835510042734931063247763586980876600877160724664412758376612616199457570529164587313881296037248973643468904579806282789587099020572151637790079958020002747659698510918548387342782262703119852615837945400891203139749525556487124784178864058927318961638839438801255291581428361661161149102412679768956425706103183209641954467591297157043219663267467335222531781197683761504872840295883288907744456514675874246739764816761374209235942188666832167578604613264269945090084605108423714348104761347527368691497177664786809382092507329488884370303475360708435293352541907682527328030354829658923886946027529721321753605175364304535883479334343144538001475996437426360830077579092475145758891939048384977063012394925267207041430893699473920136445778783138975894604301579498782792355565532013913767893923432408048973745155043501725080888007042359936031372715626738173299115636078423616324506878312796566745333257656922098491025244644814139032841899226148980606349418197467666883390880620108024719956089347680686707272324062190573894501317187577608546954451238247730809569308846656764089851197726698204876457071090261325633262435834973747707420520885242320705209344568699312304126792673575937386066973321732657200767688951626818425499049418064477559903668068910453012256374485795986797756319286395951308578614889838299724658431823580604668464158615323818666023006903221190764244962523991942058542041931193022722545603212367695312111881065667183204314898517506442517378204820590546359064965401649340439283432329354923441583514120172317107304585520560454392763922982453683697281185040309663952318222219317425387157864333636900475457715845257231355800837204196258986124071698126427055226600677161082224211265451662389613218669538200952994115881434878051486278925267242599029556868559402938031129289596414253938384268463142784401413145936395551909692303833108745033323113876748362049684387276938328870013571196627802320093364292111712124163168820903602953607415735342022257848286565857773403266976243552105231731664391330495771692156644264173368283519119872953912849639520314645990188547703300850371649407649072314307301632471880338269924850542555870644230671716070258177934382433484448325098270959252828209439209248024028049355152994276322529611238807836088987596571219769253380667251397574950511326017217010861528135717589230955053746484373574238966223500596400960461662713877075551787910709571666033100729058697146849791616569026891716842565991181734307167369830112640876002072862900667908643780803743086262682359941425705560469211844991665563528932076904531095006347157444843020767063305682943614842383638701398612912680761751659345026226626101047650569881510406581731753724119054140873723710442827812577073919370749530462970332875304770048341729955110473961315191663683666524777717015315750105715386439821823996012637777997887956926756464356668450056827432388290109680393470347574949972941770320792560036634695619453483351967119186216678364554819393494902105596317997485051258995821510020713781737387886989848956915164272885053091993192004891233684667962617222855017646072393230453429453734740034816653121475357791428818247132733346426459871780614248156696499060072864127468822801161151413571795938518920713719264917623857799711641732981425363014986311708504887081201699781731855287690605301557007500549650434376201276014648075683952995873078403674724580269584696266054424991168456983229835880345410623996031741538164408813778296652950515356896588553157716528699022301898035056252611461601369410485030740383737293868656746638504092767166301202209318886620754132125480173390814206821626729367959642981296626262655284778221007335296859418658861406594094141031544212755895546090809412410384210439150254626086094347200073376334680656558383164655881624182043384542344228604156257731212446924423004797713289325694654327541866587715225089028278560703347979265946177143883254022831261833207082081044367611584506839890201547074349857686869355561623237159222860443947832839268439102280640671168448611591491930960663261404738019269682323005545180310595549536858830097214599829615964808886621145227916745573652919579119516399403723574381771334331335388681864579717983654202742743006732187036112563405335738186236146115137190603607284927846519206882918675523276460158054864462859741622127344459351934055276391677131653611594374932402168168905072369813589239664447566422658465969502283327725388337634712838001996807054816581210622240803485203675201118882552634316638560774271278121589224616404815391443285806486838332936387193115933277267444950043961818684419809939830608230028338442903718376329100978942597682695144463288048744248861000588029916971349987919100753767952240831348007061270395872712638901767110258930511659417855031568651776332495707834977430835247655222689499548427089981226759015513710358316750848852692905321483816197991681715239463530072162727519057646239242071631235867374708335266022039383654768322321927686953040379683404883857952671399210520233198905483628701356803835192272165797667021949649307862087790030426288726862989650948385360887387261729749454765512599900165797932322532284961169346230255919893157877620876697163576382789031884233902842620957970739339249281707045408200515311550944215344461243606871986100963780035938048602602670629627103772228842007587907357292732495687862352086619210359273216007800279504127197389612681656906448426836223811384901323232713124855766806525044689647119438784369114857382439315186510840877809462167925646950026258627790650620182154182539911575144945926004403801947881329620435740162362257796968630827409498091703767730820960403732750869224305606379718742823622597616831327423106823872604134099166909780250893708874317792290615792895998396544283122422572347895752308295862959447643681986262709950827285629631024578487901253490030131745478109697270815231734659453640439636891705323561947789289111843736720668477175350405621295124540063317801411996552242097696346974558329175534263792593580122792472911249280112993208685995043350301514267872522499751559622489381061316999119221387344630547214598771948649811072434259310085826048920963193720216184980456143738263974320169844152487932821529686458262162994702208623971483300395700795839792677038458784955796776858812110561828575922861640360137505291468416330338573611362814947612324386892209111606974322348939147536290700914532090082693577810781566259505501617723910246207738887128203240815904612679428407857680481255439239939904433891422171975632981601093340002143084612307429403255471828550104545710001178237044021015276379176683088645047034990958325901512412130450902274577406952929257401575307397891102829512296098124991503421689663427847495731370764061810589751390694533513886145521704495619634037316567931837453239751296383646338651081658649764935961680726627732679026166353868691707513044688134350331357770403847029563121628936416207971527709625424713143643336729745287758689335462060959427616140689484397584757207982982466016320458345769042830896766188454965802695558851826829972837060992362471134159172666683324861185525355868881590319650600257942333180116876423659029809840626108842940968855391549370790658402165543214432230810791463477436388251115512243952606313927523574480154301508897889675417627569347594873678893873332631663473974336049497676574422565499026483071475615309316842859459627404691596633781040154422188207672459659949256072707818944961821471104519911933248435881838191927513315263501658284813843562164978319816262383102175064173413586703689088942929386768092675349000515516881196759364857080913693983546691196711798452317201722928369795751206981588506176677611993683177803288112371503833450040541916832330339377406660984183506899454638683240615249679191239202822217113282711936823318046868560302656350697529251727768751343439620515106827282448515963631676904429483723720102828428318565536214476505452373752759879491801344849809616016739622294776323795230035665320787537018347331411656391772621784662778502669966108386069135569323924413780570134535517608467503975020478980321109327799215918274544036863253567735253385663491357111008374290168627502614013880430718143140564657950041849931555960576031488525393064187466244880802484474197630713070472661978144116507056981286316572887208604720549724794380587767419328179221146695144526849370528900977246291794705737415763837000904851533814058769193492253999028973509707545825617143387377826816871548523899501394938068995644562813501281041903679580501045640493256250061748412047561985619274430704101456903870373494176012562957594954561093973650466386013552714900009931581156158973262765795183737369550801293880624823699012875190279032513514897565949820116014299360603865146618469026639524714541575132203732724651956554654812186988325923429238808264548016412886359308078429245601679342242103657475692235893034713847751959461378388896972133171102462442033244218479647881215004446895234068613329597132480747857433584311123041105033091801020833470960374234011410571589454665959404689429472153727108277234759458458829362168091709550946702233584149972890067261993727172123302144134401636745927925374700357617408199333460699087743032662175082078986482811407232447292208901123561534824978101656378899744311847478101659702478057573491952466458080198618443413059172157332308074926608619585865147561694768703432051613250222906781479063004629041653158731939634711228515050256478300521349111912767897258912832668244973928345178012564840908332556995598252868738424647718081512492221536075839056449882570949078002383532229538909069288960411883161321087418897721903476233913702881358572564958435741759225937408189612454483290921909805180353513993892525634154888246451385676960733346696715060074192825279311035652739578480423336734423201712845230580874532405008211092084822965575646472334439901099323915741415071265477012464373244338441210847231819111986977001562285252570021790955593072801853274644928726084172660829468356172411536096294391439505161505450588048433063189567719151452551053856098929653742649825128582537791560053259243327082349450617100784100194756793104853441309489474182985227233599537521852007880991034266868543987868357261664084597935117313830932823764784128928117916266119715624084690191691012622811498753008462482117974998763020556435294599403294571223057806911296807250966927817086035418800508658518972535735708025766397019395692429494706888033844519980965510615382199237583857294306136466784723365480274558130645577248607957765609962476763038877525936731974535084156781145867397141277917879679489869810754160020019533198623530691273033001318126506710377599202154021901881289558336189063776802846737609912110490262394503949720015524380388211626626901124420158450589612902075004180892455757550964158387882330425818735461793634450677456724510186080662278294083535760933349250674054418100128888434464892073559285620607922060396610997150731921082644051719297513494702561397113651037055980985815319460171599947854340719587301381726788526734583988682843632237194239659828936554221257103538209578029483256668568176391415066211781283031880040623619401279488281035384340386159623633659296458881438877617942463648087403113624216381773080353494278023701899935093913693484153170187499708657990301636651125231561075693184229778199521599090480869097481916509918052368276644524084277045853029840370976754800351818063328664721799101674367856452385424282527884113108481518021447493444091281286495094957741632930812741189602108925659162587506466618974312248262609063309291286815946471468059754705100530397220695008485237098961104363320293204991339015583234596924098706471598846845759632178088448177722887285239130775950860806815860697755237555471169398740653297678414243789184740860990981925015920450597008606552663120558462764879257678875802628453509810379030929224345404352962321350884120463962848897366465048829009911407997787383788997449208887220493447940862154870491355810322072698196846587906915782665494079346245966092801353952728994730368145308424760257500855881678096960634625682090184340924989708139229336683330487368794790244723932420595757310839784819195990035977481755331359074639717945930719069729593450599024080773359785797149489764788888190543134890965565352990204990929099015238444442050263819479476441440708312986206140942186738373693263977567011062676299183530997468838145328922010992092607021370776581956198509909796028497026444241821799882810084243794516232490367067328784509159777011597059929370704807696718667533897168569341834896218890642964098706897301458664333332379290647014400865753792402406028571961737868077063733524200828828048127591995536369924683601185215990846382112505287811569515163841021003463416583582187755106827067839888874900430371700863657395905349434466010110288745614451149113876107998129925088207422959511369234479907695205571117166727189316160563208433711633513908274844457234458074634818898041068592903187387707377094137745215166141890119913679937664823315767481928763228001190798143460393593780032223200681413242752307822744180003649920230260485910646935581296639554043801447263287486378103081950234076312748322831680493114439271553425837494987325313325724268035164915622008215364609005734637916993031045520649154872603103751504119478420930644833423597230007249814177371872717750781077777712572673239401522500368333846234059013423391859013923427105875881019546563876321983950263978704916926715782414165504733494243760573409598436877915515263881152297192383748502251680715308888072211929539433565298582750804523041329440730623278977944688993138270908396047350733258127227706897648870856563928581221807215024085057073839046774034270543010542831948424158983546696397988060108923932845828193313667201691587044481004178228341810115150235561508658165301090613962105470221948785935290422661926085488453193618340543384147710068274558603078992894806557979635758219658555644437008485216777677973885550433821722773707013764403646213867884311084862134219356816527281559587597419055975596098275730062481126167313390765552551667947830804519971760934739860676357496625406689448907041711572946729904603449547160384417916380537719109999284960665784841267224784941299548873307642314658623400957018541165179276293675641720362201497481716986719477791438532333332011308507429346451120996580691574569208495237491446316769009306002336590493610747845435938055073371627090568587541092037436796503117088573796380358080329212760528156744256284781143439964208287521996862545881369112085293936364682801845978989135324626066968978882388062173227350752292776751192525617917980078223799280072661364575907828040247880948448487075583705922356527650927332489830986379150215534898745039327753572784912613008806353956574384871781410260412856442814587938797879232601743514983100736012683231157291881867280992802702382669356854008478068683654872531930593692938793394411306167216526901786608641728775221881788961788703660597014457699826414260624173423822537904457721061239533252556008070488046931564157774094008371514876396846105565139872354920734824127960822366248284339425549409619472995068515011544577424378659566166904473051656900705293280540007737602185160265710766136924272163061639631077073308242202348079993546537327486033347394396547852355837930294001298802621667949643693049841482130349453113132878847819159379439596346525789078820630781759060528895049616242371002485140292837426631098426036033977590465739356703313187101562420019444537817151556501060773711036079668635747969735226674512733608175845708807893751935445766735104922106832999840988334260214393189524769621652091990567244812741086214818159341695553262826914778627543511567276433657917050820437812112887110333025596503979637104518578181376851768341775577694779248163029485779747308297589079596097634398328104371831441747567765462071881893660540985459209037798553447131417431055961551907712427565430372424616126686230071614717706707919924517387583883643567935304533676809180757258793129682974001845738893733928566404100200183658137945117257965249723121344257585692401266771765416753545613011170737946362745944834307164297290916116853112364389584761323847393053009371769079724228943850246902380014960750016362126558493489235343704123106859059949417462910359150571808907349545473135036172875544733436251917017892343847253720469727803765632334060435379853912867832517414047488652262392368625174703347296291275058181237022609685253812941764556588459139711993471396146481496825596479145259847234854548424371736813252135368343463964663507796773572747129158554225459703934909804404398965906386272918621630415520378887367678401559186303062327713318509644706655734280986505240033953086187860428380008721561252771310878774753606052027568867412837363481716935484151255973377325357571746545426108724689136116707751167494102187214042186892341116096056662355149758120218456761377139491082715137593041565906011840825562244357715182861480331688707371514361266567485754308568123412014994437689129546336855956806538717502229558131265684693454184249898706803107649216645645109740102209447562910030925611120082526474422491444047647451514399025491666533347172019699844661672944885303356046997477668202130633878264106520210218933734620289973088451665080835326954924400036755692094073364617830933981823505964026154083336021156080004026737437993378450031969667868791239144297659261027718486644390184424784073948758773580532174581202594103464710946271257847989648542021519375554813139433461954438732200166037923614171078434208151379486600038242838357490417570926279810860444078000003301180628461486014031922715882757095141263187140014130685138157120453297091013920235763478448131397382258661777300089212213792512222371483791581463446830130135344920134990778916472065858683084670916250451005829499836801720448045927738843331715539958765126908110709308806294820385523534936075936877312373012152031509724898453900257064516776460205478582085514413456857343641111433849622990840865653080521515550356810047871015443340982569560826266174818492179495148213687816003190425095148050614867120137070627817679204568935371281039698013853532144836602223673270522039939153177935076045348101314762724590776800143180175447551266257022497343235762354458318938888354815914360726521100167772345278956826711393352754889515742783466869113901007069414840572660218742902299667943115966854509306326689246044034781088899647079508355853826431115764903962630524094284857256777714242658999163912892327793142174864222742598090017805718036971975906819287543234356843414009503165301148772077201893968869990640655678530083945922952421290874033400133512094949962948318212711593702403861822528742968036028294124712667607765017270100411044043295344150792958970947051041894113537410696650360392300638496689701937209635247930066903581199866468423030113647831507511906785315375673703755927261052085218383367344702150027116710596404918297817750415192337226080784307445729523487759598832380349798725434252827039209467757581746740216072838733473635797529124098179261618351928036357510102775103010418310569747712127776387374213579199459569018082349546541911520143814421019178172126923077436123195357029633674200508316911476331027648076581846187406402471163470042606343878264526847975400214679670886244652215453955575039420664241775335508809789020731202441929282235763622632495809530265672954334032465175680420685380093466876353908692144667320652627549601677062727895794586256731907621455387176834241180650217567960042308155939837581306486224074248201100031421734497328372796207522987252836049236609862380250281183956891097878858927378301109061471112906242652992326499848426469235946121301349730312254966978953460708949221102078579901740449474756023215943140003516297103882923701541597729361046115069623485137870624663395264639634617796349631998361514112988536729004098592407714022379042265886736119118410048718370668618069694330570467060158997067458664215632669445575589077124647515607485698093976363123959773782344297182945274971107128681364891374142753805674363373164982132024610854460098277070069355217060289198033386633388521700694667641787454179850801844242375254295673921662116797634644945619499051191019185493784680511625818226192376355785393953519230148190197106501484312699032602823386879927716735107470241991811803871366811769704960232475179546710877670278192030052759557733710287251255192788682582720066169584641240625356226071058681267694173509041157567675964110528723269222027542591561422320084483747770044538262718015545300149600167793575568371579488334722283395514240589638177628889821610407690642001216477795005422659153164226357026358217459028610621638311485784702962194426861598218431060400128642412786459408094544552651927156494154926707198304431514413883461664213992546025185950141202404084419496951618976134105441407806972583256534686466141774285402926043789159153452703184602792558708140279956928115468819173053669551486507995418557894050841617230835020015753913702806704640192340541714595608454478164595971163612056343931346804785892799827297083305159118178451292409406334735628367495636839879117604798345260745698528693198979928470774587862621175134958281328949876567763532512094805910566804957582154693975361488221914925497579664623014232539922250659778031229025927717788496840593921477503633966463046446774131925390295589281662577429963498033124486159540042113882928249816931785996689076627888730315027956966459329321897471283406805437768591034587516023711455114756596632684282301750666166341056483407182402381543248823163837561928487821298451668346069880299797634253323995548395238946840517354501411533118819474846960161642442165299955523180287296430098995845609768831140468559880719587480025667388552857394942842093063157326686552355373557550868733720701655799526999308411443404702551251608927897736918672561102952050151937344404765256869570140790567881383005474112990715276189856062309198092411108920799426642315392692807588850905987986320933284614018934382844842045895804645214231363317694564721346931861188062343868160121919629696312543355017461425639093751067587398915497813865655352227811770471573485876632505195626330707699815099369456219641207695207827653762671211323047055923236757114898417894633584602692710626942854705870105446237205188656920842058291785094148987319479990887559901022576802198476680836909619237862863792019933702482836745589274140624931140831594867085889272683473328067426255532717031846474265123435599682738974098497187444010658529912531141495647870723250218561006613819739685395556141106871848809676631932151895810893360889637015965883172450693071635015029323476572869356144804300708057804752858272630153843888837487523843730690994172033004756947601147180832884914320332560992985088339624423162903437248602750809064939091903981934548453081109821421490648885918737789770080227062390964127278353750017123712773982980823245948963971950471582341218313212746050898848191496083302387571535699611158352144625581697926478560048563375212509424794783156558584218086750477255669068131853479165751395983607492932368779913216101430310154349592144955638571274009423900907620358188994426865081766550157453583919397815201811313874578668416913162785660266528011278275149822281511071267400848611768760779874575184655007796274141234505160191943134996959449792816682541512751654076126316964217222552636486157383059845648895092246137430424028986921690629947139331059144993557355811561300767300452939208139608967443606015333462088230303625243637857019134573605905949032766202401576537979228136818655342226724517373838464587345163835035266208803341525009394455951871414984399651862110136580174253604341048016445527256724370170899555297778406568321531085793494088160562905353688864496505391645556737889692440559860745862596744784106900097891324692115082007074683034769770938385859294582231522732217492313682607100077943785181650687355952198387194403532592076774684326073612181223868390108273751198651796729264025877774679346326827312861393412814218577867127527146048301909626897245264472109349142143378465904324999098600692969950965537505806612167541608061913687945062527261882742853481891327017358407750716011093734417992706094994348043023269534136008554791513779922258272282392551608538879879963609159839742455809829153964943731049985488576089129908270655366648537723647657249040944065864914800564385212699922557282806310108054415491958718083841668441760781951699238792091649547373785336583305774369123443758907077274333806016884408406869387129445712417655083567545117994468057878156433440020431970934036288842106046882865996033999434146244123616800507365414897842652098330914095931973687680574969634500302972948235874574436084696260732374965886888143041243949687992280922032295256275689229985485763869719082499435835438726769537354405906716725128145871633779599763977605620395569870536397003567695140467085041073208748698066811144916309776172333185353528873646906155479335657929491067165750380533074722631811075814946339078253726112329770545815223314572808812323658881722224992067412905007716883446038325107319744498469439979190888486552549339650738835040447463563936788818381859443705374903645456146959126515864350749575520407735056665331363319071109807464917524364831135640851711325251567757319678300135607277523142788784658258357593253959676350835332136899495055655574981894243277114764457072779189438532747930106157162139461869172634440108573121758765732454224589256830342883004962559961042321249888344036905331289279302112652737053731938975066504688518656059033452049920283130737318112879762731812337181486588351260486100311105415171374807925503637354894642981261634920787160650869943657489436882982704279666098919209569725490772752769178752287321422219949414594923562003634874990076146297139534790116167901996151592405322142801478335093672957928934238807121315972826116210053711140841393464267211095748375372326281457439837432377176877463145871270784868276161496442203345372048312536928942580208445778498394620162110560888837433339657059425049447259510238994953911222831005551443730806986103391927548331280470508022186021018791005905157427120797148739788862901472781201160478895475879345095811924003686097693785639393245839416001189331384452587877046721670391881341880911807255546178864914817224522038294140607481833078872412036860860408483655277053829659801995707832480908133362449751653398550958116137736506234325889484320801662184625698366011694781825244086896703517240231636400118451041064479842714888362551869131048014351095817672858329967167593696360655308294346931374482325670514481712627638330427175197068336240976814366865953850761467299724446041620593859608055470867357259340553917201481488305331582224002429367453451756732736235369231377846593608277089238127395207557100957151065522575925232877095331364967590784841482431921745059852590141644081968897400533497518048945381463319257571535792096605414103951602962309085418422027873892979464809826112689241231759632632695524962798021077278791750579315000126195005184348616621674933749099752582992226381755290977796364160831566187244475642489988146776063274686941254593542355138479173995981882680974508642670174727819130657982394425047283545545513072251214746904299403966416559887835789195793917670422453314255419442157328105251878431130740670084103646551579962584225249160240542015269903515646212206813921264695886638963756426900379428739214396444748986792107019170143308519720012880715958283934367492611010322548288526336203508667893403673981242812044944090462553951391465441348962273805726617111808617548862235211311432463636116009363154251736833843863217609933344422762227316424803506706394397080158846694785831525042270634852386603904155401342891035444997826032722489142664717116278414780512809080830742136893282888177551968407999910072133753815115605607576816082705964230661935601559841888667591913407054075053267374287701727039039846758893437219538147156139985819377001456229667903432571197267538682960856001153891397992706494159883054820628676819101219388000164174847866317154107182160363628973064826771298717545681405278091418461423002633667933746920785392515327089160481301284647781798127054113885124581759526189319747668433319053606953980015146000765983477746698529801448261087466237735387623994679866560007334580483004996179199812456696947698129617172433316486206437324683345077881191877976359564533669096537952735334484704664486749361156751884492602877452208768371030818658346333997716549205380276395232685866893545981720079319145097194921816287624397593977337701113916816410002289771165866175535329827561480198084024379135096988808591235345917720719401987383687212664697120110474500347308932874234980935429005543103922753181201614394508570661182893015635063162434792334245887795219696684263876808195227229999252997931026493965328676327463069946441464525675087368219077378902065672941995318130394477891975825085854914070890593371682843463525919216315822155795793166305017884335321889820404503523581075819303969141874014378544760974959690856698722008583297524785367428937333672165276217150139799207847181658191840051212250978657287842316218682349012885597109416547342292140698728278575430580367622053319288487652075594105268209971060041271811882964308343577657195595449232242384117197444745630693465488091833067991958304000349615016323773486716292019555730035630976569726272294367478914963501383232477256564498581516495095856062649017560394337909423715141872244406755069709443816552871189024412037415402260353602980087309448328398241919340444429137003383137023415932528551740612653984937087238032591438815041931887486379093202833322249234179672253088606781605054543524321983633294534316606687387504515777771282188031230434222359757944126285645511586961777422960972646805252718165571085998932650531106779952516138498968263866278756643199070261699803097379762912963193245131673551203146056504266204603616784735787983149542864535227454283505645615517174893144108057448300072657567054585827169320714897737245504081013972204805740546500901806560662084215110548119562227333310794601964981816140604060880414406092173230992662556399659587253132883579492247700489486882002020817921765208549185806715626840858929814000019546897985458422494598835361297867043444176531338430010441925555128872479820557078411970695587788090644224494243057940868930521552890384006499688592859429391023053537876641143091411789105868011235074531542947370749064462659924011838564347068165310206254349937715846065701019685880677940161023207633590155879906680351454680067518235950355282430542866897127090240127894784750021709278145322692550650312839725416585672860570409039823372053821099759530192676968907470583126516013837114394775220268370891807710882152097855277446158146623948448873408763284939304439951456632591718093345460770819469448745644654389145372363603543650438243299786983495884159455809156057155618091539061315779596557460389399162710546597796624095143106501121098156423787024554560105496763052543035580403834177601329595187726515330026512172579179629032137086108127046397388207938744743274816402516601739257633626183783988651155135247692845256438935794359003418189345641519712080543882321229670436871613852641668551886897032880583493821257797850670913892184547170816559165530834628602850740757083677726239554142717129670340456792266838123421719867422733262506786341661542848868531514048590611830620509576708006831816827147970470965127877752805907193800707243730439045673805017779570998287585667680139680540955054311389414470421453410012865191074139930637758057589085470974600554292905222299719078746937150378781869288004155137561834212876463792385277308018659858770296861017615221233835956659960554305847112246932666305459075015608426530974706347760979194765247541808303840564213499990553868117559532846266608399947584731881838876719314185396934097798791305781082062582239706380274007073649497447815524416167653207306370019599484040702873955428394032246187422942873292421380228788306637456781408403427408198460030559608480811916731696449472393072604206522772690689045271766503164857206516682291994920689834510305606826177040936656102993890406133644317363944780532723782486657582528918837972066014945645470342978704840136801053437199434609075651347377050295654404579823236505323347473049633451486812923068165399631209504954237238237131789594282727639277937518852421752736656373261256966564950147620868515333638971166183958869578124136189175320861048831487018953957366178345158740815464173750727658443551103646394872602596699544314988620720766267829329709803848174108082125509388471326782894613331039297686002509490997505348739289603040673989088739145597660041022355191171662367506551521732809451572749210589894034828015282503739213093803616533657321355617712143025898829312262667665123892439040778537674461789106212789884582135492797159786557134679163775607652828839895113852426399923198863515276273374743013675216470427822700072124619688803374803515446245567236508083800814579997317862763093610982624642092873880888493424527332188429163590723575156046046923726478701719639844888038492668494076534227015850897165507033144872196949800944522148957678103517489091115097753368146321275686593748463502879524009673898950630782475078658377204797999844323937977943824701052855617742066811781187181322261655864678706914963834036799716917376236403523696247476339382472845493396844910180411311610113887190437814659477889059085591608437910176392031454752207041147795310733223362947576130009315353356058531915500371833904487537819802666402855350897261420004046793407650539541604473532884194982621734117463995888818252202837766273455062989084244031802157620995974336004820754893739532285267234599831872129144869281400618305670289397213488851879015173441878780711456917359546758031558091804114200124076638606470789358138437927013386810041810846306509527404515333130046984947408545011648839058418211578446515285664425264095551873988991526186329280363078985721349743765595479882831784453899937850615939979497268820183889617044253478847663933939745533898774599933551671403242720108895882827014310884720446319395131500635035699084007909687661344721667050945794946565241846224091466486814625053029904814393334148061062138788900176777532187236189445823521289379670462286776235201144962083698346341419971557832494842954297005019236329143798325618141204614482257684912541672812372688014566485501369886139500404518411658601014613479405339047157110991481841653525064835806773949760433975383829288024566941813020231939927585942656091274039357100740198819674511798462003073238620670729227483709585418133406590192978745225900272092397106832329345313265236253178879888357593347560952055490391422997464071337266591256022174015863102968294792335491279122307448885139694644059697247105973863320635139815559880601543428188732789963163806255369189140183221814474363054211503833474768551550444804797517787995167478948081953978011228917962012920989465900572839595914757595100387567002422716011503441383936977207972011524493607258510297452942194792793923163527309927953457137809716778236019060669510798179394465203668984576891268906410740895280794303217460212810657991235035669030715806792847090669329533920871073011291676805404472623667066920868985431953175547418455571144197015424316983747525977857033832875598894060487727107177232534553342988577463522254117564568706741447971564165999359832943796230545301629210097874110019301443595440428007715849987801972315272305788231188978968471111797343553711696844304608454191326755095937890882819577587511625944569350467458674158344346509559990310399286203311474955516531285930324473017636920643742664014073361403056900546872865777939717138499014144274541222227038109817915572619215114831970983744594878669089851267766306371713993710404334702999957036040280002100406645246519168519167030621718122637681922547285048053572353863029045075770030614372868437828915180248781119889614301537371124401905732687941253364047404480272862200798883807966953856656711385858476235716425541201957356990645575531743408107735611398937003672948789480731608487948047317575934737097461172979260197083723843668029598417527285783335626003818353709686665681051574473464532634072884254215794310088928117810119337693125762729772185447985284532029621237149753630652334283268217920257312635041136390366885421487667087488415737975547141109083530303778750554740862856268649695179231284450595202896259108673071886031614276012922758563276036212889846088278082215421666078417781097679675927649376452687152091373440374285812999883841605591516901197794350797504671213755576457215096341862416539269060505194847627729369578437926867590335053719746843071114839928792497445157929554042097195619234151273977871578894792205079987144339525289581652221414438865403125163395717961005169112691858611546689105400163831704436175711033873704687573531482906938889802745319806367766528883475013173264192966001517428396410909901598748208290618643425358086684466498665603456318211321419675653503625724991398959778110223695449941410817516576608152092255632238956371935285101544981745224007895294972844155233306003421467323914390074166294872389590482834381066666723808136831134078550796316626329567258690644735089729969086375146073303128227415518592176923162691665444215280884936501993769910918715888820784018167826887285192114773629818064659580806050803894613401494221036864662093144774644037175704867592549079394438496615594995550282102603791904159646571927538877461181652217172886647811178353761871172219647444085143892977930255874192144175815376564578795917164785269630630098349624462371923908911426158613754027306563232139509921978460401728595154431980445335290318119058988539356824741455924002670092355715952684433813422053209403605029622291545161366964833142612374887479727491193248867274885509718254243692940310624262467037069612500249443594246324709687032979856811318548073860966258304736916222271810531108827570409132935866679641973308753047507662041354785224473077471461515439413704341551246974571956924064704178928847611854554062700558785115775489963930971861295860319977903336965489372043946926251508601074083338012190424563616836177215161980642227544173757496488436657514447467407186759083014934915505831605048806651997629310694623604338110971482725083856562570186403952595973711712551348737221504292673755672752963276346291365996490328396538866170770084074557692216092028573467241878886371655804461808775313980005705140448331054114461999934765035952901411585717369205539887828596638070073712252092143140463528795976523979061280686878766132920431931071009330898304422853169458488529218970597363856818724825935900295152557012807865168119864249053557353721166091680566059680780354574171753284093062778036665162412483112701317155620938547881542683851132718286702729283660060232097083776727356807652446234545935669248231687549293860199198759375204394663924573602801068134641693433611721470599321064154731542569661449450147296027826814739291129905413967239742781996738657566549173121257164563611776013775769740068472683487446408307681098427991003064067099597468052857499137385010745608102774188015437057434611998920983825104075580931363335114266609737725272902194790123002770882202532233006700521775188566681808038150087915820992273030490003119342481574640871728719742039175403486766174254831964130800546654318973507011411781821477549179011147040679770851870624932720529724138769889771651661267067774760365357557930465013498693416964230149749801656401097720918205296725127947234731519258272897373772774946353859311163302168005237285852353528117960267622513704318028858306018032966916239084934444807510081708924767457657311894052700081463859807118365221605982838053454044215495177532609417107220463558450873910217089718221409361137914926326393335729202993700971292499907860899771187961997017170276799230496898944365978577717651665437636966863894936840307561726158942598303837666675317625119439111187069026322574223485654488694399694319201467782506244252256495627422378727991317205623958672308649935662202221046794623729355482901891429607362895110375147753520299334954658575143471364618936117817550266151278287058374709137221942281777023070505031858812001403597410630953165604227040472635712606054317646737449829293110357565716721149065552155039610748191844386436622875400721112852105118844723850127638596883935415607949994531299457510622247039716913984957961176800057009194133216965914156855445522926729073934600965249346446526350203573532676348814729209824703182222751221992024902586268203939793240618528279048451867136585079357331249377566992468715189413079777175210108602767666280382050502162481241289028009735300496879689085271625487927360316966277183555061123622938630684345991651573735048572766589169499607357437166416386540490291209930465333318643452801024086176604476162240389727192176576383799625983085917678025953882191505271042682663246376611774335960195637029443952179671518836196827729506857199034445833013046490088835229615913803455790783258803781109476059784024006428131974280879357088888123954028614469536376926707133095983249995162979182481726003779956411428164792118603761829394089426169026417937135781280335804218041621792561060670386789228705005180929784188185142549484491079969278186639561190976789310474400530206046313375257664635366293247105269190458445199749420574233069232025880982945369509712364671101902763452611875325733955376173096728576250576588557621997636766255335347797524800278781966362858425855601368792768213786038335900096857740390101204824575904297594953350532740490193963256354671057290069051320141266327404161066934476593884331093584392695470245475975887215483064540009663702967093151129996840021403862210061733965964435389133990401795661464706804341701562256832339833384063405249311241195804439106314029960742242895522054402123903715469135477562586960744752712299347065617728777480525353107199225107234448272672277814505481244180163927057073075105451288071826297254893160509626254834992594399570269304393743181571229563413411272652840752590982108959067123003135892944404026750712457319475653485798216183764284496331460101530855677286836196805080220128628254819978238670652377808632723367382011435625255291151058044282410707351332790578435718013131702697732153825285362790424904495987700196507536525860660862568911995312768328201976451399737674392958230826103686035512710498703500683991539727326139684861469800561311181331102247413345571621224313125548150914441786701419620050318792764273888808982944853899585154322405523383219291891576439995001587791122369076892658315219534245128308087606181185730037758395246172482414148392489511369565822274544758058368169684958423586021387737265837609146922962722093307590070362291680236540446354954969768585796099547499971062273646060560985117533289786105988177972690601255834293415874814539470618452165285577696842546603964058431173590780280658728690240393750430377600555711680577856694277065230753980340602581085243730257032822211434826082855684610149214475718790009625995851061735195921252571000349551822528488850076966852085365376068876495210428942432072074703510753923719256143533083803059483797403945685962840127274334059526974673010752737399660266150603642582952005927084809531651609275134255342680553880604784233885551418003987964585608582048876192509535084360333696156647143040808935570931245636581762090845561336126096171919792891798485328915124053664329478237523340043539076663650124435575074644437478595884750272964723125600503102014758081825280909063330778047864161372222478783467869144020144584707315793091887043090320127135382713591335996144325293144460543355738071417628277269591590214739108756509919045706845375749750291838492299658032738328247950431308326899161831655112143057890772390241180639400221136580199528339762647918765623607396112071333875807909140733993872109262030727412066443186853343633443311283852482521981385783731262038962004331052560708155853128193579359794477288243990356920024215525817946651163876475602175186317644681269584782048939165750160380766827489392644896313965279932565171768897220985735902682989170311720449266148641358035029203948587820540553943429982244164809558035568885540662822855059827034490024720249247300921655708273677206075754592763412760947776387180364008557023595287904650272482682801475262327596038033459326016061820544240956658702978620899090495093793376118507017637853976417944129358268443720966819152183767200749040161023435723490941298253979476482175705003032677022580701345737456597275093694853377186672040653435410480409220709896583227418696483525287929764879759708367773632342443937146050464924190682357486041513058401506786518022872338601560643885907698336359844368755979889699698495720845960241076056422353883705881637638821343292155649982867795681795259151205233503482216810049527025704665917776310821584553803884644647895826223357219725514683772736833282872536510110704907848292440230372259446959532890461379267016538547597566186649036145753263051482333047923657143225586379492112780473683192695871015958961763324972955006850273660719592045622669277804664342223975398897541349837028140744355955556381959570095315659305300547751469376391941332616926864317329522539183454461988221607555025096019928619653198565647685777046241903509042471723953484279519543225328081664710225881974979310670594529978964024339011918076883913611075824767081922851393504290230292014312993564071378262994605046024532767393858767493376814154172528255481679714466085942725522685968061845488929410738513451868187781344168853999005623078449503278151296458718797944565244723410244880118037566742635226727038982646566876302403438953221919297395876144103229374403108432270845229524099878653641318407843512279215867095060660234415655955483210940965938215892693708839480380414914813890666534115303679246233061183824779829469441359706644746534833935509866506483221616806407025513388776571109493538609300658839029037413132642565697096880856115803548581850910173623354287980118112515526823176969122269561400758240215487260575486315427776135437426846437410241871042298220915673662700736601481740271407553475206944695821518948143478607116827386060682797019595709947052079378052343042353413200006267848138880673591264730647399093979025781512237663033034337429581582583097525495973488614065874100609194634710067272124937412581835786490580835828316099423800410474509357189325123380836103679540925076842407385607897939021812094245366560458184631435078719641705062912471328347726035173181951172823125032031146172633062675272000279246732645230153221073466251616536648572344034307011581920289314021647046135512450680899277616874254600956375410599709923683579367448237616786959350455150754468324839113837781665593500189174454045613654689591049875445912627564667851671994695557481271966661310243352915370389424370885897614859559342452137915457740603113792798714371492342880707972697842025736029556592250392680438808321940676369319836281677223806356271205743701947146438389419019833945743261309985178407184658533573846545408898319072597100144488388562824589195699010088979912418784076219820999376687820631509994010451936935396927550958728790645043115372501587998895089999467546259259031099711643462807668454569074385901304127575730097644622093951662846473614547557284243430363666758733026653360362535904008944988243655057910692722042515435226779566024488626941205608355402992587439532632469279440742414395058920938292662487524147506107269065781949288049857994813987576466551944526599596621853224286289273121718329487439029171910967482962481499182765289567473149917765215545181794578728385746788012192104697655452134269871591596023835512572183143318112664734680621563588254181079443963679347499966609952809256152348322941618565767274550309039165486402864856791047098312624724284885601867856216861910896644507943549649696153070967390560331022027543661719441285903354808510776780822671316308137277421595725731876310440873056737989464599222750630108473040090641164204394133670080080476111232214928524038087067272037796433285310939680662094954903522635355017126917171004853465870108642175293276840849662155452749639799751945312470483918018527250830775943742130056594409183318195891231736581899808571899750226867387770442130636961075767963015692956733642091469187943941262110140173044246166150994640420176012277851916557762858633305038609059029342403537431165663135533187976572674560665759379079565279506092325149147257005952680046336782857423060039019022389922002996173042675719584322481156257509314348189851292680809090312591896188114179828520866629343376918444107987449755545019660611888392675589665310832552461941972732472419402311926704185644102278292400455627744101901410059147148057198733804659244006698627407559691983371718646817591900102777182210033501546507727110693557872631136457594626047247585666735794675357492003733434231360016929309150370715302384247174981232722437799560308985122651540307445924707705349616532349834814411372073390217516927886302156214443629139536118582172845406046215477276029843724311184083929055000383364150000769113093387424987516615491145527641235599622077339393278870616328870527661760531601652894047054587317402360688568009235939716220254378501368803773273344243042909954118552727475248650278186115376922390337035127697862947976475194986342470517296220093364612736146852245528296044052567132668133578181108298078907142981041875623408194329124329092601641772140831710506807558978079092295640659696254701367972321741620551128572760095655633471540170361310284455373350818390516000379041341116725742786557214981965364837877291541558204530920509789885401836187957577191458498369839629531629089155396111841838375452774757776041261313267410904636672728014706707652997086768433868081483057775375519313142793541108227882749166857053962547273148111351141345660836642620210176380276785941658150764451414969932028531564744463320261202223211633588094204905567035471026155905834123228762705384993873626603293684625587793171253136941494740906709699812373498032402459382507767717298196082517848500876458095366732035873042225386460982434815291618461743699952010137852785234546317475464476375606342165362854459897407313863565610585560920992109772373620659717424319450783916482359955204057227333653793459437758360262503931549570376034232162560863103618777455462595928679795405964196799304947857904975451905269837192325107255427147810628987167851899398281193143622607032582850604982229612430060562210381403886905835092494755809260411795497705114423393952744592157455269438267012829776656682924858275535791038810282572172048565883751964294646814724528516975862434313121972394409774776726969391260136038105052952624072236105699172195093220078603583927833632965571114596192430456210523502351974162357295904803150784875059038590058537542074415730115034033033523643771303777409459873689335632889303391342668752652473704428047682490775916129220081076418552398784789813939607391644063491185581977084383208185281181368072100207261327478268667570323209280420863074956696754824177073016135107312729481818022050019876394758397174513589849675985090861685472631354971076560435041188627388760926160381275067463410457944150939786530702348320587741694735226355504613207097121110344045975691767730835115881503208393990307526401364118686870195181523339048402301142972114551377355794650078273485101015960667750374834778153733525046140320864384543970800970647770825238974246175098755311912961345679408596222551618036047025802481298958246407852125794945903329594901734243862286028899398435698802423552896052238702714911460585265475810525786792826647558807825901358626070149448697498590324564754613541723500983146773147797154117922802144947754940290860803895281901473219190800547171696179489869049241009693335753454918067515755678556832756221820451988188328605508462268458483325829871647843388572436340906084779975896653360133995303024563297838225348809382495420415417808377217601713308560267440336569078113363331424774593931024191586596286658354444837428550998452500722218977784265786817367963038483221512343230340386877124599593844247476613810161699853897229979326364292131745227925049963730060382763851935881828699584572351265943002001718380173674552645671118445121372639396519837401228492274016874686927241241153882028683178792512841819341857008347540311156947864553447054759058722464221493562799826219597511132610970374275089362871122933822352131536618569402647424621450739322100793144196717779512032144854231334675858330834341409158361661627415710444416989246953747512712788574464834295748997392779043458014716826923216876480472995004204470572264767218948222223382802482408389206079235139841731828150991716527363359501705921892175436722832492374712329474196210015770959579193837690769041380402170065349177259925557600830617471317584839480201583249090849120678321808098555254124433417490533266697458396198221451902259569130321372813006696082691997419691679617667742031183129039910481115879608907301989492222674891727309300245318853988401778520906882214478401236265161562539013198743378035179534400020802308406872731327253074536254610139639227217027345072409909095334716715735294280409216754529287928295267522030024734603272551451782811035896667498127971645343131498558835466320895696550958729901469180501829509656045114319204963138847303860929902142337646443835163492426737068464107116037173239504415484111101505121398968008780640525132695150149951302658027442754193263711712706197610813716242036913332242346144142301601061116672392520829732875513442726652616542526613187411674524803632860489664928987336716106798439866269964317470456296718261208549609094940602195326645705571410760881479150337586674344702766129339609893008184714467932739992163943005270733953180267684013680117590318266843286901259799135524060630826909332211560903338319111988941611339784407293310455012259216664155213888350790092446501913549428872832733836320877798068691651201398129282819824557842664217467404786267732095245025270535874036972298225255840529181026227982453316355211751963212018640066713510356936306418676303591187518391334417820066821876793300449282435772457701277938069228680454257532259845991841407912300432078041717606388064091610703249240374623419929117184536227875344115022578729110226147142077026956989710444763743636568039554024011495192604057102979553769199354949852052695167687018875849847665956571320132780923147454545498184008823377478622534592106553111723722340213922339645296344212755850561280110562439360586894571846508627699080028638430183603809093864372666582490084845290655865851609117412823869617309143602974842911246911301368617804465661308771475209966347129809123613208463401561035464671710497004011105603012118748659219785503650397519798011698973418807919940581103859212846266979160528618370546500320582064612215860905273679259709289641134732174382337960823046289986498876214406585358999456779124539221832622114844119336187984660108195670132488627147481034876081432411542491863310101592046794261942078408572192518659566698846165718037696140731841831761690273833790679474434730083921101612194572264385758194405094063088826174901556918356608749630112386503563005442235587905294373994216833496821922024988820305954334820784891393784286483726242939966253278511333805461973167788503732843034643297365318173588484246289794632847116668676845842600777154000548271456267016469745966168159024541483428687270941473138084764322012589356341954843320865958326739793746949747543792487726999443559157924232959525402789387102338576218507345447440017960069565507419705137381169948130839484276753885329150917346843651660501849835782097133815560986487806444461279886726356976317832792128790175431561888367184839238458821093183763546132671849818709477002624168826215096597312723993470408584040259808439482629857271922438519945328015035376925876799835043361995282628272202803585392532935579132942991432224679405069309344276866080964429279164458009042459684980004322546690757632648513384605138025643550619878517557768546660168148389118176065472513665482675186981242712322508242867638706496671140260844120879476032853530184750271043065514198491420029084801751132973229357924230516348187311720698890623078394740471835054981296746112729220542076884649276473965456597788204557146280899499856257515779239542398732100239242690593047665723413296420018706338431180429081292257456237204750239594092928733477569172581249483144343531966048153348386793569466956628127374611276697721407007155385668408874704902996466098915635117253449583356938536307600514421826912976892032243981514933728938211884608105012344968679254079601661153314854246203762001883308670079637340421057396194457707401274864821778416116631935735954640380715599026106893817431090117405716828831613806620938993533453202607843075334617995356973027279869109187373516441938304331295618861127632767107234881362038262414009068788935068451148465109895552419197611362812521355096375109316029235641053962315573673066378505952607586027563688643203402030679447298984435619578907185159577506109353769965170302560523982038479540804207395665835702398850171541603158889752468124208538110587350426035333377571422953292607342279347991549335147784807599848836176214828761691243077457118855981874778964506581272849126340510018388577305046892270086961368440213378880195786195821714301812129090204773882719955252333338954789095656416708573257695779489847818740084889458377511538865811059580050989540618290727343166014159936086265286887611239309013268929851017464723387383078528454971779389324884001152748794337097006774186721418093845884610603619174411005891507292012750281791548718333467739915799594684119522635298369670016366882383336282264909458313118424411816275275348976487673888602984511337970827068115290826205910774778874410354161223145888974724579216400736005343740902117976164173267817147678161683368827536220398609783128805827313853827351832658685142216901236494467498208782174916485745773947705498576347039005768980058361131641553687861352014712912443450678736440274157361089666158399080102351448055626803684312048544989338780020744091940888983656792679778537424851908849587442508660281322436594764171372356214927398532719330569849020444664154296263214768678247594399718770717531966379539498922981344854450695070428174726831328453629417845070991938865483043776638626078178324696933653205879873633742601189604771615893389340303802931957814560647014289114999896888365264366924136590236994948146865704240336711568748436441609643294273133178934480765382782800601554916705290871954448093854505761975810196545017328641549616055607705069170846161854211712212412873551076157078302406957613379776262452611789672987810380486021702223523948464723014912303959524404200351998843986068682787843716729861636971909148237563458334666511683835126184487319704723554165151809059050400399989644081306234753680538989449190964452468746382781771808108171816003550694298839809277849519020551453827285405620278846018236757886867793725778670680381871718077167532024366453247623460165827449744321758557026573656216510202324910720256170680545437535252632255446066414780252062883538426151151600533625156345718397843714132669553498629281295338176907783199586619617606931319011326643161092906881903846901732923024373007339343378467888886869585347634030265481028820459105601453880213074233714026007338745068490800968374759858845829197015812718088030387057706484022802613479455652711694473745177669969586478631197252523793966099463640565303752256977408044237923447897640630158243159488211050830522390302187072888165235895002104285649747696629070082140981351988605558560406934768431449150743612239948462708814390901578476699188453202809632724733705649056735764934175105500333571506807627024629463340398048127179022376490990289587675842100989048247890067248990344269168799543113361494675373893221808000363865032286868439121793567998112224082813776452584049032705519575400441861555944718386866520487528714323495268981657211142217966255256028049420152043473640841285766012391598121232068712525385402413365033564596827258316459734126746889445590724923806847454069499515524843758813838176571202287545386933889679349110750808077787441700508540994885436294347983231052011716900072636565187263137162383207535960860080629397700898574831991195411290369366166275580116771232114617221113880678980693911900269224031515818651178825231992909323700980178202678788852572872518525054957714132515492756174089994282178710397275740793941118264281977745484480750514350106939512399653811712745617073176058052601072308139388195472809296497986967902432527712111716393775857928122045732151621615994559408566302896180797094297835979257035851630343763013778322199640762478553381861547491271124416315789823794156540502115693815922027765219166600316130278947002521406302676393303623817494579092614888068258307938037852506895851458360982473013375569288087227489040600353557088125345056889237795105329302987950350467934030439662718511955427061292532525587773276975885723571890473522128864458941454632012915176966471009693047068017461683370105397799741481959000755171748053428604339444715140554050174350246848475033192297393300388903817170049802602310463957619558351357860950098318189339125014641234467480846957518978268125248450210033261541046642074437290816287995396679986216733304391678308023325405621023813456372107920277300910084111391419495185352438758933213531385165463507158979450054898306609155593573502320896074839130232830813407414790902331789387211181675065853715099950846614261300821535954121512201923844950105861571503351937683092313227239746135803818042324623603290322610673045319061366655306891668877147959998583342499438917041066967668183169450626005272099888045162262667279412051979492108250442118511384113806876990159517521936449270560649413731030103482529731501997428904789763033029438831441295770401674781870306877503064083026290646267963266037903992295939616968842664467201935452171202067663269292862395669706854714459523481981767684421108375620187935873207371999538783454433141831314197544964068056856494683176921599360054002514138433290638281231172062509030428666852230761210416266370767854622505572496243340418451792894119825153770878159858966793348579164276238068020543110688274495558263196518241087908014802033344036787460038386681207740562604727832170196186812198058027337848752414604409465840357741666415998751722191231598581342363297269811202226790236722671969200220916450400602271127109306225254288712489865122253043644747688646738551898988348240193071130859456087946734378139017204220671957782508001699970706517220535780607042556774034255368361634854725539565570369890215160975900811864482304219183654273220183151697618398607057954806492878688112032707351565147840959218495266406382444904805609894912409414420147812231057540544064919290288395096144592468536984852839460073745774638920252375283280593108175910659680409552785306222019489115800252944150672081347396560420327041008299695719764075458825855191096014020715400082150791914136177746274909747438487542874500622310013080765933103854665406243631391436815254457858174436399473610304277611363611287214208400191179118993857214993941339744979396559232159033640977160125982910786511092239344477731591392555588114784982300185064211122584077281131258009546234181625905758516830379946435572374751429337946546782640263791121116317848782233369190869754458385993715322954180056358678601998766792658837749971798055274230070230128837020634583015935333742543887845705944550854839875417186648805761075544662361909882545648818883356669306321305772017088603657510761764660363146465788954561441012916045999145901615350589827181678171342330707097768249690518524359226387164046712894547163506389677897331651228978223708731383499980066809347058650322220698349781136347413573577496602079472025725343415063892539527898322413980308033044659597451587652269979239552262318134917023021811781146241129669108558092565705176309501364445089233435494698847521864546973009879653325378733840424533607884183509042613124859955047433070232982726564711549586539483794787606393111201349071987389195780716950009440468500579564553652489837789645309387072422018249498689475095144845341895044040335045195659396903289025522096833225843467248885777258322397906030153205644295001857907629169103217556526113525109480837067182726758987511051143243451489070067483773147271028564962892473649167681110364869297581001815158964523508899883672592817887940184950309680888411140767613869478474213445931002441180426055210151883055345348608493633376213172267956617876121781893228094272370944113064439556684943984350006382010127001736977265673901288192430866520671716267138801889770485324444398637640320135429217746027734737422437763007377753553889662025697036157050678146509925679221744922148250731663993401028425071201990518360511836286583442133740546427478317540751510132229100151473715632270784685845129479720569960161136089046378369913395061039730248593010068543118249536385622493791329097968503223484775968915125027078807748374807114786779538560386790752005581158239593258359670335819601286847420423650854488447712957663101084915562241312819934200077642808688178900950394756909678060543465044065307119783995809700507784170149662705491190559011868512096189062625786028933856360126219153374542649079517237970115628405971415789974133165475849972762584889692768108754469226712947313165169675433510904070060815591954095699635260930200916496661677019096680721071845706408913198030502906108574824110830408329543947809161797117786954870335111727833416985664583548036473289431516907111886275135019742958596639494983723134738854935788000590939942645824562989139087504399049720637154497603151327776190605354835023451697429126836717693331479146640474826102918175515518355880720704099156752253242906888898052590477022260723838575361631947977410181841479471321508193543117589035345853698645744639695206170592833498605117092155888490800392684144819241811554874442936851762701017071788316762268169441433426198627958508740335437317769521652323183319381976125134771548637378905710815895957129136196500626557276214598256337112045338056718303233821276623401954549088268862173180796904913549855984165891116453317407930422620554133499505138122594914290428204092540727762496383694263183506942088802435066845780351442653191701185252534491071162115772710198736301141276582678100319145765812833621910693128997762474414598356561825752932711835146073091828753236776227480311741010284054165137752671177813554563233000812381109052068792024770318479550596782453995716752003319476909097094417946760926070780353049334052502576744163160213856966633668964024592147778913651778996130355815584735670261269152983946205970146065176815615128810793867249567075037840721442331076331757966145689143670705451332690409619075488176943212641099533277580385760033624913476384739509143317600023293284885458477111345627520656746367070798107910520092270117970455406371174402387740909500268827943386944320842991124516820716454187890566039401551703941700945634542101685124166293226348508806297077918657710270049344040769184093449406003435683000852520495993036002191824801076499088028251969603388500799513998038710773537070695019784895060613383395023853852557976367874529884815114252535752486593850574393920559933749761479507351058712287672158639882789185855525753070886599597735930223817951523824222162929179127061958969709401032414751974730518120402999416008767343945990010540382788185530033166878301917377116398235634094804747583567277784291923455596704116021361388154736490916152562691980022088412495247884200360970722438349703540723168659572134762609187079615020913333448209123266709277786978309455927566576942040366767397328104778688688080147735707849114114320985843940257419995970476522995963261075814525981362348848777847593690638214394022901097562839477133792804920262634216416655439504172188932769761942304619418257580680681334053631200359371432785180866883281886990850806332996878760768493186460619345547759922635779281639497208235442673453812327503952901091537613189315817428199759045142270693165213479900163414993125830754796450074718889395402389495632318908915188229700923711241478230352059495308264488577757195727506068570421452559506995092348227827370076449824080725658707913663705993084116278586698863400474137787821189871126356668100659458461487774195903390190496469246212257217141568209867407236131613520562656836569402621833045568898749584561239533004229236781907136001507947971077288180518501160986001528622931374728384197984298832873981504521345536235212276251494801162115893553842418166997022427989291803068868415548404620914063456186384099128592211714941407928519588897068719846831804291623451290471975340423784818452811691338346047919628985651849886925670734682509910425783716987170230145935997363053487543519593595620379639975688335637889604381028324812515710988456306326994226045441624658405044699782878597231760864581251594938086746395754609417932271059753500714615573905963972841253767391853635606842281139954787511808898038714092800780146905233795491098579734410709165169898441074946238259561849434190057522161282629603823864432068420597246653449167585733273494359100135410895274961170876708226065682808403578041424091960926385789693428973271084745361876251915750845136961576832949203078095548137569593318399105810863866370640761826530181611949753974133107894059682478763175956922731025615198572871174656705378977610528060605554529394688627976150657968284854130940957953007772777656486357401058198030087692553526850174772951755845939848408676267440561366319717908685992526255513740309649440613217243187121419905337698177068523012352940117854662840340008103738828688744672482962585548457487875670273688873268693287556060714917114091122316718499359199774076404688320218358026432744893233285438454284644613336484720902435557193649711262644326347348984824100989341742354257987865542362700399300836338764700845189888374330185933239339149458488899637956138756753619543352916575178294424674424098114425599399319406751142005250140048414777959868237116485449557330858989681109948762060558436424800268720105687266176064783936704218253594857878736433178627926551678054762159752346678591367155725401161550203961240061710834085820909816369714699515296619716123090509216643120702253852085887455373264640637451735651891536864864894723864433326418628262671582603333449916149314134277286657846745622559577820391384791242356354186706619229950872141136962632201761295612959000165307934259281155839447048960007988120516118442885126759667203365191156911025376556566337936778641373157684483007257188350606800949568627395963493000856937309689088420549187133263496210950350418125410600815435330168765775106130456138146137460763495451144569053119950231601988400108831921141186970967004321339031484994627523672406547721878512642747629119190571708979370160167441347650342352122910026149186694926429076949426672029015211355880402038268312872971082815182432594961716491653534905793355595480680815846904467779935566488273567364143370318019229094229773085578256441026180104201642724616942245585087189874980786306673329326364308804276426388415650796344412063073407873350945694647983303933736069046775232819583937257988825266818395112606387355278054646648884591719742390002676852926156284883039941659339790169344395623234310912719303103935494208769124484049964546182632448117229160430299483485609850004503860848303889001965430159375776125082325595156882159902105771766171320409095031057009003630355350201132801858024714990301601067842761149529256060524589777416460599631210360991293737672899294594337868402170127147076080448788623438198218054283478315476152691325115738682207130630037315633710759890684574396139940360883745898685035497233215717373750253783053521591717482355030930600237760280724767298024658884423014990758646421858262239023504409221390234213855191512088902985551304348248212485094850566479343290454455842559821375600377348831778854342626937078998151793635583391825963479388598382787308682548674843267755054946336802761210256003816941538807098774702035806433248749064435586712486605781522239214202496630726029296715395105276852320229912503077369473718728515031479570868450994989561156381599895888454149913449059129825672015684260508422610858703350677897526049115329479544767777448057464662544415955357991721613682818069121385717956606049893377215815500474727651949391253259035052315297024992409874177567960261621389579113467690807190632668870440079708852466145035195743680228889124949945616079493645690293807312057718676705261016742806805990835981970400013040802799740944136601497688013260270801266413292850053523856115409926098765476223202609717141959575317281162009092922352789351632209105072860663448829581288900210204470831337032805985663143605903051198026948160824247991215524628726198114389798317772815056655944938884983218780177378559732682488376943589809001723667917841933771822185383633185038109521069315719721443639862698508076849504326039899189870472580277089033974247668722748582326615329726275630945130343601910537631096571146925615459863982645889702770829677329509195731911839644351793076443497211657910408386558932855224656294991443295720027656168997384064204313554898223954357122426889193289884858455647468933763872412693895383837232819512255828540938794686507160037720123064508366313614651434965756183185996248772825735247289196061056589198629414926589662694337724290561752069490061066175947887508483557005045502657983906424531338137102145372516904701047895006430107663615701165468092373047585492205401087896240921784795419944455131856513382910228732272780126832461247335491358602277569317180381805933227825733651360423319042411097588485480723429491145613580500461050955398371054833734833028079786450204382192102753130067129534996666722283361287942505243212733152475390171712569316661006064348732272081957081706346363018236806154385669125944369288076644605521111521074459767237728063847216174916722850146652448131208232747812455282053981387179065062078331500341079803664193021609858395462192893126827069560162983865282531077941281948161826287787896587714113645417368205730042261277144266725382070038885568443995582788656275881533373528176946123237813310264950658763355052391711830364989152048757009689072947117172558802073270555934755516994187231068478197293162810036608567064944687671231149262036602814766770245447454574427184727930988084459817177117921603830453599342815652724344058674642997276105934308031773401937925601011918267148324082070854220726681779767131200205259589652389181928372314206180854640368025035498161465605333658108654223184554590188638949734498436107025842668532860480512052339898210130132902531358267891350506060666996571853035179383940284150924836585439404963901225334912169394424944530700813774041197059853904153434269404445957046126926870166845403713041018349131804323872635447523143991997657689476529477782706528484663854450921823883616231712543518904762419309056775468757927771461319970813509313978924381193661056198775836577277506079202833801897839217718801935623998557748000887901158254928317249595956352266506299768449603915930446529491759139712418924916681975019221840959067562344115832545905698903374514930282691059357933103445907642406775308987407155662931761344304541870567662455384599796391427382117801079999663681422519295218982153872368486168850103669294428932213495088721161389328220999313360387404515865892875964068622751641827511875663815824962255496241295713676029276535941474514743935657945757380502909132844245354067537921947350098014468546594348781655915049402930556439859288060432691054922802113017841183758992188340868462916247944623856893824609553295745756990200256359432903594468261173785612033173617603246603747808718969168251165259193995091106020150856563581675736047713047866508073530733692905570583805218765757572589476130074127767419894519096743661695605993519881435942115240759601907243582403843934300861704166091434043282436300159334146169439123298606691884053822819970930717609567025597487268203286168672027810087475240061507986378711704941152904779907886695453799285007145189897034455399334566524274746248449327344959262197861032918266283656197166792568584890622967769187837294402368202547722024801710115028278316425378215321359792405905735395685401041818291183832672556545915691850276588561077622831107503593867133358539514359879882553157783239424302410472982327533766901601806782702069336338637315367048161840961170308658233645554801487503599867563049311151720219007681876995306270313318549137922043369600953154540360343929800584645583460531342651764484007993435708306704035343823025748985360893039918906079016741601265559978247568187964923979846338921011070025936134273526854351237652606177870675267880162945881433132561864360719349587262437028265811153732337068213626113706852154481017812885759988507561002671689765967664911910656461143470726262315882096754481651944298799607781334576806106552801914895853947749656795470090328074424756831725286624612792957510752175115119645666121959804472637492974224698905407802523422233694836254063607364144409329844374196171626088283613213069562625610706245618174545393483186980563596095217182214649961926815950494783585313436943860127352493358126551777534300089136040822429197349742221875436135738193074093423194614780253361668455937585167380485614668420952322133839606516105809141616980569120546229290126922751935854823208807956171643792292857099669885944589510201792358669599850103517896793056007849196947340250730078341737072951548176204099462749353764428013814224901593053909464361314555419065080727228851938674923905318482652663408962996519226321451212112362230343167099470475017609577888359055093381587963735711578594311015915131230247597868040293058349079748305511082417241615195111517952938417429815618304830761525224145989655607464789972843980802030068332995826604521238997640633523041452045561530732676367821535422785973640857514693226659199717035803205680014497315007538533023480324115011333348239185003648983668518753624248321528437627797355936813965748198871584997169094882549345434642454424785070612265021162295088791252879563047443747389421612399405050235166062992400696185276470294835016355645418647366338121177553647012604302510312679162448264000028254149615637254510834059745673914628221679790486510340260734363069879124189310707665355398810456448997072029502793833497357261938529464912538321022636802983262555434586913230075525800210563026061647883436504037966808352906686506170619496112096626462712949985468427444365601831141948425081565732375597764554944075532652586663527779327719994723712439532611110440727926949838605439807799473993999800286542328244885021520243730559079078907404471621566402268303552101778546460188928488930675804677349839351596307391673930153110894199699509649125821593484324459322651361727119549544945482884662082297927764021658771448394048120846698801957337394032949172974181872189468377854596586530161957893494162493597919124707935469948017323475865154462831145150985550601358133593845122841309569149120711430739437855898035066415756923810735936578291652744412049567640244090915620218904747494563494137145980585915366644814542639783436737686825681272674734060607713412937900778917550111274466406463996417703064492670433050488474350416296668836284156721529489698750812735261429039683190970563782168112798154449923803495193476882006046046951055359268619067612814704527143516536958319515663848481883052061749329288545289276364929844345799341439649771371629036781061998953080610789581016935517556073612880939201864505411603442695423484015782200711688338676986878657550182679227885324519704140335377716432483637164875101626712462536471478282212390548417898124859798517169652974819637697835049580938002826727922879308101966596084580485124916870032638064760412377937731017405635092794926479572667161757202968407893765915120997731623972654446188541904418323410175281012288370469749075926706647599510228021609577202761797693692212922659951256792541721854050205937760554786045486743375737604418464781825892043873568260177378432169425714233268473533309972825460096928808674683234055384183659176511974192096557965376789808124193566780797793621249589551520953160213775060778463492197410628313136600904930316064821320044537038477922836378669681496303562571081499734478587285857499849396095175581793691615948900806050380022918629606754526932489877331957351049813331398860345691442772271348106705591041318621890229784806480381890030631919249647170311540103307388646665759602602756475600677445272273722007030474649087176158116743794502239033298281015626974576812006654208888326096793943715646228630560915647685776336987561378716206931510823734607795523745152975725763998920758366858024618330695790653242830792553551380226352578053917023252948048499547276912889258791004574080487728600952058716199736303901709841060880085764210239463985198856820592656077614158270620952411500439132469039737227250606653346496595528038526531724437356633199307147526992280385530882920882374675654141987141305259757481533284735313035086476855818661381640854410221770183887949048225457639491912291020321735867344260788009045617221260173174086012032967704340236113499921307679024036018741798135879256549400170382541530429944743498810693971557510260293944024926617779533995532414757711903445945030049230398043610842803745043854318550080689526976438756790033015749157820348170260918938091086919257768769510267815422196834737532931543872478713199274359910056809853065551469466826751920265967562667890116466736778690888296211922761180694185659187027999451286502359024380470284970069387378269188604003095543920052035321504388217840928540109028150647517708293705046827113539391114929739278472217894985846922866521970130469676643873176906838779984858929338070018674349375508011421738535765849970220584729092555787770855140971971804820136934145767253446739115586715954964263615808112191063673042729955520744744638635539030061996774304602856484410039118038726150899110767205222564774634404993233735693921504061743602569543954935222921378021761731603436691041978156067199775475590150487154333726232398910427338724329637774002628606133159744488456609913050373607873696496949967037010050066835395838629789749209253420293245332969111855418511977567230760690767924925268931353362499256034470481532408974210072189218303031536138838935592417739564345869371990537864999990023743829848629522753998293065240099887062981220200329588329873214616582378286179466282565834251457934045158744311875191152475834677609048500939082405707904550158180837622217498817868574032378852780044705981459702708365179718819560649917877355480984072142403494904233764829945881531495728990313739191354218823966376689534277557469839050641445967091270367755440716025921779447869189729032650869583944975065447934660686218384165666922399897842163372042039145989798127601597153486839939122360201205648376539595402474043334267802486744768289948657148885182552244926713216430828250621148440007629184379952088242844990957707355148251212525939719413449972857588900632552898198313805849369016959435106885599381912314680595215785766623952169541801513807698374936835110218167338691562121192179934029709244905996291007326598064648394369487318974021487872833951049987374571306534431326447727260520117822475959298129505156892978715811936678238860372548244321533882691185263516635138683469040048651335167923828806940228177128589244620811738446027419900508682116645160450185045107671466448540458351218220642800619839750600363056068543059445772182824070350308925623896393200903348852976852566718342790382518590244355750708109490897093598557792637754409127799127400940799310948638963406411254592242047236799754072479028727209579782030835413715629443384911071874858948405939707127038432366856976546545887105739231135055120165902128970260814185516170508977614679824799306267751188243890841989859813433976807142816018128850022039943019056121998236613143391540823754516963663233124415210288167452731204398198153971301407493210403171902574484136984004279747975736547164446761537558027214509996716416717073490116043016334846340233257360107578569358080116003913418525440964503729192891232678946643705668594682201698671025273945909736460719495018225267719076306754094020765888518904771307076324094014685761452816607121120010855386678002297914112806190251207408049531166371898659841028488050173417209834699362518049079113946769387926194300180672989843298140812374307786309540714104744092398434707675393429528256875625876942018628050761502866413549474091301754424493590324730130911258460893035883601074048479547982270886165712556013268943887955253213467531826529889736829982271135776351964574427197982449975648554359864366612513938774474060228387341671860552633582284941464878341399874116648557937004031779769742665373175580834893788974953911567093533909384982559131388802009633211035167727410606714097408680096275166742016952136700779943367973880431017091442771263686463765913143594474219914199430330946139453391123614032429181722917168012525229882235524230374461375203306707957248291558461586939622516546484297843023524980303218173089014354278679616026868921964665108053408392555514788060671602327150057252354264169553937231080004585279234529808427078667241594476916331602218040392145886856378315470468328586148464224631188010381282571061276734457056620755391887435172840639447224421195824743204106498773303860128432928887910410016118751144416160519056855916275039049233811939414991854252740600364235601458969568400593267628160435518167296701929572163740256017770160083227340091349241061726163201963221233978118332366480169580431180957565529960885106059015329093494449853299129475805275547848658110588241002250076811233358352292061151811491904447901873035439314064246257327914054331570542645421968710521962060449158182909044108245746939622110180777173170006104397344220514978806712386324978139226830116544977345435375171629368528555930980247347286721155409040921339429450621352656249972141291772134759416386869447817986097073566611142499540288979529584266385546171257269297028026814541579862693328479869542794342945943280297785855821209970384404562718917112350507506174828922870911610360018369175817213639269909717152785539282199300490947422907276401906776968701666895777367365502411079144205061483917608384795710200745617677762274673539790484468509872233196272830502561468301685070482662460569225745441177775752817556414677687307986005580793452491857582109712305709005575778450400410274384192228129724718577078481960467729320419621102793969711088986353582805249755934701931140146319821524504099635468782318071556036989521828493597619841598080816689300110642556124614644956512064263802863070068848568691540952589558167605927986945117133587199925431279864221812561018593220949078466887250637614630843174265297786317864803342944476194738436927276338704615887399802060040524846902378787891995482011180153954018177748527601899236059048886933709548892316805765493440423831095221776482094969861206329472239142874132876863727026042535108517017574468071116987025522076052221773485362339967368429236680326095746732992472635855405565734481964165922839097966303950726763577777425901495794395731411264146548573857072274689612475177787888761295945678998670938943925461057203595000102290245446852482528923177866907381792018586398303016115687393468353872046332698980410372899824116812572645168145341101622167634488918048838873257283172174195829850314697446614128633204760940264347006254739841702786904341720683729602594529959685286375162426424457420631169584653357245642593481910827095290996115059445840842149831357139277923119829429879473350636785063214211334832542566930162319634888055259024015032440907406387201655976984613175899413709174268230361959925734742267059576109708410030373446659024161361374887514195905141843391888617222499014894481755404199762488323935076803421199072829775545482103660409653350976052723006913798047203932291910729907164318944374930261248138059301223818500898214856548270790877300735113181772481969644880158177516279952693563655723521052764955177673097923209064379447499871020829236313041233608201547082404518750601096084057164603645172085501550395839995490131468819740033104419422131895355739329096093900704193214946344743134337331778937943703956428642310458944717996749951274704077430257807682197115199468367453133028423636433552286176007561466548665758940288075343266981810285548971154089288666211411619914632797845250598928077837723761021580544351914762723859891453693939020428784265940988384483299848899440010303890791766939946851860385065722714513900206462584005791989117894192560363671800503666211977920328853180868397591137122212990951800391381417561192986592280243985611271358668316541177609799909764634594426417737393695755813315712102632088733803014284004216741062172152580934327627344195582671819882842045512335062001917354120548588890515695911036591845282138227912758483393922731128151007899666094076938455265759636475377536926595070140917266723851622705543020191562267190152734372883589027838860299867856987375288972341725327770709744813574640230430117185237720415212750111403709344628622781508770351894961071477645872859977192668616908013426137560817674572346927785283369263453237453239696848097018100150953481191199380472797503965922846204639609387767502327735778460230127822288944262622005176734200844564097489263945441271326927741832328557745483889334791011100215735504710616102542074896148229879982775007431414658560982213491484039237502491957530374873534947825213776798259057513765036633935998455382929288381652743875498189878754214190281312590384026741569885155453639047280503883935440725590727062712742251787939750937441352301365616323443327886233560356494541497863803455145656166741963217191378384379563509367215553976082702052231935587538735035281803446331963601605983904202602857003353424184433060493146715559131858048498155827904784567534968531292759527570241081852693007109645220266167136147287994997037237662462429827316473876136215140749368984992951869814348913902502322762774809104495506160243211743250811174404042337525556642743917956423089448119785379851488733094728872920917435500376246088913092175332599030908196600691750498909948611184440755624293594690940636399840363800778430994074498170904257410249568895896516262738093674220610180103481274280475984669969032821035899666000489440786768889439899401593072600393100820553219089290972291440924480889010633327372558964481418383974071201532522922992070805088544291070805665150369717485304597345737056430498055484898367147811000681450640458244671374395206819658655422408861641859454690821441410933833304545561115207726690944771183077721488524434797215397488382057370747938380957843763735432168300255976299150880625128029140984657139954494594409691509204963691564369345427443206901711615497461783974041887480942440037592862496552830943852599218069508019761894779792376613965404889647554706225575967344866836513102197587919655263667889028856399671505162847739407397035998648431151949171492767167473120232701353570467629853503596683985308678038087802748088751986636321541059644533552387272126965835010992965516430112042491078984544815560188557425298588910415587362996969421616641808908623075335632924870669316534960037777353190967615735802928184380922445873612563542335978603762522581596507108229582750761885707105594985447208979947913997215793606131983551041574391793264129304014605509201024714743444969591101370611424214004389711115278317715928433810090836766760686342196636411055396085651831598960954926528313677215585504982972782531648757414746763293281328540272584852792216570397672807002043643413508404492945005499051838985632676374156150496970471178285735194153548277713366912329551814247476349961397145023884511120659391973500572432668764920812654750784252036637069140166179303542563686774040466283305185426509598372113167220015850586984330861866586617586458839236392187028751763865763761034477269592195168347510699560688398729131746486856278095133119301439847491229297231700807463596491140663892977105670971783124145586850520904490123869361799668491758427946938139266335685931562191303551721136697409526800345094368680414415917938164858190728026098149597054791285571274970271069631381846577227904224102980003171183814654385648188287565723220843234763184851257901997881601994011256712162999430214413699078322726326199070677406969348434565003026379628900169720086234681872083921210490161420023981215623680611478900124622050987985859390329820214545973176479737237487619313073971203796808253393865022268456258446978148525499402137676448380476327340645936669512251163187512497372977838202376880712085619323698944349067530908959902370831666139795919697440710087218954014873457498528542822589395845588669679823094704351344966322266804700872712806329341040239994442926571892396949368675793245457583680329207792139486686848132870978086362446632047524610984358950844644647658503131880159221526388990692897777598893936844662336793872557811230598867196178492689842732079547026061848446601581303776666747218406197762253346446513189308290654927137814982712901117350882195338154751359019433772305183934583941043064881294787929765225534952474043417293166110571960138688844065863885404581359969627023591160630371053375178405784128145224938877766190885707983815352331447232979212124218250669868307533538478864402717284538089202915369632483232766234121055561434583692833732191756448664082532352900871012769113386173725543511322587044516418670296574898022536798149387424928468178934050446095381051303300599144943715303437849218138949633209223596811473657801932073404737383813417769108278266839385072641282479014074925166128995753435561611161185083550368028677368047148090797710693143762253485826276886088027448872268380125321387304606506835107399022653065841128310193071023301911189723083103547101303661909560664040600526987087974718969988963181995580465698228302811467308963322113439888897553418860574351631243438641332411586535478533462803883512505697444043996915742665590483211270411112812374734414091214201013580403126102013781838915145157923195796990424103761358266933080228983335317652005542860161399564994292293834834843251523253026224983365674868175469996475053771708910460205000391002496402303024736129532761057981474487397480428617931524837975556720948458071523390119827225883582980404688517477363852665808254782948099430698310422155890852973083122384991625662274188120903859697236530496826133121894476717028762166204884234005542842095731249866874589384672227177816580243748159220068482081043639621372562889415008520065338433385118950048143353644305945506492112079477795427381982793769513079208110629898447556197878251024121590505393144049626749126598147440606102857232069074590143498744218665315951235645563537625016544714361769472687610931034088072523601617202156403488736983381861780116181108997855231763900556258061177738250160514163548356297084891444948507776940203983154453573790942290283422028394510503606742504162893628219414179457597497464321129842800100615913669637565474259106003821445074153429337760243097291314579723853199715859192398562068114493757868187777145703067317832563101258134659641889422711523547191661124853698399654030490291887381816875466155250108487172330457461288764479707494504232044562793743888308145556814715450345624803956393299888081317112227061996421185354895935159426409137579948196843584320983823459580684168175973883592076074820363557659014366333135493219627921419804834792177874910868031839512033586547171627597511273010432153978174961821641650587103823120488476946396304246312390231568610859776335595094601543369747708252998904041309959345418200041824852694224006620727185302623163550104453368984882813162020213481254111675031218005260886721456903989840945414349534858479534487090313735987026020887142374598154126058640363017814965174875973312602566762733734144558901452788306844649874339281568551761856215051499927090671014352157652951006656877501035432997465046973848671215602556126514283936020131226308651477680014320866529399711187309928420936708909495000799616651169251768308527182687203162927523757581195494436779748946885741806508466832569699761494521012477390623609497031086995253083074961057555647532423874673954813033707166720086727048942200772356161785200898151852106508487667597601197353367829183388449684640812613821384470683774858585611970271001761964261408445928415241098726847432106408164063957038377008692919645378885784559803925465822172940120377988817079212116783885441917837541949102770752904236276843740553226236461018858355880535551879570328932824475570596848066457549214094726786470301107639267242783824522849456422222316952327709812843393139228487893923266604052691604488810901799298252661119575185042295003290761665234834641044147445493039678598911959307548464185605108283834822137205154717467506835823594558696585436802699943724875030356343732966035603020692293811431505956093619684647376865016362544936256857128211752450697246403414636529848401611105124269686332899292896227296669844932976556397334042981583633821211796583269714739816110439040122113700878429703741193480302302147916204423175276941574099419493539401639965159937805858666831678755289633299314323927477116413057891207040318192002571971887540332483648545615432393729527903124311930598744170293964987631391829446402046682204490984793941615747826974850950079655805096119547545575912198124144845664892233348148006168650307371252022969961077912741063913983385714351620989492974771115560651646959557372353148192535162956660792302508941773211850741062254967995967159561418283400178629300520015713547059209215330406412150725152875665128543407103836124254620735820768788113248651799857866070599174951104034472336720818152138419716821268209071686285626504616754191979446048996294234686266981230109545322270543971080449277219809981134598523357714446720967456374736792045615156600292147237225117998445667781722763702732733297507858255308979753043355263242543010448212514988735554048272288116563068295251132831614185482314997478148212278885158363194097070527977614603026340191939329206451089898906010747641408947168598144859104127578878575725850997442602240512785171013541383175105897294417274572618271041788019443622352079217424387932840906107438013544714818501571463277862689050649747838985812821205871177626635509823851149845048697059361688472248325367854379786400574202241355476985232346505471024200622327047740044868977473362039973306522083897238808422249359833126646780126873955105605695757380097030044627951854437405721812595211897736620880627497631661805897979481135406392496857424602907642614720944852350158639169818548263051305373268495126254351570284265176785460147003688756898491269288269541546300503646820140669932524238477719686727047879689581165527807813129775458778744407319578240371495877058864189712283228941192967541825120140633682924106607197043870801440489778918561659804876347028424054712079240226436886322450499527498451288653261683833842256947292491158028735434580867929439862815895505505198382212465599053741652632230360233143378120288622501843464504547014898388195531983324288780338010213019685506035422579557924297286826674380616466550241667146098889743483261183624238617740002284011874767157032441533309292323940174689681265772823407357611024250119728755933856656495219395743729156731486710228327894687144325552524743634057306959755289872384856330587291347546074173546565978120176521164419812266075045210577351089808539310880463386547079111144303668022060749713132531765352671428316881478555158222186051800162739859381778250512793848109107966212339551137969608881777853566900238718141629516270794501798332141706203116115441679056710684864659014794520126778883860613376179224712374131326329737185591418812010511519107664537862090028228625194972188733218817054225659379848472120621602975558326382494472920767683480254826402271727385255974555331080074269013568786902160151230651852943517335853286731046810835863966092823895505586394832651176864788896971243730314459707345726815768700759523344165800799466088397853894423148626352218847466101188905655557338210024724150143061100400329586642305526134607806117441833785840984789645293616105461729077464855280298277660282007554756260432335528964121229683755325095345646258751611154992891829881123347724973325069054254755506815030364854893801821757994860026527297304498218023112775162380127920481982753975880483161626160347365851045446347439261944316914094860004324172572299548525696872860361046050551571251650910522504898942239916781144281220140045412668200813868325602261351464451756948444841044228061748658870706706429248556341530064027498443925035826598313085571599438368532988497214797216387377254730957352532940401639155690538073242344927225787165474333255357308255610272368737119573467603253554023640635542243606770910352166952881187912436407086651872055621753375587255017139675486203905223931374139985545664620104753928618198273482642507216071849997079919154646829028668894988906043671836775078263925532480199525830765892644503295329023049104829839385634168329952743619050939967986275792541847161788753219328437989789376099871354034863166042909771892814366330334305155043318871439075159161773443390717515498205219642192424142508706195066108952942463353062720133110531252858528981277470904502664209765150154077396534402470317730267676959844922326602090982561745300122970712747485561921697851953336342642022353002811925028305266299415525538902037771855433478068273901302692286338682909631820455338996916414528234964037788777892766939617409236794016177297973352467750767238045179984008765571581571317097416568617577838428657430529257483458830065606181907466835042445719638316891912716141033265732773061017381849447198008384851005281319787602502517661665747452284676388889628225560509580299728335107777902279741413975597760076323828759231316680620375359912972873705559582779428448914317429943993238723869537226045639722295268515864677752572615543378989387003930796732572652631133499227169184132103921556511485097811267624991492843896882396693095297195992750907974661288249524802532428531042688465086814614423706694539409931267952609555168723818592563355343266883311152468266698911925766441071626771954191869940245068585466627630761407882659830091331288800789424706456188119117919246436534415557560062780655048260396749307959859525534377306926259687211095402006363725906249078688379403396016700045189735119682048859737076743355792206334247857076242007492984530940792890418458242021395794222020279957542810639174015871976965212854769676388079217035325184111302080121109219493418070341405623611279933906084418439197675652691220732269143022845437434368880765379087639619460375273675171449669658369895624491550597770038055311201177900751438953620638142365883511195240371139563153968575354396698883880262401473532412904460428868671513734874842736168386835549644176330999902139710983389809585037207836490124856624037789079241773879182621134641376801664457017967896788208034128741182972372414355617130049809526517242834016142364716588445829097538142593984215345489545066314521065517711132517742952237989719440575169701924612009705560977102509192781604140104205392688812773599267178595819498732811056057572909941422695772931761878981521288613734555971713296900885181224710017828693188670109478730175380466859742633583550701703156606850269887102355216579280883720270678767156148732158397309207828343384122459880254834276016348843829212451320887945441766044375662192014728753758393781207077766026853467254355413173720118392347516923206326337546344705966907320902835298889838684841654314196980657387444550545318509460888769244573167340503236410556117938745603343176234866337673437224941227528643222798796481206289847657851100932639710511781315751569667133495716370508685053813346097697444529310667879839627100121718184058361069530870185300182003989289248529008142703493530922677664828283794018966865234454341412594518378673107452541467835213322304533478970168292359100782123257897180654585232118322187083917857732879953120986320960245318961337748860159222569549113312199165639659596766439615867967624693739868938027574451716517497629356773317005423352705700652530974951227138749549950190714223359343857701970691959680015157343018570449128363040951469243740617279418235352926925771611219140163333898614443256582339241499023219200099459795149470766624976511756498557310259444653950578812039186154101624353362139709322652844599036671310831337104076717067879675461627764394560041193971280958848638454704809169879268305024943392561758400635029688275497708451529335348089718450688389728824282285099816990143065343325292926914774633957100923455296797698692713099905814990801516358700933818450128010780465476548381677968861580555018370258640823265725481611769863735918368173271513703247213051446565084408129671655041578992687000908414581842253924168546669135246692069280437936084266510670004697921359745498268223118247995884011218484952486314494184148736965185133905238561656360622563417714376531497067456919900495157927573339368100283492067924457971709710974251556208184458838705372818302714177958248752358727426856321165590507204420262286886644704508353032298483257450581083568154891930065615326327413148468536314637899992042775561447587051541102298175763388876722319844990808981568999193690515313099390676823882883008411822796325373408820513919217250612223890845685005642832272087618334133986805278729733456850589471008619346153348719509182811567122045945965818230368766177290226519840467735626749702242871956500553840286864289925144663302714891705975026056110502359739385741543913212918912599780177914171564613244127040871394115795061546845914234619789175814147943823826815242030349653865071872003218064640202824132766407083873020013664045716995471327149734393435523266574682965648299720602109172695902667396808181371927084634966388507507992716842725056185362906722301853366521194974772690856049897447133526632648110074074123366346821247509871294753628039966308981788141039430801514396338996873060811214285528941636309985803348905386981379195359542818611309337352882566271081532038412468690257307620829984716079871049275401773465132002389154063072459362504948038779739777472799143936891200671866062635023368081247217290904059661369417688473370100454775553112826314801662929157858325315046571588632426294740075259856678436546450995032055780679771876027891265984059493979733660917915519052446916722317316170175739337347130978929487224792891739316052354230478444036074173679298868396351501412573202436713321615592909707496074502519619899630145501875103815879334713394002222009797388662234389410581618263828120139274879146910187290858489116789410608774218726840903956061179566389509323646039316126744654217401147633260418312381507503482165322980472198854818649010853925023134356782976311847327703281883569019926352738736280180650270078833047464799107895104117531232732704713739014470618387353071698432259007872485600980997157257374549589590418265062199845490481620806828533790140463045882461311870398222250027842925381456044052199847083874634835734870334736385214789546077433406305785725575473499135856430919527743524906189395527244237504683275283860370563429926045255090073725506982815507228613862705561289607948214242376663917323227323336185370904918948635051671990790422739860794750499569624866020734867419519247192278980911008003572844332542675620313397342660448671201662144504770670551534919378961606908729347320984059530371432089851982682453494109584145339357838014581256982815699634588279151394841381600031761039489033860710917540647982627789532285636122611140368921310650105726640339619142277751260982484360708952104451540649315781647335002391802515219529768211308332159701132381881132891882758354244542791188002478234108138109941323384699059956305576755973743342816555203916731493692176004271531276127018668131830305609327237584959285999846817468986635580068872622413077318588758537113340932653222605331598603279410068931574554100029350381486639317878956297896643871650527810168683679302613250768365382699503248615296071385773960719681628000076283369249650479947582682230683534294711151699408183662676319253392088791934681024903750954942313406588756586070341912211484515976066458253207367105794039078694645441304776203856046501265128007010423839581064760011193095597907424773338083650354852070422235654375001420629144883920282573198270190898644846573046783394756151994593440953912162430757571545723760132944876814196968476153905301954206454193267098978156454239954438880175473371404247573332796609861745143335778452634644713939457384854014033342855696224614894504455282623402015212344653623725350998854034412881731736110954878301682210755487157047377048263256025976270619165431436647158117000507731318671563608003163615458526401366567114021349606398126043486610852608282378050089723041551794149663668849893840983576482656849047313550859887696303078046960289233341837168197164916443286231261712782162602471831886366697382405549048235095532769592388110580092854636842217483512436230035929876373013488276451744094400457750390548690647645654972131123361321988224314361533668852027461666581606999041088326965761223959637978344684136137030033059802841555010417646685822316496230480075797793213339937906279920992013297335518487190543390209493399560620145346868968721163304523397256816868521083226098231782002004005745649581875264783654988841374646640953594680951220126640891208871132366359362372541082349439339886932943523049541160303057094718394966444649575436450875754798224343541727911454932267750884777900124368479440826464312429107527231460432574102790675856706815539726572380344948049158026021749948615523318483969557149324236199594575568929120606984389988298967764846061965649277877849945061337826730650774018092758635305799956617157537390587300078236155032211655677692250010022451068026543074150777723468730134742686569727486478947021984248327125108333472870105585602711772241264413583218476273611921821194127813349357071024387250290705281992742373259265834325604745294365902380057300965350450815382269708841871386800304726243285652905386774331331349791354159345748071613596825356718803426982505303782925773498872672219923244692574799419391191676841283528636604693615104514359570714257030213990741881130592831599528341954206262530604780924304606187142198011606951401553026123582768096134846688118800566892115021654153892285817744937379265045156749104598747115635137620973693477381388216555461776785207680738646466780459241318496712716592136554560796682815845963417616896507964070100033870679193188357722225691609812004980717353090070354493462824327596372527417194390725457310951632822392698650692153536008817539747332092772818112649958139839666020530817167433759584221868463637632784686755840380463732036212464647893053307493354440482234020051170640076678948060235453011375176970736821529348563668772700576167084563269415580456207912229944371729168888131511073379683109145638045596762467315214334209643255119050913079040498442697128958924017686163916082676516367741875209699233861408244801425202391461172603437309509728454051342761625980310349584196163260286908880842157383434857541239104543573877633994134765882481312750666837896298710095260215450576246954923063189643819237153212060580528881082440718070372583634776726150982989275495626802789882364645991236090080896819834195167066654177473764929500856359493095179043562493607175249628299427706075895259185433951034416962500870285876395880696173286041045212104554633405858139713897475381281543751256995650418727647445734212880805115414955182537409656373502600855668854663466568990507034833424470750066941398052878687370366389875791380324877459693843872771309928835708586111459396433264971754876355058361486170235475775855922628013449756332485770262162802230290638849160271359343565204557349225127159178219656113443428152998259377047919020071074175952084999832413383104845965825100202924198276079642895939624682715149798057118427145316155171231930220654356911535996678292335626106438886263607114785043431205025159983658416795752982325326954455725637771855673494673312006590214277594769165115729862815996277949189591846627395399915223121961518848454656808286055524105095677762737770989122692780075457080642994037135910332149405203619361966811513634044395351745438001777372219507814297691671019494358880916963576416657749314208061899426337502832607219747338657885895555223215375550342364299659805543747832605933267640234575027844238600513318886269698264596874149481014428927336090902196150067569771586220543262172422696295150738934864251676005302619345397166194469138947961041860580436427883281085484918193887673281729996305184708838639196734800298879650955355236189339417948196229477252583405514004467223077977868360405506891362011556041578921706670024774277919766922477591074517556101842252935477579784270368270298877805822049696538656629201679219165828684486270029482446841217078551585447393375537844977623471133984581760883959529392109176810939902417120604590547813215168106221442931691531273007799168838242014937143263986716521915314252388351700198154457024684571105632062991732371347365481933130341673578275926226053012899360072168245346352791083408972735406131996552663114397181154252064571507562509549275335009609701938313608113352789322953177928206871763700023007224879194827564156686210720467767338712839977364409828813614260446978026015187514880285561934596357840942850150477638568146823926524813546252499295610385805301553891201278636861775375266569742954578714153248856359447471295960279216907834341578260692096848671631880207538011012749056986069137476968661493073942056839654416672228429306159278457117767468844270005854553751470249085347364920630314049434822133775590194855334860015399056827539417619001861644981709357806606273938659882935914298336421780490986535777265769004061882020234333641746648444041092652838584179988746920291264287752567416404944058525089089446371965505851878110220118164996082895689877867130010826771021440673490879652955926900628860944643485372001998198207592568236327999484048191420430656015218387119245545685940231593524780322834716415684141832005179257091524614352923526580294859866486445471141327376056112042804730548757302519649277174894815697359493046514215114757555310983815144927465873244108815482087666557027755991181708099765977342157467430618115894366195576888623648956618771764926097743831833336887759834714349882696187534793193829411520145589423901864206474383786577178346965499552176030690940728888551719331039195501796981164809714769773631441638507702031183858507214262769936836861216796864639398794186099138394042079146701278317800828709564160796269259326927091607357823061532300868969711025098010313793545520987644021664705896372341731716519240722969375207065528287351520421447878020480229433871342793914573837350891586241065281249285926101864232431875751851936011349014246871639802314465447081757315574464176981343660435035865985901931066350586971469220597220936820955389822190144447089676081238200283526510334676822325717940425083412892211329951322434015269144062691654897556605966034264557384687260957092894678086182252240756890630393227988856444517468676099527736408449793109959684220588217235800885979767951323002899462008273714796812157203559176980932293227342391896276224815263235065817808109355394747233960500728209137594547096582903115759317852504325756086315616368541898937523424795831458237185952235988855518984803615796157328108538566098831144642379594886757935962788722017149905545666498302153206315187107037039440183874124181051842273543077751752468267930267980283240841275850069271726676086190476735608867078600868607391051307137380899313283152717540230352160951009306458160729033036965779155658132883513007475231944760782699627994553836622778630186328102739116821010739397430269111151228821229776681265546442096613860785000314341447086347025842788069442719952404611325971733306246364917439075234121529106788877724672374736362727243966807324256008751074911028705801147969023285505990312793051513346388259476824473178972455200661104432135592933745451388486746565548191622522833070943050131099987251856042499844812645806448561945227396268979156718732441318249477588707055575633998857518777613185156816491865007102036152784315310971144083314143005235017049034121475042720734708329369112835514804501654965639679437768511456159680469274171724885779284158674683649503950928448329591039622856616203439994481303171032041201958058151941634346430124839708280009989974181079110185186681918024820652316340005362295963045077522432182665590337397563790059291953172565898072626790963582546183945345387118770787547562566077524804084117890649653216516538725933166569976711908468464710448930248478516133322914506914465830935787550236708728455138161546652441324845534592486096880764497649058025230592202344703482574955796369393724617785489571190804803742946392177104564532218177556807430493298793918660424962734766093522494822757452661513437581877429479213120502046488227286885210553981200443054496364721501867061001793933953308879222176672072112225334315184676609011220874495733975417962024756266190030321113879039442322284695990383143117161958921615186477213997353986501582297324171979705689782823889675138185879313881881585807389861490046457423638307287982059120792351843942675021319197245813271508028885967486853129061763661489921460137426547966614538009843772152737699392952117063397855527610071484092134368980249011507722484374341727497062809407036007585002548592186508171667793955059183315731802770989658247888989754552488435982916466875517883396956085190137018253413253855922375445575902860278031380100765517767774775944354976584362050782432740630166843785257384085242618210221470003031192618679447492956407504071526019286821169580734909192578994292130836802521052707299257926948426578479410015122545240007188139778873155966528017323352515759560123277439716142240614010734565002893346236587683130526345652064021428154756660969942332784716892672115335593615388026728395167464276005870225124359728935712048992721212055820651118782308557688948695583245528724428296524294887423446230362049412253309789832409642207925873928666051387262713002815214961104819515494520470002021520980731472622821424857128325107849526784963943418787570262340780747586334064752721472270304898294036818943630263462031844118903455494120376780417871063807266268529573871582101574387664103896371607414346618552971655580438604578540717871692240929755329203903282449035992281445553267402130997235797143410079614480175146056907148786418175365670590699368171543452006049781855901315714376694730708633305137353188317918261379393929337771454194153071071652076119593486473364956878447622995060777833300788915155364407458534096081618186513982986346494525836554911945225462953899754623472917657637646360033321718908648055384952183401914058722778173858354813682352617517240352976286294394456620777330407775331480842714324594358086311579326970854461322496747658374902317243953634947756909669850259718494285385797299433542135227104205501247114057159219086781823687986541688879604927685996686032323214128467701832338706238353673830633326474433953283026317970619741284287221278064150449008564564579636155206647025000984156374575402560439719570057149523107281589073712359091026457157238838255204621956230418068517305909607109266763441637966987779503170800946988044550653534056873695986171957837960937737557173691997491993556082588419967766758988536292805403898534909393479634702751744726523304411530000591691810748389596993489009334695907025547490541733082002001417343652837802344572546756604238642751996812375661105675645327011146834827286412414509237988902330089720918144097294309494400316317841185194515258126948710344800600609220654893490870137068370099293506437762143775786752182899894341098309076768495429279767202453649785775278265985596865544434909652715730201745508390798225396461498093163586935399483951178720696229080591329824419592636916091274688699638608548075732228130035652671856481025900871050229299215832186732129851002585497401838177367993197822639865513457963710733808556754752026207405359686657110960354660307860220406121298869505758085991598149187395437279377567180292379512587927346955037907412737055478406246814986672553840055406436420829128167191287339587104355090235554081290638830745375246476126428123029230305729734197098105397067723955916264796957442753074600587551938378761042680842161014186046305477959055041956181048143606159421623884015266608581915268739122666729156255626491554718781487390244518280237800743794068521989854497214662969224816612759516681896741231973515230377016638494319875214056896733860023796573795014954410460721789786353576340456747423755790560900743479216746513496052875694354988244903970676573649219668463883480423715672308191858277215357793929747732059370176967656111832120878803403420834460081829840374415958220678798196084214330952506567912363315817235709660565151216800451573885904532720659041891591851535243435132730379150386669453273972334179402359271902403460007605493133152864300923899417342529977739720840512396628722439042935169841684323926185939617788317338133867966897431209295263931045870899424129956116563421573049367705184170499700894681760897288660240306183116759074653733302785686799784016597169550729374425269049856565164611709055315972028669312711674983658549112285871056643500776585904070971463614988880802642226709769948215305142208616954007016850916114444348878382964815753707068195595141783100683877720978433039742803423181555615008261150801295753692795991515759395556526339463459066955587694423593289141388178108757074994805491670100354144630939568014189786825525759643624247850242333357426618198197860212214643869240139035100001631079979182609673114181238608249727743021913971738113259392208457733683448372775775005797952511015454627925086133425896708920643761973389922814369517815588667104413951312129345527722016350424136150240867314602469627056969246732011720475816283409935738098103182497687559853556024858798900943063569993265848955795979529558275233872055843816264709715068489851641376511197724421599519087648968921222641170461061470750038600954597831056805438147283303414421319403648675094686962628484915903783050084668504467340611211489676135595111502481047816001838799277810338954459700808791997704942498779702412445531964879525681931117714110223074717125310209269703936317695328007787669599726578659198273861279962319623430866558828260765083473366884834638836437490784150308552576553746161737583334268281831074034579139233742339698677649604676820480892325514976866194724892775368932375591846861372277842515699375550242098169986074684755296297200816853371434088354413089195350894276849562770881399414862785905459151138084684095540413204561310073191141950768852059365391232449032398160322495931919187935364246161728478099453809681314194209186921093115133534777886473440622274164084265734894065261388203224133395852848816780508690903407826582109005501350438619982711121627015841869476668916836849948214754307085513785063755133824348314579898125125041940493933842592706410415739609248679490376932800380267126893085899821322074670847637738097688848118433732342322873408439536590459917097736008587208992441526637968071680839550108030456748479900916625426707622604677715434162949795357692139663813777010059749222462762505749466379616347356133557375707211500645794592362961766506669979453048886861885368876692613396173778621720649404621922772570234967518067482878121653133265109083754630476858717927010531597444573013943439424816305766219576866263069188616879091923597490654834954372385814046909325530653610745283366934605887132537525395122127155270858317278603758556965384448534726891622649153165955197188544285632406181699168254194902908592597161315366531768734523161854710709439075242316274089310114265295561439546076522576833732750478919827595134610384516239223787465522899068921453997618739168605587991250278056214417356204215608614253459886701057473161412055459843347653058206995388193249817218632363387052017666472169493558642866351931375018004214888095812176289795327786382989613737326109851680803484749161269879254481823803851352854943484097564807800125087469532125712695228770739394234705604140556948746680601363972097913586057150113348403306312465799793270829306967384050642851544124700877216196430095694812605340877438547416561569488747430787839559715043498900958143494174989045924038669993879674300520633899680520783003152492606537001703902544092128492843573835910240995822666364266339577536214809234461528766285280725823226373137991593821193623533801721394744977226681735501733133943356815420270202672153509054473970932314859714775516640676828962416075607977896427844592213068195215029087126451603044766460279933843975476677371920048267723090772748385598646402037575724069483750331153615753958782010552207355430417435977627188708535452010501847053818198675976836020589417902786140045137610094841841754856609098603844620961062029051014325017368658607290230848940764927068606673321696956369852027396219976191764395131789097462993746316217317013669610176573500192283167029518154826048332135755942909726961840097261436910192414134830331771235504073714020033677863988375496416577920122839348222501079357635031464762610151155145651583108116836407047929117505027302043293006014996432798101278491866195278073178697502697148083830158920996501165099907376528169782146251865846543931031831211463147876271137878752165599065872249566529213905280950273595782853059827995027709096939330937557713790078504292826765687627860521717190668560143443444489849518261043797771888516658648095691674443937742471477920470222219345117448218387654539824888456998512239746252538470307241303539117757270431356919890120177402531138257508180300235854796018655064405669254281951561429587964850833568214593299640680524435774675984020640745367048151197324349468433292272881741869317430440154132410716688739764817783671702983514456264877145367079976371817622199926032442183541571189845818003094058766701679545418477181698163912834393621902259550254095015300350760839431559154925872294628998147413430053393605012647573939109131503174353205148242199103699501359475140968027634409085219134501529175666841163655792352592358286078051817482817986315564007871901042381131143272771107396199522849691809596570621571513059874540662443218328363391952858509020272769391938508531638719501733370459170390432038665073240336473471468296866531033949230502833641156039491837276349274500320170174600853964774522904246366600129013648954037220211228855722326268514886139031614627369714388968331103922629355740246471353418081437551496300301099787701305294959473342334022136327483725640595717074024683046021873377938858038366976383597008592151120508648298132959352383089277493811629262963366401654110623381203982139240496429992239650913622286159158006330743703813272026193718549404006724660241524646081958167933583128589213250624232271552083127729185887270768603892749492714547798910878658624315492849961626064155943209591640868621921223826378499777596671967202999926337604251337251991846444913500138819418190545172203493774235929431954367426061047651779543829430700992582434687397573862039032749330890639422431300552135667572834616027593266974015417752592694699099630098888832789734699860348688378907320540051200733242207423417620513663412763875035295673215399044430192372521602444781873160442286129113730376742004442062620902242318265915180208540893859282141909976511432089471420287161558599155733106024978104754820044431095445447618701570988571720795379476357281261849777549597201174786635936717207020361415551601155533392695606310853210842431663833140259990486428216354335635737305201413820471457891303872215238514148032388046186904469587944326682045988706909288596904412991049127356670862874048706016243102812885095012093045760724070962083507265454020551242156590858082057727621656945738341420393529282302614470824734026822919917892917850917818550577157610032490806205067076439680752798079789447369057892283320836351581080820355779473508470934893424372344465973608769731076730978890412687180457850626452057459024250814782044410208021297666072776060121245501423543870035069460001262612065671690506566371691296784525874136975905780272083570586449407824029952799840156304483777708695128604756561336615267371866239871172506623009529678157264729615522390120854909069331438553570884900618027788094398366916979823601406839508290051535988261947844614495489629799965850179211381169310407891586274056086387898790758886987815561808668333264624009426667642854367586040051175048712933133649897941514387247248916933599576904192012213672937466417348040365159248145682715672991127513910317857591776722834208431032073244341816729204769774906734505067930758737227954391276577050399226468728761983072957105375509686585177110488490555026768604073860182390066292678445010776101693160886567168379124506742990865562659994276846262022569861222042572410043833265856662865304947869116167418037818778855179173188629178007909019985802697117095016037867610274221628861373152435718967823719319143067646871242808295931164580482908466551701041069977520403701251574131362301281926646759092435500245941621091990511540063322107914424109984666798019830867524140064351360373684114604218355294208074721732603654621578159295866129400638799571247136215902352055822002551237848158601236157762239600476837190677827901156984755280324922294313183391352255366266353720785941497694381919252150865573231386463047132986409425448228889052301975357515840784969928764059494593509697322224210775996079439950425805927106491459916595453031900175033538026725145486044610984550970114776948593613511398234566002108080888401720188388791440197360248622386035925370757668138713682633754988225275354150866240853659938933589593502127974357052422982215255077209578155537326409319196182162278187780237250715180636276549264674204818037341810950553819950775371382995223497839662079691679473584479523172773740204970515047074980486739702781786363616983634611676882791312002711540818210776971421354033211789903354874680702401936067818068338213895466400832003911777665391483221419687522957049982237782787297697446754458959994835703338450192218550982276234065075187746561287230226846117910757890085193960474072083464891612095133061934010568931585004564978991730742848908146466354344531988365474584842155923444591576325121721154814954412360494918063099787446331847383025403219070064417408215721299068182683591111679609022464853424885730255238136643284528922198696577271860435789591735450940402973029761078155345593400589273921475821043429327730858148050271798220145081637725565132506108183190490406169105404648266437669187957914302368036399559759920523655702069963203087125627988079132382929920525811539614329488648520400719487521835942631881580891049708093994740794964360041063557467445531582107878671931936706498185618628022479035646131590039628491544261555090956907004596051391280861780615939766887050036163491165479935192900379834733539534226392263171909334883137474328649852047155867291328156986533475934585945395492391867216434126551036198276429839422999825579081479164328033765218695091165037584858224048924345410361088908572690513356996333040928550384531329244596344386335953226484939646624754256066338984126799366178642944057194449472503923878830648126500193694770013537625348018995923635482787487493480184083033541719005697590119056135221548513731863650899317121115925457900459421368445856086156303202082128868658695853383515110165240712960347739818220523483206602463034706551611356855198809753360330672982175934511462409486472620282288810796081083719246684096351022214747150778461021158553738749514299249634563897640469271014540586294607333845806260288833230361985141326841647619361151747249836032937083418336843850906411564257716893219729173977682569137056174860892781856543704883907265301053773227822034940256269872088120043713873123264913491303623017397937115859413585624694654248863265275745551695820452371242570889160578108440021351551151211977348346615600078167368023630627635072860122257695008872758213105652809961452343149847653447008936021567259000595098045256719606559264617306448668964080852188691658735115482617716583976973676187668694249729058470930780513002475618167289635087294088184084228107674053716280196988359010034906262146287112337430975124019465856656068458841964433612374566879846005546410456341761818237531175629928846132696056491294479164529639406634509337847732726692896551661900971283438673480496351147151116273464504628735342214558099731351867518093904037920356377975567377893079563197292244491897996429018307111728125660127023182304379152852473921393174926579171000417605251113073496015183042471868323326751475126367170272024986265224024905424240178143917903320048289472182691496800741232652242869663061730488081466193492005119153231561303537971017303955757446374973717315314979518250503374378712398285476555137004136182672861194988280381631170485748417919544662248189277685419810260340181139860777203256031190633983074839357012190491179086163676846729184066905114167290001675933738333453869814979758385009398467479185184731075239372585083397379553255254940691878528557753385738922043561426873316157865414107187454550775677294447206664119982758989608009116551208440154840869774529321128314902348083084408460706695493882668356025854682449169347639866241111332566039089330140261397846896550664725508649765714814678685509737617175280021549839368339265409665661622402050762214006794006251271616045290551315855593269710082045936153215361871855663352299951187429862725906934693962250777321642222847344203561589909510090981370940449925876116548996482224156215408280502802231317809092936935759800834860350064118330227809883563213992190039987412816996871905297471429189994197349136904059229192882904982135717476977470615605577335078642170671082432396747697868972471307036210577843778105716036846191388169165803408507018337285345613249580448781111878848669933999599177055673619106433631346930891500605689253547729001895549800928185995584913808352036616939193433913255382987300081761367095360588063310689349263849247712478331473250274052894903606860294431381423493386207020091255937002524870046958639015650948768136050111773752956117185016225914759816410982506568083322465352244441694781495324854395599926776608303202691760310469286094928636639762209765161896314528930741195016090586179269753248241459930371549413208088641583721614039805136107671186122080225758700074976252929265481233006808744971493715516025896420004327202441430267258039359174097856500634103502751103162871206943647291668405423133994564905699574413799234343478969519128774555095758756840365706002590343533522319890003198019773627695263491020604554208168899282910659628952363816400399299678090355577536148739710518145710078066915881175526533227615428015455140590752842419770477766470461486064985139426933333385078234854778157158301698750210503921918022649847577634632604412163121532429514144174271970010536153137890927985195657353986413302418918155996877061118425982690073186242830077378346141286719680693820571610981251497987815318640825859142459543762688801616455701128198826124023353356136430629699234989228626712792355040328667566186813274786690207853738206714057877599208363625893000069511228121831334136035253630203990859676815556679063979663448449936037169228198148888156595029078481417753911421341270067508399782292457440155972712306602727370324890783643403550601962920814545659242517147565588418301599833179837463092915969222889225103917968160116752156553016027943533860116009133271699451624565762210506095748023950942142559011679882827022400569452560896074752978929659951390666045701280869549420675721450380602530358394441286107647479725026651475151598010840908290794894274886536864836601788208136556522369155891661015480391364313385404772487639289663039802633619720375022944742236076153318869000967655322328262991182222877440887771177713261888009511233516245022159064168862266311966090305517943898148996985175700420642748327870112055817707083782151863673881174252326363963995522812192464850233969635106175074244833632892651211986918343542510022725786703724203217477148328889736140263351317560301146021050668573064080734156998670843915884841184549866161007196386850790808807526841842873860004214467837691974066833812558524084443017495370579095114455674181984073178947856795607331694337763682278697927579041347158933149354136334358412918810270871866557096982262761965571601215606847933552787286601717871973937657392012683339960574316639211334067290666144593712479333643492593969125255213740467967081572467030835163352003336500765989871346014652909746819073600653908367222911144403948642690413304463374893287523076534014677542643936873362528487098911945001181800948028236814420427942818575018795260854814554687336940352812002159404576034445666334050528897341159259168578569218900078869517060387140548198727007474534649227108193774036030764877443206431088130828044124939529533627235971298836143953014295894586638588906672927434038778677674086393423011365565701305433251844067201614965964304950353979846248124732755828949675164740418984100555441110643606107367208393058889990307959223989717992258037791867037786426346991845468610382262009931367895025916298738577928880291108406007251917547097249910320120344214222866767088799798291303506898664967389530335315060720424240662043086534943488576484246169478159906651040914296673357007437928112656861249248043808831168320432595682988571965021929670619111228537112381839888042600319382250831942013137393029235233805553320167283187567526549061495136758113826657772240831236413998366163864547141549253871606862696719843541960738279722094139862409474505229635778884333859801925787357744261538786571024708448912214536940811949415469618656814163476235891437917543189046511000638235720616893977737041345170203768218158386055667134286057804498128570496548886422439321301383282056198711429532687099645081616659783268139617403678941950600567622699982748400450923842407223188465335558216615056013367656450271151501875459944195277882252169183517040172616230115032265416306754343297433647118613277839158620229881845001656849188772507628457390793897181425001708652952555789347397903191271236487208833401499518079852753010708059744968109678339607171926254319760086144230594183745694613640783000805564827614894316432619300770146812154777941650621688187217162617441032620670340427377733141719829749855218726475459007549635963576150656248878837840143359715630485598016546889261556453670683176257619570693513349205118363164636262135310270558199077982791882788695662975533304390721798247516043610581066918727438487460171682302683269596652754610478649760957348978976532343719322589908540102596127549770333468228915145857200381911941559884963186488170551530681144426423124498215371960811468599906206954695838538718653380289698662359790064374202945388494560011811440074458630143051051737266096379800417128633381790341347818695226196165153961093503627362483279907118169436565313197530357854086845460733794186331020643698419832221029505432581697821576708336492293162013817926356128145218358285577291293785489208552359607663254981211162653691563976262307993699613665862388252377470476414424286575487567799847992546267977554196588601034742558398840983074632184397374403282177937402062628199593967195523949621928461725035561850876371712153384835064619195187750284015230015903476388522181531446244160215155206510479452587797349163709539635761070638813517288202448862926269425678933145621137177770180132978473391590033750402787240387152170010320431674680692326732282920637163491881624446613260917466667530666808836731131011651880493318540877690089413862236575834838539445967587671608131464957965674240114773462747706436320316315994189523456765245570400204018438830701433759334725825122176442685604509143779956002250482146471310767017931093287890774219026292453420238664765010712316474221334772503023479073587179436466076542991332418391530565645488040679908544932645957441301302569449628991189188844083684756956008452439516601141262670960709842503796736539586279571991980744056365951787455989803915264585769317311033275477714750232950398845373252429265431211677350520463788978718756399651163179651181410598414173525042024352395121549138012597312852991646127085004578152681679167772844965535554632654087548209263424439323804867778273440100758168225265364085715706177367875821626194800116776914393075052736645685215615098569800311977424836995802040569947435020255945669880001306608382545000972986355002301374501696259774186786514328751839315086463359961441841003321553546196844591083181778771352921452410614832069102743344740896807564033379138595540035816739137249698395873262640440517385337912561192006528321063609292926301916712107035802408938053862001240054657804090826155110797457614362806862208125060169430894410725408941230565003088202827553850481328457464670316478090621558132328172622380498228908410251153841837176931676725809850025179911265539976609289657034149685941871352521410913803427966526238949625867334420284475124056196027771967675620254986045003971923510834438787804954537712768186377354296085290304615614522888895151231941440127514369494506341199587938514220975938461023667403523538305754399585009907874215081748841280581299301694404405225362546323189871161176553686254218324584299748192980465765950226741014698815897183570093502836166658260337006387044518097376275510537989277581628200700374259368363039283280665132632983356710380434075786825939846230624918042659539470279031780771488627100831428553521879935324164231465954967013062896786227837179437911555606023455830661075205405020806862998018399700687553975298761006300115437409237203912861950777573746415616928413662039322390744122806410632571052093302025410571005920350595186058727240576592006704656888543330961335639770822248009080199054970637477924667288909267803983414405875942069548725856155597088989336987000135649049762874976409168032756585978613190055102997208376868286960317524123887093123816692146295013559054175354619401893801522863054024322383551117178272542787133905687283804591120000036637638710166001794978487934907386921264154502073271884207198696893598809104857228584113627847060794712030677493302117404775660766934075457905420195066378304831629455899993180402951276229896098024976940918519871570370550044045106103466096762508840562168971674975631620530780065492798040117689315940423741121229568421360184729848689957346878775797024894183323884319462459889010220910666897140677514123835292800886094612739123682976813760845679548577264651933962458901271175348997298249213072767511464222593800833018832557974764183434002866170969809075778537391865879111104413746569838795707794190503796651440200447157274365843656707554451694619210318509435156264901695558814548051590534129102954474158997822769522081161282289404387814173032656516066163583160763556704029797989794375786443444080785135915000978410121380522537887997421067643327095085099459036948970115759417177985488860012925252186644200182879875214539884945215221279822868083821503536390467331710432557298174384185993029457515106906147646434564809552317216389581378368553541705458678223560264177708286598262889227602025656674205197414065578428758477644905899409107242445898370524202883800455476001282776750762650639964197426431813821618430084324041905872481690337632821484915314546919149793827756497925777698432225072329175817338425008893007502070699978819000433220063918863176883413446632662176468547714763406707355314618323835279456081586008068443332019627877941766732287330922695697390282445767365455242480473898291979772244117593823485537717446465269929170527118580891858924601093896853817189871031156280932324894362079630067955528234648289648804781898422930546885082799672279729559904742031363462288031475012043495447040373071785944232735597396892391941383304873086950562042465215464373174095662708789960219931036009817224854138455555535535720531731340116537128348366540403366161353742771782502097613777053991950517042770367989281571485907355645153400062929192550324799204560238567600967885204358546170860561629736453886645907671083372829906717161257656975711538730104077907626910817580659379942175336956602047386250236815561507057172178469131185016519406042147954687272180202631398595624645407099889784253823128613323459643631044230368983338596197470704162503533521605806424907978816817083037123851863957830525431326236958879083953850002607458377318469903571144266996454619559656399546467686209617359370243601004200888488912102420493449255454486708412406612620343378831126074863324530898806276235687227132985731894867137510586326898316093852771548034827037322891098583644816802997194485270786598858048827937332398283289817684023172111127125095325135463698454502570108208031184273919343336009064420830358812199776120359939132308731599322857918115923522849845843320120481884843055302999496744515916059305384733328075007096096151552490070851777705348604004380541193850725417484038488663182875398705904555039076650014936991898826203457720811812192987412654282808705877753313843298884742835875661714859174482075837681739014153535939871431947212744772930092027025577761783393181307373169809538788883709325224688598645977517973950731807946245678386155746632099521273988086234257782808136088976829479980695019048551751354149417714079208976114296255709666859486740043078157198280309882093523983305413706423428613342930130818187329536848296312742668161395804219879542035791807413228850600844846672425151879241824682483968952851309556470134437175845633455509802663364787353047376070021473246684626995565700393804961569163123465657126334444352773529807015696236102418801267702508207163670845811598507863915392697708985932290645136926574228305150369335979094415015780975713681013444948453047543921592147077876314736197276336694080440585635600362708164132597895761364382681085709017650146778390531428553871316368599776080388082782214948991236197842649587162727478902759653086861480434140010890913963881033750035761601782460625389100080707256455241045365733602325780927262143861093638299626276143873249713468175069921082448828008274317066040821188776880536003773934598413684848514806881426584332415151741397249854723225006915783790699159716700831883504192943373743141050864623699792197310354623739890550841263019942000637822689432382892286726458826899069659754107537610693360287820258013790275058874460206088743770561737648233636756139483015654217155836619005667847536811738297917149773270710548045715756101317977478289256255568326987092326569014755157849135383319166852775383653089012762387523150581448145286953425731369769368114258901867262319077270949255324182446734625938532544976656351679789796578634653160329921946318857420836233586459891560165577733852954858674708369759486638024722276777247051118748773623135691214822877908315804577567879948567569722094403715926580377918368659853438063894241432427919771914323583397784421745976365797160283826495472338455965717839758429732808648606597838852273790566018062731620135039781358736971004845305642730883293408305670738889735841971633405434214482426505337016513438594017457058555625070533704630387068775529741253112597471856704865497349565238160720652064091316449752597625683150800823289404579759491707401153288276222290984652164170677558187419889511683612743228413018837613377896837735699261086443060545267706528245647054922134294552741829706089102202278846056790686710892766566809804999692096028157418306400520752245076335560845888514002712491217922784079304027964982329387938572657798786632944333166938797645006058581282786738104589457956279547724882434750450696777206557575136732013307340803957680520467082569879948394450899749001958710438419865706112748716076746657784452334828815949945565694932827628921968366656496736327756566068897745752648707049250165331666390270410140066610939494674039787502498306273289507607265201968021022460006250270295784163143594107633616768654435240011586927865331028060215345424064110199655252611146736244540199529574125802472251513142591711084738763381602045025724954455177624196309922725575549078623244809180134666978542497708703685742528362268143390931623197895313042657484290730414373297877532298385932934954092142181267703587415387975231830292010143406644504650547844876466054629734445618605985686888630214377812978875189501934342579975413540892562975147188378907756216668145720840153239064244839992432733812681685394612862305224808372355037714358631208917136298685411648799736828776960181212503683901756018002072791855922247545868526555193568839071777152654339195588533103771408684718248318379268932270273722113629671340248587564987912268352262420026043268488454857440722477316428400782286677586295141638820740885759724350284378812016003383165801672583336843793217828120912682913570963848892482840326173259681383700631068066548159341873894703488011484364659740906428575560442689961336314141934345405272408687276238499576235730612829284130096621676550030523280053782397697829506368691959725745035526182582107632978300993708031459177745518523935447085630795084766180169230448808594595661408967052985174660647934754819554343229044052264568353644050090566823135007995057338448523580629502769947859097944754035536200947056473870865283267001693607458409593279360477629756626955801924048339038813343197666209314165021510804090425699038583569843410783727805820317312409947072971753962826626062635947185491285751607591073742167200668967581769214049890599538610686617283134286749850965988722302267507255542949403658860745751266895833597074200795798714946426921771868586575001131474029828615337347325477187716688415896897922376716456142185736377320888304581391544810100561045207993580524384628378808579160889895227521538132089002044090065365358671611626971194686468692245803506822980595183155036839789424539846238858344906963922320439483637414450806631521157905556987920980496728261725527240873467579277266357326690724826430291948899752444485831704208340342987739463098610400823021824799005161767227153469708082355810009996777647125990781430496414838669551147531834368745592951121318298226039030668319277363078027602867128610393934977872332423098058739425892007527162312048858490524236673605062301583729009976393264514427451845234969277656114404576455756092942246108098918470937302477874099817958667414816567537807285533217453658712565490357957775549952413101367257032542011165452456972731573240141673084316309600357036419262463706327325253685850773129577544397220700167713356237881733386190054453802909328815547427767036626254356580217578652440228143821623378370922790656246193787439910398577504396086100333900555862018088013377740790445633789507374300327381061540936451700308706465792424420791185190182823046588044435230005132632156630803569113480259559416278207978043806734032790370884677976016535135133034497969209692179478321194773754349056003407002334784307317443611404845456037218733452829654560497984650879944626446468766144962281025258908077464769977283963403556916367173148058314496707967243091426106404754248308680176512066287347109018823821679260591535469494032513107276861085650429294483869523198335512668398803050021609096094936131189397567273183314442164026478135892220846506444113899809112811143334416960392848809501358717129263754802282524592399885484854278369821400623679780741092173983897598287882473688509531680854913427451711514110036488008297046662437224445694305292496588819574106893753499698245564621789409762546594229877930065348818108674902089798675631797744239410712113807250418859814259095289580838136995101389263877152858396936170149042344841720889707896324291085360298713161206728294496405296448514627007832139963050040734401455742893279249935949020223453746943386786169667050530072730801812354391248193733440481076491725025043867652783162885751682769823609186299132294862199462938181048346334819886505103100883815318783324625972968505143063355583183992534379534349483294661188839474796313299514175065386567386818595031798320178466034996827529090895577253093830355749268729191696270564564211518338869072415996502194223999534603686605246386661450769577939182294786294463121138146428218182450731475457607487092019654250337145193920568950480613490176130902227650325319108531060837081564811504964952794479232881411805472660815936715448540943451938916826635635811023961325118817062199049462149893809969798695640164932869439354414142722742417972372735485949874583955160015637041842355244330975473286416953602591018771196255524615436126238683528467792148780292579027527030138869017547760608278203333795432216808904590749190266704695622296856585311001281306938779421234933454375522738249267993208150506670699557034212371817692724149946744208624414715348046676912805528365532773552510110595055764972841425241148264178254319067451545526840088339599384207063717644062701466063687844689039483952281300239771041859440390732418693843450635178133364443439230497063972963914098823655066054032195933200283915101950741155938820837677725852508192261775523791714296724594315675343190206571714455519450366285596003878750623146099819468359128145641682446891592783309989809847730197612037799372996298514396337834893139922221208098852809077877265009409460531759406084021486294210290876273859387276289502118358736411007178279822876190647390302767494530115013590464166322308212437257267371944293356026063381111810939637174000761687439182740217582499988294563329195104413355607827015932262393464182287716711552409653872548242859823738580480153025256547516724474012475580538131240945439006520661377049195263945084892469361764332360648116328106986673201997572357940253743624224981458203014399467351592130802635908144395650408332129797286277264506029420491477998338258995990831733661754716354743365553795301438792337627877422816196333398184532753052994766022556304705665769762117680851329647539312674117050806903978381427980383907805192049977484528291339152812780232183321753463390875714619908304900137712979612406257508542068812308031977261022757572692366935423397556788452862190959371746718927240126204286791652518486508262998422000451241444629212869250154997730345901443713167103014127880232156308404577915717841302538208665324119811499713318767260814630745386509344593519419369838879934646056178555265260844672100633339169346195723564270487510312071501810862486083268606724264933136426045632305069005811654942537877594491269444429512277308537383926413674170170785308095855274549905349299388879951893829612061976702067712155434895889966159336847192137945969511425180015200113396841325501566321691201536927899090098560468345065149911737960683501830492824633633046970534036979249297777915364484388606041973128066467227223604691365016811056829543954187021846713010989519176561509183184300186894220474921334410511221203947784785551008156463099507106305914050921736331563454368320050562654125905435043910074921071176119759789993573134540230471473164881151858616799044725690050113058786794206789622331040172742994633351051938951752041460257734350388451642325652172365797067425938172802842832943918473350732110648112559501021603976728997307764215302627261543505373417004195983503437964681053711679116484005357091996723176344455531845291007457443247567202585548743218154334297814143142320577150050255579259872304345211311290571489042496340219405650130004460560473237248841673585135949451091306665506003589456908045290910947839809003657411583925453127285131710102465413935410529424652841770196090492711219213102825936604713412528497738502451488024560182620184552592725718225308317940492113083641157303650994884150590112029903574689631665654215471907374168524766852026377490251174363870719784841630447257097157733824724077947093470103665896437999274949107393781059134437669939455494297222911701304528598050428771316659738051070358541445822660084166406426175838158013712000469998855521061568005948978293006122386406717034740020688466026492056128951448051475707926126793852060511902436958406093349555637306760343999746339403228947927697561272198778244869401763387581408573142911366758327728347124009434805515707473025747775097030450447916354581197950473514480841788250198936531502770623693600442527345824054617497786366999709859127386001879707053868019803643431886138594890010632505694386872955033080651347935812757045929115151405496480256293932433819391865348598121575764153142301805796188098791160471460519288032707941863167237141083868044956895056152920603127580843248462055510104929478783748432098588595069001862405722289728658895368258478718131973383797495170452056579382923911291912057912853570977485679464503522859502005623217219672318534241466131169095112304601768987616792285563676543751775629040753647167463957117464220787575445532458800191512221291103998748817727829001331977828462394383103148719160783685679153065349036669418704944345539491010644074317958947575749335517427742908327620274638743372103782270025722085463338977918688500310731309280790711946724757781332271829577492606277262354303623015542145618104450642692207850099081741096114369348092265064758820589791572886528652636151458000298829804841063979651941835323838134355261569807843995130994609890254644429151242866023639228723401879184481100539528367543401514672019931768371305942279647127657430858376914744069219431350881951120245561300016268315287113126536549122181872307448655280361093994840118718556981829161546026349230904632239067046408170092803825647786647069888114153688054182159578023240291544889141880256122364194514450229646491505386364670744573673845238333194464392036499388036480149520149002178581472644136722480079939949158341762896449718362487629838687170955485549694643375125409335208961347954337502133720279241143613450590303947117170535887303905587928614846741738643562694818982579540206923168494570343403194567730481733317848310117849738344071352003825190881123531805203902898304072733065584101005672004062065535511078085943826075285765535903350921581259198908701238415634467891920749880007195600421275090428409404106778398205660846664476873627487654639644473380201811451226268989995257316943411094084337608465215887111709140061198134056203279633284023976698862818479913893170895233928377233469435540900229744001803954294985506332516984301776535561375761863179927619860529030996430835459869123232518333254051740353746512062659680374651327286999937515254751041473928444718186271064469679227768989947948016375633399820788658834277378121391351716407888954709983253643544206144396972928881353756572095994684796345867122871237489245894143328008056564993637655440839131275472403618413203926472264592608073198749185024172798000060509443434459394208100302216030177403150713905543363275503303610338932766417736924887240111824772809298726234926290118975319290655465040563784209764841319479325444147004774390122276034954109901524199663361413031913562824189077417980775427625130752373824391581799670824127096472469855329544531006928013990603920554192767153916258603104862187960464509166389548892615096228768513777112830933424535525182072123223328465641114179254067616544600722359483620829124454853363987035639280665676599874550816442165382198103695485682608225122487199942382448211731350305107598754496424260875298122939791777573921841857889066059998288446828381490703485024064837625396481807007396916461464390962085924886948091350082259098636359608181147835267041761511903121716145914144410290853137104005552768656179336168962864559473806044087708512360769838242770945693922741432438544598501089044417337426249707021780429867169589330835761065534290026021864893750166780530239976834997264239206876637422206922825388805626245645025596778889904725854746850886670894133511685743101749086617725846788339642648956406854618157539693363123339973862323555409098690123140571805368488998512693562065176292069180199672267024545642898174681051568361611525459554308402508033718772559281258339385702863510096077393213537295732000904454388148866959617536451426449911300124358183731728169256694260488875980390893948620374353453116041852108378927064938749595404467669522408662286029532115824786240126174394739536913871420379903613977682372293008711355487167118360456980098228165576007661544094262385376043831995563255929189777643043063310151272579195376142638982758435919345450182096279931566546103150822326474765158309759900443123642956348721574926307152380415315734345634780736415463249545745295696813170192083247911456508888875453407747600969130242328137404076934723296037290715583357625713209905328566375096433988474690236965641956442447437842100963376715211901550405712286681079472345904700409242380756276309011082950422518648127875184230163527641912666943060185542473756530169061399790275519057164414882056229927314991391410788775165606990802419542715129775857000134076044939039728832071226604049578861744458752991706881396162822281005164278300611180511966508619123622948482883441905178498739413124567379857120745503236023332137078367084369119059592889197097756892189255439562219660282026168450833207652573070316782905707535977890114719639750026346438380677999149072035676355780092394206052939191283346297844733780666930365094995874243553906235065261751625669431349049226515225352884858357856122697784140777113364987698666972150850776884039386016230860386883204013242729272107385798866905453475779414291170232246324758356334149442864019869627687926675024239585124220281269661927352537965549996653162700052679903667651444650912030025222299944959579444664285291309597517342281942043067759313088328182839816854626884909552866129242477984011364285576975540411652067968284979288243875885706872129476562292034954352201142310731759254710447104733960605488700531731597340616879025727149542067304808314237556023532194989318070824932955196752379248232033825464588486516967009464144323938369986729248785778588242210439943758284970307009223337210276900022299993736138199214897223797718791566179811610906184816708091581113632815731181714968152565229079477932135368798162968626291680001082205404934301134349215416605649533632493301861560332791327763706123208831083608994171207509765486184509812591989880808788226112906237589869314489641725230202453672610722682344011936054864727875510468373515395083499647807295111268195931117862404884072062170876275280253920377895963701264962761978909237128153153478880143291173621327450447552362219774893982327286032273334276335019951563659648398818310653337797080864739231754775914845770636040025114331745459598863180697426522678113623423359278209772594190426508367112952813398398454665699020736898282569865813126225157361959008561610937207290638522125417689321764587542635127463424208958676228113336236506789894155199963904904506471694174406465962116402413702974467605963189043891541070766603920139494300094147519093021301206718544564357262029468796223381662151461376148864939324074634293499856814323891069205171500006834299645980327007422349407353908339519522774685309805428335022095947731614961865743197105610353879702783318218093470124558788213806596692500771042425356809602502916433517473790799109709706196338044178351939240407017210383908963746852145691434758402040025689099196540583245014097774661277677963931878305989662838641833215385629736471532616304839844125291583873983828509227988113859046935218813572164336167675689506486239002516792751547282306907591128580761547237461295085962481836688740966929771125478851140595402633462583373618275909224042687512126777948891294942170196958600614972642450894111068224023631424811512346651573136637147093121098129598387690702567768754103717324636895641110686968698232908071991017273755235412627524975710089569792366576657993392907062449449736715382254886619258110210368472802641731810734441520787774144199175744561518467455570882493986454498397406854494095347338860103894502854401745250048631308776197620932759000550639370125121686431365638818928970810445917650678382079995411960163625795046635448708396797249711005333083813873004732197923063853798999093917802704664004742335748210742816959766109400677530018294595127110457094435802537382137188427541628168168594238982207663570765299593960926588426573930090478061630488390272604373513849026330193040018297041932269837238424497399198582285501590251575447585935919694670481287160301117261065369265833376439895758871424837258831127321712376209900852234796756539031193760422870084472875173014956616371216399312922141347201753580286257145622561861722493848046708949120622178040653155606169668290164859673210097299273417448609078823738278273001462296751701364639033967576557197625686217122195084371583288126044002204141084815791329033425120713733039008463919019530391055211715034692214025142229013273830401605861905916970466321150756688532120688190945827415266947229588241571790769974529252912673223661136195465841229357180166807339938471775551359543369865111128408844248066535840472022119617162351718866074302326244260030128506785013818610495917322014546949098737683379620886638409379034691915605583629886372628830885533917667628872302612852766521226443610499927356956521463101461080922217691758573312805086536012719974387558518237778059227496132436713637641997532342374743455349364675219965298610132036421620304755402442504673910751681779547242142595849524672459300778904088336191986624781631549732170134529890667507716569514518434918351802928073850740743417886629860845874820374284984215147894844218630283287531826118515444087241843257190872602596732853201045498200167906485327295360090538398039647971845226732259427951058475897291273817958841599513547911255058455669123448858821082696256769039033785448943615555538976563652929893628200466971496129286797983331050006650665638396864871043138111713311967376312777549238809525755684003153076957522621731309180745207118809801646441021413657014126883740866700353336600907597058207136280101612672967026976766029129731088919916772964609874299372769790571766344049426379887658089449252832399709709957111303848051107609197172068090139854429908785281639586465720501087591236498753317641730063541518952794761671140033800809430935128371567980743911487404045011001937622235970305062914475710322429686671132872186893922999670027580178385095329905972727233143741534782487701847458416914804719138947015084541620585784512186349246430211842457659514386092556864488250682180610944757915630365796018277412046921677531548832493473071522898786036457901921596222216042162465781697119775731091749653018708350425453688159737584209476941038457042576042279002633497264355273417614250630349852078944604351852899303675786044697938156130380424068446840678408473773330143211312843301562061191104510531676453721910433646252973115236988275815484579402778518633410886658731235175492431284691263644631580823741504941614178966509522015022413774849097663047358221459590076300995268913380521926840418593239886682899794404764142174044605676069454683779813929572400567192974296958588626175137850467571167892716488782137696832050237702604602550653285622468460120609636372510782857103159260444792659471373223682027746755189065921481476536279970744897745225504133987405421045415422540568656772176851628057541558242372358053443744658578611917403735208210028374972234698278273103331904325863093319029156655604170639893057140894106385676621098343447681477877034914193812647126849338196157612516647414776761146947207732986529434664372078655174853156346188764985029636022666832871849393574108921327238295345672784597209750644930737669233892001681733645643393149272835142004405395891241411731023980219684369606703244814872490257234540494706766753891268099270211565932818724512352753423492264379997120338996084882565394531311438424425671959041702782857180878315612677026104821657630132262378291661667206133152489666884878113283556933715623514165349282141897145702598376878903012128595399917081756672488234594040319089538337529790698643231969543084577790936201677388881373379949182686318007604770922686994804345197181289246536370637277554441805284090945806115126157718937687462890341081271402065688259046442787345341299254345078297403436679334234458566247596117629010539847806315518022456410954789665296606189096255026288435675257075759882448274619869244570039826280469556555353956409893795936184390709672251279739416752223333430906360175301313390826159363006901833373247933660713792826278990480185421174530514660685217718713431456487075821886060315666986716759398112986772692225692516991722780151051402945145148600443504296691350492583827445933789237539565743839941926412256744585460483574179269899160580649678601428391651748557616767873256730906306900372201510564188313332845664326344528793537835522673627834708885316064851563657686030633758259453679818116330072159944415797817239814258493213032338779265651961704194894025800626905779474632221260957324773364559053834030559930499692192217713378159565805870548931247632853921709147040416545819660293187333909891892467505484810470895474513040093298255789386392618392324032101818883764682879118710535937511909998350493828895368018246155862834939328976762957115578689253792994652795591758719659436705150618452322857206923671564647400456512106720532055021558977759204283933592202614506631121539618254468852737542971069760206065719466905246083248584801270753420370388743553249223068418821675947352113196559817480968312682587276143118140248438860546915787559885768112589515669042739079626698747886340877793227965009414841784028068292612183474378358953876174596550674301982209452973286637165106486203938804135518702595895079627426210420641565966712399273102801456797095395242529603781416908457746669811848356588592675421616737195842714388429308781771146847971836767949463278776592646050643017772963653895068570871821206703978635505590665424756952503692782875060479172928390360889065682923897383272226546949129804043597255135482595243334468926820286299801816418200636394175673285207783713469185980829393362692628377918411832820114589709538366131740670754171305049340544891779941105983964121018583851004996049298371387015386666741160386555215680642989038812917390990170538145790289487948024691863330007280205353276114606145952260140794681628514723216442272132433331905206409157330401221303599936503374154700392984834006416740083646800960654287427786520069016070993314993450227519666703374467514670948781693446052338660441596512351006420210203510530568165995591768979415360991505187509231712690282107767935735305570288566951144117191185451480750294387775931236708683848588500380612616110129204561255088554911619580729548856561091809796641519881342117371228169604679286761404257885212378954855028281125211075917545834577449339027856831890593295448158570657894069298444477029775955859904939646465276929556373542788638583950872934248235607604384269502590879734600391460193720399575666972290176297007945207103164273058018689053058817674177116970363507835847639657642213106667213751287187125084157152743253030348884272510210700582747903807671318110442729698846013776353985157578708091585387605454152236764240347656589443939111556842796310033548429004204139517726517280474219023131607180401944083192175290232002442157925285652502837394463051366910875360957724987271237592570504176507664497547761446891656781263906438034232951884012089626287743279368937878628342286331171330183021126684782116649728416160640626394159611462419316763463626213367770340733445436444265696933273673492873449851655275364315471135460791211665148114269601001735423191829830099367795026073754506767148155943338922041818829211799013747410524698680097312190571219846494431801136271727234588850732121762407662334815895726664251878047377872203785246921505006404835781720928458458205651726087423272958719814193167123619419983269526703380755398704439674617011348432186162227732406043683135973988181447167348503773521364090579495978057870520175997511586081440842421435758601467581499288533181280058346547097756813979859673429457627638131970211981547105786108149825246988025273924907913251154634306410313981123900771257993768448670024630711482057499492396602513748113281570543223818024924275805874688438890473715856279298396857145445168393681366761210996905679370670357179734548974357319201147625407575284696462637644255714597224887854143689889490003821901907944102321732683172593917906221453576726337036869168225678968262361192179098483447305688377741469661551003296482290956262441006667457568211841430425261363583515458628380388492895763613520315537311518009586964216424054447465515355568883043381706266308276713300532472715422018288196682521742319364486543947922591071729093289630578027011962459615274296325119447101184068655211742012955668430171261095113535211242895845963968541314842104772720047731672357026653623313038377626168747992867510414728457945803443890106087559791981515140220609428825269086132834328536046598873553131925318021697615912695386651023639891062767886166094134775952928886682636551006395447916064437735727551821083958607451782415731675117479597596198682318185510713745422719177166252791612263777517275638457683045400042391524800751719731444902658833023141922111976402802867779455111914429769398400849121085266807233454568893281845167812267853384831573570065282491173477035298980954153282169093013667572026821976217011382440977203462023911371297572602036156666008476748265003164678701412172726403352153785550546176702366262284743208473083434046266173027021205298205289392810361622398958762012524520472124094075119195313732716130217836044273800682228240700932752883827145327344526683194293857129187417375436639081803625514187142743935127274102700880372970096840484027391431351229064688143991907457321439651651787913937256145137470591041823496025118490247626058717854941056642198556625981768416365829847515527934698398958104741541011480486672789650807778826932163068729240407001924655914533571216647846420170118382876897199256706916982847836484541975791694135118663466731594819794499232976721683513048085441592702879340046342712121970402162787348059924630108632225519918982168025147581959579835851111504439806049718228480576030927676634713199518070886416064681155383870724586734330832709385930057965803702186207042519775292667937823351836556731292977514314134967348938284158530832666023618917788467461714069928438402677740754396126439147283969591352204367606085631826336152838080670401855882493140029089983234368435511964110266298074268331837930667474520263289944733343615220812864404915449248816971014842774496404092010156837121774091431946359218371288307198246680092055461187060116498248278940806448687521598519386428832336404512387649540174225891076610494786564155284540210696056836199164886633193350939956063712803783278221315439452342003110346866745269253764302294290003767071107306925029325611375843296728685162636193250018559065283572511632663198201381565972814949106885430015844725483593917924043313429268604993256028586132371141287899797462593539746357897825804595218845727229481784488751536148889631878766739634387309207770576410430066101114848808425165445419135040988356014163045601539610101400694393259988163571435497675334820550437309729476934654647300292674125391649449692078658321466779446794388432644290039676366413707058550506472402510516400170729610975069337723683905921263520480268677521454738103609458906123632009756673561531640919605526744082535817403682022354720060806902685095037211270060271260342949832074493573955613560675089339814170922135230316695093728270925455032101897108070379453058759014564103932237330202604548830480038280639341180741809708948307793685836178757210210566425654995622856994601988821368505805401536893719518703260875353036080414064124691620963349351521142453392454611263166476340421639229275536681221641809572196741817915563132464125114628693989961092385269879384492572144303376969066803729445381731295123789090489285700821552892445110856997110349387988585526643393887272240353280522492773851441409094987966216590214615343185288016137989112292193941217930058521246039522371656814013603760599330740244922488403593917888499089657639132618171220772120436703751215428623191196401587359204440157070835879475962399144148740795186662780568402620686284029728121186256573853400347709801623603829008193113757974421591934090893847287124482101102713591838253264450017415363490531998993762269566008358176431719032043594243789659728771545059056892908173426301936756331060668040812181265928548427991053482440240089473250665919987008475618205841279831932528163386466398483748282723936790697095417110301272638564344751880529783776886432805297401219923469361399601491549390584078287293788547519128221621946464409720069521811050709027391285686150649790503346115769409338772724078950760459514356014734254100533077707940879727345769477982716121076257418588438761258442326808264544175639103619789963854880094107293014043763505087346137469244058804388852020147277673401974413087644069259517097973359055641850950280995497778537204215890187349972946250838645769121937756480910678379830060857699506515118563820434177541796942056559049245291967460205788504036757404831452217409649540569544298644516660173562776683752507503264822533836666858065902919278445481870217454728239498019624935889615453450391899998350105227694106528751664709787759763330465762437670755480002487858682635057119537532097499568350444239846651492229457377671748390782995915452856466822908571535170186292701655732828120888751555162623051231374912630811288829032610020165374597368204893589297692779813582277832317830040073549273063232754604345839216597859187248158074653013161608453292482627784351202673902342528733882063714486084195727998092826087879448840276466811858985697293942491811343909476239680977282911402639456207321210385057963736516827311528723474237937719610315733481675066048092340389024392334012207091991416202049126985491928358595813932941861667615299824970920391564758429507124679741001060272364070052136881745746318190336007023912106573510664221262124871657548729495767148352328193830059519818178993527855737820599790284515677739663902896110769501471570425945338030662843381688651647801348088998276410420825763851655343459293113031195911756741028137266428263953978571823658236064122785763125731707097083497963830727612205088026485990293371900726217253419747066608191033655313573935002257480380672087196042667064789378799702067763374754940419601704089991376331899351715185269276946942343688761043170321528735088107924472625059755742081421390015273104085425441392971699967448029790330583536095229499088124252418119135418282196206067911622761390526452773438165421974729891032439052955647971118911408639654952625594104460046912100043748963339946002890326310928792540911169021662419554973745898854149022443378328558338148284508075924151469680803400732359553072343313220711050143542802068093220168681814543693495482652184270826635518657193337254887118070254245758796176604943399708493260195756354486492379309017995293451299731976990589159154549502973158605838022525920429174238276598753459415784080311978630642558242267049058598612041814029235350448321711753353297618092353937708588956688670259872355849588107252591321838341678213636465043356490314606322870126551528592189902512253289127973494100388398934928399853233823463388135484248898177299828526862908166228123736080891822862077246840854661525336406367581451629602779712980048397688059486828566048336798487368035828116273651405521209759447107221288317104787903720781222001993625275508078096703043650116412729265570580149995295897393131304713242135198473874901292976280309877165275398129157411225957260348679961555282474680335195406211126543531803071027759609220816879014286227014538078761702907484753457079783850605883220263899548262778061200759932346900444636576106055948952768384482389356304168550674238148543310716231655183267868424802518196439998633414053114328753843378836656725942414964832504881595378657312059181814827361425785599514044337258912481069380649486509129259254654005436518503572791049294884371038123458540648423988074600431733403639434850479989263554065166276115511589400743035079082976458999679174585734323495706096172415688418382638809760999320416226313854250611549508876737034670181170435281445880698806003580270726257508036094616451428706204628016411287721228204762550736836395406611412302006963464409502299008707008907406589101816039147741028924450570022658417003042082194723247082295564745616939809316429003892256551072580818726979811726603399917704569661718646912124904771566011800317708660180228768834383470499796761855750193537312949217961198086647371500180412069791515861841735468296774630866811377406914506015345788366543074672883321921686637050075081823848184187636750777854451781675432088565871676574843856273180986825700991871920121038532901236504870001061721460420044327039957576226058262683141277604621090891759078261416919361443727767480215021826550153709339019704912806731521036775512037305561660812058210740965220531215958974699908280621190242748848222376414437182976194260708081991103249093341196019574926916157311194284630843413243013733377854685048391166992646611269791034212481372011449406682745500497364564074425975210913552856017635561353383257672899673715567145262213825566957294433361476882170141685577175856655079363102880656812646516860065481688935990021391785337513443007309346232118755008137051812600366245575849249120896664353180826909234565229920655259914985928533983145368639830093246857048792619479711264214543914992826981027575900293906161038577054568722330370982065618519293325712529656856283417893368460458582713009500291615148761157106907754219744820574961233403668560492221704124301939709538995196745373599862735139519271808280602891429695799373262870445084252027344627059998657342933059758456315107428686019483101175742447693512674503568720244517745936922699966364760541653753321779359187754935612826771042580843409350352555796487042772211444101211082677761853856684141362995083194864978988645689625273431709963251242587929481934429096576069970367272615926957799189648019514877827636708898127175359156040451694397690108622076207295616416164370379197862273975087647203768045663908266691323204455491610127336810982465614600607279857349413286075357758427918212628787687997832874372277517016501382801921460949652752649061601143916781496262071074738109568946752159648793665518283861658556900481803162070401928335911599659754296524029837864956015571840292565578041254618850483483209544933247517554965481254652147532099217526760454464512572844609107768590102491058192208778294746237097750954549960532473249045590123507283916825903387476348648415354185879232663211090443907591713198380398412613669351839625455372849016419227297410162648150476555113648280116317553294346326779735416597750088656603396283487979606916971368906860517688275767503100349904811375260686419072502274301468366182248605697943665801995637276072256132946032663543857141341832391101230585065622472995675315358083768564029744640419972118649048113612761549284384240437368573123513650164408000184684135671250938007497157405650813963166356541671290349396623412846011413846437163843580138032412773186867882325909877781704185485362633094056197166625501417164316972206502706185649393924792546932682974372565932135858758205698103272084197230851348573211306513360715009449300830061376815485555506035693752113394933779944610952184419409897377115309551440351583056655204544008176060607376309539073185232352319284254214375633151329874425929140582881959514168817787349967110061842772081613576680901734241163413393061669916460049045776917404723718244504741784910388156430115949442951109320730465855340597556975516132518373588054339691111410061706523024409597609040857310537569190282151800241890048963538932978484206022001972820986600692624198937673556849732705043871774402860177178788753963556376912940003493020658998973592619815536414818913383291951621994388665245414060531995313038386894363490913477401397954493807635867364403487660202035898009262821098115736789836356180856373397540495630352826211534850693342187892991358165330797159046005107392578470067128984676366273910615720211973425625728896234633352986175487174401012134181939939641412863411263781887726558670012615406632879576183521891493493646414242428105495227309525682174085134138015111922307672263636701447603675200258925919376796691987337056702180253724949515915691163528225146380801511585996369588797087320127355571745533761527347933886181802819543269299140814785737799354211268869291253156410733643770143181336230467028443436312220455601959440271804270780440228882806314437288708853945628112591720599879087776479929859361039214943396524156433219817793203277943231110308338365558537991227630071683064963464748496106076189211717979948270407056112614617658828471503454565592357912456864261618290311323531436778638378982199599716513096667624046349128290732468930960934273182272432935432244735845052365110824226889541864284786589054650242327301638566956633430993667484047079391317917765844661512849079365901423548286252960658060216323191796113092521324675455617451462688192423869532689363375556599401671230057324173540771621219377559853559678820933152627509837890168096154767300590414157339685363453976991316434189716717661635251895128503302382451730140020582887032366442694446419074396516602970317820987197900303245588765627268835271012276769805199464923196401445035289546115825958259991564063546952344517378980976207573247448129138876230537529692340136910751480312236855925195051810414233240245294432524510426181499591215570026988137858720357331273919245918171466764276174418552652189036400124047425402219683250762143775238517454391373744744637828788360705146269822738068444197201186535741944553963543400311207514685330213228993128796370823248127107049739720833425484370957412017668249274492808594010054554695706397833639288862506086009866179265165446121714014759102133852568152580081850401787904301467519935987822117474393023746078609461710792619392759086855966509830980362463701480248245644345365259570354771996694032493819668410192154698596360833714392005624996311436637540574177794734160707018865835727991841533111829063932188924754584721941403990726241931218454023347512340582833979516416337348823285802469314131764342645990314684028447904549807282119537016171578888214285558698610429217273097196389445842539341274726593017307930119305340398394062756335882746642852090823761840978480042974771395109657511038872082280614366885682032951383643217844047314940610889481262676725886151875096031446942543128248156505641512485436392061772144111397523934177156537770056495289590704128042912070300545162727327345558302279523627122731825872968781414780561191068349127416032260789690546438130649392179639282481830498535729110085477808204134976980533753645339919495268927788619274428572796823771810724914049562528322043769447416059988007542731262858214775929442012808193301170282724711467175504272575890710763140224365768173136736190103065329797119228802302389270616336958615406833674451780491231411922844708416126440415898190288944509046347119332086009913893986770268710060106366756048353415093512226409006482081830170824091368312776617283956781499375730874709321409783684015107554150890458288121292716259646357652897527091731863312028120560478030469240834676330653427356397867546898089604957781984287340304574565801632942596426038435532715537883349266466502492025970249684143967788981781941999292313266909977396813465019674057887448777047499129043476568251162395483993446808284691735783932415024989313862403182902358035039252141520844167467405047273945306856450636434823747912963546223508878851097431310038870939968767129972116250707528018081866646465871682998126219530011817994062149405667431222687906018822426107902134514620680606489381627085083041551830109148210002045236809798394646029527297040777184829821661954925947669727912794120322680262061703324770380513121414095233513446615130558508488795360155160852272454282241693244223979041986930449016452035479589099644052062017644053359412614418322059845397551826712544800692533408500903619768371560395775134116626397596817643998351620852089299871572971582454254510239288129143650584685450821318207079608578383487600259358760623159626262676390995627991001059403409501505806303725527929701768179676512209318132892023497122329818901767253226176762788677021127304227351667265552259327418499841682347969741464287083218444862927260198097709295818842913164515719710727007715260468429764877043435246586276243563849604749762744630155526322474949878286031888070750218921181050847067874933180283020353124890929385533420578896295988566759348637793131998147993384249386066579244975380486339026357688428807807765125445802535774525443967824083307308149673943021284068890662388838811638433210635193423450993593103888763456174973845325556694467379784893868054118627433015906269130212992270024438654765760106755098176711291240835495780592594453321088034914979686917469187390136579133301458199046034346075541636380135602697074240610288316797818256955776159379944630918887893511040431446451081217628533526358474718600837793501263870122733108038084093617443308503280998150532653664186602630181921163888720584146261963846240089388503880764494491300386859817017051391427889590652879579732400455420255127185364196486699581483370891202350743104006758883399743126889455413684886250138965898683353775634358344797896312967787375967238592179185055606131425741540025450946702556041034881490360008492312907056048615265307472734717018295219220270445691423023833420375797297683957326407691376820966777542319717278491974122431711325955634139046381029862815781428156394026374296746832154450467361612511501239195462138935560830165059609779619829556083752881027918896325384714979653721642783444672468975045819585222003121579677707661169372478850634603946169844386858915369379576425151188698331795871520959846189241730435527147458433084066868187201081887777810088277825205660253371098223993963689540143248613090563478194259734970427665450822337768194005392690674436075770107758932692078001913178272979548593958365733829039982392405417026626137734128698628762020356069473502148874739121478626306153789643692819402265088121085207451220358098562520080522789547442223222395715254402258830087733487434641436349395492510883643324645848320288392836048058159759247372320206386924466948691734143282468228381676637331484667173080542276213631674155593136533791734906982071645350663119190971007578426054273427467027250040192464562236707512471103620958165477910830780651751783688499105281359480778797379819156502653825839486942028227138820167246584831218959848648901186764270460511095083933249616941580248156369955873153686571154003801597405458794818279029976461722324943035318482488665265864099238946992552166568037501282902211842649219672346351798576293929126962523275885193640213432679213619156672416099976410962528727919049676182509031493749189053008849511857293732259140798845235428016538887719020895107476540804957221413623050229116879035418315814441093885414339509540298632499970977645245102000110389622555759895918786782234477210434866595518691279359249118691967963022319012937000579402456280724943725713281965607576225226878256443385055685069732048072068599789411473824833823814605253478143374863989332114196187480294049878590192369770529706532983427478590957815609578851704623887526657719529727926582887379373154108454192053757307587222229625702087445045107729059039017875261238401445949380575409015911264370114863805447750697517963476706837162439369244459939216049483711158626346845716832986086737957610431630331649730857565111948309248376962050380158665778284242468202842238497128763114496423744577556850270365211649772317380493660702130150856122412422360584749750506926933018890160203497080084277918428942078968165235344059271655498576960534358140180109666718542472395748420677054116769578795529335435928813781029135414457717897817552938652164341847536789947917264715897851505405584131140788737037086578294129828029471288431670274455080757699726995595867459036090915192059188686634705391110115400987571512011614331013654503149254222328866475874137723800972375931795202843126646928049082198566253710488088343964312980664144945637016668883263218726263259972270352922015504368224248632760286963094192530281559670688491297623988579942212228055694132408986777406088541571197308710136766481399197930904712211248983512661832570378441519272100065822387191957797749289939110650212117748622895239223019138421862114289363018953673795068683014547165442635394942066136986285103351700132305293745628165975072905159492893363709623187972141848712199094040340282105081768818778859118702570678413654258980123899415175094195975563844777816210949524164444223784677347449537612972896724632036622589954713315603524294037725619435069706936594330997841973663970882219522071682249809186460914597317211506443194312176789541857873511268256315941915309411467331673630276943054039578759653847004264851254785122254418232818935987346326665723153438088514036868649046978753664448289814481673821129416983153391373556428437710222199947170632222585480808033362397239463174898934437298387992151536895757324071360357487229997261395783533207960891999055927041223380035303692645816824554796200126610516590202605240341393358088658604155540231070285636135083558871611495648021817115335691067516415729032540858536283477077793802041446531945716466250863794126539910140783722029973740200892402184338968932097104460379708279278195415622039811743382700196980002218772783755699661697819591976274516042388942724582700326576078826655206484338036152975840644921845790426812592723577702743324866559382483964014698438238983580255468475180652745097224997530139809214486232047578126430557492657971507737389807108315502804908150465300758830222392783352423510414956025030049237624833811480691950212318168448417531194462255203340453615956289099423674478773020011481879334838301647037033152011044441113592225284199760611735908885410810625801120476105315460565011892523431681448411962914018114377086214626163245247788879079706884606750920287107731666202016600927345687496020381708428390167519061050046696533527069342632172647851659677255354866003819781176522660931491929456626700479926730384809106129850150366991507288015679024287954650222107851563674961038466980096511782154568340252347166296222602122671730040794520774865332217526657116100362188347866650308921910040200056705995231251414645225419013962389397462942672691466422048731072443046020257655159020001420304020808446115788454107431554756408582108779025951591040808345257592333401571681843940253676204906906775255628633639655168727827784294960309146177903252883607594398723090835699469407012966187638699031940171025600033378050502188863457210903707648238580445913980584863979675003270650014130439750566201801617607991939786806783086644940744808250535128939172595274944806916854985445894923478713514992690984419022413839126844212299572979130423864997892212580800024186047059113704278578841193120696585673416193729290943537292872383402564286338627068397105956706945586236261869251510112091241615509049040096069400909308564955717738574385497004443887590281912021912709681618262608462997295173828270851961375394589069907365974326401872455781201228204155878001949300069529407653274252875838335160660622422132464354026231442231326501304061684366910114417997159123288173020834123102698273207765666915522911911663374540239447419211676140950831501198419999934364855010153209926857916195837705129580981120482312980209620140161448721920865945535872653685244061719100143509886299697303285537865348567225380542148302972611643663904055048476326701779985136886142075761608780434703737699990435362426073754755012413081002888556641428857796136631910148438204391641747932166238088601352890562361752944517315317881214586411770708298584397180733688997071439284742431031839802922506562289567724193875215995580422783243520216792542460178252217721059794544133917559039292885519561519177293235666673536703559499424001521935596702719240366869595637393692703681892020920905909179466914527145350942768061351850267967661512678837143553806301750098766512315297522797016164743501304770311618783469288675042572447791800599138668171102365114589310648317574810408165210202536531385050285168490072634463151283899859444642279205561480227527370759761989004651364008567543230309910842194673477258246476665635807650575216772385147189083212584906397122266770841396750418195289871489554020755714231197052083722899655348875147924001219322412424165425508275497975209937796899338015071916600069457142229103190294182486160675407795659382507760599181648219591921038885096427440929907216008528487161977297592960568004717277015252205698692420259471262135689710998716712155769629882738732227922166020224078859528126296785244809986837411302451129755243739963481477718306070265905045753927551554045087463056341828956308517930305514718934500449321623190183598913746080983886564181134823678060300880532255810277702672526867612642289889730813663455135872072520805246422484152621730961322938847283261740597449714830499390733247903450522457964774041861141976378836511541153385348789181269394298813783997796380384547475819597671838040270190006375974869109836327984041499407178218564242873955334953339640838405816672799510731403768779315060667816510635671776210456177851298078986908278443288254399910752005947919824801829492706197704840045823095129525784728626806290374270150565957873176902053907998862832792762287306675741173795062499068804009659191300339621441899153846600726741157779466496243990217634272250409342764475033838035559365632536314988126556877763272552926772595501530102025687309654427897509847103221594527678497909022854527596505499966372075245126726529802516768335196199807201023365570305832441303812216721648426655685199440707599330520092160788867286962811737733640079757901953330508966790801723975185328265791184349577241863532477594937751100717645517694971021156050600641026172453555094547505530941163523240225882422994682390135756131080394946039451341714771177776036572135193211067503478941896229238218877536396064086412796201640275698923729961240974633890573029878454876374263298600871316659474762251424108812748524102833391678755688503495515156646651805875910993125217704264146033742041241708748076280381821658078444489596706956027398383889238045074804186622423158047947198419351400188037081290304753868313845360499227724627790449924439951051876427216506426574988112256497883378939019162246531544858181504579638900242664405300421498036439521195767011628733778259205423891789452058746786051189267503379474374282690504999884009928838388762363493464763943095845066680482361201383661530289028058264661888125594364261414669251988076545275776186424481515041203687068947098889744181151867982716476439181154768866232360861634433914935858923570728685930561820857821455299816816555202531511053376473429892601643871192799746270288287075635193972964947507042538758383753920410966891338501714696460610571435679698418486196623833632710027447099270049534420443004160108503433653376246908974628331260154317196974311043089407532098548560790905139351367700222047589523233054326672713463339944223898473919042326670577659652005541849558075974347131649681300600785760699046604550925961133376441066166627664011926569933534188261368371876171107118230752817780011231885708805676952279894784381839368832181714375268090630961250105002488980727642815908518802861789571013690753765362701628506837047135282222421683426416331612446899961775995375975288964115448674019662737800755143163289005594514152266328518484547254235486749203095361895199456362628885224552535362604718069172599387534129929996131961861187485233761522260602370484421046388404614504001064229485204820227258248957396195480017724195098460339530516901257250140952972900843184937014579963858643036972981610696444280553035520099016755032563161451705961397870099996943942948790417869511032056947939026814270296065143733887045232451058269658955140934505951272033593417441480342586013812477563776283501480671065263736485790648805712962656504043036053936767112498437766770088264222588942394481027165016070828598580876560921454813052485163574625851207448921790873031314142077955862573641933771797349489209572690744168351783461114207892877286455728905690071040138129056042278277866221697151664673267485274681231862574812804125229907970939415375294590142627579747186690791537134886743689862607179555494962947795424673044479065144970693977659226613524445099282571412378914134714020856779755374315665105794417614888444600096027467325507810452144493523038031338409852630378995590141713117064203553599610661189006402403041208544105753293273341146705405140109447337934625182661605038905502349993020299161952247865032593904014481306231403818858124374691755873551926798406212730333369804784212349104130783233039758034185582310272697847829993737229519108376114760764004808996417592257891021751811296799767038655621722381192943452531317534960802606924744362114052767004332270905453952653111038872952888464244864579914175938282861693125119085511057126958817340593391839353875787035554544135485695183832310297943126624795328485043456230688592121388379476178777949293656281647610893287528825953282758432168852112365894558702392386035374191685747779251889209508325578416447334776133043290694480002735862264550277466718481213846199169288828908617392685432977789984958918680863075128215904075799622948929215819392206834335585500050550818778616012337447349936817541686282476648509649464118970242924525071466977994884997892184318581395767875824024372432508910033110224822529878373113685703232125170995392663737350189722202333305708993005367609637598125161402177963569131064722823912783359791266777637556740949040531599019349983747917816477350290395599258466936560387315686991002542915694515213732876794541537900860513778889498315182564501744183383580555154894477260130662463908746136634438497417672413604056345955800683415113017070304496027502753370189624018614057483862610876583932187705824938489587897624709889004994202350979719517224299503533853136649071071932007138017947476342954388923507636160207948348383947762618077233981546754156373283304630279163018074289625990885215503888979358124998537869479022348691170033025624308568258479704266268856567264400258152626598303690019318795718099986502150403059533928183934721868477764838041806886405159318792154818622212700825049253812901748326618590158651328284720856170692709225050039283891692525312334821636711304991860082510704869714647502661391987418305990265726535127058347264563373081196681393813502841073532801813926560037354989995002934737302454148228592088307200583631443623022804214717055937584596264402950882477762397638532226080714794419208798413275484772548729722216863480856118818496855527227184516523341579788769117141769341157993787140816375990867567318166802165222556238127013767792184904384900997220957408143184126647055977924740327646947420703356104854754809597262106370436250933480682168485646506256367387947760207508009736063302440654611485412945789419737999794655641368913475503830213927179246418490591052087784421298862856740116777762448101722014391217296965415892498868029919978988447219380130999564242143923233312214058914485862706792375431372251023368066675985398312672151316470589113792133722073796980009025864353424089260118866492692470715940617274897807334400037767441167105516682563922867300428529574639204293801502557135449175844072106607542151837007216473517384740866926703736080511541451064128685125729000789556320500908978308788907027231992530308826995543592095022330084097111120001659828744333299420046923557197503216334146712547483109937670191636313401009129524169214947966603324032185719090145646546235000029143928421277115078357880979048670235142230694744702497196897659389499021343152618630999008965723147821166857049476781362650321627322321050815254220098774509837487974042215345509791281382904139443949782968780587582323702508077910984069915085132130784362695231160896851188210669609266183095545521391609800859603376558450778131041307517005534600622501278535113324800980470575508068410412709168162410624407734420489289882089473092653100365162168078845977396977912790830982211669223470054107924478459925633258009089181087670626522618012825842667477310508166833756865631675649245155239458164118139094936578514529187330110921385113320707624370628626217608683741769306963919384842169838217380993224013078685663173277349438679025915329286687671814690444362875218200268180540348149954002212730661535208174064923621115734227439565904933907265675782753243025412203504686294404200289888410644640804108878572910800351564875543953012441954692501397941708323118352246812652438592304653439220992066303582147272659512474233685962254758768988235825410267655010775624498159083879034290175694393892102089639210987307303764454543307155368066166951770256163940727895659446699584840493273965425788224099828363547993694267959848103308211318970382540880843417340681188673145303449662704036700173190942447361376057572750007561305746066606544180511151130849384834259559548981172422485988039307479898942976948934126684967552091994139751910080296275143027166440403776255379773247755943977839103776974295780508729043715169933509115634154106751040629599474298104120863357585279909899351261055949486390858879023785912628185464581393575584211110039423963652538696306024545385582796175807732614261869512729655754101819375074543674605221963557824481392583912869149789387963814923164119536582884507185124890604334943752717603305785520578934665151904060386133266378452085974356970028310419168184578702971625850942577903666258005864594832678628788148446568030025764367469020325672520714979521856858044978337456852126945719726472626255689253649689155354097240930259241574993100245365701033352065707170337318179688719891009323151107276497858027945556083697000232669966851150613761756877407798170080772857030876087713136356763226783076679449267139723104283595478853497918890428018452248449739716490084527357103639519013263729434783564721773358098555516888980639007707590922220098896823544517706218633665230156057370336235706601846805639567043797782750827900244085372530910114046715930005476351569784620419076907858026810337380579773559490753809330491235618331430650533241507291851880686327855063332372067811041529136616707279813411153446872952316324352161933554741973816629293162980591017469352434124313860668967675082443125852758980047350558516346497664252432836489694624851326194333519658794100171690162222882736414701312327153444802029844970033300364981190283961255311061976755066913052203890837104258942856749977125062912010621822122763973745276415730983616037537685876210898864662821845856392095947198833343924759874913778464301546214048924892909231414507679095519692764326604779523661268643790258977748668936954059952229516914165957520203265000088383048005648927284453782010823704673081456761772440927943152617338239351737853861089430686249818745731170414179293193268783691832260559340926930453437606273733218041814520512909884032994845104346020331797958451377312165138789238145886160537395768018415934749034226068899277406047937423025461061335917866591577285247589183962475452338607827832227591974755104984091409951508597723692629720515706990622028908790556616485303297968217935794247740726722703732358300022667095884806843757399049007382233984657553161025591090222235125687905049620921111508877114905470122668827136518367879835569560111119581175575601342118043645430648755276674384962515514569829923278268600354001701009007394339916938718794111047928321609969394030874426876486077365002962303449017841953194224894393251190368119230034371856937194508510168006928383878417168357083050990796514256098818928964989608339821123003453806122488172222916382389494842741116598283538121668279960575259046647357598756770504415902395815705104598004419091414690723814645836679518518619238890799368788093882165163603293610173631013680691180553770358720412623551325488290655763545681929755085398515925065237741991699255627523981152708885645048201120611737799429782207079476106334692986659321849573506214684663775448920530279055307298521608734378970141670454741138660039345176305866931315403042540382694289834393911290923584570422374833746939842383310920818265311984102319246471188531854793529224797868641280798288801016186406007610713743431226621878227373336087550241983410696866822515707176193563466193526894546125158518385585267246259348623677075594231303667884256822363861595395509520263496638484324822522337620252275378362041986042560453096690026473333553866106860403764169526982330960976501473745550015801080706267762378861395502436112503236927577226418190478626865736662946843180370337316321267933007209542650793785641827681200376432133516544727444647244026755594349039016407319035481855124224796916485696953970538248362767028769780984966330249160894912569624009641847114650775799958318949601377942328654845956647292309425219803514873702252476794793034683407707534745780520372620342060422738964466332351085258648723186291884089779176718639144000880431257825979807896383752936501509196301872148299017605698128047770864877315498819294034564097371231583327784259227537851907246077303477031937496145999748949480176834877954765798260735192267319279251382684510905344159245279628157046457810428512339291040928974663448736358426308088754642294629232832950440333568504304861260753402873431797437181954951574030203361283718663316351232035736035853321836550206575016107623151905300138226486216599162242409502035678231052139588780680141976538463512578041598007604623583020748552969016528532557373134831168532722920159993988222560463595151994625076177161513746230383028050282824838064059139362675681961049597707998752769382047441737187038530451240271177611692477906159058037343935209511961661239400525226484833563912563092099551649114999649326555537721175931671337295144285768938134808286441224933539905374852893288332570230464480276138521751195413512808246272518755270777762494857006654164483543170144081803050917027489746206010081230161134783791580707725441261030033234691589440638383885429253751767779493991465207440699350741791411058356055226125907934603828199146621160355761829445638157478137991032788631361308342786653525315816997366945337515279888159274943659747462457067152994394280528923791090535507734330377658958070178901624459040497318133894732960777857705888143777784668263221017929545447796951255754979631287837451891574692834880083213850848476073951788140235063982485761716735100211833966955156323202333047715171751767145957910329181211673648557326132895660346392297323904744608016534381972755336588290347250281260549788814652578172509701497072043792242984398506000471172053054889174670326034316713683828980268841650220488302779078769525694794119517903137899640420647989336929996782391488725208387039509511956427757607473759816852164653141412362653864647169083682701048434723557552664842032515203558676981700453449577180787857245786253931798038747478120317677608632629386525756371367480012864155981004256017808603431068669618000177704943098743687656389666374552094858217894558837334297506468947355110898706381298680409936129766084373778973990394212292111653452017355807453824572777346959333018106127231236002151192892433059799976618505944412797609008251270026343057339607031773172891655244465149775634454924175847355430611985712581749130012661846341242471220063031896816210874726072790652269660254120847780128199445070977529164451264016797814698388995681506643779288839942687017286414234626829713983834690280939337163925234271511207015595009505711820485831300729253654568528112326426168969412095639041209281796632109587891809265912585984155026061451871776371627487073202353871836518972612981514489762049856710335865027330412698031902102564567667259771829025958022364068629384934010073970948259145798501742094772187098715918014688859492573917004042727045361441424088734731412925644563761169646250754765276340272747277861076354557227403711296623276632369718768954706802395400760457595073786132788423362021775607230572416956644497817097964992218285414645612998926989387719475204272595698424004596482021130092355254711819010164941908522228946319520802562765623254281982099355983429295729768870366486760611433574630715385846790113248696193527680849472724999128779416441960918265708922831507355342737977123578208030088144530395312783848289583001965450206326701941080262630822261382941339230396867101632883115020466409025905773708080667536293914232544004143412344277961615650687547992609458800348640827452377732767979650272027833470319450274192712727521453975521767889112404770023602914911196532885266922904743829755117905491705815112181170910580144133468656821393695836869574451806995368356206444863984750419776467321092907963642798636474035163749506067547048736414289732594534542471931197300082516821775816040944279766557841367169617305974407221042580466348521758142727928112812131543754464788921164574747469003650959595164126170190039027156622808469731993304335344485735050038596554150690834438536994086193949124483893505181585142353236289696439922182687499012781722146564144262957318228846579273708502836943644343969091814433393026829481948202958220454590092757288280834524492857089125475594214731874994695534922515584647953252923241137865105443200882580296840321635869345697616297009958108080048451247965155183133412617790239920516036791011699723824899104191176844034866598132952909703468472519273666302157449585644535091175782518195269644801537676746435546819379515077214576400472350385878009922908868300661584386724014457160539733243550726451111926238098350897805092166122553320259553840870105867440611982159853686337948787133342389615624194775937134169178552685683309898282125796140475591616061952345713253325021086254991623188733453278486719078332881508928926996584981459909786593053900446874860725760148836575859613927235628310468988106074820436652618099314431314939997263701151086643469546490497743199828334762150341243506585644138265335116565791754425239727894255269947898343369678273741283121232565943933240170143614513839207571182111254860819982680164089753452136334375312522632340416573998008156366671374504852945936995947067463333418824708321390355677670569432404174315239587283098746102359233826753309769067888321522904733951344275185023956095916733544119083703424208185743021616645313949584848709979146001800304432195656773038534989023486288024504830874189937681198012496927867283056211678162021040377319068551109337999028722875558532032190512541929062859854527396378498828495270656121502745765682919253092023685953021598851682582468660076561290197522777972675540317310317340215132504289744618227348810892710944595460326505666273073975839723417003408992495238497415932036849698977954353629307925108661913542094419252951225154021924502290289217337857470774787441318252142391683617011504456983509692612625262566370260667553632914547585767556193898249274871498494102599324003576420478807038515001467434572713364602679547423820019441982003782862638838433588451804370863042898342257144353347916910362911149794834847195340858524563517357019961567281816292460067534412540544301890566990384117644401201283056968630105595090234350581549618731420281404566604397955782652494594085938860858443011405478176251290403007608858266827945861811353871692131007905190083627081596554451008513550404568470701390398496941415606605844024284932660589788979685172561450191256590766984824892313868054478940261308649610544070714135205198677935314979376260979486436586377381639511880001105838059952315656947559728826441377282532970128781089545662688595675524222338054121925295953026538069217058038885952455427786656666866219569729479984609020124132412546398308423040435668220511595020063884475001697577807530158173040293118937884504909767808492895320758604190286645195767582622457725895112108885010798151583895567437328878668742694214253293851973743620711825596362816114474264276257211774737822854217479368495331665165113618633083583233745061235380186870815303289086781745128318136772271677504530656075470450271690167350533726520597966201137463470433971825142953170555795410254383215961202930601397193875954727080433511176819233449910101838227633626539214911626842832071292380655219344537567662922538986948729769569940744794711362046029623047873165597877924143926373162881853753149636428517248766490997043932124498039250082635911152878227538818249880585959077245236773343645130084069254372936647651547953051462923690833111072841413618583619490920215235445735200754510119217937470429099716072826186901688387835758027319922075067756885643526838170748895489555222673732493001217741264310683605402330045902237280231542367619578980756915479600563824461542849301836809467252707825337360671360243558144420837716999074009026181819540460768493664748240377569286569133865221366595228292906558876949212760769168670327335002654627770378570612839679718794150629429213550675147686782332956356252430396630633204170498483356662013072308792545791177302899086155147276201310787905557480364428492359961036547549882017040862154017568084658235848716448835080668435876955291243560279380780022740847150275017523950258175263491385977671553389928580233943181386063683821086303421993897990209109973975457176708597946512317685407571227088235845433268014670802859710317406998576301293787998258093683576842540011824873844459906562561689892637086292001431290188347108699663784599303866266967545700101932602862718658246825372448069359710196191636656439985202509833185151111582253263198136813717571461330962705304959892712529176865312240987170569899578604795105964699015621218538920156440503221133893877921838366300113213990787873089098758805463209847782625301901683474748817416561733598283180815174828264670864748943990080934109904121566451230266074575035165192764448725494972178558257175189703629513094968203120787271465445812609884609101793347822047484754841061703257755005687131692381910031333890335865362661485749706112076759245849764977985179783513362620805985668735766420490397795876587363745667087518274544235988178674548586063140513926960255870295106656279734934816449107546598800044155640278786389801646112721459918619440367941800790133688533859648455185266084785875519057478496138396397458998834553661228880155958281102063108325668068256365262036505666356231230317113420477735788858646504535823230978796663307633354753252880004806866575755141219264666205416179965097512049514475475840534729811288678635550994692532405405236941850905218621015206862982184882152821036231823854877243422366931508969351319700343631589232893323371240121096178830089512391336705257481996330245861644221290014383973744454789413123589336417992597034792415240784116715496258145089070521126768703741225171445177018308589347979993452562274159698560925120159078517485154153013459364207592854031376547026094426924583732982330008869466602013463882653381132312271437992133640234380084545324793932332361676903432060132891571988286796829051021783753199158022645934251668454319332738011903409869876109151063873148581154080985096484521784455267236694418534845670656952736911259117998757469073826666289323729401589590241427368298476653560195005491778781691095145201381649210336218971991330258994324399595190920189746500331615059755307014394543948246619744830244549853110494474109385679058131869036735944688199919354966280267426984719750879303401245580065240454703764728449705773872198324811582094984607685399021024708463941859788497149594557960723116283575128184178730758526014489135011434586883046999818399468958360701934565859020518710105398353975454735035023367184676512179740964553197731149840086045294210929423675927142494320697897099508055722692744171130372040929230778995202781539436453060819611294737190371420411862082292909631819582061501350841119468881692296219615409983543196721864372658042741579603049193643476755001260986281490905719277174377674526297534459793456642056972274768671040415509228039739554117017906354252281580305134353780550946555956685994439571037013294168929054309556213209029540075676759740821220645499603390430882194686068349570947661979382311008250690303075403254074645012320948423647036241974662490922749812323969183259377071141948057272236801679326732036570112602264376523101000654462936218618495985487326741767118787557381758910996832628559549574792697782031284955756252640223590914129331985309327875087012054830895745962936940938889005664236490485549129919383343099475126071185730742342427392320466183085952902941721505858750575221716245076042714028841890023957560900515411203218980398583144175140388450477184274748957064008930736196256519807436644907973568661022478734134505913200640640599921178992345336411446142651856686211367679977833266522001556758522370289137154533417746321503443091179686546810701233747379615702069137004258667136047110214323662910818498053192097404849317553989698144033332587480747778250306013372941056556537663633325843607685370829299354479816788018836550256054867252977024642559644958232611732365378652634735375988485456075288297534626029211929623585856765403934611114470153103116523900819375949157819230000306373554843275215869629967649833541117490102953677313500197936022416217841249474968769612598193865178588506629975319781773410142928940540624581520130002645972439207367093024207008075295598170396340328324600721696199212407582823768476102218075284496611970997605555105718479771887518163564159605491018890377879755123496502448122508685207271472017679657192294937974013661548460469752267440381165725338272267246807963053607828809573798338724330329152289305839464973637587922936597491484304314619647596192335891301789519733443643507998446032558004772803639859521640218912585859262143145399644695540828094969680614743662220372706957235257431353167800089089790028129474857628174646523822217632271617592271921993741998481244151369096948062805618710952607286288159089680818456834495959354323876024230423739837069910049422038154007597389282912758821103186178649396823713302947127374086428606832770880704408760473059603084328795976505784276860856266209731196171294662634581266871102093727567506889229233573802647789335179908902920403104041122481823299862072262493581464753957107206642582370150927392018932049108075362051301147122091760028771633126340870298534510507653069098231394679910611483761679978223247852475079624961045590113750483687968064064449354608154433981838944123451311904129328303737977986368802213276407754211957671152703076004952630922666606559889774018955094576204280977481122723529219472822666441311678787220836471897424020047391436023629438099204999542848758751525102586111644670955418455364051732674274815158100221160102812515456095330010874536538840498755874844657330784547668257301316419375587129354737819908713906693641550119630050159301152707180132871093197369534887605554046021715356307782330841962534394912308719225250970974174115239640386957714149983183225890856181757793271383613037812108459707842381120538682354804214802531064912845895613151066767326554367750629038491228198588514024205855832086215598322904812731371833515085388086957398524277633622797471376908833071790405545305623522503770121470573836173499644275517424866423366586575220128984526756715941913190646798208214018564237107276184775870501383367600358915464983337786356287009779862735492928818974586421451509064597285917892582009702021410501263908148291223545098018417986628526837612604538146715033951208451396607877861146263157932384091831262109945642378856796248912172335798272579632430442006623817579920441225706450331261484197792603160771863229603232331156051094924788892740872250451779576616849211768514482665378312810495290615993258792563227367481157841414916083168751432317006102865497297020705914772830169859146313991184207883407457952113277761970388197231450634802732785727321379560981520830571896897383175831885854151353289984623651274512874783585480476591673730896273493928224631630910482546827380855891491632410228165965459524890362044942549284277085065574516939946235436191365547978455459165107085262225451405919741666586961531058698025336212559191660081496905817862440730446565937997529379618278552579581483372832845762881442930840191290755197632001508518103219026150213211978180905001452748306813194251708065367423692522060334153500094437618111733847528912154132503998767530792373092053427164666217216370715613955876160625817834314791592602899152582029663419595602898875585170608133072243664846608120433830376743039349923679950940717659719717276983328104907674777550358679377346478221760354861399180711719363300145667186736675772655624281962955072995317440862630858455320217422710127087714637445621782815624390836226059417029845104047858810262149568549282919967015179822525603144223398330704319566714508677200210723481114686320959297446636140071206383197096482309201825654848689956071624154227969227476203502024879061693612220150277326779840609991026865081804670928871441660573729217630247948953540796051674559265972253067082319564288411198308068894140241889403652231992010085939479079087905499044185280541477533393383256851607806215606840328120527383315204221937562341823665455946752343286934715496285654100145146886284381010308588384215376856502030302626922985780151646085685175806210652266329474558653074147781046441936011606852094508083224628910103002543665165472882170884578594174329081567934059666906003866114560674407584816434956226209570758556377904605329764243982640468733978954304353769186498519824526482854031725379950453011397489950210645703136613948235556345390239371084128911573130816795902169829738885971742591679596383411634047825242846524191426267798084747076078952971761530146239739662541448849929878485318858670344602209156980811864588638768180502390271826196024165145445936122509604101276635586638779949090318650256936348167213452570521318916421419476105171603546756384540119294049120529210634173201639716197141968405381973932827795511300098362465270915348815380388061070575178958434904075631764043893111153661563804041453731973360296932076626629120442438400489585524569683463847665583111794904084546108107760665431873448639218108361054917148594326260083278760288726652349001729406745875549051508324680191462050577672209782750075419113133786013183454093816910982969536412313996491285233395544509534606575891354443399683784151619433208965834658811963087061512595840433736888250684833622525441437847348105285384026503218430726028989198785265983299314154727311118355427948240338996070635032300323912359410122415964884235806110706661784350744467878271780933388934200751531926432334782808265185220582191481315641957941947793115059782919407668523122784281675592875144575319526718927761626297479886835889713576196741195814879070599585507616308402089652660595234684389864818103021223493258080228946974379722516495229433387480121044902335952433557910498239993034008179782113962105978324790479540235854402145746492713629149355330673749182026194920300425601106660459064813808686886382045024512519635178828374465241663901632270778453373115128761968313359473598660449546622774775018326400725820316724424073859520572478481893575510280222275229937112638385845887710350661859598569421409672423292875006196622624532962848968590391110293651903846418475201762877245915038803225171532787857591014713811786856303164517269657820826116824518920654789211179380882272168943036431686733888884094790660964875780889377268609030661581901294654337661786955306791557602871765979209981499295896194178160054359862468665514174710710637486186254374800752594970220248549131318021708166238493611653679373305173809282667908679620604934142684320661891751419165610133428615162017450061713863107883663621659393908108522066558266075704104105572702851177773820253742315477923670454518333000028835140471093753848106942608205422651956784774670932294226946383236430805838111306527100373237698556973014203158957703253072667721622364591535648522708363929607858937032272708450121667009493470792336566087679857304464941997627001682977084962117801244080471081896921541413021265936580798746445149348544563075403475529061499343898287531560505939021207059415410383316575490772630520416978875554985790482690289117030848740078882081372697936819426955425689365208707734430893251179115472379894054519470052810054292377298397127882198846353944073372279199046319048182338717009019887315059394126634358225264609958291140554644934673084095526899792913760784254175507923747509215728658716507314369708807501604421463154946466831527649692810779409566639792950919077533024471716352287159528339393408379008663089940025281360487737133989998555508196655929465724275971598970457489041387276960968231955549957592177781451363855949078492651785092259564102068231293375684812984737032426343935966236520726719193029285907047098513966808328095052282401739386465390405698152784533494867814841150480796575033636779548477241536371034610220960861907420912719369420637643416751550791160557558111301749327028545061039282654096066899845573782066359897235942916249490294695766800338039434796268288413989290484103969033828932477132718613723026824663181273884871608698388688249331592715634827160522876819163698905429772505447213387419368478788820939303225061725961647244258214401268862464963677576390045728622502950420032544776864020696104099471027493673154229610149402899694635361488318745783280221502217686517145944681784964347909677444716057946493674570984840598185883695600321842570753098361643464325409241301082984526821649151236630673331655699823219610646817960133823012792790394746340607038047169246247400295428996128915560244106025506876925800135823824415362015453332873261277748378186953157448888845391434861393225594152657889772894926826936855338476331310242880732818609947471130415819838788100462143608230712354028880578079516531155147226247939196582716608552827603545543346685492081432019610528415495421434864402714560605699975943618700837220948423925730938296722233059957802342422016344299510236355245699409568219337326486594370964940523639437558292761261090809309990032284791201784390053445357703783127557070131685206441613553989395992958536123163240089545236703611269544484135933579000640801032014658181824837461183718770666879574163788863783341509116428529049205509722676208340903337339188222457452016169979272388670597273114095540533161461016506818940182895803316466769433516310399841580017254288343790785482893520100800848358677142413361470412398774504753706472004594325767872582434041576292524010241538580654557532999542323011665687988331843797968082100685398517592340322741363181674543063577981045209953512054027724177818694839498558158745351200737320199420414329628220526063695141203607494663384511581375093128759199920505800999490742762047375165244386781572439148324997868898309092568392760570773361652514556027094236590728507390188297068386751028481385644062522964250651542725265265576978679624208854371521236264083003607446394875568692669110191467734740462555734388208671489163769154105198277140629639550035306578174280534503075826591175634555908551601221691678284377501428839143941369957528988013801612463776241246510216313391868471302209081927921797101628664250584160075577516975370853531512206514603205361269631936125427426255481186343418888516560474381500596732456793352807255851166063024164396566710174202144381982866987045155547952351692030477539845170622288824609585170586370187494371657711319896483968048388361987380635872471007801543745523160183148133173385610102423343546314913772993471782294602303768840051822700447066466102677067098088122782758841243443033860749444936102455446403544394032443941918206982128182675677939544599572416908520592855134981303653395960634333999458156585824678695236762581137360742466734110403258547867190188485810783230449344333472576032373623105782094095252182767127662207660373125278255942816415847048280284075394728969838532860242446106862573419866806304807059596975854219290398763519289857511574266353348053743808059651577137828858924193874679881755873183844162997234086148125575419723283644713260179249810491813316471351770360928132927659480303441622333438036561551969112316802345534520988785866187004373477451484524328415340811281992193505839808164792154446296192077245125063382126629602452552781152395431997021748028991974284537124884388773497737507210099037334215411609666129044498285460712623454651650153788583648946622601246287512193104407137943180385687047080009786236680416814443214861225811516722745031776112140141354423821500233594543158236370260996986147654365019764949194357854736670588806953731873321159519350118636810085093765494023033563214486009547489246292644338615111657832785779468407551563596000610596607597170629872087561989769939994085913954084468301075216988880447055490268092943077632842124486866385982957436806192040144882180217419732496040454749281678556684195560337184152819988579649510038688982641586737789023936328224854473020198882897399059953072284031934507402819382025126695200232838605576568238549650878871315208158121021999684333412879067991423212766635548830659185231333391017077453888446120694705396126919711266288123254503144441122330337627108301852249483072288301476846509136840004140164139788843999196665012584036144656153908342144814613910394582747590035558259385503591771728240244406575593667367762518591693585641817093554739433126975709850455116093955446502205519895705266003269146025089803000084995083542144839437683090987122931047717345541780458591206482309661233985408621524921878039122077918062771161139275949152041080142606429900503349553012793016621160312349943319627835603161138307610964345554675876111328781754210682972324394930042685865603969485347288332949238221181364155108044592759893210678853729021591439166712074741972808577865890303088439138033717717236294420369257766936095676450504581716897597132635758543613529228342512748968281872260299085392411228340631024697934094381449212307737789507961699788675910747940049201727280592911989549773832363126038341293179421684433906169585770163403709951059012361576191825997149404651891635882820596812856597017435388532792279623868600096084420982257015666705201349674171068440177572301140919130783447363366803293040177431477924054466108459811973738244342432004671672215125926330722820908837848229168058885414742850443621031433510011370183219755208109941155217168184844948228875124233799165375453417680801407581658246548387707683812988976557483732286224527740641675782257629085265149499592598182223949203118599592657768689622106985830928435200062183019955283258571453273360355596295389382289945967097288925229679918542960368301149633310474997616710622662112469982265284612548309338822603291173519625618179259530339151829470605107431822974725565426233666704297132566223886560239917520377453172070786255209142022239012028254193515318712421339900408747945743082134574517998983327989194190082715025012466014772232932873301719639384157683355487265245954142759749466920173172210328156107583981614770954253463586532066568650700236334537592139994583693303450239223194889934578573447353950601551717310218331610374594040916005957830976346279925081784260152382669349973469430919064202950841451599541351761522891928390423664864282668259439529290607606602426649743096773013786111654409197143960016437711089515621280658540755636879231411721443199163690559930493024971366162953567884477848327365297967096055873760811058133091649734206544760009921858266035213658427071917241025260851138555281089049974351679101194802019263248476356469161434676354399046909117580229774895794143790472703083684733721141443497115802230171955604701418377462427050297095071241017844387369325998433146590113125010667724820764934512550838841324512908544388977256350196265971264204782449126175974374565301407414157488065233866575549188182692201562872268899731216289095685995256671397212472842831425607421273781210431917689100552270154003566730580169725000970410343110857362336730695385977184973428175404961340610832723688963923680258329875085843223101872523323256530744049486234581328604256433217601216738257869498629977083656408750554846462484169940997306628066723634315409977957013106482650594497353033609874670375108753039501788405289706565188782224770914174006476180246295741954917970687054690092711670568685429787309327437022566644456527837588267625995750370466850690607739049390559191945917530222710582382181772647348493509049911427131247965546217690127139963843765689440091140025611709911917425562601511842853004724881682300908119451901653760687931964431436187469224464898574933130308515351600265990762751225229415307594011406668178393052180274907245089122119948000870209313983046716003817166014170926072623212702286612388779182224440752576284021286554566764516772548221573759196357414807448011721931033623367030305593234092084112164559201120648058054089514235802248031953394069789243271500192570046010289986698659540326648193702268257639839518667210174412870229216626659840834582397178267709821086823236444942407707046862151305234663061913119733102410363415617315194875787966325212695857763299304893263717027172749128828748448959158445634768549440928574377034514329831587778732573518596983490028876146312238904044044417085861662040900102094733474566594141046024244475838672578250827748717623836850073482662919136012714118453691666407641948151476624484036726107066377787280281670820727414134265848100364945929571470821692752775752867425980698354606733385883595132018398525964725389913519574532505123341284922243864678379027772733599313041267785979970405411344292854878420785929329397451529938282809238366148364402637451842565177972918358708357484040788313875666832503109297905424218273337384406005365740502670591181450842207653793964579244049535201979649781417412333033151212848244365772068592813281617853441414955062993422216763757007846343583892089057096772178791406087756315482825717724717099298140962456086572479288227414490418717351780208145974340342660641381828099950116995322603762604926015173596350206664280749330956289731101876851837068833931412197724563601860982216103568177181734081912072739534397784741818715604470402064538129662269767503635419991237445877786814520443337194756422913337909558833447029898064014157598437932187497565293129218056582008816467020020954365089850177036530603309092092703317661627353191817322571290841294881408817400221412463016091669887056011951099765094489286534833394446072956902221640314173441209689251440699841828248116741728364785768336933153269152218427324255254615839874688418015343724084057274332389557748793985111337804383323747851025924460274439780780879123100294131323928284794508995762820257094711349566855158714704282116173646457200629145287383020846330107162680766348081833048744143744000677371387070801607280729349638860309568234174751905918316240285448728209541752849406292448257635288460833214965639653350589247726571818954609060277839203185496857879787420065811108212846621251425709046887473244097652411374664818747434309860568844915470684126957468305589300294626505997345635885237147238496315707083676547954972919011449681388487558859931343543461087231857568732396158780125581950403027083637890728255696512042832103173159816658698426012269639972254188163281305495703987118961853672605959182157063596011915696828840206378444935827876454981906998648144644307681168873909657204189724990857661093468751608213277362734997428174155090828088891725166224566834209907152794512803333426802482216495537264204081496136454523098958252641804486196654760190375558053402100005554715476909410738849704622507542884174244871324969554593551973046970289142046669925665922524861111799755797527028169910202452704709207897182487778767466054729820321781078268988271773641627824928087327166119333781369512131956477537068667512507551219330743634806971076192442471827831865448600851169419669660424174877387789978472061565622086206293942153256916937418688527848846072167955666545785481030505656032977606091470316336665210918541204892574598320115825953914989296061066924373311851222469650884758213600461929779593456253430383768326853015201149203216899346271620383150664870884655769436913410235150284976718309992440272419435565772127285375776903198049677696826189359960350381850454547427596585138477409271987626059749173058048487799839289523836928696865461100467475908188138834954674599473217203820111777592537260158497734402336100385896624454549202274213311546968201756132096093186179623670970763786001249745308543339121642355013372163024386671201098545835784919115634483346708779678356785340803508006258087507732233507076476079472906739814138046553461692464986085597053129526627198876543482857202299002310775816732222120448740258802418451885087801964936742574571171863868857058701912313883127935945939179420673541865690444868841948017540242044908678623854559085420755549890514653410400652886138850692639177187703969401930132891199865105680637236875522032543361172567525296947735510251868269125649624926851269471257271412767329836489731470953434047440317290353203728895340762902605492659718335087579910941999167127928835315032097246557266804710181600050655925894147614908965782993057335513465823501012817913202674524190548818227288719861793262751269506153397506633690380027507066613880121114680001312375419133316065322950977294088813106037568973260716178024895499284156481959690981734023230067077188242737416909508422012146145308630050865957830135022558043346863757578103811353554096118465333490902929340631001565785110510760622473426165748186626682727102716244520484840198704639616741127578751334035735051358092159621933377525305674081155190589969375363464435657467995301375492336784511435196595556290444868023143179004647892875819980397491694063767353567522154609079182151662096724263492381552479177964531901676757097248066442019901204567989121599627477100668514430635627680451772827981371214702468907571015167895826944619064420051120449309239702436569747381816435776556176394351145794148271618278823104398786744266692496090721081032041914087429164907629285873945735837772598911112951144303734916598982221156596923820783593520887931037771720510874683715638047422883767477433104774573107367961757185536098201427488308356863021068532382270061181524380191738417286322674258649092586398450627736192953693065818870364673059604251204768671364853672559088905449525226447269493623559719657297069780092028628752495340554763873794247502481567690931973742215752679525914960211405052596790622996440343956914433238697877843263187119200711912867908944236304142739000163662416272063204944696653779778027052788888585133555898444899398506944319766181816458473535513704104629967915104543270846355594068413970873792655191359538679590738939393298300404266740354557076326554803129517153835511940985125112461580804266478667387215446427018621842532406803863317192658122174904506542332682636208528965068472415655657918971379545137223998482189379925614495185543553154550713308472983640939366672991163583367278585590445240803566651594260361660040988201616188063161324185638385258170625830512848941362723973009505964797254295531601060183023558938683117338047626242359784147241876221701224764895900576244937643339716340809603548825241130995385861981639178379376975893468678017502573612298953834683126933966838249102066175604464935048526908067076430030739042691678443393669323261759104703283917245926431872662672322384403821857310993703963167241280764870849735660147672385528098123201465309198964747652701902442357128231526854652985884369135850417051749595677440709948293348426081797655423370399762652471013657819897370972365187284044428230703016969843899635007006914135134254071834002705688380899670802092465607232581876323744317928235301131648648810145343888166978332281485372373841454702897113959800423047229888719945734168999270382821471776660999892873977694660745708572726719531778863119120444720616591816322714286722286881028846423075351059642678124202951274623818528477147411225500237107025619864290587228391817969055023634152408892544690517375139434861036785635952448719049415807602108029064047649310182289094269392961481657925461306362795312253218078449780186135093305992644539604161225398072867542668858820335324159643713480637274352853584979402335399086885682956945077573778048711125408542521003773124948113781221108067477432089640428333371253373376706073390372634436673408546817648310044663128838241382468485772240556199807408989053977192348737466966802479602594984540726594742607169694226265043275342635521909036725787773003536047697938147359614858789934728198516477191280909704498530697347393469978464309113685463798208591917576175885222603564486821200756595355950451030942534103559559627139432028731763542372561527635120505717260008427162429233249918659324223898652249784062517309291723856952644859494974233254932383386319835405466385352481658825298684546628418652474208868942174757393415461092451235064063631280829500348371309574287852438511609014454075988477833493346967080663132526416113006703716880268383268413572005715779128340162705148819915768708249360453730500214737744300185721055313498472095421690579994369839206987161231054917761915178138730427641441135824414520296881509332547443463167070046821160916869945063400880461841452407664249088497715081764955101806797280045310623791455121515860369675947655149451641802321063823101279707052669773753400735261837123211127888332112215970486421821800030252887621759243106584952992355833470904024949423227549935018162076396869231437364632354057832059365077741374232205562576326247191766758650849260966508441026815299137857449923683477144913945495561381883983236169981576878365000740162703130122169562634701301991485675025823124832739716183194856159603699152802420728961782826219311623929665975742636706854678558597872343148042517335340288303159072821609877881933711490557236013063493463311943331218860640347466544439862927145711497184599194868572344630612616471096960887690230164505879440404384407094555081127773489086646260971129286264270722545199160636765609346539571684434103669195138567392090581061520646112162487893090300119352570685759031488275591003104012569799297149400517859305349811607358398975096541260515764436641447686579500280673811333021139824309977084031868940272580649299288237931154149442032823384697816888479806734783413201075938632273990773659045630135430899701378466728735909899499310828950752010894406725413298705441400858739814585106468609475180958939780130119991010332262236299612139247960258669972550846469704649674547855282021478485026333316823968316712828754435045538405915046946730749495170459984927640382451836591132922544435714003432558770218544878421901958924887638604965901165688743024771289550574298863154136277487333208616463807231458391553078625492291049065870410677051467977521432027759934756995039671764270656772577101589629089936031346088804564906408861249728569212806300389937538045763190735440942560366892601766707465480817211570932008850198258458428261514470480998706715941542937638261840610659340029956034164940551390444992493364095220397782242544002287028292793525037796622669507658392692881735924223338245779677707053123547244635390542217558710510729990135421880992283707180209108407669189456331500259824705497479892258455657816297596259414221241940682528855797260369668637470869581624090870180483250816412415631325605200321003014701178548556835463143836286902083784544280221879070520054205847364864010460070043168228205685295967444801693843690823298565438682178303174045980670931280155659590801898366755227872177022576825088412903683348729718638719347511652809745921017800531018335437445001047986434217560581912197971180071018351759229859530759018506798653549007108767083138341147799983981837754724879591892956614314666157372833946985036798111517912366541911027410278810207940233557181281624021854115324644654245616082828816636583071843695229368300579168333936146554460392458534279207026118307100871422248455185898409108190569581222147012442291433690943448985016216492527648393986452801054026354466330476663017002045181869973065627492473682243474984049531491677546004591332263797224545936555949780671159118217503133685208857431017945807311973632607053810721201234586419846366742318404862043593023259267664045758687630469874483563472378940246665647947907502999282744222807837222668870673933148412282931649286534937715305626945839335222677532280304381524002905076435170864733491516778048790561223947054835840799969604416647190781021459101918632192586737637573467712908134339634363357667351538660522362850714564132880429323401263056223606885313155080819580965088626159426258041290996733561166065962928515558843088030436012194517334635858986912613550171739827169324928516177082220573571895974358671273756981624147149040660307973432305509928250429761662339965592145837341530360018429663181855714944105882072817681996199528097262875854099007464923678696583880914867126829405595423029176431409285306823159471810234040619925522364191909589664898202453054171365730918543293621812445686933147027274523393514329123617904452525768104273261169323864747162391708201570292962499645823952351801906317766071338745028963937389890814468875289709614900165213899511418526664403392325303409709506625275588764955894347182195807920821656000205467428403392330368782764711091106100981031410768309229511629023810037169685334696419434941160799221427446580303493937825516336317419434881573200623923329575821190116717736881436144086611210197291084709558569406180913734041745147851896332845503132834222992310124162154249464475611183382475498463361691028357794024535453183037351838134830441743179134790956400769201766766379488056177072617087581698608009174048027848269154810110713284876187964697036164323945615726585815160221526759492455687204338463221427917529758894739323423796198994643269420356595864538484140533555008515313191861128268863630357479000589572282046522081761592555357301577405907580450540274671254655509157901029681326615912548685072088985719203324742169353784349706555243084891542009739573735908317330413723422046013793752702514200753909082836810326458300114978813227887571788750068586662429461272108181164118889225864491257749907099205696745423509674152701558217627079283695631321325801660141279009654244165127779294339820901731996957947087052905279626675942163863132286500420095287852895533132524963019723769608499718495240164194294006750731525303419187969516217281043325020766849128649125998293395900990636082508248789794750686056594390366869491488466185302463575234106945673247250771905612063069893242537155035783876626401477636797952408903856839151471763338654336697118277512362742409018915458525154891407222196685831586426884725716865260404750854454361453942726580302851016791537111583767334522111177866476027788964331415370237429817923581888239791252054819104188617663819589071708766376532597356020120266672472722405669098737202496702521457888512431394235214172673523711240456122884667377530939643458052807066311284209699329686013477089136744290662553763415706771893919938796644042165673091270576222187599124548648493170446229542234669965713241462200182905001961137683271858314366740037060205365062582998269743761780006860425083449131842833934248285366849608162804811997017820448680299706467855546916270384147345042920099379371309336813460821323665380473174248969468118589172451416147895876434413583893317830496220383369938531936198073104624174735941004799150071649598441126523970267964364968145425298063523347673857014008117231013682289322557689803886389741820227412340635645593817118121855050025305769999908506224354267329195669910243370866523610598335166781165931627890591481320594929243897933583865825882589311274163573738775411398542785546837418308645801559364305211985361998964228884855792761262267341950853944679569880987109335333454991580473143329749709487416838268313781934669662810025234780335423387589021779472925195826160016407042945494382312504690280183140198765061419481681632538629653552649886985541813832749773455205933664907462735431787194943972328692791449344833952637328033078087167553093811324022583645160998998461813410672129051506765904891889279240852715126135647916917610728595776188111200923812214939879531250157907618873446155310278610290405126009721530743734919386433115230126232656860349173820713678868929049984149774557101895682138756085618151305384083397257996355458286341349260336884112527589655929402044196012327274252771449979663878419709716517338929026083280394882469619222375969461209816899245868793500776565325516169824241063497903678243467143816208491015875114305539112270290021100575658730308085702569600293267106257792594661302508815646406975477394553544718046538372015194320643433428876121105135448866155186725228127577725616515577489423840995893115187838637169635456479365911695570953196758344944662630819434141353721068398128514327082965282517785407605331431317995403824137311174794753393278232925363921567862027509039670384364656610022579756285373945807689952254176572869086484376930004216438718282445702946012568523473200566944590262583322073079613881721334433569425586236991438260090624530959594331277798333816551362850168023358714893251240805718230441850125480261599952117043596086827465742628527900476906973588365651254424845308276282915952122822127166539098571130839241778028755035602857723416577545968968823216911342716158482457594139632025401574333863672414434501500861614434455135714486581477425785997713193495650091538183155815808880024024586790696885264018381122375874118332058043164540260855705551369972836461032188577722807833520113829144934688121393845293598178735569014307595793520216492396452716505648191171028484598022738231464597018710720436704614242874018624095880545870386425152826868236609069019940733459834255362888195696323359386110552475986686303955041190414007908249371761697925922885896612699018315875480065053085231790704713888444106072958698939726636325106415756218157623775066945821271841407612558156388852989806277198772564078619576819947108192508818456603192386672922584740514502261805617395603323281183484565706653453723877573090814493231668157036642313429855692004959364027465810948418745807411812453349824041271369726104847971108143706471383655591624808768246738415978300240530588160454585062302694307362464038481939470145760586564681944732007879360458579864669707450845336983941245043197088522102577257973438501761478597576164517155468636052775046576061770680912985478047231991347312217313004254131015176295432509197013543952336163770039170923383981714048129649646850151183838355627255703653270092254391497528257734815152660273406662708321486288280698621482850963998755473884305405966187236877551739990487609564933366767693559360131896200816474407533980673529025602168377538271042950292412412542365676255582908937786874002797248621809348667370670202663778390228385863163864375198130519852898928999710137784674879042430937623542403475659334416139864969611714272164847471254439990744784949224174525292211519173349301642549652185578582518905835536346786033123600376883417523960560523759372495388126499081915286955709106562028522830803839234975992145458106754227189873768798228944136765889089827118360183068417937709814078890902884223171624249806544334723739202988059509016568603096357268887167578449570119301168861216825006888317263891205139114329386760282280867301538452432647702707731862570461877566459278169788061940170844004452895439493479684239335433637873050736348335053682660932823155927625005338624710267538620837441962269952819889618176655367649116662861776621223553965080041628461695650657117371511272450455893466549012198621803101181824682276526800450716643197840049865911918371402764163624729568760295192850461612497010147065527150747125514392563225085259613997997037942652597170250193332729534818143960000404093903843513797621358939494128998842626640923623824286635636260222749715913067448481291635981638027311656405174378788283642001321530625162490123536904022717040924403533392538616381428605729560522969561620078266606845970194673321559707147915251324319515597553749152854725690644159005737749381029084946281052629312906087394871859888071346842995687835479354310786529514562019475949015904652225012933295221867375691316769076254936096863293121310922750026850918837112533631110925377268576136537017813694357033884289495010502718925351111017678902909820200018628035275861072358727462338484276995421856787820601409637817289688979401113079904630019655655691700955556782856207951396488032471261685935474347661225691073993512551116333813012039921191462317567081754749312432369536399616059183388372203723378153606661367132127306725345492657817226721518902567922021441332194982397210419792555829717369181009931854066498748935434619591644388219079233100307981798107197324405758880570489735957120708800254966120800902221420200820574435795629277862229998024466380244201725853921209206387335892127204278102431046511013504605758317159639275456655599640870703439852236508204351365856265438094061640711938611923971588216053010503805487641957714464406829928271375128348445753666118678589180477927097523504863889987684346818854468636399520136729427882914711675363022310014380086796841481287069521893607370561013956235625656910190848215577573924510344704212773657874701187056527184274408869060674801861653472862434539528201758693031373033102741483377846119270714833434959496662170446628647027261132780682984336691782056364323209738739695910909673314239712940415833348176761838144716190605580590585627804039557474299684741694851683506007516570226212088380402444683303080708880206713630695509421227205834875652885880547782355995765323483576607984797876969679789545048531279024600914207602258452783137904169159709580446518635860669750004781585976380337499464294267756590447832743707909764869237594407891320365517182547944154800454912927785515329080105892265785645646069505797663237503861123797646614366079602288751405826210551788787533984599297304603184796713364109743104235080854013314826787924415671157536025025139216323793249938974783964050140435654543708479579031300129657837546450696571923133676891428612847237415130235347394590429103824491996362609908062874871004767650592506829639885340838769086097748704937380419881199596200054151738025766708737814300829396571600723606920681372735046939322799501662275985238062738449688491535885805104424032063911890366765739929840527029663033762664589685933424585595714784016620121637847290560994106873633034997475605137219273135110694928820146896824139269498277932197785462868347747655927223880373470951210443684680769224222628738661269466288267988939211515858602756164815912448490595952549641695590176513568154062109545242937929689942447717653648771228049358544766943526474236996792228786670641963407481985644262772396721644680145239263783109171335681245775854106161520555998307826604338716679336206822476647902399008472921936550175351402029461551298491261711421023561361405486191783533572239699763640467218917304501195575377522483141107704418172977758440721491888804743651952651146781522827100662672185415218527078863743250006990214529401130863958449857196466938977965027057422172751476245526813923134636788954288328870329109662631403176274073863402412044395843609981293627382789810732539570541519695037013701016044861260906251212420642994703475440821112895382444602308468874852781047482500373638521662200296044158746244662736136324678271880555564680302784902541937018951579775070242184812349777509581447014740604932777500954938551723768467730077533423795273808754986953107186128903102783579401958202612466053217847506551143395595755705675970600687603607583999751529255185151016205580735846451372462006571478380701341149443229768167496224246602341562799576065970369235022317830684482993737504263356470212165701186541807791942599349700299567269695416372339131998212156536589422796981160835887294681919810985018681675082690738817068224474455559331041351911212067818666029603272517058068646603015421003584451536488314003963022574648851038870198253858361516203471248604542424102489318599788009145211626286575753417421994159084545620688122480664458361909682755563161543516582974549379785294565929389553653610469584525502152735405512713207659710735660063565188569997236416172317258686142301356125258410214130946274053957746189790961580446607330184075549656932242405003475263572563049050867758892548429238088717415212194481080609741983079038966707542496854130970721409073482242529963440856108129111892033122137212435703832707865726912857432337751790789448935331530093001163715116868934392125442262004412582464156928968612092895761635608336208770517156958775995221740522741997812290643120287502457991554517427825424393069803411345196206308496418646318165791096229254664269884381235973236303798802991098181671018862584411658172575803076584407724798300260100913685721046872955995897909487094821307759325087178433933137844649374114626975119618445163474423663093114544389942884073476018430758751168094188514625148900534767429851834325600746758109879970116349782235615191075735777668512614176644923318387479632086118049233632614848141411143660866090757553950498974845040986059849475671616523139378203486308695777404748992356589715946765339060218312562052409834187518542808128385713895598425103150770756643973161024743747928777121041261451085946236202760004297911884549518646662598920124341869333238843413226078978442122282581448316179635239455828937706029901266909486859061012545187291281136964466323739867128665450536003155715504027140909806321581517775600347777544021747710721458597181700651704678192891032931648007551297373062591180953750681667171548810415686849761074838479642697971088911478564865783165178948953062266824899299595478397876132533265617820217011648302333703764305208876720590030819949876283122518604380573452496452162530450139696119900164793852838096624853277172023169070889367010200013130637930464798435275702278802252322394777428426671502621345766548204155411828664768879776056307973969758543703455403513618838061815889887992609385024700442813943246357275771193040980792335064239756214124886818310549621377208673320805068110622932769683138750928214748507817777291671564554086799042286711633210778848544747738859635907932790509556069864892484070987283472005505251634919540241075484190635412324885821543577987847788683415534224790474312904470081353707443313435297186671704121056638191539213345185181105925766128811598240634416543411094987321069481797739459812444679080462390055543147478649675698139333367490426344933264893832493908792872474393899595857405161683008375280996248925451970746158688060968849316332884971127621946470112641911260494821790108072687427257604220126919426447226001953414904715757010338769157226026039301935901302827136925512719065069126441202893641146580164705256912020886083921955586480191506301991003514004675176384654712654083589516824374082078361012089212188345444611611353901128575378823059973396650693679842408107207326656744387035743795666861602676869293117958810636909266073446096653123953578783087681460030302299738950446448592954648528039777107496342854604182860895311693839921063231392518373896523130082223492620950806153142291744246102513234317391534341630870210896794338933009488818846299803868239210739031530423712726953523027500970268445633628347828206411669582757655280365796159486512961150202236060570529058594000644082666596168165296914391657437174437769634293692081068365667466455467380501324456989410781366328464817045799119533880890079421212647052712700422669104886771896826236764430389079897676544133458165437371767477853178603592033267455640679320933612714240289863162185686194179522828615468826213913210226213339742132396763701189299641166581637408794310172782735048650626493957701976096022603501145613263405966335031426488659300585215616646214597135843241963616422060893674384132894285191889976668418354832868796054462823337484026312170074320211722244255955200320660985349901970769990413846298591923688660007545949362896384358574620272529288273884365553412516248536259549182872389413287177997409517248584097302525893825954659361423821548980738059740184736916226884487701521387021160129511739594161960751347958189576843828238038493177899822228631997918680232571373542634810245507944886267578997746032466473745645611961760625748184409519573297030173301116920780971639739859647484738041395353446956400858634935341966515054847610657925298263435891476786418718445284865454181682899321146594074445411235092940942495303972246222309953945277559527790297920131555982075917672214391207646839343932537898984013049765362408432027865999624673175001375028779244678327253774880822537991963250467912554742314299676825035383511539089647387331203605974946173675179039041055451388380855974773418169022454642113350824807253529175331235673971835025151206421099896931610420324832175395786285582405309929249010316004350589672294721708514098824256136416105881306488096065612680744575174893697273147651353425474018207076759926126798569730829941488864412928477621438671012894325801113211135442318061096655824216782407211797891866282971909132926889961440886285205857000543525841828590110079550627061538826654983343553045655606940986375873819561664305659761053277382903433865161209141937721037184740712523471176133872578284820908850666856046371298677453221485940137806126867804495548992448417904604110825832406284569664580824900139562109114596392999926630821873785206386814053297677048004162856255764986240906726747692111066404463729858972923134899965201955544304292120735802773409638993487240834682165755437224156673465397093784349681104218370311283863998973634570809949734088580557537209407084579724493692237299628451853599278742010686363644411228389608859995422263387605976817939394584625275413713469376074122778649315398578533159757326082838144400626015444371159427723761524810495746436634130381376747695378384520889230794430814968833274500659908224290487012058809093906593567744689822816464386103979966178030967461194376404285506157428094410826566641942051384107951921988279770764714730726198551071730421149779081352956452718582111788375944664251563789942669920921045729815786284758988742452582944498742854176418443303917851515316352560881200590013458159573468954531063818032754786498800529482928712779122158860947616676842499904987963770679319937015352130823160670769669019858214726255080512386655615781839488856967995567763697174928880600498135040228607614500429573004938709093868188823487630364501880487271609069117141899351722779215882010656325880256425253719222678877077771417797068079407648495439752404722833543707890839465855291326469579759104850388133337021697035876489031958398122599351230680513939636222745670536476182861147677312137633983673151511638594422086759726594215942511121856235652211081762391417972138408412880022450715031208787662819096214693001830383769973930271848878688176574654845509412525943632382118770007665315349306454273042257640479583391720048379556128187104670776506576340544742193161537540173964147874504631665180610705209697668053531770308754699765842640146275493308481509388599123055234736950115295491184158536216685440458210544805418866089669930705385834285970130826031701342048614872486198760377275583909907056401966089950616271083258143277128877265619864588811101546781042016333657121164893690539929120313578392021121502164495649980812065315929143050087227397368111484511657715786477589648779964970967835391167526396622221261015702974931306729831281603370012618044916368617218026835045524019158557542727178847316175266087081649717634043564792002880113310859055906587783895882506730878061329540621294672138482706810998552569114026647817110427424621068944168528686449282468856071825952725403556895209305922006385308290462572480443814611462535547618095633433619326527868462677679085889502602722112725472857458092784122359157135297844395360922361072871820283782425431508493578963510476978094538705707113464343119973519361325259232942129140751830839999587962638019113890203902614571386105985055295738790447407846657044304166149821633925167038801212738908581293353536588618657734676650676834058760065256206829372395093900353973820044521242006712760587520035616724059869559207785457196675331769491451475501301216344093573031429400433509655519173520478626299193284769453283661866386451888644433553796653802491927498241738703502750933107510161616901397908982746389461422535518025940413299137268297283523274629966259390077393605761575122144360026037755749418882439626500461149386354545342524322145879653215164052871330531137947970715792490157412075949185251805899903199815023217613001933214136240237998835183368963871255558806530680210257425514010082689700274491128155207325056492423140140453752238634408933979720473820445011894644466425963943777830655449991009295513948696844044248683549569257101811012064369300986639081634827034211637211147550899996085559167369116178252861198529992592559585624627488897731561636804389660648788507195665530249531792696859893126099664039106441499197137239275601897659571473226904548487495830047402782284590461801007607948884114753260287923842355499340912264162329665906155923622342146241156566362803009765389887617151098333288544908976496066591024149104279902133751398483803254460197122521352970337175357730590562579423999395056067925546716986938438411949390276104990295300383724604091098918857638490795646987779689899937518395562855250299991186891019668928975702048170545484410166645795134629762271720961825614152513954395022998163045129541552233765715891776047040717557716723042030034623851553956480214893178715579672530302948473409383914722696571871945994195084716789794979103345060823072676463317045118262705898703151914340613750170689086501630082038511625659693242595582738303055763743637909608476361504663207723494212568739157523897888063982040326452798017314606786857466742304139110463422025319030723062464062691088752784211768368640357950615001882379766792544934995856590392611852073581130781002813551666076400234697697206292246055107702598720486615442160658433141248766518343490578188402439885212861219053649648780350655221113311580529372543144827822464018053289903997509357056204668485609323836518814840597065346448194682775465914877858246630603731142446329209817481032930175454166897457441198309942552573841847741035197527924857846002832737824297200748345889396585170527629316796975525950519954369105569935352862343318702043260744584738264423573425337198478176687634034392506620882651871399646677499058886261133102205237687206569898254587076127879957630194688448339108856790324707265201755725700672375824189985553335712909484233116260885711496847676369355401054881273232763384332327450546077784942307350057443067233703852837749232830566332599874250667709897542410403429246293793890911686976442370687019150623515853730194372510852016930718447701415107513343295353196766321988933048906080711765123518748563712523272065902817421483840462059160350915534339488200261076087918565763270400226737313295168373379602613336474691205797995176719266328374587018387454373792676582701627833641137713956254624489485026763096107532987499958753348215120011771347149760616954168606133286115975997753869851024626436066833002602215686537089920195124605124869306277171992003950673475623032678134733074554264795190760181640532976434673288465796385616326515632311668156010866226717821614735769902701525003926083189970963587760891324289475011503787799271501829869592500504325774477915137401055564683274669339997104257881661952999455780733492193570951640708966846298926589480574841832452283545591501153157053819223916359456907153282290441872812714935208480472856701286419465969153283295674809714360514727136205564467001702577314339770980516920789308140057941662337020447477595005473185001294047760729844939280362196344295064003241419718649953878716656382825507939178186172784508914286960824527803343394054502856092264000886518979680224519790505648516128559587884327885912055633627071244756754841015977793333966888124504479655766157139510559465119428090102129827144674976392993923730816291804302291773426943053790440115815372205665170340009975595572795218028948239430647548357944864032561884111760308472081363970178712948149840613784995192046311975836703420754424814388264294432869282663901798803698780270115428321598017778221878120202918012632904708143089619490872363742573752277953201821803366216984706350517785721067426731749526074937881351754944916499356783272126076068645560031529289371244802157058879746515190509289764861434289710086196740880110175252832719021776580357376974849597522461067268434508271223470352770957747306643670409695211584319196353825405143359915413394281282020094047411988862325793901686138825304393635631497088303879992920510041930866473337958628101065018897782701855973120512271053957417183967596842051389933919971971413941727813086127948875514831592463228653224480391785639948621770953813187890743234426493853961186237772335478160200466143124890918657645290953631593270022754077350923467271739685211348317832695012710758418461073586538000735787980997382786209441949430314899209505407817396000670591613329912939653944229893016429260651000854233419083564918681911923355772703299762563574722593711109019887575503870756960344947720360782263850545029009602446418084648970111362316684545186287939153705169475890426744185957340191665729668421924155179754752554053902329176676128251275164589346308429473253027220923875199366385648310855106199924747573727758319723693518783966295979660337508274797434976005437620744174126900861268945367649602388471662703957905071301660096088982268723773279337242987078419478672946210705189746475371897785481724515440897021956801404066840345914477930182823210412708618843432695606048114670121311513631763954276609158522040000936234225138438017381908025357796963750070944836211980538353924972538291966088593640297790452140378442136747335623697621415808519365788069841341847804474799585312073034771187607493497604076600532358541380874983322503877465488160963653535744926486418611111134554112372513250901909071411924181748422830484973840529537221201067892958424425528589471063675851165548287691457105280309794395141860480271376693203973579032899773472949389704101467378856389626817331282802168675404726025592803831688332340795385894484131212506882068744562156987406761614908588193195762992142441038694816770756410335198867446954967122978258523857290527037942643756996000115106985452562007066446622823746066462050954791141117215591358695306856576292306056083603352763729264807067505320062906415204473794424730745646264546074545575334170990190438761783511949279269809964153360384618782064249514786477799946565095632619804743774856853186191045497225390601682708075829868764956799697151145643286626722028279480294188916634401836700476770281839583872542212720787968376698287834336211713473707241548645836075216082356252037698217566370512523024499520873867991547584039924160356167954145960432652663212704509685547688085634827400078267104545795288329925842978666808988635791597742918745385789424851370041201363032243769275132030724963992988057257956266662575856140606861618599018500869812891447938427781770496057559116812703101833257830817795426490765890876471403061027083986030842226238705160857227778201517679406856274034196029998817054327865186535733390382131119186054456207657838332448608094264517893614982439003837453672536189485608260047535702321386788810014682589303039625685824314143500141663548653480165890610398587743331593971877056603069769145375762362262583102206159603567858849370501436639528733434789234016804594076539680330573911996919326838093971036642438944843019777190960258999926678100629596672321701900938653425789606974824340001658815163703563576452728981115123479453185883334542926929631461357454703923973024701934147236845939855765224136476203895660605065375709326063416454213119788427162255246957099230356770711551462364213606798565216986596421371372466450382683281907187517122586329845565782357582107734687721415154093761528711039615815647793373418967900366879938831562578496563621903040433158790778855639700424449018154148837438040431969711070753952487421361621293780469648988846990121476890240076584566814233294065986024322327272226429784292935756741803747520424696560687930189181148591459443441818924210913054446434029100730993549825503566999683943038525640321440721875981568650125457905807467565181540540987126019296489147735951801952933541407845302567477528789931651434840496215513643881659277034589251811308907594152853126785760407904642854157906718541534639976324979533105805396800191438531664739141350432676640093502598708450380017171066491129149350086681995877059653546308775486099015125785749160373061114706555441445281130581151222687001712587513427425653298985333311649137521114546120589573881211982486623131286049792486965201096599187158493761746463699141191647572920521033098393786830312298057745108141954671822821198747975070759684827898305226972296380524732605783637928711641321600416231884927180375595549620261807727969784248642118124257587271099469355732191618642160462349742206124324906066772106144444150519949965895144877813767449663557919545971002298985419617715047543939927584493441298780884888241621219297864370837989829141578426018437616754044842714777890199924762696962652427326504335003385110065197412621658677609073786515039831401193404267380331968951870298000408405299998349752365964628678174887285324202399124765702128386179485686758401076384128001596193960872900092883389741481214649134449890364540058774439414154806859536196381192249308381707138232624977395499786791511328207492495046819918560678937226281283242517571144745197277538987751907373617119207234902271217351700002561611045650028642447676236876743126883001302065868307445966503331958988956615042663156396970923501119466683642292622620395885990920872210700186804611044597768592655232897951043009946510251843403554779098545027284400732895430917010914924255766071721401795762234740299291336536484406746762273240663364157250275756198520463248146575358667050003262337141748064625644494133385172743501774466144679330104243776304290295216138480343919435209487091964188962647363018427772326871653270348511484259172091963484215668120272362663010153732776582149143970838603388847952002499582608575667282239619448554769412877082189245351923278932696981142785490963089326587164978690176323818950948349149714451498071369529563383609257231842448302134473190179300375445537701805891533003823758434602738596014815222212608909829927547761873335036273024366107811763690051314254790583108467836868693993004043893475781850354594125401411567485765719887670740815932411883985092686465538550008184456344048208499930216051529091297919716574421334093416587048427816245232485698785709832578067727731694452849226298933275065975758079926113125889976490943389238116472891113820942980860708706429535650288482981711380404811703382718627804911289457811311784560515080510068439566046762048182848317614262612437334652447299974859919390528532184365339484937851884716974803873624369554897815157557546780542193126273727629669622201431230575202344836255352069063490341237698107782268561086102559259549375143044466197973580467975369875929087077796712982321636240998210023383646185159897284109608708767193968898452508966106193707858602539651872262028828219055048459278567956204523164226486149507601613315190982407265707682519546922963768514793739760653911810158723595508218652235692525536925033020618437613572803394053599807438346755761758893149825425074748130715942040172653965396525722954479221339948215478584103819949913869957605232301050982447100648429799057112389329099078207511507434462126172643943946784557580331117387648194354334121576678218561715092105758569020974446281719853941727564790514292760091812417845899942018534581020547182291207906261932458209244070288216529870927649597262608024169703995542178165621351546205191796394166921910747595017354731256644699621746471026200584026195402829364602704160600426903192403528523765058744301462910405027610705385611080512609402104891976488155478265506036500949681450042933713520283841170733243300102747404792020073827013890465129541785248790581385330867798497604754707521063370866409723295572082276565191394045386448267671159229782956513535969862449791961847650011632886730136138738405345177290825197413725893507132541547763711766651735273932141202783514166187276303012625363705301054322730870518845605560693412282407499742693817865662392581797127948139819894125177475737759794010992371999132920217945530705572820512428042759124784136339069004329204660195316459268731000197514053025019515259776621422926866868739146117729641739956926680440677150551734240845456519244103004418926173643415262821568539553431549884339785261809167314986657013599091552104006671759511390768486810965712526105669295613891417466539971656084373501421103512003152652948033048581083485992144300606474172045175592076254592167385159400273659428585947873094334285855172599911422607365686350073111836278937393782716393786879771586562707685847746003543308489944030091719561002988252395442083494232645394172421161491451630031334477019686026788789092190814161008773002988429645513452470062323155259393087032777228320511598498783494903851040484094940726250348395820600919620596621319475511037214862836025059457591327387226270213581185312753815618239606876775679482356373568651731860283559306732162477228625100098043797857433843212571948280848681203291483609911666278675433171576462269088410899872522073198863207890570730400963400778000551096941635207656014742961629605504864132456809228952186528454539919483941842563034081868815268678943840295012440571422154386171852717102641293815431718889523972785779807652868101672759740918308550057994538045705995412692193138515745389439076983765270311735161413840743929867228431663986027482509428590853351295769885092975487879864936761752447965503326243301150965847204890738629457866428969734895296754969143103938009673893617499395346651137637122596972454034070086387713603849656477766486257090453389821890002284030993963741911797600031532666721059260270204709460773064692461035833254616869914024159269851042414431800834046130750098407739325884699777357403170140944503547873644012215251889721315963970008806409575226220787933720279912410225749379011751350157312672409306137468417211287512458406325612807967441469174701971253217455901422309827114074743214094749493536913228617374099621354984683661689397242244397386488164355019651006188121725531182720391477866980751188488614577993590633077200326887366925430106373408643660116076618517138698407079463669849037640780867548593986286403802441699696679973112499565413842223303698093463779467688365614687607656882707168777273411076686854520923014219888215573171225268979487134061404836980701763289124391446963617852584495947882808154099027627588367635228039871324040129338162814305516564889558438983841342267629058710296207588521496314662401246098351972133846336822037000963982465655125150225146669207441380652572552719769193595874558956834580304783962129121384133701981223542310241295975217916456288858545261504744501362658845355058605998032142835352939096488988897135838457661569219716769234826358920405301385338562539200545035415620336558050246031864837923234476684132373700027472846295285176293541536222587250243456854820586705556405142625363569759807700158705634181553519174805840325331984943937261994445018513722132929754801243134150055702218621609708304218155964737088300639944533004562955551448424871038692141521380496159924842111741313218744962956659552588896285063342087318945564427545475287313806196714987661887729902450881058356181969694702653300197712944260132016021826112445633100083520453135875546751920508447977439909873738076380232962038304280773558304800377687953272881568944588454013578557148923051185816225710879577034792015523958197888217310202044926705782305147952406341425415509071564972578857595365768092244281537101380879159766256853527890474133727498964260945669598258007947094894282003555859899874679285020656020014095817732922853233831711652656045501493339354814021471625859932746593701523698272284738486288367136708191591084124592781264950050193908790962248218627915652779964318049061803417428249649298851661391413681723789449106268832181359545014172343048149084800823176436882959248528669183917996263404222130309748890697007193783690308862915116491533742639172200070887418013990924539509972928336391851977153040728273071570489698968079202091344411056103763654917494492634647343763673279769273449270091655031124764094572493689923450889392900266816318384420469734566914953186924712590811188259824850952769101083616847267850929969311717029444888590883325296150226263828789930170036967734108242297676001433020436197977888149819272285465286849059632516059314687656159056827182338203080513110117403434707116429541063046324420819454618262143734037369227053734139759393565521941247804151162252265271063626942304093627361163562467262892474619028915038363588017944872909044755277757956056681947733331813181188847367194307946633781363810324638724280340230394280671220713083894762279987572356703647129938853689481356963373428137197221937494614727319001674834242400727932703779932218185576862643858742707456481057883813800324294279890461510082092220805547509761997540366046013587132445797341301428041480942936069672912984208355501972622707367306766702455130304814757439085071273498873492858275629481025661853793714691528732293061154386445762993698482009812387741285733682549208882424292187045953328819891138373958119664933293638181055218960986131742811980641402253559328928187944938548790190534644785789249784408709128190924325927544529593070140268705412363953858628227568544115326548144615564571576155052091416709481458690075792418177442527280589938232284692151218564863767104954191332485133866317247717764044661108239630577473508497298438929298194417924009190233619008698325534584675427377653518257446783189630980005229277065996919270244895359236460784340286684293878569124582391937108904214643139525859662582783868454094257813620465666038465419767710252273756415642401193341498126352090017482302582246494010816191186624606647957551827339527857872540347187758066511554836146165873528829119125731627894483289345935031594025427378611201378000799668807242989058100404135596180611687906356660763613853256626545225525247056224452318952475777624447943426761870272265440939562702563030536254481876345830161238311067125741795775856920775965352887079918430810234547099402673088856406659915095964469160371463269178933107303778070840237983296414519355271058073343129753048183781881413120430736181391624521073842324937923630204681869633299441761480996911362757941416725984181365811439306329577879292817500179478755815202781417538403057923315040158058799359263954480057129181671827781659459448647446923400078116856742510559732149406998120036969886889817109378756180673330065918839746491257063646146418337097756723170173724487588552225025115364672974843868199019965212099769312096804243157406561931916603013041531084708358746336846568138419149598106099239176940959514977715973904200779638063844811052214704877107374474117213076011242181714315648250282998103137235514422275911071731535496914899709669579632458971510995569106960117579850673265060649802760661533794875871195982320161517919467892744103424174270905206167324046954960932358500336230717838473750658012204774234567073538856026473579136909982149829849844955205743732485313561859935754882511181211738883926410828222436069562805883034120503310195858296319959824252239926927061754928665346220418757414698143332308086848220904004373699074946291689588237285513465399278323258956686575666963512799671328131185401193313323454069689417974590593673337783562454325405548630470974399940148845590289723156435765998777155361768984941445699449289377797736376437227649843687888063755541555855190930074908939610520803101915573132661606448327664869809027266512626521488978406502899775681333314641885616284236757639375335952857965067710167251055197839979563713723240299216630396255105677341025853616971094345640346446140373178058955054032185575038917255839639166091467737496062020509450667419611586584216667179212896485350399389989683875260367235402620419643507977480941051189093794504414384447385879669713545604936483449327731092116028660509479710906223216294784915245033977468100259538925421762097947662174078897254058572334739983781903456906385895368152811447461554475760280548055731503647895837857053390969093140395584194768909464366785128578783775998314340954521166739047904837118549502774161293327228807681393954034756662173331468030888000411179569109299729563355935266737194493718621853319601961000734532086607797898222060706620024266293719952310357695851752091930147809763385928717819319319627290375585818880174590121962537243265260045429689463391833529016693450523953378345902214382763956920173324621768311906256085713357242224541834590701620241605670972984302122642461966688305353388678802082381720790270860634147088750733029910597308170451668903926385977522138796396026590106118517180310751965701733826786553723787403749663256447180555826126393840415415763522918556012822388895182815267740806470161975694280607081047125449404048409836058553980373037377039841104486994886212489232058892422779878492881094237664935817958147475877487827640557618203921771063815643858156729932543277968427150071582247772015651026555888584822057807748238554863833762290411278229270859347084699298149186487711226436389173018946011610024482871071091076047600825226679223036160423110697795102943644618510307365702590564892500618430020278378941953993239980381050444251421986844195768912773615107509989153753982696007665107078491982461876849520620718220285233022235370164559300545104739714414674776357495399071787259270545613331910620382188854523036898551088824342230258209151454457954828600577430265556540580468795921185988263662631742083262886430969156014780758204455511281107926605971523498461198792703159586472714678431411200148999861295885668885905602327765447023758877452939563326729569565425934333699336337442223191522579978412545156652216583782256833664241126377398285714954317566826561044922318059227908065036011099344645267724687143660964447652939450736576847664179948623387204039253710881930026884215067102107158162816115374462783828802375037203427750262280291322247704273181160785822640517817792753962036616430152510025589421373012803326556594254705309042340148296285107394031585932811065752311359396592986951918413573325011406817393910174844165245719790811216925060847824061003368724313705751337824333893257749184223747553186641549530284904160585498312825005098463264753976044596496997077231042786012946357369986122812912776333822861568597868791575942952189929933714696919085680736237499715963661923302416828711211966688777582466862514384112732805309143833815545842118191969982574726486953301980751775495941515558142972458660472914808089414757926371681285959714183318567939409346451523434560774180533418575174630551741887506990998117348389086235028211154169288864229052259689850939449425584691387980849152501872155599339314902810684930598952103355911924600660742469962298193249221008897490000526562009377125089241658263987909076013259644096773895345160632665886182524396185123728592477176390686170752405769604262606559507078184354586478458693021712960255135462470880281449956882405926077142516923646229374869336870198604922165489637732329173932698684165618376596953111793088293664185097001536488429991271657366202477087893875955131155797478021866424414714411096343657259574453395269824582429454718921105323399459931177259757444718229178926231497930176104595893191617273746183310328673637688468113982718628381348525463005445959724792633321139844316562595694888218799517266096622724825988693391020223710246122384745690440220763584428851425410737409141207652517682488270488653692894750750519167903984111165384697217577547833036581675925739404828470745187753040323831112857560369058415119120425633476470464534849126852061132911767915654089178266936636268213577953067070957737517627680267200776624758908398601987823971384677824824512481029645500404367375585703285368905572004511735049375443967503789665056270059374489281823504131130697098566689424767659433495319188631782665211963829682170306951451885493773539210797012733179043335852513266073323240632479659599590581645547286825967609501604377718340179558436065487037703244205154655152975459604306615392603025138805444331177372076999040192165592966371740881377609800751241456917582094733659196972531146370235178114212265175274617000084144617125342635766085874000247558625244761381784051648062586564046249654019951430933472306308452781397537509860819480907100278325432397642750114012588748392730413325410074165408912455398654219610807187630353700652071845190355358630822281418893715487678560021389325743052093460166869103136861093032778722691096691747193920614505548229781569621909445534589557929190900136628614605000302232120514736354283384464466416496690326128724809103578833652432856595911957893064949936479320141610017674932345602113341449960090431064924669000504888654903997899853073568307244247999076262207472519444104951452620065730476558662915220374144819622043685126794300075889025306287534238228601404799724539292867198643926171283932787877884035208255793149275755874545544932120099593179117602483230937949130394236449251837191256853829222318097065957174476053665010328894443558397339430760667474695756149205912477434660246675460224165262390977823455743607907631220137052450558472346190673696283976144858368246647343254990833796591875268072315405617834944445376289979764235014851040802529865916150298617689153648578309316926336439771709913541434025965058590886318814075892949650811830652255998375532050900923198062164506962102130936796663624158355365496287004309031924899443345091038644830409685940050748836719269681476250237207979840861209595337670969784510374549189873674585474079831278325428010795316314263796513893107713017562538154780936248461040405140884440913791897652870857041729180003092290090603006221310747252080392452279017000134353672153649942255383095197134140793339759031722450349618509110020665984464892721005307007019898246662426117620090603625166593127967407889010723462370352518290060537927784777342006827441271080084308885038615454449130373040735737866962826778375523571385456700269267752376073312123971043310723373589110090594254919256924019049972998174403472422347760215986818975759355048652735437191727415664167859339835744194900614942944691682191854344697683294905351191376327646844213646614669574023659751226650650501675165043331137498827946397437119561472474945493715695856497421836267672482098687261753589260001392941809376166432459505135269542322162362292642372727439316437776699788024847958313578932374691425952499243705437478751478717767751123456754456941034396226075105124485201337624438686611143356576585301624641068584449815234726168336651832442943543968573341260009170821399888098518342755720848928170545753875945639870378637071304347844133054211998526187442424394028140225835498391208869254927055999221497498294801208027765160286032514318454670542932922941809887270678409320399346993506668750479640014401605070558969424981554599616725517701777842519380575863447013990682868765272723416257972563094038931479353060307774279498246147880296990239922000325579263468281186265082554307477365760995588704553487469166809016940730745363080674198974963457399038862859598140659781907528280402379831080931466482268745127508444255137755902966488180647979695808849235986642390705387062967983096811366022963377486552104399064301688197247133092497170250877236804162761902010594326831389543078842281924184201871979532000241929998978243580072719752623895187059616302327021857963132755464536090033019777506711940048465372400255602541220512271950860663421470474948290532819992297653902743375803129304402019813408163723048414816525257714874455602749779692707967184890724651026876257700272972006187647572525415036992113497074504705044757824928740588445795355919975318586692895567091823128113440987124143902509440397788563402660128842600487627890755902923131352030095744253055932526646251082253802180720465320096547438426212946333410803015734388118051928223464120279241359601200256978006964741825288589448769082991677456612192162024687516011240747972433273547768102537693679586992396898039494160615755362453357768435697906041892149063678662932409304934245011378729948541959574971779538933853008417445975367973653066536124983039338483685491255631558919925558453808689584397099579151716446034318111950927982569138637386291099489489732391327608866954050426810939157019218513543612305519808900264903490338433116985893517162232543273409355460835712302796696388061983351301595466886327716436470610968236083432406633967040472539656127608309415370689849185228101749913364613130322720483043909016046677122196714382038475166746663786316555127252892426644883965418539800212920324221096367831325058721095356933395744233319584211560377195168366877491190403651187112465582752071910237226007825045072892914614572970529898564121767702972727501036225327997887739076143694360267228398486626481302858053218518596919308751118899207823511723162184210873826102732790303282190602815870029686915558672149474014086221590812252136731135433517059804186093411228615975266064260362962705178803830262811102917092039674428439071755482717685720640576184354432373667304138416243569256692803176150624097375307076314090443113064247947173054828938302283277392231354954967996072148979233969430868879809559470938907531553336613975240330773232993288928388067541482102958858740018608198287732181405788368881526110989036732613275250828020255353630983914047824294116484747625719785673826925261944609153002176032715474755797325339408720693564425867333772553832221875775255590526117513216020702717942155454435861699349601145752146820063804160136071745254716705184631139226764616051827080188466473871403606868984799377447799472669861638646896917821307577824200451803941226031678310522105204301320527422572905839604795132522488066978972104473373929284315256703008668808739664008690724693767234847021270968012335599262818594050016111813116716233319800185633635932951262074003939602977118218513453688722429279932705511186615406176056676565226620941599296429568627268665905206267440545725857544262962890558571337035666260785216843849427531017344287985754565432480225816463635697048631759178670257380172370004643252712879623558603025585393474095186862900439579355929194404112997080857534966789933602705835903988672378504444145739911633234013029995402158457890001378659148641046386744896310167041109270920824899375922180198366614263882259347236148442196614193157326319966916559177669494674285895539339587719101236663602339655060684601111171543204300344133729515988746858136724918131295203774332202715502995222434541705618711406373175786203788185234306216638809675447059202669254610079929356350986604821119485788343064652622510812516665680933973923684206494619948030788359461788919332779746396329746582683995412172241093101270681188856804079612422252751527396497501219265167676801321120111810375195644209384382128425688682084408230938693080213029146743366249621104483912899473651127121436957539829728076102101509771847691526381693732547780197627627809299513589734122425923081553220837092382198458740104685578901073148406465370110299278620076070887718063845370740770547566641057140653957883026871576532182608721510840031176942674342220967798226173003702254409465880885733602574579543367159758271391403959791925811757851212176282955277628785781894373404791029834271729388902274056866326911663029590162954440945857179528297757310371170526197471710090003776012264981153305881772651249254037830308381380192564788206379373235419176304123812679566170952652543063486520041619583877672480824086012542003069725046587196223568777916274829246421393885812204306315500367486166779355284057813014146750387365708803164955008616963520760447198372262326355377007357085217947280146220925141562863683298428049770184091626439700732128084240630175988298414577756097224278190332370795764863954574236979134859565632708924553472637132366006202395371003188056509783497261418333174691639791678160397020585933391272132152267742055161097619083195658734416290455344395218234754717102165474311986644049061267479662292794575423500570097209345387311612466288194833595262050406980716055915952177649343899775162904299792103230119481378738094406213029404001172588543010264876699491977312844081020319477045615476055617140752172333050568850299953589288854964673297644945407008569415724406122663774654078888431608142559484892512326470305689306612084146484795932836648546094834676361381010379965702593322570535244021230193522993631022318904811290646577278220724957032075890320925597268635265174733881513958064982306569147919089500110065679639813270513439957590249671630610684249294424271873395759269988531155162806732464129836222291141073839743014357399335950422155946958678687345679739583549859915888905243442347927345578094152859988172655388313818607335308674025281024002341119139024282913681126083141714248674559938060363575889483293645736439638816188592467278712830408971523047189798134873304153094492164161275514700541396617073818304446653506203698847510429381956800054212276087693862777470936907692063852753339657413262979667533940012213571629941979739168447162658907758551420581309239362490320412209331009108404696816855097198976025002501857716116815964139943806792747167053900388529605159156315458372351692024584376057589169492688591162134378166430609007069982041858764146589872803702892772009729094036944939473848636286100027234090713865666369348203501528462176514619520324782536727864768770795468618019079824708842407878963442292244251349028923634294368911340210773595361999190713284386018513887879410434166334144498052916513154143579498064245295418840659241263556197357411771896816580212706870848898496864614870799615443513152307809772539200480039584616699585645606601622120874211343556175388889069729384376838075121065743067903003067051974655805389393539820220951994215605695041142760733704337527083614013831060654531321123788541097230529586559076217272986208914998896557480929674332028062425235223089559610097814377242745559335843838532222623541752880080470243271543757143453016334922457964666740653487935269091005126320130441045758378902355691011459617709631790236956039946008718491790095446252615064390426695055809536344342143437932830239004077230796928950549998774396531219010107268314213181336585952384553548020773341312229357077714056892245485763908329131146690241447397459694211458039798115464227295301854675417573964234751146337868743804408538330756045397702858437186538579250882549118986287873984848852993447114545547647009487829588676036573384743830821629817114839704973838542044469802622519638166138716556566964243291303427515834445830574558781405402860317507866919270059715294421534485989342490017050607381433463514503182219954405313128511100743595950961012814489067573845955558653977873641904784149413182787620279016682021882460229017442508302873847260399560638203733681908997597665419772537560282024354615305864427623322677342243846596165840330835728667616138828522349281044118190733595652274234332400214682000894593297586781468287351144896253365281213133184678638373431723248001393989242584857920009690976165921351667881669953865411031269804625406439794349543755360333084175498351674507443831069127267720859256288509840427081532867476958289584729521283946724287421879932003396339723428349177967035758469398202110278324374169554349684707084131547431501988751081450183641098641870945040376738209535192444258659547056792609278660766739447000485555184328476777178633206465460843364297215930223481488832758766081540986511163963425664803307023531281136786273568276197175506276543272032558212947570588505886484123204369426737843150750341077100770271051894022084648396135936004079933739330195919683398769882699801836877556099284265454484757255538500821223379161484913229629191944777600239409358443589608801190414413230024437863428977814626231961382333261971306362567313025288364700102691119776458406422537035745220011003504125996792960480449445852825940733867065435335398689220416911108557078088799283144347289450023508476095878309382033116005870832721681688503402202332947219049162249985935689948607219030270130679823659050389043528384012611455180691516367087464448348147775960906175992857948778905213298460295756045265847900881906754326674909145210472251387108760244126910793056152862550234413402136364605944838626729712575236857379527046405185043970426689376368133405200069700323002636398910978819084017498168506684760535407065991329369271178532247370548575443335972942915393639164406003867612564034725423594141302701514963696219237500001880554572249975361648707014266246454808425695968993696553207052634216668330572567557173034092152319962813045068589196171290385111642177456062288443785973840158352162286848354575068947696213836667442649355753707077698668033933823946601784258859704716387647673698087845277921249374299409106584427351918302364420094261443339117518389677274910246115713282844468654649463341989772179839540817513088612029568753714136733402430491684851780329720180482254561187616610202412790642717461089295836873010812921089281839703967132959766385799091686970211151023166730928815634859811477265760441862264136251363189543452559003293652760416572140875505713472899526977469580937389716495044505610533802598895149561566408017592512464405985608658151112822009266976492537070960990175427695726264883165469289202723630472155437588792784495757078508298338299323091509888364174115293729738190292658990732333925002866632331978477902880442115843072074710672405848075548703735247541929681021524030468830563004773806050885849827414900499773442046393734652729768575203393578854008721999639819935408984662058789714710048337097684395210810150700174437838180868307484876269122526928506821655167944731645572448801524649350941406153854757773423945469529484385280270740758404612121879767903853509238818294190916806784737689413984835221148450286782250214020992658274686902295095961448766276567534629935783167958780985599600181675392932384027970000329632069774518133044789935316066178492577393178019797933927797199908569215788508799515641528781351285767002068932441605656497187933628336936266649193196804878166149308800755336132046614271517855096875951038600286403322642849111774353169744026443660525412068594818564610602543559334935262051630463401639642934287492302581157424034293972277003799405897909597970067054477005916566058804041075767330088726073610026138190683988349727584446538771808520772661128076839818203842736427194641491584142558730130101185929916410962254358015919905350958882105657823877408609846147879582940636520288183852974762625607487723652632398123394842370167439073401501493824846915115603457461880857646701475636961125954626377553816845644864708421446940828941200855937274543608603568191106854692832309718677602538083358851138291732213226746925102788073795945141407391601774162369532835466819147687232384458837028035652127270714470014129404727488762085404658505119957675933199589710250220797365496723128770857305655150884619293359791359303649155393879435627064743920509566889955930479529546636990710329441472925241096093664930619461408429163376608013990040148223559468794474871740191277380695599146461309762146251175229957550029467160739816055295713327953745221472895153315971211430777620050686357953581522457406739627144649573536390007305234900085986230979986406592391751533764676213060258136597434039249666375488617942975646980962732480174643067913019971557595541632687595209060761188433707540594608331828071421860652765142998063575821201071926379958925719660337247316187527511585661342957717624138030920370125445994118938176758993516051448237998086962020465774042157691993058027313446767968692894276006488618088634195250404031760295858864898221977981375522456153681538485248924145303182979544721417806240334598249324524566378851634321119647971500064034747299069961688888579294650619348374472386630012038501731182268253497574809849710234402123383760224350124614150445174957763407269586465661681293192459952879846635622792747836505446901036907567576626279966938225467564540488525075408058604261734253969961523949615015878692504997224769557351244848780378161312066913851150061950587641783972999607107836439187080935666959705103920640137817365733258360763375104243818080286098024500727181339584986110361604126314947378807826255043779938735286046273958132327493808369343390442897714071752177546676151964712616121319326453495301971564425941164899596250477946307165903913279304310668407300316990157940148994958773561625009589994649400881157348828109163046877288279672008341722540425082047842463806646514330447051427402808674965881237778757284623241350353500602055208372970922068695128530736539719606606345413269150415105442437397821890527912862000177588520230375809651255183587680137394713254541815328266753823282002535351523815576521200359330983807180249819899887554507437162439681692645406123138749126849418580821511446335562729438655151700000140191407306237293887425296813838785221294012787263439729229552400429222484484158660607364429319641428971728683442581731268507037566847210356577977244491358617745690888164335522375409300013702068558640255005591120553799952444207820352070026801403265892235567521688114662121213304268412735020335185402041625045526378418818566638757335671914309874785875277300350813700420822877678531095589475174164771676362485023735199830303611160681141961028212408208942637125350033502658427936603314262171975494757420585748943676070540124568904276231725967242205513452628437961564515779662429258541947702484871091966664304874128587281904790910081384846157478445666820495911753813043380417688722791058445113188650121187514547555295607406734614876331902977745262780853876715637065619756576122510017691144659459255178802928593490953245260550693583171070214203302847042452781766033556589328898732171439291375566749420948480265257085234311099371141878147579392219909323088637765785317563885775801893040261107819649507601372669490151450484226060330234908238428069210192431074487225868345665060997007350522129455203262727501754766546544132254549447703695696479796593871348509176658689974755455353825478990575629639684021980389591501040155624348619591983664125350199494897840055616023334008348531442822882208823313485612418586190494897198782881328715135057206375710945298766543828227779760875825116959975215700599822002302508630359004618687426943953343633113384044429790524997817616367864327342534202466723910513030779883326603707373953612121086306216843390042252650709512966795505820193839393478050519833043705268662280337574708708150402141578037766820714016327567823043963404940037259546087839831272242236967664232751515723806289368955011973418399274898939440757614416608710601136732168911833783555949224683858136639249777487271760986844694741037045456298264365731291778743725428933307269530230609137196328989518215437518441310676135839932244649916512444927409043907271987440435949314330380039214775621951455702025665345474222625445167623668499836629695488029233000500055931817236997468140147423438948404958549869029422579467521549466493332829322207254443347408938138773372128206890916642837042745131465159812459624153765787724684427377716059131407511290705755560826709537215260499910810599687621282189301267333326734890156079093080369737656146768240747268149317236518769966257907666789879044394212912526451025029215803678494018204173511182525178932930470616029679252356198697311011173696611042705021230222145032414020186658371984595645300206581171875892147879038563395865740328699890125734410102042132541364173102657525219873818533597661761127343966530576867308971392517737185079102231497048953631307893990766814102461225788311374771810947374175544955196986419151972818769471436342605766332533693099490681070066034124822188105336842480621678255236720808370614314534336586936460149734469576294175692893456606790128738754672805341250584640647313300231787261092623727705866045665519203228642623853760220664500603447038837652540073879697410534452671773099976154390969447337016948393435543808058070357932096464599397914091699243486259111077002881445608602020053569711341169828753993693469372826615584623989932319273609109273595172207804223996396522115776611380134584267146787340984108489043367667253079051729230948068909967035356729772054791276556225794421362091992367879380603558018707195960176511419892725843484010103115484607632801569739482852309360618020152050070427573518613758644233507529916535449804025853176357418242480615510897210754488460559191614418566011106549747100051692239358238600237384145288069624232156053701206244615791010309784507739823406661682744504250904448859607520747909857704267389217071202533663893037377292517243468735440423175603952076968722938712846925004774999466914489998937508933137751453987165581566805689112122191052894339768943894170454166111306336140523910793832876430505921915365701150266710406780261362827418578685209283979312176340276838286254800499066739414813047238493017489245750138421426788804450779958620235981933201911746868454608454345935699126825023616848929833058038945802059734083780267841172592256304764108828595464998735258130240324964757574077745173568460318509452243519757800480295184317417282950201474693796929618257444126836909200455440618108517250075336067212609112992761660897118134364174027623156078915591146640010850491526234193215962916918385387749413548667669434808070425773401967925995547578786489373121121397312763051170915627798552241720986213393823004157164071031776688443369124800466541238589920515274176904811820053621791392837663132650063240860878375282897598453665424537535181990393854447216573735632624314374573610543844653012610766699183926791584074967597419026857922818970169942373057827440382861098553576764830476340911250914241226359532636236578126149807146956090912299066325080073935538463412941610952929224176257989785067697941718618846318638036519823371240436646892639006254507185879278222618721694204992127197625235653619568906352646730880938976180191420950292662495444628547060460506297873513021037135562353577432416209993601832345635732883324861720188410247235204809755512351585263016187021459426051238340593891944386517363396178820703400365902919181343594924285878973755401563399384480857243303333618335601576946330691911212788406522138450501272298516297094258048641985604092618490840991891504602952235574303898766911960605384292178965481857339324000948795765328295476252217985035542403405512358383238531418293878307504150668314561216390311783804179771748684120600311238198221965101352498701598168642743114346289195659446864672121650812595723040307638129146359477989809148145922516703474437793434732426379047691479048352130881644882299023823537538745061234981460702409897215495630156074793191233339278458066716927590259681909735130199073979904004206766686795958074024525889790489210327026284259044505598424152219922997799421126243753455135913935716154654727449395165700540981585818826518793332096950425687586625275158700441936267947620413437020057154634176507905931225646862582369097740495667229719259499214109626843187710995636909714248665328826488348900055645151186639080653516854237952237061436068526037280138597744914116942354710017657307161492101850797811367379879065525105132651117876932451819760880167320293941805555243564695164182128952616482751401172853139987707101993443920994008253889541602520869454805231164222564898157313855703300590531992787161734913544273134439814784332674971604337527807175153907720243206917796415952399217276128793033705188930009349319998729213294101263195710519147812742963096550137109064378884244315913912759127483834477373843724076088767026279961942282133097398286141711005645970648450572658217182475647340881971495015646404691031891111609061687460378779915297452907135703660223060226234213817042249964450844999389542836235103950174995340944534144164840505463431913725446215396355132024990952115690389588414917397043141172670746834020020806684029873818832637353186370558125545029304810456060976009196434823546898430667369897718870602806608876313639620215468192777923931286273330928628085987531785191228307785260300001150593815456204237008079986504810468007757321673024649298068502172350120115277283882749127379742134147541123374400133393720008826761297175654184724459629228677268166154932246454015781085167669883350901391219141809445759645588370839576965359984927218970528331417286604768881493721847067406158041822318666854705892631552353799477356413319990867319470603863067231638086060596208675941981660403771460504618388172464072331584295520960797023330880362501446415594112470999591505836835125053482964215815676090633104625347686661527740076068905865477862038338675871588047077204530107860422725496664111898322980529894138735111752224015675450522653586819111062337273181040967830140700091944779949064370131923931415940291610645729211170504211960339129645827600444400097115070540464398591027282181385523454813316384475492466856003553210135709445557659864533930145802879922346611776860410984885695503995018751055472159644193655357046015901703003729413967722386906245295615756004131995626567228773644109945900699797688997645398525402084137789973624143028728438910672103224709501622823386801861441446399882962202742102751221545976524543181515877076416060076603867177466871219787880436385448190919896112720801338419390908614878710294193280901808000539731551666407148007608564264056690519108356415838626215231984074538095821144557560551076085064325193585728919859060313530896815720173155150714927757828005176074422210916906368547818707006316491282784144483366488750036923126020126032753742516654365910106396221331127075425716121572943253861768048347217321132370886353088764986086295002469003438773176775852398709345957196770726437031308253949486658119120478616068256792376366547227897822157514210771758583957429807491093782926672624311113888778624577253161605952948196463516146441776462201130992797958272274049450134768820909829647685590100329685364126473711111579353688744144096354888362344117033455478396092384016174828769896315450981017328409718397935543338074325878376875286870430971917197734865162843437523834882600639057819698433389256569364685964638407767251368555138436327160475061780578785122156468781106794864531555003349561579185380610798041068578894648248534586307442135161517159225939397887566167949088143500238258677949797972860993056992443586676236949661721756220998547354771394460185841317347466595219863591746972163779121573661741226841222546641200883390770246423573852975886572486348090758648967321569444753712608901411907140199423972738325681410550659581392101543030978835185252705344582030389490113913617993891992239970807886737243388389895155490163674684361387230525677808795469732726798421098139616347578999968548588872945954950977471147939107570094512059586077954821384190303589719265684053845422742986352385393821360096750723869730940508616722749000178614478350406380930078073638032455935532260555504629761117078419102100576785747142371303076496742710745440312568292024772112769801756658698265987106500657256803328705677583537112703759077571503557136254897485425044578210848853579457994336153780536620521087788028900570204977502073507776908338793595313190538260650255813954898568794955150153265705731393632600292066217203372875723007808849736499660554038342379171954158176606628949119834814619485894794526161871170352841778266146469888840402323134166774503269345105374698830349324155688078520864752741397894278121029135134055700704463049413601083875026908853442188569086965135186849052640121709845785811661817591299769486277517209839485799570091428127647023404031664662809593352052777153105865051426306588704551365205762928122709359227419833399554373325750208557985112793962147932676641742537426785399388326637376778796020425802524666483492265566294658331281296191292737158503714272897163893852676679318237237972091428752353185794852077115514196807961390993286360343661307562381029547991230419129845942603766205588806662387892769744586371590428321596149997101651099685981683296310111088935595840371057102154491785964991297305671314916831122480314235426461477144780418096057666396331524603630924865700608277581415305762804354640574693271094792489242369223803942775544167447496224939143850255508215156443245951623461086438744104447462010453195038125247091181633570341208532522492468388098617183854263661575377817254969611487316944033562999650767146449028759302451636070804889031151907526277631279042547669561186940241802596051932264331181635668069158314447119501264848825755407901612034290397406200076087926462730691127814056061237254684046019178450363378033718806521236642143236293786270520212755343827706372532100163944821449427453547169802801133395462599898492136557038111376336712690955143399897340287875082126749682089645762234565409838378783211007482151529943133291945160527108713437225963190565292679524710266137937196576149934416160834103117998433907118726624153191816363321574849267851501886011605857450775694360084412396647422587089824904965486395871771659422971180955572402172930562537737185308651365007838145679000309138872016707223191900670922639750301153585461225816353323355694493445411891672243777969586972377910128666597234804733650324451199392885009241511609067159360257709467090333054970492539476501851635521487172895550327192610475456932855119105587800270564178192383110614059400768193256960590061231990156905290077286296667432880795247544427068314150803574272143962410197925673872953157717446436371300461468067770222230993094464603072499444085236656807425562753956177907397173469279407137584048650851790699499140469817756037477891361456191100396077451730622178798594581284537752878398922067716823419689026188932842378631188022193596543347082833362134666640194969241934412913380687700734674266026601060037634652794989694602305462961043697083255062548666161948803493060020456334142689431419271023130184806576713396293181149135253110155777850767982655955390525604046539882462577737585185107195559658419592414094526990408667343521474651198107934149776741409490196548945278808507707373069161531166702116043051962591224107430065869865869253209736038359996200212715475644097992844970147572231974894108531441049097535060100927170951014722223469266359072171409385837256263061817488087080168977182809722091528477173734606173474053257495132319905999481565069290476524780474358121756286256906464834911169386717551181602260818655001598414171529266513530942507828024482103184583734577615263127864013267327912760593191289600759498925227147813270935886923396340245716163835580260105209213382912051009512463558053653711815768780980242398935153675068015132996530823703933388649524117638318207144334173452360419464727607967110324058970513878047377183626324721715590345798478110643004682668702821773747394565998033080318773063958508447359239165823889855074117682291742811269589395944854585936586208597361150006000849056794739243501817390257152794153086511413638347862900740413937681943271614407569861615307181434827806256615460074866566806571387279070855317647387199129824383688377712617804307843449462055082055768582297422180207129987125559093044503944754906073210236798744102754013426352017307895476478896712166114314956559413242301587149535524675354302647851844620313154082975129001640079505815640963464600948888174166864569614102618221172255964401099504827781336576405984549288867206802982115371525565260909726258759240298486983267099927273954502825526301030768679851262021125861214991009152069347005873860395121081879499108909250870031390198965556300536015873876929977364957995507260300124547053854257997141808698863356989017508535507634157852735195786131368985856664845866207900596070015254249888910488518025903677074515471055017155573515150435723658179406179855468238868017811533941357993484044122584427331541245776130036937044563244235050611342775240300401794598470131906485305178961201268993008558950721416570940674698717376885911783406778483701503824746926972462304459587686513582214128005873049895339864295925778052130330567625513295925684864798860468450866786935704257564078438641720272482749302971928979940786969471177666817768593706430402383166354802654409486294845192984928440987900127348490957328209917858185542485671953053225805970286904238889468506697873902315973918671440769717192256968645419918231741464224702047432767998557799788630654377490001490885217442919088463888561184749683220605413540724148519095556636565817689586436479926913739303503731594735739781877672057421708168683661301619377577405488611416656403165055339800079383436629430558210432132718917719563948344869811763758734232645139395659356010540162705885842198110616008380393183325992965669258472494197838140433592242042840845775032754311596036843606412870572091968488265870744058774892255476605174240247782443722942618823826473988306671519563004326387318607581603218278689318147730181470828328435552520487541592765857197396911871694097110772821197610576674978712679329991520448642344358960930911928763360060342597887441153694730442932422967462857684621294467199306096108201314185975031470980865911734442199164639969922399684318825812559215679145663667520890659685242761850517361186099226295287187971071155779794169004950498779723653929531102629099348780589115901872431495762636964206035070334924481148499152420399427404757814660342100911105667285181261934321580563073854816579840438768247153059554755187217842120056520005510372495414247615431961300237660951869023222940942144506967028865823633996453521603565311845595988047835103557350675746687153482743986371199348173223715940236049148389455765970118423676793324982029946044924010100026874142226997079293601481549002579562715425771815162939473420032728182243340444449377809721712866089033770132612561156071087981355975617913029525653437865869882582620632694083439320279735231718831886571259196865725409715262716037545430707537880294844844167950152404862857223540594273005629734804954495620387618025302856499642225032492408138402802491045229801269319941063333397727503924367084188070645790767830810201234508365846194725368248446158845221455640208492878798069903513240743145074521509689349289127940405278923974952688741952897808482694517670845258518485258345252641572598344104372635693777412723126044348082326164754985995848686284586364414637572014066287815974776535748148817125451306953134593346233516637221613441866509399798358337659784027463993893115756235955110632028558439750201577867781883846051763835752427694395195288646330030862904529026954602824674120571387988854155824974820971886015587236342416837173246281380227517405521851786692400757434931754469902987728710866961032331468736029477213018870844133645772644603570107142016957065972380800235107858359090918006537649782508783453709806003872434857361442219022083487043370525660238873512559439477976373886713785488479109486030857736348296661872390075073960638749296674922799738955018373020683373992201696312588493529690138866689322429709344134086653255675921809743484601962448524010639451254083717056909313564475589369199611392893761064010167640657099176853738752902639892516749140763199960933220901730784792771777964629391627097206111401221823336403191363546157393240163317677956020959444512533542114471534428803820663196471197655686470914563479221377041544571158048389619257798441706198271112776536614446992403181354438367888390366032693486114488952676937504695247756729999758560150334985479916562751880715109684956445530282154214215398312127159477479356845426426439617645353977185508678141609118836182251600351935875202320956723718773961742884590627734129998261643330109519383696402714374030185554006177430538574681409791294661718578288404921112576864564601188379785983227754501505536016783526421183270301600915937023492528043586411021699006066854031951842644900898972512140973622140710002740993438399292248780187444550676904947092897816038469674649160642785854781088876074019418688192423578125620648358372837102263520476200956357677775017459399818456153171297309096081339538971243170412783315874251765070425590497790640601547969918092060070437992639877820129098189678383555954931537890355599199666760396649468691569337367892842116773583509345944581774528996126429257295483581135484506898191430224782710604640648094229457935084741012968365853683452816220043299270381118741921562390569289419634199125885918720385783647697996527584302679702192365715903074155895880332608781213134674537729210716936075215946088858887518989128087007254721164453934368128614591013126484938774205828057792530199215369798767092575259319556505222356119160868788528525818205918258414748017419920161844129241663738615457064822508899106840800861961780142633834817312433042584316092000478502094652556281949799805820679986465536389620248499099477972874984274143539967252896505296849203779262982240027679643916017827211773742408980542167503551480854808161417757129157074415527702547515578274293055446446575107733071213390559273711987731115748506149708009339794873330811278622819456509279484112630885864930175566299431952663446541477165089142466009273365262735708034896341054025143171624207484732449965688536968248888312942820377504399291955170137978587855662091715660429880172909139011350453364937558416848116487164262682755427024969891133017499921429590621495610743432160161100024944059806904856392907234666365160066750835790984094384797611512532850656765244767843905025864125073732212207082433094514410455795118290806596357420925263982560886318499839297933044359122650743109617206617580805866340849201467887055198110840761646319393188480427134406928821146293840175520051351579697915770070364522528023292214649358328470178160915346300807780390069447848583960041350163770894731513579547414248542435258393973922229753413131504025462855800011605148536961215567512880450606879956227809066739106300903345686988218574367496190015653036227061774294322901312264372694527095613507121074234533804765901710385405704372369378695280678845793941741812731829628760973568989551284904959442079386115281812588650666182999399621847472198441239856935424365181115379336817092721087030320139987987423232745024611308582729666024099094707027404142546340810141652256251980396148977189568326850742805545287467951171314868760458248367366540064805950423082235690763194831458222420489370927148496647605665864587500770318267207976107058652595283442697201675219793906221950973383372696208060355533069009135906376340186170939971418805977232619403119008231920509175326883475645030768049315388151283169186674660014849836349555700916109050566639828835608342406818899392774296371968380135933089693469759455694280418895659851567476850141249067257727628440849955882649781099433418470366695611401031610912717558235119956663955228984618016426103950187057306591362920049844215707292116023438797289809375702948682263965537038021350341462107029803220155852932597950211816615454492934039642113418067420515025247485478035790674174720454012752525143080486724895154263387081635629427349026821529078455264882113600283800707361895143927234613561223014301825223142497682889516459544033602493214024588194582657061797915724340055555710416281501043994210407484370478411538948255978431265492741324334869664476106770535487208011674039977427939000869207867983247449811479910197978842844711272592454520022154371591266118219394125023638191478821878237285414397734915915443914469792486932254266017647047214857721281149767421196143841064287557565397534071872219359728063634139112515845620126383369808194334030856959812701106695091059725422533327627163281530395778029699537948367683486426013218622467653319019877342165338400088355009407474669611320064793253198266051327752914945557494736655564197068989499537538500375017677370801122344752657901173518914822709878266282849772497647173174994465102292962745067684701590210279282724770224619923120263202263003362400855574319180501572538782667102418972429484668851176822418933319222534515731016198374441984113588846804113089692396050182606257943295353619190634275620884974598851806849567280707680375364618145004543439123373487108341685364406504415032349400250958702514454896500683306889988370270977607733702287090345096645964481404287481098622669220519565934724941305417561333866886126943204322880363803333542394619162730907224880743260412974961206516492483008258815278793796984933511302457920709931748490204854412016553253695412870595095580905113536179636088008981245353722134796570670982058779403657292469952051938665480401498329394230082587945129118607744562434977269031371948751429552643214543963791879865574745376060831420589685746348298952575260705457858246806892329189464931501470106855932589276163655597375092865000559012783423565106621241998245000233770815650801049565139299685156052093374284811677365722486638251593157930272893245633662052453197454089298238268409899687682589834295416087857748345011087629138499919508939981869112452254328603230265237150117295906867913976266721662488620379334248952515854445934619515675268463219454216995598222117193061328044027121044934848439919182056051414713816504598351778555270670982313565527033003167028905844511287917202415330755950805333262108283188332826578759639389660351249547910393578226945095857170418922085917324399374901934227990703597338150378378816273933753453387873246626470775838341792245859819141158092871685876820581987553407704400183809016054383528126048371512614732890589233950145518828272365464307156583571686074796252666633065698554494992287335321509740799084774777121018180400110019503133454931612985512475905350544550746060699174168077608282834040259500259487614736971042616953815610994781119162274101636075065083020460156768221765909692520398978531196655839970176592923110921245120955777173315009357258886766119353917020171107802582687339573881291002502500571333038434605295879464234629774295283056476586683650586248591419893314065415708789528209659707398344074979859336206060419130594253624892752594621439077598124297163967935375510460040129590744452346176495884675389422507843182147171344825110083763495450407582909676958747834275405573359937423473213302525514436025210406597401247407226285511539511176025610265952184350197695153347719605136045095941102725735973640938533472168067266000934918528919614143078015181683847090003051644455558784530631020085706358665473662147579200184540018395849022226443347996231435050458138403655000359900658099467103254334146723037469786910598587772459799035310547956477781352899969852432994185742432956786021003066527503517980063865220108943033085735981559864721034147972779804438670977234552742862717881605106324477247552020486907812560817092725343611731441974729166144878440197816068331673268332294043897593303349423075214001056279971694728648165234248779670636945889374497082340392923204389779310492805925831614122642143359621630858851883545508585454345854376308750336731353597824451137281047991148120672178405408610026110453297847328411453174938722025934061692911194204988050597514495725454214579676058914787561392520186004156755257085200389093907090653288235393498158953014694274493805470686995868326678681277989327665940126533361224453862198538749772485160394404802145903849222157148338147209905500189204121512964551955846189839971907557033918269309361559319058810580265485767150743256370728163660097488995377880404970944813657476835425715513387977304106349248933964872086443659018925305693909257356747521481107203379976937828962013902011720065429897449907168081106276515316750329196324581547512680098107851561264924141093346011397636839894466538479315279428402933357790721991598265681226087222748325235360625837669588651487098877693244731525474591372643832501018386256642706750542075306801879787455729536750246783143390003744762398357196661059090566368484814728878085967355504136718116877035651758942005004329742480657793648897178898373952050771586220151186935305553604176044788792848739721355100476156203892809768492327265753502398966519425053628971917623917820475356481418197492220751590381231244343966329204876263130984172321130022840944558476511297851419817328934701020497789234173481154308315259109206591963754842489662597564649000623033223473326228959416684056773101009986372454894882192708789550812035146130315529490403498188668736173534752095458173645806488739610863899867048737058920115038377749927674762832665334325650161194213538340544435091419321365725226475918161971059380160986467041103257941751416285561579429389156215701419035169035966325286806965414371928814486563955384157848872129667776485322416193789610018382367200206902831047433660654267950674242480275567491222358382231394110201010621083655803058334134792285204817502989471569794389466604767678207305905115356472143867263518083162338974799578439084658187822613212837841212939468404430709343521060457077996108478340284049666343370864184073987800986600245233373550930364148691618536687639213121324806900647325176268316531911987582403347222438682004594183494114739860715569221326212639842420727371232216375927222659304987183953975458371420158748170118207010498898026340608650203503068571038624681643103596733379987560063068808194038326324965419350182438302162041017972093321040298439500920813031931311967847099566842084756374875867451560372129463021769218719924858852290796159787279266063353197402489174002581495514627984417519341483593461755150796863573473023457663555148169756775092356012477320511711327338707780769178719326209556064906999876781755559945861111407114808928779706473757573185357079477905342796845625678944012779775610686677688589090229684029872531381696585776476728655419617517795507663319992371099877589118553036081769839008775547037127688604582079923620113217811039776965696100313328051775505685278526983222386029469945168712918586389758817792599630817464474965626737912645553867169422792878117592657824451993571117154756003296302995396719398470817844298639097839384953120272570350063281731982069265734700115629506530416613606929913933437586311628346174597934868787104870209985990994970376462516568164773003076169009823089286797827869277304167166987499585217357406763475168695955851406441062879856799835287863461359608446958732921726769608927079204018959704513301313848521980553649891125909687016079218880106620790884735836697795778369636879914355667634913093980135336259126537094296514424783476087266948009432591010342197487004775541203102432104075010661395874523878762970333357807469733755160795318498889926001102644342127336854456495610345319326988171551748264012458758690179405856090411966213707152748668021832170203227761078304880089855954009840149997596090631505538191022154635092478143410834717022161075617164056657663309485496348913625282070767043492343000709123193715779195842945896483697971683264715347823581797348382332688454492460163775921756707048795857852615673763471807288828461439642049165273617642286885025740311072307102319011955253401714812289916063978451893334061367706268618460842709586021224819706191431756610225076767694464063940319377970540463239613301640970721763033145197909793837670077176632963880809327752387196539165744963122075299166172318862522162751392899065222472980821699796771800794261302742102100750865669322172787949684349023076968039647264952755687020430958079666476753120332644412172070021133653456178749052154815595843388270055664965018250042408159103429522474915897341572931475094742272294293706256380035794286792116424112044720805843912494302796766097177241558058048663700232012164557599617133853849309032941783114389458218185233868387563566506296436869300809338074813989686206835952016290992515961933793456263654847927485402308723182501413117209252174132820229166728270218060545716268347215219620708910897785991111368100973413246404360338175211672894325579207373688020035819646849904548055560876254832727318799722120109147624004195657497998693550172601260156470773418571063230393053864568997780134810220135255975801062687757225341255980598689227274748600455616532708620461619266472493231455360628847444418372850741610615777266911615957934492295951446486716236767089933644583521850423943903569817280339561240032207475464640617308516848378859335683629635361720066691719807246866036216565671288768230992297356662782497699335172695562406060689771056681011081450979737040305830762994463328864771375960608188749136581007366542297099607609441536256136244935058230471162995927556221683346169416430976144445269444282837015498041047277490086715946741401196471825082854962671425564290257322259278924232177101366736666452272986833040485851995946070451071988772304564857253771499072989981972847106457297379335726537418648649889674930449971000874289308763093369354508144173749290042760302857995846885959308163264624789279143628554526099498832424494643764960298429060171013522594295588566453800281552786436928246475306721071951046317450306762293128182464456883027209816431953813850588779575961929482171281693943357899666052634021878162497656453693086685589017320109498792745324366063530240811129004277078808368085389648273970130809684745623278791451308728937995819142950578272728267910195029699239653671944957573827218308836546072477271197566660305558893916339296562047703777161123074897693278434474978312188531921096523665305333144527464266042369792563009531726514207277761287689910467955395610132515615094793729062498181086310796806607844009767215345565473044426192167667897836550690935386287557942338448370813508654187212247214836496389984859120547482124694287076438807022900662663886791631930661571137040020222423616233594473508554498506744845525607242554105224323802473196498075432350745148585447242580731890110005129859552680240548106793429436169152825927232881357679817845214082052030571433936310843025148807609393475444978468058520061333624544093165369862458741031978673680225225526544837055488263282509062938030766262974162616598772525808482563627421328689009324144279789550751086389992633859123478910257763669697001624174207923558699698199494253870186180522614085273360695848535607194645936874561880206328308718373070711724425720010903221161492604963274004555061938936328837144162054202973906242693993053994723091632731969005363356717217658713948670894757645690702437966707419545829818994209900633617991519853190403437818153381532648003706008198141363618958352733170697030140145539282599371159499947531413394924279986588511458285817827469046118878076461120301475158920048438127583008914607421950814824216746161095990435606158212809562750454517898775356073111613188456524499907748525653300115982944671957359822746116931997649400578129142269897137856643925956197407136804519024511412662558290615086748976674688280427235493457545099679515249694715254133706187595156304587296154611333033623671104958802996818352353515200255639120086938816324982411302240170205742005612363440159697826070136037443691852520362500519587294448505999552660048332167389797372415180762195343278430676197432456627540835249907067486138629833235354954433612517527153191875668194534846467131679728166295589834317255017117192267403016411287912394185532723669107168929154850404085997110310689152942205226990660398109177543679753159508103575307278576819722369219583762627399524741165975703353789385699778500382291879864917857167224410375899006084489851134966048918933983060813247555787900187863445502624151976528442926456065342850148407099990645523769346313409554400313579959066921739707391649152939782912882995121482006982278071857408862204042919129690478305855362633463855189917076221375836925359681771674296895016578104633466293940187765839527492564789712572982842408551560510621239990918795360683901695760179734923824890144451500958473032016369699244886837735919362959688101898415742859461908178030215933756059705522822601592474395666670361428799591174994717650250907778281732636123968173945255131880549390141109736755389879917753689732094510266319509050257862637559446123949389049190853432460909358554687526661279861007285932343476295732359490605806797752498540463628217230358568953661885935449227415959800982733395144352294012018349623882848492836526267254926653429311329197399843009721461548097042427206606140262057441094586308892569492853532697608267858001404844211025740279364608282860958988647009017767170377279229754957025076412861632559473710439634394399072995253875930129236339533579959769247513687905972798769038615778365928897146728256268777193986429805100079428579255651897693786943199499286937240773741589580490529370247292509987374618522720542784995257400684459250550198013057473821033746895310260354092798466070721998345508361478789566648479556062736246026765700795080713216422527736182036794794998339343739335361487413044822666898612180613466594397343984034276050124285632758659759506202797612877696541278974415313943255692229987455336389630030211810188632935591395654986330193413538111897579597580281617717934434123027105498041571609260185345502179904813016997958204221729213284942339089663002645166504768658772474131283138072158490692940575084114258395595650912132403774647319120051135596157173894300240792339003085548878505047837020835030975810738191759135134636872946170060605905664233981649388880077457292844438313286762050509993114770782147992547851983377467646966881554409300740975394050884863834646744352262465398810092329968513392145315630552634641169287493460899601092219378586388313111381494840653889788139084642433898456668729781854851714246562060451855737961522283661289083873804790894397540070699894928438757184140736994131918571426516961591677457181626813651607055949809998823445683348195870369275334920283270148063438981508133805994919204178514475336215680509271335085464876759166786322251314568238863424567355151734244835423166302440231714830182396505584340039078663755993572783022589895497737553155095614380371200428077235032105578331158048487074819478461623780483668007232190666734859210490718191953360558895556696257888719266449138605065188076009424439273232332858094220277091139668246340118277680001205578595093815131982189747718786314560539245422905450892140034742448593318402335763522019057303376759343975087156260476675929878927990823290558577637209493401544344239630689145726038951539714088003436168118042382404562638169822131676845697699281513458364544968974887246379451599175604760123705671133717281891063573914743798431849904312274243255189581182320076050091254967109056513101705909615449690084794562876671105036882472119200509548823919460932571277308110221363795518000514090239327579900685501746325532687047591775813861984532271429121772381269798561787434624330262378096088713657172159009699303052658499666095704907550419441531131062280845473636641539413261879655831207110184864502375836249636139271825337704197006536448123540363565180347535508486303710409197589147933456272946757037712083835017006772687677444038159862386804374841957314299028739687713181651283313453842187245420562770582821068427821835403631913289395178239088877969678677549947128252454067926616821833625571498054659702339279180992213869806845572668423404028084405346109533072899977647545353351802024201159024846625878274097732760911482200481053753956038261892172200005170073201601602165651549784772586269662889645908696332416216244170618498668626598185504575151706201381105960964232215201516227864795535009514832426288242850076264304297927299974610245289667004744254886382925797939873479051929818779595326978240873152343788193119376649255412571953478878256837027222538677117234475503317894897294249601208593954582481713310961677882421088772557486223293649627977921732819008366966795039170063033740385871750444855740594806569454249676838176686876632201612459852111155072192963096064111271536178784160347796408720935289129526939325185328580964093828242122733913551198491637466152190743421316572707031321750608519851276332921583729322098191077762325089794353873609055511747612490745208000738183094186639919879617082668306497037648873982699370974103733791048233683341209992429333580985700751226925899798487128313910163916787430352147751808793114200040733175411239431847050862562338609262704107185241124179759733411970034058443712558466411627781622108746517514836898268389632782159979507949912705631957993528770931760666958098353086306785710832819798642406390563797188530532503151203645172591978810252913849074291994935997766009618901207145816338516249290948509801591761928488055599301816019489132393142436035534934717048592444659160417625161063670017592383365759571079715573287442208484631898945641992923330811585414575609415448936714613321525313445668439835513586620672907263564292022131190816933279991889719697572598232259023909953762823435250916441578482453697993416628338869217341214934257131760025989492671043340060464127748872252318788732191053159086991007634128203253641785297724266069463680284983748785038316085762590961508569498226560433939122844819934883349245392028374333874456401837061838897369679815468060967076290226312787586940515638413016729144279519112201128076318940080091807030182846752301426356807122333655730110894042150684745525447317403278786544111625146226692624638660006594639346131761616503698768770153170934763843736982123838638963602512827405903328524553109304141462589534192479014017942336986661147103783876149880253082489557429317170862368880993878844305897936096241431657850623845404717665491238981164590421060982075103769748808284939239778617802463017652007846812142138871644480474732016815190678726748763424354976773433284592746201501492354130041587395630529814734515143451947495901488752319933396992516524668251674910546979890643380843257032764319087885752866964116941222306321333803931417114865396380334880649544804610628800173556342861801156870901275799952522456576146377561879061720803884121339479969940844293504750382129640447125734969427020480919545686848120268539812365093688756840926573203584207910966772147167925216359493091220516095841446572333870324696621819002160345502201017437370857646068621898811175761581696993378635978948174520579356339352436578792597301012506288733303302517128323025883988434217397915165326020002798001766483554890749079427706101799713575209879949686576511836667694696301369076235325923282045528870132421499038157038533483829658820958377877934247456874821581499818894450899310585473971755272604775033430346987508420988833615574435242268151126934295012356655299018891427670585125929366506366145292435590813596283345905453821271710675829712663543669723946837310715078774445658080767258027422408144188358405600807298317022100386176157402110363791689389892271033904536152282660640270630087015357026455228713845270331556307109115030952678995061535341059888716940705727467676237732341534776228827759149002923440461152355705422868051205450673107195751187770440471527910472754759221034362501081052260486840873047520226631783636131236214542324937446024216268011633159215559050508580699194166663191905827758496188191518610578393374834266455920684649034645627467798117420338692129511168597178345520856740404229732632744359881862952865596149444960780311636600150552847715116286578805512632248820853422341604759868188641664560184831264965619072122797983275325755030926527876805068871908520968234653456976912477016110183708817642627387170407202843864081229866275055206124208404262052768347642301018093397750354822773760627849224745446522477994297848280892588484351676181751702456783745731923459327186257155407846095818087997436531165364398041260060909950993555575828458264136290012440208805718322902686304452607298669350403525211842604494565154408907447796687970678144146266184070531017148169570232102559130453663991555369223550341428166736573056771839272364981705181565276104269145909737591277833467069672614222921156048144272494822113817386158204775009809670515103420413204332280645371979396935837290170838831757923009656014693212316810281324708871138265026981071805250642004808131213606780215671715398932424947037381500003510881165658574233101400333337621852671997210656834156143811292987868959875060578252975916738508146735674697881639049268746648152293216955700734608399734287567383769922669526892624321736738820059729166303089923883771097447496490655076387075599495849091214035718558312533344789599562905241156101601548292447920500071590132089151740255922112657465641808097699738782371933165602577351830509701369391695473098288049152100425530046543051597406348220545131509230586875430180948310680347372167024658588899865305356477008159373021624693717692527901331501379613972276852062722705197640788468049101573064609840253321430875774774423296325785854922213407591995652675410602671204760839195624151313422409857601593423414763899450326089312014544910776349489375453323417271453568377718633208653568383925547154965621692954198336698365690877678131567369958105061469242868117467309682771198210848786457104622613777125570407379935685945527895757912600475979038318414049566305098694686846038234777171942948368381679219545500547761294817024542371337130566460841239465124770366896733006968453256862820768336083008661813981777618638324167177437288380197200267083891453977313955029329175651281047341257162323535623561966538883364051485741147316344311388064266721327250121226418074798971018554875159855765565025472325728694070875740318920704224319663421479969446675854495929693105024985057575310627088353231976654089092221943184721123926499807141913360320760426224222714953093773115731270584627910059178785895029587477701111164614027421757702427625898080202749239288088038385000222689341962544652201698911905109324798855559877211868740295679928007827553514139503106177067946958844172196146868023258276832616786937775341368445972028830547966607231984710889051132006906309439724488241105826342339036453724905529676286679592381156222329652564126635062681881579684272984816073458007549694977376671404554137223626499795038317958244821084834139352464141947832067148819208592175280219681091209172219761915794505430875966965845868618286937679113268072150565405679905252645834919094242233109887492228188895981883184219333904612899559513451669620220102965430011159532410332704728410189430830294397908562252523407293690115917190888393458194603203376956399734354664326813091656303779422480929020503159459524586287437357806661628183779028833857632868174062969125541319980099538376291382767730889347847963004281229357758542086747701482832221673326393015575034614476118225324903270752206437536259024720949965344582549723216710137419749023110735063444172645988194026363305794895510922010172373217822647396094802775367714463894207573327717213677828640645361025187553091253609244900749785636090839224808772000656499945118036954812584932968792315831059395372964361107998183897828507885363079235378313689936148638892721783576186685287504737226385768573870101397543211150409789292077819874110258313273489110955906083026879984654595613536943301806646756757055623174097708353540321597597040619702601351556474095303208065428702069633043970982430968095763688060480227236574387702385752435935887923506764161576088339628112653270797903735455169361423735689799005372751769703053684033424644374251458999341977115888396824006977357512828144810264380391919542613920462956005994323416259373763961216399252938764655786894045896840156404796287943103223793260545273629678905222159803712724986035911309135983709053577813255901326375854715061813345751843345193156882688959499809481321461857210434559599920085392676375999987757026213553438249375322783646085811674739853650299246034214156390016961025358353502572165730690470726942238510534005738436002213947895430179726360883816727979977668718195715641454522558836095890623279129758607040712916316075525949042223309068493095647598636471898490387339252196537978958341628570601340622969984379147774589473762709562062237849342367256616876621304397039728459574040894998560169840271035718006176729642191133552790278551699881354827801802363027689407832066511571230166156732711463880718121030581678588390649650671226224279081390825035384493411397346271922977824376984946567376513458067860549554608263669313370791832780205030148509200906117975696380489042739612420644826374829645403163228501119049052705817684101525865270496201514825119491603246020517403852201220547662987603896129412228847236459194317553833913127855518505152955768530340310021989353873300731829634363866737104413877604601737272382462276143985367767172884672382304000762192113696172202093043135627352084756785216418637345044714747327036880168436350912818600234951963789044866617830776541084798861492102034307802681739371582095087067507660200033035521471019304385472498662687027581873906962403401851717832417104015659976224809660515500642550457673971903074809119935859790962395432830991933557388730974782229487940486642310596958693660421585232672228140770788334838673996051445621830890124430225602086562511291068636741742040577839680772132692536075262706184878855963316725152580630956646147909459695873183579980102907428577495487863597093067589122690754162283064885440959145682901781802902410003496167565802583820738189063736613049767693661528088154074480650557088711414140153302105264246656883003665099149934775799204297009721861965338136875935118589499021338077354810567074304676740804936065506050656713394806258117655891257369223321072334506479102048533951510563089059030448258409246679733506400522051511440452565350541777890476690639784619538094751738204117941148257452732285580427717865057971151930325386740867947590688171381926860587930903686333094675958627740550316970324842008256335318832766624258346188084406883872962458468384268017617206590204467664679857488752013224317265016221249187040724636740642668820628253192552234978762560738655074921361553818024848356036280944901106908671257451251545423189543916656083357581245925650016800944971879135431097896866289641875939127704900448978912815203558604628691416953062862762540752065732098485131357683146903691127587516801414637443679697322841141900341671716869779217719060564378190545824287567894000371661781416656016990940992768360123219346232246325028365458957165128615990526974253823845335818321317661784453433720639300622180763760583393934536909161200380213726599503334959764294871108861541073435336292855889660158992091847065731997073819211105750538540848577871906696077585682700176697561018374423217659525130915337955898200700381378681193386770869388455479931854748498221804527019384994932263009162196247204065452865969605483041822690950923124259793648267475172326909204370437455936446037575898899635918559813526018282265543122247587515840474521515460028994582107805160526144174800494123311891537754698793858079841855098637997811985373046990553841532598327989932208332849060016923108492927841024730365309263790933919857290923425171389090648200916609673643841836486739983699701685820879674270074573381389220827263208835241502667809465054102434942256167871536534060452304840249997392662658898959886237630234762400291801838861447442895985076912036870971637013573374960786909023759607905610017869700470051913630001991892318994216067952617655625111150545573191827619374295722993943930066622598063836833718749746739141973275317933230443302894498335335396107074929094101701801260281647016648234073946031343234494335194660515032283675041643622486838334768349567323570612527798673015571851571447861727110902262909317253722672773898723816100051584760325985285237479156556119061306524435131263228147481496858598313485748066425160932726322370764038754185222521148400552420794604688034658348398402870559424306454158201539728606892344456844102251469943213390336768426593360750691646291582130011811571413138799783313584131960953354761796479761833316358410911338058539166656042541322150862716442280124297691243163019498993822059709219455758441005196839301495743048458062856852009664669706171513196878440451589162744384164832463771495329016159236014898737451721245858737888820235541007744450898382676176947362965612106013197461715099706261737488662908179349171866178651561057623643142229616081643318102454003008175302806514970266815047776080151561505894778477129748911735105803034148672182352585586362313623940072983590208042435656936037707865881830106816750192734654616067860907431145612813361258741503476899879660544971543099693836928353586177963518724260222475106491024243630823877476219107218631749363126208249538724768127442943999687919574278897915795968052195571906802335105397311960746855661328945978825242107678154990272949515356726627141366791060721362183250207310319083639263492472070630700187670536894967615954605900498828799035015034741300298379141748353068443976280633666688907292046172448965077862173594564430194862853519675913292332295742181176704062274801737398035459859170123364177378081643411251562022414171898201720765261953087622905743895807615115872373513654538936219807264720327811071951443767938238153990848597756324295944609515049603773913267814553959978731844948013152925788735442589003945907414394655950994938730846587064220995759473203656168233226649434140759642809875732048559020710615987404366696252866477560465190227363709518977883694688041456462003573086283100894059009293171234866454073659526391370468007947456889190256562202946011130557703276217218339274163368204978553552843339645581692882989517330695906216935212247052160735622821086725116580290871391687356065318626861142435090698743127506619216456236483422605671116580956719183495488118664285787148853371628715767341197275162834521445994923987363731788232304442689060654010162958864510203378368197303125598872514285803973651911095989506867234416598839358092756513023056279932289726392668969347643561563199292008065887965573063491438026208943810526819808268169711892886214213379827965036099279771740978448980811245370446717364930616172779046653403900883600162010480129758562824614267980927237964586027397169085185328342526071795393507825729081626753714177089165859597125097364414339618591103646161358665554231686013174949866263903342177721408539160969171611542190542465858746344787859187809301305140972463689022897618133655655832476769816285088337215023729504675980821733778985685043675005435462667134989790616705125812446825956180840086715140573952914123953380215292043745130681697442615036070068407052556615129305672538906999182910472772619092030580154084111273229083973398611612599093372126574273631877073960370030879846444071959071427254465075900886149466831167889139187661044884412596919343564120652755990291787558717646258295117117583340921068453137665244608607779493488771187968166737251012401858645609583093848317581952350689504156983332979799001323705094620116866348531992114380903784126469289581831741366705708298489405490453239468677725252010092700937698544009460131203674149377913005768503529851140159826682640225766398026478545016116032573736260277411430361389246719880064532158074300857986173550203754623322335415752858803369231392239663519612981597497836502906271115844337065666991997277973099347041828556201630015501411986561843463477681331227207999498046930116929305553328572794021927281065860342166160206012729802094632804956426869205160402530188379094152225748148849637078650716939335568916416793825258346704008235859210811214789434634462505101346526900302043790949130570966896764342312454104118196291953370895631122919148703533571278147107605656759370707961643752808510371718210035640872611507819813455195657052530598766291069387912144773039575288415387335378118778601697206126716964205001629720923196663195790594757569593635874437293457900322887323685657200659571885684614111120361574534951865729220074899007768663161153356839995694468542882729081729835309832897059739800044873561661413181499227618782818655296463437765756451471577012415071343953779761101023194371067228273951123067422557194189368715499332828501605074840821709313807272394803698207083864359144694562954057088402016412834201165331242503820007251689812103274698872358001543174505522173987750321815913912692924050735375406618303981465944351698415434668825525838240770092910613617115189038998503866334307421109962214218095743214229791011635389179154276590260006126375631542778086384553696783363261840419913818961501402820174659883764279181659142953429720060606116857330188197545963376078275303291988620400549192599521003640281996792662998462024541438997874226720279833109898655919157235365139280050263932089753661145174034197145749578876168589699669096693610813899979099490479359576061298109396878309185631871153403763658619660000226191346393688856591610963234641444927143184612339069992605809977286434900336266157979500068917666359013106973860039676496277009086694903012026378189917205530575172779920781778916054931917414794292649409434589135493797768704939589239644255211333783413814246496925829794131993162367020620823614133306603744909313851389093932127288668714321736053000168250020919804521579025808846097435674303106176478125198847436061591971168042464904602722121332213020906261843875289847863451811331422878499094696386752113529432824474782971054503361348203157081700371675067778916345114689686730606759129376857844836934410343810752664262880443114019933877370531558894958570924536905797586897965205132693280789468060032040078555257859429345429173139049218530091174980721908587475275793947008699000509896027625335494103759659741729222125421104298135056442632640008989224325588028874513804769030914189822056085580562343298879405462728888104621533000477856085830558328275899426977990886350842430088332740041450972569813240123834529511453184577306472304052612798491683331471268657531284010393329887563086192526655363389790675027726804417474038294134625998173468242660089452707936294175382044003490564948605373366878471251217509907657318714435499730768057178821343697812525693416218994826932750220680752569364843511067486417263844099812117205117788107783637520336958279127803440369596864479221868565415617382792061940918519937606574804124226453061837499921366675556983596699979222186810485434745212894616786617648529185753107287569031820233955766166136445231950595055966267449504495129136813282241706382523692380429442420034435357231369193542424920932346689174473829896717059056773917095258472406040035258527004914321879629118382272019691355025631829428736364449570180018898791891007520373345541565436895115846574531289346189480234421598301866719580397418810874602980859802785738612159275660887484272429967262354770141634031802431026448866774838762869573119544176415251957012483282607626609181061397315920871627860343394863441031346854142523711903930673671355618174530632627525342337513461431754608818081196215299147780641231350858241507527182548657879716388721288431636310103808892930423992437042409271134043864718565832445912397175511237206602542304123819174273835844792795766121971716620885088910904381900666066772942866487983698390808472902544788497602122855252509666901013358277052524765386197344883629776824138462800292736506161160295071812115237110641827185281715360730912174552600212881366339912596758231134784110858037865799282225461314664688221678061625955733184107786601996228288127004006774077549041740802356045381329771292356846782082481194586848741157901813309049103226417820609783590682515159712582881793553217343694312451646647677147576104785227494689306668985238481164641821657806991899646780290452910891255275994997396871563583382228889648980880966514842892558314034139233017343960684468914395313897447416690008400783657942765993738903598812830591342701082576613127999102283151232826934640988468419850465416067926632853511337711080083780722604854621717679251730999130789140167456824931191105686382934281171281115885600973325469954228948537888352894380787762176568990050614133264007361482671596052211605702036078843738488610679519979789752377568195867133214825048967718275555130178149643248861501253846841352693501417959983715588438723221879217499241540648820206962374424149972800454339869694632881216482236365057486973112118729146235457013870381229128298637848158120559959959502290761670124846050401367389405861690759055318628149179916866070591165738666804687859013732150572173067285412692075129904033335844963731713325022898114904292766505570166271901886826460216677282176314447011345322079405502420402922356263436150569569306257422880357106803039502253635511439427683454873820880839377348097532866072266157868300866227745958505421876976447153848471036027335534061954988298578236583779500303064899095747642247664623216064655941581451361529311080360314528907192980946149510669442134140914290715647853116267163180619400442544706124425296007240505590642366801788761364376727818183731953730883236029609405343929063824564973605603566330793279056765427699773136381728011208030623200625671617071644858071746361484312683281574862843487279197859250314270869744561715774314225059514621870398963667963263348610969830917037825054785596801728987477076654146506191152620646780921802028609091822103752341151223119299932986046794350194794448921711268956589274360325543278964345814585887718672053521417105107297849277150098539550611346574296208693955224578141098105485459441927989936412694741114062083803896314705777191332524361489452072114000998965144431877879472159490042006387056517399570247908193477966414918085207795405618214329404925036284694199428194154300248136841283799919029957253513639949724944048643633696965700799423562038467836339852192871773587442435089538757271696015941247615767524893890424127001902357810798811109642147524793390157269407296832855638291711596039402016270348346999310392985732287753991292385778941854648632673067114822697256805457364515776653343754493436724014123863742177615659438609889387422067886683709687378411738668041430728524266505482405909638047643360715792522534796123565320900207285358951326878339641444020594600316442510069947715762589576201993989634854372383941511202236434309050690343460078796136588068943239355906137384313311567467468915803907784710761417598280313076021162613626042477604978207229946863342915921502882949154381165744886362118506132625493251844836699266991768696542784468021040469022792031436988107052066024512389047108458311799034649101315820620245689528224231992028946718555403049250819920818035165153282889355442243718550274002582892791990928233541512015344683683768258897599408549901913933646904488507884476564114312888149577677897716141299722725682675367455589317219242286079248084408626650210688658022303029432843427488184017346234821683268268344906259960876108688116855061751336747524550495103346685618460429729175788772004015024488095574896862835089011384321637741209030811322537097935378016548351304214943364615575024403637538652685587233348840426524643375947995688849808430641417779883623918405785516183163302981173169817681990026826948578332220440419035678428679168819173621115311078438110159192668372012415416025803145130089675137931865984607979154626208865198872818082728529252765192139358715887090247793938298849718561191572204237986593478541541097470977853043743376661618870547422018020982722740003174321336424630334852025809820672643397442455776339893747432835329768025842153094155577651223397221830725782044383811202134555337079603523609379983884699838635122561768125277258868033989715122851482196414514134937733072099602762988571182583813207212076059056744784476795653637909455933859908998846770699881297688125926635921244177000613568087485486483536842355310092347864699007101520997775484229422704429042523438079074590200639393177785345353201207924791055611432503653150144052180475845346727449505710456676114250891595660796692919145036976510163418806417891958295948019990303011836974797729461438856322011085826637166741486926394353339458639069481357957570428411540353418676521205928033767842069978254281318488605928055851495155306995421497696146370259553131440348768528447255609722152884009355764398260539891632410140968941236351332546413413515239138770803602806352772850000512827110511808857374629312568678162122172090077696390950458457979390267042221104573963332581124086263389225521343414505203457952871434739027048192055731721045330865064111352032057316957236731812982062627512818770638792859478589323421731547160079808368578943450350823642361364492705237720403572306134507226279606726411466738414912900192477121215099700023043487161093942771250403857002175977884038774078476947175883362678400495656610732558822139785001601067642710488786228706662884828469046026000837628157969283003690005940191608569016049142730278842337064730935340160121149941298394259845081715462066367520761367138105777484916326151004322435005701616260687247112260914553609213816041829753436788117203765744843533737233449699354451506825829648677650222546180923857560580649146320299652576625235860033318466206193341609998898427317996873598678901149819662235258550376479797610034090934359929084144617734880539797596720148808164288588317019768903902593064360952241970053016926662151089759887552116796077860516569017592851652570789462580660191415103932199409385512002672574373164548248364746182021678901940043695260418687117061245004935020247194838068034110057983632877673071379409122753138683880676448756458030820760218270555676024445621267324816826262316078658191572981803835975572910720744798526135408138626001588687311755371491520297946131498589629795286909909351100816673385686662809062967608146701952072559242815878660667237005028264213202754893422290297172859665923315583570757430304049295090689589146896892429524713534557208659403892526659298791790741951785972228588510429790656851356442597845565767856629188249469981065005547903179045572910103253630436932732121595248751467708371953325106628974806727793741866286936965650337750349373891773734388860635343735511807596451358968967425357833773445637078918578455997245543625679447570609577688439081189015925345469120088917045679141325052521183402011318434566822446638960203924758510615293748787896009404206496824271888286385303537961614463308417082922618098419294143245445663546763260754474142740568592917339674012562722043131291563986985121599883083860051641784753725809733626988962259791044238877246088221246413238912532483824590153551951486016400383232903072263511760458166688486926621175394250583771695319175959703090268330599196566208248735687110057310096484175397212334947155988042876367960750736960423837660565556425224667510717269543629145604651093696425084006915278951930741397618783640352636432391337643084805619470889826770466140081173701888417322033066750832690733563224116770352929938397311159478971327353046149855703590842212416492374905676225798315939834789135124347671985235163905332456749920775308798564629913573915611742567076992873325755663719099142691927689255825245956903480669359875638443726768500248607164213809791298873760482588199683222871706168460384347904979709350362917625786667618955121599413409243656101566929114834520117742797582201701641455636795418318740789244993881770761087063544436964734428972577904663120294478522115254522936271412431941140527503796856367511005875488701314679026653358192431754185942483862216437733175145633143392965060589440681302382818535435969131961726054138585651443958459494951586666069087359751726349191123917073641743059273098858134812239805244954588609158231338303777909870329428600548391355781571115087799067698564870296956815853329161718540487667491284742238406399068187868071309940424968181778304483480844349860827559006375602368409791492736344694309960280159461413827833326173501061824951071290603135482129753754193192364947715930015469828468867699637661764316088733372466085266864922681070940308000432932277597464157226807557945203607514679435333679671520149402508366435281695902805441192506033927950689710649576383069581242083421712872831098115786981767500541722964300941692492855741211103137519691201591157202745418487444349435487217022847180645228571459063680357342080937063503494430972239208786968768598767749749953736010971553621110350046316174057166128863129918494715060894839981312983433985607857434152743602073542164215069163084307480126082045926152233654448868577226011134586672419825286009208982138386963465275807321026678608331301265451644346481392588670033491072750345411721837613207426185899271443181032988357296407962148306527786908620766500097179914025400529738677356514073652503117282526432101059251635115188251571775768392784743889203415942998698561914304781461977694784910677171524298486370811092238051771164782334108017000994069511673784172078090104560793603998963732509062468157028173317268459623681979477478315848959636398560122007565130523717097071190066623357980101086267116965328669859366644490530788374123992402158397135612184797748138445012814567334159512191579214542810603690522278120746881093775204256601778944250168788188965288594241459721001689515342680106899739175429135003792574184970252310522425891142781174394384316350786848104522937759767444030743425001793291321184424770307027801519993184885241997410316179262332201353874727058107834577189598788143663634953179669109288096134111169437538839079859852855848285791084836918594672664562185210847643232398285782802072604793126142303420046984892841900168598145104075089234398313903742098792266278316892489348139725299977653041298807574348691131783076592442561307847380155919230876555666962962700048285023940394008682780197742992832824116963316714815174120170430875608013399573842253106817790213120469319576735354003612595898085153071126142329238099447359119866830812863569046182413984853399229647175620284391386982048559354455947367809888406886023395505389044279422441014822219003195378359344542080599813213065959892702838802785861847456013061623297164962219472801580391559069852578253623620229544893068167350092070223075355859143775286701561018743610772974448779381399811271159528795436968195937634239586309011850110781771756622235385042363416687331804619622035731987031525390809422542396600149711039186709337304412147361165253804706092819994643393027951838750464048374493267209192779312023207160618360416873148088456748352985388523246619610950938978528113020895842748654722889107355764905155088527888339704345518023426768683161108729649221494173104707832089210426534006220590695278129102195582895992117779049060704486362415599274245232937687454343736180233344255888402159967862919725465144594367036582327097067157172750341084175843255219287888424930769400982367567166478519895945395775539721647638131670058912895043338452925578113033492737058376733453095265395253275161281302875003439384678421065263345598377356118153093112937593679231270577479782923928129017390107275588616472069629533101649092926018887605455781870641585956722843080998059671969137785816380182503416119710614164446845465196079910746476106061749238640206945281057739169193778810104918983385982606817623325691255507199280198189400922698837227940462636921695960479798136823164463030439049352331523629777406332010716773417259159270008572471595406201351121710128325473414109125683403517070487542084728076527363630656818942094535513879882361444246036794556036024655264025933121281697090416150241700304994078998484609912694087594783780561986170422977503226463307578492661662917103162075320977247568949587919640705529314186493231106118980482050513171408860946923503289621709801423327990862515868341435568503398756947841475390363653717443332829995772143969659133846238250803573426642718260838264898556638052986955347501195862444232440343419296431127340051364631840173358032214429590633464544204726877223839164854081440075921522876814936144270673683203948821486436458362997259364943034985148261679166732591634526855294127422974700297728216211584363817891384234168678296938763007210546167315396482101460022445464857257737129421716057972538368513015015570613478301603010335087923606341356495741525912581334050659320349173747564065597219427337698885579124954556954346982669948680908671243418090994746086434441903940111595046263015013067667846619019077601365459614684086615112457128834482839357866015890819245903222587308578531114399435945621066704508579476782346858613980612019587263707886460860780777040908350734943843599230342100271609853232558320491419838768031033262846613351006798890191733922100440928289621117730926197705866828474208834768097150181800133626830255596390284576779683841452323855244153543194670599899593299758207159024029794507662980840515510900565169660459522983293955778376363719842070749915245766153595107361080052393773344168241379857276759603013673138094032535178938799983782774099526683441765669081381641407366246739884382613586144191738467382903289263708870315407456399043903366790512808977312851773936571912833055582319996231008569356829615667303639707269425276225123803817402666050794276621039446394688714594172417392430770357548671498026377947907770672300411421669355303710002906220244525417034890274973837427373989224168279441027937576733702077507877452711696713733232575183377487387285998080481066280722595340766194290498731515216898911753669649813673343295531055945467849015057406758403253507914731483474708779836236070140284001797687126499143997672413771341434804236944631367819765406769692053178384136443746010310863767024419256321793535584877708147673365492658985829441186020970481014546991160812606171219125797610673568837932605479485080877310711843206671653109155211735524003924657697905476451547465027801096764687354737346782209129339260122587823748239129307850361788836593327642512944100581065852477841224477717113087144214451251194262276810610340261425034443669966187361492010048925597319383080929465434677081079563155285308753572295071064050068844939381919163038286337009715086320602388070478969791111670609732041098166435452208976507198418605908268027000690403325203573559332551178240586188524471880890127032868868076728399456399030987757885347364247999429203941065774079506316743340086924537935534896508913620064697732292342033668271153858201279517154051770870505344627019985485926617334409939584800050081121651023298049359846613924122760156814180824779965550205176915380668435275596715965198636466461664817767826025664496882084845853527593764782366094856496712199678647562693389786626944524692064870402466025898853728710437188273550578778228209199113962714699096654401915165141002605726647021443487862371747481705501408784701722672910759402623278258975680721341224205367545099290597469542044751344742263324503459610459837571768516610764894453758080301581083472371442178179320180917807400183577859118740234130057622643837910760718295190323434454093062418194630821513467272506734805901249917195957707676919668037684070205757328643205698524238784870604788595961194356247367565599484446790694210427862565159769254002993520805823140680670722698169118480996194802198272013248067726257053028082128339080719206519912845855742674287841594087081507325325059562290417607540057310667205517858790481116474880471678744215729216709598434044240464668546577853430369904275839267014395301488052862548462838456697149009316681500693910301053947421640987084236369663158955903843143781163791569911780669924838369121944968697369795136530536962065256272864795589566213706724493253126951105679385639479589935829144433385581099432555841178501700265007220001694182448401432819955700422327854972209503787440874889714336805303468277348365288643756912668043268848924943487524676141488850479479427398809689582323946633265085381748882615578497440238795172513273708871301485378317953929900287597606739620603247968386462987755477020772702331065799456606181943610970341474578660993749624689029808361243104959587008020771586697186925653347397375145775913974466434092783962719531381145388346782346196955604653273539601504874641580041361059915705077525583911326624936468197619492966590875912859499974934133653754357966372646378140272991852396454618630938611579847459835330058121638991756796082519850782458900208774640796509682485018187908786789408339678850852549867335962092958584848084596553184528005922532282457725602133906916749729639722609908831402529972298812740754137647173826786592483653380058714828437169721729475195333003277204108013322435522870810012056243304776726140618838160722554983815770842683635734658036585205355375745657373636646840414177097685386846074205659965689243963518766083911809728988729426353509480286919560621928547525266261048448536019913723777914031643239744738077753645347288915894091007561514587823431433098766980161579839175143202019518321333147722790858856526872314853368092256592188870025983433747600979883030102014607023858688758445590393682067513727661905377450140437904756145481141968553962318891205289174977812727678669546026283285485642759404960473981743312929969846346370109220045965012350570386737182363898459426141553450037587377886813053362849580519055217134705917526801082115367701530484085795122441139868713034608438200213629368718057753368478404875124499542342520582630818189622747185754843195625009589222078856702068399242181930592407862197040530567645114837658166726013228030879274579693611525245409158360025121369248178750784103083315545654497037080990469252284737130075146381298660220242467017591055338322071869704934830538798996158281687366373309796851633703758396364019233185610644492304135303901648081713633163491034666982700181306625475030108638874092697306858473316212898744966438244783338808092698693553279060240487123650223731004258679235151963252597074368076351301031604211266528113685182028695204607959552567622571078000755384102949056438215123961125496958066501590202468660477794318160127434890141639415435514317845865438160760864376854768907531639618030532833203580919537735111154339439105588603152618475275386055119367831827887173789113553327850199033074000410775063654925025566839242008147209734086405191010286290914718359446338409329994504347807226307883374762860755422432974756244346682995560732769526937601223204680276220469497374642488039355743299950474645752797943957796957205836492185960085617081738761445661466149779090613573840415317236416665918187687530127482200875947977152407920813990854412979486862353657290472202279244934264470019671614997772235908514658491420852165486398708034370198919158372783436358950485081764650142440091955609749068683381128816765906236730460065296703138802523277561410009092463458278514379461151240892132490398917102443024348859363440109426935760433606550502911319354156578510846828188989343628965826298636312888790045636718546383952701901396194653800053730823178070994596755491178232838045057204551445568518344516871904830101276426032215397421439163292558070610853696605506891925012243598775022170671375344757017348602167934599387557399914458968855206352963365192387290037681639391618387665255030179644735430590016110835031627698100977507231009680666708972149858260363411248692952080913984121583442846781978836324353250129969304111600810915141285165888484770894150291047084834323293940465914596385153861207835442675140807984747536702644769286247269473424638084798016482823374394830801789870179470296392794367286795655795676360035257348244749116737081423819535723966903755815052198279719093749256237121670984478168057147313750994433194820890407629851303024573763133679633185515301077154711150108136700394701836314428261907956784367099584495605679635513620033634593818851058966097617981924391628088070230924401177445311551545494530885718381578616278917609185103231197678947911178239991631785705330958534188676670807766074740673432536999527730555092486660245640376972883502296899864308788824675071556222069545357165428627209236155773880690191657776035606992604240248498281299176431984506250129157603409848747691503339200394023653410197390836353678283303266094079515470826971368381558832989717848848696013567583669638690129422987656558573748653430992632289502619934294054610774231383706216667090675202456030988089206239076168871161475631952497485118419324653256075343130541924035381778543298785139910672122918668160290743274543842548663934079826405746669716966064678253182331347575541846891770129201437845605988027357795673373476183646503069622614594273510245426738929207050435218988061352937339983755371401082798849428606616991346329978037060286965277573223709807120646501823268617071317224002950395204644952712416903456661424531468673243104797790095914874827234690614936765045944822671159729520073317635573283408407719450232683364464599804450486369174981865160933259466366160827075221742987941979801098866400796830188890932359990332513746048803831644955272742217551010125517235826814695321050931599178210997976451276213470335841396413717358012944847037837375904647185690937564683794398418519744468854612790297219149269684377036923062708235055387104328216431212769137966780080054130053871192815070244482230603929177351919745107507060049302829349175040620114169073740408123291443295894569568206858400866205677723405034320187059046721032580554290848644521919434134416828866495189761812230427630800022774685892772239655131346092618625091397124641116897005537724046828870461394568561536570668781511854060317658824320240827282313899176189184497507978562706518718176374012680919671503917824524825040317198370992915421875580333762900492430123022670750673147567844873992671224316196474367770674000606420455542266495223519783870050430949227043986091038462229117033193680369181772466997724901862875761893368688208300693168549599131134914075383626765673195251485679346834593622358144397894032688976035714118449959934120121624293926723924151485871527484141463470507673648808135337645477751374911597794065592650652593375191360795449391263564973552565481682604272080649634075717078438600068217145885435687167163110935203693114759769788218466483021003042941352667130901190838214043851931311383084248290965577314017938877360012845501327607356657318625826428655139430436301555957615920170838363797850310526752708636089830654790166780909754683747657988368093675897790060909482174180388626286008775987323083265839656493233412945795216807790521049474991834244857276004259367855407751788912317033696887221445542023698669256443684394562811047630116926997220283485002449014871356166181757139724854770478392587933642891998334298189934851923502253232529076053621810448061221422385718828017919833477573939112325248492347821758396181310962971900457946654803679073289652695895938257176857260441756560561276814401085393214009143893983106399282225965275459655804645099862086655299643098621088423557273589844191033867180164166793725835336802345711101903544568969260563780674045013134129378014241033323539665560866333652830638911023533201111960593635836565394941902783061837734965221800891922829563499764080053331342651548085691585218426601234763949254460978055254500386161629167057224507199681897742007858755952365644828418597863273627787499599938656065290749012677627726486124869794381036847810585618703886310914388985850387138231775799979809127895877222116550558570083886635886618123338000493493427214689776845060083356038839445225310146627976769380697826734304578910213178162035909261465250975006821827057318389994355795456054145564926394004879724364191517746774468222332322470331256845911691253437473051224297994177506504572466899760303610825220510092741461922943960974476310044650548750257319330321762679498518986416388091805945196043782998358240858882829322202800640712649121941282657475060603657119996926066782323720748035259166714395914780157448110473076547582678181873375233092156279587101726386503854236009866101741719875467390231743016807714483805568895507157953841178715924599467997521934785516490002266507566498526414299088334412898675719583821562130946189652889190082986866611135384145175021931057116085202441038979771927695922608218989375931028179255490962898614139933157407007448788080820913659001437278493065676305282810412873062995512840810980401145014129591587933741223015420093990428412329608234155618867388691794533601089610303155662127044727200440647366409178800557531596289739774164121855320487960999784599739005695624715996589849777128629278855596099735015297276552814616632933841022158432671461806412714372366500175702223615706840799714101550786176398359875898607646218658349374831521199527414924853551976702309615719027914818048450970229937222811204889488773263463345715824307059533905976107224803545020055889989480358184934774023201357364207998808032566927202863432236272201699269661111682225691028193427010316566873692223511132228958699383728146881658340638813688818884593119483610932862060999361556781373208984260916927263879573163655949499102024275383789363022767391335458020208932548204751332923555691294941521271914120923782231855662808953815811749116571523148310883161507468919907592324960082231987794390298603871421762224890686511405097966174336823801457730521741273676721537196411863202398974996466622626176374503111236647918349688532163499701202537605876447937029389732125664229995427325796518869333269010885337047600159841386125108965256568025933189804888331364126570341513410415867353303155335365167365253723165189071525043829370095963806152430596931203318069361433489401716981309774161470076962697219806580128576449500301357313287465362642340885575561939946730080604919968236898623418916656783338444427670873060335075919481011689805891489034652759231822816832164158217095523045172046094058180260498038929976375886774487881025832080909741363175749861393043723194177807349839545313436771812393427111331765812091142559350000032343859447999039419845254939550986949182987705546471248566316414925876227390804675701518627603583861919200863584160840160972266719621364410370543184151002921924536702916532814435280974776299597330253897536808489713117146176967198466211798616789698663706722923521681944151685892906873936292113949905104625436525044529965625853049063411562231448903701408281733742304988959557574455340776781032103257629100863240925554613164120031606187328913246800817614743166406552125529059322025199990938405665700934871343164659481968921958383393265142910595907732033868644362631165090517503469155525655345845641211305853456381008255547488877155272774098329495386676395654341811008057748110451134673517778931890819465551293373779680029206469004082594712643873562628529609548651210964830882714531245148556991023079652659183904859656209162848436730458616578101511591887138269146932878641426241774894527457216403816731578556948211149343109077631133355633245452625610984260190577058524434837836995945871402183821432488750596113676452863502449318070057270866447882216728935020225930798706893928303679269780073357841445982887747431406323660564865009680477997254343833909329168397053212835217890721392944647836292752971862971666465287305779058978035825556078102319167968532955072840732233768213064716698520188733122074466496597757942745176868458836499870368440574666062872485674987983041365686708222338132532609532384303890712496066947778524037498871483968383867533613925345682198044068553328040014404720924095492821626227786173141242231470827269945401424375414267460023097321004449073675574747373105371211368241736818535853617058462751918230559123003974628506884442296434927252117536594934039863215343085518740014804204483702682315131599332211862526860138794999976191536889388053899107474597721344466284247788785845625186106935196591642789534858763004631411310532200627536013575427775822249083974434884193893940796060636568698776844628632150498294424542517689072587050337938556571479225005186148304262848182121514354820817680279229889576700616994018906672727140832407382852753580315840059295141286818774914091251458645224564841498216380026827212003795313826846801488799031277679791517613459702433740757033999482556094915682640924990033267779285639247516986333000475232785231075352718830844587657496132708838377062903898623152954214502698293544254004299249749296695605314213095570414195686657431092570099736596398923618825028907180596672472015615253869711542262533309194506476512663268384754150982984152376230908779395876012875152456360173866229071533519825399919751265929352065334810163979019191138926333144855477326247190661611943731594139410250260249578876645884590947776117932680865364020814800254642648914760185649489140336728510551301227560579477941063016112243212345759086335256010555442109734693565956275502640995832033260446413760832551545514537324484050506354893263550467759970033185136637392877368353723858354943189565821001585381490610264755172846102647620587083440247781868544029835188230257438899312186539296757684946305773068533901965208487315454839955182634353503822939392966843900861776091537123835998106072762686768042170743689081471923435512585273800421900359550299033056032557455709525177996000740375205924304816193425259397782164953046275315946290223207334550220168197863204363802337554148345322738504046624316741938099283710389959154912576460632370276507704881045072722001663539717407874973593250907469206529028744878814123341852212469831058732631906151978127835522611138021379440880933630582628191908538830795103147095127760011894258135398529562940204671398483053336948033888372764291701828556510792377260893225074528437896581208676536259616886391920172522296058920432404824859194535437808674811323723964949082195695104233056700027274321835721588982719378523547705769865383522801802543411688240425051078716866767813378260542049357621149478869367031986411353913640952825404634340848116950258061564065252195898997161666458895524694542642174469413430610123648797969275030485746820211990771707648943712500653146490675753384232947157710669507370510341568774878398551578849597349309416008458874226689942351313993908434965472174177442369223714882772138122212563794992703223317779697829705377476625682623020831589669325844867137145687247208844296548997051422175832584851177588811623133823424518721260545932487836423133397115728666233309223006691873514326442781785661018168318620768077430039333105487074253424739525255398067777262666620808190433262181472538361146565723144807667969460927441573539762731233873645419629156601652217333511935917692235218118750012724225788760714734088414893862980357378641543316580865017572996624919519042855161572595779173175492247913652764984400892153993870574950952221247963703448516874487848948700077453800265914725695178343705058112585098823985738031404050204235831464242724654937135573864656034449624946792814563508417222690417747478462514098390326871887096223142797693188491435563722412837483369079712890475757740245310543941177321440666781280785141808058842433282389896831442266314342202900821922784112605756533900556620903509719806327810710163160335455743149338892503026208501483309996025392385985640703942508125619766675465235968937360058217498965630669532810703436873142618999359490054959553052283055058746223475418876367270261299588766528902304673238806833993470036387681409073225456882640928461794585285154039139061824618757667907571141060799191586931508630876909846696392314007216793750811467808367632442620847771499434510412315227737423114977545106222680774129652242009812284247429205249808219915445415593460931184274695677283003753756323741066341209032513495889132662353940778856829458221887712843180005220212944055202881945633892564868694332335598881682703628278530238660666914792594996137702211130082065627389031227439533058041073820610956349010594629386409226743818535854099003541200206823481141348448907072365380858906328880592029256829201753957755441660347583972300844097007064135882588268389064444685069839122960742776361899497095607896404064978511176902041400268095426642935965702744056150920211477944111526950973661700724646024447350080586495847507366295250477254363770326027107257235590821804873558302924909662343655373464026978308274768394363223513400648089351491618310385969447384599564662309799283688700558648606291642010494738242513446241714093873301611434464643274431627375228072465810172358297407000714534368071940065366130483094231363965147397030416594269502426102456832885134106454578095584467356282454634962633771810184996571744047970677775700248889616699463436560787038718251928551603899325231203073493873036591549562400953003655420197741647652120925492264094944234090470834276513668941290109040975991112829591355312602467179729552052054205695697912465011976175823711291096150438126944832856760889552188575685822046806850753412611891846655891713618864820186129641113687697087016394533326973498552170604713960770134175077514481515393671544394384303565441953927792261859066960188144532479409211174684955544604657982703559898484488442667635135427547120337711782454176411017761558126519958850421418501873331033685321261365580946372168702105599985771212693178506306404518788743002190310595265258903070560621476969513204415061179913768115181177337156559958034518636809798490878786319029694167754130104414361597230107022506012357261987699913860587275693252844146149917232052138882741318417935471897024161432173980792067101267868454532331537753405976698897220370442156029395622500359283976778646110978673024864484877864960142975117120290097494724104381657792779742335052655772203816729249500351989151287576104469063048491647953046012319114802920004856174679716487385506617398264218420197833737364647128459902283935893061378730125060967640198980289597980924377930556229603557418756173040103928617398331652082069949356221840011634565506696983578821124132814169923153698678750313020732695388260639079971895084153759587030603196243933792856189803939820719941490650297933644243720810322547205102707066128647887514808073067151281616261671098115434785407083523171327714230223456726549594213366553534520750732098543498270339233048785875124540890727882935283842756252119849707234580379658558640532116611292607972107524252694016943303813421350722853288294326776668823964763268292817324370670882931860458816446983003520102529971518893743197892942897693914530296338584792328378542594422918953919755083428265065020677918567536573811059587134562947571343664273524889786993149366664655787511881376368227412287446091414526245843918134240381772394512599900025804946708164610055765855054078676956452719752627905658477235133924003594567290144738314741762692171351655680409604967310390040588257491777215708122291475818918186744114834323829136931556124622847695923158497868630667340871307824424136202068063603181830310219296767450909536042904256740138169231398157426315680481680599008528862121048610346815936124838679589793183897849986637082953203428044893501057468418106870443189219413518628957277639747179832657668026053850637677250145462511860615461466349608805813594291050087258426750887255071808211669080397115219321745746283168883397880337697991418930049366221203331299461178956091112265573097427848241864720869884054354129171139048111106993312787512823711657648806758974069869326359326402172502426168513004273644732006865592856273944801772645372946031435390605967749821125233227075168758103879937534481264498833550651825774029095985378346044375522066140470456648931494024451577708913286550656956468229807643590843324947052316146495280034846374394932365113160464185534984322267567736311171241238091770471562816395394616499716376418210204099321794216134706859187674391704339987329563545148261103199665617401906879453928757354499125994063355643419941865294815299778374252852484800094959326756460458613706750968530135249100330302736287318890716685225438949547852733370124054581041676324761723946162107243639943870449146638575561564871003811699971655399325784384946830245952031824800146965873119194048548839653028536540623338809245891106075186364652176736009258650932148819640368155710233856290669454840037303232384551396628009446715512718249238358662898264156905602609651014505300021424968870266472032975981128248224830557402799538176414566225634584899857012208471890733507864572803952311581297994482865172568880045016525126124607985926095377986540885244065692974774844286351017025079343032385716468041664507852788476534383422798206157873996612482677659257786325975513425671901026598953175793001877234763443699450026755965693988303418609685452218323643824027260377911197587148914297927413269611618049801746648382053893723028628328951241752630235442168825546292927652797395949111514084143633808506978076002733581295422051715119996369316218295683418832571564712638500037153477393517743337751461349525419858231807829050214789263160879337597429371012034390650455960816903863763863592308160045159535131710058816538604749068997047648459604570028196001760840054057591065254249165447554042840191152832871131396061998647396512774069296950833036736126569654421488297944677784398019010238969453037666033961352395961333236947055351617654278292791439888353291539334274247011521003731117688225026970230458054022385187195617462400666333271855800367875701945136566329921710107697956169180853756061150488246365312383619680394742048690275085910321883645980593968890509326654719019154941116119802494800763467736138008485201438713824108454905398405676464621607713362002355191511337393998175234598899537751845931033093852740641815903277114927188160045740743373672450054968682827693197433780878321390300069586299734009479539270434794564104297509379426528908886264677390980345879138568885209895078873290652217471701428600596573229877927334511836874042427775614427567746188084361219331529224309444309857919140918084212342937201146625263205524588587889117965093910397347221912541911430080155629565319831544992271596990359517765571154986595560664314825600344665136780421103289362081636069958386550140345815052146177341665180749526047466428470501953626312954243838344880945789780469116331758905880708342818598872394739069364692730407753711101706798904208296033505340754366809941553275820960370700650275292297790526449393733680224698629041128649877681158210651931002693107018545243689200166148366185800274928909303317421239441274740190750840541075693752987290502166392396193335872321309432736080640813534334747749078772794624919804244491696141114532487937860249868515130390433984927633272704968432875684973101706661957704243058923804862319793318583683932725548156491540537156699447750765327632928397947360316317468914812534204289180415943280635229751022442248208981237958082234806030767891103374058913965331409037286227381445337148070206858959184201004333325444433388249498746060786557843540419114457277569702306772745073870064541332550024791625745209608090588418735784014978778485579484426467947729133428351119117530587383047474660677269172973851964227280707094602054498157088930466977571787642891189940982200892001157442670052010972763732726757576693149105963741523876870302892971972904754329872131419531580520011160284744088572751203670092317512754275159156797740223325835202849722184310144182651375279866589999480226561221658991863955507543884453866984583642891509064219522146941835762760483880732618000238793628018720096076682228225393834852380129995667787629133685798762581145737564888062160721925365757338639280793037549451679478637056315486485869726308900440510558151135601422921668573865353716830713041012764275282268424471901556217669308905227753692936596951469610410579033178974483165533139321823201121097472054799325190964608851746919469305007776145443439653719220759609239321316958676140323026539789308136472256225713892816255727233516328016554393707733313219236868720540328989419450357603622841887043588232597416360373461148637207405684133211512246754694669399682429856778708671346653313135248021751067820922773591604558997408786867482710573082237776833515496511375217235387700560003891852143806740092684216193816977912108225369671611117852747056833572373694849898951713088319323824565242489099092057728276729154233165111325141570755783151177548351644472311671282321313643551334949598761163155218618428182750050288125392505257396101021552222774966464556776145390719655600985624348115429079326568760735855793106689576437536343887072687654524907780270384617596304351866451404085643071875367224806044975253533252583427959118674773035315684713959529154153342762604652760500862248508961594733321113549748487861231735276375216225810572387555414168866773040473784163292110788029898378288884056183490303365861953850335815749766171059019540608078538099459234183382530001433225471006472664894420137567330768213040055075397774416571277909710733381662538186559470711286513475443917904990236619644055257519275090540153549296871727563877079892120647405378497145851217748044220614171562575672412109590392816748234864031354643620314299998637434029111573466294592171665163553787998327045907746970225656397451918631845740046231812561140769845005228140713140229068441953380096769576074621972342450559643392356466063326520059917479618458449362816318147424182566327737563273043823984206290466095046119128352480330351213181664803384576198235684904899264633649485884458607587436772955287869731673492695080498356305317354493585549733174341275241802039404266597710922981176111853117593006806331823995568365695835323976567638415968955601780310363721418407549986760878636416230567311774227479779956144609718363564218179682013065640689051223857612383252195045231372717074243475600008740140823826735186674605105621833959577324376229640152386839282056164284145237834561006763080092517999645282851515724804417122075793403127906491938789146305861077900948719771239630813978220098646466781706294006578912381871275996517659245084671102146918507814536392073705588615779886855900961219840256325328605357984280444573208606072452826886332806245332505509500277163027142797038786989303804992659661877311596814334668945304569907610871776319113994847707763309415382247573311921283807155889682848013693721183108143363431712588049213421360026591616496823660399207998847834389422111001051716504148381977817309917822860072438050274869889899779187518574490235446310252423790078976328582957351220319447983928427034371563686316425184573805254078914295838574429280999067997021038366844633095401472799814807887160514487370903938183063823451936155329820213978283544099238825813193385444986641051444413472122641330712509085381882613551750153606397216669560857984883199534258145602398944600467230430145952684270978872216152728068007821526869756909300157532114517834630457454388684285673201611448107508842192917030726950089712337757571359035641516358545029837923221524026918378025879931486803760982827637509019553827263011996455740204694548041412395887636028255152505618003322055019518905288473164652955491544490522068700223710002624343618657477873349826549739537602713477197406938081921070112480621202692121250077748582540335426995146344012696598020368163741566579958902679370066121795815098984494841791453445499273813579181458423217498669907667364696783321148541435249953636865025382039352825834349949556490872188140680326709570605991527290924661169231494204343313476466024141765530163249312982979881076741684200890304202752435070721481233645106497686526614002530084030436504410692839651429772997949381709230297690237006910693981237256052894967284111447517037995198249067339924766837742847150562494458959355982222814550902100648151203735230543172231735627251566320365430339120451526787990430105439292843335350674071579218307715816873123244037297808877640794500332103637660502984820079052662343440988539352728636945137561109243352636136622723051245255925884945676896943071517624385164063394898286217104590133798619427714592191265014317692234270090673209005618776092841654087986338555589150554474004277755250066389833061391032773814549537277337074913480949262760823824617870497858746478861422023705171739726234320459722769025687857089787109114442019603389067567863204936254331542496587124487791280843275071144425230240693344452427871638716363989353108397434189786906706938780831327770047704344960631036384115721754813884315516728904479907728106048158938956668285355330897361042776594153395278228261283267090769983810912346313574960506997408247662374411401661334225403904050376638670257832913878946717318972189092186165721534652156095829747119717358213255683901514801145586477250249133232694935909120745877534211388699057929479453774195211783553166441260505386706034992641982189236750929889089401808859234924311422443818841692366576450038214462362652187809014930231358467607690812426133275003688643230955421036277688882484763883297259412986718879786942765990569295233829816967982838995509729974677822714015410259364326860285400026275763672331619436889345000660676862750528246263640824962213533000736494878098342680603745781933557005144547735813169739124106478970050224769081252573074244369496114643229565395210837815503566017222412431210708033864459216849400204982724888193769084333402761817944725558092738117330318198288389253181803818492871280994536453212236229705841587993771549033627244937167521162743929190148293097335281578662088853040359018322376712754751714943670508490644310447867914073810259903189282075841276737102790923821659492537049819888692209786847791626074819309894044384727118436449890163210878466953144637844248888913763715544084329635261537749201482703572338982216013618450733978827687822551969210322879610809753339037177796836744155701470717247416249006026108459200503346393609587649532232791539882872952847788919787723351025980277934781073098082609684120418320409322341337924985388829364710753948668749982951295062916492563263572176534030535313692352779776023087688667531536004629624216181576042806293554578369863591983438440617869681642799746686766791206984977996658680437006289454994535931293129731846678174856341140541262992658362839082418179726035890884120239547444289773449694065708165965352757275863904334943020138334802002705932557105724451360728427624502911865710307106391093333281980745047015209405829457597333804601613047922414366327439461357105889213706727177772689975560376129645676376205512110412617633418137061886228609501523117667547295195170633247917097808265723573877440723701259735422233588091769494936512449947228594441445506944031852631519384193937110626115606576645709201493926638098686090899980561660214415454961348905849642835457583986965268367620115726009053061814328745040638127651940462876754166728132169911097601375080669645780733186394407021289505283411001595031912058941461742213884599618876361647567026757264948547897049239228299089167672135279494603916584555760316285889509490526444354634801943036780076793902619230752667388824825743281699107805201637102907336464501325867595391262807444451263498769173923526801156220268372061403336536142454709910202049592114510229113633624020652939436467416195521633255332434768484585031984606441577925222805140470877925157115249724299156029707678438552645291323473284338082400015016958302200818333553352415977924985850198894377427888226330840349842451061172819306812055189875863294357083508483770510918201220726167703428682422198217105966277080419884950065226300069400115474986402538918752196850418648141203711059291484152797082996744984498873353620708560485962391618543564839384562918453638101405509152285300978095069419567020881179145498179996621502203176527709835527108580298162133259176217716789194552067848777361648258736856837305216177915983270446258407958066973013959369767373749377461205241140828739401345880555876306514033787131838548370896196387405286886735603771062698609572526194760060403233343982503230416956742966280529957709696463947287213187558264521605233511726079703718485847574567017208120979822474194194076688024310566967587140524502350685336876079456584378315863064886416214326905392969508941321379615642655754835229016313524086997850208602605878245733514421257497439354902720812035726619119353067002999311903664602106065422825129233896077563600648748460141172771721316345567485393834635569791803331575766017847125370884649737551228820360136847014479536377866960117013029599997403285973603085218469173027712750598401335049250859200609273550056531134648258660746092160626026424371752070062374296037755915072572619487106674621696005904239847812742335668230296137403911287688727977324595064486550625479668596957507186178783786149203649362304735233825410546919827605374254157407913702585625682257699245239371485389486064521561846602289621019594367602535533797038117905770239177275476158776687485210661203983280821883779486132706732863383580379464615976136930122571715338712600038801366706752292060287458917946197692812227502190802117411609310753541832625696141645747242056772120768148024812009752547407493399431099570137477212189685978138617051677852545818147438942308503663837029691646807707754543285120848309657088095133774719862688093522712478161572906466468950340634494636949250659577788778341073189576496677545408006499533221740346790028095027660530132771740526908558326850645452473185103901967165193029221107136116818951160909219488193199513675206295522693780552235265611960991557541938469685094162292109462609375732379257406164963869038181220060679751193466183178270540514178738741499096329958001350405915614021675412948465131238213809276896357588673546229850728070631554777812226503022020230881957319082031805116264224421276511052662962859266031255765351883415285518747240932189514608125310453485548594709095746227613379597476978431686392861202285600735143506451837776120932043084483312725594307814386068016723102810103321148690851379849999575121785955715954744325282793754742420987764265506956141853526056101290777847414915625809758781224575099885714726796143307653727315463438732007128008562674015372618443174981585545968319120381227823950578175557672213719827051361248280275162329738566741270808766903095677199656747861209040970182983426869327901249949905262077711426213673518111826078614873028399596651361756085424190922426044523701817159868006936553018908251673039371776547894734928147307852880343199339546955338233934979755439027494899075731319775278913667752994427866614053643143390166819610335415955720754275133764024972345238776043047388345432884270774194082661957915257275877375312722795370074568313636938954276959514733068323308577337485635530435746046409317528653397883706777296144869685119978916777785012590418618680782282114630088352279616121428720104535813142432530465798528945077867831691084902167248100993543259410429585042969912707078829064352603837722558567962182735887024511446360496211120245348986155288930511207479401095609219216685662283812677324505560430638833137617857132409000979939261164127118703813618490830060074645281471706016480322825495402756608754814106000404430991077621581412709186554524347826878078278514378102127576586910972162405055191341153596975897619916552338534755759975847425776713093509911156935449703783267465167952627633027257766815430623612574899857831683356412236906594643133844110182539911905939222883704681197065577262722406399789413677202612253502783354647750495178708192767837479851837662004335157739888623591939292850106145347583726760799132297850421257150960038304433582512898696193408613298975724677084055311967492899297166858408798149707342208077301580077092167658722924325643829736481685978619495701653815204099069707263966146401928963444498036249205414984287947310220815176530129451394558815918994893924242863465953195112187508823844741180492796991530147995350579046989347106765524990626740343848701338024075512350060728446853434692564490005251419138241875780240562450054426291721287095969434346349996950256944993871482603160210032600449703785760981888194482867704677697835185796216217288324903623080185753187308350712028993006678270648678219515248641817572206312170026443830650154277005295201689061317282505383250076592702001235822557284826683001686922704582707462775809007793139748520905329345379603886751534057663375873219531468126434582353513505996896688033837711366273136000730524549442573190923352402521035683579924778433576364747735195471932562607802921340318784119063529695740089186290526481883099075943976134536189716867784812903275319785316364170996138612721567103724313041838351042332651620479266959511530902852236643143309876815964160761335607437600346026698590860653945895118650029690557894450902522027652468043308239269531224029555106316782443287705397897800274346220312272370614480957882629367651805325408502621004368202216211081079617842228192055667221192275037205861507749784372390112274680479988763762690908206221218705658557390765155939993859040828196230133889534380897931277221225284967757657975621050652143528459935613534868330824001793224776326219505489982562319932567868069862309718100813195988866254877320692538006211190244225731757927674997930788381693822171059202795331910863001525231751213462846295158088164564883105439750651916675342006253173120633944309969398920171663015300955957860674358998884567256443273588656266459233803784270514999902941767785017737140540885836028224165809546947754949818056219045336501671872018391080470073281448417076420294995721060261326288076126032805971739085934044692296610195746581187833766039650624809793291437422992084745331005975711269405538873098310488205719010464470991489199188619901009591096295443755079716290907790695053584135713522370808533356267144369683558475713271302692047856888905154008686708080969255958425366951658080629828355670195233475547839553763652031949990871061194144382864344291942719199657596533970990525330502551613920546410297398704611774936325914371858274547886421379994112684505977583701501315858401427408470589253619922724539545783659056104768210798618513892446829535988264943010983228763577964311974441971641048903036683616829282352647939856449580147301050084820910594389848374063085065279876746987212001485840402581594416946852053696277108757132050014317478423600000565164642623611859517416331263248751805870084623448517126342391147447624466026269514518503948073839644067413790118926225579869628337576565188617247564139705277562419218106997681538976149311312531398728239423709353232876360940519557213329879011700355043440173984763492957718369966549628940278359080477335410750986808310088628624076667794589136247932039003378346880272994810565319602199986786312380759410858832201718355903740308381011640735096486835587905269463492410972342827681077138549564663462209101062073391516315860016064338044451001585464850170800226979128933769355221289782806042035932749490909397308358188231119700341816138992197430754836848862038482095960574387714644831984378984255445053104187384662857238680648123366696935772187335567558736545586501210853913832856014382455400320475445207643522399925696315980863930306516866546893991135221329110876546923974874259060167741772580972017327891784840073248244593098115860259064992269774290662803456849845396067442187318671129179444302867744098819216489531026592939271249732376864945157498893178989119129114243298217006073248158699376602607886837923572786099940583031748740233672958483831209578542475435148209142526277955507134589974224508605124768664122021314942118373647943434898641481769784097517950813237916690697206805758881513952946201583126467421082882786653173353177178360651574915618759972015036593219887572107253414771614360459009347971237704360023279843222147011616479750749964864577291363796298418595086281826038279789356915082099149086169430942822939895142817842078156665636069488145350705973119333308166720400587222713764571194657461129156674016459860891849943809183681719848630106819844214781005466666769540817092684400067843354426606854394284303047594561503926894022256913578377846294044902542149227553496605574051193494494741989679370938495710451373824839697830340346223037264813167348722482608421075260969915904056394482417683526567602434671318560763661854335418428973092051237937880583061104273683466552363737350288059901349990494846021973587175563363075183759136550891413686500983551060652986710508999462277115765476081004059446599237922376854460854572705197944023688916015414934736125065743925633560842599122341201264923123612322196721172842268367454743880291441446124505682820291884311725777550896868638961237399822511998132494060792146577870545025688351092388025565529383956773128365517937364268761247991960590055732147143549453605841107205521759210687264953741931925293360185075513867687029121039243951564264802628955202364836268298550970647733083285662542595689216873521516067774367102044847211089350480217622149837275460256100274396279443142316922995083211906035443743142438521351351766449700973224599121257509355408128990847903780644695007807292767088639631202564505445813860958928570985969068094911999189971348137674860029929899884896294708361584489146529115952544649618556002171511384643813083906233244061455389722597892559032456578011687693411967015905383672737194545944181886855042350340160068231228884433632355857430821248417423314902799209740625922569454716674635836895292171317559382796789109615630970088717302078138496450840932947852274994459896158374822318660163857022756012364623754087581113878347005782152999952520568454182713332727330602649027104215444002179893960809700163428921944380368135750317227423194910358252916351339234025631418233734756347216954581288446394080750079306408171350816245102805796167656975553384324034471037384043723034792431250234650264796841831138535596365485064479924061443202260794638361133502844710477354021880071796275309427201916949062725364350062476472515326219042884901076454414326477385143126798030287925032113645223145551800257914601373830436150482491807557616395818763803816583710671796188906802818136075728628373358207406789626846922399874180577101694032667868825090484001994125239051367853797593213704722546754360391220313740782436349240155556014602964475315053306169866207945668068199359235370893292186394005538181493770581783592924202092490606456424534783792194666884159846885445137039167569700359383749421763046914026523031744903230367644982052392325943994482408995745178911842929613781899283632728132497545674795431254727238493870104094318922581002909325735818398634895458973670263730062165159260326845384643172263083917920618677458217702155217483269425666381065915156333646758536170998779451512303201659282487161189103487350694013328457818440117954359293599677668419129163117718103121219314432776113448732387157225728187184003428840153624289815562600745530290855823257159803548698831023267631569819490524733498038941799530233496428947126960544442300495778470690074905199769116478329426477053588330555581790750446730664196570546831354363404625283051209407706050315962381959015818085288540576084780433813785481148708153715632708181307984935445550384810155979035802889866693401261759711338338230089186832806489110477844762920172676508843992784282628652340994030396643444261237836841778825334915423433668261814706704863462162788164738307353136543752178199519310249386218222615764383386295472203086742990306543396571809783530468657657297301420147318003333020646506754659745552958344609687851649515635392510951306252124594996789238347634199790147412363965474744526618807227944893916362835648087415976599368563221596001971476937229211890602260467819860729420272151384831614171911269624512634191902686021752088603079204274264771472634902855141947826459488144401639954698833445936254204690557501063851751055029688875274907887145632522833100677409060468390539922113220222391590375086278043230859922844834779940948919341765865834118808698279021209520174666472560156906374982245842179529960223969191235641950975178232899582792190236834105076673293846790278897249238338283264659319279116952336052017112979171750021968827311315548417614158266526642514748861890758692179916747900855621527920482616407951984688605729658259248314555335241067356638460780137356745811829555004956416108498617373442696445915107919937287012336660441198032335554516241488234510724811584142489692075519320344719178036105343901483964121531184974317295398944083469644514565140006259360285114524005945197379876779810254665576061743626013914123203220680815918463915437715467736684113863204134263447173448402714293909311427104000225861041275604887207830299196891883653329580897631676766043256463871273152971273655655432691961501185336098905001577385343334914533242918108412045874649252594670937587919362646230803373056049643212918686316382626586276327132665409921566214332370047142294599496294796005324516726755306682516940311497044777184694301897966395697224174785876058100484502259906501254033819279623439713099620799445104806495414524008060608893760186177313679904920158562497276309370832058486476090622441839480024215108598920626857006856388435276616117761573370236512934384217417725427147260634950462960023863961558880317363332699309629900945324134850679761156369403087724861285630062907291969902410153962404984773588759531526341186328470400298469645987645346409911528096380397321736085503128812297854253586551404266848897571198588606855349995433907866268585985527805820386328653635895729501222460200680511183132730554799070803295248427613567245666222729629579735075946548347675969926052363022724725738412361123972133293639578049268951225186721917036133581706173544048867955309053035970384893190735568903098117697976510189390727466738958202615487726724954561972619897232047282093450492484399050501494333693645018714749897273250934147579716208414292858280918065662179511591663121804444474628284451139327582848119541670728042116613003505688755897046768849359539992789329469880204630304110644448498450788731036583611026236631075888582707209863016686248283024269960619728972021736013087152009191952539755151749059223655619282654134068942144053462078818258900002125834198968339783813612374411877783564423547375338982524423395734253653319116485731073456746458606006035149273525762412329324113888495212300092481568960534622074272045437769814025501569461979316058890335320801689164945811866100077002523012944866271831919436351160495716184631741692041816923818859168133326516277872433836000919380780985843544885775529647353153088623836503629597370432706395037781131867855097545840778862616990277586594306266104243325928632639377123486921632527411296777012986265539919300031469417524899280950461237859426637899960588469477608907562905286485245868434000636482613438472640317006439387979924553552925012634200574146467511580941864696798403156836850908065530550201610453329091537422250512842059398792617198587422501937885657949238442203907788136906682453415634265554782796451891689097947027039876619764830326298678158009138660945668936061655326426909548667518365841907018126084942524482237901942654337445095142391648486964695658320055708348771600414372924959399840393053948007825916747029969466628028834697808077806012714767788935883215064826372440417612685851600457971955232875611850999382170930817597500916770154255835706529743000199850496003025745447150550815129512667969926948892442756954792446633579342484222839323477311620017831430457546691459602982643859867959666905975531242994365483735120198069533788617543531764786466456104711960707519572617274806318965143624827717859918320453955278846697329927900158844097835758870119428109710270537966005245260680573035384562354310365015801911736017794220430476002087834876504634060004390000985241376604413715919987761184067229832122938489224045636906105555446243598796945177790092895222033987953596125978397913301186352257561936475114722000440993467139213551235465453437024950026729672681802063508244675313350968617589032445292985363989602165619943653282993324613598815597464858265588713423396628200805399370152318376878480629150715016176618905883769373029739391711250913587092166899222557347618527252926149521036464013392782793164960920987897758870930117221340732725505569782982807088268001083729080144108800944240596671387660508704810481640289379890877378078652021131312614192079461156121815634870820721640370077687021881571571458756429881815166325683929595009937663172613850874871408170494223851526890353445524420465536778603463694199634388647371139342099781320460679240127727804639452118936854192926987261833669202069163819813736109335992538301092222059821791877820575705302453219519715754609512051434946506162594835966085654875733775270465989218162412788647657050126940091963275556287839438387689271812858801137006984422401834925504704618984366548252305090519500691485134107578099910502810496796785716165023485056203560006680709268961747204671349941413233036808321420239692644914491274683291024196240658436408069907521529946110587025518580233288686635009872371741027686346147283945089723221111023980582821651838492402099905671948628771197114308839109916944915813402134632403736274976594502459370878982225093258236691663732816782197241317341732087165220735972706698741636409445986682922020243057027571526763880890252569806945937382761642711871310800661434099310277397390841395456724364148031555960048834886778755353630649525986735898780141859214106557390614851749474931571800602240191811481941536456939500790059542015235116525879030818494715787556549640554609634651900708679889361367460745961960983594522335340243454289955175829388785160400010139076501797451174928555312169057121824160485148634543619247593475538509004953637978043886573727570908139645946787687069064975818702505379760065828421802963792639678615560159239634007985570159794126264483219938455682677541591200143093491147796620326485001778352236366680569286142510416984498861742198099632762031611016643741393581353291831412654438360622258197849711807760510940600477104587191998263314176623083744446153494778078128589410308396161149930405212843232207427374716427453308438472103500003446165180950083832216205647338022425466141266587058458739995918580125177057784339116315965873281975621061000163723481349533314847771878603719742550228399212676304208293777723596401191686729143117017833693622770431586799666620254326756709081865855525728012299229812752517096835923887075595921570438583730598162962669094224766075627034206718434922137665096465343485081313563730940845540912264378782861561639149637830330481929310767290202085657813279690152065974946205351941662300583261390599497084705212302333580701028798299478819865515910394907629180521347365098760412908915299655266566491153321513133990056291492679955939907785047443047083810240176684712219318358624660674235442790781676740318491685471567331234644051589888728837285517492728426725538417754492398617819306815704169231379576807084213445694950534569251244528685234673011809781740303334075073650416576100811360381920992551940083756866147330528884221132994221796765293051626975455217124728128051255595153127208056877781684058322849965959599424896092924949451916165298635463568098337531017412576122821014318065176878158624599564696483345781488931146150737494875689932115499868121832423405774373984387208467668299797806665855677006401619596871897095445400993732190070438221856477475372862034497436869429740875098382633558479900080076056296442874597509249379687924259416109942872574527385481353226883185249235297098385819416313757867233435956867409109458581607480230054985467696270525809785906635635179613733614026902204172305056858900228022888863609005052729272170350269700163469973189674566501422737017768681668635005668799688704247521935495385973681547699175921393940728989058525994037407353803942546812436862460873587493443036835479468152508793536290901021100284692178554142562809515316609685189909474952539789440590057212214365883846398855213801200761955093810276914215372137515166322712217667205191358196859809242842625582529171796818462680086082542609901663921841829904217516873101131202731442759550625402890581876631921577507593720017128133982527733820728150948933435323356648995386070560361616806666219266906094092619343874550033084573045100805632438772406047901478897919527897045849438563968796480822241200111939391378837538656242406078825589275812177312744687171226391622208282516430891900108136286106244478578153291955216742079579801037118427202278976167430891954941217358065685266871408689497472744310041126979866554147646317715168516744742668178239738981897616451560540036356309029952715033278807175263776872883191733155092150336217313493505796448787086161784206077305070409967211021107902907418673282951805305087475411710279063610185375026980748711624505721072004880853065241721579499650513841306979256730150488774453647610332149008336280427153417145825277409326399860724192633496934632563626178280705974642513639218896520253451921909961781419594055494706114415056779346145076124868953959033057103061433503191007646258058527818269082642067952127436365362222214061523906921855506527884949102344493225492095328517361323266209276574315080546155782234062138341211501820944509925725132134191385691760153655216037332115144307337442687696425223878438302622895608867452405618240479453794131043367034388663542290755734953780744826546483228294793644087004746363881127513774154035336273679390208997584117017555626033614903432453197224324590112449562017442092821850933168869859515543002841522850646724353332376612147564133319162470422316474112241233841323488774881041560782384047349325624766278531957205034569631007976152155343666453625454641190388427354097201898762246184055045907169396128101476993118569492103876024803360077369751681060276716096930826475882638955335219260214387270616190060962216060759850004764646494649183988120597144578678874492007449382835898473639979359093388441562899660563600361524927133812162080217726514908919135508023514899252526865352718493033665163675063338331008228764478775563047654077530002237634021142934400194741125458694896424788431673963647643210419570686792130194372893215641819136246296441044576227712981077998224153562359827133810954041331270234623625354845375047216074115436816234382853685783917013140124096351787916883208606752552981286326025139371408018047913380376227962202187449911194579621149616101048805947405202943004900379110771810224458291672303780629781386482509101037983265649671991799944665323136505417862192249186349698153226926768377913974552015736202256642450909471745227974699946757393036094400836639516922295882030395072126987030053565042256917771610778445975042506455312291618726548249220265703822929200429568853105713162351138569534989834555449989946115118108772909890407150244593835747428710221498145111929788394399464876342183635991868420087189927601302453763445492318367423874415987130180658601894109772178477841113043751830993720016927270438721431701734251845449828755739343032424913648034630845769090073843485692104188733327700250161217361828994719508802351062485513864825398533837796226240851423368879230909578968535153409647270174374598094824753195406204016399072803871542988921816279289053006498990486524925721676862286169245234605323565473576115961006545545198110940912971502875971504676588443945886734130101248614361324361644769418880975484612398305357969920063731917124190636720318713830912988887894304064820605125766407617381829345059577977894412114697556526261331685982557388555603603696895410722006751006723466796066055193586433443464997066157924744420994721139342652149203589592211347968746790911974625356275907994813475693802299955292747146881410750886018765538904883008189946948789121762024458651476430969472055800370472489533485459249090838313500547536575980969582801463596049769005321950957947357017850077235318928402822327122929734381983029814411800177815702467963750616158605489749054966315327789816307539196973512606595109987377376386585454724580171913433663713780940526720605691464477280436226380349345580889711055827391213654133590214725618067403382022648946459330194659122651342421979530141949129427101691613311714551240486090711787334869411898074985128623168631903971456614141314939727896145658654438117354633375321542781153884056890434094876164546772287048853200284099246483633814497026312163442564796332961445258870802487075958169859896953076929755222212531108211724992284301700970345198740237356330452552841979735074035131807153327547590246924402496736917180310489113260543361945769386687338092889858833676578429050740094954615261602752516860370864323188806649169551206540791198088147569863857980266321084867892884126565200414195951115778676537392022407277545590483178736500273575066110551170680867969699054521329369393371900893429166813244899133684460107298682636076850040665641703576909563580980657718513147229481163635564193919734174292839067095617333994626858439961185869050438272995109467564136149714885488402928434071089033072091535358584947440016789703344121860388108367876411585272526349107586767109938358019615741883512046708822895598571070350817757355840907406964894828462127127088809557662584837223737213684489569629498458848562512223729874968441846153826342613549933215538368927509369690217120833638765513644139091382679190460846235636644657849148449870028456306851157137677153654371465520909455765708075996627063078687446297975442034922010652225093167973506272494749854978325309915868106247550443324183061465189887538670157535456068166626841841913022751042788818504153116612959889952878831585814705853203801412821873544410203272274109835655942434500503198461475626308399024211273243826235486254769305908324452778059545299715202887678829331799205375790435176573332198906336402831946434845394201002215387461456710631408250548237618090891160169465759790197904083786216186784590484850992713251686021558049184473840652877568951928059886412729529373251274686416358458747196434731815170721052130225436409422150437198715119173762825792360235406620867247504562092982410553026853549148075051395831023044847458506250127160203812965410760070184322963644060088902767229475992566841794845212132871304498128357886213907851617226556793700156953256518438199890603913411972833434296588658326033101060191613700175598799859320621169891316656596147035796266098589014906259751640464886369376220598266953829481973899362962200478665926922584603333081971440441496412991786148256755091975867236093948093310328056870430903640123340443051943215873231512989495009420176603943913996458961640414048491386239627413067495657299445080891181735233102329381887179233205360290305327055403692299890876004071232261178300129257161003356447398964975391981514432945425978341062245264785673030540716347096112095774885272018486445599884003140788354133939277254766919789101049524268706598598317344669302361297642899970306998913931642778861217529214659680403383621256902509454769560712143514673581438394304260894510040243804984107247096673536044340024928290473278472383662736185037635841524120619544698317864508505140207753877159881443009490738324464874915601409242857947911722591763353697610132200274919435724591542144460496065659424846335673317267701524746871730997436920629377853849242061113500873627357091577308859501647561799075934919348732197190751866378896018926463176442455129974085493747048019466123506922254349854760809771337052053409223878979432670902729547356657475249076895073469434195736921911304606982044281154134676646524693870222964031179144633886631997952482361180651909222663805170325878744885281403648341389908850921158441502561687899948218828108992161042021496131116575221489266140044129356522181536531195917879439802026193746765793219879726365679832317811424419668876539877494973567958800738126874970706783175653471340046561009848111075355145824060443756894109337095450970523098339416254503756836453130181879743996887742451698066963596792182090757209726330786489513041186299894847027096950715652115536837756542757894898613124762984269056324385831746850803524780497920469023369458593634312645091839193320049178002068076015052187922961821132100374596709932810755126241490261265812180594705005626951869383649830285833957648314614411277672531480662353086962929977368396486072501745902187032088350594832876962160978420323169322229854006590688530300988894758503470916072551447786458043663463451085257418781980417061933681849331803832239267360257195848889218384295481592822611076368599812416359463630564221706444122110956672878553071486664222116904393115096596490568412744591226258647532810972616555181607603336727013321354565488169385604827391693009345118073311237316179018475954765201670344891227976921368258480788047017632609492817558316895123352783007821944787654209078524508791234321293659280585279461040756660210546544048707182229958335309733744964900285613419539851544439309651649253072547573918412557319524099263794751682178651465352042668607467288900797686942461063328451884328543762370747430376212179567759659896662672849152576433200299498767408619741669542839026121692500775409432885352590907563937480277484779958994715485477018183383124474986386263098174977722999582627573571802241086675469537159045800481856405352641466949557678714475424478003568443430962834248817990930486741062466227755133278260444884316062532114018579996135712912582933291456564310703203972590256653958946633330548039828931254220422395302085886658821145077153979018721208882906647444067050521709547790806572235556528355173789901396355614900930146051955195447282315946874953662354442777012626113350838090651098817487254829909148157326965974840036025262232107752312175296383986123015776902987167711198772451151171274111368645442121707412727170655189825749366669406009421388316127857840578786146438694692003044085328938741668923113771277536563049210023815323785582770443149539730121192596047195572317839735551904320738606736784637095818898107890555434916137388144112327262068408705249306120462697421154240934058982749744016675226919806755565250046791718693107043835405862026705183907492790114490922033155439335357182291755378439927040763626980668180889213582697028751388073940615649206967528497144365973419807222890697566299431706253239886971491296993225740581158716010756424538273801234978720907065254668059282077946388831051261480587235334203186413837593948528509904074543251493020464768550664276988138406881271669246941757250121213319866333947633518744147279829858902243863156154447633781483461115515470860200861554017203558514532521213751451063983681394782640767556601025381567875723536086477893500387776358651970138272047426994972350166826229349278737972178762263779968444479230107401975391965037199513512354037905254455416409260935940382336580071460817960852607812379639290084209891785942739619936608658387058388540886899401930763090275870418553505204090108388359452173414296116793162036171147524829887989582590118865385849886721483987179520885799735750566452397244755199047933074799894660379059620780526792559086104808464659779609929050338720018537702385657184008306061890001385903651394921462360086132726233921549835122100062712162660247355772157978125402859437632022008943748806315764675845487683874546197064247893809615425073680880223226675711397667268376363913105427337190579701420560228909112666755367214300212472445987035928798405854998395198360518255741777949449660263275119480036000126514677449872386609932984392292492070981967056744548476199827122739034059938937560325822685837781150400606391880823197275447558427884723253939091749935848883226612837443125620157913489196817230768663924928993286014970670994552905753839175879135857513836905554171786449463208703839321065049843320325645942829110591844130181810370670590156017865994872319228732414729901996757611581040106029092026432655880305864827475047237674823977377439780605239312670378258880915541884966189180161005228552545933615716120696246466923659212929141097540571341187067568542595401737387294303773837286403646460074086844911823239814698219066214918334928660628272907575922626174736545200400001386814876262088499720353172502232670869603168312416667183796763737877782178974818989240742570290817963621737257675617646000908819510617997929449428528580245000758664311836675298571177539011438153912308551959053670255371625931014079079324148679630362827799502387021055357164599406540357998433107644034488965819427177006978418983817620617656888964235414168443141591812878866104331862800544232920494752242842553564551206554465832524273404159767528059407080340086388824500282953836025313927524037589028551367214979693987557633074919766384984716829848593258719195824429536291114425161224677623579927183245476632327128427860036273796778238812746772441970220736603932291753532003181330451574191121279371398053059900514673104392099601363761665407096146805616960226772764434580074230657288749662533457556231917799822079978752779603437159894449692059119211690238585579542147796870316781835552443969720448505877095834030538034837829764410789369609354131370229628810783778390054629631360743554525166348428506332081684782113963021709302246401305570700183150959204357924661223901845808876566630095771489780635610834976074319388574583436124565027122537195872664111344452533481072716648193445275528329100458961767668001497335019252452443331136540075882120175779897257806378096332226789954023256643515158111327835485632888580075625124185374787646752302420633183283072822518654282662728720285835821367657497919799235028063968796643867655876852753008978870999539363014274781887053377891753831608729088737915671869062888062679937401510561114693978995378544937688058271468445251866647403173058185253234942637117843976707963203023210368092561250227716803271902102587660297150996030717578038006185459657932207549824793781543694829397011121721364107102788039218403243772565188185102969283386530560661501631638242490905998148602882795663352524546491857706687857261220907385386832403314790665723596586538840049182683188403937278694775586958783793231620606594001198839383414325819130039060365588636941383853714177391321508280615902875300410575178194912356292421243856621439103310555364280368514650946933839326207098688595243131687967226527246559489042839632823290492446353960561543037274908575735471072357945205040887994847640898647751861030175525977963867449041258861493738239140631779632573818181906077484973706351273726221109591586271329134734299543398034811923142873572173424207332822970906536389025334934663479062660650691876351630676238189435606880411769732002582506225540350502224540608536020999687051481267658789584480228983252471805423864014329146159607528364572316706870470525510957061869427125536190449146920788702898758614126742622435187175346736342635490249446336378481981121831960249857586204990506918690108592820305059415816191260271902993373096238578509041366745170269056669195319581816419018228737675930448538761404450037345254541317034824916304073479042681826175251055942413477700115965814212794755399598871244373262954433366344383250894805348923080259003064232873727953926927102510982185595445905140312829857811357374147477660500361540448178866503283726698914597434337831557611816269005256646975912734010345841325485267899278874624990369504463896059674432449461370528486439810708669421155577968384800053804101790197062597426163351401822785122446758260744806403434910065512474451322639262010763976333210280673377100939940033286984861781493434003166370587091635807852288407675989876453720548409544132192538690530888444152893424406678977695484914191597968330527403518830771870430716573993736926061170915454802064041087588993061651961982244733824908170195026949060593412498089323790673575127289346520361015734449817545162825926131328453787788166014742017127490809285369763672134220411956777558266449240882327232789313948310257915108653139295004887467124590166645018216862297305740652466853374423086890570913154639468078489856322060277529628744467283067436177101707903505677676021160362915151026009444066775775667981362254317893842266033762872408784683506497145403272502787532847922859345455571945946735315932744888626933037037095022234209915955939582563817893171796918988339430594272127326426449498076500618029034631385606089307264349510489356196871181345144376996699130124476854484983747335160678717376793952353355242751943161692131224913993709165474450032252076026486287868719106756160307033275090995522332247086457021201641057425398734264085682053443188979617204956520257775009375065376517855736757664094371821628452361780697440314092695029966816217857093276667772812590461171171994251902894501478907941013361922783866871169955181121361336955893513165217967804232623164456963380341326034168087159489315726887174142709230557576371910981302620077057910670859932070493187148884147758000500160117246351761995014641449809092112650219434039789454200169073920645401586761370514406410749247430317471110284225412731082795231733191555251338076339573757332318502294830885455726756802488020832227703233308661335354912439845706982231403298289624532919158924491824559093912695783055852536108333122286290018941673493296779343405413156764658171287505180234509797565472458839453283856421800892569884848174306699280885940619455520377848556695150205882970899724823867371553484667796906723922489968945308165139544065991415027681166588654421095521828231563447367389952738153504948878666717578023395342533411283625413905272825778037781865544783617178501285800756142147021252118309156724788253391524918767403806243694464457462692310503788027979081039671683605303234344367270375424153728929110410793246025056367230572949849043415183793443447985735412271985593248714807332205875416064622770138003578074938001098867134050530138395225515789883381904484727703099630124731061972013045145109398364063165492527056670464604158481240175055457784210843785544331844971721818215479238527011116588666210229696265669306806078758362068552649803290502699118881079518619678484660257435411482694809286079410608521523281123576040257181817887676290337647027457248172336979826392396015053409839191237274318450039745316926749300937583332839554809930353965897786010162414846507359954190779397244870531711053021050425628248068430348626114404323082349498200413283743417649935726780226414130743305876779880376116757419973815862339533404051749152504583773723781265820225864485102057383512757407234753846415926898590043474348148457916355664966537839023272420966895812729366836553706355990832394722623461841223893006280258073104773093757699248029327306698072237128469646703526026326320588371032564988408133353250271080714369352005515327999793555259010191581365604501110400690713604925714904631674750775785560756621073822885517691806487608056587514290372848583822106476356644754033969593597719882842420636599340385613075441359682433899403463302045003468600835304067215340884750693626498208884521493415380207660152138581039434569593164641942218927984416577500153024494941705609471717595251017718241788025057195031783076730822724695764166402569908333631984780503369062423449857328021212806366334411860778684086191118608835046773233390731870784929731570431843961658769338377840376834340405636770814858696760874823168812390765187300589147222750310729705650960418648574804612380155108597752856565088085280663137159390230927872504810471297453453645465543068373660987777772634985210394667402429617154045748890053207930693526903353190406476418898395455489524332747702986973881070635827103317576375825614660670591999993766455918073445097692331155576116780764573509805758835542646044418208137632953772764837779072784328609333602965407136103132319327520746735669388131868624472671414763301942800638165468965591119941958256850382794029760597139272146381796949138032965656854419228230711389922513697393090104408874066127818947500743140170473702600833942494673719213889984066809497561343297603808347372126641192694172979695756493075103236607266456355330017402308243423488910876954755411820062071159972090637072608766454159336626269375219212106143691038222834525989547975226016532060471394675583972552207254256725363635033927099468124663011711384983387220334693639361438118037555874332312572497272417977114432660376850091313139388791187826467974514312999232255942145990399944946372509060381176994896980051459010056901579172724863821138827279234563470886974129188727304211074804341616731485111427801206403866011757068884540626888609839114565082949007186283617838568045841025878264186229039074117033055156009867768878505645732271468524456352764771516962301520323661744808140839799106026155772240596314726250457957708627526637538692747283613800820370874414363256094164955475197255339942720533807466207188376610928559678576680892313606941815604383642103781932409064989701953019409511384637020357147089449190561501423955962540417985043744547816326450636530738692959579809804782140778018649358992303265945958679579440982625568246246142691909676949389638617446497457497478102400041244494533233117958617542400189209749637749161980311609120757587234334298157940877076455101974043681321739074203714970183340096128091872381874263729014995318898119640322840152529677796681327689017910856839232217625362230543899100584232454230735191370763657104860321863201089798411959179076231435143494620200861415189059810592711894850169466201044746974625344181035820341497282213271678121296342711450597625527623317281116139203731597133750928479367660877407919812070797097739623826212201231506789708623810779288461547668280719152637450349784611099880266035850900172416211995459890477898755429889071528849347381054682720772559427289348458586599255359040232241830657287694421437157412287685989775585543783317608298112130867523743770887151988035584521678473599429099181050232519138261363671249537131599267256422893942660942510678411789756453499149522301449223803458708590561355075788677874160479453623734652904034217906941860055063942414412134068389178603326478334265773531497883115081594302332787781270827793150049307600527900234321863330989465275170391630241776806044521002320800790809336258392231692072608956420586028464062075213753415565518249789044480195310638194577709659368608242508583036063201969161733675774304383029111672518416912174483084137215648688288364231352077026337038721941178834706151057780095374073218965381110052784091016804799972409677977518016575874819095419660328252900227601686294173843624926748957892616856489548219486191958894628082115072273490223679643670187632235500348970926063981098523393077660686720786254915117371934094706151553410148537833266541140312176028275217012491600722443458892839426139613907359387830012489819316649494642451047742144463427504666187087303225184300911567661070353582272726866660961154243090504945195671370163367253878945831539453608353161275704693699099929208838869609911318140047710107070067505744338139749104624170270977130150188770046767701566986181831285426345961780670152810371268009950533729195502453886575579560724309679238983379568624789635482485488658371427661502933346181414791219870343120550557155119857209792293233956662124136280438715346127474154301445506526153805070667340827020019956833020836241091440899234960683706770803340859024557108680329387244265312667503880216694611991372994217030990308726367814195788453945288585885754017867710034501512611929459417946611134213046278388236456670783348256698626068665431180262075244248210629488756225678438689133723917207794734167432222554640724937332806058954591946476428715476025046160304974410126542032804218921278837293908257872907011934931160401124608731882401687601525396472791515600210371903695727135232148139259736545281282641986742758273600069224775561535493545198770252028349382702255746409317307161496041186213806412373442968635503707235019322423070792563138778591182787655665744693523244921667138438370230768760447789318092208396503731249475577358217550225597387439838884070754340514385586597314959657490901470055162474562541615850090006494477786105425388775830867908465536911435600198038957977050190660957153849004047507898715151263905551202766775460465257402307729344004481634562063042567533767465596033365872720421997118061138060128586439572102977120653824659837949388550155883323185607259820636006476363652114730660980876471422042148123526242036486627476297021277777318820873842017169909188830810769003714735099124744226114084501089238942997851115711318142350505098474288039249896023344590265307378193419565770004951349649597561293132803687961381852651737314394838092885264083473404672678388475172560049928330205208849303262398795879343879158730252391079523437116107447863732144177871021146201197901530800717862914652832583338177441424407996294024099902820343095817580069213949936252134883591319551501124839884161427943815977153878548316801662305464164592820109213834554009483928435890907789383465372058012598416699331562176542601631981219987124052302526505611104053280111043849443607554684159334472104246730662408425201959539365791984502993108561351977465024007742217222477006724368953520458218734550514135053611478553940411819951994687144180472905997747685141151094018039485552147557083370326880477719030157891904586251494117767583805315175690793561604760215445806378444622349236398667406843639814278654968420671550373320257314632306080876321018216417941528959237749267221635157342240458690636103490468121316445518701834121311515740405189617376190818948952043024108883933065007709392117911496739526942974198101243113278369333348332469190606229620389495858270934225315750653576882430007416764531986906100062863800302287046533971092231045101908011052175080833891779651267596106517185573217462051325582822805407712193278820454124686268914602495482898788596093315814761648241369250600289172445451234020841301466493972451653233072819983319932600026358417639807509663672418449675029784728079602592284599833674560773994113916716461111418251120286719726199594719188112771883780737197372603891335697762284505512787656019734652855573968217978545940532380345461723275193868218380953044114876272284500336422179083941204640373874344353795548055114709980131565352904250072365723498292041969173591885627391168034726307956796886837521461713166982949386470227799292937078073298215582817829222018413554499499165650295261311315819617187343884162362964490912459164426806640628022751705933176491594423701864193984883962512878037770624533507625156597410211994611312135264928191374847093444198144280661609106709771999107375103963192972603954345537188434103363712383309340823053214394881211698437383725958924713960181255171629491780784192092762984919825740874050247566115371037289613556673786208522976649268441922710121292529413678592837472780887748719272637680623203370994760500510274817587527646641862840028263700534532139602872311687935050903624963919579984907404144475456452176225896091512642063091298460514648963668756149695177540661544219846460011300467129548062489198668003147909504344856185739493465992732796884116876907961664140169332497826355496647864945045448319400333433306748580985215378924027807106345728647849901931310967612075072680444647184992080024231261672584521362875265069199976432184372789324272869505153581992495428853996605722366980150524965541703680362411398920965411580602913515079636607455666868786009270986450910793731443075050007562279407363128801174891496821455688484664600868209281875779241779272644073585157051462946461101690506309187108871170332999731042860495552840278027526631177436547199592168391875404558886448976579169863050831363395243939617994489007345322108148936647945208163576335977663045294705123545839276722249630214470738301850774703920646936882084980468163970424760583063848612569349885006991931351829753461959548259845191341763885802554290288386513231314778916701976170181926065173085545478496703187366455283165682751978362794964686497285912901845167990949664286252667016592034847982583191672043944391410553690570257087302783648677133084721753301036405826477655069814576157911885943996633251422261209851321834691627032882249445809891216973316669692626682602670536973276734927651708607820349782352331458655276851697584555243166910120034449200126594870024383683691884830546507405855624074006957671635938675143320828045809590900870033763507202471573300419291241551580361137805314752568245314630333333534267919449841784515214325334995516714597834795669491367946728443266774959385190049123121347876946705812554661217071533169602804753512346318528358468229917806888334737186013000866753434344669146862434111061216856733927090629724396181850594586300913559755137928984160850802983776097363128696667752545050787137016586710523564695330280178861033447925559878240534182384969851085541235306299438144754157922351175115062390078551369186573672191417498130760629933873983757410190307396085101278278461557231770299518834923670566624832602675949108141402617395113704391367410885547284698490646393144867387915424888487956952626496187689883310912740706058787916615362550586685815260629719909334328918229251736472223889024179003719953760537837781670634036990279779502006218544283099276336743980400410099867267664035031458315670880076713776763162824044044168471901896706099479951010338114655577582239462205888245374055878885300714189522664308741270198954038771811739599780428408122834989585013240235433103542198879334166429849447591083293673974790821688168638418200008147894919657858034952258038982920991576100853054811527089747333664097749442021877039535552792122075287636192086615182314714341924097923715557585127448558471074391595907552884235211589433581563018867576488310096002842638397491143000076853417634514963131239912576711754217202675672806380980158189335628443581969650577138504682775266217999790756377157018855438231942949731721153653874491656754014428176434270160178033151165822155082721409056654309631039399938694501398836289744581794462623233785451243586814805327768784218903509282689016949067190132368150172519310385823489296282779457726264341309120552834491909715346961342696484349769487111534928457021660165105995147340987507210701476131307486498762032781024359272026357902243981771326831672562657463643593467922826722557671427415062602758451359888170922012248636039603199460963314302267306070159902909819290090744436919093465575213466510311609549398930546607183983572182155293469446364982994624430867936197492319861944951735877873345855955414594438613475606097510281488757830692860301161493041817608698622012557045590848380753260195217874408763019471303795674601285038374681567630201425640879967160528646158930785491875029994734472992273034163433782443400094298865863535263543155691802799050457172543043901810086858603304562922548037324047469000266735647198216400782532035407784800684199207311150243296354850696421440722845715800616509239184774614410113727558525416026134085066921826589045915226654739412157392792032212639522218113388253057498717003837659818206004130840522344051775765955393489856110952336329961166816528328394984208356039940569679553897489645235756037481849927411379490538627764912811755838845026604086798133072261533883716658391921624956870525594024847591766390590019773588738271533923258768129808637166977051595984794326890306615325918899614208291817265635795049081152093513582933621425177996581937633808390700640819600680892657898992831700897725933256684405660328583300862142254505708905732730438898236004672967824947922731769646518625712618423711324313989713576987450326667676385490798867168385229320859436281442498084880397546707474868862590617489575917658854427454083103281291426926455315418515454725306700134949004910509028753268749977082669832643901391609598569974691315158283452347858381742141853521735687777648947698833063002572250096971112383452160880984620131471400849242105799937248570597088996902853332265138227530917473226637646361677983307104516425644885591505408447797960695853231131184767728112311164652924821159023652895135445156550917334422449560313827826165378734986635660358879023091802273746000922450705536636713974090855409482291650435976788421246476671313698878758158324418701422425633981215820957434157158917350833932617246186518144648635819995236283378478135451995801647987039161569878104318266439870766893431796137964717369200424203267133470709975484488077513223412632734032861540131834201950850584288728994818042167290925577293902767117393077666911908802643161876807255141234837482716383315877388790142002549318247360943042765239321400723679869998275425181311376782206605438256218085736976940312516734775228704258896603287019839867028147030327088084656630745271279867973459077812820201885020083765518800916308592233440709571771107620440209575690033433896277310866910076461962500959527283786810342268988933368222232003772690519783674383392017277427682927703754920961281877584260122958220925322542745367538929073229106308421485682251866251085832675172128957546925398867021637749645945979947354522087076539863968303761385502392769698422675087088255856620021345597035362019011266238200515187933986801280104324767761958404406653622281172304878065606051336372469345282337329419344498144265976764459292593732693755648841781179787282991345488710138111962281530610672304556910714114369645039379385530580842917852566490234513039805132308301964188234690750076380927395457399307591568571313108458132213061163805698191357877793862169161002426040252879108084836188126081046416664823691402278760821037978788870688280683730269397528005991911352381679646435502951121851896706627210433323447573785698033762435988479396926694920823038903686684724127874100341260885094082818393208690378896061515811913676828382498947241639444086939117593024621152954209350951249559547351566540555292628184269785676388806056745222783708441901662739653301912135107488005482130828939642059797706974655498709189457184445604487775581942026326687591923653109402963389052212880270694216925629458385322949265179748440853548846254475990340859771890872281498717651283380641734565716585107485526444388473219516209623802685420024369925060299612496858514120462374760784523317039206472845658631225965443874022986884834893474355728773107109310000239044065612929130766609562772289433624167893433343871387211747943820650590603906138967180701490849650803776126337866134045503647017374465679965983303349947592678414295326093162365324620119700427645514309934456766375445254576728607943232241158907625822661368209688914645314936174011733868882062023884477430830350083496904510530433887853508832225017563878340893054902876059551430831157492134450109584518218687246268622520393162485093272512624476722256718911734244798566004230194780471048934981214837014781968108399222435602383502443665572985445075952158839143833549950138257922865887803081025097155816251030052961095327115454399025541598504747102734614435701042786389376058741490154042089772113536213055322981641082705819284987484077293569790833612739989257531481874702396780545696231012476195278157540822097785826467650048994331249318953817617908846723525576673134693962217905777811754022266206829668073173409111681147057288293621549118865116948038260935527125810981035726844267390215399208829745042911635379265523385399799909279705552140382552391552455019510149086611307223523220913802027845870554153402725215439982821380005419619580600414496247328803947754378910574447142171691521971465977674864000656479229754045626330637693474232646681711154315505875573396642052141030292987656290169015190171311877637992542908086494621995923316608310507237258652498834353736261043075153237108804058521436599596609775085814700990445964781385740265168813118862151731495369675969137854748162910874023286072290397613501307623736975846006900757921675330463363540306467962700648591946530542270467403407536860777801754566530630287985368783252347926043771024020020833085930204282715413192836462483633598659847367654202313638977935235558206606939830505729473972797823381098608488922244997138886681496497967883788815353494393677232258508602532806054794787453335741440304931762062597422008201552573978297623574421025725678591258783680607237252278438919953533282677900110286387133869901496462411590039602690459526725066671534609586852602816087129291824611899954115008582377214965319417243699666071027102562720470849843342496337008273427966986193688994482987637568949031684234065251581740896256240227264849175162778279581288527979040411353625436846161822044971761206992206685118773924524705349923661224818059015819456259467487654898405395502623185794985550736528325300883342199360644599949262709116427640772611580939738863805451822220793502731443336318354865351661810026737633287790407574009140321288412281672346461533738130794345981616316943426279638282992069915398554976390327634346169832700158349393821801574461821849233374963332949174170293110247226888674375257657015536804759475575285850388842887199076268966078836826476873859355610073125074766443577807799700880493432683011354165674991955885562741168533337908179726499140584773139201990425984070622481422375044365514655956104193158682363396434408952270103747004500265090897209053472800911046009181120394936625843892843047494635562545362358932318084423943416380680581941925489580497937158627351791928370426473195127379895075459816149820972921416829858252277109741746423132273385978182156049968645503664672442493968885932116805154842769149443907942213562384926777590957871426741165492605182548145037558328684678768928281062464724969947712937060039461391302601820045886199002776148081443568158642983049539226165235179280269398438328008839561804932769718487752481647145609094568902971295016206485988559458975024074439578384985877972969730775383555034930702061021402009918288948844755319474619817679358107801162426240335771771532290895131806013944254735204584728805822989006138654590619626625126220669827375419963499224629841564259011644119395352866526786641529646817663128057445589178384855446308303807180336356171403573044209262130571924249222164845676105371729081548600291123700414618913922745017992365624744767779335616823382505437890739855731540885935846036704951210435726991853820538285368577328165885582790003132713719131523984534519348273138354831046116845845880689152378379099640255204788611054292006578731676355987623821600109348790657263919945552877055161414265733572240593608274800017037993904874513828638916589595756415981953826042335786458194826151278854202559760308336174889415746512046801926995890322638803455207765230684583365968096957696877813410501641996663991513393168020530545097331053285243107633318640006423416919868138953485686295575208478845673171254816514621166003935559946573190057836612847721797672802253658005857533405173119737149700425765913471502781583677108214061994052711566520910693637370054404770477162498994524640591834103989337174082231454859120970622869329025584009823357083237506377387178429792692267011531933530070043929121348213311149017289723118796417098436102484580588811818495431692430928449094443788113710980527228684773678613424617972381245983230481076860258886978378516485405786260141951441745587069603401493837998956574642004702648165327906052694090050056858182044869401076807174065701991996115824155340377134266253144277132853108092833827871656978220368908711301261799021013383023537612480093835546086219029872134707487926532115225171012349229252152898664278442483282921132807696039800777613032876344946697476900258800442500575618322468908596415615040609230843576779580497187603650476744412964360439628489934975609259027249869361064478078723861737802968422858496068575182035700136093579100705456707227929341336198329502210234302635427806706771513447068628404976970434825622875039082211179936184619021576308037845479351039031761472766533761741236876763014805448985931582331516610377797529954133417622933787024967717805589293703308096986912871958749214270985463383906693628859549448285220964648592223137940278373539753618497605146353020546504922266947258122816989479721855125647299110152465419848795230518935823972607404041430275200787720296146705224172473722333831921580236267354764650738630951898825116664511603530551964203088554278050556906465055899840480599521067202623270813462759815382885950193927340407805188239874072153381944520857131572809823026471100759363066560565108201198092609811414268620922901374746306454386690518365869710902349718272472932781342647779215003968604701823542028207528945883302840860267386436608078036571676268994627115311515256659959091896706938678634970954248567850564864325398803366621223958819749300280460926296469147885981892414704287336872107427300060236593628572595292925259398340312244702433319495536442270758606750619723158310063825407828257219150686626748023307176391734544654423488136321558544826442474120421530541358403232492713191546710024200657930953360845606123696109964784545875477018784203018592427592464306636767856973911265344704750404510347254502926439151740689337772836167243509844679350976125797558422688245359489897451242546591870140495617730263596674198886163224677522035420976304845236963976306354961786114370416354404392387435267771918457756522307564875548126871518161576014829368887867360600504405769596940793459457895306954404187339647596763702222812622018171289408300382849750173506476810709974648681079927253725475351990648850884338770993294303209523266512014450364365680863963523385951403233045171583129162211518480153026889970007996780204230995493059014757530449978130436678710046806831695044981415551124077753191613230718209119644176855699369096047396742565544893792300246694925357243980368295251866261433235895905351600973616363249262115681667803598022879656860771905207179853844273465474471173917470402845803708793687644420294422276719668751922392423741167985105051730551487870566258165286156611812494543917218198984428930296726664859131381055443358189857854069593575132501393545377237065146360134466595076680858795552879997998348232843315746293307424652601509184625064356052230357302543297702698040068336024193835371882656916888907112185783862315417898825068430571412319887294482228108847405013772682753237190769887341614331818393313401780644154551359775425330796616433688569395061446985868960430069596623475763723852408082150574171587728756204100617030220046848438453121725787208792813006547492957824146258473337092017325109132737867901855272577184815928805863567433985990533773344085222772492883380994086242436944119238770796480122378574511676204862563808349528176534715125064054631345898686657981597709912677261502523221168998578748075982071099335101599232772980059477570549128287544620393258419261526088712962629466686777817977271869982623071189202932903207628409458208844156876424817456531958171812541129880725790328048759466350970622628526452235426638420014441466775826052490094922100962905487473554418260605760600401124894784605077816456760164791266481339064490150552465375905718268377024437484971155687682237635578354664439004958231837564852751614394668823418629372354577794373481004221869191546035178101569069056917015854408359051232504782632418682031118218808192166744084403547864236020272014952230304330350067120970012576540595241075407160596910491295539980936463847439410594614981558938565362511567076115445799814798473504162667540640794553792853090657163779309348723409979113880152645929380328949409240247613463080298293313221326469028118392100256931634019667421118819195408881295723563115767305034883011862211226678382094346032885671067381159771508300586447072257894425455656303546075626868598970344014868694472260786209333674058305042646591210288684030682127311611748759731155180856930904793099955538136259327401659044545523357939936451520155015926898387592856858921939083694044857644906610861606965163574986469198156566369024608074095075697234174507621603890135402426523418666321516411414833703715653700041167869705906795180498893636551397352515555570496707836088209268317324348990875000047032788419021338588616152939707724357399269348673988815223710401734644698444221135095413762986547956833981259344980768349570289586381952762043530214069348456098488455811429375440619759512732809207943302839133631130488193159625584567504972382782638603472376379117294298787379985241911786533917053936056871735674708892782826641072427959854827251651869055025789120822875750169948320544041975455156548222803134052213081216710468031654230696745054552317872778617504053886353536888826153258923691573108756513718567045612264026433486451901359515384094098769223955369961133703039913368796969243647917528390605572715524641391513243422093231536844519153441541145573043304296922963542219763457862500393552232124049253498806445555308412634343999582000696129689795635330055304471807685060485431875032508563153887476083018491532035620942563652932594954018906464609246290992399893976447996572318509520451462839779826845218124792081768630154652847513443259132385690125690923113775686422980863623507109192901960220272729322597029302665670898034041569249038856288242091845073003363328042348560244500602574639378414812332261345812545173210378984829359058144707102310613308275743410075753042993117309660439551696966232006718457333357630274533153896341613216240688426219753704624583822480893655734132097766040012291475474064232863329513851762149747809480954942564840200140296037653278409656111353679860311203370954159506541679165682233716143093819071979754220185668754319436378856457109791636524745011615975025110431720565780521016316269846153766339160520504121917348670121570001405039423116546614832019346804148945883192469424282497399495217545084144190015749657592474880152773588455273249288872626140416554380021321654654017253737313600988420313263883909157904968628649213060443663479765672438845808987463108072030602820261967966057317256632968246328636014082686453906641437057140230822558557377328604047160399398146844257681608849425620154049627714837830002068905855535004752868799094917972897765801365819700624209707516101013598054485753445859115039102488812821708828363977268647753368677365929368008607816329203685599267590850779339640529988913344401861235202527764624343776437786559486209867393166975233211914091726772891793627274372634801654991663697677980528751817285356919445730594393689724541954026596923680555990454746115547619902196686523482591084383864557740917862986989490835579314822455034873117235458213584327099839452638605650035997031177955303932562735908515959237912023089452442044185720700916818785774879639255616981695933620561206179074815929101171883460948848737339119407099100013088943365757733793463859607846590526459241454543979761910418293231309797345925267895804605752426293352458652479001632552510602783363237074349701360291944613557425329076047818221762465438050208382721334111947605936681240261255920830511524182027480955664611515942647632252229286696065003393992885800701095609056803366954810482772122025395924140979157164465062778838539082554149033703970758043977878459233018938874470133495088371433519999114847807697891531849104226742260040124620713865371220955128709615617935918400978058933863697330926037138225193391337416109433606584641935303994247233578867000394548466011753389291616947193382155319423798532473905428611775107653932126801332838306342938089679592151648069985613590995280190446976627447878981729946641166386630568412494660328453362940428266358013270001173469096226422953364015798438322600212928289640150285670200893570706741872887350249791200572049086070973544947511498487313144101495973577404445652350223705435222271851921080644482345211840040512423535274962419388849006668752995209193251310828197198285062443149029710781752295087907932636085508243456200703223699659149693530958305757675559499128258928555060364673018814950395200979078064222586548105408442678431289374626071576456651238848017022413576782930364546053351908720802389665166486122764443585466403176099287147051667526707051057024451010496976187671928824066769010211812639369937059839232648684469366306751088235911217648310333356810834681495437673031821551169637069278574976693285856573755720234517604182488635924511152949307362637108169881144355591703249553569187250564626719460468416929196499113460926656962780977419637112366519186353348864028715340396561003532172473046745807616704428736043771381687035153927429518096867228476886928459052377566240727385986442763727056973708312594233914107515396044341317022397857341714127675620880308690835616431796742652591440742325051916559258483095531876143554419021012660620543359109972678604618622182740837882988178768650231775601205903742207703455992948077514268762590118436037650978852791292685464274918791499448945073637628066160918013656830456040036222525600919986324100077052312354467778425864320793943374537888496121572228022663882185014936697951687307867423091423673796411622309631328638540942420252182071472016527155535822437563577281512709313607956939943865637057155271526615433462123790378416958703727974026924114604564627662338049073150857056785800848432470830622013561941199395299750162249630781183643086212309155306817348150712350361882927319150815985933240152868095597710402687123729797747232025546499964062497135432929000170340439239773113549362322123112552444020775851040796371108126436214272420156537743155466151509379834792602439463810797902915643575357453883131167171591314511720287317459720027404482860164785343888832974929229923831666363117269834954136608607784442452701420396139927563937535789449685595414263180126877527862100559101262254491869916442196253514613699340467618913097497080861015894948092928736206904406328474950157623542770602375281544924982520281889121463772854521479095060591782985251392666882744148341767421101903414940959732284216379041078162916829232436305473610767246381990841631631147691232703474485878643034230676951790181068897988373271511432024092024189913817408723442141415242073774507290739842857968019798151863002304869826857022816972735487612867298848055003942218408081237953457758973440091968446008933620979270552115725218359141605097600451513962306331354918566742424598253269722392771611361931271103088904314243552998869260127814469055002369468216061459036010023729716322255759709818099027925061989030695638194888976691873654020260661418633360662080730387332467331942027300244699028726427496738029686134286009766988245271294323814726413509349790721577172913854230215073695902562867563805119747025926062590166772554626556756437994967913153818246265172536962985994739831876765161195690960118777017192131505948218865669839491530921375972807076920441469489701277570919714418270140171187198635784875152181536697916638683778297511858334074731097133302549015407471631040768306034764277669104483783610039421353635928807069092286322918721398500685783858421820766321102281325351031744676856536686947275191662308414237576637294765508340489507367363281668114128782587938698269872249804784419154238724945937877330565683951995393252880928034430326170666769195411347928249102987089636669720526456705839864655771798260639590101233315996458680366254237880994180630363810594356239939795598305234911457003855221046351912251662603636936083100132479652875231100337148895850993178517277109332691150120524256447369869862207344522323383656614114794480660701472254586289063018839098159215135820219495623388843685364524936717683504782880071294312858539712861696217826963793046519885098408981838092038774460728947468174289947489492807325185119474710099162168095918900966538117702168657812919554808021322682099070800380069538280303760576663894672097367376366964868894104777943989187460518693379059773498468313312753755950615982097485263528593719882958254768934068061464455790924429759848385761108922032270203039703900406574608745381707810197863728190721204374762570315054592795575623471953551069397294976070716952661716836404532456895583358688803847791538313130737457293444120180281929565126823123403249213843905211917265659767916721152471257649076838921520780503026609116908821771262389484918985326124627163670772685680621005864299633500163379238447808652604980705073323480777540250311888155064080442385297412787772220427957602104726590826066603897087266300395492963958673119821984368689974783220643944250074597449112004615763161972123769565676929250262668076396907579173578991887144936024156871181994874164379599460916837473620061478018801524319411352378820036259659796118186366180846858984294825419600591678931807232867456098594692480336556647283308091129195326557134480859205445763692075234465218047643419092366372869885231924069934692470565836948766916193953748635232143554729123875992677230222947256638153375788587174620688538127839462056681038028030962587800336266355296290782206357897518184237528036629981039938559009324128390372544537434166371506982267236539530362572364301286484662454306377414077319760383256735796864048640389186794647750972682027720532104915976240147687207329372601382237777208045611566731139939520438555078139291362182227273993905621506350506856626326894883017146306336149690729276213381198656112889939586026688744506513467056575871209967066713656303144468690003986433406179005460996388474633410181657153090352036844948343416379365110221257356461825075482641267133824925973552348825317223170054441564779855673347532140221895748603173240227737272504574982402844748158066113682590983902974002404186176211039100937383822913604276803002654896905055117378866338751992637023330607375440901156100334495160572036215688591066838110775423611772689199795467818562367196132348689282270381996059599716581839434428043803188732242641159763043823380805251080562851548547261616974372580001019926056011048477209052618776772786049321188885823428833277842019476083050318616549933140281597743872929484099759585040168417550257401463846980113019356156292032965003366054731804891142625314710908528925266673238621934131209623499949031598039578527541371210817895039439814526043913180942515553876386308144485937993957305822447708977059400987253417786696489181292172952350042276579682284276048791907920491342134045261116860337975084412535041300907078091096848545905773468369348443951265842771410493153269716780405049244738596855312327672232309747224073105899614051632991369621033744463497653969918980393840339804549549516516096640127491956489705466814934879402502565440389489756927825594960550853347071226190434428588255606276119772400067159137251538930812702862823375663062135145040109930220254337382144270552836115619872177621841069427719883004319911964546486249590946595160946084364977090219564522252226024750262638175018708741074455105561570572674591271732568561844217188062951315661298365705589914961510913255857262762264955974004335052878749747978881241840481808336194838241204797943951804805170919878216356747946604274578890776198180182982501490775756698857805063014228214125405142065691457772147188742221080422721797720668893867379789602295258289753551518350829008542473482779007063047844287851256215746321520446010386771920436366633599090252281170652478877440251959948152325955220145966046390808285553614453585477100772384562344998405407801523857330742289258588208240524234820537310789752298103260889547043196129779146856742725260937150425591963944911825904002081380492465035265171114181096058877967151500515200976282271251572012240625287928459395399151272910424474507083785769285572951191477589114204522700470529178671305218992353083742522162074206637772982843519853342282773013371514266918676329703207673235803606835601162363467862462314816517422958743331267002497085964920307152778016701812808978154498965672882579386312980639082298754572908221062714721857417496331128513766178092050215597972470651744904251329515930908178102301397904623030350309623730480375810741242943201293352825522867086148770195729889458469678334583256766768695528889833580000695401635598029709579444454766953571876184813354779780588096877013634686259403457550906588505461371201021710316819679073471276001015610533088488868084342265440466516402496068488749055836935259037612732301617820549332048616956147706326800265859233196353316679499425525160224561564068919707496884048378531928274719682905839076408583701413963356575659466249855111125449735192044561653425116180307742407770437254203761206108370732943415174550731223331757354198445988937987075056403415348887884270216260645118043343299164815969888866316446796955638172452588815287548388626055615249761113878508696127769344841065391292139311745649977233504313737995980057887740905118760601256301618896429434142076835110083518012438480562526544634743745420948301139053852617642179919293642753194356900602492255497406140473326324014460448062872146860555122762300321315704217783747676462320091956295035491790812603583580807468790630027605596757283852802103431521454526063502296610158865362231692958601847982723386600023333124333407501989077485353991943506525284495517955373695847760613496135954364479530205315652207369891742003494539628845966540663554030355717805996211829146234017458894856330159901773500951073786568797630148766619119757434554365348961014161173188382299415472767341287022929304936884415731486089644731089252484179898130770319302095285993618249623024489248405445917296887100271768968564625116053009695546793932472569530930485579222035885054427760515895820194848606399561354923842786409897343144952485838468974711654097518575534750797172432103698420992798618953855161761498120097570896947829496715187948243393544339463416530993150737850246712537383882828743488174110731136718884515238947123646730703132768882587326246683781206343056275971208833983672036519307625355658481223699423373452378335047993256618361607288390671833356169941082447777426224522934710587223584860728086538487902305930156840883313885800566928227509455613772652974671263842525120809493989764568545594736488419740895454306637808364166811032456753020328171927891471765100383068199228556809701343380679395025434683164405263224381449051118042932508145826961449419089317918010006657867527238267555910471409095436561208263225334325262152718611784920679236842699379912240221379263766669722421880117263326803212143045759671286427529159607959424065759544207111808710550843881393996579324879635532630816982866582486846618526972496285681216572835105246222582073643902842965959892135162090816710838646666035712510222949075735264951731194908038961854644133104370695064812412327371698218937604481849433964888812457823707419964515889691221719168055573470478626382210850092783332466678400797202740249624172357292344189416411283517232824527162864719256890228905268534197757417757604919960095138699114353832484246660947629931598188120144063960545581079441029281283727205165512755956435791446569430558577019005024473236729474313111030413497515179658408633662294061305178465408669499481895204370399426017309119895739124636628197009904692692839633267518760969565439381665476449005254765320496928083442836185801998819714597356901702302721500442988254526111856319547253997115458216770538938405328280851817470988180302317652569527270413941633077680554688711839339150560533905238995035723730130135402814784291952592181004984821009315861188574047358992886605468289626247060941475019209875887371315761885715874325793803130750764239221395470742598012611900530078985243395150663407987725654360495611697528330746933112304488309451036421306452356338609639157522084963955515936392084266203085683383287579477548664761611611576960658519487312649420388367202440047235415120093015382463663474537716960258375529353918154798714567275520379608641001315455361599203072847604121015418959002084447706517055073607229727661854269325320168267156790386089780660878240407424609247085880212558105933166728687423069088664780584912199014925314645363268226233326639613540692122737758402276245742605924542952592820897462667140813277138216142026288072646460540009173126073613122205922774594932745577923415086284802787390152603736359458932705218784260296365205770073477507556262338632383004875558238276341131799604258381633551173777456425196112266425952628319567104456890559317291730395086594694502382271799309811572411692673075210997809519736259084087696341364830757697558037652908552768275567066599822065537436296713527175547067869988003002232551252725214993426187860451475105936806289542737864373003752616853152050171996732816918754918958003516297867109157824568612514900942001761738875844841644127292442406205544242475727064870750913958048718331068509690655062499009541310567953053572484340722284119564859738821706659674154699834211530582318559561948420524396566067927561751067352737015852044255630585948333821087751879332602634316303498276486185974310403138962253631832627165061029524654693345277153302438547778462361223501539976187185024183899337717649498787280309896502510489119624052596527663835284149297128172212742877837736257489189029667206032704931849054980234121539956203319404395366244416983933890808737129389461891790884028606671183041148406551368011325420183546259257048821496561879269842866972859573571575657120750465000450729606712331398554146827015099877598018339897287194891933045494005560333927530763906510387545732476043577213680016847304430274646841712466586011020260369796620669224020552442959588387959738082666040208071595450444725837504817495158394381807439381720402711077097906629979906178924816304366838140936907232032547464927003816872104070010260604647761072631638190027482291081940850294190541103937732563756453416395089859174458086276134521698738760950192528308817746199757478638224762650945325414475453836501732725183664144829445511929111634309155064253244254662125361909139457285117323456820995018474889254758824607233848487952839910727773498879496145479244651255397712311505540667350690104822771699422947766786901154931136646658642394129392776780680027936249591560641320658848130747760576535430822683918731906298514205256336978693074396533578970135800840939585646265795811411156250426338284552808710078765500576161856327953991705206890053073780534813954917731886224474688230073991445912961224292519290133953817767544931076160852768218690047515646795701372432777951249051373005781841410203233450709940798617148827561086994440274333337535055567037040978554503247691123526117944745883667005830298759952101876811581196473404189284083571595452799148343516318540953393529287392292693028089416480496915159468401115971922002857835514194241809343842023820147116519180548276349765513280336779242081620889979264433603018447660184594433183653846585308052269320293884782878669206103305899558759852858031750199343378256398378006625381607232372773743375688640042643901115712091385978055750734465980009919566183977805281599515339481009751087167747432055252696184344913033424712272518715679260205876037932956855672039296167721105170858967529334845429599655816562620846139555840016841724306162661358069289724462074285047799771463399331300814722260155620769432946132573813468158180126873880837436182296504059294654953676261027597585793802495073779970515642376114305997792659504012389678740164433437119737239379866150559412658522649619160514287639324665465177990537284355359543802362873076302015403073093449797460450631361405357934552491462867066820368946949503183575085802791206902536360974547527787221563485246612847990984408914916469462218726050777884114550548059362164852336544008544762034364708442507773659170703161062165691610590958268400402196019534423233399308961830880501377182587404465357752365900493969175856380303975947969597526593516908214256018026806910874637199894684664644440935065754993352933948531260978005389888460556024180407110058732354617949429467990347709518317500411365823918882731078326054999742879207002185610656137901083120637412673724727401968669775979981627887058932854813211953238635106191799780481431064230094994728962639500437588916478805738803250537595771812671940127974210965965896499607714333146536642903102073725308203436001883242769104301238027030866347177764077688323840147793877104886799863078663230675332442127074228235895202896145924664686187894434383321120288597467417565737051745625556093596215336642659236538595876020350474516894451878276674777394407010826295431092424378782596213540615101532581725768158436866237646165279328849078451058251510104672024468200960546730280825877314866222826090169748294124830347704399605831090582775241647674724969528554278550739391858681421612954025552705744400178754013240948402561794343628401337483625234418704702962998537295373247484441111126750591615882571704383801840568534311204268696195815459117584900754788060743806601757938027106537617818904628703411719999129726396424551810866563618503575435919357159217489003134616785330854996647401186016903509759648364325608315928452690796330507276840379383562023394272294004574003390666759623067553420224346836185817506366921607056310082232178172365881954854080877122149664159103188011204361667535467902994325690925797033042091633446993931588372661609615239180387348070222800345742648522965704037957531209291208498604792430701452146563798204188031779143535807233139928412592486115863298580769572396215103689899932665778960605485069838548070435924952267621531685012249335265873528638382675570571438121757364068485562858710841672484333354214206159741976275947309101435651543139783919878245733220186619615598863448941365795926279749662009573355756717051239219158781839486082199096848748923083636364711382306976530325779515096724659373930201774064462850102484712785141525908356941163162179207244649288878821120133505671283751783791121186331233196640040609061889167984303810920726313992216709581666833419574527141540306181875587786271586707670939881718131132159994901455345636220149356827961603936350879823320054348598771947454369448469337121407193452829535441951332515934319959546879914071022316790847053704292603121237241077270818811721812999183243257033498753507294209341690411654465013762900298123292758832282147384976959456319432733117440612895767940904677067728675164067137073598870149233841004108006228190304022207175546448673808212127228532323004143405454945246059309227815948435883098954055040099192917467836288817073269049586638046899347601627736298378953064918198771350879880860981810019428795172420273225171708042212844046312619905219276045560605131784892357218354131390128920198025230939912181567852266220764245696371540590423944249525717043057355328135705395341416280098178243935248527472633980454900891770806534852311220898957717351231222623822103892625283216577236513343364625004824994312478248075136413919218927981179454518392610109009431228110874585497932327593096710727249236425902412866077450849154367062320295041567371906473600110351928892500490576580734428793393068007728146616719670832683756071880266227903096973336999865373227112916672660674498988411045296886674264607497247681236089158995699995968541670071371375097248460952603882859087694764693674942581852868823516379858897581553827437186742954404134946536810497107751251530126616496954734266341580060123430560049884097868220389568351963912915058755433366841232961317998104567180688615071474981037866539777490805591970635081953457253857152791025181292979846030819834037229824224799132743606371034641488366420755092554903541191227943312103959612700898615736153592555836791780306566399728281793218367362884810505930230879832514804164591772637597562052721928996962611102907359494308158936583872279414420371754042811859418248400692199594559979677440109739517037821418827103195555217682222018147937650524776987979385469205239351949316127249171726497497027076665783343249353680211561173390908082465549578839771706616190431748533702199013525962280424880346866831621213044481634633172413305106039225224525129000009066587181115999134330473793809386815080782900977752504579646015125227181113735057660537715694477133273019294819597431285803111377346121077746008849701883993536547339992411422982926453911114059550779521760897525555890047931475427289703322913738954241951267583537117169544086397094944314358101878619266544092574874236543978178372384972905142116078039704797693947137112357331678320177416490673001789943434313030211931357926278392492563062682465480977413024429418736154382704920743781227638916182979814503006374555152369370972017011129942210397261338136330027536018938397886464166553046579462629531724155344436697049826148458871719831856723917687941752313012720293588621900183698821359128162315389071379524987795379443273115162142544724496776788227801400797173288458853388968401266749151037345720503399064433980432288903665177681533635498138997944149553576756428696739749467636986583917753947659706975624274950300500041654815442346166146040978526631501830340169291307680983068395047847232878949641284725278215215979832295735799108520193808642618287624859871455296531485614390505402524280690744280995909642592640205235228890303537086314636798416095520865948435552263130881287480298160389759335557833004829980015884817664028097931026091818691324625058812421780541447389722107020861342194765512116570078298769628638178762222059893718674930043805467190085280017252698569741102270937793390437849097161801641292208935238137909815756580958107596740055018541764815578376190212976905248767345761794503453129456171596884705709150272230925394212409432594762925786687479382453922867847539498116966539524383525313041565392158648764214709911277690781667724451299457227378816993292742622787946129700331432925866617229853999344108055862940562529230785914353104087590837685059046631524643021411030121914109262936627227558004234912423206139975724597379895830880275427674911475871981983427366498086779388240236148995173285335026031369836238697121597232339964842939088268117907642775591709883542184077517117584154503332112333827020112615284130238659912485473478108698460051461579410814775630716574926343543693172656270540427866644938127047550585378162850605104805791667829291415962617104235439076783367957164304543600463527452942669206119135068015467678861347831857349173779350367833560396749651133070279408508366855761552202122720264462492017759368754999591700734959453992863687762776619335487752360772356702590720869978371777402736497641811092001073225339576755542808021079610812807752657287192482833982307432118764582602742858565930172538385566594345035207162174275958521805608474938415525094667301802298669161817413869886820577981615711007672081708214579991533996998868838180696902403358835992988933062944080793121531615301250027799351241179633009389621076097753114577445692691756865569591419747450450128860084625912033758269023579164535034535171404919385538487174392749751124115823070368141790880580367824303337205126881386439903258534109341849360037782112995798308017125254686030159359528650908806339448561847734672680521788190696714395468699169644546124484091499414947618938803787932114836585049452115760982931435638683523847142873906836593867108517432431179441813306767693031847333804917758677096923636086559259218270948974996414827360951257303293281528682484682177908308533716081449757061409804923131448701566228843029837431536608187219766088368045312826565825753106838913532473479291275594843633132650108988176217070131472954030261525174754965026666756740744481189786692442661336947761267279802580901149974885542182985843502085742061319299786728746511295985316113759318799366303039520793729233795718602279662232501396983312609330866608172379027244111710377440040791550931447662934898310542128309493695715573577958365412844933328634771220866377074158218414282084025117429627199481771925836587927661450624617972163661157202956300890466197353713876681657408520419282309960198390731534447015978546353725530043434517965094072942487658627586052017170247671404698616603715448922333092427563412769884468487189823792562824643667618911849318002087447592902685927243763946052585625935220900423891969084623728702378724507574634786097015075154158608966614153986720517769331786237493207311363311347682629581062496777545445291048762195226776525045981334774267653767744863043270315552940791883267910554151113668675044499410818246700948432928212057513782473375927903582284087163914045050385351919381145878736240588789665739424099257306915299167342825310659994666199894833732611903519934085614346304313478174188669811263962039873060921694451261785392645219443423613144116852635765546732524508328096829685414503008054373136512522992133915230859701279844969261036152297911635744663204992652462134986286989982104782327973080890511802380126092776035864933073745450638518367376275852156131309394794855293199059511900409944414399520995053573132604103119914918497449868318486893906724839878721312624685752688174741002976452199586798348779153813364735331170199110066584459427336285418686674221443347536324687896626409364152574304501140625885298589595290868191510428768488949445639357343303559312454137966917397455597526257062196597707561152846258082319728242974338251321313112358091335290886008980364346751581381026394138066059271586091775651169354312618311121185224110261142580850641094324841765785856418670150047437521045812828806689707333372166737891060648732870395109814102801505070161260960693952954411112075339316800744918573874377772337060768484321859222017199473065589076341605997655091104995548600465687718655589205495325959845557631024630332761098382823530544927336859421993726947199947172990658880373017325222876855807408842059489057330364202534371587877862091857706213263467782440456154615508451471639259417663670566198903126683071482732190550421315218317980178305737262838220261350907037674478917890973066237401107323455006831496360804225025727803173807658569233263998944594786954956219206612932797893915089261702953418950545309770759200893171287787185202768728823359773288076866513396762982157721885083237343795201238219806696238476128207291709822529678695832642575761432867754444733580576359030417062829447290129310517326948564357632356662987488606929541568880849086769926939297451868636784000433607081011578113233327008069116471309086056059960669783232938564166535242465279215497874993164097391659912704135711007056649181993138931709129106069475168960061921603675398060017101655912408653369349789615737873120939206511495375138387382950232383906101497486660764119675336862555578440765277344653811322714352815081069227380675166251644967127771103142016669417643259132601363580733982622403218022520272844088575111326248324999541887816351615391024472733315609347258829980535264115141923843125466231937131371992238214920070869346075302798415109477477944769730739791918802282096543840983643856528416683810703314173154724641962339535439708059333831436665199017237137730099927596873219461411142507606693469312571050513529283246992923267831414473262835118737546287031060421514946743001590474622752298103181549770599125296164179478950863969704783062247812002168513366571942834394145487583055374790854808526515824672049014650052636224724900191418155455106818153754643015470513381951509740218886921643637620919470684029899152985999478659190673704089381896595616981984605184506908644944265186858945594994313381323333417195903718055861639140307865781244889174257360513990638395699976723150924004586793358590238190654243862870663932228080720814190792590088139098019010139451308833508014882807544384265673340109017306395816156938379060445663417400908171659407942308876773228353002415516887405445757833350602418844639115052416605985003869998101523711223964539453495502218739200606616080269907029028082906116678690656214211269899661009958880870881984288179486325835532018194295061342980284678728708383367065867397138509836295080394742356415207154387726886093494242436643710600757949487393231361221637236534542931728879518313769206143466542525276517035552292674926953912915553951550451921268251068529678899907108272446796186877160950890288206315365724612795553632936067367377020877297996488221775821516596506968010712926397509774649792100090077823945472171017426582247790719836476770259100454674483221170093988261584126600298377180834172314592031984817233351132551589103916628522185246304000036339918154269300672309736281240005345954289234112951180432863910317430374822652519914052598552220291025809340926444918712034696265119099079038399539034945870968169468423614533785464855500330134799322729951145936079679619930464668301972848783880004355262310086721851888480180766708874573384272444068090905963507175289191880909758994580918890387679644593863124889826299592979009810763161707547667011626618250038205970389565603853537917290439717789691314080918778224030554261340698537968398430389455294754618264244802670583138530852331597588087463739197716011319485227335240219139217785891946246545029835444473137157233714176594107923149548185672363514778513257015977130442922036219575728131197550220233582582277363838603450718832260464617090215723844953993464771749580495835404847181809049181421662981684109412721813297889961892153166249407385366612410083623938516212221158451124499598972807011160481704321171556659141115031830334890654437722183685271443733043434986839833789653514844468176500944020902051940440968253798270386821125355459793203601715097788906846555494021793511076262337281953547884982369099490771175805035552852687498287582832860283603804764753346808738642014919169310282675966297133320510700083301837745701052901966673447797853681728387167125620330687685013874631348709938239012238653965643476234465725946881066123296121200044127362563240183773934226707818371247978499255570205113415383234659364979496925247054471975675416967814313746230923538886377208428226127386061550775420605205595498935559165245931547294767206280083879726883446082145915246044963661627814415749000798609650072535607602211898101813470687962590882417193398860475659374180799092998754858193533257859436613227093383118693271856045358689131461565822556962790835969760424293897258011761770532782645609359295910693584079007845348442878689533385111223662554463795519489603651403109301191877139381959761824616124755457047211487550853397478760082624957787886191980984458472135136624186000242656848819986203683500461185533886301283221527907025770743264139455414200648265513351931688557788701406244071203014354882258033064679627604093903951120503338134416010603034440131343651090110515153919055153806569540227818328061563316109966129151670163281996652800405849091274846389794958937781233651389094541377587409747196089637905577340126769384598085277727200865848290773218899594006544670225447105029323112983228583020953397316294538889672728650905166914884481738693801923424516802000915736398499283156780651523505818129638624274516808816983587098788587086391703729826327747338857444520889321330644589655679326246969241302845768161361363112931457522851113997403659420165903476303510935372582695951068653973535517435764422282313872996563870964813545228880504812569242613604208512865382134034162887055982452766404743949229242219806321127935265469640802585493544058201436553390413494952473090664994427096361007821689393195283997630816763835033392797578197108106162389464295732089766049784088814567923741921799016749538197272845696321599924170188602652801663127497719308518961956911127539075796667078801665578166749583845636443875483288801668503665371958585583255063384676715233296759495590951802389946032622518577168605579648772549439393591482928339082440809204845524413735693089488368031405135756420926492067402139011220130657677269101480421697908601110041912024059783900076268178331546046505075086314176170924033456386855516240858892977402856354442023905654438952152732592872790843398840995183815545343187370574268582059837816096509898396326716677295079739428937312468338371423629222282553903189223142076173556698223304151431444365088262992886185522711217560239947764099382958961330465624933166209776311676836819921441866847679546370312822734206466921705602474546863817250101077450071287046505049827799075529136963691509354905619131953948678830152928841134113043478864039267644108966630753617939400877913278342015923611088338926544322759784976118672513554561486134064629849808606635529595087249937042252432069352567207989419764517131200374675852566341952082744091788891603673773894775814694351036777727833586077351524792074162652979906305207119179382849329061882421995561605732296791798483268612107914970685907804197057532163332507988376760635658186676137017935347208737197296077221681023614797903732188789856840351897549866936457591805663385529455900868180056350739523193296860247002511345796021504548421609562589087345460660241636967374174942052451738710366648913961259670501678572136198537772553241428518434710955872115846874531137629896742720710883620569077302670216877112973105448428098837031184442126161661364045469566524912892689169529564027953177615018206646922388202957140901162092325331132902551918919339249772686398865264100541709392252516731607617860441570732467212425201542936283517567696684460620830693923889807397319204204351714610327652896367937884338797483305737994132487698422135577769971148485165865883994943288034554773345177728801796048256815095614373015097697118680850585365935496003186279532874279653808389920690358921817894826709286967750244719379265150906160780896416181807704377813498514226493190834500304946844964263288193805444399972466336677223297187335422431561906190658459814214468330210614013269538482345984633564453915814281005857949473206707130386830534664884118468983642126897074598693885731188253348701943195512204784932386811633243479050951827442717404170222865430296629723634080703497597391956260120574783599692701182116626022695799784228084026133627138853429263282684288375329022202492868352723450380434213421129809423196887160528305390187550672902555426832121852840540234756625464255485070969361550168061606926712983403789155150091814183936015005082915817340482711838222607484809643278936375705460365820329680482839893476342230774417797413147511220082755902318656775818389529172782742674392427036603683845790287948098003635295225975586477867542215900921906338144400757786399942931239461033512121415452678670848966108977137671008380166189838983175973520216974883340351694984155920925444829468625164965016742899694997614365779142910422427375603276963493860531066462237735724750590828202826983053532654253012035338833992547598969066899814245018369757127752855468978017054447330304751763418822428478081849079013997501672419354382674958124529712015577140252732696816540159643523918424363133441455891689921921897893600686534314495916781142850849757610976069801079040700926244651531579038874359361591316905367800319039523752095325470452677127679235849258319138496714881141849375812328588784206889042676199016647858363388608726267587892263328014904770396325777899932443660738682167209976876815099976866861243253093843530695757441284183846402766364555878892625127902699423313655791580715214479846443204350590420159867447473679682980308715384969944961519987771592353565988685248201561092939722562890301716413425737463251307300979273254421829965481594377233619940689113431976989099330221603134063424678008037591913828490409989563508468098856687763425898768519989501996703358936180545806890141909686745824996468835917695780473657274741703676210757183724709788512824843187114818469090440321447099764580739266927636557340628242991254075408775168721940733744366376154821953974954977893395885192801392897486350161123161104802185561596132106418638252718734006512019120585807148350508892496125723854809150388650879625316215247191019668248171766122317002490124178663555826124509366165477305371077663305754305050414843821840727813888917908696436284141305997333437761147155318673381139826049946760320850174532572245328631130212844395541942386063538246440008218632603652849265453398740645268577102837073837866707006294040216231598490792694795380207998971548169190375172590075053185587082055597040045332036084546184664852693499292499762431448655405859130305038497755976018704543790362062152821735583818871155197330013618779399467395896848972067163581345646499038450434968495485292804427948868047685710491065428438068693421924596972620333587202799040131619866142589402927983655776907200606187598641749668166167639194651966089226609075602080417365826216675685401270713673549058898421091724569794591053794016879497080278125408338587974443218603979614503105620855339413317119825776537626048400133298859340900382230623777652475538322982925521801896740169692793535710260373788973130612135324869407564819838915563481866931650632779986074430260519806525820534198454462359039533629682265645667352819241405028546403517904228579590179767923848199526905514000628601887719245102147720439015315505183640459288418337925016575257014385040187898509019329016151705491069426236066380993610974962307864240892230109451745338741182442814609629370964120543030791107078497150586902822670420715536032040543255189620025557159249917676340966902889635005059346620211600226564126020089084383035085029102833924095715889711171813249462459024169253094640945871405229183550963668811765264190570086327455730193380259966170989363042687180092491595731696552416933475002205007109676561218119799431078024510998211241401334884967573968751286770273752675336005245994177378156443579258193992388607979121442680584753655462827537620944663026792519839917204112515883311187477282884574431391980281444265562166562458690275381642394189272372143596143407122832225994808203339884932047329104231516909892837908702885369476162434548209242062679619713779512285047801966574157568710206185240197702342889425986896369400275171437021632198808991966863569373238747096066535459244665072183566534700306066022601752325582203484445908537286676225536902608528785653124023815644315033450000080522093342489926335871388566138153615038709997587849888030679116374760780189906454411830520392493169208292345139211051572640892805680152587162342036574616447359850060786416777790564183580627113897800193162376513210217408162718623952892270922782602627512468402698885787452386056204420616919086988460223838060190133183859908102505336875929970648746865542104677756256816872504786880161823412523802145302831568439444551652531504449018929497509384794696138802329304180698439461561296143279153306983799766996926040570246853480117450952084642708400856914768543566570841796769553467371299616677076827465182474091980120970916001117497369455903092318231618648644997397282118887698684962124918796408391989369192699247511278687315609165182921784878662137018731760045897045753784440573974035370807961187615373083876075515564762385165898992634629313117295649185663434541149144994869174288443997436915445787277937909609952787963134774133626470244460254851005803041637249090171007332858029043310506634596968068733081013903402994076657696586340124574885609416700085330382459350489543631145568710787793124194842681065050318689235730286568059340900902317344717698993214418489662866415314855088852838431109280834045002293468871852096174868001952540178804821135170805010495830830433844253204816835287402730861824791229332274291353970950702197100650391281450001584133688286091368186613766204523894927620170322887647092893820823479623690187193003747644048133265309270353728353264269902815979575061294703083375036871228082964632548665269861622981206430992232049692217427307937620118899720612582475942099560392131961500413424826049690849033888527152682499046810409241720187785366764478768867984353303914454346913107606790022484563948195695377484045781401331637979538559801145524083087863170937273252347999637319142679116451358806508092678965548210122706199315841863910704953210016663643214233302542807905985706513314738681439108573325501945072479208568240359282614144791144981704262672022689690875279892760168360817744710532279741534859622099594379400496387870887694015803277194182902664056226451646896265668785537385353806997734107881451789547077454404741017229212696817908234317777966873441145373948510852195668306000843607300524079621149979343159099812462730214250316250963532973309445287341117416694567416046713696307252069935326432154809947559845607334886576583048362018427890429866796782819967280228064597642377079840509403931165538886310219677536319156288821043375521917488346876612148137000957198766643994430523520811411026223761860698559288788341042632948460392071188942633905004466997167693564480834496428636850717677333271685781963409774600166002631060460791989780062616488089580473286589952360810059894226979286276903584031198304436680096044423225173388965389612117389136372236581655866717268198494750018424357991693349193061518098374872762038838358321414350976106866233567512273839806398934319858876197555741540536799490445533199554631727486542756054848964948826030210271066674715408705794867694148475017476127603811085993235849690914112834899846012554898008757293254716265966198803407042778388665229121079787454712007109043732422056279315672495337164701802368325311681182667404224095070073655351148589300392080960095093724858147196587142149566479738230138109922779293848332202791079881174672591799496648967531059015624709487525596046089733367690540332316998785759668326311345444149377582324967363088958095516508737591024839017623612613454569113288383859505766529369726047160307845196707505237429185419329508908584279272052710761510849139723530818663003919695165681444096814063812439593587013117445834131267101453941172581284824758603259333908402274054074683369777421697308743206447839698511778250527222882845287077874450689400062886992719703719091208141975857878185190746811505422408727907739541665225653879942241645146720842791333383430247326582670347362278674605841085850527628226218994655123113634524293135658049868545133878384778479688249292620257091502335774647216464491882385338484251800683366045839573021829011970712498503851269123051457113278437953264547803248887533988475743068191664969999702275402185731820144620476139001434242470429445425800449550351344626697629707544936466316102818264208126817286992859022422386769162405510342909741446257216653318709523751789497880188871346926364613010595501231464964481136659086733863256323197928725650001246421922105870526508502282283440610890462005744693688093838499854694414043397593147500047229111034916251647280899909406136563230317744888740423118555318612888986186773528969084195004107169535322723345500830036090903172135558697789847292382050146924911236301614350619758371565348539130901380071467629902388977812859731055049447226708264503492839839242743289614588213318075589097267403755720087161825745892873445827419215259318082894017895849020866953761319694959184587026470411766997717532010185778962266446108536810517177974463337634169506080359863685465170775561080241214199420598036573027611156879381721895819201624259394689992296223801051018364970755867432327113426897161230469426023435556370747921613040059430663043874794887636354541419261649779061203585392531544821411118955326846047496676839142989832549981915508682789812078579463050077142602022405471085774458401358386637390389477902636842914677210565669583195132467840490807830526281797013618298553801841876095022637638196576359344407993727717746183944016976501921718003423093567136896190045444226644226662318942353263373721460007732113237579694950010036345373384088156423815425346373828240973769715432547175150357837532139141529169818923123328963567482791207487970163964000304823757550684212802715008049623549597110464331311237374197732127124500730080585987052381400887380068197563602447844922159956132683109705308830106701468588335303892202960700572373088059662419979075002790571548128952575571162300590061207614282658285240715877385518959959088776416110412422934745715310281017742677389175170185054328917906737157549231356678552585411385980764021824638396113268430019193344337062643773824296853780044387001496766789457115374540575853592421723118509818074838181288173556668727967663312185872021792405454749679831091007113043272892562572159511770796386736922272302431889967492673389504955048341398616661482250857314645181496058104248866910080386100400028777483014503850459039704297791038073678699864840706699349072273986593343732126378614668260402048548038417138477750362713540190833553993303004593939462833344957730250945511908876485401414591976592646096918695287725743402345651311331237101358802077429091109930439181017815134114290993942811399372686896253143645093716483275512764358123149031595551533985420218558778893986671862859869179060764109080221408757674293911239164067664257639030438355790698922745650206966940432919735898370012779649249402896338408666330462185958346334355477932172917487426272232078044596829883761826785386958283490771796905560837957115419175071666887563927633713172526793795414261246336838912871216196229860599999978535366729001398870098746769458025007391573357876085341991394236951271856823285916642027642738524834279103188366530604466419008928518081425027037094629661018696572494245949694674447787213390386065184119883888682558701917684092352603520123311416246952101325415585481142815077286956188385619350701122740179944947032304846478089422997348822205233281884343414945825071054731437522159067382695261376218945938723139328015823192659541152559037845389178874555729558153408467237862213575225717987633013681691810959170534138125612260291208190861625514362493859336474630999621408839112692200175510186474183515947574934238095027926576775704826328412488544883428471586737743696445743507107405728056941980858345959592633019001262733949468527289574582349387681429089907647547942850476558120211930384076068510598001107555462012724940132670537141569299168136828086459439241946192194988456612479980918290262695281620795635287529781615360868135091508981251234700021522682871855625443429375131025474991051516971655243183471521850435934759411238552089218984010826041901575801287264113433912760461216455978113460874561820856147966546111636323240363231802830221926574864285598219334682418255542499716365434394540200065157721900538495743444069190251365406945338389173904219297926729471663895413557576771169952786874218685600221998859530143667547891994818195863721287857864180841792179432058034234404680859304620774571313671128866433355530685560885369321643233491698233580552584155118402134033071534827375921618764696125767729346593194353606305272382793269192631052064872660547909945317729815814660690037768704374093593330603287471285846921299414273903853616541842385220498239027579019416853530320139971105726531329543830769439718074078354857990350810151169691912381471762974427721458822435732076582268516076325624769132853328349137527220621663962839562347600453932906698843125949262103520357088234161417666046330928760188463248468971705016571797965574355757444307760200017999199579417258245076967133798889425312261725718967532339445051513165550956073893532466902600098043651790268489605378829638574232698849574838262475136293457356165202676482746551100981074628742539856683639799979442651142551929230801956442689998598290208827263893904940851813946447217823506939472048264971060076667656701684834182457596396409808555934852594919377210946779338142417161301699156535903929802067100798580910907721465749577447844175213066077275373281852891639472981994520347892160166466407350708802934123737340428581282468130156872966288861120452063383602343765178763316144377620904304506503510182538521648708979070065626078960825140030093647406202512680840832616414242757814908883502496676438416819340496954403295268217594147345552865170965073677350014132787990270168852352443862484437908438332391062268694311198236370111002326779165497740637137084502148375007951259223830742809166605195962670132402420911498332051954602055142472824230043205505793379425073837268294542709669118039371665227182571910482560738064755881065365591205993852631049740893279093047640436956513422376061780139883162504517621012092915571021514903418767997770404792745722978672030429573352055397450182382783749161832314836397805808247601084509160091672923506553275072161990840084466953708499483192841163909740828108514561525591970057418714880242280752592465350605033224863398439242435759089761892892066701705410011751216308016266206902776081727306482421432297802981981918817919620527787331579770346973805322387731237200223499966868410073648368851582327950945238202367679656998591020630853784337938608063321113090720977261147246972506099375159066893764015482594182548253125553509219290766727907205484624378894344606519720775628154143822772283488237591884789569351713362237867942046614418336221489161125088361481691689180029857005824878088438608033317796409214413984630929540560904671728789619011254539591940999384413649457923328008251554116748540718428120302035243227415984373238670398855362196556841174336547673832881385027433533469381447459185132345496018677984103804872669743218789347562801745446340393760622244120929637503254713664445074025389592673509913037023617864002300631370691643191211874138486380014962836487365509323599217117585267478455898830739718831463779414299186986990863160708745777751557673687288333874378380270875514549896598849488173081445553086021794533447573855568932566919510367382729508335597154507953635167445864809270794898713994937321402756458463817021001302149996155638758532519357727264157107597736572664228782921344476429098853441684021225877452378536953296544697253438496212741781298783471598833465329913909268410723985406462515518168260723635217548607008497026506770476644755631947965422877349619665024832309598985622364899493629211089830668516256198297251106819229237632859120462292103006402921944317475756665153136548446412087990373326790674679081465965886292946260062667716187238007964743304080211679573630748712904541525242338916436311375246949505930857859441003280434908961100115619700191598593730045581707918927972156849778688598127724325187535480337441049007281487424856532082140144681416927249774239696627555459275895534611055126039390441028232081447781693653917363531313308178895997454274522921856428013031828948571311620519885669734172184297216734943753738563106713787484742415908015574965927324460967570655316184416583103954113993067350180632361949063013570765287525323441412851906691432046890271685115742600391721065982873346171433275438493991786121176823382807078926004497763631333723913135566544019057538600231159293672633520611856556952985045872478393431263530138271990013984000014505821540921107807396941362913649819261444636264544235787658946418299303536083752904998700594329469415806238928941411614398916225262559141263129741808138454359492969127012746616678496957465706109295465672561954011972662813896558487069422165209570562996144513805952693812883059412678696617131516414315650026857232180100714883593834391948613682697354951984247768733218496844980321528852322811510678025856085171950329232299009094070544481746102225363561134505847839930503657475802320003333708359961056871240230395340655692189618628479398495726722236885115198209435624955087515953347248159979140449780506086423495638247676713431892392727755510001644023557889197742715693574233502967884817474831690867905281284848367760507285315484094208700075161458027623527704663399870428950112395036278964733842534603020085545832839931917495703367389934655884162145647479874020788259886914737693812345695586403874744652315076101557546692730802504082107256301902895462417003542373998561851442223543431703507500294791618561317676251568499188616547198303750053776561725121374515872045346919217218485506481876757924805645860819991333871434648421285428892115660777999899227084365992365336539952072715656783493344416614610645619876765106876737773015487722584448461151135518071687735390312201380564024400892831172580076026219000444928027357446452393056915415068983210703037232785222577375788903179887352077268702685690541380649395426099571867988652287968926935026329357525529754963525870400026738283725890166218232504325262469071973878275816619556749711104133155157910747176517654444898332169111404912748317142532010909907187715499018577047270812176353837359431031979363517607514424712441531854697987523995973835474352100325180544555947144471140522407153636514260467118804107512559244246100862003731365632495482856597131960057303111031387794683479936764590538217525121206139448765957674692553833010484218611805469387648972602601924410718027525015796396645096252967868828560774219182941952837625904411345874963703201936258236826904939711330085001807401718198969750674041671891910720462866970662575707678778139625715885902681395224405988125012083387226916056064208110968508400992815044071991149613430995905633547709762980060087058136734431218481839263264825736643333096903072432487378961600422565614541510359494465536817394887298315229910587548140119973896315078382024218428880417825677703949162594294978483943463479387144084085183953338370845130610958992618081498332027151291295472999480501057777306255898693482512728131164590483669328112589085658788387252708730525283396268333846645795438684711850513082069035286287476692233857579583825890176772325101708966624321276823190130175677152761834827880240709656776776337365127847190997395930627465099926631250062498642110225156284878916566964401186605000296617434922107580351543455095548198403994957163169296983814229001326729914351783461550444248693122212471131752797533036378591225430193886330159151400955555509209765523983788840991096397958475752032080512690947008456791334602155135042708419399940455212399385955817069514377581659594229109909960040538020735857940728740560275971508983358397131260321505506528459863951955661856738174329033436725607187761721882064442723848176050604877864665974957932302091750257376139865662785012977335208827271508847705554381754531359741057464340183106971236729291675814902766579027542053765345535473885973541893118051145175784860768736865963434335093894943965722384764099975476986699138806868659368733007048063715037695386385845160668185838713053124370244821465076583056399243889755162280784864290830329312830923673332539957112158543689265838653217397475121615017790112753786518595492704627976210792813848741899773124959699385118792190714318732114741376872629743785848348590337439855380844397405873313734071008160605870989780585131735209852390180558324644630425136925393807437575309616761902929260371827854314877853924218903472806517374780370056115307145033532446660879582521308402571194100097886557724885921949173381534001361941366851360391536883517767375192302713732265834807326527172145509604993662593571007275168331148591970834199310239459597732722851034026138533849986709949313887694965075767105268754992243755965320901585939605855400124232814327575847026266432667184125996335625857284397741704416446324050000532302314792491936395462709590127927451587560199195217547625808559013829738601642364589844547669307083424202332179543012933116841024554430903419480107868392841393430884392971701041018436558532169294112565840256690663984079421849734671818186042981099390945204102806055585997381658028877424477267745883656784045112547789621608583235108619861413661362266400654918941135927873169318628741490380206664458746374197165808627049140264799979855632025273838639872367379643648091497735126336832003485949323387632104123210488168556860809238882312863671105867843758055168116453084143286143216667993952062535286419062655242138710520570372843477188118424143628109204583550597646080660233910099570053667991731572815539882115860816681875009169787715349783664027870138673745222572399761229141362165342830703928764088267424557178124700817937247152816563856463106410862436014697132132102486404415264874172868530818009787852501258989778927964084007455175680671945801488717781129102852276737100426164584784103226682214032169817844229390749571837423603041664200183085229786461745412652229636483121747446080068951797157899599336422076955255317479590968260417149455340371286035206551507560415785787147758032743247704168274459180941780669347963124370449656957076920961173700164515584311781293195417656262941581790146996825282500793253304719159484623380031405851771207101701633646331403095192901984429280750808068532692002593206082458567139617776360274459684362768383268701659067110273534478862184240277756198760035461883734498460016947638139646179952895859721335031235764683343399514870140471803303871939898641600530182706275600959547313538862736597293267734422574159769829072129444030089137638889246720321569243271238457831210832362393652304247264055849576643258990197122170631203110011865676093723846867232534281317692222180705650859336041473148067424092133600318420305283993214447823514641438204993897019426710570190778684569954899635193676557558883390216929279563618155827603994740518760491359939473412337774399318118449966688509762588029092249282508313557846473983760730052478226975792339743064665694942140458547357402434065696045256542041733072315512527111528056568222862988765178773924218289373736634483951135356016154452009228778837282736458472780848081525674268511671041570922897792365519980653989737332220754947507256905890440277003637767210444453659959099329607794565944146376661153760420956757380992312605355757485564581757415706449271715585287401947629777582944205835997839966611039577153447548031649684072646971157215797827718316577122344518327597375888627998747350751008924954229434507047341418336464507295308219104040657723304273535661647384780172741706425089775630915970969213227251022750241345909350332648234581764250117881352688965572879608583480033660675158738824446349064327148603374531955670707338507581306407906884298538617201100052633769823804984934686041528145868069765870050581133088467187007986613030156678899762390004832370263419127943868205923056633182599639091719714012311701666939560386502554920629657274269600344987290581602335004648591592087347525216869430422680083602436350184616975825027290488779885486661289635720556898258163522641460901680069897013887468595544039658207987130495103274370828885766827486220147321173456812223424959797975531318903306721439355619775499675579230017246842960780797413806087278297950392385607652379445655870418797238131938074629311805869975799028692575188451539453806692360691635881279545097453799152469559131791859325730711270319788804127410926308027192879773176346521718449425551419413905189735366848225343487986850118035900016927645917334492025727100608581052510980800854783706711745425322363737034004181613754346858262145673529228864764171117031231214452711548981620551613348411525919228151762934601214331047000708421627904517772932508595279230656473691524348852765424975045591686563442286127496746424969939932168026158227222939452224874985391801803982279118968168425566463233190822008448693534391275368384376644438220189872743757410135039252924572007031795834320927845622936872498766312998913497488297803126306342240081587213416518936471562653102281876581149879036178910175666956964200424397888681298065117463018105737745193291487513917414595671540274346444796239651149991006051409007964328061764455051776099294193368183912376444125913531545754670994022329944648083178772063115171541151065162022995719076697340212259479797119688960278429289027234307540182075863577335424408828264979110038431113955731252564259093951036997240028990508803718669548906436604211956685480345753284091933979512103088170079185501138458300739432432908272104779862321709541513653255582580660206708629198825199702081206426459240985227711903691807101064051609718862941395779321895407218523630360735743344456027537043563186077775351211034189109311689427918025387285819588551997899404853986804791093055028971095118912929149252688777215301546508377363323136598179296946221940118546027875993127881755963858216886713704364344617892455570906643080491116884716213133153625051259406568282942703480995307572810356890610986424641040004045145326812890555851147591143710704540341789824764699340574361812122822124790955523725861057197859316673788298280862817043343500671131758447562919551019088875087756100547129441633104275808482608953168589024516080931073856639154260554927201917174490406429635708748591984034560238916818207325241938708395745555630198324969566309337747578826486687690365173316235945667378095018028495484111668168172026325155535959680484991571152187107400970661812146185482490321353555649649118732329725795126549508039815616423481634918254294049030493341084177688286685399343201977259634616242275268076069631402139584143585869394979834697151969158717025197992889059794844518824357264075613060078303356579607591792307198001105346780925142276506867265696918905550906636271813210603038240554401330053388022528316298943966511658585913620149273869089589726504261188838338280416906339869915756114180476698110682862444578088086763273921067877598355179056566046995175424901689937119798295352341380292794656521916026731335624559324319382882046650827120797916835434435670298421652276416510019063077417433904054861860354017168481002404127404685712139672218161544954711627169201888644053864445600765935301256478932946823863760513249273467984612321874945056599772198908826324967650790288497415869311420555729039037644305491883625581718691827493198647028667539724878176337510163616248253173477893895304031310471263959759239020457959632966665893371178373484510095750782496732242761899650444936929664603230604154447329736792732089358999954305904583204135265621327261562986772757403726313075145371259024257608108364736682564453868962680832734804016967162027044819196409034594850343688827363813682407314609887035040531063987236734689830725120028649868107843576443929074858103399679123069083262742548738480251352632184468249607479679311471486993065295229225738760445611893576283838402488647727519573974625073887734047040483230213313818193449235615305743770618553348897466270587702785508161976123069252490576875025928239277399086572891610670620125584414732045551923907842625328437090930345687683242083768729931383537377128356271727368036014991587156409636579853033828874439106834747189847729852076240801941915414424039018075640208898819900106024259236392421575159480816882344535110569187851105005678662481423144337225928662938480683042381973722217902763461180146198927855550514618991594922612310521390960559456055803817049681950497200401221144650795534479739365878306062738864205763398436526957484957594499342695009025935971760300953046111906543984799744186609698845266936935499760962257508764964624646434445010716697165140406397979795308696646273595250958010529096660767068826638843550659877082569901715897756900479918894334113705281377901511066521459551949657901354565338292894518194519493034764938726121941140762543144422819875434387580419796573555117269069225798723739043849419343744897606221200325405042614815173067046581328347986859196161521487790757759861060914648481906551316643177302353286493899342212907855740603598848726622480015042853412665231512540304303675813784707140111240052915961969446865747796856977578562664112373586614028657730745068516671372043475530127784469791885043178734850893390847304882366387221801726645995691499282423072178741964814365852282499886159296789840797123383327509946417747217647047843120660631811106556473519813249561070095740452960226354098210853875537798853516578159047278940964581538599784251464325812794779943452953579664410485676650672083879911394610406014301974588789605053289325938882249206581996737923807655121996447579586378184142826135806801680186505230375980690245961913243426737500166971694113582349218144572730256209852585654123609549433521867265870963675260953362052333470809876176023568751194596249635952743287732557742180289187685246947050251254116701363322684513005467847658423695510799016169731019044922077314384172174356606675245370609655195480319911492164002845843653545618196854625321227502084844393915489308989364927974889739854790330711805530832677017156085677540364391931592834786636956501385302199568864308130355684792195971573645096301838236137618295005411199722538467929762582782108229047396509736601031084699410325540487083775148041465586374117442952003112063112071411758995392181190010825407575360979539995719050159120449038359449651786897753236281349638343022760460382790918035762473483242126202136435748402704932848474710606893714127106981959857428056855478046513836151724774152960648278063467034293157602171048949149520367559259194923496782490734958357747079543729285899814343092188231717911677372578429759961795476648464790044540084940665102033419170154488645926812156084317630710930661816762810146824672804658331643661491255369176218836793594944747364888497966540731125040742159571904531675977968956542159100866017691456002665071623101607921081721009779521078379203152145414403587721411152887294261364392544643040714184368485680539714314552175106888103916873658865237858482147189298465084720655268296449260434272857198405065389883621304517881658305984420361756880893524560608143662173012149341901678379709509506102996050124644941641070487174423729307531109621736066755985206855742878526272754443584968240967177591569704531112348707660664813747900115518392423655597388193298228186880544940892333460061388514604791964982212620796285898809203017597539153263356675773042532495070803677674696966895660013847381027348100611268576816236480910121194722719469604343939502179949604458139813394856388750679489730017461088869580247780962160472499458854375247978328940176094256862249031072197279060610734950529829973814736893095493075064900682836405977381130352036383677094749067587894689112468213568601880597649744809340038977981881348480041028497350983172782269188708067026488705901700941715493504743353961144484463376054977402687855169083327241745938306833907115953498177039136286550162950851903471330946663881451014331602533758045694306358580199645490204076413743124190068349625427320379298455931209279261168771980012359849941038291314873958512730209934961070368934579819198709999758726936595115415120146948548260075543926050559089400065705189904834271391076748944619300641750171314468811300815925218896033629770687037312682143642021134767306737003867751127573064112944678544503778485161599438718016550123887268206990890435203201714664965993510315343719380444302954718273239110793344421188153589037502651220145423240113784186627377749910062168338365041073963173309697373082217928985654245263811394074782954544698644888066182937990581521424365108036519075464569425278434974017778423552660134339600147198536893624299989318333519011993820367477093151570173679523143498048115616626872745444777447616675933822620629904164298952093939317354385600902937342386109556295682974501323465418198241145456357059175285702689380365093975266870021859477362365224708066691313096805223667504418954629443269641009851770747991404657360377230853274089758978605472842045032997179209628486632096271733722490797411570062352974367582382279667698646019615303136317023536837891168660291842686990738919415110227198377272209237837707586367944209254189657953942948478644141818231330256528240535010586610892552761969005196836600350675078091349222742139770873288996293530808875051652591064400443071872393796251675147707252557796075776655606730858084691166730311671508876323169024037256924892167623856514195679198275615945872822011314538873589711243888855885444358569360353184540568790978813096887131928947726427243008129678023943441259484497328354685674054967414328027322276642017860050328683441011978783192314714706855146261329655484128216066066464662476442701282327620798989410341141230243967209458575901579758400405085139732602552244458208738619630960068769957114037911661457809021506197845289209463839339432447840231602037869591173051894622677865554893756464497260236512093919787754891093807870026618887828093368623623893950464542505197552535422807460494796395691229179331598981562387616324559663647925641141668063676243634712166150031662891236012974817990140900938441148613296463840604173172692656758462471956144187546083798090456212098828305292548267847821639121169155093755132717917160560775782231769793930240889236515172506210154676279418734217161476758690642433220429113114219071822111162488205660497871398994427512928589287022141383120413740604763398053299204492632912127315434522853817808382688867882627014191071309001682177831705691289895283280053365100363230228859115183964917023056995148192302784253979577813891798615447579360852079455253527924627760810104885993814271445179039109373462886235068014421915519397366573038284627170582113485109827017409099684629442320354176925506297712883811978988632077344425572912618059829761069947954156560607346016554593582182325531895105020150771563160688541397445563617724302802968229013943303093863528918080455027687163760817189530137258599423115203264500848369949788371460502229369797478364920413357039346235263658233676305591419685153401540095729434026435680063039227918125876260864757113640781154039647936666303086628485372804149753000954470071359961173956062701094441121151728006355790545423413968716655067184141330578554431792199447560272161044042052632710858799045667416212856218246499279174435535507483100771472403862580141927243376151602292635410486457416168588383645298937634857158392930936591101569588048124821544863788457081701880912987429546682999083364818019424131090087128390504707493965433833958544018442622729355935997803525794365487895687643731983766365842271702695155532489546573434059266197623840401970891660691524356965756925449808746213038195986598436535051920330395003170223363298834636749354712961301986123634129863043382840346843696822367971521072563261685583548658268223957827040014481669495522168844212849105615926443913597798993758069048243950821072961617042747436329264550988767624058619579200325344301786755254952522556240850487152779400367740866101372624573592677306690968237660693724093494708454641819585678212818551319988380281064456514832754759711195270373228077478728270401877637815691282676375191972320058358998256868665305421826551262736391461150693542436790693809534188535526941798966802639577122124389512076832661841869604545300133884149770597342048914080716825340299564196408202185644361692680839363670813235523076269854876290283723123300044667327644920952916975093344428567448446445179731405420511382870174175941392514479287348470519153173361900869707643547034464179062730479094697848440939986700509150862081567564403892388533282723193628323822624159003134572764222318714721196945917489536076522505968886329243844647850434882520882473227090319716232566792600188645163467965589860308006247408771507206366330984012470422217408817371259150717380423563798506662270031777451021382951294523206572915058921402077759581543491538638370647618988032144993175573588559899048601357900654220872838693310940875074009228931142763026944559084869034757222280993589800891005711677262311271933074943308180144346255019706827872176968223588635637143091033423010541200324654786961931645219356706957661910268496940058006911139385407854180498944671106311046356907687041297390167217361634922180349428863788307749628622968919241302866216996643576439093757065984980642737772360843511406230455691267554389660421665142284082138594534302698501557301888199673902423908942081458727904194929012616134991894250003781589871911405525270749514372253057032343592013900905492397801080238404591690953414337508024256381505426219591961717647721932340078260417165815088628222984934272341387149405995801916852050303806291565226271074758337351137684736709329209148100542899898765154487538358703008570766698220406671596481034181372083047340820939611509916149777627655523622326693200475294510792834664482290663304386627640512292106513415093656407100455157919624257213047058812326337278281716307455335355723746707964887452336116643360247427713311384260867125670053360195526633068958994419939478341991887180097206250539381300317121028012227457440701776463785524825485026191379697220286323447419817758752843521738329827955181105844759457039660532031572497513660666334294921579745267021629155894576534535418248996632780921269092563346441673577407672394926391742684416384529560297222765437470124473998166798111868735867316533342643788889150665165275550282263591250811315928323833289538292614111098071112888125809904315811757224381466840408072559161294619493581014727056598353510971788794279235578973007835907876722864997688235091516407525117625016523690747475453002793249119336077381252886477740573456038554280370195892798466548524172993010252055572345400894061657776241172324762813891624519304528134575427361608394759115381489351775931016816096792060291855863148470197658310215494921793721146143103499172182515885946404687472892632004892291613266914111553265736948677908499585510944620500107057867959340759476316718066145694254326189888003333872469928156177797742950228363293656726662715259213426337143168584359724282070104321929517570729026876242279183208427124301680399563440922166993297477047681533544018709607745611004719721866255394182406837969161096548413174208914485930493763027928058805480152112474290442215757546939063890794749070851685743183609687611941470876938526511207069226987315417331242642002158204281410916610117001889566549178403139421014833002854231313822533832005924575503467680447813334882539521745650705922247529817721429804138817220318182039075296891056453510160632272760655655060014614150863131128377293195821032194815454370091833826980850596101112381551207184011908167895038210971381764995964631310731862079129156103308715386612512770994451392874683823837168417465809178356683393963952560512131558024457748828520132341898621727302783702833579602342888027283049101140361239666343910925711518679991843203989310740533559830700471502084868540642990491697347849953832588728054607725637379189430516454574326559919298859405651924598954609153766073549215120385831087550701366733456709220630278933011719790663858387685905076224809210868922167062489386752215250568561212265665706236091779321594711632140390036968329204823578803213538929827850829075774627185408686728557651386134342510580653601670982739836848274940160180711388330332614977230606349193871217585152346453452562941182291801026110661620142021212127015594516509746836282876059286972812980026159865399505770831202698600180359254032997480625647175574826440992181346259313451392904556338030126392773717843947182430564796206712128153897812802264153966396493395317736860552070272051491881579579875483786947411837307017999762715862749331069565368362450234731750043538735428315702023814979379503383484096753121183701957085158454227092201880790797006346187924674663537824241549739047950243438532896808494131791338837382928948631569364902589574391346514656277568431567266746847295212652486112732804313062577891510720544544142108806526728740251704428981217030794643094390798786641789059726954017156785715778672219410812991407586019743721117782370512645685562118631595950642700412379745629557396398188635534605075349024079472192260273923976731232221422219454898852470322746854453891226705058930115334401898465661226201093376166161240463960943325062144828103785110643055754308391095807148297835928848459168335756297831808546750080088593579476392619819228223369382338337887991254845818578964043656856413557130559841210731005380816348115887754268841501973024016783898002245165056256260457908886718113645736259554158196694007327131257211250512607946110578908263484566250989467631082817347292183309777396873303271495190106307169952680205824917956783002630784163740542318143112165808760300067013845874932000357087777820764986793154953840805422757358883521636616875259450677024682103076952843304831435281898085347235494650093208085541589979603022703248120455039394917834137309931361992638500295009388175791021579305043608770651125379007988231711572816530476089341999459246369122915620285626533405865905298092625517892938025924668781550234018385789897341491442445022059404277358011876310369581109389959119684758935638822632354576986625161064185862152922195923985827642234792489213306475194707961305471792688976765926949892893936994966118497423659699291777448030283249716656090412100616576415428017167909011127768825600146325523073749394622683705757750814293194296226110271425002809677129157107218375594617399128524514617585241729124495424418836803485618429908362301775769929771600830147119212874292491115942532553374171214154391142564088789015802191176538312145492754105331221465917836447000447406996431568416351407408509481446366895254317602474989499420131796329528433724538058362475426483839714628502154754074494251929308869068707843927635205266839459935962124740552301723124373299347222409538795629941017315081147690975466493700650183718848025524996254351955905567890067996343439893014293156283339039911666686158868786832236700554504207897629365049593652289170792007657249930010037015681335431904188934769628698980455817330030625832522622391563402675800036591833641000344181665496934886019213195979840390289208781024610113686832980343746493812051468066978639742601577438098311008164096803915039062192666976600649544006190859164544019819504433633259492455031554920471654990364867011174218582598862157158961159849768066895549957584393005492838367209370042120786690272094746437949905779503206018229178256852380729017858424543459623305716211168009973957282263584985567457059822883260872597930866605831008209477884367794139756533031875012795707607614098435911210506456692654859587923270487488748566005463331744032353194288890782426796205309016947063472726868273743570663525078655173175727420375244087382240111326593317085049843589921443236008147640777793894404088073539451121903857193490827788709598439553355337476083348691094533422803925223342363945239487679516394469102566963147714428038148511178049715783886922539095341823763907329858388138898502426504029331267760885056665831070829270127315115075855184639817382960460421447165679552954391565424818020848157920321840187666655072102303190993306971625261529405883751851095409426928152692612131622057097112282645056726456923897437418556102513612752530832908433435213086715528361924938108885296537464112344447074849374260017100696472325506379111448495904028149975822918014659384156407796005672946351451212418924567591630724193190655876332152656237669510597629951195360256888449185484887241073383598616881714772020514983952020402933154398053447175417655723534027993171830423606660190532629153168744831943898855894443587089361444056028218749651443501430410613069820279338276395511554181697154632526582744915404689387661048483714431361523802558925623604405555270444489277861702072401668834367742484987034822832694933173067747916553913115719390902947501346358254473672226465476570864915667575854815394819478115662177230671343066527897295175477197442481455988460418164604483590358143502938592567908982685331170950672154571076159408835867456927300474122435745668344141188708175764528655145703883604949017159157373463589324019038684509151596536659273473787447954059163961731858850847478785629357879506604450705674248235677214936413761635701963294468066767638484919679349439466627375759617970763798897993047137204384073360248358057183188453353320569548488705085954977135701473197101010838320630921979582764397165428018643665090455386906995679664361229901111558786548245961910453111043446350905978337190956712199720527397951808591180598440542259989922298402742929835120463077288885623265257946163640856052510681742736457848027399833184432831984539008483295093861268345897036695543371550976077840120366930416831705104628214838677847134646209623257626718759044525301377042727221693193609710444633909838293986640233178251217004271887780844535814195286570563186683642914111858656612943619491359122991157356910795066636033323385075819905243068011186595562729830191322000812909711498778601471887654834557754120886864938240328769770960311551943321133501120020685381954650559804348269906447731137367430162880354621983207141810269660474921480561379184017163650745559981114941899866335233399826043971721756733816320020932847828006943179162095461989758893145195169455135712802594931839346815200356328460422142858424341653167268602619758449939466813036906899325532067824296837034172626509749946157304246344877616880997301913289629831130447309951186434552714233826945575722719665542034088426610214045451685473884027085012123116394148145897199729338077797092381736276834668183540906708163462518561465961763066004212434280139477528769285969464868603854772798087588543821137172330466374424738078466615342798285972012681280985216432054155247243971356321971139602597008396686167030420301263843194438177625454026951086753027625044801841784003651074178248125827475778955534083150843426228806572801777678625848080867690988069385537781649892826562797997801041461527380033760256811042665651464355636673304522904510076332423697639008160109148842159010623410451617806661328659354532289039540208675186950836202507293204427152626135732229179752972104022309808078055107371878690884106356918973234779633528312403247139242298207171078649686541346249256845874741003923544375585395387518165294698122414565591054898132092904602468350641466139766650450481205304290913622365464877325914783704856861858640186206633872026939793798484464182669205530622563185067296078116002947257057000584638169892527532166678867721823725974416726479014631367919900491402208487635033316892207477317423455553469083268015264476748376612361533340927974657010166342555833987587863090100081159422970571841865375236971210716100133077842565470719776056780011843660033511885198035984881055572377502450708919278624828601886958809821251493703684793508727881186403562582004323372327687217588488802076050979289911302007612996622540554577796400895272924427016222771983513302452273803403779638445570369095053009152026493804923059142010192747172960343472560874130756632010104111029899687300423250042790642035248423943498705789672261448450980655520537132971086005463446869771520846497305192673200034517577650010688678475443888605460251990141113026669212634389756033161665774583584756838361289754166355649281104950107345655333043229167763188475301641006877976326881584476117116020144254858364256873845264262689368546629002366367660039763480122741815346257931282690688463265626474162094948768216053634345956584816977061014158043217093032136897087111971816802754165977540811632728647950997660973663999156625513434592290431098753034625533553280601466844180839264065156819651401889356265036244936759207571625193237402903804773583136544494032753649006000468902050443056800194941963942289336323246947818248758885510514045729331436759426437140581235626575689022918907828352492027900365248822927217726035994588578270053176906066251836398283552420107408094884889691657505960289548077132326291375485779877190965954298044708104859256693912378653775006294811220442851840171641558673005903604812076632048591959797989700080332686211085143394710737867519807704805507856980395966631582632880918641476055061501457297590861067194840405361756200924780524323904431926871004102590969434248832130249504768116437050393690201264303929359465097883583070152430882509904456808891650399017241668452450012805009292188284797344021598365952400911642202631736647353737580876894365236070097986161694445686953415357819621638747917876406823399424395120985418702131087923995191132872779911428416040194693564910111796774645270982616180090276445460760250952240229801003756858038895299137563218027944402110471408097714254488537703142105018347514503558209752384265301334425896962913542163361058671226712216721872618881985045317297140257332220840401239717872296142657933010116666646410734339545690222161720147947555785367140677371747709136103791103857006653047224399434663573309427286307287437874771452189435056373257327952853450977560325311327866035949443066922968233614377910374557631571531154360868498583885337458933953996665129848129127538800098115059340089214915135279611673064578304893770043366181119215768129466196768940529515650962652894635257946784711594652849001057709342748353384811059518394493444236387156594193041646513014281225338788913762998268230819084533798240395825119598250780677729810389684799044244216019547803536410287060504165707709382976632282668879118247757106775201881790186127388820251142002123235869170756641162201683613997252139101161841570928867978011693081223795895844765506157678945027050780351335981618302727880345142281246176958526404112235058643427874006961481317262319137552761047903273613688714926324971898189740380009479494611655366167665233193698581069778603905553214227553010954837292305373546473932250447447001270912655190859394080324609126751772663453627206374866655215875735289427211694495569532460124258533603863560645910185178396222452142393162192321795605469379077516209944624586713795468958508247987929960289475918079693498639880195407029918999237242439991811745571312791020667606327550458970233203214675188922323863619724623939374302855155907320800881515857261463938643187742673876128603303665038826056617243158791386194593010671898728404055831787906808033731801011322304075579075289214475778820502540697002157554058191448961276853488638293325900991608513382899730272355713219701689186876629748670369043538123106447581924775465595370256000693850543509059547131622638569696110527472085488634849666950199082205640644502418329024095148633354355944519999889754518726038991607631132827543379721375861440367352582170794924002412697978791869741473355874508751523472378080746149539902553434623223738438648799980255707643372884883994101045280277382139197790060515635291261577045227308416012523144331604877761800630435713196426203158363551844328141665228057995564248893238681042579183949049262224799748932008264646865598467671756384215569632555660533278793939115760236143320725503722660365830959976184932131149120880780279173305592784017036281968809875320034425062494858073181456676418781549794751472303730163859784597325885647360417355866725762291872785339341657799302834540214183315007499553664731749202550655296830940940178668703787673701717383360545155110381345551697611206095432146175560164286774058553512231168400096685821985785340884656953849444643680186855047369780146740569809791740235744064483787331375681040774220093363693822385765858619554423680891193324132177314945649992150589771695562189108420165543422898899118487045993457022604280304039010495137602769618255814797542147735347540870798856475078986230541260882593754452330275492992222581822321807306263033653313284847254820765817057015211926027089605742113521811683687779302421760471475790203928532675187632130081277021710395644881200828267459478684679576176094697953269900003574240115046555393468010609807178709377714468883586616323779100705846004837218687383745742718935565013196001428727712365469690090825177587400523249919886893525788024544142334273012721734163714978388808122456162123068244370477320019619656691238578828826928028305884475688306427289241711087503244386514293998288967383745010125708738033119927938651664013995541365835673338100603270245769333243199554050825809546479427450079767903419367471514169289616590548113715648921798167666488226940923386001591211213259224668687813695048358016573231797471707809629739793141443736399689464378381591908795628399020407984886143703629316317825644498396471564826253100060830882323839752098857596313397536801054152073531181254154163927408628398974202905064186305640223336490496346367119337235251008391757827322644583097869113774439767584249808182104066803271883201083446708580050508878453540448841352856358579820963205972342925604111529314349203954814992808739332897685046600189618549833206596440475037329577964965260214403124345172563255490560315751118477885704077917708261308743122957413749955916672857262213243240901296151420153839195820582050503207119841047780915832108869795308613492025363267548166258711003655672309597694702497283893646282991684202782758290406251703767656147561652802121892333551042654537977242523194906886060305768193015660499492910286599625221214719156311024804687819478090459085660750851219225281006710519229789317344446005281542255845857118427827918154777164594610499572554472006746014326200808491566539449607259922353094898324664355171265119310642391122767265911174783654587425413233099523490725832232756175854723597433126591308613985456031481671930177535331898142492284196086106484586077260635231341715096342635282708990352087727769010283261884414475578886607929799720342698865190876233234624865254940427174555771830649137260940244649502287880763107774380323011174095580152048099047074126414030607484828489464737913326798093263191907151442139267254784720411701814022664514452016009250386055302299911470919709537779888758077052079161796866914326184752173988495158545998616698071971007009713853992931437338218470547919511142298658006613002591741169949711113690565130287688177388937660733198333520055115187972017372604049002996602009670459981514947198230145751125303774870824944585127180947768297307179601147418549354789298105219818903316886019510451262963856944268041357079920739206927579754856536071999886673163846591368057974101041549509824694757109027274708022664176503779891584307376903440701840821994276425511536306303849867897708924250550882322270164211293651051725721771318277923545176710278229644816623232347774200245935722403858265646805456748813702649336017040575769276009267964003626857028369497535335541332060229930319458729141532911750484096243164642951457432836740828097949927301509907959035854390673132729968257140757618377551215083753173491444287540441997734637307296733577680055347106340582829880504450816129309034742473934804831821294279185061174204280160560734936802304084543272979443670915681291854668988165102027323698232611410644372829260049695591933239039955919392774524616157579519375773511213650731194149649165060996402973843145307439720503935503545928387158201972374699946368632739036177850153321447157189920216551158673908027537283315555851867905445808499222913431270743878592821102653526835875770442505762632901045150222637685953951214818848384972809516166846364602922109180465066647496138755444976463817622904608629757432985460907987617882427399548097674741078903606340070105966376175838659179809614535992943451257833369837023764418169953497553871450720864060027336568097230876842041902051958830295349795809529501682657122800468877292636926874921604055862720634284006611148809476888851842346818080930669189771171429182966391710286419154907573089923425322936126743230355313988043039424025223820060010572733609555161992207239013681659616354427868358420943123530738724409666566175214655292927749679365668272602083003476409974011590942766259103085825361800843108706102279274591476732999147414168918174087154881445751942483647110713876846360724739344920177855838584033274330367998887953999426182901243218383280619767974294530300644411563471628107579447493283424401416840287090391459122521295330539571071807986122247293071977015917543568557577440096801405016415133259798636793568540027719533222785854486961518541139039976289514629222053667486476019650113325160576755737423680284243021986040052680680030779254168684436521933283258265893985720588187480654011744476864921309570412665560598928366461554791345243442138120039206814566575863433296320185144796759275071767816541351820128932220517440221602560033222118404970978947487499192789990396913460559562478510009618730716940245109979218391069103484777113937678093183724167005308310794107841097874906179439143927747001568698328945171902796577368704596423534923597056367370131902050344611226690029278146146659480877044959725243338949659904396285733297090901688427469664018584051531981296187016029872441915233920362394368593779378790663133375062172387014809115552029535419556773520866449267127661782988930519066532567713962417765943690612319902956126511398304158339993014847055549761515553254446695993515051165058308295417535499094538809982150871276269052230575518406027562761310197823413526301164233760065563462923366967043662737182146055164337325834712494488995493815676483067971687534629445726868646891008556626822900970697512578255534215946517053677093073006633703142345770474353644874370616655631519536957652401892319564065786103721725255187704754188048852112597190600206722745420650722377153374369817934602061480844682761138408703173736278528856946965732366034207810818667356029458134070681000362694079673816501030535860908452747460115616727576751918619912305994761352755486949188901164476314699867756136627074850718191043330887060188055232667482109146734903116833786322592312375971398076561123481680050355004343891071504845096963918545556992183297101102874532247018703323117862961386101676132822031678688278439875474094758336050830450345706606703620704972213756039311804901374689903873170843951558492108150046408960446995040683016100035231201026558667328250851092263832907887544503469786916509502969820622632310173105537911903111022783692628226714667432617094806552177431505598916532309349633733407478392758751470114842491148375695065660181951279663389890600636766557040304648618717837726967798395427922764197878201122435971888244939587467092008189992067245398707600543560377630338254351260340189507399446950156168871437998225680506000318355550578192642629107354651985630460963044686293329364724955820443668214129677891712066712556911235095803916728769446395639832185178278944463686833781277817905937449575027437833941880958802936242097564610616788022909733042210271747946331912871233785538711082787624710234004930371914605683985274989035815769041419203777617249732918209237181890934288991354275995016739384244388931327841126081868880098473642896575360033566505109649560198315538091227484684933572207167641855119574870563860659132109412908247372538119937295841446923360434362381620606317844414347618323902615508979583188442134779899094372905558802958890756279014009104704697672601576135625320077826789356890124620658637208575239770909545806165572713506552760105918197194587934928180206379582441678087334399671499271293109009620447344119182617197345436035503278619564883262388293468175990035084720662665203615630812797338897391041282757186645702663081340196497673312750118789234552945272352818658530522305788375808288997088927164076489401603748853457464205211378958111730595006291069877059007783002118411314581117861872092307026684988629043421482354355077096257044100063688350701232253181647318658103383884584716285729011682852329718265686626187040134689352165231215115945113685036659389914957322435718404721041431535741055688911218415635663967991419819078191876469821781206723081071523699094897991098049956412140143842367355214656393779931986463045669221765584434020710222340555961952886284123832995007517222765338190831604412560578346714774174754219483738255248718116850945195254931580869290823448588148170507610544780473847681725546387114036301974499037948949266959588237840672289612217360903215432583366963480953790383966246551989103170876569562317750751470850873554503431713570168647675885286279731346055564451768752855015861715146961804556906534801971148615296471464466359934327194760290385270379018960350105410623438805383673691260816999599440046445467667217377205521373615354620140898674106525423745264171200803140216122042104195046752851548599952149758895696277913148969563547559349633858528086693241248141020861152545656363730046873443586966849394598639046872137187822089248237020714761505749236983015527859014689927128603149365380503316064617221742323879931943561617961745081619703511043343552909672147588335804019000265650155161160988388812871339549373444036986938850751652000854508219420119583630610451723482913971889484176515019409010139458879452533172265961523144073537492688920001540548075828444460390814381675094845164885251077824982656922084324194432776126126559342774996713104195109281643997106828585912782460613615687536006534981078370953350980486466263283191445371185508282075194681521403910927606504535671163875181836002221843937440848330310729113774218001112844612329978455629704630989999653327698099135536336321135138370206278984231922941698532937028392493391134931527447336019797344453881510720698417508705638981599473671573719188161973561432358946355967404702560479241152460191666582458066575430865199289310038036216638153892187485812359079688529646062790316652686743342062322044736149818926876084880315129689660226645846924152219305912585549482625380562860967064595373503971010065837678489509997579374487541766774442153550434303043399075997198043333409922966150937023546868159487300735730114908288447740540106325351884935265440976693166728231633307448304907110812055331569374839329935464552101446941314959606818809114523005289738770190281991816362031703558518517580023461674639722392918082430855956293205472603220910532674930133800016791940403363184101953549063333295036235295512799588890663733539926741387949384100309820696437603686386887591740547655970081250182749069991044168880422566016354134258405131428255800042534933513155348474953223843827452180500972401576695534014392512204649787745801851146434531930482569786218545717235555917509857392001898437666434508386456159361879906131317305024516113938943049272019078625830482645364349798366538924783243911438321474866084285015880784986718965214973475368153206725681119020822900689301351318801091351561712775859326056095534934235748323500396795054672028725324939583555697017688962635156442029803102467053786319574322854471364148518072957268608317846953559437638395432968135759701366115589768858831605570266476156632442777435374118455889740059933619770535071269388382257453375627021068092850941581404959803505371877089593106749935062359799190575415207162167259199519553737962615687730551872802183825434687125729204550245168371971237570658946470123335308417558002084215385400106812426750309842003809802791831122677305151128249553894656838742169426397460305842342151866443359980316436471992326579873278644340731901854741385725208630816368262826559316792782815018395194644719311172546366666271495747716906997282346311547698731020984268465189299858262799707862666290708933371055131267091786125908966326215040516352864754111816976431449593525977647167962473707671814854336628564107653031790799443474231446465778301225505371465159793867267568887751958248272220798903538937841748250102643270452263162741011105677311711137732878403400018921083558452991099001770737313485067385057187290185160915795563100747354225541308688066512278492815986415635956669685695782629068243758974604020490757757164793044731584735939207788275285889446799144025801228052071431095809032321938741696004934111060512239931679019389362110512508867458046774291623881833327678579406951822453034376629459891519108687433881653784128217805273539175168832882316421979766273700218347388689777353102602175146675082844827228089196492699435366208070819511450229064891310332315931176865980490021689770649774835988397342419227975712430969926720722185324505062808727419163389075290665043333193103599409688031964935498220572673247636898886996010996126732819947594000690338065662739256823998888484723851313101544813272634052849945125857138130838499310538013899428248511072897411891952054273492137627250198012798365226926940887137339234247788258792663387743865707823520113307913588766697660045045946735863438634226451916154879007418846207873286809686920241608298798698435708376252812963274509359631059814987088717584651881620140525108891178148885615878121837514250328766292984692271187065500336186393328779623809238596158849342332913330056385843365958660515421119242855236510391591664664532591240336482032963566711676460385948423010462804432390351523568382176565695418552791905332736788258919243924320529818245897027799387866570879756559568108735835455612636966760411185309396004563290099033759339581748018427897877753242117856204537854532477945524275893909254657849966648862862039403623807153583165202773889349427294850434898597052211913737779758647242954835581990369474319581891945424096381163713386912465694742228695585754628667171221780451106776858538392771662413419612214878984252257649968732071370782642107477036087675541822615563235813681065652141250262336161014492019385685937950873812738764972936521211117912584606682487845127294702756079806964304291120916266953110252557741229571073965758049704541618043469313467568749721587405606713426055997253245387349279037411431439690026013371622781094611802042023184874687629154091878547439345610836838401630636625953321825834112267822368363431406489197788209996759170664310983638343120695033059880219998047582850488043555214504151677535656133632207743735378403876962906330303197897924017266139409793075537465161727815189024276851017922130625667792749765897578279481317047140001876364952995666693636262414127357407089987947489532487007088406697385125911502769603882864290417178146053223700956251002871141606139529762593287500873321134249059980396796731247195673946428088541903922430087720238781470370812955539944277440359383470254317852990909836949406080874112841461367861299270898142041052874436560029426519681054290512728624399478528476686452623610021114002731104445215310327411358410411729256865788028281277199306571668481296184709834442774838520256902014613020657472542326961176885216082068703563880576181066792156818055671654689983191086857832803247949288129973213440984118835991427569601704136203841403669073069706457455945264164813612169104987153814197799720734913851787317489570637740219916263770231343782459817443361084435797062866073308251784931440731734342031920477218115071009314970980161491630256873476340826168049812810954554904567673749498648565179587047488527733529375018669400630568194163865950120475068459844787857089268724192225941533502385101551381511399770766868623935825450537375501394327875887027596742141788604356037194399222004619403180487701189195638378225688753693628350063393477915557148521372947844350171167069579410957941527025401155867399553057329137224427772566487392549202215400584448322435612567899512999912281863054356291739478277772911031659212011982499228009677074296273384763998769004691644092134233861085336169772382060019848982554530219781164265266345952014022127331704835649889318318277134132224882530118201342618488964051190819411441226475779998838628709617395907616950533926091740711379632013133513750343203052426934876555599902699392247381619892877868122650302127208664922522562212564076391909476677412681998369691119175793132923459642742223137297595617321055582110432843541836750060398577872669985061449141635986078239764445842812486977783014897981773425372020370698982205887027477622834314611464980965787143212929825555266685396139207021251372070206235211794455530321784892777712444453662773863912674602596184540301083413409297818258093083859291222647106502441024301095168810635044800524749260884736432258489384931340935472548935656542758072956708625875140420031205035557535640687185623803291547718894928372503044038570843601354053000657706864768513440706288527094023685482221067278119036547957536579381306114173809948631847723406483934687419015807449873712677716185704620767563768653691567726074961027217853943562030458667991986592283466272436342234057418717055561469497897955535827430666417536090989212545837962878344329263021606191814376269263688996438622022245107032342379739057304872952359478474185343505719311073773845633787250731956516756024531487602661892859125772754508875737457810089169093816087697866410395190637111631901363984321145810199828958852005676254948053637779474615094597592964416464860806421811770299210721748730604533806593112879137378347328027974769055275930203898421952109398009858436723146008040417519347179318271009644135837538578639079644185059387174010647703991862414970190800064221706293943031041675508239149293343126160027709667068005875979655593540002199735877843686620592669152397305492989243686011822139886272576427442538709496225287072048961387200853224072921237725427453693391940446009245922251526631197312928198504897098492718214494261357905825859331521647019977982054554603786165600015526157908149341529651024469645807738805634286969176979225907360680126491634388738112034441972255776321424004862131666088217320658903387230426844054527704069652717064475780956862184955039880767570031861301861651526577896555872229840846828340044354174121817425111346784049207598712266378756432754723592807356533184709361089719169672341615406523486224758327700667737026144219580888233058048921949342316575754408117869290887002736862886339559329986312198290617689783157619945606673207524489322077502875852102955242136688300981261941321439598323987814226869432085339293477702685876910077601220424355381683601524634279408016314425151414511312781877681398271848525488337355919942089313445894951944435781624621432353647187510809097409834488081509708676043126867097783435250450075311823013881571583643513407819018434124118361568627378731733100552039005981996785744370069408956341928264760921263138927945998099187217360312968559795769158307675070690911719942316321417803918800846248595932787960262041374911632887912759707152179666319758507923206659720335305664759654207740592352614931469686036431270255887026937935453948825950689479347014856455964909094332007022371234366668926577616775497436604056058212111198213964377568794218362082674758893064790298443532319047460856376410312064866044008859297898857582965828582131872769542673633533967472413819536524883603141448841891027889465135420292809715014383057721005500182392041525226352696548760293648145344454914653018202701206909376570174694662830745451814763037572793779826346513782705861829935225812768044391734466938467094362044444038776205251272329153044117457240813398968115686354500803782902152941987778882309481163279658354443064841151150726747515747570285121215093349041381751904087313689987485932400073608866560720882109844132457860610947412773395114107648423740477870820905840921354605868321372405691772742067532573696624693050564809489420126428429007845889953788600624549807910407316843761633460390329090081425733175491778631679665770233385894932600480968074268750349837465403978197173734368117562788003476465699594581547769047634499757217965955986755315068301874310964956942035079802402718704716332416353203526189921427888191908953596360094115500456341589644307988673481776254281099397292630096162728414808490056044253308797287961315845659550945843616964817648578740905662396758967436353074380755777463995678219217726333653044831487397087625582884916364288986396733728496028836675071653335926087093268950305814778760834511549103065649408508484214477966903417467941787248981584611959135969359481970458422548489677997414461121945030003981261298108114614694604015211905328367913898558148734004619268928888204635795875433937841421236130563840699975738028023801485299468583032279405539178245795284309482694153295558767470700786390516678014420917032465446497864129974895040178933586209052677909304972898128595653210321617844118878921158333720167363242289899524891739071112824128313535714157043498286467924672065709389851301009230127790605124713001759417016388260001122541142941699859038371870902065516915004292808490661841822763883634833817638413450258370481241262195419426564133521684414277284584257076230222937541641067033349709774621732647889779582024981786160389006299105706990425391670423059296777063107863442750440679407236871101195061732284039859735510141512339442273560987484002966292227776319424794738974995087649181807917808011085487139868956966642651417155652181763486390666738476979462428234871482195958723909218760652786891961895538685193255455555335588444532613975850077187090134287374790026222033274019114784919404526185575304809144805668331890356219363661629054499216274895836563947681257518800136860367760031436373371012020621080714555860542596330894546203644804279724266937538568639173809978968524426300039533878528219335637600619763683276465378075438105643262296099711495571534344693508280901894148526945459563042031681479845244835831697132532248080543725936128994226147210204769175889753411871243634582121560622888100124306547197184792844800812867040695336197110123129217083863027050960274386699114892213885460857576198400194409410157015841143665899940591085202051419358408378424063863983057627072524753501416856341098238732655077260526361480956611354501269287510513051932347427878002550239081140374011492799551955955947303113442119727421374153951401539952932289070884511837170687472009832595032196469643973214807183539628520345892409652417094379433905708364591134213550408469775662408465326554125505480351631212858503030972985492155943836548136399669173122487205683710091066736615638271993759194290702852240423784194537473362733961763059202664235581844686347950484015527237080673747388602924947529112774266082543245078587826834540994138303073822035177083539087022160642858751058382220986856203090860888733289470543524471460442742625221527155920735526459176003002482622015736050234942249911376270098841962729104216269825961980358457925313272293488162135221221877786852453404956733231287791155160345402066627280835206762321934681924570404106553133733703637719384288302935707972991730258167847610167501530075359845573554416949171284994728899991376428210651817074702766774133976887106096388034970004976632662131144185416022345647150099200819747001411143504027055799091640138948935725587411084015602246192492859743666766618762994937822337160281093705435690422514484380097075659036285650536709923270732156324816851113169046238882146740699108592958053153803873268707824907094291292164282105271285707658789734333234399716313727725645684041085602333571471093848102239181957322037305954719669061205330652685643662847853042698942875249055828198014427734509973393698525296009170423425755402750326768420981485082914323510090888923207712040274657573695826232753777816915040929516450322668859556540103573197983619830411938185959746735266083339141892296973170672782715094069614933658188655030400554676056546939634022302462772254083739472319294201907677303194929808929472669891006039399492650084087558232380249347377424320574854883758166400633343160429959440517636778127762852509373641959622298720158705152291550432950791012088942053327473467425502402450683167245640909369165578537447682412594465816361460092011062605859694917589223271631774300985000518149568022203880231877866429117820928080835751637650248880624139468093425042604497095681557442992920152157919275379581579091596978494855159823347055391674803184186484993412324022429913352175827992189108774210022029320115431472447272440220529466765778207542926012331423256000947434502147199637557472389915407272419862392254225788364406734558287641173561370326355535075684468257432837825038733023687085336137133102864426262415001479587293031425966943275556482634902593481924170467089574806990294468206293615605018616684236469381910480741379409104584917474416862990085495238445203556737408548165629063257274124204914637277259411895068227172496049957107825456413311238168005348737859161677299488008720488603733853633633792026952163848033806303236079968075131745237892192859687928931731455918635775416676431490426372168756084243400488819931345593787392189609768712654923064348222378112253681005330279608247495529831248114959925450457641481736286374191988814620899279336405264127183444830188127807761121559911197182848465273339348207203624522091330470751307738144059872865689142138304950007777437839404494867164493161892111082087115226548228732258274456286929150470719501752075213489678067451139920061296016971849572366564667973806879188840177236520199958076058167706596784139465912888415745873620411682478194002293655525786969177031600317740357737671012065675120148284663477645450002633620584666962640164797348618380669555770653397318868020276730267800734902672136559722185882039540092438121078834097975592965876873942858852404764413466380051755451350671470914658860201426147062752593672241155724817215645804195836721435179707982957715341641225502989628309096758146586904405696426796565708155586812479094505037461226926138458098410864576105637390412652608747170091246753118567553488873672133748773800309874961242952023970752765367929113555156828049699131795746622069950983557441332501387341674538038153575793899081812659987348614843792568110610751878487463328482733755677124108158153522789721038552017377252831951689511637840793898406441442611731363625649019373281696223071764556626347640579981568425977406513400588646473683076962605243376377646470606234489743092665117299384488085661601166488528101631237125971812377230078217259895116661404881709949543929779904871136068610402433819802126709202861336920494589938039270366451131734070795119590933298727039604037111846662499187313502582967525107581406565643473456539790505219380331307215505079380390337581989436535149288340794068593483527032081462564049952519196094371226885655644485738826217711840303307252414931562126379292083093511593429218050160640947216410783185039996854723178180099219727042135396455395201104432734799714416790897434140440672369972919493201595183710666507050418998564138296034831793281700766135657595319058446665721456918357208025529799889353172762551912525260026720618659674784776491463790827676998406927319206208305406788721064132331052381084447199046895900981431706582695671844127767314367739156178379381004821346913348294477325414500418536136578291245666264372621134656398457190091297497100829201670731899471879096693619800035280927720522556010660692782477957251005921514166401541160364584905652750774209777435097747141706580658433518730136867367759647041564012129559043260014141925724460806343631214640650448857977154960865140983906416159280156191877576051282964058390020312112994169814141153521148523779885532892807195987479928344176161570583993361521939238197445168762785959793241521049271832094147588693347330294406056892012263336738039328045183056302565142629136002462005132643583503585432224963305673490231192961840581639955835359298597248605509811301602431099589681336301543532544610813869298998766491002787050252373053615263087634263594275785687252758753955492645593727307893882563448335868426419896861554019399330920363431143006701232711120975745708910159103906556542967764954462209527446730904637744908309228703011136642694630122393859195896559253031639209564710165362396366298243686505205083396895458557169597083209383127351542040982111082832995123918468987656710399253595720871266912890281159413470576766402661581837089002638258429238546894044611631198364824391472972954019422604746863226785495989820550007531416136008144223395762697207166476080441857480242337588106779411178532786228969051644045524751043322116645847763383422148688166086630097298195364952249833042286157405587080398125749113076139912784879858366094772397384931007527814292931393860865609125052418102313201485746463509390802802376916185106961282993202177974678737241281167329230552547836282295058875720551775069929703201478597410181816296350807495319050919227832044858671764641737754856838620350706745924075654378992385131638984407866945189720269593773419480450262535535437428267043368970341414962837980159952957794984846348504305298982750693566424943635257443939161334244238075416538165044821980340123058088914929829875374762203221561617618660775665196602534464976258864791471454146111269331954482362886426364910957634230105816616269237159535729889360213515238127128325531571902359076073860154171396514353149067740208295846433959491902637875336170051299180631423218652164477049782399846234346641654781003629676444016062183357229411652998301672110159680495439790455805140515007367222639139129008860279058064810165868998871795118504343064764540294647131263660495297171087046722267422359543524373973433274332715066321156056091170583773844198862861989595899596779301526605687222241368721436193272976442345798223498481674737265427717981359068309298686324489634031561289748513153231254023098195695474414184710287596667078486665204451079421140948462356239608064993862743104246820663864037364272491200954359003691772781626239812313057417493087502780145665154902721280881114048623648921039724504416430011015748725343190057206672554364414383141052243536081184597392216860022761657539266497852442117266649642760350025573541622442974800125783010236537998118269067640004622928807669763067395606167598849632708027435106641017001462124781213268377522375823517083324886864723620784415759870792527823855980947258754332637710212403107209905601484495725712057378933060304629609572700563947898571648172517252730226815292599771920817980171405878410410728233750346280787250871945833904649052424360200627889510217913676442205169183556697685813470541528602400022151034757952223813258482242495402743336881014494911365122288776375406173807685877196588694303293512795405970119748314252984032879093271473298296715244120688873246822990294367238437998178143639902633700199757654124184377505623638912187903987385043209131793818247662764970197058650504020244761373088041637701446866951223039064555458141610675213653073456005287768656913890488039290353192741199027382110738226757269554044439812395482849751654297600556617901124114388866558775769242880869874088498986912236064462364071403749302753707592842189281528470162013166785750074293067834794009414959583071577243334062033883900978365750104683873770657335710351641236397932848220886407216724906288888225059749690937917035931237809165131067575885197636632060962275932625896399166336775791490601519641594792707471465586792904667060362624565750275227623235447715719523076949920722310896671829714587884855797263981544960420537849579291801538505172714897635783027748837148531546037331810576761393970557435550546987256866924566111243006006550723205742607241183250565064141479855999759723691618788110754951679421381369031945558537945463277862333095232878515999459336496266579565335377822866599488157001505852794395611652306260200367812332102034745487488011323177408996742416890758698382455722784852313279436616362792680768439181936369128965740381644046927350761145996786049709211417801623599381545062164222441167677329950860333988239502263937942721725642661472457779885710337098322716275320734832219969035374182511460715612287247752160742331198651585935183093631328842163386333682480834371962992034033480833283452658496236907367570412346236750974841376925012685910254337790300723459610881314331448859989855001137530983771549297726561829420515903716578634957316992630777316736147126974175108062436767022802599967205707768201761734471985875400783460291325165281706186621464786249942771998049436016677574646194622054428441276611118826221896096510559990929378344915068234048849423507061476152028238591938979778417237331576345323404091273453051701331351852761164805307173869860235424966735471981992326286080056697794795001241729466082861075661797126621803522872317395691643145461167267407784686703751841319493734519961362935540751003456095521902798132916667684405969118403077156172737451296704697947657519572913993154205302337316709341929043406345048874198548797037973922683235997801711970395573654536673868454967105869371157084664995356272569919202996948199498746021883630577299249188918928344527524656543538919905738619797711970275261735717566467676354030857447837999800868251729173900606099167038084334861542127964505108133882532213548656738144466627457204872968669574864586048812608545017730525437411457426508800819846614216748532662167407615257133334647033290224805855794337104329259776247816063023844113656196623910781877881713585130390556404367130067284196014094126311684154205110292743375584289805498633342886248670734793328485395231373134202134628085619389864759953492156511383541793203493135385296871431919155395803510938356996764122980565749831183559202321082277750687639473799871031742652303676460873846363368674098068318495325230325147619166413387016081161905428993398741454621970410460200554874738352281678555502976322819072381872732256272363631939004922446698663805193215154907395023638820200658819904946589796871971580406805815968870800775273638022929828952557162042586285113848463296229138269991104411470043134151283428731272377808585030197451270269317805774307820899461614280765255984039428568340728414707687364046023683748041305267452570514031226119756966469938576846718331938916859583116329332041159999913835655361979516680678713702958620550851984485201724786360435468094866238482650606174535146805008237704883387787088877748124130242268272054506677659528966183971906468399389140930195303214840071472063323018786977538473166015071682478475298727986948547959029962273794933900282134159168590195425174597109587228075019221234086426983408014751487402355810876291310679527148295267062731412089006897895371636935091660759609613497333977057873272584745289385729787123831690681575434473719810905332596152562006031527542308916812420563428832836247488913858235731193064090975922624309136973927613422810760875501298741132563731289881648766854058154957755192179422568839251532377316414465962987834265556027920720214413645687895099401858094557773274086742823339459542522088860216372489115185321038113752409345363971178684716119548889218532014215142351077993738724749405119232526835613179815396498029414559440379056686315414760308832080961256206177750579698030364049329784589718682850462679819453388909879935666773379627554954214987517638836285650194184506340606854246468344270117604736403955840247423182399961450976882796413040260912017917315391530885722555351837186212964911206599366516468821425728065038234054718054609597735029640722550746269555080185087446871124104824861639227224942063479236526409760670358789102556408359217356317764515457774262856495956261556179864894769781732415665165644391230987257828525580458674964527387871627125891132254089407831141254225188522979558285188477873421737914946304701977415642254831132402997043423760447902824920189803558959732091622793773083266267428566749704751053316964606081096142086199014898909352421755502684861866207426104864623712500636595044977950971641858449748306626054608400150722844482498101383075039919575814443815099897001582222633672209652625016211316349755830792951910838583500999049718890788503292814567598846866163240773245210473997323845592138945100767466235322486367450756057831916148829912358721413311035088742447615376836388259609780411487074416814681604266190628556739918850766719920213783696247083444723643583920763568954557177381159579567016615650754987684699543073022471282571050549865791107522487910327687385920970128359809732629827683971116126637295437798564177156096507638454721507303224139794941464710320646694975085420443696815872803532351693913879953283779472761190847085948373326270237648233882398070609919207661511025230514033295681365038443202665481847408086102857306744363161754175747018366567046211582958700657675034527026464140408744065059332907551516168781396530109246017431921189050471003566174796666089756867081676751575073777412970697020417195835141167501903972854674114268928404940482467667745623665675416009424107405717716865925951333820697903713745978991304922975354052786171555840099271222565763438850681049305859997066232633217913710019453317628295741490738756736377761821382736695528947182307928636484325637836532627353995923659412177017197615573427139859893367613154669528233501250365067741168007555366434794823003671571563857860464111526688424724598970614967777986445673132771265502863875617538731063470616546025411349702555784100910783527111345758508851576489881724901647683405055609644831340891657831390252949279687295677971196505333407330316396202009858735990316317500575763893417560568892017818182858321038612337531457676098595802067535339018426892907553865283796122454922736856684305712465249655052829233963603545764215946049831702557817547411011646642576775799759487272933697939601399760355281274387127728777514703818778645275477741034475436385356644509381835195964459822765437276759799005412930759714630369000762646974842856572758670475348688206091331184521577140033161238562756803435902716546374557912897643944941279972689579395776982706300373593610041792585196010916429286132644489450342346700750085884140068011111785566985985233802067908387484600557395739007165082606626995287560504331744388575012731100465691222103720993047195418963640082567451129354762932489414836331261092592131707914746046976173013475857701065145235722273869348478055954153705321770063246439828175795016648308325790120223933065341393463526016717864426237867221742980002782519383193605846601923894906171593599610274496225730120873547611487819512272734100657257589580056804837682929580765576045258771080131574840529499678948864133328103168944509453132154658090809958962476139804511326671813677232423683530933361917388915802767036723626759290988979477594873028281226893442169645434696542414290534846992874192494423026368469820243507868146316044393444950063643911718163450853195008175953789074098552387936084433905746027032577757793428624277139638115561372982914087809372452830479776432423791366415906951081897528553929978084019352219498902734046300188495332161671991108265260149531781148822557493325133923573483913573006947421992100031646796716360171464608902628560480788777420280647714659656838865288429041756331123863166991727731911903852974400092594681204802998945563080989431855659567657209251258936179286496772661638527758814171237508321614695279837006029968610052954459150390461257669481519321189354329748070521350593064462209567625214113515479746748365066378252191866814206871335629922956993959146248383648483499160504707168432266500740798212936956511901013414508924429014087360544698690565079158691835495846884236242797228447627190221596596316919727256869341530198892286283877352966988457549994147201078574656422118494765989133809275018889846119233346738022814432567949406831909947057621794033248059542142996343146911475550142303225195137936179508890566270350233296538799215439978812411504944841083041430926649442066938739012614321789938861753621358138267793961443801217094366825256754780500584243353099184499969315025539880874131867523017697497741080570010613501487113387572487012284768296614623176832759423347018415119965158518255163893272766971806987798774400978941410781930655483786475353675208273463364695873080661576059614587786288378967463502857676629871277469610365994775267511268489731780160029895463159206510827512020839868254205673051507381667017588817831234089668526738688249625754167487523840692097066792390421541642805041138844180600795951860934664861001381817661202966907222681755936603193423979853937318258298412631387141206807049926832492554139790887745192673541448311197552274461237356256235892539392016005162652881048515066257748168643852730600425269312265404141502025871109896336768296381860708562409511374277033748323289898146668835199868776465426157060514474755787938092423667890896897959776418663086389033864618093844886685838112519421511940510402210911952431795009932144220063378727733978621143368043025471983633985363741795466711976299977702494295132813896654275538014807190532979369350022847369791448208229662565823865953206936732579776958423672857165939452512022914154041649267902898314934443149125948352603093436820232806177310585138341375790645211840379370778775884881529898097722514267218514584940878691990419154836923202724621067003357969168246228569162896861456032540304634678285400049946806773759219885428763699440896952492025608902836382357950301964429818120133229641516627699344153540104925492453368261036578149680728114796541335004826871369123326953308657212234645006644171383777940084020715779419848693205734164031618364142935419361700665047460970560817386030083572452975706751088383027888498841336027429276821667326533415948696631385516489335487078310512363476738057202699569654536359782217065496471139570862882298027572355347921962128264271277444946900965234801185409952129077727595941212660179075346150860383392388070824906856215415174205044261567480766832759451821126880956768022141439375805829526356349770431120363740767483297362345551434322611908883239493028820437896077610423846611529983549085357319921109129250887770841981867537985923695800954898437251303160865155400737448278273534530189534389364068196463238351672773978629505697577950788839198944766896427457711541014704523722922016281625302196218010892111166151261822038397037718694277670838678195683546378607780898848900469993310039629480141443180063215077378415700877755492533192457194780207169995166065809618423769423775327396292351852602513973790178244807433328458955239395416603412349989804535067286952967406711172848629150290518054320713698581131717860544373426229097189129771486523546497976967761162461338367699398845895894958046350202607874386916715938904913113042863688573568663707439562759129631538682933145511104726391277451226369438715059309260699053475842933558831705043085588267570714522885018463116290320025814523171394277347674798006158687728385924062505156513045767174944695617553347951651907309141428723518349048938639531568106308676171386889672144749468603194120302522172341744364459697925574930089970534838162355256036489085806025651910343776350643063432051645312481909970711071897036442242512593019284937268230882346557278457482375356463869953532103266722584863938523362836271048688714797980790440795004259121649707232193581458898415743314320801647259572008277347429744916653651183730839049892308184017038761554120928605831998612353454799951537636060726071033758520527576216259416746331627914736977788210941113853977669729662973935452309761196661847327460503843367288785590721642322785775491025674066139930517295061881503828296331023114163834038188501628562872360395048171779946474786288667045966623647840030123036750988239669648978187973331700813219989141163644395820553278825303843495294331090609424823036692340143332723560904945162021835012179056151438707453576754563004835983723329457972969085178085703633216796903166053425848464140174473023489712888241992876159701822726267629319566889387645056189515304558080390885565605562902403956057298721568243230887431747493477727205806283025940651888672950899731735156344154726986409181563092678543336797140230241507802002369649822932400264159333351367442484528587023251923480832173198216446352567660261169412610479442083616124045329825503091058516849386846474639981218128643562612618433521485672589007274453506126541995010913995607738154324927610419659968203029674208929367320273227172229530115233748297352784592757901307681087192016820214122962850992945166188436251679742903974297863731035213553321000788744992995710104599261036686758310227784843647180320487792367670659026280765871158553690641284049226275513913025733281969975490913162248292063740482407830343216002780414355753941852990029544691589894168240489193288670584668226145473160900453610154844243973399644126835997390023724279143700795774558589255612612529320485883952332950990865859994873753595166829133392324710441196177958573020747427910232129874906511487489963766058825856102781693181927599036875816285776923124363873274458480633163902327259047050420325543597579058596040429516739064200319559344960534471064535747500586099934521983914471887775992866014519750800620458197041693408964290877316418953681932189908199593802487774885151742524602049937236528125413531839785315538091647457328220569593503581563524131632606246625602205895880639523963844127334720113752936902212070885941264899303230914121978144200101256792786173483244452823679647118357294849186211377234189047473438752609682036822935956985488656626278148080708542347805665552525249851596951845202368165792302931894249006818900016659770219962357878393050996061720227152126381964868135565893418274647063059445572784547328010076599156912466271406076274185360045516900521119347778474871505774182867588000951656158857045795781905268088240048904871693961421669862170398615259323138174299256518528480226698384315403912540296519955779286702039795496371494773086432648912399750715572266838905563183283055842057012491900986295162047196913672072283106201874590311078441093659068466617187789531205453984969177683388943377092291810132355919204377071780524658478925267191498320988045244443286129258631001380759002835978184788022287625073019137796373808302692242205456184381101466946966744577858390664909117364784235817559214736337571968894547083695085953920999736811005248134727455952542114796693277026756124508756049695254426152468865886233781083140932597593737296822360073704739526959065180290601564267958720860415400897621623003669952726079985022585814388184914455172947855543907389909597876791470143542845823924060098718808942002227876699185188035087700822741935670324611318957591214276777459446344338202398682069185124877343922359618021313937439774353548156242022761577048563530171125821362087142902538012057992714231468540879574189621688950747378462072125974285821902258776643434486617156242109368111770723632292780586449554632754340145299216401596485896758943886652837634487900873494263318083019974667889642775643329353563356433383393381840305965273393797307756641967929818109088059923801618960317526944177957316314089159481017809239350284952183684399809460171270481769015182393545326508372332194124485215108716791150304437102092914212789486156420606757328545853326766738775215034195082853397853686696979068396508616497048442007856663288643879760128432708736541027858284376449094937195125133783477554499458666329316459570948076306685521713497239031022479312785506045116752524678043026189038174047844159274306417523702201270744423380233799532761666349712496156566154490947518680657046844729774440989961522700214552243622949268355011852381945034087378077835227537024549934370744325844240140320831565348346141141927867921254707192924423268790825520465169124837695558472219452844371385939680619213764858233601006737734105386021430668814027653968237201258571420498177196170490430583714695353765971047073105327714583598185618734801236251994559136911146543022688581578733914998436397889090254844742055960447739945485022338940474210419065973978519669302648598415417291530145558427061147476914987612234020868409856539622724072414725228905290821096040407981162298865298875878985267137869791203578351541888157121557638652340012386526103172112496819469630566828868738071995842558309945131325725686565566539583082894317576408790701117336218443233866475188083231527388014262120177370633400700559379322851257402240461790505304638550573587994303099993386992640721597615510862886792367646501614664997332946330703903559263843042358154084549500894738020668892199050982868982208823750580374634752645441101437868956492394983472731722078446346641447723248673196662771199379378400436129130443179472844103335321168505680698530399028993866506972813574105220353349130093619194268422752202756516486865818282698040289841110577639165038902868862325967717496706314505313787029681601303927419216465428858542941951831321646044799575810153423811352910132375044744816759091687748371074145635624312652082433083732565746380582201070291587948276594934549821673549046645223652142342239207335370104210912970858100067859106831207289304370288942916433651209074981010987377690195175024749378182081574059208032229448722757779659643510372155654411418187233620332838837011947592999423326676183722452272650803799299087582414894811018083719460319677621411431916020296586871059191555359131027970571490717800854988582063587966971325661742012607129952421493795864632238573706893354996875053109077964316067592051971577177002295216609379443182469007566376828633896119424475633389636980618760414977071259285826901510336177105208449575060039488756542059007569895965889575895458333526921644587286000063674920018462526635473382353677313972072992845876757517993008472751007135877944611685469218547811736638920959763605322242733328652408375886860531220348191605116008993869160052509774508890019128793319879556640596050019999195510543180137166455403806290259993825894439087203140847040820327263801797995155533508113517838081972509003128296342677030917877571670663304063737570701286032988516371160242596907470724694106295484627588728733328112013792885257869726687395777601630381182783963387151241177593708442413244201128187113552671304788779208025117795690380615562794758098306062333721000978652902688257275767665135170928944612368483157096456594245439292786794685448184656993350449576377113788307234377228304618932095804601477291499092427647625552705320969293716830576205772473421450158617664693745410924861985995751612362105048009629169340205735352152876644786016093016689880677474184745049773303262477729921490152947061388787915614362229571708903535967070066220521950806833519815500503163816922750852978592862218282959443309557263498179189319554563506255790962344124605684644987168646757575107521905186754669575905836895591778031245288571320723066605786617055084429550407757784917008047020028193210031982020251055909162897550000769169879290760776532287027256701305904142940956446694848039112719458573058972888917732847058924221898454548540594816377004091939112375983119242460864778712849436480519142843725532188252633543015123002415247076895734218119759414952526887925701362187026773600802078441807003289012321818129862370205845710316066633787587747641323686187842889237122032735982087464125201379238057489299679141870000862805567408608011222569213113362063366180687037011783172568194309214964099393190102275970514507790827916793551654547636900995425321022080320082148018120680720344090729377740913392563822405490111049245727580858191938204933484327083185933820464781925112970793722993691990403751895680525252569031188168911281051299896323740796537471140136500958983276481419881778558577311375161930560256504432519863596848154540325476463082792261118311402078524985181314191743966570246589555437997066549871776871249131008679838896909198806654703777094556321641711780412503986679955890708459719289651066219127445555878800041199932507526508373041570052879589817825994116140219253486862844601035123644573745953572400562563812435632380229813496783704213596432083880820641467621310608215049624764237912871067888966136582265949345859669003407055218795500891412013891213794324552183650209902510409054473993703065811425089559751218058591769434724987264117269832336987082191468808256746502582408070070413155420737258227833210304768542288366444841104037628687575657064188182677375081411247468534123992864673648110724415089142356472412974248980173457544471633738670069875480640524087793567930131318685856265530935831149576254016062681592165757967265282940839169159497726073883767443449445209973535291401256897537589866857950476226023173106052640744630937078753315343814888891229234673747200221197315412263963986235980102110051838919254157610310165767503330704130782758152064557439088634934849714967094159871735979518205995547997079153118915022141021309800021742972391383169695148170401087159282626645711117847350291999519753742574980795537268259200389571059844223688939767699550246161651658938676414949498697105209059159930336468262963456869065212972232812763021997708884405741655477769528867034827017731395014170453506241226359899853080080083935692368856841454032657070623100080809871144685748291954014451800059506784654944017325117914314134194488321346171781807166748989918418197909365585818790039945247251330485225053417723514618664680320593866652349796821223942053451780437257270548377920465475204181352435135158308588014682167839756574144970895897598468125623094893578789175852314555685884007899220895461899310946366267322194025881465100613925424969835106302202453420042977932111476214668138255199296139480224317664400066409504870741843839427683709007214660070619514225556152210138151966824394269781493159111179647732148746530410325818326472524525472025657924112216584783545156294082940432525385642803153769291711636339131810743750539903284107145166328228113549042684148107870590486680051051090874539668584207167986561161079690955082872439139113008246836378585165474804644025122490384905112543175480178488979241292385781387676770272418228467501725614968750693743673481307626703274901829103889171032919547518742422915774429030399759561018565288979595423760372417796618258658533186891348680685115280534443098321403155535737447652282947956346649738872258058590903533872493015269771908217176057885982178502964695814860180317142837848156984948189866081743352369296210401465071383829554574741417824682075980137110649993495839114944094339184969470299929776916371509675862770128369931506497758206319993867453212051160290672093984584549646657664090226330709278302745851361336288841862415568260233072215708035265320283579946253637247040938067155375016855798440623514914117159321290565052569365024013981526421390426635379740666661323914036148660736551822539512131647701403734005152085860098578346402399874372709605687403583063871625001798376110671331690584500256176598093715040259393477121042030280900271481782858671134065651702270724580241458490106342749164761035545241680541340571843954181129241748718423490497107153264334147140570196898078139412115203669292747030851000259497256905738032271088039289834951840342415998797608691526996971831774806299976993953194664695171323657897851563504240299134075497246910392492352710298509123293941359737945336387228804610250961319212329385607375489441031759387861930973754795504762055030831177153194600792926146462815988204913547613933384454950264161188932308616787671241235535670526536209128914969685361231714450515769811381204273101114759907989946642380198588716727611867628774854255912903846722167886854380245759686797998483966925916418391140236828162130155519315331439252637240273830482211075594010800257515871318662666056745879913933366788712916689588634328218375986858047041358170861174314779899347026460062902379222715847864136580001275371997090279280222874962769360572137776180861783042032094002865033521335015959626141636004422683418447619336249250837451581947535933654543979365463489280916610936952811860400694858713572226681574302158095552177632541301127911700522215587387904785915964253423694489562447252333179081196791963506748149653564412799077878229166325553806292569282914946054111317712003652359821503796837887728589723244090117659344161193351669576098863256344268279729485212540086346282105137482484081116150105535369595585127210598248765727454753280787248987431736581397949194614033786909449421225876394406863213206207273482919916024224438642850731120368250033639206245589608372820162861226659360762451211511864940585087788672209015191887752038506441166142187545355454031122692089358362202228276951187807072977593802717884507580058963571408264922956240823223183904690051987357054985804683343414273747967029657975604953666479859888723577340504577194389705915533957654961478421194149183648623881618184974195473899310290445591108879376289296463989621331818158737560496656355398801772083485678293607753719698703584621803260781114487885512011758537153179237368633894722079838503231819612019165554723740524069096145693647782057879616986195450476242670316142080694943960637381833017206979138101766958867725290243259076359850769021007317734234192336949099728649679345037368827133782939957336017022342412932379191249772178007189092362270457682848049930014444451368207322739213555723337502307353892035359928461395588920042817375666313691564705117375064896109418956765497003735785734524440173308753395787247488210278555061474685401866368363665990660900644808980890026684115593340134184670966655943336523678024462982233038584365579235851144951537395567037563129275440228228736886496171897350871189587739623208490872804990969458237953954419635182787248379564440522310489865548847984307863814782888331665940541887390504884465463559255075211164249416190165099779629130793488552556766469533937696287398791133633677914380409100153648526340777378781590212680958001117318694749048611135428169098154398192044851319805898924437670943273340130429408280682694860346830579543782645296362454921575763863738131125025733608429089104033636058543523304284101832223591047680923455690283423873532436748082310840166640017201058654958440688435793789747639687849544463015879162626263365300131061878444723847127434716631583892361354992406331269137488765792198523654226732862817932134118660997977430691586089177753835999591846765082944176702705776738370850664992164367272006538175443403961214152349567578319660746508939079446828620797676710253440442324467368879498173825066950897248781752511190988557774605808555082772234118843919965003364619555823934083509233276281324295994954045163282828353493831051983238082511277211009693951485726397261422991683959987449818060277743235840805000113898331748728715515586897471276457182269383174248340348020989447544313414041865120047156333493415034107472523507337675049375045413816923473427361617112496334875322066335456782820269142610563768282345458821267643779611988248429098911390232400985441667570870310320218525457597357532302804902692332204065620163884378125701698543794778563649078953631908270147531133128943746383780840034063846844620557763213817601946961101771650069308188355079062764577470508376233681889381691744390061424132425145762309644566010025745932338616522780095606869318200393516472961495013125461613609476167919240660341748371938718784155769592237228665587473869467769470323400513542278573872965971940813354226582578384691474106913614056017400659308038983970347312227122456897814357443598655156642786999874207123770822892458539586853302393160282316711378423047696878343554313140503038757587926263103307918825536515562240119431587792415446830880314341314254287350689786395712977717150577857754478817100847293130249320170205671971599350624956745839948793761182323713503577373503929543376909941555489452212457906232900906941498065767909347836924774786283132576913993627433322994516042628923280393649850481827673528581741567665936284108018697218877908162504011382376511732132457519511259066822187623528277294871380244234680555886364442890462811439508807235588569188303435694560818619723846387664811319347930309523753135891666851346392235109060679554369941228085533489320365117739545680436476911158988564850316900083643255072183785102111813160039632482606566207654062791544951615154549773088748000053034009399960273430516684939702274891692199712212332542914172404947821745531323436985147195813391968829731003665455624139298178261989576359211754771497076886980972434858039392729571749004345546346817817543959403300796583114407053972447071085067426897566829447218393280302093214525582749749497274508648248875831957766181402481305510529079869993827689543700036017668199877683650794606492950666021112390771502192427008027624499103546888786759671914835449361923706984196992476067650245870805228396581646389330768172090882666112184895044605640004414833265569829341634182165560789105419637589706778190566481672912529631838756135721437568833361752251705370385976951504188741139889613104246646185338232445079441078859845437056565656207221070579803709949292676507399525889949011835372263148552542955771057589946249226752953112096764880164999695344282390731486174633037411907838143167385611641694835356510036239052822006767812930750049126554704483203646601446497331297586863976789130814680036674074674742796612900729054787372957116587839152173746600754567091341163506565149664179218375364227085743891414958342314370580842075836504029712645655888416227139213002699098703197529402884445517393303663752409373896335918805107573352889723370271029937970746068502236444309617286282167470524671897367914418368837998077434756998519967248475056300060130802396112981501368339426658502581826976897316665675372123375871602288798157082908330714809614276484558810623441818546815974766118792018341494248659497898836527566816844278372328319831913465092157573254381550329468808204970059119197451202243709710620818633811574055382902067545736935711422569144869362645523169625522506404705111738196252438095353873721136574843140353765032373102283419810344101904397775568713349468571493464245946244076187987948465479594452437670042910380761862758155122697575512646494512464001188665017035955890175929272111691157851035523351868049807760112035921952895840620859670764217688740027526495699525007653503264902797188397621500946887393193300505826757232813402537644664271817953029349525608361912655330898219271058516037274939539756424554586881273102265433726283894762772787832052889412107539598131615787027047202790380832133567318431342024935685752506396176747201242790012960619976219022183023527749480006530001440260136013095387520332598159744095186740714585656175352999213618180624750302677107584435690843321228878699314577360463292819858666682660922195005919186220785437863455264554820378194306314004288314893403860649779759145925513021424009547056853323284818067206171647210158274767332636706344576373987631807694680185560017712090949455964959620403943478984501396719515211674453757504278786666899708276758933178731005000465925010093792709456699893275048034989979206800255519776017465444053428090305025739305481664496981224419054836467421872943200139903156313583190453266267118227565752899482234541493719010032528649160245971295489263206268879274743628286248589137375557045353798054712415247867734285321406204660170546951550014022193454154149676361045360962930686769699238747585138379997929771885975532428680566835987383804640412979783908512178520734633858802816959371674460012370838958522947035219912896927432962504224591636266956079436827386106688240855404218488221715785099547036063594745227002342118196515301494962193584288813897702196653820457462364676669056980287869582194357778776157107699913080271628842178570068012170742880332805899265580500736878054708056424000471709155497336598706619561509236754911368443334978580690903283475824765390730035669854610349228578478639284860947476749942765322539719052923881869379411210647130993094678395607624319213884436902172160374958707466307079536220974837763996180303134720211257478144500954512803726887529264222501987527496742712729610452666076336587042867097833487867549506860069319459682843223692236217807950238042136037946082276096590339545356479548252059019252346042184763246953769213408132262782011009207001082272469940279962120106396854654964747512382308425336442750115474930760640941505468690360801735461844456564826473350847235380176131891206807939072426171750508508015504270074683829575066023735574522729079014132348547766140894367263847613901826917306946685226377894316232783805390523392336619436076696993953422434971387149748330347335033887585858753893978916801894004912183835272586487409965392651196874832217610150116677493018396039889325046486431563081046119889019225356454637188103225965458370995059637068412645132350766739677137836132286528082131636121552182835391348664138729630708969786047173233690478167760493041803545620335866889234967704959722460364594747787140722291740517112684822949504941589269784452243037451598179560651968188114279673371584307167427015257285004164313148225337322182691530930591236478061549455619710563173154914377269267112830506584847036101036078718650505731584048002048882203286253181048873031699526546259582057914044893651204609177066263925305539702343906361964858256572701105133646540569548915216461644667980031758488972291006132566930371537882867214838783876962895226793030526850697197774700409604789579878626932954449075878948697458804887577675553857557303422871518278844365156460233070053515310605676283274250610530047665787011019112521378199872068129795176856165141391261955056521844176431158691582660995106487258730436719871853756680948944418399893056962245652220033657572520014184700586483963614510795609718898842107585279180524556454039298694518948949555539590328022431775199736410746844348776464731575744023066003694374182481564121038123206988403244121075214542415096291849086990251624164099785932814887453396116012756336928166466443840051195102171742842377857412796108045907582294462675100092914965061798978829054807330075394254094842627817041288399238540621688475200229637060735302396732859700694492028082308054873915221553845691860681099184129518672562709503266952655250594926236817476781062760229878045226863272763849368490050250810229442819584726716810614600511045140936743793344751200528458290016759695174417265954020994210316965685489034367171715314445111721877755827681779507273294867386506081253983326375007254321035618804688997780058181744096394372753125328100475981964031541040330348302442929400769972308900526879446937454261961792083259171110898238176173495921437443773153600144949868688492859868383847520356085140437597362879009596596530784119310883876275458814975641510580267001880601458688688774541905822010872902636755138003599370469203701726991642434114194262013721673464078512045558377599132141927021586347145859988472772900031152362415204644483179277414566002541694277987275754150265296834567714837246727595078625862907985445538150690808871711240018972686341440365410966774007601569079325280355960015215098542130943180790173235618219628178894931862475286020783881730338867683117656940031997630774608745403762222548974256017438703948197102141789882824311112763598587719360372244572223430216987940630816634595115600227408578956318896352881261404417131878454283562551765770219915397387219257178784965838496226722848296698906273586812988632707717944173811388430909569916836461891104451508555529929562437347993889023206833355422083736389559194656711616307641382285726893735177403960368983010640177070011908858778842022769243997649924608909654267275861825805705044466701825466406838497660564121948765792923635128066736067310820857888915044602643973633558299709820971656981590023691434335048874124164510482654595839115590470962401093601074898478419301978407829185465865137977507288317671479338640214034710635710590896892921193357882174268225862323770786657095903740100288048218582584064676412173075606829773610334440543541157729041570692385563775640297465841387199162474684806170360311211299697374347941406016194515083674555633943871521264989014670403780385576013725671672448606732978899314157181804660518613615709135257496940658150660672543005769931560728278007118548942151426717373896803465006199353330823806251589689881355343204936416886987221141213309353937126479883274194254109407239750664098618578901505291941454991435801883140798638635892729925037719754896816434268315413911152339027636714371298676927317361106506253459665744163973726576574491780045004169486207287932061271901893282280569391507389869146370602595788009895123405357059508749599518971885940628507490024179885352013141061153147139492646900490708790980140469902869617122081145192897667562048458880232787007266552389282089686384894127923336393598238749110165035929951796267295216067638794283532883126145990868240829166162900938817601828071729762954545636332352278713783659819377118344636501258295086607033118089815552850795840424089145436983789634813397022626021799362934836218260366692650084510594099738560572276814637617738581108161262758438115064520675606911355939634043513974639470212468877338073085053485000076341826025057780879735692576051603861785392099485326815331265218335435269644925776480673336290692250051018451990472624185724605067841181632963450803637339634537625739068660166498103234802702354829736261732837810907592613039649776098661787194878038908780491760200092996890095044595330959799220550786838492663117091311262160362468231108543592665948586343023217426062587304948719828664047062423108241124519260443415285156082030618083846681626476143495643749026854005993555814971568333267437599916683588968600532070807916280246633875002624101517102634326711895085530302426745141280285974661751022036624536280248372116518226109478056751699910852388445827763685497655880717702285676190783725200861238318037558310424560687440735131913223389789736935880935729600860038732955265004164342390581723908267478862704276038132665435216822673003203356301410026189633906818613759314697611775764097911707617955070454210419711494935352637987857165132870365228148395728838544892853628960603695086747787720531215927430136459787793873409742471012672247211969228767916514107745750073558698381484162374693200654984226360422549506433801175362280273716523030049734749604150123768730231956239843398960393244634769122002111565250150342197759025585250641071097112081882162998210516050449030391612436802880534866299320735215889998608075927292514525427151359080926270277662807121634203705193764627477326456066254870230553853611199313052791804934253761665147601097869942270260682914603386011923340225250630624275234744070820563226481769942561626208389302395935014468343314587012070411150233086073812620604537569465629839362791080205306457392542802524700924541429736442523541964663177981033599259147855060261744729150093873559947741888654826661126212289320519541591274782611790904862492425124287698142101532525741441653284046104850619257185997464687769411829543256515138587232979339250975717848999510430245645445718286201828649458433082367298931778928402097063638439346512068163412262061013764183788502866261518859824075001780443969575628835528798140101460571635607315741808061659483204230376685869009587978415173410761066962305479440390499750565297706793734586107205703004227143776463419321993723742295679734844759960846951427536274822065334506111073442640017350213338605532049402812546588181818166892638679292133835819204869394066067184662219581178169492569014392730884487130713999429452914574342779420153960830791617298425343882729853880372428994402294423202943286446779844482624554391768569703200829952270591109984608600957648693958110766195440298877166422792335621156620399154099154424686262408417793880317396017344584846286003040435844684403110766286534210640773022624851170684048219316881679737134115411971673770662465678958006103230476658941826288283209395266227953569187179506854996233780350058113538946502352367118646566149593891276215831823385816682981001439384033036528881366057565544953986617141766490522962728763920864744340780076522658971929413908969498123267497111690406178292236789056881339881808567241116609987867814842283053347859282926985660295129449792344838449534813815345661246013408173124682806546648371434278381877809475747767084290677026912812664763186813927155129153860261249401669787202590359965102118011992634802833621453746322138870699202991433375104059699928698877077295271184607981410439542817217997827562584416737837105796562562576281430502994762287361327337451830594686814180119097018198223641778566236976776809783087138598931143748694214460516749658767259702568589914588986397532032329901132545900720130374554487534353846430244052261366681651010618314881799310377951997473238973994166608968879324730810804350557292039249477067904497457799932268052933689035187070296532036600841633404484520354798142271273712892407667594005063809539276901289250783282828480381177600645142234792233796099550991331232447591017865360557657436379582140024920013273693212809879373787587701679686880230572858764173275574469755728655573548969395526411648134750523762748097107160575810601976440027995614215818098802431388714150230800520999328720221604772346125063184922753529866988833198401008248953121858698431231771833272046646893501822636396878367743595941382215071201577617355221289041868626473321541296447083295410669951283661673331309180849290917721625604407294537895760436109824538084079749016766572115177054164019395230377285230127188653605349465847294650643736751303081759702717305398047222522528410158722394941007570311772871224372810824027824810922062796300542439749215184340681096171065924517397366190736779461676242076211776818358069270112835766902815593966075969363781165570919113592373367258132421370533053765768310971919037475432893852835764857040080574436597671409741586456601347590729585440388666303793135242421867858071502479556080035031742135542454495300677083213595454931382369900049405662282982063623672419472944896228280053847783330946845793028399421365101124179169664982089419032625311298032508996129383649849213242367576748377404408173699469477682987022896048120241383346969373539142480932736758211275374665039047231871213258396803579695389895670389317412851909733416253805430066620250054173449945896750959468141551753039901955239204040175987352832013808289008562794850137305175297793786895839444346827015328369779795171755208041882378293553268159641955138544133186151182779172090459173913975118220383228514576304229297342968685156959018248863901225539264491398475879754099533246444112448925804012274548002514772313407047211705420672130603275079813530040918017272215171216292711015675179151882509107818250260171237287442620675814970807209173554847911892121543111326691717107643017405347416620478032871913727304228876506554069667775677435528818660499277432149730477060420582331723534737159287481274354360707032975028021518627103383510628026957796202918742141003805473535652984124979726255571161752341276059184316566606063579366647979926340980501747842298614907382046107170104170562774053488070515836210486466028826372572969931824748851041822499358736827588585542531758568434237496062599758858437214270400053031755782902755895721407431173350339080717310931386025036836833359789818463683194851178841490770626879588962562387708884877639598628812840989859850867921572127212414744704741472337788219182032338104759912355115518747926139124024553362742765597303779625488856944899510417540727517308445769247943230986737124554721776217635153715800234758271449195683182659645167175259819516358578094260785449029246162210659976187888028416396087328907731026426338380415289478452951238911830594368662724848867218390075526701256293187466259908054081657183170714787536072201625347342642006053166652197372810335327358374088851852452933535008536185879192836094007664118034204471792730389053481646171265512921157670248087019890052723946433757263006863851849692039894546299277603207130997522549750770669674726316646178713652229523911782046439498990390939111224083997600707636240618782939584416065510353356727446787658035086902492711920207899741299358449933238365527511855128586003485612183773537634653635715610296099847316035025275698238675087021016481247767608307123425026184835910109326402912446934938351759445122457216179427424368561728859600203612559760118560891533729866155746921004368870451537940107561976280294392277422731659689666984052016260027287445793763895800281768221009337133447941766158731028794921214627773447439937703461338760485783597334287276453651075461962070019332077543783667088714355725106331001337056330491644314603316927645323239077770950229072073800531837630585524565398412872787553145361812699912505003592953521318946777417415634735014008036066823239859523577165910978554868628828627532919359392056601229794181201593162760094114055098736918863614112238367331079211797263131593078467538116055853223346288090931595082503618084066782317067782491040369643467313314637406238489968460400272290310280731076000329547676148277067404915908704085101978322058603996588141714883846224233137143719574065417905439122916168018603618334082655861486417736002896957031229703165751546073190960002943522069451918590032512672794225654335295890098118990915014040526013456187508010553367522227934286056632469800784298255358284898865605697402156379242586372730394702237550505606886449456789682064537111618220707311510256360415050184751685507046822610964550653416444129481573238208773926239543043557849509800912262669918513673700969434676351125021475037244292920359284548533251241755869098513255728676700862821763647971017769028796500017930737436124541034013824257471329558204537565184333385236662608137735705796032479746136575436722661862271572101413935360981193128361607920332248550554500863403084591874495117527932219114523553437009712919624473026514023122973832509058753138553632472869321133815196372608136646552421056882672056882992971633372789245907415658585498308434580286851090352416575430821873793158063669463904846359642487881927477630548039831460629837898559249116102065522918175041673740831125777829287524386193192687628192119558240713557318501123500177081625314140094413752990214058862749776155517169099180467842743822693996582254450962746405751072344016698081534905699414488685051740795499814964915794506217386363126711260742618646785346830685338712993350817771617898332665757975157684951918540473091444121118953291347955627137646326856824289073729933591154758156942378600192804258396955542251730776505990985077662646913771657733548971848403099712235217261293710382526499855919474884885487612066611150073394280375105514724400176476793401534848639204172097070985625592996856957168078431237741060663250225509860235085039740872626159677256463434803829890978039347874093042273208556829436058580156215576947724831052028463630271355905155982373705023611179079846119235641717360563212539869035956915927913573514880174395288835637298728919247469455803089176161181638614456840760067639288365017389769977437043863933285305018903918291262554602024518698731642659849752289149790837791325969249543034602107276766008831110656624483683796762890554134030646066321520376898034670496007683390213236805687175240017258568094409438647370191706314576632316935021903091539453146464551286290028146740067981073284309010435752749330853965096871787200830504058313140329099181695165048881849048326021869165643795899918617089726897680507331596505951165831718494869867961781303231145951185039514589234773320124851040621899019040758942850868098057810531640764484993015084765714791747832952015263992659729422474195132089423002578132214153865514668796956072893769455168162855156616032301364217880531869250613506754251134619715979051290752960045364454096442259988595085902166522254506803584733547783372230747324484850649226851046297883752446850070853490194478601475049059849843005978204396286312116996273060817874581833655916602992177303801815296939196343329754098519635476652449140219535769427077175208289400878287059969308366634572382029289076789827944476332949407638802785625136868106779358592472461545823694781178905765398162525003739205335603148946392952669083853154387685144767665468123074418705722676880362857867663222816861444047100178537095841309175328264491586517547509906612726259057186518490193823504855386616247934971979713973672308089038537465525906600945208213947156037734813175411691325237321513396772225563889334642201899020122338983938302028232729492625472694063472956094634824974106591043527544373051437440922848939582682113962502271164380825967704316298127607513433591963364419239226854812516229076390317939459120878446065224655220242823409737657658314743697507278330084983937645691095182913664322765351939392271762931237205540854698108711498810836720755928295445829089944232393441606411589336013111882203730600944356687990264917420074885254393385917606004347744702856901641667214515249096291481753388479905544331367954827443911844535086212208334819722061994620691217483002802104322182265442690370693406615033126278144084655325195711835660882666665995484220252562510002537970239225664960269132531274484276473281573752614315924642239361997383711115832530708460116422348851297684539395401807496406329398311684369796114174612791709129588553801861751552139754064816409073761540762702793633900044034619654659482569998806104685181887661293672582537574576475443227946368802388858307721276672821534663288162391928246735539076121276390535409736277007266318991751812882230552646019356681454553969487816137920961970628883604341051636598564741142637627755969786525212558673479235174132290136151055051416227939837093582139920204301635546607680213512073792531574194187164704564530704577049861370746897134964225613909157688811364739888471111833006760846214084304640252696475660978479141956784562385051015350856168582853886220814751196658633819194674687675684432230939572714546590746945337569971400454853259214647815346226507001323652933304239637457802015505661501828094459786946514180769602281847026867336089682742548511011270841331747519818501662088370877223601463255866945473673893282113483197029131196770058761326716114744774027825171991905817288269367723635575158567488502654916685739125011019863845879138734663209178291590384817263152358338573599182632326327123742735088685366866066782412174226933241050085071762445377510154346972305132614926275335746705133803505781504285299900750664448109849530658472612126049177731002319032882475476348887962146682231140375065026206480551599275067237529152279154775899200264862845769540392829460146532238084640675766356936025624979224863628001421128557328031797626215968264692116532773478272912086528463545122219791041279830412959437268831969019025281113418105928576510292066052782423057990790404245203697742369471750762364289425233449242769427716514668479474196266124347369021823384224535902846591408182043234349340925572835493618003872471705378548440818733784111917502979992204966570897281658376543165384311978964654774264330098589532494079311749831789070963580789649291151290794560706441385642147029638811406767912301386171469351813686391611947602889066048768145129559161651752213029963062908744741081235007302701713845896997503795347318534713364430258675907111398368822516460902566923254008707373663606081615613279675532055471607614805866516725186617201578401203407317988183321668102046389632220444735973498986600472547063853538456043182056743366540442402357958341303527387167006686240081045325873627429350787888850179812366999306759775757940214072173050083335052864228232982466379571379345129024299153659109696271874409085956786076325424806689538557061402541735980632360210290722372373490464068207201406921178771184950198491300272706378897921342593426271158398006159197706530093722930739562492001560946288518458160160646212341207568496526334218618822056967695655481045345170979556279125483000762198879329038847640622771328726711046228659682295212302549984551170066059187377760082511018802940726626413983957523372362300086687234152832401906092871770795256782101347028218065767415766598535767278268136638099219116119854841111290624057323781568762183448667350037969459005501615074479965308960572759255456117783463242680569234999899953378033984928633906693591925053316751533798782947849154362131215880659099048003226804716125298323555437460325568781813742264235810051761753469605044774363310310582356457814540862609966875827806432922884449875665167166089153498768177905756036065837471101538185072192380748184430886812900525403724193479275259499725836525082455505810708159419106852936965153311911652575374190568068383103852605154108255622171440370370138167683595349505888652082217170221613626342501844256729503392758716397715240086942707679756220380968745492734746755374112137491995150343810094315425050265934520261739295273478850299787446014539304713574625069613865880304916193412930056948522221559008897600601067267795139285756696450505346745773772988573489158085949607607553854460350439643203447107358513254549943547381995997877993718084641376541635865636375421013706204836166366781458887863522235540487344078938704779793534695508565767196580818722098524750118611087392161756563804666645674706186834761207145942292314380502846581116033117221680065667201988110583667994236401263990942234789088358805917565298779244207373357801127070919674707644869876344947158536422092582095370653223099516572021935872293675033992168579393831882479196411142781794773629790481353430395618875400824872948045856531064075515169020713413677715744961780254298904207346749665787036287883219038925199520189810298203296325677691926564441114119225638009591461522562546476121826114875247133331965559593883843009862715363080940487628857627077561139787761169036494731976197846876282182698786876994377247873376788541337756271893960792973288104159903212507223668936561493636321188709791113862330970816850080311820837914868860537546814591519026885784264589973144954337283537450386894524283241674764805898812898029929170076093530932265730981922687893887996386008051838107593767663765312840033837559451995253139186929657851821913429184397568436271887291047364480655720796820690196532043110034350372651159314939691266428020842996634450065979418731057631188905697593208628162658920997848732539514021812499630875919294577299473655789811588404284530054184037597261311974412371583599948013674837951814526869790303881810611833953744531445015603165249373752671196832669201672147951744982642486394088267697414421661169648402153551566240131904922146567336570468335269447274878512930850588135105207420809852029562837600220831615878297360880026170112523546637330775852279210724306150669694627136666058316162016048913136223398741374056147436475233918980782770061524360510362027932833319006677723719700373483206825899884465020007782191435620836822560546042503342228322817533661882362631575435303570270627233479558460475526739700119508009535848374164016107018385970470064760770913476778298554453718639463682733530687537178586790406179730306311297587087275710993058370034152464998084946037121645000268256734829111511313265788911452172903028640115794997714057496459532852299738533719097445142440097904917630695037938615730826522839781643585017163537637171529289310658061982136284094007455486601411971586155185180225514646564478353540337812117342389874044236945716869061538058787655745921346745796289736639948470989777970444227109203677215550747781883933282748866232319059770113789521015624997064926820743179744834775910782499812071395256350371729909892644935104227204590903968866070421085971285840187533982168365049901296832733224396879670969177700180867527569233206295805958263980726616508049334260727618441068813351354997448048749294535806619606484096650153999001866736440862357004316674428966116019963358957413465312960238347226433909947160466641599108677233181986969744540107368020100444980618522239722173191871613393107852744099371131365408658277864172925805676634448879689740663036963018381222345645675017143758718258432021663540299057237887696643555863035483799708767050141132947944030496415912720911326730807005222420610492276913828757683248288241858002469743900087017717767644153145027956355216549611865711560399070855977141178980838824237399658957027363081706224640613948039633847519328912682741750958914674586533705988318016979216659948465213583367841911384411331679988251186059441419075890112639512419145790935377808815284635374557878037816351929281261753583791728664813763656219408077636674369309645830175028445971176946367116334292366399807120338417333127144088436731069433662541240992948190669851161960907309024846060938068317172755020549139051107326249414636887593049357763442853249090069508373677226635051865989418498533246695818047232899151652572026992367242696316706558988068368540596119142717223145619597728373121837123448991318002100629402507998379570152042889158758048383075122929235120507353932611311256518194110477398439599512271630068196354530959121533074600241337243040004300231588603604081767109501679222197560871688639680649163176229722892029123444862450406907070289667462293722187475818081455608831981955987187063889804252849635038138646273073247193917248494988414152544395591680115788267328429232749520742924641542362066128860427502419215797840368625495673741427600762409628822394058783637079195180026976762812902349963154823354605739073901844861239785950163370012119858510428523903395619588952191104558187471367386554110658443400591809077727626320876328791069300084999206901230061875687993131892655154168164561462982179146354123234707823086371670611946294289526619402621260661868115704077147299277082049469531199267108651868904828071800728136741849979442606779395033394661156220861643473680191155695963689592667547402430128124428235072843611752103045918800801034995857202212472887900749384358677086131416420625295956720020517919011333437254554937144731010971013353640034244914231317995807740263783068640428292866633585980233195208757110783504570963357949552137144051902601028519868311285172502806834101441835214836464947861312798193933244734474832213394571686008915778298505058841275687930582878884522330442454657529474252888188947213067551009347475185719518230011236111041905273891454681451015589877691213851125374332743382281014260790432214621035264086571072669143180747599014725965539069985267657109837311039839367602587597985832244177423074751524142397997380680708294484201468556570019772795035766190985609961643782636962398769305246862553797161259856737761314689133301063792128363981540190810353550074473810032403768690867091988960536938144176107268609349318017035565974157220345883010309094791680112014916141808973194995250971811917886666708291104005460797161449756035244354591057937694194077064804765547934395203664526414721914093427231396499448303507627077160714326651532466229698621443311813554617259258670222928161224790503226837053418114714629835906022521045485615524340883076129512860451299752020960031922628050726997807314346587834142254383623211805947343100749877946802780297188126150088499500928477746807100002344048896001011510457567876911305174457868308740356118054588588709769591224843679239657734205033935543059553956037478092926787541312968146167171273632773377170845959931607517865914423941596293975091236161341210428466570103818886907552640099206535240216472030602022881907112967652640816673049338598156284728448691179123513634621155510594044682787768702928933436353189350960004598288658082442366020094569509879949310475298890608769353811612309160714479048399241804148179568135697944091928654946657545341127417105960193035083453557396651520938023683184265543743765948760400184922746393972548394118808270833033775554243126492135336064084508042964200005669730458777800566014356856852315934006848193707141872673722804410188753143050795633011167508438291357872621629549619748196502667472904595875305663572400025246149704052789440196334271475725769216819126142075084398261228974584104699160936223070102345270256366293218182519632864665752819701275959054029801721464891773947597768969745169994299010507503109252095953814724941332579635874660583507052821319821740970083908982295289684359595468791737625197523363965211941656291212160405136950702940128039933387682612884692644934852241313642159520810189199793098267377227802647729461230173442443513302463459551292956270876429107399141467436740643241486832573359050300761520666809064688411138116831048241178888350882341498631540397049906607136500332582037278445119131567479759075878288583309699118844091331375331557990731118974276581563699028686586505611626172906868635164386852014312788359111816857565450794489907828681473412963723352302956097387000680368281945920629496829418545901775213483321879435722701054989474763727749916718574526913998192992702570352361269476348822183241059701465245811252435279625013912578075297057102999182948300442975420770220989320813345230942625360176670963089924208938789098867671616385032607951905373721810232277134580100932927130488278316863676134685454351267416602784376562354439671230662750070630924884984288244876092875203903361752007360320827234200822356973084530573395853757109433865056730954301547609606772692845897343395564741847189748957206788250113035526082099679744054269531550241550669428574344641799023179973942208329473741088665006570178016811302650027759761595813519925433357047255625050764946585581017354917522733715083959004160113762789837251488733998814323945071071118183167594888729546470259136574415775313244436983591302300652682444889941168246257780789631067600479191076015788278125888450599690583048332955099419865567521248689416868380119003786444632578148129547124326059048794200428134472761365711356298936542993226600649799743113155088946412812409258474458424530272880370733626522139975637764647302264634476384429283764037043565675365500570593996759879193392654155631871926037187369593292349648214197584168363543982814665353085677576612883926048316572886486507214492488944678725649970074651237802591062755068643107398812722468931601858426813010177759710617169737781019692011443564648932051811937027675153580069746583577114724146793363966317742453249355613112146093650345663847724465524719371858983013306693048400595495301915335662877289667809742054267505636587738518620489624942489768547423854902822571286214369512147207829638048103287685640275414201644714154165635001960757540380119217514332749866632563603911942693924757472589811753978990809544769486360376581218700099077181460839994151545960795428278556771750886617726519070485017594816926305401589291813875409151284145984475536742054128349136861888944559629097731649189593759344183441398139968123982927701447848489283140603991241316665793849031605778393760397983565188874616694957693182603944437602773332605711121988022634078332439845596476335950736103576286577674976863087302361023595096180328641779253173883046564417953839134627352780341840023226525172220937007208285189667335126537579971344202806004785883248950918313125117611633663185661473185679323388774207840836228123663140933565040350556013786216832044652665898132178344951241894624612552713405327156217762803493754866181689552078302997437674618749650710181899376976165650173569186206640824001004805758904130697155757964724652919606059559924614628918359380532262123746537430662576381191871663915039960089804903605302256432356278975402533093436461815109780006238940221862579295277413146655652848806483537856980406339648883081220992167852710211328096077150287963093597586635582197585506020529259162944936646519015622385570288354422348563395384883128425615263686630581552368724273769533185088493970256286048662268389303937114915610155214788603613891252869855546529352609721407477383301299226700071978635228549687856206766228024165183618661624235765985121698730857518604752434274472738802654217994090770841289426396029503086987409544001953508261696943570856618497467357468742751125563050180719877536902264250644834525125648273673430589295065426278359722734414672001010961877732659362595760632670169532729963492386067738080999641453532554547459983949116156955523994479742968106119899511497283814027168912808958537338803621788916543349736975209145104249274662557502310847550444725675957951004953892406520646276013775232217577180484810947782784459666584430877324189328538727065940097100895092230064345575730253767385817996293131212712697046559873954667215906904331723967879522391711198131318557914113456287094468389738502976503108789993213824482480017546912599891203903713640817343530297862725282514809071842214499130831657542055685508993776079257769640240198241094923636050247330255487360291079382515512843103615587610770894860456111399795270017363786040282606802072650633923150599271253247749745068976631745811673824761208214025122742998299384187394509324394649815422918526202822735939817567353816503122580396708683097934396363132335834521328470854789915923185384003967871374320518008245454476956826461306901717377303171057261127616065666691119041054904010074610299595637393959506317468601438236572546367418759220891193438717229313213488592299367963300581369536692176994900662130249414545663225204195093708932671520188554406876899561484051152223826245479724858872006628627337043837800238006543251158647858504727503101649491703700703143633805811511892223071139024421382507156875177500613097740097685423211045207207527703165987658862978014382420157503258638556771801269707595217792196053470544107408827777558693078840767742353285254073151687434779685724774525478204928753733451506663286909315867811580792281412587427106458352870454776607719550336874684307804903931592354052876754779162306843722017416895330605997408174833777787193005330966780431232594155939256962278963353534981777257058655894835031627448887086592582211808703479255515989761261791472676715389724170503214142137430901916957342213498216915778840512142247339506847371347108832490472485931965685066692326939811009085820750398761254339439502481179705956982860989870439259071593434792287031653426561189350508049016053846855598186389235845473417927267412934835796738157940508607602269004658418334504502503940402859727903693294383878071154200302763896257971254206079619835490379415298835898419059113236004579225577180514185154260338206724533113476367689411774030299121298698218265564126755266700429163509928349454809733825784797828043802066166109499204449044470247176096773604666190310066609429450939225249312953867379685425184666118270147407391422452803735634529880746930557494462669552170745646051531362748277382530506716278425646076654308087486610582606062508479352134130560464503344122026034637416982642624987045891939820259453803566756264625044736200931665292957227139400104222462627006779604436496398036720102893778730504557446104609419866714249788144684084436035017660203150575540245484370071554634051157365357440542389658627940164504966901320752988064907083034723839648783922858093892060471865623426774040955204867367280061556171121053622706568820944899234633834818385221802276346720165577111634850322122971443043533172537895307643694063063155287142549365344632356736179983852084830834636935313873113008243697886351609301351219835347958266335834398631477599391827299197296601688596926109529887077623658453485051408061020151244476776799705086508424346518957604636188965666874236415823117133132147382869889621166427685316265051794681075322556796644557118710453728948869981498676326866264703789356969124498399864571652743349905804700442685362332841284418394111513289498798194418018553300724950780264858954112619935702662774537763379814278800050060682529646646936334190193293226159941611648809516515398795212246185590049975195669769876264753524391300984254400646074230226638320129901445051861883236103490273549420630570756637555706326697577060423451825134706537550571743751943780338831366071664521530013704690668687509778500842058316576387313356869646162620297550872078245886447228825771894717523185952744206009720840324274048834905483277659612987452784327498590713731018053167656594346798159319517803869634375932582030333369112740850915697494952405562642022852139507417064708022968512081824816272567597787139289030137295267745292012737296860262692408355644627227724343950458882252647537838459739635086141920855685081465132505830951757062685838337747931152828177647473974362061885480805783758053456941604742790838897211061587970316290166665877377600048464444023012139438265218950282455672123711447724855947696403717843423818199099732305346086628432750892445228325540296802497264266639008718944646003617464780555213120089914006915393821058017098293197051913893922812973345446991513898982618967064649925114485259703909403341945647323312786057920162773534317311410579932170886209776192329619570229573165467882962688436222489733370899065662621381748499146357422653353358923797379203101605736717894119644141809782064573128576177165728287280707980357654214427887945644534900157737281445567646338307178800611454739318885071204476479364417260747652217245973700873913028910228842735920742046868776030946014977285728393929175883902182809956022781028544936890740011794535774927976927217699280945642728770743819036940224011933733545636135003711912970514422287390960304283978547224101437476598153869687355440395601780686945114222860314023340629397445829464053479158102958717688096753998396880929149921380647404063000363649795003177088397382978790753862208725356942959329951954822034094210443769996323690327832121587778980288171862220020754996342402283898753652993473657342381609795141683387612297830465404209858265609803870152982825151525946910676997525129537107324771400490993017832264356002203207570310515395143776548222635735253965579702812471639794059193477829234994513450948083473222735735799972952916478112058660778729516103033455264487314110353946889340214839509794230167795902544785697788028737374172828954219546099779367125929901740479422126142559134866126802455133148521772452223855153143522372752791350356896959289788372336205185529955479232060635380926622677208014263760855087498476565550745241716471184351223612300800874278455541376533175407923294140926761222026714015318004677244524143517499976139340022233207940828740100502910550653697196796901484652321127144349165119112767320593439443888925844127453023808335532783046998051503879587628406166011253082796151360790450005766808212653010499303638573434900017010885996001632349034597487422315813121390695242694277654225599605113502556129690619218210191740591783235160249317423797619963154393459019340023351296412868600572528547698291279633938393965167963589421654486826510471348821042816163543588460842377304419471899702748042199369366198025285333825836336944125612053450992739803613344387005808679683225018137810142067292079269836559925944540630027541511249608288194702802542466983680179425185397934235875031169811646826948498770911263179498637883948389009553468670096623564917902253458221696427355303814855128964228483302330953791630131363868720431281122100846525619113205587481404526134588673520826228874223253263377257763959337406708852336678320783926660829112629765420840262696969894029871307479310741680224995593951757070578676369269317578299485241923460319420163356093812360178290764617072444469235319023446640034010350008681507985152177936889396308327495599528587530159285757290685515426449102003020285800133042813981517849774777777441892432778534007066853395161697183391850222979138751674749032704197649280259744017712578796491235599114595561201243412209015833425559695987830277914765131157312534541671735154029715669794965621016486263737914900189630804729601886158619261981777165509085241249450241106575733958274602251419420384971297420943414438397858288923495823732972784653703498529315340123862525232669773874450343843811682513199942592422040047106861961322183601342169567468813192208515706703698547325326594379074651630007576003487134839894018492694149347559401777688464789663638964291658554615632662809772078534462006824743287996436539775757285700901426609766551183286845558829958361120285988310739962073268015725249427838584932748391721342573536983412816701344234041639755998596430164385365220914205252849299395742882876539257481271371778381809591689373015013764851506753093591552972705519584231844302364766052974844378669744348143203274915034144608508010039389107317082353201832197425937675841275400346466290077904107549677703294217646720964789470456275775260576687862838929184830591597567822439625088489331792697828795276151318434409952131260384897213463191104765538694958300183685797256392977795378413779466609245096792868025527343632178478014726690696664923251979700556492480379372464317962816161987440592992269641449412571672626819770804876874242401092142993715747729631160298749695902168272158816756069396303586722126726997736703849293106267346775076090671627882328150940705979427113079455831126614412378845440482448304449377921638781133998734107954703143638291032825977285751970211179568989778975786108011217728222596488508644743733718111439431049911012106829165857444420960524696367736403582617956337544050931009241068180899573817822571878070998416020653792699931404563000441561081288706023560566996316426947874994485055543171068883496125747102438073283419277669939501694643647332505150416846815870562377656744870580012453418431241468366957592368088151738995238226081637846274836028729471925041154900381019856312936708221160826063892214579481105679038388486702140451232262039229223475136177524850849971462745951931367718370932179360914313825624559755237562387494183542673975992316762928421625096679048267741890235595801148278089107057444857917510416086584806905081441561490958743239254315747084290933937662848048065174557100956867600713288744729758775821997138987094795515379588653480441920113226247953627101202136109775756614210927064941921541866257174772700685677194802925766825329913542239504614661352847550609008484712963365535062855275919086279157385671371387984887589404201646455432355601128845050901772768826197638479845132448433497787429582323655276894082026251103143811865742632165257784643945519796527047050623818575527963207450024674465911075171552625181857023200698048143986315749252929174229022524800855191103193144424593348286716236339102823372368932738476601400389672034386127676023787544473996274257261039253331434657118386614925677308141570021638492758750168899947846322214275796718897119811675829139743742581410664265214527008393461594901817225764063563346616822554288260128110247758195828492166534051589361865704100568157458361640716232932610690278577188489354271096037833845392720698018274895792104878308759673250509837441986419267840916842818900126616807330899924481451278778450034493223331757679830510181677210318329210739621706213227394300042574328228921947326048835497071661484090817616678398747810683288224207743325163937798341376267794460114392562735416780567942536239681294149741477780032985510202855130370310369672845803494375321614498789045702552786698456877385003572662222873974689166082039567576820419770546019922550927390865510688489375852494059115710698047883833127137055329292058111458823565088627072563273237144162939116836233692061649882224465247891943395463609290536680590900913091959943396704754081041305890644964617459586216767231742904594359249571177003182883356760966278273168669204930331909137079226741093592621333654098896192374790763625236129293845998692037008846599665190781226113564689626099469857553660971951550391878615559728095718087273736198290805234652790411909647052613091563657351437587907979058561588227708223689146299763082227549495127039935228486054468490011554800214896959809154926110319451746137968624664756570606721622502311641983802811675627938057184073973303932738609692429363145958806949946487011620762262978595080284040350122804393763630685375286033463062671583886435865931337895114465415566550695402063527721128614376459926188229911574345081497480658438955243435360510742243253449616394055304174816395415265247757247373033109962532936038182941014358079417902002894338662667320802809468214285760309920770871029686604075912521323773802611005469263575289970596716454668497549620479022743132170234857806100359294308333616332270727391841913967110394065099927417592252073545230517525688281548341067654643650201542643610403918209379352032484950907085504696665872100637067025339132289054612616182120040191534791648501357631406463972452586882600715499867875767583454388732949519844032728234770838979256457901347592681226726915060941455203539470778763888685760714686522783107983622457587650281258031018042216335782115198283290873727925308507585935661035130297129742968482390997562289424915102562527688759830384375104090208144289528406724235207017985832065078272479934115128081624374096082274978161684075999696390959414613921304831093739689685269308197600309908697410854649328166307948511695509881319241969144059345003261226327679403350915831090172455844107384532065443076102623296245869107651179258166956909471436753702245535557400579778016526606764180412025202658456525808145572366757180550585433302285451588208758626309830682380977021928979022147196584953580915211532016671248049937006313255994349637999714762611850509554812993481806359278128352376530285540556275138172205343475003199997646470028500001205709211376267556706941835964933503599829164864492705487883952071174884348829662870576431140175588618901956218133506900771193155937715174764597761363689849665734992936002661533032504586165785583924236892815152580131274868297970453866457750368197795269432034097147695148399093388303314094313311677309654076078962291939452292334753612594130913429462943197686625140888628349651436953556893667323256962470382453045538423610199894958233577497153478261128237537482839568756411714962004212695340340625253855905477248203093385433408507557825828337688013022739787431740094322700970739856134475963700148833302375043885010410130617441651792940370211472705970788473831040750556573546249300163393147862449845073850232801316835452170345289065577153918854579668733046041426700173731447409597861387057165790498644069299821963270512459575433397643310831746123025821093608808083080658569169643582839854686575865368074252717018073600775319303965419064936185023338309548302176202944338899940377383652330399699535709821108131578880863918433649727686662310176617070797811452490537273955069871242192591169407141100431568325533295028348007340941619738821414267483562232902558703486837826060839362160066035700890293346054096037624223363393243507250325583500927346138538227898088326043592210889778314612377535987812993475778787024436225009197594634851950134527052061769363248071917448949277047199833573142062700631646597889251955089834589425201435690043960864891689823550894741129734107545985607504088721938312606095328698970698956422932818873466062993302236059736290306629112169272733320574461820725251452173170168390593844497501653630454552327762412503078077151784000557969105421797341449372793931770612052429012108449879432720380218985232144330488234869706342016200855749196366039808768762311513155931890792520607078333862287371465026739613957073487382581071816104397131483318726975862614751635535178081074361538742887107995651980135406845989408697350035645242155617725947629181448119572270295206635271439690724784700261966548597125735308799850513461475558195980109421183808962538721500439302929269094610933379710272386514817673877734267541178836683206222537507529611367084997826090221699228394768603546506982766369618759420854020729399946265843481338510122914427906918995355803185464392738703582969041299898228781202230158672747586865510835900096314657936137515114225486690886425735743669465424513974645288026950247439477407733080643934641136803104481465381365836598948098215896869705033298033662265917475406203744430220527078347480614482706819949933258969906047134334322549493601445255092170016737763093872347789311974194596232472059751892050412628847481906986939033038045310331933951781965779621827222936368643205689767524111668032560110062283824624687292304476790562748389875653613516049671045175525783715397973273847217069576826304878337276549396735818552963091904949163972300581027484673097733628664490159454952778666209062754880204296206462689954271222572275064268277386734187369401670106647657612483738574491110876852768705282341896927390882372149762843160836961866245848227019045308559689589916117603556931154189887593820705715332101710287839148118006349573728339961436066750152038516792955186551985694657079765076893699593748125312531635509024009625021641360898828256028513729593881692636108736727004616064934322112010461152433976213393336175717628270025519612426538384747908041056216860777175092611773979137748325927463320866205615986274294659299749832067747996339686273355648793463427930045750372214004539529059511756843800942289296153066184800669947784476997140116063306231250512976465916305083718508303107658564862289691829174669150624681251393125581770102654044153535039238598664105990152329949396897846722274126124122903899060255827307675028839007731662328051166702875078515301154371655499603019105092053811526773530855947700330304974520261877509593432742434346914774387097975700451200728841085517622864382838209111772692037519445454348285903045002613782637761405419671910713684969873839335384074832206519147276099788015778937935762813956683845723449639821069716396077634645939702541971615915079745672659368391359994593300977351914140143910349034902122219091024485895958181506611434431637110897074838320494685436387344351516988637338545787278300726781805170735282284903174204005535474645924842830392683360225597288453045025197607247175205280113646320275125950339155825070082219615090459246935824994303388212590791212806067809057128835398789552150768395216717267553391079761689590796955390445890933452709201935873940342293672637567482195573286944827920422115464948588712951982076860029693050915415411251138275069404861184812885264750239032487688668134436555363809231315978103710128203103329832175336275304700946257703853910415355697716923708839227604533882043115835220265121327852964024121352532283924204226818402946825426515045010829558512231994012134162347297387555316299738119017253370559113961510766260221242027155318134152644060821315099991971245186166960033599616211102790127785517312991772599227438448989506596591820643638723244832695764743490389518927320077843925063997892229754260151326231845598017620886606195744903697430175308453974940557177563139904534518000878918967960402938287832454234281738339858594036767449638328997637673828532352015537220725099264329879125584838788240889877176940196906797163726570255467060858627244353404631174918438288374519523554848297929999556335789763842387584915684405730743006429979596758451544712632447532272135661937525238649457882461080862157081070767141541108627569775575445967102446764051315928200109706700016309119266763083863634760247063474694221460159556848623576149887941604901229832038316977259092194376860718426021931821502687648895430129600625586599068626658273978908508852536925767336168536363456002968528121478375484818407660776076895839410256858052806592200404596634164174629522327334165023136125413726946924097026756467862989165690023936720675201636391614176862173600575116833247530790816572573909038302537553018753984318965422177875855523837842976232961782494898837693271262582188658767184150609784481570854254025042596856506166663733996103086107788789597810950212022236982270780067256385456753977323543684847056566382128023326772721892674940464145282032530072523034065902659696344284787340046426647341397316027246383462098062538847516907401918822849471727721187330690874322138603842605577608409243522834886485614986841858901570390175450176012685753543349528822345464175246952920315113563209607096725551634303339508884733340440881573166944342081097821927316360808992319385021107448902446730562484684525494390082119205117981436956719477358673076400969065794998835299654497138813619924939645083974265130515598647071698559433115797879203253638693352676068538800062314519052168316502223740570284887760339328215779987066473201638001278425624550250348479883023987730035364449050892843221324874308326339577634285665306550737928458204885880276104891454474189127872146894058300469863512766497161241591363143314122802613775002902429859125242274045661790524418168752225157764084349374385043608789452098065897080054114484447660186229396488375259688277094620086900598016791956379802472585084432367289969075520609241500997753545041115439656114247769817043555431765584692363065578103136531619409467112829199314080089605739895254596919130817714671427352501880293965904162665910553146257233303240784593795302730486491625219630465451584132969517858563746888887784488464972097559260410034888739294696422071386291602627060175310486949255558399395562321031742907058934568053348120193371406545423831154778443484942101664199240178500301603929932392469573366124666472273245922230136574259682644523806567978028789289844421364488783410403426659528169270461159608943371489876097187474714851627940705418003093079880408803489105790939389575979040682809614343652198545662651722477287263585104270853193844047660100113641047006500606605751190279238676948802555503705749235207232464947979458814414990836995233038656936392173178840292898652326371684411058193747075915136358446097443510031318802601846066390205784303515560724188986964742025927396515769003047649197997234829821931443707778980673012934742488584284291498804553739096725065484591094585660263944479519840612108799986764966119942689804492032300055435034695366135394123746384407175569613705421164797006528521288898789962909801432035965028019109890278407812113704001928958620640844784433956347413738658510539328290065224263487384294249487476953104083877642095825739956320290684894755451153505176178363538666510211551564130718201355110301636409788718084625160759488759764142883559474144673074108015532626724907098679546732456679994625924041071516424798101131456064405069713899702920184099674769899343567878415742829716392570715992959952758782194849295193103501478417520313506944007154157389836561522407186585811731093280848389931617996878479505587807887359294765101546772448897619618529876322485788265548370787644747655509696505603549845975060523879427650914578935503726867374804224701363916013724282924116784258733376420971455057373779890001883175741957436024400205934032104943268741758834410327134711430881263497567139643905816785061820277203050966771689049164551963993881142381895072060353832718407401329416868731989902574209839357909327108077350007535423642912083149462101959060522164067236468247407634377939382978195191959864276820744934254602448812842478847961734912742274640706199729057927706260950763576473293806521034733431275169652088129062367870401639433832782019569229648895424685825605074604830448319705529231733189466020412461674734268779243372374775407190895364190931137081287161867165396307628706646171521399533206475468797360823832924094156722444626430490138894312050209697486701202491670714771575218551136456774767644079426968576435043929942980881125758602503858105387898451235719754638152337337700485750332362837857897645462144256173200075042959848510215077666093463776513794636873309875788119086331714285929628138288606025926361604685014347550974065405890875567419618283581320596426541632060231139681319709550434080649310902988996261145492607914220410314704759005388683077219468650533734860349954931532156051430526022408679919329725004474895210184403337191085874416505868561558962965522907424037097280726312749566229111647557515646693118657642803504099567997368933162150526617163318259882801594719265149282506248497658688798934953120397246830333699571825537135287420935630629283617353004214314540301730652001679403963718776521975559794798833991149564571192672568066533275196300446865913115198231739839865886837609695089016245290255916470513500744781955098134978125853160492251190307323282227795783792990146208250152280422236708327110310027970432513850794402417870832134315358453372682344047184178778429663529013145486580912043853603254411679702613946893940271887448407248317540501982228683986784345813713893931168159452038127827370362025725051864565070492874469660178563668409775159977185525210089002874049448648307037676163795927117229630475585958889824943152463936239476586096471528574228314919718857388793250423289514661317785387920151136850943254703076366038769033721732379655925968262422649751274776210412972092617584480224786255926674883791506900098912105919231905200856684960368459865524961862546029698102943396453936957469063494073904334417959761801265918016401975810420170915765547344506143989432080313418735860062148819636502211735563357083356731419398528252485868100871404706675139796502702775407198102841199178170317752046532951444901856677556752795643000808428607650947342395687847981587991137161595558043412898501735905442798984455149719183824826474821101318854272276703386217665821566704251918712884283672537680376824302210821709218258798215331300623067862013544565540735441865356913025420371786454941033738437668380017628572964253261929852345906599856159922370961944480902214878229587528713449779625373506547214097686341987951149437622518812767119975998947388039380597572871735368177170248025210126797880322782939433408587194602503363647336613336299425439258110606989368637870749773235831988789392402890653233393103559294563400495793895670473662320616441846745905230243806562470944146820871561840259890957263109836780347793787614105984173059250209113204298696822110057156249468819837821295020587956799562417944274634010340869105534288989875694999011429815035441239143275670339647231390775144679319862563273574135752581119094794479712347068605443360141215524464103583892112199939742046470926072319733711138501987614835192786744948398534567658005679416090487721405247089218800393458735861760062929278425420532617769953451823963023282186201408514661921364476112653373711871200721610031222480194402587404870184462111400863762448090826937852912051821197151748969232578631646085087340787846329762842900938602418008060609304110351910021450281623057500403445817859233106776708358435823341583795198097433544526719670073922369685979789657761415410125627193920570057366584979036597714211240589107607212967988398773427622363201212278628061621208035202181279716288752111672098489385410721425655522677601806951088430760419743606566586348047147641383922088933070208857634177530629317799245535400749226481888723934639888852355218346291546439164901640149584292986154112311592322275824375503535056741599866657754189957335687825946084670782113018610560735897195599817598847077680343531298460039860554326851290096636901547416803153507773020546211703820317226097787007181398479047309959693681885936579503778683821133368337146774645416000860616205714308993522705267923616938645811776353426897387240832717391107285414608373340757945946070606557029434946998607652671987036946046590210723135170432744725986777484358123819702385824129371625522455450987562133245780567093858652858155648217984768260812537521519273259658661977547695714912963521635353097989674707849959303337990799472598331685750213773828417714346090544173868278748148972004904585352636225520568329517676691420951490161846202527655264869887825636515283503264436168373241773057408537528790100254146301505876284388215055777137136118815584880318359147004683349840721003848001192083611344879742560356942262612575422650743605940642542352704464192135642678430951027409227799640935922278346600763628903903167541154910123033616672228183890953562471533725340734864214047491695069144851158803565349946708185604212006158790207377643192571302477200603641993504524846658528222763307826864948378989044288702212360816766815424456078179849348455575091063574562097188857236701307872402631886055788537328572484672499079644493325843153116863245651163396843016959468470172835129977171145691361031227990982300012684039968092311897193010238364509621569929361331271881935923672600442277148354315702806903855750257444365995042315072899906485814164554705530587998703061752149613667862262189536914327117116147363468535969992875129271701756505181653931181979867976188416902570086436710115521147050560872317207554657476524968101786949415101504503332185255317863840448757069028048498109417499087265981283931931405868736764000067743103135079095028366913911857147257775541897317459875816871318988384293438142928053806333408542366518896141263718770023107012814248757887033203948881364600605302299404558951864062280910748750338973523215697153707142321359074493997034947632433977140004650413548135592560545519823881837983586317174102552154094632674960633274311668078932145147645296576251645649580926703742001887085156457574132242707603082002607752149018508395113346553099517501441888086193980483316198228026955559862351751074982186884171533182355031845616096083039626766416862475269080886674552166319300750108747866910383598384167517275895483084254592048882737940631336239415010360527330986290049418498255604343912632645167824192129878567119453375807343529486712081611064234095713106180319832121305644703335580895110438981415953576961165460147330946239633239995615464354233574878961909783267282594043362649696182227230317455720023990523210302497409323288127135954437834178114000555795516349894927625154294930375346623101004708212091964238145328944834773186060302412952216590270398190959615219110796878736656400343531514911293214478094768012722717004270730921500732956137692458199234894144314454671817004802309643811446358502960535904208583466085766418202286120616964992610800221272233080220420784841815211469874549610128562908602747074886018467155385722077752642638126673661641273398415815317032073006832357024315702303553023336606124884622709887644259366484767062262317368837842563734518263459729471788360317768648811679267731532287106286031804195805739038090645704309369285883692089196636432470101932919494394668222072761615806007911625470533850417098834008820148628637445010485503866270774449237694504226429783490879839713340126948388621323166804290230585837702898344497273821705041028734076384316856945236681895632577935890397600749936590923165837522638305266581148923706070696456263500629921718671595407666816325124808808786519372272491142120662157511882176099035976919250179111731826007181177565111528036208034715589380202950499477600801349584150991896780750429053627082722579238963151175825613932810998042737039568148993879078390104553741742871165219255085027984380807359537748559406797443086832326239902183782606875646059031784502803045352975055137903236098141896616799160301984611731536670701686637537893853704837607503459636720163240800752369762421506831562298603584274543066103600299132110248109093830526929892782323590324539099908537453067393500358541379649399338219229917387535463702780726676457142734637599547929950972749376651739793284981666020204920362892541017711829629769640094274977557421192992218321161643791491719588707922113282646145903445635193765007209465191195576771633960713558599692027665802321295280425089900326179801794243016089770676070983601911205607237554474598286322703712080786116997879093325978964700642667491083276721905775343958944963284987311245663429566509122378549791227971306172684077717190764829349933433308141897461831970274479947184901040624270464219390219470917968381153810899137560383776317925213532272372819080970449621279342812684036458138588624824385490221072089157946193630707395134452340641162543707277116344363715607912121306635952627222042198312345841779023979585466814268137469122230105892968904330349140149993797914938935772343684956100080769682566952802812700462029322323705308477649802285694949483911404432361201023936684855051299263125210712540106417348868160998521372259625155416332058344139768321579635362337116370695655399528203318013711161371541035221817851542534593402309926315175054754457701952619302656659281216937266225341778679567521574575478470534719754973992371626507541591870917444349619184406827502466711660156454126727105576616594631910245178065039440285823992560190318296349289360123977907375108107085690598817476043683098814494013559799737445141827306048339679845541817822373173513612649162106402291543522959480691792093014475408637575477698640730886395442263867162463428806140196774635852022065907296851843124611151872104154939381921189794371625171170228578012854465129351841242781956761914529242274285997352782424436059042322116368617556545441641773105224011430367234232085553102594508099293004278173723272213958227351157121827360538940770394051930291371926696974098468700011704976400643865317666033649783057081800306501018462377926577079280684603445411556662772276951528785695173478173380687726632576923001523519012391856126254657308461309462313632698539525467989846813245589385793422830275416061422127216617118901842888903257411809312026448467196964407246287157204427936935491121584756694291384178214028476277370949825304221333135086797884821777687429592425426375641362162942043823283268968470058609898089144227882370903382934033201769769424843790460550987108207466343503699220887510384660551658178662915755118310395263505398783087974283061802057865484825216836429111107757260994263848765573806096645290965902860829453607588311683795727607020308906397742612043838383427163653924691291943695034243928009625525696853005679026253460378543441145620892458117860928787946864241688533055541655796974230550770288529721778875366642981365288650780169454101289694654705513774986723217037766359657438795610286167877292256127991600924188020503022997891851153261420808159924550730420978108516346749122141162149667524945538430292276379218662619223338393691815464775691896457597237277630374046656541660318530289623843148899394174106116819423761153983348012047089446014812612983663727377896288567783041442656993340050632783199853363542226945612824501052738704230154132978756241148196595118370742967555745600205494453898586672961294697812782705176413230236172156634050733018619893849476235724317306830267244118633895882535043030634660183736261628387137878800818639027246403637939593678739782822197385343938245228539921840953569930332534609796656254677067951829421503898801977029442644681994723153909455484554384869569095819390161121491588456217376938284607591471039003796149731965743734806169362971718093101704662779131724965531421046543882247256194225278452986817335970191672289860547525793014564946905672900700489836467472464479894921315451778515122873387519640230927696251324849458826260339186237728977159984746157765511564836947472451623386853218081923393534938963587242864310475335851016192065575119299652318039865366117086735425764081240287233654660106302512253011291420601156650998739898524772339924880186288752947763187142639180088085722650478634697850068381480059241957852352041015399054739083115030737959114534725342129735937813865647647122338857449379534212330353866979655115870358845967102511940835796139591680699993613513043824366510889574432917073979427076082862824367274405312597546036644370324261821243815977682721424497569910057766690634876986397903675847832618904128786394086595906981826331365932933571097443946175813497565495270908932653900161394244328854134907624632070284132407336382027997623783542900240257483493117582044578623663610043136271639058598377677058655052939699852675252667650397668609270641419348127074806751080663929151910667682492110192067172071611064622283388873197982127510388493884882308456073481142868305437692616914157587112452058305234742047778447678883065297234193304216777003904563078101622818116808835521573504561716990349633169607897623992146587533398492344820183715602479691365567490834481385907979875951799686944970147016297025655104886328112198097207881380228816526822489531673477858208473767512032428581304760669162569019026433153685334995430030848138121723767884000106860472758897632919973291555936901799469212765018191098101460133754494480344279202690095589018557077815913608361755472537485463401997707069533221806734812226841841989547480013262192519108993952473160918712323429051979795682216069316716942227785485361959978407082316598887002213431351258764138388523647301794378093725723725203504187065807838396563731511848551174392083188397727220980094946699920995416491069013420204213227586932158380869307464353602017080245402907928499582029271200311791345430909963336055829721249576513168755240002656916500459540896173137458265441801339174945442728230169958768777704648669127055989475560313975701610533670370946421449198251355038599550960967936366170541368614021276230065065749394943665945707126444265163144022106821257911381006494111054306674905143534232044100983335367858575282676029722644306964500905970969701122583797178455750797994339892663130232346491310283918590772164643746594187381103123814072661180690159092907144021291629137372748962016214672204350177043456401390541629080814662808125632250996322774907780998544941626261236652466624572921432236633803915624030807781811774974527620900726220635677858122338088542020595499263892682013559001109593251178149512438259965145699821743749948327147712121446055489332332115413656278068960114199454305420975413406426677388605963084847077818608375234591155389498267126199349969303455831665038832929462542300352021100712526407373110886049171400731650169927600392190622472847787902873716380386252927101031292346435530374247712877776482043213594195686443691456617325876216706239050316029642463353640699561463455142015384898766261830891291614396921361411304251406791747597769470904115320972305207719357233474789116035927983097774819624823183505880518569548850661444296155258361107386398674317687985908172189619813017226870294775431784290998058944051173269567461853485934359090819621809702233580532776963897296269604690273605217191173999302580547344543834758666759350979302473395000135358036280837155067519186197781916672597460611585427113621374553730423244250813846162880399085910452572409173161430098907145376410220941747767336378613496932356554862693116187210247967929145742974905825938865763671046262932719779737256503201401178882944404135701864415497410915512754227334204159628225603522383272603836902788548833297132221414007141305461562760453019025576858246974533937044172177205366360672046265676736147594217287683175909785433573645807177672206151700123709463481241678021760768254569069704487687156891343040612155541739199720409174825197846070823043837929592387311256311556313120197663069759433474624917227140700532305325130695559142284612040339385289432998335938354886057824260451434074528046892996564927990662386811014654129801894121306960029053390733087068318957474992847731406955243134639028977406429268789744022464410637414187698261263828609951441980871257316427857292070671548717334749003868187457584651281313041645890718768303587967505641357365474045238783948878190290203823418585492566728364849939727393725167467813463692383101851076408267613394381335278007901594440688239495917742696167985985391622003277966048828944387192120732324627835809721254501950409865330979266118477457787350104085812058033689115057408695727500908926758573462317242829642358788241127417453512020665341402083936063808846979583268414715112015197655880907740629290248348918938165510571851776537491879978840388486324015505030937703218423640077417829532182388988331724915617261198374949405804607654807178210026333235354173047216669560176117933984288932490400887320378874592952809216066245058357272199429646139741149192525238762428982593288100539784640069161036005234696748023335218709758949254688331446760647255054476012287199725244910291701143973256401700078468973062821778548455360361908909134756756300901700531947116991284523005869258075630766889729406363394748545660888516524877927316973971419976572272363516800145233573016214262966371036377633077805204251622577694786813234292876567534292058718321778662713960831289691824996053277630710328308063490834302553245854415906702911707627395262513676643337322650456531820105464452489915563780341152958069275682314908099358352842873861543031550345537647347199544909750755510880199920986436564959012072936201677958964398061096412359708434508021958376643445072800959563755676981758180196632299583597194043399687494800933932003594258793697846968049604001616211500684637433049675079123819792221238201342056128911153164272867176273778523786981948242045269434732844471367518670652438255289274899379204401202656432142176990411876336249096052456941485249667790990202471759224148437537330735825747987599208462888670955214331857205235934465356403162392891191651649672488191751738261164069560653193745523099735736676984075492449876109376831259253827141311882034835241615437183986924987653405705911128385260202118358705013163051270447884848388536115942153425590354183436763352918805269390112602416887175571758170250692651056653234484694440462580852273250556472193623112868323642034639817384250290272414491911459080096803274496628975243953501660235104021294771515490425311796157052338816188802731195144378508107792336427428000922511477258174652420377698235007162951390439231328660454264453171443067411263490862422081221598114519145557053564276626529200401701391769733206334995681237365821571968707312973663429964199790782302884644475615265095661893306723567348461576276071037252497900690118720393727615232270255166692007513330676679846378413113843775472206174923816702521183624147208257932894792393543912854771204208687651961017822384581911404193263068528736820949979058865169768585165369815856923891608159627494943598995419400751739458331561442810052309141651701378206702168463448589801936198828361454497635804337723327215562700647281407552598706756470813717578629462973848042406507294996875913587093871502176181452287150333545909360445226517640593141189097997814859730886210179129393244466378780090227192978506174532599972506245923727996642618039702397022224270160816295063560126365975437353230238891215584908034000121974389359271677866463578077968754557487750765415194734398004722920698746011096914815737378574757543859985591398378109509098224916617566171361229150866841884472974939296529365119206254930384994043633545255794456914981042328008305124669275114480309181905660097372108137667714706383389195610631567647780442007084694266383446952549631103142241412270396181244197120536841179244433419713171038814451738048002603797333859423622967697818930735470778877605955900867407548525732287831473452091413911101250099657695629585100402207747581151790747641875079543016174582735611902155411907457241111058138847690873227166610400914962275357283214159890447450575395889719709872757319491723996687386120126089374909151391483709947855304056627174212903686608483458277671475931075457999645443085454669361906596911147814776951852800585081812093461798849713530821915206959427918553970093053266292918526406061865866039501363571973945496721043308569349664661582507750461562471448528968893007916690268731326912098508649139587636868541019923223318509965575919320508132749137117193807882024953327227588617576411143648384767683578421575521468513941897322061477334689694048363083153454688981137346157905378720291694700326366303550741079643704867259237540199941427320866983337931198956397396402741910478317290885706707398015379165208913965620260901602233638132207310924205690443763126900591280930115907294202932317034644170182969654251769912831555483384838628502663762200720990093058370044188082741971441745130057877348421801727928371795089136605650384496357874751949269494086500665416472438371996636648159387641847927927584510449020403685082870405371204880196331955572591390607885030976560276593352973013883486604649169205392846845517902398570067807340525852435221597932577681809178952326637903048445605011348868891074109976088674412801238414908300017896403723447734920291645149799164358059207718137584201297901142549698434970041922696032589839791911896028724164263073130545900540460673222649700517932441571174203169022948553215369624477192458673233756130360253437048354886022158199597921809789562404586106007881445411980261846225474215415277236968084514357795780931449694766235723544874515981212921010288743100096746201890831561507015828162011787105419374909852935536618609905553553000081513515059231242918118711180970302257152151890546815242735442039172401105338210304264185111490912501756374973328866241338121654119595896064132963036437352866270098018490859306777946401594694185487215758927066115181301854463323844995892064639012362699854553315343769601410127236946901215428538123323661994994755944576208317316575624109426816507537223402351237918152778955561628079163965809646151759154594095134609482322995799004555985985103673949520214675983648374690216418807919453053008806440270599805079992674759285511922976199692292293992514968827122131226043041239209614830307402258102273957130581882955051550111381436938128937973487960287575977395884064978942255360167186594038980812577757847321027480537883237233616393277446694115306594336997722808221429283043383626814278205413880897997660454507108546127793887179220200124288533971529213959269392757407637065322288471860197377037209230572230631577356155235397680964016186344157789190801595118899371655056223589313930238465050054476223304742041105790095880115937539055853426016801750395114760164719867688647211705358494689105963224262792452011711412450190184180018120658303598760513479123930047906822964041467619581170682888642308596676669882615416857919267712261470617687786294880420043684474285379925691632420383036423981233322965619115905197628122486080293784753534667846143803202496901473454103172211011571892835448021709531565373971164315987144257350239518621704742767868199423274513204504895659463088234701299604455453321852910906338046261618426278235281282726280345753561032677337139679503300305911610943864166481029236960128162866905220270761807366980407866317827960122578858830815670689122934339860210352566344431613893788731314256595350181169902171354331904476881709126645600104679576543730333689647362106077869109943393633075208693144839463599145316393988953136354897676752817182858206256937418655632285905805126499306017685164922193539337905261560987237463626064022013278363169831377848696954519805598563347218593703398777590130296099395465499277292297202350751328985769153571553237920069246231817060719582316919850637263918966466666961461085302433538863611416373715644171232196126993335819553254548009462433384516872713567043255181664492019040493445978610464891429083600324686611964481106793001824591665022214953733627400302723952022353892261336856428362247390266064769048983157749916417734017611875754132508462038470980109444457117741357160755971083133080371819491075702197124382524244200316699280454438159270794607118690776342327266628174987838620844114683683658994207158462374291724058667076725946962277192233711545782178276760397023789707333132627320759992581630476149679695690119017625829903652152105580428601817844973795026156955843191823420754919450649865888864422399582736520615270064993293266227277745195800809661430979086845639637109403261473724633850922320064802067737220283235958753250376928179214843462195388910773079661716759739328539208829232146339639306877053224038700323979043002272025955580597822554777036834743498010965410731801482721905131173068994396326123961759215174335392904995364115121545711048723892441470889984427761918479650729294971367127571818730639196542834394317006850598788347259696764530865474925977479168156865709620145150272612017312563235552029537359520083048394512554962590651513883156130347139931811529182233360768767632776501596769145388370252598860373851811533841355223186186916551910766844820478095816497998236555357253165734978291771278476055216671161315604028129930620368808252341121437124165972019160843757307929375382320715314470509689316837524136667681615133355556243834940492316861935968014807823015270263729959202370598728429707025156327486400421646013605683651992570936816677902648131366569998357337861827341495635772273297332548669310988503991100628930329176992142815981866630888132604480317239405241448120624400019095054026177914437742560725130839726816164935174795205043321173376080301262134541125855726966708322511194359445881179559343020029861942711489670464785570554356399527782301669803010817935574558918682693937275790950680578241020790860259526203251889303469788910786830193931523565536279253922927199620587956507115796496382108601016727425511028580427498922749242695769729566337326625283521914051838103605832503021400949955046207154481513964869557628928032086400779830267330728652325509929569169657532104374637017889419842780339767268645725577376791804984131095577086715277698422546339843909584969899410378548829240257036771977036437997434529902633925622488355809084483757843619325422272469539417135048795293579533316303974494507662662033151039028382071764942426154092924399117432057999550193404636816100955020697942086925484131219547472071459921888773872523182045148333091442166933546968463374881552507405524040065449136735537847676876425919295650395705376172507954245061623016285995914345221502756644008155344637943442797890754331852242240321946239031180935031452692715868680104571719990689415052817608903778780677238465201831155409512773266144499997693072009696166547518586886513476092179523719628704176042622805107856154622064448717789320153560035504215401132463786177695182611739371389110815135088509032693126399472107647950204606356046412044763440259982955096016101484091583925563150601323537715471643984437593637511498195747263984521016685344000460491872686876409289096819216600152970658140323408981190364214545511284597528010239995092422306103574820490274246806841649598612665442520110167233864825985950472113852640118802159759879215205840015362129002766883343740906436479078096900180409074425717182656760419199457935783277622409724601056759161296334159905764078450096938813443870200014641189157094811174916415474055437577788648700521447472298561514177252557240330483269331449942044788090990734860437167622655104482943085397479085885909289086551133662564603554978579015087726907604132918601055516686387546856389884441013805507238936468792734222435554766874465465135885103366209889383121764177001690409822267446077915816283497983283091488346715169672889297877006482899578227121468069482234428109532257651396770890265349966192278492246456978856441513722124358488641698844465775916852442241617115994821503554936184828905796868678696998625041828428108570742024011735823562982758029142668960758931162551767797139034703684600159206561828804096378186458120429385284917622301333986751668170844849024994257812143698409030085817090024746950400406828257532124196063233797692519497483334913363529691237346863128033815419282792744312596087853363299775798778544281183124411081008332699631141510109963412950819915110718823030291514122554615178630841294240275213536906435455206828905192817579619100391611794347934000565718316071871145964347688984088222366537027640193632762656451802822315354660117985543563329615318513988206462110255196578578399873324573501915717251394847690648792679231014552233070012473860180608045366665184862378205412084944848259735684291734219612270275104340640709723212311532946806638571180095284548710633324466883042957872347882886271739806583059575306683669162487634616663327230077113793176212673897848095219219885308816610099206566218146562989392403885453067077589480792274467534763975105965448109924724740964641437358915624115061885584235670137909374160620400430545877221406867758317095075374329628797791202342550661625838382657721456294298201477007937499689908327210307519912340079890785176370477693729113049466017528122766549710263529316630983755040915395132928261108613319178652608474745749029536807868456915167715830353192945971083277217935552152024813174086576390595475114485535293833789811250644497195469667956822448301064978291970284466185980309620466820019119654373134172449743327765212028419755340475881791493350058437178468410108501130394920077622181266361406195927105740432877091673811111040424816126696355758163150901603665645035146350128331028131322661471965378709362209682453847964321431628281020895779323760545558684736875795876336246871857827158847653962505897130882235089598565854382473833748615686022356973856866871582290905003899555520783221452887859272272317834134313910848341319023233702633766149407823277254337126182204618132067981729606622229966477912936588503180285168975856727648878283085104113990808291395182987383478202475804394042459240272839734970782044030781539337329720196768199702807709685078440869876106047729823825132863969212456703931690656121811302013498214505226028708528696122734176545631390882631375760280304503719630316430054785823924839709279489430419530754112132969561658034376614383307395743814103474921242612506804928250500872827312362288024628077842113556481676763921552961621762662170427479133623833926471230423145165189495776107431942354830379333817354175010489543796010568488344381563565392326073812855025016611255701425062579974035376141468697349089480101557669608506622559668325905365388945122027300085437515974853403215258836696476535317861152027884926464005017843409099887800501221809262162943431491039414663167895566581156045297978008468760434229251672959598410787918268966056533024745788255079345856631446089788654474923614164248424073672868016803283042839955234761562361268458025893167901383198083016725974876808231794353685932643623335522036625635953168618643407881826847248404326380496047738497866336128430562302765291079076082319698750404673059390474022861618389400785391539126741455124090194463831395542373778613444825519030102695636640988241721756579936053256884983301069898949658257341181259726478618919345064440634982013519461772024281803316546136018703690549352897793127308345686849626018420237265428331505161133064647100898900354551936826425713875631096792876701826072549223611746292360093882476771224646742586032018803904351683182442770220080669613596156790144959766935425397499021694817120951068277035161536319944797133731793677596648697937029290884993392896110210528470049514452066889947543118012849073484291756564553590564208717225044168526238255750245992595704834837195721554914414238242648509346099231105114762823215616061377659143857096796990791832479252469636539984609130710609390046868067557403704166280797282707101487318186143749135111625099746246593068858036121804675024976326818260733404114283749017053391049554923317594957212220139851361575423946100472111010240074190605764714941663626347011051609329132513948629877307257598924003384817046464645461577716008003633375665926799277377338587162555530430484697142731244540413349024914369797961962510520104762334871093966125382411222573921604819777957776385646001484353901111504323098427970757577542564103198120267077809859264789131738749562317308877744182267987905745749474182057130739174748449288651978884244091428908488708927717496023448750192445531876859433660158526724940411491819616810745485927083247641497099858394753119901450745962529907102758454167488376274941187078826759950768297241552161650819786442726127826114995095737240629874236103201177263762799070194701105785304387996864382349161221025176965003502797372498283136245745298474101726145250535311709371315268047921355073503246853541037396737429507866218992669515613118015698408784511931464788511461674393424720456936809273870844149145676279233772407167954176914072136948214177549517078719364714603769489492341639151598187066301427683738006715223104854321820348829588876329212972404674205091426379177166764800192491493467745160656077973528802926324114676123437544901083496920370496435944605768561787065704356654185346401195574039381581515181419941734497588489499650211194675039323385034774425676179069732550390487815837876998107951840377647395665423872004651603815538336537679125081927519172212198662401528857310134225373109179362600275451634099692946178703455470934249310943791931967819348323744195716370877854229416113465279021494331316714969447719391329242709494006997967428679381985074368420033127778475211095105596330578594624090476627577614488549396630414542392358398427323306032372977212354282754235339128172199259152569315051185698526062182975088839103400629277623174950126433772421034598585767667371591253852151411964409219072669172225754176782498581637686768084926126879498722481214129726725558711078260408156778751405266996026930695564832514599719823648572085586161629804261760840562786024867668335629054091308678067071372934124516395413984709299078558806133760339978280698424078221556127988190485312764984062968946536262284739732456766340421560841822224146952559020838695370165637215247711179363109448812242179365474992789466139060743906314749947173679577238836547821031209058160258100040613546558518969511590790046797978772966150036738249471322752057495067425600871064732970543917402533139273077199783331557125273993690417177076122128564172474176784636269023752083390272213616626148857392325156634543460731438210701697615200414151075829070140306271137993047259187465706041516061765984348555976283203985317734958492130716041677745178483292895134700459505903975075694799673687081511658983398219883568692008443913979656800524321772853117209869214628812040104097900012490835377510448761943727487241189890249510075542022591589053349610937282539397629504662603052162847447029977136683208670021905492722181179576234660257869823588295695075241187972178827970860297266715947169341206401020326137455714850466331892783300052542342268147496566100455141377654432581634177706737809712513180912140888194014613763274625506164444191670028535388992899877158044233514324572597951833605731003124204106971518051530574088261957288769089083102616132850688187881937785937602908726650924977674060795885170710715365304016268243194897443254266085092512629711862487694342872918828968087170056803323363600623272473855301088986982917629868555616187580565937900643148298315688549390324404265244030174834928217115906806394964202560149343093350296989149988903659097501607430081568951307316593356259214359726502487842853357545521239371140747065694729193429151911032204594066918652800036264404968375973634753420312202493551249107273229592775226912361780605349575491445889651662648104341344888675244870163873771866274064680513364916275502656869292353765247901161564686574604183737401946973427751327693145793217715971132355485591657060938146498982475567530119919873465867087667682210702074010511331349896145350806124262235126833770999250168570570389098746766366235697594045004558434601090974063435867280433547527229917967346635271603456368285203704005778225870077095711535662552854833865025155318187113068270697785765553017961168827461987949673311428054780538140130075839168968411346338487217512258706602462046032033307320640423275346545503049831254648487746193477540567873412153886254096157355058934049656951396490952237174212858362541236249634726928521110091446705512986616441948473718150223967169095729775188342846621845939843321061615830085601300899677676544582706160768995924404520313537493569553533302933551260160904929540016867743089032858642017709521862970790429268381554005193585863437584404293938860212436129957778102455676642333222104866751499070826809902457492630600325903169002403827280507634896219743296021768514040587027093025503033679198962040665510101761240322729399760634973306891543587949228263788023394112301208913273772677531077034152826539411771937538063921361747150485889786106653686176023756281466286362487445621364578821928249588197515927903663235994605726072079012699769639294830285803837350098251170545375907984520246283668753179486003302746427808417934987305193402615049307527094697273668588058135411166122703514781177459093719040007938842399446469871834961835681481232385344618285531730235445841307935203686146135523771615504756137951670043859272369485789262354075905796745797417562105784977886721496717103649360600009097732097672912193166682522066173881198727643700079363319489670785679144580847239827068769681054986488970581782679803201131204089233335143801839219516731512492708019213750268311782361056965998790554067026827944801408850115793506581102951468028789155733431033113433204777849875449069179699493085353002720842349039425035994553351024891404112891546037951701288436943504297032743501845249502739033838393504413014760383037735624731346186292818714071115674980492999714767697007733461925820072821970972809224207098780232152257846746957497889835771097435942180879480592181285327453675830422146079329983734927473861843413166785790352174557330132686985508260992849269774288318487369728318042373758442672587575850824634636272413340693596355901225011844558328889627258320226189277832911835329207131049955681079806952014583964553309247811422882240221874867851327798813708660368176587165368297936290578723716327532551464631889938679419994735541721971524125786739439435113934616026072920599839152233222806660078142049856639190914829407330304322759257350715653556152406846379419356130945609499284552883283448677845791802133493218234350979829889133765134291834849838905988254819013401163743641680103501597158433668493997577166470012969371624350190878652326504623286484299210416618207375427455646424870349144841980489891370724677428382863709593387432914373621764216393763515329662378780450178927060100677112682830132639914807583242726578857876889592595859258866777102660151225756988220918555355712034662855733898920860464263974695186678224797509335219209229835844267866569151409979877889219567777161465853805836684180538028984913232295385776767220797961557436649553464503512501047733030242678925956550967831550511870886560310329477751866087357980282471527690551489971312909416463243638729948165531416014440498706220803704959339230363101288340049084909328178276545232110096313603002593099426098253707817869577705817323643207618943210408368593965741557101691280595210252322713140256243111863965713903766916517614122806713932804840831753457320888479580677647291813764720115170907876229646011744054189803591687989377137740493475669164035963397733684917508067937810730079607187979434755597926505810860389386235102248018616531936881473717332658148277099322304811376745272751023297243200975931985354128097812578416450996011175356181041493125965814976681147751040658658840248733618399527022102310046696036845280283571906868961790807717125418850016565692079960356475697245375468500813655895477362580786283681026720032370011361978609871173328802148671083227090208042106225391239721304733932337601154109036542078885995832032169094071367014860002089052607318657889951796907340458706272762394188555318645055037331663704108244935075774974568349201815044732076628161009167640397379719787428685301169281732111432536411471462079624128646272287021952044092853688670231934152540210051106113586569336168153130548477144418558265658964274761821180093412990725042548194005110907350730924689478006357015320133766442718152507749311402326442538200403037479693241108521202776322512261704166962338293992873388506173437559138458980755093849037874352808003940016238971583420424253281438507706094146431161094540695099411785968195594647181730040831584236224311923476301008803781610158731306701469055971975224362083926803088332871475914220336176138930619862666347547404369721347573589372642348417413830007569794232466182920429511911134007085096149970150628212821174035675035692115868670725275729007840219392443591896052283195177811471260103517760007022400655747725155415622503911348434907217674428535645644365346229331575447711115355998185844262994700292676434331133390670703185304403580473455047701293016189878730687890583181804539606601978253979340745696148806112962419523024118604619809157234404737758438360864000638610872681796906211161854383807404191083359358897534765373378225212125331558501722492850352446619610422074157295465326439090888641531236025630053490301160377302150295095941264018490330488854966992410763470407252635923076302512044526958051509740956259557918375059970214166981486392137764157806557440612033799035728623603987742886394318188564919765038344198286504524377304852508045029521198491385123133260591847643290913071110403329846748300779561978819967255291352228571848834974243673815135611962000786664386671711015707324237083545350145902266204770225861647639804400909591352917392025172830347985229705386176556258166792240877293856700711610266685464596396606011350218322626092721220586766318635352576356349563109933239056774824642283339991066979354137100118426813853308148240368206600684098155519637936166399910193139788346308670115197366134416616938238233177525940371040015232477860441737772196709819979214923963801086015952061900776254032427174650603169906658027744214435068556449164092814469046604572802242366784983246886464980827060705536375117226455758018378618505111679229351357124687702982356623276661799184270319468181508297686899525245570921056901768905241464661905954524760727829800605801734745926501329791432694286261106613481127446419257293600972866428478690339752066726296643112136613170664190786393384134570860237790874259680395375938352656296959765290712837581414217036452916519933165721334015319501962946955744740752781169867557317564286015092129334275568066647343403519478916204183795320845846102449314605753610404461324881318894926707811274520641794941396047664659588613465464761451069930422411794415573462274442818005116041164300476101941729947928719817422537323893895477557947460814585767579863815341978916325937039808398766364780451583454744866034042539121974657611597043382463171118735063800293533817784259940933740117947512001350239914474903375892661056027911937836454828481599257438936646946900898437173362776733560699059061438120755096684671534076016909042560172681479019200198310241510691572344254991654835894383939068176818207503393873404450503208178556587942717378049913514868289570187444188682954258357498085098241855242207107419566785447904320029505642381977964079798982752216702954078943470376906461566180102925117294561401770840426796605995420570659586079753618953870225857212263537809326437172912291757843061976717688074526487348043019760310430376777455353048241343693826394136195943263309102396627710146772624645871817371822242672800622265709467756123676744621606783255425635085968826328908870384742859415940509194276356579777850589656800030804713749338202197496228777519400974648986118665548395166718601525636166059758547181018575722106074037502239940749328325881529547410447274447453954116033613628940650583198450627711859870211395597568443523915289823301545300004828846831821777625129741344556322758351450844111385571493599059507674788066163154747388170273121550688262569303991088429574294467222777283643285964818887652136344452348535848226870008064762502045423299121726707957943903060250929622729149289937312239748886324547069590086045762445829549374228815284926785439481464758286539519919058668187325242541002114628232359001033563915831109886294383821205062554230314290272729389442069142408365948381786114025355055411749000487231765139168022222105487651555919510388432367093828045324197307129324621061176609477627108194373686667198216985853486614418007998022528580810928229914561574533572618381432661652518692850216939825518257954500965446755154579654791947474367069065755092480238148064908362645702949791032830677665688083357954070317732197692928867422537821319631042312103792589415615783526895380588768239945679673753570649863243506853498333712723257798651795518576579252982261493915081034828908867718639785212613033462176674919949439780679501545414677347153741475469181247942516208977815739184925464736204374030817661488011191834360438302409997265500316372219064687037640586460197508754340360102091100498802318282917826547938679671587041608940604049203555041544558590476841799361602789218991631992393319180716900221500858303012400153928269282860378236184961238922061394145374093824038311359031893966003017911446764799448050472321873440960904465573386593174145757638293677613334757488297652483147459971428454043753440031500341716628482460850346277743904715961547157404070677640367256915444376341375914558045751525014087199057521212299176057903499543294482588861052230074989836330916799738293873198570322616777927411552053853050400535629531967482238884965245932045505278788202308328622833294113357558129405285652968218915245468013623213544120551476665918577521387464731135636654212467737531919987360523107911877244014459398424774339199438257716145023290922751635935015695279400238248023715193366919961294378839657569450741113688356521026062452619473909093948572839044727474254123538041088598199130221776332592737082853348119746123889898167990357761366400902477454697502861920439411010646731221032601737553097528864741260884825045989711537690256024493286898826349132808695878138553651385610272537511724384538989036322210280332761006629335988743142003727893972535992477208856064922715177769707284647296895374108803277714944848782681874394295078772339427104010436018736964475104421948175788817964111645265950797350067172599560898891594264199261342969882954740348721349386719031407854476184835312094836577809632772834720443773255948729444179550065960603937107748572668008765848607534929192385752462420321488232744797579862419195710037517614098936039739338388856074733772554863216372770908708569926113380331608484031390325352831283534687392477473261888659687496424997821985419714283747522623014901089881961688072516782999692161222201423087805892999490415936380154925639128037720708444989925180480870807266206451123875896217037378720006408042210469708182695298515261259870182921800094959247426372416821510218478233746020703368541246023920628837633381915761185638311810368579192750952017501028006949043230158430401711433511338776671921455556441905898128427388423480325190670032073654889449731245994323305684023868066975127298064045618260687394243102985051030870401710604377576516345355384173751621474515106506943405544310665940379663435668298851832088408830767817105751996193448584878607954157691164467930491875007168593496387216078299381518065251285012037016316499758419995665550780697082425017275343604185083798998368574136940609767887171569598639773661960522294655004837788275760701630485111667226542152742313811195920765746862754986399472732971698948346646701506461867732257334734074651951748341653115147441004090401125508333472121544858131760169160334582972363227359156138359146815905210147324123360922390466188244639820289673963876403905713473485795610767715263119594453420528692702723144950057463990297896150506455870558303357868847194379455806059390960662512595888075549352042911938546826248579477804761245168048796336125352257761229555525138722617683045496037456011644113620395051943435220680354112234291133702523347414689451367080016641934195998535159831614602409059119859819758693007796517306509063667790499686412281537949392316013329252039418026165625963641335448977784172565005821337199574437085770119349775724046578886978124647623055801363466759154191966206804608498404347519591455724192454686044983734740670188077792641509581771165012405318619970320006968557817029842272867206686190583846920655629027335324145478920882807818997405188418740743613661490145004422625423999532288936958229403233135449616496111781040863044206813113467725591867924043493127201091217400130744282247717108748919939349884581448027547091178124969201898874448823785007307908807288389202332228150512494416701854552996452729167126589178224926572406513983568214568302734638926610018746147348486486208986277810824021795127653770202588049376730698085069980836599955321325927977365369642394589719320711616097201662919390658439515597086219291781943420223816600495485669866936291705787602466839592060341741093315954361885904820117656719855184907473353798495056137258982343337788073903609681879412617554036374784549686134190294081062902888254103223421958511597155931113725053434576266301724949376345707780535468761601069990395569151712353474953564982691825362337436755180163519493589693312788424267957950746400319561851271839827379427998418236990876526719187448633057767443445473214766762027527929476552114560771121703430732051303235438501393819974447709072501825958690401939584032924193340701856659842501184799563320655877614779216208928065877035656549706352299428993406227232352000542429096981243610349425307331470219126945026174552697658600056877388050746945820949388451483486243032328926952551423076067353210085973249525302233130247579680184646708981550845876880211040205472113558649063335517713229611701114202562113740367955966053477306949727376731247605597425062140588015819145058332456022145244836378766317673529841568498131639848835969231756001579930855113332582667580752048258404505400186914666475576608453319626913314254563223732472246553363481128242596780877937675112082524638169930660497471735478648753119276588413031184938284755974723398364483585979697541597361846578747786308542322157450422105501867397573030295986724492771831685476903039661967110616141881571002388221327647701861754444268146203983306290965262806806206005547364500215956756127565785121515745080089859662898776745053010661551920457931984383733246046373433769531473099270703740633258887984585788593005139015961523615172889201260373077452804436030387227122309845303139590142514503447237363491145635163998128180775065670088751325813071458661042326138445592216859433499132312658245415660967636080684129365194598873487815092164515515746097232072617183160116392197178837315411664945454336864222100124916761423545991573471893861969969417000939529585518873707733087130260421818280242107150366591677251222041546603093480136655777416991987382734618834999767228317573092710749324087772239005897311400155304825971924743485709398595051410801193587272186719569826073234772831817255078184435299354889636851265940077693737808253687031180757007363580084635259937823274598363139915836818900281005382375094328992482538937236603103990685190591799434456787549950814199246763176935204020632490136506480589322103003014126633086434764944565658204671780614798890138557836283241208845296761873249049345953458883273963675308958656599378567376189970242467097093812285525673064020830356428020524663554020716199490810767828237762925245936601592101515839188871714451973516676912017396552863807466590079388223550442229474841269174612263922226315017883415516716726291109021942689783380733548739605580348584166485701092604613850204907343541698143044423703775287224063406322506449484952770029242342155503968473519711472755329189145452843961006615220137021017973794546006987491110856599329846072542691186067167096286948681234904658946063281860542792702096556449794462504082368159129943656798160525789305552047172657240511920050231213210916937053575399235965473656580909490732401758188040573761558286665993744640329032059515524437410605021138902434527446110964830783984008215783640947038773150571281274454929512452264591947690258774049269292529989958790517576030853563070090588012271835382565514356842716992676295852841563042102764917239880986075281929314158156119553024800012299703245520366941712130986780737234635051754702403300310647066652361434389521870074616614629298975199975550906344233325857685674029612879474304355105489004392799592637356519282029519917764950831284182603053115546780318217493024706473341992211230047293949729336602378011910886538177608852514839652097502967668519956394068407766302746466435133156954904593378425673679995179060665261177351841086583694204946080187195589774881075879583326653067661466996861074080266521219045185453100269788963476556643253839843094625293816490650697196608302217264673202940909102498703475003397642919604314009180586343679099355734085879907225434183047533792668431552152302446695439491936410928318508338938539313006440434846504436810777298367477497671722245795114522547144489782078139133883237487913728466998290616136892384429954165789613535580129582876715538409724238582400852705468400838809623577281655811841484191722549993177630956290665843700226973195362054348443487605615896625062745981319965470285097642643173026289291765146000871928388560663239641577863263848430920518523820819180727498652978490808535952047602515678888932731227899747944246378899925815909179310406304934498874167251898267410056775900126806430002941518154908257293220509319400432907680259862157236691501475223657307990608977617075002991435654758366936588299928857785846404919799180097015978896590080707991313975010376286638390403569882219770689754645312936747836357231617676970325222212199422389086816859831929553892943929783143098884280035724031278672553068735264405652937470776765513818691390723097061229227313109631997763325333700944987695926456630297826416945862200881181697489644594894449589603821151563124039153951281110587115859954590181767195718128502427615771162193413839359138784528286471234636076102606327132015468749805000664807169918309678870446191467309322281914847760745670970279154452769555640583751217077678789924691305997277120949403391793242863335078587425422319366519750501876727149890879360120292911619787317304317979824290288039958620978590298738090647084707611037983635626627212591941231448918700023760881117340842595757471213217227295148105597417954167896269402063057833814619278555817936905635740128906921660130260262062146128322790896591335846336348945110755154194173570393204121069496635490352850111801085510258098668660713204342225387902642072450615452955698426946782210779137018154377040053763877249176792076417301116688150261992884352724126789844155775700082914179589490490968164131950500929584862264581031644240966725733773258186223589754707792872641808515702771566393391475001314181232791945671857747710387194756423234150145017060645705021140569106913791963304447376039444615079538920387254543501718989501244863989371677111466019901977902951582583931822228833313761546411638491832884124386847168715977737125893055946223877542899086393720196300427532344759153023276352128871752738535592702486918256053980946258729680146524119049266006488233536942133764288373520299597742267476186715753831069709739429185389403136526902453728027413358767374194216698160601683824291954397077718698021488403044738160765488082152756675729874172538366514753387684184006679445854101693534681096725335186063376340866012319371573390936132060815231332406497453255149173315400972379780378693374463784864694030856977047195938114339108663258126134396691418343259962199579125086790080170258859849698290961771149377348847553637854897165949073989414153894295451934453677228480503601462805504983506074916827608461635077872375844093854295973423443963586936040344261905619475656253532272080932685667899142015846969188999730410075634012103020227267577653655821721085048004085497136150830164062694398477704222121934501868534637593562519697359781924027905673215238684000828787177645689928699524963355627683883027274113680804237939377285304114504325112625738106763449100039803836248174550542098766160097499605354062877619320044371980331402759556984075206530820273415384748544675245022240247296633227850996274823965695167642783957035277105637165843686752573457417174902105812226066604888937337536721499641828687853378010721543917053040234175020196086409399550633380406195871552543724185603439155527579423194700928256105678724368616621046504971654621792525473514777447533314329807923929663334850165744444445069227668018447820968670610705836426867714310680555912888684625716149696055103631057390619861737942168919648020303228466219898192130915806985136233042913124922819033087237052017517574344236691708007092726118657020193304574483190085435856243631081617553163315833101177282662481755876025099631121000697048840844451457701904786665658640389958795831149996000586640331937851619179824425473232741282762266698859990397428264467618950699888442446013889763614690738388205522921851901923383004570501286809144625504876917036935087871396478994363809974201595303426444246017905797093678244997835354295293409323200400108858446075211450860607365023166109691462554285938213551283885495949156606420032605371543945087391440862983188365919108387231884135695876643560880635638319013774288565722908451716530075165459392134939133060652472375019016078317935572338089670126545086827375884433823102777230430285312679906907357639177803426872095708733336656091870470948743625522254503834669405195116536390783328840796098553650512405279551544161631106885216854594667696952444032055440563880164793774892649038040075864244957582436629775710470736748132509448244460570784622825346326731479303678408470797415652379923207752268819788435100670499468005447453673929488750673803227673451441589320701486511172352445083643903218324654341850230374405394115665558555780393624487276557242715959002151843936542810100327330597761536481199961744768473752044096602770866352521258277019393942861515019462598884908657500418498112729519787524406141795463649601596561235349411278904790165357916167525751515614545061359345036753059060297579846755155843180544701719885094823048804835600098513242705424156975731695008214890710756524982917033765469978682882206124975282161614142887138671489450960948524932025158348726924773874819354075475444382613014969743194512186808897828167898352133602493669044072918452435885891941036458116141652449598291303360362413470741934611780788829241203892096931531136596155974033012599559226067503642163045691408709766122991984318152229549791372690685307308857014624837591582772244727011168375884310429541491139204161892848581835151781331482126881021849282987121383193578807047293364958220114032016160430448752868775804921729022835187538712020682972600459289427364420092075737617231983259693462992306702574296729722520688864587262243132341686749177317917789525139895494985195347350183261254383433687882354979789215121206857180644046063989112910326005495837917077105984449492947782219058611033646542434314357388063362658715721266767754335975285591190859501619821471089347447335577261645747837170350486242183960962038893356488491456243936829238201215086863646527305530306636419003878200668034585857355078071094059295991777632575995098915052741813796929273195613425269475447790067034782021912315471454373879837897460424955046788624317162931235597808848503087960802713130696599822721126452178463151908148966922389527462479317769278365398738439101907187084082526220932096707832630154223893205931535451980313824550307365484345095005181702334676457315415185497588759284494133509299224158109054468736010599367578616809355687316464111403364413160159325578163327047812576633180585899378487934904566552972336131692319040514307608368713931158299573960749142715266857230050200971072874573196102635437993540132649288686285018358099943576250881815951643063058621532152191403052922323273073883169066059822481809464842620328849125506551742056712856153134454675553728203557301452365099004608368203514818041267665053444187267446474430412577701031177220819769434015672783808266331519128796544264178218485564285466614279676166312156906862934037248791239364594716857593165934650358911648631066629536236825224861038637394576099385401609533597419753121668282143669300466091237747777631310206514009810259625415851952254822418460455373640802727769271927022511900665541916600616007321343325283716589037541119899430656203737960354942064778476111022969474116475819558639977456299457027191956635503612682720023565384415425316474743959931494250429523893978245470109262320470180339971156358613829698025986406645550610447776916097438318832468506639862569515409740490195778666154979646509188131066174293007788770590627629397323285242583016804127592992100253306404690656109068035929698415008567208589201709334065213967607825293421627987738610334619856906355073217432722010060098822087392493356520493464108279459468546363663049945176021585750801448514763936465388577536771202548455380420727373231237432774141296743296140723447500446992900905962722384375404228677269391109026561547418405173317168238895275983965316947307366653816170920942326896093066623853421031769341382531592076981656688366725624458929646571196467298267034840119789459339700985611217402330783167950033790332337341955373155917881014205415301846270864280917655099462660003076777445281257997637534448474467774795627977997901421117583459849503368126982469077198909202743982986021656777325967006132645500113147247720920950276575840525539442298006325951586673234161645197500255424987790488848727876311216702709428373297784023503349622834913387842549933760834375119402889038868896727978774629108218313184162245187425372821113351994494220146203561854185840103842632773485662901821562357758339749599637698882251858068647370573140744178195729373227497187222933348168366328353077329398129540966820062548266914631563171796323153794027152737074303425863464000109111500233968750208425856059334160633609443235740182065655945744484685492255947100197100397750328397574895865340546937181157492595094998636609625214586572466102503806528647913026360018982319552565724623177182230314777766041684258918218788888702601791847276206165345613404873803687779202271117725829046312819505007335247611587012054691707566727021765919373577144854625363016972182301734270591013328943526414756544966422958271693153153985134457485618471124797821932284244632416270993563058061862390785186355138869887974239272800033079685166363849844128173350145144582250643536667586358270842937635389464091277545377259497087705490262388811196616470508129050160477124627912488482252142182632316735775582934246208596701249276206207332141577113868272910003566254378816526021740382120513481842877256692997572585143033826987181069291217541637553951965004092534899252563247750415657458563273308147498377447055499807717985090858852381314290465466824293892635903207869855855877546994343279539036812617872473552646038738177510077867210907074912506393141954083526606979647573834851113301632743489021841581099298494766709342358521041262163333684477296935977114483000421100771586613991533757496780930003726344231232183220883218641366409406515931628335602146559276582708862759931348276131900804370665457450097794005484800091699146721052497115830927177061672130311575201183772096033606767881917451979095085501964337370201993640601492569758426186321170415182477820210260566167110188664850341596389223508247853172339352551200937682487913306144127440210928374284484931316945724961933367018852246434115194551343924641898785952421212788588742722844490012528207273320774483911480601359751065670371576232724801321068166563952187309475639316440657218877825330187535735512408678796560690358616914586695679265031694027499437190162689618553555127665965727920134449585714429677951945259826558152509255535443229807766671398207051365016772050402090408939600889239530191223607608829565499010726955913943746712206417938008577588983804430695760982044892809423603464009838304412506532697207991736146664815811077428952889349091294626087185470692057432488832249163104094846439143675381237210748645970606109822337483555338843393077553073232951389390566697558358306255399901583541959568418849797810836015396180480586757177484155725488567674491342455753193780704762954418665519326782824806101399486419366103293748381635787853594114688300824960838292087352291727119554648531343962328290369267011095691357916184939751808498190411766320673896510163445101296544760459162866197453709289358039453528587332246404601125980965348635573411452295299519579789732763938372062003403295436855904851722394457682586394452834554309659445775529036336707623952402263009649062912971358348516388866295113845436258130777634159114694626515335464477787709022407423324924028749344179134867490836640303333154516071437446012850274903155248782825558898873208205572737487244358381550441038308124573236228858465944849846862923115016937289012464620897979400141542876377755635947273848379962325460617416229683689447862303032402119596997413988428330599905909703953612891052245539287646592136395424275252365750737326495179581177278040097769327348576841833405248253921340177678167840770623605248915757408471598915223956654423208608140741722590892888458107343575832141999392841704634262969502421994179585914697431737105463037786113272612840146870668636939344216609456928133085787763790024333977128082081385815274167997734675364790878760964446646064504711730739323466186184737724737865901102728505714807578370733812371695762546319040788857777454160365389340727695929615014638685531421890991380781761949636997395248167172003058016967267883818898134180877330463050520303586730193972182567641521181351351389620548302406449998901521633921449282261302388166433962086011938124968275895214280488426566677189705530318097595797805723264598251078550078084445521392185343253301584661333009495067507339035622419049465631075151742436566285835083767407455732351476609474877137311852219095154739196032333520265109772467011719728468098830371687272397569585470907955177205044074906385221200305435562412141791390916535843133581580975927429417642050373021729822455840410315379415078773054756494727724683210819917148981226483953703210915311598936886186579812218011582978727588305981550353857514143713794921644304282181977844442458479472960676117522916307607008168104266036525018776146118781478886095938293883562810544458597809445777624075174090575048181340730775548162753996884036948541603132510635516754104286145761365602375311968654246652705575534297167247807968224773711062099358761356605353663875184874798800783129347925087082524226816242113410514422565527112833211323196672020969610827664722722636838759424588803548403914907109242147703341797036125765526249918442702126856817437487205365007786579732243164936990473339769013435317558343243473854345699950383441400008031823848158172493543457874933048748034065593523381730491059730395749175582395025950229710307289078736398934374859402193190790922438039669434259859663562116296350147419080680521640683573125946000404636573036305056869184476174468818469886634553886145326116160023819183670647103421301617620010486521546196340105616883441019199625729752429702530811684453108340805767333306525114450603468999145767128100056328642125835235750573890275544295493503934009947572431904805131600102627724598732485893570445714533033933110606349187163224951671613895003218114881444617862944028820884307090971999183368673831118374695298546610403582524405768183952020888418597720879583126174548766732668220552260552970034225241569859798106450267259283388947702938584792805071801814371300261585930950356032401378666400939840897229951742233980553350165979190780965425258106762173129846584165609453307067071807443982620105695047919795712072332380038232983655646110542444116590474284143152884222957736081890591795309821158944384772753276839214263777121381551804778534219413752328895772565017739134617639339855790270075134806238301861819354634010048304086219688114205528433708472624971875791455834362191488201330845613458284737424366616881211007659850882865458454930911375739292663979446504095487321363769033264045627904200451078945137359896088893805536256002385177908147513803627600759820004776566237237038365126520741759107195769357544916313698053189557366594962970905286422436828699697859188986961862866085773719254989042794697652235356839661174012399367359955181040281512203897216495350471443071800062951459479502279970212297148813882207749462019366553476771355849106774751963744104310026287279161851349736448350680365756736917610862400714352384194210349734890570907032354851408218741627967316293404585107661586533526334099696868418130474043454767787395400391791460969073612666772695276828655394866940626229606350408675240344490805359244516117333750261972848171758641952516519744798605778637173906332683707432987144945154043185914853982953652846652322199625594640595063238941815114595845941860192593791408433869511087856821505091717622814232473368264207309696531427865406513638735832510124311794981641155874314469403667842323228611336524251395972992570163751104078407377459838146844974866339857070437197167003856256780239043885711232842449196868732995991533017306636999896347260204463401950860667098335035848870887005572385316546524878996727905986452014522371805987744358686371304177187277532934151683286648274654886232433627533213230078916377126292396233356111459989444185017445354432536460965707926639295248691274163540248842293535814407691538185837175631226790416170671797378056951648959323041402116728962900668116346069505168038306700894069267691453120516794318984726175358016770148722370777344983535854541957452803550905072148471443654375516566535227896272872311793731645392340510033062158203820465281830864946564058820186366729911008481802878650604645515428328572764157698655067869240314126842605052428106701693742454392703399015554239431503607036183781162559533466432498565236218252608944217605656106388964578036070887649616952516690536795179749399199366269034116985500854773702648923185430256726039588458031120353174568077887194730770392356636488021192421659923466207021152199677263784348286808608253223666284494439797391777868923101008349059102200102825465559995149953886556846988411923603962285921511550028720861929585477821492403447512048726989476819206637598159692717260335358083340452314334715743065195710933457663675519140238631540470414856596056191649502087316016291277300357424394943449952881882110871960576104354958778561023486651214993968087201883401468908795653178704285433488280611291812743496397326270170839420102944101990963972494951005393771419353917418238124289420153350530422288913626273143783024010449800963241558934928618162381689672131428590854395366206865683848101118834436129763605161783828009553684219390274868123545052004782246687949567630998741067413710010181895785701888618861634248856390021225097303769862535231017271939825000240510385703107803890946775051439857655013701285948798177683006679005993461030911025382149477965849124234159810965017276677309363358749582204225823606850289771360665881525348023053793108582751979651692645097423077175223095592164100887952614731058247372309123443361037475947554113895086484813185488319735571204173437389101684870885840480723534938986029866083383979646922107327897611909694481670253727965756506778590040023868907400298628899462588313049231034566441106260850254964571743152887705405211149634611252463015235546431978389103942357740007501341692245967331218826659132745441069616571540667507137544576592168163701988309109699642311393293409674917892565105233665733584080337008948814898488181969957950319626332253983856342301237358880148510696271295414642683353847135978094881899166382930188144560963638896033314673847580859496006287225292400445621755750530462371847872826457143748044207398555510812232041914228983726612509688578405017962585232701356526400809628236887992807438907629287112850333996664888773399294197507365661520246004170230889390680623447747423669013718754352522370006741160044249769795330127207320262816737847779104020767283271369143441670415839566192023946353565032659913005713515600568978032800711202793080005146002400018678039697018596538783177672877355217310949627134595374237682447864051705737951160903233174360958059790023467810983233885249089025465444985718784101229882466333003429650103969171162819737695906797514621029118390435901573229268615328670742461110161739369343077273531748847604695429697467966383322981759971605496844791366171146954898328799445081974903186082806950012769048590825461194339503719517701994477071920168628074598938079661282884692820239223956555985094963108893134460199547583733588767126397947759784446257094936391406878264375152940777222490798274414317985279547981410707102605102722583678733185426958986512016261516210840339494491728585334406664132114078312507346302107297194655310956200071264487782455826624745596634646121985745197705537215860980156526875757022052746711863436028702751687771868387803263756416227947335331718489564823259270512500324023212081162794370332555998295228878509194178679481994654936283067952048287614171964663410238148020968656720773910665191976800938181098686862140242407702238708675344704198301870250576051953425436468102626188660474322740640320219566655000995421070649043110270137559192125456991164810265667354126431023472988178099167648661690335354035666176566443323807482542573693679366241105144926553891892032172674059607198518397093190885939448776575190845405589013660566007316136201744144998304233161152538052885950577913790786888775458159090930985660514011663408022741261021004770325371999205892585716924020874560874522645373266547917972011869151603594944019280922171090115069493770160249503211600391142369617020740043058745841271165710446865314591798721813227515768543876233003257357591936083924186479703132285000934504076095462278922705146105113061171937332693489376057147948411181738013097442812550146214765338997712684063959615472620695355107409354439114926147497585278664750935353597312222780844969502541009064056962136768392283189357006822826472206882895026038209491110402861424912400383093406079752994001221017681201035560034289184915531991372452205190803443613798065569432752466457986142980579181398922186778828632666672585652899099793527463876784065776388198272156294556452137270292207721456249570799282654723205891590160610657524794926658196528367586459767172139503853095212715497476625910133986141132570944080895706968913064832724166523132020448814029855988870681615600015726969938313443117079216159155311555897717804610487522743118660294655506552981499000261430268841537382887970482126078620223956974258892508830347760827770630014355088354971342748837480618033456525417130535641194310363278828123613534163999712178040870167626274239649798492863401597611139458617305564343082966919905807998110442369248766978218563691605103740899578141026156816780747094318532455432369728227894182472573072707331720787579482576726431698201353666629619700860395731101226277903673554159984047389274534445126717687945982626356036201416321086818213666499390489573561407216711541843216517264529926738603262648002211870453639681190640037274673970031862778069135421342378539488356753001353465523993458943499588326876916293337777929344211355096663754858924576294791422936233112854419542017998970442930586491657354279081014009339415626211002217040928575088059808282060535939560338219577650448104534825694256162497742933096709201338941635376029784015964766354697081745678734788067741025970101095232531767896433986801951081577171897178600880676679782260804141006698566589949857569156405620304436917185256513855905901744525920913077198538311680603940419960199717172320794009235066677650940651119536942636336414249587334845083470062494980406742837623935583331651274803195030537228679293027041227298360545470284604124168456795294034657037597039879656455687678509243583773607362138417909323798068850280418696720596168636254146465441553234409376771964802929517783140883381998890539727658205397470908084089509948900792041285426533122768992881199404785723542010952620724236322465422623818126052554706743085920983666888101391532837618555458864581718783567067524153957504497944202692486604844092293497913878105007798160612265844528392056366930075363637860399700910775099146055786245667057480006763231489674549691046839203755934019582546005984369442984418898180776194273141980552279326784065320506170325892671270751535163150416678963439059924446990985445598367752371737004477012231417158057430760532629511019982419169947606785211105541208323214204416679405077758536229686150742678861074577440885072339410680785897756985019117152455406580056134469356820169011943006588141804877412405580163043639278220216270645783778876620763482266815674894009630271110631267141990090151006069372350190864735079935865978216391351509041666512791448049230935219785000673497334609653810507600402636304358178862702488682355690746321833446747092712419358417750099845355804250245036776025614271327502610376993428240253421729000271849162435627254980551099269579981079112653393915403348643795173742039476318187004272598177997986960842199605315124278720515878833525315774916206014360937800421052545952977166954081004617918638391179465015153495859429621623934982433174543565526656641077070650185279066175968437513317965185126485523482239318684590890504908525199644457783742488793838168086145823994644473362512700371741215590426776523920246488242198641367381622623215670493403957813369249751255591045042399875413622048979409844348109021785004207322350026736696236261824139926492804059604298049298349461416634082962549836374649844799906626401368485354314218576998533657927772068119666485993174782561327562276086528230221787326648331994946123266665323230618600097619258574944112745556453425872003102900213435555412312890521759406268459453498239335617637837351774454771399902186590751458273693565475087869301985088466942496348310641711555298114328973885899261312727355298679574810634973610865623362900611890965511246887583714512924754222445101092843534910751282414749095155254619302768368382877308957721994278334054005667652012197326539613505311445887306852521808420870000947370396873840840585127494889366566166428093592482758120947258073342493337181689898636152890407634606801499542273375756428334624354550230543341816727945352584767992998504435660773631104564094912987986301031188849208718673662717988551086651820462205426136140864049328476749121591484264451690550405135317487434005891083694316190456983134545114702378427470500341784401855334083863965936983021667047651575605617291691599644440745256444188352107041757083595933440109631164605782864748359883417829075553666900618221110038543521354096172387280727850897732042223024602406986074453241282231046466273508588170092108296838316200625222512967029817017745137352688733678151725399784693576215720085343747668431954327138113818521141692156784050681589002259920863875531777025863186413143938825658523587717219083265359482128128548355495981916557354701186101099299541210869643118735458744770346279383959138992379732560482646334611066548393506880223173173695189988810153587610005324333344950112759042618808580933525512942304791344349583953417555792635108104798660992944900384497080948345507182564857936751307653435012300521167988868678604220852356487232486476756382687520409303554743196457808083531459447271838360948767999528574131450105838238191580568281320325028333320739353364626459810788160405751639785297281700999611706320078134435555620934026160628524848030451439843067793465804566956550926649989383547267301105145918884068317506694136689496327475139957005819850393645530634336209916165054215069184095393641349298102085567768772914282738652167828282340681102530826928816501981480600532180238000018977394008626311580192857686238289833707517392985942366828730711716528103959534258433184874300557532246741043959273900883709913809955169240183748912007881626621275330004985216516488586533230546506220061873799151091299713524707141277075850384964182253430697801028049176283374848642458619982714841262051808066990570996412705362440553073323422998676693519997661255910538181273379096321554818446779821307235482193599351351235118178510629742671955804076939727250349055269580052839396832647174257563529722077676219527523415351472022867917377561311319529271264397188445600649835516450703110940464409727462396187704116091063451901515429586257981721899372797172259054587939728581193770343789154615774492196919318177021158376859820103077075137525466076215493042722908178723231636245695824782958646124020951295110054577148235198601327514179197801439379070149638834199326649639890790343062025091927211750213964100758071158627687512936808836831748852801923040374289572864160535965670409988748779410418872371206516912852456697045654542662055728689475345822746947928670434398334159327687962713921468081988677952528384488187866379800334142475353847590705571592717407319898645703463768716183319438439990048508479359085127648492958304297972875644890637964066518216363284509535041439562293069050523512035355476283355574150513959389795992616331674010905780293447562168693343065855382356000639072173999191994038774611561582687424866072082577323736491528362759349109097626375241511892555663963581453526468022780211665884650443633050606881281276849073080250994106453137141385146610345753873549261061014651537863786604875637311740920003895171374222479327630402046656915890948257282564955978292479538604840622906658766396834012627450290624971562899405494098646516828704090146362633489146087156686674668217755498151294016672902877479916239464448991845477859100397190577635086256592023588079904476240708188542777922683084947378714109686806521925387914700950921503597231170701418900601647418003928328508792970833343857727168241670352938350641987645951568014468582885469339574960506331689886294351010909311395937118632343592363415090064991977374930464746380599447226226583671685949555855247951667607667125655923464590394138108785320628436312329156095936814263791309441947703312597914643035110513633471980392530694602988855178491009371451043291277532667175712348344117825174616189979537796759293529868063358029863136175039350166210888041988028504352407298481130887532786319756623810019593609695997307648482891964011524035377525645433049588516583465686095687774794737184339371007768841484450256998876940828715633408881062465619674478038409286455365909997822460194177889282510265999285525658891578965079146338121395840936744462618423629219341031011671589543704493409523987566342693643902045615174286332262756100577533740996079722251367733753002113956411967919827414802542151773835441907194531252922298333226454684436913721150600874829104703294279227655716943794871659577484852403100366883308193699614654184955191368241238760710781340357509771421692553337012698155218766363039601447412230426021044430253242185380271987290655762166969669819907994003080213066231886482611054111497678710265596489920786982660266222803191346300347167551258024661080260698985021918804572544504016316966382033819961342564691948672678113894864583344760615484565251294750777318506931171497269111958446027153067632921051398715664384626253011253629290745261062284694692092503377488140055151514661473908937326702710165257137638780905165849058504378346952070736032822921844026670900362740654301967490440209261113469331315868139400056171548347163161183663824510609758606558966924346414828125000260730226917683937608241860215357899813757783631106953096156252321174744571814644441349255487936782083142409286433275444224808148272003576410665945347253380240574452316936355071105961205838293537537731826640295853991278851922310900318373383195254985434581265556554196657926353796471621294141526141807894327856344167943922305123491285836199652943056397553440194389012053882259621675608467427594096036546613649955974101134725907921216960165292063978152411866633388154581150654620228942081009429277418618593355125829829183804392969519706921720705438406004746030010500682780155922681100806513400054655779676144287109014617715201276869141743743510138102028222310127674606056744715117571385773798829091213355468243519065526478323578688487000754774401974523387245033899243306752634095682699915316718656284153720693521673742602578035102908900284307176088503390494675765203201124503017681985756412125789628118928448059483488181262132165049436027991084581696478476366364598594671455081781422095511946866008138566840371341841259315698755863739449104371949392917931974368171283526824565932605048756725645737700321369395332287795378662681850297617828235374054147977213972655356200550336691276354140139308258523090784031881207520320944093932182979337071035801614317867643742876994476021825564662862222289393281881264659987808905014933727873190136744971558692693996292784969304590719112210959399856562713687449486953690742383749567276730509487326244180261850443104976010381835618405372388479385420369600044914174266012865124193700819383148785858434322454346617825855605813319584675821953950582388520252394951774212293187056438684995932153555892811608817451603917925822634213989996159095987571579792566883855680980931556044538973032454128781916715089505452444493084882326450347752293707751062035600116306707435644177995940341164280940222590120191461855874177965455894207036027239795194283584876579219184039002667880078999360661514482670296176951615165949258735506177380996262518460556465214098950068219026062149764404537878574547358150970864188995088253542414935863139873207746259696390446953862156086850568908726280123264799562129240514473029447215156254695012186517553169195217666477823003298267139370474785372841573399344828236711082397836635620804374783884434675725450458698876151044281118987981516970554267311980267376116323641836911176097246247235127746664423143541757396558590471300709416177317534710605851261486021499127329871647752516512978182052867642066324183683313990618502357292008120662437642697198462792240458066805798551421340764692928782370039079808255615876110236157955682569457261948295264031192045683386120873662741185643231294736520987577602527378834679948867047964001079956554710858886234697238790974539806361489697143923930631645729870204871814447911122620919571795243481594353227924086590887358364257704603880317679745383960613002076857665716014877735127554994215539575777100255734878272618144425549792181154948451608409720958631924594322300128826915504091758904112732459932175813680584858240187387035105789519517793102854847824295985813495194900031658923050856302801206034079853711101216736751374315074400566596536038835524667014770510951139923992278897439124817651778251823147971856783792405185406549954794524136159747342788280587538097983914163321397941444261008813731631085658996634329216931908595503692045151261737455360968033905758958575306027612603471579812911753345704587025051632416718106927340363125825551957143095617476354411752454551779019015450462524963760340337889562902895431272619157379051104297230623274421748974626311780570850536342344364045911480353781051463994251288779166267646306652473865185194901882712653668458090689887942709557269477151909719468353643588664483442520377577888472513526340244937845615433041741219015272408934403272626206439587924434902460776025361967828527168260068574849695813712740634491506792472045917825657695866851144009481378406957508845846503664589973775736417233648699116584900656851734768205995489896063079775047481133269687663705018810460080764583076281654845420116347239048525515199929199821747578915706078644849780967891154361945206915872546647767372477487894647237216471627052238290872272225843740048593313648421810213467336434084279961348122422837305791334409219199604332942991707769308848957730334472286344859342664935850164398941626945736805247615604959142126443272379619981621773826251240678424501863152130381235971799571221039206393308453472964931357649782697155361155092556986678410475477524620818180112377931760842212632303494863755966782411949628306055167007514896556273712822860597605703743504447759491186295833738350346959498634082226473319258304804881717737497907353803876460839331289342412187592946558431449238410037939486075769241918096366158081810769138854826716864740876023207305846378503178878523517610371391246202286100050547656315628021368038386584074906826452147712238485917681861942123554904414360626913211950465978640933666952133699409035930124649576207513773165123008373444969801963553275910316012099373988306781295139620539089539379078678407048566981411207562991226369874553423279598795947136059138545089203175818856514038875914677809650128273002174009920551757898203495418661143455272248764627841125159805409951705457168086151639312406687125748592136779209284762293847143247748968006186508834941166357606451162628341120042532670662401546757033271576240072027246222160406804329193451492488316556169896415869134840442295033660817541609987135805920037049978287811781973312469488502590129795695796558978248113641388259773616958564222715773850026021954346556634954953921523764376765264116829331710391873585424970454408847961100246253721593679606857058278706173453223708254717646172516134364299250477701386083493219039384182378400280136622963990123179125930251089913874927948647678105705902967197312342168931188032533425033859476897810272501811801606304006474013489068037645047561730493058586911871783567174906507467797673534791197308572198145479832092774404217153632935067634300944475746523185260440344407634920841007987645174753328988655808448025069574303788163623207154506169333386739305033383253487953332338973615540918150948099906554147396562543659024933158324348446337219447299258377619010476786899186043676626130514107043710763571572456379197392264526236000268678881544687510681707838910470218470697875680452228857186447042717235408034721487587726485975363563057902043004232568384613137241182721039202904404635565309676414096654767345574775522614640552461192564125906194932385404202217115091955928979978034779163746585360615476108334993931761583314197788775017154959387897509914678133641039204039588181869429291416107844493617680916771814198677745634813749013022901669472029125108362848911739529696864375870248840839789283589600650906969352462633752948715439284316923042378946879999291797710905843819541019023296391652943444075652524557114179608054764616054104343565689159552631248623435467242317375878310803022900487044006371817311190358972029094208069496160319325652722769453512268624215720954630978494397993710077459947059631791816737223445906778644557850894519188755131557820655851135414758981438056254131368850880453770296675153961715549850572974068471557289364086750968800712279171809432427152915452142095395985590212915724625418991382847066711753728434223207525552507581620560585859003194311847856688666485119549073506451798189301725493817799716407078727243199025837274499299591660966399128147436357498721640681972960521829911305576229728785720726054110257134662459458800207473643084253030530730923934862652083692305978540827062855694846037835226136369995576442695406505215106453703867837330233933574407332290022569771525935193271131369773427215405550805741438595469658499535448441706800168053970271779109801344922607471129796490492778705952561944259240259768053315953651559357150287386392910664417278690311571365729106119225910765386901720927255607785726347180136425608087370254219555182092509434826821989313061201291720488543779335130788576134364036043807466869356600057103861218256935882000908469045361279015775265074128169136992736653497930940575384174694466890389772367533310299583334099109390676952689939940166260905391364085308981823125414211585798964425840145979350971680044992142607861490319621521366499721041152765283370776708009702416303782377808693186076155726666664145775214921616488650350585999155291596998920693373264835258259381830756644514324955839726655881269640207487700991717616030399775775433843526463581590949754998949814448350807737605947586823479516983590607072391201373066580946167454266362484040028115178937828580644420590370737250849529860206642858252035725301353509685935605832613043759769658284862244042047338082550768939830609663017730700476162519041993412846721988217487737276863075879363636631946810877613277418116073076792027056299515433876848460764737186876396653801154326157372096116598411916146039873157135999092973527029034213068536200567098379969261604952828672260887097180204867026701334327290057755152935950063128939714668637391587063145640054580914791922766638938616808273207717270245068720034007875372668755452578304964007260183131187534133180636043268729698145572583477880095705137362892225373346585459934363832476083414520805850103478387381242748939403133691101745731262780009935355515267579751699922832159036175296126587771383664627326634404193899132835248399226561916482817603687309347739389945699565119134907429551010261525363820631627183319145879886814478220275745264440297109105633149897530646452356665854535077451600717168699734269371989674912885416459310614863105971389968557534694286370183261514985735816766808857685521032198188784760503196441636736134283003459786538330225017771622590451391436269804149612687894611646394344205440834919829759340729927370301715928663086947427593395671981802901826599698241864953518519728770273504450923464401334561505880394754633073821539943228156690255310115538190801724918429064545210781465879904049127898014300914928005147881245039347797375453267732364465280625719219399796242203860681235326710403901800074350109758658843381940351902717828560472585900326393236212997757175660437068474337555732610813565733020639057921740571720802465390457641737206219559590885550556755297672755823820186973888808616257296009666556871310619469226866663396771281115128843790337624782029880614761526413702471817643636488172668618858663653518014681826005766016011505960185760230049213429273655817711358108987432602815776033176031742889603451589103947777524898241084844221587075320424446268931712904180788483422233609426056785690197439367666680085641562438866154842032269865955477074118508611668128782432549934597507614633351641609663716126746912485638579118101984247570135441713541144253819814399643806772514574964815150780614565375780771092070061560976604560610405571676877800283702091591236814193778820710596502061794925544917748823609615425640806061661894673616012723702153993132613033291157104713826399793313780365498375210201602326597186450539002888162836233442196143807970583902570315156288042607556273618397832840809552633290173439515635103417506695506396008220579435522816179297422505387352253380697704578392709876783972152295714186311511403350262606894132128346743835458036783071638115100998286268849132227927771526187279776120267006626313364372251723263401817764577137730597586895301004660369570379217547038048282800458206351269176342926239556826174533072490314766821648113316598894475355227954843974372224738851709245237918935685631591588311650100546186391696452918062261620304211764098718999974676244542435878512977068733060325910975529972140239477340065427651175906258776580448671145518222681511952306766102510025464085044932154034692259112802568354772554856321530722754424558852870878605262306342776984751641937560660749480853247257152336966379970479966650636510358623052898834717883310314265315577371220603648396787696611496619157661842262310761909279927739683294168169711127416012602524427929193235611537384006854750201985235112747521889704382451877651901985713156930529976777297602100797273882549801985604324350829357541273949592322747749379976907990962523145899307880530249146937806800947311725469528492621829096483218749007440328972681237733433732848873677672587717187015169417028380783817635113911903922148438647210242036700651066180326351102932736586480277662661600483379362488871722139305904194762662211371128266547157628367962004466019791680855046832012088220064695376796817257241298424177519609930781855418977331723457754575150021825542635669624397912383901422390434024425508433193924983977182100301882334999467711721285670140106036237557728050336389946992517515436055042011005613465644174319565132473497936225311324322609397986396389514591014677602952560468287119754664542563788951538764305044921214326877102382477977953214963432384389031862818750462144341811147922641573305049777318550864494625656802929308325666036731637479066163487235746661556691038139275040219076958870995072112896204205323082778721188458239653477588438622730710188787747770760736585793566583199663186266917038571737649282599129336965506526917696808427485643845829466820469903018823808104974630221266904011620276029654587574926557329976547926745283547574670608475532513509303316416195642191609604322568776306399561203214292400015523975347600858156772258394535494569655892095061041846394879836507286689785700838089158651064179200547923725844893045499482645090900920180031308690239116466506406429961595552153652250812882896710146879834377993910022885996871460504144212581470308167348740961862223259642819646397243922159174855127214454474937770788347143949550771644619597960469156331736219476194056662149192489978881082713719679460651377846393098676080283803230874777845091693569561740209199361335113005744617369106256173770983309168572061897687375880413458860564258055755072093016684361232838156814151774705678503956933719222679930391887357209539407923628547054525864085885234944062542199389923143883632780417490136942576828590357436218494249094619470503587932728258178146045124001886561315576707710698308854709788718529430462563877236881080849644893229658829790792895716052137981067835761484452064923747739513018323492557755345491960274537427509109324297051814501057821024427764500610458757095434421154902818371583437230216445141623210992759480932000264903955118556899835223778946484116844632747514254062720832588090497836117486684648910839700989886649922831252476275210448188441823073702149834639499491375276846143533017548916200866550345716820676183812227691936730027835645868874176975209044914642470881009369362626747022672864130682552757824053700157825148517613612805033508069029883729467546925370274154913829269820462595036762004772982942540325387735881233102790719292080821994837685381583517257891659608592704585732794289005414297813564957098209816492872336417511893153580304155659216577024979958209750533093873662858293829914001061139785383307663704016982045706209529720831929074775801998738485869307265754142069090902072324292947205677817348805150700101136059555107153911373165081434182818711046454541411383332430156087870508643068288196317235322592636846124635626393554815245662999088630948460633909583914608323158718257462050449360068798156254768872309718623456424472524690715368494201249472510100290714136652318094041326465927508244958074390719404435748874704022518292639347572512543363192571412525248742144244184146288264041472309879962545855248121499061615021809337112441895970482158793843464976753749636860530812711435995831765318845184968810904094361915289966850023966874220949427852883804758192161421504842486139108497212744772390903265957143348796280695083042018094556483369354931867973071961879156485393027101531817713520942738565046009771534232594605755423262108807405322510190154511492417717521958976235305257147355762859567109392752137236794133839129368745466770437435902158092466063943708992605668488923307056396890235773009795974995437613736546573513114038097430056813901029637502887164069297343917398566128543907527008116003262459415015011995366559924432456822606123397296632132046250019060564917620035409094523060360196657054935768604019514221713631682002657976878575360809232565871470659936922961274415169411913325247908492031890768483932059849684452925953180760235449637338898742378151197430827327134018425866880076793929382105097089277992993086360821580885002303714636826471973378182400376028249473954494510965591633165943072827171459104522157864387962404882911360672192835139807281387783394965345168270245468931808357989340275588455326961580714029927190157059763640602132887343121173124061435156960371929036827826930354733864622311738296121645742484048684985100007912920120082180524410461378170712968746842183607397710678911238757136329219651863838588209751792632984490143311653814130593805250577322484297244116152767628890298470440726431867921123456864985150929601685937551662587176384137381175686462048216848749756022116153391894418149220223302181457700110042874038813771629696431481140079070636133230112451739311700279028671439626205339024066934436478150848827095265341419719295199317644478201094403411543021870595847052470726970402389532245986748680951160976837186468174383070828524430809732446779813345578473234818237083318054258563032527942523369697635675501649663285719876207040532362306998081779485313818968970610250733748555508193572043777453121859780060386004273994808626719863160306625804702833739588055802764291993749296409744332546590776963149628644024932094855655063102044827667241670789276349949835575213408413238525379295817144670230690978513519978434851083956368663184826659118869572056580956540317159480293983615473548939390735738062066918286429727806276472709514528253890397736215546855471172120217663714760566180848612485683716223071561180600418489059905083628339191203170082732490712888330756270700175727890384706502085713993020782401929133991698227397248482742948854778094541554701390919743695082903358050619444131595944032905287010074542419296744134231137642534151276011647679396908107780959743522732691373520676246069299424375936574510534791209426474922157089360611333879503266590022841652512100029445391098459833283340826197695123529735856714271497011736204873648460086196394463365609056484140864695237906992608992642479932265075825349856393377202467147626995934383937699727104969800683999433093595932503018612043526454630897110647742391412358551403291610485027780414846211852527151530959199876945572357472272966808672430330780514423679686021666065356047395740731069288989254538388770338210415399808126457548262178161088950985390015853630454646961627678856460485269177885324467802445579798309186323572050650406879019659184587285752344875991997973852851992005296640327233426522971572207579117376436198604564226864690369133310127305042531987940304414343800168369181387737702855682034980614983860152803071937257626415642134555676520172557333084984815921480846114970550072167708450390894464129012880154228209277136491596849304625632245885779829342071737276525376763297132648659851652844273313383972054344464910899672960864089873829566131002449252194866904298810546588713906259518817067001572664720833385138488398205458719488489735251423316013556589079052454476012010790837208591530298535113375775603733330277194893269405522096716872486971548493423192157041626682367389298534215852751846720482049280860443284864082421224386354835453751801203676841501663776723955893659736878734322008732739723326481234258171344095891373777899370590478381522628771174022538156781137808084888816549725022492466907869201397070091317943155580842727341364425468224906660352799263385830149730759501209011573875274030013614197043631626094321270672249837932940979133231708003635757166467008434559654492784278851794588589738925003890713347706280816808593623303923392154171000932246267374211895303803769801430227808562785097733656846338403523149720214528540939141566903193778208872479086851915667376419661091473005166846336755335746932469001960318547021925258404815516908992660977895211943618325539228637235559551365451446313468720827107943897158564814314267500234695884060989328792652372485759423095999023181986285789455389427008415858197989078579080293717950906816669130135652162440055844034494051589756745975505217048680619684620480275463402302954496068797900444233317458576712345678363530269219558773831298186589454780860541102765527867934569561419670333703549804652471723260271128104893962322757386305680061505177455323430815089637901739538078357310990396816877928267745660007787198617794483011299331625399458219821904769310394404495878937756757572014467878261157550237906036639595751180973267115550849320375707336014866803020570865144681582353007264446850711435274231412140751071315151112002411059001736337488809627189271728942545486998688190074498293557575453667774405907802987881167872597293512049820840112965247007680189761471511243690150522863950519279646631776122995660979866734433562145574310384351722433677954946919793792164021663005067821495229040274911460833398691946535270862034462161899554666410566413181030307592665721932379968165018999357641339003019890029023445177449583945187261261245036954255795415575268085879204388635054867889585855679960938156482446998598558122256971818475354834156946114005472343472203892094442356938216367851302497489855326582156682339579074301235397565307735083881787082684795684734882879401632480447600414223121001426090219460681296158245647040302618905819477588576177103850761406185135246063208153270070193780481458096593904795830174840401927687163404006370468550735600546869746784796583381953280113566133868999673931974603713657949735565347021386343519932650140805033394199904231455779927325169067246422520092095662556565086271250843469501565345570445120034027091822905223335925452453758651617611998335724350210916225206870786025926910932113575554499534612229700186911568996501581520718059893306153146540734051845050008595073878087056627512653631868159351424219177056948490028393025558011072973194955220790301298714697185183149743262171833096097851828422173899590649253990481589660550098490243846191651768652674776554738564958488821581825774750389148843374740348551117696557368994329476813896963370314922677381578108617491023346616341118997823169775211948781608009115929255122456432264914372395140118740134038996468018707498315898299373598001047257756937505351751521083067658275580340687586206435967544499923642849652181597322256580334870313547345508077543861649253642933306232655405105309491283646646664930471165354717376141832401202169994911623102953069379795013170276187631380771225712421580576174960620870316486814545249486720741126869338512888264690257753266496756943111588226340681679227511938542880493670184116996497305324269394222931196280121135294203946785724566458390926780841947806087404151610545319012731029647605320829902215846348345900340479473909474440770139823214681772697382365120171500815217959391153256777143313125255568111928843309487794133919309925038944997522274277591068911895582498720325881498948975858977264710199475816358461105718913405026390403535459635642220440894713620521362757983040143290784101947172505169259139832975428484812391156044233293310967406079527358225178207071798115968356652644097002117276083461727955003253555840236877303814244103284860840373241874973415270865615409704254206790257446668244307804481517747045651001765911694236793171909945987564971785340385103115854536490636244337229407247545962392352698209864357640452380065993647673705013057373943591894143597071541317061598456910923299319420972312193203491951210609052746983478565170447316878265757268672316451379429704957014450599255314438097847777910754237306067400110337432978873293509574812740838535940625647138243063365677090380614325328147156284403064809809704946567517525191262955651492239248046371512012988523846622484636396212443080837853879043349639132252365962946608914421271701463649305602319978529105236102642123180300731363770115001423436875996254398768427575368182119824622634479473659012006777756698320179110393012218840885310785735034466005969000774863239787920569732640229397397445925365250648957452343221354117193372409954014899532525556843218964932809575762588307371985897212207542018565726098218400537049973325788205468575067498376768912573243575621624848334592737345516563310686287015181448557875206176188432939336400157799704239249222035501769461236130804418046964346736208935890602591377046388762509842337451630264378502696649235906766613890315273147654440134552226434074181964721140870264388865674551363683627813619197427908557280093099605892604972245145408012525508527879985508348040674457132111053205957023687274788806213895141151387667039001893379896177161372762376844219552375749874211944526776241040099922773947832169951254323811232520558438630063227765350759762187010081505615265407316555532013390486237267258715644630044758240646105100519078255120647164809613164293163803745936609819852776012410673284071198161578603119701035970800081293655276151492267691375947161016213297373322687292774896258262048451813630700403138992574931554817652692086869746690713821812459856218203317446038359747598831988087961628843007142170019095533194663503551428606237686538940967424056946478586429396659465863723121159836898333833368748108315200574067103295111667887637678637635475197270152205788361962399882607600650655914874569831880461279976924589435830354315678953825169398215807976421970766986720526912098344492445306517895010789697508109852756182933318897915999748535221580092107081088202122549991289671697772231537930721759570707182148171544029157022681203381733118701634846917891469144912939839825093487975532410182833906359808307612382733367047449280822423067128984777047126176763711453358525757942095609348028933687640920045670469319479779715106870444377900204457212184919776871636402665115600193242305275527517268958650455376100532714424504787358838588801982328940839551136878906139562204819710194087298907897377956551984502077210846320268355817248655175422172161117782986434977390284330044249396705588573523621128694789499281630677807654186117384671661142205505867206902747811464385495428155267334228156246470142592932654295652365387123967189438130290613305684906302930662918366291399412572370165509963436735496039158417271269930501077020000649230923961406949319361903442553875352842263365920296550656839928320831322086490664219386836302222589644731394317733887410171623006239035520940928782036579595359768880720832218970291045992967451837684486882439877314110027899771192064581858843163778571726230916050758801285172285366111487802941955843922126342396051242031344831844220803066643989704887361134402127804852349012675439795720915498483560906592388059593876981499888749465622383979637438085921760933321161175660928269290037851270378479354378032061208999423164738187821837742755695328438946041550478919119004376941591519319994720512778750975058060656110814134979187481045578459601214022792066497748211672206248806113984142895078221747155400103447877889641334528468323391047357058224636906116839142963352280002427812950782340612340557347430961240061231403858621995144241640071365521199504784131885758212188569633798726892718081255749068686977668323030723324164369796406118018121885482218150887432193253623468975793987054153353608921191496281778150957683002443018326451006876508838590472495197508663122728088532020231546665484516363500542911147853394809691159423970476503119740128284428608753370033106941044174700832466987428889442285752330705182197454367582010891963585620480259860627580214031768439949330042602203169608756502620961085902481913362609703054980792830771273215580794665315039231181737197961465225505954176821806958040760703359209278678048689147874770413998503238099607677553654247537985795302199238192394962135851242972944781456481180017598794633276233033326910543702794831185149570344304787059555101029389546137909098718148683776034777017155140380542617047190740855890097977615345419202599518334299423982774672079815122473216078481996164086326004001376116443243330023544192228842298860441515065770377081046340736969453838864318659546233305155795224540511680765465470880377327084319298275668274794438761372333784957584475761589602453811472654192240208838546193345231205122216010202699422582106179257801206524906505045866503031708273279789483940557197619552751767742602565390497855743330934270787617633859429648703609171011417617024794271082692893340707147546392095597733379210932190632066268195054659490853163248939538163066029394005681479907054466597527767814364530576863440965876217340220706758052128863833198125809460264421674995457076236334893364812553916076431610074715640713779631365772091169615803983068939716692784484564014265024454962142488024399310189451855055328147661568674030165588074495180287541761166788292863361831297589285401922473883593762764516580482992596592998972425407459145686832006337511086596984306343174882008424104359890929352012799658832620507481837474479691784646756154872263204926304200083602246143234041583393196236434260857216008371727757096318890650313321816904770545475840948942019417350264996657366657177778506733373989593418921274690817222385758951604076911144926913706137342028192082398286692401316834678269778798560469936096210332890466777348350097924653236733926333221984916121486980220988061081308967498987972554337061758874755894652864518732017338745630087240996828766283470685834122484703060962336360309635987654904532539801501891601853595868805505318805430166012874629114371700518932184701435823121127159881440923390195758909827976608306465235643854230017616084971131832858764732184277248635809509866831211240590152087635737026366802536944839703466462230781357918578636465257572716317944054092424006370383327213348559222203551190057914894885971055592275961987215354482532184821518981210101665730431694138666219956927487350781280738858168650670905716535286842172266911819177342805546391912941154947240642981585114670030062168764426975779672650315769140072713211980205949670813848421085213427756365374129521423731168372002532594193028455963371827357185970755570028718989173995701585969486814661496548830916223206063977753211459563916361804476364639193035918048870133342708655717491104934527230179358894785899093056367760856053275286512536783250062472327826112488269050341867624845283598818578210794773012167811972121577206553597392781516492032899495475278446366200329869636172629708640718965341971522947276118906199251135492238403234109550931363322732060179159986901019971446368708974941324692659611996410153184875489931221607298012524572627164591657795291038892772216863365292446277538876084390913914436402359976071971657580215301778649052290974084573896547464490235043447432615626318451938236767857292200894073863168971736648042612077837241529754180826243661400192970385022867635694984377999146753946934317908560868689164035029045598173144487431207320302042825205984399658831378325771762994238132567240840348000651488823953769056566584939480330448026186088131740009907974354068871466379956597421689629037924070379719319864120596753155327042781863605023000789537943762743359905356755665743690284943384725389703888144855602392313568412174565864546801860202706574183329541067606269970726713829108448192718521995841346406866448819306118688798072824138736807829718853593278833525259226377130779454686367655676513695551557074515418922240336087615724772892953041207278749099037671097473110847505524851780432783985537096388581770872189927955951715103128272676149109748159311763576872297773762256052171718620788677863699427413623471505807658793217013020597451109696591624033487316302330599790874939728503683810299308956040943579624939132762185587277937146943327357352975406996561310806021676156287464498757536251499100484436522922405595440336618843175550059382104225314696460641217759405322990592250355958819443730758677520098746005734458523511614052899835904838449749667564900685449490070495638199596450867628099137596063559910379917724358172907473004227499283970974637705761787288992193957021034209129355108052806941275853366528182810368374285514688819995743166370149838885465881980914757244724487910166961251857066910566974751284717740471535172094993146145639156390064987408003635749435352921065904271079143226306566760572647990443826047364878054783543409383826580694525968423780504643697633744032364338337759869250200749754261013590978040696692748465118307344010432339687708844763963531407124396355977105969342009368906153192735562584711815102197556214189409611812623010653159622077821153934578789845644470907737674487273057814074366249355370625477621156909897186711953682295768810435031400022619237423500765254703559381383927119688923044827789007098817382178519469978736701817603207829010422415392644376387195934629195133760649802820089847132192677710650673648160975889119139116971694084552960372874813650456219584132607352233140165477862625528825117638668144922349968707579968969114603201291724094066265637450693426736790589616365075213432559444330644864968674696753071794226057756043645472998116463027111576316857374865235193311908151121327868786460111533758510392999812056485031363658061857449401913895045000890817444120354842828674867737504065397752091642002487500744696850779567966347844662485640561148470116070647015186229098526663884547030845493615801144386493843068942520069870355943993629198795037525036172830284861809305486221053242747667429107212081553483094753806239610886490030347291822401495673256553769674034544365485687451440697472745593340546044267990955809074839578917085555574442363003761072197571532915551659526535426915808188418621616282811690438504778457741883068724164528229953386133305349940406506293607798689896592506653022775873674455399523126494792138652145385178311357935205754376847460861787100426783835069305336167730970098046894816958536703650580701792977393230032902247940722854489116489100674574210779357291447302222593849181865747824923637870455338224683402822447646910345655241238545630384702425923350343641421832000564469211277860870844376799549500189713947096989433303746036780470739509302072218544261118316012527544437200524672796302806982148155410918785772065641554644970347218265801338013358397164691500781077480433946082164602172943238955503365783196832645029857307423487772330267557435442235298483683237409651125413526543452792583206686407252613375035050428278046318992310335491525640594200040960598549651447564371576935895424400474446778018687492264107437869304078367891038150776844979661665299937238196293892228049796663105901159044849806339941422971650782343469401446905110926969800451037802204530790646165545243887830896105253334524393083638052369271426244726516950339898725258956507175113895402063203428956933784679425405439688669255846185011986530813976659183880731101873059533090983946969517001546848264314027391484380401756260273894912363098839905412383626871641391011950305792809467322017696897844224715275590668334410100779889002228156583038734275668394492650423043563461451777082758239101212529214091876899482504796539159714902560903733138954190742948732461142266605266130050716220028444517358072702255922097895188100083235936131772917140925390727882599173459816498153562842095417430658888775579532340839540321639969419451939412730143300232951602268564999867439126957789706524025815407857432773728848390362326643452333065344051004417143593572420457619916570151731107314759823635177069847581328981098222837459920205966890919251044507282291535515447809637419854330947733617960250696288466023120215756911961516655334541115451714449380504215318806383814824749043044132063342112646433773216669391057220606351183228446245238963428271283553631703355297035995434419130094407347817969047152926498552532082093988484407016427588563346028218218813287562449632714760399569497238451536099429400077928134391648365149972974547326130766201705153914757687198611200823793670441834084355027238673873509988241279867134746181048531971234249399441261856069118813737749360481763908967222051805651689357161428380327002182511281305218923077944505032341787426105494417065558891767893527504648923868845205194496805475059055295654393351096487444331734957706813101300408625114132589435802019052278055381167276636671369992685232895726934759213700097363506842059559635244596260331529046152110826007107347442971843073280929596540298679862192375982829068166810991779703079046071556769588618953760036146453655733986010231211094414087244328591167524372735705255273947121457834021919821476923114402432588781057997848744144440016619181993886418800952274830668747574564776588165004673908162917123743315373484949291847436168084064360764849233789861851803551956173452628108956953247707532225395447898109396847126835495029314145014821265490352904256621879131650769879928493529051401826798687958197440859363973180522155955363262053785824899123084562900235470082284775442156374398527454199429578779117287054750263084750728362832057448749096030559654860080983013655190173362109260781349238172354137407633092005602501809887021340299224720185417695722928052988501321431825656040922360251213962662232840219718886419437661379963047196571830359290182397950046659829905799855868485644218360846319888178509715615676955775646409034887038118773914636227534661850143286934055017996988445573214605387802016252878706826092529273718494694591885142151686467136643291636096915963654563588352610475926938697950168394537640650288768566017027881157942061705788378372679411661328547533448197040632533943540621009725915003888213453945379574870308031746138029831162209439138271133951862653288357095724212123106159193071648712484016315158249688139170729938303771704829516113698183284384931676503021915001055671618059398436246252459732507139894759673329673981595179310245814542602296173412892756520523694040492884066029619257251651590042723407796452840476774148281684307954776875572631358153776848353520838960379925075214870360861761645614105310404557221230232054181194307591062089995968134065944761457789353783980837433920222507762772273249482814278164853719431536748926311195066037998037618696390171728197825304239423831975341193590078135724600563775038328799091096755435699535561493783213550341779969442412329313582453721303040068109335920212369535435351765332800989625203685530606091273175759031421855710279810938819049144135600551278252426885710630874867603698267834199158024223535315875858718959746161387191925661192318001713471031626044982844748375161492623770111263893915281313246624346978196480890550671254869687821828610058527324375116197975265630368895206302100411279057675004752376110957082482482304078106926664907767600765860258639365586138667646552672892539132410683200198022226496906396967652151333030707028423123068069908947430206957005664631157633130047480266785779334105308862131852667856949655253195550174386369486911670943239072670727629345821789783395908351950921068901895618384098545792174374376968179847350066524457928607124386162079735368811111184776971750267534471959313492005905961220785939368655227144431157636083892233530714582136223734909907717209187830407373525931474051802242655232731230665497811754791295032463969717192099167620388192594168144075781492332473970130406410633025470924702846228485369144961861846124919140037833191477967574623718792017929132711677256104762750797803386126502715391999868190020175950652668407346807748726095380710352659934698953606280353068854814192417453301871095540983017647392647258856516089183447968993457951006616323419685828499615783768466772531177356256308592504392857208348780663630992997875748071027832456487186696305749762322708458083217921280496659005422885946527105748469891642297587849431281386675406605689894751049396179494425035180705133653519394094963378334700774445721770205869876485504844415153235370142618129184954544284558122057442967369340701354677474126069457300908263864207837759452200147316194327429074511735269719452875029487789484100156510247470199747293393989844807046422878676043852343523550175552326348112480749733490088530542255454042322279118271884642874362492880738399736927303585626033518174945132324539152803497962268352021295227405633733737462044486775983553901244636920791399850971547583822272250303113248217951845282263378710932290525805692584726050839225351093456123767291199521370695764432971491229951290315964824821732601171967916793744801668280980665893775725187832375591093318188422224689396422533653439862045947127399239873668666887108687589467022347377212086287412863033366662583646661140973072064648258894047562307312002026849611739543662342710395900401198158157791950787407688560788287515886915528129286180519084957189252402309041969621346652310885395353445115290241217971255062874693294509430082560787639329996947249792295021051046709512638078320957012801518402774259460047133631833039617206025862294046643754849362094631703026696711993590462031870125158370882276809253001918678251054008866605009258591701738757806734808213986713072353260599932776252437337386145079200662988322285028360477298526248975329180542928338739888269535933186323894389482567461531808123801076340275118884492258596992714174374019444071572011451869223887543452388389811176246936217940793350106323577198053174799484601048078615714808953749545010348731609229374927825429202970570572727145172541096769273867138763712949118483853342027733836918599480590892559403523884753996601430072613086931268069090977124334879682271337072354888238817382621000358585168125538845891815481528721133124272168490201756076085873219841373931571853910554609248209477821081947414654776728674888193522500990595126312722891552157992554836882826005320352583653541589175358526554718454587157189067199631415555896096815155549492383942520742955090190208522975930122050123695813054917233379289910102984944428266561954022983685911517448350433187608390858244205611264088857308895578104046099842410040295955816273744581211885627740086351536254580140567184621127684514243591761493443003672963218260464056092716534386601697230653202317287337965439223034145894863197984730717555427386815785576334980033916048489347688733390820298647642300118854662851479184430006886000329851162431986255379247391008428687806775868170310268180816684559413773136103831839695691572963623477931416569098473949103068636598672003418990181667918768977805945019733785331774788521782906199369947895238546624335866000069766179323940192286107101636994922890565651367407800167184973756733820851449782495937366907371769402237948330433230267449683799785658956009591202202873834291063170539428020732262380996073381603733205198350757714338793556772273578413315329758650752066583660237589342522103343497694710589923513220910916320087107514291957294334136114255654990196593166331261889079766389019577721115936677696056761350114458944414364025019481715947990641613910423150068985361685720597098092318707584556550675190239672996595506724291410536009277774743723785147740150630775619856407059713865824373383818513890273183903266351370619315214049305571558208254549779351955782792539684933247343187245540939884589953761816929003407364111415484063984378764918995112696229212821619483388620800574505503693104326229155227273149588602306150626273422437274722345391168452849526566802136854933628782082038449353362214940908061959498741002277857310906958646476374125101819212132438533132296741340043496253722297770471921524233453067482285093083649114463868888309693373651451047394269467018416006247822408220719644628721657704523704833326541532700172510818519721565189575773782571770514251995251310913718450580052170482173617661201923251921840385219501826983129954014782495635563982211434529567519537098800061851868591475290616633140271605376538669714698816523442577680684884950498750355270116044466793704505780133786223635549201981354069039569946310574594407986837576543154144652060009528681704879506452056604003846074392709157503242100904208798798853300853716939395993248802759194528606360994199619105132489975309505391377121117105494602013914034054929515486796351886602096486911896092533927802461541742553243242929795100642959152674788076319741679550256613069399766877355981389528782149461393091343450090866848391238393172457970691374759545613889832724553322698587805065284568105962149112917308617728001183301404877147999418283273854461394304788390076193232835888928262462131920131258845898395330486675253597722640766114480818080290824897923746371248077216591036904721292286348090319949509067045108323987024832385833054275897088305952918389851943118123466750665352864159200390801827922534116487739066519362146578214067523707877699771295603632330959681170295527697398694421296344327257142950515458620173812982513433931261619005851626587511908431464714119209087140284409569968149650644090699507873446359605222151477608316404601349757481874145941583857850750179435280556768957996039221698619284931123776482863148941297317024169372627033709052798709504243976864285525489060325174456739042952118396477271513190018350250873947872511190061093935098600707268777649976961865729870335561450576779414295415286046949843039296437042066667248402303950032824996077206994878229963722952224887490686788341508173268204788751319760418763063440293970184303960030657736682594754769337318256828244851709398008307832808729086486625486138500280062486556618191123647852381496352821562678933631128421648227068053002472656863791795982651683259639003950402823919734611824652102285019860219883784379620403213975610113991900786612879605632580349056486480666288685507172589501221567659759894275830585816914825451069986996407059671948691127786310799325436691844554418032799345257957316010438950880904444817159513422158323614354562114498103018700212763186815934438041712255084035096488596889918486163166784944899943458976702928325379341920164202150133860037305446039478665979110670898163756362237522126700225010580612324854802330706805769352170206562994030281424041674869830917925573511242724075437654368051645888559108701231952220699134515397332512248904395708596229881945577471866601295350457578400188356107049259169893693453228089208791447399430851961622544907259187654483337194911165298348905865650706938878924426163076772769210193630915644066648997917976095050902119832914118357359587519880420582535077147587741167141961206938311135557583213336297266294843272756824304943905620338234703344829481565848492516634150378590168783040054625243612198220597363266918422319463204129191133903529233931984953544498808836507705531378347237912318827304830050271151781244017809161711805192871421962853981064139329870229696739184917472973785215442159043563562590020820007128132357163474713482070587618559334434788541932682952960342689096108282609635555533225990977098647813497705539174571317061019712660263588030603220244060261578844767413131008708708648511823665696498687381352203061483264457819340562206791706787463628039118814882561607979081999391494212638157576379804575310455318031797973577239965451782256500347715928646290545533531772745001128155462778002361038624166091150823150171253765973470306135275922584289659088897920136172963624221319949211153746360254183302416734362950872028449320622122327105354052133836017732199169473998191821053178478255944168612890244869429830888127654918222258483847740418818862991088885286976662158929124189956133517374469084766605512587121787358958449045458849142499885960547650258393586887525682177824758073997404320829337286560243982725736318598714262896609666169147544186754174841979652231073933971439286815444945231983682804623906370170408931083413015371813842779291052064255385193073485169909828835650748627345745350200084708564039948028464658187806839230997807888740913031569113853891888335507758771876176603972416819626193810989556061106056440407755665584406740808368475834970336724107668210702118251764033118579261270200088950435979432248490254880246879066423593085525734828855379478609972683707154810674146032965529361863986240988710530315602274562485144433059143115845400259144628038253292406584480996965668782723823545071220727790706497821133652841395993894526501603891034115633125170544841491272699601046801303617945282511129294859195798275215429727163676052491229755249692572563992577380455917814499136957704368043063958329309889043773330505481011462277124799598586436920921774780430298669665809462251917181256889841066969302980191591955506453256078935473629311996121766163467341477405205772706945178707523371205328680019401207173302701162999039727234545187762884281488854188743589968339120952018574871667535134486951679309474609850544215371044404680445967659869593233134884592946134304262283321218484182203875385066510010402523678019265079809196653520635266451519575372751174417284877019442264892041149888075287080390480605007562523327645593676003125959939335652319241163360031706485586956382367426029160293820617877393649377144103099989889057364986621994691993774229164547860501589290346726130418774654449787679145516682944581883996314032178361087902223797702844074226307684332262867157235672011154500730526335616727270089791645664236835738530852269374967011139121693593289082058329087177242015690278766975287140244539906592710515014685082042180201607611871916085414754695012771179353108285270090799152614696756105305207474033789314572492894915351965894499576944154673307674483408860390234563499724516837378720301658401469853726426692169724023824070141478775003822285885246150098806719548007670013009416359976122383139407525326021598747741130123263373089001641642640096955393742071887029307515289369288543366757615388210763901989710073766416466194366804042646893626581959234097155748602933456173027938189747605992698133747706134882611068120858121154342582382207190107599243708448995339353071793953537336208506321181569975878335139452724443701549438877311404363198412857462850847053281477158703388327859694535450123306049921283537958055654125093144116773549679577811947123114990242593722481401741052201825486776226313011986750235076874667135333527256752508596419365022190792322539738230194095055319665184419768604622467665284129846715049219988189646289134372679668675456781213747739125411025557425063562830527028017490128149675557472932486001957742560375335017684343284481240078789545625733105616456115754228588009783274766122232193349124639232139924120161775079414945932139578506420438992162732053340051153750956586538976723153842276692939922419178518053428485054344704264320911377715627060094622274552224223976103039567735556698383622757832144694489671970400892425220165948051740681691178303159364875763940567709196363184396209789764113279988605639285605435255786054398738720240212611326997589405518137214166097300906042927420637225933333229804203628315430364307925752502352831329857405522174964784945495345228512450032517758390940894044424683637101996604385501178162963291745469103600430141046539270195110697317000630825144905152214589351009814514887598545441541521135366182765807928294782425107534453468238685600351972312919474424388763480313118567876996031639347931092007295137796069703987977080683096879732943955977979982334301469261738636881354042917794408023353673886360152315344537007402043838655446576229116203253609830045591740704295682350869315077092464233042333633791561641598609499886643862572836493560016057987726842175880842252446868302096451068258217105448617076815070410115269991295435956668432738413455889764719436022322609330042484799619759875820491731990101726005721910987096069881331793905677032034656214289944256863712154677840855141133028049720512419458720590073683926915129020052979164230676088898243182741283190724405357890212572362967558337126035946187082209588136237353530346703179470175915555160436442980723913704647772757833916946969462800308388971591385562825667470548016812916349111442437905268893141974141434458065380536778564483143922751133419432385985864060466982290498087864828644998374620482705970892360737086985318021581733569109094344678191171357838137876271462188410266759638690443875860911391384246792150081248905804697402453710509582812241184027956998979496679196264127611527031678566305727083726625395447267129694779719115723052239225425217782823274306224016176818392258912489954005628355468595550717723858693319880475804920639055429976084464596145618969377026308934423366794251920888494221046299809970032793129382983369210358543004003827524714625794214865278695280128820844960929211098477342378884786871132637802377245742882941411260452894176867050619741829488657319913329678970515206943647886461970692700280877331123262558864490181551262666124913161563983850019598541619789012978989506482382929743976035720825722561324662099014391165593472162520417094664578098980955603428211783334330819283678800933791610282328299722445202072002137081591851274540393606644362782910568184889829756582382187989643925951819468191174847950457502763850230366467785891194148924077803477267576937831848851494924813045808264368558154687293237371109090284728291412857926564033741899246857199229235553869214745478441131824351140725187071162247503589572968188932336980736700432264787970955842742092340444829212188697664308153941652089076539320877239095251575199949958195254132810998982563968378243077779699091898681923054137588169132932162744757672616391697762591352029016796644184022177158955861511413467842410138371336518122720265466220962950442483534432805814611190686754229328301501340674683792939938060507453828474564821021679209088052491534980639653149655803076878729787325431949744506289667329715507828905028002523153151377921598872943592039854782292379449630426459753469005069280455615956195313415680107327635262117238941622451069006334870451298701265218710753117279244126370574837885356892487577071376891776841847280957061800776597427902838386454416335081558013626845715048364447302757409482920196937145768572696020696937945584149260249948100739785004279129129199030985521517739224798766056980191979428800960507423379605576603243520334155141415931000000150802105047772270604963314252637230802939378036967148871552475071325932435246074377115025958803687718598475621226714574530444202843645355811397504787915326570757835507249676560318063412258087888855707579691333152797735044282090582570704950919895391654289946181651429641925771949167933231980914043751031233978331300626793908513044381582619740782060994725940771620701277681611778485453206176633661987641265199164013227283605169715984390023506858739364035060035883286214054071726148710546754082657982630828675496384095052031206253387452147085835904970772604968606221586117516639329097109969615488383728809219543925643003364179968245611424342834916299604907446801283983970657563813864657927423859352642388128001660038150803246606548687304481120815749648206127122586280042973894522610559243411851679363493502245816794282058121900898945354923137089150921839127613902546335294158872718395734963621691231378095858921465727519490997255408667417123597091773367425988147098563784450564100760899645964733675804482014252911471552213630654699372354015237797145311967984991213701522648382238956248808052701830330839151541196224032110162607020873020159602834816532351399225478001600638167263169495070591317515794962922512836400325007989759749658208912613326864131759072438799451501704200493958890548846792001720414611597963427544414643870574611965955656189379610859167178891399344467275005246667687179374157218804020755320545408995814196915973806859859146122868222002809771636344598145964225898566500052248095264687323489484219131234448949478877669664486748589055334531503162436985347335066936490245799873963326795898687664605308589720872626445729685579299106953644337731627784774508979548070033713101740782740816872889403624102737432601627135495408642677897910824815811823545800009455544901199539012603785292208080892840658064535995695562352589251128469703819577039664163662024269817229144796979491549664740059268271054623320282326028403105931828221058651806014167704099014271377850404950881240052077096961276023233500048280108590355175611207331544479555485993981159239115614949277823832896586130155230789453991837394145645693487859377250806109557102063361934458088940822394352587201785982025188387103622698856847929723426875184996602456762370336717796276641667432012372249339591957338786377301742955849125183070876707294036633570869981828559367818626609675675040042854986303501357615873675949009983883343550564347691672444924016213202601429002464276496921377917176926274916994187694946037146248612586307415911697330131754554720231913798297763107617640615535431854916748830139213381100855829133095043479539722986366885905665384246974017527462272135137856840572120347753156900244182391578241473149039785532958418161841106157904356926853485124515754803182965245389095626059307223419957677508021370255302682442496246794518780302300958970157414131032839323646641971417913890145613713288573512096113813424107841334672430583705405691001432615641238457810822121116521642365119230049767691678624484976262351073416844050452125234944514968323901600465156147624345470258473947160985782179260849545579482550470364622035134690205207363868816245945843343551770851974616031801200877345344130586302720608258348314640970621432490890921516655783092572583347466429100582613675034090297636740673152947598437342398356092905005402304295900996671561640336622999783418167759526284724168008032261512210364286887653138974219691441000261193672433682725136980706770447689756945635647265508661819691385427156840117659615215002937636203522262083392713036084963045372601468678981373406662598085933237021543807463117732090072726426975939193430592783965511940732197882239999314981376400489672597833228917981924068053499069999473024762211355376870750540324883057704157953397141258025686045839257191111279353628656895244377367315394852552860774597193598468600355872797048111755107594556439039648628800240933098877428758234744182650292852094619115922042407537995155424583719834828981885730255352631402946271869212838526890821412610534291443759776558470642693805898130257058007741351353218615072523542704414050050625857284256884053015215005873051395238676764763347842924741027816003178451682185757967461675750941392070032414443052831568610444790328029584511878007792886145208626149773128311249058702136089364100389955677662395099002460603329894516765642986570265489020607915909260419780628053792750810939129847385161431422108403700593494999229325902035556506490270182482214511791490854099939407845819209513297373051638584743724630389472611387181684383723160625511943415691838619590538744970247899440205128243841100055236285290671115861250116848289370508690269005091184126871765356810953635859318408705544606964785455956115387169276008522651521048514026895876207300873568092678554391876798005388249856927303799631184841741190137713253401226284868969786160892230498383304614100056460482482242290894365900580652679423946216287124893074895426524516221488616853443838528215003354751448611329660801533436207005860619059786452767569652557467886888083811107771605765084982079086193672645796396266207767551884189319473530450262384184262891938249853427880266896469731399999387827898554445446671081387147309984298036082743383796825196017730991382329312264376385456342445227632447732725717788711521817157670557251021877533893020914309261519954514232701257154191560951328708516173369664431412050261578595874177773803838704058326620822254539806970407822569796860121978142530853871767132387075664461395988510877270741900033505095959193642084158644269043639377796174144805841445184692326873364380824778018195795465253014420592881619677722073831045804165128452373688433361836722537094542464186927896800429815557444422437248864869299262413476337134331455087936004396931237072853737901327751724913764799777166936191350622858875689093309115114973618718539165993182251645069437966316921843527026786977745477136510273906705890832458528979685727278911328108760185534666840817226978957005438682445081520868551936814361801631601910952570533623531377908047994577421039827804644719462514179538756233226365492486889181686869445562991047421674831439608837208707456092944002686808428117336045978355976342228813151869213024292649639148144754532010820314700286238167849651388595440757417877218595045605305798679491553096699270331811239999916237229745687006716315655414948659033490900939823799536431077691138767832379313243992247255418497074327816933151224024865784566077270927730554207361813738923657800011737186425725155495869940337995023832371699001754388719489532860171348059623124254817873455081722486210904462618316174516469429117806522268981029664334474033428114608111142881922594946354587249383637850990158939455272059366187546053070298088497834529064160585516143291116360759040369967057807581753724541938758941157549377374514368457581068641495414567487759868613720767392232881048989161209040067607662459867999271832045700055027770665948982337242552348495225525849503082806121453696088630364506730136853728892483538370688315034640190757422347105892100978138206977178948993007778613904706066743564293395445645726664695334298809227245879522798592285809643851511798000072916538011574538262973521104698178679375440169589767300202318617415038052956330854778034361671129759584209463460333070328905511820233094081792077366930463780928019500915659802835993311928892416992155050658956803554890887111035536112509694096672339639151290938556042350809005297620877962343435584499096595091105852157259585357995163222238264407358325204599363751069837066611904376508624040165271616659763798068832411608366630344613056861194631136088210306971924721117367690428946441226159473088936294614603375824742364834802180780202784551004194302109231816470308657777330226034218706554009316371038912581829029652887925927530404390449863333022268346135453659188752149102357966539302788817448943901135138981658107044410608019265571536450888372924147087859209910062859509488949739930407032049205494868660153762413850609487399024479538733213894944745458437682895457957762309689244665578306015200849459656718778219052926318516582156779418045852133417038143793636250095362677068284396805851524526889875712368994878217918170271050257766752200831575037306070270583693565763410996472032490104577281829970591841839361947982570793266256609282327989649923135346540045823933753623406312821099507701688450215222760694160604133778392906469925258024704517927380000729396888652272415909095515624005427847616516077112905146330275787786192644386946615911936755633295640897654708349557753883045851088810269994897969798391876088862505802302675900666742104666637404448909991307455781987589517658675199476708834942614074771487805271023259557977094418390791032087686880490538542830261781657280268018117560694099664395471561059521110142389034161150746808512891702280622913039385138364097760195997625131433077072749204089799760627919675273379866440212338546166266483590426712237480118116607750603207929060918436016292526019605646524618911985520479192586682991259316453529905714912891371448849694740217122767669288716826694038760778070640942247413727570154769201911723466095857192148194812446861876222895651826722744435673007344672481373320055663679925254795045950581509085502896312649453571761206578687500413877758933109582676813541947529514941241122726834380909015237149958985048469323092632183051216338311203180994761601453674700863147931852537039668039110100801073789113895752119322551781950713419569284914165427669417021288499068567806708418272329750902047739856659129416365112928582178556694216426062602748778589689549084838918753815702772002727260986081408911565801954436862960429021098842485362979161165249065613526668968162691299992578481908632160130956739434837282739194561668278840029673087937826795638221999317421000514617551304210093373229333152088248266690851404231712346931544320123092202541387730179984651511696162457870759033658933863119660830998084907926536754677156675299015125383233836242379827917368337080895889113649668586803493365416336472435659013419279401458247427022448661118446789286876874008687804244009007552319349804999972086676472778650059238255501591579124928779430924005049131556195608057680375364237405458125249773216321956358988303696041579700576864790948152417080766089771681249447482521760288409112538477028394950298877094391398892487934081193926908795584913251127702277617668081564971179682677914781070576864733372538574912348555734972529344205350077900545434297527632572104659787766170849193773424365732683852761400665460646750199744896948110475667948545582093126971629507250060191627185610976960866158989049992103198709026440575457614365536236198172494571641779899394215390292605135138555050665552373660614559016632794054273628832772875871381179990563427800119973565482137790745605507626636175803620060205408352490606390619849816814182273622674420792374987036697686328019817392332924390335383501883514262082266093984821624054304960124577242424180512461294338325607290324323521407272743918499491086324751467379390578691000259864291739199905001959571795501056696151507330551938808365945870668127955509799670805349447549189107550348588212826058778560744361536756315533049461394093805551923573683013794599462414459578077343782581150646653465237471936882383192747228414932418317906736187192919371198609735750277216711572624099271482871250884781214631257637331667562096024052334070065716855867425000308402976588324144616383741530039497089925831216649928214923581477459652445655818966208655622650127323249462293725440339524464573540850525387021043293032836094106328287407702524830972048993144590390486303406557865578583679442937557108151154871020399881678530049301859523883057760743595944375356336088432306763535169763412992326624040406147046011904679704107075230559996605387508422152881604826783709640645354165595832136414193349179988303230247775984787883169924677620041947944031156157616607851763586637783543353418345489373582968920252883619505523864543711713264577365218517018985693612251829239119221362309369132675104507096558987786034717099064885648235452460770739471347832409855721204686077067067472743734248326521350937715548069667073467243878437355203968693689735706018639357386439757889699037383609101528334057437525834300356652761284217956808528883541088602017093687483742372266959603672380261588959819827842252089308899139508918946549302752194289475880891733873959269172780642822188523185433687068997966578108406982817752503520011286676767658285435946273486427340750619725792810945605624064827805381033829440483733653393602925802697154846390973541333308837294916415544907890907339248722115088726298458066401121555467860399824715269353271317658327973459037727696067259367292618954342359806639572765442581464124505711330982486402351844747155640658426170397441475480173207142363990739296277980082825303784391898098446790724672973282941401230775006215792388853938727703470171472524203831642987417122254109996013768313088516893308271423201328806483660417373139178818609812546921185836461262996286300898846475804623311619803654656196781578891615438052783177241499369388541771115253214948523709666967207182063426728025040811482307140683799906291880016904402109313863513680113695764747528601998483038231206238328458974341152898061031456532229482115160833236851037898658596693958900775406922497858424108633108547298068264361527093912748034661645772537708116048232322806926668106236631441611003261928664697268210990338990980076871001705705908819563057214543623044551582562669236776227671485927243792278246878215950482495614818702158454736626781011044452642287054501134643204914212917553641938174558842214280459425786133566603320687141297903657143184389468911476064203250602015311697473114498146250972795737849647967947886262551107214104385628311669904647975533646141948029005643358940177592484171855828051424765774896338212526027444141640386246651704934775225815705146411852382778641181929494839215781651860975864085970199343521397438575216846426987468366490832536995204185287240460686928293084700256721026284414923439811054392143917948888205344148804459260975998834468707320617126411888547715054011052705770591738807609793951772365280273547053818363277483942954581060685928192957443532633043721989880708358541852045346411860529913751686650907244558579202774271560345795702846455323884974737590035121726851280226877337161918597393585857156038189225624093946666664068286441584664953949109721933993814249192418670972969596339594252042610980145229493104633856513776331412380975986432522673855977782354608395364462209764666823529462175857860917615051017784148321438192202472491752403050716475741746637491559667504571415444315894876081397263787915618721823367914916551968539642061601558096346554251218874072164588404108034726421823077823029335479156175806559000429353917705725493731169233500996336060151718933509399952323463763133837061268705804577806848566031549612477857023572953428752772216593412425054377635092229821394733013947288796928543077652107153979070345575332305506993536797629821879973034921533234772263036394592072659017269569101387766046112153859696870212451238396702640091168882815466962275547798209009048290926907719137166576966567820076038436489843382252628514640971718113507791924197792782413130214758768852244000327235567890159980742379138267990498605449396493053793931021238901665760350169392905357087745957490523601650409193288289742705585865722248813636434343919956260736196718849015357626403147110842070439266693292063120597582823505907014060182189468447403671424336672085931245284961486586267290935140869899508984982495965033974767936562769430998225778859987201047942777162288488978304886187467271019740965076847090610036422339793378793563466227644443937468255602025352106670411743092092172992294066687258249525465109785125138670745182408610186230835632503174743068622302989268498017765591719250236432610230018007487974032092118448859044316626478656893506551019597256489062184458101448107876865750965914232628401776504413946127207594873238712593518471704425160034570445342286768355401441950226041870612834137545778267129263557517404140009803021435935140207319351120052270463565810548563043555497727551736645722121096934165227615738127671659954818302867574783357869687127478126153603745515809422091282827764725391084339990371392647274642608295358860724722361333800041908438981702865991515631360413214441211001388549148579992920481366884678158873132197002306430105908430312023204955063778990200540404922529699403895960230175807161692524422850377497949680675442026077871208482913573946133860318785333961475030013711311153967785058489549367726338267494192298861429471881621934633155336326000944875617119093342162355580205246123451870704949006027592062398650141291607801581264559239429106417171792870938100307269058081178714990587998566954193570025817372859043328791931209095064183340473977993657859783030442053942726582696075757485181788220147010684065632428582726733532070931620635941582018698414367468612647769110213896431353054324425148463798138438952162179517909526381028725886910590350336624457349307880972172428410813667243776982208300294184689912512756263780746671892301207239348621253718162747494600188861558449536645010719319510013332016026786930890079177596132621874017365589736707640745892066581571943226516588107739210514320791078587531322809815672955809981592453965960162852922661559576589304854178508466424221861392987720188770435035937393517145713383300062705122052410159875316073505385898921072810032105308999421027389086978986095056199905920118280013583387664977073205221036660403528291178399763998415628730379752793032271364254532169934693808855610642251799052040686054225346744449729033066237323942174894342128420145652931987813363871948704058186475626913399075600566328794612681217785117910736897073621609778968338931011987690191919479458869420615164315769307489257367278601142548952915160284065474560122793125046973618750732252394486532702471962339365098395643572829645670051723969858167478650086285854006886129274088054393584283597262775932613738219868965995233753965753205299877005061286237601959947188891391084802727312404734150110542348227037146486372883713255400546979976368541388368407503750783775735110043888174931698933921363848933921709230830512337063180022245006049501972698020950696263400564445885221177959656400736205486093389675207967015009682392027368557628733528916137170013269693305735170376249891629617140618684749449072653468870574671613463423903341799495394575265538396016866604557480316563604682447531856794320699262302139529981263654076832313540428319313460701313758393785501471420382256150189683863443393755130459398009821466923185117422748223969495955744103231591954752480890842431349063896552341663196952424344113618591631416057295269134784365606689595784740091220536618265947236950947846846413123347485223788025506844420957921411403970503083603645585649358486462355964256369561400110651337514001465122757325116667292564133853467962021865276867618545791704719280521124736486921821783364988660993462980429722368148622673315886774688090735958166006422888903542715914516683370445996985889083691987549231064815482122822568987386980226998571459452614207753220863825179884049406401340333507807601860936665986567790740744682911905239034951967437463937322850616094675642773597291757915066606473749377939934163757181581369114791203876642293528123761148135971272381024122885728131227477538026655507606132836586144244548209095666305470204620789238249379879728780019830390307862623889094934284149808064289441278794460939963415420541162007741469461075735555997350892532337687406868209280907665316429147639064213011146821840115512185553574766571494287314443254380681494680081253890036366335792142827857708098826219570474182820075883816955476931005101037026310951911279880687051696465740337617516110901388964673490855386434018576618009776664691564248424233394568654965821979973085354850443200350695315759471987658237811701762512944391520833497376936435831830738753873351652461630632737729806944857647516635458757401182875572665894697066915591512873825272786416840355329608762069491935670698150101363249578634304731429571409954122315600011210008691292468748728643698751998193375701946060469307275022513095236608916840926421336313687326867569069522931582163002593983054648026550835728952059325628425454520451518860078250727997281348376217936419308473562393878088140628262740082588442844309351291367863603628574446435469054531665055811698649687360299369930544060083702479077096272398259462543429617330763111014147311075476350281466431256545240499238832324391184028623076456642835938629526639460998153301538150894907336186186449765550153182835843538582177987644537522548609468602186093702510867141584207167894054445410146303470949383598380710550623709147628051905708498941739935085502601402838364941672502465755827001956364884162284742609653432728604108923894512415435709915114747462566885386827416869908133913076246802759796695279462666447033946892675353322157286043344087358000049908785311685502461074763533240700682702738157208678379094921676491210289236723473371518763493420590404233962010026030077469024415801127700221262641529650112749828926937222572853467401048886668296108814026881477651837814376570503744037868929120816088280707202652298235928158638397371027360143377246201741899355579781630849607487790595199005619147158662128940250835338749574332443695433854681401290106437324130074669104161713260316377434415149512736231211999751608595213940075594745147388973097054117153728112979227561958452617903381721222796725953709860585198646441243989516107907983337027546463633771946533016478461693076413550240609205068636972297941005010287286260380613124325390243249645096454669761789371559716902525872298396752708999154794802991381886228856016327553930762797007847887270564692924307581226225935899415267842088317325806270705239510002849387211889347956962187309044483543110101308850273556057697306674888374144420791749317621527273696737909132996783106805735485100623203792129311449139988047561595516592297203316064913278328801523767007279094149481563104259524088987637332630546601107003706855927653717006477132701610270353515395807254984220161600353234175384522915932227177740871851511554081213033382087489426512824675769872516948724717340369014481277728015987203316429508284762734686339531904076916470071050895499779347789044310683559974100842821394097842850769832006439337306776713579549370575923977103421188987060889047550002155473978614281271183716483497128846615712808187726785893237215719697630112236493660617369101150208989254923648795715602897669605213856686073250417642782472167511047754166944222137453272211553783468556643284979139171384450370912716525405090464399184186701074655766194712531523133155550694314711968358248569961859820563945562859311037858426779501477336101364170651447714556868759774008132063843222344744089646721916470118761288327142767300691294751225759515661656059945881394813127727439058044788173165222752158384887568951302208521851688600687861963177615927319374225749608482890345536170042088464110646319248111070000589839005138008323263803168521009675017591921522493908563743554780945022770519688940263953861339827873859367156015811112062028288957201407764830638241231307384874404284464947834419616143403498248184091501558122869401773508926677935310914441754685026338017588566209716039441223606767254144844336955973897780561046498787237316250958508647202841028601987429626898336991926472560893732990442834800320477751842083781664731528052351712741435139453342384216468084427885822600588525267564776885635087826141244660776326369681447036248515732054767399792018279065690764763804256153264785670536579793697487042959305663983972676104762153740021271912508929956196556052819814763776835191469700886094393713700674815168712652976602309123982640466795766200642994324976591965025549376641777835848761542902797072009844230272408116953424025479133175108451294185490392507797980539433779165307060064993480388546977914346362449183385180970053103388697903780737199052658612437146751000445923459364429869656757692938620518692267544628087474643847825500581563086504419097904848336114536269359243043442531951039544507245124290588898232649900837010268907288600788268092634295426310195456808427057281410207461954896517495989460118166659510019584985378677575652810002345880322727194533989849150501757282421724167054143880906975163550225628798649615922789515985966891543155338235525250156120147040154642212335545435843134109429341367999092224594485196254069278482167010119281036112203048907572356000322419146171963972732276595464799451954256752202125250000996515702292864551715768388884799818686801986095962602034468321476582596187239371081134298575429542821342874083908853679148080713354973138707666569299663036302673197506786295751584384289579965428632291755892524843823737508775281867951389811314477574065042865045044994436425399938891772855588392522001405562545774508203538106732491020267065358461527487670242456322121048177474317313062565172495823608316959578851611597780483220008170277080901409979949181735025404458248869802755662810710739932816335487508315522758838179830094769305261410786953304454565947985310352983941512890583322782770841007481303572340619764903720955900248963389429874810134469545057911527833579062351469293727497253775709205150324464775125895490832355712390993777230600051700943450992964115849107317056460233581749875612171089243630031702077109590104765416289492657657739852382368917205806867832574976785259260815974490672209102237122718503114569069591109446825970815103042317074341206591951818915147612201629979073767133455009401320920398643095463374204441042948421765670806684851819933503747574094994669190638752073123734879524790199580897610593597034416094805957564331111043948863453628145274157225840573560036790721173918344739098533064410511222517182606259826831537949020797343223029194310653343969855000302816866265163397074281730757941150823779676743158211555683136489721665119758912928616106883231020291483646526348046781654516653432934853329643331539511105603015569812205430754363213792872779421180028507494330645165409848890148705878249103170648727065317733795154218325082608842689055089630616259475676721108428208662715270170122474646916011140813751922526350349948315317727830202359837391902089862655492331709885631890755984142775349602019903397133711108236003512088810005278254681726264618812568771721343970762709783388739772899788576172484929205267132533057000549629633396283036530225283535470766407847001064968338999853347946882939879903294963470573284865611929626974640530851258436338604876475741281439464410870759706237550675091325497370752183601841874125469028882212401363582888104146558616105545525025273384671253355441950407036274139163589690460595505943143195841333924853067138449582672400815959692541254638872495374986004024479370405727661646044473672273615080478208441979414021080338530680568889691469793631021340021031867185298486911587013703850871485560542872308103859845667654251842545837762098914627120343157411842090906180996627549725178749493643472887821346066708830131244458207994433661270982269855775494381380417383278277465580070909022550712209605593560906968128034394505115126920244302127064394655201631186520074053634896393073501635832075120260239255092648073024305726099676006871887561709788770027808631427926424766753866332331708468409174782390817983775775906154579142119409519205741535177004277948058281356073813087389783193588714322527631658526179896671005553869648253501342036029414865755401336667846325444179632427728804645085581914502014192390793298245675354220933087219892573539868012134521300044701127369095370553574013594103659402950312479599465710095697434794857885237932148047107655818201928412398721435703476890143579668544573321083668759185998559846541224441304689617796067766541557949954043314401797357329364242709238696829213469281802465635109084113614707664744274974426022701685790650985423471350801719939308984137971233975920386395030508586812766738597310144980273465594596322471949243608478561415454451274736845983980405362401280750421129570778305053280163913051477518605904088851216184341991935376802771717910089385094561936217385076323074066355025248986487424630562032401619510353689364529289332367912113846898693428353191525416048541968006322077493459244304505450744730153030619236216818745236208999576159515951613306344109577505140484353640377712538753562033375876151415209557644291252556891424988316549439609478897540086761410556518758041571765546170598332777572948523744027846621271166119898774712218456349943962716673151471455416837842472983627978489910450765485804608765036824832653734743191991353676464234858058049929917656745648756758044736260531892595939154067563743834736166357813846914303289772631028354642451516512253991858064071622689962554353220206281152134304982525674854623641054970986227401764194268459181406009758396876512255697747706893236624026511979925409550294920392765860741845699325042804530164275954698665163800591327551105649205778808322996839949723459273947438410966264766052144593652598728218193890262717270014323087472783568280322381081112816782370113380401438703413232925831464996194317945119482031476428436923186732863548687204885688131604007327364760836925310178819008611241937571615961909518287126141546960810391461539584070923132524417910465483092405811546212172670406845780244770889475428423658087769981629329429322998009780222703068127806217839569812575309864950917664604540552589303272961407688910429640248241393322932084613191884836225034868960828342151753921922846949691699321408462586691633274151686629069743338902007870256439731631261352265201100160062825444753692869029270952288437246581350881939804092165503942016884191878801997947830706924706294197764434497108635613825785236344438979062749548779870696156803921041070223184630869143273760773506425180603010700213803127890852942990529209139757372752067939378249141659994903406749123178088880326921126168417657632913534428526806755851894293872897390298533704911535009848335677708241049100723075723752732915775130163892202003651549527351945831444312315694235803872416263984642482550617981375976602599480582345361454046376243668626766719119657975534017884248217331817781651181149636870508171880213477622329924063532275090257551828446670402723310503699650259239962503722854372433405608855493127505710554049175575335789930972755043399356726246229326670079894619648321644743009373172460416850019658120659672984410118156905388642072132371832245144389531451684083205917775143145927940126879655316154611227636174749430186390732438371399412241326327600508275716641908710571859494546076527395910028650480936773833562234989381272263166036360821026561238458418429552215942163203240149721387596819967422873148478449828599768556442775644485074618625822942538760028974578761116649383230390006336493062861792318709986806980871930450329989576444890766058725783042527708347554775845158458348526625797278802838080686658168078960906236988205932187798475630217901987659377382283294581516090430299051152043603854452025114478320724055041465584298494696844981168056122067662686122379771565502715288963888701128008768975232447890937876321377370008660058795106449672076186437344704898518393303818529471418617333310810488315199217228099218482173093767418535611596485487710162717863472547059504587694982581712223220484248638381060451234384786954523709029294575747401491300806668322864557037067009802994773933837024939714347692123190146438752163225989286632668538913195482669095809224018226119523752108470541406436578538661686788192826587909188428657870978495866506281717042141697183773000557948729440858826840392845548148897589652961117953633347464287355669261431540538610025203718139864988957575166808246272844791405221983072639417535725497676517190973324088950198047098518897976810468538566008535465264344340469502406976019763667476306368856666968053779019306097600525270307012236930580670577222549208130089582997372717141169315284045851989588190438393211846357471902094118200413673480699246380285836276351273074285862188159992373234660080989936613197439101199464906672478071238585461813903271643473702112180469289200331595997966844597760694601162526601130235098179123406331498217671911265963920551884026882140761649978837553701783072476738137685120463272690033464231076655449730975190031463261906410416219731673976433837147812059114647941776066369377720648132148593668584987194423602044297720562991530471820881630753381683669925962973295593457081672762840395517893031760440578283835098181353084215521597154896872729165077002464876572904312038136921794482126766605111492853875105436702889489450989102148853778511328648886701959527874995098125281832346095263673692180606965967164339310982566032902646668884695076604431123553853463223282562784950866172305968467256947520719942191716600427748418317630036288689895538346646948820392732695981662264759739525370493762867977709423108896010116962837182125627604665308890644192760102086059524796704136315651377309416437921798497138580430587790093369654268966844150719244301720792141049424522967702873266509215800747816925317875912543815639384587060761434885794901245462073410442686965985849181418884736454318766785193699301933475947586429384373492184756351898336957357335240585973427397271893239733298074832364202085927014383803366861038649376147292903952630760106117464407856774566702962123183776228900271847380786620953355121412905467445186302050025982244580828270322930083659129872912822563426247926918830481423235433736737743821654347897972249752718997757424097303884083852058356937325025835797826627025960585212860920589226391265281580457354264459680926431886126577075125448429364961501196657781265208086672504437736552864560139430805947092121550610282160154484622312883744694761330848963712926853411191800444221590647144283250271772822342314098402906776260959603107525639743127073808405334993162942626795979838313547487759361732307714223879605240897027743438233701902683378651174630678945763325191801922536231524111753268030985674384028017940236732809655686901257834443646008145503889112927639953211526544822547969009368895445334142385568544934039471394914547806245400902501292442387804240410528940382712821173707321085879177612495192958707210772707711861616777630191843363418444855709836857462119179136849500674620653928159362171877443490191574096926263536627245429159159679008759640285616557192203593401233910037070140026291414780248232529729324649944745016528756688112157870224874027520304007297736747267228202946343919352792877008089728048783091755199020871269079371411635156424432175273985026836409754781208344486846755621277032487445308265444662863661365834331429022711034999878717483238845485801459432739867649649040439763958928311698348418134216193217533193991151995940320176724031074082204194966061563068441916428375223430359413673973481901627714830758054715214383891485131167651520802433211785817486419663765081606608812442959801732328792482394140398045780995383473677768845646163510601695926722944446702108724239936836101096641847411998609649014002921631902546963208618731030500718141532922883387852089389109339866120171191889766188698597116190476248794257392187080287371854784878046462023413222194974925569071835752201721005296817825966742085043337201607933219596180560465848957918753751255475625097582789117073247992895076961080056779027209414864224761319007356115015191501435924075262675610366062339653179487225108142756426167118499943474991644543999000661345160577269379330577422548175315067008775182018662726490652299617638420330881398492312992854538904391258544494449801115146648710588688193276619100226626433924130527653525308101284483947358465317987257894736660542202540073931604987932001206439917514893056551343442751345681119924746812214063629574043483069856505240669443477988928042745583118379808816368049864928846714043772893721848536601883215895263549973445412671057295427801687129970777511975946024219138888278513609076357541470111707779404014755414986266007762392791693041528728122358784666831512474935053325710518984697652624405418333328577133012522192662275482084167419112169029422300170987134865086919811167624201254318808198098331442244673124956678938603567251021679179425595899957506505224317151318059493897597432828149877549868991152551828687040584739591802396260840798100548093807045521184026514197626979815200964340253705496588304321563161470345599690093406282485331298494438131174192434120651588437179757277271698405532052553134377990763986300650188219198910042218683286140061223424433927241578180808311134377585667468158754900703503037990271871997278239255933211785298838866775261455373005372793238856828733740994516572089784582785635268703334817316359901277456981727084696406623796576471257003965044632025872272657802670234949933666587330350956212291321345520495906195659646363240607339059854531689622282895605447688826546936959921543657518835266963989911824630989705426038613928649604462603322356460501323093813618122188013210442118026500133326430760841576345664050507930222501533667249734450674790322827196064624195154326404982185652943144928559998220248042759053844639118685667942905597415199524177749115605672821645128109718784995781024959840370884850684236835859426225825312459522572385174958205852595299340315618950360729142153167656565733221118312524455847216045362349926433097714777514087957599995425883901753354423599713076811871703144805224450323839768665059804703312768827807226112502166680362790023169771125740805211237915837376720833873821625349541520767786910830094012952533842665906920483444598297244146635687092697225258042678465970045628735641204751973350011348202009473432137590307007979823867656681355098479149228616729896983139138537118404294129063346991223879399199963449718399588718753792180977954379975155275715137754004105961747542610057928978572067390613950491713352318984380826110944587126329327539247649266598957150627316597243114632644488089418736114125817280884567250587647456541539348308900297631114749427092645271574588602526021414347213314915585940227786852619465773222908670407225385877681211183450891642266432927604081267186220889625274176708333047298214348253558691029508533949781211849483297130670345401572286226929949968281106016889844654186527191512887040600372917761457687410409286559961220145111233324180438965883333747711167159385231120548254371286564061254772695850489364481738982741586416067080583208048237289205403074583987567407348275587517276123556712313976148293247331521596597170365996352915488401649312280594503336688650818466720825983806466008407237284259756873870172504477999704583465004539497552869835470134206769590903557626274580314420676267255685017881168465205059008681760269355492159841043753873905683972626761147191144294470154727739283008521600728749790498887294705870748884129442207788937924839934328358339717160786212041710569926242681661792330886233845571780736082077326793700859162008840605373418694120806200539476616059010604190305470812037406625274559291463342164786386546782952384156983001302552350758941601402729045510561003714316696828441281310667133163306498299163700895870543232759565113194896733156121124999641675861311506047256153931753696531318497091250544465466098388076043649204305587488182899149792737602956364405923147108696044649174793181824007342088690935672446454839856038525951647399738089085835145879084813856197501375308087707372055158242696387789904996604786282698433871105625851441387195529151386725467332560898304355618409928979960351787325859310562579537706945805580418594646602814707066768225072904931600456284047901747774643723983938608503021239482183705589033778004505798656087406090253608960978375148369719833865438110809729268996584287334696568864606102730878237964478412861992770258611334057852894687637034445904702065296678455114198153795716584015770556201811926833590585660321032605729035160079276679756148057174368888638385785123418987931666375136542706701033014353685332814040056115741311025621396676644053499081980691207920101255653590390303860196164898784537364377769729694779568258423275834397254721206130418836108490503702673594462766777684813635536087626082089728758464337524307034504630090273072125870505285050918341566226873241579173345034317586917766531785621824280730775895386862447328914308088376262159576945521156489052748003788439258206652690239381267959485704918495993360759016642622489167274910964413131916063563825845535746950203013126765547654733992349805617619429748247349994568582814039324334435332675224666465893286629743142206860254245901753630954895796406759346893617491457398657236449806184768208066143958808668230605610832689178478339565856686958675295972752118827055954309744462637864121755774188335281794813357955979047378095811286463051139172827367153351817616327695030327332552612907813596405073965598056550038661285881538618339555037076530719447315103177102530256984806769620944920051618874791013961234073611540240987884343212027146546437030624080449515417623532623794438321700574728459281392857687714788047208807821914452689610524942120608380544079529791277564038913650196549005580828144924287023199195029083964209150600359690234701978580988542352567373989065996383227873504904084776926934617317624748521195450798727517333237163791591708067650034596168990736464727330718425056662610363214788145109426540405929261776483530164108958041114870076939970153083026653038111326635572492940727287754742759421944480979121254845269262330414784424781556080083497884917416917196261848809742290682660625339448446053547740267375454784871691450753577500788540231486744118362343744419929923209448486772290044347535512483333847515887627888982138952485664297876026421312703715223258757067678950682980815357179938963214602732627668491020358876522941862948111919741375620835628679186119426777410352552705193929000149104482120420731244275879985109238798803991403785670769965363045941594643020393034427965795356393262188527893704025687982853840983187631484197416827170367836670738561843779548174338086735163249124830089333349137103646907295063325865508894398774588627258446733587901002795391303813598359871054901004849698002369951094949156028485203483734541312089150348164491712499538830705861888382567587246229056266910637823567492476307125038484987452717333500656019833452006172202671517985604640307408861632480918740123945389828270526505596125485620271707958171312261987781059454639628543389326614995873924364542590357265381216035712219309853046536906733769320500208818001859254506149762607018553115678902583982659041019937579031830725877904726095167962976824593610355426190607655411161092828423573251207091628044395726480648879775196674245455448631834727377032559775407225579570853988274025720790789230735336374734578446515794932037316523984391020934242269119891656102671840223675961383653479480626054109050527238740928306351057400909592499071387409935058362517467163883796035539883301780910362839980134803130694567632297208124931943277515400489677734200438201315219718302758225039862735771582762243600299544013416758962660691089052758806024804141147749924753218650655900257941516783666507515592892002743317607446668833707972666448208171894720479276790457008019533231782073924630006847811794577421369572962920716678983470439096967911948860376854364438729360427907107567563324449135440309924807419918478159328976413169936699738746381427137212604863646035014533822013603565590504009005513387278153230274572172389166822897221117978799623302389744744130549344625749278039344124836596143492885145760046314697680716450110957680686200854387937201404721908408568649137410544830384696316862229149338874219160802986505840990186123053469409805517081424728508068181119782491279083199175777209687822816622269254841744230854803142001677710983896421370218695706176085468796378712608614578586200076814413555630218434170162501891699331787645541547113507924777621683145430138241113064717239986393726232040865252380545807000315479386960122676682750026600681032841454509942771514107343915191200568297201273120026019290992236482280373064284464049878705012747662033158342981221581576499790114343136982618876222473392704597743574964345523566013787968367611654835435893361800971479892825457627582129916275231619462325480723332211698772739858904545732277637940578577622434712275658156574231124527670163010421423353000313267656523817430890701855174270009283571177540241751758113445002379246462884722485607845729865381954567694435293531898305340686140789217856572866088116724116112604562324533957418452928740635882000162504810115855340789622336679712600511791628295389398618935237036106154810774584266719618268126489878116653974072083460852626759935154371387384862618384812056243972016670208775585326877966613255539023502996716080596370242313038309637112509569481570297604913753756633554897154862569663657008826791364724962891933031972770500723201899377532791362382454030812167022766171748206257952202934548959767126836502457260221604665029476917887073008767230099272465452472241826486791217558421000009632775872096792614573875197514355086435491832860408566790932892317532731772072223075458038394277853634669857952066559149601799511221522890922560533460460459433921919419026701598543238490374186115746896665625579422303812861624670265547687808041016023332082091453217047729188171214490482430974196194462273709816308451613400724009056780559721430232036876340041567387436934090723753737848779891146265236283755393013208899989363743547567330142842548434212323925610701651949099717050997830970712355016934494679802365619540696953101311166901265011646155507256916440115810473649864393363801749896349040284715372537783911230134165290281429952968595322974968753764034907616837763708330549019081402302933306329131602443021224165784427227113269401522864755327678039766806985776044887111756612729984526176973658578177675464415051693780621544615291594697370027753190219106912476039859749181072349729199073518762558284024849055773427766001169971703992421359478600754084803155569953850569315279028944969026635809333145157535497089176693061236184848226477838298947557339287725050898099417206524908652530005399778612491198222322231955498655322652691632415690522291540963804129983469448832394693399323727169320026391375601493508881241924052684515496258982041109510535560079222948070184138421406174548931927449012924764199173146407972655528142671685799596389367503755197840388704993083193381418567641815251734300049064546677570978725310762838072555743058973955311775070178695543834398981926522524366245196488032601889245250751285844813593017800343715676022068544508802152916463605440555828368457800680655008993394983242958930260656271733668613258942647987595604006113508954080535337375344895271770037832135833623037610433283143918695018108829616821574684477232557184647649012475209270580462832440990475228727185427825357981899004428490785718992152712001574579969481852863339757439681434188571949157569652227793174573904376314142938622585039072236712579499422523667498196573553695353018486349899414784439678403357662402518599516780607194203842426033116745475784397868094491246695839449872443112031249794785590473352311890412860983985355066121624829000197256270848133774144863893368378905782929045174770359367356883623332968365960811124427377603882138876683542479082489023002471941552144702978645423814314140444936360067423005432328945288601514956501396079796772893564135690961611752523468205491787743483046386735235265275029780190361471383772824556098863943739539770392653350676486906027261195385528051838196147802573755369421294140737548942678025023993275133532528746086572056606236348591604213748412922842379567798895647428685387669051102315508047527964117428831461733779497542212692751086917290535122851845840746137304673337609665037417144679122670044204384816976309379187021952419613936752902203469552861441510943379478051211796101165660577474706267319246572605442831761177905652129860629488804560138193110384332769036925843647331695768481239205903687611925200785124371468913228026710399421264027576390035150117052248384845759209823998914409503661498058588279638165108139900279639453486092841036963152760175435335647127689284242293726542381904734643684436197831203066543737005364664741655755056088636852365229975740003335378408891890648292679900722023487032601346276948696212593614161287556713350772450921894709647563508372763790723242858565496007723341456710689846464502534723253133713500609343709405993871262814432672037133048037081452015435597565917733740512869363166471170301459278855496299722856946572264800830706033155497222580312631643458873688043061459264440873310141354501079913679876216533717980486147499510100369745422703363717237224866676784631996334091163816800554370035653655994167428686420351017971787101356853147600090286168209194164352393557340314004929913752992475162852327570384114908097632312208645058732324237695416615492755060382923313413560555106029270409773331358826664585241778901280884971467064743633521369461366456887708412065378276479422618009050836885076418499732343422618585171048031399290228662420507595731348130850279525974167616657280314860954354152817326472386243439002276376373407063270640150416947460788082605526201344577547438170336133830072994208828112837758006605376404125321222732364732175270672899120210534530067927215921122259439800998768651001664430338806507804673324116343452329321463627324110563297533282652326267465861385004703790482316286404724608816364756942329419200340041315980354386834467312193780048646144985546105494281106462773814658918269258996376821532709358022314376461660560729115008309476036414956859790524160901868769930298914843786073320075823830968529369052956106425707139221803199388448736850316864007846024055141169872936573567662204445839886601446310671248596785830738818534472829701380239162381473924302260952333053738071006314094105489323815147745539283251832872772262516969127091644966411633722799261114934172342297192559734252906867538481020685487075340019868742360800807295065529910103278081047067561140497416996460128124768649293936466835307093186897154778760003430624566527420177483579958208402125048423367880621547967938915564119039780632519784293255721506104899171697253137299533213579198199854869078398084938627866696479702804372685294845848842818086455429163723504103103285786257228604472425749623584791260780671564388260623545811652781262241070435857196341495950200689885123611140395622110772070223074788524807406964588674388148678604772462304459441677972622035473823531510326151331305881175133041585675094265969770620330172348843550048978110848197488481945170400508105137388862616196171908296874573645188416707859331928633221722423416865969305078198083350995720854949673908959980661292630157064440638846404494451185288831297847546381027119310557324740792577313728885801531918439580057837765953258314040915944790490226194587930052788063393725576563316142033745213115647644673461845322981658621419422387832921944369375679145543549067754496131198825676312153335499514781968217593605617174872397207637613908931497499825343446785416406988963407268127584200460640187356629419681915540728424696367738213379317167050200479571358971602712773518574032015978521192049665055317552281129854419509460500568533766722764568350904645725840906344265751943392310041644390910541437002118376563921734253532670784505744674896258414524333860839931802980951788551280356602017334993763085069327270313799068861472309262796222425283914003528432997867916298498295223202403237595904099156470693838539520505895865135067980359448213241255867051583911119047417735629313438556123176976482975185000795771017549401145707366888458545260559455224824692091968001367344072859443074405786931932030892538994088707485180601779101606208203126485280553524605564375328202709336197390161185721660592066949197368204414999642179243805553343556821950321309111269086633895969151163826934889386563238203730220521832009716949125337518665103511718703831322513766557756749656709438924799143165208794955926616121626024044210315333271498956082599068694255306878559991582965417404968903546566567606637516290700748724076379704952828008510618318761766458962545455384728768702867841582111764009164460395092260010296174037236197074974854644708452588410671335405573103545990602780733601954111254679183986132971731479654670402333757538234433413711432066907242017346225013974106453452964892198429548783061315325437494221395824282886311895428751206134394636468700498768705126110339434948843765519455782430505531129188233001307126222288070010497518659942193651590260146225368296386568429548143554604597804740587499436139102224959737071082735512122381795327498494910330835461277753379858799063652847695767090057448679138390288361008631410640730217455499814545709140563842635657338510176180843608593067603594821683635731684714989737900244549285368049465092842754527963732624826036024925934343849730675509271236077505070322523465207097355516191136210899022444526915208586886567731380116416057160116429310733326676248129698408467833883791986875088921486133443300704802445700346273955859322952982365001906114746739532995574579326746996882595950536297218908150060647473274485179133641811728221392478208746766247996469817792170663177675450228770328359836539701900787246991646630658250505060682512331618817162516858888444043273216245873680955348409976510929872357804870949835863167932876887913616009971556136363418401895699168341428402064219994631394594039285277334678252341763179709189792903126813801260498788036742776214343045858546999664007395348365345943890804679192994237923776078281203207553588892567096300022232125398748233685165281361773500087699940200360324234210017294845681210211587124725206314531484169585183191176537129830205355249531927051910462989504495583208497550035818152097010577803368196421825665615658881123053468924805582397524881954815767095819899545463260663043661739286995855815632851345373517819585793656411856352121528276221298260884259145381876874221438539730931506799063601761084150924829264593570960613454472382162082336337153123971212725302344011611926181947747643600422318885408528872670531234451873429211148208502652815655878127485755749381911519314809237077579987754739402371343244302874665610633092381288845436752463628011699792448115176114141715484200144408657416800319293833410888669936892032870220169377565083668893478742854481696957356186279602354759974522827818573903255830279971602587319677604950034981530871312399957662788602195200708988229227699114289705594178670061794280226134567325486053074346875505693290111708332428402698733046937181724403088214671494279579916679458648679295016905079237969272442177194828372545576212545036115719920134029238428630796026670964819456041144582201753014327375666394263469184332533870729418431097760197554936066944056592574084038940733755312272241224689430465348927277875021222073088048927420890915361389783433848406942846414778152866020207468729215877749381418338346327063241064760836452432608576394300492525481526268977440385970639603958337572352900022122005211771035424686921834132943028316151026683957856689767764352744893934403654489726435949459552082479389706084636700388467805382389968456299861971431707377006552585699357543396869868581778912641822387468484271206695565428858269166697468623865824267787381806279628367523722507746209498338554282109352706137861608229145965316470418178066123624819815949331710740353976755106483496717365594496733575312437952038542156838627974833429288734399055690162719142523326050276649425529727761057509137576693120176639931726042052187719474453711598473414747878221433549774116510416128579162676394518001132755938536692355463153884992161330903075751719096104266918184410368621306630512935891310779089487987055873889565525007573073570319487501803071499198959346039416680301381229070122214504781181093651596872224736283414820362328100783248590374672941270827930604678795290461022336187508091001382255485822420133574017777376926001227393240858653035360008585234569010118159936018570035720204556592774481018286995525103952645369894792849704340969828862369967760749130302064171789452525347349815203377633171214428144802545840675761749826287258043005203116665351644572198363044914839119245925658134154639179378308833799737156192915106373800067281687696674348622551085975359583993716736847999561222205479851449586833290904169267307645720570373766288108416636589454519263408431760675857294029075213576398312441632189495607865302207335972483273493289108402743394107234671657266485000166387113085842453288145675079341596493973040050166695575264126422766458945766571698519746966533354795102923841109994152975108349878778974872558443978690672506715777976456855342891877149278751217065026238625589993032902069461677230606486130931223257702480268819879111495989364297734722874698840583413678995515753542124339827826029491752207014147309352443289422428066141018689880395117953115967244774088577195867072528906871884726459538868463026940041999541930349546326284545432744790800496147259559247144154549305622800754588613622190433103400305190735372003351498627631949454177948813255682703199611860775126102241813369483532816103366101585449206267084792395161681637667498609724008099395855901220077545078411203223076386907194609765834122798433777410749064697123529465632588820179414808959612086332911364911693675963891025892549227192821582375758240475955565063064848573804953075951196949650044520430653871858659583061842895247481445181821683440524261841597512751813817479262742661410099320890134711211442775499342378100425994542325397088625711805166646941454418224867338675113362223083783585638404289865080962968864491221820531184097780254043767280324630317844456559387976216288481436450246427249931866986583133522611292833433390518650141460955045079423955865522413454887454151305289867486922325727534553709753312663256549665878874214862657300385010202005535851051695020793438514941616925580371629411509046199936191504885770455392695957989044225189688267716337077128099932546294657083891692468466688950882440744359589777652984445007085798295927504769862151090818575287803923581959124521552811206507754935903588740389329214527928504174949802701223507602960818707284906111235549038062884998236275959536099419115929954123302312069644057815545987085455107269282755466697291719784543892263027468440999540717972712884728335984320000856973522376597696865386562515332694477566939359670490376271082763738623377337663890133634710510338007191217999484894802023431128828755791565493357426123905566440912556054451419719830423194953792619915684199360006005509729269027447094651760483477436101248572737089627750138827987703367572979526178749406529346739204640077120254734380973139843048040203367069361585285508572586151903077410938386610632872941384222893300984132395955843057601380377756870413993740284827931744063042759753780435921412597809606699374537306605161470809607348354801593289493920560645230807134235864117766330109639582454484741218322855565587642951632331620984333822286901375698463611424172844091800607981238565952250689783830583887162929321481166265205889803329814414239523145573057723288357181147405082406856641886121328435302403494030868617517626611983910641437487908251795755775624186022464014779496882377278999966320877770427191874528084979282032137309836277443333020149624094860387112354964709745726525596751323963603748078368086509234698656729799886645183924621619268756610921711585292118099323563085068456553705221707595233434540849591620759538954641357175137509303441623222191321417881477606894489264409315188819388687246862852692138893473650389395677975404358393046321498096407204317919878768850264278645430071266245882797976840728742647056045272631042914166217905848548182049270528682528763392586013327546973271363663650317731920750292426058713080020153202892662176788801399458623250864973942618676821581070134495239867561161161123313968663697788883123404978793847699925930896870271589747660639748506839907823925889817701398706111944868060814588967507513298208921442093359957194889339982627392063481672949521743314473852683332319648311066700480699879765571597726000728012043140845139726120457673878458337598686409102892474714396018891076035505998147790283440054198032309056145701958408726497450285431056880715350009705868092277382320168265465640134714880955589008036864692262967610909483595814793217167059630418047208563972007965134100591053683912492753228068153801299541788809740036880051392997188740102096203195200479792656988379575184964075078065053749517004695010651223416759458574488295153396129927282723952888564996920498250683236156785650880252354522452357647225111631118418370638500466105790734483928326725164826040285853356507987518194563435846772258989202352912603107519049443241760582745504487292478951440448603433463821678727898196699073619355561445404365762262302556782977963475110374505523564483750051278154079066738391922703748588503442234053724676494943186524174941805186449283708019837352281602696117783149709535827432519352457342734985983274946161655466220429878873989405298007335345931680884657087097069468801168722731893383271488024622226468415755260709824643151321292429226566605190186412658775642880831047335811591499122936057254655654783937505760555357514947303531872520431272143104937216614109896296615076755616112004684497378586682071263126755946523426865997463388265647959579495427857576984294381726475502303799188820601660940285803473112834238839606736753922174383919898618138114625991246064137610550565025497010926951046929663624352500489194555923461650801916742242397047495050200241716349424553460887096051256306681523099270265255705872971254904641256700340493285171698888438409892086608789364231013439887907952727947742787675638686286196614600716181079379200889296902363935787500905742936689700863013165410147998834927586358542093811434583084590275735533180083258798137187305387181992453592881199547107532460325106968996678080751333149534376071766133378290015046851325731963513141863786349586150289955727273259388769748088699305097197638948307003420754876693019307998848836099250720871886457300022505165667981693746737349213221009379141881695815400318870497532990583294729665911226974668882062347829795806414808817412252675994325063665629047958455741105847417473669762489618398407500962286747662429926747465984826162986022920732368639499405227942145658416661485046647645678406975502308946367014134139427072550062966475382084395978183560094128973413312223431262760391993629280210219982969729564008191006492921874397947120312649691800449088039333314420916732335748069284021788430743676923168935846280707065363014885526665766681239956290701345584670260346051623931428042632838455350097962495633704930219613121041068751753123165434068348045753459398651783226550460858651589732553731146637176307991379291011722380488701062153315243048229291175757009965154812527859135173242207376053308474364518574491252522206430914961676317350943742906626476185466244030339475547628173064076393680008630130803314477578909680824168748711914375806336642951015005077910981795043962370211599293423749356719278327994845501302162523507467780982299798119422585804934922966011231566018982449564031565558717361849984515943038552214060196370656307957283216658354122940754815712806225248231720552362138500369224575500063482814147685102706802139492535128262420704958340166794160680994973827275902067723953209915357856158871805458124851032618498645501998106987544192138010106175392010605097377697298786125615920341973729265434939106178261608779519371097791267217235723351621985039807409293125996481940213158460814166998442034092652160368103364319115565203720129869537280714578636649728535069837005497598819528804733373624011442748786684375292566922973181025377692064469926507066985920676894994503784621366717158798358985043223183550579388658498155164506674321900649810668885884951118310358170515545014651205803437638752291895560756718014937215678812410906433386268048565547607187896386585461467561159052827423601351932826040634455028176687390552292787642218393789062937640763169563675238059640364593611132605097170265056338797433523563525047769756695686346997066928309455953272165438009097424052708615529815517324490040712990174390631820118397021635261319198904055852430057463269391731004804753862171057337458534791116890704663953101704132733234128292227123171736757955762130567798842818992934397288012512407444726532844080559522600725897295912446301726409491862478776882963518863805000842997881433081989759114997916214061010627222951824747112569028446689538872212856665390290289011564085842500811739094634009831030815621833083985818191760670280137160438592199561410146659243021891544344252217091729026525100842497961404197994210705395586405545399545712410713835185495725283195567853780908404143022249642586327882702565842228411397759014714176860956950937496001637962374515195931837719077355481208478853738876718374755488452012765292412642387287215283794875943857932445263552817470704925974648282988897992629892766603585052690545157545292025452478680094405710907534296668951370150685291648996776397212826745908099527053599148672435566143459555253353536019054367468777311696402649874926931876284993160240281282318864340589592705210976145342777836820920222686603157426001106173231383509702045102891916623625103903730354679886820417979718379590484794660470737961252831970569092101831583961199930493185594693566588910310355420533959647065364089693053164468594281116988215460141558505248279003411955307406757121571836336198869558976062753684063633425890952526190119286956856819714480260259958543405959243255661656019853494780074061234020901449147701245626443632822070542180981338500650219596108080633098433262773247988410862263994549242406793694776605401366393691864779595931844120796503128266695628733304443316641469105126083664262227476962925003980529265756547279005183528409108590344021802707945336443902206410310155424260093009223731675372912768419549630798408553536045083192615585518788355375318597596269415432608013706454607610002102732748880937381900940613666974820737605682505801889702908388012446599465470372713576844477354548992883761696206586547749836347276265810661114951886461326198307350913930080703071088609369948199921044663413113936676757004997313268833643945907462973978918028671419903517487637195646576281174958362885859407785586455178068386944928394176450820234891379913452351662447388633009390996887926690810940927224831247032792093005897314239741636258076404017657287655134070332545384258158201587889685419185687666080713625402476926916020857585032597664264863967086339133587673598013141359737688638265105839715447824778555826710497547760545720409916000556619947288868955639490241172690177647178948377582760701430718496585469952272596794741910672703006538793052080246802220445070708062175084471316653962970849404593059559465422270406549284129870063058161800521525037607863719670607513072675430008646453597200862692971168564189649461714936126532528594979258156884620591987408114475183955120434863397885701394467288668043960359443517233773011754261284198153407437088347357830339943352516338028113323677037035208556563491618643821810013407541454232024056080685286491284868726333633410991729312390477286014968128653765306196588064408374169050959770213168319115303031337246330394991257045093221111591736508657728813642639967755830981088703240419211789114704884205259630354870808877654313657458001246050301746002534637780009916657179987932699156964902992749474794108076481362739164947757093351594304773231457312243717910770263173279029030045984990810761763611233825718577361091107683708162175664696476801797193428676485622684371268487874985921653072182189464354701186517150356207180815276067256520527593883198774146166774121798580762540265610823074297489149347458739275286118759464523806359506521905444682661207566225747939231198768193542096689047337582261344683489715940314209279116259112729624543086817686402345285789510061313492745048015653776309721740074181631821875355355319555219574450017402367678365893362306920821351575882142003889001239700679897638643199639621643669248407757499083352292446864303395715500227516651647121541378263800542657035922645446265536031794342579969341111771303437691047366938343957258558466094583639580479564235820363837467120356616397154774152409996540591096447309817176129224012075180176415737452688548053327281950132233206157488219142926218421629695220395670976157338260705653690049788885124379320658708056138158250495502906551603258677563132102071259091159829545230495271925022867647117713332268197382041449333608652090415383779405489926159385848848461456960871462345412463855370452042610021779752974376819789109250960705656422599567289376429783191777131854499778988041184020617979063928029339684024872214562835194875460003391716160300254238592674606258434850020623545211120185424786290292808668441427335412388780525446664022640525993176272804405750082964618157368044315591569434375421923697527849457825890282462872943079672008564509780327760889215320779352604904259875066457727252123239963932375110616968694198263562884719625243176052332347247314403139178572100719622962710289938412937135760814095284445533594543181147751745388133828021325663501862787875641875834335937325742919972000364266669905502983225877453448340228059724801554202603681728368858265479694423856332658708240931907439810183294202419913316623780215825854787194594384758953283921923089203719475714404151615388622916604469892879001489989468347920115468361804142178594228922935748662095256353912872389621716453394718683140627677347869380747705576156134621029971353494132579885695409285188946186547759256718985522353812819988097586365860872528166248524705068059251362018616117241073967201764506663498638135434854980939686867406770941773320668480844190986081349333145798093593041412843336585150471515254873922061356432601027553273510179144162677369226043590250371118364058096679658429181499216566323005644683176763877344094369341601077165096952094484781326832062513010572119718168325695018939348293336417322440729900115277026439069333234453968303675835571321854414855528693428519893529922312380352415510309162782900061287209776625552095315285949543157274518559754627765599888493143024616057695300414856022642059017926069030512694955737122932931291835958159471451131224803857029648269189893530182520774087226298301306555514179286903638559062607134023454137663888034460268023438039237435398655050117081094126403622809865065020183578804437931901390968526992238584509706980298868214478973030771232816866704047468422801491056859470456989910371194787073714789218775003714056579743422942853173559980564627575539152999727466205738020327480313281494594492825153448710201912656622170206556435459751320166523623602274986403278965164734757112224274063540142027376196489927513772583769429789423974737262709070815413489546380588804680387937147549698079056453388167705856976885219492295752211752127288192401702060444965432152550446429929274419036179947065900261313648078595315893101074783080945069344721786306081416389633766287256141047360220331234130838257701809469494386984490884254106004497560945984737436958837747199428380421167857793855691181997438156822391110920075672038752726389199061088194603781916731071368052035265670312338189434545132565144276517735100163562257381543019009532245874131651226994859686117600798803713963333751582310610822610521000767327518437642256367011171271219654067647489239831353309562085057077396531114944514850571774111581271693221059419953817464125778715590825555310176343242687349214935905161438001609340730126400758535843380571436308991707262181761125002122634074700814625651755721439386753989182247663936443255647469970152754726042827351289260598513815253000766696466125090077679419881467672286743447440006780240958436149013924838927973923608091033169861604005407508071991860008841491304499267479720744113944829884866166394805722313010770935888943575380532584239994479511228921938783741845353143093911832489885178537903375850935207005866858757934644170403520132848637850862405508545757931130671185582497072784316071142904275650930649132041611526096697018217299646139490667042428096647001558433341920070391581669094096460171431572621639242532726886837463404432802752956508205121843503379864333087917751570627569390708109845193220543599494541257459223147932276181291029878520518394803292463379205550344604573121880149906527840957781137617033866562453387048324608021132571148585039896347112971002240293004828170203564543787925502330276850758888497671268881292405979515265419481860886767932374977720919228015400940151804428883255043011113018734039046156797962962272600463553062223350817700304569777050606496597257307093485462703014853134235888364262983413740518806486836530466773325123768705066529308501350713706672768596740633981538659439537652573362548233021092001236177365066981784528146294568515046840978688026146965718608493844955707709621900683675200293308268572763047373365905652483844114193410104046963155803105746128070887310132642722360934331934182365411522113755642971274669598981772964986378634413822016455003282352644611916695904671778054455133551895970424121457880534300239312389815644470746321568829265037837128167265981695217206972533450091257009079165667415062752057882604094961999132830387212695715411103770370984832110444833035587220348690167354933025275681965487211092136543943383961200819218622132884760489439611337407004864721622758045503833874567468188453965695087199192069526797257651414556557178199194236348266812574550226120003688838017463256661913372906265370333600805252018187003453615200995281901436356060117950490188757239380009449810968734633894853655457923420119733207511523861051267453931799821617576429593119714319644017656738984504804295709250266744282732740846397956637193035428949738798062097444886705845665354426061178862324875767835290053162747760272585932873181918125824072733014345661650892344653562989345628352656028289650280472467621398459580801733975823202385193416689594406978296771932836667821778791138024537302831934588000947700610357400616617867787891467254228092352121994224564362100892279112572357408095775279169258035405682647670773408662205826183562094467690101787304711220391654760676043388630382374312396876032362569292012025867672671733182156735475416610134776514085401459529336936485811101359432411136687184547695779754203194142929373742999926714671186170429864845209551069729129446974296886220102416791758657277257659471090327032452423217750554815792156912993981324046923227646316822340616320159622078511473242713473017938409869118877045552859227021671306841901702917510075726348872229606505310387886225268976053157590740378688991708012410909913330086721268018751338555164698699687175522024540541083952847989949641461988693125776453626544262540682290600044608962297670654829828894497882761625240873093261381732698448519753916449731857032181597300034960759076632125589485876998416870784581867347036916225470744650339383997174822226390427896934835594560458470875333613706753046823688671433371917775737607814905866377141973849805663202112048799163837100094724113410267731081535607847400145512132855723973563333729274985162128411220328630851076150776174743830431062787478813405623215956249461157223747287833189942516954897138000864635662249774209374226365045473035221673205297215313746139668416465401668695609050660756790174908718883748919835239861043255582500368003854237457872527448458143127492591666762587989606431505235023019468097936021059215142935214816753875454180093692167102310738539598251448257174925291675918459047674140195094311922095404020977066650184120151004069286951522634382877252087788583659272939196649017221523436262193804695064741746780841216416698258168672751497689478130470014163784885050711634530033082721362413215830324100541912134883826535493653414499315895775015014334231429342700632372735833857773327419324175118031053126295295203236833712384166808158578225515032436824882329154161538021357735266243041702284908410177389135763612242115770036355101876419711937634696236343883278427120183279485418692341015349249038582906228371177786347170499655644478997232631058601397611683452525461378410955470291059773234938735419074606601792991588133519398263614743172677217429245471678859442564047321621978968155283898578353802912102348422153786266326518840290506250677819162436102451528258418643210250443481825868821599883028874193352247592390831671672148285704188316691164627225633240403232269452321582783075406998112450470297022622910590285215628069166304756368845690634150426948978371101911806276937201932763746951491647352214429290112365494132770406915341358647117651483423819327065009466229646913233464347343442722680844388555683831097669992973098921498308178615003084146083504516377065765235715178639168008685586027438936802333084013373411582792006219299061013670017072899923168089055827726950859639630718337861923232107892250723338844905268197960506100934177565669713865826624099103382851239765890973416351609263147568451404975581229675929826651678916716302953578975301063666685526875970119433707803625587065125112781145544237078902432432126451570412243686230930566832482745264848015179737628144201735174955466893705270618707139570030966735150829197906375000130880590974311365045093949513539227294890552974433372163679060427222973174852262467626985497377949551820310651808161720687570728741325123095183484781778128292567054751420287934073251214417526713045323070627439842450598282878434481125088347296134897518932135143642892705077787044548920165021317479040284805397435680981749597701630783627376845605241124873752320593460584875001916882067159099355295590015211581960572698216071981060672672855830136437774343733438638264881702280925561954504099244849220655453207502900638315662016197449814811554450477837677419172409023318275510082996816726159482251021155558385854737844774752787943157651108489444096173387627662815461922051039299772866681537479070934277565753218623087694755346264707790087530978621867947753491107908448014655813781681584052458035710825367570162151338721954925217663611583733417919724874957446666499375357495399631601269597927250582985155954576472587012516829332717437886907522986980089912941958355873561301917014582503279960064558300131416384237036150774058472923630896784507348849633331253257930232490955796432152690438259576665435530381733321620052280711753376714175761778124390602700872969846725049548309311782514153505970269515071318968587079354222448992915600996894637503900412198437831092614852517011835830171273772285349836807365361564381796290318783138922516275453862211660449753805519262015812447085240203930917473202496590478979267283515799843112282183657290298606197661476274979604452288653797073469523158886495914564732959489993450216004133280019832593881997157187011013034968319873354993181153755797532663470529365561876108693085969684326120286622180393270282341069854963803263405037753350219982592307492720286661318293582057772355361682759036400290738173780208262849122162073219082411938545564350620146235613638286033665614642699018798580976102622329925455527235058954005723725344551267497045189857960187302402619018993836308648335586772342205051599094824565268854833747876245971160055302176237204207870386259126278401711293583269087067870762868087076689043792753390125232240288710257116669063096516709063921028296028276922959531874953539262615564194172828425532862567617640147000427628180731046931411376717797645399457430935207106278127939393879600084898949471275559859844977262197495791913882486883836427659894354698889562018837988493205318210613385519563705043781755667314517133591967422345168001366211913075457159773495561471845958049392513621198480718931889759738999842781120374012308905433530682040028853607263441256914445582118819229903950962716476333167528301174042517749349884629463563526374492214054510013572075641897324879123417743000960518808311873385211845709597017969918645368886367395513309877145620692925296446664208887094016769963650571511832993396833345075047266526518100089502652508267652298030808164397629908876359657247419753454240003418863151114290685587223021459201704024377479118971104624466014355405043280066192223751199082136298101503198641521304368872635837834353365310272973408710200319857699754688142225622498882442859324203929959936497539981743632609385774724161589123974400983351853708277347900292366404792112373553212398648217597289751407669364887274694323429178199415249710917513364558122724309053220411690966471156950878988166100166205727403536570598120208921303956063361868246807614992701844030712986548259752793567543376476116398138767196280086860433516659757628769663098733438875606486325151654917489729730303736588852188599189571239549877874755025708740118007961756318023214121335141988802586226166329593313689263523778265747290038094559772988326836356867601106473480273090349013863630594131883890984051037309727366214232075730611819673815000585125789868022169126632282553331740940175446628292788120904526750605600899069431279155618173131618293838373251213465372734987665308309048453643978033985153340874814575097436677096242045935498583378795604188575389126097679705366375543925823977090354438941042627949013457536713394345205096332854661693882367013621597103195766785115474684048080332815202845525546808120757931551021534093664489319300866097914799622185652426726304903526670498915176447109014565155141476344952911965645864408484154635197568130326727842510941182919527397783507013283363029367657079088903355185705481482832376751408659328740990193724094292894471206982306907135375372786180143951284549024194700597448058942423704544207477665286454107503612886174581982461516539716846189890156719969160427590798138588404895332816467602128612061691357277873451890362177690903005283250435791651777635730003505437479289239140444348272062013338911486131353973802610787062807109141771467317867940782077963522465434943447974298350650320425613152327094232018484470139684466156747879765718549660291702528514332521289639131553143584626862171975733643429018897121640760482776884346785073164023830510844801998689047831631389403324751037360938147606497834185096091362549300734047654469557162055122258707621358087027425653315037515859497505935930292269839280722690800251329897966380333160534564665696713239735482273985497447105584571941904768395442660549558599262127205040607402022790926203364671336330478090331824727972553376980511024975980729478648498769988817384787639246897067389481983062796348206680291343771541952345608889833394508785567388989698935558998718897839868566712675160462832586794849214014555497166006405837733229426892203091992988271640101201592870262016055257128514802091247658127243092252403407649672402374253316747071098223720287864729537388484333734083529504200725475450018525422496954021425610478658651716221956821798314851069016882598419949539021816529683265136229467835280336382504500487270602807095015051563662695789031037544853472498904922321559060363940964900896768778282226308011223704022672515715729797334362936113676395875032388659525894326446735692335790349818716520543021366993199710534362511250651331715843557724540135199820976701779286128534317205759549214932709095978731218548873358483473790581947587233391324627789309198444983875952182757383957065579771333812757498413406513756811099588746866364398667003575202713885777208421167720233036568216548440920243791234070376323047713368283407234948750014174981711528514984916964758142282163637855644265001782245522853806740825493735104392322128801555553884815779895743213547318489135983920087882638847426577993363809661290495328269465653571396099379453956057554722604839110574674624568877924538247157083578257966966544349674145908843909376587440253184370176539165134882909227377284181838966136190757765281079366968330849352147495863055971377942927185156095773691181095540610841047975807648118604499759732279000359050394112748892936532980499175706303515503859416457141968086504091058218565968931568877086605886481024060319381531650644846807032295140869437911378652119155577942886406932699169057224895944751429401152039346582690051523148551298810910201495342217650263979409731563804243168699143121677273653423754592463941900455179586646942829645017581212679767888445052321682144763908262640417951414766674508030785083930385643037812068615835202471252201816416968403757865538042632966203611980729481284945898835815446756439305975716569671265383116465065957210025849249871537984915185399391558495398120358949751595331913491648848934209758256347497727568158249243973062575116120893221731454275431455124546341382147271978708789503412790271740016287574753562101949852240031720260731575660979720331268007671488937133257552083922083186989141287979729759752083962614803454147546919015678738067426409862124237737824803368149781240818504865710505122085887791029756983375037350411039141717573589343868022284935764710956037009042250411853258991498175625309164608948512010215196004577131851565759295229599909555890089985489127823457372462260169935900985314643425643383927258212758698156667475086224428895345672194913804331953578154751811213070834939476874310257697703109397611524450991861346979264781763846161110323740909765979615666270379816663570450468329482370535883166291511783106762913380857030870761638540543014847161329596419576130693309366866940752495413613017589573222038052510736249663488663162850224979030859906237988029884418658407032998869968227580528336277698204461913650871118974082945874064838125492035087724443569589429982801622511096977046830474482752918494079157879689541436475146896101403191148068854322770551186128999564964247029556568838934699608917217032696868453810770330869384803632132985009475380394665893366658170538836463634680371766930461443593600645604853542445829268776271552896383452752670044115358630389838000500338360082737292905492236294942235827875422702493837090340810557625468452385728302443763206548385741014614348388028903410482074867013708478543597128533232876798641063747226043640527025506902347981013594287768616581323099696091798368192993378655365152324045212817465426666399292188593816778043337282393883424479030279964202002799685841740445199635842683624363536743760382688548157634893275647655297482694903014531308777707483874860255534775478506510117008522704913813897119322121663161336472028789569171644892941709212548119162284689411876707468019542608552046162899252825795763965170503797037240395244466777933193995520069342221910096452491919537993816083372224184816373718344731928873363923891237003255125252474928681860186669069045501231918330204908805981814858589148618755121993780877219297710356527337468874840729768395947065368828651431395891739205615639850308951611324568293590423424442954579896540358475234641371081139957059047616507305961715548919471036226666714574324370237275021355376801400982663678298272514805676794740489477234181071143012293457160083954732942724743256746934052779625505679394925936195678327713290280689210272060290778264391968274456565770826434728196636096933971027816568332160499451421571149856498901384734912182926917753738501246222020491435891438255954783207361671163059889502607032446992712547609851951218741270613034114018998913838126414617389416536495643402408302189787880915910584983296081250054273377570772330649450703077046434870753120212307123066290686786059940177353737725235277759727763056845186530883815129459936918097958589667096115564914055802788786951570327452630619216890333304406337805864378078200158269404869201091359495739730243271354141330187454643094113850361876643395744989059270954443855705221124941461836081683262526170307356472121687552423109026498104807711507434706149122757644682487339459248670774535045124596604334815715916881189803950506773784994937236998997236547821991580808488913375427530330654381001218613299278714956727994921769738933562480418329630988052344940799044330525180116579521080172891485500651066460938588356215900818068758211952747810598245652440876375372290626521480465512356459901426104267220453718990831974783592713423976523776204172169002062155108462781149178307032797633839335871065496420185565627613061260307559532940350271016778786629987926217686939173423741684852400207887153421471791342819743665705199925620513486200067821403192620468113303598801581237708757388196987567219348551048053934797477496268665156985725236179242783505300885338818115252898819184097262149239600220045934996132580802294170197062835167718976319303037395832390875988597631633026323178809305150087377164778355396819413034830879692145382184466840108927888030194327097187474809989851759587040395375619714214041630807269533490026976670346778866688958134554897927828577889813376238228643061706219058592265604016260167832368004473249307168014081705021185286725668555079123815076982416678532457969491838061148684119297018368603168958613481533226055207250264121425768687559449113338784580720198412423584420741960438637352957677311598349942847286296041090543065026115058148335509345533275189625516289715676442511353762972143223799051458109462701597769191380278207898044795143088750031962211446286441118556877368385263172262115152404749466960058280498505866378098404976125951124854582453228581074942567830262618220051891350540194271616966809082596791960600940148609596666629187908932185937569045864128007011650170001416364058162788156226643141698788479229915865739646958652244962776696017366959809647137721999973524647477767093678879378373575679404767399586235258471784523732955202751267235358905100114770365060979074034974914262019447039019629996445282831604787309705707537817509850806006267432368999002849585712946653570614261345161620802123202718387293725105898938806989012710414715181380600860652121472871986392120398479129837935047093857477546308177082285366388654756888855019171161077774887866288906670602956230001132993373370476840064024574066290525457923473182749142320043914514766014350870229128610851833834840578233598606344614742914226877316227191484346868689336686048459565616183833286549371199342438365342596936753769206266924900600701608779361939770953643868708436611949749527826901242576551702213599672505407722452658306331962727494621121804748369974988773330473091370155294512051528295174341998346264264775582668763579996908246415274236193067379435565749011858797690618825867286694595838478625709047227504332358444287467275754764244534950644099374644219256806546907034681895547964859747137911571373064596226271856730559585120120442537620859417698708330984167516028326423397356727780203797044332991551293095409336649510951106676293404404656480768524793862060858062811016552890265064029009426805947728386211103278266912709062361739932220004622924798972616640405663950595970253857983589699967240837476037775090172543770480079590747649931569488194236146271589175539822611457749890395114729173635684982547672062664740914735373269874782130328311788877386541721395360944312354481942685578438777155056106094877773641864059001581291534533056214794560766593632219807506394002472392441564051546440518142302378850057434175910707480502763315616563306216632805021552511974042882721201612233137357229691229487337174551885357522912254351766051103401922213507812498423600391871346948823616204458617804113146900800695981539889659820385391600688030509478895523125923731448464433014959421840035669081121697063294391577810941594101785877387653962879429879299346236056107679020086707769799919254060648072717657596650474769300961697622103741771550709879161419230383210759458012152869532861385066407511582471696799382494888521743099573132159740355009815374672673815259317742199593019862287723413242358379074691863850189265133059811792835811262229464295436075446915220621795512838219727667107047434907616756677118709302185544795376564584014341093587863576032020702190320595251316369338472969942555916116669099877678384432601012018915487940026406875045204838801446031847576884294547924223725619001096728115655453230464055917347043710410723576628271747459697839671506314913582601283397089053416760397585901610518987377504622916699622628227438576016336220043471888399453214033531423814257034583560697957128504792032474992201240967950782772766353592595007464361726128496157184063051608298751832244447762881396625734029749828621573488506527757202830293072175709697483281609177037707969337457666735668942699844423720966586223130727144453514095380478564835812316102887561500528956549312967822323686083757111128071809401782421606500726103831343980490068421836569566234755129805739058915991081547425226057836294496442076764150771858245557472845948722695378944099557241567360987333058976701008141052956196262797212860857417561372187737107733737129529890244224205677973066431248635295529168781662436169922910174835372181051990937696609938392080171112357512311244494085850652247823563560146996304067668384602436039673054378173266085339796679949611109830251858336493358745341754674464294616279608831965398493807608335110333766451814119483508035746017453087298124827482895717863269107187910047750997084349746830393321678840568882353508802828941029756135069779174608292094814004278578102533045401708545530478909080711684613305277292555420125394981537799283671666392323478849910575748433190244189446856771475396643940567272770327524938356344237977506738865977734982021443289533717510700104011049435112216259461286448049471066969466021995038686850215878800822833723463796930603732603995574674837413043781159151092501263558672708941089191146754606097004295815887384977981884630020638906616641468610848680922643453315855026380524554411555547624601702076854276260624637736041842688470631979057639943375494748382589304615463023289474641031209047996272405399249726484341457333167882806214571967070262140628246738039542937925022673300420833618565994884207205579784187642150223670985713890917285097536518719881453351781658634749982444760795247690086264135390218101633487576870068084545809338458238748501463123396012358002181371686155726732029728940781742007864673632690904701961939368421735767507038547371156239228842248432114472014629963195634533102354294483508076852531870650318283536175704097632968128172514835293388365060016140149869552759654824521800800686467854547879347101159999086354453117620747547600031026205187645195936162636371822965568919280203550059715698611420048622020788168239257709170254475676208099207749017323852862742196582828578053967322253017335530632567232843801155134134090627032928730596495451995330544547308659450138658995142356516268499890295594925012595306908944463851256523386022910415241266559278209082129410987754665399920918783770758086166559238731149163978537190726442492613521585028873611909142171460238905691433166561336253950857327614390048379663668381732997808261923986051777595055689476237759103561075111908763202871089597936423287687394473816698800697621216620992221813136123053104435237118070221534766788023151318464463925306909205534861304645184754699094811297849579764001750932153853210855391615705392972584780663064082278426445242809372108819335557587803348349356586391652066037185231397797756872687904690314550709785332329829686943863848573075282809690691118044649020508569488933656787474912440694520566452136628859769414884320848716715177021188252852678816184995094360082567977776855727549996802835011316358106506276283532311749162954818071716747496175224246840157749449058888864960506794119150106922684842597294219822998473613042906440578059302679658582402801576941872915345605358364455934266742619923663159998842362554887433173748769610659730139138734836046451921097449959779184672343576532564962502989766047942065717838707604784840443481302490964452631057252420362415186700899731110697548488078977455687120167711450292375997047492993880999988551613977508101948569756247488425061716490234453318841223383728010106338446286287169395816158665625526156893578561443092055127495365911115944878427808650852640054416845736652654776224862160083530564006983438634081685147074222034754733539507045579882519172040997640486613479180223837226551761021864694517475867964040214159199523612782805410864479478422101263790564711686446011057943265828340669600845925367203164825020550543233471303051090080017200373749602996887567339288323139458592980452997552989890880673792399945302850081525579927290412150004823158316745984974106603241721482327491326023211389802128183239928304403264164550954314769918495757960084808454895586361243701382666113433785450181348836768255991799867514479290846082496755967708946980732343425170073142110474680591663045740114602044471511709762323927633857875080470599023752785594870854382348436271144212971481201095904947717206768561495513514745572476441687562107052682052070707740122686767183737753461717305198766838099951149913332369694069942929423217007545992988134661233871978766716800492076207938242383221658795086795890518526335955807182712527062136856956575489004491875727918573030778259998523051401681945984347775541615708382722245364473226463907207036410175688986208207579863099136522797807544315974711613085054963464779422624878758013503926287879868987415367505054031221956381116000868365678980831147042128760787923996088193001139577114171828605469291637689201870038344243664267834733683819349238819168122464906150778036075551589691904809486600169154635266992740656695267472867738761283543450491414856696062310152019314312621106078650547596270573704523133499004627467718646572278615256191937222752895127320213774774328330380039716753333333612023153271505550961761928456454536655844355543261172137491357725889434131035007794911676040721537993531868482797967717136196428186355311920963706044551659097055919049045577837718319459637361963914215146853217992369598116260327200335140680443779155779761955590459419193049305360069983918070996107917716758801800885777499600675242426120225716916924958342456042128898449880058620771745731945353171364343835598809708925573786829655072317923175928072722449170988134036914582452845016199295093302971753008314872830598386878045024856628189105597030753631279388115447841381611576468056409882863171545346515906594216141739308324823342152427822901135539719079432531995669441832366484640427374908124598404739902647367080308909043023292366620244779108661213957775161719766717078764999097330484600160339727899517973997026176453865858127885830878384243450130435829520826383143854983125501025980840315471185437104312891539498993039517641421057907999812387477534295010755699804102770038883762692651336013230488477359258414441631889188592608495270191379499952571377145383735233265372580209005300679830686499061132841097630277859987953819832614868791450886011987518001299131896786340111238636143531029605476776095610845669799743669627984964579775159013131525993073575894865633396267845372621995195811461795401850776954523811800561767517418175516766279536047483136456325462204847462875097716462575168671695383741935896359463036568219191160376712718044408394733327646265876068047780887576419590240090532898147578783787160028917997229202039188509172784089527406140830879696751430552615935538176831221269233362843178013694843566531457980301054864152332417614525335699436680506821055650876125226757407102042986741355520102843946205110493129527632152438138826868713976295497404090387135017443160981886797845590028564562867950922601672979926561967968153702019901346742016954691254730067462307926274535643797806724428954366491786579054322255231147294220648251947369077835844968293656018070247258783641225197867682598542541392106243569127221095155568544061863972439468878575288664400379191846297577189194412526834543528651162602692070515609591667244557438622223648785943140180953994330668776259514880349903035119282349673624339054817114169221316202225362963261083038360762550257653781142141290382559284819031420740486082433607655369503328131139068312557878388308569982272263865491491454703290360697068791648358406324225005638714810137704494024691893899329882489401431653840106097855873878911523414830924154913237938824179000073431466326062079180198284478319131377169645765973512996108099543132198922926786521288254709071935406093134012462376378724623204252450212651583981076760904777251347073057526707772953966371911875807712726568916659727643464883984517396004696570525257231366910040932731687071787283219555414759552999536553979696101348687058302235351701873250545466624931920063616674791041555780624729718802593248760742076209867693450852285240598823117391989916986069540083553534964462315174330042827543762909520298483483384009483208139967646126641736226141497033470513465190260189418029940262537230658978805526410651532706577004188747005106740276298979047930582947161934834511816428176729719890554072479132010105594492177256947546168195335831027714719640199086222835891124629395470632701275288867024427039872521537300329753331054486850379929387100718250276252042554249788828629332642100805999429599456572892554617642751968537737475315778260440251567638148089629014897314709902087705444940537701738010123001484334529748296898002588447940873975389036097526674691313861408310304541271269701285450156482569844626730748998918260094779213941635407024038919503218274928893437761096887718759730624420165586215669322302920353035553883545758024996140869462506850563906585070298724825482072579191122910298398516760734094445676360134758508737431021271666075115585747120658135585598733536391900408821571266113351132978024957261520058629479453635510889111206215338965665388327729397086588382479465444330571968102721440192916695031232751835998107851075447225973120041667704912867574388700483815912125127561078848209762888160859041032708952427811305615440737718159787637640344790928162370564702823866915562634380102040166612652089299801605297590954966785083886851056876844634841933698987330664184714530960901937295753661551641376140096315610809031570506318974692200400049969654682380976623418241924936538579136640778736833220192400559660179655774873736100849793022468610353773712129594599497480260261869261945254147861702256006749106428064595230563278062526146113208855574642776227858667045587557245321218519033714131507096004941849111810146668943467215538887450571550100358384443406261899337370852758224416043284423566338601256902305125868408266027738193424489854800147495715510667352044920271013122957683029610260031913232026257082599745034154317288026286755605188998746316198678035524556447570417835612513948649275714404587274184750819323241784028264546884712246608932645204528123739948174413603113178962499792865704845809149360381287743685141191932554186797175356562311579698991486427799372626402175270982500078626613210797552161836966776085439501122855009606073988746906489168177624055773782290997131867689004110460362864835004425977341157154045002334305710952950638583971666331977348670276598836440261089562537971075890283539350423996974153586464782285881984324521512774218348778356199250741468063798903063061544675074795179444587387504605679886912263570951571574637548560510624946199577838638745665682430085495149332675642627028467378204911458325560513096321640562210319931087685073435918895338031593130705653902047901467801705271607442382725391364582193863766768601764925225771959987566176965837307665990824599264465578124225089245889966866206019270327103176718208533141594875597447141224641492142934561733536675472124441409781335099027111713332200614317932380905957078590151568731859813599051650630875833436711716600527397513679021191555405185770986297147072216337499073678461619635726860470206066545300649277066424024479088944822835297642566045725126283146150764793437093962899328549964437942833762079554594249351592016989451950731052033246629135044797295114848024934728593361453307932332568139324189195422416166649997824615382574212252019254036055670846726210512398372120558637794609451683727787190712264606385284640181030464121252385515826268371905662134181785094854980458993899964951315168742365765384322725559177194150761352509004031454239831955219277922821457891593201304999176839659760821614548084827135285663759329012277301154043420920823715497915680846392428479904634623120402186734817095787408851393302366335379632799705385899960859716679125415905104369913402577023289236053141045103558961113956702022683436390779290077204710863134364578638622882676038054835335161082017016915746668324304274843480657730476871036614480829979850061824903111855017324918841607721848203657385774999566004970926656790219303864227117388770442613146254167479496546791395387402852377385294558839205756581144700572786449281069741662821330626268509222513500108187649033519103978274210763657224728705091693441146152558968408734293268719057165244241613313871211219429328069963479331357321440044233713473880444675187814937701595309798339210712176499059490828577641637330776524448410479389510889270310956944196389946475956043300270973936616438955416548121220279674856648561984267527065917695786184073834027564079393354424429092196028401526290834810293509631983552303326660157867313020675567032028330555917783014538354690441490228913456974994185109340381972086712691588343264688205211622535638923806247176675861562664100168263603013550803627238677344058061264402337891946100524960528001217269003307869806065495876740411936798961033710147556198271158645301952342875698313500387342257573018470405131229733165587301004555037983893285854353881136339420563002985180364526063224445867936545524806188818750340053484247594784447655581661348391254754082647343123699474370631117388275660011850502296835250123388467409448011697207063625247294072749423229529266852192726647863620520022830321438708409177684043065902320470254438755661024979021196206377686518933578077688394166096976806035185189939765437559051326468197801878491920867442054814710171212482336921434378808522305877469141772404208921781397853918403741519427261969121709468564796560824410518918748101779166460051887662464475975869025335735652458925481769829461408458855190546094040082315640625460592760667390460226548553903151713271918314661959334543795468107602490043482072236266801248319576283369982676190763509780513615068193103524774824569430033052546026050338812732721715346469515970796328019042068122559808173831502719022856779488257636379371265907761843062726726894414316377371200201113902922889307832542576977101340610856455514563246134411323857874318549490117534896525400209896358098028310973253659116277033256211316715917390665580975262326401112234227931839995804304125617539156962452050109933267463964825033844996444249176073786634973400646277338080251385865297030680592340548959481493638654754718658703878153034616052121877716493907549052841879031995712529302229855322575551319048508203651661691187010513255672645515363444082024732759218732350320592238861029345869909407088232993045797509109895020502923321489916492314616763808318648372246840485163065533391510350469398745585602212108549491002936995509088866826114011572025466063747910882652797627147136620404517083513397398427591630102016696471673736442439557150679954664709661542876985073240335300604451317014313395813949954213494814289049392750590084596395351220630403613070660887058224499631884402192424223016036254186813185951943606229367604743317934640920851295895489958293141880695504167575242262827282448398666209510770491171674500489704796870101919537670147209371206692505742481838283258445982716185363036910239720221095891819449389750588043255539382233880060948076330647490542389166168555212074011624671760138026361126984752414502382114718896996025910209793419658289554030779493940554363242321350194374092855493666215019581805276331848936046367945971239990378367411278070069008668145271965983997944862081043501694196472296264769167329196319340848488188303382522754804457418210804163776300407373773711467592250720836866115085494844088968433531815488569766760329476685881883133665453107216093955455420724597673149848830379396758371983560114723461024388323263895686987677572018256414569323910956851868711337657259504647191700864235375248200032636531263253466475104097476360748312016439437877737314946742815115848540530689777067567465822023670470328417289006263930544895600425075914854118631440393742266080585777133330330359906467224374557278578443154997141957074971130245152030236250381090799991407002009038125304363525829109027177026353098277765129147327685200398230057684189151168536492354868644192249734804630403682041779181867120228840249503159111983853021169068753812465225885101402807514801054594518570740322770245018172267808019376744040114423968140088086566531010085272216918075726656184333918387950718970080498471598245911858503754142380395802396779416800107469946924360308447344375326919799831348661686520725832185313323135381278247629020385467591918875074082383980629523517012619744842581654832536404862416505997692812441670778228785468978935361220319572457254237433217167784985905816021021197282816509895180194845303811584077305396307007571877256503225116555244975712642560596517799110102931141308297394090844049042737124499962362700955805231846577137304514260910709315046670014368910030682528522870545513429868698604889566778850396299083045051916572283039630678921769380820896969276588195177234535665347317998029939036982727163504450151166858080013978281490946269351669022022067936050401212121952577025152836377621985144386086664072949132324882881918558638968930805206572098079430706604905934863517094885752510070637378571534457871662211122597762167537982272464009186477395182844535804357418859863055767730922661597142797028296081941834939810421265999087777716465465152129748000974352918555717770758823302253317756354926777847527176988801028450988906889999529895030262578507552820927387930835795950508740594341200151743615359132331466512828014376142059116857397375116990823860251439081671523602191144525417043598515060467801101992124925644893914095477922441753885374175826402930095908317280864763132000915425694517684811677999088425417052890716301202092714980088095494845186648076953869905162173980889213083537011224300040282607972230916107674374126265724657163895109178902418763128662739421680557921672607155637893546662258550579648222044522076927985108190406987069987058346788701377950172941831204150225624733824827491605455123994867015765201146816780891255736174453809388661493214214574177855626797387617009643454525782597975998983937751946200843482281952418020408429618224704670362706481113211833474253994147617169061022032564443883282288696156189616717346213016431751788954099760176790863358669099971204003235346207679927979785809759355504994556637154550082781854525411629907771294639045243462385111798595020295715257802993305357369547359153853964113516120492847123184758966681188615065912168897176591090999409957788191977452565762539706391500353648072904167927927276893497336107755606724306648584462896375656332173929195165595758007620774678632429968898087877751947415426088948593395404332669836989765089789647971237924500760456412792450741826843016670271329013102785874840389394225154098844754068139373662023909764413935791014239955641685433843326840070789495245030641320706258288165475246772797968057914841977562728733775459274046169257539036484572699361177850322795350269236679811628290058944780287914203575460079211917121708741912428175291692373784716112735356901049645699381577516493850518706459369262956156331668663251946449631774097566955890096542160357093381869110145146234280761574745955025642913647875075143457472365935306313779895428234892438132886294011392305660894386864191432356561093644011248470739853856119281893047098322851096190812677582537879572741239854292473747991399590834931876360306243211486426504986051110020867236295116095130735573264900156354941103023566654017082017141967814431046355166191429034912577054972014434948383133836917438364194759735775371142706267306791823734595631745038385896488422568432236727542761702022898700973520793056896384505529264382594673779694108253274749040011679844957236917478793947134498304064554972907307197203434459042132442437692195069489814868390698661129289665905797740838916404392599242577657139049827025256100078123025586711313150292812949363312589775094083551054842305491783082160546757455222316689390446537512722652096047015238997949523218173347041655804762804759589288569988341174388424562611218479521116808999672543203958003819694449015272301428943514063035306283058201512533562825184677377718721659050473386831601009582663988482477659070049464462287388076009940520673511162671951797148057628012905868009258925560111500788812946848775094054019170382079109829645940929378226293279249783739033831222360867388080926409426353826081470288540289438697580829088383442770105676656592577614368542528746891509072795238287599346500765662187179185720791206499936872173584650664114492740394893631764874406093139434229602270979612378076089153717758747490642176882870910216104401483341578048624343864237931565698609999250853475571336802775093406411433440529342339638631932463833149373387644687239154113197007203158006485581659156168046147333970433681730045132696502567481085735485767783329157989460209434367562729634289829894286865879473268502565033267152453981096969448171078823802532121001745485315095833648660644128433836459291352209917668406622256220931118765087918357668241203137768169737386103018548504973132591366736133788507580750631104547859804543877914052893856146067687966084964799998967404588983972815455998592925503886471981682076871291093507613139914578789045547280526869094033685723250947955557447460813657958015645805488646078599361421914335080832421897869626500814407440327884944137377561213896501779137730994942635846805457002310915419663414047795323849710341903606661286357419824790546306719471082873645901723949566713712722848326976060653380324188930685816674543509397995859636268117509268875501704561486951817022242386478843470906883141078894731624700252702003553561167789397170011140369189492606662619786700383382975569426537536881825963698445695173924728955280628878333361356446668209126695705004124553818606970616366777286022302053819531902366047413433578406847153422358422354776052097851433581249623244712789337185783038096261288747731664767022602863478590432584684671235852455360113690799886015399371778309501139193864665760695600085460579762989580890683373030561236866773054773815523206465084158754680401212402414357995531925527857618041390958872641119617517941996340382294660650673857142843565262427043526565512433511950203439310148805868667147145674978194354130796340654652378945469691737626723451314188759971709193785445645781133924828432285613463804372140219183885178994291210699865740425780240128316086895342211391196367529228302834898656744436904515958702137411562635302608751706478269053507407129652716154990276301892133162772260498278149850659168624348779712976509593972259160655062737754673681459352410035947400192818136382899233715819222959652420192839493963732313083122765604935411319328676081834737822840015457814329591922038872079548668716952204434552182376743558542840915655109734731724286671547616877423376737797041962130918237934821644067396830978877523575667804667113236977736379646815711266367254811710397249178492575353066470915385442647284073325323030919809452735576093694854833135976955262793429190184626603816890520182785659938126158638351132800152947985020749157682376042466386160735021601329259589154455620229940080795214775250093863311597754964829253494552521604111481226403309425722550413600734712185141548674156155321395670572032432230244323430369626854984244436703878668121859370454966416961109131093085317144202975596393862580043491018527884292410115553338505017434323287722586859765989987792736255725871693504113928222386192717473210844135354182879119712056165021237213177580173097421799959345337565228094193264789209806378978952171026224939939005575088410520459332931338231555616173407550196826611938167142214621846112496846500418232248575969337532548369246797177627835015209285170781389893912825991375405799233067545476951654152447139355856346579946330123282645622818339140162167486152041541947778760325505509919047124415911115444508586249848055512416654111554419140429149418450480163009936469642190127192048809710831792160384114134171391701504100570911332680132570972352395709108600523323105440992052624893953255157186457931579791295098964171463363571320454185284411458772948012106556794904694806272179522102441232216783930912946927644208959179617843260780695504709201320558523223912119352986747983769143153660361197743777887315682375446995223413033300677506190295087048365595901335595466264768624179322713603894050932537226688628344471051979408533570983516178793057548888539741096801130980364479420125032817987539255267659378780236739797855843980099879502307207407556967506082730279479543429133090010447786006329841125199047684367832114886133458425693487835599996153767371600400707375795837633414603550092798886465389761142802775579095536204805825228504194963272860975891918992501957290849643420129447530176643245891746594305246893903946171268546876123813980070526390366967790397791043065830024378991340828075024889026396571688690538448665902816080684397078009527379715584870120217463235816827887539610677210510342752879817961306475943374762418465032398611994561793273591517896518882057395774837415280365414154632522693959881550019861088063976779145442541549979334811980556191290883332999786169168014994675616694288301725299879468208101151128657484108702322065342466123774025681332464997278863295231648163697117832830839006584155242665740551877113582111865438595194308714439761632944724164250667670850739877310853470872921996340097864929035320227062324461737877997135576505064259943582547366433336391260681978516882352089772600149464624081902035622965516109874229670337697687357716637246474495319251043533698033088338716990988673511271148711235996106082553930471576709420465836486099948368032610862959343198069522080867571269473529995096379864093558771601294002671114609318746007845922904612937349800022927252140664198948590580723552354237464789897592174487472053846067374936929350188874821847236528593935973537721671245261014615384990919307692189944405560175460738766943757830967123918537237955605684123355596565921991394435229231319698317716334951537299125537428215836597956573267647569626248316891326056679524761365669083688097558822506563240405736037850328482994822984755449813653055545249333755109735398345356159695327276085096282340224246486229364926873150011113914183502269685420078446200232490751263703192920700283789227423609943076598380884226551512412408376586547193700193466452117280762391483491535456173567435939188948198113008313113582851204654650365529140024303603215984203649665672144304759196740627519432404815889486353239032167581679463641735140411597218371803205607952835202181400125242551040039904439792305955673144441821900303082084297600108383259184451274876253785623734339509832998400780141653578659980288223349326134595866828837101654812340165061985323282288408021947993173221142202511824805785394596004613320544772057849713205882934706907324137251308009055879789388241561760609144201684787926702866542960664094280148334994705453844112178749055861546154978483427509360589038724146516884891120186263402167111082662794324973362641798400398510881666200856150509010692165892086629071360342517563547054626818651051746991630538016200095371119601132952325855472133173949669021920244194869532567211491180988624499624687630251532130751283942370707776028097928264953512110438051038527283372283155770020190614835195891115344868618947464391003754361156884757988051279377685903816746967617287240934060900969001935500306673306527889602515497612456891541171009988423633059469169473932579442713565743285595774605989391579889372843306581825076229732728259742540436141103845736353031954546586117974610235470364136845765530350992382781224634438093046646525593515435731896509906010355607107773919873161277571366933707543114674799834073040919805223616919815399322588361876571042686349741769511297675155661027093592189454129975241399329653005717612349315612687312712129368777498105769334276017880293549580729666722990170131677320033781003852370108522112144058293766622332074444065631261581296914600813383469987015829793098348346567992431165433429722560779095573001481786883108669757788135224213745272274572966874480591469975615082748783659951180263384289152363987554146906362053586552114304643537010413958543772579872428737217835596513093027763944033931205644319055476183525995012378189737587876006210005420369194195472981798057900390660349567892020258001376558388503034926404208741415027744664832088785105912739680142264191028398979571404996019341224847196640570128736939271504419675791798555392930799690974543033614038338545503634803129729422923105102984311970150022255814073504190682153862079725332059509867320385474692045117670829321318882009320649859519242587992360487013943646923484913530783869209467415416401063907984334340409193996718483143114528295414400858458648697275342778255779713829752649357835618549176063269256552697619859998837927420652848215383822675852572154651428046326284146704754456155669519103586667319032995834216126592808656734644014966438055885977203414111212285816907874070915408795281324278835906532284079597720883544479335148839717459614994792772058482466088799270017842424054074451954151624864898635331611760620621292832422881719444112318921460219696488517440304643647973125685043674991626139311943532360436199788282024650250508350438029093483396398076994887388053605716819241861961301158548307933017991627378213088229549294212106117401626048390817573653548951145025195460946678872330975922904798949283479227746536047123353487124277351323656341681297873372138608343209752728079602605153306792711898734638448891188754601109850473582876265694489784674433396621912549062636158869324251471056310247307685382574661433892310927491235779944094210445166959191015214370450613786709252112353971432634323457541727588137930752584282896271878685791638996327075180959828965974810475097520173738163379550399280174509169696995189388346071680941062489818811244396220808159265317971866237196805067575007500022516894098564512718625148673201475283493130652952562025745248971733432347664805744964295296776264922199256742177552170301234985041134019960955488386715750954402965534075570671431878756382113885143458579566871622784304581613658850090876952390050432732780532705685482926265640132000169020972177906564125098312220170218049708362946303143446989305302530981487610283694687390775818060640214377142099618958373710481222378208760547783916299223412569992814577462617485895340082879286030904850101548682821348849685040575348023436828734532113721285893021418364530631916067839080697401987765742504604445876112300366108593451760477611149717615335765696663451145875858562917280957100783193145542893536522096093242864650138246051510444926491958489784725197050282161009917434486635015712222652433814765702481226246349386881574279509321826344948823539908889592827300854444620220832794533736191477375969268257031318836050791872117732674037824959860610502849433015505533065506235819951379651608695229272938564268036567744303832648616679098657709385308417568394710568492803009329220526152442539808015086645472999838913696992286966993189781604446109788930610471730888375223458078460359570732576206657016088368899883314999931377585737063682723960257660283953872754388547836463824913062197299636967803956405399400231341820630688818204633267194367066012840532698440730853438442651621878791344200141046973175381307937690766326769835717002742655470224691111013254737088464059188568892994351064717376311073197268648456068822731673079837171503604811024826712397049921224348085814977882105993471919576390716584528328246266710847810827169962046469458710379160622878156314349639315142533637307600117646375939749759115163498318633139022321052695412211161059739862956565529712331997027874864500975688526269770258578073745393492006922605769055503526323268183132147452336660127523528967562019700440171068795362678479959646411722327662865082425521278760143520766705548080829523783761516666696056128845246139621400023396083054908409327978155342193621339712299180174501914610310064793894486903018762968651207382214368211036603267100108976934654680677253686422209136975200936180740082425804762698663442960222690280970140912568496550129150358167260351440453100956811820045877604540080057266110929671078652662392027667882680400951640792713431438838177999169000475828778391694871541230750727267653923341081240260280822330366260245949601571167287159502748567579156556978738411272213389912681230912524795178583324010259264755347055464270764579488260973823413167028190790621030883218710956819755203757426858083543336795818297734050093943485016387637854301573052963831998730407530507862255101124176905238505668702307402813424154362393315984846637098470476353498441072963558050838522564143611384210569451830903997273710425457360467171250512224919226786503592843811186752574937550477519593496297306885647903864581160055862665370171084094096335753800371018018914957344120513779358877490225489889138671158156679480751047212262976208748661321914068327195626175643303085695989491347108430853019646318026193774447954225895588539003618922034465726271272876804689055987276452242702527694682630695334392184102776401118062160074159977119691387051745029386287435940712867061554067478233783772171056323373567808038191423871499117237160667022458350363120413993743012787076861491307740083512258921843794347896720014960180478440726346748865231450783017267001446264392904741202069104330177925642616884835003005596423735931492296574926463976693034613165722262862163082342485373534130750313947268141832273721597250333050012581889217605705207343378938282501701266077331126397830415087937410280813175075760608166461696466462874191303440118288282279257832389887782785913104500592192866141660896551211404142348615809383184580175956398573312196317876660515210334916663190693099586520888243225213424308228829241998557619612544987958148777292321652306874620553452950182320415764309839570098470620828664972541665248037205875770016647175435542567455505120228995046000441251775082495478168879365386787504997301707862434022768816312214052406389062259049787672716686731313159809449116090667248411681957744299676955271872950884737274072397891679461335650876407492148803613329480161520027990168209935603293338632461842077037066884484590389561436848659752849455195485892560945093184916894555932008191961955845190182487423748603400521716950990391531234126478391758133929871276668905188009541849542972550653195755762692591888054111345906255608018108976623223091638685111761851042865619181835266648262094453440742908183736902468238162585046813446138844801030178000839980567063899406750577434310944635494266507992194449392606303043865160727975719693330361409413623639465688937083470245381144752134985883194474459508688671993552553736716290410053054328530710751171676256087092308771527950587331207626902835883393666199318003447031448238215734298408807124362236199662899633492488745608124670220105084454334690144684459752374448267523109146623022210890264314113679925699170142098280606755687049728066218749609044495625271837697825093031573055736389846767619137466315231809549440170155558314720065211426431783878866213117144483506790959610949375459146119997493290643423593225822098868901316237512560424154308143149711095068744085014560375170609813425724040442223069574122519879691531700211415907783065761177166661124510145036699880987694681469480828041127970419850557371812516000863266121767098369355504544236897468119333576328460506911893110468930904262188134637489458631847268111901675401241690442258107401986222136486052353279201995120410607097856158045377743021074114460141144277003486929747426250266514034235750282308622185216147122499504217369952000850472269661615345210497125173002919883601383063329812713434572727064744622269695266518772001911196303196257834834431268399499398786022797250668558663558184922756234923980105746091190879199656747401639908047121332801822505879105441507402243397431026747972927451223289158939204420282831714464021779262938731036735704332299702149450137893534764289934768383288162607313426338719110500199819610509131620097584655862118199172322505909145151585646765858945637434332527059354112480262133168430366792226309625380208761608912608242548327493816385638931377073640528051181619263671597176163826803571102671051225256992710356840187014940030741316077544385381915417394926530199721651296229192199357876646578860248667494899340067709501708584637144479048160738927445645748972232554532068235713799736559746180065263371730959723010166363429200417999123052196984199081407830150158508408656553488341506823200176926690980663742770918085352325015751713321805946494464452478618653875484981764336493278498768281400433151448956347683519803990400556841567299326759923576955677933442259003513829594567214929896955328557602368275331763716350859464374644114964441853240096591627521614461552450602220143936034064809920024308482072087013221415000311284437922957344880038321519831972895766863926496483074690849455002396320198784965360945427168789740278705628946932641093912811003952699869044917351120074419090098239291450406924388763017471095739392222370436921874624540170602618264018859417813204434927514691648715707234691194810926843067206699836307327857790821501199087094519682376411178861210830832113981216952245876057042534284143082844716996010772028850012290896259053158827025466271253115966360547587249960696797983438370117031810430882672449156275774640272183793424741273649558041119054607862505102211642630444081115251627585619700467586250475701090537373685939004909317033094741033758592900869298098016295911289439018809282539945266758311683740028054469721182505666319210073318970199680912053837920380914943700349400281901584792101646670624121119475641674452789482056304532775290296233100168406199922954046294021065170381596721460941013607791964844812141071228535990202273866217788558474414760873928813308192269565799353410448858038524901884805747634506345634198719409320565090270352310722145074087806334857576051254570187453534656400928230808009460268767769439517306104146079378004710295445759480188920418199185887802895016056117317768474596679568123649244459524209278154768457408591645723976209217561130891092165311858802520810328719056653897158525687675391680072060762649180431214802848958764362517798746993281747798632224031233946706324794816855276989097873700646750217804222172115189792947077341017600298485083377803262523916167135175441047591443608718138876590808552862272100364706696985409504597674788515754678928642467844899361506614049041179856755963428964254096716224570306644492472975868221980400739572823253756339385535650142429150512414350766015674439050074342425131580252760133712724392928000819037540768640882099749385458105028355395853771255692062142237801353719626093050137740616532913676721070387977218667219769406774680838881063400410137387797714952811631033606442146000127484521613064324992921840743499540585374794883810952470655182790518422798252535581605856454226405797744628433282163096409813896759473480650771778861050598189102989159346648138426085973789000602201104498413566393294767546482022762800052673306538186482623443462806354134756592660940703001287811546658391475371205930396076997944510518774787812884407348867369704776551230248862599177885625711951586298387804868618454383416028792512972769695596507310660185469071873564600017665555594215970782574884223088360413959215229595779424621936914514911552429340713314176911323020406915275935815466579875859728383396459029124492630446297305392879428999926133284043336989524367756515105661712599546129711403759003052858148775964774587579993344303746386116515664551352357590497499473093117787266249851670250929619855434172250698060550256968123539300948129794684124768944992019537922688005489391059187815219665458640848497429022430234013785517652283694746249492293491182645566254585546278265533563142302473276963250076098341385866249964608817214024546376788526286831830736541630341264622977094630071847840535490276395692886789858433932106586133230987308351908624893669562285077195595952517369652805306910938319049923011152444373617084773711775780422256238163972975920926774212427650614112263952751343040419958295200134359814883945795427842600863886725758630168439777836857186496148251876969484165629101870631539679602645734446268831258852773861195550662711635269882706174060659442750035429360450722203347399772917123292571632672589281516828142231464054881568565439693914025545486208070953952272049914312782361706709168228416367128217496930430776247347376142716086046285139069232305914807995833860303583431635252847272589990382953604375344332797658391635679745377280996055625820524710394969690609210497753064382203086974992941483288453036398961868449109161659605183409120248156649032985194958466537254485053895859941473421537381624870233971924208011768386986212454475926687470608095997576870143922961639274616183507859490806944474560153709435750806941837527360758461057728490907521144419024231256629632583496877093326920496789902839941400034179228738803574539670820855053271715685285503367027325466243871464864093536194991108357911363953317672347736379370548620272264068832753452363918096679076715124642684731443548822133956929603864806564874432703719678545623031344539381089308608773447371746393417431090678475156467978943555071631697644462163297059779556187139213364163237489368277646753080509964800352819104071222198710846021298514464431975631292699183607273573704378702925469806423293209231889385345782761593996606894382390264767419665243469739597148091737790006889318310108792777236355025620339809035878839980061084094993721520883372696171040471041091001119497799155088835053057891240459070828592135107062254846974621600689526181417378692289522742184330192074242113456892920947544221322739003401956318318319320793915549703333492896878728698122484156367369382180929984519980576783980892121323320609636260231575612220692622441657588142589908103393002512418375610571523452947616486471276147183410661822086211632605879092461314517298519049954151738156690118755715461577654359366348872296524244796978751582347988105971204126748527195829718543022829016620495599651661387524105760550676208159638501237215344852916235097095246008892783136684496715379963656990673349552099822974716468690179165076343181994105646457686363659460498320414638746529877238362958824171726019785011953483312527519254151020587028495034703185880498979004930848732558484849406070192179537971554927302012492037555672806091182745297058150306115546018350055091386454179544672416808635151016947853036563138967446246313684794252920814659144418366865328929741014976240106108487817904958850709701457816931953443104968171928553176864221434786799756109625041840869569170194647060214229679646540922632954580398680259073003814194601448920695026604279509067333931122371293993966271512370674021598489044389809673500328183107757216296881317717885812904229671321303697736999077414955127229018013681636982091694029419339035370251010248761250187108205534861385830482379376685847550386336354945236635353314415102392689369872153841130280265706406687260813854273447533090278462293743933529119433945978059476010310041212816243067503636820303565328820932765285203501740466773453649098834916799685078294972995431583312711572914064184813966436533774012357545271542619012779244703396701289637597392004755646763830572276091480116619512383082962174560898253095158482482871286076203228470727273047867926784669473801414302361328601282215555823499713405968520701620812552596005430499203121093796573400843239944250856739177704874564421199350131545234902058769465684917652302269930917650148160776606771768439614970192023953986909535036931791253965200545983389178267712015674927081784024793072121856716741957304617631310651281287379283950469150334732235203672632546179761875168728155353100303046717076851399641909451848120154229933091839025396824095861884349846512883728031533620291911232165449603225918994789447032432687585232931081674219584466403456022028293860947032616368683423046339724608152397501712976663953165864560985414956486626954231197106209190260928099689288158726552037858224181136967211335019581487603716112762037319135486135703731462954105181867271621858998206091216034617165628031447161588479262892126860657344564037282289998589903618948299680141198337056953131629431315994272333813407661943683721637551188307574499639515858291971258709839341551995334889319208309607811974383799056548916709874781432684399456141196057170623344600076025590819251009208320583547370428445754900911197340075830145183144206612008276068413621564686124573602834584627764026662889279471626191285476433733866395896155183073504423556156245737198844883512157349609003701164945660921537501574089024316043856059902526459624029408263188884482359906388631387727910413589248286085297028041135102855709526189920909911645151751912235853247451869852026932359850914593057130274737891911873828482383981488112907919828980645105788504125331123619346160800616476668599907771958849237078321814344859079854810308506562748246571655580381833391928109680044586050979613907318062830677134901979454409649216672640370308604293743553367601276979480639859322545862629879885797260942112447241435294312141286129167988194853256978220452802421872217143940276596707742749838437852824261793990035628118385552401997731493257264836291423733295460262280605707848986741773885243381071013473626105597960997486512114126507876229891974487290405051282504933594260743761788116398884488620714329847797334280486827000374081181596555374302932326918746400420478548695262466893953987454217033338351841219399759591898106905835852572534952956656108682049857328955704388727100989979712228750640977218337806573524222903765698880443812002408304888077509247793578387362491642451207219975228166981212226069518634004024159005951194216120007201500519256723986397422196502670886119246383861288242220228335820512807761282206157991465601949370725456440012565428767215767167035153819765912496203949294858942219171758508854538346693955234883140136070905625033288276062817247534760843336875451039205581381691143389381263887018547002664965328695980599395035164706165598396336950019439494412495140058588725192771051704772291443329808618873503045612373878725243548046953230908149072135524058265041225714567986440852920915710765200217935902461853448262054062389702988832154847813827237994306160805808091243894316131234774184875070182031254997371091206182139447936084605370025991234472438972441639420495913582997660256299484920698230222192757909075820835211368957531420480893720020234336543983665980105598238337681724659987667845058404633550723696980530725640904252694396737858314668721202595784194569297361765545232635372277874418613752667235167007382336284089996661534595368542025986308921898701041825602196798638207203565541247137806889760687880514405354947412614110282484671643979861350196070191739812624424157783159025340572095403575767460387048396233166217742374802531654719601511392969368670253733562072950136948863633070579903555866429002642008916840613125883504510816652765695432321528423039471088790159173217051607092935238269277481955020373153968161983859063007862500729774250966655737679706821879037637879828934333558799419144936206963316810613075404965237868807141581328451071356480986974653263420743169724383989941631977132064570142114205805726909744761256059285375719531149164340053615942003411123613887044879158800899303053994438229042347262153134792216450064942855349242310806293940307530978913484808472993483110101838765644487205260038063809335201098530071333162448202473791704770538983335837585843440851111451695705286179961480834721541883178169596825118587000480913451194758534957582382978557101777296016841993260275551664413712786322752266758407941875271076286307913536486120917113314130852029738722263087220325476743841811014669412627849308217313114382756613031239548941256112711625246186976897027050089893022629738315546000369736676015023350334029834574229920369581393156224510857449541377961866947147225536292928204279829005708397787522973752201074462694409276967635283415745046876095411824965712919868850277675961190542841206511341039964119216963270523853724205996901110668431576127258792056284928975091245087790666367295182594490881017886096101419760660255343301979827599369115850440207684892154478310071732532853394108959101544487701845355293882084880992627080940790655923663473332071615975276624965365228301568086835617301620309863490105813271126263241751757846972965874126925909935054240531056860838447723770537034441244838001553740060053546260118772678116040648430366718372282587630249913821703931088558162286080482306160104033364601580410590018794572143905081153634056720360513309033293581876205619553772527891957164252623987463139871844978718172146774395991510791044330613054645655949393759381008456539418635477806590278702229788886247221523531678627716643741164015521742007399926818019370914647807825227990331765338321876235183779750648513337503933222211003324810473126295521564800695613459722932983950229694485176317329517979407081387113094682178874040647310923195200594717916754321650549105682458784464840543419715419254119547943377011984656319600426205928846263892363304068503494838474133860141430785487139496276984512022364358727657721643332972127634500424739159354134464505941501891054924890520087239532980849875569546111121046485569268924727201197705468083862362624723134869673853580180806750781833243133726363253589995498413692568090403572698801635418354557227388391647865250610319751861172198658470654054656563250863682363882169957552506858094834548527664888252469106228895394415807278058564879480420541808444202395846824012344712279044985522782388951204097702474952717185784490478083497814904129064304070774250584777025475996522416933891888903481978553182297344084255047599895722978827085769395254537816645503220305243584371739749100993045049382933242494188773114140745481700246346739135960385607190417102647141544520901357983356464098677736889411942467924422715682121340329303376650640727506408942675699980849672112047781198578490407624069656509297015296672362748070961051104056690260701333984940943000756020939753459935636466481366749202050890834891973839994730652614201186333388344536665508290539432236352253953736638009682290753809102481150520721744166326248581724088268915436136833203456061075242278301017809664581168808114044046242178428455588116868582869119459499931206830264393655264646879757670221802552413804946909272322336799665829331619678811996505119120718364475434375933073384538946478167779490154975880510881775363953328451894570129872297580818559012815562459241636789433646110809578951173487247639859370989977784216363568752544552163108409067683861810857917235203932112908641807416754390573028152661790739482833248243801912346033500133780391101304244458224892524612368567885212663856830937220713072671906035488013982856821064305527351383127450810959604390511019484188986374352539837030232171533326864805480888840016853777870892492707254003417079404580295893307539906619272264796739311441605056465211908765252693805717157437567722254191105100784179732322858054589690299048249267574102552267691210708010938473338491862331120684001491114353508609914094046907067346186669935442981045338118422535954275698925532829923701845043234437370949586532665774116946848338255284386562278836753305429641333059419281959661423321806605016441627441089897925605777112615024080289942436309629934648406962463133411540558353423404243553504641325153577975722667927701924014007579177313717538021060631459908755858229558697434152864122520370074901445554779025607722850603946744951994207863117487797325104350562646099287461901493452038628125388931857658264071027694176642932018426382138806927585396501484100789455002099593124304194117266926338195712544248409173752822705340341992810950010480408869666758359066960323418266116837553935127576634035850662334837231502211074255161248156360670222730808149256119471652578862104513716925902452931867038032995026140067574749301157192750698928796704958088113015911066508232459147707670273071606118149007020133846925947160332982919251690493370586305845330644522328342541130068925795214309168838241008551100335987973784803006116360836272400136334771400984168273419903852372411304543426893903716036686168891882745594138942567791528218611538096502358750071149584545509549935574469338541625810585428251291274879230189798731795419003583641754858821084328220628327394027865572565267122178394426522898390636784969017749014414492093723273836815019491399090526095434436098568502078520587384950204706859976565619787717208285148856153938769292534382035557617823117030542873250349941628419373338420119810260509361261860518663353079599049974180931755210612251764137624372424487907870896750145201551509612524241986160267298789202513865909002769216177985630769568565767779265164944088127974066895578048149920933083478121113011387621138219452598500671951164300299330206823985146346301220323092203670972392108618219923736063861648611090520725056551884363183899161137315666586689439471389407138624708066888438641246029318101841472920394664150823936521024287259311797610324399955285890001458412023919418066178019421769566954809992564515794518196033624303326222155341972734551489515807760622076006984514628076353305613843485232034242164445237880548105067094890604529524048178785902817680134096665464121262723782736918162927101486768178843166524198286341851331590386302189935230224814855573482802161596926032509498702357877070964296332365729561430743533287059027805584166772211632831469285576877246313872389171699868508152287814089143070274453452138289949374071770744834046654505828714834559532723779444717266572217003636368854111580840442487910891844387265368124972301468283115916533509397080680915456967483617526271095119715084557821195266167375093849835969426073242822365880574922885036899391092246861140039078662936889646535847985878738938840979538905149125322954157379088973486772935826910835408938465587048383294574047650109659003970505643918605340121517843509825064540429933921521233517456788024695767187816094158124469656458500360079256375395934575938309077452990278312888209624600670286522490225908612474096867835172224125925792107358763040167831047856770430838294466052877664934481552052249544797320019072438265434716431554501198886039068803502620460264358624906446014621568637196968005255754216988299690538605493346117667373966837934453593074842945770748493262999339900378636043575738265205920097758667802716934314011956165594153009456857561932652537753128274241009198838502684195745565647188442445110450935628208394318202716342464057361873424998415106997185428697835932543436219501876443865767430168854331366619913239817700814837798459770067308197703517569358514560076739812998922448691814572328338920588129226633130531240315454283337378241941283243337660678042376665717458010000827165997496951842250537480174575939532414136260980277695919224676583566257655420095099691852840526544086840771363816025725796688768696641242035000442630762914526631099469402126718217452485230687585746868608232494773442661280848426704754526229374263377404544651026295439885367108864380177570379698692077573936118091711926555881902417561695671955528530078323925582406351807510239772732940630608473442198505898413541479611016377492525123141507528664505088649393370300156953461604700628277554801810279485762039514222788969579720299491004064306132099487482464582699334591030939589585426943889069757432090574618430630696489654143467368241167030317257261910264711952685146754073024219551909815472241758981327297199923316236686283513008182827128381617954180362741560485756443659306169223427722346308613519771781926832404887622200756005605075605635561641918770025776640740137330103292557090324935433331976510595450949678665483622090307731477474022057175597706943442225191839023515779875951947229573929877962933019753488946161742498350656664099967596776797929519013448032112113003351047995678965304208264010719666565142664981033604468714270392297626919468526461241244903643444606072033350200250809953824286813549718101660785133731719260780220753137861525185021295451793154948678814704629080606863546355948437389881207150955171901384600744057519899474341669843305250821218276739264772935524821105377994210828249558403434448742776261566886595444588200183145247879602073041458410372345907850184645682378354399520343536461889097973757903074566801411006240781397287892721900771684580109757210700432917780708074169468074685950794061953334976693209665448316077902120007817113658443806604172757843200593485806316645797058215870789876575225965433912859419904705801177492238456724245205868963981038460324619786516541103514807062424470212660953636808328915245844086000362314996534868361616545294332406990790705441065536257591169698352294796105341480301736296696414181995506531715504245029079259387304557854763785383125365522735625581811481091917732083867232344955006572273227835495341445894734962600587646738782997671343231420000719708039478604130961162216180070007333271121758097755967720094911776703242120046926755170386404955821260844610548779223327868212966167185035877971720421104283342594237795317032866730396234341233734467682826583559417998628161367910053946201925602592910187540397839155910609688628348617752105055651354142003239198545665602880982926652463428076844776322426158694588675375812627486111602183775642407453195516916513752902336736963562549123238316456529307561004653245528926243074719134018107348012415844154571880207415662095738877033739014403620606456302870166917549072577444659634002065699903547666643700790882345687242054761855145451971913360789676819740877255385126099222287892112318572910192246903667034329801901629631334593478890339830435123191093133776470312718468339136539083586202877108947635537098885586724561104798383715565934029639538230546178240640403800408399636328189525848994757638673729124546518843205611798025019993146884554684250865354678981560158654291325536844367051997724366658791810298650609371683392752746165601639429412001435142922404932669473432675907378830624774442039089942575556520037840619408719346693151385593672268628159415500365895141526750034786726429156779187978384535829852220416507652311533717074696926370639697743294267650073295743414875137107154711729988236923943728016950703322293916835268416931310598393922377748359859650902159054124171435802886405930428298063394698428969715603476430983632262753457472601224116855644334255102017861414308657788046329178079110869024177206697459447631780906889544632278907595649351529822023263103526104208634270447601065819642828035827700801590806135121150496754043678975221289149725813151109560519008944355817340717656025555975768772652207707386881067021184649498445783173044902621395658587927718708155899563198621725135066413711330489273450356845379918412692974635280863229675352660912089371823210303333700179532140010323254280600856441033864788862899522185865529122496484248547680226381706525930868027498426593730325045786773473572896927256292095786436839783526625180958966566311645151934623285814213839323000908866450414741612848981495122634888012548419927389996494301291920340443755108362825569255130723852747028119025029842184135767370370536418010069481496923107811248131681952388872760563629801416668074866301576302311446530518388764251220505671794818015679900390691262746007406199116827718452319236837841669276885713558126906494136329699864109470837225466052596946213943543111882805652474824064549638220861204034538463207253751239824935033852186706700897518733502940948914603545855152997251603818799760214108133996020438594474513413800287893363250731496301118712397439739385066291368054334142377407318509274502457222666883143197404646648289960041487837053902838597857798521007414087279529358280411900536049613377334096231488944345740116808499744627014674125988607364762624315237585989764323007071122012906112231124864319055329658937398503954899028987090068609324770545763472691486346081608485061954718136648950266292932549928793583616579416855435744958985634420678592541053532254005271393092948623801552265502738900784261237128402911915606264279396648104786076126551714173483197405289849628636070897318089525942481849129732792418313783844758934252273636090296825442543271871090006421581953356624597148572450803503159435009784219150697963229456084292206143012078827063053586792477053084338034646175682918856249556108539931095941083985294484655731835903258372615391253067500420713878133580639691448526820141846591423490472623150708523585322348275637521955573563592701573355653738333887517724681671300389428791427864478947348850968438906448061723626920345112287002492570688810030798051940449828866040811698791406487776542018679837366747537704798340663776342584316001548134221170188163183984782681458316788848996815681447686138766222802744373005104853582734558611558851466021226088422132857432671296998089007936706138377631692113662044115607222950278795977248748718718787031401309103853938176031921351746620532363516862404054205074197431365409993978177060350995432451596100108672695634293187713512967982059190294152086348025996245793616001774685055571998456363757862888384627013274564843553879743459983537675424971096636702221150952817039742534574543644684957163198421536004739588664728078844436278568242000155692416798150581666273621287028314360205041683880428951662381178221682542109599769401332474246216609050230078390585767519174881625062908149801269552189827431947192491019419346146954622847030169224173446131099598462657366914280577924750606553916971479202714565177829840516746423779235787855761319350353119308839817019781245496885061337105489010119840327853153108770189913756439627374220265075795207938709995389225855636513899203214383011693951225213717570816818150556219453411363903969941240089672460561365729611942356956130308278786846575847279445453928508678922639144291651557889308000237573997475496333397847443984869093199346080937134261913579293881607488239135358641459864611385648126481919457425540232222829281743323426760581974343762518349662131973791658913970315881136044241276869274769318775423299801949448121809756027346248798398089874450226503857188631210827961328576566748234049757448133026057207138594785901595596281813525914319740097109437049206919427070305212010635636258011656974886671884498380324090769441527564051701541111634014458532232586827704387078949196205084539718861856867693284273549560780870705904669432183731625870987995705296368146732211032406022226883717773433535529306550037344941827973761215377149176878801150078188765947794129248564943715929481973812354382509439937223847056430481286275507754623292282222625239181007335963475033038150680596604681929863631549608697667248348363714494241648874904330600105709516168600741231013733154140728728512619114051487814930269519518713204583447192860081873341731600955461953634982436606940411344125208104741962235866011879760362140562258752692002926255241070663615929071319601578159389054473755637746562738769521851264775962361545363156064630309368727170983105187581146825839237605032216430688385384453094655419162158227566912316504003747884137806787872344851887593453544153533007324007015565016603613890034468769572609911791458607941618014010114717347929483645881099477898502146022276315534185143135011054281161816716904966464280574945466452933331155058264115489188009033454582406064864009975875713156730239479505993634140193148212640731387188306007695128415283329643280739304910764706154423482903741462373792146944196628643719950924617799369418777051228349682815265908021842421493412678364330610266088533506478265722053393279153861440765243894977944282378068239101936784649658906807510196677351392581169779451013066440404730544165875088492869853478998970372339154022868441131471450755840962590621259478920013173292235973364497647853762762061143756919461590205799090576758032484617729181007781635365714705939190104594436324584628430795449389491480294076963605095302791402622705579782200986948975096229571857428993940574669299413700067137488513592861391878690644277547023186534818848016478767365197909081590340473490938794364488141364473663580523440930954016637338149700051557541450532130925809612951675329760422829033745764856879165565618491054754949405050503759434233862779051581248687930056749533528895468446028487970154666837023444047607621899320475285874052317161346758023076523744646163739033291387707493719824623592422759476016087540035075040443480554760727643546793371827756980608255194174422989483355190127264820719419177814032563380243068176453483025090506679025454820623939911801356696127544496415933527529290578329008195655816520718286620296714013587958772367490579101519873414355133906954107176350939749861194710736831626256925960994851410959656182217876116952871807881363729177338697020569520620757883010520631340258624711868622100154026022125092980079241381831165634358245134539925967363392904248419234313424714352747161180821709656938830865323017742200726875288319579346248054773939859390770539194361494617325304374758961371249530763187726044508178128354109849183300048647625099547708977092471906003145911918172731636960248507161515427324066058698639337325659975917572079578150110974630180433351938340250323798752043763999843149360284515893750002202042176549994510852446219554269095116215700120629871787590612522496265052148659580716690781513544425507425916634374507380050245384608078328364783196188241704224930816709827648663337609362110017322758310568836799149754517243120851185270975434054739080428060926190433333462789395005753700365937931687132356672822601673774611715102463364911208278922530363969960766059220319187559004034326536060263187281409755985951005677368170231162042065902179866479297555785955923577596707328936794354944047617254245609849578758337215759678633080621910168630744626720111158536275841843356056099269861150110439783052563689496144356085738353342606546245200832023491977767764874142160408085602934181208369425194412457121161661762699207971981478949885909619188205597598063687774157970281694875809068974925428387207475232141007660100599126307648111519998217525558004364153766110813873446973321642998689642494255613853323898824567240749133295407915063470661195665044482276429997954547161854298801583554271453706555410013004844489388942956762534966271169454605640602859633183937906404393730213511529191169442432381202306144002097224956440772579461574732113297576257539302153597184510757710655041986488332913479156658455314873344271101939828681008842421068045652493838094122046374358921452922613494039495746170749515665826630594493375213988229974849533157194966167528518707096239297772113818101655526835119737295544881026998476048088869414761056010858220798186001270712318132785039859988540355574040427518605354382631071526311070475440403099004020413183323333641557898886420826656053651255795192835819364009520427904895597241168111728638418759210623818887899476721497605511728054763782786545162762471429931667461897949212814886637518896641411187629959430437800187664513089680004736130155750285104582365052234601208401453343490358069310223901898107610266671687373524724447442581745411616621555724025963256742671918880147819163757902494886771834409738258364079113186721448647554522097752697569006600451652457390177035688248840764983285521808920995660072377439179189817463326500164208921704235351491821841009660027007362550150999591496140150005165097165665608640336659447460763244241785065731361735098950118637467099023186384296500292502397671076746932466342579795756341724936005468874300545585015116056811280799693439156782010213813029340311079927754622392149983430941187932824589488521337727515995289863710559754911904829080365728439318380015777071190832777295359429770750487429300319114635072503412834339851597033825088812930036429833996750450204193820794673403156789558579075673764173087089309207818942682918902309066029837418507827332271510179805150546398835214307360552037858567957857227445724784032813210984382632452773311848996113500378642731065922777258494662796297690132727568427881349548403991876726494354684950662743466378337761236723190496130125873513677913502997923123879181763072161207203414903497284516915256494279038493211288811059760625009548417806106468047817707257622512272249649679931024678793919346594161150740925492932596145610464092456273812618531035990279539796435235282031804368969778832255171532511647737894018931007958965389382917805252867150768104848968108378935679398399170346282363257225636713971656368353262731082049715586869145052625536899508323329855838993027901757505135041716966029785173533049269536599114520102879614175134242801595089088573114509091981970631264669502189340479378393509345029063197234546982268729241352694802400054432047551793165189304282276590868699171769299547649080364153881063280250234976364978709878980931748295466574303685662613368019199447279075551273464418548548447131704612476326573319486886728826375774988317272791158468037511229879445276681655493403565132614180912965905027303251536649807715179666559785886653510721106061431009707575819549585070484886191506939991780874715987356649305519878235407628218552486872185134997368756573621892061696650682742114806590564455605490034002923652092784350039279701926940615922910272670576430954641945520839384219029644417013248509106273311905955007565923321185869880309592546742726740160185154430755958268282588957358154973048029816960647932990624358342870939318765430105382083124657628079725377498199604738569943626126273545740450337753500983370371981458145915120383297939427672833646326455156531732488597469205199415846327903734742709961194377927877391892743110654919646971869302600535060151016110547855119300470355333553004050779194444267113338515444678501434092949483631310909449196770692078081355665664246176967886064317443039029956856297435347262996370781419621093965710309400492721401288335442677102496547201536942711498925724425808031028986215313586852201463995970712261842326372576966706073973163853631885574142541979348932145128193127169402425517381118450713326855328814429107595064848872772993085324916162523663796853214370064149620802342387527536914208986267485602424013732362047066072970720456668290480649957833286050757450404018613135884896871764995023346256953472206245455762640940222729807557877408703282515431087154061161661524810280310259193559574549945945375610273053673943356604938917028235624928736998988832128941625302827254883842459539345394920480425519473061519875715900876752436280310635515984575161871923062735222488760373733104812584517935677650478450779862762527158204270377549188750217227467603690481688334084883368676208185666344080538281594740389353243467909255126247674155715688990264393700625653519808698150274617569322049739721885374039042117328219930193669985935371527568684287188381588647049523027641454973150060637395600063811956700277736571237566481770609078978238661944382837325331887569686211010881449779125153933066196815823183670570994303384162766685871095327799775986602754602290262055624993734402578655281274979638976575852710339820651120113394629835639926426043976344781189760943645255387001145043010854526036650410276867833403129284518059397681031988424555320072422694434752436486483616786669825971665632337816691047672270674611497027311176266540288605184380413604824559799221343008394352051711551325920447174704499413662247063298135632514491382543059828056786740798311117087198514651987035916255400727953927675550554244836432480600690972324070807517973785607405826957812964729363617918407884875334134246820787476881052248677369952466666697185621034768382721442393581765052708422165039586259451867959802891239392457475499507290481133002163109661865889006209526581654558111826926872862501857065442431417361196291450729578622629432990126102454570763759840525789339834627007700003277532519063344124345774755206337136321852029009930653322614805196059627131189249483862025970034822837174665062464569264270090696299911999907426777953867436466700128831126338358677433827352316318636952427614491722514538997712284268135526211709966297113541951631307938467978258836829507152214385831645927591462346223256889268366583146491120266058469509420961337729415742484540552467158110289506264752149683821430325406689409085390228982848077909522448632659444613345374291803533911221946622342868607461199550785949412319061436847276086154694486041042029637554569659474217703422075161358343356153518224763981098680371105962932293757672844537519682864838887624863954700990706288786166844830331679228872671799074511743734808585972612005409763814084534160068745129843755014995369883001971025923821574607487165770653764772864169791229811542226066765070651730968856643634828383983396245735581983108323635132377278072889213551388732673322273481360442270457960780084664321338260513501041647288178785954583848608442672111455097040747628687207389001966150047052339065064995358878501958777799602477006238246169955162893066290616011977710611737106400578321580738473617003507836632386997645167343346891779190951843768770761189776444162344811262043309007402534994130408486986631581745955932036606519175903306519639237376520249238964709689187999764178513429836674144383081933476209390013021666380252887660297444115908277562642777087976726935287828479250749156115014663003795543722266359268281442270757539810743992610335278849928323522096468280441609258267675333752221058234575569519595063711445884143436034509391992098863652908824005629437916668313509724851177102783427148116538692946893855961884473865325632456188393403942067757727420449199137425224600103242269716171885417792388758166701849904071739050770616265766852480909947423166921202589192265452913899671251120671213982462968603334356053062573103189104851063808342043868679678032525805359746999559887615532383318367249342641603564882673149266712914858050353926064256058621928365807365036539736679592510684836782645534843043703161234734602220590068286087181203797736708930451002915577029910219494638606238153965631893127963991605181122420847476526436721164391528647915276753199994335253441416742342428827265888799653297463532058048291778128920867012447632800174738458490148295413525200786658750601342809258444315489318223193768618906443338911403092208688100037587316841318439358504066443462916035073541684214180488780061007450045701427896236771767216910887625386858547905423189534667568737256915530858673841026727813324987077638773730263759309401057531096250220030350826595136708567334959129765014063912269090205113670421317517878450965443493582141305779801007332875843961983978933238992130955794159872274723262276874763714835486631320138384123602653356024470542182120784258695664810847366031316368671555287662947684689952898078523317897277822988195019418035305341460690474124391968857843635218658300509784058641820643332086087115804920457603986115357692411489824970625231648334281026717005110401099077666077695111494554073485510712557969563031748288789970475240417569580273160855248349999497878178186129381261744279512049964272107265721270456657698535678776584506384797235751034379121346552301248406704423485913922131528328745398704623220494175163620647138129423863378628373735161325550206567885203738968143206074967511490257018098419497033736343594891302937746438116928665598298806664374571731725682386807894152084874050440745901813987339725292625422536078380023211376432042855547796722988503270445266315535138084363477050101080048672744920477682747520271135919823115374978309762117112607678041202498413172144313659945340500817142728908444682459047635135052855042597577995759570036194185837309194738204224253539786558590949282390654220237523638726186382209892630656520633815002798534731126798317459610796163375193342756704030561955526952533028192815372203292725783353875608192708089905828663344211879125713129776847426284494106868525112481523796825381650029028434974708127505924254676372478628767244462000917199781088036641660440837720289041740306024226755103854705500352801728543042454127816404483443021778221226475051036224138758918218009629613362175178744114501159141324611107018981304690710005977391931904506211699280310776005345395797242972865609074067252116738431247888417361515890325804206884112347246657918731328762409194917726010921247128971885195919016357070004204707910835274433602289581219225195363913781792453896141017049125772929198973749178602800220702446497375072346088222561051210259084168681351043344337617457821283169952775059434847796123841020751966880523716217084499803654806025982540869641732318203421209335382467894354499540158465332088236272332710325668362557337426784144214557961400690203687434774853548389568326572804259058065119003905552255915705897661470748577862095399024060957581623715424239098449906573471461462487824277662485809260121590072675488319439225739059272515413352313549389961109173698876854128312534475589108404814712488625185653638331477130329230938899387961468202789722376280198568498798380413067418899155283964396244326671300475273534435557352888748036914847879941719219142736123706503061467102765032429106399378553703569192795914444395495747102542411363910553761489751958851687859269025662665786184209561254991301039458100881770523366172630994073851520677035289100843784460131168356072977548647234997328119861795572216509450293771198708460776986755638326767992338133143659268331219975576665358626502711029938735755434758861013647574547435315632776376737523017146896065219915682459405332630915431239648095657293963747599887244234184888417411544387965336955025319860439382488085356598149566790186828293486053399657600780901714874318660689404138877124304649182723619025888917349657419049275987338318398622055363191408990293534163736241896458448551316495887523385260924508881387341741472216883108008457263676418803524273720775150250541583198497410585209374609831061768298013658648738479340251503284379397688595366658982155887061458429621915708415448178299825497266830931569827779706434612791868424323655716960497741658420054343941498837132252574448226182668129304386772322701796485101129825434746179257718800446734568225369905204586150184443846622606008114067145718835800600498751427846949143805981475329197395234969562006838576555125893724722279126815061254416685722185598269388982633242252192912570449055082434612340050195068605017386012623848412090607493744032233530718254931215021912699863874570439801773979382849257062804010514282868660277966179917269072646480786232815178611075956964365689018350223164005656679887659588769925734187950812422636404491202465000985564649636992701237670161814480860797508341372845843488078541309299069168321146542140297852178419880483291172250964575112074897730291259450983405591703217050535396962375403658161486578369023421355530875261033123994401954926904875464285751986804929810584121005814530512207361319510480340725160449866209610643305243350759750599755463524319126830082668313366461522826220815765952236605810969844812858083760812994556577055817039684333489794865290814173476106332138309536815025411595227382976143886455319428842218440565056951168133202028312370330654190639002109010171970401603624142044525362624900427166500887052990844433704020757652310175149545107246708323629556498845963660748516787876389746214843164855785212565083437678325237526083571391150724659432027327667348195442951921961641864364118458295682770939082412714386793632553739793941470591364089970899399662011214735353963968074936017745427560384365837959175956841888580027967139041854861406623265373007939094606043410018292578036955282395139578947527859802028410102595265525599851225328104191954811927433877841747553662871981254513978024753693051683394220542811236659658990499440547266782980559757900498311347119862356837886272859662950397470480315268017097653715462680756937199848036330064176910878149900289899162619961884957387544540201428262151068363931287175385745168885905923902196302819197717472601128663631677007335369342280645868260269108380949827969829036226336403152034873081899351776702471470617970390685792101064369914856344166901304228147724338016896803575750207889953293416573800908632809324553084326678329921943166387124440962845290481973287720822249766079252420034102703950567694936276803385450929719408779206602761649588972871469636217975001418549606819028494125254388784401990402411951561702721045165546069518050722698488660636425911723408432487040728491888218164435392279277383606020955390770478394308591624344947513526993355994350222774777630282237239925773089184567144416466321844441511547365833527508249565304229038869873794379390240811470358216151997820598405290313547693741918755092293375580446752105874133370507269993703395889053587793435438855530197588438805729689616856375411549921760978334165606978924964143086709255151561688999729776300751254543100957555408357043092269739352085320092530713013091096771619342189393366511626032749788697760806528025174049532396846499101783006912815773966335191403866890212287028332286489684948201191152151774025830888193538118803161191665624955785312818949007124008116751785770244732824457759716340108104558680537178186050493069936176390412864441571650644234834091475098954952475529108738051438783952147144458641481032322604008410739638427947094303722239236904328147622996108802591346921283925033496993468797310987095839914479789314492625215205134646701028497119878608423732883937173249342579777353662795951049211566775459430050723834608390628157677530768674931151553053934972988209282809728311024171341051959108211408123974797434533903903371037159570163307851774958279768517594113928141765031416684382107821185824100468113150905306229697390276386036237498296470702589723431899191122723568425482014927979935480982734699633035099153552412958132327777776383347003524702873515413687314827051913478784768593478330533986996324854656467813038393973404734565576796479044582217326128802090742574614184379242918158930646232178753552853843760324918775802327363293190658840355261118049930355158986191388873531399315715554097451313015906015053084504707083677983655214977089496082216317617240935105814186590604126931278893030880560265294500058697852615865353673896308630878756389612155245383195031532993648609860820540473230407723865809070446195373147525590813765786889690433049235535218988050973620657451589786753455976648461935646525928924089405817903960756765541978875780538017376074688054365460714609057554624370695447176828844705134462443707681559416863773202913256490628615995025255398941070997102353766758988203063870522443205193943735409284782219485029104593506987528418917315936479634463156810597063751132746309597564552048679267998180616803627274651444678732982483980555972962451671487700894505627962724710117198985121982068947449389150422659042880074230635663952247745386034043799018792412462879320379660394322773098412140036171804944542438455277497757251840885976022401185222079153697190494618722524483704245690313409463348992026833969682619177222077912760962331523542401267586068361715410795555336614896635852046527663363514118924176936462226222836185064510183935288842560708627937336327089934029730628885860580778735070239748289557285860480302108357623398107890256451653307784606862945106449331044878737633132601209930072221196513160306149985093262127312201328257662171465909042273305649740227933974425986545831517508809728749753888971944262553995323153555496985628941612969709039621506836784036550349470451132656412665629096228085616085937578197482090933911068361348096449674697007674280175143699250900530221258455272362765096296941517402097534119339172960989239056774652164651206309007108265523421779960913472782107641210065994879166797962637532077821936494054875663393124576672802065906257439799379884261766905994739440751292068622289886813357924937666275788267482225483128467636576050360359644092526211814992800963147918895408152671024242136047367760755151054616926713301274311067736513203586188777897966201043972439448906995965518305763780084426578774272976988122303716731607239005303614177933583672358664120230950002241778327625967702002656513703714011806331599374586552668399993258155701439124928196792102638179480638749616020789993290978822366280299866372252998892055939574947231195265688473791992105866012550841791195964935467596892672905132957370100882547099182033279786467160307355754997864915448516055575370050606720462730294666037035814281585743709210019205079804512640530834111298398742631794985905669047331999291874132889784121403789755094319944397879333373371948819609329308426544820742499192320831730211588207164112582535484387928185004434719225639888957855878991646456876615045888974930291410526989453533950248729843594516992978592192916988541368254763713316646929247442077907852095349888049542351985222474891408060073440822347749175564582803162605681645115346709266362723363924946531262015294813787622889419621266344654171362982983864863670628156516679006256053146871198944148400621846633836355330653254828972389013660547176519256260645064323923215200749666550369995219810557397422879182869446041628511638988259451515720916471310907929210318042282026405718026429594538085540385596248216451909032534451082634521186640077383033054352961066773295038608853947049887144115056228063760054794960429957944218345653434529181090818200203060860718036694551957721281635646788651284096295871385257109560062622906860089476267352447435959686159943045235551102013035462652426719657917541287724906836872471874154132037511704884011263246997265245035940985583787066301963788826710104639944579092795321948815946721902859749834157301768525458911822859723507382152867319361380857234751455502839481416512639215640548486322613730573598947062668105801232374812917109958488780817008011162965918604705729427010670398782859457297250150758612229428646136812965921008666922428842434701364492044480086212156735364583369250072114460486028976372829094227233326832042009257476945294693020975881938448914860296837947937152130579066997407556987091063373458544381598533134310932120574319238564748680550295920700880916123545430899228590322674935627261556024250676685954392789873765308997683216688323737585302445010349567498934313884881241199865212027229178653754969210776525688200409305316211197694869310764564685429385872714543793543607168403502227958855029813999667792194908151194826861329582306593139718780818622704003317605561810926144470049531429926685276641355854204443031486388095835888395101165449719855466650366100682016434481271796397519154145638731825014807313636599580547476516986477979696235073534827075503966867951107189178168098015026999581273300554054871055483299114590807801525566098999820859312325727534411043440663576917112426327934432877227036878767124070449477580946164305218524738474058115178873719252872885727730518359797822370385074815016959127114778170615382388098200398117393868337335239855840269496755577222009712555021551141670428410193935874778299689769666258838869433028118405331879587348526724760385043999445297069928574463576508756377996125515696994391980247376845935717959528221700835806436326822556291110505269510917231389295122043179258889090713904728912090366775276366792051751338812678562982957743900472196626469213915492970765579986245972802677284071012947890402468993079222992060640896849010133457217938589765942894254591564195571833667536441262733388445492213501710927916352432045317209650530177084192039411941720934778485950901538549610569306180556372263454864389512335163047517473779153338922428920245860202277234029427373286846457224101709364734488109409437166247714068458078536382473056166275972041873101068779312057709321936215952933075582835404349691084953117449395290300242974203145772703202910605294888014256706981076373884214843911352011108913516033742857190412115025519123780633725946330614408803016036186469627800975899968746295352193151570697847245785384066724457223844200443405771472121887530482161917190225793741055800766311351013839855804602655743374973033208728219001637668143361595761670358809469456715182330306995185558433143062785715810543072932415968047894817149873787320704221595859179630616204300287588227946357771911544640782627846885312525492864808051976626211730305031001606254487379026729850135340506932414788734212141190932649175148679997355401371925333406958032672250240314185322093426114917816500871451601502094574875268115920025819885288707734151242692697159184528596491283646104263020007911488877179901866667831009778592376779578518749202230805248963450280879607127137971920844755877419053600851544026496436272705471564266039278553736642282053775072217755012600131279871109061950833549178352525944318035401572063134671133085570442164802270610550276777871714173570850613121186553118157116688250092940214641889139853325404789424077068207248222897385531485354361253615685682632329711647185721090071679697639785706578900041763512687508089192740122128935068629786101336882798273880132764860010328008674661184067416074394200040843491510131704787272948542669383273757265697169536800677107938427911150770374305172039464246849299636044811600572734352696332900569488035525071683738114877073099189393618216206530092950446401807456052065411326205604247162040188104029180769340596322620943005806862495040832160301966905155130229737525051450525592633363304900281953398546567657284191564803481409653418849671620762605637656022434582638063870651170013268708358794933136215093015707632110282355417149226927011317698133032892970319956842798816498348254518602368924548344168588950558643895624730920435215169454449316885352474650509591713364581855162984094343934130165163780180739703966848545732064096735340051777741175417572192799396805906054910252406430675384315049038284460097275353017932932287813782418888931870437129711188348982481649199304683176670501071571789095722043129892037988936696720037885187895948235572896667504899988045051665970868813280188398119842078493341066301700887560808039287213624315910240913544224493648586591700826477432775393771727464702467006959192251290558986929509764973949332817389978441493710791824166368833001857574669310778652464738767438387374407682449434408196235763086455313179629126271777564959797236734766247391080088751260570865553709854538166568205343634867629387876713712887015676630687673394593769535733660095612325642064133353097446253699374884962607438745300776567945741587998035191353454525405933132941009061943057338369199794529203384296203764119799740093697449618598148331869853985435202950658713139467329832319972103907489619466840632779393234742568872618222978521564472021870794366639674341549656818162461228729953898395666666221327379047395038337158511982441968171595404201456340987963212301016318772878876886936524377298220305214788184267445939353065804882906545954117482145868546646134481203245735096428019268030734731149923956628063857898486581885017028497678766415061011267408906256699616584042024103075450167894472032078135216078611965614022518013680179369547000811441211066733293703727801331506234130127265110867403517133082305422125665519427356178676630402328785685545889938763528468058557348046709411364915888075250856910739639364080214813044012218809515833699331640901930496918746883493393892727838028899917118665466780397975993406128105204410372610585567811476546257567633159966136878824472781831282696576287432430249206026280998025551678317192013664565639608324868398482017362923422997496107027159954629049846673438015340067540797944633845204594892854977026320019416989006381861270857596550534784738161134087978149464043610080043638400252578046379196522884606509621610497920516378295280030674696611588720016949782975788192365364462601261690036176360259085123695373030330809407689342025219260943126359215433623311506861981027731735164693002860491037083519751743255379676234712037321170328968979878978763764782146463567038369191461908719267379181856629870718413836457463417014393372339564201642117955491796191258464282879676451778847253758561955408300312781461334498801114971957340815851088287564650454685016521022394648916110209046069528953498372235075014210432087330057882542344823476849348722042668138675867936713395244543448230961607517346937394306936909326662610311890382220100880051731789352425957709953004988488030278964527971110382427443963994798436644212051039459471675602807353131297090065154015311183449603572105722008493788865693038054448368946534689355633748937554290368668647175782013431639517818238721738808543793123805877755737713539713511669258858160933612307787506148775640127218387362237848512222983137915323362544372678949712223466425934405594292728392805538957248954275187412905390213221188101930687359441960237365956391103423879927042377120885563764815767082867080515236359937315558035619989510294212827253305780543611354700891893750504238494167969603818973776197211962444220429641385642449227134731681743951943148877341546248258566572505620549867595264056717205442932455472274629957145821394714199517768043264032856677305360547616701542027294327800735938324424002831340975117662243102526242256415670862964311422190704395865818051156782246558983493112605258269594875749793908568580873820469356524052753877832124546093961706203593032344847698706815927644435239339790900755576007847677539026970667749540899467644834870523849105253471239207345112784160655531480012605431824280853762911261089281353359845812054252357362968975776853410850781278354289436792552719959069652436130276724251659014790245685317857096458985592176958065681815638535603341715009998146715219142534942599156141214800811441029834234933229659085020608610945013121695590232719217988964913127529043281567929910403831699830078645649981346474625073605792064993083503168978285844390226942013670770388561558961059898137561483717200726992223962327960750495131980819803976212719396600740404437627829969506715744161966677419200538647512720839878256287128327762544722364285771561413936667782402133156759864100069863093021376614969696355876103164729152997704777982450694990138029326230117936256987579184449448381342747533503398673819452407007486642331263243440253730771991269940696260385338193086874927373332330718209688910573373678514550961698002754875380403315629397566968219477689425736059914306415416248958403680287499682407736853024852591970532311022190778588423028797390536526576474025199593288963892208698281103518671199368618423262781738403882377306030280339121646266523847737389485124730920341743189759900143535458070638157383584093559746260692083931676004999932728020821988501509500938282883735551113932129369508478468422525434032628207869053202523954471590831938010979349887317254501422563788432520396078719621990316609790652381407793487308677442298139060315741795408509463297513760127146945183153009207549064033007032934583534171804358872296033341576589238909881047421050208016292391861315664433940967675887358570529019084778562443058185322896629569738991544965747417969972699113704227828907737979087795543616244117631167130638931730971446141791919947817096804860737971526817405211727269962391937884205613571884733725074649563751390088450392399803377500863491681046633982785034040821208857783145735969397588447141176199512173308210589764399296069577439045269838580585049999420087201165272712421607283846224774147995749095882603323879410282794472289266367332546268464784486784536319566132200216670847514964917941838192152925245268720467271416417027351711521706936362026546811925123164446957101647201070393251684376373296032337454663865412217635218277886810502457446935565053679561884455898087778903563569435958801338585632994263569784841582564693770766393843271225511376568678811231229200812896852753340210483093760157459303640885195846641351199938552116040525771646200351017813886932011709355705309550354545553199330573235110815183209860067019424718386326618058818606020381339979278771422975738276146308603953747431910826129343474816558175155650407014985467138338729999372456372674177202409685254731959976220569357343886924296256021709863092720967829452724843783692470790655749172096839998890542028632690984746703342926759516779624614333250272985173606415607311617075775808468507375930408305188695611430639207522240347693701880644568728652974304435754148468384910379280693586939814642720715598612883690856675972092054630302819349588730043953610951352263862138004253138587022727167635126613634539591927274332140543391844525811820775239757487832054297795354543458913487513755176555182696241743729193580127746099257727456253822164841179510904293050271429262829717501109083442201127236601951988037121445266815578542955279664300776174861694197222707324068240605876646137829898173008192849911208437111758428886885006347312908719709870839123773722328327558179341184304503368548429545351686060689447383992562195219787356480500400640407297259415354049943281691141315050875620015694494719736414442543321683840510623866746551261678612495764005610517515915635611017919578456404561549075403889724391627681154682910626706226400549651128878670034348108020664763589892103728104657524714685631912022563643358646716032940670619191549138920543183858434994266895251618604935827042449911681159471698797649563889197893938859087867653303592392494586732375600091420886966806336037234001697351929706759843489548061856191504926608215674103360073233157503136262629546172267242592012580299397577975786887244393333795085277777513822974766778590718152134029170150094514205580560519287375751590581385796353301552753804685292019289343146430758939099935896232967324907929574611450297945382702192560309486987172132606347444517113852686346801543828851447352351030924664322312213137836042047357302959182143790455403678457594901846758276750991926843875459318649953543839808637271113057838923120208859192804854649374967767619105444108601853723424420457655177483803782009966337526554910522598597230730127237407239015088870425555352088974286591925672532888225066145030743853507204207258497006283735910543426745298219699261340776746953766170936116093192528901072542757526677275466949847163036931754711372258423589252133159020733896211972006429518784579950683954454911544680135320871866262052979162644209033628945929852898077465934324088487232920707068016741544296850937595958970176681180954533623622504333546092586982948898285988215745898284753244823228039561514765641434145962240992999953191860160456950652916198828635798910298136746543678350634889376624150615049113330534657993352549506134303911014734435134629861621094788534480499356859563213386722018469263063660610296704327187553992238333449174838144060499872479340305469277023532187066051615555170985852924870854435791883634872118824571758241671454484377376589988731250179462369193193335584255021803202366874491928479339386502921000151299159374872331130607449957369274493655284611366873078715076056383620912758610316029547655887895223606584557101641791305236631202970384224126504144370786694179373389617032334461610258246641606430971157861158994915726934423501596669216088988100543281584245937585305472931419301328121895277451445553159040264263356319311008268238374455487254347051469578509232421855236870906415138942383784632833765691065351799307813565970652099440455477534346188796563834106175991147625159463985072487815314347728858701709483695161593312553692528003775251862565781938611975278082907255368655529391402589665879042744106785547735796640554856316970612330300847293935861169485096534186228650720446438626402388484641541349323404514337211146099661715675084087646137354062617491137382755364482902495072005422725397388101629764428942306706734725613833522058930740989752957612388632785462535401058123671203070925583571524304875085936853224638954777163297488243272517318240537920201067992735799709591625732693258106721939286965411779475874626412274434528030184146420395560595827153351856028329321943201177208439458746200547948233519447948320898503351362856307103836210730994462775740627761949347414674398308253820229165515070043099044857202475665433116058451582413796925046027650414311148800164847849223085849243164842610181614053871691054579805978569374968820348188731566397687548292797929804707672595365583759903278826007306127119385220959450542682900803059417038796637400415888352738265266991479764279277952448416115647857117267633884307874153996164022243384805121341766459512860202371613769603018720276835891948151746898143148767345353539250321556458280989987907355718003499975575735412005480607405786601371035315365018046144469450470036058270710545982693931226069246744786978122064912046997008416380209437708424938432238917838991936153576254587386101047101379768567379428637832554587862589564484114765600551895447334586979101615922671694869712852441262909334237812833674575839578105133575067429114040876422384003763212194523360361599200407443701463539281332278412319549456218685754716309023192602810322859714597167540235322153705175063038295250604998794148657666920101003136587424705275281184264629825387944932211289479847910530720465678473094920237883220071088666417345838276069646683217429035570353388541841712109899629389826374887563315350778743038429374643140197089346092687141017321787084562586158626219232921836982921751070802582100580111472468888993401028108436119080387283186082291048959742862299462132280155521566400015728862317046109728983107776692801371438904582630514803666663099561709389899918708460252037094169559860067686583745140682770276457810005984644302595555512666960695623724311842350978708853673397802475261227593543261878129837963821444983448738483131868981160195364720944664470920256118638260805734121937956723702435826516930159706951870452783477708550044349240615543718721630887450954185308267804980572264973581633576818310561679769094845266051261530043256983941164590875102842465475317714136263935727751091282420988677748405763798818443078124145327018637737610427203539762374629650106908065884434073065023517919631116364515854702226908523173511259850374154930597547236239780541618183786119734290535492272771468849575162688269358916333096789419977703562469169059371940936714848698696425179255743573818813656664212159944704040053214314350197835818941889185800367217265838480620738009811398612135903816361970971209242262163076397592021805259636360306441578860143276177799831050539301030210967356081009848912839664841910422896334750164528523784081593381520835153532411307835830053205044318689715060613952598177318857510265837014713770009968748418020451299275697866451877812715093530048267145535421520389829460134001296630302719786803902689105329641982507029721224541278703175594648757112251959920725754466734397361662231913374278539346064917218710102621289174437622134548903947744093183617637211969890075741377115456177367848242261889321075014466097910039151828637176141114478722743623112499300541234795423342994820455073692761892544354308496981982309517253942324002426266013978509391871829635254085466453005100797904416683563136621059554227564042027338780371980802125317919124269189840485843878060357058298280499959217248125762227219583632944957774879384319474388154848172804299146534489411428668907746919000895596134123033803332666734053812080573641242974164130391871376789922155379841759755103346432447998509233470546546619948128738502378781796154450643100844292238518121924675167298086926623114452236413648732754627221516875959467982937185214232830383391527783417322362293438907757021540375821189605085427055809881210999861573656349348185374621428055851212537881714500348266218987488172433871840367075725703374989740827613891509242949485189105068673632648936663507928539727228550570053359350413782555181495028812772176529178522602324289781240124084939657593611980868620313639081238939113823345804822527578795914861471161960936950596529765025365841244143628605400165315664885974241525562079713224605146028520707111294993729212450350473618686491921031611469998967895435875144020462452064665133417407663602043325160404689855431446657996227935568834744532302278479244165435294834557785162563698444044802743276985230542485997701958245958919123281042700550031794600047058369162418333901025395117388528574951809129969014334426402264725358939981473506037365022880545928193527021600747642831690016068262600595508637617945036047409798664082633006939003165110214527378254969690481096604265713653793939563174460917320703374495413018103882307700045152001989448967098397059936242054178020874904045076838497895112094094687154857046007462872442388255240006031230278046978430082529458387344696646992141126102577454338729779421440970492384469537385082530954364208594424413327428394711622862026264394990330454638576564568613188252907383919279560212098774756376007167824320743291437613136853473202456016313133735397793368531045476290468155930197186913442670104131315894181939934845012236650220320360058989536757199154243849388658889748175719569764487036650675775231852379207836128224701801712131473755412777070702846571724539579068422515463504851436074571980226668546001104069404303009341483928987568904451065210980080935976666789537928853288301779009877509282425280907744097009141105563792413544523359782745168281031530466300138777141115141597621578434970233946041332938985253189955432280139027918280200818956598332345207239511761154466757477474336355995751468337010363539175122364788708110792065686290655614112160718152257274531036385683048602679851051019062797452239658330889742422159709555976816101806555958114851275184402119695185940770644309563507529688403444781655731042339623538186582642644308413211211956668260883921610207916363038907089699480160396018487635122412947850023337375891844018130942307521162556672312488745203775214454217092615124650793323792436165469255048291364635010212379528344650671497260567242829281832499044706012628929889877453871677239845514831234951258529193110119174953580322962735886371281224481423556897790598932863467182720294793704536492819033827888175648643646182989626842218429553899040451460985038129203004718541533599309244348769998502655381539682601226843260485188076219076234172382107361175633798099322020718315561446436877219054580640429881512997854461990157691842130797472303157756629254433991723628289315600494204942327408401944699609682254794927343076290710596921311222514944028729164187734226564161380125235784866730418773192846499809668047570930223346038821265620143372884466765694862696629551860852577117194031763741162519066633971604265782167925934230516370020385967948158986389514284688973193814996355358668949403839326852506113329577527240291060181486756492024782680813599155599428652352917145134365388595347138853437151917245008435757408895677210501996873362758958244074493861761886560993860836973052635365846350935707206014421846449092576898783432465066835155368244890692557180902932044322001368339359099873890236774708585372985472968543780967535245373291966076931960148756940675045584587364560278913182399437784533340509832022233150691557681009908579781516979087874416154111794516663652219396959495397494940702267580960064781877302408816868688098333430289117031408091119268400686854127250876300119284536475437543253921714307781842033406978566201430749581897251367870018956878152883220717926824459029925428539043514408563236388785259330763268597619753905566708572608577826180309614586949362743236875544401799435478928915665022034539150386182205166155786121894443388447123443456957804662015042672296161138797058406246940801446386189181611820822951880718210684948082705870843553075481980296365150779393914158762518286578147172165580392368242413576624525243236423752078920143059157426492016921675672432859140812300265695093907848317588189322339673564318867824960024673963019614881571685681342004518980583017204439831379086587852461119690512847664855529041278342229611420607728009974357305739672504607715436830627594371780726468634075445495456202824842916866593580618414229932263328881167031718506873728023827894804011639017656881474811632073126448942193295291493091159735433122826151196682537954704516758072523117486761837876304198292960056586717912904623401927856939608839259906972089511025974522987134908749353046895799650852587401008128055649070993471073845079543500859070094105673323574911537728606177091837358453197005898501499781159032389501969686647042051649395807097635711562777228574913474106322478983648751847470847831675387219379450918624337443179036889612192531447412575639128577154994289956907415830664923031835482881424824125435491684892902927548041191769386317397759543255929341325154140633181571804841428873902537800144158459053328964653093434719570547858068027260078524421388201883266405634084021436344324737687604120835682117927550649720351781295874422556265583397172892768567293598067350387238816042558602215467715877613080412396923405986925442648941931740330204820466692534155798996723019894722552666637184142436885747335069217723373349673980113303145651769965122020907228291803821380643533729980556801234638797490678478552650979289465410149505136989260478371753218493368255654060657638922867207172703670173889007763201070105080280926801323555940353349990842724311242290868668278103341667712391376112919206363414865083591041143516661385387938223636302062184012881784614277676502077853476880048248318328546665053398192135894664263633740484184795988970523731440232739563354132934449393486277617435054101069795300963113967908522838682625936122714024389002338434874766186288112332573669668352937808360656479092200773196380064485511478031665270434390222662724558463007028449845812433963521615082335772295201167514034911596470648704775674512941277965828598674714332504988282234374377473767303947812605556746746537017275459505534308204869070743385219036082888771695922127798996170885443191179367161717002681646999515100892512088604950597288964523367559550106697988439947922301198392652911118340499635724791079192184717015057315470316256582323330800266826260822260200408267867008737785497215726257119033923166002671307911330335443145593673050441602680810793841763103142685756505924428921893468838016436899054314305148073657289003856151476731430612972422045944154576402251216200149315622089201887636222809603004228214198698312579786059097611198870062576423850204552206801935535502179888354158209407789979425251600060136697791322978616229484576214607331049599895427043866183962917864036596212597411707363676720064805593763783816995051274585622188200260930418847213367647173832902761825445758653533700508700461149474612145799171657511742830566909093564905941934414975528903445010613412728696122874739593153541694024041259835497178587140132629939157444851384134409524609983486726857055029577246634762049781931617644816488160055442376431633384466002554692777082147174699211172564758339691492737257288365812093133390752702687361554056529033420025527569838052917931465931740289958144097134956731220569646285591339862581961729868943926672297529213357063645658126723565728810197435176803389710375701551818521631956365213567977809701628211418217270332680002982246838661394644656703674294611272295736097506286659768545360685028060488461797304714866028097195026314559207074943784832207004142889555126811580253612053895277690035876525052540073124160904177961283621263263256257157607842637967977746631537579033283576322173942574241884439870376116401422169917263569335766051275545392969627600296203663830996548801361068114864440951264964192449710415290443833474927051366376671010307908621580373428893495035631554248259054745344655978473319180016696424772493798759889110506449201160197239513783700454327302182412160754516041715384011106334638108118857281929221781594589121922131986402583605175302787921753491227178411256824654729634066196359832321677135648224890455745068020472030414300649372184909016488576874073886539921230660428640607096982367159604693404746692991265178133600818489133360861409718452238027328295467532054605498446299554206730179597636492057849678085666084885268426601653644299467460383231712191640578004022795696337695000368506117299294160169131320595118009902331161263401002922346915287795140415723088510422609124519681195042337067203389408077122932071255556182912998245020434864073177935599262332124488472218719321818804687754863253574644711653229109049856052005131329036078607108468053609659419301614173049074359670495285307135676796406415379184290727997197094962738109952657520130965246651890555236982725791994015342410023983898513996562138133701269991007385047337645588071575933452842572226385744568626064051859422888686726242170456736189712343782976032888935146654705946346621103847754915280966581726415962577348157674417139025033682860008392021294507453763061841398410478835926421974756162168913279097826597824388458739310450293803162601319639937344159163964520450422703600415899705862311365852066442037624760495814887380834499346316799927685489421781149745171433831270106612368964465395329044003338932930709067986304083036080111112452516138344650897716226900078459078290459286147918479027719819383044219833804549658438105248909186440699447703391302542612906431274420799749207370604377491026009994989694595738122596690697782141672123949500212593601714170410848759771545298127164565042235291069206576830909689400598188319127396002435359024837070262933330764994705026259181138620271622716420113880013530521603391488150523739872040933773983115053245012948270792134800015735014783787976332572875649411813529898927685806645893193441706708540878117566413589659672651806664049507205210895907427632883403018198862700972858195277464883144302655630210624893907648922481833831431748070853438494768209761573735892480096348303008878447640892232035217237682411280725351069652525697637545469461480503071936494686982763268748675664068901946207330309072386602562063997878830871861182079198352047477568319836463765697382244958204763937290855704153609885032031716540559477205036685506628775063011381862179038852373666584388061253449733179537834871202642303847904627082344284338948830057539728403794622539031961674279333732824122434536601776565529364416621973729224597463311076750880958144124062098286069587962933498943106836128261160462782591887915400725321578532564031446474842664517733247645048138311049405637544853087595281945696840226090063944779831475819037316114396292629111840677676673348126740013063211163588775486741733298694081683285724701529435110464991659305627742201112276447005074560477175964970129501223318372602356704324909056932161563882160433163094863528092960000160059138000459566101140868433404629395819033799982992752908217504728730462950681681052038916194481504766578737894110058046189917833140830083931472286403613641909188390203136028891926186376404241083139427053724069202619664149218810811769001547499663143065185896717934006214258931048951757581709743196882570332879379512092209895388723351194134553111995611935792554013201385037052713718967078357530632829308738646267621430572396466642193937334796145088234880985719579616703914719183555522741629738416515690150114746939218263829112621656605540924269812278794984970551477237719967664006414229600069875299769749733875493997174907887662169073231779809532807437914059321520527965850675575450391755659392002487145087918837599103290034192454916948396392819664356113301520305172507214518816980240265671349594557624398792496959707826456047007792836203426071010870571723176457441817726909943980364025806742994592590079812411313450437735195531545206951468287448311804865855300195332146858142996490890828916528948023457848239687843124958612031786194414531950025553099385073085624036908873793124811908835782245581367343535447011344935878114035786961075900468977149031475394078144369192421530460988929957356810099893546478228067185219307731197257645458632884829573787653507695834010814134620530723859948327874480698866452003315718340367636520066220955239933303784852577710301516203065747316348866469354126127404462599938447998540642910175867221915174289750473044506632258044561487955149498763434746236948920170259220978331368350560333503708810775914682826470304936060513794566703485186440668499866911500609035497765704353479896800061333929720488138320336158535208009458042446889801203924391229953429145372874642303351686381688961550264957565508353391576311738071973572534134344130378313741717249511349627151951054804290093303153956270062441469073160162027095186608286527364833608182222273839358841471608589883619710805794875982589344836643723406216005637383460366582968328915963614155379503861993889084572209149735168844043548549349386126289291972767607856666448994191824373984040051330014555373172968439531079757385563236169795281479174990995577812870861870069664657545182413692655749390612432839632694308291282780161629786246752328012163298839179172237727023339443914017683771647917583046548960529446374500514743298097868753160266526382374423373846825793921538184181539588378607783481381223984974688494556668312788075429872596917124970566202903190657467561424378415668144641045157461103143242944365460991802793737422445640044130872596483318025623641413680698998139314132130193505034244700754815096804530287649225199885285495666339558614484529777101693348735605417578930939642187018665536185904676854321681121406808538935399119767050588949761454572534785904053216002044553116219190404935880958509317337633395288515485294271839994516255185201186085358874416530861434977845799058887559011491897118017438454228398057745792252650510939700260410246163219282762903169870210408254865224718642767920866216131917086793056106027388749761186856316693685081638588805208570873880345289279380192815439836240900158062335592778064706452605631090379425349672329938173211135449716001238424580838440399941616256373533204061284231087313127189637726869937644008484627217624581176534811190508196571341570021352271850884567632198478746768585009684773926856986436718805238381676435950726223021850812723261049403934925045863207751165272895121678414420959945908803047704456238696818322628281850337336396155159887914539669370148122572695538521675802095548294544433689831169628339665097910964708216697550525136856811456344205373504991416291223118533030468967507323874060106436227245998758611404931358132916340948299166472571009957306206300669603067731573791933214644572684739192122858220931313724910928450585332029054925157102900455065220687718581775959686219757024444427740805088237278976883624258287660154031548943428152073181809868903328981045175960341500945775903519974784522342097816399546966234563599042785975932837427027705519843334223910713645976481401994825310980881713409186869943962839917969710942420335023043613123840285751556717794835140333896627051481463686049684289342565261877000689632413810287756590223399240722117500127862934866413932522491823752225685876848004985717470886438012822230435587287924944902442026276856645218851692501683401590605318916808144210940858474207307619081137844095464512365311810839214547769488642604160743571794471963089614799300953876683282802060846341272944194637069668290964008736973693477000505832201721130148864162596389457449552396092303418732251046184914082776849774269726866016074000919455811575017545778307741565406170373893285495209313098267720826454347530018535758137323331936170621840521950399399862260187952628635297384313459396435320843009976221312280684205855067293520443696262715803976819665342849593045542750724687311794647617670533658817518922832468482759348630212715616062593400915291344961131646540626548674433662268388541060238059555185877711883276481710225920434198418212647014196387771373663367409832097185177424663488897287859266806979141099963559884543138195002265460283899492196256305997701828950561906710632030554568212501539266434901664736899072422329243266737736825126848706157296907650860084280076289807881145418703788403976256697629973181113132438542338250449957713597785934031521940915659608944421443057654352557038221920861572883973561661050967081844421742294993165114883282721477689816055342500118675600605452740459038085979889822117162448479057486048983491689436155027206193923347653119238847508924726964079824919884035059938646510948038109760936602610838363938504939239680713192025075554141415251546425905347444401007430093121896028318452006470220657145238241443583485050448118557565167192516614820454670077590160049929130928688252144971485025935575509899973206474110758508436132936722802328957194448740108487611998082997082664794130595723997548319627895184352581317067813928399222380575596273470570077223698752568792924742697377470300758530887997869299322226549722733579163034839489595229767164387938743258293553088818501318080589627986648352898790283843386436693946809188965130153586773613628313738159058989385903846102650003841286642905657147149751108239317112508843532662592462791626285052640582024320520292445556220960195178505663602029839608811800178900884017403392551716448831881496937352288765986874443967478833456398349219305030437942064374340502915341464521784359695331817048541555989200721423487952640175416150997157760581865944463181817821927137732429257633309459403169794396691154079053380336566542113963011413835468386038706298633313214366639367633267581529311511555834525383739950733805679901825116398671149038654396752601456908148319687501529122960102825234898853435682202228373945794065460294918136110648885134581572832908624732773984769243664581341471911288010708316970805311084099855345673303240993736737883265970418832922059410474707043563286760472281354686965523505257383687958971533526306730421328236303461036594913526105753970287745894404927612792799477390673629745791093946135508358378253827470120446323366799899093176699956485837279800610600995104320246666784987948211227233764543922674368413892573832971283273484503210871242238975171477124351995506718785755998235234469609594584494957733842950444574882572587790640025652229789273753689101154917124508313038482977695475883512991762188966207775593867595268440663635606553176542006852302872506310486659041606232296872731632834437567809057019142276183469641451572457626296138137120441575475253702649076052107465128040887371326201998356388582447610043315606778017627836016066547086517203636673401400718363678003630602957988107564991752934783467975441213148477973642991907408136097868234956566244594333283519034371850894028189380268602307069717174289117069431764195984316140372237044804056333086528258007128633312551527494334052539583777245923857111957031297367402038625393712651376061718980901846864665347306831797431594968619278790780750713561665803179235677562422323660581189464915592188016489417284738234130474207074769625514628185093544783000587417680555606422834995652266706554439382285171352716552212789171669042550612622574450329641839955870499175742383579015978549022920246558089669362006624626573202527530136788346689227675485958384891793671335768923755644215875656529033572667995344057920133720707850336043817261257601832960611315423969270842916267925495261939555624410235847022354326551919731580942273474804935003625876685145043454088417049598712453618872697744772904986230376846501338777210220151168310386488614793918830774935484905415232893309740443160121503221405344452722684611284383143066905011278839815227526247983380004468740737021855450612391478213492789192015421667459933016249916340595836436855193457636705890263151937767940591826776325561615365704932658112987057873302993460061300019017638736090373832463706187002685077743954762970376883859369411711167779505173416859626789909699666589964303462227643385884029738887249441854893096513680064044340779275161078486791655718072109774766750883589070656825123287123685297450594900860334106850859035265170188761845435291039944712756060445946386545083826523715128179591815456508049736427863428808849039671468925578521116138583231308216181385086415082826348490101658564765245204411739112436157710203158146182419487006718394180616236520525944723771653924055207547653227736164421926452305455250606418256469323305781608350116388649811448428958490418544086104626830007774463960089116040154797264342758710666118071129421274569662716437646827027780681054684232189321194657010596932871320471792762105771485003240161078959599021882172897449470495123666820374439251779714675655959154520936105184777834080076736943455082326703609584879033137965845928054546701312866690300109032800002026539794618802267339986593216630727165319236975072694841932397956273688455665677160636494208076249338052102650332305180022823168132912199673780819352758385340589672719823677921990591187252781296744743839473181235292828024192120234294628860143757948022711518616811575777643732530742562799730794890470296942832210695545667882977331739066609407656217934924131336648087659169607492589437737392572584590410677368571603287098094000390981360334702202970637714686120864053368428938444131091893900332451785908917527168556890525422139979398065851209117152050758861970148527907764667023533415622689649534620806839155673481776738626136488388989567933234480292413085710599541390702680202475367076513195566588679667467630325008762234280408736346096140152724779325122256613060179373247330414077063100072230980414319895303311227301218862813398596093433047828708158547894169839779305174098636301602556063956785930555665382636750718325451769656241774773831666221021837809028378489280770354892118623196959347057189969603095356207895363561483777444740521249286875761006109324212138001135204470449586562806911998696149122485456429569751294679756953551930440218855947831698729181687001888479535526970426061540555095464271622398304460445519936389951556347405364907618720176859285780669878930610682313560760171957248376824201943850780430933848636683423103597967728357856359030926924115288461751352444401894522785781129335449691103844809427525833302878606276669552960507740454131286255839447299590052749721864532766524116652403599870921240823571486186397921084770581572556361290120032417668100124486349832302220238558823615915588043183934769954059149055212587790426086499943319485305506746887978638671091561496592864122688809833783428999874593052079755604539244178639609792236087989665010465442724913021865357949141501816111912884386288644010869864675121095791798561434220070110391463976699399740197817612741168274609624764712230147064729443062812187369893159651241861556991838673481711808302123525651388616305857602798820891115977800318953161512004895977283800623652826705358376843741988358321552300843489796544748929776222787630115548852048902600506030568921413649630689807733349659542251289386049294161047972069725958354869875892363570627662734519527588896153112143195370370011711284900404000815577656358356840498509046267859939597295971631787294893351139294438507214011777373234579224069268102478025544183354509779736787901080115486877964924395211639916599097011540130669003134588839373089100122381752409919251087967023879907226368794673805377950740591678686319576443540254911085858745055421384957067717680558645489646739720427285502549728075700603586168766189797797108007858322802416612577728013438113476592703173119348172130798964237853201434549203965759023482310154065319649915254691565138010222072876658186771248401969558355469765932819284451825544483519509061323664608923116406300972706092105909557286238256845516687813974339489230184936655304478326487329691724300286250709385722858748859235561357795530392840326128922301937064170174358706953621491676271920066739279570904762217590582087016625025237373950736000931217438714322580802467581031544109880849110823413441156445455816979209068100339875880135245521312401026264300348926633858237207721120275777955036816434618789735380534534372140559512444800132176467930399157625050208435915722047176564646532271669889608001778899469425004340569331442396456221671453889134533679699435500149458925946140911980650951337167302415484983570226870672046847042046576308623297431752002989797157215103307783255558410702748408157651039389860532428694699183374387012516242315035847035946003021871595300735241582013258183474293688642741144722372133631787569318445515603214662651122383555843665121941044237943362348404548322250682969198176797325950021784357535931744733704609947559419845794365259718797071319561787607568497523516261447932661311129433176491244743710576071958202967190792475898968217727082897594489140960470792156376634724543593159748070656994992472656019891910530659073467787786824680680807646195497657785086480955320624793448841864309699807041775275426078272577801900333087782282924552342852773429218025671830702753298473631509105166297191163795814568502847965748790432989666710307159266020183841898409984180508896928520617580099102768173139814570041628348647190133806645811204594579949837505014737897853041302479522322877007844684485113946693466032340747935750940480539450265613422088630545034543341487354781681451904046805835342422815496705437686269220427752785954712589160185489964666085866318710456491978061813990886551549951041083889028388458558063581428781387690593316013835166672809982193791875455312060330291885715605100470148303355050418116058628296618580138201843924387724745821575332013465773109934582690817107142591439746596154362879858364370642820070037084863716601035875710985551349930545560882263416750367507837793607870962417333540607729523098259290394621177505495818917430661866560430212208086599253412285888892518251286792410812773438706562830056179119247761559844328557318056211191244236701303461928748744760820064319452780861332540588437736886218375316027240278366505096287474576916917169146189491838104491207871220865530920200712568271440502361206400930790724728715775628424553532308892617271379875456838299948917089656269350181653959901678042160497861955184420231665605727482654838864520899780554907357966541637114186163480108281843054949583615671061088645971264158634521355084342679012189519533980245991001531136731801527842151151725388148972210596906908528179264618822611517235481755706174557641944637738898496918603490519292370674880310659410004628404044364650993992302710617272414573320162851851117155771199142077647233414075729548439792105134749211033417375932789963126829045860749470125534865311969653060285766435581613958420054926690894428348133660408308179813799446378370632674039847701181727802925516753930800694115034345924168106104758626886428916354113772367567161513275432200249279721698535715822712084473710496510120188689356798989252247452267415672416107886701685740661138141450937178422923924997833693799700007578508594301837656441930205995258409293808869668348786117580859436726034164686927954644871425669749343948417353896881577058593120056004290941499379774797681908698407445623629062001470040517343346539470800313642518669885074532690571230372661639723210566133652937036715389440842761067330541305653341678927123423528203042398207711318623196675203846044313810704328530937334113874027483206080835619214070405861705887566955059568387329332776584819801133266688500265272100858868884536842821882269379443732576968384391616481760132731350663937800092996773709106191286886145354399177953193204416401908450746372117804298351072328628025254094244758489845268500044599348510236975011693927339408456277304476437345710530545804396227655275652238217195406245836802843949573136508891923071034331666911431997564140679713823736105418251651036481025545350103247334344519190661829959920644937898306557866120718585259954951855901915509701887841972815062582504637925721649653774909057531030668864865116257975069247931535244739282912376672587358719907841851166797695574693163314146001132947953039441526761647022355250219821090847723828774765996804315723689974938943013078653886679618553461389118648441606907178723448920552760475054041150565737005485973325276151087743101768359727321573307707129938289340233396633342459000949233541757795514261637505159335661020801022473663630896017629650830894953401561135423843288900079972093394934218874096290598806687253897861606084717612186190239200245932939238330912805295121947407617637139847284464953851032559028787263703828664321024342164061643492364367822171877463688006348237275046172558177566108779358279823841992480505985859890639083907743249425153998481450428192240863199055341993677991424611391711553814389660818568481091558875766739994330736121328800872530411511609557814830977862529748956849981651898955886778882401934185640204268527575242298200988224137554000831052871082571244797665572738751236517921808260984318914589277353257988539966165504094328698420787338235388072018924732858325318890080365417351716016584144646533351141600382013241360125294220155933751515552308518237600400717469802099612117996441435455089917746298728251431003604765820780482247600612907039859738335118215723992898416163375053942421879223854515894668038636288605500077831760456049084252199491764462377764044250519674150812616610626222126545297578598962138060647585652113123094422210307399276744425341152500085405131118297495485408106465839038381327820362828506624518458586271794151471809178319122945857701194350060813804809678752870278642497024965966554543473393267109543787647588197848339935290100582922754842774707124838940004628948995258871108213346057527248315803063137770437824969324847293512439225270981393793793446531589589676014790960546419016721708616217837864278508310937515858697857485824198480660730370823509700921077766375329472868243636700658971440336934827584324425467721236772808800246064731621564001579150452100417664479276673203319990925432951349323128044518768142209156959870318914180247855682740576732379912949762393173619107369118623705403436435466857941257790839549807551205968413949504994291920613269408540953849175555656494886825768090373778864040091242358263859338899083976295979996583476428086067628922594060713502729729143201504973798497323866708591273776417804122358489834016832867532487674092643368511442252783241979033650030622518006364752422507034130368970232404129598914028679430314463889378419520049858481625085504864504157726438743890010244242732830253292514264801308750759651558581039218372008119938304099773964060056900174728279560228879405683948985915319785365008428347760715384879232217114635585460129333127404687166135523523955543492776880707132101627368357926677775825557655302038437702593992326589282821727079975474701569423728318931757064620851599790348724806587421610564016702759578114463067562750880646804804688089340367239861569737550953609830433528109656184010950403140793845969170330114262451296776195018520443211248975430462315746969718854858025633088059103991827818948751549567645548208432654636524541849574201040249526766513359679387978016706407525662583811994651142427511010543795202964907004553979429414657597609751814569151284446501342837742425490707926904624594781115361278994833263179129765512878437499393651177217013566045321224740727242414651144605181536470203634518981216412266119470083087239927008551068182286752484339704687707189310591699697676127299853686032377034337745243992043925474909336160536414212467363731904658705770711167963435374460060720609195246434720475485373041352500789301715384372344168857530421047106581864599019625930271606925567760452507046793813659529037401980298116439383315295499540627870642705553187909801683379418678008396764176431922932127279138118996054430812070604413556676108628021367177827357114253937401382714739997242677709114547701042894328802358876868620172441380700468910248514939593438511626347257816474219344789807286166226744748536736997953447832493727926630502045352315482904141614088180313245786236566648048752027190353384142605976904782823872248443583823273148470116561427333767099619602769103375612024484636514703046609397838174307536929495419383776311776399883829487251895221381580590529533368083742889806905688017715744345499471261147219662665920552262104861223852016138735383363409567276475074389532684661529628068254432231836610882125106755741001156512371873538544913201282548257049159539694441124353896970295654297944282061749975507252646165166925986536712864875931969562104678589917048382925155473389073471858081593810415383491383152914476510908756304348874381324969889444318685141617241156689929452005295720190103199211029613752027902129655577146338680472167185858894402392107348383000251543684000119211380718314114453956903631701653661397803487221471470004906126279470831326223747549417924033201603584355594402108420751871234955516711366018584773980971365352439008652966722144232668515354079728427754986470782646886736131711743003999560168243428472785253919587331829476617560056533146312138602517334561535347070459624196540168759048141380107631168990244580222804500384076182697344373395519851425781855666829455641931275091159950313723316789609818479390218537497384225323571643003270152956821177045523922430544893058059654945856409692744461888606813814527594827427695585640554697041303243073190973778171205292673148746485496987996016898745059793891144567211382420284712689154369479448678701604278801060571469884905258217333163587460082068413268421532566665186880825861632278425536295698993414688977300483962206046537383184908262378645934480271736720682471987322001551746324822110321060179109873268940261169352833890524876069988994603595678468288908363674623288317110704730260767334652370650132420503479085619256992923237235634380903021122437002651225512857284761802615195868704817851001738638248901091433376080978343742116408583306917646792687818564919438396930166290104914803758001976562185951944764499844835637644777421888813990265763910271314220305347641343991428628028430021651759037693708109884310113080873611619599724040066593309283964648816866746809620620938524230842713238321204460818602144314819014860058890819129204121726822990579076345439121335055211832712291665224738182290561135572018902666277863166105282446410518080495237266288776161734790753351961214933232365099631830866169216293998059255647064971330396147651346576899070042157548993527863551947665304912001967682585010346865805331111759523119522261172121812689360253906717396570392266388853080006524557060503916360666651226465925482820097026468742734171064205539830844718018731353085543320398799150069322958382517048258479908973375850568826215499074510446649924530633132887133997275095258624699139740040753296620831027071543816798480507254979372776651612305454617493743083499773823416306961613630505845496155939766871940549284046187829035987452184306605455400999752359094204669780360744717425365130880289842281433856259456063530142671776955421985626508129324130338183352553923824241609092661162668802303073322310540593160565106943564734631913099158215156089661742288742052464809915447700958740503376244321262237828365047946519453815501921831474459257556467853443418698290566453221975163773483067597073405744234805041520452398783504005148896396290208002930131487723890644254769121446255085447825386485035955044104098592987092657707783504661392160005505655760870838261838999295948667408011612272098687077160715780939967324643894753250227585737648400953115425409326491551357486176757040869770575709692043147456948446120512921385677388827617309457107601410717834911851161725828884153864698763661675570711216364710622558576210771843432453559786808037643527171483724979134152412581453817585491313143960657751973125362061354235947853431219837463634578324516937378955269185878513544778055100017744589249909419046504549563217419477597642305444288881902065796919090997591040176491328965500273632511136115735684588758728274989856549553824312500045021741110250126759324996509882840022737482625082895790112095747002662857104060083778752853503040858153393233232804013680520033866915761193771765136041930784412327019058434819392828150158836471080838492244854470542263408402844784940023674885703631638801273210658014136140605515731238376191190729426917815885665314867673861795450327607236093007878778577527214477117509197924825718141749403755448898430406562696720595347572357244959804050667288373688268272027659629388023209223515789366940054841202849046856563055131303021603582578109838363192937546932410948975779894713103703179261556679077373168581184293648720229911437118951098839263315365672191315943210043033869363748913034877270085800563327662988522341707051566160343217471533879548616109754910892621727174003884736775701691586620001681706323277672166015029371331997022208841192433040476401180448645219853676072311625094631964887362416985231510259778794935327322809927943017141342681457398994855650984944221824254164553767938290917948170648593910663463341210004283576513627409033097027990301824735786605911573458875050251030704876313312624181599016126945376059521835845837298407509284145043840550957790881225124611783364618777661332531926232407815086912501970925968747777245836284289881540912090292808695805666499589787693748230535255453341745567483151267976883244942426559763785717447818187775418957387973993493465980260291092951233350278904304876380150435985653443198555708402874163665754265294466967781378036654087477355171375492751380013371772343332720330377484294146395525986114535676173888038096363216728931075915075924277019266532486007171372087861524159833414356205486012619374011808286965696892146982179143914706149715746815155463553545769608898346683564035126160682421577289035821207860842604447819344877924697229571256697992997898352943776138113693203207926180932305576361330561036762916001088486900497089633097992726923318179736187625361741063718020192910257870818550363120104767982570216866677295784946986094966350941153527742555901968773753587446659574754127785326947402360728840923630645158770582290065867824879997259055818001357012447721834750339830682324038734221907160800618982350019658347978358502208666057614144273334133113189602492326875448982134870205875089170895200099522126265847092571240707327616482579617878691863336923376624091871957235016076174357005844717624458789448218587334436759762541420832015638514548492854619342822186142337378977160624615317667971996148689065830078982811276671162810905906801279435742687520621850882718137352953286295696099332757271670283210470969912572970835865936544117143255467666527409892883942658816201036027689515185512593816284969448619330963853673423653575831653195902579969210436499251527635094987038605666526032371627740877326573167924464565117369380945171052327199492997372605829191439184184089578314031434810437872931789799492290487214203894431722357226316347266869366997618787724655366503904819863114351038320896138193148571358981999373811710219802413161153528762457876698626091830762980708881782492459911138417447076398247577914647145503229884318162316080369779407841454881050080285019430569155309274214493520336613820360108286263732497562163214482385596909337010291430373992187627656331734944123454855005133917940617636628891446262489344313787861097175434105154733013512223016548894557810221204219121027300805356710274103472564585580271878799504586612780990976572231345593326137421097487715580635885529431112162466240571661352282305622466048336738841092002219875615745697274453806105608924428490287669777855449736409012728195768870865324852752054023460527945566152413919851032900147453534796313342720756680145554024574063532456804515116080300616624605740992590717266215788872300587914767660747148886915692750401716073433440142936509281845826748939011623441800062717815223073614650365487942562121543328081084106508549846069245785972294313711215999177186092230262722416714768583939881418338296821939622296844595012041747438336287844787987310384576369107922321830347444682273351768083424000777277585914318664446193976835294936120991792381672554928557541215348182343909219310119738546747408027572738788590928047643043862747234392061266058412931844442010489733392996085659968213806795323761614747873458705890805592735928606653328802379446462311094153390401096001613658110331377918981625177744039151898712157987149055564058607286548902123192807401903112007273016962198090841076422787586280823023912888465747538363955869465392146875490408026350592834265604232617445913153148615803893294990748462517625926429436419067285982121152989102209687761118623589905826047076959028133293669644770922144742773199561942081999775561306170746215539635332636336087426684136510313877586348775917116394327282206876498148485304677913450684165903076327695060678717335237602392385560282084240531111240950389504301547311023544813374545524203135027569000001257853473079641651699462444804659707907232162559630131164772142940742425356144682438637048045722640364660441864657351243754442473122626450950191862220804325445381945463514899326335028483357304652916602203173017427803182145797818725235877179621330433893229316303843560084651256884899877948754080445595842896194618484332128551412265493057751199897968728478014858583088006651377060736675374228636169023718066393532254504214692861203148154080410619563193274485780987561441608989938604357187067380997942107065212866404171721892653730056065574981961734752184122417027804595000543391096567175393894265304837622225167015493882460022593671665855454793964567240941244833755063484886647377626482505506544610672072569137776925001284788101328453363055928594888555609852836065325203871612101518745559951003061693547234091975831879909415181904956873326878526697684800850583962378155131715069755053517939553236115993617881133693478987786270302174427168346693819634033895100924897936854346284565188423939565497170715070395806759433604995259190290652914588595985641999928867227096656503998929160584038340193761914632888864389203120470244210095498187832322229693464394848766292837670708687933443515638636003716495139141075802073226248980964843807623070727711652049817087926029141302906780682840159428089816029980871954426319908301621399410176515130546623165118301879065238792153624677135383408814517967031879607733922162651149650692503328405166230581907849095381358190271121536865647199654161210672084735403407323625119522490984384306945720675823114888255730873665604724297887099609012897828126772740515458439373958144373357118677748588823618003537346493192806576100788599554558595766928639812555846915586394415254189139537870332376531037249577412330267471081768634343579180998526889812883860111885700885637244538356340114955052592596819137231044934166283589393623057759648279597044549387089175811416642888380885297105258372921368996524563234751856775513456465838500492576460122945074894895570562416480974408922898057217996350392753714858181480967424494740240426453625182464467736806055576827022625716445530113023150133038155216483921063590234549435208917477847459472583522560979091241376665117423250498664823480486665403839133013299028787424218675570220960876091808411051207725739047667167730438446629245548568527346611140731464486106548439915761660445378036155253133680028246776573471989943948323348869481688791096657258314490523949822793733994831601260201697964444822591479509537703412636912942122121220692648549093291349603295017483590327920607285217811367896526786460432651777615673053798163476395359236465398582280284530916918948641215232008131099219299989839581058746612193665992602225339767087446567157474292104870263894802077572023064894083063859081493481903414758300194267259102420789322104456284877634951644660116999551367007787052144712347228709900902132409826541247004757000699787502195069435932495165365229552858617138707344825695408991746990382208872394803781937588860522857388777690708548793941807168981646160680731767047694830119520101151083027389897694345717609098461463766664441069306549303390776773255070432656329663604427619828482774423923629421549609080488819771907386275065472123353960899195301356652577877544445044972177121520145797405281120463996936036935601263082538520818289854188277738454021909285749296656616195747343848749744005823500243075465040342932357748316575170901626087652207268339268026830475746025336028231991736775911466861293985382783611332838267860273967348960685892966211649843617058968445779578797697097093899514709867226992305581010206912832636700666339788038806715098386320553356191881598101399903417816477782795358435330504214188412615577495862943585456668627118111181116464585367011648175023835871206453165699918767297903535074116739123363614653995967914602884176927705716854714923166906174380432117887785030714523743694204614959923494659178132420072817028857805245713053811194965143313152187467458741605407714680521440524291070968388859271031771627289532197491079755529125127253100144718471364909711594909628366020429371737967239368162265076812674228442653887794317770744279834340405093877927310844585393782084448221916517232585418575906054044330431896111809665019203017436129386201641000696020622444596255829563959477550840033285150859034609758612588727827267335311973268758593838868342064721879702467688926014938328901452083221515788065127861899623957897127819054546727098993667558967301427531124106372086477527230203197108176024587217140759165158439280521696828613646931439764746049297303758457139184482792589268855640733067660133841569211297531078703591039343637928602323823051120709222358524850302255802410841236176598577791549473581726152295815789223333177338452173647465810242048554417919485451654067136869360068107000722667404872977758563654050802361908789421022665063079439490715961658551026283125226977477932905597691483150547470872801100807405858727078541660745939535880141473288616615267839429719678149619417285973867749292897444061815289099544534607747875669474791983936575214325335579937205642776700266260626898444502571891807957612513853032032621083717212401384201473842441148242199685666924698481839217330159831866457938216296347525792207569708867242158889832718226083341011992464370518133966542910436700184044078246815808904926601897534560205933416026413915016695661268875009181374366523800053668621653733743897888244315789847213305491585550162453841586329528108529684686368767269219889927093047770310586697991485535289914042452863726809496838834714367826137358093808847710776336756150817013605439772389652334058580567523978648017936969640229548815612985443766396874530054798620876854752842150960360899894469543175076298108343367734112344953324030573398976779502801507596511187716887199947471593990494676811782695574833092800327375661514311348385795231407361369726214900770022635581250457432836604105186088368142856791745439815208414817527772204677565575066239646644873321278666488249727242630241270192578428473538109153401964265943763896963109525162924137382279648482454622621160795975365343958834097243129402608013512094364241613371361185109837599330740290583324468442804762266861870042937070588206163827966643644888493108448794534048085176754000906961992732331964461743900713064027578992192666437973577909828894658386053498012846388958893009707963383078009782921416297620116116298311727780220159837699445948839367997682440565752545724864354628959434372502704468651678743041209230034268569840353756827605219216928803801542452562997466540734473463011888801292699993105654515020319832849224603893789980134453273678434008839182320354309529590001717706944698216403684943497604809039985827137696294517120402608664828975817455989629943234151532282767093960860846667453529378088366010778709577452986513070476445921142940212328466862270883506246568937933297580498377888380463511945984917784088734268690008637581827452552764778892329181974288751393283782712298387329385978302334910137729122293839644708677271397873385241419922004106768462270311601249031179255017962508727072295311031661688432291987625942756207220279253793180037589650692829475186498536796455041638390114055062723839131403098287724815902447098869161369715596583328120444325702249775223564621347950606372203502323660229555887065922738058924980508156760593727390948669270055361656190090613057217362549280592535259152147858836043582062138791427039276209770817090968518466432360922835619500198837022957850429323165996650621437090945453698977444796455263544494404150416964471019654419615527108571984885054653448199056747481063632126735091674853368604414342565924673786152134456932388069539878643567091274976080051340162362512252123588498547546532194887838643275570828429463271003136054274711666374715661307493693776979554970403451443591821895088186937624219676787184577343277563875157300348340644971577932103941288365722884740762928192726601322334271032998801161567418873484727232807862538338576611164099707563416353729795483311050522536326670280543369182961360766998006289968813653086278649227158113271797982626516146115393178939828957537435817458561665524840981134490879014045389620912495623976939293294463448771277687508112810250020749580948059093047896217814053668585009199531210705168746633871935455751783488239765771495690539661747695511339715084247540225174000522237845501716894626906194277549047269820510561308603651396761173753575331204046976091787179190237688952450597351052748997939218214121353993291411533932251204575529883678929658236757636812069035790498611108230984457903998519533547318849905969575512990647579779459242111395042592422712220053178751520810428768047188613729019556374270029413991010529364024488669907304195854075702609087721963311554535058602133991771804760266600366363791734548169816270587506528659579251360838638142322808817952888576991048120990270901010203691476267829380458232202104457216947691309503702615348660745385890974846864167699597216084851955408609091655720943267459237324002427948281622399870108120726501128891965309812801931134930658401294142479894643754403185346998050835127209805275956869169969869031436572425318764070325735981055116910295926391211645151423847259030596928588020015569049143453682747607138076842521443792410641621917069649878675693546929614817487251112096731995741417309150515371857066149282579585322152411343003267225665933938393628563777967118528415513195904466658386919168420366804995433097954011179948961137773350396365548124961023211153912228335199261308975571978906586050293686247010491617011288268290396455538413957605732934498942863375511196756205796476908547911781582803220273519573258236620513370606328077531407798663940201360075416813145866320915378616549549123213034537538694303291619497554080343243573921745098058453620010411401633214964164319587461651122621228235043126700869995589223696041211596809004676639943001903605031150899202922588013746557947214013960363178341673351310139051708856471587597153961684311458923269938326083149527208809842293052238823490415829744256310944466092836459202090462009181933188816536410863432915707060460299654736440103412469838440627018096799782171125102055997651567117536742256524780758203506272621435578002786489344159660884264782510824453136424417764001374093133218516351456294718234040617699784676395716790499554242616154594133253842162794733698001774825562506420500511039345435255237301392125579741427707029951235324377263804481225370402917147026952849159011879099206343533868368512699986148482376441415740669509013813948224741215707700311918249645717584217857836051463863915454206253492542229605584695610038312009499588275730401618095743993379785221633381476356356569137651599253668764299040734454667738460462432533197085704227532169291061824776492357186093188724799153099815361503642817716611717670134703444399247920949000455897225889938612224251279631407887938266969597467593105173067170296063217162111601611487343791416010338576671922889358657563702697645450500024530628643559037820296788083124475334636444129792307122611030195232488414891031579002066109901429463857524566557331661368367477311531061393083805691025160035018452455219454464335109169521170560971200450191351805709339722976837824370607919638914202358580532942357929344443365273794604807631701740252098718652845795016575673622756614030045830699344146440482934192299397652817884171098016364575448297106863180902663013705599631403572585511130149300093670868789491283535828268677635485334750765152124766334483269150111396618046108186784852097127856183560200979100235822225090064712008822825769888008788609407876973077432920867667965863646052182524039432344532958407664936443969308376301106362175103886256270000822378857409135984812000827305907845278678052273651793254530125732226423198806905263757236462741850515050524521556764029545616623325888267421138817786166412068468268382082859434309328240350631394405234138728289238896850991803108909082088235941594191236495835500458837043013817142696728481862852046879972035239220947989674634084593840310726524333488507597395674567332255091218379168992116173942771122799202433619790759667561172917385582563524428212239765882790714099170015979438007830158217232178579460347155697028457071559833927144827126945214335578877794119734134886817131552422954033529149387827604343001291057401064329256810184130192080181763330807487442756800843822963937166344736603066052556720233178720925810730951390876063827527565061039209376425682865301446873377588744112560170663615677752145797718217648207214256150739970490188442188017311954222624027357169460810166773922451409758067126214834014698104322037611941958507720846817933801899475718261182874623688112320364051958379338178353793058000895833607251016938114496597530978596347285293763906329992104169688466019002662341055629201479054188489611899369189603558512876607120817404027084377358371942477868124422978971541642163702518536103056141963298978232288604106456197864363003283557329076510907633678141160475988616788192777850444069108330677316904305011154012240876631208604149928043541307555228676785756630755766493718039840487399429329181872729138269094117636893827225376675972699329616840758869109318267767122470075857435540328030249538395351727938625792759688545918344171259776442541922743350726477698638149472714374350504684235176306075892467031059542763044666258104995047801679525873721276868127102189263144804144670382376717291167624828910218101047077080338348736624426449926967695536021395510924339614909270985811003856328553931011404216390200269977969395767968236246995999850234502669277042854698611817955193804558953596201236802183620019341619796980131088743970766958860794516540481106700483003540390146367385987273284322723636398965919909870963248274996227638404061438485656862606595488738994995205873890858307705967203297897468737011320782805173181835813080720496362482372668314245451849189326995256565840629582493626626107880416493450167828837547154870929727381244832209220046136761660832550520918094688765585036389717433145943800715193349057802581137795975159769243876305861449517400707138503751625801698283496869224170596856365844187959382029172282428002009092992202989653778645731351336260996192836194792739036960224056682208216017302839810960554386988717908242670440246675921521412170307304482553354844002918326803986692970618081392847607447109172049567214683959069298202344930512947716711473722309017350152589009291523229325705773254086193443981168621826563290284303896252303436992126917140030962490605502632871669475738989209842534984199293935278797094856542024470869807198056306280583254474038802828075307691067332613752253679755267828710285536447453876501602521223636207670217025438546497137704583093824628024597129693612874470895331881790167759965628479155424078392036417062975751336547068796836068659744786895946226657999762611164627838372866815474277575644599131096252480706892719297345422560826001919581438274608772798804124508533053819486250659297089597861498637328575910230462328441874853593182734714593428231982140841541111983154063347501089495642520895105843546257948777209070229345866738621643974619912286525949880057452001450127482089413559268384883820113873582545991359535969744464693095206173380386867771640108610170501167091813425017129888247653992117292360680434456727426277503209800190624767926509929805324572670305056392591930802457027238955723171378805766447839848490093520849124403182030637707817757126593268642895179903742397268313015199218203659596156595378798648262824921382736969048373784810852700920906644940210548816831204601780667132316696496657208361918312163427407197227219625829021754176028896894438347353651194365895243814283510839871542466314701804544667057646532590601691531206612593616440945322523503506877671661897989545332645380010244502462424206105586157728037307420468196075463994160219078355727211753909817659708024872534087497936407627222479284304387912190981503733852365934866476901302988291329137439113437174350785324708158256442029342484959114656708134660051540017727449622879134646195936718408211534485004411777251906476705552505158174671050404433992656443753645140151175628447817939066084954373529171216336698144246729427113340071749757277448620998575160612312610823795795191521191115833632171093202216260700503834751285133741382799944143964609489452893287861080845581297128536523956863521665312597449767113020801526064372107179654159580270607075303338626341012659319815651602063308189225596581217778514500779914422250103903692279816244314710637575198452638114617930819358231922076446222968041457878600456373738055491617178352075962653840221224527300965479735966613658490088541635714918465865884733617681741995669439371954982907252001774018509126863533091492367364227232769991063989789367066986896423078088768194019091457580115403619162206491427244026726926121851214289036812362113287367557876815849135298776471967548672365781569881096930382736533301063315412639325005357175263027456990694813067978564465258627578384845211717883436757126505132101230610881709701830366077858603577087362750831344976440392456068469171201255402235129251115167108726128384186372205679635163109743604538852049984481523498629477616527552503467548069387532344946883408454696095041409980413073700028907450458001940747313467082752412406038082004838068277666953913129131749825888742265708637428107889108949575420388126907242189056093068625323906246083148641190721261465905983533888476333810547732027945870232143068725051426198343561250922646732554799586112096276758303752823595372386561855568836725619097973461917686316398424992094702745575290604442823788149068819395465115849997278577676647187153883000185348177511746571464031641790609539460629094932955581311822932822566240024755995514483678899357855145483517435383024048625365879683104656430540615368870902370395309069242431347450898801513916645472570984835936876965323832242017590745439189141067435133255934348944071539496567999985648364402505898643882555656652618553324993307230781868526867501916523102933935539498581783230055434098334219501933712927483129737046073135075738819972166999307004958068975994751064345493255573542745577795639970907789357196282007413793878855601199416844427000592578701330505562488072900227267340893325173373349113559673787005754111317841959063276985900257888025033421991408372780174828491023597926568528287600518115745961723574021862586149050861743669434380445088695620282382574876204061266960591691352607698393937822288431130918245261268252463418120101538629626825191022506869423601186416504256147751997569893860820361854988101105293263691195261009844578204323134796667899301727373114560296762890884169903559026022277870007515295047481830482555338507920964610053428704375094781525726325164703347299022917703854310420043857830096176225632413744318286030016023278856622550934630235693944566838159912867190391786698263330345481045851892574097650186643203919803641089915486991822456324765807125380002862837292839519467608247229049399040780238333910192696687646397953919531073564055502524772204061708857451112128440199774487220829030448878347422139024911583498384070475882531999564364515543546230095207802615945420640257265717917285591748841754298951431756780662875302985962935817926451126116709846526509259498403584056191291416888081183261049112564946084462077041196177444477129335408946297067178805653154767709608857313624155597983261359222728316622673830571222864793998622939763685929041615379524357290192102645406940305639521816541887489753117971871576333468800799120152205847936268894454889001764926230496949627341014569069882058721651197791483830053052730113736322314771293964386472707781110820419807861189009212147204103667886569139265532069827925609739992007379072760126003056975134021504502720838912023955672312683055596020894552600575998913874184537676056224259871059934205983231908112855772275507356282576331709000191108671331047011574164593402401105848271204366157213739338001167721749232202557023662220814192543898455278572765542556274540046409153814044592969390454449864030737889699276654633602404225854140706420719047152108524417590298653445336834492774198977477437901099057550375481613654273595460373738644222038176653678623309685886662088118783736171303492225697863779191643039148847657510479309921110784496393661132356198667714842321747926202811237522774204345637535187117007510479349635748389087000512877069035809229695253794433671569851596443566451916090886415512355231523332249308837018457015256461909019947902902606929048027863367731664897329945229001100062441982476493908188186960753469454216032251966058178269251602970258823628591703504846036028476480702130504090484469199770865223385639912026040998983839359116375283243113763323940143597148323811695081386536365137429860120577097375054825881863008009685863727938173666138718990927577401169526083315317055422462559495052009120089653562293599225794307818235336481239561253455684604175622077186137971655179228557498766204662510480179738696914461402267238313736494527480033025501845602246896781042346691300422975289944475356646890539544677383944560632150234600902037846738636487473272320803069606667194413390790870825967374910600853951531655345292622103183054646572489768011745796568709178566763711958264265778875052122028804727722814336660945108777490374121718465886598453882701108219755763920996922730090189351916066703332857644315421420720515398709877922521728795004017726995545715778935670501482787419122893263983625452945073158704983144480343242935148238853743183068313279371653373186003970589825991665448545088197570934440889884008309152442093651566550348755980205525796849258590346195186700069440224378343460894866380320236816015705434524311586230702233062529601378336507933363446880886953136926955737740716006431841134858061527377095869766419351167919566777521096744505206709534767251567545492193450639602122387538197215336595506366569371718033360251198732118652474398826659679691181892251006501474260577845302567279863823990393876293618624972358088361388753315945071349473191836136938973269005770600832375221872881525562526832766767574308062150579335896118638179844758567391681084392810032808913422644325180965571766676679698171056808533899776478114764423186771397569396108907778950515890293946057334241629194464536943490334018342152765258064872047092088399939513618335198006661318383828430898966521310164749586460646058702818379803743886131201579617079911728998505558119900641731649165955798161163418489672649446414536641285173007926298384404316876166543858430137284387285211249799323519759841390001531299680451262291151096123648732623935134128753176744473616393299868615165653032565502957449741001009680834523293919415233881065340305993782385461108557358358554071987691597740324852722570235819652256803729340413810348711746163337403857948511522235853529691516071472832855846008860430317748414139445657485434059108540647119529124889435399652839192651620867528580173007443591310167689023285837122642126004140579435208597392234357891594830971135668572770853301093377321290193753706112299186778827856253548489199691539674351935573537979130405054189458502389739603268611677959792772106040350247108154478341886668674933336880868972588841603111231023356363196115584909313221216981494099506211948418200401529048781404081943160373704939985546371879844409092567236004571314918674379241041670658421461750305787746759236990112478599998660622365555292346298118990062648603239184812039393099858771371857721865728239690280353925625901073472747554496949898841079031694647173419039108195247151000602631705198243571032483837724496408183288699508036012296475714588513025304686948233611942700084760622964879639419358603003815781833837455655038458225407738233545855542573419396022156915654185263077878830705123275817947282709915571671800684489052764031786431466872297908981924735869561648040950332979400843486080140072744226630072111715927076300325470832969809081374165778329861331257470830213560325926697349390544383626572295833176075852743248129176519168585902625196988408954337026229056783215323031822741185424143311433485445502009756100342999827071499904411731664118770378420241512265956887176344850568639334059134076779874901890549776228458497309324515362169479199650392957742343396778660677248736872739402598742676571284502638133598830863283498395187663764506390569757345456053657766139714170087137677348273030411797766388136709617515618523755916892386453392795162625243748326674540795673564984186436028367275359509280137198399940913046272303772610581353867005764457467672397912678496830899260689535178553537839466085852013336211196234392861195168859158215295025022237573745528204659361198627161993756001387879494082551123794005161686751092132920358768013907131647157459114787422294506783523365170313484601607790929608154884511083267127305789801046793983360086227364277738701474068427147276931559759723714067935022510804246678207282543570316429416961340051263307210418814780990739882858924351422700137301928318946768460975821929973052824030525103967244886142372780893725937144710443682940406607145325105098555877224558566629154361213399200274227797819297259318485680421802599141282447863461664043533883792525502051667693946771446135627897136295782086297556689878662779420771555427512531538523718516712999740763893493710103531919814546909706929603809015704691321012582858879811298753677749187291134005533810611082834695679730021110386950742597957904199069383880586413077511032194556603477656658999245115993201505106120800745951122422063560866391953448069353840921345475038953845854303638161747595718600246114355562369746496949220673814953725968456960954372538728498845230585325215548429786308831635288359131217828930733777864092684699540470720214653517980580120783320211062569889021473302095037252830624316124153186635719065780160539543339951536692911855684876890211573166157359955587452665376945696825176932670722645562673272860991536229413626949584835661541501088396815806232144321517686497523562842412290789731470308432076156711504896310160458512259366934394331359402618587208464595733727254337885518782872420419487515622703576723460447970577829780466674617741823457055594760674842352466099634004610212270466910004858754064089329908271182435677615992194477374803556985510439814135224608061706134047405278221453414566666220424390613808041499300565722553160491447696716427514172920826914348914066216581841129224730903388667208003774505090591865561639175282390183561525738791597685149118315464657732250774828742826769045973485798331099058359337598787619611445009706883084058983010442636392513147149945296439765953077053235238101655770542291209036312519557228484400482141237452185311003147574759269222783970142754146922661046826742540958147011758651554319602533135292808466484179728848030548739068855010123770634240639439652854602826214348784149209445542214663320982122854174390831126609965098280665965931493627514709689370119304556974165498663341443524147338899189190448812836353825897649104208419828792061326251664319915750282236138313731497006606311006373374958011109303526420660263193350785246622229717925252885099527593041130071316605646653416398914281163902750101020414720770899547914215964759280145770495745031253626077065576331709049798977100833749250584876620409285015581969719855322054777557090398486552569484964838740587552375189061361124623724028538969964506877678140476607825281627492922337463764972048230529535433079509825484214986471422307116869409147008195018316573964484790809538808980966387343089250894114117167697103689946074055855423156836542639029310799337753424631071430536761394491911567966077344316490241035782066800061687256065875364455747676630979813765435525467615452594386603681479647836455495643201543470359378353545580184734187237059808722619973907909764081746847073635411028020112265121963417469672597066676210351691590026777206738507369066507675220800323964838189746179182108095649972204342320167850285643998774209931593498551223066666554621668737950620248504388347890649777187601281296895547068928763799462879133951501410328226644103734382054073551605451573026606061836713330293552205300314692031659360447250154789953855371659155217467774147579940772289685592647775406314712803872883336680351783565930205193189525909908358137389958248575603382288609029128467745385060032727504218880804607139129636060937107825063355957512954467040764506937076501508279304979028293159673709100519524301637960358033492883147933647676162582647791683841487666064198937734379875777635524363436911006835608668745646096085353314958587995013277962766645199896755287937696518151793411603152119239534948889666162853894024390266499573120052186494802682824613702070976085080045526699908843792886294517036115184284606607131647598072063600566443720551450927095117399934796793973029904938540637557662636099767691529771830064183774017615133901042679485768157901456193053985200473747338858744338802379449732638881373280229741561904474569140455353062682279755058154130098431814979815278404881882619951253068959094879586050989947100541134668742676596768457618057115730700277543269162113166962650895747053932666132801743997429079378570490189159036875235982510909204517023978803734722024369118534660871442211195316071521154163420993538765159449876622673237063848164656706002265052584005270875459432677668378544118506972816164634182709460858106358890316950473701609886072374123359149704450245930758736618009678577955018039443795903883754198788123594431209375958949125588982995671139436556070488398111977604225557995560969084718857017956853403273867920727819781810852712639158995617127473287111601641722235299232583661060317423895790340572734969968480680496460493116366250706254353337890990591065132378799589155105786007069656253688204955534591213431801388017047026787508863912653400254397252091018033173249039901634182437331469324665889135369862970083746445185365589089267469551843552338126197786822697610218111889633640853227456635354990910976835073518081414675313397763199514112297303341781725783571687863553770622647245400793699641155811591173452795436730649514109187945043050096826964397039785292071872092001359357772361879190378739531747177797900356726104386267159810195852126122993420736083622245120797526841206051055323526056954601688062741510002516101575706500194836912337069370935639313742243486459858835152634370628671647362784587571952708520586966954248334087094634352874591453900626663961557934135231028731317531407720714917430797611202149267743520854494488964990442416763917314918278262609933267070543841328287370779628081853795235843138992222148316977909636134718862328754891539007980047645279346097199205643823239559248189693919680179092142315644599117941356794131159950177355170531406351103945652253332104857833245668772375748715137472909437829847558318299091285672767582085652405067757683372296825687015319345522780907808475711511504798051313258531852310319538357947202518264076768139331131180810736644626961774099655918176566984931181416705915042033531669690683134759264593504009230724108244696020137597651294755185235256070739323685995666995059315219143993575945682187570010421345222091957786880862227887174746180305806722441300113457593983810115615256024710771930040595760305774981579404686748418356941983941420114700286804049056084952937167689471808467305795344837993552583236242886176002964417541223699965412403598339443547756067589239399710780957644034627951809349665763574487229018951885609907590737936587094792809735081206456184989983432342696308680429662746340720022692431589574055727506026620190672033730593297030773627791455225891830675878866561584745210102471103143162383434317474736680357475307749553995852016857824071524092917217446684582679145181580820503610250104955358376611175094920376415071340963073734276251775405445962834836425718892136130929992667227686045158793605465973361434248768577085168827921169755159191300580321405063622813958351889686378332896563521172066576112664178504237202805781151699230237181824319952463099307425141135248080284532816610374417999646837141826700340771790559106990443464351930212437793452286310625510666973046621464408801329557751799284427006091700892004194905224952181112802755089284139769089127434444950814158911034821837135627521870301221828449127642943421598089288635576578780465541224723554413998404303372238140601478763874879278528102797009211837348121284251462676802138166728857894356225346856235738889152584397209627382342989746866684747145866871648226449151525708815607569432603707497248315731982064302200739743005404675798536476798835940996525040224252862362138827614085509213108210860610923147812937601777106257715787002530251802806952659471231960768117948242322040353707337844795988039809463613575320465206252015670193705238930122046956640931415790709104769995128836993624522494018176741611218976742381853258492586505980764293059097282736595481865917433652658522701942904659756376535395107318183357559663703222372468343663991339467584653428687961146364144719519025282825227610497078614407495755035629992011550019058774525792582633496281075916632392941862933979258811929422002913384410890677465895489816419697250256931786811269792273884361302509594055553481677706109088562504109777843202483296957875720240692313349057619592461165626544665757672261366070115154495069737771262995030947433547551021643114448906947974246631963300937621521063167083095846811231478122751503775401754144277395645983196731666879928051269904263587728205961222849548681766906624692409673139318821420972065626039709976578956294615764215541671478766446721035656047989760549906108770576443983959983897614699620654641476113282273657944270276813826551698244572671187918051121448166864522522355559052107306570406341997246696807997544678523799265790511961111799780160869639842642705599307735517481002278898140424157150089293647105396517530630632931110769349012682257197136243682551515967983954882808211413445200595116985690887344659239771529021570864457659084995475865393437003423059397806116614328141882500516279031354998359175569529886272849946601522540056890990452458246564533058198602360344263500795236238254362719051990615220215047043777659753493280553611785455011748606221758681134437448604170583021801896017313448981968998572149438271997293535545816888804158392703719434172239147891895542789010255494168400612122625788526482658873904171165450092309551476416383275330198612681563308622256993436509876052616008372323461103523281345501143681212204472885032004914284014371691176179092671029717586353048920671460619857661084209769745889806441824904937369595856285978320006286596954474226028624329725438519956062825058759700116413155343732439710179654196025114886032627247556813091951906105292934295228872607301126100269733052172281514029231808014037358945812972780603505101612541570213443225482828281407003423669554537253019776232397060074945470577728129374999593900976911274782257623022533916772281935451417107473659977034951847646345872282755722347873082973085573958806624874179036948556984400341222984825426552171131890744985774153844569736123411072917008667204911575180892247520686915619958505109579815567732844438507172224455794713326239038440846829061058073783226170134137256876047167048121160522920655490391631018296552299635036037370236886331256658615918670201934878597956511301405632301144873826681964621603132761714518665984728311641502203331522999370155768990028379291632254970166998505144158760544497195192506283545438676937764617732156192224304524101428230493551507876881195595747954731786604164493805794002457795454678945624663965818106823483077540726148225966173344529071438079149422081716985990414583452501341916359706327649403764033703965808975943112558744128842644799653020717265259970084540296787044592733665658042106390001217150025720459749299897960146135098784341193328301646084729964090894897736394856161606634646867675963290540010512505845990629209310467687021920781245109924006566335509119089548341260378750556955588022521845778027697069007132082669206387718709708785312727354690034215988130366627473272221383115295216523788084649593607381455689835554947943948284762949852025434282888347253260528331372153904749662176761715089341888805129547189990341717769054987381912179005338163484291580866736703568708008631215041959021697158048541175407723531101124194179667534215315602334210259317669368949813071560200047895500050207161993958471937639546280729837703089466426505211825373602388584389568113916894203571590736479378808989040102314939959059276585101273990317838355923745191974072741250056291477937561327508263279861391296742895124355172975997376652307168901463807567509344312317451235133584795064916697488353348334810312761805413725271228570488639182351823154051101941189861073918208228754539586732371447436412181364079043533102553565252013862025144596320548434078119468729730864394786996672843794766926076989357412543961374906614670472863580503838344415805372082464336533430766065476907559346694809183273814561288943321611900799293220529573829726256287217571070580023008366279004786076580334663908508833927816929102893537692090540508941158986353992046885035662413914219245939889090497119937991459518143250112928495750505237498940162232131095716742315810798180804663277705447869126121775897207313797350297473987637295060615786831131879202546086465892957373930555451245605890427241510080710801288982149680685489457333794015627339778004866387583989375957961603943571847759462202786107955289284526575180631317037524338509262265584271507402898457132758577428688600041963907587329999565810111192202190458763568996923753338999293855523947629922610955379433538502272819390031594515667111926584444447281807107757113989279916703148127762241122205325576253794908023665433471910357851687082717540009344228834599486497620778287655888886670870546756692466952111587965866462611005268237766322627486609391984722527915161961165695954014558108164930144807521156137359922926892187200109454860616144121307325899317860982454219835806471643160290374390345020720916282967122966005991773389514183302856708825683569603986008675650739295131723148285439866638965360343024920556671159854875902517368013356473532073676848497253134323567136760944309208213550305404294193304606476665285450784571119109458519884252069162632442928050147493124379499065529832736465194821816105049519414594738195198367843397333171965473793553737962245565362681461634122508782151905001178514139827379549164519451403000241045979188917156903063264824578541034757476955183623209459479690021221074059790037432472880937805047704241184457282186842766494854885027012023565705441699175805341725607646875713029740176337240909935952436611919937977757124488588628785687408731267860319476157535038116207977548219813697021175091545670485791333562215054190217992166416376818273819496494696676606877723856858248634631389184942861231716546401917154417171074790667815485481691711911946022930928268858238631298891433979333548667753284506095942329297585787692752452091082240750715020557441008010038828540775538666632154865147523688356637117298581734036727565695950756467149626564919868309891384401681374115020744619371522128542487136321146801387497339040686331910516457025240146915190676760708898824373143623521166673365451506694045959972794745263166039449019559315749926070430215147771020554512292408493931855622376797500365969486137845127974623566330840111058401679500303219561268138760843606333876175514843456122382163250597266535638800607154261778805234158300976562932568349194290080943429374523094086455105510791932122767877873364521451936684350658934972312495730408417611458157158491810705162415201678274531859670601950608317046547394636543340934415946121978016113294226123453130354656134391856397479926772996998755540504050667905166391641878452058306942570970308579598840203892450506262770949105983237268422172377314903418741240351735226042695780934933943063532658646219951545007310297023038869332660879760692284228712030473707720846104439612296515808670014429277664738471761848083755151992392288725430691404782630854160060284907139982753117316720649473868766634676899235844736420279085594171432974340242440022208499789130142620814658561359697269397813700145937256718645532561985881422885376116862121245657663362269927565367282170397381437686382803997626716322722440222884384634382496955868314347338415138647992077728684867497897944145416997008626079539448887677764106658127682883007917321144589166959909071608358449579806740931100389596173680514312152945658657875747994325693369769925798207945177267926617593195937399141300449852177085395044350194913039445871325033522877287448700497160184485989438976658163319468338328561205910559336941505618585163882380847213320016808486664439962249323298895064966780082551940519518673036581934804213103686409107232182267399307409406821752274931652254336512813903026633486723405469940069894193927057112704605596307538768727747805532072479463481503837120297209033964097515580306957238764315515269429874361559728203356527127768863956065770179227395617390684212927662834004417487390436844388031945009371861949951914294271382106882228497644529106493630967569004089244085391857313855857544868035814052067102541153376720856632356430693146676922792089880745097444357520188550527696291265772347189576588037303377498930481935168052465692713926452757686757963121139599043460055457879961133114438395026758843392109316079613267628144556441727777441692940563327611110546980935361159338922094968687248894127510417482210331735739759380493526409897618424628558573566871875697919072004379417196093990337267430677685022390939433611035381517396967760307230022027458619037570232123694190977917413431038079073393576837096802809023969897967437439662366543330894157573834310734423512373355913385982589706453105650739466458741101925404112197221349822193748292270749931889624633188726611591163046230210199206226004902974744387524119064331761912358585789429145968635979980054309463567499395387755786183760189329869680806926434196036296801727920883405912262313873845178802731915929163897720057412711782920134735062938767253410041525435457430055785590648015038356771288713713872667120051429047008941966261136001690418596943085255814820778179521978825347841982988455241937252944028209338443949543110367971208466651049538119441676674823136402639816112954811557767516195223263517655129573738608011748752967092923413822910189993301528373331505584482603670548867668639575502696368982010223987365715238752389607490655586757622584426487534580134624677551780776699724558632488845758265589099662034556752718066937367898535146212234045788501514947262517168735314234937032662768075844603834121617108632342093324398905288682193473134084847481693522489561679587432064560512335957304086069547963580913933242857631004687525533332171783847171359789027952706454062236279283244373548436156332712699838145633468668584454218737421936726195938139839683278364719576611841772969838476015954075404668972781342167470082135482729372700437194177828236284827387135860127301665324301141635504818002140845716897895675939232402057593382883705619525928511507471305572777737139639863642924604897066847222327108943389366823705277872498270597831248689903686224225242651919405573204152575137487301595654942219803042624314886120853784435203516859967054599809324868903543611202754943625115533428623566409937154524858460090107071050434236874930117912690831030123479387940894232800676334261997968926298410430963218727460681100771723266397357991336075778442529064585460112010647826484681549702573321779440826081728899613153975321232127475576811218583750742935460996344253027966104222219595026320382088856785275362841359454884368140106687616162060397955592379309067983931171754407985208572873205869936792283213098837672116964327468634171515682852426839439155950361539437909797100250695239618315910861931164616579740012103927427421901438256877754402144276585716637342510423238366500354448409627294137135739287579966807676264665910312212607273073225069519310820709682763659412886037012033241523763434959671893289082200642318275106423718358770354938447880571064513801252650850978446775475854839315773003277085536508399638219973020266651156511226311962281548542538086785516124875952336209781845949704232127452351287585978401360863472429323932741422240981131910367922574271813685456078318294776791162241333759706227044049532663888237130277631186019926379192860584032076497693980924218597419184197794032672676756097347391614486478065784214212902349590554736829756346326718823961908292072485290391298812481515501262941945417868207265135680149403010252010983959838741886317089296857356850154309865271073459185929295918668413591010762646785653850590171850288021845520055787214846966408028949811518995499142552290393328564591516776264943293299449665093452065053315933393985608636049125122228853671648544932246309568516788279724500846150674956462990262590291797310350314016357492435309134154020788835108871289514612285093963970862381295292010727475151089551229906822985630118144410262366405863657211633113353130332504519594967272019176263441709461497165953915477522812533515673897604023296229758007169594181536347874967053098066462215978874648363670567787835513869434956208111285806170097644845695517098863738190083877037929842505356550792223551868302433631101437185681119253905968262416247911536269143524735112373976542136098819044055157572128357722658683341399697629106390853747838084192462113904290332629691411362031316127909967764512714348505017235975190112001626237857027853253198317951097878650096323337051239017731135212146429002418297067221689880188580175874671381835902408842369973259316194973834699807008412190986818326676356530416076935484516088716194131985123708331491490615495870366209520269878265045721430881953239826471894980438901289494648773268634327934607031145417733290053597454071623815986399734124880365453706361374702591455515388195822640063582010656144109441437364862035333429609139689132171354942391375176933659486442158430112962717256162950152017330320833153994548399088758441449802016262040131471384707977773557130768009733909094491304993653795648104259779309866278011784342972565846004490407721714504074396513000260105094424048271041948352666764500227007981765002879584392487595243238033249196989366766507231026052235940150175512403896609543667488359713091335918058076836523685550840594752681558051902759367476913183526900319435683899963144290830723691051252565881035364165282197277747244891651542597940583964882357489625290690032481487830891850627736506786321910915803640738869458107282680871331674860218322075151183985964166983366011575514286311657830315800611066091823930771815243581734405471329124510763495500895130756006075926641317149471384491509437076290271767269057638055658816798891172961917476756597321906018608540326590770718734204504323900763277967914077212953388893926941183397392931038077734708369773623234409668917838885819502509444970016652886209043556793232603196972245137991634368188604883220060366053589355683850121125057955190412150549559288263786559012955059954301108491293193822404044261357839073384308762655411504700817088772094438737403626324855201264376616014159714095992721619489339041788713094922177715456386836557511693688473980935789996835956275522985947005098470818204280207702834044239267384884244055456497445324311100411351265898735854204356461077214563454151121900674546804090862756366182659410910144551356509381214770997821443521733942741364900014620607972349261842144466324879367409505737815896071431892242353195456271187022574232155142682004898815019289894822749431665735607503989960640056417623507425677833769258805083037415946046045463606952068042202796745665344909685465480160308227133398133190053321981644534222170210280422056748130300259605636866002547814302932002896665618443558760384702625339308860333752019979381674396862410717434323757009252592896546635192060698754086105190853426966816029349526146831522704184688049614540434542164710653950346099528974681300670367158120240896257023402480487138899144050086653755638482607249768861561736857408407451152264311009726576169399435658397107740070233668981137062209312317758125104564171067129620083562551999907201178320869594561553284890142338585422545806859022936652966198343316475080228889628535564360049811654440851722053623975349204372629612392427918518721417157652919600752678554598089630858484765985387917692816596273596864869739614346485433470269949739598946322160602877769451235098107196158573282384203837392815820452391218503870145188150594472740129309560765878318078825686575008074390901378367925062743451701999882220814895570246499872848600589043368529010334976488508420583278638384135648405502925291598463077754299651279796273719115245969489380259805089933795059332226808778443852279419088344841058727892611395607296464745779724610982264037878187980828647090663520674605169445163760928381634760662843412830262130106568789730520247059216411676340052396210768889177148505389624008849052134512957480220760320330855878451623713106712507783012005022851273598842656183136439399688965846677091946499563341819772534121500988573814203738732648487891003151809072352682517566888224091561425643223374133308882836653323206082076450129084516495309577234402100899629620181332416187482919710093080980155571201730659977005525618934967330011636290551630384773811263493641640868197685929204411266937053840472071124145653346417599200828347809384511231067889383326085872675100967742823254204506575202637691849840966983032949064504616817493546027305984102629213136799586882395265455140462944888845524287722759687941075301428354579146477161547743432410441301871986745103250374874949728658772871818434651670201489304230478337298739037182364204795221091300849737268809920829312968072973173401602120387976547855810390456235285470465059593949547644923660145957244248134211227868263654115351334964661675003900289812295441582167688165949628414966343974747969501690993175409336706228784501740416577530195624166125604071055996685857089027511364761789877680611240107007558702520232213330568288554400715564478291863110057258668628995406179363432806388969167796406771378033946754379199785874546001923022509887973284197237411997575746510826209249422933703488889529293805635637471917056857337413960331336088160363345419980332496660141407946602222935939520484274938897732707644576987717783788216648620427368915541760880762294520983408116600117521853552413270336627447196520503924975040990868974384547036795908988154547961621272804217715189622315108031884823757285737463020785447659919825868147029473902688390585547924586118003334939315569354512506542591774760479115275371636596692180125606254031775729615364126537289381655883545208252720806364734361093938729632878268044020394525419163681065925073834285802777506399346451183278278923604433950343948324471954414999410602462586553263248913311408103560252031376505908955910039484198491462930113849010566522887520064261472115316848004421894917071410039122896342419106235612122901156208381158441636011435480104312308166252178475101395967839820486923059215693810384822816607759181541020527420084677148392618387731889533550740971679351036583635008431150410840423771779124521824995926077957613996637241543144215930772244304031320790128578425287671284889258799312720831268691649220685465408252061742049482637286684293615959397160388902794785316617856914266582542483162043487518606775417531517356182160308922592435141212756005911062793800387942221898118165962803064929392022217585076903787426040564513424497609101324843066456879092735832187290239718081141532350964617551521592442263726665104494138749726568531366436941592936525720697023244912635904992737140827521303006653537705663200359356645783362951877632385289062920895739984811054262719528038422027655198467066043763537115606132776589104766257766460252368768529994595204002523660065211178847655828106520905784401782985656957018946133712828261646034825522968295952678699308541906837936226001031074047497511144154093680519535190799413951585310811130457489009391805575247969066605826950702433032334247488468988804205810830992338823146880613008435202491391170863336151593555097749729688067404382584763335706943145987304765821739920916130610041217505877990544912873039107490223950512855385717676980471530948210719641664669634601946048236272407770693627122488204206205958645772182724433104846340177438174229454794484034869506184180893806311988368218112891260767091993694474625340604950229226943999299470054533849092397524725944480743530569132636981493421680743858445225905552591820640834545996107924311991175414839550799052582663967342429550276259411378924025164789103268925995618456444969709050539182267987550211382117358923295040018249358913741015903270257415379918323908838242306960880031564625849562424207010318569528770215819377590652248822940727084413721661236767734411191317271595446447790661533130230628396012940171520901427582687750543359284268445351082836965795557712629572027583316615294067675142632908185712694875417096718902382878602722856868337508278957626478824369996512595384669762105610862476614203283057756081304623931197946750782517872951449341750586043870161351417093595785802400581070130962313464485640971986504861917103886279429933182075463859921291427325836190429037789651902605546795721375034623602410293452437447112588756010837925401705798139722988115324062210105836670902251056270231141041036892513205101171840639982992459500972989496868013677003788720996932436301929744483494971637579831125372015422571447855655064442572075188295190483477644990305722404785180840429189587728873823700381176499400722319534346065980595023068600084805585947239599056171931563895033679308415304212309193374431787655195643157300387779411637425795562796754947327424447092614718770930727452134625917571266919075046221486851397420609618862183307811782199884845689360234674895450120402857574457278590429036587669964559781274408043463855455190604519041109791589404080530085480722575509861923098666319784657167912788548476780615791202974579583633506006806132707311998794841971548593014492031778678583081272770398694984297760078997436108861164422637968141127390126478338579954105884092972350144410945190195300759331424219620477100804647528252821150014317918486623931420591655364291342980255795148496570142514357324819133149741378894637072314504321945975907058513919767143223209718995260827113365649148473857603482530109627338784754126687187388730793069203571562465347895388890900071436918544261807837068238423389237065198355415076670859044158771209418040818602838319155651088125051682285616264507542014812176929078880518344843603934883480589451269424674205349133382031388028758827555606352206418878953628527337675586821675051955204148448642283349968164442990563980952589572606182503356347348105059779279379592648367640294290938911844148510902938866238666759189766483831229879658006291741944090786658554141096695434440897400850275575270363113365254061687775822239465466383215431216641371899098151591815769058257889248469568772717921140653640801476132938002470683212943441544847034714557169743175402055750125896161739775753666138547442360572129791399060561797922490357495851101566129428765068296226797439783148666995578857974067777270016956890813800124902690060829908192590139891393726533853236939593215789956867935202152268061223931544109281518841847546708860171849644699236734115930524327274544544139300056696358182116600264950027168754923290523218879258635412734021150921164654477017793769989605547053243569112071153822787878284518092051251441785876350021150803566347438073334601036626632001408933877293263932821518731055939416728569110896089528740773652068029603845345558073938096146262509794697384271302040276713292431769691855822033489450980173356324636545284093602875972626675756835274048069169389647175331612243912936327436646711631918719429377210568678060005061183479826317721874957608934067762795064159274799420496058855034173858310653548754962688416830806171241721198596502761950896433163350572618384395593985586132940118510966322199823305825581834533482600301623115046550622159804059994831135864432259200818031337776139146197768266050917787044631312485322220367912664702934651107741922933584404068435458980417579356473763483611463043730237874994448886819861971777084455863099702193122154795203849517949106537345026119209500422235510502743368240949374243658419572415288176976159914421106355724364137839551575791123187708009862862615276839522260482211937357947335600848982730131609941314644792849230895024663070167012947187268359092761957228943185188699995158670908403946696317766696364564431484894801596030095780012532445951507212914539042625122011219432266360529508078529550757007892415477335589295171476476419895690040678383470386268157279131119046900349069070281607612868792102912474409315250331708667058811482271423247137881372788003620453004976338060667880696885542309575787916357185308085747720793960864549332886731818343891090869973107248301052669486877776115404251998200851604131668420509426197815635807078783940780399452657196311896316625313972648815165891915330479543642749390604803924944541407898377934932951866663958592701993768348443391279169839223814393399545954570026130886200458039669973613849421345120552136335692118504409757919536005133803242612065732298755192157431963069473974454832329905623956545380903198519105948917636285122588123960793151505230828051115485375403739123815092904013007150189013453972953563637535796752838885288628831617988074492696909169347613136781402116656448906772494465964962668549576214541337208981609997121593634336519093547290390592941242201016556137033000894705909442348815055037172207117947076035162321432097374554275641297351480191857937457023778031197687973044034106727397032117368017097619564713930409009925742629681795055742010150852983675555785674996439373115428471414748014606390042443391358520722168132785624430152093522771945688538540426850197806657591298680498024270149783586979367520017812946200415675564533847693483082659642477283360902135246842600181722797077817963245353398646227503938862251541178391381995800191008707990860303092663774019386534023521636704008466271019788585726555537145640997164414638138120537992645217368072964005944499419095361196538772100433159582408208386072857456013821644506114885709832240199088428377655034847586058774141928604003614779946601861587941686757072890100290350310831661959813522437871925079610629882969248653280586896370102847490234030048447639827862102287560595490671998678013328112886997696471594332121978031241779301500010204462977010156678890387981770324664384447073455293375162322953800048200411864806975339687844143659907271916926375469530946109727802567562053795762629684969376239475888914878547366602714540955191512308638014666800980261344708095432936206211367426458948398491599897365342846860238851693236477592105122009224512039708078901846933854871351306426656962123915454208182712800319773875997055889948272241979147290685605075795420273206767370025977384895700575928951415791265544746351120436458033479713740089026345111616061538495631347380904518274554629612264381560961195820114524045825570958525383438620951861993490336978780395148588552745712957132228886262449178709920650544971537924013149368675473758894317206804082288687324650248491813018633743797663007657321711205645592222963216927683215975448625873683687547680211213053750654547542867319796128170165689002439458960159287620203886021536923779753511436991526732426984349055595063329237370676630579024483777174679902922101720292862987225360228054856608961031080069021279248256306388401053797080236630961077750017770713318391092090759804889576588833393409606711043844053291492816131954061977362346091371365072115324098268014337818443048082903910662142436004042079595470551540421380257366119617148554553215680944048582543396480248124940851746131479819387993554078790922427454443415091423591385835674695310949620362656806409413459963612512924447625398521444207205270849736128630532496194185084005529834123161218433200112369294249386542954417557923699744017393602079219626118389428855888171953029995228937598906321257183241944596816666970856958769274722787046780462586032615860318103708839095652518829315252265760330992399904559110299317715476341577921863059106634557452782554217533494555789405741828290374212653499354657754701595747701911071884428341764405269875255218850105277329917209011743112444989474518975677176354123884196544166464267733249341093448310318927983438870801406492124507619682207858110148769292478630396385265514819461354487759883699846627501819669274896771282581014637751741005387645823589316431174791305931677908232835838124424111204030281897681181557147574054941135625506897901705302305715376935362994587559815083461581487133931341912315501758792558586339028280544288292162594833143410250534883946963281438145843939351457176738267846866728469793807173894361553541377729571393345945406701826397373417267951102751350749668255357844188382900668415095706107035773856967067090983571633628160601348346641102656544720108745032400555835664019144315750326344871786943481496305442958388939075935572888213494228749830627874941675305865494254049495506479404703365757671336498059114034477122781538604899383819164412541328659601287055633941252885409403832102269298091373107676645584028899718195384059874329789495509646495811909564734500957362803934974554997973829180803221132824106530278858798782543227963623141074208779530299706765178489459691602051526234701091742302969431647602247744823463902305558504719999163127092545846801698937315115126181391131095773296635136286640592297369801655607695222999268266169990524334581463615829556400478225722009076186787004737475656462333551104741271209381067181272464416998164554279447444405023775111745118874755774781208158350662772570707992950886625489331096736250228763507900292912022914150079080101377732271605315727852301338112529674723897725790672270060147854376947131600628486659204691515161359577009416474341255652777027784385162919810618694653072003592249589635678766285049888677425361335764285061997633771178351525969235714519546408485439025174707834502431970449973958921661122943586084890665678443924375700087198865349025701653962788792181904308326001137776786925924381174005617745131293086792161674310155672972206414784324855542296161089966662588032828616428055171487755384120896267129533512516681767569253967883376416974858393567882948833606464058094199655226245222600990349202792465524021919464671226891896539817342829454136664761571620937907478859204790080967773759333258633409921412521829327092661180015573687355966494097619505536992019787274064357509455314110792998770903604479651177696340377962651674491544766878603922774301298245073719525339968310887767954574219247302861584121941171847884569105650127023435455820989674614694669453088412552490542934214299843294673376505149582154451075652657012972979634365302129483949118601779596136232367014355375924729952904325771412022993700443714122611406046895706265077048672982329408378063769544460341939894085622603294964028515292168181024679717314472791891464108053390838180937034750071514171817890362660652924434815678929494015198868036242203464406411615542639652051801909896265724531654384851930948285758666568060268855938203879225796527639016963326050636769568258542405109404729508089359008205646390146549461051791042617944973412888095176089374284587898980696948859762852453803394307978443602271027133600924549721837124196814941787248878108248453251780909956984168124806012039367506133445501709866491045431761459754825939331855664123265363947604487304450909998196601746259221391729986399330704018097132622271583882861794324740525240544872100326640932566202582913649486636841027092708704759616742831131197687913764416171623285268382388921752424898798014770391764373885924419125893593682525969130050859265728497404781081298503414887241903962116516440477469586179703231503703572839649098461823662124315991255172118414495597157740711430226559622619079156719785195674130328127968050270144470220088516658893325276944849066605867523179181597310888122318298443826767402564934241739068821940892363818073902266396997109832795400844802351437451732212776453675860445679066380681328357705207257278105191259251278482356363303456098606162686604131411112271817599146597732050104453759297071413809273677643278140567962296822669166079404345277060465308792189051637114564213692419167379090493750681542961087663631396056155267493327106811710568497315251342223012642156364185001165853014108869137140991071820975481565023821702933455778602609478206462652287958576549343758547324832348555551638876829771036400952462247508309530378287765243759497940073391435455543001856726043616468885129291682822938463333708871880912765685544533528728815685847273783608155848021578090584958755035335232488608220634623257052733120676078022077416058641384975963458997307747297737118787166422609424508936822443250357751508550126670820423596686432245171821961337410091980661796860076488295673865972449688915312589393790964873642797279621377015232576883995506268704613912994151399659959205322287063824640883111420691405906800011812334019008934608492767509557708299225482367598955656949545123289715458550051002128649763074566064250973827255872031549928678158170337040319131133082161158912465279731455391927170427854656535750012870345731833297932365078940018339100797060862894842994131731319636357891927093468695950029834657853364024542925436335610130477619539818031777558390317523523305631544082428345200051726037182537548554018169848910480410740244425449124088429581591021520166200842025032017945828630709133542467538023949335008856579179174189199400239460961220667856643717908313016698465106989944002559506737571735688327912716484731718476954909633861232399009648713066583245386906280467778084129092684396832326985995118956142612982501473404590479101810424338455063437487641255961711226897127967886278590682364268965417406435792136310291717075943757866989266949678406978116936906038586976605333292260497408362671884370699335598898643622631959908358642870715934582927180662460281904892334164596012093484756509359291708622687656272268629486177868265677569552313862595065851264850006953922192638251905635591323437973242120232859537855053099585074689207895734164697714272239173807048121533364715198409246016444257091732613618148147426262736053176202362716473292742000232596955739996167926951961426171290266031549902659563451097049534872139873009598451392844002634496048736982301310602064681456393117114128624886290736329343772341414666597028070405264738077442712250851853211268047719953748627919480308156953564561301283120920107017245442233196260152130836000834838794055782627769328575432449617199467957640816825837066517317443248446233864583232876978767974161831954712993103615155205718202085983224363862298496872555559591729826906504339096401484656567878167150630969284408002077671365446105624355547056817060691941345501210024666797376787302973522066886447141765548850085283827987670763854643001916330778876011365720692293982148851078194782051499139001100750429527566869009409440438991848450905311190974901926293604988461132421773197985285642823361081928995729931650356620337400374089304015708823300326773004344953339505183423471949009639231513071010360368968459753318754612849523738836507798314618050783128192589071456709098463694021630167173238545485445200796196830997875740647746907236494256871571114632297062360703735159489917031359573908075422396231963285012420265740443177640342788471204584801669993932368032265763841692797621580066139357240095923752373247530545989942352076924936459505428537251629937934074474347547034061416441246745940597812439088745760413652599718802685672237867769278502215399982862626940729819782567458761972485085839358350190416589721788574636950106904861323856781008153519628715156785455301225594154430360683531840241817594491796073822677862987464436876900774852668324434976593319826786527843574895943580082297897153638028208556136008847041312334162385085011570723538985401336272973418687266069655295988937604150795416800989661009953810996356510346288882860721992986613170008218406659436788727207346883188086033261281701134138349985630349057480693050982593771188858778306448583737538470846551828489442893843579741525460999080767903550987835093098405276345372674171869131997266150521980287694252507799873687498760342726972771662166446853658310984515280956250748333758307323807844663210750756279242498878320174718979002054644037935710951163290218781143810465953892414145221212167186896754086253795328759074918312106744424092074019512291459484436795267776402430376675605895162000141731899015450387327330603185397034144436538730360800014189604713234614155745108090525334685516368300451359833713217843483678983505660496661671164958095679403902267626779801149943683434480613257012478814842157361293843863906423665449523942403945011876897613468273789020342359716037177778419797389358406668584161020535950133228570017299548565378184192141612817666896873844507903910556931931240567370757312311504385330657360732043691146924422318750945150570441260441079032849062460629351923154505638512728947859123994037498079496145009964973404694847096886235089056672882404170401975064266082431017143087620361227382989519650246946179604614851627670745084625517203352375455670974647294128232603032339227328974773039289744290044234171359920187078784317222453463747559126768992104916939015054618405868953385963202434947977018782319699689488446849113076732815642719132589213283575035073574542487186418023081081102426018588905648490427649041623840730215873474987836044145438780915231926814287742649444303121156855410921689809609459268001018686822315978858149019577587139466138861721828853525297414776261690137605107120025989600420337774871023794546085437982796657310060221714539346550270775655519703579282810212337205800679815797409227610268892248780520950027867985397549550630969588588280614797398027463582518737207442604606691704353995587271100999615157683137290922977673401348089457321248189636568734265210059415346042569353834019079170413208069961809665469602245929245531238283684488170983101298669141093101022785765597199804984523285730662635561823018559173986989565263514427057561629982195755415324551018516700260776334290915177744665019051477516584025443391733815465388624026271560047675298744397922349612464488328755128615957711316612853483528655365464302455032935963798639240975000104928007858659249578766083351251066492664447481068152554307630959592195480468180643412354847089415884710943577872772893560024781702555228123158356241347652057867179506965075163165167007883875922006659948724342556014008452667852673515989740137845360516367720642989052034425539957411449429703321116375881077981538974017567853203555791205944421606869344095687579155499886164794092607216074893550235896784514664955539104100015654622422221416811177959579798005662399085390641935960571567259239614711812860220396119177668066945979210371439890961405914812313606037015616465609347297523961686146783800610226229114338387866871715683801877276408534048092913670831741700244904600436303743116445020201994456823389703841344174449065182486650590418168339649289507885124032192314020774760594148827545942507951364802547206665094575474160764499092467889174880829539571166054349052439516570128777158517774064432957391808494808190004935870864123307907264703404114579207595474634659962898775977160262963245703954907595428265305000853102967723927752423352370220321329846208207215892523021712213484943476459447105722660867481905841573133387540729815191081451076485829904639510721104361291670626451852478583313138471929787468404468162379831293681451351591048895172001575458970608221452220875193457317804205247494128129556263610081630230498621855141363797310562667978182097720804427406541912888182501061700727845911261141736975215822337916695405976669633938224577123453375228043182550785024019044720437180643120246796909817666741663471934246828917199769969366268170613148140825653915450676362113200560017729803671546807663107223701921148838255428051381061882912570999584968311511136977527230512196639252022322069754276469593385117222954557663976100429247552644659391023785402583063131861992858425638305945895039706207146089528851475075978053792426665447854809925458041275575954709020720701521708873559442353817393922126347129045982140322028098882779662804705289545292236602679199337754368069483073689765335481920766984008115532827244603024063107715280588444137193007740312852667345382143853150358548162723477973671278056676753458361812215822313410358462012168678179128243688788920323770626083593701059176700326619780330349141303080952642235319673304038896273430828005883119735311407676869342307392894649392046205821047150052085633559061464470393230584685546927223344087369344569217620241184953081067370758946976509157539877789497791913274312040283039090660094168615761522401683081903607509290402194879337053497066083148711534084014006970204154076790454749831337475983985610060595720366026135595046073609115534008209916904130069559627658479122730597110438811198572782741861094578573788125603794694930462388810038248155368022018545399966107175705913743035422320823822125744691879004219673216137892711747261353893707594857308085988994956775708417664085634825221208979268130503588965973243866052021658148585246515869090298920130726726558578750132995621569478913618969535996968820427267199723260518465549797052580177889652104977710728946762037261011203006843290309352529025703984561775831402288225370272340790064236666851125033384966625324877073930274067708255399593615633351656092393004908728210580245397240209658043916422881316727478583203847094685229430874523315688866762849903909240983480616680036552588420840036694562540268340470400834774873544582074164484838236139646072020135874739604533279531812905180575291380310381828080427630411914209590245130701768878602006834181135026605307299996082934509193165144477323973452299696715324443316376237970299034278725743268367250032884363872196268429769949693882233648725475059568073506782721444830877844119453765384643980982218057964881947902085177857466368163775418919344833047999820352344028658270396285674019213053091968829823202493734312858614720643559978602745296330582486738695393087028941069985926943720225228325320389724596375094991734523444455933466666511203087158028254139970312474989740328435796280865257216755033058315055877543776167832194731545959415907879375947463178163084462719794163573755458014828203866251826075031820570597408689428718424970803965319321298303348671755366218894516193822931384951373089260786578598647763529897482812543969958395466785951780376577296791863407437738543522825313667027407698019367999170701781137049555996468808173766571176445897655644371017479037751641806673872737511894974554595217670360648273335670014713416291490070953099808566609608740715467121751062662241625652827333163214639895487355559644136834482313073454946380052168154365168871897361355868324414798543728232199674146519640476776528346303181771413728622434527145391996822153603274737022589620663355592169426932779137834692233904925455002937269458676371046223694361387012192753841143338751743489840918757427335440333037993663635406862533648271561475901073869674685299229361559162131598267489304833747127869992244985404698536796895132378018856541736759863383260573536950457379637255052701798252487295717936688768203000730550360138335456572969208047139836736317837669324680983233498079717230965629079915802448450930878909099044049933713799148637748137388636776791385527051620760533978937579120856387467921958648821033011399943009181562829728261468951855574127387865392463012514584646422154216669115387785522178233205641547291829142538841378650689409538042350586903306196300137747957203713657999303294567820870925204645109251266034077842085320999144909256317455274166979652875871835728781777969185081131797828867305049618519858980205488817207938143514375897784021726921020356109563667074439808097298574487391710486705967367178572873073904827121956547791773897707360815042319328313525947478743370397064001811130583788830475571576582602584177050919602996066870936137641581598264160184884735794926250198788467141894123095391261353558941117055045182523976745685188973573240668423916411372129091531143321323417696652054210008026002761811126934753820049460953224058755951288929143546416384397014913759488168817243593772802818527513572558896043436995009596911532312267858825781368043477506001562367524956265312912917848108403652600470273723843450059205201691465215158959683413705374327684077861640491171178860586121435798509059346289582250010928982942059086396526614726944248051755321544649244370385991751968882401993709551560470250259859803944661972346330786377606112275787675910466411364727363207208055886605205708841972132936261816648765364238195739227518341975682449260310993509838274988549210968205726778554090374044520042656078351358846954381922205320733440882673310953766488071608927299380711023446205530368400069448290169428680859169088541757175269427299693445076380192407319182189982883510840185857222459356907016310394642913337275150470607485927761522561998392164292294590419655335617046054026319786784520633853978808132780183230740858661672322763727799446102859348884644991655195736673238432880345113332127476867864347705694233992280383350261666293242165136091752411571356836391555776365440997499096422873768990907145225861471293204692055830017492121501397662462626696091274759854453684403682066567541878245340487019920853806313591432067081663774657296598868843803255424417584536569327218958266565465280751515582183177783366636529199032971854229697365846203277175765967400095554147615342502837858144702205734960334014255982029521644343047379490413523335602772938913164829620562163402583134029595230278987447657148511857528472305557882842822512593885871420603496621160004613079780119149999119472417110902819141280525335464470850763867674192106512154257832655353695852236154959448640856576130504946087851586539864027804825556822091683187847953777169987595794472003734275321800147676805787540824019436947853304198017818727275377696614733004135122662274671873542296924851955463869414184600985765826521204253672904233435838226619887784748188491112138700591571248802669900307512669445985520210314610170674143303738303304960646193882883214335059461082522106505105680431596095231238659354551529398149643492502083134459650159411584216971564427743064896501438654632412020702494613662207432013637113715896398979001565356944255081017431758430537095937038435111860337949371810526082644184712563756342805801011118305292984580978772426702527710924263752085302668694089122620245054997928437092624758327472009750470743452454144537233627523923336058651356873654096491747706523139686304957457044489546245631425974491423944302777516589582741190107306649162843687442037667506906384826663268123641695874594899696688364257992801433804487035851416417229120670786817169880656773292080400980491191098707245937993508611904987793223088897774043175748452309068306267446629485731706218813558357700321428906737969248508046999676537352470963780220706013341513021781645779543120996947538159837038676680185818839277913072190226977788770632844760793503072039587607982061741115847096054734892344560912698253683740005424124568494824758065976770253172900892878022782519948277480648098686936018210130032689381113913694840812967472907561624842188604254256466698511638175518657831508710929295222528963400142054541156559684017739893372991307155549517987220435732040628773900291890282428136817874081635742524302576454248773344683698428992632062716622879784335953742639600879518791035639819158932316717022405895757493646347004639010419556421241359025866158930175700620788493870848906824587266937836871742046522305703005162085292837690798070136812250868600383049457203510168306373584440862922098444896734290645154933053514106333124325026332500140772620625413324074727725711806222347726599884923992819526975724257133895555530138140737778139009109740033516798164365996588502948529136758413542312816124532667278720562955263744149828693914488922763365029136333738665746599438829513410364832071993574599310967562104046366397472540887842536266992965421813358380563923512271394421663803477275150374885167741179396545615932550428310849123642875885243473146420435548474174906933291249381686431764437164524277730497379898894370701638950599492236128764816265694440360819499524547024307736792009977294374336211628235178084537674512774437546890467951990028015544031253308647713851762344582379260013323529274193262997290715307484078144099593524252308516291150078359330483347039870537994188097592524225886402865637971275123881500770081475160747519007058098691733208456963622294767606922693101206975064706138219900608125286348528880523325625338056627779988732461062927005252795835910497575445276096132002863080274402512295879162180032842928833940641806118936631399308850190141090069803025655032525102279534422445387491389322403135899957638765202451636224030345977717502210238878293232051485947127938850251168991066199926776622383471400685033986921865489526693249305254965960147552833175242664784446807914739287368533953378651777310769744527254877114054602156098246009034059171743533418103676990769171622530358674359796531210702388045893859915347838673966556937577437855756392268867486647517483760825434413595216521312385436675413059521817853245368931357308312444472995682730595035407190275686354619926798347841620800320509977767292688344633253232339558678471916608185262402840300300766045132958689309447400192773064306290234742413329232291092813580293745941957618086265714522580801856479599266213670479187192209181134101369929399563173766476585090452167974281526704070347240634454544546030186457858864192097878729630127760493344474534534824356997913321356775178394359552817493861240911081099815108091342227552410060075753883025528340279227582869052422294072593536061671603393604090986740428165984090883298159416831200483781200482532666519142216892533830278683594295610021450568617231766665266566932755783077994127751539077877435497043195686891535989563316293535887101312450052309482886392191518053492779556389078585078771600331270163109218704700697794520518947872346212237519934738849874259905955711551347382122798616682512425375283589323309855888263764466272450024933856573703900128395924404430115483968742440291541437966948272008599610848933854498770270462487050667954782598166629469734367865830614480997595514350881206703138892236568712457155116884168143157317697312484455325099203840397534270419455224314918129999184634432216853135973642183207689227309688863836421998779600590641963884769043159738137177460198454309183258646550897948697309054787727489355133917835733219028136300425137256510496650414611281929770957657153457129805953950662656398082507235845818915807120785497243245933108541773838365378329716112862873831870910269125799391843695651961098386402288280076783040561653134298459470188661096452932676982696117280946314378191040755237536793878825287775884332603163013620795146649887814195494207611857755274464281860945174570806230224739010393714247843723218768268557307842228493778729852984187866120461340765888820001512843391248880714771636561234565699297927167285672162828057830715292200616843768456019808752558612961818582813399586917227087127122499321946723377265151811084879608137493558236268748840695283688281182301110078702071925377955964289081447319489659443727130145340677217039868744903812000252276579783043237550589936352675461102329483136141569391164211253593482464098728031934966742042528570352659000215206157542386215279685127701876885580151820582390129765544863984399536840895573233967499492219229886470998655985510592891671069944258919340248126438675826749544534515634737833532623225802475459474394160310789609216997064191219811377726938114861803574237925004537319695110587285181213252242571965343819138438491193304519212901659130940750031434262833734230396359921775341277813289698607447748565409848672759635415871974850092733479729773013012515665158582944474080941877998652103661041575995047917432693389541075391009675122428724589643239992251759408827082071000568336422881539156968615377444969760577397734102744159216627572724022512917813477467460307964301723688435329186871203587013964026544400399173158353666562203846548456231688973523107258036006577996973182396334279448098104156338339757775660436104466546893336149285115687353591713522662666849987842717646351064278064536070621024002706403484205795546060255364024207305103247959398766996476453611818432434335517618784394665705861125795767646739294413986634259640737785104329220494962644408186916307705708958245666425370203133978893562992970543402257219473693958796265610369046302622872879826009379425303510731597109267902116948167856145569455612467856912070093987527652349597167507224646527639601288606924663938955570125027278484438733235040193774887338154964136915022061007572596079486482429948383886735307581079578381495930164396805650556326012666473000233991832616819499578962143236869632310681241461679341609273284894376996825191516729714130649768361688456402424640964413807264748667111283929968583717919974983288349754418307576620179255058310473391571709343957418416990271811489542609039636351935471819902839987840762661572693208556308786939228753743252963082372609385728285649786330876913999545066309252836229479409018670073202447467593307055118709976226291822696968685259800386066685451525316098476616847649433124406682426465874424728023033238422978413419447927827952679769360232336781085306077277593517908062756003380407269641486450197820606511744529634780839506265385528640126794494522796188361624674556213349050532791796270865571792329204763434516550127830788796359093931235108894569135172506124543666102096158000074235240528178171227337298410520498208113379627846766458745987871281339589746853442662591804806301681698820863057938379305299189974679820403464695538005787291703152296261346377648988360023948805881755288402380652562106919592176417078703236019715107432210756750745189977975216614774933999143938201647302287931870109502994913869108120124881867237649221154411535290596017646526639148208563526024895435309479878296945596273832670886028717313053116764889285898592049693882015862145463667239457112151805629713927379269865144016257108562224118656499238250429892739308384870471968869900885923990805751898666652428175188540578845998191539626551619794540649934100417054350659177558079553536838832814178408794162315496465300352874337616277794769092418096327645789779063842663799598714187906505853493483605234793950639276488503468461951241743797954696157323643973601054171188005078917295543157054055860734677363498234621060463462162827354265403998614888806635096888173159355170768019666723430860203673657310027350950735566048966583233693157818266260537964985344195818589576836025106237275615044894650588663976319454394010911172778752622217409415999714474293623622805844110984335996076673143350398615599031429005358230661285518032759854378294358013869134528393573054426978565546245493106234973429718751591895268069921047937925611303007109237094730526363020855030956843692578198826585511577895366288773235446119048237681175448858370200021087056423992902998886169048522297775570340561354278391389476790899271777552781982883306629469295092637890957012428635203684764134478609116872548118903507815804165185407314147125173919666731348044021439996691836248665072627730133551779560079833568260962196085261945462678714003524868046486730408964451624185546578871333544863909426600533341712492487847239898414912254094174202455523677580704148127292139668574967478673324797152346601732835902502221126329661487339415492121474077860734179435793477160216923214411754745207643946236489717396784315090141933050204333084910821627440255047633079500831625141747022968390950270765388239782648757556426959319532136570319702477452835590995148509173425560795533194855778412995413022795133632629405516289352499913495198816811814157865693364193666308988500379704229066871299710313905120748826845550183023431705679495283215656381789126836382083141726810455844929322270810597305050197376114107497240184269971541687945760161019022658979545862141178997914851316827668131208178279238070500725709525540070413767245636547638034859483898486273915009525036042580269256198784098915281378512293176050543943962829585979475366123064283561478337481545318626645401950758037416042533829911003313500996074670722825856422417512124664991362925227829200153790820014180011795325803997460629834159943192358301397518912070821421273331287331412159574181044416967087275775824130239740400430766377237713165026575874264647817371165743674763092075680313372276008770473659987365205604739992016631319353219754493116762601202467933991738817093016494961267952679829456231329398868239606837347640105273138940104163505696028083386611383708171647035022649440449047863886087066445367780198848357078377523360539433621141247233287907608664077545839701334438964439227775717755178086413019492600116569591751967632469742010686774582468340896059752825770319326801458869426301952928854505834432960490148715962493425662635713871624590259129306407657635468331409224201039572636714688118887450734946538901687285326103324391067723950118585673845164526415298201187041778450581442624968876878292561214347606437885981512744834873306086164237803906236115212306252598323716662574412415120456721264671165826953690019744102954497118642613971491962798521154739710444100781897964539582423736656338939299324476669897900520410446459110761203296968826695519757842991077441322903863556152546524152202752353249848262916275485166694610494709951298039233900815595549482790508137399022248346336403114638888231407282993805457241449289296519965406597669432168670470058876717981823807514184592016149001952071906481851050405238371579078431644103644273422572556340712989287990932325671727039613688762779162382819394071927477767120569180716499845170018512346448591773470998732786697895950671390251851729686656599939905975041328351855628417477167407902275860135943940893581431145055547475726425299458115354857944588885293237944339313986331480626335508486083167026000377324724631439489544540434780252812870635261935487811897339812843480396875739364379785884843488092083139213989229242323860640521445127823714394702068882929289084842117739100014339431529836247353544395819332762695106015462180195969452681931506071764237981360408349892723335256441166851445240100903377638831112718533352837145292534619934091383475062179441514304381723399992109557404403327782994266630673818516731246860420566639119762324198955311494975080993253736197487732720776017215903984276175470690592788115841082368945009103965990359734823101236435305565544346246772093203287529630365089780772437953221436785273221461759680583804854250118132587000310724875343197281553910541606194186405836355400355612515693952751608904302236083330629904521222990488528191350444810528549544891337727413387346456496539887503912096036871294477739299146748775792840690345110038439712306743701954784608148621477243474196061696080919422010507670166093675748890625207826484756332548023580898190301125748110996539096262121646688974743969637352434621845882231779957340949705522240829482275037551695529382289817739708023899425235571887390452375714706747598015469273745088680006468931432122634374680357134872030790631083365690772989330774098270838835678716557072993684338812569065719128203678074634318280435606603457513185907187433124060733854680548479491839596081628621849869323330209160203759867303479730388228707847338266411613946600778025411965355703253333140410958380736982466054121344516255535533763950100239661325418366966125996007203908391179811934817677194261874088856844616230906869830858056031490101398291920570262415077844574686648549836628657514954150266751876594583273208117134830061168372494844383437560877262258107672186781029085426483594925153132253332641831496808875961885613089403274772232985373573246007879011492407187039283509577314232177570644802064534435596836806147800712953343444338044346171320109797728903953034455390173664143877477379323278976050472119116881242094438879673214808703669635225262002489343571363088037836828406032428230434487496116245241359873684782752830188350289087645768125174442818212129416296055935718568116892990139900318243403361103441695816541469944924068355992649933368996766317044369502766438938500870920724100725067902182161589841047413157388381280847209484677818022416049261579014571005346450264293619360522237002699430789105877779461688781482665799396860267800257043232914105761051786036886570184728494856707824129659436906114153536826310868638100749310142288157362480505973778840461237594761252959103449927516961455037570587399866364955794436835543634329022562590439316243113904944521307349956378807269568119369723947229423692379482400858025577934940485499353331735951320593244945198440217324196090757715612608926155397694222240942546152805523936468874332302295706704683194156249069392528124194412929235862017085127130254730224100825200034762196927084574302213583247722002453826952507672582962781952213243279052130291323455332183466658763282598425810120067968891147075717061066683238277462423071221797104159973847740565400608000828129182952938108464086688690668273161987385503712543175058699959443414663380111092480952259482537078790726607459023552221729027069534958461764683377518971784967383700696719572286170490992940797746797603428396782512282527415633174791250833906807603664326368302539152096303168860229334772688311505949061140716177689961756121772990781925253343821628326275093605973598342249089102553602056751817472487363704627619410543788165947399580125535132830874384388609582365306827426484695772677676290564041194302053257966653480122589756816729058867553138918859058702815263323997568355819404605714994929087380157384092253554016382867419835249778161580231096642822653107038232798435446075767970590492252343533441253729466060295068945002068304043041307336098418108987577087398448515551901180229032568623477118866714873909326718485469710566773024374662509590367807305893588509506993187622367275365436968390500852569335133542977863498457672343377895707151618812821219735545710948125263996197929513156649660958929629655959150415603041489923604397635645838484211662005318478351737953170964654161479192340001962165898243252377821736678988942776367802338823576488421453307709751283672288171294515838403714438689538908933395795787208663208772458107962805221530682640723625554880711260625538261250781126209136561741371801242317132342899783752905052513559685267112391056357824372777490990750332052942403127013203939237017388774992618188716559992197968308335645645996807774389274176488497851607843941425622308631415317734293351480791927077464752609933176878579277941332070983174784797135499618880469785965721142054365511521620367963415399200874978118152462609351572271233668995269477357357932429953000178810146899858980332260611582919355684566036457660000212929165758869352263697419356459029283793847831141652244445181324052129652832695480478769469971490641945362944874531612052278512551981601010413593284135438365103191412947318564768487454382206109093595725739123112016864465226635060533677069040583183515162083246041650236162563018446599096513075346676783287592713816527768433979912378969445398827933509367769333918548415554829758406837668251763666857243394209757532017133604841596579777070144391989750633199141649614042375117949287407754812206513347487873401651850335851408452424209694165058304904703024401557425652734059448159228930324272686747343758846446692691581646528037588662033893030433212386938773744733419383004702473793614398554726015390406254566897554974367897494055231632694173156398866962338976982858363968959983559102323372903345408179182078665473994116282134771958348295527660379018303012806328213682477983229603525280821290106316692779652485724390289509427838343455908832664510798058742332544748394032902688947744989645019321021713214472206637416903461830383109275906217683093084410956065137391606988483271218225742485426763060795647926460403222256144899396189741198019440095621430703443457477705516862611927007775619896363095658804852330347043920072833844475937944553461347615028976774221778051612272810015901437147616050118415122322822009399335753358108648051272566614135970285801315157962204966794788301249467331526397397399834050006727655507961706881876169612470583376691525654949540254276224544775550955684223479682058867280818984621705062065146630653425140615939587159176662731601563034916256491003318565183440075654637438413628816242364768537743917747544543255944088084189627702094720636027623604806563038144654178253310158699476818220022460322113253202567072588596291981464432212240693608357195237624429587205049532388660649533986929250769105975973449270907343236350206282017846749733309891352464981167615579136965957988293991934025175821658189576551590230649463501398476794795623623037929139557411256844625464088375016542876994552911382193879914092277114878979254360148628156088785844741123975353411792748714915187021685748930776033901525028285042111480166254982123825596775346078886297670059779763197103453570993232422049793430932635042825844253479453911704431577934450500932757789759165637116084353427647240800619778159627369827144564652026385284431104666616301727107298638220707836847638730031178722122341627352031330718877660427881526525913425138350539537728105821648118245379404377346703050423419115775934069881784731233095795236643232639778483634120484229869115580871580900507618992259865707619953381017451713967643657061870036060902995950084825962212044967138678068895264679688077764744444799914544382746055482178061258988253135521296842661023307826925751387287802688336491160393607449945620605934425964480608012893978005936290383358257140055651950538541692241327165450531658158503092060825419136571431825004381455775783663172646451432344109121186431655208171744454493908440461030711142289551798356985905854602151908296819705604455445042357794456327264086203368741109422173757377243613642143804408789949984938176870500578757426920462221241734411817951331320571931021250959426300077255350191214613335921537958804082711215775447622627322434553430618752250426876063596260216981817789148722961134133657716379731126962725373162603064423447533109964002764117199792204773761369693225820206093624179283881223658041506969102619511280435556662855484110906708944745739477680336047232942122621627431175768630937245641077561387119277632315157564458659356866988783964518672026898699609411099007237375903774671940981511305974906512988128555865058228674547261561393694144172805302824266234234912723072047112137242631132424947841747712448534218424064965577191113115426635602895671567908895073024877298363478258213462200288068283371567903373053825903558901932625750900079536873267459754954750607586489513998025123559999910420710635281870755898881268746942348882760089110598036172233747042320152356034230556573911496475660885699544659338272524361735295300548544190849281247211886145055375276898629435121893109116722681092979274449052677303957645345070024557192286735755604919616482613640304652062256960008245709633005296750982301892577244487236606072860861423519096368936575408301510172526265750317742305751577540159075936933696322178148417606932334918495150969785813485996147198691881851983515090079518322703577287218766950123924391585516648587118745491321743221846482554623990557733017664927394529858991676078976199363888107787876303278513586902433014340189105241385746810002371485481554417327619862218780749081697995719858931824138432030043769780283952411172134119126571552280639458629443258559551997914726898695290500197166463893220960630557304065277088949110398273825276747761473753831086635457614698467628647417502065123755715160431805189844673457249527911367549096134311182340995399557381123085326716105840428329719186324718058746678309022427588153152525828774835996754817555433379607998545187396564594265514067745884682906127621408694585066947217349225527055880558243281730586200260512130197163148706344795343746199739446426509100993853036432494225114748228308802513993414790165619235019595519362646288694080154796640386152297397521531397833462281545112265383537439975046379013305724166307860874405914062813359570670646804568136422166525214087393828339790755736563911844653613436283025341185868514643580056231326291190387901292282813768184879054877030174860415908468141187386387770727306178834562738243924086526400124074042520216199644438682664586398939666036340443721192730755269831806357754303837926986199292513108282002645683229246124336516024504714823369001524604821860744789051986539098332707243541215375959518422148812950288612914945245116576501537656817494215677039769501720943891194331588151133412847826029190255855051726446312223218250093814833705115174729160463862038827391121720665707659132969852082318099101028820211212817284984174804676461203144804961604378812612816762387355775274076942047945076727453082096638727144422491796155300314907431071872715888636562650488514839325610617408525001621741087493000025524031842759763905828298075022541865881361972671912995002628776067111591185636476096266343066966489510209257396280560584716032136347074599523916708726340023496400191315715178751446417442014188025687103058299306767008418986376088083781298032985148902406171756571552815909793810070494717223056497600970590933524943972810955712465594126036239852059163722613450503243387466287713680085140080133204748015711057358894151533917616721648387577449542738846655936362651109412545496811539821801368289050849132992872260336545817343857699907820114811883515614840542039798569604483035328653039961550297745748966884229697084066633588483702986383686274454357771945194062592486975007874742546063962074836208114410010056801012104121193528183785577646534180738222132683246403496215205024189057107738022048217666992737808189258615781824947534321099905092712605342725113281580693056315062038684278595608612985911826009272506583054739972659901779421522081167314333421800386343732368969482224070804731144091308765760076016664295504348486060273752804492986474151755861650504543774642950206897505690724932435661739816901121270178474826869497268069118178600185530147971194666045723369536590428308018768736424500300332570593648862673642154099368574274599364080787485782437177542538188772127075535843629766224894720239790909249311562508109195878670316252733125153683666667695550322648459669330388902704638800694876252305244499420859373955647636940650410407102562429824389563861474693837658030726575796605647142401648374338902172111611834104255749025501761413968956189169388819155287792900663787144616440928178533069108226903643781805070711514926542666932599945319763811457270369656576989497741374670056300847951790097149305377327987700730702256801056769192998017636868937563624519521891832026519353651536019202630344486407782337794989065405994432375655326485438691095044936534474332077885485228124361294533195256401530611514822649955659434159035840125985249611353460895541905763759977173782409509646238307637501658656089336045645056934704582898964647314565120940660783083157891500444784868273363283820231426453990354197249796799774379838329815211368490677281270509780330071505013069429373417782554421466744006475675337439725585996807804776173923425823705579801360276352493966722840403487677656192099051529754017447742910576105175853505334701946539861197544190225434676886252038522854763255504142629805100559199183171318830469174459343053119350461560830061363924901688745304802252780173264692098928696284112226609852076870457456144382327106990948808789794909861932361453128264834903202865865760188940682564882669020196475605939714684656267042971501083128307854340884276308312260544349562138069086255868018368329986664400054593004825883127695921310440821104763162740934423111337223300980979474251171254581785303266596104198131827319318193061010508293314428293619266150615656457985717931108119303244152409015879725007656563448098151774594682733904782927456217886688126801731738785584521623014860799524013283262202678371969483454308494178997309081837228497362294045457333304929743831295032622853000174973580648323258110012444739617562967442983379787257729243841151171948227701229736885026489749199689449475073017704309568193992056875755218819695411485667976475412912956901656521082997875972664323266070653840199788328917496700849786789160415039507079002308068569740404957810367507195899061737649088944576347789507130658100592500699457571974386343830873891332605032358899593104630102529512805447464517836829216559867021753224285552429268586714261268646513939249721817174986789146034540136177969490711580920986746525538043190389239347847930904765410918176715791554159244047774407840890565792105331064882215241359529720189354587993777982270097364921397921137756492510309339909290208367142249646868895657300055671029720543661885543460044159528416748355298377597398421578167190990637969193734008919529842030755049263005269667541538030165197295948109076111740646877613632013848177657166184636295925884399549198505258900740459934614874010465611563920432033315478991475012692542877155350543914101573917497688596478249599591562823663441291016492216070619465539160702103104711243897683878401111481037226641885406459126797017130998116188324704740198095189488860380552314519332812346022199893022306429061539553672477708472930111847243030758210490748488221736906246242793083748460890697156864950038523401294329845089937086778769271914288354859068061651056162602125159449015526685530757467527672925380935363686284528868007283198807975826399879652419530534307822753098696320452141440325223476763936960710856448834844145348334071630476204584921300296035461336562597253339298416076756663641199787143378919980724900433662176024784872188425229943878323924675454976690488863319103820348531683404054700599721929020860997685332558503355875763290210995831718738213202898432644239844106425347727081540150358671654875376285809918227791064651901478921249967750463976846831102970221525057747875550128509170002831651184845509323903480574317053393202558628630123936993715374098696152629427614799378918011911032195637093477480518848755278005187073747312537746457343831062994040113474080931915096388612018370551887084237243097464853184354753900995349331621518234717276709555021310494780796392229962579316299786637421027090601530104684730299325822564655157369709635417569897519017753851755697210191884234726212791835858337780232188744825526071692331696798701797998615383575951357381773939773760525390575610282430216742771729847737975981259136386324878200347432979840262447779858673680325153132762365590526162377315468680431200473843086003859776180089520937930401573703309366171529772113170292837859962680276945366981390364675803009893932225674026776241659399183582395970540291125583101506368354061976350693861956354265374509835245913794183779541496479650288937629553012287494097515693050825206348716914400156692903481451968950780610367584845157042568324486384628685928813211934580707355220986764502394560024811757535015451245719604852273877278149673345119613010891935484475244571077792123277935526851925563804452992717629454898240247111205496807192826701385114162350786286914072700605784942363929519136398336086463551903846701504634021076007986223917854183825763213522126268595145622094107647069330729017109979705058954707436186061536549380266955148240973701668088512678580368111893099038323677653914441555174905729414037412916661205754179364056218338862518987686566068402068218439390207949598669108380713142013731186115930113398064730217270507738989879231582535446325624427158659129975362435433909651211846765341926670815597645267715358887005494811902070975543500708341766386524900582329670690253847362492215655481731015930116762171813373655606235583262577632643345452068359759354981119559923487235883013393573768928222148811950759637760241453901129969346149050661820710542889541727793383205538241447048165366823783060875702248959058949753895105726644829163942733963008049805054303226237145171665710418269854204782349791575738622603653773057131559306590338669010647470149788316104925830458301599937923455021447134905180468970432586562884934635880664898535909378433915407162777723032132444442731189086636128173125187588337216850632914603555426217010282642227678468080663684968599612416500710116182218099672903911816607010267411368784967085052931618600916012690209694382640874827310423710757695174567414727910529257426739011951049106493480333418424736435918158970960336649543258039510803975186603220751322157698073979099387299347551241832833880779752557669168918754515631715580553221383018156394179284320402562839949082898227871141648825995344410977490277862365707469699015670576390136240157738349117478485254205230440046408029651546261728306148885937960199171513303336818855941146676245375539804858270281416857299150979752066479386852922748691887848858839420300271632133557807027923266858483061431278874222661616565100210314553595365996348293828831632961868083609858092520178164206461572430578751693380302614843371599724209566974833767363496648204019270977016382653269841292669692676430630794664662979851594401706135768921653736964828762833757243638287206847410988075422267682434685013426486994037225139220740712402072591484839189857502144172924413064810721840598948550678549527636472892970260106902682948303862744763549920156399217488131849172262866662178349031063676517817422470741370460347753890110039075953803835799757034525157331430805809235616263990475186048598070310930082838282424637286250738361480439773650182289652840817680572351242180307324588341245369662723145271190224280055563315847295577874716258865630526684903521656954766532683553783222375021397164568549909639947970426599962331573327327922379641822322489777461514286836343960132889336678142483776938576143607981530856486661625923018771361425162004960775869356531010778279379708079223655423338582899448343826484072128245670179088366972588618912403658372373768301286870807561696462000094216209512496008437076952836951575582835937527010630911841037106019153276857823349069504369092391771215534330888818276126370667285392842245549289107959298647034401046698778142817107648743635433415564720745993361377935842686877715150235837915759182658725195216565147068036032253080685082027327189520523240004811332797015359663407112567376810075213185269874768263722173094173543266177396946805654891367718696264837711285869403943911240956480712155464995087987435435489726406521514564524162688442868824849061471710239822497987958141464555931928186282578887161102959179448687725445455292246864820115918284737474205820362909703700171854587941515739533269160216925731028433084718566230201358937833107156571213320337814084553158588306107153571221684373053202884122844201341144318776805976909924730722283725359949842126077583283437988222046785273508718453088929850858782716588280170380318696984233804259592184419741378287672121205144131540631422756143681309022631980030195760612387370777333057215609640398364908588288876089324047290563057981200674119286302943284202932049401939898885306808245277359240138909955744780715901783484645626370331152749868060070109505984488880533514482629547039390317217171559599958456138607902214520769809367211633349732439063059897362628906686985494362315474106540807671990299491233809971733572464856268690756801928036467041184989716138338187876542670323539526639381882128024907388936997919202573929344812490318936762122261736275893085712426293080264781923654489077290198968759765550221797332208774290420590505903738636848347415690365409091937364911288970121382692575397692193053480210077410810760810771415637149281779635048764784085569586303914587425307429075434142155817088044013824281763626334920800573075449542260026154809785696029312450560869198659000595906130110991858484034618794651831260148922601586699499906247740496047176847478715913180924915390131986051308414322216568941017065165239227410004929244487813259245444047091511359325593963161879139276542913593074521629674265066901228736053621052510192189575133295294452796725729250571813218937200811905886197186069566363819390619474973585087569880567577561041838137710968571940557032019949402991885291832738884465052902134110886380335400882424840679029616245494140839788580232623992488489310255000348414230424010168247032178170864761084927939219998264362652588791442263725578946520961967770185591556327365762765555488826290844647340566427954617910631273166812461264375811787557307440679206825589568259465354390118804504061354894732936003607301117812602787805216408854990468721045574399595697988724119017429042233160643019031822947202037293198132139389721927043933902326453991481797011067770688411202950368731951140995823317072742306327517959159828079565525807693970297208976707581306145168568462813825298939997847382334839598764476421829297015806601337727785569824821558298175152519321308919032589708495548248137538934489074152402717931226709796158871109324749640782703641344084318429271695747144674226804284563857470506559218841928793550671224798230279529688017947481704024408422142912982227020576109603650455087993650767957612127431768364826196808384159476310164197591724171716904977228183773816881252554863772794532473842570963427743635755651904477260846900226151357182638155906698508847969904130894725974895291490013300846649619367965495527829878088503576652292232623633880059526928907669013997100968214224642744292480854956074207087390439157703145961099008520047909539893482537955094262596730176904601874720606298493771308109466503266662742628576407978156762458070611990551876863656926926699646406040385124624525256839598019484735056630345913381072173011891333831026890048965240980730987009959339361225624812726386066877024825987253542648267340534510648194975613321335788889719619007761570734880003216019168177269285122879612685952344003567806580142575947992376032036157902882220951110122387820108604334035387296869137554215513289707099316866461449604245054989388558367769866227152645325660316231523538768491726473682867039181987276117231848691291334163123216503386007167128293568139808770875068648085317504906647199451258941695317070680767296255951953996766960587184639040191977385404779117966736158495878051770128102086559655793164956981191773481419462787900459840359752204014714434230268184154628820652790536566370245516463272452078371613900571087317802041245260535918100073827330966098440886701993979890617313503741804539723905451790281984322249852641337746507289330909278268995201101129297329201643618669834764678683371362117217771546071723745307396029540634057014979271912527242983008941306862217106121233593817806200580485181324820950267030456120923932529809426222280948661802699114844162013625377424541792857985329068004467091489994658284789600962914236017656200439426773336732406273905540442044470303243547462322743945708166258926648192383738894438282242485953541136950830548196449097917951521410220761769017228846477437448848443047735156443103076307826139150932292440654362514378035620192597288771070194632037421103999907119352318754227443857693466629295784754592398835952996505784750871434432025504732305541972922875396494998088785579598155499951329575682083335177281418429442653710343983296448116304962003686629383206327247511875239300199171139451220936909898121007680895887710207292761235023619534869053897241976058857279914656818429598279917164117320652634111037762981105008593477526931008099500107156558987029346039038087913425981340014344451317641625256986697630249677022933698492659357632845724640405934027003487697208630328932060618617738298043822336748883777325265786596307142559489755280285076886292084381191100024018756829971938603696096547003335752456916733062044402110118194151010958356429359792113423978663647583253091828099362538902139730444191557947449702074737664787542689220340075596815177446317835613774580725098181663580656155616878945386542656780855141931039114923902081388384099200921635547959407127508331472515821359111455370764044227214023879012244102046407018963414446646177807429383000008397499543835265009532876437968314743243194220897677121439547644547507214005901028172352141949496641686023075798882085323204355642392187936794685219182620143283456131941600570930057678425622279109026403414052956979753924257093645913005039878982897073735748111741442465757870008708517299494520200432010845014616098250871334983205027041263874470462748562246845342294151551314944214185834776159721347852366198481398951797269610483894181898608532612041211212004488919202166276398506696199393823008743044749097228725240168411787935953934792238369992700885578109486814295656150245845567372376448692748998307409751270676426372863023926349912100616090031954407137598803127270047120285504460182690267792326571661006752157592655602836542854656561935819406267544738476170276108017049587532413308924568099852555231225385319529148388075339186111278481783219854132409117907479670215360931027033424497634320028552782632058598192700963535227751851805931704032017535113049892431513047385941181919925538478364721629308922423121783675676742352651012777911753731774961163419678000431251868244454419481674596335548382712969409532041367318939603593561776585967400615596120742593461083520041907489025682401964966894909384226986462789963331333879497209230421397020012698902328162075659191061365242423151381334091916186378268991867459393260482876808391069407319416877588636939068234786964702580357660119105840913602250034442573769628501382718202060467955233333779474359401229249986170571053693089312098411801724340878365972644544368926578374207051039810502272944363861295193494479648188995982779823291719152387044401476428081116992396161090621121958235765878756020803967369009684051397104507825436348784855306180082842403754069356152472528599466218914894878841427911110241237871656674025968862437690292552753052647765029674513954217239009252767269720587158601805563589702684344253948854996362706595068166143706289361757860778528259862241768434525223555594547777298624596698837234614288985420111696336900119493200063085898472818724654500102532729890046785222831697672011453099695064494953491353014553077341062834021396283985994819686045784789108003479785269467679974886141434925515025542397275979304611281810360947297136748097058118312816748801932977498691577959680035010354880805684874382066855510015560539824883579828971500975441277570710443144345072801094063901981459406969001493795863661382037493509987166599806175401219419005386745460168183724154150043912663449470202247332280662076442935617836313683742350934561702174342685890997621263412575481022405696545656113010409249047559617001449286541631542936560958835486086105435360992949499122791273498079042200772852811196078921685728399810543968979463128865017300462600208309404763155278403585061669149731953200988032035332051472314352309275851385030468506977786645874690091689042801966143275256189303752742717899067744930484924604035879733869545352252179407837344303345766495070103723181489601759572139314538651691394048505421262843463790834877135764345549344212497014696625056182637592108336565121259764292886194244291804608867154339575643631483955849108360383212725134234815401295901705267320002124439194079501196743374560123975401313995499463712195258899672510167877287346248060129201310755414481711506218343387205267304588002814628855703373982573381681326508819127590632470860615123778081079188338449998004952369759328406342143341382115624249645343614235144243997768195262307164846251798347101733109636834189873120765539200652168227251986762811488138130210388910289961008704682581319672273348330060636129738952430064073577016314438700901079824615804205657005400668440075308060385281977240848631372686859637732371476413026621806930399044948273744655785189285291342631360828744178823146253873627881936496926901477786859410069340451160037501468647493943528477406687529470794232493993083218190422459140998116709762431405493295273747037849641135080326535534209496010006445424469545351532598182624678531211408588253096917334922892898252667002802545330406300861647210806654996721060637290715923480177890875456330950420642585810436197124828239154564424965085190436139611846500346427258470039048798277433455658515615080845469150903326079636109318094447936411454366898489494681857038977200285778811890706838499906057207003715823181718858057810481714701389203604660911245265936028594541483943314026122962588520468767357379787743330840297175596954133152333399552486917843220339195232232332119822967104519908958729178054902261954364289825895569484409933636705341657170910599218564208749721075754085746075500592742612174917190595136826025395081616768349839315121865089685283929076258547700631377235488551748177950989192708270207204161153175601922143239472203313661774147903271201548577577464485338796534656371672473995039806475568659645045423773950190649281679906206666729970531668744085708978403650678634357784627282640768888696049877159116134445530597591233017094609225221719756851390954681199349345659547692367561116731731293845911191567738089058852820804233624416299848074065925323913128716743853066558274625983031968328869528548137003936112822984912570628091173108860730983777482140281913920488082810101836820131881248360040279066990693483963039642371325329860557530993803644729919491542293381231164848560672371719092936377053904883799451368900154362256415924359900619349765783163682665383346314525262804669128485254339342290221408000685444099206236714617705302720565046946314799323112334278877868370116582274314663924430265404635772635527488711683453427380672325242935975049387316788010519327420029435701274417900275936117083277750509952004122921526719192213975707446596861067426774271795285816760527691889240598209344917399005282785496090410998684605098225579679258436756000499342900421030710895887554989602790237480998593333884041897090723670381431302995730604674586168835681738413282812533338545125691377747859931485144769312204945754424858173271249691491890158842163514042903121180119029610960173205685587566856769468861677310178896519803435983182356445933949770226609840417117127723080098962367491008582355485565673498288137234054203660620981352648668341047484823643797282843515326227958951800788425368963386937423308962304665851846330648472996810510145493966682140370291287229539098218975052283297652220359814077032174744143224643215372198527331825631658374337625007507580948606044093521321259571495117126598560227650734235577238825021042737645156749955723081384765265840458357857022056826166730146944493904154006203919470470348516954898782296967982554111720360619634796219798539477296111588844946682060972968655649468144335400158987213997516329010898217690552472571845104870617566366292049749612471149896747064652965931844036495823023766923044494262927497587186357330984434976396157940907351368449667498252581788101074075180408738518274153312066581513877052987393281839829410372509015679486510721618392628863304616994384111869918840866874865051606725813365854471837170104126489087218982302960376804447027924307919583496431131006206636754006638954491694305449135123811338746688885071011382921991215614428524782329416504197099889995459335730379875809056873420104335986240915487818596882164288595606092586843907144136934374907396701483324393504335810089819425974672674136730990855155653832105138316523587098403048612643247241923018503474713048696953983446988157833468314258110476263159685085286632096627174629727207028833345563862632118941134949160321229232476185649786668942577767813489263252359497756196156819075641768901641517736609726932792762906753761913829343212898629265594253053092402870893345778761768109588628580659049934234674704800667100219384409578455384872796074968609468510163229712924564264642260936892164834231324230226993701433778942075329181944732911740238103187420250155193597579775297717668323965066450098133186099056022935240163197435099583721242461264513488111510473882292643246027086327392932641886453399011284965276150437103059117279370330885994773891374829474697933824941158795547898428492307077687524794212462105232709234112799758073290783548693605051962622959721967119180973369633477870532039467181324494852327680349553452751776991967667767778710189774331528803652728445006378433352480655378294133655158518854398736693793016053807092225781244398749480676357226137881587397239933237389984501248624089266152097048178854304852158566087778974433769575101385855575894319964205491846699501821270399789604653327693082787406731601836904848681069645525050711225490710133237648498980228948423209252554043524272006057185832440721368335203392247834289425225609451485192745598215646683278781357143064190530996416491859095745473990317560794915635462002861798481063400173450714421988649228225671145566055597747217166178646739970097489840185661720219666263941515118581931115871398849300413862053733658539119240901168423268082119005745770431340579609567102910434425479937393404184008875143952415827210402961151545461022676597111623607729905769496345294011593758902245655778647520173687787723876147244060445260394043037355556729181506489063493282050547298946113440640600740130317411080840825019160917405292974985003083385003055390425750255287202658587912037367641653783399832544687675277520642341443036201050020357930497121256236918981736172536606783171109899049075357826143460067677924031864337810307561033968085431143185633467764213887293480413686315807307071840550262421735581590604441733907634862510766068601223858949491268875294024650424330907276814664949628070228581742935435471697899461666142924717992584392434273176514087638529404326338585594468866750130185199400510997937718828848521040586230555174057174623534914406016223271635769755265770326440049500623883923477952489706613167199414368456795661675175702555904622873292732056916451077971001622404794725622005991887315610310302461511300586340781646805558377711375369959109250101608796035182181912186327533583492002921565820519451721600397696949475158767311999461028017982429018712470298065791938642884706010983382523330018833791915096962002398735177823554932261587041794437077342842239148994126696235998989507785807695502595950546442559448089246928310959063124139529354343602108810419616647335508271466221659401915974763222750762806758638348338206992531422061851261699987132072804642176886549755105639799361164355428449099675310377978191570702427958308804824614780983132191093285810472551962681094992907446059379940551972460871865921475905925523767896798871606036941338419789339056431339250678524352321067414967302492621975608893903544097560933004260011426763864151587347209088311282665127738784967442387258542376550066156264909567981889848396720450215866216909823467802305702142248477172255660880961399787998780390545869446282353459422666628514049785457166366200073507306624616159283677061788776020695582212593270207589175113709879021490297277863280618632466728647996127535453348337578189208873301737555140547666351975534377622606431708948644871381385502004317501507844830569073226781517786833011564579382826503525197154453455912875674530827385685663842048245085667588876819309611342633631163717140356945330599338111534719305858535140621966778601058718283600780016740309396596936809858185139056336696673505130891406039855262319850245298257922026987355585788475400857667748171483010376330332970927410763630125355482958003272387909688528140325644086645152269213630990015238670760254703856976640413717436230335074685409403404184679804105965540729408568059317090684471879083904776136296904092036933731759370713736711743670994865352614943918636138827579815413052423434096935044796130174290983470154737688563801606282141370868877909144294127842465223027162005392276843135907095137109941736315345746312413779038135815369361312611541158000221310827503491831722752099453788249404568927987239575491513562074524408485380017586776836415811384127644280849048243997720967996909530704267159521152749790926004222169265829046969497203417006969017770924805011819107678406721106411755743763261924646901770029375228675240559441845944072832779018390893639504106097443384151187152814581581493300930104980652468358463943915351434766233841200200099500675661155933148924552656990023554722341898721224112514713583356501834566014301903985444822294971802996537270670897859731654200199246189679799213516514437428811957660624612845145059469577957342089088873222478876160286957599672383680188741125340069278612027026175437941451488081671261261711570060090140566686580704604033188209074641565700208206426207341421761899181284840281728394959106412954040240033509750943152641629439881949548322145359785786388959166591395377653177791055738132293170886882422702576554372751404152913769099601024082669021663130610222987468715406405038831521773757041717466312596043452486776246122596380912288988743053266077902955448153393094482411183203412117352681441768853637770286471441784463533566042378011302173548935806770972394950103574318329632032547295300387437375915176310944024604704842765424856774631146007216969899789484049683417104908709529269939644148980619906121293063595985745022497958109212909560989870840309813189888157148573510505795240077818382407824832385068864661170563147741957733343338992599288169751129528006293469085503309627165120247950684322120267487153518693025119994332813934900220123644686143540883882515652703194753104652918363926466684624288722145301930815527443162595949649622902028278692979022926332015729980848725141894157537454122020675219440264678707687166221739164721386375400748360081223646460541072975125380198549245131993494470355662946940545220794821226495814268822290920551777272508815254873945800086718888029439127594235421720055295466656942435819246580966930241999365900888004502543268677185407829988072139453690122724606866226555658965994900388379277954560200581812732701524204120484896148293914703038278668403111213206350875687327844004289919409471928776888861329598603649981159221868341832582987223990432186061688222972537125295657368728858639611385911603320886436427978888762978670763534555171838205333677424939271957553183398326125987683178432478441243737156622099499763023155935616978421866323260000677533418504860748602765238658906774454628056378375788580723402541219923768505356567278991621073980131659390181645375348526690894956601059927817976973901198302563723840653811320148289825399215135865931751883791905219783371812494520905651321457444805266633110678209937970588391565241377416337928649609088133880639909419526668612532850770039673026619086717684645070207452012240448778794714911555152200610722657593079905965168549080442689005482151284460339248462695685763687329598515793279628640543203752191791086117867377682460347387536928019469484556541910150693633100965046171392192096131481850798139441105613103857901865033532243132880449624003101836195289923067205455878631226168919177352182545203437272607165599180648888928778776092452824229548600285089609063728422740833789753948307789720111977365442810354420922049821896425502829829111313577965126967110432421735319011465456412244088949977228034920221708737089125748277085341104449777729247895360883799202434901739906259131757681049703430060970044489433101276284263070356000192480643877314934125250861644010528257282462774646010738491533609621099178350132622413120031587165930872404555560530916262412867336728607926202500300801733958470015603640327087680212553964570874940187271967812609368412125676830016603642158295166265379506953973079373591332590403294952549709041803220826096341914861788573487157332741151559605620716651368591047177304739353842729846354624161032904638572976910345139254710350852790949315323261110495529055406171011300173661853254457027135111777887360463932492853401749926509832151335243668825538993340632987169307624354051826300564676811394239500972303919847307269942842899069148993299800258187342703069391927299143913124255070911732443973330267690298900045752794226506901220999547651010248048197843178834839569589107450734613656766922491904485373493757476880301413280355333956215445725746524583339492071108189499304584807676956942328008281063297700538547446497484170127443920827366533410970156158498460921123428688774248178001925572562387560386798836304047440503751497771540128192090454756739686953662254325738131052124894167058722870446861466703590426238120850648739267423092890540003915370233774490064167485283869727614601787246457461280698288329381860197808562359888797352628264103659599617417762990141953691072284138014227593923214169125351303419687049269992219112018786731566586338518496976822507040261337710803969680018616358178607362282382302104052603565982913597500859389876395091937878443343165135022019702764025131085602584723041291933700769493514382448831463757261261329122182191547132787939373920258684176984481958132829129663235522327186681632421282028242401440246262057400552384153606089163168254727692131161540399256623699349505146101551345529987506587912625013007944513383737297951267176841755783467602777566252508352117107767780877065889971043670633390518630232016394505568777543900578374259345727534053380481988960886066953840022914510883513160407626529122016884074535765183231513451425315039856605279263390823792921910208505858853865290124609620264649046158606748350886056929103590340596132789856587762906541952228123608862434210425941765799574529533651838549014613192462021402880427473802739541355767800490202689346450009490505995629564656407772573312525749712781894756080122105653161458915561158222995647296705094926408005382705148368120245092199733753998116955740421156098969279603331610756436636853396681197924116440948642118247434240061444541597920481066822226441630653160124412199112415429689024961413170829733272710692900379833999961836555054896301578463889999663721232151820931536337809096818902240617197021871808393854582270609035508714427875767063873887746014902184781355796698666912598585319329821836684107122738678843691614828609527944981424022720383173831392949691153327564091949059940264332168500023479072904252456878826190180362543660430913949856462773928395729316919467553494871416018955892266651519574445155750574704085904172057823066039769128113683695989638281896640184680805195077622696989969036132709710550085692875402299739616605382772294567505473329417815633823370500347535966873315289164177378073215118607236015151951057407741830192530233502099230976116972229118907258954520638745014915032667613042126988601995820165668173047237748641021344161044734344683296524415331914786859349526935527672418049535338829031817107395553907549064057579498945312884817071124466315904286768552073615071307034634626715977954130630883080202151334264642642498789313217013194463589367318471653544116366184202742430272078819703454865771129014429610138860517874043142039482296013955934420728015255733949805376020911205927755053612873545273910785670582563555335933280413178585438181983058201807278261124854008382931961343151880026113823629224790647235184917888219307891983801307831924987130419671097036788849416593573496683091601787092311347365290212724211436617070366839028924904764203987096014216249609089349294607791594541144005127189898831530913969918934280615086162349686697235214228830841498252229562694329093525531529510066532594844275693883285044219095465986337975884128163252520392824209534036700030381700622443396373995453130122010000843418238596666707018969935045865384186207820234256841689965271790894267572858372920927013210892796290126021803994926149292330416492859862387429706338262525609784157836950529449393860316661169037517229507527621446950527927505102088583349990459303604340337788912189148587495944717951662696003880198198793846472684088170959315845787217471207741862770996521755642707289789906531666326899618998622177877759616762873235906439838122613864564827901425812257944851833703362875350648577013744864920551015797558157928666901935736245583354201317932132017699204637889414249583739056335228247561873794340676674711127610272126015709615747479936993541843500272199028178144824362261682377987980342605190817573814765144900140588804958016841622762066761047293267226805968706965106212533911056752127949749945375417171107910534703004212402258358470901685702893894360393349624695499743305011975704154102640918809582773344909329190076745061405720374784205670170214226677364362675461247252850412483491129901114803761098365006249223674685802943063147973170443555028725046601576163325178584845111501426527946242522594247745423768102372605721425302996366285809448654143170990625681723587907425965158619979890382552196587968686094873309076917342518474080513602971590550944238548137114794333653927311318850738782184641004118258947054512809369810111286411928300938358995074452673392513369316973755003372510038534229354883722582853429705878830102704346454448844823715722901724223118013790116928923779903616650687583670961652162332858873374265888309200381743085825057857483575288116079114342756797613785025658650297311231301410047209226369350145074530564656771999636527490295789562684893485559575703323462666838825167399630838171454359852137463485046104940722451935806662038024819145616307514676606623954462226602583037724119988478004644486424343512596153773736150835406215360390326834581450255162462689733249111589757601081603436306499708933483668967395961403761547338340116991693350258695124834418725131719989444494812678262125772549694344343394627916695554513674102029907189482415078425502383621515124019980084546590589101150225330471902554640654109893801070895138419697581541842551554081027134659131881829098375803521849223636470425111311320679421085002319614893388247234671203928964308562145595659313577862670400664614307046784270045405002127217322335262083460445713744765501548387637016623295540126115949870010846647026049185820736476151621085085162847425198960125150511536145679389398104297596175985901134877836262323383500751614586074793965429831902407232498681266782841706546193752864145273236896289534525246272802861923996945249725226618267449014559796924921809139272288720279233592643460950561737483353912348657489560525651059747455086431664969602295766228905720418062012882097969514217861623253813869116215904960780067366764081970264160499674002917327155403884041169696568950996266845407272687086792313102522891742929965826971105791489646408902820543426364506337554695178179106265114403174289834477015644337681584451907956971181483044724623966796718107281092096367151740646248086001437971560897416298638809206880122116016372154578215411347059301296121506822878069137312554057324801957920783383030537444273772635782596329451236741682278895464676488557748840681051761732159504207480394906895931697432412978058847287020418464357762211685809864244431967334382023317363846267166376420027973494671981305675114320387480201513105683837197836104274323177067434638044409772015198596488516197133813777321719625099635655874784444353830123202602296709816939304891179779436967229238954163910870093337532010403121469035755985263293544458885951784764653851339840163534208387717642443897709297487550584986606264863608660170432528773783654127825229864655228847190138792219872248445985592079819093110413265547487141270920726734556240150538987791654086759499136895306614535347793653219448022948224614905097182948329177640949537685608036482751898860903569993650525265739518044995329569813258335247906510191954256466588647137413612006265942361939951762758506172607146690881227629121607337660570763361685203753680912536038572265121506083394222695491936140343989696786515559128229679682492667554603346525160563547525087398769120008853403559945399296611132255357503662703380876379432559661867932737136852845708097384574148272346001553310392351646196667378429742864904960585639064826882869160085224206932805039832830966918257075837955457206389395954009783939470451150801253617524528208254667997398944347677182975347164707405078371406129934221350870614246971936631728787557890484743528805182544014043210998718973999950862058646680025735464938073513119705842475426315286504851889761598251001667363012968599604802405300288659867399137423563381058593760785838696848169724206292674434768280488311366522474459710259537400759412743020011907549206835186071348446190474150377097943687146028568971845454724911935794146362487750181839125183748122122700955671701020712546825332840441964004318788625540376444999895757637896222906779421418028035016089578490286754204970309624494069823896376589182117716058679534926906667239069724917927883399731451505289283877719478507547181672169117165547728292100411399064680382862259957326815643416898372428081722631873449169951277495651815822687599543523451529250288446333804071306538907822319738429820830130838420926652869586036251645882871966542147320915412245466791224663214961197481759234872957114365511942888113271927126170432757839632232378618340387099177199991593269323542680445980208161832076765229751249022445257510616278544878495246401434339683411283580838226526100390463990432909556303434780587379863988029277083899840636814013985086411579198259636567501303861306147567380552387343128557564744297836169750364575776684276576206416148897696312346142269903209105604731612881611796501973957257310540347080963775373870490374359091157120597637138795558451275154653951139215347621612490105954083715846783369907761327313912724437330542801160904175347756576208550115066526077709889025257210450717687829632592309874469190671293091990352966733526019964079968506641321561919847157935891344957035372427501237837533050284925478303320845338417695646831286791594443602507800477820564733390292675851494273573527074475384826513904647234393028196939970985843475502688325271588737653875077398769234810736224852094848427311885590463871781085340115223140554328325888031934452657384948622083939267688227400386436999324751501389133794686360765265248323270005391174689070652516709792507058590651751955417589368262626389300011586728029445757908777867503729393293501042782144306126024756849615536732579226367535766940533861165956819799222681058265774106859013255107625938167509107729307319690975144726970681478569559978721288688590669184576792239216503089826422216585934847145630238602425187844770300503845071427741434284119192426178765846766081490258789827522455201093942691320505959862079209533835299114922893973331787934191514407946890598938274505064888262132234982018188772902886113316989177419928361425911333073300180067952116270495442683377134576730671669082155347580468718885428394090816395074710322211314059781078897000647685389691947220348499024391214664985333737448049813521702623546776841015966926505301614502655225499279082196975591942482678419623947652459433623978198506931909532027723487171368840862406689972500374742251370603857633422088300933886857187592266777940331087558028691427826443609821258662913975141785646054914343724047576614830874625353472903266026416550488829695730758986158715279817135284909106302810390125124265845003438188152718077625312615900702584945226517194045233360174157476725690480347275828277138708944912332410222573369125791132166197285087875065024801550201387457936366108061197197286275551205221298556322208804489963295353493758364439567371915445285073393351028100691423799367530311501762153707557890061257110157104552380742516364783596883677842400832830968522395738894480663915047286889038716651875691799678630390371932249281420383954577663671294882097066584443951071628343589079377456910714354763833683658666968352129742514220074076154698162463857399053156004115891269040214749633288429237961739259874122018481634939237109270889225385321277518213771330221954597921373558538621668523159505920631840317424131703701619987114452972007659993270783856579862540812244145891255590760117255711791694960813978790454917063387473299256815005761611562152342979650151881623563081349953527987228721969180157490445957684813393404973327148155365578818035365807314984128447374635776916072466968461621351844987111254022494307848552385138177479302802166303914548635123564813583443213448226762635046243229790831044486635044778666435211711250940393594473486680840137379868951972030378943462488920272543507107652155818052715772460077649276105197513385506757656575520858666679451794518596689144236976909201806612824272610553979267171574101949538472563241189554539940782765759928278017260881512698671710286847404191070070351908815262461970952188202585682211268422586498577892662922050405697145151286482233113344762537954940684927546301573236999961172239116995461510850071051610254168860911525429937484527707344696361252489425863952165271354749271128818123989500315763831395722790647863352962719852045996652366983261754871416853348123911977323201675883259654696313622251496466122187334029018488162666462645978273286873951157173427270594916607139087902729622949481646175444672074308247265221444770067698455094438014808266884893010842245864877051002803839839897564701353118469270756157143045683207448186265596796396872215272083654831091351465182220367436856867920956175306139501693170088152428660411050754846754613179620770533658201499396143626811448795989499086773987360743906578399410947247153890498628480591437741207716410614014230742497864025478490196463019048920000797434166917172880948666086471591910172774383136239768681638519155574218065747757277017723161711552830255081024646797891297943892782100717558934373695697266772143583342646136978965290917677351003245280186672619868207538830376473951871599331132890401284896803215632630457483126217597266748495552917832926301035671759695842720048036170975824282793727199689472367713990939647763807855210403603499489619574115580746144788247294920312775267588759988859889169598722552306282094960634773193542048111077960300623589006205620872727967907992806408253862958734705199129726804589075900841406026455310688371938161037588213424730813132895358567233151319997178118032122250577582089868441648211220714216693411913930925248125297129724296470952378981794065770100661568099246587741635116379173173314226496822573567307192081561741177615257449435055386890918668668022961957114620188737795417549234893628179173022545320226291916427300793178085193319363909558317246025230321966507517477647985904732640492991468481998589404829838406492750748761333008907357088982495077117856618901003570395019105834822474169965505206816802185049763172689882500065454959821423160280847819987929854088287721000076503055934426709322256844716911488115749809017251646093524196999803344020315672037129717089546399206031430207699592874608483474119694085918298805781081900724185687980702935835097908948159966926114140627543489738504367094437703749186425374768531537441972422755181874260612917498136248252866504814477683065884615369308244784349487691642470594520331605397640033993742846958150529438289695771595360792575545473574804290353272727022613228993625604880557000964322218427041814000917448860981509944008371878389857740744684748739261336844249361323618516733592526588822993182305131024954521239431387274376158012652808175192612719631605674364662846473950623012904840039163491265585341438780670566796325965028555110191857145116846886058715515387575539988393916532919562411289263637879362928720187917315372987467603571152198170711978721383107722987099145305240901692100646673724181696668417199776036346203650146814630954594395210656169092533204042531796948861537130630649270749205214695671848305886589235208625324184104923999439342781844693839837088878384196096720122553816031165538528977802992189093427862615567727396602878784720610606933305658304975364982326959964630570433532379513390387559747449715902130423384149103551848355742328080812571196464759024762589424107893015912640235260157041803927998926992131905595944184502414343056377861253446929594314927113850806767902930058327639815798765520573130942728142287342015175259418699784631557828624044494813205578469866961720991666053375700033249013927518352874103103726597014130496990939669191923875580829941823214463104286846286204299980105393244041334418360694922314453255869687724427257201361047274787102412901146711208629132389958637033754486700839364750051198528766864134176539612754244923384463703056039631290126669382349625725849931574107611805642402631300181169424055175294814212245754328105406789029237578938162768734956164053042600649378522105826688596072108883694885387916363784935799740910456575358969749113488173994322659532374347309900920457947449647951400155472729332067714041418916553028458051242664409779941338949467274586524453050877667567718020897491594520509449974313305209737221229023285697567995134346992837194910763241795533596669704668432980616838849579358481743643737482591614958994702035423916029062952634526470046769684840582038404227615374982631418306584055203295218126200603117350320619456025745766043461354471077818010542264717658959411033072845431707171903528980983236986895355430835081237602017323873207134923494130704496762783134683881055171779575311474480388633549514806959019306538983193259078386119609157665081542105167167041264637211176069723807163176943810907689080347117837727637947032680071041898763047391461091171941206267905401507699753939178073797339303377903872554644644266689506135033595820050737686953652437822244163640265506989649736554941612143928871990923563086319338732341244491146102698242972303302003650258986543026564157639775215103185000936554694641527701119777611684529337146740447783852347461250909725291987647713600513930129360088098566143589759338579897987909736694006694834984358397098018237201394114220427728950005482977049161483726961826065259889185455905577276962424610492803391774863043458279660827623444113819597493090983039439404235167669629814561003298665638617268709655663542244809516755015433765450049105761437996423596074841264624237189454357018475820392336770228666349542149921351084995498819535567054560085452541715409660141627574854115811714530201962260432343232367508641551348816706347437461808033475381950218120482572587325733547266907016389846846737740877553429122062500735365508688248505262198668004395583376899314765044299966905710297280807770333401819210257450243151411783704432220547810112196084100079190641193302973366922749708600498498857765605513430663636357223933002626963717369396628990823853867144693266864769767475228602198598516390588957125017340100561327067901122082359668539089198807063702003271170498419524513067777868839067702139189483271027023671189965813709366668665997714067494733216935577359943086636690074796858574592151122547400915283196285168574480356379225197184624042878167521568160659236800859286237330963663230003976977624306570890817894257282012438201140894664640261439544266113973556149689741898633467883133635709610110404761178208739380978834447332070150930791255424107623851009637248001674509287382129517031900975095162860777205972877023428144351190854515090385878363725457224502814482872962323915849468589680920112671999492618150501210470003624770536206418241796906652052829682671947945916717802737892637474839937106279993999338241548411391754241278215111134470566749923466194584474611097519980359077906433462882759973100813086009585297145739459270407729837711622186604772487081437294467056209834997887254143752502443009260921412145897529502392385735382798673614992503773861852440609542067622690573890320527762638544018199982726464689152984157044630951131739726812927984940025716417361941452902460896960678984525642190046761507648335668510918084239745276685641421124709961400377653775719956108155051024138006657538706553613759244230362909810577208918040649481097987817580114993166054431055150536903699258989420504189960849772788815317582231065109966250695897129794414645614725133617608716857828473980890745706809542211090252449681596923422263759772001545467562945467271695603532093120605617221302899801987178038995097882942021889321825765345953456995314214157002518478031803159289619099404448170079191021024256191334161474311130357640023348573520831823863877052073592626817831634229534353675847055184159961049314804006049460461804341708723678752892221597015788269328229401535036792607038818796517179968802146285901486271845719638774868835816996894851056892228008630809535567792086045849377491268608627300840531875336264431671188270546400391236991023755851497368221334779600380067740632568800622596546350607350739022305064002147538326825944228739351654141913519898460072461236737135260538635358939779212750341770607427960582738827111094082727592707888513674078937817946722137938079521498572003815901231954415638319326045305963879255039715901911579706711666756265477881065816546314922626156562804756885905217123566811156743685035639011188762245083555774952407839993817602553094443559395219031111217731763521507092666679373454159258932900626021840607738615909030646047161157891775138109598635574576354073578722610618044148975993185634367312100189968546288416934783920796659669516452182793943428379300911482016724957196408300968376878539427151899293483076466913296641800539301970123550269936645448098672096877926457108063306083060331320657519764737114633151011936558189295616483432517612686940500734722896392715996944829439063902953765616797745922231320221089523932420489230387588941666489339285770627472491617951577240227223198353228501830328588453982572904756807231889753016123103799209362347141824423935815913299072883489643762583390008409330093348611491213509558974533153484275199750203783006124147366539467777701368132805500934698611798147831743758889336450682915202299296354334439690753523968015624945071477770719580886016824256526207860248975872312474053738307410361886492651501635750595407915972261478942404094103327377126185238616404244055171105802029041815460234580818843217074352933975441071617393279888697576066751404499863211717572065952756157293402518864139471310846964912561205319641560065214512576708092897214518547323281531947567841873531954461115177516598778630502935223552670260766474320308483701832309792657670044472836875774414338692023883285484270900648510325154447228130237442765789976330591488289999850771685182248149374443575584743636161524366588087226413423756728056013602418433191943802032370739185995535975383015370374009838867306285338665221935760648675008349496349110064222661046100522889563790505851986774272807486299049495665615198050840790996448680965108320071425339797112703625728409112681150285296002731942523916555496610423425596769755677565935434471485891223244213721667020487736363375866271918100532559986837359773320729290032771249399484370151914894055939405243319993786997693999614209744163432387345310689441696063030241087341380720662210731243528010399616565587998688903184096514263016551814801601955896390654339067868517501870403670738849062047530092400340514495432296674610683919518694062640164069907002961548157239815753157093338674628600728679238391457210224062608858553781205099555010767933488404709813484674704921342509113747505777560474372097458808657422407386182812018705386671418972630805271055373029361294040133418157493955069160131460748075395625365466641064943404806948540621573892748797419890891371759478078252192082273027664106597924984270352956489642021053098540652435318725074450502202283268458310746455076909031311177237300189149275584750850519477702642433500121405601708139893340041994281457680100944070023690257538352243381937453628134144202159703598177164216262429104131574745001678578727132035686235077812454521335986707425881322174417560751750059239607989426498028622266565434031909669398679353373175869912308872010524817763060784019553072203927082904725954245507064081112564791403947597624086230738902758317460916244915131364526256062895656697771867020547361028544649142164811769481259488008056620707497958210019160913003734192469167666425599041211404846250446320604687108478682172012940757990666886805356823773935683952256230287225324988647147993368836429730044442851440916532000674155562190810906863697737288951449232633147516752936953638437668545307725154894132877243654485314577739816363964428345183261592411680959218268801094715563682382369794479051774888406361772157766631096480910231526382496902039885875613578926933545969530607676171348638719914139758689658591221682154144354946082371078842006903462440014742447452740317603179861811421972550737766881387666025423663692436606930274723589908931633771939033140965662432083375490374433166451575161962776992140602877351435773686872764999348789555140316620497281224288512073968933094971116896984354936393635959259551095632434713484580215243967444235932629936846784875890627975088588538439217169996681216662521581696468459402282509915103073794800975473136244823781780612505965719909301270544612284014552306061972655081573991465442145652459942257491150574200173376748227278081785839840620588188834508735675287035861111396542233290694619045136712904657121052853558842961985082695986926349621778567696362366605987219919506809561809284136554227465605742413553598750829301621739444846828444935535657592235678345393098345741609181277253792780291230307510396194195945646297497274308311843447943243719303536531765149233967458940698711648261285989648689692422333178237257284516900340009426017767543996197753213989520509275883191518492314477863700045797964772167749283200286658342994733915506810531011419398768387637670178087590710863843873065482596308864697970969982875615006080693188320948796554422453276977475506475437071805151393497108872873337765963685581129265871272008381811474790820599303663250313601572172403083984649201540992683502038796096536743928069626236878431287370309114232218147243647973956198965147415104321388325872191556397274296492116536860717019649657760673757955684492273115012076127864324146510057401643100437667369090371212069319422515434305926488680916509646848553292056922787909869037944210777669294791905314509190634139036172440631969157634032149481749547934902830920214403066953133716964954418103837390748018126963501575805227028505861045060228772655492642013224245362026497518553112171744330654951206639934565998242708888782843110855735907095701227073563973043687395311051885852310161217366669550125572745489493693917662255742811221918106125206206151232333792476935736692237387555833044486384062368317124458086674804323201508377272996790286869318259142601106568437970857812172960276622068934888045754937805265116465227808941328682059180880570053194109093844868016253491633049236473547371494873893981451310270117666240126158404958923167642433835455235520730706324135083172335808423520983697517564588404767207154828929060053625382026465738740059512017611912333167378844310419332059045856995419938912473977397033508194233759088328680152095180009328854645078434689841742630509400881606824695783475572194916485475997478943574023122462677044252166839068717498421144179154051181058691746149351762339428132413910653990990026568161442835786603673917833176175292763658627721608133752719224385746925124392598747349462755163651864287889902030235192609603095444118983235440097742179255341013632864627083735996936943367455678592446606918128218203096566892337708355141198358706528708868143527977132921293402391166922653099323343235403681853690905715779835160962638927821209244575877359601631873474830874858810123144479968100065643025038152134085923701108489585463915436971635909750885593301218279720308116393491264192345835571147811287615536742231025795322564651025617310880366779876964826679692222125353594255605147094549305350398065290357026532467051416950228320825180344154894599567763656111945238333108529306844044345657120724122526102823945443265772017301656592301595140315951375641901248757656276955242129815307889845256447781401463643261098585476241288039855935661255741106605848069733046609733321138310753742326619579358902102250522758530957914363653723826004197916767915787308839727957810504887782010117158229349096764539254943693645869171262345237250062024026645395121484529369972229941290269063312863922765510485942828213854012819397159421787212219238640400205594114044911727777353468433810713188120449589722832786760829853508328276637484121396828346846743921957520620104417301977851073471343248570661932253106731959484124730145805739632107089066603389601934436341450673278146249614514690753443432028387816034459639252134349136212258554656370313250864467580408579356673174006388978353721224392046504932048159502226647308910071073208514039586706664053423977629214881616625183613692365711820260501632580671101635285981594287414930786447823182041706295821287865123189286510231571885204362272864055097019562335976898906335727060960397214965811516367738186035207525641310387328978970761128574611657173806101677042378312928403978309887343950445552444266012457890226246237672828541384532962044661075246390782472270778045755583121932155679960646626896066342048914355692055027903666611507884569310045014435753949016672369659277751406098607528650146398230360720700085117163503628648227077602016083106100424378976750560314971349417096320464685267455553417523270338991919469852599791005617466198342039755805849352545746475711908925250886280279170287907862102446340589574491574511643110747019681648889523034320813156798986582998826631820152885517715226846470748984980034380547309080730880259543710583844070969762609355751788551327653673705582635336397621016923524231971123334126536363759116426610327939709491526989416719038797558874004011293718218613817273302170117095072587487964747340118204911849055548694082689372310725398512775379566455316989211843252510941599751270842803871004970490253050369787560869285754749226951352003571685505023417393708817531144054056977818728733282713241484952966803571795237083280379450450049384929519013107259905588346374487186651327845611664321381274220074485864365866146996269180578762884165536711473857823759529037630075203155412330021996646718263565957487252632948874504288319042369572490228096614660678906991555224357958315271261248625699266695084627350232365359767425923662652303740016697045477035622883125295541156105910424605640662789527892369571033971904657876603554484513981932930497974606136532228537067161117695514835242873932219402510459112246695901975622323250213210253637363508408157572432112234915022042928859880048470289763052636160691516298576845116158750212127391591506871619945133557756016349773190692189804795215742127531322601210209739423033703323942772528204007221315620818417575130133540658138283869669931390275802315493197464104210388200472977488488727486553735425193710414031276347980220561112624395285785323368559948075066588742300811787111309264609560858395165754034969052248152664921256828459149639498722541504402250879717616077078283222559836425513723502009151747917622725872470934915799585902614453199936894668903763775914471471461865444328591878749270184903682522128364226807710520458544160837949126730381289550299019897010922670585307441896776510207134198837100847718279015722811894981226376534105212417752981156061775041804871568389465114244609747706959604792239437504257758947013239901726639811046308060756379999122762459490883588408712337211326324258452032340358933625582025000909891542408294093820971552340989290571784293715694098041898215128562134976696885975058843676588347149802175044379174737181995649182513181973865747262941387156020018671823994982186908267724199333123713160069978384190008653380086874111761195217486422713913701760601591467284885004071400795590726680649738591167372683801823876008367693978317742065941354944505383636833929561592669578982427172613778329975087369980753358840522268956839396947314893806459588771589844500811017537836504827453845673429369532373687675361964521573558608498151739589113498067443539739017967994294041357644284181883679552325013689433721535911844624415287798578001078523143272719977161801282002526614880487803788458449017072709543938593296344670339743404780521465054635153084690265313282746956832412539774980837822911041382579796911226184805763921924719660073573826130250377340464135937944239783195210197831083141516169898054510337742807574222086941191574251498608626262450101308273423320806165839378432162517201484775213659728118393565713731974558460755146813165251209137995195742899628748376262703283331660545653189156323445085595918136777172947128766352447697834312159178820140509363312846580780547660403891503884192793938239609899254847038629198462825744725226882669764215143538867989567966359709843105961084846878530871705696373524869274685208003916189892392398471747643743655758125096780281870524562425229155735526397006927895205964452605509274343191794857337531016692312351408282960139113146461702327974099978101078203520725652610510272457565486137085553631893364221051115405158564977480156259328772101395624434734198054493075480014938682192475933035374382035928963488891370864053340642025044947918143256596961653378053234067830005897855117715211141541898859358645004213313200260695022053170051998513939715401743069736365171177798095890271068367044105517678628448359484641797815589993554633229962626738054482299213542797257307546828432118105217093960233313428027770929367365359754799722749587815923872180044363546820695826254894735088552266516426739633218704109603919833911149674916402292127586833268973171181245118656801565761398013056865891231383430634590931004560898463982812194033039816621697293035511575706083535405491689072681078546257789421732722117947313745471501185275354537927415316919328768719776821896937592426950280276356043959481685179937100736950604734088752192923930638772145021494418018561360661429920953315811336644989346435241285158780450405402427935117147771772507339264373336158199366378963176858015950050292487813076034827520663648983029805232145271969201722802192840876988790896453554605940038313880919125250826198251825295696967539614090781458612320065136093314164530454624856831649736968724951332773972473273021990291244080959453486174519423443873203023207484827996968807903931546194499167238650575273845444191300063502056695968829171472568370414938873869332592106401087588200581665095734827055697106203088551979605431673622598781474145056627471919683508118851136005113775805493282845047945434852458402522628878426780365843968419784549835925751821608940954596472108177047041695366960716761783043979455388194404757523250445449640282086531605187885082776917623447365060574304471391900881261883858117693248316231879790394183054786441908169598048773267575804670827377047492153768903283588876078182687513250315793804743633336087174525505629741695216663735255409162930560660374522246247913125468060794725079475260291207855522033595547537456667649433039985984896868290683729366785382274700192109480831968869868744165825204364083462603070064451222176452566634073480282091424742477105290285522129744800183053338952415610166009339588226887454654201986087812093930996999257437688465323925986804119300179518920056284152146254695633804284936853735560021348927983161925502265263825262223047152443458414955193564310217847228515251173904857151582189023230412692332693785608431925302907958197119270111747192836903199156573755221835902004575236202531101481487310245677529652870344618028674518818670813218348894088250209995449397764823318750010497803741342183686820457970364938357835932981057103884700619058361145450636041453646839132923054854584086687373366851725173784533405775861387151836153615909586244509620914254161258877356701727161028106377859888879125145481555469421204272637871693794772390527193323407102639730309803373280916511154789277439045212496439968818087775133382450687158986582339570357797712304216881012951643522663164540282319760255799210759137841564473362161521936966928425363072989503536161608245289248579631940356804500418890145802794192195092692007087526986720433163303260711702931627317186013520843855150880360915214015811713165899547764131163985818960900137487691158415370447319186709249078998582559564483914921810754221289151513831725461615813683218870951691553709346073155040253455848062474258068567062219165016355787579587029185765857550389194543156200698299750689065987219287386790403373907605085741764050691241664617293728609642833740575066044662864620926402643900767922498493366784116425200424391340597083259722903948916779400169889566692433833907910432494957997729524990149230247771922524053769927720669701347840836311155871620218303760822590336204374851565218414612545035579689262825438206059336937394925597482391838675962589406985528050210360780174485504446867967244696384163421525421856425677430720134967854554224670083130884711817760323861069099056903067753610759718012593219040886811716234672316034333537770773702206353946237240066034392778124060891992719414513851467906726810825853594336803571029946901940890612479486093775337077052525518358031759920342682351676942126039199505064875952925892960332191813528035282066749520854943498203206901654941222645075520764067321300119385210212588186669785109051067709683393162982454767055448854615477343811759874212352595346944239240606858850989814767819312337942953621338454417730322472100186288669711130298517573632653409774434241386665552048629051789997491040352165398515081548067271633653563095889127487654148286031030168538371271016993175411598433471583902700136267667381047725486754709766771787630759244516553575451085302243099947765970874424803021283748251663560091868119356256966665201246659722232517089227543528191315740101807872029965315971929546430574062552891837056170843928661817407339661201507254132216977716886735495190780177714678943016068746225773711000402622791022754970637747459205689621168527437016017493027165461932334073582240427229416368896915564575050794722496455652761426839375003946106760527513841465029039160103813130719319650903619592118151123690351434926176267559103763798764494521468055966138126191549714603076848822520863274189132964715504255745875052618343641534030970789419932443954805505228795884636865629221248492256155059846477087791714947893182235364453225390131288325605105934682280883574762717507707732566087237337555144159818754514561572414246859673076041275113795003254107613839040917761212441399803973224236288407072145480334994148231546708705078803077108894024446730222376297489831015996271838489406305595207127416332218052875522879341702841989315770824655810176671172756417814068722818768442698153122423878864058412190785431230872314221109590823585588424796735020184437747340861526674708894006267006697148959376886056525641413715478085966809564903169912557001304928788722410779586941046136728613889456165274597942123372325867922334033211827282536411627761396082913050570254817045533707626878389829138615965133124130203958686574982886258770835664147144198308127722089389496446970811641350982475257936866465748413027382603901996655088319890005268888389425158597221545333061247858260326284440845317737386140777855087932461069374424844100573980187701849832662602862354745783631978958275936353062514621232437169037266313743255958627838701359940999937985526281521464869862639543576825779341451968558179158190988707992348498823019519906234607123994522098806356392676011297283596869132527576293005458077738195568023942704750732720667528397100385117926276687927195928491748667453842180647332912397151743860455078753053476192639529836948501226051176059323254213280409027100150630427956901372545277775333585522416676376741554131256517165460067594344237537749443994825419352762541886483850279122317172038486728237691120731262248738707162281774512763424033204779163531106430374812429357444773127143053141270041100803674332469808217763314952304996724964686493203480452789878113344598667562695423626585712353789111198735549936216851477112361115077952212703293558381184332828448993962035648371906722349884792225391930822790108513781722350530083296549211426229674620390473859335581806281440812125028052755271899191031383933624145413977665650246379872026586697447165776060159014558306667522110144089355933464080484372754087112040342516065901095466782744673390307414352405760060699121669564087960465741252036850457919792958009115077999633480000851122124952425158218419567526382027649390040090921447470018777571780564722620719916291263185506373483977026016433513796842626911843859866542467177711444267764900055789339829743195479036146944481407586724566739438798517264682517709225670333354346389511598463251066449050482147978446602966328408630220467074830052806884926438188548908232229139455209820015238283964249908932170806872872322469278493210528737383990872560416010584796757715228303805497579301137221141598126923626414033185927924969952497672839081365899964598304043669979687279763886861819108652984707904852654596952589101285437169671471645258067571030873929028012628900496425398017577018822853285261287542066761996434927747792455718874876316099363584067088693608487706448285153622353684212080447613772089306510060786357634944014820319688379598939476380149911614869994276511678992254369590114079969772640187295334798391795295663847445071060336180814206175600361750474900503029685053001388262305380360102104736901190104648211985920496929009176716457620908256274928885869287945731878053992103569648253097470047885554753598897147568508938048608025304435172456223694186088496045510150600237275853276606301223872525838809005363861695552030198261489174220589968609710005269260068270141056231700023625816655766980143089513361818674508840525618068953870937508828407055559152828047686977092336982419256617249270294731033787190578148445752140393922803452492939792991585575613780559320479054750465253901192511884872772374221912320630597148132382130274690074896221255020576785962123792220360271879130880384602537449311474374731326536909874963017718119268304052448925965589583483325684125265579557199789826948048126318940652284765934924310447580939079060467721723618214335638741179092428143492355948141260870071704012177185535041437059463773448008161944961368538642060728105566655653423873414801410645517838311753097522332936360519100898265157101607648624771192943669484302935932530187871203055732413361147277818560725624226066596020716101878814162487733467488137805066518427586717304866869831655839147755875539131409824991810022566030383309324513369699031259795419300979870797261961279550377619912020255451402127799266823946522955504477191638016951497255598890837440738556553287761931218194485946331832714459288720793982165661378601997005347916343176383477507607103041282137897364632705808056107409355376207421595704866001364514413447179269606293372901134515343117154420606083261639130661718235424209087456763641593414336434993947940491383221825134552768595454320999692341563803554499008735240857475585515766636453889534849869699147535120601521837419749401321090811425431011368556078279157535631765858336885203313866570439295226061021255907729220899558129024913208963156328393239819549546484574399949315180832831410314216811668915594922766451084242090802403411968503489876320936882498658997575374176451875344066520403431877451691224802568374740660459776839096909793666904722022428426468155028740657088071391337944752280263942313463859107808074199797043702738000156166981153259343610096258205501100704493357717553478417667275303278717801416153686528843532800524364294967312066287881193652691122517183080442709247111582186236311165569999642410279495085439907045749748839690667908735961823457176296494133196753523834159821338689837287152544934461374218760742224930437950172389721255412247662879300429338448197935036573213439834627407176392914172670068109612737234905286181117314974837341868425098955114059475082830430667348496603264854600634868786721788618402057129229370714685628254355910405978108146664985531992870839538142378784402418006493599178130034604918798345108928673569953638242726791435180596713478037501076890137007129137644130022550612674430572048130941095001519651568587460236120183276910874219267857164205688156947433721964734683566518493677014393024870814859016533873120523523485802712560164865714171245976878184747118486837061948694858446269260279759410009065786937205911090051401641601663368579393750389808899635615084820137457735351372857027358198709117002395883033691329296858719132799786874356133397816050493925918925273354858850504514437531124520299819702321020330787373493666419600972235541912666103564023616381682283554979990075743242589039524218341631617547047673943806326303519314369950713964296263059730303833606331107944442562891733286796167769957375835310567355350404226717464447994240032675866673761675648505541596010962339306156409369180664315997144686957337721842390311762672065342677239736360291288674960716937813340186035947482321505338861089208793078768561181067907848945737360531552391266534887613666532825648086221727894383714779726779798784575257397351652912267312355455656896007683119350777219018353891712608711360007784402005561747424801098751729059589803850231049503329414769123234985455101768903188411924392775622521737918631495424495354319551945962025478337454303630873164098818671853963634611792388171042388853053284731775574751254586086262801600229277950348432180608268493172924066716319108296110935277032953221325034866420767746558529559108714719187181907505659188956397673406804346153192532671633326159685845524263145045658514698190989429712831383352080927345936736920345930220991877379893436706101692830251902956281811654753851904067271582449680871718733156672204032958546564607804206334126873074946384811512392067215594405395757241224897467805296545283357353496779908457525120001812871257952628009540521032398179317108755379877483534325675180128557510483017254698730625217691640443595548192899085801469628770887462786892040147903880122917669667855266505668564812851490625080641207370431889789416364794731563152137845229580808504181412057294563046961436028848623243015268158617341771847869752523004642566578727264876089146248733287928422179422470696872918701657451007183317363985251857797311016364061317425383598070184410697754329350158915124002115336245074105442863228654018188584902874564016642432831913101511062319693795156783399869329511669142330028640083369348733915158955168115373826836594047561617445353046931979727623926574992160605505052226952716212456642860440836939233087123254888277673664450328287755803708225499773412753706209450893532684166400598947215243282525213024782885752024478597856145973242261425111376953071701490100047162695936092636560176621270409191402137434108760902811909893553142945875711597248509179733778442814368920161597799395277721775340174997875026701923348782184366989610464734132594681622537081962124793676902044636545417008823750511669310287836881763116247574476022570864594864925283784820485278992065958239659766463317007324345515761371802904434357347572435169370142060096600885194076276424583294181855147854510805019328996822386620063919101446690018432917103644734591069710336971776071130353563191775139786796304335018544623225344721791910895326473950296173503667909567982262684491632350879884406184699131327365057701735260478253671651884966451720163347861820535464868446401370862432780886727307106602250612826191020453235122607267488018089581068895083065778203250777867084295387174542844798602337308915103919976083322968149296166133141862353608715271589721929509974681237642406531909314253992487740153423048793259443361755487612038829430522154998455529849229287109170032982514448360534359501624526648030785968172741655146324080154170580987120524308802105289272147992732418496190277461890640328571594054530423018527058121604554395520156076896246465006220415336550678779574444171618190118065462651087602418433956581820762123582070437579065041751614419111945120810404272171774355894230486122756110595405145970118894783225864342703917872312743278963036084719619523965137113435436896215011900151872309286605345313348794548950037686311459660256383105578104252333353819520756926132705545787729474323987515209739690110273083701295618179263894449830712872634931143997208726226915268344696232138147952597640468093109153350727115378133314425714607096259288199662297614666619907927393589066776529704728947483556051972863136966348851659608551919172570642088756024859372664472684837521052844735609528625347983955815289306333537783833134904190056819744144725018684599023817792166507879946640111596029421863290103356298614787466262141371049010583905801200139557308434676256183636287567185108357988206509929229112819513480182307998108260290500480013810450962792913389922740594086997386345824977457514756421122697109753306054850533922780719922446335452682118040028116418269471574741678423076344267000837750680767140247461330222465198815298124073169880240045279799785511146557009805996162469148534565701624978463675199198180337854025870006449738727823247917214935628294674579282308140136704227968759310575822285334777860177731341106713087139099791728247093733499318158144616488282162855313794989471632854491560275515090548399485454990410376756071811032430981471137898214673460575897137899997174942275586574992064589700363968943425077830060104389042021248893304825590408646328176995140600342761178980291398500782689891031366432821660558017325007024492123685849765753658149311400651671452561963077686348142293145348558832066605670851592679154794546643519765372767461238952751883464859456021203341524042700389607810918162863527519558359234677971894582144535832808117179244017684453699591864506011439953317432294650742115630689870581611311412527596925435819363323106250268393950098876697738027141770370453821799079293481649098607443937938533264805146467882948443694446820631237457542071849630413295013638554151670468505050478109762620839756739384588210444995152736057849204105464968117202529408396245192592743614917755081225380633116025987420979066855342039826662365181463854495812718792207331866699391115699375049141259525733709698100722837818347367244720201256802133447621146225900471823059078824468021984866609494911129571853157440235958369862945436075183579607698195043698876786422944950002251782618229136072480539860253259514786522867286106995793988711434476401103250733263487479386527111913921507936734230039029452311889419523438329201881733632948434434046415431606983089587765103018292716778521199015964008314382492003271180959360375008790254998554723523781628301301160431179220311330918876615569659016208828036028499207264223205341716323414003501904642983976403663129261208491055178160558393232665893791015716136739484146851284804397341910657414812238969926787440951237219169057033717644437958788011489231664817125049107470428052210588646649390118584071565643012703633242955079581023079151276333755765157108122832510830374212056900103800944523681526955396126435089289074793570462509105289781848951772255770631841332773193383144962818815067619045524874080478094285173242229542646209944263334601736756550575053896356871486581034693255011187120437111419819504976434357709484658659380625007027466283520790800682704972585502922080863298653569936272289726271083615568381502228168337741777466733854933163538257550351044256563788907338664992126093807191063620377471139982075342093205956505945996005590198201518469814316725084264390403199557724305784770891364955369224179357002620148953891233820519078068236978126832834180013765274873539371379300187928521671809566858365585324597545968096845241879165608324268498206724277266951378730937154289649567035302753586906620143763858590156819575963579274840198140995166111449404929692932203361890647659312937500368003132985738475941271816401729262178789824065068158672268335047113753037036570966356259374821934441374986958865590853375509797747315134026922176122671100929061247847198255105715381187781525758444102839708131758825087348938536892993742030103216670629261136640070703699382485430263782683875953685802193000030275105536183128465987225382991352563771892988782822737426799976555432724720896157722267981304074641091638480187202708291360868083258443868273156793882306850326417584122507302747376682236908775171294985570978203109190193169424181973330242942018109947318843739360808954219187189293219055157731469176198499848499815394122167257051627044167902908149216758454215855419749057717929603022092988355806477129774240811801630811602961306233321602311478121735736215375265887283751053527331512264049830765484022925322806413378557142044916245146293413714287076982916934888951040790986508298839023933704058636615055703852325143156887507124021883696362334329437748048649457943986302560416570656594371671986726535451605416169332647661950144430569412574974924511455120640116601435033637919039684782603902041994483205169310230568494113845191319139726861741913614438842557592840351838375924358202063640394137346600851401548917519676746758817544175115305134203982327385724010799305094451087742653070406038887646005817369054059970089037082907348606671049457784191959649725555722443646008448104734292410703606542469876036700481871534011949327689388713719548467670408221102929208808856550822376794691740323210610524230008859327857715361862717780839499578817300144298125378867341396616763557215329233958859855921309155728223117408208674721675641518761588960803695880226566666658383931522968603011859564437012358119121332120870280961463659390908420616894236120305111759624617367360491968776621728504716170770140117047725758153451133657387153418084829811459079094345114590328546052480248758899715195018715804440754042279070962998743270623944145149071508070500034337715867639670696326910632755311988652209594203888032856637574545791491561869648691295326020870230246522263479223593149260080481878328015548777109307011245178214031637013691301176729827231873845647231896675324227120306932013761887964459503022222695730249986029215910953407397711329889754407234933689913706618078665521978832203292018670900175534975341845721626530913133349630593881239274262640450017531527041172352887623116195787069843832688783323038130257142923052764709041851236154009709999687388557458419911260712361683659046061645494816579362613631406955537394972106652656074318247018830951195158221930194729715751513543428569047804803891977545663295001764129777104113787227307506894144895179256953674631807506012794110347055978906306792964173427192546907987774286399437886199666517900125155211307301431733804879513925110661365367605046520022010066343414440062178755849960659726489016139853233455075086959323804921396787922655044164994021675522149524308201506783776828150739889033814785674193050845828196116278408408672805292639863516048754219655288469573236621355786798826156750452528491945854822818713604676593375850571370390823992357153151867787276460359672596670409989540343421699247396533152816893113936129737182885872597088514376642375118367901845844254461041855718227232418473490832611603265249586115349552308053984727713453799146097517086918955664319708679505212993329264891970810178661373334965913769119718828520585836690560498876462406570020277757248361702631841634354057026696096717235643099976941832111845548362367567420308446016827608573016545493119242092680831339081829920852453478512978339133505074405984602945008183264243237585729049210647365169500531852524654227520005756445581106370136287400990533263078114802358860212057767002587070492588133281299696189098919434745467174095703032034017379680262353489339042010453633077184116710332076590330721817588221822400081600475316750597730803887618487296981583266561575161092719535350479933007343919984428440683026375064249076153713752432562724178386767605576214279501854444748275308490311786734569453948457390787880001755457190473673973930412105775341905377174652725881565755657633554500257101993228453026206007753449967284351488830316840484559143015454831994307754037397188802012903827149655523867989879869845068659737697162959270384238925753710579674874665069562817732865721491511226228378301873982746386803510667272367891824281844647664074121200504915979406170927703057179896485729050268623193904315419977299518301854755631430941305313428038662921952487951767443981277621601706766471445072021969976047301120629591708125822270454871980594075954058648456200855057502056477829405078972664192669538086658525581649766352267587085661354137751784767632387496886292193528218755671848292788221147147191862238700901259705696357597521353583528944369880985114341893040886983521667958230974440192920362896306866252969222012223924099318206580011518818762256133691515705340971380579704267825363642844290335938713020575089972761835011211011522298674579306203189192244955046716441448339312690747035695384331441365261445000667059862277286426851040785085031490994967166023581880995050846765937382246750865460728231734827658836183605147393823727151946581663318333889411831989474508251169330701968622198170563531132307083395302990146898690653968628894567029073447771937390459057061267747463180504982003964621993542741784289910587122661061014359790496050312665013412016071372835700325329121176863055062229972123051239274102745179337673106520822033642321286350853006060016674380293420792006485777803826434556771245731689841084270597622122459308509008848561469140386377916996504050789444761254997014754126584177355037099888545774563314134310355217126326509361209696201816820127628961068455367138041821079885701593507718437256666632518849077729253158131701938407942317649682669904191308596567087101347231685211040975069159564480481400602750368101726580520384457347039016719312278470357438983190486275230858327060195435023158633060112062930456747533639467923746656177836820567276099310425994030958447785249383137143102088932890656664790971996147809815012455138796153722433194459704049428351401701509342309080769725590564374826427286870381294118080416850467768497504733134387011057945628507642185420705767221898051512985471465175192197669865600298968354042212529654712982167373344090425424932510690446129337276965402478148206628137600768946435690818260600471864188358743605346779818006063025353515385090277876457236801153405920254424707795409470772367906003346398341541452674860166224605891961700743228377197973683214200789419502324499706862240422530849766840821168230024841060306124653356556289112368572300292984336056533568221663195673543714069380307719938174168554660436829151233993311732769472145376992735082109578742397622464928687805555891929605758486807227471580359696847630413332876754935158812525800614233644509004982574276525230603278140752354404120858488344475785104958174758646963109780126261569076597694115433916464602415209374662109829364187922491819458368107386892906851764525413457979087860766184772838288702178765223692747000184690800060376082310341352042509455270588028033390395098828431990352425558939284651276265373096101347012110695554582780957700492509610234873806043867411021854039460353245575437346577043213315340790664218098547218874927517059144960783410143304213049465068431534077584648607301351300165807493558059373297649834428875837400381726755288005874202175309482452316566931697896628684633331492597240298082393145942524422362714919174256576491287437190488194779421730885071989265129461734785123848839164272418707515504529741037455367694560781127359987901422500564557804305683305763654670070295499064921904514027098639064749888697249968591679495914318145845042280964510616255184759268325328971503678072298075621750911457092991245690287780686224435592871308682902454775690000103790868704679455165347007542333545772468137944515300921157361993069284117388448069847747399428988247689351039053457092428472467541025174397502655875556256872951546148341069353471186570942212666571121566774884041008054516991847254284062564578700958006580496596714902225768273109644074619432818774008931137990669831678140760507057137985652874447542383728846169784525792266722275485099075399197132483680481442729770479030353574763941368586963627225916050402897599724420244168866886802733207943764543440339192287559469477234192576868442818023653613805033301264030260925423854677001066789067087836312206119337671440215688860239126459504284703308790854462889650527223931361781679325860651737241656426864127373432664671724625429790544036751187441443511014009200485416926411228795654195753840778727690383653787520410437457584350203313855384422174008894451990780951680072631453689044123541849381516219231320528042469207956819213600259132701507570116545644292877522792516379394542082850360054056034906365287861411058561798466264522055331337645732088374872503366588229575073632830007507508427105989314131005075187396628131485123211774436160265609820202340335333974475794735167799757568701192194986742713361064834229265958153332298283438888298874113838836099186537948882324435781187547855584056260322174006635779371634278326586662156471528281094433055413822426132463167165687869110673986020778659941895033981956786624281843185831154751183229341531086665478972580872740765738296231983601051607453072990245549720488167261834387547022806264357690098295459215006871981633640138250902973071898343817112091796806253928315737031942467574859667006434281168576067147079351371736937050019556390653389552674538642404270446961181179264301235318885730499123531149909654344434930829671180906429715763963988638190068964561776264141235704364769706590391497440740080327900137084444516816945515235090506314306434778589792259745628375138885997789704116869061885726875113856290740011612819058211294183652887775284586955136939537863001078516514099427277894432537593500658034973369767315381140191510541135357059671412241659004485469106233805888566153870370220353088532605367333295557191473430114458364105851383218796579507352491299291845728234768848328879309070924169945639694788351843750750504974955499104233785894955053392035372398802783045202392935046280469963943949815634916202298259210545660296712774655777053143569279799233462972947006565042940018759330455823237113543903737162514896546307211599020784809210321910166681713628639260570261857564551955936341083773108909549696970697478401795930302775762627295525806911946522801355116780634737726446339881665984723773614404700260570977999575876400547757858586248371600699156101811821721664003134621715376679104316679927283025188920415137669703690207538913017782536549394754296126779362569556741103225492802874460339214433364992137172914595199332895442377663686222695836877444674764610627928611022761207115320454597460293992439407009506595530176754063293130892326448859190803421489320202507086791421220502552480332156356351063109627050699350254936408843012458957396025238501287086455835686289729785106204213480486252033556781689032832583036676813261520043141567351644312084087821737534820247710555512986641368005896961789105825129950101348874395689002915187616342590979887082919355017806607809067348762146815899768873807363608457666951482367440851015375023170894752750696067929840210990551291667350674088841192800030751065611252075539904472928546181665563620327883062259660109030553537488910869808534030440343518566842822390200966039028480306147863591745013314440666285796535116437666091821329780613458768801027530597258745541458915969872740101089453693029688619276518583965304956539005948384114935916132426430272080312455795949728197553378125069354882523050703241103377769784023421916391826896306945194872736035681677532318214020595551581415470421336938637842905598878412370302085242487963394493969870174932919048153432368578936202622817730176239474823304584025618204093995806229063467439955717165190923693836539588886222898184715336701329834711752322438378393387373631345943103893345564258497959470816929076745210303463867773190243072953033550901537508562443007838961173064871249323020584666816465652186787708086465167286476816756176410184831142950755798218933246828397355285525606599963337836214263932310714376988035363917090853840097543122381689924791768968236144482946331894050938438279428087432949066043971533457521535504375425066793931440760462204590672453095145003188356407004380780114210616531295373870484256164573652968711938186514303832284229529612922601907151119075036806830598969186420330586048328072915877546710030347870896784111935049897335373276229036722392482884108506436751674910221544794373303062017401791403946833378563661375121147629068352208161368341067204528187253877725325456378414622891011311622421951116714107018668171891507356095257123629885618938664546835828410190422023463807471710341814984170817976438659155014419611371497481078578842569700340503999929069752946729511641746685505536439559677815553562593053964280045205606193190079647252338251392402296241106634050334368665014559575118036996428176400563676306411952693126292329865201848259655896531567397791387437505374029380266634707186731602297121501354113181715696528573767295838155518034318150946486108354130471721015651492228341166934751519492792463852941523640902872079399242357788684274637537216171692107529703748573354393374205728057297746103463479085539535604847829234251900244848142472889900141324647462867412620407254072028037000579504315665640047934901967634256356444070303899854653731631720641630037254952555499323942405253909790880954262751917288164949722005867341687877428381939795275170703715002156511369684327617708584979854065861268301529485763312569654136380798862145899482499022791985382576558177507795999923582233167482823497592062041476440865782633767438129528720284726626338299138590450993006867278395148581672977838917454233576311342363012456015592379578147634468034191103836679834409782734407309128466451707426858490392218942332775203934503633712064959532579586712605831437288040909768709198513854802629254493207116529991582592386543161126644062790495876501648287092510521797835239554698865714477576879767071339381803836254553548204052539901466620259758835203840251925158400839694700508688922456669907355348023087254554890517647667269811496958603054724348141832084559092301777444081247380838701900960197144069536997305436288346845237529968040026387217939514058110915689764313477320402415578749173693664069990553007056339298916872809223746012458609045867208976189166393471287953236076287643940283554760121093028955673994276391459448652742838737154871027422205050728160531063996368563912985033078916948614798999957353490205788330212167183753302575792757824501136871007810932095859261917593378597917518491147940311584195591119807307028347653593003593239366125995339930220471279089985219013436087309949541185970996020554828473623123503486897319388818020069496071471403924382756261259366677690975814377474094853105227651589841591507870831628800492081136492214441919658606162474785325750242195244116008923890630615672853744019585660948415363644285419112489692117172983653076019875012967530558199958099359770113518022515352920300298699032684520718588327528443995252242472003217755609510980577907813198687193190741529518094730223551481373726106248138532984176806538723367780046660764982984892536283686394652833723634434723634620456945770650048817875739479506444421041594887194982100962353960596993198891242335151975850299871079100613373593036114796480640511040743436621867025759911730676977739249644858198972192278695505679108284880419906856401634702874806038856061387811324468805817076612782903260075072558933116815159889255467822682856126860372896144953895666822945792069790683174412030266289136550478770306831990660295375596613778476561978769067075198811269724043451923586916564051713863348536403996385084655503260113196040361111442752473078551666120189087899251699914238025094578277305791735670647860671339928407985979114883109921588708089978917712081203305010755940216095487758739925291078548347580746767446996030562041747199591942249378960218073324573449142617908954369566270260336782397789069082093533033132457126656036120092127750735733362730460579532118456957727221004225437409136254246466619207399333478018452879590268512677035199359926762003716783098902411567373497766082427383897194160925087990586763924414087275703353480909970086678431898733800960016496561339919067613352492982315890168276928450592776514726196279459329097218057524317842627736085064614522143463297736705704320630812921532871973111569953034553696804419684612403807306356776451261243290058753887539871338088430443494739658733342690397860165002486697551934101942518095064507702751160928041106931501107851325119897297125069783021178320503418331935432219410937688091880617736031157153508306415644274964786851666935435594342791740528541764716359147200610706538275627866937225352295453387262579989731612307337733078583538127365887498370155221196413445783037204605082658372007647685917841062380035464173718750820443045477225906240878290011706116211647088008367110346455892347066523473849785858942535421956021759315581629502069973512648125226560809940573293620665546787828209522903183134805742754177295512695405376921687900357489738423146109323277740462399201560423279107517275279075681926268316291217638257734861017737755254659559834957327569840197125887531993434559216561073364803376545593966530548546696583854879374498604580454022989606396427251239125802504839761259610673788546185063795998434717916121860636201262566564078590598753536742551777130467139904009945651063318371129446542080902463150455398184786450872755466805880173625499704846736261810731216781893231562488377719172840896674838185928642410996791220878518715456242077852192011130469079349665641316391823186276621066882780683218637140346146786650519494892915365985034674311294694184277383520956921959731508393796314200457174627451873216247658745163409761091942368639519527828384517707309620895418340625272497765009364206814114668727206493799989956395721302105702132242021993874289945763910353271228121923661525572160914985003544479996725662408856160008409572570230034366676403955517560242875162327146485120394310546872881965655056312560206182028317223535439243789769373986179268052403322638924706302529300156888530161308269793652903909840905547792431304916724789664686071131051749966339963536708311402565013925601067834072830362366356374952310769741384371176629535381047709573038729404686125704566694730336554408042630646176169436428923646812062824014812423172223809298068596634910330696089406129031046720437309175244834530234195292617279889486384634196393661694618964303960506611197745152213259254684575555272886527435004293024162763193871233715455944846973240694846952597451476730843046203805386879355059475369102958192298999990889393931068166077420626495059866618876117196766526941633006636570190041573910111821283203187071677848349208010379638785714328654149702736292218972869043277282771031194698383411572370280057746299679524907893591730832225703378390451816702965023171826158655948731306479759175433274897631909271784361333133486717343471889429372908647279821083861248335952646693798941461275617112846990583769007784037359762850168154592304688099913903787989962365261952237698465997780100864388925167229979775814120339672410299920058586330196331870119660004494500932138324983913828218880701570378888547945801582686378033868327303491911800099097570233308422273330009408704381813957429887277874337683889776580779466463777840074205635690239348725565471415665976812983681759215085045817270892464856021287528139239850208216868977496205682732719989700642706807468591889687140711679608483917660104020865579524445858459753074508718975057097404258124693840519996406643810491023313627860203371294544677178752391298074315180079451121942495585244018532866558660156952204424120408022277255254931294180569133815508874558510980454840357194685217354308680163547045709153304709263956925893940166288392646618899776253003238349196543373765834385665067210479256003650679055214031577419646232225066348376801291333742534823093178612100041840104627089174711039080559833891882964312611179323290451235802928684556816181638921787704087909320365321967390604810569306009909071379629279591396148117352733270187400919343483100011003651034022646917999839445397539342969132149393210695864705714988343988694162567061361530674637032478045201743676729248977103328995687327787013005783038387988019868074116773138855131875414607337118635927256748785728761070321840483799547077590976452165069391112840877811936254110056074360061263403563439835155116019920967049681196398711906809157142186109231156643454561716759378154841821803507226751779495907271224830219483769175741105416903630525826066136695372528293444025608395366041396248703622363422752722977567447725024898234377527516753330788723694414274018245421369712874133055781008870696835833136067107675236596906649564948755658469462532945256817013925511359808468660014619437193529702015118954642631905509752625779687257385134413424257152776170190490714062611489465738151843466641083382216425312511300939823528836986758313607674276670818072229004672497442995087621372604200131728622373236906511848286939074482733692071349542181471496588249876702838210087994233051313496768057361504705786562107287250773966285989394118169837690750618646987533924866704223570876280662901944645963650991308740432427107475624885622141299049339355256804860838343620734455107010206474213802319487607763076085647670631635165370590301091892454850953111440659824379841916994989171731121773803133870976483839460379899872021040714008229958804845030628727306433837077140173830211020805783810933233790948549455339762502045564006684528718829712359058312104154887235566463425261983735349787963980446200781645082835753059679632535491318998423861666404879419034710551461443900353855861141528671138930499758049748337970681237885708515349681171610511910801443951155143953201672970338181071480848111931492473902303569631607627898859821951565295089835472235053733136735840030087910535624949552844158358319132544621426995205271358792584241002576924634680549158261191437738213258395404898301273782419187735269868828660128420362195693890550370708562040620325256803623179086504209396009583970977353216261974688284184383144712867057717446985720078817184819707500619487623189388749715222065486596536504721568205813074026981911987292219166018436583993296362950910172297741704214429757577278701768810030022271362104712148535030397696547830303076492896820742326064919586531779803523810883819007743897502331858373923885891894840572572658551311048248406006843372456419020000091299565040052380493999814473615136162099405329814086429698105880675693339221739728367643410290427326465916308564566020205913806709464459545940856863344904760185822330850403021473897291471874735992831634296152095287906404796207675876768816126991163063270945728014308083872845920445108238008579361262401839883750984796259085170508645938843177985697948608527362964009118681878594985537424429814849760508207601426769317080658050153766770420808245804891085347239159349292751764177591105047136081583633543524731362447298914211695928509713382747494215360765428183301721209937666055453203549839964310967711637718554916530048417004564668021781964746432263573443855258177262313132716975522858774316474817762881482696862827141223321872975482351027997558580225960126723811045274734961077159027709676823523942871877037497531416819491036878366696871378974510956362312493799545364676111463843865882466166912962673269308613826464091485383933898561752768379957386624260126142141715776407934587484968978166580424138382256995211481066565103736851375731217187514185600742008038393159872718486216995159261867277636129115021653343443566031087228793163189800805322577369679588500587581380779705116659074129079374522197706227238230524600232614627538007205834695284246359038982037761637550325162933634218336688789358639413263798306121986089778975019530579880687621075061299867709312935433419493506943079992243582152278945843359277472432657157646084000915921936633873089197471631568851055853956360262297374742168957888332040863836420617801473011278495759045533070591780624512174028216929850931540320669695232270855259211257079049092515446749186687922684725578293121512399343803869759117698010489154019950662841309151485287875947086693274329763813227087984365501699739076645661035201670540328464884220785559942426135888234748338116321485625849686605487859025693361132380820396427980949268103006321673714118474965221238908036248681349268769245975598836348631960859616811700746658854120967330680306712723565145537386826852898263404987533548019755206978864400855895228947898929337427013717835844722700139081676122388728842700607922096532212807415813130840714598030615860173646503682231695034721357285074009138255636938834742555755132587630875057549910931573041519526299404011745508625257532576651279641045401856013442894996933260736337279827218683548264260168373787040314019894250102119143390023499792950741718179170015362469322918887579855664765513516939585075209257770603946720449046896979663719713004511139547202735080441852544597092627252222044720004972417898363596659174166690962109759807643306818362749609047536909851738518792701811922208894019505507701305449637150489376545542395525146356207768278534121839242516094640561408829601954706159822183686788065360369659126857328403376085773148102903424368598647755139167020250926863546043039380395185996373778912283201384881842753373112765269196962597047532362659310421741239971556693228474375226287423307600666608566840673660595246714315470325939513455212511281006087302301943687918298449097999536008690465194890115388943460864144189058394272534466125128636367593167966576069367456970370702685110057282496904957930885182571616359518273711985781450111534276485322057750849779364933329607816489733170123064426362288100487232775573256497346306511635583006201573769022129421275263440040313957869628432877110967443111052017610310811239722905533924769480618878754411446210102583769881301269211229775418443456307717134234408910874504142626324578923631749179529852901337704713055402186643548072634483375794148189307068934435185934587099519636974384102241973262995950115834982042957616051765243249854618420251082555279993674485968009047136892129481021948926844858999756326188302600339331956955392567012485167156613734330065196492160232314243842014854174887509421371443134439043669061006947748027691137469661189901149076381269796888335688250745554760485759540184351275047195752176512171092561054414966546335704813587897207330413068009480619887700951162390414890866295707589680165960298566931837490052773376338419747150678905618103941077748583170682516157054458724977817116555787699896174866642355823386228791980429375550704613901865298692091589667671817593083954767376672250855379523554675475230757274851442587535685852898905971823965968331840964643868558350918232315450203272705550450006577850809040078159010793975993727840656438082865266792779601804907302081390326570762792445653778753922956725007368254659672495409728472562989395885635879486289612144578337178798576944624358336995217369787288901443294192858102395095823693579159824868782897676023833433634001135043983769804813577546449266339358599340285676909108435443930120254303655444938347766950952744867268762965409776428006603359796355660762795904382580847117927606264355930339108077070593873646633607494243064436150206297782418816549012689865574183550489564056579408270794572735501919352792141426755817488518460662631657591101815925419306823751260358730730750709773122512300355559194171557271710960272070326588640755670122518241820273125113533468033563386047805235094827205590196340200433998114068142717287913327172624373058787930538133273086613459800648647889311009648161675744384212920778632564599619333553198245127901311632168074476303247793096518804974979953272218372253362198123770910135964832762074314179928292873837025501855057463802593035642970511874222501056564924278363906016104088701248412709781169282192534787335806724689904679413589096976023351622596012812563475284140814158628575304171071741613738184968150413178258510302961501021578434445390963358871337214224888078557871450644568304284077739348054866856554738901340100111954080566855318001920062523924209022369351418201995713792904503769992806242643659178599113743564207968624499706222440762318586288354002555942677597637727308348094051644447211072322197608658918208438722849315176626726564651948860496752806354187138848473937317867302269766608006996054208696847691424492765760107682067430449453878099713854288402698625153714126665148463001784229587142648709712656878258117954970779847535011747498828995886677491335692892535135317984500763910258731141330979721371132645416669881944238276660769012531848771027607708797092839726089448668547278063125937833605007394210756234679629628370212079795150038645347974610936570350106784126841167692687443493834935013945178763855377856673142795835412781399520137892402121212672988606723760673220921288318414447882298893195133845446976990313504477651860342367398152440203828276348419988334863085020806134890928866776549735620586786929857239956925001527015051581980741364428366133946582370044488888213949776420411839511775761357374622432396188362424151641258810896923995265900743947127207559872746103237769373514892378669779548100109137486173597963972919637891082456575839144393944649849574236733411759759288423135802397888051906589251866222782667994294858781941077107408644589704959173374190742050017043711740919264280829227029766595195566118795135983600127633681850828933651047059077737914073388826732788153575696987554307066146488830024181655082725553798238938594172479842431933976272455271859204261576899126565762884102240240140699615586434215865490348133126253091666020169920586061161268240841617655414202978149500638445825842017925414578369400743707347502108284216505438726093793455683062025812289412545631317659779809369700586921986359572648845723246630463393127373059007009370616907860107276372592844351368978887603330168835337796176657744907712416504110873258569263555959362682334345533948163169166314974248625322094549393495663039361493480525813925050409142419288509595024946641213363320966768835500770838894564169232145600150509655787086169246109594975960120452863314344941730776881381368660826362521802899624085710964736563525634033328325628477782974876225595758653471402981208056461772011954778964086285972273198623135329007480547935675713840342866702038631335296031467652317231232723145684727439319982218842240571690249079014311737052576676670126802580692253251334276072309854295052147506765183632993192809475143940322746374733462295009423788366757491274729727651688310899439919805990334537966863554935112008708044824281059200657548701199383848414437561002537553834555612792842915918961650083173871679047494117854154558975310261341606670804585691328073439057263673667563598720399520049301437039251118348796394226624379904895292701633068931149073189316564011327164606542097563879531280258776385737209628589762261840730631304317059980718589958346360471306245842442632864401039510376646937600427394114592083915924896914116301716374757262474440418903654383011461047381238608953841072532768119965869019390632436505391217946362200064887225914912454542485751592822990261728671953081777959259563792582213226651953635858046096189804564349481779667390313773375535740168202614205646438517404855980730052021852143030678076795110721101640008886426182776374108279944544186832298820344735430553505245590498889412591702614593765725523719055140923250345256086621324697568070036272785001990302719900028526901915143746070988955349363734841677641243625634405959272551983989019667331495173506372222143885676021899533647485401627426768416108764364713000900793211334800407507398227640080981998497372184527307471945908442070052651720537301867654994136277315239656234929353524359400234382172104585136113953775633544296255589728170033785700552553704434298167674368924088221127582757872720275911163649281772782004585393939820094082915011023526254228683493521823293721353047755864106999304966683555780505824553657273461342829947657497777072215353360381212445253401773709594328009195410400251864922082699473845402390549211151804313592033063844192304710034421027606189796816235085971485281388531847077864981957836436399469231215016822731349282800496245415718323493314877717900357673423490037204885579566989592970349227770653691583677662526634271140232745803694296237890366382569167626542823960701210745802773679269038067619421782606436340606104372886254997115398711133774101358596590612501697568591900690130411793760436785882370537334931724323765896742887038283914702070224587890681416972064240243036022544301373823558514234958646020089879630524038025537961338966386216423986713764838789185878219026321334128342387782877476428994143432174197516071458508828476293765563185273575831869274191501632270091885213758776231654916844995560532441588099397276539717443422769356740318027940327738058079024109482862931688665326179335041933720620158952225191053657639122269425039710829902142378785098376359726387899439656988028360918998176308608576487730109597532079099478523093614907974732585108409015710854330952885197633699412691667370225314148719628929359947934905036269646358516246670980713161996466599232917177023909338578325191501296874387500744836921829355627592360291769374679926087775062983390558986846725783421961072223012653022826038532975394568360510442914744874543333013607399596905903960230159226217002347238543987273100274556572065670531715891162978055367937589677833976634505458191531806739937153601896323133557351837625173235488797161853740577260887067386132173113195145900445793321110048459166442796073332473859103191302004393362474017169851359908257599207669398958661395743167997303501965364253248423691629970256879038346046203346722379269485429495474165627860900356001792898978518306134701037077239193782177205378499805354303938114758767847559929860234286510221966773465485126159340846038595298337561426804797358422413496980513866562739233215834022465618306061021688286695159671728332461958936832067608464972457957265349690896060678236830248857380148455394016484875364282577675607972969373237400393621617880545645938111056857826701181089941376607311382145202438116594824029074277134861575202505204293834820658605603254905349602427376614758452687733438162881708537075993444727393186381242042099805107493260035688250725996471265313482551031106434451176319515849424350341744953953439219521427078701839862278164309879882810697926958591391626965389907326378464852478488489880118662007768172875248379736560668725224104004095591601591351675266696440245998403604722688497008727868746754272422137516338574190362698921972396525806973757153421105837267427168503792491193780879847225876254534846140058575037066202649967520063121438148587391449184857638260148772813884733741276212778736450537455095474443103401590553508826568733904450692277947462099451976845075278894814818931548653102436268877829730160014131960978097385799492513871523163301325240490783045683129757079235725332958786890889036963054808503212858407944399171929125539674138741619539257814444551003518385109066106479321323882201072485204626400048344593050161843960883218580016952217803085158561297673089753199130337308723232296588244797012513185422185890517106053976512258016747100005549527181979080511667358668258537314282649075653647191940809379819121175816202561479559235197098854607721522088778038650765198270569993033239063418414400564985921550196814483104270204958553063364299777805011771399727030920534423637893453985167513339328761224656535242237602096029251828620454670508920481788536698053821985229290290965162904427083734380238372513153625949000045228147300168919657453607624539156445030424253026857574870535388072739918984546228918463191544847119606038743229332758757663334810645666164880790775476111969985498511784220293501687563733554719868217722899890550497031012363593086382043643783386229815064268965220131386005497858463478980763322494686889506600652921034787794959113733165290028878705201303461356204729445966814550775052056618439608093575122449076925405366455101502208685294160110173582344676560285922076981232585408656346170983190185592748663260744924772583304513226390975552832567661752783175947210970104958705599973959767641902170927319408684037132309764404557959132557248400050069890446586315257304479605842212613659487676347143188988484166239069804293676892856672463913598650613032742356471264685935110947815098760777873883398763278165900159967555200803565713132616404178068044655353243743629158273725797127006531076724473205576394989284595125934223014498422047034508876496960031396401570156928225164939569870944174663453134886016625662051820028156787636012833763282900869536219280556893096146989022163762059602375013860122000001420357420390695039024179783622392295863370230929917423328590030964468417162461931230498727399075972253342598971362900673730940628449560956622203415893258152352078424062035376011051212452360371513433155817906164988631864958920183305949773353167635299497376196425107070092433959507841681718586811345550531284118092967663575523185605049282929034572555793143681397298429118921063836181012444742899331084812604114340391858605719997406818477826459056337540828000481192554993925903255548191566267076514515366900860279749776772716846122412607450858366067460430972468728225228877532152394580753831839612272137054118521521073287342597866734559329015368512638354860257284985473151238050116034197892877447351297134422796144952100955755112761245926555370966701130207161838871172902148498570469593971335974561673914231664848734998085427414893668819589704764654179216601817086793683565508535487945006769878358741225311405948895092471571231319013662161241258968603609414877025230203310964313179093237134712686145561283123203384801001672738674880839569802247414132830472035522773189072559839583799712111642255135356223925934672602005611278286692030892895949573498415044216128028549807766116241458338363713966780408555874490665918617628390507122318956986598890942774074542694459500642199231503335429194823059048188480879087210996198642932293511403136346767743502816877586973824906765765899041268978664121600200928585741444588856972204076356232832809655495806534614442450867498391115553661179296039056950885300710436911560277773293495071346262075609122582623052460648767380831809556087716705473534087452130113903465547619173904313598069051783005409201640166936331668240854489767724304217874793189948221155630443548616756082036061559706896688733636810680502728560248557263262536521830862797718973748486049374621966584858147890766891676880402575201711044729799730434092054374096139825543206908918109114132654783701990916052647444474284953025705563189118420196852410432262824353698627351213718747060198302023651771752670227459165342784729114391536101303575040785853286896150020250813825307281276202760270450829445350996076863228469355455820601964378608992844951305870294923708791412299028919053777176864305452575462039008000105485285852624041587034655172215954422129076806433416538414960964121087835322428762883747292579121158350393910541116283373820178226757927785419994440499299851911758124517778741757282730209513755820520685927000315901452638901540691666417229848018106773626917080886381238902986658097258340162256221213861975120109669556540090271060958145023344592814893271960791238264938341799408891839717316024631796216523542739373211991806290131899944764516964864034151814640899114142610029891643463502139219561411818922404925693470077787351816813417206403914596173477166623882956871736740814767022990963105159413977113518090358123965333151342383193549495871941309462744755033254348097964342951682346404613968171208372240733695345234738180680205819477911983404781849003400193983682325771255160686220365493680508897220957595906461597245660360521485459213775425218769976721569471761357068661770117649761582249836842398758415255137892876658556875979782263502940890506364619253950381098475591683145967234208647987590980959711117682787429613016484536975123699581464514796566203836157894118749903562521848718260481553483775475996101085673071070327976376480262538174058452758474424636878509414855523409270626173020672047074259674117670880538113957281885884328523578332194527620808207531235880500898831577067130725576287631870852860022403753243391789423857143219074425438088532958143583340570524794334909786764655373540022743514731405744339180664549965538518762370597572753708043780901282796803730746146683137019146993653706225442603172888158475161586937020902231111371109038311875107395756688639900326953662607623088030634487083206719434721676855887811913510061462776023260713293584299190744788830307102544533425772350490765707543999699989578196240819130932984802568836182230215839905528961319209379979210897885529511368131300833144533850468927014313379939059979719475106857270914488326399092876235823833764344020544853313382836145799311691136182920204060984280660285348277821234702368638413260005487018017558127021884490542535375320359267290056910715595722082882737749594989509004723390060173099175247970925271489880270804099898028368774686849234664972716547724789389640004973340230163937882885310192334729274889255139051492631582624937911259448436987956395678653122125043743382198664448012316713989294816744887525188436504035613289633212731923811818878884031706095158550494750473092484425865641077317631163130802897151219387488102275071491205612969967445667692726769748532223798167388746006791996925350210814583476232111703407617845433307161903024435080502148556951899500684344745494143209133409306424522528578576381109312307618238768506506029604237365375514364980059443942580225710729591536220781163390439556596063460443884763754635683830241747512560589242251050954269354705093572727396739344092917545171245596898631380213559028409334217583919776381426855544497646844394581085676275463860236019157425425401630094113674107630658359416254512589105873971922181738775910068236707682179798678554508001315912644483883856447507922005164016976329493275249574547876476582481058621203992485165892158394511449547271690835674080772446718128218558397269414630911709110398221946648494417611666842375105019687736124725976737166920516820163151355883695909871268263941491020933831816636677493604835538114061569756937330007769825963183372484630849965639021384156347624492822421342165174315614096401223358312645868248990097310862331821087732855351004481114819282472976056783230304746955892497785094227618571432754416789201218562684365350631693900010991818068484251788468330500516110682177728915329989635135781507219946343473272829435883440918416453675171551541337640882972816808360529063685259551407763536232092662546583740956078580032665937831401694251940037462411243450961889718715800076683006483249846027710799365816896905869817093100743870120570285528617009014131687254674933574049441760140276896158975198835444784029869917224989925334791963916082759468250359956315071270089589122800056984457205328497639340605435532316329874275116852083186662196452549101024562199396495937535980144471137051886540051076793972903920446021196235465405146728376623919420199849355571372886679174306223951461348358485182423679978834111268226126814257153984656918768991714160174049376793169654432098626845614609132084903583511389953572833405139435305703867860149118375099059159025280512436955618106640893455236723126221834677707699263753014914257947799961982501800179796013212426393982335784004723716887998591052142601722163343617876126348901698143625868124796356886118783352402793814080313956925575842832820611023716203523697803317228691666871562549638512504850913626591571868865989810786553249441177398476238111920278003484338008070965207490132550107087944259475678976920280687029110472810500370573663892820724895661940698609442876977814944571170115878302457064966462563948400242493744665198376438002503538336188713725357406459537819173182041296294856078500350526477036819157760998280241072949302210970314906147273508662664190908145091826732507504774659246911611273354572478637621115947612253462189238803575911244421625706661723283817847229518100059811876685906710469198657514422607895796554291346266698970433558052571579713362645888169226614708520569817762720849043792875016792439890193122994569405538713861234858872268151674508367421716796744156563586569171670535293763839605094405178409483937623608700247048452592215539991570780838046534337991532436656551405542535354313881061356518864621735110662965288563605804033039657688232815634271159289213494912900875199864320245429025265575683739218472578486265573226058186853511075945369568950342983262446658806531912117043553633642409164724031791123452279913608006324735503386014398344168766069769559173031595738532984003110565899710220609283549672878282155548498266669393240225563349090825048036179382024295636535948430811853177597789204365931408545352890928789181889490974289817387983638670472169183661881566715940272762184934681288683024514042711116794942456849391002031904748888594909888558842955936926642749505931237556045069872484100777568620860473996142949180116765414030733875864096307161155041262677075551660274051867683150285262190355415869220255806845878822672829757658976888510092975485392390441191145976502698612981167136414213083915501807173750307983407725809471194432811978590119183307356464997548390511261453006796913823709404826527226988939137976207484026123686301252883105995374581537865121477930965570523837424821953637821011245256985129968475427863195504890218677459916745895149697850834880546824106183157244994952808402510411495052939541816929929537395248389246091458598801271766321826878472009580748389443970956282312881649856420969074317098302228365718693085820190181329670449222692863554134584025105225068761983255125209564615837183487103091488601367278163996066970554944629486224309437723267111973698452017524664632313911637264882194950313875490861134578507085669224892430858228991780534246429068925708101620334103498462183809702202578506197538003930187532711188250365144263297641514299597042399173964066326140221588964624861888239837969459697875433054580602927488222864043210985256274157991113950113835719118074267263819875518829673793687466642638665941967142413217133317010573929867523941825998144847850987153451590588450775704818632331486047748849026690813335554323160264841641053872246636258142819045707797272785750645190691770475200226780388613954507415288028472205781471428070536599990470120806762969063849453283045157981381463913009970212249571287278022725679248479908119279170138065742981525654360228499221835141558145098958434384792945567927835362234660840006082254775749522792013509778138519749499787735643103903849008667429232098036843877298524746608671236272370763075688137312339074332321984756854147627693064249799565632340676122203452297225714315046152344654128604465899864641380958400437186292656100795200203562716243157739370490449777302995633183632022278716363343111326213917647967980280262752391873129138234378395274505487092128896029443334239049169676022461893858210649532160169235029426436287914573662226217719493914366126988896488319527711958964607206196981495689727637897852451432110377162849215193125852113442526211440426883058032983007102434297618370673304413095708022746768283047560006555999143955228484558659538437803711370164929004888120326942318428340698003993228090893537260409615257305532395937346505111479841639412606160174068160283086665415072722266772954659609870578308342317274205533718524854943651863585229944404794516118364767300638939619064990885871063112231124092611693202393683109479103149211013239492221491049494907392572090993069122895276341242141826883157170378509725357942419863367727465230163020643268656966358969690915058196002274860168730382431308983692240973091108711322522313970069647535594535349251286398846328042553034275495623634681776116300546978238620093233910304215082114204848613527324864175642120383294528766345102694030815490297223647385980810067317129636102504000998591447834166464391511479851021748069789629128776667197780793656903354531092077903548868767185263107394592755337292339462722696385787413562221602973848222034604719499930373918411458543465802703612588135869349683975184049300737074932745899531273207657103797638339259603485401319886412141229416757250193034008238771170651186233915176461927093685188946680682876700113023815151498943083736091359341737641379933102822093594055948879120084690009395904382046728499619704832088259399390414872364207326594550623839710791209486508022556030422065672796203930408797347574726452253481833430938671359126923732371029409256217555072635096564395984461139583670607934042068121019517884285553009200553681265983511501276360064377772352933008237846276129791752712904331374359546850777515638932202036880985927560865165800099571611314902503311132702414851635627976812582939851745735432215131851477452690481135709055531886479050423501139101539319287184744190114593382432149869897627523003191389794813770204345145289262936365227076731185728397937143443553076575494030678739359002769811308852418321392466913740525163283099606510421354731435702227740161554701930858800511287812931603981281681040037028111887180318772647599500752137282483472300131961285906932945117632105810743368894852324210038752485769035752611539760990213425007432677005146512328129881457568311973721749212738474914383502735635601992332773907255707168516807885434021846763491969519390508770000123431022723467716055375483089764152440552280854731910698046043860884548244612970574618739301539383762904257534015677847403720117687953214524517007801708791291431359813384446528112972833121869604192090027301566877530129416768791646984059051416951536334798604982906872934948877365005223987829446021414017705166069353072476368860871614445560156117316688114871959917134714534463734359021205859412164696497318652178992357814619791238313327755774369587407049168209533675091413770503192020141564415615411364117023959881956228274220863576556263538832714437345977954278970719130712722507031238639624418344424221157297835099492460150206001048022349695897535264307233263092043119713789774764345552046252625436612178100868227662932844459200409542253054484629991158839300060804188312612233578609725185235358064220727950593743354363329674697276945755639667201079714251341894177502948506856402525610222903101759073554043485455263984593595173290477828171499361762151777219547527926860497700728379844161027158620664745884348477525604359651615853065630855676058453641607000782206870578654771675974191219774217971134888462371454987180688765650477684007045120287073207066588122505655692375032446139375791646812555340195321536091053261546655078529426547184310437901865428484664082509389671247941450907025151667244674585084315946831594550082190355753409329406782167464307839889875302237425970614347219901393637403981094252493259251365096971907842969228533589330121803144405799058007602077585215353063752823711198467987562476749609901676806789675891498280452336867105925873157140571151952106542531115345374842656608145810443883730900642518901972859559292657681528499074171857242276564964685737074431260142798337025691568506115646845237805449786366347033458615005068324088207608821016084700512336708935165084331096536981032103278860788581549421450106915537166000689642199293961722500320270214016433591556523703160538884978756656617288833757258761638249989058927694431685403076427237929118504357019187343794843895035494764110631970224708247908059782050002166151873754044149704293425849646386369897853820389996297884118990567596979706233788728389175940822813610563397122373225610998166669961261747805391950475414455507798412381258825804627681437712842320891839464346343589518429053741857034180546882530799621362412570918358541452248270675558576325045954632219565661801627278037580046249831294650127846544312286367545598638065002214582763195008736890335117469041374054820860488567830984838715595182627825900919758360645535470496039661493679461376313081201177387599634655861940183896426622148251735995533320587195806226387050118306316974579458418255027056186948900010675565160516566465199314447495546936495232944218151652513190473213902275735058649272682645975772005292037323149029135862799793599922249718462495887323033606025230323800720596535778624882914054969850658693494064337632559129444445443125063429912973154300287445824960772481892237884483001173057230832556190628772844636543725481925869657962139156408375432153206614953325148948167778009796910020941781526441549513530508674839389293404730179452037558234855309826746691768754171825045042037197167445365048504144809564107311180990029002377411164223072012391787574053256662951300122101210549418759059270809488656938041344897770445227396152225042063948677352247013193999915277455005934376669239447110395782112474012508770241752564587427982970235786154714869405840586394355050558040007717023218192767445065842083444831422445174383209286791195999719730289397791484246872853776054393367740118997388349589750346321948728232854454451242585206666872225879544171309313147501876934074468864652357956920357270373769662998894888399816600983351571731229205277470211712868321261172088232378430234506808451045990275414848087514881161725498070610127471490435809111910269405200784528568346480236922570109915150913121301232095831925590838961375630703383826666068371557595566772553098069906427858054123384629618718966895827179332831754788555622956847818571392793058588290692049449254270479641503545278368992061487318666029353194579592847567708707846703140825540398900625031273062162298687049806303645621659300506779481165424316745834809546928375617531449410810819334108320172986451675301632612796819945654167949579945244325399387372117607756314585423051991704116284433077476927176788222307486246813243556860596989753568855692650400851568226520901671924199627125864578241131625253586632534292906590557085665809358516726043199976875437949040132196841918957015669305385876499275025339763942726314125735223523565229042764929397778673194328744570835392668094649135417898099676673997789498660790519507449294796736812752763989389518320515069559775965343800717641078964208178082615091265915009342144582494146697317522597819787050262800168665767037105067983163401517549105934260134484856615168041340718073700683749067613188663707719567615995730295759445709944902488615782061281453480664104471064609216857492607904002581215069553621536289152639605690777875234832962536079148375085814827629920580610474317548799352613490334752419111647285732002366932043993491984351636256890881652850347340337937074100859432192108967867287215588590437623768060006038244907990619616323462277085683853827413159396741767907320229327083072555870046433411100129653530578068506593925415825211241049207015813185806870421929139124306568337526502715974916266428324280344629370937127937108378551966122740232853650859772303290026663188353826611721813987340014614386595204157527557666612471153297892234459615721173514306219195461386998143286445146893052427163537119155840356374106967327831447093961541422123016586478806884085556473892129689188203413446355327332935274216516320235913632010565374715920306042379054593482935943250644257839209564170650936823914216351289245825960287718685100907834962280053938530750700717105363209053849230811057317640741479626001203614341513395066127785094342261058910652083080197459429884350548992175983655378514446903809185364488331927436340266353441096180117312760510073336353192053129209073857159448064425573237447791364107762298474192120258744556624252788474369920522706454955727263572963611564271835104847849416995499126735243048866212694710096061735873372386089408659265452400370749704522382819954657710166824097666619530175322000380668544954358643298373324611827737165400002626204271209925170007586250748280526544710116166291355726999018228576491624912527324325533440336250189614978786732654774301441764233967226042140182031605802245085208458155892734212594767027786300045703390215212538867954204435783274141465057276852338723899080370905559409127404032763955875624358634153962306825059249630957738982504286786202979169398627242555792602153898079995503124119411319422633538764555571876174597450228152364593588249039334916970114795529788243298820062432860274474525307856819102130110315349394553338006722718167323307184159765356463407804081278273293513523126078601023384085446258310542585300558218060898271383525748080466830477611847346678609939950562506285810384688361971298578709619712554502754989840237200828290661354238956458048405535668205621934508532837812160334824849202612871397277315689888838908171060784416626823395808837618394471649753571182538199275303283903031787439975458959013080918676343791418906038285787641550465156712402926426200664511378625705844089114737241112349355061534956670000037404852331154008296291862572652952290787802733549792011601683303435715793533049526681252825249779556344060690862673604907079569658290281091072649989490505182412310216616506154264528365867522386197080575513336931044593988551084435670493645883725895489680935843635413367871690850070151056153002573160178170361760313023623826102535690149513181045078042471414292914584408395125233361227381222734173815784148944592884036181078389350779500643357594889371878692831310598331846014812483702677309915434566727944468405251489581360835277282521289170928320764431590873233590393908787712148093630889754565416428409016497868532157025863039309517632369355440052214760567148160616349717784762420766621299181157568062954572824353822742310234153689980648969273686013761088632491096047833138688529248813373887388874294167919739442493461602437389450211817878826140437668872169906287472279576486275895777366711718725122484407296937881292298766188717753662753909042148690979632283584386699874550970730651434112239344148286823791857172094636181978383587455434303335211808243653074071214104033674828579737477097479109014924739798934257507696944556634286927132706525352437700640260114494912881942654573014681644173832301910187875201246774662570959901300615329730376485342198518697153699646111989569563151361135432316464206703944064954645105316985228578790280023664519700439640838999937947920061030392688810577783265294887291248771214960761993839343753531705383370854162428403925261473720891724570565374473092262086745617076282704621982071065535998717333624134532301173841413657972378691782441025057903337612955177621790846901410963957062156453993366925687874582717988582583065541135676860904027660987720444403841113584882417345659358153991822750493518254107454608891633602026866245913299775778549646948700751693749585970635776372801654949012559889019233491254195470030981474260467969319556496570731304472849687781564875090673315512901586974015993718048287338537764082775478440087510093995029099819926708190542789896115094964067597250506684438496276752500993837241763182587527328617257538605056474043820706352549137631594210616138931939333981585682123603017372867657807553150065199311878291151460880918103628212529639781882255232932815851564486780994509112478555672789443698785847681165949751089412456262356283610683067537543081474773165616309241673309898829112216931794277227757791008527917892458885679160668827599974926328664616255911372605067719979247365905775939484787937742576359985053305810920090280197719280193468621255586474095134826833707680215962708394642806952522346467661466715144150175960572603867468081007061980046970402913805817053185465953693911035620784632402626508768709708580719955779657141025207727696603759082951348029515050137551137843212963907110140797312273567530790254565872182503529972831348852524604630696438560076987099649707733238773127526342536256426374788967892162903404964749810286985972618838816379751349598177672339295885920290194091416709760698903756315973975860245429048815304963592024390586485958463873342553210732245315103809238358419122774331001081330197428220368324219283568134042671128651958912377462960509432501985985330097734800470383951372290338849736451697920870153367293466096442215662283509779885044914207257560260569675836280536036646307125755814793234244032666733212459324272382465249894099634746435779680690536634583510818186063506946677412577365739630390970435744813794017342188610724392041547299613338224819633685267074107469559014554042544450188440316977620092820565292310150540243674315578077909923577029844804263373866491500639413397835461283655944565284327807474205581737217064292067263142557538343099494238186710191420831840776179317414559688611357776862006997854204875826972350113580804605088015982224158317393286842939734752769609271330949752918615625425000765984487702253268553125539946064660619539958826897833772378042229234933704714281559067788271921024787215795189405040690187437975611755234908023656503150718479289608319227019083042208847188250563027491849436592868999581118384193611699832225555290429065922308081451519305014423492533573809194973107237762824125901214043675241828164445831221470825375542799840698719155618334302793565153886040795199199147121514978581838673643936451919419192650791843366777418321989514430482820119923707367059627370316618676342170246163055795873775391082778370437562637987768710024331214272597448944689784194542959675108178035007611957205423716556404328616022195405640349688866828339760583653078351903489613086651124212121033032390357283433924238723862998327568876113372274512161361800375411808187788964885727465622720441588058107440332558210177417601727553031980661443628438243174128270958530842495398469078385111934440904659626721200793409885899775856039050222641959585725739349645108521063186462710266170183473775825909934516821524775591565716321571935984468267369528848197877143641841583340459562540212878404484311932675626762699499289049504739092861852522967083126770129161703792699564427930872904314662171704095729060970565603745108267169518283450560641108246751605829513994403872208857437722684229447495906568593648509237430833186470793371745934558198664372737527791594636335784874040055955233518526429394822516414917790234413770171133716765748089261962542842602040424346641351556663356972836703694109668453385568022937323996426759794973994092612698514118764942147013952071802208499671635670059916256652701992637026457795311405393392729021056914846284201242645899087211834956027929664099393904432143852238006645330096361340811532488075555829159076797114805454682031292600425381178826685969197566456154895907785320761449185069615499454714205363931054955736972170481996896552799425809089625904314930315187855899405735036536260344421054184550345898230328780107708243952349725156550661848256608378685181954598183324253812834113422127490570540407945389752329343252261768286651375054941747521369346150432039875709669680889987569952308260301586847665385722811162386209049547933475057377888661534187371717053122122588529963942189720099574449321422868704131383435484962825246435141847656062709022672431279003390344758702317913287706519532167703825671142046584608073527051856220606940479954179031473098176442054953448155978227382592033292824553484963514637086177857513845689182883864946826312044614295926286755542103612924089556749103833538474148659677292869346346132469977560014887467583355525541041398980945677225509182629629459471883606258979825797336597966842128902225080377155525702708246059219384857857752615736102245578694122455129931864432090989796939384782162662115167059651617721467815485698475297205762390455819066162526454092756894829271862955247367651238499523051228363190442992573633385792644648649253664252795592758730848012620418730871688221328672746132205949302614941609486552646409706206078740333518129721943068177644078050005586354149717342072624265858745508580707012402354339823869343274492710516886574899200232093414967460264715834395329831590439476877678106252840248839718449170590711547050718127619697314430538691649786221409584257060453989930813626323944066940722530137922345510787595233806284868672510675614767216117190044872895729960061512506523320761596869265441717797031935499912436744631550748432675796772169503829061391078908590656276210199028417447387501469584833443072503801880823260880806797330352405409637007488866285734790059417195791993027087743282048987260278470876543877158606425161554076629535046521737725513120110103418242743969978128441845058264160104520562019769284070289015703765981211124530417003668626853461267751719759522927561317274919871502847923410442492842714901004625348289347746475789999405975306446311409733463138777991230698486915500279040111637233323622112530157092198129447186500648295323489721980976740654117298742274141512939464902650797275038482892749433632413464950356109056333415043533460867979522313911701151412178269814577180996315256337243779498727789024799345772893268286263680347641306159454102136840849034227720560335232545723433270028219574354726404270213038397265074508157275428029228120149150642652141831975533708451982986673600134473871271731924545947773728830647775179643856580165318144114898997071411195674558916761825753848483933414450872955753525171004626052231051302211541279277708146629425016913448716803418956546461160889418056413171106823397304833513224578192114998120700589113642853531134355845588455809771483000901345934550698026210047239474255502133826816673377949962702820758410991870762702825058240278105409062982027297364207451762090983214304008627152064695903850551028347332001018796138562230946353977280518153949578750470172467917914800497511738915518658625813855282265547762746572902171572263319187932382645505220370353600481261117438366615667157085476597147174620504052650728610214824789163943175498550700441062316597188453796892993881633850205820581017268364635538104174013620270131376774575410274199660985976057997550862067710775572412270612730282398500678158332219641121512221140271703255746134174395142334824989160005327986832667039904595547511131707955823241519277052961108833500863580042516573193059041017207857102872506750470154406376370214957511689929684861570689310949474810654238401453296638539401442095235499270427599346519936718434349428209300037058077062326718053246375550857418105465682005319765420958124884310382680713178645933792890519724791753373989812677870530984874549653591546329906617763256877948137494370628414458579531603286394579197065419777477613192096812346499980555628437418660822606989863424614113596977319580795695624290975137255801303876075357630129582946996488926102470553268355039016317300613839942126499300032407173764635473442562518503483927391272056405073642022479477410358040887718167628295361681527264843506638652701803393919026905575344362047379618845928609445333993672704490839559810607854159876123230707449688814895913002483358419219398990334827973568517056660151618341273084879538403461688125454849436950588424474670131408139300128898201264245028251571728135785747465201392252945049437677334987907762428264762399324077085563180778516566910534314283677465543568794113041198548735776834841674220254165885305301150843967450077184969601409031009654066674926503071479048168581223371282858661645684158548081733671115935291672896473074969492200195886240880593208881787399377373857351223027015688447306536221373351435739079170310644894863780060233946218594957548886241311051137164109462696094393379217116450339390914861609157583911510427822197392296971254670495307883851664974114510811988682035088436042948091298684517031076965434738641568855774277952720641957682935819488479728753215106321981623413916617111974610945412361204736478022155020729428420988330506353712708404210768967851983168702974340595422479745189747385624252389513698867286723177906502230803825537767426969597182261413359666237748298224684224526461322129284125331622280527287878280851064590804755480608352009983246050453639871690732388836736384837930663522455336439883939765617975414773824141743170787410355517158756466776538323006774645341673516459573906976189483943958143831520047734811141483982482704225244711542904757904528116839255749800275309367891957276544517400890454412646511915993242752984404679348539282608700596257293899689491746052720390931267480574293153264374327787715275802839832333131877557306657629913257563493825764292228856695294258265462083662432053332475030472728537413225101588937846824629209722338938019512696040351791000576051059122091240368611501112413630732044656527754244098005321245713237669343594625172976047404206491907316967459497187834595847597735813238715149145145689052376026248474890450464542798407969331610836905564580284030527352557505483303711032948123874675782363744462514389829160375034000198729415154458408090238805753609591019120818749262802293412050442502655845758925377403155118376327017652508324983644835276799550478155791389896390084410667479574652310357159350647379441814751027583566286169990907851446776595625609428248597870354354722266520359310681868048392739590643706438269595610177906855769525304019250840052282433225609300318907584609186532304978775408212495232769928725747997137999376530964767138681679043496373623024450269601442330054251747949080069135521414167394958355839413302395713588049199286388233750412762415710076693533697526942245782387143096316746965700875602220389337971308601316300642568611929768068809873238828282827081115131633852164512280058977657733496432716889851557406235832884045453481894604141744130747616842041178810011382665299627797165856880630019336800406963044963644317543295369273282734130839411358188615805990863888940302385295406312915990936717078614817833903335548742207531628684125017720791693635069459909003883604482961669327085322490777967006695552203869679745120393481582899012757529638495439585726951743897412156757616887658469773805225390176231336805979375226537120139838287234636383869507422280363307546348496718383618147445556673525317759453574400369393300638419565513767510632435563400266682696301950507047280315764899879970025194249823781576659654265887263486500164897253489901015422837185100805556211802028923058560390475162184199808677050224629093200419677939338357308027634564939059661465681681381768134596171976197582380323115715098952263242789324096946376207856514290881213638729486857880937993793619809383302881080453795376936769503747093363242700912459976727821563923735557131576110183398848556871598649859800881048422528672460033402433320356001224915158048618560044745304267542544470069244557101046654600113515935820452902909115068209110984794784556501114142285012144972735515737880409242965436296221825107788100731501762638457289906490875301952612601050923777665935565770272058380073537938863066878408317573341357191104887591223579353580456727021142313955954580062166848828845903017067432520008296020168639941859924531645063950804633013076098479441787582882424421693899410783581743118314317054386376074788620750216032013370321954881709966872509510238516958368902712632933777447335973722643470521996460675355787688767507549556949817342335963855260354713378352760859707414694437509582616478168270632715991781381744362943673267883970936673634921083964650411217596248777380300322229983349888656628919089904808896963177733732872725123066025291543514728507554669140459735086251778964193948039462877439696781884794767192803549681026331580551819656030978196067853580268788761269568810333377504750901458584030701879627395369399932551612348643797411567268356493120791379218680512571150820945925334712831537046213748125374636317393265667619275589711607395963754596811093872420126232239068916925233542014511029146256449711400835042791336733756657309326966382044789342925450401875836260367055725855182963074037043005089239220419874902144444481030410721688602586396060643573705090662943138025572672757635134951372821800477153322787571798971272704351394739398669346527087070591187547288653759220135522229691873420424211285037212899094742536421798780551312331376241280280952952566232100163509511459309258276201723995651691425711298414459755087188582651486028287528371717889122333004503401550302229854948647505423907830153544657366006900031534442823286132829305618927326907025687984475190046038826676253187699538364064245932547181255255347105942491546064312468205901548100017446280876758319933100248669969057092439194271890009897517906361160598884976685515248344199618929216942245890594370816393466757344565410455341516012696538885012883262510119528000017200303491801065917345386002016319191113914695113271490817244746570499360236103751635112306737069876677597252973901812915344341132356819202455048845740040509761728130445059834644160945415118174403074675943572702845827781780490892732667138607711697564770264199574195751762853601285080830340120943767111926670781150512774670626093335856096703341066651547580963867234625208923323459946093428319358689210006975528306229675640127791145167796359021682618655617170392338605644558542952578248210546701643645856684668649320604909468045752869091534797091250165018626717659572412306150212224230732172032797651223211570037642457203728544173034161570350586640336354134388060187063302867288220425480285753831103101375362500216474738529066170516072725886873501179015603800395019128024069473061165568201386901196801675001357138906050679672319942565683038510160033682674966875222015384615481833480877296952026320430817941805786020528689270885034072609068892310398092641773932534222600898562444995060118577644160739858885281066217679411744927511372430064137801047196328262730244510223825399747034573568252365540696187182307239881243248858425560946059148906385121112759600148651543002232836981147618141773354525989280462658351705843925501392555869615456146125406034082238585853960660142659434683768374028605658010665914752804962733139069767310600226584257187292542455920613222303577530069715501113371295785007183329829084814249364807823539846512399815961911112149142508381357286022270966391420663227004924516142114189227190804520642288769828385284157073548026865006841980220334073158331339240711736126538749236034365745319419739869996980761218867431857089626186616401982657025878521491247095586846700174863684428301413636512529807727095270598353109932453582792802135772958939780214863886323980377111033826681524176565136756294850204439773435889118274169693408929358677100047335228232960005757203085003806637557995181062673667751644521599615456368286599657147742481275863462165379517724998815596145742681378767835848476982522299440049563555253113590844985375904727612774318304101690016710264217774924677076279580175371926210565604149660459942986348995127390631353791869727358254225015296193549536660304138317723691421420465287671461053589206381439133134549343205141525766215438032954019659347330018240829395058500194917086250755334383567744063312457282475227824606196827991576693798492886025697503041881448071854005698378023405520061548790093476354493699097674596578911267727506561323206791525883608424204910585275966252543702776512497945981121848656891923363853645191217360628393906819692757654778236748696923814395658910902690041926726390176870965631503895971540950491435242982999991308073592294867725644709812679636363167182483178671844228392198332896560218856827059605525777411255368883844283282611893568539907907065516929758553806880450764043567338358371077009358433886001925848472128028246827931627920507357302474847480612361953919775760688555590106014906709302732856462972038451718951271469664465531052204982438031782948498986930185079704125850335852506457353382413959231530304577046627115837823561213725485462471301512504782478340304079896702756566270332617478341840700770750946717419403961391795466697514444302629897672803721261878494742163072648364680678159848591326078010870551630242286501498367038947078722214396030808758824664686555624465596179774784452518864221507575767533542761167223719810728935656415676406678693758661869711487105997956716709348412320620257723067523269382599427584701429926186512448651748087569395126575406773772715769101930775271854433460474161412269918064694804864303687783965429724114974364706050276089857621299094403946156585283429952458838937355395210995479092726282498169753497353718128791962525245979481082464320061349757288491102717291992298375356469568738977022008984570870240668241235000500547533343818183147282443185285662698800808875573411231130437162853887167241658832830498179488907937251351661643759428623548202742983480349293197689823557293137734565831397474758154148886733507158040072434294610530948701461356254301570896981236658472713197311920266345272783981006336296698275284773436427961026881636290579030643032480338440417557768874427595628069206078371425090653459850828061461859906423472048066226277967846171134807644517657816878081137834847038214800612028123515236404050965422301449211444798457939486222366735437365045670822890194766792841808429360090388574757859382431178646402821338198652520543302506084122682491530346472649018024460314929984577121403918423723393435525587514859183600863645884956615833744191540145498716354821236162908267711246954632338180278983459407773917303859246280609939896889778364033845949721838778003301592306191907970660652578420649987961796712857121864789434967916773460429410409881866345360489134603946186243553757297143928404993912598656867193916139016930929880982643002923317537742876180893212611798169629796977588566702108099031909024649062091340579919439990616287804053547140620006835790331165893349344129012225679983788249495275481057337049427882855957482494318232144502320575018756731928689952921810865998981299980404641497029344239493008008508881842368408709060783997964530177463763340540527387939846036284923985324829446130438296880678071116243077928004961814035563944645179018566078186234863061888714426321845110125520891187486436433074022679395091778009398316039981537066515665229895884486559182247392653272355992578702173886533588861887484183590315996269542404497966216093384575321568007416833223147255201402457817281692949114426016338575034763062445837473285969629363285583380028425382524076228967843999084348861475327716565754076166586095507477722483001711027768596224564366893384884255135807513709757850689556160202010258083032135861182528720692587632131140461055042363219098484431188080375922098186958068265532844614074008715043544858549185408940136392986684240757278179035850259952654942774969118810789834064733320810304270205845459291331986287389682054908717399566445740131677864025917823388917331785557864881641052152882945848391718307798937538161014591448570553546791046628131149791652332554825015251699453235375202196849264614879075491757761993759110585245809797668795371689013160196278131048298769035025029245340050842872105184248211813991068834010544373242966232455346027314285352724428133924200356034156347134654145722129170273280418404346963566958767231502099827510615529089454806287276128689081130080509741374561314870725523894996553878069779539158821604891791674940048503909051195536966715118554437382698909306396910028240382892439405732720756059008209714211123060283876800919088788343869452467803806988095558638654074421983149902890104039803432855671834094218497876704336747828435195991673107877133792584672888892577228513976871621549698323636135609263206610991800161044898708567319154184583883698334682212171628976628733810691485590142983255324914265741512177435603650217755829034073152120095181924212815539643538736217131650210411469875544859639488265768514076295915161591285038049126094737497417028294755953714904512231547901650245426802732995128358098827652667256944036998255748434684552971739454896823316675181641197829542355062106016753565633979123159786042785815406151095654769335958217976303987753413308609770998503259968525085187097212874515471688800374190957332357396537773876258088103522804129403427840958252642173423073870168036458380298424272054192071287844695059790386989374326960349116929911797490421571230194794917568476396081124381627779332155882847657909399205750738267221962892157444605629825171587125071364342668567732695223446032242133755103714137269336967032203409480660070895393044999543231665399779815732978503240207173028661644287502858238564263106046089077382747338582204760958380145235345480958245561900752946078181427279617496985691741841265174343772412672380396032076673009989590324234974827867462936225877362429633106692785309717210386035893952063178430987792043243963994209968383811963200638000026442062529486806678597128191700851628960876879658759514470366740621314512082694473016231636238682171660207355819877482990408016864305299709562709379797721776263205571780102812146895243459899958598377893446599048143516576530965173697500733337191369821708735732376286383742354059208313629948558084913783768129226246430036961757002699765504367655215644382270138767448373100477658849623946343096668405679022012115653315049082385389667693173628068465566886402876726573263549609694698867617584553361423338983224498017210952164587857391763725280936463247004249871951859557509740138130690534656347298662243647456735421223118017468069099675177011345368476590247593529870992648101616198177904081301056004028888815494293397377160711341239131182376582004584522163105431943950347931513524516604784803160174648902125188032273870722321719358315662894701913739496882028484271695924276898238684984283180943740858896348446387870739527623440610174885432936409523736166992579378429468453170045417372737486895866182137360821362080454288940499082999647901030153539337236812773715914631153765823894566784214478970429077520394430169802918870718142355791261285516677460732827911899548977887826818780524241713995143279462271947401277038039051203882473982074345528643021633636332326290744715377586846870757216366558274413294774253123035627706268291864972809563726436045076154920055113774556466590370696799796081533895840435879875369894327090930449007606218161041511201079695297380395983550107468637612840810000507050629536307024946483086510039325892844047811630561047571507651557045354026632486154057663274118633204197340102983466705854099780987481590846198506123800369423967800600324416528087103527727264365211931199581820933713777422868709819637810323985006240104578247965849080013895095980248810144487035029116071140795569564027965758898971203233688061416164507915979010242590762390835794562827460435255769602236932699608159262093005521863168447177947848042941057680626509461801832636248315155803079406344917554267235864490406348092038501028445609285906908909310828768352404757496608662173788684942291692236473495567858993063763045437945658312096268619599298452765421535427304848075252274843164807237234965267283156586199062089012804771039624457383788112320304547793644421097654307131899297150347713900786592382533661387516182338801591853728386993902067335575217078363503190653911988552059473847460384014447642349602190362986210466519039555319487931318175547307989229431679858261779031446788354186407975644152019629592247427010900765774288239808532709448901034964943487282254803885484835045362184688496474326559895648204023108998192927449172859405757774305848426438678735562768921224216406314925941057105624795407592129004284013456766627635580375510482051697802802427980184536899477068987954372057483647424786310594595333146782117132325992170366151546207005371302851508685516604856405193278174873976922785272124654703789339215742432444715263169683741472157884559041663729040177075204227463012976617501127252535562241084356512570549321023260218727701331913000809033232596054101480719701859028182287958286210887777645767787506598942550199170514453728131213807594177587311729210862518097473403043039871172693050981724186989329494990452454662376131618005760208607541857699135456233260071751709016978287211850952785382163582273681287352434252013189295516444414440407465207892305611135056273440076551052749352997062226578680782135500045876519306347954925457931883633524790589518682538643971684146237432946504486668158012426762097975137169248768652327168978374963084762783605215112908550355430603001497852747637679839018989654021837018960163819206747586037847872297565854120015638139787390746970087409867969766328465799434392316184162778601894825823111760748155108120698108137933290801286900464848410427846598161045338187331177608230145858883190513708922587676663234212125565698838915533983362240010101393908388761130997913215553511549768710191995101151064844626486616739957925444000229898955993487416560737664617304278926594069953407421710471955268857174551182672236320511842899712059778529825349500599311907195814396974048449163693554137085676946613022257689762124951452963943537395206879386694062653476104930758701906328760271406541795469376058435860895911288691432065422288200733672633313679785094804494088051408496929562244800601752579452146792444295053627569437310544746782275014263268571381951358816817539251926057673713581912077060977348994916017795616526723252798776353577623447653571027133407724875628749349660753479552937471646870974616786430153935177828838231618221174874627577255503573511326816291294819534526404049742773159328182097560295834037218191473046535777610063347732455962301554190741735306244221647450696626223341009076590884720571185934616634736129662262988597593281584931785131639231421211675451657568371656719987406246975501000891608741853724709662808982349272353267934652729359930882169460615056848108112971307098955353144459228530476015803047286056663555959668844754357249833956376749998112728401332896585438506619905539006680560252147015743081133096293952972188154826145802926720366880446726222726723096594791083729022375050639573838924756150552303564277571629792348928853772667293755884776442504534224164129628210028358576679701101503093575550661273902760743673457323834813578547633087242454862936662816381980100086556395211397836551130927650386728452857373315521363157858965291411494740254348202229271812613564757001209258704669880386126933671089447480986688838671009483130796819560045596075110385223126290973019031360623417171544130831972144861886154892701068118222015792788890426847258331863473717378935182799893119234524518940617917197119576501185805343362059892248996480367705804719633603711068012714325945819984334155464008418134338698161651924696235981251679374066602775536960638142584058758421216775528317571216099322222154823868435904592292696428158566084704673389007577193947043385128649221760242767095556837341321257032386077711645413727828126895817618597542029591390765656962421896440548843428516154084577239573430382973440537306607663699530226819573924703942641292702546171941380864607057685675024579975906452842203685761775106435605098142218140141317659946272458336669856968189258008933625378447604466242550234300750229292699800814520241364840037284781171342470252382034836216325642171302094895673497541725389272171304590526682411378170146165528984529012235972920257802845908653736540810928393065954230169411847624758713129320987271222280305361216830509853419772080378178870345586635452414961519325131451528503862190900827891070089823006076688012754876105820561397120407694139185087299800405157479228710881193006740215678113279485993024543475595429196115191695689387756441687241148899563765569978529068725419460118947903814123265803053350808016534381504402153534618386454457619681588051108039736235559095805380602391124711821434756501630945963022971756914632869027811420083685175867032615580967412500657953179653944727563117845590933633271434832184198331596304313248461154432352682936482696649826079627310355378228416047170397635875162310460276444392529030875064622780814603151648295574535792860941581071582214849648390917628862093460499836022969802273594888456926765362116542884874256297311865657511921920663336317471378779566627458576494407419012363828135402933500935553361543217939374993016454108476046896816540748811236989170085423123976248506638014622217413195729288650548912809666088755535141573933652731027807048458902301599041256746758052838876283823439845054707451108662163748032426912132699576480087047263538790356092670711172194324064568651927970972170434070449312102909360204923315827830961279597094895536531900064520911820150269383902069350759127636581399191554264171896073209364123773702074027884209985813648510321173044824550251931429995266185138456668843501031896765244932854522940251191846467754624668656760203311623165346011622572679892774267427946221871383233801250475084449560476718225715887041584828087660210719733506838703089384578611343450787413769486740061326179047195678484672662858281745829227111710001656745486813864509860395433001022273428026207062039386629113461144741102395388412015301739397643802260644848802494219893569642520718959801450526091099912376015987758632288843238630291854965932375942344639610672403175069493037293894888716168253916429280355012608897728371610357313089739507976858168998878779092420954118530804228555360998478914828682008316215603335810944576515362136734734213555238273267792395809969613394224179007965452826513052579481135650461824296870347601560326171539921651387413914064574930148081621587560424711232196455564295178812972013164961800944403385672700131024819353904110807650435119967658396061539761316736018137099541995785289236467700213918690018796950564317939757942177850416119157980516137170644206938568988158800902563236815163030085881869742365158358572099136963014068751724141717721924938029335756839665397719511096497342011498187008575409549862320786305676982436048667009227131276057898094857213116819158790248468391906030074637522617437528256302478282589875154331551989559346728277026215436071337177473924259694002581710890866858130111591282433749157227086095117713451312905934844368406250969720210123698099973783070436719945132303753995093369968840017485172714604434969186378971997043796474095653549935406280790693467636421063243053725310554197753089140962778292343283709776382512228355675322800113938432854779339050868242615232748246237429325484106935233313993619452634136413047885449222571413923739203252095180326777373387799861141963915168572964901679102448280629400790506162584348911328170441132191465285261706275341329692846624185976663659349314350797787808511665094392094477582407570843696161851543492212648612903283956763843273285322060747566114603966873888418553650224679234290610200620736379170485959192270153003728471854744488541942123606142580335486436685236155250227790312785360671718188257800503322146574503389588585095809938376344014014647660950751632374135040776184811369628134290780803093712511534665709415296885704907212445138675698720428404078342287919879543010790300382059735938079833803287580876617754949362110253542831816081791074754514930203956175449046014223217012227304501539692624700198077717775797979201098240924898105600940392811542774541951742583728521314821841170831332637794919729879599725829252823065046671213489078763560621683396452302726042097487652711218592831231418846078334809198014798336647088557210710532756221208621931833401250006979209953680896723265632714255054969801300759854692413593667191006247885522070354743855744722119178532932714780004328513276856585201835363169897075151244470355131114546607296293325603409460430091907940978435539299536495077186697369624082396821781925129476194581314175806020606441510502832129633102487905445132416877476051001672300054488899481483750913159237703728427689857920657844213118550847985160558838316519652503866057651992730107042387496343729710744348610564681042520398935369550650703754112926936420430320889950687197423807750089512457644979880614404852392164197828068176152050515201144408040769124692517901269704827513061234492708567017407873718466246123030328038625122302629404217767408741225425251549342674750864066593227790345111089170992764888136534739075987694583606268628289157398562181443137135721345910780883972307444734320374749871559135110226129959670958418383289324995435687395693775732127712649901118827309221918121577684010784648669426635332705634002555623696363951511689795213945904427067495208916009651258840031400667066146083056972403160235062964737250289321485580762322234293408511881028665964433520724945526273391016498509061442601339181575338577025260878643223731844168358056039932325085352380551705128345159540981228267747669566624471352280007659165163649831058374393455990105949773754644518369439101506299453013755011953067802875363045125826604796444106116533538278127881655305068431635748353771840803888064138113558067815172574993323628333060911705117811495071637404962620880647440615052583739254473476070046364761862390294329897534327639264282454762707825949661911736343642490612730872666033616094241205395101980835547099497185073268818383717389712101844661967965540254410091039009026824454072227848183873267911508886309402220686829581306530412578669031519341009017849025307837544363261759144993109523225977996482256736008466849653197841030498797116274942383226383957580694795066706151329358353225418678535321182685723582376898693639114647069359857987829799961007339478111153525502147542506377617820398865243403183550491637349756729515428050609701800445254598281596086649667417293589715790875975068652617131220119547957943995170396316279664339045068525123828199392171362006610599722036703353207001239522605331325988572741674963060957886422095865902816308939444184108885834772695826172760792292581882163213184710143045215177854365940035871198661492157574396851825995814450679573819535965492928943301742511263364421608079434317916737329604226874073836723394469131096252194843140807395483729937726903281430965106744756586760561228974774998771441046946788651083854226367864768033550866180593506730667807852450335754450902904461984379890676296053636465172796510007666204462815731991538607651391812077023687578547564674474274198227181408245388535907099767011763675332284547287675366263044473787237056894886537945763216589581320560050904458168566036742484591088778746386483679456522836705947117817125797668727153195951063035493845232381960444241132920459403436655396583229918762746186754118546006595541569030799355576082306503441686701869064492902527997532256868999139216786960130932527704918344606601345263346712416700402648462663434487872219625218217661017834391722838254375882751977205491071469233956669858990836131758981722916139859613143812423439096298579254313126451507514523999480701650754503518453384273984710604619821728180010103455163528611935122316691182487367714841004534411515959381733991246853157082175213912183248222148670977262993684323784877265585745997830450443387598146621808223789804270111658437825219481814305842396465273098464501252301882119926043386423877700071259662562861067909202702772842629878789981059694519278715825480697033982809533063861665499662438723633144191518869196500343152004991618880495825408579634546004742287318286483278928615354640688742689865186541260176718179430777919323979427462336857598215585059726901807716624957884003923661567753963740537917165543850589415732554443035908667452388487783534202604332900005848306470781731903297689450105748544140468919557744155528428411158105198537704442158878695181466752354365188537597837470203133757544722292047366832579617875214582941870715341780287977382502871073657813805105691253620261596080179565143836583149215421519773264316133239560418648689094116229174341542489527877197500987900447881060227422899467550268580016648420631136954083369409574462117826343878108516274540617448544057520367845030206537001029649943742937645341444720837825984266472674398387407665424334317871243912932226442961893487825574233463287341137792732891727894361753934978670344115795652385316114033969061075702338329052202563570241522875458439658074525555383952239459195702329616951016990175847421484176246238357194081028523674199839858068805399658039181726658183545122663720162554667239472196489057769843352770181374843883043672951802851357408313191924663488301527705028569075531356704765045267181574637578488256761736505737254814456864725876541521272891175442648112893652117028574682941007172674870215010623646862386341015463361653669680527306231643913999738362767064187625897896199215289274563265229201312134425452885935188394237543288992869646569671174791705256942883275880868748969700111525954584659652412608612248319511806846905180537388178031116736822965752628878311075779985311671633681759153639799676946128259639641140084663932336439523110083422093744682360905687538510690363272124227644542803105488537092985881983476781979008812324778325696953077043525166930272131038621644039899838880804959765726636091407854981371998763172730506717704565124870603693901633521780190945756071508655519215975883171574921980012590808871360279264867782205331158119594070381606600228273490284663081596660052594924163080934524907896473722031810572565047216617370051449499060024917209664283003663882512699935585350421495759966134476197207877957976695591742528813045417930937451096887453323729637053839726724543553787654618482430317999074676817643757574386712753389772389021639955962943116540116971984888330857805657702224462775182620741054025968739275989529103163016742003644288634779904774170517236525789853190676662364642307531449901485583308139824659689982323773210188235621292378958479257499908109609409314881410580568359560051027809827985174272637903836891290419493163480506704239498858951304874669696870107637977863918220400770484078027869575249936963408507962359043621201785941318130488589262933422262266089280682433039659094597818865561185832458953516801206427249688384370853418219458244933185217506801785768396770424894513356196809475714595755388159648337498719509835455426901522282218284486957623879932611517494322953389126229920084557332235442129963022840220879948186655686347831342969419570333029498680953900698604678101640616971534198111380080583819998220506380923740892845493182994370978561275254995070336649062754360363341799460923338212915726388183317023921048355331609442058144937785189348753663298082269553891025306195712035928133618221447292480776538263280820189797947928510000675086093608929190096117855949614244034937486852549885347243719115245260833480005490971216732512357403125987059852521748257429285285053763099089875353494576310365842739680042506310813368434887552402069283497973197897717522315805638583045911331942530638013047936892636410454759584676852540615581454926643956666018417726655542085906631644349322544007147397093554428386814049023338251125044195234610327720909091341414805395372842329770194362264894129176607453333786851278972048645627709990132806960297760150284847913934716120410450773130337639781329861775544123028594200496241995654675278161461454313481588361808669249387522538639485252491380031331496184710882104941020642918459566142964919008963560220899729696707244566397125040490836443934116169818706678065956848396370163595719690874307841006141889129938661439400964590594177238650464460121487214522305628918583090453870917796335098626168323733228045800456236284410547666398899585511981884620747770141580185946282399640723547388004313668317763302053397368276772480625631315129132922769346821455024903175970071659066775714734443672158767886890671556761161518293120432527309770735083029527997974335332986933734204300315608149231229698749736664543784150092829697890861767457230084604853883782543449491474009380847558422258256836091678493542801458568636904913609898545425291771204814889309715632499259498534896436112684817823316683939922151209643638643910056190255283422952951728421775776201756270725977777506313266463010479236046367171716752402174978563154734071172179139857658946094474452590844313753190506542712894014926574224293644879095405675232510227280184492842549813428173066887142611130508128699752269961297094807206993936472250761974509118725326924484822478516530964370734656239518154418102135660867820041364342152687797613211210720101629649518121346477645102162895994222780695692768269812589013596665923047934209506552145869393897424724801076027697647687066098662234017108266094106050156085288575682421117700225971132464072952701788188751252860786145841279815844989302381207189339815923510614813771555859046942283520187965905421918850727472073293630983368149314466577818092468586978699992823442307491066926854258078563142230713750382242785357989654802000962260212892693604155463214140987516549624808967785798499179143975833467762516135152054458700804000861901623473309635141984446903074216790244917767831813247636745368041198013714816881355270591770316766117017324162670300906593378594339365689993687460300492971010848216714027657290299125000868881734364874152365314887274112489631346262651111841763348983664022275718441397052980871951730395809989234566512885010658226334988034266389462559434657038546390679432247243935795338154055832862611160826957319306324240868592561175412915014739953155047717581674992847765077347609361046950196586884007812465278392228595476866346784030750223039428913640232529479462140231798766160001948768553811783127614477518468970781150052772507182499146903725936834911935331506886216109864656087928891006429432118429019791906439422876657575078149183902018658562490799022228438969997703236271067604546786021783929911448504165127107303309735126851934845620454521745861888190431952199371667865557885301445464821265168448676075054237393711860774136339227488850572560883573702886331786370916328715179467832278897376339579546976401369645692435659584141448570640734926935378725289897678944940069982068035824530816355203069320864354293309758708698557801814506639447705803447443435466459008153090210435256104837001483653981836114700545286485435815218376818710482339310220157312195934276049595030765797967586637555594380886863225444324607547898098141097547139905188864107668723903867548092547179959896108777263477195245465988286864386859502704415880749676758234514289631225535778695005535104046051104984577663885936074064210309495067359860301632987139104853396807003696061348430740022825953878643383035996313403110721709284456107554127312049173719403643569762095572348612412591533250831628212785745796582620414713444459187900588287387988619877501677771856550974799442260923001637434168702967339073116307356124731864276759633219555800145014594185735575597368297512086885555012040546337361758909626784395644349721369200951964946202295057567429914861724752649039620923041460750751269058073847726317836955039639648530566453563243796578647824357001239268534536683537374242137890546139709382548610352060395464543422147839874139515808873900023321632537342225906546487467398350507066884660296550132903592832855958861715762480055150464200868386185961941311542372652961517456235542879955770885321636252901458359421452619325600875778134861258840420256672521181541565568817741323955779692100821993155404284356670410315445336662493690298872325930423878696182389422429542829992337086537247284602704890188105603174316612195062445452591492292186955664863245033782355580151165740236123637677845870774598463115742485218380072572266841610011666412241155696046080076125666643989860779824626186853304734145719326903469023212648247840182119094614374376161543943299709625663691858996255138538406902975220739090874649717130959544250987394941793723149208051397208264376680157735167522103251471343390790115149186501017105101593354060989254293656338513960656737708460285032445676650361978475621900464763091247209528772854591937735488774399222423972720562240755163818175910020349580531417529419702314054417421324778282578979879599747557153160652381418618626128272262066781777820873449130352447838331676153311356471213306454090088159048494637023000182132221522756589734889377105545453914768909264393151832243807959756579319376757847157543265978609471566990879694948323134347966245720222090928319471928031649169386217442232894852503639139030195375464907377659974002338611340396240034675451630590320670505950576143824998087847344259736026679267533719542531655742447257545603418199200512630052387178400960007665854753644622999013300601602323332655510966884490558705211120098520639030471509679697305686036822711197036738158407732221747367969240331105479397813668450340165286895546909713075648002908469351586979766580225068351656765902864174924123159710638946290102973997373673045810830763185157128891458126616507974323589260057976833140309653787443495837179829471528839282825623635527713283775008304463162136054120152489695260548795335110130520225710130793623020743109501017928603970587722963825119197524686048366566602981627858600618226794766401068538599588269610942477717360233892900053513816382600223811572489341127158546195293927015545277478731330346439080016041207171996991662990786317751458868977746411842658401418269690478904115914917092536306320491871450245061344457493089321094790887181230123632301048939376591490957143580855311807931706083351582420557034699178708895500705229617663926769448897910278935618111370839124340194885937108001905194292336270857461127727270796369928687483822073004275132586697956511417463770852899656657739807411637232118532187123739557542610626319308023325276041775765840290213820782255924455103940185294162959667018969205751908169604727100397583074919648960700718778373609845249330518975359653380303183546869129489890391233046636639518781497044388728591427536593365226267287524064435237864959157968551483438442875440798407459983723484754150527512634561062480320537018468042382752244169622996842712910296913263660253395941673284794376198435955594789984560975536338787350815173560625979821228182560071807579109767922481565476804824979442129403037533113434447452823556416088887908656687340214320765283018724200250457562839499202266851144848625469633436919138562775093791356661298767639748695328343830266654830971117631834322777728093802989845072647542321290327419930144251314661564826711091375941843426453601240296186299467048926302517343184297353155238821624532811982018313811914512920360307959995443624418626890707959315080224166464511626565355541287212400463332944004707634776220136362433141299620970011880409296703616735172072343414367780511486869720981784080421022192902379863545341731958963511878076633173865324475692231547839941791509821487650591891445810746619974817329714588537915420028007629602099215262811253098747006950515369436551106027657991416594104690858399804427322284889944488386418719152948966524020081832789249844777606462867610587234460063605942073969524144646166994481348764310082087182017748462486367749630899241860764421692896105717554297513105582135535153454490949536909079930904820015197339454870841159156185865342265608184551197632485569854950382704619659899778829886390566851724731491511953274089245688407441606874874724997422100529823736268409593777251953093178243974432699313797473742118524023637132733056764400068082383886640115328746611574177834143933336675754582741196453901009605325717273876400087822580438892481067930553285864220599029276594350058058719899394302582713440354872062457210510694699650084347859936181199509984318720563975215785279173503333463637356969182807264260146666877750720076056665116173629961811529850576091470377947539396608989856116903339191219763594851471719119406635771197846719991757945263218386846688523446064559346064066310439504469692811278365400241098262092683496750752096185220233317958533727970628509041089656430289865835390037066006028072436994351085733804714256481060705874189419328106001476232941397901507521065914515447515097007695729174143620507681219641530417197413775199963818873795849933871158660876671010348853532480094429040180790417676081604769650640984882726491335312347653074787422123978204886561109468540660877180405939372377096099388115098312301246118185662981315188319576450668393608530750554777775756318164275282137498043842999200271028176117187970928970191300507473332148163592326838838518919372148318302038157369215475669607586344240857615801439319051844030801334166315216615033440886068933077993434307185666010966769638252502861538336698755915883284170349926373727446798161209957451128846066657006870394764936499727746919588003099906194823750711160704477368750142522495749082098216911545664422040986864341323371964227207538189365134621462701954084435416374194837604945894075599212849749574083426513889021806500216262844335624354254889007780513782570824021516683257754837350100648568619780609462847129864615989650344620614777275822700803652169946917663017645345452723921508836344350058480229792236084222610956946805587602067714383028546428923389143061020258662941341706190652582712716033232416439115599150196553885715331519594534711625960189067645887096339506801776391545047702318301996520694033538876896617494702598681296356668241796753622784565031318088289626770677584084810032960548840821519268944321935514919297344980382377840819244282578266929807304642020397862124085110534503082707644600930675024683863835607758212490643346711446253707207277065165104392448073132694402352903207570456166581151994658037440101659565681637874347655728912695964382458067327166019928532765559727431908023443276356895468858490153654595256462981860266349296045470879151358632692461222052305453078068931738104870385322966623229008475278657987476071711918422731233133606259484940455968964108095861967612805721658866194274434323984740945370893246542165929437495292201870920145654831201047245206922619601555038707335138068213821034162591039441669356822333675494377214512867248215945537175223750666192300652539472961727277578733343216832031924047826516196866579090957785467257713974513299816253099823490007844035915710562305752646596388482139671662194602878731219122362187311330346482344573778423598048903533415863843023666468776942683054962324754819426524898262057739585446349474694801460109696131375205238803943007648516571866355459790975033866942604296651082483901266063368026755740517309369721187195863553928478923722165963821088978131616860843221510379438651988056930903081663433597445026307499078646797393804554362920081116498918444105489409855021438324312023689523635027068367082681863779942585288084228719977641509536432067147291123538365696811678863214720335094172482548553156162381876244698376453453583477071239744186118554540577681894732124145628909053500520223503546526552530496234056260803568901969742155825258810335232259515550844054333639452798774164160996981595013438693570628142986718591726937920395022935909144358501226697656797374689456892179668456541663607016375924254197648868788917250469037637938000513787628202963919426862094906742481051645298720737105715274543332469031762359463603267832868200183988298689651120573898969377975651450999151100826868772437936654240660594653440478577309551750322252274945066276363094776107523977561215219865333824899835945910592876620353249644792651588894204129179475035423853185954123992361391139161665719097550830278806664211106409539318729743265531732876633802106808967572464564281103404832549404672763369371234286133308639735344445208584566567066700479736494113573422714676896566156569106696127567868110242350376313888797013169372903141232394491645915261619599692106275549964119505530454404431588293196271627637569742649754511274694409603379287598071011560843320851847352505100527050585376612433769613205037380732882474699889901334438131586280630652471324487617337065245180478283170908070489161409974646003956830087558941895252592178571291664750212346409262761747143308295578907633930787629682217089211625473322378352228840428003215463097045008433311343915785505467210851655244460608661146308801697347788780128321371269871449812852874537219337452676093511471131852957900431089919390241231722906411553261199952608017433012996483180916334435710010022257139426610896786249820776601145898176967193074329682585971506030861669163922720554928450744133545585804555642749127372152801019402895284267317566798791848960329683936295639662254633971255476202156746868613876690721933044675240121944304998153166538669419313574510959515134904264041821656643959707880033098185955913345746793088196225924046002284098431638766223177517714078283068810263959564057736844107873859010338767400630239280435958057794709861342523195085893718573245110457105931079310417894689412046555659138888570053570874806621169969848986072989382475236170289825692279420723456615091859479799348718241008978254427574736030177929256954502131007756148818887133823995810308585647930780244951693016588414890744858641961252459414120350347818616062498139219594650696269105785865030793856893441227535099458201213384408629194360233529105017640365043401201948720788660006296009969115571075419499822993581435974050419022162356420032048455950152296846790012110152869041607418773122316390840610098547028493198967104188207153529660569247789278941557998876707865281550956003952528382951206749693151727397012256053627572040593097981323093673704080295425183353816887791313097235285168169758343258022056033198423162059411346387000010021261272481417276507913313301049939355261367647200587782854091296486934297826451919274208698974047092051221610980115686224834504205662294398574726318731265263785105543291963537890820421786877789704549700587219742370498229808037086009556792938428487290883451527443217579079762311836458584708161288176237621691322614150752575869536776821378529238727154981864052430045444202727367235144837741356870738513208562383332080365489420987555289438640639263207498735178712425564492841250820068253417519623226874505664874742668884416698242926581034538824420051017875591975484160208898042281777779923019146767051585727038681481151430374250533029902619964048296175710176754229014257880642183866166884972182607366283565790555658846363048010196084204800044013181045250055774789137338057707682532962018983515833514554984052919531648388799670044529700890459412767341836439838660222505073424474497658986321143670494261528965703356219811032173327276503156165934613446929476016667898644245356126788220933042071443801437813892184620446734191213684248745096993619156619367976247013556872829091333315293082745290066793502484558306136865166879666868030652343979615247407985839528101319339598884126458935601631145161023886988668741174351768925434962218424730590207640135371721229960574847472548574536621837887115540828201796860579242861589859753656806463248650197263952827752009729096504967004552130995825417853656875051075487721965955207824636308952777869784893631744915506836528451152856103914620117062968164638317997446126400203799453827787174265770063451660858316040866256821321998965153749942117119456367943043683790176408606004911842798469635574164851782340276834667413191099993157505257388905811348057281633289569738314476325771270945969464088440367067008593129889470713203570069766526054212408007252429337063677700499324585810917055756596214281995536703201126087448989878809468634376584132354242930255631818483974081694538810812284581025580412867977228141456895039622966231615864493811246310147121831997610996781783895476998455015245122397441799312988928963916739369519999611774593327917793563094982400950891619815918503380076209242685259553602760894584905984621454837766396598929823061767805311656774332533259344828022722849935350540288696878282850137401252267259518765623381731246055841256015468490043043751122294596489234360449628796219101483613393009231715778509330422568019276884039968097755600570122794672120155843155828666588022593409790411663798575699126392386261259582426102396642684103773178688115041763006265376502621692296556703155969802048997342498952582944662366021770407746827251498642155195020825286717620938466922080343812282289072939823665391636983448896291405669140601759108745320452231821072717312752901229795057376122144932210769485300974438528355683392761675456694115155234980292747103373959688363521540726107967499466108918041123743470823533345868137873579695685872712622876045687332729905947367817636595207201722841451618887155649378808347518447157478267865421922500463238358887664412723714918750535646633866724898908954249421084527285499504042147777606398716753344383691994827207551193938597217489514194408836499914494341356154493461234069319671235851659280953994194107938006569669289643746059253422211109898715789595887202004423472373132758780369826346107830288912775214598582052552005604795907633919343912472410604938962960220435828100192475261901001637317711201311863783815450683308529041504327136805952449157944531093508961029487876261871546060991190193177080878178235984505667963967800748600598311296469258904649330594059468925440618136651527783223030598170318509361848099610522052079246213256591085851776479756039672589120960815315689699743871486580512916232465684677204493866194927906431688065914768624704734821114283172763254250828549059701224446439334115614428347815033486602665820060554554912392137275110650811534242503457136539931362866637033069228130144865983288374759832768395562468578403692246106895261000333888910533071286427523468720634976822676881409064754617318507185547357915239629062519301297221743971537650162203423288986581186239158011682968861778585444047600301808728220746069835758239599963183960633265778939728104792965208716096978247337875206920408934815757125092600001565014594580018926694403435881267459194083502113791785556331440034663071623309242675568436797015169539587776318303962429212497872644841462638158478032483146708570106813413400801599210797351939307490237339847982885514762740458889490253514370486831583348598204147598318461064027001724917255412809611028620839662341929316176161375406339372704534933666275929059787101117632181497938181447602877828527147058280426053847607011684634335083609300692949412360643889583973845732337513161343972300400985227404595383870959455334809243254962567112919972933900309537884990309609413996156745151977183799173391263884004105867964221787003420523167776354783752301027317266586783494639665081102523774755706380001408651544633650452622067419675468736496908452167131655000457409369581787754572557351804844274421052319638019998285147562382551880861787579439632510457428815303054073069810003664874895986041089055409115524998090297073254167454488188928374350759953546167677113846632547258586009609906504150837463286865677642163579790830767590866346035336448456494948799078851506711280758855898359830465530844181289368536849306825563606387433895579576171859518220833285963987119966776247554991834625016108975504081314877777979534361312123950238501914782980211231873250396414192367818007016925202958079176013549489739781369957140700896678602991725336449459712221397075038904163257926350096842311424477339866011595214643418708598397076269031177327421313212621363079433788404547976746803230955684342730140904954003666265041664695226756572999940149709585704042561385114327877761965587961094335416527191728474927216444820776596935987994271960949927427940468987049710840756394103968401393867569604954631445560605804810039421228106124960837495969738269991236893573940702756077041447955224783966850519711032613279083471524368892722735466259233229423015271205655891223549699350401836561067367166041585851797033279054926815689574804335231117062031027371528221849287046761378101391793706854801359394350701894721166756974275009901280089482270164830320811150798277323053004333635221000097057442253526342651170809876255839697897222103243600478858824838344225956806416007566534250755900525612331763516240661576676661354190769569315077643186149254374447222801408308456472687664847474669946771354268351698752932688687555401460420263043983806205551711263669885239443178761971606510562225393009850767012666932729568021391191626756888536479104509483887839752656863584931148666183991040885126946248079202754727938647933255667438341998532009411981395476802227504883404231055125292686580305126144711368173773496012887205569372836285848720794418429329342387690006504792392130710305373205048045599518819506173068643703549508128015565288847253232714415963883968672061251431159872383297433523034843358956177740984468269184920922889634817535983478165842629218559116911042009238950861819688491296398657143216004630721859256705028568243861365932655388200153233251901518715942571254779557399909813689827194031008598324092578088836005422368782163148990588704596690477684912923131103840424560488844231659551485783811408675779016726265725820972593928215624987559421203714515228382309776913173298167812070288804249544363843544561798549316969933400276896671785022364167514921767529315386045473697187307026390720173643257623560646812248912448915364451162507227743818441464542047203060247880384966920687608219482900579463416587302891003734686097559536152104350269864478731185250562165686619164515359061498339762002446588674096382344590548951005832857911494942570321603844689362228068858738712396262899182612476466042996287146644183146619002315527121017711224347215416633846803532700070059218097695747333186550328057768977149546684112986020295233112330748984539272054405423727826089094614065399198007436577338960003740749179897610818033404326451274150722977023673725334750432302707481433390907276427961469618975768046181320578022304807826490502308598865772256965551046932870548654435318459364747921195344977141510696767118436434902624906302580107555250683955308685313122665662649773233898071005030239135572589823481216023809646281384736936167167570217232221783705030983608871914332779345704253623526096245228000498169690611079843456057922356191211392890931627570626728108974347651390480376734991520687158076685381273412320075454286840349181350322644806480779358887554165977387416852761985373931885299254246402751668636489909163869100090981036993729465194551814371944463463248801839054114624246559537974467424067560363339836349339041627034376546949753910526494031803686635308983962434611239453095114085034435520764814822135380906063931381186437119245911035181206022300353708709507968199603974869276649525671495337202704098131278644361533221433054327508085776546233750468184072703796587105338926628748660450038070989291948560302336192403147235275415360891860057698753431097179223490022688054329836338570301912908776052513873545192739198088485322637386460968482160460517019329743413993954667925224318847234886093572244598162002167604178125380604748695620861372050817428443077732709061786584944463931920121795696813640544430617854500162441314377856045527140640240174274093294349205936576079249559901718550066106091692955715267351051959862678777902878193023698880834141985049966512107401334039590442928332034064156033388117070180854707452987405673956622776272111873032859720503450245641990224797186622517313232163687987579612833453509746502723469298480829550922313388175824206230736452219089356788159175172806547119106857826827345857225348703406552806899599764361667486422339499575129586349510382858622922887396276070211289036446638692055081838493465054835703292547158871543087940956376193654064330351612283565137736396980601173743193038078366837960893977795084031191115254674652130025550768177012046464334596527808219963106023367144028438525753914228953753542735338077837482125967963471052315577762460805316055335735783183791783730884192680010075583470603744666495861905511375476602299021735954226690116732900193992042680251402589564836199356947845805396382242679397916495038963863677790363308271107167092707841230483343635775635147811352432931501787088561239469981406866565119946342456194018516320780576583459656995493861510327916355719367883796130770876423929096718610585661099597308577264287091180677650268503536658581132412917847292568643774761240421495982013231035047574241951386814213701260111228229830144823362738387154769420053058167877307973482582212871165423429905934110553767771060381338132155972708327461178894805879074185082741380827592112336477816195579957744697902553424364901040971210009669972459163734503936987506690802152702177472381255551672066734127212514433380846575989620704348484790993579313085358893010410085022116788667813947101229768924433904508389117082792640654101967603105619192128101703358364705563868558328441380280635537607205784179317701247085727654362040766777879999215689133577903164805898234997519410712029911701405993633158410750350144147527382408313560682730100749779585370374591191303624663678270625517998658463312401409604190243265521485042096167017063227048737907580617916537739938985486854432783092740254048817264134261451676236621293146036901804300329003870672271850690958897784475359681232531523515810665342453603028853046937788502910179000436447715732855961012252167148685436691448373935839447272720062255357920523571987285985293560160205688761335039201882455534754037367370813810686841631412719469295921274590302310269214049044425105108539010046415744668429069253416762775369111666261536233247539578828520837237682303363194067082538648386165692037795463205272859900955157583330988139272866116169176290170115909227247421750037362690945880352715481389146257129599137098605198079225580440272821979930545440381091449898870359177566019983133768295540769312224999474717860541364194599823504321019863494246681821163509966606934563775625512505920717059338054090048194830920502539058546263830053317143010665144102342735360569904956487647716179466914006461628691281272802630454666843673373317555490851128898217119263656683236388774843650454637966926982126057994924752865003454566078351315940093592377597422487622084148592568557579699142946067960417397586689526889430080562246148798254250844398952223879342048098872544035763894264835652022576579585348737413408967813052916784042551311212752500636839742458859620971429013803025281793537152952330982153465933882150233188596273428194039957128819890993222138782791049879194443670220384089953017321323621378418692280681327792242623497919631859820911884527913046823889266201124433836933260219466348319912960746945103979933119802545873482391560417288662967217527207850195824948984215133385554874908662119904952900697736143119726387574021875812730847058595814451663660848852502540076572814867960058772275981672447062336514322182036343979811415535168830385570887017513676647995646438551549345266954525507403526458819497248864389126472284616857080644338871120938697296729061027783954478958832741679708571882943824536931693790126379644575428096001831167064525160566694957264221455435228155108047187607509565480589354317463727417549166049285053539054347559367585326980925411518519710715858743732767589305346707963647129186571342181838365539158138856152990238115294960400588099119257907885413111553170851517669153259799815986994675756534759268787066118832554845344211512098540860677695498422573424047698529567173969319502295242771749102115133443025575820639861057900069160906512708871625625974355128885801207489283468631946556534927252781831565521249542384428106866190352441732727248470994400381609489564692220296058943485508520770617764485538150424036169737036505125593646472770527007324181281365317830173096289669047136592995035593218572576672969990325863553078740781002327418400793180185858544645488328206173968594033474520127658365383860502526821465280107161987949068174463117271647699260456994975026574357019127743342631850933390414171441733886941878879764432449935831184880744843169418493140044932448473733183433958492180184680197272058012347903626582528916211108197179736042500559697318461149060196111091477014049268829188318550504767497697391946683689186396700979373971077688392156411446927295986749353339741237016040949443168841252683807720911104964786727512414810563458507115492563985366396529788335038176675534171514462838021245256566691298091328018233661987683868525846324320645428827595620276724310024420305308967853601370799279536764327774598440588625323656820126149218919879764451740767771948143762701804195699442813992079225172904585367456314421839013102600219716562223812149275923932998330475333478058031976525132093800905414712116882923101683654456162989933397834351739841920472997932967612667701052521892478417683633334713148330923377664268398505194410001535164903254005249970520590906611121929470094833877298985136305889061619625419551415542188293749300851264789694860896961373855522756156405931741202859805987957333321903394630845302309673646061800613603024212433897808973168335853402645679038679947898096266644412502315069174535877054511750637063052910585065028183006422591234592928900659335636509609988887362772434537676642450610712732097608960035591103715576769030129360368705054545796089599784752057244263361276325348531788123185801876206295456486958810600233906553773437105555049716373528458040919815680527834385408278552549278933627741884728078040193890436408029899376422100477184975910850642220727223470556985727473508098970451630776843055633023409003615491389276610903937673813109433341132366309242232008913711828740601705426698209098220008941406527406884406592535693372460688080896272555755129293067122659156919015080237279032010356677395350811671074155094738851238069604363733575265004411677893112411102472536431659989097481685803519094580854526819735772757161925310659089881015978810845823749903581055733377225313678482993627637935571107705072897904188868071021657851746876902882212963218861256933833414051511391847895237568117949635579862276212797856447670498812639696311776948073269672522523738275506242152607767841787523915459318956059307657164932621470427801800213142947796763896989070987955465219128617240571865530161328192784441824758429927804881173567258942191375624408556950994974296793462960528530342442722841817122678805289183760193452631873720293255235445417787714187304067364231489698966614982467392798799972414903769137264999569560821920806765455586537639389626173442665100882939561213573817478752636830912980901571481568519963757758052417807382300559144670652644664206900597890836327110144318487493601995407719257964816096405483526056454794299233085080221435053432029401811760782330369467988608364057894398376384299512846622787114167087193146230486332081256275080466287389979062615574283417275371356785921483569676568017938915469666297692951876096152383769496405607310266255174187466326089612678444470098914699034299465796618069104771319966142578732026153319683213783162954743207613680351318115602746657363697066083114213123149515218153738452037169243957651597764851004718438092344846223247534447681566597712305930518446344329786544092577408368382931923382142216578898658221531468472497273985914014635984652434467394396290644064001516053184456664037772860594581570664217431894881628297939141413634277411796803072979096031425028456663446750458756306738660337288234821869443229708079403830277849247786531544784198979202253394886454832749735217534868171968549081929338378383329314889305442412483119194797660568834929101295311954791745457397577852411635577962333763731370649674681647614197650969538454479612353069807258801327588643879172977168424792323910639236572828168563852543601445220189711355322364560994449659097712421992807193882545097939380293494090261894640092673680037571435243735162758211423217339274877538707337555306903743468626944172225664466996408696745103708369758420775709458359979348284020926169615661189763542965987223750537552366412018181457147976840022063695822901061378323781563562536447648582825009427034231964412800550035888494970868930183254940432737369270149221073897266059470631274683746580662770933407336925128624475173771405959401647128815936010818349044323332551101979933705211572300568630017085521097674009499694220555522913752470314623478773360592928363908624072890230782291795215623359861640113358623319884721437890718176188735259224183640075497639857255801736890726428466965404598881513730973151874048977535990410226924310406916562496128965029106456883110329547436774684859090464453529054786930409977376580811018017232332762935170682468970276663619069765221144735749952851188934634362214355991603975234426424085019189670322145049892092295168945063305568403586226602120800374961928545004907167483057987813154651364915731477238848776589226449659161714730059342459977176063705645909100547496394050702672312392373375693231305831055503962491894135805236813031483869508512999922838963823935688128907365401519592426795638366352166216746153056564990568117560695926890887661062523434343492282294942639477625648958944477549632595009647941038773620490655045098691400759531533308485017521991757737923978888091602639533250937060489894783498377130249871718362360276508822723274400580307054452005223056162680120881688870741592716754346083305391818458299706231310650494204085966884033581902041631103675716960458933354915919591357879411963853380651048380383756226021836360326412136090369902514950164636009494857458955983043561424770445829749293428617043940031890704699127231291834275010847647574986903694555026025998762163472465245179399423199086893314787215189715853174144678345619849961283992528162649457557515780018734136364009438322842184190855820133055069915483771151657648611694382378673134895747595453406125578342844878340651493330381474542488688886547226146951907484825454480314691817177418451028697280260056459922463221431160542977209059320603122693286315053480982402954821495694494655784336371009465117359276429819105277550047968888845982694611168310646769083684317158387380969167654374781980024159524341336187278623922385137138446086367675998273956223545269628040573963753578238090229157678166622634636758414220840740229859906654168149873495041462926498751787894639128296949673075903591861937875397857215374640195446870150274958162407660119842360715337524491295812547104998330179469009750691037189412790663335249734712021177388410266527681578237303936166739964246664915965374641574044936313825976231839100782219834122989657287396063504048172128560636323992276642726899996119341912166605940439362929675104676772294300606784970769636112032982646633482266911111419616020803670236158835019418929675858792481151136239704410008918407005649819625462453394864197091735184215144271347017623963747845142962022355478528652804891451756586609271142717301403798336393270433458593998995223036365013060359606226302079434515731128002164599172777873003823325553018433874815498058421139979293919905680432113544578138347460588353529849288745549647966816230624579670724421676507754567189540687422947105740432941668830276358687499832143824492809103547104385974963912210260049056719458087040774364685897831490453078931505507681545847070750547143325010657148887086854887391643260071131313542095321372941236764797922508449548117266098907451525643398421142400452900669534699703788366581174894956811893773562443528935931138040780610817611135102414495829272676086505150729922435555608251302408529128675857082448156069491167648283726970581187584332388724935523028121272918067041268984501238433593813255932061404805064365251645103975965184210253853619713181663146784189545195616933261258202001999309351575101805368877189822914549592243992619030546561731731281475909988700046145093179083718640284679924655822118968300372563542700839355972354303795679102616509555535864865501412108297571379877217056711496388931538669013750588225686400241978194170313688903699684536074464524447585826942891713126925805572888169290429594116823008340149404666488043164048813300586930327256650634924931588020069468657240671700903652005631455494259401181773616196612473327071479509466045953810629385804974530656829053310835341264168746016160259265645943835528659199736130256064905559566671451359088896287142537615193642911820204547794136311973272644801255417779615997284640053238372327250252470718402844808642842256302181498773141155730000229216267676965619540462666267073052070419744778278703071789983911832342549685395252549507189985086132125799134210952023026776946743538364626287722234650624487543846209839132795530656237151095942249265703795041828931864506640838992591613829552744465495496923454040546006615649944970840707709569334269504240891853523309670867252304143484306916055533590522189651991875132765328697318485610626919292031513697350248850809207851261967949121964554960637748708802974377108402267736732936656000322309560572644887963202435186186543023460733679489458462762704198996102370081802519116099697043921719444540301209892764241871931355048989969683263252677084694137271198468082589265567666975436102754491926493062067764636976163787036455635212474123712259391749005193662213229712642147613982899827358731944670035861406244943586062388819157685674719621091491803374978051752253507435483793296767644801585462027172483783524081526903206242258562439048971182851953583772115607247438537390076567046472884921252729505353097670584729871720212371101696537006859538237030213987171867320459214574568910004083351421648082495539761610931476376776849681809817178096392357266158157217996410601768167853992866041703951298128475964637589775064084827791603679099749136883569886458974616625758237049190320323188939181737985278330734051407523870559985129238795909683635738309703255884951509764840201738766388027278992732145040387696387725042069627885562225061671630161887729057085359532218471184161523240085221452334100156109458046511983287001913401109003739577141235417571592716837321837503620293572515909860243068304672316881452957223577064229273959818435241587393682872467706692402790185283159455008807406961701983193577550265531360500036294025162910834520904660806559831596584413116983133761077806051123056929694976645017641486417113878358171686000897430371644730990763921992192364578537517139281022018840984800854630413878823368928358835183215963763418584522537211308277139506945111469172154746526536689205415940512326238462712591090724922488410834939978822681383753179774660041315427485088897096538821242985661670956022037143898006007834922722014921394991716527148907101372700743783509521252495800206990248178975300514213928257605272429316056511119111089564895900679054355052506924574389539169718467157742350975005970831322030773178978970619481228255661891086659152810107156631253419759545204880976992226444964558699120039714156115023640875878143664334752226664831511155662327963794815316012723144466246336007435137542071270249145845140197193064175861388605677493732341442921418022339735639566094640150748353719715172786906795953951115016140963160965432666675276177702747172665637062905117915083148800351722744731712333789274637365854079433566536964196409340929464630465197682880591074122048052317811024374562870100672313677845443434553194803669813569292493316842477667191264478790030541254757636474245375629360188550851797112473245794189588543135278653018808551899465658691570004106855519173912371609162807569301908167565653312565993997538021115627384962187896174419081526208935841493840170763834699070569021512771348184028654613115480911990116837687638219022728586780733262405337430453421485771991847209067710803523108791323776120680001888450738357112811032904146085394295122675550268124868436764732884614991259166699910220825500662151752754840648516840154812910385151921012348132734403523400179019473427141876930338901101205136507477666212580878725962260517190434403126843315046919097307145109166931679986984362280034539420646486372671635647000847362149580518962323678782292072183547259926512308498084046859239502029569756550969453073888512734677947056853194226973265553101830440419894997260166275345684091358897349841070560294677786067096063065391242261447357973552161665269948646423633317361866424436251935161864884205406751063226160747293618809398115180578379101514641057125405666679141891026408095983487728110190067246475450541722001720441530738371887081619934894363734797366945739582191490825967594760860246178213541426282145631235441170128102972755559983121597502436321772513950785189244696305526845303368354485993092017315446218450293582105636312185174732796041208829738761525153651230342391944770388216730522885174173812424344160817049876279544900328564520871073041966807946214181944586350531465502928025339923199653812556916211663619748803156626328339102213428752901032355670723076501659133153856460475448734430545053725398291873874145312136786647128658383457126343275917139081493715382116835765291998572123012944168713480709606455086505954763582726737126326800297615499195224442978034286226782680074305214115318767754093879263678170623968591696270385626005688651095239475740213235718664744377047929768340629825676570193687366666668766744209938034120589579039523880028125516525343956386522297934161716128357659005719965084147744426907229066842446850422157553005545048611928920268810935584401908223517091000058894355202082177588944638484007515640590693347011848066665859779888221712884020381812087940759733395425666133897037794978037812098438115325991886132828724757091441106358274396568158932692812745014088315741241970605603865301085409750770889880365358437480978549498945617008411023473561055571479226806017423116988494286530172449101713226542434833657932981977652238324182967113202731181738663864479886724511423624595365036159304109740056293608763038579971311581528990622128800222732633509664617410335366899860782437358350363358441691459347198207118444069174533662990169955741669500696537263149642504325028739370098776482677524833056388195066996467891860414217224908140734457541497621062727397943328408409352806512455488696668036479161598111952034871155870682339466250315383935019835842794523927505900105648593076206819981251051598649827068652386317746041891662587360816355384596183653742986946893019561850720889950422181758901686231260185963399940758275257636459683391330166317903075892935502272987866435608009936533729928077258077949699407298435074942233213448823855462802104831764598607532361881813060918677078198170251486596283838062115569804497307961451288448545279155939852299959550267851076478625192743144197204155262860539711192771631300816429969050677795948352021420070933215059504901304158574955644276554311064376150842117834058333580158472055809679226140012600864756648834792822841689309295650650260686570407546090111412284738029463055321925574001002062429033691270476882334419866666216923170378022588769507676818235830409451255656721391363168077532280361636869489037515360353607923120940442508455292600965926710530047698962869828052959699009043228432007219401441615916837819516583712375162753330791961112132833505778084790152964645981462479219587676352789581786654533057128008265911816979413233893076305562971955758096880540466232041669156706889335544028438637293384781469362181338123129248101432077331496542558214925917602571449819240904931459268359064067301962439396112462816997641949905867498745386037347278069674234645379547540003451515184402030000761288834210873960345761211211400345402659136648585734066138910961213630172620066887063192050584811354118576636212046006503078097515260092334204672005274092272505643328547641766338775476209080965757920367961926695485166951852687140771983660244200409685192056025164523857776148686696474640475902410611027665562622969015303557560852906257835402217856804650117256326886955594762902911252003377630421245927884714677562004393632409610928696212459730006327645819701424889155498567652232063170187532750552445297279907229758964197636371992456464443342345972075843782240259818723387157656718384909561662172699466738462146236637931719678170480040074064393254028446407248356824972975805692827028209534970005083920881231498235539846060233676020544472890467751103659710220813310161568697643330532170478147575433589260692650204214732118637289959403326523783339197506210215353107095637539340459735065967025795885494915869327483420353691263779131374869584951479379979774073520801008667113966358989166819292811956758964863484756419340348879880357634697553420406448400022181139759956418754880969639186532779347472138285759397073642478946230662007539227358140181832963234768164050866304752733617977331811125519722239560502243162228503236332786770903603141897032476773656033484531117276567147044564448499346376594873213860834446780150244494707300704244162640361617110405953475319526215951512657349112234648332977741214892727332019575618865420306875240140647143815655706516481205747412574459378791735084836622353971279922364837780189034535303374328695949132065860347672712498696475242038550130032674297743122664578301579653284790142042966190675526011984317635994281908836647684463338477245289244475731131564312032584372439831982624096436595100381545539583339116786139201652676513706474995327672635884093479069809313152287620862247187532820022451443380121183624340497743265632892872261238457255120238472344840631226276123911610887615823894962495155325332318148671292244533452552304588115670276567716705623755886184410219924273726182054071287100797771460261533910022267364560632087213509402749256338107433209615169671260926206647465016572069795733965864730900597392451608166581639029526149695122336374981618579522434125900701585846090601363927748768189499724331482448433771031534399265918853085190753881116361245914675264473636038857732017201633358430295770916022274412254718883347974311605691371588628418976589413454488522546281583922453019629681728430451026711053284113058398876014999554534307082867581367521793322687063349397428303101330991082380923643755088874281636626732057799699155270320828477043843828833931073612983907847311472684176035597908095144425260421307546325390445822721394193872362263544899294279841439819991783806129293153857904688051302452460442343044450817032624613769022949952972110877259474460642833491682720705548550043781070211727469016804486244200535438641007474898352677492345862126799060896662033300201010306576299291103573846152269577006910592502789170735668135162556935562403226333878569650470022709760426718474867983380667478272596893646624370206064081058508481392392233283664036171287055093469325826975399085375968230224475885642745787188435449672051434729839921135166880033084896002905895102919367182630082474543617669760240042244515338035402629976447511480507477308530126808069427287388289374267582525134065058236887338207969917109630437892141724316395259329244868625950649579277838342432466215787958085646686283321369553133061487161248205521479467169813475659999946245655514095271036521614877469226260770450168591543720552939419075483142198977306479798892441654109709873550962716639689692588003975762515583431043984126944051072534545767879556799603441316237094995084243748081700661666565668878538092602692440320287675934596680185802462935265371510595673679641864364779381170171394755571019997418902257814940479843266155247532915707798503417608444927558038783974561512972996397796240909213721704984362767711404446929930267761221975358623157226100416067539127253854281572667460354660480371025784399526585470433409019373161399845741877882471511691668881776389934220807685636165119831284898131126692663010967539387597967427903398362474245448406677825689858793995923625647522111183407431247745002440584171542107692849174007613618652881371188744591413780580811709416364491727963160921022453122554368799382884933266194177705231010032256242167321974120103897584078310826962591651102235176952842050788695000921874130735546606990447801760793371767452225029674711275757426566400006919140270484520145694631008190824282486720367554377352206094262588683272937661396120505793032111182017037803294768884298845908665357808479749827515672149461638308156042202375992898480232354127018882574564594959549752530896087354072459384068827299723859185037761472805100948516901436931821773474228162518660491128409561541751934960236325927553452740312910980993765006435211042181317124212330844398788305244313737649861576060905118245919737452452899185997158715496016179868142829100184440816398341693714889890618879491464934178533995257166805001922035183044696181825089891453326684036695819273706904270681267842073324754462843526164552728405063826352300507530081989784838942123905920631907714621138094229582768311788975966709539337230093837855945918878536540997621227319079321053504662269896953188311097419937305704179822658247727548007113102736563849649491019289758827283137659498007919000802572213968612817891272963376521312778224704136799695172826477409978808805707523504577842381113373297472934249800507485814359222017996687477266494770637063916364879917126208881140692818698822488540313458624668932097003255373982607968577082393708269605473164429816594744637720091192206962396406811397375091884730544651344868872222078830998307017890935425242729441048226061774720493741788659997019278072207656421118283599576678597863118350920041696843264214298035456480924455657028492504525668106721636985130796948494439436745089863814772878683919340465602635987924041332932522559581860883114765078551995987447718038754640580592593040233066736877945559786789917107251376846330371995206720822994251776638421886363097376738462986387829973379653677908350477342333113991476627334370207883239130778907080793385087437784705718852199259323672738613879546012618490921903756120546235035809597220760304985495755400641134115089675853535456860770738503512217075171285358997237306326779507860979623746715324832005200630990121868135657100364862363245073130022645108671980100989578638604099644296019351568811757405531109220647525136729687252898422377040090443883188319386529716028475867449631985599594784932613220967606245308024645063928303182140406251106229968123507256179568399276475530309210281449384040010644915686304713381015337608580189507696200129262038173536376761070140683079876958385709449889764239266421873146660357955992343659742310707977182215041653395751855569149782504276660957138404872886004723708625460006141450101169290001272493856524271003816597513657626150840351050803610700803477327204514185727612400343016522287226269916025491152794396475336994321410807056093226022698625570202445252939358134848104041191550429079634726217718225761909929918590173269021622017493156886076703160237948666433260264579471973198360550141942878105299248540951192928033721376594170129176829933195991812353915181045435216671584732783526869707188447308084650910509478959104875614664587798225128287407678060532367380304404427563994501432860190952928163250214328617086486498243747875193703801219703714389150341475223642475382781367742527854945545333397533056791827499792316929219786611527147325286689902490973806494700192785869913208384209332047607275200556557421347019589594379381383963536569047715598770959959772854107995241678235542191550622836056792860831015754538503721821683371891335531265614733762886156995616646084838515030053769954693787312999025806801582695209552900840800676145136734395735492439484578214030236305751671420126586703444049244731780111573645324954740147462215920671124738386118589207568209768545420837949144028935095208680362019006254051970915000690553555432499654543165219828300321542579712576099689633477559851185437358762900754736980162378291121044350963907321340474192131746148691554288742692040837779984605159237747847595686165605887205286581975490227897317369373075170399849402726173617873426754515750315255424544424085333861268191575499784289424620738396521637413871431536362035087288476877104473491571149936793373454879688110004825154047025517031341421180013203209886879352026568070636707617131340246615168575143990186727683951206375380724278745308359068236723697964794365087276063465593206973150707593586574537808872241889009233819310591264989505342171031788730873225059776411687622057881295937734616519682795790549609935288871678520247485070170118354684636118657148967958768853768757833877803113262226663265494608632402386985520134462579083770319602950790808675298800473712889768459873523829824706562832430807063544572387873604592610485446122730091030500958428032850574008503380116741962979420990659826789366569579396772568555707791967495334864716172608582270157232036859102324623229395926732007473881826342222849376730365037682398129492038471281318231405286864906911029783394181478426621321317564178201152278827971450864816067406958432846580537104818086232295641911991820944780164941291853011365551302142108944802068150218925452846272473120799835477091588028067980787168605032053411771786579326902163303675957051368249511028113626972300324425639151675744861860421213092584727113130386856567024576978958493621785829564442193596318151224779110335273971191226781142054369466118847755713683642686035861622470979874791054650553986128715136879491528272135688058522374645451847501093170026315877268416680073523726342166000547284247185147130746870498080624891746437859783014704533559359448374791593273294378175293870621594620447393005048096352762392550856123065582563361078668309650814439502830635300944944335430553132484032692775144535460821168874165362416155087067767817510382761841902055475620339770642627995813960061814834315514854030360831028293229892893023027217254797055399459433789716357704524702328099947081891198280387552092868850131931175313905836398884767360994352423966602457695328439669352783986967536479996341072457087634646403919437972258639982613557017167252214337284608455091943228510554878693483757834298062585673484692698856536871868943058206082110486990336321831551665450092121565084122537110414200082329097190950601526768792477709488302127667796153614774501746731008468128166567876670774744418914844008847256915764872733306110880717897167566607743067345069852600094636043829689472114439279633060959329868756329363874803180566685420269523770960927859706400964718151759595073400923629711059461728208291348931644861330914034212324632850815008349005806328395998934679096645218610436861231803313021885409667569102496511405508579272514742716601321241552729307787777007425103279246419213438365802880063634657728491601593481930896133838205096056288129924774169830986858161419975507122540489006544229323238068119496232576284700137021555225156003951230618386252381967894992009418611744569533329147436382141229924170253184247166551359391200242955373706326618762192243642953754282168177478607689195231319652372859021514974894177727973720102109480764280116714725356091750983174325527251029759226374068108273663263158002540056287979226975210137451565180656353304367809831517252894013630356188862882825460201910599560069128092601970746093238674891395463496195682096770477115694485547453147832691758697661869845134732834643393956692988481426539207534973177406305085894558883468875762817096187857637594438943518991744001725906456771978120786978390441342019860848786782285840582894001975833404579993484837152762282731011667961385343294827241836004708198743338468559747822213499291866203149140282390182121786541703722204754866238083209884907793216774978466757062365426939821175450010564751578504830176975479425418325786192766517528443145268124468953841511758515513093697266544005205462109720780676250787371549001621308933091421589215521188473847967997110267034165135285699068474065931828009494997866399891121292063943184034098568538527706770392645683369562263166844196656688785654466630507722053975247560318662325471035284088391537370329033769861377240357435993920513743221253953619461609805057342363445637692678820831363314223596655525082040175136240932320074281063354716686202161039604119864970807917620122744721754919209129366538654050444237216675173345346347957814520930077885452236921778121116673420018429514865207719921932210444387679380861752091637530985535401689326688873318088816420958775712088993241760477997198835005852989851596766327398366195416706241631942530930751128396242503239009142161227702586413469522507058112165341486300029419668505160860343948380800700897207975484009522009291991916604512797476743916491312913631055704923344124106935617272236056198865419635788256286942461836672311107859691076125883431258601055675399810817520980942375510019988518336139119631951762713851216295987832875999288102627656590256306941377261805745027114914286864677038866109229601362507236526257147237076186103198571478543261153436527212441538569088450310638969701676876878300174901695865350782759712046474774697910180978809616522286718633556594760212784492609951254003339379596347399801157157402118280944986685195131864349916904431392716305609708865067868893580148883978397113401518754653027413050618525578397462903575704373666911895823360010529955935183912211358195857743089125983242538988918000138002527423308120033303052091321558918715584676196989146182859095695393948386512607987929904222545188065777016713149091373531544104299736002364979339634847853718322472138204246000441424168621290665577745222688126000639533332616603848289142543045801650630581551443601581045831151148340575539969792115561934245640167849916106130264833706444264744023186230615276393464070278783610681954131916227127379182779801698914624938445312184154329987128303000520080604947551963103193788249012634849800274646735542848888620330321086085149341803251596094370838379538817525024402766401612770737962283309121782292679092203559156960491584990754497855818377563507457013373188445148067784670467665530513599225178228969367525422744846599728552390332119457030889948320575239018713482124931631915246457528810115599305628350741204324834654965524151052570501674981049635678901060178984606280571128958528014558859833929884214799444939921948279233396082181106328089217632307275080237888445102094534223724088695966425260981007107467830353863172218690094489550844161329574445039784350055412557078783879130245227773829997755142748787552371866505032200085678870143472837636034696848622622589106321433955840437292437727885202368160289234267423035885946400174406580536820748369531610384139575808238239116946264601884206929429888286008766832432604878931716902246611699853298092604609278704231661469959102555075880599384236910005072100289545202417530177764729776265771087327109562317209962430070543806697948247320249131381469935119983517592801910297339022905446061271818992826905565660931864375934097548068858593764407562301974748170201143111918088551643607902621821555576444877853442194937815114179809054758949694729698929156053874703752140433151906942929711724489770685740703314690078719793707624700365185651579555183007956057055351300633953557997785065038240137943361261696632073481267429378437762809505240316804832884885521351497625526313434699726727752445755658011204045573589119883946912716571953388201501362508927023811369079752907068663351947605997528299967965982026064063750987502273024291650936089738318743840489396727905217464818388680869714099604114257997658087153085602469550855027631657338083570729408348594250007307905515577857750005853416979103657441913921792964924967756772916779734799618188941822940646735878153563215829837632470678453415394776162147717496954867267900979297245435874340507914010192333894226255236327355591321970312202746652754669885897192924698638334428542161642227694279789920321676626176053615979275803759517438597757338915486623790647660985686175808503047687229507664452027990231750722966079742151834928077154162590939773526232443379040548176800561453730762108969784134701239558458576144248976284312065406887882694885165012000110269395600705044163134110021498184599381492744777387604419427581135779495885510509452600746231051921543481623712995519054894494053979410874848967569622984435854130508618378078740940817135160888667109961212506212097387375586751303435532370159009853806391112624489939455669168447529310412857773461620941457762825908036299119294563240715368829531535648677735694208085477557001771725832325526739415086843092985710011987295652071451866349226944989944675312540870318426788260836357713333630347282414279359222164498704331818637756709227608809356836522472983476953003478908638445619151802842085195563158163392680963955147398547112672574588603917933608128113737771893164569503930175927903734153451666943909154805729250296172335800489467800532747946395939484912231637155634701781013307367949459135539334430090183059474838824728764673488057385810696691378634216641802288396413981062375195853228211307280359234804668592094704612450216063097811941569395285749065068992025638792158974291302327746428819629747710727292960692798446674491469806116259688424622146222257310606792129298941483899077060779586462485999659929661481025364913597249585429616450252483033419001233320875189188747104164634834179799831188119386235379018168402796788033417585006035120065023396815170712323864933235612022258957318649088669900865439841251361330653467862383383837236604142085839874800204223102781165397573466362846317767584513321161805909894024522551048883599421872613833833789074050150777588055427455760292929662588946167002114231257388234986889677395571613555667066756781349992183629723126824412219974458827876523191982253501189941541829585593356411148417060269974452435287379068037556244995093606724065872718429844581377894266566867033243881455774596050851401007423424916425926190601461415141933264100207348204809750258811077442680090409688648064897346335144790447843714529614768668958849116132278646322269380303094107647899918852268904691936536744390215177411495969515744785792182082811913007714009504359941356147866974769245475139949957251597345855290162074180728461856805104382479340774962120718624142226310655585167461654920888233187001448588363597182405747335279125616840815048264193259853243107071812692990738628764301837622153159905457526109628568266485054384088709942250496204220887176745066996703171988885026848215469198705814646822220250358947199813340337275634710665822629616700328654216325285585348821416770500892413538749468310280349943915229990434580311988892908582838031696119683597395710880648232969787311109140935751238137928341449156885603004302577274556686758702636304890945228236140087882701936746685480261763325505259760173490188846250066642295104471110276455875436468267468406631914108962271369624328487583971670391050345510030638865344731998182981249645553085542045969511115333143741819807295462748773138220039679306913557146632505058107533244041418617371213708485049996961258349433313682098650733470598038903432841261297319788821735186595345260437625320768648291928387651252210882760025513258211543193839224076584522342276796650215238014379637064165187988990475415867769703021243693140304338662708663833374422142972710293230993745947574894836040220705482232315233339014826517873369909038080590630440491734597545577302396907299466228713878494890299791490550303247629508951342322899769257991480878457775876127109646793402202207371428920678081508816398635979038352607691762470584576994367512803777196458028821311156732315598825154646377974633808511366595868544838063026252319829661582483491263211470637967269337804084660406747553042816817021338158609911055737207963697867250969178648506351978065187374766344550285480186378603207176155048567060082756631058947075267056415813964586484337284088915257715385738390143942101592353660871890270568333356868367549290692435416279710578691903528492202184522659527168115543116064347465305741981545211323566771789806737590344654250017380521846738665348616814591504987021962836889029388953647178419553237103291491321037193724754860802305248081427545652245730054233483014417441682113908905784360169370112557491920361648157803894066673782593099725865801083504768997025460180358343231453267058918998399943167872163263607941107236852831771410381578898829731493653732230510011354710769147462635991494226419804067430751481780182773291459823365127470778617548530610545913838670175452813174860689176003815086085866975911320123376808538417135845243060104831191687246191940551832395970597269436413554170856435920240803657572209817099771403259767391574832456895908721028465827952171287762873022843046111831406906017069664879401936304361746494289437622076555057605858262489727562844852051806059964245389919619436920952552776403287499668336486492970470566341868028746186181466298103771082235265171837210666316972755264487597882535317780969235098634692593337378328048925744905546752988518800882823443738890307328006054574803911791185516332831870260759917168697598253054559029632345817259802405859614106301254102774115386135517955647142229422260610491990728221120858335347021312448159777943828327905179420315660733120796883224616623226907848349029593903177397966020690121109665430916665689960448961646552420349363047116785841680190478041511255486139481753942042399719954900375627739430139823442982703622631549037246362030414455906098588103752257440249587477842633097787933405220915020884167036075975629611871465214899717781968574006606948310624505794936005296651746187061227361717605075286186738208098503603711799225966447297673889192395372574962840389188320613417571683188163274689201244994660677546477874318681491757542814015567773023345520678345270735865770540976316285618178310360884068161788849112248961819608790995585435610977237521901556654914039616061543794110774026179598595826953074766642493980426661122574193107035718772723655847679186259648275376002713320708419067045060123388237572900860205912866121618508912915677488896989301606688536518748496028294717255467871140594241367133316226689943169250314640189622206825545410221308607215248628025290845212285738428190723489948613066522996885207505720278181759226119042514389296621275909101626309856932260694331467370417022828482295933345762409279217323767713132426705573390805809170329382465488746040361032434008410049983214086568831018543927797092359544753518604744238696029571831902488515277921617331881811769309135215062126915107232330018024763192783269201299923291295696841858112387808103327634830252225223288889384206197561912258732872139443627759510920978817204358693697314026792113953535139071678133745204783780677671723671572446148070826446828815849440091303977501400403227493301062358383613485627788709323890791211960151221745638833645651370215494830353426753898180685047907443468261615521584565678837475884773614394427799469954516264136336796211196475190326829774284954658572335425911139129635069398660316720480259592858900895563575930484249408622930615074407205011458216014092099290534235128170531682673602544788193538075432862419741132757195612932521373587679837351582688637112099142608637461636538718753515355881682157731874616537901474728947930771843555566395844771377677406814219917227830133543496166232515530856701018789672133991032752681049645393209629323748445524030289376140206786472411927616632476052081279069320196336665656204295747455448012396334047536291602201845500891891847934772219799897772586349031134011104227671327854161662613022291986384674394950669163986663545989772708483443408510980076101998561962168109298470392157413050632784248134679439892327618418305068142337052930228314315652801093083094270991183293463726739773334258515904425947931353983652302672365689699400767583107974296305655778901031815414683088034132401258198847746050603945775951441619222792334601656919805526835187475024028213930208595480147161028986237522275424306592564450972308569832603091860186054192346526912349532599050273472157554841079535205360514279135257690385080066031929881210694870467059847947490952774582890983820955051101727566277375408000905301676898979877831308791825395437198801379245591786877748683285207162299117019027512994678100230728211008472081323947020722112939163068051292678109176683585228282395724044628442221061754909687619134525501460224768426039881693911025515228016284006946039935242756924479491497661146301777000610589083847164489972833835207828824455837759082417818544850382093286548724551318481137708684201793872575177140374406844795822854992448725265616596703374207956106864957783201783069622539380976346397290967334813975961921281051044806454696078121769586324719911608926254982758036363773749362610199110922222052913849503427096372401604398981495131064382093543756954104780665069991609519271135767015165283919765863982256394965507580916689427816667051608883511782320114719815949053893427574478920127959327796231448625427538091700323801621845295993654195036013671563622858985023244458027524542212140196607616753748027227372246188687152643712956002185347991006470441611384307319380358662857729543958616075236963103355158887376964551176867366989797903999008788616203112017361604694958687638498486418960468413386391302310937525642382149505623717815550169342039877993389893723483075113260507227341841656713652706069810770794941896008719010996846585215558961011213980760757306203785473313881850229417673267652467459311836806364864563555714724089939035803335645482773090506508010559301612837393786522025525344311816075657039570990783907397959354681908479103943280545851632080927369650220146519885950280270629097396435315495916564549595412667143415329488813830209360981833101335726535445338311246777943512371432826091355882079902060900030311323005206761228813265496395233036205178581693136588463178290195357988276035767548378623971982880850618536433396491650578436618957584255612573858677274077722542815123681135487428844941027632128254930132719501737596970733255635191171956092258156940925388684047439039679240855459905445233600983316036727888160798834843251133649404792953829154744231845799945655197577980490695911125919651957828497236684419376818749494223504605432195460288642120983039329385030375250238254863371410486746683299824966460300101821101439143518619503147879787683424897226180266738695720065699812062301148605886466967171418293713968651649698482274664113188740499663561064292030258356004066117289992740985149212557646264659594759339266157337164336864297011904743247342684866377279094274090110120835511243273086111312218127465137616046896131443859307515159279144988595358234023029615258706993827558903636838276924894390796601768384143121155424490373741328951241096380692931526721398299388867089901654395801858051073309782454665881498798656947019772796584861261253926593943075448125538313753515050256169527426143560984177642833239476316333305093260734380806568088287417872299582783214849849393186438395855238967492921274503906435126339895625745597168262526505035941738134521493266288642937465680613740296353957865007228343998376305960334301117171906064058454584708507736690249977730580864608925563867990885543435037204631736055061448940694531319070888946444887736821277721544747390226150051404073404373019140378617380195967588331109954372798941201055945179093435522881468927480284265992282927082766766608411727327684382851722296865781800481267450281373616822555664829401669331934310752883308157536996784227487328874476472583325872977832780655978274107305093832767338525190257537568302557710881666811091695457929566159526613667768360333475972542914734690763176229185315741107317502096795046085427922182348858838139133867430644855907420959084669020398226789585463900766860085263469556120358330860708545256081653460855017510312845709777212542918898289626873045115740542206152761631822535624316016328091480161050568302538435314034386701885678228792384957103795530385060009508196016318644822348860847043508862087199298954824693713647483456308949010584196228134740026194159837701867460176412658730653229260151280705034366976269394636879688506194446484576820056955569872240877420016791567540658124581410208552052404098789162835612377602342575294126340317824957507819883634859601518886659872359249213847237478723267077550738797009039562628699242827465269309911628319329691348026833760231490367626261874688441240234344835283211786422893493066518808214165554631019504104795236871208068825326700443314349063771672896525076332731202003614595414433397824761287133522829840109166391578725652082687283514880238930277561495398711770682290958438006299071340339082498845273397847838602213333886758273727051760222077404893859221514082621810964396306618065840058557296343883664325886001059910484877141759404324534542257260646965367367391510824288926692956583210518767489712545898955685849159670801533393745887381418072486024258990799329761328581890132459664240124906199419478908696168635096958576435366906721177904941251484962308234410171900666968221736788384289935190608940420630744045198514448272492036447831001845100785910314521703123486375933455356285638857887725659201039056315189295208296137672804753128974130766536827005843639803398096385021379889158693383169198568547102770709748250512995415826781883222551622192732024018781383856004019565374275422346547158168083127102354350104262917377983634123375121076150820132500729381033070106146823748572542856521874903204079614304143868266547025375523825633245839433595092206912435010552308012489989188409585280120123696552777783627394472512484707476601243512863528614400395393844187412863219008321324601252823807282247244542442831466132508457451268599663054448909267147607751315204738830042066898265955409812478610389458002927968374388971684876045070607265668847003469304704462093905950857506301403920813240168705003188781897112096672519971459032708415054724065910980153075997141801437438223661269324452975404807424270523311942130786252100695839960935609454979445235377721839636181050087202333341365436887069981145021287930454031846571816405033304558426242716168912087672388292311351033456353956486227564360845737640272573248706868174393040626976630421036356744704923670571923033002461471337927802058150892309486727970415891117823545998487321426068594446332991434813755841861825739517966166825071179364762866290483242878751379372771653619625859006277828454901691096019732425135711794663274572825186920375515962078745138225765622166519852880839729662528972681562434027126994848010351421439312458811074613708837882707290639730783993840984345524189674573685561409866570399253289245684263927637666243207050138488990187991088591767171898015795186216043961832225255871928494954504940008258446505109536754183753433133467333669549747443282430661049091057473676752215057568018218304021684197272696164146876710895110124127873114263664275767355881413610575343707413090821464549408947646365370786935409266084083605256771340854801868744207710683088607019127886522168530721137223639990654879100762276869608553559792867071912207110512007665991171076344985608162188390440803949036567064826627102535612767799619408175487351593875976802957547715654473383399802208590841161845524063592065538693476472945345752683137550641256482171146743049404086263799548453392661485893619258815466190118016958947224446681962450783605835312741240433696018986103084104180608766581246184045964319985404384833616720690572042637216407635575384685190999638276029557447587629125293457677750541336301678648700968103007599310782909563990628482136897821653769046390789351377167531410202775302020412263115586476619159877411725448095396428847461079041856763276194734633804643171073221302971273392021821912510259539472751462064734387306537925831198477130408957559692906011051879798344129166526804738335961869656999265018357439522789522939928569204952491774362269227728813896355040947242630848311953545831687837404327190306188070812238384214181765741535846933905729669301861360820616267188019750797196102249859779168797545534119126080682125238312817520734084416444699655956644682385943513038499215956421847482303584603038380116474826703496361288214265797892416990876890131992384855539535217910118514680124203764257735397083280876606013526786353241943117049120325531411533142720730035257672062444170480947012498350192235961598505269899044468568461394719041479688801987712246356892029033772647398958797344319869522199229839438929821048981060967985639135132998476473184841425725694163977101378909846659824823219544657144176269480838101074179076623620749405681529490715489529034960347960606192357680831574589829984635298308991069690064167314176932482579903600651635413314782973960992726956431756305240169240393180841455937831070444572381404916862245510331190083055734024298677629413835793157107868757342584924685610865864430062018273399975403334960248578845618593569678039639908957491965563858480239296472240816853005031409665246809683776354165389101318640524809341546426012283257881060096156583078780189732627161315190459499604122308631981644297387333492266258540981239037683949619646294336997262658710606892483505753156613611914737028054301093891607043025799656981139907533716828661330267941658051013406136357244920517410184340664172849428210805303550739715044314495096716231117658215152161685037578661616388146067320262946454916731752738365294564423172397519599945506137887617580882022309105670890683359670596037849856715333874418230224976332219606664617168981911493612532976305026924475828627747143227214964718319578064607429190552630306872700111125438053897788560496677878079399359433805021437159383038774613007858540607711333674568312129114473653455715034526608469519535809503125258629451998224485836734371205634486480602912282946678673673001186802235822545826684529823193156620324156821206773346559191324872256777225393442379780453621598148002514359808367721002861917626864051117409805934346782580102703989938786160883484672153185267020645306329660410797092881154390928485044650325044246116371934542337186991287655546276602961160304976531800547864576872465123904892269830830571026218901153826390012635328101996425832410800128789532725576693114725341035224295515491818650160341185971398388704631436214297771452658079578844452768445133753583190555361947194093642706382119308064394402748551097654378175568610413848950347354088016988526595372712311886531523861813610153615576789239326532030111006461713583738446727446411225899606564751581634203871368061653733852158403454300880584919409332660333984425521863541821169038373881936233237127788251342282323630163321612036699397270445075371380047961123624608571952285363737754671488036278151637854343269332142269684776252148910835656199956154840924192886587029262190076387247521200773594403915984809192591386980574819174972970559921572735755422732183871075805019521772700923891654927693190760527504210129613160815999060029805739979505522480654031195926307258769839047343225471205688171707262708104642278073380308456233026950137990772415545188629863287206006634209526144564848013019648510436217661335797752606888331527032673965547334655253352322577921863156176543050634721583727049599570183494935015317958604828786128176655771034113097306682913480659101944689790912076293994142542495531275286597212359398100954780305075895214387500400006906176938599290287293076506087817263722073849410058325610625469459435539476208923179500969262191906873541076450897615848668794179139183384705623601410012989845411638342819153867997781113917858914984115983502930232677685557902324190333328779011025633611152217304692709785749697437550805571046568269434530618515385042942691468638642990586956452947489362098042648071349175039814959857973362185074421011446623027182574526625318309266822037064623691538217714331626403970723147580405252841494138466573778931993268165563819771970903280225462353645494404553855696497420600109311620820034998298323220229103339395622253543056652801916974684701863938648870931807725013187429169719332778112662805383949881387730500541068963830065459021079883004767737133397099338862955988033174931580447013659446003278562774365007012171711157319935182169740352175118021680557757952069598936339053442855828268370467333414544269905455429329562643228309009003708097736788947785263621782905253097780219973519641635449548656911515202616324632694589991758345034766406488331772647608886729636089406592447559436133625288918739020090233860376944008454763933156847241432656550253559215477602421708438215405553567305833343314791715171614634646652477870984386383144795771020281241543365405184519816595266746642533799858705773492528079845676579962452208132183677459442109689862886023008190876029497355059769022602510686335932964386192812133873416679445306637880217705460052096221249995352836268848017080944827706541315729543623572439435864828254415681046720246476852874660455638978183746760569742157222027310931320609266398241672976327057801090929842518426251699849996039780902848237430934555494432977425008297588306005979579294340772779502265526084483510117245746185502859122297417083880423966479857011190571678308801131699035043179877220726344764470116133008749381840458787125774618505847840816235570483171094702761081293698350084831146115826916997244111991713182397345709286676099055051305707633638816069502560397654738853634094770826254677540945329714876733682884940916878082769164637205901574399780743046050071075528682681133329712398529638335496655932590119792400286493913781620954367161435729015000566733350608131110153367908289572162899990418573570669812522637050706488589420115143536787238445152369753452336669139747532098924835457701991170382852588034720344527297725062433125644480951293115384731480884610038831451090244193704789500862383706452143259268182011789098890455083392568448565369613322194606018779024874570881394224606359289678317849427322425093137618738033948462699071006143296807099825596297644446045236856034463994739101297475565890582861962603867586189077319114405061696814225528338830995754266242237907585273450174143155681953727458050305973859278703932348244145638110250952350080581196238633972285497587319022225844697507584407268241498406838201603621846812279219437003718585380395970000902109399632188980794028889118791678759551681438576975292931525691784055664964858183832893708099343769819950263265450491302879929085600792365940432784346724457568011136638089932257458072162522701796616417428297146465510532557416061387051665749517877758744405260374936759358096886168692581828055412291987942481545521365938563523921247220476630461846492679694594126289760499738622439252156779325685024416764852485961046934740228735486915889853112625674591633173447264412837719749365825786602224123047744823083078479124905834849746995473151955169268146839755143065852965543848336348287035308652907772400499456673120917266080032668282396631270817087047866557670644546610216348371899934360013340331996777858984875690426340764318655737670772410179930184799078061638423003342337702428218805625913150446936663306186697157749865270839972251647822292691576793226566138668080644811627331322613206353507450680673867709400869463412531977200407139880163341172624542568176168691654247803275351932141255107447016123183219675448662972782902978719747766600610819417135470776341407685602001444075844198129535243379859429165546482896941674456468636515515528008869383064500095405016820826108762732561696578573404773863282429151522462242799895932250534346936417971165989852789586970731749320308540610038265198502974775736762658758306906679694416548399982735852787021532425246997480800599471133637049374691397363514495946969939645321321457840191387803311460459333412087536850686691822839133028481246777697823133952778951048433739861579435362512405506979121968660933021993823607614467735305187181078295424385511749381961241280507424600791241063001065404755015338614339836027960517953658919537411802018238583583700549988128229429575628758351391151724388688417596081895782211184353735110170260145326591896950524880175970543986523522709418646192985695410369398299381101080267015177916891879073678823505867108998984544542379868894922546290234850331359017072319803664117316197423049400500555754882953523711883172004562329413765688965824654089962976221289639142646228754059689248132146910774206665488792953620455886103010340021863452432153398265562170950660317651883837262914729877509733266439290883684496863868633585302017927999389420176430704009060543025566392985044434280446271813423070530595477393240424173263833875514512189546577343741455019410203148625077030567512564775821071986166702710378936398909504672243735684152110116996127387978627916263634320430133458866041649855211458491685395792221065860231943014980519977768218508034990329559497875327751263507982673051424554415276084673813806711376712474305393001684804987532425974592296943413504183842358414415965528991404498314567005087290272151808941899074064129230812789494265273176432608053274637286871486451843881170062082039487573880737599040863590236829879418180053391676162698558443139082316421979258251778049009614483085160469849680358357399866591178827663589184478366240018611206994384435237889878625929535901030457540230841367832859531015063438559103075874589407278356353806198840506505337791437687285742036321799080708025591169277748085286020924736899363548105800481451981995559576096162699431109455434305493563548775817663195610444094537992816005408526427109477397167068153937338741690442996078933571965144129693028230641187870312955041560237828047090311483216292519812210030366302304442759390176477736035023641334246584666196822436595945039302621063134993310420988223198352033573288492245841104865052862569485457968064589127700507756820510187213845811044313697539562318865176697019280031517071883098539587343779521707838244145003942088912687543068810762733213147284390349499339020882759854958445436709073160447909108989448242003913336138643848137494840810270797604112067897502298933052372909716828581611846970474107089657081952308068027978641395454613382837456190887944110268513199069577311483389942732565752016862772989128635627962551230325015157236563129341586391216789300294642002375355645133685819066920143114374287195359218739639201023708736064501911472770570829515152426943328376882152269849470813463254432384783547636903785253872275392734364606022092850869086303658771467257056007060949280255968297309650808722380773004794314334552682675052977738935568604157893123596886022441956115380282492550381346516068262010834031933676761395119268598637407437470897607884835273161254177076911345475677192220400274030240623282884697609202077540888132686367062522549045277886172886673958387367958181985111944067906353321319778047537598026600516309338249554272333745467803897420622909969130036501528261479406343591540959501613135951669045957038822841987590943792791164022647519417684986095024396032610410938288317280295826185526768578460480244376898454324481773948771147055961739125180724845122492329998480841985694310133615284677505093460815920820252107408200302548441911599544519063714169094914227289872105320575453882730877881648556195677918532066714579021279603788962731748097384369853360482611547531571639238632896662012252713813875284854700990380749549932169525994702301734455321022939570988940066065892211979909658620862818377780242184034646263549353863599197609973535439009532450450885625795461679855244583791235997577032593387646771935071897764674156304618932894682210587588075052064338965647995053544500173650106715406346039981194699994187523073196978875310932570038250625931046427697358693156130871804683222594970034425459289829951913004653316176508847030128604244256467902026655389145554426478818062904271413505609140509472578233714395750976031484751796541965177667809905312213509749119493771198992499066496679706457276535890466964370546088134829146929182489206688513189366018926648747979499633686795214824899457666192661352072639835026443810617669126420179292369946649019403119170121521293396682856289890891723752850136052154125874725710006768541612554527878993096062395515145644717706407526555142280516475700869331389948092472312952560079814959254251994926295476916868638328034280608753537682690977177193338873888765681104831264983550624825051646326722314142023973706720965583753983587312669333146918692053741984780343251170766766552254654540471292703193188820286850589131349688497898250676823427344202099435192840963369647082284714170072088303275134251283154143274259469532699681949912838159963826046345856249980604840782395568097243520503133007121754287103864637533502247323810415216491290348268861072106013634787895000328773066303268610549651520901249130625490607385535182310692793229430186280790142818020071538149034718901358258581808588905634999727504268643177260164039557475504551504264549944086230196221936200552775193644174316958759564394890633356878383042637287928756226846448430641927529154692179320868943899042133534770383619151001609249010076801470949699532916949798509913055204181343368485897681349558476341412372964734034162441868168166822913528387946621873162916231618982925257089158872407691693685842832176488031670161819822028801786316951336269583129672222115567017056547582369997617024843270253776782001165828024802132236814872662783521964741482515957044283348767683686463001096347743472240115188466727571557272962628217431492461181302782925517346204689548203440636432754564858056803333828434813922489512839089855497288171097939053827423502022647022517155488833576693865283185444668745204897131115246435854136304704168269372811723490408758615565025405659117453137667372740487281616525228870076553947198269661773372002035001757364048387119139072065163093320164470304955493417686476109353965095538152509328793924898166509101169195618263355923999588425677281399366019550887939264600264003201478651646001551968840325866119055146265817481284410465909317146545093608401818266109072898390075435645621078176304669823913932460998847066895688591917871770387818805279702355754758066175302117548750344756386822331519872097842763829140684242704210438602416880347459706978089954378093245520464237103875709451855358155666123993381866740418889332421835231191601844440367996101701496772717861818341203744211282758959647114012401955046388077800206665150415782517819361947157584045957336793379706146418422950571722114343320985637906750095984887123988275761466089148354568456338810897284504139518732642972221201701984314200640720636641270968254237600391873533631817069673952004662270642840009991985529234069071918030316090054531598954205099534650068821191786375021925944228413491367580775029625118228143441834213642948519700298583818540293851365011137879315563228203998604061756907017056529885000091314116919148364343285198164032685836343515489132067671169107938926948852104177227995538495241548751935631311984976381034165955713318622690253528346979766038620854523537787138589746857131195658414243329759594534842569716290737013757129507001028832766150072740966215967738370352582333395881522140551072141103006166079108457943317412199043819843711560699219538712715315616165060466101697136839623922630288568984798198499590632525368806573484761594414594487982097864128895515591238579190350627408175665122877072935711598578629196499891566131858432697239675810087752377728300483097418033316663649978063362156213587880345357270933515754684068268952685093998268680439034087039250183353922426090009215614621114352076283248163257918617533399866081692898416664886339215608428370369732559223611393712251250650090774955213642320007303010291395027607935741087054018408424990953733750652149829854565773994558719279179035609372967461384121870823570666012068012362490020194616911695637230552697526575340412075941996449530784565552534632366419255672191147668706142615641526150713786795634522662755136366351952335111678861504704096575564343468476373542153973045126630315947084296935124970226413028284063675537736162664285944713186110246789571460093968844485774759019957282452466593076542173760193347498426036036486717272111620148550287479332875362541292938134818353398292718307249635174300302966291506739839308245702857646979298022630174313916856719469492251527559822644491979997619045958506983862472662370227617118547438060659925800846155798975622338067062407120135121601850363200674987410860416006070809155414965193158629830044319774609096443239433013827351611960136906706365697680670716736469333959770183366962598845375675237238549101683639824847645335309788771420695055596709245573479613029702044738956364942111038487729936211171879079193473230838539452293794466889757975634736697348515063956557903222617976141995876773050328802729312355406487367108014954460516987797280527786493011883141440970559654564759908717385728185973053486053392073285573208460449096868324785174143447603432614228771285578947522827897059581820716832174173188550847911753841072810017356683655785736739117515299386296233433044694051341731051392046079274106951965480110327674954903220008058910531043054204724016852349286039025448018451534159520234314013489109278056149065589004226157152357481201764469127880846039832878527412820767883799296980647880421730482895572949026047960595546755566654847260174210878728496671732380129955063935302628061313772371740587381182516470828769230802192343821182942963672158638749137204194174212343830177906379501326724941870858272718420661221180727158517741171319253909541271312011379431597211178870767078927323974676698371732031623133326646596985071317034894908354545217047593566778441869593982463625501124713214072551989810738251642525203461140549271483213129171313000775092184998366519646752741660703442144417332294530500573626760990504724251874498693191112669247040557646237193601352285144947437941842894060001470977389915438553009665798391949555719930729404287518116395215320445897341855125567361887694839740422116167297741626564197153113724209910157317577858903111898187816068177236321928603775820913651200146701802959779925585191297090571110067136289623664241259230731937174873724132065062665243106601654981863126176547915413853874098788981510865120906139451214810106297733051691270328815334855037027740518407056056726265023549407457173048842361744068639096372487643464938069595942673935577823887541139933048574211263334732329300300585494228999122326077270069151088754537328821248411030047610904765984803701937145255873356562508195962927038125339532739962687997561158697626439424015955032013130545406476381333233669685525897949659554385209081310656425925351122166047371250715320121969040547897266334935766197128011217605358752030590818015181849371948402290083361391034829909147450635411105737415808423585180108240759821673793924563205272771679467022166903812608981495666272372897650583856750342563414233035208667916294248819447840913020036785993915839319341911339118961194186083957000292277617935315768937027170804623921485873237286566272699745002262168689584237227390618787759440693917804494818441271503783998645972644395910554702179160159961365255691984944881739138191147208642211303299200245747982388542315032216738529642169345684871515659191886422440312261631221933272824713741721092640293917003732814613204500535183715915885380821660520015237328019926460721805733735284325688642570940091504098218524991564978231790618914952073542244683863281500482826682810802358182613146031867492324518849984944493118681302525774627263500814332044253256362245128558012909765819038846903117274633654703749278280962403362421943036129297433190953601141573102948886558119136636189513830508033274769203184441792826847649199179296760682155913181583666866696588513360944196645875841204721791289761417963695236161132234741612350359900848789390459760850380949972721371357634076615797333032444806300102536231859897053982771442308634960400781791001509630082866211509275299330049154833937650250215576172192007843147902316198754453812286384473776539519230112516411794989009471608870959000789372948816538425554113993709180087517202710027524249487260357742443289492928259348361548198183383517951821465282744520151763954498587230446015396796708403352257283658697927925649450455110519080735484129301214731810660254762142223774425868453111092956546498890293300027675526127374640559932072756788102549274687558833687208311644484738574934530812970764266275476992539887342852976676606460814744108164177056701327832156918054503533505324291212468949257305841345514478902216355648954772081321163863931904927324565223145553341274493439865551792619745838839869747497922294232413603106228713638757161898966904346975928607984856792275822421066287917745406017059814678750605216584756837059519320010447285454235531284927523336860800482005059719897892105540806175562609942678647299230000109203769512438892961990675182684771737590070498389743495092489822606453996875092097160886698249240647150511373863449455776417855757666513911740923786213494374224173231460393932629370683838791024942450820450316265330317683811668846606886756994320840479134570002650084416858688425363938383941972702189024428862079922527283125579358163890328577106689408777693645481097331511284080655614855806363759539951423091049495977166351117382334208210506314611955849377596522803801359712735740663402282941941811344712942599086923511833331783350518162130330899798424109416136634668170500207752299121273063708433958447068525890622275158288407701852453408327093762559772214606042432340327793213559988230138776315481718823765208822842464791811488826506934270005690344999163059609594916509206380913070678290082024006360310498948870410134356586733444501225839700774151330776081050165140621934441563875562412451951341546730544805020508566055732104703061064157430024822631020270475611390056856249902842998191848997868749861499628864010011848556789519756670175716654506132175653985500887004622224097130120131272583868138263948348057992266942444130197930556083991337324240720169175848633227551324357800295646799285490853106147793263495771660361003209019311331740356664909354593268002253062119869178819528567090242566213288229351755430191609182233013347511438548682881331645884795966683552647896792491525748055576563968384903253786827545582665498615644659963848225572078139135712636567372948064027982953739180822625694260451594480141938305871787683795746551827219468522022352654853437910862691002616117247792155597897759120449695568213258416977417118025389850885206369894396337635475470191469226631898850291056496434257232116411106030822071894397423078399796980281669194469611332847781132409065026445529402399004163456648497554335390739907830812067969163054556830775258993625291739262762907982956246468302651584164899283789579606879135239297131827416298614332221329617485385771215249793640595912274312977793165042787452775288741357760673814790232588441118845272184224029258825973278632993466670577324087028688898515324595487360870356784214959345365815532826325102715093167817323712168476983958985642719948241737428634628000277358136736913251201667169735933686412503240240493444097833312392029028716794464801970081856118844914868766281619280619804065981405792808394879621969500330490681128240385933619529901926367591638184812911047012282282694167403342583415030668366493329402928952759354394218991409249052013037911253406034166548705809439166957697550714997864532880463373542403814882940253558063027994504867431965756460142717133748123709226861506822418551930918609310822976375676982333653391324338314268071015932661580056374855748391959343546818601830897880722828920343973547246848542564379552987078353718098415813125941119534151453075817247386196818551824275133299717582011740944545881441043050020683921590073781307356202987948084333353053230368554819891178656955978385669716415227598570164196228701044373171650355671461295423658249304361204735154765685724332952154446108887572748249987876121086543771207205292142105204713044363613073764530021692297869267707598912610215683545750997168558336527698976402015078743701502942861190028623700687393703329947128623286291981585271628775511660615862601690028681139033394775566507543148670882395936359477641024277320700032051943531572444753725510149266562822056265532409339888483993664733590131304897006577471351404011847153319573892936283216721596976680006837459673243479916961396044145053210712842592877005274823838639658290691271205089891724215538781894350541875941870954300711614846491804895583807880055384773050816664934646408179898375514991031799312363514364569553400494668822979056048738539796858289490238072482206743057679463923908030453611278532191270607505736277112034163163160588484292754414312565878326073680229273050797956930328909243398170856286604263075965383325854614262008789533527710193299243182358227489670409777218146270810974811518162290983979866636114334293532085548158853898520360048013153699622106484887020886818784241399540165208858181202991408893992063199102763251915568064416979488162973244227074934019036546129550084025671080392781255618695847794377882345247845790992171705582531416524314580666274438037179942694403594425552545183586213172531080365989197148700711816157728522979790673643032288785885288901514034682483376476670089832599558004103959367588546347036481254200752315772966629483312492428266968965328393597603786395057569931766342031118168122157870883952039694313588847607679656827120544259783559548044078209961315782430892059340784760276002072647119618436703170940453206961420430388738642009064836017031537384894600885819070040331170751468081851495380197786142607874192215835747627716890601576274124752438011363526167124002913747278562350429262575862810716419478120176823345739488224398614019542499363095375667820087874116075709956336960438314794773447356832884793207740171311974229528431217058930527349637685642906765631243724097743000490577300363435933514538271762523539821523284392931265414151749498653285196769173862131812222789050739771320384323251661817149408859703817287202865903896650845302954974705703968908540850875162632366752026284909742841647329566453688194226124176674344265698955946540651660122831922799032734166376588931215689280017019489678368928237284622874187903657594670322078276502031568163774859913837014126715183973794265827418630918306138270379977849025354695434626602084847064043937236653637216468497879578881890307519682917600117606584146805832825493915886596778834804677548544944688913488501451822926263062051529870188174869882511364800540930513054429825419585921142166276842513029522772433021846822973823604717887375347474340321175988799530543735131461307751051705691075715610120012691040839601507123673913122926402695894433909097290413647570033354281033358610662406547314570942168958203073779229428410556784439791867046117154575524015562792253565930037436158105437592169951551120485255365745786287780258211903460956595030206557819176636328115151035443384101639580957196219206548205535670356492112798608758026648926699447376111247154289413646250854891082170845327004770823858768310625831215527994812517871910154707195141647422483483307570121927481433105491701056321792613763869670687104314576277149977354568653353417443876773952162939219605126198956470431678499509904350029313262932141587171942956353237701809447817900448438606560837518852954998116868765906618536323851914901704844787404531124116411659739179162077700014846563894670164425798883425234139356830044927813336714560703746167921153290883514106617711221439881275909101341753761972037744867974445950144933896552136625267952492324603081252744268040420810418112425535507941766361982599421566216308091486890767099374515171424760018075619254313568966604741688285483265776008951775876919484887680602166344448900047205412099484715971624618323285270057111049481270884420046557500457256632385842966223986526738036038011568575348849871991847141453183038099035723190333820075447811015728512161217288708150535218912385760979088973119446682269670256079505763032798603556035004359943951285530572640269214917817974440151052731604077793468731691461523734928175174450084181167726915330527033329592036017899357788031210995510847284534684935771063474500946980086665864064749190775997961620661888085166273658400736966428928107405683026485364640419016404518220245314245217622607610223413095516730307852117166813183687890689437422524583348294358201772687670311111526257478584218061296227296510350014607026357706786333537927118288462454799990588076499375587616611312248490862433209065918818900313370803319327989662838970255142874656998434150354646520725917159241561867992942812779300212356545405237202315668701615651127962246516511935887196237245906428930753074982629169503054177000969200653069278524570427612825653156231982561661821029864902934332457909348594386855782427872335647143926251279671029664300047821154156851074815441923720686890147423706333425974194972356904337965974111621833984512883085377829379590502513982555071660922594603741140241035038806983009299544452663400090749068250594400465805481258515016930145825482432582008183850134092861698367251776000343014143201301476611641450211057718224093225968921668060850961505307405826495630399201705666192735183687107899985716230503274027290208239896757711341494519833683026490596066692398207832629410177818443693421039484654015451520733365259327353182932894966415047770899230560558767323005860531399357063766074327402274314428445594829223922694699221853214799814896567240104322234948189709913300948292835311919060957004603370046092707209252988487081939158948767046400801828992324389541121128430036503549539834938062147227324036903180388287234842937090865724576504961542527832626101707163473934338361423591760178566644730175121978362106825259194077570779582114448363790755584155886705535624625696266953034719077001372227380878129540816926493193366762274216513090097960759520712703711694209493260225251316452163339898318089555531053550864135821601960422731944041774028369820976689666390854394906457564338700758608965112424439909663857114075314854076596813497004384143605835413980982216405691392494686982071656317624255424267713003587002920214272612187569780489404228408760426932618503106884247520266675847879823957251437577915005803985663427415736699468971436181719163723204973079282807734633185785190513776246192387719943804842563157796617473615379119231796953548212696135605701126687257550463903427482398826974234751162269915784080822622468643620879148981921675094897756564492906394816117492876876745046951844831695684144172486886055659398888273788949652044845691217957054596854942543620619401312795785323207388711296827152282264864888198862021437553453420403344434255335528841014726640138529676102677183645556919661529257624126830970779307118937758451238969469329268165963274199567387914926724371503818565439809734486067686692789850979044968597553771468191083402317038528518857822264590040609605526523785837288054684849657284195876499964146809005044577796071272727748758462295880964052739138494403536001940870662224108193166019115984410034670300240221867942629575828871693128346361410684184817593756847947481750125261115254616087858550637680133327925008736185934874563443006676877769881120800480857704746003104573339332445888148149144036316255954643175653284323741982909641783172294400049835493622669614116162824256653384935843714680697698912053843910000915777614550330974669904425805121393976111836227583906331091805029048579451767321523559889360004454652084391999756161802929105501015530634508718725633911823482093460729641988438659028355218217912531904966057380993926023867799926669090863443104025516652089071785456404988466282299723099395796630281855557862747385188142436364749921193275921993746199852327218179976628523202820360029497977146269775850382417763552967926500664233040468957737366579108566784340326846703442545950900760202925975920097412133484421435208672624295389559616245790922614532546176087381879940900088543500349386866997218972425417731154959036097116510909868570776452301428042469462948321822083355026647345542054976074237348558072229090812533684231301083763860288688779876649072996068989947708241140083239468400113848433494759249438320816147845606727099800553565573346766455945840834398016326587983581456554843667889178947663824616925895971290045764293097200124732101365698182169271051302513315234686529207522335461642891054802873251711130515192757775398082460623536059941073640408530335817968284267316436862193270988679379910452675748161085538325515451402232833458677514923379517873425141994587638128491670237915169299656549949949134580152990969376449763369925049361542564893793261832718461022741827593289365575380017985125047986975478666928698243478552851473751543688340962012947376836393135140294450674318171504929992263015041464417865956896528634357208332562051666693053690525906046642882005917814697226512153306221861589467033789746190100481030652826785780277970543454710611720396563729540991205319227523831774616550777776174511778992467451479397756870631670609542532142730513335562018436414005473815495049909096576506489497778650129176155420115061092984201600288198172670295519875739814389838037214636660059363622419449932076384832985046675819559371288900274614791756711130481910402536988621419278817715284910001830574304883914738405726580752300034121978258672777427180812018957471655015784937372099871717250564197763880156162356023633967939915556166392069799460692985976234338424743190377916997394505213179041702093081817385021246324900505167832737934601441304682070833765759073621694508056546071120342212821580252184134525584353237712231397334667356883725147446914839947146235711743393722046734194496251653423608704355829753569248370052909790035985298114349534660158869435419003144554760044022610099654649498539205171615901658086594704003406437564150241610602575279533303061207182574087067463987905861075195021106417549043484008429843122358390187219588674449581877800927617069213229372043285205671803098029431635502991198277369731532791975813518153383446924305850368453053614646015728407066757956235785393758943871843053576974340396166058180642051208099797870270338417958396105687507232071451925568437668275120619362766055834353469350325909136035534652763331371576329967101617598172875521302316625699105513219350778297616369251346988085663894952105442557308259257759273404103866753669985362796996559882276889480877937036152380235911047351504757888467620090665496690623502516759057913298744288897094370464586937337765121430938707295685412451097916529669929464609840247734261446841279723236429120301342086185340721037200777316688969276706045187720888254972121098602707421898835967939810228051332040852381870369845349429279853130664779602313563290205337341795749592221193175396909279225728170620176621359750463861889333972751184147497935840016239189227070484325180909486875072687855151323924180433994624313975982392091598078862615114708797357058249865486395196930743950440788390875239432298134585965784768900129639268769191218473742909442940020164606242699020469350055812500828678482212367360054848497616651276715443033839255791958810720242773279273120291978446909821782949745403607574716814173402046257581568895433604544250778595448329634448717619146678707989585745014072620654869899024941262976624998199925900295705078736717890142180432278868949997955353131766999270060227909686678886945702749060979869961380294653894911907909134144052384487485974999302199437803944043930059689127706191038687234046581288873761991345573631710505810847652049983768374298936220751735448543291887754846954803090400261815357988013375357501278602898506498609795296029814290620955167916976024856098882083942824908221485664934596847397533784145134643484141113666643567495122642397840047567741276391939716972798485664633747191414150856858283568332683549831677911858414266754076270375026165673511395633323862835500412740297737046165887734008869374070713075574124538444324495986295389898684044600231238930779654363350344854826276282756708460055873724354544215496989979832062791848925178382919993025920544669598214547282109558281309828515824129683016192553001985512843042643369865115067566718364191094273317891860406369529918642818229490324396931414980640558379766924223825151502974812963000160228811226122281130688927338096459639949930994018118482413316511502802673752971048448464106328316360213687480246108844868577629770464806709294329668808226576243511120809624343922902322877958775033806626538290795796941825942046238753896293511450555948154887303275112410019531797091462537436502293801339137174037358535340598255910417861999479626092682614670077522617037158296710248790592967146864658095502816285040654898175860475639246175201587468438002455719486846199773186663845142919418157331214786610198718081230347088533471329542385945830925615784308080852053722468597371024475210709562427151334727738558003159831234310374709301593636719464642675173531071722777022620345251066164915311571684468367318332507652670028440607705183220192285712128183641104870456718246928215242151909547051193367209232093385659804539545937812016885655481623048008273655449908724403371803183725335616959484195848612282353540186636736380067216879466869451735896667139068482740825366485339614870594938584592614750224120939722402589482552624585361744334665233172831568294524120415435838286815026458212170802899266731054796419387766760911701592591021012901950804606628465824578299155294911709130452963556440425514197487206679869949791385637336782637474125363990037958433932728007149950375027931082393539231692626909928152561827623616078985588629082015957981764131994840633413263764516610699930070637034447221566374439068431965971122889290134416078971705182725705786536867018681881177704486136611843773966419509884874213764484334247820995324470019818738322760621212827871620419985584972814010899398759209848014480815870907258653082306996043630724519198472047293166181579795592226643579106251419796263546686923883783805124335018551017909496707184222603838866874860494581113961018662963552509836921887945865880727797945298572479188336686872914351727024552642781424874177940613278798073717406812014147358206259161796470121423088325319947455291976279638660836338706720571453970544630529019675804693219375606639926404016447858132287429586406973329857445443105603088203531899389949513551290597506834438701046980932833342711696805843291574661662633666161812907053998627169168375211255967690968616543238548383345328841334924138492860768966813550207559887227836239954423073618175036881894505819178944974329445161507224241436100558468420086376205835559267205718233661423954360128916607129458249648830280148977050152499415509282279164033469558261746203395865376285597694424821918135853691756760390171611233028891937572314398078024093005807048515510893461072761299749112183975575825976246396331743828494902652152381606339747888877533925190572086085522221687641184422986193029991070091045418336635505833608789346979955059024882503257073679600316877395337060442552262096198423317170882526950487054489739485999231954556596519790074081398358312893642691979534488384536135703579476689887622221972881255975846663642234743533481182127199957860867413553663134116893576437252616910421646857174219108143277275123920672939427430642001595344546658379189556599508701710718917421063063438665233209744149813264172156442629313820506893410303412560146490194001886156166005715609770048195254204490749828129812536554299820161334152529582813180488785687953293801939008971050649761818132529819652236046761164119063681628017489908252019848356762242478300562366804620292328275096379892391579815512682071898005524367727302741409588005762915910294240352665727961719981270221334094172826277985894472096669117388424306461249368303393565968050277278539881206038624342855777297311323827637834649461187847979967579232880848960590890703437158632713223818712372318626887168598903415896116268484521718328386530461149763716094417654569707779969824624172606254400018386744072903324502722529147114916346391967879120393828295159000239384937086340939056477134752586620169248572884211241970273986742783257268649820931736470616699690892596882280904711879571077780144427914950354832706700183008413611760972663078059067946584870188503739725804963488214274446914995963664977170348789963814087561773229464838697934906754993739534665696715768146072086649962283217582608973935304872049328257434569680161574190455686010042595674751500707152999295842385802941247403389998004794587952417829384773144927859761843733365637328389282685517618544963964965650743356763962913039219520467526025317945613673436585581947200885740681418933238658394137579547143574319834927096814501872587790794735765866582686565245133231258984734013292128357715304569590671381412276918653350721525286012565129660118070508862964832288130195994214260310877017418476478847256894130942578324108451898179198358616243986930304256421199295775931297474499775471464588412262897139789380809851132392685019705890061089480819941106916686799874140922674682180518345376111018544983310149871652022297866276249143960716079079115377304276297616280431282381185075910180628460846045862208899379959527627531720554313351776529902265188777104249909559042525893269168945931252692226701340197611516678580087491577818820197101293702914527765645032861095377878964081740817961900653259638145103723341096566524078491721954591098183379074832982798376031510179805720374544026306227620445738373909879072568578011773687633246583279828672875127418958242259984888185559666967802323052852621847374532948137602732908294626864132732839604433845241818357014101229623798684400924744847138658609015652335860631778136135659018756878466755653918056506836230795184491082688270923235159020684651419135824967926672736408334055389370220998812843694954721401521266231311067948307732698572380405090346566876800598906961423055768068513557113358065500939574746741316819866153131129450442098247666335119127926492417419617983231816754726442876783378303130617172700102448369869832781449924491802038960511411668777062750960298951907216352129029741409480774309525398703966447615448903272188262286476372514680359247565138618978146318851824564741656230344747358571659392731142825793059952194214100623999881916241724008366872663539497522780089632683591577479662160914410069254759017564724007778197302776354057750474453504793366056852292282831530420967190680177151309677767202826666470346447509989144890146947952950449836715052179607764733281373078154496570159030817975073168061626346197867950294693791830334839268638933269381079500770113016172324147046451515473942565307439797737298965744118692586626848307715421481047019201624960301829329188020488385058667815106674049325671195718955330447477453052166070239827969553492835273110827306419245941775558377095218003030960856371800888433438759110791632363527561175713571543886684746382933919210253466436758859432210416424542692170172459233305070184688061033175882315504826008751904482998716004493689679279620082738079852379077167295983208304991129846787225467746824314193954492983312506684990933816919953227244782553399383612276887733787483897879922857061117591629966075778310968430878023683072981636324347252338395894684143788257721085541901336439790013944682934057979920117501353424539086238833548736954652770749199024106812092761802743174755936787647378199796816614523004269086338408048071552709418620212197609796762131960914151658110140944378173541598934624309235087852960895509060841600877252465250454412559442102870633705349686020241356985020224759214162163721282864630191706420846337950701571456165744438833120230877885014577373320955540159635496235123988213669063774348783390612890304303320097001656525934823929395316266148274516693838411535966846999633923059356951453981286571270874186056088956999616352643250720399616582367996924883579120909962854222756397854725489656965281137949047465896926880705659484954973281243901479375991757245858477215170535168341095642798579865558505705366298087403495529566634893625568895618602348560704625203813383403834699390493470971083817598177618666392677718524282168947776245425731459347347476463417757264975230475579161685169296607357592478641846413285500189762673526293712088043309513816859291194735094707791093050319108824726082999441368536244571948950685316314325646873219962458985134561316798134413542534372176758182009136982050496837332161456350491754792281771186293110695956790361464879216432640565913161020651411057710559612278621109278301651344517126541164095844943065461283110934805561329647109693730343269131749356345674966069280628003007718020499077491061076077226769658281028689779493687343189136845934098753580898765769649902689450760869969137747373210350288166480029898272536817564010983077527173112424345075175835562970926814871459527026093279719327638599660226486493229997432819581603744091708358138150372158470344893161736653172314618277471019402029550446718223022972709043209778319219530772148709853729131071155334525567492255364580655055370979735451529276653482195547715927641712149207013649808703219345214872224027976704813572342558333939008374253169596104026131567648470812061997572309742351414489796005173994071147658156786588115597991647072964194340477329153759340233775376673292106766981724621531876908454168270008109690292655546882724885536827016442743903908898377223243874883778978814864155274570413832505833954429692613847541184476589619299752038788118337380295761498770352035205363338249643055028418275516606611711383506171081132854388703837749485393346940450338602930499110279156747288310578133398697074066022499064886685417196367627184378753484652814648794383676712213863887599675827175006030403671263553198837251626036097270520080449214133578964734537376813504414697139065714125036619411117854312293773338963289886192688868973855512387517853900037660185965767863256820497764597373316476862025224926734009761492479576722668946219509462915956086918435970623912531613460039137983538875430243982953694739628720736936749297173770636497381509169281439021317915528542682103823007079537553577460678570499794483065798759202488505568882694794547754286400905418110586521357827515963070690615584926508616999219707410170227692793481732165756957412866534731031808098542763298688514560776742689103111181257147013053919354424010117005725441637700755534605553412784088508324984018205797340683962773551209715471081729925479126857404359431366644411418532771358155479588873273544815911465986853002807457775177905919907071106984343355662199590333310212262717827940222738764877526161664662321818050328185963173255986169778377850467916380011973839899158734134718702538619393403757794945126400062650514491438350971087064462684861009960754758155485894114529589165107348053673230628944169103494669126295830933437346207293220274488179638236519929654395942234253848868266870152072455511222339841220389087245925212260100318843184312593910521017766194345131559438723382054760266013099760719497788579245107280154858624367180899080481274303168608692087749936221537449181248236694929738980776309804496810301839349984235853659135580872959596254049252261582475819779372799977560345278563642740242753216877876990775671121303304332217913656429442409831525051215600581142894377806468907445158979015513436958498299469975359491680082686299925919889977448618973303156155597217353810235621530228801668481301091087344211269677924814386437609149216546841669426231833778978942720408361774333693281953434592071047914988336828261822890210169098588576824103894109199898005507477777053786692125969945188586791561736738695258206789726070972212730574071952827042380066058089906925203063209002892816542206555434678467662404345372234042656104360562858502825500934606135458620919614022488742617012456184540909034209574744696535100742368414797678382018906478547893361344021072229671155853363600069322852980846921885689628691879051302140516367944678443457479964403480311109215366250383819652190667461135712147927850586764419142459975935286228994756262291167962301599932389840367823062278918394809863772095897773915059820302958796338167328296901561336929327252165063644899267563228338564590680388837749059256624219062197054026521126434929609237768016806008602949932874896892327706303677416606154790156578948561053272194906410185255091692005005649726481798668067537553648016303399884662682462728787105996260563630395686869767682434755880643625362370549514785391897553824741396920526440420220450919277664709732991076866514211633700864459327001705510113784086776709975306744005771379654993172152838769476733319787314966291339701502303546561662388571291587490346946287285505700033243868301015308536975244047876171804102716387609271515601555534381189876211606806502260463028729363316329391016144640871105330896358497237609971087089339933762562607328483056234337309260052552648357289799106048173102464781317877332507787624577574055125937354918417524961195970948629497703464338672673838124508487240465084801446418319325456750241008150919111790899447030015487538358481082603329356527578445801645370777814411145219352729916361276721359046715651848254060315182228443469472550665591678383701332534024575237937846075088113880061571923508671350264250428432729564554398728335590203077620321362078046475620742946536919767251708222491553410181523538720537212044951689374392335567552540827507740079190486995080552044292034958061885507995939983878063913697057798142215811098160579421864596224721921431170913529346406112651494146424653436845002742833861138075278949527254914424733158271669663934732837934352397703100067925606852216026304435094661640606162425858735203733645474187064775629995972977924271266791830539372499417391977102587410542643964445658630734640539027858550764311326596234249960133165555093757387580377829915506588395702339733807371108493307692532855373091910494469816570512958736432722687970437796634597712904448138297529464553808631027497510751447771057079335336603301944625037692671002521105833049484831659535816003326758717827369414366854993667722687127498672768135107306030928222086735570107646287441698790146305567980515582843250013358329672380444747986207095686287204782911839838677178498381668058900246777035530904433823468201296830978119448452948708945423091610552113943556822677848381541882796524596886581107260805736009318520560846998584965363662463989022353721067348564400918575331512899987338811701024769015568121680444291776690047353040177827768504562332644795104450479711102480699024636826986603533134451406078905933175633910861940495353170433237061239037130745200642441187532150048383478742850987364097384717847921039177963500619134264281339493564661038682267916116983425575266825785460268901408695016193544095819735378690419331486112178276574160624830520130573979232017753179339974406318858001441064766018168346079923702693825282258281029112501297279388588367213932852742068628454697358773705308675802832009587268581979297483198882256342059660012165449734368471355807621583629805353292671194856431251073679779386411313164002172690094219336918146570999868696250357239073909108982330416487822677541984431135787543999781986003929700573234538490074264172654409932527487293732254637142390257725274680336924362826353527931568411510481387424294536148063885756245828971252396359857941972895324875926189301030911711918085888047673203702484537547589935349363697793150669733857113735907217394092948856636489279617795366972323660787183944304373989323717703027172644984761970368586797858311088833636346781921825734114237445823979104890821308405647764933623147235050886574370125180451839134036289162154748416281882282441315027979676346569336613581502119463992163404753171044616234130383583993440045454224673491133865228853711967758416585611312873075852100385130408609246035259563792005488146403093607725611363678036647619198732363695832605510773654736059678971862414375940225798698465054945802042489911260328017015566809082464144659816761428615052556502670950710782820109414532674439221462949103282699056515152128938976279675460771404031872794633364104280163947661470713225904840773921133811805869880933728631843876438636061266930451503891361122104632874601835275124562535762719106707449286635244032395864233322449252717618449187966573002089353475418284110068187390546512617240250099190923869908406064808461521607008324790463055767454700709138790469368886957174364312359843959309965494060698247967230092744437821877725816967412218628834117531040176410258211280527179260408771638052511655031187215280521936892185649993506846532255712006530439999871870314319340525977543865854672161889370647599210456578581774771971171010288324508325898990715922619912591320648283654445918001845214402019366148006789108392442428480421521517970835902086019125715708202025480447277143751579443450113072741559832325818358729413359205010610331085774374119693128628936523656611355426192694506956533108444841758872609958631620599108718719664313863430607114653330092203112149335908696200879771379035876348724981833861976902557540171115820301997379527125429712746550339143636863628585809146318287460456144591519012479315239594725517543747799712637185061553809051990926922891315441922064248817200117092597942038996685082823714814250743208647923621174213905742855856027019596417284914610990271091874538988609266110229057649837536019172342102556561770593934501503008638861265617674552562960473634611322165536622596397482126443394231021981889527678356493559837042928442869408164429786325258117738883251250928196708932146234674259970194844234681359008774858557641952464588510336615380814482218886288974600839247070090897022285994945294044210827265189781498429918390992637702604650846406442477175818884142309806754062761893339897373224817207023383670285287196036960233552323421361480467448396947163548573130113747947981743933843466929022411890462966104078072645707195783783614135246356689301309891995670727674916121221628512490953585149699469924008033658567649880348616596501075861068606423538966594898047569207101717405795607827438548528754151770001882234945129297886666172263151562070771597179661585628080119874649701260277620014053742689018698202191899788304276558438603307681292653954784106002846017728443152076776115710994525875196986519896263829373035408113756954667760464418179973324804693493643795082717165297602976108511055628091691598750020446465107334069276403096547738988486534329310188866448496642190457710997897391149343611808710164522740969957885513464637416254890417020462212912435820138503380030085456228568543090482709229673111984262382631363168407023989599340508029403806188226612298631977412992379714962165211182507620023059080366083884982034912151850228190263340891701228679759267689989927566478581623101500272943452485035467490860140369138415882609264243917290962781572752981319651973098222290848175670521518385805641844560505182160660310266889400142300757957384084547962637273109172574270675720699649825994084423817054201193996406296788127248689734452964076162392797216528734873594178569715588052272615211732090507009610505710844843738982421015540567012243398171011918504518211488405102572079483387783958867281953361482808968716063710487101102464966888578346379930777594405889286430963169130421156882274842490467084554408362758419444902115882194783603144874162591498471452583251283667014133846905296543157712843448692935071327956027536087719775139056875808685609508805604888165530451747647701076215166758483654015660416663026790961830085046552798224883652973346147197337040079854539706001846122437220606744842560846179621250963035835758690794730037187543074534166160354170192107033389867342660780805242095670712667701718104078441402620349408037408227604287027228437235459131856120949481578812089142369670962422823231280809892294151686592039282441787356497002894502190240221680219843942875112256138935649494509667902188112081269022380138707011904282295233681773929101428732100618204107780455210200277794296246879705809121823743245367253980634013749658017691888263598884959004608928251626467193449673559825987503144240735233235585161351223531446693707353691455705336593673125213942133459274258814854791429327176855735219287624078210083786879469668185047652713872586118896370325657846521311342412108175389959627070390991266897440304849387363034291846242056566189355466858351425931449613333848668213276830147652460108047117246053834107502761195721989461372753141026199225929611887132812090074344104930673233335753265524383656308597883434579781685752167608607147016679522119009749214326733531570421615333697171484486324529005477135052533484378299868496461500132285957948976182401658148987507901857201365168821220550301065861763843085552336798276036068697108142757639953172662202602549996077719836053461923933233134860144234750984167822575276295341417980903835341667683551455817763364012798676881064968904004079208207261109270042208352152172767237271174952237616110466446587931571137522192433578646963982714521498725933587359092889342803264864289827701514310318264323258009227079532692387674484915965603505864457437228922130848216989638625920408808178144636747392411687803028531253140301254779595257390981126956688637724776844885754081775436020741454921311544566948662961734993529678476674738134161797882573089851624075790380190128122087368592343525311651676157712791147538330929669119133668054012499599656104142022643972571120126996438189317570597556336823431744895718161070607084064754637297844001262694481692390878052807199712520416760312399009672530919065662824582797177567583519030804026823825063904388276971970803165692682385374067556567075193141618170362356502432799788219606173752018652394674411101909561294395276680649613783491081745102298893904984206516920514881184922048571704647346518776419010015971669836796955086000392584961960796760228324614920036570730719908903470308875897961436852033320775843299924509282985948677811758740262481564090961260029566194706696109478806742039330464118427417038319101583710287393663404718241052016870941781522474155917712596122149642717434919575027384820335109764796879361864106117183732444600608383340461193545853724110156433865587980842233219441261238148611761634947343703864883065370022136445071097963504168898746532290704494142480403480102715703015453035010769244788859972434057927595693802724255752047454226421981585422977766466511003036116219825376658899163626072086608636213709588063989297232691936777738028429273489350611342207874310017529770149380868717094966459875515711506405803226469574550179375796510255384208957609817606180464766801025438137219419297842418852463140909494605881259749084680376854976432640571910196026803295445177135994905754771744460871634870574878517753425062793019000584048830624176237330277393217337255547854628749472885887757993140289641818268329942529246749122315693988194022415833521728313065103181107629940164971383588583056920604526524953905147761346782643873426427927962304048765047383755920253525631079527744838761693774258654794209100762616064449608489985698850983670400906907009713202480504666520343525667051176805508315849940749143529075489846379670551774729580400988008980619684347867545300717622121199716279483319736076357422124734845498399256555068323287076812552932169846374437867178616223566259534969171166402566084254296556630948572878305411445435886314879182293954775276341628298935771711442700477524174869949399300544088541687356801471144147906240010794766934591090714295471945918235319169661478390834350570582279346397646673090565454944689402814685936727170233133062409507103979885369841231720059832282959541532094614666096720271177776404833063372743941060096192740904359606358903549129178443552049054335754458929508576184936727855449185622954737036425203384895885750251650431506687786999960223437929901290099455545434810257296768224566050684191059592662121002634890700509040560878403043975110140501029338302776451350959248690037544668561865385168269147633586666444175451934143992967830686211756876936062202325802537444903676694847948407688181135821321895689139542475833560750299971055782925869553967147269030989248191606816673614451732029871340181790734942868323602541999445477619120681201914239909055768121492330546866772092766521448233130470657531596794951791120441253533357092041540336163750109926712376941242628826842432833560642623332819647075873208292044948556515845889092454945019261948601207182941436719328345890670287004949357713917365784101051701319447423315395505553111874615147331600535486233751111126320486488242913991301689110324261383769264937415319765348567104926953403632510147895260826246764497910069295519453828766868849562657838263103684930084840146638476159743248184363626293331844871690983624259046485704673210774640286342527176957855963436218510087713222590022075878406067038920993530061682297233254325702087098759389495357187271095753424838207708489555966063422610292865314201255982221546711642580805188434511284773444693773421245611922999183631677452535372290737002017740477363408259139769110810498752952312481147346662610996286995700655360047121539654735992555624005678910529807054100961743117642776605126808413669269041157578543196169736413833143897033902352655273778270413045919817466301652284527526000470728500280230771825673334644320867185368787190825693293501071675410861855176093759992163808559926566882472584969662256975252909604312739321683261315893734710738559402053016877420012701277221195208189005620478891888819456798769452811042380240062473367891181018324809160979950321440226874516324273663395058820026091080718752273908846352266806372658944054875593926321898505597759367153101790186144269487742027366543725349305623333155857979446620017573493305182544862428304845118297564702138613734897977618548540109125669009884048353416853153444784313838782909884780110914846801858760244054279902350759935903361145537892906149699003122182789497486726529831486320200581008700415759323930651730850650882697846059701641732767311715241788276746580903631324120451180623341686041128040800208145726792453536799313678338114703445920766977577309784600857706135293517108994249836891344516700858933358445738587948433296080685592667817443587392230341076591856992532740886402054324246433507561254592938212110356258678095473939367758199053911915738155598276656968735568124919520317273451995872878912722765613006244617195015555683823211752961443059879568688945465956452727123609117787202931823347371038552863626978929860742769470190943499112823636429904612060187749403792693146179110693070245654518185137820766280358212006121945383058626024206012995572995794599046218605206938203595194267687913680821023782588214335955387427697820143485361264249791759728115380205155642550482283356362757287356467226335795604235772017125273273203019713809683481436804999658780333905856552008038788331680752247629958978928764873887321967062367576035686619881610887251982035590318337718893630708128763362451589604209460723832355365305150338372884149346632516066342344823039171201159133771932484561079100948594901245593164911652678380163572654541488330125466423402632281527293405520706781678219445084725652261826478830208477474181392725826784071615801759316253519833796551837238372097252720170152231019720547518691062838809385385876984486968588075356972037634326775130321679459411828425831423944375883811705134026786245548480283513573896974266454125558681305586906320769624557975813536902415332801328434688200392876838225214619543268617726545100069805492802857147523155125709880164681720252677782373155849898912598404450549867546193014594274123898003717750826759789526878172456880581017806428496214656767734428676786951157212875635890148968752370057857424651433935629089410787776807689844461409663979752006836847046365370123796958012132456647155656442816335645638245461849428630394147795255416401612911992585850235131719869815782735996543047276830743865869585534621177615418374945280276420426993957124248930013088800788905106539757282841601166255322173990208691152891928539001254355299833516307390222676403265917071594869565187103135556411371577435660986715108178728022908769609580930569663511506097027867293303850347820415278380618459807936750306453340329316007609702238497490268029551823896233341703956465172764032783448714701072457106180685281702519979060197675033428510950109164352725842277733858379021950055585601726240235304599619878934804877195256803290671634984536173350645035180290772734357252536538448535961544284577681122900873194108385102698078160954152519883628489015915941384823550560860179645048816642384703464709373231887030800526162018116571547355544290818010280803248570439409872155645990670141299610994374265912608648379239719929800639099930392654144964232180642526451830544270228136558933932728091342460571190001158605607205999233287858706295144268125837626770826942925615527579302286955724290584226151836551708404950334720845093553600602136342269762423470414076232715367410130520617568373052519910145707510024518837210224809337120629077717639082628761254587628066758084257141183454905014073530493440678081877158472312194655972931737038439398467826478936678071126951615495930110712599902696043653485876383500439090041129975809337451772537305257689455065434854894351994511463444902159191420551067052491305434218779522947784692860739089187677054426460178826960902710096702164404447121077595811269949045730099889415495433119950766170661410945348538553908631599021328962682132440539523915736578937701515114536094612943745227706549011988222842479391907920732044363010793678399384626474455647064893159923769804920442892740779279379870501257245825238523315681159008708412304766745217348880354596705727241526346978508057470956124225103244417935256301845620696191517411362338807903287090431079373814122717590822821778323469434724300230192706814765876611452733651283039094290374796278741954491133956331939370952199513233589472267795021758697727947567332264498267626954177631505292361075399695558834225884726601602644732275101149582207821223069780075668618445629954602425673014484214567767492668234347321377124815209751663015151766339689291850218827151048347716584690951493495719480151062638531677307510777421325381568197476771752433867934094225947302633902257886201913267828690871678572941187398528274285831479202310491883962387774359550666002836487183665466069751690872231860941131498029645375123461808302291934813726587490215936639802181224410280859807034125322451742840822131272286732361448428780930272608595186628513818255238144994101939958651694225404173231427341283047493721699035235506555338990774375373736444798990457821837644845457873290445726265405485831224071219818512304611020786502112772776344834122902886363539746991318929408092506197263125710716577228401132632843595826710228512721397833025497961809774412968105973938968260039392826589327453900215444716594809575802148067711776084013880571035612269378765853138534007876733389011448293675610957806692142737108676295028662971055537603434539073277802948287814184982526358153061377749993505039632199187600782522519700477577531795956153494213181470064730378229935750187436115733326756427684164422356810263878316145839759317145666682324091213785533345839615560255829058557705324711057510185622935128552671765260904987342002306567394950217573900572583885376995122962623501271427538913466381906999861891495486280846527394478336139516191447004307919715681127994483814120282682780906299189412848244015659130699302364707647440308479932680345266909349523241619688847779744511365003157668673881765291630695822393446478356233946590362937638847314501870825509205295436822614085003393213516706702893422964729255820399276966217317301077122063496879980478293613006774048045873438507276506434106104588506460917569404719905427211436886099175459093499845157902734952470088986972201858499431119512765170528801325940962265765506673633060241635095003271221105681549080754054030047332962850587147454625504917754021356895560692191660031747026772780369737078597950958667128352417423758884762646815709240450309279727499610668140301544683190621234848283832491281268886217125810055654176573526521899347534800085019655409108367324269740330172636825232571015453624836221530157107740307822847066646905773027225739875828255190544772077185661480503749241129451549484877315986520842070640860534498715902306053365806358105169766943169138391159543425981046650389772568145738543194938483650940422651409340635834248530696918590265792406694097540850067931913995779078921686509955287450389821692567083277553370307753931865484330218481087253468052675281171157875395600068813712192339360789560167416738284293440636754737957769817552402213080274761270586393110651335501776137770198622283586433568163344212065905515883204799824207649932566449607023391370216827688539316316603649422465222552979252301773471480897209207985254922451070792709853992331259060076568374378989685652755857271367057620834554923825346606152744339223454594513973774562537863972516853974472059936630215359904968098071646244774227583693036948325628709898220877825359414935157053001693924826650363550494725479948625542540628914363727665751511851761625897493687300637915324529805685665099540816717073888214421437153627129136713791970684001595006960617307539236841742837855310948063156884036528861419126386776185645103961640339072073173756054726405889742112782149110285606314709557503667321253279237112295852525692409032912669137036786703111589637064888044198369070238376929696116631810457443832479506534673062285466096245316663552330485787574776912098371041748193313831345484960183753520466662682709550256630311912300357449981742637703594911970577788788707162952249707090984379891213010873096529862260332176165105986210718436256314474899675693931542992634160535752099783780938051816518863027562353131036850058556133313074080127048811044345088355970263821537809496937240785115510742857853505688764767275210754583238003093085630745511898780115314123105855547810577148391622299804960863649065670524378020117157023151700550049961321646060218318890481701229679724913642391947351712120324710588018680871431975829193074841671968708690839827094534142571622646335574566368394661937197801077718031697683313012219015844144001355671878044108263686416239035153090907979894319688284043775266446970008712346262942851389876639794577036550443739551347201293963736244450525152989111284341708095948629348984590543104811746836355260716586356577734446310542662864203752648298267150042616417057333234884375855800109269288283701226260105145821564857981555762644902037672539726934545855694964871386786726130329433556301720836093658652916650965113911100487369171495122937532134524863638267814874987483205765681962606126921669644199476126374624860848108756271999994312337457459625781789940588773696380365031371646905822390188766698065579942557997194379299232462557005462377068662487013489579657942902139627516549479914822953732716713113407529994417849893552039803860610766957605288004656889442644711962862216593394479860044485174485232960796961262652906005164449752032397355009650976749161681252296718651894773956756968586815499374118760454284381901331505002121478404154613816645580126353349995458240955826410830238457893334300044610883657726329136246394234338778401889079125674959325357393187640342317600277968933355712332555653430640628899973639382242431218748298487154036491034296523794167510351944486008371737021519388772743828197059622021158183633062443377768064296114942224451522629168657218706328109005921169235284234481850884319809811876206256974356272091182482830583947880698243771668758433833317824003839020875290352652996503998217622944718768350299878789699612129018745644378127564304307337701711256593821125964826131936307617874666179122934598865159136225717715734145032269036877439491104270051883252840023969755187233749351346572470224915924177113337359317359985116375418550182963628801144445834838145704086026163474100495363517195135973227360703261825683735779972841785447749461379001082340794181971900578139380368976943336374753845505945386960388350912223677495849485547596829173078740489188047681552266831176450930845605651065883734927947364822700927726190332602037238064159717266909543312917837355137509882649062824391524011991599437451378201937347827599046929171780364657610807118991049893685607002890302491672373772829269507570887354362769118730709258498876053328764042346435842502724082458861847604268752991755551861211424690782070612591265542850660469427756338667713977976301140810217990065308017516214895277719232403817229978865475134418657280798742773426969280377602962884362659985380137696290082199824938187329340600898802901187805475714455475461858491049037837178820629384384758197135542887774493992259356103135496714276497961864801536248317025735032127862928569447396501791446458265528614433158766701339210480345694117819060411039929377409904079875320245672136484561039086150531402748493474410550712007224681840832082329118859457821695241734675238345394394526586255085618735540112189366051292004975620416695952325378100212019628510648856220542982469974205285061451498847377444083199062555956025585303913113932239653968616286904050149345728121091353184724355292029646674570025222994973368190719429736507777416861745035258125063895200247289298761854260906968333973254828852240427085701523084974934564479918748967708929776293456643806748308264782826157044053843585404021497448556736654932667030263555213443268752848182620383184441531697318601766008417619261480804285185323075656134280509867861803138288674387692724595517730493601049033217488120469513221819690042288211770353333024129120067417510156819679179803633415287474971673860528374525293420476592736597366512095469940656916388249899132179897521625864030432912993447105169752905885356281864459156502925226298648556588403356702543692652971610985639047931089904451673293316383606602740532435089582690211439139581024727532607869300572374760269424194670707974213492736002542475088804535236256253338251001402266614715905918003951305619766214038773999472095207735182483520796246521079606874646278272371055871879364303159146926743470381557114813568381656025147784582811105452909333072035092114806440069995367472170567738188590267672037047637404324004134294404224203189846901368239317493689710630048562779495030461162548821715244723928564712604789179586811105824024379783234366354462334715121875534741528801422382812742770699296120740804188075333061900469934119216561145463644615087806746291037624656159307560194975961805419913767485698669165951148351622947067793408476008467053999118981838505395484570810270396127701181565833966512185336670598823117566245975383455175123057254414246844840658318765880363598792720045583513049373482301967834765307274005113285252469505782177169761405885239736708327656994796712003585174847835487001401146509333609748667932806473935987711355977432936250761461623124473722819423268338905981789798178611516515660915379388488887919573481548553337414892513560080836503758743993563155236709932854279284125287216533397856007340502086382163365787569038187186753373890113829380286754346527355041019500060540428323656596917827143728726457465477413967957371331079478983347031483620076966592041046378533731316958920874701346466530896390321298148453488060067426734070904802157073422137387536988838793944127574806280289582280135000632605525136539977191408247981548305723197094596723372937203935498319506860113941433902325508217547242374013753707662178757209792520019704217148372882699212583593137743514229138901931576903714259747716176403564630340012329714771609106454506809427711861073588445266311881246138201843631739379845403432681240557169998452048782600819679507956727286904460255003252074592592844423403784635202376996532166025182142675312501991173032832322819085435441318211373148997015909979086830749745804555188454583476352976582681134162224834576359477197010384007892594105209515478351918616549420022591256856591871841591638079284637879408021225972768673178520812598358676394329400708304206809261176048578064120248941947678030711233012837359897410072424882582929082230143095490871718351517835380734513611087728520852766252466025504078390543961094731829312679976221171006942887573704703363381679758270204915354191360368790457546718649440074748229500906249053076507140923567664689574025264973200414080490178026557285929630907240269657228815374504824896193409963797454702131421340148338082438884485325869808321381181352230185582168916845151583439065391578319021145647927826141265679907604182661749375501618332320126998537742055092511285053271508995868874734122320531938035554705683186288506774902105386349431080282167502156757675749900699803771213833798199174703645587240689802787047092021925025112910408939278272411046876013567993998924267872772430621827598143713644382917211927189515281734410417853162358595637575383896016135174962689557575679798901227082366612042513577735626919035010012351442918570256412494001249162111100766505428587890341856403129201881148171164111793126004648898264394205570490248283039544002620924631445989754606968526192838173554986889998910604372326695612055249038208843257016957775871589264727351984310502770069145118680760289786579070513474439179222730115944293318861190252584681443236952681304080148569613122429922724328077302221097632326761946828763575692784509894360162371699582835122638668366700351615557564381309845153125255491039258937750836071548829969574750962445556292844775043189668057354072630652463201147238432534001580283653086676102575723177183022181122822959612732158244980711318235888383900812654923180816370915809567944753887129522831270687957653700636768296954349222699227517637682441022486020589890805246604051934660118739594887062163435211945471096468940853168973792974633052497068870989374582285763898225946280853165377723655222137645039367351290444752139735581164754447163244137184793899017806904156641794324447810171131679347254340734199805725663945560127995913316283494307881549201281098404163815661446162315002451823822817348335395986542631203690221053930639303569791679264957567369620355943568320855847424427323971108019993568748275448445650324143671311731644469328348105203098966484977066018106791858442256378320785653422910360240098964917578437474353085779555266538309981188539277444617729894075277598377552635461280158943138844046728616867585186573184584661879207805333058037982113395389060667021340924992379914775895772200310636429582220212004828286522040644966947832826545880095698793120856073821140888969198850971941885023264762638016336031206413297528528919604982305170985034700565748406074276118382399172843783859429246158473713021153756996522152857877005133533910459408425160685298032853344843629290790983464366103927604746364829694485782119701416286698365125753789214434044693676906104674773033857051776910231731589440207611348332401876427228635575741802764512287156153707882727878473841121445965019238944444635420269978756758412149331245078302343027381580839852429946846697991551521571750744973135936187484682748148337333240307521686735964412775556995520763709706510653828655020814879920894342876887111756845047236230756402448841090210541103369203563476458451073124157266537414617366197701878114751048528472308968958494623360038142982320986140621872071708517582596367065523729770342908306814434326639399670946858608482662868198505572972906313848492011247322868051570259735152458668430897756434574378394642663148883826660989599661748271401151508631456055726799763784738465505980729448216762022902710880776656648470759257572471808016237370310684818009978101076652142860301529331373605069868118722211355993105347289988639837919372411668440924766701002157528080268981203915351017130870381309352589250636525419382221280785208574869964955860463105396239733704591812797885549312876522721876405071221381909543458321268407973846518725122626879519249205932585079018799644138773935865017284559938834115696562840876275957685786336784861845879912737540593856078647950774431975519995358604138483761552887378447507051306994601878197224739464284967567045410589386106176230271556213402619209175224836723192571141278550004218795809120349810254378006677135638348447702204308284306510637414245959036966822921609828027246454027846549681693477694241681216343491598934813932740762703114774798792753088735803356593911179191922308607036940931930206751553475259574713631809382277675952510983976886611191247287045509137584596765124454840379240287920251828954102945528132197516469449865968486336063417399839554749961015081441974690343885389174376508918056868633648220688018200614471494766516451548189039350609308495514130627503915249548025822386803361365471744238994017154776968260577351534501675459970782151284126122619216331005529189187101304966250741998427444287097292774921185535764124765725366517022883838762768442248332436466311366390178129790386528580840269207398130915769752596544438166366916789565839879962281428703262713259646188155428545313109999092462068236428034343486880577157945879253202019265769970020980424223584647036553006185424792520205542150330676398851798740853091730557221983562067668944117725884844147868690085654907988095725428971769120746004438114484448948096244995061478590706604784920654088247520539091547447920785744036042970464140715417855953245022803716867886621634500031732440395091603784542650069497529686486540154658336156186206616361700271882025975460471280924158298743122811986647222107254682766726973583021666046147364812639983579396719294301031495861918375302040516243101312665618113688560057134735087039037338114933751929367284525991992807528957510551182283391901848845165492300666538862204071986940038169146187218287621837137008825266199738386299285566524011267508050539442092033737466085163395972143985076014783736536629961919925853133477194389134925870920688965816460357129481095101700761112165968528220532967946528221284153087657110472079347782315739151315855461780585796537778017814815280114973303578636371825423897605753025801561712543891309306065587364774851904702101431472912688091773106925568100650208903506185181402833043341049133125137860174679818107145822142842724981686129340974534027914640167189411901094405029874726710683316045128658737112164248318160634524267366368678450097944105695354484828148542217670679206319884568117465477118023034232693308212199937002135949995186587134723975729910071478110636772803218533102181977309623734173180399320284543189299621889972582304738833670239927779787114013971358490306278568651134666456604852104139566845697366293683206178706468237226701398239637948115143449369969674508776184893587145872551569018955116725649862788845843685120007770573155531519569532860370624846212913667925221416158117333751877035685883904462700557684971741934872289531500134871992577817162034934964608172506902083736244970771665202438211693735924432529083603319747831893040533453147607615756265116273685465115149939010878460148130791484216276959137684414104411755243144898715613081861589638923747460759482859500296964885432345728739440852692478370255897381295923441300739354668187845605518811076280264186645578206387729007651856625329313904784035476440567749417500429935811355852517508649520911914278625628791038341625575538061940988499537971641074437685770372232510245695329827806268938170812088353663375479984726566674555181431987848846115561513217745899445732338842554292126213126159291591729825554947748720433522265052873837294302034877356016922002858545136879708804355158858785657840295334617377452316923958275614885137767207467750899224425208154901390230281018441045183159968137874056221893966869472309970177228214592840137907184086893369783910600037712281398602605953397435781803000171268600241315851740940733632492104173865808229680755575150495208838628439264144569670066447644852527576790174035090946727648215347751967184240618849515961184610877507260182064743867405754520426006229024977789395717173394532499433390989457963081602894141919506114257177039867952676975781605654461662512260127929235030231184101580203527026866802835455795481597157767940424659240786541890934842834721343819582049263570729956912199288687755261687042990832617793403982188399074003229075509493558000589544655490885514848574179994814211572881865234301619267985602633732015300421390066727887992507220648068218651852382979553871292546957200820499690447961226384733789170872242347272598296466078898474779027254895640879113433502401563808375005403585916845152966320044299705180062352012696773092853287754156266278408057702034978856956402760651554941196419083628936083546957036213415182932756525631237479313085770279848210616993899051629067000058338302345200955468548125454283477471814934788434594117246014860427374249268428103533663754397147945604115558461162889053719389996678180370143275179680919436252692090285585383833719097018049284329452409732661245911176023392401644842479023165417586092861516592556135526724589336561726848737009376994688859208938190231402045515948515393802970222960634345361711525819668957047160717450984828438651878500838825450095875627210447029437623972952386718020173590829386472552743623223252035910717911447345571248754640192341508437636032995069825541183762814068875145189483762928926142994008262412988003009704035293699373204374224689619564226793544916905100879732537729501014114878130705793851066855255247793007590509127303385114416337572867264144808011533193569972788047528890375701230963023721737363578027839199711188532733261543749175523348064270106570237495097205061354169571416552709899669404598254570745527685358518556514993074081311573498262765166962629050685504710968026614669431919171514973528008810875376658435066531710221496389486740108816426032046556762723947002819258385401140633803646590802331451615726615598252090220870205335138107722177204521817022302227159569726894847927553888877302066851803889722371778379759802515715124980606793575184484251705201468375033965175681097642179613765789532614466884123793041372225047060439433876127764206755481482210357795624372078028536087430817335323350487019525234778953379785837121898744109898845263116517506716579288714167775840850288102337433528160150231460627844357922855656984027719678350251829905293054615273907712365040696985811665897542171292874640054459117074097098488687799067669336209540034278598462453793800726189978769442241132673163306215168453328833609626031673041543526387322146754571580300571900931045481907356529923666281088263643486982344156373427895665118665300747553951389485276225618489930264311450893141465866430888683926867389146289859127802712524960814311680077611626336473225903482892308004413240705555199998047037816062092178802592866885274566352261750598071613715117476744876142477976914507723390611219299893438329104616135341447872728790765038343874941397142513735888718280320154120314510454425113121209196439663637401696669011455800780256469306734428928782848553543994753783021127565966556028454189116107680715040007404286082308884626820118660692124930855928877912374126638974530625473637026032809088544636431262336956366203076164163157969281195444767072442628424286010395025914741043790150236169345333616882820294886591748419956182971077827838836299645581881150752886874379255832585064355633053591286074903234509450194541751039679965069068339238475889315955399838678209091185605772939889183685149114174814906877598925095416284754187628661468208296843277456427449787078089076476511247758696629816730655430932125024548830559479059737708779193239950697637701926752777965842611956109232070761465410932075210996092293829398767326635641411276743688961137460970189377202125419996364725296859580972526771659189798033748370147278783414815389111247242089477164024450721742625489244103271532750068388787344990999144508375085317699926325834730355539897225854840086555911449268869858764965289838847699996143441499027453688982605080758010436331365004079290148324012492759097526616347916541071891347377453183425124620399623835273742042112884102228879041770196305849490310480705034592607856417154362559371310157451342838093968762676816309528282023929314288557764862043775725130791436122969434996275087023825910868210618768202865268009333308301246950330717841581803479320970161420851800536246963330651955594186690506628784744934509887147072591160033311461495004244330849394178852839335091396581513821761765077630920449336760168652619689274297729247486198531462301795236906317955327193786632037305229688350668059785047288675218554405181542525212146033658539224107550884483394493026683866026649577873724464269483826772683440062840244767314252670292414976514234911282747554935723205025740917627049941147405769185837649394173592407332687545909550737805321911911116192963763650418728423556431525088287532451278676223301124008844468375350039928260873658774303332991155482604625091165659172490747422301640499395166068806497011017731928850458119553307176811719639983143078338431226208663005716579719207427095739420364978531573661244905702419800678695970281043716568333498979234456125032597172497542810352859005030485119613451891725150399828381693720569432691900661360670421592901603850833166219234559373389363846678391414068023520570204396205272531272412985295036624326826271638447000361190900610235321924712137043078000745786427429630571980942405292084472678785237363725422389348560903717657892741187109596210521699070597149055956181485986256293389667156157689837089676005563325627557305485839617648315577127760098036997231560369272286476672016356630128742462762988634270188435005128511531570852983442393557486847809971939899935929558387706555087316874614394814378655646080493461878590315979345278274146301433755104594282387377930454382117326174976328452445128968153234964046860745351970705589285271944169663261216713140758592380867548793537429631266217945333182573469977460709847763809522114302517691921366514126956506791218532966379221018041860522677593677553470595091963296831976148941005311362676966316286480203672108187972453268216615691376851550575541692136232711172828167114978756310337902544391914817508469704672737064812590148360998339145876933897472116574519704214726664744163185390498943854182552229692191604083781131027077036002817030442254155904680199856559853052320835437537750289040659136629165170833573523199879820120020527857260139350384517648304960449478703973976828490825226073573465040251109860747870446294564416875532299107231102964403704500273212814156040271021352632773214455046331068605913363590739727287157993766386711026400809783792393577101228981834609636980266227121645649793669033949278558025897206855662356599117235151543989808509732724399003196092449746389296153922464392274524120142439470094715347409831365481096977260703279983183848347948943765533766641317566697897871313680260556283583937588000468778666334116609838454781602534132095907101826618022462694831971688978225799576038295676864115943412900735908907068251653345821777220460342412259270358506898171920067205327855237287771251494105995085439109230669827503712096073013501221111993404157156602961020454488958750285509868373250059764758050487350124116143108443200828110797756717235302752192057836744127959936577473021739002975891485777739235666695955927501254142472437059577089127676716980445874545675505129050548389024899231219568791510595986600232511155287038806550580165742557531341621902885733298540351444156780829237306270675543410745065755498240936447465231428668432001160625432225564890463820022545930123711948760452103319737644597306266120921066405806098165238548659684598084816868831040257246665194805592279352196669196993750262549115980228240775853677348019410527199389617821509976974036543586892398071302557050174647016645661299327943257376137310510099654706845248568086888036758235962671897144278656684203617504333703789243511187693446000906214615637830832005821729981144700322187572949469376016263813523202205870457952982576768009593544185138889797564145416375323580042171794330212829754954526380495943039853515673469216939473684116222832433226212545447661478593966885339917958890214998417761438092297991909294249967401406275252799895533344569135928553194916368239332575720896747475612920210761147921971137124150871432452897485296399896178982136248607889260170326498699207498823643258406495687538482919481618987605337236131258911927711694707695894786071474678644226761003092775062599011953363735530652469687135054068432358467258694227627126714287766880436402510284299406158198347417651251612822543408620989650019350795280207033974710720789505536749135327703566904187105115301530007478719433766673918431365056309073430573453427668498970805020679775297147941452113009089020321784255797327185695803602213908174604328038523237154577560126780875934707065285915698853139257788017928153070494100794357494684803551128286149204266553914773280776233646825136739367554782550697992362056566195148376732468257948386712075264087482505755641026266713913314806818732014825853502214955085185611712404137818638345538631073680917415603772959375381749447765677042512142616777048265445490568989489183061845894567551017659475468229839680988600920593807575681221623359693833160746122641695087228130080019462779767311468632575809562606732463332429013304577729699672742746850121321561173684366684902118991263309018667737071462201389901010954693008601392174881821143834819852009897225988286098143894885967533270458153995217307715709725964424676828769087236816740364781782066374702794325042503477899037830976592892068109432604020671860001396185528928632776878282007866851392921782185203924075259059369244489756517940381211904417344352670134525957700041011178443339212731079365344756328339564563482371700172523658257198366451179915185530212908676106998008706791593542102849103414843538573205649040458896681283015063282860418007995012726865864039284401709265144909521412207770004401350508645813625309907739202376928287702154438342785075653849173262922578933096769629420075218088942143460268510608281269594889324103671924977295777343443178291732465157530067075632641212287315859274091989440234822541714028521625548264813482843456214667379055871470560797580435171746950754530588307646419133331939677768768299309842424883848231916680551066669197999048174710840483023602603434245463138276769579717393286139701174125102146597339885619017076118437597825692560673861021780003527154848459806130601764009629193399764006846707901261578242903316966472591880550414817630960299317803132668626295637571849616548502886172298596874337025310897654836110352027356876692220709369039951294143467798929709521608694342456036643261503216259587014158088131284794939397146914360591642809312211339589789704163167881705067895761250863356065680768356356562912100392032382568434083754376217339617110108767396762868842781656712279136915044245636931177172643962734006766995610675028415461271154391129121282203156505243165489398951083858915012992179144008368861063528470388078170749168921921693650949683236322934451201079272877559893686534947515097441383147315680847819916197027339211863178591751613190471329437236628507930171269057840793384361948224860247807297176208983471090505975597547594557275532758678003287638402218873763862939483073274650568318109281668392780047262105248994372823677069848384455873254767554537645192212649527267832054191074394717374931832109059918880316302849340459978459605397116977899642684141332965460912393755808939742719481692306433544423800843144439224190097740993527996151161840593639108487199172465135182293811031552850819255925613416160959626393740269796203272988266250430117049685825366312102527697602645338863059524034343036429631785764749366047615607443170129315956796149327591814531940823951073577878415062723133953881608966622233710543658117184666330003005283723854805865144450035204500450144506994146145611279406853636214773049341550935074159453698132266183440540200834299707375204288703919382592148008830791166329920081758947117081737174606484070292181231499935744674246270818033945350781082143193701029843605306113843374659678461130297757706300038145233026189215294493479793845292948666758192184627162013391879174229827670661736106860824893246908364983500779082363263059341508105725113367476277043368723025117167460613492635384205029745950122012953543517269811423595198727321817979269243522124450017192325895559216433127104118822052988087194517399688134832478983985069117738847169540299640052895749487936847331970275109123850520591306360924114281961951057419104678836250715213375728643768783189258251140777284497488569611781963409172463299147504005128218649860635370513452438128022545205152099288218884763291712067742538690073427091837681515733492553064589240528006707715942149092866607030988550491201114388717593264172265775269451660106195399158836916608741919783136351314147776207563862539717329247057811823088084400289923872130276957944988244652268221423618833981799008413365101992690835761846375756588352959263358459064724098092757747820640516753594239426236947988836467025015052351027068008199016240291378331967603291142192226077371894581559192877331374327668613347085197101491846319138719269012682970293093663432398235367483280494243371885178826518449162139303680163981049341701342258891199021304008917790754102883476043687110766732940605579044817667027556844206342178360646809288282900014682437473869072330923478889052198777810261901785040727347142301943091689903314350674231476809341716554036086005508241022924232165780015833744433024984845323791805956547093907949333610118871289930679746913940293477331845457426257589377501036301481670509697721512744143069580761225000761314447150309147197445825566138055257475528059463141512675964659162988504086944167702012853726874372599719820575201007836506561979416602253946282039088270943553300985371807851020718185522197261185648713075905958827083587311565829920120315236722410648064101960823261673033486518708734668441863075173358163122698498329881436134907735800681690330775047250814497572641672979984195197859896599950898602952290460410930238799555212758060412849814180415199753914918192982556256414115834812906404281198429184127218476958103338541529338769293814522257964818650470142723574735071409035605287242117334261326875036513087042494980105790748189025217540984295708290244574597648636308206379785114520944416693240869011533447117857802617944489892574897926450372136229138127650590939892442664756575976294798768963247550480231238942873836634881969255772802185598836654520656563102645660347534677050812250262856790265524562555823617842728964220113858516962332512706467774707705182253514878067580240000480630158610417566196063510726044601133845675608376100613744631036876906731256406123908222599596737485741887900664190280816519834601139401279176815182170958880568827806567078829511015397809057531585186100400726279633909365255655412825176876382404419668395677527911707445992096558293077717861062887767053261477748749307379558458162544441254132296379504715280412117621404046982357660147656257993053000022257593014899372132863770173970596831889662676515633503342614976594650173131047443312670922880520707046103708528569583578850946579850475097106891762942580383564804729927499184765592512285728655191082578812251163801983919871653115805527040817408190136809053970302804732359893818406085420220369704330979778620230875974450130678421860856384904731090778801749246152413403230863471900511609653338823995483162483198020749783486842254168390317293073457842419849961256124735975424939875897328024156080566563133149378585560264774083970097314860714085737626910644985373067077571413027656858861131306613067447296115858329622009312796863107225715828661426986322059525043633371533759440620254564517795511464949430536176464376218806282049545741304351119501861850802458532955359209514102232203579624153188479351459078837651008488401013760594758720988929597964959768842128581191853533243416696160894410997007696420811130290620133649671567736833285119659695609493984589999667271779266800148593339370275749295874425149368237803432089761147586095574256127439164155895357912463966484450974737754092240927621988101310052007231186363730249999527008140174439443641178856252848376017442364499971506471177332974299471874494332221365344269894418237799442203119937960952943954435263764109988603943102615308261043513230485476802143382116823632229158057061453008042061027352284229862346206746088823666978272847304169774890764504044765518940934810909523200642513092561867866548973037750504369143858151133335475438182338495698889572082800087109536954407058150638755730665169341936186498231982126196577991482329037509563784455433515133354338538067806208432811157990196926497267093482578769750007586250062413867473645462919640913886095644462622204790504786242925681146288577105791576700376280012328857750683125348829429219117210370361165228012539161070668000645245992337093521799040087402849934315870092274781518432149174198345459835653146615688413066950593342481301747465812788345880669188303843568034084778193705647082666260963197846349134730251341439825692549959824088605554788156457852879270045637256387723303328099313632097639177332807304066032064198420922469046280518652471515643333889659068800447841549348404730355564729440921807863851117460505419192722122503995251789161786841582550808469717394253786619454347470868885044674885042907223562600781379629154083744698646877367752604866234427266192181629686514306945126979850956407598050697109059593254185563494754407509839935815532250542796863786271625468898778647156012544526167576683353231531213671398769330742964930216539074092686518308234676900604013429988828872503008921668289818846871584393779133785047238753318746919468992940383447519134033437876133345260957940361247147323660296032402451204591550717126231546148154851568007412674910105659418462565787314283567053255754980568163272825217935678658403036928028873112788561427840708161843602253024052115386550672849012164823591409219890026861246479043385776216675129166662201123543198602068288609106135894468232845523436379586901837985189464629376030610807971387270931066292295925392908021841566905873262776389800399640865122383331101181096879877968126965806794356216760666882345773600005326118600749448090647092000112649181243013108929915334112402965997506626995187395241941052074446524147051230100194129450838170225442920543282083261584668231386874733534395171852914539010490267214644068924751788343390515554478478346173050691429765595199913551778975487856558597926515840253521731176517618827976603198211493340268195210814711350547050168390478809376375169567070038184236187644739805088716166214436678058248609262311675626842356451009219250191607975562630123022302421773876554534095637134187450181054701946539776974366269390509009059968887855256264205619503915273884914090949918054610612572419238873763228443972085843137656381670726345395043489314833578717766577995076311329011292595724709063291649779239053096303957289843283761928599400419047460322216094850284199513875484128035961612361781809469223583689483879514485229706190316339680966119918733896176442673326392718997966195430041005184362705648418244402243205648067016242790906051032932212566780809894294428318596780499758125026844574396672381356229519473057896448709887794031350461466612224416674825648480528836108233709625631732328960402155812832544563756838545151947443804012617477101312646780965004685259675622983919246625556160982801191466924876287447901499402961252797717314573213806991909411067697729233019966138514090172245012473015913530722650391203322887469783727269603349991877680745052676837760806195500759937330537202756411773795990053360876041626951882066262611433077769553414599442123767031585454285716111619696306856881057587933597866761022763687870083654907170329525833736851993598140914525908135932494626302890072174168432284322910737152696885714315055069064536138029992162921346388695421597056109682981543262070052244553996009663230585366471435401174786896188662035248539134383824147932875137914989908761781828216086915399159480158393336096800986674821469151258171823888231579083814793824002662528174715962548627235897483993550536286676309181800850801136538913771365121513007774110099652666552352187910631189191748359266518877682419883326978317350430754671403272818684764677011937640232021326806531809687985645120751790217429876225191316153733755136352762074323083206597294893615377336648425147449095872634764995672309594538128050142862511371572720837875690681655648695989097468275084218517640402797617208374333038514257834106517914933832824137520461262843173747385503961616676446087624940795772325233200304607262941565630801863138568491369650695872371617594948034583439283225043590191741927897060353233455933663336812831156135542278650775175540067733967611785743739926310219852018521051873581142865326936154344211491543931044414692467800047868048214922384303263997906965608185855665232624362733784314458494735488579541444599429206662480011421147304375159664328390509542311836041908025595151076331929934184085508060661431115978418948936060584326765767766286353705712525004932603117608234618996326899637239507801665435601723717396638109204959620074245377060520464079579277741836160921168846966422235347468778014191590081909306604253082939692211152310548356467662272143433902299512124658022354306649392279866870374238550281520839164430033436101338381080801978462814391248761189137195290546160315624620799371418413306849739954238455647792897730022428749222360376838271473771141147838054638361593790472111907557454591219264789233365481954378135178827961382618606467292928019530926377976427384610923371572638266723740829333160055187528579201099388202305333921257146636396216924821509761264406339441845902692714561032839310900856665305321525097355097967175379605354829231766493741702281847023344656535786697785098883875670791026117012190221501711702940436808851676223814573147543066626350193307447750675787032640387912068831520535988795539044606953028667561027240300551826245935460107058724523359756094029803997880178277412653160861758266081652066444002686092541809516923541770451646410278001757672027880467393670951433572107356183041943685245212927229862700496670467814573027643969980073146626337587815930480722959914456341832170556223218999375742219945905838150595363158810914595032062989173707968396962575279070718797563879424012420188053411265272724325229211246219736053267659217586995107004816878600497924151327072431575334121333428045043855195039321870473012031903923829499350129980315376352876247819646852544280793437998452897672567478218959074447840496964679364542713269229305967799934781630133187430343362647810541195899620413620874822530394296972721722102006861882433695006325597992100559078484360401623982028637252483484188783148627778615543924435584870405078048092482573209619749378295293642692493246335177934399589959964112337824941202500973758741824908243062311624142869609316686687438546954740199512695556769727959146902353413630247580434630490711906220446172383644429206574212679034085295007752116721126944452748304964317473200025397782950975013750390475025776804108419120854189446700271663504491784033403792798489153710212740752131474440464764475371491229743369760249580862542206292838295229920031115726127845316540391095346829702939219917449482176659540382337578712453146918107255482935865026230350862351554674630081179762060413029028750896495790638298551056464178727969484928199526102739870633320487588561400177160963528304098750990674525520080411286505532705941079113683600610066314851402812251269723814565131053909586698319749501828353556731041465752420984572398460062606406157068582439249522855101150143042802206874792500545759880864625416314452670564552803619914193003141651733015699992192734035327572437406148879745427389736812494588380598866103770558082281487563713535347662657811424004072440126847708595091448828044027094919573987966452743757423495209840703299017482774179118183650295114146570956220631971844343909358495645956381829863887991136706529985850572462212752861095497058650023005872960444317638339788892436691997987105490070042255967483293696064920743839073667641250788767585302005746208438935275977060302408201914556196903670924404472822746959863078787474551847733174754998383642891811993596576108208464436957318612407176111860793672644159006983826539172857877761909632642022097645303868871423432481791994226292854985174315456108140890738119552608241272257679846485134185251551151456960957314899039324912423659534341604598457403429485516736086596161428362495932960119936653762876679390852954990109289572491731396813236551139319688121437421953905860633225776939837277649112075468836955580793569268468503314037782556714348059397975088070019652090439580947601577171914144739160032199565879770701008076255292950742201254343486022808104802572885047044029003740385265437781701105134520440818797356707445556700787075881892685864372101844622149190049556645275926495856869908863074377656455894125781182417905188016024557461536035469425052918876171535212827913537957810554010041094035311615844342400267264584308119731544266713425037304980895420153666243496352265922294010664651241885777318222080675932481289508139488288885078787984300176659393818507325109603306907536738672725494937947382297947319274548695049517721691082091944866141320794917843574165537214814363978932608716256221391411375503811360842582739929555252290133925868583540467632002167203639006242038024848051339757567312141463296806212207411475227549007717494175038914519604176463409078645165690639671677128193893215747580691877480882690432686940594179230552647038786757444003485307339068045990016597117231710193397256177444146467962672738362321940796560521726966823343955610306489458102966015827100199353404976175893805191804673761145669457602020383987119822808454198646733115911150948657214193885991594782039814970788306955679851629127640353943757476403042984318621815946110945182655804540704732857074732851829418001312775651414309577375370387143670132334140695275137351168114614475154258570521567380795668811033890491027195787204685750617775674413406677272941670597765813360730555286468246272035511626273784432727659349219084351532786333507606578647051203988641726892702862214276226708321009214472937494157835217508808929407328216384029403691344299098163865587912060697976383698409921943709742622170478336278040876191482792534706723125374071721915729044066675776880211097264284025939927511418575145836031597203758617030332176379992616001558837415071862172972558647862947705327759507338449232073587873395171623047401567029749645023962447891849095775262907788151939334499015954377792611083020738158385656974755625924263310601286275658032823785104363924401093794315426753702482672597031669621951938181280589948733026302749910951119567515112703431335118613099986638601341941666546605043540226976319309733752306648612213126634602147729215501138347484034458212923764912910847296329970950998058859393060875340574635707215351048140842673915715892736521944754487145943046256564776694922154765508628451141427490681117004392038000272181957021858357091287037851374313296528697236178195447786367174499987254054673121819412536620250866602656972862716983676520755147299657940440602171825939380499866624038593609454156680688013028049675285291001531976182721743365931152522022257192489575770704291447579432197528245870150898405475501267111066857333847592198143781009245352764525581611129262942214671319708321092295577832433478562835831877893247238156423147263555233161832437266393460208209496730155494317203665323867037109932808477632107098103682949725137193374245152501641210951240786183042947400779066009687817823588435029447200707514263748095550907031659171620675958001225265023141068208573526896853100446257966838558121421074095588807098520676358450164529626022206042165452961667339926524538009701097871239796041449878507323994426344513113208634484996332261122700017770410665383316708102122533436675573251469613205682402264094809761685606238755892128413223268505536628877364956270108129637763988291048304590806903566208708771117221728226839006911414553505529919779856975988649113812060527104718106337824416127333366375902241737534657202486168246064346960808564662879563989349482356874419625950591670851707158514966921449055270652369903274260618103428474748822198554565343339696927074515693106112733164935718144517405656935409708756892329256035875144895608297081867171179185059666183003938859218349219655001503982687520618902973097729096868263733361506494041683847015472746448525936155344013582556127178529916354560613400721206233042306749151875435694460306999208345054821769238806739447158775497863831642143104594282435856418393057760141776046664050023250079322138024984859993861461014548707719113589746292887935772868221982281560179883586889508327107913879980886549808184434085554817272150239890489736916507126696402039377788647230207949893040689004192596238612865111510410143041004899245750827751689200850578023272283597908435637469155973949807364787761473105974985646817304652245187509818638000442425813649141124201836729623719667435435214419746501947506064503748237224265549165822216734768080352436431437118935081225359394032378025067672026995200990933745749498530701964442082307420524218865213918052470251112877693977154068743795717764266926847353870795415709093392004024183335317612863473034478011618144503725987228237351755055955031102767936998375981784533917774961643142326313267859392029131370314322464535852095789630524307996992980768719092808867871053379010745380886410255208560398007699489229664477974355902172027168185021598682908496818903141758243706868617063159430384104423638558815158269464371127227989648189802825998436542409751714479732628087243235587672115865082107211221515647991829682297994801008093922975052292845836003156380867449346325987571741766862512691921974273017152455792592090945784924084993082089387696414523678072248458165324622781101407669247995455095147275441934836290352605486091050584102471202925144805593300780077616561490267151183233384267420153174330515365211142649736741396223486189516798793403239088192019449439921473407370402314295758741879102252051631524073083390762329326910771191347742050453355620107735622112966956805087386714900943455272202822493495746253105558309604785130045453451591118443969217900814108321737997194269884050455600808217041334112866181412505492888970855429013554052805058824903405521608095581509271495218271563338832459953489351862879943115906166810711828575814216241260067849321140087427061258168962737143624786842195496008548233406598599579483101477321068065545982196640620025213010299804276559411070731074956279406418572874703385240808895871321367713720314952030736557197165280428145394687700434759224597834091199635563921647469512109765296469567461703849208554682097947173609371096622049154076398779097625880499658169673521466343403902154117739617847753596732954054820891018202409609960575170394219997192513244226393114986181424152722337142477189510382400386461957405431065075455022427858010832993496862166825232823147029559096526918371582690127387077020491158347380153997494170406207163144838606813581177641950434906427645673930327836393721390988913245957674617244386290576310104727683327283612150431560116281962639992346181746953388065679927076783727664685511195432599602961958698536461072614415196511400445841842830624576502136902463852523413591784009095778581892599347339540729221656852210823068957615762616583088383399358261097311977077007585175987029066077471113402402302182671459195208663876108093665484800379701887361176241995577004244498434986759058190553802285248474331628932205540664950722010249454569021265070346643829166318357366624619970079887874532317132906398068058573118727699828084536788000622923601852320372650711328754070026637208907338923046421975672009359148066964053888596298634958685341911322629928375180257687821522934687865218849696084669207898204868930037526832884878291431093819336074177891001142696460965786945021981723697891773998182450856825342712053467028851321423116230886411440712364474454333796011395606418282412044563709093440069361643741653153078706814955137832922277541195625626925054633908263568200664251991483197500544370243559697074358716539300750075457607776170754264197645307911569661381473869089366645752956209414767831016360635425651716419955656676292676122615498614260499698930898899086629705730693181921257414071826300330122367529644809250240238554987332731413907603058830425641968313180479615249665120117275733179995159675138244150819128740062968538326786889914378697084717232631152947167171895094136446522092338626597977331789278030215497174179260806180952339881196653538827358291463177794102074133616867004136009137557546772564193487785626769418768810342342820665711934125094706576354873497766239173026980548356779351752461132013926693231676785432099473668698319609260137577047099561275896679298760866235988966785380533635792573777288302578465462646319185916883374403178889870643999472152668336139994390969872260659282115539977974744022447055889553686127801741483106673306806736019934094659338567049457735950647807491016462501638766139442662676818410591220940380168561590208883413307216626728774472722984646585937668737895621281090834260715109898409936152879377019713148349727611031886435734046427654795187625647467614925622461760427124098395408526524459104804198312550146389597672941157284557478993153824245049794884888017061961316169728800290255738523834250852899514305232182548288960234490211730587071991676370744557857749209823500566348312200429263770607837750330655935498445531345436986017593390475789494115702663333008366888236152238130903134687747734016411786372352197898253731822954060386150608933748143015885794989636690233477043856965707457735826080916888773588917172805915365238976460326847898136080984759673417177183435087252710943340477297674438593992834971146278036889524565791622025763291566181272326507607538822725570515188716095911197989152351274151851726636657941538094121851128294272403876033234689499691027797810110806637922149700464158912532824440353563070409576011408527696198759590774532112241055118112682133416402728313935904259943284220876088122858407947377425032100410068140029584367827593534117916091737619967852348177930875008207322847867522707049116576539906327905030454731736361808536091765088911588617136463649826538751543811339007633429219694233928862972333802981745437592868558523188922465450871303610492586543829758668064069948444367608954759491552491956840889933478186764755163364442946653581922591772497970105339204356542262721510636255411080159324543642962971786747948657564306081949658869605657263325804299012516327183059855859577807971518694994443460698116628470117998265724037746354349200955950947364714408454730041014341042576370562114114606383131438836408054709038280542016421957171137370223428665865751851712612456803799595507286041984121149076672673109380047741726981236870308419510141035841363603696188819684034505716498453993892393656332450184090372648186075662948771485023961618686113711381794827216104707891493783430273000385726103887131368748018724870327287041914518554940549331131272981961300143391130983127707238921867554884245697603735139293012137050355352179134874360836614876838437944030918449194320178834430703959467157215438543539110290883408679538559625908937164966012658636326579943449340794534627031213549710760258651990408176348804783959115949613242200112129247274742928775404304732246075947097146630707117693402234939085907248732490292007316270876144183046669231964267468094027453744416730641714054597318644007308701167171466770537233541744645056371205872145178598802784949216568756642644746612036544428023645733044289834840669184825926934767589096697578392429667104318995952411767968338630211347590826933682381934387061775235912380295463184118268443865206207687265369371451626962106735507791486362893910783503904263553243821092583723800472708694634791184927440568681268672451600047450290192868237042058542337465274099429943077274049247757469098605822090400772916241348344146691786883328787272572533196501207672079729835942329858316897777092159071793496919008198084774441515701702141352162898828207976738983389025141802117252976427192763516810302675077139225860063125176504202887299471812656338662532662633175966639758923089886136090504730794838618795274440529481088003662223308469130808339404974917063324781042657044572698556410566851415321908176598000075724756088988253256131232521720450871914430325586303250328814493680073455599871963471526658000529752809916980222468411345777235564490740866320076486053593706475520300826511274857515000699932339199625404932357334953104404496379897631366490355355813029479253965832538433442477135143982653769414021476409193706469768564227626960758306909856061405031562724433946493302916284833806559931469324539592725911935303012558405046486601466864084866656689769246965765105176994575728216719157264755226491814418827875645625294841895466715139970610243997054216979430728128660197394882152980702772179254682118119225875778850365744160115592183811196883107540028936561238269564337085391545438758659913530978897020152838307642913973536487252939095346123304723072286047765609507885596718162025636247256435446290881422463897506854672168951288341388708117908236730795904332630010401955549328289077207884885398397817555299805698414254114642726981312648234663483207908503348479740509668673081990790305562166991445134009594023102908384533406989326665973668534677394794603456502703348534144040506895145603397872470353248312993695344901947391738042508887896829605782445936179867976237983052710645997938104930780002553034284384991562773485761080264924107971004356514714207836678766353601432983838434298680884370427964290301524473982747425978589593466985207831647955670919331849126444748318491748916465765833269880911559586168921921096428124694630004924325953706361048454290829963725101781530436529527183381135873589483225067093882284044744913268478090741331095563934917435557916490448690257835848610143362707496716080505369644937375755789823502365517589261209215262446908672048245642663170045030863929173971091117461126481359483526505198109296826141840133268605103950387183268601260249833854762140024455420204410762553461581554475225073039701386889538440463723392890913880792778851749169798054283251086498761311831462640562695259572256550563330737072912716891785265165142084893253674723695560419680202773137039231767282620237174456351089415146735753933675381468111449005430075975055862121911407516154086558689464766384370676574879957730625769493535163167999859998707451322062474268954070202045737313542094313460042194071856199959632811134244030133708948242870783999357152130472997987249494990422453487570466242045482935510260593634458168772974182774889177826863008762057114216218082809150801793180941737631355577096082858235819833484679866468073606968699616257206268937901637752547174420744671264172019916278383335180518536682584251594675491244354201564238971233093292688470423558821387039352427845284439300684353972982447548087005230461760170534836160375036299217349724693239996886370592964396501812268479823074403263471580139155435851485626774465664347518974537544979084704043589975598695148799698875076293608663441417221930822375516269764924518435520155812577136137318494940640390125045145328780869656720238513002602714741721506537189940029675537589906822944710618120966637388895897773899444316313342962008031670992979209073514482387184954804573676144610001552260462135509837229424941413933151516698219263490902368508280817906601879382502160296174676316986287489351036012913170123426549266128790165423464274809121266173628536089251107585119232652455747858207278149611609591347917749686887497438367870792361976092372758475939857757118606747768799736611788831291539402212357033702148985308345224278832293971655541321879690714844112696846500213558327908602695817006006426235099408469293182347758805399624461691322746135316242198015277708123596296309661563942401462679508338464617825281018089111350784278255576744531356467613606007241622339143712398928929501729192984649235122741201279877469108747429221109625788542768408804636942573534166101962215566615156324226776702024740049896648187593070745490393340837149914971080537190422685800271438681484167836335336295983515489347421292782741458113713101082452210851513555341815169762141780207969703957987525432867102834342183768756517142598062055157332969585556300002057934804185551993109746984837435566229024964103576797051582735218030312832866845655175776228105149868737013621568089478514954536138763834859166665461158389786259405433636785289243274176834406996037047250231238562638548272038599580097876466336405423881498696238528321840159412551786829302107830711411827434779149234713816204026410561508217927871620025175623231578738141129554046523969407258453120385295651025905150772809734257300744432360638616225619644321644829360927450287122492851875498548448902097206670209873470486833242632990144518674950220151360788180914777526262478151779263527623223466322681777780121358973047200478375637702115687888044302192236081708249528143494068789995487787493184744862948538224557624281476571795249192346041636512197658748533756599785230513612361905960699758021450871123590214326807050268111156200077756695544666384420478162913841260997594947353948589571870035299237359606551171029974375465642095533512562503567495390527795707026813297710072889530882834196658180895374377117011454598983374428091047796333187578388516296200832284886470790532110647692864159589203293478394378890353163739178257944769982810311919904439884625507603498654264065369624306656454564480496863446827669047956274876373872723828820438088457728462379511260982479777817619176395164783712933176664880080095192901542406881689176829607279280670621637273255677130974715013688607803770460900568008105663848895074047128151118251895930222503063266678922132003998535666052445418457798116321314408362923893031462719432255409842188147800573623976786994824740140222853649601513287730470751360278376828302856291103563998232898581461801071227288723207698396500950223315772472978886900366256573825822102158154058340071746194206386143879541717674465668949845425708622781909557060747871609404199714108086988328269505733366200324181062168780356553052090219276250101667185051706145112356190448186505426519909274141502697540369878399966275685350546590926196520264137046990545224421434450271291911785226452322146804266837869758594285686289593871074239545899592515477652524417723479606444012025308243515964332737911784049296502187335500480706948191695186224679581652641148102155599203554584260726471573693406822718384851008863387236105324091981231852553645277298998907544387959912041090115359450525050411042602553340408026729139223855292279562570032219005898829979654392249120811008519029939521541158681771041972130363714057558600219753842021651688025357661027182146991032302270869748269617530292643559926564568962481626093136866622125621848254311897145647599387109025535351547473463218813461275015561456452613955776564747497227925718906208643644566076947788226902826426811059024499731040800020753378589053555596461732539163717423383283567471250465518189465177525804872936933196828966711521589345656400154392217842500925538843682189398276019717511315372692273164508489068127796335997890986388648116127151386251677456879177454390670872763908400121657159569704880414794058952136795335264732605490068135453403083353912005626011113099045238386454999559920476956156409114881702680931903083212547526960683934043319426330609684642968629798318062552958049424635251076890605038473528133908783607664534729139249665851936060729357109615855213692588092132537482265019700621834615286606009264287712815303344841347851892872614317268802260938507158404341270347461506108611195290542383623304775881150764046203451809487411838278460998670474086374597810753889883041755729583527786660173032916904609161154028481337163801683407060981776627695806220858527493627014918631205523326714609380341512876524308283098618311975917920029360099238057302351335096962780918044021191580928776228432436356933213222446742158919017028443025234062917381492151007019859383719804276507383266411919948865369892768885461464511068439198508075189135107646736107099186564659304800103022681011162695332213856862476795517181084363438708773164727054690800036075523137105812669186350515581959312624244541544684017183644248535880795727930380793758634465038218259070442470207970210953945950439722627746816353377337065549783603051120283666152604770669497551258197150558947631772318755497384372366849818818668223212623338776009821994035669709023390243376446492952859606893184686930047438228848723287013230235326335602329462598687621915129581521460568196050078027175787487752094327640952529849190174043322906586452278071050356189390299129497645535454810017653692495097632977363013405857742343941701933862654603823996127610084326767393463501925206754466301698598764844161571032716223429282311869528983632522168217132140853131253562462610444127574797208727313660158811137817747324598328964542402457041116442140846469737608475270947052250000336018563703072493206613416020015268227915838075648901692716467552467836050717571558272964633002075037709955294759980884634806866839455057674198134566122305717116190491253481012143585129512217432032469206507968038946413266409864670259115381963902258304521910550321207456919529772452810098983691131809290075064486578518684066274476456777149252279589525318875179846520592818649397195974000710063465218521381716245849793594680923310148086997137823577354721785981061521448397135125561816244945985663848228135841637628755439593890297114265804683814117500104229623154842387165027686759145777479693661029200553307952491445189322987053794369244646860253722542131277956357727719629690433929359200535013582932719546856442236631780886076109480595874772737121416770969721544099135014775930585448009156188349944719960001470427938631796907125451566040396723569157356035940587740084661257342186321526278938677377755997408903768395566036775851333631918296804013070773217865623460394890983373500227871711359944419098398961770710856194333195515997537343010580850707805204588485314430701475608703477308654539626684658818138281499246669695669018550240797895327430583963444547818300973233152165031433528050916927960184918209509311970542809524394759741517208682906074943501870480020081270062153751971713559476685852008329915382125449341578453926936911762360630391682368599314771557124572538639257661232195802831202403595447256068473842791172331897492982744496020522428144235498210863629383908049958659917670285605035100864402576893138585353503896764157180117126874082841150266378398980588516663868639200729397714725368281370110027359069284232581866969250904733572401157181052161062719920853784158768032452386492798614851651919644983577946758611401583311163524372719281775003797609935778715258397093662886807695897853032777265299807435563097381497790524973491309053341115133559948405057224645915823085013022667366059632505385281860601821792705255193296801887056024764854372435944611169167295048539271227419741923450709923474256199499954611871964588023495988536170220579576968297571174933950456407065507894823737749118301526643100521693837909022245919282186021655617297549226965890775843300761387614151116856519349738604171371825522773187843785828239245593373724797460331307386164554544611106210912335235571303709458205836295351599539519488616249707411973007615969283699676322459733979525262816691367623876243905295336301680321063482513488986008761422843334151003855229109290911711768845724243281344869793050767439763054844548546086579645449521835836013582046942253967457953885510805387069719926483521643667204884561103582986273766088172053748743832223456673530482146369238364624920365729341121176128420776007896718067201836906819641770075854442182522517793876366372971073824409616264229070939240681414994933689095759808753650120706881953506072914284179312012410260407520695872229322396081374544079574064816342499842976534805312863537725009421025869034853387685130230499783054628351647819488873987499881176371708266598222061386765816036700277418182433676078524546808992015429801677008213525271536154601572375527754197059444787284832235343719723028850872292226947071964114833737380986407156701101184603934010994041876152004102163150458102859357143902919833249806195079738070596965907318797821790134533066644092300507348590809203758287838872571920297329183399313310516813907760645139028993336814579510950407816463159002085519381720183267913941967875101443824482627897803049315463931471965401711742032529742281064312461214710876982668622308685510933334100650949340035929749582812271127585218376844128070068221698588426437792544093684908693996673913063678974570851983872212118925585636083455432804708361552497091975047461930291702191278952289385674232614280713753971122102883047268249440176815239290830299019030359014459590298023728360114445065455408553901571636276964089228923895032696364789464121521775955145522462149102053191191960022327480633671329664940731806797590447324132135535529925332352898291435995977169427589204483198003513526746828871334535796812241899659572719918777704069111413581725999335875042404476641260596778097552087042560236952784017590406061434427603699001724041860652431523743992059841863222701335865749549710227832864494433918708744652346196557927737330647154739943703593240253076008645387977828346665729391282931344076055179983322850184074942598336631293484863853203221883552433290735447181576245770433552776624512807661117836058903826031992018024810080290262718576340393221113984368480913471638446521473291675826465974418345067687450355160349820226210304480507488111955448030289115780320374813488931335262738917825739412528140255709415904297247100253244184321116312372186740145264180397757433851262870724386190310699653104033014790803043358212725678364263294970778812467303006354291515174458314951608648466694156145282700739234859870594048266698590997359426279981981788994183369424981200595378924629575385969488022223964132508269203998270352235345118724427818223451113696453003493405373504979254364985804026037716946624917852460249213670369443311699483005433856950266238225225897976744818335744800625661572145666434345829958003662527633536497298195395741667839798512871782304506031867175249596909972521871250382021944248692658157613512077531650899702481668032079745318429801356660172495170534394225939990011176957804777146385448705193300843926927388341359209418209861810609079672580246549628671858710706760577978428313114637803591370683553643435581597767881281380590047290457790131915144925546780012668743159822370997334502725737253180796905814459414105752436307780792388515509317672204349320105929281447104056003622482830885982816566040684198328579160938057831115317888575135601438774967952141926337829270056231486465995859869715941149858000254112502757231751352447130084247978758763674551948911143765381650392090858503218825623835120352153106322007018945545130664768581866987275980082586441382637347719540653383493618221367011154659041485245760633518950021817468647558622987098116589079459402759240720110227902254669032020241618470328909977873536821912740603292450720958779924389239025342770463187700145934784418099641112625559404372096436667813022484090915252110802792558282555404115607069568837057481579700226954027616149770952748447418890282069836825739581103647666421021829573661009799567939145231178089257739043613688259588832973507945164014634782419297799342800512727724208493022867788612518974934659654101842234588550111883386148955755654868583549882419638215570287704096901077072696448967706314267456605013809147953130174037486322668889122879741111939592458303907178908143188653613297157730001778670310177434131932070093193192315889003000026087306291484539556046792743850984594214928051461015013252300924260257376380918939649403737372048206323198288110507034989992495658003520282443859863003716906452509445559242208279127766214724026569437160393576851767075074307689628814943185809534994757621410389790364769233004642019065168742880756406876454715079397312665087631010696664279779904185751254922959659226899647049245966611055877186203392428625420374261800292568662692232494181850541181333505383504228762354744446574594547116858303932132535573112132016942611939493555273141972808818715653940862183714479907306753136969270781368232333592010639364929616976168199782778619414123204123998581416549460556231404528642476525972702186962389792753029414033409955928400621969967126612170389689040704135782521111705737558497761085216336684795816495783290292266117237757369536280505319865311294065926851296493622062914556055516291914505314397539087347939178140035451309123195940348996342359771172272626939928244005520735900278552213054938789492986057576749868305016412916322404484490109110557799869805234645616118510733294504274974524301398792215462956279966351866692993938877836110169006950060259915751285231945324233542341540844145086940878880729748156797053072696659679293245759950928726496181584466033188783964102630778355814682358991203152663051596553278753608690182164684760326031116637293148977844979750157342685147217456563141634912926754775845229243745853136447607698750756558283849715908009618840362226030681088886792183281039433246777685222539787837141242690769190255087542198312153648771354361893972688417514256167925209148622707139752220330641916646365654518579037302026788147512381833372797419045782334547680532595026896079679521476182320057243096340525993802450683996548264201163306831416900616924569050737289880282149612991001168059062916637919834771781634056800008518969108635932339761449878524996721096631492388263177953789873432072279854984546330233555321382916473076621917056494550920425060960032736709187624936128159402206507516180873541069369284586273895852591742209294496308614926392672740718255457539882409373526059289244839969849720164008206572439329924719825667871791811415268233110481335101562452918111391201970012548916378378285430468828665255374704709751363211765615415412262144557024604809667042077238756880882371337804778293582411545907942022077981813291296267894552190604624958233958408175183288668262518321960281118233543217345276121609956360779131748134701630180941181400875510415252709303051637684088779326911738472411823792285089476419015163461855901910538124310048018024673895385010961113767101238380714878121989007751296409468545701087983314063372031538996596564755985125011870848163391231007967684063779481423988420280762347713836325090628611136065314560083930024340254135243830611176617746015778553438942059975730176124536874949763296079054011124284219718960795537692732095922245942508333224765864904916606213291171670636189867876813365900940204789373415876223061842431475858877268244327636404594591388901558054047013605842743004254873941083399020005026951170449698346334378619272352415029437141035965343842012707108732638815713736665498099299484069953800548215170251332738310338971290290934384028133475653459303535471381015334269049779070683710976203130488670130041754688632622150398064884741673265135021173603751297793261110875129672314364301445999979404865108172823914343399663313442583530521069508649200665017575462385413500217674671507007190544114560485852160590889640822971305549543590640786582583148650373462245916565173499877693171447509008499305871010506701713964687181732135351601562695124863362625397614000186147324565651928288318607826421045723041476166982240894731145634953414189524978143581336591391466672112490175622337831280322726606072707629667639390309543008096491922794783585235523697073330896056347781541818006514319034666827805050235771376035266410384682769910881408170804451118942898781747044359103477066131794121323984046944885246987929380305729004544133851165884402682514499294791857574256764506880711745326476836805932919929075860712648447624824152988303469315391357663476413486791918969757517103492602301770204123162575576137606310941662122576138980748864643736590062525155097948150928018549575653735756434258610014857647614291308319967439195246737755010852867340270969513449097865262911392492410045639281751288625841853954946665993945990663151904512714515038606742241333505678773788589411247936414039890495391825258017079212118293479470058335255480815599731467519591612507381841066928879830347346314701919894883958085139979666529395738746174808166267667480539039970992456251095783713268651960097026267576085939975841733806120271542115385372107227111068636872460262236019053246195732448779802370003884184965542745870672647363659511415841891398362088226224824019359785579065023752074776851925871177619858152078646373864338156227825760528373306083052286378430916897535592824206344537160223509538186318212169376937443783145459520331273489638298756798117028739183090974510510554664372969681796837719944840302517810571882935097777888260997698448187377518465591766883964018193973835800207551146631231155489768392374720682097692326347294159782172610807536969993029814780494568085093513758692628822748903080748874307028625378185571632233324777736474563407286308173249702891426855551421582957898977609264929618243716821600007776168068552701844679459329016750995714779193061000762014687580214808762803323449712364070257799784557591046365297818646059653927663957030066494297014601989602922867343989891399080312221282110125562265909635866136210387688256464856487701321563703530723534480213650686832081806329067478854482404366871064401852105482644000449738761349849647956457381801009251910763300521587621781959009221302210544267833223534944013261925421899684949860166386112799594716442288221622103424776198147491236516661030517131959695800174409158923128952262192952236562523515720437074928378672981556972474485643292579389430892196829070930409377468844405930790568713997241770130692040770862513667958324910837657403035263888908767787937907710603840015849207394901481940822092933375038756645175955841421593133749723091122597025133748891674842697850489548278885740454426633778049771862560023375948459647271038044296580223264113178862546280210043198461112297287340513055003028261452063174035695696079761855934961182208018846877663762709840009758291020752981179694607277773873622852559787490012182154521366747287895166657218574580039109840256385192354813402849569159014912740273839586373345452837760929831196691371090392631273991550690678910820142208776461493349514008020726519787212455051741789287568377940114480228058953822162951559675641145488429167032161465040428873403383575151462566180163836657905898511100721753503597907130915206774744263105998548795712497711868490633713919789730908179537890930769688442467771653872172417965932800543158651364197152982036884388081061342702238969111278693285430745990722472141999362660616145311385021637145963108580207876907957526396494715868240586031312975721859024771449186739530216403593030196948613066821728990263714032076817437986124898901644526440007668151434162431193999607017613910968994093986559071124622148669280385617159277710224874043655357603042505316972209651267678202367382869486320191712673011411124974635244870416411468729880724705142832793169354406164315189135155968742388202769886421812451048126199772977985928338556931861010668261450989269366373672324349143728006200202019770197346687252632347940309537845446882718250335915617595991739844751411132222936909542972905108952032355310581297274378292222859290714869171794803977830935347363493031683666061295741373019640078129991887724863527035722106512106745678726707261434549694438851480577710439282190566554419145502395057886152320739886485726825868679677212908590342014142491114956405922819567783417524554647635783107698446153623694844299549170349547729040850503781331435560824667163069225789471562695348565954707134651082157208247294226214889624765013797405513100670136195497464011667640518333156307076722988788651446478724720440780916458602020323464190486230830106981307003580534333385167401600948058282472909287003435887859759500747139945017502816589756653323017263762697451070306657609895805110578606441188562373394911288637377091083280880796937041807021897112718714128696023783187246371080503356459751756216088551588038641382860622352892419137112580772125198317065033891011182921937006791020073924960075070796631352461432665616246162417912356777861320871549579659044019359307503862277847381917311870258673935735932731990795131364250329370277554602702975891785621770423829064935284671547349611761116794573409877875217396189054911159564078715659708749738080458829920156445863304146842859224357757290652101482705438081026037389229498794861460895928970686633047791705541944642803617259937342115081795089123109471462892367649220318426417398660276185046726204026237404579668023662944126405129123838970186023755874801264597678241361229711752630323718922595402569933938682474176756072232179683951087683418192894890642014947249473436446907794600660917147234085942570814303425728631973004891444909056400158357256311382006365080901738320091080222265341691582531704331387126206891606594145611443559184856715161670125197227794181799763509725160245584060608877805574996692641568080494357970497679758253645466050300008824122500684230739351282518123052760039462466679138179267390989589722731524998559236887077609783225576312453386150716076034100625835101326078761823030091887379526977922547369667170329498908579410539189541609880396592170555939898618735657929794564061274001380319138354937629214367734935570420381227837887598144223312121085688946296295618015799797552809375234011510250140361559525490140086015960452948347628303151067448252913015585673028909851985696234133577862963527081910836411406224707876094033420187731226894551292571300455414194100606850347638947857797872066873246381838998045456782894155416838101203724785159755638172019397177038774964340453217407463682873421991793900681573555528715093794819846861979547718265104898565857849114349454266604997707679592475012865362997491238175151513613479292820835185140326831228444822156224981700066894965358184278245915554507047231544764047649827632604285760506331129671816488153767733990008854771554680032468432411881980782701914669433236765868148706748078217755079369507072296385219673973166770076556263814938253899758362662780777986693195149181370618475877209708270589952884888879367832144823705369137870902217115289668560180582942082929674972340894379267429141641200570277598022563302977123514567986696129481787067735924127606330952858765070207716611944666174555786739120594782381926430152452483335613024844583253341069808955954706708901580948159249678817288267406707447440204459643974346113756231244188011442738525648954498221322847132810655493058430788382934057867642059950096303605123388847496351712289139814194673174492040834891027842912763842107449186356759402306126522515286151445848379718384316017939608168273319121606254023176115734546388769993722934269055194641612125172628395026951909465017997904040617411602279915747398508604671664199469077682117410750525847508795063445297639889515069312547550043886244499970200958673759577503182500992740201890464509693427481574298905246478818289331984547931079512702227882819906850234365401155374943928480764994258193238318397674304527278233234408560570993188236023107837756540364803354033360546876372527640896122620195019116910849120582134094370813444517730274282761603812845651847071963387912670126851502496565471291531970137066301018747397592362281345468921046626091597061783437298875541386100726670684066342434873640330855900357735844935924576970373751919604862525003619595014328610194719536714292233547338363251370999799446062386001849273629156253862160923142786979861153984140292674349075209160090374427048631628451772259982102538042859143757103114930995813162327030197538026046990816025836365375595101780808309187936043522615141906590534293149367358061802631860543713202580257691174385746804186370154413345900307924499888171655660865942051181343850352788119570125842555023332971451444698175873771936701796636500371930278001903871440506711152976509151111611417678899257402281261635913386554027427838696470207077702103424170611762363991093286478669154780522372359079221391298244864155242696343874510516141371770093774209042175482734764250393661851955242544827227686082421364318015334849916030945952491519656131679225118180847833734837114410801452502084900052036952257863675532519856742075897119309352331223166025375841209218795217943387759240313506524171904381045508775607506091959979741381684527496461751503078947976580167690550532164385373470576890468426794875318486297008605435098520815774276334086565234065863991583621678768960348779755330882749979433861237433869542342649928017677026099322435709015793753935029017684457220390089147933337741355198164691931534429708570658789501037889407355832730141935599979560142322002719341962236709493886784299303838192981959635789523055092514240902097103394753453092993592909844638566086990251617232959962104089931407995741310141117441965894913887881608673664583494855892538279291651976796997602771820775163681929196271111750627181900150127181732927363254712648996144263428442049671200554768602312666035458692600206439723844334552898185379312646351714573758819141435897399365013623545005291927948984475490251778933230690957745655487664458712699394556772363320217940965744145477618762050459020725173840908915889576631984876296752441013583593351019492318869887670777444268293378682164310116198396669692172098528334271255084553131500670110243348299383464766066223752033488238604021943812271078090798724518683619275224076271682685296109745758738671676240290610682220821903520591588269488300335961718241573681518434659588679806160089068801575288758604377424829978317366592248599281123619760727610471007353324509758602912638068449470169843468149135091498135688319189815662105355427906580483414028553931339053635580353133702749534494583591990009545612792687244889984097405501827775352301699797286878604237973406423585075986398318492577365105523278349957930984387350271195712785157809612287004752476736971360878053901879104744255023788392743345764198237510766836984771737588788961170343705538039224094729265940788324516847519718588254945107716327748178345534334868027855221447905943480003560169960573540569741515733990589457261966812105486803755198323633365139349695772731414312478805680957137506976108663106602682798566397948048966001749161857787470974929146250208205668095162915980194514105445994206089496885810671699270673273826065988735122277315660095591527167571624954265578574062568932510464686515697900231157467041505582885363734300470825921845593381157491453889535912459756012683204651179404551918708085419501452778421451774677210529107360700061377376967056237562467468223022820776526199894362238125378714256107074893299244056812009877240314649347530443318437826484553007335224423601522139375999238541881387716418962769211086376139500228508697241176225153257460179196509832376774451195240965479552164079028870196854744823080652633160879994771060051903108918114764180884592769312167761406012990432260535743351899619466902426777981489180010274261989224887171499760958973133699549613248754616613213890092780285591755190743684081405331104911969381779330942960786233455095535684444162145407117778235170428852101133702568297209590854678461408127907968715428666492142648788293695609431516082403792257004431766509781289973261657574488713440998196639322792395402750520112701973439148366477788858897495204591273582142546424968327180444538466020148167391432256353693591260566327301696909276569672445842288596566407212577303209253996351487729031160890668399457092227995887415247597981026418376354401696385255494716396454269135739051256379634792978757383777387285939790405316605608867555287642422596138710843234306935055608782151602824798217543536280172444084399888689720767600619347806116173290844182094245756520219903479089296273314330370305252947172561004407787262799949437963645620194619775934391046370770058955538497389264839266983987562649551828371667516936869977074568294550880149723571460539939658697777973284408416804906041784814181814034935054413497685322231761668643851093275534749448901580248038591710032279893749868009794546301677098567664705530875868529005096413140546285914432935815237538363007635783664228673217575461263690107023925578177271901740862759473005636934565603670228121805817729240923228757325595228271742715598512150438340485270653668665557340809270212086360895956626776162964844903230767848924613453638577712036091761045481378916114710645238011113009897269789315418482496241549868679645307222393615260731238462760812276827356670830243492242752475655511255337707249979205895567158012775894733410402156662620562593979943776751823837109035265288636971300625871534544682554895437603949063128704726499080812842738053184411286164344942222066714319238832509287905109050043629876708136438259186107665580970246548181512676934695236064745578915840076278764851370000601017556663894855936326245530355435474242243113344916955329022839126701221934078641825185729854405044372916138493890492831075247291813369153035268664104923761013593990550496405036597664456274961942162717924482395843257975021535076556768949145275170478562886225579646084806582951241461963703947757220982759623318548127832235195458261566264584720648327430033464830883401982007378383249572593921791118319897177903306861089672374365070769547090563908763612866802804739157840951979164118942862740897579692180449413217449747974743201616116531999466707385527047770813083606092695493618451385983711667506781751639952791001124684407488877563116490112578455389529927071000137260451583182914391269881664035122911777520009897062212077703300186229083328236983123151292855411848332736962366124953762035959047212472363476118116787719220551881935062277586978055005818412998550216114444473799981806625721125104868870631635105159813664241743912014329717318956206575163242298569536393836211795761972201394066379259103931412850021032702454909532741239732795406687274477727365428346427773827150975843590434613607032323804624537970737180423388672501933014210117628471891170271113278369465493590450840185280847472686229450039863395794910577962827554175643449886812130485278864561036259264763253968240779295679647415224090354579911885289949382813202923802072145716254776025995178024605482924949429609608855992425336204428812217042725002503498437830457566734130362206023927142697029829573331802773281404231841213314528209595181414505843719758651173712484166455860280743478615870367929747002416766828710867051590207352611582805384312370540024800704154210256338560524688203867359292806608766711859752275666722043124790100891279302888305558638542372953098909408085703935187724204019030176392472380805582138224969984325236736305128917461750987555930094187855353526931066618955212689561930107515893553781975657105574816159023046995239617741295334104931568883495131515035734471061954705556689885590850202583194690289939853269305973630661076781070041978295551127997593469608640621094657857567215140979432838212353401608403633345598007207730632655912122809852928106153232747863313601589700566234975374958503682744884112689767295681664257606644735810647811390523008627646081853227373465664149795276008898770867473001678003132466936152287855336238427137286124408254306972603094959438631391188536512174750553676456934797437718826602295344015419814155069125735876025572564853422731961692547075896749202870011558067026649859886754471211431118933028641746489890488706606434849003951361130460548011883933021758607598535101920934894275735475842772102029525809142608572649969850083507609570244155579175866054565571946984746464752135262174848312124806251363079323036463044263247374766695612508292372156853375676536801503924863321314981117015509783000479044561281854412379117170340596030912763573020190625598240528914857735493630589379164988013887623758478602442468068975727332148195599636338913069778048082853888221330745069135247837979031365590123202215762431039956965375953993398373097455343306276450537929574471163928516974405371478155884146836028319668267902687745944768356061442748136196633793371230991924795954807305386514593660586779837929176753466315912309976657318957566051733763510519049609719347341015571466013875638621052059878891612769949040883187911551047177418808620849328654850191242487964307644349950841796309186306197115736454348682249264855314735894078455553080200443758860904479408226077078970641725683283774722811583714681170073300062528178412281045432217205692459626780763470493060538177407915292159468238392408125769038024784157448687621046892850128599665433558725307244968260269618211708744160748542051335305620446699716871872862960983725055961767824115572128969799978869677119555969611052948586283367093143339324278278093718197691668338832327500718950700801516459291883844778851627092795523016696606178781648437852484787182694596063075946514915794008283453631081600444659374865068048042729448788715287443453285809417852396979003294119146045537273068074052212667550310741212735319874626367412987126468906488853359502306790311442932386503711616804515485747315638759450852436572891168672737853995505383505923417713955325028179728783607168116567421011301555806732930751549264890091695418400870194734357893397825061561366943110550738432599901150720558723783675619451434198566161794890938841388303738365568895907406086638267249051465322214248428319384247780451559687456992890614278407234137792052930192209001054950992549300409717758714722715085590572372747749641281866906162988473098203752921354594310996287995627145288447840938759121005158986275718655508755926061368961623422895074601290790953033451920973947754678823912726578225350520774992215952124159300183485853981717962703017551969319943722525027271599685933215022012932339239421788011163315297960173836614362921291895102099077076800548788052670827656363176441028563315942157833002607729087225557141178450926753637285417481684037872099070340521894202893710558636615166102798219961178061583202573541157137631750629701953337251863594775321274391467697103801902439037807873506566148095076312231983976326813589602954453426428308431423747583662327569165065007522184437281437318894784932802470808922693269285108439447668288218606887804517875043694233092627472803619780542849487813644429373183097304801727641653581872463799209299795846205894790278591743186035166074977364000033216779158910348090497232322158854660735365134219422106184630502003215368876332562725215088921462940283636597229812060508170222446184938156365198016192567103773419153681067853965811802944658825722101462221331582715313223963698759733299165042081086523052716427771261704707383566192615844875671189732313764985277211885092542966701739544063340211744909764592184970765161017539191680976046896022798868281540657073749637156162744049259013878625242368912018497474258048269617525653166607923108119742197875595459208953639265576138896496206575264104161089581242827650922492902482550830386285810592142223816555017572443524500352903376919005678895965009864729145688093282274964592571299968779570327181145949601078162381533515670876454248426421024604903974963615177912109198598844732411118616297686914943945544261957154140415113382766338472083927777638148037503598707591939473512684373670443831015288596868347899299379651745090559712812393053223050127083228534015434015921368981653169155688000005044436176194700390211547982799916389231570738324846990663556607846741259299692807539991414658950735521709470178748663567814173725614005682750093567401620172412107903523033407308640140490431071217478617487826766283450178400681703644489457511664623370165959639784747814316365022001307393658317560642216225594815564008592737753377124430436628049436336359579456670144578085220806613946157402958177588158097090503514706221884086710647335200703111459471974968614359096671130835416544839580734736420329853184053164210458258256729701796659751881355902066883779449645815806447469564976936073220688218388284646814056762216069029484511838034376116886111164945640223268737536069573564563007831368273139023931636410522323301907710816801865342993224202533636759601201197786136632671408108340148417385414927409582380759733933860815414949593850261882471431393043346298255780472140192607577023021255418352822608725369856775931797016078845246128288044090256161302513808877283529205568570555099810735997553641153649898388333941765739326396350556860949627311865187358845238391810203207015898799981742780958499229611844736562981176653731320142408569567936425635386684646404554454211570122404885437869728743787540035200782270347573277334676299864267354411078260614741063985200835521513503301904857016134231435166034697556043319695596586137932472482710552985057856615276215597345485436508209891404068243031279099253802763696761650473883650735244651423527048661837858694741797819311859932405610065343956857537703322278107339389934804945129393816964271449239132120150597464709621380955625042365190796531673455091180824150251071068386946027902294652696877098451764391483189855423733953782618311561371464242883360871381306112709560917735258442888719863990108147671229006672735288171210166938977451492228740867784560695293856950466205241680916223231389189531045858084181136335392121415566925795619342495987002798972719666610114546248293937846782982775841694726387117588788506682001123030922767323203980740501471042792338243843677710265803917691549390782408669504108782259501506930086262340207694626256223571145014642196226712462732823606739554297432366264610114657809084665382951329756409196943194386313142316201598002044135827566687392233805579498733077541046035475977179476808953744337253850654806846933164436638753161573309666355890588364258381902805820594278021285916139915651986772940261425727169968262714086490754290874858165923422009502335827884898523804306787833205184768994831629279526509429237184509668290710572199426905621139232841430151083306187168746484771347800717721882931107708494755629853821457121591856048437162272359991130411768644364629214032203590436623204583490828910362195854546369747490268049959538854880755947511436056860119964356787986897149939364315515161312227712961768859013552103842849648538150666795315152291703441452870939535304200398716048458483356377810516194230152465303647178977140274381970321404407289164392090082578882739866655331254360647027506447461565182337055299444684569228197342781871553819812386175849002882693039482628264602640245388988434869322018089559482609004303893215060887281494128303549708006777579836369344761908492659374956097700409111415578926233368416137761920227490558974794254319858991519121040988572793153191644316055996197413501460098010698127574860979295572955438647134509272902222368991326690910720400029849256526879112221775121241335720397799712017360411390118652598017157015858274412948464457766430789536843919541884037051640607412029216942571261865561504732017866055618250886116279567649007195535935438032247330111128133593138154518568101997161902436632803476329522240855234129583462322343273532446143864294787160027382493580729624138917556319840482140420725518604094127459417374577597393692122649894708114674831176079759184376898767164133521263323330893717632329850601241574186030335171060505164949026681407302870624057414131581556452611265216486767254470696715747845566615140230882432295173927193641214398056602859078999873742613479087865141510049536479379514200721794725670774524956746631813063468156731049341201647842880165512245421571088752803622399571437202725478475344012224183733943568883008430303207558962122972206075386678553639565534712785597864275395533299742405053309531622643241163487999052861723037444884028726937298869699299939254332631232239580882168114708617341449259391962047878178502610704064824571982121904756177934202921963313137655256649087097168032912156313492676272312277401892435453756544232516515337223918708294044607301019950386270843261146711528017869368848343721307580496638974527018828253925988570620163685295851621607398938684601867723136887257168768892035224746067981312598315070457222236685043114917020798750495948999561171803299542739684261664405179495520330312634824901475558526416940071369644785748188825530199026481226697458301769920583018250797235018484831378486778833037533682663730155482281421395581836861506823528780112840873140770541268031325960231259571898145285826210044984351042506266751040056927141448348486723130329303413798477271352832052001389729065827107421574535991922792794048719806160913331687361401504678404478866988299240632467011446900298206954103717371081503852268862497519815872657298768342744596347007770206737845169142691774648125333463638730168299475756051854894423101871440232080012924470752371375030684767023298366134099293698186171307050926080482959936140028389921643396061268356532256443751509247045543135420688427460295955962102304595700965816305274516903677118116634334717066867941551746065942614080627800120620431292963097324621101847183022162460551731112386183230734018246012696209335505241144705610106862457744937353475375557891864585880610726798657808137108965290301534588712023013399521452537665965966069515342639395853029541707600769130652696676371387939307525692465419850706260004227891820921500267983809712551011303345614913157866559699970759448380123195345453361004072177785277653996170917353210164675003354852953094620943699394722703252783611821631701799509205666836142662751444722553242965706956218915510495760293147453190332330818201768869602702231787360198261385410322422022236446630440574777818351700308957598889083726013527193683675713117603957564177333700968685271564718740525210231860781492200270424575303279272298467156320001645220121050598620156371552400208278650669544710352420372259205178913436306315074083395847343422244551780952650858888385322580770314412879817195043547443306582449128540463835531371733611365567297907860213214120418970857101921518643101796537677948741603280852671847472000695752778355607947576164679173851284224243571181200872654154251424654008308247936058304880233981831826819312514111087058308944241512910507075730207963732851352462143322376206204938216526958585004385979270999314090160602502554946556972027461462600256323502852852933501180892698326667602734333044636294315499657936552329966557437204768730477830278724587109392636775160233923894317620160601466270230353791527901188737164263175875533347085423361357550413943949009133717051606663999553418924900977706087932382438432132640151139879433338976305587391201662500226250028877421415149205631911637068917685074916831116010085414551807159607753396696588679901552232619470444024359423263497502729298945590311691129293386953296139907932278645417522997434084771672837927346246583578401844799401784724700656062442214272849666172042479215211413842475714948804832516908723332913427160191591081744790170100809380479919700351154823022972934121966707023442820956057260100069360382787698925332632446664736652649981618422200221506853067593715218600516078458401884938501056284056581769632482395250546415423179026519663970109246807348435577228891351252615109340177244752075581225463197162305264876780765903006333500796593813643856339757107581363547821614601228182262068876664524084016970993270412551328385703391186258821455478455611007236677518667695296836658925156508881310555471025147248153910499142632330435816412466087748567433499881849749120349077472436612035973851955993698270189199711855641131924994381530083387738927346080699707027001117602958007254424394075178452597680565776229756141930021864658628683304056428903457746845505199397381351093638241453534265870258122173200363367597785114588733120445007691467064782721995372861681407420297805755378544698399211225872549915667673060423147191563318339835005574310750529054258704150005674403115138701723681856727207292346046773176119398520817166960344052079910790387259843572861193883632620101401947623671347861831973731364672420757497678143762273990908957174453322962477079826636811947494876043723148222820906115847341430752290739307176715003920592515205337307243491616885691419903962159615117243586699235367369115854727099064615162752120545306892936532455463515342005764487262237648431479105247479196733070493507832094881488862434244047134621509377441222698186638043397713325099367612868453248998164081892814538393725974283252786724526342239804047127261872785749918352103687257072239400303076645720157891767007293440308804879822757344312457102580991404878533642845224050193884131220161911207323478022063493955521210430133718251895874595964705885938534784094033745671366173077048083222904011489141177824601479923016927502493420670763149868801051843023613107167514179363962358880752367902278039363298227462691715910252907552279446840893552609274984172867962821472843775117041619511518946395464122964237121175701171982011849333874276321266317048381308368760209696505601993555712854657282466160286927848963192661862501553905178079236113886490405068504959641316076670222772562098102677392338699545832020437451575973988522179113354952971526022584603506421481524861882607224936353740076178678929721053205987637524456495570912495918805389715423815519177333164892831707136147422799212661301886879497091341597058499140119187410504775069935600837627444268659622220363886581199083835063587652947323287280563179857402759109536428938731947839963613603145225491030207432346943554579513876375928349302071006299536627003580329193234339663460989207479887124169966367933076393602727632256150836106361220300392053746545082523275873280497793312072187157360073003792663089857984803916302899507564044095409908405287035552117149529341251748797293902314463652744419102411827424256930921116528986868269728151518144166072767441927463625903011203789482988874206680978464864603959046347423689059496675084171078571866607547271022716205216653365049551795286706971119402431453501968538943085544008783006119389170919911869666766269894260676210364284942786235777026287737094020925766434070420712736808660633017492844340433471520239494023512366108198746334203629314594169218510406158340330338570073498228279253608221902793467393005001251752838342565161137902687737906688640154396799059267069162196239342704645242450474184355776729528058164510581489326620658758790803030225725008986743451267000181774918693823418571505874205951673303801716759721524983769246314843907657565790231111550984646408727471608129357444463981993966637740163188220342260630874382711354475369427201342835178532378796229406156284708867837392387907644690031259044086435916116793393520812015660932598986220543893966368982280529533051257339404980919142749894322326538531613839631454326271123377337362054262807312204741376220857935227827463595876982067162635087406444493870267300791401056349786800580297309289868281523107101147220330835667920702222927773702772461296501719215057402789186201899828819761727065947162027276423762854763657193803525410940632273409861516713227543502196515249230454299031210584383860578155687298448280940603349674979884751230208687360777485821359126684764293028000035447442417603967065132688247049538022956023105419410058648840729614453016358597298971304467776663099351303734785845596053360147549296020712767869615303035195620690031500282484868451474826639706874860476572511314662221382834835624412914570491413589784367147717653429222317444219528438780355457385401698410463321337052172150036206331441871960450380284657929572678686263350614160153568496230394427469018935762488815355282648660795227213413291605242213456844499422211379193308527030544815016631471362706234412264307959971264173763807879089330360717498172535840361213266742473556250632788683785615514878775643868633733097216178330686246871392002644535527667760040359522179550960665498728033884331244826565772625621302797395159824452368291600585044956467827389873523652312239957245987775327515390980555880625651651729057566712003583436001578173797024783615618302711340441245342042982627974585607881882040136625598275448893205577253229876073680664124580379423331537947705396864675667528899459016538859781860592180678396166865796299836768691233530933068299420077239108386740147922977688436481076607366957633602973499486499741403628681007119551107090908124349057040955259212394808733686732996133484731101589270711081869403590957396469743157253138485924193194000939315619757693421386003191143577541891304118833172854388601258014213112929581034641108290003266680858986766178041953762999440249221329411266115410736816676564330715732359453246782103994585517831029608891217718033652042609149612376292888709218508617605810582130289438058289046248159463377499069337180082672952968801983899722127711384287091024058806111984119714442109002764045477819958485983653230865050569586769031064449916320590983915801356008244195515189080018483955766484500228962751226833966506310584718544936204418723087769641363491209464594195053051193360258109802493249206470191108564999151753641999989656186212269656909497566053920793735039817202550415496850679412845573106490570327524086855135690458945545612350195908275888181339157791955059479142343102089129421052488775920651942157836025186265418961250465421125384633529202642497676872818701014216615281871070033997337450627805537957138232781900841182791629007094750699648706861262505940144557465560845655501555447638905642034507759485752306291924322129230465991258892810340498129576943954089002021637470578290854452044616439238581052850717205978598880017097508360899170513050075489595958468946563082038536456391268357595769011679300316729544603217021006747697608633431428377429441823690086929553590916782456754269059050694926999014964002708189344564776600647025784820438702188904713557892177710674909732252672760908441579034602491675491395970471558570506194072606771854779845629143076582801150519149316504651179251846955692285171143661909198692240827123937055865902235321852816594751411281531941970256261211589076498732615461223878684799222899962529951568927796501654618707108641355119460335206419565217364269976078629424966378430273915513298370554006119808033033367673863338147131144149226015739981615210742399613565662070719752222233074443862147421194808417894892400764603976509060954566243777699441462977311713697384565469517926741144454077839145903157631886470930613613258335282272576226835981827170690577051730753947650790072881517358943092191974936455018117143071981597045790817623517479719786167721431470520081558422037527851968061382595710654681217100475944689970285561271160664962595006549297155125841274855807894547430781803698097334249381030901732240422925223324862117520668989616155041356808906742777284551975181410814379391307150359140736059257738687897949799449317187430913610698139951239767798718103205510263785205233672934826750981410364252069877484592712969667982641797785300427390230929944713382420485094730358716751020112559078282940238356832529026974296575238060726289809182382989326446439178337817162882243228458113011433847901917244891004068901913297702168885590201146173852645930376482235386896944084361992985189412403806580758182075565648248287655566549118752583471173240233800383715599958708913292796687426020041457808723803943044267509026343696232192454710367074994601848684306415488652140296405304252202747739641462398722711281871591158008600036769193662181244058041881127422760064995839827113122220697396231876018526382039176432754078152740500387538661439120283957447907705590695439156153533984010572598457628725958305477998975940989334579968249936506464202440334871212641204033751162917082969586445985476663546126387636396147007902808379272590965662570676644835907682241861140893548620312487652837098035821535494987733539502606207487654830930884889237196135936952205138017802875204749336403073335513237105425070056568011919994845256725405112912987848320029909610901744598019984019473001315689997717216126826187968941493029190442785702826162436528649426026952770573475882729063478936943835275811336571975930224165837387272343433911156427632380438927819580524868162697929998049325523123218362041642262653302895651810563781189591260093763724319699691856289778042350660863964239319235627745143477916555578464806587958487094598174487562636478670749821345098830930674204787700412051500663614999559545522081639678048632633598474475095067583123198148984218147044357169245759111733089089232781314967635209663543202245902249533629693284333017338460678663467930067440794646236277203519244418753186784374620010191363143855817250219564105825302150175844888053381485559654857400551977467336713834077761213151723385677272743018426898306760097229322931553426771650451930337110357449778834500288694516362157479318552188557732182518607800667418448115652018106814315414135940018718958346845215583423733978782210474988482635204644694990614209839422382717978027894808721788778719049616678001154375804741407789691771860171354849354959905640925500979278392479983264824075612192559525955693742197965505516049512457705085656817125336416902877800596987790621477898701836201428207197051979353043505189028225647914252442653886602603416405505614291065911476884962322298714453036119236057115083119211057502282722624912944533025581447427131297268253639629476012032703487818543786475502091083842665310327783115137567237284634452750158834353599575530168105767508906666647168815251766236608450109218450428399928726983152653461234191733753192818028674964353087059249750104401548263688982559796159480120547982599951958967215896102207128316763362163543368123739361264561499075101523840027639478258293970343858844958387661701071019954271348410270678027299397453249778921049191177699251160810300595822801778374169385080873600360160547465910799895420020495929617185016225685693780966041861179895120242599019089324872633233457478640244052559516930857097084128928399750905546311307181667774710068157077632273733544231227956643392065887660853747915134358994122404661865649466571184353196088044713775237408230364411282706357694944208733177890107580378312098012809171601170226341824018045467866355850795893217722910294595533028369712496157135443943795198040631218361495224079836193822461910379659471134529527778385170073558437732178510697074999861155177219191742115072316524810212788384722632564220995157568514012971072554121849845207707991348847629693199646512189248052390701608632813477924501623306132440056470708872734504035928084750653940914562781579208510224906541257611096575806387507187490236854360190022577157347492563131375516729178664483406777375716474451915747711256930132916054503492270227310126766264635907811614244543738595530374138773241867711657329248052622600415046091026988027304578431401730421611595768762114972127582672158515654869882277443091108011962593084109437956040993717963963982190266147392101402121012921475551150122253548556149957640794262637833063330330995621104657353117984349926521389871721597963347649122755464657653654945579028071617910139401136949492297484050261802567898740249606638799557175000941227195796437556646526451236861126938313535586710521057107489013030447440290295864095575417914533014835539179559920673410110205875810190394903346878839527850361442360184859245880837533079495117362016866138927138196224695819688266577496836201905496571045642182497075905586819490960851954675086207894033073190784976619607769506153790329759844922395570871566707336854618498838110700847174461984491331579642889519265842659221993656655486748446840142801192558101754099279311198309412939353898799219033118614132631178480150091023782961849745255516740043611426985036205466926013122305892447674357532581606985094538881308889279760188529010044993780799311291298381023229984231253709119411767963069335161974475008538661130745914647889273586762303453992777668061359617970428742255645394716965194235089023460542893000717842273881417209241747657272412996909320552019143445433252875068990155664388311829726677816887454217610138013262512305911216145218888227144018067489584741109864901909916252744562092119312262067214265861493693997842545157235490436559564465915415702923587829642578755714808095068909352442496226961141496740969701562775464870861472179262151499721554197161655842289267170900588351326366699929848358101124195081895006207591936162715131914244648837490564154006679476862024602212190810717480210404771931604277965866628977219069696724515480489788760261417311105185346158271416353610904289678171217480468838282524511734654035688061005427447012436786447716454820851491819135715881471223959557435504650057332499634664977647046354183273320053565379753726339798868974905588671913358276439220608727620844588127520039498253935394602698870407587729841936070411707617576218275161840933035205356377893259994529929221952593908931533975822671135780472227440776720090724338015164354176899737376914008914601785267036852334940913627489486051445320592557166215544779148073345272496635685945534850238502697302978141407144806702725272224845619275105151109331666932347057845552521406952621110593911802499712609037570016344771812954882580574272606681527538814008780893757366074483620625559351525470591391812561871886287988362835041529148908777766175423859805896815914667712656152738078743410983436736928944382142390791597225668025406446560399744209578642405963616498612139391663761669226957832165596693383047310968794733133163649511255873862519112607303925344976592697271191981645596013326262459761566601880138151511084157239983098343361549704721420196120875849858543019815944969797499186993710133372936019725429963314406803624822407353844791806140741341245904950798481359750925502113483026053007340006316710887427186742150761062042311052781527241053801125638447065201320680930950366876098252500149815410964500833918120676975318037930802393215637524775598907471799776321880169205145139516534357336975061023180764842499066667162881442446996280288172799689251485851067722645801983306619671916573903151234741117179802670713508296956064494781699759906780967162373913982628962298854096501746838317292892725617589776447445915419815221854861297395344057289526287070527078533074636977758991168146639096025861982404696163112775973924541022206053139027948747067628485350884577041230442204115856017706587874287465333146841219830411223513072040603158459257737903112434619644494826077373650448293870163637600247362978379486654221493958787789533077475876275195119492839569229197077044229085989198793371643196520301260958537381280957503801894339954453234723128217202826524956823663842768415272021436464146902965749790272445486995544022396629629124049452262181872163256105801441904949691572727908562229052167375294986619678232986912024781038724952019316921119413077956109860730151768844953858997344869246099169102163139306620150986211667826180441588974794256459859077186894457970455745362159145846484423132575015790662796581349977846638256337941198148600829019842647803152060555896775026910004415843986764357380290357215989281892606976338108695705541889076321796175938517859560886864596355329817212197504676127888671397664074395016773674930798491601215548122089527066899675030533355452034872948000062611156226687547493785534829373567212339192901538159417177385485524926987185776638991439586028998024147082937569248595352386720915040944960084445561492949698359631348424482879847356991855858825973098134009815419478591514050857132878056679558978805368419488653337207346069243251419080377551199801074778566659872607666001148914563777690508811826480851660387327169893206390274766579200506285049380196835194549026868187226591441971102599714933830312925447502876903919623713008586322724657267689878106026105763544349720922049356245042215025646383562204521057864057820485551782791645586344123353882718171564934006358968834376279182387433469050536360658750959205103493449183620476916774919038536854268082029530035352473291207452015971056349427002751128221761471959011170292787132833864684280264990604918782578600088456527444383722128391361543039581880610028865834841684742612309733487488535164988067873906945418291349954676732231813302351035724406281477593203565954278493889243415622195949101357664097289655402418623856365608471891903624302322553856476764253995059993437700296109397242081762160728645397809007495819711120964341109196724400618153922874114371827049318480559332963860115091937627934919921692844040801282071042198831492419039245158381660647021441685854585153776151017512831442211006585312895748934640449038690019352664683736081762431346211605410468635939421013755629817696768545441144390584033970556925683168802898417700049452429991704247960930331713404990130595713728399143482117069605595429856173035575218325703536893940512722034349371178216731447112542086086405541884763599267679860211699601580888599187832063778200313319712004117021644652890754668537595188487892666060045687310500399506286560340496591224774612108290889678467142152651969800793067709311626550660687195990954075839742843712436585085026998465803098383879198033029682892096923660096069251598903461141325085692123823054728089392787187241311359579006607798359313411007019539006812680503361257651616481321058017553745435839459226310305260149601767092600865992442517500533479631540554523705538815921170313333612069176637896951291465558140500661449961805252972943743425092976445760205467994794453622565312681376475127469915968198412480613487856447488562508112141936293483640474584533378207587703179647342790095427219980936694986120821230581397955104768432007659135703015797859100447350886381258599428987099021300499260668932349259512536978365369239499866210695151112131036433944597395255625935608646965214721326675978034080651580750108909381575227117517890527315327104949299424398613273155903090887757918609883501620743247107763786483912002357036695548101858955696985742593745177513930951948808771353733130423498198855810766267265090124057001454668104063769256151670761459463795753294521738094734657956099565141655110889153892122555851920263347325548938365203248360657051969604702500896233898762911504786060319625093541199819991857126398769290552646324039819276139725228609252278957816207281029373458099918790097702536454881254550920482159152053216143910834625862113878797618449857436604453035389451747241254707070135652948395388695490444751535214144018681871472208927609859956709169266534541785690519572223909626010222875957894053976786182772151433260313655427934626709436691267242078944587652691004825697667272649203980483740329782000270105579005698151793255866104029247037324313618974780713507998225885559848397654976120579509486024325310808937848377699882291584083146797901184426684335935918241905759109639052305867288590084016356331372848120727579087548055761158728704467784753282522786392415681610562173754664095730159641036003129449915120236698334261455263638498992279777965294192296528228788501418292659378077807899842361514725954444989400178708159803133729896835442391468862901168262714101647014402316692569561370987325971266946540906861477690152198476726593778786163133706066552601756771313319157612219312763145263020523779276543021668962123679753481042721252948443524651975106361392597491780000890288002541555433738330946693598981768439145327523435358609093852279690467000112645531546196187901767478836091972778992669884304369408254880693794897598709728801465233114197616009183625221041522078707084849207755891522528838881444792183090800504518736823864394885731418936042009164681177125928715576205576917002815609546023261821202692903282619181560420411431835219762399729979039816584239831235433625336082455967999087091105875559293335359733238822099742018109037699039010756976745759592959782959125287233253247760838991017675808697560741514744322981217579371431110803206284883758256860384327054839866566133504677765085966728139078281278940372276280391892788105882089049546560750073182927505994603435163733565184290632283442393492820601941008695165908546875071810424770014535310358583646129142241733912739664874595891388840062237807348411027837850807964470489924928288504694520997425264986311051742418259096376082169723548237536223438879885286049140868135404244800046483169960881222409232950596897105129556589385043747181839778057880333774047982316103050152065768293158252064891573222786441922191338954093270965540942843676311618090036391879247890880466366863422139078073536425396240298834618588808676082183823968731862935506627086317143892100267408341880857448392856008593740651653615167356489689219925711036501053588763431453009878497042392474801420815464136788260565265770537366255213558960037001223684060854015886477574291035628861316316081945586962479459262691224621461107289423626870665028279400300647019640653914177120011142596304404667168380528985004524204019390567286261102203583378902547616280849645172903520321351611958486625456780308726378167332024823843003874652064617015781096977414410629481953968148663096678576504279668249519143411527033632986421932387209347447240724055229419581829844052840870291215216137576451200082781555458450479588662079080040955349998785933912653775751457130786305542897720980891893474578215389691404682558336828511081465597121042752958557291462066979159278370783718668722228809713103147517280816305565045659208698805914258367811369286204732329501365775768439009665809601640177624313406113051565645380351264698744491998481789114004860579017147648406137214063329119884460494318183393104834544837547310547664833590860098029881927583269701010681950454716688193635672170975275432740312932705538513311032325551335097408846544185337526793093014099767035571875533387008907619116196850382913409789053141192351915417734368698670298538226963183091428055899178641786727328399824664471976682940655452718749837295835693198700623676052517622414289915822529616418003033312142810296575863253189737882259799634079965328525772791731908261100624659181874853431808164818153134114030393113872597730628828014444685418041783631804081480693032431152709104479047960945967206917429037520053734076855521371052255344919591402699786253357782526793041809390095880384799673136567975237542886989997076827651430488114351836175038497669633177145325695470420008297888380862343592258016853137215072223435139766593599892322034159326217686264594956643250744442186668965421523212360475105634205857992821713211717616235300520916271028565782509560532139541040364080779478810501647443201048926744675841237781808055046694025370523981740744233810161524169301821829836597460680990187644824722329917364601673851357214989627590987412384816302091635355907624709012446571851724130449662019235616536400832102925835148103614728204200314205717104231543265224918901630255054787384204661946020844906274846490918584594353802711230433303881237343171415616255541429498729177575532085297430435062444463589615792118599787223167001542257706275609503250896867201251315775078672158449555334984817537773069249033647554459534876464675348652581188254964901224375844606421045062642821386224892873821656316282512176100580783584486578787061575294089398180534105226492700554215057173469858757531858063087434939844359958050929527469904540311121570054692245046621953187687081410321351110903457891244400346748934352297528734387288790106629493148451921773863361159175526294751787761302808305632642228213701093487396213906316791886608458061391284835571084521948271723220990476856373183769368343020542617869408365139917342394327632925835388907046672719518952607468492979137048785831830662905871085459986584968086057119594518078935772144604396797322508843490930074471368751187638389686235723897942033935468988004385990305704101427573519965184847808490681158814816843224851314630331918979287031148068158636454489564999868995427393733644824461542503058046521511313527733927556920033132721134532800059883839699806398157310327690988335400886959188688006122608728003991756594953064330953541541105335360310154058333430617189814951519675508107532155660233417040126743576606571760110616976883555620160937385947093248554899909913713106133407099061129007270234803319000028264337360923341413216612409003294138711407112786991873892493196439438886428779102029160394281454020147931153437694409266362149158074759069340425049144008380486451338513087905634345225098961461339416585279057190418666267821611001988160425016703916442707463116220928859124626512607613112440378196453293674575510568441150982662097893153730301918198129555605273208207200821085548687991771718734249863476095958005109614865383224201721591597053519803225234586147131530533430473668917655735920504260841648925340963492062103089945708164138118695900959098654099843538358320049891063084640947292357947772913684858694456965377226917228357419622243202022211946194414944260374164351766711662157595161153312901933885613379214296610366734574544361302845764046476463763617315956571656328932885606442136419592035583682979228102121127624449759440618235770325144032317700654493677155681487324593462901709582230630537921820038456656658448883031963142916017171461387513868968359267798761696581443762227607355737697957450630870415743122886149470666300258558463034920536785979188602162872645434431566982800211980324930262743772456015807754120835380345753328696949844741690133300101072637963335328616908479638816803093439377866903310302387624147314835919418017133885554476760998311015320774649631839923555319312551973870814329694726545763978331162329243299811202096073921501199162483968004314933075876883192225548810427489712158392958235468480793753810349209845693145255002815043566332796726647997810461189617865912548777848884383090368693948793478282675387469380367407993912833655896310009953122554312197200872551777405481448236159157544957207860812268383138213392070968511687353329358301141183450261463774241961968971350375297523578442285661824206883009443090554600647223285165727721183541153290471570351505749383491772699731448052861127620908735253177607138691131010869845011634332534114480700122674589293844738939391391797995564959848072001566949511742747250832259869930863186552780871668941078747458890122858140901775247019915262311906840754741657728267672205359037621879789913273575187337074929056783102187465929949565043499063070363815879612546821192975036056248442354191538761178177069040534391752775108986628087076683367782689231704116154933384392056815367159710419634587220386677811673400105849305267215271222488462912180742567904560351855810890126754204994373202987888082778078148035485506177630290796784038644182797883831161926065903470859050815162886703882955967598908659318023465774747937892069809049820616100705927065206143278733565172251974389391883752535506230077888836298110367169549065826053526556586406389777891023118508493245618718354770546831164564462080380059783499323648462634969462057847190864307339171248144043127190349918212287591991752313728859524134924900448705492768144814607620992535700086781399636513622829369363692231357855079248986621864013873332420215707015079339841735663201920759024595025035771883274748576817976564550977819813815832008506996494486039366330091192930847814677462621142591489163146943156492966547707644725239574796960035466178712912311496832809882853840244418352414092703454329198231613730125739898348963428385535235386989637346352205439857796819819593588432912280189593063845164287379951586235656403440115570476239102214879094087535398452144445082035041923564434164292208013562022805748316230873980543106836304290233494942851520466071003575708367523542526748356989861145242498530618623262276668661528100164548220012337232330082047810734793389124088969340672649668047217413242433410008927123600789595306252286885160883447250283142987097222227175777219327642467030163415376962827900752459254580297787771323052755447462735418493572734205367101844461056610294917186638250324111458610004790868625696355117617696246039564233108567301855342925747638995947057035291796375469116678468399771552931692033901567037220310372058838847982382694935954870509286252213949934476833728289338054257495813205858987424409670706293578172325761034571644378233138889602980972250040125314486038487298991486112973748845438026791110066121612466048872605843615785227534619626862305477448557386785705237210508455955569206852547029314374805776935483770855206085708659610544719447317640293550909764515682403134897456433929483444029029542034067649339072234960164918754437256266917050398936911995451875995573183509463977883600533183338568169715798324463652401465833889887646813062905333286175913285919046561469790493975244852040907269603419460085115470370898270147776325618566034012370238776878858055926292392050221618451386081108113024189765695620180516423667328503533215707971455046808977054617809758445946260705432141326286189132352750534025928639232136060881049121207323073917687250807575914268716004904376494225493601923307648745193995912048508505662028783578510789004496313410514380517449606442459235637530703589129293992456742474311291973207582783983690922282937264035647688971389939935965002977227047322131250381893038526695017542744413489570770895982304277344158553416672277156388781849413770002744040667940862526953883315314042866989472371828274649068527138383060377942395096411921804394106017297721213651659559805218716162619170136001492227312530367873102991591568222877089043222030219038074346845639975551672727310629183654478458136752413139665302456733029616609778482643908775403871595408714372575914342152514810401550702374806360600355528407574591087081289968142795232298347942271823604784319576517345235094489275984356382586227656051181275119042694327504308147109549713124466872977393502607002818193172219014789697849088729007010141151806347338416604315790297457063942888015558538616007558086401785297568252566529990252426296564293162974818069792459625597236051384103613700576290576208901166332595967377858082854139663861340444687078580365345568263041905025536550386814928889495031174290168573430300698624692779036191266428208372330984774895973078710911959544336024619285348230438363568381403155749127473311341764679070135060180840137620858405882035391111437938213898114130981421968007626037138096647302087081806348390769468545678748939276832488770090413362547395172069163869913550167425226924777677302618564575282287471758422163978402156247586254095477829861793252421945715255794819020616504913573823542242852570068093157568477677102212626960943252356402034239330964597103901031714708331521758658661652147236935852168945417325846005697414181537757204012069826842665973820107604029291584658787377154181116618007115667731489904097069345694374663588537602846149443469834413398044120187178789408604814583645672324084806838979956722571616198229393852541387612865934884596445138096625507771250822087008243065355269392391748879950580184667415838950669148272804562010882352852116357932449039803484277855760794997313368481450291640212314634852100655592177009645977077838013846687867462345467259514404786280351222557091191925412094506195259936305285272466069995797773593655254094170401317945953823040042818993208978060569099574438766591636724404435858733976564529384002745780270793033653834541179641117594531886178254078835782525780032504389952932024337196550460735515152178223395564196242571423377549068933660180636238616196638852813721194598108784475564557892924075407490101041652844102961262796135312318435222753324847161102947460191502871989957815718896359036391868003201320907899875242126453263822492524637893750238906778486563825090939381517811537317449815480733562940944298185340167055514477396535128664866749439167153521703543359638527277417602490821648281019022754410509329674024784302722382653453724711769254476366724014874408650070375924869534902034353006294369820327749522092320720793536077230277894510713120206374176256587994015199034789530888524176953445543049175899081826223423333279137492155778668603937116809276085822168317509553346885261377127485195248217963215843146052084977995339118543233739620857379145060676796949907618392809898203567078060115426054353539410542861733884372973062649876684456687489561812042860580794863538788972644086872551080094821438575898715885133889335400672352442208146941818183134057813770732668298790374468926825273493359753207948997764918784344766891501815113689930769389962906276102269050493510556061469377048474359003425280804305660537652348211216792134338793922039879373295562084256640535269036077231864665333608080887707520114561224674821417319693715456360798555867186330939669776486109477117936437699249591568890479039924746334054331742295806456683252860844911476431286180277035952990514465163503561301729425178384151830761409977746838838674410504980289460319463450892168286612502668728060464197695751593007015676859787096043123368472629373596877452922140525186998107683064137958521875375310172489573984460222167240778955043421600752844373145066494728503872142709973269868355306552060221340375553996789573379864676903697953743794703346886212566597881685899443459696782692838519563461383695257430023307495541236980631756072067723000737135099646992319674976633992588546352061775052633158789564513697174346802413743618117758033031692112700064047910553356052963751292832247211108663797807579541154986801789232750487533934159158682004285877280656428052411161987916934946555023085008339040864079249760000581445432627910393408669924420791478881891881358158206235913310657781007206436259747245648373444028692958903980419663604334163706854170063996290489001663844576120454644794594929856893990638348474409434427198464360659230276098203780271267552681726410916222691910089263601362711425443339071224774740181373247518386206839246457646279322214838610173569045351462742918567673757866006934805116014642455709834882343824748124296750421648566696233037316829542651292255442828648048299887377941081964568310926078801442454127740758452564671815672936161799150659036733667475782867001448507776918586008592540129337111494440097265926012247630305295217512635978324461920628149343624753793657254565989288479192574691892920411757330828404360280122768830330036430300082553789752271396477139272067556086678956864638541209963565231350488848621359402116803035564891111911612098485165726383238604399549428092353137271002883854547080844027449105689080812592819362005891559500236657946669958767965739358549534458487881239925314166745368327168914592367874523236951688505257369115356138814785656373708240891104784161102763202901253529074939651470705450625276079049292897979415293825991556797330661227512525658933049471799531749862476990726271291092518499392784677639063217473748391879628759933837196542487786942662660811701065085620846561447659371658301923635840919510925785966602684885183780021880382034717318059467730344600403524041086346032433655546380813653758501490485122136356029074617884249190365243925921567192337167142772952999988471835432298454532837409494702323965464218499662488917616751477243264399864662009115576433225733224633189899423966615976338125459682464762629507461912734408655734957020304921316328394703520668390048625308845883348543382875057943940937902025306810503583209119939907905309691075986057019794406510130607521499559210924688933844820713236650789350974152471110027773123799220013640968194060098228116945479269705416486185832273698603779852418605127560840063047551494635478431527757957942214768807412615827033424299084372457640965873015424233409332061306406704903392886522866216209231529614938553077358303443160333947605942643175912545555391266355778342955671090050651604118279070718525799256196527639882009385046145633139366380191737054779498142581539769013307040823619842059339183243195424221489210670878991976319976355201425119106517437359657836063351221292980155294884073506910122901466338687192991733823813043174496191011381387956933235685154762931945793282572022231634990684964859802794463447894932497232367216511100444971173692412303029189759556509983212082699023247531318273794467746116400688027918092157305562089416626116630124068603335750621416495889650365545847081580508781967575837494510712058492612813625830223481242427376699029959395331751044798004747800273766347942930444343641756261674077196618901740666624311203625471494545390010184490671095405760503676559089970771030250471413436599828802390395824698397071363532680492210334260459282387840551337781437897623596302777627832676134401418421732690768088101229326397117773587080947342165479425872076489090042571269290170767685207201186516364583267038459383669854801683186469546158672250643435415958756234324231579098467191802313874121087788140528529509958229577455778950854404888718683499368735554368038805900473663619025762084366719374663065001069015509980986827395633092741344715712372343785400096600519933491148630746954639580267844042791333674912675215134446086710228789356169710994073422708615854118579505495902392994908748734245246452355510243890980535738471433574549449778856468774470501783590745363543830544994581479892748184124863582536445413477398026688712788683641744088095237389009776945199786722077426186080909145470537030731094660395880828702394553183853992175484632387445312561952445403928073339055416070492753473718423613465562263192516626015689923116525060384841919506557691837323975640973352138617366145658891648204962088321677326430550184951243778942969611520204568209034280915051595674892407633041183132173229932715547835795259095849156738562053356155023747515451327564287427554694967601393549373786105161421293983990224429692599326103471270726797669063187811273215006437050772990199838663752538026413531632299050123857192113392303407175784457724445247030319744618575506523807010002834902710183194300148787590942873617703050645425157416959047647794302926981345917777202520698734031713955631916589237349055104450087586286844732214000352806691780065932494076925462882236636674414780280558324200707213900955804244547571956598239843336036718435469881799887730270405301046107237526194993313204424221867158648005659630205918760618171479473390788160090117824997741061468497292139425947848365977901770423999031577092671136600591508900024674642312890346591634965827903027566120073456411915734273649094655611160688079454450675007733423867555870200581304662532245407565563264198653577633265665333242081630692418973788818270350705255750080219967990127940436243633933615286449202711664121687689099980483676054916415298537765970812033434933589821029392779373687182376629698168341989398878143818522495821415089161801374270764882360276513986393003478305272354196774129246179158369293323957557939712443830426782096090716592713068403497168716231256479797799213605326546715182474988255089706169120621189510765923919931595994989415524341657672548150511899673343494390496430947033624521982929512686229112267895398026266805886263327097776460557305548427768043278658774654663230530270452973474153280535549059799229546317329452621318889154547349706001326241760269344892510506980920960285433163701288283452249868448543258038520486057687985820568200277587988785385138423578949408584922599430954372199931062628842393329462049686107277515288903358523833394421608462506195560557945028139610740380487577143078676298003167516349637913940313053936569094529087375545956042607083877351817772860756199738160286132508529363037530409539059757832845352765086259098437677094020024596255310462952100592906679232928410259766273632821650805408176537355824006508943603997958991813368983532188700735131046679517883309836982951422718565934882317768540677541369508597380210716834153185515886863405091811872742051867226709660066972966212837538240740504934508239273862880197110230217163406000621929077373907114868042173866455570760868396687716859169973982980017058264569455703826364171527599898567527744449050155832711517656653180057315219195200233289657830944082718927941124837546501818601286545009397402512869199584657668925250513428757509222349960007294361877353650341889538174732486409775236529141499934264203741163623488975920725841743319926483969572088819633737710246070612489387163062897538433482271715340498859069259573514079717166300323538192798473110886879014445605847325386027612000898500827309545726880544199816274595143138402779464018473853790817339892115982986316092540567248851692468962712484543400200391202293578295388408075547720428444458272583034720918819757730446706317247404642122070761598718146006052544635716734067655086471547048845122972354466206690356654843431110160042643734313250252409066017853810127540222834919196878159771893750851335481283529611845992660130030406083728622193246263089054456262548758521207172614820637999830671195487976388371779332297678473171363395445662190029933720980696446742729658635921878366535875057424131621091111473235095458505697641333436729366144721406518474810300289413281713947184466105882692172556486251178568521705178620930718726354716742529680976230002431580738287531928263926732640091670008886090830788168657434407008588622358102482888345282323660022626954530342153014301053433129496840711020388495149428879674271694868994826986911194124678467305902719258347872951100718644253718631413023516145435726679871475372525522081795104112031293931633889307404353487121566479634827389057231475112367652473715949528911428056322569799252310666986553883578740873667717732099617432292691433943377600158327340545856096631134594712340818003057441777966125226948886283896361040111811767584919596335877842157558813640273922964002996629347162026474782932963215600922920903379987219597836825835961510449687311262444259118494864302358857365584086373638995399990446165662369431191791573270529057499870983307120359205787985681447455422720413380100678052672689892210167935794999819781389842075617181554697267568017133146484172217954479643640340790204499483525205092500201974034205186166585315319540030701788748156081450893584468276656665519184928366378678879356677943771169164568225114771407764985359889617102866843546743519367569719858005547425870143950661373298417689621405939132070817222999183037438533888219236091215690952284775858855667007621520147313273652373107691033764296596277352265439958351911563218561826164404810359800249078899753183927179997808602202451244023422718941026682329114627386468242155524804602452018137792517119960505300108657839035529659446501178996284169151084110119967275358731298603116748885565200998916633970720547355340854347090480543517133535002786950110620051275215359496948800717162393245696231272456932024128739418384858377072916257673435426529855385630080012595134935239212978657091236979488840843660469157161880352766165725066702518644472096954812763692035225896200867963069388347014927084767135308834265294701849319101420257513022551743228623465139862504623163286318738469145151789960482450056036614847342723475692129531871927481428674165604942836107882281660797517734936013978884306666006616996961948952995458543940359807666657300357837463854130076118089381409933772204579654569714799131700620810936349404657285396104625822476210159109014340172687834017581509589340592740971455457828147224131573080624179525458525605794419269537352710941725112518883789865642164910345491501208942439889996704269119385278509409129285938426477580404539137730345497825397037779103178060546538154966760888992853061321417259199726703401354315901965278185555308815995257293525580361060049043095772656037118888053814252636503944507083344725926113086797978306965389787231007677669482825220970186129989355375875559373166762557430885548137542296143771019276266700685363114978445143300496860928843746436538423317091236060531956977517383904566462768064203799828262638280098963909729439541378833366284950093052204595823720091286846675648745539589226737598439689550641163611360572650388532003894707032331286826652924412141271475754872158971101231695658570971026911889826799071509567422821208586208029167357785265941784841079171956055945705625014414140953379564110699895460501754219127263602325174959015412440182159349208251932402703091361585378330686162817604400606808436277508346218664059235944138180262250493570695183407577942186551588953241319665969762222346997154461528834250955748627728857344839373953305347311409565413210087323849951496330661122256937411682081389521300265781382351947218126301583410481433569056008116155261855686835359308858059972319206495399672540006469790255923516495760389330177580336458939628040091335687576093229574756185026092514367593563495434200518626199781482558054628408647357472104992171157904971262831204531067515993400741320574579111533405367333521565564127899047887477213073461921130609203769336489519414366036398118111795358722732635701636101377033960528479554036688700048739025901063663911184916615720691045973993234108308899036522361487965763985548077847324903147300819297859807550615753519291653174674183526669693209298556848119974405189511808419028995521467416324404348289945558977913929642354405676957816349625480422727630537913664225670586626993026653999512967756882034134741716277163593808293672129883877925671357445111861399477817402958632538087658272647457247329081261196663916666778869575431509565020276933657596997570675029679535977983792481965038266503293784381749343931881111013499320699856277481235914874284960590011044090362582595533800560271249579977197010782615884676874020111177964707260912315052633547093949763162675201580773248682776004487382758509698262559871987729780441901200387240829911117798528653116519374932113702787326867800179557528388149799132370632420303092901591764323786691058892056158015062841868941505294933398615082888892020230926841973238055844390741284213865571806348367601788697946281587056409219147915569829713404793567289098138486147391687237717340473162514542206918634542450974811863445587160416658116892627273983211608685870006999124627923205750546650994487544080468541151109000441871113013039805373186069002651729643181968656142171013369134217091940363969556365927222350979598808038176283780473909204538408897249954916424459487621871828405353454160358420253106788291024094067592167801666674500399537009426345847267515724299715495708402286722846558314885459481189774991862937139793881317402949060161446709842845740552501895993622716034112344546934248522920661955116637989373471558711443535369989935572030077054104971512607688964673522607556393838176029726535006287938527745845435427960304686528744090938230907365928853855581659257933868905009829229706648909759737307326163265137352447377883039915304679468642040426480573110164939448436165392618376574486222692698568774001797102490929965798672134745815361979059477521645340979908656695947070727812109150965044268296290511259390274619002360954879080280762233443526053280311078765737223015136194949399676950098209523175742398492198982204908348184564058301497261112672261847647812431201880743202616963374786180314589470911298424015421934543192826516566252695775255453022037608429922996455366641201716823278814253381403438960949535445124958315525344898366806044597661517598875364613984892896190641627532796203121534505304576921068713763041851912887633575978787706010237958842202425192290250890462766475371932084417600937154947310999058124258874288690429396166960339754083105834572589418752592607941090994205691466554450900534518781139877633084690784615102396997769720136373121465358928540290898940848752186212000296992159270324354740726120768432181696494544000025412965289069699913093793913110977231536006688705543857758527345819708341632509467553423822891906908413730649234590638006931989932909957852041576840728164717488566365514096091565123676764228030570487601982124420952313865867951015908374318605146034835659812067253590095684774934724225168629580307333849539134080997170928549714802407500495378214605644733032987322260460418158255596220727786756254653072058946366238970834881883374887032957194678526725376837706037333934404465862124734466609779047960330046836556198006821807252653624822799217942150379187503797610431658441779369155850900232510794029277088534975847353257400677775872911505103432012284750605255227848017320883135838787873103264914987109985619580970375362930083942692058969488815572891934724159165135104610404630571740118957921880834269152964497132555782191863719484142788137461796846806949141686956356223561662142840667827818781027434354625098460961196622564696928421390375940264214056144695296288521300274568600248052733187679604883182442025392228627536961356875555174573653153598911608570270352172873351235115937315980903405145689495194823492036675999112979056472215037678412239109346003972221386488654188855729425120052450366439768964434937381781095867819782869416349486173854638802568944791707264640687568988719417831774428409630496440670159320756537148403898586097989379277107010356304899513494155934298462948520129844415873534776956773819830302280634740292890488864130800847290872159228148274812980603378626091524342350765985170525791279137186765729746205912846334013887405009496887643609972970923613307624403963977771170045938190783886262000440669155623560367739759857754830936600071353173028970594869010789261137043917144497259786769346445911013701786729258716254163305084995010706984912568538574120406136590433382102824335757669165004841449174490648007656653828503969594366390744082591946412502268712468309536549437304385132205709527355797868782014375901010545562128194859009484328022362851914084981233663034392417154326844636547302967524013327864199260571548129369890440635921516340501071151870891413996938445382098598209051496935541433973569589773448492774342036572980615789352809736186124584874818595315838725624260638147365687195505122787410921898212708443994546542842697322808090369543251439780782095000992158298432439911585750539049063511902378897823968780833288709473150937299633227254126024558158031067901775941508808690331154074540871500525731099800285785369622990141069833276049863878935374806850690584591988063124051834490011784914616969336919856547463449903824967933171850527815436772415778626683731121060199098055192740818240777527462574014738976145290081996929513089722898446082980318554021054316152470333686675455445170442895930507696594269549480305066616572751118618403401940503790726795938642880617140169972506912864297004957272220702644817018774965054126068714190193676163687735461472050309612981769973502746124403451271496073114995464481044684988379537381374624729264830552352365524828559066588440208520392578130154853908041917807777556451256789425431304613674828056901268698344165179937081670691965716883907212174255899452299633604371262099908650928304614359560107000456743354631899260937448348357386457741794374149565720356863289718952454584691451092038685891627249008747563823651857880499645165150660389939661219356115794067237773232849826563407172803725640287154230826992817955224410241514066283416773801201658949539148139915277237149370059037586157223111306288696235420877212266974620819210531111833832319909030351018698853351443291412868296555842331914413393185739928679596875730738520932884927576155744002762180562016162648482196243917779232294530061396770730355460787372742078232343888169193248547203613866384065335575270663898617799733573773622574856279799415667894292531241223352740119978104483115582541804548164933462255492345429339128410706535627339295601616616557453059306384591829716370331278583969166727623042767448776162570473719763844831581140768941157860807356059004487154667328672508320121188542166958857238182002923974335846067210997985194518791940049832182051190583098396622872993332744559386097240789460826282098134206360845241470171527590401574257623187913615233117601799323463503772316068770482906065443148375626434989391322988920636980251937546242728801526382417724199502307502618503767453536021416516044376503785199065481472929692355432300393717603505799275678942309315234155569437547909796358602952733873236243954190695736183611379578239179238274560645059066221583775496511799849567904624247564950467139324089416691092950437393771340206788664329463429734190604426244263415838706478390373455129987564332263406660744153400679158879048499026144354771477038224304240475289315720024565872132533851757398098926398705199136984344725650488884778316128061189311149363530898573656064273777691955310149887462513280933330765663250715041167630891762339803724271479498810871267282564528241233853749284193356284489174906810986288867505760524081349847985274550595119651184100839390422240370841498099768025269412948068243894030968682282030113368469938150010126443007894685612070352015930202898800690714811800352605502558702295389945064584264167796179664935884069915088817541782173112575966257643824169438624317443299548496195597427557750129911290557210090313151992017334618831404476250328014448893950236068102117999103427035410299984011132285320290669232900764263937048656072762314924874292943401696760972373910994202637068318825580109674399307709800360239060417302634192543836431929367269388261819033833120187248658689161698788976682082954414986725633247633384097544872387455533607428593882649455119972498325458474940362897810537557047537754800146631806082856164185149329990334333466309607015394917098927804849444574401185830991341904443530587718011218663874255362169809210911968243941540406139328157299423280178960719216027458242703246113099445670269641833487228235980889734240915475931722432982238548716128910530340490547280631513773784520060157826115432190087706589085547723959452682354516799390396168007847529561963033061805874142052005127059270034460116345272747735510648727912552107952664936036772218239193353145471233401365478169142424933569443121794179026326636974508957432535722378410412636225803826450737201803786768319173140664134296062657569443292788681539275887936239552807009296026962882709474978040616924636726752272804502300348715535129802988618917950510856235908001966988100142446690264948990576248322036560448946858917217108060100528292616836988694713795441385366431242457506911186687420697275522529270174305019695237837508071753730771154636926130346556193781899096825238230598237372859992075233798242684656573519897919825466220948587799548305088259882035893076019905245961195747552389658410456472370550752380135644578910778372489177183400591231711823214460380321282342786712035583355135263599812278081551204282334183108902737099517225165505732502772142521065282051218791977162263375614500281578018985387442937373788262535518890291801906928515528192745578815315092718130168152330944503767040047408556240599442681931893906837940044005764838247529807581969658799482037924641996436747105564790899758434984941570436613468126129560189530089188300753563951350783652071593024048004247436003143655681929426106166877396665300487273987967688014885117701608263172697676061834494463466354829601227205141184564311299952599192949222042091395504325013009990868085194806532545747961516818112450472619534485076201061059669123986551710558409919431725540606524599952297498350938840843155231899933856160090720431098716153118567886728073735978437516245756511076192418873697572139989299400746073877525486729310619988202586475832666405416281495090587118932715074556204750685753198171388155283939263628236271162302792383981548268002220809101589141606877286847288523406594883569109368238292664335495100442042062083002126186118340042268511688882868961350944261327164018298861544632811137338152099377559084127681066611998416028085523194982768844995747512094414344343147458183696229220158693946084515103172662641767402867236988628863933165475295473672800343332465554358857867261059099094430644080085948308644225643274852029210632256096405845973042978131892342814123280238733047447856350664976045586641611921476486479295638464410876714449857159382939243951009773733071494474294841520755977627993513238605618350884593587919666466299105828622426861555821359506300026631274856055195572352176762990932030133297342814221411469746254811920751261650923826616896106335926455153191460778618104969530231232924469770785131317733471901030232815725363871471517724790564433635395980365005316801056709285842820558344082023815327995763657191298212454935309774233668657205876362432204989449777390288505026085166269371356792794069286568585622988457878199643045425734690957044340095663438795521201419225693709654688743142750045937279157589198944610177684706779963904099382795381485891788002191431670035961480161845992853956671235900252011115262025238125898466233366853077732483633543213902260689562094899183977079329111664692208240834423602484718933961284223926294858177392701179100729097093608253839995698962696515178999878513352211029130581185320209070080186050074083560294483976889625831691492710409666532655338181575912924587936452924424044026664566489545389513405849635925888463161434871381276485971574676301189205209192886473081144332150236460455141961609631322458914681416987501850354660835066020907691308994151771794469648716286885601347834208527639125061567012671616877488576371280798686601269407481416889984391983325427496726293527601707929004883391646818696739021593560414491635257718900769669249315352952013900987396749640479191695114146589060729280561884954943309456436875206136220111872911598500578612185259671175323100991696605847780476010333727320263785615576936076663395158661489637088423321408329988797095044018189121413034262001917872856808682273238728271093853399329205440593124142340049083261936556769886175931454749385468529344330122720288262433277410626889261480000314382910656334010100224636766176835618943985783074841170805175974553824596251049492481972023721456320550968381854064238111845102503193632156414774870180943878519357006214954042940410518217367111331182513462767625357954567554701256343804795779121193424353618159116429444368140645277948954750244728505409340898551104433256263121997716157403880783473006995116079721762426083704663471262822827145888332636721022406674724030037323104477567527017308487912940190347182138203082371818069528343767401343189730487748636400935074200725228924619725328317765377542864852472493182295580676725940377297584950482720798281808117055022854572540015127996825579599260912151224801416546926067382910048190532677310958883750052355634747500448632090342254221385608232603845454391467460115801689841549807370138319312581177736751644117947743188751544255478302417258288526224701291473337099599434048782912903510656743115239673878752162604977968216750218750438965692718178906591870165388655355458449646426502410116473658141429193948650439217522699188962066384835652683778372763738195877502786620490009545142730914965143715852105713433481867844495572184405627851092490760154230388465873671130501121729072126203579503784641635080136533192704919446545376515821578330359510667216761505369616231657884661726407036447699982793464348934806794442411845868217841138938136928937340661117628366958793219680631783943908342727057907984630061104618638801184005792387760438707295649986402215928683942762513357127581037355723359489936910237823476936417875108877850828032070132865500554600514527931528395434531067735832805194625010149024857000412475708054782932807019451337604176023391023302396862735195685960296372862382725119794939651576971548142637915425947016633258253494215278345577294155164504761311590973787309090151147306574053079903039557801998380226500888713097870581584625263146922427217108793033773681269851454058387667457984916968785716224803290961932613867006123994958613393386069364879043695338213033562729958976161717547520030973019470612594233252529227710251090296752305227926541076451807163008628901356452713227078151050651744184139859791499914882795675760404962985906847131574166496987153307907627555435953714171568628942411718034553508044401027851474595647432752862737183722956577140018710371204866341643854162408940783722662242624457008616378326499711873220272073746066211650240373912257969400758676479074447441618320354405028748343699215605824805927782683522660702431180401288578354492476102306119094864894902162002471362929595593934166310770035836952568921395467129925217361025381283822393913388726634534205226582504670392829605921118631914181807292862786121776679844581889888487704518215555364834032119486031004053053433732132839146745483843635260029655517640598313303615776301436362033808577598266292306827688215243608659110799983759629812879548761404186663331509056187903692631754006139880253092788581019746174382218803576718455343204886574797839531446421129841403725790271101248980498063774001989480299867917431729169774390644083094663255803910335715846792102943519624216256645402908911425609128701992505502500358291159494131634853986344767505016175508198917404955888273359330397135575243356754242233009766591688958407556735739008179260595186711147023288440197529222552025689814301603589713803724655356826188695529237921099582116515399078824672438960964622905591868071263121635014989443141738116556064638548513435654457825380727031125032276599651884923926776066262361305586296639988788452064466059197433860043789558629221164016822648538092724877722543703425465586249441253031307021432478040116706101202440685814409790019361744211820796382760846910015953696105910846411087340170068561696555157403306565159008741511621407943212571656500520816979260159099673325694510539880898984995735499856873438701171333776692377556149577683811421702967383876530167417556715491493098400038937057961168282414602242744172390167269386128930820872449292147165998236797517751229102664148251472600943368664432646956914525166171097931445235403718160558051718668193418198637044814951387405189283572205722716733108316889085157492342264959259583384138238977313947452901699343023870683958541641772292826252794955927121293491535114856297749865029194439165542803119766746523444446471211910184027264849666386464460796389511821486011606639139108378215497808285118748790979445191526548492820358103949443572416424758909006204492208104173031959853884928530465505696317155872423571876560623595996680766283699154395473935247475740714191518754124241415508790263895452095635149723585829575237651497286735382414371999347184502839197818437789431968546754602392969480838597098104683174894791365603822843480299991447859671879757705236734052434567463780593797960276293762553680038610578180052356823628820530029387006949726857153542324839762979608811002463025410295909445772906190195900152027591931890295949306141363132219256718411410591704198512078047796027962059276314489771997665995315150431782498715310955774609236525409286908350551942979911960174039468184752551370862144126791993587443960079332006814785998392744800600934112731102268660583666448383441909136094881021329623173168339782861871185631124193731009618030182107631934992469235026864696145066534943454442526452202856591759022026480558833080793061323863209162708771880124747668647269323302273140044305859070179651819800321777992295391280801404242377896991701149573443863158776748396159404522636198631638337585782438717734623224540445411121703934275442313462904005181546924766935368016083140703118834644976693990106673724375782731683699312660578462260312850163982639875739449049174405115921425922312845106395869189519142351027887219087954444709071248624224471960336235850391168564039940679126385606574264802386870983568584711881760850383082642585278692253068951043362717957697642632549210250521703388551537988573875348688116120941510732235815011620394650067307238498838382934312740228987025653814994635792903964813215663474579343289659066305391762348941467821757054360787934121971887052370942334613816685484378950516689538085158606010894507953807136699920249893044239255597944313281021419653002199372821823403167008395874903552893285419866235766586142874209787198260909485529869250687477729838601190379592423796562919001792252563772780353826343539272412374555050563065484763403516237103658038498757078730929233955649090721560320167636218132868178847709215434311321723987457698049920256579766051671457704492519787050879795393990951057497061036702580962074157308833316754012508808745869819576138310465217155227147699133701718158582279294478500908487545190431486369794581503039946167978545721201071189333141789946103095057254688482108035109889431110196010498238957186197802910226763623889701343476442379147518217030205325787083354110469671037414958714033503587054274458367360329027613504473706086287287410884696789073110970059575560262628096719327410379088469739339801354443037341451958560128793057068530694792589691236326394857850954759331020708290707315719061248639367223682660454823940883012364751520577913735548212457148830792737253806335629453132240106316692741215441504289816511974258982516301533685166565166636252566695578556455635986136862836916188020115110484221638918399515086109044769481074178169465913117262830840646722000467768436191860255638812763579250427533651621539176031717846360983022302076782990952954496312119646970308263904332586448175743894629692190642710645174764042876246985845650627075481190985867822275369154377404891385281213579652159311150721574771423716837912387340213194240236961273039772924028653398616608234989171356981617109197020096883318387463519493293770864844324220932129259771254130633307364872672747792215241054666931220345659916851303027581829655764102644785617342109250254357963568522581821745634830531665896617384137882549314998930801537229097839947890229499738740779830318050658219558744869950524340544649921446707604109111449492740108930974429507687590442817076402869027485162167006428823795343297483132826072893876671526101233944261735721157489054938383375380749253784547485908948322591767504106147446976709755287214603916463716160897649606525551848625477627909786540235770289545682411972277565156899820116601679070686602985622681268864169767843873979918422341915494983931147937365876661291506594812016941345422733754845753717098219897978253736793325420778055949849762193767852048350616840634809644108633238954896448847285580029025097784072068654026290169740303599726068883991126305688268533586790210952818082065648181233573627993648512925887818361492640729618558699503236659499729673216975322518878256668980176310271439239973463577950584345015650458879859635220729435932267824193216476970452342151862299703612064865054463191186024355065353199799471074966499162497899639143588344154290867110333494393220604630787049548484152161752354812032063167912296556993398975318588089993000653227916627283891602124291915630183569237642562586141770604544091602589529446473126099703147267064758837844760120875742955933981028087266725455998125441869904756903995634391248461128323265811301685396255439224664992108824573952071334017980820495465187112783620074368858884719247249200109455268858185156316568999130292176522955608915767980611691376511138288053808963580110773585470465551037634248429967332303319121998524793471361795143341950502410201277545018190261473198116935425426263738584583939039771419562063508123541630909415381940021879336353544397884704373972121901039886879126465262306493608982120582721014000825097471247380664265422948375978461805498171144897968878939938600782633505881818143360972628977352691238505667928153249720916258752938491625408720374196813187050487857612590140811587512257442104423024808223262290245361463924566304530962748948350684460764865639106969695230274467849072422138562606165818978582436534055514113707607075407957690735424000078220013422865183022347492038400545583565047450652512632023799635669540874989105574123896551396393071843472906261770078583042793501479222844323078089426736973559646733100807876216467517573640602054619596581037990636740623053644926406484270202703104363704863524067873014652364444108223198918319578150508389922431228889496067999395344157890831304713374794357580009256557595560481241991217660630654144779563572747971846616273897818092905563227369374644980018436216759264488899629589914293886290720169065402585065695494478681280388229403810284221182543302227905623556212762938526911920347759531624752374838582999576307555415940718710122968237885485417255764387263955362596072140385644675529830388627819073965229696534762740708116263594317490248890979541147625092138119016689158154394729394249966739105447293818711032182102364487595304149551057768064310640162536917547141512858208136901206317767343398572454017697805656628696355252728806470874920325941678062883315289183718624480295026755374189377541288494079530132923327402075617914583583270357685832885396752495139235511588496573674053053838185595659299291272616302670349059637713120296018147118477034349872720324164403289592398766407366259755925146943668880415013132908741752843296285570777862527486227538457740112419631015723527661298743752797262025115654113039819617607197491750601077111279330800635837043642666269602438067955080246913082993078163975129279537759602826372959779080810735068848310658857540942930448750418158384325259173015255398726946311604851271353412903732795639227857316584465553142404103755757909629581503700669616236620924062329615746903205529401264025730552506947619415194404532425546530810791384105696058845072264176387999871151767481763339969347463682779824138385546176302430410451655044644297096162878126923462138828606849542006257696756326367905309477705660943809466485482239923752266720925894165522914968401815724461530133136306659944391836227628409423547503331986911495896233236706450139280020001228185818744947270427598966993335937913223606645120695254404189074045041916785274945039696596842415246925083433229180103134475894832417930300152583830384264095470222147502195635327694472591558640358439454364182561178475407347972805920053832563938167941374166561604765014342364421985755883638550345630480167191360740084376764589088470000055329661376594154594284826015298054037721911988127844129146902642507588548727141352822603689665532799124272035316428021677280297003114798156518502159102057517491841235057673388162874534241081604668178532348277592406352937592802629519080930222980817999590876923379913649025164259266316058673404948886024355919945180108424008649658704155458246018761906406779062808791766241277572053843538431641747550193141921667982991310602822370844884220387189909256579347056987672995457618824113230727302731734642393670529999166055437340192641063994795754155261619689668118312376147395058599217361007944908460973799625554237132410174356421301630718739739154520583942578724048417828725682940254467415979627540608679128667260632210458794529643159643308774847554882921214066055105689897974421339358994676097315593663378523839385888905747153492174006458796986120010783927627130840526710723033838853959025943507608183961077350046583030131280233134716631388716616396620008177414810870715052213916583405318482482513862591304301720769658304445530655825300016130070080515500080010382849913065272945643959282264990878541933543943145799069026591032486953764811322852261815826507386048907467926880313201667776774978494008090672942835201068650284900383430446596648858642614198240937308136960475622862819617524952788094902589536523234444506322140381989227013746850117672278389131613139945682883684630540970392420199457535912834186323920863270394227007284438207011045516050266338165828625483922787580995069128057054138290127561906039455169002679109344186571370298662089936663326989775841773659621146508487042356104166200063356357236712845877437430583067613015390560960317680465004156476359666289566485141425024524438449037422070982415118074553082701950619762366577176966562496070092471515851233222183458550496914132005140295925463281635470051641431968555553800136549712035198351557598573743909036691636406150679454647255605335162903446319614569847779386170585071178476505443556279411305296043901504721143515068846876407841262981385073667532983347856783149160029039431058106854554456497144160447718524021443679668446466185822532416777721516408546202933844116745833893505563837885151605853733142897992762287203211063700918950942218348574519533342384012455605816631484186225982910757929460115855587006128279778617819199411370928054928088705085972579324472778386763342034334355270902581045034578054544094806926539169547928846458830638958815322326724897928348099673990282261039335262143284308056967139932911150649249790645251673135955863615042443809644547155900032325232579647828872555906912698019493435813309801478759928209049549190728009398499496750777251495473827015614366498679788698336699798434650976557273484185121999863543864436475524558711329220809234470003131876793320649925451574220893998108986595629562894315680800952948298482868377977438723424016927123499351248855829239217419305496440827211553615790628409684405593209801977476227703024072115874625305455756470876986852676983588520751966593349980172433920115049108211154320925480599111122222789852448930544398144413302801802472091167561848188505100446625257311785902201634435376138554869974083914807492189678671389490229340088428904054948661487307369865895129987245242562654329377719085941579123904375301272477387981585693566900788404639052203920552336213283795022542087945318701375040564060113335273208054357410610489755308665236197121583160644245869788165185271460245012129319523657405423005368152583386623817073010622978357254358548580911426569857622045553150840746248224611422554164374015174602827091515503414190459435495486039889399982357144414912587526905566188966412111840264205721542389162944982934344059493832486787233671638572593762405357124500567337436405970777862375398261233148767100430020887101858980642796885303332039691340580046459353840454144535263933844128635463821042062223849477399628089631198748434083791122859578393964475646690026761182799277030348955212040285468361364442270460133907506823118837942143279315925308127152525602214758325128011428520562985485198045473774955856190343152629985460401863992046904872240040491194442526832854058464936673527124521253188785508976170910858447700963739723019481564827427362736969425436112618500330997087100849832207530691632256936735872617978212243816981283336973154687426202492281037087899248394354965241738265163395670792366071272712893711192980712015722704937555658201314630508259880265071583353343288614799845220468773845696286526789016950911248556182746606936080216998548909626982353782870464863362115069644795698342680479610593955750764578404388708583029162129810972068983606320975885179106137225289951957944037831190575271853838925543634244646101674251122902083036115095907087889557988539134463659780818466640017496848483704587471915241707278176476754763554895835891186767339575182199119249951109204490652709413173248756411037065623855171805589133124509277500854787695745491206117537170127721317128825557856047715201008207622967773417362514984364510381057369119648725587015476023517859822993403019763583515788327710017285896218814655024838117231785133540402793997590335123740837874571299660331879448852064234451925831755088464774660382509062467011051300622374162797895573169303910603792278888361395812691575782365634660050699075358905182370404102488290024675491654259254367826142577063736708149363153572832273221852218267925662514232557043795782039203457129803827746718184491903939129685551553494092754129393076212410320422310294999361347205891988920422119874052781015382699520972624976888940713459195250085211080800497072004707400150486627339298283524337182361930593555098018331623565563549612664945162088930010598044724431456606775078084552115857371103860646557574398980678434890242078564138036616809710932824138769580347090111084972409599723763029927059329954484467364075919796673556819929772513533915713653291218289767716015803329916415487114729549726209302158222739817291036837980202738399172816947890401192332308814003647549317851254817697745796696753617428784171710120119026534248903852377783704840457332129022502375447410762610444171811974636766648864669741582298381801241076747123031908757560076056579950510447417786897893803367678332869287802364367670409215464648142684045514419371233636556747981194602018227695357331764177294618785742734508728660225989435656427234800899121362718961381547270927171240191357181753795869671128863131726307603445990421997737428609690557107632017178200381441418038670617132897234559158434541510299763847444513099357739156400015705033334967997980827938235503218584398224454574237727346470079048354603011528762297448435497463339573065511887062726280746625171085290352072985673513360944760038399776440866210733394293694929110117884848821517447293120764095569930596291839043300976252335358907672275245204303402560751859732429933106793429343912725008327694125227456024688808165472421021800257335197090679184273914019998958444121981778177806070200924635668532979515319802905233710300880038174965795847179058377053079743399841465057891025280813749981820945986256933923544025986769306393321981539278936290458770137710460868169683697244271740105369166805774921714107011410226374051755426781749329391112143668798236605567551589650682924749683355622295586035343347281538326811251777177642366815843596362839786305753745172847076386478110470165447089840567484938724246634498111348121443745810316936605659704617852102221162694947793793763661263181724796215283593000292801350057327321315547482587280158688116530903321869041259924640739147225300195588438453838644551184092404349716177945850861150960238704393888814510801174325849867689067173235148577073379773484029123077167289136566665376774072119433167289268047425683546572715310126777453796251210704755424327384398061153955156889896276765565268163480084510127982373405278878584621441109322635006570422300099014717186562176679834608467214809613209833794348146341658981904126513190869523816714193640009748394054388298977078958607978957699685256262144977821938951242047573328961259349432646472333155237322411400379899874012646319299783433001277614533257954119221058645088807516925323999509015309138949369272946440855439811745279689410327998923568397201596760152850611763542290071056426613537667409917606701249931132184396168651405898219934927214729217844293122538276899421899310135586519441899102474665379351200604226113466173507830718784333769001684448396048268911519941991308976501786015055231493045924741697302357820119164719691219486928510246194996571634717169981561075280004647578544486957406567588741505058457764146480331610793641279689350572564411123561163452023620254339770613945565081734462301448386725116715198838964750541189933876082340904322686021013532331275682148447756278880929168292860839476508357783631035282308611699294038874550293819614054490850445433483516413927652225522153100567550801137831555173404363777414004205463459615355097124672019977450275589245709943356871642228724501182553988617371300565260482265028958968760769046174400628855912236369323278225050011504483645842311891603897050824377467544927134655177131775751468626432298264484729129560930856625997906218643251642011429677320093578873604883075087384773389777503783513748172996124029342016267880997531264215176456142010173556009465339554020301760325583051602805189034404349069316999008653035138470299731194780062119720680205041051883874144651475545793318921450585284333724293236505264048727201985745474293415352116929130212503952411812250524963129257491225160318535183544670307443769567389844774722869061663733586914433783929814401885656020134606295937502245678692159831478489323673376866002923906002999466211176774368921265523002362942451625383349222478995698641664900861001665177123846257330058312125091609082478592466471305744371758420474172763139954439803265046612655668816243823471882262347481682971026632217572616140081806692700153676066313103582527632051281700637996512825482499040324514435789892270963527964527951874922465624444733661490416742472862442035397176515392347190699400104635697074045329016144771702854686720012753889338667666162277889516881009103683471497721336795046643859662957815569236147406838674527955576325651524222559145773605156612203440758045479568350725888876177095491018636132342256615373831986052631536568104276292685481478700058555375258496846932644373745111758201145061705424157062604688532733949558357872176104887896130844788409008468002235315753464772402935575811113112286835986894854918095339768655177549385984155512213889266161469370823847059463193320118578618322531219737319736612580184855048741094749278326483552642369981014727103339271926158790413274249488859376083804575858344339941050030909746447303679980918029825291985640823276640567812501624648123631512932660274256065262393019631825398091652320209128537087838402104046732647312673567795937970878939560952602262641957140567490444353690470590502163234586125318072433851372094951858239487278164694700060864057292187129646094841509247094305972893445988309664127135841142561489328658322088905261492209608239081488671175924716074893166448568015554594400739936007490165563436500030538322160819125963869940556985072483326696463119893738735761937006590210175223164185827461110351254019304768336599653227078396353845004748461672870754976861773791895225273496361140834288460701610073566025502863270000847437921708029116891632535558382976337630359891225053311635379247592100790797558813235636530217992007173309418112465060974957599358551799399792961733070029711479866624083449093563203694095785222699280214880736143431137249507275471914188018205055361458722647547608420202302939340150220114123418269437720236550181046691943638878745748535499195445187254723851521859182237608000118829974702707419390744885069492551014634347676991398639631781192104153904677628508600350050768118603431958323393663783890256816297266769241067662423421069233790495186079407780561136675135573335134669551445735042875095113157520502222624287371154998147335096957616472499214349215947268033093646194841549050920452098866256098637240989233819438336937878103185079230089744688734047073265202454518538946749112115798771235445493785398484561675463815971400619902604275599095737844978814106630373495928240948541143381174760815044729969320071378245431023010404566715314358377490723797234955563468016214824263706472341277022336610544053883508988071300040401232413344255155255834634839621386445184571021862886221323267118938679618531760701669767525420817269222457759360108962529304746227861632948053265122868520632000144327713040952296522969858221852354331647502911314529781373175418722871832516205106436587162956383396821076003559993582084495687795255198995149586419166375764786808908921239886973270605611682659520606725156228216615488897423438776524351178804261389317589201012026709738476421974072686958305686995610510143227249125780776329880821727212758178756364870075446119377844858145409869030618713858316199482920229671057541208249947163869297160298574502474184178580876948250048099561093551637176479781324636932698444703569329736799293745234148622152166425558128981111757525666705333657005682830974226760958944522785007482321770218230363714282117507904748769454385907483120019882652158176829333918632787688900572849689149042901910398471084545765567499858682933548052014854547004205832228122457066519282031621375597979230878060401801324037729681886429616714122407609394109692172536689961378005373426163502520238740065695882890975100224805733036391856643892876465840247430793695820623348501554918242947415151803146266134105667805383520138936616989415745673126199323027021099490997953072801130837723474026162467199449397923175907686251713230094675666963571373310864511739490617221630231925121144510426543570399029715077538381673497961920102431971861725929401086163476319512958065870718102738106534823569121995798215271865565142442751774575953014787814507260140083889023903028962471884641420121598650159467276359091971273966123420271412294763191376611358096141248007058931682408198057737261171140516429448659916596043903100276167386548898326414303192049895205322788874651128906998672278269146643970840897107080730947172938322389670740562141178829946603603140171510294860874934315650445132723119879526443794139778072435596718867600382327521716212304377828563997402465812756181879743833087950267715847175256411893387040055669868552697325185757143249344444026886514962495168687001817108651201525179981905226335963329738782461211899466171132419668932706926671299859846589998939364290419205541242177951042904178122463442439855651118223880487832728399469928283737545763931513185144140096983471663842562597661147335472142295319630935623842105401498586333887248231112513534935045197694480087207458728611378648787200832566742160351618210066437224015828947258059607871614863909242166076739639444364656423678552291327382341461962955977131457153096051458768757527762683555300310170832843073629430494436158310388771424543718981926376769490944844202009830797013617267625868156924039840826182646166899028965531415555212712465660587015596926697221412872676068886126342176537407924098354852608165293756535022555019817215923934489077286130966588809198910506275319660608618421883598592704118086067167605428594046778896030107405721617247553257679703447579926021246001143653250545197279590625542733354289757459118161174769960029771387105318872237481779193458273220940283612114108835936199315954601280596154987333343326701607402176800010997056552312391645199865933882702122980794062147347349019172369753938658625879341074354949736999405000977183813130443536589899624725605331994687970478229698112874469609789261967582693521779023201516929194398893765580027529309442686136966566891012074185742631678373185456939704927327827911754636016496372457344778811416225206744484989597289002460862785331318480572359764603315936055245812715338741861021153845349855708150512586081482601637745363679270975839097822007450368324145860298200533567323264253293284625655807795562790365083868631127941527259348791285704154979385297949726030039062227790824085508724385921546617588842433143431712801894262218812788149047960439529826952127921849428870686807851633887262005123530795215393334992840825022055598908771623460573362717518886994651142994496114216931702831644720120837548936119363494110317817080570665328552971873659519054333733704732349203453063086063255027633060010292364728557088320273437040726254955152142317790738186799341321066147855208163580268286538091132331762377838169564166855660419380134800741060092005267753699043917550702166473125380883219011757199631986826750862126339649587371447155194643761117493284321848787403746434630811006703692585953197044280311609469612680980646853890532832539583040394901416888016587981715225505350629086475191704821052692228356991139206387868331081317845453267983973123001222895665130481107297633602151255856374144017652067675656031305038827225734905618298738692834333166035525687268117261829303869978105734189051213404641674387842220053054669414678421602540562512553464717231450241592181206763581073985961541091405423976399891483957510260890010795948797657381721258076662900475291578027378618628649508361423664115762405189553463232347510734905942983053108114818342982900470649044112520013080985537234163318456053252109000337198524081276838724980031989148463054381335587403976916855037613735777505209161359339259123286352419456155923246614915123946491142173928969618099221633607785983743706714929127588224376907314977092304372361422339229557653678157161689663911285340907825495278931521174737311182160532110911626193291719170439258364903139304329556085406881942624960107486401346386771188913392426453260208181611215071941914651049780113230004059130159449101833447661579708995751368042489970566257001680196730057342032157373049468568768329705424312941528588153344371691176018241784293217379631952057075402109148621575212951070625847900680558142162467997463164978411423020259334492568130711149227933358551134754726159309460957374868478896745065016511932973487794263626061129323145894484197281812151094306620349220792241772646279406746600332461940178476147480297092962091528901065804884223366773294496146305864499366903829939612500196209558169713742240797231333590978452159592954586822273577606239991717572661135514139624282670932103473534427917917274512710968362443714949009907920640096005642877411643496677296798714872712197375677849979952844788865984510762364520377603449031429370124888296060094038717387711462426169212471455939917888890055864424827695605881970555309615439645692301326133462923040028003215050943281650849243715130615981660567209410312036747262565725079677396499775434005370548152675292526676145310235963708192145171515342647989740419866520908391262844661973671643193178924715513952676708305729512275964695635233121079691416101202150027093804113984701571931072454978733126312133733739605740049508397086657499463316043176914852162196839205847170918429365803435088080454447883792989783726769569379577292420338347785522753162205669439559408027452323364361204709419943573996500265149863674031657268061677450204670110052367799233463472755733728406593094791778169033750111880253076077408869727129290333765782814293215470054412902733992741667292014371120105007143778788146087720789049402738612973426033091460378963572998179989887598997902765669550397545139181630421649732034427151022863522336327525612333106225277269101162084180619693630369080982642078334542988595101628532576403506452223486904185505667723378234317456438168077689527919649354925059783070450022904265867239981017277968970469051758484695569217376216204811324399086742362435751286728337822248577302869977524587607311628936356050404802460814946359532086192026554914273963674543830885712298757400333874501799277800381794074882333608890295030660558345133517674060300665913338882126942655096685452462831912603686034352897229998433185346947436485913971305654579165739034927744592312451533767952583945279624970512511145838491854387162411083031612036393625883602890533807972487753203152932996082115777810988548322280008468487244445731995365890660953316619941961161881919933976701137806349555674534568270742923877901086099933644849337126624130773464841528873566158623658971241189961260200212606882744339786956986596921116727013454580246016480753977806939147625344799624924390074334975527924801125486020238188168167310427260511895039496235164655855885034633061375852649121518102361903846464102604409059108571556883158074214182451178887266063449468655923153703032202217410266114425082183572311211184222446038368096048129076408942353199584251731599941292413927235105582209357248664250429664319523432490098416891301066961503328448736363221764715022782618489882623194143930917243834810947581258277760353640177046668795451190914245108907365049445021951519527048124750508968355166922576292640520436833042874181853695204927215653038044586092539975216818994140883823071026093416116027330154652731101135122725645955182801448372605799174293693519221189732820530548771273109411729352443525674371450495506136956155285845749759710274077886583130628774460665143389476302580162929512919354131055975304748689974633596222682706145459900390480292699750619944146932207124326415332431617703021102527775674194573910414995766141121369801825650196376502602689596161885619352355152558736289753277410476606322563979993391120238684440051346211402477582122704771687166802324991685665208482053372171573647325633244389806204271746328883052786669319799373797834714790964901252855606365166687075114285156189259040007032862245951606526457183084689839192520299020053347258529376334941474454645339486740252999158640039727473003545615408343879406846678845897664334094374209466090334363040968137039502144691657262355287530571950560441252324882721873557982163084187080937175742332883400768485782147830678120044911539050760550467184288554529735118321797744221549434747599427426844623310457424796470700341378283051091818604447703488218536463259665283414951570251883402208679649044282145569210511002263175725615228038332365372730857979827907816195175208767658817781874526825176881113106580257714552172462473611823381634068009713852582862228540984679610834615277524611480581577197706824579134021395466198902763497271194484117033233145553131150280326618029023857774487589667467147916270991360794283805920370900586089007116173454818604786478781236319403471849309667910020564469835476746999427566092589324591235341349117635425992673075844834732919871997444875127733911016614938320197438295805295813358014656303342220693008414347537098665796157954920806905698042153397333484287470086949357729662662175103551238150530748050330515843812313833863287177996988489454615310279713914520362667209579595787120034045224652644043825999778884663301260409674085862210398857244471565259979767948910691125874523483946431074441892678872801656192432402878780118729184214171071079022214037470752930341176938137806327601040090409751211773861947443675372145269328006748982559263661165007940859305961434683014268846306930809817218505352220608703724571516080424592408444113055473790218078202097261551397074456919867323736927134386367459744387113929108260817036465445841569644548219856131842696819663297401429717510954554678010366606979722862280678283028198657292663620071554827641146840859817939666661003822982876797959843873182932269297291933388816390552760787172942333889279094223130856012748725132748798316170086842824421039753751583523344421011299721720339793330231970439482011274483167214208081247796043058180748867319584219704758756504543415043259914626341146439334340497456485230147772577234162096285171687832187548782241002410690705242793480398310318956860919671297018311004415127065297039676321867903991719843216495683469216133866876621559723934671841493459021676511740613153939056297058420221209267143156064241583904899731453432716135492201422441138650603837031455349817535940596842412673725050997395498907036332391331593249908286531388207756455853305990715189942249602568651128693839032957981738127936413884618440733032866167442106273567626735523416444330399715434802927955369547395002648832457754041505643005108622266472956613356927649944223242221690226253988435044102119708682973076749967665085800575350141823830859859906415090675095569733350352905322134358771006496268249051524177311273881938440897598416579764793611132050103924264628214807192266378997313031373427897965253919841726617764719466029493692374518856680090103002093824588151480180090726194744370467076662494659474810081804857197809464199419310160598005870269725432040097366200988509904226805620881893285879193161241051066630410416698064823601787485091771252027422980756113177435008339671881434660078923884919120123285032688363017700890297942700084207366524603634303607174856105315685365884430713914005746683521680659321479016724241767372308426840181879794316824606342031029544523704906438075114292850117173779730334024282756193210537494192532586988996735643782190065905779344913256781760902387308330820468764152422894227010210883108147299746341788542272189701782550358117053593618892174634716417459095509073561776134300694737627628755764957205659067443599221790214787423564283523631332484732697974356441111301365581186069475324271957812784172870092171008051953603084110536035124844673047379739428027787978512216876881720597434036430499211819436275869955325212349085651233949046352831077530221106053203340252590600021195358438192261147930861522117900561073002576729419097667440837615782745565511053899405268641912759319599849074151926371209316730073865735466935480798872557511963216338468345270317204406990331694346436566280272470254121432370009999529163553087226695520314793533468403680985823597983238937448081526540109518305046260803631368864067659020971576433768521437424042788484415204152681120448673096970789822818624399376902196220991096596134918789600685895691351580413638483918707454815431664335381407836084840194633069907580748111926502253329776305274718469276205146330719185093959093449325464142860004458897862503433676096555109950659213681122271009968154860143364957975133827942145556343691568188268570540642539319383390475075685450480610558119916943375605919940746295911475934799608100174004245446721261756095989100152681202750550829868415100773861682533479530169722631324697261792011458490427346929341988332751420825472216474702987549708443303656662778143619298416424370422880549292490214007311444355189627102380789010222149168216889158944963730027396883868374345258192473969073307276894534477447308098966614978583214733935080147008201267702772842717552341224163235540300836945980794342305646867338715758758325428143343716192271546785867436734925786054363588856023827876137239182543872878815369718947403283337444257940435842104952487982517048560515608788237732376350650602123291981138532512954121239118508686958712079851534697567256176356208810953547422145853591994955276152648163680799592710257626182728450479728458436354703692175289563633292306218820321162651297173903065564682422957747065644373460590822733283673939811280073364480249329074007885896491364363598751122066043808938879459065044763708731372458216065362603126204941469687378674678922495966186204136578021253592955308800241874696872894652161855659589226098070947261648229554207688675392291722615908741355823596079904023267650701824871612895999665250238842626004798230039897774894166655818399854800899034116026455261912871918357631975958988740452796707789130324161021626833478841970741780512068779435779984640546272378371063283570575421578614362322918283021922223703524281357058342329418092003467134773764487811822556547780951660395240592578069508885251284680909970496539763654614412838018322140770689876188605310637348246447056938799955113519461560718925879851583348296300097213510974559384555768292638053606735087642588249000687752514954188004240351713077076576908216357096180846288086231049652658859069401981022133514070031549700352952103331520372983783667678790229851047027969372726064314568946068302225494684288002454853328018791454187683451247320705706871898512007833520150483740835706733704937698985840352755533122145781995320077812373358609934132933054250773294074866681129444965889189904353776294004903577998534298940848769857143966600307816776624026020826746257682878244215957299788463460693306252914249472061621538471229228072912337303773349754612809707586801166793129426073475789435257715517942422868163411193919009474299031180380035996834358806762036594165046850460606560575479063175155755264916709220630968347836469464170332627562101541943342822564786030362984943217908065194254467008191338054609269374567463520357556848253815776535092297677745433439048404136558649626122324906942090334386184136553367367709735372251374925846266523206827530985493820389183973857045978128666784844348750743996447366358533341991400466110961879465217714909111707652059293349629930935316259424681201160704459126817921658959962586625524646813125389830805312300789478144476246562153227487777044190688891861462990942124247273036893642712083955161590335619575598644290073701406217538183253519475609465105395924801037587791780924792216964645200840454326992445124292980601105770012232919610223488470299611396048004591415023309863020798141106546171653553808395304689781693551283468214623604996388471509784789091881772333160493823629074929360921146789672556212175426701898454258926378419381871962541408852700772422209799527474688195602942383825530539862810877005645694224674806180639875940301669321203396149653034563428126661001546589796073458402838669552141177552204005767619347524999191611940992481247417157630880931767396055152210595700408154633139316380280445895456549346695428043765602750579396626148614701304538492034609865078894382162565817114889606062270305889371695040931433888432800060200834478705746504173425074265775915448534364034432246782775737689142231628827565638139558690432902690029291136877454792367268948097255638122570043033660870208091402688397442592006146950921980607453114358703862522207413064860495384669955240741927720872748819148429616201323306567444074930859838130994888936649898371062962088887738285900401687327246290363776319323112410390499152323695714708799902245293180013968959817179982033218749222812344231967036698822755566290744707006978946194846248806929119095953945448097047773838536564907935439586242960602801819147226014707508572365315408806274720259920256475894209266889554227444656250506126377832309138601374522526867868551013954612895928962591098775418206245617447172950910483629687652823558082330036652994262031444537537389426831020120769702321676767689522632394567374016746189755637316217840876318091928515610951964247360331340959721987790986707063676516716053935101403053731053989166465528768893142577052127830967506783851661413313806047536495933846701065372942835838087392639395892088255419500931346149078383531140658213218291169916319224798469093704214202302602335395236363335180011409674928180583117535608992568828262621589308787341696343589149510923746821126746091965446607573264276549700244387485882667343822264661218627865401906335297492939245121086575746097682896911069997839162825194945329646495194877575623089767271953138142015488260004249437762061105893849420929282268934016546048819130408212267296140109919817918910910104789651486559231920513669842891129050325008890263835510934903465944434376134593138509097716616424277014678529959280697984294312878582787054425038258378423282576145417337031475205269123500823757018614900295199213982330445281009534755238080942758004159718523138974341066996751552536385665013812094904591673800966692797335139456901730059979295509526017633375869748470738421519333968282268269073649490177079228031109526772892023098546291948029273445454523109509629510204703192518525086182876311262777259617038959604480299841140168388669185636693904732586340217532680544634573319266066800144912516813891165766604674984167386393763375151992592169186261953004727235069121839765303762082321912921940401074308094026942066592598912328489269503934931456657151627200553439928965531355706802741336817788352220910221788037021501476056500170744751880976400063262464046115962709026374462549201827443539229427325117435444050641231092478341963615830433635155834779713169885560677405643443219480714742130953319727174602246346843633738395659908692960930696341719285371615433368940836749441326400235377304758215336074524972128620503501714428338750778072748545239271708067573588170570709122335687168937752413921718880336130257995073852378552324959898822737173031067816957977855766020763981251216215980485453778567554192237443327371261865867414329479572937910980742429375185869256812149574456890410681470822205715141376994978306110974644126566697910742315925768494554716663975350537287649575983296569868356931360950259890203766020770440083788158601907012424886887740899806099294547809721472983939305900355915759131394006330354249351616849377718150759238310240128670713063142379517887652824191958390743986781864271324219020271922371853584412650469952338324382728114908018656934467523293373511721622787075759845276244890396168907235099766723384528886976655059579936493721552559859874235574716607362604301920352886628944777921692269402175732050755704589865039044672705038671068003378327468843014623014091082187697547847332444448422992105039614442375591538467088878738035745475047562197333914917190380738270957454830996261239791780167795754120002926460838365984574000920652574967115626005608474461584358583168621792688024834106359289439817475618247427027630607340960775509857955840688400163457801252790759025817524503882401048575560306260285494236849701992405260194587381222928994039933109788431859980423953382529644140655824039687163648649825089178841066569703858445393370088739100327332974939147906900390053181257293558866162637059087145705510404758484771780950147684350126691591680812913269085750819067833976743826250046917996373329402441515083077808237251730166700788330550832425229753944167439301647435161160888241057142508872741518601702360294058835058392864720802282225480344744265879958047709639740492719680398850810860304803207884401685945909067462395866884273314264596825962568186606374192237876013843729844779231280797861211443950862965303462649687342013516249934005093926987358978782367401818232158855648637026433761864201101029330047338154483601383950814145903654588732183034683408092872303822334720202168354846389862307715599327953310260714032376629582051278628603021286680521841056903035790331870821034503855808433971297983390007409109586336247468374456226091553530332089628183413373978640758860661493921935555044731994784962543874593070332717518271311717603894409090356174723826003820210970159203498997794464140582364470830649306919339425616604399779621688494232344895276042185957357038857341394112382947676706082013312287385445521866107359159306746886286259807666964278250831451765134801250820807732814884968986273723456848002542890171095929658442345334819234120467651718032660262906895364223579756399976078950667017286306555481904791415181504937143865787762162766466584746441321193735516910000727552012761630198499895651400308870479221669338039060495270762051187402862860150260594392900187952369058997101322263328680451547802300778727909666455797857471053360656413393431112575483196139133118175142846723781311701528660775098245370220073581574423636008932324965799648641756634964008805647553569738815367331485345710858108814275024511217301353239495332671435536637983996806840008047004341668236711930103096924236579845409742418927017170658266101541380213976507186012306372609700264197705788435521905430907063700044642515973803073986621437540843605780848616896536053097279415525608925102045483901382575922026641037920335121866285024961942012038653415517168199121653030119502515288788938676436047916100629927693540678411203598918715434152194990932323449505327681857921058819685007645711604665822333061866772118837366144637503889756783350249640987579240760165288342438387424240900143700000697054235554447561054888918329374869841556359960374067131541964154009889580879418082496446323976565764354550465745976164302621934835370200388065042149296320079632666241616338918477562355554285922466763074482420520887279851173963237499854165381313183349546941620584434362550436636398622124172937197615081966974278084673981617157863370356263594621131320705885481905407252150285991715703913054937026908258793514342175166431466747225254641235635598844885856888427417362238132264606958004846951416913242148125529995597164151769396601536414991346000817495316265793611978584807068564820964135149472267235668081446842749743446905116368620831686092568887576965964255698682873274415908036408052329136830213117489432328571745534233537910015490284024341470754589892436621542215975841648166051528588556642530960907966510403674788122835691860585735534313608174660923259309528695305139591566476373065105971115187525398450967103651382069211968789329308512309618175810606223481490212260167233951265733128531137584961413255963735313432600480985188445017925389768232747014291185221723040722844277570630684717957202243631576563507652392532768346177195589322419246421817933661108604557449733772401099737765384752504089238534297016873050583309288910137559826932609050676694670490032369097361218310716377840082756625472567482100603770132076316871892690958293226907663570711730331872305572619717305697628261181975844863571724286441574626987092686110564416674315848854634119743559735392396840597527195501319834095026536636028746884596485866906672023037439892273266569706603374190531384710071734738241275019729964177769988020926510476500184330721555898005611834745725979263381762905312816791387305055880895098341575997292982747165822305580241344361903374029646831674560804648340538374570165359987191253774978679142908959043458584777791837592601352184790286229396928444661808013376399910890679553171624384860343851817874728484330604675522840993700422382857756728102002957834349572609607473751805613726761162565765624203536773120499710751635013628210899265795343705120669626977063395630607912679143601330992218805539400387551496671900151707101437214372105677592911349425625336779869553736660261836600730996182988595693748308479611353024050356914750593046806016369916857591743626375399005524817327066940512633628142062454438246848157572785051396909231353080638103946532217794985489254767138414430275897056929278228628556517654125137373527384448913239938570114191912205426580663440470872972688218251089387535759684723195803391793121205696725535074987086913787500600372097771281818165945418109090318873222145144495957562591033470534265692663178410148148006197231352365331054082065743745149846545899029519483043356587634003254366912981332929294038525264120261488404209222705230729148923662229322216328767200392666628438858643583229858697715735024751405739345947563917840090022851327745320635834997026269257631946378965152022629711864044086531502537953890453762850963352748009979125342001291269475530155353209754850715598210167384820278002185542766609470879655916646012213105246914484067428726653958437141309942411622118769555699104681177344572451568177016997436828533058319783251526408558727980163150999568209779728794244805123493481486405522724383596075129904597758399545485550999655973898118398708329119681211471380565792868999866216769260094638153188589244524019857937317540499318653529766322283387147977969185531140811917236875088880897059231662297779094599403902414049093713495539163597697452424753507851920602205708815329650115997096980846185548594464400469543785180176868727349459241304492577395284563375514172678053900774206060413879590806454218313573371453797739356137570421219469147082787307819805471902209643923567557636236629979459348948980948784311663643630635524589520280223913876283772862038156160050711411903334036097454693502981740596816682753421109971604403051001741859060102630774846183699777313333926145561813205864293990108911653403534031845518444127129721221812077567068131855387230684652862303431130075513626760837450903523355861114966451981695280613774843692481653244520083939671226754151715575937045782747927989804201593431776320144415139275237822942164037223790805388673610974102910293206211480270550684279304407344445156454094337369327020963782226441127298559353039659287245995632982856627927248986873379601370124865875993598265932712359286535668575574385215928463138736103978723156202811564658216784017773678235389142200364526067643765910002715138420849944543759202957554609865809481270111008222446538385460757735609730740873124248141819528899747557099527316610201586972639064172075008489539726354915343053460708527754821640564258814672486586340284429515264746475374817083062055298739415048550557427375053480480497119901607858039300376315922756713703379475566044829955014081813235274557177824420174044445268074610842626883269925709307943051363265882231706463801042200802642134086335169416789296334285556688405830744301261224900625259861946965751028146880172703809043899083874620431895936962727266288318452952488161025731220027152500072064113371748268013009685014138305274491632839087413214881789850587293696631872953857258312582891736250100778977235634745041050777493715359939628435882372200863098090489983927610585069352968013890957462106908862313544940997993905171454102692984969372760919514599657252024593467218702225702041484143143336153254821432984747712512137653862831514094430140421365371277579675650202892466066759608783414059464210770429936227360103351794197312896902947131309440245507081301473265683019382296153326676604903771479605645174416730160570021179883466217000923003352114090017901929483735051325801402083184217368121326851453127573123133842079947669244750204385964926330450896457958240013864769391868743525610927691016315277208452153613945075804937911042360626836825176138540079268592163501283071507403861813342604636454581695746969750035131051603964951256135732717892409452694102648265945423008699179490278166447917523047884839772618814398105490836885111944474780018584893193002276369996448660496742785750995614125089180430954865928473394809063935405352212121530717144230059351116776985245184608755140588367396068412026332359087175973344312859713426816937428207397209992217854587093944533918112762347715770627811554123381893477253927728442952275809916969981710551706249357099534866788868138356347857130353566918307134997515191229232761310049450242086773974693794430232391331744109067860766556685408639265792596687787979141572725563204247228024784272473480335300279880277070132197191671362804807133678729782795811217946075421992232345797197729256196368349036052882703821091253868879293349920004688505846519015220423193770116083267237100161414819133181260717268574862111237615600693600112390185236185796987184490707134589565591411912172689898104672128942327684424988937552577373558523659553940108514840450880693353732306435078125695103009145879478370709044918540995992756609803856640778251275673323258232010830218807078996061677193361650337326109029007887709867459151318401115253000446828407117233158321854827763719218448599190026590787888955904331183982394826102970441197459089925250449375049593351701604471347703811511999070790129871941423650949584569161144461476386799517428325650650920245684605828736698014543527504769400979284660934047963277646514239138811485663533519012748898603793321313906509052222867410053499661230325533729307848177649945787337542096197248278461855388858065825026289079509659094042671963046370814737807488032878461003399962529696513514843031566400863592877073699700008789223562752310018009603488922851104294934490354585618470391642410973997453289243598178836027372936582797867995569297368350906294335793460410258130888684068970811297518118114724236626455568197874756099619361339004408291601392370235288536276687545211078867131652807712620134659155304121814061677644509027633965529635691801512161077310678319859198471026125681902751571873897592443928278492824266342808272448377479647831297353199090529069477161942790466441798156105804516290515517887450250065618789437276680665766534634652576161540053066165602634091155614030942348896783311425767924444503537282397319946435395223695828900369852218357540285902886676032134138014951308616191469605390258234490402603429764169151698704203445701925534241356386323413739003983796424158839500080582585204965122877488393399590373067909482821119780652503128551323000151922419170241052668273380091728019683705928092030012283200348870845633369669901495513331264217587287931281891605229411216717659367830507016527550403064570042064983078203848933716765079252449430224983191014403759645636549768634452140809239859920846567675337479347721078689164249851289831288765565160771424707656538752664757847218406809774262631595022875116789411343035749901785791030513211609745519056393627726378560034029880006241730204645948750359897626452679976015065175073963971091974545945149377573551442400031098463101930124116271691590948421776232730354714751833567393425098852607329644356717526390190930105315673835629466573122944683714457534611904528482095047429459120061585262622044194518702720775552319214092859001945517744685164105003000806623382556120857190922505161764180223431868697864544902455017436857323609790072901806772694085525145403677948295018297997221447576014271266164255894864555752690152205320613516523748475981413956397158929458278399397459796091155219228647512269829266520357699569039521196964667556898069948520381322286747662593106582653938300710661996140470080618017335897238993054312610740485097328348749057099746191864438306999437370346980905644741564680111349828535690008832406809671067496110232232694162187226245115689137532637443261966435117073302267027608005964307301153343582989775679853736530089455458077196097873651915393154202291808401510998623017987024617419722759722731679009212589814520106215706266176461970065718754851698635901057088996196788388795186982494594490296575789519889859461217182473479084087010821863978749988907096962140135926088303845411231294990584402253124177471194102006445859569093309395993946269137395290374250151879757136194958400358622128261324517749781713223400262608828609199343132064531416764575796546974469967824241394673392628467905763094751531513028464773635624459215643386909433787216817477013557021505599603211559140130449197730545133486053217904919099937216628535414070854776837314974537656754636220756325516354434201899778876543039041823566997284719568095107158412004575828443152446375081248063175907971846122355048764804745497653271261518833079322212004631332864857899159505956696340738018297779419914366077919424545146362102160338767620316121869233815435083151741581157541590677336736903974249500886623471075609439360311261660102157507760961661930640855487968152446951953746155834701207912329991717403625001370093873739158039943952222991198355144693659223133807770001344912005739340500581924140525020528752373351951959278304092893937195337347170989431579521595052249064632410272426484213214063836849783069618810705222037822954684262202656019917807831579424666035315838602905151677705440303531509238769666853213026009200117690022041156632187358537574127008586363193824702623901084521516224521676584943029828091829467847736000402170624530758359781995324651307354134270948718759141948799555335576611459000563414529511162288648770524984310537024134176867672156440192419988684985004102894522865955350006827578148708033034462042980600747237953628657929454171165110668184714895149022815581557551828742845742940520889478814577051777287688241795695151534053066188288970164973518058667266210802993417286783034760316434667677615711696684242427472418111643287355709641495744490068130361850708360361021638235700580322121854374374645004819127884528463588052108599914695480814174200945351414773695988893833881480176952154163006240851186429240273894182051180034506502917694809713569828825355997153300824905848725277354274949873297345169105432986216162981829125286855310700246743204955533494450647138593987399903696323319822659176434671396229179739083037885472575276904271770319135249191657385579558886985056062184219594646019542754141536970931921788447956263451936496005810599618115490077582807872780425894148380466318430882401406320940918546261603816920876672913476114641399668256155100434977460655990386870500632795980431473429057102537253184173499039005447174223143608788234223153613108130658820873873581319903343584770511110757633418290685698238310793679123774954522947540539665863545343251059717952535894995619682105407738758303164657647050737651220741856637698235958120247376339704320850368040722249050279917481053343852671597458740937160848736923260212290133421457055190903254579448713640628879842167493404387212612530509272045588098649046337200482102696872881704530406786544417358496290953395514637857294318442937541674912936996885567540924400648542698017618921663065047477560474992490062285260017876089597315961562783693052447544367238579156945753174629986743353530293020264316765670124394175658884326953589594764960501200339449306279705957328839500579301801679308145235364329917169235509147480553447489954023127772406001296183910480615805925079284174187702928999984953792217266693444732312389571788379940278398003321715406927913840654116676332309053227467422764663051666752856614329861056083723379349162286568369247884762233884054022391689551489953201074025353725134851719047176906153204823120849706637491328305876836077424040865229005195979117044878604565149897437568593625954411945035183672141885315819376720813381852374801696594509014299948323501952192814737840080899892701661712036166176332600632323832191188279791948458727806767238659588968489070724229182809924411439131531161667492733361261934086887096107159614232877194458327274507768759399125358220813229986295534602981905142123534467390763885531751166668881355033952246581145352154974266216632075096948694368346163504549196051251762710287195419310554453765358393021230714813010928292519718397775952074832280751308062642733525442478540418777422165831905356602588791244957546669530590988304915928861075744230369662344962858750977626439088453947094150586321967664533731805537199762784076071597726772715173907246256958850949488674855097545915736541744842411989383306162367472518144004251470443798397880695813764682853848503547550405612900651168009503199207494989810809544865838059575958518939850990749813510688805928539943083914496308291040684710324858484370372841876773491309674091376445294273714405740710818579842595120786031821954906489968704497011455519356926042964048134299289813992968369492391613219120338287937933842701602061525639993757546574787792613577406826071097208529940708246136572585439834254635354418124834962129392826652723178980356092320884973541246101997346206350483994551360581892949068701845363000968984702926978290739097133252009551299690792400395904231420313691175633642543945387507738942112410872684806705948936016262862926865600708796076952158811895836722562398082996388584514161650542971117385734068347914568485298572010134848368175220210398678067677149560727966038122717849890591140271204165972436425020530785098737388635185393536794925364725705189709656970862727419325991133226723878689660620967892365681924533234470443677047378586847134473520272972888550729228579012838437417496127837266487247011513059207951874888613238125746401172536766406308669121176338804446619948383262061752666149210673982324239033207876884698657322450317439440028261334037148733315703172876455908540270789018024465912993739862505627006409291808004816754513568686043016938981927688943831726011701558935305598933914352327269496190736534153874879439628148639841609704010944769832382674337288362675221622415458284694276247237462883932929362529537349758663387041288456220015089696617173104769831406645867598418793769351652239990178414184003788939055739861916869549715213483301756801533565509803010239233714704659365476986307274051027178216635934436791162969722248742113881514926348076118317402319338049676783123021530827315398381796486145386663015628872045649064152130542986285269575361256799505208092440513072782756253875711585335963630918227886984196674972662277268271115876997076171708209606907122892933540794411874154122029628817613856652127770663023419785334473268648332811794313116629958002870312396417877610750041647433078124415204394795310656804409006676173791170765044869157550909532450318884000313193593960990609202812965764701086899599506225519964513913987838886494970296367172900102391430632394274718563241183774559683111672755347548475650537109410489328091930316520123887023719292114194450130848450902840396601756816371108517962170154134097844012613713929104248263821166460988793634498415219363657955822099878341858102705065787374972805467078311359761904232088510426286329667500931420620891626346277836990817687366064520975997807452128199270806580517385938593939872571945264349956060358388965628478698883903616587121642879426083753162964659581065836559038578623245295954971661238691798270501588441241208843256604574195106320116161507477842460154519926264133384447468494880322790069602484336576941074940441233194925659508502943509545034653625733028609548958528614909705417532185146280259799132312571384081170483896888160635500807351275696026529234219616653706357371329323337048713471470029066047687050426497399180489587975697393192951350488371540304241883528536026496725804018886393636164159791018923676405422303833427512998345844041651969320053514453966983487745658607859514265034344001721218880462359609047713641734438293515875699480220374978133284065689474699194538212527616617596325032901136980245669955495951922642731611638351256406138705931969393488245339494770496403052779261582459855417988137750632722753970764990176326086711409244944072744375658839716074068077562423508588417749403755269263392250630273884878473856805245777398330783192966300962053277725080057158245297876854703230942746596509312498022111924290397675853283476905604924841751479788838267103006773517188135633836900627241783764384821592426257827261657821844408567011105250780257859215100381044814897630546340523205056249506867868323028187476031168435182849763656524484955803671642183566167705778951544741385921583385246315540982449830292242089639066960144403525936271662656829105176136502770050935130403499630801338245289211342444935671227564644372367574044845545430071245534726939989556644005026997119772089344404240204061401185791697378768733550105593322016221549755028496519253098839021567301266029615153823389049193251824239443393331749187097185460412028905932444281804050754508588809959461730244904612371897286133725434927273263113254669805594153418068542256131250879876941846600109838231525109255768924393046945652989286813936547272182805425924717771903819713066830305774029316804960540361514494794795230608606421224141089384753667993402534338783697652509184352172770245675168131636883130757231747236271806484160877924421023117377423330894523035660447654551737557247849666133606009360721307407090709001490854735743237042015841428240856856431274726754833953657763419890878695235630794818137683621652241206330628589902063456185221432929688496853911549024323903703550873751162849648296559668303353945110147918980633014517095717453863065724930364078853853037957491717058502821597025280331765736345615146473698951123273597853878087300961716585337643877276910811714542444868038063108192192466495659659722839177462417589304178041016925942737571113796060921538270921230378813701009996272641279697750203653761690592775322777510494046391402645242886791019202673370962126062915628107849929717620445475815992267080986081239734984623217614898048661118106996623860285872582364128740207552041329976778472758879644066657291148213656140833670270124853690726118275229961548011782140960780100397698942872972058965867315609010203264944136641517736965741606653811687772431205025036810309515756647186149642556747527910543543142154596773069879037716328720565399634240474439601801380134473657420431087539682627806895451244293163033913177078859097740332737525015875036513023939859025814029589802425076975604001169715156598415727427504608276072574469905624426851245932743161814570697942338369762136156873990446635661730310245498775559911968495205402629468744287414507879839954485302412816786275553671589459175035314099142948837665907879747775189086415730264178580003066453062567632879034026698820276254296254857353988212815332019667197886131283252947359609875185385920104043840993031035108856276721474646831506964299094662101894649083376323881172243409984658268960208986527858838123704193519587572246191838245054447481183370160352678312563763703386208344733243933027253741204092587287708421431686085322330657380601989681414683629895446020286951901842099281466567180544840877395520798426663085575270628973517058309671558608480101572899003591471646417591284181993464617667313260689554899197000031692600520261420190026338868865476129622387007416889759819254175096350933171197717350339430948419325479050809818647968554732152155805201932101841533549019030725926010937755261262470709729703075275912332067442267561822587144300358411250448402074323197620444054209883102582118522279565447659259985152259086073934922965782194762994846705440584276073223980211527520702183142264477866501524254240828508953050761277889124467054148214764426577310518860309591341374735322036595454999275593815354950762417683457930957798527902673180346639694897751800959099950180097919884079949365219422411215881221406208549777685346862492348007001168824443825014889729782057156263293103232701881980043054050467136672187249060717691870436248478655465340655825694398908005535430269850551596726949813844628501141036046921378091228175756895094907642727978538010232533477626816968278133667919931773829182720890720980317019943019807420295382567789276332474219658852981647736289828423702768709680668799447119553476817326519033020529912943429986526728553132498608462043717743771825377222204757902971960287268787687395747613028756737277685690007333753313952151379591564789413752761350123093922078472416089294183640604703288375270686765107903696364712546088420176253316683250865370440036794271352880912516294226331158715242857503100704355015665340481927896158933396623516581604078013854931894714631214178411441522539731170990117125163101500776012403493443417880354502730641812097656323729797800209162370976735410369424572725283901526810303812124747179591634326855189923400705680805214340495581853079040476197222016032004197068244522320174761766821920908367255986032012155653565282621169462856267785099111420962124477805180595872595006392971141276355011702174268665549503834512812817085709373039717431951702521128826644847826322195140546588265877933359567028706132151184243787717180737524208015096563788453489384551240693023199594478075730992431844621106960443501467657939916216329818428347333472123462298735621782058265807576093663868620634933204135814504242458780952563009224710260429410190108265163950313987509376064358709356583039363973670652453432930295905390195449035717261983359262035607817181195619977183161747384584233849271309408061429796626938631392010335083954814641956543388427992521579806596465142192107694885102657706643177707632429975043808120218701336068027991236867928694207922754119977363474375796052889115657653794097137615817152585593545371116903238749249218881277551336615388773359736756479847160566873835916613084343021443792460325945860248589089415765863242672407226026420924608735448542085265400419885486343257353097226533268660752254068031887192397328448450622110840109916735756369546971348261276668394931104601040641486702433719683631665096395481905233687609874221273725345105971206809599030577705481566513514381883940929919737798960335095919013850058353698122145928930847554519378147823160894449970942228924463727830212703212759768357592809282133822017539302969435099323391066954442900879946979721187059987826583296636452154333401424602801778317653247271083701620433885648178125291683906583483930262356602145390676676570306241915783476407690508861476045136279319527487188021374323362231065741682150270001540042297909334910614819945019710406398230150491000762187932818711423428844688742074849730344956567144440158628848148847722939541449582107951615791131285464902112165283129107572357436555809324397203886092363844999269731491537662280808279426685130151307690199168439185565341959882537153588953096709799306945350429474455166894763119733398555377267431740787948759759654440755074708150726008085284910988605067359023972484138905963398802044564340421331342327905443679024636093036846392371287650372384932877473674612211106137241670508521335714938071824143619617418930436465230368907271537156852077856386031481859309204987143825442738595925963905177478157336736885962075632149890416311163069410715912296225250160875055827686327578013072920479527516662870395537048270245424977786603573157074788099151211747734973379332351329366109647682085009975640470472238771915887967743927427532987454583584288764157346240210147137138658767549214433909901165220834565262429020310768257081892781993508914749382001220857211935268808590438900636355511637309219389082898585596666466803230134343391113519167259369149792995359656000742956779247152724834363663619647391840737426388621595055152656398418174234624065009361271696568632810850132157110368981479813287821631292831573305540777254972087505840611794483481842576046106668688004499478606148625894766308107191682494632226775331403880749016822334689340700548736359380784009566537680311017634928861065900038398650081627312627005383312161834874230966282800361557955428665576668910025183837798160901919004147548757046746607891749617444842324703328613935455659638252413243942008453936303374274857302061573233474116816643309154411038603691570530589684294084044430436632095807212731112062701151114602193659586226840675774487351467461990831301367198618204455781127244925239581543604701715782808139259188963674213248546908481306380201726089567757077768615434983830318354290850759932760804256362593512700013754148434238354730164024309441277045896245653094041663901980612502050828896272204610281355591787111212473594422432679432512691366299720498586895013899870992205991870855405116960906342593017457705622059813113646661379264695112071435543223865622036017454382679248171137041958998661588025372689832014061111655086742386556927685315867091717027676345158322567170318217037261445499360478175004226925164288304173439176600530286739740156876807252007296671782379439672784029066285554893049158552337527077968123044163262419084752915044192363469125676215872548602674654842350311968223080817239824543232597430879437765076629608672714324108235284269230460861776839723232214049777122479115807036116363298910265002876898596836257738441489882244004090149811878460827238922395770016548240699434347953418389777802888513820065835798184521703496851657334757063412976815125566865072964135690763512945323143141539849386558064978559135173320864709894181517784308543557517132481947181669353266622942229511368306590966192661393767563774198536862003326660191031768531460860025739054962360101797106209847829190024133218905205802553948300269714038034573702606161965929460345004347835815379404974013776681444833044898270922650657747857737301920005765512503844485328508357295795534853652623431435714031369107655336430831873818760301970456350620377314842107041006302433403342373498649711700845735200282248921179590841195844587421282663393302644125021312734484631749487361593294921582358696610423413653306499422618333135608336647131435004689168306837595934749950184099996185868957623095460618287964714729383471942573003502880795199787440221530763418531846543893142239900519877906961498734880584088921093386046609171533660118824788673488978532832606091969522041075990955151782676134702813481837174614409852547385431997115680738501328330525859070398950342580332969997390130606763162602074374366395783530636952336487533478234510845184217903222257187770048212918734481869983442179868190862773673918725996251665457843063205245429732088105732389723314870859948876247777806668245669811088415130014219551234004283672120156271874998705531378293297740622104645508339819090556074523631344499698542060946762508996595338089298398009583303400302060942159340240615065938586366524733741593709311806865332277433189994794251520372426778656565091745058496123260577736389049706912900360305840172554467882204708961892223493244029140921096784288163474906883154831190354035764334329100612278097949471559015039663767864930522293186401933629564133132235169694422630010814786203574914425435088323758681680862968737072312250642170161412592759819971751400147676640178954364158952519425621467591931262246734897761140990238252857114309780094522200346228939874123981224406643328930381013358816048818230307487271380949516851012860345728831485402493269568862146662433397435581684984892374322795715173336625358979683644616840541259930865663036737386215732677574698015931811677293611731842203493895980501744255116352850743466971126350631800418210326463844882878221782588745834728489193669126646640209953585806870562260751403829710571960752972645036556020330277156529546038984152116960384384768755999484072174728907231374963677497185825588089383567661648972039816924377168270280034092321327624920837354466658833737856071858653071321865405401344181222339775054831972237059884428560832604594039531962217871178984329698920831027966423946005061387522195942750409805893447485699797372099812050103920762626801456017112139865772350370263012389587734659730847104711879286389969860102013577682723181462737280496742020251056409355449367459530909252547371281352705764970276756363227279498118716212009269547159721528991196421177235571394970266083497958034647517502447570575707351400574759889088586976192712351690145635967128511530442849848927267051260974063972994810764490176474657203472050857057255663202791780069930247633304465165525283928561582530754479706579959353753769095639683848599774531656786617757437793192125755407486120199007244782957016966317905303361922849705568213741605460033643770200531590105024206793322161890044338843321425668022576018139359687047960589982183634964974273281131076490213143500439682678254957519142163281223264253002381186356543306826432505418427074226270034917700068769575000609715312158931097582026356964810373352980542435883300984614234480961498087057549907746756199754979669630365302735972341198987031825345663412516659582076769791187967001888376651132128758398655017536247342220248402113992430233731657740352676586670374984347603719612420171913429936030178458069248550898689141140582497090447747204453369746649460967041798064062415364003473901924563829151256220233974638737330944829011135697618418489367958087960802674534617425575664377979920261690311237388294201441228908441981396587994987805458160563727203504316768189330169767931922487328163001433166661648336518135105535392236685098017233649860574626158523426894905604160995413944238467132494329534081814830098115871497956838504931070518434702491685816269611383212989272071770955218852742261302404330703106170453251951274416245494838064692843874463048776749139302121436188492563302742623663543134774297692895872002355396447056581891632475961338215073203886934122604962321310846406265979949281065152396267680113813980054917920373759864628222667884502600496913212367862204301826222448492129602195085998931402700285506088294461323615497606733221394580189876629409691401555737076445915046927286565041847582042552540442435174679013331025213431964220401517709178030974740633331050721557653584578578730153918990883948414361034897849794932322426317927438910544937390907265052261461062185052715936987678737031166939096992327493437776901951678764997802917076915552000657759227406707925801895846433777902297772445608287033003016745779814218351186362046531596488011830098962740496105535612570476654752348695364474684254817663704627610864068802547079548527029703294120862094458907087880686064309898487637263103986406594406399763418375154635557533514474894970236528210210859871281979403598682805685996888928357584207800914443455653102166229995625459057063894186239174639061039851626390840859235416991398461805996455026178850322882541189645478227719397787753674104777973936867871600855103888324157906305588311809633277848621734036040122513974839044242964823996564952711892269150449260381874477770453476075898762869240031386710435279536382696514265000595893912319116147372837363056913441009486807947436191084510184067186806844955704098921723595909782187265724687986871946269202051830015900117498688460258377013938834761378962320715040953451390633894664811351716596182671747148359991585741031636143504825415858406667248334691365162564475563946158448781779433838735074835127274971828185996256956397064506887286088446431338545795361751414505977635083693683045130796351375374203558507937380094156507167942538932062277639432530461188107343068240515411058642386925405807795431246492353657797432163082232674522172176198301054491940746637736867278992516659415741035520111076682104636219831816016278275791445282793366610920571565199373872139753714842709427827876064934755373872757274006357732051412111389410939252581129104290144643935046965618399268864002600190470492873548027007618202240102428176468824030437253654739121232880628819316561975460435252660244016263561608948002887970500474929558223601128924591178589637982851648081741988259607987084352532344366174041621484790279188853988604587444547255224394255658924257894147595700768446445691690150456506454573504579717685244419658039063800500612838264995165004248660048956612045907096309502776306689933305653746999591804643279842836149311374932280969108251700083859645589346412468147072936481172991640668256525894967775814933337525542284302605242450151341328806561108798778844236168552172927885689118247588673653482227358504698806030740703198600360179280584793817896745179152880730846738010044474537586905642002340772047261151609777877155949149635441888870815311165854700717805293291416444294921853830887618246672349920652115141002385674667278205064374634578926656442064444253241130632425622831158389491984849029396514320979799991187794828986110152724898653893957782535490863779940496895795731352278096174423910200822536179569175973375156999326483905648656186185802881429547166369093067215236758227457108518753317583072607061285727876308231205032467416928055535049470596191067667257588078344932641654254384031531029447536998399535070881627618102681106501636513334352065474341495250688682911620049279715826902983249000002703630648214665871836307507851876328893361757953633833721186738198869477036539506732837357060512449109537618113464465728154892745678459518528966447664502330576761558402396549729875496644261561314990469476847924922410564623798499147568079665163641819992531980722285570586607648010677746104656190863017984316555324254032515213715938211470016837440499601539991226519832809739492018465275543493398839354607570396807960717855784073145819532386352899483792716732107985264007844610342916090376749774099723315889781342553084222972405747684230440940254391143981145008740808815254422357544546044152490469015275523165978350938338028794996898876062203754694183811851528834186088144965699975518702541059698244747507172846058992217559175336722163292352674298726574106661810046516411047925578979828988061232182703040953132227695726185154293147370944877812160419080199362348583407766141253687465276664975344078958380696823762404922077065193918559641935045406196721394999638927150781131438459226749300438990071614453815922150346844882075762126846559734275006580721522142563698390375050629606603582498344153329315239081345086007087074924103152674649989656217538945830809911116783683319131167826056831928467357327838777137789660535241940720886026802258250114311196862488537470531255554353576486945679366954742054579634123460953951622701815677605364356178380286212386575678961772706430151254341255486891595489537879533713696449783997575597724901039500921307607338120143157508467044826366323835221695604802226183077645535439061176638407571731551373305130093111327605060816569902528508553381120011579034208111943061293186551900646847614221306800672980475483462305917306181149359865471935311043333515621164417718770271943418145965729259735424652008954223270922042231077809239488992227349612387869526347031223553512124123460307749463017077166792631722181346694780681543373319064991350230265652182744746489845655061903255723598397288445059438835433650263053337659137098765345369484446737095324908565588242676736267087574246043066669235215107924433514737015914480561420778651552020279272199606361065256716410424977060220373218440882188299826263552531313429697895514327899502812992788738036225469129460121974402848624152239468838811894758156622806534323275803141039463333898796544875331255619575149504662148403988597561748747295532411801656745201790724775983118054121689557804844282120479495095926833649662915603702808216536761043492222709866877629042656430072170072697659379084074777735735488534680170849606482006443093410016783813332971887436549544037688119521941350158590250406518032029469697593339792051320972301794924327397969134320181563242657966069118087302164203575261533863810296867461385246709360708860218250916746806785701596181872685116172752061841428479272918254826353889832981447695933611807341593744982871962168399473123871644284662475270089259117137772075797081111514507832549672088695955574205638037963799558962808454221166824433997331428285254910113961106815239998579737201126838331991203799507542767007876048387203939326129017867146193448025911207783045425921722451190838533260693667262400005576615053997245712644103276339889517544716026676229085948959164585235924835383809349666723238220909890195071509096221352302149976827145624459517270797089087740142253206557761571928808703576894175005153849072791960568892405097878815360410386250857234165931553302319161953842630369786466005397870751338136078493174431031523221796751859322374471379383091841989542614423987082989766524812658844304764800710103374733796175592985049498015594990220770101156861846639986585769304519660005462673645646361556447196193629679482556037015639793243917284457833301801732944320275013848741893028086679140861161722153666585153185017703165404056418036070776403593188259760778597637277410402234092683518313971393824340634548365563804948542656785564461091245750941032495364845320519119896685129704073032649236873746785970360708608536772130084639716976765483559176046733443832895357098736379218955797272517221146154420059430352150253856328589551798944213424735731415274956838149107024401987910439208880767144981772249665242688127388635261693098273338976529653925929203116506401396515833963104741453838623108033222984799455991828269428645128019370180456927486029032483331946581899761522653461778815466374878730320817062802485349470214306773323296262572559945179598642422332624046985024818179627069236898765343685341305725324312918751886924598377905710111229269026885910753169057130036249896323012022858099787302065748679631777498058795600165616199016525169625287244586503922671649705860218828071758295796167892472414189787023902697879325738885905702861652691758969748786001949748432806382536665905567339410034621128017252613509972637840529312849502583698950049452688625495330338371345776196816417715442805892559899971474215198744801897614438520595231703818405743106824264244274643657361975385710628331594104356853934980650341990834036384450342586810482436112577479025619308693730158965144098820874704366335112818565195392604110543403851195073606394904433272946272771966373933890389369174170847766449999756191258436638305677521824348985650609586447810020547190613371485403177451997620365295027071531536703382005393706088837795198967819830369800093818648248015204333315509257046310809228426714396002859197081352333393465087261419826144920195207774487384143384258466716972068507438320622726226314446667272126060000713518315287102805776263211659109637479498699804706897798341863127788512226595955479322116719118967315252559490048066495426605625799126946362200894805616004632963669769146130639283033991682196725039151796641830267723064953018511078214156023926479579223558011186472643271771783695739510610818091249770490636484165600617831094272028313396130865686902833567507024153175995205045322829699651201889775367609117254303782959348420670012625156438185284697848938851034738246952015404054805298688403781747424022159477885706438576886113116827084055470426797666330736804908131080654715897556404094246138612370352938530959119004303123887760433417079925263304771733877289512590284941340810201599950917197576610922752139236720005862491935261814939889428375586247347995474387138474969706473286092845004298311120952437476593168748977298561160727819226828902036655875406198978793714157621065361286729185697509305480601620030645161842582228576414372813012581614115078153782554689411149028588403310200580364803429452467885270046852077747005077738067799257542383148187520425470841795193399643351784874244284805956361035419644096359797319277227652990713111854678584172997146941360561485809268181390208781979364358496639371865169429889962454456597856052694725803978317524205184493359071245826094576364392937055446248960723572798723431387231424383754635513823109369197825288831366499367232193641868353011141996673204747748680024547915058028958400790286682110604650526024654855244083008798521893920323470230618134717231928532129479193259292045817319472858184145706012096343121758505729455343047779450250785870930588792578022074534230222269023849358489763717112032692186923792271899744551139544021477681075468838052232496714679263598744542595229256533353163114716727640717369010707646986185708317734876264498033477923421776097778683671748813167432667712171391561473930562445427778334519407795889678865642347806353650487958302259812816595714606605168404723329758059739183979092703634046173436359402037921195835144806507851494296735280503105773830300529137870738257533534444347838373432570340761978575830257530707317296076414297182738239525721935835700002174476724864440845607580172876986604785716031549153139754187819589840736095934568673075563302938021233020650250237823096448263757818219886143213321295656676988636422582315276951018762336869977529472050356913937037377641638520173892644489900774910805869270482454763552640431194312468098505803256913331103304046975517232641325049401324282354042272758560344352219107251654306351115200431298413951406825278764159301872526350790262251534157290144768752018639846545769849542102601140290632250619302080093295699634414608105503155651735071986892681405735457904480054385276470836619018157028600348309659856787641889624635745075163359261458881806411707206797100063851387684049487753236234417543148197511363504894532882228050044302304280963306625069823502165057618649447916323714762143092395350332906656579653418154087042434037861008984512199896751082758037577665396839720091913448679647673541853992259191027964053388144425693793371796503532826998823313259595380566916598765557200820959981302859066261267275038550614856676974364509269140185189586451840594250265887824883402931211444342957621465914807032522394650330544428981971825687580917095997805717616271631482997156466054336698015707922039217259597671665190887995430174054989249424712040242148774863729785310010208617911358970841758858624517006679870208224413585775116519173597444357294022919840729473140281242776677721884133485985632053363581661567040827238981212926595377543292753852320768245433598793853965502937500124178477622922170212266337898189601667909152489398871447602592922780034497424651806985506033007826316886579169311348299043403866342584851886931527463375734497779449518483203622622807921870433668056610294784505132627139218569536876664128423293299698428155378234478258346695168338310756436141695280226264051575573740394543947678862443449423412265561201559641522073990813250703428479786357254059685756052055582766793406820448849214052653097249520292382671640454982440306985519429592936378636748729621987430261256404347585743687475454555902058039257033354194387131830225980451752029349728916179808353463643105491611341172282723061083729938353085995403759780246553377206874638633860926344269678559031464765683608463409187682878697865016521430120637868684892751204530382403248104792380337571095177961057681240106821581032268311449834438981486076484126458872447231036669116396848563749138378812119581729996402486055732214011819237405417431778088218278820760724256801081409256189021592984719266703427877765400929498914025208588537025543190990334955093147265846008030131647187022754386687358206116170540416995107904227662493074146132658208771465324403849426551994827712557350460757610484292449619371072485900463780248433444247921297121220518169840721579722448548160416957305062451683122736528245142708279473725642999534386609625888330385443156886221137360813565983005724424299078155878122242522275268799506056248709842322284525541998392446933266078068783123305760284226997571080315600345637187918262205016959782414059046928304099871562304692153707753498195749625894103104845375007278583172591043934554769909287879132358479233496865881686095010689218833545902296362407501427798704386656210801586517984496075734047855804269631407307789820789853990116965196132325830400108708231894814151586661853078815438603124996780341113160943153025371594484712909028194221150003974780793873932624744445099364888245701855753779005161804471090341224400620430356241558988331130003862278160465675126700333656273159925570037873021834942584789568559138821918899908327280356281397187848396108118430355586880992385644259921507233902988383176517999240639379026641374641087028060409779903361308934302693361819965168617617517934789315027961542264242107842924635020863260288482131255044946074569901238072410846161023859738062661150036161805870022562665151724053930577047046668383354321082669273555911061241385633826423614329224226569336642392356563785587635216366551436057257955781028013504025864949567339854224753297089574549200588623512682068464393710379823308696942179407625591923076330790806450628241312104331227365699250593770976829191543854147316081312699072299411176285226929391988131462282044366424974682625814349219835208735520121877388167730281676726337781460407634355860129612106090686034865671126459724031006864445314933816365282918890387138393395588888095102775403388158951080445720959823510529136346793942030684228302048305458911420040616338060336348926198112164638788795859575546139273355185591871393064695816224271983470548280289325200793866240112301346258276540236092716879359358186794958852625399378465650935020265250109330128567926427648402528488148108686086939535262319195731859832323215634095061790042900329547449971454850085592996291905289830921625364049311393566606306780452083844915402291748463358528729147253933446125784950122692607751113983383709279057036558094033372776739572103274262153031989532929318111701759665824505982865227840387735402632444189852422110693804185012695647214634295932532082463776807814527850019191519126577614884127856019913816646430141222860941535499432075156184577960270858287694022165133723599250369593979484910735663288097653476402047088331425922699502423408157359807612597215847465871043203926679037593991370333494293528644887717513936157444773461337519615441575786222566629153851061321610918365425324945973810963464551969532174395222506472605414065905536140729606591462188525909030391210371362384130344645509509094795244852950616628373543790994861941096650906623984338007756586318015437811506295331027479479528182163612926304532599404406531927902370533706909768819684632172278708943554522828807323608372456518417635868369377174073370355835019023391828488223435963949157477010078122094485314113022912152523664367103087474396759872256141836156320838438891650635768285949784017765052151409679703715283087306200409476345498951161636662367608599385514790147508172605836603858263850623108939312652322756374567172889798062647250432006769548605906336308389108914589123681025339493574899532288333079345912739025217721669269853362942913518819098325195788170237658691191894634664556822880933636680522488294261202015401293096570586832609973544409729435402217348904969672934001173033801970141419454854798432957612610084378818362491265604044417378189939091209915926475987561199440300377873210335218536452612056878462285219887884779482908665563378153628316518935649482999454396176161007364208879459984139200549919958342647482119864519342347228874069923334907809104138839878564633563008022574347979977038661333848513518199639150011936503873485150738781799822341120239652352149274702377086639309243444310656826253123566697294733796488311420886458444055038447385554444141266013035398920246185894153426370987882152469299488877093757992650991748251768718606958320221804317892349722718667448939898667550392791187689677392967714698143517274296085537383243965614378472694710786258366147472460816136085336663928350376639972791275194559394027045698046790439506438213185204070972114211552372849065688044516993708763850633563910013469940046306618408494138253046309898302353903488436236194602933750009413340014332488721033016437383422729356817337323689549017331370460757845542263131497916890450639691710917259287115678685145923744189482842679616544457037979852643371176078019253486014068535007124580408662340076057110842906737293250364769736792516749363752647433060906108809078578199199560924168719899424721259863026332878139857940420677542039320787326649315199485718305258025748332651404673013052452371294379159176273566800252708543384591278919120457265412276533789212361602614844121272872813084238029678932305008972171378315402481547016681072616658920814789453380108431386396481785924925057096690220927264636800842052550435173139369794209087145041559985768957426072289640136934071251579481124871169100109725099237032034572633721962184864563966839846759006767416198928799329202511200627423575098195557605879833101110599382856013488118206315095044739555850667180989893495475555218878422038289434864883496638853615851513919635379056488232623227473135929245019507629244248834368958999358478520155742504527973041535171159627173617074230043193099634903748423519812827943391557362902917994485274906095988956882907797572175479575114805264595517903494767799436842274043749489792920750667879789252632327922980692366433603027582346163560781838508954572614041728873972157433078407720924550071573621339881691077434991532066708037575002188596336096682967403850357045099295468549111495881082561562945391917716262478906929000099432949787482448777167819304445248010553952320610328705855485803763140063804054959128076627106310638550047554111035801519048656144760559824034940032507944442072695106312213971503860671605490454321852001492087725115607883998764152907378857470304958227194359149027074483150002347686797345737648125690280278699136404163139564451312869647198558060885271685880144940665618454787630763492004386921202943096690289724128258580300087930327656855411383307857284389673855655134121903857755253641605770160158726002088492928044544307109457860233346474682054226693199428545204380674336728874283932250200088300155498651943296186917101192194003505688029400582039364465054912105751723989256358322527962268314626821371058754817435299545612286789137063655723407630462257575136167547115658129084768050232021411100369008572497702914476318983806569229133146397676984962743408052544164935174731507789740195204747596579099446611618664058065199293775933705566455178576956202434943667792513678152837072540116616281261574483625595256360221480176102832800782707922913468326860461378053400148280999992791030658804827257617137927049019238935566389722370592455350055330228425078966280197143449210336444905716828243215058629554411541448003206396393167195518312302118878451170472471843017372775519480087971658213750306695926432852790959644506730192078677495947697764834449547748570687133867726334409217174067340304367030634159360660090768286115003178703788288904236784826040615150120488399663054386463085560168247046928774098465454732554782741195404790490200618910439966730609433021127801783578089672709869706629175325011389955250830543370123358425947286493896779415959995824174164403044914103409590897225191242244032640538563156619494036847920681327916755416856241397774406895055095623549538012291907553777703737505080446861691021773400399757734958302305231584424879555753637514694523700060951994936096761516671581000856632623985356251590409568419161090284106938131100546586433664100633767167845639634527199537686203167328126691356886742196759642983169614681074255895519507265943096950544453098853740015340658160103237402667552968825523076379104028945642423774196952757863639451528975589192659643142767267201912603966937575051216151622791116057899548920293574365720989592384624399752453728376014621063418241439879462654558213682155758755078469060772915770471472556817342875669071275119126936961681215189441919095885196559051452763333956436127000679648159991382515714182525335418908065288240155813659451946059812222997891992588598372998908623798870457609323108947468739907168490741391851612436488229818521844463627910130885728071287601214312285115907033305428014583718544048337321321442323521333582031833472583297737155349334136234435179726073316283255446471230274617743739733629634630496161719284215063682461893880115362020154209801684579277693973859876464788244572437452506650011833760244667217140061934243865102688263119939737092226174095450467845264019093568587111939084854705488626443501693805882538440795398984375999240962293265491351016011977786191988242560437987893051620219927792879142206186420547204522466166089413930587604715696591373974386250590846542649236510880905193304362128572448956358518463433648525168812072636919715372716143983524017512311143432883764083262361482796315576468514457751780853259542250774922637271213525387069846087035641382635776614036730633962160462004962965416820890620170791401614086030115579202832404850043594981937920587143167863803282287384252520448154413628726029257962678364343688619815729030304477806673294789325504890464131129925546837235670575992814763387774038494673595113053414684291044705227036983375460099308800331085561777437353689966090485755052875450233140673768572771748382956662902789777753843338653727143739698136321121497976682259539795590765264916658334606218041316052302233449091453146087231543813273084525384787197033967647564752890672701464888053887891307056024163024150760199175357857502209693807610224554182041881787082654377533028659662303717091544826216069592060317544239223983497549257512339662264411970570989922302736537146174781403930649211703061304377654992141594730694506807878329892999649204123176990881965193740709255632397359754678199103071917776904529378023254997223701639294059541252911774189327473747930789845410123141344235752103515890236855392616576870659992765146603172021603229700138677103693630781807411142203692021992679831319874377883426171836581613867123736919057602182895330818067635524582592896064544432028548213355983594600970416648334094142554125532825296392644794506924400673536853342826580987247969888590557200691676460476453109522754458034046095561017047899753612323486255080339907063978997742982461572407865036449127204780959647808597595836916030463192989595540371391798639604047915116866585097784164251581254447439793431318628209096161541823662165671314901548744376400965245373599378990957923597554995325433003770840374624648923983546460438044032161643247260468584261090342729681326768329513285387261416588270380665444323458130526035362919479411293246787351949372743836355103607606866925811718643154780391505461557979648600733237847205311477815914343934953400978709948655762361617245788030712950764239954990291376337432025096828869278947024557389193863930902586596264556611640056067172977175905213947685311924391330202248477333149286195456424017470580884997741521805459682755656663406972506633162184215762003514728143601503292351680520649763695794366481366090880907291894313940500406543454016006310928783648503281238335435305573214610211471494427457252496773083377568199618190013479140090397601606348439577841742469926738788818438168983891673472560178163637034886663998288160975053985666065702763011894112268518986770914716195514095264811125339311919072552021360300292941382136593366305888462077559293965754197823403716565577725920599933609646748711828059966559628814159863786499775895647647812556207930259468635868428412713855585232656529218703324185099667626876867162075141647110365155507622840611635949639444042401022422017187847998377674340531151538413601970097318442571072799632760741321225728934773198475468682307670781977138152235807791922846522750213546372716772092431260006056010693135277632334627694151123790681262115137749541711166912749664846237900051540329424161365372681675754562001060516513553604894451743779705478807299401635565062497097041395143444805054003008730883081345397635464756820139917345820279125565503908352459868015841844412187518905987898222643144179762244537780266730484064451011299775052601322864789423610724958515241465675408847179613524979103815953164768819607913687415606742395058396883128673308546529828711719906371043767270845347964132312552120769944571148846402838053626435215873007778272203888050377458173258713837396364305474228454070402887960456298433747431247162914711821054531391738147265531613503093613724092154033301449779313156452480243327814458990041968345297135597445157246089125995030067855376062115218368262005037472482044116299383036701205300213743539567929807682073027776418865689943245243768214164659212610093913379506917807161302966466124291335283631898086632981939423993233243453164362580618391098399348712664226691591109116026076015494995205632687163969124235413624600400309298777663071803867559080728020181709418648433750154662325823238832716819669992731564837560311198708025239328847213487535627225074600128371116295675550599357591460166953712476158580579602480063944243125130897467481070096734022251299768926367198616601948237366354963192455121858178444328190727416749190963207010740053633003334350127545186280694109843935111416983408692302271534361629054104549292097603162233610149137422200011676161497817367509221899286925195971389070493715978198646904471714399202475640197135881938294751643854061598928022831867203407104888080860051966605917836307886666659036728053950626771726969611403341011252007094266484105559053268798330891829027182986495483122258154545780642972506056859317633079878146685517178838918941306996343151134657002313662777079881957344492687920934181125641551069807884828783956403954489610814757195750424904029561786422072748686042642710280440130223851631214868656064813267755209342710802122912609097691092027733023341393820642256795386572791719871436731157582241039484873575394816477206693043163994028039740511116495893776856723927664514796539399670250222643025949352771050299341009824084447834550071840500551266888564215652415446041556724375500021134914230133709119113339462293989931155327249916404391004785699424696264374459938236731758080218728441553453820834748863130558799738202696438277281759720498567573204384140205781515272717379642553225543184163365875170065187475535117103714490771285347191087115111714532420105879932231419707237369403840038579603689489287991597172418699333839096642221501733549869218318375576964808438639862869839255757589314837070870388351464449310925124730477797843168131525338134709268741364173483591699712744485944448052429576005269901541899144447524902079717504722265588770315776847430834890750678401038679713831831885759717252783301744331534416367176476788869377827755964448307431824125290464125998440221184037073954880852091108158670621242865916930893680571017228213273445858574691462430294034961246218008144061177417969274372503583654722854285040950832592068386157945005393869960306247501403961462878881756671352383060342030497201868803333756949309128634149070351175972535763151849066924296063540767027628539226411070118909520716231761274071078999831502805463554919272207946289241101052523370760470083326330137405866398825173948948943120066828470005394588720663374556656406021484978871851732395781822188954452199018551216003434467040866377495737141685090601547990844120176857033490478207363751895119843352054477816904344445779666042429204733360334005251906902069581080385341948415103825482902150097388072941218345992171409268427388246438683505521823735645169414692445445357200146102077204466729182700906084859381891821691575515802663339928139606002190612027886593664203406688487172942648525956148611478378158181372158750634627870507895353400099306274609010614138477056876943060351487642968912477322478146878971951406326639583884612563719202951532407267873771374060173696138017403638715388125492308094261870348826833095148564310361423149161040621170547067321579538206194384254683202163615197981948940341279561354810704293765607735800941860078188412311447249845218903140009122710654199019824590136003952375791966441005778330354715955906827810496680784921056797862665565609138850100362165007461005909885184717519897986941087061782709242464825742978002327512471972055784499818111767206203051952124819934607838951501140575308671366174842088813935549195521038595614339078874592672437458506148817534295394821771213245251105816850201742207112657939408729464361521264403324285792537013010259966949798290786076330794856657231185435716320864680697796577869157665442801470945786494661569896569697452903629566726317241804005944495962788693636917922287914474049580443797463326458802707216034960344497526027896119051043594068157447953132220752800058851968889455263790628336882389308666877346394800995178787134083924234020151616139561179660647395281096911642643333499992113236518931685780707139405151647072177300808364536035097561987102982564475705874330394136089174749122885713006443860435807328078115001705802828404693758811968550642614820437799972207961669289186655454084657810025629711426791549805489271633523939142076839731110685720542482327262065469573465062413430363751367827460042236468554602830453712424369285878150060684743832459667781769636516254829527430094945306190130843432084070710176808998415207628314486995203949818741876439545835428955025962843485144523535777657489280840710661285108886769598099599759348623272237084658710616691548945054861846092242932141474499590122691989508394409696535151885736084416965079695932967558680899968598732386313480627078229052033269011522796979299491650505533577020698382245816509858346617544091930916403314526376848698681918658555562305073527171786920211632810816537145524881812768725578111757300932861532726911898903829586593823052404380184994355855903161242120636409624437757646048880895359997848857009729912017464742641579704803889034793108671711932215159302093447529945499966579284077188555943964916375789971498974939373048745335619671923117664426402954909002871761196149619937414251842763087024747298828323270114124847239628022113136905975697148859042083359374922570203425147224955045408990690222342266756748705398268764136618761117862467403375447296711035057740453198383965246613863670837879940084116042485997207233443584543248400346538858530991387698325946429425752400247822299149323717912906171809674606400713525146039375086741723481766232624074350702394421978176211565082112320079190068414847319094652725946734986212795614372004283305932723840662193749213072759041029768428998919520917244262938726465443895756352818677048745889350661340889636375384737506168691302957985879379904906471379489609071632157460683439999764470193344638192664536513451368725172006342164703586719744660039207521822786097607441018881472628715522720279174368160176921774867398191790486107492773129728043323695005088753097694768629058656703949715040112025841107451904425483661783950127038973340505364697084290949495408343770430681024905712794658827295596214486715304698188826293733331621246241535038256358496969354934843458285032605951720006200175933483540639492734303365956471427485083297866565989401904681450130546546293714282352098113005102040146623997542759516609921235099750479477306340928435480418121049179302308677896760115660461474167926502355591916171321600404618072711088936396306090076892721687435130046378906052222928263244119518115874170306444210071849552744761795771158728561590188441927578279568745622164789509212121204742087021526830917028603837544502713622139171749148051404869809162954055097039080192089092843387258559199735129457008081021370286967003765230069068096606505112212844905569550057479313161658707345552630503103881170277140488793253938060886804492508613907520556561861955275593019576877573192368416580952034436322188943133773553288734943096560900824119334110931987333052033748732331821395362371740948328261952880339078145032014433735563204975301771528422066566301704289135178467345990263540823202675242128965666663577018193461857329769000554531372871577303631713167527322109966564714427005637479266199132760031568997774972075492633656580167758616661736552642139051510685823042535503138482481180820531596332971920076680819832510894614735086922007355747840360094221513219077624768674910122794108956728311023523186280453901307772810957400342128544436945191733081650998397470933424513929140557572274148144133520412965849162128931640189367740615514833998086222131824763176470745175370349951370241381623956452732312670373844894267557139257798598475952832615204164324650975184073184233390944543053935302257878450881073203551075913960180496733768953025828094289003599610498780211888480703492038672149694075534128007348767207202440867891318967733815526925028587931820795037401538821609554915139584217116616737458551094745356727566151911679142482649448298640389271175889080023056406736411718088573154250216138502935392200678382247745201163312942458395509808097370625361150502823721703485919413594832518378712861766514404160512318659326738669153123949718925285194220954816985986187265749524390325864695905971856499360276993486715043481856317975046403562334855374650816332308696201487126623753099975354577332215375244738685924720754887623922532525261973359225009907073908360497209657235762350861634620301666095044765096060966105762929249797636530600008986280043308147907694808371280850085572716287352976613375141038028059099931839470398724011999630390217066647959695994695324609850284226074360924107502044666063734860406376682955902647107150480825895216294993712301851600584456705998851872825595008390693441046751368669698982884024942689435093274958235465754150915257205742677382999542542260051760270843823565889251613142176716155474125342061101769162169854849309912007779116883933203778445351883722732094942294982975115084420994814941114865019955259669940729450907450307481785759215802800516677204696856801547569052704802097113187234234226031307480294906168552739518856788859721768387785783692254209801520857453515772877375417088640893400979511477995546025089451971627614090766934274084042439280345180564593631208020108316157601853030226928546945287245564274742563891934218242575053671057135510280480547791793491282377787425967656968740513261368175281636354754154968990069809290663146392073316905572401904817089620711412064219774548775794740819965793549398964478016833096405367843457351338838912900960975985096354970811405633962533183984035985670111569141395398217986887660696836134290645318988253374323874050297356937018771372305296988294212512153165210949441901003591839194342194793370741068292726383191388961250514682482895028979511584771063418273337456819570525361149436223868654828961860972146407798447932609478223304580222043963789433204801942428292117206159144486143607489296620646286822645076192504207149958844434725882573955488462454958571774292398620061834319910451003509554096353662402124180806722258698771075886369964734698451976099343163004296261287951743177112045030846348448697374218881159383296366291675439375865084022102487379602868718968298565472684903349937568852610865643942959573324195179970407600987385556222500078957182992541987046297274592220062690944596999098138954309199718800396652861057438084374012739557269895847963348589688123857542139783184062647263866414247255118649054374205301506780458807686052691246134533431222275000325109416220494377248345667232567769172890979640903631407906165303140881527142049836881171485680255426733430675861749276967329412020824245593432811988043524497174984782740482175624489572112877982426293109887390537599761547537557890101840945980035011660773588518040846718467458183199599313592937574610470929108778707174915062109553977061466514171578353597679316491722299184076953670300478405732016213000158348513592835364910570348240148311821070948908670770210432195493538568667246603979953762938023872252455238292866725162960086811410033911356727907953585623149744769617241476309708734610573083072955824560690679512600247234879592961225635853144046691590244339484076137167649533606081137936043191204907580572103218914533171298450998379425145928429679282108904702861771049169353327515999975470116967000729525894551995883414706595007520078491126064002501322196870104617534048687296124564642316785933600197225989532015409939690011080530477629637931429229321167067489390066095873191597955568856817396905391327595090427570163579771246578676134453241536277078384443448530830977500085580185434228268259432666883449603633324376393233190974084284169255062226562807250074042046033284550313190777801283259584402536199222757728064039592706601660017917561207162719593244815980068200115655435280195999123790289409546436707288697724952001679868668563488789053982476669213716732098604278185695818954174485539136744897721082936950920273228209532036188971711690124347619346232262745446790559609178962839995717062694596310170446378406929966464990284785239852084402824311721380117519747506662747360754413575168484940188553842935216124792340950868299470417685273649437284586425553718295632936649117825419361449885535842118419098045941760688432344385424036049746619722922640172807679753109612460382915358110654560826228478650580557813958571525980884509898607805017531872480826635079303735563940754873220049323132125164296657351567658517745054838592063388465608800082978679843957880143988927460857462581677459253898238231129033179698716466421852709722278627019567270644045668889668531780494331449014201564808315142447773015688465752630681608214858399567261641683824679393016363423685305296905080934613697449347291796339853810332258082921237487220559045471252955682769642688030182272359372806623988710356104470017618787172443807945441689178742041922244048627556957048116234974760542688096452963472396993414808664561833934892917048344934599264701500153656951019460908129919889834803706897945083469076003387765122091525706348995310775120131577952671724597204659355535033557215723596562304954122945261724111942364944884155202482995049363263828625736055431834690325482789891475374201793743879063651466093065951617379037934786177933541016363386682159380109646464777562045713427899794538139613507869802882341358073823788913662368554611520656015442789839208453323586358959200456590679799625776726243362810394551278223082672802296267973034529249745870598957212341237434753997322083461752041360786064697895902520596461607283281875676163116555795844416839138171244579733423406561110160523384665068451873573236264585989031408625052055432701203235997979503758054768526425283174603284462435599906456131503425228273608660519478770616901553943822461774182067449820401573472103036226935660969260720258535261103757424176339086818901103529434851332862553102650930519716578683758943321810540606836974371643152502480704207749372012238342238526917391650959827793515826687281349414742663970378568723290693686693068348902896333785396338509108783738714235128577116060446356112820257535012814264828961700720401064194002164875837057984297255040913423526465715829574597025230108583599898645848726034619522224040220665080140327484824074780227180435010951344952061188112699119670864240058075973671611053069237516495068901425003406538730283075478208113331950444446377618414527508936554163378509362421042331057805042673425098703911724207622511669575411385825315539119600450982617623437579512368380164229293238975038618073374575591837190561532674718804861275254557604180702073420960077158179152984986627616315627052270259037789474028723169413920259613068813188311972089489923339467573488369646204847547205343942746239957746086375372915193519792704829558175397724198473840925491104511040998550212103946551856595566027994947455133835870067796573915582553300249679794725422469827066045315919423903761709956990931308122289804903628237690954316062619422012643218221727561641874469329037336939596992071210484915535399821428950137516737362828094625367721275060716211580541319629657318518492192092113189219093541531890851728485744276279888191928474294368154634177936210224177512820159814472150942322595245323254598760524357787088777865789154314743818590471400943332595801828223764859391677110721195886753897621299773366596345950453367253512245822134547068177811731474856865005206677106521237104878437674957917510677551920792135785737460135011579934895838482922957184192445227922601656840988440881351295003891819225923997233018462021688698471738721032680596351950177117269869070995672663936637353836857688831849675837672286208112930879449680202853843128929866500659863460890442416442082451597247170628044466111722533217164056215541135259495701512640540476488194890654152386022241492942130640559993844021174396070231898611639234524289765961817844596561664861194171514909734813507186879609047694178592907352152245983506457396580082381494039538572643760924855905800976413937743635845590575330533528652612568344403918295188602097688464108904579723282015677409854382305935850947099191600222743044883098100044965570725785730606589289183505700677923322142539252654190928176223982752803423494031268129010721806461632618447414075346578721727364544417680195562365601258452013255493045770940983395693044142535583601634450643600114393139241832792597718436472169560128660591458994431336755904720089113465279651835679690776457370680606611745123440610800046506195367034424267862143840283393001848977410192483664944284324901093404228405591832018651350865317794838154287843656093453053748305101065038643543218161281661348330622646552454735182988526197567679991320637236923235744757333392232816896086984494644916882116302681342603202848202784993224797527327956893816522796090922283748911621532936672525672114520711612204180833957853887801633878080563085329713244278914866720653783081880199164486798456314409557334290397654458893830493359321249805421313269011798202440517621109331868069040332546996038901080326323812657333415471438682653843361905185514859735689874044601241812980169408518005967498173634588019824326633589056769903797251105046094616882259072320768435336531184676363943259774821290300622913845125392340088365199314726313150176370896854767667989053266324818883634401956842081524173314050940415522235881057582157514419258107050995449379901483531908218734447898487647163569350034553560628770395636977307250670377586128267606814869803840922861014021664920895065472354444012504381714187986951541506694665464135384797353439063207032796093292271537134696344322168086514206362762101950444581570973425947816545687861993530614162139454683187133726583418392250119643094304992221126817895255911619369446548705873476660687300348211792400634488577250756014283074173867185173078502208171493162569326064076082563546542956952569765557833425851770676323682053657194545771998735816772758195421956968041328867641384332913721102564909346681069071262994438802813597417117902496155444521534734044815783982212788870642335841669940614559879169030854017852430867630279339280718061260687054192838905187787926771982796667512504481341758168003621575781286582411767050982312739410500162444569445977721035190837339274851301002395486622316058959800291311156400926021160810377870018686994506664470481364131347799859979299149968225545524835036624607377904237919539746747749253647149907147487586660159965354778858136019053194113927606481426267544136014932205438484617877380595518119243979521172626618192202148991822817688422045129782441815309947970468305135973838536044314424022023789846465133705620170091439340604530705310115557160497634276092710163959706804742604423381661405021856194764966293215700261583139367257337742623347180822968706653379380528260364971627157054200076307398476691471202453899146977709229811431805174025698569183762497148805016253243738470413706734887710192173041932691587428505785090712175967382478016470870822284509168372274613133994781823613313954151403105681885352934587269338453783244134415367551797823824758733368776228305945379226713847429207866885943832720555299527427872579574426092533552929403010664534570207499213861579621002069897745216413399510671793285094241823897096387320866443170248164273313975194420491952647127177144484282169436660299884534044131078046802479241536025437180826136677985861973658827113008925874388662131289259681088535736503523284324677338620718256338885563688480596765150228914299426468442979810574240207936653631944361199724029998680022021221996536047186836839382504565999708905131335341909546149437878268458965551608605699613849714693574927196770457916266737428360098060374089386040050612482034086314770711659364806152614927520646035234172134940720772131177753577448149982803595250118153409625627640340359014673196358277520824627355690077168983529391084826763953340298055765192884265714534089998748187014887640897971326024429388199580384144751313739418868267591221593249769041154126550570417558420027429174335375546082106394164096406444389029714618190768061320029614096691856743955748294759944975765997312396387824027125999003850559661297556796186949640896379070810419049444623642725291953280772232287774445176461804179435316253885930621746522845205187319109782377067018705650965276254404646920477620061788186500291030734780351335857445653724293471463638337152040052135083473123833710920358014763648451236206485862705892341212030261069355448703460579529515241396809678949411892740500866928076137257084468669462491895945607492435376437386923193515200449362101994422341611619578420027739641458574900377342576742737987432071036249722436149774323375277924529046041396019800878397700263108558601708979551998288085030714917897743320664878716880155217138038648389813607311280460361193221466790664892566964148126665598252394059541593537529730322538399164052889034916458038001561680514926525317155548066297955625517082797607604158985532304523246694197622354129185320739803537628268744399720128228732239734737058175148415246462790852229723782043517391806222688236952186016672517904869745683109086426028890037263301204421849277509747633425782344349781155667996923535159010580299686015531761886440848725072344677867092591068857129865279998950761082217055006407425751959751621132111573060996921021387778724885253028698981265363367087043227008419261904733873218071971752307818715599134532036488060727495752130763341833018628405530259381831941697804554560060929575544304388017840227331656071669094548024746146053498852633870250405886412058894507235347219633448411943326024939362202495510675388313956741789761757291512611750980059325175539612001657503440939499807150132642519248200662384048256160071663186676053616969238696646202527404399397597390897832239141407943244252072776288323387464832579703125314894144203684633703118526753476596329262923368028319291951186769363641986175749211476567777492411530960924080737556304920908545602938092484881631764332875186106419180891859285926528747736632211237407918493079129956111249048759571690288392557934931480451781904705406606318118062847361057580429017642115397129060942148747177581261912536790109127382880125501332454151576101066975340078837543261980009637864795722030352130499530216802808099211172351640233136456157182057110347662447481938013156271492996861843195593721322800009578630871872594233325897724024183835184567532249629306734044287975601457647339397294016062949494134177738119811603293815796097139075714355899628023651629683505141486439203086382370677287681524233835819607325961450083708619495947729458810425797356070213303149776682875687329448504078741971161096855280961450115820372175603255904937555656013688348926378409664663393615238161280385738232880177021083335987919925144836495824632376344469147694513669833482498286052305760607380393905375250146127545022202305795686256908408779469298227841060457947373464717032018673947678302601352715918146316369352601158976639618167296407017851789721006128176870695887599102219809940151246428572820331918761616758801272617101116077038312667860837985729901877872259174396006169247072750874642468958235688240697709332441836606175924314190737755488083345997604852005355255324547537451807973494129980545931031135718777570330158274856998248347312483057258778866563938449127307849338137608828647057190585596960762792008057519931718515027458732483421833275021838609177854671436250633797927174382395728212935198789762566970698436954227577971845241289734658223525446754480980708731497091564899930477501909880330131369462921027331005618427975653418952833903743979104087197546607590956525444095480544492025761848774780440351074809569727683403951162183150473236030276448687255490775114289899426757024395856447247518345819883977942681308417529858979310884977189763868822968147036434022052063492376816794759356543660666524958109088027539966905142405683381383135180623490305719452772317933046723236573720335516196423455496802573500002039602644109369118274390686555349076238414776705850400980798676477350446913291912323117989760111134255623007926824661119466867335559069294187499416109336706229073796822943060665092447204772507597656373374122738628616775817662715892844949408042338250767086575936669297926321715627290512974283566461268312853713338821070010072553594363893132784404976071047551386729138320313519383191571658001087911583631343780294438110319806829209728188332615374967709949373608187005591477805616834973891663956330436334356859248439883999473604309972503687617895232165534508276814384429159092530689423060132774613509827378074775777413083172553295343259195578047463598932403386004170762396420163609429555416536770819218489577160993260449589562065654269681688182936093219318563076752197363046809741325965867750056489430080467664603165008817063550624858813544990519623444570625341289668843064177826479434708479818709726579865330299894584568713997240926425059748528522668928779441088755308730009628227360323474354398125671091390619483102220076032694962893738987561477194036166604563627101887335308540831967018889125674060669022759241968379435018340009499996257199621326956177220293222746698890623939358912393484057963728452171972753478667449403731269343911394889425841962630827398487370838724540586429779942486379445773334212835614245184217345314471785121598881467672299738354161646555121030404184617021779171216302779930713821423578751515403059965475409947926557910738075356066894056573266620231826663187130979012090894650620825981434432029044987142415796711302559262263204833402041819413185567877597570484316317452199346920827764173699194580610122584978954009735018150862276677990003403964891454273841431517105189168372450403087600715280694183219006300117441521637054440859440314929884090934074456141471740166248572089257329659015281747785613131758597641535602128936018182093261759792751030205103105449862381318423889493145484599930073754619902502009142070574829483355675283118136320452815209433084287977519207757241293835284011288054868862867917676637622081165118094440915912536490793814657002488353859274570198203639420395562007379853906639680460193849618130400258022930644052877845897415796532794632634499866664845803506014835080792302365560973774864413162184651290348778810206744448313383662865071887739875219625847697059263419061035398874017225368084510317510427848729426583690517490064174130678311256999792081354198123487526689052759261858135899465657214998151009039420898536726473464547309010519230988516741006364144241893242452781683695955162023290533006864757266812215926747569148839202744646137598931078812094595132252805344557335234605178333129334462828368789616749893427239628861394455902813629872586399637654843471794246293955726635354080804349815464861855499250915176459758065025849182131192494520824865283940994924283425701376546566917749438548176547992009444104472000142260569185832593760695923610153157416073875567274166737470435186463542867646762284912976043021288821772150234612902167111079349212219342578001039173486322220307550619158698239899124922451186951190623371091499084198563159287851947722912598095752672466620102523250460169485720279970226636446390087820525490516374632869089630160162916746191363439417413953661240143939550240843511080317261158121788328638275793072801856862994991163840017102174077989349725929883431434444232235438817659676419291419809322819346261290809786058614408051894442385799025888278786474818873325934333945996212373020630791492832857681034897938847776110727237768532001929844749178817411379410056469287011674349768410036996606907494824159655975066223868939947961535212591588245100845459979729528509166361970280355499564060771043011458833199301293900363954261082830225793787353082422418887786529049985828247780176880604013676452401716535721101862960369082212375374748652573210456200183241154993322582453657231472568350081529987929955980092203368244548996160272805147698095750449078948867860194345685310557976554743136321720720503359797579751970903573588132747637582070780078391832769407608094809283186639097726902635693615678914307659895511143894840263242647296450372912011489515702876292288093891497361323310627621943944495463078669753906362696060192198292824045665228126886725095275176837328990323821111444810954614491854765726293749786579510104858352521046040973415180139911811572157824383543429806167311282113834657897238336262150586206277197147016105666365867609568850253659737863617363601683984399108093937142641381487300989592111828575409861993972250218321425453480759288518954163358749914146424546170269833048138613874940829349636534497716575044059641185516237163557871195135065128045040518025137416141551796898452075601324286477180780612553961696309118878512432743447197539408120893844713167728254319045781058160489289389270928238895751892347594973826439363503692817295881203429028514923677084432252703721507132003368533418229174935189423299771594827249793465738662109174446100149842337653304921948759126527129741646942134358705145016096709982081678672538778397914700235375890321758743269023411289575905666514811319529590859497208147697098474768886679338434912914719444515703077888440624288484132434585526094007951313633590117898529033374571368608587593848642995594445735630817551997486848078296585637115767141149388990317307093796867207138327907222181278657303828258731948683477239688601795323869964896658045381827154756194061465182753139139158226099728706206539930542719120453970014117838667673327840345399393197093473768577741670848382468545348467764614580841052873121281374938305897402407995349228575435353348697508347322779331790791561473189953850928932673073867390764664973057788899449076918835725849999544755239940016844853623647314732536488040193165738436783519313619499128249058846306181655892752485895521091993186360009386209328377208611525411481560526643410587199322206662853787285937308955358969491131245041127612996303690984443070130226223060170692324247070563154575687819612305633139380953739890799194117879683219016249296307683751452449897313502014167402380565610969515524358612489892723496320876379283650413698666868584113783505915627542805743545689610531106699268650776874863121808532610354747850761161519729175927989361608648646807528242063270967335865975561744319423098914569112940386219470197992520826602397350207218252229986191213134637965081338896632942581920290221427236845156195877654575708692892756106539710257893504941075763175185857476697697430471907347512681204823929993752105925772108983894421757012611664638100901797686857332865490813195372347100924012221839859504277783270222830967085809493819874077121820171326628386147340899658322897306426763721818914483446291318987410482668574596074605612915172626801512764229893332237159292431303599766100896522948097200861312914015832572857350199825755331338588711422687027195961133843854527115975685721767127953088545095649394606283555104166252161927388656922650163038657988994721662359941699938605144065431030108405505951711738675444567918056425483134043105374325349503093226011877923557195698092994581664462895623506923251173321449036589878575061224750985310910027957092358548987224984684248773576260573006291615640385850576958078471092287524146425032211278868083264890423549865813923198714523638846727166633721338247192113380066637184794827545128224261700557295902898385449214700264259792416044454932298498698916852930723641842943403964569989711013103330121655033071905258120666286092554489641080332367121729221479515597006257108951499326007747816409962926785272441590319911315982470873477257656138647199680110945276008227493882457775189229856089836195737955245790254017583922143100615468002184119498588234120993053336653660153865333663999965449265202917670868154146915409958859638817557125261406962861217446193756133072198676152058785406334558222982103302176184394568993555425421554749890515915689797576340207349364335051168886054452963431608011455097678719039379288504166489701887037784139145412183217698156637598429738846224103095327312621931176935986637261022290158754218418382785253650921667862134148375341440512071391986095309686489071224055102257439265852958897513647978079362302590912165094138893192662692442390529838718493530957067521033236125824030491037180620452789870924871192728020526690429041747740756066412753051092026164647488952669056656813905050880988939346941013903378996161669885023006536261375409260883984511264469673996866778509692199279902649053761708237849885590773765330787716809515305858702615696261908077512719172201008328082298827376722909470198103750580236232664424839868095460439520319554417921158502605465953569297827658052603462039014991874974755113636489939751998597803752441523588778150279753654631580331356367068095597787994535515611120784741677461794344187639779956060652614942442367071382589081603312614688725617183558219453928336528483871918414647686809566808674468660076262073067249376713586557891293127747382290566986815482105263437307620615011708858272753280199333808696437261816288745853540496384989768100682985207567674434222676160632223189236758206775604163032765006530313139944261155046218630991383847457893091303248565980105256732808529217806470091154470137240997975406340823296157671807654263399336649099891511430712800291848539258167672995925925852263909694785027836256616546921721729850194103149491155629644330982260678870247190408430299742333800725484790255492237223880320136776552797612522738587793384985772078981535062349717551701048037236672219455762020184644002769380686500648565530185569168727517491647673387903093273163985686418675164272988626015865235590387043624982617969589092968704360406064538361539836178223255291415140972114768587357726254383276249207482789912272087486113494931583825743245963029561741687618115949342292850851177119667930609014889964531970711559542178714503933955068997260300730340454445927508876992527683685015590640534977379498577955631960407707252103947130202313667167277043027027813641905068999252738398041214113554590056846468321403343009809742517722012219741913868887970444976577979494543274998685147347783974523144749273602364485652864145862471067586500086084243149421203891328112229459859274462715830146826847028038259876395918827308677045686758369044076818789432543140049816207196419288641947073377251067478926425368470533979995578312607047595580529281002150985315108889119310737283262278150215177172597846966255838713358676885521113719014601749956515914577310431542792641099088867139260973090585385365252149061043276568264367465717924516751272775257195497587764902388041541039350474316275571859802756874449967555450105444920730694113137059696134691472845587784409682820801550414926593805033497890724359526882731741612449623856975790547101569715656790611936759409266999384411240167788804609414295593836301955215422745123265222463720994631319139499297894069872472440419962420702694708699184843642686982294026976829180958739998170440120900153822653465424880654153873345346454017017936276439699956003717592522538532985931010587262253138937789991299154064189127509713094089645420925221806714280196745144256108061447664986875056920512825248465588012231177287269933713838374702008319124984191003168934513826250887750743823863735731368585220906848037204393259115975320305311648254192528003420544748842660644639500571202685268967554053194713861202687113130664679499081141961478948225544935286940236012477649628675356987561352227872729080608535091599182368835613640034470967504534178780611809644964285938361261479995454475607312542319989761510175342740975796157681218131091880941393340961173391786920411111681662933363158385889695510835614636516198847865519546756843116993665330394489933811216127546927656923218189764057922127074763198504373890584625618520518280680484538441874347138321508746364023714036466325781032146991743925975138362973071426433749533490991753500256039947054838300208304044153450979717729351350632130891633746662644867175532110594320678374190040589005614728070547642123666202677987526544228923698987907969873195310276145188848259270302082981652511454134985882521968472250148185454993686422020263082139177020767256386813665641192429563250815923090287316400519311786792373501975334230189694186274521065602919260795831004745089979698010777288748066533090150030053782306364735266892635706823258603306103961581285227845927390024261135117661093688957848961068263653507399509739853436355694366568624021748089616145172699592562190645391907321082300050656884182528328674975922198623427902410215015150544610659581283819187311779455120251217348774704269575802303139178732956779836240756625381575564754816036682114265949167820970488042835972802374835405600635648581775357989181339778947402536411520525675451143983166622701430046840574669242191599978451851667787105575475270294651194533647361080556110990439898122556805285818899832635045788048900742833814915153332732985274944526321999905100165070128239802006701253416234807469044281116133328279541984979151380934458515751816712349995169504028081130231650293926490845757814787953242436437877258240118011482279437968901269351364684090470014129941804472427982943801178242318131397817777531101343756855019985208825209656245826546566333633785635387585651066159530750113030079894377918546809615433196824455437200324854187386213185465997309596644909799499467062667198895035743916969365057832253382763226605555843185534585547724127696015720720102682673541471989311547340836506787642775104401901224094934077216224038960109727884833789117957261014662911976748377713859027896257845983665738811139113670482997085126726025368225398281704332077849216303612725987578264423060679344733277759874573111521361857168978017355081543475703404147191959811592207016727776777875382330559465043356630520990118749439077338618402096850587703297744832073884934752655246318340500051699009914959020028272706230442432043078129715396661814643563167358872623805014725223737527865141623451460015879280007974153004983620857660485145071622602399765352363903223785897311212531993754849920591676446791245237155543983701419303676307474031562631781510083906547394017481195978127343432401940886361365263356292478687223284853554822671768023186979889401398315237169215092773609300517593536300277089500718370731199726429141749552405362303151309909767522695736715388704310242920955167087402728889642597999560438817800713443031311121575686977512588955793524127317454537598347438202002781270017370529918579441413334148139030370504660224394764318762751948472153931103351998575766951317078547601405271924069919882278905458085033433793748365575592670319799034473190777434197532733913117335735870837518998556418138481349600685310518202039928430244961558854647979223450486701953653911833298994624606224357230003962560892774068153716610518161901116836561970213063820578802360825837913970160222309993764174690233715863136882702065705338033105947064825367469596180829616736118687437144103394411046300997999333096639801156341773709387861478214695282828209713483584516632138528992652469174875684662965311142487191452091468951237463739643206837622791658938375794575529384588415007865892293543145938721419209655640014107031811853402997207725280225801231827865004291700883815722848717027592354405167087137461459907270856104029690301369084648541710049800425806821581223954969913888930997414427952416853384713961808955470432307482675938994694497351244519766368941075412744113111973345372691311615903856117150901701705387344681616193215535035861712248528823603065614338201910128937575999651772063665348961412026069370430377548714578637761414243144991163318598422976077672218017909973045512557040827185288271651894121838003496332806478791544502451195251025652167648099710655522092593237955391737181872879036510652873145729557031559098336030150740150508639648056255460470498602647698373836117329459116564357718070890418723699408777742605833165258831489815204002869888699782709809401151540255075307415063192707726066664629715739363252603154104812013392491115198524879056271336838185805213885293555894499277211317384404351878784970576775343473841215784880072681947483840533764219132685580707156728641149450255194995123844371768437209301058463674445659506627020506406998832137090429992018708181918549942457523810492784423872275993300108023003902909059900862369141685119892309808675872329236181930053598677554610269199151601253185643132106267460310832310353598340318455343914473921583955478154910252192351962972608897056263481320291875221450336064058416718283730860718844491452165783445079514721874597715353384480389370861521266012246509139149424218902003314915710096138093647550124806265610219151396763373672267869662978845982671801421800524475432077705398899513013957231693078933078157369654356062475027591917850434820247775747072297693895572977069167814147805349705135588935233713765090966461558070855833671885479466964403529180322076551591384735862400789466867691984759577339291207508122478951400963981151481187404045739188061247865044885589539279117830630161024470180524867047860612764742960072832253965161613734180689328250831939552388381801348224490700231038266201333148770588322840507648402559976513392821894259787422408209882717508570635313956309773439701696127622765076696984057693570230162645742354340581478250394555028323276066336349466252363381178215128303321992292393877195752004964783681005249809359373399736989895331437866409020039736662790436568181394315646137264011751671959618811363385591005553631711503797048222819179356619505045612903700866755226566018706480396189872168619722068819541966560972941240287264484643712364893139856009560216543189176497456440621382818804217221010314881707814436293908519741547365095390347373294765100055076813016656676243541249155583129691040507801423286733005760643409375639035930244113981643478408938296287971333970379251530215476314833545148974419688100836518403669797407962417050254176779862499176809085799321798984420165879501162284482558899299824751772374538198231880428566446935275715850197795801587517843035754197060230335627142602467677567978891661774930128001713474629306196892204527204917376865432910170154096637719775061019008395506140177803493485050278387566128727543829016621309048270362134359767150922572683148089036941867589471735967610868991933701927416725103587499085635726325391766411553932975700437738080518851429616620407039487432197399088660175088509994219105881695873793537167707868437778179837551522738758264887658900538296144722991076983268777674728702936126398518572248350472939536486107051396047761409605183107905774894499542837731121313980214330867207781464538369337031705459696002459948758170639797149541029292880249759125881271192646203407187293914836108114519859722262328869210297260458857970940320421448293125516853971163570113155410966626805300612629859985959432209347052175520508425109992643660895835825990698512887213862650587768399986697639565531565066112377853792132485074162587386434828077750436430064139793284762837846434953539919280960177639118955134195882575886866269242403006498050449643485423470096043098515609905929158042869651717025602915012129680991582571352982787995245271491852765531103547266880952283667017703227888395279925168686987035379998979273341794548677787030627933020550100534187690859690845266971495659372463528604394216970951647283099634894184244850516195960852830848855295598617401112514392998209414690644019322258903164918400586710832441955351448482394413660641100142060721837417729296262234214872866860107194799263172225888847708066068925815063574669896294642950167994186416587795765407499733679397206031498847519783569937814326996987644479615765899894491219878868765451308398539657264220152230866925858298466734874628264362547257561773089919515009234711540764863472019878989603878608659178828003941477688039779382244263455751680435307955343901079386006954594421498300383287849872333083329732553200255945615754062503031475059810389609966265148992144497249414456470966820336107441992483239707332492702132109343317312272583949576258166992445561537573862571851612465342074425401748953001137898834840597840676820372490580096706625895196048001268182914541269960164337527856442802722051719830745368072208191978609176455774278079228285792749002650850830002869951769902847266107045875046026331323970516979122374252357629422207421741503995267504959251507403980188674049619787714844398358826498042649543880857535296408274695203720892860002489864814280974576223354406606373438556294169395620752436985028343683970703887112501126060626810920650016325043413014668628594664732239144881675551953911687422861709545623790525045334344988690887785684112801549289479468204524711484625071115683661139218727999404505134909101775713286810680077538015889378529864481950731785552510099341630961850289119503864709019608906394921882906398156423800924957200943207907338688932132734830581718538100569111577810267636439885838225890058536988337178575318115809209660110763805999612413293142874706259164430068237211961157728755871115712727679331015573089888016392651622093753254079603037939709780462464351975137559046004023715119430726870516606053924585793208683272543778960746151125456498036305980029081716153821417428218099231209320050559563304315211597597131982916629998523860478831595867851945952396656987326688016423490399204819431888636935568203575689808885982444278314282983416710960616444661391457893574368452572357618034465932640163823675187572625512082906044956312869880036637005394719655710350868451630840793554275905269003320882777673682062619457317084340766556635593042082858852254739731078869232259791589688959354859418103277782245016776580064607504271362717693016030559737436651906450503305102767989580259290933474223603218764315202956758740861032227944462507202617451335905338904222063971344715845363017217417629907141575787075351070679254319792247282081158777590932539891710993010487074484593389795408850941516487684881553466349738882956975637462236860391266536991207483880709755548576445713942476323833381657147727681025911066405446240885232680174819454470829693429549462882171228566512429519388689028957806956087608415050198694635095836167511212392434746357160478121744152095469282363723994279518362247190480222347917703915999943533145636918289424565694052001349761381068412876623279438445463048133870276373015248402448313850777946213028976839526361766825922223375588282768563770094835948750296541504496861464552060720779904837256980912737334299627868528041965506666053718155359988974625017552374941766252371313451727096629532333966372745573727844600312258255848486137869417979513383951318030134157854851121845836787858831192930929004621886530658793838957092791007051093573627907771235621711405941415361145644510387517605521642351601667543655435751701530041088555736383034773075423054774487857545530244804924775454611662673931663010239250094223161509962477444969519987905235068693187197695888868496252649567818864276083051364233571948463843616069833995173896904223606902593940842967109496016594109595124006546201292554660204983000597579700572395520607415679048846524629432457841542548528302308143626909563984854586094594794480336195659135175954079814788655386197854777893329172110328880640912089477145505230110966732096427991293979520277486462931126464797349826713596114221526548879390622444278504258567761737152763660147725928147816494538900653865782593104325926346088234997850230229854711970590847770004810797548165206094258586034710353368907237502185734235992853858815499342944960458593829451129137827605346085456686682451121948944510640897487943756948986649437012480419395416760980635538091391344346256826915426213368425019085758111904991529874076662707017179888930661184266948385422693712261155700628979473236451211003520082612945323571902069830965783728556991298774344281998661334577459937978227530860384949686874489606486608881803795995230656076517998826912523849910015292924677525041840137900093292116536810501653016338834400424181866971628933228174464048070419743066741264104821280473011277821959159576994842988575597991643824022665450842152244616844996445347844885410102945297311998130188021423653530499018450788704928235246805662215080411233478875938140783382014325567911842428684755533174527945816972287738973581684154613857757567512919511752003480945201781937900504211530496190873479976070203248490632093404482843757670642714453554994940845428571424268294618399783392670211813681368182761198902311136424887152443036624385264956969303493796093523942680074244273895760381292930209254483135217287076913470380259510312848941832685150860666840254908225512000503425503089502034390582751966523306917328480560547830706048164733498145336232979348834730981306024307849693430557697434164186217223828849084281646082002852355460595494121612795203911415370627975090618658383644101584491082567874816713758921505909010305303935875236089212805964179232193554226092134359459242851719141886669476020380851397505330581917856746939657703421401580747906734454182593629170959232491342812851166149598040002345387646209642792637658629527223199886842110780131003601042162679672541453907985735083289006243044542351897772831689043859167936937351294251496131265618128892487475896953396406569265152415579056012124727081461446645203002593047265736371188767122433522041578424771136502607458025741078356105393613577070023229775164748939564339852650553712080641352887699309389332148370877523436562953753184332623068474706699954626014608766885992937429458795748678421108279543133510236390187038703594940783282481622424905794674307892023471460972580984915565496492811232217239038069178010924205144625833044109638025332868403353839892614426890794135561613050490089657551821423670331643394829463317326819503185049348643547688468938732621600472362073729109216825567774984599129792631190940961437109602346910200806619954480316913016924642437421780797663637743176417519527436662006969961157240275275112692662288381433357552590544097766086593595558172558231640925359971782851083929066169587445013354141591200063078849258925903622516444172660678503701626978390287144232600571227939659653074436204882762739072308012641722796112015063258061246021726168200038815725837880432225991518999864316853344744641409955750037158273536629635184133071115090733575747639578804062010288611944596529453385908881572713642041512394192398687407314522267033048766906354984686149646658596567237802094800068067235680461463537751673041077463918696312860575146962275136682002302759320284717059356903984415954865320231018345190008777269187984262007944670314083223765047784008838579189345212907334575877777791756848239663535713903870333852777902963461188893371881554948293067800966263366657805441300902833016157837922066226887305010353669566560138018862779624345034202284808644918777601469256712818421726589246243535468317358892606532052604164957093497418825459940144678791615215759155369722802909318388676559035918151505841673920045888633077742447640727057532871645736685127670049619467463171718861716049280883184474421954840320966711232449552257168007773050363240877890896282931264689613937626480043688472061273245828425549044223640401976751656775685192586135674610564430500835005458961393173908286357798740924795889973571847450248938276615451313732731644854770118672643272912420505530108734466052990835177128115521822538581895626549985266913334584324499203472318256917760614591269079890665955472290566437559832709713501003131953930273194553143893660895725004981404665573420495858391705197764674213297811407684317503305472477675754923095729992243265339500787071323018693091996314608219248613306720932117805984148855732864352919621156300100094338669651312450271426490551928704391826489899305192792302979420474313474731263408724304272734221367552404425873909352743148492097201598050822637293321961152102989368912286838606610839248424809861280585143297775497732182352394042514146135588714615913110817650634818815631720086315184921426993033691826729377432590632470426477846982448973585950994772139659862465797589713635198531231979401866975763219647634471011458230056068234883268525995586544725954132717157724442684384302885059798817395479217907239161701894209023975545381860111051111271618377732008975150873189710255430932938047417383719004324902196761012871699379724853431704794696249846242695473118849900349796784150585337682197300342201602176885693993221462001188730801300747225339569185247230183795534802329999357886962998976417424522031263280047424560860494540247695450711311603536933072280846783485474848137267292046164754842919888882847018494627175403189982776881443945309298239088072251080354758407576706497989421496146313028508026895736018764585567059721776847088940784603535064313329210657257336845893419817744153696196083292086300673004172301660406416673879078666864910406251637827665870227761904484305549527383750766458245401589807354997660254649557163191049301688796701200434314221937348268444831791350159710758044723031575006986917406856571975374074569318595044201289057648461931662240637223872375594993188602267769184497667700635052237371819068723391585576927225341670611488571697501164303725878848662584146959811449845252038774456576764856155199713298031664826164913329873164207868491840694219440750534840193328217324542460674690986424924428475855157850209490103201864120441438145039594480122303509164848166750454634082324438670190058533053823511963542050993303447167454932434702489313129342470404601750421076532108146620090301935296516295664603212917762623748678567614606446204644655199335016619540043362724870710686481084979020792290922591940821466165870246505986960593428776933199662211056147391776544623319566219545979397634323338298822541901080778712924482907972276715430572871541589883064538222334504968755723178972634977945391035454759630193353370740904389263925983020496428340929318029167774477062057744311812438057230697430203121851149885936079165403350996960661056518620931067737140806837810906245635529587903665114803181211048952300459795980304870370499631501542231143714859527122699321578783085243972490315407292682335462400884458433590337841434546106600308423488865846200015944952318698388049653336211119316535006797534458386963428479701766091605366600234861874837501616962076397120308136665051537556016515494088297562637268281575599934735476379311787331504920193572749158309324918003850853961137610548932890571411537281694219189174901051999139175670803811703632037336557846600574133000832062124756526225254867789103862980009458133724342422788835506410271901133083047662282254914654601348282251921707078055030001915880376788142978191620003516821161844998932243116867466281316104293746921493910598281844672000382894077426086572238930213659299785988977604238967635806957938246543173023735986600654461958307125075397248831530657664924111883511059500808800594961632704420511077270835559110999532373951030668059029932922696282345581151196438012288889552980941987512294884124756171965104912393423290687930115885410362823344253459012020429431284648805061631180051585926970105588301081612140639461930757736670113372340857044152294668914866847186918696265070237215282444896089682077141762014300836313081119216900678145725839982457623328829013777602988949698098555282949832447774095850354203533111660925909395719273341139486415983643395521199493997480164426731440323831644644060578191647395179424962776783136165433542717981279273292185944764889856057965316003907251919522593075092939212314474555519803599901961249556148546555083311492084949050919542721395107481920854594493690403323625069138336009180582319700110332732438044575174165692595251963817729148411470034452320731032027368125166145435981782479244553508097825734742759216066535031431810955736627593538003932555019594536233629033370930463612713966038666830437422818739581460644736709207076599888899452364058306745931570086827379664158807657349347606162177252735045767111852328216779072178369868089222188941516937537122126564968392685414968672172497149403106669784721369253798177729710131195382735505504901956205518549308265395540064187967414123299338472258792557615958265267626338745035150498492997458103649771085845162087938855056971276236998384377858199749426213548496466060853042442193242467874780931542176512375381771850628213149430759821890962703051962921267906106711820840775361907293704377716519424365982439525365005256114347281772193365292200299719536605632227757492574737273841311955353669162556652013646475537661391350444438620525261056948243399617269895052279203475488199681920419474848266470328063771759850783161081344071490288068123238939210356831315246745126386756739795304633650511781662324577700012658223440194298517054035059658226031285935070524921816273726727280389880109408995267762116598803426912500810776720057475404825623676707619808669984835780050493321254093934184634068987322858977081127027433636296235173517510919763356628832465448878918370388211116851410676514285412542429841615922360004483319606403547508410708781708371541600444056837603410049985807804271858591959794869497421033127249703339775572320615057259441747247409783047568499478655109465003770390693723807755343596130820600876735039512850532938959724139937847138441705987733680737604086991790151576630986590350861559066061917099107612522574367468246575131008070117172537305912968780289781050862792271622739219801307189544669110799328867879902382017703705786969562033684451429683783530486163189633810321696505575745000677534295710998647097992113778825260487400601863812977179096619239454725344972127600850116039948285413820558910085220859769519862913029134354454977196756385088788069862894501305265749901584508149154630405400734523786311308297371859762274832110917684073880709820742314250809075049065345975775917193316702502792916942300372964296418758401426011968199973572027495086204853634663366915428737986021664682859203689201560520047013530718001641472372303054551067797718932641549883762858922522018806707323333028390047608214625997641458056191966968766340589971871475552225147133752940633423750123875790104428536829064557654236717630283707109908773249812000035987741270170653542288777057092859958974457391527305566778681815773921786225154877787275918328269647429111081699483484173131053596506691852067994270601010356380422349583533365456766914061645035843894415837303295897350075011246186324556702861789409278506866249814846115515954210325881027976788085444241306676946817240440374933884656913163426936582358206290873677580022037979349078830005041706745006465974516572237165853255840185622447917891291824244913830020832372522979260944052373807512983796757641102156061148886239149720305064109831236285453177169004028390111059858188321545343588995154735114579703147995125024427051506427939047496389799297735834873127977188383129200955392176103881254131832437516091696365213355075453154651797439674904436642607810446579290197956506808732615699465429157370049199169024811750270373230988755155103969123896904570157928821144271260869346175950686486327437642299763203531077188156960878291196149995113739876593812376951981394486229462004360894206105991809343411076436949080948676244881162117256000466782393780328611570775244633495208304838514583657529008958756611512806610147534116339911401051518288229298087148739991643383901594976643457538056979011573138108718052760157870886686962201371296285122026976158563901224776910030888128294144841760430684073055377467182871599969662893964741029053244617027917578452720981510726262397566065430613133267573598763578525707275122182959604698165842390799784896830329289148305819262954806040043095855436277330864776733023607092985959873436948343464684820707121410061727727518849746403441706156082492511227214038017808069005358068438243416142829523113912458093136673566577757103257052929199105137276405542407280104653423336519185209427025998943862425089956443838946978884612938505194091334095637421374586148050086965738945122879828026272562197374844757963105527666927981796328857821223584119530858525589983267637186216464105746448586402077750709731114354987964825402427057657503486952992297964691289961414142517006068115601581245065624449244765693114998269542899833417540158100668081189455975659938969073557059387052247452524131328503818941180387011183710266960597714491477405081158344249369546131218649593571771651045143389635715221235619234502782177897919653470689197960921317481256459220620868749591681641911261480371179931549741026506445019675372623894773156534767684260377238788808597140200870868000016098549072873496665852161907808659403225203622388784366169315343259444106704257759611612304969317816876273718898316215743156726692914140873436539069171646881444749641423703213734438987926874558621500775534449895699997832044802925017611109743728301110915470908174979662855501363213644307846915634084753489562797688529890187175796221105691126330413151262141735747470822563338016742838334421357570692811956507844021883177070998670699028318339254918156453660815470941591130102081760151035585376680639198667209326451762224228161491724009396646645229827772119730036596954043793097718170246612668055929440452392309061559720426031253605836694618234108597929864465123667987844595314548352388936993616983655446944373798235320901475708601789611173444954869218907909984092112972636531669280466630883091523445003738846307135607894406127534512704471213848491909795200958898577795805163363617401253620732019494206786755551559345309479199286988843254995436717197924261331050041611952288296610784144553403413759101461330817327489132773967370466202234470669687282610552301876164487124875830657025146011752570807075632222492158478588590477790689258157880767108016209985104878088382804964849361880662344582607563030571547694022365846219336748514267784893988689105015896118494146325915175822732529184596867963988409969406982193524873699348868737768410053910979502991297281585351203797349939652748402028339025080750744703589225873205402388668851456271161492073023172012581373834720066452501147586466047240561780323632388064581138424329917495077042868054330177602649787250066923330545226167893359154806646287376614462772260432230052999289014472617496123157838299005417712205056074349216647223552769728918987486527338299576884948891769532433263330944811975193408330974779042168836274050314704841821035586605140529426885389338960953520384653266801357034953640079742694367266150352723617730212675757468542303310183309564011171931982105631055394066916145784827996816934792827649830037924345794806958051716923513824844593825363947455329395567781883838458323870150931778810493735736622271298135054145031376720625447433090794600544936375591059114351811214913643890735061726783155898880509004991034238765424585904732115338309290896075254204091219553461691857696263042093132316439639796106919653139540404278868849798678232196460860607492982272536131005576153022282570912999757055988026625518684863809737335421554492606980250175617079864576685905379023461989621945929903250929691611958134944899500274164793559720832904073649132718025778502145291530936352173283599417459532869027884017906344104042016616370732477645932506448630390489929178163761977695593671225399342170236389391084977557310766521456714080328089461683900702205341317629838317727478438962283829940653624346906304511095158346041229194803248682009669194887148897034964819479360180982002471922369011236274761186593896142367789349971322860799633300434963584970470088420027830178638949325265664977219525454914261972310261937207989754113835154668500120967630636649677959228587998451651617454259688108396048358479882961789197983789610937556143756135368533457906570491672435324948774408342965978904906343154286425511284109293676219002385240356196333939491858468579142701650588867104860373174203788134539460100054450994014170222637684676019029680040139879698577518769179673370577823747022678298769450914867471888598377799639613043101170029795682610454697859961076757724256321599852643183742112981094029872567110336149582213879672799374533813183530518117122799583748360758999385758743793256588901165183899448357754700477339792178011368787134393863853412907220107551041230967669757280428819277471814993906942074796945103956363884502390131522663904005546399392625408968299298916656270735731458223027679509771950591385514456255560748568280041349331573387450655004786052013701514047723764314600042883358218548811862786542054775448563339440005372364537299958982603679648456377870770845631382347008685069358440764613723696060814330076071372232593076051333891532999021786145607143516026805191268248404487060434539387822727385766916684860460964125297984070890494662759266584739521696402044958756835520933908357188356722905491058358545051289102670805369331847759914968456970517767321542093007224771287505826767686406079125242632608614325084581577037309712945688762967159184677402972606758814844029194377093912129120505551299960860326418438890287060858923518205343500544029483173475284216820190764537704295590530371510303271743795514252999991769082327221512426527064164056192232640023136055998034147301170631568098646115950428440752046539119578690229111741744870326563203191870418562113671578752376024168244685261359635194299752629458361189412886741147234316242719018966023944530601871764810666003685050228834351739886042487618991434913205859165382919766769111092430343170683042203061382436329750445414022237372781722441724111115034528872216138429240649024341606784756147718149239546704350611076304703594611553427235600192060859898469087568559433568034969422178222173220621165854205753031179572912942690662690837613755860747801838940521162640898188821551097627429107007350002762059295424820376098278727641760441650445396745180549783613803899435470099779351295613829730164490522429688950926014528675760149446868295901342941075177851330745634993031617976314005239737566254723699895965129786767219583639057779458668413307054856277839456444378663587811855235107219726856681519532867250167421830912760845388601938593627240082877044375599920186377436627517149302768221556021092766439659221254047104929418715354337546865690853726014404846130226873439975686150505523238985469345931863181508654421965076390864762320387350270809778746060485579460259711030452571898256275226825865284093882102108072897415306408958618915269481679657790933510975843741182553132527716627256872664498858570499169584076857976664493061218236224508577879247522395182221092587920611015440857487347728941670072432897922783010814664642892763270116552419309014042058472728385750435244140700061447737155794612373103902417790742954252222139294998028209622872859886777917918035415980032740189376106270352137996776102363350868256575693386579292728128049647987518119183215019799831549852897000154332207577521052728556294916054938575776354274842963666862963679216456870310219638739924462791803490543553768994819489031619688948134348235343804904620201881153606778491520433693676479285624356087460634611949450481600445575043740663347139410512636290889690876652868192658661682911107475062620773716893065900892414576993405623373926840354262891220364792031973179346587746540496781825667029628943386872553455022668783612627291924488561091624883841973712982203355206907595701746575833857224074733289811542346248413128098858532817693083727601364382869384950390262193123393683293417142626336066385540573673382521974638153561292758151093036653571293806231495022438044183959297568896628175407256597996973630125799120997862884333545082506634771010996974154146362194616786495038331542091936308506460187158103821055099593498142008914781296291682507566868246526116830966443151732821910420389591618221955536378237129001513308354552690909552860813259617626654839116759896746862258943078325294688981492993118595393312892174763545708231132910838154253644312507271104622993049534160096745934807657903436631978452229728082207407482714111340126973770346907742642329388226436910658759401484623146567752410771077760654705428976276522926892446307412598223876507969067988398485016541528260019167683296140323339647331837426599148279820474947304395126868441002366675161014818279046260050318925284189981495320512839072742402490234901636139715843162325083555975041992055411955862467410133518477226752888146585942391903866356827715881285277560786604905786540914202222055812459182336105761484186209311934477728216378553867413269166382956472057908573358533505749941101713600151574540215795980829064675251129711216214306323137679648472889371300904727584277482120006549038401833843721192529493443794552920154504360985919200642210437751124130098733792857995501456353802047274855763325966639800158296643823736432662816460279964630020691830053399453783388123185516510189215106230321577811108853946031071455024477961282753917546169703156209868717152734490998383271498419510436537051032832664461032316738034969943688972138995169879361237946591464241441111017587498760953368721275387801918527463039847200149846997007277565554171698141973768380554415788398400197578493859532003907278680056934447941624881696790652734326140627665657857915021034938723980938729943397912201251731302400916133363244362988490567673056984949028841756192830566129007688223370686720589722758209101412107880366214525577754283610376336720742820543457423872143887724453212717616820274668508948137092233109086740355603552582899068037780625916258234325400012317643496689988407729786526616435316785490305497146373594799775153250499899734947015719714212500130444547576441748499665873304445447134405524469681537305327707113733362841308348771458400006247950371675170047951593342385433869830556277494381434069203378623373821561291432536051875667272001787042002702264355269024642345464586857358452428248406892098535762166736230617066000737037883471505314625796386284799009705539498944512146997518202519329929742372880012536294046647049105683258017719191233530157478139687938116101986363241156355373266918687820509326533925668958934241004317826855816604313839366850724556050199323337730382754486260420617788145499343153591778116100999635386033267494121332101177420044036592563824284398066511292225637088812797684447009582308725438839334367850138358061856392330981320837906574279849045023112292963608418212878491448736183414559304414795729872159492751578186484476717674213157310122129647161119030779563623586688207407776743036904327785573474390183096973963587272900704308418896913854928902345216629287042953798256723837210663926961983674913327698903291279295248539680719819220550337559794150685727426023740659813159664796578513027911184545288327333189273030372966039542529328143153467032079914962276363243683299044096789135706137460420848669757419601598933823206245363617905152278247824482717973170771768547572965594120508735385489802131913005678530812661470066743704391925520889308230478571337764216468454974907150341443522890115947086589878653786379878412748707840962544367746021718066198473667460161125983689703120792532535749187942249112065548806223567373406138462094965202292933306457978850298333136995979355463257621886705708215964337317233679519882816534684175843415551791385962572183500673146777002144192731414614478911891985449789569893724510420939790918411200264616869249086333745084479801268891704594267000841540167526615324715596386264030108806466242670573003903605483986175236036329766472316149543868569393441585993928402847127501498695615701348783160224172645113074990551149923393566825186746431974337674907903790807233018008986928529019532005050007918658900227845980309270042079694274912383859047501374084395620298526797613519045430586562829419677246729180422921071636135939055246991503197381441208456122152406376198980481072390137557233187283176946162940451547842249116819007911506522131441294734459065280577572933431787277381040987191273986031377137156369423686012271344072058952230241338003549574103779263373982609789818545802840107915722107992929089322931333898047642750815727683315488941411533682526875090460233649109807686631920682955281936534645241642535489610004524614994914908321687204873363751139267523086881799787186898425250167233123131087541498866685666187359309117790874267796943363750683344245603548119298125287991745087611790669109357089846619905840545507847769374572797660088058524448175552503642063302657565109892954902870295324153069745419500913223733440855561149038656114574332577367648831949252933271281512170612085401706549313228951716719073535372554947651649843908122756640304141181169431820160478217836080479957693247399380825806848032315008677494316565930316255980617797432724243327853168906648620840939588523208455707437288278129678574931591599726504359554251842897276206491498696611889722878572987581479872021625359400639900353797978040493359979572732593486331657574121364844388682456501543823503553952888723467312780304296246522557077098389110896987393490990648661253384213124202889044488296379253877302070224255526472459736699636392053458235811601590155648506268599190407450549591167594034428225079474447333776819051790729852482847865776859580391518173937378320155450825937112180889849360113216132700840681363195370112958004215623049760627204467073837498843811468085975543893421924904981789702583991977390853309143376395096273046852649689717252830292615044979175322299618992368546981274283625675804539958696245532830745669426083609059939585229970899421731606010490943158541253936361550137550614833122014806011267404684404525872777382012555211169585119776562106080240950306265553048019412192598782746475210811189147615427246331474547163649671479165693909132991592093941475701024642723939449300339582199749304036326283867032796943052652850612383046843577708641275498887058356428754520909701004536327034258888981435424955851080276316763605313403286212921764144060732267714351860177622048216924939896524148352444267470731499636842928709781232642574736712287783692681950135031293704148669633722088157734766307189590912264811096868888210580072022374669387253565860981735626126463724460418835919821616566499991363187146693984337951798699077131438689455120852882420831236403655369462276900854395530088918585458554507499519518495414100080367178285939035545659296140589323357658972437780468392398059276573240102394466556097552189080246001023557791663346887165869432791116357863877087604210796763443294400843647689684215114060894782357866758233645857324165682820830611584984655575803564913602385604629277953473883737694680926362148061360192193027356826607385070043028253291350048212594144121575762811112972895373361747736196740580843119715914076350782204164690366069694568402983291281629741198926369107090518034505221377735614058792277638441818559212416803940858377050871906420421975259340092545972092239276567939429643382151798747141438176288071957338545449778291210734305484470962936103539850727261805386117787959384942557775407121361509921919280676824765425185771322019546322907076974307043239250235312605452423377862580849255697480394596163039832538813476675150702435957256603380625621100041003542746364535496473134178949357370874598137933654177426487089792175219727603131606818851875234212757109862025145367260688021184430515836987135291691576443267330422984794656848501344247654010389434408586942725631476741120007651927986528736813712863109034983893766320482447128204444999725510504936178436891864970081753575097232819453343332441361183924427654291015092537251869868564872262596385359202101296662446013616387990134766835299278457029499263440656051460470278027197909084486545793842004606659174736994163583211566257035512270404773422999209282860493678559266266224128315944971065587411540806993304598913428554463010444935841563779519553925313124182511026465576000697241973123845136934051468554794746226375897329975355371648344198220438661783545026037570803941268041490564211553142675760258428811597360701312124786959942058005460291934445421909267063077486142487111924603056785832219602990075786875278601654789320973330384644066406994365946102791894637861302744416111376253026620947953330273873797775796808959774274082218917677540956641119214303905085200307729754283045369297883964463291558089401372004835958230836266249066198029995479543324676083770250067595449264499421754993125653657116485549390156755246027947747653692433387695274982637267331205398384053186985490242151145047324816941982595957752397154144201039272848134134378875975406780566263767957115668059152152433509151027010581160029955670882519299259577184883441852303966612154002520274883046619755683493483865533510177508839818312814782608732342551753514818296594273521408574598973877651357203364291875807361139846308233060746837995588476333906324084241967604666489389781821867568902826604811045419628687972346170137158106826649247769278825124916599492090810470823788624114866008482055381016242920236651963358787337309680761269902037896578133292130437003146128222163341601541377425637982265634899435529947593862241975879278250551324266897846892364462536028787710635402102833753607597548786647190192554811799192559876237822540978129062501204209143546768145802120656963154621595010885470912085631008520886069658948434408606638042641969112768047992067912038933269656046312727028054176549202368852580204461338198208684347706144381351887764165701221749835614968252150752625563385467087374051571643643919040703776238725781482046840323151839519284282285831190966989143072040712126372682378936951604520910418388419100316455446716738760357841382833058836876394705949255589307877380508560673257795752231632647573556977359821793310571968622562205870362856031062753396881305844647020189689680355584246590281001038896130964479674335713621607957238814424188323849724577048349042162251437933823508329464458706967830760437553802501727176207938914697606378496222443689786498347910331372992528299018854903861571353826841425207879240705474846417953129095458983396214820053885445777402019579078975802025684842521327816987175363405378642986293268610624621224944664701909799320693834081673456653846415793916654139550855847935316844929382368829254005453425539212438655371845850334652182819191269763496214788098262487236560683548740628067856157397424032723127471858533782176502387956357494743749335416691456779746724571922921239016389665736408747879907940136028213007041828793819133757061914324151745458760560439400348868666662578466015116156416752478775831212894559285966969536467658580892983084864156813499317177583385734859568866317505847368452905616496851754175383512441403377346518811430579087340868850258218124042181767031483791943672369712757405078035319546929386282762392026186247315090770901987993836411181636345703723360025301318883520739133907898120296066180986460261770068371099423438955399490385256034992308474806723308256706948110679544625301735620560538671050024541359406544033876479995165885475612404971591724368775128718500777010401838605902099791448522577757637472878011996455070635662507916424257958837502854299002612104995150261583507102351822696028207882008822866506834385718118111604658999824692092666360579082713989742962159311005606842184811945740139069804638149078378298306751066430262096088849754722836253725420456910872501489195693972210772550142117641751474649514055388595685844517256040817702379585959887567065241287642474029024429428391926713871945846284516558624549429001642769632142063735066443577405165463019808296331099515130280549989635466605094529120933773967218339931352672401934900400340794030607971169699492567461445676060798830106500984752450208902050253930611881604613193627082214258565552254768318470798225729441663226064073171963070791621100370305132826789956306247188561236019083805390915851801859813886850823607927450079478750952603097019803566063309498593686216594108361981566992059007790976687027683977702436356059826258272548087101273031868537505349432556376636479201375058897234533003184278524045003632802758851341222690463375372240182246102993814848987218506421419023251576587371752870302522715491703867844469781940486649356118995802071031527114948957831350804220478807416578903933735056259999285278891599863158979730754884426814008634884829861706085213844904722158590117801587421244370538379008262467847101786835460356775386100833291350924764861118564956518906656900633839943672010957592914034993355324748348346504284401447392417097546656838553843174514961205008386233575472153328938058723162377133319908232330577731205245540529627018664436863433064933896337564935084982634575335101563096752803980817202460477183901405703516219422417473479646155447289408745427729940876547895628343615837767920826540979343278242126354652173911890864121094080611304060440477901575945229656185019402474404502669382369790611234171628114373663744355273456668821712724215219344347481525383948337763025744433976664787360605122040361494835730341822200745085364317122779209846344599826778841096666824393259779722881298131391087614852929608496125448032610755365846971134397380041060523955181099802389311595857889853655787289303887824530485517748579534390389292820281579339612490613877107531327857788116113169946785413915978851108032600088070055829908326304359591218745988374579686556855682073627411707226640283862752808914039648944408845722152611962845181838039170514532803323973047596789675737977365752212221011452900955082301142704211966330858449087389435706790677592664892958541381251814277189782267606322740068752962621105277487527165528968337586857090475039277958870898592534786709779684169535437635285593220051067206305066073119592620748421503895787446778956589377110670302046337684696071548488780400632748416313840289917974969491365537593124377865320812327300232295817861881828842338842164537947963915549947350431131158605016969416569204288022639805369662359969206741397954986165255032869298223475601034793793694547208857308334315640255258884045060215502874933008910762023960308291898147775373376031227258600983348190796992164939093851111207346736978514246973846532949775323160551682699785498276518325341063376915308472437676774112108453462365491782292510889881913414447852712230021210132247616684108451751552055169342939868997019723566795859435200944053435799820929484600595037155805162226206704620351492647224563535174167482367257913304738322233326110389366816189399994207564181053444227699424227638865160314666615679074374656848057102472898955863177826498766468975638788241008846037382742123277806748081326911747453293927282156295896262540481797094954963061098732596188432378411658793816978199708894160359998671059832606272453510090240662341625352995366587192171496110147981504915449039948403972623810677981241956414057563408480542253008158951158416251024182443362561306360195459074117461159393099804388800544820734320604815583498703652534234470233524956727037171654551571210550821035445404093332768797554439145901428930902491880191069069267355772350830481352864535677560078191095543569552454817690267185126320041517284083844939447418215051891248394240277559434370407779728306686169174657525485109979839069242617976305053344210208582079248113218460213073243516548788868441305989183521676009063779891972115144818218426169075949876525268579527807341637508446382569532939451182581356438209668646758656679018622677285694377798253355336195223818920312781321243877016423189481786568941796870792634230595375287122564999697408882567688586292218971219676779867626014958458622927682592248514163283172731587693028777403151551209814781332353599220453456123577671895326435180741259364206864334362594018414718000019101119739338379356224439154822382161960163243926870101952985397457033096578897317372240503970484877397219751875342517779666699934103675483396499294203994768557817744841107707428495201599888958362221123057810281740512012015810084073734208942812604124599247634721913937019748074930798703639406664787037298134734299255975046310275078582043596465974072525473226989378693759246569121350927685847078595331827183352109357521467584583005917798741318272770150562070137717385483026168863395877321770944013952105270161264751000483362100832050541618783829094735953432313034367376112911074007837614607170821611195676895880660143007200244815015770861803613207481622349824423681369519209213618008716263850763561785616515362672970554042676303901804709503388761821637861576893973002691018077857638874350495225627367636986559417063097503144427279594770548930047833945827669880656285471261776817760256672897380616388483581745878944457751377616336800720295553791820556117821849213128406985478672495722878333948241301363772404486552029378140835174626604248050165015270730860355065282207861367687488274870017489322627905909195014615429450335240843941620467279146780158432090934483930832107311223600489971012791068261238617222433140132598062782927136868359529660246261427748969363991914873001898910281214362298662047810124942795169781786593865808226699966051639839541199894471791516044855481994156520487931121456924203101539259204427140612964398691965185197564254464031110618653271425596175382977574278214709564891774239260315753877394740066534225345137879268611067596651446048760795471366205221736109379199371192598122787409750746462936029429261555011975699201409774758452436767511553293428742082236345875983538427525915679919397512823742019789898611836959271818323088958732960928437894691056867720308167460729080805195601239062944594182962168831671461474293939057528682380528246276550061752296649506737846594221959959316039410175936172139192188207956822857676465456093747204047660715042428279652173934051383089524833733506657748162309494467899569679279084134222088467426806021076436275937861031494174650365537583773309742319973006809615249408052339932556582765977234819060267303474415760167412538983569309730053581264180440018588459151071665069516556188597435355573927192363412737416773109128914845721778964537186126812477095662158966052473652792709910413433179768358838315958358350173846390118751543655071259864719706890516437405311146481715444231980015779155213792308182358494685860139682881408795444992612038792698355584400985130985917121816622006896667793308192535310862292032975312831929994980681084117525116678270533201341339374294651786317574152702554059371987456465962671170596489919600798696920501966085202851735769955544451851357896038688555802547535748207855891545555968538929450941245890839861094802787114470518856321906054282212252169257812064409607904650951029100347492001061853621160102117783785144386807041016124047531919758782068817732458478638462326667977722174591906931666938459028510449547461939179410714923865144448922035096015108280412805455669543435805853212793338034368833225347203470559628791593321594466694875290062771275289239661730596342502532991399431610875681299903505348645011303433834357690585851937671689554432200308394076537685304267848141914689742557569926050944477089335364888184516026364828294796837440581878544854772208519920412766846684460369492887361123610438199834877188176069007913900991778241791778636421449914502539629406336656623851243333393534566438798676397017205719748428055163497020384839923331026167889678067554636353331724294828920966763370523226294550274048061799463796768577919726784497564776984600782281898589922405934726260769786398547724989783260201476627107252553547752670937914966345477324463556359335730711241302074124514446395601772283745158826058661646414057703802422561509102747464904214392947020378551654127870662657369801890308786542691072010123572450376525675019035424191998356103513644258989053342069590626250005276681785929319544799233090511304203909200445364540825400448896541594753203250802986012018573660077894798847637254678268690409817376645429762845294235822591570525344688862743599570698933051245559208138191536705903677828999645771328809114765631166230345033583611751490670890105090551935010185814323787522540039538607149982863926005166477665484008587480412787072928479173188248212656928362538632938908682477148728255216776270327742709501498326429954524289061828230959944049880349517080508843581342243148190695984997024509090778841071706434678793901207453378496292333117183002555336154560681907805490092182175477439074038494091421483865422308140832239851288908907333381257186110484720919772537867470381944740748769863584351447822460129144777815908628875299854351906296560667710683712769763890722144019296781079753172058414358890507158007704827056286373829813548955126186732249639152413842329604404068745159082322942140357892826574527982915241512115146267771541651359118651080766886260605396075828525897763616276144481921140623543144275235782546092498914952083928876360727509424739396105195882948461938460433209181447717139869618714715648448019893666821177325498474793664387617305555428043963424717512824354059304358766102175838774415321208081995314169936311454921917025941346352070703501950926115846389524423596703328767969709535215950611149831621767944799300090985854238549764659347092044174588746914936646083009995292734910657282672963759310831119426071052704040540512276681156249145745702200747043713679482020314097676586799466912010405069862168938551357441860691368128331435498997815650166427590716857899122998740131148456655109909869427164935406462996540424011134732259071850891329497208146150923878324680159938742214614078795868584071877030449130177825602597295453357290196643108044216364061376065364996748585157982474222967535217735221875660697378224143811834094632395672020082288076886027177395777415205284112906387833262198771040034926952064892742239486029149943725096845313307355661806091160533067710627338775470101896893237132048376305114846868922306086798351977795119533783647387905573044669658455955142751619821673012511325644705582690353224858325567918584775602699210548354695035460439208778379103207294919423538975227535967318267175131851793427126247178132420744990506683230063926478750936165831002900767043310614114660265690916572898575066336309885475056390054219266062334966932270027513218233504757426385241864976345640977244351834231313529831915296356285096205305806446829130716641999014270968689423494871538228586378942359189428904219868650136781351656070648615605413622434906099870914205641228078470297473628119273155989700304600587396887465723220417211247602195474490504420108923019135795561011441159601663149397261214569120860729797638781565119825744678125288936688924854096429623455829088555668398769047973886346030090772376929133797089740417682298705347395592713650535103801880317919628668192591537094190318800585078431578579106571325363899261550971280093266460141956568461912984035839646383656900170639325075302841058505634837293897328160357544560839735772509168256364158643711364745464952750764942655053808453197742292728903302615512670518832451848979286624906154236605228036036831227052254638007474114573535074582692346673195770811634143354969574003900036011578115231613293474724066982922736375267354198514146333642265772703945885743509241085045121472480243024614474528084024407919958816712591285817423985575292148358585059887992570195377310097929258809581149023293648654956930156715970031661345111895285823504575572609041420335145895740734569656535862435745050392474379805543141253871901867991561111157182686179228333324921926474806250675655608071249562797549419298949000134413952757079099164332554149143473508485666907197317430680943618703948228917858444213233441323393446579397355355537768021863911103068160160186071731673381332059272347094562000287393731152138849462650834404468722840781530631849580805059795633013122491834187652421572032956357429916569460143849305159974098276925620895132462249323780080083867629492992734455115776298057165203168261563078225046673664692780555160769839159482324818716980234279587849595710709750680225682387311978325335220183379986176513285653955153731290037754486823582065782939763806655203192658445940566392592830077700639643966420557107600790489530530244009667381592088707680021784763002087554282378010630305137111319581773200425063321246463036036512135413040352948778801124516340640519148362023094774998653488324845162810226017725282766520345646034082059762131291496293937627707248681761203506992470267636982853828505142207707250183091552279616763763416973123880037796556648101441413964514851423648756005201718274282667288638507876954017320373981750198529991181418687688824236618229582458034204565557065691858570740321819883400619785241762705156489037005164553588610328053938409762378877663672472079397477122884949191584848070223703321546832594658548279419042062248969729496451212795798643284334250749829227255095906562786189165505097922704756023194714444966042089315843298207735394794759442772080208515786103956456014782164055576516952233756086177611733145772606968209928825953954165240235542986231439057501602133776350818182183937184548963535547963160211336497789634860558128264214948959892292236868494351632514470744783799298971972390238597212739208324875905057061331567280797834044480329724741897386496523331456584927084659236917867430285892090128682268595365161527999534014402543082303273992804158453636965365909199054723718395012388836709315626054834855760930964018718085547882140539602593694591470286913961059253836275674901708264203726705517263498307164144255063610572987775819574298157716923572038488083229325522599953079451400407917529141863823944857443753901116716016967835843720649662167852954142802511408253593713784600151479899300176902660326636152780518499030572479610643728432795820060474739130089130646585405469367568130940911600034701049796730484682676897024921892445144316269256970984915377739358505528902084181783826805391418340559361548014686510541686675020203875564899578354519999855938500481827870999400328901030091319783762285990716389192082529854561224500562796648952272289840505051936077508620820233500280177337260957162304955139711312918909038492794603141840889663538393128301769409480434431790663587811101377548394000827015624309575180332069818038126197972039100338771246003780248644805833362627164857263667587687608512770288218406475120129991542877762363006462957262113155547444446893641477317687775090174334244112639864029705182880919018573948264303496268489486531918044426650089700468485368670856023582260203993369104256484080861841181666558586091493457038217532742595306678229800326201377676683139339168677448411902892842402604934735848325596407926084780202675388742947284625889201013024182902853646067487428490154841420916106465342529042245457836489678364494054932274943298120670939630071597906047184658496767707515551602230099094503566270272458331141272436392756752907084784067083048904912917607082835719124018586561935853274438317990194041598392336340003926054716214333031243088363896467023840570963917440027443538934758766769973500575826046872012561843019900395930097745430017974963836795109676919760847122279237614924128803631505095337281594016011695613274830738079399792760729557032730176938755026944006282865202972890310039322817773205854341692704672165894692239661867061700055620113452797872941329625837287183194819233093975844692538606131678407808124274135120235716839650396209257303120092283071231535368212336002594081263335705864093952298349506719617446098016783542913415511113309669711512432627801775776887183168729059874841881083226979405218087126606899689997113472078753143301346439738002185432348350851491746670606104006908798913660078081431081325891897600428276421977070863331464658785342688317029704855963444542946958931943313342502893746134731571340280458386134387287451166866483389007905220307636208113121739874469773129178994258742302679108081369692572911940829684470063240178573229710435118093760143564315773576685727593597294971773000722418118109172765808574429790704300522111274125840151699077154240875190613131938945571219816390149850735626902004215551879079613606785842177751955791577452567626490644361895896804863006300976159646593620021733231095567775765211204588226509891905143444308961124195436062307601863589421653187519513650314469288417788245925332629672061649509455512853318587153942336925921494645669020520417472322440215083217850057124003121684178847447863349421495655588013519736489105365455511467892788821111069026770710155668290585343143123316266994837804440019460975833443924860531755922337954615086627186315447126327310192564658463765262304200765171545223309832238503790293198586163732993555355925967115094635182712561416127878365173797958390384275696224836897777304828841128925509058953530539015423160096566358855914782582144157021590515942247156998696002001925098174305106921885134758671467003624109859080001667919784684146389860647759227572852282912386281974461620336490847287630101287096397821573130552782976779576597183589383100506110492240727539104760874190699169867560693895730707799643298325624980232673384619464712555500625970236926466021750934740262731420593167617959641721704861350748253153525606818762496298619897614328153564956349449831745984829554318112796103161259964434960879601007957596398573427799071547902483763692400902774265514754898642447775336328820766493373015936557849362360404409546059029984963360982162055913283007333004365818893163021159228139613498909764963072411622210024785882427932072812599062477126641958720721331090753075173070913694187981647452408794114171257637876299319969098692012041426910939508699142291608376331074301219003686739104579256490627234440305784858066914078858601319273279062829806393993180025704568044368867835322084241445557820703212402775328719679891348726709202072113210815178258390021987300040626854126014490621392515966190398549701745449252611354354969758565905563795799299937190054417128400408007406894907886758697809669662459551413029129836872691990766095731358102610067049294629331108695679308376323917778376305133676039443493690408321459040308372563172282105375481767591624743993119489657533948139841590581903182981738479566373975518368301246417270966249392918541649468294481846752087526678737683408481258999678473887460933761638097793812704344220120557028973021659399567041927103461311670517423094324908785085897642227084353657553827528694041911003915651778233318856766876720479929822521688413186101077505034321099498181976891830446826920340822209433678206541015375947975247896065526228598753184892156570716600378784064864959016278833694700376761074360861452718667091646268117020262828307869747222765626916659353948950627400846481375981489632834040759007441433157807289883554009872947571018437496743670834122441280747079191312230079447953111304156964394750992129216615102070237413786095376722859285170296784904649430730800325788080787945825914452971541549337201738866513711175011694340989487213297931257299786402314856551201824283453126355728577756688184742202770397329327757840518916905479163170091927673898138305884721017423638334721216127820986594357857626423392569690411854140562089001814976277217937018443663934586943870265259676399192582863485261667171859925033392411209818290359487492659359579058229055849140377055461327388134474584941313095029898888367588454010794680334924631343231777122024019153986192814190614490368017026479014952006235140326686989152567490451487122677272373522994179819905968778583476975108753838069970553783807381450045732185107633919707596895266431975866209271045933021994275356544885107306243973111683091704743801801677675163830085209443981485789118370969374915836055098089336880580581812839124793842075341812924074378755597379819280865707702275501778425711993789637900090710185489475691163612914750154654776949723477086050990320869118537045602412818051984609051907409387398228416485243239061252722186886649915310119915363765957268668015104502254806784376995366566816903401610298478352070372941561491707911172740515741743963357306102448667699676974517781180214189595023659569895917506925946691806998142283535778012121113666867026707844593358784802576518266354846325313603069943812468741701968255478964025211366681346747375561921043010910020912962651986864278625125856923363121022122695345821815884456278845295861130198679161748603174002029215948816455580602497320462966866420199644845804518310851976563826413955333590504978587328823844473072529281847818099239155713206377635171166203756859479539391394443480640616840130557741348262705369759718309443815952875425329766616533982140016629947598724953875735944639135782686018158425667778823848420051317508703577851731801165314536486509190921367110201841359242447536421781542787940113149979088388634967804003067607374876190973010934428069732964643065119037730844591570505736890176113825594335857268855546879226009398142895668908038996113679947189348095943569206829931942385625733647105946471669135549471985940591417656438809683784412386218155122700873889757484238562140647287167328920111357578874373400085212400455541560724878369764082515889079652763528641895802391052360663189080672701997716678646962799957257502661941966654528308989993367501609489358061616841980788156976952687218835069447346094251715835418746785045201891390330843031728700381877634612777587967983821843359188529055671896451445370326004442716355152284547661829298948239014290489350584893849100751347049586306263765243110311578635453392085357698171300925181008893356297836882445032497078692949033791879371166573652180201008563489068814219455636091199910549116697579187441610140404512061084924421756017207860163393978802803581046898487268633413881000953901470844513338505947310459596264493729183072569346986918705955118592505429873903368948634200861752236141357447949566185763373299776537806660957491362374697221938081277892124707171939513544047790270648463388606470975242068354897196163207327766663006810077834652800975721270540690884164410720883402392835563127231434442363679157051714485328285575452288171495823566441898626290486793405452257308275771671298168553438134829111822130303796182591445245072226507178077783334157140944115873073744950257964419065256865761863058591416987319759878742517418997411098790356449106138349677802447549861563559834756902203054297651889487085951277222539396217219990168703340458594230253173774756220279572971281514745759201505615297549534804320196386370669682191143065546553276915515338465464707412189842254926455037966020083449988130745816740065563085346006998669612405359761456208435799327440218509844236487277307182829659250038975671781670069431296528165258770361252523518221180565821558244936716822592393176358725663269853337704063152274326958865767921103968134913645662020064543134148582588794680036219615458606130917146419904858619561243456696007459616078744583251951749668285944742511071120937997918447979219325891480749549937197607243718071444489170149575899993968988252644895010984095658429663234519950557339311729330255302616069148076361466644358448114393159098505831503035779935932099688791192147197977820773160762427004158816808022067225222579678384947010537180046456079568892622140784098906281507569584267585348435270424865635645040178323469902103706301298196984002248522050732075901281852486323051211119946731608690629863901352232728593906289700075408140147821509364256500580365397529824605956116051235210840966429052048296102064617745386308100891352570515158615361655443616782845873788322079174664398581863586237927843478361054854683432868811798271584708000263860528777853868609532043748194580026379056171670434187990051155743905085258414822642650159277916504647821106933792860238039613511242193852138238215568881745700614735050557266965938103419378477177780791406510376520970943505442993071301374362371142883449561348826719324549482662664852888398349286757848272539440831899431033289212573577135442591392675100287763306780821414003404859583799655452452807679993112380410249051444841498023160479091198751349755053049806857685575864025863483558056133784964303278692935356866933233496497986060938041233627044807380393030491160178588037858022732132975309967524876756983564067643931293419366879658213798922745192840617568081058796827993579851620173270312590953174575320241828019900141643032957543618478361048122481410016163097826180916181386568078187364074231391620208290585571429810229427832207865545973112838332947529515459629577489347960008336875103113294490014488670450385649911842098847053408167620316902673846115920292676602250465990653534992792802383178670327230837884531176928724656211124073521403063594930596221552204957085555529163187121738630621750162018212689048437110915864947276593214165222760192462794536336730770939551491680922279130379739591203044841635204559383388756294431116802265243784414897024912488760100973443008096356446368427596522048826963902146002332471913269463742613003837785230004896957786120405806859036464068359538939594763251855173434755201587266175696266992268182063255844805079080415664712066361919007995365813099230731347213573216973371276714235030554027562218033069261660285832596321213298925540910661786042098850267366705747940756518447400170483878884894872764625059403532475526225465464861118144510531468420504914698621919005447957565253861925586636575257281666539182311218750003474873911442244108879194479763459106884022721697357367320561883404235861942429668449407655577189531950501494858583949869852754845828222177300465629103710813990529114073444850962396357165458102979285896100853150168059866912883892137671615165777647262705010963175964924027490490853397015442553800770819983195873489451704159295969528212005971574003968318464898881915170675987575654022224459934275500977866147431961860271456768329775638853832146393649533180641691938561367001893202834680455663955953074654305796158965168667977889051357097072132834084005822499871644081013761957496740338271024809513051881536906271225433603967639555482601786906783805440626113541353804666959093475227443804974348065082289897024689713099988313877023159351151046301147663417113276307543459034471216708500552513174381822372697396369752740013572996852639293100178224296092573229164094506225128701054177010675846066098371621997113258484399151530281657690435604106447643114341364107288637956549166581295975260878654964768437874109093120969995156139245368420536277900798820246477227405804558202381519503564073574473921047396898198150075191248943680382592889353058966758513321813981782799252305968142104346097249835454908477474874574459025448986155243115568204160171715590456172692837673331763138284428336011726268775283718474532665102764043273740973387519392029099357146809639052854773585865997666049159371926626559383552835501216277096960706995903551597344368720222629887550145945349384954809178177522063132391781912176062380311465440469851250635575210139627950476123751284628557990999066761143916395246336278526640360052754479364473688099661311585875882540088921373801667609624351989981011200820043114193025464452405984812033456377603913147491842410674279076064140158845981152890992868969865080717423139554437333327232472898672416365038875704595751879097517726020511630388010781909447626134235287765962301148154521672513084914294752424274934556912399476022925277975998552110509323704507166753860776156579482413900986264752662875736631922507110545032924841303777610907761893666566872764664819525375763391571991441396454730735287639907027741891940737165522352431019145992941125433249275146292191583456940029801517789345917386326942701358918415757283011825384474861266320806835276786789664905620351561369331272030330267702606438312753641030127209917236220056504413224406401671590616634884923812281739489917957957527485953259116042638324449886428782084796789314340064696363684805998836312775193204682835807658223718640275242409325731968746071996624823605227171020624198031700515971890313774272213018122662728180431584869516093091069638823989762624925981089152612661172648941094383485620217733702284723121378790791201407716553221242638816879746147296787173190331639917672212873195413292460654832627956931267461401097043865451914535698778569638576767609042444331327183956104581136970665682315609734961003961705417019032151891466617847410010750001833358366663500457627540289635206132162290994924164271883628034815826358602923147965454728911467762169596392005442879088948098386610151003179195958395003178979393282640976404238627843944763825705673147426098908634137332466650446093062185272681092854721005514971220111087450950167925761976867128340143187550902136964286903081390960581574830903399638329579875554759785815817297986293796063015715386578829796265306807111981575316808847932177409995486181116649690342590113305749615064156064960749163357676865795439642387204756061258856925762185002006015098933150480091883036387067631618906208882430329788150543069580628203639460538212872022972526473407073498837671680224080915298918161554600793434491094235951584291381005590703825458722507215342598764354478038409250706193643768144403298269282453884319082493522875988506277273074426653411051628186595611403120713762439827037332163556620324585868052192910039581936515103429551898566089012316776471085757670501083851608925974290855872307949713548330729560196762019964857038402886383162446326282334151851995994315944984742854352080252323058905899781381855216579763738988536705264436754295267172073777983377914180833247834737210669891386886564982218222120474972928059596726656718901153808599110222806846310896365004704801075612662521877698238178360396680909832093232269764071792541174959193823617907207149871315320988457625105535445207210995677434836731218702709121633907549069422566176839648273847014282274368103236168024599981368918351184714717630794940975539095041990101712932009998020945156017063045904132900216008966825147751810080622800433236792805138296890508250260302205673228426789374087093712638228496729259093538739728611084609840783351304211811062228720697166016645834577167157714431377015301789226474948015823753688611915116435485214750904160512607841473450229467092034705173418387639449655061249360261043712915300433905433785587851597879069872393097424569905053884162957232607836536792278108263235159753333528343940335328642077736305728990482346374690657282670351774379804361964452107409078590325835405864147390074795444843723406578487387190056996932373564106613010968543428530231047259616038934236248864730131764938618504100580955897930106061375935747105783103775364037721372617306854179282910018620062366282044157253302440184253645154837096042149919530640363979022436881366562772699734368262164470973263978897325553504188282722771504960327598692128132387465433479194602800046683240950902251833320294513131742483372570836076671295492791248206249683471297514680261671722175079716625257812566090713490769599525406082890494008727434422562871409952449705202248658386014716536001919996974031354288136651279103116810800487665301567826727542188934428539535210562896210217287951351228875479075191739638744748090000070350114588518564818031797028772135250669231445878383989429925531808217041610212511309726644841415576513202850517025710516512348148231135941570979925479802736393027528857110303740137537292383776521032077036096188990931848894292085132590111577956759970747762814627126087021774362691294316348604569501652788511071309993691631106683628550468446322769459358028380354428118356699475807579940817286284664606145929168313067100697504794505569672119082464541449792856944393149703927978121663656976435679496478576663662279081989555035237893737347879824810658781655199159289885991701766881845274564743040741300405412596140957500399341893304610705552487532160106428364628211244881748568278797973523437963973912910106152847077251084886730266624371746067365083525432379609908812202355634602471105408826429219043197017955850200158966492789459177813084889133942330108770763831318887253582922937740874594920948544621352538544127277020063826057195136046859071479243311668046768184941277683595737088710104944827231977453924056812258905350020141485810190718871673852020327060578609298813608658939593923464055802309244100998485532402722873823567104836475441471459344488016395972365409194277050874723578263278028969804983891358898769456259846909209129454635960411511397196745549610468020281197718855354059581827142499242749547197521388377044555747768520185444689786356251867896305334418073898390495596741919546458742075618851285537202959946407638856114603630267275010899030765740827358296810594715569161274051411920832005848240005524896455616220875664677243781384012238587026691794424257223323001165492279786842777977814086248739379818700273186786215298444058524877823611455793965096785279553238665982018626704705195293582826734956922810688253777850240581891359329688112237136980144476068029740129639434226860004696530720308231336356568901473183193386585381084013940601666183683036802362075416285780571114545688027146231114263493894113011089807709216575496702216279670460837567613307944386156887231157907207308646862032483463032601582833587292102562487567592962663870263609864643243687894861324412203956792627537232153716719931381743834977851839358630533048395243293658947861973321197134648722608744324327056895039059412918606741967350657351753370321310023958960719116806205274189255176041544833007414314619074066346514774989803567411297325820011349734505576379859569751761600364954081242444942509040082446531950858383057270219314200625837786354420156700353845400083152794163949838145127436815023159278826647809277885036090431745186721140878411115611574570982242715909479404365381647367413315963387765458896239427786283008568230263995372905977231539076414272764184082427129548768445213702346428204454478329094121353761512759868202712763720274115946956958140324087962739802729059097733515976801078099478387011216913263481816130961567955440705193352886679789006861950744649432846398035886774443048838309107321852091768396624689658925894609191847510273843347487121620224179334584841779244258419037254084392423379564773676649110903942632489007567822405930352238429555456220321173978536813359954080608362244564936668393685854709522456051238421654957759959792365726281994239168495963614721909106607399966346748762514584288047843884721585117518614847071877230427740240572657794200615487034847489714986768418781111196027819289538037419452853464224445419466169824748521950973686835303591528587590715529143199943387513250372801631956474332975130070394420434543472402165466107972117896143580168810165930008469322432362130198638050208038804684835412887412017582392072810108612773820459968822339957677254367788976557431862392273016693011938927729770060135768443467414131711084515951140111739449256834637664081540855564618342300217352745283764864360513453557655879029672311406886707260094704178693173146133527388755261602804693111107609647016802385481666828542205719244774524826708688072515044610306232372385302660956006894611078598991386762993509791776129560688580830848322267960169620501290235225038791982089321442080393472334826652033309140740511346823766445635802500943693767312152374044449354766014011255657611997329003467494549802136449931451957942377197798301138980567674112737886909459549504517100545838201266462124894898303027762426242761127615166206820023415407233097477565243045437998871344797530277904286734001617448651063400577234863557314013748198392181833472414895539968894968504468676624126699909499879231977639943671505510686549844472660252030895421609013047535575557253579748842716802797755036643206480314623214456489571778125438554829296904853666908824857639760465179561488217104644728865127076894715087884191829269463549021735142983379612016910207021362607947819989451085876405502882204334538789188573825557293904147733962168838050728568351650790479536759067102741831539854225517041135280005433158874667004705049358360752639479285240235425495105877619721373734117865320317136645521378407777802866284993298973772823418961032908999391137908768645537676755485087095355602420040732321099892948396697366896671541391737061779435127886170537027310351663862720610701133681249350622960566026331501518982588630002666554164040588476022267236746191083987535896714342871995379218926007063939369954539620951127947669864536894779275536600036064607847936325200608129046687035419296058488826279949262902127217265949142848082671823604755603607424285842461216633034612219216045864929851150008542041555808630437060134150695311129327518973735718733038401879609966277447175182568145675384658753690597740161320934392521921478845025179730250767200718270893785687889117287872371134667079094302681825419483233302388054599487046540907639979987493393481662776392199998761905386857234851140403944270588143143354129872255564326477038948705830985888065046945445522305289241775907049649986302237501239209714429639113892635847614675891446301444448636479317965448398492486890462669582030507488002203148222542440909143064317459308755898397174327365978024414098659174336054763082143409577644638453406076760095016552102404945250699225641981906609995019134600233106082142511821377331448155451962409497249947423364475370493737995316375999857273330897991693380475879959272024607843672179792975187811578749688793547487137775130200457201011041633964834503607065366599819211339086729636727157685653070500509322799323964824368508717461277899654208809533859044412165658059959119811516554157494001208095793887736677812275157925534370084313191230581273404807858718885778002484080470959170168430198532079026789454121658357999813884882808955644301615224749654011709091571944713535024362237988500900027012480722172810136612694166212148721486991521735976633171212983985202252714963047535431960936282716506613343873656641403078741382482029788336438725723277509819624970023550458787741048344529961858515873974958888642886661998665245192820849107099755483229329795443047780532576009302182402711656813248914662597366179542172188803123174838923323600604895177525290043517811703051023392375328033771976844687885602760150502422353382169841256909794835641384742454197886047258113150879465323767243411184156418533031048056204479988289992653138057072367692807306798905952586071390690708323813113365716198142828974485469997987087552027498916378280509507847383010090605560602667219683014025560850720321529183215930067402421914979412399512592106154553011416154890291004764802126737199475700985267554989870388982378474211477392029298885795133047147746571255516756633097635057931278688533314603803112787158133828886631158609980639654999461741545842756670799812602499132123931452976311803050366592017680295136040797578254411245184974651308273674278862808297621421200029533177172430520758025797466162116762856249208118432726442988920654502793091848880918117961730154957618674289262084160226295196917985610622525977413832982150099812000335778578999550996970869857376847183345833711188645138012599180887086835648795458774252896574886341701354484671891192358912868757420767552526075972249562273158300048689155346861767061948278724247621964819128307925412442322760226939628352585884695363983320862762005797663718301413691549369097034288571591149998681468146880435687872551201738136912931097193509865262201510633150943714063368035245143098505152999324838578654745526002105790952107008839296249199331773952541844511702668597068694578933366058173464675740609023568307433110459533429839352655883214136027845918604269536237878462588538956998494624414427934237905431389331275098426639233831434186431280413575768697252765960944881045363794919646672616201031795341376955438916253127330012496733032139360664497419208509470011498877313319117967733538344927155092934678460567933017731793849150847293763550712067962589341890848952362091203326978068136798839298642572211778985110614603989405941121204034644165736120612471107848076708548879711468185115663184785563716643871304321533002418557860483180835219748565514586365743405413355631583049780896105081468775210181975797566447396196300701561572039446763452061307562937027115238464204916050100052604825335983472707564948296687678234277254290175117258521941019770206664694383553052827805462344717049418131082498798390134576019817432830292995251474426110132294403968417257308955152395170379842674658783776062613081345685200705048730983212968431516467830622230081920795038786953733622501949464292824342755580113885792153547431019225441891296117502905826220073137380794271555928180304118367913736435236875681999336540666928965611666660608557448793157271400265205062480762167207489275490374500310750186967673830257636711062684383995154511963707191993546669510299010311995481141380749360086324222419257548614219128900116937193055423804562989304003833889908298180769988436573158071648580855898228654049346719414747601375619396569807498085293278622029350704787288855349415808258045326640203614606067029635771122022563934003245104948882337368197043643457996612186920600458440615052016566696059282264394603058238667744449814276104547305338065085803107255361927635493836024509950194888990356810512586375063076937517389444948913059251828148745160707018956973093272509980062646847308932132235481093698127757436626923223883535452229033017960714082827366208173802634361309762423631134712674436883308571821597741649117890519949452056595973691696511814155832933424523878169269242149284290051966149228359886310884789623296846535138375280487418303281622209734449441696888524820844345590181294378022005368650743458059048722153080796355429831185696467684446712687943630262147502947508678495716138065352081064566339268668590733839519472219376841374110712352196233932197703381146987560483595916078953139588612227578534384828927192959166898358110324849030732613881449766912723867670503640997286425282174851464265042530246637262485551454082793249630713563469159604092569636456399382697343710675011031790960434061646852422017363248814031592845974938614661218759087420557897491912210518557293576023953335190306828468376988222144458382275869080347138327565375010149970623533033835471104281130130708556274649261414137567522213868428455453083696890688025299614975838990002954027789554155081237432632686714599449241815697881488690696425537715616104519604115592463493166774591984395805449260638776178533077065736325713147604500681580271243887891561896335445007049157574916673771205951867628889788585136325606137583703691423195199418307130280256875744122764025243342664790191222639541033098813899957943590796446311709527875793121367491954129881693037133067958055813902515507814945746378337898298739764510376745735999626967949106033092791982131612020413488774735786623443929337667899889774838763331742642039836946416542258160745698591239453310123904807840374052567113038717695923428694916275858555923352004847958214195268078477466071618255407451631609107416677309228736815592066156769385539967147130320867912970653494996438596388758426348165600061247998307957030999705624218639790134425945451973494671949149588101659915754054249653148738865089296140548934287020670570144830230231986452192509119126608488858400615492783342612796098856600371955377289531175078280658867003017092869647849724891628027067159056773705351633744579850621993799597073304188900207013370110141981982421531759678638901400272327611573548565065593513180021303808669222908960489701153353904981644837397612376184796833712456252919855523847368462404896133133140408731286521975185644371179093302917843163829264368105583535523998291639959728460798115005028996435768634018178127552402004293731273146969520612122048063718862691216436191036653122042239439762636810296677561991022531019343928933860690878945088665119222950696971707291110619727274808264217597957768487689894291224606550908484421552902927886803186157139172274255743750963675399932046446632904661504100318490937453645111444577953268884798570546708909578359269029954767750118908209235866388018818144617340582549829156501203228657154984978296126421609325408524409364453924029520355355995952486263052466949963564649474298033733039198326771184213628775507188803105307147993138025006477145837303187953531860660959128936565791825633976983129212495565445719837542253999644904732212605411503090449367635236680917476535163013616157796445755473810155607290855212339002213698918887076858892699577642788725165186166942226956728157097500421903911396977515456431060490410358719054781057467425056403835281443884210808475764381694506633142453383143864897498316993971230979103969981826682089391019263956928610146477380125234283501507872006383599736616194672568668833116443913211992903381916500880702569187056229002418045938613117148046898882282539014257419355826606345987206010719024326723745135986493077852532810472361212162024560809544071651806998149773316406991827089307610355170532839547205248332369900606482234302008394292507686672041301737016570962553442487738020202082689563889721200517373989313424533623406153045459639495904535552522545297484185282131281734154488715640662164548281002434755917259616434531476298783696903816488834579713818280914119522713312273367274706858569541744012339715631409486273206128537513102523137870263738533243299322663783808595568444378463019666994782408477195039022116303366022917181113873866835349111846996467424974452304163915499119761156108344936841115760511315953255078398220747758493693903749281192792198074949268952903854555606152374229255827829662288858887504409142546686549612073127299478651135300394256803023038355234279329500978683748956718029299575852827851656630679621516190959521599888301886342118949905945893124000073254911598979836152446630908191025744899218870968801015519207512273438970441676380610592847736403786243507720518874123043443110451691260704208589160449040146518037365083602262709897369535344941037375075171508877434552634109839777434287510953777397296158249603558697951313737531432994417288857090044454951403112393819329463603595589683116216721372527901536312755511615845778978041862558464535979087477054879497519618940993821627736683498760366571733260397643557249593371560390321160235198971296355312268959713279174226509985378125267279013146570575377016252752138741560393532564005552308119022867735043914207360878865742545835552057403215818924716445785434448467410608956238521016844532553912381487439492444451049644140483913108757397888262755189220647263342119763196385523815440470186345234531047930211644689859934622980055340193410543806975706415464049906237895471488610029496225183465036133132653320909881149389225743914049220469351104291219161616154088138334901280110614442966769563953450027154193684443611624603712645442163211522041411812899106136338353904597863741452172299928115608065103698224661045709930667339223296178338923433117930498528805502542817955471785164057086351655670973609335393332835971501493477903700438753098567404954940646372770822070996043335578433710213761310256764566409148003751051280830094225492107972574642627536888598636516054759173724817124221444289470151430646662323045464470511156298563442663414245871781670430481229472115575438569397794192944172046721812878183251826075332024274830711796804682802628990189044210349898246231100951960458756362661725197633874697051565001553186680421633826771125008218386823728071311516210198717344742868204596239547267545796571920469370671660206946889429379207808827806022305825364783898689404055973633796475239873850723081720645796368576104910478177996426916470145789051206541410053598718992688816467616815893814896104858912229977601674114450522153423614759430793999761035255884322241402988880462067894861610983400876536078209141867253028564009965712991817486101423384739351505871288958678787912596577503508947156362437471397849977658962360189672078216461633033548305415697757984573550638951524002400026435250190911173802220867147588756262055588841842110137828731903968813426648004212191100062502891680479790038602039583763294285439647217811252666823223035545894108371545531349499950547898111398843243660014969365697587314069806650549753698569295356298624907215240091565880012511922646683844798079970011912820678813768304482893685245798344203920458871572867968042765756708478123271113737834348387999384182752519588628260119447961391756323392212897774683046243859929707046964929182674264042344727964675017244659299056338344836863409873168871164007123744453455628272215311958705210607413643279815615433801615990329317315070598899073481585941351181274155911177942727318566396818327644926411095542884742014028779503008194215915300153381331053316265875544964068040540670898510090058953559454482217631769871705444111393001333642818908405244586820690689868520808278241830013743179993902918955290172782250032417607801026004218434986362363084534396781830603460681692876610777248108924503236162437923442898538565503058434060275949284350373125659256329766880870048603205281270436202928010997558512892902732885890508339707711085801794787876645678636256027994085869686003493438239245697136600036451376054140331682394829997235528926493869139105266865614605129102279417730577449901249945269458116983834261981313876256083312109972761718846205640122878043415871754051072484791521359852932669172992982216595376786873051148362359457110340870403487862646578969716943791426094407477252834361353453441560202214523786205473652805506078627678810688528368191872146721332854801492183104787637974306978127896779253722021624843240609107598505140869835999858409461740253485972879000955957338912951302280428253501716062712680763201999540972188288597542369397039824991075595449791993912410470680108154997872222164480851996859220742667062540405372604530461784772018394356128251854704426186353373251646881785051994493953547600721856899445044531470563772731668669645661979294516937019887469986634426542098687215709521988810316057410248486605479426795626770573565622155255504238961434963032815483073629995314755318171177016142948032744780071653502970732640133924232075259907435734589230721447177885480808857642004938166560384027012352697587083777253708065574244038567529436528021023234551349702255183734174101969292996943156473919878927656019250438496686075229746359357834396359130399015662378924438649204909924260240115853893655007130607814823219104007250861431625085649487007408961133209600349691784798022875206161476987451782225921552471623785360414702125262606760882950948350343258533723451059049152683540762747606994554399050584796055129564083497686025181606884783878990094539732524270595473290799287280335100261384407574214078634676193232955024229371971007736281561539124060539351131800795657115033236838983422476575639463337273284851235333992948050870963763611706365654136413391463764497041846927913738090826953888774375235341457551804279757296156757368955525459781197129415303541016436553230460556392844854630862077141204091175560739289263882934051537167278880729579215828939990173555390589779377190553052138008606545010241803517947321834202340547023760148470991787899316879933102008870275796906703502213364935970359696744688641685881453110623301249562748858322442685271216175037676415996610829161705474655780658867044834804693432225439164989982283268260883383433787512093695128854153943267665121719251655872307078084326543154674663219925885232255284767403358560267795017050813911650136146125668746277632080199340325440349119376349200397145830849406929327106081597638118790548151923962368298009539135709959864241702715160234378696546780757547467079658150068742151692637525546225190161646918583944357510456467666918665240189975430851164054001183123061740934895022485402131241801588126349473553515935589521495314837452401540343572235614902056193649556470771401141762350462665630880645306771293804925306479324104099059473456607124363035099118991797985526851272049037162995784215757071631363676868356350113175828031395749928655089794179075182591507720091763793645286438169736204237003254092801920810736944008138783385413782408771626850449293207820464939731742010587732405731087840136697751384548216412230794793391648247944361143078880032353906284032473449857768793141441844028374257133529995608167302551655334230971428570458616434723824594832088005018620598275121408892339582974518509845307636839679055184777493985787017898057930565020268892348650408886192762957507141594133431447835154652913042561558968302730500686946757615883691036397456375470907035841828579297853934079031874201815982114588289129788536802582931141210921394455323848523430323419203936089132805611442289202535730599338425867262712524358774456164781625205920212617692797844566861082576390317630446230581334470684415966204194391839608095715250222539105540572503335006629560631977119867830501348398208168995863834028828668039328767099392786197944794506397876912498165529008009434033233999637762345559930726598071781967657413677936610145998320725880249963532181457046183049487845208098032107545478318420329801969498783830906884819266794688409386831289930241562800043123351496445388432210790524207280790050851591847223890865987587604966001827170323343854077564425612026937164464214656890935285483531821147814318362769933461079893659302343714023022111077590647171798560253883732722992171699012588925411185007831104102464417877522606086068277951187533585869021263494099373893842733229576297336210897734227950544328826579276965931861114392385196249832386834095889508919868206261970391816311638990296027422010525738798487162886602454248713578738502609619249395241032784545789006837123881167239391776120698123694362386292794138617598828379211879660654033739877085568733201754463645987870779546377009810253486500620346168776038055018782149026419013842393101241747073529063635141301415453091424658020050013243931254452035517846373679710497555777418284738820363819959361866542953035141866268159728984714296388841627408802016845785607893123163903789212494345613115860695514440252938858833171090021500683217703625583691968471353583346631803285719946803382215290222689145990806000037324879294332078186633594468780101404199585385919056121076447733786346639205499376488390188399410534005631049155187292557894736083017850961592347270803705416977613585298051648924784169791567227612485831267590429442502234190192498411109176491254559943270038880059230349775625586122057475949633094555824729244553056573619991879512400815494852764706324635306898316636474429652517936452492260770466903374648434724834263001769106197986966484222356254213815644663497119173183160734279073025099399209040318092403073332464841315646045363608674581298308205920867872671177587796058075340025422462577498428799178658576321833457076164908620844630588201305956043017068854512813218370981290097277611212141445784859422143499170681693148595855711387100841540605614673729399663789817102307563127283659196449621405820427684956323711979565735231015715718400795212267483906683072563318362482602086655956156761299717347668611735226389213428542733777555673777488799685864253597742043753551450012670196088883020534883532017936683031932209471183507540297166591899456091514278769905421831079604072202695561566926270496988524693389515532414768086256291136121706980739585131102133583545464609239560095008884110454689529061209336687227497920917765277881074969590896738610929663566901099576315557265629116640688499755778015129974685585835172189606642423070989896656606218597721249136198688783655323758590168074102594242647452594673727840148425945196248381673209586432974798815892643529202563437378597062122437011879707602944876212892543514163927296641136103763859188068479371231191093699104522529642111720201293445340929412243709744509340281862478484496306289112145820571956850078219806977802050288678769495582790394563894121181793143336974736872728149471705449159228446373650720985702304344836788672840480821382518056343856559157161495284632102202237098081301116397926385187526174356099548337943932171762312624834935418386980253839330134982919483294245910676952309268677525881829625617746061668360845844479070989489615608929222757905747880404640758597339915725498724616309510798838800384433254001280911839856898891256339263939316215304409071256525208910188446548285234426743981656497198682201456122315770082623309288376576914814892376442999358557735312786661701257692816058358367877566873230481024288895843728957970956978310030124472331170904136906819796656438381568676085003514123385183934070787530146208217218334209529337815068103297941525198188804906371396711807392958677416570946550498231099410135217620221974387826262775015961948889513849168554124480335223040799044317071461526369173905479434635852274437151978031441056566134648533997579526225251730037579491885850950042265269927610172378018382059603541992274747048452215070361485952903508242646691337475917450186446412998467815685343251617144259114904337301947764291562668028034050793658188960811386774094972569255549583292736571338134324891535824099183231674536806100511638550745542930343882059594967694573048649304055473100182261740461985228508030844059224006355908824218085007034102578016760879811970338479589623850053685637886439671551576520337890735564805202533296942997744652191818895064351802956847099412709598162048645334598611423726696121189454791917532791957784296331753970467974637236798659111620775622761305483090022097756253014657436133037438516692511148484297564949493624236352458903562742725842913791325705784452322281767933931736823297352157911011021577271825313750822072219146749752509987419179060216578775861180636111739700456334888106011186224317664453092430734158782179563994209201558746702279758597894663812745462079647911249302359406561312954400824849914081615663601329043716511635390382422255626220592955294079789617605359611875054523641815320474675399708645019292948070038374639965944048527480211385850990210627952755052419757749695154471815457661900998166801659350212568912299582637117125913060318619910421809463254225923757319489542326912539929825109828495172070999697275671620026217650695154914304922536970118532098320242824304220640736393141640336116808865381295193241244847625309924369703252015655670723905093556175449625975091137086597837355526232756405733008293679972731458410809727185099078145901884208251753821922862468230772281697844942728100711080106077477304979052513998502790002912449376892613210258613064094593733088206504169870693495856760472925993373319200728927078813633675816183032889788949787896628779352874481563863389274538056487175626062175183955502279152102051606210909627069108383266246213843197245458510906655178478425348016976526963594935374881879964165064467808678226527812102955848319727960195560128474631404078030094950226328197280200958115877964725034315240717274851189934917615548804462709730472655220225822277133654891124593205343865087125145698092751325707076365079002305896351928143964099412108182471531846156485055136237214181094930821910695407419338989887318885383982428434264592675040763425648453550839828508630679622100404390193282375425128369896481582958884879149858048365852465188412131103385550125359064663724977867824267468685343020720228133531494314081637175459330933286813486224316898735147158578421572861011602866653223110700030987072950039693928961297779404759461981389110385183859469663773634719504269944144085245342949177878326929921979060627120328240465469348547971433931155809046863849514206762543204574876341818558813776275725073831743214280513224681015104195254981943949562356718432357438543813279133844199912529474131514345959354755375906813142719843781179118113785909539839287202844326077283661194520887755402905813008836766957429842318382471932814252788386204295044002873703792339495037778326598104227648532457995645757551476591659151390234344445925830641177570972690937099277055058792465099045098973126131639466117033970987040397163272615959502057107123612014800882297934950209271005506879405883295193560195410260684265875935750023897130689919529560446465868363386286211975562343980053779112151099208917429548917449889007454086258648105844538554607525140586915967516494796376367598392763732630195313887785104405662910532115712070593206826450764768095607705787484990564895119274704180281286401661079750568559191029139142832885607507843113431841497664805102323909943680460714889643185728592762922407939826271414063635315025565480466890448049340432136832912290410347170610593830386979182605315353436928904717252563857697639173633453814709333574125816350550521865841593454948261000348628162095795536734074979834266566878314221250026435092429887435605517896956945545879498421518336594608650648131384000014676241834595412469755538090384792869464270606272382342493653700042505132327568071748010982135828286914008693692020591218677142840636816708863103195746363797212059816939899798034242391783427611546454482737548155766384594526675014916100682763050696180560354396862017271342501967386559093048706635131654112126158519306487319741964219109615302819776133654711795436508145034393201474362688485530447189187730464401761774806843806320756557471075964286184062000175161855687437790247446632381857411119351318219950943440652618891025189071376177343151679131955132713878827283171028620839018221184283689071598320110974060453771706566044700812603710892688949380438654284101585733602947396743319710220971140413081632660679696250541301454301435305938250485970595350026884203197262191137585659944084201493018525252853167710909526918888900757138998310631995419699449925046688414925706441232691353899966154945145980763197126037188392381448863574267741538586213077827930492466839268389652457840642749704063480056292800859014985545700177394458426120674877786479166110769090288072710784316145734542589634385059107004168949807677861227477552856408007537637330211604166841522983803136883053352480822865663819127133347581103024078382664700649191316952095235916301898132819785151196393562017705077166904058984305953762644703400618164005109883841973544625722660479566484564093503599944754860448896768478920122173638512917539344946160748206673426179901741253417209513647047147400428569340711924402021046153867297456545160944529987299453516496865273685129659593665647101895499988159663059214044822862494076638279245803796054181041452174284038389822521761293074191456639626516232887565417478384399189508941809342185624506487395070190399190048092662366039051989413081885718662201251114707865294257906796188998571150115790442969514644826502028089717316378243195724228665273823415302342519735995009781817355006940815478371428364134955865610184602251349482858641287008019414019314649377886449730362311782222257947094064834333418913579695370636978861210714979289272721151235338188802765130637505897061839480698976180144736848925861953764649879964065689011917258432835752401624394334838233889542384098121603590888666671741313209676335795526983323493623348027821154259150963296102356888496506760679947270220038151374464895345297972224743124009648431626310344742108657470797032288885393131800972730433903570915100670571449789674202873471094059487577914271665186391313251022737477766029997589923143860775032326047795224491296822051013912587986787435864868061102407537922818681062144704431767650675669744784629879319721850068371811811758226575132513182475495080845802986360555540727785172071211965533288594423406761046429310820199898997936862834011159817930174790703091597101996173073235615170220481778874332212706701204513083232776224216678767293248630412121737320135553241906287265939392183605314250603873033791847851455406776546282304903784673312697226677978305451137146370865311891125813542098177604894102116339737486145691564482821821110590419195845130580303272993727903408959931497494887455168893791810645225925266461829292437577207912098367413114827297408449735234002465643106036458617303256570441468749581193302931818039304270539753075829769430512310234155600832458242458583568277159399283697839430477753321942487309043576472211659023852716606640738120460125395671317629805866434158755802354281866606058958102912076798853870966930728041942748493401722583437059753990683877099574909740414185832362194975037871908276411538568328529996104665952318949491471578865661902767486297648360734005957204620452922874345618201035561826064472876138693151126914929840001097461191700778429731126900842268876219450942170972288821487330618465143976982700743506166654100603195143233825354449248380722553708371305623448279570374521031508140598057070955799399818116875692985569350369847223331503188888083017904786089212058939716800632227129995123798558944685960519997462130132423450834645867707428448864266304258326752500310086132929625096134182848991146590388993392601454380012587784146250027713396980075102303165700275185650810956204217911727615263325414466294086417367063817997786930864920933764971537181208788436578097348061352000723079817345034193940432342787288483143065253535606137227050078202273911088817942875820101205998306158299249597506233485523548111313378000625997032859518236997883523864116024242650387529108197095165677416256737121337480151349422743944855482044908333242887147170021043936348586185935776364140226594678867583574581110391048355216891491213411524318324012117053260431596023938838004259134505917386191746377910124759118487813436593905208395593467447710291827054073326390702323673491321106258511037298116033624464523967113060436607480094567129885223217844962684417354750784908290964859449562460828211232763955746715064181730751236757939615780048841372360993402193957430311813526780047350470539811663530043435180739745520177055305187382559996709724698165833234611823079172280596982325335879906680382402736077589004075480422347990011584889483591604377723849409981149508285163858855481076729067954093065804872375175472529305820270839354140704955444421319611647969936035227173728055187610152662714140454388519946785822932064965760519122177136162609839295419158154746479850608253692523083237854910606057624162434486773726591630185935791158633878468922059092625678674832674617617557054782460395929701721196129150347359865974886623151117089920794430475007240116021613420159640145236795925437015604386830348603923648566438958156099160279044295072342595944584600482364871357240765462083201270253360875981107163126653891512078486920041468043461080717969370956354401841834686910292996758115270967327267312492801630311705415433697730814181038464986563589761644091922821279751968898174319277732554484628166635844824195295246770313903136839609272347970094824668896781167510359804051149373659784390480942054014742106804486528584765335236284068249283190096203627705627905370377007184801776158426433116663412255492604916785409045606173735416976293641858271743004699226097502704653601006942630355135416913483599768011060241344793094610398424657337549875311190325300945706337646854581411448990840909390043158448607775776410350064620361286050744487938819242664246750322499842621457070529891718486208506974706602018717307597789994515887319264609143463872874140592022477565054470289537055208937657026125452084283137095452516092375091769299971567769098419319735762752756280320835929755097455467355422026275229389515170247487692372204138861106435665671731901485897853072044957165644173542052303834896863829154458495361325549344179401164181825029738137264328636102033595288267067719583718162398101213851853530644274501559592752354477738833212326512932386463835573810272182194847415455543250495508924876267067697020520777881524238976317601146291297015712708870522490755074874390314970337720336385346362513874732468333293861178098765821381551713661812679700416046575230677163186055741884789997464647192364145156806675193388239678673822634962200721302564638429328771071159711414555397705794515183224036318197551260796262113293482631542637090855548749328682190519432947947640908469498821985606828501093252484402118018125664882652064604740258636953000802570214109944953825710224557994586600808795751046198744250671810691606113391805291740579431505864427280786744944882923578804337971199521929326365644124942526591089250729903089354153367351879750990540930370062142181134861597100240580921120344636927384047356527545844790457084189532160703415548964602495272742530270134548029689463188493983549562949857693070704828586707692870988347684420490455424343033031457867490235407837960429463873276972906879172747933873261113522364573115556357492871900674918238157773490864579063323498203527384127382110302706124422703747110783784791301303687480839946969890276522395142406038062403785486621089744356276599870028207152335284211211257304439255388082864855206493361874589174036841818081421791326902790546018374933147841199164953308401250661432522971873199335378543272742274080895008739947311680467636148286654004650706102770266776957979585299027187212977811696011900025010475228319634750426077518348686005901092349892996492511698655747654127029979472714381877950875848721728079397335758937148325731643881704823562739316676451088613714199275767620288778587806127284197555938258445282157840774746545427599617234631250135037257677450969303174434171992943849852988541811746788019195313229088177834012768859069704920415988094673561507887635907444917034208461760559999141527037707093139045669240406684581469494135544866593902106224444342886558307478117389419168264197323339051191847046943530744610910462243939084508077376159117974937180264142352482654011579921460392662926873095935012073750591452805206943081913578999909742659203295849199648436142198620497044786128954752989940931396202788920942848350224661689425999090702512922328976484842511923001916073567137219115032223505774975595149263073844234874177316126952555613357119009498441402807653380779007845473913166822082902981910463252472068146106926928383680617653220813645962872292429907332846867975800994490295305908690923531648346597238321846368842925997765887295517978663480002146973260691627392433452831867769377923133608595359685214309678935594073763930571220540759349755720651188726037542244762873847068885139294381481815723366704715773235834329726384607194762315211017514779983596608217401728111142999267812150848768920351587131769191968777187737722722769182263873698971630308710224960635835977692191235181524931086211073032814431226424219092648957324999130951948993726413222250540655341398585330304638978987694235290642411647371137436010765347729032095815155871710562432132768499364542610949215997817603601799861359622314569183412376735023878536812257004528238119896139777026364126084845398333022896342303378318728658399785185832659538610234174105868804899549908092947431723406845144224301279052253646527738557006558889538151065913708827677598761801083340160254014100415998882093208493345602487512165218970605259917190348832513617581210979387014626808233366780849578148432795293685905774342190673022472142942335396492622121026139253336042228196061942942069609612408509085923078750272623612578328453950032466723996893707456302330623216361424207394301926866212946104889342521659900132946893462929646682911374080760273839167529837695135323459744258114547378422079307222923481160336042068955985577239333468608807917594500354394076248496858773639128341227256365906867818741075939967415137761325397979513505804714941000425838458698429262622702347255428549783510623948155479481192854006366998329872329218091502030011055531070212282670878701878926601410438058965529018217309268198872073655175179258891512066015988578479088537921019192501609384266810235548902895287914667518614965672046676478808605049266092781923793099986748270752995012014494952197076997554789804067657600412938459468508805963838085509308068793706014433942300968297502715494683049447913940759433102943224092135259080280002706310202626399088226709596712168821427978268315119262488571182127101635988746839473787817278940663334938785997745829154300513871869829546965758541032211920129328545345664454516359386517247650691354111581268448215480782949339900374266085767157537278943822663271609890922665588761078680649138175793705073614307056028823277234528417640509757353079721292632475190060019905166833897197785956797977272818212899730296076009166303689235375842206987719571124894321904044862809079840239002533482797790845317729151122266899022569644556326687151041585414517877260197329954376710789542387801806502997351014675837633022963980009929800585041232065058289393724171813425792593471211635958664482652400420508645212179401705246660900801173042900519663189344973712656808032752414582279954818768786496487233385074575462650556545616676449941211704798700562028876764164374673624977995675831608811198535347856920039808408957521002184946277389345613629046328856613276817150886462638152918669258828104876070802226743804160135704263465057006359673985025825530015219746236442419957196390449781473342153320392996603580557137627961840015733547987004174548773084501436337184160962128658402598923850726137230272468298196104730100521564978320180459260099647760760534252041294909367582840056787308436096404953974961823230981401245803016397807171399581860373997973445187682605160650814586303292564880642966021598818078436432518529948408254284892329059022432681266193296978477970578739074323904543802108516199373130350427076385916986443032540263696671346960526349526038250757954822160656020062128987444292971785225633677154859169322830361710049338108491162750111461852184203646050944059614340158213592032031698736874115909244488690260140077007254349382990114816008158533841902653661680940293761620523610969279354161516101666347920061854364114879019664379151629929827864839107435609457848065720350626263134538025616925658495488930250267039275104825496977152270354932096086889905682473717158079883704710414986523522280948229818149582797815377918382684132590462625942818951755978229336257751427823936053783962005034157245160274745262015012761854187315920069679059226592654892749253428146787476380587334984619520622906453249240085312581851521158241663546438970150831407829768029240255985637688068301946679105972466155935989763260532570040422932712670800850385033661566293040684197904205458052481457741948322137739644751828381000163357848623677066896733520446420269723875108874189958291388843033795348765291378883628023462928519718079092369540184568585057206437850811285558781630554620334268374329385241565967394413642827371765880695275969138788877849403990701054115606273352493136862777995181054028257654779472668275939891281867131581887437149968885242510685870658308261509675923164629734001701168924293707305609002015685065145724441038049374385494034366021943976883898514788890931662631142357183774988951906908291190988963021053738349200378999019030131350599523177775944341093948978673827210682317164593134902625053474955145223052893382904963004378803285867251776808827911744219875929391640613891876382562018102178056807049562480253364688860293722294947193934697993017365385239803031553395722592110901798933955315631580105888929962824365319569734747248692370658736451501596228416029000584810821827329654188932423815288988821263163888282332867844852130572520195382132726175775529403839837330085887320696117910804671505565005506222134953297129136036727078871516085927720232421813843644533306096913501712059089027444411743637669182470227921133069025116519934770391426969132255647825935699940552828695851115671887840777638082543742562102309873972291219491478128054281537099900061825621490904538048891670704711254534508320017701620495860106045742174696428943436892984741655510622565641320663498074378414914066970213158293389941492529176209086014424511621721685888444687973169312593839245756922624299896580040181316722403598288418520239458537078285830441808473056656715315638861461904112774890441444591590275775317372512325909120192359583805033792369408894592940659119251327382669390753880591581050908950257857675499551343095306075384558391349582584742366912912081984121967896164305571855776540879434521248597364701575609506446870909885892145555855555699562072377293790312798970044595639387481104761463643854109768116251472872588414290019015631075792504874158750074120405978387234831454286801068400664700747280802319777803309393149853262329274043560221064247114616450994642713781637402454524565471991861986430251983119583507568197810237985653601873034282481514528950262631129456984916144701390964293629147163607747563155867039755762302711918828413397551163267858443447111892137385660659973614794265946319564484792032294035700761675840922974118265350313166230124160595236918612660333896716470771997172296513138200501439722982397794895261720882294700725035793714906577412156278627187388711502016007638698042500781696429290833684037084648414852386902038036940885423770808119423448032874214720307793941327346091704312519823517090405441448745396592052667859924873771942665239740612940618700052492813372485913841151823912445876104013668855693659310587131416804266495855953758850530147560174105593591884358498991744663598908902855616368898068851207202415462273798453262011021404652019531093129341911739618425184518694288069751679549748519509315378339910679945019884996047130330821128221297627690832590057163658846985185434940534494851997476926733973494386326631732192748905102808980899289241671959833242679139593404932265888243657061766880827075487652078274698593110901785078933939179809967705174656442600217998600162042843886753395868736008688510948980757436057567092412290347935083175818295781357561069700140983249315863845095697129544203605772062292536353908946795039451836862566124081885361276468672503312760988279418500655133432533190525793362081289060719088640708256127947260102892198759164514327167249262361926865551405823465756906874078444189408372016583118742447590496426053429700757505242888480853848300551760510237729740079502507561469895759279407264648180370817918837855897181699378013877457937060263833953975110736507029423566327950346162920608895228040690174237339243284861711922940122434217900264095250102379421120251879397989443584652941759688504438165247915802850789521380715141450028342821666646518044693617975002056041702228199646389444411367361976526723218949562874302049159337154854653765493903410700924406918950777133694545676190689726028513303898204174415624974951601535455774319751739338854197500147884065917334525017915136200579314219502004164165481015154406039529229648384050523249102730549154346914649364295961843832254006423306641713776530863650802168808458902735192991949824048394861916767730458642937295428944431272634258733071155600937145481822291969683124004130707158228557782045838323336508586187952454499947289284819194994610254781051814418435248099428905489447439342417944148352340444338585227319511093099828627156263320355806798683249806661490938639870685373636946032874238054127164681169527614169142439522755515337948031505567120386347362448210548253948428024574722065990424364847965534767982392394646227593364761880568313094506843778908719813164477819689099316045669695564422453041921347883146365600408676733498420714529672823141423259277666164853617659313679716405134300843955905105518280547059423899298868406941662954382746026887092000902379213689104480221379137846028665749738105947848681451979102508960978543567993352742086301091215927022262942157224707287483049097251661354107664510105137555311273502568669235169369326020477543659750626661746684551645220734193657387218299361068268978599211493857376787914744719162898636036352981591099011395623029401744378111981009355498295400021354537901927084449329636083901209913876071183416199537737013629650972338168371659462479419529660145666310309759783702879063176639126238012324164522584869651930932889545447163516930333139596561663351773091335241834294299102625318002976284141897159700775969591331286689931310610000391166029362548668757127591993160042060404154517306940401493469105028276419094076384048712424554907228271852003159171960216958977745236063177157267488493664524258898160191336177917268614791278859964468350609037706123746694478996496770394974630701675201179376064310169187949133314634900306506033440070725256632325722474712808473664040819869659006045648169366475946781330397802669450042121390608852225722825104990470178586437000884928650466842724445045549108410107444456509059286187376544647339656982402464171966283008387101826063639930065415968191660029168247216329841685797730975937370501201305083728752998442072446001650923281947950717686222474624667266646600697319379928239734890192831185387751740426946079043365761232749506761250112534226556118467031644583101684359711485000679417558340265406308610427248627516068878428748623409395369090974134684236598918399109632653268137454811000525420185282312810487023464976702008070192460303716893651791274662203300656571743134060348900954562734132030384340978651725180957871673694199509226312848144271065397550799592762433267720481922634495832220244829581503489206390078776627882148223949157493225203497238314714673311663952784627790510578946300997445392499674816265895057274773193078751672829490041914140297449822536776631520057865677729689900090414628053742466362344609843788129418986884813882338062995287215391773400684561247506332989113306300978073896725475840909706282956836989258204196717902892494565694343863419132838996645331647515902961775866943230684878645723780574883374396378920453447195523113539251838084223456516148478597852367837305166665791184080129484933784101249698768265196455557894496575808097879913414511566058285493643452362333398467171003942020927719157350646046868316039738849374155720455200371288257084504188445408872713638124177246095376593847778063932560273439193438192005547871480930108760886457042860736230136755047329629632311441308020419757804797812612758767636707492699415324149658629245055023167655894417978374703422059059296367967265360105449632214524642694882951911867548972750597489032528367752056719609132365089835369511306252275562656876129073165554600008065068680576865710808091969235199424497765719020336677086729203860193590603404658378382440838303156876751448077770787671948294946731849200356253119937025319236272179288263432627948194014886167602256497505736436970232525796302776679770030177363973839751650037365471053784459923098505150995310185747526603142091781241245115432145185544538322712472790013788273566562963940841744033538580153814382486430289328343040581118450159557619674551348200886386385404966477641374207106049397068216985229813646721643539216707665847213320231958326189818441667051137595024929546326107228672696515760680568360369040799246784891782921804653197104814094467688504228243794820483202839283115371206739788573999744176696196506358329431663993362757782425508207308545172592201239526726621776245273804221519360269123058714447890157174459686435851318698823525498402646813521437224642366542471477246301534523324569215361129250607253816253288844579127311848059448992658234453675374787922147226152459119900824262797675921306552075548961013623024353634483011438392036465919355991586221313607964102102475770182851602884789732515561266928089084694241939201965889454979879391839841967148135774692006427560336225850899144423103455722174838290711268425618664284009118430850712784978448647784363196925375912390258181994565972744116519218470592656909394903982171619822425910934822565736906735345878640943843699401946782065889334000096550575084183129787766642843350667065127353172175766763871806669978778374762708232505530772709183353720301711826759279599589556726687296906361592382962536369834429671686502639601315957377765728121089914639005445176481486399280378149955793633666353448034874503246342486941748811581695781521846429863766354600468065617006849422798758787246372522283793711585661057130457466038929279558053076218747299426395022272219279212208155504711948759317644259095916848973772275006035278164113008711780653955783990638540249964668145533114665259138701227167209238801121553448854576738304860215972529384580650498917026686824908303415596060965264322259965027527498653366655640404756625032349923048353548306586950816809269662258835337407354046886383547174371600949687913806953066300247770172998902732993987728697693140637148474185396626520153088489294323395184912758143373863478650088700906937180789634552824964143667128638723186146820072000537573615468549662052021355230424304243940060603065070150459461621662299267438589622447922929520647836905364241539308875179627502183538239933400812360635205816296893462999480213197340781886708533175008571311654976934896496794589416115766324031763962605534885084558579464276959290289816086963269981371335738950571443793816862045755382281224098500432579284491490780820392606982621894508365290624535212943556688862141803323186103091534575471830484239270499352457772271910189365246279223491749212112504256307133918879231817012345263824732119309126957347814423733552363444021568203405353150650362975545766981455524883063490503366612152436570852768632355516821719848684553593727611085309125734073762580872416261321553055770282639631202757101106490060527673944070502845512067864461564773376027001826235515581302371921338689798964908129890047732290168038930702627086586615741316992968829230379581550026848287658896843078074535764064326015578925141651091384739103450076100456093921049065181507102279281602396840135614587072808058258675879225820539251319243241366922519990552072103617667281279325033166795992651801930779500596490576065278310467591746059944976887303439042158530341669755120230033246879417683741272547300521325593942446607177896502182092133127161219750533914306963128735993348199158659029160566291684183095333524763544796496697457811412167141449926834199604157701813912871432091327941776317433781051769499269264662855097173271401976869006573791019886054089306167544249594232409571413487734303863232938918208613213031906196909342809113421882191519633779065461204242935528331266024967417510485123545932449893043253600512951827198845174796537333627791379105498730933071300877854058865659236973640590012838223557207287089161125253264812342728486770039015255994881385203970268102870912034604713834717062704467921516649498178539849238265239992364787132714691581077949509326817390591167227801992252745138890327593025798828442044149668788442298749548999001210749971943339176389581671136572593744454498006148122923401573143590270447597962066882098102923894117318504524129950554432507439250534118879881227668441619229064716960103291106126953857281922469272005471820128030956981945256139224849139930735682343990151927646934138834793017368225674461754426073939250313243667437620584612880688951188146609796398832705033466603386614336102100932328164872294612801445001490633279657532005345110747810868245064149151114558401505871366615850475651037789546398559768692893696142319164065562264514731036008010468449861531890498357089361207092445671019284629981093214212305790395407520143453990589737738944561314770118665976852102327972761948096846470592302240979188807531751556524420931676971589350705347567181771797503381149709118752422143255808030986494815956638364315932380167194250233668804131295626253341058010209801006694333494557815315155252786736893754114732290381160139704176831260816967986649125823440474518103519499387958247513513653249716728926968905725112451529468783712244049660559721796747824722577673849260603687531121745708054536306630914960706173747729707098191546884655459899953651744155492829423742563500396273175276181542164497756600776398251981526793931289196312236062574765588209066988056262476946385480511945822762088003291112038232846373357741720113812991136176155760871488917429662060898773438024926179908024633699947175174404087195346688227458737497346724840974120275000758471879584701887187704359956595579386465971611384038442041686693518232091215766236081888526892336365388485610458873830218409928184372364360507186296056190813429555182751925213623437351081678056618534703466375471882281549865398695232473530184984840990541135309279503403053555494834557851992522844339077082029725302197747952984544042304674921799274798076358738504886434475458259438268843956294355621553548863071345370364671040316499191181713646726450257268305404092802722128683644940407061549533228817509600458168886191152491936089461133519000461356661029228736753443076673890564020361066636789603317956940833684095932578278114898059554549938994926066920639990309966234745115020060206687330825539611917423619612141576221749494835766837998419426730891044061125938669950164067785933428031290717111840334480620729143997395339635456761221944879328898005300633619187121205077749778277291554591379411101539899693775580166358802451608959500556801436884637020064292350193663533349395750229956781657502731477481153162382511019644158046570273642218924360371680100499567255485706631317215316778945105009129012732099690827980668818037787062783173828236278925347235534136497255855697486769648370677560701836794347531183220237303518531611148864330129091247728092920685250788836461601255156170937029131919640064467107888468102266245776908320240147952444715148859257158712045509909543213560953647498387036855253712649458659660284998786366645764750778270244123116666270143933844539681855336678680324127803035263663318714253932210619386997227040364852317866949920344184020635366256101180494579684541753050508083815311388674754369721945371355945964756248726490244899104365419227383055601040233056303790522135343834047735979100540007470306087695708090151509825987161337691264773133477288014305180192841728715575587250794364279304018346273655760688870569018806944892458028038992800113865418566869439973251762239021114071167967906905103833015959696716284199245631744069494403689022509821906547425447569066488355552149713519657192780313632397959977670283656499096258959398401216190655496688968041284186813304356109221599264838274101073330039563777785991912866992840424652997257780036610261318468799876075136807269327838575607015790438126628421672364333603664539145494537262789079243949168615484919908189649942270872496755491462331236401646358524441034996991743675701710508328083862442869736422504719992187880118128819508233790639338006512887465243633989976130170867684985280640656640565452428660789148756884997780443652575490903447874686858793780362802691241917128270957110508895996596225669089790443402486181740589654208623574735714357665764475592166356170978818042750203883250765686246522646764753451369960725591464498654898833206420292030848321211863702738141614617674643152571873945989250844102980658394253354075830069147303103437848983119859513394838003922950182550043283403551431264737585536678322258600673202259492582381436996861143948740580934200126848048750757971920020510621263989522636349216942377756402161810286118502944428990460095193322292186780945733629227926322117485085359326174156177813018613746699229851367060892235025292453184940757199616405076089511589407664373179885525535917512030909822841214990208712461130995718539180178275014829391917158734709834078520393713883744151215860262359341899750645686858539694567609371153768636482140934064561329873812784549109735012117822668316933092159627626288424511149635552865513591476961908639683772057905845854399251739577098602189673100430865214664349790338899563701617770665093881117331269302351039444044956174945417979546844065381305283116400358084674479199047478535784994177536678279483042843864885880419208318487522326201560688745148422347470752229636278548865847315710117037201991006207281969453258991133742791064628710181878653780596342220201111744007893468409381280381881887910421001109690886292806798074375393180660666450521702067945437218244746842875942368300938178797420648695290670713709576536981909662917714232359120682331099726817399406160020202898161752907972603987267912775095224259157806762939709712205998378546127866689852638294003200916091545249827346437203749532682374606173648084076466004452825079884150115813091722163876417492279953315642101926706023848206136013537986241874385366691675893335650371516152992335550793026806184537923265406922625248007236079116698990463037271022014691321832716071406925874232488761653267184124918219865560053807111345233503553925014953858402325348202592738561417841416107579719566292189818457869805298089981436756862631857938188426570439491249471999305655132014670634096054411347760858233263530313058651998454991800056887788736545169737757195238991940889592053591966005862745409682576560415185698958349410733347063685444327988071581545242989018349729274384911729929635430312514710107219085296729537105890102387113858007925052058293655825648465636745610604207313473290995280936511257178149822145403236265132718900326048052728893873200690541245692811156299887586683019861597734191638268611561298603951109017145071360520133330588222345878518099728226052643585814275865975707111002704253038524359741110494714953674310072689114994019056712906603218214976802947207495982326017100041703371071447345592788735356543460422707659219428449725664464627901184571783661766585695195418829353681009824148005462498842096185161855730993961388684244538235876114645106938246051945008571944311882300573733523031291731827946479702606968333849514719420609726568240570654362447286553574694498294014602018090387963303025592347183176663076357357862843544817443442502724323802775340160988547203487175562298833520970535169272697538462667082663199914528109111780853710686061564476160523723130729918054055393333875788744852790112643629156139750733140365642375612408321629895063604330419005628282084359548024005271709891256055999513888357312288547096174541392966574841698689246441486191202416740373989881882192870908299749682056511510726340221205069634973291218234820215745719553468587225802238836626324597821929817516110969234442675117634407752075912209255482027848153729632314729105535909615684685956370053498172940803507157587422635919350026161540535379199269933319205095384028008926578522500998099849368214065960465407689812132174279610751274646614071209271903501495100093064594364394905058017190635415257414805516755955557569407650401492722018013596483216605943537553072105074572968697936710763268363316007019998915198470158384578351998075952461254652686056989361548327791855276617706119181630733658938655008012589289045435554112429525263512676003490159504534991956166454756820138025434342603454299869509607886864398492405958164970630482285196155599891206382229663920344195156242017441266449127911096823258987882425166397667731883634691835376478555502568953462582086344000129640787590110422653006045912897539623888583664079206726900381173416635553765335093947064232196397281240322420655088461209736566779964163002028993197227740405140918683623569085130229854888207771811607057261412844977286585477687757882989983877600608234834141669912067671402933509170791395098352570338855183626744515263919908970766502215222535571810745077545939460676878043194652074671347440262260169822146470750745455118377667489641159542103704569301657508727912912999283848822007868480435090732346876476177250212851960767182283668525945905685303896365107354575642597809874925876674863090891967808338831734708889013740144409357291340250506797754379509151123030932652080919012469610629756152142567319674223012717799379954940535957644407254556903158972027035905701009363870965805623020698476305116081147331289866149737902690181137531132976363875474286415183940176457578804444868596399738912124100232269321183249317872226214447453048656853772534552632575662479818249065215959786694223657999046255627524887098266179411990641065224790500498464773268515507443995972535114211364878974735047999987008470429260275186271106207287571395952617522303965167506447392777412141672919389577457093731440503183750558496906660166187949944779786591545495361213897852034006246295824521521976999160848075743510781279522940065502743189431884995766985827505184415675052232068048245059094077221961995973320721806199173587878599320508119032033100852426470023500942017486136965739375592356412218370867136217441827525520038333871160661598444850874963191972821764500160257231142227826429612738794890563940227878021839098927817254289223529870562242364757125231745460363882150260199639503832514071841957408479659804158505893548860321196713726102811940237441042493752942647163478778253705036994616191349555108313426157681593718563181794643006624583879709912376664019278305717780410535443223746956786054917461560236710999089153077144649650333680650748083213072857730463133061452405624631477265124120639228942167259617531851884042643168604833545820182577886304358331380793866306950375606952033124488434802247065597155081525946536935157359132368164629456496897814461816076985960875299776589160707438541883138820600939503117495475386412076985013501302204742709316461345948560459004300827793818289285930705206095531077598983505032824783727379188825170011421817308504481856526095873364582222576154006538623113625398946278737315179963640130963933975595523769735477256840284845905087647531968976902812877109747143672925708090602126592299779313687063822099964438238344265657483896684720557236838886447513662498945390435961293724610221334868947836293304771142079103234650737876753159715034571451257253231215291877678597655387589987271832945154969893967136018230921637659052769415644626050504258762910247433256673855293580328212028565781369557520166475287443529728070528650786641318861123123104295157265392649977022994135389307966057299905026251106353138188084722963167258782022749161917047164827168672372070691686583686686352239281469782611274464055115933453173098899228714039232372401140180359518559207710438933964378037634567334765918420167026484387969120212756316743863254944079099905305300345988884979728613223059505265943616937724396592920128052954365303961308282517098666885483908373652654270694798027613052940407495445853542366858993624120688914230140580457103221949443876082465569876165241086221723306843202814677128240912474915768334057320144930385009869626626253253620997006406400181720101041930857121493266582524852804266058026576267743437806509290790687675242603488661292954262126587606965783432685377110419938263997862740721780844164389915379377204627562484326613163806123148117673553419857434623005931504432813359588878369049858960239194612204803539851511127444295392566250962654246024340573514065766839855813915293260767025352264848212771308139265983603427964499278755475422068990345564945648498545023690866753397448579830711637358259277763467870650301007815624233584101127379360728233171408106411127005262591693898499152552466843780270681482762639003557252788894501671482540167521517595344841192374342779563169976040673146506360411573318841331321430437262610922230369956492153980100221552944098727090708379317899353062739645740569737853618515671033502766254365463844672289217591208957544037095579269913483878350123677948509168087631356738186783376373299743954022193513719548343587026799649883494191943199753476659485759606736778173226336335498299736095900504548639052944100921771432676482875672367942201441266440495279341795606111163864209902187391774680970112030466497818547447397948636049139091471282452026730676589058636837757660588126830678636000752215954439493633538900780944887109881784798895270556455647543223163149440107827375891548475883889373283686560022032041844743971318889171216364293295614173870642875276633776725498689237091316497270721559299211164389470515981287938917479443226139613856522240688311659106546953054417108964969816016945273718702408231414377788626646600162703316960282196735613287940407708793788404914621837812765968529740148365924068860574650259615032003769421631730383148441870951786289196583038039644581750191197361747247531904144714727464557998213443272498075165766110694493880655594670885485564600959858321315384137775882844543417099548909581608629868900149087021482553510831037592224038540967651470597038672659090076949387723456489350797159063189780822859933577019185892628687959938323845277526055465125583889358047894908277900075944563576811863350186917213052979015825564274207306344270294859190895994400073571575707952786924444881752286602523759955051268992744984606632975384224361877660668717190640799373290587686942484534657320775840738102035988182597869724916769418139722773766095052947138888457015672409804432363598433342080108059101947064494798086331585532361478268128700822705660601541686234986671736026685529465738910079279237248414582738630849764540540715625581433045415626105099564909847347664931207286159403602276563739670164676224800400841897351375836005540783502455785345393704826670363065604576217089474367076295223196922618922630103302741400794321950212891402054431860762027997342245764774581992256114313315781670551249105933849550881584095302971588327601454155274612639579182762347259108925557553673818299559661572366911308654935445833478930586913162254733685012648168146335723156373648558150015589689990980612640199850499179914573859139809517471067379630680439975364182994089492697484418256886558373308501126501187031110257589993466099381450698350877824346230580426696313394425590697842829611705137739255300387313418012096971334698652038745775563403856282618121664616033988999202474245599236014789535580032538031916498555471471471433794582191182889007347237745958504652233856673948063297278764009951805113130454637955947174817869120066933062087304359433250132117864245193277929915108798954517098082819742802166753149703286330673749788720614019238095103274346118316681477914456068506940937700394648369339501997437396922891654551222918912101503645296639880023326898733650662037132963962057151612644440856141820608683115159038468117497063444713822701300898848628214893741854414024420644980146006269433418399224997338448786498862961468660759692314762948095398316351703713814562469511358439570540872790868442778563073990626206884552698485818070275745723405827681868600758717218267511455208337798107876648153418551223491661470422217490575179663624557668888561514476171874418256468177484482274102414003167884675099458064331434449567801698251351935114331526027128450323948313750183984456323948120633386792606996738940250356309571281375535769452536010799153871493911223090729303682492547805122390653798112854126344987844149058916239395441586086725306458417567783006060524060707022348961386851835988250298484784580446961055582479973771181592922825423426625174117522586066223278847595996689801362630699473846064345351800015920445143223294520044023622719984215136611708658263251968786889171637026185714678325777525643524051188434195584594004402264706861035900846127522502353568641383477541346218207159081978130023408898100434890451600262884664326731817283347831483476512400989108143840680117903053283933322846983745458019744136638233598097548753612252703860641278002925695996643516858016671069789233696542497318939415325675318724184895685433816543075404360351817190133671631734829954079334233507052976193377971148425707413558274577704022071229210144330522568297903502654831847888863066100885991022419420862092430266763351864927413665992348381534360657224406854091019623477221098354585231261485200440339692091642729012720396712478398611122350082925416401375465380964285631276936268002856297369205743144328683072783072516800149571050467915769308441444577650808179864776268889471266185631730703683861506329065614693934636775912109589227197076062760064354652621464303296364309420968693430451769947560738145533662306134450584113218207123248199677870087226549835665879910161163179371698152639103987532305389044545901319677176800869258808720103251383134879275834372994197505003863272940814517408898823179556655948377677203073493145308319982545577679530435802612264356046290334117949281366264791022315705785925199319865730743322476395429386843965656464655069852714750673945841912093575404437279016869628837453413295091744159228219152958641470884363142208966782720775216957490192573593382565504114203199306791678694463545043812918979331325425220987058364190895496146027281617607848649567542312413595243161026460415894447766501296492530192037096422966904326643931718793034891359144856511607531651070339066605024257334994157237768401405719413390328356134012202703445058084980565530236343454281587703362889234347206498211719422702873888221428175318119109159496422580439417753041813955605837224120223053239653728181599399017305191841581621049652913300839520720091574696833141346748703624591196849873184560557522188849940820808241860627724020029080145939089948469454411366574167763294062301503252848664783740119140724210053107957052946199541691355709304121062241097484968592463086071427930535734715624173626646026500174838795809472186278740492583928300612892831361565263957188249359352732381383482604892148192087132838832244533590493011978287097150649933017397558642118009331079669123507773844864104945293991004142742264082147625219179572016299194812261946922211274056512390162498253524546505466430874231681134094698684700208120860885947554080794727925077404072558750630345150845939247369533305372959817002719464843945547436375885014325865424610976822250924708898835507570363047593085462222010297867910894121310459367023355511487469687748755005317561989557846965988935981408314261805862014782860697356951414961802754176494537800720504673009633245509783954477064761415540381090969084110292067666225207660682079525156960766384149050984288427210286632902253802201604255137274709532275274310780973800433534337891560388090741643657678230709277971063465044895485492546416018771229514769296625664252553709129223641922502860860493371517663909015066096437518697592632309981449948872191683010424557296942627099797844776120903912995944678431380517011044163958595248456845419431835541952864726109573029876193342766469661005533582971746665294716450612809372722141156886670236628275232956692877630057836613854071713236777027964198595754649502057570464254222001394497977216769266124251020578801441838017354400898426281673009103230251641152951201724122955495553652014065450902478405284742889788112249768961310955273810189670659267050473507591498333630149801890199000104181743276517206923596568728682030614411350994437889748113347564807136133212546587160444425676258864815611438457515815785243207043698844450313493176446816541239659021010952296597603914051618697592473279522161437646935882972920767389701094823819626289409849485608413232446241570884158352250987430551273329841012490999952406324191194128551973694370771693588298995694754323629393140641262668028918528507613668600073145512381876754158788864426898994028267831974385979259103020962372468251737489938939814022632916585802123933322364491150259970150883729738970636722078577692803408182219212437183610123431250540937420383545989457652825981460717585272417470823024646696093416941882140184526125771231974294134226416225122616569514171894590084208218666474730814072475083778676201619199073533695495568253165128761697006012667652493127633521051612073895906216511512711650878032925051850868478931604109524672159307517175963886934525713463817134307764884710566566157727126009989576846410169801729537508536664939993372242024420269493596716795785451501774933841439475311520325449156357552461552021714266522343449693956095966663880606259305570289162460011492171495585146778809241876412599111932988099813426022246574161595397398606130302016227267659289489703438985963800303100580175055470005121160079853521129520956547591522436505106751939660117050949570196695132114429726143521138577449580319594592817510686603886071391729174388266937204643758616927185679866200352070172981932147644343763824789354579095499769981689435371409699978195479778529241955185016951372058304316988700524257635909187064085343438867519563027690729254820974490079124150001085765955624818455474890633790916667551939222875520267741457019773776412979773210804736777109865632732887177172502019465638113588333142262143267169385521544266759684218468131718274097498151850641937510818464236977962357119294505826836185324177173948742430136851200703782379146122331002836016744346629857416295293196213093094277245620642835513762837916952813747680672643131426891380044801987771654625367149766043472550049925637819568979516255151933972752265025763398649507034462912599969459087496715161109550342496332362861561307937959824666707338580761730816123788744066362769084749405275992352503881715074965662936950028650127860397253276748259543830917562037064932714866482410327288783310886969709404891944006733221926233339087428113504344558915353449161492638139196540068893642523573319187343846761523351240941510589332972682471000879880655444459686282918094857175292844582052049766347055722730142816734863086358135725517455346556569617472734815793072542904046070101800500405850857730794480938650693985036091109762369708705189885735386897779631164291417207397002921190568897216552994426038310897257203788068295238311572665601430309663024454582616892648351419862080880067355281991571095022119343038179898753433164630097564942411943774264255369700650811464930107511548421084908354793614643686476305062627235595790876188912977032415050750544837570743825661135626007318754826109884320416678853004132260821553833303236309410768829033915723106320996998983614200798883820942304679444981771150982093381380885574394344836383824369097922502246978220653216295068895579807316695826970854349954332977540030176106100007416931245735159043814481190302386258975256413184280021136630392786956860755442138093242704658213062381890165559962364349835661961359208521664823859923873409853075825149954832860225261447788002642895698161845624911867003811236927312705380127604764903078966183193829460692060564943374111998130094156277596870562464497170570921014179188239166399838642042155906327993418270400375680161357502855744104666102499181203060346438806229666058231592183591634435999502537452966015654150762570316553877537048939681237177059128792114796036647857129562941965336593881931718575017718710910081252442168592527923122274127704778058713067994634614723685684840656225076338071449316633148855201227753653015514986603169000202614509343018729450877146562215378590190958185038693522373239466881688136398102333936396886541356628878349029047890346823427876055568926057377691477789266949241293637431737630702526041669744337422310416265684724878116108476740370438657446276320088362769114462041259828060654611956314009946155902707554384476414896823618076711386800353967462616029098501049183930031520374499853782266095026478587617239633741863311075275881720155207050276112759129437771335005559376190102217571999337803821421146480567916070872504009545054609975645790799756757284707837652173567712560012263823071971211291604329333866651790064072928065004378262580428905336358402821511281982881729265877963389683071560306786765797971316708877739792251693305311129430089400633072483782305081305025312896915528220013706646994849153084861128084131543821508088725464283577243285212732270911965993084677297956094869189847244696773591332384673547355427824117690554402713458128639390300379390714155299095190538305436178099277042119646606791937356645421245725761354246527982151865202077464766357436224018350509916088040105489360957707048234218314757407314192438746690602984503543859059484804123389797935969517794244644560159688878197793890844371570258457863444952120386001248247767400873139116223558518491833240545864394513965233591556293443963890768121014910566526006395812338848136906157166495298831306442140223730670316678023383840739810558391327145895434597277775870042215591253080129244556512010401624727222057993703544157244188155181109775690675672830641287028526056085005565887121913290351429149690003027620281290916841300220421995173259702720155743116254049691823384550110930972336981867083691318994141450873095308464373782478844385968695550675392222931792808479090670817765491360448632982203360671074845057935870176818638873467239712462592843019250912838967135859061563674832342836808331363161271804372428465076158083184337976410093385710198600391344055121043114963251748982976208169295264457159490480358615844680600246076598048058089300268864705175465682758095491488604626642724341378586900510239531799764969567446952386843570192176203548458629064646840200626958975095719898303680937634012433695523213976429855730143327098943222669583075522906631863262453750596905805727189830487416143157770410445544584359509277547298548938290629618328399437634690814315733477987059267676560271017678209175996678164667927911387693806268938497103221541707074167834208572434656298025832990886460445890972584186698116525295080453295847974550914179657453581464589779669224312525597003199140429462955065956904592248367167078004326331549604437489061674379588847235266389709071465610982387533509558867046292462670373596624104312588321517682175133317225787927038529668378823641324995295400889222138228001172442701438994937023648705102870797813061071866266100354098205570350454877557992303507380816759638275623762939941744002367178916982128058947066562550880403641843859112462602310277383940023209940739055093548171917969330436888594393927410432764317296041751650021128587167136290778479005005159919574311082912450416885794973066076758532460994231314742851495630884912812545733406477048372415465974814853749607696765501845670209921857087822265931619232528868534327378938626350521341306302043093452873956208067323742354939748516276089965436924043564364269406928343502694926033707610634111625433022319757263661446309030786270548201663657258629059657933469499758042245900281801949503478755467364663453500860549189563669434869751802558257337743003238302080996682044580713497051034686956474950070092875462690105736260551012906770565160028966804924346321989266949744132362364478994205387996683256126551747587566201001883498807604174553821011294824323375118436916796014752126530986380205977146634646927706171485744095285747389435175417336282630513812122898876489473865248183441929394783333546595996403860090109987830258120592905024994990609306529857509030863910425175529249044548207570913640743414669405253210647274589308843257531154444985891347508738301474695407836691331910803263112829254803030815291746762877402006437865669818339111974889394067104778715005853621753822375738311901565986012657909625271843104534898344605913620731215009517970042426360873099560050285291244976833065754256876964314898818968666478388947191911383039750178063152613494629814185482469556303347794030529985594844424431568108029352456349561255315590908095130133555157283078516268624516045873598051404313141150315781205025175427822618216973912973089279467144008752154483308381951395653116576757914333630387369768983774426611223452643847687081106458112369540224951320097105316708038181345536593264964047084555716375362974683453070082173962678131958550070089994220760172542341670981937112916080124725629604945201658115159039033154325794767032277285579887973174860039254263482084595175550792550037956054695484413772325621408230118750018910813591613571279083038656207801568604598033012465122156917523444321098084390922008372216621104221938495724560121940708303570473359240227179365424294627661674688619366256010677453443932622999721765665357297036946856266396184605133997934319625339422407351220667356212304416394781028016025230703676554651699204845810965167073053638871899134049359682776481080672065199652770913588257690282757158511158512478526886178304496553861161722590914759067999307932552248747515916490904242185410059608186548279945783684738043064590303843382157585283315759499231214874434291794583736260510374494703630170533241374340658340274338271678854127712243261898032130243212560210578827514244320067403495839523718548159647940315073124472188174424369133714171851470818666200886311362544170929045677230769819921501918454785559880402061322690867368245198932951469689201077751402490520656899947675245566889039786825046061231091365180261816674478115294570269714119662827274388157429065748952444583506000337160754816251640645112330953270323582706488356206338918609533079296374096496121833149053982263768279500541412783806106916170017932170235680622234121244010833813663966029755014049224076194841825683260374867747369030657391875875100018508255675722381783674479596481077287514881487017562774213594100614390661360863583985740475944928377725887490958002957883016585135590689231316771277299549209813288880642354631027559986377409151003737442826025669121222023766059468709730110189518003263530117838258013104722908467290220411554013772351842586120751603711209524046476262318556972888986107131648824253621102933952795461008000045690970633378120121727794051098234698193110946685493033052392377381955236154311041861487752293562294786978961516003020503363928694176449386026677653031401514510499977359144909013309743852257621398745126093140131760551897229754541066764776001157534888803549196753824555958973212641133607100803445056846877537991640897615237748008635706612105115234771500003888000183864188659530190812035755848854816023378391468627593111618425646787149727617490131111360829675599739581120342297502741101537251492757908212176294876343241567527879249866482090707842908590792619127507024472985471655757160886939174248249059922853041610535105943629912720456982902779048492911182735065281423395157717234507677788902864855441555035462557219667608772159857043399623908306151234729248937060681157395335902593348036651197857552629907416086020351477727357933126609492547229138425367880328417557023901339737726769046989850847702075004135612500752892949632825124205681097084138619578410303301437853620526201421090843469248401767489421977728630293535242592860650360902220293553306530693733700741256227240011193007449857862709672441984677205880912047281722383626093839796134981832504027603978448167087645588550972891487462464581569108106042784966005808766864609909384749224834467837422849029438214195001365564869966727898640354072025560674019216638409585652436757393098920857558850210267101221341048168804519018528091940156481748498648056821699570657888402796990088100773651870189141967092337828419529571929021039531424239924440127986917321143006663874299138972052958071144538526270676867859344175121798314720570123522471324716183173187369246952001001804142685098737572150802006875735727501603741490210860966280749295824410719533565002958639640905736510390794538478406102230538593872442634760206752022712711542849862734371622749603911636476836626806756115057201337520290725471617188360591513063913427859827991948052517063947403296057727391231074331444407326849821690178013529778567494522371008384690474125700757433404367480196593384515552837960240999316547539056911282478233790726521604422567303957976159525627202489695715809033651513975688070420795480527345969557613092119981835262524509308735921037334003852128968243316028832498003580965077148722377263168845689589532415466999304317762280757344390353370654637175982943892787835264768033449518981797834239477993254418782219089367910701521264411819410489540338811030875055747087769609719001122746707472296830536551065380555357819640388137136209890328081752369575917342915348136930766407562938520598024118540223864402322223494229131840122126984325488339494736170809076719927667986674250109968524356090204183093652583148688379031413030814778512806785027850002324512376075934016842560167585005945918911326487256172750457136202449881728373293651474209886970952691591946323056455116855523026788125906365750691964618986958585731506394316804340457243980247923554263020955084690492168205320852995274294559155408008356995621152950012837609864867274994678479201474496938188261195857615141616130482855151284967980103712675580092429943492844105851096447345870524069498341128952814751844090872636506376519746145669596026267620113391650914146824671657319544738604996837114484315034559590938520791020039638738995056354439909875946726287798162546652908258432008471981959263813678804021470977316200625028129482727044888174420364004466709220955506230748189826954965733957882104405083733832085942721852667251719984390590015167220663970276584361059565776557619816836493513215498395221310773214448232450524927893552363475345467394664046561006421574053914857737229465460674979955842185036286204581563448777466801589746278191578237801816021708080274039941557579555679632507172776242218553592518640108916071424109999897960701916826246497779195473207607839165610809987439984996805939263231459591943516191114740952042333062010699942093188927620690432948365692128677398786760304341992220065567569194408021438159638890989093343478650626694163279753956737793867567445454065768194313543596723871932862477036095671511215662174083686661339647130037166852673160669761955463745366663903039131322062328297962186377315689971560979530355240690343798239129963807940032090936526213198037020888077288384687828417467606122728756460802200996374897060586629083501047709026518300811319888506072546021923020160456616837958492540726950916896447251567889195502026732020591230588773293341371494642517760196334170590794755475709718160938620732662844960170656887314219177208965379738503554381668058876781123756331627590213442973128643392970528252751835368250377387460442680225325377004063864864825126148709816321224557120984437220060597223912707461593137701402417919788150596778673047147922650270948416079283345933385311712776475104485582987000715468302490801449678154637654818852652360844216806625704840257236548797574990520040836046859884614513627669885069947950369333132578368971407826420443387260091581792089339080055563405288509828689342181251580092590109163461092742391352947051887718295560293309060489078540599211531411216327518032487586750436337155998752792009621293672461811924535615522287410587093927799345686413210218205856593545023997362427117548471728706286053313405574606784700572500256971339498127854103222899536292859470226861526302027958964086064895844179800928029458601525671264636048418719543504173039071660559264627498170390341050600222288427556494776054688534326993192256222747463826527437594847757323186933127320124032246575808762736158771300434061203611484528184892063962228238904349899415948730153725922487347315044867669543203661818776896442527518352628772833489923610899133914585515016781587240176937740236841111554323010753015327093091875386527431931667560928486665922329133783965257951343710694607199682637635111933910583079573892905164940700621054069314689488443639009005664404996410584384551467704234769333799461390058692023985717545141098451080957020776744635152976939747999849777865954265825655504678849687681111077804348867068436786382026403408640315113521035855636191412380807624390155881073863769148001777435372612677973298431159772862636051808267907190579646881942841119810823278982202282445891570260560095481244452700293412607744723406816407443635177826287630261500360131512857225252209494344611792572641412858422318348115371579613859911502340151549221624790104747598844004467799394484099645323254736380337558599992967678328326737820440208506002637703161354414385266142476011164084560582016850353544319163059348907225051198490370290810275383439540062926115354227673555525298039113720425831632335750227060054976615132213269978675942777156392162467339889472061052416714467391631124142817325922715834218258215473359274858958218622517759085940134436773066440644972094427151575733281723992905656798996869944860695405596756886585774109196585612789959145000088399375272943853697354798044868590323566016081463187663641717571196054052081985272263106590974602800181574135830025396830964626037011526440207633705385950209729901219082309445874684002434561389063138649217863267231979849655413887136905087057686126130031592619141568739516659994961860633074757848599133131575220152916786997750363183754329585937932115076155517096912492473102213214435608382587689985776097446198047630409204977653257811304746693206631606781874165679044619109615071513307362026210398945396921349368724246875149573964140204933441227391704579154221783556206832687853552037159367075745383580360659161137669478267759125714982045058974833887272294938700124920013310869236238274283824737348680848116058979823809699651781688447019294364597428574258112626544677511536080311993198690530303041732596777989647224635022109201182339569282812848909431761846448481236704688490771061964243187855361603173856990667157935451246868238158305791863032977991636296713618415350696345638948383909072288868817088862815925926640528755427173610816188637120324053050744313172929381265105212120542560023692088270537393486563016808736688493127275782843861896878776471322091021542744247992971003955109978650218091173934172853655361310037233263838154840151466786670481398032352629552546127358217414054388577527197819229833133130072492293592768017181102224861412569336041689625572199092075427874971571841386428198798875938808121951045974213602993835369663372751656234822026253408775402756890300601506445680913556519852793582725771528601186274915531322080465670689274701964900769428924098181169957541540808189652016204773633569179334212199699745546344888588926413934025350972205084076172490073204115006973238992629098544195473757970609189676118769304643939527213878717571929797298759984914231526387264522032755159033320845188984413247943589506869160736592428467157309639486583939588744567030308075870547386700759009198062910174481563072280627380922696730919423385599147496128305066598987507381154207669536440110194551831452082537023331739778024271476811269521133882729646880650993428118642323978524454350376793527447811795525823925046162824312723209783511488979589362293395032680684815952724225103620897502857799021151135557695261183871700270890700931105428145729341361600062148785874785000413774022992200514878009423625678940045345286491986665565776615490954256951171610870433992445915720580440943658629197616258711385498706397234988753099593045618943635963363526439561379671116819347036606747484570083010102705548781371792638736973926372177775722524703739353227751994407039780556043326363893738644627876199903865094701295984804321895333819244676302575784761915776397883629550929752262417735474171895588374343284728832927884748323774885488764926533104345012219896048374180658283712487925662246547944353416099480415968070731528904865543836059165895210662693683478059163787595675342179697725583396254213893806346061483266095628053062811693026165230671058224107148783843179523949414576853096868170025599366269475867509344019413848528587580354344035820769167886469125648607774500352957557028368937772928306992130432401373977310514265194492318468018309772645233380356628550321898511783179313298590068927337260442490166963505328900182534902010871474221954787221443252181238389354969103769683676133288320903656188488918226271638275918662283808208560555711547225966586794470335249705110378487413331859129425781289653482504835661334751986221885722502594569963635290309190443864651692041855819926310261391058446678529272261551717197255207156809189783150125871947249712028216394929243620767603632287081610132509753724248043424097447230006580851472488735153344893230897987669633155619068023660871165072256090800187915911853228188056641319160528405012195245205998511674586750332445462747063148680314394985582597399017796088405780807229146634491919924064249527679225250929000219655049489262642146960077237875434893668974928620683405351505900038223415100022197855042766691287959103469105424052790675161662920215316605807565647455473277809803781739611234278226117019706351831483169146912642291156334235075074082060806778502398037844195179730691803825964345473511911306345455274917360788621317049549342371102879108295849220330933200002861828455515181803585838124384882630097818841611965665421441516780495601106602903779645853148796566124610492593736892750875487503116632794980858709950650495268866617544311445837053742124910737845833458540459224743320079639780371858651172620376609738020881324036890324585879395846849587054993517693976810084402381012346080723767805798101291348896473749546266422815346979369111075745074913283625852950252908768198064861223532432816034508879243903226715925284598711539881468854968606646788717552928188118724575770810116990302945609981546428917749352397199868815520154855143784810220530199491426269018820074460813604443069441933477918523174683054127874676937864333434896251520879367297363588583816099744614009499901678991395696786843400231419285922481110281922564323970967692231075375556360387050984818366861200701607715845946070036570720761309122557178703108626558560300545477502049560275721930619786088764326303413253467638580068155784573463530434033622896460788661063849417972981642453494727453113864033366217187172643025182771703982041724771451942627013879597234766760242337776508605930073520935340924575025196270776008017218230568068862727682313583446658013687370805563676300242055748241125021810686374599958480270732584361929994531842573673020915701912869469572428816030388238353306964871375265769759037244500146675931120542745386362175039433952654481531590421556752230153240605911247516755378516425639677290672780232036561544144318607950275265346457256538877305783959546040988322444838418631003350870410851103286281426648503955531141469035554053099536774837713357578198258222775177300154174488566094380128653661475419154601438989177796158686770515214647879597795181450939666810430303155450939431420907145381830278923618443228380283586873019328408592667560135024469989783033848817627593747543374793192844366510849000222785161930793254787503278417279917165247202939196746906335390422287384519414998308490566677761012040389563810068678300454303570963367352591977063698624778957751429972591511986732590474756235978259357818979201852251651810051613399918628544702491157124566724208073810049272476638305540250608352475631975576839939395124187729068351706249192942474394406702112630992378792838910107914269722491710044129007568901181375804484603996548914532611922247515287652966697586678934279287875479455082176709760602170339146724576070337014389263328523258205217093929112364214623632024335688393056889081026237031028877117030061068426142094871376273361947358292904829963630175128381324900901156679511929827657194225929893809306609151360636784739422085723112288250380449092480825245041351064515393941615683310585345690930803208473374107980121043940902262223659047104282799159342136900789938900662280370828637337398750395557451665790819854803915093432567030681284513558322819574226558439329738965022855149069622831111931404969248768697105674052695827933991356004396213647203173521668447320090356201714529852555665578334499832197822769083165222638687263551904575866765022248444262144641461116711374174594561421832001975622634013244326314149203000605861538251006031692113327269641706534966677402949605976530823197490894775696482369946714017045755328799156097395025837963424054834922767283072086823045528755229127460767161015522559274630176567633077466589532474388838207542906776171618013113322443659171273327699816886665910966006260462644797002799137769325188637702778396101202451482617250114191027275458869760081889271392549188679577465881121827045079108247195051022923512700386428217969157775082355468467618597839819769134562672874465429383713460057819938477068963729882565062568758335437611592319342826599343012532847704635541639520257484656849767874694713023632655714745776778774310029038198848689366682215636868821511839635638469344373824186912260702699905321254341305460664823509585331008118833045268293273322331984201199158005938458470564640550720420322583662085419255454852379997777587652933095518700425868828033780972585804738928788650806059317946420576081618698753301152559525784817361292674277720484099843886928987607621667494320098617528004992902799354868437332438002687577248790519533412489140351415857483860328465409537765373031695236119453753623765965759475750188773538355714706359772412773161288992567021980255108387049195468683813378539013351011752537733166003600680240794838264992670805327728936460709584984619824618056989387565401463095935475705765425612764549418084528050487733790057618448683997898525647812143051963697474344943434805334992626669436786064199885642952670466324046234560339742802273587552686618780151605937504167278482661677916600876348790224838759740218094051633998598514281616284606412967236647983557337443631807344082487929743252914092076531933812133253312282523048654084602246967847507351022160255357650955369048357752886879107724925861054939766173711812170048604590112480004521445201747050759632136216524929929189995636278242667840859649681361378091170562725068272398100750118852748719746335459587485662981751586535285461473838320526382710113104790982636491825387078469320433616531979703072988649976885713097099664676710773465013127623880374755559732818943119652004001997967599698456436331014973547080320641559656283985006669555669954123762226321024047868198023839338870396046864099060298822957677591033769200757342587861943112806623572700742561193580871939788927481197845792494813820606509658220454980664855663241134923375192692787275282991723294179000722735486314607355825621491650914710198134809069828508164111556964999721790862615033715450222676035072977459395252480617045354313197495015333084144456316671126169282056464233370315204028378340092103108469243401793793188801049579353855690086532158566986178253577811129834800435638453151928598819329952806499682520311886479287621236832640322301712709102919980395486313805384742048830477704930467664119785628151373231278703194516571281907475167615935456745096164040690892027023292249425848138064776216378523078637393925101442029639376602755389204704325549153124623992142620906084636386793011118878287882836050732671442141956221193065567356778772815369311656917669597903475830419104617327621525609684625794607300223189394829208673634529579019811864679653761822380454071203312083019016859036394989064964846402473453480748624741298644876927544392329505586576994166929131821606107973222661922253824604259502634768079044927703506385661842866694940104878864786278118324716262299903050277167194547953775027975698759702360106169634856380756552290565713687886282345458848424780100290745813751141715466029192159669535381287610219245622214739713395451294325150846068145124016417297340891446101653465474525558083704570180402690130880134922201844457126635783342249983437577194309010079650622116853382301575013102374964874619051177464928194751386053002564390759011451720721389661811299706747076974600164188105580513192137695291131346076399616860306976998741029295141428128716123422208993917004944261327410319499020034713767756208337617750427443945883262118873879068356793309585926262500269606482244381640387508374988086188758274505184648520851865629199541625315963495981349905381971094974043214806122380196143709971531084493515878120994503754416486738226719841440037171302539475451624605544728231933784214341366452217454887544705605335391786876917676935233166048335556063696817707404702516015107940181904568502467842472394475528791494665805010541571973687416002361245061416070584586463974822788530333133787455929121754151032362810686979876008468729999242622533853627140322510332225673350612815484991676020516573069891076965091380366588895284417146573401097150551410407357633733846314272903158816906488276931114981196164404262614942330245867620675859765211532314701731110762361117412165928836516368797058491329830199308209242557477768643795631190342344383673764867601390249220759421839926410597306746969371309431524870551437714774108667612269648158255495727576733257918219243261507488584816725579239067775159004108605802699069516647867005201839924346996250606126407018601175180739226442025894289385565417669460622512336893312274160703045346678177249846733536935024479990541887850153681142237015152903763642310917833124357634752284582903153760282835035903104084151040555620100246254615034157715259126416693425709754765277463541259041788541408652187300698552163918342032118663181517047357905527055207836771023540143096090106840285332505065366219150729731077943701697169543560402427102657145373733829975969776568816251902410153940289642957631549084757766097069851718625592372535233690297700112900554314266966407638477705275592689790030962818957264789729429647475737409732456556330085336884336003690834375623437599755163396496072284115256208554689706413833696340171734288912105070909209659885541702193859577553086809189957664160144094891026859990857510400567838576996360613018908829500683039299308991720316385819516563891286531462154143839557738038489314594587307802229208845635264421097017679051903192905199117824840155544402839756371143180635582711448833290641234902056376707052194007228072017156144544813925079163447726993959089682256358823445796941100539327817202297937129687059206908340694231940432468874094290544253254865959324074235036705635524575263848540798722903360136656323300901103013795406051270121154703474788497707153667657139577945520182733952050776690129420275924596652788848017851526792558936333494351207262412360118177284298192279936774606144602901449184616124395748000420701929569745303058986055223269728078173468481299593252385364258052716823507373969404014274621523391387690662912693765161437731147071233995369805295740085004883199998121764232709875972291512299122142718620376890466195327419769243142472930540152263058577827513072439797308909366712301354323279168669142695165160985606496930997114059723947439016521030891493001880688497694117177270142639991994325224444041388856116140289720400113873032030793293840080923041470877480957637256108856241525573606076736057779133549757056362521034680100543518213247205757878709770320859719052909998634998207670433980723527910932727181243216046127151106500322497836967561064547375623429939667167028125006491110611096096597771099566725142305224820987020749680749177379965583568134616477050989311848823428487283017001230998952867194074365578318427769558040767800329923076751024668038326738328230518760337909696550406526656735166393318863558174234642109656613127538128530572268634478589266621637839337436706437067644949979215828910322114376252976713115980075723977419586874068876391808283293538951379082022977264975190482433760554892446991458784656228532555160875398332816378523069831634579380260290431243970145046800000684301184208060066904567204514257542233705767799340265598693540571567905419460696933162530739812858308019247237869412635214905592731109900503880115544107213534433161278654758256373733045012814717666162450659219179392626290153883000392513793130877788512213115521754686395969467416130356850061414038540782719479874878558858770967637419136412748764066328487582653410465846510515981543778362748540032442844923444410071791838899041226456965854054019767318840967479986531379624495582129016923177297575222741969520579707666089122010803170015563555664725855895800980599249951626779974719394255183857478614076197543504855881632710029307484636880977347244709480365811184825296290095495997593177812991413598387471822609520588001371203848128608849808484937650516789119337893274307361314758423290286807540782084006541302726383531793081402618461818677173248539728928705835228711337853094683234816775344784893622022946314690713698664443410730702335808696195088513540328204439636094141399329610011192902965303772609112453123556439326107859476859911024071757847972636901627130673613526719837609442794070927449164369068456911884570031513802272806656495119326303502831473402602685622692284688989234551172830366077680633838160274675794463816116524549082131686983550430969136478530655352678116644346879156707160764837410187932891598016470298959931822058488221652570070794289298126677784984566302892646871868743597249322895779233910490569260781633820105450780802930051767598681603266591159930678512162636942297712645201944924530764957343949267858493629318705446169291665409359156384477184392027116445974441582683419393162904548823887435663749210972004227094687655429808564390011162923724632663504166055665219003420653738037608826489207459144050498589657106797108351393417745158583129042458532189994170942900022080698080788764389377305255131755602779109796019404858769868968853289747494902322013052517128590790714089378106470002474453431071986152403584956280795023459532183730926977285177523874803412030136850355340202900980423919365549990588795465004362028192756141877199605076822394867017299732651177616596991859525248190851065133739754472871687135606909732011977804061117758543468811112681537086941700239476054379645251977915237272569584074113964389693569045956033522260526061663574199647631616289842375229764826303512153377173203354368250686078387659040695782590862116761146938620853502213099991377685889605636010866947760138131678619586217223718877305177110230632697412044276744468280191482704828575263006109384372029384615925579431919929552056448370953142234768879419029312928523709702190655771462618450666444504089933161578969258118144374257344454522006169563179835762259604870805954427471537975041818625342084724560712202343386366167625527422993628462011686236087061605969356314043209100592267447182618361575387104413344546075262611803452440404639655384506366541206072161272557296831952760368889729505492524587521655533295258959718607964033107564898546868286251366997538274832381576456830420518709795795582398511365141996636209766352081040731977723453340784343287433679262648674619003275500493943487030049772285402427226630682985263655083524039423019299668801402600424577245827785601314300802361666216990838713490303789277664800702082758313315230042581991268309359665328151747102967451570566545659016404987902254420211254484935296516010156692711308593645902894313397902989464191917835743727772289998800886444886638418569922929198327702817445890547021764494717322341266286333247250576304617332507549904360495588445639624524787583165942076949557966793793249936858543051512845197199628111663302666419494561450111135310462749089780183907334640730727397785709440998239211499522478185676349252018713932158338194011129927329957218572822899105544096954176245286707645841960845597671142260058854065641993945520893136670136358758361385290445608748568230407926032331540383375562160959742849539409245965158937876798965612552953376680316510319103924733121164902872731986690588969876090662376911447380107016006682014029660168581980565331906521313050747021027157757460070490555665003244820235171678097597947686703476601386563003450977495544831098284022289067695933550140219799315765537345489621248631557133178074970148226472923969857617638946652443577640787015960951511196426937467179147813639689105360134713698390572877349290276451889099242460313705404682687743263740579069341353629049105289617584006140474201493062057247506857524840605633997157991074882921746819222966916202646569963064371676618834429951500830420865063292174689819188821355537134517143131392864561330609882671820706215225108431870902103444466450860425778513005334614966485081930982763225961958000957509823505228854323548837813604349570792890698693711599552491117684136974981894086975948849792662937512485268382858274104811532649081958195387568971565708021933030435074114708206557169923319646566892233242112060900451985670234130807864884651999349788778333816161608361656549047548566794114682154598391804061120127243444795698656515944103040958712471363649521859879150176151302263992907376248533633454298723395130821907691880890929980479258011743818623888808734233495402988744427586387674789157340827192405395203109846774746375486321544746543231397074893017409919587516745347660531260580768886550521360087864942313484820247285322226883681783965655267721092615509901570824449840660888675653695043756551323764060777485200579614656318895607283109084661158712691723334166894199866990809292872114546452744350975403094527646357110097802670821627281088546579379003876661747745197510900257936014921703711087910250047883607710792653543587669761918592253317620343917994899238472115550337108338860383944651556650138760517312141227324317999675428018443301481399347340702630150537170670405203318919939733159784082176912822105404998276680787088513786292357560322031878770707649517649207254243767098821272447350947422764968794651679851534549495889801612537744789542549505764921565667061376591177290126740902688360885691731342356093627470827815951194900120045128026138801009527951145250560793202397537583650352746124984830598289578059025201988905264119816507506286839267775771213118728400387887140833224692119342079035686581911372178137941931003968072200453906985781448476564300803603376832263318050842137052283027985248148805445385610308546189537716992956860728247871833459766164027287624421567311393968753513406568240056706413002592352534592730761590663991856227965669141497680301894684797227856412342783888345227578795660710415225403726081810682764583571034486405682909380350397004078761149021350546332166488565975318925884324791656388959915368218085840717247229556568136532465681674057211459122547800150491121952379177768808902153698889816305093087986150884293414798370485880463725711927763339992901204522971645408395696496162789804788767347249646395853486519434737827443005689465636244730657962922806350823789786895711138099925553456070023475651465451088573528013544696334085116543488089538094075199068198560874487720962588613614179590230181693958028438931820744583298847579742634644019146709704280310764666246492444779716221375188729211079727350720386385800978361034367883473231794219114611399747709646983237365845710962462140286273482996862620844197153668145135766059871205765639582564952524621749918083211114557470125759630219117680197377143883440809279796141004462054219268981500924031888345214870129754882155786938654246450155655434809218840259499156975352535239098901721121833318874854915226258938174131919355356428446436718221657414947733428459232583805297804170953230521818760776973207983688973686931050143429515483020700490837208711082966336576632348313217380804880896139117058993230256647401362564127216268806198851452939022505708472117574886548385867716861173298283395559550228902604972947295277537315774755360169277116034591090699309429064541115648552871834008342063514579801709783424869273976617655528489294732065821757899782892589381275574163029490119686324350780883615400429149940503751632613565164411654097257026774378963072707116258601428063509583414022186925085285202887031186876242095656134126723359430466855525194093026285147678107538844505480659389128601570641667285472666792519986476842015284041934879641500519651371067300681826698314158548230406074481871398204335625544836768211985753976541206537402336931544087816302620822661437297829695723929319396406545875766971891386950030810784218971550892845007371684507251880754260916186347399947351586525715427947657818472042394890163301565996596459167818387048308127553286832197645188801612666255248538322801249772242216631907622924374439708749744451508325271089890431428105104453134907612678920819824514440771631763632956280988722857965209000098738507028158928396533624577004886225564838216118806544438934346190438868013304270750728096611386452957735413560462931002514238640208591545602898987209337922970956643740552273025191864535902677396455539229638846446562780797755009649206740978850149827695841065412709792821400489275340811755555497984629308615040569373819511331667232175558977462125149052761533595964296838352251122235394302860438244878244110032644162481407609853319939570249069471288879205740011730512032300872728969547911211381252728187567170188602949499523293929408297829319575524966144767792382042319556036087127820549950404339105351550548042543386685758327260794083364332140431221456743296963779214964958999458106424497157350073576599882397704266948686470493375374735466580135006107847423402480651276711325768429951107649150365899555697544981289223157877343130911553034250503252578402337703332737689058894201961789121907252586657357564746371050201859899681269678246842657326141385558075485880558069701779226097430476254730816296292116135153460038851526200436823849824623616571843404781202683215435886406280089894528690987570103706652924390617671633491902806358031947026080119827815895786188009344677839016428094721778523994616421172330033704922526905455723657215860657248031136644260013176209872524828612674732256531397256701187299677516783926764332973631867490136649872735119326073240697618564028905832066013105101137957007818702165442363075475732019945078529329292392568365350990056923926757753661611445944987444772002005407668113367362719851769142570585902120376433678720585948291904868797808826559622319433498024349597795233288129698804089569005868808552333122810683251515080542180379366288961220707512644425022944605944479813670988344056087516798189537080453948048063873380235362396647414612845489083698498524179309442929909590578598230348176590185808597429127224097051218457020951000202345393514540228420562485321221675410248770356423475970728672377342434268925974693539252644667004201325579746724934647096094269172495328003697442874444157406191162659287796318401300750593358521324673493122639875674161939438564939186973648023205443128794914659850938394874457312977707728615965273495028253111699544621698936060339666763179241479098923196555049464518269455199374897632685508668562019520053355847434410063472157954396145114663215490084550673580280582394205233390876618866332916575863678612067218258050715281968898064603020279978404931512044864352868957374662233827489927956997187153398466215226553781459787730188328702816225907080167274187382531661018107990998163567709849558028438531022072452395556381267677758500676165114446198159668614555332703155823284001631695961609399842404559830638059389272115892457776512175790910665869975737409610610532709474988850631243071360841760306377140214742993509245579333175607614741613789182186142129602607834207640590240535734738068763870026540013871850039945120343981013956584629271626944900968164906965531428932494763797903960902178722377400707238983703619114643779321837261931566128264455465823526123576046761667427648297058627920597650992504240311828548131659699811074972844801239883679841801306209200653681659590513138693435649618257742784366036014005454484887116012660124478827430790569898135884962492656721505765056374113362624474086766864414304138951101870843140242809535676612730946079974460592415703029723000929026681610733550746415335613779571141253119015416305729183156989126122302162379508009698605814423125931476706189749775266876568384560296884501323433936601219779579154368077317338227366383804832225192216359389606231600800439652690545531757903100779768795911118176172231680521135097807839023331567186154507196932229215366119504214848843138550218098897183588395426508202780827409039587607046054736166920147420902399594389545939385532660523313638650171649188004661068133039682103513216064583130340220544948889390937683879277126018851798788090006627811146610205143316663814685948697327785511794176720556851810057262800839442561049301565851740282489297725177766661800319894337470552132683925692029449269194843332737305948053590258306354750133957797681940774659920767863775372986357737791556580656390324036264803415446633214227121726817630440038334855760478395771859437677795682960383880654577084458883779964472175685179948873467505437520986443915521663013463822272116386503063127600306675353777993523837479613094752422935283588891584874051346186504439208327287709344326340104856966489020394897853605645974879206559815866185342956854741557378951886647612943472277587376853505210841777265473825458282631387292991236489956603399013192409368368044185691856533762742683602925175465413315628894418006277849153898367689286424367290515598850729750426787296961782999646241681429600104409655360482638744610644077456876765498834787087860445280973551806597093058608635208919751744321761604124716676692748174010478850059051204315770222560058728181072714759041889189602623014082984708391431688571892856882227504714920664020090535278306299022836269445186822053530598657476301551653971799230058078993649919741204280764661281334243552306108754884646645281837866477879076552503050513247322270392372519534965595404167428897708503127889300243479708801661195410883105954619539679932140184541056830405102125190580661092655425998269327752581673144042852613072325842652421473744857690810021889649450197519007652069038598959511063216704999417153544922467855552223081469774749938899521253690863982472344453031270796907529827946177020813332890306438893277613338225848772959440170632153340357098329532244237678108960903831453434634528405487542407886413151204333799381363675027631308814718588727403260340538284286255727085638801594514420603754165403081541482228717928467518421710901016135775490709470182594782736168256635209852448752431661588893761627412128952323155947078316715724202393359952776067244235112641294685188865878574632819045666719798714497661034804280232665148950780310466327238918630227784322783149583854373169278140644988080025509700185647004917699620371238789990254996545061927274680490378330568757349210414464256770923653657087120902671910315481913159610940015376406002609491923690854034969220582941004177970183292460909306583482512559321369442215495957684980375169823963166980575104866322958507835724211169059621601365870344732834977214530415145024393448953582765878126816074455498270449297049377991025356922780188061346148064510984340131948384483794802469840507335867410928878351512000109056012800553551515604860997214899740320487731232331781795137027581154200827517140772180184629235821106447101933900019075796089477673798497424932477265837089378711787552781464525586373881812315703356642361750239468584099706459529261983341300810702453870361499213675746388246091285670438800253884907154830433691200062782404223502992646128607929907818511109118722167674110499182804999093130620552088683720256421618438516673209074799047042956326643049594345801954273323446421257594563852249305694330402216049834736880938664490778612770576461099293979065995861884867119623752679037098545557375750685191181056293250988952814564329072309927801536600018669276855529831385063842921907943965631155051625372003290600364558740674377108133960832615375160314855139997798402868257973999123864045198599309062027933515461958510203695584699150053256781152632071884944197085272122580352279368638036393426889788895559624276678392502001671464171483205925168638971328165940433050333676926096924827030306719056237301761492647672721563081242711647330388910664425328006734698282671006680213283576426820769562076830550469678321554519488204544147327427723026888399750991650336982842587002658791718708375478061989800041063024095005362035678332750873932999091600479027368258671921523437405631889671886019062289782586140799896996664779736632920793399737962204692952317462726656279247142373656005263898402684804210541346717833084229799632548288185227134731268625509202638625440489171214323089361358695267227972615977782092196314654724405764650919619977314775755915857392057691431793691677466923750044789371971931833236088646055749585130614173652731199393918614532107481093285271528998114849949651553139405626131143922267559398529471969428588067211397012209316944007779540220214457142218127275662411159070314814943010653857674315730175544832096357872540819306480681610495278190814263820156851660635923021613086525915799002291328029007464055391791493705015626268466986430289707888403938781356430791363608550592336325967718443599745177294520860142216434620498214244144237059008995279717400514838081023200726235010697561991192673354716434326696411596635037028895504862441582159420180914739775929879976371969515905345766029569104956338870754553520067823967698232899964740265319588710890963792121010563677537895092198393207740733288298684567728147365835246238702180868203303709657647865226332967838328617571310764693734994294893843831608258250543075006807186071872963184239045799900852939328056657078971054676478826531882175929578926682900878396058071852801298975174854732658562162685998325539152862722171523654813567717294912772838167287703064794371824294444771937709254652378938908795030613340223890931874133767292071376976173985737264156301818874046699744068019135694307134751968702369865674310860599796094095595721856675421086196509997901178578142949555483226104938528598734415241871231936553950163820501543514887810181837515603152945684933265802680933800759571516935964979188981304791764071527958511747165348842648160128308794020663686485728860499761572077952890306480809101217453648297423349254328227415441126805682385932024367853315612771425801014627632947428109448541102198910599898411968395619014856694383701535705080243062020067123241135111727480465156189812500948233695421338164020800383462162383978614984534314445985246915039190009599302656644208723998028340032720722395447576612841805518703767971728943475571616728413094077786176684392641169604836130534062512299075620254255668778880137311826445490226870646662918423620433409005721539034702502563454344317236641853471530752183883199645195208326840304253018184126085653909261261002172342754339977259447698009522550117657786545196836656003381824532972677547008645123904025763725587759335676697379681446126987938405733504136455404891296099636018545339639537691198160516167707285042679484425213061162382765322259913228500496309116224525133366650606038856204492679285180442451234979488423903250206791525200919642473029619649330950965099426376135133796571594823318457776647246601186127455673052574970479877447286031883879192464551744980825965196628999277394612305610051154695344454917168175872772941715536516101026151632955820793971046369500232885474035506196536051494500131401334650820722940949918455540888712292720354877992888564653830380318516159670488144659898147482872546752637053318428292880618925897530502742275287058323846419800095838471659171919190095287572942169781546038184207237526329532892592712818072633782991184974106164127082810502519222589039139013891587001329926141819111262528561478745864060247354060331956058723626521191777703687831781259299597538650226340468358857915712205109994745869845524780771746436365280374254827200525480535611213598172356913929304051461464360997292178374454449443992292028949198334693078844387403028585028361364560326171067209668307628013948547577186419155843782715807735540558098345639347585509968973133916840521932908791436214710678217398860438317818246466736063401112359159395188933262046214062821433031921576288671503585215567134384441840238644984868468973724025397987555936428461795342029865384637395730687289672548803910525680863409115270306190742152658768682584606275771281359024289727445763889927250912264889374445528820942870078712003805440230971446702463966616260228398558806477328435811437777417431886889728073900497978749606457888735416237837993037396220193147133096573237747784192333538528131932919687661095267339754364033234451464930794580519698937551699330951790774155954491347154428622773429116038039924280750532443474498917854347596815564942807595735002244438318559739924189762823961393981931370467952861018726794513175374733318865860327170808656253877404411639757388516722990360134848550582792636520957848550186549690398601334248000425261463284549759352392807855149411869804836536808020050512323303022877783810978296886662215040760891445844482442344248952677773092933814153280201391966098359815508872023021835443533213629880058908934248764248083529026891769130163137456166605258142249006374175000020606352977150774954660798208183182793601907508676239082270163997006715938586366427499326187818959802762192555509280914699198025426427750336788693102113345850462462367303821049787354947398922779230527490036920377397714854176729509528710137558928709613687942176621197133246605544894002464540048178769588576323386938484606242835725456133139961383527196497591395148585290389935851964940265493728944805919276702565169029574124204982034235438986358518995257820074469287433963791259053844669004115651277424417174502963514652574025448909971629740838168794116019040237945840905890323398262389646151513510215421366286046448491673996880197962320042608642704365148545479153340105573092570214672258333392859536508247869575860472865208799451605168688481766716463666537705114142334132680245479465051355236023927400566930431973632366787731935932258443797072186166211402000063968746066054412556967038902893817893831033625078097195845220830585609656515352159634890258513301623174131733935165470473471074674069886160935253160001674560159237893055978723670040334177992146438836547694406449064918028574135272121905308222743871827605340390913806572654938623003367248895706385864575033810083404520410837899935198781241227190187144560342409301398314148633038290521997220194971669281709112149056492058462668583842138458329883719607024622484002687801248436798043908252923800721280353116447245533057158736029758934934386911149440697589948353707097580368260980399764557544194617035679994853989640042029439499859495494541109377225786513034539177394563243538068518774825289671210658502147362209902181824692465771734808334648429973472689465136988777197511455287599007536009388370340182500861301131629206374722103036009884149334502718490291587654825626112731039513761755666115748586016964116144845850796944730322056113837417858545020600946624769223140605516055063002275586976375954787447990156023702997124547094023714205622175314596951020984108088745966222273242055571956366999845715479713443438149619165340103375686168286375770590430321632646019015497548445608557105874600709425192524465563694584304194852277585583051229695348916775222036398726186449298443461332638210604451362602086650563198575039338625981251238375613878444289859102223775901864611387108336458180412911518380853218878990679124899959295826931459184875139069490715753141795656944278999077113557062888750224452955590840435175399513839529721709695498988800876383967725053191088530382772740579885505820823494629671172318491947221279487551587275160572945614629651290460699067475302810402838671480564162387345368861245335691595293904561063459963393881510969005823525136297525716632057022263465857262271738403016648636484941047265745444245107240184004002946367560221655045396462378148678540166916333255927099141826223268009255031588589061307098689881057983853248158642963742471880686886223387536764749954693894825684563228884062479725686173538354052537108445413318687934569324481595854022073511199903840280906092515059941678159725417174575255533774765882874075637207434243758867813700191838307533951141042982123441656277431841818689622251951400579414283692253878632830033011912623021532319685982660236722144075391539098560357116827856350414444634048185311508560773799155186577205747660235483003481003593349588020885230059969562392337610018684642073349006054869667393687703873884059427353868501539438624651529974342967851495981386320315681311736440133928847474998341777254871868960759613827928145070846116517769778283477335527420260751414447600036180709372580116583960986984015778275428811003439381827528721068241831616401208280060974171128511851202085109638467463955743741407319524269623484184833588864584706895643319039396701117438180065249630525243667463630228901896356175550871494396043235067875148670030794674300429825217339158224965707657386537881112274837484123224395366924583284172041995513679060093351151134819028733080669089033238859601876094272091018597078222044831042597521129079958073305384512795661166753856004812607179130140603967885861624136985007072861478621393024765388312707055374176979917469559776880861209631036607294785444792006275607066839214782783512424347959610188401152016901315955634085538682909485259540738415819515507146349839470911989583079014733219484282131268631097754707537042223756561391913687296187888187341558931781983144198080498280197077491910628964056532324111142973190984653374426151897700030411424654037858506634933341486920249751260324132447749796446857309151459046972825970083298850262188128342193081082958280250014501411837758089901980692298999441703737687196378943690717393114858922370197222286317331102972867004270440083670675144770823852891079805678363796649891621137730664418863722082448199685539226866611347808262056544675645683084210321017008470088218473936356308771886705779995782095551352186210691926615908306371967573135432587936519527486741155524492163116730256169397810174904383982080446152997928442945331890173569304041514136351408628604868756309281176208268444690646815726789219432115345164583300455309792856523654078825560360109677106559598493845605524151818689136061192706436173915269992190099990971563243226817505032876108294747939636452557434551561172106773044403561474764982943902379707180164709805840131997373957704907352017321488483209336943888903712385189729451110901196466733761077430109617262985000899593617649330609480215698729337917586950266993981525164924253835407460402756169110231299314243176725137688484385382574586126240614197647836809957766437723071396933971939398672679289868359395831568898435795757578935993871482530516198208758955825002523013756851941516553949530682503643579968078543122701799413885297586780964028617003432270096300740359802307742058661247957669784527039210790208115749192474846505829794733171904297017189391175752709968289344924093447611613450815905680226113344867337983700209233231412749111337423034273492647690157494297439040747016575360227379200074790530201984777571902293365820573796248989759104961935862400930674366961036988808864421784252479165404164354658618089041431112194777161262254793602147872713804132042094828671065469442877887277373155468632308465665931119636650209847383920054925229309754548270824916048616909480389094692608254183712995096991349616041914637501807685728390388586362863021604686962638575035859958664152414411396329300583721739125907541482149676822206723281666588174724428384319611526763496108911610771771278757584467850545502553214794948493441788349170004311509107052090107500961445910389796897990774125728549936171236090803444575407629099338637983099614547186863657562965382876241830866639444015851886136892806704422366471206827796395695413690031683538705143548481844045474847290619328578266708326793385223544983625768952769187214882306635985835026646538113959595585188543895092446427177251128506154046483582823755249264490763723932437110490224557547925129004402104803851254884008516909875192177034247657397390992012308629854986411689439022761408321699956643574081442399921658870513132678124469322074817919467276661181032719115035560590960397669767996978852743739907584987185730927926555420715194361392606284466580778465933473338379198252045151482805989275797898949771231207102841438880884474916994365608409809634923755723574933164370373780888834624311863469985863478514353162760911162735246863813478441375229345974219576677441229230933507554404113733389916949913043794899054622377682886420996277674988797664850072716734989197612335698330698377499756786737345756847827229241285721795468388531384823849194526698766096407307455489720187402578983990468893895385068967590410583739569210870354265320778256210805612540614198799749665010786030398917392065324837433592791877551706673345317831986687309655236689208420280735028380114299622778098546714605909873578046068229527347299852056949140901084551750904318134133010939605281245361470590839432850636966955462931355194533063791989055597110681320025700004344713035436727261552531117878218354471333841612914262657543580470385864559998584462776408382399899870710311139573235369174225249555880231143484279707058128700607355006494204596553687356391725957361754385890503461084939469551715072942498199659243979421617536186660788538354410994010935436941288213848353079459492565492194145497481403121919424533814394832498603090984801359551791957193189218268869177289751509906372680348029176027630025264841329762309514170055754184370383136173452363913685626539685710087903692656039299723380292467990568450576239908199449143202556134845442360236774958554483501100965320820697952900715016472109303632368480192209094901838105541529524542199613742743136938282684300852136329313686639971150438037304706664489869313162084036387778213199406611670350831802393382914686697469518183100529540781080920428103394971218470968898801718159231337238529295125703642489939864658054358177017471500178515646167808527173288630473516469108091036582998236296949678900894778659708262337955194896887153168944543770543731379190992862429379603804688945151424423706946866921027417250066245599681333175829123758158902817790986041523398140864949893567539899929228288961460414471361008151209491693837155236924383674420342213361797871433868171573162508652315891765831246426712176700918270069241065631463752726340476211371423060053618685595989644806956957962064864987378206238227211390210818273956292446466472308129589442189998982009902458338526053752258578812360270662875392163190123766667505507373486978719360250220076532568476010176361662502812556970671578119105353863101403456323824463120231402117158856500413338810590659729074594111126983687980308444888710710789885048351288700704600937861513906340516058510052460043529561308620051254121338001192313744956958393686539597190269280317382055047866082938288153935377042033054109525685845919987017985919513132532136954123445126775802072818465993158166193097839309915583989856069486873395825022449549796409882912627057692740068851863345901014248436533985248122299539946202489283229758574936927553044098924905925551608626364446614360224763656499882242960824377014998837059609343864351695528561597846704309726467665690654411477788245992470724941440720704966499621650151090832361038712890364461139445012071486013770175685348099822290159322790666417730536061202723718610585540792868692065685616321494083015931249640984716242227975007321818672503462583236202001493066073195756063389509307209650347933453033707826052410701955977303059890787239168956544983640844441473562131441416053372348663730139060163318476360239656945050259952881771398474230466263477323053815803110899282948924165061276762376432801938143263194660040772961381585666186693205494570604480463551465015728925760063263435889530405292167402942449508380146602670168799591006422039245898965886938136397952119424539572615214983467871060870790978639092463075417796196377318798910896334345452225868791024183469956289201281546926829259328507106737390799714739698886667874162711234601837965752260826605549162868000984397770311047718529433416791786192473953302334088048894402143830880722433470927456949016737799203577605917860730460391562153240824287616852620058852407166712423319957424397557428285803001235164166749718435622195963819836750920606694047000751934349675429776483103553083012730048648935417967595486986405231070606355155939866250799886676948825164601599947632761378694937514180398547448861042645950297147259848973338786635198891664373842186526161783949778038514792842701969398454936238710753137004760634473935899962420431565363143152806243170162426587001161774889652501598258474283634635176583955919200490275490967439296540630432866014852140767892969346952728595244150902070038877970522758929457731026020451290314811311722392594471491545729035093233251164840120741852660825771227543850093124127480187208237180062623790178909257755811213747221449871656108866010631512169925963139148939250774921686633041622789655716316611922074418273143364040424686994617397559098418398361710371696898433129627353697296440640658749558348601831337374168523189227535159938220565603519696056051945457595667264842707639253499317622153927953037067152377185276207181753281089963935052212499060375951164155298825193874428903156000466812039143176744113969455264982287182297885416307642605184874080003649191757389667790046544843158347302929157987806955755789229413534150578374783468996583310885042570029692314690747683454234651470465218411123239300586664414298754166494436815287076675680180648397864976299585631780867305460916339772603088164770032999737903320376836965854741520546954915498612858683666855480232087921022137603174538838973185851963423370268576439964766161429751875135586730771450647448920400424308360470027176975231660874582755537955288543192892217890251201879398526146373690231708999486072785519189794668143671426705339930716737774699218840989346723221414862730249510500475153579788514467727529155339346403739285353369192372534321216686304341866479277065086501268209784522996087475999631406792681474865711191467346611429709947511638813932709679892127623145802392903459349355780322031128246909106466763881149613721544025920230457971243451067648174057042006022215470864049414771533352160143000125420389655520345973839465100007961729526767612622947160233987338271296214907024038214623139088164906263044943716577624737840794078518450270259848336109775808038915310894413781233587764981300329987441981020598050195651304891690780361128313657590158253682801828872887682908465280171634527298490859294438293000016120614757672316619747933938342119255658807652855507843298499929128676548881410324414067344480582590435438692541214483420523382749417438574304348688644451919889401530498563974819897580954490933415573787254861780576403304596708524746204742791096294900735359209996392967163186407364404893918393769347641990110122743265020018776346924888193607850916940273016583210893625805862854820093846034349837955943510858451164515463580354873263656768567622239040253393547524153743672488972600756079751824161721029595556570355412891493968738578434696462726571366928420985605761988148518533245133770463126623981073990851255524406770141807960634118375563887417552493139560805039158858107123599344753232583356047060847209851226216505689572130067844591562602250663758534790210324809411366347289711178351648646077205361988148868447100604228239828730600753199378326898192560009544286162074494994523937250351157076107677142282555676039516389839776106662798465398418328209522570245176064553550139282262490141957478620825989295067427164376540559816490505583287527498412870524969919932675714608353985653770689307242282774993710075982032051317862180739275762071904769614712510417293834025744441686524162050083668200728030420762322731615890458714831252931814412809759580666679016894923345752766142058895671739615028630891704937046841165807686145175659441662779013951306849709095879304619320149501974516055465279315849260379661351347044410972091510575168791096140579744496728624856222786648261538179411703612672282016643040693515869661259852370083916747104516276952367375147684315483825879239485022519955771399023504293879772670137980053375950812610527339438752818878490338736482111495657420907892808974796512858796027740809149950537565422009719985646931649156633042524974386740430700467217203765445949983169530197084575615260134818982994586704889098863322290366200122682209346861874695104927903837835085491686250601790631919245412317975254965170794428024061998113754910870145616935788460823073531579514684463457159885546341897502423162461774998273534631315812341042720283881653511323300577380347371367434962256508196151669480401410308305784092836877881513211781959276964997628516772732638707069705215213272598959984563128323906250566076410046771455336032999015598488333996122742317441462987044219117155691777806553801274111322239452696145512001631012284421249715714852599843888782050735479733307295294563791995648511005390697739048625366043032745998244395658330774749344281698605536101482316301891357758496991027513529541104399018992496945046671113236850325052708875951580478832229118921220928808123466097730514407452067019070080821244813681518751545039866802465177731885330800208650010044925478276090990562030841105448689473043922372872184615524102610310250231256049507279660329120714897129798592108627950247861538482690840912462729761169161749340036919825591477542824592701206627130052360300332443726267050765196979201367707249582535699320841881431615551065282882453981903954490634987788105135319508155550786468156814524744047119877491289461859039544812003142315286696510866133028861565422695039666321331487477306836652596289843535720638802664525837674929376379268426329680976913486667987886439956340248930901526658106348532660436645584033084439784334369653365215562834185093732696205093148604866993731663496076395233057405548490571844875047965732355306588094151623743072440642795931176518664670368192623360762133944466035275311607854769700605314065269905065572102561242159160438248253930896394335979146978096377860416653498163843349263613707407403497586660248412400538449856992303339253911994373143328658152467771645980927022173693727854218876155186672316257917462748473717127287238844926255046396298061598154636116943539787235670833773709760862041507561420114970794053843494596565606863407607002775305325351027299023721100329433766677517480445375483549883667520825165387031638773820346597315994599694905208826849987531858977410851184567366469407531432681845043022953524206270501831904818737800348702524843121806242348795584859823528498680196861199819506625109123643409715836787196408134199757333256191758891595419178906376475995931292331005751438421748728144222013429883356586932746795711410283608582563120816864981394155658979321118612727632907162160207590456772650202726706417034780337142421194521830791480824734553479823272904214065547193736675369914540301596607106086228343535773788569724374453696941816051607884595740917024516577138074930886074971520228566039736963750224280383190905958245963270091718493407336713438120182624901578796680135495870054997920690518100623235587267184814721051114187851303051926992481011812810705114782765371442190650035695951670496413681709727902287619627796869405151084835993555666693301842122802900977371452620369229139375022595215446120921724639314589848916728856286135988493039820122034120645372632592907349036795181348455839972356479122256828620282183436227736389767482473583421338117535583407650287696483335178128775935073511907048627354128292996451003732428852548534318720480018023392472482037743825882014123346629429533567472233636823898141143418170251237543785379396867505675124537875274637505837341122038467826124242111320496697291984198716226458590672088352435683268023091302460926084191200083990697264278391723112036188392615835971977207156495736702816172016434126002344796237403887793769970431057443022235479259669075741275443428700104470929274787308296063292625779626552407029906913953937652825402346132083859452465129479698100222239873249220467615225238546861021609583003263271976914623969699164456103710659188856694195082941186069185355113015028609986213435465728676833769896902933006220155481694858990990841858413672798510972981311260928035469974450955071463175168479019193183242032765794639234430773025901310877935792109559890263614268810807752753525354019570542095728778171533159479160451299284988842826187415290390889258731020172151643434913066133635270201172882050316080030295421267861863096074742569024951046411393791889613229463977645935594637477077514199225986158419629750993512966505852700329262540035483400729021077261203003418345069062725526880518211324492001986391413340039908315897873980149100015777094009457893736475345370178641709280415300016400863760174958848704319639593968190197366001714928385413239178236338032163412551209249036857368068292504694239637142191637039807874582660217124819419915726947818506759749842272851476843345977062662883463559629744581242601498873633828010551358989789615082404700007282458234448836411643300748060672307917082215108666741205559919792688079553726969681930724242663482293060274018752714746217517316538327187098458049291839010257453626981414184692720530437098868696986644005752958252119699667674024893303437565230351915838219961629133741713139316672237364988776893996008607192248122861392923393602803723893283941164638388116534216201576532558325551672875073552147213267483230945796465206595072954935861293976724028494572115154146141921478860331954551980777276370562595427327302504947301612146965620709269366996884863439760720400290333879993945597456254256575559766664730975292781936934715528594179617191849427177442685752547768298278445352666143211232276816729948154644761200844699768738875895786147997560303131811183817911500639071240034496849551527199478515046222358196472783065499771119416059000479867184524296405762869115348497563342663650885810460709228602927248140919117468939349597929025223490804427244105923824749595854845563140764992069939713175083557722880858107412687823005015981258303718639265579724320294471185087216229404094136044370564037882730051945878339591166660881250546569231086497005209195673370805886080867748855646382062207745381826511455602985872309939593133267043813378803483380494787648072919574534929753426512314394862638360707490821231492864045670965232956580551750935946689610073690259763473864571973305434889411882498427008211772615025137286008318932860015262349555614986259430629272064428407532408104457502896345030670670129965744676349788857134245879020295037585288722992494165561971209980821857056136003394491167986113895885973471278669823419251926170287902300304301956479367390520330374142600124370573092749353238652523875412987384175978960685584459484188812755903337966215721805132845458195066730109749418151869751900436885803942598294482035602108915226825165247479601604359516159968395961214400076171274874788485164857866169294327822467213113099365839379010586776693825644121173542357403406776705742392654103686082620230436716995301964221092278968945111205196330065791101186403099265113737177746764044427240054289119544187608947137667717644726629034909065722273996760491697099795323422727135561357005432234200832238694874989990960718264561135619051184674373569187851348383012447668988831166217385833639015242917734002998300211328985557062371800572873772473065450381722128608292421133402170687186741517998615439715477346855184307819564362843210989128496790791526698460500884813869946637756394498336286561175190731560784722229863846445905969061709449389533971595005335281836960753052229628272064393220962565982387119871499374672668945642380341836366107900837800689649657894198318131956102728158321087111497364666910263048329462196099750302548885862136487035405221704756598311478879129467552510764071130273940193894369127994849222380095200337548462752118618889569283394377683274378594557166568855221516544825405992905647494966118153739318944264499119571843809679015130647592119005607065403217761629417139372582964900988299821516487950480956318381095938620145868849309245091409709667746735798673507638449442820767648140352561608625361891866341786729292174631388618029616338541378677032837446268039775283212603630673946290085698753166299021473553706947778687253907059566528913663705623798446602199881029593049190334083243068353369613148679523023088530585070314122960672074392177017581430235234735489768037383440120518649515849288001511227683357893297758779108947740667271957662138814447159273820532118907205228114270728506464436348271098989047542575515911839499787450668779942027544481835056303535488742812277640745551486790706828219349597757938799193421930472554211046369817381585379660754977583843978387515118335901427955712126086111228780300800441573589232192554049669627091233335063284445117169291882567392938498354372817162551749554276392874231599622503127874111362819780927859791228516660141088913045806422033132066102136045366833604115038344424796768253277780368891222072999459652880092857222475064227737176358501453730519419837201257604850583296871313070206476490477028618093699667788716120668059330302230713754326241397098797973342793838258938917868468406342079270865606544841044157397880226327080489859726309821832883809061451559236908691432430877778720685605419875429466498780156978393988592293362822763351195236085359245341441174761904495668622152041044047818436917636747636237779974227366286165707369000471793932799913115443485626902704307968321278374538024504393479406940059099311388728973670238206448012914845751731471277201341526428980103421741601457889634938870405378616059727381398214050235355048723475285174996224617510470106630182078031828734258603071584764025215614466139021867109954068998547973492012869212106893251041327081013063650828782843711220805188591825047098052381816937024579214616656348299375780635919915050787926461088529212547649226837359296942841398276190897446784148328712550323141086942344826425398994241972237976135653173628970933120939714032244021062634501482887434409473498921237389349889399817741573432992918516845830384634392380670262545065344520402724987758265989885033259033593051717749428170365063159889466006385441452106725516323416336510546405729315897407408918174551270668150778744623381389003717580033584075225276211041655363160101697186690055637635140500986239978638222825249255263534547552578181600442867053582362777043908510867365638070406985892352616911951356758287463679759712183071113834406225107981902099877299323296891226418880956710232632574109172432650248852223216097267943899170989682338272434858284115631929968872420199562274696359340419354521075589126320098933200255228921834001023018921174161638333130677873050872129869602139855899781114295629358604465986333917917731906316170594973830596902313551126334470117389465317774013624992290060722279606055179713486703385218943127018692740545827329605269803823415806661052002095349969606570331914575040489391386139212450646930183408174978888592829807658260173241511069515646160950180068090653391913737861957613358482209639682525546714790602875280926956830615734604277648192119290036525936367481770383828769032900455968859288285649648076268944581109981696014480526771688521971393737125496617254237382722532009284289639661610134468533715790384550637100410476287646216061174303381200542330565632066996301120935553694745593758951316463491303272820424890979463208859283989749609534074570502744996086371358902929315043547840839569319255574707946394073515376251358768759110189742321730699917646902916827304741160835064967365285100262416758072053571239568358965708671749646330958456690986274384636807631550041141707995019520182548298322998231843358225592038083884625290531767778434138918297032601183096849223601951537985739214951494378263515314553490974521807788853894402593991738638376229089882596880900072116871599445446517729408332763962724499443287723531729020551528159239265570880451984848871033649537913444612251791617044229394834955849212417495454769410633809618878520514398979708841537607528383444286706727943880808083082491903954680276970256094418033830292654679914770579914958367968406467157568570590205598668218802468527033857394263618914238457664953277582248712672369778733517528519902606928130686388414806880795775296835043587536935228594046898319633224507414520035843605963725576750271058131479120249507072727286497777836559936030685143590384342286213143371325517870741648783136318763789692452720499824232386830429080837339558177616199232824979992670954917686362710769366031664343477073688710564152944473989659094093385506368031943242859971901452345054794546607955501672350178628658373412493951704691992687451785436416289922649722559939290799032295483372132442245488437732597702225056281370594292252077173312457700204306227809713180215688253583993463056464250602696458221708719394589411098328513725984947175179196664101020514355019254085205845054782726579472837677437216079180388737214060458409358872395356248635877080312982285407716032533473899637439389385544029136378776078886954650583365050896637132276181480523098874865570672454397700234469308919999274222513554253672620087511082951416805704394477209045140429545517447121665560220970394754208334456847227927759206271583118497865970906350493760599880733689780828774105838337823813187158786712005170824239820505720519562597925465768569247015614626647109427448383651647748289061990451422885492325498477214484496001715700577707389568181946549303939105127607655017951811709681344765568222049668894513961689257360266415300637479624417135759610051996385711716563049116095135796736064148870950275533577377987045269493363157495842460140634635520076615804540896968330622806617578628585014397981589013776682815253818958795925339288643298837970482592470686900497619577871271222885484440993754560310127838310118634951344072521857464518287451823057189931091004981519697143360970481795918041146746624515892215052265585201346893057178028148434618338102038117258434243363164277049407557042137295111606260970229044351161629544046873081435114513328115100781774034511161808682953900976326621626126955505403172947163437374943247423597157912371178368113363669451023608223142327094249319017993417757114633159238599987499555034006246986117328430733656670516330196605558643756562933761544694400553543370222713917972357298796677092770716757778404888574741180965142963294755188511195895705878766334712136685296967466711070328458483642511803004686506641356591025132064460708953957392265808462890775957422859658904116925693295479518589096043769238780482554991500977702621077942489344951253705154950789935421452863102611547992388833209989961891602787382532889425157954832002592050140025893855205375770413420088024705826508029354572851621082767623827154301636035130278310932396837674275609685298538259218593815417510668365948536073532983486503053667593499626643967770756407898326629265023634108307605421486139231284281879282088555195601435626299073640556298127215408127527211399147159356367189666228401728657888211176064987935405910237981024081929042567921421088798815895196485946827268711600421356273512204894056091271795962877897800044882982224006849878971722072753263800367756412498592966633504360205737574116771782201171463315278346572313553400752269310611159685000342810790155654120123060921545898833182023302425261711897384536513780465669122531178908291710709208262796406403155092611896972020280487351102993012090868734431048172544590327854392319876601642164999169357816087013811770544531169926738235104517216511778366185187881853599164889658486218133904833375624604697846721751505244111470087117443932585491776685689085976669832162221970345690442566467550594243266856691056137874376305935786120493260427275566541698767777281956999977197690320697730800242980271345479344872430938807449232503679802187529119959746391198972395578082403703337702691124050275928511735932245361962497939570988156364385305567524683331069664277666949355632623923839336033928569947068259673440428865327732613035366708280981305536978587255385473266830062429935596541173224208953573047589949878157521524879093409181710148187202769736853400812697324610308354698612507379742942247392271197027229002992987046521288330992283948322281843239528212510576893644601132275287226680981247959680473148940146528622799923616013660257111982886159988332204673405105595314007686443475732556612349024853694098780929151601030349097114547557260493684723165818353276157840274670547259027189089968664738115107537501750785802555840922433332182385460240724713254968049081050638022579429397256094788411387085422511365400325982884037544274983218506128930189332779393699477615874308600818810572207124379622489490090629500902761135373234712117410402701097669723024088587970379016049029379512015541650863979702133148755105716841027155043968234628271234324813547987160889145738460454577685743711537103624620016177394429442886781882438439605527202392839746942035254485812174597850942565002216254430343251278047971094787115074566967514400682486767868409644247892520288291645146557894983356413921181736173773512268938450612036196488641050394090371813176445806391945399516651222453503323492485185147750621271275225562894499410824832725679077132618509493904765645530521349872368736250497314794168504955994332905653197873166523722521633088694729683072291488874792364062067095336796413008716716599985638900267657682838191533306561870588781437168519212809055565906281248506747022033713892717890129037849768926824215219167495089290231755951326429275306058026568866880715908957864230287872437343640300943090211328990300723253649758020390375132465938426427301576998944644171824130384443140792133743105721558082316780718792218781829248649874154367862334655727934526860232506729646647213970243186510468838116274312195734710435983745969580195655938173809851766298893833543418053680362487758577364792863678322473747183172170947934662190617062752519542258728193638379756669131077756365123343666186931354372747343603144786044663762263814300067847244972252521488022300206879613867585582115715046382435862939134948609350987160942461645057541609071551608260431997171320218250564930457972496438871238481273866288349953406121308414452613080589920091066050316152980517393031569754610392293966000056965604026911322378831908131164022837425325740339309907742974347810358850344158629590730132909765270158446889570617610906945567773157538567732429821326175732177734015849693424816285552719288305417696192277495710207876040787785307897192556134264925664600966252480809423168791709320394695600757290871714816828721038525108056433489633554284068640723580521830394263645332926599102940472947360564025092228216005948716108995374011971595411465376619494182254926458508044129812304392391620064879639586212704488386591551858188972788065232122047594856678430437338304084531474739657843106676391693308797031138077786060217338778068062310686328154274015514870326793068421300722507006078875092209588856864171792503983501603832026899255553674730416898155604599759148603798799336826363791835231422519237640827534294724652546657101469940928471451832603264954679960219345923318417083014225223994635402155150010447381785084036245710383850908272061545418693833133894069176851858009385927648227937673478427934995140079859263682249468146668793336890396504669881976074499352024117663682574150572258646654782385980133619753881075167039662540250163289202780648696312526852909995835702662342083896941525592076072782680675431647615296570162289581397759859187941153376877512485255664469344654267004217719763937692412897488149464720563163643882374537263218784316198547382339873613754762294386835199403023840507469793229925694665975935193324750377004641296498448168997056306335055704743579593017257886448564615812913438065122828223150669107699230468372202023175518543900473044446743570079974837091558714877700677643257579154692392751674812621349222180415525253410830485015310853439325285549147971513020190316808165948383989441766387208558876429616343459247303881861744860231162035762498161081620431326315111255498686387405910509002474097922585560571729861100841595951380437061509619344615482189862429334898888174518529279877029800324592624004056970389666511098305462776888532453403414512359799737816454401601217504356383374916037418965204095277825644305615237917655188201652002286159990932162673299387693793075407641356320245545676078204250246159375298905485263201620797172917047583991094877561544942040407051508144920295180498468950496954215007565050147480921991579490385061789398362106596054074111038522576663003275417412082771069543098588653480731811551436180354512862612448571369232991336683129937227683676576074688440380332930439157859354837818767064776179474937103092885276809919286758809050794366322965013877394096614996899396979650931895689151528290675761193463775650237570723270115265584574277642475209276539798496736865371399923587109417560431239620997366067918278091167067993834214489157875155721489280982463395126379713958293465443925244397829113332376567354065846395725586446931276203353999407752553832581600364285178155014286999831765412710350237685004109248953324784478160712500940638793709006752874670808611663609702759224273893079106427506836002091532714548483649986041919438604402784116600916192904404567746029922748342659619315649203148752447485034292552493604490008475326997313496434829252390160249592411700492696744086240158699612205934239828718925177472861389070654167809238333799869870822430394272376244763404751865747333983916314754760198596028140564421507357920165732093566415873345267171412107939135013796774594028950333014014986445944637845792773101908450978611251611359169470962890758013692058815051522374331977887045844264552651227306130076708514460876507114282985730739533817950674076826472417055682171281205083306984170075245131242401800123130851784538705313505094365468916939690455686303290910591892098977881590185341414015103980360485131920781097512387533114846342510300953505218574381158919173086940017360011243176610509684657395209382605024759841535470618042608701043971103109342759740745611161107613101906952123798837908839954289537982833828047089544601758817558661990276785178701583566922715349141563896681834737532023715040156052925514022258035278656770579406694585973432220886298441020640780385175909063423653609291236140839245402687017219696571385095520397737668154068363981324209937189201409532970505018066268226401084676609057783887574495136706883712602883021955994177237518579445634893982947690545831654602271696916788902115696714633136791129497347303181741028416619881810229637701431200052546475879262855403318128718934446344564518727960548085292659952672584289990610442408530317340695351059637771487696263820372466352326203976556950012372119583112277119725539298298501899013221443046310173521311633801368842614376856373961840968100531201960152169391331421978894762603284542206617698133882685860749901537707380481579244839548151932771903412706181346391058617018708302348482521779044448558981852502704638914481037918119999606266686382350575983866232755026792333257821411275096910780146827765232016154890733113567294898908289668944463865059042140207085420026072203635631259355073183389300802180368256257939431064000143622871633895095002597891451623697505355600805116770154481296471554469236419362270785871435700149001356128397269166857858618258857384975620466090636322892068465270137052438754351473378998964069708366323980270503272634550479315981796667564588168371949149055670129449097189109078887264173293085445919190213920425092885825809467814968645771032505972372439881497034858433402203913731209740495095100610498524767737790374875151663065157803111544258815189078418554388887709321075085377613833540343702068578484593683592230910853144839057095271791815186381350050932500518944558233914819429077489506053583238758793087877463148845559002046293690271806732739318976131467709322750007782955393000871049271692447608071318421495010733390700695509288832996243098943953906498406474762348909922168373561874389440092758458132863924792651817210738770032144384645556774576353948605411644619626697442350158214845791556215107590775192725925721076931036872720937852271635896593503951473122541851236897533712779998430497404841351752765046832914655888052383322937566945159592817017821851453831929161317244503074749177611944563017000513268382100783291397799008187553587646343173177076762528543391024863370394755977531069395387724614600284536926030757100576852937772361149453846649173678230386995550583785017623112954024039204429771723263003394332949858309718185627785130399246751667884110592138040201983035519151671007285293051442808916684012657308308034282220110250233905974326344106189712504280408611794507573038855188173955045269662513079208312121542814715528317559418084598949686813966369337713824093485529828055790828197205978004591851947965492268285159961246976646551502612056764199437057932127008760180643413206122369341916007691984994894381765286824678673101426469233083511219243723707389059706770682841147857679289620886130217205325001776999347258068068611231132101229601445637116501984082103650702366412505161175149485188144608292716910767127636220253345473443783709816074996443632800245525805707802233987612633402456283480934489288522783166251629776239196159823961627639215770774432351450074180977321204051175084495136718456550915382701222820961779036251124816837303868933364975203994648642956240499577052396065706579445650000969502755931226188615064692640369851928594753490262785286082668264618900163710237064008155621818778881057901790978133457431742496958296014629065242739774247435796060486615440621063665190341924755273409736980624542853619448383751786491543774454503289617113124334757479044503311695424892100343320319205558745447297886222592474664928012004219368575337408065428352272489341945284113316600390459160139117736715509507784226177838572437242093563835185658959196461969363659860635452743319910379533016425745362881201066043629485869219633661896321855583720373274957165028141904676545805565007265657040582113636789979583510412786473170430254165261253300400187223113598531333567854005366185314353198374791285545823973484631212100020618021754674977141429881014251263077759990797425217937481753380577601613690524755583037675206278757254321513479464974221923011137491262695641433491808151582362491889687476953045935542614407543035613644499128808209897674473487951806191000517132952857606493380854003951875326635798667251501531042161745713233030220533066516204898480368546294872311587157787567704760047004663702525952190750731073479040412904614067115033422725429645739637779266626406930410888006354646324530301128448818918383522644282092859218111742756050164810541576428923915565914620294545618506192805133366451454360691706797357455781319306585390036917786503858651019300736432584746622308689074717029135928069323784584337578862025390731967807838387288113791793937891331631966086184701555593192535867541952324754508944891827119155879053585381202484338268944673160898971632904404868609980874784546559956995509568661339398435576913764633774486319759369680264758400288067309606384231963325213099394093698549199281345924412431320206240083600359388146068918243742604098347868697154520476623393028853125745003917387451396830651230500396885094888693913847902750919132121603422041084310521501137278206413721631298966882481065465856812368235695767967847837749117005081771834684753973913591560863281056270611598769714200611137057304295643558100462762338887083616435540049371739829989342780111854255252619047966303855527965072056750827054001172105348274520449734148592554464527080811054446367586174532137871813369655155661257160652373382409668740615196458504705030797069653789028403081620551453063840436034675539206919598394395867452020123526678218140501769354678639093033327233840090582511665288137083145526900785631426093913188942878971115415910066034104063014461537696060156040625634854037778297926014493638986615042134928026229884603286561560080817843281840820345013837195717064232471476890760188875781100719188208111084679781238311765331680196517122086642872574529750025332255414396174973400893676015912979066454304923731516177960143012119609106944335262519377422433269165555828607092072536517408856780820990747553992377282330687891112276834157698916100658963070869838223980508089923098009046192311955200471221599741207805888983829492191640026617207130623311790399983214770444489480696117892179188705303802949029635519838462691240083629474984194008265187891337725191610533538836140598693517638538447609651546590706203069852772327198347790687961089987150971143282302503596252032520735745132336225930263942186028711156665677762884569144662627208868143364198163612346907513640595082603915949689134043667552343162367370322600710876286016936612661060995240672169390882050537006761064953582927486603675144346214088329689887865575700503413595483161222816313976359376850867575910111921439416512880172079066645052511160336514171458207234725613079955210207819542008261244592490043650408608711422814015243369004413846433168769528924108871752828076226934852751961410798464728863245079809546435422968751022809163559627249135210372331098418379944680991763727114960951339705434496871868952892739497892586032861708114846158517639378543866485224003814707217900529983955814453159295535892509349254821497706939024261373061584317133311152643185900320214482189207686314497875313747071683277759796774290261470381453499061596013990350058574488656683359204728398686418083410739484629440786962279055280524882395263641485536472040430139070861658289813388606292059168177746550658443115521061414911894437471579490682245145761759008958141965475964435855059035655740674846384827069771366717551117969859537742807090551156776985735168562995914180624934879700863172219814143626634809911849424978758208207378326201946106974322857023587300998594976389928522915407573428818250960796821310542000809521473933445227386994461470476336255223057622385601525748747220395608458497784484003396831473894948974450330315078294223036356489593061281367990210468263481626359935942367126502549733966034086966095304459872956697046958357337622611961726855763306131500779214228416752949938972374702853002898234851509083889608795517061200786398224333501464479264680302912944705647176778031539795095774423359353828596569322498363038139391475468640405306649562268911010388588245162715324257624380084011767066724014281054771774986981246220500779581619623880086680369401488918910862903831276157971782022426832072546203170968965719806909948051950517485121060107806200859190707449754640788117376249362858486789186258873374442827959748286935378604082203029680313878023661576945832897627245391544623563165704946628569855499391236782929758339790550087109809033137870420851528601449597927532552066361800583763771896300937780740276867994302252083697025343577302790791671519696167329078412663082567618724806759431799475817974003657858175914424845164514115565984052483653615088741567062243527240406007746413191948866482174008762810388353742868654962703896952437600828661963557314485635576962814748568053693192190432511524596475339310709599035037506789267096703352015797872240555532993037643066280883761987188545624879065317479594702762665969547809131978017611203542974521312165915070627376246226769828649152071197209878732819262699122410313589057992473419930025668970776854217477865760612123388196409402131228489602131887956832165474646959574527637721161222772794522923496737224897907000215005664389545102171540659052503801610373189824404497889062274197047154715151394442363829631072127082615371329702191271637158820964493026073099236947010394926384950670819272942242892848445765025245249764935944209318103430900663130103085379883738532759796304275973326481906733994873887575084175340063790243323896322847927523300794156180536042295037594522312851173310954436803213745354187168135195586940483298858910234690520758930253667928598111204954022941121036504362915217750133174855189114644603893879304732030862528693877985605689386357337706201198373875537601699332059753282311995226201141139156742585518391849112916844639421997614092264281969184729865416597181100718917978985617199187105952815677488464633954322446828309605717202194360903859012504720557840645616353774463908583203454781626670543520167430808063936442566447152490534038224037069895812873431349652179106099110291701206759065782524416854092903583260014629272166165598197013802226909042942179659287713809115773685196120969224045315540205520928925174754512271584006265387581010114991474931297373562923048833407582688236796070069435894079611569259717817619832284264597302400385092744563628396765559721218728423097874925978392089115393264988922298520378037203008365673989383559035028271542156172326288389945908552516233933861802066827898253180394013130481063023039264277056240491823830530654935948759675628565925686703713307283746641860848301783892289088997856858209154841845484906042504816036677767969820499667747706978394309566455591364440006434494035915518255738000133374120298544599642626721131655928797591050085575426950217022757477826576577770629914408288196467963706987762165067890467301291180751546626633902458383083409186769662670090402393504942041533964625245652087817748327659226384707960745252591417752627558689046759847734805332633217318789802543769593103445062777873526111315777892418414303857056591998385700919221223783641685774443788991255298348502016864555583016489227782121096769030387557940603386514638086519703125831658381662367615969386159540366974284499218013453800139857208337974984359170925116440786726086903527274976592321643971961715575684162209840996693803634289872971315124202939548460689577477015309909870831411364022361369219719490763333886648983436318651799810808982933870358975409130348740737547791262437303123197760481668571472873519426876474994404226883036748955305982923231177207223828661534732611890923180117382616200009545620632996065090671120900408002751984935712743300543098822489017594149270744332306232630273602930132509103126918311393335767685917758633318835891001916689893760731166589767138734917969409880715183055052750975633006416737699902141496398968279029982814387938769714480318421099805179115986746384646802701815429706461121524698567557045190214233720457803488286673264753782481766425143678172989148354196980324048847656040181025468529964090635188068515667124439514547925106909657550907444905706450511891996450244090323428991084991635324069394312374222117656652315984435081892114028986305481400234369463404864746533652068676392812978965269366313756636217678576748197964318570251619073030711013595543526308957851798042567149233291999685587963114132206717927603396842407489611452563292559849576441216623002690397515266707600501746265165005516009167642307208200689717050944091362333340184500979237015470425156210543042077941264275262746912351409399465549678895694992171657054375949979630564521330276284956088771697950738912393515297784463438574563579542549700322426187560415614147268820648813933945839472696290405398131755945020301347863226370477972715625370146175018074153233105854205185914271857136004165737638416785870910227774045107367845584343906396439476779444391095269741958889481103820721995120934317770733847862073219243141995324874563635554808939601315325537893896340737208397157491514624068210895823292691336079340793133156891313649782618726853326969669575023938486405810840182351078018411837817023412985399600566882338981850222470676035711039894458716618975281418650594417655866443367700620816825324202655406244135178318998896887209143218452673379813204710096404854436081293206400735074914821044554132815318360092720052301641223356880330843781601913260901459198945143359296405531984475922938167962762815107926462217665023000342052825909605480201155438377376837477515673553412994679594605713330601104352019575409932568867704273925117147554421600655733131521670006413586530466111556352446773288566758416185092860332712639191635907722751083932245848948924131431256954372323013793811597669663469921933528809053058715170213343855041838580007535850085842170778241531675875170296556755994003002379088916432732868771699885139328354939352856774808479349139203436755063397205988881246640599898605645493662010824368754550902379657276671002042358179707863173723928714306454211188831470187893436751185803422770854273191175692077856113336736020102363953621360373889942226195167286850821145573451841303253978221357578040991176867484653591978247937265317095448673310549548740218755127105507432623230960754771243468306098835929916042286156078737012331029476657216576695530803612316112692547257594284348568761434895067884591829792395306957656283012829131824056783908412416449646281362228388042924251541525519269274721610874212588108223308349103608793346592597372369676800790176170871007108909396374045878387059417857989855432078046493399604496517672194070405371132424651562854302199186251596756952117868002875020673599805539381185532664785725150147477653276118589621632924712129709941276308906137333534126129317378483001584046373348934125751567290193173279923477671888679895587236712319172875824137732999585588495331290388306184471459285115945198363759122447107898085608767782032478483495964370805361482902732727646388682478704103622392698074481547405863198266350711523824684152440963628329086836018495749643819087133901859453463086284462441037672653599257116102668911863738791163313968801075499680366141384976439029339226306673805234293582632630697667282743440830473171174098163251195419194125556458334841388510212706849990911209003782773793550385318434040877825292854134657016164162797463951701455207265354924245454052836596656282071642247748165983373879505167317009784461957170855131936902518520777424088281245354070549175095118545681065032231055278415815023725157863505549235977788274792621600383551798475008865716334218099676161467709818813325054379903756209719703527058661259861851413961061142158378225528045084845570357580575098188713850612415622129019118281087261196148782645490001041125464766315564405268691621222720508290070478855041605810948314721373409700102894060814582222600357690550169914925990580672904151196837520692550746061795141767408321914689783797910557194543090967196702909876932026569533237972293953472907064703294046410436666843413438934662646081701663656986303760699900157811387034615449660513559379274249112028825641212401047129182893483739215828619704277462944724578527464238340231954822936455072024223138818728017666605000117868262740468267379764168995302962147196750953518130037856208260391915537689811640034866599908895346418518201829564856333071999388326325069266148471635923912790393310402737316188145685415747598970046171905389147547335160688637549385434887142291651410619381436084839596038066001481252746784745683268026164371245553915347267867491263587860520634135676534602108720829978460850340991041130361265914571484118922268063253646287584924464721717986679884555847213309783093123671566305602431153430758632738946848353841912635846196313831883723552053062026661263547086594091721173961840762847587034451533540663959805412371582762416971968823524793531356504596139528129415149778644669442763849110657813217833329062182602884458141197303078268104770524070719048103378020685267860121666949105047018170618362278024264537006101177684982382529050191688458053917270891578115333000183769471026770999723196332809725053025910372413388799293663360553085655087485726450948461084140513499981052655514590874754538880963346068036156289981749057266054904569140706848815444417305296657048107696162515821265563138865832776740634395861727980569963039997051082089809452214923209051806050759509750027279688958840858022408169167310500120087154176838056119325646287858956127634130712664160549790958978234384583701556862507763430187234886652689629032158927527887528387480283893659621069953664045906609137362374851239474569890134968937697752188411091070846716804916261765101892608848185018679928154222310171425551886939793227988461142641478464154313355989882334860291560968668621288896182989873312673332118180909211622883869730391096154849120594694741334617244149992655089748968615446778743900861570271980700883163244968231225745110737786722266954601084231356943073989276816963984940734577741663968652274587534627388319738495405240238873423495398486458494213364292202323378454709278002283977984925130439258352024814014061018772500995886787156135444851494767068997352505045108436625326326934826268156850697106917386445188544402388568325455944772567974543717865808424112292038529912016636419550802436029892551314949248661780418489513611412740204715468935272935497713416675934986406080092378591412954515095734083249013227738319020773064022578603726775537321975315907503945075925980136865384826844775131518700022696466683122105971479136977609618329311839702055597440734121456692799559344632159878976073673570416350663156064022828599502053209915298192284021941464242967717232636716043680977383872397647887473359249647893680246880828247873347045388279879817072303418704866853438014210907920136397647966130781372867217157583622014500254837450675192007629171672871831332748148907886400269497471688306106560179707513422963938376859975820142101999049960349478662664761789931356957017303342831847232923233114502700379093640323874993483197534646727825857853348360167351796977945890451139055037636365552156118511285453642952359417258495171395445964586024013283692210602780450614802069906196898902593769796130047544374709026087585859925796434441185314269348067066082882344252715412068478375079882361068281841451167617866182282573902211802347844825893130160670098281857160696993201400892164560194696861511983702141073116816407678056449222280630755757924021176998527914700718089132169693567997655366570222531504857953239469402094080611780000772930485909602068059322833434217404614979119101693489654473060709628326282023332769925949879620365207476037721957205719541863740696127418764278289313271654783682037473317250446828559178171173227925956232934911054684839849669155773228708380791764353427239376742041948485394651710133196126321110892321965872018847159027920092865409448265232731358952630614758491863506991726824471202516893431545151855916818919307854906264848033384661664093144171752075229426590425219226824348686993585702089169327907592300005354578257673516552960441280045392890441279277868443067816848022806727052263418159078262099806479659367675222626295740128804888652730160122274580406920456030570610715995611318872315785145052389060617880170385156614856911361424661679042060845221372586522888590017929072809141811704772199594914546288226801559100513235647794381098996871932070439116842460083795686733108696842537977047214169418287670008039550230678147698771423718174961895928899237200825153649982671204794769742620766356360314581170766872463226912689658939126918627008905432286145383580567127136423812058696412819871015857504186183335058661123604895519949519094343684542264532310365631772963164218449333062661974342389096225290870913763128736856749051108611046501236719782459722285472597031570645875439020883983624777226952849431788090889260018084289317527740053324833106774686593993234440167114674358888520355103819837190978044229153411625225040261807055336904285550349406302132238270804587425438935588398812619697824122780770392098087315930265757159989806583697626830248937103506901984128614470337603959162960031980344405059478093592392080689813096631973087495579089713276186809506279695344684689772348548291522089747037097139787210025982606503562324140897557150262295193845605099770266107669636660424964162912212397763118712361999680053329794989720277696887788420941490598326723329987479185337703357238300228352713234963025451756585046807507462576092673108571774585894344334114282843016764653303369823959740874189653421502271629885904884469260586762538475236663763173871497689168970580345724936947286515961945576632741284058458055496553870297085500867384305688994368074696017231630042296524934048452552462334936042846941842400215349011543666580028354169292650091024622863353199047223073848236164997620416886116973937184037263592261219718107733008015213320485874770393099116991631491192796803749776205351362205642452456671539630889823701689549141466928767883184519548176135157438965452030303898673510432364733936554106120413231520273512280140344431890881937556762029738728717057223789843315417061006123834784601732109077610160775004662464310889402424395078324620617792973520350879165044577080607312770173871341416061878910131433387704284209635742310733026805782767736060540420082985919557417459196308044058933382529816393247148989011345081905403335206116817678014173827948832220895239918702727499803390710090299020886089300670590341002614095619664684926492622182666547391900908227536732902484472596116813109216619886915146127011357950495624682332604646075985019670630205699866946996558782840114154650197653294244740760959827174281159313324378842295982340799100609569486126352349348773123824476985961435743264593619853927276756349622878624822198163737212129268571244039419713811716534622457093787474289087059708765513226555498482347237409665888338218800160185778732379501014688706307148542979765832681453788867724985116357509041896013914486742554484313615036433898051622537096957018636552361281496331999278400234573119195528190106891108645389988549714737746198940572228630527473123549426096917403225868583915704520531888138619777572422126254623025740853753908352541871736528347067129350213713625103953411024745814026488655121634907807893899014318735472108796825118380209237510273758178988842542702066038493312005937937715981279648354242005593122452447521726847030323810049033795805068644072187593095324333918817851863254230689014337536800597265843197411267568326694793871959628477948095000674998611465510747803913017934762355409432891445347600515682724113436328259885537310272397710273241600488351902938012798434049907165393654792185868874471527207393124682115016515354577345665677356444916012346269531146485384973557189001606133312951355528984896116681409873022000890364699946593934121844412474684154811780152624865933150798081009031856901056083861917549701035497774460413799784802365610440052887983863146191860186184856882775765507744086930422833835601809691323109222760904158879996998063131986610884298585147872509762001111164531754046785714478829118939963985604246523166769069041739283454783980666874386827749866287183321408252080503004852330047730618816714953550818658418560331860996667115623108413959967997624184773316222582455229222342521467242651826143872281329178956951138998153855608732242789524587312001080575069127764840389303971016719991930279978312129267713457775534929222379591891615071114415276026522293685084011342416394452056810817278479575477137243684666397035961651483767663805879085892823614676231187471241801610775864351245807681317725356728437991435658466293881357054341523613126808571093376510378456496871573771319555338565498550174412431425469138036432672924662644617839495916874083538479160452182511261757365734751251877405549879014308167915451171394124393191379140969866795021667420000919322340097124443754295325417620849533373372864288345473393786162874661014568831578433230770346441166700629318851113098630359180884606035089554932071488083673531177804927293373165532799209216868569187286032192024071718417422369948806293564641223817280586466504822496932977526334833361411254430113580534000774738337738848965688561497235685229850131747977960638709458833030702855826246547306201716270200359626858218766355185875062619012434709649408423857085091827519280607041038217074526082035693643099372894189193627849762231134796860718411219547517123461740933286365910348441793484058579995087789841756596141370577889588820385631969327826264236836824638376782166464089559893461923695311426063805969638493470441268872973912738683981747002711323652846567739457676720118361837777902653429862891538673113676510841416759287353218949417618452492992445539157827023262823153410835653132461504144884811441643775029613272167636965978419944313008433675639185878392334294864027768520749592445991842326151041353411888308789201994201039433897625435479215671420597681607787995526412502231523920509458814378125704673135944085154839957297924175792905721776290155009077611166674793592929764829522501710039143755827591545736018821376962052384211438997237121392279645281835187847510477657342929563507832810624090714121937935310097475031921702696582894323495570509209691217806659224577809044070057839594602411101948600238455846734551031122320933258905797304657995486490240664690756470669933918221257499421623312703011595504645578067558504582850675790272721366706692476488387640702737455188099640706011077726706901441212719417674039715807374634292188382617554959381819990072610582044352058823520239303208682222662451287431216850770146198003767849253570856276982818936958807939569528039058845346906920034688437444197428594959974287948063962098927151349110784151954039921067918649747126446423457840973110955519428271414346618286869718156316176714691388393437908309003479327873917887344737327431177900591409286883225945874825602804574618954601336617311166676034619873705863755071927920786981181182087637027129290494810490135198146162080033247607347841765752434028520388076688046097108279537499907107637212918109361879170192076294553281799057171362546711484961529199369684114893671834028032123812482801350035470452335677004381960354377774096601284609289660189564298181618263050845561704699323658762509469572176946179567135620643853701171399143145527834690309145930107249585160251515622000266600945540052734669119160016568088442563074023704954831141857789461120410247154446419243395216729560940334435136577381016642369912128332932365121414048983692171375506893533213768308482511416081823668998194248151359618216087888825134671534256075500985479596486443680424260622253674586738759808565947081724168396613345428065624396047520670649049390195243592281338664798753581270944109831922504856105401921027131823971880017039892780996904500286531566264742529382526538558916656582140227390533567497296369051816957024919710721457729091621886059576167439116966656944327900497858544253066329113606456606011935801668720790514258987244913897796139700549952874416169457227938066964955293981108910805728853599238881411641136342026580057675053115767910096882166378650079047141810483908655060638922303594805593297096328191011534538067438982893899599006382410248157687654669286049499924206715159235302208756677913866868914348532316536415708692754469376136898860524315088810190325337559963693781965244198559746952294727581198601602790591427907299958553042625679209736611162642844151217046330798840306595866643847602057365255167703648755491864722201380289636279012180715707795927622921734377245982078003614143025368658849262192673285764469214633677753345807999464430973133891503516292950697186226676720905942851382511826856818701883376460880484603036789605909405345625026183067160544700186976883722269481208084733400319596184672979449516898634035693590537835394231144616641598121518849849216122249098086174914411307719500428871342292867243547535997690237404735128453505460364125913738545943059941802845056402575362523407279689988647971362747234740214191510444935349191711910791747382505794384320099505987016298041220949219998003747798806522050457134660608151904688428452196794765515304712159860296478912291562620577284845416068040129174620319792891563879576755828274180908810210163436824164205696994368016088529773250026846020914056640152931661838200557297027456172681669616882445621007684822547330755222098228436037285375084865705064647267525397758112171007939547856034324797427892976168993877854081712531723247880455953991745788023503310367107905336316562531082023686846563572873413248834715172045323657822284889463898220974209379265444009620883842223340874569202218022412602775979609978289842707172071822377439404810878599977307865042437775951276778446028607940626437859298215552159483723467614341538286945405469517088770834008101524919208124089024178586102906069548216826280026766370491916066310116615793997600469963603502600798691170596061424939587745010850912617144635690923752519694784910755027044766356597685841369314992015452656170461973903058498053345395121590953582848102637288635457339101305878904336522057403980722564514065488280165236085752043436664214231932729200307151051766390438503739427958944819863755689803927906539078354164990413840059068880574653452102602255537367496448875249311256356734177211853145302591431573209831270903767565821445181954744037561807729835856606596305232844151662119896650904483785744140129512069252604037739263550217230355415888588332460620256414054715691757988378947209244631018055372634689390954787252793268384029786345146801846476243772525719926319473663905873942573702527244410560408994242498702228154319489028600296731480869275491384590065288648028507102082492631095081364283029155292206251272566149981469644484220216922503480393673307155898468659693113859565231820495473216494076256903046032488563276017419432345497115502798488747609349988119567958381363055703689997413178539936144107537939463363712659443801597502305486173994334128539287334539994371408792175503827723699285211614360192414656383361184739043280171123321622684945913171443822698407451024375276418336803038918005178798982766167733800843032448971470960667342063155772069950043992892242273585350796034448062410882485949159881019231717163622012312614229311187971211073753474207498347921222217205544391993695225445572118894788555242489361481136851591034837271779918807330037197626665529900913200259404262630985027132717733334834548370534487959218020427002198189221194038628117018184730147339238211642095941833229936315514066936882292898186818521649190791401939905540274890526160495730203201523776407788368357492396711466337908709051420808772090138447764584554242132158175913035243037789129267712583830703464573974199216461053924715432382999511131524572424633336883006091737593749682872792655262370441235565968689677631080352108118101003371878584960780035155104212327187000140719286856319739156588422837611958668664096647528755994738867673811183352937768087277577286549655658291388275348589122401898797500603027305952514144836112102556924763188741388454471045765413313570569142091177280944703866462155493759025393163208210833278411739322649386434011362244997102099053734407424628012548218740047154166583574424762953793838400037253391229822560726780040016786968667268602876564404907048723414694590932784169394040083910233346779937145070815289926924956164938980822992875992915602169328850236723777001425738471237790133697188623959913628144559704974302375625473886293968657494377864746266811472903130478941157564142009708870001910522814559342974293164048791330688998861306662459761951414680624953227821266445226842021034338824222637799975700210270069793018716618543520619761026764252531067464869445040459998334390825472599671553922182771701419365109679803252193251189694554348791429504752463456061983268779764765934845707468181113113154193627956652637671408098253432187139911245489999066129368908265082573860725403831658276598971993702181200082213127719561427445577629198876242794852641636896197358210442622610726055153210699500744345824595487607999242351506516599006402853123455330229560040642641815563186091661701338654231846133230259278622236736538134369835112532614927323734738866098751782481546820462604058148616942038260813510830489681501207963090696173483381097448380623938710711686220929049722226416403045132605669400538262645309813392678795298661485347454492684524967043884209842667407619716223590761527929023610676921073583556889044314756565982211621819562911920749380371976856553175731279882721312888239628311416375393156945205683907438283734167169924830598429787680904206516322346619520377015883531623891543806216137378691353380193807164036562034499673635522305607476579632467967011687736140628897327032376133682311658547406350791095906323094270548683610135048870340689242469985473012615817222713187877228211125673163032192073173713547169557920349965263205077738921564741178626936842539233046478412438035909845331538412067232021358514859648565406644358572238276490516478671228556211338709482022233105076005544640501073400599439104331226878994167442459378254352841093552930862098842215183278321405625663506336063914075458643922773423675090199393589752370134038348746982037416209303202630073250304491163294657050700697927699860586415341483435629458967968266914728289588533984910693116432237740316752353300982272787022445286401165835388720430462946401794100092757943891389576367740457520616614062757752318434814526978526937814232330286637339986265379554238716126110196150608182993761106836815650224611938394487880205985131489375960317625085266098581215103295739988883849165811878564629176498335108674670227705165633702427912309424916309165808188009305695261196435490291348647566510011997203183463063669529103682981643182078111308018600493380676230218556620953660065289780989613145482459206085680253079213597646048562326256057103453412545295619380469749330905834709815533921807828658588568575712775493013096923661529333036510921220944916800221091420685409341822446160538544519323706025917126510590973368320174829276051779282914192856655998620476431398118777450942796264953494391708631241562354397090007569310383507835880754569518615692875346407517157610814818052810645334635849589175510964821835802326920045453706322543493011629885738728850444150103024353819940328356623343088117940821431611530860275716281634725704736908130334988525666179478993528745991068856023431441494840682185354257944246669832314273032927846220614645348247208551107651813013485405867714220518437320425063134923276487017969607858829565965883633976956300500041920273434661659398583214256078725411497726060255281739137867277131811281285886294451138159507116470276496886006311382180475168157864868670419126064599831145485694568337093861036904706941728468518347581985960441250303461669070703254502389490666589302131338797122440333871617891908270222067730726084483123040046021677991458899243112582954650050986086218654282617538792961263076913357128870104922454222683280469895244679390703326195289216976159814161547193775305324236128166476116137746448680428172589794085951390416551506639161292853098096659556013669977014705690175629968488233430629497796555652766404144056982571232019840807098030660632673155454051652797735195288931124266444359967488442333579836074198619869847624250719418358378654240549335670446100564297520116303956249113479494610394390294581300195099032950771101231506259461982240754929855618850608965726160581192863727811400155477700991721122952726354564356775890004294859776762093769553718557066529644861914449027508071917698115376534516104870992156101315204931674828481359928147707398241489046114587573119682558094411519155820251860950815744365650539558778061674223824315796833104991027524453308390491468976922699941077546250463981235473830410209679165168131037545961141243218979932119911216873824076574030914719778845189612023297623423252355139903413053011602757863328808465579531583266782506231641956985595622301088076586194921360430939533169756066041910367575756740187471976621972141283000597386422930379120222156423172975652457517930134368644558665141839510168633196236559408633503914393717552921692469829154278970918075887081405095708285690677332126112243232337676392699924820235357415304547223687190187545026170888228758244777208895857272461082341164269476715795510147733676265976195477675217197114182417051286799072784016334544215961645576412651303414812730400742530351499956609636574668975521449567828535979815044906370219539185923621014054179849646990092977613717662144563258690781293435581518212990427245141207948851945783379986845674652463183805769432435908149441625059477066777902372305048658905416192696411918821243381769176252494514994335231109209854704762534605211012530905742194189893554765459945572596812902537567356820623568999566203724289917170627865002191695251748625420427900263702190438602708776369442970816231571264308528411699552742225730055047212726409962544590164600854258702982971665065956150597378573693599332175676282033148331512888882444350314935245930236530127015383144278975919676920975655521619794778057928102058908169952457962258975736039535158281955332910920020518895041692719436781495699597047515789255916447356711455475617284758135498108797801081861544549451355538756693076781555019787620356398112053150430982793078015740458058863996278529634799269332459546686792799003281401086276032992958992486541738510742257806565957119362549003152870953426690010475052487995405615001335505073414319253316937125462123649121011343608912580664134978420214585494549587661127189423408408852986647017975249022563034194430579596249312143492878251405638274870554863854656215979444598056272062418390662402368284113912955757633766350430302618107677088162682574304831324120177976855028425095676515453742346470967527941599312497235086993939461612660444412137136208351117499115993970032926544182111390018138089542286941564901723927268802627180300777018176424386898455424874594525430277111282171426235476672006748778007645680324285312644175599265462176770509514815308731929174071748705657334491491294457225347467052583418735893222222893234113082228576359989408278108165661512603069045657988033627789313111068579689001983065158650000550962512658080890755517531585950300321086554303135505724321407797790769978088518829634273352266800364034416202013169232276337239025644962783748049285463615949153754203386456690594075355419314415262514754357856630340458815566703979081319717110751088340503593864569313931866456797407951766359188284028369381738624364081336209439159883421528345006977614147348896184788090633578918251007416684510463108584550619000080253813351537550108800839494398305403628444401026896628689116897534682402784936775929462874487902613933913799437727891969590520898589262858317652283126079311206368697023300917598797801638437455813669425860846600700280672923650330129556798561697811073200563195182721086523357919841884876332551447471062586883112604892428559003533919671160654989172723917822112064645301362928615600503036864581444221869985080720775990091949943701521714909956645149035947920897201986770307801980363264083040562418185164834105381320335499879770082717014816820236520995422066390434802222884566873958270316838157016487648106085360053077463907255943224144876682655618330398122110425931472480551936634207930059151172314206739077882350657924467054239834194605776638807145268685961618555152842437492492871873418013459612922008928974119982164233843799171134169081269468194527226436208323247400352073651038014324129147657615067008829497039098784319557231759153028858751888046087438195295162222307487248389983454182763491591282823690737945782542522575880135399905520122261784352052592916274680899798133506753615381792381483047665356987966371237811330627097572907249505615789379793190128562142976913849869480123974991897882486802536498304121705033633746489248964547923376144663251303607250144111778997797178716647900634222140147864863296300590059609544772737042080079698486737511755312520075582632951278102876694210177708279936660111867665714718003712246900350822819984760870444407070802946623686038451403728862745283412090951964474196634088694805662083614058283589589932540421746537754152413191164377668851394748512250445168728894037200679618832469856776283550878647883876914956747691280134067314399687615849959276077037295574762386289542848160301635383689648602301992150794047943158919504016285606981929245457086210919531948952677157968167875341035730158906688992121903875987754155958697549064395978272663635640960507602413301596401695990023686525977508779962284129961914616274059496902120944873863366216505110438586295629674411345640632754907583137025719813117394800556984072485623845684775518019230284070672094536735558177946269038214480341977007134641926180795496270665940628075977032877567236846745996793038972416257765281204355894961991880394727076893948572444860224103031445661386879444056688482407958987118401264800421233630968724337388487703054175792228937020694245728819627023398019265423688444399444142992919761571059704453695871201502183141076720238684362496192219481215033603262365145313848112511553586572265067170349750544179704318539331472466589253566803573753547163297324818131002804051522371749508487749583385891028387262766809126974575396038270562507935161047798758223042882314988998670533801268634947930866851568789617935013918475681457589088726399797763856306966074068342931756986545246448382978238687796583221468317538306593486113960096233350977638583804805047673640369632594214433915403244222594583455436580643198737545516371248029358077597955814393596742600433131547351253084597185700174098753791169771491908988812157288134591070353519543121004282100822115753319370651227167545230586574515486544681276278189058862094671531936558564484371886976724581619493621777947895263782427668664059280275104598712559704889215628289346885747486849421728236490117777238012908213291461428344628579434671108455457500240635812273845248378517835464040905238152053607882725662497077363335695181658036685790032843035695863821008483445765967125180419263394155436710412537800052671593788185685575687683684619805641304122001658773230515289592892510681048789616565488188057190758011888058232296702347001424446164078723564077934817723924420490261638439165773449207086598200470959074973503513807398285532282690561140817946708681787557945850078941166463910302231830158630057243645566893764488140769386152487515531214084151726890960527748632307411618925366143640207675797808985538077549520563517206556927641036821970488473884076293875039066726714359602496164945240985260759951778032309984727107677050582592784848574697614612150935009914089437820062583626331953338489981287545550844986156635997863823962112014893370440744321815911146463537195137700296536237561859065317731071618183231015415368234604333313923242807659913025000313017486440413283169607897446021486322564572467509696790742939173675779908560019375776119325877018664254375764393746476349280602296487272224960758418951015477612075033994010461499149049078412330170087876730553647987093834836932380515848677908360443146646719153212680701476553795396498701420780569338874750666641462953899806478398231708280256427571823830801691295376202628305133150826111881727114736678206885726229161747867017344020383744914211234295275307785828843291460936532485419391790137101248349059106283854935202766022052909530474635600878868321232760082181716434613794475359135986628481953289237564863951254156049619266147090484257613493085449224172826674836544052801785488617019316641204915526395321255698597895971458078203929160481219989741326069576228774812688589836935213649206328606659792777692650166276630947861574466419492988444365703274626802930440639863129874485418903048582499732897925364866790576352272795533451923128288789026838210750435613971527318396237767441720925136442274921474973059370192316333762559761025924725371265025380749402831319359346630204261906893278128326077338378494267463238932769481404937066084041590444251366712919055225347047179683908391331626119692793681040909293028368008632974915324039383708136951641279513930232653511006076358169217780587741531102042750724352023558211070926511663209203802978333425056133823025203519255629776750646504715820318893730801947839939104869130492894432556883173849699274616411203644476161540130190128320992162312577384789055917367585068462053357609913681500363965694892256444465080640007450050815449558683967309091980423565661717456850965439651358519845085570654035468743874938943673188317123571706250328778370315508270522703828622938472418913551556441808513750232198763537008233572467497867313103885606934458098485866704193481228049243080064651321917872117422253819104111988002174303784379628059224058347588430621560002112183615094613585729522561134698550118750750536541357149674021059961944421773475871082469730398184258219649417705701956745483315217880306585901660526103343044449911277235437395909589517975843217830580497353266502550029292345831762558271107476159850815466056640232124409560636217595613613906332184000670182202997142125916717773215619009477137118021021881163465834035178776488464107607785462234848496833994210866525987685794801034905603544100844095225811346975579226022731197327589868724818668126680825672446011918741046409207086223646989123881966522766421116503777255600629598212494294434227964523269995072263328784115370287693157152579334214374751315519029329479200421184879503380365473232716275087093868553083286161214555081587449255499076654871406338608783485413918857475692920372928282532899106590004821611065284726120877127253603654687451595531143041712469959443173735206439766835047940276811531352472137405639499254117284052506197552657238357963595050174241115540315716820522018379511124888009785321202416598197334513510490779707956167424972597422831773156045234051812813125495582393550356331159834960911669736245891981231715921678172009718022202245146319953745983421442397391148567298318844866440428198345179904576114442231162678651336688074686642409659396399346436339308631654913945572224720522278635693830486331049206964805155089006177739014436950188232240633662802737049111373981833581596856382005157224634866162366722124202855054619556473470187256932442797273552003523692126193418657855506137411240633666587001230773819502582608455391826186365588014375252796064069596259653654959578972712098487179490652010352004716280230221445395523429751119163431800897184788013203254757984712867978712127161682281582306951127420044295856638710743391022747248683440496981938553018465009064851334628427277339051549142198083059499648708493326910876997735832545766535714679514218117406513496213624800811680321807006401226497438088173846239450530034107970661725128603072532689597010347909513070161445030739631567046876096683862804841028928606103446017698846246267157376065602589383430134569888798343744316675751928786183045107270675771713245898524610874826054019844312797329374705361367164446118792181001621866371331330860688329246133716687224508072788380608062358387950002477251208209179139887726197559268313958153076209655945622633560475735432841865967796423620625735053617180251750915502007115172393290776103437014266394868932516256791431373262451252249432683512052217879827987733256790081684359861840663163074506388885302140334464102141382299510729311783555346042490434864452378146017702738775037674641221678486157607323717941030463395624172353663103078475570706912430921799505176980781269569622149265628850951212431260177779847732125637029609683326627397082382453983249102231709009174741791663501065375184310961404600371059536100239009416678841066457933698671868742094704131529515000146772309382255025927609324725869100724801279013650610988094667645873855300039165287306941338135368830032731911279038613913614539405716373104642921397059580021358094165701003866619977047609555947221534252624809434728055583723130166967304156924796414894145813025829221693564305947510665969779045731962773621919667091354776464462398692443494776790555739641058318226190786393604049001662419891121441891213368165935573997831733381759570318422399315329821327896555769896714934086615462201853832873308435299045297487486014671762554116255417419426105862345744252574827486933129787426544588355724407786906645922504299154551078051676461079573652095989254547828588139314728279911770014768613628570464462334590928949216164732158773546202373391515890335867536175746154129989557629956454579013990932529338135412477022135519704995540275264250890433715656866680798650834936266022133001159657516838353138528912638368770350045532324076632231258982595753602323238127914187419513745472672152996097457043132081925732783235044441276889961199302595350166075766284628336191656860673047018936663958316052143388037986559154201580313336540547201427553484925289803509719444977869224800971046274198992269656603819024797399322991470083464864310066783591413355240216046570109493749819902863748766579810275223855296470578727951092959257896992819099353059430094051420935138305434407448216005876878624675290907461832438955458257515744282838361470562306663868116597024187082825548252174993130258584510154912461047916430243947223871831585192428570617126974336661798867648322904673135687357535929832156213223535027361415049882839060981117243533274109166958850294531654793063574453087548163555257048383044109210367587891663430602954450395811064928475114197211615079924488604557850185360714684101814295724553269181564332758109507187777675180198450120169014594134278651394867026009968347738184296423040697932700693431713761576960868132984714665011108538629606859615731809693128405506965906586265941973682301398257672496745102021398313596640853473148813196022570996058022358397601805307864852023798905201872737939520242277427916630472051549212522429589458443362487509878525370780548086797503535435193494566460419911421639656947752304870048589186545129417135636703263245368115656282957952406132376533627029536039580225765459011277295507063378025906768579518002688394536804468264442632781605302989212047587716116276099872238008397643046624234082896680713300078194270254571782336630587960727415001006222954151532455771071535981455622084546254851675676556070443866194942306097267660855238549154252039842371286862687087892531874738421178870287530455665347150225803910583150171530160752410949441856129058936686811872621662868081651695709569368052406009064999898765252205207652236108418933057613642496810141940211307365498034157230262509236569799905483515920849149309696539525075242730067802530086097426174417609916561128875289963584681773777402823972404056830495545178866041116647650722685963655309850497989305004424859232936524754587250523811743176620097661408776145430705669716402073593793637316834051542404241383354862627037556889992786709396626044915306551840006707913000246836700656819339149494262136957947489262095372246450967160783017880231314376439637355601832737001118048827871506548811866392629781266209055243823090318783587276528018457722247226378693636430235835508839390800083054516867169759501227246307746402543205777477365827098855540785629635571562857066535301942864717961257956017284276111354024918179565602053288706747124819534806403041574680725511260785972557823614839289028803301345185285794408911071569817561973726848936051709155793885091693777713302514160440184033243276561751935038803258447830092733038485390744437963639899853321965990538660499366231386019726873110903875005947922382094434991039298371193548694173087324271934495625989967932632147754443267854724975860066936261232592096069453229580741514438009068613859517163935134100401153019370467081146805052290236108735500217211171513209151723624117969672203616500592841783583123051151550967500099272974693981728258765895421929497804556934804429378485424452715033003629690173197748088640070247429967975467509970851066078805794190158426596916012749595850776178797511639635134906384593954809411562331143683042311494349424682890683675015699039680734824849081753314783105491217782558877074586859444315185564426805567508992812270822342672444306131310355362250244840459688577832746867563389964912904833723634711406529341398670056756631648986114264143391572161164346522429241163338159504918180760915931407300607549520049848315660016960944760683963911968372541220355419331494925401595916754200929910687539721127517278918032254929050396440490028089280201968598575970907926726673985349713667674327197990657762559928960194280686214475886777584812830783979405848525527437560859277103899745065572457241966646449797100469022957596967877752063175998830043326146760151537664342883243268145917458549855570340190356277920714858342741863891994571463934271328408252206395476566588557950426416204486655456909382708010226925871603298185414889187274432417636790548624049518409850922329871654325842840666864739483778881235282976131429514374414288289547113172392357371951088138949324191546849813472216783608566390971924726684728234293282894498668716426474591786286719616125826835144320261600144882685229038756518432248850815149487603247741137703052733886089132191440810140184019853217812622864612804533225935399105601004618359659652788027044788454516809870965790849414420744127272513045986209439156284085768675611686530031356378384785967676822048904045606428692783184380576786748754728371793396877707398906458012221581824621245199483942162545147988890324819857021836796837040255521502955156391773755955812110337696564530745972157516755257264778459632740982754857448532971945221604289212880855540433006786098651711649574875741280297533054315849727217870949721104863378803435829171205533471831883705456151476727251128445456826010354917384113349204202318113170647699248921618480618410620498825959413339661521471282646663119692087838150889429962561039884734347639975633256006524076956187864577426563867387191356804537010994661558323066381142982761394178429684351471891378626342947048199002169003762802770363275653921863554201718153058373418258334950269273884123705563222853224144352163295503222699943568598191314575464414816648549046904476719131447890579598979875859710913702157897316291806519878571381100568349140480868509681855821103150181572411420668010482921096177174808721997625397633885074160833809268846753015045909155827975662363683118340016676506756522534292890722802855241337694325722817059860526315295255399903053175675912968687581590118240465993557149487261185995665880636785390644248101565213783218379731715476152390539922002376136108018395649726096392807293034641403993067268805940547392517194797023399310133053965780747009399194582313003888211174802398585672377440741405910826530966792571533868981595231499620737736437910812405009503139232120444230240414546978139358003384671819186226913832202228111918001315365779259733618698998255303670136908471701686389467224892091049431936366472617431216584768297241936486192357797556325078293229073707805498161187945517658264320120352502180837078175979398871620099949296795031170054120499865614119745294920066789392588771892493310909769166999252059088230378210665402265432966131328638708647997160673750406058084225682560581243663281771502960950467165221464842717562555222839157290961054687026452556328071088198648484682300238018815147488408313172231655013240805714629177643746102375205114472186883082904780379045088921302833463269910707374215795377780329400174702190645299543210223235383449009597272558501651890471581867103857890304464305051655059306908638467436064069866647137431796304082383137130706707153252328490601621732583264381220171102023558022699205459566210352916618207181677233087563014004542509204854036957823047452486024457469835309604188221899788332460642163512112017331489436073219621958341580052293055081213630614881298320336728081808192929791984751084983913084641893744020839213398181969730976414520628397821778600644727023505031735041761305562606627318127495315514179216852231160746139155621908845554535759473416757814572590394403804968874736339352549806355171737470968491350397068942807919474744549370909042322816728213095430965278798108053316984029277851089461513362397156196329668424144714096887044935308102850264163420809150877655727134223159768651246098055155337687602787654949876963881821713676289108517803503404718167582932516464029282113510917372078236848101147839235806479603542441450939140403583251474393586946736538745373386335220870287549865519711213098397396041078800076829640232018972793248182064936315342327167542910128489271020602815697887817055113752726207580303652509123963697167402550596895436184737206473341952858547684108409207658062153705949474736974428325052513839257587468256526622329001523428386665956660743922960730217277854228677314402287904023104401586907023651133037567181477780814411467250472819191284124196440114080293519580636156315122512953051210083373886573944880260694544311130068982484015204352115416584611524157509167499152758792768487184422338221207493574418358757802471567886118087636131475521846486111109901735013167820701454039868113302986038607880893168776527603654778280667876875279430984426793631636987812937754969804954846593255485446631409804321014771573896167147099850573586314833039848220900706538749316175379654967272031440036796707720915147954359311126099135935637175103571731481640058286248110259616076458351417302995029825250604787557633661760612662339089176196067628909265461063955620730674057795302093646010308002994283815591259888611956941677114632678775402724318462544222700161579649553593071751906686263425154858613308952118538944201915972299978871472895045291144839454644085341688716132698966096467330426785596906659102793429697338043632293514598746720920298217028989516632710610225891239263278587420872249043539400471250419430533608673766690351162547514104052348447265830632554390278165318132133012870657246835827037492932000582601295485681769857904015887734359333374114652374785207661502757502255147994385710650754037505336361062129755476576729523855526454322479766306749057375562822797147877727306914082072475585354970478886982068197401004946324618962068058778964049705331823136930704027245277524767014429948876221006661249608356658715301056844870183795694475582257657931075596383327253551017700228693907389352072833139626504923111560562965024752295611330167144551134294396432994243139167681159882013957547610099465725077678337476984839372373281731061838007625324535235166198602663285995930860730317535002307738498651282164754825809471842368537982948674554114173055646571837790439356891075271327819327651177971334708097811055823525096632393439165019859310789020450049600410948948868731364996400856704484875312874268481058193766091055347229120461660244186056611327100648562248180882624843459805726829896250135893144818158437329235310461403541993440079201273962701290232047112792363838787288492833486513730918267059856221162007022655419101781007262795987014469446979835320546471125522699100385601422843553445237535388731126077451715817646705583107065361221720398981779615829651732316041771267329486067926747554336296801826690910749515164436903909700656371575429290474515513884079063451484381486455485023820099032192200213534459257772152205230604189566073923873744894275135824201727100894353144495373484153036654963637342920303326341816232721465976718645292561391399230354123211585240258195424239928202588815115442237977059925928699957029723460625378141511828786937827837171131164299576663622035513878238773160638373196431519717265181182077027885427081105037153040841156775878924543684109662635648136889654828466707732862806695279591644728826916602175868319956795935683853355873654092217413676414015845254110744898466948270400175496933019258809823212510505601502582014559389745660481326749995059788545289317855277810389410713651802733716986858183678334189260909226776166205424567712034667647960169710304632900131204353399686986824489903561895832324542671785043513843934314483624584308670791331711151738303653762336263730209470702338064205633381315826864935580080461537300526208270436302497408140786993185648786071040134280872209559326951039539082701988841363748131459464150954304352718051393905878334647684506758110314005599914730211079494468800424334038389226685539297137239168485670728271364083831072043211903176551410068877645911178209140073545705596447398875554438942848271301688137179276506275544044970168259771181378973629099015740737966376663893605394935685397599243255604869985521433538267379803757196744298957100485365630839634759516904166870995295449522665068531032289249485293783636495470620475893326441606201713295619068245976873470096187870494172461431633118621121962154389112041492837459229408857458547661950242037352437072221595922183044288699098006808779165907773101405632153883436784206764448676506103072425115330175578265963651983380410216277378998894546264489008178855270634695798499442485494819632260289962362449860639805035231210584030575069349265798139107648462889594796025560290451973197162147014078663727642926628068515803547115669435331525773987765538625065382286027903656849963491764327533123783129651906432943846770250841632038549159058070548201298546836216306428189928072667436479937694199992736344906855385590130931998998809607058956469274819425376444515891950404516900061180037066786477384924682929332619968052229328884080518806177109289085567061642847159208019130695100927833612249208820593690425089485148469286871236310751196676985598531729096306391818381870628401483986989991797004093458615184026351663673874610049344982033950858132245110057358765646918443818841738661034011038545312858706914827227356599969305871479176190955083756905638727983572440420696634959543109067353252008988770475229070742753808533041636945182352374275356100904115836004421347657436525885226380608944847629780219819037297469909686212125992552125506134668151219952956330454200812008121199811191551671703453740024922767778495647241534734322504444635905089580193170180113478273493137854299774842080671317679821994308491996136779571938273124506025741371855332428446207838661943482073875188419847002030105544574639249258519003321015180414823347451156749521829229965412785582656736388615605019567695162470547729306797988173011663061403655485947906088526149703146163410771117864768273623518918504109595201888959845732185482912625196104518345800014576751164755462975210316348173826676351229836926021962255021530648711628555843930804535554322932014276896196663213108526401651553476282117053017121680223313551687491400436031833717964620498085232936757364481257005851127143418907214107527562099176655879355738285829357730316891256258081569005997902371235717775920424554700370560037651710264647454710280795000290886561036162468780925544311902491135583002949979252052282547571124789734327687783829204058429263117944927832407328721779667750945072045248904268163636876308547862763787041364874442299516245734676970315528449431445326223837162931229472352533983354581234092297541113007769169793839503395173184997754932143019588076024479579086964734344249199615829705020776746678388174606172568475850434574260720367618984794788939130293621037530004575999848452257454922763675749598197507826503411666421715023720241265461901522527554980788299412825233144994114849553337085589578063806964877944273155282760045699218707062859216698679490303029668356681746298786301465864175309795579163764277246897987688740005196290521519511128114701695283179999007146372470761957350187725713063853851308090296544788971513327589806273906868713885714883330908726078613687339664338136447756718494841928912824908345160639785610822056569112475988819652762017483916058641303843997288011514838052872222768169761361645224056507087666129711827260830353248232358524693729704025129360579982119555055154722564333743969604268857478568830328411799003135456682483772656257776802733934573273720569779543965379559885598382242591624286485066481150528730720637698471047421336286157033185830852777004444364244240820850817895156374646738444480110642631071934950519826650590573548461386556946206111814513813565720700399118389852820358535405480205323119975411846731292005962300069921909779678167122679642749609805865295491101600602730734771284607299873341910097073013770571104416334678988179809098853242979288327905955967251990142543420702814896697341825543333914860464014134672450550760915399326815768768596632903624052813220022344585157923672703329429220604446400704044264829654314176644796506124205783013974766488789970215020833650215357208441017722059479281500494513958290196636975231460498923084244248313622570692747079543572943724879491485128642030540756268429855878190662166420230912648261250873673422594108242590550474654758726884886784453332746787619543417025653983184004128499263535161924174224634435392348650057555914049041156993893798029574010793152372445151595507155499971429263717594229205587572189879789009393852048688686116905797215826596837596511230643831826944597641125397527664779025992731537396841051027271812654852516887330424799303889753408419138024434732169157149153405751002309228000414943573196426447048290511239635369553166167064499418609055797335456184306150090425956082158523372402605645930862680414483415378863390426943635864652018093714506813984550319216625241160549120433925596051353008678186123165487498691144710728469365581994280788921622402473083322061381776498358688183693539431771475777354673631503136219068724575641729234798357837119796045704549366232905850780967135607945969266962148662665912897861472675419977188533650549774772252405367509342644697174668770626858174325689376791189171286336757231844769001614987474984091120631942695514959345233058956349160549087688500942489457161444195363647217264111546218845728414855316555632739033556628322047630338687430166739059173613895538454388291940067955678569041375045397624878381527128835379489215109687491477822113418601835739717560001524548898038648025078778363062069198362133870422965391307056979889008924986781119990550072205271042080012434431624821674781458472609775227467173305433910355916139042906873129493540742337915524346108228842890233705105982001785453752757761060518146612711512227693934663006333317538058277150016516801747948289515659513710058111921571819108115693733907555913619664783343411033755122375870768394650867310635020613803140828858329340814374055023241998257860859848236370672826655661287502419770703387203876939939469304149981447821863174867900454130811510957125733342590661754580655679045473993171354104381823861589647265369509766888834428889826565008952581338589010971263023535809395684505480973418003828726901907898300233537323479070750757652163628479901540952692827277988078141867928089902628167407408648983992137911848822059094379548984064748240417968934345363577424515660195591360112904439459159388841474264837010206481204008573337498193873028013182848014399023042488441933746768892696041436935295664614862764326157512722939702780503023451266432409554437599708606437086657173936516510350241945838259417718711461946314934489470451096771712693303061273730866616916978673026691321377295629396410440734724776299439367072534148464555527721031653170565177002354104731475000734131059545859458753935363496376033116955040640662715758112859137463036571031734885000012996634000484846498250134249245298253832866349253660840292192169386187351996707188462830095701315225048395845656318046837834691384265429824458532021986092139623954268255776512556106045146292557170916080061241957151747905366657889107759120206408308423081755987023746548319380249247299374527629882639425613994496800707796935996540699342718425982940077476993246008782541683213740875559625675898075876274509381123634049944799924062923281793656881160034687830784492649571674811547372019574394569442231975017337804877087397358795682751664185272470787838123780598878218736093672431185924998084060055721429501021256248503124492751705157688293622808007377123250111510755372393722053942165041756592015740810084462923410542660542654377128317992551156777286915505409832954636275600029912482418254055001983447294781814514018982364335253643545831453675859099751180320423231834782793311046085940657900142642243334261120969577665672456183203707777658680129235303062921007139692443044570348212605939933966778662973891527971618929082178117046242148549472790645422574320499483560927384329056680597767251254493652278852612269728028343235526091211381849593615226432688619176318055692946042269230604748304456758031472971815328144115681429124638807597761011109249240889524866247570024754813971420113330281305068741968535676779164285450864912774017877243749347470271046278375287582081024898420879159629196455486046464067116023241933554885961556959010000591375109569052804163933426584002831286970083438852270603547433014793459916902367677955200059713843102598726274784764214454091892818650168033555964041125463043813359441657954716152260729750441879969889649160404186978088053170653741074501020563856973777985662247093286292526461349707014638024541250109515743486774050673559100692234032124830144306361958151527067978825412547950256506731332530096888168889029046642612643567495399989798469967871209662440598743808085877879286209962479608114886528650288166023103234876377317468189387263123037266958175528413333451522443476904232112978544130705872234067563072872742070529759835034134539206545641145398452759817700406180358527152410508765452134405860512661101743628027870529093817117625962358414001038881628338811085315275232373068327532830277770339020525661988330365640891387696502758980217743272666787859265670495022267044079255857629728347593827560545375397483530134319571725912588700078722400419975636597869330303697056212204138684052068056841665620882936046564037304751496856407209840420045293114630328970629494463790753550726681172746755163040898162984439330734574070825966780123799966838702758243320187731682525878373579775165709169042238484899848292950197253945463688758568826128495854366238795046505278862483344724882630852190110989925147093611793759592717216917815556949669861387216334019458751919936676358299916940168260214005416277561687481150725898924652694231912886409949272576577795591884445793267662909838567962843529945010527521635384356646712918733392470367267631470985027775688206099955831737382861499137355294122088063140335299584358642069425612247262347068751456601949382628747867957205656418860647513749659253209825961958813904345907367541797536383893288677467981996229252619343126539339066637864131930812088839178742260306701361694272559099788366213563118939881726334458637891236081379474085323847796538395381808227031531695094954482980618621460121972659811204278453011858068836093626693121976338542632648974790720233057340080084166278830506989100155086953323742612502321851870683103322306299940019054812677617611037315745160282168957801066849672146116577452729479581234464583765343306418206446624205765598009350344236525757967882531829628143540610043382034257847574082996013167382535839633382808812331831249764096254535366043015187192465481315000695803659427703935580924636096216997131689790629917994947010151287885038167359780766243910564227451226133359177923519028695200171075584346689587451777431616539444561216509313272979364525920714199159268431318891825486919002188731631804737946337550699864360787950188815000460789886326251626095380230586480147086155737625915035156506191442292432529036089828065953439388762389126859940514668165960185037089278113622394909494711343686895590770691268035849445355715585833534074512527773354970025496179513562468515794724634381465175215946453275514816090155803431196436386599731742881485022460950512684519083739840121982371011564566575612561449514348907607077319138508818661129113279786499555690824536767547388114734522956931181144779911744171535699220449036982813171693089479141832856306066956798519035053497331272212538254080695709028207617292344800770069040836792441964531768711799931811189866519745969358790922990916029577461784970644680923516323364722225840141580430228708848291669557428648703702515639550970376108885763089856535425754980793743710258576632857627429216110637929074974165888183908472992028000367168727162647774568101056427544635990101799016668495043470262657791742082211715635282146967303941019865052405975120638893710747152204952481145777490471555460930173865284573200157682595589028855954325117115275834209637751955506431520690368171969194940773847281156277767011748648455052977708685765374432870852815723763537545435165850759960486904923824361355902548410285225342491754820927532673436736540490943028367037990141465333574258969117712612740915452381315811038180773171162180293180883851873361316193276738385828155835407963411459191552629703525102057089466176527606344247947962109561734555707463901188944518360359883562173616251876649486191652373986237672616464026411160864446552816431652905505481284339968544444329517488331998984185427282721654708939782081459377763839374470326709051091243207834694115645357826309384551896030497929679457357375789042521628877309902011004136021703575684008970067443491210602642959220645069358099606921616576075342405395399717995093099500693702740809794369388842641817139518230794811468335458388641465578596029737919162714234831511365888177666772958424429376880172160245228180311132405652941398125611290375318498833507771566378979824602118215097871035145326279685292326737910377974553255016797702716970853716166432285924311281567633160895817497163112735539108836590417191229395509996285321145233920195261046940646933099274087792805300525858032954355466884422533855972791203053957186962448013887505235113449096694344267351253441766788249179950648579287967426265214404668110139862713229060780978025388769902904145009522481294694158515849245178405706748640476205053916936967913028313770056387948355030615215800390780677294266143576215365620269811183712807816761247952007433756268905600274512100379695660133793146840345277976598539989441189319063634000412660683314427203589900059453774260199909398221767289237598690584358473529074487826599675399139230564629061426736096842942287568784481188336840253171621946188504738243572024999001164672050724053463888925892376792635879424902510177443010287427759208969322685100129697716905609904887885011190582414600824973296159572174060879393742922236299707778559973727205497041046482170179556756390891181792397626118639186673558477653368600392053847942295903868296493318896831866987771479651079083996505649935774873651932091317702306877284530945549935332278281953969806952420868488181658994989214926175864160805646527397893865793064643342792052714841372612758075660782360586492333187971970968923213528654612219492652703268991724712584744572108691079900141303320816444783363105378877896539713928738450660604024504624559493156080898320882323595229452783185265546762321971438488732346974713678634118970403175570572549485934359258181564069164193283067528946427748932908857450862699065085378717549848230226438414119036792817932250826046205658663964314617993981172171752138254406148181658869335327661801118338407781231830473016360837078157555101981191167339807071611667403134280837019416393532371192200710911632787219701206057377534449414068454791151945538515161861197133373723089117483849866785241865169956169497327199968718575842790438756721098765015500679534757397420304144059450633118606978175353196095975812809365089069789629704698046743154534601726056151743679533862314951487280079697924553619679568587011526488758507030836078470368215679670531153350546037653157002014996834263904276528463688716605005548292071737136575974815998514562246165803456439376814701448868542459354136998916638997053430836987678101854732174212960138832157258879503115584163302465273249090359503971191706904356028281262147324858429649272471379952915718852275741380553659884879136494055693002110076013855659062416390903543385157987734095683029824305796716443907363700477987574909473324365895636201010871321095441530878422393063321114731854171548721693038060710344750041979794832222226308791700871773260659971918560791643913943287371764085068319710857792491976382003518299794305470391110667288456548347299527768755992292260206644541730921719731536430982450560556057249030967088569500766091829026018256352039887366450527455233360740078513174444268798787100374714980020970178490759813172679956588952164427857342435119338008763944606212717097584391679866042317407129803692568964007473478564298016983481603805842268089272297531362599347556660571260931723689407940120963995170040072349695236642078874616605716325769856571571361953411932922883960583379263403634296320816830343159911197248284162835802969954236090799212040429934831629276634845682431435751366960111285789098206488837826780801575986594717547850256690886999330816028643805102379998377917350911497756098575035153063790548694063037317352903957685555079464883466569920874707010049331651739705325593252601817907335780737297270229199629487378546095824076730316114353875257040473725373684357585051299338774293075351666913914046595055077552913340101409130657042920835935619072223915007684797035299983315212022518001096131977703042090080709845535923701549453471449001195398660459100462204395849358447474260223922619633372916601282816665008468770114134036366801455706310003280477948044347060794367401779572583337769994659877123089891236651745891731987774408571313752416277603993535256025594829659855063393441943643956339546491518998202005457534353315516699549887436307976308211340662456932559867189289507984763500895419097806217788566852292931195130640652808967165224838934433430904414642225737802730085248800753352141167875777786026238024409602946498404751298687854987532816177993930476463319182214632468864384083170434932345818084614415467030874949905105131457528767194629618567343470127521528957262366284991605199757306395598949039546209944777254675453983439865773604602520368068086287201259699428781190039803468196071705811321276326333088753195105156027338691168054466435829985684659241313652032083442899796980908778862267336301247710835711034172899085146066370875673490179263931892955380490811010446260709960925370060043978038170398325831342574207734345769223936183587459020661182168880860997280619841615790692851277882683317537933929187357635833955548935923628788849493142101247006607793699886412281266471622197185497465042167705430777237636060506888940058563833918819563226325528683255071819433543256762735995795858878434751420034757291307575536379221066933771850476251770280643074997742237044659639308171906116409127891346495996916562786419492905492148225537289289432214299291527912571254347003743438514618172527689569560008846202114508209461209203965196080408294070938210400574458170541721099818496467806597970881080541565465883375538970081069813718812738369111250091956917693457938508446268314112656404487636133502313034281376437872572821505259867133965952827832276000595272820827047322870210870700921230838839860451604487826300991676232710919052601975162785579560240600885693342156618617416739488243832467834350421393319934849822854437713670457870192833227636615963044997129582410365948551661479161188558790676917812082374266173550943972615222304848724087873773692935711413916951575071352470375175383500756255130251799522407019896334366992089521808399959065359404946522961620040604829982059901809039258748582619667743021077680160201561738803058820365640237800088584993677626724609329340665152323221082707976561184694822525428525352117323125023330332072239740344828054084346593080482768730790913668750106768408698489675461167630740089376651091206361317026533314834785248490997505071443610231021666320349630283345905742063038616402109235487754790389516558955264566685968725771512207074242123846525803048620172764582936902662387114713685591195142117480232870942414687269432020865756465769989510689419391396677739568911036887364320942266355981410555788219489132276874298553239156296042460048314853875172927162559630264344835989927497231028939565243196852589818014565113362253137505799007008668270462590800918025706653292979961023510286401302247796866358872428457684986430977835787498651660495415439158953022990430653129433247118003134571888776755881169756261840304355761537482600082494152313276056401137115976487007323261402609016117515974442646569058601501517723071107476015246892894017066634489560515381339513126918671728824645813509472346661172614500566942481355898027818122999132217463259272238232053595797771227361540711116254985927819719040556036090191452597445328100423920193000642042311641161000740469806267304802061140503062197177522555225476148284716896305724255697759686893333312276678707502273259720902953610866998739920233159531814043347531993040937772168515157650872243789642322097804173227441620284388194734807248811115650623082932540503385356186073013881540615389314395832775838193891899878788700532719739239308681401630130740291927238261216792728059350294839067061468367983281244876013121583364331971345478921715552812958513435517403626162863686099375522957119207016742712592914262894662100259894325991580616396061600729715835040675417565600148678744896950461720703236316467340849214434358267943790125081277419165809604988801874325466357025934721939876603221098762668022947907736568938123710901473243207770594218278550076254299167712363482980420253109474624198374002645570428393149929280116094631665598609067845727033301999127536280669749164513177665992203686991477951200092997229484735894078156021531953244353280758964900828681535441967716932730304449106067356001202998259889793864937868205140931250304055956324592498775999279921778667600874861083004748469977401261030363059573068910804676458087901585420791310813925850988231447814917658682224525194087603682563389277286221226333348839106790443832994875420982871410567168406767175599905664234018700066643905821316497965848737272888891676314885708413891175084534669322415519131646120522370157152498609568959745622966454012510797144435699564314929033633576415422174353829361764726284584886929982363155509478219211200140769083801170599470954078821940697827907526129924389995231719300953088803312920333905804638172402766017271648917803808775158859126830195434558391477266373500204821764255040312229608985709548001360196141125291261411675863762259310656980328417978201446179329463700498498144712071966454236852329453632443183822493284543112306130068104229816139532211356712053415425661834151685920243466931826032291862559230545581146946281803766991525120919233084817504835891697156258539694031308983328944652374072508970808833263537595583584381787640321546096094501482468698126134741935300903366902826566602960872779239003393009335395232548974426726303545105121124175047161199920152365993219330018130106935823557381608573347331529800162298160212937861993712309347412819531261599440886769275874334423196886905515278984495542265377132843851439029493579448128974691643481269112755760758345476255921819728046187111029493557513212148112409392864166657644069763770068329393106557357294824847399727565267797591617082696433218964647372974718162514745803110511545370460617843931027576114949168536098607339480346704798287078390242301780716931754867095049059461499518916883408241412466410644708570040774259069857316725589513325665538938500365226283228411130936542934921629433657599602019459120755092720483523450152735241897349584136943127434282124847081739544442839910842891214781734051238030399821648817218487802103068527270894829759093344646595313704794362683607994867560865711295795890166525738340340300819923140272209346298470126401959316066635910138920344619182608042243160479131335260271306505333074004841347826600033534660443956558944613339811287460439411382862221543486683061428410021530494898355939059421373390514262240700410494734018998438729387730634340757666765485369771917043643915676864647799490701650987285643853698301473008502494399807210656069895608273319474070832659983529812744540470984520507012317495874849729410073272884432995965387170508425767166466991440070138635134117044835838729744956523427613000392015189634957305561870156797647593273281494782190630959127498667388191267464626825291826996502094488939246564164136521907837804022263890377835943348164544472750056230858200088487205119747321579020504169691748305664226161409486808869333795579677319354796052101529075548319090182481159614325571584918194607612362391575756407231220033714375826070251657342439018750122986639124517631540676058031604042030489151081183907211607702912728490118839216895279465614591859696644947841064651384812829858381677603271474383016415823465334929961249348710250505374799560143285153956681769579838409858236136540346478668273598177146499110371921939202395218988875726351844087118477651501974850733269999506686787112649549160758004641379334549045170075635718934655808362408798505318804396658454199204391501500459872918405731139769416228159828586154892729447874040727384526628454859885849126759985111926868857531795436715192854562831660232832864823578610100825490435689001846000257883813015914786152694785810994742634738117573299295756606113676795179663981130677729229499326656046148407765053595582149496582148126615655407670856072722964209833649829023927701517678174382767995075924821796426282802279704671511714718407549599092002095061620231617529083464893394573538112138122737144278449510688275971701180449647932820357779487074786815772154224477832401522858499698538056907580811728524315822194777412052669118567428071129442852866116339257475285381297358896953814603877393680483011159560453636400282262985811703531127251099687288613710895751210372357885830129293359646160561821479569710952129207283971385913487277882257241950293456323732056149160549993053612391174133526967029638536904923929997583740808129795177244601453267327757120850346008035337416023064788652780878814665678076673512278234031225499011488547473071201013460327649226651312235600640444206106059775883929672916397729394607356056226445311726367978044117333355162350291056751737265781206500546654691857745774124025165507050504766622272873465344293899713875757917911462476387592497701269732399956148002322913705578288676735776453417949961312280164747070851652551185227636304978809731388855836820979952127777734895072818099512497681559681537501341745722285877965470210591539926742326206631100203621317351417561753253863045624371133914802518702148540229231084311440579336033269078734280669109048963766465586365212607588546036951279619012881022336621531296498761291733173810756539530583495028343684699975454799400162428804082534262375722606214513076169753138462407781308593377500287389117148033505548101882576751408490401419583476302432717919319775809686643315802970617218848752523267898015431383755522130702229016105742402433626566575036148801404639480090721195426599603079527218578396925893035056877998794271370500501321893295800730927371753875228802282684605315969081278153964328660259097075284376814293058374998540692337677489878414065823032321389128925621505395157981311658301300688097418364809466881107049367000978066553240242425179360358038718211240378456477872724600722415288839597903264193630438121562649269891244157231225790176323731359758544751635238675712771500413983026438043083732665477255205483026379565522157147232893606820099710423189788701949989541282951914808154939987154516110235709298320722741076928757587895731228635218443689087702223258808730141209492436607102225712802788750019826753828202147902195715253527504311150869575468795043324374123931082022146169083633603440408257643093341861930886000537971960264182654144895760072878976551873453930068124042632626458770129686352845742812967526049038204891038758977226883921856594195310225924690242499989299772835819364354525852197825224560535148237300788426484014710681872683728674144567109068277973126408598045737620269214542114973843001383523629313560759853643635031509829230494308652751077727724061056106924226125782191470707155813641247526465782784900411212501143556194599627342850483714688112092772100856618853381001152201043836117541980771455848193408719854034622140641484648009073636017878425903478539747585083341372403388622049814479583464436692202401042289178124800198197148169981467532553040926805995115213782357078794001899965131271085579986621665319457463335344594040999410944211103816234498563728680027640663636389799631568832018872600899350230855353822910088588355672168379607339087579014793004583795543459945140074126214817888145051288513683495341474103420411210078548230773917013184448479251533231436043160015112066147303189376643683998400040383107555752559802788041884540959967700104547556570165121878536500547146863772634466098791123826494879572035647580638639914328859893696697811399794839790275445779802905130239551335139053805327510159239303142326005478981228422390276585295969052368885818952419032185772693210120098831125864242853994921314200534983374936539372990485098260835833983957112757440112579135990897539035683140829331076791938322771191423308629673932622781604384419000670198688928892675725778477352429900443527164011901460576396726652548198468799349788092890905095170767078485838761400910228496712007500783428782219634978783932792851181057453313513410815660365034722263982579614027504225532607366868837086150746444261914856948272848391642812636809412694961968431020294270235691951003840096632168068055687282898273306215411881258577695967073917244136963595870095906522699937760122151442720536343802176195851091276040229819124661927924784290309134287375287779404520360605274937789801012237594491959685142848332666061796149678465996831425790059004792865404522633450770304219338691484634151357636662814354140910829812513991505375871679976405621007851450683337601120679929346362294031877965633530816168688341688663009151865061854636761399624629035999958041918416221932478633143589165817538658226051225207875448841372512396397181493930649895145666446244387373063054006405372243914003779804155101142815659821450585098932791955174725572793183647486430266035687968514454189417111494787288960721783007686592022349620692753507542208672519069369041325077573576086674011440097981666401000347208945149184587633175653218310022097204446380593857549956962804057001334590243879818536128921539416602958199859901220324655258780095162608466892772964028777938060204781563336891187408994675323087164400960268541658896587033462967917318217937065101247699281681630424028610268218921884583889015908583471086878595507209197967839086050221419359308406222202024800399492044153874182738186262115018384950473219838154803743841802325855301623976161269145013276111869775362680402152213604375748576213805007047751304034434806293402189959389223068471592732071086934204596262856331447141464289732308700941415853719829357980089567464192201688686116347275833391997183537414025582001160519798924441949762852824147229929203730963484783937999669094245396978212114728906423277857961451625646122528982044107846317568698559102396217682212462821828605959144037605566098659982490168971679573750782208798085174034995537730474515372728471025816876420995816476048349812684719637875525621055124527133869623326222869580962992672673593864724707792776505521672921342360723281060444201746930246882381536791691217860240229235350904605727491095700196195212202949096279941442243111353451259656736090662759864211507541626156458546759251456076831269023221601124376094522982512606671875933350809215730174015691119349523602543623092122959734131574721187278564449152096164673532330397383800804964094098722853573287847041475011379009348301347642245812519205964137942869023056200505837211383926500403554384410087535469978681188135591752143866227549312538471369498041038576739229059383284467983340915898936141825714550541668668463512888254957830826835719294273064002699964012096121249229702701877833128475957301124304045253854783080072293541141369989544508063967275188657856359765551344788080514235695562480031884549613065729302741222248064234327988422199483041870307130865250427977453456990288231779476821354671434436000563483592376620862634020926762524151456323048152667806243238342341558038487667495538568809508302964716666889267907572167527996419243522429558498905748439468670640650445427113429249303573626282921892395611824881025222116887955204358195907000278052823661764593095375100498772302196233892457428852522091854516889009732313375283198067960528056421642654853729418896628091501198351006494227864649561443985848938355785346276869743536030125057808212109092120960538346128242430617548313644203151675489128508396004900429296873575424093290079511091148396976076014756091011808585387185484067265150008939420989551636730393831148326581717032808857276371161722428463718967004900510960854522617469075080059159651920642782255223890579064168147112429366109447829973333533940649268817909083715125338729594283394049778543585606293739582449401199268843320448237656050618522266163331274186312983144543946705310277154723910783630184149329631464758067415959009018808295514313796946056627155637961247857697832257143259242844204258475407843363466285707974809054918442344387098340838103603355563153090590063484628835789460198638501783676463696636741903348570265116972843301870225680371998390149454738818179300338848784803869752914733824603587874563114119236337057575736459653384447139733309646835091216976555191538050585377124436428466486290079991379934903536279508532820545199715380062209447479062150206942480698973896838125138388159603802815580670853894215186475589976199669241425112431426827761340817007270340168080784558575161071715937966104900048463541399444670606859244940326746031399709025182397934809026822425274534678280026471302498826878253910730840976244576539729159291599952355821803516335093590742330510062850959614176215604274082635886609193236114898151845485273390056790945524057235662159654293174259120818324504971559333336411247704825008155551649017944026517609319013840857689041213082877447037482015652298626769161343181736357373399686546853607129643799914815817288243501933021805382008092348178843339563935559296216788735719140415738672585721024284015616143370483884009761362170673044791882163751736672599322391382768730472841922768011759933976110872190600334312839699117265186392749904850019655614697996082130734454596046348454356720329870001521193051555281634961712377320488995240049336400461191526109767894214445814074106983742325600250237290636064704080594617665838335706456138196865248065445346669491999575815271362681434706667765457142473499991211801214274869370515331606811928647461758644919713003084143214289838306295334481905543901060339063608342959213715146337580186916779530256624939573427186617716986931362974302238485576990830240060460583882394647439085396710665815833963137931602178231546337502675745828170045285407242063695401840047776244051247531737493330627635833763667730836348256173301718831206078853302206592280931690125380042983333297225536156411205439430132765139101815366446830726387099826845201507007714576418944122927196641814614283196759111687956539376877572547406379011853731316548446063942723750136381979541618885145175456127024685128550185384032987151280843201524012432437968591578680354986458295304020861742233848638213863055630327166137915486558848634724493251701176979930036414419155463326373186352476197184519274478896665719409898959630550599959085226263067533093668777627148008715221824946544897257709869623914142735882976951508732407422604104215309129553938421390053086865115528574346882935252735105612417467827791708068417619974177912092760789855536098167916163442460526366310201582692578086378109693019199327720059652461632005881186191554506785091879293863888636514596585536933865652045482229222341207169157183657707176489260481962500694253488472023711038846889153377415708183837092280937752139433462458311131104809870937896423233913940003996908926616067737971886135994130553599352541898470633060419780271475953184371309809977260879271637159851244604991676053471795136192584181480105702656059586259614793281178364565662116169894984708497321393390400498203429063527647354226613671366439979980360090263136221811108957800938975115437268490854405693046392515949679084607082063166125553112959984003285856294195120822571393271800985372654335744911547831160942272666978298114053227503167789481272675870652338282023146766690516426030733260554679056350483338223011158948389109164399777058967352271185175059400982969645800429976178111969057462744338512054260409544316045748951897443350732870770220798989981666402147018044765648000141278826581735789221787974625355739267535261947043942176597617327236710199122042703178644499979904284996595429376310651618059652960203953329588824494865523768987121380572000595251696510833069569757808984439967025679835056495178040233897115252833706864136593012273001832150003857326722555953578710875347972599257463319403083982874939792049749735831750400808693056283429336006009776510104856389319925024184708085919617960906644877946487605250793573925292521418082529492538998736866619055496552930149714697853070395767669861596701635792476747993880806512556901511769195415902343790041476273737091745035816834769561223760867148827333774664585735103412493449077429044593486069880278022124906286726761159205327366588606056798632107294634370457133132007955144315390446562155969492179819464565224828376114088987094152755733527875220633964663216598698348408720131301730042320030286754098660917871896418459314285543560184909878390848761694120506223920596250718091061705046115405661020061540457061324559340790606255678828721093153058606259291573620032593153074445925866698143000367662555499773097606560924953072324256177057156056710586841421293412919553108161982588125744965231974412663135536141910272354397913578072893093489982323708254489129014625051259149765917416063123161978149830949956785179274739065698515946749913754378680003358039731057241138497518511667724771142118476890761138518401018752996957128456176789921960531983528025853295563390752050616672463472240422847882861172578151258578393331046668540664917836671150678642382823808939774371622603176391014794371059254841568664581025568696091989836855654104428020948869984710033131222352841551293177492281041349230722253525792764189649733575474875272153674866879190754028070930215378620669485305399554302548957506262278658016135783882470025870447541325684631554432179327292749606558411299137507632912756671501066663213989927266547503969034123636944741973955135119643327940953792829197549884166164934326185223490772718206405191305551394411445394009870794958810342612059542560882668639104717703605305909875226164380713410342168424066957578028670687426592073379247782867148402264853053598508672894514911715327518805615121769738205088720574932494216319831385414105231082113146284983801562645118610366159035734818045928365977918905637263081117186630696500201592796629589811674359294679821226680806919956220809716312870327810837307296078662960827980490373903387839576108510746945906958790470678761766524164957070682244649116353538121989368184814322162396424960719104180304531503953472181288918015795118050001936812397429872884098694550840148145070282031717742121085294306262618162859621510806182440315433396918184079468442030434673235329521394061950366117146271154162719859603031351754048072218140929863849698501843916353220092922602305215168223363123899154522181403561196676778821086267367085746794162476855118357610851210934327166032124758322851667722039450941947713406769706326338870793026512174279416220806675406742212234326082053802696222946154428668231705920684105509351004594029906876688877149351703864654855812965225525032337155823421955279616342242784921843611827710609533901359388799313426632546045035683349356840035448589618850384596299973154898772478700482391416079826534026616631884054936763228953400411768920204215717711196814444792631150085178175002968198099547177505716445558918341384055380474751141021042660936005010576079884213254710792308151360439490754031409242428153607504175723793266996644036850255809530613355250179645208479992304084764791931068697871728664910371616064946507410064429791593225593561548761306867996630805245868516888148337913166580734641719351993064862201554054532363713222538481049516757675302039894251659009643794024258814104412877458596748388619755829088294184988489297941038844488130593071029317592496018034574561825887004054556430468067035792398785890191002673945070327806706129639179233851663586140243614380795955142823745834850025728815235125712392560766346286650648966997551052823883930981673240851767529565758589427587861490827747103142386507360291146541931386136465383206562046050003355996162300724334707549481117608184516588652664921892687584402506300133848928489241667421059830793585808594580942886800598866470229186106076349042487561006430865055528623404146888220262773911541891499812870608734330445105998744660859729038392557564859663422741581090172237110966447863855373388563231250931369493888306552794287096745706878156516886698654779962426334992510788854106416811601452533634730448329024570422873557260182561105850164931788350632375475388217695110253774438009325112244331001698265804119903549176781124186876426860104654895036909162142454932804526236966460121513292682865642676952537158846125358803449654402401267960390979881035971190342374776061402773923764369257538436187417158069378853548055586085742003548059350924038197017223238543305211638153122073859806934073093709344486018655463511555533864477439118635925960366993623496970073130480670534839428221272836716343319357579961029403523136427509923352543732403517244294418603378875810934029744459132854063076018190440580709907054773101891522768323657432307436311621636758591609593112208768492856818863472286586742575961822772235788428451447784821097650584737778462169370724544819432092191944960091901455279251431167702464864079794496874946445707544624179973222135231207368680264631971747568395006223832469585810147769711811883423766156549843392287001876915909102561808903680433310601871803037021341960030530521859635751003494698996189691403545291932666167325121320600676931444473030155679955530151808540643217915027199755368268633803061183451191311097826994592970085090055225071816755463498867300419163241559120848369063141719759905214309580445871999305200075482273971130810788997546468572211108903695327793541445477159014958967978516024434655344113743379773414656492266931863636505416811001639840680945595106138215933377221685611644716282059577941211343121070271966233736648318770928653403470554581311134680792421715547288037367668322906945796719416234200662969640871483281595958530618306645830314871916538688657104000445246703147672322483853658952792612252534961952914131802841738396148039952597371445334297819687732390605268408362894963322436536729190047313374873885900084534852352663218933068074757733759150665263604493590360682223569020699460905146264378863727631924811131442729398415589092910057518401099484733844523284686978663555470696785639715186209688380870460091998873641060073898560200237889506536537538853695335662341352994313698235416960573133627435246156306879621060360029297752012635605562576391033325053143620633424910158415072216223429806599226381032494186641907970793173692147521249558135598543919929044335504832930081877524783925552006341990685596382074794325421763403832202631074105675716856984778931715959107117131555589638676504975047290434412003519898553381387376914816317725611301718539059806652610892763873954343795968366567168013445702511283045395526493390478659915486398784962879026452071546819515660526368436411299070034225080949125994411649631074925609066352873216513718429884121078244263998261040864549157363602103566488166209182210261679216027383575466234451922758730769416558751412121050677168151253025969063213628700053938130243791474733318828176729648761628810715140369729350515540204267257080365340195782986828061963764750794096078653038161546890952077747980210954395549705489838663492582990458922317745605109186372837709854456209613981186072559713908570257815973709692148736458571110749170877684299732373796078505368032386389075074876978177614732755504237772712126361974326744443329711097644203010623069012773457210318656278900641132468766230965633079735446151771909312027941684116279031040779790982572267028173530143461366940734174396476983058787179071390066534456026836858558987572556356249786101634268047694588164134374811784443144336359834158514053166878201086906908893569141329498429281718024710413263555803931773515861382957670686061918264850051893448914137118015033965226437580043912416794295794751777802730763853040678165937096063275030473648704208492301055655244222401665887368589445462559588408418957708295009252732145235969069269660709455603755798133225622174599629912075264538137612202353990688414431709496462935121967613124801021031943211530243901689867754773289402158158131685023418482302066998568423330327220829745413741711338393979519184359593813571214869110561835367549907196425592863384793330697589339006656978973922250407429243082868531475589304778047478889055301798960729957865943096088071510396277114419590764577565818528068577586832030257910301291763648336724976403620927975112973214401028501131224629692846347587950919324405087316078621740100818753482093982241238422118683181794893585130884234337655482279274506860458748276069252765213018803838823991657656374840188290507641319982174626336530734741708601788887845352593356800191344542807784757876461158738571890438406572492804148965420498192787227761642749380032580049023520874528677051728440327069352316346111854369681929759872554769506145725362988397873842569315348066664634372082704523006184323635043865434405897985365139245746400092173456166764958327682862211062852445824662859200860010676478733000661151254774342225686811553386432459893144300071843323825759661575647825936015708921288433562610382865181321754983558322711145564573126529254395084911542513538459068213127254994470447493801485062972529088184625819362310723620130346032344552660741578664798267064658744514388072847966370627653924299745869659522111176729497295993232035521072944757795294585588838854920839105585794591642144849763557787396284816140444954894832869634565478897142944853568247587962377632719193745128113175639313739619306739005940118392820969570884519480189247059296782433035224293149341100732585340060904984884859242980169313280880930353590326958152155242415042986910092745507707147568111698934477553619374957504009659354496248145910966625049048975841330850574845770757973760695108492073413610468295235620119183539764422722838359912940544138827402757962541364982055977375012856018251081657316728303110371860269486038862051164829793722325056591832945864486198472747870845029588089138159437291158661646563310746324696967572794121793839003383213976458956959347712169848151419428709186784476763264755714448500806526461765550976994504733946392458474077701172341531192453858549261657914806188367260311315015001359394633796073833750462496122873655927591141931688709491359030383820587558193344344142220083598356563450097392383588461216525656794011608010010611880749965211085364342918303041959032012786041451018756969496240678115611028371122743957586249016074888713265099797455247080934545586154096956067835698569418135512268704677962348836950539439310413227102041692544438648157361451146888312986122868179859336484992076245734440877610618291680760880401524605610288089414102937597890518631699244298822261238534416466867756689285609868711326704855142221171322973357536433938079497760557977467724771542798792261988426135166699887580910332632366652812643447098522029939082461394751205374728090342049419215915549885114441116014439977178906857593808740042891270330653839899400073067200151514396429149147101630417463969616110060693487721485048468390558261551141702861710098623249522183989027744484595123228756676627516806997459306248212294520309014571279304155908955181837271216072803880265694090436126971147464202651463960225767056496321584445193958890643184091015502680887772171310912511378431410175035943467547412393015781586360109973676029648665423976883007512389127122140955366498662579169122247381135060412422997239058955790985784922290158679190593514056546648379783996210283790754531153141845995140259703044498996436181741581488620840779590575070500251624398349086980185208079168644932365014196378669930042978976139569250426557335355105586522488840696280711684943591054464642748691949698990216635849403803612326710319325145542105399337260262050811556873537828837226347742432666278318822986053601099543440811178928269991057627266158341327743523645921100264621603318579867721959527618770888337830701672759071875167537038812144973018652725985466120890355376724142401927393881559840771664723776041706129761765230161529574053602092322346273185676521078059563244665787441723467950552831594560190012016806542155123417552270107263452719336545448288081465475849893364446619917147672784703760112552114096036613376602137545990017035344595042611366529164884042018776977489151989111872476924733272512243500921937054922365101026785036120722878845140677573650788685996065229526317143360456520302470536142455233160467955254102789915930775743894715681702300636740096526352136363449867720860139674791087636730435369824044535697212153134169370042080871516999450407498860186811405719964128863483773459882679273515353963580699268305337594834404455580648979265705487730273505316695421959591646372043161098946009105861679128595826126163924336288331345300092231090206463667920166994423276979699327190947860876596229910681107078197220634133622568616169851812748281144328074015185876770787942755252110751358153000639751801469124112487537177716734758489491447646950699869234365300833369397924681531338986208470138251158443636882977896784844305047202365281043084157558355108958498737589870699467623908654265471597561189911655240891528375792329885003892066746981293702642647902548061904243139999118004434504563380880332457689626810602046263688100081125642015114466464838209793492945244996195480610334147943286510662319353213872625667121062419212972892429436575615461649954021744032204922118212332000762010336057813986830311619775671930395086749105644326896440404659748423232378752948639932596310092389957756734031618442806193812809498826275066935995780599915483219516595369514797040339593478678875904397837184192970981295524410732956803489097385625618794029429519297201443276125764427652782661651874240359755438864604335740830231436261654942341480028148360497506836352400255563682441925818325403259324055744017586343968060379109311271091698300931646015984122267025898231668270469347509071639863626146383647764970356122689791801746868487833556402533403083578113030787710902830642926205996661245730057288700530061451833670634920545529903647770556843520868481421462459124688495474844094146460369128840237048370721110963146120170180997452643213014892317040782573949286667306572185395975628929382431442223763540973475375059126548791794152318315202852873218400226060851436181618801628771790002861761475903544440335582044964376417168861781880294956550615772253248913532088164255054729615591816985334302451325870810292043030348928343756538085295340445536378442244130276883845729501160115760180276293359032129488926002440186164627788185428047919268860374023264451636549881076891460058853016202363511601332451240003663309354981053298724478432958592501916231299408963822852321854585356357836007703005743865460036276529088379749379751236690334648668828265783511097159854967313642834242042222519611425565529878914551617575117779299088803017906188272287333534622032336194827114321848262861511424772776452987311684176587440486639349026297079570470820016581296375542087776118694272823791913394107124290850253591828986384257223471760021133998846686899557797794641623803267621880109315978556480541344046807824523018126138675095362024823477666163630390770524321938789774751615017649242847654643155907790039409838886409827676893450762686851310036712597172992883733851077065851705487453477663053880459363129127352544686696846715202726934672591538985390001719017818043037604368087326977501529112695873330957425133735072806008798035260389636914389907290897134289116076599933412962508078123951545461299179772853867887865181736000463156198718553537581045902445055578157868450710160932566075064227105774836545072020379817432064568791027974130241595032393479950956868789742786681144494987699568058280238520888930729324994382692716534523189038288957120479501506846299320639831864574753681863168990783158652506974246566690010215038864585586675526493275384067662579504393135717193584868719984309656803284716910665181579508327492963930855561828315614537669415190100740537850477751534425849866105499105265760750966882915164424154625642328932029159407891845784145604913752893269239141691427965184782311628815427683421289501144202548774318381716239246297008459507131528309811385400676790443528267712367045213118985351670038108859417868688749378936923795573894364174553430593951383600455503285944937934165289075074113479010360677556032162028162843137944673482667738471986131662609607619509695947241014686509390740392733744777231230839963800041393692886647845539038722766468213358073491451797345186093988630526928444220542887017034553641329198256183809521490386247837585743875357392949526249307537493823510445533177368306959374225601407518448712522643937494541212347958356825288886367303679940952960551157447306478016080017982244260909688174821926783741587334137406715007409975561608823617862104776236737289636742763110617925866309530294605852123708697376908418920331244895982558419981607982152925891761596882323011441960914344996952108589523807646606860732635494191879852973322954647833612531089957475401536398587071728876494836412609630475797373419185892955178707832423078001352012996630636411924860841209485838097628675956261893812270019547514425352047934011229130158012087889296001950250178374454737022698771096043395078982197426593065084981309663728173434254062833056094230775939580176555982673859225677956131008783003002691518729511513577391933944333730698830405530766266217215357421371201110433526971626744131361763112237854887424345506955229797405662317750729148140785266257375944722532247161244597839799292990128605324995672056726320230221892155889445861822177706587025987066618611906685721635275236805560293019173578589684389468413232702294217521690813461911931616195497314285123911609928584196241910484897565301504465818902563056335991934881942465905737487323698422949533859442352212703819138257436494975815947010271943672758442207718872441569475242457460223255764127255829234833347720401124764755610442659800239245883491994919329175392100036388690898650009900307947821168921384936014435346598618487848872533983724098674576405858136681601809685391704471506021496957191795191135126921910520822087787822414414371238721458426105088316438483344829994243291633445922750718513370453504016658853956920097565164896120767850135381597408977717841830135934757422655895618718255623555304761400097992413882599748831896864360979574610098792073095631511099575800834954117471061341925984802429522115608065010156516163519727570357594318068172551918744331776133295290738573145857458776560157840474398507385076194053569548437721701077175071565669621048809697474862478773940060745939293539063536436486676774663330963928897125457196999877692368038150494089570530874642236890291669552046119445822362066532887920796319607198114985701986527585452828585941280419888980402256254284091353038947787280360287940426883163003180479917380861048458897553457823879731223609233462611918681382864298822874710208369483192476391888216661921855041502388147163669201393177515012716728523327235768913668742443627227174860029811532644384041552538589225468718374501938659502791831214655619260365025382069174100908921337701206663133338709417729262061514912171558918951876137586120695694551164092341077076948433695986172030561711483603815165569282413321136432559080348986457259921772483057261662689949632386919226859329050145065928397057929530093467150163837470597336248179376364896190884050037441388992469494056777198975998860070792896450375599578367983701368033796128533543435308820818625139781754911530046742751154453045066191675760219854830605009712177463238564620759127452657932433765577414362775207765483187296741272757401156094014391976473466881572481988558092664535138720933618002220171224653566576660069950437826753104941948329463637600105715451337451939615444330793051544646326622063019721794424085964227714412314499505814841502536975287237068083115689361989978715877980503088464703389973269967125657393867120461501681296517236576548273547179437990545040262161104161419186791975533414161225367803300517749230385996808696030398031086254415152320961367175116064011649368106687744326293194360437298672421951319161755916123105531066471575376954179836161330505924390370986850284861496593650605921702011934830421337522358534417444428216991965131580988879624738443901096568945707662654493132693135197026582362903212324835084443157608497709825811232568235841246232938350721994446554326805487864553245651957426719793974527913795695694824822555435763624906139613834564655616270215643784148569856122460003056948887213321670423051251170958303867921863969279118773017142585438461549239299325617019252570741319811555220002935171589976210661183104703746943513992720881518461486396962819822739867592659221735382200776701263033090804120531545635155423453432964564381394160545200338940066081376303277779988724856345260141283381666288581242610819413951288625886162115350898619465811815149172064081458259844278819374757017919174892735525367369352455603931899535283576326243430072279768588729973045116797510037026747467355535346586925789212658540517483659586238063837912041534722815348001002037576365048878127507848029813820806128280827435355704594310555798774262531828293793107771718349987922035882770010655851023171053519145205824415270454254042307575607206554418995025071612117174492522262081235555706363451641672665030300268513424646738280542545885451045499230687922993023735114305592046651416241749171875769228913105284563980596024973647557836671862758408406175383862814626230890544873677836181847596992338712167711914436424260149777533269366239912158574721967815436950299579856160948156135041186133761657139721658354609887122820860892835578036429106169456214516797138107736502001818117558318796031377365230721808461500274067708724557892087552131576922928677472206306797837904438142430502764529658208932364525533546902976769786272178403333625045161580298088723870030928316001300487612867705034217695581521071835327106820395966912898084969180593180013920029048642868055460741435595884625930311417227368408135307456803248334392834601292813670055787823513167912214156791578012324641306273761678200888645660060831672901380955915203296685325297653872462368389776414072274191295216816536795962685653200378960767444261610664243098588622591841047004873647172509741763454690363322138893191349699035331680276268440122317225936543363805532822055652741872740754650666721848007798713909461932552052132126948976552700546564281355000727483165229254778167138110880241568476419796097666212081239938444955085190205027634316645975075902950371923529111271158876892436045092638616478157935525149928548638549061474010630992471623323017023626610055805174332652497628892508517237632975581809421070559859499023722054308992694583284115272450921994879848511431928708067282828146436633943704600576851259186592428198354079432129999274673975624773603531008601336345338106172628847490918606418351212077839810790749685729841329578228677186180638078294387825696581613386077476552480920542339647783460119176242980565155453141637138067937719724552922599325823804363497441805110380159028076803433478863303782896959202975244153710912429147960808464288962600577932862993590253868781708645921565447488543136126105893047121650565315530572593823354396699492374217806285400439981995738292593398921653441765638764858837898340216970147901294384275039720063400865003966098041495225368145052115077468199481241841124329373386191335488755353764890727058061221090690979500811463318948236853214181130138076318964499264550812501601675379645474914628474922974718676056931019749408155758890081153030351456168256243109315381408072571657871874602610974868764160102764400246982974980019127049896238801467170318892684327414889224048858803618449422266760237102783378069261255530702930630197749831583710275959825114279259616490417937596215601800151099059645562054114818940844573290130376025434682727201488779713308371728869902265023859227669383090704514329043709000286445465516767625683050821279905534012492458380617449237725851666361630425572138364474343220936241136505595652152511417231837863223443560053581925675390741303798384603940369731094877370172918846905793147103344738022585253344291775761248802338180918530282625974433396240451943507284981247332882664076621042233080853581712774043064528068678016306070804257735556038584622871257725015151762514238445691496882856709465408698199606875674976189951251350710114079840587849568814454590919588296289811161812272952935446603252186564259217485706059956212753609930793071678346505984381980966824409395570404271525537504140439361714684023311973593488129717797197766783742124938819141182795270567069189286353601338547181354654523945875856346997593577258063684846594131641071037140436667394371287372871754527513884533232802640393372146420468147738744078336239672680218168241219681456634932337247565236216633001005130138766447231764918405792796024952891359529862940223553480613903027338783456535793062643306101145024093291504040679618325370642948036240615130641213806344709467312667355140087821165278642659534542692728402036958782432741844848919279094016701769729462701042822613145188913542624579498146806403555387524601423090586888286019811663697136932579835452261275175046181635001701999725926668792392966300140635277052469074347349376691376822207164477448969729879147705318159187817276893346257215863397840768542525969365313894405500007062416859071521754215449285852245385862352893097055052032797061816752444003134298781292277670746761046290546480646865270387619896239125253782955996514747846981391540520042959301040617496676891859743093753223499799542306951354986263197829952090837217283975121665350073002333296122357101435468105153914224566790542300039282967475859235627440798133508209083438232901087961532813665450780391096303598738463269772809121725458355406735625187636915723931415154374286579969160862951986044998329715071079693267856449492206046305738649162036705041945028410819987182232676904408894490625344433605220855270738387123398402429552593709110786901052202400141344488739312046730785651514323694285823958822759297351615480717308048958911237413685219580785113563596160034512324470861743359249208790448330628066461856858566200215840582675786586830016878574496550303218751386414926830333843363678286575231928423406857636407740849173329809222090622697597544608154979087252960791561012594015440657580810939841259098855065639478368408996670344579466600163802706163878771383198843895033683811507614925890690340038452840012375679742906740543660876666036698287434071046936294143674896810602499565669454508935840972751892370788815834115348309280037338466685499733980242707399857393877509629582694451986570692879295935115063711306680433141107894241375111316557534234558774729887881347352863298360916663114790595932856066805581996860491373194518787636016424434190813874770833358538495789326946520808806755944427884692243633139852120610764199931165716248235136896663216030244067590959567719821516461086394543946861926175752935431269737864058960082504787706514402768866565293341828687075699517849080028728754161792287897600354605032442894335474859756844112964261311803748390233811388525169038569913940694581082611592642959610563800737327318992398683551535672154587383513825315498021037875273898262923915075919287585416769330022287582720525423834879504204776267182909498022029309766211812198753979060554176988667852844755158939172088580324160399651758280809687240205875630447301111222863131909505874184651550037627609794908604513514915058002133691796759496747626844672368859410819813072703960726674285286974944995847584127828949138523090417395737367011895719625118173338481757767228041375197960485704309868044212224324112342277328085732615601041207809658830393987947519916425058271938517330651546635715424021536381667270381828165613805274104712491553981206019223410018776853629277716309704639466689666040777212193621987031416268909395006711495985878911257347913662267327745051587814026594787556358563611940143712628532298258256491457014410717656433505365284591966101588095032692106634654312687540263026754196021679994528391717454941868350966722164120992916751700809827708201538454582586361738971147290808744412712283476693527182161167256345398339067578229340705745170734591289227331284540795238829776347898706699136633521709323737005211079214778708265479596494954825719330609645933395482037190720020028513074784230136234463886455993781116881963421483032137454660946474695143645328783326511485261471840323241698382164250205126845193597847587955304232404351775958855596954537714761855824799542949472481400357036223773672139296953339937051405226598040809462858486918976861194667541748209599880093544207095878661882368021687700483689985831637642980419022371242981425206732927365263731437864424014696815718772928392797629990702946332237697833438266081182708997332800693428142722881425489424961738918219004008458364008336395870597613813471314680567985539598103574542446934751418440347822038938722732870674557251078540423986334392193888722304700305350979340970620496606669544664531653827132347427831797453798956083990219790095341809860633118871133082407616121540005244227365235310185087256415473108138159182741343204086139852812235154841896923176373181247492096386027935139288261335573280202674125817502594243204710751906874883288430185587052716232372275627284205321563168654012191107142228829731767035498781914372901320100584182731371444507624703694157440611582077312835284733718610590511961067763312905015017702388055331405965052453367410667043152743116753306720638451212452954573594500941571881720693588249675052222720639234233677218011813499092581035258329083038254197113089225961756840642086823168443357203130624928604924533848284582578215565325814586460195170944967440012320108290020984542799498767527290747213757968474829036441551898114350755973868552488121701968304946646441918825202359628442994404534549393289088284453467920832503350575009081212020410988014795443717040352066242458473983131191047150431398266929932017193569385781595794900752926030496606585724970781871471555485253471584067037113596943875939840358516487967125107755008815388011896732819463424782670560709463011562064391246590338797823116672838798151713139393631566220137174504203785388444381297261592048873627062602114382429149659724664471416866401706260521458619500158913834369253923638634552353818944753956748371176643975441633472307761599992164971489234012679732409209192516161642134047639696614336346297813414899781663012810120974268643459351733104546077457818090398558804087742730693570245013291355585334315878420616519132061210719060712052302528225444357575334447749999476595376253853631362396896697611020450889998999643354944878675629858237218786746435461933375563486957760602863356946661623746973996658114849726589765092973729721592284922510984547030069321215100324046024804859249896707442004377538066547636586521144097462240620069990900203667638082750531209627886321953536853111868081673313072352048117735817872018624167355798064121363013367519433469705921938855596886561691856923709981066341012121782979950678750584309909437409135190165479293940442263847793723282896619696347284348405540921558652114848861797918824090883364888648206817010049944300917275272736505062682911642063692592507496453930576902118739284664636225333925698598072265799778976193220356673784541750489838794176142965241156765021561091166759345271910281538851923073342690685862141608789938903836786327798475512651751844421953490485322706983773609081254737002265842247799780514057313362037104858001527591130089153464107049326547647847170839765740883526122139232017712833515746242498987896104893706054009457897643639442460644602763968678857307934365054141775786409083764325882217180153807636682703483144332168508898484978310048483060284899437257485499202954345759211608911281461821195956835027118239037161803893531427258262844456254853519416000379637187630285648787705957175013328277721363187177052060652030300093887186033870517108999432979582793838501594100131163720903197229620999944903045024093596601532899288987983263471374574507252576530108808678932000410776780808170083874817888525758975747135864243076332122152708726200159933877864350853605551273092757300099574594917507635346033745661393955319214607262266616456807506511411998824585173601745590640688267070252269826284713627131011032309294420097877163006928926639259909560915421670416914217262636793874087703924461938231518215690763418414023142897827909826353845096076459465116790446939581846573736102151277973211238101155751518553002356313757612101846266220669954183093223674562003683737894756449648417113326205588239179642897267811873242712350865948468112224963326693045413329114195608601816202081918658152329159847786341450934452979991554714179404757673628276374552753570957341680833020947571879603981762224522100205390650161477384111715983269449792368630230736810365447038277516453749760251831057775926132331005540830829874433064543162630280363059251553919352026496417563448181657518342043583631678299643593028088602653049245526374272745166406059781364626557088525223623880198851826641085657966559185908857677451213167337308249249719427206026860864699107229856317570013935366609907887848606025466409081020797133675434597914453619519067606120219709278372132987743255368140777384084222606745826797107325453828444379809808118777899687227219686287229140651808834848558899401857403041679281391255042316898954441805240284742798919861115551997644564050596041855135122786108713456006261734767296744608396896229805052778308893487617793018233511244545323763772847888171039860543475944683204279948100406858746287403882249697030077276455647542636159807932394621427654073726637737004879856752707198339763740381754884619119664879019170075489651747453910377340606718686413614339100368906800822606112197139801098072766656237803142695639330110701144103852946488810006445525480596887056042495226189734564426004217656477269431685209778718659986019770084515492836574700347489992734257086857284631215286705301503561027138792307589326184962551213104323711245999854754895715283850673118718896137138660662687177523961391697455657771055636301969589120048293916364937130362432678292075495152334577411998836521725260759500713681201348334210866425257834512012336121715346120293112755661731343888578318539862278787584578530077672685608118305045324211373367254743928113561490406445091171405337428407677591078424967121073897527043279377310441223903237963833620360308167817008895681158251344040421698104845945543992890654543044288663387752978221764718080965619268816328574919083837087983400025263498630754852881724619685044970422022876419293554545158350928715084493859962663539409900139486355185104758971928149055698852674866542651973863148216000294932391643194578947971895357511654359696973613849554089407623389820434079698381270494639532189013469664559332419292047883741525030123855815628133825863022952856628494088400149436447180122501011425359933025093116341285786140184963808215291776390004141228491955454811958798648218743370210978900861699849221662015785824993223275986377224514811676044674380381207584666209963483581857486312131708346627523255043656913047421411440904471635384826360499384541599136513650572138046219429403576806331559450988127156577522501337932060727131676809564056830300124553728596657338702798668580933410310375693900977142546909699823536749110429648622623906619827877075886851844326662078920919949652881133447926930475328582563597162132506876408567273490233645042337754067211292705990533722131697851794525801036287304620882110698656492711420578574615843670207299594918284326222132908795561919137037075276846677249608016532504487272583402981829708134140405458783682563137474631132145496350939996633305346408014473768767047082295705866417264480491917179982004587177534194891645851825137703688843205305138724383122540530772118621377844221718715424007326721275913531766575585990040439851820176977717517436316190088495310118551712345751645568780114614454223702514803770247875643048690113797062704804557394517776437980514792876645457729458096722590880181346971436580088039209328464542418722096332475567937079960029421875082371549362118621727148257967855620636656680511469837564746906531472081086522165994633685892804114651653914014369863377464362755130065613935810752948158186571511325284136347467788648748951723385632755999765437321754048867934562690597076825275482742011404513839712120741571336403520333098852132784195839924993537791820042964715292223260979740208738245254226308643217087871144490267519042832369965024352986815584814096312944803631153657482955436103057109085802703577799586870755581878420813157056594511817518557765653865345232497609793419356817049281589156617280608724476456081258028841715437833057513889978083304382263494695839838653662079117145456641024248748804840603472755903060805711987960611098148298944176493068305245226731399937043982229039139848500546368340918214942767382783738990885568286339610893434717553348120632902828169591279398806765852045957416814485983600970596951661402083981171509100361453329880039641193951026177494454893777050991278645070053312375581422832770019375695975765823728522199122961296439823766538262292577057050647558894390176394950837877045994528052110335129826223621891176915027819066534511677609325993750325872047197422258853423278049886353255319006817230710806428977355260741649790247532320598805323949984820285072994265704867301781382996562946184594628506775844268733044363302550437434981711631723975244506881501450907696336630160067145851248806569510576204025918874869097050814079875224641685697546567738410306831339573284098244716935180683548784591032559601998318943810533284174171373137527969844139687768173986672918212685621361328220258947110519200511667619677184022648233924517996577711711655670814002800225147255236443671320580761683261435660206633068077285253505238464745571430262552940547428601814034922298071056892970606053107636053025105873721652396281691965260984648498120028302404750442961254469360841939716384699280446772989716241580149131580349578976007646436099059901296424040558859915478927743394306631711351790570007956137730388310106055733738621532111215648404321087247936506591375439705442345815324767971192776076271771613970141975362467452907366091280249711090297478532332828381084951152631817474345792120204192707150170002478544473116879696920764069860884332214369449013224009040971862164985601740941897522584905937766195874918356747699939047049464249776457595263375143227852337261938621145098092777718372386872067336545643724089040162394561339920400508252405053090892829362770128984857260095833677889232337635003303718289496612945830525231179701621040874540180690458940721926848140763377357805513426321827580128941696206348727250537642311026575822214124657335498036622332126822917367468326372706418577162395806049686940225986516290636357153329104796114798155824693520395316496610933825827653519925976937303553094549720592842315426131308999056210350876356365750799313725807176097562863782744031556661258849035587417080834426614598126412145634248137786985848391629218459935048449732938171961987216606294774724552994170394159782198703144784552261927320075909888939721547341060669540713079920381629056297502130384654941842568920167595786833227263578497359028339282140586229403973956811848411625617033584901785615667228866295827503865592316030562064597518426999190207362591472276205495082860794246310881791739158178072497114958993446665199695053130243744996908671030564822914878640452380945610049480420503034980884710318486891641274140822696800677486292410188495129287809908283750522936143231838449209921171902507876444262527216878666822602048536214914544458872648384024040519672662917359998901508091153846022408428669880922913909135510723151742940702725161011532340368771139243967894102611368514703449689633731056388993534982532445062187815888037749274408762362391662757694667472463970073201539833902772089705984309372333647017336324348410551792134126633394366056830098806527138246127588259956942719038349161957764201649256953169565405766032224490610705991647504015417368758944075607432694406729509951341578148725083324507704021400855161532108692479031927401959421809164331286997818444867172333327008707514604376545560621273222821226922997134434808510505317580251701723233658725030416539380358028484432079134578938452822144208445394887530436730228541581407086197401564753659730697212521007650294137562768587265070667132412794411145938268556853084834042152491117450220879996610899992898984377702271073477165527518308113287711512795432725042760319235298169300975525858338571566341146200878897617153817079472027415970365695011995761319538715405539215611931388959825854005986200559945266068450955548855960332925551757157448048582548467571056998712811083197425055326316965009865482360880483868986157289202843806497296525096735403427592962068245515014670294584092020919342477446614610373929906139712243917618771699551662481857045626885543116668568010712146517606749194209447617314382537227941210039726976723274775023864058064030117113656445508514809219461001140928699496188831695573197306206604214766415131664167112381322857373433106553534013389785272124325309618537306976284357474025328417359727671177319870140560845003783566363792276238170158578212285508132194071578037869763864622139717418619279266901581067459114141623188305044706601579934355782670547534712114858514569331919737176016745567531140570334056829524687740060927321022462265669043621478587716674917897355012511910672389486119153597061726123613410587129094709350406719710768065814602277706808506836130303622864525944431443837420357490505010204888479142299790984001850065074519904001404539447707933667704034003190068069063595879779631440162106417927923268283839872633156892882853175763130461720102809485254043389560578143653685089710460329094333115067756783534380361534751560853646685840382172792124615870973487070292083974082839773262921340238264285400171609595914050229644473343254938510486191385998836761875416471138923728909244502081178698847177726994879626323504699053201553642148291120025427416885506974192644902394146124838031586969921392212405078038310739766736801740331047347531502390885729818702356694598915048833477340163353865953980186545156567577917967314461198230941360206100509834236276687780022389841049900642089557693674890958208000380837691026834806001352289066104602838607603633760939316914555721716383063854461718318628108317377613175321866989072327496810798394527888289452979816152665283453787759159191104575886749010609184834572726968214714543313990720551242630643564359889713734120366874125499683343660533752361193278827598149152980261616978690024449143183799322266328327634676469181860785326628603987347328952590334513152031352150193678324047614327020733194022205527402642106670921379702261028852623559965453694383879021855613265714232956006194199870437564165035980384872736411790421509200001468404117468196739037596715102499895295603457246155800109441686305311123450676017518816775200366870585151435472213158358540092108820399905925142006552757468995901173701778262672759446569254915769213645457050484561017955066638342942253157484741324889114429424478733825943182682071369355277688523943893115102485808957033308663318089091947111899721915781818259627778856269505751912146140763963980023751325428327406377997761959958341154876942750379988862562438148024370958781157844702928848686351131403003383648063479752533213736413464314122327779672002770695817194961064986620247373697332904341875774230899580756542440512968125708015802979004668119628715800070781249579806631836613054348865902545555324465700301019291145431486751860230689668228024454436983235442346929106344383865499209921844205384124112367815969216785970493908524608810153333467569272687582807768995361678139099728914319891646767941874739809282023502010203238816684632961000235335567046760024032023786663229269392466327946699201909515663319305126661789444932599072302807664159152834995613051058218885106488206343107409771524908351631107616960729017737403865734191456457747481233630991495780017633239709985426307562227639636467010200411905621458370751198577157694633312766132982033811967271210065359044676509659864448295432264563491807064268563986246191245271719445162972681768131650677942150896186072710255395801383888441542148882065066077756959091312640005820252578655119309273438511237157854947823745732582454073658408930212071363828756394801094889147887723661037130992700401234627297741620599178337782819987978967873510114682077068648293563850743881122618757121776831624194309115099005027707450946309534283507692102967751190244417279129370469369416682862685998714967920791942988696835525482571197037594244305135723764589038847406837158824299884794743896636005824225523047350924655868461318382153895423153329797898366988059379174741550271454466956808266344427584385969063666177357383521682699097939227978561761487639317370839199304286127556373048440600207831977959497000279191948674816725638760922871321601825465984316105047436158806776936000079255799965857320383392048043877258293600875575985168983340675258037252494782235049841345685017364125678238929345581324704439448547595183091897858926395598639826942875368653703233310798090592927597151793119773686841320117951093487060887946280691116606986898402549817746533597258401346372207043587988695141778214302654702161524413278913772284036664326500681359508120571299545249297687920404530069448039535801972545442660924736340482073485236496587331570346258437710131884782080319751090050081075322191080166209777363054220427317358862572228581265283788856700176358427255766638191716339982474300475217043924565747879424147095486038238600495917400237936936928737515742497976651762693180994560909159431431463959914440406253690825358819817631203613522142898152793250105127568498445164704052125325646712954646535724129609853988318737956156542673150995883803719406905779009411457066733211327565504680137898681986502207416994200000052930519594587849470244327796109266096702845147242390476268499226578269378362136462522536046806991771233580719301988664438099389253691218996240810620535102306693463357414671149872631026381204613282164557771714273648997218492193353995664133643289811988149250930455828865041304240393011823125557946328818683010055167741292179249853960331911166888389827269265643527596473075199769471062660561547962150098091283014050943500153930410626447384363263888670603989379599994060850498067774786599668364727080525419858763186145377860513556580367180972143728994390774140018031805906235966411176904657504614155995349288321898526082138337008063578923918811148339447721466700108711936705220615390329397622335987407782534127997473378908416156466445331984278422404962783326128783895045982810647283740368507322627484479678647687720557247973603749515896592103654400829831320389067393664192097223457043966754357766349760206190115462303110474861765215634364989508854448693296814642494927937318036318091341579767367512382079642875910682214064393529136664732416220462732473194434518280288042292464458437572489879637467428704238852678542578152418047718095439261987414804151046974045642135482976640583146514678953994134431472285353637166461474099375777010871149016590558953800046692254277081950269825134715135438116540983106579023374117786004257975266634238028528041718456503645253464356037002929205928329769834097246452021135757167018371427212157419385554083515580295497465988476225131521141790583640644726924323235767786568132519592528581191730347270066052089789699322826286451420855956703458392211651426730912964945316680449535164386496425615776815286470462967481941763617385042696791862160264418710238509324442022052800396641759318645137558752367927769375897145770472609454226092928201658559047041206165660015619337174325272782599589863278536682956605335394207355864031870480735941462577779859946485467998534438352555904766523550667152757952778512315939570975847996987050789957563049968336534046485012156589388363418225303079112732786868929308828100591917615955809238720478665704872228098756933901063879520135450297855404162993158344006037563551634915433738659809936191242985621395576500410658182008811991802913109977365997379756730029145754976587783923059557893003590345581954237612468960139045263397735129715142604474277282674572043077505597126165228474197076630704126456028776624906804460130579872153227206491434457783312206504046079287360988930273857800731500867976777910132731209581002845350944020749656974693183703864118848825363444130305090515504685543560777583132653210361541192408447399149366956332473757333121861349007756392209429403633801107935106400915476873263319029832814768463897018172859449861889377886055240848140763825939544197122086997407227764427723627943755015059647671240406034497490442489694327640942418750483707963989514880470742006363882099302890696653995440662199114407349238714393424427360855644829077161075796559442066072909156825875672324890460237320794495875398749011545049594983555454599777124962913957005664918150342703333507597025474758295159844985389420513783370091174356553782327854654418152258949235337579779149633040920852220707502413172405016061126739315331801431367992333964938225696724968160296144702484556780133952560269684574520622296229360174922899914157447136969658797640354578710458056728460666178635109965068275816276301823923255913491994003509313320120922900327250624460619394342395712291982543585269486463376475307678090309808063908522110039004654624425460795268125494980786368359751710305045930130699084951085943043923681313611266565984737788592779974608917007765072968562738136199162545100297302202565251032674985446580666684575795834816609361818514472852981608925666639713298489635369575536954279795002002481802773683776740321122819328740304980151690719840939505453367940857675648132220510990843806547855660709975991616307851724829895055427384064704067345215369008607782260276416770251324800734421727401528932313605715268131702354667681519910462438235997617818398423867803012169523195548321999710096451357675122348854949136467156819493786609773715765332327904810499373972264485598937720002881560487732360694718455058020238966488108033460522547267711727196035160111084346066570721254498020636856973508283459463420507981132288812352520116841472759626151036942931399229063439489109071323640083537050808589661202898713063409203329577274481174785464933111888871504682573207199698914013464571147804874406474289650192609108119251585319661412172226168341855948849076110506217208173451405650764450868090397648243915000816103059163211083529753343104173035135026970408590538214720668479740405789657361503204354200860251250041266460450675402419474877140593199428057097996699862560376486410928964701275780652196266978336636873531450832844591136344027423604766644998815820470832601681999173967820558807776711523669318602615059212405794222739744861016656236146878081667185175894680141215788658574413798083783128376024647379998627177197256442034973083065148570569091487119526198764043000690390173387939471750510213105072055810849385679403684220807190564212820306109151979403110385806367300635504695137504649629942625542875465907163583775045302261029894560792948202250740942702721202197337956073889057573488359459755382601902305889417337409967254615255905958081769666911919667705106088368590349610324658979445356748500992104735033881276510523472931449680116509333297476126180115225079827990842802335833029028770499770063783318657249380425704102206189048312835599064715713707407954609491284043297441356359503330448248999478454336040969853980775582352661785375403142776294825439854128638524923061424111366195332940498149434531048116439779788139459665374638191551927078577470070123694274803409762457513928497942504107303517079077662205569448141364270668748693908042587411363457423484602732542665036256199613954670373119377156983159166910316709704709543927396754789895907307905728301072476189753679529990503616920084808212454031108656308419305613120178343477154466707302637693101215071407440522470296272270744677716052507280227610843677334086980021638738915014516537684816209804739185444095899975676098972664001289238191883168620844121419366803650690165216743445600461894749159734278684167969475486246396270996561479127697361858895315888764772234093281402284669591558434227970081774628549555746635379233634926601941593175292993931879976507356351768503701565047492285499307175431300250531768633340475874790072358522658410168423731357939773335809646971314325023635379352767864230602727797394666098909571979566410555863846620166434012724256689874871529323952529857433926309969769398914041786164411741412011092175212243955337409826360789127669200791120145252060988195013212837392747284828922435104086103467244843132863455094290426142209518263367856992709670322266835034552561962780141336178633138228644095779300193790209399910370313109781188090539826286378969788049277939628328631495034571086749810048077102895103816450080751779541434004769848951752803231305861316522676325473754274375024927756505602392139749396095478456729112441925762400984283828275298257151134560984115844414538524009541745457753315591890128861040165390520106615569475024713207616695777504331439078791081116472011428261320303491294342422634172609785608146089008758176488846927291060899631085726643431141847152856915991282457639783493127790239585345527888706285539105656526641368042873395870127745663185105857570156915444179336834629026162513885275821974403570066349971121666928876705693193422024324568802903974994744167715256049247146270398117225226978515901347742529915174145863894606236019463716188673652834809865620274766934941382010305831572549922820434156731532696956111653470668865094833021940691033339504167601319636147098601647584651252181127562581917758263478978688065447723356417995744873441427560805892005281206241239673490274653577503908045998055644622253854772646314743093928438742281698206411093502520908447294730055716645409039537214062011189281790977053254925277058014886130912126599692036781787432661227105393256147321189534385943160135479094052964201125470256038146863827990686565456647887303099764485352390304895671177332379818234017774066796772182199822741640728724558912603018957775517446082039835642223270444138189873746788103408911053413271564873148404586023435373234919008630028024699849625221190356164192313903270516679986007301938995331994675342024614095073351342517503815673851571987047606533886162857684019593477879587310417711541657016687861966287475858815073993194205216519675192037049906313418919318452515263464863192617590035100476797618965407559309544608638116818703676132232514905334876545207268666139897644929316837888167974180514224192680173645191523213709191259711363603231694650023751141967248803654034458035031829287738904855165196856066690703362892406023047278125157404279802616014315843915228939721335046822787725244148575856127062703366179372820500933800801147404215019449140391410166583239940062534221240578363551410776284778960211311506966555957779776777293116619270007451755818101043794074111963377480759924620826339218495879481884958939233804869265795061397492062864510198726447776550396161261095277879268133212607925211266577078704946509822383679877894524648915655105356985077239262181172138811736176392807971619464861059531318100169162368507288860271188109434331579583013066113031885919798218176518880584776268309391822393015509310628657746120938002928891533681694948431004412390249126157958516985835222719082310381540043876684271663314805357656890111998040139529749849471329385842847341303741760489917257252849962036369407629100614340839243945043035811680872949093742099069067418044688987748312587173426923924723913349876008771331723711253210511119310356775803173956887463764536013271552912406914781177146864726304876573566274813643550273931800927645170160028921618195165716880542735837616954408930287919324938690281178178285007993896427038648839069990286148722737293748101236602176833975025632699281845926245788547311337820211663285672856500470875143989698159594307018125421236609105268059223676589659877999070426184033519735374859120544745514451946456948300851091665500557510345928922148704126762622841870885828196822256215300164535719443115109802309165223312058596985641777422453818910480108698423310029846779007765232288836152704214196012473523513933259193325347862483509899096746860334862998947243168111597635209360547509749209321205899753055366267767362363271733321417026595939083018893565860817241528056825101175317615811847738108586739928778098318109822414029405117917541173442763005234122325754273315963200910253106981770625616711533711315848476978564469540389597047181577475768688796372041608331395931229382372806552421644772988061535986428532268157161318635553922296802292309263787484581780155692577616623781404092786968287841701588665980166001621744151035227889832953404039755548662199518903175673730020018062414992481814825190127115306415750687555729886041532418938222921505571790595165722236426729760006858763984029897420333129359608963682130676370169255733440423700350377472461379879607043987496797361041725173401577413908914808631485754363431461037765352712636408721242132663648504210120072646080888930283745350419979149354121192845589745487544075923809976761407396959221379995804804173619508335024370605419572145194740815448252065017580426791865207818851620884238243505107214802695322703263716847452197327637465081366611826194568077544725148035535227172714224622630105581100253326929852873927418297173256621024111719610377573440003224574157622483402765330680290291650275741144486124380636914836889618671518807229326651960558426895127940974531505938027637014259206383143275853126917960397918363956160727133945394038016126875681003952221131216695447093227030701880237606353387929725907655153347950646489270613785298457513945416493688031233428527758930909728862729030129140152815572928088959335648278380044247248073844729902561430624597601536400496899223731527208006534008725773370938814731638655056817065590902162333906934860411902704733371214564323400167695979444574831932025034655280768061705824383061859166633713628215494568076992954869365878737901410905220974067200712320921303322311645133493856202766764042844595718555619201360604500435937041403505546923157457672831260157888962667979579891636233438922998719276006812484666556057941678442731689656289019545692987894568138240469260718385265061104732957570057630787811531705121244484988812321071633849105968667423970556641049243211352859562354214884110465501707178141842281794138734165527170075165805618933346803756774200396448197031193828157023099790637901033243975577328276955701735449680582082064909082016818368651280610373267355189016677950268920240925311455719432030187171835396910361434778656116087134898652434408023981027243831601461374048936268165135864468380485036073391782934374096363493650127182108846351203142015076359077577392805403307861969323872986795281897827597711634879912508806599529114373599679729478123950851259877106803701575036238097445798511989746234425380969459678080446292998037259365765564265792439553824464556396856858593076822557724811634114005485818472194240451558738450599166091055448231856038264470898398052555975391064903600025006053898430573173545194809791018167489683454425120832385795148477162000055642986218855706145589584354043764866440315883706936293792342906503735435843235135227032891689223360496323684685505771050556760515372592817305196444963277835586237061073603001057367139711668299670234726981982483927911348836209273484914436145074559429878803946105658579778933493329321457547348919867117092757086810743210706160935525575138205008837035978779764219811460213520228276148612019833895873088275042261575523393445276506753460011672963953305918134055707688097397025711248224055025742502410274063269118201175524893082245591507818587151724359311189105867623371582157680343617662210663080596071767773761810372625470563922109897179640267793825380116687968879260801074214249960758545870941631153384251416853664366190130679030022436267785320440153937380112049501141613081459655691942105563800658718034568955797216208840548065028836509550055462064569979602207478225911434615030400711123591772939017242360815702054653265892371557851954148647818809245129678241884897480801499860691275505387152321893601003703350613430283202046229206435619004981670855737144469401341596104478032357849026070442100821392157776938492815360088992986009140942879060118949414927106561060840197367052787664165963867819925703737023573951257208877921790568587829766082145364437453602292955137235176892278560390633888741654622458499370838801973789707300237884906620743234406918603755967805297849683811028121777827785266649363315502072722064718138367345235956932503420506274623871954623707381634325940050927154578122980694313286733718504281197551012756677586427689699117865365432393966175324123610701430452729688439227776787973668815326157446205578882574496117476973330288449429819213520142420202199577179842703508307769811696636100619133429410826505429579893033220099423641423266416508626371178974903633949858786918653241408305319302414341534028807066012023782783152453167255119910133526861380767208533204442762830479445558198805353583465341970641909102668696727643287037796630179114098030947829441784830748080629339542135132081659897490986199642973248658615087707686668756291706063625300627900767670296643700314175635598771537387556954290568090354598727894441522959116281696220169677090376525167107951026955929875018749234784445597690501638993648912844211245321750829988498228143772735218102434437430412572621736259639515820935189033319015621409266687175711132666870803204576209150605205594101088952596572660345027563800277702692935117929338318559908359354906110229782867276489274908348010405263690278298485880634853525802554579580928501806409529663024385449980797462927982092200085896345824368019292678366741873714152976258853344799828285224583110774238453403009262425076297874673911548751853110665338390900583362333536943580220752581090180689246447181726942408829331500797878076708973919815897884911940266035667717422985002551484827979472168723341733476742719822257411591986374157005810750626834791176859158529602370568479705314832694148648774333534678456483055460052375389967967695060063610398518331027605202667244794518568857974964476007870308504676778825322970281483571842437762032763446689799871828451391187633179013013050875164530022705191175577144885570568701090681394309155046113734736319363583230300007968593154399086967853523551451826326245022801743163234010545224111287774008671520890105774804473698652527629962016293523529296332147091658338465072919646807452511696286404333354484818079449641073324742997331669537970805092198082667832639817516706069111760301951026007949981798318599677066322439069868331070916334348463101979343062986047438335330113220834982538961513406330060673381209429286903601809556201882107338393092012732288884352229125741151136437053901906988986625796691934331860936684547419629746642075041232974336229313768341778916287570612047438058518011125921011917892103065551798790607292457881170213354351587467997461452608327023338736282822617168634011323800091912026248967507397469590447861218384472021274456744167443274768882859732275288106500446997272102280214762131756986919532196527044086090741778242578929006385561899993596285184278197913843529314670050355801831015148430737234172773449445396371376040010178189766963523576862896175632136047146972252748913051100003091065781867258525274560890864849977409936382114283967242615395607857571128338797728300063198628089157080588337434408464063385803630591391448929985493489911677694210541900702247884160508456006115117625703883857691750853322947658876424127664389552096889981457053571573263745724523345897906705452033455960666009816565669770761844261887209325386343800616028720391500933845051913733144305964751260576543537254709535329993755486640472240877879871765781687860365592134676951949385616519114377159466870522998263480642368540089290796580929573316681326670660529843539507644862895019056618864881576413385279334592973405106681772347901256958083596319106005477516558975365489640587209246303387860030501134091144592910827979623153818135523058787701300763863879598917310315645910297254056823296404332548056142344176202088293836217256283010286474671829979622370634043562832908217443676601369093049517218824652856683034086539363552578967666305090345200182068371874583722017281415901457247163264175829147971505044146181063718142326860551022071696121377311944545544458069988531477995846562806338349007755828058033573374248095898286187677474286405263587434046546859527177222397290001526062289705488599751189735627546965371818873445601762190234637460688671167187902738087531348841453430732898150158029614156175713645913717225460002946193378450381762064089116001144338742296624776902058993221611966902394398326564121407996440833142653462622236022620690138666963078658246201772063292319005212038811271578067468689164375730018371894886184649196928858424599343490168889785828118218358278488361255677219333250806394733516649360930919787212910052016848547089126793514763797675422482817295071955131332914868364276744594547990410043932901068873002284979890710178044112570659284897283552298049024299491466453097786539826732624846588786843105561136287408619650538875333744367011991894438464376067082660582189422358514984789736016647177624226658524106974217568490948561127817233830044061192087484422222705894731969481030489054816425965731229667640329737168841990187164464386144063089378172399245738739017229039874398588776646885434675143753421155333208883551600701146063161751123737783395486266529070654849024452625682025287062761617590427180523328480597897939901539041483854763259121154041846267195802873948848194608564364314155049960081157901660936232602975060697521147788754800014687906975819031313312401504552016604142094857011951972268734980884919254195395619901976754918994179557716098903294979447245705362030423724522344355118011585293295073006824821043306588801620955942350875884790013557681754165415778566421423715797575140059714216893374141187182146250845018432232929644267823610232287015793562938687503398300526393207272609937109612465459550502298524187025385026938769825803730912920759519161924932338413552685493504696370054390735275954366119116601849302165793561323703053256388804375779982088790547882896742059252868386871530884731930851415986109239736587202325470461050310935902214745241868482987209834029636809073263089145062049860731355742479991649002273489664754222532935187447941673541278676738473885427120161399534270534115984326378870333513626949284438502538422222588740805071804622170939123165711561455288490097930154057951261492104952819105423522146644052680747228705227179051862660421023527866068595336345362163595479477490364284884419935596994929747631740966645623648565443071819576034252694854487110130471631124663731089846210896242561299865965878395730977559099156192613670232402411733231474064229007547709699428332953240582370814077538456696880288528665285264316434949702641710038772739773170366186868278052407872849518023012906789995054566314347879907063662782097064206031687297081315567904915800622767080718863584656672375774690317514628273454428171021211640796672789275126061526795312112443378307386426162343667807579695855764686843123953216959634292032714835480530606519166492218017732701481590412083260962931566420074781661907923095484613155516691922123972608483895028821219708065101453779106589835247249042808022721867305940877732842817087146592374040667953556531961486094274769065399552205104285432663552050801564882980621567276553085763839568531882354668081488946346430572787430205041306943671027023563536443777163835555998891975456249873626699787004608503676139600946933830339344362769849603407378362145467665077132741854933282622930189055029646902015257125712026557687126651196819340682160312545354667402985224251115602187458406227919702461486908981820833232218921517399958319796470680985041588855048547391446280482888676361848975902211718708166710211198285375859833100114119972581596333850576997596165828290540621040581783298536765926260251888363591028527608061341721924286233736894050273182962606877375383416516159833080071326883736690397509236179496096515211426185305600887078039281731101125346052086680655039458588042336389740749058169799242695386085913782871856861143908684412376401801742253121603169201409624371523085826584224703770176670897815415649557392536103051071148697237249178936945722446965916933070429817813437779281968638423766027438654607151334209711831098920984683509191351896065215265614707905835923689992891554021692033626000991470112667064412054357969223912109802076398591708050712473501115907826540353101330925115113425682728918396162311239353525906768230888728076591084948535745330441532488570750889420433997248039668876615121291447875512817229950877593923103827862999159312324831847259382337668454169083366309466069243607479092264191447631030386113673613944256251491858608792110410286582359616902046710442270830176676170595422373680085607033158900830615169335818854848530179858434150895165799717856801539016826864101250683454630633348679903066185731317237560946412928672778425307097982005892631170358523686254296578150721163789952131117988786549878550593403780453382734935239139703316010327542605662544509965534630234769970989875363138679263774705437131884055802802505529287122970468517610415473390665409805575381382042045667486582139440635806522768561024200034663655967926077002289120606104818296743312966754749353429099852725790149652369993940652548826026056076319770264370686901038857705032781614556813286674203462560829982797313444502503650691915445668687903831705107727995251537159349136168279750375887402819458180290985908631627025594757739701649637250556635581802449483625337469529141411515076648673252575883821287795717882597189790736644769198204828307460650684055781524919107682094701026899874452826616998255223456670539799118501549147636548894520728195951491518650277989549691569060072549900839716080348054812430398453703069908480458386709016604291083804084716810517564934995639316730546128425894516116737776183165961275477312644661700443915024555723704141846737213038872987402786706143919369599558796506834487211515894677230748301818890239828175986740816687495684613858091416061197685886698886199118382201084316805188322162317331529268852283658651351907002444787120452959545979083479321040434086212125511286194462097320050036203273208746706636725343381513966606802399361379979575692412880845743489520203599546324567617196782970406177264373455499118872322492809781330775078635306976557602017233806399454993559416461974421755295785724715779611367752752558206270012539652654146706374457939180510524695196147898678282740339266879469352221931667055583949712724737238334816743913426670696093636456274342307102271587567401364443583309760640387646694005599047423160187982407061747427013613127150127940332983030607356628794755600382372553052676885308104679924215755125187107536229875915612097161871833104687247580269539032586015828471955713354477145631739219144534293242536948069304444056157478387611235388671358936340965726241923176728067160107292217558205803327002992287955587225560872418229451730513677897136135577431914209711165515952629486547817306840675480195602412445363644992464203075197668061290354825404520360539594842637346146389751477428017650380258762522857370668573858951484099313131623912247134832967310327601961404320041942236387412168612981936471412559181890886325677933379186531212049043280383911842824296720800160600571651061621605053023232983614201275001308578492248813073366962265937974570549480590300155530905869230952602759269374737763734836083811041469021811603982278549208197556808479680317218252264452266717720450641502726612564549085345905991805374858348696923904386713893971013097494539101490549939042860559437326984078580335866281358771629535932613464575603589904471576198795648767644895942641869968758380251027146399074174049905769843967037573700698861299936028398306548975719628957567225261341701612948703783481293543783983275767585783926956309038349931981339115398589340455413571354839911239295094455249224369464334085381042098373411963204830571853801661150711405333401720850546299532924717849710153713105801842846304307307371979261938110126593226384803188043071362132915347068763726241137535945898276716427991073640659564925302473672851537578010596645100769308593028362273201742088582539580984142367355708467105532892358195530917302363385920293083138941449848248759467564414652892771317979220275527437748799089975814423617376922903204965631663797007795711887581785297028072737017298747727535914861336637179035707094437958817168468761336352811549428655791515661793338405615558622450996326932998291167824254441543321258441138040256031725379831056098340765513320918024687029869949230001302785459467426476135684307268966021694705032201236137035789593414853172598690825762923686608460279318344038745828043979846348882062110506530878277993127509545513099760726044455267242863607727099859927802501969320759185723565423861580357357527845773484311749285154164639906809308892474727866134967662375016433185785099908455538691433780729111353380420984328017367246059489424981431381148595535465281627858406096642815292858836530230648724998251760868593050710302744717853764647735852454561403224024278511378190283443878439997464576968373459165766236580820527514514886221905060814653886200346046385324046699287633139428514127121233298790898883394943282368910693672437230634577494416843855584758344101460555331332985977666757099585171385661809166391329747948881592375350601051882231099636033644769919235633169682018562956093172930808747627556301621550069254714962331013005691726984102350081299768763842721655360289790160601559839971526004754055956545375038161280021049367248448700508898554377125428082732288820541888470016067298086073918929515921656276189336725160791498089582396586572430218032900503469497972674998753267085856815919233769558869633298814282142222870556461715465407901029752884072749540361302431864737757595152567361369836362911848993348882963893819914830064241006923570184815555208475379416187411508231973555796443338983363476418908247252502063410476721963122014351554825484758407462697157560549560432833258612574785485332124096377087446698131888121189555829782675818470074637166008447862064069920588531476674452290450750207532394167442922272933016507529654141484395694439500932953266352327524041227176833914035808191689738026512885734314656896615662612109450570090528745958933984624504025778100382762140732502581399578370553670152714179738553188115130802162292573279256938772452021746710050236804006813158705046193397061306613299232141826246361340898877870556766062830861388519869453368276671809734787409949855535021237777040032329751486532561305397373027249848116179965801315455976104399306320483353450043479093493207532005079337425055562710413875914415644272659742384907660123044273472399417381231145554971449183152001071361598999804472290105264265781498185294858872097678616656261648828986373225182937396765063573771163324866764541521104066018577862666702957588381346077338084361993019584238541221349161121980804760181907007128847149569210003965675189279252379772975467042190681863317916840924815814000598625342860531432961765915484627045089524352532340813860861515417381196000389090913818767908667899868629785740404821770996321041524946802523704988448821161691033172920758982273470737334057166124173569064531655664261710536904860180177284519903820075682023822301745724728548297812599417287774221210565142755738191538072367144600286612463391821894848076127754703768811326300524607161809069544258640293100838134142363162145471440869074511120497460670870740627191396201818441685302554646092598092804755623976179682576121471908336144990727860180925089512291536426966706423768035145598633930413714901025978764835525292568355406288567109312614410004497013281934040685154200444310613675171019358354383167924038200029025061653057660419197321800407074635367924562258254297270778601778063029322836876861008948871813343330338883177111538026156050315572419615669844112012256813629619156498022457147177330641559974055913065343189744842787835942409959757262233171211976299787938907031985443075791271976651656502409029849267723447088996929916497937482977494224785205765972474540074875481250252864186527292660099288087047592934147153351016663789058432050481676036526027606658287896021093465514193441741765737972141856032995515399551913185201179564475469291406978302328070969062034415493141848895177151003511752603931651539114475814736856923055285207542237926100514369906622371867068097650753331131025648587103517967159760162621050890757358793147118748068924969733286675184152828131269172205392983554560974101415817050565798856161513718624371152166814367727660531418712120766175548146806899739571114067186770661856530775665308726256887342557316546669628738048671502179019513596467157260970130707438680898467195784095006971048743717944418708492931392107235036861369430569201396725135146925006447277137450621172135807744984194898243650293519770686224896386306256694508406936191643923418498328322305004490805766384709315197785253213575134079716261056946661637253079441363170557022358128735815171946491753035605738534144355798278815318915761928085053024971456519311607765402263166324218114066444993328234392782120382605375119964662355054291805449775022278719702041502694744710111661617355249414156576987760256816377801963990946866101861694449688518718956237502725303112339240483820290146608103439174489439612994944603060547343361679050927508501954557240869454730693218294374281258285016004402419008988993679241453472549495320965325170492494012965523336860345325609998532827177864308530786185383363588848839565603828866056981814874511929619569300304059975372291486978721835070150062373261217219132158530453901226743872035291520405963967705927304075618252416577102387667143413800822061588826220062996179261276589701066338028708620367837904073945284485118892030807890590873094759299563811006521523467505356027785747054494309932992025508352855874918877560272710700893179932916045736892193084349457573188449460185853014159230667760740509495983777828849523161201039188914532996492565843754213721148379559581950134399436963560844178981803826446935318861409374919684413879881599063814165291934470308878337764047270992891751476863322136013939524061355478541797255869905235751216910301898453739165116637201512649399291899943766188039300524765057536624181914843562274617957490030871013333605001841228900831658845843428552607275041907665438132041059463593294343519457581462149032128598768746638898784232667424383037827108484432652295460706922945497183791329041417428659846011827916898487097547837091694502332799284749593112123905040404242655028301230747026043099261098965494738787181416543305770941245095114279092421113265171937234673474749006086875549292809549428927477467001071259215799786818879857904265499204425364292383013294022069614064541837091547832145157885469715735725995824626953696889572248354081883845228755603089305327215942238723684669639190524869540608059171036860069564391415608114376809461925019345902920869822276997007612991419697750073897774842447126661066211135576299205967439980395469936903186146900309387474241199284962333645207362047203367055446191426229929507209742967989030434861450210271189318799528958989679924925039852577621137242043154545258682635313839337722946039344818148865761406630720821344070388898871997515748205387330837451675665066696356893332424080358157049537297858294495664548578934097042949118578081423479202143190705642635539240376479673724874994162649348030359068104062140265723693835190574364608250578290026276466167037074631979357120329679688879223559264530635562145499342334616135859748882781623503761030972877398640884672146941513324467436727563571752719170072383030647170765107055129076227579887937350631859684241084194782502330016184285205356793534479899801565710828371593537586115995472786714291468202418173067741865963783958926857178177476786640273050540411162573406200266501002746208950014729849788673192114264795441583183996420023153122807492616757709562250766512741477518912360430575037389500718104732974114245955476671357793755762459637021514198587660500337041862718153075796149125059251008646462611510382740932403062731117561199288544874275846687280009930058795521765232115589140278909569688571893681969446313447380446498555491130966092549829541772766911699598140791885407936322775536286229041260204163734970698627018244126080898793977385854139049160240235344893675116588446525961060971171816708017164923214630008110081474244171010434224192605931524127525789926606832076864301601851322297042806950755598405709184711801592462646949150009702225355081018957407768891184878662569453204074668599517455129075550177542164614560993390671518600969981081148267436073763159585634051196535393683228587714163544089939253938587620906671458687058631973326945429336442993965718583837962798565274982767265072539391227306638316964841140632373368718690092984976772535419971494578934235497528656808519856648395385547376624354689638825170884280009449720038218819167553200575738218743268744811072851546936506612125035038912909500643561726346066299804301162854140720722906341422670940269355215689664837925598606770356185722593678168446929210805287958594850056388201365349028296095216199986958368252633275548141652003910035536527561634671167437969229947809596476472745840592522213550368237300083808265212539537799735926265465661748605912639242292507687764987869234512220678262888006512241401611904093420900657881202248494269012671938828553926799102323381771739650612875273770947931629821710397495276253316500337859315790199946516193492726196834432726077896793673160106526430053113805230671776964429572249160738791007301886579341052267020859414370883607633688263950303453253078917552862764703068793087345972520437915780106575426494080509307319848067572686807059576163130407238020382359280852329907836547952953903877345633644534673562803412534504328349765722308140636848034040333007286954171773356805533006415609241160283051131399670432342202110276348133460734297738700036969607681579672478778314134732594245572344808082504703717060294855280704169430761298508402077765452090268010710356216644105634644393404158227686955434765445097214492863892388020173908682374737128475433140151734658738066922819878012346101668525646346906984656756195460850139188859845712837746856054365126025571916259437774463739346220109358844823728230391995040054957012081587127347964592971973657266664527400634886116116664273899005779911205607729003748784529792933574628683320160420212258449732522169018071007370235502278051358136525120808305839318770642604656357841639473225129966362314286740749995081843503217924655134446975143798956663564245993948988997868742535977550730340286588745656326264590755438707472346609268213787173487161710454975120013562572260182334463152468597739379826605948172469818505269240103702696639784643737829349643396574153743694584792671059326584934407822490581599649799320546582029748541326413082803149984312574418067223627466887229037292522206677372692972796854395043446840172803556233114292231934941740315762270389146608598229779620557397938611473536515312915341703953752887959810110983478663418585650554267118933881103901139288877277480009490181514294654766353116833963081165699023395509564836596754991287336947882162879352388222387798621583851284685867824798513689602302057012769446421639341168017161190379227720845910868754515851476478893707270338186278807045504304933397038230154212371020251540567956077217033482303900706238295243336334665045547977740752506108201833370820819531831622716524361446376276530537708726180771547973832519058556226234298957108348054162779034646476981184697483609949235783619585853021520203751520223094065015899784659456252722642215406455188499250940430666060495102116486826444313137982920437878069214095516940536207978783221037126504269390901177806630924831531815173850316266821990849381973865328032526750337471629673075615201466799575726993467318882958435397714975130323869969529564228884606046602729261862688658009221674185326840071102040878822142370667073717312049804347544324772604507506819366365507499794786538255306503432107665349591965535729701931524032568598122082110506079635884558557005692276171671412065842676222111590609591177650143723774840082052120748399221140400418684324823236726732920212942873336525108896991301291895088121297634724788215829862540194495003154940706413851497424388568018864799830035531588609176714170757895596339063339445437648633323752204019627059024011927189113469904013028909662528055331867876922772678668490538720918290202072299720316835130377038817170710778294401449128568991876811696340498821125843429706255693539227889158747082425114655886998399198007541162238662885968418687607630068590990940403516275894811018061896250762410256459432075838061160501191099990389124973958628470107644813916915103390371722703005263317720104076326942374002863976070133405761092325837130545545404328572454327810089707857625026268343453170870925876623741749755401341202900434502619594705345141787959720659187306995962064799423387048937311734515039744932150169034707503690478885188379376480844142520493101614327336600783685842921265769834185246537594930957559031503198802784843713475118066488278521024901803699625675442722569012653660905752493087156519025694865180024625421645481775280510124876446993511765965516936612909794238220515642465656095978645917789060344989485107722702038243658690090309938967659428939677960013098573500361499943025679942618748560615318916323603394391746463321509857275352740363207505784799588489893703069604942185988237213148606555202601920369802137732960090713201839076603882528031126791747197530885342762559940287686625675944506972877595793284615157966591137150961176826187099137206077800553921856817775393298501138618069478406056907694563397887218030178186163500747360333471993192217579654848464117357062333131176002419826498969596040539214385749395756877333213666346008011323834300298242025137649990207298204378758134272306030227977113033790256201125545592215424987416405218681763008658128887219917405482025551718349823712959099083247259980606885266674590182073251744135373634300809558738431634732905193610914355898250162260339978023043221423706581548355663177458890170327401398842968062875743273510116726592290650983602118881522906175942546631995409906253517501076034732642283541387566291209984240173714493631015928186084904592240323957841240643102752124357222897181547289700885580466823556038208815911061447352498450921700728771204730779085931345908712329977203315278840603011322064298905077947849778665464552943262375099194035615890808909612736015789776032336025075432484371029332492067105312553228314480259355972821584172960184359245264851099766198478427674106813533574034154206901794515528340830862738256628395126523526270772041488432245763894067760027197781403429669832073961021837445731243482241797329433561989733892852230774994855106825221842321624526950776267901840496667181537488877778843997623475695006939878068671387408195080361752366378843816400886933450470633887097297918517073826458578857503981425961299363450553367515820203353855842205077532945195005643527713348418456717882657108812039968464115442306086100315979057417711463044803956903773820399308194787454968425398701400424621767303910413787523465660521696290970993705481584111843020144291819101391823676931452401485509359754894420573908482146504827338098500957624554584691102657548436369532545072677417737273459347715652490263297695890704103341314574575870397210755026602700256578818787208090323660927601167671406509382703010004402273569226007254975923793640201909543954112719306053837999247794283840067239628533172912828818249582295912065529873388073668623267830664452161419225074671917321238058276163928729657481426296152931696222565917558424342342969281687791487608992642505023822425680140658474488330211523817600934975758479774139882782237223626195751088625931408338407121980184974870411307891767029858015243255388348715384856905619038703324826771553087176601642360454703522462130728091902895930017038814508293363243309140940962869134103888634028739237127026492989469943176330909424715011266909780405348368819368686511302916925124388262268049298325902991481915568136945058177759825225156689299131760739800862480143507430112882785930422262120830693236722267513211788563536062611134559017191637041830148678125242174492249069796173448318092915873367936507280878411133912187038025880030030495842888920836092876699465843166243333779923251998222983532536370841305450543415051674158946467112942168520264190045948700996663678883576287958795282108935948066679329322855736261150691721991081583986447334415010144158777749591626421162441634817422348672947705627302374923765083646233997523362501185411141448300354182439177556138780501902668125611580330854164564817062365591059902017258235433666225035359164911219992126774715803090569426147270576794414077436613423855859859011693143895603862879122299969794190861823673212832633151880570604883580086427077438187672307726890652159250748747676854591210603774517161097557256029328933354112273524705687412235732610307495836263768553741954199025381902028235916311353479905482920545994749636791010043692107389555940019106540288629115537666502448547000562521799552558436721911095685864360124808838202369787647360075734686990453468100342912741651074468423374420203032966028970091821226392353430092709320511018469198271740278220533162623310140134843328641795712849510528444017581295073855698986244507101104434571061556734864286579220275851253827448624212734369219088209800883550866583021084459507846976683247017395920302872099019355605716158239100545084097996408019042105673509479979931485647348083580199336530674166634330885948054927532088691336947704976849967248667398573873989430083689673002221906884861465631244366554174636850828306625563693583958839619692719069318221976923765668602500495126976150530597863293663046301143157985550382864488362481249543820813126796614764095483506683720138297834114527744169018328700528383805781195310615868241039540942442355581797196209455833909124383797666655446213361654567055926290383187167614520457589740334921798302961801532397258614221920634616755357353175104887025367622800940580351542813458192166505299521772418657693782004015020128643427872835471100514679073148591350853859473970163479779716978302427420337374848769184113537451385506604322820052619446166932745244264413606901314689121244031577483914815794831712063554495565814031419194167950961252556486853176111754812726728022048833803919934492502943235132570797257934926460238287303769261136240550014615856111915964881872598902984782245952766222795635947365761020615106384543671387068138461247704974010204977532622775079676606394234847362451937168915808680654452792083154862516593234239711949391937678628947716665834626862265924887620567478715433712961149886776913267532464677311987036193043888045184698581095120626763027188319546080345890896296890949876959971812876023197602804430624490421058868802767244728116891957110013610020104469871647991889213540098563748043672255066511623997142634901508131226214071278532551920062136488512176497094421689024647126241800634005252597530129971937060396437147999632387028581848007602672151253644104899851359331567380975354017501208093757902382478900301614797394477369068813603834158563813146001613566899805689230934542391770535232168585369842139213472971681116007956310288974972736968155277877498025986734737871042056426741859611659727523422961974117156369486169051005908936457707571699086097049455586289820413876971719741579608656786272466302618717531330059146951661340188002523750059191402705219101998034082861323944080360826580836838140235383774660109571239734072945052294182989996879821312510686330688629478343654106020883589662905367587167256059441191805446898395738933726089938521061032141289372177876596034186020679740315550319378360946516491776777093592271444164596269695948185106730522484486229647599184637269000408727726001027213648295273115713203836731297127045601994714143450869206902034315483321741039058401114141212282679809127880897900861631704560270035537150007972395104962499940825619870834765919144033347589974601879175601458408192025157049262484184756544065714154254723941756531735576963038250229348193772668889529597761997132486982613994890316608287593844160253054487778757404596119696040895406078784934435432643256593435385592640836891926714827861327328558822957364895020275543787733269358753099781103810640718950233804514479718123369548444055941510127458426651080932017976284346695502595708987086348770720222643312864752222091741674646965721806493120908420955052017279808785864268479861065182391503005173564991649094130993524092467737778055554364440139860116173610264187844724396219040400354711942146385981076337799681415809937406878221819817626174503440864605360789747981998554348346087122353194647482457842373595829413721886674864721971730072868563644306368413304755730699808404196446457486720762610584065656652928934890761148904639269165759413610674050419271878049281816775387876055107382862074669319846395271910202839487916125483122130103597250622206242301323907096847315427234505316487093224602530480036929953259291212147590649297719144499157222457294766303503697531630614454299474748152337448312769637154392807154852301836501071418484261726966226918294714479657301503641150563901555588753529244556792774185923070914536855357478089499054174312581491325372855503903085990045503615324872542280303232205560206562127271995718668052867405584016160199029820370692927223928860788530925876931753036250078479389716255184949910185010713050516228668205337401457301924429064690453838554170610636909226886681489817569036370999154963686949521189148689256861484005364967132086188816874002329773392102478984463136655066581795314564632184400636146070969243131555838411296896926658610206590494567843556220268993534524108179757841185608799299397319257812628716682314641869623320510570218005948322220355777885214280233748589805251414094872397992144026183520936280877830052218488107320008748151280868402383882049043380609070004286967428463364964364846326942109284032753977764385237105395726110708161591946613827349716084076820085734172977782812982692673540631483189972180288499553153905479632767318281197365944223633808971497997318746537096768163158501868800980078889173644503427654629950435934503046024044749994850731662440287554778902718502539283708334704145857732423153167622897860736237339644669926189584744311811349616580726274175998800272728003832220225568342235582120690837673222977099971818194729747939343765065871559590689719242103887663493917792456280564060867411030769361885372876372612889704908210626765568535450025713123977950106432740081585755522848321727786195405220680809237208155662877742112317799688264531815595332072479465751819638592685286213815309724412229637248664617316588610839131961875949208137888685205850472129584296790205929068629558877202762346155918493758926242057840287269836376545409016792152688288023049191784291383553342322376079880578662747373534980951600619038516144118349007983203677431723178960064646834761770807769753445811321320009460932562124556844471971736272203767107435689210117636311048548663503089385608265383354919074791963277633873775638424133422640051912460169607454366991834208404317322130938127830163886494441089955347070714270143863180029803724291997337533642094484268658067152344120410857151512187221121424191100759070736004610490190883562290975926456862515903276296701988717375884923780672291397138220398660369441401268353940467817813535769713131053167144067011638882288919616468225944976667553570484577686938790927205655980467820090282576620440934700000451787385063832879684318102493006853345385422236649269199999135949922502159785990198754372637301430318625138723201700892747678727416660399193575934570240276605200262447427535761565371844530193641560940209349429340603244562322101797572258669262551858902051857467284271586595586492866810205295831079476962283392353304934093662319615016180798762767412273545640719662316860173335134825113253298788651727443139141050853503180900462354531545403008472319719545033640286850261951454690422051817894396565496543216792966570613276092779154116813193827269473506339759716816276893250960349135132369728748559843021238798178651432874851729441580149164882349192776109563077665393712224842385361716364413377624056914026343245330784402218740179841402976582845951875529318838266964986795691125095942524627488809460012256591695290641183406881549609166637627865095717005679800891875374980123591223285133052535944750618571658027241665644145795446068426451285014544803729769331654742977248138791226071950063972837135028195257751327448180523184506996365141009356448837579039091285018965115264702098474882487310777206164240845464103936634238446841726316865855853619244843153353526738357343906342900132475488295011630547511292442092857938970037090967484465548300121047928955134467514712272847079971729416406913202684996055682718116324912099619190078248815830997765279317879362797152448900486091851551788954070752531487753959506801206251930393444555811179044677242918155536118472430835337821270605359964437448945883623470635627933835732439479759349395835789638416859644574189112880321190398258189146605211613863388518876844367601241253140902224291766621456189903544531724227064881512465313555632677068550003293752090434735507881820615740552423594584572207044027298715800838302146571390003945857701176542984306401586325100725962802376345543041191965590349743078629950534709513395553094114445426296883095155392370760900143194025999976888012248027295068881333522309635082735307333705270923014042760474032925318509331241865897047549430412764297995823795927253515330621232618993990463708535233143830725298375161527858277687800305188444740198548843904659138128911463324926397214930819822002837108511291521830964156423286504229931234636506279756490647091526478638348413434673277131324664289168915177094555107853501119474075577423653884942375504804154119079582567648322971768092503867537020925899862102693126621727690813663343004573147971120477708224952223741234614855838900215156089187037146597777238357349879868110051124037817157413185552360109000744087475408058326431766225556022152031171039475047132086274108739769870421008948326361285489180740552114115992712637303759297839944196174251591374197929701498989982829022017862297954287572440346866544196351009877953724629864022447800362224005375647105061308891552742008618618430199766569362347573445330853735981694066174648301573560974210083911475330867270286750045214851022954763218726289461130013434844922457375757448548654706597736247855928924260433570884773283954397228474399098603247177018543168393316025411875245965809748861414604605869985549614558356566239539383503730859952596608362933862524643694405937211785597171579762058678191648790980447902999600174001674448748572764922395770198645186955350909228465894094683344008562798215332024626658051770314696429386426086901234524255352646980340271251814740222827080364687362194060598450187927587450563152458133786145368871300233762993459031615908637020516858984325897329159592122472034609250906533754024163149114811944202414685196177600946275176072536083884342068921105842927362052640672891588081324756599696384904763547580618775692043223708000484760473381059544722540724768859572581565321937563045672258974090676667259315804393511492429443891580272024832708224610328443545553530361241130103440323737133441022361281377365403050890887927028269418331424282964212115856883949123234692883467441897916790798426010559035559364894430774044196766238837620294861565094079648298768207446939554248507975496968289539445781456394439081367502510709698796267966702423342142070288168075813756502021960166754193558721583162339003328322096195384697376009347050786056423682935249851782537410246810828984837396265537606338966248575368687181700305430806196943244807909917446746300986413377489537769377327078333600187329045159436062799969062357916785259126743866368107745798946748733108711970192170336446089520362024299944786052543411371962841637939872160077546070337016561793879207679267882115919382951175538480385238356177330501853918354488978067154193344857070606301423464085367276311410254690517020264915183231119358966343153851473892336598699381207867530721784236469761349940077629107420300917110168709704841559106356171158047064886432124714593024347149371167101411514046514201963978210122324220653635124729205238780126666065895303999438690606750186035302425950067888622174209476388462453980555675530016305686941318500822754390976959941292241182631889997043880581109999800528354967454248704298263695343073969297562103319417058300824546384908686345886679791253462754724674580027324289410707976792006914327288454416047699023287098197182998402064780111643807633395511015465211818684976558665193061106593476333906521417279245218274547109873165893661726864622738124991668099038950333184485183606455970594661576207075324650350758989097045666793077466337429839172372546001378857413300643509038407502954519488693448413017631323532567974077193953861262773995730732435270120733061584346767238440356746404946711162544220147864082069977473550760845391946120198338600142668434436720727397286794688086924860670329788400718689624358665384481721379622881318538783031953688417567115975317079912133583495650646947351722608413712741948226426813588599350589515074658696804565732017709070994047966085413542602437441617336709611249326163079004737393242491829840575354404209184952002527172162882534549903504816532703969726282751949908866981062044790559418392263916494239188897585069772701322063008796422388843592866817354501474355535956230500823254833092094156733714612551479065935644064912393850374223586591344119388771766627485054494114909432633386946606375156306883482410151847142218636731549593185435820542312019398948990236025214669156748081110152849653389219717102669462042880842161542011601119223847510493052751919067235746160758887692811532786240851120531430372257235207269269283977416712998840394615240309973746362952856424944304944641903334559826154755422219082823255632693714736561958243110591790122035768516695560330441916088992636462661347994493963195251584243236861682823656484375076140297816224912294490352892839960976350679611403307993435365511568987238836641001868104564212781111204819367772169714306583899212049087402267054437684034049266851169290656743550840979226001410547744824666031244667533731653109926775552381506963493372186383408651143846164460171873159763985289988902082755338941926623106788361397396480015032933881556618086767320373002017394186678436579249516369655596685725653147555809267114955071504433216208302040225578245946067202938657684940402467818390742877927978464858629752017415023770103606372466513925781981813745027312507651934350390498884503265653705451195925313447434929276202410885713610579535849343081233068535537163204191697348835067535558629102335785816794060235766865417441547730802698779049559456002783007667633742901611046241664813360902977772612006656056091050334843037563631705169028909575525988167862719584369070392897923864350199036884502595513718769033969075554945880166358169756411703392273885524823906492408949757407284694487648986891408329550378017121489701944485985276408367818848753064681223119655753337153387241629996927019398707287651723000064371557184127940287315536497365408904385528080423495389245141392046308281213236780929303266190564425751414837877550961125962387847961550990710441370876390734295518401222484937938257738720060007201471302565199197676148650047820783682132706551282837542685005650034406566921656791519729408505185645939883835478015726628716678892450569805072482726663287076653395576837273206087047206735174161644989906868129775873774615504093196406834608095385583737406734411610308457197614398882226152693116437474796119710247025560269354762028616090621814886199986378929829599253826761327817184678875351949763542332273579367829781067655352790535814353588213422572884839385717523483565386088461167051269942756945454575695697883659845504296844224430940289736765028605962348637792744496033389596561581497072117578751493312894457382794601051609073873099164853835566931732514240322549929427206091234643895478049206614216243716718319999336229242445818223372880234011489857714113540147010368724035827879667233403332894074196295090391393699164619299138360138508642139517575420977875018644056165727216662070854185988530704622993394688540676223156735020098289951242941806132402304333649308934567232629118110414866365812897800316967760683721905631759005021643856559571493594030414411537704024740237196762073128539956381574387098934917779663216123902105401807066483410069754737148590522278559823128015288728310459364827394706281496003246062232988494246070630797368195338506694939617505934298576246140869777467251988179378207626755733610978411000178380507524752972109047380772927103381793186042250636179455035567687708736085094000214917851573598395197060276683351934164751269381637086038896925405576014459305043186389661793623250800122355778021741731806726167718704065490249222390610912209455311545625505635256152994848985620648794513532410732802010506832338566181450922873876597244698879889631977518444951699930077512469756681689409394735630457432307491638361335400755985305446733226040392926254337265251057298344487195145810076208118855284177750355821471258261689025316633934471483991920352566232533010703039887158396277215233680297297440964699747310298191707516605356413733272566680081075289408484268109233863507081218192757306426001975232552196157060624072496441603823853992215533128948631783094670089516307727103349391948616562951240615636971076866489993055105105656293742539006567740149215003781981018957351595416259715658562767297171637649961323108934675379709316734110602125672847701974969051638556631602149019783604724506663564424033744229517547904481221475810229693557580064030279215264291189129874476028667646510186391846990955131546122804682192383360497233604927968050249856322599458613989266221107818994725334163573998690554160652460648228011177412330908787815472974558920710007135113609004449671480057036909582355078931166273314275854660813139017939582572164764871350759499470043087099313412277608036526624140340692531935361513835043164302154140956609655643416624601529702821368141988985376233599099071299435584837286999083088646344565294135972963743344324740854681558132331434839342756490089740646326238896674838962262882841011930449213235509286667012145112777941078246195708257266186905075240567185457619172735392867665654428595801648288490984811030888766076094120455283166223098369105307305941453173465845901886041884399628650421173661956861574552300834413626230534324640990084761672617944192047308718955800282690157055414035909828658994896812074339704464253030696292594534552723702259155538922356721980933983781232910411907409951611771671823541313050816110050543626371574321938904861624087210383460913654112653208974277798290297985984540234486637260119960789495399599146446004859655101065819024910136095157305885563719657090820837156308007199553138058554352924576616609739261736114388777942190922987337286361951783226791517366275319243069539829971172418468018603761486944456533691337940287274706331898407022797139283837421272503300315410513971090252180384081361415109370671078384328161684039336590194888575100935319277623048610967812312455734484529891494603083042277880132152650486996568509330655180635605763793014320633998075219610386200026075550429420799852848072597246284630435646761397050847429605274015264174163313543900744736655011801335065444681712918696707621499856137162764569672098120947539964463843794151632671003209368757716635075753138095196071096854111631694770607265210602798963467507618259203813386738004983496096583557681644535784659801344947492066164693074274111958677184431434050053085846067749903761316734392796959276294746422854515047490792727814278016832790586606587847128237001603897249370450801922311434745338805399577131247827161756079417887578255401249515849606027898018821671664656415208857641812431327107896022791618416944785141099969324254709139816567111002784574115542903314781945482711594452555831797997163583679157272974110779612967857801889183074657031900315128124656427331458051674616245414126219981386478945566496199747122336817925682653448672700501784361783582553494189907752715797205683060793804978656987330018623484566312831913389207014150212954611598032974525965839847929154438867029632884988268999769132803141020642752725316693600356822393932996343045993950768681357480497191981982638377543944846008497704954437208806913694463251012872529147108788096999861228667327183824895298031015949601491100062572496951469096545068263467589783550636263302374478265228225935723300934819679611651961250550352722980543686651344654708983176663891449721765225807114650480637556276144907453288038064046822439698909894019942518030324034101597183283545793083857858494769856344406580929127079869505303607185923638805129474216024587886764498659306746392030919829697460219551668176628665421324603804808396550929024301476972266691614063316284601330895803353549621780178762122264360567595861603472501706823158996677911183645709650342892484781072515405454327307864341064909510325573347171408303348501542118457598172150325507314138984026479052927535182970141517493867299803872605796894996489585098801880778519713771892780423273582787528730372978044606774883596003296078603385181378160996599826603753483109001440530258691282194899100594316116222367753060282610416559904483860484882428239411685964252239110509361719019149712343198567284911554202578435749725051127718484087723814247195423388261757735352269743246446996883526907105635654906375228997314006404423359823947953178440551374677054681421696797667157447902483032676530388790995739261284493833247160319867548355035324729248872842758339128161849922070572475503360331350690103589211771995756196756695908205655522283996729892377181518805681097082055000462747611148582791896861324688017029112891115865652026555321293351420376453086195486771763478844592885414855872388277016281345351998771157430792719400332947582306104820648102269388167364638395043164001117702060903784982728382935805143082203103717021469251732287203261810647220564200357371597032472044357132768493816132480435298650043699439515603158207395208842106160810328498852963527329154475717657588140003363268619064955020926957082445844648122984731226787715182170519833244203369472627574427043332691372539044753155787456148252417745820981759261410337287942303523933503019237012082103172602808363466551206492372514178693810108068490323041764143080559724902174505324023778621230592150374793528764506258724664528987003848717529802019893655056967245562361509704335250518687144978561260933769570199979012074703367460909971969680530543944419576894557626495873110629218217218790128681275284971947540122053460408393072843090926094950962524950418845325221154584316694989908166722494206191060579058715907969902507422027305658235189507048302327820284120205428161476661482252994369915196572952044582538008680736724136349852090880279232389720249524543406841725630389351897909873362866026120146599715417915930137534491266622015403637110869042786629268838987065237925292874780807736283312165635608643612787966624532153615171844680377121174454812650937760050436914491845074036439845828746527692594276125465032618667038841589923638797251007901435689452158489348133597677927731986930876152369503745873764267866980756485761723094670901911701608137462401176605326372765029594051457320379425874816141897179919815028851482875108787973277658949456608901597619263043653654118671962596020440620853814330070787187207065575563866946829024707944641811215467649947318819750105388673186627804578812531084907511439378455478422954751513185337135879604799827023681648458845496166802958098211141800523006780672323908120075453786238265071685001812751014750363241787825478447115264158444242464349702443442548424539583621970853529868019552964803789367459305028044322941131691431956787638770258291831926254227791495680200376239861666018852666945550660248283187613353232397620588486881013321331082997813958351816988209303632838584901220377810586637642673723107543250611365696118170817215269847181439174334535679324091287383148994335603868165431162336045749902027734993508712242196351676769406600152442607671507405758380392865671725790412135781045993921853163199762419907854497876836547379490347629826724139370717015393220014813415002403363131736919336376465667283154853228095133623209169385370940106847365654653610654069746234209500475998962919035414695248774261520532066123745486865198424292047880523763440918612584154572448455453713594760653178228656702023959739180664059703833739877800162501549075216387998056683028786531989168472484615876032963274512216010641805551556541840516466038884272960609523234871393760543786803386204157764748145388309891430962719189922795687230258203976262517491045248128459359290800811784922374341615677933973778704251950203364374546252093450814935020588023710147172187328081975165859623292941545707935738170771062525880413771175066452942728345058026397866945497065376186793981828758297582713083081737124597633989874607624370771414513748881157598651952240688262884946198789197703520531694875674702324619048008858455599911734191741882498978749615393713202964442510764689505794058142922038045637647703163766583864808721862236840365810780687445251982396367691393350202216651460887318948923622732224201255065875267199661048516504916108255690158690147173574563962634694544261648008239993806179551632716107616540025460709915413609162063030487619975534634588225987704843593068560514390820893786310978626415937191079245081510749698733185873140936155911677266042975091658985783169691093909125355713588753185087836585438274122098361443086125458980965979486054599899569982889306226812312825433779212070168520313469903415177165282136793241685921311290585745503384641095150437950452141445192285420490579423717213492607491762916822537603680654400874271747440439361915088606804017651840167258180758570006508758200429862553361098981648040272275605172834432159434562333284948734952961694085819607770111855070411469854311335605453714535656452434289420354007867142416396889901067175244085085874823556558517933026959667322238836279961883671909708956556963209700046060760055065192031760740295528719070435559877634234944649690452302815018850346435358587616015281194599098986397799747133796858728123777223413237490160865431079651514868271563527354467364018928584577545161090508415940723934561754759078392068322469421709112838195261336021840937272696204968796543827134114619482233933711345761876096350736831318989200004478794814162892541241184866635274869306654729635375848022385645033268009465588069254027597101626274367330261274251326217837767035276209313319522078102701771707523717403268974142804345856329464463492886623803237126321674904171630830903929370557279327711286630020556901188526203943461901431625945375501394125776806795871210707992946710970025972632334645422483912079360356177996732986513001366320630347645260460398608390300707288589374039733158710821153809657415695217362118936615434732903445981558958953908166187687446880333417865913357865126550823690210179093741113587566342937065339352391913727656017711905347214639841077816278104452189799897894255056041919360305078229219518880450980680207416732750615179673141320708996221582239956463678573253401409664647256108485655153134091002978796569069375592507488487502179299422695503498056582755369636455066125683851964850667115605475850778574837349229854740303840673343224966545446354084287198666680957205977290410908441804273664530426313779975053885349792344515204844320329812058273530756921477962014513387746611730946797456332818655281195778905602210161156186713019448391942322185409407994659651237744143324983146280917673327919143267610463110392003958017272640048374824140395480288857080373282629752545623418595974425681451511873052986775015514919614536974090734074529701955595109681675035682413304495305250863462697722948671203002539210329413187660913285278697630365409885915679962868706343925930507363693792636419593649444070771787331742530119117329204132900163564819819993729269830102149129369650267975103731306732990690447690813475179504833548904480031728214593529077229884490591576409212018932145241250377015217998723344821391639507998226610480742253387500957268823447788930173469891131172813228611725563577868255829039980460288350632934634500617642660088627360248662195114958874168206685117636189274633131516719574193788156981238004577016174872830385564507206555962347948454839520100573951863351183152083865106278074406722676211920372340467472894049240740516421355412588236516617195286650697570367269235829192171649872576845685625133954339683422543375373591997321073698660946648448720879689112864001595620119511558495818877989190678349048428294158718128675830534850905885263233806425140155264100988583781775629414905520205265997357500593735303749193757252288573122859921891220185678282169035057476857425876880601328302810168095195289418178962277565120031243787707219869474619455130863684060709816639958330653731989581050940840201554038108257276252433626697598058616766304435366427551414281668624917742701615462148345526163437846781042379784679413088213699686076836594332842669989158205801190748959316590452950175509098826066843610855686131287114761651449685384620147103671665100742883332879892269080487921333930795579600721897896871247836637541575598753858440804753580229939600201126910348985011750076153637279456861290699154565003186559965680720573142168593734613181102932046826838358922262525502942667772509151299195309548644068345158952517076594733683899793693303374040431211806573181945153111457597595321452368879607076419854134991343051781929236943178927416027479196146665467325488996715570338687020020601807114815653149223864902478282844058559396230236038346241528975100052580482837657701191311181197056355151163791787582450518212066415344687567525589122269001311541444599079300821389431750003777850070986084669014879124111836206830258108486634072467955242816934424876570641549479186459342542902200919046832910749773894739802083802254949026442275877979275961437402598291813243170090553680089893100506922736986612250890156769576196077068251397736249720155380090003627251946782224759371051110980655111462649749133082255486405050170066858356493808840319500172687596869852067365493461364974142704559750649992880504599335556787505123627519588354559317325272535376086333558585539187182113186694597137213606967025567430616159244207038301721632017352603364043863446054287620654437411598535626302912632316132285446470813540955543054951702734404843595138481379113832020460965415925258783409371665010831600153437715304024650771206097302458064519358320472874546189386217118715907189320313689768148722300603805263499042228425444726921562191892346933550374008019014642666207596763277081282369182437862055941275105710516979582026970167295833473704440816751098126530895268224987108129298833571388802705123964017184143267138072609761417005765636746923365780522223647319380801634598920924068842170257968899971707102077421373878859085962269784230296447651658989891945051492110431869290646091413985672882345385937934608571074269617998909058861596502732740617533161612253716404801323709502206349237274239340008171621037974754706797292376969950113971058910838127672903712850690710589838491771618450002725821373587115995340502716143649433797583553844702131166146276933888853204273858217103590776087275824573175718709297847291669193413415551920409770474671314734100993433372462636733627869280272590422111792255164679624718943814161628744767101869655012905899207737056638918009897107486251181881907256885299341966060373720445868882820391667177597483514857984389221357755246288870518581243146848292464131725502936812886663179486658138035220733021914880457082940422852521508235354037310284683904941638061223433324077988997764258661260543395167552239491444494177843783166180783561208243153348676690847478916121347936161543295279416174671328918902932606602781592654287470088669627389218258630546458939647822796226598192352156018073821660131251578770785842908695249703147207465655549430975789531902458550129642902351598120300953112327849295506586615815837823478072137732667356008357871495369078686184251333219268596702793675851891387012645997435627986399325138672981305566917287695556215915276738269310768461079751650306569956681592798333349038459208749019610967909016096349027541832572962556513508063927444645837081645944448457054881484204570618331831349305879945300057472143784451012926287382456617612258264405084851943598144084389804044845044339109670421655615564483441332085506050954175856317872776767898950268898010521500776001730505287470114410585264556748600126926052590663113744565583877996573046402710212636745222456918125815494703362488559042582656801631120450094936171462778277171286479001519931832211010680693063288188475203068367745798464262418720178402606794617328047207280038942558077834778477405138413789435779786128944132725181638365735268179276088315320626524560581879615938245919665789916185011753082752619232309705241072522204275982784013800462475367950458567219054640561097356066724311521656990416481552799008063751869262435403105158327646057382780655384222349133508886177348144047778079360020060645631927868426269504277898096144758545482252901361759858814029029597499678773632585935433417204161598352929392704876639730407783489064064292453507121317325575176664163054602944233777634386572217245940331403283827963130220765375199323321114868506349384148762296543914921125217430542692332559701287603262391854260887655756806876365709061903748579341629913939106758497730831809317936470069506346713915342560362163395689436194750459158022274689787801588105431617883056230640986563940384637791186460423194882834668901999639949617007168156401757930186479727552236895861307027745207457298819680701487937460379551591120481734034577946704306300817421964271309071528204380247955768535965231138192488646723616872993682887934891808322908371816054326986031077940087004909427733405367119529660370589213188057518349507262008342324711444487371648063238302690452029810957503421248602154418244885328720536028912349901115152498863234849462611230558397125338040572039938023821183606145079437055392713070372552271622816104211346557577024979164035493408160135263973177772383363812246103700107634342680108253063793889730450108530436078476515022923799440547418891559305466947768652942706674358281902115157493480635136456989787662927206356345878713824779027953956437382913327637786748951799904921253379244863646298123156456867078776942624716923234100300903024989967209545862980701052135999446161818421494967387435313435950257681342817888813140982407591699886039202440399501319258105546638090775206431108158908219039512031648054955984983591817366414793958959437702903815827178178841108146001954947728158437443594067578621158586181179069291750238049475957631762759159032497983004477229891396947837715882920442425844974952309248526494651995225881070827553854327292582317817481302195081040343780085631548917496199001874506512852138876082017455093997758845412537133002435486721605921996598601678273146407141247250558698806612970721119448635453934411707568071007284022645990779350446512882388525668584591450834752562317990508971967147397739455684398861452150558465063721129123334991006406592324092380326244240838432668724555881532333037971264565703678326174583305767767308695208881533705676856838980650294146069233974379842197045922625205421935161909364229072873713113894405608299227901232725086381276748334795094597048078702101021819006375510384641966265632478148932297100021668431953911262764002475250417502464118913924770350077810666610065206878921122222171734314541898247262428218599328651654293454277456007831595022929275783947875725056067114339755918923354408699668856355330555184075224645706482859378518818119962085770242690849117601892350639361188334112169508605845748408505405794373645398099600977524257000273284385737307844056565468357446871389135753147480788615198111062497152203054986661321151110495314258522089181179751857442419060599875246629401374238899558871566319115528155544492070399274621262708141435892488893881252989993622210603468096666247992151909525012869667189045178024265736882440669853124919579350581467699846164254032777233292703846162164162138815753550285461157073146474082517560899976938212303713411489758486595176087957594881552593265365523526191655070250188152949619899391032506703161449082716806684402007209339692469007973761985091473862187185659162804675333855053058955006097954910643589605543549650899317040842080336522559690292262027481389866486496923362086065268437353720942138567377495510286145536788624104982261464886241617979264664351220910038549447610013539349657991088778560695414057180107410656142264367546420554431825644197588346105003925022625545257366725788038997762015495317945520500361289703826240582762561103703791897039573733861209057502613968935812665317643976589042410237936660348351268616228936112524822551829221001976598473413818676542083491980612501813368641523230964532967689563401998573910358223320800889344419893015394980563821550805756950943820545731681318505576709113367710638439492863376474530405041573307236706952526962175890787963720320636873617098039151797313463262398971560299428845106341515504691097191931404057018363907110419411183066524950124207897367652441698304426481559795342856078053788093391353862822348343561325177058956513439916715088398409142700690697733388330475021306689699325315787430233608218230419175722330681069681767566848747087656333169132242276615705971534116681857415436549737008839149465811889532478258547055259515485544100433555730150098809133056320479489567772512448524383610665795448136872658061264232060773865017071417749071788842420902164456681799270239863408752566637697750992721885791799133869473248155565038977887030244487851027577657018388317194309338411696562418860687680950779482942837118202600697778028768794574471764815433149380580136277417065942528062183706933839617779791126220493705329591579839584180397663585566296950333608945623224869960913626369139492081541946543128500357933393324046469290764450260089128058685025398847208892041844740092989977720565960282318097237561973856942745597677826681141823333123912657117225755904300303725064312964262256522615114548194441777502314701274967250389354902067521644301818542389864788712757441340671325383383287849013233254306460150863885008304748243205427922545996139332282090772845652459065734790518435240101772366794992862901322812650432196246441350047235349314946315748952935589440462369835853833443551207275760679920502547277475875332989226210760002645254799152371410398118303931873050401999495430849180885148175258327989059921883505861704121178481287620595416311316172613445986079035991930278917343250890285220028836209921533692733108051963134548515259289880970399626622572044221319543778108443430078358457328984873959211852497261837369284592258440241189563454888872988435372147666879257877214026978448712140129872897191506913464578086271621325998651129627223914663916896997507959597182913800891477774398571963662399472308541041987376059261476069774268573706652572346456045112500529438241436383913306616891215196612795379276837939448860387941556419195778572080057650570978798268499842788031598261413434261271450594099518140034202713835716246728980911871924804755926325841277248286928118633265734167376890350279645810596957157941140761288460882114841898021616256655920745275536365224316419304451434484139694228017497368845457605307532808376501275485266840719843354329145786264474181493243734086981004930009864092903806674463582642015647545824356893620156805549402256286841030888013857044727949387219048296065122779666499438676304831790467256923836048201548657228723542995583758248549299980972558521760751146747268580243555312103330677581289431570456953347419619457987361050462505486274763951802218570748644076010565769925582893819650994489273575691686931761691542735529683164705571426136207294633484193549316334743166730241254150138755642311488837215846338385734327809853701224332771500333700557082110614820918308073623124115267835763483204134056190527697154805681174682674518048863967122346011551942849581388377634139049027411676698755022846158729181348310567409571251957839016934778513944368361757411302293497135181937864183429130960765042012434032145083884830815887797719485168274882181158478950527980891608537000844878607049395740555798648465179351734166270274621970625055434463365368648461422872548496334365307987728060479983871341855401220902022565591135906442222618860433187248830316741218262682617526935438576099074654318440622765598115897160074338450840507121840474913955443596961970197103194258974393237377273355697190199604071618632620261396090832853694736886672327719710605201180338742608937822143071344482929200845260865602661443397624963946936739449308492198440115674141798989298171157125546441146318024472962931016246025346329228700080878846190082914039338182574125866258723036732953624503059239467731511584867698123257644477186826836172022200765407789894807529900357015507167796098031627687818797511960401547409096313429941658666545905060883612784927197051926047182649221765255986820014949008897955061077055129143590493628803095345053590729571628598858975913721854408642996666795677648322745085307841156216694989356014411649140644742656727010148767154112227503562982579017762358252112971322568729400724279113643212088729439885588044534651543793326114249537640887138911995371465135176368656889138629340310235422149802707073423255559668134950731863354422588370937139030475766641080042499670342413935459625422227579479271878010611614883183733257822781517474494892847951488694814453966809745868753858828311833155896180996167355234892866253000395262941345934342996821861281825521867336222207101971900381886549053448428694695317078068817710886899746118142173041635832856524146760074973496837501854132845359168060102752388320385488702219595591077738876113941765035477661678642968455253963548256810263711029016509385908114826224431480066249565905878802709885826065513427025050332113062583008136668086162258682500945346910214899845749953430586800891980167484967434273194692914677503505778943931782531158883251926665845226711815480580541264711803948268078841563883003576114612465775855177936146574082146492082855810282996718065789543351560164322961972335977109233195148531985650649465123382687389849969877090587662128281779567173287187093738195371575772690170567359605268979181333385850192069291037987627895807437887792513536452216013085389631890689287632082583812189234007772199045445880771522008158597978616772526249183356315758207159776067016627038901080606794262700827657856608472323479688833345852364829188368882319682256633927301573556535437112727487625214128169647651697931689540261502964687934459204789523622209042732489079556491221789817380285736592540328690950918785786523520507876281203771391256301623252199362533976096429933778296494250079895575003950215330132744104009966629482844582013589156393196783641669400645823120377072913700152323919316829818200478239714828697786500669681641087183668414049506397238396656573016259315105713739240058881349915474583419611924971744598551073601669631947482712577947014552695267819307166569870169253667933707307732091105884800826313291133209831351131264836863970714942166538996898151801353464935724784543394793186830876691187236556174378133273799192159259996774846297534402899384917087033706440798542492954204220965577895810924662851786375711885967457971487091595577919733789115288865642579651147043124835380896104776528687216703803412651342516131012601223760395811872420066044421150357329893556154261836755812072988285567999573587700490053097191779726996356389973040897124370691748694975940340899906093331229426760221688378974139309910683328212775135586189947755052878644564244761620672965942838468475921992150120162749955575525226294576229358856758916535469508760952798005587262083580165409717369793837907574974089336524680508874237450062807757309105523839031008930080809414331399043170184031919086985062210552516988191356886328399484044875437470324716395852606150287987324337233184800217481199699763322595553946736622261197866388414648745083661952605079322550191226480125370951087245061669284174253996417635342591223931304073501121085905542292851040970685128429770791886769087994859175573301075539900810862476080044590226190721024372692462966923000529971356476746346112355915455691616013850370646155854353816000887214340766454306422294066817729156721992909340509356489756612143230152666162862164778514017087550114705665569550539896535816427573009763740073291837204228195186769318474658103663934243109038110137359155375244461214576179090050112492280953324714683774001462711646623171783142050793267129446653878745263019697328226858903670321804286245801355002263739395136214568732560640172648598671191553812549024599371071082351468829392181746597157077470788301703934034955286711257305131854618028164420013382040082409995093190578232419668656952950427124424247032821722814840357913908522627251402430948240533023102320469357369729809220244581047255136681751489048619128392706859364120317471212999812840019474583894208368706144202602695832642364929024186994962824309511024427741959489025773643740537623014355845792651923358232500180177068275593341149402497762292473376509482373855990650980214121840751052966419216996518535191213189596179966255804860483496657261327221014913568267680924618493082344921915945039660645401069025624182889152343657184563329799736408520254488944891976271238460217917316377610532432388719404880749606974539948069928120570099658108975589382128763996072680737132983682409060425719493556862869042397241119970374356389616896998802704678034313089774141064165466901504501322356882724172878311306186654911083352356590852777797288378412393893371175998231379217752699457287922442783132513434695759678393771459356098121290698509160552016547470418372525217224053008421183519355518472185988328692527476071264485008276289928346445290863927044187624499598556293698645200438011513256907801518878740292367646817501799370331772590534678434609006725437826470851968377624941529234872752196363516183389783224199793429859342499129687412024462882564320600340942292449424745095410456540482710106747048128135815164829467787258616227631996544062988009853275844360646262451193484992115453473732939923047893954761148698762501877781974073282937000063854549102061770374783662001777901942822062013178971258943548315897098556499277800764753269829217028567104533852532937218832387700017458570797988067559037145609101657446817363082609752996285400989833562391964453678323116446020251523373019685946482964597435191590719252955467901221645129182995658819937832335575652714815810286790116769556238653879380328042939589441623935527449295694747790481810034868754036430241567369827915670615684324395442388391688242387883726930793716749129780879847900747035493381506092919478762131836742928093798241555513331346162340303667456406680566157806413044740587214531991650336422883898251095084702784392423823765413251913679744351350560983426743210191771031833868794742694844837578723923303946781883389612658686700891130918508749890119929561648850653277676881708708676003549024497626732757942226341652236559784295063035552160443048540079363258819734650647947076154203113340237306491672327460682837435215776062961423698979845707041488073055611553043914635751903310550446768021245029111701128161148866222646525020492012694886911695887865591314563824523298290056513411286199897910023741577600646659655220138998901154589219488790279459949292816064667754561991130411224942854627079245264329239687677283465108854477544934766797088309540867525805716960824323382227877511905163761990818225273630475100697329962225825445724856862089995280027364063193289341494591038713788877164754830694979618132604091761817420137202917458726695293411660823591139581383413135430863044899375875926472495158428333214594456372108881661141837035432108803635589459678691489888959284177025547463157707389063405815140776439780842989880419833381127656749970486663842455209470079785187986083306951918457634064964182781383960559335109946488305195752896960186495683457977141395633656974396234399917997531872391175469442864926108189881621068059006934911584598397104904900677939345805924232055786102982355199798426625057422528286417351126736089993104557127859930480202629618391275807592781214358291203082074305163228938387012540927183375276145940215842393543923109204728161535326538927812750106954101423845936101295174509009731865043706027084657947953062451611206690903117243750403360245684834179855499027846450472676870131515905677710696302619661656523364195408742578348138060279594320751845333196722232730707213595828822871094834527949052297302205935945264046545475683106115958289713866139271715932888838942698361431325318391540715047050940534124192496778523275147702597141666678429429678178158404301224272870065721122244827592123714755568816139804754244529484806338184415527387305182705618919983225035996979668126067673184124167001887782167560919754852927413513059072970801870923621298383897365850267078644695035969574656321299799962411749843731652848504587298476204099602827131588296667748315614732994254741455543090092392326050557537335331603212757878356768004617961144224350518440823153392877962788688577912502683430708420739981607182911412119787819441560371794197171259329725998157549587381182014022363384816024083838975143289568534757156591230550256222706942572332253297422885003817015990055278258908442645179959486194822086100236483215914132301848338278667707040862641400905498805646998494042299644990989407853589372036684972580272002251710884896366044661717334397369093407963465155787686511594790639432733299892306291652070207409772193548908611505230394783070505708339929467401045561766906205380205126130379903327395852678952416566207035869614406372686020614947890522222608104703012708208477103380754211069427265967901322659499528240501299707639533289720411472183188201089989137009018024307348064975210215361032730324412370953880102229039116798635653463009314143973879656512538001181023744138750566056868973206662172551055650675306489106432501478370467425820121720120775510835967638926567460051970240202207294754325699648457949717594901461419048325616784620859645696866589904785612432125197429094375856277434933333956157642401482252906919092694167918685869144435482445344276182860900640364000510767627481185019121511990424049691520941516133732716129310561339343825622376878046251402085189047679572543288658824368678783963655521357489722660023847574836564134281022437858940308419547214192029657431360819859187532742653687902141176016441845733541481720503577972069184148681133410213483627927159148856159650706868747573375213549101205147295468255092623490957990168652991148124574953960713250558684589990685193830110201689743551939819434547437334454271950990864215517213822939018358615233276118266590543159536190111983414967921739210996165230162109045346318229474709311615149943820342029142366427782014591164154616015247875704297251310801442858981650859502149574245280578990812728424120467488592269795537150240148311520587311327208104593483708897159954209983024827742738266472389621598537392376380492666990176911041333206202440729172553685674615347066878940042399331202045373579127316823147693645672201652915715385924086248658128553361737166319099786537042629673787856226152733673702191124396263819459682998480250071549160111122471004924071469085615543318609128857244520191924476190896981012797125447976888956056868281702909083311949179075149836846978537517430366889210807029127706498469575019594825339251812623277941370776852557375934958933817743499992364171690997338862234327360828449271897880433071189151080222736398943861186673024678929270934056035333102361074211728780316251729067817832310808956194284806332451718796351542817443393666409036972984355564966420700031555889735969910317786194105681423116448099595571665405927407714264580092268490372920840476730879572203884628551889221317517739886340988671996420730652326986848800109696670349923224593547723264524423617824855170142345935539059954789775171020277104239427082304591714734244676935986563424317041220699275885064232866203767610018320059887010094158223082429005196434510104731835584628034627110732037967696061034936325356608377920310870639668703233095606808042501093124856198918150303587020717294930378260552156121270958663486260405857530041846985523220424085159739577358949843882578061682687356075515625830015793873160443092516521531305545636115937615264618250072719560105610802863110092987578572276521051491997570316928888006769925025376977854693970868287824413229258664952666164647994096545681112922727782538398401848014144213649522489299718349788543380857416785317406261702476762483085830050459741852025781921388924705583189876471867878629542819301312435207209786026041744179924987050805782775072511764956254134928561900306346139112622505512155688712818727202193243915915966633520547531366985351489940976099308301142502988733585658264317436157366609905105007379476611008422916126829844087347859934631360389510076269410384803612996381537946310511061389656951015290684160611413458780730702396920327939848654736144483665637586952640493445564257750278390997704376576715814691236183225310726910338952552678349587175406686125117376384919476053783129342264803322560320740453351338056697670032670370027551540908841058541628092055861571735042775989715460793070247599202253637050003345355981541909011102766849047528559608192983519626697588678650180976618429914384046306150430654970740128105950846766285623119537789577323214321550266142556290056803750849346201033956244854527203959985982500720605152932026220791285247183030480495356913755934695392453365366510312917309102787155158122365613468418863530397719044654786361261195996973212894743033652048897224981568958645043427018463367287661533567073916059978930991965372563886552671794035408525788817441973588669761343609206851619117700154148743986103882899216515262028710674943397327183116233577457012524181197305231715295023739574318153189250475731764376544303889525735410870490345589898402321772617110754048405575356455716301849615127755621148773649707718095253599994229103326516207349492160908658844726508207240405934719468620513063844479786979311530676515996789136445908415383051579258075016483115406116124039660707017843182435063267435299667163863188480653763756325046326189678746298582591399915142424083840828026866839601489547480697363038085424572673518691126628965612037299834208834151366590770928686754581644213031948690242491419064184377911948130655960286969562529921668470486836930620555003131473152676776585565242633370762938323661333142049714302410601269276387201521552132958216535249194602332993860207511792446164670040843883529977522128330510746468203760525634825093123101064359672909617798349035608245787895726512350722492117584998895421622885326636682509635597663256792529795475084877408082370646352938748875565005620894386713343920739714115103411690937554340559171890702670093482555390553190431177165116287893187292699822864666848385796161617962199196470767155568338141561908137005459683217353735149298211309643731213231565170713785753691449395638837455406724922674292969867179448224087350904773416137099858459094594445313981966851263355343911342644696529544391351352465346543213648089912790660681259544316716887745639866604968010746192205759120210520206640542345819826095947347316605544078951990815024546715315520131170097627465530021521716383303712046190797651877000021875753261052178140583422327813787946328033666336655393136019321838236802109166073114707618659985155679241835396736148579967624172654781350671396346994660062593639940935748889397913467194470585910142853368423705850489029612179347781953003016555410562898710128486835591642108994150670357301309709523017473162154266018258808600754309627137033396724550445270347783582657547035854477602814233927748974637585988421614654056628240751447211428928543447539016772978065825231910640808730648898692927614090963622993642133910853979604294940776115907158406886421221636260742381095261636504788861454724319390648988366840479336861184148316896780877012192369228096410808757197237575654094768903698108634807999127327511053464522660141360332481293836750925542321623284047325291185748342465798823651713421434281922229582873261560162200850206061842259725912665611729340560674781281595640337677342025153365228040244814344491695404384716256194859784599932830694604136891941935376271750293097717170017178031619955976265604104800161608158840745005798039084529013717701512026751622099674618883089361979685447691435323461384468878436956815980044094993242135998842310172442832738269959883418185303991345644479872008367390693338226412708772974695178324050466726973100992829735322392590193280307172677935780237844260294329333079982775494048228275280970848582838559734727260773073547230613199361532130090253098905065927510859929486243177184300210556748258850090660016647136561355540185526945661131940018676961528204236292080549640621082077838220216364282513501123944896375919339692367498769108790095891583160069260669371235541059792524143533984080958403556854368312628461168926408488419526284729864621681562372737476476110068493581840903927368923791106279239956008344829867735215281276129813498069118046575424235527239403067702237180951594963431136635642687562090433465328491256938303757989594431533356579739916801508781589850773294154149682391309248948710909188741576280326965150974062319460329925522734759263231515938589021783473595028103101946328303498409236958942658549417334598085230552460376671430421336326664836309695042629215558615485239839732146421650587518944834649637789291305938386381131995145853471047178892702638151271716236525877952493089243365269417379478613976140962441388328616038297379835035733484134301999805393101914386176702251126041636106310774390578010848246342845615125831109312824435105971771778029937931399557076210481589359786768949019882416749374795004719708397158729293280221788931474676965201865730192867185571570330247389228123069725317983526519640506853326790336984856144194154661024496306949027637472690565526106030801182566639189490208855255660384528675498331077947013658765235768311363250248407859022198129170687034583834405004915999548498598069249531661327059882616498594596782212334128008235615259554797284973863063230978799360797268176715929116492057725833629072640553058046640395390824456798111581273699744487749682739899166279449895148953320722669707571953682695909375687847735843358845920220571140301754556960892940991827662792720104994790240208180604071249273563079679611961432507526018432655599083139224091978718325818453296883742610728890514482877671868602551257535409750676363307388982543364885155744263413226217684223518308527589916667144630131420024630818292067658082478096878610393215672991225325588562321060956532196955832719914277166100139277804765369752664598820478757823266627451160719470280778397145668319900827150989502356674772223472596792602011257510610949944226190503182551288280570585351620193918211260680035759094514084280542613816633565492230331084090352511586027912141096497671057861703791655854629542241199169104873757941323369177756319592710895596076392961894865665890642923304656937204929793869363623454617838273715428366098029248401645540089628666446782925836286118516657382024785599547925123440782010089671700285933644980126725306169700411174898656442078834922866223817316508959590926758242887656880118849210923960768405048026381865860830061037176624271864000686015858815668648273632059806623963730502323769133617635851735175252638076219787914083186068336940283687753687621680832380998426849224961454642180296667990301199638102224818407258508996276991294997855031407256554851612192832996095882806337845234160444175498713547105661728325869487780660939749908787199452461673980145430566751926142018855758959897788621397124944790722467650963744720225934512418582138390405838098528370322330124677157413942021786057679587011034336963542788096000294513318681010549716852145634220539135511681924806154576769760055288146248279599571163358081737042584200141758021879075416401665865900979432635516704520112575986001469894963716421636517966163671674684189557869104710016699172843592140887939604282285403054620868604619304130882778456219865277609013686266576145054327519816336994887930410419561059286028735438086707409105139157127313832410610678569204366363706951486755152499989564846340516208751824137303360241403781314071033374918159572450097890421042970649868343000678503871597151464211847716411019625684669156846631315948402750708987788436049682793109866154993701822877984701073653754754614429394244372192977868803157185895872451331244094389732843226761226065251579696498913737375809605407862297609106542211984750223732842297678260592892703759653277492793890708566448595935174764570371023478071179159074842878268049281855934195640685967242423575806879167358912295769354212418221768834142780696008745693409837308558272456144025210567422872719863309875433891004631003823015305098589575822487584067124086317974379674488800619650574357106554390657843158109825262671886341601565940253574399623722102314156173257371008014717432498551676699481337455245118951550292382086870780757221612428084455013656297548706409599024227490511390550934276910739148667929033357657967097524542753821416458155328179248947207517995353625206939232225956843028948403442348099405915466448747062204792409970309981257681737012068599763004508544342126162206835559058796151369802216124792599908793387011159129327123496482468218278137080787961270696408263668549388644195618123795151847912520652836554976995223886520759993656227787743484679114909258720010146395776362053150298391113960358304625158677505281478540253094473372978757048041703889873076075494112704273345457932737683378541974724532496993822409344539376148844633761972281031710395850729616507954484967047140835844203902473969096917946702376821626446354548820420903275653219013321106980384458870688331055600559189526509064537251970500848334921978033503290394602260630269922257157953731331997394038072978808788499757855569354874323090272406027283837246459944336635994153371088754974423681328520228593504662060791962318228624612632797970218601942494391705389884681567823612944140879423015976804508012539238103702336391946879985415488382045070657092692237265728772904854492199407143664153987219532574347222994179557791108921309846758915472519830445536366563885975508475641610769707676665414170778985228334996322638161961516219698913922674232054057373976113168701105714231122038243396790331900467328604168301135842729930522381406754554207360473440735094912741018031683119325917478917797237622350761218464935631851633943089823424662242684087835310907507561609409492412243702937677140894797117882630160319274960143230116652592726197821331959725564067244348737477332875853264362692767905413272528695234202340182365306492166344697415407273456483305291331271708676798560214335848713551618200113139614488808465931514435012963925634335281423273971066515321632418737388836180073446750439549784297314657893839903529494686974435506145991985613518872817880939059681752232635094210362084301133797958584490358360899284671593676737368496564522252078404655379722619720633999562361100569399122241660368538838119223357094410217407821691125477561597824793453341835332060535236951524017767830746551856801100993240203500854911477859958169074849118815096380867389152757880363537225145488927265819355759242571450674381048601261885952945014770218301777306011711298226463662957895136704309878278595649285087108648498325995107044202370098778075006158401917144295376164678726312531385190156450394429341400803559919156877309717297337507356578327376040566207891576748314581250092560154186990091560149781317619733510158890108315381943374833159832392460645847768115655847888027639973338115843660176326273564424071117675904136856144878245858681396509987725317314704708860428591760918575821741268363833583094470182138609382074019850984097759531461047578032952772291775249675970218694619937843402078518770407105411841920400031673948234231880193982620711858430126030132690111322870169408059965043600383357082632571605684369816389012642227846841623068291781101078995879134451942546269113398743381321939900700523791996283572967387890369068887533088961126673933726038041748548080707856906035900778526663790125354946254199347503973678863277073352532323815246522006984509538088052383307412460447928446247600248584313544205627634803879536439585075932384633758846247103904910634170924268474466957476943425316278894928268263047690435259980775347821185878146362881689887793958393609202365513007778374814702162266075456269055508349607734974043249040739209006012426864211770412324749813869889217998158739571346825198278570456104154921705345040583522289482520692114254939428077707179661731566146438779251536522726834399774582038395472486619401962004353740565573140863405639469888723596993239177944987229737255519946991088655207758508542883493553240123598333806406711341342842652456709788678953338837675159259164728487928382740646002376718744080406745167598787522768021341384015704161614094145447746415528152421053873369364057703951469961071209843764527881050949201973100809975779328412057174134479605668543315180566088349816563997887670471434342260777705020586800448891427303243085656787764082840459345556718921408664573792357529063602393463575824318375648824693025758375876146667334252977928348681730447228790585414549262963767716773690003576482896072306231097571438740348678293510847024389491294113254702867114728615289939818568202292910957121582074029095084259716424705265555459381106984978011963027600771833419908786854532424804947718738675765036730363258551232168328005409617935289705263563406398363536472598079362561308565766712229849142525283727042690408438034656830235378632879247470340820476629166830313083542595886464222453725371553662316529250511162145345893359227176321634879870323235286508519120314772637756362472942911388000344110437575553512473940036655016325103662879732462489977674673360296178748585512691229405137356545913548063244012978437574661951145457005702264316750041043647506305406857212561564540783726488429084677881412881487264315513085175012658236066078824235304732010314078082068452061980596942359137434309495351121184014684459021267043559409694452002910037972135126539098927756386720180199355428428560777153177259270749049340710983867044999456252533125185751505273025779746427371835617650391810095237258431580385105306292062576766576074338119845918323928104705156222128238969046008514925376005323098751907259192920184952581319984223259066145755745589494472520050350036068166674644394066502773185899849454238583593700228000172719513691229893464155139242312298828006494402001549556622227432478202060217395518115169922108121307922331255695343758474482490931490442198280589342202415455815745887860768615842110820408452999600093988531314181705086302631528315492323692157732398686932214094898923070804856803605624427883849370642340541600749305305122074467133903799732469525839455510039960118787191571139769961221806271469238217333583906406670931831101997450835773401888037741956727354496893974496723406923022916883777860386135142020676685219059057823036384928321475661635405760862995316486938957694798847919375213094963941589102079292653795258793702089162461211455558899897860304254669078161127575331402066086110851503935328538612874810805851020564452545377704344881656447768332920627618773553598188875172116575667490709825590249609511110558912465705592850452802842948803410553227937667382434022929902449686065470220270198424338621741203162771191986807241402515274801259567739526576319138395013256098993130920409107565721867658621343495743985488714845517562125206527599916882142198694536300958753005100077245760492541655623548702066173658950263184026597548945250205933977407425942834358769985642420462583894170255820072942741592101807079952485853028355167008776604673337642085695631158894683784864540776749256556991425269151344578113841971793657314912851528744840407316972716227718505291982321584023960814191419823416470002907219727909316125929586702412767802043922932919120148617195924033534933099282911271791230327010678632124363148772346069731780114832881771214718258842903826411129162011270190931021274303858530705088149291919231759941460897147837792451330275111254686791765627242295162635655041834397516918279162164797785255507709933442179288959210187107302074895032145670141627356865411920464778461007595128625606466282373708925852301549278578192162078084659172035721060466029266892672567931213737975208743971265089904779956599166761922723309505197818880086512713423813059845522138777218380681777664454938640267142347713089260591300401393148319256593337148689973036954203777768923709936395849943825678081104104665583590987433144817082241417951556013673655931932074359914028204039693791697472644931729963592762033598890357099397591126168397848851266855987093122008919841105593172156435125098003707603196430229611687210425339388310830761253808931616866564911113945995344073434922037796452168038286170291411203692354040486001060680294925587809247856853423132882744334743738517943441383304222480874183303369867151483969879742309145484773010753105617448737323142721463280691050652892828104065604767406229841821717814478731054092243299353122424492702412292860225966706601362693399370789991770290530025076717713131023203907291739676932016563067321103106534523771094708569000800011913704787306358375326084264571145782148855963149902514130410966705071496617278676733794510217951548686117586779739676106578831811267190888134246011495301577959763889242106427925618644481190528963419784877263741169447201340803134630671602691647518913288486533794141899654275281293472452363845404503817996611796176442024679274265719318599783335017536787484477148746983147508313145255481240015900979463619239936219905256611857191982984375307135269625370699877836506434798230720559362466937456726116396581948449545795910428085019881582385369643768106151261811693468595818375966127013838945674069628562007283115996293791110750133290231223588278307694135571090744966415294885514745878374649349936372580685714066355472167023329473272359234775918103751540052641551005064165154928386166895768060244510991529335622162379594605430632135445684889609485332465892443111301997038042482494916188227346237287342684590989074468735858552217932130941124022876799743988147947931742403712460505727790075865606436122142166762690417140243854647688083288188718735060306108105363561783653244066681948677029609349744505323744404288195550359870442097121326677951778839989632767943901651712038160824662691006224332345257371547934154108431205202622048841451322611847052548627002345784529584892240989146541530237404282595734286136852499360350884470511223899100711045146151959070079244760152098764726040390072176666537689190435448661167302892169737708776755306983468302048960916274859014398990795239472582229992879393675865221322691414743487373688946926436045070620472405270039413507703373852965932248356007251880934347603786884654873358153283433298772950565214433951489201265643846539928407606697145157882956325517296619482964740839753184155238434085251979737528077508174728011117602110674573432864207881349442238651194814948567161680436451516901172457650757954877738050273058801470652184921218989145957912550212811247752778905079544205746286918219623004412873677775848866936495468894025001980678598670216935159168044937726058295829810846177432104556714070762107998641597410975078514536408950864635628036068573690384298434776491206546432237512957532507204713071097936068764071080017676719054369659277793139598769285098590109810504121429472076052924318189823903759845455753759436105177017067640683213014062837311616939076365393540741900929521971535030326689335990118913520607831327957368686880430865501259866519006497726604931787444388049370808167308916122841265561301447502598512548867544973641255801645420446257064025893926085472009957811691917040781877049403731548283635516328747622040226777414789812429208278532604118103693013380381673460423564869185965528796389584614117302726063287877920050175219866303765400816458315049941486465628543381323800330849521447794518877406758804674794001781300780295724624309461615956617257449607538494292415126327752051913789855633893968609196232029706830578248558095387328775438902815143395759812744406280777876821482929916136430186201744423582635770802575179556347014867387068710598524420433520827636474778331152240804846068102403336682447945571330366358528490032608287742451505072448144751675333069611064235673934792492474081811608642390172216261030914365592613749684738899215332422003755879725880877790609953734668705327016667754873083201124502253169405986410014455220551608407797395624065325151775522828388099878510709118978307862090182605700223668007483431131355165993609590461815575687165605015195380318735718913823472852562793535468042178052037986041497130692887697034771508226520228127375311753918558892831338094148981658228698883093170769938931307890923575174636326552374370913897581506610971365496681575139233401517946771975095545774264953674954201946434049726512453589150792132914973179990611643102987110878439142909542966505921795382205649532091696486259734794081513673921900949927306025654692786105906456670377119976102274495797411099812419959111647294073446766821812460641440599316592578079165030454518997489657108955027646001312731465254863598738942905306674529232077354539984874339214635992931759706997027040462303665407231346084165046560827775425958063286466168682051705970322381384873225589087110601031596882725963980398227983915126782115085353357917493070254072616020251214519418796711561526032964873668473774454264476125633299758744317565534306586596165244209129189682432999108601001349124702008563412620262279497774918409119335811227792079774758433670134897814281422632961059735555506115637844513617967341852896907827891319440439792660280720447260068928154627339708622397706655942161287806120983464804779273884158110076183955956808729104617221197624127358405452033097269437946870384521761489423884402683754525185497595017411224194886487901691136156431311365293573998141362179634059023292981093010240527250294635047417315768462946589879744867183414273150825470093066189190847354167447094515873215089111311757300306576158588420408128363811757860930564385707958906501131115913810238315569935020551482493829992772857865322633778834575610342264925137912885136609042534540796893213371156707381201295950299730002890361504166448156196345517229447865750429046082171421999311206654475064571566699899693600734557218090897499874697931903433166020654333414776589789894885005653345474481114929450598747192844795239648107114086078810807108648266328575016719572700979552884070438693483363272188219503488428933936967862356323862672785706589169343210155531500969842278943516648842684799729484194647486752253367162715366570099839475280516917477003891246676140582641004050344516128742867684686617089481182201921396676713138296717882883461084980520770387169252832068486855562077309183205819496126145836247024534787581409310636750534653648195031345248045896063247034849002156126889059452904854082436923165099447753019640109507055306783947647949119307508085072299547021943887953717140785534064581465389836781173361491339682185320277667536925423067951986626972595524639113252900913736756720659649404541064282597834810592374775721165885598877061774295518610021133476626377133390034885535113275690883031384883148069148369458630158849732239514738124584324499486040194881541607087628221552376978942388993728078212737232975948253696701997018298142191119545991961330592193413581459767272899697482852724251342232524620714672654247249659329489958801445826499424284107139562084262350121075267760208064165867690626367045850127266698771239232337644499372215844558692980330685763395351076220514348254188047861343883294483008723460789490572866356458298090151269903201818520531003475319286087442972908456127088622672948098414383618486534341663558834323767694230597474650555688884848694765362113120662122925171164493650358764238702006152632514211538746133981843839946545499729145790948710979464233619261869978189222721052059053936233792823590654649998784423823767344155880188442452062081061368395364464386867619776245159814136765631424015228319457962583443560793418789260390460033312806923421000164811504254478640513468241285235067851629034190542696439646131701283383041720851159603416563005604053944582549954426589921160939830398987668480726131780094216465494100279560257741783568305676349568421710737592171462789856244842469481470954833354714843757796295767143911368439177924248794775030735401383131691607427269498280297384814390870503287512535006496221208987762287402406771265463805563326987880988450446341249689969024391494496858398620146857752869567835696153740814206503132906542173068300300578383926673597810959439611027617074638785148120097918568672689045116226635134042104293658606968879114729813472511553548729210502183716891395374664154259025540670664198125537787332208402742055545715474390783946991309596755038762476555884151911837765815769105641909343532506025349680522598102550766922519118777043607150527087355492769911356900300480715509701522006327723108003732088528639384566858098443423272937941935032238234303204179546650771275848647531253420096835583832373187653675173943595486533551451533931293531754176239278004132950226254802293550066480175067964036706499171774008071318743018788110700710271814137620562948160041299942423535346181149829085187151725010740644931364035767930315131952906079158471509407397846175252821878516912077499002365112161831079469488195941481043331286854495534430075410009550396422756740496953025324377076945663612123084155278907194061442816410393421068576275370990621548575853277720633772047663174962108715580480008451430880588452087819153274705621516971920628780137469084393660062302951021269699358123520268118892014115675459659599062248975518025749209489026211169079183755010514971933591036787908676107079020001927739564229030152537072696641925780092752315898090852746373503903158401006799612467354468990194432188386528102223459007674771257933052271110521852442376596935329639420875115169682606970680481695110841034541348149282894531308416791184462362329609391571347159644798315872784344551954989072231904826738704421806853713350058161564797817177788769887863075535994308536247750527067792516173589156322855162064822473481768671368509113550083821557268460596256564495764653592988322804182776524587784354825849567502432438577802950558672671917060318865220509701045495613534229771486162625591927929803495382158869665897081667782490550916192658689712316755618577073742701404320250154890099777891419983649880341684469387487587552206784619411608391666814516452212977730358289110233254165414675971339857672300226364538542351707121503053786042052633137392210904937650139909005511612845247069566302727561038747485273975042444307448406844409874234054318835874326308755645882993538526670076985871242372101389729984537012393278003850369671497359842963240811305578437807566679663828610956706244694743811456366069859896354847878283983422698954161024549652733735984634188412296219960287012615066779828408786806667319413686123306846708595404704173162077733766289580955758515518286207006518657235070208950129813808928566020327323510438966770352820435134337931076071360685153145955577636483188551135923174579533401190903064055478496161952205274901559841102666079729519011736321418342251686734736720618403799372264853707042809273950097932916014983102551796891626824952374535815313226447179687901922313109714271333979806159452361764718872028710153784636850026773129166534010866060777210784905097104636206288493719128491569329016363342378652031958081826295568137678684817632124097389594002533304083476992229934390341886918328475357679426269961144170411814556750725529463952848470571238696171355995466475628134338560467047234024382078415160537176832871803866264734427487791958676089087126899863042260509570674697542844322891975380239111746043776758373928511144390524923825521044717707629310772985394309546077294870915721535688509604273252895605384552099506006562248171143663147242644089283532844677894764307260910343827603436447634071915349963805846930627788159141592770619818479610017286996183433985151235504237047877788410352447341562162540523403715166968065668290805090164848867238324053484651637928825981838078262754459937525203846696220475718877024764901657983473385663989053633054775211097519707800427987254046385503557659485641830394924269422966133167483522654625530287089135106045710167820088898402345735055344752968237478197401743383019333300936434302164816975806082162859093768810216678407598886372593633458855202986618259503395423365577335938305731552224342053744278988824563232385606298451003644888985393433111077060453389069975811070605985851906447398139175850851640824987841625577511737111418879932203620422621630673097121319622709265046715014390963904587504484533625405616089387876716951933765286592225096775042658371971691238344452944428026883113708099700101988195950354855537713795834881710353781543286251046885776611336530876548179444365464946179704709862540688149096832617391967828193709127788198787562674255967135448838557984601909445942690740218459404436272006049665202158835726542172621270786147646693457642082311113413046619121984529158416819372354639192827629548138633529909000263571504140675273220549883490776837790674604200937162176960628714858709997932288034128312137445246918586809157978172019321531677604240432021821322399782961295729796427174398331715677397058773652976447361114414933328969932717562774139803155344154117949057234649087652611947346854363095935298647920089557898200435298495564169099689372369527381647322127206973997161249875388435588577761690735408045668532426029391836380102881560211391598505563707258425475623645225722755158941747212016109659242818466361676166928385222372361956431967084203701643189754828011383425181259726737678393873154264121709311021088963015573950160146718005933679247724035121088165306428135768825680317293438199972660611213180800131243451814789714731071862844029770612494019496256306685996903024548425838626749006494538263351238738846579536470934744979749724216786046756499126193193565156942833935638771140941740267593525053019750557073193957935129234806031094980978865576507671216683948010996130933159751714932659496385884142177981613209822694576015619625970041318685266276053920503775837992319855548409419624988285549234412370294911293732817989097037161293168149480366579061485961647310424383810213132750313543231909697847915726876632241470192444380677486236896909524374147309392669085194307700297974664938686071121153377114148626655409845988753000443877678155398011917348486145258012569068532199903719992888854253251910209489657062198421375171692262573564205492780302326856661578321096816993644669052449973725515723580080710526553876822224937726588351922900072115932031518942795448170670463209098885490444712532947094333894682414723139244051450126973571161638512243327340335196165045162190881790531425451301873641506259645767092540357852861307476156825045359769797455188862499234863744649506611608755849751283552098350404740465809240685897004210569888902951069595561249885677594627033817888757186299006532796727272929010513347448635213359148846965532808747441168353179628125090018774903873662345269456104626286864473222996794434324746513916351678682497035725971147939630324126539113643525741510606356882399579711124241372169044021674544439388004465260539922302577554830996611983630903625153999270111925368696535548267208923037435249953165548235559007547280391702826109419845620407020687227494878946981333946428879105569864003348507126249300459471283419749963776111198629292907942221387076008445325222809051733466822186225110089896435873528891816278780645467576161632552552757122175957220796944153331931959594793831256482216498844065407114813032355747225887530907637223365143020763903966273160422582425618770871623170943622095863739254968933945768324805359606819770715829130246012979579940131639706103906819580456917736372758192349707070946450074688750770091382385274871403623023597742983761804034477046492472970085746328147829055465501125754718739717054658387841760016474014270182957662710627501865707872319056410882792716937299735089768916229127996200317418232162223953431405509003762901806970228534848255242319920779767632650500584083357518830988464824000886088509245647579203225149535912325767819479986472972695633919598047214977527091347092705744934955499205354002695172057099766909535188358361561146722009043636923681627469491046457176688573838577421972634567501242868356462066949457567564613637800899722279254878436716195818043874565507936581514805191718118929779992076032110148827788748201409610719265232754909633180789440166530303310312384989919983172127482679840362239180731302612967443919393150159599674291367238647995125211025926678057856005941133660563638973973923345878726921081513796595372529608843902920420443802368508980333747847607093030853226320423092860853354411674856484270464846827841217079593633523166147276408044628904375755036110851195656531486827123274358026392379586618739745468887347893318487369377500596879593807392805734880372140858816069299806807784731754041425278590242911799727673580504455769015400433213918757587410146001073302899971488318628523536490241722226767452724704324229347824569557654240083151020195654101597245371216716316936848562740525610652407336709984032495518176617006074557671409213103474720208429065826078531103740928756555338378858321915339153074788188201945665993757513689052036672070847619760785663058416711399413489175350631303525949830069987702713689879031281097487519252028029990857385711665646897069257082133848154300184720797429270915278607338538518417498740019651648867031933348621003847150728590084683270350653280240105961534702568228022195037275295296697561754198772375136316500820304678511878878532615087590850887176512278779411215015791492497688751356689414267745104451596095234601244718010760801271802852958445988691653235327353087803408169504754402413476505236013035292345396418278794049755354841577308798608702566509817024344182552192056235537722378670558061437676997171798280257503930774487493837046535204047528704672372982548897570573534664947550609632817967074574508821717198001805576163236184301072605043230613643276566860260260101542592699132169591095300348793107948443570023540362998975077473368397874745739642947842830002984996398307091686925516464341185659441024622213090731969016342354261603045371595638189489895724564508970075033877530875039668304267075119863514832498355739475348631975069943240753055018992894931337766212612187589187346241885243651725558469560708166777675729933704212986670976087882367473279687417439320094730456905160691257812831785549750413539485223099881156522378831526229317559779408388882062420355469381615544376069237452728879964222076171024852695281397364486776166548888536825165815105261446241704897817198253620980294044393231052632660687355576823991438337225086783939585808116210698705015623679540093077079246855725294002460083728085071056395840960910104035038014874220592312405880066218519905619132582337569313728198544573236306114105379331353295633078731714304574232587825332365547425207782454091946832135076871077827308720570357051324280815244433807378323344275011049332668716859934624139909855472503813107591552102371572700354053043945112857344984129895086861105141518377763128350712231344338748915172425672873102613445306018089778452651173416363755711427709656462070356909159255587190523969472042589084996392085636715918661877591330060424414151534849965900973840066982411750005184086384793444085908023414464499797585886845167052445587754277821017613672116037744805206620263480086807599145032290996111902986582820619869801554883592186562215209302154855035563920153038468790605488951120024599683144313365258565894169489066326422899125232892647734647119662076223801032908436719893920296410941177573636489598516830970024767275472785126245187256428203304803688778020194961388304569062405854120512514221529770040909933915275684409925570302120195020049274148803821838074384275006741980841211903035454919060580628616925790668218554147321089312149368349357346836759521234559863123187415870147000494903877412602906617583588066393169030220822683616943386668393850583309822796572761182090269305276320186354463247376178239742092961842302489228759043216993584286158047573893243508393488737685379512593558923792913119307644437010513671415305890706122162413701250935777615072791777352451977241300995534624832161322852540507214414304282566531858603266797850662374169306111305158574959747054976241096393139780078331656277880080371804373235655967656213703871092216251809175024784818633881286280167668053752814494666696830164580959054515752903206860627932373318717343651732328500557959710536398694985902899465044039907356738228653997255739714451587237542407523889565575067421748061745512760799615090411903590342962846524916554069282651302519974844432440718586788102798482777705061743101239018316921265864335863699828326474027835308116455265561780216535414261459789485614607957582465263174025776724122231040451268737639230321843309940863562932380976886121349150352306094525755255265849025911920506232371444853677304871856720320187946249680675216591686813242493991084223510973275930748881675374615543434754054637599029270350832880961003654014234884926567062072589280932598545365420932950166106540664838942871315514620338665550654706630197301090480788224705145484750827093060620191885883247698039161281822841127560138379038454043158547077439874515979039056049005337044337802255024886231260549922103239333238337081196461983723317224131562670227723015515863027664543766833526727791210778947727516559496255043435623696719688651689915589423328862501269396923510731971466411076932752554572857379845454936415710041218497018228692434561221510750046452247742655910868347957053570847544842069713038570907913583152964759789949293100737141224652425655522694673838035608891134690906738592086369029613145962554342407541722703865000736495589016381212217417870088281248728398447563683413914450928247275493908628645067682222666658396505844710296473295615831478205555808909832747197159812683748215296802271658139658800875536670246030499100743015820379166496548322597094646533426728346445416868382059901983442816986561022387910535828139233233222932033827634727044165835737084188034472345180357133307090919756944042344552084257055369554078516580050512713359593060628339345208478166377122128008481980847168625042082761504420399794024718524760171129834153213667785019484099165039104724208971495990724863210310934404919646430950182375099800343395745082839357377312171633730802002283278065029731250479047429199006120052328918549674825958586054558975502659554378565273834692898063532892781206414678702891989402684134138080714974808412079853542568832426890367002055244145896809945225691545853491396687440477987576029513652332068143435901832810500632784504239931868280922340909944565111997382233025075008372310628383854556781125594593876648398961105603255725736514024711615980207011752119713132307752747222034332399180333693212691749908027060092001459168632147640816594356154118899540922258271683082111757156600510020615285780000440830874987168750501447284497593061316168712320741675627449219127807709633276576945773549486614029923996683680085429942146527093423811257884292422559362098031024157699953961946954689248868098056360089233979919778427583453564634988500855386060287870084033478164821688055305041822864187742853114268459285158552663267358385605819467835191720843245632846596750654654307760279909271370802774512715019401783695972648645531620219575513503001044314106060938221093252815135879369041017155469198621874355645860663609082090399452089884054784570634674715831086391880872868085086336624111642292721069872408070262084571867968918816284289367620790700734767483330931636460345452315492190864373222483273156834009835832322805675300138906073020096262824377338308722412782327826006100276573527417521508270488968333232569755600145001880064976578163060438688551311411336035370048521174901724518651135631622862043649121344789824036897390333528297868792710751710892943760464703154294337559519085302708954477331865255767150280489686596392478233026341631906902065311747912655784388482957187474216740265257110836504754196407324054326102585724142416466586679545491584723587460092921151895580351651936653906670227373110881696580207129665822390174382929892460143953529183178209619050770211914794919122783345818662824678918531990044934144789048499416815880885217475489093152573806305382169576764265424557211672598415008029483704003216268988451532382603724116173317440906748068698607966222997023900832106656529337857519738613650517402469199835032690366884154898088536663705449852316641684334847836804894251208569123930265794266103352615481441842573801471590548821148564043983917370069218928805027150079988720739079606729250416631904351830251169140850250150605093373242421458283366955246505653671261728168454836346613500180878254338369408074726035291226117293681763251823780188106578724453999953420765119828115043686441339281789908856489956295933365382900498011347616467327116047695847483386914132535469537827447319454214601008621644366158135870715490391735623277861110333388959570345151839206536276000854860539691346794099890804199010874834900248266613625709558589375421923692172413713604745232219243584937253887196411565062534780366304894304048149172203701632145552702970744450322263555830234771517334571049079446184343572896550081941926995683118157086549981541216077669314841346689669847563890418918977379285464187653248310128012479712577622643960418080292416240266435741736328449135388603831524216872130108689187940755505513025700874746641897460469445473904957343734198639240205998478405440830465174948776043372331353637891974600319334674611150236621547980520351894241564639822466952573757464155045998291058620803234906837446065432430103327969719881146020780434805892126647928938860123244898626535119784386056349514167795263904555707155129780119288677393062576796756371607664602051079302251611480649094778725225259619840833271813440691563636656118675689450342877104483214255382274620664941380416548686111352460158376033244566213828294774977573563389572092099369981295891117812273601161875152403346704217784331834628654630181521902804436340799817722035599887287316835843899242356680080690213567997598352400218618120973020225825322299955019977423960933090637007704413147616136187716927117493223361888787480598476487970777345057865457754628999065998317459455503512230542424779209043838193190194538199925308192639002169447118627516065939767360814678137443123010743950560084714131018324350648610989277586432013361025871829927351945562015845548585322223931994772114285771101053085287289234836077890892009207821579973417846283066002743216384428612192666565472376699169143487133564855253616012742033672944227932260822276089073103545510781669302136046306939991545182149365444619283987725472501727134109359367553114722391493920363597763141459577123592142091799149133969121765904415275143445980266582981493194450452475417111766909716790419212328884729743500894432701227339722625126633846511515137088001146749073179376725432768428154175466972278935019142839057687388326135753652091653706310730509061978220452141823591373793985838795556289779401458306628475225141110957088969486136875875122660075554134402468197973644678426772441440609938958432115620472841194579788139028310614218634132161092675360357861360872259526305026485037928770696721741440352129988440568319707030497284075918027833268704370785063649087675189924633030659944493924699614639574558430393685459620644653434243351876040094824943756401663888833701556088301089379829425085516425981472295649128395926543737243015526344832040361869275916360260017662857446983472501779922828920419441169162933268120272622447391198120331002012299395138715958958389364182058702712034829407661544833908548843993615025817604854049471825432086703180079027221906770370437394261928732416982640125796177574042977033498450161230772435207568160705344874030323201936904574253290143388106091193696656720387687416964609874384402059837803720471819077037143686456599737202894618042061624204958536899391475719989257338093866008793836981362792699955301743454829418442561785493202089724730120974913154563172534292791532358816137715855352949136204255841580902503644374892727336411881071161794108691508318415041837754412726900170016823346100881954392835621984297932625703749771386547482732146670733847134098617128870084893889540355903672289422197946453847718481513557449374213005463535931549595082792044018272673332372781115635391281967656592282057220477671691352596908253838221750185005851397816307835792491477490849419241587409430247633361464837588403175364792429535532117787272398760885868077248701085075562921296055532190998747039408703518404686117770366096470981571474129291993123619376580071419543013066734980073120232100099335333866154825732550420047160478527921425030087528187732168326463692596972737051547517366112653548978037618657992427904114488328482417144472228351134384310061437515205784690571002761811345494179996424246104057931112656201552190907155185122488973719244340025117633742708037626528803669668540092132606535541081018018427540817543386933913982875376355121531490557017828246767006895777821137475634707249249788613039373389109217606035310416371286826960988441077858485813307728756704121409825015887850755497033607175110004158771972608846349557853453666701843908288480999953171995038983952564496542011351174966740936301134106262544363041478963323285677195195769698945104322267337353822860097506231558089289021581944390984591915468019763126052187329534414582176066590237909471092527339452270804348444978259630956794389978873508433520487115151182111227599366931428320728345346833777707999977401491851027149803958903492222675139837891075294289122079958752533024728160445786782302959794949401726694299327028142264892638823627472797069666979427439880370691575537799999835185672362916424414881165064324731069348539658249896907640435209324932545219226172655897407219772706160525143282645594744828535545413251380945303826917508495509786378102345567592934841357654218489454475742384198448065955649774973227676135229051939568832451000433138393195218595572298199748537319023394008161260892299882091232633037990880406540045029488901394037932272601321351345755206277104938008648897740339577231952433893811407214278145864698947538053099846876692684928038787321151583634877720447360864736664317514034240381707254950470373304441295358810866786067020081632892285326173584285554210218466275631043240933304505469378838695048194875106581836876179819618915077011247133413346600389775541395399102783767902258594836823359615248622896239630427466692556897960023793811957985426932842377654453338583352585220895907851184073005918628394613029312655271827329304674123457914407728302095398007364899126238733517455069613786718430883159044602073642616705054406768753983237800134452161010339677794653915745487071397922445750268916242117969678014346579792027832306733570470309547119059856559595136074518726313700446740361641165708275525487473722808302492961547322787245243429741583039336457308122507505637400964777465798438305263437715104726155430084481666700317327454067573749385093958486114342174500929566479718504716734348227890290828394213793625785654474376264898774008576565336282301821993802815892079492213683770532098986497137312983490532427055930658920947486508557823031912983746844783694266657601456237045862268422900346066031761984108212417086334846159730173952889950682579387709649232286344986207927597952750814719610048151188862978701725998621281821827260277740158058248458159632993827555724829877209533029633716096943080403884022408701822233157498708968975805710605960493487132695089600282877629790682764964685162712180483379547981828993130335529264556486445415401475679329073276826709406914939100160293826654201915454747741482284065800453420325478791672107292479293963568659552541795123931780889655061294940922805183628529854023481068057176567956549875783305189842585807985022605022804336077542096327475620924924087002511765252939255694921032317817220507328121882191294343477544887288329037810334581527599559339248854755900207969659429028388651630388499090413933945043068332089123894543920382273751906345451154160482813350766997941738142880657117726816020837237487642596765035770157783327534413963693469282602720517561215790145367662860470595029457954005343670289544114596340360324653418042290358901315076680120288301279069099682995387768394049652065902181009230315030425543649824347683223026977277302507574474298727815407464650547406657991714861318442202081275916089494935555437649857828445051317166085973779102599794733409561062267036409558343272979154427700277601556319002640668599161825590391906756625524719054288153701243390375801046820213192748076780773447177981568511661968228489297859258351241862877384367109359508485382418953222923570160931682610499769836893989283666581776140598999446050136460548645803879204778721311482589559360053733410023272041462432453568568169333715535582932956630975240635372982623649149856474174579385047746396179006612361801251484195572641260788624940790351451665655214045217002390919745049895078855782677331213607689027623374201728590381694793140543946560192415648615528870717479269824869442821986430984440787742126781037333390677737547561450904155753813235314026322321324218174830037447976193911405922934938287408670185843215661562521676827273315287827247247893527811173738549992472426247092363515575380456780852279743159005629629943342728709321190093035958116549494758653738032957964237877787197300348052627105383313221085085740657795579036092800829840876045047907890261069929885682432196201643406516807736111119960700910078713213532455377975283394764862118150999765649493648404450081783346752617476739360916082083819273799056489906830184061058178392749229462539143473269856011464688293356443906082710840108676668908308792138880783404539191384833821428269696267366714742646193551279614703116109645863101555612827650994931834314445926445457180607031626197492641033567652792616148691135180219357280536546140463743675162693283964690069844655384658041758006145583151506718359531030660614335788108349017461365569889529795738418446901093171983794667723425943101281180689378415994612416169437768019757214472402721118295730932394530225896978969068061524544460853753102208709046159720921574722831735318867036745489935760393034973761955230059644167136447865932808781545619789383008028959950338261916144595229216625852338156045392534606447826304702676456043413424795165612414921694517409594804051428599323229873011002529579061412792055821546194298554200493198711279086750627377214280708646151543897946149684460796892307616608315242177687929053755495877353219396039669393503735081438130902733085092411470859904366004299218756463059802291581674537558690985513012866222546330815710505783527934653872653114540453274249671028144519070257675579320608700479879516711011832953109961012799647953524860893376579225281394019626783956467586234999738336357329231169429733968008376918494259170895858516855410693764303791645422994808706429722499454854284527775784989276442214503532294580960257492289013948135523809829429125846951737405695829880797073969007573052249550808884846128687939159689442474774994861162672817503195873143480577953511735635696450610721012146691445778508707754671538816567109640042128651047832176975824175677723929643274158056251683726659805954281627356508919033656546375261946123412669973118962462056275771899561441950735432651052946811360779149905595321260781717208832523927750206143238667820877819656016344973653913760622487180277408210419031134622526762427681985420504213412866976914838705765300436519904481631463244353143043495953470405636902898113686969065230603620626682633419966267071560989036705194793170350153802553895875536911697651260305792905424762636219327533486816469269876760450197221871052503252856759667384359209663158623946727759428094378024652286304479858311174410381032355143837349226047595795145340440596350674169704446368189068252727919415976431611767533906721258072183436574484865460497350594013559184436168719674449779462707206017942420821325178444213154814679268642230067355986941246430391024474336935593218816340170714200109615876217416725809368618788484448873679563923416506476197626248957190742739058999868810674886705327376239751512659691986741372283844095285817106589101719251180244018307962116341660137887963507638492459298203375647740322531325458422251286117853720881328026527748884546636224451786838906893074648583511730865678720857567870892179141374110684844187098507235432663992450949478527570039980129817727945099528024592227278782195935882187138423924867335435028769292289468908954600694834372026199334251098220527295143669894363818154950953584651911770698062709594916942252265359542173597215961624809831171224217179897521565173052974357660093475594072293020497422860268927599746506887774606868820492953483052423472742941325531110712100656226084459403474199117227442105361638940829407741237395749048448107059812221231676447643973136473020484664380504242259302793112246893076139407878006664792318986604828326117439475553911098608746233936234549209325281499979790615630504619866244349569619532891875395223453796016297280337138648145560995365680240900588353804460140620890894601618711161050274341477483065850895154728893266801423950107056759394241826433949070271211102177007098960035700880436165358008545364855182822616019320029039078417243717017486850370427580237018816933078910001247078211462979277453517182581039357886608376983810348776344213272066960074941365469390542095117417756718511170066775129563634209887489613910156001652320847772645323966781392261620017758655867989785819396652121513659017769752420314323954567503403308288971580636617311406999593577269098122446394314431746543001807564821939074876970666412407583372679637811259668253900776352132522943107362129408897753175915296243217242677831069891748065013334008092121433742669002455296451002612198085020892848086429586396171179494107831476232492115950745037156369486338417171980163080115969960368088998910677161302971992371749641234284834093092281063259637784846978046477438925011849704729302330524042976436505708053790687101146914978701435878801842050243820562015621052843014426249473799482296659995051487581575887938707722822385957737133040832764847187371986085077580708540063174069084130126159164690430777680995239220747269088434798210610590609015279410205808849625282835694105421331314981800077793314193529954957071343932103751279095533280173750831283279031300066740612655655591758512096220452825834960901886304827920049993591270940247400712398431427049673592604188602132229814836840779132185162263291888825873552905233887142268950885472671181567033262792796659296752697135092785096010035745808342272309737712193207330015946642674626253510281279166810409852745673153103799915932459946529690566885108080468744601080994153548572260642745769787770036230932159872702182865960638189739543061843683262398693779719663855306311463692650493246911037312883499680336649118766627592162006555461444648059328822371932541442552276802860330107827109549676902519820184164157968109139021261702533649429546787268798479262426928242497443872473987850644815362240357274068864613311313866919748351406760947730423193902419911376285926926595265862517194706482964687545444820101161685766588410650965763615727984816772358232864545261557170846427250093949268193764885030413472337538495346598581114458855489207186221547421466964660007918019451263085886766835339489907814571741357206820953530217379396642795427910229801487497116549495787709120865346416762103273283265737224576682752838541231862013108877735256492065538537761399610511285557413370496555207191172423443215904154711559418182519492275246263681500881429811837962950167514099911632878160118754276964986530508557749142836968704432447885214481118664597990955195596766450065104190998327567954422129009795479668410574296407980737507831563136516167663550197034676140313510116776820797313322970978261844665189233436198797741315214971164733329780485611087088787680827152349291569126839377960240906926630609069135981055457770114627154464247803493553774647273134189230178919784372144572848441786710866520647783119035516502684726463574612253619503187848828941504662703654802563224481494101751599744012821635167542373927509050472623320450264732877547861036077204642804439811791909366986866718339958440882466268565670397301312623138423984798509940264056067678668604207689433889098594827307501326188738285143111484135043878637821643087975534148535983270954063088260333619350506433092988786378203933574193769998779758651142916007414389615171899090990456461163134557684151820876110138243748118617683318079390824241318153751795405590692290849776420978911744709583398459057573280553458143695532319960994153529444472795363057722438631336515738138398471582655760203928011348239985028393184328148033266455364433735666606594610291543453021102755204872159559269304255109205745567200254443203281280508278654743777650733595056991060799456646441282619095166957283170926526835498776333276092005198313057656173858265718029206718048236938870559957070086044810759834726910393832632347331867897977429548205602838958637977307568581415475905500226759871739204470263561907481737016369331757011117425636115146798233980565428693671662907977924614346509492193001224124096163975400970041839821712424286585405954027863928380929196781223778647768911932654858377979483340859565258042950799642649326688691054643646979804659282788566731516772255192384779778618250612533729126185638814099332289340230552069212067575896251195108883205588103839935295445711221022702976427895520668372005436508306143814959955992057465490606657207353557019692339563818831663444468462207375663731790916892117351092694797621291526530645652461455260850582955092762256759360965304366292198067420777456548241816873786995288296178168180961104217664940632215812086562637146724880774674167616077571664861497668181790630430589339026631525471288248112396394981138710209210598225368293849512734695560253443843663163822020141427175797666500899739511498796213228096493781896363226562743657397176973913000822499283566621026984668245775855865767149907983921467578922596490047522574129510245061869215640522103801465488851919001847222706007055724603687153353171582617180328520722654222983937172102635866855980993423457964671802240376682340240071727106116135580604894619594423340140976115138393850675920401883807807471169873038664232013992842316302025791422220131589987257878892039576592059017067483446159017714761220524180345263628647678136711744632648675257283536541310404084337204392103502081126224182107004469879463469312481531073307547000169719072170206289552354978107976108678747345240925724317284865245232683660430300321281578654970768881571553188879769336298372125255993822696872926253127648889920946389354043657982641617768053365310930658455434031854297176689953224283406580674780542454995216816477244697901566142545990871483629319415029403075491873045218463722870613274835443062223313869321253083993005864736093616882568336491720544706346579320008949591857930024366159763133069532059726480080095873407904821660097239588432371868559559306017555032955745303685558461516958499497778489669877549628746811265864616091288021870835427235241758148727080099852185011198822669652499348406295473838570229004355720101663459809779613788686443542079200467394310940087093966554148401424632301054046137062937080919423695934655967692422966764719180252228031820339877743878785527233648223409256271591772699832451359739381565229869626349009806403688802889848552481330181029188474555865787841771239248181126881956722827345624694718647224426269006328286741206778259434114770061252407458159464400375281666073234782491764851650986208891727123327681313766793166197634119358472970176912229763952365024939663947704986014144151547441987158162226340831314420251441138138633733842272016237148126294896950230678012977232038242663723655547285248113267020520803547078949126828508454811763456579612847805532819891418605572563050102512803814965768893803708919833045047544940500620098013855070339754462234677654603540095696314538630921847817820209917387920715853029508912160265827843256637002305344601529461848352408449096328915874312288688141329290475000735460919663496454662029775666957018710242577357645142579183181783623235058550121573157851307130645556115805855083252524863962498964210926585014014888083959667099646536779753945862475991713688480624273693284443195828518694328994738922692656650052570956401257500131694165631701773469620738340121298024358287345779943267897942718635316654903115726185584826305999764904606787255734706415953913194367441356658707105426087595509571183726168454867835312180153955848793606631659868746814493771805660012611017033266423124217934076775653701281779760394491838823926894545975451691891878924001408091186240188983451666533200910604405080426647288768622106322734009431287252705241973612662774989884988965841184426144975691251859327458623195009765352572663375434215133758429986626669755614899231612892664177692205393901673305007461832302278650393669474355960887499427008636140299476951406600708064051687349624927013509675245383382853945554310209779682991159216396096071214904118333568854401853512194872321862043441797015450882061487186773673729617956863687525460334763350808361850923376679785308582144270778446629912223213659342865459183993904431242638858936501007356425244881619196363990450505702496070571011352658858760448765076590412807019112747851647942720764540397671181862045346431006039474185458303189687077585381121099014771410919163385297960404603449143259957431104510672913980922905739266297255269916063836929595278894092085135897197996735809909421525284098352391323685342531585100809237950310680617182955153584186208383356662535314823874461249379838053441379510206082991199867828705457501434068388072554411049556068006096456827578260956346430154505842153437541013441726143251088617577370031816304576397206857779976645651128334356590034218981211607888882048940942636999966266114553799136323873800479851473233696292854650913490824009470205707594089827301728162083951921807784787651184096050614201019566883239161556996430005961592682224691943518638765216549676279770372472493979360076987220223269593750960653604332161958241371169216845321108359998636651783761973392614157157440286805601247046633608221945480945070457556077957895613696314238891309426283596655568152986749704668197472637212140094974961179249461298351347126016771530309817927766118126958893802314733471180253721740005515252360356596319016923310592231821444224292863538658768626460621905071459394020049105029879847844616095524263879489573199228319652898134309904556254776691280556925875358239955806860483409002572427684313440515229300165460856176962039489642054655348602347340546089425097249436823886016931506791422733225331951469822948768467700612811527450970208430254452636296158535086278100447036370025606717883730220253956588692259642327392465849726721208133883656663422759575878530537830946295523144576929364378106261571803129354264660322543238833742221342990641541120242541593227392148785554847258590897842260828768777150977231540505148241142807645810751154000220203701849785498617830815985157710943920084761070202964719416113887685237183009459433445995632369346474161803380235405298208129425465494675936834245942718189429609286381539981348146102709444659870978887472081737290331000437068999612257267020218014404304941367289977990471983337172779973976563723812805896251631460643634642821101635083183342239410363717413352460802241167548725317707583185269018063675844885072628261486711386903266581854083187278590134346845899944208537873706946542067191836402708989840927876620583576948809741056671453590538040581948179726118879964633696334474417539368564676300477504146534922285139472746108638988926934651503365596486398183332785611971899840775090686006350594297693422740934318358418062721188891674606407196481159749638322452661751123281163863697943327701434905142969911064009711996192899808718669410815087447654370326329332648772566443168315070829550440697979554213291827932034197022424160071162817128784487099431876887908127845344726790632697193415494205063843222056690648019937319720644269805953562280780255878313490564142830425172843504574548755018374224351502722511114652172194859598038107093924291024030488959312261243675630284058463480309089231593957756635495774177475086361738883203151001135996686372644505653776264506877813624680919535549186719012930857309574735501145695066207134545230516033952456265012215694169134215445556841693542347030616839043297714839427315496572640931209627692908807628208146701363991753424854094100043808544667257596477693270217556598737902975449752086020948899080852273135702570301127212841263679406027007537199691160056222169967398724519011605570252319409465845227387589152161397516906375967487230530981129878166492861804952460781250861532203963973482719803295957762544921075421288879978828018515450570766719677663233663300914226775627448288389062319069210375087139652976118043962039525310292236368376557844542038088666491598862135129865267633778103921291961057600830150665136020040059072958065817532928485153619936304644629652146834549800382421990608058226069515016824230584579864792089349182477083728457557943693622850270958911405215033120789942372002832187533527566242329374443314012316567196959946604595570751565081545183081166113610000648229552052521275000765626311683620050470676062125082691415425621712036945186338592231470373380473771911752943069169019999249450187237051162564242574096899290874490667138925878988838969925171013295705223292973995613910674734807579495107919340539969763885552711784851014998256960574156511173434364423073200400739968600851594570857361584385990130531907833227802332613473858465436043868072349090970972697689290125121292608966833328775351055130317245672370773715965119287117064043559008444439787501547796503937015226846469965135449108355637962827535244642013930334718617343431017600372617819026943931629616829608761063058975318075941727565896442943025144829929922468908616753875838865508204066510524213958829221939609657234214569934307989274551565024335427997889159513386306358103217298230449674988371694114182027269277587804221390755564878579223093927076241619643787088674907432220765366291416961633298146504683061356527342816364681153290567171888185478374220470586797732189010543633083737793895032618776495648718114270826462639372220415913143830653666928567053740428453904862149243212874286420855801924118472129393101788118565461568004394135258637369923505412515650688549815047011710208545713652106044383781554187966548371855660016580248855187323209475537721143246494967893618343565647464513229348455288744704626632536214677454512381429318984481465849129762366648214980708337426715356924204595032005053906539068852802592229185975892324048901925814788278400432454968376318030424910306743538919384505737896237240821006573505191658251724090881864340106561211925391470224044761507689968009251114468805556624997081336620429528826893411413642412367831899696329335924666825791258683650313332052611617619813450339219193748854776904479964623074871404531787535105656436724974584712173550394880023246054643023731397526050979432135823257496923835263786642078593606838821010164865833566576747031211422744708465396734213701206105053666944772536220840448589910325800943034993474572887830031623965569820192991117963896751905944663132461761733453019193958764974639031450233316467565080929551802266744632894707567744769141519596507875131960244816308660137729690038336724902136710278084939038766997418788021819601438087147087285792900711568174554024887758462777964688264938060332098263922886053922776850870173843202809799058112950237195564015032720808233081400174310867273806925780049891293513756503139875609526738150335951876592524870175283228167901100265556234569884637601139336963799434655625147826193289036247477053359859356038517662966881806628470233939934577445635146929537880808747185026686573228135896200890850405479612152879897830406157093390177073175585692795677327458970229159940169075185580808284482849889564822254649610907821234108773165734087753077477645074545793072817824336553256641151659201543876322247202254231123838838788860646232034225596825846070723686589784394188927562503005493840941689595770276416075891957928429025427259502648174190971161750671098345694188607149834155551425819682072022516859631236033092072239098399989016012727895663034411690473681651190356089036054192524709172503534140094189481858007532630928305611287234610631025998741787490567613140256473442725208853620074903272439041128474354485625671778358916381687154056845899260146808603096773882260612715914679970306530544965828183194523528711943745046398929793756294152789023938089157103857729240063048456298823878720300687341494787135940964729161381785225811031416559925008240770576033784991952771974587719329533130893170091340191543009347937621489036770720776681708311690461914154668963933356844286633973771301999916726437272468370118353642695684816360901708474215183421931125692052608099398023812215568591543971344433990753232803965125573197111801401980253686373615206045220041217631433489318655336974332453865437997138984532039740831202187299500559758761707900330088985459952442003815024429701137377774197921929538035068630007249320300081172824258961304346343226018349397933547273844622089317571892642125707115125252356833503846831127193944057107433384304064399114023687958902554541300674722469846648597688965083058031922392468422954367571505313886090159577648216435825368829173746020309947431662377685423756260954244436248660802307446196315504272174679417021423181431713974141346231391615469142990144966202189902517351806048681547206444284473654514505135533042362717982187155920179876756159160141884374200463587241626283194829185091291646424337872923953994744174098701562875517531023086114473703713422992560332401680106186686413652246298733574177409998540957076773760571219128516839782929079327715445606870603270427565472443362529495138772412877712111189005526465156896621511537350478207825742892455161975364643330369210188630977262640679436891769242811220249530878064536043131287731842625004061199402106117594794218213876685139484151658951093791820010061069320542136226201620514744650539594264786675379174223059899067475367362681929604531241307335394068559829556773346252547991461340799191416340050720513928937287085002057165196065776647295154690672743669682408299255032165797519538370839983225124370572981790008135359519098886876427620711877086759674222744167163739456944621912868405841708307727160965035301375175081951027273177752742373111762127435220072103146502058537359648821546755955659767543693573457687996967500839955214449138423097732938407545982218733098110332788208095309906136774023302419724374709103312782041975338955311764129972457999202489221879965101010529743943339692771388350885601299380931056761147911400935030410432840771769287536189377593780197224164328120548394738956136606347140972567718094939925222025229239095551272883153832027117579124876956303487080550282899674177110743801330559206963111740037677686659993407166405197018408199667692884645777053298249571469879307595350590355066894515044416177885511747031472973006359397551349437300460570731213662292006245906915334840700490419382097359732588873204091529856344730920369686440600539891355293917042251458984607214157619423779503643508360839293761450659905314563730073955601756239536337371947623715709759584404498577338686011433864407059387387348623956611320789884622009898534393470344626422468673350020414071766716692116051498007606967612146126978426606046078562987902478240740094263266856268012692216743538175679570699200283817542130989042332573925835789520323994956018980061182942885261277736706303688614729236383188658960053735163354989089667846640584343319230113985705606138216322009657472157474671498653209408036300278155956911901427255375337782115307922286599080385297996090848469768302602571810693985480565016344944153921452210407067035360330649101632797084534470177466236275470669492144519681654612549363094626362793030911214906934401753637442545136561724913415359185711531175670955790228690531578508499569756651212509085209300306032769493327881520166464544443168019327732830415088940957409399417789804198470300284854374363753279440279028913196361971178591137360762552050776396437710060419047266409671173816690864403683874449932023091108211942271027413454858158235020312209304778458316526556141728765687374777891799336322241239951006598864369797586304479964166848336551005850434115367643496847075183169232984713110836059826360737509267734125070896989528652962781095936019116160616656407706655914084973762574116566567409049754856525944554287851817028842317801133312420328291144891044050611160176163327457206383386581427512881755962327080881794433814690886669619526528593753444155627904627662813677803021615809890016941244841367021238637172844350071816805984858495023818626913579551913905812507431857373032717053847293324559587884909894561872871779898667063618526030118616794327498700694941628966363284132500156425274194594470004091985546025104142437248450416950735672771000777574561533397111540969857020607471263920039455739567242122111334090544985711216270142773793558739490494197320653091845820364633136509487908700703010701952750805310981980439093130956786923814874076243490938455966400537815462544258913743555496266390231129080634104648651071658625261326346655675449505717907123711835796855408979940752091613606847746386108413897555605539795891556215896839590805384395266436349606740260702767613838838288659058165716975095492581389518815071139448274615729583639202154546213940465894342448024564055504069225525209383123031581610451807125115462620607702160666544759743724411189623415644603713935218496247336033164580684695078844473069276470428628187734655362191297326827267501164472673289336451911357121558149915028335149461450394088962572856976282831179559728365450918714392388999044124789168234497661958202921142799099855665619737628107414771829944204781002294759423688676995586540234007643187419239823800013358514892778609797744164622543375364515700754473370731743909135597022835882399957847241835023183447656190053502819791869727294206888773440954005707581352710529153612261460388255730977609529927806388766226575053731271211835103218845392796943522745055450972477879151827546089350130489302956104513397763624174881613860354962943342754711745908893593012915483892591336109491313782291618880138943859921561441825453410776731598291351185732682518456276165256822503806774232810045157960366933067695697838658717397454728386745563609304208551326835687551064772237106885925887112097060588986840531964864025854475098205347033652456781127837441325445611216738185681493664221686179897534265462127730833656288586303223305034901996172083185933549789304059270424150846001540518808408769580022741921169178913298488734034302037718371832735154055811472405709813123864534505904076115349718777328466244371987598366302368005548145573317490826902612119012062239441465794804264663536018719433899272528439261769965988933152542607111830467208549429684465242593059726629372001333743424178465137785471232053684068213041881495023282030354071923395490866834773934286321854085738934752180404487733001470082766485866026026719342082329731972530196106814292280100289275788892939328956019409268321103526186986869056896557681594126750861540863243352196823516651440912433043470791174018876841944560405782618029919623431286952976778099253949666909328464741756373376601743095360292191207337811879782477828795793582576409476121968991774287025350500679378770166313218254359946012345215760429210369136618444061264552206007189044693188461783055224564691800088896181317808258080543310932748249939588213013960081601879856691678811450298078513413953944267945862322046430161666107333217311593256237040307568175718030476732925712902986632378164938043862507699834921740286227000877233729996146139907110455766747608578867366859826212706295638342999726692305963505314949279194136971095936725578449107156955788572078733898900910127068380954216203797874462089568848148045868331532125956269167582257808408201042187176851798836121480318849146900723874619008762387331295655256645047771027639181564986466763284670468018802119673012830255918665565034661121032992528258195259308969462385496302817466233122330181513339644493520861485769390140737794647425140438927781461302435488532942531535589822944485967547556551046054459193156884879996668104503396249775105170095906797554181352418766185647506317179280422824763293788490665553231485284429685567203448252605513516665588601671993658694260889271651241986964307888875494931593869135491582944809702194111377251938739377886600880433105664365849900883414292300260348778719757163033144956353676265678916260041042710192541587170308978063092992130800574771212320939288173452176539351587728629255364764228154799686160639383402939691838794246639719586202304737162193441140956056188680723359686786127429861932826313332852532906986682979013627507780166353643925248102480417405087192422594904901564174987936524863090310598701729852412187173717857922778638401724967940795615225949188339954201182268724097591335446344921657036449286423299387336303633832130237014701341312386197460026155874809742112828164630337706023987653875877770073926549075430437417154392907213019006384157087555965600493322784926411805419753075081003625656417459171113776180860560624323853488690902139414040874520118576538874678680972053095173859931262639593796131607521575679499565482526975327047406335252862188289554569561491424107410496455912172495644997290563734975704839848599500535642793346891269235915678872803808902513270468368944697623116461851977042173097219349773108959864866868037810699099110967485426545630428507389151218997160897099546918185022364268866406789784038228739834261374681760643563858186850877516108511568476829689299334219878192648677169419292400259047184758806531562066959824851169325944092000005607429052072679678090523730904026959401101267115691650542472524419742498392308663002429720660700324028970541274556572295734812196720563308654472303504693259674311123350738255285509362427350673046087929615530394295006918853621156264065730342688943800742404698219553330131091047762186825069180874650162483820752888230245314172757432452245400169432350067951094261423218222220368758060718068059798006646429344306985296337812908454460457838637232256190884466965245778545617910320135441066224676218481579110510868216086331802134628639913124755680954982013151025665689566572247519762164683853753243572248921978502459292489251901204626741368786623431734022426159518963044309617126585997116640583592458000107566475943639683898935046464960626733987905079547781237260988235713487607895628734825537176191009720465231462549369279504738895062856302879609892545681412555774723286935436504756705313385288807819101197823583629640871229515636144983091139317855927422644614123136393960110723124018385569519511270769511154834665284183849342304953091918236533036974257937288804921618378281039063734423606059498326953546168916131000491228684515285763126805611312530866122168662979758998003849784825027673039168159173138724977250595987302358000650977967710024512109818783055802913900711484561719460087351369304703821373446631427204713018072959833072872592270414405533756443593564981103212758548063659222347685869423321209018788168801490598924015597726109231046951009687502624393489927418554656840271336084756780866181167433200436763809881309687251292392504670759668646276301455166462094778149156972701765306993076155292723799975810779402857047508352735287364957439360304601360767646820422153268175365989313003419602153883009129943040803854041970219956250613706584646261669396170428765315247463031441133850318241326908275244218534387140231554613616385146850025357396138425321511147106389593557110338858097726123974277013203538377320953681657485541990306171960494079582712652180900214127587963652335353931212659900510652025285977318830968285681750168819600105360191545347129404500789642118069555552533650382836288713020921130386550668208370459218561021415477532045048183770578663419551951309433603671013387202317085899927179808850204532506485399475124514235680462702418110448448497345868517816077933285306324073476175105199494823209476909191267625738595853469518225185146447959891500963883988660342561938059385342168199767110392927709649406738297674998608453288427285544044766780220778747206507467169652623831590967135910917280156802254279653245694108528855240068588924376064098317597257537780036482487702704070054595473272106663007628631015196397737406889594697232570503784293384894262548514123609565553127363481815683526325429401202820043863701873821947092706545791739596271606768729103822966986612770146564903991599524186697642964700871409606477261601302208411398706469451062904620041704140043672566318212488966107656165922409738329812183586664846406106256532257658251225501362682216810321233799413046424635343906454377093407423391535074323388775211601535506445426636870958702179086242668356134803384476514029378142870934087280934301185050656725577233747558167537843726450725520046968552681545306794550659622893542966298938975378155985343287796228580948148462259309642397898430924951085893993989016260351485730090813511608490980445384204194975789065827175548122337605375729045136209176706732841513416040951231088684895207670230481352885490720627698873245274865847881404583960122221399398366052947404878834028854337687638008694784529438567989394569508614516463402269332526653522438960629618620635060746589343759512824257377617463066806403401094376635401583033680479299365103565512650024236157829961153436117432680015785391934555368059241473676289895838083221194049305055714868620317362484088112583820848554479229579603088523255976433389436034696023732231129091527413884533997983678572855473554287183281285625397577962804188050365247980817450052526453994864835493771797615826592132710711002860882605958854242698753120956314372883355421476690062982390196410010752068504379784839293521114804512951705617056134141950760406251537174710090570191163372906910076478001028034576906668576030812510532720841471589748079145162174232076035422843258745018055145067334625798091595484380176284445784778627303832551053789212129106999482090222408803678407699514793774377677927426942441297094524610629683193423540848324211823546655407169093389603279384788617713691114897731034652310830988102857933875833342502916790018740967824668509020899060130085954413128994754828510140704393032025277943435374474826730665535771063438020962280966642308697089794823356638964086722407692677867335698563462908893980645950054943700579914687655384999613042152858615178683476252513521033097340251237379871847665408088062365737560562442375304988169021709842972494843011114426555655134881098979555025807592631206543015324736732187105751048500147452601036547557104324267832652090151415204429810644220657673863134696348992124605435246555692834814307171436490112536692826817884858032304171833418538193531348281053208413641525877777552296888744556652891021552593547839763724085966731386240214330674552020631440622697303491621710047088992398198267356610486340769643669788563414280868084366575065431375590032375211104879693685577060627831046982918512759676616417855932553328236811064479885563209800166130630501426217908673649192822101989113059885911453816069465604690239280711152344852204985407549241124207392017834642101361417220108058056482518076120995969692156369057417634572853874508422208100592787961659315653054056553454007325293457243269240370782412900315290215224187373267381584369995180919518717633943849696410456078698508268030501790635567869366814815880446567366927644105672734981676980095574490453028888004598149644572988251715705469987825389153546287044039920777528221788961195105081636718009438412767194224650875112999944905532124363676711525051851139750151133850063466711408665480247916348827345894666689579598454612911169198688335158458461071916051073628829424046969998529001315953251701481419507067330930348270587539285596649709575023339373442284260052981749947565735031343027978710353048543579393570235985883366807897546989479874184261535752786848239990947776059888894719485209510826847924533838676143298014984482827622997308517449039781296709652589824687612838001924866713933364646636632253085621474517699661703151737332771257422953840501327568605577239647118102830574366774681766112289010607622269961906371239600007186158398924357989150238905379095389669176010779803647304225722814564519195913946754446834946076893323743176587822337137332637173371580974276229054979792132303343946105147248084847670602944491181229687333976613010247829335700477468577431750163961960626959974075088088050817252556149965372515063601973835054580243590590851514370251924205897038453156469551119799302889917416528320726696360550597382016962942948300712577569546807395876692842088736379519151905478896347104866575584207008355747459601244895660475045484203050437477229611829644376600386948736169415699403350852007928017719716668847955259260344970088121076627122242125769756630571699171415274751766366245883417825694748167224981843636220495304175456781437523073713529128470005117020002872244605230796043266775885588263809719780225214020778894550949890347875112902811549980991646979705857378629986769339878777258791339565092252260177095090506521749969694413459222901201486960647145316847447831347552149332963071561900978388788995836130592528041958404205012307777668496171510838777509097871922154956571393075624062337286649708248435070445379214701745171021758758493980688051133762685084710740833436592549564657301812594458635842152689223047832694000058688358316861391295115659102429208922087169015936200033256930266411809554107911260143920750335709443712303811551564785623787139223317543376930810741899879951042465686800331638042418689990409118369012616837299567279787438563802664084859667861512852720445463280037360264837279015912443148708903040221750361637188075003109342585355981442558454171965508173048327936080629004424432844818595936251638775447253501113163671186405492548471187503651643836330708120040559135927077094769609625699602727599274935710988697170914492578272850388627897105260732576946158768966349678777608915022765552762919190626300219619439511600821148580885158068653364560443368091484443906554516497928822752415313006534901688602745692673170464622791132462107463189527048394364695233901410090134986919864377573476937926991258059247978355503894901967215042560146659434503986621881134384769892616866440823687510194347182942623246910095657322918521286373872345665517113916972279782658616555552592675943486719795785576052277754397836350376733021482287149433166877569872504069113269306283856773605687039665628967787196901681652087459566076124128194156704157316727519317502615828343974014326129249263747056755126969118169698682464356965685462537803949012510858898642279251250834741240399057686140509782793797183247705902934386324749204704073060038985179592923957940633426285129393741307915954527402749347051593401495312750600457260478440008173673619384807849334715508186835778674874626715054875516227027151223548448059093188968216005556020922000620967056718138854128197353558149947032444512839472433954773430500474997386357563895854931300986695715450635945078094248394695699641260834260739441044676346079890087383783679916837880326622251666521339960180654321215635329746424403360434897976860631790347309384934124632339671181260746515792632172912501854179306419444766324116115452958106448137190564555350134071699913483895924463876116463887016695367524745326312670559442817018425978461734357854942604599448416473609338665087993927687191899656126997337840711242559440925300661061947283098023312338817817564515881057951142719849871823940684909894614656682560036955371291951152668550636484015014371470438510056349168563909240150790740240351657615526396695177777374055749091549568218427838523445492144365278227618685306038099373503860144049960595152189608847970137761597533966246116369348777842835369499458039707827035211597203335696992183604301991852404747506511206037988090895060865905151813388109852181654194858861558193460278734731232402169821712766960036372908606335392634568676059593737601283468743084909344122689786809421224270681946803913505080097017017776173810039372712698185529113882314365459008512033419945860445014281150618518278847950268282024333368089355852083112032970796424964434052044209042280898025237902873744887191729871702904922831674138410196335081162984174063785581774455943825451921555489944247456084032188229220685919194763522026455012781181440244386717838815683819827175352384356688414074530902433084201634398221609365886563074030892502289897006392111612128658906824619950834404113878874374264985087601445381526948032856907864427245012433025564940050258515648379758285009210529906703604710150354519124065613220172954419134175301166484320514297656211315526840414644838771996567455435568768829397091400304183788110498712347995356243442633971534956165623037920543686076587833835157578273018873471276947818779185618364996720472761381037151475509141208983289990582118957716863841740624944265744309292901905996896523033941083263902412177725581382515695392272357328894880813129581483452946550782646253235410913324593715653710821314546726828438123991208557949823398144825365158552203827370565906030397151548399774728745435688226176239537730094624820173930466891049012248989908661279017564638832555043549871569829591750970257247574932672669227835668364781164225651657718084045081476378498881823861737525873719410117253070641854911099107932115212962466585992013987895325554992395619452767169607996467670257636527668058951430031294886569293577838476903545459679612893253899563432013255318346576832748872781563031609392021685169843742203770380943061910679511670479388577081294118505427728016061296490833114652368049251709872231424990893255137433455500720588046817976166715932812215426291775896917722719458780981597594516541693104499537943881559461309343284805784748455503828428466479447692130775142980827494380014570902507508624254498554993822018504524963702911289978491858995151155576260112345211906595474098317513061946526534712221902975857375708336592691269383754165082859793097464661532369921509578829228547270154252652621083377704346897763702330824121165772456085568500311057428806405133488845801039875680914656893813843442318937355827426918820636925478889084950570930755022718500585202788044688439601338318218217768751517239075645617294771746243634665020805725297425396705083606257012365705081141220064966675265856516611763036036116626491871858592069842254941543462393698554422153401484355771491107198153420545200343958739599603686646278149418556021019149664594853540786947961270793986906488756359162757974144341600541611335111694862657818621831695125860187913314681706228081675917358968890298753507825163039779491312521262820559268104204687267295987210424401366468694154933887005429058211858726135046268182381060779425335573229328736815250648680760103480892138358405815919392131419046407398169062449722493520742655353224517325985395134618189004575581022358082896260088360781787521007675321179150690961089730006124227675569536081229129275213623673975354459997173639323388483771519447413328656955427536273954661681316833046030956260518432315918078828062021624578934362833114679222431090227991981707698946627070378210835854785564735942717395025898255209623865435212416124345720849522423162723691607264343834066366790367693410572766276432549429320129005825383297531873743207460264056617312053736606735943593459875590620480120008908932763192724276634745315711927240446097717464406803319875538144971240803663044515102126045479405137331129832307165939438753521741764285589159364668588204966854900881325319291547641138209375621219880937248652337924203225615110394623185618555343260856396095890748767568236457432014200209987757507770779095953835354399234076123099638187872628454817156060304855930627384943505439802515479918455674942314930208577138669216552659597218652712121010922080568532722818043033698022620535831520668477465128264604464943810022530301533934568025747922475411001078994191064479123304231879618253809779598176308788950442856328532607090259578521234874682454725782446893869874266250923358598952363663312820747324269526986766331884269544669764815210707168219676890062034033808618170417598176112871291827947586413665145348834317822794504540740065316840268265469283522766331915269096340639387085958669757807374799912027345373338220312138360078322441579799659794842275949183418094321837810671950341678726569204084958448994612935448369837861655021705261993672562392736792281242245777725492956975118819135362142022847675484285436914586284687311885491748732010826928728943073264212745392054604995216074169596936433651576095436164938742369170571138428393565752929503795190668772863233163708529036656908913695816253277316642902762795388173628665609404095142189335400006213991400940007676456579658692938560632370691008244469133713199834262212713035146892301388476615880784564784281213440429256855840797856748348945423971406482364106999988940827328890962521122241837865950846774899724574511780665825295559829347792759362819094598747293698819334488035850168689348096280509541394339854786757059078947762459627742689616160214265789088051979391620830501465588610339012965920488625239769231122476134052581550989525213621463465261782938719091338845404378235148547462811670252416447008636192466911234026019007347282337030920438920715561849050858026273407265962757146287900939991154326650525035512933352041130908584723030335124491807104201680326518653463934421714274885085777429728677252017754500386655119243287289210536223041108601970748143856358811913272822268270838997534307366205345754940284937025290040721493090210572003163635039392359125791509866090378853717231171261826930223617154116293622666169027559121966482498473568775136433615857225377362588092149231738035248790552437764484520066075895978916435486454388008675820351231763259179940117062805685306925482315889588722694451195895170157282861500026969463805640105852479814909726810617057130014088092876083490767266195922118759065481663689510908622684366473650305395494580859982342830689738291972189912067398087680239360048560244534103587706496835148622514285229599084482613823562561429451924380062248446095351836739811224316094434167316507849176851204037002180208304784832685620983663999532123689908450651550158894589282318380609330455417295001498277578733943096065043890128014535953565632391337642931623669618199406094870917761821692426167905478658917786504279476806843807445368824334788412184018684725119114825071878546006127339712776694014490532167975735365892897772666638953678373069351085178200746601859167804060725944419607658446655844231010693051412415061885571034785120844769341735601132587345091527539534311426399357825915676698298770594864468760182191397934051935814620567713856564912723065267974871773188620243534652750513885742826628749959667257691165582148107061645576743014908546592760988804888698610976435378274626015453792738712963643647267688888646852295494761206618498768840250622907948525554173781105508283648711724278771149920350842853892522782796743794455238834875285296544756025129717020457662189462286525971725428306223716503823816884017264900706458515883167752986403117202078889145112954483972273232177078860122558749275375623848771886329856190031904228979779271729732438261617359053865094499442305541162633904011671249068320488028227359302363124637500445045155633826245410905681337122775525019902918422083117270975727214040362935617627849956883897026824604247429173598971032407035923001770535578575983876146636161369941997762363763772465417624949961556199338831186514748666847145355729298600211767762360777860998926620640041715653200662761551529053224639878226783045011698085069470342423101762812196931208573532658941648223676556542618421612022417804880939167852541792850989306498107286425704842718754550090656429179526204206000449825080279418299875962185267142483065567669604258282925508640132765270660409567370834445964756548208302947350190368809173442721106333082100641945798748945423487955121348768168249335475430089211037766708564440404304574365574809441014618858206586481058780198528396705278720496711512444159027738025948701134105059780250996402940202930922369769035238855833642426839125501038530498037055352622841081987517709966644984579254313606674421741934045110109728205745585797693836717776570934462132285526125113666008153399049819695424197922608932572043581943404264027928435445429348770762452662135912866156689195759668528372835696205637508139107948296436928318008648302760330084509679270671701843984346187632135734125316133521457618856079394858591576214160845610510896584790758426760026340020013792064654213839835086334906954231497710937441631972874791514937941443395373786383616645448300146790005488816518306675723856009050947897223133922040273212833689459096916108717436433856099630741672693832977994576658879837113255140793277764819990124469264535192313038958940705949248224083039396189389090961883630732263402148336748553620340243309697752714442270378951788841931048676818982822602928862255641303369736902055471977419261470758091087245780482974264007794297236301164224021282482067514037818716481859780710303448941502036685134812630356983783520863510695713998639688221654763649974535452452331479960867237505899547542971450020508023470523452227765877976659311727006845365996283159966887386835978634952666340545278295649630141313584552878512991942390442805465193774821851076893663032784451066540063094586324281562983803757802788414471527664349778395655962724239175231758658207084212937361649479322587888451130148568702956332255115057777929375258822615186849198747240816023396220336451621791847988473084738390449609573908468176291178730734003481167369991024918344059040511573055708864624164299132156366562445626260759145821952297731713916118079885908452209631654245978953432138489358082904113127062976919369771151696502156283619589810753418151173880807942712388986034932701016466514345122965517912308649224411983721243160112705595506211307674356363277300913557010577028045938797081750440827871341057024265335558717113174845850909815968404617026214012929434088388302039579253594837038348653587837455994453929140963799224379360573624428700682206828419003588952311942543502260924158094607293863494778539785953348795438500285365840698178143975326848122931020784462759260745515439193378795773590613795921312058744740029785470834958841472185780030356161160517001829344609305226223578717451374778241961466800479050878772125822292464496598283989512372227318241410301799134028896091600199205749847757975964091990608412535248480819477784599550110160771957057431211014519324104093071731901843914225188044241936953756890675962670062908154055391570609362368673458126444209639578040329607579774750833604622377251420864807212195564145188230734407907487097013100501786578820917641915257352487619524240883088739046131376973106126857267264890129584467780731854883744338906179145976424943147242198105589152252141908766898371735515602949120926931162708394400827527849839712539466192216009724456548732879913496413797688934642104503136085966085479413927434167544990883823377176767875641037961442614831337136038569164290847740162587770647385033606966755819323623289431282644646645943736836327236091566516010606539440425369395321379023437034776791083577444003594212399994139346690002567110130224194815417290414668763503367458505428994239152371780789406891449230288006603433861529570840364154079460281872819843964723745350627885617914146426158157004546467085139873860262767041033965582761472645227870964966955937350498514144026107050470488280033175136549824915013890643538764470307254352303295060430856572919007342689941053239061430164195647835437878309988144422263304815321540288687425265735447602287480376866670558517546466202746551119135204889759093352525230661032745285800275485304578083315767018289468305976765846838759980076082563583264504034432178753508904534136085671029821679494169026847345583885194952432056128292081538336865346085152909271326687793012362963266035011051819499473287052357133177678269638171574471231253660195265448459620811622048336084231113984396885402605966244160430989763062947675880717814038147649287036161471773434203797259482166774959911666301480006962167245039430490661865513080420022275925308082370548678597027449831249478240293469953596364287725884330601774501859395850231429244759558510622356772392442314797014328534841176954894997032309646195985148616267971436601445720957404071294260603490259590311564746474981945755646587585686433314408662387641064154797805823105497787580192929155595616366574312647268644178691512512712579479491399274884649041816458272339683525016598733051288094870658220857044028834834629721123447893430319021309402352546984538588486126778486704212865030449073815913938948768349375905934626937428129017535846810068905300509405381519640888520839830159177227028721323484189312058692522142631351488857600051153688611292376526777168507715224846582863181657840756119208774177670933526401631833508182197607437350910950265879407779603268125317165352508208544231838100550578548334768682550825822594575986725662017076532968844437490008067833537949233514059229679720292950540061141384065530601029541061092789001674990836940197456877114352215751638242524027218554486401733369722589878014275379815433826611080950993581789491663741114482448160638614495890647011933856797224489155676075297373767654144169918751065132950617245859463375967847238416904769517090572426430024761972007013152083648536419420067597375035240803771834207091681330603031562415227430112332918040838992155502602784251858200886188557779902521319625606438349539548916133375217707963817642568515744483471348985240453432617024207952685992023506358605283506047877301556203559502422621483365823064940031942604462127832277000040589245096641263854006978656938013073355914260192390732777935060095592071661340630912555279703939133420814865528749398830593495117835679977160323858079429246009737836110940674263713290205742565269656114736048574326687405763471000173472208980090597650164211099947018754756097083573836497883018306521769031156523897160338632333023520740859799672482424394518736194321052255375051558596391091932653696398290662554801237241251063222381833853380863687722708923762329629429133991378463184072484437812916176685583906954385562789371828350959469340846247515907097679765571139545603885826529215136160520386238821052995550766958277107691037687647780762581191521087862899565226873992893871085881910674872620195897347094934921282967891588342557823246637666988835640241050584297021358611355125438305266462399225086450803904864392004641709520845079323379847708795043654008225514866039390987180799085033866368453606401389991032256847806083493306788340027265316466828107035686077773764749733646398870472145852935484053641525857413257041506237937460614168253557262018655961882345059429250660881258813152754943565075714710353818769898800582985349593467565257557557555684400704996210195784763541383118220368151347608144935710855630410160647223394734029671842379524844883263582080088298480705878031106776406733834227808080164961567270245702261485915360527135551605204034926904219704686561772351951630137613066983464124113648948420943578618625657495524195308605680894747169270852377838560252824113948139194320884292100675089990648257958823689274066118399840655572738772482207950086265226239433252626379101093918032805622946018684935533254968063677120414830556507745419704102813784275534100821322775367671362286593773073099697578565114645503270470263676032836860976910637796207029911466443507063308867587805827597764453154274852702119253365000792710379257787452695203478099482012110701461511471069179839947607635050585873601516567546260228887945554343433417257246073951531962820240362633448409159638689631079564439295351388216669088635098383873000503507000459541385835329474564819257650807525663437280114772184204506730413529908458698043555722850622281204579999062094719430223009517374652726778513376639843164483426410997138812164434398757779293045652140225212395368699571763130048103748329832260645581787774610793517968133696633527955651643331426259471849844947521413672156754477168065228581539185537154560527149124746336172494895212905022402736174632913276981906802705687261083877614146314731407966825610744027081157152469596809101582387304883967030318210923177826866825043425220291512530546725518330438972876852874445664657889156725334737322893318743757752421987183046847852782994224799320551331137795594583949390505950086005606236981313842270693730276765649880705505237179549754381461975332778167303055130271022743707577451678004835317388134319095433285637998939161288858416592559423230996461915286032657851120258843051697777051744786261583622021656645958935517034425695956620813310571417494989113805784345972746517291732679526764273274430335819151370838699385733218811046035932360518684740030665416814090951242710289462953882674544655653346432948452669562027294658475018036073500538409940339636719957891942024259193419679304502627273766689740501481842556341983089544695254260125406509715926871537065870719905593777707025764775462892631945329201867722514407539590965960080503775607187636866372563195852940941654495432812242345595788057891099276422577910361579409877920071171674105607167267127566678685468976468754784133896972914792768232232050793218802832870345826992601590723843027362700265966734781235047432397274034409798742952988527683685491752952804380008869190492139327862833399344990048438253841263360307713428750615243133562226064710461378223804215466265529838473680703406948463644116711054806534439465895403001510228510393668919030955007417993829007605909752810699112434312460191681749796199857697271500472004406469118576004489344637553920656363246043668526950317329007853421463677553871784467793397509284016578184387522587573146879640449057104293143260686390630072005885787149971219245606031038864589430457139756084018469324769165987462355389686324308515308084974679161745179009165450525060940654760230938656723077148326806798839264633423595565842347186169267285059028481851616571335392477637641445098222341980242949895166530436754290159886326423871733478391880128891188595162024956736582058259372884828805227536815778045531807166732170651850725213354518062908916956909845716328110329326020028767282381969095042558683293735443192746373361411330075740597463188986115254530624403857251919372246430223366756428093160735927241264399190304620726204788566140661105348734886130037910269472328829502249796709204502881446289387774417914638366706463617854878150996428649510762133786671209124134799037096180606377935640482394170845917448702528200582483014447445036370884098931884334017049485112055303441262864928626123120785956095713348220373596788812451168542566581013217090902265137451916488327394520444423677918357231917440611975059446439280383570162566692013499191134964743139808563161088555450599872473625203906612303576666693670907610106823006299875347933191365748410373217938986016242830153557508045320137344457178044397036395769660588692903921957571041334841260271662251731413129451436721108509386542222528364679222055685788351851921728059533229177843048571821582209578015237077826843433935611761551371120573707041005944115399475075975282984880470810098201151409667333241747743474565226451307313375654703468964256747789606148988469767432234050173552638349361505525844858878368199260344618354887810610251759959242087856310991505557262189106287032451041120797635543704128427682943890299663622490749113352443110095589400586175821516913492596192520064868480592752626898932568046228097672543152281256490769258391615639178740728049418016504921811435983493533959163142185645032792075131605980952171203859686415568500570767968709248966814684356525946430929565327430775102465968185207306788797449774764689531354835581067761619729796698898863845506735148100717719508737163153856061793827223440004425265876839198621970578128043946600917572316578341811574989001675793908049242748551130282524100366001381334916947965827660323494345107433797596159383057276084776897087112519465346318655866352312408815930772427790933089332086728745883041793279830029152748631204365654148434636842441140780548412073448227035886035090453769953008271408445499007055975324217048720822051727039557378279754050795435208366963943240168749882511935009249452886944094660203314778116700857767531799315520153506218881458334365533978480587955212980191531576180915528654270131480962007388879185543730832217058703881183871161274624260458718048449797689822533288348282637918149501996356303262046825997105790949454877126321927349079205147528083312606685558841969627947348853739558034229791179316704318067243446324116034872018893612441059232589265484503969243761064599211807223935472640377920489075793591841946290607316440130900692233814252253018317512274374630064890770524457701912679868088567391824964942630542260125178650955935791106033846588346379189017640403278714597585777234690912702961505182383214959751989615163060392848434367468311780148898475470732313540579735131883598296067713525994240309330043597660134109472509339704350077035672859358823170317217339128173409655918197555206732062276243383433893303432459023012764257521159535376232257031339911692517540171010699353526679773635484320002248654662127417473574206457383721745528391313570228518257984834753797207474075354314869654653011820014728438333678542652239602145692178730805087322194550461808241485849920644725153331163521718400857126241085932516633959125565897725731811328779372418371571392632417335661207992566815406102030176505865542457396626721372029955582984163103632795433287579722146067791338056982332689141427587808043102301245073221829467726393214864992348160333362620569752318281284487810892727594782980395841819349404837035357457730820014113741228150448233847643798752132305558840834708685104156852490411156710058837258779839101828898729240876499336811033217520435730325515318407366182508034236131175697956246862427758967139598452233676518707676539716283575528474971399132861882115058608322655340265791556111678090536205688763630330353670620300093509608449678183055332740773000800355912312669462194095539785390363436761746675507973380548869521080501357884942172069723141081587151476129203741845243546272746557325422286852698025560826588122820132708781193741633977038283040402242956392205065719474384033193908810300725331972922781704038456950578999551480620318469481647220630145015493329398967457559341441629685746653426919807487655559804475025651286129361491945167233266964598005038040467040482702827126993296946052446441382067845174720244801061127760011045379185289096566075554223379457612866488174496213922841473429514303659156679389308778925924478299968783791711414613455405713724473215488523907691961632924581813529819150424602087740816530515375260576310138442669999853142129729083759352609558334793707984940600454404992360244291968370931521634307091719736975443025769693946340424792698479816758718348269537601101249237403806267036180251867852423025490057733583184252563113866114083587058280902329584512297424077506249662993700691907386779028854813457124707462124949781292502445976494525488838376770407157109200670145811233730368627420874619745298308887675836191666261215067686834555169611897268390015664432970906076554416212369962918111245694960033326385303959291075047229472769790234715151132069096219301420405217094400480599439507023910151845637516887091484103586467177016116344706970651130283202853548437749168979770644493887758831863555411015235693491282205704878310244438947936978133042131088393589552354068698323421786724521866800905793116277909311031094196490903700430252800010915408327872453674801547418734898943065566817811333892162531211563655843568680975705015857969251300874624833534084928180336529515943846997759467422594728757771077847992688415417960514153422254198761288243972519291665972274124898251337490005227564306043936703790953517362551332784269718331200534230447110967563081123580168841894465714144993057726178007896346792369327348627617496116640249027969855058829349783334242713359420833566062807120628368639466051458360625770311763192357431247078028359993346234671265899835838037763876394935794422569005136400851243528033148572719357138338613835302727377277079935471250244366259268931353195058707497180247481394519582360338956263703339603438287383647534527095234242786438999742203720017532632063181541247775326221937733242665186889809418642890450100072743903377810186827118617075120009875924899331427800181611846381415472768113705513225085335084892016180593873819616352160088945946303787287724504314895143040257352823480774376318105729889306193874525526336206371036657525338010547310414443839680788238452304017589033169085757904650439980311720695411818602246595935189751801710203873727216977969048148677332529335072901230513644879231411079012652197358500645476020336017121525835088570142300808785907477469229655717054682388206231845059351177875346699952010391914420121438746849314852120634881783105699348624508751509875775755875326616848348470634623662614781159169010312011630931401276988847747361406526661960214105760940198719721445221471498723031271406370408757078826968332594001049508670580924458925041958340793005174168765783307257806399686703952779376978039097187561410951796580541749105208320316052740315280694391955375017480707490441230474848895311983152312378737373979415705899396550852217940077782714701105482617667860343293266993181288663529001095821533040888970616764229539811884130332113354698249546625562073875386993785645992560095516856925934436819541474516872953990653740258126929637281158370711954145787876372861676089358950000429328516928265522604572146124942443957163141916057421577332775371924367651879279769299794159914556137876579451992115609882575342278128888937669738928954736579601457669336832012992352902631979150065771620944039889110039442392744681117982046566201867113132248642839076933531553792596156267397824978285107036688813526527525883718386627186973051895401302982449382916047871563509421195140187201675977713698126768619990908192066452400201292681171951321825830310928518565179111154950176103029822466553361907877005042405169642598049717917604232878228994316850013486743420345523850854779316237547769215545113247427334148492187009621811993315737458943076947341159426839406586903251898764719295882797417858944460790963734810001687385688908589685557058725168135184021732663778531728810540879106568375047560810502841051832327802593140737627901204640505053351056161752082772174524300406599431375007420811761096491176682588611395714926750658748626840016719158591916735071347670994884937082589810068495283378567371097901588965152449699686813212675012759567643232990036874632113371546325311753096817450233343904090748514192478554436259108741505066153464227813483995495808267931698179299719194272063342452571189005955784654604611188172260127097386195158256762286347625169496238061325696855071550230479774451324426321274994677495267628093862069912917457663764331772875876741031828132772898985596079010708695718472641962579975728485823234538022647625214557788712522686442797516997190283473930354826381235305823494051087018581092641216339679150219725632905081460099823284811985626675984947592849815261416863709085397375371522346417288245352400488446574686436588453140777881870546185657614595576071219187668079462533295298902818913872635068728211600199624987039786241502860125737985682060307854212443436607239640944754494546563557083719069490047748987942220244650036042695782129310558628304875217325502118496789412501667908323761140841566484980121134696246779498404214591323180383837138017680162745616573345345004051735470060798228051487461881401682163207662462401882696301028673968418606547019981904572607038038850719758870052535619030252961833081697726073753142343950944925349965251552345856393362035046829980837319671089625848129595434940053447364896016524944820109832267075657988321491865470858587669094186020466635951961515363504963634143158058994534120148321778636309626010243164419093784335218392661180081521182934749279096933598712938085170687100896107588620233011671096397120763603599809460520986198395598224213756183471428116952453251382792345051876254922275294775221105327167403221429547832274500213768346872339844493201550865824997770226953511859425032900986723845391445100177583238023150857148412405069585840299274849947986012397329400329995032905390338979603225780632228464348826597281295168607263383858645431351004065766100931002666772838301259145954708193711711263496175555319773321363438763661702106340818708415390505897148931317716291666773800894013687120908956173774922648591311849848010194278838057698929013808244533667404033177727077008512097541663046923367881871722386554974090072199135810035630200324597982697126662101126558177048720538576522606285271327781582199134651564201081647844318484310050699576268965887113375284483753783601763827745394567330025262527752013450441339485977448997994313231281698847194989914586379455183542617426089532278558844570830719277353421312209261696149763518219926242571035737877264520153539541734473308238471500351671948660574333506308163975205430881704380033548352006915216090728176893932771543779850668943107782701863955516721756233370104745640114840847929492124613507151409935586337217383328725749643587495164619500264682687899267153308346565333953900767855941879669264054847589619150011631050001731685335778736702208288434356690257943854528632909944877017662362853868831545308196823687924360369044827690557208183298354620060060158323951504284445801299023655338477420674010758260641361756140173591748516143813737725461151098151620477983094707413912802759940851049737487823107465914063875748252359165230268909919900888638735674894659725877379766386369841315798553841863625874675688205844128873305441962210015671780131697071094773496956105999077528017253515224389384337830704954471641514497535671503090978971480024603275469504483204514863720511410722966583997857988732593132301529769599842601842669753241307202881442493662081514584420908871453540349984663108913777337238575427724175245655325732064138667162033157798252641068154002335005141363958459695164047988786030273517286100001322192033271489431776517099434704544773016688048102555755649078267513903636026625664240921362870421405390123883903201218499194996331676314082247973721551496767298298539967345078741394985107069254560723292336318471956022142079058071511667185610231568548337774537751180582050831285095480809515205590319014877000601892619951268536496600398729946029863767426418791041743508728741751433904665678740450068285380445705497323747904164049621113891148275027363770297324104153078700446129097511032842234421794443293182162793003409504492134447139931882128945060074646828559373317721541341195778225150203126262049122062319828955611962255048017435659368804092514873889467326056706289798805859381741477374484640670692276870157512481110663381764878522040342821958288915281566388652462420215967586981157500999277476872780427300603843549992880025119186162593129230915851369260912049354428313684194182369384627923405231918319624364570452344382827245611048553344646776742621613464262367272183632934101361704252874827788169949600157498720690011655566376778786770342387785758955899800592583527594547791234310778585172603534549234360305336232912886814968876445242781276524660541407064050557295487361889823071498524049523036928663162047829956148485592884073722126392388745008509487594239317120928774517517262720013701557413409539492298659354247451527682528727305835265433187485347438198873336661916222710566318255279229583060389036845105573052584653081201685387366820334347139324037383624044825753402285837735042436424288413365290244434805111618099203001402110894365904371250472470371184334086249260678613935040140019309950466501381235833207442096104148638368570605098720524980973971367784019398517953776512211991444396904976187301484168117501254918014960876182924738491220600005540022145027014374981373479879301126346280208818302353656766670137868709924142425193525259460913623859794370514355215153740662699853385839439354879672546928721750742912525565597029368255258112260232132433192193485524699116580302271436830673279463346132768331784841775814022021494922680551405877994398385057109055190878941458323262335178887287007817975473486340897653793157309967346539430987109775033598878270715323507464344276819053871066427523750023288012176861534126769244315301449979687580993775646603920220147208306932992865796493485354297047581970298776918477708409901864882265954946696641115790512764511773761332516861426908178259558145768216288820777944760065803392330559768929873124580941597261107516723944374100138147396027458962371805614005598547157194340275994148704094106973122225425998459233174641723226712870819869330173304170546506796941621810718152534439683069195340889399375461554644013913215203179088215637070673642977299238046381640357125004862676756898009097440946978303965740233913770715586567153488524489115271306376454697721993094153651639049898453263838862626122136166687131510389663221308379946915932047119362822987943941468880792066657138544528462110112524982859277127485293378150396391709788027857314294543078527236765649571213493235695464959382397161643000050671441671746968110496571884935927344323890267940857389581567765604302776924387241898201277609034709319461358576918891474965648163944130411345398305317315614557083269327275148431319629107368224182814945386226616214361743692940939093218888913152557981240082715179215368941250476354244461678045779505078170529199846863535925094781566986352515192186765011069021962884826667431475322011021126855240242485025281531306111525307587095077168522003144438555550087787851016488974034170224861886162952109542104875752154873604028093023999693135046005023449491480238573896569989818682163548830793568784764607898304736667577524718406499076355735054973074382055567769861067336710536708512665020313424549048646707277871003798272116015415521790751162914940221518780118323946491160434232792734858451498511518378972855310744502020529414438290385430241443397442936569069240020382275448610097213606529732645880343455023115041508860908697858719417243180674312868080989947292742774431066307327294319919734208636212605651857920648631443554744884756361673329434564726243443516605651810548054575829517198859590609955718392117952352870775570368347395657073726360718701193093330449784878960456827175788387591975962986552479626379639413385509849314599196277134098799171973239411091085288646624678980825940885045807912830895956385658052451756978188387609493575368877638427275462495887168402201212855639217608838076523601214205231097411824556883342578805498356637838103291740849420959858191653237024088141629043284272108593640153511638740032567520343310972312173598685206034350242044184393721037537225725397248033688825124261439773110008758603411259771659804139481110346640939944323666100174839690492049018250874707567918260903299689698197929739748169232195346542219634995681971888436513330307002135088841111114887154309841356560506377967191220855331892130707830192075511033951253245012141015138054039535813844502537734623810087350718144802260520829575613595861033093970689912649489924520911789564143329007149640774810955577269864270960435432236576155122432965903808325041187080866408994026552534428701384077140299966764439415748510667160634570409870780491825048978977480809196179892102652086542826632215645286201161091839627165557276276494163378050376914565764030779444112986497627818263999872140918574412854200763377305185221799275000188273228565591077530373617482608001528896908739946064571350423999702102801460385530350718401206645459864840985107911604607870397996011864402176892728570738924153001149880715671924026134137742697854161797789930646596003241011298949466887612295039937391131407283067316964104441463874002469865075775983927397029088854279280747629305247021472231971592728368651325101159393770388632746211103027218722947306974300623347795294863827401202431444347202155925499972760547795503642789093680709369057066507775363945221001112943172071031885118512932518903390250815991397880658798273007202764499173103773648532088144089729809543685764573283407409747476928663119686105162433450668001532400772054588268579372123464923963050810035486061227251884004162528288941353329530713104801392839690179845350071171181902596918742700591636609205417510938745732884382990225250554782714330800082032176569489070929416189470017922867078655934138412197662807285219465436432232407759338731869486723862989939085733681543715190769246196757889693426144805771825976250388719554127543668301754696325768360886914500197454974308964564397020859155939862403318298458035915542830704490521852948259735275153303742554000222066778635499846166072499286366964649101776706559416518687478580595055686843701089441294490439673252921981957809637325386090387277510269395303072957827405457330326546666914901488982498355243454001041199617607345232640572679002899056971503885791995319349813742917362002815455552394751657145272318008055018271724318707560623324388184299339070626989820345675068620462026417567273861358839030653802977032556653249491462036160730761159526212773608967387094368037172877567975572195318275648827476891465200854559769614263626429066099333935773648876255410338229590413954511008184697642937545841921845216531438926602018839594135533587224454610653806365439757555960645787886377683266459475946680425220212191011216256868072913718016283230293890924979108440758585698313236508491481227306654569983681696077185862320938166561210211961446518169143726299315225136391807590118998495947354642218406700315443614035604104954796512368217483601016782256066209054422178580794193665269650480909150201205790059771063980443226178518282111584068423420271959195348632092517286025245721734127418143339922375063389366754793768372909426000554421220167498991198107061513696892583080387652593820193406622151821635950539253244960601696051630106661834660855692835877322280212802077013860581083626698139220521190506056812009024084556506353709884653350180159645175980745633194609818634436761761983698530400468442118352147300720097553463229969152245121914708601594274836305349172434584676324816042777440317926419131472674566354253006856519955432818713147459520719986687023351508663144334764705150444916492333575089516176377445633497265647651929467767325284087164825533793473881716001891304484921068815122706307148552021506767373625595264355838195944440945733415837777888776608752105614708146820664567626838695880170506751415249891829231580779256994116843523727281225533148299933032301854947816508712689438095453363926059845578635659763249019063769608011983033285355711630517340410624974582215083544371859790394563667193924016232764674684557515291451596922848715593399893370136619013109595467108173225084918306130419950934875866066799569911279139299098549941982316844816561121053850384897837597299309937834028309673314137218940086369370827032214898937766005590367677536525179060894901894175428427191300698507677082279813012137357718086957297778154902333395774242093091120235346857400284401477074498880936987547855983444836310939973102412136468811854940025438524870938180920554854808454040142164191062213102643283482462922774473055383572487185041951325657439452697287805012345616257633623227350538807815104032443653375192061113360800464521799847012260216479593914510937325043314870429963786375363254148838595066815275233879897877879627501218684306039614248900164439076241856437544887121457397439350976596159509498293463786781055803452329274375003947625360247564263851622531616435819496833035135119639649367784898023738152921220077407871924825924864989188472143910345521704181050219975819857708330777689855248657364454199399466682936600444930633085091878205036866502805653585959087902336967780390532530280401679028351342759961169838394960560481704388127813911777450214239102491709149764710735980203449813394323078059387802548368518857145170749311198579555245540902245219172313477384498877699406245076485498995060747327373007114575237346841669718743107419974150832210021969060324255052462088085538383472328377681176636754803897087166089385335381775116953016361293996853667143593096713883474165741764011461502799747199941568025825181805376708705782963996217040309955931887074950073809441596313469612489629212090255495161291746295444873354919656034692194573956971249059193757215809140554855647641042733449384404070841017241679749852139076031299580089168402843729184040059261600564270235488311055998992726959898126488247421279628616253814001945004862825672535761994643465339208354958083259484981190343408215162186045711510630585732784705797379472456340588835571933305503329690736779275309174551104515061297846680018726235124397816881535083335941563021890081266280308855956520449291885678274626143934143430098642881913550952303593555777712082195284219849173729584405044699440102509282145768021255020718558504321465900627995438767164523022789550462721762783310370444236354445666209155096085888389449830062797303489206099086720091009827781272767353137036671600336237194887469943724925348768391832783600694388421070726517735488926759453618151810387301666675575455541485266764404426918333508271775461264247880973089971278301873769567357600787248267023787346207322870971844975987996747058242380826770670171089625090653859191030341573676720092884600481573664762428576279517011548786557030191458889283031434927188700592466630083876847720078324700175329981334551550429870896600563592357397827703020980854058407784716432771781140358250578767953573306674278299732474870652732786019531459363182501571754110060770805714318028566107950217539323488051590357508880227236242485624524227775515366362809018875590894904839610760975727002317552987717780564977369570676793291352218445595220920616612428544444405379841246620273683807127156617004767608254410498105003662632253566638755191506686507505895536354354656270546092382390391777263288635091786238757572074909949844178875795717823134743063594366858823993896832499631750666754483704963824053784603095374880076079659990126163559726558142949181598383511705586734982176777064789811249073244674005959701895127224672689584838514777297728293612760559698090941755221248527318678500499146039666601153215175225884843046655501162621338826269893508108498138663182167259349886708114606049083455248776126910492213525119879628416582872844813659435340563415193268649909705653618002078353961625736380878317600149202707677824920443841574749858338369660287467163185911941833046104051181291709903887324650446331436990984285445621583538039621977484715859193025644850343132037546615311726253191857067043935199138047901870816399529743864087452684709021877992029252145392556063563337244197910942555220837218941352958736969708895605641232450442772002901288443757805776899863536046574560076440953001974454374107755938613818089869578853232207004048349080572636724359471713745174379559312882265797002706467024611458183480500380123971090687060765525937978477290906519299490129106141095182085375852123715601200624958729709153893750570751311908166500191173826468255347430753095637339784244245678680224937628306051663061354957724515933987895264046264804834487719354075841264770475465240321858836221012530976033472111055544087688362422176185669593983829517268283719806722220391011705144166067088664851463184001616381644472227104840894395050534484761085818565906166722885320073640420473748374627509734815344552389078344389914600852931056817916717758263424056291069570518148824400770714571864203820075753164506295575035830619172296343823610762458230056745079823144782319880829692297315117970637165267766919690701463919104843621274848311387306992242480233274677495516166678553251794248203862271698274105582967816930429395193045208917299330828950095623909131827182082470653465957246324641046691696484912960781500237366595518426171165693612630136298871065984219543599767278021065711140774707117619826285159756098676915185911266823023420474509295282903114063513082340130639468350627069250078125131338550330932648142787559108656042209892406031947874633645204539551988782426591966349424853016295832405860294036403971276176863461852997490963509791623092164989377709932236130865274313914663065971488193753521352669192641492410995208577311134265481302204162266049032707943843847464292882551407866163351980412109943947421172057223289674316247335122045426689555970820296870505430353189196192107907816206528323593392490343642286399034633112819754887403395553899561192713015459515310451835804032655004608570977864801651388012447790548867465639161335293359775724250117979221172055628815995740764346090598197971506285758518499650946549743871988086376006342885061633761582023824559957898891216998606404237386341389612195717390787887227118474498187534524561528668720593756532060853974098615847141252783321449423184406075635294942796732811173092249758326474636923826607835307850834744471691726037679418497281929642656595596450801473648511326109232320061768742047519124008669445993164220356036783313419413396217161983746098752892336889487463388264131101158778264723513035949736679183693243779471444803118470829947584374883068732810003640867721828665207519903818286894435474991587607098221210693370949889520966512902861117729673854616700746037319383647804232955125594496313701220506555046456789463514192254471972462330206881143122264532341661785846749116001403008344258074722150039747975583424347864659413871914683824794966513260906682640611478499553471123518727355491842668200803866751275793901827246222045795657190470370096499537805181466140782655443102820457917296735266261222867786616656273738825597735434170377902526363848132235494732774336403819144525105834421589578912360832936114440099401372425494681224338887211773033136490535594959783595069724343875457477988009733511310041300453717826589275666096272765216358476278613276162740976895401226809661520966612621004276367551385382508580663304327489458076791328818310210280846375134411444889077556565515432381625234346921050728135668917068858665124335924335117771846110564053674115248138259119265897004439461667715325238114273767903662279388655018558219779844292726836467632363487623767713829574138427339560268545602216127984887621206630747399834263858233329895442469259686466601814962579481701859231068487897319905630680781705653167104329712163074766527301136401275844471619808147956906604317005681459975749382668280382607343463876336961414518553048410236062375625962819959805218673708486417115205906955592777712193542831226812562515324764041191308985343845300907888155319694375639054136255143138613349369679519221069318536288458633169977567525422109945400521756036883646995213258199635876448718569534862051575887089193561267305503432609336773014576526176183628135942814178994315871123799033048183108330352151993795675558355651398189806840382134891565069560690069598730714382839884494801126024649821724232443612463010687568394953080280618938033281269531850639948270924608536844018990319608455806450193809868025212514418539287546332207298054505173588334986247999747608560965772172209203815456835570346546488154519013381929387499750340129933546811520246474178160757747884486904128133573078865055776890210089392523110179620122018002947471538480459057774092709797148352853427274763032322280455652370442115955357479048561817239569618025259295708457611486234948292665744164118509735263766352578155367343149076589577279896947292455119825024103409400265547876615713190237799430786722570568708369141048318746076726777178585221257931103649651754086099289053285316907413001047722352892583286405641186224173803303779648558102435952427892748059769347444122219288291056153693515757536694633505295420602837111342833372177343878772825741248985640614281168531748063222265435041847977642381499464223050683994987551753809581622236953663212692553337726111810094652732832136397186638030519513528073248966988724275417191011882939067827110391639950878702359767011569201696187828288217001506715077806065484616546428763309725439375544009762735067927298274604277002382784885022177566034558238075766647892531534575885324526038454381735290552845099620859079610069743546188602337103981729312419346022606909174203152437167763139756046267728893114834339048762487657123482127237368637772230090533989317671967601879629520950440143989866847259824688669220572315112928719454384135614303491518370507666350934451829191628724841038155536240150335505975665293329423169298734726764352459353175167638915984182942851366980927728468995601502615882538629787338170715670316360685237520248769653585079044100698791891659578854717350903084721881839860732418604576096503785153487454098287391482308632920425584202458222752147466679549876762301784508318986632758041722275563397806460232477308168078831601686780886310742953818537079880299956774724427806217583042143635150739309321346100380891881493610556748860600859561847974967256378306164372433856233187385326375426798976691149991385475150959291761636451507181792402822931513629185965546324296880269839818131482481175493079232622229135023031408095382675905271592988731842596600712470027922208322295815735039320024099081060446140042669187163094984515699600140908233057300372574558607061981522008683416813039267665924808411467865655922346894760233760176592450656695678112495760915363389760244599816702630735559354575786682679882454844671874124614540504768460904705809913922317860004671443878523875034274685578651665635934612481300875759870003496599187364539622101459545535503978409940034277266319941573209875081666928538039329582649412767492720629920233309568511127062337204669411532232824771643767088457974400651981065548324995483177061532222206815775505541861293227543005916406735082449659251698672236924897039102909695285715775093577456729303768805290046516568539721585055201568303312802118314362575101537905218125590606453920788680651834147137396783641322821255405021082123649056208782046925340363101987050174509683434199205420702648374390438582679360229153034916205834411522921999044675362395657936182326147545912272507717684846535626100325819481030114391337121604716633654147603229000995006237163482042986805401184809151857614915877677411013556907258950730663608584248317771904656712057230339555933096834012407091645054967720596190919666920944090149241788634769058838502779939530066017254001199551091690312431545592536510522434800735521960818521234171990962646581887076430930838330508406201898735995383817141867150869616676893308883596170920080852702446571004622788633118258075364599857734691544910220452607808036991258699427161651862149672461544231941239379815523758227597627828041323266901223056180661585943773234618758712355574618176547006431934037763562613782813725947381036547402751253490971323451044857348863107996920760065074986392498736863890961243301063494188409626219454064378176927603515957982107242827123261759885478249814356291329443851617963564215377197864115346277164195941998597333702816897777331437753982389948639700287497048417804415601350865147409581705657525027804683206016875514082973193517646033091151427541345463423804842594036888142938176209989225761528964366924584094220047549252103684972912933146981549851863945321726488561126365114246291005981802559107080402210667329556859987823902371061731026305478849616157481074476055499304481473264342320586833870600429918779670619056437808588030530518578026038531645606110400054123893989955331117447098104123193456936223482437292837498415157931819087500444709333239009403457198893088275951094460674940772366319450391644817858220815459935838406358422694782591259743924756017115383150664015977699981060268418220719565516311579835277534996034170395911182506599460802904601611750292291967113307336275051018215082002111599835765728634609747747299668447134399216960607862655377084598351141762074848168479087684330831872599322139558895092627906545831590558779688396806305269759423093542906050802522493320253004062762789559728876460466949717188034286699485084432433323353795990842730725274151434168290604245755881171627845945952904106793403078063964815732874450398020831233327631275795025072053349120728591950019426577987200222032971881043475632132698755783382158767893690946712988601612356784423482518613803316662504968117029952822569909724010891266182590410300449058058330747621884443467945786738659640591296515631840143945544160441457255094531688914890488224610049204615929345529011842845742163383731205632672073341377712805070738761747338770274291646241204388049035638066821937443327227459163101675852539846169322299175313333901654818991330713317875880958092474563602150084251138461028362205993875849412423160116855581871768355339291941212652504074747325886141742512089082839767396234952977704160372757598006158351188825564489436048992485921414161952476255194823026498241869657782433593388737313683304545634109422036209325705948109518732502452001273055476936742339883995224706415079264589101690190485993158786458247139559502214067106041759506868594914081711676413756942237478470142385243269626804034609776145399523986296564761010897088958729829515033127583642607602691130857284934725278938979866736390874181545317863620841395127379117702696828739838834378300691120856417691598787036675185347541028598068372684743003033951063772427158594922943306904828912515935113587178802361123748919873020443195882966333081438843356748855236086919496639290387816572885657311417020455122084795292023622762942013546652401774257869613892690237767684278329195641848460147309407024257758673675131157726473280556996692866651477847887029771975838585265685395764140266732010257114548984518105649269810424542457704041463721210196125067911442662678314349525629102285723163291214170689117851329532736049447013003926637638601675169364593142702896731247539594062474752422910794913093666882434426832391564720002010323623637819875003278666809934288063549274958697809583055377148127789717619745336304155507599220185752326696401658570832417662124558867095512992421364211162312125440688727633495252616386916288891892994258793378752457304345388191220099076827607700214891536471654635964104456711567368559147059266064021575360325929739771474914181661151063991171976990103025829923601062644855102366160952877410453431294307077355007788972656867792269715471973380689458769472189950178834014742725482861765033029444641352282850481685357718144118379089577899599563573412861258389403733193899092482275695516987154485642110648015360624539709763572878084057148407148400663352221765667068524629379588414175959984177119212184366086494935983211631988401122463353303305331938603067241593629581412637118743335378170252171977924955746601019329362874355019403984786740308262452263883171377075812739782789372201906946543938721964546266930609765949732936116330851396257542030160198206441537789001564822045898967394164855657615469851632002403282776005572086203278198592214782566386941009712242681484723968671328735288589152493363645947811661712103375346049912967015301853270406330397218583642616991892272565524712756043447709689806592770478675589835654898534064303152991499330510528913494078384262381574320167741975514071650967470953516242483820385473945123280972175109896752323165403017157832980410914167759217701142523633577754941377489782794935910922598555229792075705302701396663659032713764004892836327055971752446585179675055500626187043236622083025151277794656077734565863500009715919745944528706899814460622540353248320075401255558156141303225229419509663548932679482487523446552981955203455015128658856736618006915138771312731919271370057097149035184971415681335161116291416174497562688714010167169455706336372293555289913047275788827487417507396209330245769526410719758838670414062903468976759280181123688314109358919193642668461622951804511219948682662036286457139992620162020180881302545192606717575891995785170306223733919384743987065404464297888900349994279674309857135551424178482005202586900654532777059174664685152196147976533275132556438976319898575255893051282445803814763674279869779914571493838339073901571834596339855164998216541791886592601493052488219708832123904124824395187103025627619191330907820806440029184877173568408312709057974854232034733188628662571171680979247996749521196684473783572949445164164956349258370603538970006717786192401615535612947548167010239259922751620138426673110648197738240930919082674515132582417908671942718913795622691124119870854667160727415389497082766534677786059528218499851281707519723831873583306620848952739781830073731475172892169752737345050654602823840275196756037600401172633402043322430030728007503742511837914240576462787938183619381265934783233188107359231896732581322680356756856208792974422524864869633289199357242661781476975446785965538178318371072504858017156506025266729016794459172711546215730441300511799626454720201240788772458069898776774654795599643819568299001681656989945530444578955867116256733639524803226104035297073422735617235285872281449668247481504884251284144348949702155763739253677766101151538089462750539582176814593120629533238021033231369733296627860940965461250170316162429653133007973204176146430514820490319563644485946200750931325436888641606738085717770418394635600206521980124678952035793359182577339658635725246408988325680916357333324082719015339011499157314045636307148825103246282242180444752435883569092937837233088051867048087534474860069211044430550102782145987688429071645171183017013581210649245050120700829261763638427599934584797281342637152382280546476915159891666994459311305678874663202446614636320430353131888195609724912026969368558234216300894130348073884885926490572671299180654541976161430163042918503602805758785513543948377368881487997252090938824359368366603569871793455645252431031125366262623042122241592657229247886744531116859226652635000758526210437363937871030721175456182733781464748429713399198218277081899373366777786451309509297159888507464518539199491794174001561869490869546569788759312028264341381919812199910286207350191646489699883152162123771389002421459361318147288558889183141192367821207971774729507397360495739557714968684714313016934100440417868898166692795483073500928170573394891254137598716687605558264243872574810655400446792723041314345517361008664204948144900150137223654780880477869233392138471886381813452823347354957436693454280456085415723353651777555038413339029300094876580200205488472549733142136871110586879255781048504054120343905284587062060156963797919367621113267898355578253007719503077044853502734590018799421559935044564320468216286666820030929431024345704867379817778625251555075285870911466698065968499534293382529927366867660675547683924892282732620972739085491156646009014173798323678012088738986078852765658063178395710494908353156402230985456317911667534690895924898214088177132440930132767549807882851509704749811208226124773991414413598369747387828771876700537813369343774691182082130499324676328534130098433020120183534635339271642277841458135378237221321880106546554169149506515981244950771038008291985018220823892213207608238220587473359415240471183042361091845784058860576392049509310935825553619668147821280584469754891096747203714987961127223397098948671029211830193995637912523890304309774167345710724875894802914058867235192018307335502001932541218030496332184146629115169483376232300837584144357246649925332257531817784462430194560506281475660321448873684088146599087811434291247754321686360761522079011127118200929509004446513388259789762353741582478069466732749115246744073615739256130978211733481974526223902421331634748488127133220117433691361268673684689491791396568835873475180776881417767224666123713379130539192032037631962429063648256378710961694363867475380127387115317424167077569958976647560740425474462645037402586439642109506047320533637228752910577642143267729392698619543017342781617826874487299762864069066269601832666134912513109396933889055610636855488574687036831966015657703417065339977278430723598028496321522715596955505897013944961917113765835036430230855127965744758276262672453421693178462142924756718238133694675302283359585206762264289118872471865824681460096074702657855266611683409843133460280368610579652550202018774881474559909262493804417246117687971852925963982988307729037394537474805610495161943650105537998315455494925963716251934713378083750650601977059816302956314910523658102121296142871896560355412828015289967308307928565900876058740350082135714569517349380878016591078735024315750496403216853687424936790545061569590528271682930682660097365435875402588906414508021503589499388747391458304072260900286519995678230467388873786337645603799106766510153128385871266804330641136658031508102210529721271779256643571083318539152272116558735204428637016544876845741735293036233292847305179778243842496697941030130097712280714422956863383017887527080852995724484823888951519176665736451438612898018941476956221221537453826006568702811892596597461975575372214679172822120822490614833448341831306009319928061706470872362461025407595153758065470891489688683452832779579126998668604626406414335291845936318142911308270417449537329970759552991763296637671246292809406713103713308301548915518320176006210048756706302023976981202895736000970455314827880820334785711114667033813406169597279313510238015141620261697762042101824763166483539447770993410500236047967450519142125045361681051123074769134026579449512449362170366662854039646965177585444732140008604618633044656318606559671198451978583970316035682604394001778010799648290675179262768838521596036319861842283173213461775345886487569020325247146305381425166018526053240555445873770962782486385706419012998552435340661900202459347873204520699806501112518225839073318150082801975996749144393102500962428127655895977853782859579142771664553237461136132073791150810316186739523685913355586129740266461216974509534671003085708627368755192832998293461956981182760832016437190417294949778221781811878111026368227460402630294802810008478398049985061868104865039458969877403582637807312442243300650257136122898012154792338309865696458439337065401089567982198038721048205617580810532263458028928641456962178751092788594516955965844360284805430303044693438245994879561442818983763315334828546098976866045092864228283687486606431405047381412903355069373179540702060090876785757802927699981666802990113190958548526414525477129327017753177340796734679275553797994586489591088112786018740586471659099668413777399393637885499394131830482072363521396129231430894115280646929506181399842601094826196853347063675402515668180699847801471870501289170079685642381052233250817602201986795494305285746645815839771710143538961530052415870306050361637994944990075260557893153927740964847389425996225144020258657836487823496021733190413846663507025468556066777988215514143444748187541842410192381016801854342547759809220895727533061126253632536237707004551099947579970377417244399411880651177933351615587548731975046290747014078149325209808514401917470235050294820125045202364660841917150260378080618663719440971543178492031029571066838815990047159749712237676097700727865574902614029347419557087645796979916807923431955484729389806545264040111526114396559222050178707894348241521614224450584851553312550135878437492665788984615960881335784684484484933727340144365013121742642475521633726855196065973608278800800442323247250353972420905046994440625385454319857848723420498364046802961606966763458835408982920282407598458396447393309691945938339001174804228397900350914957950569513002284906790228342083116054426816739743483801881581198929696446438712228108737504893030841772435132332571686120845101252082502030150931217300935274511555031435655740261619099423548566341295222694164832333938324764282912329759728666015902597621362738533073284494348024711094865009495932640905797508411602901030159042127618692021727851972144163966687037550263588109832240588241390921140774381246221842561748974654292145266974181280647371796302787142559005475255917147615142979841988691697306726072171226738305819611623370691891129635117793783109809106102071307305957141745371438922994871999395795513345276630107808915607931254423259227527954302129725005563228480262052606002584836074888365625613633451075920676475474762647606137704155568328463487386773392667316691068299063481133681553143551744700745424274357257847784232965540295264136428658289924884856027808481193378473999126610828337299908356247499366230960523522752184029162884259559000912419418910620628257233427137150698468638711018022005464039014563625415687943273290641847931278492240332184147013402607290181633823813237721818627960338589439475316296327969575509385708717974661157149267243994043707400251097320389362399590881969201118609836880805624233860946494723868157258853179682583761328260245744028700759993400405758973219853967533098756471367654719048767335018578695080576873506989243044617312198242207107444545631034749364216841462130011861176182961153383079588702945610136068847645775646858246473621127595523745310829886145009015150290200646222617508550895326956759914512542856584465649836272116659800308398592046652646163790142283527157708064735044759041867239255208400525715574656627982100914024096685917486649763474426970782528353036329070878558718064089025783161237757945668482322423951635020759150324335819170495364937910438614405218765019847686495405035279057846260524957112233648694230467126455873890632158170151442658228363823769671162770254877306406311312285152981875462718034292135472269055377196774861351309110328273297182348014525446251539153713686812223441202605757087229011640371834222878290631009980558304607116339897675851698357615107120551340563279214495068437808651866804386193350661916378878843571157182824607509986331942282175784878402886471836061021145354083901299126417199216396775300796484380400565714181369292372971955681688355800912903878423785631511465331927330723873837837045653891051847450739822717268475470964486158906360302840558917636885268231369940624669000053919895970375701372949539108216912762078084850763048595599285760538379436851093329292030484744236089270135753301409286838018005790347612815538347362850382387298697289622673491092600566815739740808433809004490282513261123421863977046490583115150218497177383794739687174983107048397933623186899660856637432457711732031098956326896423997335858449239390872003045996743023866448846231923839221649053249433729752308324424958188176941973014781134638878666659265036475317141539818223561108775872954302919840702291248467264207999006711673778077222995363197962483041975243126931626750794766160584526431632429049079844844926883937836712674510269167157345945028410942779284642487207262297119607822893047175694923580089041482732520921284555706064246293152962943819308353008707372489044473132437534322150220658247205499255148695608518554283887446797307030581922241339716071793722333215152218362924731865509990198321434409034202449303154475191814304581410236860448703956837292488111791834309241454521273842670802050431333319702494561150534563571563856044483052104947403030835593884637074777185282052758647952646270343978894309392104866104873992929797701069123644049296127343456875928757982757398846810988559007126984398883259740935572500700242439383002337299371066463441036505617759924765134957772232663945544305274742281922413780429388873271033894959178451305040759208911152681091817680483583878548660043026515352313164232749708154201564589822602122279378764908000019867721969464152756666160298503249134540473477181247816875464498687879138697787629224785034043428146525125775351732714774031776268388467794291008828578902793694654133954299653721749632299496508580516961541691025089133628157311838030453110122664430448358678200596976983104108393408131046887380352561311019051288384273553387195465736586808405448598996192789895682668507016813904706617065006050917398293617778023704357493515737129648314320729860308469782904159020086640055570485597787255465270119278094105660870957207934531734096763758708151326004763721495420913270125524507536761228635021580376525744347481985315964695418779141695710268532971796733077048105312138968826973868689772288975235656142746874327183610210496362444529305260820419680895847931911298216054282605867564499352233552466218713507895950902004182340215967525714837853265427503051264116202215591809585652616428967061880383510458030005599948550848043476756249836675122042378587717944531203485143882778720505199552687163302296185393093353782328042075800275488732997122455339146701218581918954926226636902219355491390377646146409919529629062075650551434368363417500213565114491714342532074441038763989592022404672699862277012883975611946691846485968953844250587621150201312341833085381279613057573448556836602455446098682437501170717046980223796650358054897771182401432168596827832045828566914094352259519562619423332406242050936448036427896624868778645053705238552431576346596196788725699661314535433928611860943680662465127146784872058609970408234186785466753042291079914069349035929295837233852712093996800154170802218846280188476450993607494018063282593130694817310447690056552692976867982767442103494339730852605882546801044742829089210566880175696557014655140912964399612763619262823296695208850668792585984021629089502401033235702368976214426045506783539749850425649852619772228868870629198928451430995046321341927395136191089739312772227603194577075809566298075863390177659945514854967883449462779058456979104537233322837938490791732617010659033258122820389305660918269726101598899707779295063541022700128842641007052229640053268750834921911318451261563677066703081544439135799290193155832440425921999210993215751046897467476477949828108265179909100118788837110055009616948554762444518395900184501222746619394196771088632368330658435755678672016715953626036420033437465604590353713848354188047553461702345805690877588224514773044453764897950137227420941203629259152722785630870048678730675319582876514769717728950582154681700389048004121841622782692637188198535451021571663263948285350837000436742334258536750692366941162844449973496104095278381122463207011324408581464154056602637577659584525318618517386640616490620182179964957618829012791607077360623904409001055744288530044890347156196979711114576256272412833066829401518499207220234571067588397724977224921167612038206702606432336232333193019959155254679647488264878836423451312164745837134884531780235210090344001937222304024561335872364907917138146669586885694190469044234854100335363476406084741038516019728004976769673513772013517622025867935925378289604826310355200367243563136791070917669339730497750196540232307137063154860588609122284416460454806208976546871740874579550480810209268974014915122363870751070855509475497435502630455911766334452791505301045767769426852373470837737570287129272504736642019079846967199785325695464807675004223845099566620573570843066935083392167732905770733917052142013301567296124331458535870533777271944664412870208541084178185654535917336797579757447287664740189688321310532135710721267494746463223200288112644413421709053212043632608042764085579411176166505010348979005210910405357969834730532375388106043241881525640355463454142284022216136420105409606102063386509045773630779192069931575621328819570390035195895396636084677431594764624516662692011976114922226816304393669122132028417696086746800327294375393021618692302741120238208578940039064606765885069699699760545095690590842053244307680042571208410249641490169478231235898532929582148236925304888282929562690751732459022293226619743932531174329017629097331453679892552263927512662053509379853940842076923129889741406301662285000843163654573099930092288929985538781712903785975640700307126959431038778089277226229620699003131584655868751938415274854628011943215887783813088469432092653370950053642388999111241056136562453519906188124957365883604746029684103532508019282796272254513478383492455368296690515809193404419825691523309952414955389120820187861500626346625919562215490573176933525874378819660482397036268817109827042080929227912929447978345014725004388012814324939091609934387256076620277964432083166614790451092424259635292025850495021532196245052436654767531228449564256665720690284494254258244935387057064343934140309258503188084063300811346267992811283529882355479008940893823964299348768598256761296258125245140155885240321560301784108022046688480311606987031664452906233956301583595787975367662633355642811574622729844868111199041228572365335997282475757591421336426242378507258284477525994492424640936516858122601999995500209278786375994062467545132440401342796481510358602914722913338123375870040265407742322643562345927482187510996170169042988038208071958740910336401003721317064182554523566571773773746516695698959232156450903408463969336974423627459256827873706750966126971201633169007332319666270250116334564377766771767388699018070571367669176640081748131267106089125537930751177346717170708264364095545368396245601780182225534497686168756233415526849738475170441946714100792173353079945858989804409852466607900736518877405741614417415347175507166318721736187636696202098541651125760627235378605931459704503869668392886583021177217854937331644692349918677323801976763258644668138862002909324248755562912695787979087397440207158851309440143246391224171470621167031550647689317014368034324435394296203091211693864679184162970788712862359108634198691083003419975353872531262858581107992958935673734292427421987999301798194775421819508000046663693288594271911606745030255941261078902961181157278811478038884512394312733614672328361802015145064724672654137131331538661752579214717721151854403047380898812658670482053191403460464580946316446020025823468373296218469008219132575112129928267810127944132176076326795647423320456954773431745669645830350339938759685394060655355443789345535810398238750373416980233468569024255776668396403724161679837085161442969409357642559241374960685559560221862133360102585909390898765889910912474856259738593537315180720500321607681712244874868149769052206572373689562134547653396758626630603929947779718752356594853017285199015809340118040714162455447349832173068154665044979950729701085136310556029514731139462352275274138693995665867244416829222689986758531913479658093100229308738035148030368832279338141837285071337655658281387705870960661363879176161512833864094108637362117542697780762157253350550241206829925213601423105428260798293502979520301779489293184609645220207302758787105812771389328622394681595222814928197556646842150793175607970896080824405212126885937670223455251980692046231057846272359844988361970474893491641683952471751026059135821381732661909294971000262215737740349026816336831767084092557054507744102480653964970423482966899443749488112797160415993035267688181719725042719766240472950571708096958901748312111060678562032901278681808135493984456010239980767687248298063783929790682762683043689210786019741156507191707157073266770765471676589575465576700077452916377073006191388799962855198039584895972225759992430515189988760250985391427708890624159581483505025868279678052787682346371927926744980100678093884187134914226776033008987062228190927656248599619424344438640167194655099339178579737431524537770266530526704645381712142819092596395853207463232846978202690514405870502257992669283903321774624843506480815801465367235134882335713612405208688749278677599158661581487251218202113015300981181853578753864516294855358115297598579463084948140044758726877229911537229682692472345232723260170246331970689455764475267403945166963780904920717711699302280590526455882974151273477420239961785120892753434203308430975926752060556590418363541962418512442904291264342336782504318227912706354930807797420072351089211650151557085591584058859718805832329478307234981630255350197472454967312225859524621098083480897276371386063250648585249432080680098019634390623787348349233672298742644700842625911010479027112113613293915442546352950463125398794819035558960393733055708632161990934873973175514633982116811985763368585667848628159699759748761231880180144215523934105034050363028768158525436521587165006617802879081344238455649570172399480899869936727105006708511681676277043518781021607379939325121998623840085907316583882078283126752484062333028052328436664155145078080798185068912035827314032244475133207320658143402607242402393129420993444706080344316116640796949361273512356963456821985226563964074358677610694784730192483227803963209244688184736018916737532320349087463494732769383647998352619923071872854601287915448881894169644107453957431524638951378913495680235858618193010183527880524800117639108318192267009510429921465289481266649472812534274521107165250622510058797982640354369314830920239477276086101570910854901449890820440086264037554301789974848339199350792804133959986976806011022991385032160337941529832101817041939929473888210885818852261313002359050853354012608826534044599816612944070933253634027367464436363817772136185940513302296875825760294124273179167561377314649802397524900847586507636973552289866579000874841642544291565670402329841453951903567891329823215594733365605045736169168184539335358979104096055950007082832862059325730165189603080270934936062731807965098150052494593795921164258197403825340817543817422186323881329659212868110067595808772173146893619363026511290123391346981925619530882781335434430982610424773275345021316476927805086941722741958974039297667034432158918965425753219233768356800764434834929118812650770507081101122122143437690387296050200180280613878732778038599360667138732584750681396476122379892771017174407325601528910344010694314297230721674837978451672661066744976712210459869905941390576583923505445733556135600335376459422744806518980403809320406200702012442899920771595816311885106950093216506170152025167397033141635323556029882125836513070687473423173519620769286559083700983188893326260332270505302283184091474721824100389455613652190219392557510638899133723153360614460977563620287081434383735171058362584954843351269254022604022750638014619338648020592021236002916170679849237567030501737513162420746918458175668509432650606340448963848127827352474163950633416882856494450239817864643502703130445987829308033753464586536874939433401190134687763687620701737973260489018987055415702767146743644545523832986885369379425150601533021248970902911495131321106892927715888413968265337358154083873960178236238528431407773957333422703401334311967501749178514165604256175248807743382028758168522862561155367299254049156653005005319002888201416046242423375454508435248638860496828546193129085483895144872714193206265199564668910126972469096777656531835486001070006188221837067079229919328871744285409489382904701050383042711597351586257687538109655923303609131971206538552431653337863506770349573943360588583437819302088861532446160261744415103937376462114777533183622002434499053528892358436890013416227962097056175955344340767378775201743006506858777723409842860260899865222242436694543605796540254273899282514951553837907995965206700563737930373375628330262315690921154547616497461775911136112688525810655960101779364158675163529251025709803861284707258500411433628584601039572647890098674441883816456205992901282659804840787343751263248099894970595355634134437511730188602722816688387351207229570760108102194853519200094552409620274931497028795009330794050058909944543776659169223505224189969458021431402400497155034430356829099347163278900529835805093626015574884936140787876251353055134870648727421815576702000744522260592495443109770035797812158075587060554075485593684782212634635016026168253292583709236192608487253989045019125501745690092895776042988224999263305330460681482976184758204117620612572500206273144273969777656391240360533251843391162998728038190484982379119237776078005017571889650162852319404245745375333171847182775183734927278068748633260487467297598465341185915017244692976271072179754033959305148875962721859627891754453596470721373954282671153314334119845829048543684096640378832870520095104073949380511056075324532051419664721827661524320442787345527092492992701617588699056808010555011884234528057329509753243908932679724219447987471048744443462301518114721039573954681593614642905164186252837279670286393215048949003139732841415234226309629345118499412172207884254320727137389756561756746499567448238733194371982439899592664641078549895998336098768334770158122142246625330059497653489421292557022424807083231759614698274206143878788437580453389315823785033117817187051809128595903904831882988532125902973153595886040111461287178451202817625071851378015918967804899699341999114314870150342434532387087291051317526995691065612118061976503954856518268813360987542269508240543368997257396849936373466016007876609539821446913832533606893316819726014269187159888731168002058125438686927300891683646939931581965922259572558821424335044736748031848930196310606629262265726311455420600010333188151499954201656155608481543423328133971601532613223126046958771281451257715304110585224474833580068836810174619515084190722267958298679840417835995834197951507416165550576594580437018912831539327340931903189811205630554984187744486668492692151636384392286319239207563468316274990708838744587414573566219882996502693049768933639309183346631583348170083265353690336154481017609921741026766030053168730552112506342101262104502533966168155970801392122349871922329170639976411466645161371040649840367329470501013452223747423817784734722137019389904449953051042734498675809217717702800610293296165618938781610528906497952709680869026163213717965134255178439507524154108662963202075651844372331342942622700445286999062864844304354531914635828076564612698229429113341798727957633694178824735389260995983423497929734701877760723069690575502199964627639808930248231523942512725405084539959900021396891192377208010209691595787678837061762419112614962198907228877650321536193439082830968437634859887791469753034302481276502505669182296460402981376354257821577778642145924936844421516610396188919833740468929719693658153608858028095037501421868451160882370837021090553028383857337585476643913815218748622959235189108435002482952130834555912695451921603300661865211976070053814080373091228128094050000178630472939667369946483058051800581601068806377387480396648021368229960408383143684203426034107646193791713119829137259420071040247218721033728117408795416645718917405176681537669920297079002981117997656136880332521895525340835187912993119121572025586622067304096040223874833766360180463788837277352175686364541448431869930342870805828213008369070843194170279869118410410127418954527892951776066501966624617341330906686931998591873796926967078412826140087761031469943156964882354220173160893530457660962597518670132387146676353290503076973012879452592957401309126361701861024903526748556059109031944391448631724922966957152172638248427707843381078960941853843299619867458237882073579252414617359448006000620864048112250433184025803252738567871107883964922767429955661414066488484494334127841959423117114360444214093842095237024594072063929852270100659112322807493724432627071934256218670890849828287396704529020798483597317247221152122598517108384903068893636166428477078671055371394434553114604374555967273497807248666417532037605374001647773804809513243822109669803599313056559516588299764455610588514654569902907851184574910822780504051043237016350842050626993996435020884767962180667377688690979538367143030652552343269165396418347254035313394201416667147225021831281617892704074733006231913748226865546091809244014724929954773133271369093964733247857040238811303232495568483456735732236861449700591325301369360413563931034743904105526328325612325740185209166225947093665262759203754758219260887062444232661059936914227364744670768058333519193555233063149129654498535053746460766119862441357654951276042998249160869405103198567449787309093705679690580710199779755217444353930062797316167736488670824210032692447308380137653563299127186263193286847851071678481454783167823371028637571970959433855418257022333730680060898897081393571543259408048107772154944514241690563049480538981593478339141459570983524421671898621139420711790392062194665077452593506378554841960499519342512116794330890996926105558441604620823112618789858097436765616777850497417596979935941426252046701407018835941653296686536228286194540042675910938190413242927851815313866317231653171564712187830106779108574467476638161672409567273620101990201505437288054786017338486210788982072708735778274699777804927353161480692466922005993590346244215127458961999449614334137854696816375358589092641971019365413307820506686935315910357223468762916318561514501671401534051628826018404658668196821689849733427057132484007853075154075416340550935580970656458183057018966920568071921421593013723986909894716511970180353678965918552720530902908797935316966854264178877974674649929230124803355283825657105849555232695833924536618300664494916961823603887728313717154569900111847208958673491619797359980843029422999305921193129674840611868615886835904939018511958841577242435774640357987889779303560443885269448524647869688139384831190816170964013306441615285348309186667468179918401266170277823605147007142897782934838634835234789788734151162330155509662397471798857053125538438754908886328611049269584624529068041648456016795510076368916906818517881192031285884286694005563836623896498775230665251728166141118127642950440618228888899869868892986006562569972722661760747741435892917706653941251187423433230161780171264248514073786350697017272664256225326255430380560825970609463439162785586301678498223429695716115636826196319557615827385711755093095039247366093352941376845371512654795893322980581235485362749733778997011528713202425143792371070238251560093090429184164343409088232078634632454217399117645242743765552592962741782658657089589982930898958650691776890309259228718146454124189629176044609057823010987844681892868341159921667905618300070841510256509796424254298648724713020172530860682667197027435576236139994755675868698965578948263908671489317030626163645803920420514625997691804119654524695997877002474017469016512654296746057507933618350971603503410048971024923597512901212388123937667193492720896024876607756922666311373849246083449726760072073182019392972251335983464272888462445759346686873000223026192022430526174064639954023070830069923053755125612637415997334473258948858564596612006335414044390928420029969668416314435312329985563535321996843261272600496812472246822717256254422519875531856756819922308734487437270722176167589707856468846063980850131777427312321002979286384761584092889261280041390638376068661895594196394762851711389747688825703408340057226543507661932527714376754076858424864619426558031267981689138293247223119873505867737491477031749485081452764408444805695374322544474524187913327553589407566479364184368561787880722117213178510132067345433264469794901304500813502514693508832436174054850862962111620188769595771991176926319022800591388907491292200428863708072917545277922659093011090711031031231157211851951460767340416777951711057344678750364744248135530584618221477424238760622729565309415040336228304971558480260570470401653446028657492291877828240867827262018296902788595342271850126206641547497272288797295415537502523384346307050239153077962817928172723574859474805666439768526871877185516249789947348388319137466609079850744314650843280888570931600576200252756862050863532660568310652186478746420606372023897750382843646528429741076735633226261393106094492758584136742699421218660093898547236273456028497196998086023847215918278139320659674827822633621977343676146476576515575266805737400052446691785598301454377273072246673645158257365071226907414505271887504029586026498663035208143029664467476819717347037040178006473110888956592093985368106253554520518085347670867700363546899433523957156757779319950819341754414497370892276366065557821649466553483042742761468440531954073939632471188958581860534683864745857662477429996906333062614210635345238631283918211175655949430714274715672557475088646519525812644472386998565507557995259909651349671601428895987228780866512899931197253980024617775386650725315544079693566994328725270458577419864325031869038069963339580921269132434794501338384649841067949935585434628399559881860228917641605277283495804545444459697867974888472454547411907332372707898326037210033180817364364082957767238142869514588703737121103665675738022253076973459114053798481098102453686160028102536272060632585409561967579271549726741948658529491331133880496675813159212149731446179978278887013479687685432522501901807079627327182394229720170991230442791517220806625619919031721146334893346933388787688435196915841628522051751110271344471751092485850296097321926196220027525856758025998035344185155943563988150866936706581635171946778749761979829467294591208500477561596250852005838001691088472525001144474003928967767546421193802171768340629260017927537364403845773196285184687874763171205364312240435078145861026289255918177733496359509120959178132546958347949488603800372305303005082099338429051629475624601596543997049141157270696953137650425342487876462580871259054954863477467777643868699733268532144707411062476129688441825661704459050664956135872647116325960677329474022920072003630454746690757037605682445985002800126085879048491960934097713391977556189095954808732583697638422668274544869362896617185516314691325304790157789621231014607481656475899081260334774454271221222710655701648736333066932460778763097104568965141565012807946289960231400263354691813040448063945608658502486024429009333771885448148275207887449425237629840830233962990944269063903554445999665989745780531528172967989824722570652854417067002449612686852442875729530087760133340696174404070477411004961007831239396239844752379088595621564520034168065779764146730984725806924393299332913019812150337829265434191977119833456710901191210851351407869840175282646319390936485560774031471718795096421804546286930490850426943825868937991662498452737183739335250409587338042770737824010979059356855717750373844519487057955384701008362474762486308493504625929663501799817663211799642627926719193293330775729843367120202597855545793307533022432665432824504597376837093191911894809496823248478063551929593908596787973132997688253721731940974080918286675310019582280457902112881070429706132914901334029498013807113681983383905405290729313551821775250993984181080930821121636650511570539953339479174472343831347315729490890531884201693475371378623571272246479140752487070640952838288466511650118306605832739314785672376784208132180358505100510930013043055487671847640592960641202227480446767582094455417066842158474601392304894831946000895392065166968713749263152630888185138919428873017298359903253802385621676774730323739708276070041883157529394528830541437420427238561219819585492625750385854146030850362886123163264241403624419745819020714278999519070050824611447442199156559244997281402847452464194815490462058825858941167284907955291636031441784002620517744558135050930963720883855826356314332716341743841128568749102704753365766258967098277147018115607814082421136751592436100844944622222460748887003967854496825811498707538876206644593460493862769934018696366191453379836222218071074088889642179066768834538215983317505576392319557676098865495979069031489017169164029674779793839778804668600272898428458391060380500580470918255813573580307563912782087420917378664774915661465293359645791001919561243519518419038138723898634206319125125628563623203897283766001200420727042989005585606336822600091056867499880409542672831240779612474325991700466237719323314105910368503875172031359938853548806996708936256341229046543457495685595668704308824308041920878246543253302789821805654676548626466956211413874758650368135729228872790067683658979862963386266237440881408304254570703235101568302663731593173390600256596136614231630334634601936851433400035071787782256073366992507628341095194680036750906020392380598393837711515213046145420056569331154175367154251693591255708212809560873499464546303911963166246350198567868598930768644119811699178320425500859768778281410035652500599359827220695583478533310859387295857363659472330774747670942621137246281898206431413876628546189036839192200017981224977683132975157741305688396015372838961329637969158926046758250676522430949030277653277352804050495651513468094305978919147903364516517117632151433529011574174185371560182813197721819890945846440060397878594892518655759963700897535308433573925390611807099540508522462530107148750868542742899402652025527694432101449246000746650305029462874734066862188426622869762843342688397873116671355315841126999012824474536143078591089733985175246137283562009271666955210462536585520587837448633332006654059510119661845274609214174969478606510854234167231675603428487325494061046235485831321461993160390581850033952091410739008122184351694958496840237672410790168906815558140969436291912239514014577718780200304368599684874709878907814207734584709032771019027815531507500874656683200113635787593237857381489555797693265297588403432963359250710798732928906128646745369109719290101813721613848515995537939934353781813845460879899063389084812411571231466301851404292264762924746336326562080278170408624322559533031776697791517995537084824246854373300378756442668580093550892649508738268770756755253719939283881255333968573510217884017020516226551802641279579340886487286981679236393609902555628857804091908758759494525642214930435393339791118809444719220453311869352615432707669736977733768771150187105020399430225233944472591820508467055126163648235564304137282193786241587020837377496550319615259680418687847131669830864129627961907783283884365184093041788199583916077890808407022282063582778489490052200488524983740299927994102565580628732758245789989945682202393510168782809281535247727844544406314189806673592338910502371280695992364780767422195368478491624686561427439000796120137514274967513739654337910357404154522611871421736781882232742641714687853436627004086370601828688133518243423539386625255939719250782109912473946355368272607570877444339305342541479802653131459648388484107554728788083777293881501179473596574889534038042872171970444289317198561640701503376121353176496016884025998853055528663849393590483028783725999793637711149550258895655324069557184934881318246291676894633994099834162871680098038217821801313328551296061314431743128953760074236565459034162846831239564913463675114362602658759529494119220553243909759266041270427118280065432762188035029360348307038344035759310832847168286041505886357139919492989845821369881469154940353410584050603592909153386953997832772038626353005040689630898897479480540415692228690444079769374567478058188842878371962994704519764359164406176149285904661487015943496388087262930950201539137894880831476080570630089415554587670376767017442048122611415693104125848094940318561594494970398107143421930637871473556099290705724980523349955506638559317653977220095995162027893550681295218587017549152858142384711161680682544959565542001813755340413635204781187632078425882578712778022522570917586548953152077293291644628250304934044678493535142098336594952611724700143311418244468711987938604109584090839689814701936648910382203287992282547688898142395383804195873112874588090752392408824107320098778258632149300836839299234617921298251887431713050882531389126776233855715295933427659433148155684179651118176905960493113592698816351526641446236397616094351183178822576938597626987137358911999607478295466886303639897500770891391693128070981406266452820816549836932614179387480463332326490045587702572576452984744401131793298884157386026968775393424925563965189485050146002600679376144082186354799220762307985104264668087645517050073336328429053885303936569010444497046096539436530706486905171844487835280793423862768357367458946309606872063036556721973487631474320252282634995461729325082144359351607353716632875155837623762924550454846704030538420527807170276995583422053310155757130322922157791337172374348425922444011256055334602048511291650384476609604186702299982246754589765702363378692565279654709180301854306660351388262443406335293899824247743509811014273171018286814381551321326868337449461136687512921228860752322498935669836142186321357151950711440576627718946555935650644906822568915658874311373030826149265344555547106346017644177778833314242467033338118434946522456885662977239879423895374313996117814757148564333577125546629550604660923566664226502441525999361194214488391223699563614950083257976410111828744290663473385272730015678619442689826510256394476117275751026122280363182384586866400782477373669746288020575505171483488177201689494938547329713285574459143170684284537686575687341296557732669004193320323331486280307048540463833400518710245805301370101914787239927430325045844871259885783620607136856960412211504906099312329789922720415244806522947866247061858260066940742158698981764470694022277057807246499406849705182269274206229015065560290010037838340378928101100446212798543116047031971693464352835920584886829797094182463397104215650763329004821328848686476561600839846167898372655902935939592195185462470530578981077057885979166653024256068486104050893632567062478291826938432042135984553977986157092190208285728905992108909658690305828098533684331416162534937084030989404966578156071311085053362909183676376360482294576995501418385459875710021845475432938044584187543666669494571484509717414201285141011990553110798134087772052562664244956226602953776881095478413102049868190067406091353698412634429601464763497910336219941393137311566180806045599444526463721506444783067443417255429735304857661687729302694357874010797845944511771504709166960828284383930593989965906120456602297204679727256860466154248541844651862103359709157114084647805006652544877618375251545264276882165380326870770655760432313614495159467628976026352314189489617025740992698944109778285884421262671909324953167414520817480690669788028439477923140568784515753019277810276441247350308073001296730677603806002128189578025980890250950491496173396449280010587996833006996693249168588900220694881187679567336514248810226422418144070014356925856046294789919647951691904323117892861923183915199115444742915154955678941372543379529839525044855286434462313414793772397524211717463872003656529504395045105345269603182039899786638490360706453042657872343017724828605367867049225899368196529294841511795560155978164258401849378953478287357447018644786143724681934886928814535553190489103521467925481377130195349305422006434744887000943281961488403730748412923422450111694204462635677427819311404747154972283868951680318259180695960956800955402446702594527682622468954746299337402214966984378579834997171129712394500241676625981503803270696801309227382639419559269920369970270791470331525444407936393521874805962691746275448204603825938351079223514881374263410917489149232723442932208654870865744230506673564418216049680438662360727224476564192851108092966665812691403729774121304778582061843769934791072014156391913075548544297808984453924051532975069073800195526681537363212217909007928561319055952742862646315693409759104942624678454713114412009306233321944400829326603422673527007115001567066168198907962898376025005619801765001864920556468157944069391573851360620036528904506210433071889555453965010762641524363815977991589891835369859187255303057331225394742957403851474732366313849941243429629349631310773361870062626847637602784311407225206576216964282336130680621441314431631243778570536350880273865167028478012584791860510139902894240783705039945089240311069526924859490557274711897543493748962828175971765652794295974152486574347492238861008248405016356115538484248403230855016886675448097003084773717705733879515630030437760455948180005116288357600498384641119438836635694643395622889827273550241201917994446010797256684301470011632362509549331543399821776924463536422644364879030573214278841005994487638042291967767803803229051785552793106280908635561054857334389540753543215940756693622365968257585387471273293304388280734171846062824355239221778188162558945502407941406078506854518221884203661690316034057069490877917614330145005381823758875234271217239777663149075129036169899912918487927681159035173778771350599320784571776815768592241618910105373152931343021153433586348586475327544208175786430546953039878449693796014454873683976716997460044681030235336623499041368405658327352755724159483036775209960034155322197931761383244925664874338786597258202286090029296837195326268244814850660992468704989425565445190135405366756419297044512727162909306091196113848473143315383134645556681800634402110810629449056991038537100299953036600742927836194821171380076371227550407868123541270929393920342713397411486548598892940568630853958015632345110559040166359043359315248941500026870555978911322593848135857845258571781586744509417348484868601755677768356041435172736359001865226126624193008843821649780531390346430530126045926340026065673264104009393619805229977020826426447971529522115742802242695383803920757343686358223230347570606599787898761908172162816078419498532926675810017131640120990098629119154809732504172870396760088208292082127313488181190259625925345152823749161646086087678302310468450408541585632003478382940293333476297626344119034264464055052643033049540431101303839769000214628014950146656248945940771398874238444273628820007431798931340354707503106411638114470980758930986849768594661168689417124518447859569100305988197852344718641149265331901588283404818187939374402536041010456167247908052784543925467283332071519248260604778407469041114244528161102049106637093422859098087605915564278820343794064873934332575254094998053138240416185262174176238925601250605281828057825558782036206550172798590563307683874141412511216327630132648663029623452552463017190201080432959385518627221400184964904693205942277298550405831627919283024986322644000844115638740388931519759981804550368198260552465741362864496540933654497796885379221472101077202488850908289118223979514000226099567036417740882372835416577411054256816276937220535099926782589684091129752130359701538319641403780379464188530279235413965429778669624620341410610196510729170979029217948277836644347219510225699330617660237974352836972536007009691651694821652573243684451243227641571652832675785356728038710890969493226715711994373563676333419639604370470449594556433568300876566059121388722078850521568344157118062217959699922992308453261323872450636448448941401601427938673438950741211152365541745259270324791306097169643789682286298015518839021703299527682105950452255332712358238699130878177680948409681659927945249758608365453822801905247196105704577773280493938388799812993352987970789207296705401415475844009441001614847324117305709898137955105856654155920363720397561809718323869045430849364058180829563066085399195665240339553705642808180769694846085456519442193493683611802007466120945000551408310070756011803552623764169578244218367645751268022789433448558159651959676963876480832745812420871712938424856997325827026751563629624844503609710805468569319723858680467496680715593313037526672329423950069835497757898427989149104175487204812839129423889824094227260168234242309933239028109789117717813901680075066930112344481573985174415424589719121657967019020818001647181935699612266658361870914039304840147397585954163340496131855736576750342168857919362683275278977246008422682590170772644080434401681900879871580640944765355333281247162719198322093587288108087118621472516809699709325276056379073468834057966873007159202484189386887677727724407952225670417398798584717253165056319379442747136405571021931651223289359328241718959721479677693181701844275546156457827074758935743542478650549702141194502757149430888331996980187645974805189883437005822898856398922924399998735980812006722446594195596020021850129561529478845524869279738155262653488929362447903878409059491005362962285506329806683547276613017354270579960875720716406596411144889435787816345633942320671710943239156164121811639561778722748851831908029989806302212961269544097371958164961872583277679575430161041680948961912710981703283422483850545668976556578305205260776982216305478397594678788206275023610080886288623714055895219256729702319886426921909237392043767359151919121388171248009659213297425949361241706068525746399019094533945688738815166914861786867895176586628244616677490888968058682825860270744363381686270885398271529008912094958006703539300465041492769818496943080310235940975084237979415629827909387271312344017445709059602853103107667934596260012969785210830751718627889592173493264290531090917597333987472266729268425060477381828460833688839298913565584934795534236213459793363706396914843479933125143450670819340723089828090279618150116479131708258929411175728619111075705062141228893194162461462939723520837979607155721609457120193505184467786436663793744629492532277772602915566009459155465616835795081091934443792851918805734094850345929939463566377964320357197033097530341204783335460083800364795921883674813869942750027646037423184857697320407538263307038485519652571207660679124075766655001278356682153188479649157694856069439326097735975460091871689652093054721510627505616390696566826247638322054395541136037859035637278567142897851956366640484588664295203037322299838754978612821686178510473540085910257671802055867488574959536067769204232858211256870865751287014643586033142150111673639189566659641582433891131616424283475636232245251316627899563118709382956951744821558805792114843850121466044295557703629987947472767556003993321346938865889867954880270520012404251739681029800944671819629241872680031776866468670975568189266460693846475692080773205908287104315580329889662506939574279886863646189080872354035714716525537091067897318405473956834219952939793606849090472857003298651058253020781030528985152606258170686950409518694488427794750486499236003925841186625943211242269425288533129773483956009384906061424852210607208134784302559032075764733206598466310178299180509163798425582191187153635507556450230092445157306384965318984297905004015205449361935874997563900298933116317515744751559765851615743724057231352091206444687677499022650554489500612704598133632718784142234026417133975953487399120946961368649452202742694141317712090793920905395073893482448668280089836278754777658970599052629970628542687742284487289059712838292140038676892974968142393967744811443298688600526094771951307236619042907725554775609818654809197849135456683173661032313740667773316649027134393240905410560001553042820808848126878665646482160676915223870883196401616040584131147190503046332835907624397465525359659040622324746421039261726152663282619831955134917888961875145932101122854601000475124030342359131242978391708787021553678229577303359616925006597578133967622730380712069035287866392854871489334723367387556542185795095929942984139478494593985947881702996313964315574275157810511838072945885683832198074451574996685584767700217819747703112331105567085384582394081420393257605515668452970279844348717099661614448824667209569908577989597765745291839715471110804180709858359049274731315183412614389492022192312125628234446488910960506377742224507511186022390287220721176900940423399324820504296891660117801909614102623729003818602643965544715935373728788215807243333787289406270794692237408223156532413086307464081462938290222965789254092392174669540278601922008317164205460199379122890744137887117862410781479224693413309377811283784600167608421067728986172643259661101985249032692091158427298976471033055074587451278921842806590652807740809666499775009747931808866149284209041159564688887598741720534070228087987695620263495193812568469060267107990808685320536703753429051248959897514249769256671836686428972168221451253066743956059130303654820181663731038588996028307344924051843184513435895130859171339152130197583480258148114735756867407251996506862592953371974261791111901823813271461843720880479358179908625906299201101414716657561752511703646138499048892016130750511158667456166465316616327061707450773126285388944373346945064376927674868545715094458947466760189726975189089344662371107478789920519135101871878317647122425874462107207544922750068425741091383834706748913646903470770532874328560695465210105366242264778172431806671161075399543255371074791638442706873984451124909212432957749705767749635172801752276372791575465059059638821748512705397903534723256100577430530268383278983751553337144320281733992273921984394363785421521265380812044438640872281989503928659557433510138250128278587909715680521218961901348135796186121956348083064906826027936895169613868687856642994734672069929042030641426405069375669848403112795713297805539055422738223591434413106028663203826455792676242950871765010408129499200901592208391691839652438529731717562247547767891611228242693291979537464170037559948259332347557308169967877003269365012256766253192261394826772651019490728713476830941726147858514706577992453346929672696808454484228356779868259462692186706279421311610146015031670768023602289308852884071442146111411675185551061550068738176744683471618013954847168429675330806091315660234478582100189546318282452292982170802321718323006960408050809433749594405543360091379055783703933404976382545905631241655530733686396748365722203255207695413160070927687495286728054997862425490801050829626974405731993319981606998983808176485871948288511945389031895513304383934352298182202146973542327296703810905887904405475400605292507683805954208756177150167062937774745926910954362743702606419720956609994456111815702236910357512680500129949910501163576088183430652133189594937921558530980123401042873660062382158428086961096022243187734877043655416840342559507812744589494127980280361084975077849505808308632644482937008918533839617243856310783409738357328676261800759473997461114796535888393706855848873175440869040814994041048895539875674924622936193620998205413492550666604527237650903961206292789011373073121536789095711779135672706166597701301104557198945286316888868444356426615894090915417613147336904665101418058068736846874300283089361010747197445781385672957853164519081956413682966053273591976156058012909799897967299178558035435514973724218941411421792472800109571135783065264753898127176147336055036326450944362381877206949811318003535796001106363762252060198216661109635527390677102592077496273291269753899495639265598493089294159652387236538395578136703033509050256422139341059967235581908032300379478814504704833892015656293513573864266249018905397086009577821934353095437163669725963958447808429736416205454500784295897937597097520188193264489045475850447087802155759037930838089202163757960392441579054071724420678918139183027535399163642775158281575603298304856049998711309013323799404034008097083214838778964865878807829133092040961065499015662809799995231623658868070914116264932701773908510100417319407927449440947701410715018307016944190917189128742911529890705193095709474172769896623264980056464370264108064088619423708626432553914818803827840804627030956390469056312694888680605924824132244453568334981741093394649548747939562852407667072658618628127616073554862999380678894208664067189206703417875772914229780524216111313738072089294711719250640005611072876884538945189715520650725602223242637129213220963073016723220085931552256334670677016346605401263595322398861129325615514138667475855082544474800980327637788986949646105452212868903430597634499936794956128063240794654211174099609147263932772844718900441628613642716993019100994092015759157054603610744140952585983068792077594887410646053433467589614133564428191773814966094341925129098101019208237742250574231106338971416672142598498760501212460693216566445776577033488828357633738533217216683423374810779069163382519651892151177985491179892626806333963948849038254288770897854117154148862905826779252512392809908077450119126894464095877413246683994898543169039195327740121997224182209327269698331257287036740165641644138615654248814698425674288685781168725168685138096012736356786999832048432595380530834710666843124144876018601553660917599847353002343966316573298589154330377962068657046788721834571807824140686829858960000661375418298979827191630238631490838156932227559130878149322618274926328676565045606476944327711828398943025005611562357433460192566697601320184359714424394559369793385567224672782808860453587982421373549576853335623632357444018789597707840199454202831293147718550478545294309888112610241850511194780208659620316297077724508734749251950405032736888121302542948113050269409792135658457210530073823540657345087157366243911610287615759258892037327065488639771792709893026440777618578885121518637126590499075866299862254332931252067626636475597155981029978319329835529749071452681558447467037024348734047181817538989940388188502710074239037756311557923054242658078322617972932158213905490823968877196648001186161794262615553377958893446011399500819918862278268078796409677776333919606797467097258486637181483770933559754342001996037875879613191713996226212011366116533485805574469195201921458955882219253742393278232338573447345847433262773354748461710677075657822390303340321230379699902484638282573799455672034506139084100058236046618797378739999075581941244018350491285957063867341203296153921573944691313563559163480437268975613091417498929579876398041120960105351171231996166160658257553861777878855820183578158366440118885688534577271423378614824673550495329033089756575314531921462803967616856175272188586830638298044679568841677970815005619303409527714992320292479668523278186687081641696334299521265090453451973352375572405656640725603437026857631858160106321613810234910650308164032153370980717914942163822008158931902814006058569609461490169793858290060381477357489032670206103955126654469276039352450927942116745356546133252184496704380090610499804182712099375457101962898625182861582707910893918518004813753447987179155493600788050027558058130981402225591224499177413943813697133715023598999244073564047843140823701887075165371750565656884855445498854263406997936558759641502318540666980459422049546231256042946735143652280249351156331418039340816555368294496640074622719595456095433072054248665414320641845823041591800758651049664032923855438122838094249744690489581980506485277730571770816731476428666571386139020482721719926739136525518726962926668427750762872841489062751318745523307592321911546145230062257329639657792968591688327402919012942028896165519075968717515886415021725981592828558460406128007324576882727377568664016884060215507648210603055832286970740424323375206660069534949607441034424776249890115420910271744726099521172070922819990319414101711332198586569587104004607276403768841126887242740932471183453244432194203200334215722669364544508746521083945315918287791098720097747971344410147322966390849983116146170125733158943733451252527663287499562264100213137023712139216620568430717753269533407176221084850713505268729317853566182104120305595170120575731427762205993240179076494452308609915032119585446868763510047845531341340304291298617154468831603409499748499234828914522724790062852395546230447476374836934457624168632525993422919318195557166050516529932647765081873865628385993918750780257273814357728408581503720854187263099419621871035140074275376902551716002899160381802207923454541262925410904053547569396192477036364490244181348789725094424293165952126954137669153515852751284750834334033487160356726759295825578968331858599417410187719835608041825119968586719357561818986307395921072494757639427995832877343829655241116192385665870114559455181401919917757227487943692635138559145890613499056215524322210126715555200142259068700158427046823527541622757906623149722983120487001596420699084091118174221577514423467385402561149780571889775144532920635136314899732747222481242708604591889906587300050012759726425615487451242464042615164032720581290102663690377829130080311334114704324395922651120547205977349927678803373993871428674832653506650829844435705707608106154925355537235006272616773313915085787832212267393267209168021593587247936984594265640166442684203491670484044038110409990836348456728754576820470685536741001914144136188619598190062685095496874576719689679933627687280279037972946643519997839243831561367719482267333961773760272283285663435150097805278985127552508945605202073304887199410323220883760591283142779229611068783878378263019822351106576806974420424311131444412233109914158294123945998977773763617675205880280436833163251304402260764356363167545847996042090724521106063906063788730816080592721667707363304129312346413643170976034870909461244658453186003801725344532365034387938166857286206693324191226590453698425191618509140609277786795736472021425742351082955186374498993608168746707397894408080558891013639228666712903839913080840264520452701645702416324305022392270273183231975237022620254751514853371726788419548059111623173859719190415465598861904876572274223200339355518607183759933891396283533882376725213629284913368316177292115028576719278240168443800553803634649608069581261087212099114861207485256438598353145291050606879032316530618481816518773651136185648960429920200110145971475843955903024008359556810487360789442941193421696745183540502343340762932321179601890113141205561979793243424574296531226717056987221223372303771118830336009534782412039515310563151871145604317522111167031416302764099855629214119008987399959600445844302555600743019488065534486847668001737930860840466372843228540810885792042898482566195984528250963342529998918243014673905469860553011845135527781405411611162734980581568163172631574766118424104815394986683740790540510933185323108980238996134961246797072841311706972189923076734900294033837118222557666399115631661391023068999208832280198494106725042735566314980349729136494651479277311175248845502033399320426117005158907224761004529412549192895625225467210481180055171877402749431404292850798938386926627201979694939118393276177056352428927280017852457942274255936719204968495882606090705300767242054519267827424716126284393732919909317757993788080896856325651577634924691193768036524553073851489638184358368372193168114951589481039374847234586371440497404731792249305387403280454003209287939385693417642128726996518350829357519056549258972517143558440353435514601561191651439549361752239251234185680456758008702576882965224346506980219864579581833260026739982651002903693805571421505150088291530776441250739837510620388165971121536547171574728553450991259839073650222450835070401537036726775646534293458860090795513810027652556933591470407258421007804401907395202489637874033013070009385111348378785833696281080462098834293980036653443822396072858080333964211327330616768267197223098147755865933293432628561353740077933280462101537119151461886211541812496844064172241935356076519135823361666129520200838638221053634019694950332015744417490410643829153213781345332422801131672310185173787503845038481432639519894054596194759970095244669704567868425246232547555242475914064514983145689219327769242068493964700132641348005510604208609741277515329086269642505390570387411226541149922026056076779163414647263013365515010411486138676043773579881144769949839250773197284075011988621869044651595128951080712186314253838196056315994749636450148624698782300427910663591689026738726606836340080706311482300527172713770024094692645684446867062956279853671571501197507002165862674372795844782023632278676891423167885178958940249790474475840369723921975231699399528775230153177355598027547661861172660816105762875621367028700357113655909220553710330744952384476822673336257212904822886134444793965036504916112591773747815333168628147337526438695886745210108226514202865588336149095628101266898341826285082583545281476266157896846967908881719081148792609495320046034013505543462486871507493041256675970165866163379944219242782553012702177968356983418803847090103852860438634374380328479314643595485622384239354437131835433713877476240551486531831010644925545409770167107335038582867365208371159023677180801927968386662328559676939655664565918828288934023290246010157291117800749165843613601695543377574731633084007014721271593351726300770188795370398486309466921261014534024936577249230069776619356061330014674690975557409730112544432329275902359669707855716474666974377157273481457424518367249393578457135604568691561873861330774579293267881555609053786815764868420333937575875150230196014762313238296853609619112552654951538377543854917012434400395750569715874973906428985464458456768324500629642492648563108193757748502145730612605954898270434397491613570874642804281357248114001404044106076032199985519701838591659570575712297325167943044118255226134076671567097185323119084847425821349023093917634196106879407806410256369473725942112211991536731962364869685300046064645979077927450671123916691950744741767885342420172859178221408913260278727542744573274454588001466098887404575286943488050743284020152565610335715172505987746030518297182437672214800130186730614575025769070355882457732832798643947280234213169656717387432595390490146749902550197538261283331626421115262307029552875972168159891180637791378880160414418427943380106653314710471634661007407001093303736106739149885861240600472970514001719813712122942588135198758111665065129952375117438433374712820483540495111284495656151429729410295813573104360078046675314589581304519543837990879994270030317590107206972641112888586831253365664240251596932520614862506813396995139994313531792282866525659160810340839700202239308160919784292022499344137113809159122038304250608433116003030095241847847178351299389335281378927116399271127774026779323296214587746912701786743620049015660232097170757906115778578109183906909404179571113270285330032684519086184933272165055010397807224449304675715634287857344197573478357198502386621001947944038775546162470637499900717687802806869847299490863230292933156535785666128492433237575372192992692059421447260519620475453647118934286494005832215989058394770567649961435100113949494404837931735772675836214963680475209467823624201787612295428651515866813282093480904851750227245376267197732923894429853486686065370458557130878326758205222091499911385265856472922210937311771183223629782332548353816096476812622876976994995153487126176400301819384045689307393990731500684793971199680722062677006720865152199405159785600505262470711992629292389593151356983781465306800527560443845805740302390795971348846683045410048157844165665518757590804809560405684106328173648883942432291825426005112012008725516480058850849094189119167491661751003460717275915619326339970893147228858709867555094104495811381422134618395091541155704247834341655637848115359552311629571479673512987727503768368273640140654524017708133362728416340649297812708979519083311658192300206734993453570850675306917652576242325605279757458911832443006995189779089032128705333472588016173866635219293293974967882423552879636495429878332298435335922301174845102177455962701134363233532662095581102136743346551115150871087186495893987448224926574181702679447518437942691863883378024868924732424737601007821155536467336681786083417352217585733357781597604335182893032298208412073550144931242999734887765439099526781395327498397699132058253664574772866936780391290067310888975605196028759147106978802135867656966212411758955365040464141510716534477762090803942986833992414133840452401350430047051039320938934687551987826640363454087838014886630792531007964906790957379008901580934749317902627056821070884905619431928840753823501458230787522460897766385749804521040870890766008845187079745153008338240783886356425115772286660021528294069055998872950958347164600373376758635713684628276752434015803715936488972525583948675032431002473700273416781752153168492906628926733170921309016785204462828481021152532061956821976783448392572381558951131960378444083104245191081697226653231968991824986220818224600565761234936656896453980892820568705117574981881696650319745334865004013185088957944313087764892907008616311240892605848383411512371785398254219294450259236195337661328400167269168266477436880872663999084262032351917833120517875490361215246859389475578586318867403453591734695712166117673541619663441377208363787773048702046516073883016070762120073224757633095565473358129201617386078952247022052721741731316957413353084469044085564393769464400997003527382794629028759619099584923845975023556973159519239669050065156591350373077437482839583714696917297909470458414963184746968384480498924911503729883823127509273713436872172377009107456682224359512875095793875596232909285453301687148987317844179181105680934403748485396545304032294440428707082842351208135507470402609880343640510177112766866960165371833696368046730500582210377688568024028280426344610157780130278003017723973509107861422607335550310295128336080363385777113903993478740857185072335832690573416720717646899058068188730306148086258536742055599501788491557326488120053889291075905737989254728833239165163778320047207233213204144026114816561134912742378400992141768167930279764879850984806749125428875504644185687190743563354156138482000283713878590592306714595702599798165191915759525425977971260006254914940270523490078525233078759473321317942909841053554612383848660723870470370219121594156261935730601767306346793058723009897215541494273681492803948777404806995158230220894288220798696140429161151399288311369622923480871057950701887502700563959782981043995859397204415718562093304454358342858005047080946119131846627895054838117871382974571247872547208423631193984762332822351535206028653857268496196752804771352261229282220623082321674485333016937596130728536692252787149424513057876560416789014986562240263903617639988045046323899249600757054839325047633397716833068943593168496069971121664164911907256033622106443633860619956451000789848621167268748109961647652365099736990162432755002981167310025924414695620171210175144538404665813126871116906882429412465168852382626801913466738103876621368295233976902987249126049838345490479612956524025238280039219939009208547995909197629416538797602108673397214632780229831340821821326169774949840858107354748415967298415197120903596755089142101244694727536698286517128287366970377996331336155497019203328747682622517802416307458263704440917311753355027654898010767661981242536337846900584046079525210077453000527507142616621270806864244927081115330466288728334408527980546684036341834532780573963771629985602519785086307596158995442644512501290421220700056723797708564900308010040719181850171455919170272739937295308205395173547950129847590101839274117853606488475350547201038849198231556277627313287016672012139165750936597418740104759851963232631786176999736821171131741247033497461675867654793510615099797975470836452343644992675535670332026848899913306601479098980758956395181135575555725076107425247826673535040552450843038666295976381207857835703579481309248289548203783024813413276111311232135764462458033836400926283761405597253887695584751733577778340880239993282430889479205635912210853299404998542084926534319436401673438685717499238821131360985494080884524421813059115178968721718220217641072571136496453566833955293161826460470038810287187202938464284092872931382864761391092922816635567949196765797286416000302663514191564580187320025632419947516364614383113712288936026492971414641531910339023536949331685740189566154590638449192706501123086778215889700122850257207042738242954860560082002026534784831076522364584576256371880256892829450282345055340318696921544824047352578805172819543093895883840526695623559603626520211372070310555781106345615959534677328160171884297740924142884474815126753072309312750365739937921497414041537674736534658619664466106314706397780805172964324401337004189709255137956397426994742696234316874919919424886551588907884064020356911500005135342810042156914933264530181784094010748117056331044626649526700655067093892474745994335399661915869086513666894877266965818314660598468761591610820075521299806728796661769956185011871882788467461377998031373198568013617310793930444266053414362435613367716170949555534122495794189496453479818626268282084338415333785572218285670092369968025447183616431053276334579863673034282483665158495714084131160564890145368875764898348932107936541774893660848030491985826045924061304060524170676100667484920177600314360936049377869213872602124526468725914105860452566177806069892825573732381471082777777303027151004637478643262943845051973317450250039545138116698844597845438396387221700756211811102531816663372430679747428514386780430243060545178190844150264248988137150571270671337007528150490355498793105042184790263861130106960893069912790103891964082732047618642812376072865228365649056877778230097414239539740399883368996101080485118155342598606661881819929479603525733457612853843667074215493134329673163210905329909047552955113220990442793285393122329158618524764173560299496177713682411831976276238702605978526269157656365218975068901915182820675148808741366226036191546633337284680001304185924413874946562943036437804178382838027165466262469061237224874734724864270492144641203507332377709799116838425141500450381276961393133510393808377843767233589892524272879416971557515818500823267870080014735280705752649429997347659426562818142185648044068420404364712063832033030939124263190518903093409528405774467844554499481381438124259656200175436779875511219147890915841757487818204036051840448443867636305397823061884654716462502968305391706656620796242350379657040951861476312374165184093686943514955289750266692816825194123661392324785943499508465182997642228512727916064496374785249879512110776925534539439663852091261759019151254262537336375825136147123035017639727136814382983377461988986238852534687659884192947768845938268213942877620388590161597883155071312511995189208318970486225204217722553590676555711118808910855511552518376188249079568439556613198948948719444993427828882539521189063259727889176671322725744079631792204208472222109928406194941362052599710760799708802555241055498100570362695573210282612766559429441412145139712251434354281791313070525138866017194536517482745214764666335046744149583672369744797018104450015281862882108337497225505648701860411946561618976957724111207421969298813179005569754025768517517938748270948751350599789930632088032670334504175785470540859596398565504784570823368824894797450930655934193015725525243092994711251699337457267334859639422138079395201815538833673140307528500759962159108264857008420086241069339745947966857834869445930563679232982302372500284695886211770740376914848395981604447593719995424099714417097879543643629084450305092128186615622504750067651881590268709545116899488104308132815325648688781354650811786460905137804589353142470489171158615633578102859120954701567347459911120742186228825509408946498624432317299746649257731211731990653254880714952372790774739060209058713302869433234494634150674697371632473420750337514564715201555483396903628536642703743786107923088360493985314505537536561713501502774610240423385989328342985698295228682232695408429445060554110706910604903052408132232373641893388016209423241176845461723547090700263871996060885162877278527839934556411367070132793117241880035387207349315046133848320545916533776423614135112740643682246560153005290078769939279059891563075627687112463780014180504561214854890829970119566392722561957454140149931543106426025241270832315817595592988923019219282651934506705832916091405756534987327738909849641250037941803176262985392453322284180363831747385211301459377826302859321766191869143468131437528679869797281916136796180475317806661077164922596021072203342981197926404010167263246073602989465440693195412342923729902209984108360041024650156227894561129692465288819732010457067507201889375510272444820821901628924032914312590054579637085542884004163207985387511138223312384151643277012369093797715355059685669566047027382082529454572796035343067468263671736803695291132859446368438295889128884668755876181200259394834889748649193187115229944537680739450052903863763652763867950182415092299869062548242115903056598251689101522677437300902209643511129169447205102360178104514792566572043388116013795132244234169288034492960787933253063302790674075172732073107460859569974571336037969473542632980313214489115400807848201216084268778560679211927741529768879118098476417109837323969483300340512852747072716573786795844131669819061368243658414868486266548639405341914839318595435519398887016778026679816898362637313337148382001366330335411598563112846625231812276017967339369342545243171426599760736220418651671416778609982245718509793982120909934325071338916716900800614531523959537963024306204177077077523991396511281595092783023240265529724390741353128571690547590971175132075099266327831297563316921388456634223062669690496989766272879650160613714321396465242621777653144939983393750103737968082364923997476194368827500537879078030024091665455837064215500826986416197386838199506507360777578873292409383569063763307497748268316814633336388178137141165574263883962366684958458666534750534681532305137178310274691859971555134357506780762669221001488009937113542053037253288563634227663283654934137683666967891177992971650526579677193765297130165600463921565315820918092928271392258805754380662248119227395939921583131531718673377896300018110292512720027490607204199599722590453422709000656961803332926902438326989073705989921181401962399050220197628285749383185075114785913964404205705586417163869633079662623282376709003694884784131917510495140481995524352035389832128709193215545428254398526323895749032518399840593239240310014787051581954961016982070997821171926948492294443902528444627883545412988347626886807388638699665613660050229311602796962956571234044460670978166638950895681717066240227462712567670464935465402957746137677114649195593037833382745235468639516943600810475677475940642050626329638177263563448234169977788872964787649548289605369673037006453048302064452394064187422560227568785656460010499452819877363216143706848935033377217131997371906059498341740458009620284522742348100209922123788425341712262168752203166138907791285540525501541372591879818922581690849929112820136466936632821637878548816928916493306114143994844765115637749460933829673376099756622549709514955343155709664286538789941057417588987728846731503972665558483746656970707569435697207778280641239953699965642774223208310628128222960633157782277765261876073797299505526826253815614948806310602819943665757816043507389003505916998921583927021476011404266230836662018778029435121365371304401737192266734509912889001197214806142006489768587146673348918663827303693099104046446535736026475092772008493587681317733032149905421965682502459898853310776670076915269207976539728041480378216872851868000035433846662376064613410793918357441697485438858004265217081055577859812496212288235324567808024754616886999015726542570513157763820440741076347788701526927415999291904013376483691025806461732013845364855901654034428883067735118971472149987654200836968078732096134057245027396306470420684518763262272445911830913236556108734666771746402580860871995404466148366358739486554233416757302931189279388215795534972925520209949316807190799775984458950052176877896153814121397609822827202734970979977388580931231349914710659037688188842601429476883719273767687068007072661744511203477030937858182354877586605961393653143064380954539131327893112348844256354527829101647951345638173351876803638883150073360337440530465324382063795389452399283212368186937641053739471023076392682015505640034645192551176976592428223517902486945576960868008004102500518708828680237963366675735702059799234696721187181252468785720544570550447099661686648384944200122193805880937678374157209039372005870940143403380238962975200316386062823480582458786572427174981949000075846793341591290191116038268299273723254615967696290134067217633280419692979239492106117112527560484153536809149307299657241005548826939208321823104785906660011338231422162836341472855931292701974470146317544653603784623354808134799259578481763130551707260292303076725295548368500248616555190294778340642925461142123347212360792822887703566759225417469488521743493982789787594666623612715600961508889686646057949831433983540286708815205855594235417810118036424553799166515981915908620348107715046210378080001977933325080087215291013076030440663324030922931742190742707440417568113069680043624329187776872002145454923295518193044793453724894153334893473585662392999948751721863966349331313387898826949095475175451788247801490438633264533924255216178814385571968690386368495188464060467297199112910911241702925855237019002289491865845146728951157192958672910124615043283393952337145028911883469869386964328318359179205445423448564759606865485014701021253651969539161234598876345132789951070489644633555934560488347001991080601983246011262826406663274709048200594067294948496664923210386191777372423337989866043257173461704157738149061501779828310068729365724849107336679023336073636374369578503041431317042363361293949266142381049444166513500883502836668166528073015061298390651187623488199449788598298857662831683907434970649472322665177533448321829999960975577130216888203245434264164311160936815510313798846404283408881070606815249437348516783886696011903522850256559257272453921080151474267444106112413480357073007028936137913464624381102282491112563089725932598154430693590620385021395175901038030238616698615723781365125158023449256293677524048182841773636168420622244660923230390984493002212234928793541996695883665537458917930502614957856139058985228142188191024200717221027681725534342879574899090705070716342063893421385802783212464601565832425944321148417280291718756869999901627077586335567094820149863194498370157429064690189179379841387346113983723027415399791368424617098559907122993250596250132184172476031436092732432151552703003733778401337526644831287216224033784097199296986272364465738710560620621184469500426166669899507088246455840271072500323659825295310082975850012923464919145613826566464079726853794756942850946139601835929778020797087436519788758503807597193799812553138246503401200196551984245805706315967019241494135012785914507840678328406680698262051365362490334364451358832521371617442516592707567473506818379455781456942461483520582043507617414250180589061754674355531354389253033540280361461436346885436738547309528097733287570555411725874118337216850719674792799981638374656236559526022822912175292856496973754093864904662243271938619373678230789052787829161098824455660134343960465182991047418331466654685499469347727301751198844836249612265031445423355637597974366194203226536189716875940627645731357223242038953363723385264713053342871085458411128412832418568395435067483377266106841081750159537525459567985731603105988164995922784672098087456386951689337930089564169669927937635411537409321424577393692278790808965974105808031653373268629479002561741889012002005161705257105304954936125950947011723447517157465143784513306933845398061231784486008045366932697613248768355722029787260312938743249069247226673367434669382188598179878676751839233759430469244936703176249805664534210721821770815707762121696299425918914820415024213722011061015788435614813660798458226827494738795281867957531418747294951356718323143391783825818745597135446231903922052906297079489977817587179168361132381188009791216332308921523830358912728367971109488649559922557647193209390312124607236672780065905233157529966847352230990021863593015025516020026057248121329001330601269443229948584239550145140522137107197286963520534609974810844124638669696847240294747054925216515435757280872292167311594677196102499914256036305340602937809364407522658820579140327366651772493072110762246531169924641519885428586826089252176590224635012525749022288673578181020357534568509842913980471473520788470942287432000781979718897927824254341826334070395369383169981259038787167784822679947487772295101601578159591091663502020474080585771304377492024598523478752750699316911757999962438084304042575159175740111544976446612239165335290901762213704724611519879025189419979406877439885832714534078283849196749068833777231189905790256534683012592893962529156370089138512352858092668304697305712704777841614855291663900356118390223561815426500336291370885051785306698882894594869615114794027251149937470908820297726987471805742545303304680027145654174620695273695478965670655837340454054250595937521552647060666945964318463158426925966349657915950459384040993578594939582069704720293670039500162380932595577642499880765880194000251519067088966690217272570286121385981389372431378714170067827882947867745949477093136982774240327087722341202458433809726625663662044914785918040327650911940581836027331393589926596684996879889349562615792823284923263035725768330330324333366402938718130241023698529230279302353669119910974241853378865400630433945103136127621546066132624555215139892374839432546885976785217819106780515021006312692444178008761845343689438227989313077467112610385564759654175086895130830128298692135326211293847164174714830611626258526359190527760495625585578739811823041835938763913257169831543328265382143426646770753304091481051162047775036148851879933449370043623263309335770848972735661405135337767338617208900419205517208495519819319007259474105941028478402388797248504365074475321739674446595756050072653654237864733276222751561729207089351077798804878444892166014306001937277290557335150183737480314966282042254940956616137362434208951495832818356098106975389059599291829461034638810879242503197615525078946127260498683012248180100216182119551475157720228642267655339761694804581164001432438034235853896910730262066198525039445956119708386246051450340287782952407843197664660043323825173247794765811373435761245447291481517488762902408770135430012091336596858912401168420518091410668748265275229676070195739570257580696967816262006903979343970832593766356275559742384323658070528547810448325334889200854877338555857351268261831164239954276076078611350722808648655394321924503691792350616276043104835964983932650748021897057827125543275120611365225103830471704201521661413784915209346971807540062173511017286656466013067864564483337638549494176780356956604285870983515251964056242480549472598733381528121854954410967220221077254333652535277169582241120162313639646288177051356216686766984072933852415024001303346567547335670972028475502002397258439195987191544588198780533629164269767740244351223744538308559860209784481951760957739829294682974312075009362564987092981317273472414192706449896507635252888650154625511079946684486751440369897345540325401012424214400181878322132341130342606153388878608201893206825130840199237858502299074387583678932702687030793054439374783092236089643540525337071159795890445941469279535598860314058403227523082450951205085199427016760228772707191917633713225005663979426879416949261728812176323493767192502886095241823262624291234228191546689173063603136305956342046327567968410983573642358344393994085021879731341231484815762874155034965256761291485540013891540622112983073434572580025621901833484014860634316584366096436654385818843491182279646441693473240603401185582776333440347350525182526682925635026727716374889436811602468301102559738912712795610318517141080853833548974138969008204253291266809736915402181781725227615134230473166485011706929911670703116400868288559469877062161426660829506652390721989516054604288424204780670545277062996575273561368403026456004155162077217713624402252528182013756129014589405769711415546859820286766814275374733664216005302609016981128742425371244864496941343543679931264310506444431969705908129140483725137629969499137871529026279681703838194252576900950644136739571246711567888432809785717421998586253469710435163512207670904805251513203550718707609078369203151134809674437982832789263374052144390413264396038198354500847411089694035387005370488942117546455674126389563840065519509330130909364544341454867057486690816001606372737661776015603728779783970781302340447693142869598840153508906568645151768125417436127501326955515462674146513446198953765636766028356422974350427406640350009419740217627308172729220408148162213207741301160346015793029361395830446353443239710042008205782004059354366185844143858599831602623503298527442612712347372751454937349973146310647432882757205649951852106536700434321116258281153529013960737341977393002617148727450469720709029337752712796689479436023147162747610662224832277155629921712615781096860860233788980957868669063550208423264617717291542344668291484710520945676811888330724917215467950512537606768786493132000401818379814261240850015023371191996198422818324026732587173016083046157949371024461482993673698082206076188489520643566709440640376955892299414143617839952961816079378528898873356857604906051647490691137898245809489510484620038357850161463761040419476141867235730141679140951423584046308040029699949572012774565612236511495705849951133330726268093409509530650356891011425240603165414125579014221836381897335636979090741976206665630733066245408521377918893802945335099750560734289796844747811739943237833068109776782135050666753632029486951069071458883327645030998593048681918746380736080394115256429361611732150605830869584930213548753337053819913461125568637344852847642929175466937180385995513693034084101278109754722683816621322360418507840546193740657189537356725790496917655787009900332732383157312867988485528684295859121535858826555526710715437240816432247919754993764182972992905079321944017110346795578466465102124283521707532947043098526273506804533221843804630770526519643030084417326604733208780139733789199533779475114340629917857917445722926005260596158661511566077815734362144041886469607418702413207123237808843108268081870428246299719923461895192411120700375796844866136542585769609552305646887761898672735741767243411238622902885946661568234903872604480258492288232828989545519051968695471613883102358629120354014856133916412027766356825572988805633480174941869369237243809893762997956884688859476752975710573814627361872538124897012537279733032515731438830955016133727591368140498901888736777825360049602850940127456814629923798964193081978697043133376185080536533115434234120548902315005923333604657533862567449927977681861209179388114368031457155640839276160495762576950189511190915739780655050500428017765971911680797283066397424117170143046437656429274144658144141864742829266039381531312927078211033555159757745732751136352814108262751934197034617503223678308485695964921980840441669844293957563354499376574039738548227432314891126435622886463821656413435308913666812604415152412271216572396811240126378263671320227414335311618581527404117067849190349590877626180130189688862954206256851062707913525870177625292903542272959910656776857744398582133257126808999430637369624574007918345725774383972821119751276686847839863897019180683790265563490214406881495389181550413560322449718891319649390744473907500825858544746313742592749789924164248138054454408860512251955070623276774726665745339021694615131992478548083760821699323371851783349070799659179251607967778413176095120303505258317938181727921468999164245471812809512649181928797266308692904280494354059141308213023927660284873141970701157030533181216922021477249285231388143882812855249872964395219733657642755887458024945512100622822583112440936440246644968065947204764938325507535183622832957454955656311191857899244124134348037442750845910082407377453891680923072599886652601175500618390706613327139378628881493113493382285868664002026201154658259830799044579166632864978140230298409714459874952702161261737289011522773856074463009052339571979128718907189533320459847406860886098002173180065120774889467490067738865615725804171486119071684571219035394075841797126886688308914455272015756310617436167084230896724362496705138292116342130793729278125543802190259444467091729068716139180630161768988015835899413628667281109412712175817554292576028947462487413042952267593171472095751241197255453737247485021856797518512777228126454527556456182123413383347104208465715873187914647608505525726112174700192756943568376336249389336251771772484418613805910009677925637443062137698191272958793932450718375647865239889113808896166485828318674879929132003396723974181217542351175543304253208347406970450962273651847660040212556433420408959628811787427645892805284294868763629241607161045417191497599493673031037816520317896360728235203804964010168893096580370231845205757340044042843394515129935366992119956834963886823674669845274555336463978002671641069520297682737478841845791975662209156619326705561033351300679175381695050948645533209020432648461085051011265143493047202293986489489424525411630653846892144481116471852637940368407935602312752167148843356070595409542959934691818157015191475713509366319023628176164737578932493633521100485796384324625813665137509196489561693916192936064678545543750411096989905855194570552798428215989122054577484183224770484513269397496957838337092602779755692184701659529554391740422588168684211571973167450389759194878805707652693014576483323138183924507066135417443677773754431130750252838194343506534624938057999585115550004216859818019285822183938878689766544039494632479348516135865373436550614812698609144687430765722736743202927736711835400964589706127499145158999434404106202683658450809021158969287674635849587319766286183225246202623493700299547835992842129201472856491308770004030779189497315026044377310407303466536164476325743753114300894997652559311166242342309017250433304906270098999526060801800189469235473108749459703651893477783799597161470901030715257408630571738869870349808218358542896216026118654471020404223296338611813143442145446784015152043992582064020218138040166585196451923302728781984546186069982971535459966433448847383473462555499146401156086053119766535783852031320479063915094448618653510807700165034206736119006464194239432823080921647784714437424901450969441083446964756505350392856810483259348879919783419061522660908456463679256432672909996225871475265048001722817924401436545121731209969170164961556828216017596171981109999611882394641782328152670762402147623470134155253472406958164578857074182891705362827993812204363444815174892413929591399976533238846691773874268806605228161926849911710194152587363280841520131366517589371473549909820867107894792802930870351518329103964781870823329922495024607357879705738479775242617642732992324019099641948316883578412378119167792230377789744298759190693820302057027806385935219885060325807881018580711783544625138762383780263892973856379212367941286728151482795392400673202514382154389531341215482690282826252402466104962936616653965044737751815840324711166115073848697636204145235428512887178378670383933048269236529939929515666975448666148016415915985545959114599163127600670634206971314502436308707130210879742001733817920428193674161905733790272552662328995828100298994696588185768155161325526538527624072874649111327743306464306394037882048245482113331817785835372186209201835543214375090987776323683724906899242021082754632501167559471742506047376510535354788412484522005478024218083791271149438261532192587517538043767355304489417736649729757115304784162740113935798358986840746010828236742901834555174749063930242742572483771966573329792634952396070409125925284833073147706270674853347989726163126986887420220399239165226548625872407866515576462463231851300903294063326916347328179368641639560451911003450136943428922788833089330444120750851872858987733728467118616025940891563531743822737254390155682754063946116898573091187357561266360963309118195860932071613933704499234787488251650427909784967394338500077213001067637028899471187354332364374741981655951936200233534157076815915961021034557099407166107240274122254088590093411920358049196647595620219708032757358902987747552853832336831017568998568777412183592177110972258629896168156216970571988827388901494487811672654687088670728646591987201411206767485531238629174725487185193995030548824460995364634768684086019809358225561328495133929061630826317363357628928968331832327256587467531099805230804949290575559759244937223709677005301668336575755992971066096411444750191639972682547237359524508474012057774513929390974709056609595323920574735778871644443250159828384635959666610604934941211821055453278121491698701679253545663804787395080132496856238541236644532237294946709627938993458434977438265507142474466324410892436301493324706374559721926576218808609478040268389192613509624076927175605737478258831007630029139365364290405544192067742646987688564233665164553701792383324850812771133042988984543395975536544929358368283649187068251635998312986916712091331513408797538400289064516586916575396745042449484077693087734925728584470078934472425430341927725431265089240481233927546332363184100678470788276570181202262874916920189974504738723862326659140759669899669390946602325280242838290026473582383019304547993389709142287091420804032517759453759130324764142382648210624117340343186774819970068499587781482682720101891311151895137282071533857045910361495595245395171376871936435346220682372339974319744607434484402549490521768019755863241111517014455710390495084319029758832733073715045075243609916128566375038727444810628375250664238215492372651190902037602649060500695089449224988069626007363840494288729191863739874454286957927473645066540642790646282233773408035244199853569787159664803555172016374175526120611528291199980471051817050668043744054453674456987303635964012772808162597750733096246109643482574093980017547257024073909714388029003562850308987098525725189048711945712440389424155848256315234587045275852625973939821027925506512344599478571352915575498559918915234485925473925316325461332926468098580185696608195058231305754845477463065401628967609693474174818681990261640027448371475204283637100018119204643165900930135368353559624908809304770110551626110447483971788892987509508345285759466930981574117199032281641277121560418576300283787071285759667156442092421753067051906784885964046355625733338485601146444013876448532149073249364854832361057318215751152021625367886437221523174816336612523181530340097999668959919489771158890251913982519973652293670781056604328921262495258515304178709503300304760373581660870047083561345509421175698068961731852632959399157893393048048781975657547525816260533481553841868957902995486655511030277797933032121267687301282239379606515979220318791264309535733606763261211914813836035222335727542341210274819211180891540883432285353525079229703960404216757270608926983957567661770601319899958877230018746179855334245443731414169860549615295424004753541009757090592933282329000505265820797387610637191507060822986115577499155604990626004241173041363553293126227566356288526600288458524385265823984646511528955751703337505545611232145930621493289588453510768755794432601393854333140534350709710478902630867183545233675604787178782443422479987599505366002956561463945171035161828288195653895594234747074124323411319380925955430273212616812936694038457966467230398879734238428291824020681800435790833380870680485503571152737860396978251902984203961212453633921178332455735420674552020389170350704099713622637750200222087871832365910535039812686575285474776131123963948530659210102829962704728538461012357467904965838089435973024541802572880261994190541019312477115216406766123300143564775653929082804700263730321442071741975855518818104020254246100868835055889595449463811607189412425299112455315912199370311538936284847093993146722412244763729155982091245801175672341678330975568114268468434401336993922249422357852388679237454124239786055902275847072023480945191305847483120820785080013665148400236599171405758959724135684500257287315251539151560517079715762055036202629308972669645565603720927923118281627369846894865694233039128639493182810368805625899566673463290254981118540103120953684177957316502300490158982180111133281724200201204477130856043014308533147892833097709609543963892531438908901106473108634104961739830079286884426164062940284458631658463518907345890558649994170321341360958736051086355549302860375235726094900741391514980647317391397263165818512299239825864661810751529945324619934134489334815034646623917930800181372917029463864419455987454299150516032717048296354423429584407178544726598910806465262254950559226748409932285569129090512494071432989159272400415102711244778108741290399241810338677060154665485111653357583630779806881422131799767304298028149452642179707079051531184892186305669564348156284370067854500865419703845649342773263412133259829749721024594756172096061740573672119923836324944991294103517509844242660270054918219570368244792267325805872085414710727272140944674032185336058752942844746055889804571345138798817783262434568071449211087670271698814329768544548761774159113687645401309448662106307677995285550478190837669722196025320666181658432639099139043035480666116801240246823386027987066136131601223461611097401930020662162795543514819094210619945716962439161153866997319095186613034633608500330667891150250503357271823583068536547658578302378857911686700108975285322805392035475320377755648665588129906983780822905802011937140761739022851660925718690360970980265224397016838099070382658916868069236385459730149726337949241103995616792440003957019584202643764886788978058283286756747507240363014739375710600766026140352455717989928106803826402966252858485246469837799990616480970863570448937362608668386850207899744495300092703059996611261012029117255850117613643721693557263952623889964640350964394480510752382531442739513235088248003759868897121732314956823759926856728545738874085353364335141263875089242357708763502685630974064886989104731344101449447984542040119143481972714364394147512688518357959567986175274472796401738915257283535919718383637767704925247767775574537827782476274723957922542666297296638177926112340363749303510075987259294689009060823420945186061946527550716506787299811844573110667766149595688835231011846181376526014738498294013812327113914272402536788446443914186495643712622284888623879070419358493584411273931784280722919440716274706724811174434830412413243390806070527773142409686358334754109896456869478434581904096812867943457673781973881049085086730947430316566722455332661934491215588794662449431867739799047214757016444112713758650035252852489634668152741603291111304082290185279816991874264948444745157722775768755238241410648297353658617315560602554694896866605365491828363190949861278088638722599315124385890045696727517707929248231830857346191171581656308284026942815154517760134519448235151840775589729043132208352792058173586323735876420735310171972534279595888491745513044317090865641808226975911040235219196957571600780912310661767261613071600213761047766099241058978757634036717047130064514698632819814516359510885466252272725096015474068163754327003934070840116498540234918927227972550481938082602804027834956798524716648048879682255329395184604205577393516246879780246207465267108680405093799168251743385730776740800098908827592560850663117805456692445555402959636292112130983886039142847115031441210894614940221325281424601976236112991355431167403094399726184275438857748039235357793986063549302945792554511556674481411241457892439554471261357720369038597953905792185507824482450087139916034828611079152368893267265930318027596692103035471052913613587603451979104267256985519320939479289560013295360782169870778040521609513656716028003178106037256861073927403865348514864277212507205624833433957792317574546957316229567650787428028473399825283553136902253163196534051897463939095508897466574333852932634080241134091756663273645570450746440476439718710849151187084939758900454415087684940809410292268926476063104333976718047654582800556051760357697164129046267434961846287491562872441919660577078541620816983069251495038398627803765629030773782043424946074897147348302518012411743065266907733845548979754424352337241558038410064674511894781474615124531786256560669067189999349505649528733572037601263421589168394146414628823762488670163443262715026251340700874518295282030427366332439206857923459787994332398485171485245556069058381694767860040399345866406103124840118762030200310602541757446744513415642946445692105873056544869201377911590170468453314867539698363939999449647612343971856623221982650723930712607726474093904941654162154202500425718392431442798423328870214997672904273985575891099645081046397847210537296131915282181193871330588178044591213566468095887556445374706008471405888257794448708547876909677664074085488695785266764766825840586052988377953957827696294935651595525858011802461362631836292305355863604413602145259873057470514443222979336246126033630589034962603720130493936568032980559345091128688816331050799686546735314720981834378453434257399191102159172244085112340193552562640376957563025917205620865762066854758519910302968677172908615459413381403783292320606340327213223036737670054616682030966152645943760514011837434521578871224400632149256384866233556909572994148013137607705334333779493647382363139396470006789288312887651725192604659743342756735648179901886471501123287558854973788376485113325372209751575791287728304894614199961679296241232604819231925444214326685103636271897835638404344343799018462745419804619527234775760781677369672327341110015535367734651446701588404894397424325041459919253726286423399795737816052667697409341856038388051648869517518038798609186871926576370024657420011608378957453565193540417438443591964317943631371812753993961973292551584652594443479282479825719861940198110353103472731957034283006844991529531006624880377795530644474726364736073814654215880941254804142132439063252922743444924992326454795310222105349528481012459989894075802408520649839092255469977828276012082926142767695091564624875787005665186815235344508676820313487570365966326186380237683606119879597382465864718495499338028766306456007770468139877919158378574762788076087675175562118621774020468060615727574276651733563057767998668368629073973195675160434194511231298850026486168670180842812149372616499524044880648706872326617940045335601505651497307535830230165372949614525532897153561233298286196127156141574109693629489030361579792220011875668060499796191207343984758034193595033279107380076190606086717956986064985191958315883779792552495306935579565002984083410790945868979102569830221536061057776431457352736805448810565959094785819753269291613225027311558243005105268534795494477127211590234414452165508596188630446076301698908105824513079642884079694621202906916022859416139093456017672880413634849969391224242320379477929116948936977894935252118398808939179704077753213893772717230173294820251357345104423484596704274034118039881116802336412938114375629163372993370227491737963453020403800253523627359858974727613073617594807585772688198801137422266821298508670110632757995728554431360555362870850996485891037169427025901070057231735592717237391979897989735906273495007920861904314533680322575055571048893555501080778387654914181222075823364549646376332363044215231401549569266865338620362413579338712174230370533934356258329023226347952371525856360770294487991278667320908828903176421514311559913159938128421276402752071831021898224356005414212876886538872400743254617690302326093267446089705305875346305173554048203981362195697783596512489750444743965001387070173619268218296778689869730310227364325776176479875941548820405383728566500060930693952303815356682660089411596121342730450005408311943755784419125823755544293584392184999857188594251498465287055579560166126253772459190115628921976582840038407703185017246336618279167980147664873006636073327932602061568297668689662204594857233919939727727802368446408875717204729461468318573080634028127705812709883853346376116318355498477257675552939723715662650052316529874861107588434613292868202591061882477352220034076765056398682761019393655889617936144829431230751492831799535762654454497930068579654542540499321401262025244265305182144249788412581743601427597357893747414380001330404089582376137100668700038557813441616303538524972414985060888672839943388047365225555637915331628934408039094809944734975662314490586583118852976166617983243361027274279554868432231553968415408398510657830612080897639632607392617212286421517463726205364068677055573094999223454232971605031685294330858519731639121632167101639069161644102243645368815564677339101668445164933363937931755108714475162557766896373811041956533264966910498915256784091546993324907646861060082652055014605440792187932616283960006892780498208293048674803109636095845590431422633405610478029356587766339024645266722314582731318946706002256077372086907904242630038836079201072893723680940169227749136846167250291827417485730496644542674152653626920070304589339176139511763607876461781942354256092108675587357299961049046893138739449108219842895706458549300922150296083573603129531219592159618327193755259133187965159565804991270206449661769947436693105472835102627519139039550315450325970838870248418922063851012341680935018302473348613875929517095667884448072862302343190326643034870917374857510451180124281088375208601191008076086469682944520337406611375097556422770978197943546092632491161109069886486835159503583523599169420739584157217709135919488652092852001446349580497966029029381482420942220805532052121176043223200775765827747260564068707184901830327336152036995903140678625951991267300831407908476569472434482484654146235863649657839381355880604785302755002446141504204569559985085770004600715663057901941076239465047605965125977990259043670113515853581714606734892331986794761905139874405674586620868520556567493116145183053313592407367844187162804640466059742058366782124608456989844450976497097194834295804687834893895354792291749986435622309800610313920119036209854100021853575218255188592595506084922779483187229787949694435433879486938361530403960710118288516110979159188366596044558964485890635902182853466862453874721930279848231672548574753060345988825494029412330847057996752014792076186402021507345392587774242673593766155459338679425047758891404807304537746700036602548505411960039462958931228335475046748618883366127888313389661727770614219740907066138852677897496296450999687210538676796421407799111297658688243936338506913421149621006170931649619728543229609928350281225616710318698909367381291628447269606728786695455055171752399617743798687943045971580689546159584763816063576484555772152223641250796215175645045253876135295063260567366541613075440971063097218092523677098276672949994009046331797613251718066693107586117268235441807271210790023768569986568480908601174289941116629652229390902562508780235419621180528136676228085596507016705457899529819883348516255602601678985085119154573890082463875646772263805796260570676454428670754658542569402958838132633244243249190060200324885372136568839219566060219265749743711050302827407651356526161839542604798617680322870713114970127039093375246065532735761068897034769637817348155235143113735193648543305141929007997647243005081805161573119689330773951896901405713516774287658229628293558066193841458607092749464960380850652931003798368874854539789877349425915456843725046373232936754026507237040778096533988283973807558413403166556180055997474204544399020963761596594816463320910066936470493871353204758579232258335795141652764548370264205829851101743054410036480752217137613224734775352340180986666783942056832728673768699042577801334140728691893700817138984053808444049242565171649653715209979536265205616964253257675472883250054736508497437642741994153067000882650797548507303189561592914531805723452843485999787107947990964897030007045292925189488469649437996557575613337611270739025178900301830847284815514014004582465229767083694354114611263550593348200923514805772735290380952273164875951951538711301333816885592209671588116103191981602438647942681438950417961005386445201760779020775940719149362234393537702659412572755765236692654764971036682811362695003985304068882715180134962443028619666421088609764384339746617404226304070545006411835281099805481837330086191243389070156879515458472455960694549636444691284205259191787171131970186966564241601372920581551010824530543764675173308033871673708393275888496617260570453400537043143153297447482150821581884891055425498094081827943413580169126284461964395038158036099069714013223896188777021402177375284417513816772713304648492762386204543044403530688343158156745056924234540479049297204306488144024679494750454012178483066119964368000785966008079582913326114103369075925504665669989347235102480043353181858061945959144717600998226789097612923462233732993720633968061725692656230637913412111762857933467732108704347780733429721141807318355523546939416363078548874886061730711153285812409623528200979826906266921561890030861378295146232962320896093564539621614888224810851786423583998876868251104755913858882612960145081048004113425787518708701195293528886375673682527753689286368655301345719860433253158105839332680568176461147932938268658747477570060869501550902405792304982679255107605690307602310949276719590509135380553818115619922248427750651144530082766266141223269758001369254952862723873358328596104949166419653259949949160964532048061886494427000269890410073096373123176265524127564270852879865465189758983280406455729618272575841877754471428426577750915442677707043144300137585361686147575176473113253091841822599809339721649891056366278967947354289217087607669791824242919346947747344183460739466352305043830628947765590256005487338255132713368883494165888331807264112186896179971897855898768774835143841200789601482658857099055794571315869487677931179636573677398002355207202205523373896085295013837109717735241064287890181528020050838861087650991544820935504726730335262359935867661053211229518701632671574399096527807548778515795137619574554304318995893789946494318530069479665926111950229380358169917891724597023239391462258443800019106080613640660201334507777996201502460236757345175624562828868658129658698505606204902970878025487494320338339861317350023864020945318532283824287057106011699980292773692777602027970353617492853346286526098256770778099048313723944622598998611559652078454357315387988165420862610368469554480731978952654071380874735444789058030500678098103028212492772222102828074283766527969801931927785743720664336989693555717007729493802187175361871038528257585709783203630224230965425144617896496187004129502409632316993307660923762983982308175496762026338453179436593228665076730504278565399049746769645123967611549431883563765293052067707425164700533467823611325216501385481198213311598099145713414044267149409247960311140474455393841317331642189428581944240874651520954860990015644465594980807757340761250383083683476702813284625408902361431546851665394332027575414639943012506381626358331784916311182886361031593134179512060222991185104580822044365909214922356910998814248230253643584809729800837540678664942645568024068444708016976066098660122597023978137746503249045300699546802276039581174038139059346430378708138646762016972340319408309514579285467114136730223982569808044451312106423852367675296449925475833987643866255006622959670816866888473673226171355935530558161403160067445111065426469383081558893274747274673350199026742403802125076626947018043279028311491220298361674371379873982057353247850169816716932685623173203249415441743651478936707249286440531559610056338185537089754933524033386534565358925353245116658810088533395027872814298792140029482950898876005377994626657921762628432860477311863388244044933619956758626643561582659983343386223873193130488944624797369513224911697671311279942350566085619882399343813520280667644211484982100693603513905815638517559774124512650494633131273419558812054385194994653624414590756565952865505902439231852567594512294620725501618195617119029615389807525833743118058362308779490000787687057644485918153230413258126458856042094165060694505484024664285866219404332051335910541740876813504394655066857644214938751966471730449844490061253547775959822287923680166033066998591724940328385449468271901195152441865071435253114937425432019292438285716180332599054190117661827706603757152881097409653933484546045223207864600518215654819450632874145897143192004796638758031507993142943832501258011497262062033522369426859581026717079658196899715884000096910041161816360293448661808719457405075850564456923127578085865473634085480676743319222653001596310668958102290800949471726037880128590863172118760696548700155271511293911581664469229401840731241744621908643746340463089458669053653164145444318749117625182076667700143228996289556074169053089337100712781565709205005473605711407729821538388986447102282054092947372036569927077922560284230559121663825517520556656284821590476978057630438446316526889455873829237441080103990390029494783869092262489438679791013414748926665022702429383200650865530746400125589004285051266611067261761074647092232907704602494872754110673031272125739840225676809572222256962228796731672453651323786454909883001469555576926479166373802522159211706601593733144004422275284215456081033963327704908118677745081091559355061910626031975103468007571989813744415335550572616657967220474050083584811729801218266376044873156622711874425286900682514303457546448745657813580142311739113380508561185533191434311543174418737660080247203027172135362500369517567024748142493378797931351617053181844526005414078579318878222370815386768495438228996177441496091238626215270748814748398664093444537639893300317326468008076185043733995972470732520593975144468679124955952864117873830433892546529094630774216228328105903171746156646958200477882580048547450881031665032690791816702195372198561919591166419550712403723217308102115979123670620114857500276395456876401641629164746475179682740612224831619589944775332748987117423879722705480408094180573902227589573064103913407460419075439679552863824552309767363304759099661219806381897544759556963559667042724676110342021787301608746723165058538821504010427329831939846887746385032820191553241176880605346059383595055306761664968005016262773727757586469505907405146764956880520796344313478115725045147978830240140280566552500865969077686562126411165567694597065183441935109977064443318391463724719689960508384073578977723125595731817409927146472315474643129369109173147504850818907450179456867401963620907192516826919928548272558435193948852049179947545936796523220305333052080094914648405369963164203220485784332617668523775485070142585979234400621615370754357139837420810505212582014143342374978960371258543051831070650592284113897658812582222312506052504883699187591893613255000345907141616170933785519395481812699495407425481975867402684685497072352003115609697613460489272691080049569565196131488556888215088233603221231812558826577307600155928072366129916646104741493442817059773741633701528313372367101774928088800988517647862069992162791842142504218891129915054755126426520872314347385980124990820772218237927480129834492324796325576802205827829452889658456559909273203929053742136640958223053614429438179044777402416825851614271281031897735068090371878423894053223319723299100569488836085268779235020248006091048147740353016358331373147274507344685396618783606023816370551300973297081635690981436450393361916743119244843238314010953092084552553387723703490673737735496401059279508872448368967934026378013226134247401321377172229650514398054964701462419767081483033242273358008698243092474348234399453941963548088663856430903733869716291126970578922037728151890802244311396369018010142212323061279826658247251371312112083346551636784907525540635266437828061376986873110754807020691855590231808948489350840160257269412956339044081839028276326456613317244755027944843229343570486754727772928648886534703023569479058097119303130921719166048196326515814994927863351298233935834778663541149363262647767458894152888235794255458865665752362948463996142859318661736647623506330223531957891476514281929807471460553350456309693661410191157728313911260087718398548256121908623549350379988691062786881039988257070489296054943772146050866030985113718701937588305300698936696435227684757718931939010903940326100577103447383372173327184336759789681606357272705586257775842703786593361444811169798569621614481728074125387618583388855730904865730339824145639355878495183631995135172170274531062860497431680572481724638547014550338429319509579790629913484562077921706240631200183264081866864333323924567381828119353550014159913515454819333376154782027197242566828031349879528291744273606508293315961568621957085937084848054141701749153429410722602649122633246822076738808375608416614059991532213115765003258534030219366799569775202078014158044353487962427645441165867669920067692043512334063370489448120346091493281136232996092912869934665302992796688799964808830825741649903564734333176616632889168605804105766754157999671221613753666686346945527162623780051702240432856221104193049348708749855762553663847717166334109755318280315122853095313445186910063899394842429132422265420081738293621587126088969375558488332864513277455824726828188519728512536470627934642116870880057606123088286707900515438770966386167527606457833760709374124076982857707489671962644045169490448787702071394346496292997010320951238493480468571785465085563143352676606917313985908447386384289847417034399865263621644690226538191089973355706690222151436544938732206553722738952905189902762228476658273931145393245323104134477175964154762189205953388830013410862337883832568746860943942017511032637479853499638863952734829847198539867177535480107186468265218008161002528268914063169619392098105347206607920554177226361558569658745889208191250034375633680739074079295652910870998516200888494037730209938305202331790645443732230965837794281007063471279851778435672295522297197930163839312951978850447239463814455383497415508457352759221049702515001524430246245462774749155368784015941461973197886714969820552754525992508246641417720840320110030832459599281019498117815538567157030498021896145430100091667906145627544802046805625989306172453977400028445936562371477076818449354406163850606506252107107444725910561358051240498650852597023334017778604932960344798387729669109788044320712820155202581094125197179899792867318782961997286533486780539276020958604548776648212925433667554247249007920978439192418428279068866827741647622944949243515923410978787643442908273568466773700094725080225593676143803487908161840502231941763540947430806584098747927586090513338247160901755044554108299622648337775171927324445291226518267612145135200053454797214884454183961872827736871966702954653731786782722584344605766602736292132480582075486461140514266971403805690298783995000868810444251233637546983943686068187651028668230514078278796788567469698093594449848280186592578949793039948741820087842617682297145665292363513894881739511346103852074698329323225444584404385263237532740730912281206462966940818567692404857599360690350249790707154058980730258934835504867609308878318219902619037803248355426188651025278236956508295513968312607624131497752555454166329792490335613643429344123362049939093851346945995355562193206788643578533628102745142653811555492924203840419791250565915856128049632825721364658035544986766348844529151901497725267338791603249443866774788385516101170682941305161425699858909680866024643716987072796047190856838859040981895156626021110430654860877851194011666264538080981745609683555443498505187796371516700002041252431613945860906374744805451869663983006409056750979402646228874845814000111275536280753001543680569310933467110428190579946344774651586022057637031375678794760227003429165575111018779827378377951212818869910638718296389290466938623328620367258357549169893104072461243738328007224888164065955288953722494820922785054204572875682059935277418873827611196269744068300312230225962665620141266202676490337886810377869397252356736899799782416200413000559110056800644687710431933363751510399723764318374890130669067964519456204733255716099353563516145904115340184948512800996410236443236705376838579339849735736957954044518940018788556250324668760174598454764755609397953162651162653503976955419051565669878180591024827544158147619331197305087298323718824809244470206783484594765411301003164961234779204061446142204231617094438024262343901845486182271967723708501492776137475758840638857634350165531948453241865648457445270922987790527745258668705530662429797647039235105802223182826167822306295832973631783543060980559408058623349133828027063141070801235766740066811667763386641092794625054584826140686282319959177084459744879163138696767654878735916114082998460972578462475758201047659344662319832381361605805327059023570862780061356492031560668005980827730850186914510105928369862037773881228401026617717330275420390478800139932385664844134101128617075184153247073145116147050402368473759920017023130927794952597687641144186547452758317405105038011951604347124174110655177938609585129232921134318837910418921189741020177897212239860119830485722593103402626068886694192049622376572845706185994709076195776770590203605608731473304628388547668052667959491443629822838661060682318321896200283788166538024558609372581766588063720424477651483857432574570727686716954322014900485757877506572945232968981637506473745087522241994895280413004503254580431751399612954467692911634113138631126858090945927774977604466074529767585161096473825113540240136856740562787024490959267407894407166939094117244329751478870912900944306432061316957185390515625054214558277082284140606012889921100003498495730112321834445592494205229913696464201637571954189892409029123172911206731627677521133990846794678572169879717233348229573642347712342395285791862815732958766732229901715543150196596271853525655788191477175178793993455594143466004861047838363531952881813145304198009324535871436810639974520323429499661880649018500821599766523961703865519940775971136322613879764971404265659620706760081173452081900427542807180270517949756211301619283117262945240113926635172104890571132463487258641257789646226702655849824217035965206891253861174466492111641754990094742821678634131912921551020099813240701859276667274794359553547663054735373232034567038536216327090702814235494219862765544501687667746778684378611873331193761260844509690718519496222483381935063952629184251100983641891691959371704162201010518704111459309250797137442798524718751042295801862667644142543296447984893648724792628558113044439883189060531376542661852237291959064424004971500117284477897663094093328951048819142459343119420433083410059094488990779465331284007488335120470637835325501663590389249978955607921526934564551797332736231141934507984924705383041807003420976630480349965076992766828529617139291517811518755359327642131519035088323901703700563156598888337316333665308355766364911246821764843951157582015933048409003887007420871292621285092986620902190300980683520701997144783580662088139561374034340613079022873264848567316683505535961168554535915441004165014647402770677815099497586957291909568402887815890822089048913152757786742097749929795756005618229082526712534131191773336667767784223846269131043514662122021703094526877514020139264205157932100589307082580313628588629864843217813270342522166817106814289135509354036030342244122113159253349521484333176258850408318857920687373451150456821343012877453107507955854480472184895360200589588020279038558654339631217562125108871087475707732688809874299150554014894237969384954954126866118784867509535310796255112678643207834827467566063810923324103142724254700078997048861738796542178952002821267048977469576452523311968894651750557226554784538430253744343541321533587648511849106059921601191751846019654151266400026492772132409239270998132577829133634571344838734945010778537790202531167909335537352969639390581369216788073487700176097990417591957964070683636198915644061480439619712300302680845010991151009348813462332776914066766347328883418265202309498115551516832436862404454439999545309167216103913696214096743743803242814196194013108400808606722835201704712429764338960421401953573762963313554357159385185430454820102893490625745602003178300009815985569294249699838714248238835617997522634446169700867691716249752702514294620963666487412625884057536317133718299007982940885530705608800428535223538271037583673270629407069774911387222595354660223656888967814356905616193693955693731831434411740171958555785174124804482556357897268121824050786908444484324984994956519373087631419587781557337946816059525705948322727664106065078793003284210190455737358456307297299770556791460734299427069364069830696798235260904485575243674427399614770912822461532767766609820022463694821454925828392784599063379601219033206623497106767435923034818838271924041117285915427401465363209869651277305592804620249856477919983686950758602728019852538616064818639370929479709173858080669645033627721732314729654539398460473295123534680970795996714035372452740088995220054130107098312598778287192342168982792522967675067087520647059253652393544606285251738707355991717412462850218209492406726854841857440990854588124738456537572529423516281789158578072102098992207844024669286098687772893027966704151285022492529779495214308718708580822452876627768002675967797463257665106738823442127680553108280230973780786466959853167283867177258413380275448886522527799272255869147699612054014545616112107592600535065799444160367911847169597534132263130219758301926615977683594078419615264793716497464475031423278888506960837232841452567787246463116055348198473709870562478460023770950508838113828268805581804375903461487530619799151158295121333388379940496833558851884400994185912145126415508344674855324207968609942989266071739856506104085522692011520830028777897778330443851293938593816112133506832040403341474967436727788539044022189670618183020185626140139199491728870053137529603856195109269028373095147579373112668409702275579574360990374263478970845446469208376924034660459111932068150705071319862437801357716138826921235456245301695650261073271222382426231042956702633714199332170202371165316494232844294723506419197172394925002545928566791899580404751087131530838436971596499671705324025547167851284124892470718832009252361162782429467477736781474036170836157649583609387362138634342575984838814366655568127457009469409223155082440723860002270344265377410334330476947131831643227547059947833108063043239855375674370207782796955903114433250258310389402012397222584668781766670162501352336022495339996729544120098871215078768303426090949569977309670938178810212907283450433118594911006342229052147895357320404770203038174458865819498822076612622700088248471805823631918463334268856423305848582451706411323335679743277766878844707034631422059073225589673496755387105510188381951940460983652070189242069950172831388494262330555129061030854451804393710489670140310825417596882891944389332387544890075754751818567334921492785356705838999635058731118290115902383854580692302524827619302552756879734125036794653352067696745367131227948874902203748424013100931406090742385923345542750123341109128172857484530405456660695202354747666119259456072824496232535045033818163765297563042789832742188000380638396813419274455114219383718845908612326423751096696884367938752257626034462705493417404741155814248531568214313155628396753600985717769060467470218056717825646665003100651233821201483040681001527422133281211853348301640115721995174496238475361141633420251702135339304725921836999677083932200943837198687208762324864001973089992696567323131396144797311269663566464880893773252500330139290746075757838645594976423999968217229941642949370773116079032816741017147502662659682202446805603222072926788935178529056196085228097133889599495657272883436235712167772269262041276108742193969430212925964436655046472474371713914315985952776632566675090592553662911927481067854640493021992789659517579032229772901383626145544345033939094776910386671702765268009495105567568250721903129667593412999228490933439882969188128529612749636598298920029885622671765020906991498401326462459583340581888187696873239222487253168008110185833473667710569367621969238656378345808068968867879502071484852881376000657314775218746291188068066783429327463847553288891244370478452716878209304662340109146990814924109016019625375788435795027810400224035848062849057307312824390600413701428170502916766943504878387641113749622717863851188842544543792162281255573144879660318435276130860833048203403095773603719289920049100939457620414639180685050234945388589762992462978127599482897923802980401956256664957075232561348555948937745019154492552177128679650158261074597575485470850246745579865715221355356272852038136994151255927528206414999393544864770992311075966449002378076951966722446992098857509509199851809451703622862688912928760580619307312775090978586399069298976204073712183112639216940961135805094739351088635143254938443713055651401947470132320058686163242961355851509669815995660473707056408208123059181275595258753491039353558533529493086734009842954657912605842326515239348804381609771771783153944180259659625285171002589169785939904456914868478207539691026333868541778104186134903475945578346382001631161385388789954545216911771606555702989214922939142129836661064812814761422220959483418093572096433069617937748030867664175120042029459268030360197898090725291524308673118188431795205229129008834561927849031447124043683151426032813374256630673360163349773291560948899194766808250878849177929727102954583235028911093285069802602743338539746293748688152247854281475277282844480858780223764745745219414888434155828784601916364875264907038109353348800274083463928200623846331910520091808307616190877853991225579448332142110782222018823700734406794025178256749149865714022555889721418084702277633759637875573722896909141966666343281353866186325643955602606303227630105167027783534457879177377283140804697941144585535485808017186843344561777238268012132377323663768757065672196158881015877137257147479635106120417877949899528228080859327030131833971679192450309236603115955366814642148476198147113813601284460253232359365635392540309057626334137187481727447792079152256019460138214085211956885750596025490741922093728445258803824065766975620793748880231714554750706213018641170388558101140510083273468027025007066875929475560815171821921299661156473033792252003594055335261900588171748099757966337667542496470085032099848620314714478469224903380707409708976142933365671062136939498263186699882958315714065396150127495243872628711360763083729221738622591334555810056139681814899260942951957421410241526239878148046518486238519830972911697740371544961084026064983085550554554524850045792018331001613364222986470621782435120690803829088633518509960586629162456762257363037003096408803669716177065042726558753186507303897047400708946491436210448451378751482663054939178777645054349689834185574492894025953489279326124172802632227654798210037559215561497212034197925139440115660651208056303835944262946786919714314529127203897087483545073376459525165529794553387907540692031719370350063485815224162584052483717852691145782944566838649837039391222863899977222416006217209941782237530350705549728083180431489623340735013944566553379535413429414850146317302064052665017162172546978841074292344524969387381948124013344688886732484606251180419527427950317721518171585026922740488927755698651685924239243126358723223873870318164402258406968846030556807917638938300165800581793582985740413107468350010096919262976181765856578690825433192045129914755021040798405452101485024527126394724704838050082399535770287670251755481988939222114278411640850769856683305743613326502790529995586104682462332113042746167954990740773593075530140469360507958985467403854606961122357349962903630415459476007395024406998368175279171183536742358527624686161582993931842581747570686121852807617106545345144511141400860415657681737532700544924694617533193322178884373975470393399413894688231727606245827852387967680353028889551694464752067626816242600121539293346681686483223923906885854514848118708427216996038332357277087362629229862693313968919280153727864759058787608129238028048881312499356366725474754685413052462182550736231389898072846060705850128273974865894756136027730808596516257465223861751926298038165742758009840115212260387424885753848187891771134971134985097033694489092888682643427947753753693654801716616994262336526197752554123650929124907082833636167403154857207454315731570283838632567060034662426703179155656217118659991615111111070088980123841525493909481575389548134099641677363417371051732538710099020162313132318037138324770831571438599641218645565470430150871220086120337316943099667119702128992781233180524597217591277478696204183940577539081825757260442804160299541820275680666651442649834682706764796056477874429121900805493041049080144171020977807179601784362400294272455532433094896499924084760894650406475793284682925250462582741446785749515639666868860853703051812585324357716395212413063663625407901981471827803209842586031029243251974112651557619236658750392959009650191569734254509719801141369380071516023116629599864715897770200696541344953986782122581987129155700708853047770384749811592658067717900619730792846651143583962705830200778763547018730600784640937782383938349463919974673962959632105405454942814460256788137391083572913228395094596409795354260522901472683838971115010304644673094065058549791239929718824085044559530364473622969519771678276930915813057413521571924511699882772255282339197310806204326878868301473831161805202990623837274250339078052006063059876831147666239133954433440268821143768661169245322738845467121832201672935967646351108514820122374741771651253893372063205495096278238074153498027447831666335209501074371666994047438943383244456254876907482696937916670729404146508888613492303007378742046464025565046119534508787148059569732859796383200032194299430627463461381295130247870773639975155995901188048714145778535095722809771387997919051470077114381235302845462699411162614246567582716435803834209844675456133542195702568171175074115986720433080414840102696475338249828147726192915613507130178817992780415642025563295652333321873491302900491655226108277860871336516714060724087092845036158662748780294185468288954684676281502871393694218208697730452375178515980333348003731102665899637080608280832512050038454423330918310305079162231470288314447137087197806580372769351401869917001681826338299453272592671548474672001180697355625734890758769223897504912055782573567532967595429305602766634321074362405927322582086865528849723120496721332597401802195113278493643671891149144422684784149437100483350080572582696053043202183343878037040391636927517842573929452203037801689733492387248261208221317550758124816685075965321661506551302066690068838395076457346431974910072298217767855248050654116206635140878932815474426735635500249564935807377758182662805211518305584346903111027773639634369972825516340287674796632482898007247342223074204592830586254595530441099286621155220520620420755877222177892026704510077210870996981277283961540251725967620459168816574653896014293093834417967353121710016982862059916439865816972835143538941869665529112910730219456264126641221796572051343486089059653971325788611771027728124710891098209141861413643139565601160805469247217211336326809645070109188933640989090629351162484298020536144455987319389668370507539042563557756666127591475459117128951817448114874300479023603431291298220572445597159905933267675917021005458873429641177181047981706979405757541803752040331612647821387891198313140840059663325786023464774382289184979940828154621987793525691420811312380841904756168130491623246686137640508652023218439882798777019821645400124151812707824046041485495418239803791042753043217648056378369160791614620621937699553956797814072225648396898773283575594244664701448737495686650997225352656209125577035342105608489182046429510050752369003108464993491553023602501277298868981569222390020457337669716084552367352214103620902914541648636460937559836159476774135984078543471911321813632890767714206025531684865381695690211561051928151873731029786551334349736177738275199264669251154775815910590488651591529908039425990877533735689504364457699937714121199269643826826906332075411390731105914168567594555706788871934667754565754413124723439094055183072673780934464882951768487574507222672052450778282451565859691789350470550802138216261464993566416018946421420659073722623454807090869840574814398068985409289135934656464799754458500073073396968497600566050969857723931339088443858124178310470003833145159914938083512973395742864923514426077813332885215433654918008841272059681979274300903345671654975264191703815607711793439321967571510284309684406385293448954875028592092761882686159829798775874641378349103492383529382031955591338719305383146530291154400484981460331026801402312894411520057519047246242871716914472818874099605953476319201340233417368984903784457250252325370564198637018546864537922827524163079510438054252286133230929494014619955632145111941441890446286437130611961834739082796486350766259176043336174151484161066570364165156974764460026819954942241059205465384290056874036592941890245460170012050853322322281684410910859870103773862092696217075665047119636055962772487546413640172215329834222325843687158629031083284338806725547848568630824694012704500082040532037131010148558893673908573893584553427598226374042203005995074488074960908539233375915440092128250307661383150108937427649165739321902563437913276706818431149711001950668787045765256295508240415820395600807982369241099947305276402302926260148062601927698715272409817046340956070146773242081451854451435941641005845428964430188742669106916767163642168914228067229426476869356424145438852855632657809916094961049993333648647397829567392700927805964258592072414143980945033133017590839122676888831138888376962682184895567073542205635700065876262062063880651502970141965353699484763185121968661871413047233116578674830684666698980639661528889981836045707415933172685471825879608860246442021134108438661978175511070470758229639155927631976411784111267210137490009483956132506476375110910733479924889578437954439864092529902761670213696485949645026717148860958360712825849653613739344981872348747554402777994687646100219998934030421705008711272522221568351041692042450037111346751710786083524628948853354706695596551954471680748119600030412000946639625249459550544573028632590376525702098400250393610787065988298106547774117999611346844722225807660192394475934967053111745538527567046563364933009283585696539509731340710019335711344801310975560193258587158789885903849276160148663204794123841581308641911871381354963745487063988348171483217417157170315951013018080341336243241148074569697364329686989418110561179909979331724553030348799368500895419245297580026166708421912244307161054184627510319847130226911273907504510127467972627471622227400813214605471577588785217881485969206771679566366310461650061559012417984729061181076981165885578266796940018866673256859784199150068627761974454496283965407585858351550290609853408772186053832780970843671803531915983178339544178248812199408016420888063533198146736647172204063105812744242127039548789191982174801050290228792394427699658637906901105615073188287358471992411317133918769398774628941627320270888769189989101481290085607797805369823975074061798497785073047682708811075454802680007167465161190299131212236481053585890434471374419656913914019629021215151413361108258139899454720867064117153185774679029976998331534176230098565215851522134166242259527583389892732332237060278171205312758963558855719767249790772594950494996292642518621535251333041694354012506601764304119284019736765557946821676289525281464869905998476926035742026322859442782459481240932566772747099363396940590501621249093337196349704142781860641186583424847399756702657855620647380168151370813893706911353165582970449926574504582039840222814416953768710084030451678603802642733263400309886409816102383795719358573806351274825485380063841507364427129544485268936663908218666527149235223410122939271503269518399425882277243504760905174834121715672780391419412449042008255124681718236132647150242880115246449887466940422074100134283236334309450175105317553234731933516840659424915101893855134732298421874056980870773690159322916100993654982655663252237576939306144866940959882920116194025601605751733224558595741460539651499265873398211244044268450434351103539626857881024394922036722945869928768725880327821729960417129232724330403041911205907101684049914952221556943629089748097903050235635101680413740078696550727790992091919243320406967231322125633182382515053807705769037632240983670780924079952430211875376747983514256001533975227728602329084363640441516024597305370830952552831064777697067371968129873267257493188214470812128606670724900372958584913354194464181531848180393947744462534881506344372756787428780108298106178831639494515684851744679261517693158237811923683705777912274613273189042846507987739158572948560229837235652787155965693377127360793418769812436184794727129018033752685454342443176138597230345313351021692417418026598082797370073783553546272785690114518245069174499787007487574430263095814106262982182965355903692916375471080721268739845546413550036712682170329267961354579370509845763022911005072737791592344833407749838762468977353664563627631233979026586042438665067730532710111965616048449262643807257268442883264126831607630635300296188746834151511574258464897881315143268545689303890547202789405692131428542251886322369152531070541227187796331152156979394874829270458153766283165445068880892965317149854106561551636835739331265244957569594358665461885965240665023013582969051182789720144915946966135177669325533010203399304761939615675132412521785581252763197309243733014408851382003367146043172255122367391459990984486011188724186807998073089742557953943583095139287235124368217922698072363700211241420251356297222965664627013110135834265904262110994747172952725123885351511630725996811339871484616841087798154578100169935281512418272702162124198753495245252965569154501230013864478475116538627250775058001028843242619498306904940843950998228840565835083055379389565434784824720389396133615376280102232805177404046252424880944348598859589297534565114806092313727843224438559037409969739839170775090353598652126830548886504766328403715656770327212292411164643865568482805411020906663291033230635935391557444453282876816380953916841568939668840226421015444242080415732891263757386598619860178240263351795178468034227618738128173835977932264880852009912037679230072248964449497718270322034289346778254462097308362191120414843533243668682339675208457488115635766978109421100568542670006302408336732113887454774734736746211627846963184120894407672330771894565110067635917979846080566164866355008501381793850812887350173821032510797162698010843858166454617222229824623856659484172291060243418563891538107700981257658161351602491727103616460632543952096338567817506234387372725517403579058983919121841403385795720629013681483879273445410385880625597347690226311866590573376727265417832160627316689849436410890088535615633337707615890130830168576690411004690466153637074122120989925700642586485949344529992386793570216808514249969514655887179377606871405934119535339406177051132626184333605345555179056613654557203578254823974626633415444481812535863132342657798445978233444570626536043903565056863748891263236736611093555880675607648913351339569721256223987776591300008815910070722432055660332152992698382572454174597856166713002006534039951878725167497856804609166109980746909830043889789988981679713326750606036957913376829241836508232499542955094750546791121822367382790449753297355471804382284076204096012053940940634513469862079065334649578488103743492119739360678091377805823285812934441144369084351563106556265932876439683926435584711289902442953952874762221221230332999805979191558902484061865287190169587022757590465544665522932403113822166173342888151032255380492060066426386658078032034821902707179665584641867086432717436103434587521391065074790031925659902531198857653816676351835475133661602784668924762287010323593853228941562605840889528887399151461910184544516844996352795569443966282049709176111963440927587168992409911927495795821152131366184343480514911115905441790199237791215409991352661143411197447408846985854903553396188270619236635888137045890126441633114701897245353443116157013590090591634689096764903615188700443617342373716403049315764852655784816221768583743473707550818128029654562820355455079660855120381176167336972051271445339555612250890641019105649307350591038308774356356237068553158497394479301462110959707081097123903829423904261627163775802945927793536647603682189163428622038504756284993261523954219690240904648211156225681041527361879409933664724483582909476098013029799699927038953486743393332610927124585042713749579593609877777035944000007081349065025198965914192620050950747179258492776574093168955205074771584164741983546103964433379060912504848777336040377890196503533562390302800673657784785320878037184889917367626817783405921011224459317579831077105219455185121555401796524306271883995613157771926051538348938029364414303101291281920103699496218922768273959667740709536150667983799575991002333575051043617343178676022746977259585118455508081956910391012947609702704249334591808578961202582251533898178992629184389658552172879271277709695805677920927391819263590617008675391141352223460297575684305163332679696843740627770048505553369152694413435190445212128996386998771377208811442133427959881538911538993055373999203140435182558255529306698243336530959612857032464746616652426980061510079172777960996894976402807252680714678578046635234355366286660582465424042824006918794353498693189038940446586606588927700940853518438613326249276954998986347610528219255500918323170558615334132283542922959626225335996716418930099253238690734934019201242658754263258748593773957705371903041501204788255282357656159537130889004348323197863682977034865204040909673896265280820566833496737658881286371236660707006082186678841228934040463015588725881680611976741332651108182323625692256679805680355410109265023506200063911534911307590130810089942151204284268531285772271437808462356086156458155621648778798853427706467463681938169772414693070562413022952650978247933123752646435540600849500820041454937582768574027176827397797417321869083873625286699835797448439028636883409504536900854639457852264618860584717475305670556207771191080817714194493740936039794967843685252243033232504528157497734788145584757757001784378815487027030700304393035314527550408213486578669194001665316345396335979781883868411085668979934568126506944789752753235290794226273801280292356122353118714344536347117835960222744177702750207514263334708887468845227697960568485976635284761753835057886082112700505875840656760727200577179329967173084383865851163377915022395549089493460545349103178009315395896167024991714172169546936798285983841500465821939959922406025363643906068236504975911301478988953332433260053874064863447675028176219690261490779019521164537291890377694868728469057689124465870644573269873798669497176195833179132154928485973246891624634110653955786641789135049349450720609410169269875243216611886850662210017685323543111429872054542307637425114152794483852918683700401614966219419446621817627628109817277022430601496218931759076008146818325493277068126744007741351220627242603233706581255672171502314457212573323964794391838121669009201061102673842536619342134832854507541188642978599384897236133449761935712985841167294783432860569277369277368480285223206201457481100707382047613072201096885242347161688936940168763742298633010035495494699963744279890391612414530017609338505560821315183315388765304339984576769094027278496480760268569272906768006175453573021154819413676453652767363917448194920052246989949006276764770136889368576096798566951643510248645494724115338183993953697876395863920392557233588121521747542379443879627663627477949981202172751704357522418598136919396111476369269345680381766868389715296255385374777436415343879349018613411953676325185711328652527814286030947464522565742318080787613088481469869929258841987788557589722181231054747103590166723771212140517395521721379611581295987651382303529020141970347559245313003328907291706983564845494205235387858302868875536331832598089635844570160793910495896817532661677838613397815408759950172108278153292756493150035828955629217465214040924542812064481641113870756817202902816634741548892606765082691030652619628225504176483397240851763476934592622195297591923137984772624491455159796129497163907351752929027844861273153671519476643082597414119950891139149874535968174151906705873791052697059595520346703290358685781060731407637342935814954650913086649425870549008608975168530506091274035336405575745384872980931129267112930730632366078989584271048837003444121380857518660008786158255628911244803030223503204184380210636372637947790369036490061203050890404003490866412218395446320412199919666891565345236517848109100521550587720227785997936642406728246175381131256609240631666500453025765709462186359803175075274199869287334974358028329882720202716994752081432366845144722738307189493888279441642500447315129114275980868944902955089960922597235118788159495007169129848170829035843567731601486927498782425978910875233827284098841997583986695507690523700356811048380197016267340422133559810240039365909778893342522737142792111169878530655403813829193567790047565419177698444233274975527345113480344698222114249253582801203105181972310054142482122300768373530224866083511936871146475250766300629948952013004897372833073519800754509730779382207048326530228932900363836382696875297347468631710694355565783279625974330764418391317339383577283477810920083752640963607172618149326381046043951024038814669667487924836072879951861440833036082943708783307344618092115447048882214318636113511448474300136643833519617976489732869101014136660260278036398892193388430715743282999139151312789550262674853816776618531887046021040428811255119247403866328711926537884392424070730929799826676068831390237620013075943747729577639815146260447854492559013255303582288666480593657037676108844005096183961839530610338707475607775888358260472472773528881800621078266575625057537469956118827390126608345455776833880833020613023941472023367624569840670746015233054165887823553781450626632533369974633148801336877811977544236088340453075648200925232897974359527465590448277826711741602271641946688314018449323368473142935199313343199237657107072798257847967697553551637981253594109295926501783406395948090899073879552894215740563403768367447548466185209901398042879137497810177314836004370120971488219589787952683025989732332300352455832357865326235191992812106921170301437936124361296382152336662832531308262041446749443515624400978504950160675377214892439069688534393470388678029982970020166652430256730302750078792570214885847777038011238177465901015191034026410069920302421687895896637117012406787522520301569082706549708549394727546979232478131181574599601408496270209430658784822832121899015929444003161378422212844321340824512703809343459939470389275238459353152576281157707589177882925379686085145117390896387834359411716742766679361660309913464679837206073469159068786189584208841482170540146535060944785282295742857055602010679988860652521918092326052908669670055287650278602552320955486740333851694609866254527956743961470610888082778241850314403662848584468980734462006900109896041489382292391092891272829277245281699382930909266483117375457235574896581391029160683364601634454129686338620734698623428392938151857970599951098551782479603968946161492476935990033306427166931456176416138088043417574805754184212261665710238796751147168630574686450300796786764252058285433320359238711755356852457050877346897659673236787780711440141542706430586300908287071700429749631627931589327804076371792362406184734766846098337907600434570360409093822737655396608508208885299192343224245855459846801596173859383536625071706262717026262010250895168571973942731071291592840800285079424070052733144571048628338000060247716770223772242858662473418838887801121310796390255954608556117823202202165929223021564139324390417091555548112365271591045328097272637481816184002322010494675469772301552730383053813439072096486131739872505696542919336866150720626537389655465657191277229609512038142588884857928227926132579929862795603948693328864538747186474751882366186908723546550706194225354579829653930606140552424869485636728708213856014674382141975486591936178155902123158586886753903610234824354351319538183051944619977103698282742938585997377353870922909759341320921562400700977113439367131809982190301507397474475429797766692695854515872086858252234060826453095396591630868138451503584083365991357001670935067980238210898808887854631487879296469179974864959316486577769307792263922823358802343769841242502414662969519064557747265111471577706315883233860302404403204972881730721734482504743926183493115958424621434327040374290653838471632033202520829969198644752477507690854035640009311626716045138872754857436368740963220221698716088415356754541165917679876710211936155551504940478033254223610403133749772368941052440882264857470367929913009005222719443974773319940013629393586408344203722263719101569976927347673559679676050619116270881629938101289225817704185508614553187564224214095151384186926003465310558341979251775094136186505099096712671539634666437981389935809955275703152979828165235180503119696725952702925889841345220091213041640139347021134718324210460647276108769459290420398572143997169105944131863866710951868918042862202409089053393309880745650670007839727751290596386812706601837687235736442157460235781064867165410373824860015964457280066383740284418753147399770519993951650976326692712735793902153645091290174816642698277261658554974983415885362290417615599465036394601999081598902801366042627449764780223512787327151947009069021369042192933913048443458779670446631278273993612982187471234855502045817817334009223471166616016785207218856538332241317206336422113747569266065483912814147993880041384137594680027532492102183214079415105558178957856203459963030706532872780996906643726491556824404679690323665618203910781843871693318850161051081579792804405585177616227649764246851127704563122695445891609928686181670890132884030309772905637757776613034395229424244815198495513032167885030062656712376267353698755297038007679261102449666554145169238051705994319070109408815481008165601617000460489198031624293324635812228378769611977928260031707593883020025095225954858659208286304857289190470406364661495623590179043103397779114909575889015804809782871788442181259519736771723127107032977876994364745476805515127283515696889584681609533663496190074176027078355407221530364365126903728682773204131550095721388202825660999818563456161008069093512164143387023354537474011869769750267999657442576464698589848696876207669154407812796128882946340913646552545948740891031651730889834038543884143647238741230808215144397051438678593586252199191494264319477960482357848520934379127647357721264800779134700579263436431067650219133980181244873879246148988498617560639319809840507489015294468441011082287568586570104967267238295183578398820355229943007588515530388333370489444035143811587398129462496139508634363141625446792248291978313838703723982082744851979177636672616544602339472538363538401055179637278520519146181777644142372717625323071515230563864256958700494935739706254756769709018212984483535612771348500401574927353023727329992870748488826693961965799615491502279303396349761788473250919121672378665796728723901095844350625787573045093017687442090880247413783923821595509006901575702530644606943574272091708873583354040578170296851704602778290040061715709990197922763282191961242188661430607814002058156507647042571528225309135809330833910829148182468077750143256134709547176357900790032310559594319755718501101638253622389906981286817519610212726100905176118227298188913065977072434859410756529860937515286546026181670535100806498098149500856990499892385825173678063518994436023926578305521324012740472773729871294545771985646966386286556476460855832536817208768607990832453689616863195943407785899904102952017070775490784025338227730347558596011198110344349003986252216587140268526798329431361139339601321500151408076930144367671959602763461190611538328289978017822085943411653463622025834283940559212331568311330641829961887580048926211164524476473057077374654115778489422419320040925356467732694772194184425937495196340541142437044032499322131057525593282143518920338038994490513823371522491429260296760359376511967755997275922413279595723781247743501958907822259731582417151222747115472698182374651250425260309948343833801866503552830023132791277299868144857369544143846935220018654925216640512612071287538637616404588495123445975404220457960178462318733280351959967932493450192511125200400714449599274721424047602028821538127424494226814041221366340812710351170370062745973616486653260615586916442768131837394972168201143147638212523158054270053013336442775414197539820494303620541967274369845595664203997722943594176869432752740207999303069076894843966380706418209121865098322098772194449181899694518828133104017983242341904108271384212518805155234100096509744973158178744723803232583737092779870599411739277472934719736548894712612795006360101095830892735683747983010871637588751677499040485043127224787505661791519742727761714279184238949491412143324818639924429755557648150365519285286866743640679054131760350014864476915752048592940777561723529831075661172830247854295251339511659287843858821172229290515041428280161840526432663673647998805515086609127774307309026704957866039593439085794205915008460132578002645255900682949098551437924639057512126268149239758422602369760286607678319578092734253686917259956034846635209752567307785085421878398488319396735892131593768730202236618283339551389575139370890334695089851722438488901651629784108659656808501477883826287719784435773343032197293425252128326879744884407513757572811402435945276440836193229639027062439234574906088236705950812974468412902947431121684996700915114443296439745814496015235937202486817060728151794328599418456224111064002957461224230400258210119867098116071127887121249366165719299205137571353509316749337642512633246598410295319320495490282206568049359844569651788445215822935948933304525087497320068776280485477968255015988275108500940514519291809246807194293331044852166131724813963448068550999231126742218167973130637463547765740283948615037412915218369922677045846417845170889032122711786871898526452093020255530695562663238122619087362392174116932073308689156631492394647256658098360238378136596790625944931482112344679490968017738670450500670447221200902961289979272021683299022256748016377184156762380870513072092457375715356189164484512999157615026089902054975565648063755022135621918170061457585828710991722782037426832670539338640137699628182230633402924668998936652235609071831400455888066596939446560288624606710801995098127336935806731314198499809393271694362302704193078889017469326943224625398374473575138674238135269761251898541149998315082613479750392402212054105759164565995402628827156196640849025453297844057955654876373956483174370716899378903374018832894863906990070766631276252662145367227255561147659117273417732105558888166343761949160050942686507908063389296549273442988162179829525483621015540790609267284609101865258518452289474796656810263339207979178226187979502850610836672355647315145576242111093079450159972256946834542858530567535668517910370102895535630391017197036536566352578314250353708111002790386055214214767040257569347329435013552333283972406159266872125899002911917593111321643145936707892762947474961410608851713440045520835997444276390162033696686271484919531013326071804111553542206732771958603417015205351369346652622209889769937695157416511137914050151820799800448810967275888728234005004240690931837625334954277044152671472483024399570399152504895547182479199914833018389936928476089678717136225329928749058086182649420007215473293531118781419327671787731950492058316100559863437033801836638575437875607376505786674617197158187162678551126525488087694951909268804212867726452318645154277688997252701103106623223368261629314845307656122222352702750357872177461427704229450943200087898095000429641988533711021569993922346878119383837215679858904176439283432509900818765051294046954485273985740395695424437028621548198363805228113667106129892300146617042264139512806349227275968382057578088151114253373518628639749583967737239590112847946631324394033203907756070643685243057187244061183886321950453548607858070795148518550625859157446359204953000662134475885046195142555604106431469014326858403083922806565764428377383792948428538356182633123667703931037446498510353138939969699130896397899604121785077298610334841061427795559787455581825947863422549705480587522223419157950756648101776821474914007698280434013041214011587367611288466186768570298829694341721160224287614497145971600493610496027959007846132839187293742521321220089803678027332990906031198135416658357655231970777529542001269578234492797708013145554382522537184376444440053017754915922881195419985817791505875324426720337090407901220014863574030316239220353552530828546953166780975999928432822691526533659594047082807321998355395458681823645244290561529085479303061277798190165294681580220566896532366769628958068658216946259446510405355289616713564872208970926925784048885673377047066688989426486782739237149187355631511337969306474040188328959828568581341804075767923162619008194515724978881942715509233689004004005088262224718071328676974716176866783452527486879961879431882544041053727661788140468013995945588876099435122602517717985411428709496928780219821143040692512910713761872631107582642530971750599166552410012755446653461422376486908866349617035068123724164539344105334097436328426060481296188601461422742120999040787813314883380561658829337634110469443772389948696250165969319753678152318754110141203650867346754847136296625755511232287795306686183625080964955622497764475039165080095284813075601784290536552213087616622505175419527763343925380299713334215651665506449639951821122800595809298027377639127834109205292689532047401326426140852861229236479761988456323461191188881942074351799995389700132013412046952029389540536718700576146488124251079800978075799884954944196601164236390525944919057922472138126331988986696797663121570064539093633430371721863155937437591467266623311319861399442280735929924886895897824648796771620523297229503077792984644987931206661765967359087556407885892304370374360092192713306063597556589452948110501833042218567813051037565396645551274745588937495699131180574661737519362624821552637453831612919154561065707866056041951096793547128534009726274741343639646339735825236254201387902999819552261835273729834997035670051424840136736713069388417663594784043211660262826252692064684353811316424683794654283840594754877280780378818426130157958561518506596127480040249757343127545739357297823611804274516414087662422360445450669416765437046375695880858797783024365602222106913849364111538888852518565797080754474095886213008071367251366719219859784492610659814191695032989249790259789810206821863749289926055552327143028594864519981187181994120137525134478339895197792637082969738243517282629790934080052288462815381252545199779127223271782447023074350358769351332521563481535743912377887667015166947745360016081530096970995823379232998528662596224527232979885656167068814113718330697856641426506485077105013250851773650994409667140633711122174549097194373341259521536380548086236976879860018952483248168228061966090940657879300577583068966354931140583149340008322468609556327212811289804600389809553874555624427113465250505330357950402738496439387833887308662876572115263290042245566115314464837478375480505953719644781064445830705451532265066457932809334220443727521567599117040634752256877434182961991116605136305921838808224095121261160885569769001173498112206856123593782597730892436418216513670772707882319518989353907382476286087660340746518026063634083712345367200751536502806543026843475211693408538803449599997328894943837735209752677478356554731171465307646530951168480321328308803122072515305629437690334559651304413633180018335597477893565001937544502653807295042422165985748867404864629715687971996518850859443878551919049030201265510588683357869286487749872484202013153318624421338451143869256987909822242838809291219022005001235535943892840922576130392126304407636574788056007642495889820154988471983539791427509106578364471519063698405350346242840602546627060172856604919698891146716932858516610371261802302556590170955130997648946141609126658765170818922596000145595141067426509424884099779496739981124583117409517381017616145370045602284592837603169008031444514313044267174233360578932603254883619044484447029424422173813234422875645091987445849209510593772896015634466952449062235074697848436243334317631884029942824656132768661797108947100306518699487611009261738182491239474540362593327557639889171185424861900643348406579766356199621491170537610178589841761901407095120175964433884161610172485629281140732595484150678879284725589888380813693528659547297784953068293910507532490893922671415556600560501247665942286709773831339555795220807249286275918480762256609049112909970807458004945904790832626587895784385891015595781130315196902056046257021880801877737879239103430936089674431083419945581535110662220178741036404928670642249046509237232567245337741755060030426530664152858676162454886604580022258549133711781563750489546731638473221064936759962467015872436209722322217285045892651970207494873170627532457241070316239743113233345528306534752566904326460668675699297826804519877659824715581458116480395144316129241983414922865081251841602502917328415945178374564807808636353596195374218291173727752223883565308551588733099148682288858542779170196035824559906463302879287611169136025503098150915691889130666991393761128126479946940822323926121437991203529254394993584436647125203462071009743760160819392212326179879701952158236631047426759903040733024995309551544230687957163710649033572795298485165219491897453498831026815201967478557824837122827456937008997651206371668753298284451587123703806974372055716836932067265046882237669899926197105131567665908328540015371321206244747725320950688051145413190280631212431803017249546616070476091831665095509730068797743554891299252212889816419260639918965028760854355038769426328565665166008378471985888966515251079182207930590088069191501111520672912669560972669024659519600087495274149543572581424638403912492793824553841424536882097465093826131330712040149866787259339796787582200383492747073268762275611825682051332840809445711279830068509161992478682163761686925072591788108352762962140249215389773615202306278945976353493190720805504036951944468856275486071586885105087219389267194231638816581624900897730175902573953300163079024575007967042980342839275833880090411338222877384324308175565065799624486111646199103179995203539495770751321722216477980688718121907506764360068838321532245584276987634648162539863036242164527118886420275141275390567336867884183388437081080356845545287139770571785587296722399915280560875276431778102336036911768358649190051093865797817804342555149378850545721953484189995204019834410602262356338425050906513490132526626935109488260329039260576404745588781754145371478517341153704471135156330606281372134432493833003949023991001557759051206814472823936705462931415143632022679888637672157926915605789061042232426103313932259103685255294360604936029823081012456230459007482001331004939882505695638592291042589052398764369420418218608009723482271520811534359144271863693603555749969275460881814275917696114679654247584559443421281478284627482150209976064831901089057576040928794734259765889459793311053598098150301483194160664432672064944971445321682346428609671255004634746752389129967534142628984554532158814142829398967439362161067928594272161704310769741097111330180310785108892480573275992842475498950146771652138455763244558929698493037096511938841454970714778398176666174339438157877307728067158414645619455744370268110314144960750567537267230986182389205318589658489017307109662944344018068309160286170577877049816655819595648338773607345539410553861475647080668687360756801892752348087151026309203824938188221239319866338200082669866063536305024858856649445164139400643594197434518731665288083913745956308068707262419683099406513089489431347799126136709730277592551869932335833174589670513847588454858636624745222866127364716069778627404216022332503128106665560448049183894525936209760792211450158642434546236621158739467446636733784690704162842994297314284443907577106513330343307363392883119325599250862227856824373773430208854110157673593620673715815672597816919485489964573648547966683334425265080525779499117524758771271119445443068215130414024485967274028930380453386605370614489304442483618316776643208106830756319176072598749770382269825817717907782945978370593101296418654478491880748334974026229072778763664647406109755342697874853170182505940065675405542552414387445996259174727558231233408394421487384112133603371031999994731042206665125203259542626224902764692498126565174706955465447626283240816907463518276984951166614063848538896181762773593608781086846291155276341711326704404948104117100052455691107309115965032500795417212276786669564986548333397305298965599035317753156143683475429265513134966964440121233526138026659253919634046536400003627882044083315495129488382332224211489135978854835318223376282591323604860533030899137149993935633468568524535413081148990174200701073224501143699143171533346202804834007163111347058145946975074457334216586202748520025327846498574233594137519496008907146458282061877076335756356801916638121104462591942159749363714162565811809009077059313655714485075239873052417092785453639099078265565740733875563237727099072252527465837542803924294117914415309206964858349999280416061743674588348819549327126754583579258830393356570657972051001752869958849882554020542918724748447413453931859347408708837735510072894245190268570997826372799124559422931567616723368562819259502867186536998581376179721568471613002055562383052826012983784290304792216630111327116131361105712283506434035566211682289293629710185136250157545879249469879980983453297600995634827000334354776405394028560450877171528396769338720422119561922728105563444856832765214383138283316030153483152990968266419624340031899085981013980222078158291209977789082507866890834729254150808331862749503418966407105545776503748021975480822465493623560386242081101217613983941778022062809983775124576510214455311244113072566191523162268508850788277494304243230734216270186641688601081499845512577056466617504151572441361764251168371171937334561651707077961887271157390442773571336233951262988832630129639412323441937552427212747042730445115827337128061697242801919631537449120067029257836900919296703479285360302870168749496717214562466024022857064055627439329663520837471257351712623473158749622341182818987225905579047464403155092054092045968671979308728064796846426967723452691096288620151434526737837434817218549219104775283007298433319699097994177054901655071027284016967189331327875675899700763183466181015736156573441302281301083704768918296177060130300171789017230490593369765376698483306746762006765650543269791049978351103409940427526218714974647174955351951682477613221298117758587932119703540540862807946190129665602683985583229091864557156191210949551459557064694675836579190024912332421840625989163939014727297639389900857032280138577462853757693343143581197371262954464672083571009350080788004622993184389511738068355503726613283754079739239663670216287990900127748356783542452588378050665351138780265533585627493266564506648878989813743331979927765971588298389489975163902319590758475662154113034417613485744663561826978763696820877631210334009827213403035988093826550105556433677816559018073990014175974246552786237498058151357279728013281131688019452571091612732600922400293346940939064059958731676198568052697417923242055107425083880148266281462764115563362632133173116273923815794685689098035579097616366655390833448273371017198535381846391812418748974215016484408082281514709526442535177568186749361690424116714960444755170724705467998682012517726395890191248920777769554300130536507061967999567176757638264708959639067607319914031626735306195086444805864895115069471405352462126294221809031839282932627899836598960821683754490547222148769280123597236741155029220082626903374935261445662113590019634831166327033774501716290146813547629431039834481519337815416217193701746965728977255339076957018692835504192660768417274235728428111290936103325197548885982644143435962647917728363590789494477178480319992095800046761412921256642044099362895904562113627991588774786103149541434492051855213571446859868506088351496538411955558656615830138650909569077760331676842258464645782337275593353418608528785843739336784966299542862705031061070134083992626392971053097893969955923387522644351601309309596062748918853046039524662712543243406034303395321493643126032210367567602735674198537865509399508835467370919723898739644940139768039906098345540980456182894972381694431233769965733144788992641218673021007139545800737740550111630604199678141936884606648885995451651627679230137085505449397350364145805954275612271004301668035456491883628056001111739194975994010124852222839478159384483616649527693101357455068447039689508451912426623315829346021486041382784308804225518543756191136454983036161533705659301698438387925958573718384244772077603284424174790839162185122020739244574262101419869876324758783619855699264355145632349169488008635608180817988920104369946597139357282409179015752521845850781140602907228361386859612776814330106071347782847910566410310912977855364087157573582447585989035667534606652496956593720281921635224106404357684553351422632958134979583410328602114454002717762869418683330149522293143737507537377207116286362707127741235746393226080385457403245105259550408363645205206681308500535602263913911210519365544979030898595106027294761324876802514647638326887771492547717705993556729865619598967227626180708518935419718429998766495232290342399672987506688781200455071207232936793264106232619478942258738136239908107900612925355956153262164595831251547447881913155988578511148649134642901511561077508532712865110888831597139953967247276752315585740960499863021010448393089816667689607934217024092435667896503237547066900077505760435895981468737767760833145375912626661074338479979618074289180201732759677136322373425496738915764355995879233277661573541381199087467184620672373680140165806666176213406219077259704791282618464250508907434767844930856012924681904415503960630730940285170112733699447151913021462908407217311759989643046776005054106502631253131860352000410658576892698598794600302723924667602459190759845092229136605224650096800516923007764440515892916856920146027180161040448981583970084552334055725195452028169049669544282735682949544449392703700493487491383371349165825773410629276267492314004345007696728376005794512817371607482424100570331662056608148869152875646356267009761511150158108774830789906631754669056843575260889236394444358821734090458474746580093619692598723828836885133172494551616903361803257953341843520784988634572038170169454232420318916113183656224800943059427036711570522404519654048396907016203078867312076654873231218146793289308590309044565305882178741872870376483503407983727338429373400067452136190689785777116326263424309535639116409487661775069793471592603269643028345358582454645603284951727178356889357923884894661545596563410539587678378174663422546710371608333116518841016983892076056483524234217785062233740725873623985811389076046784805567538634432176732616136907275769707328488626080239703968905601478943846281306185379047729132316780909506760246893632751170468249227454892140678669772668199051600169680237568840227881300798918868092571899246474980628709893603885801614226744680605589034164092094355879067529295025884652522395764418627167326263475752555214049540366379433555535091440862581450300141277345543835716275796504490901052982289331751811663821092693566139910160122454764441350600127522820940247602433245877951647072716132983785225181723296736687909930560849180023650240788464171391626342613775116759497858474399244501726361450308543550716038750972951542962803013088203756630882492671503738972704723084018052603483410288042813185842547375357861823905061177994812151361711655243936994715825957766606478343264697673045362565998024775410998518140035227639681573756135951683088855112346570197127167475461454708144526493238500174726636580095619292712429721258355394107378509749119979491741737396002993280239874899879334857724275912468032253894782976692674010525274883175721944021572813415772914627232168570082730768575478327153363825811837443092413630902717099037099508005772323029060121320381798826951495776644456117176465327159030313970408675900491781546326586686025991306909589831262853434486462596309961089136191337900071853910799717507095531386335124179802919733396649041805272849603268127347480839531742714010887749429611815380363789250225927090659596855535093627443293627947272545784148184708656270728221878286244113232757775326366598412812579780175957369414698607763007110965921578886738999022074558277041807802666356606166702357154646517519201944744637678713546147446656300404684543153771939184930483544305081013256102407396908836798569206170913709858038425654986737613725884224364808970678750843079498268622569097377937255750795346759458771891048101976357560179099623459474782558325541760180073006702699355652809070216075169390941788618118141791785647594578471195725119361357785035556731831032028005467734767316069294796271773306931451769953992190198762397359486305262242917083916737842724140140370458675484438365672531293121185123766866830341212210879928613543590650175666852833670220134364897766219701443306659125228930533219326814259036716149451038890754138207669224676795247233516916431297729916539844074503508572695433089249771322003809593944404932673245188303723432610750320545387062338132855781328097691051381328549394466928668930727785100173705357746596193046062704199764680067433529626624119912947639618669457791981698135474512576404602682455888771832071652346408588268481982195783648814787963554150033724180780533338940024646785564063953935882545947119141439389653268649030283178558546876803976804511218322336561029985712786559688724712173998794867316456631695108206024064399012780556409743327486532350213508730063525582508761798193945877568499961689413950220898714490207489563727377541145255789407626909730651725704895262611700974841933518716722429913811384006896537756953583408239553844105055835007775506309825377660424302683431979789179058233694273919588551831760008804993683643819058165173611372113076700599482780583752188978711976287901855999010501288632614038389475897266738276516824220393909687992871728715848525355760040198937271746405877352844192585209530102791453084888453396667391085518219640343301540820187465396254198188989454468990149069941161476647122635244369471955916693272469488192461907185542661416484203674248973960273355217560353831355969997496524570782745982605848800098854583928442890842685198305018571738244694103397198342041533508232565664202926332453217795562756444891929313354322328156197733314023975576111604474491849446993532040105053668615754912740049910827862412376142018726787814997130577346253494404092543610759200184474707738566165842982225611963749524245981278001811478778955654134406284007239398794414367403018089936871504119593315994528007765777575460464112060576212887227932068502309946801589116351921838722682586943624729262642677122228944831448558391682277728475449366642704400500788108973677109917100098431549429446372419579054766023436594324573782558489619173595228644090400457166765510198482921010974474516645449039869684184315039022728174728444512516828816831872925957042640973316265077651158964780095813670562465218074496685290506577756869823886689719485765454710828956142708304632361128841491052909358061400533885155100435110490963624385434372997387378992375797924878149352752973491570617005811766700484818192782821536384493928223780417645374473700924122030593862831611377810888326013372273683475633730641951306605169437188028507728363087020841547117407741095133301956694941407778825066891916378130138577754365893671500905967836263497262953003831540001359524615543301993920044289919633595292601853529260278941461067260910973145404361425302283910542587631219143176972321875531602857105465079234554764282269259737492265016531953413283697766786466107393968435629473421918986576789500346816258048933957028646135908212762993168744344181951227012918065348617306030118891064329787906646716479449831536731211083478784562081417215990517948150945627628342931105381150050012134318039751004621160858750664871970324630514748608154345518215428194238068039889201829666406424050959071978168896819628197662389436831781820434293460537566146057505915484134493926252104162965223941048871905414693465112565708705799577616398199441692833560309375336230600862030957713763720567621201272129296246724995312630350116786630084967950841988655225132347957983025382660280937298260159349951475456841197751371183402270800733593787094776745694148052834687001445303091581006425300296663306688881257097098873075210216877430715958373404355552010296494069556478893678057233670819504711937711185611807099487735891457171493694284003066079493243566644280072864331650826336960434045540199001915192452674977971112263256703806020541047489730432247749299168306538918227075910735378502783701224439327926605209532830902841709772787647209565295448770963588471985442632042219023552049173908932215172936001368789009475453101645850979516530158329573178134537191136376782068221180638351858479659193468605505808748610813046966744463319796614158852592611679586103260709271621543944440018540522632613611999654237022162717435373746380199176571539769256093345871186354541374257882309385393460305414987796975512835612219742564555912462616564166480446514682938561087745813450950030196398250611787662631188551936819183046329905317660723914999253066821381256461717707109939200791095956966934573623345132152187113556857547386733957043229204003784167853352204054786237520083726132156096035409747456935480376624754302877987951445353623481460097722731571102883314743532228876320819608584186401695530673156099799706893902247267393371384655365969890835117824315554974185594403538749388970761290993803370182828128714023724444580386198364652866232562120775512528851892995905583949157526884925120329060525209059793381080479598766377669004998417827851061342391658761215973524693356985697268217696061072193278566163823537103283176907972472615520242063275656023638805243640200000065913944449409098843009633612019088952890901680601596508876107823734455588670715597012577333587418292294314464568323154946390705211143859318010103717808093406263089118770413461712740874539111945733596460616846629809257774191351342204208173406544729313273601996980886122198343056109935538074283282190446062182343886863491500731257196641180876334110100185636290490733052563498464079484981613399905216255600313728908449919790293976297716547638754436515646020055578513017277700500448903578673664585718871283444905075740621260160572849283890408873086559473654000846488655247743297293862928034739520091491529607787191689438997054158878539925396142241174979389351100447089322619355742522111463365390703342072976698878515220547567389787303028338993940946356087555963944747605124064592148463957310187183729988433018884075463745068711520165438157784611447738950955285148350330783201299391168316068120428255474116869548225271784323072938764911968843141363831535077440716048951216929291638143534366927527173803163045415533105258278026519389073572086825143963905085267993483504530874358265221921171245933493180763870404788556383707022885955612136985346660275588520539968788928097905999320831465429251687030254195673236088892638827348123480494654645326035280392111344513948753658539636638174137610655683760633191936408041338355707249506125347930712069809679018395685113653043146588465721519820714297771631025047818456853726134601513445002771167729287913246782328157096825421799894951360738125563256210592948657268432308366140309906378350564861047543189303050388673416112868789382915256727948838390708123101301464729547208848732657838200241621293788351712041535747777888477040572433490434016605695802200008688816320725799156900462225289236683851118526366859971704871463715941386349618100103365630042523252006413720407094345968210315249103625265270723391239795500960869434293441418459262219655977618098986459744539385327607399759071584685009652468112285229288808378026953457114926524655129037822752532902933120406342161732771814682588031707890437634525209253079711167505889910118858842773378391505085664152324924451925026748272160637697190462265448322430050641219776240191251257472099072334366605681538177176584161174431485970256507254238824900561156636951171685268930898339282826062174205922621810581029209929872721072320125440121292616265012345695546674594383541661427237208610818924244899502384442949899025430712251395914641566056582419290172479275833630139066544110155490422285747745515434727344870430801283177808351395851177353995428829034923120096085918543393196107625597232295410405777366401515747482173236909570867606361077382627417864156076171154364603285574979315229091640214329294341733663431987486119571060440982063634687265009957681655382495272447541356468864438635029163306583672672125491742425171304401968989427554193499195770720989064192900938506267056575607874233074842884368767102781657146249083807812944680169162899451022887987826837245366569782786387416037493118599181953510906247053653352769503160100513447741311598373781003126032433704640510381823150865264065236284670170925116036172047980288686073528165382539844440208176542023496719839294461956936653561282193582922957201392911776293524084922307336944858800803203267647239811031968679591999878090015656768196040210940439839853999550387024412530501219491887042729656893764699926390770531234107193152159577448754720331774715270512084319562061969310288876107599254794157471182517639531690262413669593625703575052096936301225640343613886115680491399387147146638115823589069724909680785119649156464790495401216832152674414654448637218948754149697200335340558412455074532033632032496804071893013715667155828723975494451150846471506531983242899955592093862991852411036140915262222004057108647241357646825598205132418521342253205085054198028320171094452552898536103061162445860362644184183153711126076026472854302703440361677943188008522632859404992113172906850610453398762289708973581023734184054480793723496823192062388007231514636433566689077460450085706962243796010243768071741461005700367913764398104097898513726101306998643761563444492075031005419660963402896037626648279712270939596106737314639782897981381106803766814045389408570191709711859614440083707203739717739201358025214684584261125154058831156212699415318110521788074059276473667904348878116432481051100033554276184305682096613244465763336371639863629141874211993991833355075559961106809645718079358039816418546767285913002935023772712730657491585160318805512821672184053509302160103746406549078687645738395801590709085940772919760300726164948242350784535028167231171871025766808240894068961453814991633461700222376441096917409343370233832973366892709424881748854586433850666301503602296926591648100823419828848805636841813337127885639936568202484303906163970049251580214340198859482900560084173588754041904447941686587102532421547468653304400009771691761339004804876080821956134753477322886439308806262804027749251047445066709307706596329731960051505878668554418895214038973117645184139604993608723025613855178004640783849080770752544900637536049479081325742589683646475886516271362689367726938494148341980680796293047599747738017867369539187881440692817963595171571669550995341746995621677954522930143263144991690391291784381741880208324046560739041174905580262166116639826214084862290129660192007379917251335260644937175765487588672295600648839308367924814180193947021929948784278485799108652974463506516682209642762928168535304627506937443444563135265857114590365591770551879063921879019501612964062719424176967033402454193352134150721618575405838954275923422773783496865191220951125465059363304709649502314120113241373193026049790344559776007886854828314831551670671775800236948080607208292051164689231169140143620767077945782643467950747721072177290377957481947368816380216207437764786402070955445181335397980610498181353447114698026286295056622674126467392501049979318785176181690364438421697829436282199256301273578577932724709407414251279020332298604329894632044229495372627008316675985065159545764314783001507411020603306612750510886752093082719460871731863412903099966766848456364240233803925098919639920750038548337678897889030191497529570078706560449378512931007941757866595155798581773233008451599710273279728363199817992190061338873109183367371197478676135245097460838025702638180426167337734112339178757332655956390971278173599730317903387285912564468519312015498961652841943370730458323979421266172186522594863399135669658799113315889243957937787503694972158960687575303405643979403485626245641457032302344812231976766894045123425659120500082636882184849245583284632684695468545847883255231909377952914819913913370506246414337539124181739862144102316661896630736938304046165908992683683289855919487528987916059052424436781907510054950685560359882501034001105669942533547304150282097857174538322677580018392866795883585454741835984548670348925489749765313308460816037093121351556609767305547889378425768606590006117084277009733642828112617323623260277050000052641518881658351358727270780289367561344284227357516399375581454842377517613088149869973284302819271970239358840987202284250132244332386456580278062648668096725207105940495279203944347604381404469407660480240924794730624234668657803526846236750445414175790829928122926766234785387337226056147988897230497215016256254526099843183185589672608567149394100710932423245657959043332316278624373352235746835658363706955337236541846658291787238275096064549022731121010334972895147668639512635966006145970101528976845217183882087077234295030374579469506335164078083682247438263041685988587308234449177754132429175090469570923407416406845047464757703267549907152564252930909130867720009194971117779948309761069955413970898029424888973213451031591457845464717256927745836048484472709215973345876385593212977563188341612570388772271021245652355209380792763733727296769809554032669463764474555509959893127795302026411594025265383874801722352251758451680697689545631204084518911380039538609239902131508504531639248252346394863156917288637880469224810533949638593335500628226274162227468335296390784791843373654581474057610576650515224037850202043773574880934905734601482263700268843548498476886137747559301545337074700313826215022097564115733632506687580449663961995167622700986679448331215288640459767937011586835008291490349134196756549922771822155110283899854588796492481301824209753917298499781977613872793390027193021087256684143003209423604949702870141611062672683686685571660058451821079565884692444312737761531718934394810307443132648524465697565452665404961412279419309658713593515394538764337469306894087449376700987671093265880427261313152264937982026098870926772034059058641639478499100542230903728458149996409534905334610003419983645408518258777319912111425047034967476426284828690247374080705214715958697014397824895310801321842866079721071697757404957478951081743060535323152875640247321524779432750938278592011606671640432806964355139041853935427730270069335303575029558762216832288066141712416570490757404479380793900910082949405509530305076357675522098135555800354245028795037557749781977508769758574479119459119407233895017977974948986184837316341458658702372024946804367589062016023931822369735201439643436840068531869425772202694682961453902137426731799691524691715912467128838225162231388052819172552777642847914415985473375308463039563486047071868856634583401106079229935727583186732552383702398219318327074256695856701780280118480638516891373451977971520000802986840947267941258583230866392282702674411940696703515418453726231565125940069932419121901470929819007437423120023776263314269763272846399443111306689019722750366189162243259759462716476979457228342461975849165800466699311687323833599528338951205965804897375256494090917418594454005358798479403318190201328974727697781510058550908807439568208492749940928639770263435781126664746393566959534506594004175221384599687358440658101646606017255501870491618218354896185732612847061329572213631961370823397955058516594258158308038905610939936821309645817296730691426766481369554798196309710243424889401864085967901559840684543502474131741075196594432381240467297913597691791711620143937069716384169523763342889575719130623772126292899794451165469389758841546844109440062573274527249108250365560241998414997212041444438764520473642992520716983670946858809783737341897834416998820678808420533425096109249354536308865430166485513469218493865784054633227617531839411661217195129256999645856851243506977386887947152644290586285452877866429932201686911879516814933167737407864796107742248048524256900480596536765002952182373719554728169133651053045224731421205061134527045394711449678193366969677282954403759814008010984350695891796186267435343372583983739559071333166704945460613652481515194527824142970507057292485350811959447642818911923119194911235546751565712171693206469952313905358722199446383854714623004105794543730918584267072575839012734316526057744896416615103015895187237560198490780907190971310975721975608803538032780082721461192497680669962746520653579376963452360462777691323274575962563390509658540838781748451235973865973535930684139908292993346462493225298467804879998321285377542711294660169217316256449394933472729720104957293645053499280691152914612437808218436901428586337105059765264250908183236097101543746291956836923479113660205444460596596061465571067951307645040043568403436095677300398697011707155519795607076770226513393955209497898664794724781186928041535864681640938048268750913053425005978068858083624962772822089661407098522414672485986134806295259726887654821650584216781382067827275039200224158429705612715018294219057728873798326464568810509147275741560278510484217165711991640341392808766375475376032093105837529016765410795755871596086874261138934833811730238489731593172037180691868684677500156872022046998075802957558367480859733129184287840835334840073593431325479077961169479161012671030025148039689442601992783195145953189020750234512883991893724584482400780894410348939268458896521895071078725730478176165781981965179854353481315674729797903899141695764570648351599810024470130175270538572786114217333448880717114177610510572228731774515829767508341630263972448311015159476730230810679289934761590371299545088064247108580391793473341370723396004063438355623759891953754250431149882343580479633556524045517893400147798139146402034042129569689432695290104925778034344527158751681240752040568830737463354024333066566779410637093460427123650295575052613105224330546128521071036235706281366510581378727091390100706092606887542452384127692500876107225661948771374958545782544427654812549437446434235066149233877591613292711051378712178795390873531656230664158459165174821767465439782657102684986460905609290794521633363464848995478977589387600676007313160280672398683020616233545406135430861227915061906341637560979381326295703642752801367337508462452954896699868729384700567312611936066859714291626698258363875833571824227053906780937326805936303111282968772750984920433449441110412142116328264514856448084820134831304045593640731618488245154958909725957826350935255408330180788600538302682612720539636193775524237605688347664362574037074282015025156970643104299898959114342316686261412146160046708078094778562419478891720872587422113388395292209319722742034839786028326274697475489056791329970426506333787464626907819707669141154025028032785970285772440086848778385505900798811822512772750476449382603729093485541176362349358245603650900165405473788373020964683300629039886775961631246728488171581458450265086200938956055963211153074120242843261005054917539988905347186042066684097493735090086263330184687490710954377268271304650700675200558822878188859526734476324151257593932769515588937363545891039382538413416436920281064757474143168887020084523899339034493166090679271648219785595606225132154225178361967343238902968265831270913509364428266756272861434193878498431299812335547458281223590888749682369219557622791632067326002215421662343785651292321372275176748409717855133615509447395168613040931088641049082098535728962897480659226315521009319878789432186174793998314784393551010146273333897939508050143300375323305576481570610409929456472995935329429085480909323379541262212161278598792933148833762520761780927092633373816184353737816438442710041443366008523566035905960981948954435936778740996743591959487032236530230495289857427366766125140176312592420809059811064103482953892711846637358169314462325479326893275885846327006303832166670920046585744730763392548277580346123617474264668287117404622073358558618563875935264488905747458080293177987348937841391114258735263573972142310728037701984165070680257990058275091896170727773797935176944883650194352561674536872752558160605367454441624186623724671663633829975240478400987409439401252388874043205676637056078272214843073058526470672673842961911873223823926191360311715610719682457733314601004178571258128058437052895011507406358830142845562976241888153727432726370053526194770231662780511074105435637636548788573430894763638578895128305261682277618524697010745409919359141125704634119707861932587460159558960001858807099437142312953324542834050685677565307107021591401163371244354083369226780896856317261549716321658298921460539354929085945652864567835332044943783666238017620378739449672148480233675036835014137006947479519880883438738890000444172524973998586376634272722883722993100851767353064636630850884863442668218324162303276062099209174436669164242772966892377424539418334779044985242402202993144373953455331186708707019906580976555639095933731132837994561770514781716813472062012655330869490717184705805188536163916258956312012341087452368241714856489350515620564525221614566041040493572559117867782839361025777896743704888747557382794522382965779635594423059534874970695073401005433952287418079619835134432643533710387350245533119992555598147602614438370563034896903028479568978133001933377240051259078488456084771335229946112522017945241923657856537747816887280650373378169469783333567234045842642643399201023734960293340997659875357359489918862288011806601768558146941278648870464358291114390235860725297536663198843332414989557216851886267562786504222539190032532399788115272551194166110638761365174399446857948318660777433404947982120375155825526929508724639674916580355231532513374565266501553377477368304776510958944983160309209344306383088519261912907129277614531386460685052997887379677198216887047056503979170171630522562714318915004393785850685406082437730752117209310584106248750239979408037945713767195318635412917598856993349105223904547148266446618476951539684525850823687237405594013286490833473438154657143928495162505535149679983632981471390474244004394485250453823365108558955805765934083736777476756151218597605690579108534962553822322325504691820457248073863194629896973634626066420402750048851618631782325625281772069262942741891225215935465211221952785108629976439023647735219293175727139030114085685459958269643040066440019433065942620617135456259277147409802787177168881291077183107372237905599097142528352935630546337272457974122713302941008747987410657491432512308663732495214998595040921139628094731663605515159028108048460464792646686593277803182554675345581796580352638123267839094547906163056752340109490006185381843412399471585515455213215669697516428462573349363518609269639782116083280579086650779161972642041188238157179799877016195382699812686659430047057182851295532561748121506419642587354165876818596435846217624123624251949306397564236924044179982613197480954428328644954691793756427344459412436247379687435488698951272394799670622673853718360533526931323536580116984230731265791508721484717774949378905431629704434721925057182269609548196933760909510415727792504939125945883379707932084513903750368360237371843575806594578673927959862770826209653680594204652083667049980356373632066616710392889013092526807601257080320681458547314947942092885085441196756355044696535323799969405570442396718481609170595380329293253873210201333820098913735351553554587603444516427387456742154437219445236145567598427624853636349399551234861475758513197696769043566109342891456842285753484187740885144135463147998248836228000164441525963176860796615610680145566491139790345982526428083885626191333835518755591962722954577509342865177847262354834315003363364186552095651627258426195107896666493038807819253327448948807048691142925568833842071544859578980020128140414774069695855662586917329973335588834169490212781767956563044720722349522749530344412541244840577116828862340246216659504939727274733951413337846906279824105389634286375447579751453920437460349032167861728370909492918128479638709904601895293450665501040566524792451981571292940600179201133371642752093681034611156406630873380294798262322691984374899296800931219404869125269732269825833569265497896288516360807186657010631984592277732636939485208199209546184728683046674993930310699174820385199806949841028802923104855012690537467205078422919674854671128196613212136403220493469943805487836187369783876977661226363430343072930293351882284959374806139524988665146948477066014696616912392541014705982301997137260954199792517442350802907149625671713548103488773499915342802744137248394944623530596699348820723412124652999688110330224758018747262053156972993097827718986956591523029665177348190935329219996040071578937425337431178006232922468442972495731839492609790017988786220064395552274629269027227936283615375010286846809072172315978777322322154544743714219187676877481058876129762721999260918500085543571591408636600264443453766695000237520259598353975045119050622502988573311902415438012337179047303402987348036532225126196568186940441037046135471993728341868338766594971018639716808821456000367423552054461551367577266006060970231816681517120377532548351538814681637560421337889598088498856291481429995965133897577586086611733105037144671370721396565345396688982729410543838510857131611451944501699310527787838675941109139606992657247221109596479622799971915227228171277270370487180452799316398669228543830138843972483087367375923764357967187576404201008931998969364349098559527120120227580105600281117009716182658131105154331952719783916873762069463370792749368093250356715104963939392838562186456679100737133583346020774418482405761336681369187277777129037697839961350219981338736382033158927414502506162590998884593513394619396932428834841580193765649009920178568139251588671076415469586391835688348641238764027034424461949901917541878187399361226735490642248671040424651052893977174994771881914888810152321488826251838173877130102573980355614734118639301086356249991903346414740051549710081588482528662252243136194262484122119816445775659523672366564797417257901385129996252489645966782514006514644197765004630723442099647898355614023014901775683000006423807111702703514259209719015096687516058572950152889584825062185728926668724756796056154553857617265131105264492204525892152535286063144688585945965930999501009827096548389053370747290578532152921071438254148592442367892241702570203905416949070781935962986036766985479674760554743031055920996105010355443001710210708387769477505263623556320155934487631591787088096242818609979198075316167779248883315043741573638827906660172098313758345943423810026564094256498353654454846955774622925231229997942793451267020092311205677477000765818392044069866286487479996352713611738846643734799521285642325727785543779093435036307056349651102675660762505076002560024490784430270095343487436021610701776410424374632248712049356478214948034240432263002435971068761551218122212011407437252022310852206447784867516498362648757865316539300419193343711447554752432091896865307526039549039903887215988274566452748455192721030270754352716081227646304354087666057114127025052328530070749586729375483503371780943921293448234784466024162228544270027316649473011979512091370643922919302414354052654045749238877741843891080480006186685211318474207176604443206066872913630114667696993350215881264113339253405504939330803363488048607469502107335272742747460984961628435639154542155370529957006422454642778225124318876301870332961847540680955815489553307810866324200222081254291137212105618972763063390826536211746763540886136171945856689814650488143163462186671574153090737367091391891929317280013691532777557641314817938594135731853910828349487407645493148102203053483264139173578670673406478319611662637806691769667820981960540642987581752547847293167074066493283208446604147025808859775128940688357126571228086449070202108259939410023196770484223006760681382629357458941218869830702710152517050688721342809287859310551205309158687074351400611231108704547352690786573845284492312964355213694408545723467927120258966967112458904809894760740135900034080488248906494084358377743333857020761019157607329211875243209704885269219675312381763527023455415243670455402232410764213211693716351019325398800477885491774578152514894274903530251930606314198223464432633443715930515585356558969755550231608700236269546300496138377287770484903881907957198267408785227667464486388309146840932496252646427082102748734995894525385708581131011490931783670437404005770536205908401759969115276925858831535581208620224326591710891319011860068846974234711075248697509614322629334155529408194477469727318374868581146557683068042749905830997135003822599982875646700595170419274060370011344870380360823676985184884126380978362841021639435318466476535089188569803658573493339935682967036915409256722179413196802239502879522224209966015164289476253189294574758529821402604077478743746394221103120441846485952418738302089746586139950223257273731468605595169341069224573555979974163617969158804615100942841005678449164542266396920475076026372616129701818532651576426041014855759772744783095150353662724720519864287961175063635026203969838232883129649574661752071137158125282683758036031805012929193701807737712785791753701358322438234691986133520420545121921506243684397772596866251356412427303396685727672301540324024011875545235270335865953839506754150871811091601851442648511255984304377985873545675595309335691854918740623796843318953702761008598106200371334875535311693537540325120559647957539466346585146788361533199215619638629715046318028129248322637756092687359072271482099627725747640637443966787024203864485178428529804792807508257212257355539252283358088893450853390962304788497791953948802872135837276187876059033906462873612819498496171462987073607336929750852494874084616405027618098027455183275062864944528648323028629015291325205421365735856553674206459955501903130056030496700489511348943120425503613129002694716175615407331000568822923462811029299119358925952807236662020300138639542757613409283379322366298172440548127322950001077798502211241901475071073206105762253161011263037374129709311905026927308129878572517524496513362781042056825578057529774518486791824530253381002157960755886913760297592812247837129864997803363160746537512004073066372670118049722931450768903330089206131204721336470436091191316067033705947593026474430944419906658265225724618073468940570768519365948472297807409537907377688866721815454749158534519185487552394560326539028663883017614853403223837416055547777149374843633280994425580610943183121018776693114155996581105134816351612562220869495126334564113743489080642389772854890605499079006169863660689125525834770570305525342588632707982142409592948746216778169187675343971304622083485248152344501917248481269605816790673408799382364058913119244196808519138214384100689058000948486475928293702591259771432373964191344014601204420510164896591835351303622622563410110315651074781886649829477274023816245327576691546981394617883856917619744349328399827512682371364904495376286182541539628177373846429152379558732965650204387349197736147236211482835338252221133292247276885712845153609848960450469733068498124090886215478670847109520491248226766470847906702536268334001314777915738394709629138417300066370352632659588006393054929848541411871163046566171041303980638440826530429618548655566319924921474374877415822378750372367260145326054060971546563699774529496221604494952360047615208124061783267514478067907621335100275033596646543139018023771851085700889925877224394801176175785384197308924314079471385651295456134580395965475182182253462492635022978347234765166907950923737471008020229872071550090831631966115208718586518622746587233180108667726107341941342096518440704097646013256604719540869106326636716397350234448151721968078585610565593035267515786513853988499555519948304647471950768804962098655779806954630907291110839168502636764639683174135312597700563004664671662665456965302953826464078640270716149243138148739064742563424306670840235043845081748863302024852356803136253193658040366128941469062795628629957226846519323607753045954120195304458365148915975011523341840581144827716448668150745860396089997262900123900293873362637838243040596130525052795731839089434934458748962235108955003709781118849460785074053398897007136035178147802231940096061849287458130907711863024123198231214438647404125480895446410148268619379646603959484262797053560968509366036236590493391510983348698096260089269479428057517863852106502992474908092547249675394409460369347601480045184110836756180416549008291788977761134083949227890232890173663088841249572258394763169839197762755803255627953727703957743134906564618405913732569946147516697612810118738765060311175351956484749889616413146663597805724392442937051754677306511574513146826963345062763856503489833005984889994051886815742672139012232798571772677980695125737644040711750940313231645649510144474824328316090112998695390964509396412959518840794753519361749075156642752204757690825741988250793445742820988359509750200745658180697551684121904025762374496127993582837885843959498253209186876452530395471747076560007718994065708128805933313852021875879282024416312254066488845154555137773208326625036642205235114740968269376486552399048455434671009223666004407286991400114089802455215675068963442537234881931206990953644331924039642070311883909651043718453570020124208968784229231975085367396754348932018835879320492534573578110860974045755486007140523032167888477658652266191648245784422739080234593046009434072182429314611498787071653232744737116496975772245776005159936748972690778664588282201591666009668955574850720733477671002026145382543073506419891633088856449975274426908985784596200573080913075690539101739895111901529335869234304739044765815847757742053964390274941962846026358737044736676198612717957153531655520619626670381186066939518903143684985301187293078757949480519347393850208204534579873462821952302346670647275228122819181544477556321206653594845873917601778556023923737977151615720222536675454817307623630283852609770409064800677482590276818990913447410116220618037816323909913195818439657844645361559135264752456827683814650801649287844125768285279319986657576645942620564752448260827883627068388137317631888576644859868003336786649110942819327278851655334930961088436601039806559133537067961638486405386887870287685231767168814207120713175731771021704422103543476401513681467029172223067815258748771714719265767312485833719831441473593084415029405612477895979155424455508158713340954196333231948189534520033389620476310856367162813045859118755424844624249102039834659636316423545527981618141555411707399544896559972589686181849893068028345250408203216420499472794622365683968699385009742053071503813063078844104156261453255779632700426428145231559541180648564286661096231329096476379236753773060969225172129876033711828968338902607549706352258915428406291668604781867858295919375615962073385416764909005012118180373372445508406573117379215223693204061551730533339808904786291058285659228381417622737980164697044704645990782863953738207681822659753107238600436391365562258357126629763689491604840844200657835918716807337541996147244478630994033870167037164503741844617359403285396020590035602495864781547469092973864177922826659131646237327696744702664636261668603570091587918152946520070490839533865732680944940727569761328880648553410846767586823152010236125235791716131929437377801501840740695133579454359113287848300040631322578344250303224126345630414561013061462085161080282499683454552040015332562415230342620407420526045552541362598521803128798675241649651001874061373574953618816889451085432144258076559293975403756020874853491691851704373656427465014311903486940278387401920831290017576649147875118878348576228591934871275821944094629563989857860983580584809108835760751261904792905275584760818470902993274655727070210575864911656659089778285507011996070677330683594613094374245013930370415010150116244610845027233465524905370930116000288815631157821517081138380673088909031658364355293863188033347382089314333990565922901617021431870548027940319509236785191040736183451123057714653190778781029307239208493166127928699138573986178550454720899965143721432353562618651829209241884955637628852848728124625403634031861361904813719922766099118014802133948337141077138222484854371121703468640668428505577184430836951935136393350778276131362372703759872407533789890940515144055937490260891585960025467372581397936421075713562261504468309715553877590546417523210945322853951946522611637335017308829338544735784683955679696971301412257442414770748691119515840162625468461129009386274319864008616583044308704508274746078466520370357021233675177088316213405766060867851017529309911571473994555122138055434119212042493686434650856622548597010492112506683807057617299944734619145822021117705398639736601738110935184605099270079844629817640483601195639999857294444331203458710275161952127616927426595547785047257396933786955756857043039430112135191537032455774802648853705007279450151168384132013302138498767238311082550319841230755002803558730490423498533759079219067204949317060450259116581979875020055976909519853837675166775236452113134251847519183152760064465143854373419402678097714279414579238881857927607570821276265974820462289707731957076844851933528782180443502164782978034931077542650039981072129164911941940385436837369157198298345548370398664606004506434928286699900991588500927113298985580513351326619851635983843978666838059201536331422170190853564804812492953425508573270002011275229149783460642685534482241488236863455505106838803627963470508694763674455352316548067371601893739291468851607083266684567288948704236368837310930973603146734088638936159239024417982763391822632351433055128235177244567939949589693558106951526520285832340466917115170293952576312890412273270869220833092647890439282289534869352417715167453784069956116231855676190476817927450024747824350507138827471307781174588911889506007523795939505337493017215692818971871444396412534809330218694293541087485235668268494729948775911186009081996271962170180978496449443382338261130770706885836887694671263631215763182583082832748771981507132606189326580617763868435370435059552922914642307938883915180366293263060199941080719930494299689047696959055283890493060216346402880225390744188070916781640815235378643506375226006894103808631797766190894978290377315710799929969634681904020151349704677396049953866278381626182992798395407770548068809832467000021416661872356391460413998841855398188902014415478306825925157028166897582230101480361533685727798840096609384828322855076672371993359831008309789590612325324790867373790566768668939540599201049601095300438193309414550257198517097032543681374672410982847809663426309170606447896207716658397315770753953921655256563431601654057966513100195779851893436205943669207901619245767531556488560263737670544692594336194372501460826212357845366533005704048393859341951498670906438887870661542196018152012848566212012542080615872707392005201674364382261928681014540982656516147114565165070179657638258902521674725231324437197943005650687099381467017517379374607249388222433179817225878394326607990688759855729718633288990610049059456927927378829252757131505088683299064898938193031182724814315456383626182149099766954252494693705334218127773472555907662831653361884540633282737201228761597677648895422453971100418765893194763301531370771744119642387695141761050124056855843524881101999076613440231299025681759906735235888417522210643063090507817832265993639994386702130758194870642317200139436560025323508034801432265774197625570313873606869401691846927371935233366895401379197264268614906300140118801362174577092301100979810128367260642883240826666798259982252282216105842534224472662530934771431837010433769338467555743889271179821323092221713140973710236202096339861648339290738008628508032735225664980907774708045788068674385099282675428920834272359995793791949266176341707863759622348515935230319574207100209062723808430992449189065933278616730367176824769502183314537172365315490418279561943834441717683165180581919050805415999418283019115355059480805151019628484624686849335958711996873467002692232303580713713443750047581821225695901998662805183365187121434037598966401028725207879776430224077215840018432216819636300215726955994712283662769966602438374469132334312418819265748449424425137132095998967951954493679188200558832260647001992854526675430491765685277616175719225245325506970504701804592026982594594389065980782496226874734049252695723943746268474988506970510675660882819907139936672871564419049709090924137211224535873662164709445709042492139362187692519825432056348495880801485172746290092884845125818925786300848371262919782539325834998870598784442398447183453428146074763631350560119560371684440369759847415402650556711592286541384962964836070617613560328117810498422425225810890330668172697792422620590162181454240823701625011130927637459352689485254725809232433283525286208024072809966147979369484156505502340280331099585460239743071904058582533771339672229495364451134783103196759570808651534957944272791549395973042512990285367022370104026357988382122019493640774498489496656580036983457481801857931284680745599859194571123455395886030455440133369103801192173475411903644033346160625067946733070849572456079853075204303767128684177634046031495280912201943241707989736204917062892855862665604611640004406750740454268455301598605878329426086354365780617187246047124530369418867658871366137855290641584114364382071171360926786651297673647683799475411070481649951447721686038855057511552457608531911812857749034662258843326975984035502570618803143340387433878168257064319194952740584903550207122843555381350183666892177888876683395016576779345051377111068861642228791535619694174160814227419505015548896793927743362987751094202022785848951994943169201627930949597115634660807048814313325146459848689013704491802937534095486811789970498469057265513155027195580853243369401180664868431873834205842793236741194288942728608473662070392043310581484367773142220635787118490951972158393141465323400177854750461556944281165912285800628303675519143129875510314458980419814428610520842198562920460723738581907159767411133925874425068324060642022601405304179167157810985935130418985302317481883162876187989786634868092999283378858456541439227334683915009981338140052388603190460727789388291646184546865080660373679954792318841427047511460330563313078546520701492558597714940194732583856738646046181800480282707167213468169159369930797875967075660360917189424210593402677962813693807177539762154357177717059301241862931521554260172667115458241119053275389809525223517987607868587274406542961738509613406206745918565868662334980826127657497984473933426636336612164527781183198291606014443213655195997237760079174964562937814934294581811519907442576707702554338158351794562025372074622350495596493861835931492301957989551784738620689662751020962534865908574651368213192188596402256688731997885037896281634689472201260839887683002697105013140498368676781819918619591969446915870323726377489196803115780401161465728056613293811891418284105937845649048565193602828837754601575768851976367751093997320483714314848158486246213083178020985347730565915347958372576648755521533732460842775251479411886108958120545407693693218594548095077654445909169039839717691806070200638843383829717989395691334623696580026749663993206447795679471428739164135273298381200531140967458442265646010775012466680852676957599926511657895291584735182348279765183687397565211770114088739614908352514495368892191594583396222440125855201166642233427752752834530643115375189929152686612378360187080170352867521165277005098095041027610775812867055735693088824440441407832129169867350449104730687642034936694705323925529761454483166140579945638479477513499785051335162053310414612216209845555194781605014573540291991343421795270301452325048152910958755126508005757400568990415539033176327140030235602936395400795114778913682230701735268535910466741623679572048874886333988929241702790081955218469736614992158951042224614517658452834485246949017942612991286153890232306611665250635002358056795833976880587139860490943141933272420325103933681573301974220750684336021148682721893221234791142966602274703872875017643100177414400746925430672170390891584761825762180838167723681842962625466030811813367976636574297602831022780712579324732701119849126946812426636893293332889322214985368494970309373699643515350258177757377824814873574249194166997813733396642120198562399397612778206463466421346357308756401415817570178070441827809436579389128067634742685582626105359203871609869492944230772009660756688285940258166391311209044242948651445581335499389496749456608145244758154586438775871585153607740559204639807779762824796543030216961611761197468378581174138878740313680254815923033005164473484484167510719178178659077677656742189177561389670502123780169493532214845762341964874266940787370163325062217832421884079981081934381473392179598297694231567153009424102213054255900175541100502753945189130559376604234627263687305952882265293314224791627195156001941681836773172557288507204302062037405283136768285384792476618308055832822600812543308312364379036080107583241057179415493499013159459255350915331175256820240470919372924861936959215627158879290541774636449492351304428704048116617857650966246066339898345029231380781763078431845558769107632065569730038089988197012770849077059299410365698039273732243149473498348971743324085084591737472584169686845470825588205097885867487208921122933919190397052940125033196979553183196904397215029017324309561786979251323689705011952363492293863527328406534139903023310618649863162199968433256387398694597013359834938264350242101810480940595618887463627306865632384413308601733901116715246152587204392552241970836165987900303421006399701771892612839059150342050938205724893838512108854305456917294800136688659285936243282943543629202169927343694059959279686895562547526338595308087396500614667071613606890693610531668134566621051002858370339653335325999423471517682608026319826079059549044142346346254187506187800586338107531351961528897422227913488173002274015372702369305027797094150900122434332247779685473789897550926181746509423133344872917759578291473492606126906189268875070241781133535012140760494958003456995788199912157504770024819044755182588639157348308585457333879804643576556634325861937744942052343152886493152686391141442399335491196253041119242043773596509336416295353136514369694968811935320511581101993346289296996339680801069267163544104990209333969421358729308422463867180216251358611550054232138031035820181583117130644915371672485444327912487561024572889969994835436357197375333381282240265368678309689019885106030304012176980486328208552802594832777921891721313847122762666583648046979147994123964376653335482821819112112360546249662899528705340254166659643950449605728246965001905467472787192277629849549661329924418738878643706907073041147161781001994380672190144461216628128543339386102079215724172331934380004297451041993495985108168818694561050698521406784692507513845581177490048073025952463579400618007260744941242628870867328987797205204559304744108354624056175594965477689324783787090925029903900571508510375976821852661205384645032375833792266305813043973577604685298358729082471990819080476573121918026805987903558408562116155986761114345868076026926699225314324629696069904142927205239479772065662367897910397307113599555501440428006174581105345195162833139554787607816579964485230090026915135419502698155247969364687238476185668374037873551923493676998541572236609742132526947389276395835988035571881755031197308752716578855919031151867121133208780637673692755476775948958430490157683178683348426877492174531023336896388895220664215458067910097804881714052424157708097499833564917509486620589081810476132017095117536810112394059805877092119265453848918433255602046801992040918637199774593563278942105904689489142754525926457719310112555306293560040404442811733438755868021727525076366586280315171900142177755934916588769007770044159801218770844684949476786450695769171204986478954706667220216671692177423060227275344767193836838589768033398531769029636375392795203276036944449052880274074318910375829560323204444294568282417089188260410894033140572443992117152428418578495718571155510267900351902469470656698578928357267505532178895076362701361319331542259829915353050666946116726600751181985609819132628539022579683502404515662345725874844940248661545812949345297193393108164236549675279733685367425737901622945384948388274250434801797804481627231899102544484459067662304292656925443577555618671161707946830875184870016247406766058810118633043161529736132665556574878695319889774515667814027374250180343717375625784798689524531289071147877346309595373474727632827852787087387477951410866845324025639934384412023803820949547137537257140795321870153496350182082309406417233556278664880895161090046602550160040946024677149630496990012282434639628181233722379565469859508614572349148897844410279925088504827677392430340091451698867196661558990578623143671344933489187052974105127249607282033950354481522245073972049975859429360777884315945557402975605343734769068047479756871080843320007134706935259595432240068216037770435845177091515648564459218877081783605906528470366856808737923839403673387419862395428564769285152649578937147211623926080945990545133648949206190768701419653166525833389474716778447184210351327664547088490774455355716341883525954454050602997516249459144598443204860940999916266929410967018375797278308060296116149857999376315395847918061130825312664608223850968196953273761280190584380123929277914079989778044180729461352222629901216841997438403128281657901656138176079907825394884125065324806856637809395508699829067764068963025337699905089962891723434543516083531464363866647956488784949166872177009636414492418211221676339503165216478349529858547464936168351277769773771990264779969924549679521245694811284138517408960817675309397901327593627471158464190254724241338220591546119839899236600250100333242103023141622660728196204356942299112670185384645237828591003058061070804921713778452090887980953731714107630975754204656521668381066136793277038437013979858665958186362732016812620422801493013035054743064562737088305900721020713381062719095160124417731491387922908600366063397947953306974019665580800218094120423825866136602355160073650784057974573722422118947334756379264322531863681682046556500584587057820865763178797790734004794566549040394603649147577663164123885551392771426166559493948892646159798501488604718789168184597071085389536512664121020957742849959262606379712401097665593069010186806027195238238518959072909332679746662617951977856361593767353823792589802008695303992061169107400464806087565819365009854657801467032453243991730255531918845389386004350757480544545604051760492786439078273824217169715174602221478900722441022386963805291995922436646400417003390731635774360164519940008156985235862246052585988411061878763128312882055633975972329414012518407394464693699728944130859622237749884453919802937332504668061373488794904264176561207347816571809066687809661142579562203972290673304844149577638049343229836783094929415781659920122604642898041397476534607036224470571803881735635523375673047498165187265819345024977810031712700607091309516256333521083462428994622670080045561163237253592364311161492493076743711016636685871193245144709842627865714578688636847597520438947373355786452670661194473550629116460414057915505932611449421885528796574972633783132032900410262893629698607954134177175075519486629196878282261748621183589688981213870087890730578543355540009775726527374877487692297510815069857194443773169746418496247856329898229561763215205507441782712465903188047024068635790923898879065174537566475382305181747359864879064128320067658873021750572415762869906712377398957502164717499372567985778093914743717554872182987562885962356946487862929027028612116160457353024283192766108103299988348410491563691139282898573546779954009449961801088085450963498134478552674313690476661105545601862382579991001804451543509487649832831251950925692668844057859857847649491203593115053706621975711258115770337683013354813452046446501972676816776111461612205409227639673799375818313132542488522293855667778950353041103735383654756585809111687019870496559791092434655188578016842321551981853950103975104402009882069407724534778808447322121854148077819933114189841886719416295702176162053870440826997854672860476508569118280173986385919744160292832506152174164774468670331691673851668090311224527247957793526322386769232078271988742717233611048224368240666247033596555160149181177799602458610298145066313281165176476751856993338751116625689683459424332040550592206092279793317236238445900003232838361915076531785768797351668848673788066389811997559088489294823065225177629620872675098192598333861144808252656727901216586533185038865227233541468761688984230528047892111505062604597848033752830465222367325184192415360845164887930496592926605765090615993829834385699346248532405256088871671284225328866891881738125235842698336429353242228442151770188796370892440645186410433004698844939949033047932275658068182816430961773563391454492575715884469072728884826672046877134854389015912982763123986877037058939527769541696840235914792713527322158069725222802714209117129317309342739369666155792277848864320866782887889411626326761248716229195968969190065522681312538647182716283160722351477268553891385606570364955272979617084637896163836065769122439772741498034677163041650983416134900280991584852114372173327963913032418072685164508886969850410204531515873043759270498929434910369417515835726915437308309812389433157847996836959216778012393806081627608949838958173085637717146675718158845645880013083535398079055115302203527745855065973016387405974816534137336375960741248854354774655534110066919834304352732865286349959783799552767348895888636829166056120495853200555323747846627732223965404398139663862599718573725103472102409900317020281896200667828090028150694936221818332884849345346330193550395289949781888668390214489365120050130546924093262625982571125307453026701539509909626547983530837533958700783078943557170664299327081109849986577934262036084109077662355649440596862386087011426111058424347311109267277002093775465463884930642235274771424665447267398574017834313678318275908089779031906165179784067614344347777063062627478291182719919376009277765810397236499362924168483911725417459675840891406325658886420469076495248132015706326758580889184230021855344790521691338159963594696106675230310142271845085778880033818273625382649540441281629441878433790047947441455122574215884461611635822203653713224276198282471668326233084390514485193375621287998048353476061659355744917952827112129353664255628222256287931779257095854944268611140849207513310896867190435370325771108617369456104517169057237827829186832397613606574451614724619560756665320847849358371077025047121843397564808808127364351351281482592709433927295568735822872738554709319905171948898745784410334749661780066596176766114833802630362543826257978948785874316492301591822208036559009559596815959069523706260701825933453131255564978143054605175261082026742444898995157167601141067938771897792041857994867380805131944006924041755637474592842358215957084284121816139059901369680130762876558721305824937802541054008697805142023561505521496007864624609773330511574934059206101219958528687872178455813885207554114888729496106341848209881160085130661640369209738211393674729920630978461652089676880674033524423785233935322315256617190956597707945376973727069968757888708770437981951246923071651646590837173590250857808159030837944464633536563540888706067039837392445176278451408342355216788039517974050452555892240448505223586035961853150244079958541788009552132624133611299295294514861447777310952562582562980067065839050366541520967389697591519407432929206550783631903020580151293197857599410950763005921203851136799075378902590124568291601327652150695985519205864363128150127479615954127924408446244678052740609482208681069546082963355856185006002043690122359641270477925615418789914866307105089907367876022735118272212479933935247618118006547296523551948347397655422211510279417494278515135892027120897578009853212697600376668688087603386136387843910808643053567159808203221870303877309710206491563960384305666593624638952285960984591018097127457650003868787185647586921206034962996291192022649528358922277518697332521890719335010942080861105457773534024364564791170475236019888860406651881467227167653270163722066610226329066231341047852220307914656263778003153128127197695844471231505310273040046328409975177610497759324238958839045939698043859729624693451572610576807409502330169777024663750528541942381059254304771505708574279422778536894617537266421549085179214433708367219761967838437057183290219952055927171612006677905317939086724707681775800578205224816349220915255207395019635213507154489096849283284165140401913033265864524057142548601925641643594215890950441773497861832674988215453045908603901238737261010446398457216964662173468705786794359341511259460331400064368142663609020040398695159046251728253890693756716353853333449233048677297720714440202118532326005625383662495540853799719314751846035522685908236512261240436652655938813865942607357579823132005461310731698793792754906229886386730793523910152528417001207174490195657503044556965820219602087286621703101205762055159145409053160323550313068430596429412793077708544539075587096582605725386278993128186511547549529494301384493700134144281689266846797863071228275191719150250015883225061483811084364398520853250727367304619780184115251289532364551674327893441917303604101736410070708852380035939801242882297211837863961560577284107192099434160996329346696844595815763295168185948142360588760033260188722898556858625062281556263831125613566568792668126593951807066040296620098970862934748742557477097653818963711880134156088567885918479016955889180470206539108644845582080820458087840239525581721510648045624301307124598757515342137868488654260370886675895197099276682833865865271473186644599393486499348825964239051459141850087551169448464097302171735988513175993699917283451612112852899300956093746960363015447211976210714267546945111807541748587413457472462498736314887582567147915192326885992098010992113005511846285711405170516672311512154917698155759555569608051026625051091480644348285668853776612234998262015962619656264823816570909049204959524938951124642026674007499638809013425647472601706161614045356273746902622196524281641433702110864678820348424175314942742391044969429147739984073237256517437395155458080716722066075746136783010818189567269303738471154466605751355380173175442467217140126861018311218600837436824752004031137743957833081972222476919171910624713608821153923968893955817645036578353230756113238999277608475094054744276089170851884334370584069289373177332403295998801149600458353100343634067686287282828839580185744687245048875819075781109318765478799219522216965118554758125806026824680780857247624208517684478453347196395840240735761469344287520941154414393096527721938253151108035017583885347568956950071106124270168498779263301195324799493077372885685654359919869268578917515471014413705780993633507959147343442509054169833316413771678977569561544057096776119626792888096024379723541262430635803638820612115475822779449764253082806444782428052087307189266600498329045507672682272640461325228389502707350373797089843917626218738093401925324565460464984664089055683515038626488929276712132865556399200349772944677273733073209562043546687973148937552855110119606560477849367136669447223965871852202214844955783843495621513918864897276861595721740274080667115958862854003871401756437533142202268540529327494479775668493957279998791950368958485620196814325848647342824804044268973246237830603746718688481594090668737342066668737793411434596695087681111198370727444167569092086061636052185161767319476033115868596689109095525599858635328158719496067070308852192155291594000360303060162203241959704074016454803642359213656895064514661094872969546401622956535497597009604725156937773178343345652309585140919609568105078309085161598521484600293064012990229447616102769279510751086490957218850439234764213238776219322743996806056418944603992176390999024929083439351252749859060620328868966921232103329309400300269485309682938610940141006319651334265133795628817775305418282067037708939434255187645653066260224721814670455894283718926366595123186834500258612516697373537182470608640595964192075491349272757892004409196555160230217961100039773524613113549002640813449409379309238040801699584136523767862451607695959090960776757477424494931993823987300815017910510329986439294301617963626885756591775677491107298290110227302852663800103713204756577318805835375109285271218839131199665453731764973525897442297201613104253373871046661565185589797819717379920980525278896862817960056358376864651478586468173809267439215771941492502017790958924776697548380997741533493806499170062707671024496501627898135209343554754716527601685296021560121133793066612884743133035179868415908440403294665187558228483536161653489528310543880352286878050326955044045836530920319842911375764589636264585266695259054439011887303301146779340610144893646807820707120580196631180021731840462120160677111628821227608738095189900414190394166176840717495877599903907543777800120644666878762939231159705257079196780505062918338011298843863233509544907301326743275369817418488020305052531186086290523157344962399139847032309186075851056843526480769288643749913604861869055091684766275265183792286307424349392161820798098269253300404088864269762450998465721551199326984636645618535707964233786021340778683937504916234059397436760299690598470723632076592611598413868430344115097945540351668767540101602768029516617648263632828363655519949024064281518434874894366214604986366256812978701658639203852400258041266084906806579887227945636997652059705299442529996900513618335369199751667988792326511940025935637408633635517460089011989941468232092577342068309050835714481126454201552685472764436630690456996187753203823587854382400128828381770567475237021613359716202708293236576293003143281250997829288450614779184716626485485893908075817818767102676070006054855250192806645471613643640879842064198529400999358557148913428609663591100866880030936639278275069843643196921757065550778971518063726371772363044567222229155437946186317991944846696485553652569325063218352384865020044746855860283682468175755917719253407857513401558757266249847947062965251313219114144339392144964297806416392427283619823483760589313605424802564271040483895696976620739932032971633799860530004355309473630307289156295469633709327871245062002468817377257103964966940690412111047048715349198815479978213066818278847716648494455084892363426420383581348928093034497378802487326576775378445991270485759317706212706492615069309067900167900191884565104688560616698494866418355190433171136342787674438256736669250728589433186851969907116183625628428754581314634270655298331560108379536026643542058868167316206944621717519569109681872534765591498899868133263257246842016223066465792892633510211125822929550537143311796558535751340388646408768022443225132837413899755781362351998302489224263799719977051758141241045303610865838888766695922331391059327784819667572098929455945030022935995715715549987653626959939989656830330288076744440749664913031937386681908677154623231039561768383468718334348466747673493086667874043585581955441715896971127954188771663023368986767066943317349769121639447316748173242991051313084013883796619993204585717858237131060654214829694111902043627577511639875256031404400417357789883173770257847169621063642149893788244723380216003446729546551364501119882081560381951178184325429151952557282272614606434796032198286431150954794626624783779243421407231741328383856080097599430953516579540270882290380944722930095466686901321957535253930788109117390366512865625926914322990384551318658930821895245468719389178641368360756171911002115840887547430552693340184575014895406386709641430292016942729197422333387650444196807173520487777312683294970957894836533670079865232546982252028550952266779250664323378140366631497637759822692186950547414115459538137931720451118411270518428738827328383326682452616138959938522008190971145671351797274896485754703638301717145292038139653572013292275483902257437663328939882873448513738124413110835617743021136237814276726677591772596921430352288082031570384108709249105455454585214078409187418458412341686736911789507592169608202349661393420199276157999551193072552660317652554354814375713573994388178730779855654703653560005020577412560794841705085673000226370510899198062663779263867545367948718430610288397714383670401511337919788243557518432565453567086508581370522254633288996148412119733137080640092246565831911651199194149371819985345392361608934978787932872270728689018179490708426618425629990657529823354546945384023862049896008094950429222595154666285633951756555115244606732300147361822767180351139721710136132319123918555244037573912608649817523192589197504228379244081705282509453184123609761343995052355159796798659508345861762566380905713464444793451949881711816832740501979177142718329184015715284908754088782246085347406188909891923309366700745444310740018630088870066790879940435572966681919348808484972251614841312723665088533445838111605932549391310810180042798312300508596033193289147078177877082866019713651073666521181168683291488089091815340359769006425055259162725820364789941072763395609115894652979127404400768759249278119473868886735479587074753819260047502859800113765759977024881412307796762387314212698654434783044004866485669096585906686285798081756823179052149584107210086204314197443543367482926753109299213744646351865358722216551426813685426626102746790070882777482315859279521993081551920443939055360774677345685761695853175825636350340122106892790933338873337965326398455535813352243109904841245190449303505487823893374251510993048832830002530948992131647991177258596566973581833374964408991887970554195669683895397674043220681915326771034060822328326939449898537325437676782078263156454566941595124950161953412871240708361900108695938237130397425461894357766468291831787799020466072433382131341064380701384468966326792177638973494307077808441604294107270215706956170284660351704069055618734135667412208876757147979348288937304318198733896353418708424220363889190976675813145748363176913287935336631571949764124082422402783521585443519662217866986315327496336110558027942608919724836173049669112114495488696146713518936691881108187420128934819655186816665754812400799723028330030153826326694183396960104986507535065720191147819740641743371337406293800492051815664834087829767272239170928720241226582775919527825749800927316370586177359585470773514857695351049745533422020587854496301179815699441599850302835703271702275293440012885915899345342232428589238362754761677771058711469479904086218035121787812002628190875351754508804463787999861114004830810182734648582256202948998515190254769578127477982502383455422435012093317250665612956681545989838749959949449258239591840909223185829159438962133897446233279314636295898768142541193849888779791499646867728577261800309757697725646930736681251125469101157441444197932069499426224977778191691223982333177079863439055982703881115462467132956693500243101303635346203858757430183493430256479634773683185117060933034844580652101831215298301176798950767312701213413370412747789410498863731570789019875143267584327536275394914101659554965176058665707293770803173587700595322697196170229240807935523268710722717060244386254191347536984044745599723568072699255052025596969862411455644993795533324276616662751621971656869034764028915657220381752956872940135666126901540929827003232384444784781903688291099657431019867764515617690193368225459247793358814040112322514529280601145317234692932838550608388890391227745978559610713639286556380066549071510039181774869709630864011274606190027228481527288590932678605184992421040768688161920082201394054856836988711834799171911326304059918106881743594571304903040476550380225432749261924081699761980067665181496748768452839982579383126127184487204617850110728014382069594161308632398624841437081393154257742071494282427406539618825760846453602321842115729999054336056293411535337630648901823365419216188148506618355307944957021412990527128363163476482976444934892227296602369600386036060407928327449239694899515918236718392670541105083385859088553287357012312097599515863076133496648600844880993763162697191063544345491490319996892993343784525345971140023124651937502501748302158193621700582985681316182306730975563791584232812379751574705924398391904376172662885242277286987291728192129555907378483425528605257012986257874081192169080066131370886083442679448385750773608837075510445875544300881305434796672420505582992915270636409680912140351969632541903095217454350998743200686870115887604256440820034322808630671696935207236000838886244132622635065248764801104505289982944492647333844969328854279898214926785262168489819781930802920388065805575487413857413095193178419070644327074637594092682309175606624219308967285121451982340122529916025310735018968264346512518090474466290835048721242955438768230761156350490417453588025274080319748494478302079676462902583386261209245984770226968955417795164148287629473118345274441342253900871601842096202284403860731690152997939686993005930249348260664929466813002717011549524379688005359006104979681547066760853927696442645064060760982769719669679599298196805571678077790973280499385836165701465876747068467668518453194620158758802819721582684767297519370115184423722153169929507457741212310456831231797378818627186869098944090610271849674277242311380903700047140211210704165918139409768821962871462000235736292639976256578248935910427119772371362991012873997210853897426828857569265850611951636581073676381056277989325634408978631599704642094461091381652121743906206929887548351360816545382302550007492820257483756531126861771612348068178131634461732401806723880776149061050257296677143326217297219598366236231016153018782900145120361119567920135375561605436080362173500739644125989792773827402158115801200785780906764347874110811178537253625255660623597475905665789278773036847279998519124785819229883647496578633814243460453687385539699140865180205782261975014371530565218590222842121430568578912903737188436344667725757524527073030116920745402629884644249613415409320756824573826453126406153621943020969864738114338942435040572938379853895894176816209377174944892962719665998366348549302100291261180508982037145433570902609277731873854438844460368077284914156442631185785531267281085051098830814513474259933545349962936528887896729882375611505000779221914744971718844656170993638125803883518462193314152416047280239772084604639661262758867241165724329003409597403655081234942644379483381938894010174938502874360120477156336255721102755157361659132239782907739139781747224465862983281928850062887418273939846838071866519177733117486676245447951508810092688427697889500315200927923928027200141592574593161329343066392791837378214753704545136281774162177244301513116482549453747555904906647211987254222071465527404536517513141751542955848910501677909430864272848405011642380734059987656252404884102484617847377671223789851209235541796836683739465784314704851033797225652437604945543592957374195494981721596873267608806074239048386776557250211754817214575950792866515944134120893095595632267011532257980632443601532492696500314210501277438117353814964388470935739619359082720188940480776297290503512127382589773224299804563981144231784131841280729230166955273796953855915832784367055551839222639585137419586997540052812756017443201137900556760717004736966849385855082951800957399925222691239484958813167145296364279919108937064738442098292130356579625600402072969010263223968413190631476207359403097724922110847657052255660438895586949856487081123183440449075760991186348327540414960242494630897881855357834960886722317914095951435707468551373361030941649053960967865356862333666800516154716622182110029251181891089431906303486756084053447249178099466025649246256255308723854728618348813185481308960568672623406713022374968634426041421761684484638269294043575836261996719616484669672277861436236463409400119415575971689937485037539663993275090675779720513059383294262179823966231947026919418606335381221666979072426263656674339957781799233945987918612137268485609918106359087408345685108287401833265950254625128470835585244054573923086814791757774646590521439258787736202304891662338112665805675737095110209902616491490040588027704975560693816176169615964249719158022594300933801346706195474309303725094211713983007540789479192729267616163431835616667233583596708870520437792379014663268384038656452176451234320057470473929474962766463339417647190826722939075758244284694991642772973873678952182741833514983843870680480063938083310344820853548585442277522211164353574033941330390240182850997843307971173705000798608470771562410995788223259846055169107747593253819453030070370306928361784612950142188696671175672857526971351220207645857543990677100361940535555963826097624903155709654020772183601805600165758495519424871009705897578997906503924189173185292440935117008387280150020528081134598269156302538402830695438067160047140288752435373260946306159858057561896329136540898728496898662005777403348257837756444371373769993809001412751664110129159598058498226182052460394019750590731809528816916500409949102776153869859032616272318519969267352635184827415436958859039360567419791358362538832297575576784567733958158263902550741780114851938584859591783229990268504620812448470997323217269543394067395492672937475796656365110275494858291608663083229686098082769727207800156672955493913105944633670541487475505723726741968765827259377236705072392272803456863072691493523904211437615059277723290397891632420318301247765745918390304215550352347638618922585671508853208325969911483739190613373302711982677825102971832776838880081180137135161569669509680835382446872167068264242820435377873958921713785656271626100827604952263627306587152514529511768398924206661622318024063896359537368252273545080765853593532344806450055218177427951800115009871287741530916984851122930784569900536939607005670411563876779804412596546181231818480566896961218851759670932262312177024158915182502606426763771725295783176937351880820881761924587764101224040093558118020308362432888923823430847720696967761429125312808302270625946529183340724815230033200734624770058997631692889408059926264486220867353771966802961661594088613471279061805362902152528531035984000542872007677973255009453449263706946490933681669478502797524504978852555433747449883616209265497592244054094723651366085613796924319037133362237655020874895692368850060354573083674424598801825349698762731668491898391916794328119456987784649481586024043365589473244613303943172793531303772900875180465492462120223944430359521013656549136129562829356680879732483752094280145529058025918497205794267588501751009469269044909341608369941840785367313814182385758515349419272748550529704824413932304530496346732445957904633908912413592632880183757882588635917118252362175948431762799924714742287261102006279950898628111803769272212177634089895738413512516543533778768142881470555007827237837653198518795608291574780028725686754928865840833140672250877753894064651059598564874048048396792084933836553641776941443341008614076136690237765100770630642429274070449244730021759033829403492920206639681419688959901224877101678225480688560056030600342020363623122366193976178668890582760429343115369584758922732454133596210470126071802962163848148436995700609733829399899498946693951968961168672497177344440728234055522103731491184185281976453519775512624596475266904141611092087141785742698641320279366027158980141566528349503462734376463695585257194955655974081897228583471444165097468469129496838673128493727830187287920391545923468135610106276710437884606755704793965558084012247555367208610221634090988131798755812431580464238190319860409461742849852507205491716381947185992904211851599037815939662614198346341761035243150429760024270634275328231525530505390560917525516856121832837688382081973891194474035941982463073457226221685613291437172693371078584261198984526456241942233460838538011076088442912566240141849757343443158660962647683707898571967506173744245070188955442974552778973265470314872459178947990719382245301328718400095869492008681150686966231420957172321539858990997460902399669986056650157909667737302448299239558076695851494448337756860075550450989746589474930238325743151925962289436733070812633572589321199609364509489239126135003322034782468630695429046396745289017223549537464512828311490035855575935990050113489421515625931529073454491950112032166278761677787277603108182815172102048019516625560735575835420481644593379268545397187508592175595945135377513290122448938645584945793504720553556282719688924432744037183539752045635273004949695865990810292296712608932496449740729121508145002392283358244904625132665585670862136676628242455175693661325867972458604543802300937790663614500741154101943953083451612377788994414398682440303455208246616270005891257278830123150005941565836398192454478080324125007007001911028460760218720476929312575545218589406787684384750781695954773584935107887213460136628690374746299654440928717652338682847819472743034757217364931936124002604776522632441651491436262516925997687225157982979414974998806114752535967981822397767334497642059807340142066213402305191236137468051027482786633737383833349638590335040716919711462805247605312260845487999185084020303206443379292960464221139978813728406121607546176285832566341131333956598542245920454202505079571510808556011873865817574148933177685905162406484572285485926076318968387376934130873213954479556949325794699623300202600005020121802181255239006167772579621275652045383342549116533612322315133073307438665113685426857716801095245382122787280364043322668130884378700474250796882446015738032936165652899888466167515220958139874973558756418896037620005924882463909590643828569680775387645737141603727132583199264132545966943537914959681149380863764638411820198685704166514862916497459854613006600865392486939277472717258687266622402173815188970558874938311391603732728165703812309582743613378513290957156743546049157875834745301803635484918263332286337586336235466273635853357249690045310943701395163190371957545601336499394258743933214274001261888345089081715088212599678310986657096429723568733368460145240197580844961390077343805676527589707555846919554674091586638487842525398031026738639915176656084443054510550020685420592360917646794891680199751282406536058961449640626834654150366077436638442749984752157360082833380020693629741793670090818706369183782838810664512556068881703968455941252591676483291096476133988424821732098651958078432196932952315506961418456050891657158830788335829361453156307719719888358594075860129206193992567780400513425450345143843845298641311537015514774358449412110022597483068199366411900830573361170025953434460912805235353845827187804298165989023020135575331052591919613983584502779327941519994032646850891929607020986896678132532510496212441075897622880211449667783201566555479301377195355879632398234377163377913117170448618231939475950281607906226922142170363503242439267631832498700473394665696501363571969890908634209709857162921231323540468011295357774350634196412300684258227960541749539259474406107429514879668579372000493178242200869555000648486775582718689181333829320510052074092705271781042080512309469829586184573675035391560121647377678342480264405756880806607332009179977785962310563506548267785206537195059201848912074633074019864050606655124530699880698041511562495970616343010206325507493015891038394947219101437550764432571874061650313288248523771583632855389860399131147967332678486549762006847530467460226435332051879528225821948136924787803923502475701658387625972988682462911445260543325312817081544075610972302424472429048201668808111198240598093486741375444756664912810161865163507055269210986716954574378120347195612467020088665572660937656827581260742211664621289855855267581702077046442929365205597845129768970197543342651780819029796529422910444609046967455634978311205841048828552457224705309249945060248698401033107070489583793479509008676508838711083224634229377030844984335678221345611272082848511630277075719608740446334915132336940225649252256798517883556304838384866320930438102287657812514148012872826154225374480852921587322873261286737730629948324938616084296052136822205694923534170759315810189189265526159757292171692047168810590776687077292365241190864738877536169623687218077837040613608255215847907970802212190793898236871769260690127834009232572316553281734288164344907239855617603514851682110621476184244205816206491384187998748796364324342483284354789689215704478715639257765148402192818816356452009381119301229480682463551538751767344237995766277741046853773024503773195570642092094873128869633243608240330058079186460850142337069860064326600939015334059859369027765832050603609336229129090249002051058396781602186202491310147489275939834517554349971028622705225976290470823688769035623592083358153949940485764725913580951309033508017620872392017737566624563904980133925741829591917173756623352244112101311236497829657540279456607163760762104186300675497149881074106605368047022387136406152763645647439652768141887926039690042013135868415493734955339285862789437969271166827192040187810497981136577165911288302114156487470433792797332494532193592738092383322393321944085776157427350199078135239660762558944686410977273238266129747912158596303039503182545746475985247269065735339078432411025108111561774395480801730526408837375740422261891227028566979829493967931059941959251760649757237589514438220316167126135393203214682750393315616133182701444104181126696875781968442570770505920810459340074343407378072732673599982726251567339926786136612059210558598670594464976313308492684444597353340300483582233690594409018703653958023471048819026713070382101904216666811469254714649667124376312930870684666753306974749148249517469099200326049679460753870571196643098159379408881801924605278729425514207935819499978427443691078597475314235273768235851898497550053659348700372751963489884666626335362015394343312155863445031040639758554090330427857097646358787342681850191760314773692857171288091244032261296251029766046917116080170954781594821163534953485015985748764317912583131873434624554534296129326829687783051662776354806996899092052067057986450358248169616998056982375176684602369120662871779933481905538970036231865700420944660540369508254436678403419380259714515838863084688994760797443064209877036743056506571067874044015691452997055302378308183143404860227865809798237135151556892796641234030059091597710130058037142654649716339885331522482948729009880768648519710670742788955392569708232573023705595144750229558703664783079343324312978176267857091930522371920610120965820786897309280437564289974475791481464231049799328101564073365151697120067500872844738018021946283623149674199997577474229326085003913303551741338080375192968986218694229847110889495712002189403159273312725864956146363351615622336635423506193651977323679087367776478499357844917568894818037985958402121042408172737075666358970843539717620232480758017905967198180577117812318015004370450004337729011799180192127219669619435871149552717373017743605506764151081223638989753732615912105298774915776735723907621433984141098255699409440366681217988512884762646088799701625659469021537193753823404699166613963038134223692889271475612794634596255948080152854636069964960812477129798403027146301582508976396565647735247721269386948132014515818057059435760005254386866482560227035662774558488169234802474480332468456001711978197722546594074935113292029151879060495450859973709032866624863186405469953297559602167691682316705518668669136809305733273140599707223044843583604637174067514360577389583211668118495003576266207970647267224277271190698204739173705979674158356484505826291610978312953009625833386831438759337516757950893864792923907428764601199031782957021943438466700369711384649002832759850261194349107206698818639971487503713998071540954074108729812600845676367640521775893607115800993558821170395201611151403986248595377055439188003933953282927755755417156817299449391513471966118720698666073473939273623373475759042267711536646694979168013661615740674368520895627712671793933801557654365906702843495271592460762216218616949282964172838625280717777787470037298294990417310933733280805408723898295901573282553974191588200695434797696717700845035606805998072450854438198592109548225147045673452720256334807027115590793232178504543169905922515164902144446113295715242784840883884724410427860318145150484905005974699441078025403644473785045757024972643004557145511846226107109224168675830771397255660738751720723941352205001141066740304077432388483035322515836152900165694632153073910998895807929491571689030636145459163717607254499429359853176721111340344814319952959187639875107327596794228524009183062315781720492305181826656646374523168573324116460232358903438190766384384988507414540069541406801200739225530904514345469705070314157527471121624744339206658227006823523520015581998218541389131148536446802049067544563157044162468603362973813021884842996688656259172100734694870696285131240427167749192986172414634428520309857549914801030806982961990816050800960880159548224355300745620532420978175692157144543142084122024616018596394055981003408234778869990706309646817795731918146209966555118571627637413982965265281761863503546948812436042137099420488097057962101342720381656157731931610575065640315784864271474483611615002827686161861424125381379577627508984681490750479701910760113426112896058760635155260041593873002841853704344162125200672235220937204559908597766302654047283929666694767509994333430810660188967705335617402145074809146819521607269824135666419676658118171459819305659724958061613957377215014453593905170562472815586362801623935614599448318596772458685117784588574020938026902848794802136678199274779692261465510811560343859879405736775167573864493608145194964889223290449664072110329551059720214763026522995848695436730647105580316322320205824303165695536924727428785627292071180904420184310185608556973245892896991465800003875153753505690884138195995819481779788837366422805053235901917394589788032707925593202796301547744238665052049739161904047317331634346577968856049515446521104058599553803398993401325283481739192840457726384780058977259813673883869851135108512244417929890210608283741150357023282289932402336981210346632901239073298429300473340211321524775026136049483118765747275923408868036848870348789483288707673830785991623339272584379594495194952810823656350345601515376909302733142832516298968259048768769027525583195756881890416986101788601241683444667225022263585907303780412752905684613676765500346129413279506403792846185676035221091804466623690826477346614056749241698885591056709372407322400365541731965749671855408887048495088534446831603817002380325294866216717284253836791320560464984942324189453726836026936339864502020501712377493645742684593274148825525409450439337194263664306201923281726823192549113159373084699201051045471362996898446226568670760611341397712425886589860664332148830893670395339559287376577611277054952856866195382467475943021438524645838213894462730239664844299960859091890227639408377890365456393340056799987582021418313802462632504333961960727148536055002600434055698754278498631571662476057691558984214758956861729420993433803567883260835382820188811718944287090464112257562948644092354767597182199279667160671744247392304493683642232096311351028139118849244878521407499757430472391469332161175057040606225184124882461625701239847268468354629590699453156017060938702826754200371733605640416344692604404048415604682162446200104121376593939357805370044547747965058138741690334248439824000012243999593063886594648508526792873196872279312920951458478608839769497905309954256071778293819381452944362627304286393294062634113595345454156316488880195897732802802881173884140912253290449017209097020006022340986729586243564533736130040424828375409239808132214321586021442086366199898464377725885214977914543879447140676195035947679926266240973491937726712767938345844854834934369629184341001157411679646235390007964417777150975855212925580390201650540466080316646592743975971939478607286593838561909373593008663809150328304370335932179572813230996571446909571266702697233667855924172770304809913522873416964673387950203281020879142166921909914101016964069941090280364516995999773230587880931259722683174865132033227709053170979726961991605519055628976175155520808698552833447723333626026349746803851040264207163213856480337887021361972158817311669793300626594184350600349199007474286633538880310870406294151578080926451073835216710573869954959543715886710224520546528906118506490520551665307423548188670835969803654846339106048616662343443462879207077764805543975387087011080710448545335520392853440767756745967602606652303495469726248532901376125435975334396649302974498307261060817933638146149334500182851670786562281720877625798509185352047102452406307653443192537781121934462161662571696687390655306925740553616364845077120869326093017585350521510601969246913775709578121720102922025664443799489415248566588259012836497369311470218653314133391062893952063898720730005148927409738196500388465348964481867252337096721680848229811117406819459921217799255039594285408982751125375825619226699562763725794630751899426519290567851431051120281552504362113294888266473724660797896837488324744657259760532547598154987099801745219577890039709497712182630948768965188749890818582516551235594338695463452151208608917765657490438570305362721175357237772833788190437403044822213745726576384400689001228911839422271311375717015357062075561591664555480341040357780789727737046020952528687837834695166344674070754796549322307885099090268194666640960373369438442894573586462914632951062382015611653819727340991722192717808748637203526502403150614719744344207304733040179734875652244618046419205511483700871558273545754835323406345044639203873683736548228803165314921633966548018384595703784447368569645369067664189741266358026367475406669171805338129767552409857906764018332385838127521771527430175055299687364379663421256692008507407993932964225633852063658418800896765874413976794934072662541777694184864424619348903232757681171532043320033058629040053292699735101370436112379102491762628189069556688179964985128399177045502966825143221360860569238531035604512817556854936586483226998006384109307816176799801784896389391307326892199610444989900831029476482051514925607131272579848351437689801567526540505686911188525815267264644996659862689322074401517976856729308940448533090836652767506156763470275862016010200766493722277206939861160018678264487788057549909914662614470888776848229442271183308938742926347389300504962875284992931080397614711923536461859780117720085711632722080596734984361454511862847126971532665535041398790717875485112389671498111521979360329046097207717892014381251389668371878126656462625960010585493615253030413499547180526739417839521651815718952411628416307943639345953947373695426494501676127633367512723648938228717141238965487533034367418337906222538486092879244487370778312200967004779371075078924931622587220504171977037645645904563984457806427341722713706416849614317251336829986057550817073356829511689434285670309012579584727586909339240308945898954244226290303727831031153783708465125578168807295478480546597833567937416047296913204230864522408521282753962054838781737436356697893242262999463419464979289476070455552765842976637100946414764887121473309560399965854661437018151437375245720445970704053409037637645647881357906473311680823835623509297764678833602912431611197637025654180622342444742215425136255242294950481691092030802905060875098684412162283343297974192166538678158622543985663845302433505539225293997531152299429061650711816040679561483929357980866639895927012344509828118386629660514955591169380034619531982751081288996364373444584466434884236783914524511901697713780353982863261494702009221404175087731509014520951008967602463446304309820554269348235459956534525441137814801939380397234666178832884228486595735782852233095956183446822599140603088825770318506510475689203886984206155500083721440215880922490617811097102361670032058595036222329169872127337346727292687105857946411959646972916683254704622590730056559551097936374412916166768245462734137371391866725969157314751454868535734826307401601771904300713016570487215415064492247167685815898755837397260496262654111972487002372859937843217701021579587302377838097318655212531758308219264365163142570923399373197712642321276847583665878479619569110689086505265844839150684926838924869893636985924485355428147127086774045891242752193589196141983997285447235029291822878615987563563090284297757893689076065745584738593065538815097599215317470762642717887599491981399982013021825657314310345211214392483171751401466298096233808566323973415172576271382383344919950661877861018270109290869377231134979996467677310013265865503685730103328153200539002327722881577483253052793943598036090880695829445270653528143161931147642828490355065415806315588196359997879222056761756056670681137554121101310403701776351352603997602742257147197687747616618326887449988479013419472600599439814472676558271182265127790464090061474937972839413992198554126303213875520341552476331533101284538509089114445547073232773787197123004466747794671248541775616542976474703547264518759110993070688291418127182465258177651443091892896514212604173923116641156811547961058756982998732596189593734657156093167810415784899442990696936322934756402886113835246897320379119623659387489632592661036203142209193095805090497111543394007666068517275439897740506546860496547910618664031938826261906006653787039686199284375227792672418715408171118684118642431694408592959391534077462256903099001002158108562974239382675322484590576472341611288630803644647913019973688825788006106482437564046281627474417796846772908293389869515821654756300065685929045767115697443152219876283870034783932013991056901721065041852563905668981684200955254705191926724486913200221579219978887859854625439594825897601799111036282881079131436842914312754423067413474016939255793293224261737637337365658322124212698213424765737594004372341908562828796709432358726878420514356994484218665451758171302024849616369626644711883145425141590225064253529890613373863585597937832830218426013781560886640112073033252575209764187798726468037925320670075439981126175558298084635789107044748142627122801654980578422888506174822100718555076899149133755960871090281495371402842764988014771149073821130221808978136624450501254844518856295488922934217782521771701198706775263037113405937936678669366126145869030905256103324884151511695410643641279365550928745459883988445305495057765624752105551573286928168597920114171333018514505854624294054697780561646020920542782095460053996985083630429742780438193355581022840568888148330217931343803854703568862959417650952206427183159785847810858828188742544026536196611752347397123940893024879969114836454525567994725665214541876950773162186925960173704925482692514590574287025329671941550432561041893863810387542710873900455769934576503525919990022708302724536230348944442804862002724754533798170464141033789767134727694897372534832087214613790272337591123987647433188316283283295518754986360359196464925484100754203387188956894230326566357166596468905434701974910411400530509360161475952302476786847298462994929004826316053464738411252290042787879068467409260229511007528893904715087164131547991292690164709286050760278003631263646796496334365845754788676772223877415542525523946864882031469389567755252717892925209459831019187160588672611805016378104895391310964857750365108330096214722301374716524484496358443794520239103077421190505447305500358976246610116342241329302077048934816576673429520958428884951194303953279186557890907198441489831761495148661418706236342784736595438469648819855809593559553831037346623728612412072863315119030499589998174743918157286021256114158419130146160830425232746403974905973401205433191755309794690411227181465946824386427269641727905672081622044613409031388803832556239630816190767986822907201385415985208411875211736924264761414230002885933300142423289337853278509188088575008535683912516037181674563577741871533642698541681751823413462240075538501627582029780078415187630002816083839821348080862701716077305745602603111393938366560173647492285405017075657890201204598055463236211169330458464337022799611983443728614698487214830361554530169211909073089452476310906765443660312325969792476738523676292316842399160762683399029828562394196155724273965638852218866421406757005347779112650266944627119456708658514872015666604697181807318666124230462032721441190184547901658383311336726606242260853208432746695487657174818740353040065096290888124748115172289133917460305895516564506807851074956885092825748579459198387524352508603707711181488893392623522898407164057585210321172006415704599626186167432837514886957441607892267795298148245050664207677028263030041284342062992070563260721413934128598504839849471493919469802806602886049228518217615461534599871759439898257858444735183638150001298722437900657452857494348940948815644100767323888839678560769124963506539440211146899924817754201784456286826266097235176552103057597920307963351832095110501199343956435390634441065241672006519431905326693726074701808319095707001255827036282182534766326024124366747123416917774102778940504072084602637697438194669796583931017764775263830455263763136437641192673984065350551959143871989738495368592009545927462961139482365230495000029023400552818051645767330042227304294353155390669777659340997244343023590649518832178531166337781649474055024030666025812917669200393943974763276464591728536067262841104090562236050624871394631267213639517033373325836263847650020036806860245022133412246760505287997679918779418506126287269723001637844602021985778014353324048979359295357990181692070643693838118466396501782920390091592771973733956250542753967683910311315494782713826114545005703992837150297566622108025141939186188247724699473877744840213725593455024835033429978144350245792802915853831962184284363581243751119532487404284252953768972464168352404613087599262891374950443855097017084096051836687408278069084529954305429391124584221289835729558421738426915070349283198727868145759502258401094475489153715142899446921542320488103361160879983627286174343060141019342774477105245958628804064448486931138353526984104072346073138402455317049614350474107028969321286094487053738131205489181450354783401074954161134729725773254980825437655339191816630403489048668798768136434318059724038773237263239437706465499145554608501761897359455518000506816248859965508248672891067785755584132004196052027041890994522355962348346482573433709922276686736886495729850899625778396728750164881687538733899916678117158111584507904434166083196856694477210193519321019331895684290390144826751406840658839091448479679609725553396901659591475229897415488868217485789630153245565909309934164116533388989282804203754963921359589488897120705079500795879792419663481543438652071792949915627883892068205883036266921976723904059755832673073398753409922759686310101860159172013953726373960442034008889955928417868599065039356467154141072033518158614623404250420555340969377391625921178333555766815828593731529557766158017428974191927571735024536375515241534038839417414380159676175000804431749505103182996457429211968281757996890235176484972525211405380697030503969474588162407546982451651717117747294778082559347312690271610855351106486484554605217988102162737160818082591089378793132229024642918936405846903715686690468538353543260427377849323610403361947560957268279690354125399991337920929313798854873756376662442317268979586492269509185453371110010282003178294385351993518454346583389737208535259468888916994385791271354326433413341622796678452695087157296286042178646674135916857778774870862092356869005103516367265674780458007523239724240811880902739323051832623167587217779145813038146536325740767094287921314468297462216203456563424532997570603366283180866905685756211281863642196117547038595382584081207623010229831335269230576218508078795409851389798534218414944472271786893703908860310406361100446030644492600215258922514426516646652862069917737619890483644242745570389546328468586607781115523318440063435587373665207045397487821512985935566435219422408200178748279878796718421651585957297046956997946611581378663444695600948268096354669035205174845306818448237968240258046237656668591806648107385669701539196243370610680691169538610428539077046552527913118223957432266453689527154091411626965886211005428405832114369387661067849215123312828646440182825572897340970567452918862498511799193378209335970368184966900486633752287851271580826159295972188688516764763670785013439960523493119917310470276812738192017728161475201722422236448396638158589650742216993818093439761489379699107870254747490574503254859532524192799803984563108484300770812517164552331751040902852455093153506240037128342773304190089889915370500734301185151260726673843858461293927021834555055209210751786765203340062085898149675861513673701112177201779812692512843048846914135548371843516769163819755744471936835052904863797306662500759271344918572964251948873355227115209274510548929427288447452888484687989348078334867178784062332772366693731496988398545164301322560523997298282737545129556914256245543978562057228477831941621152612431543348971306840032545848974184232951240422902455316797074068594148649719661011502351266615939382008036812693134960047531697819708377538628717749318976911822797507041687864656523039629350400770931411041493750697579098380173822028766581621919443003477621247437893435776661949040634145036909482275682389089980436891782479716994871325448719894724894338911818725714177176573998163105735124431477469127668198749871787089096866125584946016032321899356633378386889936248353239602093300795491286387986715564507513610032076273813392147454380363339518888674346250628153426906587474016307310353800238864433829827575358233219187328298215088697057423074566762667042632968155736213126481666840134051908856765855067027907349938637560248117998914449826158552997510510147288026488747741079338491855313315475040376444756747419221556430399691024378367968826319576821967530754703151589478553153855256621553239845209978128105669684559629419221892161961976534356115581742158612385410106643068389989728711566789759983233245329706819795065567593191528067591381897282686377555199485774561675143955366333661638074721922912868029367767257951158203534881640779192022501354081258458375476969188826889460613616378268580405408612707677252028916048133917494264712151607404669919978067099443664258687322219921539673993556911427128408380078507455631114673241342205696654058612188057269698063641430715825951364312505018937337709328581697911981814860550398612865812579354666333415933029275967029479520270797373678067059090714436010846633656958088315653768690261774432201957237257089147330482173627584782830206725761317399136822435146921131074703159644750449112680430637404706459803351777070267043186244586124976135908196672314527311088020929452656375916994788781173629541426183174918684838207603015043143810577222828183207772882694070851051548033967511375701796817096442977195860855671516052291558338446710905161776926126068210151751037556967284754924107810069198848947019678021860516812918007182891272011366750258918147307248072511048850036229771316403214829955137086179877105018075667009689652620538072414804890297384050109217005217985290777988570076790625767063301352363565134049824108837097621199839675386790056665403405815747503030748983016359572947194405527772217166742966737422478172566040647028995082574559120014422848197436943878341363031621930581515170170297915734855639774253380635884178775041830823199195736805900349162741649826045328228412595965263924722467763422087785531918523408956875074607704644682352310462482102890725443844516662826460707485781557650579947530601512267174295773358377969568446546819663325700715580687555404822158413524656012571770857798370045403720142868433684364310706892501257862741098268401388825092167783669089244287378656704203399564472951788229079341913111584157384961356686754360655852538863191370955713437441888547471966744665891703530483641508923964972196567432539156758112104982096810177756841595798270956005122037672859743005483700075803555157985165330754378229128612579809311845409539775177173738183244383231072421566577660805120489218809812012519041888357770612105087847465095290562338616826013407579995349786191017929816761772081398632165709243334341456460535948061063990721152277732911990991813459178386227078233788443307686054783147571840252719312115732778088579772583569125567088805298252995316047853364824935590985957843601615037332314370452597473134593944392786180421733210558858327540280499707664222347419461517681909975420869851815650607613085446058814444434930458789630570040797253947168822721760842927415850855035038536112439483374577974911761775128475463416923959296661312635294716601932274055453763629554992326605360804372566590599814374286750807833805290914988931822193542375522684659369230424121341456359736532096049062658884941181028213933960242824033445054396040660670982769918515968429684459945099684746231022972617872509388919724708166235555803862826154607213651701891587824781175555683165062670688636619315225284338262445827493422566237784627966095809715045812240149923784705288973271123410172844017787799377139591121467255998605690666061809667317049915852740149786620350124370141637140901646112390695202701049958938276686465113732594274055541057176446431624742670567647970964200926205079470194760708151876925880447715206875969192255384880507692458911930251608624047834642029137631712851511421163449783610079902371864284883849414545795188753574599923307744618289901446406233316170027080070014819768328519039349252752999899588908433160922467650007331142423652496692736990018023527586448658264696140894259657092131363754716749553909402723637705584669174147382147347959562317435595983252120892794074599883573384359135710153595615341547838356770830409148945784072905366144938482630387218463042499953841282477070906442123996860490808370092480142510122461886053190910226901600012666234113959730524456402462958722891559679017744550289413822867022157086419212799101735586198894191220093295179629661214771448944537522843819470373734781668583771613663612975476307499965071713430527452283657403505904456164024304727728785719396798075024551802962124543122355457235072177701973357690092752933163574846825866503364352471554348286639658086778269522155956348318645210500329786538659648509673350433813826883386652845342683232852921075138073105292951400522560025038274783490029553615490711417273888651502668655282509027258343049069116563667303284861478335981414474204709309768989939177183295842501380192294527542428589129041253622005459553694629114281678142471243499567651860658127647188788436795568034556686524485321759320543768469428234293855652154458725661505945377862490805803797911249242488994895225143731959497699470263900399370379897656700641148490462897719835810218835448341173439365851347504572500610384420982658238043788446589649647164277266239335455131641166781542414225161756948691916245268189768286821313919888064860406066509242359247932581982952439410194718720966633636016041260405174396085827987476225776045054709959960794371921085277912277324039300423324083018620347849511162572983445718839364240777359788312403937530305019850655517203794949103337428969054211337355095039085758260269599696839948862693264313817008373817579665259697249710332641836321788336982054924283755735035367801805974369536117239781184927406327190397657667749329922543097637781787332179629650924193502665392106064021762810720339011164221435056198475400064449123280813764416506812946406828727193980782550668994589925713353488444254677377966548246864359224776340959032787480929764605556870899468238407892190950260352886202582334768105065517608204748731969412231754296306197306763142434063807130767569373972746872153029420599914486367068441281895103252295953929119041116721563767835077431570618622347203519439707322934385546606420546322927046486385630192202419991981781775510302395422829702716021083848908680691148118460245279249795191757974067534068567092006927034688283946000261422178467599494616658573766541860585048824707183237146591456199140462277031827401227835785135468994381182489875588755997745018589091365622116795221775766372534059843681061119976481726526614802643148195928222521776329508476966404481725523773780328899308441968511373291487200412587761784219933126037536393079356458132919323902643385555030816213286731929816999757564194606417887785696357844045163314867393970712692214815365209115636861203689561643818220878896382925579516568467293062549271910465765697914772196896543267998076730035295839816152392722775246068811901617615073582166323897892312351247823509012020408853944929895787611370950568568253818138798148417890705615469963206531943240975888341450321006276123110491185853425084089161003879570314303818524419648134154325816540905712504308712619612238758441286237102343497880200501657562421824170209941884045863624944025577230998663792918947409676619553547007402298399713112713472913313786982498424634974727453526512203533360244962731309600797721131185524830449403707770898200856675671449903017747288495389695475249515237327835401693368843788733962286098831922150683171159420504346775712965104530927304021127717154888792429586232836033482905936001092138419706488622287363244191113748640634377232175921400025371871950387451237116754998703775409314214681881902797069682935343032121011275141280347838228151602137849537767798262265206085109272564364988381947036986575815830651766939064184541954069057198451225346440736588379585724708359027626572716002882192080156816992700261268374015438463090888123465954595475354059319757103930761402849244693954447908704999189159801924244302521971457285167291414695601192946923038845061408513061750802064788637511630293771654008264494681067627899660683840288837783849555389476425312511391144250111845804231648385639964987645369238477984135677376820647558369593230175478598987537288505141471452610724818729773095208132519744642716709688194980064905064206233896969957844543233193703525660738457615250221541450586903204153913036134461097355142793991251431508828543062622681127000174842677824118634907345019472167118773058584988667033155881616703341203182419936431134681074339928397851928679508769238966557144178078595454447938463118905119573463999857253133276310161622979914216894534359573458431845042760573181567155727019804240395506840694699603100759713975487163748272958421107985002174793651504898318857271612182816322590657839553027959313786901399258221325546514124907361838228270940437553107475169142131775815804239587621324142675409435944983860449239066647599171139221856843518258169597413096969925165034542035849395415952188287317682197654083281456908820007722888199256800835187095979081004170521223063995608872363661952428007618719248024328699359570543586990670196383108633653959531057273135730898742663540701205149145121396558086189481052964588018903972747997541419789391416092957219784055048994510192331859563497043567928131989994498762394951692556333407764629908715742068109403133393067686593768869975231313109575073258313225584815112046870010293092202150185041520180892961079948073424427976174959250179074881126823228727029178393178687286926864172873938008773530567551274446652634112626181836071545365027849367467402846513045398195667336251084386418839672978696934191685967708823791281966849164083365480424638953710558640121094270851592453454859283580714290596604237978598561209837941011386952662804009778516994561324355863771748563727802978106554025894829134569857585826333366262934453901742003410708961455164070347013918193520621977749712362837012486761232901503323873310041069719250400252059666023752615821368798558963225933963174453674682281422183195171761265924919126298498554417038387426994747190758392088816955367095936897935715977770278107867380355590720840517140511070847824871783343091282652901224835226661856713414859218290863137619362168931371379817890469133572320268475387599138318015311356690464971297244082191647725409440722690287185077436789291374522688600128587020316271841097840791006070401930828105029918650665567594960531952970822479682688993888349348465983966684013111553508334608057156224001268500256629403314504046406063493755646755868441938373404321716740023352697007428433926681865219197616466459607592110343223620629988458419646185205672449183115387709325969707343831623532576510671522735775577337565326815916699902172105079781614932663201033757288009680886861714586184087778419572458603390643816122674361987482052216703611555254840257389060126427627293502657176191513888295088671671039762279641647808422513673207502204819700260268524774175626875859539783464631314129072059919502371125613880233238069438417460451818898078547544058908445305066150108444885962280831533781067028190757262209611711146704067472494565739033707016718792169702107489707428702509451611776014481260895431858610097585665338363762227680887384020610446083813187490374427076861880414171786400735799824593794211765935180986081835952343746219382989505744935095655322638626542389912066661354286389250383041026439451852512415910629420533222625952233116210034620519604034572361269562863875203186675922447089212072890499054570396668613393082684796614623483581540148877709674488178811923856375064455427183188683210887562828979829469512647640212494257048799774754412749857570479151680807087838783834295359404535596262652988366743141090625538969438148943219045545650403546743719434899134659547750564030166859811360329852801843235852977400374122231380144575626594654614331785843973423756179910569790817848693953464005120429456814476360203210209668488485594614966214270772490854402521648145248332223947364190009420465813582391063588700364058749749909307511809440739891850796676523040777182442628543091999510772896966636339578138870952039444191410420523482028071239922026412247565947344721082250826188658395995011564403727038249172189006945264502600958404966823072770172192036105232793446206787090379829542389894567715545042752837058606092178164037105298362908592723139416118320185262962277600265560584060656997240739652830407715133444456495634560680090925543322632134542230974342614598661715774034322501739636312544693603111398914917487190445239437251224962996684758663251605295549220093756578256000161676293654231214576148331082820660313351681765148222771994181646684128937696906118551558516369193525663689189589408777847691541991573201313460198213506755044478902817172263788572173523148629368593868581936941025868412568927335820706850573541654612610224715545570754518601726511382239228092990114008577064382993361643433784264227862315147233963328345930805992616245528303452878656862828326870303160682821679481286483748667527713228122749324953604275780679262588523203153853772470810973424671077536279775630448113993326999672515731474541169834764262392528008250544337453989949178983393309675529500755067515428391637441290086821827791048651581726414259676305059940294832215041071010694443227109340867004004911915510732138715258279909219902719429495702466002580396232988186866871369238466524655664518126195035603433040718682434192334530092825181850048901670086128683690476947082780972037192914924532219654880124316949253817343825521347238120141363933328926185930938536701014345774546882190498611313512061879661922644944138843293170611920842368059261250615502374861302358258405272374641051252892553049635737627973957929473062389337866461761775687531200851771792867402087108627502429700606483532116347894394604026985631176490129639766593620574176003041012967054314722211931796607375485411860383885509609420393730342483705364730806571218187342447898082943576384726411349099736297682846207646927397774537652118791831811044718735983304493403001775748425727642517027604210933700630674902276717366428575719395233774370551792639438164084006029752143813727679652971603575568180776134384442672176117235155312783900859628081001633370252944947354695852420557298874585032183576063582375669978564719420822534773794150525110250402429745582639962463432211090183297743544004414243435905620029218719828041248750047956802987003315653619881409010996417005397128567310923534191130354943467178848775670804241276279382665231063494278261995936808765926262939839332033979569372930943069982699543025125469521837249272190071549742957222830311984055657034677916847554471311625990572214886304237907405494397043154401984817783443167377499578572926114189413256492590416617421373768359498783430944568669067505337996446376634490354033513036358800029270566623106597827811924126226355804438171560980294748593201447770186744844334108645162550978028269742752676267165372981693720491571572247511159685685864644759360108893878310513745886086007584813816531546849753287623774222709734301489668047788330198205925996323361583850730352828406964725285845528199989108891097513895204838488516115146902306987398487221103251535131671128198435616960469999773214901810002572185953319140667487315275249472730018145854321439020423972307223298658104842872853485881476939619807388624194301988355350730076643901962418538796460496197568624870510431194435290251437356873182506967315139252143315038418011506762108586738842015438038725661927770297703907394563217700342400274099898255025162223146841565428200733955285010428397727875114818184214395635394680513787996399719977466009047631631504747545244142450454890106948920631033801030169179507262328417555687112488970496904389976431371667293560016534976206891334645740676265622405903758478408879026298622574840002138972434321284737248327443589230115280461887426778557152536580760809311663008924737652203078793289580986721477772797003472143396480091713222822383261651367483567496607465641263416100696848798889418909256844070159416600377766052427956756150303966585397637648004360486837185023764084731186743170135696749508559153109938972849556314157540549001072734505014731766660870169105380227820131542007497796941313308226996625281916815138081632229200796559230138475273042791652146124689577243141654188799915672445966362777757703816995888596616812283745147802547040694326777249858142598160242531354297248328050289205832596966958768450677856775343673896767184578515119496458226441962622530165966348906647579178478225263461929412504591974223773562378847688229133213556431840883741564318340619479418669736163935899520169254733148493404508393688259320345349286467455588310915188279368564588089802204807293874554306875528053752557427479873304564408086072074938209274372078252880593079101621770386786599038604345596096874273828603792229874716360259981867136656837843608915602551715721594507905565502152400513583253447999747416350673587704797120659278401299859237617001540957211935795595628993619203086017209950882500689594818888113266020660183441037698774988047675601615311447865191489280399792449853344977829620684022299832218248682613811351688005843554582614239057916524788568776292450386724186663266693610866261960826764971848387116376705239320419066006035532805162941506751417047775690713849743314881744000954252796943872304622040461966924988703147745683009089217626155811441473522789615375044053030660806769419423242584841362044208703980917701432764137377004696267482818774326945734189647164716883327427197742077043885579327895708264473771972176761663859817585563812238795093264451957464157880045183130778070851951127384149969025902754103215171135215094565879815474905363271934071962540960118439772981949797669792373528646559247053299425297587679368249591357587660906287475680157290493242056413539224958796744201610742428531130332674161640431453518888446637979099989300089606040915743214430515520410297276617634967879404237395325589710362788662586185447652850745770814865113359438056948276788121186049086718700396910059519013317845313384128851818870164290631155917416042493978063267918920726381388115460694320139340237472917764762407580284671937015074270451181542327391140784793995944599515322730551812520116827288062778976565913446713849988354572429937427763659108466963069445775186853770892086628291860650107596652273933386010546235038106802594798827261983160459906422984969352061340552458135862754394087187246011070540632265492637296999333166436292259353775267462793304713946810869321970120995004046203099784753252149964536494797509120444197639389181686274871015171060155723853178422737994615924112260836738679733620275117973727172182686064585050544708208054364645739464383516771487316424357774656893166819185462086631413077957110250231445214249111833292833202066621313461097519202639376285380976881855502879023110088764573478573947681115866406940052314427701575639032133242993899754473804856564130673221668646396424805659465142421362683865210575180671766417569025544730033978821160541634877646755354877140398050856131032148816778947859456431869699350078054143846894900044231299481862114577635913045108622313869119216611912433351773483226994355888142944787208948727566847043450672569049003303548508252005128166100356832739836380816983527087520686964428052451977897235693394033041305838150838895345613288750536267955765216267569899035110638483649923073611192319839573261055076546604886308893731618894206352857892960035918319755361141102999688324201167083554187435273136982197778147957142273566312487600601648336689677276229704621655674992388413498400904853724179643341603921226279706192643035735595697833748131582262482700359584694887699859691473917139879371989814907463500467106551083094845743815344090239697648662523455552016995593848028741104341365585795017074861096937040682814636434454989366112097159806165233963195970083446013496547583643285581416343212238760072042506247831732030767008373276597324796513958272658213050671625820982096043691800934043536670981324428877618437275559531752623639322665662969032939773713493949831782592656450992747695272289713137269774497823520662494293030439750531384270500549234016732512718091086522547513405425444740160578806295726125268549690583741792211843529807811826086685597012955691545896244137111483709768869790656311731052673956694128394536450889054050121406676869007343597953575034775687733702844872427923135999100849715031722202297896549044380804722851292340490050976476932295739693165007272075948474241144965530414340663876456331182032557213768782283425271116375283431421147496924076910468395741428280621939028594569304326564019032308529407524640220015612854029478282650170647508283682731931933893475989451584046230025809980155367577630504355912865539368560229755599234131974727106651963345219491202001964078062372135963579140292294076388537497935955338113700867504326845741634877807018898110270326638920649532165058258216207359707554505670656865130462754000741407197751765388874171658014443186519719897494553834886371582750919470586533648867845710612755696766295861265205292611403815310705437007991003418525716287081143156692636299227676931402739710561158188572298790920605740661642374912074120626461002799694004861826814815624724417215601126989956220951057071582946044467581601145856544275960641084242695083214888230185622314521971774225166481205456695285127926889520202476982783997095032966609048220137820528960798245059440698612361369656635050969903742950687935123088482543379568390380177031001178075984892315127131653841226852672852423174277566801224179707502628874342182111420523623700695833949394725566826751143627661934306740258234542939667428972559800891106461044536164081567815776986512192651008813898092263956348306881864286932190086434645811288423701433786259954222852799026909487366377923646787038730905786765046267446892635374947530887902218044974948286495652479382076468736790345305065896568200015847270996775055505338014156634673085286963239317144053248269242803935704425081033157945756286890818920974313766885709556930665028306700503444487847694054489326530422269409677128936343292359637822860104425435408418027163784396238265748820931201737029399489556071255029335230239961339568223193126485010438999755034143872762693378067937599799137156816362372520133575041242622290528865200992220960598212594249360567064068503197529148065083310713697811250231520895801009955123621194743446888884657687792979600150841840336164896932475291968724946053598839881167242143971501084287802035543941961284517756090594922020973585985543306834953226589746459046322859067418778681270063668968012459968508289626657008311109606142872960467257957984271806298927330413509320423005592997035259648192536308359648914861824188991009933698800002406911774735857748332842236751365679835168708719093296516714138179879532696073420741119576923099928098505175766926595117660178061930214803440445209132054643449068905640554748723966812529337804153825471396698970190949459160340250358939784825727439879051397308834534795072353221119223914632419426395484581104684257772436797511128159452460709298177453028024120498567475223064182835163195162288940305457745391020841854161095580623605059927604695720129818725656417541533265748496793979616766345835999162185038127543758336478318116644195886404165625792772091755227886991595597067638768462156328299311666985886564081551162180525095826203546924699569441992738768574781150978125188035582308440029221535467494939682804703954994180015673941424512540313089546707408272841881632652091480361457106061135743714086881703321534500972935021700438658559689196615666600200632807609522548841230669126157628016082794267921753083058023654288613471996785168576825678172225816649834823329972030729158877900874662588261078371153988836830336181166618401033868987994595785291622664420992164237208416873104918000217653996843992414750389373071103571238379495021639666944303634137480386217782947556189473399978532511291985825032933307761488714336864170185547585541904194228061141133876232295308440282013864405278544602033595739686047105558722397863867221183386742337605370175306846331918045302583987983877443915043923548897535196094754271342124885293658762458756822074167018387694122371787183617915971245191326922087306854811804202078025425082036327535871233280623077870830205259284962008294626149167318883981516678549354194121008359434460321059574659998711473687711069551028933217015394927310508795243505275956036610586474299749792505791064027940436412681411610510716779314457634768733114979822658445117599434786065836245997966850857806721369246741593370655040349956636547079324861188146172713839918294425071405241705063605809251080788400482743543795432665260496181753283570351516161786670944741045343041180091424100038006862551134063147654624140556516350361206738633512428307857559919218640306132462551870392714787822739177973069376687774162705530818730176893951704787703023743929670693573957849552800942312790244976974286695710771087890631835654991698795228501523982265035573459109250182939401448753196971769980817233096662993536713217873948809777059888501527114921154718151018904129445776341564411071809567270495925580049120663524717176637663128565152055274003131668423681396475348650337923593881740650874261883669300179127152962003416160913597737431460683932224229330594012651294243579675795547550354911184823351842463703244229197201611676007106542389457599833344615572715781138339089521720778642392015832869270333005154393572797061966664682268597356743277089439082760694935942077918666793737750809985057527420798509873536933635346428076419450907959529215875921976295708546390952450217975786631464176254082917746290519529524755819160878403199353586253268669294842537346067781412190419344625212643687185027677256487537570206346802855672694083287534682653112016833115372292238810119871596808677512259245605478284372801821022906937444231846620639272908818029489822074667041294909375431952393550052840325156682530179228096662659980455884846388084166730132889246158625560229837246393210264342178310660109655888422531062941607815104006424946658017053018429641320734142989844619691009226534235738519450916321039421280746332581044896170052284860100958267838762419031266604228651216534459056086565219018809554086541571113174894712140947921541495310077968198234459556031103870641579856193212404589678052342709608871142198257571334896095331313038983843630905645954609863724291740949635160166754724539136417781365775281928137391565902682887083706020111739455512334036291607347276204607358625944639053636803631523161270823317494288851702026101489549414306931641030410622746834842431258497462658987111441622648227401338740390964250914074016829900093773853975706525644617712523064622646411599109623615266454161234213501878973490915164532529050946708745006943488194117123071860045308185281462879303118603968922542083795535874475350343922805537982991332279062870964387189624582612901523557335477814492367801475692980819184655567147949035502421174822529763674717203003169702055904404521175509254951585129784085104936645219900342236031715461053642004638283207018649702174780102428677772207504475632667132408159442213976175768815360790435714078300283301119828800529186368852022856861960377321922651248653718917555847131687879049986289544940300146485663667601465037677421851482093082377465543334174608475122321448088624284143579073634089380172906515793841566814650474747314384494178381331518020088731253138399505143404046205369447955711391970871419909986860221523451707825467049387726268822304328823953896629151972130043452564179515265826110911917396719967735393675458227309263158480196136168477492313333032725724122022804259512337738986307735065687263776991074547163465576262325552649670201809846173120976792413279310639735379431470164866549902632122981414444822059069352485561998378335393935690116246867190360639026826955818032410039225785027755693122416610026586100153331512826866980191011182610552208435056430598386183733347863590343199485601298563119121972047541813179539740619753560236809047544158259543738678667663026194463426955764936255755216968605089751745042677379600938058526245909765028983319458883228942450570497136260748609952645573162338581626727688800450572451293593832415847030532705844884607950247278795253768748513199435830892019512685474822610080777924879159146615910086341976431368372317061505347256243224423688033384471285510851725355867966785806852656291598327356830457659016182068439058770980331791053067070322439342150832934454445505566233749944849896577594745342591890062652177667548922362166266624884651966564594538391470457801343720258153360134439934784526215746664403237529443397951901390842662851372148973958947235216497725989477546007812570651754670432901169680603063073160032812871138762664369028163107348846811396652173239450611681022626306971074620426195050324463067805335518880705479506639794449805202803185446767443955804656711639569125452961400608604112236811335858010802808815066599383767273764833126587058729057822604519583083024532872342428490954611560356163786024784547790576880108313623066983087690593209099512712792808218736822527932720324466953734579715529809477805034643416845864890637888909029111726385985899402857209807424633985180691173618931971429021196245486389738526013477801539699281194335969405483391822009112337622735709483874779023029049220008457328690166553780999376635857085207097480064514619908754117203845126645602591361561854088082277082788072538658831025622503387221619048913763414968238754848536579192133625737750314407578054148611206917433843490058512871905952088586422049717402083608328808423459246654599380001380812170996256077261597053263666298585302685905633970400424043180462318821756648903299577632682276453120157429540059836902917257234670440934053097492434509391571443558005339875921563902613332013920088959117009941272658513224639755509960467277148137061983926897153281157083841414215797050252324845078166037748581266595853381168027672765766161283897526298888277831287813312187314215361244878771170897803102499066932814768340743125358103325970999281779388461076944961427909925606607316080553252485591190862571827321406914359622521917643362973549005521470363782983691331371143724732443946064837412186666128604376965798255286775001414745815224034073113325114022565930473470480918936188608746582156603713432432085061078385882056424359736079007780711342358827132266983811281913288833873451896208553279835939568468764751683970453680206712188187976254487314306869983971109898742490864212003686668508569457161964913252612813027932134281405667609839615830856041914151413493749409322544824911850378774237509366296265579239832035482730508854862064935042126518414393126812640779375915265018707614598363673633617189000404103967685152476258999263250605328343694447586712310401474455819670381492787750554000108629253255716882583608188356146237546446970882768645268452045028247383392678495691715643320816959109014683003359910836943203899679553280054836924390004360670425209058471042875132125526832202125214618275785732075438333058508114815398195101048689656790149936618774256900392850482630005502006067737919254636780700125564430362861654965216385641699844991948348940592807087844945194824146009159081132532844336854551984418911884117535612074694720948712076283336335159630846597940262413501919211648950787475703250709294739821314561063010145341954238584655829670841782276587519750097389144683672562902829424787564341016620226494565841816245602751511272648914979772980981572492535148529202675039260484530432056062016748938949005905287558753519160998439297766241637752749902374018538136103660504607620507440847946773381769766916446233501286892837462040032714706306840302122655766313862628566447606557990218332029236188460318661725016803566382044714297973186680660589389847141121305628272257297644860230413392276957985337560681645946763664940477469227248182277733001737313525825418604944458746657082606134333693347696433121680564568900755512300553265967731110461702148516533526055686270901266067267433858871241303839335534661319789579713029555305077730673916521543818348239664399131318968776404854254711129833080361906025415576349104304850607059536770704612241583626401290902122201500093471627629856424744156398269521591727811659531322069946934450271468227518428655425005073141149857985403845417055651346561181001739859791579769086730827710662542327454078814376241400676513872852913096807457068056713619107699375438624211915629739853023708255986705325646585210293866611497629165222912282628523203595128743117514949713615868116662557379861235209624682532793061998958869489568817786458185959799468524921883181337605525516827299544915076621749118184601962908955953604871653413627646901838060699934470670434609219324440667264347536990058716894880243341639041479655468930529354174597408976215613428295943605275051134962884059667106044886030173590655406637891379338469513521521054005057855707040150920827930918188389432495576846181340135089254536962057517588211207636900997031958631724615193168879088927608420832755200675600939559776134835962335502400645454402118279886202568747801635220015155273713962146970382297790685058505640743977250577675312050603038854149259930434617570048560144237187054402312404035067202620420605380435861474359695251744574230311925198724844871072200473824071511128152763405913064396764227704579869753178390691474216315200413960426702140735528845700215736231637169680946604215200612958156423706268723340617823010621958734698670811256058012767073254293479788673555483386597697296849969095111704052211272337554946193759126594742688693710053213984261823842844319607873734179589610403353570590737550804946507925169661213822133520985975750850024848134189336454148630636221848686491793366166001500310052758966026783706558806095359496064041648724186344504157166677665466444386111398115517001618536770717785607455202007862586308907775575465981958758523193414457678503560924829372768574810161663428441140789616048265968848902577902850939511147583354844053835143203434147974426180693164548941753163672218009384372020528451848415991426101906204977954428744719608514399076184668695617093591050445929068974752550527438103949594989977970644357934742773136973991416160762875835438476578309289152651518288100093786434651614615266727453268671349728494932908664262046601864958971970049282991069558614544757991666159681919928356467513375735253512872804390928204648262842751401099982093941776478381124100826144048793487004657222365201873403892075386446540197074588411936414039081049617409536648144371961941451905209302475355760993812639600189213929321111978935729081730073732745568413310383978668262631734870115084408022969297184150509495947369511198149855075843997846511666330468058646545622148439824887561675871346519277876024939972171480050050458108839422856072737300640769298295000391851260303684492607621614369571292276661865094555267629417960681522192929705173671896568660405046088102260076786209351844852625274658397231602719841226705220083061523026648839649427251911151089278975299674974818714610903850663918414806228819375236019632429485324553184194695546482740341657290411453837263135900184632116770560275032017242460590713780957288162812425669300436181555709064531888845006495675224429196714611949584937744895692394740228751432828734794717962098844052172896356134591182853738356154448282814613881618372413612623355896829249767035833499010266832217819817114623933894747006941894865627196101685460916097526081944285382724704868456246757312632021645137255839454340790802822748270954835642212251940613621515744419809694912151987826113065178204326636534154640131744698781793697131397317353795917378283002879334381909644114327227213300847052265256092547936694461190245980421728115096193152446841903973430022511896469485813008620691601547961541563834733890096728994020257597916907702805130726175248092461823425543252424893252594971647490774758981802845120005109775431668664169775582530999582122157092244769984210871093348150940519479859319735210109385311381374952520178346213861395785464612036513635896879191417098636613618567750151701970735403480769605863798850035346472143466722705820189186547061097797012833309054039603913416100059718352348055682853743226638214637532681430825510227375017691788154758195946211304418638003835964495402550771435135560638922634008323060139336699087286538578294985697160724410213604251849257110089660759367759709265726714673156708399149602739546214541393576613114946114091828837362185979624969972275410037187546398168133561115585218604602523777039061446974339241702264256635549458003450777367746934178086768215742179120250281478535650342448156183078881850133941311290147682602782123567633117285708163591313984147840949311400175987167358655049733192648192040144420286369815246839562339541437152257067261569179741335400265664584115687853694144698322047641237844921056861258478433051940002894857706933524818382863925479373770054091781180484496785741393119212245328235217777151938483637446977809027158512802892832506537761560652143906031527382286968746229501007776274095436391839176021428213801256966127061731746437347905801397748687222419185779132886559688348272884331442778056470014332857518823361035068710960940471097212258760968409055165898846327213435713583513512071744380612217996844827173412989480781577661319849765782571850804960303049888219203136536613450207228357154859819604452382647200015812059307009643882590032084090731045419018591173338011607062864560925734821329611932216971361051930037455107758307563110614253061705915241683690052265432621881705036574364707147359595535900903346152669425869114937911958358084516164881901152828045216100846455680389505078662850740387022650305266967149598207405470335955858212659116908290897617367448145085973461184965487390055189133222256447601144365703971731736348207688292560189745764391093916695986027393319646215181308369825244726405043299381230483316138981588925384118606892819226110683243310498799772791847649279837646046264033573268282529447871462057504416382009619270101639770321442737714891141899000026401142778402945418765879965469893717625016772257044977516829060787559498309171720751077575666671446999188589669011921554803831402305183833144131286312955542118550679217038600374856428355824468226379565734768368920596340824947862965411810776450410859532366763714132560627048754432881096078567957665237136415763029984798214316279793636348556000514459567946316175398678748931796073263618959729844325955969367438607139199503452217113660311656836282312764556275851243636638583491102748623736893214700364758921800697749585339640930385287285417755177672359545178437928908000206004100957519413593266176227171835293160365223634081833373788287302654309962508520060257236797770870951366876231394599771766003876439114107551207732568459547862068296660041461706688218778175390114796331788234742260864147150663684854130513143418642177409548642063102874567128016208654263434395988005736204354411305740768771901286963605642599168694538175734396546836769956984927000400777836237802004245087840015474165369624779725359467904931995962468179192783961790965872895546034464133284128253454466531235676249009638616863553707639976143472510993315594324615239945812251828201832087090271794324243279409314217250978000745655037902333930561707899828076338228281766795030409262866966220315674130858033493391475833865723867762733975438546582879736443400926413761267049695521012860378848850262849946267239743111221662840050847454183523238077993546225589633273878236355077118390812254937398231160609004323699874920108184919048492196951503375799139888296571938877062985920379630052551288558600398244656021723801474678830361113704574608885532943786739456595399029395594158490847750754666314775295427663164719701751671944519200212713669767922141696360841256109432492700698348751064421914680408543545106170025982563077021925046892049188822222182633670964459964309215305651249433149275280886683911526691402305214407809113790232528420339615627293612319749360677295525032584539599386694239429753793572725179669775875518665129759893288521955117079113653388721289778853185928054075356883724105634790849422993685422381694104505787210929793097791963179521518174700614966305677803399140409373277356961441685360571707636321720127258969007012336037948430926374454737318111536452613113027082729371333056750455269687279607431700218345567242911352413817312991959416303353756664848039895872299267232209244268869716145387827219102661719216354016648714848511046177172853809101040235339877095544542881242431197960931701532548310295085634823418273828048151627324083012345246763647226256298611693756080088297755629561728403963046624127511523577459635857004091956914293098750349411877628795481130141069514986664105726052195662772760074957544430842013908844735981969568503901105158103693263359944944889812956929730177917682744169839791007474091398123325951103441191316650480916216553125039168168952021711699373461898206277780182613213666592854079173242809143737439337100836068207275301579537617131466538143213546314734615005382313786795222347852220114388265800458325650187097006768321266641592768978590953549955134652560968785604327496863067766609819711408878903290155734220117032307394268476607271084525866518459974927227982037084840229583004130460530858624611720952426295010951409755127489560964547762213330852785591221055809600632978614378561486607480366958592974836596623906744565613326316846940526444790341132944403653490099301693129085703990367128813128475692085720984940503097692573880658577619208983303852426838557488201837422355457017321628770910887558274857357038989504159744257899636017605976337301553783205997538331043203062867665719862095551307094434172396028992422931076282738426036091040071061703573236168339438674595424720850711352229321680019522770373645400111614123876709800034797522276597212892107474648411285940896745399771362347715289740728909821666316859366676033892997284357842652630570922544036547464830550957959515647261436474237587292185151850380902567222787126437593176731219320967518465038623771930215372384008609282236989483115972866675930717322822902142533298875351151079884052186046005407516734144896410862735535409749359608959184602428154985875544214161838987741922907413475492993637078792297819768223831670563981278561098210156064185420700823986279891327399674830954636764243234606831074600321395161370090343405273569891363075426084538735091777282341664610363610809760772307458328621551208001706226571157608128340156913631640355570618721644036932597968229658256129528389782385193541159818062112354946781095708763623267526940740396649365807372717053116287015597195231393731788113191586021555159228793755983208487862276867006251012713274291434155738644645296937857785095049134642967471766794709546253066309396124509656890370432938400326151832923520850957104988832572291408917988713224499002288626617578022775694086351356333702854411357439238406205909813464401143468777550371892824533181562332639685792582799567172456332298685019465039843484021267576347033289404105549945330864192591723874480957978992884826020880915307202945157392054099842435437530106386123654104395604698293460322606034002367788955903456612973638458997610913260077581696288132558480044795642607976642937849880591834263397659809614747812075855877722024454585186212581543650435237838288329851696563392208189475171505779780030281377349094227998144235665796968230061011442919764263740421246789032570905950845687435269746278988266816781034917412058063662836471825644248335521708910856103057528319680016462726192198765764831280317977141997004803695913429265941191016809052646739020221986525743450118377149585270701697821658315090418464105494894517294964767978809835734632547042938533966937769257143504359685118638461988743272044133077131825967676427815974940406435422738396109294436426303040391906918267233373052587280246574222381880526319660557220644612734987954952996932114390741486140094797484083330273446315337344765707056072267939319958299867511434250700320162600579681543836036285123030265241204156477757349625973945442134887181310172970094217559351954555351662972250788706764991782318056450542625857852303930273810247325080622512816788930656531265520866639129821210757528181245205009964468609378506422660639067781676867986767175096840128600551391090603092719000732040615716014543690175198061274897877307247759133692090966634294733749489125011214636880754364677036401464947238083479206954958179738533478907029833171759458298676777080131040133382881259449943919882402394048744657468872907197470816880423944240477497810667932426614420940145610021587850085785562448732075245709983178401365114311914072138047506808680378409232657897625184505888281260560592271526390096158339030240353064056254493150445812867139956761156894111592131833054446854923034964079651947985027303088539167232384934522177543512893384731691489207745432935417433055426013002201091846246805223324926540238015829199475874892434336136072355656125721933296100094887020447074214923859759539183476200085893552873534975281580529584329942496155581741549013937469904493734226327031373054922474804889200171449606344599337421329246898781301743246123027585402987834222428872891177527920757395685847231469250316306672090995934969751853167734005908739066632143847690349563548473958978648066861176479706890902062235066295080386173054034231020716691839463465190072867542724262255846615593412761701668460127490094173197398675329369181999589832216817456773798551742064507818505410677685132763396689385971089079454160796949381555314834165345905620485349026347737881489036013320093413765730635484100811176848557107521130012121599021003768471570695540419903885148907201276242583241973142719561465658415929583252179550413773427541167095057578683218334675013257354043783681627880114840536402746648192097604331528109477655132916612063574466364231045785389928116881944652829441198458402191114846945695318619708174772732262270165337092091803072000358579123482174029491253995463425597272695092712057922311775280478284049722916908293114018462817605046781476779081000608143275298038284830219270727310533259957661396861882932210429186841956496854334903921045760693967761463421197439614896684933215401469696764677832139467016531829082346325119941413958234657207391435498900455605483910371197191876027540018099310600301458603550746325662471538270919970399166858170624867255429367767393727604401865462161683696581754124485546026120443034456879678760746833869549412781156350516472390021636041141189827145220167517895147970099308163949164197232885596387762848425935122684664845100806600414455042791901323048123406502616739959064328440348941359161020369001199181325669915536159459771467418985218091267118702759015516812722665006191393832585390556043162451942888281494104855264136891182267518340873464601417432306759556755003106839111516160024818878154609654046726678284896020146423964799268970480341018391450423407579250099038155458533802012870235415162735389219477732431445366033665163553633323313739553644321323043926582638838891179188148019325783452804421619137530104668072175044641425035667919046847065946391435601005133533205968730878190541470591472540996521767767034724650514250166847813543494826737201504619250358589768926222669405331334637629981639343142004458397045378732200270640307361566207361308925197377975466286256839278945702306682320065562565872803103233463873061434053265420852909813240314883460842884923455227087840730004686266328943665323252868635499886344937965654205340390492476700597502076551676388461961329873636441109893004177844485245162223502107089230861157733592748287772572193724976007232130256097204679922666794083239429113067166267133816510952461253012765997915315428533260303633857038536287341386685122562867978633799513850167597529014069998743962907055787947728144805939487843625333445889411974279369649836774706984017645786314316197493815165317158226510502930336793941440006698566338080094327552436801622242591501750796835512331469958783577741668495263166495823466698815630014688573073904733132672935935123338367639157638119550031823528575602884865834460079377718962477260457642936457789576630899604254922372870947339842725716448762193508935807786375330524589837435881438863537994072298266800824881339883803073516158420428990425313804963402537906634595399378041712361484408781604129875563546678801673313482067316331126057661548158102276469434744490878126843175547722939398069721059964207602435218267933258381567673671412354369162286986645480857305132869275538613207301583241302041733808277977223460506892192178807609694912630696720506563767530853399889931406519084885981302894423279092128348356387700875109368545860402191783577168509166720457244065608395253240386875706271162845002233505426175444469786039972650445854754894877750872767417217654415783442997434352113785276057676131197899694121859837790834069274371845597691098375348666546374043946183515119686355738073706544845531478821122808994286109609856148833344301427781463275173870058644935585752606982731542836236385639326546107639468693247099680130375082739364497673993006903832771096771815690917035141032526608966922985663331906324181990581968717798627049331266556967674921733892582080032945576933657620477185987236550629019829433877299061133334648482740712912914916653887203452593701977782702500466926583210384899107329925424891637572276409981046826683572420521332847096317412525771902977818479166311549148914506407897629345698946708253724877820835476024148835937695366509489500729754085426352714318646096955546331590368461329255925856126739250619343060359028975253224292068660192344025087497137492173870652814314984202581698952380329415579020878498392148389455125614609714455072306273889204756725134264611303666000370774385360514050642020841345011255561115738052292778984112510270870385764932133311969384180433083559153587422907450114469023382430389751030546587340777261734075737267946295035268028946164627427022084248763177177412092340666270903658099122610838251163747472948194790547119461981068791331842171232387333905992847247934535739031877226570920974838615003151996462419925052083480623029242852822516123774084265712231680388879096516904863649048751316633145990594146988272768535204044242759491684621573119486049601885896911667024040101481103544885234756668034772536401007934601099786667035185720260115918953562177030511964376089844829096323126066002860872053135317185077931188106253508051242280563538421562472001770537480175743932106326932592693629370619050439938294552438191368067514227115049895009558321581066609434414989496181771498416819786851388762417271506077338533704314457773972874222428618584726056039202794596859737504260268236516227851406937532950436409681094948359286999840664595550988203873019440025251280653476585708188851426044889310129211998737121439463848695895913606955572877103139757590254005719352492200030245137232339800504410812282983158396712440728828603657278700513237632085558980534325786494240269905040839212382534419324694387067944699514865672134745671786082550898796599859433887557046782099088647547024111623609554692468472488530057241227500818027480599249842314009647582919119037450964804803363452655587502476919930449986439995889102392259028638219414057401622773885425092083308785045727875975953047895537037101093134787845485632208612525016614782364011546948366406094894515423912363894310513497605868569708493989133374936380385495033137712928741260383525184887799720109100973212505624325913823289220313580395739544191030738527640163462438677749756471063566018711818352871953728228914661239533230651096237361681746175069917930874856620742444829306705392643190755667894951570166672443304785215815729098759717197021465549023922016179133583171696810083862313416616993085878294769375839504494515540548122315839260145420719117025245012026522758151549413516593109551423885244875720827881676662052409546378560821414293023231092578200710504442331132206731483090032583230540010794360145304856778270581576379076094718688479367024051664575869756278601429866380656887340807580743436064278824263919266058574818199255086401969385470350959233060141937289159243775429827838979386557036801137141533255553324948845884085367563477242866286703936183084772250230215034556737588038188479975231175903171402311526701824878998540174032087349124532571139098913961316671839125008007831146976378439050014977930268923753012588480481384841443852694599696945699630532361594593720724556977503905934463463132983564818671127559773449017543082201051658833280593353253855501703709523925558130602801027223657399995313071719760468381341951684722103124658351004817641266921544301271905540499193054234636988466071049697768807573786631089792947195654749498201045927471465933768923842208624625407681277629452171569703100977828129070212495263220762367418130080744215869356682056662041888064230699416018079665359710177746422041940664151180434630246158897163478220250447355513744182412949123436401236787829761834325092287118215581552853858510154060413087714086177209869510106091206624206409666306316338203978072251698867489060027477005485494219077696686077668172933110574943718079748585087103994517742581890484511386415522638554502340731623109303737940008846924529720631812669087416179651563519985434586630143252619992255738941931591413422561454166362540029696940368835040639042106430395899504182224341225412576108358893058783471136586191736626171634879318772800676449834641006131564286057719017952760175736114331134157408169993904877982770579494691167128870269461772737119181600594237432134840820646211383098905511634351854443160883709644297826775890202071462653924211064419792219048541458106877682660463225960843589832251360353250244524935570784789725394914285253951901054677759114446977071361114644167786180349748915782104725094579858427113032455490964041292343077508894823586014628282922342913298910519003535961564413984313965769117247755551880345916334570582714079323400325638654273391400427970581162237080871809129114254795568907974893708970900246780423260484155896537340056289604617034331796031324126376450692518454538374749822290048599369108170854127731069136184139478187511908057657377289824228334664806890825133874778660311127144281698366279408958046655309528367788961503135749500242646207130057782849005295578067113030224769501715658180352009063448463668223393650166182606953115556732475043937567977471790370459830244395077819390395901530233253524149555555868699538461609410289840535204124653606913321653744236258557818158713068979732026805048622723848729747206319634075163528034932994716948213722002797545009107918444101950426761944389268864497825049861068288174994351757549906684655196808896651277771231338625936551818418485686908865918262055970192592225808243826305407910016893839766079155476677055856457998193740083855893864924657259062566988314676961203611708859752903117056846990034794414052778605192312701800197555878035326557217579595824331048494009212285564147780827946121110413124870815326689689386270217138323504637607736773055950094505557119562757660491554899928113514241336294515538647854009075807758433265499493299900153113033578308220574077817682155375767103611703806887188374521463638124652143848619897683260316659905445464677388921251992751543716232888324091926306789571062437273666735936819281446627350562455222682450223045923153670550766272317532484694863170344857777597294219129048375673266207462428059749003948938842868088682428334716545785647813949898041272933726183209503080962518745416725029827168946049421527257474809195559011102864990292284219999673758731053441757522593792701168128354948945424803291983541428910912750924036107479742396044858147883800943256930449421488645895436975499142159766442131918010739556685735300125600964793571399147134274237624560953441540346177793936138680821115708176390193237828017969687373902065043823265164908527001530603417650972003369119748655597384550766495136348756511789698229915372264185041859076424329627113517783066899200631163300350986025838539764941537651923166043761387347672018468629399534405847867375702712066802315559358363790812578073760928761018459102824590333919617717042647841774204900173681681667407969183831306489168169033324561214663844249320817081744119891394883527711179526822534070043223843991950464575717067413815903825084241215556832131380737061845757161890207690286384734984170746883944729472931335026935981827570360620667654119548499851511410694913074908919949425419587620640966048620515231193567264138215064457821647513755303157144668476790653570915848384737734633404986439503356178348227912534068564151010121343777989687790676945166280754511228122489949273441223988877877387238489630765647518564692514194085115840874383743153966346162333243809186509322252486479360883018407810292068480448049256068699126442262829487931102893514801377136453187953811612725274819637892746880392434520215635543988780721629129751150584520480603497278167132840218920620157043215061802694504824315544213847461222623483367417048400820709471785794552464017355851155632805573230733595306871582080655967073201453556568183208383027416817438587262978369489910180393787022919698763425440412614457032069662874741088813129013622847705053378054373783268352116225831372799851417529493184177118611443870042813320333748350965120025454540082840196126834196689724867868407731783715224448810137163036451500806439116602964310070868735011661790274712191940004710505859550541701296851159831979236170909819686427609228763318200124642583971312566795473267291780822914292378103751242373687293977502006187870330343045956413290029518758531565639522454058445769937332626097551292661738844202212112848570704009262691474373349525186770440046425789637721179025622288391759707588282623718482055771187823413465059759056148612310246021507718607996446231141585476384116506506725239894102665529020830236762699754631430963188447845135562977208678791579630340027434222871928589541251138791431355422157160786154581576882842657062134118414885817674210532857142426426390229590089499336652870835966539581844398333021391227138214794314315168202056089494862895412038788154319902888509457770561455170033653512895818803656511373046751469186291870788959881240959148508460241519621336441608276397441768349006838475983985773566277366197047265970299936079611945465070127255193400456268776672549666677411228276820800743033571458634730714156581971919441471775815184297459247021659499085596182923455980241223715147518630219583571032604304440362658363994977593965673367234790672066994843521792033185669713271639600414302564981159340323958545671955257845546554438609572903412810816380807744355317235951670886143283866681244021897009812624945104737920026470185954798318838921852931758859870079199616066701800773636257771393731646417052357175737821906336132552426402437439607274727914498825741116228804040957435859412248029462366598362006538709874130388345710405288146271723244853994963455374826804661467099046790803591909489581046253429318572151113615879592619655024204237143814426817164441518183951086142161202117826422620118583971668479049962402284282300212723492172706195065822288269245856363856725645679586588199789041002631241012051404936153421314204395015763115662539846001942747748185037945424764766968698829870916378127082600726534711841286650682732763462959637861295875698687555492164804336676799413579740062157974377335279510356838550999089194581630750491499769051277960533857626487355654162927911544596723099173485823031043496224716823429584717793597477895828767521467054680265787636867619449438020938477585345497295328258346759684569077649733191950325578880283239703748763673680693428892976851685576095702357526262925389286825003309378100906494299724725871981024757432501034948602750296754951728399063408249210222783303302060764256535108525051372425503294044550735606032503338925524467719974553412985576080076683938504872017198185198088716667402244108242174911146173810634442660085595077355727257522216975206096248885687109401100876058705978005493107401850135044851669069913470407857837334116825842572486297805035673083116100351074200050357396951118782300864788711714118427215519075603156789914660571542369542893008033543393684769912797298011408580271968409873752335936927892211580461577028198574316551961368798544460064338282370079949394357602872940845634447143522642413208709937073169618376340802960878726115172874244650709520480471841177749392122026387574072682104990496480916708967636053001270039070922203259362040085278950813370112568252127075704752582954109753147472496746388069917095559222106180648181903883604175590568004931257314071893321421583742215371377723734814840356290561015031241455862180525106724303537301651812679258388449501383745842778064200443584154889109128540587938654742693871674711103959709893803294538934531844463406378027836403958062577805751921899301092312151446115239811148086888973314665099740839333957008774728749162221647769725432293332075504898661162382159414318004867872911982453201193353112531458724214131809682170279593382620872333126581311340385781359937798727223002440878990095158391033981996132397997126965735062363274057685987043530890338992973718676707133803486637521951771759326121204175037871598857713383314235562895425348435460397594268492958617863133856411116375986718666873410847836959468370381407921868638856218173501270730850308759598973048097505167146537480010479962522028715320158178461034252705896505821096898285657214621268208481617539841757832152210512035796030845778713499566535011313562926902623387283942723983230664855593612022853174468358285548494807425228036026174856445969300699506647302661426448471444674571920706243553014727260383660640946097597504483931581123960579008504641697550081406882251542672477213998786954527360294670792388186939366499567951715561319692009623407673849702040864669674866256971583370070974006304389700137750771202429592083203588386755246596931723217371372189644915286829051171549422840135917800329491227098237007225495440369205222080274229093924346465607724584094053802409780177849973867624206971926531627607905282312729647684777394328856964882301352007145824646265759023743863082392355632542642850222046501284840672333681717179771759739345927918594957094182729600304457644371228129868543456210804654808705707313049242823299676009348840819662822150800730564118072291849571103217519177152724244412233208635016649318502987511952784364878311772831436004736016306622669005907998456270791209004844457241218926928349084638603106474424500896742862740001849214433810914583681069997121188293916799483466965682756262053777853195562536735585386665109504827790720236677469523053904632485475348532392232434219153100196357965506802866655584697483596339608200016483229379920403936571432809920453505387800123900585765194448752140897802693670703211711800688888836346625226088326922760945265232957569284539718244014739850235716319162699882448384583397209547891784627501557767858334128350018238603417461237218972559645875102104151432944799919120640771063104811760313722790066689969048317049371934543997961199157941521042366893706611011344879617825677534038419282991121060328484698286016141498165630743906805980225272080167061118853416227614085309130859890892792448695934767075519125963244714451501671104525025809356596918555754244147546173807670851000483396655749703137223522750880656768909066725213382439730618032192983246868667846862376125465414070253142838626756253909154673634681054246481048390276878057441182215931138120661718886696114738916448151005605525607579779169521349668206764347145558385379981220861347785907646246408298971985882639743751497231084491405166036200976613093041324026513436042664184878199911318918164431231837839053652114313358774829885765251400840898668986763973518196933227099663109100235516050031539058809801942874259567042080632092784519573601448179956776079238298324169124234092879835622166897577381055842661217432670265259487705501242415266243600162497659018441294762639116279860658431168205280609897267716833583887425834082623640656432130065809844925978012126459830947369693804779493229863634773591259052708933890968045524326637462809810086934273751655694798825254361414108404152960807564365904847041326010746702660568044604885151004061765772621037297838717511658083754236592163669943535824141281060173882232514392944998750569270295832171363687043542943158418863875224200117456904167849026001108388169609833847157492977585791951155791194900231541214991633347463373855243137184791664121445591610856797983780375322222682495311922738893363789489548832407677980223408761989214362260807961852458334315956392512415805148028568585287424079908716490070003985418014060979435912796519491339348640174519709375261237411321142020804297780602065083468814847002095210091645413931055873355709712051732210771817698013451157249614541296328049867641312333934186226547873162453826762128482779675890365459336876294139366734739853447288476417452061617046926415647811181377268888888378779007762096528724373529500522709093845278973862478286224214595931071217037262747957861955042630492429069915535955232924835613163008577376498660295323596479329287477791099939388958193537000702434880786477420736168699482539382079085923889294162977010007759936722179627354250340370542582964756533992792050256430442732777047264572436390101249102905549788856223607238338426339839782347862725896624239590579348171838283361065919372320828685800129006010472116173154123091721661539346156256405799514775990486726402547746415803769916600211067022916362272610564533916790023562423784243233550106152820406726625581855294400262708872649785256846705842626558087625186911723405505105570342658332454264333421139348834161283740306772979031349864753754591666051481568882084024962312202227853040065610679712737009248632510472080463253344743128764077585349390230833999854073185866707603117287677616828418670676302621922689540391730884343879673689913049170358226096624352883506850557915498554108719675111910962558886221362129385923305121590153893896207278022284160093541908711142406095745397538841922096457038119911272035365718279156231934743382268346089685032094933634960833640901099096460190876265133160444108516344807612245781227665079064525591358775661170900806323248855107026830281348545937756370711283652089610324230126536750759191891972757686357326307643571523764463900425913757929760253124336311517105496125616729529873269120968227124683682455569767441559622806037009887376224420640303376106415189798537113200027518668269887073344346602489159643765565479273242637462503227389775528245084845819263221316916197228916728362135999814407373064347695851141278402691412747745102669470821303750103100708793375146798690320841428212274840614699140471486819061280647833641461088773336147082815040403560393409672901117183085960405695493687825056467125275570109115286271033407907282503316854513105882732538439645695598878621814494685329234614363991017719709927190894752605506187406931687639959195927227146350147254138436682808819345735220999652555143358323976598409915850671124636026003023366642050796538498728429034259110682324436966409981736182498211143916323926068579699357438551328676537179515474485788991339845294124269342013625133323674069583619966671699671953279761468380686374356509365519607447811832590856823432952864731898069967173859149965045742941271151477542839567969821383043252695753934143499304827081804666204332451727040935861534339411726055440722513027709018185081323116602926539818165233883922939170655737612081596495598083158338248323183549676433530108423721083854078877916549051736439638711151039420243805263478091187075606137856837341725438721179406523342359180519058212914040039825105779791931299463514668776828702607949899942962025700084251517618255655560511491495773470105045158866163907626982951833093631427433401529473167182123750493812559346253093167684593895786377569843860563913992693265765691646254571030637498102485786630983947779169222861742336405949492290857097218042968708531904783126136268703963010665108005043716929466931013572624975448179719201826209130028858098132420799752031298328678458250747335684782733768636121562539374110070121371963709871916317427826763514566217315917580850360617662654472702246341201244298167186462436434281255426183787335104099807548800894692021534778869436408585739841270837806303264173348823088630436982121943186877976864185884173020349548459372586583487494649132417320101860665114801416097245880083128721144669986568412214701247043554298363109996460676914907992795315476519643168199842343000153434040579651266465989914005654968276605880305224506027123157496262182592820651888381102622319132505532267224455970785410777682232307133156964332668967360399151603943271147696803955682183721712407031458741514009779671207728246062107521893866123024808672574123403783524360319397307033960120548829374851049769722665358255268774709422730688574889961840389087447268228192416590139922478341188952447837088397905410632808902517846196316222933137851522838811622873597855728739260292995870238312913275340760296077643096898205092783098296399996853086473332086398839895431126374821823824961035601728244236940576961160496636769340860027474475566954259863834475985956302114483958882858127852630953805663541328330086474336636056440753046329950949739514463787716023085031378757619104874651625962838967828751220317492779177670123172008728524464979104733638085499279523880317286620280985351483569666644202268074808476611442036707488962338888441712279490266333643729303939516190614629550213579753782224170788073616539755034506316099578809793453342626331316425482806808035832287081498231278470024993715060243326837815528370211120687568928165476790547581273762704670153713472345777992383423921615787247107963997938635046157913468817865033388177613727126801554343953333771271773010743266600351595976052624089690791334080977734116588881522057323974729661717401100565981000921231838790384138893695032974879400194315970941934973634994592157290223018980759984272452891068986041391388040229505777187115076709789627697530725406530264757081245731666615025088144787519218601967797817191251931433544805486468771547093080076928219456063225070328655503910363223437378939335230142792795528754195849789807887018538035889595036068331019458358509480456550505719465283894416256784228144576549715426559914293087114541963654235152551389318303469803490818154004977373922618032036129229588446891353251781027450621471826951254153196394102866438460104499192416100485355620681742253703299995276240439926669359050081065870690568688551663652488102953911340991803495532598071791794882309343543300845342011424196948610546131783339099372749989553563234032033620843183167679012099739474756824081912436930773424711027768261519553785465044666876427408736947963899175332367960247775958888603087123467518736582151079388563474870879612032304294304119533632059767288774784090210344686539471417369891439090039815441691597164359640278294517156244838933355371218057056389502560038930620660326422731877453510822221743892920955633659802780245438946476111230299055976372938386143527915170869204952662358118347394475348678214636661654683303331402589021152430766470126735487283568520571590548240564496356302331710243280988217531875728314889559319978064085362091313932930673329119030963494586219482654756928129674222820196456050081305971405610418849510668486068744962998023111223703508058596152415128091514029518684965591300449134716391901955003005089543438441951850889385054392245707001226477026381854555317079526829937370792454384357645782513625489747135800768833333435945488640674652841808546857959922193928369867861435874677922734352929769778380601110142690735491239250286384106906482391599773660454520382675867241820339158014302092203966585032521660725454665292432399303267040696611250237182156856290300822894055092033918323603210555656732277000463167136501090741422683152223532238365701832392448517996871376722529315159162570349507434514705850033687153325069659473418305828142363382957253759408178576778329506152911440269689112901781697753923519756544436182886007885462808314862710060575855089683691341844164954710564435174390053237499296495936426693027292180634664660642444550686229574703014708670599739704882683335727808633610721563446626256719464583365824322647851489045156935160311011195938513699743455832555550235975609143626347213217263413205358598397636991214437458895920348418017548130834046708759042439441095094794897682190095191716613393181853489502891379136645925051945245978988857724009442699247934653695325276271991933602226064088525007654425931645306361978606525791414815994665826835311200100330405924676393541279750604775238234738173598279360482568514679940804094977437560141976146488367276521840094564521309614291588888590400521612081932871363021833049904365928608357795254652412108329938687014583690259562227254316062072111889847463666742834199742974102357171179137098997636921803644375355738940977958852112242252884273008642792199076248903705952775412758714702092877514821939583251295578502510880771091944694646621928150164666563628227612855607929166294176564395778850503670359978281864374690760112616914823764518741641030143606650932533569436221856276419128114598198298621662082840264764422564383523409353110301059707261121370939671207549927352137623102820097717154478686549928231779430883047964860671642185889525698179873556174088075325127388668173694815007634658618473167473553711032218032114116522735839797648281527276937144960670510705805349311887913582039350305972972385471283648098660395396560829637041665306758598961600744872975949287931878550048351422258150300991553885323346629275293085731082403066187659204761599842739462879458750103900913735357752283466906845012287462358156233017015378696909008709354996197699975957417126759800449674800987295679478901227944526271389255990916920995490522284526690059466702725481837895326279296928723999764571777121947374816333469269842374325136874868144771371607493786778965272700117036726175510755755261387731730316727188724783339213851141118502970924357605319263767693745980913190216142081145705632231970656417967088635570817511970945166676268754952165409124310050272896893226293579104156029321485323942085583036229775140509963026209679701528349356099813738303508945550341844941940578559807836539796014950107030136999451074714574674140615724112944233855837287694828927226532902292108803426653997108074533392521336246094493648807677162728873581452932879557630648096510057438415467042097377633589083546070072211112889458983260514546862764288997689761336443166876785622030863895361559682542873644481476836636359624745249117238826509987903476578217875950095568006093775665846747954972804858284008624873031587293649711762076930732936722748359394932750499843075433713571902541663051079203942180189123000027226583363583369362403001031269664039146767419756398869480416748938963923938254013334531543660356033942058962256432917780094713292422346289747108638861416772173815531762508536964277501724551143754107186103191051270964787013451307703579351839980690765654389650845463801396579260849129928641564642427965842403385598861237070348987987916772405837567959848398564605947161096820279485801009978426549321485438976720685974557435881777072600673411036779720133237132732643196991414822403219931185050393933390050889516487418930264465413844952534164568000413355862803048529103909583204863824421026129715868178300422613377296485983425211066378802557549784172598402682614923072318203016915502242032685052074250588288279179199586162042033384534695187813408671242764861083956696890756819099261985449480661262857299567477572105629808135025759492903565493500474649895103211843839472076500332455420385026489367275861949357273531491282125804978780885018856899746212943972985921953075847773710723651274464318796371411608915538948654856085202806685685123196126106311476416022659944769858605326222642335851514324454911515637023400155642220163506248100002852983258165491581229202297484137205558680859423178897859463625724977278031180743970128748358801061597086834349208076904848395736314855925683281686140668145675836904341858656331065512116220510251604262707192740191328053124491972086911519012286483922580282878832363767182404383760541799321243719307672406425239885048083562192555478936159109189618009480001081372284410529883627913723601795270009506721603339440701491372890998434586311687722374899075114264285752283700307130091816270635903514836995765512651234464296879553944119593747116913837606419742011179844396515061720872640744416454378017192417474573320329963456233960228194352606397891692837119973491537077730431743992345178724098736465809057562403272557943942229488775420631049687439010894321115251832264976258960569564383732020328299161522321748124531813560388060223780269606323278087993671895736234116289461237157679522766733587667175398530236078515676411650315933936828639429890426942310210421421270059123581018985527266254592609120994111514059885098171071964941497379550581809833028693537297247866006572744120302757061330097108647311991444452462609150608205876606927489459900153340020325535523742929347074686276393626619127730859866924780088505967282068788892772940679686057956863209697950184203179098104918265147889449492042558292407676713211339001965068878249937551178639651996807651062076239366426666802351081617050472170688107708253488909575797346652662607410527392726763363974978986530769673418922582082938489195993235378348807460472231512716187637215658684536679227429325301171079403341119101278304522454366267871981185308550006748065106760068221438121157377947530904387246128522186920900526556749328283023177417421180374928628305330353579692682947395375714030586209560704552119948481813924926895209741407578390721054455928735830360577166898080332037015401101854676786517229687013920104693876574002972007227706009917151154510354461321682900650125521892782889731705054042430890396809273152080065787497401318646566741290099040936548168513230250203552681899257933760109001864521257783978682044525763208634785049069533068862679640207554410947098521570379816574406457025054267946686646885204371330205451921270898090746762131919036620161730633787190546780986213979266780980316254521879423507966991309115943065818004136136250574949031362786525941413262229505950747616654274067690511692949144119576798774531195296551388384057772349458064638520020937680227855274650292492992526714846259121484676560370600401711958437699539157599507967468291339080667848864961470150883447460635544850780202029685747647787573856713917652108972092813648476736389402538439086359180219736859006530211370703150792945443919285365183021388547214626843849953553011207115546855800580337444401799961346517891826159860145948780180011268804869306998396399793611263346154224386584776201484119524175588946256163607938806991349125618660127564487771294696116443053495170786628122225502136623291144234307160438409236776547344400597324564131377071089962290539525251688939969195446264655618116958744275025976142159787565406843319699813405293775269029938615970399479852470043009777856254900050503776644269579353325065218232575387750853977723087094376295078700721878669005413832063074769297570340071219098832620004577003310499579709602944155837082203126242930917102726888077864312594622586521714908322055415405299286782130243921534137944354659979159136595018394692287627703068961086175029140469634662943680742321185307998598185876997753880290679438214135867301248997102937094455650743551617759735739643825021667304795256562267845162998659563592958990313306414146929754659221540470921165531968586279381382806114472159613152201101376075149203764733065810223829201742373413430984378820304716109363113578048171853207665543383263298282837832156911180612305324494648332560377481004862386712562032201314570831037723585119750416936405110836870318720180215282743489426562414236295815245822344735396147242727488716645471148921383050005290292659115495206367116188247336742607429356309924706627689306240981534295342908721544769860150071354815606183403614143889737838853136114659054412024814089328735787233995928442311694021995706374732387163327402918224721140187976843338181962692571593026226061473833468902496509643530131455402274084648745126506050463221582601607691320278730953985573123328502745362917183509411935553539634218001618736329958870173903708534605182641705244628795946983022716997679156555497832786568108625497334772138425299303498419333566633819177547564713353851596691518589308981107503083756316554347516474313413069216953289247480576909101055230196763722891077214480658230031465784964389540385549232589786383596615241546282312123746033866561956402221569401441143509439440339437165047074015877677359459762495491564859365937955997180819839635875766960185859995933875914185607908990200717323885170347659799143571106601909106139891553085171810742007240988321382882529576910623849484864565382461347304213418774575888471462046125771921240338173362312370003813317251434665102636591496478498312336275061092488517193430035931253082896485275294516742778856108513704929955372003360197994235674796792750421854738460154524990595865369514300272293250732620936978098703161096419353111868657934819170575528612077477392949813623900006669931649687029062463048492589782609812813444962982715272975221288807246228012061067492745012291682076078426032407533571537976509835423057847532996224818739114894549465711860892858969792475591319075922074823904145334896642398375291588723103030422910224853297958879817711433584796194792424453601600771422015362952259866429621566195129450633058381074062565718017069609195579358194242388042831249284770846447998872983730159953448471388697970523033894757289708360720920300336108516365958835084665404612862278421948550113204253979849518692553563095854136578889729732068145106814339075030793430357633115247804433066326059847887983577940897379240075195765954711542190721403116252883088783912940381469639492437575478464511430937501562229863971684265417046417315867863375394223228313851386463791355190424303356314043658667525285766361267994902991705969044217933001006021505280023334969378097807786900719920050304813876026396742050461262375882094490897392453321658690701435162592907912430808956314710571571978849441930853913004362166982706625534589322093572445663762253284890980730304945605403675703057208852504559966386001860285644279934565259283195375091017500282927508296735123998570826065855694613682240834290985849953481421477864567603158560147360940150949800461890779413589441681936970491058907075260053362949629355203780585980410317799504135824330393817952584760143327331684705795204727496055485988430615287340329452775350930383583243035090952838896625236129010466106174634440319278091663715288602180988398453891429696078025964545827164150111780653615865306706316316757798508940101009535906253461996168981922786689247856887330173185843147734860008273319274629528368374475752033007878889002890143129240911413096777140651667463565764330660449262137791941423870258476549992896455721483946716336895553895552184839063192947669445082495728592844912703692611052206147916518128201972990317332119835948597686678643843189187299207228669652817039609824241367368233541932736006412103459678651546848997806880322903801272668881112920629016350441250665900265223387065157118166287523310827271796714857956659803695634042745194007340174342810117899786894955641722420733508809222001948520055472649839769854626054152738571791106298282310114661762415467879051537416958332739535142312161000286611261833661688431189792008958240271981251573801909442970881508752809784173009803603437514684546067975538026247915080872907360819623361539583595740244564217871947570604755872595066024485102638418045319625692205980113279204208470011410299045514048194424436782992544599681899991135465070679972158239878253317937658555956026838533002952249762771255040218212004259643429654252216499183429642257781294893181368103393842921447351975024033586928286298855404463014477478821959718252808804065967352643141056323236087038128102995567556877441695630421431731636441671477533607703601931526951956307417787036709505100956672106022829629656304407778201216643055337124764639679769355569304516121042193581952051475913218461169466533053161323941041626883400397549703316510520365663631938850732115715541541051153223106354701086880527397049661554980945096881821334313791490351654408981680154370370244830729216410722509325579310491422541283927198081868046898019229561870703199271288379835678153543342059682333875653249959728655850395714631147880287855121105815578553953860745810769336414028872118080265032114075680863208623944134122411057478996825838803432395235196240801411922032528017605748792223115603963663375773892404876961438354400248769473940546149624725826640880628521511872195285375507880424829082965916000238188466234580405696045943516549732158827064990680975261621295882867407695348277659622915108839975819143748229023167533343649020939826571362410438841044788040445536883807054614585151655885571990456595469879802996087925838632895261120570758697228170095391060864771022807287452728116469026602661640831682923876114329784023977070750719238953462393503551129811032262861388513797195593561686561327012686729268251285742173243389375131461438355216630871479581795492331342824290241639762275675255397206851255209446227049247128534642680421451654109764823191948270922981288150816905655557404175486077190920781515567740359421440241918158390248039446438868137823736946125024595410013524234869518173316020048467075985163980653346157537184244599372602123786628956823040767304523642167956017573102446184387237161451482814804588048921171053973095705672001524534252000413923230424123635210918758093738501944570600044337713494928654704397569478169751086508840678487250668011369826707770461909549003070967996385402674756929119637105111252811833029615360235885200739615317793486510644892851068337295630424843041817346153477926828717010800369839169787695208730553492314622114702576175139802406485324631635700875360930269227173748220431600593554609326880906219860244792734117426081136153484203095860177398830751753348943132494646231403714412825761236798291304819542888725013091458471475452493147945335401502089625477098646689425477463707594601738706538237873893957179772947892583145379401863661846142047071780292057303303630999732218857098936613045213049256205814961970655985471684376987329888490462068927836910427358264417947620873674052195680767596092714578323455595742192341464291636900375273046880724770985932881212653691840375580031590565869766421800104642822021309732551476733326754280084520994900431502144533736531758421203934485984693444569277707236729163777851549073946910805641966909333148332321900467139941247381141934086711700929424218252156820897011107570815158751433068196944008592568561205611369001662479996709903814617340128245817184082092814756975015513347025618128293053614442230513072824751400762323441443936576746385247136590958711232315114110743658546250537688685308988345219277488011374167234105110643638134968654525781989678247981864241940639524071564333447122971941071644629575563538985919365243701181776663523030967713147377655738628094037041508838774724597402707224103941101300553887044495748270262015589314258435829133899462482719095452065485849244843035507144787103268439914803605143267720239677427469361788601993906346168543829432077027752641227765023641769475927240996872263280125745205903358274068440019585311799211862818543379412280051835213247912903717385665676203930381795437941437270565417635875115987042452827247724526886875825118177157596314948795446887059661606380322118694897417998132482346174615766817773197868614394641517905253038738119637024467712517392092543647347792392033325163035213416758775164841186894377676625325759208579439071989778158583843939992634325843985641994316440093249231340072413765778491556246752864047856053178175554188209603197364257622098288283387459740686776088039296194107261272274608032468674755205259782630897872114531529473876595005957530845981535330312575294716421488506801645582755192373969870279429903027713954901895448479406434837627534045052785628686636095200279292051831107501077878691297534109488042864612132843191277000143539081493170004665000885970292430188866786345746231890181931618340618496488131761590363983247943049706305351935128240383413245369213619494622106932659618158856364187417945708364405555106753579178872287525887863609278324243208721704559142076120249520480420955137037596900487942572270994933554491855190941422022258618259016908969065612136184216034787610077515407309276697578701104640840229954477378546693711459608636867714507880921390746344535573149892320441898209476788826263288329964025590285641729293647612842301900188453193745057914391869317201940834352606189497582542529121327371489565547447634557385564518699917006353649806784279354731700456683771973267999904425440759486227904563342269803858320704738425796928263174060732877817213837873235974987758546868920289463623161694842423218631397479537672323277112351807168606370411161032517543816453679264164438146129638528692868300783488733979674171530840567917398988924125753631829230670508507895302816896822019521585604763132634687081195873902823332344430710588227782156685575603695958006353857459539412337422679856858619867584607756460092139808384373875564603000425591150374201931881205226834387202180233418207523156724963073124069886718239508489538128319352515295870419347157860761125185439342344049972516182685858247422893051453293560007629077142224060837569584868480432354258436849677126492495632256643418554897779533727393855088396077070869125275974435015761874199238838054265260130760861149088516145864945310860983397957943167975782045315642254101929758979239365923833173097395816454740281472512916121644200003521485064132020559275701149973315720794996762385204857566308615141592747795434429686442119660405032058453434459121176673023403501361161611663513048141053698592271599624225939743177254393810544610970807556561767389448748540273650632513259538228858125134850806262315826991612216253666375090392296022533487011139516323274081137144732803627396707481691773953335499617367838270686112278662540028838186933775145681704978845529933356046265378172925834187304460097391297151739320868812175687454367144505243435292531884395143535582065972887318271916906586142246000348021180101851106923292911438461531471663299395881511085997109466546221898903432089683997060465827367451371920979790360397867734114001876290849195360529540225072999499416531613966954961514512522032800732996432329608548970113952043275446303304909888784722335302892607866549651444293266484361604093551138334755826002879065073544307561704621538118070439027162775983464097956790933729050118338927670256403992453435956388097718355946751320034998607327356644896439167319512146995373960194412376577890899951603803238019349463806258128715642737800640990625031212950294332599992006005621279658109631487235539614718277475894900013037352996398411042120836023556370032378241861402452925144507449933353609565422948338142341092308857953133085045517997348182388232532758794877543030147866589414885106545850520024878981673516434638160058686285403310776291699631271584987243282586826785645538561538292887820550218205342269743674829517884167217556686073150242239445088348417848487343344351172412488521019531826847260390539073855861686547252948730128379885075192769057723322187776236158893620124147696774148957330230277901569533285969013330507409967405526626540417357828569128554263244430312839595385775413160093796163300673396725374392341270966748254741212745230985058701792595053647773951791603777910809801991794963979910888348982268489319951954100851362129018254924847737681043939765585573379946625574014197353319909089066217353092022486603464272619322871835680130342098057951418607373224515749637219284997952563635484070678821533867307342641946045293431393141055576662215217144873855517536324340639567132778812025208981081232408559888745901010619244977880304688191409585149100435093235308419028436357006660998897743226761383983859904187553682038611872271552353300968723210313637262846837652245116447217227801058674613963436638448760766334258627028437722407015935555238021854686314049249897861839260529380875709841081576893538619467868200096588508302515779271103187935769122948699693060667925894162625669803829443816202856846169943411891698716158165487124360402099644181553310818248039767446427773389407853561856051184540553099275175840483647235242982694296111353594178549203982454301686680607753537997042993206120770306592647598143579685399898353570225442211972736730678873718451086902721076354682692990476735479437456251306151833254939911084393055771616316037341113029202455164761456113109707157150335434115801145382101642329066780963725684631682576681576671319673729402126642163526133704793854001478113573881751864416473165031241401098296722902459295457256323648969511104249824895728798923982311526264742535786471882884734745690995908312049773493876468293170640303173480035209516324189740058934833017357385630159593683928757732345820396348563278731683005007312886197008454059049942604900768134562890347906485689274957217519630252023015728990011759145268106005327146915802758239988527612745667219088380969200793794226103074664097297801079535552561422978657471542296184698904685653365680252904688566046023898320506774355585778611887602424900709051930062299372611009594031883167367584224534467855568541239336883264050367426158388065001822959019922103150459611550561213487329935468884923595682300362727750811131288947977414084990030439103519016599817140652307555826615284413225350510725420701723061397531278799366048809773776346889014383537958149355404758526164903448962756407199359769869102945491609793024472939977644722234081387425107283333124771488883951511308844822721652829226292561694403003953558433444986083515709169711016558298510011181532262467733425924158467832819904909856446146167504613041058578008957626426267147000461845636067328105192784715067193715879780003144144330215173977053798324131668056950747005422598438885600596408995241943023592533012517553001819353068493072696073942940867613106018752279687974449542339404408699375214021870592946696002609656136219373338300196621396923596620889162247455946559582987586151641992783684817859856901084855927254711490871158473856244763696231734495833153960998326265473007139317032873263525678777257294926704273043040993584027842102098160686705986871947851674480195919736218780225067033458396116643413559926712600371009390093471300551047613712464843934069330387372620660094278124845245514999924924060820004194128467830024345081601231210600123287680456445483135498241971831733305688046601519093220457726566481324256170835461762492523221693651502858393511538879332667424286489609079712003870865012292770452227665855561289720313848079546067764274759707353192240250164075127667125016077251412337594682325598778732941607810153268482696882210360391749111274471924533933653986404671955869374284322971802139274224059625387858177420835693141152617470803344999805921886118739930240443380249972822814634723010083267220286900566992103362412062098243715354903342497009521761400679245535030904163160423290831406659269828704718068888313643209610404343521400190466621773711423288203074552109965993966263252913060201232347867700182499334240656971464325202809546940787161456213864619411490403689857696487091799089356086076271399339054315181203531224840175393567660241196126242493840665868754878014113132895852054095255073854394456382308233850294079469994049237894092062351874278266258847475560539983912773341113147328406640112089537363393001194684254889824635163812659524076229654578850029448895696231689371229343411697908454414715939806345650980120015714238106408627096922969578995014668602016706960651680105025130622116718960467390775685177833133516590388504299807592569404752689395128155421521517866219152251274501216513694331631312102663021310108967396089892544698679734742494068124512143017043908472529470073904177759773769298740510734584983690946882370492263777441151743979266796401530136421547801265491463683073147326644518498865867136936408781083868909491860848389523129776168586879194384534257706861995384109541582262376452902644442148775412024850635373404542235978281788464452102308795333249374935611613241322095208903310176260241304851871931546742163608634326256498022986387798723246226258283925184565098036657183537406182993098137400360489153500742681305709224753989940588753909645841557584375984234573620732997937448586949270900057904023456630301865306389260356691743685414756190767803097583611924226691879955002800956485071580038439538227290691313124560452093745843605332662853388740605162422139491327717897139328047279092351643190202305136465187814307047875074574226049580728529246527640676681816056223530843182587639536914180106500203594961415657411737716458608580159702192944151097317555841594904070139701259224548487215566989697826509649930282439357828832141845167240394557652581282566489193912044564577448328803306422810761370629064881812318660135164643495897974604245928382097102502581910234484196915792851682384062837764371669111677459252807197079301890261125418210901962289193751574239675525544330996794039247141052711278065001456978278728626922192258226015964968082856230967254038327924424788249374311803796773623013304096925506453507120249846335690662372788244537825066574356585028383964942497444295212421540040403249905165544602600087817546326227880096836283655416532498084329822339569841319967447694311043305006463878181380253722687829958956096384051650357653101505094666198674060837252421923029047832760932256336227269839949443111841026442063902983885180026385893629993442775513615098139934820331885435240144637673451206585838267377455753341331357301835084448114213959674774366768445103012254098857216482416298539290640436640853037355451775352897831276054811176883277720011887306015840769240899596925514876692717550622996720854180455248259025180410687759335102019246145858170134083987537851342040946429884157202222898783430110427994039297735166987608307836741955342283705573202243888820056806821848719579187067347549865504376969264792237235112124725068796678275965915892673044484351188878364763582993480754236802350484282607249818570659130106184281884670547064609686386380142007646711614277310079559253158293845602569579155258839043261553074815740393850209697617086019492838584114418571224396540953240591422087389657118377562036087226799386508842868709533390204241395494031571530044031601381674329949049335183916891488726898634687966976600355629141439704280155913239449000374878783248537180767621223404563006091044711166214738834467409205187475210833787012594722490386508014086386689485936752258355818963284319010844916690017494367996216841887091753835013125846005857784866115341444674160925227918724480857112514547416136149274258173939489445493549367086888905659442999184598909385286589846357786782489261457818048469605789430081899272184457629739572409029162529362123592310114976974744136365914591476800992054112831914882026588412541161158903151851096567943692622454010518387175452644801115881533312903254186689411145681463384418032330197881072340247476598721061371151255020753401595126372661540272896563873096168572470759795663973381276658952362208247853364935439174892663931693991222697111945503726701084312771462369034325904899644578365449734442107872892337622511862998171075375643496772438906562768231063053319174106179293525942835356372156426611303074823154288411318212193873695921487613295170703115853692731589546424072465360898196846036653311069509158282822909144457805907234046332365599993595184394331823526910560429069049137550849102145083218169152530562484685706557350075191121822230750398355720662849989051698230039889629535897399293375350505840758554179082532405289014223989955388563732994454088794773244709897064018950816411857764567428189160986276645278197409550618885840814440731672354343912153854472490089015921617514511207866333703992114112976418961715201281652726717524934214927625451696017465957893311064105869330007005511514257554530395136384286371979005325166361674737155368827761212294359936328336894829004811041403539537329648502243579990117341532729727288138567090807921129879695446318863390260169290644300942299323375913508723427255053638357371167860999847806900326094041405861627248651656964291056001416071318494766884357785238587425334937065776339972226683847764920232264644088497243302830816415070890392962764991187109334287185087466736000948903842425551538601037780889284725383528419019413317921708540489224064906957469690149472037987454975334072709791782400343555939273376170857800021893909786117288510210864248022980512321204982344106981686534465650202999751578042938863634012476941246035616272643439568212988742457477601307175521176403398019623257006695111166332164944883901446069516733496285963999076774688415740999368629023925573687220312913464545647130759038638427946071198833510318708623388789892806608171386307479236360658486176731828451615939790313855363512207540475819627105939557050605034080039509986738092700023343243181834837470546654233589778559800090417368809187709434543333183023779691900257246195983808389887659782417662919621382635265414580634041695782582882652732178469734318317289020226322405039442690762492250976361857085161059391510402907368679599893610734736096702831349781390023295795903209546388065828572277920985037601610097000510570917009697500595208787307384691453749622261693776742741206782020697799349898581471864606658296729965551324827145969427356413077282715365792583336230603144544175354704143953473048106645613092761904460627898741090904059118958546279394869708853825728889153055535009773749554606796014412133384921815991673164735319222041867588626188451351510130580369459540283316593334330175359107732114663418077832994022526382935563986861974832446272383853273955010140475197858425295548854611140784229452156597462832928330253802053550483271514004567557003772776655062507999244658112867773460684107936328801813771443653410193239914528873387855713383172986927470803957317566021706980394605294153221896943177090950038150889815064137610288622343125824727209485542573226894185432178208074186071666651681856780885410512242299941888085867274903031172371876140017913269345133320478197483852702689112541553251981587635543292171674853276064094538974179671969092311974498146641543866458434182488799077114570676088035401902064822688248759568931241841768419561698554488222852041504295208552652006201333363955389192063595625425833832487675929422031935004971080826948013152742206701122965075529570940928829227430291304924825052590112323202844129379172505783843306596642761587872089795556968387342106011491851157757950734267023515722331826801844823992555267778148840230971128136899220073492470951037821613083104693665536213674134359879227418680031972194970695994280394518300457129422425072810989928925978657536346100187155347728133054836815553435264181787005312477742947777410858092502247650320594752297706137109687195985526517342517474906473560724784198472944734076097464324823247837181376507775107684688362337321822770946170459901353894694094471075511903898369692871714041564924058768948234735883025788590081348765067639760067892101122190355681478449722117228702448709580321019819811825889344417113542517465787930424134837770690555050554937362283492036353548033540809664918439190682208840686397968537096128490315411388001426871648403360567191168874457495731219577918878218086097479859069387671535813767781624528211285032989144407306177992937016086463963837263483619784589460808282968819918373026292390122451957143756298124252780144251966139949646782684287457683434390608062056094700810247707917638686642582068728815236861559803153839177286589227100592293000920315302396818987756766912328368128112448535076192700600054883780351892909149615128638829311934274897416909271704518446335924708746054658785528345274359482202611201604446741353850129657207241256920240832457178944513899750913502993341116486831178900002322972961304241410633438668874773594140762909557971277368273465021470333028989688657287570469232974899238801592075151233082865015489433844021911264879040919636222561586011219135059899700704766927978013927911183227277886801519392351270252072699362707658420212093443317056396017349981969765071586117738167974535398059660110201029928160710677736232497317415103440652499834533901178881459348865213281137801290070820995558844674479389095906748181555578117786510827895891232742199341415972930740376605752228614799968444973274178946044408386713143727938036995446524094597952942288993071918117760707218015661213449340153112560329819364044542764965524580506626848616251315394485039433675775659164528157614036559216242221418141109400567342308128000429250335648696365787806230692957353523006678416171649433676900999192184488794892325408921550796699051399700260009282326120127578836496861674728219536348621023345744174884146280572952408700840736785136246617658350391793589828404157074178183190440617165108517229391447137368975170765532796746526188342716648215800267895539744549231636645726703584392821984739156652721857311473851061403284034472474644178963578993108242277703734567344677696960164346392298292190612091779491849251482280482893649278798677991575342286644729341556464023009605649846922264007563550174274982455448279264153097133164165529437008409265745433693334268029442433785422710665518225087391950922064849185551512437336624298986572271305260356721276747801002329946855573183628226135938341481437994471573031367943200511013647387821268742618664355473618326786352237405184939552735223025171548718724383746358410428211436607345125141283550126868281533303726855895052737081316937207962542941579378520385860033059545498272442102455540509207335237419982049133001470062783946138353096292733188637969371383709455804596873427959758558598669628590188146947903430821839867338140582105976262279297003291816109948908335808430090598807074314832817090577656193532698362683234694453352968355366875960666345844481683503010935895598604819158970072571559609341166165134398495514471160935138452961587779954935771942916257609129514842861858836769316169214208131150557201822240323561463612670654788527142912132700974796637474082514322647462911310140201343957653234008683709413323786369126633913428210240059573902375039158899657059926669232222089025511705977954893838890036846429305895071991306923004607059090062262278141198090946635701990654624769724731198316158786802843988499754462499812668413408527821454031255248827531276240246416391847092397391633415647687117999261956213616308316219378907707812124728580844218712110621184573570880977764650977325841207941064129655582069175326000617303183846455815705342203717972371073269649735147173118668859628657172952248077826592341804658463934801352531997778188031258917894365149011522772822857160693706806958668044546156699149241283089128274634991915959376266433513040953518657951257536541640622705338314935008931549795936781000506341854901632518108341037824803176173708289713214746469215610515086144853431747132173117060336689540444818102684621097666171932399382969072891563487073787610844367611909233584458074370283654985238681701202521239316694953454342333258210447332598665945346381488332339224663465111742357205620018961749024827945245391943775315607081628783867159936313601791454479978413295701126194551208128900036126774038805193979370544596768574443365947283377794632007541651366823898785710646851026257101916124337019306408586860309908328352632766593518938067713398687358720909162637620905275767833224700864619744796155641331414227830542772480508113220867103550937230975550882812072284598702093860726210914611759539865211802947195407749317716868338690709082459704081872109059889620079625488818964387608279452366026120119336091288747325388731530631820265393088641865976220190272853230284218144282493218884336946343061572944441950692946663416071972239014811997377978886198607990854767965400910471393676903699237065814138837064648416618083461549419843747941102300636905264682722138763144953562964374905379714355504255790307827822615334397790205064284968464190114128539285534072843518254410109188349523372603964465125540432915719087868439538423533330911093841314474445302187011297685607770795153014074146518706237016181244290076565503912647076020155262780147405860098567166956852879230007197493856483682337977560852160707870759452251090120174279229932455379296820104087135075348145803880116863673851017510911039544547782785759228262776752640771583234391233430262756403544878844665136796492303923797159250431571813543817566862359023418086362909517466563249514394381689496307301947061261918448802222033963867376984531449208467113200948193345358771295806908854931094216205743512910761123845531173648499623513671431102768621438051399430013955017602991473009001273721941141122844611564629134377766971719485228410137610943583510736451040299995879221801239670978825786669076286641591725314876078680235884817531681326420285987217161126051875735679133735063878281143092974120952358080812798284958129703771523991272169118906321132980875561104609993791475818337968290611935931407076535129686278273141453042433261942848226148820519407506257774131250637798957474757314635546735802426925826817698457637871170082274704728110245789066716735239466095587255101296035867877069020329235917403340568329479390631894093953602943410806593052477374872979090470884447652080215363339493364358457093116111598404483131398595350853253949054490869691624268401611970224377162513451203677452633669999987353989769165388909877971493815127448265830531115551515215543144502219234583435779467565630581650828387151816444311748061620916157697668111545876075239294732784536039219161127618380001650020723532721137833983214441398582357740002620954689966317716110018783439047019292536752425813914915382834912266230848209561490177190118152006251177196027846146194875159403138873253750021687018638211416586721651019413768471556708698786633456206404856945134331667812466881922897772899556131292357110643586719101493531964764282408508996691471743110376242975647961983474298496554858360398361062531074548020181953472197782588100964173824251892708526611718282396747265931344504430954917488473434567058563149332475004604821252955256028517888615796843629288796566937461933122973794738238735175754670960225323415028835114856830533902312124385703155102696024700759537278815306040044723712154891321674458481504633246978759937431311590961391393320627120933318756189356621621412661764430703417352994418566033221328047022667898895203393848698381382477530910458769104384808414510554072204042029696352288420701855104515645476349966779818994195962850936292356338317750765925513628715981184680840249332201687189572296388210679489406417171692346168274450832808729882309612631088305677350185428870799377682759471004925487787694003685169052010078624709456918868942289264996389923965244917085350919463800079279054784023000445161396737396510974341610841613223494389100589458448503001860616275094165365490562617773477556749362009584240182777619034980218044366877911763266400069348439109293274822686071778417485775265401427170507183949226791226701728422925347561853291864957043071066372924625642870480242848496646421101721222023621567430389001223451518777486108289630749494900191825651925209087705077415662751911396268760401458055841521962550343328794347373175443069578943690165738195356281161313986505255768677617623171058830342578747569258034983288165832011859691328573441127096274880192041478101702392230385910187428779371326432807743754615281026490982517413791621555386275090427554972444717373449824384041784920743910776563057663548848865064671988883910465137012311404563656854772595344635998171383753574352417049040317969952473692485239312510759854421689444001111605609552055536263765195102403705639223244764262349915571345607008762704922502580551376734891470198164261722681523456382363755760903952397578376719161278642479491857917435869538803419858711411835075304952244309002864153233004320769329902195386553569036504669748377617978778780620806179595972889915290684435564142218733991716561882729385407018778360889573654364071777297082484723321787411810275152134246035183140630125152418750463812642013864495050933061470405675342819892892095567640061040722434628733281453830788982847145877422348758719804379103981360871737933837752194822198867262062187722812411815138930312450010436872855888724556369971755703023322469756553610262416336511986846138062704777327903265704717617438505650206075277014155581325387053762522954684987743736883450991521742060634034022474035633954073388061685221270704983671982339206171242437245075589063989502834722881102714435156092888840250171349179527652887280461000086886866196186064366785481681788522572272137100353409175069004934356054701806880704392943033047792913282410131676372204146124821400640541596979470544234353005496850603038769884433358311181584051585740872312196638442304663612708032303059764828053832084898905276237334587088186017301100169031957898775336512014560728052887473513897139356495395573886430824313070571076930926487279540439977515419133914821784771313135817748958512286225554663917381427781998535589275224946192673375395968244626309050505378672062974866957127933748148419258430683915774418254019296811224692868868716977091636347195472592436344024809766077463218437919445073313192105603936983817910979818989401836708682678650084097298649032908520165174253655826383296849275932080020112182410486253327989903910285431878300100877407715744162164361295622391347542289754379890585714281347866511629427065482598306661698278615069575617911259926166831861968040749850584739749716946470063502547168787280110889065825886052640584560469240033984624971486661918404867074008456151597467874810410190657851774603343652059746802874045178565226202914098454877844889478122358240305260409368461475316825865354266745763907507253933191606024307716093430289048935077684160304562801248485778039220622210693756913862598406532209051098481520830343648104301609354344936206457817199534568806505022444717690661072475002794956815961214461057025160741595417347862674147329154192661229446770397136120130299885441672760141257667074821879832711732654333801964586160881003818630977924778697928573120690492289051564948858617636786195178380457265815103808662061272160680177890411662382045141677374383485498260074287515788813969075756219337305355474001837657150035671413077673312532312625100090032065409200438259090038898372392918025935354121976437046049408904907297449043265109454015110922772859759372261535331384097132400536906325900290223314693670729726834060060065735254074078805157716078466878274962661099511768206646011638212826345272242927269184796063154520546366020283004307022611958266914139510960851506378095317602215340078153226252055827425142582140343942865526224444078809546747633314141643837314860111117495895818999013037874964399566420966348689782634506489901277113416532112067509982378847255023530696647035029792457376919572056434992648332516585975166670052040127318493857665650849754252282024121518640529539973808652503025016031017389902196956179615668151778725170857566269597788747795420686747939670462328384055427401902431375144772904423834233705238319116044128213328876805877644082095031879840807324501747638985706841214324316474335594545637672938430820087830411262511751858273892214659284269925824206052744059798195125888659406198394014288544282178475059190103430312632187820043767473060481314445800267591009886602923585700889440626359411776991301526988938218016604376096270102492427363788790164420990814273570688647349438069555324800871943061143582334771975528128220171769846345386966293467784644027856016660124632504569157133195313732814294972133131525666943187874255245103693348898512635469945942989421635670485766185126360652149283732756359110959215958861962144020287384762961762664281991373397462120827671995195657133918141030802905015450259101105184998354043397758183045531484430153156634303752596005217889646480699627011499338234972682440804555933468059172994821762967749301902964183926940805517887981916402265500567017314272158288676770961287034415461042598751409354810406585167480161912107640248091265984850979654437930603796201933086488422425897288138629349159000028490006859150780323807069550009407334714912613967928434148011514632350182779346070965122144568575506440383749631700919645273185683394778154258354811909185902302257870650825399623659239066081811639559038509751072277581549320703728968689882311596654353423828142076558663185284413989901626961670145866556114927039834922967831682688262490176621676506671929837066893717073507046669349607733687575314973814440730909039352740889605447785525009195951989666285260879386043147480054924825384406770175865941384386419492159389946475166943688087107115868089314104926786872795093177845261737736525101857148710530995094453351838208666524535595207314602730899601586025625159341677227649586801006243538570235940657252055053807948076973752670024540975930304767440537882146890798901014973308418161430209484064007463387125449933265043475854566167742497934887736181145926365216699758433342210983335774911192481639991808814076413559977142843194500772636423419582192879925369306871052843297828003263815498851056600769027486126801309812547647142547706154380052860865137587531331685888698257704372743860253279462723347428921156291945076614571024856064033911923592981024359802083482304921163420334262404321677425308095642324471008588549961244173130127986115129577057678780439468872271066147943454044879423783866862406713205293524859094727235839819829702828491412873889179133903093226239128918918453687295095188118197335769642624971971442787764828901813922623812463314637994987779007482541024233275565451134070938074050826227373304849706843313494117120334697173637997318777114646854993211088076832358904839067325912974057704749675282480137343479855470213485987587251392681010130744088425601447059934408113160239570959741238628601043336854042275227166545899940428009967992627932108976853729203431363607599257172383504592738518376506968637765280173951323836408558047300110979728361531031607808590149866045498455647279001111153565525548862856100398462473260887629416712179621598639397700041166135329893752699509026329089878235560779192177245615327571380472358262681150863106533865184281837026771574914352045369581911974645298319371000976309945635886221741258416288394727185038680019787504375602654989333505161369277892872274637723950007321973377359018325818037279841420906712287725445841878292871690961072452708923013092001932687277415909981648565686819220018585333443076419978451082731706890301460687123018233617580635183671803320957691454196043577335539400749915052539982653523141985460502799207043943835946465219001330024301314590244740055614785830571378618469778361037514940858411124263572171912922026730807159391929521245501739494352017185683464589909105510073546739780974929054009229070112389119115963471139073902270380219820350744560552852755994320822902206578381528969359575938210823217552542975340597162056902089212696964825787187829129720613952472190479312469237546020102337398782846114636606999292711492400725801558247569196204433606203801781014459709790850158598548150327353893751780843547900704114354370660430740728534413569602532969145521399082822437662148889188293966115891476636411108226877144983701893573212455856289566873065212162613035463608558942128724138417745514947196927106032132601711504680025478705959958037882083258380099900845883071941903250666067691946685800903468739005992152377037811088236126846226914563215029682113798733432024839393295705579239965683106768628284939457908884009878366403761595485103714739227791386789816923512311252481788041742935603096042528670566822162957319472077572517464201136205190912961735533581724748991869258438644182702494486098599131008146107802794059157386116271250504014141276840874672864141669000193629349981876119595418617217550154937007128014925303490368417551312569925220467813896465506701446775006654815533363533871719952990298341632984834727837594202980211259705869895842844339620420043688577904197890136150195807162354879132104244643428905934754771312661726619651270656265612363048121208699749564987243913574112312344802438969826515998162936078835713367101235877865960431933541684866246379925340331728030232938252188550779176324719656284824927691374933842747398843989997095855101898312238883661194357577113148486196425412096220697521510206914941132455076257894455467545310187041517179710003839174074241423331331908222394361667937216270503546569610600428160456193253919780396552873364125016560333930800071267084754385436830900377575619481964378917739357072999416716903677902064596316541020273191978292391572051014775005054252197608651845707180179937529238160557739513575185421752998648897625088564164066410478485593274381069163904454570427670028116256006608844570436369973660402782256554100028846564879366610175476460946986922607709922624276094071780985678251163161242309775619429028558774742021170925012396686550977644963251009995924613517619131192788964721058066932362134941318096250778834909456626437802506942307105913481794519697623385672123792863989618153568291184897951778006704374639428739243487216545256907252891615707335766869661144556839948969211912458623089700007777966986464002822251376350944753627743370733135193242099321161175172883213829538649016684725021836470546555281368398692386938019393895192421251709117270057209040996128513773069751403728493185494546005377888372447191097619931840140148271448890038384141904186986460071208555404651248830226685932582413738444591844533968850722534137744476788360462558768544014056044935745068664605290076536208923256763485347906369677547472393711131050799748385383486168694262640852312619813534952686804548274567169705057804096507025693274388402443466217680980983555172316098860996849448932919244730533504996474869206545345476475574114466781323327478027616783499364099603352148784676865484977110528471292761468470694047511554026447254332243018947990987993893151618478027245736885349499805503597845296261801749281390094994806287247667620119500076609373842206028445358453744277799618482692437982041185007580436914918220635317535063221772331019456500514094515291663034349555073293933131685391866683604663461739903065015446778425518117792298491711525898876929815815811141054815771134407821861799753418901941163623062975743806836237921310468004443237512216552503003446622556021410538708472798596796565641257129544369984884671181701441221418219373462656746936194235014580576635533184695167416421255303025566172352485695763986419187519581729999364258886649807735890316407267300076772484118063629307088852794335596890629209386264428629332060221658883066123234359968565375670227656770647254163751645261555650559619805560357460317286757537177166248394497839825000072700556772072367401948027622912339393291260849007054901113866474442812998999284835556973803030476145332620742818526460863947577108682649372727835420015094260529960670572349635523992076837504339748564048187859605995574135391202497774628101232614677509223728180126609293546150956436849186191976800411180714027040411527401339294316126777000320703779767450617623693445137960727559327296364549777408027293842883095216550582444416734511875861772021887169868594012975867697781195357855841955605964103193637963162688317382943653287172919438292908062359844538852316420511499531869780941010098155820619219079459498750875835867854760648043090250415474532006561143962450158808860481024853206759491353556801433129293984450063046276773923698306217648813368906833134238594847738011111787931386857398626606315981436912412445551633120187814645668555943875315746857217568683156803623036440021637292914765244062124391698011435453677829921283854550410692370531445423276663055633891007193784288080990105713981964524377376229374628191072215484534355939716091635950380942824412595525372623003464899616849732822110673415074823662532691524621117035411115005722930862585611389491041042786775839347594265689310615010530890162988788888971988879801374156715848187449164500172086948283807300809989244256666050622446768157218079455576618641461372359042729009557782609816431896020388851847528924544684121965075861210387309197429711274375388574940786136900418428393609951463987986905882184327491272711118184908171104577061012293626118654063827871384031500165368193244060217714749712017992380726068932749792276005924910708036763342951174486433549727232620594634534151927074084242346547551556659630655076356342699991264342939342454265674474181521314893256225015200581275724058788120230506966309560120898349469048401410619870441792993899700251328717704396163369317195810953654235330721692473270096675518872857221447942979014390803639315530536425464018759415531314847449908095745377729042367954285055885135026315703567278667736697456269591874442299996255648079958612275939414772680492848051282479054315705535073796270358661750147446716254630457752292270680162996759144718281639610161285330176799010237301838233619552233314714715249578776434905826315875926383412550685340843799425226325810881336936602550145838896046544752728985228207678984637613766276955873836989495358114589376696320530415245243091566642295347486130957769439602990780699216773512284559278714138241943035522024011475793896686512836112603619284112221822147853663964865186011774106885372632417924222921155091862636646351490762965792610714346053779229550686163865168907602610270042022954903010218019662601018077469172452761377730746842353340900132773262470212720488935360981646010029601558759911796190022860546409920940960562938927737414508959526310788025125373884146552791656944903221007634841627703013944358754994478580769905989824290336404700263528683682542453317667190963436082354969936827288108761419398282794685611505175462085570359695162831541789575331179256115956795641840180005026320975221887575692181604496168089991910057277781005943184977464337687253088593100944620738522213965088536145701134407225169662560514011048888140174304305345304094015770455502060796876197145930536611340608828400166347934331651300974655152660716607433518310778602662167067807153101685009281792407142625325697413191258368160735005752925072789139988814775328559284246596413160252301032321096450778270233498895937804633431343776345754556931791792976710817808637099423987892970268537916234035784923778723472450941041654689948888754513498399916070550773291803543681308494910401937382998615916905786783128189722220075976301885041711853511864184629906153621764661391558854979122201473978806067396061820550114954591223091881289758484014975990103019644068902466501380520469555776837905800094630422588478480573663690278827028921781161775370612293931144509524929937301399594607266491826983130222685993984280033791448762321865733575372694408619016576015858271589699298915827889851774531578487091419117606315775641189038778597286081666525330663642503918045864530620554346894657206678080976651239184837461408702332741653714610534016933979871007446101541513846012460289543234831381460455904760590806014215354391609210048661936087323358018912073770679697721173903472989691118074842130187473920961160789770348261814125206831928876703296770325880822570467622185995893617405707128143211694710899373035822747845016722348048849250201577254396482405270789173447633686630956780441901874467310625783726286395839995735704098734514225233845910472286604372466369361002022905663302363597375264650719158508883771682450223799087452956580576522010251508876322035187253853177508151496701478267727546190129512705178576592782552926534049157578301517074008899232669142723841236557846657872532636570873599252675928024420178326117248267495281182232026813632604814891896153379479371772145546456885281554148743830165334703963363363878584040133068679455055258551463424388846610241969551452827734905956022605010468296418252177604625408353760054624066845243988991251304337186148622012491949895293492671918190457159783756332326949434259585049291849382290766199596868634522705626174850099054582055098578908845071889813186893464086199107771037174948368347838879513442554945003083008721706263889150551295393624093576749101419905829723526822164151925924761632586526342891067048409362802311824218596614938435717238920597109889709528902960989904010007526510793247719099836094340001396473574150147273489040735244886918349969594043594133658719908010535204366927439809713044698806741623518697589189565269642895181464693295028449916153339974598852006903899888636092972289788721757385947850472699089983396702803612605436083797316832065823290150060262659767071807764012493444566520907820735567066500396824258360506717961833473772441524398196759922916326226762975777670257546572361918841068740218580302746968139524513728318145100611074903294971473300819763361354588359480288737582667945719325028850191457255735230379020646318311455100360921762854441876103555232255765340315371565318190233250747265796685615702692474937695027082096347301061098084441639766015746053381286423578077567873021882237701274934667782199895935032742282956139479016518813071306434784014400906210751672544596976686159903475128594781968435516863916354889760423523640447956324648819892353429759516745842265454420170526671744320061953935594182102955870254567066644742384389744753609425151917759950423848661421076238690439283384237540554551996500507442107319517167938675578342524531415089375181632030866102368305050030692149238625459272310429800259821298433671392329576005240199332331989181799072862102657777447087807476323216309489084420282201848551999794337178537177234719444524276556195829674721139983258287559948366199506210885555235412074380643227344696987553807610215122101589684343798426566611441862161129687330646499846842349881751615865881665410594113017579404939912866890356964563722878400513269277162181118265356589592408886781916812965947657803436576334164489502121104222047508931442392761332249945947800036280085251982120442588403208100956529396906751543349994774982923334714014261856681147069195558905976853310573002918170175407088102194347787611091058151112556965247006764856039746730637740612893730671050562214523439267821628503152454124569533479839286495062162289869339774878255791673852806969083358585072008309982614509762619742460978163490806425874868309353852835480090363961451758127865915530371883470340986054996715775566143756867357823179925654338305264073407008931219755374861880693980567434447363521108605908686397307889212691149042559416947979828582046775109634535403513063636290036901064575621556989563701416965097120973372527304791387228447244442664399244727428363019718408893338864246005134559473481866801475404748177243429525213507711523166349081039495726323907748216252300455265536458790780206140961064298130581482371206930133324359967946549425612417748429832065432131649175312583067425519348221487092919038844459901047987875617921338791695094258734171992882397046819982503219652679164689493598301129416636072676006737535648263878842581485813794442673293657848511422747428675476969048086447941263742475763598763997113941900335232994392848361000316573037960699124247433331606879255252098334411996062791368494996564288915708728868301417216305179395186454792678772709861617159228438505138180910325345646576206424981241852158069684205453386476236729997152192705872634627524285211689377626611703486821408177389222314817015986225794872890762018992929161010331650897514374168318551793051835724985573693227135985589051447679979935879248600991225417271662688654647008631634718469955692356318573566830173990186465193341358449535304532624417019455784786385229229223854841912972191737954049461004265358703699612834139361222325046257012550385183097727676892053866739300899159135214528906098351450302655782455760158261764219743439952569017344067274739189203774141249997963182466701955625178046842420043755898311163042684494112370572347042747874633236129735497729890898661541796804837105722822698679480530571388521419798667825922942550284934223829763862817650812038047140187003298786006013392616922692073929580663669814053342345081111790925760865749530997777490621456889862987498139551801580277505386023777172125202604286370331562157708073914310134016600533593338705657939122148522027599253655347171006673691070654438290180268714268793734581894649770578115927122774388455993278199636424851792039289476588662031487122985896276982215058622009734034467295066263035226898422325497729545252527148807767242579739175245480753278174453189671323576410251369546148552517865630811132842481401603503257601821014955158379909401504973801118040224862739443834698318985290219057199524362059828530442080449545648867974243815174158726473076574697538447306138085715460937934760052026928296349059036319937170622808646198090811631717707890104026353401886574568049313902997286177453134506057365391715694499856505335184006835192344591336402009987217066336790616352908703166687222805312872945011352811149703877186260194037622400964463875165209083784881323083445827740739792936483224144235360456262150289701094625044297189506047739658064071969739866773235614039388192943549903264501645992176869688359348072476376754688791808692880006318200338509770747986993938296167881005943764680973607156654135096567002817019336580884872513506896337104597239584701022150374219168230203111350915122386843606665624568202016471962434381445756716103593096976671085656823589000465543044117362105275151351102332756630346485617176341048537009177911754725488144291032719794418551522063254445543883445394431479185997387056209252497283665111505855060510894907704346747509931959205727236845181945338682423427615932643872091097116300666900423599851405688537504386764667803201881645494815365259271600257639801567559431451424488970367510788541174919573660421067601236757598292875438008101208707416297745065685901573415966277978520816396274900484598312340199582412151737311433716960695355365915527201384456990795589537884273215806551196670997473585553725477528714748814332294175322732422548503782397447796609975108741409228881928578057144096419852233282112612266339843635542304053516272440124732704262614112397707253258791927040963829564707078731763051914244938120201280248109632875603081670500275765396850044735141572123212921734259374761213361400391644335259183805118202842283598247415190860773075674331679569978435294457336045091051356219292886715263718256296943629572513652939566717362228982233397878173156176071006971162212926859746597456569475972848391125043386517553905009958466681000787420670887435802093762503547135633614899993347680566002466686514722558381928712117997509753780043381138173964853248339897820972085444388242240745515208922057040775806886763258039065392957256372321379631272905450736594571857576323932903339968867051781580418478644331451509806108065274274602255670167723145061615904131598485066951052813872181650845918312274675479762317161589153183678629161499229504395701923919010257606350069207699907789153374710220374007215601113195934901117081902138449169615584581579119008953086997231921291775296984089283631686637334626680369817809053133056597866029537746194481846158310524085700876988374033575443746473072625982129672160979379531618232135122572505230839312061630540954212869584790168395877575339054618072703288350425075134966361361917694145733177328659115602631510042546147912144351854230140043673357791931967025448675978877416598974203905744374438971747285307053731874897227564772955437105197741205228379022696773294811572783196730078945436780681596621371732146643182794095262104260743444521314558538687922371767873590974263397261271069732656688315914031939894039680480598065429440726159738023263837541822447692619414224097023252400021840144822478106231513036106519437958055011812064150974051965173109708372591025615921564356226716897969560643175623580663378204887970475400946382738305928077506193931124389785458946671022685336108989472270968231162178066850115525147869011938086500777494086293742728552810103225531355260105221274391282717816112444229973863655410058592859418947338111318300596130153877542015734215258700243310195889773809998232897856644602321493351640720234941598302915105808093788803325619847656265916103860582444183199737794344613171651623105633844534995930809838553320520229751584194206772697861983364238678330986678318042721529847104632127191587752016585717106580394233945382918312112017315540900960634445014949489305441829153182475161799679988772602375590060597477964196474505181431180818154899428746164588374832430657239142294771392367371350286658970830494217755401021551465640319717188140630639564797362750091479858656169892952147805722612916275130812421308075708298798372932964584384430758647823577723538359486707667210487722801366310985502837952580063926517655701254919588940961142930617419968339148486093118063034365362499400574937454732021193522989977043036393460848168877554033324767868235319914094000572210096174205692261456787929487020443587616409283630918055439201624222211528089538152960046821238927597111642287190959625612382342628227059002241111401834477084956101300106344506378263295597968698861681981347812567373907108175997324710374476859690732886736639497104204408595068340798533265421136835848981163585628168742565486955922117983767812737461959307897640492338000220225374367084837091616580931833644707929989527276827998340594201282393546506118450859339202580086308836099091649622154855529661005177627309312319626636272151766700570134518112042209421778251986519956953321604529850945359389919926102466295922962984424331727603694959157850126185797091623412453999431268469025788501220066711456553322214339068164768896946349755543999873564465029369365383284492861054281923197197366990088772884405548260473169604840778732616160827519345189655482025894465367298142696056438909502818099056366062293947532203350054325607921253175745537409334142836143564572851747843394333212669442567157458624694845636606858728590874514882825479373462311853807249281691624152125219904787865792857199587620766157684410311180842018481317541609756703651172741030128154722077902652450088035911873338824484765681640388854304680479612573557713063850388550698952495125660861227097686236978392649203971983106851655136509007055760889497847448551763279126061544508447172956546819614368756134761709561801829494982956840165396640815943500268896118032381603583398426515349990469486575657300110867428239617369993541483044904398816975953606636527479304986774846710138941399303285752675378327279425334019609138511414889814342121243404355881258786331543843997653031738272405831402069578621154462546549291112219513072878162060980856190159250642110218135125291939789716016093839844013460738357646141356225649106568995467676811840145883420421809917455674237888873312498585543257453661989355892337352723801397475096365316279031974359052394217214573001737268498490664036082454708514044341302864418680845755022330302048303886480343936558655346036857444135913478514916807176914329330259539498101529136800312151757258994397680629640804244381257149045303320401633538692444086014526125001486622778160456420373901856795269513699486820948809701297363094429874236697603123884538002948725495838466192223156822655499841344281092312052676486923530827991012802521593871488126067744781792454413654696478846163962257167724541991738283797322784540305361792741123528283632465462285714839601873427025359960114802433403558508832858796983744647808294453116099845614258328233687105012397644962251653330759695309387703682792968526562543305184983339326948049778909833461125906088313896808945355453317924595029999016573345952496714161654776069086608740831842039967025799200895256385923276351188916623209517474712964442159583595921677247389924771600124185318264906898758461828262385239082683480435028677151640197115514940237217652028571834488585172198458432026733673605066869265434844878142424899776660848093503615115981660749700879789744881154478325820871287935894119154203079656567015079141350965678109112163022733722265865017626659639518899903198042895687395319515585631442652032435471785509049379582126475526241861107712080917971551466668831124548565228502048256748901465833120390820037828329062293820083379375244018561596213690566838065556686507633895090713796124275428153684517073143079645077063737405731258999461583867614825503731246878636374627613874066801958470786621622341957755065717766692261604220037105792815737778840336225565996940734992321136720353400889822576050202503582061246754123160367426853690987548965128787558663544733255220700801272628613180178423695972898270932285211463846186909563674022302253749975470397546240712415776773396717731101359034992198268378900441342033767072053392402249661113802372821636993617636641119284672352622839067387724281500585257074943382233750744462459653535359724689341785120342448875491931988015896717131695047862170688728099288748194676190438921174798987498191703489689902186512402513820452730957181614743930440735850349539308925897667721063111586534790108259380332658240053400736923444627324032719710415432704929782995682390506887256484981420423954040531208954786616833039329354874492453689462767966996844571116075785332069305372852414090172087978264830188840260741490879077813957850003682756092113815917833837696467244832126116655819315736122827768044510551613991080758583210229899902120802519950555797494692682393145866143545491948283769010320957277237011035362523135306157567049708708272279660186980080863027827801297012105193376018104627393622911227979251565266157975633337539481369253478825242293396166946212542565163978445539716533174452505483297619354006357263040072932419744409539568768310889144418761790281460778014328597260311965423911861264545313177336068338152498623234372211810335235652665868098029742024753186142572469828603588626066842958681722588974629805164877336859449807919025064546794585212245725440799447508370601482038160312244968571801586037946737685263951142491909526229095958346010949706115788617635298203115742089885756369124684137529236445255616661512006918427039434661742775763826193252386473774915325852680834795563732875555339908890158794273686465295131218787460656575734734560979759539004787563906060957051773387395296410545386891081371715993375062213259692299736852543436675573475086968702575339649442058934846212812795865429154556875507893933597574190079424867972396146040700638376024659438104316000079319922291096121934329941186261077613233824840561778970192205560114695178274115652180108075758786700783474547914013918259536209096518565315913733613897901617618136285028706385049015247713869134576553838991606027108936915665340365515360461037004396179384023080750234640524673853490548371766127562862353270897442285198164000641380637734638731052086269500528311892510388078676772391343311115127028184433036356729850190299350751475534997150651042493637681186734883784086302442255873667189571205243531497209743329284573028775736106146562884870894224173898012873020794950919689209350837469693834353706588329660243335853516270584771061323412963546949455867352434813261075982337888865776822674460171423218165914532507490401517656153255790774247425322499170003892667974559401901336115211796186786343249968104122487701973595254553763750796264440863685760919028463748491337143397469900820582528490636394166611581180331121851339537674192438643840079088938592263388525815322723703711528196025627231017364121835358871847655211792469458881232851530325374244244646653526099068249131943900919419551201113053443256699521396182169103183629850628124395780287209493772618502544087560664476543452663207212960237416503735705190695239759779913796356103814724640043905227107429091578909159568070438298855876717430032733642967623327654416984169940742748308670209914260123653286360086815434529133346375256160355897012466278110136355442342488420049750276125471471894378116753520506997212785449338806750100344527628382642018049827936351949966045753892006235738388165242939026250959717094950195006313968217961439470368703925026656699790769379390820778544146023942124888883969228731816711245993948883171956348894094099033460386203481868343205159142420900688023641798311993725565649172152537694172249582588303103414216948473353032560322517983944519645123800774263496230833938014687077555186983216582268815569584071724275783251669818998351797926347487858807443095440263075324301821049870898856722585125121004540128737620177277128859900155026874056641048867976472954675031172039194440990933322175086629945445698803749929280993444053294516865719863459659731228658316525545956464549723230932032239811068532006547621183362804307840611605730722150746503990427623814471619017552359139142336396869039864289442278366039266523105326885356172438364443825841084720878609127293361436266062752984159882580512019245559397786667891565002755450864372852304120913074522533720385541179787774556396319854873353709473246631555338886890232200933770954277572630805985074529766899490726790005417525640660914978728977196928386487148264912367378608058937011741134261299240399034104018884596686274051186102622126535209862115418825982379614505502368555140439965181336746096625083411014934158369122512197739494000543196265668777740764818637958852999512389880266938514497306031623403819493483952066038070647745673261105284992590186730823306748989783495243689267300301557546384059240810793512904753003278566320450918969570038539591746377220223020245304710092345236660782231734297239837111540805799037229598522405142324516978857482496641306154556239078745981597411269479090070955702275311765253957502374786451230875538805261716597675427145469074602385529680245411889435457932501963677374054236114384092808205573632522039716203429831353562866715322073539385740513906923448400705836133665718067505053148118906569439974651128264988756606281209260928457710990137617049673012778163840741310507365559588859681747102042662877902015325132860494915344630301760820543712720225707522370944406617663639982415394072497844277776087438182220135909429419848301549565855591535151442362784620959311324653880894745686527816764912898358505454390537963877660338446490019515587948663005055579187254399008642064562057939536635405133040514960037671099613859885766761792227565458888779166273000860045905044245722346895693922092280158796363648866968978888905810788237448464404298769712839714196299112307714583619283010929061481538538678268104101490334910668295901736203068456853001959988627783255042339397384585309307453207980089307709155502062082597138734229954173007167968087893697139588791425473664190748438395664914071829775424269169268554667418947377447908504804254372997658317781345549516358376861441263827809113639088537487582105287347955372637332040931262194364688787350933997215779571137897944173895202847914543322573168543948471408788057614783056756495324770177438846136282953628137167383601932285126492019030901418566790757980137448813395783633187001972779651129770916625260643344151086815842615817390280978365595257030682368201703222689934445623765717501345863223315853985782659462757922336166562938382367755875573101510996947903398002523845527148774817527852277453465151382308736385405420260171139432332320193159420126637709463998035943780827686183509102020369596508001833194139406705271607048098803110211690875631068945674662771830800858495426175160799499315256385160089606458034711704517015148015597694028798042477266603823534583902037599090162882152779916077693840360809698816996173897254247196085629773988245802079827247406271731425715828132755247843897153323136448955934961457699231193734706273215969521726985487269486430372045390291199324702434194560527824834085129430617077492537932946094712334450652392188744005234055518491833368057155965931546792284618499096133169841081835246087245389806887367650047287931146802818335435780514420326875704170569049361018104703405958935313909615958778060136998011817433314037744930589612559947924554836238357493307985349443215810207559206308169127994764300136339966795417902759893283320449662534246892545915690258839654620062917617989680247989491975947157727765499109248900110124549770788489053631711249162936166976163037701210245136352885036717100666520423021380777336944181309277158220556231980826802855079486703958574972383863539819578553585990816557755211238143093038738546691943010560875315940391291950970278838283934253289365306700919610673907133286940879777985867491641005105663950284294624283839019329620367706423028295044629646882186257443745417440843237686286877914732716442421155377148493468105620613389955204671621556539447501020867719303803694625093407696269068013783007236699108707265613229900727096677807322831285701247500294969995060266613870287390581601610617378083636368679514224559000270534606526911855751081956596712800317946380528250635985111431673888647253499878630265402068454223038774903421378458678320793968343339102552752770713020910134012359285269804447617798299254487586347191758492663438163185225213505019032267045139533993690164510709566330384287890996235636361105494556005234106113426165360422576054417546782069837769245685642371281320176816963661261945081821456026405444262458705628921810471337035688192043280226849437173897221372851074398479838645846105038110353841019643127630545666059482376858800669669546875980313181012074691299183672274067137341194680314193321373975440979496352061506592865575828536369904910841775084295119054951024689982873898812802259996441820201096796784244659547880646277340647166621501172321927242399304344563329634417154338806859181983825457788996129268494070648959753683598699154018067043585485944653237592933599053842110005085893093166377475224624184099211175046545255432409990275030088739566015018720623808867726150262757284336728402869415449328243695078029760020135235851491422895586407727741423758717499118934898170250303536263837629068544086995657719456683078724616936675336129882300352974368237558476054462530537168217207432626480297094327079365665450815866756513466998958947967071419291351332615813868981346235787592718626650063869142569828927654512026332358992160395574564589905614869467783125419945337851591411160982462555741743291816847964861328405343864205828377999739735757916826494878658017272603613644223209063742166977429105648585592713579103110519541199643144694961688238342927677938342459987373037199968471823081753517979468489277445013442662446517941707352072420604362388600364898429259459304893756138977040344853561453240427880155952565996403461221859391613541698595809749265870523284238000867683920165052918477574139195966873348532722518724685554886083667270514074438647125498449615880691905535407487305704272876220203706107616568951265992408398975436725597156758985885510545828419790423742174126937355674602300801143468822961829248048578466871238932619373249746563115003454083698627747263070951369962586043090514805202354763430345710719954375279533924146124712619262434016583946126176436663635857044553900125303758069185522377408815827341148432093216949984094848768737635248873966642928644652546721827323348744702800115379535252658102387161623644119284244374673424692144572069957851935208160231801593396661583408434929885602903041709159667157602041684734774038758101623112923884736439469167603253986993211562178543960034064528996115591252691157138141743911524298908528904283911628481963863968921297124107736236075860243201382297612472805381162845011435456489141264413741295251214991573015540443456794892196922560010075295391809709774497452994942164983252744340667714295267475030992697704541147069091282923432095793055897648197853104092459346235935154297813154286011136949519534283231809120670593331253468634396732839367341528110077381752256454056520549745395198284932065305862978288168382193550987744970909794966939432709924724915539696246452928403883032438336802311396919126432577316554868874802204417080613664351976054899669164065887634824090878596905506485242831617424601574902393307443477246730702470105446678536833216348585788660325671897447058217595683638401763499290820693043657633931015743470069878968579957862275404387382264813282671978079556453007782410328885225994652402445304487946275673091112556951334506606339337742391595537581759900411002036055578332644619280680750031816319077550993727328514395044043644430646444327847078687835783231454741450837963356073542900597648207816695852564467902979951161110857041502262770235920570630881397826517249829248688667059886496018170645821515118391540463695136095314371484810163826763619834521988999195032971004043271369363311222285031821041767931696820208967188468877833026746698412904350213168409177996418075983158700225777503880697107845632433513535110267511996491011414023536017699130251500491288917740041241961092408972054608914173225582305861726382042197155070648258667268317533844134590797306107195123166486287788956203956445307803397393767344707986831046363244176836047690300188292874145843965860589763770272982951050279030943181640908335758010116094500709795454940179316895352701734372869438703465425748380291708972371015312925343220239396949494193640304314414262120355430096677099270752630751116914698985994388737349453366910415290196164610954758718124204527371905471213486656234390008186834287179528692359033788769042255474686828319122811914480602092712595860696337006124676154003061156874690277077852315218792332721446108530493447873095292730343872765804833237304549956653508542549270509674018265175129969818069864525435044304694866547044854784663965218246104476173083906714939875447512971806095370996058298009081324671862856215921009534477243625894113213236117145014681656045682748415551967068454844659113399592647382651628951860013851805661472492087696585216255921776367582651148335800058960273742980229282233790020996658542528458786330950615562952353884363256358393781018098176714801708454298172529562841053677681624601217069577201725228119829700535444762479877924691949427039986631119153286131806021077249254656477849787076835261382850304504681236093489721842052746816659552542429382171325033974307255586408622879554222381267651418708686479054520142811458082359359971375829357452653730800705754952302126206381191382575495868800113974781407566239335198535077407900746454215169869608156486007407558043330014050034395658960480290857453023293469547172904178138368173145594927987237523586728892272614517510772829405574051487113441658825765507753281192608208386531827810783945634399790588609224232974429457798943752012898717166597282436428496558385678362494838805368690681894755653132206308616237666480793832506080871123110878572523010869606586957375562051783979785436938697682085805707698622254491933982249131871791804080474095953202603574878657635266392400294582737120856156500277237654931635577696194160378946972532714105973755797152226648857330476389698605148968643310300694311786254234956165365417354128367139241649019992903417692598208390688899905404770982606903586414516446749797786503628687046463653519851619940812968704228959497294140140064145368151770053581636633837776850517337168693293794130500161994131933588921548418288656587450864633032749917184010254005822038064336851990694076156540966660619821391272071196428387834493912536885521483667523189923823082907899483609303829835046986692203402903691762328780646886632888582323085557091163478823278746769735699624974253118335714091330600252607436756102484481169360564638206518563864361336685998770556415161971384395158479522931728649298394770350197941883767902321069820535379466207916832089634302458250358587995833212952342588230127423816961106922936220485076892413276674009516593494287556632441223729323483097216581489542798086904450536133052829506255026242584984484657112842886220974792613290206492097326564781030764131741842576611532865520277141277505653119734269519793770385634848167315362063716873328825184425887927115267691051860999361498887097863058857707649104722760449505364700359134386621252772263569729568483546281442209915682380997395654770386963729702812285148048833096186593234626024895567337807986588710530814269925345620966303247642766467681975302794888533569746337783007801243747376665302350111707440716121811582817026610134378496907594747815774147028605723934256672209681844344707158782521263723774366402646083552084348579979726126227210448505603880318123082997417955379241673829139755286820325610894866528319439630013506113869587064413470538016764683281497745793454572745876616312887240490218387651730646703822320802209414256846382856121790818882690943216758296190906866987319825449247841157912426442605758635696488903146292055324906924560213964144948541223994739131013769689774322885043443182349107608234392536227519770856656650852287260620558092273079233640248881164361164796511234309284780196196043618364313582555381368751360241059414880267760533644419616741873432049484538000924916294026865235789934556761845166233225184486658817077807231807668234934826123889931783938897353927491079221321779283186483907665798451514757812714953390433779276213246987471719728923013151096556017331722287467495368556666123747183395059815719009686687303262210000325013739641809937036622016824936059535631823307387789557771570371533623757547844205973413963559666346687778396368871050927162167376778943105509918026235280216858672486281143900961996661145856808362107879227346521354551808856083854224869418829875716986276930241178944043981386359023944586786052332287111441164533647351296076362070712932304902744061574319099322064058539412970521156710124948413635520590468896215523380014743261127264490565954075652773122868971287681370941300182545520047365881725978366587372698609147526837749337318037167842050399756250488870899413137618236121095167218146310038807179226047351788038564877704330138210284895758855040237911724687875656058898811827569041198284103142620541079114555692380214090448231488246922930285807559441078629902873352346334186419352139321947140672530263498319171138973660058996960547620853237154947383207418317884806422848401498339828475282903114630480069824284119013378818354926826115653818563642380379993962009044460581987308521050785777566461541354545651656723275918998151539584330343562069120699129400573294799665057207350111937864331589189502423727433010450644348744146843908372656587759179600057646678651754270641070204630005363863072919940217259875434867248539793085101219023697664094972034329440491476383083583469188522591409735954852968382355113180813172674576668150180833615052878745841425610616973981369282684680682871134221108996032356565169218737701025408048026447886310894736557982961293788739103815091780202976878920152848624819119591586682705526798409571767276919089990280216904297286159293550149737232262442248907491542720712218799750697936461525158452400486464575463402694109546829074281701675550857109045958367198219231398758846324926046149868549550755009153931378590818048488045547632457497701614980081768850872718783953985649470596681438569348360682188231846548255565317750218699326431669435347889576172862448441153537043361430451901797921444734197124483262831151347732104260943086055215205782811948760100001196505456705560100617458443695608782167843139839033190640778837074436635154068435381704871094743993562731535931893093016219370283293657432213577881073207944965918338152784890448335729429307908907764098447419733928983910100109706919399360358352962653040412262994854740915221045354669368685368475644500335779058933016951082472951910865083580499956003100079577643787789413522120454496572759821507096463970194338794076520993562622568846213819188524279248716983920123047126212086849603323670478391046187394666139910201271688956014483671304880967024910244158824120649072581820750435080273533616080256792007669261888191084721819870715337011201042261599608826182147367146222141906993245401981445953893795247337044663609607637751016519616640085063291651309167173617713947925080215672167845918224251435005477904190140809324572135175109674401621604411857948584412536972409585253436135463731548464518008357210604647660958812190742286385381010059159993684816916391672195420373695149702452655026682516974062370748612856126460712704363154506019670684238938594281212895223880628819170109703587974876295498973113199990800287262734668820848282316841466430525114056605597938073275029386337303330182402848752667711098243473649622414060463956191556957081649797362403417809812834126995495949623632962472689132678177403930948283238332267759849156460653128325871417753112978147661631783686311284236190798587821357941945497528974864947467326922577156105964819247742084341919285254124619439573194944871601659068040385115822131014528333467038435426495044802865501294321195660075445632032930429186951504885831288087319126481357906205623794759490299868559508880026977144149521099469172554509886476303449575712382340850177895839724781393207627693325801067245638437814856448442165631533722090415923775240183516238546215853757233399833758561684964503256882893245050154884715642450949384220225703906866212992138922563871560974109821958441968064609658728583945178122052148090353616513136743034004314099217022966930405710573320661524144311134744379858771382951139291071134342453966514142919624595164659069882000074929808748357582021100278712979831253781605803822968486063993842256976637619110495867493037990581009885826102735541616921047288617712453836073020009811081996438024867860326877285925218147819159627198301942627586374176301510903661440549215917704728942656090662231990930542982014596061762046384516377111348014754721058520045171381905154166649533444825434879436479770996047260108083310801302666399941483377276657137857950864050951503621988860179063691324533611667052099203820966106945165772170651582159872565197659252401806622450999593755101067115281565396659707387195932161374814666438636298943882092413169545254313950151259604150717872432839888915935147661778249978271879666415621528301977741676775998955788720180290775408559741393273860165741270522985990678913956381634005376744496472399854402592108459175970542728862496176636153227636772838969560620856596264241562673292162207556606431328228541423770455297175210648442043160956232933852000753601238028023521866991373419200055781630467582863758118841338480593980886229187344000505153685080113976911095998182004780306261711052697427569197349970946464424871834677340795451197858790279731037595624457487490375552315662609660670509381523067413495058452773826162752614790493898001575998001474313645475247426964187855986277762183681851915377709184099532697776893790509352773112484714927505261604101777006165088546573732387254182710190204572840946335901334827453085781756710369394816113534584333555507827030700162569190650482726797209483750101844754680012031629752109106037445921017650376908420730582345676681564891465504761015062709993091795576415187457626599640742513720537804377931407698289499922827963033621972486969533756603006332479974156209425412279819628311261902096552492513477320469947926333813443328326530189220932774827584818870139751268135488082614780431467058592919535562761665419155505443617843559413854901415613748028151517642386403950567368654164961007739947373172593929968110951884739829903795683493625212342845988527745612712379523517765554301968491419080219276439651327087901704633934458121538586207717325658593234700236792507551358791828067966309351346068275231944004344039811869566199114434495717145420249619485600084480421991719003885308668150933373768423922611300455347619553213708023896593374363436491240754427117918461127416169267217920239130546841553039126667883266727399085444814622106617690685165193166674102636088484286032734852065896858898243272685699094959028845064969591419180521120940249764406996508492079616100639509982084544741042557214842010678939309944799536676144837377680312966399672841563831593201345802895210858185312234114391876037859501449126668050973618171592337484969488765032905685735752655151699535795492721211337920869942715496125487547495232966446734424723831688603632074766474665034730242214359757361150476090803592855748729680531016883417877006827814913950670046937669468296055739239557567051911256020429584585129542877253465499755058976195617173348701979902043798944735740433389007831550195119643185467523953668964863081458557989662948486471849352788074393309251802087502209085820191602455998695346975195182637204994437419175542930480991799508487449367925503590273603256165637076934508516937180346390775431877603771688430807623812627301363208355389770069350958377337952342037962568594871608918892123884492138785434871625145578254192380620864165287949987891368767043250354900420205121241622483061978838853120179957009850486813692076357627223223575558660373202802435537036329910382026251054549778269716724508781942535172160486145504755043912946864436998740358636612078714186890501610724444459394232874325337420311414693997320615348179904437237788731053151985209321958737042739271172682976101930094688151128783464729996046681440271323704363526734844710344459943529888877979330751000143033281789792273535931949186031814409212941045506931882076377154259181622008828607818244269637147690089489999856030747277932196921952024376134267870613687226012715710492895736025225671058654690700035669527114329420597595090518897524479277948074558502632398428448508686234205784451282755445994398639010846434096377618580386216992102871334114269214229866021851396905143100179671490008907333210470939098665499959988245969106293531449453189618441551803797835795867059811414676770866165852145184221453071753457814386176295951859716258295354737380949828133047281514302968493497378826121610419555138883691905375025959959379866594012741861311168017515763606779261119442243226701891667911975608522990741493334930776694472556318881186592906548313848499341190882587354177946623934536863590123941376173984176197435728169593564669113898270604631058697547239872389446531155945119961342519493005576831151505171700769174818885273611133491538164322970626415534234537232174985786356052603656544816309868694679474416727769109587694348726777022556531477198240222668859732509987312903616644810862862610246519942295709876933938446884868230590514264450673896033447822470378654804010786656074610284172155168233172621133225000127535400058294062249107834182699739982012562657648024803713930306744318120350129253978687693984428112730105506447527692124377688847299248215839236395032814898157585256734788287446190742095993366839767657867458158308065869549223714302941496332657579992002533077308345803598074984429732774113831576553626399335137395421915344876140279516703652464417057640754238041690199300864621929253326227349628703782293425295031528134705656845889885080551959954332758302698089140148446691120596138479561091827948384689540601108027542565570076193706396741946941606140904795428472556346520413114142243607433515611820701227989884963088960574879687398982736385620730301893543193965009361929729659609492703956411332693555852352246775024403918885902233923289088256150775740428188120798283683429730633843599871148715618674275966198041243476020231681749402819715580617741172487450006089671808064218040512490474766312816647801667599387832294963708929313329326280333496904286070912732118047421172162412567742442475781153980740638046141647530738484291996785547416904358340459026624583244229320472208809056922777871617098622586933920324497757704362147226707724740498276086479878621488809577778151733314830102835912460550458711501721343266799949511820476668989512243331935299707975600714634631557012392125823710118636548315276498340960824631222802730741421044561794620355944443791489004083519682213067346174244331198970801522293081017092887936327268215515054462388953707013353862578048899090566491116047430275860364654321447127386661074660412413875352648281594347248910115414245050990195205928643003592932147499491400197521907149946512247638120776826900192091247962278095620330081220918557565687382042529158034704076035489567580832958138775329480192143192488925383446108041347720344846957517158763342249881690290893141889369627176531474682534014503225993902119749839380683049307055449925605183712290044330621676223002405087443676040279274182180407045691924577713487316037688903071115849264068976607609040661407157660441014738886039655794952515344280770343371764903075023486544927300819689099271272036560205315626382918377955613656594048916806506793456574983186312072362452511059885461020815366252530055764414882677810083363798405768852862674804253837275694354325605605333262018761340488673053570075058857834704176195077719274279909261353772751157550838507949660852377391426167885092252581742987501908679315880708442306910537930885129085864944506627026315670213634078646323395272889382928551584692222855413488481246650662712472542706590288610813928222177457269725686746903797714085215837043852624616296293281907258717893208215931385849997765200357240650965622313754752523463225249136980338153732597007214885844020327977683443996347010280282868341839274463309191976753580513098694336329138356522058180707419007288494948630861823788930257588147958427742800658786719274582956406427351094664897654046901318890529422422535690355924403285401690077328435362996891192148501582231473013674668665962357980671227826385613786153936090111921653582287040131713287757786607812139444962859670314513499380728084355240766996660600846854215679196703988585701134214736914514039688978643177200231553201761570832534671588745741384044240045004655303314918552466105467024185793825175739712658486094100793611694460240527638289326187634757972737246033196298972766185392712674253313391227337955190206359025561056073092570014494903830614462112734952303241277025450280575779641227597986576263993106618597664135292256006595247266298627575181493139892123375024778339048414180037887784432098688717757583622100085045113975634716709373882183946146303948303394637452140574160894752015131549651823537832571540855505378197899091838677949108824249490038237411322300933991110512895457892926388962750923934669026035127543475757308833289459313511021599979305348311697507438432665287969727244083608697983525645117056213815230276571009518236128236485564442841767956686894163391951108712068775512302018041248837267598996503228662903279204951234960425547685971654098437230551669378694536946129783651923598714918357532446544617444117184104330694608789758747926707563018075274686271705819920318328598640916959304018703925127711820977986198589637686965066281347263282203288684476068256055997582789826709391444392517025804251276030265223610938147445311714530059738921403589968113792267970639797890866071099019392565840624216058474246041432788732339791178424115393425560818980592120626061547734951622018838376053453578795299643670620371075905341516429513321275861160160795763649781452638484570868767032949780794116934505415430251188843485491787702264682252980273459796790639154159266394613920158970068308000944471597792882310802726869899632847857228947024222562821165327818214281614601501451767348966564086685451886677678538909171898897528650753936327796510547168781891450697479615851251632531259290159933588269435826794339136005297758663801482001317595319809784345983657874730532146851740460668446298312065630043674621157697991016320712657938113340262803207905479217660043508771216145170864252516968885525628398493641307318054264043732297758815252910081723556837868785421821910693339234476665839362195723703829799450433238077873396106029726237467023867119818407741750204179183138102900946363580775516424307322501001175477772567038321405820505359517262065499161229197761036817153544804278757260206926472306732893952308325652509346547762386304127028905863357692513564408994327472475092954953658361581134354668175782630984186706718751402482164611620983834779152273583302806567299167309052952895675284598032723304204265785961580087951553812011971290195010149365383510391523426686318006395866341525147006571873315724031128654454839180607057906172845253600581626521949487049230938043683623424583149051489532910115443616392124471944176170527901313749714511209029075501011649345351648267954703942072514900883230098470513783036950535990334077763914072351291613248618267158508174013458242970985911479689320349782182357940302481027822501524595378068602704101333765602663516657105446391849738570945201475122327966600044238454592943345509233353177712497618245060384078464259005708902095549923336358696943316911812467987401885691324451629322772921619990638625666209126179187777927881101071703341384946544058162892181805060831737623197824056419354130394305915127088821129495444243562503749865892332430311761323498971725660191676387825987236772813405549844929324781263410090012464007244516677853218849761257049579432435913064173057328451057885242355132277626313072540512541611013866628341010093680042734462694733620815390443777166613159913086875022083380291084218223032247022659373015008083017982484422296919630302936151850723479279871997072546677026313054279518448803812497286607777681096312512799923559665713703426231762180276062443730962393746176417431808032583516370656069103405170266039444237941355735214875705295843848138726335565823901453828565579625328786203976504203335616725956113364042117481931738770432166721520206271851413251559785244118628080970678820684476299249782054739380220891823115792996081705451711367698113916169709483668613835542006182361263617065016301523773185704385203818710400832520508721911693035861146596515423804531652010210984755678594903378346576194211142491942022147360985837377879989435336119337516591047744067082917548935911478505671317866747279987739247857378550250222751020316098213797687214998377836241194082860211037400110261013210556515789312748121918359315855409803210852623948623823430721167453808056922638893082462538386933939779422352168378326326541448579278578329658020163164176032173097179285094652340546921380986241510089262804382443830319732946292886615100729366709231240410189992089827844300884456884469667746480730853421935993053246267938494371345744395301338341429891578981142825337182441756138559163882962583536319305073752861017151872665750344328687157023957616583990095291006821628024070139030214497404127425449408849967439514352529316771290959961069533387643350448251764971570767864154742575581783701761150719991546847159951439107830765000232505783600167909624960839322523850577722004192212272144252188369399411914812563998808463075679304770136321452988194589084542583584767767610035031312633335244650202578138198224556829255400849294350353497717041473628741965461702949586512741637921246282594639004674805584285091454701857742648095895712056231393551696229493322961450152383989281542175308136025963840700961736232442662210596717091368314593297250846261134382839653810095908599525233079999982071823404008468876798845150342030734768134173214475659293448538967707508521000721542833723443953102235053021469346374931268688748624485549218827290011209546936829748784360588063639494833096809512835263144433408394919969237402484312542469034546398577621922139739578182363162225651103342543796591757805782726967177012597331315669666981825147851882841242019929232418947291796656285524474941224031440705351840905256488171746043476307622508616348293515297049249399879752675270826731155358409499420866350911634400210003696616356750774116243954161956104339219260580015642016539668314504072060414536307181043713493534885016687458913225640597618195615698314297987353580445255737820948357405020268833050669340431945833139737907060434391939760791390918965962712025656012931678500136439695704178497740488332660991087862014782759075650871504401812163389685154661218508259371284310607733886341331768333449557532942872926719914523767478323916078765220685648768742298622809112810547141856978519341426260301269397611703445677453683909788701470315130894394243905903994054618339023340572789319724372513375652914020167476022150955054654087297146057940484759305762537351646746142866263222387161754451392884310161579878682720181477629124880076054699612723541072575534494049583526271082598429602073580162737707634418926610991506952656320560512143913883086674253870901388118734490932145095491285666636926814665554410335361676334443986397963627032479862671837390421219958689542582394628420515689597544511841650900021386757110774641448880259057424339928819295845764430602175035769985759940580117543860913023805783903741900477680250201135095420179394944755104009223300269988194840598530118535141005769752582106554693420663601880374159796076379931610810484947814733547720860754779535921601044532423961570977097416318765179460081292606752766744542224893755758332608403350278998665749925615412039989177560457798531998321312854867426373365334745295383351448824725882657879401043110050723797100564634056330196934899913540560359309391863276331317327873607535332807034120014255423112292616929829053415541710972487173107220336580185439166838187027884997542734719825930433233224972815434754746359929477206284007856484267555852503267831320528988334507962364446453927726763684293686331645018468847728544358097369607861504853545042873817613920989066304965779290974081020285333565697897799717735451460145752200714882103608802109040293934704220794333112557696532539782811350593897460601472285221454149182701984059168947768472861280277597369580198350155445796498753994248537698801658511749965369262674423443458054542578313955026728098266823197133247117731727104957836413371925169070156349001124402192240021368135398618373197421592211469280447836289472166086560613112734730535183035737958562980639728381213270392120628828913255352486813755725988646162913920905258432921408956920316712627906171397042669222315439985999053210536690910904456651943687337253144070659505995377831003137188210370762617579319480779562449916818157809640235641407444341318012227923286424774253277779963450790178638807713559997505716395302797567549389080321673034488771957234636814544430061293395429722671510348431921902732897330040946449720961916963474375665809719010707608459572718474901916000713096673279449379658769232841475738715252193691284549892901896609511526332706687046890030439067704051641942234671083351097859540749906248036018847392347708085064008601796219037357923384809596602087107582555418158534923851184520993571573986668330794950454124892889831437977461364008988908488207768249631466456184759456344187305794375472236912066644476939474970740918353146045186087442195224640480401067581304449922463580815481976417463758713195757981199694650224794921220652423681648059873266434933795642308718650601554231772932610285900252044008369550426452623882355179953658195621258189307877064319601572804749588630048912673585595121870937808460350772888401671152973650891559433708842587537982236973295714408624547058234028532788215612247912127339667033042234621228308921484243343916140932008429715750098821395566660527158288498605837115833885500766640384903772127833815987314570593094954877692857685652793822111311190839351783842721188864871948408658807203046620145273258726388414097226475557379379876793971034215635736037276196600051369998688969621826938872965828500915360595483136746293400688215924025183555079145692697092751556113942636607300619995041266609302198878791338153867186928129095482539080743103992055462931010881438783226725347213389873724746700902156990313230593723821453543301365705669101294072451996329062060966037359899731206707194658266893557127005368899663162663435930654326854661712705167239642597966303470356379810276831199558814956139546554458685642754546580449810161659116064539116784458332336858458674616481150774224189535827700333947112652288949398127072463491566670658199898064802247561085403392543641200270372749803013023245509340002392553051516437497966376871583944089741779528198334910943553228459991975825076238022256208671740604478795002257096248719732487302209171399569980062266486661582743725390879214206667293584551769856505094872413310254894089709761422156960120610497352894804348850009980868161106069643946932529483628610334296761758052717588910209898131423924341589459796293165196214261582641734850650903414810074792142553286335625243870043126706426247305331259734423424893696330562676236375516274021511340927494440779223648718034500518159283639473906122382535422260629732967777200335124527698860397596510590179131664316660236818570774445157914578536645607109158887674216997201851846221885677249957508841685295269358914745241620522599650337028648085159710899399207724861509571783376358584964901407717140021649164316470991379661220004683123048002028558940895737682871853049568592135539812436036447670614427300505644195077367092844320027646516173175527886944164271496838108569544111139791654941475062483796670703446360261060902961008996171601042864104160476973323035455757734823001638267002524988615001372981498145674697063738012692268216710719809687313724270513866863392985372437319583152169619004135093889804285443958241252958806150886330347851248306809008674413242390967580734396840592120750160038606759558630650184931928001416384237194092178211007480696874834476014555823834854963642573941336005358520760219485242251363656600160988910990024053112971866895310441710068364462514806548014750401052490091747731190995677166252016903446521371023333664085918178619835321619566307128876702549065996589271268881248233604197568305336055604494413066983499115474971534222488091076721095177096953488934353747615348143642171488774836491519135664739170933551426711958171796969371170729339286639535185567548963205950663915845500874184355809885989362301889313799295446635438118591775413407248976858966397668330654393301548872955121485744027243971663483519931750458236164635421856783165280192868620630545762854139672364117663599900808483032969366530001954348945123607585953275661689742171422648977131810366647070960072339929884411449746934675179258053007606112610550055159037910331083325270145206213637965125208319776993463876719553969616291808714902899903060132179134872311453007560250056713789965890648671251155944203474804312229000522397927923574483708897282375570413606889457714443843764472650252022950117532616791729815187346469258632389153657415373723824424901313498298726546132743048541640637444282283904012291684207362560757752109607166948040108298286912647356959304248610900877766903393936885404710852170370964704667541507813736344733613864335874702089855761091179960574736754084695500458863824234020622769368709588239222299843789961134281111078863614832065526987524085952333238410407549980797651396013304645810080916620763752035674967114773608413760040584849821614874441469695725809346269759426863272131392446323154076345907555261907622519812189076403177686699740329663661660361215805512168137423476964494772237240602044681012263887523767041632872150285233199772366887025944228136820789834560266803815770976507977437954752789555937874588023588038480807211014137190210555230207597871119424162716619230344630001637699095897351031749635367138700498409582503163442563169660993430322821912951389373608758595202966549232347872203567205459658762955134886507316090930090767248074116750407687451449769622077344230676789858447461001484869335928092369795676817048899080898722737985389618131110735721886929782477427340146890727019280066704127602965778282020926132685022986282209625761452340656209930545979719684831311574472846593178591699278036093485335630962284482274679016582823635381967711395106248735050725641735300773317823404389828673190905541180565800523955974949765579114442012431520120090029361778037886456321375101492830182802584067338715778258051551489368827320708776300467585730625327937589697489225573594372363251235504989295375739390092134511675065290472111595385272663263306455670841373696975193256662083748352314087899354567222077318641094377356653283737873229309065460838062565422631121558105632808955140802746358949324872985544443009794279698463818524335169926396341877515399552126258745639448419615883964900887939421884743899058820823052631030607223203760927829457812266585378714869439224424485575168071060307747207457575561973762386779359459188013878454699469261411198009548160367235130361628005896849400239021052804870391766515195573803976628538166025415357365337353806575909990790152885804124594294165452711889424550670310443687744235287201955282086275967995163740463545320681541935667730963019432415255234321012043273828904818777656812276742946919754361022425891482980945786818591283517530048719633936799792680783583226811684213927329254238978203758189461079749017775366661808147970281964883224635143877480522610742901940066009853177999200750842714901824849865338809899554380803979377656027549307779290397400562084719555272314988147793326694409813120077214715323201450205978676038561803493028349966134095546353257110016603963628127911401164128881951166239891286768742270235949228582378791088490598506541853058592010684569816420576236455843270870236889096655740202092678386338826433883958057086252130785229865639690879614626724048153368646688084514589705704829548561815411798335425297066886227594845487038791875365702464511428098735626481338938533495649157256310148941504801689593577012769483858251735852879597575968334190541933808357936417784032255476851884026660411375677347278572749327922121419282357586462323239520077036130474780647131187184472444565804008790621590628776564210767479630492539619884277856505453237646832863259683246983253834836982894815016047069515997531557622881459165793218370244825678122174499699381016292489062475294372714810974630920941485719877056802426326849213022544827397878274924198030766694542085275622833625330953008623214899403266793302971533998256810569068736921622076853582986649360737831007690514283605697530044136077684538350997315929162528649547525727117657912441167697741188947822726969830493973764114691953971729604642375026966471456236267376547882895624339327658983610942319472177666218129250031562680699849591943658082684691890015360322006447356536832277373580900084689753536926278280463293202519193558404769581549685684427579895485827985879147951397473967546796762849897534003323018254246368744400218187233315549162854688049014890919586730791745788642778295416342706199375346002681363575770775170290334633043307178545452625840572997257066332259154832007023355042938564367601330223691305844978905462800022855757124563824880825650383323790296594654511443808571241107089497029389207632632239776720607800717669263197011114585930785579762928502294801753878907846310351476983167558782094605755959592718514571904466531201693470005597475761952258993728876453613049502732270301782212651909842199342841439007176149289762283379832683675880558825466330925281417517374708390272043070156045004744269956276951792682739582837667867772523096024105699760537942922274957701727606020400812868387812482691168914367856702931890388219828733352746450876199138314527994096402592392432849130693304936930504158972112197808748035981259596446862499706754666566861887601508054681517781327611373056495117845777333680221139966132843522851894249910096158951002249023895859493179385033496504941566063529333010685327145926518356339741414734066103191434947353729527268151957220730870674438237631605107894983118017992584621063692369703361774502953993184237691276121450181100975705689505363310071628375637722377518107522777820143281488426711025892637660161343471115107813333326113035036016187862314820890474701422395543494821673252410511399526081482841210410600189141539441749285182215102230340264969855369326585088129062931723815018390236431767408064699572306352717852753457828907569914561045592634798386339921907379957445084856266603749172379604395690071671374858535389916215351420832507684897769789777141401384574120730494630519526564117797323432964732722125640234204099854208745993188810142822155436741574603092534040784344601204160915470960351539082654293581072694925374893916651136066489808603835667407853306211743835702606150358070488224658912879542247864544063439195982382359561474475362002403803120068475509180583444619443322642897825546566548867323928032017047447642398230045275862102810127058663102806264896126719142689876108620671072613786434960099494842761615538431607192383255172990499775339240903921656432076564581164962535794222048978789967899535534455671185391186695188596999399750710510886054072147274566657659717352878343961278326906445887733434752332003242480298053945260079970466921642151748805339609328780438932979207057094180979806697000297421834715546765721935962569376276207262400672478206647300274482467466594962393644967904253882736759191293527536531400163077487088178759738333457514394434516257235065922820253841982986147591389899835136681608329082035016024505705048647120999890848353136849122423027536027555794274840292325570205539270817800108385507052049199349590023450347365845075644972525945551405677978038811696523494315009998692392797494095809763522004221475343478415338990521515321336638921784662922187814114325533045055688484293237076069490237566222732603366644273909061706357075610041666892098632714429357652760182262800496430919214394316620719443015132660746780456835803066275405281476730268294078823253571357113460716332454799642042184762176967037796205359589232227596209088035702423858240172508352154494331367512898272669375659966184550555532082026896518730042853885097314334201802893119001601603664516973083360460074705134768534085883308574890109642554958140251908302664558585345482490520079039444271312599397802619101858803494291813864407827740565426676497728259620558627381763209903059517615779846715322192792811063627282566534612160578680279649812490205990568720758831599793786438950038088700355286035301253080192281897200665114212550642382393774108638988066909755147729153607826588594884428566302133983247722963685799925173167591550248613488290960163679059539819307593515629779322578742016309704474169959846300869363138204471225098706812927040560112791769328879165594819827960507406809836696733494069716233734182629705872786364195614283467377424213229801480927179957719748362842619292830462111927901807024886017460345426523860992825579853663150839267506984116831174911139626724975205324166232944254018155548675415165887617565083407720498144369017862559215681964379166691162262498055783594752866767722215379986481753685692374856236227880423306404246594684194546652184018993599492134637889613232023121913823347399695759938260863909485032809185891493440550416281383049553041643256751634412174567733645298130369651874702198579770913050368672612084451780516206706811424400759106739030899726310683132189527929851151103461979254553342784716751095151785298778510576342963434806311785895171525205424497496509915975503490095400190376673260531961013763476439178470134881358523970461668783069048284091371071239376092780166543904304842204287011004987975027979548892809673413451663596003162405718825085160106247193577534852019269480627822533844844191827969067165479545149490792646107965344032927610465832766428195982306621592230971416135775990708311987435136550461324648417813186624994092483871831448166534705168801328082258546620235634332663496050179022055606424333285671552760955003339430140552059773066298559788306189681808794458598318368846940147089555532030166476619989275561319074144510032109552197834677111596986055822348362503253926585503566289083924966836669482230615875293816371613808732619825721545537616855518533426903383345805768946429703028285193848557670407961257527089085854743463395174123051037039683334354340445599531438966526317204715477978913416331609065786993999403354675103895901634367285380148432961541605240881330476381569683464487502634342439162285767443203664442640554487165833051222218641528619544799075665132861418186656670529191063173861410815285518084273932279479285621373762540662187907080048674807042268131156082670632034369501998057986747373335889226097785882756508867377110771011649535701980826076244222915114123320940608017114984004854013529794411728400716766499921836529296960006248739967328223431866823632953134293727214537466879014393694428598072205156087458383229956709707596995414267575665173676097040570468263683180657694973027456693698007092067915455279674667958927669225311017947104598348240897968607888010667707222873699903629151767879483907061783811176343671322201890650653712954461026987964236776605764978066251875119741592089040921310378563452728841940140283627327411330922332730539519269531047016418708071414081674908709320764619621935219416530904907692000398426547802211288205170010086585823630954637465081054955388133682046206861494041999311007831869987153852345017803501536980936023857716308011247701385886989354902634559890363807700441145993452599549741644397108373180442208676096615762126556555719230540937965953373520801057067582129765717401187122696952998931081386161892218122313837760569932943981690176864551914659252691929101719823117643213763142755363437785458950996837161224326296456031688764887714122689892708956293538329975341717722597099578079389875388285607554965850854433701706029983684347634543344967308383803341211426427119631162027298679188316182733363266565377308015567884780761082807855772978454534287058406256493588271815572250917348926900874493582595635962754752297078900661499655087913305727334328170048169394592654063011585129486511374063320557507481918436202280157358823325548034820712431618582563828968328023097707909675061880863202763814882956919092910495641466582111283938917250729013884979418952115061667302135005373754388214773173048362035093047625580001546518504354904461675121185545259904647324030988483141579825550220399340233502648738147294323344873290065305679687128779781367897260927387331536270280282484490639962503404019783126785751504365186288439334350827735641797357839268005722608813778211590098166019452801585228791401766673530107695740507329202259932396242703025293848638527637366062610679721236539653656307146896485776302842294399882575767935514300349269878152321948139254881861736331415260824244558641062479515127363226771967240852049529638951118154218529034806258427517692441413109471963891410994490259742451014905650515925964212106192683404132138787265699622491138696842729790736053786372742632269072360510095466619709916258512593476098008836777248173007164456175604634500469681331778504494242515442745425868072290397697946190146513538329981921682121375647835586996222840675408777643061925072822362713487578241124424256007099004428045047526340891211469435156075194336271729343030758277188873457923777913657128051028310585499248724058518814487631463419233847223990897508656575391456331424973494732739487576973279448102514701422800304545313316119934614361675722317858321175816450312080432304315775686600855868397162744727069871976687276744255809885595661517990288441635786086214441146650911074407853301512890715232705833242694448578979732570700110325255767806945198899821004440028067456416358709458571848414071221381397908806599757605810786335058639363480829741424323421896713133048389920959207376058463911358516029244688064035635919792614497724447523453369690084147812292761969355082585734236981392930603275816229209573236623914258430577163001214267066369345315746173011830942932282290862662674690031490507098856210047304520499276003393934644348214340729495004663316411868970476143676214021467127821415986082788596956366226737292371744409499717807351468878934358589869227626327081853459731167228768557232144197305801652572312058684969043629407539561791280916478532323078551167188516788541667066176753415079890958139324223433736873270878157956019092694285600537195148125349825701328191496486128019634486142203275690471263916770360055556891575331544461316556630499658250310478849755344036273024083100543336940142482598436932087361949165289444012310474996081937464011412378071051713236881454494341762746914664322281679181010394785823225215979542913450601412369685037633415176256929113194337870974776758441470608535900850613519639926137930775737613635439179353994807658725955186796827879595692242588999231407592709502317264902295689887650011388937586509086867950086332997010041043618887365191414866235238480262839263104749974403295172548226237798204265191982589006004758549024628927614338118644284961891536632278720792658805370717799815607956439787286980148809085227198225926545376474149336965352395461490191761947228586146869195403872341970836302169117959074408318035422514287154016044221396017293251313974054734719946827126716241513235327072111954200552359902222413104804118315203775101944736733210255546993540376431803642150748696569752614961789384856738894451592428860788381269431784292204959340412640078908209415071000933972442372166212144674499974414220613361519170824477844658422364267485749935704813988974674668813409420741087539352038527007630687323350129676534546365435606916526041001523898640768884574896953165153722997735388068324722059990341215152209006538452985906844317184474617601958928175768362166681748990728277011417120129652475654535430575521217665794521689877965477470307976670636317317111845552407343321254181954719379220957375701934476296725992662974864554571454483292444266448478267835798510739398059515774668873228618240889965682402793364180467494336631597056427689366594319260425106315400857391112070295155085990057039604153910633617447391926295925876004206235454544473505373809660806589821557594456808226725131817905520715061133471668701241419184459872190484997512034088829704135733943011452494321340607564451921013069206486416533538104416859203358757637609243479623270977570470064652047034896402075684635265498559060005416424274078295267037481996328388090071714790991943612271342772361050675503623587836084009000545238079854744568661023040195732048810553742542522256949572521878169292502352362153344120779629170274150625988283441314635352879480121544997155387638032556472977573536911311943900029323839693017443136103123781184482426909599468321345015660875574094718519997150091396393022933870253729017822530436771813990881417258720374614038403495468776198649671164345637654440596064490840266174405680839839532419412425834514720845102480120805046526401001788849745493149555816329111100666521931130460147757896588424393448738109492705493389790266575516560963876567800775489755376056591781602428554459488411480098750877411388790856425283939122756595427505507750086317092678745031911925977884085317453951558640252609171386812126899886886981125912302004572183364555282246390837231788556784258520945455442055394542464588512970903983532552858048849578725561836516729067087661705494081236552374551181915516569355920071528399135721356742933477815472354969794943807116128130490175135759643683746393886974998958289226950727069805539843881636324958562941734267028582473448896281244040158236113544548400056436242895948006255363719496680292101630733573356080549266192451638284899440858022691379791872518998798255766084260005645248702323457537224377258678620566906371741640796376116173451312764032214975335690469730025959181020273078888236712018999236107212847295470213630206759961206190699780953286835293805826642496582476110568932099639072679199185171621438647827602217480096281301498890169688082158101019420789039364120760381216422035459512027038897213453664317695201365325364980368619805672396001233289527757123327310532934225171876613593523374576135541663190476813937258603085569935624370919414779307665707790046532579339007855433718949946404439899947951865699010498406788548911096232357076994162288851117459009178505376830893322308450151884028923207227585825997230396402266180567051188661094717776150440840184347275027939933270768989103061514151364944511828051706543413604402895839696445843408778564959870675146064781834712431577084150484182214566853911726700385796962489023795090844481849736794995219301646235350264954379485688260901567881357248089328513055027761363177925544216889437589709270374311762659580471262319783567649842342531735215289918089257864582321772682154190526208545969588191137957818373430831599210543016971527564437340925102752081866479193600217362924228164930802356890339552256514172769215523421465870511557602824297310211702368469210726520710749154821579461933546507472710948540609593383738672139263543801506165768496135018784144279765238476607578803769611312978309466457662794409991581046344294616625323876313796866443394451681058451791766708195339851358776215791128097278813832715237160441880459664922151297978085988870863090242464168095564930771386384320612240597092371019962837627433218843698037989326225597901125047015281805244862761686138263781654851177861764457872234912639757989729119610075395704221668324613896578081714720525065667368000583725776754510654573021809593989435846317581847976067662265601075877055286181750876662678307638042504312322575166586816954443547349582143343613514205331506081590905204244476336249164703576556493240503103004323097890334210703987620174599440261094459861557262794376905983388586296846534599940857380258995007433290778931117641319516367818215459840464970298556330924577389576112162765610789816326843717569332612802393935294935953257243203763797609222368709738272103009490354602636209426099675313462161084405096907504337843011028433877495203217482068352023247212170384972785384730664080206999406711667869620691150425655245285617106482227329273311562279886676067955380234965461947873961236379893349934932810210938051376129101664419039085886183210771986850821880528787206442175415157015601151328084656967751166853999625226567083800550702686685575284244176249937280351524187153735773351288668530311881296427899865859541857862707016616584739921748599094150197855906506163981777139809196731603363168676628969127965464601637091685628333645228711230104779894552925765856265978157646250434091308775637826340593392608195093134849837981518478878304646939196385623587687120996704673507104263026296627838918226986264752309188416383439988811001236022667649602709055399976178464030826633538861208103427151099423774290321098820291300588157526865905574140460479839784390333504616444829025906551746302423241570619771518721888427643310405656958613890710926377880092012344954934826711936293902972255630155179011801163798763281441937183827154817854452692967200936660569924892790071110279837158766679951502465069901016669697618974844514184553150455510211718474187763397761134928155028786724401679801980915142168897119634394966064029003561668706426547465960008598953244791268005405500685276168004465438300726268083597737194204403789275166435235540980786684788707964472762508621969877112139025981669002925377572735491545209585855996838082813416204345216400260613997679327563307465368649903475158835350066452880959306013071742641165116159554299772560066115423172396020963937984915981878153431393142727293501384952324521040383129530045836494707410704114965385529861537653763183817405339604308253729728240626120499589290722578008940580544455436463926403220567794737411657371447322908322261727133488604623703970978397331523758304514445238298804085739006286076244183682229831792755822539028285610587513414541847559709102322738608173862003108929996176573935544570172540618531509737311870224019656213908941116337401269718333030858546883153058139016022169424224648667511650416512987606563553007383468522994762187569654692758317301825960241834472970483840076562567919199846956387667423271048415819137274538919261070404422617624905442633414920904560894186786622320692271716871901700864364117105979544083608842655003876361044645672890435485971735145689690246603008121620853935490238273375673692189578413456954134390840004835910252610272441267584821050849017187351741735413206887626582162993722116783693242371163422801833899562867426252672346088728234612041751566148265810522237166322837495942939694250156642267708293942732839793574567530027522598474906875669252606076564951359190021994528517129154685998937324126352170164422855420439205696810666282000750669105088666563123299645573703853058721992738747677917697918425274232953882815305924770682464760825417046572628946076817604397079888541776757208563020631295490749475488567686214054925032503383111197058851894072733163954960936006725444757730485520431856512703106514254643954838647335875567450173851153282814876233288760450760781438942518697897643102775636938304662310087253599256896412425643925366398635731402745661370989394148610262252034356406923479410635171528622205752320562092006729441727914524278299648626722725417054979621333985053072751400209020546021088467661262609975033657050476716578816054191984081788809549932913816322433352232250988069842900677136450101333840354295761329324278529997632183982152109865311174217590998673103439147331654274346864554536068499341761259394493661070558688916704535296059917412576361017517343766219399496317898199443116108274212441544528362051281827289707186859952689194338287554694533231465916477361229300683684064008226497632177726460036869609314718020221163856852607390936670571028120418497285400951702018151883297290169677092105945873353178445209599338671842162973786368485971266839228254156208902871942899721142954384649344141983707563819256273636178544252477476982843208179628219057015316964376409835920812465176852331235420379442881833509745017897752598900187259684941408881954719942238402763508950921278515106737488495631228184104765334766621776769947382393516651239939930553629210898378557041217018129273233460187325249318905872522675631672598461676887441347067503611837544993029211375929749086701240697609606787144831635433434365682082102666878246018554031766720318660158486555505415342809906671970525088104112143374429254118017369414389165667417126786386883313403307519539574310847699240967787240217048149914785605474401217329621283315631421976788601628545104355766153660886666668108383058924640023054398477256858312864404113016268114578890802371981481866486796620663811435705788502898136491202468411758299387089954624078201980346269765437839818467663709889021128371117634900914078924061372923214476208813214729055850316171355326489757632156413475069826744386027976140022301879918709065447521132897119146543601408267349271027310427705194780785727153385842467710408449130766359183722446289669701161135121398623062591804767433246006674286443112908250849198499037051664401658741755216091064519504798612390641390196581638234424509830260115415842912267010059741816613509905227658312201687898089964913373200996415291425769609162537249383881641147890586290768665013033711449307876422184961102207436040804470639819816503482122043177367102695594421457127144465401233733354455818295380792784108484098343449579269561670127678997141532095701634103300811192371758136579076044015961302944639723753821086219554514163902045800986276894401527517880735119684373098212837165379937552007419352450615099009808391926661265175569135750747919029631274906993712771080660770283870878832832924741015877166108694817227963631832327746875211753706414423558680891121870711453191059737099722969026147777327644133120049218815596528287233227951638932326545659952253266742344836257576012613861260616744421999533821630373715069874439738247899194723718600594056474383143145796839856273198797290696253093567776174995575463753144835229031489643071971976857885754396197376551609232260599772203334197462879751288045727404248938040794141697061206679541091636873531174505922029543579053024326870594574722131185032457562416411325313974663300719309954199240215444080152346172194860838326724569546334202238039954248340148524852786766929552405895833444589871811899944535095970715494218068442536800761303199326669473014031963864684131388796480564611800232937172311684648343839415705819320876588945664907912152108948438364945005249969658889598480587716027807456746998232707217717461887674793650110366774530786558970421541833943021892830577911520714582268066962377011726354996795847752246712589246426355656189424871232193980825152048180713299539159878092575210223066697356271679195115184448043363268075680793398320712690634588204278445270254634853857498393263131370205990936784203891205012814803049761541392011914601817849152364710441334469209877786560831572985889491029562394497338775855051573892515279158751448397007595597339313770475704526822232150956877199756080716623318993974369485878782412186066577539062111229646688655578371632204698729648895156419252615612410899146577358447437584399994850159411273188565321532155459228977553376144849946133727182515974762631816535505755964405004935867506753410118559991400341409592562794720717402646686282260918868640342491674110568370407293221126494238230685414162081299184318460822951096064427325957582091972287332135623519412237995357704848268501986243548146231412930764928900929481380723102855609771892124551109556023531392810730156993981363536479681864353635068387494740776266766320772199822210377758507578192872725371942887845545670245469341518200204499894809601230627418887922115465039075371911863138329928108933943716808352798317961630637981389695120633384213148030936432758095182332912264563584782016584514428072054350811606536947511439972127028536962518115666345015238195371081808724022088904267485478905849052189226684678640462862212192310477364031542392292262589531219007101052802088925327874920138070993389168274007082670091878656310178580901210193844755528745036698994761438962133367805388617185933930766850124849827843571778539822733461304047970586324599934745899052257780217447764104620771965487024382475028203592945878106016382156190886024408854593097679894151939567202362957202982201562129222889133291425091576219420910287921826539527040116500855966361472857150427214764966502462764907666876520969059577589437366746502564242811246559464259055125321109092988646492655831819217862389203814154135449541916427865998524966629285794259106561310193703845193624867411572396929926328952150264919588879231048752706920808994152354477283324025518380016288300176337211351781495729129739455073462741045915418664088274318518995893657792853966737676884409231155023825731471332754181167776963369821027993617251796931925635861448977424271699942215707191233438936130797967844125774602259834501264977855667978492925840802025263333595392908887434407229006159698718738059202621986074169719833535036405780549945912626787899768027201765284193259640122933311475621665242960155911137138196776567215375651448327657321764475274352427360539625507228466500050942891260170972167665421966656227243805830020428904447604947752165506032608588748266591774165748918667121213151469138223017740871687924188817785567270096920365633946346604270938528568837644583575568826581927845388148663984456230108595131263664795211779806735562691424227275275238172208512969087506662314739432070889850383853327498485090494858569231032299703702718238647268677302279895676697075090376280165849394868226140044091834587919007547089171491872645739320795208309965792932316153607944592399972450443876980491810529090753856712030008917185719368847331061642465419848735333930604081699531949649739106943183120214173306553214204238089402561982391931872749314316427264840931960959796145715927710582657801942274215301418665110589741206868324844530007170849903775856203073910098436555145399227625652486098524689543862303372065459940191612591462784446193169946832675534212384048728538302395143148925725302949601660310451721390514450860595576304966093508648222664617941179174223878423195156061976731297687429260211183896628450724259124949496473557117321559064111125537911718299676846214415344139159173897897568117489421372065664335532941791232982453283385586426007094230247020348431361198707570433753526105525272944082815169416243763743923880674547810692585012469532792035763960328653103149246684539266272364138136921403820375712194153308244710988395889557181058600541265176031951901022106787881793788720789098329482718483826790718059063372660414076814510345951495228083662951929743165935963238621847010712989984148154826968959150818422075216716876397031372053554105116215233365360168007872592094930824860276147405284816990917477778326276145775251041381339988525571363660743171718370001418046325901430814504140840387860380453980019790779981878574173373106298625768178155040660553354494719630458270416451615643918667158407097883293765550490445967986650117133142360433539873437045529097465569186757968977727568883817598701860325021682998307301794252785578384668946492691606066814417369045726568107882268371640140210833747460581646570141948681332751017853978546687817015745539242945525963473577908110370774478434710554072678869393000948702697050783038957436013963782295178191149692713308760222338580206257250163085536438535672246118397922261330131745202987535145949497652736705571427133137022010881985643346744350271007185228202801904122393582794679482247990594144159128064854744396480165189121355948417578507549676951085416124618177427437417659895667387665369638126337764771736672662963264895465969875502586198920033807287518398416109479232172040689762918063593890578989022785052584155010481523146979090910824194595358375009593542500687127752814872681470852395273654969312335567688060640502005884023495922974311356811719873527892195053795309695929229174097701880126207879616834790565983460235546409263820965513242244221220346673635158215388030015239764726718679652704758676528139173317140602911927534636396650647556212806645011452667308828464623413177203132266441179204734849525841034263834789256638259854816929707144286386135814850930930292653985578211381227865114043984672649654406996515639830379915626518453705813878895388151584838200042380069607264226053642024151078299643696128026505792443452977535699121188954144750206749067803743832534814486363161672372511835905982559416554908508405450482351815789238349710392467704117965231679911945044762367569824369546767704018082312222348762459320799834727215700265192907798544005986000823320675611794309874222183690240571224481783587646368281471728565303408320878499688003361882482487989888838882998297039700743677723021999392212108687369306915250336444883956404866695362757200506971601971820373564321691309432911863500019577210564090595098458910631421498118269240318573643415782659324252227373459650175098330119985917020061845411032394335924378614848799820391388054207797543872630454111394611554578808145530363450501192428630157336783386333437228548406516971605993111057083070828676287368138158983366364415686610472076246088991060494785454406986990159826492500114886472593801758406408295885283677362568435851838552108388611618652249472455456534405246639730683246088097345433771978352218430482684867671635247596905061059546762654074162212092828154593990019592352325818396141520328756685084636333752778633837389594987423310272472083655689315420494633589798371275792464022062741771087088804244005790856807419260626953963824685365318412518256999469910729613230289448473568162041973663557417551442642649998859746266650456928486738998989648386884268280154988461246896813039483715250729124021249377812432878121606492074990274185265548060420354939604816419026527056807899919914606293845475522133071251550934367541297426311107810768600710413973537711307805400931372714010774253419406740183780138211193385570790983085536460112804289380768770708520900957688152436411335133454182554991986275685968488132604470630541985685439444581643018301678214443260216759782341535906281894774551984943410191848171112256248287874773652211930748105295705898858740838274381825117062682631066942803152723058947800034575174328295216552932489753523074162387854710832754549453885862589319691863950782709042876080196880720450878532275224082259535595214237398372154666031245764813005434847726404863015485444367612359286304344725963330066961591836227402063880237572749901700210613389252422009226948049816204930170212793125638527428006774271964564865300959924905322747642245609660955546297634062751973737791932054167970467786598145912048147053879648688962551967265181671767932377667838105710586455942850256405890977817235774226751538259885411436712492564086126745824076847146700665470520011593532043616531132257557775565967453561777282015541291528071361481268425375972206234016418518083254168858707366597723919455017899502261651211911087403750369830598498993164882725247020491449775062520310879176992191170084449646611402979601080182305004712820981139800676175289571159655648526224076702618130544935482416369359501703821789190676663253620015431182096194939464597426935055039706580038238759481822967800808072882879873674822016589193043060582232555476432931612884708850713141722698073093314275168239251628576707393540925833484270273762667895641893392948595753687567554266640270733459721983012856676622498032074472559195883060010840632234494659104985040396161434234175430089771459122226318703676782475237254991200500988623116333986975525937656507056223630375675665276320260873564297792827348085158573106689898591309535164918768878569334812912996348131030690546361701835692112500391119856407783220962314684120885193893539386739399844893723680478900348419652776225278580359531465603967659860961661739845240084485220402837321849504609210231708330146297615912177669181023839744421513918383955366539636323578170168866952567801527010762095774747883203642809152363489193583398339334448776137852492462640430766553312818601050539315486803953876936266928076228384531010633021666261793336480123119112545810349441484311532074677464400345028940552479898368194784352226598929253029055987389152859871235407906538376054993814117108111251849250482598321441291314776621582232952616825894326769999634787090032674059882178789343992863582843688787181955818127034772387138552512470188757036223698102159539234971668152309152215272317806748241239050887579275766568018682440094869691343308515225161135177756499083710399931022710123462584763981123326186324373904332322034733099583159423156885934075299092279080704693551825473686484709417751708434438565753760842517904719422068298587230003964151243249865498342551957321029901166267566937401656569088191042591954590361540384125388989098801146570267234631484493405579987822976736277962814212835301640553158177753343073391537423273485741791679782165074322987475657819893120468519120239087747742759260650281818465827538126487034478178680500795456921917791584424649652300570599696559177287180513299570987563084325861314995600584737446095261398302389116736268863827404755450661483485773617091510816976017282568934070512091708834817904368180266342832561933801151705138745269933795369217010397426939896827563156554463787241463833863078083578971278022224022930446720827683538932880890957045164836682526112454572903384728420863900697602907028396331925898024334614947872103207251934942856377457198696634513650606608967960151223082569782103358303441669469558237889724273712277541111465236219995853414512828933940814738869232864264055660735946813922042302068841862897176233965272084984816738718630520531258617039550790017055548167579507689735729688179048711222410651695220001278620565495044428715995711745720625679729443875523271657027803845340478236794446261137025678621055045753160454583586893344715851918974554568438373479747623329532813257860576569489081877851767778595184392558694871284541517011242108161001042641401038492936913741011044444042503696457843115590963235677799911776710293864314296371206398813583279005399826281729597652331979692232275850501790389156909570568857354359319251886240687894889367025618893343872537663904687247485177058542847998369708754721462119991330224465973906049084434378269340495379574734281374338002019852757556719624878999207129088864666036553526100619024715673899747505711881353675038984811118922591736692975673387922174500727920027655782660600303490038151788525101442743536665645097218273804159218017768141724033536546232725098307372973111058946498957311284757752478455722742308851606815427718287719111402633371162656259140599870302516865312224562376274669457113316327981409217844155595565612743890107061738677571732336782676156523323413289424295385199849927999323116119056520155309697657741916899302211965322448604581330768280727097473247284072982929072317654851311927430278787930366384447849981837131612438881126021735287918332153563232762501145563943315159238885928837947321281962119388376662215366468832544894355689440229520104557960913864864626203286185167209870071798675351969634041085548682211180332331431302680808376776303049256388643339579662426365849622318119721410799144567316990946590189711020723890332081556360936367722337472177600676371805618425433296481532056867264873273436827215007404327928997200176823154404118798680132168115928063996350491419386829231150143540288242917084963685016330465389711640641188008853005632882899064641711970018042331247028762892379185596013114770204041705847262798017159924595901986148133725745627047917619850775636009010950706334998025361572530933475138099501824868738502776407790797730854034369388733745355904812072121678689351163091658177898387767431322504425606014458126284911422695788626578301310850229350303838980556802415681512002168925206690108316550941697315103291429126385293780082767798564678518660052047461320257927187241131858641242727864620936634937037564337122382626848205848705772973175168582007594769663438046394384504474493040068226487171271810751155941932867861844009436512019261980385174923515890890611605663120744179778432173687041041189407499986889872452109223275815384812935272730106712975464415940029196848829145903499205874910840050745657419932879552794823040877702483708336595028213120628468602337440094819975489068375377525014588118770480342764848686685007923025990184804242833453669909763394936161507990685699766960687503041621809421078700349960637495743010187487195265242101580661476998267728552354219124352840146042026537537779517357111098588976031597537829940942695780653051442422806449834575486350247656759259373708698289381598259229141728650532453325944367451675706219235670262764168497032236744452322642324624444356573623209961398384893987545550942602721635161991821980367169683817027500152537736795937995509332449978369509144284504060428500892346965029976809050767102382886939374350546290198287785316034137505777410664362075082714776012591127205379587015400245454017626579673825422997322408197251194716293720848032456203505877255980171312167048191678880015704158838530000881704103866246916952522318447409550189145219659930169372311159464820997153132572908873035482575600141387882765206343932909859140433695768889085390332631797318520631944597459977257071388394411633419888381496116377609047317833135526836422080667188650913489021319569655921440284210132712081975747885259076858626333617847626948059211610331074597683246627040988114284441154529571769294946919135504800822003611418288961899220328111663565246944529561730508933411328684922848808701750758418324384507077364603340813693997005686411935347629121820658924997829429812145325735666083500119178550169651326712304277278190302059229218447129450469219276141092487504208657529342953364385799198187942230750838132978222261028707237984171481630117978191959146744547097548560149451024015877614906455743383603702506845038250518760249757590301938943291130461545785935616696979841191519754507571023734778436214528048104805110657431850215491834450350393236149973681229723004538309910292018837100832884441359320410319912784497325727293451866366817892222757709251840452282626978188005491653503147566376814121236145296701473159047930658586355060222264882559512427899272372569641337050080464004602123752685812019990564213428034813013052543043408897081082563569934630287746825189135912708752811809639349415328187717529290255472980666835595847915033006690579261651311871109322595085080974550016707161907278803619587636810665198721284922043613672047070294479074297218748304745399713253593986069910465502569428491324834010024984883881402534422986960706201356777735617747633049957173915567514931164945639216272905054164707293616461422044227687952015243372282392134395607764529498350361537414707941642926220108342669263779113613829613589002513966427041728352283220276287144713555170388680588132725373723784419484177003999695527622051142903000724311075400160376233337054875199450776766465077890869836264232640139151055374679784469796446876228528347369899623398646633441187261671023684160261000816250909016769619804536436175471294144331192836460496159391071778561986047308006413027748748495303579109004744101353989090563782228225693741880247347950173851187682835747247208131386989762575854144647472088617426642873963437810273039011246095125012872189124520667741337824211556680487980656455433554160855925690635026641414511401515139609561076071695148959034597843087191814317603833361572213838277787097366570740374749703790593804846815007290796704867632598615977233375217035454104737964760603738906782944393205267563446540391575322919567614249206975761577335076274572607696205749917385418633179914214989253137334665183584542125888837106860516559619810384371822472387357463299964965423409646762509906561378305034831099165125055359392562154850020445478366534600656617621965667518140425564525246491261331920337527966977882757459328276765734309480323561875206011530143672805414246763360588677180858834025762435392866406896365471714583842508810194176199108665947675450110419251581122157141503283039569446571353258737195415326249693461092925055590857969595520257066512584812175256274653114192763807109099616411487251053558876959955144463894440284613571457924273251383428046452615425187944968803574732250725160324012296673435441999929680977787719760449648986999285724157933493411533551848484207813798503661374327621911114821748936569175743387221321770030651057827583247655740332505355649593429709541552912300095190400710922852118429187842870135316155136720130930046082687353744541736309165604885121810000266113911262826367079251380847052129430929718767068478440319578588626231726976690528276894110156388071303326838885974784564763261555966624846530912924050468346847734521949706538405472463130378876636030738577605849971135719489028104054505548116485597689411770721276945351838805800242225243120665486117653998063683413306328959360820256582298070100790933864094285395786294846744714216716982390804671259418937617036692734112689985979554941761963178112794942123862918999815353639922114014789831139686497759036419733813057055246859800123717181063641769294256367901466068404852215954190220222620910350666972968321181517481118897617126333165089002991437026372133505252921100752588366647552185365848227426906197173696041564415959662927878174586269558635359771188758008847836549395360675240222194215001747068311019260456024139894277896606059283003688430464799577952969055504597940712555045578889174233579893367938503781946480902327993873552062443182729126122224974695391471909435162853138884853184532830562112765380511236679155844518015472351442672425399438149894785610931469906816577971931748373748448756697115120638678678029107842220270861936854953766767470441025238774235399786772318084921188011186270515700628400547176535698142644793387765689573403250743041734888368327521985716519889341454963068430482884716430680839184066002582578814693045635083094307902248982878587060565156527481084085293434465012312752380552772292333729143553528629116249676079086352767574216743048454060397969805787843000085194778262116470430445498315974182603913490307635233762080384574501622467720646787835730403854530355925900086756412173308762391965549293194871135250127957793622582423112379689621865491285614952766581037334125179198034625770627982731191997984344097350220266941897261471445657660165141845507984844739250583042138178053990940950711196952745702501514599137358622566286509569032443846135689381258580531637551882899946198272016591040707273435833241962794502661520093263157469355042820106080803422733461132010806924638368971181169820701626419730677623658736024644337806416220194044377079553353836686021332431380904180652111253831076391728565420299727706009765074022167520397229619050646408150777794838514247563640946574419332789500225417025485593349268468988126306977913212627625566606647064924038787700707838017518987692115403490625924656053862450922466208203197153180543947022027666718930046261893267655371483177948949288897305804432617016791928442544553791214442010474961268733359927851316750241165064437013674908830130079792844085021598455679452278856132974760732353993402777000023452435527725535003174379786154459037590587391525765552106107271593133573776490530974531583345571046660438134071916208320906063883345605353121235809484882527880144211526351033831475842750419966785988183723860420727610877755832812939215205101284502521859463462466597484250776155650692528708330854394050385342929179502847273472690230685686498662174025561882302832597454984285434693151224735610413774885515403864330500738891575099352391432369213343446295384700540333844150420625986810873284034712495478281641095368265937941518732613087253612158552590689659423206318375304102627805045827637225583931009637545505159144424841289346048889971926677041569338933898069051937737126065113423628977373114713625583807537563966535152431508809179961778774925395478504160646546603720815223534953086058006617755236442771430289949331705361302458648249461359973756690021831165765294430921397381201334503922038470357017535830652260351763467914654674177869973363235127660865848658519111894569866745292887604940869351017513187858534008402215290121200634904507987162894051263156056312468328580150748820516271370958204702493080549088691516088816914873793971759642189706937905554834875521620115558865884587144607068531513258192093932036911173488947881680459876227589764114480469181502743425899678225283065438931762359930143081543259904961328854749514922293992668927450446380882826802556322951016097637777769818837495722122130494186523334761443848511251619231175166198756605485431338541778082136230672177106972270031250812002996174844075412862661902729781863950720707515739441969992162210991042827905478038986163917917036354368340326181624601236282924166814569061757179509440793964106673117526492079036561932279026532070222433671369902457715139644723164947339474007439199048450195288368503296688723483662480716144007772630832900157591655558892005833857326462717762937467127941431489578882366968514090331367982269324286602130570560550603385613868997044770706711744275604601092202994867125737559401077829901936917236374075253823075762858973410395982307267975009166777096729503773528762899527673804382130256358005652914893759232896626437248542323456014762177192385166946628963803773376879823909874775380109292513761435903377360430419666916927545223211299797000105151651802721184135555832507587713009435152006829755423773298940563286396694382668006924051143314044835200254776695192463557145929215793306471113193399881197957817573553059204019623235246786606893815226076217472048945063756850044728833824771229890245379435394415729684343275875993273976920568276123175361461601134493153666041240841180208811893959419345615482943616488656827777885048644286888634131529591401811610489242860438648365573364534182629222024026459836466811798088932200852739318160535973081899460889424806257116954002841712417571817927588335707580599318582099231227551679980622947043652400750139066392073984420775657206963728644031311269259465405850599882109603915132349149437368063973499535400438367480706955923026707959905293345777453521700674141864669080431735189100702158505968361031659615191333926645146388291617849330159562963173635796183354900908843711795590116256279863345167156767105907357139756159723648675021613317859283050302130864617807022927561996856293852745042357117184180242376630088709763853317337530856353173054561813583788394147264493344911447245259079104960874822124616571761446648501840162564563975550589737493961428848790750158885936416642328919544930508540373314716194384833468677323244894452178797157877530018509003092905622585284869565115421949046577012882519604163212436001077350502269623315580657860793135756294519832282555902910909551547651426415424045046594839762565463776410229121104267507971502867821720715670753368915224118054407947166746358425942970623956444516887628709515110728809529344771365920806535925386585484950272803173413015244252097489193039472976518682111255861757276585128136753569758689819310261005527495799287602795466453079898361942417288164185570036878247552855996806379506115877730604547044893302684317039817272473965149496524259865111167229428595691373480506712774009381560076253086748862984583478893242072710130511059836311898396825471850744150412559688311647135467043710037659968159054292268313629333146252557077037043501607659634998051069340364354011510333303579571262527393463988626716728565617289693503521352140089930160755939745483617312258128728927375062033390739519918059883872476342563145148092866194307801490672675927601294759211321294755720137358508289161015623619770210874839343223984961896667777296244003077901593921734045234340785205055729820771035234605737608592220022537281597318085194417129047062769153535320874821457850175164856880517544605506093555173917310316750528095675079679532821657524200344909518689235160560267731020061626051792145484508485612681751985882098700357913781240049439427055651669288161149774018509871863996682823991366713315814367689888819085893893505606688807564212094142289979547297508073874544985170974533675010240791773967633558416403383218683953807473592199770688502912779938893635890947244974652283474838720808123198786917541452177961255858056342474892769786846168555765258822734052898989037141422303879357976869093977150703328254214127259385057740947469007565718710632488133640070275563783093291411937867373390835235442402294565487130042581338360260740814704848507441901032437730862255609354854619081461881199524624627396968375953261392727171168866529172725186089858284362179251544671168080615809762863403333606171926490603539046822442685182272853366576963908427073018678789513354303560298747398825941571114213524219205008411084477783648612331822949272000683191363198884753321081741058813215666823658507007586670525378955059670357967596010556607644313997362545539654866323121315346691725413860271923971265102990398044373678148626012223145327722927417994686185305411079701999302783342794170571572381959598468048923505840921505490839558351482068864044135777132209823925343410752372660286789722860097219210403012249349256638577264941629245373333003360904076723224717452621994604493144951118841232327830315780583874736029242497642270608307751946643502356150565362169685960532194124332505991360750082030717931612551472570797868600512763243974823938023981785222305744962201506815974056940208275836296854052490118918359368178287629677546164871818874539894803209394911648262248945142320944206849889265645249801182364261388071983362342734291216231112788739809887590486300491766403807038095996528077331455529972342386639320685900681267282900051202739383989721689329222887175992177791603148831832927901753424507993452210139880925573087866662486282483688651111018938075223658831813284748195677901538976794771387540719427826862695836620649400818487951103027222120467322246093837954257619479365891314367117011428896349745501100428516594434072391143625352628767800804262154020840334679703515579325902494674480692419179159171599750059915994352475184524601044656091116452416404073604696843800899736937718458667058593530252682401088145817533600959981621728098602029661057329452619550130822973822442877874593678544248540447887570165579265565185732826947432406321364139433652768252610833222194965855119190976199005065348432091305403262625497127933717756134684410477961909360244346197942639624782416930534919075258303118423360024963106430558863155315145331107987944257985525801454119896866360619353145616225920219262972804075217368222254668177948524488604263179159032974525571146704758391801626789194581300966639249102730100318333492402840978047856018368372758784342231936653295192445925494242142062798280544447798881202850252782761940496819166354472438322960662809154769363109943457600624868477813344942493318070354962364155141181055369981493851863397589724912874721098817179711043624132109017021043178836280375392151069176299332740019769044549182395888099676365879116957852516571689448992877407668206023202618706637971057747371812856054678104823806520844320427030982198613925143020055206928111741477519184448161572867394535264144821212497386132967541290837286914526661787646130052289710575557987229265353642019420765330980271343221121556147866851018124476469195290691082802331684115263939989103998250433419654382043345698922891451617477805649926416695078282463688094774909933112197012294948114779866963846492953265675544107758642091744738468979886604640980310717249739967261975768734555555734387695454495203410853590243074501522556886348577276335698980509129220293923625291669414186155508605927084759142198855992552691843202690194640059258855413018135087091373732773907233875230321611079327644634029244999611279432413288797563303942857182848482049640783379095048995050674650671062129234111946304817328925052976546220314529138260535218182642113527535292313123549789208063024480238942717310321115056810990783827244356609080455701782705933592802580154892158773793926104327328243223891464669616136380454949718910975894783734511614165593077849458717930658797455547545183864226889548588671070507484590822295974276279026119421637506909214673761261173563279898439806131748801437485603988792555761280185126018001903995585750627307589628750480390254830278161963085159691259747693497412070449024288720960281630763072914314546390512910909712783688299766874249499463730035302731296856345377693443109855558251475246329794170865032955700056787316959826037031742503098635053553441115038695754030424051194897408890444837532642042113989731304171469080397589875798085952903848479757983340847643533158425219788329137439264264736456604795238612869472678136722184480739579139608343847133210444098068309041422674839618043954421203152328777372546623790085232005534723098514548241548575874568073582339400804949786681358727035965063074927534259676173333079574302431608688902501991407875693175811373371883464963522232907936092842375858777774322495826547668237692328749016524560014431722323656191353220459517017833323252183995023448669295101202172470797479137668726848150742978231419392312391865899277642958086923223102513433808466213374371560724692617117547073898962605069219468821237714107300224221661695717447873560070831750086113574008383025191617715380488464361452856932348216020433012254493248532305468771113924745325166875960939885045498995638511195920021649171384222415987348956555181325971393628810683802977690696957213817814230430564282795019180158205135547889014375897328045135123749230701534431696972342413561195749815722033906490649838411750409402673535169750847587560687647011989924338782778200262809369390550134466340222175230367570493571114084404658309552672850992946202566612986807397039009599860839684886673174023061264036373601927305352818447579442757684080721431767117125448414001966226686785350282078389111162562280974898179147913186910847062323243156960221881435335192581621040719750858552070896351276210174413147196988543864084808784146536369270305241675495422950655459582015925329819100894329574507885426064235914156144660182469713218027722352874345512593215681335040922407910596174981769887580810324993211432387993824950907860714787271759675379802629999854721705424657153509079523919528558782666094843129295018713734888085106961128465507704943428349854397864831563853744781835469752994804791968943991178567538557165262052532042539560318521647547797452418786258820792974015102747449979052339341998614488341375592872497465284813174091118063488935297915287146347503781325198788525376105375310915603007768668846640255995880797291669598181230840340895158812010609748147372655319633905886559576945470123127083976236690293975863703327233499232373417970813434151195470827520862790122774221429653562055527129688852128798505480734070382509373220913611472584142938130458041808893358703446026961940509654235819513512501643743294499746569575005321377999905091537505412133629412394913490856407955767387886640915106562753093321088468076463434765504926919410543026913904812192057534979261337916561725449391404230663704683639927595119247886065390923909106870792755989427652538430217087499272264563407774081893120096270132350471593034205681855269013585517195446057651023275501497952040095239589397956276206725656353298516381036793884956803978382710349785716553792099175271703253582613721376787144236731607044565781649971977378220851410366576370741984369103071121594684542125237480248099976397866378444309980037495193161054421204904855440074204177051060980869863016386347659726360137040605120138233495365179372208975185748635610063283386691004748049938527969849072848380911544391783766373153474980166443539944064602596347643460560345435867255263282031123044512390564438117368328947996665615854012271598549300374792761162018701048999478309603017918971093334511027653775660707001352989172251613332837622916733378441472547957113487177141914707525489788329875353310367043101811076879611007096530693560481241216812002716290186553422194645329494086239458336964806334712705816638307673687143117396277483485759578731834346564518292709989243450735606139380958705000780365626707238431742317349630422497169357319761206186896968577306853885087010438928789697417646335604524696079318826133169465451503246062428656567309400510072006763241915065039715365561085409227150513115930583226113265212243310387689424692714801297277491532739384989325813559796051637767602245556623492403985778861553461441245381006496741788177415785856799814355595677003308866957575473220104845982554343816367456731423154574691890484737648461506855876859912117374413194884900663164233339887578318269892751306835818587754305460885456392680465922705716249742196606619244288326783290955002082675661261294638347772054380927647647164945009255340037508467960748990506748742747206666933039756005372659127665024495458275310256418326785895166940715355239656650613858119115958866474808916677196777128267495485681199540565849826394788140509649641886022005371183444145393713516725050844537471333282708671820514999045654053510543226730072359338070292644557668772890041599746958380993922904449815665588801170377575143364950519822058225119171344138563867569661585236381339610132625646690373124457542449829822739857763500229431931602311997818617516974003078652576801140808423965816110746434308263418847127235141773328196109933565768513332744137991609156060505879073942899967566425422307310063303578203390039173081660183779008798204649098081292618382133980010400079984876161687431128686940704609017240576382950922966118103514073612221902666855760203447227498745521132025091091876197815475041389621048780420143277497702105462909576521835352421205116821393140708387066142404461922836148913486683068045144242374214739239885024812024027480910143074943475896008236101610689318041105001389208160322948147554268179494070685586690328767439226006909401871633940190435311180129275627535915432991990371795214077274869587998708004517696820145808119789089150398071827057992874655009671812057961810577189495402648808428598849880540150202459042896666331436263292165742800362488296649726169530762923591140393017673931831279437059436325524456675166333245585934079835289189666866701446505469901100204552181616950405425774358894718595863379986643042517244682704592701062413536567859767309917837652800665553683582771693194031680964441853397642143130011051174496981043168590136441636290196975105422190469685897705149331399562634185879879476546342806499287155696485458634193055467739107201559035779413101239199038406170330188719560987948533028174594056090101813329823971076005389610407164439825971202600660725475094349716817561414165329271934674650969480905049099020586700275688172963629835734403247669305420824075402405088009791773506612006960571687466546940131099377037213096232031578876609184227742600745132195951477995757938762708122428846615208659488341492248102180476463507667629879986386978150042655318846034184496212736338949916335404879942124445935954193929117730672387490622262611452015772153693001438443048413498667266569477757960230145861376829657159178002662083450348738085820589604828564269746599017901819138466097179577550259442718149306989034446204483573752486290246056220857350970205936020175578788811342746633358104366720284249694569371136955362936731050021600906407122409749317042407610826615025056921398106123872818409342877146538671563597631141537423317431854009743304954525835042246755706226239640022040123821848549463012157579501318191018325721234273609438105987796172989513707567126456089275650952147989655354663654986468075953981232428710982844755442527465535808726045746300323782123480966962355965859714282095928846001030274825939535235832648486360984274760936684430934164831802200046550803077777797565689054125638709157284979353515327217132518011397281171240612262278768930383997019228410413311299956222872086855352085139807900238200694226230513970644474582014807339212217422300222324655208790925906588317392748343563560302400500676012258386960003872082895418506717295903823382358623268121286132620234560366232718737114864816434847280326441995280213405464541902899380967255507817226439433515993660153416468647590828838365402940382579647258018735000974685146359940904968132867044025632543650856484277446636760627966866776482034632712087549434961455751878574319649906736418525858012934060624536211806494556568793861142301694731929986193132617959873192598112012504478331357460641499372878014386217619083022766960380178037472762434567218047203232730338896819382378163703052385182111631515731389914109556995040000355314419995275277500095350240795661979303923646935270726270175860559751976445889788967745540021904251819717312674423299997945042546457404373923901592847756223082068043336532251750637649867782795705748868846719223827097585362814947333182693918734040207418220336744475933183536582514625260598223646713018168302496801003623635660860860028482251819717724568375093423687662996666970784496139713817503045544454340903042842419161627440675945813297033835992555659785757083142282747973446557293624512533204710237147887058684178214463269430240413206060547060539148918824744347146205571838122290082763133729606615123593397798543656349673360629003011660218697563743773172317218020715614227725578407071259641495246958274896082715936265317569631986510136670655339340616058984705043697542366598674342814787426297411822583767661616464723417851320965304673205748388909498839571315908480801050214813433686803093455112690384347589801455352007856898688741107967768249790183655434469076632022239403146418713092096736706868433722966900434747835636323609512703988361032968133001163972214588356673563800673359538791242021473618873008105164791801449644971438042316742585094950717601244634236284023766550776357769521555613484838644158780505730588884971616370771400264888678368147492497709770271805242838828925329473186070651802607283288304166316395051874726758359215644187749217662837051172681179434346257628189778174699838036717878885932761854760495768005721594655823745861923345845672402584835056040343574711265611178855182154321590162103609041390554310665680270455004384058560857527287807668761995937022654012640539730146236333448973730067167789353424048843972510361730492285552545167802040132175264381465665877229681293786142815791477759949128110995563424375876503251764786601933214342523528446100077892261118619280985054945300132847792766320194535730035522513657994213425067971916415746435845318673515330939389128383040024389901781496606621509792172983023038707042497270988304844298493804823968436849948531202342731220305188519350808591558620350120716492741370809057922619510330849575714527435147178612328363958102050280713964044362248577593411407261238773114082471566986151146320258262617070457501452079048686416754485202919767999934574375335288988402780142753962557549047325381893260373937769975683670516419870272668703060520513674717021501538568381506473071905076664857308793666597183582179441102737165556573917795645881060066814464835714255545441058833405778073815637404656428011500616609881407313422680890961521760520503851034117520002741678446186358614103791324996343994859138850562651060362843120687621800386609535165935918382361571861378805200748018511195721110774709726670629978391177062535952578440733199555174099066049573744543221174545282002287645219841100947337556661744512811021546287835264826987770412613403161314488045608833590149939289025797930382524142538784161094442517691670433662207117885009718600767225333267366253398002285906234710993479815942113200309153000642032909602753507118177027857107649954570281946602707673024894830797557946661656957796057473133731652307341148380748120746962467283065956400046710152589221079813676542676810024193642842516387502590338684387381794439153239871166501947047419115013015656252428718101710915797109969423746344491382049784075583633529439180557790923317351787711127922237924686455377917568953318154185922079733097088110401152303593274958012365896226272941867587587309572322023714260523044428159181393901745622086140764073575331682317248873013316626180283934372348257767094086277054182439919732910638962834097462485216346028191946268040669671847874970442211058762964792600620271034896309128630545188109231818586314753730216605774683185891174595520070673612443016539451249599886055890359826921556969546757968485017979652974054962472323250929085071723298748694499231374519294278532631071360670182242639774360741971137143491257000616600171966500289547895319634679304904440609021525878039151547201341623590171510441962171867943457801992434743524876805144376074551926826857963082709598891293379858597686610255018914151093054952200185337577791673614829177715057389816880504521896874732846836383821676228804860965490772583184281070674455226436329002118892362640095095423567023888758533285467112196618466899779514430611693832266087085301818860603508576430241164054862546786660969286694202594961759594239315830933470954164214947083269851467769730049510734826752844478678572170917830593241943757064528475338451344587602626271322954504561044761213008056373226028423636259593317700119685954891822664885959416585481598987785669623858810859937853044477495834731664166583919277356795191331760791369790435715314910351581981668439089742096453602607005701964949729509707230344191664812064413227998735449441383389347974885411881170233110340104528313945870209115313871778589163497388334944811313368390754368996813128199303830941779977873447677515989469937308796056552865777674031383884255245772072166179795815425213041905528866691268568347861113496972060394548671406263314416885158759780944229909339016463016337924640100918159397595506976282600341707941662458748160864995014755552391755337595297635641118384950947192023361017299376320673382455600638036782850613554009926253633696621763518986345637432435823721301132637717815207572889396243128906823442491726980300314896348679621321555421470922892242778615797454167087819607693859163280575690639074818767864316829271104403095624076670678026890446214620917215416977318510979512024621306839477327944585479582933389036513989794312725508392599766319716622847889021752675276662071640129302108270882334126382499142103156121078272063068600972377301548652288847470454623545197279235870642328596401923181110291027205751277687329653988353742987646228382560454765917516646955433497437950764748296722531973307297538319127873478497408371780338436869048417183327549929572663800716697072235551855827299325432710010731774224134897581263386649536544523780422006047094316767217791550226514647014538009501004243793441851575096956602632050629949511575141887966057052919922684134860657748988972634297790193124188138658075643652784431407675404400765896600237163100669494544342577445893054332018893338821474185764410437479779766676212254433317402666639480512245986852238950150834955815207310221119139889492599619495131688003993896809709477257077688010665801506590292330584026142979745419199504066697609046477908398639712908196770208325434796265937426915480830347117313730190652976497936276328361359402292547198622573201662750144422814023167614095037383276595858537242340977656982643602022424583812375659429228140779533035808867175738248918131534841458262541126607868299939433711036944398359429273945871305754943683097808755056920810305542449813303350184899196088160422168095261860075853422121948777750096862378462710209785574777548984900715017589300386533414208483255736627672482034478351280895819526379039479311864768425348649637355861243870079380399241474969717541186733070890755749765741031419403559386504428680704362137055830771904951698471556860426940070173795023989175071213722816321908937526280175970514933502800777671000205699743852228958887153144833242860793950053312435556978228829560096462785180780001598896711862491838908313817861525428980413096453337014671908485791242434715715094857471809771669674416531417267497986483337749350832366373603726910547589578813221315310472034568692393306195027903748763929333307787657641986133499419296794810009837511820903568080592164666660323057404557303043667897280654344765507150833617388854272998233507650741662128805254943272979114200353007376687665532910967236258976755620008502285995830590813642514184800896449935718758141382747137707492220830814941370939211949598539792002415358876656113709208551548987619796112283489915282753934902475959215319621572140479279339524871282716921933870717038619885958253096096677391870379486003946268468939806691086283633325874789000445765003182641415061960050551160522403523552017984136845739751336442606462706522883297261307141144804984365698885582151199927434026770120839564993949554100645343781537135154547872755394338126207947233272939364156318512548417317181449982322103963729622758902330580635367952699720288298971884851322268545896519006502273356954379018119746304845332948568111814034884784631679634495197431559960088986782127184873924569867076005269463791577607865788071188212451669335174436574332321212324974342111017768240155250485979723327869648728122973797416734949065723451257940141438062872749482448200910546197474979462622541564184209108194915426767215879694002878974105768349988626134579213573711057652053173574121701374042017519227430308148450070004573181304473319186951353073712739046075433346970849619509160151837806899562528230724767782904256869892799639660785241807390917670328505892309474656755795195756040868771619362767029537094135391262797589194145563990889570836904965228269923516763976272789156901361835897153603491831871811036658012105381721146607536327564576056467342196121258064297850310453551038996432530789434602672233490855718586736619191699951391025642516193711711177242669305694275059995082814569814889913032677802521065147257291692480678142740515056024980667532768992155410451206103106418856784116631591421011340069174002468477546154851925759057989967442847784526839851590056141528967774429939468990575252136294583137893730503106742839556929233549880233239698592494110596486183029229256282136509470627288112935564592555635893937721425305686117186434561419106760542016589778111395389376582674949643975276505403786418859104353864942980292580175209247657655066796776827893029298167135026708134538052087424197162864719577886000781872605244753044186759991258558612727233341144692203160871187878580514886789672139710137493140754242585038813011307133975201780998705193029727541142812243313121195622471589682467423884154272488205935254543825619491194206886723329282011841347136789857419381807985943125228584992572501558227905801171522126869457683225891880637501011924726552012372916307211030808133022393227627251154248451564932253935252043077841477502974389288468176096241901891134079479672480244131286911379566892496532692548891542793315541061601369375485161011329106236265746275154391594312427822618964075857766230473539332258463258697100270487195535494418047387571914701480085068205619131967709191549807164367373908682846220543042439183928877932439113178252817172081586681222942171941785737575569346724512586726635627006292617138646265992108516532099498850580809857021972603546310489437421090318158312075461273852843893650197310028600934718864402002417662013873416665314926253953445890194310058249843626878185550853228930685267049270315676533153625238682605088859660664009377164088262562298051151442285950996094924152329903471832368072772748913059990192999137534908312992751389151641040748103517155386011686358441141716824735276379894563537919345428413921640104953957313834452879485789075354790562938195073293939751115019342612589378764176714097266632718649835088963087491017115741926223412911548813999902405706408584441812903184364989117091894621302426752595624580624297937105202719360943109457705431381865015783453355462644406011737885957838564655610491646391119699614358107936680437321072666117483488470439994235516587229881407507429672883390859986936544829619133715995759269653761878201640938117910302782286256687614790815442428983753459322807760371305070315996587060054786203839828582622789380472264676408033696415149144583704236790491638256510597506926994544640587202727746241767831262647749738478457509055272309056800844500930109830979482363415166537865667278611517152006097251195068774263597213698689789497368459228015276496973862456920242458624493496457415927628981175954897512120248202642146116208303944480731621860534636346891775669171708849991533136208765523211398245311366680758693375966733642838635728078748612414437952262428709854178958540466420501009260807065941117878161288198806082219986431475020032686918600851494366337698901686946801478874918837093076794748105634512264396059616412728291852553987315385601575375134398488023003097299772358847441652565732830167824075145549563611564862435673572662448748665075642399509815045208807470531447387244791588090351986264569339641726518657473729676811923208692668326867378373711996925276905364722349955896447964417141488686319828262673613945384455499865099919003633068519736782790317534722058719612431730863113174348885896284073513848948028639294301471053374355977908283293781660520090642550109926206126493138605993124902940083150766983325801197184707792931954997700872386151721351369698533890888528004565537984838042116221634460447668813834353816806075041610506508881432700204253895964030439280347178280769706646702743404773605091741687992056686066794597664189790527402699163497455650278125180364674368638622053541634605577691104650973840597469917582475704503979460792535190855504620538960614179570310156193653660369667809496046713667262878628513337311143225176926100348173512786587455321371821917357337555394995095991046984921036042210772633358688426422385417553357970327359129397102470990900209357196155915988825848250843961820387434426343517553271066393138457284620600346829502118207464080439774449869494107418078225850858865351224929832346999936804366062601122877940827749591527698763187391754298519275367673748993360318040507016931099075393107557317892923158405365859364404924856963699566814233205452416844566051985939289281011361449084581151606371464850670311136550680244577511072425098816857061719437149324011216465349864780221988867667731732402407347666342452776157316061244603357628582626644971962559985849252167764916917909713401785851354073825642847738912489053781853117439138521229135866939737736760185818900616878560536345628161575281272460392951869103740574523184663340140085605395524452525750300717106370842399748704762145400482160193919875322381243812275864801879290957498639097489764098309419904282864919088921950522814464858228165779353496450444269718270652817551224450425106865655263917458639918049649445260913283839145851123241105198269060196436280486268167741455710543525472941400485297790389624957908803724316743731277705618115238822696293615607383657740867673283135413683846596797140370347641957119588467228155229813805212634981543735869119751598092096597908999201698976524746841187039149194198811335184465515945093213865884685204393476908195512483369996343278324975296921301776152528708263929738300169968420892719662640336717109976446736119861754144701494735183043887515045123005644090604138663994188191516628380509399449484181075661904289414805465341058312357020619829035370552097776836266454479089604632340989168384596990435536697893170762432180034658983123789730502519813842473080015569581196249994567622968460152963899571045458423808725533823543568428822618751605460699821317502991843038633094481641583556601001193170109467836376708360706262694694269223219493817103524896227961705409237321513008090086766125855250538046142154159919905582592225954648325988394090429229404968087877596751066953646291899602020448966460852973568175785713428764077360931544632271628755171801663754509614222899472902857516646576927305280110107217684938324101298753468268579224474495724816856824767118392781760526588434975967745871846164091078432211991716277102217338273381516185763069785402616136736579330128786581265310902112039183866838859067567399229082057530263966955174548877049787954442158642356420560972618882276038689285554560595529622056060161877938875792742841638673701040290363913810258701976334596528740569724321535670680193663574364959502262986716080525473829699129916840277929640138833336575014646323798950192845822259232510514705596736206254197779480479393297664442379177056297704842941839198277810107863420239556655151248726689066360092405136930581653331287938245678332276737162061367401807924984461176927069018648745390016003595417611328490744979818133856212751255728431487721488380144490137276161634950509248749479642075900192556311043787046247558261769715525680005659819714984380529885578498042228467136390122795939535455022513394623758136514181925394658274232154747812512237479504289019753584595692597313374568814691795016431042495181738278190704521681914642722672491973212726812584200587855296279035041117355062314643291509492711102789718728826437314400188785488680989106637809847736795036160445753906629126323404516931386127398678637171007621884929052256256590224797903407893550777983063427585944072473876845124479166511346424358804763741150982749171408529552000580944025112922460221326259006642887556032185876393638276166636513120436954680498565399611224391294947197989077714736277501513446390585616723405355960980801188423616551229974721096961503405485397614457998898822976532086782201549219151037875661981214114864358629373945513244353193205362191396428682537019612512395883408964276041488317281745838037147936973155631385726020640832958503771502019988514922419370540518288099045572020746168198596754873620403858896979721276293817743705661050194077192911440806422052378975797322924913504784385814478299747037356683413107893881066397009469537749568131240562264139723191678820231484662546421358715052890057053616699431349985254705620871858254142178903724338981060317806808742640043408285320282004824775921933891607598955221661304390760537697307525359167254036756466469032070398543108380634325984702086411080493552668003052167251586266280156470465255379412856454199836764594853797815053445443857432966192233807119515355009824444282034615430237605503550705670882989401432661501891386504844876372379430416112282953172676677965990340783205956759303493665872571487934724213931285515869346270783432562079071663506427334963616607710482125575850698181553762284508915088127832061583354433813186286975617732728834894625336872794899181387632613881213309782041083001359918983350293123060291863854838959084365699564519596042946029697517336561704574824174812785329957416907858837785857982441003510280160529187564724033842938086908264167837935000557649856061728441115884590852320881550988897228015425078601404893678632730328439314514546071325151481096042131363257263134486064213330731783296649468884208413183584319023071847911684534279099970154364767744749687065479072562364938389473973868811108352962522967388036228543289129626951820789650894427703654433664165019308682043580397231266914386874181142525947050337135403544814996909636624846720464042260365791787442372822768559315089711113850366755360520100090739296727296099861067036135518120942875980613730274748826780392668018767048878735496709936905558387831860435855553366496857242468130552187075294702925937049438961712341979341162337629881811601116629623360790387794473677620464560206944910213989340276598711443295757773084311880901691172613905078805643209736902024029301934688327524071701319362211004302650064393504135666340160871563021631087891934016430041106532218944571073287789463108170133611348478070103089725759885041239619472166954155795860412175988040994248689693420157018250208560779764795813111203556926699580328362742697798311288755927826242167085495222969146722581264069571640499962498039610485125524673195240006570299788373470353771606199683331379397199609336503802031294957061143539116454343251888588280937725567664934210638846637358726831852270781808549936243322203361798358493036686454719066208175678088592490503994196301585657920919961082901832968737547193671226192907997023587427765077571857307470776436272601303626814634789821702392483989898633200019425310880174201620634231447154015083874943105688668017529094394684666966649464427853291792849120510835827917523421080582003588031825155665599628182953904030499517400265257958908252138056179491390280535835047485793607761772606740754774701992778064876563826690101892575621303145492151681955712776584625460818714186695036592764141033297923551400955397580655233433317930583410203624183257782095896269052080464553852390559750117552115574449053090306522494077805378152618944713136635355194201751263621834577538915220407645702858608677913921827592622749211076623941963123556397066357253466038301314404688159429942557407772548224933552510675436638949586306273952388266761156470180273806402221908577705842079071032808840249365738605337849698390954651719814313715664588840981761988088187624091171575562039303098269990492719224657894094113515510909010057030398684417487071984590625746811713180349805235210714624135105063610985656101934182795478449190375036990886474301731501893218090695735059719550340875648895370671691897009846886934851778939344459437852514074971674949292102484094883163053130112822372806476007373888191647221559586778593431366513208090534879228173294966788475941565763101027219019676852732908639618892692945093675030773755829188910910105668373545851777641483652435299136848278279674790554025482102963288032325283469392556451077822243989705404515461093093575078545503290139331565910402682178037817832284980954330490677748095354260234491988650816186205067241108420227805076252111987088561582509060654643881760394240724793600660774577121201479010545805815397360257091830613133033463996718960450010333407940289896805138522537401631780382031467480304965641975816655154978602475955086606873328796147401203078381648396755029672470031714826317531443028056449318538153239537023440511981131391727857195266933355649400062605039334492840037766941534701218388140901902324049209127453466089370155328194319338392007662624553479785098153587305486221924558893494340035222967794197306559182182116731892324699661222174031492037881094898723953868602275224837122360157482143011437651866082258590207980476098171167101636923769500498167052556126746439045458179357412544097588023492246697560013766382998819517536429673276856395944630329059313006288647149570354631727479274168992707718758714431906640825603998808833385980427540309984783330969973865233055906492245255526654137143814166168223709050599045706819698946454890302764540251127068722859958395319672327948013205515079320103729323161853929538565039200988762067480065342562466864787109129892053816752382831337160965718063636970655196884373890280379062276569214853191529807580508463893446525474569005938691715096181061727972930004912837230724236626529076584889985965306084008618509437175415257441873620190336473589132976613624005430728316144988983892242765158556741634686684162272567418916984096167256248020853653528519463639649659890841845486366149549088014144302730581532462907677656844016984313017023662314658450707307070206727106493260540505728811883198516488904680946453566005935025717225333048559258569289934673728544328504756669288998519073193293533058312193222613771910529094578513622492059748558865304079826794864203240158297353126327381291062741886779564177694063477605511266098935394438179603399793294354855131579967157024702760495445500911377013164853862704173234510396664404990931910508153305097331649523681395718154389212849405605605502875674002787321567610336558953116740049913488118374928176281983095083836499126487829860468609018380124330256197586261116677953184783284204770599018515150766335149448930739376522543653991898716530228493132284923219575333570438861257160332639354323535199934514699909714092563930249262007728900147741783022269904864252266520048410203744508338126815271913934855986165717805806402839642383913261954143018779158159359320043933198272846467436400882454638796338917015221402534265847585499733041923380734283641876850605287402529335615747364229806438666149468440840953842686741580762934189041681273462233335893831476498318816530043107174065441223313187054609570389471244814313167524125595775523790827401532404216896412923000806277217062663938241516639604429606267857068486265654301043524617886490837848563888516922885446963932404287820409074562586699451752172543482809794787799776470264982725976611480604269054538946793220057110788783194934302634850821480555654696789091342023319541421658847300423853501356062600615962041427811343387203265861966602764467497898848173726025257097223456479580746404898094702391618842747820457056482083356258241891867094635927660625877067554575124149703195416758363440880926262026161394385588253479888930635681290927270040761734928185838378425199287009536277288171450335669772557770069539093665795092393846318537448686811820225013403097309400105883300113373895313132898231007684834021908766108432873324269377872634068926898834425524117163434398648961675954164490370252359223571636062587441927638912576690142600975922143287346686410392659757066042945764510609774947202532196054534105156995672817156775514916876838856272891622277396584420113785313080899483854967018996971139311844857481609223002182751064999928105001449000705344053360556188631255218246439753692855480736360109340984902941209512583598789876634435894109327929784381678040023639098366876834463584750157946318283708055832003317892318339159775123399019548763642622651282858921736448174789332442996645549017091106791204057700526642787964077310256735385014230513365257640829344067212379406940272517165830028495055457767005991113869159872562400163020873449161675750992138323933139672383011610296947190384120550032277938267268753748197363572183819977736543661366801107796311803605423100228552266465601575279334504600410466102090353529962357744775886687570103799419641900172617809134935506200007995335561638176454766226441811139724947925354189943419902932002873176095471107274947023360725739745971943766733738511746419784367613018067262263256996417599759660948252741116727352270555816198589744346677226716071093411315700835970238439875164734353369477227941537704554861297299849717696258514871252921349912243440392394121375886020087731709448616862274641979105004784356228879722388828509126346425209562409277318196331199273739555620350653247886620336841490527053382993407833004431005466046073248038439055449794274899477974496140234497126254935567594467737001171361477562221038429946669142684719831122203011423573761572606112175381634414717205779360472970739542353768625632080252932066710000425246411147322791956461484798475940675926226039174863512167838378639960034323525655500933836856179993040435433382451638766350139420556340493351253494316043186959634258785585185548328651834439002534173918708652174034739606768052987290883589805292167577757854499501177162557476954029380426787002979621250389269521648485059286778239955121920380849853722538414910023389900839284974770476579682811766678936116516081014490395715700106296165563103632707510484019837402617038715288718004694918655756060683917088975642391275061213964487868846206616079449175342844012216364835479461112350632533517564520044852880717599450519189141961616705034587605986920063084738768406385256265653277350589118845195347200439089333728622254641848635767910146293318377318345081936216055430517040418471943283059076074848007749105905472441338663038925507668087974192914470310893770606795140726164205273861451231312251718715238594119756359799554475377002360364628181958371837709127276066038291801799414230624487455275056697829350356889785819257853782656699990105007773865749898013953003526868709391038129460326245025729174604130183679353819031839020210342143024459803015492635700189570780225992580704813771559046614054292723486376965336244580233674225351263348635773607760891347443015210755711197849368381327931610243921616516616527783334378112869410315148877461300843341929475438200453856473979097012618507562314120595604287472660280734029188735886112754251594733034593655531359751076151049748446166667195753858080810130600517937487358947045502357897059063491408149855184838740838422746207675112094250022413741039772814917698563381764140004455336118898001261995166051230963417254687112117650980246898265803611373629971527773113298676108923885055693009748858845582165560088069042924362248931419983175913786146547117996846485177739880007690812136775999525729502765082847252675525474680440206929190471612990471098313092608494392174166506729179588524114095156168660228985151108977761254996815558901337888004036910303786614904081611176469449867906017462626838414141724956738223879940484006813238651250826608650656331197595576550416340791250983499741196622254942388149679769188959559078166775434973841083083742997786536712538766505384409766231094284090305625531264075040958108431833158254987827393977727225569396099396337885484027833134367072901529482996536288432489653566050002000726826227298997041196712708257293390248928539826538989889255010388827265889891806520644128432292823231631094463475166658829451927247676302652106513470121200293502317408074429119307070075196985673894510748149184631018139142248465518051116001091172112835361103981918099566331997661441709360328428026286348127722344058816319255110606561604521564733853571438580944900105111165192237547327844123102473734080434178134263366496839567686908496310374936525325162773830380227985872542547812218757264917584726156231349446258060732111830665326980490392306491349851589722463428104562911369367948547097627537347509931886589389077380906590193221717896216692797548656103943003224480462585326281963738148963309137793106324526458246035291886908872852329447695697518235854371234684634986323365469917980170758633608968124260912420629938618985686040520243486312224632527884899708466224900690547129868603044277172297562951612939330884434886587548709760125532838904579705075254981108630765246395298246329719957523854675238397330684743392042326495359426560900941871977175167104259497351014714708159145452378037645267557178243745730101233816028399034252272205657816322584488485673819464315851069403945812358218256122357163937566046221136157928448336273076866349494569710512391051447075139331310490005706727403821770365369438744093762486956685038413317329407223709958750882903205613494635071939687863760299456849244475377858569217374534894656558675283468506062545315130733645601817193545053775857971263638684876850834290608933486330516716876965194993786330227712826202907249941657419398532256618403663169134101276804078862466230538707678709770623459539809674989253502578789269877198995622648981720000228572131948225547716771543412813303925301541562507844657797651232439746104903261691978572283506614011757642339481504494472626685718358455604934347855029829353391125110452158745112342665258105884061327911608900134590601137463464332754237293751682065130227233340668563374737650581981772392641502862802467619363064873602011654595785045107505237565201284371134998134568545474757095482631002515057355352007020274984914130790757334916122607527031399456159784621655190248736878070431719564659441370141948577764103476356014596960407396247937100922678421112269555976841336150797455424536525598491845884395055429217577483513004627350932379567148776472993146476809280942490403512757711467642062153435890659121820690673540925752783628249216837836242751517136609973412763991074986043512988713548950261408944993034426392686606701202456721183201459823681556016043817184256014516497366633284192596365284355336106749198848363737823552696386864619629574896811229794803021583652590753478726446770284788027372256903048581754436893410389047106477743764816631491814491530646776036712933292673488850745924786978352124212731637643119246220474682692299399679460482982633860471755477910093101396915459827455280104813022020294733558052714475359823439526027796009868769100276764023774868580402047090866598379238011596353161866066519965798058054878022422508300103932326706631598804229339505997226730874417840094674732942135313599279491209618650457500903767513588760234539705731994482867664232124894150642815640383331181207372242482504738466128340853664815864498449134273084224783589529727477489782639701413876141548115249267898699494201322578391449091794229236514466228396123765162753686377529669410982726962990357620879927129980923719530042568568213313163463474138175473800185515196022075040702251567312784361766348120139835917934794404931944950866930419374289538529558828849160165320277020691771705016322952506180799511165825542575531017805151504916016599604428050649203895520903910924802456488029464590016639240146107761541822346760406728234687977434895119429940435854020216657999328712410894918966120444163535271772312201125316778414015636560208086282334128152373731569884213945855976750133714536602248140712392010408723676021280627028041130022194007800819587212269133643462746853553311408811563011243421369717745291478734462200463927271719355006265649891158152370900651301720876350323117825010398551166505415244824761698333226770217167624223790098832337903650457437929307502294449584953594229487334087782445151259359037654618792070028925534760614667940750453727367050483786577860341798729733267679376516017565545642609514889893254348579579552201065839095918739425026105235883423392791920781009832533049098291240651301491247836650109581006265875882197064333209886854188189270992732606456730528059632509625311370634628336053060652534147530914903581837259874689532122395286445325637901590323105079607822226048547437714912940039988203909251741192083110007133746294089879039037100901289981312600428407348486008620941110415486238841768157089325696872914397580068774920888845705810409257561803519828739090750494148582381706347376226817223158727559469518135591399063856033378175183139296163880880824807224594477922004238315610412059517996766973258791973049251171700676671928011383359260231150423141958380012395763138545455561008367773477640007636092140250625755430275855903548028246399382135727721500545358762531469831818505667456804833576455093790230202148868251532620549090188782183831511673521943941170852278967012644766120263208449260190297092706980722581521003160810466103590953190669642255181055381038558819445888843173224619015612135120510214862298036736134855379485015155655270290750984402732251626533604854198309828467188158173955836537052847196971989562293070316351561438446809241620813000039418192337946405320755498138863232702603553302130482360535872224840423079852978680094967061601763118661552652582118047005043040975743896601974256857559587729940691508996867822478373666971579154465380083412044561003426380267987285131307152604752769640282801143537541224293284093107139696648914058243625234959587743195200796699463210977839232970984248386842592196935803943275985278131796922526665017633270222485440681971506780174003635300066034625826268589345244581893430868715779816221678962061361910658558959050163841149334604190565415384520068895536311960071116796711395995900480026675024769105606160651294946432398955023136193360073046841359630718729346186061243711113442079693754645859892494686508162635771383896458675123694133048144738640852371464928482374226515004382650203905905927247541585987793315264507819328701219266171722633716858928458585021804421699351171640418093583238950255556101696442798257610102310548679346502395884532245365036617297041466359500133469393549715762317100957508916295035098134075525602887345929774495160902199725569153769847685363376966401317464802776091837641894816338543627150316679267193726934699708580232056950403784646267541751446327230932922924691156939541839076867338803550884184954121007167194928538509149722261234191648308349075180970936354065293620073051379535029943532531386272439879555450450177028925540487417410729611909025357408702329928247533092642447250680139193100652540386942112694569018121005180129449288705401944649795675629053005717411838692370478475771315451556296482693874624606282405543758666960025550019711386799473565390401968098350159157343562632338263720312418634172888446628570326443337461330951858696440233840537526978218627857361268042936817410340875678387637187435945613315765480237504903307226903512273379589199314784896770587379244962184640385221887353698718465237723563415669082751798497822985814860866717935362391686498713915610338139367073831606633521758333700269667528059648797423661466973921121140726995804609046739097887641516624264052178361988895097766757523150878743866012220155284094753114781336053522481873957159100803659841623880417359672344733184785806429269021036621704559157603109591284013821688632495167800644188179384185656433622791227078675428648295225837356690757821302537895932306096737424109564403351770429033311184044316476330276246162095530464511358971425676101597586257563871427768730530372861904458716735364696012782360377837833201327983271942283464844345093266965208258642767506699721818003924334165864166033287530007492222077331831966111774478040762482178347931288923422945690907509354665527262059242298144594446944902152852378542428448899328067172233096443914022466975756464590239705814620189994923691885141737046857496403749962728406293548615268469387906165632379679299685075347974840011048928602326934364933029305868644652848513742125197690674767299516977464759549037483058025036751589135804592330440340230188477763297460016620683769361588653711779798158326460068818763216605612311922142099118144262899660054732373571228158519001185976356720510651417589880053414948074489861745958472832428494039527975549431224436533295037288716957557650186840251983262867854647386644109778894941727557333728724034764964729164243087765882448315196932506899943317820321285478380205079358573664000349712331505547994451994531282271305733519060851176547695653336831679669353241920902143045964136198195635584199753079972412628908577529954565710515984394538716835093517457195289291170880520334268160909727632323252159432006593392624930963630612636691508624512886189171194548514467828844541676090726567227215549197528698435670507563003096741153504352617521415236518176150198243152649480759480079085744897875396546085114532399514251858067590515503994421396554696360693712981027553548762348552484311623154094822677737956054867533044287775773466143066462985561656161708869503092935870508963539296403689667639588320878388003211691904384148291983917274369750629750321315828471934017088126062214859364929216172286472087906138974112026836461872249303115622478224524821754748630612358712155519149740428953236485967712830816576202785505348009188072838769506709515461733558963622719712419163203672766101879850779074033752264586943022426950437928456655361152418865459982211637334578609152946997714666731673102948003988486528613374524875273315757650925250451639362589439435625365436494184347468057805154738499840838149819307229816118045596126925320465077719802064265309280770717485114322607953074374753277439636541496051097922285213161184720555650990398444552823107994789733268733000180017844690160013368306670653593367530388582309228711018552398414249363885600217150818783888589337412013364547590202949718544123002808431756681969552272926209317177764983952484267019676522376919862044749479967133767828152431080177492781293724628521745546385217448384609789850799605784550184872472706019737412602888346527542304525871565602458337780031649549761766786964444172859966777200841888940373562034798502485057064400262454522353270935152827165480270309168815001452517732100482242539551531413695852205547520813993665502913125953447537445590709026157651835039456982245955945095027499325907171819233245103531406266972264027722277138813054164131563255331225946498757556230235123050855301141480427392970496114102461600361901274525971508295103720340950514941579340403199539024816567727647949336815547356771975475929916621919325262987680366807671297699950873760639160857184425855531332189469580574134460585233787014775672566483070683870907536566612551789283106530818087688097365956830672373970141147386426876823408353774481229625847675758156853876203648565092696520517067508999035104784968538014632243147716564107547482067132550721184284075136265968998817149509325246515076981792734276067105840522946103348754140662250756736714659415927051874455935431124007144502220087785645077955406181035862888898106837838112405230982403567041621112760037197712905588771016614825990443006760275864241890341060226390765984511553587658955116532053639712261153650404134827432083448016821478991111789505774247265628715480204211587759579426647221300457999760277675898698413533600049872251532120010613561486855204941432446898881029166357185560313602663157310144083219318550912903370392631957325451081800959841248808288014381697739379975121935658424499789199441316456445367729417023753621262835086999200226674537996441556268106232690289672051274324737674631759525812555518855749729901658729263868776104621081360057096342051962559664749618780730288773920345446710982187594103023735411726746646321963239036999288241542445925479291585673538372757492769026803549642796915767691206267425099901198858363037206916848410111525559542134398479038033518140956003263430595688166658817525964892312793333039431339887946441991839311731290889922070010241518820011826377435046028013100817549452567113086271391316817876721582869370263446120915987991479353824095436094259388312069549915500769572410385795332922226612928051149047278630099982049885161725456563081746168485053104289576719067335662606878035340450857220390810664801020968860249256609220454171975543912982731617243966694795554798930872198500321054239844245000646435245414912284191636839932992442449045693417588505749124301552237337098194872919818954669662001303185246648373471691425522104024077547009020090339088597151244269259868020402987308002717803472545248559422607103076048718211170473153644868664020798487771615474061977057605670749605668636213130590962134641430611806768424682024805291929745470513086826423777433652963479338821952202123122485166706782902429462860399014973456784560654150889348607713776407023832404308775495572759725338255180141162407845933797630037053866062110658507599659317906157735266023809085071646225276910967879141798545370506033636743735351436479642901234610847216599262791976176109421698308683431315052323813902470740670633265770448590388048950796087180359809504182559515377702377351399288714365547099432236473456118037162008071083729189219187015635586742866593211871812851472069585284391301015242940826072006792831139610612825494385968488055285014809163016596629563422777234509838326626671693349837475843924154365327967231538749196176742832753819077621633218053590040446237056789835967652059404587922403470160977203157544052440864446749960766451016806669455481357730932390210592530572917704710971817286591110282073654116090616726079029921893880675463991855989108913980789174486445661094678811802996873843080334369070355531325727904708100854007003271351217841789232614106703925280278314243427248979370541641876907375471934127427564756248225025119755890704940799902943394595679795545957438538275281065079313822310576809697648935417868964248123392940302709900799359708076039044792949743992945018401696536252842862513662137607901440927958359126401643564328172196845439450107172392829650393298159021440689363531078714252995855397228688910583347811562758216100232654811905280444835201247264018880250558152396928591680376970738570486987119089642453853921811103232855145791699052510438116640894298981008317851173349413989216310339067615358420543045188607891453827397371461270683076889072154036889594648871067363446416730787244796713185213525876922934252489996518509932335127023970787212324971337968913096633042484067562560327966741717420056618246050579333909320082032185000678814475526520729063450774912981588580031289095183367311075413000628016655728964748743087224212452227702103718958249567177821821212008827143923624084796750146323759257386997195337277892770326078078696648379418508652124003326586154153156022741567227182128807946057634312665108926842496200253946732024668388022016815194451461613187839553188600107433518055571716495688052226070298534753428083117079611476434844059868350824267698311661853736782993125802470276612724657866451676562672373604043316305690069070613260175583150168361210730674102392286013377953725892827264475787542214069076053279727812187796816157674067304731521449930347756499579341711240092284803369359796802387210554292187417256127734883854598915525031818092458787573684858709158720135302312024278826455117883979396928909069547440839483385995219717845270481133524641174340115864687660859319011338742667095737812005508010815612409969202048677097350076469544897353978925729507978250099218656322774128336870901162160316337420057583275696155022199845015433444219974366921234311400928340784261917361592438640408589247103123641701481879678915441803037702805594624280215696909820038448836898885003098648344500306560733482709173528728339369181486647024236397009465297737176175110022296032081121833172566036813461823626519346425341916890400454667707620991376585330153085442629641957139228844340298788087601519202448545913955054655087774693805636110609927038044263034487024086276893660532627172049396052987202684445641013725882569381170864336412972703613380608053372315694782950550279084560888553104975429883034020957660338447526317079618952112210898124552243374009505205166664141012330299136916798996268698447701789928158732833292284121596098779052346544998117802305844161599416170056547515853763464960958660851459307242012441062310577736023190398619585344917147111293297613521399105550040713052888984548183857564493094768077275051804665988211210046945690751449270257262440811356783914320500956750499915461399854223821773893541350065993786115973858052540581034105358983338691638275636360146771452135135142935400681116781487264178250634853495369487015978091361963761517241645984032433720689638886542998918818747017714911458469854320805280519298959986649466805907790623330963551248415716968857167875990254229908250513856131627665548655124961927575514357295843183793279018250525169833046879977523147261246347963438725977562489137516759564645023662274571408568795494386261270939736750070586304649426335866801383970159499992221068355826725740172226538294987343205071000042400152005341187323255615600778277962280797831712915904693384143845020494920426604918079413981518959937582920944319205139488406043364178770837324667227875104664616420501649098700997701570842500726428649149488266556209462589641392582673723539324262352506738629784754915781595324818689672599478672191967342495440947491306649082639119560193158848451297700711394336982746581285401017822834408413206590464221381967311697896376301638445185742086031572833580986748236393332193028284419305761239686500993175714258233405231111691476931590315242571467176647912220953374977663150526536476879168264750217404556597510186127656557082012027486284685320467817485960980306576760853059049406267292408693149023221202514034728150900603322920250229527714713265693123655360335836491564278156474965944077309624506181528794634463784881849460614457868135340413163296815243492883646254389033198278845777722191378083125522159244989363330594194543427749950577359398760160745576973469433193916971757562191747957939610181325502333736907328873865834774079847344669194951348072972595235163424232467904812982348071410495894253137812751964543855438962206568324919624758065095735980488929146201149257907017577160672719119064534232666510987061882248469956266687372895673015568713681809431826237813317571780889794166286296961393432458544402170124922599818881828363907102745945918195752704656272100786784618244448590269800859037236227719519188718155300219018420093314331316402866085444213587417133532751364582416655807846711765161737529311502990936453444191302612482133750810596833714170074798242039549201882950175140402772901646189187504700701277608929873790313217349051457593243236085744178681708557525964448710938746275181797502849186746478821308225365944865282936234242127301069072369855142019985762840192986665881693618654160647958762197338000816991218928729442658718529356791498134959706483987142366157555889290566209453288444970419553566573561293019140063432350085559574064641566179001473296453332492916031977715477097270172349870492206333333649279637337045222241291138349421971305749204738151918480038705829726644026252021788090733958719021006781407909762829383667356500684068321605823160871397528442858773474768864823844217359132634594132435550185391761709848178428825107409795940684318057543969974905381682722781882788227715242264745075439837870669502333998423369409651118581314397743770526604493993380228820212944503478416488956963654353693868126828878305789582695927348425437449960622584252727213944212976853001840392719338363403309759263848802612137345133788636571087144814650465455021930743651399567890797304924807985751905726421253521429154713282853068408213464207329798499620720722717890173840194472009992943728191571931244582476064273004841163963935544698193983691614119981819339051783105590776397278606758929673325053224075352440438647825311066339720528977370957654036954364825455890075496910527330384018358616915512740501022138576857210471972674466437542974365611064197374902602964981847267765687601217745862606901384282314081239748703185389994599434057897123822891792656230680467399058006013277594729095180300509708841720144654041966708524768410437123935845797168930992212165879461327281008817957838168851236720412898436043722541095260857909201864862877065580033791760846168818603135202333992668970915515008504109681737164132884830643274572790345162200503244441415903344739430303833931196676946910543862493475122418233151778425137243707915452457259937043429011281757120778129862546420291902986100772222123628085012962415618529887203410011471824929943321012435482586825039149129668205475759512599260312868371051098433716547215340746854342987233225615293937855317131260298593549722409948270472315038697004443300211375066420869880609761176100503182954653718004351322791028439939994800252884223788252580730426732090663939086981502121893924925651246242406451031378353119174036431656686839488432973948982526589972814358044689669351812369403030627218434580766633188367064321975946556711336560506916951059687751014304652026383436936877980264888548634804111462094084205913382982334320246662818504579419467436563743998727464520864997771894341165559873993673891440885538158860655899593422239372025799006812522812033463482575018787675339080807837990664157406282226197933906960755066341853887173690480778682400273222747325812748561888210687294252166920791780126884557067330700689405938232470076123737906438630005501855580550285371472374979172216915642797558156860254641262937066469721560534345253092415933897473588540307090156911479041121526115041801295297277923807254109739646316808169855496832441292069243005849387609270502281682933446781227537245216644892902254670879724049307330783198567037823962601348303597147841116303144924991364497950210646071224298872685661185659873190523748926328259063020151773870391124238445461911381176420280962149581535586982356570675609285163000956813043681056330693894707800386677667116987266472819955036541027031751201350735124363220518747025545775239363430534088245741819946998085000067409248343364421020914139433928379495055858944690083786910872835784961257417491717031208827833560110633273661433677807613016326833785060622561866229589317722005252133997944225819571982607255357503605820571951208602504557834308710774106703854852647867185909193943437926286427958275952212542825695234641724038181642184096952452641507518376219562846926785087746595444597525982529988779581835434521985314942046748394292038883442364492788276281497137385372360092416416229655437147708951512494010016308976189775117278828286952378479443551468479811589843652274071323235647891323265669449101021245721343705879494925086368660170134814308793922008733105674771765873953473102771254928557143065642643719915294270488473842292695452583573669241442727086853145522757379348002096570525052428672186049249093489039346714650876110692828050944584921188300277164681074631367811773288232307353767449946653288650126873722236858273613788288893572579651870268894674964227604351502598650481536940740423140091565799556540682995022492718361050306201490322495854376225157446081636335796168530031439421191388360812580669097090075472146332018969547356512695779672737358036147798934006874151282764941704583699200110100564150189608171528978398092116408579813686949715002539388646037040824868855234980362433170813393001819373907923450403876540780771506060852047666118433952385493657751079015155701683956279753838110014770367617706930707409143330858146907683888351863835264214066648191007883020449375411523648342476008272815546927362218412017391681714579538079325397633694971673654300307810762667537691933121549799638933225715499205626880794473993320339700643631650549277942130935351939236196575360560503820992678880017875964358541504299189513597042600259137697614609652825621462758978541634067643132165000635845234801793282748665411716468223535338244928750735325674258866088535461571171809344658630004234389638033730074080257544115200473648680061382208622542385605659854930277141732712947106341717513921746092363126783027277879117486162718287435560418491567852107757185572917796230729222959771441932091201965003633260142145352048821677743329706496418284353662013001881658804982671347917946942810641391105592232532356630365715817623930770250430553266009491298767337611848378443244035762101591782547498186008210514849715202737299538181375157355386425485045612242153551524809654824153580231617129867214096678460583668668547158170376775170883076801956704799985191500972692136557323975360499035379039798428664034762153844880607462881937983198386685452172956471038356940684323076558807456791219514105895087667282572958155726936347391902129406657645141114603990859133978828527944380520535096287437594692041458118920191931265166859948182382426493460740719297600222238866184761990696981610616437389898505506935798581583722523433689905602140032874042880246513504783830800962771405590953033995032719412617431894511795593844641122171258804893298600271778791131293467417515556812857893819457401069908292385782761250639727182339626074250122348780164394943326609841937870619567663836963212580979208095885856971203874169145266803165952123258055609827016284614045913292911737244705799393060844991266396266318093378321703768938986716683124289758288868686155657105804102251576591708044140620022883385577156287293556414219794278800537863779935886337127145158594266553652392716227006460739595184746592700124782451391859543033558193315830573727206215762384747821880668472982180131520302143510946977125203024500180030249191363711616681169765679183009423906685444545942919987349555041103611717866066203237398920243680207927352325883658544108876200799871022145781000916963966177713545766620496809257904732474873595007174059722793036467791155223402877992470599926985822412596842078520999679889365998735868619303248713233649140680387180653291938397570791579410548080109651220032509189386649873846595482581497342875511440679659879159975951969045239518291532543367306620163872282801406008615164164168748125366188061736441556185831238130711947872335910264805404309970195254223236415694352982942720129698668971707231730946547131152157562111317947461032967462003620792454295475591963063554086281431910478614111368206747889956573385697751094341219874160298703076100533480367094784593643273053199613943012168425369187303101492884528632618766495090338619447120146905446805929452916902113266404263895969755077772412032509992141381008819338735838340731876220202090157878586514149113981938777519729461350493283204801861470778568141322102534962214785334882146507255662333180826019956331550955361179990815914486922790418404873206153346237953528635307255001755130736111266018216897570303074357789803021579298495418916334364536196172891936493821830430705638351017866462203200190991016857874428441312048342434491999690513933960129949331007856397773655700893809500815902480105748941999366862847322990168757969261700363996183558995874393829327946180097977006734529057746039155229311723928686636836648872329273541209773068371555261703341368184208411915908762574523591639281269604117428188361088629658482839463247492802033801996516078335969943317060322636466747613912100242911794887161483957908141499986516606053902717033681795208969568308893254582697589852948115255203523794488692725874873433897128073085784502003086969055875689332268646465950070363452280650886110762184892940304028835920550579611966371251802187545119100922136795418932976071064959893721560128641210990279792041599084299228385135778273465218476694738924992739198390253671226198453354247129089498179225258879103671445878490337370213280782589892282719158920939847359993082873234462563822704881264724496749235681396121903803812364065806791400924469633936528521960152065232738096696312936183374219690819254892663275082944228740714478474833656285337138750435254977451892506802875049651315667177863636286048186887428296261952527655157988572659019345448134441513253916824633763618214576982395740045078440744047877311423205012825729006956456949810411943634184246260160686308206485301004454434968327679034521471562466111793536204879895620717406403491576324034578212695097197065144864510297423571025252553738562476348545031160825612948145642343235348213526376742437781513679368523576286457399854876731956996482376824957166466456929670073266739390308205302922027751548890058696194957066162315237688297961411046360910480800003135991375205814317398862096123003532153577657927175357148931847598584791197085261314865645970125593411287390425662888449728421012615263216883367402381855967202975380921341505186138213981137992166445343174328149737064766063371089625737710307379576947645209092119119346456588421639392321339180632147570606885461749353439004517520412207886396109268575126090456783530715874163104953715224195070654820665534565616541220816255354956833493784236817630204027692677822467036984252674655068748199858232209429645955423703548411723468632012533905965229962565499013481076169329680056111234562404751410002699895890124892705420798881420219748709708081228963160306702175246489480708113832370674925657385470583651106475551544881633465632623149568042541125115241193099068312897389137497397272077677356357706034352185723959737776718736614045403939920492316115365702983667412162429281339679532535416220200687065034861178048773753144939887057060162938005990679578783290845987371733151287973626041577655645270657676331508023040765027519534823288507700418076431310678627509186872838752741386862235958000875111346288607352047287414651503361219963149273343676955395815782487013529302622125731410844650765973749042934587121387918516688298988292200939256752902677776262169047594944984592608451586628283012414532649095959354282395207354697344284323673839457486547742398470634502319285830359634206861598546730997605585945067655012243337331797173132736215702326305028747017620112723422166049429060668482060262477680661500086720298704580352913839421481850078240890176016372827396770125699950293395715056099028003774692374726036855512891721119028508652088431862983630962011135630276749846279308674630615062335176721064107789286169153504002261040889811831908787444385735098883469895108029039267171558895180040903370025583262917603950612396467034006226262864917324676817728884433013600250497726947670180355925570870885958251008331658435054734042890497097525092478236454981241587463462117329401055380616871939657996617802424942703603398065541417330164921250636668584489850876028071997562878494786976324452565193225718973701637856587514970073528335527149785129239730011216655513246699995117147939466224318337385885598726009679962294781002845962895837148110621945195807338524779906704555641737784753048548531034470788196146454836447432748839985687039161761445321480171170226543294033823214429299447994154416636607999016776196914137052858801968793775951767405723601295297518926585443482430922300839250886115390712376232864428990888490484169633148759007005968436790788054161884037635616742707757703087468459347332613025590237642126888594498269134370522358220806885460597399142894594359876143151294869870428212573608446347830241984642290721426333847528631359353839350870345090558116790086827269192034809635543517649768263475828151321357649411525798385559332321274529682133874916931288602041101505487668929318326730880776319900932779479683554531534459610067201086694638188769999788270292288981289635294185614188320247231271959182856342755084182414710150502936855074449803900129731903729073543221177107997878226682674397876950672872204425446593810437274977875658198163783963351356639095233223495459554147393283716051564641509750045642295624704949809382514604673679920532707962564962873276754874187798356400837329188510693759090261422059134745138868454960736053435318696179703877750270882490268083422967265913687200305731530635557168246611256903205368095199465754089060252592691694849233536096189866507700709104899673974090613139516342621194419422225131167073321966084745825969412576397118937331868435169199414385175759695427989078261839553739614400604125783083502319455726745895510989777200941334176039549652072959672492905585406688559477562669614639503155466729694448259959738050890380012274243339947169052109327110463859292544177499165403656970688637138752007901243129763309654912139778811909635053491817424288020433670643261783234901010431015791289473468260934659396589059097549591891092263218335359518175148819172923305484491969639335907601600715441896747063187076566749782967629586599676895492613208159459869086517264002171166865028211865450908134853405667057643691583410006023069592985480313635690980440710525998984624407378754551791503129454964086502345479234358929660064082468854904023388858701372697532929054435128188682257838681887849285778795472416308774879586380686380066858366447260506597554443226438763762426683338856405262466973278367899227942100641020916945286063626942613071766795853041868203553847588525695080429564693563868543294955008159998147859297621958788858758596880904472052650189875585525680011988571409130099489932568184201812501337689086951754895331287552709897412226919945761368490910383859652431836073150176656169073323875227911396525487833731395748184630834464098388669901894317416458265727216462968018330273638870503136788322791137964397480426808166533099878110040542388679813593036893747601042501238689965451857468084382419144589178864052804108878916849475526195630051689109420979046265360636688931845892750761800120057487124272872943895106124471485756456248818003962464636878626955511795108602910800286136425777933211096397060736134204374063318199272096329123435274354418461140069690999856198708512134092546056248231069997647187235554536667121463392497307220781614634386293874078040753850577605063603801954992244275170932591332394886127198796186392151570981232854962421189486651262987215693530825533165350559490394129002381764329034914932170779190512023718310289960892958783590892470732698410404990835355885592642817881830486787323228408955738460237312311599086997358737918956435648344357387026799804392911634437565501934490657133672129294431275649036891571527997352276645472343640073455720180878369329175937836934196690214981778101561308204213358737411225003655894302551602518664040496648726301292538842359451073212925779234191665225346082041869747340095360827318130120424042606623691968251645949442769327791075687327137846858732972294175189393148180267798029686082264389305773200608292916440075540159253801967134734576260968750481539248378175102208843038819918109643823895569217360919759533912150378978749088470481329103826662038349408714586095744567314313054319721390531875797486205032587164037175254624927862478918645455034398596589086544002324864086951605958168280445175629842182595364428708601082434966963994550032360649398879760250364349336328307634378641209680454470744543301979892031771335533591281482144727117589520373783343450773375724479774708112472154065949891010999778810694210540047975738201546193759901847852621038158954392931346611543199732691377057551077536572932560966672308087156272044748673708780846329694136707275638036703398073542392042336652425244366568167534938918674460009399992149123265214459622393441601690202084054354896230481218542741545612535630484500507383042063375820180437099864466871905134744547870945046886276424227538214314248005236177837695109033012124864745827224711914609945005814098930988378747828711117375519855992281267138803609522622752114584312730740524646912666089400201253643862923221645043911314709970973274514448784606313583417694077504397169078443148690547476433193473803118167989142518962016755387542212073976210482690297124135264789388159112448404697721411459361158457728418773192157208875431053161729817517827949918199723232814330079719774902076786450810266352401917511035681937765961301375069220140991976627021374080337844146211944225244454942382227055922450589000762086846299595192718750154975335853994345316706880040348857205559781310836451857544337492613724042938888642779088583745618493827963261290496276013201166635430247554371935776991132954563321939191579962809109095433176216980710539429640787605096718846497241322519684602647697108140751376280985500532299421787827142093189247906047077017138580641462354104489913627534585196963284193137669441034430058242554054681852113165140603853081143710976812325946988883464319725065011878845159875006631713254266876769897041581596389033924617430470320495825249433267715307031300065871005807053920202013276610148333318457576517406128644877805108553266094095608860181304009455902161220458304091630850007110297496488107740635050574584916782380443660124901129294434623406122582122590106199342868340937017137155379497347734677372425941167090932087189843630269592826108311726730747753406710362048013314425850947679990871448275037950411775071477404206639041767137928347481477164068987855563386298079730838267352955682546548007713392544493576592434326774670077611793657514931383121114466947784441774823446821323199361483544985665417848667322629270265664458192622080689676964608559479466507353421512959799558926964809910601474114916310432162233392529909200733836431966682951345721523598703633034858867471814452160198537450732927854218224144230219662667442494025735008505420550859023249228907191455957829942734291564232058266042224606532800124001830759975773023323311819069657653685605673728856249244082883350806513087580817720141720297980158642242290676197834625944127679576477329144130035051858818980776386952464778970030723066515743591109027254539596991912334791729670228515262372454251576259706308980166951623079265082127259798711960523419507255696394524954683725898363213743522877018677585181850782788741761634335896164042960015014022932320518963517049305406599761750317225374651510472179843434571239711044542019982298081276063342413531331840349848406496360623328591800733193671703670934234061074190992240156760774247625776447429130118606019297403673469411001300358033710404595582319647731180929260571998800324432176406156153359024832150696027350968036525117425903143887563682583612852189092974703606985168366640652756710958700733278247257212767896085832139374870545645852362198967452417693068067714122352717911434206743997165360735918489793155732780973210078050786899071915566700442315727735186008169639780691562273380167832494757302810167342036673813762958285743525528295919106963371080471402107722928465322336731301947419154919047703243985036862902809913536348049314742005855831834832306306294951668472723919065224713076569481712370756982325157200916502391987201108893625151306502208226178205220163154848206201637913696758413190607220029209328190338170266529788201090744682572023829977867526459553010799707110563307310897875067098908632720394329211320744885835752636228121944178979537010878286994661858939253929576640100648871094373285536100340585724828533689017180753983916274190500697670090114182641001716720041963984133003911665236228697718125648822958230236025935111228619908746657629247136004194620663938938234081822905438090966392794186223965697051686983664708127955360502981851099725937625211404249215600244230324489859117536392065881289975129280157695739104213069878127607466195941294035637519541119567254040841254147468806133096472658503145861057462427733850576683996007458384845638714566031853629058526189720630069223011222906831334057919536128528686558732402308326830844269917578270326356738631047892943285634840051799021451013503497277304415533876501815692229588043613571108617100560872660993593783450926105887739634930035990795724885728223725889937715965795298520777114103319086785068165668739887504968783917149834700961851120583928237181234118463599496047421826375389306106574097563408782151317050256228744116742881119838577840168123362874917536955454072171070445792513253674901920259337712010687807866220762699091635657823290562868022885792678344379333944923542697863067123040771888385642300727470405500697222524702113979606389529420844575121296807320070043209440900129373233682223119793101266998989600426841466264494371546020758949844928187689288897038629052143473084878389586200526663192407523863433831934651627724973217178429026463839406961038869580403248407264592869806928601497332639186036385930011337505342330235964315887204318592311158557506070296380952743118402686784049508860880129876599747008318095921193539098022030213993387135526840189748460305300321417010437006784638093761171331798005575672087485901935807695217206776057931956862946277695862031089979060628009116249407859838798363996889330463910248529407592841781338772056652452745559458208250600041169224121061959829199076336432692864725684654128287243696786203634874994982294664152369102778101523973530443334536863379994299380705352624270820958495999497050971062412977985161618741238202029483198052345826732287361578779726820244676110812087914886493288657014572650825631197130946296903308393276683888639477905870191154766359804660391749967723164904025746831395359970675216365614350803921002711155532144361049975361378715288564945124806784509740673478249232721561503610731326595753008834055667924728876045374028848790651914094580336263930238102845295358495795509154397385607494767716795536612002951911157306124182529514919771713582247093445174825709924058711229770771290351672100819285953211814419625674314247687903494098475453044718425665570883046125419856453380781198718894468230904233457772869505543109172076750279830406477992121304445344893365051113800818634222005555872696238973284728124088002987690490656401494302191206255759690338311592311987027427504948989767194916243295448977389694193457703950208089041818926813784284627895061402729874976144523979015685672506773828754626351087135584725488289299390390866732055627758187631177373549322339181157787519480865134255215868219961060935844493801478199994913942263933441599188735101607386032805342983420361678742455833340788679581673359167352449502154821681531146189561528565653756138814815369069435169104897013372409604646450199437681741586997462990837632952638501260285129713390370057358680623134660513124488090927693315830326528383750214025274673377283588904549498122189376328043609283356022171370751048704438082151395395903047752431349010535421465728778491813092060904341046072260526559402127068955633199545941835526460004777917841429749443668062850964597929008438369030236576969933102072903051888952699747600855371202468999129274633157793767754139394451164015534395465725894644416247327737847827351289839508717439996591143715197061856872854870534994080980590519274325627911437084914717427286739347085946313893706142873448113710600085384457716072188501699790492754444378441108999639800226193957655252541439381249981456908834660465913921402561450789251584183243072212706794576222080400833667945458957117886480077302709209815351033044079986924324611784710794714568553402617560272862894747823115403987991544400846860411511380610104844648388103516531223277702772451114539263223436678802607250398261940607982026723650340646513112909660521912212476245201057952396912866345817401159518516717561660880661635960866721020033969164246192790261901790033482891534999227384348562681271129639739541840353794002099191537337058628303703210680538012718683364619888755492062453495547190590808169223209727242796879219783573994188506211041055657536564630838366214200326712586636226922782178441847678724978432155328490124037339536176033225024315994260222436675466168708562548968455113099077648686271747963348673908549144083858089306306516245528865677784751717926459725020115494903702831815530841913264907652884927680502639170169041265629187268325464689249391303639591174720532040034824063199870612344357586919572749860775452789515298931386405484183532571091094205361269794963214407543814130696447934057488568133296941476544140474332999815530687665522372970210655821803959718875403147199224580006827936426294458226774766188866318055939387537638138603010164917389240902201430977816422256307826916494531861016290674301995018470296662318824971244288326316606565911876883445741979245282734335388663445045703023246760288309114809281484015046342393169035465450308433611161081931717799253437161062871820774187689194708836147665524680519192611992480004876793694635922098976268064212845756388935790417683392068718771801363730105540623171624673642598843733175340571905531508788934994882325932122442907945072178586036368050776055870126112969164372684828496880466163602613273351362632337362923616461751983758147429240686771715197124698215309169139796037976569944649766348769346867248200080079178510408320843297777575098843885349053999558220820112828237675718362405615360909461067405648084795869509893325299785766581646870010909954245941613428049769430076482924593626522782346016336915668397509354935072424040005312020366510366934509124018559812144071244006621013596638590408210803716309421688437652172403191991233001474522869945599083537218500302867323042952858703859316676615155110479877084396539281885898889388790052465550209959479720541231117570498895683704151942388823250212536929292048533053675825049112197549116427498723188275609812228797118984024886882693250518639620142282323489573814863484645411623863472680489729725683303191643465153052472482270771850661965272095903503777710277347281032659794495258193177568043741543764042295185646102903184618853798376014082613579136440441690927185333156883487826022718974642533345747541596979087725035238069358917832391778962748897922626604987395040554052525171792434399521809507004207878451153216584771179097972972248517117853476366023801709613638978607385836737265056343041262609609640269790352974209972648119265187175766980666279868787451156075873226937731652795005965609701044871585671465407424886717513519376951571751157534055116425304769458478462081413033825517444879543460302883690848178268828014775914988132991266176261642965560891422624118766097894604168495532418282989224726355261820772729673853964804512068387652973111011523637306502572767607492454459190355078967411179279101779596338097643736145058460097603893130813933251831267414022722987588028866968365725808467242681668990119841566050442001994229892084684955903749662120028664343263275534348236019749520059159463362106141383736110127587769891490582664131755405752016220376057226106482926916749881015724815348561467309772769707082617827254412024898451822343464304629223502969385785561179110185909082665718608747831703963772342440845877463860880467116718122637377783886463647111507928564521631826991074651976618532102729228510273712275823742179159385544813193451070670920956536542305909857498758139283583760906357554910459510777615916636219638430401271230129261390846434473307875093188838765211174864875145296136897857048090310113836627707566060716877665281430067700325724700692990409048083373463180672261664877904965514959773862972476078888248045620830851139886078431338698307061174523491406589898267301472100735568057392582990910230950176981817865815559098475046616740267178467717267798258196773868237407597132733384138542251168747256766755602217029113350075311740268949032853392849576723619287397319162740171146125485820445119593308276230755787660965513659727962314817727820340877686959650801989847929292240586310848742141496334283532491210989259058452285886958648619344186162234799818869893908104275033604792153536425427062584060521242607115390618459235069451565848771270581383283506651207866420660319740571680940890081143032269583631724400505260713041736217027277167328193674189948306899903639290599669587434265748591880136519037592984853978552633019395549894928419311880882201919097489520619612470650669867368857074270735314828833178337441856548928004340402759392991124338977758268509903536259848923642834797094207705744408986843973146742938183617802765366476775509194573575229845517094328761443979422785376208147283611377623569425875283294977697581537872971105114232169567398377542714771812742937647710878656289751936032827370903121476114728793327710660968126720146054731829709415557011965888468994232194205764655736700498443882075327768373506647428285818554795810162102732685911937940687916844653575737459030983653549318057019802494831000566884030076643841424687093996022131122186725715215963600534291842754957612050901230935482292706389995425240916293726987150486249320981664123089622167669391156417942408037156895107819753301441116240389468262215877283822017406524955115688806837420552205477155173603462461540527177846494550961220777683097916057698577117867594020375348657594072136657961217319537213508489619992547842279671275917362819867413362994081497556403932322067849876580728379763117255379268152921199477407608504947788188702186396890442009871323523618969610691428539997244821315870232100613764123184969888282183917709844541750181819635942931864300350229444375283125112739904210876434186204045269635855153732869665765018532962643720446958417366123941001753666887392403075987126292562211124421076785093364781351731187859174590465838029115905213719634926286729497793200103115868742051907100030401840746180723647119191499554560055929472976517289870616018659967725898839470146788302381865118687947992559002237659490341496749519574238664617979411623198942791160462219584086935137596474050415438926212260393168117267617983610546395258990389712692985937515366538919239193660880012945984730387355091232260086330659100612141966665363720815554580034426908280908523663526091542242449825522898388474913396174287530698799540690564574955485021798073031961947691576332993751776276553735214766819264741173203072539442774654716139000986262459024962089609721814063392545875160921725820974773256176379232377856724962922182348301784817886289780072869736159685945717342886617937028493357004913084986756370580358062025107291715263666512252030513923937226936150350752981115656725892643980975173906858231773376077413654395214561679617190702690152376977156114855080116675691451363387674195624966554497356206554826377426331090263205780747250898826948934541621880956704886516619184741138820524300629737704981598369531049774162759580526772932351610802509598703357288323611326772336135506758986846151158934526370669494473869227979112713377882475520053403211668838305179527026021240131405412321223551004561559287289230499420762590306146181459011533589019032041908650859291323017884209016859227987041804421038082676852416342571566522879429495079561520877282293582025422437354305684809405321172683639569104568184095490877486347860095664502981054536132812119356872567332254403822850126423072319732073785536559717471115536804511407453082926112811110169741681337652296598846475741830395300406489849468582894926217132070397769837582121656172265986622432078631614450318326925127892377992516354189712786313699099465609143949954370077162998435026642530161974581454345632781245696708902745414395517402952064602042050388022288113594065909248832865383377412191124520178440345159010181247910413859737716008301293094872505193182620501389311438271783965560750861656147487097976349451113449258620160902446562658966599413713308067628672940810538525591347438675310982873001549683889979140097268305897725743920606457414056637463217190645858487738554966311550803711671207465624910622037603874453200606018295369057074985934392886473588638094852686308229956250911368283040001717269661057550258944269544701219202484616814161750706224349845804677403881661928747103048910449188269969083137602557865383335723125573751940160099483148541233022562672038820430658122041249621903723862015522716736537077022494494283773180049461769042972192155038087943479236796947527780061328703564582080301508852200222882199473839779612669287808111680115976001926757157592637271196345652581301491666155224085564386584772930724015409500173716201335952702312504059871900752888498721863498360509420040522577152746329865836572281345779930972204586427621442398576268221092731374592947398578359370673296497679614182675164033731826484543604369806693862280837279630136503242451539800880449058061819311895920183762487801669677309339919781789195782869701130226196231908802885459416113055670781287291193635639100457022167862230815187398902030930033074767203061761769976643393447036501989012385564736669036961499803274484766508134773427792036139222287821037524643628947035695647289555015110919763988369926063087952868553243118071320930571485763563323059728043962318152418574376266450155546898603684242189223419558535555526304141156652386317578990930852942718191152933474058008422206480663727490669018538627296512672001216713758189801306576335018275794756244218440850189265284511296520788985872502875222852577648284139548049570781487918174669979846112332812545161231509611646762172024237055317464502137354391382488756402602027254062906615071696435875462404369081985409500597067389539686265556277305945160796166704167108717813066800795331698332683195069741906121547763704136239902372897901765072799064561424303405059760569561668820319107734506607055244289661946358971209280596547291121103412860911338162742092412673276595271058492947027784064694050379158546788411266340481056996192531395402622570410865088516682520431505795921307697723535456775278021638254990023623872257129414722302269397501667816850815558612781826130513744120022569199031478991140406603744223764377284632165798471787250641838769883612695441638914019294162116308196527079607415612598178932040242108661717943508985166925701962900129496147306367594766004354265869935248761736277643046655642944219923383149048279840555274117921091737686189443189482210926440740283780593590614116792388444317719528694040676956253444942849664839246155272325136835385322458223449820089339170861544886219636615200057659235633391625007934347341939773164511570593181448088286528188869986093460472169032582204845174559583735722777593648083470688409637241015486465964893520788737313385814186662650323663851020898567627014514200211215370195875091122399488828012298459338194188245983045134475832558409500079009323642688708983766968706239643842634986066311064270384984829628729228540948422724785967243142575458227717286538321871043151222618591854490507206703272825391175340227127633599170305000213399932641704763268517675053556314577719631608975868671405113865914407078436675902309577654821104117888152651995935597001196150300320423798194866896667623333089094289502535629548540915458901203800143503603388887500591450679819546860647095804342089211132581060590015781596898946772156664209076575442847800074021200117994600307507891911267290438354890826800713141736895333032068612180447983934761178922769609700085706365870870712012982873337413459158447190527455445192045828822681529904590756503989184495911672852910509147169356222014980634311519965460065815399700166234262232794026403060377015635932951209228537236361879002901545043696353790288033515178266710525230155848599121270541525634898725969604939192580436586756724374000583578504063975001515868467841128913758406844946623796466436324034127722642188852901433849630059089377221439138973975737904971712761834802675165437732543567058500963879999149793002854914207849063018052233682239139728913790115766301436938359721134617557196525854977956753509498573298501739438614994185548158337042544959318717006477753218580606586782060415074149422254787552509129187765808679840402068324548129043129348669276934100906135419976595560078027550998917707008756425103806822843530508345660031597524558401175012250230356404841182530918333731057345974022341319331797969694039455098512173999398161651949696135954839002000015939108031721286110149061266779901682575011530399186263404160554074622332211802190528279230604634627087771971775017759151766922740717634668756751807495794552944895351561455180158570342986734762170955081077537668565035623422836483294530532285341431920486950077452460418305929828285555034588941117909450850424282007777201040541044217908278622093578844233925333695929812359318388848185000550813377600451350907411755153734613213158148479832698089987700992980343514030394892048498834106537456005087084809316998512180130054829074477944076221045979270116787622685403808327316330113841992246820923920329823251464144890337883483330543175231616126636334896410170563030642374485225167544362310351731556849036201003716884676427855090151408906469333270794312263670451428120896961004020070149937489711591756925576196959888155121736401034772241467891990122164493891174123137781429750360882556191440017483792944839502640232767156518535210883328688283465333853058809860161411667623201920451542100528037125008130506114669244671080840086406887449672532482518196481780582730132209133884368188325949472409532903420570735378673424038887225957210229139417398889810159317978600199782760549276494223638715760751397226302435233133906943902282454213763556477653877562416659431513543153133350864206779737556733696373890042549111329964157832716005919086792689542185006726104555200878996032817725889781340221458466296005293474022791449630709882016362344152827791654476837693295896989243742788659730518061480791034858598768132172796823313226237452874162530718627460414371966386736150782861828725934685260557089514603885061298150237980096856330251336781681348180658809174902985790224309032376428516920985316468422844372121750575229081018183976750986424308485699129872609268516668992172541409049444556724287189288492235692571439958824534177548986288133509438833254400336316630378657141993821934849463058305027902544313275703601442767656121964742289845827566446784755496280240629536742826539091522195415900657743481835790634322519449650863645045971937432435888694363927514890961606366436626355099035641844475002442157203934206560674624424331373955525373058540612756734831927800729570808451243216639362942824030376297710460962077668006156909281312092820888033602512251116829009689529861821187683768368998813166604880419926147976599129200369024555927097804534022645149969898352567349249691889657419773573552106043296115645956394485130062347858960841427242596975368951059987845978080785677347439049298464741060285085024731171833612713316716444393478028194836312101193348662029722780769197797794027464448192417368870693228067385868209212169538968187420992407924062237798544909905595647061651566274007932003687251803813500083775015027086348050488216437896723511362103080216261830909258099560050058608975734361941217745777616249980800223171939507775172734784347218505258459597312717778607272523356815563636618955010210291051621592625169361765426869068612790555303429877979277744492766855163295330813672360638518543474613883905259875697663257122669681016088854285305456418037732419779136318474638791259317744506037691824884557581356607821539740584079053874776859811010593841504451963562345187944713570682321082469039140302965458941304253913974471324641280165427820736228364424912420617517869279096050183191449693507922384495583846094328357157670417194522247703086519632765105638369994572695410697120780514060463740863045077578511476935269295320601251528615705758289414203125038960913314500653095237222070532256804089469423148246593002610102839847113916354117025388317055518481686012717004456015475231468376484512083265541923879559916709959034775543474885358020475644098776778159823336127823858699707496494837977549121625511521663552001176635316104167466546281324316110488143686312709404933728192457470624217781337584665191730024397010432569455824850478183501901237952119752984989745669404978967098556820472101298422486474067302866361273144289273600406028400996022078773719434875865982615109453188330650492102678560517182301374123204642029742131856786916778856224934750460946647584845060198277165909372166908409582893410683772867432604632367791554161103324951787352810234334938435349463083457373226866684098533139311253559668132467047401410517452321905368185087180145097512843463753954536822819752409350246925237606921528148517111571646699711881500848115098788113125763007569276173609117157487669746456970573143423256459275585915497389141619989594114715653700204111898506814878716156702873384592265583540400146336213714979690884140960012229241530337189562936882121368449182717994109900725174130849550038437727677454614701784469305715608986999033341633759676098049835696961170141217120752381618688710027016012421085956077462388529959477074175451268799814899489456018620184404601319453721084144038651482117065428291712836843497037913417906359269200960203769724487097789392425846510777491038515275611899440239521872004603003651185555998602809330740800483518850301599890232258574170910552203385256037066703983170243899168237185830497713438916725168448323369601789728295617189679231550254724371176533158688276543923576961961529590489718524269958970197425897988674838053746518706507048719549547542049945786548415691768784117510756895504585022639861650688191840715966249344357380980514046123732006664352648404139919665131051273775792633655065981298333821101007088459982420845292225135661632166104347361528016013194314610589930164499642307848704565275916282192829227467831280086943393096982480771694190386431128991060433883453261290207352075623769126356670823505047759573335155933867847311520271991788307641678833614748916466692806220705648668200726370147733961544955158204382403631184670781166142306686381704518298924853664277979561818711694150936526927604383581340871117993363887569184178925918616973709991879862734310818852267550567162433280859063586391210614836325899922792206773957452891918488779359460643509641842350931100488173877723308089291920396477122392360852386434535048663301817961418330426184688331841715011798801653314094370166856594925863984227670798945352377985980244857208565932109686085234490631884117560651626951131924139303119148649108535438834006053671117857312235914404474968699029355798478850384006709965121320560283069356025750419202622916292702887995801494880727214652752373407864051091646804186283431282979755206007864116308729681216620403464703964642291275058944560185748475140210684671852064841765004904547157310515569654064060747681747994955337708063621099970700110431044916534245493018001205237913426934295758386890616841965228593954980499133837060869979409949965764131990668532880904773923201759452133277841625081727929433708478019613058989015006254171371058590631931002558461068674822695805035235872552690468603357694396444783849863690113751372194719788278382063935838541532763776821125467117806632251453487084125275159746882682367570402710210481123858172152965458752632207554345497348411075518459208030374274508563703005472793254276188440432094085910394140981761082783046153106719473060166799795740142941920432428536730073299607995443706575411334243868890909482354928836646277383562580622000169168208207327691683163507175129402485298523806244443733985965844966466725544292953666278801799720875456586967551137828160911226271023375318409328484675270039627317647857700725239425431743174413965564892047137897743337107034756353888794365968248463700970991647147920800828492173850213257872834088123021660826167905268080238569616738404571830299500334806440412774815721017574937917444739835108131203757642523778640806017238547202026291932027446120124517993148789798948368650065825776346293708276033048119783110552817685429485537372720877040702700648594070992179775153981797769160829381709481177116910362037697946896087524655092636049329356455066348795475492367893396532634091599116349812848785500582357869686681552764619136251914238319453012987853374409614832059121090737090761665249884249357981717139624133138779488290461379056652390384762670789381164464935674053168719799315319799497710465672173558891913649447861502906317122909504687132262600477632459836845907185408349469586402844655793718364830662407700736189901581076613366328845878169581918188081873601502449674191626420208435028710675601547122433243000538713156040875888112699170810259144784477355716790245500968471181852573896412670542210271243184178978613515931886873030782604695302182353070704362397904306773567244776294645702918586014417851241422347148445668431682555822658744339815844883270350256276293578037177242096767627338468995470825341853502428606879583840429046347041179553582884693748832251632111945315978248323593523983687887387875138208497022045617320756420277789133840642963761829002718669490171702215550960369147420480529268824458123398350921451452993919266552154832094942415890723078299724503541598106568727843122918409406394942720103348493078006425391060656013013872060764210807368769475200536935317657592534488673972718196704084809690667907006336103879984228312700545653390351153252007690575370304256448733346184418004296346893424489204942831970797423879750083151748715392389188155762507616297253900828717028742400923752803484424648590243513711257895073296969285336056209199040164829276210537354390926062898432965924581571942250544027342586542758721880806633541415099039028888858900884848045108890015864899793223063344259001106567930991124100383223380863814149192085983438606744607131323750044729506908680213791082893538002833932089025135197417482241971333731585567375668741576631221109374477720244423019710696776096005321706313216478453364944633060043370113292161333623877076367473367042002323700058433825212725049451756812617329841335974059583853825089816822340263239977311114129384369078251684911860997159141285179896196361550056573916640011387415711290637163249789628144225390445725593796402302729275444604973877717617629070137826306424153966679530820290296628712836283720424161884279429942175117980635154933917812571724002275315317502573818471992846138503056322883137223877205757818225770009733324463538725730299138046002402834135449152771665539720511879614088248637290330060137838902683277414756809810878666812940516431593786767161828411789921926990590056711948247080227871036610302056991721009412760442500850800632294409568256190524160761941388274323622100516273388755890575424006967356272163672813357019854318955460189402559452532799641555834854029248334922642779343956473812552356155013118639666143715572625247918737179883369750675208775124173218597310236483302356266045981254716075657998398302826225308753178488813711098589728189494633065114182801434754464172238692171318542283547270726869399775466878213362474462437938311904806745367992177041877320028402844196351339526714503758971723107756032568842968983526556829445516582375110546974886846391059495739835204361082655620947214139104255384668466476199388015971482645485204574506322774588343738130145604914245543872438913233518299862628236882974463477617600202958449775484148842054548624720847733266253353634842942249042910244183644190350447496846013393965454126285499860558857129176925490122321643434412221026556039679632405016996434711591642307674630783437214390514874269295711558267690554670156216962920780834229763013793831738824388497477981857471835154966130980250563445950998824410937595152056795855767052601691570989662395964399652721608384196428605235210805634743540566676951273603115762018903848359255998057999147216474789186013994719685724263836178191036702381180676610990546310142531559677226203076296147197729112533219201595494151910134158935196872780125011736854053879595214079019444624292271447878901062163719588905664729671432592479286729882201931350954646263260457431705513517030626985313671184375301246174613201145022402036745789665583290391645861244993437198857653047046949064770894334600486838003510901125842049603457020996226559099604798429871127198168962681438990002764362880900418975805916173679635066243733235429242917904853135634048765448038206412242066174955727823199681400138257379174958587437205583020643913269004774813700464149129820517607142952098310038779621857206366317169864575725674401836330853912799548404365683818142837845311924891478492750500654627748422022262315684582067987341826666040840693289573032525103942392666179176718157288483419204014577011612257787316728080660500599911563327737527375391941581944068655991179934828462573936266411139612531508595698097664745273898226618840106002925014961113249922994958851209052436965662423964589485785569722036271764723750558096857541842523842888264801244971646784976398623094396128355092020537911506166659595477610098956536466584193918023117650584657525209472072718776075184073711047004432897874187637144241596871023301321583352573472457916687898854904561091512711053029232516062511979767054895107897147926384443970817886754224747355636975886423472621327811744197183636723543121857860092349469541172403858760066545473537958062757880614265751875040465261587042359402679257450662764228849159361798972885773567691162459782597935315591552281472637541625678318464865494921406071406009889261948072406212846794011989748549238394641940211003317338453211942373083185219524879828917508538318797257147055036148537017995357013237975385846859415762104761052266335036572916948037264189432432175451032479638429727224492951582412469952742790782286477379915586952035264832590559690085917179558760178616408524715488749507947919580742336739459736456615320184830271849456229358285402163183050500450616129991036862999715020296230346131849332263379744750176330911346874202757308507393197642497687385438367768367584056883672955182807201368593737137551504806129545933237055934371063369413118268059296730540034741003009395734797751760592176064568141805349095178624387460141870823642132605021851512393096908520884115390019165753682179015832623536295503848024311921569329704572545169362221499355814578494765958558018360925401134947621736366342100194089358573687928422075573972338066932980710306809340996462047921003765147589655736313178439295984616769858257912510105784289749211626931964705623832385963983784641601980325716984975858713818388123216107439388123236680238176120836550716948829983525665589691734799200602321271767472447216283394836132181544434321692791786711085439913510826391257592159978309313339482690241408711377948978953054322008416206781091594020388150973151784253679907661803328696716415511342658862254257586885810828024649869476481483691427518809584230594508748312166777456980267975630403025458249846412919380582326463829426776485478807226157906138969571752814770546606518918833317750698016717122205834545086626013825175191376493405607571727617575209585839229417188295175512322138229497975602232239276216526037363577542637704000727928569886364331582014487063500296077947736427664003856664777953126112767841289270393655807172820344465131045218006098362137144039546858222717123509488381972881908111567100972347512419193515215290998251119917101876705398936749546682779974389739374479335919125888277634249868131366258422037548075692588703038972613026511699252731967933504350584536725622152493065222737069524599327697843392435159384994538902026130955845348758824682482450343539664302004738460797349001587334449687795322493832860716757683166706289330524290078662376333861097647454358105544762962662164995943884284726793693204989638527549110655892396285492475690851170027831894372814895315636612545957578382028175584667100413920810579224895879928666883931001375904921850653949826841706018790151208550686422316195801868466746569933608486968865891327367132220742473157271895655613032663777638467377181503121681866249196780924537107319304555119850597057604390325731209173107221249900004365805345658124311152476312107595217007570903727531636504309512759875944588415281103215464328526463995905244825581626569993173010962073528262561639729065521439760214706318418469305681939309357941219578077886587454343504968848576757619422149048590504555843761206963324076057962027790334926839972140244665865738878505924062592798317453984486689184693277812460884547727764500790128472772279624796138793413233547696519136593156265857483472001692019322766302426649732318309449740690233501838716775698926236912558055230032135145770039506088917262701991261472186310103289108432687942265914118472706605168703250841155439382213406742646114195643010071851413419367601067385257090931645629875729152739664758272838877489273559007785407391690550901541185357616681151542858685124077121970285254555039058402143194865683520690935152372599347743864053322708509333467382477463989951519571379289901358661940989366416111918607539313264717189539844726100301144305917372335863150997696933638860648409905699537792292519897381379217665408474371898051349713182133194038129070873533312720366619152710029737232161157775274409491454770684504393238364520263366654128540223382454263514576010791925308621480090535799576945646903270476601294123403739877198259805166124104006601954987415682915010614665969325379012961471568341613389169929966362889083529299699239294058598554185966284936191286367972771409812607190572336192396370781899895073462523158580892850142277201810185061116856440114141140528636896509711572188611488853271909613471999468081649583636976395449104100272473257067492463080910791349786696362996758567820153774469664227489036668379118286329857462674540976095466787422785975812626396550456753279607534109904196438387342629833218346343778569150875067973129313407837483266336774891277616371635904542615429937875537115204319309603053527825907306229279502654620896792277774366604541011473719652168786341451875507554109342121283148765968839957778574755304953038995523003972738853420026871255280762021798726819951943777345501659546099810360648765953914696685281687879247949713509078842907735312935271756937135815841712825322118020004217010493851487190554725591905442282062361921153160071139121208012364436174773206092212643643316503581086988047772463898167285463933473429817588565545000232060846176678784411079430184215011210961728717758163387036628730596812454426746544768616294653756128261212400615294437175252975909647739110799529811009741597353478820134460302669517665174738788420783296756808824159093877373469096259638279663369788479803491986809060364651344171501535821835152922050692346802288352292941182983288780513187087149242358415847317895974601213966436986598483757839687125320728162241720314554739480359841064556500334238385598833563575337564182671676112318629948394700064418364173568987634525269333987078960685632846842773839979323535364161084601077443307971651414903093947771910534519054886669306576302601109151961766989175099609015408509226798510275349808694113325740594179039021638771718471007721128617530152114160735728608921243787471542577414550482547971337537768392071418755942908498920073324446336885027963667308990661188819325517196165344829856174932926162522826472332649250295325035165982973390505739553098616952282858557556591714182126001865678295000120038219065612393830866877926077263087632502277922944032717672393753446126766008825673810667051195517246385049041846909672279458152892695310182012707647315186384877942837270698090849656587307481680607957872453580158472801096270134946350145234349550879694330627521916111472014600706179981641405041937913709129301638629419421359201375527209305636371879681308813195560879102153559421670031333781917528400233668969623612966205481033302900561818429097014550229195094957949497688531795060559805162871586352933552266112687809494251505345464416408129041134325840474322361647960969956456508226557398941390411318066124878479753626882141828436613363600950067654952731236559540104774439752235518283633169121550954484860418668922555094022081501331496130999973560879924545114401904802746080539884771841147065264024344682903316308898075756238312673552490749219097428887698781159924132119047951084927749268366997659321581779058405408895739824945460118455435356906147959960944583940818170815878296712441776725736143391110853873047369116207155603219944454795734818555552895171206055441072728442718914123418105085848678167340979047323720113040042050202275976275106664961443855844959178050548055958480529644473690484801066184742865852667403051384169180333866353891725403676970299077492675711411257125925884749241389079601314756570112276443384739845282229642281710742738881357751686753281884097646541963609335948015719660329610625774387355960458816189203670331271162360607370329297250856742307073505563232123569595142732375631060972646147343405055480442397902147967547095219704431178461278108076371852820070662192283128696051668953220279458833709859678024868008230760926594423380751938907097725036100420144772840673059993609064396168731470831084366789528268234300521727814772060005083974367919950833896268944995841722196946374192257477498647376141972580188108311733234048189291323337325251860809529801231921873286213906140712279563410782196248398274576976643877656059825927181258806647390031346525415995848242983825619774344170928437227269854481824829371705032167122723588293322577812973568154727438782290361690042689316331624412241414451559651767220657300016328002662873947948439717449480141232960069953878656167112726632724011305643047728473679177869695751812765467364966221075155085297002884331698404636469102305673105284448539959827568754479087824812074800784426375596100113608854235460196596983997172754999243982088957967429061212467869197469027482417057162455788226679868151235705736236564784788870985985464673455289198840509482816713943124151133410522322303986362082505039737223794946009730456848937256681520768292003498318166268818357137960125538813295335630633157431528664792008199554860971980752468661951663982839708260965814225015368375519894755870065279103002682923639037842644998690574668500474115233297829790758589183754694974526607513977927432284377432448451383272634731761002986117414353620651274165658471723341181006646565110517811520720611432327239625998071218430515892147677382982305211512635410762031631502133190510190321931472136820125223510678357540495904829213460194223280217513914453578339562622598344466131982334952743996419209083962977520897311337119330355722334831960417641081902647453580218183075010188614122015311099889086188571261591204431870016806973514173845228332677492834175899954849216941476934599435772690956254445504031058683545227433206368223298546220727205000159846728205961768943141852246263423118612519059096816916190290537848340637425971427430734342224830417948789811391214971554367449200169762827853251647839525568063407471085171067748401800422681767421377882032372948212872108352238601810063044078124350955975605628972186662756586344892420187090528950000909564492474591696423912547562118669644738651589846319390325278506382487856005119488973317598968816771132420553295856279050928371723357448495641793689503874097590989358080846849964532637507842646837106576120957787883621603932660851630220943578557631719370394155755724151152628073445224251287257561363330289336807701659230837415024575808099509819874624536384845643171330249625521445601509437457067328874962953868715080374599133555035134071911697871420325802935478972029024349003271222809174580069856051396669322612075610023404707485655621404356331720365619819084927713625717962607615160720500338975906956543799226524967518314150938254896757964558686761519704965478425376209722413910375873785033600631987493564202561552561822632494329676963115608641179599563350247951014583862852451996354272961929463952539967353440104945574699010717469616988627160789049179375638665058666276100230766225748169821114189186504113824865377971896377869087406516552218745108645328421129769436660141085820832046416129382308781131565133967456544841716965235747210010333892098718493909039015942707086440447358686301788576880717480160995756207979378536743419686586545804750679173440965984077412152698510521600885248583509764196628448871306112190218298121852452494881794488451382610788947021604906647964273691930489737203124715909584331212032894046447507139336888446753141986755133610828952027609129988117165792393888554372377909350804991062178892563858885570387317947013054346161775951000056758619553602842671575332676402231357899319732981908692109578325214731267488559221127217141145296489927364170983789841144120510309089335381739873113155156222197399509461014928577493720139197054326362105908347990642532339337906305760206277845825654218601493543879480303475326856202403321054394831188498108122349137908718762730062785461118596288794622536026923358644717358188711755991908604625779403900451893989635805503256867210446561317348134556226717296009640867909035870067372734733863939582234461382320450882786464922574579897382700426233700051761465400447380992813303207217410238106162596228077054915668319316021835375527787403612908758417360647407246318316601610671106750425653959318201185739332622767098825316137916417660247371180787776210590849332889671537371169359961451240792366231257378076047632335694546098979203927564056088631833718153566102665663727493386406928264799918423346309105493436462031811907269410107504809537795748259159297195849861133790890912785318777878653539687200393527947311032933225374335082068072839911533020942968151731160714903890698678778766781425407401345229964170659507223343430534874290310236883214151188467131346410263811183954228541572442797916057246601881566972719947427364328542112212804470964764835166785017487717022511871971009825486853833406732521407362759217902721366532200087355819313940931867181497047197769590893802116419122111895770204189121107251737124076868356231186823998091534613017975086452751300332839024593821130208096573830363780846824183128476276327304189389609516271243802771937829401419579931934648623513347529828064895459396717227437533530724886342248985692302258432051857129665983253529566401322813549145467271921876578092801577483096797825783018285266433813667195567299243595124880047844202665750738650492317177742344977760873520030169908518450413185595743232899972528103892974993180872377604165885893016721286767403623366216538867869953149557146720082246931371560547658969975508393548691369388040014459350545551968356786407538056101186800737475371342260599430577397794648289245281619864545843292153603906864104243009543074628110582662984828241968238716446171313842270921593570908026381485951709678014374665200336444868566157053429585381898528937309397417165853832695512518580325758655145575363273141251257572572628016094689153178151431086607167593850958342523831856156145887792695175627062012160012332221343426797190451498646809442573868762116984104381503009019651717265889852779848161417413374604349982868853538530803045529602614708247667874462936476956378876617074474401295367370025044563897117754749870134325483281051110091881667976076665473067511733004377840918127042717129353737391910776175032855878860596143822848759910187313881936039329390067439874102543705175616524344513055915553950199242655062503720924598825919948101354327131214303504227639318897644178784210682657229874025692613464853520173385685177784459234111493256105593169399487197712713264646690166944042809496264215466643792711149994780618351912725368957190958229851570529458947953028890762087643990534026915396638875565186230821356951734842703204975078542072940497743864752724314827584095058386093062123221795609827416678964040326107215250665007525166490212727054599844273107588238191676444953271620745774154766369498484511131397280443961499871211570750080833849359121912907882766411360686753973468574242311933638495080241066954332597120150914810006397961618533098143198111995968786085891075665218418107094157331577882667239329490527038720291469568356943659848077079416724368610047923994229455825231610302215629358840867915290946347003989268591127603669060633662158873308654002373672332866400402787907366275574394426368889713128205309187624021507493975614091723895064941264066811087558882663115773591495673390191767664485748079469191268769711612039987963106278454201700312738753525573499603115348431439582433734769479331043312965792558464377010265763065442148773199919483408242281943520538303395075681931257809239937132002865231884301800511252052634831975302306790551669430348035669822730198091522427271131650621359511619208984878339220645094952687799387296701928800403005372847252275939920953834013366883923327198189573560017452067529284718470324133411751243103492084794776215934475678276462390046700007225724622454152784733275985865695900639977809054146972108706560487752957218131857550035004367146368114341871921312129142525286854304250461585944507393009589112833823900372496003566241745805145635592549863949653923609422527839955617527959867088495279173936812303778469668815148261601749154519998396235925146542817109051218443048117704063020336884355010788959076863473378454273359474208381814365273596492492331870841251398574262789815143817927904941504534305227023447279705636583733557518120074821072925695359608740310596117709418517993621752731982375878865968046505441328502046892444008543283223849722417995602240589922204623132535805545771352804035097166772292610004933352859455842241473955103968315053034836569088473641316987939500233951164919231375748855977271516045812013541582038018074419509356556039920687521881914678023912815267263591441755711273914793914581540714315736809219358285884950430818617783126732815222155554629073194352375315821663655197972580043807929652477133992712536560754495112376471849069261464258421384655609869442447951225162660441909845600348179474986723914906464344152296469521984262841157228503633126816027150340004062999459257263906025276087091833953129111845858377610030146290266279938921260433268697670109635127676627220978003120984130109127004021918715427267969488134813685102655784636430757789786885479156242361083453829838612376017103850511827564331991062103498289421451387581551221670021173793605341702218628586035211158548299316014698523667288375745992502567556596958833458152859838846585657502519597120278265687670343291920869180011796993449765428061069550168101739866990585109899748654977420883186452819663855317408371650622809362346142362818222615728131046542568854599631948329583204483701181648270055180461983640627681646921500106986157023331351162659658561251618717392908343202465277759623950458480287915462489682080450727306188284249762577000309929215819111537920568329870310887502286677794368363882602292435007219457137445493547683952438704388426822315727869033138057453596716991850210944296271224137373493392167136521472578316674135511977903666922952224511581505448316656744009082871713707844103761509872859236854345191096360027327610838740602900976420637155695744989911231053597308511595636361066226747481397841333150704728320098923656689465078433348305514024173245720862301964720768573405298367145189771293498104939384158896529241363279411826654819515631371349423755847640297033457446549857871335599089740072660602119962457834900560413442356458063732382818419886825855900564690472418375558861340283451645799065873913745159671035336332056859698764054161142461571789821838582540697122602351852221523225204216655452353429766009925819195642970979683231124562840898783778503675060891469093114429371695519054420786563887704913243402475875712390098195508580306501061244963460346903744494741567755133244273161826474675553523028848116672909228674201632808656275787261024531156270202466549650119303631872179124395013222129761729177605239368659229010522468896366467672452611686014422906010304091073519130856615589476566106173871335320532479112530449364700972759631227333145237360323553504087646158070852995818658182023960748706230260723067322593706082550469737225432442634292907111418403172371715841449827544251054882859407872316303393820741796828572038418078357919351793863884416929937581630827238960480579624500517380861327660722039911170403974500522858984057503172652168263285518546187499471015395140918708927320666977336354876920267441047124289627792170890638147941401637205507991504517305989569303969670458647841296722290477781268199208727236543993990432141512283700868386803744761998588483977799259206356557996995449030555534415981352770264247242020257693518817236928167426859644812666348891494696644299898547909227148914124866466436918184263894045763737544972089844115072862712602324789874448694031908818757065481136689426688942836110476173919432752782970313305902327974229864415801581060075306202353184686349685470117793197709292879764829804776542724609834768495337621996745029865872739750060590388791468416293353915964777679015960098193252516419729194772341503035910467421010297845739258130373647080711799035105347506686320889440961088298542057254252404629987592099868985273307122917258993644399617813998340250272397559480514658524490765641972073252944139450478233280753420943063905884338785817808469046469497519679417617742555575159555647083427560843623336588408801391230495386654240342426477069417365660669808507187907043251871248588845947638958597974516472600523973191249664557758373429431464279759690022029843310341742507431459791775942432179280667581149161069506707361819019115766859676751993369882644112690598438865888088519767132350818542728173656119563673457858398247951418092155141224769784696676516069508615946447963416462413743823078260120600137765815647414516174864684513786243904278091496234839484184654417036775685563056496948219142090448967313300979641188649025035413013582225187094897559977478030584282617988938457628840878852397550970584985126767377317677998612807805703679087897677424669236609285940207252845384963348408420554360593513727856710476379202780126832010346663174187519119592894881134857121447082981572014498895805873195175720290981225263257586839362943160480388457596939589783388773111902964071580664868407516793763453502421607365057305126176048264678645125585350136308203802078124080987410538351169610431046587850142295174283549386134624300808265948043852956643741903661911263111957030188838808574263822924682524045738867424487041215907464029332969701394478751780997287099374858702827348045184586510333875929049005956458806590248400100790207261919120374912880067214679698340015831062888286589672536768772887003394115832910967588274293463144115016544120682845198472677307414960847346222969286998344891367300342301053898528996353244152569434012022640383718521616728256443794625499231013499095602390716281959160190871387541132952858139009026422370209101793455957845613601059591229745502564185280354457794032732777161695353497444384492841970095799518768508257568090431446189556608845880017279068117878869712752816029550454495096763067084279148166895343599945558117568500557348731277936081265067713235490835420576011350972656034291024407965378985852145315513126826998215493483681264365498988281700207417165462164993172065354040702038021437437783812295684030718532189009445987239099959030177546775016942123544446206326802037541017906164933234395082356250810689496804509932707617903743405510534155100591191559177708494121346900148725187055557068384130672362086849386138642743612639393903797359974618446999190743712098554102193059228479319922841588898609718866268518484845087723118317907718599260461372134796498962554639938652068958164162931374092275077637017906180145959923650018912670942965410755691149395817349132733008308797447578844162445615360972769860671042702498987229765957482337881943216718311232751925538685657257642680357281602366683452249478443886760919649269882876129641389306660857243771559143324346900285004210542023269464866882543570987603626265619706023395166320151337944624629124402338652179817636602981760021782476725499139621702589386513613189351251276879861128759637276507721132821008075956232118286412189324706559370653163777218104505276777736149521827299469711379463604495086942193277145903827410398139179337216902207637685996258744402455148950809934406372916574440806222131030236807159708895724664721714209046925607732306348989475024433825054448298204151067765336251093289381902620887227490113975220036625234287197424369865619112611825260616077776131917028692594858650026757603113083306871771336756232895453742159967803560758503476480149192504917838134959562736560325290097897576681530294251560755607408935613189478505144325458503984054245445990133725795328097968777013680416375319113838695100337360041376559929494060450283373561247195245572517937400494870588691825874495852363153919938202329615913069751662828122396044327125402076579928212983962380531858297870152493348179953876177278171522225449694106205187585771955615841226061536163020098187702569889225783937081259046272524575418334616095386814649535160549953472247933851324520785194536775077249912094673695092129685987733666438293770387906067973819023026663722064350319936818512794250954299005556869067079650629292645080195469441802189285154159367998537575682909521355189396693533829502264393880002823172184528507672053998253506702491630773734326088115330972615448628041565607956123217296986322982912232759619578552444280346690174911415279596500378418628235143314473502783624050789738066556750946388928301470803980149514738180849849220163991737944408574203278057817791165655809424342311094855999673575935801895747637725743415474105815486662558924248600720673732801211240368019139913784708395050098788101651958387181467477202049671337104776528635014727369650397357961262935685436961275228815590954960008556113718882598302632673698002762375030139273472010152078609422693778960267281650007167611253347334705923084921292071617070653159973097663287858807952552490835901894393560584796348297924906224360909307667906225574281203012484197146813211623387892680119854648366660537165199868744429276834331248472804089006678475523223866859351673649628516168010938271586977756000561743948568526213074446058475334242891325361827713232942230577214859257514091257097797260722987630428845339715757707932907867110171093621730705477518984496808944868560496260113395274307192939862015579127864544557108652336714832261169408683239966172223480878446971938233831280453079229023577106990300864735496958665632182307192603994030091056374412172400260140608975749432122486405068157206852851182932932263563125712481196182440461788231527285018911107171026326722629353126410284714539308432952115782316901743204612020274952165037178872267024482625671781387391330625879888119827580249955645662785728927253202717363249993840239712294969255362965661451039360328337735464770204528345301582194396855713455217467209080893752322689735143267418586344528565707639949823813932461480410839556535561122480845048679193893314868589915334498820688343265649784602504600802728222626556723375380849302622753582597782471662740318892797872486857037851998976367744316909467874984095567784576420690817600921761837469004153150623962364360155720111474533197089614602602752617212764418318403285449062185925947854268624537586579001352092087843432907648584213673408300931062715519180101383992464087078727082702537045280133752326995396088928422782522893811548892674122032719988176924423099575115632315676947668471506385404399554305775139938619185156846582197165416720176533449595281419034658588810594041547602884691220346238612179625850626907341255738557759222686867569874834506080469078175476547461463371855383486318181743687099271332941397202883532205908079292843264556671629228052763366575033393057027427508086454984829124233951140108499247075197961108606836881527216438749406231255316906110268250418577159245409538866497322927471035490777605498032273497335080967699047616980867948342476488817219720915716172775591729067801732582924336295017867903282443841397101739476615372444264377874115485751066015620941049446597858590466239316089905534209534722840628122700786819977644491945425555315033153574897509034712184612505445008980093765248228898117457191228401058631153591636410423466527306399123299673641692125450832816394019710158453603093652977842733359832193517358374365609906303851525935323708647112821569168755258871644228770724607402813815450493483425208451984851733814469952317896946446756306542087345640845323374712775004519502798100446619722537713082788914916532999009006013860370759525795642969107699612904484363787799511683306359981538498670566799076795977482285079210244980465503628666169055880954380021794722207750119764179050155017585130016154009624260081246422386817298175352653936944533459468917910427912669673740305753470823155541554762150885160120136922662550847898224094550315584528115125031309312601948392688900971702049542168802850388812769940988161592771239040976210670108119326884034378767569108149523309088125327978458508800132918124225780533500978585959481545756615618444852918381730078509830260827883222711261579630658752310796201845709831555147452567324767197677781014297807546320638665248179344694476369648919660316435460655663998140539141019670639515856561884062561146746662542263348791209813388060716395099625848690131502416953294653579055687862464211514149373236994632310166576056975931791647837178118629907877356081904107545842666336108474895855516793415100354003717553433475614914041180941175966252546690605466079885802624089813030997829159512511936479778647621951082197019159307572446389273416463756366493142333502962018214478585720878132836371520571117278825661745536558078038149677630234996090776779354571865488041997693046829251946088518837874430710583494941223378529122295937886327243908471274159410729244198957881942419000744312093620185376341257949293070566692593465309901974114777951810872124942930236083901198542536529800016970779759448422882614253477736833862525325720002725687909432045499126623487331006190933143515492925547626412555655466284231778838969557701947055950266108750294819780122822545685515287814633035199001591416105394214338574941922060848479563013635896166794410139138977477127918124718169716195666622066054164297962684443272890326288566669445231008442456444300652304911535599813922415915803241897018987627386930734995150692099126387041554837573014935778536137333563003943034055323176294999977463275982053035610907505163681681951720108809682674056855775309143931896378333267124122189456148874762827220444516242122428383545857327376299227933133655141008613105865821021734664895033695590405774838977819661344798092337105501486281740992530017513997485703771410834485775501144396780751110065155559323975966191302958935008220768759902458424313277137370974501245742078092625686992683621052736589912633301773808899552558188117982294321443045526220270628906247164248051850751209172533129388437686190383220377698337341224761746514696570205578376833178523431710789581084684327421240854276828058055476523472849082625107411374062719046465816422118988735400688842816147586093617037307505268030820885544226978192813882208757838221824743264970915283252489566218535096970560411395049780498097966836738594779258829469890278699023716677134590269307896847466878765076186338545637246909758216906802250088518815061554966177470023127471578223995577248732651474024560513726906898605695593248093974429267930542052515028866148248444521818014623251044630100556103948755040070267702848649036933456259924611780843904883227689232840416351722072760831968337649042550668304121390111413531282868348559495852601788244230150283181189778235935068420679654785447912350108252954394473488765494706892302942354981471803891233053048933419785071851770952690683394400348496639410336280558324855618668915040735077325335510113733275673534951602760959351462596361274198371228905438984346695433665941632563148404795913882331785411275967590356231569863551557472800778506359512831402914807116065315569400876382197661538540013311135589937490193197685396074396065749301887027753451519217350568913006894876450227052705104653000071030149910110987392504534346887354199025385096113548492695999001724430830920726787918488176215056853475329116663450571757262103476967471377377997242634162718959401182495390053767247807704364786266378712947961203156847580968433476920946584063961269482239395331876568451516736812676291051543384931031176212026437942939769073119541641419273794914429280332494917242094744791520022452295674615665051737194544508974863646166757044926565633775204575999432215777286602932954251789314159185376499072234248519354856389715705513604054722668327970728757310042621913946818967199422047858052700867272635612888667341634734532985428262627687510220713852130035741521615761277355018049763393367708382807175885603982453031454393553985325766096191555200547928168756408937417182615136094054074006257121312864090901427824987342745664736969253661172923362666859050090248587584453917042960853462254914411733195537783647132716695820417300549749167298324476653229401828212520497535831496688798636091815696288086431009173411164714928225680614653723278781323401377608462694912471801947699524629375729048515879771989915015723600283379709485036564194483717290038812709458934574302231929561564515664119788078484647193895757008729303523666152673433766503003417667852658820240120211474210475877952553492195844971825081035421882765672667528174552104236458631655838266623774341003154327099717706033639785731795349835929338912493814244018270744724395693264794956327419852935217768773744822692775803069971991663385134016250948514666154154420891697109425869834857599110911250991957963719752078312691793418444614538394409435379397983612996362959315310747085705133608671283428498301009382791926583738042241107097916202486077782100976624859961916148681662295826050887823306316221056725136368820353657661900603666760704684247152150664236593098196732748095491133016467683834776753063746816698341437941372788035179474064612729843661987551751379560234287498234535462460029871527920738816074503232296509523042465480477989089611983094411310418357003247492033347933631316456694763338897816174302885577410423958691158053678504606435229494127252502623572162199837682053027300401525923614558166659057322124185857476137828612135630033678503708309949273725923418979989256422372304969034133973260281070080946003054348105407964218723387732474177463708409023227274364610483551808281210250219148970065558977976507810693730381502695536315871806993680330203914798290606862434938452487495212946361640468881515481578224244669545975604813411054580551561718781803030428072650071035808696951925227393149932582110462224285999831195730658408862135855367558188714653997095376216867604604005706132063830027102672370871358911562706089152957670670256506148950393292478897920910598682197173879435488209787399829073427671544278862604588937246949217096706542675993980578728166220055921631674472434676546216271696721713111442278821666627152975246862098603452553051326859116256403092371433607027111708126961566508688249277767709286707972598774460903551726032353548096655526124646081149881019068955534063676675491694387597515087013296277237299370077274472632694556709835154578656063327178613151169952673639407004054889987726263519798444975299692403060996449495746373836651702959753142117414564231362467973674835696722099470243374152127133583118417374901619866765535826754807192118992501327848797645979829681832809383938998191888813976643790746804976303795413371674958965710423851427465419756813862382187883103809542350180770439730728744854312884112739707673240565131472588566361047022124429342195511376028140340884434996301182659530790826346335705195354438076651343147773184882282289412955890198641293299652389828227210367725213448362081513702219650412187260587773546924014100347866518616888862426269354164732584277341452981281961569650379786801611323070862701318651504991810229539901233877747245887100026034069166781089038928353377260859019537710683027676114733884544845898501649600281940046538843919789328363013638367752925329764435121674671424416342696563064856898203654980430785073435395140893489038949192867130672205799766362827297286716440879136103433679424577500021098404124043675841887482158237928358909161676271360091633003391728314258153574875590420039423883118491640139692666279330809717359139204643360556089187878708361167331836481923494540162369175022099058483980277003756078420785803506337451005867027903924682605389448514421727573793697411031770949400645220936821850527852798031332829371101195400232064122097330987402261208301428102202631555102440680019930553355984426331878145209165132259722863059416052421130705728009355530014237567253526434778809518159366429311879449471812941203726463464190469625994123295190996385651361471830973751780413389512416328034615466961294081755450625191597692211798929801720233410142125775529418462084977862411460498384284305540718278438766581891800281828292454577470790384825690786835706508474388109801105535779917695922798501017723608724084986294824450339162071959181090784374172924592584211055472117150540410758816317919433907307780409502561485104874305946574836374159736714605340027976318729126812753718367572628913968636493919357179409565487656841404236530731829386527269973288318427578054329707596660439424561250082036815030778035382945152765934430581000908031442636935678103903341937190241332923073514782063437482351393254352389259283395159715297843757453227787153447914470113530829822078166395916261659613733387926125597089422070898937296553010665613971500905077007633684022043295645527313374456579552471041782742277061388732455738614546145740117336010333535260772446229562652974094866707392293345383880613942666517202290701280639634974364813654148926839417993731109927263489109409641397954821953495763797709414507598973754785425873132699982414294871454593500070689004478491353702839966040625879800112255554358032576996951563450289462798647773495259703003320979822668629873947853317463859822706692101868267072131862113313235287249470008451128962673011248502535791515116254236854792045700505266661152684971416778809816683260786974695132205773091160162757309711406057519410662769871862263544320870948064190132726277488524582363343741681752292215288230423699876312632441307058420305230177450865500990752632899034886733740105704399951263301298385998219427484469592318313156569435987738198948056986844380347912875237032143417217010500285778292156436450053703692583038040271877797355877075346182455064439077952966268441381742033228426788230441088593772488415793770258778989159075025699236225741439264896075001369132361080201485616183805341526306434204158491956052739078607136317910489507605375057498043113274715857332591667728487570970170080624979853107727930005121639989188744670042456342817465827866415515766530847113275456889420902515040080335992901231174464531183711929663941051630927347358919320128109083606648778002076631896727064645531384723795339733117285483499307260983220807875658407580822110865450941323112611237873740850287887405301712040811983454349023819210971088424446239338926833267640738816769909614131365539501222879710123017972412810783175997215737589140659099093447590173806917085322371396873322404837766335896199475089130185606275694730298743159708963699071032975445634533021920012441544205096200414808738766450891930126988955784761437422141698840879610639794502795609758851139674461726968295462651533224838760490377761303625751207623170617672078597882273903509505121080539150676391037286873944802759243041201761484688716197928187126404756211903907905400613039740101054050790807139353295898099767302136235440148424427369952973881234196830303601493803242143268536743013843783072913536251416831699632806323679358363241270228509159412018443149747053360558018546892336041922701790895675288767367781791552426983656721798981846624069595844776680401739210268309795829088896468354401654054356692305756705231841332539384388369491842580852894904317334013483753670943388981810402795812738723936453292524668733699994024358833727474053351455577689433474144245686302155671642222695101108893629526268502165453620499858760592550231414401001403888379031726373731964381835834540736677704726263103710132817155447380299351011504833441464139581702119066134697289845819029080968911272492752058887428042701551877129821414309892900644896028638760197817912723549552458734772781073421361432991206956607189613632949526040305285136760635814372346818341761988004632290359392302615235472252036929024991992904426911510797681444673133411535067036184199732356060831439358223832803490738496794557414904415722607654593969373803685068308232028610850690580031857213883090564923693133546591293425164063379139425127391784488129475725636814815079730601430698616410709239964699287279398382187937026256078055225254010240581170552412499465897958567833279707015185265008318799728606077380679249083534621625888859881447347056337831167809129966341558017328962291310230380882533199638544621163000746343900967284465438366917942576896605814925622794535018591038863424079531061027904472121374480017305348905530669071498968915819491297311110465700695387503921402830533657931272757450219359979442813878863165794965291589704402254926577354342239649260143697532408693533234974445451139129549784232853302677268976150755203486489690005472718053809221333215500339439948850209250244598141327484607351191244802750226214573545361195814662837305405111827903837187901523830443019202752137617298084590524192927316708158454075316681217050262571039414488008129840840722703297401750681083933431023895567867335711156272257160025324656613415176767661786811906324916694247425012969107394569001767114331215731577116847265435708793459513655448472454712095060415253274386692477253777324922349778715415902546559932276564934371349878275129894089451074433928643539438785347292030436359822074259583711953217900791751591007328888885658973292963781974677403288954156565634045197587102092849043637699560829027464776461648531150660186494943778595675936050266226960435725995652089751217230318204965545812015698467968572760583218286812517177427400432424383421459246367489596382661707079495123769968154808960729248448843977075985540313437092261143212062920532615893668439786329923324723176433555139768218001077147028877776659700772350479091730666117057840191390563639254539825459886776222466311310133189456845657839965878505199147001529619013385642641983143972274030983816831604687753078063987196076062425725531890193346800281735984213604860829050002767584620538134883278968675125661879467046895727095105509487502449376751686736390950063421853502377154639246729417544226608023383557957969275473089678059518569727243095810367212501853687105873945833784181613476472652255219815860481103006899071151010444747239412708614043234863863330108441464681263088203003822149395846096058157851174514021101038792539919648724566841759497817190108282328535485222860664756495276089786064592537442410425532387763351530487254144516902925493544021408518720154754582683476858152082404844685916554606257616582246477393373079356247781352985363870021335530219014896116072331683705323209819437533191902949718520838723232226423541002258113999263588286669546881978385643642487664233452082470328534314571142616887171991447340910475606392774229883420869445950415294058863060440917585274982395852126609898280087284045838478837447834434127154076550303501812092498613925953089201002110290666833449091206400703305738281134275070823667167934433565706917729403847815532145329237595657363661887291534195786267026335462774626460189931432754413288912734267120719720535913337199443411242812865954866435824890578726137235541159691941652404938501860185809984791314601467510175414779367520526151277755227967511295383656861629031015548650186873809500965067806197569084969536604840276067076469337758804362018347585443747911455985194490641879210822367902377099075397598685368530493671536098142149082751009043184637913274028317303210705182778716094602421054221268095947157283557188866171566542411793810514348804647173453716756300781528170436736557088830561685777761481931504383000959617106096655112115218295077692661737011800573378282449736504717052868247126855254239579895537903876706879161216529871495970176981461627237002362641254968084911708313213243585476507393687917996807399099277842704352652277277195967881693002213472455931504056586384208160030693124884054603317678824267881092462909847028168103006866280373294758876335042329423738908251960498002925092460727606779885531982752967292029214879334305126538623045927078785187699282666478928268146129760733457069770452447167296902597510672662765323864105218364500928447631608367463622401209392031447285449116517931212076978531538492327204204349967033792484945883455868571752034354189871172218874319335178665694526890740332713714961788579850805291260636091155003402668908563007431852338148169907731151939023033295503191877247387418757743214478837552144327355534326094420323521754120209959608134025482826502658032865368767421187961206942349788252790125499403623393943048951832799476612769086864960262846957826875842692038070827432282281796151219053011535162231336853854788859858995267528395825724853277422342758813422396976670950960153165056709997673761391455911465958514250531866292880790790601317891641586323252210300129601862000793373330355918886924420687146656562770055714588021756106660417899193609280309627723247136247121304418760629509886505703644985811761376101580004779257165759956734779326373417299050142665404707540697079999724047536399802881124012187819599567929677797707127379182419815493324402723814153269578612544891145008081333118699450955724868332955177180468175404047428893308623980021444456974777184825185259832805253770366810079776205353137712230021436087557827204952151172514142443624854081208787102724650840263172540983529555844433541334661490421763663542857274307116871064176930860416576372433105305421036959139990016833888540223994098045412845876124456655552862331461024425027815718394352007785409010235240327556692138019548798083895254627708581490768644527054669534998194614102727190051737602980986980315756531870908354238378958874851115861417307865442403894654402556506911414031597950729566557936464329705858353814080543124619360984416481203052170921942294198111205973966546939481243692728106940186349722177542391499456077752833737624168187121424565373316672827557448481181653068201557488076998060106401479904065364715073436207174937915152666371493088977988248318462420976040504028472122450476806247738752910529265929807570376386182589208652366643704876725431774698495453386141766694129707017849673560338941208475332446495682230846748569254351696795094863363117307863571671537914044509576094100441799024169650589819251644720891493271985372865118321158110408893269898759052588018092555750237446690576664956299289568876435854874401765842062225659173364190415317232356885732479055680173737317697047373090564882379309321592707869012262523744608651818474654743079317374715527882290029214244359047554403055056485028152574409077096048085920698336329905197641239959668055863482766570047777750311194027718770825858363024143313198049835737058717089240443482189921179514082479263758830075308419790463504805426033498738870086831188635073212344492751483646512338647195330370321887899164901882517491604016476085384267734045169495714239081422277048244023764272682577413612414717147955613246723620737102405586226202110639996110169349719080566040326667617516100216429378716769044486706811734123713834949570870784689087972898734976423501404751865929090930490004863094231948955914941757484316294939106418260286469652907058052422217504563641069946429343830986226802456183541429364047248848904145476064213245913504823379275469020979808339207227102824153438725413916119969564223989763580166137996767097035952177457042586480891322495303293674427115085761431531759098309484547116128324580451614447994449877095081403739920357063195979056772704400903003435550356298423175169414166450681601686550193747104961433392698072241060121389150886749610917027356176060972397127242137393056925733926908203607025706833075976077852232774558008818508730702888962304909761185602444789720088816717833557619237850715116572269780334616783462556440415028782977730721206744839279744752159758528216721791399044261683913768832715530791059097981949534351064800455523299654600643649145991103514125472688097335410050891395690009350987421671564308782690997813580499313690546267146935592176583336172621112376796747657991375782220953360233179664217686548337786150097488858904430794626977363446246559927604226658140131088324446161781231343491521938900188199312304540554090624995990770209109501456246210794462424848283153930066914933862723493404348143713123879650064990612664750407758946012465251305658108311461307186088224188785811072333836039253286794895445138636851826168160753140650866263033229323534999968596550420034042383857525087392616254375297523737313411797745564332535446549197906797194642849808198598374075307308419032509350779457167234263879660319448043387390966387943220350063626676244915423827733140786450183085556870729526184470816239490130582883185371624405805053404661702536622874726273285107197873426569025233782911419953213328897479025615085662429423590505366103080070356790807495589427903164757360508634083687631424110516559059971609171728402164123681439711917883170667040103386346627261162399909350224491624687147430539966516873150099044719881596530560402325302081164129113914422191204753023479161806484080707453640557182210070015009032839276276856986569990268665751736602762464742922672519605310700068651567955527553685502730303700746992573271272447505764860572240639853293643519565335331606588935406358416389103329592148253660900163543372443801248763621877246158377700471765508662919785451532614092018104211916634425107007072612899440038632950462796873713228071609836631623973282749626729173823953992293308271596449272626808088514551102549994897946063590110406024669849104538158418545488467610233115188279094832041287487262697629716015998213468786722974423858740047285500769022453366255446574633913482752778364496648637937838610713238167999100706378312076493666950094089312532822939580623163172914494554048281519318178890773005117807989747844066600646897676858201926817095545154403933156327253268761402079467608622431508331837257713039256650628978955179052837174490910461009563963755467107276419963998525533589365512761129176167207281189266758009201869690873943125747275644621102254470214606094734768301659227468553195675325061325496929839190980159846200661059015788304738091373609572489427791064743953899824263442036512726469298776043616219742206337358726126694031106495510422811790963735201625775343440932816759622131570191022722340320749873106229521979939562954301216378341523349974974676634891736337080646083564403256940036624947226315537194949984866206819113322545029993693248716298181534057962457267551466779682757935425219534484137814492817226442440886146675923759555612493220924839015547838696908759195502125170805075976234756682162792738370598023513420991333281569674475388087131946332408812287946014146103886010220071406944002397344477535764233023364904694906319537220937022524178729843955820155478123525872647778176753122322873114087818613606364793171312535966268830124948415479082166691899487160892440040118034728231356881260921732174276400944654974262489285271292207827527193469192213372359528278438096013124538989966985463919178824921537161104214036094194704032481503576699663071655773198773368462134489253813556546481413841410138238104308765638692150447077611806665840419125710205104659771300883825388796546608757093205643920047003567122864733846148781108155456668853756737194699615109354025919565670519418480400006482099940174951388050424681796080867521305346317039395040239185564456766585247690037876503945718952507939421607427060269246073923652115563519703209113391517966305420673239030089202659014631428727080534514558477115049311991517175696327450915129887548645991525865734220764491609294181344131248670217622236605645300831412665554219023551703717091214069238993566181199468588894588136715960973104806484854373310555490679975086317820813216913771535976635936092571182081292681954154124353670811801837116257125879363251900156886133342181784678627626370889974109959850324322461933915597692969321556666585981264321686015959136153818044300810258169801857530503303609903150376507797957661452192924283199714804139316473791495420471483538590931204438507939973579603595206787187075851598367535936275636523026851128074448353842822851343156265467692235112958206998436620109223124459309272262062184822582482563794932381501630134918066232931462777988506904371370033853470024509205974522805381851443550947143845124891300402113876162854787885638965277188590529540544945828466674273768525940992945575511433623862185960165452772341956534944096757010896718942426541040315487380096592250125688176933851071204673434762922471550165201965346997492717093651812998986850226917919069556852420347949986113854542018182770065461678827211720180004311151563936596359492107948404764266008406626277873151599659129482945876164506671451478857062113785440899765841204722223124925663959181932281014618914315495286355966312539969725045624162591802386752043960072200810335569376312340377720228479613744356798094861799975948795416352114305810151765465958878514897878079558497267044519930365534213996261771124139363248651183307264674206838008778537846833102464031977143067450397522093832224461930461531771881067303576573318406132020865903436003192631378114077844717418162207510198315541157133182987152683868362393048263793120329924225220141264217287448764772738860314560742853913708840235392809780295397459052720404732069034626805216840831600351926283045682154905512000620221238413995202870720574197254241753504234126736925764075587167628576605035489151076088599873793720199430905298147296586684849164899633846750675086402264278237579234272658796394950469041961158049601279977331075077997571762655036410295245756392387759830076592004920464873854787895383867494881774067604846285551875575329242206988523918353923352985137676419113381615679738837407295877506573735494933427284482275276330131752248368324283957858071985114347427701113214312624229966308471346371299672814957091072700140856818384213384583465462351091201671418613338983864335923272610631295962382573878107601450973817944212974869263586506278242853986722159112034731602302989987514193309358571004179856542143235656656255450845173186791070781665295434427620203825456246694708201884195979968992907572992359561627155350905566041863196635044632262963744595472244096582494098299292502979091327722705970671307074418406514282165771702405532061441569501314239992669581676197590408800248947866748165015832734273369876078513918752621595245505366999299334135084255853109503063576106929679963918826705347307779866230640188198448546249711593803763837284396976349401708757546569079408668310209768228841832751486058514666925913410460757161253560319832061528061593062212245422107756877324486395657718288197554453333637428718481536152596513030313221359879696679851782726245183911591975984077184253269556580518972751818980619997558941469490331276202852478063856331188738093137259009052275428196518088360786445928178765920575413773208709642983760839027867190582447758130254847177373488876380044438029631876157656409226840470168690188236721292716147058938748886792287690810268219646395438347862325305220035561119425332064841607505432198309882645093105961275552746419647753518798025653934778411623782299933183526105540906498490682390342769177096962158653594657737636816878409011190735802402627550264771762304276904948925335218177241063417832950778140560737403221843172502474606179048399243355408720271463343879323781989660657058352858494137444378281101869000958818675288350954111986104718067354177348397763403986910956333736945421016515553081265470423799173919106852146706839034920517469948873019384825650007785948845308728516539965757865781369328086956961105138028666430960100714257687342033890345810713879727449771408631019319708721563126258025338329672484811258196259520230664390375665960596888927019635729031687781560676822556882202951604378522032182798172953949438643218698896249032246465238682886937435876282523666735649277908527093339518467011031303345178515556112066136774998848822325597958013974634977701128065748436560106825348940718492251435827310391602309932522738586384407025291277468517278397163986175992233813389809233913191400137562688028750846497764251449421378462739593935653353071539386975501296926308778523642904467529560208872475163310326591224865564708186713437365603350949850750225850305900153432640961708738841664263909236802612759161140485683206201834784493339658155588078259844502563727226642415570902207892948594514607765933160000380636842508958031427720764606538825988312585899866127991412864082141619753149077369675951076273032818071467344785218646956295499404132482725803098434726420791956106228498441039735733664266607452947805776717908464752115288112079435448150525637411945856738047241660134439363235545327685431195284836333733652233529943532685931765203826713996599088022619107462429212501038440876324360927867232393410100074612430176329691082448952608375710618445124528671081418232230704980817353933426873283906503323693357877696112872480291979122962965872536228220070322561848177221347950669810031960036669737352245086385392297143381958286853569227394520598279903721540440172956985168765823704998349268632961511946042836207525373130240802873226936289711431844857678334388403946643019715356576348503530638740957936332266756838348486807701776338578829462426776193155920015724053894588210960123776544710921204483747485262686521092324878032751506422371932307243887533329577908596916366589481520437490639860112999618798094038804566839546392531148463165717843209235548201875267727857756434559392920907226897349705321615727467859952696484784944022969334189965441312423506754177680564533849618279466314607006955534645744390113650828734865650304571473761013530042959131488597627341410099657412436827023636479261254909466974825715775974704429131955408524801852763174272320633148262072685716395922145213349938878464999869011233495063817104943264294098174381831526047568807641376368390781415665480386098235229928736084954690837907254129823670994473704622014707487279641922769693923493993065334590506473139956755628095463358850136414514058509511029129342933081791847137449044523113651496072877627256250638428763643880608139174958097387599949094252170761383154636768861263104393401803655041037534404197769168219319195253530486014001981202766979317473647714457839371497392056216662494763547971694229017283693936945632401771757918008993331595386336225755978277174971756207959971411555823090985418891545129167882351033557061699969189659643210022227472304983797593745542605897727953582673994710221620006661234700932838376748477361150051192118826398818770853525803366840814218734298693791543239509651945997530091676902553866217075713370990395290423463780162793227750068181001525889356319302700037962616124253172033302822636816923221159445608489503030866605848008036513115332107658559491485790030328444581026948714803944602052570328492389713949919624429981823700488854866603361549648485723190851384457095457038464966920153030791220406883034202027250473800401843951366359315972038677121088269586978846647478157333511044541156681262169378591360756978737305131153913752927390823544553191910663511915910358449721723156577797486741296184236868250194274854102245449932883426259223796090247559361518113593479568268424206263100344886777775664140761642556990162215114623192391869915775287780443233009020760259746191564647168832610612720699947248242280636669253971267013379673889079338590208516979909129536914110375096521926155599423073457016324973834879288159811955281643409443656791829016541599131621438774196910402650021338505246771073096921015365046191720681261948819854639804433174846832216370998474356239952394102025894759977551609775470637019722801109169697779351365770370416487005544927043820471564537677067900617648371583531307819693238933787415902886650045208911607040555912414726618352990536403520597737405828966989538124719588417174186513741101604897252468461800203150998500007547923095423775590762004493514125022730087803729826770048870695124603849394729671523414459368814669133854530289053887007002487451610247142389469775113858367527838820134824389432479398288879274537181269054629339744747307551297703235440612510439985769608722375752582440258531439651704924191136995257057128006352202243920801558500079652798282072807405424917812896946855992089824376562897672683412426430468948168390835421379977000399028139797179326856356602532892985811311130498774978505027936836152108428252313824267129701256441847703161713705184191389419675591002185186789420326435351470279198408505537568703705068436935437502844266799455348045351155525588368233187144722647606451702002338647424774755151882622089368541432899897504330838923146013000798921494795252261734366783204785738815857980255132700774939928234339085794429717207751919008765838908198688735888210179859193243827139098874903479503161208695460321333904143379484390150200039263272116476132958117804895729982831702844288745242915543922879835324115670130245141294709266300302253611124361196204953012917233679300804738409107228062942052101847672143853596308137317715341546554397574872088705198244147873350492619465633136345024239547334767195872311731604044280546363997527091351332330593289351749985016672050388180219340437096281533443962267796936058928016243118052639083350365403529634192080652160207393655809245493924654842568759064160265706317918675549391492588185336589964986982371246117653411568269681489845410455868002055387847224809018724908846200419307535705419013850346358731293217293118627954991473956670969534080690976613314481740188852489365174398493301837288335026089034219433296971725786013231381790542812592975418160740254902829797277589342984289424190473267163007922919082030336115190457795149082693703964321575824194343816814715708909987396731416402570615120021216782619301172492616341577747855745338346671884695701793231535200521827997705648451463415085555706095273236327474338742507005572525258872055600340166348815855137446363821189293223464337937431077001608482847467269345417833229080206568735682187442814844668887382002343284037851403001494600922284604587844471746441373811080350643422795078711462630691745510681112611390844079178699584037044638174751635258399270579881089362775217063988511106824903716323603497708890597208811666689270329917948297819270967536624453507186294047110805196127142248317351925445371426888411399879633546562072469343258405324537945476897390045785809004240762374113151472819497922599745498383172045137230828388184518490962048897296287555514470079756521811700045448043884558431452187609404561367806288196702784228233788082847927879982101616097233728780874818244940018844768619994269634414172138929165408967321952465586915821790377324281920737290761683198810891107851824759735227620743253011050623188832909044265264626318597780433430603727035458664592544187672380951925358949628165626537468485531079335789082275447617358688670279206890559436796524825220252544671167713128767498600096674579877727138471082970118082130909126367472309903494022628561128062919617391398437780860689675888133672364752021401261329468786293086510797160155663363028036672712720449364089149753626214955893045951958311158744624036327526044076584661041603765719718064606133265627486025470399713380728381816823634202640469974343580559711017953835271203651891540323267431025357668063576920557234393360460155340684553985946237269889080430597295757639765752009067426529507662726598999721444435182612942602249618768757600451001876804915848482472286198907571655557906032215273800315951669751296127932325561443465712872348210252618302323293332780465377066073823590248134764169230991472451237984773420716138651568786446562804765399682647294973892458730637043606730494513114673532065627594451063254914834240916542667392286535277519515036878456917860759106628677821243777846038006227468852867084929617331140034026827699715583868608990402056149648730946029950792745499791187785343217525589285169907307345088476016380948079723531614565980143851296056038315025420664474171013129274548732206280468380637371975208350260586121418410863371153515809015967315759285777146669187297963979426776092712881974903684816813109407585866828117354646146431866552188389004175919710870067289533365096870137026508712417064327362674141399711587915424953989984145568345758888363804690402528218549950861188865622747925355437883538389444799176428058204769152293706307542130751787204558830147677732081648412438762366472655508787268201021572128976640780645517091854902962584919808280494231101029464783652898616110213863930370440339428792836751464826606261619304361268017031223298995712002664104527033442996730690127187139112772550893109922533580372702152300286411383270847590945788018171568038636354305600462707482155348759182557466389561281255725512740080251289416236790789466645386156699962158132472123257402207313547482271199870415402724912324416869101392707511211644145228212495634223566656359098677002939175418363847792622464420233242990444952616502124134419875536482286138955301135742353970198960084999057491009151560134264741623279820426648941307723017564043861128150415597632506608391045566818521200044917842003124259028831433448830993557431071964835608609499521851731939694272642905660479437982669534213355431012993577691080247037413818822638435911400322743588038579572387814371231094177267858400475648279038841080719533096688587475514636062914033022833697262584756858875418049420117485627034959176386269246825033892677138331651213517254733659372092732966414995596445450249223680236011027729755858636812732486525431122627661163836919803268699087377516940674747837000447273411092222512051154224249981590648247751598553261932409080709811258601085993220697257975087897049020593792812936239144770951644346222855259206213087802790545100832271837415424088334640518419675354393191810136470264409449407783231968180937523235502752534928851484977998880760802927423516761588552901063342741535031928064654375820412039658549966962915025255189827840977387276667689921485012063291281313610937659114897428962380638421511511623466482549216809522482536060168267043587035606376754780659402712498732764281286629919950923927884200106362524328778023523231747555854477827370848233930517623881098150082565060170111108548070899939320569932034376640693436976205417248796580627170853848459271388256732719863700503123297231671246132587298341957969823619638157199499024905151863457135898373565010697832716500249493787683011980068277332395384291283136602977970800602919951442846131650761923576315064113334022102072824918931209846372723072080711134356974984226761754544373736077376079343282504873622059625855130101158223328384640559803660966174600278002518697011485182354139549442291485091624465334073834770850650634094533460250262321120860182831730372423104791426631709772691498237283893470287155047347388945593478304824197603315308294638999718732903450238835618511997292441888105541374627214610297463178580040779604151293900128451886303050053869919766520011621255649963391355739421886999048323278824930164321292859150058081841152539139208988729645702029851264882976188841107773796573876035324851232224906027029232973808779442322840358818076882448064197077627030053989471783490396905335293563621886178840939303226525702005113415577435826263416850181368268894778171859731368595711346561051058033977251147881368029710967170798313871084295048832622235138779601046705401255617530411520914838084570102080862148561784203641922846589383486700243591111432219758375223231906965695337759228220523923492085550999058025829887197250788742960883572751830797676391429623463299688064234807660014894107367464178820234608575457673847117716396691915514785591434035581404771864075878887603104208797957741208533261528085887648522534534790124188635806365404977287531662264537699770294481881016146759526281019193150964417086759552349082018264490960367535651962734692872538425553896349800897796184252436771077815496132044382819573471094192988327593965556484117940677689112615571873819404888238281182105437606800968625038716314908717243917602248224774961516898625015714313871382098300551999527836116140304855461127166037455135483842453788708176585138174864260746460555511789222858083261911645785174517486597439723657319854729486007631275024570667898049949427301387351725883539925987342008678398104618794022352543069352514783429463602386642773625870757993568905415207170713008718287182387940030125786957258844567370853231945754727109856690846762331930749361901886377878271893693332685853459136945361232232933087841964925950895857184404177789922087281634015880595464187838380257937874783968491010104806331577110355476942609756078058113876347417919840920309664146314700765506589379505727577288344215059719498736652910659901410603706507329713450323483163039811416425434699412920139317325136951960639335670087890348964605522283086573543480498791288643516138162799023048410737108857704414946451624534453790892242185934546523795403793078685460846946952173252386581582589859912169939691013402646329514039674142492937183278380790637696526034165729693810828979004021567955641886970387477306048647877132091116210675445010569330698884876098477579137438108253280490763764348585588165880479118823912460907440686859922058662602891896294061520096047486510341535696057376884043562300310436732161161674091436259458999503921396770605036592081198068085093880653688277834246116006648862916963484780099815932906841230138794408618976868611632479394528672316926306672288339431101938257654018301722481840741687812687816220173546601604827330269280624470417119787128939163622051640152488758067243263179450739288681398102181647362575673924816386990672580608957642159110443077224429814786852961302060079965379998372284546477405231923606142185342179709075449685590873768329241170781037157533682060866597791412146500566346168382130505934610643016503836680212957178445456487919334886040068620657013317989984726127480559317752962565565446857393075590638029238895925499968609276233886133868303027197160259490016146615569614141477428025958577331716712708619326063020624978578466973083696694039641497602065112384844278405971405340855957539507260542913976746459390195537380377281008281873663020090519436876959681342155640035269855915704969636870568481355453232545873729892690993866894863056445015269911874156808663623492476207569808617639302022184222621318849414821520750267268095885667477476965987056712157197139623940811170254141940268515690666545740377979839452236181525818659577092932001671404818570972634918177702187637364721831925956901145734269849519519810252227980892255010300351383112493901817676271198397256194738928932686903542265911365400405427954588693951103643313534443463507389606645193609290379053666903545967518257175770432632041830855543015663636830618457280014613826472396043404558196180202729255510003524393430602811292659842962403215790220747520289940021197341572007504500874380683814224928087255864854747942244020589269410232828374458710785454445005224380690337404612180707527712493130937350378910468452315390567828741169740845512829862276722301329750837952735667948557397120007355853062775170611037227184754265742830280186364225884274329043891040597227264660570147073303334146401415212519827685669754123117194969849392441661105668787668170963929186751486933147520496104588934006902780778700801456263667050690976097876412198246439506219575613942098631398740738739645000545594873904648225153110794369786528266753876541688045302894825350284407947663466606995481567103523627641621022511679991579950248181910904106198056716854744786940050776763438238784416819724462349920667059704389810452729494288608461512084047697712860068057047531593864911707696923111799756517663379521664261950118094587319868559743290428236410641333097786732153366758787959758910509508990847569520600065590891879722589644550739832305673024922300992039254879580970279831989330823102240161580069135253047372443449674822726499702270799946266904825805588153862623258294732364455076813935246279420394885919723385341614420342540067653036357595944918260971906224056170905946029671229958430728894822060533481151125735715902354080444539842892316726583404151017551449370592416150514585950210310947165897372237457871958063007312711467676662378543114063585918642577129289280049175524111993816743398201819982858556076040267393270298107166336168271758628004058724466857679751810159994992749620467609059652014164724654458456962800747171362794276245022038255514110321593210521414512885914638886010281186189084425018998179384935029250443981000980804503601783823722510321829752081179217925336690861348285887157707481356588221840493567200712853481864849156391758052659530677470603500778675596580822130658986946407943067916551453433448053616128142845924496586118665456421250519670371798306345586033611379545116439435816145647301972800929912580794639493297233938883509865404733360578545251297963778224321968701802884113896696004235682406745386356857464870092501492025611954087438547909443264809195546581464404447235435934333026641710982238394786859747816847943822245095710658640171797571472973410796929688258723382937205217076251220884684045796704010432504649258234895919801577337418350133584324312597869977472503697056735495905574669711324999485523030591937631718297157891249716427711339459382598008740971071328791191472975866153575056786976499501172189653525333156463810674108201575017025156187291954932625120957153514381536414904302920467871608802607512579063255508717942690646702316043404300503908591975806987090854636028124927103232136828842884744145173749922968485728168123709091187989092503505057279226937356452387591004038821654756462591058207554201678268594403935211396415793318014066536269727375432040846789267084449879845951725378350948791503389732745494443071927906767517873557545579161815984126922855838227309124131945556842617210287947589558102319567776753570760583107765598268187372770517539208522159543764912531619938965625955551983264422217898418035563412102290119893782371636300682722649154910666509505367158306744109519496193195840116503056661718129416591277965797692560390488282836500528574320898835562791719301646218016604996025274434841009071687793022756936546119854567159386715701257399405272550109623300878203169642765654722694306024798856990338034783460126931185368007535590622124323676807415386063490361066570798961796109916048085877696574596407918539875682276869500099523367917475372930012516823211168967681714888250283286249435831697922404976177456776203392541398376943611948166734034319405391436788428579861696393166001633622142417259781839785597616379410473236915443208160094953780598449213225724809086791311901825243275317833516122667382044751988764106325533834608873742869947670296674515705160361918593677130660746271772079071482538885351312031322276460110110415629950705131771672324704335969787529557053095694464336036073404180662563926464102868751467758212699608238737093846906272775431832202257092655939787146790079396565580434660058088530710317918346674653329114067145719483802299598124324778240223317426567796390426382389929948345228903342646059515957983427134057638480280880577218491098977277090059987957237219789352860074966237107580429709695437248780166765867058306620025029052441873455075719076822597708691371967895086851676934781008715149578147067404997051558755040470398438496305480926278803710634760525500855034994656432825964480504983602798832824792430737793630554630617254913951750721822289054690473993084028177824336315821962469829802041671397667079238178465512688232384217485628661782214716275165971544444113301318420367206004398724901640864303328913087129308991681395254897047557451199598118446992097036217709204989082656679012378694274455642196964938649615233456054279667084030359757349608410985333928354820861064680706178326007343196338814747375759684101335785199233613849088444233038624860518919541259747808895533889499846498794990252351054280933080813487648346847533945991338208308734580776768017652377472303063950894845713193414585016333829977392387191263712222697724616102236191028298058965808364295268053917847864985343621223855862582595941072591873596063731733401732368566069198753652701865779201495005473675034049022486052197894028117234275301032096605148235811343132152572688702216665575031575861619010294926198057272440582813476761370248233440835764375340954793828431701335987954466663273478846448010387231518341790695011162254081563088673588462629851144059393366766461325981597645922038964797986133181504146401561045924123597992615689080871780742563236215282291313298093869771922403901258222034870477596496917504931202672363704203639085223613780284651105434247039840122925471979235733044642827449073758331226223816170797667996230294109063876289973029743758016918129730283498544907322745463695669240356865020427874424747682310810065278637395588234348075844020771437507856995363434510051680933586316722541552580972155838929070207395208592198094142598647708160987827119273285675541957973650806742974059535937251178225685177597347175718089291755184079245249280057791426013180599868577741639344863388952843653772730219308413671039727644698933300140486111950146504445517255364651419483355581705154280705240670777505277718078518863573210224789898580765053629908900357004825489981330469600866207374155614511959904906163063197817453204359313770435266706058857848561497402672375924236934796273528235850807882582602407933443784949983838546572782818984710454061485400594258684126761385551961348048585177875592626141807255156783235708878743937248150045500778377077560097615535866196701750935759334301397886532078850825836727504383874356744471509036927097524189505683167347923787932481334392067636713117787138331861898651829430852974884988845086062924421064811089421262613339726303645541019276415927671262447022726530005652102419562144326065773382639103147090866540679449599725065597490613747601268467079803912425011720056708449990856359532690369654178431769185375120830375637355095955821895769937394226553482374764407068333371616121467149120805579895644325211138026370880182104957357961508924247044989174538490122037684198677223389844550128251205326690832950240696142954210684291969485930332524432690212869940217920423713634740716202177069576405440127181361779869417429114959819665268172757850762462316600852568547883497731678074951681705133699446972877762428034593692611365654272894083043225191368524328068050828686995075379611184508234274024654717197592987112101959608226345511783892980915058994022738425416685095086999528572681063485194712128837969402101221101467327504035363959399770190280712969864675474613479378165499168399308775801832946693166004846772704537450376386675611753892385164078717498940312843285393503419020223193122063936937763282803404753088321456922507954590866407869036169964433926909831926508987852804417006811018121651647232600145082855485773361794004378559014544612730416024254096444828070515749790283571040994922720321410464006912340069807791098070513380800730030434443419296710136864885683397433899299204777642547333229814413232185181620092275584749671892877076116960345143596856715973904712321161315612083059127161283776277715410599702005966607697269204810357508483492801337031105023551432037922232256621212155691944342269092555206416119887559160905391165132196367138475586845854044110233309617947063032085033836997176851341541704866288625163060913869333380189204534834694429214932889455122899976464889644778661799561851033529028273815827860043515449554368146309296598566968522108943349965538985065830813495141278921141936832020047864229407725850635381441195278342627298385717791051662667584830659817765814353930836347621433734475962680736760150762922795217637382834898747128024541384054144978518350140337416492459624839823743282191654473813314520388590203409852134918749064372507948138109136962538094551358603880580794134331568792775571060947240017937727321526508054327713761853953911873005694475921494505333593473502440858000561964995627954037602674606866053511830760398435708994644739173229241268525374089984011974241852931878290817292057683272315701878420226782668805947582711791314236747626349139895239950011187273443677129208499849932575573215825954695716632884614341908917015268625147830473126692734767249087750397511577579200460483386262174963494860059467490092413932134427317735167324156033323841207849050551164647833393775114208691135988724491841521785722025183804508366317368478694242515450888591375150630066304682810004926128378684915317338707175336191411377617467572856690751092981963117190815484590978578540547124856267071309581335885994996024337365530945488114822169777367455881784603758813375404175334278527295017892831276745710467498225456077684868779980969893162858820670548782416895685099563044545185792661192923097727154290938339842841876859083725293193899114868015069484359961763917151724431075463271295700158041838819403945571572263889033405710308495109003928511742732540416742561748281743279539283297287892869544935679244218775192321700880928944172780578947274556272101393527321120550820407068393713382275252376447880031195133013813497534524045794736045365480926564101778252246232148631944966045364183466076011946796461138605346369439308855346065702610090818969158127108888391489820321512408649549947235803474880116964193186928909941938140615853366126059402558557812600112390630071697086512038357595302658756948862290897373746359180455003556099112103332890447550705268989402726940698139499356813215505898218814485574207320314321313235785716146662789592512236931974550851674914558240018898902275170775128758818555401507024176131157789122813014383325442067033170434818277035749482608731678613799098714794942663929796924035235855233827198165958279191162915864563969462612229240141252054637822120295476385673589467884819162520530733664023969690696912402138903177250238121136189630771381826680672229072437110344956153877940602364366135033862704223326822981142628118315921105762503633154567342381752708268075917368209539510690777176849110121575589073551382185619048436296169957959349227630864534591931477530998726325706074132168480769165375300766469152424739750702674619964494013117778546710854993422164117834523760489594457470878306268318798289392824787998128618061970949728617950201706006420757949121251011765999431492275144836717444007990459204277732870930273958388715999754168850837420920373499569918974474997882265451975875542780672578124280436753104955083279540667566751698473991296079190050088656556329487693378301668281218298747614404834864110274953748146190094365130751308229246399900902658086985518973540245348008238635209324679715698346467020972723294508212452264271275384647946735895284659563565414879608157316063068153672042268159824535783450410376194400122715925242958847261905023497301563758143955061202715810397500965442065623717897303309045492844655098164758588727067977683790783589896010940769522692382394393732369108091112487461122429288600171316290193422551417770461290448597680994356904402123442314520208154834027675034586582839260359351883593482223064767339204068146694813141225504113697747899910215296790523371615610696082070887382917594163495389156740964832948896926517771558179818105293547938866166291457485856206241572744494544326599128927943193188375281646957298539382483415976253494787449425109618000977762588366180779145431879124347388050896649444230938696753591760928714575574293839521719436240521538941913748488103540627891440476330644610879674819983265844634874717435910164028922899806018604176321591012343226888158656897488360164069881312644356946983091287254340076053798531724539498918926704821918867354782780379669529037128811322046452202289292081671182460553857412820919368774945240949799338702031987478135535741440048922747007330785550772807685681905079093191993417802455213243950580476035801280840855296188070083064505041538855887587114978429221317824766145773575048987853273713262341675986389664157638585816242201449896129546753400045131108307977433293609379582892461541617514183056170433641693470459240586835353298882996750120831968582383321000447367056188941872944292750715430726377689695754880335354936038949838315546549548146029314016589182502352715530821292238526186506031148313214140116916420524582016572549970037515406470063325930515826395449433013133490832602505012172132214992023576015273090997813360738577922943562212470203306700188752136273298956120301694194624630851264769612250126074828915482825739023393872085529182351822189795234288928729514492229804241307348573073807740097877971974031744581878279614252765786459257342076892023783019223362675462232953143378632154820242214891673004474254251937141770008652756838539091141027655505981218073084672801440106581786760000656594151275615046807602476793457628965984827479135433764959849335677712952757999498194835035755345831339878108812659774382907792405010252303280121908338031142193825736600269652612949036380117759423493149656787603741671099049477357570898581806508040739774639433438663063448227319551181353739786127926019373541639741026024233126556673527855629180189825369511015103797662032493936467826103704801317409778128187290632601656189979887570842952789214468213282355652576079418546753329439555172521529982206624032642769440946918013552753555320669007356359330531709855641667173094851887821786182713167178186258818942550420325643769988614902529266392274628882986434163679095722422966634330669054999743277653136038724286571630828323168405566247878062730885464927441999131598033924116672909706649039697765508543313832296971604732582363730985128053193742299180870579452717085242513608257275997116135229966122367160059073291792115750939300533369550778318677590107887463187535734212779665064386464215199522951038478036436588941472373617521909000733423939058013402054244818507114362790914117120614288563459430993475597531162256785885103530571143110908567488674923127401582895212564117107283133624623643964343383065162411085696176496569002741768918339439619670311380288865635515206980069670989282541769673024539728447549828284702393511794649835392252794798042724307832290314953642826028927698710759782358790715444371331094034340091801504862555222997590408118608042859780449843873351480088183264509634443043078864840668610641003961296744624164431360346406797764485933019646679668180637184730227685805666862159051323391209187455803026670136750082019049421415653960922538006383006542036702199742041745258532662534656007747467095183703305870112998416854143131183511090332502068734913401661372453937844229480502363936318067788350941420109362944753041594885351751650154068500558634883055829210223151312612090319363324504292159751500659260739618384581136982673099901821224076225888091979334631679305051085604185784390378518148901829310316932655646442547135643537361882465037181141766765916957985192686826433174227027006128356645762477294349748309934038477295500560618188368215531114102433199118742520353532239859144716579452774101059206288534861935843928526569975561538063391390097330698733390572039264479331494951088758813152859411670480591869030213728058490843834767621727590861591081820850924088233115446999053982188446447860959071607735466254174605415247468672350547150615903017743696914057340451044075045886351525839665749896247755101711992314412969079828750068694389480199851442923553293837826382116491717129650631153303662029319822835453237387662649494252894254493868982608303298622537829529538454039596420563769403110748059597624193645016227396512204786279893404990040837096679990129475643763366138380274469449121073545604739205962657755213979338942371217675421359900593508180699610779897709085765912467038417541926337268301754981509896412472196656484562465293795516402364465066740808601843707086322689878608317808567827989237994934260776341512610662828165371277815547694360045094395892695814407516196463700130019971286021847130018243619215549432502685547049210589633239839129273789875759876708379541933553285694404185930474958668468830827850852008706365097287471496506522496784158827020964848526274001044317391615010706173556416846014314180824598441574927642832064683792346704946375022388207521203008751610020495643799159945736671732121084838236656533920133065123179274480502595057492549989843943106928772644988194344221727497858546813293578713561036598109887791071206653403026550523292509371128267267747775035558995917298298424468969557296795026962859444857269610200419581690092467619590189539193549515291200522584322624469152966378907034530240755111648866032111668868653591752108282315554357861594915726613789656097540676791022696056197585765585502882118708745860791636311672851244150862177894663257080343753791816409856809805326742774376082585080210050083686837360852558902038713102765399874178428653194984584443865501724557881970607829136531282193814047954859375628095287036359842102828964891091097423038219864473252833614454432169815458851656635471502741659050474505780514482778392585492505346188919263808719201979760374426617612094213886741114107921675676601678340753789968238629485196603095720092058548482155240178381295362305351369106872407832523259588000370116402867650739424166823157993728523481474239299174869429825537063993543652717239418604959076104346411811681302390996853740022737639522097806490698941829094383629691650939960774350932523885454427791806177795080058009806389033641514249149415326420276638485414476649261123090759463029078822239213555826230236512486466076453665974904319635800689749759828095277556309605214218746611079621284258459917667978157209258865088553088634964642800763831780971489415174226587496727057777331149878449935870501276695541126949488527349338645536535327331996519298253042908421069956477621644653608826588947175454304066625204363300989105103133242912750833791515371285021948301640606175338582831344277951286176498852424372421977358823984296869355178155331419377396594558052978304417631554770524970366955398357413402415083326454443956268527832745969333295852926313678558984826218666702456490236438981970377069755995019428021402017596998802268300217461055071395807669085834894254939752621729574575477490096746884778365042365317095443706591970583527340455240107838463801200214264246425869421839486888776625955812182466911179919380346924225040358684290728609356363647619375139875441570727339555013314921542703661979227128417826659094667272416115483118950136929770160397259826924892461969336228499311819710310101681869551717618731540491709243316431893856839504146454486785574206132531749732051385442346302704487223522450636842812419252443022094811643246421330627189698445493207038805442957249097875283259052156908993248324818129650790666904677364217320971734039131009232219164760653462579937144984676685946276470358932689763454351935411653725081733423702184765645968331004901597562280344521130159683194163329927984952211039948237698287227523668218436511429911825049904505142317187153530269653330105966957359134949963724604385166057580705467109600990694228571978666917853746635505771787897289685022883133983293780809060892391208291144635052566072201443772527481606055240342850588593243519797271610789187755143298390772087734662655959983445261142033281323900468687023467963464018794520269654857429428245977259412690903994486887241639957642728177298974421073817747800622575074429154290021535732127100024070602502466843476696558118175336210126148522279038704706284802083063023473139186749687710258230025839354880743440665677972297457203451474184465398717936734564981920580649370445918700827910288967359288068938139061813924856185967978777061709420576458902755398845966132161324957969357132067533495834996375950909056508677409232442595116671466908534180145737993916744721101713132772017492328528306823950440643825004971394519458952166159976955147498102549259011437306614890683047402660585617724784912297391584528437647665224881722870365478038758093767973990793112562854484928623093448611356475440320687195683615545323652167511779195530836605553214106402516876387564379351884875621138322822393361697621224037327640275607855997923586720461715869635879560139273333351297301147815911113906895799238882126083753854459453317728615383361801919785170741130335098423760224291959385162824023968963624168703600933207518681139511102244086477177714050768676417381443446674524059817095037390264564481084880508508688588031221915447994718251554979785637140733971842885981707303553668857839605481311710821209710461046656338027194046302584291022430330202247890868491149647289760030846292994220726924938921443352360575994138834880501043724132758346705349484642576181776395511523088241464547030369389258042876207157109352833050212753078599035164986788156485030136075440926117957774161083576106593528904560529506502244921596540580256758180335760198728383469096979103292861760342535676377572848840745034513249120216306154847069820219475967520532209186304800456098888071833895182507739126771258444702036420292653822137705615221558145974018006654517736173473175719821466496226078517968799256824168983431690263196569650166394032095354611713102844078905960121283307532694448603857770507964620740824087734597934224502376214938076214722229764508600091202378239890737010253487865862664593279274406999737572418343767726051570684853045719095331928268077295154929490008843447801347779541874965485375285527621944172653004897787571573065259828353043359755951347843163105592991971971527377684354495247444480863947351234601094317777907479848480010993129440933051984368957162445248180395386968271156199159736983714705545564766625717616018924947459097862514811574027518707483876088994452527676008500732966090834672573061833809025669979413360852694678450221721514839162121047794424931781163773999270179511214501299863909551438781856060675678162008925705088832951092207838218796284862930613642143769026961723021238203986824560926515077639103763937488897324336461729663651977207919641000351689905835531612859541477255175692133423312573669289496738940418127727509074553768661855728612335248028660899891887315551907148881661901291933873138697135377322750346948899448570505332046617906294059248418924226110221090157023793118738423337103580461162991444705039023994186323446904259118252243130038321798471917855821190490541211793676898042398575815291270700406902130279947088748051676441924333417027462120142272567748517016661734873678839660190253974277182609701913832586292451527873387433681117460600182097960712903431757338988290031974123508485614369792243651731629172240898461999095866738111747262767702076705155456146387358508368338512484961961999402406178801047549311181925715812502394731343391291450750195388113829416720566348975203463183483967663102152864562416021383849037367210644586363196998225363288262092049148809247219975766065004539835006660043970473662924614809392070607609994347407903591347951453624811210711738776209884121334990870076231079937320899420449149497476473520445697057311647853769467015980572206897453581392456910548652711379506138595454761523733203068441592695188798078065826481849526538702144563657402673786987040374711881016184550905080756740153195191212877756962358829215142725333452791658327988965340757808693343414913713529981108821325445243253969968312007017867543170236510177878246318253124653973108172814687722392611757177368659017135085012308733189352688904220255054617576554946831747510155654204254187372888463182671273842448452246870148595051124677404324771673234271180387155870810207446232853904891417825317137171933875614192216434345964965680993303523735704030386262188819834294921647350391149558801078545891127294903636139364255632444249869321605019939626239210660842734985265855322260515921079665902229342549899220118228082917200118237588947955770011991339672211282345655500960942794632109565642039668392395894250525824301378067938798131332993341813928057382560150480920182574512691983108528200885162842777536848920047603726599027949809871141965615572842045578004285049966475372440869221905928525307152035561867604600505967627250666906763305260075850098666262066565947132730229143396265796845605605398662556438970367701691075114036471118569836859185956777518752928142483598271017685469248858383595361068495480400872049152995855234842938877231680298582685608661015847720398484333943239328704164966361644299110164291589731879841615520073296752092171201627006959257031637880720361733259882943969278636894881234137736999706584165989483039934124866668576926337602382509619242959178647476800579117627355543812717102706780304529839429170661754384909162756782564726595768988232659083915632667007026096592977222650766935588887648291601553172983664546338530251561529762323133297093807309109676866633908716427320053948884359119002208519528127638861394980221766120790769493182781318250879536999537982869200860084352164012150378792484622253820713243670876969874190127600012903291115125879219868195141472343612547053694314515491123823890504041262455791608169414472268671108683293934998326639972321935275915092993329807835552560648372105819491052470932946674641513326677068515427767777780299294813970371794725504794947665774628555464021934549991469108842561581817030946872777149351421007966333641234739128853927004750645334032670401924864378919096961757121719456540636655305607404961745486376841014246927121854488928158132291735700256752195143596470094252480191560713081959475437808995065539183475994173959561748532646090371430994141028219168666733434161831634620177478112816250007132070901996932124341035800457107605825128762065306174485349890371932603147091631813368002973643747377748813437286710202272135485494209435304707115472232134625779761948505191414769003706722192681764038021756321056962635204673612868173475928003653762836909925758349052091915490049901038483717260344235676028462987800008072694892555802275870414125214934483192721790282262646971605659124057329665715703462546852748052816499376006680978625085683167623336642521420110213857779719582735567889569680831420398205556598065665956822382540232708572461500119659162594278530183885039405277863818220935578294326444107191343358685964184123993389066240170957863073648293738438278782368815225089257342007883551043002756602791387535375336804112480221469657109766758857899083579378009032813730355620964511683754716843427417729250897156266288252582388258510106589089822605419913559424030955872089816007234067544472223241844808762340023586139970958036475235433899469713443540620576427767417303807851507628592775317481869854384491440555502716631180375037996153649650241596108901351299328975555774134564435304918422009011052792073320096764467929571223943595884048761518226768990855474342210566585010192555098742341041855980576023172730194914881226734748905964558253980009709775615317084500911735840926076691655235576335378667293291935182176193293800717893097614318009425498484876732054111872417956878923350632124879171391286619192301230225760633355665775006352934815700529454219032220432141441101767346375019166317745500606926520003808902593334392196149859186137345435307392723870442396565068664760209758889847786987069854977167533634335980516031857091839149847023757336907867737927070649356635153901608396798169402070531864405939830080558567932666818765954849747500764458115986902170084168821261613001139505119140290875495449947407665713537665458043448890964107757200999677152551544850691782196446581178588826515966525729395518472400330667186299090562459952165590860991813736914021811149952294569450734991545917858776234706855830183281486485045413822218443423426974035698530902131779741188313741293366389649397708643928219883792391021773435518268026798303241292184506953747330663795209912257143031769210393033751108866789454262831231783546522800140492688597342517006707565134453784682426712338763475848357169592650592541614628673404303279324148305695698175886906274947397588165737599292968789897058571052048357692688840476156859682603734601382180526807972499927337671267495041090038456209514425757517811006001059580231995934887364651862015926112064729631191130728892134046559336212821306769679167254112826426583566583805427986148861580477591787740753419489380561233238501326461320651464830387044102040447998429564250695717963065503589814197102195927252474422808339004814218267818995488444604464028902420790989917633429054463818964567939298757499411000119053804554054293704755385633732297286905674501930602122501971687086652600752767546160348962069761031314423869712435601873207705823104470618051505254544142862156247700318246712662217958847525712394282569803971618346886711482090533268556923066099159677596115227006512930926465380759102906685030369154198911473115167963546155027868772853182204242621462495307997501840330358955046060516779650238577156222997497431893507619884632150887648546326828714384137038866563783292630277523855177400345047548667057887101750019563727005989753014145719480555520260268203682913907793282865917987275851904271611259167405611552994651560616882900154845178503390146483369421335993666772605105547999053103378355862422560746214092071655015861559493369772044721915343263275063248025109757485675806451953650685255805259561349645399708417070075447931965459686210989366178288147594629321504287524374353511598769762832000654538290554806514674173486954463681049800910710918052322495180276169828940484295811901985374331850647674543867524663870930612121752564555920056236445147602192885595028803993107491542361178615235454927996749131145341550786011389972402165504700640190252312342084026161473275088338066923301164326599847558908799295170925733712973765865323424277491549849985516159654182956278647243363603408239578361515686447036658576276772202040508330782862329445213552891975815278240863229725524518823094845369751010877337230463926669886642061094548060417172658947630149553248279451330710209221695103786413060026402767265354960801688756425875864940617075264314950720253182916438051219748179713223512212923743295423347620563845094620353828794134498604112210010199982457794153812182885600056137330708990591745375149511790553512710882170053446960052888990382270824678760418990041265114919947247419844548113995936907752080914433912389660016699622555824584168307914048896920889389900203934524184838194315217466211001731660094637904125124817728879400990249203204277600113247197953355259174279526498405432771041568851457080523257475023129086198024382102020347299194652355275398329361471921763114292368655730935910261194841663377114309560197405722028557531494523056385242332890010980290125262925099585388373308528550221542933625270503137017295463040040967022785021629821684661710465600493815819189003052876544770247690691212855179084383578801088584603337290263335875224956536124349565805617070218563144314587897926709689330818032308989330963385835972299957450039343472697473420975006576190100964541653289507929889218135168703447368643318344024310608187283391199022650204675044285917925878744299352591545576073490327378614268365578376141589527809165942119879688841783420436507154017205770938230319339211631088698133702015218001017448529686747682694518689333350040945628848513698049324301167281420929127898484701529614407564436531819590323971560752793252756117642680416902467051746798627617953574615105899781016305265999517680887287018328822154496305777605616534869097526593364594794984612024214979565687637687043269522079548660737009621617531654597317019197814650885995991544306737312809423701653646815628956824113418145838531744982658705792432281174535063928233536538326744304774335526883832542085545057098080952130469626785265510058052269086312416722345630838240290060924283752085118997456483375771491923821667913016409590774079688605296371129127622632083315493931456576744528983090550181162843172679589373338509225198991258196299551565708761349891759075709781091255941200155080407887361839825855450753522323172174912807312316887654047558376444310118678177091676248681065767255722291594561757755217536907257936586016901705222642663684068320470538313333343881760431875825259113789764330581920257615150528147777274390545696780848920620291088568996173645188398115774601848317234645784304730601024932403438752624333764998949368160383585331332453188089647600610838041623175505533666016815908665480127057524032658053397424309560454632204681835602765079182779519908148301963954810120538710117931614660583246012411170515855191233461621617034705594878737530041381605145778830871155536841205728195413581900061398830931036079324696818897258783340134717995515161593039261096703243778672015585810587557851569407412394155203203329294816925681546773580630918258261305611807019973532335534067475439716786222522774192069059769501942092713419009007140396253938682438245678077981099773630074846154203426718752848759382358121666131063779331753220374827744374495553828429302166172893306076911687456721808011076283966812221076407882716329014711648205554382981266616482512559871261747962364805113909672781568646857608991652137743541180789668588207586442180960187396253336472418580378836169795443677672823704494349894094592180161099777608480016538828391992034497235628830613263059993950317284094315948469060521518558219238839457779442815512197341185976719573052614693072235255675625235578711601168341805565622283605374734578704044194082831024349809253643443803202906155681718442122353713506228337107333804190553632403122867586155249293703668221688398218060217880028771540597063919955145168285168766977801192887127986691242624070104541117395678417889873116013867841060952511222428049588578132879663738243240693688458258164374970157746811962228915438381043237815408872559528978513270941973781395411404595577744209249966948991044526193212360641280723513083166377744771021568793790994232366344799656987705925422084820406780996139667877476044427006899536046910957305631931430769423366283361896779721790942206707958252580549023892305579151147815414220792945034834803256847800022566701188827121064658946592724987487987895067089055565984516430702393196254426709461560391813018264949586152155693915658389231392970612069130395719005038931302193292275537905801805371863517690887389822597688974082617399192581780671785485769852667421029636913257964262111528772928430279273151945340497834258871841966230336166948548122373631524571334125442643640297668957597675830841101538123515275417666899318247107825826647834430576144278195167640561168962467501701479281266704619199993779279965862684563284948513335847350489212098443891772690864625892310107930017909376813576189145841098487095797228165263728857823858594385432249197949405060952647527487346549186654348877397862483407406816713868382343793930087959419322094893866636707270546061810198532823137224555397237913851943107727054587023051637759332773456755733755758856817148903491136546273957567710922492182925107725334142879797974501591281197930619831512134302339585566344360257925497305414150921020458250791347405064500556869057857266541972595790188018132947329767358584367337691527801279025168379079032168791867897054976157217396801029283960089466787726195207837847589112914714780211145090357596338736223805588078658725924357296359478514454202744886989299322225111798901888893084912983289494291636534447033595367728337945659555148397978727072447642748946559821202899157175871888968409797014488552483196001082296225892295388085853918445968284060304306301083562304629498062279741588161413127237444439572499315145757805458579631348823271928377004741841894293389360069056013861779448976274166708882863669052925878229438879246812551915486028259350314316651686075969186098996491720519339992978378720583856335012280782665201156364556810753611287293939365271872525309512673948413798497349796061319759932868383829123486660023438346364024969000764130888246745109176406991817629452802228636159111514237390291654564745712260331657727885290033237318607631620407625190644472147557173738291679559596724779111122363840529049668161883667836325443029976570271608675942906113481237398630262683111687406949280362644498884953473013316877498845583316935215996660541005725342203789606009230425336965214520708979392796763425097226854463879403355741993776932688146971353955792343217895325022164980393597178112927042036963370205546547873813682643904267616977620356144610146297235175594514828484183938301241241898057992125199749129338299233108794628257296078980427733810652555037370467847387008822738799352137362369728017321067900117769325616527554441776107477508388717334313421446374408254870170357475983600740449746848927067693404264496107233891926559419906584071466747228772793834337176139432599655863859718098738975155729071411358486666368919024151405988202451551885794303845054871755839342243594616684837539263366741084676945915649698613636335529913068701906807720267766122577259619673711257661912069490429526419821670141600083747362206898264340158230424026064653969391347376496249633506811638458977205696417375855113606808143830734719317139935258610608120654729073994340586828022027092522770557643489778807403693736461779497107373871206355136334706452568121659032667338818949228823524373761255471245607599416807525603074312696406823953103310687127226414039770567114159789742462942027242201669865121748279440002191572628062751622230881239915425190101865483669556751772536404105757115361458596613304941726068307621870282961296401636975638463459128456286888189959214779779206338368127192225738214965294326346366740898145824239959811640561747048688349244787111344136560931803002302621446653690365243461533143797291827144035909792624388516197520741558709002003632937257204712233300617646966915418615979157972112490839635060394172525412565683311881798294152098668200321968793608497342066108303343879524908582652115553357437976792951091664470623132043211498051895531656711418889501206234392081370121826924755994388361535306336050225167709022303291806447462100025242180139754591628748614066882682251205887893058653009315675047261958462830998751250369408904711341789835924267715855540754853584204348665457360080988165082438750610908210839598354508556159732007487633880917727862482285387000981452278047947350417283786750380651687469330056451284100037807426385536520714887739885724053372196147204291438223686486142693130678742780207650975726571818496754418067815552588537759939715477435398403583902152548271544925024723258361057809736658088368746789152123953737102064624178375516968629433545990028139045128250111680504505796699589583178710680097191254697560313337074828817257520863615212302559467431910764776478818033726421554881166031716854652604938628187490896035265452501581012069353695877213885231721565156488266032534861241982388765335747603477827285100811811856849297201247717183537821975649677852593960400301437711573508633100800484549878019950084953982710933713982359302042585173355735591785306582715342087541885127270824379391105096483124669291138178261644732900886543628242110384890558617543566881457742822827938588308083860113211009048693229744887860209986145798557390078174677596769556627515807597284005355335837997839130837161216376784552644526500902043498556437980906075105912575837302748269736836519305614372385428206542900503885748521860056436384926777738947049825953742084711931390709579656817059391787789532299673156941094369821980394174336068205118481769340777311785651075129087164092069259991897058223037205674823597474088200801578485203569047742180706082735220962258312896537549383998952989971828106979332885547207414882409056914998961266013296437471403614624118143498650363816941538924437484627936948315626353856595174056202536717829760630233923443482490806385070841874581215064792766741603331335069349074012373852025706996021009883173893122407423880453412181211456315178012160851342417039405501635866103711882394511279225385200701933596096878530692752154898637801568815478970230486443487230107176758221902654472183437712774113289319870653856064035846614039607193215056429356217439732502955326328626233180462632069019478550088173838176656851916385225365716205013517900671130242024150867796221331510420756085888202029278540943853101065836309098081555096320001016067607491374649009097872914665900109527537186995399634773762193466680536490533302360358781223570681180734596276520073947562899910956574904996085679684421501894732650399992853946023434519688969311885599128125674171017459691016980193173101137240187430764890096237677196609459121594043367996544059627048379979215642439690341989774912576817961030489822280914061844855933398767007543735212975607810698187757660609217725872592356177856285236560304830465073484548297656169294961367743426573303089816582289253307278261590846948404775386916444638902852815651933690175270538223096446236884403970513063405178787744328525829503182082667961052790317762571425238848683734144660209186811639140516617551449317223967612334314794623740537859268250786079272523332682085074360953881977238677439149916176682378262961273768975796099741306553644420760759876685432851460094634074539270539010836037388473030347764941256598668250888296403814387818197099708918025594347738818820724333015984306398601233019798421408892215324753722339516955397638629004508106291156485986279578818233974237337565440140847331931160382028696270162978242446841696501371739946614297741552193256032945756250957318061038594724208362584741049622802086329275992859016569891497592525055995704491020770088634632417818623535901098775548868366310239787616141890877707946960259300974350880172702958436060144355528327524833094952394806253026984311851784787199157653659348938284005658799993767254456949653345891444404868514433194401996321558698458479215260080765510992262383631697230197995307607985891452981288472740224061225069015813599453968035045156571519982513751347331938212802922843341763235088333656534660205914638478435722455528169833248080462304512243887172773623446803154318381752832611899967675446067766094744828470630188164503748236481903083982823334381036224754411090402018378165233692516259654220128795191613695834796579821088984553887997342311556699664107240679503696170061663714498167891238966455790605432433938867403702192577087749771206702439318498772796161200223769778957882108468655156831255587638842535904261705777850486567725874895811987064822194091274346602489835476428332759464148594496325018831996047655615792145097678939513235526674690491852891603234985434230744559919920267270949073354403176608155897078093061565912098335705270034133556256258723423114222168154355811911121115368556224237302038344661233648947645887540667860614820954055501408990669253966689915776182297981555816685591798502858712555710474735378797129404134743222046947985138811064750365476732206767752369638345376221182723643073117192057501504434898407595876365233389938193236733077787755200624754831971076499647035209901191568289586846458565346983157314539766918842518649835796449282427968093278259032107512299165694808372855247454913856706166549539916018099352035321038004388191329784085340463019486669501986154525189021866681863881724497066026312634589141796191672854300172120933533887889585042237667675149321769554360006586902868871476193655101243744400040930321137345752777804676399707632200290916937332718577519327505567366931646916605690040686840385907962494718089128639839331011916079220047368809022839468847371258847402057357659301656291646391577358323708640392063814503680310159577012676261789939720639017090334043144197158864082863074668994649820391168544774293374811378381038305001215081665867093239753415388137672001676343691260455431233052190856564955722054795499231953461215452298477819007665553516880268009211608200493110854927737489819500844572830915497530381670985913563634606741148588833394208605451336701720731977198991523340651926639756661051359974356859619508011375657954579680943562025963512522351629122000545625507270182764176136355470484274315293033295561868357893267551853366102622907541188346148631805171952456054322496334871795099287246338405079165338353166546177200815525463523080773000415823190448677896624584569318572564299023331430224425186943280297141834595366626512363421937203016884002742619229780302219364111257969124596908101580103084632253949327679083302900911313006775669153425297666411267546124691175692884268698537937564193171460081937902734382744497907864342921878341894783619902990029434718893265302511218995828156303713863752443727982656066016889627870535904620525588092772602267538485746535054694542848187720844966728567443400962897568760670637457289719558721361000209238409868550900706007674683720641247562173004754111532384523030918805856065989934303065686099368056010984350321196066625782949249570475819758722947856258933336542933588693953490115008556650931787773322041953273474824539866350695347042666892926788198938292480389338442736765482926723398843684746934002020304227476639673189348091053529585068436399804890380125258882981649564471367264431606223985523788142510217176575287438534081595559669613484073381032734654726191245112415668462051606143685519812315502509840419415079385432631689055458404525983663988426796796889365554801489360913522157281636850420121371055077299289258235960758626569948106290903618425670033015512679211844292612728971185005893210699078188265420920900091461581163750003503736511872114965715691982698477250399095923801184232658693567643650687520783452588527744233214177004461324804131756110730920059302849243925429376599342842825523802468968476562136250115862694376259797880628617567894988437899704782866051910418798074635893474196184163129237209732393649166259784188153670398690916679056996043821016055583842813435227991393839472710915828344634259719103388976904862324163796281385415504690164581034406867679357946132580428715782494822392494441458290009343617000356564438421871863489638426682152475593001334061163033759079085189405318011673053896247630469745325726962887099253178811001353779373829709449069981824852616087561530516947071347982003652798890439369293605294935409402612984744495754837541240407098120946893125999724747183541481566423044510261440841001351735241606091471837006035497410899700310408300034060453308481666323189919235219070042035882417548212952928006828477530681475051198108495740753737294673959029944455959988917296575706849696930730927887072225725661291102053049918314205141267378514351909501434246214420666545254986839175922574822174163350841321723878702049324863817550924035052071593060547855617971744769175286429803273205837399325814753487846248806510241791007408813122605456779578395976961123101576613723157102826336136028013311634600334781451653614293244583423668185098853729793881289679319271691625093905678228986107536416850369901846512974932942643831490511652374255481760863245293902173578085034212956592635600235134925929656042166123079233974899670791097439193731003008730884927464033755080365903798809477977520016753657589533230295269546438577556090187441212303521750371814327313934429593500619132322591915796352804935159604411468516725817980104786994820102291618533647708204558898082071645636635892980360779226900431670305772399147823158696522657019140726420241326816380418259615349586519470147941125012960086753716514755520775836467373072067057375246950149806417477223941588221524591221050201658279287511411372018076952513677669684223402355817898831013139016786582139670438078434329085392232406622271724313016862773387462307538285973129047576369148404989283296800929195952754468719283975561802676259530855017125277285267728730834511889324477637794445273278685500018683551952329701346456810548825643925736626499147562422197346535226246515208981166522943146104275759068767211221558572676703459470442962169482703634143979419941326665302048648751192318933699232405552433246101273540228898703281624591003255935499349510668513786302605590874967619136842859857952935871402697341561826882313045162460041729286087847308464118052309583990246286680515120143427649204065446876450062776250090083902197649786023669491809829111442443032382098991502158328727649647174574389908822260084839155725650480703450627886915512089278667937060947851328690067214966546054113492520948365282612010495455385844036892464041454205882615253119975522179087763388174431534765972751517614885948612863985018365108930140334774949003499218296664069042898664452975951329586127635051514888410885178297210248204230967596489704088982768143851076591066891798186903326565591782728402233753666638027287500736453984753731071956970862353411747233250811191172044907535031110186992059580006368830504293894078572486803278338859685110076636073493004728910743741045962658136572454808872909649800623804281042052914519239660243152680261498260145526539287342643868908108403998792445614907104903990679084743397721403061769741783189180726653934829820886983084036624172389343403127375440277990205092953611469090961720736009927702958552669901824807425199930460880230613270925768970568544943618207241146087362325255112988781302392814709675712010963330653481445101516135041961876404604594073562667247307383755328016524351633785137667062568522906879361325871405610045530066526643202209230202674531310249945413722423513129448648386247056076222015349431610519313065596726624193267051573880851800656823904821606740334447379916853462518781738507958640473893749343336652110239386287241929725524387042820156437066547578424088449627087893605167921625572828061397788622639154850072346652877012093692605995899399963658268542167586242912953974881711827803210986149779661109567431169345027555080622308317399549653777062937814471858021415116070212069376364498200581965521690770537198198474556334946690970865610644230320493783712769247024051909883621757275365405629062586925058405231937296326385673276508728531420242761775812343000255318952352394497294903544510821236438854077413582289040287338453552258069460682700295942798975945795201739066251178452128945727657780477566809441870100865174277688159911061385257756855344760763682705987174546614341749498524773826476857196410904866127635263239286002212087787839552479159717772095119917845700320279329625155008063000047823811945236451630625834737801686676617939281988050264996419675420259034798761668685838642680939285284410963949202956284084645587156907604725865928987871309864409865230511630711864120862274907724548364237572868610889836257556356596919200932606647284212515061098969335125580709747545884595315429567473739319206474802390773842750850288828970842144074373342733653696156343140619451165785433940923461181414249376469860110475136875787226377993806804890230686999643627377182223236396245590437002328297315700525410884890553179193554208447425186094721533338166090216538070299808629227912621018707438355949479606337770947695727028919450609647424817212182762587400113722727397088465710277577615260640806628460428045064810719220153760937686799187106566841381787870428618443061389908363107337491576370670546129560839144544195675952747515996598119725508188870921643419165183070708799982087932702238562938723459728055194574124275129526881239548648770521164948206158548376034678134389866416689320599387956769067245554442744152370648223469593244415851082954310769841165423132782276967479919910408797678190912172270558615647223676174516671569787037299359342546653119222622745987593909159275231101386403453187278927033139751732842315842179210500693453223918114214044781515174025857535372863715699758119591171477787438177063621819960220022825574450756088885406951512310570615090105015868861086553142704236738989735577573243737402756916562547935004029862166680176669364207630531755844730250329888985095252628047386517935857011953255074949338541548104732452970356144259485782341164990455471756911771949913527708571920203100391514978660012772577558465558182517845073027566657299102596482299914128679225722840232200151635731026287491743453214926448822669153561232446240123954068715851605584512681075750031012415694685911321442779621249538672958772712551631576322740169516671009140936956065833428223035736726423398276164768729690631575080725836123375262305612649990631002871647517103833596531358919696076911184513819448023978230793398566960739223862090643933916091024258845716063455883645415623134866377992722723109663427327313720794297145919722114091367514396401751756855088141690997261180456427022897763936476973425842291429693037023888508833312582384095757637724489430445599551549453613031532957879515012722849054825240994994469112279849982061927478301301367027250615836803414849455897266916324566436341786659057778309938420823321998016286289978768591548317719483319311022840595237715813134621458399927558468769110691326598676857950469803293611928996061924158715138753717876152706704578523375207434545956067279471975391533083822374237678436807571929955985889841030718710361199833668311201011017905460513333551884214422617431366502535666804438851782519832683310418588390788350621508404510419584981912550703352498859125870819946249411092795266964109184823387421809104599823301208163956251045892487086169608473001272798124051981455854056169493432591359225687033914132564612338188949767920860481698605227719398865504392387516354204143080054171713949374075837356018219933262564139615349302659857721994523413369691483750267622298757104845157063338284810297372858009941298765397370746266039595293642865381936032962394161644757671410568421797276247694563752512108062899420367800854422968648273306938057103569554031885994270414823454160179321682559748588030551696638501249181390947611218075998693685130821250158064110804721246425721531951689409948854817757199412642660601430828181297289104312536940189258966420360670922586624984464225261833305308916367888621173701855020785770326296191062276042051256012540548144204549398170420712511264766507411118536930125746374550591354304616650375966969365729185116446342319499308146791295447736817799291954747934981909430696945634148323262962585453093943679827744589230245046269537907234291727872128599267650489886332212956139049181240000135702399822356709616550988076745581687326546144050571197733056155041875301901687885662496735139338465259378813005925831185253885544853490953824064356825246551483532036967883802000389601965112832139461781511723147980141147433378941101412796587396615944241580256578090947390701124304021536354205170149452866262475465940734615007227195110638562170473768919652707460876586338919437481349432641383779812983457621154660151502327071015542342481216688403231715289738901053711980602780558667997302332862219474938151518460069858585438939409988296181827783027650574234582771670679765671114278301560663615419579966139021980523022463129661678505909530560020093146762742225952371318055495112044329397420781480758013537498371107583233706018269863074306901633368151125126387683368076065326095850779552305891716189448733716461392216732191113012547816219050163265916699056964622178914906326818402659490612755173875277930632797299906428106832952932537156357855260342327271647923416639513764089891473259953116581218779431067452541019910672166990725332137145681112589028095696847843340799179022894103577000908553337408548665102714701871133370141131364951475275963028765605591347687935238575973144048465521148038118212087206359213166692719877249245434594381435816322551541514966449337485543602181076810025694488139321799666779882556977966863464521982382031770725222010717882896683091359886632471595360345247831684400940085835277906969378194704265456622220584637435166347670316357000391478717066997985115011014842722025799428946220236174811696523097256938185998140978878030893607871641853873827184791775915688695197175207189453272504793321861680219651114576985620080583638634723987089071669355607927315706745426200103224539068878939495725001188712764088905649263742613979320237356816725742877575459465767566829848171637449933672818988913513477375429742911628699169499386951975068390139137635838985108077985353072988754163564905690927948983030030225052726546134941429291429270654492122755574566539239327716291168826126909125995743493376840826206718526197995633847105170207309503244745393191835873798271994358914071895728849264276881196416725193178137261736414096722160007090322970107833651582222687755977689932190106331824654821064227203963784364141963905596962994256021220764700295326234242729778914553695555344615243147795067830823222423558964942864433546203781988993490624344268037706186112440357779915526746423071730754305984372372592259563367533330925890252603129605844665469169423152088372563363560839596443570205225244684136421217778486810982360372650549200487227572573650646563669793093119940199718171050726738722796682489414816288702032036881731979376050156704180417630377298314400382661984843328940580311165329618219787798537984114534486562652842836921021765567832843918916441577259571670359995935798449825673621722847781875550401500733093311514802729492427408983819588382495107683577871419300844733795644785672302227399186465554572672231678761446518220758399353686955942067962383309242960287276096333617848227565118534247176970060591719964860405084333975489534438745603152082000980737521651848228873471355266377465757418114718549678740966134653971789324284411921433362868541574357777663700203908271289663001226439700180990787958892810831268287787624224717476908274286142326102512540688563443779407706178806430044150751249523696674262110936360550956013466039777489940955889239288852598189475617077790611434383517745658558327697635399774101539214044225369845542912174226138624182740198100540872019889708756274631318433586415908867042410393127920560250137978396934567812497497801638752960089595912450600547340715506955423824707105185343231608355479605959024790573052097945597377552960189314778610904469614953115509384904787264295340795646267177409228865588569004520324033775680589972586419448002227206134252045517585984948294363917970210700919240968935434828685191134974015247374397016288299962535305123920310469637063232089572181624478768710000530465976575819838181054586729219894568096188043586020717094358071258722102549702789945568302397858602868827510125678124366316277734405613513449859058446798556762804681050784426079138725068577673389445315914852726780368165719508004963603657947264551601113369085143792214447414133836345978919499928676101373332682086276709758814061162617598731227179676491361921934156214687375104508150589664441269963746520483261910876126368347155683979718458122672848237554952590802314041140200678434709625716549072552034977335907560781307088579222090042453679058520987494295144220788141367090155955282507830930614033107691797976648209352116911798227332500185707024941717784271943185980767363091418052259316561274786698412797130051778681546181157123780427246056891888902326304086883310505840187716325932639649884866039038808268184872547042044912677572316867532357883156548333724430099282277478139120241062659459913423297607318474294494400678855793409423686961415946949180235584895438282829347144524829905936743568818531543668059241010958915419494316844069299786223129635223076925518332391541709555132276613099671802693196422241180905792798159072373204584599040930851429244633723305731835490953197769782559354690551108553653642887023354514551373965495269761115507210123643109414371443951799345314278875189646369323439879011680907289907975847386395875773576125434981819064611971831011069323349645024590664854579624695027331360426231834645081624025638356642773330595032551912978720586118576255409314526014310725180279748391712708305626036959028670626616869176307738097222743627340948368140803888175079507090125433182595554987178686524179958385693288192914967807036306132984443287264414678876398801375975666439780557626680616720039193550893703300617968718272133604812889729343334451199029864459385700064790581334744235478176217796230552142483231752099152334468049965665882976266902972815216638349673356521953952997573398243944307573093721683773279254120138196842645231887076109666299413943794967732205275483478989402382822864649364332922227749645798771288270799073120497820641844980564185340516625198966749606293855887325034019360734885079034734044158936797009821043841150707013102064677638548666218512726492486722968804329911928320479305786820878976677136913667224316091261146238700636435094967802459203189499649194459523403291155777312621681112458866662835451459327785490376326826429421423843714435050949436205208064277008711422135722023274627559268108770803372970943224009122505847517415524084112185540790844561986742362843897833926153623844392780791304016692227494648019401469024608507720960388468045355124260098533142223841726540844036495335916163259954566401123290886133645651229440334042217144056844192184630579687046061435057913863167217433483617190741237135245924578958447329865935365870197072716265853631983968221852407167731406856004891792707727675363809598344893346183914706178677546209341530053293217814007517658337562020240636913513538982303380687382922237957535098881790468596304863325492790415783696235271595969073253360361308324969138918178286463719261514125024989883183050937866925345162983307446917084856083543869121856801962765068371701178912963781353495679735034171789077816009328144043112853547225016350457907194743914049846756547181310174186167174464831976849926928699034129679846737957957011307266748474512352918260470795538825884179373875772013988384071824995655824707484308651825265394569408503199015831816177283616469602768593170007369883398572244912581839177993629678760909203106471386490836170855460931219568103120709528394240933015615369673795416328009021751204414244467522616329572276618188749135370003443647985020520382320956511816314774346276331774659493058785245571549795731266689614790050071907989743122626648468324586195432070750608589342111718069402480372455145518152027138533807521976793512530690841717549407032385502713794999791718369248520738345864439160549622112135997026532854601442839719424973579807052005288003836053352969397232079129792648854340511717491032193211407156643606107417802395496512145038566881554427719042568947586529511803283830397982678977429405495999955839486513500003940528949776571031198808363569659765946577166431817965171084512830927564024017521992146363155463793371668773346860796937610252426482360065736320755515517678059137720634243533266481697752305041909197698515471595011191631864151724312754246772267875610346424203273311030975298866692602689778921808265242500801275144476282976795103808604850480317939974591609136007729753368964878234943612151244447702004840024697329560787261692951819431066597260436122533128417897726787322273937527947123838381512238224064142607585872221472261769615536992223217154097611466080189603100268440290803017185888373961087163525845510831440924858331452794263196042435131977467838839142854965127085044735438964986590992850686614721315587503071466927907576891765374155770696329952420023630113496360039861466211304992101172966053096732218510256653491707611618779434311594433274958212290229819629178397956517598586486818482050589900453570175547587416772103995131045948269521753823536083488044147460144264385293675678313842716257214087695344501233489838414138851533685816483320616985214987730948491543775871957016433932266290450281911057227097708496704055672487660417972118273124903212945418978602533265319811437911677578678406522926103917725358790917021215751347556965455119864731282520768820931385926735484529281037086535267934835776975947512821584425379901918962399697675846669193006297512045332621343736563441361541970450744051472370971340192906615154285173794607358882054720089339418724816012208083302381164346304997717546645404904440481597809967054225987461856956880603378806237106095784524892428546668905604235464581700820782805054045953332384734675747203710750136606750477281352231813615059736372942818291201533878870339877812620813458370632900204711007964202084638966977756564971255730177788339067193789192279392114077911218533705140530567958517026575019546678311523044158370501785979312094552342231934548697514027558598279646350565178268224043299766733315775355342850702793756961347940045435939348792378326497738261149096143199370750718199177671330504382172841379285117638627940725050495103513902981911773841820806905713266805824992227947664523312649922604670572314369820830602384851918401329004910587452459380319056065453756733266495439346075158959465869371027931170961642978836661319593028521756369210761264945104444227761358523565575345669902533484218215508790956613116500155889808408212194957177812353984909955148144231445252795686462947247317781810714098765286837555046803763655564769851838883923460511045553554560274705244376641211314903740619515513547419403595015530621891734425109908511444226637304465040303776757791330050137383698447545615819212397513502190707973597293612518334665802266122841894789495175491956337387329225188278249095176946082750175019891230263877126615224493266124625909038479720181309409018950213040043691739144957642415669275440986746619415404616164272422407431621847872782945573803805545440667097899839595918852913745028434207756421675928087612638859080230508138273982790290021476031732252765220290715405632784595930687098752214096098948993122644235348251695460681508124948378522419941827652028483446849784667236255523535005448095556304132307909577254967875797228064141205225730089530275284305740646483914653807246820593743696647451622133580462926559453397211547339447438765686997635625359233724684815563375183371903115616075540400490099320954798254072422399372108353003870500621344960894466246906766830044722161958284526949539756504624524730754675657112551293791790496418246366563900651830499255954699980832548762890649092083504461809928598482316999224274142057772648925372655558362614735748552658868855848695014639983906029221189613559959612728714564634777831256397638675107556473452423663619331466940554655258881806323238725701645848410812676867729009423197468548338095516520791138976129536927015434900528572865106440316746004479242250979707041947115649111954308492442872496979831403029909651059481775006387546544068117911999442645100691519313320904127956371971379511356317075781116394206495582449774261755686751377524279099133882274162415607145314634528583509849660740009937732104089217578270894277114941933537320214846693707229353903244653037500836304123537047103567998063168239229572393957549311407912862775316563101415344546336403687825137904502938943457844554994409522962102119235161133461394736250975745913298501672450060974496634483224411393031455363728166388294304230204360756858440151910402765431181783698903851981706898149562140414344606186581300625050845197800510795783505942450362331465929780385209773923296878345476140629647843548291066965626313330414639424170889485742386964579667038148426733256104351207401548420516005792498961418500178210411599975940276556724478797296501936407851878751832957077842629321426949096197103262274934653602061345843589690194595812215373147797235865853065655295528230767931081907828862080251373606342936154788557663608542053676627052905915120447412983888106770300670967511112661507583389553571633088864179205768603471371483378858720153591822298889135012724010584699954916999182983312052658225001266296877158504452593903826090864569918846425265336289255913260534838173074251082431496318996093748657159270612372630145692163543934943542438673192695028927157650919425332022567058641066720542364326862928141465308765906934398669708754123948902399987033276255012699396839596063197429166900671386632001945283184576330257672563887809843796672259963229347170152465428244287881772447723586233874540644411637522919600827264940669411891742973132434846810639651224195786453609533492486061364493797303631631002452876281768629678689213242427829554734243060505075516073470133702570351245260770880466731983683045560945631874462113208640253680076035830243894202900756425503248938894556214013376358416290349049758276553423510574640946542373330319868435268566159724186040929736828063410862732713763089303263389402431433932994020767092885364416229195505361256471759031449148108918545251212650349391230956663911608993971598088421199763669793947206329072771303970364024712561023385982837181143573968438497970689945029438526960237420487933556618489035340561095979748237675367231636434950627435126309137799232247710898253421073063017082609371531557211688665727206203490334948856342145959668082260059722956747450796962489460205034583833467331500739279682428343153885470382895606317355356915468092052780227828692780655733543513667036029178281218262970228143756724895297528466458906677612747318565132818194182341311835382187518476847558156774113567447685373655736387097419235618442093641695716797488688900217441696067679029101911255708343112432030103475015495520244262403460632824572812680857864282153024843010397901590541021831525044371451535042860583328435466544118144168077423518593890809843021543177414277880944614259931212810781680774517642878717635049699170575618956930657885919230508839634472152215881958321245821202554230893877565119709868917654430323466801458233673653270707771604607656393252913458900216516726376395736403679791679530092326783546942066475737145696652748673590290515541382872771258334089895646706224461820771518707507898760811239242921415313551450933760700278436219436479215005930193623404161759020677472627645327561644222730748914123690304484002825307968776743739524887625178306261913664798898788588840699373212491998088742503924813015296454598072187768339915062070737324838408101307721580302465929392744702248533139145438197535613770024700571407609421657179347658731484996532878446561236645880054201961856576143964098353562577405644838260486483038789720841796796767462064347349550213590294028013246386815417641810196882808135230611028182818447343784594779269778234971901967968109971376336572761692729251129405384427283611885428709082461266452460663919933501197017031354772160313802497044407947871339490757632116254139214249059320011296394551863878464845079484706889236644304576010548306217136338091811050472824458086909443844477167261299962270278919679588183103477311335710009615223694932716284043355486337717712211128282555707082411969921832905812727172719099111864201527573117665764589994260448558341358346507134867505044909490354455153453764745157811054545769824871325934118423131237471224972070057889892385225108593136414131234752594497839526373369307010291569471720838845061197332630501218218765260988129228349110368426317061661382765884765440481532800262000502517929167588633562464983125783410164358387956917358484897952365362919883884969463988832189266199371214487415263180435528954253810336423023230752653868862155302849053753504289610398977410862858533093550353121736584211260274177336294881697694456592280242592261345547810296843109741584094922276072219745997042107059232354191530626658169826476810315292366220161243939369704091485380777253749787013325554284181732810583100577177190632057339543833673382666233100657693551727545643695929948290796901429794148644758103211640219946885518402575462169277908254641592654238997591317505953884205871631917465123604412166694100909322854940903131575369647680882122582399384492978551351810028128295094244362114057754629511463978980068287724553355611799146990360325152108100728807177963776661890539475759529174179602545049734552340082997789243265357562663009981526578423297600501515912251105862047995206543520467401762536374516840350848903506611269633666168480690144216295503923661048763889701826282680328586963399763278150245764467752188986207617411934826208856434968664447508264986337861097726699854574789624588166825839792259443165319118382466133748606672266991414248314594667098677420604724818337579268519433077983000532205313719838807557648302769539224025759063466516187579998202444344112435172133474563729588928774908652801977302280549545339544854515102231053036955318592757025603543300527786491433964581790286167549560822897654839729222533812966581848890160185043036270317506449850695635029309801928134403240022969007348499674243331562863920334981362811527846469952889292860875926130197416111426133591918395301891336062392042330769659434320233051524385814369659052092619026663246305809190717418436175939989876702203666169185020206241560381502021113869641091334418902258316552433691268042919656228803820489956428611905384310732268356987761942743207647739570987574609390985278694834613566946115367377125780347345962872601494799430859843741219195876397219257896429188366136222026478077680426635437458839266241967594987485080112815403653532426098109847177934091300566276332487121066860952731455466677135173039291290005243009858774680560593731378547565588392237530562856934329165980020526204709842848187085499144142037675308826327980416230147159395285858696296580531083442599818541683354493922529717996679117762635624873752800361265461975878338258874543349223800927174877551248393652335757062487995362713578225863219126828023995381759934443975246970640026853423070720862154146873771435132125959178484940764614199529378487196958886206436051113112157975181310198467963180063987034349870403854862702647511405196365147239910201932770115001560415712691948517765159712538356277164666838407806319695017024422291944114726066956269257329886803915179245333270122460550894529002335296172692670710311708589566891344543528482125000899086824944705785756152018200482703593684351392936482239175653341959251308547583019347915848807035752426671783446570774688168299370781064788045117510555046325887492958278713342847016392538504326071145434339090379034191341739832991509093369993465392970519035139354867569190902610836876844406722566210315000334389271076807319303893527664850017913731097993487436845332518967110808610857390217874564671389778012524269796840883762954305405662362076058168816424148777282578566651499634991417386763341170697418614545234787948802939432837381155868199396779644182325651742691870574812864912820605993704286875758291936353981096210729308604654250581923163954876909677533454742613070638427714102213153666348533393070360912777239024037297688242377205349021080785523888235275994937065345500498882906421728527996734101953670517063050939957114924591060809149302430694231860275416349853519178258691354683086408368767931959572116807681750546075676138288543164877373647144907679537853706062891021282307266712265757723012151166805263080922879307601642236357066906248840384877910341524422421127816497021089937818861492670036349660691624867903501721433004170436866462560026824637254752388991792099876044603240040425516433351819388247675571743364825120415136861108946747038715148230336187129574101510467969830245375382673114727026841289684062342672467106203333182494205437478758441229963529611104251438900089018136851816389681416815650770221678260980144282558392076064524384472990798888057610092786794914370103281174688723127918662875333387002197521271866195342182498712510237228588251627144092192429101604159797441104190797633904016945114524256580614740411498424857846065612476132896008063949902254057585722669814603368461039043253606791419574777058562808417077476673637786371233281710489945436122704022419552661006000891556582951056989816544218445778097600083872664107160050898975264874938882621598273329075633492654256672820597398970403672112384099326102686900034696371414805608046096284304524739484026805837739908212346951795799228878527068001251729942045174252685730013682599998974818087482360878047798057584834851270147174081584427060248110534019691136997431193212232797370952046270061383936231034443193310150722903932900833298876233859964449890060328391330842753764539714427883711065633589355929422811911451522097741235946148089312189175384117252968662342665874835968163423222458700270932020264048792521785263875504593907212152749976334980218610083077892532425288304144579503987181951552582741359142208206779202311883791877463421088707723601756893410228866996114109246494894203017811821006832767797479891220869899159775376632575383041913514153276887700361525355188579774928661410186737361341786165884574852964990526256240764558400167674107383643099446957766583477003068500636720954770963771373117846894889164909794403220811573571931421030376793977847612811493566260076133988257845586911358643851624530209768128243727051693900516155675866051245980636320116661408482848643250485612599094304168448472992757622728323153665498449212317607955131136907533160468386844895089524640822675046593576392549218199081040460925829721072780979918781483881354106078045136533174094118327504674780660777708893311143322200837182472787332200924456778917592509664174690971588737397088062344855180224483057851388088376142018194875828701664169678702619398030933663576773000008719393883733722348796244951727554300768871348024318176881244213999986053029074879379160337813462190550411488997997493757740355655241368045116866044283487028816555458687823588437610149152565742209806556520030877828354804038785637742755021503089894185491048805534300450871539149818400078103235490089431493581146368128820654326554304312043588557060724887669498163313643761619164603660213274711751478586437832218842331241402077030274884505503125570729721734726529804843590887459500785283411052228419557237367066340213663407708806003496062072588980291378055068740233020981009421906631756495965679963012226070908887650406413687155743692412092283369553959913554132229845833621050871018166984523394233997116989606199194151285541439669651503614351828676832954851617153594978061401553123788026384656805797136358192855486403395697844804722411760163778488256235074928559312072446422223940094121639159777723878099403694804333020835455920020370238791012147603256949950096799250987206761216917289658031637602371816765621747319376612758279448120709927769264135718365393935625063662760713707752149734384144609215167481379799559408487677252155263075062736385928620428962608082901220208974516542668781725560726116012051950712072641024626801919015800325451428665285131288840480223772051858840788342038215111291723210311604745244047060873643232456287747598081152314020265733801814522272421068710693371968042335694705777491576819326768648298166176161057187236438852494851322446916584064023534664243560844359597960682613429140707475934659945801551125863843867271790687816484080316643837173469177518916721940059429001671206070241295310967092030857411229682554285688872046653642309371429214072279618728665204275524710457601293221234237726353708224099748837495488940371807091443437575187624024903441470999090838712155704746748637884983702255135458088713828291921522857342211688093079799701892332665654211582720187029708087069188275887757601092604022465213609710436729818295936748763446247817157751825775413183843770207022826272698285604529755381193965573383197518556576992651863947990410445457871534766169027693256978192516369353725069465314556269417192875309569848954818728560185126291333245593872013197892781702906234880414194126260860940301744424304135593180854951858165479039838362197795124587262652259639439089338778781723345836809574021916730422199783485133796655673079489937819706603153365308794241701628483101977532849946922171306209062622745331604104600014234574697226907774012368931374568979939515367103165288725749907647792054436930312768445994047095115952201568790367071756118115220065973941664660893312613784875648935607999677463335473056059466137347464313538791092041958684139901869465011777205912032502309138777156216939045520037275246009468130247091992843457058373036208846713537116192634907085325179025771636486655946036022752603301853528419353603784595880483485341485558870125123571900016755167090737963202004208573045739459100241717933028226112291920091747730711072660905762056374524009292687746314823923285435682638389109024340627913783807881207773386899394650029699257086353156904714689520584463948959353571836287412918447629214158318094342974074091968558074885801253947970273167168480628978024406253229993708169812326601593381515455939868329694953381038310290453921156887085219149927233779599957574096083017042953970166119144607169590163325977091357682677796832476619135150599543199209315056048497428660887551042698377473176113951019753470720433261477316617874419116195197488105103513997567514975729688941444433840926136400693929603474794723186940593098805039030214613483638422073947098694343401421371057687602844517129436858865192484994977375347921050854452616048008650732959624376071780423220334267087917628753053708831325441223969897335754053469845723283935323433386428957965170190042102625787216076429768412457839338651997221352764957910714237796036919730288275171553366807377097873217978162605201012378865595119062639924458505798003535169846328588803118562314382415017877524439358915509597971703170535792876992247372592524866358415170662757655116402283348643871965711065296496773209340301527662968502454307116426482965659525642621182202972958400993654666996578779446700825427233378311187010722949267097195557114609201694890981937273956882334625413475667842795999433213928289523255146108826141689357938545740997969245623947092236621133014656222172536502245610694426562241064497235934525956562755039651863938782218782091614097312853357696801117183237604992767415721927551664373996324743635429389618120057083609052056191432541242642870487893226185003087363245333872106530252815782528019065665736437587676917904852022945525749925874261045042399755522422777114238616031591665349823100583552773605408389556342142311012739050611488293606918289636801831951717229916761842625896667073507452988806283899262947739255792293503809476832736086964702147755446613633300841191320646507688812085304352440101720906550242820264686648524828402303684359274818256074472820464297234244955957868346473271350949461174693853172313059383394577025667494436188128653730716237285066460543235023544805548084208722324928377660718886618266661778892986004927716068470771843931897662565345021737953309936124965460731615984249614833571795539499861057939293304168916138347960929959030714767980395843972873003168632512692987423938195024102488037539263536891328748762242521611890446380102198419731559354117892735672647075339788050234627127079429293609689863630738555253078740376598775067052375793438749058404977727375488114834564585312346789956385359471309860610555358871558020393038754472647794113569265045404871636407513512324858253628816850636320592520789189696747721254728958603269415033735317557317833129920687968351482170642519872799812054204241533923930933918039122923655152819043689404842763776501429996412830173607847191733028109471240188553155144223478635979790816443233934207520360408614651244324736932734394645387263126605244875420725719953784330221954320884591870147792542133080113187618912645994217962241606403127577431274850378847586147694628455807779592711448181934247629386661386847361210569283590880919122678465574210686616244151080285484680620767174026991905813945874850646419972049705697563348554803955914700949842957892313341774295527312311563405381190671041976532435166880981549626801270088612959235665247732467303157198619441037483819952809422445150298087107466496013277501934392741595769513717616569530625308070495350499757354634314173397603082355983908282907265069046619506174456378045166733065630918391109420599319800800424299511801419613562999055176677805436930597165327107040870990454041646861244382648145065775345463445523310913203349366093349428557043348911697702054970770687062182284293794041658329939765529744506630080797882006022618375324363417435086988723309373149328181151082372434219642147413885847192256271977408855076060016762702664286318941214910428504683582131736001843619993695885408139762987017700265120319893748040237336946333711584589755297321324798398743031660567684193903687202019249094502376418991776132428134462604740827356745382166684131721778287200711782870882954471303703715805532332651945893332873419949757629385577775430597167334277984187225742683050876472532958201133928517794768959043974406624894769568817266227797842930034540655260021818787851705171110675864334194143523998407062183501958660039569536671656076957138196630042686121576121010016216139995813998940670676928124031881615669167924868706337793705671178852731333821462043432242293320975840604890163303755851711772591311395518472130206288042088751066508726197151723987322773046930493727290913661888756444563393511987109072535033594943380110130031542691660021985894039672306214499670558662734958420962279328162211977161399267186666145621083879088484136555558130731194557337075674928659579369994689282641625988750214541257121023393052977824111947741827712640617871113335919587861194575491678491463796158397309928916982722654494269696556812330063421069708584045271796331983400771540203657421179599821881607251509045193784983668620014617143726290757972589747243198366661523094662735234870082514351856861500757114259832769688988016583269375343749641671840107895346764627628346530702945871693580920268150259380643034423443337316455155995947130440760437693671512113994692574285400865321045261363942960039754519403145207021387032658403538917485098968989545840464248192928598535336332052152003910157938514050121728629455333212199252484138937258638386821226381657951982932422057148039757789763115971829102993441408589761699199758984307280010825781982638111437683190072609563896300886495053627009237829927078945453733521451885993551577471506497674375333844298378287751005903682837414183897653817502854782077339641058308080708348585980915453162166891571804143636370972892390441283993893727719154262408727575860265619485361541396208792118659549981503811156709631727979814881350516660106343134390392307134328258572517622621898075784972433826665228416801952533717154714214404461455014005196780009011321839307000540619674122362095172243170287135868054795692993740562795751751553346228273248437071146745607392104000022614227464644025681267414124662954016072437124939402138549626383258781429473904519820650177496546370983822575775100983843817552202705441554896297504333369380201421266678128873842519973340731372829450308606646116709526753569037752292406793688588982319399954147493169863091174938345454992557986171362959088980212660154574583199413723125826020910652321643531296589081055087883776877107036983292480036258815221300601665035400357981564584286171409254268059697999753741805493461162235306297174909963103097377178752347420424153571550564575399486891534540678422673416250129383463074067916476487850175839023910696005099507340428704616510048723713050527777585380168615012006339060557084004529976064586810832904750802328337911291253432626481751698234393914317612642815675933233872392829260309428926815715681042226219187642840903706725784295068836034252921309322470440939897214930619101824821534561673750343918188389980977705024355015121622668410361321709954580959204634611384357077467360544518408154340243678137747071623993192768155290371505533073545002140523224813428143989930353455209787161496458041786263655541900955184106369119125338020876492556694934814352050232428204709041753286307013997542663951463227765426476239185686846193630161690588144722719960072353171217586398646830668114437699385656103472393387785419721321058130784277709837369206754407739811403813997136318270211818853823823918084323245468180611563776254785254301936247923287211283931219073976710461994191075825280773477538201348051717805885422637899001728235031900639637588652512180761198909738219464731742071814393815649592017615650900775156142955902553544827611420629519743888362044910939136865551282606300100551100768333716284672884536186567640129557810343269226424052160727368372967062051743051810471756560975493800097909474787993841679032376228151938422670184857947642164092660519811845827881576490643811633390778476220847979350476173859498211793836521477645001747448108647441680068996079562425468584200701639407274745000715770606201265506537197957090436930340367845071502453108284432879985008562808641357654433597393498399906517011641668738687075072313920011331002108599076132547134065299548567131395327690852088011528702320610720730014747717013510822764570113054881005754483806914064836225856431789624326236925384445725185948476546350104470927320853461348898323854710505292368350474732751515687924418475358799320558459080243284167062098096891270277637303229824687193141133428861136882573517931511060932497270879127860742486389663342626128650614089896560326017419083620363110431816139523207836796769532876416455701295582821942710215892707194029468941397040074495159820290400990922983609343140208159219263423499823388569235852163465094142212220710225764277880540997154114914734891902813144239106161675156858507927620779866648697962907099436321239799487646455577478370604263142335562131964762891518700921979574430097424924288748620553331967649628674366228654038525600019154238486721871053128544170890194985118444467596924685747175192433536303654533338441653945734395946555689988277158887571904370234885304935562608784064303654205235898443117397618943593500989005062952930336973970261369851119324121449523380016621751947467233870101526591074550619954007953777265002348497119866685181172849484556087931710935510930974865518067186532780724891481719586114732588612389976139662664617314806004992684457113210167209017164978260420182542136659647102456747666554041585826590116678714118890235896447042010854123626115145233164499932434239832639990420624183823341848643768436770713663225991220845682768398847163924355240601708327782527880424530250040773953417309778978591102723522726680002295452950429789534975717547480874802869825357858101730534230179551547807550871653151981907949255237244503775778468695104139191881675245225468381373803541244578929083944578567864480221641564191508642609672297510164969644694052396339638930352909086672878477526606344355289810094007011591277880084157031062336252372398606547734461915252438829714438031947141366664535535190179363134796664970727689217622755134552580893290800928670562464245168283308683268964450276036638578339617489116748901131536106027852345089450372171236271473079848301720472573448941989585792011229156547263540967491355192610178746235432513991905237228946275913257262692903286813849127857830318529163861078862093228084041680781073671835495718636535131896042478111785414665964360406874114210720744832639238703754357482177968191954925626833033895820614396473526635185506227349654684442757278751578304146014754528978831439729662305004060200415283617389345316939754347125772156081935568770043490406465733711687446575101680058056669100402699700880911396110617278393335110561204163510390985296938044003484233103365690629700938416911045018636716705200309062395453607529773407647474304587640397870760478838381499354039177869610626343572608058805876412685930209219137776804420507518496266206130358054841293940397898639544286644122768560474376646346242560560229861320876989200401315969783135384917303533146867926923522615509009959237466109201203830649955786895591628480866731746115925049143919210901615095331356077870911479680138933096576714996208595878389608639796103251832953299344844304321560718405485981486569487396802849154633064439329224795634811242344607423834744638801633065859596958067729152766574959414993238793611711968781435615170790345393156080408118367650769897962016859765674010440411282118230153994230287945835095213923628821010532003151136116046444909932896787269406411697606856687463038390227802977781793957899126223806136084178193433647807913754918046782979791323740575676057144208383022092696363702946716905734582690652331412781207304197469059029424714642598848291303171245020454942342525013450880840065839524151386436601254846946861212763348743976312318022477414689128412390257967699282142580177813824856523018213825921029496101233372691349826134387742583688193992537293960215100269969558129739209694246423771802525229125676171907934283641972100985156048032663294728320772247976600445903852023329336846671591887488553213218921105530532454720673157976750531892410564276969221844643550647896123594408016504944822156662207714047252602258606572958990500320625338717056375812438297790650455711745913168482586851150999200813072821976581047400443095304637166302212730709989586612661736956711186804514161126297182133567585453958393702765614045757172352214817604928301931449332615541579853547619106392220754001333512856048553661860378689046433099585898791181539964598403044617963796906462932637637788682892688373846768881012711015481819038300013804501720431610298103066558325620590389623934091523227543910622511149030963475150044370458455597577767506815570673669917197236487476987400068373701090183306116945600378473856668640755091814930059312022525075794138131679126079137292209180922558369958534755674494358446550046592419473229674204088699894485516553843887082105645336595403212651530367174783427971705630492175577912676389443566079491606146867109932441623418253763193220325729712972245529194470884462643738911919916895282541754592617068746249378357703290981503443124341916393681284559539101300317274862422560910489237055340227506120958024875603131156519389839169662796007966399835154910800996232002379763796364130391336011639580898337990111911491512764938101441775360963549476644523262313870116864635584683144956879685347639593826344913601017270046575018808899116254057667106701783607570254789535885578174373630161356840483102848176868395612482035234308543801229726420811104323583902450733341199830615681263632527565635228003310993576846224630816770618796462552788272778583290098716765755919881717168522511587747638500705094858453128214853875993670780277852763459618722294322774838679949216820461126382627289806464836197479210689188232072668630963740043232461292661381701003691054074337974870735219966582939528924923809963471984807465901961159911975890965800403168501769643306223798035574725011217138388590799528784201804612925009873492366668647626152337138151170800872932749733467804039216531571630233488653154369786897054727657522995679677073661879041366525454837865145216270310458977535132584403503779086586960868867887608398388501640719560874968624161705353413864433026424945424658400890090969650305704954049872431117237583970729334763585846688442609180086270242501088683225292184282154180103103494015158620254193513598577618034547364611586702347110986601116055814934751825079620900746106215825444276035909765181341461860920779699321953690512957726712934717924066654388578725161762986925324965685842455188012014259016075827676914606532697998935506031168857960810961823303080187341442414058496646362176067587684929618748142852886789828217831023935538758423355890547361517988971987695774073187031479460456565345101594118197059191845964949662744191626668012048882403751994449590395251311697976774334150729939436424686414131681317677410325078877681812286599400176572142637043296374692459917240219903220554079713252401645979552910677475954905037338929403419885849894164830067060903494955853263175066925775085515002541224216338853203333544148309406325024353449509087306065509964870477649849366924693434600096599183780012828726265391077794080136510163109013742783342949380695934008580530463833992981049495547791394041092241935858566227454505597047746935980026808962388698363135069532285391672530200782474019270890684215427218015499603917758114768102595406676319331992694184047167452653572163826679680759268890908479966963952620288503193371953151662211898720664434540428760071948857269707808177272873230369519587574850964073803147613382864710751108339305410959176245822655316813357440457175940789649866232270368664308699264680239300707691440749306451578834696757706293923340940448450622448774786848691899097225378479247545081375964046157291949761566650177682070355953502566559567200499167808774901797938921064591213016983601552974490870316631738836470737439656793147913788354230085166388165686363758971606837769046243973950510191828565030403104246717123532797532466482848716480508591374923619367124997496421688783073951938134075204358151372159802747660238958187280884029584125762983820795086412699656484717418301228597533123280473307155429878725940721053981751833262992009042500765204979899424975406863485335972674533650644418455645912220605888298644576365140857286659174450944321010045244041159492759580251948566197121964273711852215760291499097440382302431735178117308359213401577183302914801005072229727750130815810304081280017567724414295777328660065036580920955511308168942230551836342777151009909453377108752718111526163100743985058483479057409387105236360399324198970919788666585264040764916594410305974818812273723898537998965804595386902714200634991072289175583307311115646971510644212506636694230943311098998047642347946396895214031224700247861475319568527451656963084725610988420840019664003057777504509586763588424864336997010833730967407062475240269466759078705066425902971342274329323474907730688931082864982300843502426419591552401746964335163462146645128480119917758981646383682406695821439980242906338759385504021547104687340361230272786118139943089407833181627728364193436817034454123166388933824953337793210517025272753237819561592668691893430942731732837647667845779478976276421872408211809089711506142088662432551390220665285261164118300348371570789009951046389748187453104466573513738943138308573134688580988919811113702586154262904262423149236172841533072355243829724554238326768598679150326945385621703566276351703309960155897210682460485528507298957863152573377612683596584888053805797971369126546989581739718140506447433712901971597526305638651344674001426516099732491464230239473433440145298081686835110187814855124584257554948009859686282685797365664908790602473993228143413416642474222877463025161415813790864379711953969360212311666897294781264472333163162661465403835314114260564871590319207090390172604865814303512894730002254442530271007961878439278545100246415017011777256245601222190397090719415248628299079275117493535062826845224659018509732090755800019384790385588397673559007222137201221623581840120445111871548146694667345284127203027806263103870841893857490796271260675940752712821896071978401094596174436069744235823861790889388769593584057086153815759425427538295637509514591649746111580387470276218628578365256429516402066383455394940635897419039918149131540213558162932537059380423420362993162024381949461013056910632080432534482600995984567714194170432410412295914704825259011092123277007057599413147417601857846727320114592152975150762440041991705297984198282252760277560220314829585046655666115081911084053044777213494623892373850796443197705739173774259178230634201003834594522378574652405756291348849280659089328917439006368749946583068031457895836111885964723273374246753980346708245870575800198104212691330411320946154239456506958560313442776474278482204295311671682164076099745575784910121856815200415736667419296295713003481923938610454942840510127677392625279082880420566547035010297572540833581650611775217448253249518732221601325026880354708962863603859281992930289721154912407692800741654056370495225828523997392270680871729487401037763152400070500341154088647384407118828397682687514658515553013569923923554642204259377498375663461600969455999498338243255303590437136884370811543859499956239329238993041508801254112619962272895161640000993413952109905908297405429349376343141887875112471564357412583492076623133128572787455371626447871059601251564006805364865890450943863891861658545788981772268623718865216836044041214263786782276515902036882784078164164184175759226284769522669395720174475026168497320793596833800959979533573354261161111284818890378406047904641529588269762171181249286323628326631936421907925224008133118836934232063153405237426951199745773533696061280163251377510303294581896597068489756814482456879897328249765690667500671395339265390770366982030999586349783899273038304781836848167539300068929133590863740885422014568203146033472597323347285110181230478260441968112187783276698012575897606144072032204411875834978044940602694139207163934652283780004122505184219329013292700231882246380271366269553972194033062695604664977075095855084612760688841707094137996348157199207269384744387886417921899006182096520040719797906231679831309416604820468540616511412751139295230353151318561946203853565308373753043048478382346698610633545709410883651960821868731266409985370671467158617721301455417810088228012324040414308976727689004694903244118466142861694240900517796287617839335044286545744748675433209259326475274277447254844728732086507164799346304382775310795721699916904356782076937762855981922591881913524948081387574291687181839159630232171605303264249031938989905753767135436764634378162182842004148632950681289345363051807669430033132804117396045375874585039307354836792738574727449302012126089358350651342305083752758354839514235173288476449730366192118944808598744527891427467512133254075441116163934970179194714651851510975565964821541411264768087379635695843036253434559635695685851943325788576293832466986260423709517164231714297256794843344809524885063526165299687452606551010246911285354051102046366189332917650000011755862448354041359217089514845172549297158882393645514816516524436306491924448416221740471578462953787866583753948549823737644083024590363625944626057893310518733351348841089165297695606091179623697938230957647270370020002851587058324836643625459856098478540284623930989307122793397683610294096087221316193292544537512113176314794977039184430233577349882846560374714490354173007732682108940759522155088361816919294999887445934035758759388022106724148363699849872885857952350041220129319752931129623697873004069773068851818623251439389518485753904447647958157692242433784268474793653046994051010823326478331791928850814591862500542682560411076260901778107837626598403550797653439723778804713985453476724181613287309232338610761914799376475792415149239480952954840690726440027930916320248517020238384574700858484573873247253575681023108002496013165918070428706359709453121600042799785924944121833854390838209501864751866219554258765102884970228399644058453646109634269526844405178337636481478602866564458432467875898049872618667786217031944195870879313710594461532458284812022769394121575191237684173393134589512000415505283027339974445011594160928205460253619093790291089880919682748917380068200050131436170992717578814618341655735942257929771948464248687250655005328449267517649895841862632307637927585045728128653352236870301613780464676093495132342377896775236110765174632540908819073134892634439440366386960616437098609608037523001088846871893065296551466486147325898763644706207013889953362772234000045899413263909184529210263105385380297451151861728612624264041899918322754134041816906826588751226884935116892006632050173323185034461895035396994124218859917053500026339596709072074839548467877650345196754747839149449562068213241563843147897209673880461421379646309926974438782267927718270297460231345856427528808528997469629143586014640778578143936235489910113772436418212120054961822167334355255290721912254137762559669501754310309774337091736504839040534413760996090916971257150032821358583345692317347085096131807551361109349896247150781605310382607732514772142820564823540600813841385946630736844073762364458547045030232084600129113201756907033312487020153902621300286259549384273472635928199886773685613351446040200973031714401446083767862699628940273840420620711097219953882226337559270816437196608082017025292558063712031940514121017296401916469077818920509454005183360793646957719436448699272660234627606453653449290631306192153625659756536637319770160500165645074461816374700640141348768999647836352256107373388623785028851160703712609742417010858911835015797013257213216305030668992241747541724488200047150094696242279842220415118863483985238538652005120927332932712616784403575570905787296119857021001530297121472196176143179606365150998742085980602477390980370878216599581447142532299753500100257219533904396099411241948798803172182996722049453086355374885395207264859870938614848356218156768641996330269768048402321947567893405955723991485991423089038959334908313852923481587612181213085776531184074259756613191292449405941102153062223835869431471710451924901072969436956579087498803531490284739329732325284229101767415472404631134479114907011506128125067218239755681807091873597794858526699765581134757121331946386789458346441836097595798063142413673794442645799660100283289347787282778108196226729942102067411869617781493314513135811377136096909090204736244727799787909259470820148699909489608594312859835842783865203285999677842866066347062971507928176618666805840513322439257157403661704795278686664148027920228445912644884143565827104771552111186902623268775960414033023628502479554644625318465177459581458702195721896496279361264025066665810360044983092539371587496919226266935152497655480483013113997041853030358705922883186568421866582442932504373418425990678144504367213685076543836966633464924113422660851033372598602580983442656041548763683773752309634388650313079231919835445801190385971566791505786199092987093272373546397741166395542349721350832570291581663907548224195687672476349527823901937259692523336903397889015195543571079976532062011360799814026008675342425440574536825287216623988280139611121330264798212736037920037825303069881366706336406944183598931508042235831875025822859529683090170156154134425256991222862919934804976287641459610758214361585321041094096768921729123768819666599755964866296402480266945907985689368103695531126084099334180765307329501918310563957152707906705225474555428923030184931431065830846939352163269785506530611253290756603718778921907415009117128841952894480894165159957830219875989070147603467933487511782177397491374005030809006198351219510349961140461128396334741389284161315958877998265397416187854722139599006924762065560724434804516671604756609834625530401256739934781144181517790501442419205330994405036722468794182642087508321169997174742697067073566125981746609798220875578694369952873273962080559443014359961251280500130203616613665841695719925967094200329298221650546175046775629936579694023018665260201457721250410037584620386362503092252700249115102356477583228362539413493481939761463370378346668308105889729305754282339062880360879081475124304484287215176203026457687848953425466235437562699645687634864081097570660244304539232212751452460448620894732111208905331899489150410130022749346752475662896444811661414093449695808561099251866554957799013059800025871115151581187629979593975046863683384301163873145039365337818036356343516955113199440196109578568676516699567755663581955210343495898140108361166530368450268386485113464329695239148127970120234076570151155436806885861724759920895773599014645693045860904392396446765611423000401753796369484282568559084825430793902762083278652889286634144741674916510481280487409873532372834202517199168859118911321770751663628360406205267470527635822864172277495593722186554637246554511898566119443248380081146162288960808401661614200987484051049128547035191877387428353546133154456629346975707021073512601888301124971711356156040346068831285089416772362864627566515149327611530591296587386057639841467707923290023243984453863333860331030114474519018110495092313459911278992857175022633620434298506317889305410316654841305905720876406372602279156944042136240964895474823950636093065791533519110214709888414245162799748590731624887152094001230948592504776958083174042395036907401060332978504626764151773275845774146511528272555206481555520181362218763877526250795677440186945897174594586174271457045375552782131632552854767029067971603560982937483117458247035852494612424808900255119276721933349558363099545283579310843701011244658223528255946338083360723067267282763278764540796664658181520930494237008799972775007912683055535740256985947376624609273067368085063991473401618826508115759929273920163489067777742122832876527793568545624668282197684036877605643725118457029955747335452866140113248190929302637343071742091582031947936983269585323912812990198033061540395061566093969589985222435891365299618295171230681777842674109855039695004108933284990219141455774388474589837274618962351771148459811318777440043497495421241729169432181132706043528301429957738581026788851240241052652931100692374295120148989609571233628053881780043153424038346520666552015528193753414312762664035346755323315718762631368547242491873920196367906180622450158740704150025878619169942988675306479030665745893969299585409208526867490793686058758548214822922213128509750356513626180626433216183576595184475928499783867958111026325646436013638771321821624533194044885417587172250771531918011252265169565665416799407921315761628748619534513114741799731103257166320934068307874388272677475001358330532885303347099251306411866061605344949758177886104421538683262649777299511450544698166485986198524038619170093225857314213566021872375103671459640095537974434722914704518303790490590129817087581630466279415526215674421685461422845790887828478778731922635647063379722535471000011207128132303194013144189598092846684649711308961217262784788216254523336861765969071076316702335493601575209731981673959499059332715533923428976473249124821599025238110017415688414137535841989511304659863893049107542938846329745763251097331608613222193841626610886795321847010455887490315614676528168647718749072431947368590042857942050142613092468803387135116772588229979477867445456248628174087753072229242017776714384858645991575277898538675143555076490909965099685404679438495095938368328939239467800852569165966562727838986544297477850242403003094825707206207030206171500350250355380823949728700709667972193603786015931164488857563649218401813833550927495716687472824294511026190823126273373201268712277757476279701507841281849325400617268055612035291357469416547920356573138536735746646285575189889655504490636050171806914228082273213570842151706176566923405563968545040160507074328408259552415939878018448405618420474113993205367821613224864119021955115031784253309261189760683811742663784586028081164153564311921747797456616123388472473190399806647272851684977839026215275313044314573115228042091323138754511801065985944303889891749792026792287543286382253970835156051075776618809925659267680976325071453227277066204654782821697127812965593222487315058932454577880893792866821264824906551696626563633211506752742175192153932909382927067234240714020621933415388651854836306187427126117687984330540047649244382614182432912663627409241547758468722762080254989545102488901380495069411063695633269820168305123364372622579746913187891298042387212265518170001205264912405511141247495615579632241034371290197269763823179282696298138759183360382427135288674407535898442881403309492253384775928043905312605195576752624540317279703359069005511453872203676752930495337681958485428394477665065556062345249725595645148112863009880156552657917815719523371841004555578578788314849577982205395697168136641188087137199356379237830071131851957307667082798713966903333556677801053495865128855426198265286962948345597395009768126632077242317603340566714180525225100379618693317016296531326298849370215407807985445376387989140292516794364892881626379979717222540042416062106019031755801151237200464778108652871619222363442504723137537840412272272926151137998096254701970234060491727856783233994355434196589186280628958213816716758384689844358490702807570689960645009399250895371520197849330338468418141828074715028945739949427427332726919356616488659799306831288816478682635140012168755674012388790900526538370641762268629410242597599367985869683641714447675852957330234992676121941172668898317692722835908988091057689960123174366900882852441678271999484598784561278594621243417161758203095497648757283108722020336467967432200666980529200889800016224307704800658739161959083260356755432476474180676036921124979229316569805554685355156926756576448853711065552742676600686693164241146050284952037052296540028648164849719146136373581794702004704163379960644457910206071682059757500030378727795248406537500752859686675976730137577423152356210836833075213538251200734168698604396463526399531717161141386557546213368222734460634133213279897458601465996222533803625208114957667775370608439179734496291741273494327404393579176826214679507484351643365738481296053447747267422057618591894635892434005242711174473545188882485546497901128897202791994438748926818112417103324197844949499721031959766756460352171573450067237971005472106171869003540117715011748570371982085211911761502314409310335532005444386225147952245445066881916792037248818839314669353254880346935904335436709833400328719904958616242127790402060738299885142520839272693879600078743181039053948323572004217663997747447782237704557649613338901940195543695835234525365208452847887934542697805006209000473112275937938962523390253181721589255630431717565308510642347993968470729044096759131724850522865311393210868330262571261882113093953934924331560188099221798599763992583197583676606836867115939076253341608131941691727058006806752011519326486645360445914973653446194662699521845187787637701312362831351380646590291063739506899677607733170620153260064374385233923686325810096891351025222623343191962911342226608828869006612333412605429639336854575519634983262593058150490630574530528563783800300543507759958429903527749996260609440930725533240796923326348445376662900293854762452673418311732864957857434208690985189560464352688253643237260921653422200577927021440918455314827274689911960930278573713955489482071642850603702831239503443880276759050751499833328556126076632790908915126220932349925388110609341728158553915734018589880240240814296567933923517005022189710573847580453857430114549020771495842211503778166352347675177470853617808062176348869985635860935955682680196396515571061705085152965430860575230193574348697575277407305155737823117836815667669472810537911618787889797383757039164432776581710405241070112321665580093845302990610058522156515835007280500448556241147875802783119062105173617965495666621046759855106727400209440475879831023285531500912539456611788749635061177284925089702049679624019334892254844280908299999993287569549928931062896108004302847542794421528280290506094951567120023647931858964836546167960581867567843434891788004502221529872879769509855227870258692396372638558551165628400522739884644625387033089407340980689045415748795237774188534677497739347868635089703393071778813833466524305877797913253006097566098929184117831469300196159994249306511436702409694334949593679496587361095344597944958929775801670989972795801162616455047950493310612154482657936350982350009724571380988681211641237327380209393476816151784526593135306177641579164477496255420004321730438547543098557389711541949877164685091176859734686701581643096969520972895216962824670921676525357903375845518807824338382115210728559593791840528517816159639264245230694698072927621138125872484279561690057636939425343050435400930494453797874557100717672282579202539902003856981673120262189307950291782596874763760006191789639719202038651894680584589493063664701380205619294136346197083746081471058554049365995465546260202597619581752498849775142383951502354978765589619983406305519363190297330325646276965391489281135172918693899975669734736573275418589113261590536603819007306721487284212135939412296063958668743232928594194195681324125896178027713690924413070072613679820982449781578529675012124177995992969499815246171928645274044190683513668826372648178620743880697439332788337138242088021055762812696440249322571852316592070384662844961090855390779187513500071908832646727153082019199787777654660118763294761100994639846987135811579477473440274974614053213764795512002531057547513570429091185741393563125034834197501349042537460286957719710661259118356212952742267074488727287454533209048526150312249717235924938260252070390252960967876090855892862392637598873215999362408341701184305598798846159066147095692673710250764400049059618971641538800150253204299203038519946724230251914574787427244373881509892619871987228008063677100115844172058791390879089763385341147509435407313470800164452778077196817219916306575972519388998975231715130480428620132561414171769276016385698075917965669536249916062142963724527871256287357317253920340632021850293172719199330130077940618829721883814707628189553325261214174207012605449308538184371324259485306696062150159631370390791028555152000812657024937700311627584365788893154221620496453813689090286216167977401641243770146950481299860086218095385935738032436153793805080353721348292348231554594958235754581464529000930217075585239456911083618920756236924229232982888492430434839534268672829570596162273903872775047343818576124556379688119883289983325017844275270886676380470430508660276825212912547728168122509658689219723608358508765304374954467877174697911628541125005528086697370906523002184716584704437072590274534640796582517989469942095611045749787433730939764326182284300382586238825387963822347113808800617028040443981997424772316721072145540581391025260876879270249665797510883403623962765920250245821725819178442291086113820138920263890135501271438675864565934293292504473294887845044403831768262460493631046654348876438880885411532918216948539144363143800025876165352776637496069406875160891164727310933958001567945169674952960464815242134350539095169694985202945853085004153408635735043823740438293678722428316755458899346473941471055700772662421645955677232316128390465589162975468541428874701104475088654522856733151404443579194643457367648213704730248816417804301787516411137947670546544837836313925294779157616859945839911894620937446194258421057346752620451866780703505233736732203864219268047531823620638824829113409198481390384373065391427500482324389392764256563237317366785300573131296695449996866043356976900552822497957425853889220510315583602879682438177624947196855615405940509919954169104292478757357115493577610239873048572482967991605835548936640442625112157348467261610705985132911098808143597237957212486459016044931094979110384085790993371058225015006616073605717581727213230826679824600567943412831464179167765348164226930737987619561108257304135673488539502494051673396050143743279908685737567437325521505022691153537596954721541755160158237798967362142403361716744763771812974311122897668401581430661247792032256080877464109574226749399900242124339906305705952810522232925851653667835322024231502163457925870655798001724037621063725757864691966972711524561307553744393673248215320726791585613284488308086185224360625940688099470819251527002655441491237838498489081984974225087955258879396137298124229182062245046249644079223593183688972366968722286642104301507607269324908884336077010500445167934984422811628248824695299825735435051782574156451660039325088389039592656500846852227682285640260121099259597098599606381957452340763870048720567795074994530973612328989209262070767685077737364217439320651855922848163491257922715827045306596279937620030696399935092621073611939271743586428953804183021166836015124200066514932877955995236898438062659177006115945587773863466702375132856965270190095962917559945681651420484393071871706449987520524644455805783198959979228690782969461254860489554569580402605204471955971677951094981907971651945913931739051520127953009058260941421739392898156177228136660502397400068035974040606288752559636523204885427812707659791774595007532639997197762543580843777151508892456783913373554981765119861513212936400704729658238488949905190899462988822416813169212423998650102236821430859211794628630105454185548551449269963204529798698670759386363900271568321546451299401204595394960437460751688994117917668869146749567783162160285201074715220592217263851331871940447727161010136815657819286525653579631814399834860439662704611020608364399752519587087653700127775781677877848298120783219082967436306227737427816087632820433509860283653848618099713694874362057422395253444422249951684672021316587047966487808901588675742651736143462831427325379806357432411705184649253891863716269935017625325241189971003222281196429043027919105277138463848368992525393727576803244002078221871274547123841367447969729367920815024857025143097091069951490128116747824451092147703793050015530739659978112659268883455495017430494390589333098584769183849170153549331461814140933339642732998706377518817890010015933659025898799937996486555540126100886691861398886249957328968581702743017328687701640430736778059896845390559358388084389600076187966862588943675260545569607072121835469023635679563445221761782674195683714787779904154980094023685111222826619989440991984329833628919987264351762289552414230192922247824467303891160955170853115477528992039970856481029719850438735432364957025453574778933030303092886387434749086487137684190548793796150225150242450263120999107770757619907938246701761341397377591522269585772581629259106074609441639920642458946679919229442716039335548923155093015448724422111105299490386134361214259462180387207021651308465893295972405803552279272196956000500470813891180052541091032736319719553314910140348607329824766895006094753406068519992911321740965308929930939777389282503559571917624127847015760372380054422806817996980615842319085803223172337005153643908027816725308139179214579699740157545715119075445198818707837559580303743758005752284862328066469162437011264292923908329999255082583904103535587043812795224018909297789938709598344591097395319780778609014711247457297031819805757918966020939474102223218617280470121486092349065477760065522184457162693646408470471985295102692577457962892480993333830454459204359701176927417846824149416094455395355366500108965596749197582340032383030531165395480455747120541322734575912624736021273342939443995159205047787251608911876026739751146534150720474428806335540720980056067457105061803316815807829729206886118282062069151732428103154753899518960055170057987708613447827125331661144490579419305124230498110519882533368378114944142765380509173327841604162523983332213617902808079089042212274970906302250208644978824386824987705333147331369264501226773930258401720145783118119527132558370721800894166654505391575453702880053427700036792112348016897940891340626930286416395871616524559836673769641806992209756233092620381252282208453019188533728412696593513211659640655481043529832430509884903706754726290058516220565869874255674295502795277876788049306853611791830210264725490176993022885017081421137703958476197438235634315116131510997289103434055089175972772718491833761010301349867430871658050319437506328872034439647811015884255846099923089575245962517236586504583740703828896012787665186562566722227754241136839887174972223862191377087085767204896486770119296172953462078797527709397432994329104628304211469674186773847245113416868628905874999243031835906285687668965130941523439546003173118447689201496988361570200842714296259644441079785012509592562274906187912119283103309272664668050318369243645719157846240384759976225875587415088181809103081553989897685018306201972537344826279767279290012636736609756684635598553687534456799508239274052034325343942739945081068479157408324340029093204217245903131082117143737919037088253325070936071461373882599897595729449853463979888800706142018364057543501786800388061178957249699255750627590260155675651718953948355299015127527658568795505739204866844313201452166623718753016485726966745996867829858187604973999322181923010348368039824435892203898801379605511423781224282452510256372528804367587671191048289137910590924134566774756260089790189863351781133422486700178357547157823502427750631489461975394343215684343920584781430241136396753052360491536874642889654490470155606150997540331212636696539326393719591145308863136231331183042430028749183217909010752037601296814245931537316820796369608808634351279624763064740076743282315908700554906004714685059532710964119427193077001390839901998451223469504161900650257321623237337506518090880135480360411484332320824462260272271633128066895393222362115718749645689649714833377712231143248017878503838412094611742287216203698096995103344503070546842135908044711379056879547382200230301023055486954784283376389578839710258508670380869864887817392235212257326321920640912104057929214676381444878377993159499253081263973159663065193057104049995600906682152106294888590180399482201418785831955758726565030618434582371494606969844699248357692282929561771274042571805130127315784718202073519863368219132095315553725402627380401514705078142407713932260301600961090653145134180902786264709490831855999900589719421843289219527502543089261780257240722533212056720508969933934420764972311467201646825698564607675672178894325286801383767618928382222425114132492964326000294184067009137019075312384034641887677838666476154681731180267142879021520526122700830443208083201883540194515761321853332487074519943098490722644336919679823803766828692827614102098943214853684838100882995299658529777239805654930989342868887039172596017352917193009673702274262882717236129960044976897844219935765676002745704818056391721493157474667663093642609250752480731792323651335341456573607031076906090493592494087279535438843581780799597045146387335380315545567225648335559454551994735129456341792840492552111931288113121090650887841783560350980472006870275579513514182688800155583881270204112769310849765919504661703336230240185837189342239582286082740365847849057570195740331222674695395972892844285401550053995970264360306100186952482244823984297843724528175772180870459926122731511301888911813845828733494267338921227986765294066120415356341031912847400484328567394522969870326573681250784692173966283731567991290132493458918966750447514669317494790357008538402599064918231097306625079443992166412805839137310406775441473166428266612941067459043693255455635508148308547033720192966512019377455849062442165246613132116465559630773308974336915830973002277178365700807254592646586938241612386263235020934871881580379273292370059109235046611610151249564330128468297603504251501969965606058863300807323855832710035244510119624301253706286436312037346736777898976055653274405428776457599334620949206345319394944673014772417038670619742821630263252115258579034886101120091650607464752607755743592556978108245082423633053870818968067988372382652871277886554600524763989548706226404621607276172116868017261829373162835867809904405795985520412993824585358451071413529963165662957509059391705860685573041292364154091228980871222555430970058853278872575647138267953274975887176912607578904641513304800200520626018450832337786705937753317726822950702430812287928817416920911534764460877751011767337206265077138217103590315353556804968301492658921142829279335701284309263829538343536011523534791063102327497946318193635763993537526642600463405596874198095370293147626317403695906029063791148664860930606781892873768183453673496433096451622664885435530104668010440740169784212663139145349580558572584264902214636093863060864523950440391346281557137682912128555948454680897745417299184621082601524232625832727051192807143190571639191121231183187031128539503063134912755309182065507526344453481269247851980299992417713038197261242909452621488323565444488322165348794273839847773294753583998784189911942639343944841413281239516551562028860255231826516629631051591241173626743397018790669949906709857136129353101936363241437455188872583607077511957718529895500929893430005494792665388771615561870415867939114009254815567328255830198638210536659914945768773618318823722370290385715711504605172266811696575610565962971984525285987099887077401143650751355023609242162868322968090844147877837050594624890283808012478185635920632042809316767761148550284685997227293536437350149859297716220797369245479091895310864593783468589345341111248377332556735492640052081693151806539790490609588134795434318109543885766380683841930068105764611769032615571646335554966745518443237937175849199840491428847723808395239588151119655492798436166351372296993598543935419574331467294024869783793601681005207772991938373474934333681047558470203461130140213958226332957766365655526413698301022430337577192362922613708161726877826759162398883147391113131574607486803953366847884653840246697502645960558660430215323358118649480239038489230704000342439471365394689813401871303186919762762101788817806072441939132753145048085907731678925542770769756672573936515689693081618532060599413192908098551735629273012692480857046788411383448212159144861578113718953937343616264397151380471145976981441404135153093657066280601894191947950034921280193146729030202342164233839497898955865526544727319399220566575206429694132898995132069864936852405396163025201654481828117396800945633378353697518093527643074662471729463191556215427607234899122774775447562657054135309745950602026550627758484621878883819684115676243405760724998666247397031585603585078989479975974028478820264622285066805770088522936209411073416257104888707256931432561854935483396449404273049832119174894850537100536344854880188052272979073828754646588158296095100616682531337283470921727017126832286336038644804386490474370459602053604287419047961124275228185841911119786242300309955775344136856603154768507104480154226795157148214539209810926266901281035427521098655818765165903794489310924525100806921887340278272668101405000074834372788632802957627311883963652908602349150713478622651840612497983291980286932418856501798207004944250513318893119484845750465904027857525486766438777008415284813340038153087361530814248629729990676397934569315068805786577432305953426886869345367051867736173404472159263825429733478165903023438201087137130255208562256772157051571822901835986988479065599880168035593645231591300344089083697915069017799183099677872034675240559797394476126667985255622363300323154434255628546521310843160394785301983513991454419958483327787416344218652512061555648407389126280836040016171490512986194034066410284890453559901457124419829471863253905548010876795269691497299762397198861103362203922460863158486982450753807259112347061998392448914097696989198579045239818559571431774418379883946053757036610096724773988641518429591025856989002211993535518191321023238201756119772833440093139582515898443312562847192715822528286642094397770154193322900608213536878849706323676394111204763050087675129903799667573703926049399557422304822206104295729624815540916002653652726157080032401149218678748493621769952838136205778501793042741194538962640333655174865491069350579302963590282702276562208743641574373012589848087912300153774833490200094480057303203186147685338904798927815450415458330944217387511721440733290200755753538083465390958605964716946730862611240390343397194564310594029141357422869852961849381642907512070415467966982402836940940169868288094723349666665674130055104879556226478452464434051464844503921974613107184228107848405428226270484756364310302398264589257369905352445481968220940131631536246117255552477826009218669557036380913507808246362621595113745281080277404108140768189388144357884282999653853761194543308102116132790222306569801013502287346645060106676865646174545420973947978109898818567025007762737895721461997383051677018749943003710044147803957038738967522691633250576006225168021110044567416914637142036344000525816053138700597558796443074440457243657814315003996230523756886419586173008348515205374986093043653058034470841887911596267034440858990907394462726052562448645145079493858650914267271788300066514516593170982132866333718269241454611502752809802543770773045216956122180344156271503198638288925217290306490240910441632946922472361492988247707098599188469806149061628182964464254915984552289645033725532228488098585304556600451790467066595695287017499894220416352717345062509177113687768016711230898850228458216887325959291482917647574162168907501494311432360159727418603630591795837569824164851161851909512062390790756915194072145606029028084889442096363767623400497672620860597081935497400134517112315956237964142440096239945732024806476174108956374985335573054491903106669325963688737793899328793176700098710035629094628287856949482050429267672700970911350089721738591094912707378099828535519534791981348296380473260673653258821756700703841316814150680261495721009840478579433507788077934667227711561218548515143731832287032126044419693093433852405194738206429233088251862781168689530867186152976318827999498415550324839579808900812044783716197418954549186002483586576166540485253189246271469037955541019796840579301687358063220497308778939412483228907717904028226589292506214736797674155049931477200325669071622317916367370960502067491711163114295376945159980821065138499166007364470918285880876486571893441508534512014539341406778037592411022609996705541342033728469391218282621233062898082275698593889722959030135508297441781996776323224242617184462868041095044010779268597980040877879766272602187015007667151792326153066458986632876192906873994886651802700368491912595992405252723572972986526764864772977022087540582126579887116396905652752414719929978528780886336140548672986758561785667499791884115892314457936705912308277094994303351861215951451784135131039313189922681261111326758409941265365661991243218469311550938945328410656667845129845058723426862678623908423163933594637861292758717602702073385864448135997876636099687885743990916097351430968718431313472361146193300300370505715208266993634440484808023886348431750051099330131845852000197859274636041116289890678731006165931116560667317861526516665110671984262375671026660858079338585454609658419850747933353019356212797669330571121805041525733032820652257622941513708089875821935881962141010093788059141151405030122071420876872783437868803209509376996620913878472684358863196910380434887913423038033899976414238390834521089021240899427223840072935352538975145476532129599982149898460595575841722821945360362934566750679462837358542399927410025274635258239625597647607919302586573653135669984869903503702097238330713339398268951978947159211187966276070488586266971710993643983470010726553039221681495642102774823158655656159963814883677334864084558058181874414143149247673860172167157101459926648329831929689086589735137806193851474600956962342988174181992835768915017878930858417962044532940191804475308844045304607962824202577850340237463836210299431690888070412678851431397901258344165530745601672779436545951916027092734606842258271704992125291940907229735573403179869756647794704094563943391256770160237024158063175421192702522786240713557389495202424378246844411913108901799769848961025209896441712945965291549482229548376711508055379804326484641043871268609715978667971755678694649790219134829296685392855091155158744108811661219868938912237164305371439562905389142940501923639113811390219870056097583425701535661934460365685507256240947627652855878734718539506700645568838314219160719689244692189761119178514103134932760486807612351017739906249035937506721213202050409386564258725529671647516046739164786083769691804235209111455970862520867091393427193585799498518770579876464940861960522712029351720590710472900927093657477088722780888004952527631105958453166870659640147922779955766054864289002767699370587154625958240594502117582220536554072783349624284602638328966377634715925509075623272466824864831695098344886718378307613244611074173794903064804807268744510281346475179064239709296698030794750654720126800934293729666862697821114901975688559293452395743620625105434713134533504171853004230954187910897065075429783772367434952601318726319426225050561987508950107575321441795838829623579902802361493760301080298993717758648337494706112993421466950004716260313745979294414280397827099611518013565613562845695544466993896124447568901231224227426688131674535297207628547463236993001959751910691364976274924127821668195977896576269337086868687674937836942829649553286967892741432390135324355365469964119321991221823862785420098618816085373827821101857501717467667652977746557197540915699594157444706240051746851675233855037090715185126654021285789349636608191448006031847685351153337959423915886880475432800053176289329371440715170442821218192330133303405562385929882124111914730547863090576522554246595518299680963595571256864193075229590456256362065087934930333918070555034029866342037238000071316198002934016660850386382203842477390518947681862171692289393648438402097830126972114017837890994340657791597954521883541147402587195720982615675237151084143620869630804186242804183499779517659135979090904698097560326449347415992916364801103776266775924437530936357557564803670759268332911981457977253413245835771210094031515360091731658921760754679399247252919234848368016923899433581838407908412808989487876198173250968264614185994993610062764888134153205803269179803875230101821566404600255087731182661725145241468857030958525079668238510041036217574065318366453215445870504957014966978183052866235443063805333018425848842770584055316275789249025846988815792940499652644497914458917637159099013618181559650581093553738563742225190984604526304761986577402367349491557037174831326470185616969791828164795796914701125449084536086603214599181913354027498430509651130686932852828751558636030152431509346916191122931353875153886693950758999479732114383958739177792669215448294219253082564966837308440538395581627755682795617818258335076324882034849586848356107527862029986584565175317931128456970619853598133144754023658651850303710055221622260301968226724554357143811663758212474896162392421710786214422258650680251971298380092684968997835510839154219858180590313422075489932093953889477070149037868369896793061833389069348826046370348780365247529721219651484986812560190985732615710202738761788221952351024232455603936435155508902308250085758596673744310302221624853441479807126554523517661410399618518954464277496920934802666987879706041206419635216362306707502333180435774741856507866765505866751527733665366947428990989077364365371427869019927906613835692720322549748639418738265673409678569924458172545667456631954599102599629268837466446414479979041223508348131745536311955380211709763074793786108170359548410269375626138833874829599717185796294784326925876527884260183510981211064073350409072808004844923645712356828275916336082231800569319620074346506775539592140852746498639088169109533825930438414700005455790273168091708468922729504158163921233601687933541730860463054300488045504898215237330367268098641700141976758887452130843935095375561036911406589849335199572511183316574565520330543846219493326350128284268972512906313675090971582402334183204059229909552590290783781022819213202783549870817730989096088380601912841051734292609839931107713112774589659755659419020177209786416741915723343744113367389734040271634063407560606413749695505625562176931491087333241559608238670098299037408587985901099752123354403010792303228020245681181488424505533336019998104505145705738700317927761776967402564749302250485686735948197580845049986756986938891938960267493718973451321933416930393918066697144707829972245754978046842786550765938942255074333843824494671432021601670989304038641138861018247340560553151362859486427095091366303936034892758687818023334604380742001669618803142859184857435023397402443698396541254336670084448855198726644882020264341193387283372788935476309528026446308298088798607736448602913352251445297190699791479505450877018105438833531235996324399387173545903592445369452951584694481193433360731012760700493681740141931211849147550796887629578484836177114992143835506769096506759188705871799378617735580900545043454808057924873335137830941514833425597141029791383454098710004487985772140382416489365076392665501172158262937257128668338686014098655608028012166361942412612124460859455080363609392179108610396429115911116717344391681346256764620648768468106652376837436342702217232679476643474228247393585023911119578524552150865980875493269332972799652641793515537192636534998618156885589773407622698471250447981332890688051496658885246971168665118470833693497954211774287590325558667743232376503930422165491266165825045798474884478508744813296227133616579792953151889705038963221659976801655506286605487944190751875916664638577591096375648974515539496582368323405561716974595426053791301702584201200973952220101728920994094332271914480968953276596231015998452278688470219080043701495069134860888746384331161827483242752846389765645747981901988353119950548456850843906610366470770480453253841785825657338020157704404222793892967396180333871587946836044168964680342532533927125272295555419135347143587677646445469093798610520172332120612268144194549893228420780328557377962563188516885070926064095876881275606789981814974707149096972179100985537883019507597773947040930979516707479694215534334536098979397941182643179792325989056617662470305049200197469489436268838185712973479096154320486947914020003480049359762029732329301038265045246417591795266079243335341731516781359776381535366349034060743163736539285924517751330005547700700695846086843166406413439882518285163551789725255558109091241272227159624032895883969932103235688933775038762247945065205392630593712067450149805563035680121867646904058817673333781114457728484934132882369983046521609893968324205649411456097884646080457742292990853381106154467342015324504899477646040828018543660894531382520671276153937487803659303123910646460463583339966313504787947033586989286746822440253522327978993577562010715659825273183567922976105771847165425116952571318265731810552194129280401168548124975948167514303909744958587659160219759782368485957292189006543917375335796649183110587767024124259067326813842954530924493982439275168734499476283209675278540537274518848587700690000071733492043007687704190211634262623317117761064119971956405871711916016752076119124784972778055410324039387433256212525693871795603684246727397813581111178304971082757983130808445768930177545337939736131797818387719050906551218557006086622259972393733791846348811891175666428459279149724687456442457397689320061187645783365638908345203228630461285456848035612282349142049365582573383493329999996087511885102996186391339276060568293355090813137387205505526102685841382090815673781113164420752365069985999747800503328981248400354021893424662734085806694806264435028259044718852107110524385574330903829573278119136165557577333278012470025998599482494810793228074985945868887434772415840198436588576014400596708451627390109580346050755577984190162779941654408474078059875232821498238044461985835244098308317628503044619725969973602599491633080437520742469957814914735535855341614818982353121418665974434969212840519268101541352246819891899150685922476354887091408835642721640265865832554677208550567722971639942786065397552216863160854286536307306750347202443612992500402711399219078517815047265793799933990235802124823804962763963739441711942319038502666681961505510538956570066282807142615472520268560915156539506080003609311283997924839807605818456679464003654552784082272021292011316269056978663719911729838367181505925242468181517152196661983374951267682588574963000662842540796752871564740215876119410544314493397723377179274454777397134112684662595105084417788258060439624812905471835979293014718414982254789032223398574193917096132656016046062792939640870886418930307245611602307404280388626609455128625071501610103593490491578417344248052163600082967680533926675981595737056868620046833602182075113169262988649931560488876252318940599865085392746756990030861055125909667407432724028696685855207453566226118527442247058887906475757227484752561206394560802899273406567903461224827114361572842409213026259096664570548000624435521638496657168019582467802403106130946642506837180771647556726815186601093129905220366161185894552089507822085268784193159711456794995552498968063795904545827142439909036222793511563353307883468693618291237914290131812369095611589103237429220262874429711487605804665822976627626816600886371881387624371368460431244818825869903178249425793456462039505899702202282532838744975256416369964780367299999195001954877229836277256125396118687678478986654249174395489725734169362071852533652343542514591075044495651283443691246962047348668432993416290628591391487299216571379321645419618824807576707027559239599927571581498893681262546735443290888951955165920488887879384538964755590422498972973846139781777750757976585038340753487981902416597039544472942776727076304466151519410759667376286058924171241741673263259140377701638897835217791603784182071349525384775167199643565638405837930130225059447863758310993697560857091848558443170362336869589584311285807473067896601415752361636556543209273862917343364353227224140440483663304313690670572530486183913779168682114134337097171618500908355546820315638824180334403631041567889431167834647021337732874903566667273379503686664595741576698925058264688574367506180482813083484846196045000802067442721833493954574405386646188166198006716228786374182414985809158383978008601331532712164458007153835640227239659600384908414370199554217709718757637740009147960834717151185763496248723182765908865930108002179171434596471827142601564312088488599791840586843118108293408627679229269776180292697111762000970465072850233836754689643917931465103005275992444756269872971319235313580674690612591130175462928750599508032256485818676590056560643256248022008085677313661375140454513499874224398447456493345136770890933550134220650782442692917099333236929191257082851834068386712192803736085623663397395770698093716425171098689867974505162090850037542556275992973769164310821976069900362611200944206790580951268208637755219315466471664085093091807525713182703869926896212874000690475650028451947041167383951926030907942481641579798816350056831063802052727720638696697631381471816234380527414854777648741415241613083433904844155361685236339353214098037440140873623569070360095405002425807127562536678800606639025394831669504903450676985558701202056709690710109405264918806828958351312815222203783854501307297393729448945715784712158804243984879500575775488932296766486107438789001526169001066863673974879158502375269229157674461372435568966621040885174225803509951899292734537228752278297764222985855786355191843542755559211239451592778138376094039723128896623222727408808842596804520506942401122086721391480220158397750575452950355830608339342201601931088806994587032235049643540590737231211089439186517357928692592367087751731040301607426895710010286060728412163947777315356048217051506197017122232433672526317020370877415767438487230166134412663477862169710262413471739773606208831150574678353449494440811833389729227729232779176059651847387841501675077040490394816055245649641554619484558865853858897557833942850121671871328552721365224580751237109333185432779090263243812884048260414431413685046964321808983471052457171364079009255070830253442634726086478474167355604827926153582833010793950258158117543013664886484877562968427713529475142419522567536182566917650729507394261610446661664136348105727885880567769500717593652489964423674375037486241591591595594549790436243645575080887939322594606606209456557284761768022649765680561351230773609727897129262145931615687332949739130120129917856612650819325634777344348972132376686599593751438379401202598669805647905032049380039598136491495187897874439404341617176387640091457416708450287100323139722435951487715531284711791132956095338665365641602737335001635793740520734952494749300760208677608086280966074317686091555158469301665214691453456951525375277670410255652442354912374062991258851875021591571061204914927453001927581858311793816254103327857659694113510007622103608664933167510836611367527362276636912873431305031983247993739185409821235758369518424671208311464047220328998065812424214602045390465844899242476751541577050165426939110872267840718065976209610281744017984921373713185938863866934012680350489317936304530684282499397267851121470373138769848465678737783839150604617255417708270982457067131296804870834918338140568904136751480262352460401445564544415402208478992340786687952254442471951306210835631200498038411649715495295172868966786851589121947221743315579326504146638407299888760294493534879762177041287876934149919857594964283812908675248853488077265538152306124381210329215623897059559669072940467458417540511264009187969756173557364287260127984306964440148278576530626913504013374638667094682732976803966693904574869719314377863874367050227003463373716858371937101277252432495433474092117501784992728930770372693328611452225913215817704679342967626430971652752825354436049949454858758019000202147901285677127850328297480917108626282100109673414545509691753668580391716706951381217834983726692120522213130771433988895615114306058641118274291352761404616999932961675031381461744669673378687229026700253313477081519435365158892912907568447937952333908263565459878266327756237689707831696588926757389137303576534508333205955124820188144546718580667632484161089131985595185585707254788918186904412567776933236991060951905178459375456819669645389107544136999129829541201705306528694613493080756807946978232877020160708481767555486427841036953074807208603974890953717452721557787645520114068883546761348523650622632316384501282693104841758318386388409221549751447416110640880994810048662917911666882834939903212211394379859227271051365115593693453818448339416944683786290165554189784606727377422054072989491372121637362013525827905065552546311120937903791795783824137665809332118275954989491107288894307528449062857274750791478702527682905395789048668963669993927719289761938923832251096546596964809072010159435018779854748203478168086433920472296932466649624702700985525025969317338581350366826300427233354701655802808078480866543556163506453907242641710951499460107165260874089594399406886882524557198776290044298028795616188780297502181963750315328325298034243590568711330901432878074115994061634447723159884130688255835482920722443801701028263974757620159596782068588909816588467952467124507450124088455757512835803795969524556743441184704650207183842936432787628509458377910644633055594100442916941503198169478513738259055895043173220505974224660926668978922367392265779843926293471278267552434029731241182519266029633564195301176322931025475530715280513275827571957398769390447984643847725822306896908619820850373142965773847043035023750771438089705750004770796245068627929701832415312532371799805470099437184789235731661195925275197961038087217329225894310897048271942687437505192378772955391234343007128350325541089130344917216507763011705548503732687973267679596928303518785958008815302980341964762420319444539165632512002064510560693396659328300560208307822261433434650830857820199997983793693425804159491914499146746026535825827877770118071087439978139925514041728340382373242903790896131212860653938932919388510499719968018502293907986235461767366218481942898643241265663677427497728377435673495101953555837603069233389091109470449061043234707286221140917884829032404136320751587016336468930026278348193809262401261760321731644890200055576768658250216772797386988216338628717549872719021813090822365513408344708072813378694143729061342873670320926246643650454307895549018602378258191711323403826703508522125774510025770859217023885476643890024791381345656309726098760078230471433098572160603618319281853011926659390651116945336434100633587543447141494030478782588051988726006619441830737135726467516226711016301429628350051600597284655821331461448066603653863692696895575573537607655840077218726054088319362039529753052799097834756728931800006287322077712108903007334294368921619845901490039860581025063013132101029079116125543745545531874097174761915060235487702160558093210820046033905892834886532751387834606556875023159152055894959241259699592053691043785951181560297598778361837866613095467738214077943793769443032481370593717084716770051326429429387139883748190763007241808747551174860325198732652008345988075873857118064999436995003283571919338648001145040867103052316595661546923269692260550902602393838502770202692328100222739773696434808328082761008211293441164180091603572369925479613421585843858580828553484847925269761255293212228944362784644869093284490091609571692183085381666265957786641691059862329879237853095262972934002407262110261543644201924084726460667362648732191782147549569252862070334519278576415488963982012835016143016918143913352704557819974534734845126444647633685873475183505699214261189001534115408675684918115064579106621334291273647827156720129852405497003334450114613895123730753770276193295289871004552178157104337889987723431606334280492017635199546458008959763875469420454328972025814512210173034268765587897159394488712392948225732415464767311643574340333831196750801278512624286246765821482612241078171716172814990851395170918877435612831400526875068193749148926963197576225328821736602853439972432653864846400482407602489901150954398244546375487301935350482636433561825957614614012759883182834108171070663697229245920547576054842742088860472283489886243042921616931919638026004955091871478398739421094071295133714294310263736848044002078676461557115904464469356083586500756415324017658713298251105428332549405002410187049392354072532891157055687073845067363355586533407347574862651814464180061342447153612908563613174911797471522070467457507683031843153586008649474782600942751918194091906681675356997677722756516062271410888900978283011205479824204592383929687586481590600037921005554737034705195717311988782749259396629771140421487977734274638922312225177874450046769409367630469602183221429544593777066541770461208896864552063964447659117283761592192604393055175965342183880199690150190782111712234856907574642950467472508884182816278847610286572722195876176179770323379970629361764173382223191867109202503126688361776300800498206818776985667296543716834686693850078333478664205242594835980166178541096715984346306365514011370589688979088035353235149173429679431996847649862992866573434270876628999315036305191649911530037100422487069887822732991406987192236082311232083131439777375560152497772884274612703303380048395848006317246923181471091628490616809989928952172426576048726146145133657796648176755300156749282823601245720085397349118937274641095331951236787501808918671383214055589186926007533372063018276781024466679704262832018513336658309450359490378119421269454728554685517363545355525217519343871094241008142999319654646595587332398881982305752642358053529675737299628484950000210165689443045967246508946486990290704401701624313795753571126975982664794543244951796022285297099799104066683322544006964404243033333131003676141913399946092891188259090762282408751761283888215115475278263222615080927225519661004213627896196734827165017109936261573214699271806274760597766852266023355352620090988321374072653069156301538277141757498773217541125478698049384446560727738401609357550729078343756710094077232712628419133311682827203755629013954438124200330434675803306150275115549995947179624104550010512042262523243795892061470902962924203886220697812088995211994053840359251042215834122151361962833319955026605135925625852495336834947734680117450785919596372810929531591426910939299531309089563204739051980351441635841870579552879333247524068700435546621654382730443820631412699987460440111485164470131418084964279149278401559722455440976270525577844943734411175033003094877014576784322051051583729956921300144376943189853447291887201915754733031226648859527202235086585854186709065228756536582690683689219252417551940543749504125763982498691589409409975180994534420224602490860540387464853234570226891237437582097261087854061593373742748999239712598286094813488754312993613392742556823923173589294640875437654433486419414929011858696018117225875174902921903925167216006166743363124567640052031430506080958979096943521851607203819288840482925422721560688914545392956136297926821398620167300991672909435266796598515933078079969230540397832945523438209707156798402750746209709653623119038966395588411608856587256211474346921330100800881701376341156717875533017502199409243946682984017891361622586186809715240277871475391025705003182293001153310438655318827002542408486057716156024878580817109783407395985903364447075671495205373220295010909382426156380487844707761246568616148333774077032168549313163839597191679676297887784625631301310204152637924672348094579800014678810772735349625106491370843574379751290745128481489568171818940575120081563678154697619963995347425167506099136924589655440488665899126718093041727544742956918759868805210817474923241037864785389609345734395499725942435888367751677568852461034951751334929144556466240731946954290607493072179733343094422960595138931304236574079373450069414686947344928931849228200779654552695538766320115756310377205590441454497256692610199919623812008561472922740451669704634993230541450339796086364372438346160846412794682290646531059383388567786913740136326221113057342969530981335991372252785291224643394558208970064248910347702822515405558942902474346725239669950104087487476720256881255483501376390441717202752032166900840607380846320963864729852943756903782650406699739384779890745511125444278855837267142475463875003293547649034943719139218205521578643936909323532874729292081410792050797367459948306596406496436628448077175809739692048690876117943673122439294332778975458747163809710802368112540979007876878105352753161094083354479382908259487676862109642730625633087524209985237442849122735204256009142461742251069744244915195449845631626635145940182372888091341924539497867003535023737415682327254320163937568738372179119455045243527437109166906734259110169563764774185294614355950224270034429337463091057497849835058737013389249001423650558039053443884774486911401226984188918000426055600082205266018794448533683234719466754749921044875733916712628442899560953455624273302804781110842345836362234612964945425827244726976546911865073663136090059005052451829373738252913120269485755881490374534008907423205307550395823482782348345599755754601135137436818622319823369916185651722067496832408044968920440400505097348889625909782353388481454590347267610573374628459863035498360164644039722352460221792062760449835950028737029813540194051978364644231353235596260854530469209542793396397185337272782379704098476489455829550030921420970646074843240525583465984129121671329784088020664915321660702973123617784612813476361210000187308794126734975932796138203411115278675780701156089243008377395328268445902389758786192300457253837182117115570940253642035698527691162063020745520508044704821305533216342084981613791677014354615965605163941171104873069962618169146115156926743020036360904771909670680301534513883480315754173990797120901957218318313768740873768281153705496330821672069577093674897509167544341091827626213279577539710680966745407001469068143801540454040973885595878515019618021966433678341301901932399263216974309753115243245575761130523459445080146343069072322681009339545361188005752837969324130626073511468275107868650608931518867100541117103120661916402511827695097421127700551801002251592447217510845225300573691926758914153389768807486588947353718516809597783475633698494027632805649426493729570743447454206968899423637714406062873064616832667366633110725621485014283391158682579235332268350746771946106436452256534346359385701824681997578030065790321743891698516024042303964774724547149812946747939866740216511589118310997892165837966283745881884252905549070547478000609227259216504474248171757100391763282039183910235808311669850114685752820247272723403020387103182611015737668802098407610488334489560299617719447957475597255323677392332844338388874995944274111049019003304883135074712287133312292165291536368528502094222630415620310002464500783736623645879773956706067980295134268838777271827208587794364054651280751412619885821288262507471510753208383838750193906380576828541569948469473841222126522367761322688476578389479173417431990669582180417283833829852828689307377294729049335714199654999982258682177151471078731134938000060614829773856175073451234222744265288091854415459173574880323698067457470829395585424566302428629927246563494311081729800566588411021770769358216812505158255084557542051842617023051155343786613407902950610221105731444859093859145446641053166850029381323595734030481830346872897365318867731955619180146139512310189161217489596699179048666580239547500599316881645251646325892049430976924749451417299595730409480256185069253511123221537111306983126618602268298492218445683069186868593131309419223322954866544035663159850475673836929406533095328141252486594507256579330438006551670074671569125644098489502566169491030802635648602455774209041794304993008863238968503517357000564493318662723735093616456601150646649350368278844445639416732690533291425334834040129198011512837481508616774358781078200486249569714625792573757258004757582577028306605837508401975584162394526764790640598232320174944807571202052214544700683532340973921957230882914359926548867974288794593217729949385949651419680639310815124630152557040055296555123734205213925360375163257565833806636598299685337559687649461682400905271525980351259213184215161612288219622005640902362723858993478296271798584845974026578307214592969375829412438302392290244318093372730559218339170271741969231420265201152489302484596078656712353338757479139973222493994597111458174074226214965128566038005648946345109469876714634294017168948234002451690010462804993000304420036127376987135192276056955721315120544515706253157478938586116514036762638087394608663780125379718501895899300501343277862048302920337000032430024847974348414398735883824329041601288943002031601474831192431584925465391708199781282827513975612204847672667193510440879933499286904923115882030923682359430130112279437385462295924781265811551782181454370149049547950137482260072653296243251613692635887738311111515077552544461662663712428618465947597466128534639029696521393585620887980375438631110386969160672490769070251598621928293059415608308080479372397905610618155843001143455995440956880051418699449361273125442435340310917921803244334823512323309333323537194701197811580623080301451929894713745720862960467399530178776641745573352445608334694459583270610645584035897515404458416999560222071635604319975644275017507566898387870782152537295774478949610569999837865684868859536789660254426881337057505025371790925144384883929222985337347411249641309222298550581927304061674654829001356053678467822304262724083506690448804883513370079985730973023672897714389880047103623412972417709940216428971859851362002457464429661431757412475578476042156583147228757948686385612666313978511719663850169310111851663590135625614700308455082509867446031239288423243186689460206446297584333120648099031620129038725352251310936033772330169247974953239947327042603722118476970875112849388652870006328556412648942953551114220183457915255814586068985973120471647181772228533490302019948616701208301427211040624741114066380571082319655353465423719687003190028899520702318505088708265001292183920145302046876684083046973974232752596135107434145790144654819417792768337491515538671898805699201059122180600971367052180228735978518990333260602831818281094186952813754001124000700617959329341113579282845440775462839987455776386822461818999233433167637345682434108182082528681977742438773476542097688264034477137357592903186298090739153601367014823652459965137800446824260250819855517573402852981996168688773441655237254841643055951257519432477914430460424123130960931560020544230374646659834603427505109881340528954892329080295678005056584270943015227348425059373414212310729201466571572171348609802084655380936827369133207658488418526779536633666680659693144664635744402804663558884524212954845609974665209303292401640808718979354721561350935717168808010204440852561187158408322709751308533658644639974301871526630113853267497722695843120602928066117411673808638138218449889611759710505599017265585224692538605654608815621794817798111637492977685524917389560696131614191265162839869147174141070324129933601621486902628833216037271420499918231358914372502005700481109999517277542004568067123981001459392867132344053692220422573432392049133706274515821906812120026351411550256528648794424771658516609050765492896036121798813142142561409809940472648688605028341892862418771679805036858185142770876985880293277288077494031943421918021828105221306716914041995061060382164536956255602458107700131139161470693880112996813511056689051745435189078277045791411531219138592863746986022819766335320225269961543011778050964966855018505560949411968569410813657319959386964504420260094977807184194009090053086836946328731570890233763494489458004971542933389602850099690757093525112321976760259718475511022993541548936007291039977681900252228049750783768184616982902890970302025084855712421148674536561798447999006939331254061737517927570051183673244175344290612248083854334805983294925663630557430752656529624619414678483542070447435691123384190237047530346189444312954436840882530034052678402712009706022081254068241046384435325118379143711197708896718112369204626544920879596685833387196515154928307822866695189659553411927525844830341308413814206029066658951688188273398822552486644883616952627912897006532814999432017243570162224819560157091949822539029664847031999227464049677910104647430704298225970814997661919676410901042087245519764618981578201477989554962832955229187818568737542448981367909177905559888534861532908864187582191680537306043771036836909548738626043484949323654374951941656903026325598645588008970912783765843997490968501268825318151378466704116456890768690921177230359646307872718138630409347548367513559910179173879908583384055726179945952490936814248230368979186997362144265813960898176994027620066581120015644966968046995891032685771764297244798188764604538714702709021576542468553973944776948157951531245999024494549038442980889791437369447681137390786637417128271985297428958551338563442162435861586411809177823496286881552388256136562300653464036613664223181420747336777722135776386502893074331378934292288055740291726741151668514102448967316621252512867144040920926450899627837363927997017349850660081960127305189094773083750537714155961428043005328988898816913130989957525961481171890879645271588090888646411653512817237313989585425187543271630120962379770982005051553048472901487582910484124865315759305065968402622171571874659594083513503509358430170973076879918797416052577254929991971046666525450326323150036877745825379299348771431239030017695743139383409494907038322767152614052141614752149822235888762826293879205754560345536757390993742086996147029764467081536038091896688889268829418216039500553281761334865934264166238367062378443775253615259936094771132160314049235778131804048848954318544974977357928530546109209390939871034617019759040924470876022342916235928877038262152349943628046147992416227718185872455761816593704866981983489020203759279669383635639816115542948152340151023965220107164672499393519602110437582567189221945352086563090270502395829251871690805835471017285967565463866214871467677703922591717907759459145527920786180751770383417879530708154764715376874792327286215491451940346909149654371912049523267392109801076244488110217007463913879238253615852602568238583602526018950521356903344801815043778952447200008185153290035704839469139203404362802689033823339669207513999463326531430063506906265380372534122376013833471538768714556744182145909457237690018920475623430053378139638731078181798967024899788973950109087941456696977968057546119095076013806400111448547829852167050581022164804193099324056657260462364395622789166247489154048957003984152727746287686406834121997225205557908152581966208873445001978644438515894822890276493175178267341829018725482594787481076640637044042377859855436499490362713400540011586194757106985146459236361660591842037146351260406141674592759563754695720771902421440044632132832177858326488599636298053064339178580019982480391520986955850436564207741336317870862411468443244857608598257769169522582674051084092050559867145464492571338524948047115681761909954328506515559101196292098134543615782493714794695487253579212854721347976332617857469134067815875242344552756891049327107913720908966429037704686368555197997557789630483732051805824567168980389087403649314803683235476532951578727699519801808522393074937767406656054014832384580267054568843526025586396027035883437686082597246567331786217507694615134137183555137151940569852626593548972005985013494174570857371787945581515806626549626235752704398291972272760721114943558720954546269662293992464174960547578566025279021626948385753961592593875317098042582788907182086950039526302719765415349584732701290616286081107030484237700346510335201321092774935172713531192116674181405297233523213127244294584209967003017229285473339175549037995167537514213793654745357205051776001753174625507958964305487574247103774019051010425185814178568717903474252361965542984240133706716323487369689594212501469705131822594934361171408183228819992511543946453128681081211005811308980872923539978966785202571397918920496361164365172876517982073820980020833864816180579715578179999419933677787175271620404621483332113560572235747968022289634935157006642555227128409880447113076247743608420807462386690223048255863646526758546824446083133973417592328274994263480963310198753312415114677867084139028162232091172096469176762677456657683039788303216813960347985431511346058109391041998596494718122695667004847890735103279883189387671222466243071173482572294491280337253799559388872953256803852579603444738415297721076815516945452760553119164040293838071174512215787282188971915089887810495723346170838351233783187846410998097658302537976578580743517148010676381392273024373998255859780424161034034448973941902375210842672938101113932849493873867196252882254252267205517948788917680666378481696847256692878100764051767232074651937243474634966078789793473078116345306857702090284326147432696470035607907966522232181100418321577105797415758799517377004043198120805524379710561150360845997623617465070513456967339519443422897244355542542187657121800967185442446517185129144186158020808862365170822907883278567583489441559101395295653117594635135661914091666367461900289860050699798720171988815082724488051192530287853425275206950597006275384094407674698624172662588134142754425456865202730060017659788271591577566846955348183721532509048930967893160183919493833649793907370129993230949620467918369718935812364475450787219616477650821411635599423049405971114942630840620601163883898569064039101188293583119195594692023916215303883809829723196252825684324707993429487750609147851346959531733248976382860424202380362759083447350986098085853918996717836749626287528142982503444435408327251194640824154296394643515767898429178827291178665053209454964023746802100215465625412350114585199747213766676551891976155338145264593487572102163730237646023276293735237100997190258546327846125659721394212713478275276442611121713208138666318234272079082561876960555920325994180557512204993979214897588487166097810351599871340406522219890079518340219511358865903372574048873027652029312948536405248754594267630115921820195928003816590169829439074809708024375903811180658403001043767677946611672044823597563237751484458030080134241215603716577661657564262213067199233605362047965185681790922546281348255785297078092767101171273553670957746715908963257936398535425152672514891940890489551878560800495323197942264053385800333613738567125782411586922348304676102431115733264111443935192064542004451162666602097238219043187574733248714163691466049922974996223791136733206087999314558407039199624039094406898117539325898777981206336215348229715901147019727899329935986336029135936495311006621346722009033966154055609375793245040362808068035204037301194597166901592130131385264528678888409123788804684408061049503068069376922815899486925614500766839575135115445460703331469549793568086187304583700786881296192104443404275690809637874221314145271537507065085579903988212882818075719684493250815110544272705100818878267336124851510928154397806965442064313294961497164503255244216381763511865356213811799314696240866776678077773687550695345516808665445877817585602433491522638787954015502512067344298668330138672464381276274635489085681529198746833686462901685292552343230276814122042066481997957200294939222826666321533197502095190027207462445827277515930418369531176618873380981229451279918179761643350216701488574886618267050041211563084710286570558565274892124620166785246340603850080183229150989410271635161948120643029373844135901398357427513424764431946826566951355976028874690209200627584264158441580495607114388252745360455586666857968679605484073719036457194151334650299267078950463404009843203599737834704984370725151821790298961014686251765747075710458566524001894659562111651577534834823939304117895204923546336015719630321331089905723765382450135490033724354494718691352334441232506677749432034557084710733832538075437246583046811279858895265195317038493671008450363220083930326120556479184629205834528696817586472424962107072604635470764464991287415638527870524389095678688974280388340427714939562070602060176950207747830502216545434059167600410066869031105513279065250955496253555912490338887700064529430031454918481348259422582791055319464305602646755441221030025395507276440463027379033127880216078415871419223772621591075087571636440184028398001443790332652623744386843048900595819574634219709261030538364673618625097784578398430512424924688005681980488893117070035544148783352756447173235048270991281154811194214511593535144769004090832341034941151364234570344578390361961921966663956708309469280255866152867983500744745626350112509705044806077503919704254390431681020277361809798588577553044460888723922374465180564494768517469054020439589673533844505652239371714314167752733024866141903837998081210042420396923381566303567476233380681065243848866028612447658430757868837383573597668275399993550316245597555466141486476352419505246191667118025954960148057318115023901323430925765196623008507348688422228182147718008948923361207964874664710207152235554037557601192014259772747667328697381219042048748960224948599096209286581007058653730677040565883605562462197339876550136573223490797264116215552850687102472768462688655879969373600136667194036879140855341226894808193966622111110016406035359515665246389085728138367760103859958961277262576780889370646045424183331321712383590712047172871961761900755862596957512072374748810472046850495769468804761965870235356791126899702578580995947331652830305343369910305429902734293112074582341837493960708996872130155006339272121689122770740867961315395365196078291379934958354492005245382789458323332246623151801703646595805656113222855064637243286032578256462655404623602893839589978451768888349877606503902842944458496130110691777078463148376631114996026998387969597072662159587358458678839307241608446054281322376338382387225283551938922210494126345529112649562409170572887051899089011965841760632484232461268421805341016945624521754728424154836415489634350778990033070655824431204914823228112084931589490892503390831593797220274660671349981415761431880221256033852521970730606218403934124211455842222427803627405139879787157903996731988106266249170136330938404844043486058428815829603285903994510859443970563614899007709024538399463347748497744211065900922747210175435104862367897911838023008618617089666488648701995864721481184919422788000732626877995719227697068822109364020721560894465534554157465277805636253311691518469650750121101694707515930248005016947850091256763770605146261659561672495053197025992205885708204080223916332051853988289291307012267071597571043205144451791510407263135383410730056659211356384522790651980615943090424752152375628686933847799276316936389316941545876876396644716350965510722181289426753513864813588561728523067312357027127888486553846220572227672664234149761158703412296637988530172492154200616952956084231595570971958032832956613829262179253587627702344581986421633676379809268149945915605977868714585332494961871022099929445061369795278523819094272419785699404646091187703220827183183496015374391833322237981630601078363417303979116167994406108208045747624149384908243298894410664371737192978701666878382212064331187121372057144143632724633588868543371789252530399911799119013015913921834298163702311065023127336291826445055431938688040211694335313564219486909829448976551308010769674045316694403597152605113517092719079015413377947410496248072501995623360436006174528414222261563042839056369552308179499610806947992995965930391770763462256646702567535908122976544979632747527587975102614348248370178503593826461445328901062811511151698315412215501903837816098487304750502267457294377388064573287932141782805696455669733209106436502624269568670897892464769087533176100593821254066159178301569173236940490878077274489356379819537041287445982086040223366840596931933620220922374384353184154175676587270508598526241425074143385040254124534876520366833906438668867005103615473282468763159401559412930084729914873666410069057546772299945314951611244076194397272116138343301711138484736314516832954841581589394023432143428735124758463310343577593066396583393735706546780395928102089798114554839913142230578194318040423313646650826909671267443138984974882905645070196262339371434427488631213552374609819305816563368320350419198504248972346243043864952682890255628319448168387985974855562469195333564316245456910932349403151355255592206273327996935900408572871326635356337993706437006232136111788455821105889075195132262011667754359119674618701063253466692217869773008938334678165770986920089372089127777344152286049674017444325649065115414481695314311373224409047641347274732725139288943495780798068718812768255397548955419553342754605340498137884091955059838099125943614540082693566333610734641687746795122810670165640290865049631470400036651660268641382410472899888314845894364798695453261007946491262979124094990836990973262679969189114630798646391532660447977645272983882683076795111986122908590304867930781891232495569105655913142737794529330622880677284616237741458398912942588678576477517264906510571221271996680112044547779397339990875036554348812277528397462462767514512410225570006606286904204723561367845243402688782387507191959225921748801180471233803454720332566109567864154741789075495840092463529826930098625188308667015811951149711595951133786201367344826926231927881882288951686553833806319650003822639877950953005454954208822204438662041110198436873861959577730847422434960290853904742146828616249702952019068642076062367058838304281989239274305849799062184244523476136615331637224356752471017766663535573160730969980801824167256543842431276472505454798441590584995872204813140797114197585217313676939946209470946311205095764503176385765854979412490526388917297658075880694731898689860944079406306728514049101084938167089145118144341924366677535341871916760719685513250490649747322995960534318469996315104721489518058976405009372252889209322197495476284559458521720854029936807737397355164543740808769284082138052421784424188675353222679665707968500844184001176947452229830884372127866904656748495456491630289043434203248486325303849241746395147605274571968642616178183376311393062035259601367807426622145437469862515873723384219788487664650495403593894368813148533311587528986290356200364447587776515760378573037170890847781227444851900661145073520580505399469222326789327081689240255334338289632597026722031539804917829458287148260434493777760905312957008266844269879353196287644393622203754660850278448083072049655284739310479674506387774617326768239528002818431321011907208951464966128765650674195452507927387685005795216680863354075931987235564539381423315010886831567597128434657284180312591513099685793979166628980029264053357234459686188500769122176805136256552697929240326568188582494229756725838201801891079857993771231545963306742467257339501321642913556908274938815250036921708716480960412821802547914854147161865614755806553662581643257412984173145272187051280975393697447385221496720146255875171551526681715893030465578715556291804389365750160675189936814789126207656748708129976950545284894985355537007197714608968366711520999863321520573409308359530177628203622440099448753416497244926770578300006804026414642298047670926337665817365155478749114292297179195074191446043442490918952218216709719370449252665149659353454588326858139127962355442144327586254518779610193207177028141701247120718116181653195533972857966332999485577253000964585268774123289057562865597914306563431069450936309660917645099352990001797728757707929415812767163066528875943896178074839404345642017681521261996124828183651139887338020901332016867622480636244024894192187809592063580621637146932914780635839567610070159901492722209057111711514555763236209065461612058331839433436296268462156883304270792113519085295820976752730037316688885047907768070039293053211718720539094481850189780381685871507567645984553116538599057086532250672982967710501859874199719396156483447779981594032003508751016399642011183285174350224903726318826631149035806531147559166152538085644927925499252538137451282802359231222421086704700497504260542455565566196120798442828664808654827709728555269688166508052392507057467193477009498579300984692531606282108223062554453028359489914340595935054989851020293033959487650865555559561471694509081828163182380655142154193879761658937252044766147310206962849881553220088523323408157236700563855606444804722724566487933569483742975889158736716403869098230452581241159328900603542956162035774020705498375691308022148756197146554943033599909948243201876333921804955592541364776293182006831080935706735736538100123649158141219439041011337131496076191122564806242021387945928610947301550813136375863436457636054381931235723251168618594105218873219552585063549722791441887816569461261398625369812889955606023420256667311130407087971804530932614203528104685181262805198632876912827869979218673822749001228239874250970406778851584064581152218112122834953693987516306958536362488700646628168960288257093499828624413751998019948325650053790336215678564012234368165891019371689645546177411335812829805785953249209234858340260949894790914916355441746822956243973530081068003892605675915050488623703394813869984375850928863343529036586607274435180851892709855895480453935982959624196470989113658544858164743987492759943006730907309179094886624765397629333284894278600438998231674853202251536373149805089149673354091471035295696047369206034064826088027850146992314094708133795165388248746973240885694407882777529257010659496682155945224939253737716688235844614020179519174500437989925640542892781062540621988087541664707504820190581258251123378993361516635697804529056878687378452469175852021271082316817498531602478214687178072489349097143470275900037634828676640571027939935316866253344010007392865147970617421797224760528623785955457132319000263138169992798264558712591147783400494449053743886444492469328662264316535626536195407632177407091050582300240408002593810556993020719734348813967065362169769720911092212079810136800231240786453095192942784421041060319840568148435302644082170592728395292789088525594469813861016309760197027423138736716722761788795666934293757296434300714473548444663231985117787932660427482350560160484236823438704848918704957461194591692550623612480135643230906837999921259476735713778951665359688613657310199236221140255558689484249029000431914765815633007846714041488930513471052757346291633677043342238836852119188141143545894320955854159648187429056478132555229674774405609853853705116164213678946803049170466838755493428311889899341213886240573955905980915721948969126694833199246498645082155551072060765132470725259018580050802008484896908902276895320731736604177552597893310050501169739059589643353543077478558589450294780904530318467350251690396287948015594767871890872677408049485328044587877811381966385305076795200617212596353149924963800812879508935634754616993315273606531531996348328542117521701169523805776661450534444275891688705556268219457891660192344074115088663845569881739820162086721945932460198767850176991751941480898057126127421794102286026224726431538200577966559445118184323727528596804572618193160415436737952837245049140228341090405521602295989312636351860031760111890336228051602328151695032848638810487842741563195189565991114737543191688437349694923525312069759743136479598357799254070508635375862136372926987158323962125002992877984967249564855831920431517923421645381505988468453348027575054635998545326402236944537615367057402731961922821552353656025011801122613083712153578692874406913825340884766674841563405769520436973270805352864958319033977498442661009236849884118170853804891426643414459515318011297449859118837568808430930942622682466736582459778800995321744218327107714705127783313759776983687557111709294167953989370638422377843041511325923346601520745178216252814151062829735534234573814691078125798657477921188111951169804858106417738294256662657595571082408125555831128554541694679256820182759927821940228121106506242390437627389142861595227686635245389810085841358520444290864729068039280637502548888413168028457007507729076990116853134332277838279397756225058693214846381798452190854270224092970480232950856930883823737239305653630105910676053934063849042194007205074064454886053233787896635521378851631631322295265246379045306987305059020811840365062237065227607781433443231354981141543074345708242137335236239481201286854159213089389507091631840708465128203661510227481213373042480705208643338539939290137219342048379040386677557770959865498901425041108557966956811631168206221742051527220542371313705000293228070323043279458494126319143685085564332646138806884328033405608545980035907997442514367004861267342670043406027327891316898399852270195194177194218322163497556196773795767118139281719603525902430679695727087129610931822090582861918617470281860118519095298419033771232669783308921874538242739465758093654231438853292420600561860867011452341369242386181392731397148345031525740630656337334950225656001407293791776839898143340469443700816170999004200933412125105701060767311166239525779511413687105867349901151848278682424448101286821948856419949606315492277835830476077351204535673380408022188767745038264486916181363484072238887722813952809589894609897411462779608604495475283077165966124258444260776965891618240927615268961184403078781302605829485332701065234737792521477210006267489992989310793873424021673386145397310143513732349269172754793490378540319546334562837200912653834177005349505675225666311698614157438470658520375771310188715494929932992199715750870835724154178512538427193141487530819721136610815533102909346046474347984631940363799376404626062026700724246834085642109492061638158543178761578075622206173717982350980870699240623481184160366536275588818150931598767176833063793157393893688081608931063875051103841692666731968017383794085762308640399767974650530422441190118987198200233141777872250236410196973004504353664818453098286156430599099644218024441305938174516860800751264982603960073114409843662208207572049410174599091612416279422434338711636846684615285763272985131143727736639327529257028874303556102378964888733437753782373300813978787882072619658908144755798842972279369370981290900564449877264066149020713885216783445738719321456655757170317632977052221198063558883331033544717644421764542747560024577068638984181744671830701139037223397987286448179461476463531418137470331384158036305583628274708745515222750266796930478523861888955191236989862833467238475271724132033520327279347425483517816783834063635693264626917079454097710717488960521836672371438132608586766778565494376555866007708445801910396381563730822680989436822574774934433728921707930880502874027427751531867192114513787195481241751342457009997893902898398975890756678005137809129617561027017842881094925328555558748197833642850821442353700242960798730858429396883922192481937715717968605943475483725077672502286449626710734958699755917497583667795998407770406037314456822507088595968498800155695371986967941927440046142784498999296520868127653630690803440668877515302076432666561728373027101642744930502184501860922281981026956494331926907283723041108690492731306249246418567491132423624124989865973507254331474077545176392432055977783618867306871950991071210268775783049320436643406843888462669498176903447460595061626551235238913561006593095608875019071799792598931957820337076437257959385903587952041604120505014280890695555420623177381773879335843808432153817212924120963762779488051661224122509679800295331937969032802514287766539205714996580192334336007301314896685970022318636150993066857212360141460986887481965277122685088414580413203765329436337571025079621630966965099709624715461150550883831420387851906377779758752790855955385697690127901001389357810559048366058806093191223392204708596226978917885287621844942297960130981518881895558373312049333817201563279181505628568249588658590284640601609884758400413039228199471637347855794153413783294721532762598800448820647519761885070123133826432151538523612367899846712120069266900330301216919016417714440915621585546927946396663837484516211453960280011185344591022320487784612123217783662611068556750887687800950681905271411262548351651694747377067689801817523344293702409532998930939246060372654846665776552761609584364559546048127000022227181528572241235970287198564317337715143853854844258475230855070156815576623367350354494514906236666143593148073684243050720409328285287081757421261801990720494915369276785702507888146182830384120744839095425025400096035955402623938372465805869172738642040360031282157175219933426756961929863537131494388272038827573958973974546676048588433139799838814092286240209693833335851963434941560000272873893897293126424198008868499226768551424999422545846578477314266324270521507841753517765584599227867702208040182362887428517910707524212154044025557688855443936432839982217310624333148030758187906179130004500904084931951303147180231114011847996705807689953153648949008101841425724817917521843133776491178195283254859424101397212818171369672587934929226526963276412516847457759255349598810533399007833164013456001400211247924679793253749252662459676077299310498721084085921829381919392475464812051505970844211470965339617094484729002932546456854174366045828134287311225977902243734180010812004265486990315849253897150663085071237477634356837884686117334786662922014995203139046799014308430674272475312443834770680152274459720753499399981906368554086604862400095060156030806494034341658423730379939179609399584546549311431740154524839794582307001619922249660052197509892337264314426420828131246591117207946595169313951504332134025981021042725659812337890202670886690855356371805618691692262466931259284301622610373124930349808947893920250080432330390930845495183052668880494836516653048744172487604060552504477280826713484363861520168229738634021942668037044033493834369516487361077538960004210984753863232803291212931535550330715162186481814857119677922277812148722651323742837360469266627634111773603819535382724342396082924520695494548058626805747586527577036631200372412609162927435139701471677746561322466785266505879006142158411677111288531551207925420083607131797225750148712790563299541113272207629749083920916695406276308054025179433681292579647123901418355090980699715968212451303560681305643060671411945124996337666866711019935505651661706129783712076953328752224782481365906636017908884476198501249713777369569822215674013291331235992129004845121141079027199344901182725306068914620122968995532868880654177064799545015636939962496442033782603201887105446660623230204258681202750576683382787664019979147004687043569197022907298052025920875392862162688590005366099460801746384528311380138757683070939447855150263441291554838713450793475142617941663279772156159191109691257160460252078227940196571108072244576437566533178877770646811331573665715962484370153461641723285615700330548632782009613693057455635761127039733692219802211773275896442768428996746866848819641417420248925216845282729971688454311784271118431982815920667999450284049299972877753650847576298880233174965055491862230884746346237277634257564084973150742903307584487381122614896215693492453107783414126105264972020824469136744861777146365225414098164416234908566609204875574723230658813741428999296846804938267483762418528291687362202092933665265193091028120493959193503527525427838654628352551619316248310479656665640123700444083164416101737530873423084401112295301337344787689435703926944748296661250393929869198347121405929355227443501660538041088516676364176034658481642574779624219148666178133423240051497319176575413099555825055309229905663270366410907506807434819050488892413446170612683430405307753999153240821243906512401956362357875453110761720479216753806146807885395540071826919773362247552652714129745172187447106275947402331530199490177622851967501857887214897220641961196098765977644015650554053965631979989723286755679083407814527746947753950015795476413171418076616325382028953384892454141771044531042663877563886280342214035678841820113660071803543559553857933678735782652123168047577130591479768263098798117525167432681232187189772202982610362698279623383575842661511498570070294848927786252380833572864979693299333792040522560786415469020230664063028252162540547606445569673250066099655151630949710600922772528105947346199292396655233716071165738439180170414459292830099468832446098836007194481674932844840106903891379439898822910333410835038042203273453172354137022320650611870643679661897399348264304046343705188901414605654856758833229095797401250516247289888676253723818659531257009575131913524836258220806773400093733839249765780301477612523765351443885236616947572082512857731910527843981752752584341424501911997576522542938613837579787931908397740861971730889261833775150318837435982623969262439618636988706060180331996563207529605837875636254925103220416777967102553965955472900872100738344235132452990165724486338736302143487453351320755049097319012856208931007075860055237918809119393441112847560049748732232222550195001175764988325183463629011575861325890134816813805693191166497787479041485038489395873658229019427475846057245686529655107127038626342384085664232998635330386040507922483552926469917885528364905184990633501746202131735311237778268904457468421330382975458166848809020459316671318361422345156669554053415935574692023584849559463245264315645002026069083311574359265389153302780024075639157205061598762650138896258369230679244671839963209726382564169227874675623264376590799889941334474590008597450065471899224089728300172230280848418075442447413951452085802130624359570059190627094765746373794830351865604292245147926420789083454097109726132378143376877621711518827214152294766867811092088866855704064161548150580580770887559134396888908989379594657358410139839533301553264927398774866310993011734676260000893303731872204391875487820691215515840673948556533542621453968736218006478243991654086988044311084038798885472167582471815428432112629662027548769172475113306384292097061002730375324250877082756953495689482997954884100604338996849104093745709432573474673408635575114108127236935947018403477111666083452972839018165196354544253896614001480837593971440425069398500624257921323414121479394316518351253787798101264627962683646640414005158116744207376958998064818168485710500388787060072680594855057151263171097871629820150991411676515104760937681639737050779649496231442180205941738550444715884793068870603771640111514422342269125630177660835947881642081834754670461271519284365159899222759062689523760294834098655044622454760646584891850927209043898844022556464023765386182038887320204235170261718526828556781745632273035997106407137260404330820172651917345536223531884373058343905593505863160110052856204394950632496497939331413801004194092937556070505302020574308837625825670064387656950013029073530037736119163046580940395547934104652644974791605513038211127883875494036469325225527193086380219332493259026418745013175663617152685313293957909972616941655632264809641169882340884757122600199318232838576075955224040739225246877961065673251740039295514076537171152718202437394044025276726192144182597505992246030068541908634967517968868604586635704640758107913792130868420191171494931236686409450488471914317217195508881143232571326577757217116728232838641055573625686559440704391745384478854659297872583784256844033852772776150624528158024607187106778640399390224316674315410562751259325107057008580104174942438900396007444940281368427927585232068524931486211943736440453182197559777792196434911468379166398472666704208431210669949581840665279175416858672512125984265422184503146013372549632492194329503890533364328703879698333999036033659175552480200365315713025621704094571868918367188545470710312244714490992192049247383898640741348197739331565388606860914599626992933575581337608883074161900688805434571514298069478842633116040413650257105021003662648416755708993664883675501510953799651022917798367815122296733751850166543843721280463429788919257530470078623938094999454266464391496450232862799442501623247691932695531887663832608332713036022527262417168606728744042760787192830123863334351731250040564268365468138718179834057140678473111422540114914988896039463544430897346797408472802456371703589699419754617311039276067504689412926153126791240200437833383917921828468979708930262681520251631047787063154130792578445734985132432066850912292113459291281588949106265954788849584865892333582153294034182616977223959669988859166577381787219441307100755420697583998009108882243475495098596594980807234112370258317911079220128365302615788556177193010581586690067935515388561903162047881126451464729667200525789147731265727678271401646511384701285709202182730615475775298936730041868736143701680196379387018556377125646288970462608697072162355943860272975079739708347637395976820828597568760247486806521126600751220271211158533726172940417148193423472282247899536649256969995537136944546956471256758991177604468057947986236214861051581913578150185716257304748506713875443573069973815720585282438203323285416069575834530818700785292026978511660972357902697929115275623689067532291428644072072350628161434793519364658117645102577699384037731268154747110463051268074977426936259751312057611650127736094243275153700367743846173800365987038843332049640546624485959368152793508935078024221849682263001664782426488614638756768150710419095152344177706445124856098412967583629369692362151619934168200461507893067357934706328543618577880560326414103038919230471242380004922191287939266843550670461765841846124301519193044203996518301423341428108602108908996525843729467676296338147590565181502900040279555663752893491305154104456619583406534534664765493847312134455708307125828455399067298566627636846176303749091402913942861431060118050999476933541015313855465175468218732859399580547625765604295064606422734965881036334433145085932749983762499104436166117949411190347907756310325804674572686490216854425947742880642744834385625547199129146879854275719180069036861174967227545612659194498942306869090302108605124871799158654572263127306038307964213595232970215978460883983748346218858281105033131409953721163283359139932248932203696545654336478030016724790823025540085140143687881518773024967706208502844821320292420653457330323768904401784489868789639414216228128498065713616656073960180065106605279125632486240443531414190681926866417900046186241669761697153621757293722937800991442398464895814132675570126370694121449189074710651950261962973830657650592809002046231967611888989915938300912833750518058983879519916335809058292884213988005232941051059285616179048027494480461156465098187699211111431553443442525534305649084820543062304032272922068516164771347900744447977974860706398532413748507703963594941915392028381962720676707032012291700212747846494643268208673646898189434318648738920500580148085149595826050527480538110159842470588461179122745235169348919325941051925339189594815530903138241983897426676676452585112388649987245177467185666462478346921578657265030252328001261841387049094043598888949080553924831646983032028168501055704359268026505692780947333888192056578536701091398634142272919872019061889205665788466831839267082499006663436506242680393485859217009040338124473542072830453967018979990856057758578383175180470748614332136797113199544257515306993764992051532471037146298864985171298027165474269003270239806439078627728567680450518932907594325296492631368080330554310827561198626138826355810708926908867953408049409820703625412233146194960178002181728399354377531894421090846506882661260420476632097131463767847603256797568242998379935770667592654361774758400261982149556591864540362767236603737270648119434305566383666079613850895646853350279822138118766390503113765063943798569103606917466886271074572913427325035199029587082561950509111918432322466292720652745365704800620429866087211900399287206274436155742069360652788746112389052040045216614221178433424586347452030906111414863437520993415770124572306789230418507485061498595453920253485796079257533058025955741613760760810769626327363051618572537208701581090070468920268101235559962234960738157616001562623640165983606580010566616450111404343963659926951462335248249135548609765391324289609497988156105056746887037966226050841181380212199657916191155252982168872353280114245027070796655035221602038693851774552145395840777352334406669631092100880560433520249565313344235455224809026310118814848534226695733617487433721670198078854351706195786058367290416883702799279659951886945947259212609108554739795191055091788519875786687344948933782154159553991013719996905729924454278959431447113793387856477364656030948421252822847968451453953615214744699341117320035596476497507005396177347145790793717748959339284844842517239242534935024435832358703602168225314604140415186414933285351110651455884031060783594132761020505189422727998275585401467604543942409237616535356312205570588154875177822819109725901979799819926312818063104116127303346032375213597518859537345732355717158875414999804616377153053538892146106818096262745860599000326139049787504205266666406109796719200845724332411191725970822233312277730956193684152077180475061469837333394710136293812391636898592963577254016328210648234305133569026056669128430786524195752330690206791591299780212550682469025747344697176848158844906940060071119584451964803009034194238700916579746293405803600650158434154956858368910879138189750540268827333283387017810257525796214674208765379396332251323511480431639725250676585852930190642096084505158537475580459571304343682823000270753035094314907130468216844652432605374477489744141107765345021897723116483362801356404463140022664515650437282409993275835394589935140686733971085693696613117826358768011163687198726515500782381102031771515332076342540053671806681936068576306112806782115428346424289712380880139806143281587447565061142964089332235059880137342331071863344976001244702105568751837256916261118103952299379846825344214279470238270325281661465066833914677940623386994511121069567983467982508715996076904304999910036070402051225110792791742719331841876134198026980034370418735312947337572610585976817099948855958297869436114459218398010340115798388455382691977201004613566487343579475956087629672545394255450552494126510106606244445789716432249011244932452159807882070958542072551954905957866742344032493184196626181653704117397714999527652103062300978314400575827364692632598559809106906309134958410318107489026079935153225719355111116083554203343443056324247254358476103277620955224395468386080524678655339497226730251370214755081216768970159453445230384172724972150814930902406374365607834806799462125986902761273097998750312067731791125353406089441526915350249412441544825612873950932360758036599911688441799455743122605303130275972746716333539038015702596167383483042207517764165816404159737139866868580499189332869736136752011769616900557584832698701837713856741815548370689610642382591894071388727756457221456924457096781489383619264873406257077016397017458375938282761603892465391805940856869509311993654825712429761937115481237528912094235342291676910589261592398634804019356418146785036318771890120697771769818652004124013364026195562296833182930393966913787553015937543587705854953538310701597150633402717023399222295020237327724304746045202674704246875789433893121682722170504769277600402872417004167475753372425718073699463198651260274476212680777754801845165961560512103582841497248794152613339535785183572427944138374391196336564764605502489936575395104926533780010855094419602759313107582961848370718860114124521082748739253569586834438890423314720750158186387837883965835564074767269809464227295799564721148669981921718759176253463605374959016934151208396563537992418588389348474621455574370869780710155219950824345927983337176194066279165979056787970183229372480073871456866867542151462177871562609492862603736328000951105344232160806931424227328561282000336230763935403910666303985998115051125204211160491596055370188633262942699611453235794193449838487668086176467195178358609257553678673754128778685537848070615249569219399020401806611133625975531532956568861074958520694319014781286825739014937058676501215359147167076406473988094884271548612600545065647966280243444907741123110475777359729528186457966846090945050765559925324315911274103787800764811431040253433252385822981292063322146678085212235390856119996366879279103154483551178759214508399415700340561885112999366144168378581163065468985949650238638265158800484017723086378891638141317773506580066514642621086500170715725474754367473194114302939461062708964327577845077077012463456652227022879161140616159657668735812806762362991027868999672247718621266781850158455398662718745244937045921095454429743947315661083292755228686009693731815099274815273945985738561447823458441022245590095488069796064873602227642204586298193684477669679962103250134918966310951395667806531931637248302879184850526929567061990735099827933613795886508574109959450730312790855096202576875421536963538910784532174761685267462824750107856927424212056555068147581607022186151270721182467782125825393697061454469035744569403100101988659408159200313999124994430005992862364206652364173385139175594505880018043758583369009985094007021065019772939738344841742575708108796839620481752539683785449717133278903680295911949106952764102897292821110448828119775718700893209455238125860216902736560956423438464398584189866947015590295412153881393586908182487884538969497591853891963172679594453061912362897704942199461317772265100399115125599663194047977765153087030987745629723384388121747816967689601836199674702481310418986785858498419429295312116249596906839748901785920112097219834506321984064910923177078860746181351132433036647364113376697877366896689592948849011267371702417001266281567745633709270576288491220498141032695628652039410419298307427846825768333348800496446167947065330947814565668203345745219251435874953421852774380497784238599392495354447733832598687047602773835194367633428935329567603424139542223270690472360464415479950815882985641339282985726780147525749006340605070628839988450516611469716465664319582762618816719588993266719364361892503862462318780489071389083598505024769379552708111941783680569051649592734511225355530344785792650828520665179004331916205854223540151675861208909905799952946677514618219192443001580946410775987446843716344319995919682744322449009131856696134129169742204026016682060807432083292508310015957618310411332337603317725203116482573857467936681621448532441582834416298125285257344755785147309016316243529898803703023464637179776993701690455893003816458439504181220097731699864529730947357824540588296274323174385545826024151942805288633345348551457338760584441546475016027413734693761600086816362894471370226411555919590196466378914716618419767836253146709195155288802249650173297765332734672938086809084719736779889693231827859137220190303858344596343639867461173554738192574049098654265181474481251456963868687981134713299783556769082295985036061208517353508836168984755556160244111806524174619553814454315381427710540704605612112908064260921240873774320167583104656504384257195159734527456500739320165197099730839601026682484126364215468277336156120972320630732830863589685876028899351655322622320549178952397377098218307517794707550252958100049591472237249210999524745046584618175468802209306124474758649240961956332830213720267226923329205892318929684230452560240358719905916602679403392475968422337939041417762903014234258992589654568565299104212917309114528824767248323536526916705496068053306042552596705125655161711971342399914387268363338341110409348299561620313858079921540723780955067686705393905798552792577508308441840004407893463453167226414475580311761216635024391704901296214008625990259555862183250666401177909398701970137022736724148918957029696202482395339327723033781210279239095288437162572649516122728977674698233854925596671410896709202369955550816384566005722171378929325702863662628658467220717586095436060979062187919723488791598142892735881160962101982336034321077099266978424823504845528959769520824202976246617621631130273302687648061794193083565406885413734300813777770461647106599350176257105566638759147830600022724338174385388777236326158961288259809712723720859708906039531947742448291635761992296506131771814509696958077534054490512450396743347652424404665252793665592066125749110867635304596758148069126631105150944305828309360904745485085693216647235531829149484994503575942241986606995515149900221661491589308540989772483729446424339323258590462702121036070198339551907522440757240932529079928294766171238797996209234429569602686707299619082661944999604233221887205004086246189596223927573766124380480230883705843097724623950155104556965728980087147594601580429604380956779072487050313177219431730621439030304553790558273873005964412095153669742852757749131845764242962034840550723414495844340071301867045088385205772273852050636195129341633597522045056224313366402274401261690083917366879890816030808601755644668385425996035566459006432209006506529595319935195132970080351447518313808487270244666088531446680696077202288650108218171054749470685395548962080269593482605855033643502685872266617285719836214015085315928179622847360745614928961498869397044284880135860625565007595494007969930650873008228065536867272387194231969799615516975050179750346681950073979658515995752976438580477892785206662005162824530458328600787959772615379210623224872277603864976948913145294595051331182299559597919799571746563117999312023994725157371233511710324557007905229035056892323175184814716011920675187113312225583888744706060664072569039179519585152389684454565643092407825333342560444708065417876004454476604469280143001889085151967492083170377795180654639853402477015320075905749380699930515362715626178488103641843767272395126566095543906421727656424154765378240030464422216792127667322308279688935041607898673886070694092209031294843158435763725482999705605716625460023431664785515867857525866855624451926995683336440848801014694183535817295699533436864986002993358721278643616730772595597258097170551233203392491678398774981669070745950043747281707493972430686839924126728178487648689644029097295095725194035617472893109469073248541804428566333927833550952514718636062299746731722365477476543551277976450367525265281941671866554435745415292445916834307492974629157515136088518043002913243975162728809783933386683593897596806528334811015386505795788403110617646492991308395607282171988965076398228103912435697666620705709863866739232834505394693070562944853175210570716417832229051793579109993537094967277333564992058421438816668883843724769330740184333236097251861337310390509934641957417996685570459554132747607122358692884359378145684849941097520681761216219292831438405927377988291176972488314831401952777590389427495081299766316676087998100135722423750310934236237751782808702982231424058471241892607652712454189594998090360992881385582905176396908448500273501151773808089728772298484085005971640549141237682543287323721524248730118957215808134420149125437480540849917963731740493962289160045095369621268730598303540001655897887605004561010816020777460149421479166841878576145473109528834726529618801538770661440199804335501080745721656871083211340877979956225476453352883172879991213638741461989604097254953139736635468082629108590419093669248196118905326341112212998822888346766699913844578640450392297634208327035346166256155102163291690141062739742601545709941988023483218192032196785888890690856137851322933166312110114281313829000275177597773442549270001645013795913474319351500888352255523534016186697270086306655026723667086738709744365853535615071319418619189849845842956776754554821466301728037954029943267079789777529591379694593237657491602564521739536184834040176889631995457515670096267078679494296985342014242121172397672995351980894757422881265453946066519004004293965398956797067081778051699530349619976500185940552220838082291354971290563582728271887388484699702197602149709507524202384171452682753786908264486115221458029623213796298844062871578779228788939797309677071430877801280855016601441264713594197476219665397116513926573798706583078736854682028797966945440487257748195475246359761124699476911335584458387684872286012591175526363441666170601046889125510714921410772747386547393512833088763091141636807432061322194813990963467015233801054078086493348977821136253728059850626357244456459662968354492376953887604576408409847893041997376686384388810487921967378529765060995463045898584679333631777697690450975628645996506026133604340146650033378497349137700757685865734087274221128229464704871930708403316693519015605267708263571223698481393614152894165777611962145943170796337246114992154225256324073924349973621300164330902508881899418376468058106056499894106666237367758978146628218677625512816507361641215254584348413324988651464531082871494734769921757979006919886259330207497672072944751505131210529420048037329354601560695194751603334650208721242417712495912877306931823176208415261457731465144221801886939340323081054286170444987911718001007233152367491372745897151073647221785379654493429142102581201246169705063840827190188763661782726984990949102137766251570026689967631094228484106383443302250215003959668723821304657179638220985272618903651550115005432128102414787828340135491112215607708882138854151233833580041213111696071543391506719511371958654320866853284458268404157628360618819032139132395265734045297744381177579461814146336009772969542547466229571427608317137861356305301407079957105607545631652454884370000862498974136374980197917074338874450735849160801592915368635303939454191988045006611026720386030104563807303353720922187720631162080082814095055494610444855249819646024974027863352141978521442701369891125467090120551373299468270512951349837766313615557376769624875057859868493373194858935948908426617961249446257736904577783719164803344408079795630692545787843266163928999770813625267175972556733206910702205582521938652561206398970403132862403450628578424404807803438955205797854018024833287198015725992244913638936450769231415309851877075236336237951967867602908108979836810752341753878991693988700616235374240695027535717729801508751900207183905439598253267771852079538884000026243238673398854426587326785671218276570797785572416366136893074770423173221004033509694829722120036944681421687427723776887557264610604242242198047493257706354262091645527870077154621244454699913425797385590198272639558696611396203689690414009105402551391028009172055440016046172157411079550508296235966402798459360476149161030839378317309579572248556810273444528935997288606990096048311211414243421743667596424226150048266819426014698619283141571961936703719768519856364792897791560430746375018591226102556852072760938052146808767259594788185820482135875463582636105968639095166555170041164193290597495026281247980564747745940299543147400195635413739180046687095051431227798681521939940636793831315321978282446136760670737165048594454485551021844580898190466671502702589609273247048827526050406985165260024716973389470198325248201711928303393567659079071616054276295797324911142306819397832559781893613138355132898120767433824777025098357523778727460254132894800603980448755854020160080247421600532820162906200558116954349676726500248932865237594326359813425937345297284535050170952468682311263517514017621912447362800411463841175339707863263226390945055505514723048198351436407437090448810138728066418721471131014411152942565467640926429828994981997802647608538877668707725052128948753147251406568163215863046444653103620467201401792354294104303201047116027728253384486787197159303098668515508358702788680423218756986808117611732662440545431358949650115055281795866529853824446267271515454187429251634166854363209182882573129980298910875546720271489719032083543796468824364122862962801707028850791189009615592666311162644704759506913671043831761499645766724716497202154409849534621325563998218281736039250066340712280519286220246328532123674519250159602713171869588605805737745422232426142655659625171945508768748980769227738567464327091585352926896744327491941043951917365790553832768386528678127991581039036848469967915253606224521261357464587400561281243351497479775771475719094868612909112408186570895106068907321378464320936430344205382878087121446478860632871112390200821804078719867387203875193390420296939247272085704080653319166187629091139595779303265573280655418586073823130589243350100914473157848840498463756061916522592227956494787118136943892759518687509010677454397475847546349649704705256960949296723799277142933512186209014457315980729345764021339747847551909216728901087271459633221172489356320807415167061422923501069173176081401149499612979296551243777473864528730232282466188221879799283086522991302762540245941381743814093352526678259338521610939288341600616198764413495329234195639348571858212111257787076912028401979894959158877967547097477586796681521459132927145054979470642073433010196125305595805408667050803649570609709605839309343941535827504572151536505935446641597668437821310094597821269695577128356707225910135053627831219051435831363977615793390954551685772245914627397260201641604443588537414631529860523432271419844817704277922720127379561889134760286706710877740868030953486524656930066957479177311006791008746780091135188153059874170892533422743040002031642971992441114179264962627135988039770925293146850658976379991858628109508056971959338909681714710862993164958346770118672615650127391218326901320363536637839495887121884026470559789355057385255429942195106593999447910725948004009021883744121665117971628777847834591933566601507105685851052319084745034406101149875119206986380326708268431686561135824723977595825055944519385845422627566215720371580635958569707264445562984704452534855721120908421670992784558505852443140070856469610114497736467693059066971794332657106998068178750897368033612682874313363567773490026568099520620931733801192368217446587530314213621865690334420247658391040855652210043319311240293833533374673855238661484133841336645288522730648496257320039101137568586657415130755714805930696305446931881254462149862862668063182070299866751968792341118286134372021407175696352106896791434140273641855165908859572347994075532706493394353868937238217866527775223017486001499106037305563626559292301892167437207474792657717445075384024275841806973327354823013269980730139349042061353272180483939476986915578597991573591224231948195284118529221099853038365474325574210994658959995345832631732966986111025720057489588453213045506591216293484919968444156071642465232116567341634392342686404596653093278224924275088706175283829633710840085808079189064316327374930245835948354517260789009495235362766031720187065050064839601896210388396768713779873226717590650344028378202038699999862445303784863451989794920417846191800388892684040603145051063840164521458121502486479776679047540028950081493815352714311579028825209830951510523766532872515670481642150621550234748708205820241608334707217218299258397169024460721185174073173337133037103896646674988198743171208504863195979482300611636664381487921063164823111230700529533080179872525751160268807194378568891862675453312947356649588722784144031605102315375491389967046012142219703552813657887755071576045410567643420272837530127020222873164028235273649952339875412704614219844655106710122833126677740925981565763285092228188768216694543486278120611672751244996758154161068213356195823734383586159958433912898272114116621161963957085627790811398091958749870762280139355030339907777568861697526357122038139861472533409312705748194001193950259255099927613250045085679616972744294311123397189489556253493698729752420180293783777301804625992462430886857348064292695980133016671375919449525458230550845750014714424963974086806344569174573207386114942354514153865880763621453458195766437353347864697127703503863449775588592360777075903687599212831971197561027927196942626024865337496295699404078855217184685168918658128564009477412821114986169020551268833752262271898808340522275695434879333652004311545603571885234269169594278713252589293440223997046160892207414606875603281795776302975544267600790474083286350750794026346088641298363856254300599749391595705878337294929650161041043484097182178994726805741720809450931514401060740727619206113304616295103405364828557838678153792033643487415504538232732750451162517664734623298879247542898149889713886026417147123577507412202266382930625342280029967255332816931478472507947567594612685221429683481823284516610521482515239511497389315854162948632844455090757160698333362052206680980593333207618207651139034037696301483568458298590646792624172356228266107586687244467544839573460218024889107528359884241687980459948515522115470981669129600957617067275258192356173361796755290213909832028458401552524058684122509586271634157004034391194946529075643693617593372464079472687648858709374819492705269284745043771499823853831597353154121213964133312397049446479796228473351538666167426606913068211793565045213792847270340943386087635929701323339895490107387666684370584768849264775109062459463661208354412918258498712212649341205503143693054534808332922688417085505059657187708250453137414433476639176514235553713887177370539142971250713370539859328025457149751659751139338765424725477199401776735245542276579287148932093102726985442818462683609486459309358996544478735206491890419291512584953169105424296539094082664410733823549002415672527388115315594497126246376918579300886390165755360720692623649902183093629061578308377785553634294661902389732206616374358856344697672939766737113653171863475921090911218286974220808327722067673134095160708944943705161884011960290043284011036872365461298251523836473441746919425207954138339876450123365712735058938647550521529563281464331895809735520958620150011184886240424187746059240489485431684807798866733216258853003217135002618502196210411441353310537026923230238060248825640482685286227622158803259687892016138940782548292998074495559590124605043608362816326160262826963042245574035397337928595832486915546163936584448493868935211015949522951028787914263639677496141664512174593389492083220737959376172239858851201047019550360557445736060639222361149740505412629142794404526622953126317546199852416686480299237143866819663715954081169206481399533054750805867301462862268015280461069384816027893127712104469478443898663115050406848332601715403055099475897114244983789482341689191947144891135519185669563101003617273327855509930544676964914875037592766727990875267147085905245636710038115645521841713306218592879280671423582216140120583747014826291026624134551358749956120026749572409807412971443368071121610228637377173672342393730319283293908348750146598804753047730011509946087604928030347805324865566122878136882377503871682372928109063535094760677170794694486204801371381779559881231529222250102675507063119001239556475643301321221688984609546024160026272366906938194570496479600807125806211784326553876715896535422708904512401722615979443528067567836668735958612334711307364645527992401948571454312395010949486461617318887511451291193271867671170709284316632089017340669557074579776626612788536301437565297178973325715566121357214251019818555522654894335395108187874339837360019737036592623191857247267484862509460217137752437244970815135915737350284919310416622686569086844061986739565436019742435043243288214633028979365287260453922281642804410238315810992921169706617701554079972329907231012969702049510134380175036290779505198521979161862273928329930520411498494919435147771477461711714233750555377903939963906879299220842145958055097069200539275505840716298993261161645631427967151797360379766655275719597816867250941445518330414950991781405218987076362810489792453958508220478012433571675053279983793898875956514371874079642538802102931852117011224026082312003347889382072304421495441672365727050976787483767603487939585028051123932170899226853771094898819272279755070469263414665096913332569609882577003187012791558443809650979132804795793482545601265808725926518316841563778996462629622590184144478560622497991625506766722754195439385295784223154416862557332418515271571561265914789629262486215848322196138576023257846106780854287865715623997020428525977454096627493192932398173579313753616267355435986630726435274133244598696784187790600952179684215745228059502470505501927362910795213302129544153467135436008235433917904381339808363763928971714481178085608434787154310759653225979612466532706116697850912184501369715195865830326611495636786578539098656575925241015174756153828622826077835627944970415884409000059477566493028028730541429422517176132715899633576319864322485562304511141952843984487633077291985333494319657391621523538275404296016719273987583557471655166117626226708399176631827334649467258129523344382604700308161034740863128806550557842106837887943740808036321347954915083526036186732517870949416773984485671351478281540756211688959196929999985092689140763457150248272226551671382538751495846228483132284452854893253243256738466668489682417653915028762400446572769846253068245377716486980256567754681326993481069776341054075073249523963844252154246931060308321826718283888515036145805187957835888270228837824807526982846209118222897068733843944114811712733175599277073906636590340769601695617430908011474506434561207404105173537554022242987614895955713813118189609113068043322116624427699393269811289073439870722245388799788395037218768154702243883786450223652506264881914074524200733118708611880646658430694360487404397771448780840656254666220487293765572507146135665625234701579751596947192626638464017559715540264778884502817092835229373194499957538449842512433441226745411386112944621738295365959308599575103330764621845652766981191790504988586485955074171569634025726413218449539743742802458581039508606219708862710328556069329546250478833129700123310902613548182778297779741730068930299804727357047344675171023725644936365500769813630465822191707891210426071100236824911496768795076423093663552118743812286865943005466897285407148284012333872208449093893272571267212313571674631015508472612753763602933760612500972138491456804511719412665592069548556421307317296840591618871836216656367217338091748967724705546161904048732206620558588797983959087814856137395281680760091247969646046179622122152574687122751968037931330417408751903085842525187853658744088490719387985764276697607378080617937934638572789245330525512618007772932605410237872434595922514551561503490074489066071657612601146066308413976749392194473912327370199812425207672515469686030764701112472693064174728415131643665221375289675250428077176929146481484121887555841459282961431002136130679236842612915617124173232841254283730492935882615395303521849234691261665871814059083212218006212120842219623492093057858141368226369805901708999176421138623330987246994057923313912500340965958253332035473711898707333251943695561680151802751138227979431847305644451404068865050052721874424370091628943608944157362950781427835803594811795844738173180848735515466256168978682422060404422912177657777844524889221174092869681750986929761488684181048957233313785496610925516587231616228001993387144040087937637756476235346402227255470614928740672983036312208763709510396927062723206953269578731300160046559434918877441683961036022975348673584780887723197314562111192973050946902652092901538904547464053690133798130517826651481626407985749690021024765988877008062679584582509673149458739541346769634232794253761816718583069059186641705569936158996227968657161938149888858478574161720856493988288280085550803169378423016276994364822609005671471750473350579913209021220543085526322889457490823282627030487810786790102628305810096236237440437453437255029953736554458949557003831920307545277173135188334083935231394141417504917458963190904161443848900677442445281427871075132539436086950432549655003862089307994770438295268782818859231951805366816094695985336381759438658725828757314492847945821925594948246863246730538583556264053773238321701068019502483972561552280443088612308331708095458087370429692912345286841603060215342998113048676513058805533251699703427745074926574106663348129826892867000233454836953334416846675502105520526337075256274386386936176181524846500014798641779583735647541513548565014634347096876483004555549550443502414331660403957647001369419309428443083776389802204811673093865920093404380580710315096975080334369222214107024805506588244036848743290865970884305793635413219066899690960458139355140223037202380524767276420086168144572862682710540409469293505274075272930105830853114602257615307602788170112223608637545139803122873375197177937348477309977423607426021136811498314894778914707185718475525083909049407971206153382812100387426740456850736193422080012676423882810799835521726552676221582676336003492939120836905633141016867405726571305016506781884344479685168661684619781100547408586547688425853623046014902333916324929064986383877899223488128472957351843545346612888909445459126904511570036332250045042748864181391071403795436786402428826855249617504409183468139743394724968585256079529915131425549013756426031601722538747977058429556677240211313375155760003133449080860665737200382150540844929822931580357346444365417562825481966115270836935319031948334865532680892115681132186690707151025412713604545042762286312868803993949846739970744693876844799720861371113589964764767624285794237443395009050023622919549515783528543182032413755555833640874293944020496776665972129079457312608126557621278468496651596518427422541590757517825748933918682099897829260372060236136192255826836365358885441308607749714089076707115593234453480750164759476911367187653686464131219085264823044612840517184581543505938002658972616540386196683539663867414446062544472911079637756777640519471112304696515698683340205001633977541643352066308172305371679089441383717414835047895950048036043818598108255266570199721915501416076859236058178358145258487575824056834212101573244837117997408533794453214277575640258154308598681938355426575341805089922009023989695249261668472723489445115993113258871075369368791473248730831592412847786063606883952871860515357704444183992114987285745157442455291743857373424125999088531270323155941526008702856665166123139168720270721967916538891380793108904497194225258886882002429261137048260993555349029834029984739993381291111512498959191887677146897154323663631325126136184479547325225962408782645714351270585739333462007934129746350414409555766972692424338073154142261460242734322959746017863262316899186270389545298643089638721383312181224910265219974265644243452288574055383469328925968235610815388503196454797748983594515079119030210941805836881736644552659399714232923620018313129363082741242406111904353330373121321527742979037597900506405443240843373003543232391178093084422649558692822680213050397250466816499811068195573340136448277604285959507507582450136115510966721302817167590276642050966319161516464141227646696996164003855478531010062102445422249682560095663376755614812205434171949689221427534044733101418717114298488064537309454352276970465455386772354595165422025751341140428732639602176363225906967648808196652647788597812614367542146074484614814870833249528416659505775743802940960853983612544175306878870328726679844524118303123220072995116431649542675281495630274083658329094519483435717489172872999398341016674383059406685214699992561505508258256825058464767323751596963357267606959060393415276942961035445987929870942538662066019550876991617110063450584430354401130921921623663911691007689928519645110330003109817829168331610821739504286125135501674290015186914157321240819098663529479513851113406976479414568159326450414208716320399886963056401086404460266221207647957811877182496577318852701708183923106347148326307424333924545758781881625704784193564609058073902487054344995934271195294531977046056497692867519996467879788141739518030823910013241637328012922567579303991561205874711782403463574309889749463508464642236303715932462472236916390777170116712794637345827628271688373895103412989214662315060387470307957033392420386942066437400204148696244294700068708124160366141101083689435940958630004750021755264184048641516654478148550173931682990784451443408167275874869688939781170836100426664703362269887998607969446428510134464460782410213815736211112625524189953383654225473197710013910934881359227032990064863037797926664081721098942494381907594271515722876451057562626277017480628729159047978402496812307287702891213334228762316493686032745133026528243025381894428438141075590270554620785085534042468680567673954126450273449670105009668231626542037970681796936826487134717879548115034571303012222805404339163508275071945307712886600116790986036813309360963963498272333625017218661378677377855402143440039396312848855902923981924500295646530401423990243101928843724820655167064398069336805888161437372136189914826724697485274518722692701949260476327498866408006475813332101737771120663673385003228715197168292110704322270142793489292430756794778968216440089384679507439558777729696373951255012373553072442782588017315825885902451040775009197839561249187863373962018964780542123214587243717497031411947942275786662985523309929336263310322102994172965678018486538999577643399655420538362070405893099863953798447079966957789551153340233247273201160393618367028575150699253367818612095898567491831467829222703725791218939411854049454123410201896025713713434690218422281390813092047591479935652110487327894611017412181512460230774364014928481054657220074809325232015183505454241921204712264199209094928662748563016387836584614210200506347494527112264546067988947519545966735490889991952019813311229960198206448494719365180471700957229999660904550751476155642994103516483165321218656453778648690709394249349749865253584931962052073401173058766269561250091043045670307485209178505467504354755296769359827144220557993880043623043218775072388051593861942340507817452041576322728141345699561988928292174163615104758259790539598085289599106566615635027720493413476645776051807572372370610489723306825486288175036026061768932926990410889778304579135462840481364521817617962605191991221625391518382275832232744280678607899903000979683077303999205688770478549126130778688464249571188479356968631344788855986629948174614130325477145964176142699824574785023594069373555084755468448475267337435103158341335772183597139029619613047725646252599164702610935324980772055428461277506169281858369736184396016849322751909416708235919086421471994025287811241935641587072607411554091174962169158893882733499781797687226729091235613924898434110630135548639832920034240870289548568020828886941079066822800413546948697506122373058613514029096370481004092775805837099700569275586584027493061645642370457719373975457060936567761963777210721057124331980973664037981710771354257440388785482413421408547184257373685713773945869475552960331488608907056143389738766874775433599824238124020624735228001884446610194495148503784146434372311783015544759679586521817753093972764714663695569370627142251668240412522685734383558055287132623968851931005250947345327482665207915606802443733999914578447167840205744296628010742333351517215948388070920821674357088936239459303846804139479238891168792503406735776266761767643310634253913584824327082065511836997042090843423724507859558111029583701905952806620691629849327150960009576503267915239741681013022275097129469519541228754152210389465209240588178170436277524324448191643311190930761070102282376445213114022321784167723847089115186217340886368911404528727721755563313905770897762571779575088429864366269870083251324688452588721240129629938822509577032174110187539793999812092906179586391530307080903242672066074871145002630582433380339830438317141804039951768260449233321674099219526979569150893002954901363651005434186478598573266603251866273755344633355641356997746791875239290592985004881829883260261020948045895089142382861093025952440996917724919374350891177247446510722097205987387571102693853949193516992231811365260216951353080298638995822947129580161675429912895267881433521888919895359490180918775576747688019290346754295242504862528904966504491892485678596749763894329295262835901084558328110628929316631919258196426372955553900488613722488232182771457100180830418081121758282243034532203326248244632320765418965058874518355327899513721374473688384201399422891871116906808609759077613855242401807704671417302097447013856289796462474175628488010550649131453921777048243420333609886283361398182482422632020004802411781397205279785982329246458558029181138656268364616858870222988976424250448941861008367679538621834684936030256357819647554183406084666221047810493500939864183772906904153055428775513254827541613402937313427835310781265564100766081953656743665870011766623560529175399819802793987243228080386618089266725112625691806793396750524761585920963691445995130433627709881954961996302763703971861166524833319044907900696429513436315676393065866053336381942957293175935562294580156869372238738901504972980226332761707133091407732088343009981077592683474870332134045365461382296320669929248590597536796230121441448610286743614820021840741153227536963918615826550583324252258564320931728547055228570158173710390531972111191557675737709093175519397516541504569477505341415571293394822623162591323872606985352624992485142357489701760588103338705913776661894996582917400086003131062844521426080662793887774112837731723697330270581395238991137887503807138583836982948970353981115405002277111313865699330045043685213734447962437874083214341721568555943233566275697842875335708968276447443958547016666771206426521801231720771696149477365463743006217425845552804598254677103222155929770485077536373397398021305511926399563474720974466134473409764752097501240420059095682422996082920578682678838004956855047860456964443524313355756880965846358605382788526808798776970953591956866028046123386829508852143057121117137880489771213534825531966999696311744852937691128362357356847763057462511863295996794058333375980503350243190097408175095040923024628112485355716142074849566229284479927576741966068010305692262375989374031675019290096962507267647552973576638760795785764050888717372622529183528338322474964658158775697318322673636198518496278721984217625436038508116263777895434505785441564236709261797037183655290206791224118676084833886342563470408684204740658232202082748238796840274158426521661572967892604483689014759697458625297672988438526519716991222555998783376706741211389070019404153481890948720457173224710140767738737857058581148111724346560406024975190318805067428558025318907465673393880313573855378295847685574457099894848295694816821559890170586187990205684789507935307192940132268270465883794108735794144097969435097792657425804161473923566007677891451893097844941544982489417029888483103820390800326984948111196903755076242623531887223222234540702230966522469277190371581127033690009532761994355886919812959438118221009025463686081665582229948704971620955896456608517985771753332677786867621722178842634491837902776437054717713474139391812195043297036703838191274841219716252742794344445263372009168995403858818789015329472596888484781288586818044800259884312297504918161736113390048745522360980200880800397342595294853764044482726155338052075378264698768871597456512018198689957930952834600625417725352553377265002367841891336579744164973445184244319332735111612318556886821750147061261642830182401019408275989155830428044143101882074481379681892367535216167586143065110893042903797443786298463312750361168716387959584782071877326625477879837015008902842310127704872287865099115474694447202322844596904192866612799861149354716604948735444576281734069693212447186970192257703449472599841263279394316799390686815425733199858722663741616115421080873433672126791816560571686937410489957712216230899738008243289752074139881572824347609362964605355956950856563699675955926233841563770511976114798904916520207315116256600632528329529051337947420138450341557484922714877339026377952038774493117126930433663489589861462778906797668629735429723988669219665752737510502332900174517444369614862858779957892283867541852125792987476479357727351848396096882051968936955756678231015557608614486473300201705684127442898381971070037036350865961864097077535912728472376484101807574997074967579375114561861733239860762538745081888760109133124877865520079657733098549934428315578484902021217134131598477016778975228945326383813551905824369694111239845677875895149764762737891457874533889869954187872787827978441601528187114723416292822319711119151577075064248940216498152958485453156911848641370157796499029448714236675143492889559965873051786432971882148276432203716140124474200216088328383546158328273736414475513766748169425085806219495057013794868182631460051432997603315718222860787107493713262749975825110151595815149441625189639435468275154222917611643450159303749062392909445739522066720884804347847298936457936651683569564003115718927109726524491483111759257422990547398523489987208652160772505033482558399586656069958659391300856712677989878009490344420403855956561994003420907293512856726305079398122561367521225773748814988344419511098177405519941629477845344903563837347880381750102251130700873803589866268447612088198863063018386604568698914177944166486504303532452465589642395325245673686428244198875232817799921071504041930155985598746348624478284958882686115973245387834971984177262057105582713020651174965342523837100841888096602818591089552231305633192122831408179401510821008128718145709147902524638720112266535147838491396318529230192571957891106229711601145803022759231094041150909017733277411929755586528025807214951837816009650541234934394648447299290737599284949889206252375413041054685402119444531456936094414231185579542512012804191908914144636736329445185449768502578538139106037101040833621914731980327960022280519149531582095870803206366549800020537369596871637255671538633063267341907935033875602095397922381418358134913812253124923243319235807660899824458709065994381334317904080551750264112733474278840426158697118022383330789153825596878181192555773939435892379278502372055861428888949526713446031731359311883656436130861583582795553206764826823259722579340186562770882756827050493477750270390331639158402050014068098863576730160634921189879930901827551691078755419451176311006544567665996758330136019281357813079324955765464355718942450941414981728193801185463486731774236440043638644812308319718982062447802473216732539467290046733302771422982171031789554997072379619566199301694169400620825327027007520159836708094472584635693422251237002460858243551903880173409302509635660780023050300356587575167729808702392803825995959837463557836575095523756006887011960224200631609229504212793273354707626197577172202404916786862326512730328175762801406945513265404013958609001424700000358572319756112782539137106226355453409243002960426850200738279270819993436964546288140232138190996100372017011581291232448972826485398871924276248195190748835851913911035333926065651269548632595657388477308147180072009843626741690580092957384820084382979099488061935479039156965603117771307797810278324662227282722071091389567762309614333935547385093498613251653145046420891306779244716678272553886960230175781550934789604211139878771198655905184399401198178231205275657361450268987512717912800908453525499748238436580914476394915626029041880783659861536908836403636525779266564525044243939357762696399323867877518924819177171570726153454133583226924631493775153575499932956966163304856997236595881414692617324481118728173497890096136095357021019765097053893495173239599103573698525888440338268669864483752403618329318102925951758847651367242020994679111640119772867592797198901090999002351454004817155197003051480477849075655048012713474984125440799342305095394354612288114462734649696941648877647251843702330899528298853695328770872548145711069867794338051747886377354270901553444529735227542635840435577164323319051276666621724395603144510448271553029276387842926190889760267608476560962712279638260267172019686681085494548555782625185917588358858350609641600131975050074016599896508704806551845874005455156720817914742153766851099533774817914987255147240185215128653715262527274739541941439499492918952589576737875467790658879816585460157983338802196866322035297875468195008773736187845672476844610811833842458994569265451686004009365446252645677863398136121052863700067906605392374346771141350756434565012455446100048851142307086136167553100544198825462027833067443431077008259291084017671996377292225479472164381842918438425324411539032462765029038163742891522747875301656467338505278892265445191199769080929043395911335397249536184842282539429190854165176965326343092032976483415993302075074724916315935367552133878133322077486878662182473821391694976680189684510754912623084211493279343508759972854359396478038817840303106535103345648025839965433684478035257822884386952493197429561919374716660401343745074310944508588884251812814096225007061805497283857812941566518773702625203420067914263899442697971925098192809309553742689851915842817507720228717504425392028572671820379475465456596039031796463561566659991714400165562336255571601906750659704571695895820709419286620365618808174708604500377532424246537188343576197069241357543400752809090603278384633686047177672942337170616189556630001650275831497265733381644144081783948295918577640495211416579366854939080389712042406596959222122778577823321657096526426031192952996243439767751302598056411739294126870401836531365648404643700234078422307379737207925083361691391444206528916254950201601446892738474195070729294054567172981899078320332666472177708932442346587037634395865486802900193627380163220223750617514518838002254622065968663294126132889180034528319691989849575370997487881501567830216273944643250887174753871209982046361501857917668485386898295145629747870838160589998029494844269918047270852484318901728507922437998267058393547915298502033516979655000149574626684811607489074744595488792574844558980096244084904848132941076070991127192407568859205850390306110968416541849064191357891573768906460264622597785504763402119518864674663612776491573312108462446050350925612450121513501899027372908538860887280703254429355158487412588344263523675328282238790971347320730803414718632023963637055839186097641528666468329160104252465051439832674906315479297920310458125328520945472454673258717848517044916315865949089827869380588251231596664588706018361245416115590643842058904682774967945513168573775130851884043358007147888062557640962723694607239453003513220032653428785113384639706496410599780160874584131957617682358735567160040177553380441849169682715171294240847599215798235581036086429597386292214679593965387159288426144407887781183609272909630132126001908330129424817240926325913846406279797478051187925344517904441106016014460384682209500582614111858639779417532549229729878022001783931829805475837549834165752648054079626261070402173632665933101059272838703201026342450653289844244260449139828958925866146434751582767697736973401754262429210759175630783579380402502700019223494453150602261171088933027139473146196943482002453320551536196128031470460253136616919003046987924794737841532204841290555239418537248062642184095375678966643993558162015691526353885583497321753126890145548652656470725708019922477409061450671082819260312736999764367053678795605147527343023142833452012713300865832722716813726405457012530067061324675167047095774418733862680552376605944737349126367913782999962061574099756109708213529636671100317684861628767032341773493883670273540022954863263703167391934627806406565859254732009292320567747606552146504675968658772606773636163072989131228564802796586738950553287806390437375445222420860594072997855483786605599509228371664966391448510607558402196950302035965872535766198749780019923121775730229511156906960198670594146646343387373035668902405145360400182432554371617619471301803683825738955091075469097941267504093951990607546147114670389307831336588661463665354852999038747203588834610708859345674620849175382917775253103457331442723121319751731465362549493052646144172770883298894662392071237919815805931327942763704997006623277171738783222102123721773192962810992154177819221517702760320832756028986464027148335894944627335212108812847716197236691385788857682974318064433348721001939729916279120598937247185597808872281013611977386539931380794996072908791934875233768929825111209602819878729416714693735092100851121560986425948295896076508797829035501817678054254416162689043008961576585951635517901586867278495035427233248357024579115742799769997938313552742659982891750362559707576624721158807656754887024140808025473810289520452163083594648305129216368676446676751088153232877024326091596981102897566038988484060615576747237931298601183264619638753428429091530980549809249318941896528761481207937856142997080573876135015260590309379210714304325073887633813273796298911987096830738397615685017223715656369382071289162524864046259399320525074486556807104519946529444791041201004701729702667299102250989282842836144172107045517960173096296781100646768489030664789007740164285135395034086836232044822887805054167715309656207962917352256495207998156336238692266063671624695495292832402050600313328950607535491799316182010717922555881699514225176603805851501520821632413815872010537624441680882890524299316297619164899859579077945528506372892931336474259031830857379684995950609925040587757299834156980640317092608697722081411564267193219485135827648236072541852931994175157003542319535901157156426983721945884511357736615597411722610113783194595317340759272078834008501407101871275530104533798817595937255123756232313130790635147517766122941316234813038147164722858908743060486363958991868244402502452180866470868415036082747703564081693574387928656476461394138839589159966623612370833292394894756903888457915765517970709655549846763166233216228661839768248892996238071828548632284017902938510499929825382635313395955280564802832965106862383271125951166560413659302077028401823420948279914595216504577709428612819442433641317053996568118781307521084056790233526986922075546324613599049532597192822751634809456293367862152797375472260142112819014298252730857309363279392290365196017212656940213178161470946142365334171945162612895781109807950266730780868583006356278476082788735058240833075940912003226584011601338100580401019460719160940630939295427552188074660358960036900736971563417207752053800910684536507498058473033336761229228774917630878215206132846768709516540389790520075199218545275011306129857156037261505841940230402162009126273929739166922867683738611374985165899010834907374569355181527319041604146856815645096294261751038755249036259084050810308889036020065248045087619327304760368542939852446729745501474344100342497086638556246094865792472144339442968789052589865066645082575812552158379594655756735808142414568662056941964407933784940957150361236845814910028667745965046327823463468103786435357475537136317210377512160518204445445605775873668071315036951462296129640638720731298447440460510827458783065769805409195128102075869975928185357704737783354011775040522559309243825521179607280266096958933299482694677752566477267969495359183275781736239988262998778436343813706163312624323576536576816354403258787852850606344780100467076417605697810578492245182385693112594123934855837425422372410178487080044560126694204508139366778793476727330324130419262510071971351435489812351516107663985309966956798822424977486519744553830774770827750594352247480786894343006122980328888663966971622023821870180371442773922746658203295293930000507405000907527065932224143078306693968744570745651817914349618949611616265050170433172895522929088888638775291322289510550633499421851063495655598054590545176834781124617518339037171552841972626338798760031251069637729897386400612507234397465728397832757018527621078407124105883668835767511931022228620708671021166022488932061632695009542140702268805084271105318811602392716355675269739151431044088600400350322080179215995904559244988942611748005877035123902861366185837871672276239405620449108950610677558925277084407251908873166236655140375983050519763156671461184981833529607275264634050450382222410784120075815211708166755034771788576350428532860114247430930793042922207474921800087926108663070311394243911248219031028369978287920627789171850061791190002027114946325947415619796212506736936673706797515748551147443663310871031191738438912563716890570447811531635017204468874795486702335024631265002713048267186345654031178375106939388798650900227897840171500561858647023062711040595298724350746802750210882328475989144166530058441851363164757575638713758574676833448690327866449297471976586860375777817168340302083052618987941591562049181695872844353183954301752335854177709114554157121690749764034971959529041247254748913604203899993552900278717130336344959080153964045329956796829265077588145383891734013973729073488928404024912605806083322763618581495072232745509716653491658203497890463347487704671303070442372506412397473181686427621282811927651589668972237560821910034683081930344226905399937455031030037681037055550265478339737392363114294007941853408146210847826776456482817412116980731041333476930599995061718810801673494710657518382335936340638478967142345799377346066338733694484046376160325652340333650070380583328764744141775390760750963031058333219459236954660366656088167176678164309278040171634505422812248546276380033171774830477820529513057263220001029696721216784349855118083386340132524015721734958832342428561584300388117551601973509606870447474685338631805627049320329867725804901827397737904168554394587324068629556711677719037292618533598097617165502904997800208051035234254390577691685561304763978291391953963936124634475691944631789682438344496585421624860991543042982319491728952118843049933666450507152293473925281342267852107494562655555587504077959469344008657291431360891626391355348653970782464131858666251176868282580116634651428031065286599171342061656077857628166669289388750158496974433479700880125588690269024921659718365774869170269463025269297866245398637596518850816686062700422085637021349433314093348766716796837137748014031077567585414731660056894180219633101044955435772748670584444380786760711286558328134462453440569586821255358297544814155012530779196978080345719397577361423694765091154206195122315776214211648130943575114220207867167382987158893333073154097846774687295131105977999705389734080565553166345918940990017658726590490574373983731732944843311374767036584303627883360971307950167316029097352905453267724940795418674816417273337154941266936387106894612446589799436244799608085651367986213720736934444597089325530853282875203833089654191788933500657130826703204857209533675839586008979046164898888697429146618447483583645010821035438788573845846891822331100134149562142349798904217936131914129499199266809095125941171037652302047943760283257878155967916080871466191188733324289721372166550029262105358198141757844167974914113400074041168901413464955493401514434937878813861157002740391967305890621667981692864636053617509163613525740636515464275949061636187171152258723726297827303164631228297063947545415867941432115209299008478146136239244554766477417147359799284317303414026935864481221958755413437324077511631656940167352878509604736255746909787019237274314367517343022096700447074098649065418737539432169352621310345169440532786175840869606812414784801797443694697904231852694360899602105443289678105195751946731023749545153270632664658536487181714024819224003442009443507456760020970773097287835945747421503120740137503707510068419376899739190643076908387198319761834378161749478811215213721820296300607082677269913227635534781236542684918779020536428466536754876793826386272263175479847298349389160008135206093905765433442547048780461415899768639232005856108962187154263825060403968203309754178866309755149383423016562672336764982126396894728538523863215817518120705621619124249601566172205510050323618121730506399834211002585530986623649862872874520932640871151629870178414697228559473893987043654951038308443603862522131414477409656304565872103843468620193915806754647287262971297143169052860419798010919243459973476569693358135402840160906694110889190014486023389034942957140649641865939865796369851347202123867541659957115382651789496904447544915753290223716751311325781864309376487454327016606009689876646608657751828722464306029484739130141718075538746082717866373643857529672242225372790510939694393964894381353960371124914000659890033351874904155611951192906138019789681299136287270579023764135940636230922908672464539844917791777743204227413980444462119148870363041359452307050380053496096859525198070980929612185945449696275533852702094299902308419600536824011465947988659229862885064166678608009030007270088037505854809190679023089564199799880938683209506547428946286264808697221518203935854314788077898230889245915268674284187011576837912212490584343187125201142189957431816886183551769848246098632703552967591988154670368632547483952238040508391131345423899646479120865813247354590325559227245647999544520428290936810570062936946396717440833147859539824947142819097317970757093799429628866192243229949126859669204216721229672541183280372221299972717242683742824327405922191118947247587384967579839845903163730182215193749179030285664797844643078467823542746867725844474870345213769452534941887158494494890355594169571153398537868354038820212784196965762556761009001537587659109308405987129961890929697379011235104069647212161799775916769223926866964749872828164465413697597852212813392809220164317346633493802868746467566174042372700816326607385890360227099016874463033369470574675587500557008361261272395326980202100284777904336954608067197579522342142139178343281126457739781055492690688387696577609307472389151920511478256018162619879632456669688603481650919903342483416544055278148319126804270925870837589591094758552692137500213019240995369811679817375437327870281626453847419716975061277906452094555381107837702326896062458243025210075763543120691756409026882123274882601031807990067294357234203036758726104353530626649034542243689851489324492104870342495243751094137147061832397380996811454006808539495026253745944354770806536481642271964896191495772228114021234724971584988022962281771862989826126249209677740750402537231078774521655232593751865094624831606805709384317921431365624168205093538354539064700521068162963127283178090763426660071848762272536464337201133379574398039541076902235445191786900856461464096249289983361684429181558835121722376870088636242222870350648583041925590502494584562759272581977048441617280594881725081000086255295157296928073148333429778315283519908475189217335124083215916608688131730534732776236015400896660333594786261505433486415113081007259183395995230003746207631683529375183472486895678477875572823583945698293524637417173809436067520048450422242974075201886294620305304791285274139046058824359817657307019757600339815044394055284792718104845164413955256625381389655307266828934148229644035913963919099677222708073981502147124751188018805466635803425110827635457955382994532174839083857395377563880362606348596937995064148418854283377426776428804528929273431193269845138894507777771674871510846539343475815461871154743195774896230770110794283277289776215549140791932883578719479617228204130253606322134775484100229382189466254569178294062384971329745917712193376706951974551450913849716464872544386594501005001850266893286062936219645179765087633516647882804854965473729126865310406815884741292941920527875612056113062569720547614343158312041573387462910163594705653188272839404130398676890514488857693505428760568927961578086026585036473351020109055088476827685577963178819512707263028680688153990069719550671037113414809341271053428533892415615405107724883790098426427678988663911972972432388526357804439302211676544513407404564321336907867394659329941172428873005833841291175656669340181806191286048024699149110143179599373610264810626030035389619983466971528342884764099727724640132957059303051983972280586550828347946288604419603305908754333224896275090950558056484376548875811237981239000662816725516715561701073317413063856900476049723081563646412650738962847505635941362724773088347099648870419311340227025798892039975528678903124886683251881944150280613157015916778016220487564110970828826394646640216631066045380223205787247491378066949472714978290256541423513275428936281248268821181875345547457577864488026072694877506212275811422291347647538117394624800785788447294637006927185123582781071956666973436129940139747937685585628069883899634113140394885445381215920201200752089489846799322923106385219631517367144619661012905143454020040142521267136759145687206759070913981659128369044994147058765549873657263667539950505701449719183748830889078701529820641365596655631652466884805060183195904713486123601136399121326113916560265257290622943975731205998021601540074203605105008770757974948505493191761761855319272319583976405121505955599205764137966330385828164293938410905831798486528788088631328415834155911600044138714068574078839625965102305329053889570615792350707755770482982722697158251889339317156873933694821886307678482833514821325355027323999872538585573734912006464238689637382728573235032359245752363735490662220539944326506910023826804037905304805991539069840913908366384213067389205770791221224633890811213407327924105081172718756326835153966847321183437028495331281087465020974695219804494091218624757665831189235140716788967307593167239800834042392206534527778651330966799176488565137089017830466882612395941127189709523848715033520168244994016889463658717363068673650055633255525212985526653440477083779880708936196823950521040849212291616109848889987558012594203408067585961389339507792407455196151847006703718456477663388494865231718117408693916456504500157207481242410741960138003300517016164930822190671617242760934022066915234182418897874387750112992400896272581534228641521209234377270757682881338186493908582220420920618615445696573536268151158739564600510858962724802474696443482885802923779132643120470002067890468849810261070849217987453227445255175974125468630413482192049375685082104213110605257098472793379214740164699818192425921047607981983006952341804091362940046570579592226045236135481556026619575706103949744869366546942398855796283555474270036149789966291915542970183181774002803136898086272574501141735962709338204691973408831002274276665797237985106656839835435677043708254284420896703084170930553765611257210928624383102350484138211884252650741791759866666705387936747235365491235198870804390675151619817821946725904287184412784276882803855538826581414306372878466021523513829500008266956999539919071648035423597858720930153093083984463274268720404449333099240560587767249101900604626306435380402865773482540368353570268338017703584696435685611388794010588235087445156536969270672805910965659200382996781003801991242401679705945763685271813893664969604296308702151653009391779923475488246208067690936956890703457807515804328878541168158905755686798958669121608863376559753975981057220885647630227997336419188451945580388439116109841826526210082807917730486991212850131822816998231145016550735365377169022487881982905465348497198385122248141835543097792675686351917229621588431791944389577601791544135709815957607129135796471301723174443194460807178080265967774576180746432785597238230534221439995530889030617029541989053075468333582482956453916028775536102312395552298553197970374653996915771945357867765777585708744790762862786293327261775801746320757376359006894372227850022803493465703998702337948892879841449387697688388665330906820705329921579113595854058713884066918511205759741909913205577343532040523760363644381041012868855414428371923317570344967067500910850232444680854852738692612235036449192872651938351813788059825456668697558456319164048004314787901501172188925251038389751965241297023122513740675086934401250379408132574258892418080241601934813544135487204355004669820600260283234818449251890668492937417858277151537783789666102712030593096185160057772716451013220520450293807682118283981344669825350956814378998059383479587491575455052234352288962175164871318138657617789664140355611003360832204138826006693700073511272563753560338879903190127390055540638578839060647181321329044147958807308329717903237716258148912249747472264498444648840074063948840952175380342961791129678213202768712584761542388747873989559700317741424100209272757080370151001092217384877407697407441464848311481639361812515509898205799195951022014511328143536135972244933345785465832538736010504861674641755785003214075038550121727454968772145759087828572668842542037284476831390222874769765011199760381648307088761192265033908837970558865505774452158549823277425067257389419366215673848877624277750318046169590944760546451326386091107818090972962153157295546140927680621503419885660750471783256118040516615560027077363559894603343872128320489700199087240791878356452257695260993739293407837188655384797636844469961361413009194043048361962093094189672757908626886391737508411911536454539411694698945780952123299549661232862705134109270959533995059204181683501277512791771590044978091085850379312579421200806721592730972240521954193262594046347012843705724888546555867202837107837351207892927733617852365152383544615657533742212068475794660762751160441098438804393575230506497986547777898550401678054145939421855747380761506167135407699129572229013320177418017978128248520003725445988458481241424487521691353659819968478986209260283754288801634025372689913361401917224787982886754725550432600478182157994611145642151308428772652288842857853352935852224661064929241377109822468879218875924455561731522046874277482679065215470798725172121162172144656933371177367450869573732122767332923779941628873978111160412447234577438212516523613360391033864261331949993253440267710094934789996230053439155824026988566027428594386363098187752240899223913451477174253670273268908844524147746161356765104972081820789070725273091754303711659664464178810023495853037695029062538251854732525516649774416893612733652605430259564706429951062053121653410810794402167541289885069831310215913441819594917608045850873041363778244024890002185522551415262742796323798365123140091475925545969599473704886679624082029316465976228332601893891869521673662067991383370741699615545328255031034539470202183245924814267666888691265809533750679770157929459811220795221587248319337907138149161536366695964284733748187814707177120711359320850445360003012773454521208532820102702000666501141657912243706769066419156702334001868515717430116012728463208460176688440137768677609081456801843418006071660151569339424630779554749909358599594466914931040837567908252245592524147800658966427381376006003906978240982288153914476847643432212714292276646602526936915427222819184876973555374436460241383616495899139127978441803066709260776581339396459476392378668049720792378652684737912107972656514842304893886701850800218041038989937691534896753977750187494657869884944623845021462213560475950249889654623035873808229107376177083125229479169038207615530118942960070970568479088727566652708889494136162070997633206543247452369406713597214539943928911265467958090426387245796060811521925472603732357171529251570570137407124108462299821137761124163742603018621964973203774563229428513193375334094197412071739730946257671318723813345487376837068925627316170587779257598195020752238461560115742418537222687851867318672945955716510791212305978988463106050804089304399913997250717030034127315128899018629627890480212372784314128640392967968063142534505793516574739287388341427174118561681937521656163069742017921005700842002155083256349914864309961656278256063863877329628950691601591021940710219063151292995579907283179227191731011354480563911957561016415580114647033568415739477810224145347945225041122850017326053062433180528661841213670284723849937542805698129269720798841240034821540249326126027003521481768294150968798642414417339432282503548559630606104884042492095827622136608371322618805201323303234230743082144221725969065474036325116293794292769556527197714760100508143337501759000988670619612549285926135024091919303375066846186505465751062692794311632052139750225136293216374503815419156710948390853679287226303576411298342271357469605377166027228021295143793837405267227997760609462791772449052804608384087264369937710279747867305525628147637206064911179257661018970466538863084456585726333042697786745212078668713209058200356747020134220207772284824496175346173962828555108001576363949843430351660465506881903100333320091064680967303499907512355025917577375011191287704597387685321499613103624854987659201321514946201877683227613785289200461161168046024404128342674106820538845251650229049317122100806680909185273782974053914075158978582645368613773240389128590262680878776521764824906449540013474363400724089415752410705890675887540546999271319415520147351350163397357023615328041322926637827373383804494876916239905027885806701639735177041175489131338690257914619742925629488666386490001398658692068664044038124122111818356515639747725502345826898962256222339694308112239745039546157056661011794219364355622234277025282286241004101271947721747829920157327750202439514590292118047447261037725586934302528514255972094318749809186356069171295558381940618168919599970960830054372159128881269233959549201090951007994471146869908907320176027855958110328179487707501183305443849998394311332574218265036215750762104213132175259889911650416259862738285282174573861947625699927363717486806988472898922957288886766786469531249769603471726653325825413435541117272768198348568805806709630106178929048563680983031056861823526476550946613652801590592949752058252428018647470313284626726592437472052586275182952181490838451529117490694598423301509863499679532274980011572718750983026940573991729028593637166187206588697347803932160084368008637804967696503961966393687502698563214869746146802176652098873604250760533829330336254686663744591293200164900660315610050742060824525342413143134280114187652194035286720697620929423701328405852627239588392086959641979560576148006115849561520458808842542239671913946223580167481346927246870625920594554969770270138085522900637257473194555480576137430801298877178540267439479255097322341534042563321304600433987762275041593504289342147017966865320178898869319924733496880061229382815520423042316042131450107571685677065911860946199966820059522561237106289587699064602062428147030011889126720636619143076058058348306858498989779123075550681326423598141626807776728199660327141051861777569393956727181516943166264871859799983505084661594857029387543380196211360536988723069218722247448443062511261542943319962632795398849115220990248309227080609555505224864488421307797066131018866058045196784387134645948559216502890403005479028895573689526322083625351351078114456375289841120928177922234720768548588917978751533372696993608177744579337278171235119227684073761437774355684989910675415905922787762145690669044504956661513728903315138954115438924492268741406440353390290296705755170163167068784803356633593429481322735307745962045879935220834902445819509003234825761930450223534919187280524101569350749150326334016282108340067836038780883448990508957127163971702024477693224947477576942655013029463911530334497544344268828379625016984808336454865670072111652467908349224501143262990783003393924242320963017191831147280317770806005929165292902047980543766923568004425782563111988457710160896245710012787833445021369667650044638204303887419624276737291605264043343586613152364453310035626363869653116738026057588538650719773179372820462491269198365198320824738816049739371258564064975028775821738697749023009455202277057932798235816908180615813240822673989487233692382284132216669826272644374777597734485147975769128632052059379810931377396953797005223439579870278792554701874907648619243596711651733322300759548694060967345062382152479441620168184901001342207343328395056704282843683080193726107685477239171041658408761170981283511371488503938789691681929020856559159809202325672685798277015143386029498863758964229745108375128678165762612295024428654616739455370544793006074778353401434093673102948819049418457524840981616253408114603552914891857529614298953235087813498354154253649597307903252908663659986954985240653769066053712719771412080893700438863024966018954161319949250903414865517150639696236455265946293008252536281697697964677981259999222301060798173694118752158129910752948794427886857897849835103650233878259297639416279621978865121819439402900720456103877775423755297826062186519105839983798701696353340268064704669745548944190332327725200947798778669990357656009631983747932865317619370025974113178325690776807111590906935820551627442770735051952881631704137246591407914463492795558529466411027510387901535493418496946905767387644297084010134772893202736346770486277893931317531031519084533100902549279745901103473752143268897158449754215273595422261386116922386824284481354846441804512624323848924340724610042164816379443746214972257316082297194201445959146030167224277814760457458089194470890925464305204138755991461206696832683452877833187658480862087456238376243691269731274454718827483985809673275840156956934131076046154851030891243415175170016628537940722613829605023860066041984709313880657045391890699873661250011008332804004219163846028502666216559086409291237472492219648551817525775787814165823180003346995811422527282251946276370927062569089686220085742442695983649480770098026001151238483769507971780540425404834559134521095054788542204051581633165617644847834605794557857654774477817832786816451705306789680477468423324784151911214083746324012994085046593843170618917182675203592959484826492079593599560629076104773334126579573125533246824985907485349731673634467726592129254242151560084873130418388628691334098863513833066053299836437090037295605010437867376487466178061463730989186692210205469745672276883828471312216450864751546219922528568974469183275454234714101866186226869916459410710680569194043833084510852060560330437120533691734228244091994667002413253801979072714128769901501515799462939422335062392208550220971891949093837307309646321632783109948184178384226430789461822927610983044925349998108712104143640455651675805868004262423935777092753710877205089152438378092626241166982689032162494253372341043236781020933808990151380935730838203216317924128406424263320898751238241175002770068649209849734784115098622099659708585130830335910709491793126075604061763573305095748125109458960056049008861287389298663858358908028249986997452598196540749607824130941765096536574615005272313446302623161574006199387032268409270430659789901109133280444482067786758935979777062391909792591703909382271672269461542086954921267234580229464528041707445781737225524221493948152180521868855392080274924816505608153563421841640143920296231576544916897178636249679419951616272827902989568784662887068132750299876996887072022477772792028644766661195657492229991656205330686638971355385030797852040862293674652185789423816490569380895441616776191704236643096584744273641446645092669282712034702511667145194972457592103926568741435439175208808410856391080667122936493038111200752485890331743463813717881205513276260194227820911088218557319613022341356573154872820870853335703376296897026782821448090487516259640119819382233498672952799536353290798614428174527001789001998613348487066965375578357637640664132062406976679240289816862481660368888591288824211112123025025535404649125955458424049731841174021475904421376351631407353361721650003625710525771028330247919069727977489094989477103971395822709950776495097544491367535579365632542519532577380057193020528481701086191283422706501428665051719472838832495140966013237107841873400566509012925219002451351830025274883661914147422730690481148580044842259612852813854101029948008776561163531801477306134891130726443734278833808006738302769568093276483744396513692495782542737763059753630603721428437826080484789906589553830368361516776286695706286692387849100822006886832208632146557550283223418230581631241103989279786337921444546805971710519753849168145344644074188881390823146885575097420739242457505214624793700691491716243704188554517132212117487719269119074156475296527125668880594119698647622477348505281486892013715367082853324426977575737435820756884682126362564357085278464294399883024410565404997652042264033812406678823335299347801347181979778779190042340962039381007693019076332999422964693112968242623400219757431580480698680900870195966267361831840440912272813214288680737536419323039494791306489203699202929364950480286445079404297844835637930571902793316613286426540210919705844356960752635399222206800406835385265795752194357867664050102013431394129680949849349913666605725199497447690591217215397761083107909582242630609766190316269531839110049679136869629381043005700398267842042282828931570188160507660844485905942088414180187833962680492802286184655688324859264823584799724367995757471762711685400065284057043073057787609181694021600954405294037503422474916742051190886197754864190642612570381326513214112972999164949065478660529782292568385212526521664800371719664960664469021308965432603795447755072023798418250275111787204507555084427025881470230881583170149143984127703061039099287598287668025869917420234762168877426394108042947321269622974876800456534557266933495602330920338875978742687401808456553128607682146975259920922757950670871539671193982132212130432329742705301665718769805032816881774097471654398086020226963652420653578918801749201541138235268055427659855805205308775922838304091859654893830397278700437588795552849586283727206902694329185028545614015322062844026525492637230104126907254198437899533069910958331179590367150269576086911343681263142331606057228392511551923181899767549890270315419257869593858846568026778085162435369261241883807041738509264320058265197316683357608563315604444124472593176886405226457965481331033926464322272991404270537684762983011194271571526432824655291797333994414879445668905920938787208678102653817553491299832007825442066710631708385951629495013386595889551996684055658433468979735855477775417878174649041551022559515411206958952142660942743172986354969774289844063986670023280746366301311281164835932949542072257221538267072939740177281379184497513508785557851597900692967953503787650304102362920400193051186311652727823551438290105696141829182517544150795881178865587916419232513721343381082530306657365260112472205416776883947944762102772148926338045236592885755203532933470613826680130557312135606692342373944380235946897393586465434268467179014737527760489411085642855428562375806598100994590927651491683472916084713834451950936759762367385316418597088260134241860054864707986527635996761977839429616805762552112732030473606044031334393743671338309092373996521437250686115195636657130419558984475795368851938048762926956430851832254588780463069091417549018018598972407903332770097091638416947804446425406252136548939519094502783756860252695401820256100791584360488304893252261385502571974027992974334223507808922692802558701641934943983149327875720869239141185014523866962849776720132137826046236631199193524839597356442703909768030902066398777832411842798150760961543013587017513862722532174057868756289637635272540223277608334253060717852108044039551815958551332807511367553924461112310771684590474942185311630398892924347069907874630115676234934533455184107381953324333759044869608262621634778766568002854691064395967490243277764940960272884159132614470876522755164736288358137491751076776818454767793120497562294401818992257552605939425051869443265635343027210995393592038640784889780457164368724661424025954615563467803987051992548442012486435518030516691779350553543615893763693125543344834024295302123437588116044715356029468762918379235990044463462570820990353089641153291100276761009183923136493376393881571283237358369863340188576502082231406882055868593089097280049811215922508127413664735732857522737490686208579924924633949027161743608085336065733329070319717163416057889555401199015990320252627561609802187574920564055106043382914093634882512368141146783376613916395542395192728429280946234923226954781331743431777974252911212115253367444266346189562512873913234587980736825825461719878683060839841104096558871963385344131752024170581711514394356976058508307500018215602775866869464225934550356269698661415641287437652461505199186155940169210677846061557941688267294771095817227109538593436790110411770496626364263286084944360045259469341126985442827693869855869296346435942906741891461278727400722081078236935551912336725328006811492029782961087585047547981796365944895934602759813798011241580814186519046034545786334346962882102540396640953765581778060550381140814767530235840832733894557045920910605753411675812573043791909030106701005864701357454962071111472825787135365149665866266849907758528117120494691662489186832211694698019633980352862568057234888644435333969914579417015658658130559350859818391641737988090502859721871712172172715543617658658407484459364721016308462879498340138387177618221750158105258386617256619819705154590033839205206226582808600381738810845062850885942578852903820195896294129959077625658394177184999263428520542443070930171673018028180847411861601423400012203169555271875196631201919281436226222108189054977439303362325267566258462919288184180213462277682225847303942813569909057921713128373366485945841882055717077048790915386533923927929400654105047894892688467650624486407734916338090268834686801681467127687754760988024543616524158556584295051998094631104094273769663827605505889810222655809659335213291919199441725813073331296088793005443666150880491599134170233700648361042206874871188731819807698786155631826061341043931793292768428292441366603375785153736810139128781776109952986537663904780965293901857750466131181179478363366029687083140179930023243845510414930492157060285333843985061320999345437203792804427466193115142424911920104346864309518321152888665487263664330080956215774384049231451653262478414582075215155561645774388437340366787332678718444596434960500002992299607087091338644867307921428264088894848046895057052323935083441512563508166155870436773953689851940040837974585057771752051624966241480871012025632694380235953887513836068628624818989912458568171905368326149448614193787066386742909613735779002258083144440854695254233230591889786170668142325489524515127860612159580497590050582207532214776809536555705075284626531027178711583895534521765726951902884461441601484770784124249105810251920847739551192287730841685946220028330130176465443038857390346193158175318345941686944074448849291587454339464111280006771808699344446248314444617672999904359410502160139116594329839306693281525164659546074943766997580882335855981559254251502523836048728637704004430053697035961340308796917854997203952447405643473546301803677244814590304341897636125114859743786365199206366380515768497754955893317431376371826563916184722274532610507698063289551843308413201914200023218555766194041481579942016134255048916426204561790013008245276043874137535253117467304282754552748098181833174554971388074701340898172732068757023007627824714026058987771146463257617609281294659488952078625690917874010085270596958664607966573475050631113255375517734821669746189262161596749248663420414603994389822468138667908823502661577262343126803463187013459989385103630302185427736592063740247647285631036475610690883218928009287628906761970312744375250435891516587831618069148883790479642783944185838953035262196068077691985646577038184957391344473919795168044572985556241082350988807895295762757824321929453674624146538116755660827797778669020099255599680674688440273999297288852359527042736737701034314688115346494714696264631449366771517349502910230058242584020059703624568284062100533456952796878652628841485266386872072957053206651852959185442114157044375016032146606984477623020371171286253558839980775793066526061747584755480014427861544224098665591217052486900733042030998508340983151467789060308530389549327170008212547446477296508061562181069211175059392006578402884419961316186166108040703827897625515753876282970719243743712991444866920979248302153814483442412880773364996031351955602284099656764582411466487343686136168036643610857145547723842351574901100180459551649142484961311356299591817117140977321130159756972496186371158826125858330845961154303412314824659563778864921896353683617177338896473381158729894384559074025595540643804340454386649406015720182040526621150104749426509855741231526966157974164502604020596822614215240448715536196739795975764750705317317017950572911306449162928375207230761864365212060143387732421090613595632992102275340298451706591018112041621132792723147010431184657940568510848426325700941859157864862558405995603612447095695637147929565625912971915116007652504384161295827671095787327424827424204784877689203790392528082248034983915791674164193048750868457041134769800753319801575979183892609373090322862300195583854564219669030383460978655401873470535568153165197691241052299918169530253505458244134758312475984060496214116434648325235309541276629374359960011102640923905982938312648257500059753998636418953504063465631117492228578685812604536952547393242396383651148298224210924949943750864335542647645698203234035668864148914215556344856924945469988385375008164867723182827626009934658842685088038314050901328307682655490047776985907058196129731658620547126951449798317861221241673056197377911122737177454214196206476454243900139519428659383758177651200042946344594450311709038220637570586174503792365858622835230496639470200194136756740167001120242076231454244153010304976615593763874319803808774733351038998468710022557506757326467198922713080818198874498761308423674202329284249575903664482992507128194274504536494046508069633133161856659976673284554293578604727806540729125797820925232043478424376121494059223401904998714331714314733231005497148389492644185535749761859512197641074375814280533904508763582643703575221571230386120275622485662669995840195739999799274022801439069798812123785846438365818372212406606432096230775392978299641694964855147249750783264095269127660263398298418299233817388313395039682301546720155538268526516004477516206329569131983568499883803349083500686083683866214330661383751633360211670607460839782231377245007836418242176738383768579786165920394951531402926352419379692790750464934958337356443214615333292933413067918928711273560068034972254722612951906887605393973906178471952619759743843242486454782769333067077050473298847213335082256617542645743436146577332506740582864771910178321051345793318008082787526414460755988562963928568265450322308613993142347612006121211424594376378033598822062828950937793943835175066743802553169813201494770308700693149265964807964124431622392329043353004879426534755939517054182015533149066212509055570027584427002419804138360689240271510345413177171468856824822895831442732457310094907149702725250808918540238200870374220335409730363949917822587125351851865305705628198827303003307394333841008810848228738911201325019638975921699279481464404770746209770161145232237473238976836494334081376138644954260235926695720770097941204036996028780134714845836917513126008428108528166199413305706554397932011317363350178153082867249265256382007021699122612153042987899207941084321993911187578455001401111424759507909278243036700839802567514476770855396981981642976451418295018363276462696070072251762367021260914478861834626861125483076593575592172118329762482990117593314969699083281036815903365810747191933931369468853039507671789237034619325727738180271483501291007643242777285672112999985440223352614779339456904533286273413656123607108550545076538714868651665278920259537435694683428214392818556738583988145277576128026810311153132290028942454706167427857381902703643413329789534445478753765876908734692103273794482960063720873309470419391959207422652530599598508118159040084234258389862378131470815151255066206024951944282307541692541903275924901589747468633398838656433080438042509803685257745821968695561439440594488555089110015848996748360608107033246388439991315763484886796486798191825060459059492446379908023937487909005599501580707309294604696203441483116911899401957782675931957852367578219451827337974706297110379790968470709552967635266190084256812407837501352842722194233555868232203122401169469122094007331705485480117174155647084919162800110344254013195847172303663687916124806526155975730726043121297363190418517168383567244496792777934323489600945292812582048179605436115855589727459414239664151536057312338724194306744808665958965836932090076488007347085877087851318593729902673659694852497149719592555026601776111457125519773622510295464345252160919602239142093931471828869398276980655331436359257581759278771535193948665059333872372203890680278519183881849880643995732977610697794093142844479906102169420614939653727448168748684761745007173476921786036247922785089384434980859053521602295176786245185797586248400645461414280689421822078613398213264645502009900827813844484864141221698648990042445078432885752560428180593965128276128321408148330608764628407367336155340105480262084949762591719527992417592714557256285652011546355537715820433446624770725513672948089217075654333702185348196268347405802060829340906889118767280285660621869485968666216397063174078567838126365470518712405943201712078984146139835431692181204376456931859262364860344130112686549030390711358269332238112608603384636058669204261079368901006844869090656726961872641782279648869179019682690245539844449610166311995222141536254902590516025762071221634113942678819846969830950758543903616715856722985186184629775224837652550954765682830993627907956893915342840955942942635911251050389755840504178481232188483242345027065511691189460721793030444177394203373203070749453348283023881715030160230844920551702830102843223421584444721678989511652241439085888415060953765841462700336497262916639151079443982116447079663936644325810740064092613308499663231553435687164713006653632873842063624547207611162498909653575316795248489663329150494982797170880404836072577503143670455493934832681703539813359043059407533322368874841573963667921456286825801322276969781236357008792940949838730603967995148435379682582285083201636890020265549827180868137164160715257866938386147631935659972565985581000970397556044801044282784612286924526612422256558649305428437140815747013725202599022185959219748061061536796747166966920638228702853368446325589777358407804536211990734098970650312545960669833485021459440869553673413742532046714683037703761333237114923539479507241837348558529108844093693063418698641729156118614601604912724411867269231401362743794463698705811012939942759653155569989830418902189509862094527990134330894209832489036086475830543909928829030646475667270295476685488565374065931241506555516201837683699659449522280394237721621203871835074574203988036825304599455313322617954775981599319811896452206891377181131140529090650903425129844047350636649046744000020488927129134003203607110236208586628827223570460350035003712460615190618829171726080082293743700554796505445020367067461154407508089808065164942444907037029341854253761272071959978586487612439353578004959209692576121155937249864825800405617055167173096257123738351980126044485839753616765960232221205909773030662123077084465630772906918165199550212433397877094423127072761488070967922658110008431041854220101517680968689270090298719037350180527426573232239432873110128085546857412864989317332929357831040410378926415000178955211957821975488804151661111871816368981255535097283592665745016300117692063540072984441055148450061735278087220895889928201247010329107341264032675878285832347532825522894324797784150115901356747017853585616935993376923693607324165516235722420048870775304912630391903499339461931452809488970705357368071051422611112147954677214259604238477362858442823830432981662810410588626334776165195241160635150332582502736362204443078521711902804351165782848662484904563036150795738857180617718780362651656787919922607456611874064637243384827249018217195096062684422358840198306088592151698139414217846227131015423110974300454820165599681948823718700093044723276595298312967673816617849493996106840536088209155036754365886012271693068853554346836371408180243674316852535628688890676859204241307181508313993712836185080261779737413753965128762243121574488163731798466154602718237787301540591998233571340066448489890540018580884076976057257837412127598510207387154955481343396607072735117980849567383237483589687194279250436974656876616891698130718762669605001454563356430522633280179004410755973647373501299608914830573131503458361483922585209505231825780949795443073751986505295282568817052380554715414148908433835083714693981502852740014221307498420895450591798253560104200652503834613096839807185395460248608760702785811682824824997800508660711161522053257329858722732364213576716819466457969698777421844303446953807947649800493810156610379466104420509604270571955025103102027467113262502071964511594227941730399209075442785049159547058077306311644170136224761434313288505455880055670626123115846625360476477218120784439139381281287888570257580566058832940610804553671908706721493321343504309384637287853872853504220927154041859315088269609078896299577608081796146967552936203744339818198483558593119739788580099119756416642458006221079032577922435688145906279900926430678482898402792297977212315952504718042530505078420698536030789383036524631940825105749536381016523210564008428421292415323485488145141520142125389499396831106011227441535972922103413497302944403467389238274424352011020937810983130155748075023734862858096656713851720609481561690183626872327229037646054881860075880956632348455456186103424107858523072210877315231172489260031440436391724932867008559734845214040054349503781679103189643955159260464214051233278561505881165219354823479195261036899095655194040093466224160997518698504579122126038391940534694367296593526548664517594150438780539177321722299600060789620317511429129773144179283379256118686209401141362806783436875510599107202232824791555884753517825409192800668076006763900326517119289242894613325865662221370680679270520537611824772306119878664300382522655893449301346880196053640389980334312929035762150247545449974480886146056888558238724217491182724966449287958556580839668640308062029555252690424190626810840898899686405227586042666452561107857341854412548444964847256773294363447800385966154453526356139420094705459171209148120750191381617422216311741090101818037780192593403099649478155183336088556851333469745664765144406585337427105066266429069281258564567406941042901845519263650673099361275308226864752797864073685702304930176192193278935989749030573480633414654902065404306649136157113896914098031309928656772512646805311948271460423770348827107806550110531171987880087109192730901610984407172373572706713709049369806303232094044188537517993516307188583713405911183740335050968207497987682185954687900017605044272409673552299502446387944795038616148245592079981213494104378160747995398585731605799860869016471900622582724954307563865355661633622258253201416854597536680236893011242295522373495342812611698425513375657107443834090053165094146868358698384115033906352279038812877859221333643806100718174129690556235438456701230344160028096157631591611139223538739204289537118830517944218644571812872877629564765385743183544546711737664234836938676625941935937121357034055776394684102544166139041068289587614433744396131737950189917684209859892719501572749967219698452041222428567745030290392177703832774958539933539091107040336553273261375885500794111681790725135872702508059604905627579024621643426858739799097888985087350920030267716578095354442861058401012529809599792889312616796228041044079789417245008548928011942988693954842635866734107400695012881538477167628836716855190939150620194168556522915687863600325385517794890453144003225820449277632248414525931336516598226224828098414924650516797885254027081167947201445693535001087628443599876623227830117277736172678830910499362671581258356503887611429839274972310719868259962335879856780345834788375332459405744384481328464538798210506858376882082772309381165461360832742603270023447089889439888958295309914320368196238419669099844018202801027739829691915678252397518308736726035278231936396931615810511414829942143234963908859397067845986814103587427774021689475081255689286288275723053948192159209925418149159512919122845963602575026685748517932450361333889555432256848449036778473360490770384728677852606052433054086608565856957096940405905316569853116956406063587998386925580126904490357228593187084163960667807353662536540156556091106607097899681724243422724157018316161835184672582891469983267521170361945541268188154909505117340675038974040743443593929240703473059499473497060359832346510989277317985852925979297301362494715922847292157375958922753254707249292649979662914541775403433526055089524881595745846348851172475279717143121025549315253778103661213965877892341234415246698972998884550373665824668423829607333144981607288586742984669473721687231915397988270175359841795777200208708573192585593233998895516246181150673630763823666097740734290958748760625981311505845096370015626616392045031725749557997220079164092979779054012887338066985626704265317416341843800605896628307206124065922516132815859415169551411372234649347221510278624268466554928080960341160411308834319104950790936509628781873024698918354927131279955759518292461842584563814394785312295648576626705300683857022020535894932281239142305449064639099214891811783467003263254815393054042527586040484906660967834598932571798686314794443690919413364137161086374253618133753526752107705902024111558201068378820028770092774879872301996187875682814073885977146177643050968191882256601616048407778346194149895360826110296452580157730432992595527507677810962591426763697387085097898734983994897962500986247992302333772190250078440145155909120045246813931547444360231590885325274677635973380893519438535362278973875029684373674097498063346393495302903093685963113284536925338213920173078262677249235587121094004839277918679589764149508227408567086431237099136406398540244010678763338015287014498894009022694953481875458087674562835610187914413612380712547496018930667569183638956579838913293714566067019584987853038317337432117025944639150395436756985523828253780475570512462300619667513521235500190007413321803671694934302757238107066299158957096994039317825841510916141981937419014613151342534013001594711458294187520954880035793200200775650228635696260447232122387108346114184657217768130401592520697830891077500671468235997077162843469507119504750463480269723227556303874361529875665406015787822886021998696292233346077501828010695899710136144589513486993628616868562009348618048962375057814392087296358047561487538775700143198879629956477894384472542282758603680811992431281490635150456151365150390734710677511970570238315474156396392773256933679797792882926586656063270290600217053493401884239704733582096823899417572485430615877470521069337398044197500039441138807576556096537824448334932215381350563832177133590804896316183807239461585560858206567476738315621219238365708543959373032797800377257821852242660118774884240038270416461353551030863305097239757303507680553698168092228526517402596164282301669960605567489700934119872370860573330009969998349298351211912253523710370700075026125587755011554668496746510994255242995118312305731185682730537553455555512333332822737976968316271103558900182541655746223481818986964636258620400309455276024184397253479486997089996632979219356204246221267066429042635048405950553633258980462719292314945258974023877693470099798328365072349056232386073353288222674589662072936400835484676844217448565609649400190863077907320543412284602734748888041365521261992699719361623270282307433499122002694111004631814907018447339417039322557465165395343976043464163606102782482549728800796760020535700220196794213522490716910140477789149136158361806631405474071735384882297816950111413176281250059731212645471272832352743930702916454375202941112348994889747646372533675651647563192731584263324001043574964735393737941111232885668102746059893092727830652245419710864903331211041995533108951389242330349677137095447179463626912922475952942124835618013611902097488214209039641505324131805393251650256915901840057068244976676840175058583255873271537528785935077650717668894620744359055741666938221561472530615089411761239872625729176459441574447373964142087293900530284323674942141912826140731897353148360963574694848708997569586025838136463867032334120239617553739144391189489421137664065312902234997506764844639310294359746001757414275974782696187669408756244835436767466094884588479920162481075066412303934731743806927849407334238378441179867137501631920279341838825136111754254505290359217564813536238805982175441478932306278401596864037405917527477521263927261423057133181118079991414691652338586597625014134398215774869014484055143757987164272149593766683441571150036558727773835028976182539687533574660892199267346270400209505122972559864064473395192229014320499184058992477833355393081070802573403249067854611207291780657590860107640527677598214915678188364430993678804305176632414143295065208468764921846173459824422189369378074912727266352423904710355743759475236230187242312972275452073270918890081317398008264863922741239797031729502860105866420818192626716676316027710299774779383626637413771323875022228625111780474907455225145483783683150822682954386753453622405797851236243296431717585051983855478687663039624616492739455327995791465061659577280397238200389792516102655648497577334352700410800688528638167136686156733837912150739087414872031564077085931542412132331603028137387545308589850150235226699659669463633205196679231197380516273463280668815155146283514707414739474373595776307731586229626085940426855833671563867470485038546962671008031715728380893781000062690080521379271071182596289977758183391074705159624176361905532917606666739918165413529693087641470951405832133968454403797087877099989740698701346841405315779601928861959128194789540242663004527270241048480885095212514505554822088739866773087698131001514437034613961956285056394776648424288546786298069427461161103050162683807456128100253536419028156969782019745335951439819959268449516980995446735508799663269649318968632788128401910833503148159830333886107535516737443344403267462090478145124188040047165821308703953303400948479324680218039718856632764109043311207928068575596860195765250937533882643302808596178964033251158992148780821389707591019732911664360421307228214509270718022013315670053479997483617952717319437013351587776933070219827131590915547786831581109215714491236825903727843615812772949285574623727659856724064057344058927669398456393106667427718829679940601494002263806070768377411296158822708461414936275789682614026953186174953835401521694817807297950890368298565941090587354814471101781941955933995738951525622513453770216383841603212213146353131446419474493090072530261702493700110609544847355706496098107565362667531093557368183509728947366789224241400485011767730307500831292356456846496872426029246402219074828316567100539006181460405116353968191348334116296155411387308338089647942715283082201141634431121322934320815303505391553888814426317970023167394047031555174390238444963108257447019112824480108761206881560371426797094885386472444898670373897022614908481988820400809966829827195514561398767301280783321326077956283556342551325509514688981496613088920172839491227443382313559400460969150699501101021586861218845984288366276277121945840775691715969420638751722616099795770209469802185859618036282323744572031180649345759591046428811437942488362647255200585450251123384469673990482608042665120841853993220283505421459329016460572406524293260037642671335892209592244692502159409188063260617188381009853945022992804120665614134989089461514644543964547417498420257426950952017143250750234163574061725341623001263640390465049203846714255071623309126769219414580196646008532504633592422799597307481043958834183567645957517060210889007901981216685778526103736139011831296995909230737734706216030713994003614721497225651791289544503962367542427108369986006517439731426980844008882097627103155234656969217410757591772630696274027762882911522087427743850222899721625620425029740039914478929793978671139558467201792465039508768552454785045847091837391521943640472575885849716370157921721576511108466451050321538823521439264389285242775264514314344719152085056374467296932917830254104911685984142059811881548873464546744933958077133714741563097171370513629540233201293941435586504309545413609756032585341516051136702737555889014355820281698980807028582702322810584685037503017277487774097633347459582792650900939111066380818237957111694289239284603684473310772422276893273971280469534219958283944258938875645715822413773611802744063209604855174537117604761460578070165908843005972690790009858360504853706236902861625727588000013832969058119262705467746937885312318817447092095112402472425335022797909357006192354015915515062307461157104489917426846463915702862616044061601453393088286011482897514608005464022056838116248282007432041879666173349395267607714611300762638311748587594584161143493880570299344169401343165905803962386023019969712969220614594960585986366033098917378332561830107210298892697034526319642329388506825651582290194132895593629721354531880073693785380553950020618836239486256856124631636092795413997479488899227372252529448323351173474703717611277525513589914363586797450722835438470352273042712423975188035456382192522717236704107509984447517256772286245972885352621634530294411685782759425881181658125853099324078433060150831511667280991281856345919711210268028311045938755389216306737651243257027288912701620363490793601859344241602505938097405957278285357463866345517976594969052340987868585763302646660911968365342796845696639049052583559803254595534571982845685120017766395273853340606382283196199915576811669298119060948456396271352819587850572841318590626755860733989349824860054728947712533057575899520797579670925704147376287376808974817265568469981343354985372182207382401044781996561374835267474523647476324666862033098110540243049712739496008308809555993850262509923524966182208374024964330779854331390898295676902435286968987051923910167289776999313909904298963752890356832325163053237310524854046675678150570057373219946203406288718337303326746580035629282362787180774527346113180577667149892933097891994754964317859730592021582727172777731047044705232884823299942925028086992725707398431311280787318878222147934983490971056219606255192626954819244432694072472970446856761618968316192863751615754736723943231865850073125279169791831895734959824691014845639089144975464947679824884030237394826876518651177531032075353278773471009855344029620451055199256584944375685066222991500188554069883767524925714543796726074705069778831896488458315764231946230937179249211327403552789911187755881752899426111140175813733641939731780821853628184786353077404872040684757977163812544568249426613468441799912830658462366483347916073036188377964964768636626769961607112633739359712444925243322819298424045096612698635112519333202771419228827810953475771531707263681344338343348473311216725598012920254186372826091456568920943904182016366788612230579704154786637734310003921451805812370788867582765709690110386180559756663944927813954840409132778093292969468044180970264920205932053313113466270531146604089825935922294022193879009492250327744144268762882303193468501838656130734992092995910494822431170426474612743082912462775536304212497214763488619477465118764847121892439029259649730602050163092504608831985830974053529301513850305256626455592381142573398291676745848860308675596107129871711939625251519143958885426974027467412358976419141433017398481203482773697709522254117940948380353809614932411867540851113687695594641518478534709177409394508564741053905827392338440336672068325088377243656545766374898969995982341454362682533535510230443266638588099268304161130120105181157007364742334962330161181093876249187226307262118051125374355476525058535311079835417584029884392752282212234691377207653112696610100610315870151791213369676402093528433691428667043462338541371726222190256821217813985814545341484793877266068105203844112447607131675578331041877254353808993981189191987334903173544489856954079558862534126584000888196540533162561330825151646024171358670874007980406948506869070224220506855577687289385366189238178799571496130126635316594045637233688577289183377882000096507730909009597217505893698579155008493543687201627936813980476900932140602312838491895014422491209207038606799009929967319731858860968458226963132132643632966106413483402116966591105689882242224264362046204745059666615349833917795578598360646695690301669377928200259830319494470608067089204880585518201841389216995268890449205715042820084390668465952295263540384989371249096278982749463979872435303825834687975089468011780764614129603315717619369394301739705934765781579881298672044702627173684090721759639962732124481437260045342332183962329817317635256572340898292423948277942439396218585724365350522746574845740832169326592005968718901269306210370739069631135437846174339515068737356104541690868294191678029937645723912951012981336582483445425988982261713271130524558109240119577102483685464074844531693068977706168608612629390306582661356359407494468306615166641169237956087646594522340751617835520782315246495101813512206527300992821325902776566375254941471837718075105096577626032791804412232583999014816924712342570615625110638985031903649450928576790807165657817385779923231655752214447949405404220502310985499130009059081439796680956184750814860580166594544616819875395980970493406605354714670649111160852506622844840726082786735721778304226943256428282034390249650102249246117197004429085779799010654988906178322491553399546707126264041945527199301380027663499323370542670391343648770001253786067695969355468324229995956275443973160010902511627855972248453902657958815019102002623334305878475229223560398178867726600093624285290760873558410250105321614484162680665594627517004386128332954054503423809569039438155823939909081716043344684267024963426829035372754170953309890306909527795303504828724495131172236983767128909151554859955810180810032478814903345246661803759771670296324836528854662765540191830556357786000972590816552232931048313081418236852341336756994577152338621382084487063942686504730491119290740861040272761291439172738621637589607888762573212841970897492257441185477320025592229976416534861231301612585001025066349333114438106553282182004340227146395378964225702747099594786017533809289373325173031435798377966144526482009192154960267152977141510756607726711318120458268981370598376744988018232928060402809413449728558793721400467639625730253858725114591700598828787815271895371844800829545239609486103082712735427499064161813709851261128763732080341881115613416615695911399974961059585598193505556000992016505575221912716354098612585404470923154892715049345580730578730595340179410997048873390432777876117244810950222805137768439244898138006326207999927013266586103302616102337944959164952000330046560578471580026152217522000162147788246422290092167600162931537659745464904559841358716066708087863950259393297636095721059888087107023437822080371148484454428024479388977710185388802969240242392244822322014233157052202415345065104292826248380454879360982408445056146464342256395422181152429430522184227326361238366757108391437313768388022567778365879696695910375654061870640044883151499320746675789164656663397489318784024886137017210870260648745867489311167360224575966799546406534154418946626556949837232666224537797619969495144518413256653192168661351380687239247677675317226559131206314236434874410805364194064485054979200897838887187703363219093934573063429532156890667194959783084642493071821483515332135864523853052459879483877485121663886083800922520210425679529321221340849233216639140974974744825873694342709096666665362532283981303809731804550735745333137171221941731848786228020699733178139851067820232270401010621797167663864952619788953202019157555132376086247038038750042665146581979801587934081477624902800507085317834798207888786125712356503798372960510895004702361088224989944633154560558281513714405462084009172413562882405025360942699000937966491088804903265236658339859427482876072098860860561014333986188273690076155061420473736615383089567812981234865937035333384131383427963478575767282872504752733538830395642075292235333117463797091778758473973359753259904140814091120650561287034779718144545055136271910964066228099624067289877684948334957377337401204342416781607438651555650853177830211471782142759153901924833536698621185138786534839652040282645352524768261237079049373201212777370700146084666188119116788888332473741372996681252552717017208041288028192533903888165523254819518763824822825478014980577378091832107714486850634313884022069411084303928471370634584170471290081060471302565887881114307591581569171630023055915693084278439842933755529788630261608184616567600413704453318513353250251922476385622986919318974071948383760526723029011327444050936759129874038774755731538326417661444765812606001273028564217682853612418029385177394213394668894297803615466800148610849451551296060998862926492933191234083062044610336434856161916383864965487696273290916584813306815813112017779558177581381099750182494734477315846398320057637317474350308809791661896699334930113416041142918637880016195403682204642129560645832011654171866132572299083094932856146733701165771169426448054903824407585525133402153999603243829379946767878131973500854505895187718130902870117713353465940385056762927272483447331894098308858777644557248582448943705839696101882209063238800725098269279386343787820246805750540881809051619603779286652926336995789425478532984874936568466552330497132356847798938165673656794319680614920544927143506775390944464188941365249959212163460430168048247394246159307014882590408590955135206127285841109627763586242367624762549842299490197173620138804093305996745963479283277486063620733110575321429684256504654754124368630456296186322714689609734971316770832235568824831292245945876416877606643759648798935817310297598575472889206095365876366050059567885774580192954168947132251969928379679978081759104029213021970802126400397791162234613433087051923171399207543188725206088357881434525333296644315978010312721884178741876654750138462540126404265580327688368278633539508933615856643799538250174209530771672515846927330585197866697700361562873032089446162029322447260350875090168396894918809037507211128334976424350365101539106377318043349193692377197727421473783186339716042912624101485236199572083961555203572481453800228127486384194952179492051281199337647836671907198201959631517722830457463708132726573410808414305427207274738745923192879489604048270876522226106457200589507232279065737034844401263123062206674222712963475887948945135332529124342815215195202936338831300846544773486465268922296139129024127144521219772951302413052815585005043462410359160295975769162021969908526562314366381562002461794505966035241414290418681562056519081752402271656935524585951739923336696019628735279523608112238298103302709617698972953128756017648056661858455545859392822864312013037681674907571386139226982652100805921986838144529162453378336567469453921873018744003451142637090869586403143604656284099388038212473980391575662992880974714847831997966844574900675596834850881857154361428377457669785471795847262300879874888513604918555002356576309788172681990186381619647148959883686233302898515116171026736886436570962616229038348059079044762973138739503321441438251983341806711960594665535043506519082547424195670923119340426780907424666103697944961985518816083014166805803194444106211941952573877980189829315571814181984740787060679903892495610153538395095042371500688010238018834829499498915107194448614947939087782969002454572147485663464970175846003130691100996544806875591261734262689937327486716091324780943209200818354862914711076140390925404892453719942846906548353554623456935157649521673521887559403314772135560681843942140719758697863185062202160758025186722147977843647200994078017913875652497271694702783383376081152607115979548630656694473522395182977157237976251138987729296656324355337530887075309492461254468307096740307850471426882544026084629883950109288935424186687585377360357766178653038850656374996061112414258257062471145983185667688333838229356596857213150701743455577508683778887924851203473948128041483944059962705895685112779459937539644801611716959949920457113917832076247382551076034987153840802136739397315447877089005737152721164516032284020244914718669942879950393470441434779789546634329529939240204518169843121656884965433896701347138540481846650853650313357045890699748022580644904997462293285213588160743151091737023588341757566099122313425241994169853256589188362774278823808360725990188716214053837339617500059735454386820257619111048264920832402072757361808583021073817255214447531960123950836853410851763471703598316198015152037828505081920662542883328735980964728013980931558368725725166472359230870888660424426059754409279147258240393434409388162048666448249742759731222012027077875878881856225600537842648760021601102981082099753510963349919388243021741063135033991524580029045833102527906679287443795245956779776622870367568971496400886455933939183837737715508057410618551406932829985066117415551251401108203704594859155813709142400175423131361927690573106055888798512435015983379732548221514608820069516712007521033785587930349145388883989729549477219522333028873484925265661124382020038293971488813800677345823958744926438743421784251181065129168881841624062551057863368825815415068592966336438718872929876976946974352244584232573080710458997325680840913236210821548579503701281602719172648473869740667235173507082323176253064286698162528067667433258543112055831228178943752555952374638937710857672532280552653550799996171846724001511196147685368697985137344807204475471554671156174981651257679263523507672497596617244914155323961693705734976103466110438960289355104353185952128165565796563383982004025676656457408109093032817364008736628730479062214599687030955404420471276014351021086202006002383831380734621652656837239111657933856794101146770926938358209405520331490423168953069219192249689423720056342700647627925400279842647237684959373740462882986945046682025192662941449319075419391785676425916090364429585581938439494784678125412272320233146479091789696443745849526038264324314871244282810775059422357278753552162587489053685786563902348022579811375590012385499494276731862231160246047333005972666419201143941712688247892840800554262186177503101762284668736817905489888118312182700071916198264435646072741542257476362345825834711904742919691937807666884316907263829491861561404529251236403835162234156255296537888098315366009677123159270402883204151912311616135766789237910681793683636498478096428757702704006137253534979463395306427829811376090204344878304250829112105250251798317875289010002503900817770318205287177196153576578835924540410200104131996088556619902221805872713927119518962458304621123968196235815047815297738552037805077274858234221337261752981354892911171900732993719459701742860383202726432987859582233607895932204875453904422366438801104043597138419302155449295361325942230818470687074674774383483742079169135131433382786366428527611796485454480299621128229543565658572195763601606303091123376717683223222877871215116158230225941425045116971055086765400834288037986651290803534062083063656269353830708825896864417115591987268362818068841951187197357935897957146167455138959975339743786095266947748097353239755554709182003497693700142550699865772225712545058146741123020831970334502924778456136207811025489004007375339879913990442780943410139452725326768996305612107938999618266960276176562574849538272519907208532063916059113350431088403540527835815613343663254996749727716557522892053023470225621146448094927352318787362009329086811766681443159051512904616885497849449626438450904803690248872604774518197629889465327595513505937508785238950076753281020901995136160107818681001174025597796290289010230238375544705899052067499499899852660023493570276457211746355087776334944945524952558920510990895106009627313976700696917338078787021811458027764116266288435143411951110734021943720502386508966568818302236567142923602604469480148282242813756364520904873226450824854101882105830459079922576793399382311255517536096178686241773328632297944273166689775154339968725149598284487447766368761619277469695423306602045837775590105997360507381836779926923426891560081759148479449795750857958573739013093917755526764989919202689125469090060949961785886666805361756507648394968447541591700111435678772810980347476828645210894199698188705281953172872723723654506445422857037457262802574536237560630669141650787259198428575727190219651800640548040441089610871662941455109929241316408539394015068494895936847893329914229773276430426983446618843776183216042259580080532512115439978453421490141773104677124965003700895453378445219470434845019192748816527818714186179127958577906532017162049151506998973709412768092119657819147538529922350615358046318521260577276435219925113512700104652833810393422313658596197593678279723710184088986747821459239538944679643639993423310583718186594686506418905007588267429267582033108458825985202698481103540228281421053468395828835576223852478092317816088396864708048474935080813585925526440396792555659615484238404090754667074057488298721083555519925021158531301228028784732713660601604529376488899981209464481110324713399753071671479987355307749002076744907188564671669007576873766677133257024978989469318322922575109355683554734766718431982820861711045807834053621874433665843381066326967717871327688287363691040045862263031931777267922296767199384475311005188446876104939443888616985271533889566632879391847548503077180548104543471527757784733444704208105272188754845827667117763113804448172230715507699484810703609922650855117202804163881575616890996670289347635378878898863804152722519764294925755912777036030258069344751304915615837477719649669087029009335015185057632789612219550904883292292644675652929623978070924794033262367243342900403911242028683983977731040224234854880101208782858589357913349050481856920404645313662031656055035290600708384879647238378995210953910377084567742982055271393573249086273743240144846059431414763116999424248340076370734493497483210161283034149120921606161998081461515391835239461537575605875560891699549792675985154465660714809016859932664013541844471093584846837930337443102520330897227772925343244162737668493312746957358707684143125691232526475850556102720590685926813699746605051416236572628668859558408920994007344785062006238764793498782684509787199238216672403908287475503823024600318862408998182079879323618648197672326637006165532331182406709787910148509939511372744782167919602960807531704170888437645928510951968070430287022795983307062555479955876198708367925769306980823710797916279069217198618159860520952236114375361354695507784532722296304313971352580852961450377224392009005580595278465230902237142021163782978794319272540928798755947091087247952020117411483597648794413782685739299152955716212070568585176478565427147754018390109006027017534693869765130932042739040930280406936302051181307469184695648782696246218274065429963258573462844936915281451452049725447316261282894201504918000987612741603234493179215588448639471476408726389498293913265956886099455726021466279572012008452352163571524581905810788079775327565935373043680732828813121198840632578921046722949002946053904367770174405883551478433614450153348594226556240590586284613778224042274317484656577665755644692173332409852640515305718360516996160781036197869919218632604104671340582644102357124392873914420467695454729332236385417210156352179091857558678965003202887509420186329029317185203344305848658286854318065134233913536053913427459690903283302426436672792005019785748183900575664439009910459064957046765104357069968629725552884973006011343853076107375440872606904680554600968212776522825746275399916265172875190894851338542029057599426724278322660469573888765411696436023160486067167878834857127986836035297898527359288622280293560919957526940619751051985977931937006180939868686224428772966536144470078903601200028719449422708006428528336207174619039311565547956402401052526870595341342609537941089239899206435223952653554592389643634159741758709826899022945504789927758778370279605411309231331474271088935697473952582854236823585140496320726185581177492480258656764118719397554612318984134451754176509477971542428091882556117260689850684062734137748045411658390239622047319968766042885947349470090351617947877592688632700702570786620228325842550617585293751205984416407129568854664371458570506170229895718654513463130820931868536557706355760510637049239437987695959548586601318982019680664960996331059052225109762551744498064290442934404399392591598304898501117589489637913308845295655270129527442616586204252688068073563538099772128029034170032325819986999578233730450311096123395931783575193909779441377205210646740147287904597456790486100331957981984351246076427681457821034889781752503555119391473831506278521254684355370593477876509431992191858269183746980794229018184582118924699357022231450768368998949221952663433908493607866512498402442472631214374139343342126580569369911794123734855623399266547607180988829802798672186261903960916512273587133024484682464809102942112926819540367086391781787050155413151579699574123917703925750324504880771943568514683926820209928574988797654000038732723087099152517651803939825578347988492450487610592199013506879380010375501225139821171202824397509353474040771897507489754324195643438154882090280402473983944399723172679960712521111654919200585743379509728795922711063829810006037007351193756163644165416440373900108120133684317009140734791317247466574538581042250247542525295819433784282255152153421575010776915119704249769570694496855353398085123426131262029249240667254750000959223163848124938723755426596166554827377654724077642532619786774186961928663377667380908876974007867378702798782672067064489738449593307770267554290820518795400297075696358850488765851501513115204542076240552894158918701598122169837185240868672303867498224166944673050355560912289442369952983850287089031946989211035955600309079418398814942708894076817392352922705659918178078222102497963752245478810014750424979829586770856198684967469558905442505670608568471373664228973351706044199647298304515737556891927910133847556633480580218605974588318186126653437712440224130072808047083242787581880754703420443165004879401785978033326449542140148134312434831860256316532275547088663262722209183990888637930525796263423744649510578060578738786497626010505633089609062763250808812968621440900275196978956739730714809220801924409094790967967635583247889769382469256565999640821595945069022310506580286947210296139615402021518484601593424469755016450254277892385040186254635604080826444119966161568958419855979540223688332877733486964712417577822760567160334221811191695377706131543262830796737694034361958757202820727237793328384967929565689818962265518452138490038342728687543873460660545174560720202962274880217763523981416749568348791918998511732099353289282362651497944478575483543785433843239094006213527066408735547304385941974331123857851494032877554344885276731560060584303727694147938537731220362767580672930342070122725757154749611796775069766883127421955029977014145688564800301103846127170919939282185254750826459245714441015014196583999261296786890207551520085293866946681372130922348701998907199057132602361775616353578887477943763429894668486445460346132813229926256729090675554296380182424918417937058537640755113574703716536127984948005260509837810483930558643772701043940586914154163001493159076534890998195893138952648052831486459020491688509252961390197694900811166443283192200501938107846513368061473757378271136823763791068061765748516846950618261401317463427385561944713497361702435931526713731142873687475575906999945409376902702471392190381853132866235515956022028449346230764335320105493555846524214404551937484257671956534777190854631150027667593805519862455711870352198255855456978937282223433660154564636819815027536230592607342850797370775479633534781003649178952510780351522184533296965725884086486128712419539207224633568108220007282680982171005011033785422725182017406944479577833919094001680866715596762879232946327684010860081771750190114681742706748406462652855682847738414124113207550808502783576292263752321957476170195310582097733840240840980419192084723882556298667734589800622393527481397945356610133851632775252935498429301583313063775799086803303125577851759988152276072123016625630953921444708667570369363570124688209469775579563794323318803921776834583435190276696542527738517901003476307941952706987178759360957238208430848643499295132933487189579178785130530735930081641957986514998820544976653644989569345971381516963497229156882295073034178323579652210260179271369644745833692670814285406594313069139421673568679044297933896506900265399048928728588626709778932265589380552327029249241431530234012982212911476682953459441867317294588029984279476162819689461214231729926480136982032827779500406534320942344831736766879922562220519600038180133049436560457324573225560468850893939109960836400629853840407979865743890469047936078794096358631536644712137415445144302956444542420522901367010477646175797752466519234625189627774365553361408058324642259209223374542555871260045154358542178381843491220804381203048421179876930907727303700735855309626537203964891925282556526959741682770789867775656385458111006374383447113405431097253253730067870689702595483088725301552038903255398519600817522344231985989092985026049686496896332805212066731976007390359538993986350352881179148826527588854723886201092443453166964457337254117781295183541543247306043388089393505345066353488033535159081735321806551441928269702451500796739284482634125921115520662106715750398905247841088390088991031431645201779814523953661679904890459344023156605766124866548050639991154230548528040908795580146870116078252460112589891444932058992739391749831579772439623614966651493520694819435615538682165450049498776205258786156282586113183528565580207687349873916922912717021555767805746461091935724932031389003021670771758191735231973865579964141972354698637881853276010768841286394519632393313634435166635512827016295603182991481154297304090600440657031494731667907755266427302717082658279425454338541743016879868820774640790145283063750662520197063497668712125164351196993743719340192943345568923126420107453172191176660583007287477691389183913121248977972166312516991668861392558431651944036057983180370733226275309450933964640309828049026580108707928196635888857660839660630556401543162796689507395977908977251384314430755759606827942000182601016948715717119913649448886323275078659813109922296670615900178798744651152934677243469171674555126282104208277559160552313193661245577727696007225584859951379377420631734516148906797833968259208586987384521731287007583875615083262337543096357920876157811857697454172592819397847791635508077466793631848867938564607467329626453089946208605358473410009134721092103441799694483847494153253529760340775187352596066078671827966564629393550667236481728239036745380700528636672147976210293792008369026354999583616543562928270926739889700021015314762775505353539411723612889768642374763634615066440767611027127235670133595061308194115907217383821109408024188085812209900463816017453392192832055007050666755130934139666063897950931194375691197928165671916169153446176883670790161690370509325765456946855979009857841026264641525182148350315602195535002940037341328873227753292445532980806254596927393697114778793451261213265579300852076654212203508092187492738522207158072899873982063821400619749066573958147104261477454507488641155423312346085372047545728194360960094083967376498028539456964623988655145886164599284471854894221402903063800488439715150219806660172075056395056375302923866229612006783735876821025061523019175354746354687467401995563072392780613414962775751488418622421422956171347265039759191365416953236722459578690210552646826337812291401022051461104151559963327094209905829652249082791391749315770233035424659844005646076551788361748658977974753914205591558201399693624638501713096547751941689753682351703222408597467310356117725486926040840334236860867370628480369602585124085081130422009950655239769004019719362495908786602537610048252377524193671289533514108078407142418794076130898163989468139820274188077321629080910956063543879451160640666713356507543013146132026897323219321753810856571845951784516179462538920680180846176006917173072878361734935018820718307568532498153783010577101445292285336751561964398884192084584464932300040629028678831823175442487358014322366968487915565124999183117025180067330887081996835469360261352292291366218510739009294382481958571152537895838126517955832176398233638199749984142781106677429616486035133839471119225802157009820852707977172109784806319419106116262287687337077603786116019051542911237502528031373130960190702614247241107453888602167205237909731696923868969519411234013545120776509270285023402274352831105936325179915799300226024277657291859015216632940369526294192667429298183743895528160219516790282581212584357075395140499965349668330576864765727316815868819779896998841778554150480388473757782460504101483952997031334691107256822793266936358927626417495929319927046792007256484255068877568207204068445065873237053427350306606144155999666616238222685611825794225996923547695547658124122894136188998365111920829330757046529015962180649595949242233859084850671624656149296718142405558117744571087786582654868339743056297235404044142895828056422471017277022113995907279546495400662881623455469903205220986267336222840164519657852413723998753745408402169196438850634529925345463563847140169456439085472066705056671865433608459128457739331224751334212487801519860987664694072824048911123312460570890896712703576394493898217428247147628533058153662674984444933917622585768937489829612710333201947878629975530347053309966643894643356663760156520139421826526378488809500651517280485656140279087995484242100615475718679593472848300891446620242048913560843150306385625856508754378012701251795757540021368336526339157615598811087765678915589836212334507236285624822552207385286575588192459605341891862651006136502819772617972522339277587504558575614910798980395677777222243604669030815778329811173658793713613106388218367689627335099989669850326802200101508761933121405515349536767643858983006346302148207715343558581547891358072487115589148220914649908288652450077554593143894894111155946022594273318729186956495889469790902943460927855622254493084364236035323470655369539076536970941570041544875330660178131724556488059809334520097066376683966251810385378020867117915659947251560813659957170989653591537031501791273828642849636084589799608690893840076960307174561418405968987388425656588479485329559373663072782466870489956669057641238919616767080831772281449767328577139193991761811623949514998469556463509923965885473056810647336923706590403651347714327527739949160415457099115967415593398001243614717939004006748979275028929731987175448158799979469672255075197390266681092495896847025985676604501313732679345525857086524859953557704315362698365838217719919202479363340671186864897836505088235199937427714908908727918562557416859883789372546986624097600835372551605068246147195486190724728519411867302861748461507005158850823512642620285262463384475388054664764976516477685659703424151429551401636947619667378796881910616295378029190188433247591673170848131067425306609394940754311973228009519063035383557221161839998329809331842260586112761581774227402515521218851254075932609048009686359972830445810090591306834586191456329454899656995250403897139505145483521462957531445150899631396126500381527828847355337186803701867523753404262685271529893506218581920606504469554964312671109371257318843043274875199284804554005981874710164548301143788361905720869474664095623394037698915174045495548623050859734944084668969209635602728577276254319506284920986786900992240990226064120943503121752674360481579687618353718901885234066420469778336639798707215773453159108806316106533718036002540952364472980900121665935276730712677885558153247503241375393715824791085967462037919110865166889866793569152645145442874331668603495410503961925566661321816545424238286174153789154419169462876536743524628490299028968904623620583443121899591868129375509329509283412644408089326576670907782944023944429174140226131818858898122482230182443488825528136124809438317539378739798477862978105323139394809428612520408908538824407184747983699129329907691604660533586485736890721299460617982405334416301497128602396762929242640783526514313280579232964413359234175207222957588075776269062456267670842156687391767177258711651916764037292913447123969822298965626822234122817564013980063902690688772878876215385862796512299142865436144674979291231210022910957364695106234101202178382511671664035681339127654321595576690959658264375896035018401402183277427086379492412720362676589114877755357412588342656903215216211481110145429099012447902933412060974556373230547146988379918570956696336499505247379789374908131301744565241256631036771933401887430098753693770642666553566605377727779327363747541624097613791655364321646173205611304818113266588681864921627694091875671256240474559495393389207686689856572039517290888843361341769783334014945536025939867334645364507882034059049790341396557631288282091017610698227968946283336902841148622169425478587672915700696354770259507507640766966301384451809175792842416971419975165262642082386940986309569722808503941774029441930604480858044738884784048478601855431618454665549920128256513142346242860459490450541173205945046158926804655557878575666948975383265145207605761584591637029832826146001527757602491768130189239724883499958858040792896801815807571871043028501737745922242604570774629072982391631504309707686996676648203925382953171701222169560003193668201381263831887060854936362113663460447133167958495992170903479331878751405853814531825495033904055347773862412816334359224387912850962749265680439853439764962750156475438222014979465534646603325864029533758879116902344801240286305515702623708680262760929781922688451742181521662157938245058202038062307817428449941220209321183089064223662874941314994094267752071404077067750137999299494930864527177512172384924491327658055359416035320166125698611964679713011957856842074136529717770219126993750742297368198168813542772652096334361387078786375399456654736184056445441517684916257528736813471441283234487516334556326126501016193191774998130282291684362330576046468107620906508007911670054669304018831319504739546255798889820571458641169768301097189480268068402907842382120315433544389153899599634454896678255860552193179122339900504378245276652034916146081049036398800686129773079055732241555173582739629202681066067546619258408335937642340003917054440431812387541451312048435136854498075993664749857949044729237813825234382533058423125515872942436634185404346783409364918562626907946928933646547044166792506838735360575580291906315375700239986193096123490652640060976251856283584679716195237770287627691883825599323428635236206330414917439927937047521576529994848791281912970456990867150788924644121976495396349559092348465892702134432087445413106235602064420494155743712255459890974534974516075589003870296692938729907528895054918386940057746878753706763540095650409590994703841627862925252639900110679268518002933787515779563076784231297210290408426346968796400722553331230271902694849702266123732277113108197375547884395013987097906891886867245516794309476296932989056259075673011233453832453590522637532153698347497724649195352474339266550795903407912508829691049421351841178671539196083702407929453787428912360837059281650598690071272267738788131824265581785810761565083735998072861498533094073667845490737413890575517251364616239319431787089199462494588412057500572527050998005540231434874191911897392552154243138206216991726144218903253360782686179556793271693637817348173243110699560208360241275863238451580946890914005802872372414150705362834587562015404205266220001299653699875971932444970947759825362054325380909153981873639552401368186428127282258901712871987902434922628378923439100847130923501657045375181695730509567547695981801796335964433301834646309113135210288724988763622564496050964500299830937010505371366439817002336505585129064918567972698273946993469586972037134113405341451362305632277898165385206577278677346508639116972499596299145108100795023354214199681548562250506333032006235783967838842430532339872728094768467360358363299141614556213389255871414492123793911123419496164844984658274570605498384967348567467883050051931327394353208358223264799421744418735607580393025588088127108227486463590993379851207905904035366348324938526281379597819454752582823222276713265592717333042011658443832538260822296279992729690644003923532636679989651361767689806058028042965254578478415376309629528874304219829211922484049461541491892963735261348281261903330203122908331932151004438962877205611127059191575643078044531215872471155395807458834758829710270648873936967077535427507358055413911429818583698031532200058237247770851601586089102228681046958969506805410138714512175252786484718327836216925898401751936484294742931569477214939176101716332039207473054702279703091465436020347984955255357527590495181061721140410053560368874997610804302744619580482720188232794509344421847974129663489201003763186532325438516138345733026566243954984412498038675461898304046384220032154541517840167974519654976813698939627158117740664001185570245017185811305001896647126744249184012442489818724793711073591950526589645140870919980654687056123348575139322410275033840675085201502689464512955075703877200428494772293400140889915074119707229869068439750073738587754022588044349672644983522691746644089286244200119305030866112477484192297364494149378644274037613332138585949367291378890680471897002204445424579689460636507695514553880143988387152849875843345406082320263090049404796118787826925004075234479981660736441771360085890163135676526453084026692036889542376347646785635920960004286418380248030347127053570374305308388301696656346308323969869928728618151858214313640125815009880374704696222477530768744656597970863858407609862906856109507730785563112719660137179019010355662720146408672274456733205139709420938445022505209662883802298534119656419752344108349470757767665045228868969005970785343861410198338935757992634470274943597830710433384852684345846079818502658964176617520557029719046602338617706899403412263621386040313788627891041446489649928032972057709991991190305313420080502588583923955016216375207690174377784188794755265004621331136563307996576236764640638255488315379881324168062260087646053296454995468061250235405848281853612842026986115723559892542831553201408838995301670992192640534405708899107554015184577052690370229245133479239187059923837910325588599988889777796705791763185225947000654740165837834159798611182107501822087861904871759615344469377107217320880135457085838908865419958875640700159620606578401896819861833652489487745315330193374200635180333216138479173793990557513460068537238146615223329616035827538904127985780055919420633496687263261007508586889308221203657999262532626124377531584181325206045238934926034852249095898473792486542426677896498067047424984528783727559749682920853390393876894883958816520630146091944714810709135980001985211821198526698528063630673768171192246437781466957941671918112800635059389421763308815619645842932213145122542609575540371972827567999453132745603734808347639920940800735447781256608053181771061095072045819846429676166986162173580334962696268739443178042982773390440450965715018390799854899006643608310844877701185357473341683779949632317897441274348540686190325716159201619050536330553209022595744799240154490365406136503518036241555717738663150318251330936431086871452739462586729373627113371090418170994930706490976963664015637461018232109941302139387146705341438073844366210477033155434361211836278637849263804800663188131919656912734751821289947437195760426854755706892431479445289647958319746729698859858556495110259017403253258114353557872133488742735166688075220736625272888174574967322428997488542742459969510346079969254917302783970355234541068749482713887829788548388077029034159276669523605852552059940559341382969203763206369357937841821657894433636137809138758607212724749976733580610883508156733118484323564680172053026898783657019818610656464935931505309497481563933370725868931410838241429942252364479316736876795749988894608984226460612106012716481678297332291708972663878564625724437598833639796526238208308409687822331871050606070969825658752527073028652744838711600330346750900575317570600407748151923889797799098740797592714129243096243582510125990354978229272817236452442559478859528876038088132315680548368550977493809640967227487634499697752244717936424044322646342491132632766653348619525855987158090070718823214641142153145296666024529228392004942767430111609834878840224706569964757447125706104617324714020058743531162953805183850641123447880459449727190356679866320554164239255332187853049316714257474971450595459636587300630649808605695785896355230081619751449455407019788151291703280086558409779241858628558811674812967282455549463479486204613738006677621955997510138874479515359714152370679551571614849555755285595685188131950018352560264372668542025827268255433647450298145874803530689873458827277348052847496723969464155158271401780202924401603842784275881151397827927183573042665523590082044063279962052480071468922639094326426018202862330602091165081369519897830938609142394464145598763709092769417188776673448902771171211463960155728053451490214260135215750061483916215551968677570943701065781980800652300955421236344300276685818516715659558235602022296800634228846348858981146759013346225396863566998962313972992852130720545535612032594461938149677968662650776598767688996218669617756641957652025310629788254114027667089859667505275125206044339612645711723278800315530923390065548475407623339084651122604919711988766498885327032489580026585337222374602767789000862862356589308098023909166311406184932301201030446240868711921071400207065002929581566881024850563736130262997043680590393269456736243121613683649404612925186303615913846054125461966105770040396292630610342985315165602914862115296038107847190854385014309395839872300328760222951234180083252917275770286799289029730971038053748918094091322445254325329599027183651620424640923521552711073420085223836258406099279115627739769928547643587891591146889043565634432673739414294662667824363050314565784765223022938003512812555443316915724635620643133580058782490871704621912235171129260069117431150066678633523460268293485479109503519971937003770705392474629346644303805215930820271649362196079395639069772810133821691427305767805060063151062532559998282046432434263895452924171507525981494199043277648507732856593496447840710319275179777679192022459209826384263963513026833974615148745925019343848364373604905911072398675012489133513299559116992977255762584298535325029028616337002626365361251418381490131327590346855951201278336889051738641336603644331101539900299046555864877073024186570819667420484841312126511057157136323370077522680656323649408837622567622470762570315456608396540076612151316343182513786084455277910396220974545914639647982268669310222267630737390242517285587603872118595641058023052460224995737717489127842615284845961405593250791370771880617132978501955646300484938968751624392870020595252297461316400415967334094428890220170719666316504788636319862225831890469962327901794541058608093515692905461309971702956103773898870589836349980063775355868891282282873711089608435369484932685760280416737132324544821066871806421191846802357755946414593750283409907418251198807570074748215163012523803368670474562506917377499742889519708000030887112290237782457917380131010315935687485306262683019310103556959334193761488426673631793525511082290289852159227744189559408648569109732138195168192759025475880775068426782659097563130523344783249963666255223615929984621244218972660508042669274474104271721011434299496803036777626768087247161219338978173057902277249031613618824227882842193982854582819531253531742325858478547788521696398564533994750062643283076490515870916381903248761328366327503678540796456664233284521331407739631216065521450340708466057964910022530917480168832758579820002018422273514726214066062221189302499910557431390993205655988722908847789648216101448371802393737653301266324953033632593810720162639411911794780933992948704922158883859949560985990560004050314178615982073624874119159394743993682278422871740502059581387352556434339794801823400333434902676668495529410150947796738340559090075143508656587577811642585706533783902647671827459156688272286969946828099851655572582091560271359221469758813915504288201877642031928821710883263336719246280471454776059520674473124924709198218255368157793578146118711755659710281885710848110214077182488209158121897438025636655400381355159651185371090796837911049516155305480751250090288126572948169732902947672000772552561552249596470810152918181503950427533597693280678683119935974248766047310743267334388585980188105728596156995247305821766681399803265515981320231725023373309841592062574840425932384657464277638520045495198893751381322494999182176513520971235095663027770553118984386455245862593355761261460991705936347031360088276860622663908564671490573805866970299802319961191930838309789361233291179216807378248631808128040294094501669597335345856254041004708918394220716315948216468432714202818104071104798886554435243095017135470583833898816926700577033149992284982393672623640535887409296824133631932666360185359197482849425103536550314713959603869495111884275923591563222164814352672388998763770064955996930686369403679280379772779425624039101255280214033527303745318076907643156784998044072266920929563680758946855935929140818807776606827610210402470150734332143275698960584254536398766049402191026864985974134200040330651234049284101996695416387111360645184376494439192068695165504427754068118194725873410954145631502399456321957215067774218474209403501965433205684982698576571968455285100571711635775236155504616661951564221382126071343163866817259589898326856024908228663493369445460655815090507277937511580764123883493978385580698807351839992897836283990067304004735356050484565477880458337883549887081234998847227644546715426688414984200796105044489862878932999353775593258809235382090878224142086074045044235881521177404663754742129872122965205811620182574999236111035102279972890389933906588318286651121843763730203154933543503810315896887198190334226046801612982391307821265155289612794427548367198067285554923003708722943672167310955820002893206937162322206678581792433356152227898495296883960288439122246970625089831198341525267491819549740514741105174017862354642126345593380634404475061768487813644492533742422354113152473928998969339865986510040706876204063562809803189215589087712965489968795378626625547617507338584083138174074634666902038953703658517281019390974892157710252448148594396975923228562733078633649752569550094930048931486582209825146109485669969243425404179918075357448152781223559127053670428772816069113327796893240289348386617665648988694517153939426470322001952331198105731326445326446170007522263534783596999587136144743584072933187299402774625545171938858567846802258185368627244581542139773631895917647707503507351092260124199500141224621110068025237109969544531739927493767364884862399394338387269576637177862651187860196234017885110732452638650073053799206725851401027859104147782676113683465230833883426429799574706947080403210762955762447398162737871868995863367427525494985490240345127288876729108174621479272639444209890580043258976614316987404523251812091436910472703795736298610719002160204091449825205750523366758166828757589469631238952970240765217445455615019463342906054067667611050584715641621971227732545121421283670454683004358960408075264792599952483494902282422244350975063485520801981852733494585732075888258711588707595389105945143403069972654792564610385446665064328647376465257163875747210135324290099569441965282533159621681278234968910585913790482747374514763791400493387503540501579810175243083728482083255045477378582984801554793824800112100021824054307346065310922776459371077915276740057396299574691742967616453540258420901106565302555877657849606786922689173926925901344212395849845902600664892476331134078621570700146138107662489479870226713729406611083946442369247310808727600759496811522267801586942312403362446810871950755997154875397083254661834639562042691477360359170612204595997062775580569531343419633888416060738456600422408582823637911651575174180359485979559690209645444713310175563536979859269136697875902771402348803277913355946206608654680352996727370751136554533228183302900589142306414742677183148618514030617008116319066236150226501495130936358630394591323360576023993192764634930951051095832562378560154195564499490466027033904461742235786651710283339443697097075138927315806859082533222039247426873213209540786226294721363704477115055497052479523720758129092471110460386351601887428076046227280535766820415451840877940583625072588356721362447315517839735109263023552717008694149474470920245175491182243033556370385713224583819528284435303912643892314760415931948207553796125893637766385845242452371539760115299260692896641194148908844950674838768071994119096399675321168161688661197531373497868483990870165223845163269478397000188152590219278015716697664112359975661301352151074744200946114132427716725251408464489246763189193337200111351436310007964339776842952685591359952996133187438708773849763338306228067538551780813312493889626242261942546637537625012937782457134769842560620897228175104785106584893758332608322265536277830907309208551473942783893355690566272758359585951045081391198435269919748859981613105899362722539336965527231862430276360377461291045132079118985752547168767350508267142211768712125785979314208566001264278994259694634595690968453029979651594075392537829099962423803577612766403036928477621563114249065929084909350491223951469636543833428235482522969156627829251958279631034304973308757136672796162919869103549076674910387185337715954246453485311016768967392417105036756337928789988491833753335679787109634526678798066539970747662713296122335636730196732826371484330696538316179721056378553836357726535148569096230322161486836570030433316889195603995168346466798589268439062709646562489034321720903905373538017299895223493194105301894467991504090769110703737626769971662655837445120224659738811957768228355865490986809103512947580695974047552939591323968694138144849615162268198218925632106496708771997097424913613900181684135563206058751052613805279977631989198170633721042864754497428121378475968584843976505764432240322924291359686864631458377281566864886269610793373446226928971627467251617761251795791564709747512867715275021418732935995326393452538467808222608770647449846713807932292950846827215558663554075142908981654817080440548875836469753249802051634391339822825141549234892806587737250316545416054216531140314241419047627974183845146583926318982647792054451251770035183301177249132170077203425659723774060784176668186525053462288079030317187614788421113480765719909200418287954975139365704318888573075305794469417925736701229578773306137720539280041099976361790471039538433073506815595456897126960595407022151445877963638087774300447614611404531109890829123692566501952127001139909062702228261641789868823512786562611809083876362994090445444671799092796920318096887003767450799163645804441295772783488869762633940557356451503303300731920073437605227150613156928852803273157294875557008046027109251655325421804709437227840292204755662582581803346682926314074552716672887154744378664008641600339706051788885802438161601942574992558519020481382868725267870076072844604275889492260543116919469734220934043986234876238135185478755916081078388069195145730519250405380371743592859369078646732710599849397534857694852058689694408435310891567101814026111301018828093151689209287578725036702925791403604019292262882281263938867162319270761302977700459514027795640942510382272921548709124746838974681868948895071199889792415070517824632623665514485027799326842785142780949394736549127139360275543275110515054221655847978334095050475025904509502393584618067659765102940075982612263087155002681052020146758964876732854007740993946461349052490123449605766235866759521774118323883307721900403066889941679151993634195345284489978314912346491144488355257763346604205957659755283937260308148317216738730315090385657291539708391665555628628519925054795950559099067004344381089801106613907332066632687876575421621172231557815767335191751171235635370718069222971864946745288161634671736364467167307688892786014697810189924231232126857724855092336928325508428268375410029417180464119754106920526253059093096293684003424495037264659160376867764887422465404372465696984619574544173232182452464909551261435230521815286040307686757411268234585495553715309755759812232257860008850930275105802300929138280746038353534896082211312802769932246684996431139627463211184685014397595254189160014439881067984243533369779207850744497648503816226546790440093144637345633615103844632773641867073362830115280936454714304514868058592991007079029553354304542644774178608799181736287904662004346764382838353731535655540446974257768271339801342057705511969015790420673090749477202106379397815196808247335525211709197056369769381314329839432319298346720325008719598258041337081108248842118290397591962924944143575710761103020804509484558916613094333529689755664212671529809519874346440154470859174837692094877364556654599319792401287491368140636396773279480522470021126972338131335720539613340455599344394870193956174823032108477887775250953252056720633569255767001598939127962900728184997277875763933130214041879624276380533695468238755433830697481585774776859609543313244254464721616478896657992781145811811418003568410577709425726617986138530280029058744927109226870157476252154525798062198209764092053973531060368567921839984972079376097755514129036931469971420791418023196131039384698893983824837541346172454588221440869517550169409437402478508414598243279498015162673669344820066164116039008203268633808957906517621833914111008278239981899293717092802445813370538128813037518813898031154586912598634413290374477460818602549939069333403582440698859532121551446876456213461312431613201249893744097350310294650059692643728665239280841912138116483922906553089737854512622005647264298956299235025710839854408102982327109121887711162024355793129311762452055508640456293551311230520830077582643275452692277451887054231684977786331836560509921342436565927876921501316285673316679481855128601668670355726927062306975779663732499628413916845106230111891797553901456783621201390140837450373202076198888392309584798081767331101415993623252002807681128005345890588249120913553480055147057401937443290398866039896140963890156529801637503809780566051983814532861541558686855641015722752584157506387071232601615427128609398411332005276260207417559585580278932945042268654579390788389804105110050896738777232859287420244007619605723914171838631396062297405112866042541943738251678878616121178884684674801296876328177640555506355812492936415026400816753950827588125815305490624741871628218512282266943094172946394227580338145254480507220937308362350557440766062391753859026784624289318612874593775704244452439221112391197984074798697976656481351281433616404782378057446818949094768028494873711191985626300362313165412380363820496002178023472581794159570433595430398424791754048539462608033962914049577389789659950005444175057768719951153168277864686986319435947126270809219999117267820646838453013427756305869035169455240339570040066359040244293886255204299465976512283525705565146038606363403632954000287658893549877967768414591410863409846354608066498231208485539930394337094287426543075505205495814015529603392475174957677571942475064011700780901575752628501581320374789687925991817355368147887422641535221441706467963126093608641650247062979632182791001716261735647393951560666906526748128877665356078670086935761327628179313434454113032671598493953197343303662075767804825030489012593838551586337393046600251499764511049399539873818529338810056042254407489638150700987675217405854207505561501001163197936436170868041252572252647327029550024190507013307083567817231760236588585354184170041797445489697227997039296435538107923144161390801468473828871897207772708183344916805022418303815970477100541181357174365367350218871508209130690697231121015908931137207614466187427488819705284809183057614036983010473395389168617736466529303591225224584522447634775931581323428596225978365032222787656194676644376442142880915805870147445864325206788860899175702710772863629406885039639153466106951729079699340229123819618281411778616777517764804904138113953308127137888886200310899154498721811783309082357180923766426501646890460416027645180469033016461887364602001628922281563145954730196796552714923790648957187135120483973082715051802031374585172979617971411353119070192735018687772197072211149414782517932351229055596707452416453943078589555855581436026569986629360261283320496379928484349218862605310208722913245231309562730631051659943727337130391934490548370721234327721391853792542131637930202373825802202105594384856405015367675580557429248450758792158500965827877753527036158035925089022085529998434015129818923758883401202305649580248534286943165906862697389430397191252174196639812996545458713056373575907108041436371086431380998924255020866795862719475331989229356592446908658706356258029407759798439202605113222211617899564877943313339459313006663549180506749953176323799305946544502335225943906015740163978736691672792480623248027713575168779846983013414182002406935542799674270177982258949418283494988535016733714117256924147382114086932710380087482677172457498209530012990967347965814638462674501935830005599137468785978699872732383332045314743060268171235175705939443858281896768894387799545638997247543660559636285612965825857599999735596617690186626275930150909810037998037339476956977838731368701536692784752847108774342826235648047699108852453320719713347388234457020759337760274151212648814313502231473123396470562609023854464028110827287256934972248516852959779602303801733634088762876005740806405166156996275328939876275983689133724385647071333616457818417009121590757714755077916881592337000694159907662424341832872694496991004060167257530655510586740507801681178876273961859046909056326162354882154483804178393515263241317479010520814531499183794957842214661425475807625324865088205457215316637129311816249489774141334771900023086819388014340862422788545482184183027632640674326687076715103861414002814788086416368021894616095242196866221308233210233968897884633531984784690888791672602326569836112709178079181224890686394195274412563848144784796231854479438654123858074402839016634422219191844205838377904708894479551013593730791169597614969554341611954928412504418019721872751930930109325277726578910577122558194598439170697544579592135945200139278708627752048393329567938059621384193220228331536369774672966617199728062749096840645670336879829262774967050798056846077238834961954006265127299018440225551529561202420857762341889364948316985089532740228887961517653990538666581115130695970961027658979557402338439623278700744208757521836215980122244055172122031155612289272478051992022768410634460315528709313417092684790003495824458343942371257093344962695912384963416317353991810659256065026134394329357311905441779458255039243679403761772114766124232185675231762474343162573150854429289766696090877333523120218436411195532015320078838541080101911167966279977164463500258848304682694884004204714987345860804825761499088634056999686421609631166000395406845702417938787769302935978604861968146322562559842301411366475918778831851743035020326605167267702044084337797666760886776265810445266707841040852208406792036275476566523840270829827554668545696970564227013274500303287246044609513959084723107645224284652626032995902397433314664124177096174651749659620573508206746524407307726220218458659284267227472186527278706357796038880314354392704681130110136802032126269685927122426113551686276728321464421128274194115455790118955728767134009390670381444124223439530454766270866307157998644733223713637740866256375577701604106714687221457419486935825103327614883484240335716216643961369061230664585922995120328258536272433281778483751292681496714085267453984634458916545479218555699087925212415930386473852961301177462772949251971344715527743695642374213083314197429436576217091511007784795854778499311043618214298836969696619646062214688660771248422402813536525660284911882727207506721439398714280774547688876004947573465132178575376486763166834044325705691429676886644434551638551584663968527641651533236895945595310350799612496747073537958653801809448139329370047136575419728193848966980086080153662905274610724963386638586684357620143312980345025750612289970486905828230324761886704090223459462920337442376817134435458788418964557442629973814717530285336927024642929570639318764497261786170092775279208664319553374603238979478209361345378780329442575801288404506858514057692974872433490632602811578265285024219527378251241167515465244377872232067132625222594815786570656458063111645182737727710836549059604228825049573643602483114597591617255933235893902722811009763574569386459785521097638743018827998248004679707068936062552673867568615016542329378809455381602923885328888783946609170036035693731227100900846334313750501714539736398622073975481905590423616271660089558405369082612794486799470670749968754420049046137832308130039093111727636667019919899792473562923341996157049641426306702002510614545751870015234011598367325792395123079143349537893456970660733059775438244292911049024302140215019853025605205214019334278673732353540245586335315367115882963633494624245246765992949355117865528034711613705050248509799911950336488758483201218961386864599525466003747621522504771427989802591939426498172373893868339673380196598854699269252730687138071212934425859221219383046302375480670923715439966374285215782824205838559531027819900160394985937892653036424749973719479282991286579717789219435268327031867626523441784044681989801238251587240668739146821946296878659600003034324327968712178973678189886599233435756984518696260653305567549475890097974682866169806663887411096861957370683062407648204709457788559331723906379975681462817582101095752698267902456009064569041063609380924423807133472411962347721210285184387328430775534555712601614372958184679966429124717176301020068593387343459810006240323127549254795353832804347696274780856482710771942700422444465394716915209830870118949576976517875198853152140224120213061709711016313127863951882720841204656814928183595904729949786887800663608133439943406763315944055143381870280962699100973350304214640567384713722334420874694096395885825552800320141707865208924090835136352652555008777974708661249822924854713259532058771059889651540273326725818818891678983062744419221157344899006218037268305619995299719725819208398193265181551080739342530643517177327457647968196794348039070929750760175871730969177387903370965591861517615720346115936520005887318331529902823956065214454354227155178507252127319805106483025097536069394548165684254610936106898169896508901848181030233075260017258775557355488853302724116439628273587544297778781488927682345851201167508095714796654966696026955060409142511449619774120191045906371208874718494942816584282812206990301857415985220795625899940653956184610442235098334029013251722245396245393714481428284367217653637030820246343070438337927633657326854586982869931238780085948841692663906850948704990962394784364725481505637068090283278781442876282333978864269873396373085127904109154227831714364039139829554096231881917976987294755077532991286253427599005862290847817262570371839244212139696715541394342011611695582401276362992893926880038119840371810704441816117802094363074901880695936934516182356549953301071124215721967971263250994384933756721247869625660715601828238156037672962802030770905279544465080560349811570084702856190078944196026125781617514775152153172839702711045647162032964959017744003869655593399912376379576728997020303890478051098683042372927517283069406660921163120684202233864461280542531636394618918033041684408840687608717297600086811134094855159457013850316337233847305412471623552969956576020388302923330364671285168389886294171747487440834987552676105318368249695705038257642801570311739957349403973789239257199220643568328791663702143752693620668991975634173176794454085851090608760944760412104443395172778967150420767680368415534151802031288237674313625166679063276598612190294767330320884305759313199256061032062989828855744936425078908089404926077993293594760901886520518337517498922328220218916891802775623978473147043136242779304609092943949788329583282817254970444997674890923325453861140789714589002190450764507688811859575190800743541382436437934851912820238079245914102990306105600330556113938728972219263485332430882757115324395259754319876905717083584720698701205099858565267992404560758026022261438068622091792035354090423339349722605495330718649631981846805777996223503657366758561203700696704530734031335724708150125232235607953994645982173830778437373819831840533488409039087282261497412722203215003496999554876341812395183045812877286553932807272476501851174979914281410440140061566926837895810520997918265318402725198467807689894599095397641961618541323621689414229876006870665536561019420343670717543396562304334903758560368140423675258867346462431875850439685424875687120925113057010902591739578859953529479805517631612014188972711237336181200866613298925074414180125776107920816077013791518345960103122337213022711977794880953164801421595095011161122076345390716366755587514197098716458797870271933106407012843023672770018475267279806592796420196494890597427964051655032459479177619431178991686679900331647321061878785200963114775645934021338546130183651124016841157957149069923125020047538001878788953575063358322777673596039875222985208175849264433973731079482441470570278281800334884723336376702373678726152894496598604413393503374323331754381773570649304891405779535806825598966657938556958838291798983422799605497922733222227838859051119348019141591584226656916872932299391178313453635367052744316290734717708506635112629330860546746982947166377009496297056281369389302754024896439028732677871839929375348548497209978161572768356601237490840841886290146954264027019494981334300069019942941625937282816399488943169221150243557502949651948065661952307692976658353886304642220390753898441585334706379543079614421672480485384003588599568846167523745306472507025878100922993208484258949623790074227451770248782329410058572190007203372938776892019453386642604597290294485731655994045079562664720262744683250387068602666640226321646449382064987628122227741889287257076130662995749609456646998657100331193211707498213806341903334112049708081941183865215334364639759326807696937596152773080663234783467615156141315579452259306504282135619619024585151666700161235921266170845578136700566381660332705923504252930457839175774334333557198920310694573495766023964552947471608734371101623190257296219335118506011729380294199904229020447448209314839111694750948003268611814587863932726007965261440578645801204023945058300688243748872357806170493905516783240801870681251841139619943613848587742880347826271913098622359458927916849878524855796882644456964816802053608607391587357090961536396042962528572214710683222957671429232326631743677496498988045511588935869820650330286710391582010826106442722652097487999310218087007398225642784458090375607084212687323303069542645016328521384559789706576618206169673035037296359718085175247837492005864962280002000705089404284669691097757034597273780130032024191593814722907083408522854124829283131760775510020077340541046071791865907264719411853988200661354693254194999129503568254692169919953826105905490537236902114845304840777172925493183129057788473492630474653303515761738254459759798387291236288208991008435583228009362811806149419808044186070189154395488418972485446216714869648840570511808517049951546360363213626006419245765188263396435459201970505396388936184985608508594030171356643658650093666968408463396976684750043459254997115515330422315628275221110399544714870852994223762523261033323443655039782703338263632445760755907593110207516844276938078815178389912446351785439714712814848247604833009959264701793887188466931820315541768312953796067334448946261177682994513067181922117389800103017299724809146625796205162822372754060751994746624517234882466445055262647173147448390069386608165287159943541616401325169610176965984974992204585755750263107091909033484478735094995766620310130358615470072026698813710844412338298197681680545940349025372229607615915612661735212320683094888911326898208957763150948219447408011515749857340065456876773544592262111741686364041431571201636733792724508364715922874280578802571970742122760227239475942704675129029967818415357503020659939368404248642222796759803523034089791672679029588231841206881762663705018394707078692226257290324903956198694089807094644434723643594959788051178002405499734007822442469915996138968306261495746781946728065722476098385376560831091966811981419665526008116760540796173383296228973554104777332630521097260054726223894930244931045412202786048450485079915891896931038982693961505392654923020455656433248030551962789135258780783785698250027975438128452604028293316015695113091175613188476029918731865062958923569622112954771479758348954532478817367235264438096155363206717777117471685177811380758786563129830008791166431792778369112620297031048335788434488154040179238376483254544502560768194550295096910890499692663724293197055003876515451745740964098147037901707538602559005602040487093780737442160620918887937520962048996676633865152890187395848898513563205679232094420128113080670400074922051449277940481723995014258879038982864932296013633812844815217896431485859043017841838321717613990282505641936511472124782236974421337619891830647710568500528645168504070386746401255385918802720454481493921921709476158758680238875868696078449009703714185609328210810197965878402147522136916089966634610227258772918135767320214147954602615620414288083582745188666347863544260656104616949015181715749178302506905152241394458070990538856400346941856251552945483960939805266580885287991372556655918634907700405071374621201606250524890634410140548392068582503596522745154070968701978372209433020997277863422494650519925133348755250824867024735493249553627335794670254998523671355117298305466196496536876358055831421710712589433175017004883240309868422399849060998521062363880473850184924694762569429108414852976412662950433434918165502638326518825283870261993536608898241588649125536554901760966496690100741980389275188938386603962293549695255179322226557269423350920044029011033503561558496745019643391489144449306899833732925630228278796067444267106633321228510325910312001456079107524493965919728678869324194200860727731466546577813634751824890181874437486366517041124682126232300055705479601402164505366286526903230391364584365639503435450949158840772615359569280776573823202986268851196509382749060538039530022866613234638771346541717427463684436268537204622823248444408904294358252242928797165491141418559966798770085858670342677859197303742023670180204134734620895496767059966193012365793736474617876216114402618194039110736353984736369487750205039417291811300765178424215263886912034600707967232257185348805345119229440357411481906613945997315324370537336929453775989460657037298609107136210517723848523385291539449549424621236926772613591206586040214095949190740099186140700293758811616418161246471790575400267882221358232984441061841081162190184895765860065300997387771688786957607038066175604300693840304003601105284637895166287485909239972311130957615576400542037865907572469596517307446641148644162501538129021198303711549876719088703531419810661710782208167626661724358970969456467424859310247687672883725266050826354411665624160139696808511998605599281834883288981333986430023715522205029259792477656600646349536461567092243421104211716465625631387194509558278073038455556155753222787284891036109744986373443417830670931910249164402030036695934615157707723312432752476440923742183359147114235914820620172352742561799843656047703463795940170857955460263540440290834024140165469644207648502710220235622336440068632590481138976509953734476600530269824654786267305536776163417268837436249158998612764892483748046941518575273211970795131944144055916928853489933958146968620980144900986813542780570442184917277939038519153655522804916964589839554530622975119043146729809232537086147928196202289463948051237243848219356851541994998165855062004297866897558382591656794764353700498651654742605022408237037052090005080419486916976096570612892791333244839913662742162991663173195822675688080984943713295574747221976218117396785078141064283549678625198741794437649006520213406389459147580874007693957631617971133954464658056020587453799963301288251877549465464665175400014309918200887882853695126070135378062296311205414043099524639846031086137845506087382913025127063796214196999414859645604874027654559747722841488520524606138778425652435770097057841239112204788094466761761853644717114157477582126256925204061776948887954027081617163663132729868252343058539098294615760120768693306260119896543175141851437073091869589668806864300764928488805009603197610493450310141335929548443558019223808772817633863847978170216050276614438795738223597304255163310736199113576836393184421164291449811585548134715246610577177193188686163831959008117300451499434764161893904466833332823743191891191782910932165291639595601731569258224847971664664422633131672219085707025710724903969281982704091715420259728250523570616053848826620181689211463618462080117503059621763545976297667115731867395231656780730481566181243018878060977619446104177428006121159023985596449105318810272877162204060699490663383173183766015254522769774918056465652689173130753267457300667533866082776030557079605442091967518443238453663219231364471837835105331723376704466506482087404279110666388225143256930573345401549773229751493973843742957207324371028284778052987473987938263149764929976809697428750818000914571042010134340894744707481186103099967328057252174918274043994842252587616625886961143248588108487269701583206533994648106671061058464566383310768042961626453552702708769807799024179919336410863679764216182780125132637296699268828384852426423110811925117869679061742135159991817328095373058189107054597189838388570905639308947784595044304568440956864985780692746073361026491930967922068529368087260335318662208335215550260294607224949075289435242852531887046819663801883621324075284875310352879867965649387032945071876289791515900089051818756845613064041127979238555314006198839937828545542910831424777063130812265814979125575931286258132847001399669047208406529877933767190473090757301204792079229840209759930726027748136736740919002678025090983328908717813918166650705865484871786488568999952961191888670301293276667119615436229545532015197608499543053235338042422509073239278397243475993682314891263806988563559039776401147898233240495474325138165480211199470774663445913913654421204864391352366561670447763523499180037517935029338920457377216194191203654785972821979878808241745761874508310967016044342738322577364292411124935494172595743402466307250817607065330221466491756167263420574720058044118829437426861232427756402938866688355196205761772732812244396785602394531039774549501105475757778053510867175518386508794083565261836784821436705850650437816216410391854392119595015299762108312635392281362346454392582580903574602630329689913161900912561739783864747356145556117914513013569128777199092595447097653822978802372860700720148614015842161320642961299609619571439527113064470611811720732124173462522867068978808118758270026462857333203224516022171426058605071644335641916365723938810123204028081516478647703513821383552986908634496219861906106482647273644216422003315945731949654354960776247529765254676026733224183997723493000096833633106323049214623741995660612206980195287123139999231192819231289733196585326250796652258619621706032339105027784591476713801093971955268319741574881383804125360506603425466428976838088670315510342968078420579643275157432933522783669559548497891594627216261004665153503107078874340149013236108547000172573562012428077068077398175525395698831444623639214601464023749705989065222259187459529742873517018042612064235152020325421327731683262726894955399618322751730090392508067370356314832084203063630123629274577239976229018709920168795819006396212835782593128710701591063666691631536735248387642811340601385141885937001395483880447898284221637444090705191848456378045083798417113345785626571827929035215558058873169523541938369277949319347754738179638191873947962307483949474272293501287688814195058706642809534970306349806662714031152116411907364966112719212902395652285592470271180392529335701369184558828309984349743548312155976362484248766571941078958632446220072665666219521192418901336123171698165042265716125237908891172557685821400405481508035822674553096104867653067641572613645320849995391758575205387405591450265901713461157478846876216730917561038686646483008106250291408225877377945347196174043860561057205336552622946350135225096691563058142181425760342726312367460207306413406212838350328465575878639957851007804272415354998808128968271603293888163232398454931611733188353779823674188330904649492753935311909001860162538987868503236895547316792274581275258507128755677987112739759316000669928084615969315567263646448018483883594817684222819849884846786020361005793516439273822551086166771803878936300980561118187659217751727354507529348180640149903488684846587070950068830224831179302770551351219778655701834154793345949323111671096300232271383370999187260132261479284237919561224782371270386839729999475168879276568489718930123979005581468566256311982175617842102015920575334970382469962722864899864622219354375980666922835755081456402823300657701382011366709029645325009119373243267991404368259259123756344395136033251575595441847650322366198077011044620144402480203016340271945238654035263140035618927814875160807787455380905413106656947855702359569965826343374898328441755531220763487407053470132933594031846708509756911982271757115254963952657116735209596611532460258749018868645081816636220061091552980529533843059708256086584893562051156930434018907156752579088510932559385970586127574948352338654317591718931292122131093649159888721057448736855857911418893288886460414138439693931495885689678053184307662487001145328124437459007370462855711041771065849869069019546901183545748619987318709615593782486163632385857292366974058319056400854571412058990072240917794621759202777720587902408174322797884447838883947753261195673060258866044122150670818143639668064234744229413586262236428344250889885359569060860172554002310797504604844080350577821997896885011322033743781531079649172803657021327159813780710892202291922729997006791753324570055309635411164484598573828816997311965306446768409905691795579985204336479795314506320527719316544574091718748705452097655889411762633122594891398320241767244741532115779493150670080115243371979121129651891366262873101966347154829055918360705162108294123330819317085825950943175895268882873411869331792189343503732697847467413895999067109458133150877773501113046605553154563223309102725682412310840045087778909922163727734127120496156432959016114139566890856246889593639784731707595129988867434954929552117872953520152916818053335463843912312474998382982180786294007003045981424845650178870148827362082927557343172542301079680024192462046553024371384351972369412899394803544652564875327817793885468106882830683592686383845884805497952319006780335462828563321326028102378476085252885625660289490078817941384094887895974888586761933063957945591126914515124184927667337562599365679189559029791662099889634295725123188653830714474057169304554105920288702000946684008327585368831958036114725287205316891244152183554142615257764442627210476015407550801116757658339915160505429224532237242972663010514905231957711119023817555759829092165507491615103046705780202879223137961513989927804036219395184759106894129454047568127688292720215073336456552951977079377304320155014880329612741659359892789272136308683339724332138913585865656614335125562068767060897718297716139709576261816449021441142291003674653755410531570028582967503237514323489487559883174385178365182253741951897671461784378761034306759353001401281407731944262045906299409732769096291647782279891727441715075850760709155108551883302144125821121870034808719155063576554225141284674653797921399953462921246789715010562080719158559818206209094782464020471932477042071202192664303503230649966549901253774377701869851252487334845943950621594519891117837875068957225773567720827102598227509096532944990980371599379200422500592553565271635852282164126165180103456228211947710592097144139205464858954265237562868874411498732573229523582534806410057072750559136776737295783869863331026804043587636457103003731910465447924418144772417132211094177458487268444793444848359080887514829313318377838308687859485220881394438094198895793497595854231772809945168193784022869597429508552622558986729155026865249425669155874203112949673690402147825137569876138282576235825704215896382130883183765191951336882997331241212651415346821160135461069904477583332329056329016292359468389850202280084281908987482026208029661312257019699543942559585174784613146311629655273319182937804939405481458878027489984162792371214872913349508101442281588414262527049772791750750054976417173237545276383693879541234912011886983331204730677706960188582479240086382960579042947320080737192060420984116811599628397235365667112530867862800265853330159947479902713088963864217683179935240347697374907883226444913153008796501771449226843252546821370373857603316732445419210002356254037863228456172671010402390580713242282801146531277904616657115546453161705747415643109858181331919221592577930593182919345948974204730295166399549399801716078871063705046982647352494383511815891778536502903712061088845932525989994775816319037709915815069126736017180026499913914665738672013753683792937597878072414109567256523924376925959369984355866838134140052236981449557935451655587080700565051792078695359261078147748542434658654527359049774448448565262900048261202662394484433283130371262860254861884586613736344202842774279854956414949761484756962985321170403850453234035207109135363729074044552873353901811183511577621373105865929157737796133000774283282885001217090992981785095849628403460516683421799805219091508989348107628276706862449641406039857841983755166069561633447253809717301656515231859580186627561472777465558468517329129675980421060272590546052407733506452687244702435509049440141666070528066651618045416534816864258220227685444314338666676176100515632759135471505808676692537925484329839858863770028437354247261620244122702382205149402524168715049287075332859117788991826643635640462346315173063682913134434181176320866678020941534929112339244088418671210557517812574979134006048040799028177014852154293836901411620462071260524262588241828912369838377604881283551010414198389860664146869310039100619861428180161170298105277979756045781643663305378627758979996020354929673355626315969031722086497548059367868416676951714184234994680675895373397408155439782805021911418998428123171531786569643900178698502173454246174540184278170773598343493370951814146315387633764073600903999156527547621371381240077803994156231759448475802145283238929222064980908637409324721273290052555757094635628287730498711230958886135113068821809839087889329321988032085921814591673627126602274986235634569242944498918256109366687585396523281172627050676140702485243106681932477734434654766955954843636496309872428100343920477137724338619950037527543796546912289546348027409407586499017078471991437835237960717889805510917160652461090384870039865110609564380504124777957374932425784318110941829519620558383735756650332867259416845423506679585265981633414437128161335152746099273808497333269374924016963265190296280111609458830238066055129568473754919580337063384626380102747542767865023149239111862430190802099948233874206589536825472153048074990962537574936183696049781488622603029940429851107789299484512211023090214719704552957127011327127923063586170997653969784140857574202749834864153354731848598179105021084410573315438647251595145514027141563926741950356411010413328366107829311932061465592429789099062501927611104000559363077336312068468312401692910864121769881447149512298379247136162360433637386759463206563960420489917759842164400846428275422888207077061490896050565711262095033839779666337401370566868066658272955644930433190264060352868755230856824109125418302454209666929911288968706064900334573106052402409628337158833962199103615705286177555926908209954058923338598237424426311699541815493242763199819030370885779717991025631086673608145920521646152602491515175309435750114841744338740986920981095135757466525772875576469689200111660952400251690232481229462595055295867241671702621669195639444683185927147452100625651963331193682808039702608363184678517283345210649574409835416490522726483393577050824267147600244107862795597187981612552156554814096685674944115429026530556862965729135099038786206892754010175789827452452494879425131490760090413098522474215293705722751120358194735704841838498721759295341408177972328435527951216844610983615134202447269446165754707310678455330519250219828705437758339512372289850069487446039821092736375969064236676697401785268349998847978807857047165174044717813598533532009332249136914477830014526903951572615050739439519983621396244428939137694970853015578457748479757314705642829077809660149965623412105251616964571618170205785532995829688128542111012694107977055068187987760364648827832590574856357755605965193071485649151229830183384557969784905505397025668774239301096280383241701048178363848484295291454725867074870551985341678558910304540191141503759731408106519141708534026575096509448425400166455315134733274713956774921606594201302027643142354041696003828016090624106297472313687033215973889933678091767301964073050266348990441740168912514196495252849055705452985101111220993116424527349075598717631949770596435535577348053358666423823466268774912659412786207875530306851333421227548602759229380194657908595983420886891025536447375392532414462672931916669341157910080723893882035798545837554527272913302508886887045178276156504630847135883988990462259954621944094410344666854097134939170749984020368569095492430406513495866715990962742313179221257361348125534431364773880355931685421295044492233766566590007146224394619913068948195897185690945787207204190873276592176279445310130149933450113868062418839255089164286756774551825256435773788440457288671473897138204419936865731427635197803628180054126161465619985634623042342822960989542817809092448405396934732188823713219887111132786899418943799915793203654978655141349708501804275445293935456560308043947762282523395182605477064180851347632801739260115505142089326467386817174976239753295370111490012853849759529792865443171464842603566805984684527680598452683162240150521543457474611178932079460372710310619365812125934575341343442734719545299612518767833652836121552438673347769681331743191884811244600624791271659631450167377017037071680968403647767304085963271782475120300281984920941918276047687897222907744809771389817753895428525983109649029995985784819956760465695904586709210948036233391070641082696187413533326388202425938909131737163824269216584750502515382191236003486017572981156079369056162719168384728142819049363806241166199813847081532021233337405446807092461682838201263434312747669972513806715940707901592371553650006175830088715140991487518964959177607027030583152111393246253746633292987812276287434567732024740293540514937569918635393814081207599074483836012620329103736816909145618933747841986383429494837601932625807595471448662766636723207271887642612630810080970818811060824759936765894937504627471654289049563967938040399325979158494557201866879500780282675529111186417008139385998551852813403799603798897798832852899366684963595009605624573161675020168584930545839971038699666849353999472871039846024202957432622981056353817879775547484099041308577853837526422974079655241983007583977944796797794430510698435109748777295812993884969476662546790981159687156648864363664556831996045297825752493334545503497854335062011873367137912843994232778148794640911294272021892595723744354176832637482830257556115864944619467358578458382056263866436784105871878817926794781481644718372868122438864981024716874932934049533101016589683872158954864579826348831399537274384048106618095380523095098820838840239575236541073912501778795020973988190355159522840027909498228790510452253314544140356717040995023190632950027388592073169139401889059098484747817844685460500408326379885214092343467658641090343729570273163094946238620215056923919549105389225280688021526291418232417350296218011405015237823361409060160276892082726330606946115929848735848582915574850198632263082763882043413917292629636422151599422643652577430187842785033382041467067546056213686335163419674161853977345323245831572911602032980224164599801692465352529272747701618832741685507903196670996028997700235279945200505827076420838931918752574908431279524142135085406526761670879273202628020533766154298847225133951283774261573409084930720341884798225003941735927446523190211743375003952675427427468630429665290238314708534162866619655835293524113482352408543759337374321026778430990105944417211389840250397803588384220055424878635742365395879450608204428724313482046632611350636007292396274877701965333355448612753333266525797728367283316550237132865686899888529595442326952410185808149858191870288407775951024243577971430861366118215052598744802845583762603080560880254984433875412504564302989245347200219342601759239355705148056647622208423068981603274371960050606865167746584015831279281910625960678695504333411993971946714940875041106790633086835939579734758931268701454135533373648528203554620683995185801386665228083009009199677611177919930547812482877428694974418569084275905422277540599735668694261120992225574285441511421941327933750655670943821721208428725252834072326965983865983650309603123376800736494977938501792233011127546831627377926555322429852894031955097417310869728138406516850056132694760053954558954285440106635646956960349796118488825245840075185439605896432813814304950777075235823887466936439353417651968313988241171502816481340216035382448199330413254026223045329893508049626972661647624397076816193053502677892470902764570363917127727125491070407118389199155019470439005807300116235843801433469410605013761986780178329015759748132749682393416572911976553026648133446177611076438143149563368447099848080248552678902889644336979272050086441300927198429685706018246073886932419225426492056003845004489891270882167338730794716847575157661835808681240323576750603256789623178156795926663172554466157051100955506699004790368167899151999449849660807913502221277982318243286482691876373761036091585856203820848640484845901691109593974155337486943608210333992215070614308522858576266661119710545044051278418657562244210570365647359084745961326093084240184435009501136892129186972040331099729448017363480293253139002098698757172020779682652769943683990455620781538320023896624021550144672757378616896542931619224460994466467668077429401401393444985056227892701109773864663697672895031865476153135586889419430420475432855825581583359173967876999131559989085252947753731439423202822494937105527957000976534204139197650740413420468353869550395187571516887793458545981894520251262261898170322680146168354476804561092532260598653425235956282095329793672781520060237081224539954033839412118260638046348367904749502100155823451805458698743009563360342800871365063031019682072024682389426792074551501168578463396909552991158992235856994824814149663670708019437305154334219969316693488604446201604072139957147496630089305055554618659601080970748210075860447310614412177891940406672376533863258374013048570546646847093676172113649627087015232711117162745848560812389110810493562323984206780686199434056915752273084671898017580221886222101663376127399223702200893137814856027405725478437330959028621736531348969912438959128740268756168003527189636588514997096997852955962766652354516890366596144103294896749847293893467458172596146707424160361463109137875549431942951417081938626399614488926829946510146037314819252484548159997168071765596198228069231764010472032278985972214850797230903383512274649739389069538723028267030331777917116266803068053588936878799279869533858367336627731664943907614748828049874395609874987920696202197403683703521028891687733495332421432189054386960613848312110083229862416709127357345439938521592880759317808021911402310710147077389057538664440061216591405107490769582178357498479219759999405961504322592079923660996739431951014346332954743506784767618196648201994360135736844904346780695158068799069603279942692489159157150479175822206179383479700540046013693248274616375625672656701810389704286428425958862334211007573071001489827009893994336742729771949075823007892167995718674901017859837687882304794258754916378226474143079905383452133552014158805664775797946510634518181627020473298591229223818865193477925399289993449449959805742401169677020320625091354192706938727507616092698816788943577251120736310864737168722052961144189739915462597021143291069175299200906881421174560331065102458033277788674330127748798789621387571108759321066898270166616921318945817037341391308036636749581555715621203837260017739630756914938631594176085531893793533510318933498962493388416640284043521490042065701250748536960600246959407612781638097060847590878623827495675346342045701968778022828167805271511606464710700424209857784676843966241923967093721287816259346994519106179861974084626646953376287267657246342209892568664012474562729330767202034202818948864174762704802498763380952422309876838476118460933162729274333065961388856398141835218086577304417993983998753165550954348059381854065069236538252780326891334963404382824538544101646933934442956192415540143076147257188534341605754855664822867768323616322826490138790609165734017701822469581237460462249121644126353995357284874639056670862798239093028941429600461538414900675059258429983598128570089926134979805750145918038444944199657870925643723506268345921248919637666749671601926763441009722755044304247123571862795467825658771393836458382159788990706545545137720343732327150136810488406882753275930367275393285318934526098361475632627297374497172298861314047937113630951778412647465514024240946287777171342431804100797307460386482367099043316887032869466759600837366750865428492514469630855230662504207245768698742026270313382819970096171216748249635475487609298616717897778382659864347684944076978601391318374814657195754256392201511714141549260466313876498901998275722282754158598613928845848076176805993676047829635722279460370941642857471225381932743417088792728642792983252086787601840814587984171194373791649176777049790402762830083062550024283753995372725110638746350485386835019367412313425847084162553058253021482302283173124820135704609414346901791837566814033331716568583354931646929480158619590510784831286314897596266346000454498845114230067630210907281776631485966099414738675034939275876983718372880343391265795051628775382869110226059230040064166319127082243043894878546159780471814517310533340085551062007943652716132103215532158260621862802150578731502416629056086915404974867408068081783911090237101912680242684533722982336908698865491080290870544297765026675567314282647313460296411947471483977748660220186151447743869054264556865880152372667072529319753464828120550851578992127431424120854256918299054415621741309150237911032812280205794556633185220861623267960030859843820136549849303641974910685114794520464464212984619621371658163463684800496473206042698935185374869817622339224972435259946921784148980774473238166027476251614174486113081382878576283004447681522635361131726954653852995921938974582830971557094512604164322455969142808890374622658398205900237866811332889649327708587109224175249901062296403716574138856270963919219955116556017265008039985903915819300343522804409808267077861524123604682179704122935555234114069965504818951883312089737630575863227564138198954772693789443210307818387451141893000310333351568000715514202325321660195319685069450747589147671794265196787468309513266055248161935446510902458779445532620237585695171013558278182876721399654512843733012108392894685658061891317527918705863369557577703303546432624468495334310117578885038893645932213072260331460762809887719040031947483519999360688768867779417021368167545810847896411353010840861408884405958792699132865249765298191223085364660609307374667644773786152708471278187571020532375340646054708303094415410226294692913369592555162695791461676909753501392958350742591742642421523632794740597874577909078709616716142463701689492985671802353450057049097889123588341652664802307235515788633890521896231663922483247620432848854331617811352392048427058064123411736636068468457523295966254524259107233541652567003203086190819214398823744569740477911692785065103202539745665288866457916435476461414478105636790490866333688783308538306885274289187230067780993296683431506096740548994776797563749095842612402364245991702090093403970655740019865948503081686240724375076442314439291734734308377951164093036538828573194986204658649694863339480866370870298799100817399980020274744796918846862148014193034811459306279081651982602118631816928548911121093199480054383128877275863562897617516785783740871247819150200490378652904260729289058693867444206213164904223792251025316016779979456661653153668164818086059106277872909808366145616114140825432894153018062120078839827473008039129392016158590668559780395912858539987702402624422219070813666800084957249210261995269091744306133955085600634242206359463029805830666305825603737032055539924296789486714682452253951831925168786441235684910975789283553577304368025683467679696639257152249487938424006947495764761753116484553433655853275647143392333124943882775758653230361508037086177069285711240958352319590538363283269376882683191686415705748450302112647807728799503591859362036663053624953264681339915542105296207940794795980693511390435285878816928701803623902568383766359912919229487233039708271171612998143588968224137575543227908211063831057556939013489157570422382206421663775658940286263953693625876671609947027038988201153472888728343820931045793597447423569657019553894750395197996394792997593463669636022291138443159089349842626659643462949263319837313066373168448048893060773033609732504525174327639044613947468341197091524511776064276072669163976082614369582835468091019597744586513201431275178095660414975020043079460340879263702563152308372931638536652359969683987587483244490005462253847663404649978480728865092641287493135519935282803697911836139071880368086323046437732411585947653741782587283291461655606904063813453242726784047465830786166992321857513694208465892504813211848498540434160121699774290081823595970342006983667572655271366243846032086414173930744247224033503332700880388064773866464334206776067027709292532175600447563449211985675389847315068030855184144154833364189668480027718906866095006221117253633015101299704876977746964581355893874078088582110299039849609040013175464996844651359952335141347154982507428742401821885066284074814681674814291888593235783668704453912152676888028279121567274700075232827910027012063014260616696237962173943207378423536105056102836469907382449375629599204933647817168348986474342852434669100445089368157573821838096677147079488133007037291526262975362810699252852265979406719992721900704023998865450574183529186695068884675302698201241631269925957210096635982823803708579929884358109035482291028049212701762202406893526624773281801341440877872950378792717976256393189759358107762195580284185852913595274039854599493224593704212990392112068626907067753734859265226096875368654472998115343177940649792033228713446850697858136810090710240305896247498355466185897640240324158075216136281182730750622287315113598352488862596742067973180457559128295149690591687624779668660389809133781225087841977608449521393682733831899969535281087903771585265700496359135549976690511094224648976070633828545625037916656391067460385661819842176255173505570210004446862405460146071568801239854764383066962244609284018141647856344825017882014647482963052583131388271863951069719701707050431252830557062764083000899202133556762199462822906113838323314328580358638590587715591827762045276435711445653341995623411917865309666412563132199852467523994777085936317559827511100358522621955469495761455655884183563189715485945882823523150574882988466721979543957073857465273658487977124730638418554891268500818654080246507473154763613447777909710205778225215666910875849385870067825113902014545097767176374746950014459897068132916676084251044692857439201889162804621973856248262250953005518014367718014626944601874924147123493258047730597110591790498918673068424046606050919196349476215376013356920165401790758510242781713072475148396966771284896298844902893794207578360947819278580371548027316507026442361695208496527471766298373642245217165548489866171698031118561303464746429671209207373486242795635224350184115467986912509892989552481282358420363018869716531651221693053475847479236241394520417190656371823847940727950478861992134861079069769690826987724780642301878858791671903513056239187368975863748134132896662890365128952144997694466772171332336366625696378717571630304977951680146036298477888014830037226770036259479449386937400581827768067599720868306515587539371666547534379591334652348541012208986860774263336364908996946113123743812383756622371299536353138286651541036964433659607572343035344892456117241301926965218523824195079937876443012438578529768420708514736574998486868756511561067057883588004032334384641774981080622790907025641762602261570655857549279243798761828165680486644766750977609692985915197528594368950793319722955404478483595801541641440596412273888787145174126339242139863285124067040347361002316370028083325672683916254428635723928975595099150289784278606839079921333961636015198959719990349693297097485859707401099985313014042649160454515652417023479192275818856680547791257269082796019323369645467809102092492742655969271965865392688266077430284118336261999170091423756171572560281843069934764291515896434164196295106604524331459185348118950981171035819016496964189759182946852469281278765700219984633150395454661656479994686192660359763963091116748801609434717341442578841944191594483752123049251725532933728546204341247544697289366647275237108181705634936054850876234752640184393872025145435532315600616673129522947087011041709174950153936644309274456873004032999958873683209442863157181276983819118323560639832795101917731027069623382406251116055051124674427035043621539887692283546690482651221274213089171967108355528994715364386270710504353413111849340733670811861851279287433846160631715869924968645685596266610710901384004293448893407580598999315177706571549385764951486243468943479326018041508049423691299628231082515834881975355822830211502184023715411064650616533317495809518874496468146236490624843707394389903697730055903780207472470531919854249040031115498113392135702844253950388139073148797215918643587759512862355242107478226399163203162052987537743550837672757453855418029957747256506930833510769542961856865650345561595186350356235917074915177416280208380880844504791010897086785303785798537238953050146679051182169030612511864455945193939782044660615979997086252570776279392360961142027580016143897088360010229862172499239079333432080637040997472415242915966602959376347725014112997701528679171220369888169761514340907609741692948617266951318481718256150225274587286182530414266092287094714434468260172880670683682308526115971999921298528468980435769946846567757014271048214715959574380213393887700319901312835019475061231397260736305535136237717843045717936114769732729404125359683753127820426406113902040641146677228809761470833709989382643442160188801325134567502459308448081454020206383329648577831412467410636730704728084817864658131032924495632211727352131974908352746177473893171400031851875215642098756329299797052933179189887182033697259217298764083456392994060795503296233275260521872893199849808117835459456343102597774986731608483810996007276663878280796792792343057959919351378785283948278445360563031025226060169455091058237977180128786594369594812187763798143191639338314997587130482508731527325245247454545786099088072496412947423574649221248315217494795894958961758039895656745407957554604259384381438473645920245984133068466498715046053280153791099994695762283931238508572027098334564582952355847610601922766892162416253733669673771279470392638124018086970429530104779531907252524224280914486459980119921051435892788388079105240055788280687034624369913908920585524464477915651976853210793926044784471116398187607401347998962130756975903996382794377292290575136915537215553320643074231381270440215184129179804637506478127152200667873765463299578171622255423444471423448022911118852037979953450487186984201564780320788471969327839516536084048207168900857018044777059515714049716196350642893043556869251126937888239549850209775645096249306923400061040306825971561683588345865147803005246017681544423751003764002111945492779628715594698482279114069405819513876189357494500827474238425677199138001439849763960495641747845227984099588465000688806814534976454453618442211103519786441518868309663652220128502755489889822047091103555227487926160493702277641809559420647798150717336410913637673109736877709097744266557477769035002089284534509370852909147634805371844840440543546867100672520398188960541246358524323042773797935860093832966643937597727325428172450507740550119628474561182048909063947473988388024721044928415018651559451160237647358606886049095913521305480978581032505922320228125782899946460574277949021695530868176811573574634874637089526823291978573475061330016434328458561324984239852163791217726423584070840497812724908222488035662838146913067936025219680798577878411006025760716261654185467062534792355598624163659862782971898157932433931263321294549582350663699749349603565861037092204355827744431977626567119308225625281166793329887469194757585722386328284025473276269312373282744412822898617532954063489606567566639635543578722672750617281310295104905699426226754657508079271862897040608464087306425387906503922758045507773074226298586871723644608047133922546514338333077905130082283258040926540803215463198315668510613874538699607391910947603602533720282824558364196208818234324866047528655067660436567535946016850267548915561165332179673571368490579149940220401506771161490636270042531828614904727052316914688947040435832481696777369865271869564548683569170747986022550605250405987033373712278403494312212006026876929748969776000958440493296271912488248504681607852826170946987960868882359201675608458855747961008405032570817146711827185208937497626234214515903361885814204889604610730901058411128134149648696441825546969339357749856193861842043955038923757184178279558608091761681534870319237550848023318207712883248770322651949949782899057537056254792210774944548435200707383703561922193288251992748831548988957151322967242001499872033292939039973885843076788614440061746681814894486401989421972397000944129471467638756530540855601560376773711616249362334439324349693129454265758552855072783516261895219078483484092023512144051745455370070544754328295290625331724374686315482261341896683900026084392941485273476939193299968505635733566877999531391508922359435327884567698819429271784610538229180611601637232372852162246189411195181767888813755173783321360847699191977125172592170865261704171893109129095057269132096465490013593975015833125988920251595568978046344807553421619429023020362026954588954738891229195364759782168593490180301193368349462346498071197182647148492179586283491595517091928991912128819731736402390834655795168784956905678026451675561059531124836996950823221870510021361900756753135294204176249225974023178656256325257825918489890044423072595484142686307847760433533893771556378800206105120122958024010168248049333735435902896417481237844064835796353564138268977480143663432320058606597447738885653705316272196232028854647632322249641245262428338298466027634031809893123461787991766738057622959297646532145210487841549413312242254938878370660836465452162201285617633812537109931764950879162663644034668268591753431605078941936254254295689384505378261047626128579048507470515398011494717047628704774518472121561315062382941197212147180240682911206070940127086256478837821642351333658166510664679813418582399694304308177334452335864998916789842064460905974178377469737867837869421644157845127556394376852730805190299466174310882502684174328421097871545411153449171856683258883625015844212333013386280597140103561963176904306947040984541533618027594616384646677677081060788109650036129342668394200881112043761146655988072442538765980326661035755822937315085153530522678101280007193460109097114178468968997130662546391807985177940306116072224110604494735332345909681810913380981046712962045707688296078803000392712192161682011951512889841730098191750803542504470048949767122066829241936322953108245785906511793045130517189263379420042824955338570257358785185168434564823396910872258389522385926490059830422882098572260836644822574453252500714166399883556364853572250769785552334031558412534532039794723462867935377455069251568955447655040957143248116473597820695057454476695251122470553852142196215209538965349207847840705420287011461329320062487168388087057531573300362856268642082986717600792476281769939837921855733876129540613596691855609077442790312912090108331298005471427154511224661037321057480996515007422509917199072856046136189473729661213145122995927482036432661571771469786176086501559969893049795634186325667369945472515205778774430553563557140284453492629093346893510744098773286326078035406003478743511036779317983064177101035828310544661189458803688585841844652825098215787128122359169197149585432394750368266568192205116686609908610256941842743197796358416902533787137180590705935258388074582854761065341513621894736255486248367783372724469532709082969798307787482660525850896613094021163787257325579940746323533203133813830914333701267064613783661366785287917825373815045381678600506186383764064277127647566003561611721009425325143224003790853050765392156439563814616489413856494797054904388496187811333498738403876091996938409946594146673977199632974136949776768618974366265096676359242857323322256165006121028601902416703559001762014174101318848382039329112989771076807804997217412584951279746926431982485875112932488013405354823408915037092134127068499722391689310842527798891642637826393750844107391930875230170225157903066006609052275569256333043548176628877931090902785031479461480720368684810580197864065570362836758161490329516596890809300604533922576235748960856325094718560296256471185541624342816732762776266055441317208842079634581437460870389181141818864728994196845622069209332039179623096113946504941441734510403003336126304652579593049749738226609212053500800180620546046554426296779900750824847837583268566516083722660304032992942161797163610502524306768360434758768384931627660114414709902161907932200002923273171189245689747094498139508722235365156714953155086394320004990962134410994473457880399504305922488854893802750723811686818453251001933580017619417469419582096490377145932400133569511014921336595193749799781585315513355282143913199766638189686074409847389050792865705216453344896611309969470830157048447538532091307441062388692631328610680867012343640924104059785775559714837811120592002125411414755548741792767566368536060310426944284077188009065804772515836430583190735629658484161486391706541540737414071350155721158880956217963429545921024287605637821403375809840988394137043186089086423368969004486065948566074350082482624777558306744035696172546390723517318336478267285698385821865227676428848473244832032427580525696976833291790052063262930133148260153937506397672930777418362192063356995568858147425450745671436877325885049461150384858549856065486520330561968098490520164036051891443675825674141188848449951691944747674876039640220634624744309852117133012415063328713083918706093323387721016030461056444914725467874121093317976705545580450952288246421217227242150431909149862870724431718974043880509843270805645064449515883325780207752315653144519621940148909743200786330182815376544737736813681333253591230647102391397127332482388789132991343425345022337761327889220944555664460159681271416962709751180791757945977414333779760578376764504263206028433503686863191311844018984995381120817396546742010475702225848706953924821458511014535005797797772237462391709281812490281542196244689146171043922709617977962526167514990727968380560916881499062881794833685080282201945981345695042032794746056377800069161646926641481692066133594340648696109814687574162682147233229388856009910107883315950350387220255287826425025842589778229629904821349280837870405144174479351316221828739274025061917057645844376281920123205953706508629391072397591621622264524527011316273739466811792866880435859996192587077986965495683410203387920295864698089250191990655640067725005019431607169179208356908594073604255239053072979730470496186587973357049536716986723855876342498683402949409550697835598407956318514823668319646305306519230159942202583403745177798102847544359752117878596275852979687174352204466004873569397925302286849009225579950814292577859864465767084798116233145665314623031880117741466506964982320058311895621885109492656633211906636231593156485262836096395648580357645350183672270576569073942418144811719851356835732701533002602060084893457547148314099915548232033604507444047577958440515063423607558580107945517181267922527141885548222383323179278600936552785265583469775982115486277053552579567236075249942201397362250873849016383295984497490510848704556121016440580622353697831601750436579098772702923954272083641225544749083444807238256411065464730912023359156964120761967519037641662038730225803747068526903633477331710398604562301336233981432669432712189784733893788391637970635791647525894283499801079777643989001757129613473285152088344301525832775207072429175613926176033030852585889978244741059651440717429577082364208538967402814882275652200287545235543679535539186830731159235192545805354753602631323890693097674487894880779281680892677812908171410539156346503817481361428078825599393774417853034596687850526354077734986771542333802347906944407966730200966193784630810817974788234090282531454201420448622167205529963105917812415620787825571568474652251445414436214973741213009478880153882204644522273977217296928474198604251610635330609687303911703441680431845237063146503658958705006535981465340175079570882278229097122729625287014375997344329447387703681593419946806201238080934605061946933033526873141037110108891698914865637631663065864323371669884793379277187556126914857234883124550817283884849491372577876736349125638637444584694347309400268342881831547503733347668628454388791468783273536289162751345377067202792588500667752120671884223931578940865244949281226675821139101898731444385314967789865477612412501796905384708504824926962163309940292772222124990055794945424122956962994066178010348029568587770367088376863188871927173942640103489199885483928291425767482039237590541341488830624193136064001675705437552500558264387923406410895018511139697430230323509218830536887648224783000480666048813483151803962852996699339634105844669209462647030998279749878888171997809442847570642072836569532161249029137527447898664863413252651324413796830904613404739352459325482882314149699548125391274149648832808454106453062056319751544339408900610465207198461857505739400373365646706221883836245171495634313724576205844896331290113465587526412510007827384103336755623725414376159997038314057898809205295078536286568776547363937865228865125933198486330383966468968248515763444845877914682877607987728087096289630876284404148416840276723361308720494587476185141855246285524897662591243730594413678258794813911274719351071903674624545688084604494809618154533814617485450242436121846054341538316210979269445639524207379254063274908177238589604820718696869397873030255981013500955541218012560444260210459123977139939045455264070655843814660229912841396058943570807004852108710566382546511925199095706475879228193074095286671705327782810547937815614125056021109521453303599660769586811690245880803232678676209526166906040516142757110649572693621105415766777079488856138387585375383035045133767997923175316976798370093784858598149504529155228828169283054428121766653410954117958749011233609165653161534779790228862694899900155702577754608726965148289135072613364564481340162491057716150258781026387864784217881847125440242526159277966514555266263045468314458515982667338782476426996987102638785741415941677481537902414803190209205044402252676186972176301047215791484940043440853848233722634209079581953655840700355527572534912539496061465836638431090261292556222653358069377769036520717709207654434818390988248443858051137950757925101216061249851892918217680745310228058398112678996521459972011114756868450000829677487223065744502529527299973746370441231259649496910487788626081527840657282087264104401553713521618889829192491894292409074101218635076893725507924757158021406495527977779321830578130765417606034453274268808715445658379491515852388050878782054883544018033209822458232105792643095085920139054862542252970050973878311009541653111694649114086296509678909977824403482348497233497744264373184781731346483460567811545947300768420916697534036780452946925135183006481409090195738836929277994532650038808550600934792481961049234142323679811137183582676087256421932453611520952971983634560032637028532019012997996022820735476063078794471749162825469906993580167588042589761442019644749794662337222744876860163423944040851560797766888928127054360802774708529045073109773143145554449198450888032590047955912253104294461227775790443823806263957144985983516855939808397887348709224265073038156158993580164323938934875118918266243378503007355603549434307944129540058465017755256834499110258963924135161463554002709671495230921748767493427363734858662178805126906787784938305550828042246179072503222434219145179370415681734403058418772875511429568150594755917601129674869906330496537182663114710325584080651498556632207468612562907747539609801458239747394558204029875317738289718903261625904672341655186397138752820714350956005322202875028231210311190259402584501869637810505694666831891251365244675594072747895558916608524719870272020863565382114158400994251304695868667399063446676107920522789383860754347233227203750788833273043051252385322390456958047903985145410804523956660932132920834022969790687974499829949070541639904490027201787853296676069063405896427089592295260420425875850985494094908563103052433565079170469092188173323527225339076324178250997748531211310516688467715168230729422597693165217484049708963157234003959952156668722896688023873549976762758825346015200128872777116116231297584446483147361742817456259164276195866977455059689489831676781290976787727303579502523670627988461424912597120556000917232042519606937439429817627013126260039683633414282783765490266442457716268357936513269324580276136843763748666193384358186624828623407941161519762927517680350115479429823213915982060508892222382973080922721338214040517749841474558005399754840354049806092902793768400862697789670262965118960975322436651113956200448051545736317917718609804389804582118239681953050048228688536585862481499276489937704999265544155082809917929563240215486092617085750069839748798236571347726467957754787120144988630723411530260439158817476844990149335709719139809541818384395306720518128680577244326900414059144820891791848113323404439063920992335024302358813355664138900019289818772225349195735338051296734551119997732202511875057706524942529564638017836066732041618542887385340617360774351431134730495160168379578752467573502304675094680728582536451473926571467528346156630220218548817159879165543614545108688722914244810880096138394617491425321868370964284205754836727132801631779098374151190402621779408477782688999220324739244912384710420727224415985541075472776660893656173174224566522467410002107479017141015089862198918697672526623090230724611596278324680908263695894931443095582777652623801264055119411285321028920172590003721083312919005617244692908665745641767952233619014764224102838751517595158811660954904650050274430526508370885262800283493832313177978224881421904159317440381670374120877470550769419413799147880269405933753906717414015698216068550330206268736481210878321324892409891351369988064885904950287332720774252659944716243525486893964689864594423065724176095434759573476467457935280521801694674018242527653532547680249376273672053376774563879917519540201827199914078999530045714740009071936586786312673863547927591221187512252292965815753975183561634923747590376684069491642749558804358392410770171798671435217199533129965625304787545373184004313511068311661975135874739255155645516807323338480332973192645474891707054749007840819104107760975417301348571523775480880596280019903163428117049499560679793879938817634263671450082896912831458399411239655177442059649170860032149538097060234679946579589902114556622684550953768433263881037971241722041583658846237225743209173217140245944596169890828642827887335250186061579819960458179604036978701282785290345799291868092185567209718950491421893236448139724219242535230302207614832776404319136629711736721403550062124800347768206965834846940533893538927322229673094637742193465132829284994171286445653526145896168190165390937700757794119841292805690609025033540578855035576276670799435138820787110760096757570180442844570196127452432280054369959538400129548321784471528118867190105940760550100960589357231568139560811187559887561901829791871115672170910922274341018071778390960605720830402139179143714224522697858914409554408407446380336708700404875977720297147700231714272215642054047797925985782661464080067273135373197248288285118012411743757583556486130568363745101523732389527075006882847392712115469740666898743543569428122507772625489708926519886520038012493574123182124926721139546493969371171486830119997116329872490498682408849031128266373532078550009614814331719842056185902265327045885837260236506452149801718239475295306689848982430800450759891711411674312276293077122732353354232160975585427669121403169234627186370614602555719311585653603629501437644714481879039541707691592720663300115324993228462959436498273086823970584974525788597222381362291234001536097606759168362912248892889751369905969303264865828447695530606613713359053420756155626951638794618891262385263236557120232316097208517722663142219258798019835486039157667763973948705984638214711725232579043487567676319682676649615661340589661827903441432851605898753325846557858227802667627977466283998196114254791629372353276404994617352117669481486724532838928615887969321234960955433664532238563409529788758772522556494973223058794187602129277705631788853988929569281380864050651107138895889476077261848233675184077737658283591208081887797251598161797671805056755115244179019146379460938635902070203397198530649040838632620887082620660014713396539858779508146450973165017908648544969695689683331688032779234098189205738008710329583641910670555317544441599067647746797587651019696641985734967414421167489749264147536175388560133600648463801543235931696082191433754059428485457303212988422966172333621462601161442307875541328942940758321055847678487532617133687976985122698057297376678900721051138292170490573564796114992683562103029889231158961611846299800646883634093055977100620943076952320134524225305863326596029805348579725018516490313138564136602128516284021071986211482939203842484945351706821616615848622151806955770465879295944897333805903164695326169285102797156121459060871110896927656015656308976731639598080611644276090629060629862902837449748625455472954021302123478426427585630103870185755143044139843394955275867078154881789399360457828947901608740209861070171124360807053744542187979030950709365510935522263488962134254670677890433015923713647938122091748139030793562745474021712580488781621415402590551190854681158426155443406121705203875029469843909997755222911867477813867817296004870365414990977557904496158677806354171735588250124295244062211408402964914910672554912411914707467917010771834680102482373940050425762869178584776888300163515033605257583210391421809645600421413708267159435345159280522268274389021944174729012738777161532657110063682091681435037312344311460140591564677282807750588056176029049465802417976246373372858473244321506266813375846393395468327838202921887719382446467396908641548350880274611802106536475394587449185199047465612632278688405748097231933994422772753594977201014275660179469148330179145477749482952944675751037869549520935462824776053875630111816295642453245330479000698159188946205005850248055869417806691062078894754399287920749974656961062284488426737901378377719668658997231765995617851500837177011138552394197936156674780960314916127102446514761510750193461276275335680177512001364389730481561790289660212698788657958033448702963146604375801602404321073447420292053234583902823301236575168866472347073993095492709475860077974894973370227187166163159140003835706582423222975215658776265377677689358381477687947433987578754734306713064678137747637573348927387713720612594807996817582558084839696011940759528936318494536224140842944557629537509611046286679754735797080323608224987706059297535364719978142496353901535044057153960254747259595096015501968707576509198153861280007427013589397520592070873788101417120391301728595695858299288627904811586743107452143809651128102610441517191403709977128056729901486910525233705587833756065073562015065893675069849143514326928849262707051225167399572143678478641682064473484991607498816824048951114681387841130808782366291291928710801851910652000524174420454950144479794220644010334336623985683640562082187092655782598170552017067548502517214468081443289146689763253924941221303773536334529512235996721973397391484261808493384624553723134194283306601129775941078240603826501505538309551586979065204577215219496757192666096173562210604663288077870294365366958801124826666716399129718495777660070957335307563073368453933820693809882241328465470701131551858088751925604066793945947354019792162248829899225090950566232225542865267042277149781159893283851606109174857274626646795561193701450186003992450375780363218715054695498399872212019934772259914987541951505811471542408173379316990846759021022068350948907514044384572050236757698427292211447043275814638335643555376517648586657105653410321767328652851661166086260991552288811570657031075352350017946548637069966205307377957881989131233878993603606818960640138718319293484850993101305825325583577360323232581432480948308047526070350209231552530649629461532813265337247578489806437123007205180536334155859388847329827219642389657698675341139930790144187430877784696141908142708093458493243552826589947185356045422950855421138720938391143151290303546065639547067624273580817049072574013829947363369967353487572238111813451698974408081330213326353480525223552175357624689708686188804102807119684266318481677917506848009492689714905557874641337343592074568941479590473787010180281862011738717826128898414669067577514525493664425190784246113113798262404558248467024362377216357103108217126079402426047014476276015243299220886218649771794779129518103954144551654251012800615803813714660905070024101600992307189355165844968708396289605615072526158003364778522870878659780704611040571991841074301416964379666342785159692052867702243059944362501228218842308728133012173474375927352411220232783139499901782438941118033895828640863868955308748857011520793070488767492860624614928079203874585735643752156128622711084215328484235374281695420808885579054112153408110976300147129855086618580115756128287615202527141668365563508217278452711652403686953285944614033652219746087881238312553152568114950485508165987571318449089183874220792072463404903706658320947024106900297215800900871744227056208039039797221862784612799003812153237330231111679401865024148486597539653478100943215207960121737827835402667677081850825253150112408670535051121435129332938208981410358017675234085983505997549705360865235128636547278711777781331884658400122494020349867400345600092266627717165497155580142414796192862702033940543344011629014178028662420905932974600558014361649309665452584792001659913875795075866935565469745813091551642778873187704235832956351247458570829335088325212014452731951858800150578989479233732653485457798098733042151196031215383232918499999958621221156027743095922921200354982337742532835063394081400084487358588306596113493633040239769338941893355326515798372638414785387604659537209818010974244487931353317005054612804148689479147534316615659302909456137637057742773200971770619700191464582194729860013613383405359832895894517394356764537738603581471242709518250985894428864594660502314453658906839960552711568960931755350792349819398417193083203288371333801324808944257711241301297574894749565095443802381889736279952199084279452236491877647094103325436755835662808942827625838312859185932586791538432131494891783347737839137689885251957965115748990646397921415662736155093422912658219734127915890751619510569956231240437690128632943381870737864022732568581203109793240415248409954153804790058300797140562296389567630963194972748345557357974273151263417894894255984315835798831870797999698721865655628329604975169302201187207246552865419740122021096600161495148738031664569545149535036651974866080877637016097706605939681134183834449672058999297830505714376702821232446425916045346720973470071072383045535103719662789789359844108458565620102280889196897373886594679432393407601332009771775710052519507377744881152215776857750644295944448712645555832915471221333321053306693155811795037208290322048986396117066520891282562122314361795931234762430038223828198354445196240303238795669913204723281784067528935482719218779107789106085623092522896816604525555370015948414735800688805348090366776698295723696795377361153306918341189321863844579095828910965948866000897516069106405363644364471948289824267650457520646259121103368242518125222565395153707555787665673432503333535925130851455677645684178000797858196403228242534856190367408824890142096046328837881244834344250038206615983397267967989271284079221459550862078177622839309900832581530033527547303810341403237957073729938609290522954403184139729153422212541473552695188480306380983047256730773669233386263874117648204818584151331534886333796254880747051707145406486125511627557370276483326997538714723267054814364497053140722022512602573638018995932407293064623338055844812834473775606660352797432295732981955641295046399046862207424111756100369371985185090576539097695620310663998761627792601168258094620480498397516055068352338255209819504452294556113652445278150266327872215380380016236464898670615846972058835530635689029833238075154638279992159531963073354886280176620969559359583082974269080371096586553804216658218956548898156603433020603972010321282688795235244850467699014424582992413161215607269174326022779372745294796910005220851225451986584467101130081434918031484217627079400551069726721377524329918600058636617147394305756020257424425182736136020150742180760135649617926915341803013070122119472605913273285221931536877445669278003498071775476192438372225669957581478848616063103940792476774001535935298780622803010230044358241128788368175716741222437138457797891928676467976926927973325677006386578082281887746233432093871125469252322916792844748676857937419538671621530295049393899685529496514418219468561601413348328112944275665062212293119203315776111592748893075004013052056151093785734538161026300266244642794071791401364865335664519591473482687641047717918120786008778322600097791459364538666827676163946928814450537467219614154989330884732749438625266866081072950979555857704554200739150928832704810884208008119456487285876521938267539422704888965369401180092884190809241274545033458772109143254337399060773419508100399182523533595435773294949660146361537049941977270758857126927318032183376329532498395393929767675591974033914881171097860099873411819997744960842456598873738056784954105718896768555526468441407481598610496824919649991512349241048929250601656022597432448127600008921427511780527421919623764226794511796205800857566079188053880219834605776146783364784106013880238635068985192620297218277425405890898005924513884392943925654711260826439291118914340494338579363974599697150004220174813424571135077326341424966819034627173358801589455624538449935340800591375288365567652537606409410614300355587769908369163212949300914691667463107723881953805207706260935501229890083176945680189036473182172357307317228377088942568268692068632456421828210661678204201098906940547785082473755655397054706572447141650247597367784693549972420319410490640054927574003333307951315731183820247593784902256556957801313830325891350043550587990085514150666531713207335499737081144391919820996279118660757839602577801474028385329866737645255545821747818270285045520239427636488687059882565016250790098301323477832949790081246597438736305870131946498501940081359434736414686656293487322486438813046342583121149709896927570195427348047689868060108136189868486693253019118413226380979846875009192371770452539771650231254304130060030418467967117980548479349578972669054990952171968817265880672931770527256967131520542356130142993257135155018275878663195975237163703175667832302938775494204508360380682151327354092995797122956794460336652641786993602221915792214890153922212817828051842531602905664243416249559317701052312607444884126488361723615796092201816470352460409511675889262856503647768217408010548377643150427017160521895965832329346029260181329614127480451751765211105814410104675288500039077907065627627967461735163348874079185274012405303492059292641987849005782561012124018495229121275776212609785870269275486780973424892234178347631302254148712180890263524456788473754492230315664386165981670734924989451344815622324468409827845839375913209612182797465731937199897498400946256621514313434611300999517427917452311536988049608070543013133361380945923823627726944193729599811908122570740019051988295838644711585313893305913276954480397383275539334722010790002758197162031946144641928157925708162104788006295911656958251761347614421417124252798221629800194577039483376450471043265426227446169166353689520179922354314551541317188455846419175590844841634271715015318798366387121219203912610935897624043992529443321987514650483316432531603935438121644578791631965575892675680392250515407964129031895339756004981071569048645690540339537966575136718413102347142529432436682124671080944357963502301902298112497562916251051485483455889167328808850350760473217653817596544008736652736218045939384684835283524030969228603804279302399433192836544786803472689994342342556910879269578214846217124633577829519527947523163596093315999545643169893858482241464775565927505514732502848556661739147583354967027915240426534698481737596493988734624646052690266407033289625773015954308610887505416692318193381846213729371463566029059999387754589860722104097529681002860672277335927679449305014875362380355088704084023659936270909255618555019061508412199893664115702390837469781425754168728853969528051787351012563464268877592731547706013133086349982512082416642498253720972580475189651421997872557714272684741221279387696975804597105134506394214221209417927705788904640679088623561790526061992641262380645559383094008786513709169628463880791275844650968249980951359464408368769785844744321098151927090548068460251425050643666166000287362671574474528881845681003705700510549755386389255227461233791046521788567461022646327465865324439523440642415862034587704055986058147273413978658418521529060556498055440725440375602063184995561429160891533510849740125615549852461133357621303350968582141850588692001169903259213019463318466491378070551567996112381500947544149501218417342202748631601984323446927332615207376275020133185473894679139270502066669014184087018796860191571229690624930308183774331299180769513875561209460670525524257255232517367388191093358787268507600657284501991456974673143839633826352212714133774687482462367062231533697903656966845914878799096406687491101743926991530139945969747634764692851223414985845714738681256352353916452535349955990734968481783378122690299012382771224877821456763248381313143943645300095603317770590195253124066243259146646686137685239205186786347774559217458887674613338651344892444046865730670249504600642361747707019698679414129105426100625308683577923697524247346663094704253934247205259837392259589397872743988461037794978423056881030625054560938660714252477491355597578802269150436497978517586959970288021557578401884450269807561622946611183866861998038201651728828890764193117672872624042227519107331983967436290222998014267764822898103623450313156520895619934410269147631032851978764162523625167134961289258892278371325559258129536091115109365540360053323642352012274878763538178341839749201408489014707307817135011973320808724172218597513968792793777616479902468641751341734687582541027249872372227546044343246938025806042761468364115234466630929988563378251632319214906860765395519909862896273670029078109608070756017295752365398052693540639156667677461669652308552825922045649100359268632755395273392588415445030081734756510628430715724161621298201816103841261714265238505687845467626781749509683286030674987632994489725365313509869861029876565277421321455018652556711370234829557325105848384905144880375519745357872234076433288998732300694568897198933945890535080756952651022950351865065688427981788883855538808488091024504147387187158221105421918510143721176160368095244723501689214062468269245980794518442123624226428274823980330659708299781103745891409615570574866783178425720885414748927741808806790675569894408491593587437035475973421790360635940164466357246817366285820255646783569657255153165199360246890992559559728797792245043388523190776549670215159589063401248406889545166670889765278559611955571037420188475023212472136002791448185315522303462309975746303048434997364709661190753726085673032117554563826011544772714855496785954364599618031197724229226288911330569340637459892314845793738079794170417455205076353377588973354133510774186071426114526606456378346371053719811756153468367868752864881007108914423694452709219885983694224143240602932721603460588867695482862354813440810633174681850317659840917158632016700478723119796270564510510658987863996209156932534698294849681017771863283763299895184878468778893492007618610607201345744242923160801379313650723720553125247241941816311894473931264736056908860077622019073433893223268970809309083498529443938318556509094334692992720204276726515632397474786091439741392348456722227210163933160193879189075739970130394511248164650921517681332844511382004005250957008696057708869184468277947741573123589592150967575945366567930252354239682480579563771427163206739084525841613196514182437611219251945019934980848795057877747332818224783460067073534150309032746621273395611447229340569083869429731490869498644921676135016047746838894675935813657663924557999550151410703161925739253141850881471294571971091307306973126398624575579108798487856117241121655678590424724450424984682412460006633577141189734432377562833437333866200788873268518144408562981349381671995530348986237699749553906672632028810925677777245037861000150084908368529488899850944289745873013460703109153398892640002173521651809542782558460065385378505906331798924089690069133072050374149191673567213813165269801912426110052261811792976247501189882015720237464093831568978961090426887927000407339510995685669414222782935738577180341714368448645594708244324984728952677767541042895462857733585898835772281753293228918825494410967549408439733118773057265935988934476157929243629598727299879476070352954082273101585693974630181666285265224425048913662030781739786271852362685605945378809167492251061283512188739410790926087670612646014797511994063835643888319735752369224235753558941464197682211742063812905733028176694349719538703644989665679094411930490190568761464803605868027429328095961776964066939694229624106576085756898135138121553254998728002502485982089328195665956337267966392913297254546370067847517906737272930076341037649433497889164530445462088809198284203697569291650895492480580843726939042720153856183128256176648625080105047012011023126390185947308453686788428483440390254002900475029800582861627528317869374877277318438660302374702618142153280497735603015185678420448839695686202013082975104480891561407270212806976457757246946648249628454871487555122681420435682316433281881570458386942245071934496551423568945438222520619866425217792883885570036954375482667819025518259710863300901801314001448046912119909240399421132101015747573576285005743509287046123993017692048469916200767164759145377595342134355271565901450472293908130977404664970030730959491112172067460953554186635608606678734545499496481315019153745639303602277381928079463204448820381298558750385989792720744030218205235076184585152388496764324141512440137811287186862574365272121386697511664414180947580333736552262464664257869506286000336414109921117584733407572845188403196992574266965037256603029064788331930307942696375883613465463019900908653241942665172978278221559131670896804808703163301027801764814950565332282709439282901105747382763197976666288136886644279966587660349187480395513038886925144296853278115545377922690320942936217746991011684965613745022666207279287934705990294938631558219634943038648000207975143660138788781271975363734936127186129713895967269543892266177011829026030001322483475330332957329728884347366979534557993532261825326516569209117906866022856365644911497423183069160674724158347965446532343864043110762945762299164381698238834451288648238240309818648965224989884633628291272317602383668834334625703493043150613609801034074321557660901103877121721066044943803837914194219608852382325049313123821786261692598697651323625298952416054486015426797948711335413037208185372211859023067700532002729431713289721240104362362870112865735942774571656683369481059078502419166728400100476864781419763324516838639441945709248552806455633604249413508369952083782766270397126190995049394502127996851797537576208565094989306923028996548283993766829407238804349302157353175785616399331952744245846318138129112580340620973280048033493019060675728309850712699398221746712537487720256178593513416765125911534092651086958945438534062748533432699860719772820752431214638835140245290084277384494743398564789355609331752336004219194740249587910898850318167440875755460957601461049218341332839498895187366587613360310837830226523996875438548070076111975998129723596593851247595429176274125529179080487479245531354828335036246914110984408993625604478541946560057060399156688993758504149241220968954312772029421782143704458509720768610888508709840663692853877565352068665848219654935620540422489800796374154085575415464531274737081970720456720719704327587598018095786775343283261450318518904550959598513900734698463642867286605169311297331789443227805726271427242018072572520683898377567718210631394484425217175266386937530743985816396292186357631124107393364228064860691217599468987820020211350491831011007709138839989088893612660354711388926293651925967871344391055831887194921488245013652686652861537750088808850104441273807641464042444938052604328163139976607207268282368141902930773548933156180183426788206223551898923826159675698214307931670733195382467911238194076448051772054504529325453524176454293523672531414707954140395773000499981637653498258034715460482882500925665141697683721644492891008819263440189287520709306893694241775660652449577385244132255699710533193371063248178956785901967087422854477357502712583001062694878765037093204127353089630139356476119542931617458608147084972867669432767378800103448074718982293359211012983477324362123716985557670199443265285445947235570992758625590601152058998745118590716892722289959828859903225640183323748915770027167218772454272575158850570561400992289547804784998210988072320253361994838793503591269967074292713876288626746865683460589435930224835679696100690727195123545561203504629425283062272037727600061113862048257243770354207614303144718564696288109606492872356240246050846048602380051629853867891656124907352947759933981997710373442170012123054929619871214429074401891174737097934468251788385606326927672696259477703585427909392730393922030849173839878591786285229880610522410428617753862965322960092439652976181366733558849839361165207208275123696646606686063676037056823937933463455295041526032352430591615469324250358504591622586248828872031537223811403902558174882717576665244508830416563302313380543688748784691947829761877138497912281866876895771265186031010546816392999699896569948000874399279454455923056124642207757271346396910938382903451054589962219580069154312049171763062814364041075975848927890529782300663702777255821876452002720891559311375299025227901488964564214185107736501613342144697499251795326895309544629792248538157470131426020677990345554471159430619951384015098080927131429372158326396274986277233958823219736522224487089361009131396910371210910954214517286787211898915665479773255966339438749557899882835384430231631256283803783779701678793500216070615095727974469385052541365653805185563088612747502486340370093921927969202034580640593022383205166244603522264521806707686641585454037944616147109256073838094972034446902545538689625362053798776565228384796566429496670875654945082948994762632822325464282575655535243329698160472216717140917010885757414421431079580155679483659942809642017225867511786135990861626553237345131182029989552832631538518227128434008344375057259481969515643635790292581187308727019978651773356378364077827937886702470241895929819046908494549066775432283702477281275206700821288789771545460970054544427070912351549212165599599072145467365434331258106620044357592035462824811203467300059050443578465738734006065374744579858022845722319687184809299510545980473339603674658591850102963802884755951268125205725600226316371325071027040368132962843762794709343684320805854368659585828730104747939998159112159639571241813082242177457736362646159483648437375277084349823225253790064914925159909484439681160048156139117046272360268893241450599038021902332382445385583282227646255917961136965939110171575478814493864246609367805675497899221708157305592820349613373424846715159806295763861053711779990347657195916355437074719339737055331563729806230867742229157853915444448756287840595149968487454296757367838779662713275041124342870823014705825202581602980901361210610823719261936151596687659321185569811404085125503895289480592201173805149974615966012648783097474150696235202166662235524813094730931035608119684476625234481293196413711380929430942398638241678317440165471818579971319477602275824431502477188107143676808003475016067143242869146435924523938931668880722900855425850241853715379630675749807831952662820228168697475257509894766134381210943058559208258234645259854701985055991514320904359120553220136120187397139966615643987828052495437601908276023617654720033312312438053124616235124421152887843946899752681240405951288553948164962991768768624394749829870075692790975477480022993782752152171448653993926374474341614151887822447816205766500255059968456486096888890578157702847989665517252674463429098781934440385010575101251720633578307341825388790848870413500984514632250968625839371491544910918263640570839281256682712302830790019949451266024679120219604384974499674520799338836435948460812972889664973901589045367223704761822077320830822498936985093676216690870215681241516378236588336458689113561935912236950838587217221822426776105362657701421122252992431483572246782657035929812770883005577526347356840041251747445924883444534639510203028752249438076652734052801126874825564902204245735711700759688887169035362016798089994932235376530411166669953572729132977001452569246806284552120227195231265722173032004778055487407057794449966915215793546433607871180777562071913095807958529376529027591420872501028709496698457675589806799341288986837126471082392042619444221889833455137094465618527793201116509695111399915656622410758314792717569213723182887020670123535906599293750968934871747255351187510702510441141315216618429543735862654071286027804104370617636921132262027095844347403840642048077263869751382669645591843346779508829586658573674686466910173225589913674572629101532563702603948885239939030247510670390808128681612268416480239250199433514993609668198611534155117738514059325052797001364018913548082609301198773023631462008583539128795890827843951712876519794556207259970562592944023905883109171839930724373925396637888233018467356586907767351276805457959278235444763672998480919031829073990092804089691232194748746652714152025244014778966308405444550481790565264476861494445732804490963210648718195595784910566881459062834564296919843931329233435116887447998400867567042288611727252136091391183984763046451062641597242066682391160451136726095775376151823581598345451939683429957874725073282117569575568813960341407368615380600561967061999528904046060933681510968139668483243890838013536317531551605655253611918625439104798131175040907593073728903573534851206048447201379699019921693855417379344631511504873751556695765290822683658074554585316235886484583281645029585775402801777792615271696355365643211493708733669191203673369282662226698614839896382209504103378039363815477097670907370952082633515344360248786372482505846900531246419203194733904126519088648076137166223365171668952899175093521631931526484439364452548239708595615131396745597773109043998198910126543978271212328156889610121937383485365111649209852239228106809176384238228867750746565061991833892412227035724512973208574034755503725894654524641614867132486043575566727493906215353525485931655627562653697780576440266370502405798349228344474856046785243674425827650035191276948429899068907387338457508624004032252987202089021730781786982572613704992518695042788298249907744246626070244865317992268414725365431929424483381266856593921364477537137904759487630729556640112525610479427514709379510250222928904750941128438525020497236456230251089004140391448363132978006383711765939257155355635929416946162889003222743981611555516037361995819806285863701782721252962766809068191954549857758767468490976461056272939110163717703577422960346812234772830567047969588665568431196207835042526855391534449987227170845470145767955556699296528828728583329373524092299455547126450639406477695634435999257214735340953791001680820223643041230288895322462045196778615702950702414939301735005001613037144983702834978215723582199477071700063863059973644823077323815353444541623655308799003658135043865146789212917718927424320061557455999702502589948271423477952191880892580863441048183506924791202879312684792593726895272831619407998483976052906078345010596609446731165679084070736281284113130074656498476908331911646724354637550655669155054862745645797385871677505082159001002547894285647112251479770555095116326258854989955478427599143704442685761865401723279000954014402693999891338919655889699894340274361638231639091604513032133555464688001765753017774395008037084445378517656969617577526988812123364610417583257462048609433696907143064734959292900350021909741979080998956776163101145652076379815668457823210672506640459155991908832032859665540005025480758173440799877964591982432508295171761686938200110467166272065802213543965275776202255425981340396521194336004967060618194679501041563423905657057241539440076635504078790593628035731493485247490186505973959840677063919782158480785742231817033952578040988519226601980645518712488092374370120525154621561263911560555027480076909373709261995609598490149686385933745416151096153810545477658996804439918440337372970352942991863632588043742542951570126807724189064634029378643418037580523273943867939474484506275244056014671292681390625175608295265167619707639207783940148731599743684989182747697482800384026673898775192267407539554669416585121490754510912099569059538728158785968421447756096025634423032785229524496849686620043686412879651728637370851407004782674258209325954601025153811168582827928593416495945972153436585580838770644179770903325399323128514246190206689522227659993722007771493866284259748394794422357713005958687777978413283560783359421843002260329693117362711532931092465563187734453331878807576895730109670297158442857250148746024628242699482168298089196014529067871789250769796653171202196140002431750325736063931899574516307430804490089800846776326426872187527174167990710827685499487632137363587365986935297392558607647284664080938562950908300884030073574224704321106797298726989509093653370533499944877532983425417847509626535004431330435424384800359640630898127292460558962189777309928108955907409336822873073645888250922721282023430080645250291576170065250616657933090109410893350015408062962817941352968891428532086304371292480863728361990217248001189104460447607842717580374665904063778481388786837615352497568827469737872329680553234297401120405118878211823445694229279921730034484178803776094991865444997545572120897451411814955616189715341505154416105320441833494524148221222697865542661563244706616874114837523655243183937434055388167352716745604468370676478205832175269822585573158984122910066584393485141246190266995445717216047937366721133718739325855758081891172704325685664559507972269738721553370496258745360191447932725513552988696087334027640940186060393334332165443282248236113154435079980640406365587371059926545622276403764174133884531391378395740721424661372772192691420972589776334152337546003145796818264019324035315952612277225528734827258225834566741933874581982196766542251039732302278856905699635711378781315328059678613360098350844161498766652240061828450245366261430440166542009161633053480097682653729324472690732585205155654456550130676853924772765932475819177683306324120442037994739738668603460302283117073105320095101345011803327801688653628714946887693098941755705255181230173822411138936893745760527338499098382950418606166763937439324340380673187182370867472151208858177310993086009689305135560808617604544984302141575006187832011087592739364439724618913161533465057161402827588407884523488075360327447938454113510177370237794520186101691583838651494852966069995840197702730292371465399524876873641067267349059386986292934951886271834017406540055964576489231868520469669945570216786877342238783361054184394897122832357877842065358631866082482539676699392566254489815741605914933794088780213319436373332831614725224180071773172943267224741635419440882776874123291887799185430030270792668089215811417119133325897652971343911204055876157439162942511783730316339402462729172178619500232791708755480797929567590302002461218434758829407920605998516476472575067384149524773605735835151026150047988452760822699113985912184390317468966219360281174510970938798592858861094618117936549689753110690230984050011147507851841748108830135512002806872057368282365298025628704220297853990956304212055373852061121419224781074946293939457956192336683779093466304104890638151701442361686017248485390057115613534007701807110912405802511795797172757887639214430018914906494489639159512995017889405308067173741212183874149099848178194734527939724200301126738120004041102319150729684709272199087388360823673070821785974206561142601175298788819388168157961817307530090620624734277437584941451670744765294223074862184229427349866799498119085759844412392557049585083195679442117174560114542913654967794210191536952792014798313884097928538814941943821077334131220098490828107320301359935676475737340688865174291261252493631570441109084882057553966408651327835862248789683188510047525565769420787491805893245830014396832610567306414235331286228345483943619922396915836306643933795354179664607992174751065522788089634896798719378525237133803904435766386941411778476947205602907949038534895178271646900063216549700005173143747578091336594523253185061350362637358658086287188325799681361008134510231608194313691787544486711276520394414917847436019225174157392984382119034711812234305738628813370951985285564370623719939430123909499864983290877132403358024183896738352654941227119231012114677833007430354722636611836273893374849111968918210253255386047921702685930909930910069015368315950096676153785769889270362672369703660294391307906988042864416322375138906662982779668033759988027513502679932418115217337206670006251231623977939307609492470129957636321614769846603006418977165976881583450075160694502173309424484662976302476175203802965289292044617425964470813522414438188531534230365275333385200005065634073186109486066157845858949805942002830010543996214734773571106720324662343054684026770853993483722306475026625718975777710981398333225802844814270410576781840569521295049563361143716497084934916261412625000364654463645182510306899923667700244662653474709858429438101395902753564314534992383693265951893340624309092422957277357772111490071357545343041311348790017112623804072354818387472161425391564340121599515984817078868322322603758126179641946701418202530267033162068115579433660228890610953176760977400134474253841806217476253974798991433034047887161207061148062000762385284972716525817347754258572263896234611970839183886312954799172493704272519205570638446958986811955638679826710632799692790771976854093615345420729842386677404329095575761124432826635371804941392815991069262556753235775234809282147917224582424644802302867800529856740513554984312536887616257918836972707514035229799554658791274476038850082157601118534801835713737654161710536083693168150770363285346952356334109041629485779891634079118257758642422397571205166072471077617431199291929415804034315816859176257324355950797507218465625231457593507426746444808694379120003106330435177862229778163551598624038392907072017213025805309840028948419867264380180255266633931118558295877231450182815855645256939961421220142915126652752554034286593251241987499184974206597563661420198370637989522556135442092695623152586000473593189617853390978848293410076718311501144342257470393273316637643962733558827511236554579831914239022725295012424014148900934094802244285989428951908880138874913335260640372243399646630546059461744994227492742404681519044981324328022060716786576582926945422323548897065500622468911400931399278944753620033692903502978261059965105539031968486358613240833864599701604228945626847093197108306341183971336240001111197806680273785482262163772058382260646278164743421396920673922803858801985100609741524749007950288802273531298702065227208346817621190376465778663267657560461458699515163987419269612646396867716190475071770182829784412794717283277229974797577621419245228600510561053246382989333861151454048670447723946381542523575562550428199281765195459122500961924093600452795724909334847815710250104211717483758793781827854858081915524718029973349033484441368783824516687268301737188158476010184447559884272290653711679492353825040665738595323182519517446906171267427564182206166965383013821265167853354130858161479634798791972198540628451321378331664951734039337221485430246479158263141032064188718776992726919142565937359045501968839699078381732957303850493482885161967263518072764489594856449410453398225358753943704146260962679974511091971933679904407519580327865396778849980985148808473774146532391751303130767398094559093371458031676797719949487985901695045809785899397837879237255722086988290960623912280753840889023179110135599702439570792918892416786618419564754726335531565007785061767834347004537786098097753824696778136454123079401096883086549654286848597789427401537336419137265876090935669741122518182010497344607113067183848384189862844423634113438138268901761554837568264249283391859058721375629408778837778961518333648795771878613957094069399429057262439894583556001634012410807069427713016016391260222138752254322746779655121706144845328518963682631170930737464692296413028441890219538151646704335284214076172699099054473863366248786460917861232522741409202286297132020169847991225766178150688948099363223906278863171602633484841759206807367601597953377427601745945514906561318555232795791438454180593014044103748309103929033144986269708497178912560808768801751055712625377275458365167139068604168170089931559257379980831069435390929649043134095222186387473703993622123568394601947063264785382689289928527973054422161487870915263328827378317511104918080130690154238983137587782717827549401662963449755006120744185203685472819267596803874674807445234599805272009314162202829944317655399168239695008296559005791216841630716280332513218452093881664322993973630163858836950631835227825989964986077224928902702726974997076072140029664585147054450622507165807975212123548601125106944228772917145346570522752970281594311784242760189189709837803373199799585933500042060862223331718809263210875180587328386166188157634931618230622172779517781693780406059628702727815731891032930392447851639838974108377038353155886267555889379040553276701127392129227403759077163313691905660566229385668711660019893254623092909808668470342496211689211502027879068250471353742575324280446499305843703596624440058223511575030279465108086049106158541778161446479423908326156242708672066117121638869292340740880433958492815323908662169576751739117951896994356776904128884865454795181554430785820778010659840664865402857075868638415792249660529854603426316212644522363208933521957743522277158930846154813414163395874789174846525507119990749032762550264397714592649719049384942430267291785450464510627004623311305007492853850371483333198762824996221797748568737179387991557674050357858952527535279879735124500530146635819062505046998595924041309269828421461561704235655178105539025133874941332759876938712650003409321497857135623770711701537803176640846329755963239107368254990135677144480523500332791375721609865090228837549955428407657118743604662762839774135792943531259154174418938380235004619542508443075429366455365353577721330180803299507705268070861505491156552598016374783861796518785388753613258391406760330057098170942703934300782079248742040721532008195949841171289042345917762609869101099776319868560446976740109035294296543483985963500300778803012542544884470837448956595211130678793475887324697206400276644471343570039103220911292167143613790740781208982428942583380449748238948577125478489020627697813791202265959072702642208680489380375110004660416613357965414468405356815204416651078981563491346525389783164674115809896999730379780141827535819472094443968513590357161590335085206778277439282938392315139164382340894394025097942779467647284409547869576501545007977192097560215042428252083167977209276023318765477769700390407576624671302009895200806864606649736850856879957658308641106225017157858575302576892874371581615348846677216356842567506792470049473619477223608743557460589694971789908504216651817091927155225738642245126259346329261342316651362191167634365180579815043040188374866030559129531909032892088945261608606078058860851428059532684924182567020758445912438168436692512563902474981430913369048395744113085623164567717424400949114659832969884483858365128510932344485611626252417386199440964288887594129166249462592811362364305662144527510812201308087279447567113489466741417734992884132973992060952808611339686323379082550112899178840653014559929429543420059495722632750109283475582250557912772826882295147899135472427408876115019517961518603412578770027274792088722881643042975783006921265512447350939720779562829492681646370582223061340651304698335465300472051776286363451056803115240684296085921657736675489713798764810896331001688854308372076776427176073636038034153479368060387534869653350091929379031437030106540677967627586937184020290508991111747705155390994257512921199282747311314400080118100668049121858297964942948277478976748983522518971672857486369979031171600539592757972822430938786279366508301134993433624397155923230524211720837439306312490863815437839564161773287008339071517674080451442213440204068347071003593466229558727737684523240992103062880479052726773349222653480287919690572891380031777451323433899706892695024424186106110743058556065679021751678954813355573603266426862795131879033945417686766009565205580635808148704786663367010296334940611472767614014409817336902584254389109087287631256513893578653756414732929501368911194951497932042833836198023039156783640625349684490660657337540144461932005980464791796681528454329089748331850638001511671016356837518051603500013642021572770915502434979136825736208552243118688845442709697575818722523985841507575451589102142876346964656529615788040395254999844061898719997105485990814145911870517603208806018881470632372098245967302807897241080811445886257596475543758852544227635042000329681526455588160978841974779005318019048766355078630646360883208791396510309734081178581773179806547994043897923533705977748679042517045338305641367055554956614909435091265079524679016355509968569355282777618900778336149354400811238629941214236896527304444490968409232741911904645484678705198954592213451045690183352330649980306836211125056339404750840511899059226575741736929689793408493937618750133702561320545801520698076780886290794948164420525166752093465034773324802122715658603247644191839788124159434407642750163087901212301525543805969335516961235870435955104439545069942766986276458170240543997040700267331865954022107394419102008214350899073461400504664503383488228429437568297773356610013667752303031179096938957557782549000867921814342869158988961099227303100824205680891839310799457177029513297537953670344271424778907768797463772861161935381861216243714432967860764918624719202177115772527934274232459798964903784631375380318562415497006196136980630812206400004580880806826666918835495122569072987465146155867171110809467823082472489776617828685168642433356664112442377887077746461789835040984420713237241932231943196116414007473990209925666251051485714302910069764386539486464777356334849280290172257049838471452603708141629114812835593435027678392667944204559712571247392570362727107828869726634808580223629085458714244131216168376328534824588224755314157901135607525449559076348378850336931400844605772265819168824284640774415516822336415057255281740386151652295803072876261189029065918726179526812816020350023049278988757650228162079941777981560611450045308628580873325421002735991925154937644681823132347705345171675786535459159859805312324497594218686602451375695553768316084707214719443790507568892578262299746008204160141936135504997414511194583889267402372647560838543021556359546596171252421807206471680550617395125672070726277660727260796975130665537773254915927071531630374847628149254835688182477617778186275953114860656796490451815788627579682544276744730688419483580797618795752374889971422763018508092599930539466449762700649542944169950250820081809518718285634832288429309506401837848258137101123726137883919027945405042974769175103427020241379122057600321826422703295951846461778052934502261838787737032127369936283390667452422111985081561094766268762317792046232155009225227401973909417768351672668135579557504500414139196943109295357197021468691462625053660348619876015542954990443409957780627718032159852972873825655590807293688130751699106639216729846307211036430987367451183592777245267869476697140847179649154138649069296041149807940806649597907355465439693438095893142075713608418975468037609485613587467594062841409456318472659171186067764371320256003841234457560628581820646695829570452210737232822240841613594474038314833946709698395407708494117664324534175178353538173534337508611798535001192052881602110124380762522506022237330770795279276990179744336108760337745624332150909054461126396213434128986310306087115923639472768287235365511078014258156696097080984392932334929196014120652888327983673577504947286286294827088072340188593413871031710468457753289011011987228824068984384423961208417765513177794246899790835857844728530891459624517273243845303801232700908707701409570911752624095733199432980509578340240891917794406805451859183804668664300679425005189901853692313016278146180883663510940211527780708742801844802196771496628410530611333353140119338907565777871167688740629831322978706125346478090197760294418471985489005618318486495890745155168664684231614122353411901962857597311326405731453662384376526307699329442405453925925248981873922801001521716546725625671515023156313681209108923691186695876799706869279972055901150169930462217129350785174326784994764838540841288671845993737020833298134263545312660531080614046710915411188432140339040536413586272734652620632166942426776075869921196233865832580609630804201241986151562320087419771406387047392556860356355540963912123661896699612854931291949770342712011243442521047984723233772575392496483623239525486174043694099120296740966228981761764009096215499433507996937634110175144667752739529910601648226354708190385338018103954473131896092436129036959848081301058364830316995463922107290588834034093930236940190597178195339114292826623329827807664091957459265812491955166238360361341499548424795170878355437620081123835001019284366536369013208646686865049696533805778289238105166141435578340342448848527598294415685077299243083394913038875754343604710554813833252762904829749048973987857701905464079890304551728727002555617400373985540202346951069551785885259668062474627727863200840490338784949341862152346735768463338749920880144271560750091312820310838446980203808210678344083840002382551705309443579464204918790080175778577405343804540520028268216591990605606903677944615688532768877438152102306693477972578388477084540205937090599860208930451631170914387257696329775131460771404725890044647664087864363274349853635391946173809244075028862264439749781986812478989987038318500559044076085520394819966899653712001484341528041626848863904911875745713948913158682509863775396192828889157587988423281592694835105244043519510418845307141087742098492638637027113555602064718478653467410752213701131809902316108526994491378541879777975487312217562366165558043836556021812770134105897329230081338533795646403292548998461084270616872191804682574569091701981569193574823719701409363587758327784047674329636390873974556509870474468309510016826687110851005675636989283366360405820031903789905231530253689128239679780894488337001649697354904353518347857602759368926800260739007859547560048666566688495234192567794545019606021462172559764259697396349915898844503478374546570222180078178341728925736248631886722526573216918921013322080515049633400062887427239305736888637925235452955505083986116748940073227656662299567473288896672182766229289265562291657791496204950783409888731262813132592703946406268904079240403977843786471439731929629163402561301892023150645536871396909187052001503897740976176327846619220531213693110282058256771926134826081087151958813889128613118113588304088718988147758522364998072113601722625574868199795178693090146255722709447220463412799141324260923736017982410174794780144300332863178133231413927793397334621317224164735536884213697609989891313229657918189245295354246967536473648344287959415727651864275876818171645569265265426362114513923045401697195468705692460679222382343892237046421490724934630770675800449957386817934240005391684681288240061786994518282119446770714434684950094242558961949338843848626111859618077840414681982637172441463365403593761477227781660101175466378988895861665078686516396452852763558563788209351263954068784590840482422214050814082140223127023125615045603191879154518281834246482669299800305288085787517499338875623037180240319920423357114113920668939072342315635942253445135559669176007388616461600300280496285169087240850110387877543536678489889039691722115248271420208652133592854575615212507090552668980655296140508827483862499146378411069233469178608276616103604440577660322383548499248773769558798705066401681184431667934805538771890000814465495364556678744781461911742020515586861614207010931977700629041877049490769187058502987584115936129948065371530507319271779124331692922123810226988994867787900187675814752316675467840345119166015410964006567471175106563226584524318825908488614189592119874253545720426148018300349886792066875164670572090790718798712467904160953764946532588753206222059720318360336691634079151378345633294975301647280385494500338421535513395492546473149787334585909327092134390662197325112985928672251368472401817873004978679348761990279830300946550310278940151807148999245163250088217253609823896355809460983347427242312016403054044306348196471177608490088275892503073362263548787969521207901802041052516420138499323385962345485009760096399827589678968380148247871764217189534226075303724236330599992388949675898041386823964360570071132947604646195202077546046045254494392033386047161735968191374547284674834170374611332063677295947320445811685573893669814580360532602744202276518282305474891752804818937251552935757564563071788606823418091255037152534218066848779749074246405363565951108750058116650245714830494270915742187911599349782737993004016351229143616639227076255928012759781332752035685191044358361137747215558324974093042555291286570033448619392245485733018282431636164321686025874893340112517596307308506225624517065720051229697497074546050276082150886159215621379130940228868498787313872313329754880481294466418764472614951716101379869477031201350596523952198854519322791346715764214631346966842856101992826973220017334748560707272033517565949007800068454215149957125507095107148516311650981773331949998067155799185109273627985528850419592173932291909061109832360839364264770866540550391937188929369384473785168700926925084434655443374194137906954322053469771313591086969568963410135773495593008968303210440206518776519090266730093415906644708125667970072424043639329660380245167424665299147276452940290434887716278533834850441678124960600570525856372539679653920674181141893452248728742960885627233108383802246047332124736511838368677291966964367722247388346527737551536714261983150790769450253329891444298146777666834636126945092151807835257386656410672589328850741806790552277536870277356553174025732831755417999496615758996317303040246145083343660955608599170896816488984216631467376639671740422535832541000021121483449695069196059122316597813464559068771072043644519677639406900748734904646469596004525287691615884029153274941419258034036759324213315624918886034185046643579484628692894309504268818301596076439449330595422156255740696202842763212929643999972915444381169262227174878061702996863722912497940032631527922315702482027608443950836941033975922257182428674283867796735282094285433020202327645907577720049272031054882458721788484960590806715400107791280105448458100940059645333883848816978892619707870654963526549474385503112597753868162107778175144926148602636309573556457285890786176807520690228995433618828466126531304414158288474330757567112196893411044522447167048571408872439174520769792812680489224451277956953278792094281994029013247138924337161835283513645862875851347394459724181611983148146351199909862842686047824111148473161238268958725638363816432899066577317405479271390268670139862668768657510108702643679305862372801960112878167879981975971819462654025851719768127356142101697771522574911924314595533015408490218558726350862125163876936854575931560047687170318265881271242334705997582799750650009830763381257027571825298982761615561094366008971186578177057477740191742981652795792342341094666776566388129061297221125054612218039192151572848940659033969624949825924238190026235821314567135964885738750035658568172354576679488026973862415703184780986248792147139642631214534738009263183245624687099234196736128321691718577341365687425399932526129328674053699731857510990371438123697023854021511889362597588989968915610934116554881573142470887628784917134013535196742910503860307770140195605474976167713165402355984662968898230655538319127288065202218401491233622525380324840331838715080412817649984819582971167947909700552209718799825890052469377016472618166731968912003696157793605936558180261175403921777594076179500740647363861134367596873214561047099979239557313099954844397652548452573317472955317340537548028233125976843693988322950077663523105874986925842443177523055842889110553346974939557253497724962366584774350518311740247964808597603892485112457642347103560712002713696319136689655599205780645283736332464356846053403064637496476447547757595104479275198737257653412086074616590673704107824458640103276772660152552014500337582807956952047144300182634411486426849124076116685988060470445159918616312442010276490740530102436536838509922475846961810142315699223208130202789753160939667959791582181849470448490821087028797806745657270584826371360059602735437238854438817800912479598521613147627599869898554756066668115321771957605552237632628330795416590477818881518277575055000169776715840117958958447142468797441444423743915992474469342853870203643783406173922988849727993308730742550651630438159382671605807064207843477783277983810416602862592286787641574473707950270087512823608310621840003224080231541144249811398551746432974810258828313336500660758256074427789557215836731401454597987264301886579368553280990603861307966110968671984532686697362646740512217925771347447427967127102867683829686877928788677764880173503476672615270693383970507528003659594113383053531829868387923283686785671596778193720878498876873277566700777058359318135593579257421442880878953647372091396633159594855180679619401779331086471606849984188260531171355631767145391793475434377647230818605754001260313918486348612790964630001468793942498944965729406745298511769974637054103300364103377119200508548360657961794140386636989646951723212950441948667745557427299702731347073780946940495982831883415820118582348825537354724027096299540898048442828711666234493034493726885495523948777537541867861544162071417499203836208655830178347383000093580867102893171693769440832819698550588283094438961881572830896088180058874257668303204103667558154197739777964636507450797888428424167307740363212413904030351955832141865943235097951417571011863553156146348639444135388783033404533589561694174248262521340719076445886650349988568083931781293765569342491490292402102086794045981512769154848411328180368309257070739813801176568007885925854790398003671459528049480329445380164130847516304837815335066825041196101594541840934646183804472911048889471847991527377401073565883609244954251994235120732533892092580034934978751281669561887453452504117796067555114458255552984017848093043721857669974607821459643873867810214484101683650888887610940393094141181577499946503189106078906360961522121080661341740903675384123056160843097968131726448521572874078485664490633275497360627956422405462720316536841207549156601268720529073286591287614760685956005006003344209672938544446623315310809250161302648254281587619037189557839387504967804284096249675641505531784631466788620446787909036194141278371446112107405381835825579640723372387193882788692020711990423936449410161164650661955022752213253874244763653351045053475713041380177999127890138978252595718237436081290630216966133689212732530873388274167723458236532664408211993936986187574790837595666881852250562648707546287241754794612638631736116465176431111848790887029592475964451043698151318661498491000937512179317031726691064934842849704165696255392517079769570592788399664906157399918841661438448199100936531957647027206874528790656010824478963297112880222240933467113923388563359573963128010571892252903410846761830044404998923555550879003587908262724125717251231807419047721733319048966115051456659432825238036744084792370306539233223992306412604379246972134631103256936395001436427886343444443204770317018684817395004092078992694425523182311386206239772413927948994782494923149864125196735362427981076429500845117505086288831492369498193132731329175101912143830840628187984533270683651404856955136201123069037094114849390689074779910725096503360090915122646585963989480615104641756098800329187817651167202779371420613683222726063256874654146337581179662580239655945510731851149971137543707677922036236808276085928265885399117023843432551670885187181550438989992843068591238397575641251130290687106138433736856514283702520664007078514878928926163695475763864774247455855592152067135843079725649150006621878988612375615212722465670815506080174258684085475681383981747819560196526852397241548636196342422906093854385623104570444656664753495715799681359004991493726222676607164913826867808194628243436530377275018464129745504051825069092763170324103212109449845309593206840104095358221168107980653294935871700868989262438286657446215784725123778349470477767754644745906810673036268831347423273891237486363444960852461730701135331187257527449835980095799708036364261924194404496353982709601809353760709714818715520099457683932718649383678918203076001352554201453691661706592490457782089296221157201933869079950874347326566469069896216149468826691073492313760413899417126096023178402639852909262096503994043757370574444547057737438458536979622487777890670029444707753051740051622840608991101605632408745136846309463964915998800102355691349466735354372154792435095299917610835788193748140451653999289976866437314301938360054408072388885780407470335904572225512213079208838538317459970805512853893212793242052254909885999662865025816033149701262258446901690555498969093530752980548537147415743515777610755104677007709938229393579272073360302659950492936117646828679604920453064865197150821448880574017752180737682337231958892700330678823199040112857329040638198260160652763587071822290213248126849624939988464870017459883796380974907242853236053353002969641903741145382424930601146420189508566589117242148326009372569527573071974335202416072645307716171073985299103486505009042043403017367533282616453976168048585224899367197313061303145864191227515839014527744538802695380685981394900069013852400960014996294946895751793066108169831281404197924737078720274642418821149725393280469176284683167730037328485509279589678890575892533487286386417728508060667160126056344062035135498098357009785857064673594631336412915153028706874274535564547137950956193632749492453755247752460731946041732094019722520335306625017471769888766829094328664479392662586812153694511977468953882015010763163919013247809393789698524243461496401613429216497764944219802609071947485856961420692746564207907299409106102281273944074405603395620644488508596471623321705386758564031645955920611985416555809472754831803147951661006314172854719997961834004177407550990001990894894854151731158277608317355225123278035151866870694648351719988985770459483226988702140670066540294378515657213656389661965138915439630085016104313072158849703409526321998792014047830283883241113590254081473897163901967753258375883414196196262787168130374335493929051824031469892153370092015795174780528513223870907211103393809350399980553883442485526167873482048269358307370272407725925508987658694969934565567338873632791702818892150045819148164975013566783200440019595860431001768194488343634105424543593813275441287322097174092275578499934467756903208238509455432052048908032328271658870802088316894745792333536832898971557005905871216177870782778298482498449670006751830924274165825110248872443721114141285956517779093539571443635250417980799088180420189476725977850884309417635332951006271482955726987317304395357279772157971784824122939340391440088886422360776989274030341538975002110538388503185858424437041847747033198216318417634261983126515193412373589052481826862526706717245291883723078921957019510010575833341782067219517857271415380204910589326414675901892232090779012976173298848796143951961372675439538818207207410506276979063275477770079707848589767051063638939328233182371566588777547373048451233830598472815351482296051963588359905055140626241126492561470277491264523670003528769147048766799641294727401899214171302619838052495205407862499529536368311534735826739934513406225875152337407443112971042904572035205677319677160164792284346790784806171591632567934964016536455112994482372378131378343191150870024997702761917267095208648081664860662167400201838403444830819165508332121615608421869007090966918220545899438357365759121692180775672341383697885393131676257810179979164952673591192086071946072142901474672046038804175169267524855818038606128344599580859502617666072776976305504886344231994964545319459206980597937534492204330810332406525645739121133978922819179736887307425099526677231296836959632535062733942058924556169039774166675237789773308947307794206946110932382705623810005488114546027723555553795016788118849030602260964048464994937342005524227076364010507510822391879207434677554830975925224180439424414739982417937694697567194112163152359007355171330462694068102944503298001693892702084434564608209379824444721986456895747596787356883157598061929102615651893534538159035142772583354577110944413880349468315989832700998786184250140434941086230968779439106467098671929988331149153037148887519479162763408681283843127933820126902640695089695239355706069942267568423933018710954127112849808967577727437567688376225162652752949057431002365108498599970852505742301596890682335740278094959657420874004641435097056083275445732147676404740584186669921518966722499769271805777503763401835286613474101899927175084752103784080840532224845530987816669985123015822478788902019757016972684617084310469692616709716519196260875499650232035756095550238107338666321257270916032596100836315362954042570253503503901497063239205131365728468585676412886296538520442209252266035784087363958659520782697259600240948137928527323012566404928415421967360229558260894054417518639599832962813799077315350888174781519897628504367040162878376183430448772939025583201804592073012470119714476305262053271948389328012258312754097501088918757033260097086076514929580572069192827020598234782025553939856958243534630461343100983879912789018151223760971685962380098254950787928483332231897599704195026744834521914265611876552354658454880057346397429558517039462783861302153914191274982199382959194490629452536483415406999505411979259789482073016081361877401997207880590591207773621297968581808672561454229945827534439658678108384444616852196085063979951801185800656933176902840271573235885434112049707167035819174783031663315472505970488471473151113414124255040204230853869968282433499338316640296497522321134727733184765459518735017244358065903990893754563003583074041887671845486200283566901356272585385516764061977081220849558861867469550665186372189276136016605021728745025861313886786473215737293356605467095897881635301297252161897828846836635336799159814518682414879075909046611615049255960555601599383293331131300148255575894548031376330762239772964238667061437992727951050461913827752991762838540752530227518953735214392473396053399361644902853932974614784586558748694009765639144873299708117021609051618764404759984535209675650187158171201508792969441301209475877859477594851447735182567404283382180635965170505928010227842610232395681140857139291886531843392464345990481955452314006286505173722964152055302655802943223373709629436033142850841977757052554888181010628843852560575226718805322538135689576315407477471484339866995657420059234031794638713135732286847321501625988245001093809808700030191525986664485851198409273358618818232020241945039115715582295415692217252216681726153673867645487658107442052450186408942886863174186173428628106139512909247733582316984462338095625080028143292889604980268157703063063757784869306713920364700253698948151227300787482040895484072895175242498560551320117831200842570173961833044619830374330216424612521125373914739222110534426300484236438322524293496375138233874738374870667966172972447042986225344125179587279143148868680710958573633029914900079584602983800446929238348560680001797891384355222103289571671197502830041730682578941937975520564525516419082269774927499611783851254966922934280573531744076262043984270063414421680847090181847742811750840427028922632597509031659914545568128155742769053745208485395201673547862216729290690334200011793611074290607564614871838800504514217970006882734344843129887860298156092438731669758430080617696480422427450011351766671530134959679588728795641337355855933059640077071972881247513425795600458981237006853677549226888989956682070643852628935991850967146403240375150767534585640852410703141726176664543594088150990612130723879120557438784583038378738693674016215006082362793045365373630749006557543502001541441779669129155219129041860632817435916156011408426282450577762053514780745130427735519539093628457474630167360920279882026318652091492834385974136232844542425602880351251823870878028632845977450510582856219254970079315162967444222827500547826508536362805310534794502486188250158930816664695863080382465396204011727032948672250232333835949672571765742900639964520287306420933102567129543026625064559857004654421999901503438266819497383747758044212963821127424332383332435231530095045393129520324320317800714539094008521645744474792595948546201699759288242840936010093808372036566173077405088410829065276055413695274128178159008269632951873097060838384879579238991932067591006312699413076783746475638257435676131669059314189541024300700583750860247007875524736694391434388800585221806011221305874216485190299302658926840391386147035235382263446550459105090420285206395815340169481992721332892092063537067580233090105708905198953486905802722700764050664573446699245446399678490799364876313356895538729397886388987847056073566743999987400753080462663216726388911113842900606852057602780895876797865722613617039879316151014148304982191624413546089392230617779365000830544449231572781537143066845376849327972543206019068546411586634645890773492433164082629458606943524441588455757728587204629412978576146603598478452426710031777443422501264413264403226583707612594160733562812862357389713986002714521001141174702842743590497595053837936996660751112606526352718215388979713693484201893473520786769068678611043019536383380192843836831790079968503253794880164079250484506311331050706974106066434751616748346343959740967243162945757856725405395201670133016963898726571404336545551089071509046953313403176636906713869315742048090006688776941098018194671023279574142264629472735158157422169633154930158707063329216285340616845361882839152167259552009478445096508447614043964132086105135769115122446816873661933122783686421906701180682320955093817733919840587017362105738637028237784077303746313800720498778365590472358316243290263420512909117040687042359966800109573704306259285236386767170112727588773867905005110687542364356619044287504175108458082491993516295825063729174432103037411441201993086601645215399558000679663587301464375841037594802490685370336166081415977279127892503204463160555664406865521804831310804950499217679711247180384234241425201721471051476700982776110842288588559347587796179762750101015704648471818949593553114359009572741394992212093748243613285370207194111703074833767136369419372980212486096843283332581788212078007378920588014603604097978856848327048812175834000836361927062824271952233593246222240426662588187126129247706470745782867557859073524067174498668760893113874369467552441851246072812905515423122720284387921107406130049055763689004919704093634694036311494486976763921706837653116583173866917371244273561972186873827503020999518975250652206102627784869679813787315921488130830221072771671953951371080634704568508632163073603024753080716628300549920634315028121380823357530862910321162325432545381066377333346982249757188395897025946326645814061081277357990562848730590349406351696869952825269456603366682941921514623432269181901329405285055048620794554244159394866649109075046663606314864476729820983389935121425853087706240260753363805868904171887044447676744748414010663951222254550532897769502793620892655785787241420917374425652434517686789791185860103699867157463583480834828184632768477171961115269605030496779853016044726940598850579792938576620120533334423604722690765081242616108598966217970859216316849008014938376971270179783547580816956596258283818683786059802677881835572815392924257170765007655638470889804293853948023843901961906678518210715253860610594206781384478998092578109981973412795328324206529812679162497175137574758074645820295410888752245460595877166232098138402784669785321413806492721174872952255136979317401922717816268544063164904254756008020688661114708144185163195564557576293016647391241116408772867207942397066850670404455536116772142447246130827682372714582180321374200397467579463112001801622645746581282308262766624591411971608714033038237999940520913132727777513812668721376109433583395821622857043040124519516685342798675087716194289338500224326866167789833239580508548020557979178754657564627629083674093511683431537907253438331784578156080827175903194124123568055354412372965482738526345438224748016167481069796900144242171532685472179006401153085640735238420898655426947705119773580803931484448268288871146096669439847590841090545066208026763353824637773687823376840659617033552565864465471425772519647887896775874645751394706011241889284841107265604132662345537743468074473187299576642849793346085206592563124454343927696159932888918976057424168800012297427202468840702065959354941300796665480591159927317243595183041970928366577975963713000445814954898235467011232111608393751161906049049913674229486913487063849958032853031723791628769873470667391974012383708316402714012584245573116476806353449034196980868056027064439401174891783253434109782811404382879463603006395043661614023998900700934916502438475555522241120626109490596729176683223260179824861342177438847560864577899507263234051275604248129479321879598907448036338404697579839956582013713716902171027933629406341254180850518309168201274871589687511105065188928400619918616125783362645878679063321881504118337118865304185769418521346089488394139088293656234903678186624791520393201191854476488900226483455401992079744432275369318097830041910460402178721981237550796465879812628244789244923550447159682178715843048193397546469895654751269043404226586882754051926502998195439205570820816238031682904338357258881485204860647919400686158474658300996431114822655934671015532978741508933934073014603055385027258167687606401346760643196481148318517939949653033477108260798929790887129211624049796217306563783791463990742942220103087257253731057360603139443616402008504329624725648121385387271555310380937649284727044205991681055514475584887245450668696479157753843090174311608787348184579532705256314156711891363441444165964774393138710252331202606709754263266060712240315394956952494985753155110841513915038735684572077538827949228668918001786407359122859952169842949196907801174260389619401884781525500587222617655775946922528568739146698600586778121372392611120595086912785759950420465611349961046202943600054043361586500663073543591768141844965662507913170587536298224519421413630618281248118806196783472239745168802686475978599283889194595626973944380322653666734701122341012285612721240648187050135150530503405934022055890960575118206266650019274642789794270188886054400054391322683752289698052524101769666954928359110009346524723522752471317857281700497603347450845055846724938936580159678426400244210811746985030755794580830161808167988868341845261206992036793011679576053854023655897213544836541537606665794549812550766399373069814157142532674579818593841705819939201404713037036746615196488760153458171308214173432222564909322029840976096560580324093546673342818153608371976287836781333714660574695727358946368312629951449486663866466026332327891964948807886721927416945808283719722915026428895178121150371188681993242309954068329483070716532583500883346972852034850697404092223386911176015937968511027679202348011128088067208018456166366854471228975137534073987207552897386607861326972688874321350168359302314303535144525399341828608723799419431833223793160629453713777838576339253138163030208764351021853411929042205508052739519673265434493991922335526075328485092599502785950230229376970810915776723136345928025300470657131260726218701328402479839584773139363475926626851337658335980875894645081543102532807506604549338893914892984486680862124283124157301132537265129057059748507206024455079345963379594557570166279843707735542322763195199226770131845492023751131991093731375329975334861010434062493748787436167754384186245917506306998140451892250286695927291433118288653286308020686669505060641592499142494291956149055185362029643764669940043518061642065206427984218578147143878676669998045309786560180647017891542803487607246909221119983116840008693024862743081681990976280589005349060673585377100444254644684746605988737649091725149182095978285768640160276369871129918133111295224251773693299595450404223167983746258125037365172917267809026647472517440183176891936434968693680878631041233961679982400532270059375818568136692811581436234268267146318002156221896156980908351678634402516554589223346490611738305226391750875583261192194665828510246605681701848668447028508035670048866251744832448396156594311909872418557407012936651353581317946480763386706759844360220908014872501946938909342295364080029928423440770391171188194352670844489235976712421347997554425717811391456601710504153278593343389007318177346227307506164527469054725249445617794498353894486065314554583497674497628462215789763256395624341858778183923405720432963984443792352781369669167634530543894508011705180483477418186272520804491323618874662627893203842784991198020001576612885160666357691940863715436897056965453474781433966274329486806082349007321478722208816263551389785597255612173777817354187108818350595925097854941093203179332140006796156035915705886570531120072758979528453805790053012716072611389886374041405814689543540554607134204009302959532650009691065690941471939724330236475290497640988457454670559714433214226458955050008481161012044451979908454972500813635801139272934709773316861709337402810769322179604849924759306928393400476261832492181958659663366146720030800180831068119907534517429758118444271199338604106370699279257541020854799185328048468278185294703130053202368507791902156718686312200955528645722130204839806530422085821250121800433556814883898456215174612922569998352514734174804711459400057986672866668155451843313959609759653456738860286353918383313003016515211621988611134988077573161769871386966189707772111333553913453123667767625591111605214238434684850886366328232717772226099656567613623040332984192872457913141348965185091802431410664842341829685844319441058748993175019641430495584238783911034268084233078025553455949062596101624802808868497210837272870338263461887939042908930923121043283971430237444630243924456406180995568949401582335606010530569761415484972909065928334630543735401087300228018772905434459035450156705180687655620985130956387759529616145617832890900884625783010263501931777364415670151599600388511000180536804823063498475651248335292780776080334529249875005524115698142994635510725770473546748566323130683332106615652710956714374903064323565962896969423167528439460551341051707002333133020999849191457324628025945354921917042838317893142583489556819922561459131801807071087709852278191760630516659395743814795810429212423841098722396200105929101167801064024377712204526749689494499562433618237390718431826841879932677093566570791909352143816896140962429972648899951268311958395474391236472708428107054973621445828041700241952498764800187184068562288708289614386703713934428014057066276421559713286434191114807487993897450314870954940036280211939340603139295295111242798479799572872350933200894111095974755066931932442616291436602371692007233499845567223252817247257432920755034117417634756857664724903354532627451555144330740363549332493216554605195976747824487574234152405830989292711384763751055929192089833460855307698785824657544598793507238826602914541027874856090367116552656699825679208257513013816230457846203431023471870810887811646860031369453087455516282052128404788351539305872790155742314411508821074768719584086160251930414973084410926301845864635380048887194198442209460566053692112566483284033239241945292784968747476722699671491548869256207824950786789928478546927760805775231540360933049544733029091954189719764343147423264657174639160415314237111449715064772313611425458931363282806591474101427124009270627305993138501075594441219524458364903092691229696307271526747564612842782361719363780135145724797785345748111440473312273802224046169610240831726331688854977269370191003276837702338284437282974213006341461676557231207427915921598452103338544351771479344171303014431822268859475584064390340216383473137417032741316480802380355992583225741916830152438413604631390566632387025098367240293737191818737122147890509018314340517463665811320068504359494948071745002071894507548181914423930707501683298020210362351522585020348590252343225334207662615424307613814476125449744259158031461369935150343576348438848605172080530386486177394120349016389331333394223526142497081425119086667960904097693603873169858172014006508098283839697922694233824387412945722946578960029311650842326815046390679633913581893063327227752250950529844057914952239738576635482536774723030457019037617094377424206368300070993224554987975762765177014189412105739082758116225247725132751922391921325047980101095129939126516424436995641293864063015067781507555604899905348313257859560029130602076603837047547196346943558770509043865454105768959640463788280335096981482253561022837831707474600693439497283450405742522347448896055821654162303155200116504638331281530047377609549166915347207467253560154974964983704443517050572921901334375604395240464876512168297201852514601143074058972025390862798927234499203380892830612496784486534577328070776287558974203685153569697744748328453938406154149296368709646949713912349209264108042809024047198223536605181423003609896060250198091424265164649278428647644951241695077809307500110459723014038526777443028598096251072826775738036537979036777993579493122847077251628146342773630132897919355437256490505313125910758210441198668208078898315228342112960273235385597794048224314419733284979680537744758759607405721528241400306526001086766369224736198479107346779988754692019072250439053655847205796008092419251497490641548736632257033477298009010641255305122715072245091340287758517127260136936475850662992459416696086770323955664292602090342581879834440584509490895238273636528532750584985681932056329247037836376320329157438367580128275297095824163977748729345053805191412174588520794239164410608055798219289344588782955466423056824364749741538501861614831490893175816366335973801639314043472576228252196933730724283601714418775500750310045881445456790017047746627679928961192495786491697743401407082504170633223178827298749659716777560851534718498269140922612833310804148040605429874235870181525778611428145399837773647508105250894430767344313880120366115904828943139027967189782098042105978122029512028112831026288597166744984101745137844653058753220086154779660945487570601615513604479626245876912227562543660322663948850851136923387033253852686846999090488073706823442730133490228670298413072733005822553874995862820427745262682571745175672853840778260559988102733723651473018812885735127636570592654023786444430409920168134943319980543153420974056233724186185278653311798719468239820898054810648319035821132651181973918201968752360326449739478888153118794859868966908192929939133862061542213394945809322719464791024208744532637782416617740260546679388041293557770074533309895617022011050400645443433204950076901487004044939981744417129801279036028178749712821605882510691427353598706912223263166403676731811897549443613476165504331314268777885099543376615277472019926937639614314450141180481604016673852615102583541248713885920745085228201283957071289606117742448646266581595603765093880676971411939127288607497273204440185764064437565102709633218995788386835090915593651410963253472537872032416995470297518298303774261234086170338431743275403734426372692650349682527935043881140770486881072801349250708040450763233287532605617869343994695312270290128324094116782866115002457394859596814417024045940167153504526255450183403568333975178376419169556281687411595155162346969201745223799184893548811856346066518778713149315714022517571953683183550449507881494355043734444495323195237322674046862777256454280506376951326476545683632166740162233426459461071086687009298502555198625340746758887232916034962776283202338153481349025718261809104286024463104572008283863054237445915716897353847564693268579298652066316177829559889534240343266035142525365499365144093976877651833138162010797000605574850998715305620053751355176259387446987027151362281344188581823541553106565638088964914643322389894749215048951119338611639294639637255976792676820609717815089196333095475728403759480180661684883477714707996196906651401122277240532949900515202150830854942670689672269137338362644479536125384150651478732105864797090382643158710152428100117352326921063717012245781992680315088930981350507883912165834073415316373361797715480931956398278849973224616685848223407325132043421731893490720741909768792653995217671007048035822744451765401425430075087205358799856125589120055644347670448363467984335572867178168241839570290935258033446535209297515442157323303291538614177157313171267806208813959929594276051573110253343538434451555549934244386233582184128415449579256380069729499266738549238503969751919903409013179943427636646203933080766471210595419670778749877549267714582169763622485780899322780510999698383390047681763334915043995789840324934816197000498625632157342455185628798160497433745089005597251733607715737890671283702347600577050590758820606273451216410609034609208937689906396972555772526021972041683289453066469598328544373060050266962361373734905810578259124650567827061083942934551424622550666600050036726006445772267283239891750516821221507664476933592549910273164694727866393993258178594983237519603043102181283007684768444876315654875160311430981170481036842219080379912126254145488993897425002850609824171067713881851751559969132230768262328200836188680467135454925030989756027005776859354079259319766601493548027144472320658220932602360095424351099176524731418034032265290653487530341599790697098650343815920219837523757365504365829474333968421897077461493643536520512453332806217704969613334721872536203629647387991839604344020669508227292580289782129702514016755765424466689278598204285338998598291529383156776894316105702784023596359073974255124654350634483619480256945895284825955844206495179973545351722909733377699210663912765977933665192475157003118661626116359539685155570387516179912571218223821387770529636024366036732958134792499354835573693651826515497813808240657102913887183735844355417576198265382813466193978109529701868789952278313121371780902625773549375807768512605339059535509014754789855622780195871166307296814986562135557829922453684079032205042137191396471626207004535960222600066735681438736941880774353360664739923280972923539746657123183169082429564427791530253207330107925240059853224322296371096892601864836976306419885143506551425275420506242749481791171054904643649829299181894687530773758653413567853320095517409881460970465368570534458579556914126560318184159270068702534340606779820073312119539124903047663554651821028426873822015462491502922842789236210623046171103613254725894626550726134838246579130425570250634849549937111080581940330007347779530664608655660161373890354241214387653222189481377854594125226966160366074287060065452194734720214889196713152611218975621188192018245315465831233873513348228472645973360782360680123266472562293231004657335593969874608097473488661041525543523118251634632989426992256701466188188869702405475845477372098267909642831151411992101242014653068273526262594339070986502199384757336014119961588953142207931202285819018146034382116182114029172662753106189685657949628004070956714178237200126544669514756766894088359487672111063402989819463858191835266666444113593892398579275643852628771491662666585128144602899805481124461233163421266079220619487991103201817308328430644906949916877464114024296394006175384793861341244925260286289358087984486960351661098055745179064756512869173848174871450080061491102399643014086024771428892550912259108167702359991675264709834933019476683716542610036984175461520015807870458715100176006189891225603321305023647192416432853871176492035222003483606598309227232040059576762724667508804839170150238018432577845340668122997893043359988806062121760047995371838133671971502343377656995116774855968083961321543755380315688501678566839233576362078015629030495503524647982208189601011003547936124123318571769895943805278591677661748653737815081626672948260520497517369713009638373754053266902750186118574438903801238324877021720855098198101527964522012805521206005916277866911108435973208226548303162376034558488392179245936480872108116267987866978375461655204110192128132205187308977092718354141717059803830292638010240902495500567741078034517559964014835862366464780785218750148782357099315467068814585767865424905887190563807712311519610572430865482142711119975065037646773730309034573881199370201657678332411364621151865884513456900655356220713139836235498757560722420165245778136686822977566856274727676641557097628660957297785720862292229963409431977415483375620555911696133260401538181455004635566227902460363521591210312349304943594732141592039268610151669539093801423523941190026380343743028013316457148558407700003520743272417885931541757976993564854406638597466583698480448199106720789621767602434874746840940628258624182864405890521186237108165912680406290271328466168465518116660958015337169595284400379995794668830484073312812039867864187934783209976694978868672496491894083680170977175291843665727122551349792659881309178750807850328640632265081635957250704123867352753487021703554435698118473578533260061330508925264013336810061524959722648403056882959378233456028329500682404058494282854514706382015782618629871131621076145440326523770846379110265178813169595646080422464180058777330678165742850800369717943847535722234094939443785024860461789267400138180180810823333866092206205459941749998220608568807353344289768701248411055820102828896779556245435630701631620968856776573017225147483368411489002121632647781207495780611854287263254384796066444795350279567807660372961770624960441700281767473203496183183659993168471857968983839068620736615815227006779707264197916611700773655256516453374481629205893426675995759321957043928085694680162171299088847378182327189380992365863087369304152742461569221972957896456242835106390847120448394905895145457411726360007900556705070696643326764341807455719232027138794871572864598274400752292638732327272813651682459393523378546609325960727542042144784587254547208458464421148541471501719147580520510600752908649274559976286865182744103339813232732367245314876091806829795851493839265232023906112575793872531614276626109985849679075749375062921047439676233850513454089807218322034983948582721501827312941946069834774187795882534086665139391939393210748482595186892864362853847606150134966055557555789504091333009675341370254731320763354777345775771803200258010654867395594562548159191872515683475767073464615281860198416696785982469018045355690273629310651043638859294348487366634848778801388449395401956457941523645504777802888240775292576658180445492610332294360839020961029281019557417981715258127428726283537172359465255034176324806146699031164831856745555837947872423776946085422663723657898548806595023814281535688571658712147461792928343949304529778348492482985580245469000465054062555013057319458682189054486330304157222420513820601189788270656496162358413428351452462980666647231150114115980662547448622570123660648940435547671867642936132646590115598849151358489268730998950890295352997349988247227132393168003858090124811765705488846184606124041490670528086596540717706211846940356113809191488172817648777240919589680367923325324702610414249358724700047331888146744668539520639369391935769553448777885877320738136890745673047755258833418693729467633317859116225827330551130499709843156065727887435506613988734146308750919327117748312717717663389249903001185300609621288579710554276475013157119944301758273091920446181895689931436556611810488613211201454106342014810809305782111189617408221463828018239815282348430360017673315466879046709476683957879052979274084923570255005289739486792605192771011565384815002247598913948710605980670925807730748070749867848707198663485374658863486222398718867893655643195099122631403468684528756369669355508839736293205846500806264063229157163686040934458529142274705648038569248597833452249483181288688864559125309180102379438867969638979070091964086934961159133811124748319206637510987140897690121076528927086772139171140518148205748281948300758404242149929121699464644973796295595436903531419930344885799491987437313935517442114888005931637189859969380730279378147426427752251850340180680151232672988692426329409951432811861906600148904610752859412255833674170218701607746902488331318268826458896846562588300228576833434523230473984110841212952506400492187244369699256846958883450720502897924179473247720800160112669923241378883482731950325105741388227212207118281039303643554513252016359703414420739534394619380074437657620890723457904682564390403065949265853327345808040801680684578538564718680661172028174189205264633392011117152490416741470964520676223580818171970694456025923191512936533225454991749858757058265850386925516345889783030108962162146916950492750409912255527437933396086224374728406627684079818792024022225229063489804009433317201526284867279756198947325369637968545379239831512621301174033301555045864595505533645142592712826508458029861925623617494732466867522748723318189775964387276754934369901386416863029621335189640633796329843098919839661422182224380549076023644611611168434950980656977477031081722508981425419742048458741458560072270805228612732224058406373690988258235457128026456062369592358223228007346627380946663960747772071856104190756558335233515327106629534739018102430021361435787854883511951173274242451242867157486740049841604609775231235408823100485694417652693506822152553780121695118630039443698610990669434097120346980773504944015446198330239760360111338135662171894273811314803200853072760614102607089115748835339280549165434963481852882810774490165570536302540166616755276379253489040009188776365236973699180994339068096600289649223464125205140207506128520265723250477294338883794139554603622174890342140980547007778157094290190679703235310878696785949054640641845878319019757204523576154968250987842035658584951551310015853658037295316849781310526876970157394136698553595468570489903434369508380235339473854592862248815668024668766530520867140887721319426330623580243060537755819763541466186750270451186943365225082446239039651902200209487689254040778747327723267089946629615152689237312240251599280254076010889292430035661586903151192212461150591064378168122578150427861138421235077519859280555505500072629145289930835803932805427775868533839872758442994236157212901765640943640268924541065813805664905400416734579850639693229746176601206293497545494684046404859925488338737278941050540183301978436562980344880517938401144813018067858399018440899078454252878944148173040400213427364449191493017029395639781951312353554374901747059214684796694201775880850256996025967083390853982570481516009565932024400402304471793271493103510492425906390773702177161901872462208531913838087082703915939949677367613110789733458415797165665284125883454110296602384011508032221800526010944405980405654423572443957944632383284486631711938489239718350899558919229880087046016668833576628074816598053943763706587555929927650977954174902820386763918804579182847620190546462361554639086737561212912594529922905112517158086421488307040553139346468553747564460674065493409079491325925125533292610327238275775391642781248306645688434933057636932598501911786895002926870648972494221428456603704701646221058161772772666059072862671018142561461898221070723644322610099334678084554955038945386540715233386434682139470114876962041132263434212791233659027356621754483074958091593211483221133471778624518814630019375723530259615222423814491150754116751966119815253420531401869635044900838362417917125150020384594488505816626058373771369431129882267955587343980016248248500598844365689771517776991680217150484963999020630731126378004747132584859608244811819607262649295339686823635567093110020422008599805144501917574917703375377009876700513310104220091018705036839315731851264225298836934506664113174934124193346800190797663869139094212796879832154740137372041446694437940471595061606235934463597586012182014494382792160186174384717657430135649560879384897717245530216370893778422993737101924242494464095400531056908015091571811673471574472366571404847998950888210386124708214196590099542842001830585824097533072447724408461500269060911238410841912831745758263932331301298789759582752309964453624129704348990073363149303646327704007598857940902105627435278357959798875493911563981948603953412894990182040057507450387072845198414488937444575746707402033793718099047370065025952056618907571624233093894780831183101232607937032973946745620358778032193409247445797969995095158616536489936110260081127474506498680383623332608197753975469863669102703550721330989709568205078297145177815891833163275461095351318653245408722872588851924054817323366636628443116683624614336986440484143596440216936636757892783474155535519458375501306664105529232847546368178228100427217313690358159952468875113394574811543025767698073970210268628599096604237572060202130047631302781456478357687654967162909660281440742937990717547567515095768381780105882496023747923833696729469461899572658499711030440255354273290269636017738393143879842515177130433493125875503515412617312100088839418259242793967237866667151018515551473007014447812276831560043664225972247319569725279660045492799391817364424800179675288195286825891190399031832576478204622996749706989507343761294509209938031417856005815235062531061856305190059567799197436116410363167968941077459248949223191666881891516163622462137351804479224541754864819278758344817315348250695478145097296634051230505391655463397092171531005613039119985673765800645659528303137261139997095110929233036984370446912812644501536006581412734295184650372143756006730435876499999794048245506630457272693815634439387728841071741709171665780184021349782687306244814074389845775110736472386894623274186569029719796126270813307106995964545322833431507204401108208841840000503775495731950275581010470564891781286203265271491309086270304376622838125083506781745399560543313916855644866472360202508260525317821009028952669607999534835445162586287400680655358740440587472387795583661620906901034780094955659600241007038340108023109111877045473965414688099239153503250865613968346193487221134012851155075066513997884385140584736775771922887976715973667569853557886323203655777837218659856020911635130209059854449636686971141079038845296628762439652861941550881816254777555258829475095593424808741397424833161086618553597202436629325873244276026783719311226823523555941765219123331928849257043475607273171598818869689023836141098282042125244707904349865904404787535709858672677930138957648474269387229562129324786884197628316185597475971285888513432524044986501054808992077771246536089036897440156270356476281686342058318591413853721593103389100550274224856233861256204248873404008414663661593110168472648855904055587656718436559031784449640614731210025339390837728923010538619294474914933749220954001834002054558289613971419245989797921020824277799069796658928765174837860663370658616321421466824830883158525028975210686583572652939152194425401183772886128376177279455102984763662141667840196666431791813888639129760726020252495005696147594561687011191977792705584225850069178559980241927658096991329030519073830783231304301336856314458770472741075422063829914026903024756983626904958102271695304312128750624006264351903319204388729230586483706140482758673916684746899647277739276782853560892703842587108884588358260539158027294583304934762885953461534600047889330914239840068169701274342932693446065729172070761880460477685738741240362068311736845690335947160269942062672895868339884380260854325354704096003959198394513513672734462928707039537206194864406113938336922359946475024887551388807949442622061387575612680573278831573209526708299312417006180118375232440558810318768614590525676821703675326838142455366348153600341008543907014334874417205109896411752881101894631130496553783827859055891985923107236152716725892143221227548033548495031160142670223906416296122198023380593446605975436126776655918489628472750147377042205983979936771877164424516041585760220977325166481043207609305374083459382243698321312537862563961513166232735839495223988296732306162816520370761145838415122308607289380102723890415583149853147075588791510376007502072188669656672859255975529022219034043534222982623826397074213531007861246720529681200101082352280673272701146135364397030584885941186596833663801020187899492533265281960466822864145861063516876700649018748060579464571481288190482774157165620408989257259488631795366323375531001771836580183382790445106783375544260425914413159291163271119241656822400453681508944584207592674594715680208772839786863348593669321929206644805040039905538984981864338394548078796024995917834993710873147400424190538769064491233951112107680190793163210938584756581692133445535194715722326715737739770011336497326290176669611216844799083528930722701850013149391175428902888647307152868717789666578763743095816903833801323841460611692781162990125050847649867171841395426828191683061942846171752259461121469914049994174622008031867758496607656101591377935419586941906087635313385807862542464360993959265387721535136600740086605103199085232920523486725933139708776475635295331179257324860801208494131432661976620951324828588338887899505736152563918511102348996512911370210858897520444387581391075916007359275271019828826208086226798630322936382830613876548017723988705686577383644972640345247809904301501880102570422900906574477968476459048038340335915799271861630333076057345937461196703594577544230397226362251060092891597502064974649880866210049868672032303299922266156018517795968374900447651536338711531689456784778300680874818971325453706556257398216259823806919376858055956320393775963141281520875442942563984967792768602868050025531433691955860573856829240498555096151897388238227489663930256293395231941616991509908582856184723373111794227958033949249442117198372521538249287268122676277256743586797937730344575506657518038246149149644544628454116182383985205772162691516869832942679967796823288668044879583136267340746299057266801765982939737136975627677000127891174917412131301289972989082639929729236594040788024787100615038411120670937309374736010675157430341803434385318376325709772699027508275753808350053195403416315545841689738924324169521427069304237072400174911063225730900990673481996245382778684253813771585103068621451755462728964362750356914287052947749957481684951363172453347914846221673324670888699041324383308827804053313220048519013600290467146093363150003924326960398919248999435027318437244980410328552291290686623916325637204521970275336891217280759728306283960878095585586456372766361908834581101532143322801961438492999287150380742919420058165948831947598794983909835592686079321911541118456692407843795561907860545950629601092520499033996668765582999581544986626521503662558890972795191774146599146978297834616744232434505583644927781424886207008379316708920489916673330197616716534214510317831021194365912223766771095197715586922066377270938229445390728249916795368036102749019927363424368566925694407370899244307236130658901082447449526728308355975346101763477462452106336505009623528568256146645972276316017938869523644345344028592559058137240552176427593895616648933431077642091689357748671049958039330241650600535424137174395385240874514609692477288700264213244177967549923687250548602875468175083085927094427165714757390918478860091140842963773628614744547530505781517183323617236354150977918139904616384381015906323738312717478908600154234947650810039556765802115449951651342017613921348798364956505493958500186133960934875268550940995133544365065965425369051303914937274735856295467163313575159717336249129324688319589539617858823423013768212508928711218800990602109947114318349439993929635263184967206868700514463171416539739783281321783020934575842479012408068696043731107027074151807948498711204738430386361788152751716823711198356343971556733805817847084263660302981828588288683291637089562143654998361441180106473088435210435583883946203091035259053469699747668984362382951919190637915155967357087459516593839155819898969274803103563640534013307325287819383440676932277895510795800180264466126293653609803656731889084944180616797204851500269328061527107084864113930967535833051956124587464582747848324617822240527465609185949321543532283459653912178724322381826507179327500583154479062343545001498260663070522857317484494911165433982263800710858121333558943071147595945496120564070561650798275470092209568769659518754592341929055200300962033011301875354258456341251341618323596138898047604651840636735595126396433351338153135918442690187417262200006393656058638889914829711764161293365500635726898975507019201046365792365414683907295257477522873913792949104009499001855321161755038313233938865421186908818837473391710587658572604503500673428046977728370110094860146799152506431539042634472639802793960947784657710416288882217333203298666869669806810626765464452858441989927360187535848459200153365061657513391772454037840004365502273629347235995913710402960581494611544345356795366475353463495233896665014862122777724139976534316089073754732742997859341170383677543661994187597006466929030794673164215573366844176382153833290297990973225977808189405839142585436007422379489364499139095740859568967318649689577612832893340829418048167787093086327154209051427812164649208538331365537420511307188787622914113740509320119838501003406663857593337092955141422055485517245670905491277343911174786089195653946391791853765343837653609738939796130913457419473348055441266987840038389723797955704397139896728292484324525131222963368788911195457763150271514550823607049760387434114922301628192291009190568838111197708546251685881900057371077586472616984570554263426794165027420834812369094336894586143867600972407601725181727254316175731574587455154751819951967257747211655899440018958001880680055712638492100042616792704818402770208704715062061285243748407930195707046319709942024284562973614203135012435278455976035297684909533851221325225392460790931949776879430589048415362780482283141791193024962190188656482350087903607450873002016525968648120167336893640134822189446620352773097731104690134794876348725122861447408463841858579126405389176809753540393562028668165652659925612396161103233567396452742451693113051128777817218652453597514981956894327784237587419890612799195969459966212443284891489077287071839672395028882950860992895258552579996911952640153348704660302871677141928035350670298774789009026533340004841638396216798817603794384355864338734860320539206837516313485937160881852514913236306696409127348262347172982551260093447284380800823334864168607176464027913955935230698926235018950281780601495719717876656260612099429079872208284865894474962256960192536371108107498682104298685953391361327658397316981456105292330512319542761759851363379858010944438182234875114704330982674265006343112787649984249849428399672581617914763548087016815819139480246812882470894905617380468556121652983525177790302764904357679785270049290635961161479970910670915802597262919950904314706108340575199893718213156145132140906938567047266565021916585011187593020129770061245172183173009439763304566791497148796661759457167777947857434826493639906917359320309056013883623801978315151827620218789721648505378108002280624978598548839468556044031285653683950400913119580528377576991063726607780385973096939986638284578933377665909989777224713360426772250155333613642256459501435720553276325714747689226301746533575445760850119654093857743852610363891571083181861903166731944506045534712533232829451185267445785672001039954132069811646117422852394764435113909505889738186237563184583402163306341613028267941937618692328017916873076423488777803972202403020466922597783417958627530998439591409998305002092677911970318707061903784489799665305293040128687064339668568569803935391767090667834261226561535476346447136859436853218670323943354410466697950395370354260000861084128331496267945260149589721640640938412284202397152551886622608183785703935207918243450475009527308825878975790870771024115932095749968620176473323196867885339397367527419666368459536915240498665463025885370200332073358207914096362559639085554028778406793433906448544648291278261070098812175456444649733655353038746467951157430029210179833682869053259773384873986613410973632489114733093316157490755416526445610110509252437189953386732487978774415489168924873010812441604949461584603296201423878422575980096158231277301800366116783232564731932139211396536301586357657970214701957262364778091475057613706214483278624906905043594963766123713697800081867770746579395596004602499877313793327700853363459709413451480155452789863317726180406329086071097810018088821264278861638658744388353834100579342660711396859205010200572490257332995079504326103986404642939913478727554590309117244031133373474126347755653622962967678302049892137624757147990476986529240425112127023565246032902921437288829202563073719961947482047391026518659024402540793407287927807979346617964846462734279117302266877006483590424521026971123633936886189323247390988632967479440739709140402230803135063829396994550036042894356121806508879159661347804785927863210140788772004543226422397650608168185957327710073143699413965522367687187984725201171689789595876726594233369211640868397079195733989040857009648141293716331894333150074494044116475441830806691819865668039891938515319140295779986143901489847600544460961428762249631938285868979703074458990274768762903774746946036234990293486038006080743907779262667896049189295431779345919322932951916755674358415986767903273207888810334115494230739822161695824428388088305476462393490353023131565381002674431162547228264500374472955172742470440962461221654650007218774891714819850069374604108007462679509129777602651428364503332743761213710922591671732061093096683208405424963615253848958147561431843294269719933282567833192763522289793543549605770187180069260242911720998155052087592379866926473455789131280120169085971714311343059733738599515700040045263670174149017087369547997387041993966939461733945762273060829090452134912723513714891522012461099634561534661939466673402262432895003106832245765724448546584562593639100718833489354007121347533361345746700908486424411522665029670126571766449747220624253890003579455810662836829753246691487325738072173118058748719330101263493032010916349799686703403766086947669346479953692045918184140916573709046760589119024967090830692500542961576616197126290907982103019074278110901900395781317268119826768441964574197385087725610614811532466491411733301276535343648123581537033262179807619460756069638856578619128751307287502222884129594181115142375399946768736455367884627944438443595017827778246009890917516031723255623302426414549654295066388492301272845734885692434409290207783755808441676957385900223957375196635472640504644899398336859754210250898002946672236572505058491220530692558789238324690250801202239634036288222378260504447669842236582986849796123641444594028768565439149190764195284688524004431779753307151988817113084655519345689332604249213245966775304914535039268521669871481572653036394839258159000013336700549311817025744926704378045469294924879184149946131410962484755519892604941275377843606406919996109515861878117456261489021826387523613565667969339892879133386466806770417374534626506642036448710056515926314391866712066024841742590964481109173842874985003846272394788608412123089737084793683951116008920912749660322069312508993678099048276512591014654667395200784543188560193799050028385690757116631997978439834221760681139264920946141240560131205307851260623572477691312372070029405218331453552926433855215972792547447841491102931888260435970942990142682228285696311677978615678506315703883224942146105353577293746865275789785666831121108772328664823154003895600275043954739475129048981307320922755175130817765314546471611624965648709969654627755336116534437849204070315600448237974600827303880712761678356903091269257165765299399001452605481543096090339511417527279362122779826300691924940613561115347651772921202902241249808371994456209096172840645431840843997892842223422806008677604720342664003592623389283493695612255217582581498867554449146793592326955083057098648026826539996782042104259168803589164927497021761946444645535596823899311543817000997817915399709312776850648156782315939215078817112024231949933908415253840980306464949528642388807456998984270298228292349604507165221875531141832070196536191723341730114180466397363469305853561583988924969095891174971380396220796048943488378100299055890625460465129911551124152579619727707409262040220295542814122797162285349236053870210538477759794748339179419641199691933389294515791575955788427397801150918223226558353901638906748336935027446261001787522980620166525987705198916420835306781606546925969389592948897819328202505571812793963717131165075163021883545617744558424306455723383436534993205778222709082783810825979909325390428559113713629152852283178780438623012043987396526898234942696038677212566925132539032281767353932732499085878887408166002879033234313371690278728195539605686985152243093606613231187164325325226577395282544457803703553918873039404635929958171492605273276005528783287731655746252662936236346807560499522871342413393626364912975141087641777484747489106804696522241279561510707195602668504297917451942123969247286701771656087367017432530959426679348185017190419717036016359378009402896232845995637690789913009491418855494576450690512102300146165322891794484854539287567898713971627754827407245541046400861546856309109202883822086741848055353856927872255111798851913406098003764414008748634814400359404675790417575980940025009387856425534024244901854628077227871736133065664320376155452241935584949146835281229139950066401886659589606071093416534390414073419609052624408561773960626735482681209064137767480507569509651130327724381552070339730410654287374826530241235831775296863723445041097270094572537536730712360664691731427881138272165656759844540219632843162528182078960296482417844286972302360084756353276179084037800461896106684451020150554114742044626092158403338517084684348365874627234517968664117239078506273027255720055356532004488054958583720133895468899820619292808527669448627312127332308577809548230537954289621322853227361233964790303877842137247165921815861184496896973981795535154358872008909941250189718262861372868844774055329896337933230382301219939067664620512644083018632102734375880170237350442722323862935768438682227517873721651056926098064741085517540003507493899339738846400433351258997022657989225282939692961404031249707063617002636014493580813279084720538817345400149156916311436972366635911976420251742818057228609430695506165291355311610140441955306673415994115258988425086466770106570849090063332765439840497397775511573733349691954640564045214517622572156725181740804359677719465557371061711869195667183304704490001370914426145491240599360569154907397292307094676060990919539980740197666548580334411564070673352308729465026843313442522929827530022770282879887718630541576777567274921708281614570575797046167913908957692340292144794495689379145749222807114028655575053259091259629014854039493822718226754127485961723984184118773580465113278992067546207836058380294163386199590472329834164369900791852828267331608054867742736958613123285798745097225774270141599298086996376477828124080204501774695235589875020761763723271024402234802975907111507355671957555852405591168946076573020515944591825726836116169943358535155693049156990173057767133198041652510829210347164770618580007855203178104468145058441423124831819052455717358775438984162085898136452726377653701500598163488319374705606842822433447692454580875426455885219715180635077582685251120825921369092315083223001448345476117777253141911480500721694510744068143112022797103514157243068420040627967263245723011046859132887068315231993806436568423709119939505354971376348751369935091459677072674097948666696668557622265008586124475532436025425754473670063410734807121686399843870120114627393116550698230154563433957066457597807209004238053587326509680005108363259655101747114562697614850472369290603590285153784565796950207996164038648535364411647279907339921832804676140377206328692745671828181715558583907918201958395746477452275498852107986211809076922670231629710625930799480894579411644180878155566157730824491389555855560242418432501973744920441008143801544613897022577401089890233241050237417095982093347207228835520372266853677417918366920403786199242354719536291423815507084385630213611867051876649706044051846878893251340973391625079053454877455804531297516022953600361638748426086272507598781804368623042059206397205642623287877383789086506189181795597306050779742344826231517481566478620138904013034474219524130447765759248111822392659631621452227283270728491598644955615152356886172275041765873513057515090229211981446640400065297888873676873386888587115415949786449835193532359968225962786322095906767399531625398253483954370496524283962134076608307910369179674892587553461531219429290226630907795792523690468870928617799388761097368885094546804078205942744830914820523950142906745797520764652127906184224076237101767347036239902394459472650149614931046975669353405524343558552189088796117647127086116495842098934538276440173952342613506851663271860170401539378949370509776287161503429463435898971045741410108194229889671246476457381299006231365082768003560122655328875845111155915901911951435074819974135966257450063697396921029356927423833626084509850881727281101332319468561545701077868136461396894176003642568984264477372692116045636730757034051826802343456132548524719474109075312437712526985174868280953801516483453201087053619947696327912377653895210146782564873519199034375475885893843874714608759489807271557380956587091259446292664620611735587121939242316433569119990587962215157136086244888424960482007193142716293329400758866428854988843131894655040744041462315838138461835611770313714068718246032166453025108029110943866486696410181337763380897663813102286000951120378567996849984350457592272151075326428748136026248906046693134572438164730508358432382651710205546732039597817564752262342859181034036061481470617614464184547274498300737451137042019470058840762101123340581235444192157653567417595542564637451130235439496691478761556952905953626028083337984444861954770442851544905047608460429929567449909010006250537855895908608610637326266996673634926358367010503539542088306017771266540703532921954141913087757411002530572264547202825486402938721037107469236078991072193070701132399383486922855259148444676949849898964354033600077152293345424227988785313736303911280953858720236634583443521828864238563550824584404278353894502079206530924681691437349884038322205625704272735640158679504093470365100390344252077187405290473513407023806219319896485097651477715086104486063457725163454784785962056914904495913972827695660432786894327661825606714693003344456013173211043548191192139371578104147482789002370301793966070427816715199836009411436262772888534721371434759341689347432591671417754105057446924856269605215554153384670044661394116198104861979606379732015586631407404142872067291969894379186540218426619024282720686064263163576217015525814748693171266606693290356081612471426393198113381618403805449640832982845645161672891086927657037152463331300507961942472269932289293808363207747042253651263557788152678942435094776360673072817364939827709133068410264484714722807269469276027300603986275510708642184359559379859469480945934257128314533933016526605503431335988319274642168316042216108992612903700156557874102261787498042708436555187999725524250758213192329015703173579866578563556175001523102834189375503676040801000999845252241346055109651990916109943466183684200891805222473470419577963304574515278864805959457298486302381603415498052942131734366845871534287258789576673096048901035712644096468566703016165370310169170324506219207816583892815190555957908473702695026038219866011869177115828314561247105620395160849415462112302735537991259797591843162426749592777737229557375493197099210288794540958711349661468414554882337856227855331839267568217735774540398483961074718131316151918829773024774652857450262873685319480378550276627866046932678984733479145478014456060373063852495024794941762836367603830060120915498668142718294682686026743844966528049509403680553013073844386392526903473549488922798898392398808006655310702560835051807441961385125954603676954020968505000358874140358064998809777087523177445549665252952201196453071443076023141669284724192786189678452721977767316652789546924984405744192379009026880336362835068975037079495281602965176527433925740309098772503373101993020526457037386385969573246894778178958812141032517300371575879115694402676475505203298739582793508685859338215767824178216782553178987498444587323181240928672250037493772382069102466898975679493461622310136026822621872447622325847929688499732671796871313104451869347789491091863809986955526435150896007149139430374678009419384461995348676696115915369324685321194428363501786504738134129105532055945302979773677135015518984969882637331253668682297300112546642697297938549292180763380725199966830543184345779034446002819395264553041874411836179312173211584820098988705097073452149338315224243997238452833715596040380565570365359286304035529656142117422766945587590256959043267465121961856807180673759583038528577603511464963070675938377748950191827216879426295234752178724620997470480897349691836379838173088287496735729042932457945554362875591378177700000288396693817826433686319160763209038647959917243990002086485029971322849704340234310660158398486912105802905557441250610845024062713181725168089749264848608921195763340098006837402299354643628262592897618944049227046933298438798595925356777164671835701788953651761427997452504322792376716053577233895974820849154248094132697539429035878715087037723388019858232657369666998299811505834283946985218939348885189226049178874573634881049682234886418318351461301089860526297250775456100818968887937557020174712977489604535435259486610669011231191716356316665257803412819083294615724471108579487122855183947810520570480788389685844221611393728513660824957967331331824007102868828433454284376105178847874493699124003402948652629013375656264985528518634445686859338883113630950397788309920763107813192124591940482196465314228528030651293639326573349373718028401986197280328048515944085295081535887405330740737991032007988605597564070016735087147255581449665513401567775588339945004099943662361527793562437886703232683955139971246829499851329044491786579627079749813564597209636123433112130911708424688936107387634391083584050620803422209559962477795827677886059978085304436258452009684816896993417989368520579906383925448365633639870967517707912357599900202811808573088681907721737898973511139405221907981697564253179185592926999192952251357972518673195973145266560096252270616741334502607422172484190116139801424752151886791185541678238132754609454212878038476319077310007901197174414036261571810052314134841441936979364897927049380621565937624586787791601622794145010259525049575510490230840658880623555377694852320651662795680490918196049942919210848011431835908970675928513621581949574860644442288173609595450225137725712052934537431401955850152868807758766105461137741402852181281656600574888909825588775060479041274875735782119464867239056957817126017595643388381789970454453739800934981417606336995368622398570888950961268454296851843398357840949444885671901627342186123318680010199516396098928160463203997968098530398566581221459608171336105630809795182373368621221145337495016822128802853483987962637875721509964424216630074118396940127668010727729355000693131428295624210916989677620455627827380540066075383690361189087570760836444022322108731683933300721388391260458545487511396998567764914567419536485177026517465263449345664164764455758320910685027294800120533526161259984528365117719807772599480241094650905888593819558383328160533183481181263781160973672674339550917301322975055259873477218786832319401362288213402794220519447563472719794933020089223967865153300385936157657651324605220036807832196045077411700841397199590467209487323333511180680102837067983925722598704804700969814713578061776908028481252418469158094579463712281730623616392869348859048813523209426897319902784619969317675875201509582861685302945549624429103004277689624154665759022305843438074627456577682611560390493794138797323413561869869537189762613500584658219278700913482263984522175542868674037614011902859351887462247342079338627536806737294304050205426037567506887637939208648353118568859895086966236465080619394449056830288958980095124383445821660698443005102386512360665128188167636018903619890666370643402739622428181403684898468394010415221767778618823208225366223138576321719507833585302567909500091534653555263620954634379540716131292718276418238337248794588602150951655560086985723381353552812632349413679756543421295662450367946683904560057660779744099340741276327263305123479026287705815049696762668921946822060028807716786740996588205967025384069635895856326610785614538429421727156806068671548948902669360561534141127530859486535166564025898755300182114652515807166971846306300313285209183266382303075553541688167611498933251728112106317605372833806837694217001715816525338081987354344684902227484293107933563858475547116236912724010303246980744851546887543781578628726395964662126096326839944848169549469379882082503302071709076656599134830043989622790943082361259614004250457194200707409093944053198124015261939990459434424222627739838540887058288925563870920514046108663384453247692516989260371518394913150835184755381925665426824478991652880880810353939568894863707590152236093078874572442988492015570560313010369420626130419467057584269737245365896126614433011006913010591657416616068430841034776269361672654536793785264456520561372434531889879942119296250231326090583980209822220724024452407894282189407501294548305248052863629274562381088923089793386883101553755471262321871929949289171584221166851897020347275872540217273757565856574093365772714991029578371918467678235967069991071118426141709828330734189253020211151216233377250656423111600376026244609844229348490456637592767994228469510992110724928505241734091277481440037188806759482067694896819943939179231435701194378622928319836335575727795549059396084839443596819564976703041607087423934644210922964697561013444685385854659911256301116437392459522555381944941970667717176651224791634280712179310429786263995135364740168189727561590843645211671695192664559704590599861708402201078474187871186686092959001785422270543502308639572361935324561117358034619831839652481481664273759908652633319188843251311262736760663120681784023986473290214756490155213220475234682972585513954075456509883903486660701287054434175516226743089718472033416980932838651828839784348013753401456358619813051043377328136023925831286098821772163202681687582546732127665300286600621514365557939529524903490862439175844978536213347918945137710216520002863302850017620048712683442960450579932181006559065925857636087848256887829810565422894030933036878163433663591501348980597891978309350568417336310120389856164333527487773171558265930446021574196790252943664649864909829330939666013315921887296948729952417377390394834440248491448769022821870379889142227190551457552814844990695797323126448834584280353755221311054533012616866497445340127266233999187402182156805721772446300479925534507392676081194690817498733203584581687197927275313897163397845583342721417660845932883545804917100645102818587795942724750539367675580935767484894059781043394571894432915757686473238113944529466990278233486767207471144205955181787663091073541689042894086844355983146576528578715019407932167470567379518680929335799243143997597335887846689689991853703294754060354576335177640870033028371386057966090536073366345493614051809589515914462889742307361165980356224716811974724112336115933569463004024464189381590397103855644141290388383238603459487746164860659864405426516995981090085818423172152301576137927702281140415557273890559742840273947933826840710610596635201883809476595901218199703862162747863009673515608551283483240733271671899833203161134679205049933780265442536814858373654361133305814325723530510003377981202100937414880071228426028593806437733918578507929782729994703068686697394519119790837266668379108376222546429675078712348695067387545300085064030250772902213553536832078447931716648942613227551796610542677085115260206605511408770974399164003802733915750739333064164906715031714500634236704449290436059256838475695097102767387081250646557922450369065169716987271720296501972136901746030954535382810405761685400102172845190148790060549072155582979371699367266336988080669573987891260098140512427999694050942125858668249038740985511711987936412289567962622009043133328304545197124993126606785405392251438595136904756601378501616120176717592167299377200555386555449106841692321075117379299859541643907036009628520808835279691326586079046298459890896069726631779472821043785102337468424887207621750634516848625896680720321535130633010728591833333689868652992053587433922668229409209414806738875189983851768817877351899343171543979605614630278341820031317081888862278613308160183463300871520755135104734191984556812359768826893601988651882679225532435214583314744763838276039613831362277386582561609327874098520654642338745916282432234634183131435534526188999188363776526747829874590814739622804678586097974178124948227118961039543843237211606942373435687935406403126949593656032378931677815804476982045142647447774361056990791251079585324559558339145184510913888040845891047771967993164781516028994742969688033339346614659508865902530388879176768184649322509697875048924948692667008842058336483917070716109088765131406846262190981376471865066139525896537880343484246780415269281095487920332123689781551035027494650597265041648359289628338587147474527053378523442731868066144446393170018756010305977334214947970365095513153104954745854612993625049879032524303750917025430859861411689338359293202009541901197159853875443308184165608177535128260119601519810072494796393607723175074819344471598511424366912270844906555977297622007269265900060835709194297913004125631855697547674499868443100179956645743252870543368627727240986825384565800124080016439172491211156543184638275079068602971699108973687030366335199733022376343807695960635763464599438530938828458504320218058733705570765176702347031616527545983605580799391290821484771565699438664681866152309065692816502751305601809527957212712399324321954905432602760305090139825786048687774496430336312765173369279978321255525972034580935184547523853675608662380032458276781367995758039867610911429709301192841690844709510126325770621522830498295773091180249829448088807602389372326112618893414785346428722024682585040493741859709344005997372290583434927843291641853383007329985240730174571573932057972453165001328417644066250572421788042988821438473007934793943683673283851023417496555041020724946970387900836048197636180697017206228354720995701011431857363563218681510665660266445079125859054287227301221571378572483832871204877306492141262637639867635482108425765449176837337656005445069482826743301341243013344380422331248860382728422708206973858049435643945889288163822945058704783585042151965651348643709725731546251028017175844350957640146410044169512095932762942300415194387760865627006137936879072214453708792107413220580034457804429755589365254439936662547980146525046944223040063121437831976556915063017972892705461009584463271745077129504666883069537296037433933741996011224050382798342031474419281364329351672623253158563672035340103309736425914502218745582867447184171279905935190559040991759133983638340252699675666160475904056886582260487283325443154945815042749219582002481088780464656913644321382292400708656787841942500783074951764222350432815724931613361052904082817094974480907456865413865012212022340319182542088581615863258352559615297332650229127489777593562695826736350827379131448615247690656946973598330510715538412561396919508879771944439614678919301670194972021060813896787560735395319837048490469922610831723468616974227889149897454706385646018844121388300662731120552519559330147096584978857733450624521196594937310923993576366945456138032910387181723520976502051070518445501606454034373630216552074721241696618894461564478679957443126471283058747820198499549085085677776831761605914790773435404360653401338334165156605935807834328824726930404180794182179714764625236224693587398222997118314359927157382200586914341582867897028970408692580421221507237960481406067190490758621648107279902298424062916970357153427086238974570170041457292232303723466329349790128348024580606846807453500461436481336788695699927952320833876120209589346860375371548828107895611496684466266328357617539491273270519582709235528469348621997807921829684526873064976200974493506924562961424387712326892609549613945556263370292183182626296207407296655565075714513086662991683761058877819402258101140771735771160578013839349842689280430965442190818450602966005634900047896888324620515541885482322858924107643603370179187389781154269019015910477838547106356772931422746147781085320649891123482305472054822131687079889280693598273279462592098318473588029476109442135485535791311284194687975323291533487323896616051971242197675997881834862248391062378910975790089636664294453406560959714317501865253272345543734071976955218275733407547877374160678520615251889222917683165748247794687412444328789697479687168357167811483842673374227530007920756784040407564855724233646913323653763410649325229809842183041331229610227594992524017262047779042788191507616731749261177779468200675125792019944155892727731514797797106622432126459575137920617725121131705591045916437983429792916592711014854793983357196015867139804783668379765381649150829970543699441757170955675927544278845557288123960973431266502972893790127037196193698655072161995362409434955613194323246853831215180344701944249326544629484346686873983762317604989498375885523494063690402678888651179296170243661995306452902819068143562711026915534308076079625526525242941702115733863121274885668619837744396476547354197517917164721983818442393300348302610104129803691328776848650144738626869628559867497665694574573914941876039933336454386936440044602424165574013078992756811919063950733591682092290104262173066479685387790751468027624742470803445650857052183927330875245600715734669123226454230477850456698939410586525679009054029417231194549842706726885533293964924140397261275111738171023289676708827569406411009594988955714079666316162530356265181202392330831428414797872855267070293572882193799522318154823142819468324286404406678414846052452339674712587767592780807233956310687372796179118485852439397750764832772857526495877032631620037999197938308346050486358526902740617991105139877580695138732466233219163974041079263803682633352894338990074952178501114510139715790132272908332244466351937184169674409373168529285165668472036074070466548815379472758162377376168723249250665418102965022420168892182651794707982889696774817995390056626915097389316752860754623568280148656361320021813898933967581318507288239872835861464882467757684402228608022249187649433989051087138032075210506921208948491377869972339327156671495823226110503439057327887041509842490059155045459231490380751402142710810219511867042682111356358016790953825692421290983807245659776745692872031732213272019292704386858881569257091625829321423696110576451701929990444094536898536372932330558762539681029174685654220462703030845234846859533989082084610838187408770513300615305306967087339167113919946423316060514223866334623626142819863085247207535454015554457544668316744672555677256467584068571978904810565237131954552237833481882891456114631860816378996181696151913458306013328833536470181876507552559554429180530349236641174135582790159043028887201611516542241426974695460970124302513784768535493686685129154254862407816130056006667691115747887508917710439553735270429600657429058067414996182825140317627523225014623827991070842462411726560162879174699001674572845857926876250444178090039431087655202107499307645626511135209817982815207855691034154277966037904677516987357416243192773733392398948533415825513618799178507830194755165009678812487887021991968305567522237393139634850060495441486756714394145074933628414358125960935786171169117684856813239293729531759350812917933455488385820749069793944024458528958673395147205054035488535030520152433197153966463335863350012309913359600422539267999955478290178254156760200757245534896497500426729343656821151032110291270386911533777766939575010976967519748457695497013793410556823357271763219190383448279897217777122518816555314274742295594120123674346089239555977115771465686544340377467105423458981255920185751752785412473436894888090194853290642368891803112952193029803801731868680184680362835736438763187435306014422320210425466324856389753370603009364972163814045939674258788229859165793413412338888352700099224211312622112231257788241475747986733953353071735065728997831171169897294754617462470091427666361993232321291299935312382431488700221915759614388024374954007342662783203820372929310601487732864125347057043640468659846629714143939232848392224870113415747584373489285535601910110259960571409960718821362424638476293291118224999063804973887878912599170036218152646374957412810923924640115244635924196317372935936024761308495458670812899571083777979727287618013752524288060141925724990789661438271943712877740207558767249315061228818181323799166392438351345336547530233868850859682139837587586126372235304861173557194403620837619085496171386036357539734115912927110376782046754642493427761614681849206194782809366128949697355970429804919901872744339673064448660700304320404608956944594791277411431100910973846111284975017000291613531836683610526160755456302591477763155809749187224218970063563489627175976518512072001080150298082566957104283521954322608595999980129646142570650023976839920989902911326308987773785502055199880119961727094050766709451575473094752303313156343756020999818572596050430948886721115908996731952180491654227065558547378600769497624998927806775383560091209177072278843768470449228527538398218587598309573725562761208686300423715108436548066761483697897093353505746951963953885060190595855980144601526853295691913884227985875431334278498834129970804119608392818753460521893569928005477373858990003001065160222445879305642573814425383412717767111256976804001731101396607464506410824258000653438322764421959528096284230384003918735126620665567415940553558325800886942923761109084865384485465568651497641419060888183757715744353862168257899125588264858102512700951613563617037747974374649419804976327523753513715452329842680789095083344521601700105269293036111388915919141861566816906454105535845285944207028944272843788047295108263715293306758066301581555500717902339874245238567536777220582661693139161455312300487269426231963584097280898890486555858118471433740175361600263973086656709446900535750484315459435951728837735217654264332883821563915245789249956994062991119057696148983513392806687732475122560343397464288180918879828209901613096127961770712244027267488100925672559857000355201646047697664171926521355717959906699466750190170227526101639269551516392453299958227146570897750237059701834850232479630121512892549212377305085830681415134672400617870444679784742231229614301368454336190343863645858134623582071755349654776098498315569616212395165611033327506821983970627431601749593610524606287351676699759372315921589989921373144257916584514043083094250300620231036668593007415406794939999794116999968466607661211485115503662538725197552388023104683988023643978379271387584295117959443491253838389651256237017360095072989565637211620455211537220160586961369369671571285259272063396019753462848955204827782021292187131845080900002993968350896226981449732646102558565035137265639156402939443137382065179135145718625727752633727143547242611380281633723318469600623755243672403259455471719692197358544027893271426559598257381455035362361384564207880109424357392978476168154227597153184233280809302199484892936735012445694705432934889246929507238600936252910021126160468212981546720581072950442995660186057032825543685482314073812866881684538691481142548508023902240421270408745120022945292223067993637841816856912735173285010521071338306795230927784559723188902204584619092710482848094267810723760215197082122255935908452418731962936073217713603092111062401983579151619914323219784522119535227070782740486141122959354325061238568066463039905272147938997629978782797256730705353524058718720889996000006042955025300819617132252796440322360378363498420335029222350809108724436384169364206533881819716017937601609098372331271348799234489399664954721301351949321502754436553573346615598744382970541075453066232200338560183818886413456470117227767989887498539313657561948587016463862348965915648436897981315069221122782753913117167441757103249367466110400189344310495327657413812753781093823239456588478339035643806445837761168096599403416587376386091862441904657529729306156887899142289876978702795758741850277222987192443556092808938474078681455834508595411039790672929737844429730808527585776688766484141949839964930285482070206078173402355037833222468117240823977486285923456363690981258670867413883361224649881365094910763293293077712103187361501115195157590552477167342463409380055894809318788049256228736285552538943023750789082642896658665278364009288211828302481284950085503821219392998281928266637890993074645802452093850259744068559442962589305113582422669834181210873384365510201324067805884647761569201977584324912132774757679887029152438969912291910663473669801551257334021764398668898076854778209556610346342849047565046766844734154475690572227152463272192002237015817013416183969502874619977689181871245841717649788424927694913734620122785751699202241918077006377848940475294316959478852113269336154721074600150550425856931493781801992727088691364435735184463098919043884420427154200489848746070868567126939902176143889375274202994243504236048433704032358953091183811490935148351722925952193118736271826254799383010281220424458696111215273820261668578359055771478893598730678004508307998503671771737361702776234093143098667923643451503462409968121274856341212907586321227946008947268002688210812725494407274055271891554092498315540441393181376909408460376454996551959819271214170248829301188105362991626346334175848394805448715333016378328909074544576678880616944548528918064068129443393702288936300423949565110274622662990581853688875990750601494807788959354833111346155960165017380399054120641415697975219897605940315057140019604790830409409726461038980983071101451775707432977171725403626304930531090332164108677998918548771889519510439752364854436815160368188455901107099866529849662070571502008043460326846765234292975419091679803394873285244389378142672050372503383344419615757675666861074230722604048799380378880536071692121299674653823350046114191930693319928984864644018478855822536171407479545174248759327548356466885910497145997350368849642670633397793406740485665907972923884349917297666042704218423627768028121374678728006425342860768522670789269486276465140503096214876905283280230379403124915261463033646443144574296286033503266613128399981273112575643459856853687466714324121377141414751153232976707025871071968146307186048481168828185459754067865116435075817144179839072705981108254046693091893100478742010518407921810512008429099178916827774333772519393957613423181323646212302239672965145715296590675042025316226766339789834324729145003026156416226608425733672162941757041684494711992128979821180665624104849706490890231418941788742747834247052729107291423029348947520632766820065365933732241126003945242968033715165164184842885901757246807811526393166497865630388193628633577740586672292987344013503560031506616119514829049770381460669238993007357736529382149989760291364733165887236109300904099180071090903750038064794171556000767778107691567726388252372883899132752722253078885243511556570707578562822692356514575475365986792418983238976098583950534012207124468708257005325723121404484349228508192647539738297473749044248515116431990945878802013983752904396364532936972357986303998742972523088483191841095283388497014534466180452128987867590074180723467925669591509931591053111253422998737882878368936037219688073621932439277358862257946663066631411501198354060535814197156608704139765301824813739936455438161452338740971544586474305220681692441923232194868104512767770688832721543080467877003402135030943269623649246811390550751094691814380240404128538541308300403087462592866630608821113799149794727896007068222834088386710575480348530007430538002288994438438061534677782033480143428581691084501213882201620109863729974280972713913137900947107152356806454073546701260804403092615695494445466374963495361643854842439263376965960161443659111220961585587730993855142070582608000283664611405230589166707170160127811345004379179674680292946063890438494837137978335184340144255149262709834323123571275377243754289200799140871510902457682437997591638137981801603979703415721005184637885571518067296338090363926946888436695527526831138715789691003140003689489961408442625498575980296460169671752530257822003327625861010343162612797969181189626681301097717511984847004298859997785690852594038011438837908601178374785992823553394833085147553905823361937802422575543163734494573454574504151179106085671433445846331836384853487905935213512889396044478560832662284092579864827073703703899253345631750287415187048925366913495833230343431443872330592047000571431807596473845732109815693247742115079407582000697918039767387507304748993842540036044862425391993151314311524355175445453720996358496181531588711255777273555586393131119742075877709475596637940254559440146933120053319790088552172470657404649518060927183371039930600404799830120601303532043046043719500817848806743039659039415889351231546130845042710565180575971392171770759030981902528475473157617911241694948262606562812217322394394690502253908577020056467506485639461773748967072605514487901042832909278503085294030013559364266373609502052944972824708422438545678853768769504784565783686605457265908679908728017080808565198788873781471911270760959199351994088329531062323553177619573271207507277859980568557813172567364359938932149875175827798635035431276513604355596023069657844718617341383516895303260008016292781844851911767188099914734512101259939546811463141161086820701593789997012388717802975849343110575862922807315446265592992165491850315855106358040393224622619506764443084516014113078854229368523794918547313696809424756024771849723553916631434950794455073854423745839554092851370486965250078886639147731853897521410204460809346398742936970308232685204936905681310630736469339819276270189654832508022935205273403803279481021907894786286308849304105431573841538832944413597656300408603347232842378250489528906175375763244799427509035445326911110443058948115940971824346195235169388456743889039785407874150300074002918599008644105908220775569346429611743152272100314749549694991513006331719263553436701588068078016306248652475968688619935089232014074508741998888835488322380441068988517545146547645811143885353371200215294328760566793106678967151243437793359482310866216517097400385379764817331520344478027608749041218201972456257325642768912570761416971467459099946985344305373083131714198222909689960588679474106001673189224053693163181282661811606556344934965360499150840250697264978185307653339148268529556397900434464883728959641367810532481829176423941058623625031398091955110574078269778953657980045944179139715754874191679158320302411663574157503061111794698976074703246743607710098789489921517330207138059525039663826738542526079619193216745317068545955992905864632858958035132308416983040407460223411768106371729047221585220988485320995772309634291950205545448084088781650849835042546576687029165114741120052152024572383299985827736653214225312706481226618613011362608229582378357961566656475766815876793528007223963232960519640919178634906331064710520160931192631417950767964547180879982449715244378603357017770862044782204047158626634786908353827554653253299729205470969470949820748910563759256544700088812246276428758034206529351362480746807690359729462080606579962024881366326029965042692681013764412521424563670861508778851443946913145771121981780434856093703896068854793114379996769996598004613817662793990329773740615032371314139473972660497863652431276598422923324085237274381641571014931193098123964151628481279981985430575813819421384608938745967811646794159927695330295068562557667665388557658573951581229793113152405795081347717379304382978654207905740861768265435370198669885140244194388947780269408486624930681825691873295171674052080486342851856742151226657561126225174674420455139495005822076121134668647721848765776194005536038903706823106392632282404723299731027753907815221531141729016301407437126499016907308892312145986088893806086816869750482746376366574037795653105028716053410578079289884321350742688112316131810079796457700696427714620175907233285232485080685278884154832392391793757614657673514199641952512694589330834490962225360127150709057817499554997660621165082318050965128925254642014685067279198650456251924336380216504918709762438695937613180039082741706422438965296641047695785461298437313448007784312179528550983227211447574998259478659156272082961825178254624601355764894542052071603562168382096003366386262182784746044325274425185825647059512620718978985764364895417802850495240328843021590723254587125262813710839663027364787018785122971457841540284369148828808238637367878725230128546627349224097035464760025213154423330884610037954108697898467286322045607550264262069718028048266951771884032073564072275070909521276132483505603006324948945754605279438898445005370602294879048974065162888596712044113143496528460135164451133894379394044622084232612020543993700906917268000684111159209242248334593340320192728970585302854026032153811905481614309978191662502119395988532670708212611991126573855507050527401242257337679442151634716864004378784268298068645865806475825903513465162547394870154163224987942353681048789265690967986080085979678337206176677097729593869245454450233373156151502208652497081516092213813794303624920428198367628149972031233525667939663144842150873330762863545385304536564821375153834715084442479907393783834316226523965122776450343616827284986068621889563516040036898013147921660668870912969939732960089482243706572041352228389755118758835575385563049130270189253879332917282703198634529410877450499144746852673344132782521764093998226656006414156622103106830008655017823901358549977741275733328564318020800806161204861994401634921477248415816587563591768076341429667095346155570439659862778805972461362389356964517778291644749466941485167384460466205343658213360008792994947363772525626158501206069254182562179984629481722910508006373195425810524929221255369510793220450112981310665207481030820735253976905552220154502070644140974731998942816029989952573882127472191743576572152134137245267232655482021307551151470638810965481286914172077996461995243370555056983293582440034576308391135144858619885257343850131448691592295427886239905608003334058008286835670363787404400797097606991909420501986347641346468534168288074222076814288939044112204930070241963108337215608224213768993862764111343992178265813569974232637395283739059284180538507675092006483059426144599890038696148605845211675021992073629459664519981392837572809138733658961123983427871599824967845950162658685271250839669606498987780851760464216442038302653836922493468920766068969340343942815144218259076699717979118545893988258461212895038597201165222440154873034898655485396139986326243844247084413522151178675498636372278655845190829422055470381898813252562239296114993379026707326003025116540996704380531969997552466473424342422738049416183522295738076046451258712477979457022615427091190306484523950559982220499948660894983011785677762030554113630951924011122415990299157011146618507845032152621140197980715884969352420792772391884100202089354315836271495163413814973715624793827909385206600944893149567027065847076747250073470941375361242666139180560314124976873103364213413559578814684427579182230283351396635082593496190665641702123345446525416212582130821355692135201227253937401305490203315264436324926900601772896740589301019048281908897245553318538315035020140852852558806829367434233678262081242907319903848945772217743080181307941252449509604022838415224976062848397269369588619797926270237169810795222684185886900320768940545476832858484404503766435908207656960984077481786134775150616909288247060781181310683238975753501945866683587311688186624643585432120692212226003452731607121101119149523674766426233931872979313821609625470895056972776791142625755141269776069023564451697400915540213253056783864231963055697183131631767245453967553170108063217693779995441722097510180617525868443580580013760732185948379186391082486330609817502942494222597747741363746308653124173625373469091468882654418385357374364323719280322428883331018307143733180938570312430894896458052120546163799726829628810952126060252689912010778861727546495045117428763695714037991702238216623551380036147725285226862829320060079176548951953805812405275988839928263944233873613115006565043414340331021352061276294178620253664906854800460641754705805766369107645514220163178955798711276535677628741851621203528946972399565586616526861512891723439759489149847281847327996425214515839702166371509460616209051190794771078799543349600589978228697036630340149279862349832238681838776915621640929929569915784774966912608733514150562742500627091362537138891101337832789607647035127727913754134334942239742997313000780484895849565149366320184743356810697701547414044746604484366465430603546390752212586255841847300345223553233796392033285372668586129835670891795253883498651621651352229256880946955304881625580393003070615025791397064442383254865325988165292421713597204492874296514123355594002234465797938228119235749044771074368374259123972361979946280707267300897445890028520216609873392959767249847181026206281496140290190146088586682137403347310211067438609555405436382883935276699735213007742258895944694059787253341611711826145206754534759169406273049412473977769087103410865267888110908612179119647795335347155701266736660069190911972961305417073275981846952571514676553325180841711687582762589376949827747301697345260623389183708271787463298524228256465412739351175327356324342386092222628960431816979048816907638073179358289652052087472417119235294184325352935785514596344531932728300940440646540575799866020291231429751091539218585268772168807830876918093650509770974333163665927405819545294379237649899088425409902430905163849093302500811733367512392953851220110821054224767974381097945885010962674580855867896084960381038804406532288325099602093103035806750373416322319607783513302477426997370964420369031374739126802197532137831181854800815723161035783262962975800450807050796245106179132139000779841321611203899138144383744175539050630596940986892767630852423680224777337141016191468254527251485253841826343211521417112240450619931604620002551233983903054565578966281587319885595392006296971073241997406985781391351866781774792259211248519993760042822792561190859470788997994829934231377752478598865502774139289203590174498987563540249376838277873944579607929229163589858777295980305100352853669855010229806358767308191337046997741703570767707138828697643110802189887227700303926044746879133587291518356093194971658056240082348922106920969994822389503851370929944114485887325845677109112686677256108076312017545901312845267068331992994697026916219517483422433748647697153575099015884854575689432953592292413106756190465697164581006512571618940080802794103777433538498535197348831709586547818833864206852679331611189789879872645834059746061775166982339650619105902179800124858675564029623030613857941476704620001978333262273654195909837646428433394756335184425719331587856214173596708216106893063670525313554985276076862320165712096008020049526940193202505975561355438969607054622213113592263842052631178495482120816659617153506323280156525841009195401810929409340191541288255459129508879145770127124558952353943275887053086834749877704990539088261191079675909287616668246703459505782353754072451197219527346569843588522718169938920873009820309959526063058766793435892310536370124548069223605374711864580558794619954758451256388491116402292207727718718037043704329029119309331881311483454592637532000181842208715787123926823783597890368319157610386882930503917007264026962569817349067491946856734738217921666834318913151437807156255730663809242022306369574511366870331345388066247018318011885541477458717088816005508831936254135640738236117266972083618543638963781690314436693836674673354314871454630451374027275517317807903899396884866797051309379597289192677794617897924806505994265858374411653137931405284019334335437210944484399828347158714586289643460581858344586456621378236086247335214185419917758473631900189123214884163617954917777367962091901447830495059190661487231699667267760136411245191737180267056588852922378559345224174644447893649357483515573271000222829247332142874513659018335323027541557436129847623193432825950899061409431544175060047521515011981181799283600097408303030886476513103102147164655859827686574348200601320796059231967627177651985742663234273957608065986556111602746769088093596079804510990498250312218793037365549462326218918231410255483631393512490793227604414677760726349954178112560404619954403821789081693428447437688590537345189561416656049192009061240682632335501373888833817159322367605684798148509786837622048524602155184692535654470021061417122309292259790294402126489674315316925247707090863291621291724095836528611094224489219627489091241080165334120357763303368701394056641395136002774219871455926946770259724438565455861853832428000705879775524099111011143705709142929037844468332034730039382392411978980746823797972387586607977001016880571420427114072480118773286231381906133180135955116478356871377565567726190072289031729578677462955569317447603871358064883476984321756316409265894396578108839871139444056781641108264846692563913698546034545255225070594265741800066004962863051962995024506093285422336899247972145167961221052626813254519097056366922657684901225083700618908015867882946276869498722575510473571829554560214302135049722223722069593795861737986904162570705720448122172341201956167764153444425777603101114705460571562786686590083541254394467139262586422163021038598572190639211918538675424284713623901022846601069679758352849823759174968522572209361953584285193764980546041568786701395985926796319145825955785522683504568046636239105392540264459195938627839265401697156823610512129488651652558679098810382053944708036171625474363458275706137356803212987218136343912196495522755255574067840198963521021771508792219243794716804111497162350936091110922507387610921409444433077143310013775717258436765930261974731795471219221008495280310018595172501114695345289510668531693965540365617026470865408637027935283429456592269179561007916488487309830869557519375696280923806115725122675807055952775178162042719799797195393814902582050929845456141961443761995463446411810149354339013121104314941579286719241351696585310857370437177890091793533303564553503776450028277917660737302603957070655762548269605342454665955687389890750018855589703794802544159260468954982561385084486053451286033677798806346405676565199016787769143544191115127135098843573473127433287899649660305274122926091075133153116432713179682466066817137343753777540536276212874839592583930228363431942028705485087596460038092691044859103081008119059304477904678818544839740851638239229818469531081386865923763597360689065751110427944455566749855757362014093442505956723136612810546999486315477846107544193793161930746232596834220030741573134977121063903868964147816228937288285854020624048809186449033447587985540490657866875254085605262599635363781878595209847723936813619836386753387318315379714255672431599279014267372647122163733265270466503198086641194179341967103306016117869953086279507185536968651688049980704952418473954872994840938357643889358872116639564398200654252748206571100209058451983948811814581556935846996059859607077555935407619133221706968144160851520760354850314609961521867931411096483808796841511222079677187417965187653566070163583578447359156685979661798368921847318313578984150869767599364720579483697564765992321408465871791771570139691311449442019912004061452835447980819227907224636521495533959549466028565136179384906620072440459098018169506583247739565964388386201902795659943998498437247483463527928626650454978174600916467959886335915354223631466763044629077630760632177707408864993532110884351765594519701494729288413191819961537812935215043768843896437399049448389148573472500891693473131197172390430629614120143616467402820928623463183693538466578204933576244461011475851685758680727368146730356787862656225585122045272994487179793678103824557002730179367782319264923858315453762898790261436550285652900929521308811190962921679713983562857710041203131597635899421034128247796163958513065904265723632236677096056446767252429064814565741269425214189076394845541974840594210496463897481972003110123801571285779780618193442584140143398062850098587157085925087544851719969668639498077297404421908092193941058865462569645778232071241991902827925063980679146041590084578822443566235096958989326042548969175316222240243784337912178751341653626210650435224836104883905027620351566698027341278491253845963290209136043149088006999225937512435944668432414634781989952530027295078564624164164699925622829431777225383235815782238542550880732398588760132567826712439962343825059676820534344030330290166239742883304288806159875884164689534275201253070682368677786101541093113566082220505289533821722124083282204286937672282849240901835595384292379936494276877250101524311057336107022646755779972506526650112896656313423794564631590281712996810839918483370241197302459150483198260384823256186351708485140901503393319126384325229520102966803102606442250789029554123556825084206030067576330874654652011456949983846369499461055710135761614291844893346712413421543496324431675301426916836907964604828244177611498574110851075130676843355078748876945937498124375265553674562285348486737927615256737702481305384106011924816791841232258657838126440986433387400179008843788567848041918821678636487118504591274714436359724464234649361760455028915175821701252349109680382051696970829409516456370813664816431215845230044553177923136513786365301193388774231077626046127921174907629024643736616675507570880506804322266869117798688590697403445060612142007775446728937431943127651137462453506066511584932353484283295980958290260835210723423818031367208850217675602830540072885660538478855719058742154705522694965429104935315105261574535095668138954452114720598072057845571195840816190348860689638706881361040890411049952077403618624975667800611152677781451386354418659912180823754091536830361307151961981432283391431266729988076940806440961848107496687555713031258071474936331336263671848249677042584532867572697165805791694346860565607520238171410630876625831713144936052594447937965949225129148374280128871048029458270913448922696634599128299978954667649936013690208766601124629667618299262462533170753309955450987062230367652142221822246161334468146488818554561414718964645767627049669971622663597191857975780421949919494648952839362618596596227522690113648698129202616175456588999501504298224814419779475089168495227647521793659738420821803011710991561354253479748038964939122418971318444071591003115091755210901619576672446238684096611804710671288917038556906565501970281799830766817901444085483328174583217108221438639421482266737283445688531058214608297622403077368452181818257655074062745723925508762387780100542476553915117958717071429265503896339993112333079415620444567203377446158599047706489726859981165100054441970102033677925143339176159407361543648290759114943994919570503845732708937572699993458890227869706846696259518993624469630787953932667876842086974289526407096763512214674048337466212831717817736793918149925199477725313462339876667982383698347125031350231579002772589241842484595508871754731344619843464718453635176581747844269579402182162703435426142596967296758195535101368989039646502077518581608219088778927719785106478842040203859654492134739108109848007107419229299564171128805211549748440309855691464197693261666876300318047540993695645529526058832317799014082443988535727860676952684485977942874930827276626676911830811646236127773844967070622787236321958094864282098927505865803943080174173526902384737387927527846215085230731899473869718224977101261327272826013945756587434914282035312215072384322261417974945859548650129263524024271441055183114880599941230880243701780691197315390884207310783335183190434756453089780309746166493888322029119971601589896888442042537915859157348909579889223482363001367188641253928584885716356498106374041719664007182873500013397885792181350524056364716499719768747308384796850384429526253900250422404027222274628119482270583468684960746075128774300719528854774309621589140439911260545051353696555825875558944851908234853545261618989127628672759861565173998932732614832582670232734577930963830061235695046844721727217549653633719192280771557110789705136411062507749966669129999026997089598938544991321163844041972125388903060470843925879979255721689769124584944538475122205885122769335207651073401842951472328014194804472606564138177677419696304974648382340468513230693848788509303901471793717514651198680060865713817014572846430220076643048713408323613885560458459116920008965206546376906589973375149874352930422199502109388575204080613923845179139796329360709533304482539697382191917840418388130472616499754305122580226106175999689736512211948141140421386540440699675469197248509474305837007105878296976577916301096808946055311458447233396239000735649822463878029676268943781226817887350900167097153846442447181544486249181701573264378408121557393455787796912226752179687770242009858126863821984405364250687639948788266606122915866972026695399736778836431348310949813135179545206850281427020054205055778285764481736420521605840851331787905789211730342147981093879361704298465396897975209145081582330725326327052629124053998369950024425209878918668770469120122554972771118746102873976422379144973586573494688424243350933906583192498981477713048729237693440894944826245083330804554913054568648497078413929612746880468060760405532303029465192606250706668923945146837071483178403274260026537207261494842745091879435693145194837307038745555002398959375714345518959713119564016660515438795372807535417071500692684621381492448203198094007103651099003886883434253297122928400829946614273739325604354132049300773101910466098350483567913536887133250383031769879500174153343436873786477695282606313226985051834546934942603453955255235209262195991816887993601218535713399877975953887684452582554183255995208354743110892243093239313488134862562860432659215975012294033774179232388148096176645554164415638377322872111407673415322002448605800829041750977378149033121263101397164686381844468668753206567198718675986437491859210096439537119194338187746955451105829847776732163350278144400014384358397447916580615907896854862085797296065962323417136283138516307292932521585174502955524644535554000685222255244240623710574940695577667975322964166983631366817576512575285054259977156125121863439354185831543708985351969203139193889315214473418385618983247685812161762144697303186404761029690997280314226590593927745572871525154870334278448076089686512398029178026329178342226632887310590371918667480161827015588239059407792098355890490524766987936331140491726356203379858158895465682624169717011540130752614087402595211458864704346694760545195915214805090166894900765551390771214715860084166708551029174879128524541572761567681291938580650997440830944049858801844630893987067808073326471225968581421150836983037828707158039548972528050747604742535744859890707932126375445040587736846003076652664837535047156785181946818431718215844702821129259353534655055049167037769421421166189576394126511350006573975375225407574942304714351870135325421281110419987446202536475469031221164420067687688205543886568802811893288285190182877239977126809943199424741674557841128241720357341370825139822593049034273390216002515516637054752852007293058418189727509171052831307492968683614943008054173494733298942373546436286739656240327894583127312286237182730431718535461622097708670286650289900294342399702744116055153937402484938475192239832361450194762194157854206031049878553394938334602645579809831398052398300822085866220367952279539331507374348529086701785557490250941085042908591425586076762939608082013581761543019198817001427746755667569601263187339338850514400558814111716889176930882875289597571560163805512948580083043626286414395597847671018979263357456037613748043778170005674374656773343531830553800813429174518371957499238456722274291627560367540821150959103734721887087672241196820339198449434535277223362407508671377064291630941058503350865109155448935752919570534623968946748065536596952175345989552411229446492738506217830977122846483560090653306447493247951035340801723961465219978340715378800630485855073351216416788283795863887725028573617867896127196134354740174722630224511683401136401028215015011989338621850159656804184765164468629438806946879052158793177160413458672983301152947989160776202989834320222311285276332280662020124192331944886830522104915998705656068712152716815535808828601677822495265211464776234279905003130273183913921942963576042605305994705677820691504096617736256133336049857026590237535796871894047938732318694557852520174006179891206349354856154579859696682494993382119724756043339299243198689481876240298352412441403808422009338819880948173658931365502284314724492086996699263182171918933747151570843270185071306584256618486169533760984603005994560558615622810071570236484860201200400091260537789253555704416261695828921444740650805893133770849635926102739188265366048613421314293194692749987113786195697888513014739971915292896177640913518359299741142283536341142833089299405966079033684954963125397459988879592157688887347716399076832080012576353041965962443590161836384849822390163196133199513278928745994013190432338922752294596723221349041794631697744793666332715386298676756516273526868103049720192075911721733691397608937665573969055185847264612921753330505149236254540747573940126460775237627911429167943490186424266450946338536037322045495077303119422957808543847413848610114219781797986454516463888129687057326057613716702774913404432482888664311367456299118173917596375802075450276488647997137145406385177759783451693773700691007577419374233534694816776329292893919765798461495331321146669282298603870560880147041379562393915404616876419604286729932738714098633099584533855911193785463538796074560593464876650366223740786174622889159218202894709147308006379199643469195880910899563181317143753381472371132191561936902918505201719475760379808518859167731549175301415662122253384389685677841568525762517721348132146112439045810724545199257563080634587876459460091930913983466530523014927560720470881076230852631456349668834575757733354896547062475181428969492117492521003342627010560057310364451305328744376297896456501224631291708938678716536010778894810260487035660475305066273703981408101652336502838373094138532133135692213807676884183972004117509315167213278847925826241027510851092162715967205414625216646749592067957901845352811662554598313877475457957021875757652921836124849615659285993747872790396867752101042050007756597070258978546143456397035711039862291562656343257760888229026717586154174868596298982588175912471274051089605791021471769212333181841927738993490365463473600760283907762943559177994949302955729761034481665163503355466810905719375283498609425635518819052330694864707384809937552447851227578279758192025121419145582297029081652237042230329088864695166272994859956012733553191320000302722023316763899396596932937603008244033231037933033904396044081591903813857883445467995817620616342576299919848709165085666316004039504159893383804276289563788069428205470724256124078966275172531774502898255774973557642654508833268756133632247582565721796528929330175899629997377370981480840508780722758279643650970128696681930743861034717528958779915729641194888658190676779775878101725878147787597910169489070997110405047330572178763521785404877198340065514044307081773080389895248673182610576189627154688912658471046673180949268303274103521850606108137966859450998498535900166666888793385940839273264652470581491777520976362248568204710745710745415968053051927924632704104131853129048619993596912372609460036889020561002290430606114505450149422100686847910170364983572200528598958595113645436060094794301759652440171202127355346142817126200640812470472647975220778929393975052974419905502340632216831658115399634672549699251315213091465398447064978674453865538152729839620541719821412729955922592858250436258266755829478988411310446433302692264238148410625206912061851504848795757494153564407100147590091863158108220192192547851680819945082842208043538119396244686661733387917219916405838980562190631469705154669303528402698128356233311463136147850593293272327735934389393885525572475139329418259886931589743868159250989566998086908242800057791562209310168129595456672049831892884937018121874780990415939533251727848723646640764690266477713206090146728916233204494906366090368664105642397115820106747466714414763117133662853876897410198885531963639725653471341109347269087573991714961259534914598912227588675695954084441139529581664732404624720663747227166723996130326360537068834087266621457060949315136447434337196824556157051840054976431177437099473417747620036379794234824563978452574361530349603605887882907205253169558628417384645711518564993401726693484056770808979598249759067318195670599937607160767487970486522742663096099355038922095833105076479832358662674840214858568794258016321886969815771131962390532577516636619185783793870407846688034286130588569902109757214868776782385563437469745577215409779440834863749360050868529634145101827843053048288221287918090985945888555953373993004010981898850220068548650098271774575413315690538378129224102002044405404977203690462191101090891212232278244947442547915130906322902256659889764843789237858625712073531531236625816966094585859668668630757986035696252190432680068542835091174403882664409881304742238520379877684884263747286538053762554373982960510952343791789243982589684675058773883362431510693879042425870713155069775992261055670852994767467243143072620208159950287846260377318971477499817379736657388440873672027636797199649313431114832979534541591085317202371867490512303481107272224086933261364351898143640351551288741426473484912644397313858777680799287234166849740082473581533074753290798605235448822031471098264155857737671288974327120979137579009004083242689117068191987341175561111690209886990095077637068148166309908001557723674902658286296319113275547306211386067329587275924738640030545398901034065992218437754644478176812522732408223351123492874731863751510418316139842035423425315210091939331131252523792730485719035996278232111472505183125227605249005171687394338343091392260083523681523654590709902683466600463346391349902830325820550113856169390976720869305720014505006485995788390647324624227199196317540923964927851681678610214407526213659255813890383218641601210516293911638199377377086766047226120828399082359014425441262056488104471713354768299000811522178584430182560124993065169069647624480324589777022675304460288380367402070647440458235286133086654206273766385106074494462399155776208122078257134024578211761444498545040559838161376837360125738614174021401104611450581900317916955558880143050376129966965394983468170066490759618721200008948866060151573124055703389795029799631022320732860441645907617182328315424537701511069845754711458382363255486201379931823743508087097488569127227392035133177127276510726865357528650343270081571956967248701224945272359384218123098766193727072558304072386263575273165582738470097360286460097324174570713045388287822082770339770815618105040412268346700060232155331768902086793359763775831848891077309641482294554853933968845168859302640823506961893686558478983255889753075272722833924072685597926027718746604304140015432311552042840490983732711057479810240029344063255727460179537449944953018177377657043053035478764597087641474361987275789116912410078934416074742954742586383242465714237401114951745218771353943723745464928119992863245696770498248811520251086623086769567220141795899013352898688631900793163243236729215599338110473115733401035908202563665968791365626905618992103527601210069665547571240336803699742499594690319709024357383827668149202303557540292680457863175758965843924638896964040622901523818082801420676517402941526169531950387283581467402412374703600133130347305143221530869545679584630202087067475894380618671101935371852781891287602004881759332078809072998379203636715813488581572422003058092472238236997093264997435124463599808010924322536254062308630649832255754573965558164363411073924757606350684875709511408893633778362777878663327207408827322811464411057469088909781651757222765960713347366767072057034194083938273441223013875648177118053814648014329187040085049407115330813001645441608538367365070636375966636250037363127423321223225288533054068368494728979865539341528769310596969602146865088389575137127170756071462593007205031252784577719234327101988480943693969351311237877312616130736004498307499793360728344565848354086692929624892214819032866747552070897615816702729127167557025435545629730718476827239424651296870126704829275894160781546063140957757394816125657706254713797456837934073632543043215657044492562155303108587727184417378500583490064002907186301918568850123755625254254252108115155448388651465489584838882008440931479765831288653449570892065776363288760703731181203802071708794634689989348677209102058641322043765803593915323852189532874668618153923142085208513430369348834222871183246053212540408998562306182155349601061008795418835284392369764106712049154211992512448077193075576444703671303053316093194462730478630524188982717619302570751274548853924762592733566539745394828836968562730885656339568398197554388818312692770085219356281782420368289847124001243563055595401164782225564633947790447752228888051832353625039889468246006163660786751315704200440086683223511034224514432729476610987015632505887748937809340353609936474195744902113249350921571299647823996156364289542470284649697923082105400322153386634401297589712833856747124227885556931663357992616729590782319659142148936732828338401860272812784924510490251128332963885792231774058295356874113061009094310377751532751106905158386039307814942050992810440413370441462037632357764734971780226640370564938584798547544323687298708076992589630077072065902843849341599097773741109203950240663794982133653989300465658061927333271331467378750135414565132192685601768821510225613423370781188318171696260904957567238567638585857137086257362111878634152151071607171501377478515187272679383672435347673215711971940050638706573007490316028633189736954002296797173177349733644010981059181929814698873562231466089703963669762479868239900350542941129661735341760653332198021170062257064471377048027938431893268305517339454208576704020124412245830114171108541226876335112501597401307632765972958246316358843253784891319825683621719862719966054630378920367325758010889797408679855590882634963989258052597789845111012903571199303099789822317314297914877198621377655981458605832709643182632988622411148408174577227534671605367247426327678859393528721777538699188760962340418491600959108994654608167256760340016717871550343417855422982325177798604111444093943519524200727576620609841002592115554699751456737959784265590644640347795390245899814161829505829101375648626131896729128910846203536024498704162568914567216291402766085557922195417819828519211549205595043289789696977353199912849204184594482983465008076014152436299343122680734971282998557918910768896806127668347861882845569483322564418954038250892940310025658718993424297622653586076336068158749610965913970813349068999333341614193045896475103142252921270027979928068443025459405964829306457735648530406402979681370687150491943808088688080876307109254754777393459322150893058638544600683913430888892564753308234658320486577761557051077305308762944170548116233603257253755287568031616478307641711631049475855454575370548226783648731883439949095136511250924311537209070146349002032699608067724713804534243040364121202571425282373978497419192091356790075982513697287902424035734824959332756915011646248536662914360212912684235746595004370579556463512839701584054934344578502269250763196155338791280794604071174351110922386264902442906490622261313434253924891920606176833533086073387170467048184323804113688730179027692879233332818692925200854502300439001639479269928232903258698185701122598268963804349685596200939250317892260049695945833047040735420380136186627806550242969476224948817101095748997983312197887022364706584343695598497030225843022000449838197712229421556443969833990515490661815849694072282385029457073228628206765370313266752900708392459254431853908439108739801204958747487521398761179770621364261892321015154286023414234430079622856230139661408697071859211163496838804242330367234466516490324538187752461953736070185385192451322513863149863672036735934637822657134425014850768557357199437119178739667651589539737145861655036650082536684665711635971961256177594551507257644126534497568868429840906258307021401487019587940660065753174203979821414446449189399093822353273479624302404904822632753950474334995384863159144968613768524246907276976982399011670116282987498100351306711012873438929284930122024955793609691296601357651908634735218708118173357749902318795877184605300544756944573832378783091780256860639272633144960576066642821588516065739591383535162120059707878119563417102410075578555075697640584045404361534983725880936351851956982959711929910762954498497551279872672319015697957235339795325633044502911937371658342162712332721514450647815195750363136069414457160491118162692129970240083551971438112886680379440477208919509211687531509498975525849571996564351591739070082645811034270701520087380025574724176071472306055034749180302602739009251022051199716485506244093992688687586898527566823907531438049718898616190582701441489682909345331979960599442751936190650150498726768538381080937839028023565836782001674051872514344400079920788625464421069582950847999533465289372053960110660088935139018215090722259613462064563502812756210918297427339607519859141477360534531650671303529017362543525034792169414510514336164371714806314574896271968538673894189748160183504493461166911180204455327879367088603349202717973047727700521842020103442313825756393071290062551170704309420131177839585745058576362908226729010745920036818467944317171814784113725422299309300415381418783357417091567135584202433248378280523850481171518687844021883241015131602750453946705735044050415010623181477064883949118092259617018390183155667209387336294837336384937463379168984787652201835886450721070528674257753649790141631158730722372472506304938190253267911928208592584985913679408250117959635799629427158922975325100836543191360092730940121554729051106464068613343146746656988430122773967932870073242570329795551333362779067131317992236999668795583063698355833838798514914620428402370272442618493589236395381368854722515648826908147098928727892459731592701265180483292483518536649749443877150227070150573007474704372934273831937121759916263418740367235604230731387526517695482470585867811306724506704670486225926191991179344481421381196618602867858037889809909020957163020428460193151811953074843317233047210635337707862171953588784852190551776168179570559464971809683401996262318766919905074625759314862136862252744364766628531505011509858477337216762960494302351588367128351682476417715170447548337813784313218937286711457514239407112331738491144314057325962151343536087336594504106416622468296173367907971065088259093827324262337877330401678950764737311156075262875859793864086114168541901884222804122705695216628258698633411500315547336578362187283605583806673071643388874387751183031263509358379709630459661277844134625693309540376341082053727864918537480246395140653899438906904567764417096921121099264010562204450977602410703991339949648608736367323713292988929443399251206750044882100860371403523260049506418287977392035331571284559539060143380174931910032827137166798742759928282717688351255359503453407135171981315413928501534789035756367456721974033604173369024263492568585255560513426327552673594040736577368245799042426957344757398636868326654396059808172358811543745274542967766432607735784796742148197940773474260971583127371785227294551501154795079024054214553046331911480039729046628069892094830227339697679049962326498442281905927619915901958805665109590743038246078187772919027335866850597830526471557707666903978056759717122622833247486237230241783306870963704722388845277834920014323926598378554762041982225272208871817698130481465704521049388186928385862352556364858977749371799651812224682082535931795429840205635508574370375859585311805280236470512949818908232004561268357237447661077573425465644605629691114831462018357934710992324366664251112177209480985213068963669167484685000197326857935021165617923213252990512013459194765194021836177902776805230908876627561701480891681021085781775140366076602729011235761278803721244302221598551911036941421108420655998256413475780306430662985924778933422239027066735433510363050298721118943004573532669373684842781557176009924573837078753345366042638960347109070906430715282278123113551382856949665281728857562725943896740858907532728296047188456236214209962093203379746864245521549891147382864602776905495513849530671094129765819925663486192816622435924592402871581803882670199488084376272426981799160596795475392799061423867906666143269709042472197176228373483141136338114501265230179451239827350848033479688375835484236423784049505534330983876259973763597259669067775222348527419161708927626194081655806930075807194471216053404747288954114260766248865963404824138196292212492605944463265457125720499577131442879852159198478917859496126456527610801811079976513115107303507800505711456723764321795492602298052650527718061116049765717178792358098642867369860907805894316133462761578086512721405587126512662219980557522763881831283676378799565386403373692528480989968804864518588114935222817817442831634206293233134458830661347232330092448686491006204822370300688213377077768220013891230742936659323397222586155970311339055491303318455097504081420520075826579416933275512534395045253986631600997531085716083527965735114482884969285313023631628426904966874507562444680582104561907562039995653330625646584554693643535962793701274948643332586179025903631758052580766329356450097813162289666416065371702865491330337993066330877757398614064887129661794884901139221231263292369082854742132035088002435737817700264415626576686102358777377705659138235167891157314739431029420165824837018291576085133350128655400647005318925207216341267876454939211763633362599708448983798881224353877256582598806030069052873846038165063364453113118219818838924035495791888004372185810199275252581698970980909995818245627794715929523985913903325731568279857654032833115084371197501184703427093119904435064844117108329030412423641703700312201599074317035633036170370204706911867658632105566343358259777185547322610608629921338567065692187714861313968624158147027519913029809257945347743950395947437601662925856615328791440691463377189767437474444913575825552415539721209721089386165019796006185249613537056839120435500484704129231021365907477259577825539601679967681384774824277447137537287651834089309850388611018794030224952534923092270922153451390760507672443590005378040841663192872084932307355699890182900724346579007312132214599373838535337719820389211587316840934220883979070648822052927593965698340081814807223657855867656457192034848205860762642647904532641333941665989346461349607879866944162875659681012728209805381448372337824702151878292947759436660881239539551512715474081089943697352707908288506134160869021541915034456641673280049841226940327429561222858243691010204707295516921779156587044996968444315399388767516163783292423922421347894527513863806210887257461788407492384608247162604770874798445382308909807641830073070691299585291953418570958856569448373233873260400738775569264772658875440682889470805167549206471915854185792214211115354937985176677301510115576898512763225001049503053443761373154599246818755308780391230082064484304211688484402774216012043945181526026316142366189433488310189960436802912646743345099044316654872063024209117996241684052116516684113161821748099064472219295668295858507652633703751336510118284733693859269709241625654036806158858061691301370269233171866314267062673857158783393593213020956884634820892768509902618351332303472820737366747480912584546808676435638503461966404640648763708176465613631181063851691900013285169145839278583250361450309042084317242538230617188724959789356273638720985028287354360439589242618023799028191721513161414815480385195425684018577384478024138909301947293698138470807660865205290918815305096664149500938857964398520215919217376735118473473877022651653219531694209876473286872504559186982427703867397942658261742191283715390249502591253042344167318091247373471357604539662560960362590206861432826660906416304652842203639550568719659718610377741638143810423214356754747233199926536802729404001978167171401745313521432943951839636657336114450278821936035441622826406524578278978277659466108663426520671940264116990022837017002604474668510626378442876782476872479979340767159706363255251791560108776158651677365607625871082199539184987420486683595507658088081765811375241771985065631360389099720339529693875972541055442060302486805657786278759821725346877801843907507304666518638695729129199054232785639149377890536339332867280510983000537247453588912861786948466649912992624440268974363925080055715485093987978421270517474665402966390406854542886800295254721828001373791877698062713703399439372501610324281211675872764671753591774400637718678242017252217321193549870402086206125617269121285065710712596502733461938308345978219634586987412636868215261244776683114395557919694408639853833199278923552589976109313508997823214460946319913391092821465703366697181390257901528121740271183842485551542117629804086208885127367436214872452676214149867337944713372498722566518393650659708349973441895695130595554159192453820044427933213105222272535995409260899577527658028567615516017484666479494803539944984031971893705654404047389240770844933987485366707789315375709642883734461717616203879474117325666228562558952746685744524848628498225439358476350131652562234590702100966489730038195351037023724488526120996522529000511218295968694208249563178325789341907837535789346949507281553513145126274686530100886987973189014082163003669785783901528885840739465717613009744345833808827286948697590585824203759443627850829290205834088713824014611782316961845889617390302139044367898361755199377061048337066201827667023194387855992610223164446559421148818271463368806150529167381752889946011903548920535153190237167364624515173010143457820173026629558651955419284696268490599338696516966013341620716314912168423677356762351148828016034481899200865502399754846912253242468459694617004157647068873163732139705030675206378066255767739596277042666391956684481567451599110298181696299670587798214690081534993584575336017543590910674153556977401197918276849057146780143958836415080410268281137162997622411216853851408018007813174745055047534159479844678204999222174366721098402476496838066214912713633970143672868425866591506581914422579388320529502690008297735857004686667477758371741330630899463619286523769160029953617219740656834777902520940805156363157489910815976257569369896352750492777292665772599306833968541684444640852133773219044632326873926545806887347006153089291565960318073355042437895971876659778593744671605547996152164291036964526776497124559541117518418324309237658381847656262415736539257557077697784387451570220451839031951358100965785695303753483589396656134101384003850546491393929212342129215721788197519988745070608365263071513209081903954641929517906519806712675699536469503426576267311324690467727466243680274807956260867661976475184057618801201645664996802860232533981768174939709602238448217738291941111421910134570135746340997851984967982706714985850884126692810498935768216655914231994963034324591746103967000268220600246528158603723798270380229760548245435405854956632294844839037572325792517985643980222026113378317403722872395425546010724307618393140354925357330552850597094144910772214554618336539271560281271425596951800178259601581402016027700936195674711782438754760260152958283604390052431127520368066167719151825045004727583934828224627354268243615862741711420521056789293949138681824618125761634599866022154298777840710731375241927933686193437012143865065706451713097063824090430077726506116592543946060489293689655447821901939015291463560865345156449866477205968823663756754744785478001207355142885000052819049181499995701645171093054767234587380445237467843635109454596163202422038678096873130534999348561289462009039182291024081264191062258727419401073614781004542880723504165612451383745072176787597010854549178622804471652508260594011641188523360711509754504314102731014473420457598320706447106417498560272788345081960817727453516685943238259531435717329291058473019932895710881575572845988059948380308582559040169294079127107548425760853787182964631530874538368070196196218699381030906864714992695388140476546413805224847526016279024580898342265299256399375122506516614566761136468091125472721278925105790428769598551296661604088100453086671253070733539335453844106475061035242088390305197117259584582900308712585905829931327166435777394012487248846375767186441829913339607185868081688497649214325711233350067537586392262946782354277401575950834446724139512712356665180345924126952513153566650289744511882996622864968122842676095218317806360102835332975041697395778677071876257065386057677286296024188439956342221086953322274624176547710932442316366682163123297149535629717523381524401822205708316850744986199461095151844122762466082582134029259528391368742699197615123015301632947940233840544567348161612453829748363316457613805527708622721593753842734648564293245417401845271567201100506185545903974947018729339897353073385422405336453415789080920744316696023751171595938476793042175489705250041169454967563412253797530185708845511764566497578054984178009177468198770490976137555281753783616214976900571108841858512789281454118351180468162866829613938132714398009576862906361869091537269186663024619156146896834621703283347536289810008572330125118420934529240888227663740460584367846789206716398776519788910842501402251444063312144855020684836451048388035671111348806137971499518135726535499851642706327901181828329011200691781155216806192530459543515250288613776654324442536070479375495292773641894440114960233925407418827664980660882768881885367210947575699656028370100392604919251663686710276051491670970998081779229463543923473861248063595372739226152450048663874239555693262074920235222347056924770162129109928424064320713428928851781261773128863216048046258789331397116434329363713016741650510357321426941635359643166501521760330570876894639301116910885297085653232007789643857657470838378443091957446990379469900704960574370444660602074589054757152707628391125041682656518949590255625510764509403503553742210647382850410534177000924287950121628672697625921932886134186032766035052569004432134485792073011921059319419070492899373705969367280733476777312523892761522957532277444035018631740502117132688635128531509050897692959422584073794826766439312438241013546624449000387457718094210048289093550387764533772812501054993740281579770524119780342718562104416207530105617871092004342636085156474549256034243826343335955540176568216074401562357866690492729338551717547863466820178003627157894695526210609862108777373342134235248009307554564220925457070803723321540120946287129847119431310303652626008637088900531369289817004002624692218918994335357886456064423298755063595829057586533687810200832293469254508279925435763896272061099528289752103245401385268797892423008810815361112081905367354168417775219189210105689349632929044515111181758937135028435231847999064238855012449852905330475813787537761576461435935518664788969411824277067439075160739032425374755943723276194563081748029096553378018087527776054940223547555917082692945757879322506334553025621486372358047943865976442102186579717834828951505674683188943057669879286460815251616715827129525244626271435339721800569255626107524574569652712785105825069512732715186243262769396242242664772830466297203175273574230561068914313083310350001379669019697423122471410500743738122982787004141897489091087539002910353432039791179246840846588142815158097174718571253631614393034175865860684759802034774493707525096931034058680057862269861201763105217660128353832370190930756717286924425249627769936750870682226379155322443807019617273027127972582211464369110978530200956041619663879538489253393613856115952959499396354969789722217188709677440241799319627857185238984218820879655143125016400752450072605023530651853629591505152181127990313779176606077151559858720796004228126232650013121760227157418041015440964452448452292472865092297222131392805951094345034517967232494328713838201673356420690537199579458532107205922593466957611194707773473036071961147120452006745273641161710852616833464734524654328842300208044819924471154499117610027415455116041156998978594692562144217749466249327200315386570484694405706743573346959884072667769559562651171312612048527440538050462117034048559667738333476582315385618028502134093778876526856300742286728692666055014864521965784110728692750009993863480612371927838675771561426315129731392142458484683059388449860225190146313236350357027705590026312580457196867971089947775933139978448718416416858270868001592544781140259020888739899880347836888870830845825065612316542624718338973418954670880584997047247716103842519489861485718209451561080520887860643184548100385271791588681562916467270950225041107440403919866347292263508236414720406627779407143816495847881948649328959534019696267051740274526781670859123558298609232786005514511498786839840350561243684714508261760972165899987293043131875579470441843910329469633158326642628140221655854396142775023799811265502542907911012577282582184678423838881546558547782763650816131191205512433607242196531291979622687750954332256404949952903642174358718859487542686710899586645745275709231532567530820781797072370831733024112389662954747729701839374571588515744752392096388210364503324456092878924367532479695221223574596895617802845037083662472192114142169674633932767092933633193235492694162965458378440175060035864412016896504439763893668979189596822674082160397212751588242078145922519145432341567820032879829602243979231661016566506337358884332457367277260295303772163790981452038239238429332620220887784231076941815083881216556874452504328245329859670984694545714939124837342958356819400147999693343894112093736837077397249667504099866003042941107943427963032532749795844493441785235993779108915414383841030841222861783143722259218422107550833406713400908676724323703128842817066631484553524962771624959261093820279158230637823680293961077001211501904016823662921598373855758363776055647455976042576925741392868138162084321851709171662284921083165591805006977488519634065516695920702257739842363592644622691874792580018251738458575761040475900141619034562839155535949543290731801437911370323152485915304328194514507305317780635221970510576859940534848637417987601317403872203133192908450897092713139973866153287344061402796565309884801175913350586716890137303322165549431633674140022725635309502815211731767620143120033017492355314548435978888112792407693387091380655957340946926450078640795812181313223504070414083883800443444243658584243824655074470674759813858425079359781037290448052125278672810186984033288925935336298644817196260320170039133764087694912829761693347104002298410455277438369852654268290594873492036568428470395985085106996082994982359595059331197026713483569980361253598806715934070411859737330722657875546041465600966024072134023054661078051512696809727353202356623180965278539238688991147269490088679350753383215484827362764451599329161243305129837900173673151091578554955143905511729665885450610260706913511189595151598348861081248684282223700525637127655663247066038927926949833992274977769171421975306608632814523031808661952668046347513501633258382954344741868069152782274644427052648894763355469076852930532666972118575011107906999425139459569493173768403514614534041261615494314650265594451909498638850493876411386951658835420840339308716849972235570154409390262692539371870991825725996052597316694376631970171005657679316831061700364141819748124749436319379487628031910518714550734854103938340826882485146545425497168704168440024805186349481569544683256489708743659551579404076837887891237443781102595879868002795643345135085754084381582707780617157138761791964840693559585463479095033361903110356942905388760459424819768189696141690988821116851627458395734805112746602894899599484441803649740232356368706189636343029031469062931631818627979552122189645599344102006984303705624114241281207386322110368436779595662185253147069569805619570634873734186027126246686492967926342675162775531071864145408901170296635581083222279724079196653058621332204756871802695212205848069219991799790186217046020346911336632852840509419089460730255650560632923854421850904930016544929075967743332322480426392875465117768115215941498465782481438426655685268079516057204542935292436893871651554588698333096912292939411162989289061983499872620359014227078949463250822523928420317883722142976762136239359792650346119835112996668595513253703635642025886429965769958571509216955378897270362551330484185823053270420507509561959745976058137269340237991489021708609463337545450456907869952876578299818694716841760638881674784147513424161980133621124285648093265701245333991389066874141547136966062288780894548010367842839270796481405679060774889408134883431697918461291834338066075898428937607401464488201327829075736931593471944354700096026788091305298798887218604713730428596466468815749193033282357214710723831885994858848754517519757231106424701401179353621955074970349397095514514870441332009915922919955227474085527206187025941613706616837467351417546251861168024197755725890209180160099121004641987897297939943828351216042604276507351643997281671880977647763777322193732577270654531128073847939658436136034311350419654289891642148516269124340718917734183850419668250072628026015306039590713794519466761225760471704493075076065622092412075359234588817838367225008644729272119034563724694086026226574518313009918150140353872908017062964128519705411051596475433054083097050774446480792354161142554019389098119522611943372821154846625216469395157847196584294758333256632134538164333389946332711708069176186150903207713795697019345901405328466251046835614838793396485144129431047403725542818568462492952370894867256048664044570513841619218345555305359230499835476599969108789986760674227945627463082017091296873245858390143578234424797334937253555887177117327185881932898561518628969973237792815309747163134075383336690073048830469889616220410572738809336952236840070585178580717767304563680631753999029406569897956321904503454303868389814434979466735192588118139352823570357637593680043914855864333254548549423892525989666974565936914003656253381091981558108009041791249790366882998922203164904232633116776155553389574205119039036332831609701085551396571712858915705893069369697651767307710950625469271522362604894058745395504678580503794482092211400947590286165680043759444377640908768515090285322120269934476996426134880901195101270296600807265990606747331747307864154984127882201953481905108574540868451916050529518337072648799590867857009120728716754224617102978821855502371947916494345517200333339814844189387063975728335830845999870603127951532244877036043702571501526329503031224448016227845550739228230028903214850084968035764396491097811233608348631358116799554070900909859545121191626982422740825714557157104302811456546498440638067831173467555251069936061437907203872006053162735455301696042194546528297440699099094650984637097146182169995569218967226420546333065257121459774947500789151499603271384366628402212907316998432885577106173023792931539649871173622867773179356798491470738086030929715692172182214694400222469267394041456598890159964207975430628566708268496587908833626063841119288224779426263237000076261197236187205853636680537654401041472215021241963172335396866424499492850403390329770109968644564485950657363218109959680300225687618272525861804917789838558427047983693048035875365234906165037975200489078341037131896137797327082551720413297785860893586663257096497598398196594025245184349015730344561849135522067150839145454236244180347490149577811356833026833903794749357757326936379797723527685180387913773319650575897046064152915090605598069545682974824016979248154689871983684804155304808738758584968458850098668618872648652339046309878157931402635337048477034361778348370848236741314078830373128433478849184221808230848330537571235620851879673182422480217881296887315157084549562671139130625259178560370334881990266345904242843155823333395861071979475265196915288375649485277305524488592957729607544294130231769710748917810804342602606683214424085476464432087660299985824016739371150275670948829166474622721246203677111499759302509659883795242668772108976482438521327196168584874569741415092699349297568366882689126905328375043350033437861147414110926806694594806447162002957854171067157962424676160713777293888253920556294770870662319420074339124149713533004145019992787156102234309745701824061098932569244543149700783509520991763935865898345363678108009387958521420320304392137558361000465653472906484854444028013183668658173269971860894359288360633058952929366907198942851281702586376930128426732257313083403820064572789790865867615484993874160884939107769296351187587055130634801584459702286684552519629100249446222731913424963037751233998852859157040322850091037421792408163832795348241951497262760561780528793016437204073893580530903260081974125357411824204484926940058347253815833471093885405290905123261445784596908474232327759947923115145261755496739355077632988292557741489548648421618330436093373081024696849011103666448333718355752717371814481374335852109385627494374873477539329161620142014541188265226936340333555856972986056500338094196137191678567518424336961814443048856698532726710673047762769435346809724290152020909795780224600296254620794870900571521091151509786950880119105303916245672620632298399416946218194355148572273197779482220978946176905729895218524478452044377618596135348495621859493072864357049550807001515479345164512013267541023650081487728911983663392763404701465371937020092769705017203397757755464556501469470955307738479688005960148544637177246507683079091749225581745941782475548936682357802456135022411597822333159003146505430578964715480560492794025611376602206640944454625890625085020692429124933606017711671172399043198764936455220979334241600993113453525939659070216474399767345744673540790144637511026108197903716713254490076412176511332287667036013601096043484168507321060707595172232818811592262607128672588828249438145833795934145083406514457409551942195314388884991762339109986796498021778886524673561587543573823893307964400511205830379457970302231754173646381558728027042732679598904274541143343287973880026795414146927532302194758117236334385040293430211099854479216869032852527332877173255883757433139300555360408159913421597608862325863861422735322776261260872544452484814434457592641941521164952298246567487905613146656844803028743798542155080950484630121669035818391334060678594941788904762962844636642857134132084305698705430172126649053943346265510600305224909120166078597323478050153453518134269485731330759829657842784759184325464572879040586371505845165188214023994666907798748424495142276500897956201761606853971557704021430739746923976028886922669607860727059345254570996869829558703655377861545789447409475072659591408105396297771929554450193532503802012555171193247816422637942660499212616993392221449887711804625607772944095827670011881006720809486299539317699779006577605077275598693866406341328530207148489840865576159390600524323805882569532380254268909484906803172610940821339839307745817242482582610899750142662157876653369157013025832868828803154848312063519328717196152806991551390978113677654092882809832892012579391173302365299164029934634608301235182701501818283813419658765905685391242907217679890691174705105839536830224038731984552956270155086583418747469133782624238814653512251283159103272782059625712052624869850204680008825144437122408841641953498264791134355832092212963903816992723554334146854101247413742147854461541321564431130992334838677915266041765160421984490017911462465486437148263020183190429517832463830540969102182678691175373364359613755666756042103792058069148770051682575302606799120704275039705893452819395566141493171809678237864568579873759233849886316920094777593263211177570808626772886987587336108890363789510975193072339944704964932192412095723085076827863035877767315859924557361418029918256333395373058915636993281924620136661562889454779940093656515443538197659742751367311046051373482628136870152548120818895864393314124874474328096101960735352252952079293492377808587679955154612932443365664771194064719340217753148618165433372576137448814010399385931832438761151181877633037248591843224320004151249034464787379269030915148569368564977090947583741133087071559392517064001375438716483868226505133472706207795084432211550670735094252362864662372092087253834411997350274474729742585661418610540187653751391044468141424047611455669575466875001158364150649775617245154694679619935235217012842711372265581223768026088049694997733556878350788826031745070770492570672771448888606457131692612204009773310726147490137419725540553150080439428324762700391249232338704690856566143233136857166826751201732359841527046811242214766166313139708977554441964491770926590842135240064940275529113783430724488221584992280708051236528117641417403161066796224181911564156274738760993720681777138168298335165846556083465000768376648309652632682485140789972873637652327598702295308918862338558355448024618293123981125186052083931130735869193583712666269209660364690612694074577688664031623675746315533075688962368989753707704512343562238014296838415607270354730831478320475897137977705688615511989161652163837217909272764605320012673401652886666787340312566802233282918137713719468998033443232801528398286748467298086550716519969586550666133723395232515480236675905932710675409555019271218630144632726167783857295812180356477636588458457884717916985558400485217904280986908983347735282160202371393722351601985489754510334933241210504930546756179528170502510917259689318333494124611088859727723233520189217219394553488845653615119737724714770093255879978916858090585053628982169368246157300706185821938097220715743741484139177179873061638711626627261562318326515190368818771686581894942784496586027354271944916090797927787671565851471642302402013585005820352099178514424680564221780120099988652208738888936795964376057919708251574861671081832326784140675069175424909350456844285848719039241746907257115721661802846926333429786278404157461042536050538815466583751022579733342545675108525950950246689799105863548247822345026005488218035424282529153502109089990032162254809189594240269714834393025339835888745391906728088765655706221391610117826957418749048464488556393538764561836951105210486717515336790625249667761410087487051552422408216999609427841908412955536003197255822946269598119446487298531147611100130855345523771057828103303523809573030771334616436818621683994072619820226685767012434312594044547032095131064429828826401483549679627480403812709433608428636581970946681705145826169327884320773179813323982937812243547393298595924147598763179038612474311318437483839666496565444147302774193441591777417809297935483443757218272466922527977218775527733039483455782474279321254539442098641962475276913449812990240637263865834818802921201187052138941848625081743391070802551102728174582348059687506142529917629527787803425564686454910278117875699497545127985912684600285417112761736972656163748023779796718136139790106980240324111812485210888296083708584014745231608497172724838469058018508390857013263963392577078384384534463355591181414149519090149212539312532342915905232956080503783846429134928297058433984431764298508604375893251907492694320191018307636074462228339949149518532070510758258540231635818712611569234605449691530571572777890738615971307201082128233752791423294650354008793621796467674345036736776667806953083103000187728819152787992030969715320456661885677481164517539184548414620746917693746483835271397916664075919407529437818946604992011101652718928277453879373529517098862351329334302677495953202555346987089598206404731169353660925763978443276503754312661929334647118410994298628931315935551901766154416834700764234620950625213844293203776482013514317890063909289375485318707037010552209430967893693694592649967178585467171123444709036649826057506294226370749841067896346244520669751152649460828262936435261422225213582772471008171541047067839183726248530161074273692935566021221164617398380919024308352388070525805002033238073507725243147757671936068027480018375085035508534970134700396956203596859801330830975942874374575619413553965909343452740634861206464177922520406786414701883408053366128615959746726214824943835836255552816795584591426990243029055996053930561344578004027460098444180615778857803745338148741875599150315654343606370524303375287558693454266254776691117633522413616459761300368811413196785157029347372631612368251312399943386834181394868961420369288120821030976119444197706550604631697112636886450627861094451088646755937802238913159704419936628196760619139701915958404612668677295614074119154101533262983348597786410258986500006558653489942206384130278227996960267938811905852829068065811309760599681587997721248678812193780616481132582550087802727092437505170253095700735055139449431777632007350275491131215416740228927687094073012133398618870420385300610029707260074443043944959899744638727665145085041348250843853192812649439990019640512440469004469830398025744091842258988803804077388076714601756236712704830676487833408883053591461128587105912094473471046939163437972873752975110999627879405452871578094864911242467083065705511947007634718373047762472276922378021891481167409507736204586952186418608073137230620311693253575871484790865501897682944798402723707786515440987477495183793244066912992026837590599786705427911826466785271488364185066346099442642993392376756958634923985350477883204523251747715602299955135551246059112098540879061055939615021114114000092738395246926340380013341361205878943479959344484237411064227280979725462660313337351648106509428949967636462250805225264996928646121372639671624186965883468684115908387926758179319807942352957694647173126429927533473745693765811594159212289416730074416951665128521397601566466728642514801523739785609220651782557083117263534823028394644551363227629964529273293999303528980007063904385309133453942093802622408955737634406354764961249257256613813121064813391088217972155060879785497610537386946967736890657053397871172558715170812248973366415344742827788227452952361785130618956702340714611485435763524179166645747492207918954623458183086683965514301980143116060860545404764624931061331368406722166555278347552285976953809603989280794934541748577071321108230929709436158035215139331122869974370860101078810133695135503797186303883837522152597739602396378123648910810543919594433373454836389151515687501953811490367753923823917250956742647527814300285502670793418264436112962825069880805142316973686869691418829545050614423216984185273248244084196129639131110901830474596217586765513634111777496404358823606807694314772451316251237037191115096611700147764582156962915472159019437188535314810387099262284430893008565335167443086066185166163640765146490681180635064630163222295034118352051389405343499469201359161903558645426411482727871481440797626204387569926090152419496360062185752322170203909553260583696775383146225719827463418193259287375607557810909694894327057298289142447257536600436997258252094446781627420533566472621792801454973976947316802493499098203467361682589517329842942745982974972892815492971029100620292269364717392988507043444819579554048800975532597813050394860592023690630543485348721168216691263859080620504585325376595678073926869790807438734430678251396086918735618066943394919252377426532121061060220209266076399922856055180839982410123987574833577343892405804595324556880043201791899077760778918395640964226196260535985377736417732139276463715222702469610091407620366164359408840951505804782058412369877261046564034299540990586861295677624032296082223169950453428420705697568262709358669073074225089696039680540564008511823398313079354947367695387401089471100355363602591376175984809814059080513542144830749305777731768760942585862472764270553732123263164553292526161739378987023599056945006072421722017161518365670699492558420356066111959274223144501740789520061964461410533281993234850602143995176720059042005418179272340122092201736840988332737214048941063284500063658469095875337373942011593688622243529425538851476573242384608235030532445446929254640372050064437796276722921744310083655190053739058737201768636204820312795342904117131879866037808851272616695666248340950810939253315922632328218261400642786859061470571677961502100326657906033821579555567430657999896992752550253522578963522969337361775970099500892277090172839898300247657852257640599552558324418316384861097785253955141640977719145724750214274828806759713060266577747033334146109479770100867247301861574000777521139612312317040461612960127922650358616064290473755517887345199763417833729369199852146619971401123912983683034966488349865630300483144369117894913173184161011587964130696422843685003071017969074190121703028058123160497500348189684225259844926692492508145510943283194501859856380645839652246502121191505328300227380036886316418690710108825774925541564016030113315385224065253177101556824594989717498800105504920545755845509259202742100871007221045014469902042983940660960982834760153054106813925575603397025456232567708404103288542943008461070432296540022410374072170930473925724759533292597789680202387563309296782267669960791156567499784423570464239642928581377874364115132228998513315890038255439254287958319609774786192088370396708480699295684167102419396602025576255195292266671972975590097049806478349330125708490401516581907587073731597971445793361195567930714062151507079681553273055426203709078362244139360671938648322449851314318283610620307869328460296504621175926044385746508447074051865889140964700007612185300274444399409727661807547270823936455247892450285389096804934075580536840228849627099896261688571808727356729096929441118507097770437063934424741903099814311989452186822433411660601514802558552148791042041365138331542396717854573304845383433665250418649072549282329658990779080584137805864384429093394855493441756520978832780090795853055584439409613298692809848172397776904357443704602798593147514720888979536666728596986559512227373726411503018340195354784650062304586928220955267681389657012160409029717810497217679763475195660335729077382168054839472873624527009334746681695536137009910157814627760640482328858252255972677529582916614506196445541249748970795379773965469233692563298210459249862871885402764687266965392620760738056262755645946050418734978574335174862146273479479084235206628265907788049055928754694617876647818458646650914573913536903782369922055123572971902395067523089663701752787081481646168439969586713322132949959509151703253313567492551700197587773717204134797896044301991727037201256138585683370225514170446524289565573134954157827382266054834954339771407440420162150892886359166558748414231369735829788970712462902499983221766895902489666452875629709024597674716721464627412640385729954151875332098745556988735599045371948803687651473110399173617103632848594071671846283387174508537135448194122327224865729142289675175722586563315819372891769514416061677151972131452501816722639646761572870608632696733230215003709792032023513934066717955057856177493597748867285571119728879524306777815382790922881320444467693335519205929507055471139125057312174038270427714967022515697972992253737528307126191920765013649087974286744907102590838125605125243118537546840598429841005034771922241863328409177665856678096425801639075675121471923148941546574488848439198071956161389931314348396667069508949197717271555255011904921060742587967663096393375344834681351604502115612521496093892188904079341993646412360665549713103617459743220635160711438896209170287650531794003178436965191652550078780136643490475950636833458723149586972733941268454759335114024069779134818046750272374004487247882201403193075536846271778200305488670596078652717278282926636895998766464523464461684845628039002167534506454923720228528934552874861578505589082481811290398040540785828787187388004568193566376621922628421483555361361661272106607677892691410727077693171787935225321887535126763603809412543610262023798185712274571766197019412634086231088329083909887895656713546782446702391014834091482802584352501386972953391160902464132243760515404526018153221453890993564816013986125583242081674964785666906873348854672288040902346147750016032785359359777896691714762430226666181079134603885227687561418741639383780810578934621285911763767217575257120930715738398586768722678741293057619211441739351759662818053221771830375640370264689836894283900068627289506298551063167282874445331735318094169161359465973519846674334513576318517830171335634582995024997819216413580665125243111043721099122424806325030013739943902403150111646080821840120328340405167063205883399760683023281030881053515642394213858468780014824171589100122504612661278826852072695116907502830667884652845134751362501886462858777899015702374339065073509360394033567220638087757582055004404432965107892991368169961008601759313222700156151838697990293232507808985410125927916759344697090817271945721552281593380504232557465324065171074659102956881830219367506932580396604816288043210189284998652120788743087800367583179415754219097312561303160313968272657012941223167642432311374813132519788681594141723224828873560774519732242334756253568009965492528826395552800851005748843368335502531381461886281529969220276785504370871075882091221076400177227668196841978013343891733146294080219207173214587944742603666148737888336750887253411897584573485359089545550756043052240520894365173586889727703713014991056683709788126226334001726027372188390995475069539503442797238474609298919837519781261227217111390804945589083510762520970531059778521128202518383088960237696565355581543806251123675061709606409531277661227313701871776578178056748241138943984497506558051950995474590191974246679094408040246806316019501171275337406647986981258304233430440284223906542805085623934426866008990271692696056068598748798693174879952463397022930026361366474572617056138324857940017121329130511764961242644759266136091026635018534458527963733520811021862087772224324599885234135388220757836983941163179938337202376636898560821504924907245062615695636925848651296221741530480925696440360825816321671163999131266793812306010314142674553403672689233149200527964395657921049355252776882329054416040141328833455680075108168580943605849822616040999630250417084863120623832271841209441871983666831923983594800115345434707783438528518520326814917553282998746825745080706875481061241985249348586132816795333198331644805698289551498389520026842584990423530600685625420650930468814064018920733211684203903940069385674427735719194368388947800428861546196336385131146564193252751180219739814562853015188514811182247520420856134050824589869962520132061600967888424439779107867258056964652874161314272344130800390530344004707283443918635023443483820238730355959428399396622450219387932606240050665461176783828719992353413200623966077255828678027347317088060978670773993862865928343239793903878927798386855655201555451008741510425110754612190813893257934798902060381732618553660291946950030664684024024640559661182806947136664435877513941849676181686127111092635433789155937446047840262156857003279914868329559557106634083480920667687756452745804221536997312156599812883449618225098097515784503177179817789702666442795704505946386998290889205185719905506695600216244326986779923996612418484857963212380547532863933039345664409025576510285777934566113459744593350442604246253194173073492333097420410736194736344646492510933899965920692695296726233009248269259196927371741154282383834621025859194141040192875329996315958947969939968314178643245059056744044465734365589558043613013938896030293208315702448108801547431508737664680706293775107998435266848394771940630122252106892281014722324626416001393253842660142688472477822274446702468053839233429225427754102360898877587260659209705073589942343269204183588382910910049706703211208663594816968932344707581058684002628820304379916658107382013964392799173294535249348404651290246002249307219646082072752086237561694260312393169842079282211879686959053851917208828814218052820612078291186134837918027829244592379506943580528077198851598548400297428552687274619609993641086703008915697650899210489658825692411413169346246502899989635030695773879341388898867644618455741787210974589770728739909580951104817954307995977575457487774866486483418118267982748831872565165563447879738360122255514013897895273602974322730706506073442185885988232490762064303253382227373447950655902049207276427354184773364858895699689981365370963117382836590632044987172334962793311642293236219443225423830083678428224223164622071147178883183879289197079588122859640263235923499351514687134932437482637435190833784754544780978496535857870952026286385069711322859717528225685214660469466341947036067990091424897561620120552408246799489111930151082342160676012670484109443577956391892484011420131253730764919638065851284891854066815607960724006832737467602472520065108328836580615993234813363726078138035776072679539607783068257328216084314592540694448682164091455401854412806536161077195672595745038861959311430139407443911892058826142710402535364804234245676623223132485557961696751465986620730339621605247549104708773915905594821308275414994069226897145132195359955280139879509048565656783121715610250569410139588542838075170116927760481163398563769262336589417175476532126595932707875774297672062087085928829734775860773213570693926377960057941350482640794831763074884916243004773657011255737741013438027070377672074427804236796533118069129207774797148070452238903556970224064329085503072243586947762006946217311869674486810051832281838242530965077462238586986494725355262605548087395420786787590234613024721422780054995226682813947241772030669928149930144423113477078651945631664378334368610033261861103520535308894665841524469444411727236558233997660113247315771434527513841832274508359883896755437665507891250828117614158296716370544897554428510088155756955339123484984656414299453415046055144318922522752757700913841264669145825861847745747065401484390194930827836042125991120994673080045227329499820926861527486110726633869722331175017500525783168968009746911159049152519182225938227460911564454004668523833381085003059464051505618645454260451580803646458147599554110585849105072569788492926385393125662156062121292507992112685504303294150866274157128996870051209737976884440257896466564265336542102353161099875954945410424774774402010296451761025637002785319161760691275987313256961361097482257548433361872944390840747325290009527469593113250534792260743468261893441452499041436277564211190993770557450387472945786948585998590596421297686665428824552907803630163287267008311234152623663478401340853834618938418869253072862769230090346109428536156280299870954683888432557968754360090101665392668863247981420095383769451757712268476404406191710027145963275870568697349670191501638833035207362387789254488878628181109169832898526633541509580227476647514851747347394803215939149074823610768985728565247749049698858079834804538509562491370640891394494464881785339716545496333723025702396998053871449603700690696226209572880922980252061516158877543356509113609376045378457908410152555337105010596158337210373783657293199861879513006740125051825513014653699820116079783329534887694445615157181123556597883349735694015374019603951129156015581791434221269119213300956472887722728428455636905912472440370305360261816765633783979860771801455515048033139261519187557239076106593032803488731940696547671084059610447027428735225321823905919133599675576518508174570659494654884157410151437310951503999051122203355311732018028877220853969186965699362577870197680516366944277030407371322637323982191069109906358645275771038395410558947743510594518556887478474772590488259026389141185754857299054003285873865196012580832255953814123849825896049185434719646394929865003546005532654169967822303354426432431781415799944393298955615611393185677088245976084607350203318466779913660895069435851101450035443059291141014958958552127167544042487331382250805459050507075741847189480023371822866465518398187662482388217389851694938750139436940001432505406129369539505622376850734366405337114647187646731460281324978155099884599137478399977859078030629332130325966259435050920595798312223077195770624937585267820120352118716359503489388320390174574110516581336564397632861320172179365206822296677997981303971577244049871099558299904234944643829621626904115559075081258538554691308574337224983350641674051738629115795229276584095724629406958440717535064287231426776194785932556325862756245992111463281205428281923914702269739090797264912667654514883744321759242140829440489490983163702255717517095772495612628661866306700560146109708777541626417626330278766467517920791683766089515316745056485639548687976093142830524394232203727911994341313594127236375964885547854644503471070796035367633682555395443697891218218783954293935683081551282968513773255289503428441000976918166796185995294001107727361312578266053112194532332182618041404025177369653819606467296514473306596215001472679423179562997176868772518323761077117019253629956310678029519371396346003175687920285396366047263633027316841562229227614297764150565967376580726583246032092067686311969036582203674029197120624107319598250362133832334890375834201887941000248786007683676116885503672417307781690248319487710946974580822817106871525698485428429473223943565170883328773976204882068383665509447027590713620426236931473833419013000010780467464582414633031742988614019898231838789345267452116275922328194560705780598586893572195953135519850258483208874630774101550368491980297997204916180049275405392788718781886947804339640168081771022998222254950601993446330409797312805711895158276807481549404370427083289580200198034131472630393686858927729509545460266309800425883021395855333962690588752126848696381237336819940247659595451121943108417250641015919885722269528979750425072793360425009775245845195176324146928996687925518173473573945078443226849357714148486284629893846812382317147446181150517720783789773967066484084375641530224911883294736475476276418381040332192719588601774361910865110847773636113991261537320914405511760376707794230015954954286491073133193155706323506414505866756034792442619987156311024793053889525750830947018624190690762173318553458616304748171624056781835931126041161874946771081082568975110306506939649560786442615668227543622729448623444363012722220027133484943080335414092205263796938639529781368434655196222486210731732918058808157192586115422954909783659500195627268807186418430281365656008057334229673740275771381251719109275761654283824433738376664229018982008468231129025103475709939270398158742432932704107542533768415680920988117986383715973744205792233625122651498104826674172446864140392177939692048788110626868649524119755014726153413459362491487736689054613200848686860205252909207458046832602382970111765500865861745230789698840157974827500490885265898744076019384526213145481772016467642419166539570993013855801646080856944221776035491785003328895537103637821267348036876945017130672654348930359134709076604922695483946326070831908586783234784732729722450051185677742602769302828254622006372129814222704265012747595460797809850912554572026962807796557435738789187325202380475233107154246772258268637144735893294924555588874037447513691053643133563486558430945007470502997596042491877201768956961617479819395372458476849635200600368339317169417968075587734824361507908146993996612287518352456762549019595673744824282761690908388680049143121058404155067096275100450342131754954138917845722714326397903928136761741054959097780149893874413259062685624455938232225753780535486219785291363993561890989680126438166787815509254086209914308997002399925992608763117338000294314269212986591067380615941856177788920052367835678230782557669779354901931063847542596785293719999757672563724368485224743370270179543057587520898971633421570814514597104854725805484410000204612874766041694508387338567062516212813800317249470997598858067456331304954518232494447947983984925468680368316936538147206469125466033947123422834435801769711406027036320193303216611677356514877413937108616214951533736808316615472394349056387371781332686021032643359844991392243146910331408783896313885714110330226279628924576480200692460303734143562352585129270447823919291357002983763292216509266001570063101470651763589658671173243122408883054382601350449344842181613689958583213532514815710549186676336901999234911137328889944811146297901769075495765109253638576177550372218386194152542090489115179424019314625909302423915679569161148451585179225879639708090077251813257478906313804081816913349808503510528890094248758789420032327009851007691507010185480260961983963177224076104991748037842944943612117282481475543451729151627614486962643524266073312220401830368802323599301434928408354414670468979167987762021544848382046125612450580281160579943844655512289390612135075937761750203795071788717683790571113845182784638271089980057080430668545999234461760747015487552698311466424841614308278855220550932775332768413094692018362012750213745894953164618530073186394307767739137541693870333178960038456743609447079890175844818541585768795466426795907232307518569850610639675689179979081492712741489489203444028402165639637796918907799071490609129474087725570963234105547119357647337023880640976502502842705687987228135623274345371190128873555198488219231784468513025587952372558471984979755116189531349856249464682107332298558859178043799103634551441009714812770730529384042135158274087289553328147477063097483036365539290502334214728988321296515725918067842540707932586351755007764159138590459821792598265260137095662830996861680599091322162862356156944243994973395439812966813939874578827962700868676029157393004249789719032468956163201468772110055731732152754085970060717945044050590753828676666298738906496496978935243417305243471235625925525800894158768412631320459809350795707480415926862040886387029628016490767053909912912464676148890070895714057978771113782133283268894685580876686836486000361893048572396402015054201339289772600829181817530637548692073812194608157673059611761225950426742075457275566313908732692429095349683575056148295085818169360847243948934204418821332426716821669694523756757427021236376833412114118865565208451234283493198145061913135138315005616280036866111571344346667359879265342664339528728695466465006786542158701780642930358081777680722653972814461606899204828111028811884052282347664250212442183760450943792355278926682713173322160081832169958961855461056347873860130071113592929985861293902730125407607489319342217826975450892680553408059209407672446920998828082344532773651443387803555430708475877058609225978972161988475250669249246215386449868134073539543082530955190116075946986644864994358611635327788881766631652876376669446065338899526940182773845915566946738331734436562748417907030277683151033364911066488970272315423378300042886036310638030193974833626436305293803088935230887753323517554758007896214413394860181877644913381968575278949265498341468373253657670886528769906137782268985706553297482417982285398785592924273667438533915468496962521648973943771091100378067489513507291233258884577745298753210445589700304177842699258743860278359244201487561734164862606189079656224664423557078945592185302735793006902142548233004802341133462972854829550452009936908373411740893534397356875030589818117061409143123829995946186134144659936671905960596801253879348870331570545749282897306624749836450671959097501577716648825686877699737758232375743816930501707852430937773116663624338930867339942914616766506541317753861898175976382469935967726607527424755755376232309954177888697219420899227913393714448571459904083555481762503886014128325187887487038482490430169150230648499709778450542914134664261627103966047600993754468064898550511453237766781829368580541226619396862177302635717644142986338223798774375700605090790116427516882366637685510174284487356726346878190523360162341793593167090733783455571024494742881567647523318058476627063140700276780960704876849257745200142602840918983492246448244327389457741259856696163893368213498367702107515563377279066793414754059636820814633580347266678872024570831101854621055167948927612549327691441465896145151792560029692088870527793029544075748241173794946416822478469396190964042194511532311398322349625019558688273742467270118113450832230488288465157349417858077504286302381571797510611208431897757657941893490823665949205397929577807448966776783199609359490263304752636593451271366409173577713455594586599648997625859889760080796035195206557158496553124437247365689449942199673490126595259083456042404036901976444527242801021767945102068226096286153786895472667010431703323607368809904979404198987203494378337081183578896541969771960137437477089871182415265665869714506457929345175224409293958748159083429858356702198201759636121979786102792856511069054174670317846812625286693628235559808342960363991408481214787495878705883247442944984393441655105979685378822119230547020507813088051203927613700503784079969952072266942004994605786819906434985852766876717585849173361328091486526979817761760561576666346769869785617073521914121160284027686852994008762648453135986883399787841866198308946289697806677658157796414753328188390812148471564254795950180188742589859070602264034290901819462792059596079162023664183152577464684660842771021286644418383920025691865878284990321183409712468493323645276369343499726080076332589557074547167632780391954735534161470439554294204981987366402599191779329472588053372271697341276502513883856470368065065798928600609914343673194504850955064495099203212682507758021109451371703003314029118721401881673994364650083139900010384805526620892717762889598333223121696564907967115407351499917144280734069829687500920342221675104157271619222373819678264864902989500202256317173133809689488638678191062473608123990607970174916294914416138868803736462277175296088483290256468293327935136834448546895706025204071390838803793265173256815300630880013539794365533014504657554904249444529453653368595280640662946720813224016521469218432837299494613050805119320495374397717005945548255931008644873994586550293657542005447552137541407408590082120848909710076657172550544052513204856211364820804449502100213783127369026731146544353665466076176458380551845820580867418703337831650220144066600563766397663450927162166656825040988343968603262411311369684327963482905513088476555839645359528919306166043268566830682496110329814249130124956678215365172872284441711557783097983837749252021087189243865493444735347709881171703122393154076471947925588537300006226466874240500286934268742286607914196815896258837952132241525814594605960031114645907700138303612012732728875520211394098114997810347834290285614666678725236331487289372998399649276758662932098644681930309250229840466289063905224339940145415278604030915708112651429010331853987995350392970737216042904603013693476905397891213166733750833380032653457587932552216488313370361524876573369750572526090726367092216460872231873100499751317238268846816911011928102708319452336209407589134442203067754234917547083467984601501691279870092874255840358161530506424423164850592614726574939807295290415270224705940204329392686463920442559941490735263936184129777533602481004745870952294361238404516968074553660558347307270489141269740003175511248867170515022394330529430023202266380735383662485706805549587534287956361632125667625379082410516088253107219147322114210716395413827041764759565992590331467544056694291608483085127960568887631980508955805622137951774893872933331632980751935680483702749988098345107047927676411403993969228917512388239068977916957291194471659349329852229465286470348832195221657967129678585794636094494036191268016003894831209358215633563239581011800241955649582053432122228212296596615196854767881804945195001746975109537227425636920936323103251330457873641254360230658971253807995757407199838206354238098913331688229328474921585679153954142806167667783098117713687038157996144968811605941429309878175096964820606523043983880232153304005975034148672583126974620206739654484518986256768090696007234319995939506432522819635343188357614344926905583730567627018175221972575592428971695367813167798897752839008652556629879915171572967719547679591100865753102367709625230630468901536702316558604300265426813517008152147665320401433302464185923241270572612471866814553912968558254503174021065123903557385377139552442085292050278673303721357541676054429849792786567078152857987902365346495703478818386547962466287475529611565000163287566138835960759701767381182832228643503912556576288552624830378383510987770519583778045530382001302347020665378278312056932671499056780623609581682615747591241777055933362903552527742858205659672353776752246599824332147234963008735619297057016577980683894371650000925113620438224056389485535307624693743347467714287123777396483878859502919349362736880620335089977135200704360684004554417333353582154026828645761971837106648701460264996476817399420661411115907851292258445636196873210923453940988602819879593189001623407587551528797352727620524590572812998247162446182531002310053595939262557773242839240298942082509645718063359991387842061623599517340329805805669173656728656092194892586150347266179695610499290123315592296734870390328939025766802837031620828013398991899757689729773435537344611471533177386054725415324157476488613534959284185801253880766025512228009145803023761753501025370309399383412374631238402144893273786286866230434971594955404075243615474195256555108025429062154015011032756298596096684124839635757939584057996192797900974096727588814480444763233899833987127927669003712801306443854840673909840670722525170674503029912886027016052085174252800462627990428551539256607069726511802138699009239248765959492167536102033215752665798627262315035511544404627075258969312090585807531016501039677549770920203672150036208782882573342911163000179594771995648255191578422908901469020336073543608749990699259352062635271385166695913511563041016752465558812401355210673491069400897884702154797159797070445917101490884955203539735580721078714782272477035215692821744616848071585688803220827616946104253336857755003134428996234311319427020971235961003869442400964683254918955864299297637133562383261726021300964725291543662251311447057081597168523380100102487308240484627073822572780735717369299653207381842279298889431550302739334279176213296175215653309014445000031242094616990203623405759271583946305228659126677657409919947232689572117562394080754388911907984671425488338313019622796875202289573004461872313276447669878488072284387028142182852195731400378047850369525283162050158327037998379700744647424430936629881216844736377759868727685798584984729231418283899167005797527762965506822646016351257782468682633386549213968603530043431052167107953646744424882293764054028675866840217836414195041240522210376451252046750912566768612958957263381730324026636612761018482203283098757355730752822221470301741337105555113118282316431413609025587777609241507262214716017946231728858160875640017175467506089729925327338645578537987982774244441946592685012866311792508758599925602859564607076478940105320665495290305727537323323699528554146827093359046176408896115451717612426674508402841960339223390605256404330409883077883188782411556066318625822520661719175192602634331448895074650254529385763976025069141801505950469039053840435742462225718391757779877421332359995096446303103360006859378550556629768739307267617606753299109103102586385111763831846202778489052193447538974236266835568438783043637707192120199229771516012742139045237918013104825542529254536655571357691861043408468598804828623154141564540158329806420636192460793899918148223532778946708418049288301405736732993349853241904049577956168582563562535291548727870509217805734275261818935215439683664268779131853847975395619093365415577579217330648375457949291730381632955900076190297179157180887833029853282029345768374222506126408311200924628786043521464486270291177435207966031089961669852476892819845807332651049692414659184444638564539985578245381040139080554204590771040696520507183782711770092733347839033980286351792565830455044901456368867853875821716643907207418342672193226818155648439697758708177469411409665246237909342017764099791905228560771532643529087977449761505383522299836726454952234391026542323665760005116325580813399542480811533222687117241732447440244162376877357269971524824665907077875429544716418542547273907434064465081591228038719670810401452478541976771842584556750494531453091459547281325037111676710162638537630221070099531313085915892820331644400745666245076385587978065492188655353453074541486026113366373254814444947236049823092571012818922118910450883401772036993300453533967466034806714677094591993160948460299305341971310817717445563661200203448504846811593256254836238372753046159064989224856436504984668704958053902768314173285825020367570784462314183468419413420246974842592268764530243568580973840027778334129834586351508262960734294905101292270801874789852428060714687438488638608695828628111136060255287688101792174165601865884510651867495477655743107661592773175529472230239547015196548168968880986318856356886067497007301040855097084834874731654819372527256793696253532223210328701225633215139433505250295729214853148890639233961985495037114436477807221489587381017020479673209851441237789023590508064018137208924549718263753516726762427610163783040169524828571365974721779991198322060006753402587626103419037944312385963975851607089532508612744040984949203895937524587697733638353915436818213983397292692769148212554549652186581638138984958691318286331164433253172012987403791514409682440714098740764079843118811638700303720845112839567546825088669026555720084796012357770923571988919795253508388362190055010927964602355807584418446170595240861223691643157020789311725937995610666020874191959194001642908728935734955318768720778454323772949872780119962627829192182881866883380515883152123761052395496528935112293479088997537575298983051060806550280092978310499117149789790069602405658182289482030277760359215135964821761137248301104327456563665980026687180551590214192806434653382405768932513314642270299386990324381156478566800797970103990843952583595156785162000159383827021361818113562108838974987336445929597260877081681772027511631392661151336385012491603770592273248366651589432152898905072313558402886407213893979711737727245106488870688618004762290029114361379790387943852741228029514771364577807325190842326254374348728275851798996723515850360781551187023655020078673540859898531727853204998948915970018663092257268487373953772502166649569941089699509108782943314371116840601011486163307012807657058668874521270517667563454746974937731017417000998320190585595495895507330666053309803686506682085587874993624338535495390937347142493774225182370443645435392155045099263396778054103059820859834636542744567031381463764101484580832674603404498163016445613086186032525030364135024922710873416011356841274900728037047550779741950935023234717124949369089104878934794832015993904050066310768172295219246927660122530974281793339210177412620016417877804882899550997699938455860086767433730658710228189270233574877490791992115914356951917394570861256076433990678675446189441279351228292875191660415542438108354795578142220820985310047671955895442768491900686538086139184547267149909123655149427903225788208331767628686044430825912283309556181960538076825523975515107860650853763019359207104043474152445664825220011561827069272296882153945904081433070739846611460399633342365998995359309583439685601064661537879446607707025905655529252266294440132032407069802734822337007808811124102429842613941220950998096831899418870802991151773573441351183588875923767841586586138300599690705964857265776999711434520195458346244250576182989411652716648278253493831108068185959977293752291447305937520213907875413043597707562760220396859806957063774196914599012252419269860642750795075153270868377676083061259304721007817716339676324154124471602616110879772449413772850175920827847018787245513967556320915546528738534420864911150598565552766464951761856928417604302100852863530235991900829496889950103164784742155359874926031597202605588143210722689018672014163538884286365245559709284890513010741916432266486503431203617220510729819963392670829243600823382896534300769021811783407863636065703089413697088357668300800086681132028938621960857380915430693423054754576513585890770282421737951053758844406833353930690792217993051116297234338229017256878093504564243030174019168421531132516654689118359414726201512463181904800103601569935875810857198420749665019614777170520658262450601217283425004647842074206905584684738432129077080912808151598378084566614520754439334962102641951717559985473922026032644358415904971644681617435858108262117458906313331066414491600417333340751809506628831027227703749181012522612799044124426467232570537218349809673001248264399797234442519378239661837630448140746527293224369731576464836436765387485165267499217796780631162883184057177695344910557584709514166731152057277900966034131831310182847681020427024614512083614989088775355951501983336413515150519901944746609003392589260633597031083132514835810571259320673238445662277010422701331335395029044185007843314496266472175207775011868242167506423923652535351558807545296242197764136732122354556670203158275929283304635775949071982756442214462363887456784961863656630959367179230837383441331681579347166161446811248530368303675908870024429977480908254169611010848180827837328809071698935596343477605914463076445267106969329913827030772562868985398821368789757444954252710790417826154031408064666975809870525859671669789663224241877663727473027836778868351615303499273934544442357204390886944747922702599226453219709405312447619995747011398310896200693854116645471904134211189214825302393000107961440123710335367586213344117387596478913562103715793871467764275738341043913526430361137062043824570884970852830370547907425375736916604503615752090234697730377325611180067471286856025966826347147351018514848327489106773647182820754052659853492710452520769664186552787951545649476429759327255659992224556778075997815215708506850027967924990916437625536194655243945644296850373476006133098841596156296344572010585891727066392028595161866419609860472702008358345851484419928975323099943204778042818478589755922258506982891768519270190604584817932051495086089379687153746089318136457535176907873593867829122539515560638307301092622566523691845684626455962516612993174327063522845983524368371735924495051995448541777655477860280702288410557854101355001908661128692416333383074438646515814715863675656049458635783989182204569430227383675498934436130580985056250038716086984119786196883395913530152009254937114570431168271595363662824884038869655158188449988941689293938234482949323173899121087054691652659543156155698098752272012529804053194366362171246579189659380694986172732893019772205941575141110857941414598983016051314107947026978514833834970359163702254568991344397231582260298953651652161995499004589710025217703574741158588599259447620584753741279975425032514700690081747339207710532284125714011422334952685275042053974850715435718725409845490173824355465774798523048978784521824769764348531179466197941126956982948188450796617248911677906007504979511835554428851137314933024167773288610634552421339128861433198121239995651449425955783570816672717695821217996105942229429978905478022479186738388462323397463075211903067959334750551903544810000562261081799590349841559928741786135269674976377868781559864318708934961784682533450488879359049934669904275317824900316009138139183579129534590512687989187454790184950477529605173218547026687957708331826706285277694557762470697789641543154414418986284895426593671664363751632107520840418520355336181257939558769489105683090722022060117487159007792844849493502137507790734392185150921503754312878232217870858592065606520716596828091255743029747287475871999819876925188817220456640991407979454136114423179698267442492783810051086122439532903870310411171165071082967913676071579166207074254759191814139342932569513162018089016072792607349741408838540986939635660351193842095510849875348992365493176037055914828334528519037054209014881119175930279704761755644920922785819587965410218703521382806100228843513333273860722000507241581392519564812943634037475105305681015682496135847735312933029860026785910560857965976021440786789860293228389869698552019435284565619903331881583721130691233830380079126219345500297084324183023997996737838290648292726330959783115176207279936074456944781156705843302523123900567122090065164184349757888075083300819555093602052446267537592982587692006551482599778624412772308131291405978721619508124633586162803019142091196131057238903680225335441513450716919622465737100248401549030326761929324251558629808371162150179979442943421153564639570910147267507527904061836360891687793808491257845252672906790457575724007653002469900215307477217573181777343215344221394692694540140992948176296165285584391054481688191145556229810052280829637549386780969694491388238587151567813434878115198396356461328918973109805439063878447017523973844106776088723284200047748923547388523571649179208943649704786567747074845741269834482412488258851701629530391955358533629481093457933760606532796490042058792771197980182231711112817985412084813972615359153565980900219301229921505647924303272425509045407260208974596693518549869785747045971838817600002978628072191324749099135057105441002456764411307126679984833717291219517769367739913749435159919763938019548942697808234963099455446261445648241320506307695976926409022266108251210655885794725997000786928980408707317402622519812927617655064377920282297805676163256358710101212659365807378535026021227333401189943460559492998328769828677995560815295243586366360727426207327686037269214119438626082799305143947435855516643679674284989283646705087512472399845076000487355972227114502816079706230798378653599942578250234971897199710366150093777586841450616220628999930226588317178314907415966883031043990029848507470284009738110235394160485341979634513379072746776522005916115590467566176730428373698152509196618396938745175536099804871718913656928834909791440903406268512368485300771632322296523897306148064901158215850386141766717858544436649599935459284789192095219592496280899372624408553270583839039908216250033957503635963736298395937913262059846370972228009805480973159280087369969196163028500842551547748619586335830191845449907469124699902565670244377725370810566858198908829460055087075486875269413695142016153814924794685205098298685171155169342254938051321181811656031319425496543695378752556630595325847386783050991725842536695796273932390768962129975990376230995566546415741397262798969053102772282190458627128560741672247835850028341584731678494279775668809099079678548808032960038222919308745850843004955360163607151126234142632045214466942802743450904559522303415021355419238963744419621669623199324197254064454335529426937080044921184036638274444198668417518268700651945398303583122737508629693697441633796670397235379613797961315254605150362438483337702766863654369326159104094196665507188326712262371497554896725680697790585471597566008835603418014136860347529776018267051758188769512835829898225771242224011437288690317957951506522431564623587967369181922099010979805547321935356836950974378135352170357202060933960846420672863248538176267748869043037140116531577212384229764846625917295536296870063564469393723129343755632287884781229681337856600483273685422843444241578150163510331257850005554936342220253944439063063714744534105656265703925533961710364664206044565589763727360331142728535101113577759346615013957690945960134627909133182078806748511427264745239063693577723023725629894348949497460906204147005878079452443011078404784169942942950122359384899524261231265225585290724516180016341623421786020287103457915450657504392405036378426488039608474975452967208429402939014441815603093916952323258384800497281042946898217159197488945810400800841353018922387810659343244074247388600020083380252063156607207698568114848596100192745242643273271532161108746347434042568533414557014643643140339700719581418548050546356342588038303017517387390511999196753293526882629475209850400440235099452886425759933241369358134839072962050920505914709984349271252071315199518647758722914741826271898967834494499093879427157977863308468021237406076354768054314442518554716455366748823794106009451759309617355649269950643324849657706750314713355580032881746015381783992758868111504597966713853730624485651285282550213136928581253647353537539788456600804332788300977287099292371921512571076398353811905444479683671609347917917815892661017506613601531231711847855134642432163058282483086622168283456551680705828208181941500102479637667343870831537673829123248028483528621436029924387332109861750297842869066529595693396603491906286053616562283377977503383851145918264809052194239332663913988607598983838076840658946202941971262442837692987397329634694880308115896359471198359131221607292159447438160047125045564357079152565676367673840965851148001187585868740176074947100495267498167524289064072452382882506269077717459450960007429727539832817767810311326794746517886573247652560647608379555082457313515556827841097801102174331447764282404877138201577960607172312013732978383266220507743157842960516131888467048997451078574748409423593900399804361476923696568943395058134918289511334682541796259314633758927211672215766126763134839243540830667249752553755488330933718417790024021928528801891759833498248044170722311772287631530408643342528940352625420823058858877765535597901063952208838563205538034287356795418594893226793963722032669462038296162032708866797753390696654710287622444447029688593704624157209271421924772833426897528377791802247056854825760820232566213954154615052232751285448574037306473306173752290078568090560140941080661723163284726713131781207251240742590023286349086959633754737486501606666649763173835146353299383100214279545956569179831528568442442057190140232832648383396157481275538027779972362312738864125934390948088029957715706356588952258245443363905414887669889701516959651809551977922765673655055153077706097974871549283113426558626666921066041170165426756589701256675391521626562016135612623976667668821072444854805611537733476277646742856433490411899516852709249504793220196440113717016743656807923543806400795715608690857936517182376507115050876519132822156199938119843729229321408966070447732204648421490794044495922707127726451776801511709361677350466923723725955677654693950588564744255566321844754601764937890973361374058575736210012960057535727978071560345876229307037952265022344016892441698999787126703680818068858019709415686350169173162417688714306250606196586677626950114717523010097720389986494298029465059881263439437751495515236141137360251773439383385697375585164391733111448460006740330805735895603281955251575943850598016225166272604405680403238277384210686635684435361456707913782602422573966951373365012581701860916094698659838581059939320310639763589785282828419496569601384125919482901139051137348650223238881626215583854082821159134492234509991861642028065124179212180579091310134621804679219061729338277809613882798533937449956465074391833355215738818034650508758082889001210136939817623852125082897738881156939098117833779661901501231035912023345769711091164627712757070643992094320250208491203522609695253600742528006816089031513663057505717019149434163679040579169874805105439160087346130453510993882803467645825638964515428908958717532521151212489068913324990323084593325837926034370611566929861705243886607635426407002007086108510144645817055539977481660938518514267664868285499927273556639530753961999346135534589228205150992984233897239476132079904825570147206420732363063941746528686451098498118568724652578320502039564964125165623451992438204485972678204962513498791163812651028670487819847703136729713245133828434669888686243087058066915207583579752935928542581059273793596936676498019324822582451593623439833271972324602051285546077819620851697348616155208043219711011611934197066356950630616550232908505157426264104105290999854029133946973264538896572919861881475010064081636301714422419634528337427238156816804642389439979455008299589718677321285284921460025072003973981823643503106914330596004921640903284389692724049911377094466555299998196833451530290973037727080239878113809045577397598411540797813334208561602406601505918394395673885597640377178510225241640037880882185870578954316476474243247774293820073584596820637743740052509439329874581501100797417857089074420965355750831007078194353062978124077612914106104505408756519781691261413232599668763520646613154621582665263450810114326461462190851557929173853198282657533823601930398133817529966487326027397981807762534175582856194927981047074682578284731365199761206368612350915355106689545895370425796225927216559507092228379033113585519330107439049127628898440131581733582838395707959160550724979319579146534059783216664023424769984333846509460199440975230316596264168813739359565056016195988771414484893861077246975309331158391628917823636232725043974132849995698040489862005979732326472968690273173077436926516824051093335042006373370325018429776936613141666292835659336109221225589319434324749649231551655812882907265079765058770661318028597032728906683523550926338426837867165968095016826211301216208312048891966575830635788800335125264106551916772211668406532355366425416204961203611699074834647344052190959212209275585539993345277378730850700808333341745781518610018284725569822985854216439428303262073950959693705336763956557988217468307979557831614235441649433537524769775832453224325862522480304097036549784026975509152126640782536974530812643349906325318329131404602708625575407846121504794396398531236290659740141728843609448970907467285723546191720804218873881478534061693027363762497099011010288541027891821998525508369276445465268473727381869677794937231215621730108183554736128174515682474246992799411024528464734410928354740483771034896509898391245621966132737868118890666406349893572756276019838530036414176395957345355544537030658353710450115694764662884516712969880779789635772641603566921922454559068916065729280493178396263182651701661070320682565105933811835924663587567989321678658210890882237459208662336780059853289331942742184422395061696890827210618304559738567497667198816635199867545197637777447049998955975668013390875165480661672959531084768029714139354831512471622087575116290247688957652149952155835203568975911570384043146189785464533156957265843123405452828128050547763590856432199238987269322092570241590541445575062045083770962918708852190520577660122064964487802897756769549595787032954511309344440179284728305459599676793221253289561597421010717495824054122520126485835878076448820110708921916124796312278783696505724787551785699593075587974828526602280644056195213354629657547105497383944530324519967802456454796179305069643434352469029008749221859921211415476063371851459476424481382877510658795392014592527264876784174105278130997489590122872949843043046624346240878281144195053678517147210848909727743065495835696313697460007076902514025556255162637888924801675421680505094508746343761832603495112210197313082562013259001456467489568255110136211423504470283703839797741010863212193106878068488231301431264325550187979086422211963252347651800990974812388290523535053630028592051729093637375063694379951341548414292726095219065520501206223775162889968698465893351756774538119674352245350119540800560912780960612178304862559914789843916641929295566915224400451467565978329873451811344206130581261459231651182622083242035702136071766151683454285265150744874449488711715376849093561399290806678725026539555940613967350834257559386914403760536203478940784746246080540411926686355789192967114645840969994153575570531520963134046976689098708044930884522058307233208771325520908429335196985013413995523317029002270854069507070563659141549669694416463951548488941861618193027733653171216365913877112230718819932005946192017845294187178632415983841686747111482079779422822354430477039841598925147373957958672469600301710443966881227784229832309843039737479895902813667380875807190911217948634037883795329616980414858658480658751755602822763481825433360819234800264616183602870206585303070167208512973691345457666634281888271371002235553416061044004966396960420235562012409005317267168712105079704054581108897170407660456261437161545521963237034153653815512346879480384275694203619943655416837507861446665843232113411551998567582373500985359537537368060672804536186920383262143592863480435776561973258821392395740111293715041981378002013447655513897374428965306232891519998688244137873061204420705386787099379299203451271459334456050996324388063147130408470505948056032955287781460850099267645046316342345089158115330690289397690311075760778227356328840791837401478855043236330537180487868311867425009479279230781603312216923094808939328034804758174080781408115227222505655637626339833974497288987251339731492521028197797947578900984122700955032459322440190200409645289476157923714120206062125050777599173651510014189185052867021338782005249824418448372933441970825416298462395499483991642755930736818922095349942686750687555252174394092621576261476607632595141221493010760843493495240124153702884651304097489622125796047901242063376460189556603922894363417260917565549657547340077491149851785389648843050950460159855639591624713108881440113565391579855888904755430930987474246021582408765572782800184600061155646000608342952504761811242995728419260896874369117970611388912313366164780426410232806726650194933815768765262532451094820837245331914619984216164367597050081349639881143468516938299756867345787989299216706056628813898431020670096866138092733026609961653153600993887849346499501480380026236085287834065957922085256431040264339932575777426883397364689490680660327124286028064288637223725047698400769992568322548367322855664287611234704724860841579036156159592870340021294877080416049046269260513745158477632582378111073794010792294329223006365891085597413018542925304754267766958896537401930800754071412056592961236336439422757356089061995032468908912839568528791928299554806020663247928984530716761487259412468148969117076601605033177437162447126728797400086173902527588611711280170836340390609469735446994259338153588882282801837271358091388539264708327524437455475180617573859094786465344683218575564234706483468352863780054629229563028709170079798758077070239569773972382832919084866533864515906418394367132926363534535478201730802234082838689623363331013225181946997431518823417141149709013889382921290301393728261070385348316529223219306711429817543625360857173978435711505365940170523158585601632450591768257589232238709962114068532126192150240107302477954371256059706586457344138058901697600589489152272410656060068196445156102179842910532788620998436268806882949143379932330338439029405836574696868936196439824351589835015923392603093071616582250735652903335864872301844240290842330610180324468269044007728738424662704453058178338425816255247601995151499836667242144596558134901871539396441480092375334692220182287221640375485778926640045783643792145561550901533411443383052311151539628653420457135239262253512754179622442678737072355147397922032234509709518751560533474995291770112442067426223864959230329332842374000652053469416439512858290902397044846789537726736230021321556846050846043564673845622521918731452395934929365772158066308649374339990444279028866387553280027052172192592122987822968603779295203447060106804685688594319431283111534640215367028753502319194273784363984510486956760064143503139668241183870882548770057614011727393749132301126595287632259968038320906901282090764730545886126559362458068509395247285563366326572667211910353293917606502163020952269987372279050210910236502332846833182761872713303022001506704054859698449225702733931265231891953203183749870441286942909755763401705378758915369861629970999751966107549586305407039598501833664111902631894517404813034804904824965300440923364468367916174161534149797500578405680001475548106347577278098220167176080939860670648307233167870446501316569498957546251587909674087054701624885693014687471483356728999813174915149661994518091404747290884514919334332775640570033592264714239077857406040596266230756455973891396899807638138415839341660982496532470010358393852004835092308454984071525544442934754314338510576192303863418932340910957036154710342369910880821065613845498743236239268295190889415892467333375879863433191624807370845192305073196885320503236425922954342969156142164502940946559966978976854022464154707459968174334034044966947336981120000853428513361014330932444738255867751197045242560419103971908090975239446904297775634506468333462898565039300071661664705301077485286057292017562472447527914768633692880070208384625975852531885977999288437596733964394535035537384698224755428620920955131077934512710623189866424404459299651783723871043828030342561410964912016886766699989766514936348760944521390332116478691264512102554569323339847592163040953455641127786666447407243621084474017172085804069832821271530199495493331954367275404623288597344094777640691183721380860731869849027222810019736685938154817299696640941554663161188922599310556421791406674398973902509355890741246710503046552750066669658382702092014666244048524298517152303741556953462126866605686060846072466699507170767856650780249244511623584185424791085207283805923380063316302331221576611370895097240370396115785160420240425929817480237303084408073539125646023222373035642711623938149233221089688573563959216236417161114718244702477660146309575853388032025312357587733074958831751045730633017226781604774314489097129627263337324844878150249646148148073582919933722184762751448527872866954779000169511861315028943270439130933614429328448535526541105404154187695805359470664183716613987215226293920068333227157457787406178034454883014475159339767668979423164801059444599316530902604007740177696675030582979259226401910805946356987530107878464349923315348566215739866504269348496594121566172589368743031787238314203342249550211357249450810555235797758550295102203202412862272877586771757384897746218152138997212907192333358533715525541997473805715183632053649858773933843783421709915572548305789651599898359263038206971226816853436192626676689917389647438217698015104645158643051625693385299908283976284178654968885398063817825996301578790657188943675664788495581407505481190733928527790823300193119890032978708612011047114655759412092414111937416174701732863978978305215927698363109754885874680061086576905654757130112769533646798217121868407281249799963952863595157986211215260956012137601299349807116207309400825993002892425296638294114118006297442619369231060738515829388524580609546481291796656999821943418635664369581256945594670298725151274959956491173903734673721806896994620739541434357365219511671099859797827268412048473535919073081825832776339124152551134977188644593158851596437839482626817639565075334467205041401041359269244696103416767651367287305707648914999411046338142951913015607956738395729096885158299964714307865918356215048718055337644711725267970109664265070308824790145339533522599357655294916037398559980552636766758004919485087864842192802967145490188920342514542872414519863535728380012004092065668106739038108191205312039852065890327224899381660088709931908753291373311919942638989117163883265666261030767128727631525132714876188189279877789802855661505189869408133987230859108830759231124741017709005974151120197626484003487619399178274023599735959252006137013779175933616453962213498851914215404331815022900552327667047852924276086908028819452340630082879709211615342175631491240724326005515092941117179581942041446538124069213212623269320630896530900707228320041851184013268338253080867698228335977661341770446421706832137138341566204316730984621111884858209896883996147749291698956239734533517816114921757156581571005443241695087629430991882556978202682513374935102213546714805656430973355171050456305586927852383668388671119907840948820818108700884529561220384034547861979989147094110765147782743621998495674269469756182917757882195792203869699980979268225432739293577754125804560889701219762745480768568182123706818217634917836822377261924801512490270905174679340939072266626978894814005418242152822557686123251827784078703635805443330675295350671302482309326499396024992715711432974437619986915300259813818043338317303666606983417564574397730355581540591278080262472115434376400892654007250038930085812442655553568637800630595546580217230902873504684129985060868668933234949823541877019740952907713431693661402180573885115364945673037847477034722297279526245308070998772583611824419848468259684566603527952305491685591536646404184473982888593705313645452659704553560178500997606744153489324167959880099721305504696131325133428220491969002408574568795943615618589259490063878987766103571716550277967636103787681866609956385301012450831907402712373853110231938076056116091693819510014464459352864538379242653098314925955308264080056801801149263467961843720098625588918254742690285937671400318778781260057175168854664442965576738454512677430398202493534340830921878069925912778307540724061031645799345426520851201302069645456222017351559058705243642767358394730051942465972370254918952809388347766026371067113532142053906256274861832232449067224840558164854274635305033988792988442258303439349029820203396782451317997012501766762133490072557929046398566462873778119841098293107918941160622772505722929109823948653293742789109396685395650476566008558510055213886674423400167212396114987418602050459997869758431242234046060521376069850813556304946158615779831803817413568385956306044394768634876573381380836630141818319949385691810040924126692024130122108375025047554746912565707390577207970782907230599552169974526235509857596452274958127744444262324833321421163004863841966532408952030976294030760241474802335040442746342832995548516095170789814742240476169380707541578917655136284873835369072943225517303725673807665621256524883599044602793058916913266921640337133103326631534409691210582736406453463171332337011393473699856170024585858650125424534867318129475018335508836641541993492753043704100810946113288099840185518982786738849136703601667944841081030117481707755498488323973474671616110159015912535188697586917726148358787743673712631099643526829104766085600383186040119736304337981900445910323289140355433474082419550367391063880647020867799505428515708980503510870496853314458700069221576344556897668254783688192184205585658304967744095871081978986618371744606336883899779262568984769728189105546042919089710000293518321795660785073785901455301564283058680764799071692724046803712828507646511821074971318860904557528690603617634578205858974027331430651810837458050425285864905467510923510204227714807635533005199156213646716347716198360495960909238403188458753545698073446646131835289100486342813919581625634916946529360140128467358104082332650392689146701187572421598231748286553901502751099020114308726059863139586323191309528192203740206534426906386374753002457404859911718490323358536470848302692105377975068422070628229721546777597463411592006118800098390516261124842500066068594087943542307844033864153916576146540020686515477586827325063625459791903635142990864895637546149298431396485603179960929664384347677774972605085467524713403821958772201769603813811549682379861860594945693353436526544849187875218281696020823868855494691625590394295629996434770285145645878987418273993318500107839888088363955759110150974483560464811463073783792546682588712549404256141388639382582301105861456566880051108515176695763732059719135403740089694097700512902000936237308909343010180445523395912005577421758267145817279190085560694213428588677678697874173887404904288155445187897447309010190053161999239621039206084199052465971185823960928701228265325391031211324697456481899714231149402305273603638364701418315349368953885209196864058894864851952568426092393143653305985174565091248342006732596930714725870922770245030658734450872949183903750553406656893025730409101254214936481532466357556692379624951066039784137994718139201421392196999058180777081097255604513220880447246780105950600100093044085935353355847557623113131878556558997415992296856583496344358531808871965962834126569918395572329199203849218456822350383386667498561652094996489366295343179991184775626772646502705374143278280706207035060788162341353443939410648304327720396091308219042514238064978965959171004978778110057170596737003751116499602301618982298242659467634548864081131766802182769957979837133410484775607643309413316112037599408114979168527094075411965638152436239925281666978300045113328110612567088426684377719997080460925061354078344832460029373506797569361529213023596248216965763312370996375969142636593982028643744680004209554252656413560463773594458919402066276070450109213967513206518430189873019139368085743673714430948085527344538220675222675629104646778138560830284384229318863171842533773135117498151012067792239131058732479065512971126659393029086331640744795042704420747450980495277657873563973870601202003012532077162800899304701018327765539187328719758381765236725147449793522333521214674693726182163000590131920883220217494732450175626190219939733875293925259012427656870283892688988643414502161993289557976092682924593656942188158726049136766560893962833954311559748665828659393585682834044993986996651931854872348715889980323785434095748670191390654685936177712317198777618310453508239570361195198630685901639963029934914167963091400040327900798253020385023149264502142197651978292252628764534318902103067609265046460176623402274756097262216855900268418010494697713056722062577348885830307581664067376568062487882264606753262084914980057696072439548910934076437953214488708524267108394469555951266164195046353834981923922464756514341322094144412576036393573455566103114572000812210886011543858951408381526111156453031658807332422663457999555000710538356943486651507576032806944938093502054565612329473932558846494689448254632374460860151556781026776750684395717671010850638277588160061171708170611711128236366103530419914160306751986147303087003851191112830660736688858711874132398691956276551452878787806545719755150580189202652113863277882630093276996920883391531492361693446835390164106517290691789437216891557115976771074260397036532037906257686536903356474528102244892027058157832351335682430917474798003866389669471253484492114884589356763648382461358496902305902895523713834149573511698301151906652567797534592858886105408903508092288977282792273854320247181220201819157342759568289052122546061634476772549586379181599989033515630177477411117738731722017940240508996930459570962237641589845372088044057015442631068734661430797145248655352060384000110861645861043350144771665224053819164681594090998371633210078258467994779455146126964911266781341317866193131188383194434047024059878064256282610896162615699565850290687333994320488680197748813183917395831552123894493985137424104007619184471643624580658793801602535171740499437149677556452991945162839790523195264431319970359090057889395274874037571056794839507093735532141379082888791561512471257814398184947299458199906321436504823592345307303682014910007170821721373035254002600210970336073155243257626372863782507980380697501663321202323905873753302027858858429088667653706611785702111247212121626475747614680586351306162692432959380054187408699111840138757380582772507251171382447349333792885478836136931956585882278240975079632177379816962026908899955433342689042018097880454642925737621857458417484913957300896621303718117349292085817874242037072222702355386039255645126814555574181355573877908188747506537674192446066334162138081525850946112472685045796659265267986717903693224955173927245551004227150682104281217360572990064177130157149618015979552820304193259698462405681326101439385863463319582360701078253930427507301666220973592545359323419027878563997412778914489949640594303936161629479386297869490653010349477762407038270527475668186963160183340881070826830454385609273334328779325140923583986099083464234167535207799167328824167707515864915810925568063178566627780636017930082868417714614104141324756231335485938309848713626818332233896033383854591104704088192962337622546194416740304948797691494216570799413195649019450834860239951137459427597017285401227397112470647399495920556930585764026028132797040228673418515740292798453193623528752721970668372019844098051233412011209927269611846397781860642732961287314855283501946394613877678114525283822801978929973949149376009675990038856559847276944443323255972271084623903837883111857545598455035459121447356451037630654883895849916163971669270702960970910797912565142957508178019940959366676723406957767656159491367723465279737899028678324154577080851439962391891187429546085972478017436756489691093064277859644965003299030153444187166912168850175186713089215088406149550814658062287289784252234273527819610965907643495834859142956909736710112857642455072943191575873910691072157423700657414813707001891006184929697463485413308413699945982501697686545174993786547220954337973998164092487635789809698986155095408171351993484157085679853975883935650676920319813543105742279464559052240889826670919971458346054704797568722084074488231338368515909025629639597557525317138139460604267876800139236988081715049228249877344767451887066790973006620621737311107824675227465737860484450099154700544649389373549918367998844874127476186258783210950951125296090516746618505232896305093178906812729065348201158719649985023046509283027470340742324851234534225907649863500811774151661468714600249513129234857755731843104992051720797334855108117158588637282415004173971619173689812368883106329431681581070925776440943970440784399740564494726853117328947538864666097342707752820864451129363215811801366107617795598464218926885063397326652193598745043156204371513121375135859416694808338535127583284108341815010960642077831834428364764806605611747645515944058658042729982836266758056565394467535133776538363311590475335976141278925183202621274059641091264203740475534445638718917239378122587693668310961309203899585492467310269237083919056998139245736147814379720013458195325309412271263221107886268312463844369554458065937237724828702273036013580302269619136625173436334200806983296560311143081678157474269705304156946626476845286005171580209151239338585295060154596606889444362679098397754771964755362724771710937879769933601040894395317123955381941986663292268727666928565615636366574925891199105057802452054973102315803044791766502875333086745811175822630480681215375385439953884681889118941126073531274513962308334902110810361324893321861798529033685855890415123220917423735489326056393591108436287639826155200052071671377410521824202216698362734207189997788867427443412325722995936910296722938176012796475546042198682067754001409867834883202577772601956744637715540873767926390587740033817919297862667829257541305265958309504094570492327421963915040733915487002712845876774188550245960520129496940393100646316944211746494289932584631375827215554959203591720212275675484480009731695670331786284546860105009753451849584384483381613986647015580949651219585130219462586038147800304109145211098632529191886852336313412021375067752344625173763124943177842069837438902465831472891298339560460667211942696046183394522145811274724264786695855231045715907802547846064711248381335640612506229961489608408042901112400643236292189805683998168627574214657850281681232416993823501163094385405399223749462116876235393857253251803801766029420761763810944504561087251378677610693121786499286982679717658047788294799139194583890143167587311198400193725565386571524559961888929946339121064866968145577933133553355582399175303837301369511728200273845366798068809480143807393365181125356069650672479202184906759568444369662518828348437612645801898343561831357070493017697807904264080582283135339809523829138750469995256041525634108042177300075071037376552695819373435024630917326653747495162035877095536643326577467364765483077639276527241466793784419869576592635578490834126397923352624438709510302154378210406111299921568135622008254643229171131649358413548967542870816468992816480015333942073090328952943508709973369390135618415247170249537839045763006740706575345530675859875963857347590534716421403428320262318278944118164870609004643072373641458661940844380048021967573755408392796260347159646475756851675450173782641730922045797826970413155666229893086349539972103199396370291871577226808893496190831625660495006070531660412057566281261093527945443310139025342683084269417706817413386495461020212570688117737033689735877334990288249850887589694186326871379852474926824366452406116122869146180856939025411743968640612427639069855518614883568366401385933030954002984100760175865131628880051787641345781743352342559615325897175388123881063327891644336970786244934430566029959562291301087604520760980961455306817859368555416072666696275363564347851547895498838687005076555491080763070679603608422054521433323209887196160701866091425045484180917017511075111813945922926299971818954270496239839426729812686222093641659263925954674477281583003466739296856916666295409174214014215290320805553355071913201549208697684829475347895152638401929086734788958648315395662050497504361234323177928837840019911150338010381769222899588098437254687399392886586274510596530396546572320290038745666087980548332429676400425868139414256579296024992309324460322168759451022588655167714289481663615055222593140840829546581482322834682859074249511945659785400345073836215972579763033853146658470531205616226807931623685382781407079953037576671905947588781242573503545660869264727682030279915431514055623092813615170333420553325501210770946191470137539976139733501294946180656306691236697568262766500647586275889834206520409310956705657905066726747025635628460345332827628867015975968786981163920276638469007616670648685957542421387849133366352389702336640696060359214091422271846981050074537796013561548544670002884772717097376242444214653394864781659340486025085342000285373177095897388761957443668948467337274813925754951744821149262115023363093803949006179620163178252991787756623969417973537580113541046090335076331500032445239988032026719754806630632650797846878100888268801884273629417568653418518449765539427128428840909577238226354693554953677753446424967576232537094180345374195802405165218746493305258478298942839756740124467256846054668828263322221993191623114549081984114195483024165482474063755868545335944364764047925943435194388115684575928525599239473187433899743814757650089594008192539196169810718827144103108654301985182109869970016286873292042532411050145941624163021910684549173153531578341370149151646931501592814758094066490023730312210944406831327364267571835896560966658024302181855144025729504955326886180813587448262719836499904966989427658308017443607389370241597792325881656528555186203122654116125238685463663749937381385777726150172432792337714196782572081213990858899049789981972759410614648042635874204525795896763495013651263757401224061220454107921980358303650708006030703377260396310715940404071283262862215625961319301806112173457712644857366052918325769156520865691502757095176598089798153193426008065090406001938026759027137999182475162047634094334359763634674630369791897758287445320951898477078854527196899478404505508466609675956558344060025533486337702375192014458397850870232383404556133485461048811361749406353572330716114973245052286142369789487845928274603708508617888766038953113795384003640671372465363231277469256228300078811951926794647671140462431378545449176146085431642243803116030716424321045062850567766077344321186221983081864489597685498374529295056260153635462790525527671784286071943387881525383984952574362592064388063773538340784886228966180899855856607818294157849025468614403238559264682533362693440317141902005243841902414794179606570220349491936311191340531632545691320531706451218328345066683163381210018388149806217264347553289703117654676667343493343675081999520941876511600045731726005599621867220911713158488610649772557209077007664486023785259255521183973435305803243440623671231835431455781655847222722717819122717676652141600050241988095746284254943690584891295948583730920357585908971374563497440981856571589835140421791070488421759713994356983633024115487888859031912819671482734742044167469091474911519634657151629007877511597370955887953301283476636025547507942689531614818677378091559089924802559351525905076180632890993459836657443298273360571096817910970734944497534894243610956752969310645547102997148123260546538205036554802136145973157154260358371323867493955176628336079604546058941112470358063958627052114928778369785116403832713014143294733808649589582402700885848760798060059043012163944512936491721188435298020328071976429031381325940218714476523127871722994156104267244698155593770267644499688154234244734032188615166355953523844051610522046429333143940292583523556459062932808047096165603931650974983089797501004221438507165668266987234562980046218100335673243330164299029816287553898994278529792528596102316546625689956112638218226946069833219498349862626330804054770351450067817940279214881499468612824849490746126691429491474687911175574090066423444872657041089975780095685609878157973859153007035961048429838151901185061011168856630920209455797316292489859058102546927794818766467263758665271398557875789655603672277897139612997342143356038967444663311346042280724071253734346208745217023813970545864859480847687104900950605024578391408981279357468208880028694311055366394635843261895201652731505396537637954434465956516530001663086302412722276451319688896250407008086617782311749112034299288310920199789433505473029726707870781860398749393845149674856246068754646587196304501496758812935733387962469053678810106432116457539119473882088425200364724582557133981691689087140772720320709902772042022406380437822540523415336069297324306219434989260986787206955884211452662587890395988120210173089529366368471013552926517500394424184145017904284284928265390300187101677484229669800603363806081603190787914365750506845116548672210728389176535521517475436387787244589546848369468659675860497786199718466101802563722060020111867485112150580598539002659383994573432160980612761689758886052334440519234888420195949035457457648364638107516801360452616906534127285974647892144657870701161042080513382818481122977269523328129604907287408844010974864182877170137031853037360220104930238386989470747934807211057764140527539926505118698941246578544318024893010440663480892057107521920847903428878893996295204563698766573577918481167784951344612534493060005131409256481416012827017326157721635417593037928364607292063440310583175185022472966473960553333617923920913736757931746442550242481342880763743810041292375431859032101088005882246996109117477992134261334287969801328965955608017667171542476857648029310780130008039533174140490663567033154968440779777321216520067786940489350122123744699691585148020324848836157340127478804115001759663120289620628433915673481591414742521807917818425549381246352133206451680579169307085549282844515396142040433168033018557570132732684038880077816632862913276357609811742478501386002660764326172089146957741718000084295275836243986936224486992364182092124357874893027872172493904981213881781484001831037713418618894640544243996152993074042557057339909211908149962092675638440342586710851189959386655332412358935837527208432717568243592923202902594839199509988714333220370646474038941355837801098736729270415645769770451813440194862329368305829089041598102719752829056360779995410322164078927247374517852524826478285917884642602331956268363660710565786081948997174208295910521431574408899593127266269605592022712815112728510924372956896493763821832724578402140349373069609608682984374241449230450155523646887518388451568026636933344047804056826353988352532955890903024153037051151451045304185656096921748836289195937561854734691729334644260174075956846003011791851781148820672320489943478790286360129289806252583985813164067007411390087545685499050343131543646740548810279422702029689824285335906342500403638316192421615125429107650183731565683514997360383423702043237130844327533964287836833175650720732695927676215114953205756469858873660446825953611825286998633242828791482763436963381303686623293260853596439083260247085478767857154649099551861421812152898466486562449841919938387694442424741196661238585821926308155614497775062373689821595689715421655917553480266927022128676809529871870231589769290338323587848743910772324323434462556801495520482756341192991005517410535640837138386561568984212201729167978101646776412828363285003299659137759094410144818893599059047466272153470199046289640694893688949205766895710740039035157954943223869845964608603089529490045084724959075653346588568513143560827776463116114864769776842376552760770610468504744893510631253682432598959990970487243470901918310268239964947672506618887531461651421803696067989738890695301276973005225441029125195180813115644464877336534100751113149557570954922225290906092278350947011395538582881511590947996175785862274016747788935010512667186244999433969719346462954041326320809266590607468542594494228704251986627703296798038777291506487780016228233588857315453299605105488176040960270959083046430383551225260918612453792023453181702645792463969147033021516461656597014365501311424338310899806858836796248505480573481379905131772701636220604364317602636575504858247267639795017226750856836355522416618122094748857100281507110443452957105973810433589822307832472352022545561938141212889040746286309868947885930041023136802041928194775891952690499633224177731738093322015785475389500635410128658728252020641393211125699777517472688294748006979793439165806851461674013394895650976085860331481734371721350789745493313823136742602760832031117320363670498313905462308925195170694850430658426796828413865606577803629489996604928990057421554034512923363041758665734246804620584611109100700280669659863216165082614945195964715786960571654983190779037365080052318218643864199937148839772354050826008321906075091835964071837856305207945642623016057505309388925328621936132278848723553519991143718092864081726250518056628205242701618963806066305869180041469769887896256401793134102574225669279064893642757420905144146528627471953512190699297060858513474273349297495960107920094562749447807208325506441035821068592877576155097767759659526873926559765165098779141136448526516398310455219512741404938101397950840106242201836740063143820236494696582925381253471900235572180782377469708578748499889524054881479931440827933407654136823908760761072350236451180432493120219876680970490696259267054872152126921441389064313364881239193556042307647802494807233743487173714053695717878916659938819402114256264481037631953145235960777733029802940368178788572327473689791345527566844178881167912451834286874848411985343578021394081849815371733314564918279595620501761382861760317527020452914852945018135698803048280874521504088026442781168395853901578137345290532659890550153209256903012217167388159502154764189031964683424424918719850198480792647371846189964531724619578220778565969600215653529756011926904102478940012479946839006543005752503311190800913397551773203342149441900466428354630582593114329848351497607529169286923070655311445737170099138315134355469434675574018932167192665001818022187196207944166161189975014070614409593764960478626690100172051492862286460166795492294465031080670976988616970234392866294867284177765350019119148190543496647623815376415091520269111378118164561096127890165971474382597442114483270609286083540222834145851972254314291702346347941301310526674533915956131951034680406837192019980545468354937531724006099111806987053667533352337295905483119943605986031163579282640728401757675416486789395001038807057568394401867082809181559709681811712849014073033872285375299319056162835125771300414976397420369258411488954070722686556946882488074051583944464807746600949110782260108634952085676749159897475185219897971948988073587320349919473821226455600501515758597901865221008122211348209236216746254098107921004937701740611040873600961069740315886005101627141106393173223922318315261233980652262219916612419307853539918908573473568031851045289501555772646325551497554177679721433253426207351808969200601602314383890096450197072695074015194416992290549262473226035076724049140341635943596982195434365098046836365778060533558561400719557682655021667677421526134072246550702405989593009677168765624538324101879190720284985090418059970373937274298711853080917757371191310883903724465762027006845423813789531300613174470329704905947969552704438328120555554400381850166133714551777758281888073648102161076426646963696658518201856072162293089459748018657728772608948604413518356371087640132479301523864802163431944846998490876376334993622771986909536880153623908166897747011661523168758145597675744122553908927021437223057470704787509320440381527661676790831504738070768594750955009727139684757928063726332924860671152945749750739115413856841062266862302629839767113270779071411278219673605121806062048382995792346544979844295055782437890725735036022006671064176583025420558428397923754716443373171034169014945259538023654730856241209415042176328479540726064420008269018503691216376507419679237249757973080550351334715697020520379908168455254220123712218264364667583052527364872049950189478474801842675737603868086802289982901073378995793834398273133763532571224409680195192419111991973988516647249670605606934151403044174257320457773001503410879292608820189963525834545333470327750065779842244956965680964397436750089157023835981587182814220869247952486593237582363952793033579860969227180422012950223595952710274592433022481801908796437704473081610952107156564479846487710523696484431651382439765243190767944351014820903970895151206051726775006353640469446494528307440855052946871400178669637719610968683572360267634229695183286842177824501002904490566582670510144323330898911519695953688574520971582273520063180626697395960593788588759908539319705771719167565406109768888514406487314853836480308947182291066033330371434134100372205458688867006783552193383205593995490232414403552291905177749189672994108565382298292754815191925088696181010576389328557656797348626351365941710223813017754476078087888425647002961765487583907238538203961829944607834807514831431208753399531368699733566437599469943000922706805433437856193378210453056787005110914016295013267316664216733092676199564943315678169552043506837377865705684185202727325627478019278153991345598626021610232997363104560161622624200884536806816135313798922395002673822581071465354327349711143714007703030284448303253697185862787912355336121522692405029987729603014241259068449786171648446046096086341737164428676236123248570890301105673615545912893960308120631544847702397488546266712443102692427599761191333700150056058623660019071007886559758582303254857614811342901689566264791928008223080516113204805096748192775238476382629340572931041858209322239355845353741561275574450036711196242586980725050699334489541518279912279757772600354654020257412815800932805270907718993571270472010894768971064200070477368681176146839454455357593638405572153380265154759425614100917064722364529755735501271321681317140311010367294723252017308453383692664701939524227204874250973553315762232206451567384130852064662951584871316780717326892661067165503617936561497502176175856876327545347341445885598653794087230869585010094428731251716833978315942346132584100779313115275330352608870162472524655155838993004642661935470316888358733838559083864262466505620624223849782418600676528560415594237130690554545587362058115740154322333011011614199329564221181564833735648365527567625351132638636059908623562798649151536699559281744072863620974779479017182033822445598033072145775171264124505007489710220874927403483797885241210910956199386944526075081710877519029348981943644203612703716802174120558843187230477074806238765731692339366328803240958521820858731992129975379666114071184876792653856392854849436595475879253032917365336363270899721910675938060366937033213943145553434945853735686887247865582631260513389687574401204267337950371832076172029963188890333537107515371719941690512209260227393225250640062308910007427304303715081041951172470552825414850390676723926523115793242319500557447334843183098000170406279400188448932307701390792947736238968147721315841404068294694595445125436570982214220311104521106927641645115898902357814138811563925266651897488637965627535938392649575309164093160743292063947170731205972188610167851296621553065068218376613248696720377291701347120201316882226879564449130338442312934713587090952555524978377276998942722473926438670572943418047695664665753775341666190539920428048595242222738003339324413502133895972340601658673962612320431758934732097058095014318487470522177391637670925406681453252610148795886666328749677508771204218375345863142251250670559084441557309115316657701871836148151591008419081285042616889537542747997087135432734468784613412521659581917708897588644481310907098949652172988962917024300231577291729685078843976751783941935510785600893449893031841768126901878262228359617950223625450488505261460850001976648629741498802793039733830747176919960333963420442221540785923547304005256054135788790990904279335272889473600439602256785734272939449679523889678498649047124405763507411959157828485574826122453058494358910886777022343927279079401250128957991235579163529905957286295389474323560903198584924622126371991602147762297010644523248218863932977521710589430619593056429322208033426066974597818389146017710139104368379925335338886878623046079383965371753708422456563656559671745003819145991519203293689628140278598301840723375465886741519978176554976731744895119338242975910724389880349849642688543791854498081803083806766267980371722254653843213607688868535166886429789906746483279712125255195427910342120332494960672840424423507307008628016600056072369434730877289263817276974200190232148761419156486981109724649322483045101882442678748273970398642441122400917637545516879749096163190687859548979304840263799650816263436524158988768147213578828605513400308254789146039338986953211635894202693839741353991066849140410232701827160657107767752031960603481626862299830006493706225523336624270519338194942023653354014303816993568814382211379343045357578307224478299762197893855103287767844346179744991202921610309886627151623512209807210379126807484032476449290887249557674004700227862888849425372290223615740600148437137075844936632661033371436945019219255878657978348033395408050191421037365658871321141107885167193874535294272515018614510535252935503292791532066570716450193323921913340266445990078900458010719416005789395587608870361275688281846675604134682064745754209633855327639087639292880786508688514714420826839802379562439944541228270958498441174161282709911440182506569340019960670823629535430496259702126732739892194322966435341641338220732778427293949412656813598604304132225867718845633900501099806137962865879661278602554141211946665603134713090312043948990349179210255573424010242308704188260289743475983595422451549437590098796607948823024095608161746491450233787569270372455678148909605081130186360215708463739785407513445202850657119892489574754383050605445446298346036089477416155110316214067014914635275770045839876393519107668012083008009802609545781175640789703198014069659584518912737095792532061536436389313693604705243227467853900713485636690698462154495143589431226385988233339906734815451062266050317752719098860266752889770826951687519111832845670871903368267118676490074458446688255667255269683893188818795853292614316308212205542688808020459728102841252315015016713227932274748580312052586873359251639745049182635963623402903015627562944633481173363949309426929920756379482454392805798065133738076961935868515123150544426503769501376428915838121177083831699813627188328400734242297545620819758629340521233847502863498229780494611482984240318300398890473745418244269547616475368120874226185562529114128748895059113160058635495002861124129521502520538061823107945222898183028135678392051026784571429618368580710272456687352298521863963709475183354950519229793146347922147846240505492345684794490044370408395375881967703082898780476819923007782974179677531257575014626025884822006332977306406789349256259415819655141239094289524699242557729570043874427334155405061784617210540613628164367936915044477356983619080882665290287930329196454137885419326072113661743592896497304834944122269231394576177904988658960607998751658767934900182281126775197749270320591882733047203990638121798906914781392426202067610953308366921226662952929048244312978145569429829229217057498737758582933369698563739534469729659275569380203744592161420902978824293086313936002302913803367880859378847179356260790994518815162409440152680652146187118163869215769826646925555814132374084104521528153697270142310904620409988821755834860640776102249491954026095533055157934579837395472510745300092323538912724440627171041416343454074773658283716374776922524804243235999226778854350507248844948584113008773532244318586986486654342607949786480020713223884961201077143025780999785016041202464421775843843547702373650708537399747397133937981840354678657587970530952972380065672154425071168413713449189822528935823757548390121692245969895952070517375513133975759635758924074025743175571351531444685950340916756923997613482165138650264661918225497403805312708678973369425559120895264163540504725141834181236519771898601423390846488589341700184333029124918023482390689673283917384870712178540189977418830925644006982727002460360160725782409111519103409839537906448170866873058385044020789197921589914609736141015670624078973369745388297500469877116385086624859898484673811590879645090083351903365230643113730309156905140174163295274493715413855109953499050493216578657394389565604732247616647024631723227481914949521078545764055359760539081460514898524141769138495442290430865092490881964602229830917361350315128758864655337352076077690920767341836815438709464838031393848081772526845730784257905047946754229322181567111572545420097530107487628994141622080894678317956502184395258272257856909391649462993857308348492642545558662292255603317211386158853231469627737537636903139961950163936013629387116976059121834148333671079117233895877552336664478496011845100045079854088397051073842379610901907190137265909241128886913841538832119827602849619753403295825749680660740349429792697865901128961522869543340128444030437904293350594129204488368960386977595921533151451385935372344035875797998864326572900233435335613746141315321778111861868511271375711039438558909750787313762700225093004819545735129680590523402856520347982169516829236857352213544850379116879236343288038870213216724559098793594761132695243482617918984086739853543337891996101463800362401224289861328107542630071766195313318980547197345511294942615952200369484094732693147818231749539574066577444547824527632362704770787741709675175154090106673739182661198058897087161331361188951458643600417025630588897743838680951752161241100588886707842243565223853537357335039319853497828323176674064331113374260614294103245455574500623944230154348393358916005008221272647433276410532349899153326669438914996257185648148515745911095814183299242955573199528091691626301455643590784541653909107194291404374632995900903239372273843736180310025424130337300931514285478100259125518129383908420859778536935720884652985853091055411256270327471309008746301456173530657295646150822250438006734100336843930973361402581364343585501298365302683099034424017722797711864446438180104501899522449714110001444296795927487913669717838775680291386285123743590964622538152371204068671539976734258591859253876369693926092579215275895527564654535782666578453454563772350270198603980730256670163345361983457111055061676998420824623787862430449373633945612843480740481364194039588774673873356869286460507105601829909051619487866058476878755703207048755257763108434884793687545837199910087494212822493396340282127075890199331353135689609523014215172981401647029836198947073741397535215147947268848173699888468653717216131856544161828541218311937593970870598569365591445818219919876978116298497048140572963072503540464011953469888603153613290750885219313331332633998525095008238561032945703442575617074060364801118920697981149017198688776442818870829084478878182230922941561428511345634086329676052678662073094254065459267865815434219522199033838069273198632674131794926809565162382906891156366714729727219635407937603618513495206523285092735227817858591113588703164375561322243346988967396393488918868907169682327699934583534663394349264637642784367161592852827848501390378085197150632308065285109310950330255974466957007160756061967541377569126202760477767161837507817942827843486373819249420584609437572062013539742029240316188605441530035961679414696706920637977368865526972939316953665334110646330999525606548174896092975812279385417854573471149743081819600087436167086602045103498414386999447747552394196244396211976849336654613979114798167325666020158880136272058694054268603308250671201885178165284005954548957173384575997399932041859378474145563582948717113992314469764786152549203105643989013670171839845919065493736926747526966546376920721722996111755520843511083897056639530386075199522668715154776005833681480424736745011199817451476791586650390089495831205117415964705381549203085182084073847494155880575020834782259359914546597706710566267346856835899528789964317684643073172962274311549240581083727109363099854049595691805752571219796518606934465487775341482271485236902691364591415241459100499733219991953725629599577833039940976786822953599187515354401906845456445580306234939760167824427514997741328643612116334616599078713585222688838059016243119734183079656402880351040960470683624621158483282291355533222869258772596458085442984865811849150879300508682719053510726018458182475163583789844350025625993952164855676218988245465294170273545336899001750211694482458758917567552696792967361072626520225169340907304616128928455262414467673533107741493800549586867673887812177396538012389521306945400915699361780623687409510526300829082620087070044196494315612395523393109992085189727221799339481926926006900159880085886171695667140361880004882152458797701424273539686238750177168690331278561468384565842430499821774541475649614490299574164787356659196964128941459318218929123611084798986475496370710670478023357226058509902632580961426167186804709208569790622532122746876813626609772730241572635594072996203822922825661488972028585653592867550048814658215447112297974169471312956713028794796944818117811502612447912458139024825809945083094477633786095224822544193258014000045549682700274859823475629828529451100463434054063760515516966564645566868724747812942474922324653306998033723912140938979805882417462534325002436367293783156235373915711345221163450127621628305451191317782015150156215148322237970756989404537399353714526975784726130212577233593120446648319337121264036077144545320778938179440437138894129653108614166884170989783805603417727219126901860043947492909059961521590306938464002949569559358816127662047949129512836588010701253305678934557969427188211112947712861409114281779933724058192185628148536116916575633238629311210203738058429256228982835650835762203669027913248327860740187516990747924842024632080587452225580498824942082928022191833072276728784120174196094440383628468925052011778659367418166595185628344624359725700263772847542719784039029194090767245655600544587400325995709920598109547494417089046935683247128188896139255072890483388266660991048079090443498639039187070373931458937737656309610322084777423769881753693667447487395623903180743407316739465706088114108280512421902516808044229925562063071118076141891379954447298902881633796713682152520492300878290927284152958042588958830536624879043542012417228922817738202193090227030771059880538358651974380608115630981623121494952816041575322636368929210418707388056595435934437528132285554502197690417113172553321659750295232091451898419607762359241884977887812712937780869794553560329313725330938923607998023815000119496109947810857234618020362285432542559993913997592629784018895832997505941810845697449113071900967423813592756677953170548623646406527031799927276343959879819854308676627607776034396749536020288440674079748811247215050452277280671699048621435797187208577901358721004604481094386847053934485412989641777052180604101415886617707625050425223486152867197571865166380133337386482924552619427786027351755901092116136461214103166231054762605967887640416881237086357086855411258197144290987326108308862778128024537132601160695930663526357663708093538820909184452281105872710465906784388725844969338311947940151290736886448082080467458001425600097479372434384126955322381236452347098951872620648273093808454456377864899970949300057627602788566183929225673158257743475321570258137008894065489649559291272531657205207396888761305057291014534881494481188891238463353530828966811905327339804553198498785347159174051239706087267313283703028120533576910152708698672124245161583268183467248724302834768957938137456968999142765819519593193303330329872988231827731583947900934631471342659936354923589665038119551959261688267892329845550806330226324415447295097385169153539113529421684018480476130903061021578610488060286524968530590893886205410168919854185765748975622246372872438847152353095125386915619123355070814703351524055996841042257942734001413559533672371889681042561725534265076678454665339954355998430803193020450396209174882743712798879744417891201715558567830957904161706912619344478810132585905443709343433777833707524124577114703675227824331965115068257379089696519058005204603536988959319594588896472483321393568341713278749171687555089507959083004887623112067676100226958782369759321808205809215164597853476320697128764204959056126323623396630277588523147357761445903403631007344587559124128034794901810647917183974177264034556404983689377398796091608297327915926959820529229938586879896275457379543429183599293038445780974645294964783614911757316481995550970230533594452799912256507792266037108916734079238772935332325174626804802946845645966621823461470804663578011261922805372197275655083928874092700330459051104229377459737486245843055265226470758288770089450636008168380937483331523353359515403730461285797863455670117146783201887536211872896042731540282774274872959753449024377668991337382630573079704949829166218610857240204560172588285452545467322248426795144139907905243855213080429382978453888965600897064604562124944545991904394216239095166632827290593590971401966324591939484423353197186748074135456277949432031382789533947689522337368492519799001039765573183969619711297801852333577097950397341772480967553336287899145623677780900810608569935992430837203279895043882610681613076207196942893806125593569238407759696730339341203574218681254220977181668507247636735107019168333905576612702270976933268324198792906361853149517862935973585742205206044595052431351528998166987865520447575277669688380019225612549302960951352914330976302060839330876441953447490320942364102122689736019622230713056338741230998540231636323960827779432816987832947675939871279108720732413072397782263221532183640095038089971951685914060665334567573241928155743574426163167797425654250978209162585958032215250449080558440828081425209568023110557121352136946660527662579214115084301043132161606945392425629319474327965988370916351929349584590547665090107868220669045611637783992836476194317260165620618069560270997471423458047633848064403201302050172673639299276174910937647466236779268217621147623175854789333885063059410509454513120459580636990631275998431211985433340496677729716121361344688824187103102116711870158547818306179273837940569802495168700613807628825626675976423843044258889393244555096337627697910189046741847737319791039112094205852020041279424298621851953487120312928973365473210666984043803170341909064568144192690179060949648697374284766375912329068337420426713345807214531809456771645564114721149949226906797477742052383698683625965943575562827035818985417486790431513628146455093164557245909512025004317880380850471497319264206528329026992934996129462085801551976970016256744613714378302496781181341796330003789828732916412718701453044766884187865762518138752889573513050295369117212409402496590323092283073393397126993270731083046379352487601131752657587422178630126799461231327159974390978561978529883032138461492985167209758166289458263692783073198370927621556422972028869953568306752430178151458921737107197585795716872410636904448595726780613861727843321075444630549326369574231465951755186099372433370822191119065266669858561704585982752206286801633263274700771233224900959728190375456632950133595685726781810775360556706174053081963520970394252083461633607881598129770719372778243487944394917517601328954074531152234866214811687688208774601616796077591286049814018353126721726174163173785285562844511231560018755869492411562298903243351852348001956952660551026907654502020547223454124782627446198113810976343581568905669307763809344222123401604363211725647726562639084713489756272534966211566094154526191420594188492695195500929784282062141100977028284012287257541431238450844171293002248413764100291098599854563416256029446407317629708630204798741522044044199198984919844485314671904764339080014860549699693713650655845121907566049684254475479895661156467210677485993642520079555028891876844451775833479983333999782066935470038851579973858676271994990882259924344867558819283759024210713027964870587228920905092173587656936994597500183109245233971206900146080025220143021840713857683767292179765363362730185017203627848642978392490111502950781712103248096915663400525776306876871834112876668960953730606225871738469096228738906117441522339424289069086417286273392234004154017367997911674876244421631593685926620860477756173759625388819562307367508265398323062909547551742975046126430955297180446535730200271807660003697709189982334547020994843280597349292050329618637313359343446724704547429077322474437187053590259758254044454775530449061332335955427594152972111643182344692420915137115276899328455163940087457179949353345872081186361605834040899303899067851815011599146783997062704288574932234899528148555081335775198574792308936476629908623568226531545235317736164673099412120407556411493076006598071455784993041344147485863963324565102156285467155848044578862717055239767049194509781784046248369649625633113375341402077929170726833549875824932515777447152969501115411801805168242829518609294927413769046827209881646400175382646134623693042608145628621858012933375756990788548235680903951793077847889468873926648314833757566415852638023617962855764906318189866415719621001841652635093000856541708229270616964375921302334513211293690842913242748144104552779798237853739195674339889186533061128228659737999653165023182418664696753991704240586501095192703193849581728597556434705747980915709518564571884650729213942784281322147537299617533960507103355733987553033764837193397648056361324647165890195965759417019410161552356460448845444450276021314364623890899988458680715913773796375335388690895234349478934578304659018401809731528559276782648486225113610208059629502051485347695470979233032287512183165947125666725726468072806343524488711995517599874205324555849642354065823476271749284175774718088376161786851871337920703993185997766339241048834310481480676654029403974350819080225272142426053708378482047626188829052341709592587960047515358684219047878576676087312736508902995278605915504935111975273546723244969667674521321806889468784754130139387649058843887372467593712613995256106197261974470014175821251326535989704008665485980228646120835257807089632773490958859421760527199598604208184460998654607634517103180474863458055368659530094690612891702161903078436623923218112623617130670973707798245680557461698634646109235152441491629744527748312209613918000403586563775974801958915690666093403253335035087543068222130320258324200002438778675107292277273515075803078656062271988553511727311558004896995529257019790504195299352725386907032624725196298991396885105105050469717636286352949394864300472916344993186858307502734610011085001243508355960109975833182445633928238794893158722295844518613718575511602411403683691920240525390745196804565721778540596228332887619839917483078794443879065325085273754024617063096916670187392406709818936832525597333082915675680847213202811042726441379090152376657621090367436909740137991213732237535910287722357827528141763728037972861263555744956106399982541504833701240053235357079837052606047408081846141510591861931504871423529033110767921234459703977364432156209409679991034367764234757866295513081158237422517872242960889882518031578818653926856208133701371689119584957923110751154563599228181696071054987099255388465921901842672232796589237997851998883315065752439988881455274861553327341817067539265012698384944300583238629000981820385105437107594365513115536770544532013779274554170683198577546145901729366201923713612004033214439949345676232307394293051799202759092794371453408049065431621468976640306134239540519038831735121113930608285349838162895948825680144658696858827101238421280921974142348063663867735468614350069366913981405957769431936588626999632010790789182992656630576903409291236704330077722237528858722431200107011274193464618958544770676810409114658847553198864575204839595577592540586145615534441277095547519887507210452204292920363736530158717653013550395916324544127913804077890581978648394459840757103748764565296810316122723631816253063111522687341608222695743248729720066183683180743046904398186627947122344432575294306697960507400846464525359934881558262268559525672392821998091724876387224256472052948597053660538433902844241242829235865248619575725748700287851137257686188472678618821283923189222221335784963831526177064743007555156289085786853080183478038870587521545115132232710104173162968080750612183667886737126675089663989759173551195758669835001193839862145375999446763469930268327706561556335950169873079241782861847594624523906322921782533769538241477491066301784555727934350456643460684747949953805333153851709917422725300789027674425340283174327370371402983296802262645452285179209434456179392620579050757431382521209743627990816508426439424111479294955596899919590086301776417083972043490460888621268738839289473676096318128788651328478167792221926511026288018568709333450145531245283812849417037301364197503181768005583097656360858661671999586281826804701885379553650963201950634444532148310503394474783440714555342135631487116188240646779734401610216236449455533748389360133850717255312860565721535185881921274541748400501897904498415528956164777512250686225295309615050769325633448139026796056368391592892977494693285190918867451898091011946910099981916397210165872105954170900293681862632680926326417382400512878746798729332129158924249553350487235013032508599675897135663526515088739086531386097514132473929484292332353581792030143458075809113505895860291993395785567286023523691483102827340220243914769029370575191729873196762805571917873118240330087556223759223287012546299977145638927787445040763422668180020376797364821767906179784653932772303297896034137916250490007995777690977325200009385077666451760463781849607142486440776814637124357727735834889911038031468713306568735874185311242090821239090974417323069308611650393278379391652529494261247788540369484937152462343253691316856494766310688168306735176923476486372616903538609708147078205189915619768525330412216818527837645482264350323311811889349326449330469771674934229711131071351068721790418912437033153913194454280988319032469536374594485077930744922361493071804049892751471131079389809901689726801198777825105787793880155719712785786249288050725067532792439705615341470263335610792475759371369093594217109818388540047605366815290653769094717405942143645679980495699841086957414212906329132887973464361622990594024707643316432564265199883955519110618614382454383704017386099109238852859099110712472260351450302370979904883003860481165521399273425098248245320447569659587557906424606600541967904779052912691732838207620843122699113805316679508192413155323487632444226953896137907295924952818743713146585491681649140043986161705134204533149085512308930736255636331515689179933864527812242439842731441763759653649777465912071113772225109045654685278183146793431472996001429977740393612625790485290609457037412564908719970716501975027033459576305416700187841038875629292516307780518500135513753152451601872220944437125259364548915380617498353316621699590585312503135313834057465791333745495149609763263425194830691734806320815741200347253507844047190806048849619338618400481812509934136298872540385128168755950956028818279174879332127680801268562750923696998355255964012035111083824920612530721825540121939868680360673381427155903083679621922227987847888790763834682842052341957279769283119551621891153123972083372741932278616219426137403920339907038552116712819715705477120913368484774207617778333988564549117969216928229424803347267609965590251760818680597980873604438725019241287839047533769538090020337947216344984531171096371594983797008803791202845911453261979170006047508203729697978891479599712318370641940481418634466234827623669796860198795570902275666524603167837428184266943304846574802999442959109016203956443885869492668296689888960836008675739205745267382457526555353212542916534658988370241338536495112425312294982514145237450486405951195380743813334703548007063258741069205512437589791384095040785308401263601269515194490977678402027254773621650971306987828826497747341844393687237706335830435976068254233987664126895140247688504304669022555861577399897816546881916729330536226293290595408362503307019432330690820944586124142083354307768363461198592984682953703054486740670638464779639346544800178548935731710342168471925988704972331651044156257863259344615252064429192024931957049086775275571718085147485635933723258125686561713038124095619779442960095355378364992067298168829745900989568486360986372286097488709510680852858152992185499286596626119651432065212184640554617121009579416369392480267538185324266616374932082578244784439290672833860192697723542809296856455226123550180801958077769625834097221137933159758684395110953447409041664821040636325007721394066757358459192685326569747619874587271868435504012664229019809149075043523091051729920192906123582202940737902948957894390586050484705592154080173033123336551373388154063945190995859873712924058892886390532376775266852782429080477114545806332574282674514276445612585909980460064934935509967497504299981780997366046630935917365286846411199063308529684262744234661666959792760685447496259227417419783211206513619894736750258451428763995301090497444627766329658760935360405218101536689262887574920100811080333426575271807703266784414343594951184228039036380623282757915458393752638163148109887413452964603824101822942611648389842567708647100538217799040673344158494983797418408280179074836702469808046974955475677329466667121634911334203594013633833539010700447844983592216811726648417838083688791235903980344703091091338089730335385564891698026604085696302587506232560187810306030212515574375703867236899184440494044135563055492407224088677398943106580921060580623100827263845187868253144516785699416753603052953513752715768285286625093587635752295203978862237452213809792493927971206607196268526872200076707712992735420142540291975763606981216251325132350846774918327880367989340379682768770051710869061655665150340244861813982223010944885244025275582363318903476670109887163928927687259993455373002406946485890633192890846464480493927841191618913239422953592591035739950959241341314127025254604027696629801444491082122894703319407490560863638655138682958869096198021440729617739162816357535622567615821874940660626927332919840887483059176110203490562470123351319654652500619867440371004449355999040083227474313680459266390209331394308472699997897020626616594241364724049758526821093659868568104288056511340357252598585241513694093284149309439369929104451674994961018285135482038548467088512735527553545415110678319939334626930176145205501885731139390151858696606432931199471307059995200576458722409848821953403252112946941130567167038862048091570619483538232663463889276541796331761621826207164916303633541088965711857478431156445584975891871016230671420264155276492604450629565690808975747002234274781270823494791523309153451215125729289167501333444491966523354500459069547706151602838479345824874617291050314062055590638680132952824089031746845403672211569106495533605691088954277520902253198886609069656372527534481977159243980902547444582349998641173695041630176869521400343790267939705139452966509037078699194813695468605196235760795428462188645569245004927813343455526534043607470529077113562851223421092166724926027431971822272928306514487741867349167649703488404798889731904486731360780295081916896316276525144270501403828132464880771926556179886590629846986990850497675747294236814108837170558981339751069999296906106830834358632630207118529997390300068668612050585088842982738778580293137565806706247565431218699537127503561223457783221165335655912792296726803547644186284116516741572279570163356656637063951508325762837172045624409754513438444107833195397502947784650094103643171083732432184884600349817270646362408512559643998965945813519339148453669119650593870544237123227114886477249795469123437757690861078472325414077137487287294636960657776563312236806379864432956545479939450756013989273686033617521960344768979671145859580066253694400767625292078151923349234066736916272748887813825059991190624481436718367487128952769712331976740781786646715900643336244498385853626404556378907595023328281595314602890749381867797847763716007235166770465150802711037195903471835706272514392979727281784519407092993287164445648886772318517949522505165514313736595936549685692576306832536170445460842904410634241997861107660648201096495382890199080533234900259678791362464770194579958990108092930795955983977752371505961634811001677634299853569663527773242004960415667594693401445667905115807087882513791751172063008220240799688248443501396186789569371727021069633555320452659275129548325925132156519685168335972583366655991815568178525012557795457732990850004291902298399868798480992947216534890188420052005278930736139633031433032555734406543974654201012451933805639546207083534538472373038895491994568572012976214329540882908785920531273183500115662384129228460288228836928272089845803913849027000510256367114039400989988868071773911257220738241143355458846290897933828152037472093872419703844339488338467563068765161435803246077198092704324272823753165827811887336265294342906540401174265420614095449153142305310019105417960614840446435195196458167740773841530599198118710434506156110242804846088505880790650192003698432518053452523057188231305340396477674065677625747898259387126372926884485193003939388992548842181287421834650595151943347148366766361587686076818696589617302184289983124962505337749510452294355582079210155079395237451565783283646039702281187731314959387842001712865305955247857554461956612539251047744845022879369005628068374325785482320093805208102569419423887033412648439960469399090968968835214898706172224552313872467208188112405571138471891150334920538262872806150128725366773044637612579149876565548782960965728854277893559255819797822523350327486258458170030385480385438966540687266601517933997650373165934585244330088255869548801732885481171931852608327897909563257281683580969373233769417195251516070360627074036210054735932405764302944670927608951663877068368487911793229697988538674966418185826498942808604172174260859951436784488676255037578462817216178608128935892923279960432939025610885808357524957162204942473139179404475471564694190382662766618735776707138098496104496519571536056506866350011830273317694710957159509799194118867565701317960622366422888877152164191451448696144364412598160758229697111156857530373580847558593463711808273530545221340066208287046261349133531268323997321465533455383504438335346301407365540773804599956928250226603096621746481695785478292107459055294943713908133584592453624848044654153420753418365857630856612238564111479741088481465188039797219069044885821811726817824494437844363126305102153886026637356247120844027782863139594093919158965955855444354763431899808394642686348111091967050787865312347914951150165876290813940309588556368910668298654109608183830553202769452676505339505090176284686718578036500609149636895565686132884265209457714555602030905027533814366497472374505654001213830413116298266392647267108149586684281076914201997400245253425175135247663033489349210341386926394332090674652143175899549459250352294074404313887556528776276999340277741247031164575851641000709378669121561287444007001345052665071785750215363096582979801961934881328344875754357407145397712001712197819666036543894731484810187539106414746444749253949406529606156748926871954298228416295053185266582184083014665549617453115273124789748012559371298869086515882714855627754010940123204260682834112906394868397085533044082458092310458396889085251884413957213151880496926097215598476011401733975333423140817930664153792049349259298786757522915774301131090937168661764874196967388981544165091509761806759503680638152231012626751204193063833729616983035073537995405783142319193809952033321250210382976591425442941373765003635033750963535283179174152019729564479556245782613166926279092709079957157066521419882428520292126854131689386514197286781707856798305646432540101916117761484138424235592478161427503238346560462964682881324906114850631779859779307644498288439979826189181006827136237950098910201370715101278689422546556632023106723829636796282103996756155849395928008339058647475596930053492295395129460519623585003051469492486226805015741432177059926975996647490887615320163606056299725985637497243766590074696292026327859072242844975368137158879680232511646506937563919974053561213674346176056394259223860183677612355968969234547045309057896929133189286138201625413193721558343941981229378099183106826454623644920847922509081728431326973195956907193053317552232242047676325899140077437365251661121889802933667624260278160145402641042440408207377972679256371153622642694564107545709576309022490825891612211621081792269247315926880553310728690091794018166806126647526978324988722613766213728465777689959608155514411958429820592908731696056450269137800012953078280039324378543936774656641568039361022327678941910657286116352806664485820288663102334602987056911785226526076202300943805825371617495204427367821836654634153106241650251780767978154541623170095904516469178321372463408152085219440364522688316695248284928692400344923934602063015850303992718356895207988724859988382950939705400352156037861570870445961955617356449569463227185000611711952130759518538667240323605460148431922526178344648707249248326218056538248683116778277413046943363776696372089136843583859140447937152489292807267431112407119561132088278268349065567045390431101100002862393853790085620809864222328454834842937891411330979525107450525937225330681073749841991316389479409599486653885111631365220552616785629455979353367861064692487459532138187934097138116642690397404098076557296637009942888508581873361273268105985120535683760065260856350106373757841932155391607388415444677600907555004405611932480867705482287063012142414568764532166095604379911455104920740550316088800269566143656163107336841433743342270738593553706180281843339630852551889849813379945912340774787292025724988347780450733700188092322575006380280163975558151823864509420553644784779918278613331671581784860738622842643488550985085981483054019215662770674050705845434977233213518963334939121029987099315629453853921082432289217025242346336399573035135541289564868451007570644677935626600194380815281755695873779907110999422172155947534450837018560938767427479339659479825910194424207865519351251180585735226851943747740111013507687746388336943776560097339888298417974838656266961699829833139033781022206312707258073527219733976756585628643695399418768729646224911338865936540757688500375205475738265916442344616734222071105663542734077613397156449803345575937392473792469626677425930460727809207354490738153101081164445840158418727466504295953303252806307589639075940406271079029067719812406388337829279321904956764058810784415771595508109316752627844647917364030138170221674900735360663520110990959389329161956206885974106943785528802927893379001364119471107026021811206274517074359853448691391611033072169608701510837695763159913841243256949857888597126226521454167117195123589477440034076411682841338278400419766366362017992666103498243037770095356044288634982705265021772977637483975418196755664961068558610077724139604627117724047771514818443511998405081445643155442039929701845180274050211978850799558670280351603910169588643855884639613652227578733695281820492632551561864985296318806776121463169039819720987573483569928550158170731096790103947574472120544655479568936051887437618865430664534569045596579374578336663515842053215840346961093911820254986112668716950108407119962455486519329834986983740066980034086909944869143777155879727060226237560572642484776126693001873448846373873373524191896490527060177716099853226664256796031153341215856503644413831738278423894685517373616180910900855891744720620327597830746546238333024483642180102228260257658511295197167790101293988132012928816995423245431947355358584319691988819279261140673578226752477656646817050153677236540948558328184183816192084595936911183047828110394866531257527603297336897995533534128533728871956820126081073679539631088694395287995715063004152802026588827490748011154093465310113242613409923175442534432695656808704847664590463797752924763623478189473534432530428357766246351878966901524108212525108831435262865371075807676657633703604249514386461182227771552499230547336871396360536774766267197684457311378851499323393733203072920716763561278966777029598902996509328060218464372762968377133996559972073379388967544608497278400573153682119639806013420654967087977320963899148933528176871922610851978276086218649247341272180412817848535753456692142099334552863091594218737150109188980664034457572097213845694002402008212825654338713449209278582040674968697294099128796493759705717003101169619235408957166222562487078576278556822052612382086072825456029952905217715177108253125774681699249662225727179101002317018027463156621978810029378344083193748358969153444646918517069428977790521736255085402737223475831867220820703382256302121031958181685540704887162627076476753747041936540312429006781269753622522144152635503839219411211323072906566049402603221068751568440656695619477021959541958798088910385707250541004541635429972633938184257221466814027548345593822349708427480500061217293454085377053677252534169569262626496142515267376665491033070996467704969456208047084188647173845772719441235519523271868426237176338170822869057522956401225160110471080088687396469647637772824593905064404822267514906723890789286293595595250515207752043330508849299722862525853032316835303823261120457141295126190262888848248454490121649653681319265112569507737038850997069534377089204160996201808026704288886320083255579168768250334915577503053705888002488560853502744370806298452471566076593002802605569344742955107627578390607909402653289536734633373927028937993509056406611199584321703790875798126313301043953151693155578920147116558500829899416495205888773229994266567627269317306002196924448815577102867126417648121733368685695145457298975639345152286939098076983610756021909064303494045278385655331169711177704189911285880957662612649439721807070878288547837982015125240315584585980641577887756555689545242254580813281160479648413244145481909221740293681020278662780855159539041737692690111311835421353802620586791681350962842578298608100674788165374905699127341570497670207958640999678250680422650073142803737392651517439281653526688801370140981008473708553974072475333829479392487487859718552875199573561167252211625332591136526322642532497122974380556305114822694603536926553327316093833127387380646396108659292580815856328253803316762925640174008790543062151215488993384813602639432500892872714699768958444557818100058782170323849313774155673431529679360566103450813280697229711300775273002630332841689862947075727245917299746161870794844285858578989627266550801669458643794452336186901826508754241583315008806640993461321550713964049725480767305736068832340820126760121936409209116762932476797004747030800640993311013097109358387564763555339614714462719447329641019676912736635895861000764891850652296383098448697659817521474316680209309751404654964640180057683340518511302970679806920164266102081606588181552884468568923713741728530021247465339319383176440605822315893815205891998537760178026505074654226816903957736064993330368240904852734451337227725216811077366392130090807366271084001231320935966298599646624370782923920773934475741024252437639388194385877353349955980549147352872565663804550439631473789170332488725898456580354350940447587415229392385035518259286715849042283501562762869067537467928563964048173696907947011951568810062433667251565054474334563020695030420080025446028706603353432182131777613325310969009120616608774462897302699382530045441025301282263619763107790808692385222690856554790995017996513147261374434846175287211104226660184815523019662886221040519270506651938128335064143870552227320807223498727906984723453566531300031232261477489426453585139673942193896341599650784277042842067694460606956288619708842990188313407503489935898018071832100261891332480492784427269680709568538966563362054670567951858477640310840564029527511646554304702883736854638595460116291854736311033822806410567442275360344379523927343818523240191457529525451156585723327413065388899216740009911984294544132175910101496803318884194726621027603534917714399907200295708303811326002267357879554473032880786117188080863604179653784747717468422817007740810809540876633347884369809438753266468329004952781003301364239342381626395941734494033313610857603181583154161489993239780002296996652015005405969089658645061953706534664327080677546120482996159075935068308324022144871443823116029774263132440446113364892746144996026471663228704607101240304997385095107516432995376101522168197674619618314824748989633517506639060485235275977945398664065396986642323300202417526465444514298087123866474959361924312460939898392630547739654301904813615326821378083094053745331233014681998369537509920678168907018369156358633856348521100629401490943218409094328757512392911731577442412068641812029881800120946175767633816740702551924879076384225592508174423492117837984773383562559432790088065264926766630265064586498164104477935957695874158863131719627345935363462101409959850735240587343417518834029347245191217129370278910612247549395932977099000550214411506448388158981563327422078363524731470107467161460157334842280272194021994285241241771339302177092588559520387168852826801568708273747554545605333241031381967767156617918822927795587246127304531847479568303172765414280215307462727393859703449328444743708224618385962203508043873946195321344623473102499009599452777622277293973330577070701978634227140105842165870241802702164680533164641171399355864219262101838278259798542153013281916415851110084455423679026314594287509622953693772536313338088896663193171043898622538018809873496781787802560624999202433202040900616270605235597906200010550475202695980412146371052240057307497974095344362993593390287148323367891240699281709089008706144564298858112228024076766337713308040904796953288919242402096014414319306743573385484880056681187613559793179910254191887954305758196630076506454940613303750916561858850468497220729634299826522870301409387808691621539584035129436989632409648715566207922723140286573753667909592768839784259420270759767316322341620143758333795734027762096025030539832842996837336659835488950347735375195421996671944443924007188923803893641100495153848649689138713084358305412112306997535053624204733611982960829972732154365124209765296125163525609820677411127015119167512622321462385329695945354453822320997535602319420088317040284203313114906708121674350182561478608133312164683151750073440926229568331305739536529114469620484496419874606561923402542105949579401741586866531929650492818569684660996952449434818783261783742181268985421096829989443899270390261207584565310598497217220030324662413439468881850896745991282668879253545311742485526320078061459232280197691545466932575120201281916158138595649896273752566536449361512885768086309721425097973344022861114488358486730802821168801478521196918795652644031585429609842245139425114263786559313758314105945147676301925717040030837422615894912712107090476089136448621417173799908225202014556347285734874043769106538016272959723503771163414401455942684100543648034108168069048597256275375558306732527322888794118265062819389561546487344842895052288192351853853267395100838284755946952382881536096552137543635994183908520282209454723837607660231824374333020538923249537480153984863086487235388960037929884204524258846609656452733370021812512957613890575235055484609566367105540003529823668094298280642845519422697982986802135271148516306273775983047141689812163563431713556008967472339947307932203665275824727906968112126029560194600679007404402910262672940705194984023549080248996789196265908221037656554749472833937823959944064531392376151340128613066405333292306455235203616088216034259471714716551990537830451087121600383188519020974493638830876356564621778204455841931119098395981947349842516801668494395731539551416851056817326897188812867222886385220350711648950028556128018089001978267424678974405271008277522601722565684461507708407239721206114554960951238225808069883950071963380687005506489067587206249341366447135573180267791344282154438180896686331938941195960212867276667626784954115854144135469372053895339191792814217118432406145244336173183387316909754046396049658578125247295733441158397059521309422179036968338275784265980278697880618161155931006638608247038420864159514196272600260494254853923734900486169155468957508813976628861604554662700915353082506553408422694918943284276015683265291250329559535963329052658974789664659775215129833059910816147663362694041666623483826702281990333213529782380559660255607076767324319949897144734333871439279173930107195988121206325212295440047784900073882988234484136379885120930211441177749777362094182253849080684310785981267182032618151075802703141576939823917122978943503544518774022393573400233676984590805412824169337714591270313871310402218497081570350046762073006999190255521654249218029701539338492729234157764209090138257060822565427878152427820574031378031823138228703917502524944038065535017714214683864226677941245458534375301610253407192373134494847784053695176880315784126460247299061516364614861173304627142888306476401957982885873568024774285898236570539689033858600316684514841303164956875052294022451646646066525782440132754489639153512839034870329333826191261524992055826969236065372360223515230216445085708211035520213667801656166953553650966334063918173170327108731436895514755169224024690046013347032841980529102623557663897630196141762064883052140663198838240612460509526358872315176055128179835907579724097940305844577717569495174112202561331290328296871687292661242468456274277766818968290932680354725637544001061403631835366713878227526791243357311061124863385873825963900028270818294621987746421879569987826597987982983533130125899395651256234056960723903007052638587949226316072605261670494740774269225949916908956391936695306860979276762226711590684939363630151988396617133534727984260257518515863161875495777420718734918509523910415807815420667471223032509943984485279048938117550005285759591484137345136977214324061451565149624345245012035584213367130051651649623498627263056868030441968837497479494653911120269652626490998557240708568333690244069907502285093284064544590774038213214257235259717595714970597661553809154710505890148727201840345043913989705572364520970137776951917287687589763796541211248074633639055616364819201307785261862023849060875184720278432235292266693869377540649401808644414654800285925216355554574780936321144125199219822212729003608098406704108958617220852362709490926329184346719248983757337862531687093684828444877915200100224848843099392591378247469340514556374118061176278027507674053730397034889852056677113599651137572294216482173575972996101023007370069175721751355724009553124956047131495922215524749913605127713772913806948856597099282865339354192964383566719361839442846413936922684401493687122135198063565736602135577902856290813407860918521372087664730693790605062655195282094407151930835112579535675072408643146276090412178202909067557663996137408572491292259163372186495857856686148771978828390805142335741978475270338259407934081856154445344585548093040957784628719559002722163441120619760368740069642834374756175264209164796271066181852615651881304950199670962209070629753519186093891309920214031975876113450093251643045814737806697520288506079079260132203040590055828918897405673002177938137808109868980075755685449019786255798568882153270074662935386830158908893649609940834708597882598360129370991477148217082481214205079568210749430615732556591100239964202668987479757758462252893036664004120340340843265507037822094538228840717217956977271395918134784466374922269569485628234761846734502768994918985243939964250058067187643500663112031579342113730472499176804170227243517482097566261922828879128543849323640914902142939989087529797728134549511515018337332937074410275768961013003290879018939668233665520220039069654185723123372890911649498273413757011061763858778733047797446780027181967903179926543778387187559324062232654053320108251753321912657204821859479452388084518618265653535960186743334215727952356671140790775030978719206551288593912653042244461379666167804076987283544125495330922844816107344607532446820235644819432711994114763588440869134521763848051137949261292362693260881384625230952365679065099288528722394853059319359601343414167333640145163774127893149620348916786542760560974276597524272926098791257025054667837060834699919437397673256260047600579448818651677971244466505307608646587169573897542218230510981503889405215580146876853756084043083124849154180808234166114329057275214179284504456585480003010971011741889906522413564586439404099224602022301124315832263451549632453723614940888137815407185425740984198790948161750214302849520968113401452632758035152035274682517954293755995473504391988354879218118248368421223518587224178671912646660845754155530989828987158443911540538069834895270611741467754563799190806585622155194198368940529929773336450945562948636069398758672765493492253943546335468386199609520241640118881047484872546354630107507165972284057956338667798088921009675305918000441865851831972368733046923556038239759435573975007823113330181030670173882777756196833162313256332785830777309269316026362889415032109358413865908849979569876715609196726712556871305861987447178142040834993237857894408864157465931455656902457472490739112243760720701459373430388640935391970201234066893024541282625014331046622576048235966773414895210572399580515437739125139946624879709468231866481286687298753564395298927544046543196481736434451296872773031156715363271574184109798902528155262461248217490346543144711307465701018159861756168703538146549658355384195851453514767613011395333872616506799472434165908856137127376878055168146773846836907791995185818148346296835454298528350848934974096397098823519443316845399873394656816789216635177571861461269994674448120621111038085677793758425903572693871742345193527535134883765552144182590835353554941519595833534403449666584508156618011363439619677765981954653772253877221234797022640823304535366995082779666339351962790954097299765022266643833199593552898707954357543337681466774632420390033459890950146182595335689394473266212905853617360283763534160464810872472541006783856081541093104645145149536621580124174024868808020231314935505846454639246403617162097804346630816502692646806963918400594136316803453904936360753021018676536525974600101587335061540815551267909061323915679403133081150312507481242976388599225109217431826653907849627815722674428773771374936981315001227190991828237457293212063260844551394195209452434182058403498836280631431444998015980900202387101646435488181079990753319964914092548510070926012338053336940100261070086075470485091789405013904752981118496509863968377355548238112255900795387860577957384550692928019018618467025989187821166689167808438931975927342731985910738409252504673341662409191541925457957686644584302150331954315721114151954078878545828693100038233767439666601616247210757882595745372588976011914044524059889180749684569433511030816516853446998011239443537230756559541505482037446297487787139900808257096392829727294559182837872094132459546360048404695228318635863451592476389919901606244862144695215531779305124609442559898062150923244170702649890266814181627870095646827633844704808722524177586582714603004720664160427424938988493090571338579403256520150794106924868893733409227377665434280526257588114812211716656881263444437386329270956339670641210938784180049802294934309434032210146808997162047704827633531676763098713226753842070622717033549182999504118232103885016038515453072477693399838318113772189226420489578017460518522071409895509899924874957709124350462821592125236093911356350150070176116007484364467642544393531888155380324804197185388427496536969316024738523754073636178980070180747032592320789571359271476580435024380639655117755037599200725339061797060184954949711124510045346334054064538467167931303085867182434298729934263286862836583751690023106826752576071348648230860172909348096634589345677080711672423620284814322029198719082020573273636577295449141862046315245594838799641454399958192318686934979318014481071548788231979993229514766277784002615815249919688755702766960463679608865446705527868606317728262032193908839598897531005827355871328230092912557588895493821482100837042507963679943531480183593099686058098782129379633724035710364151028880939919208897484238646878413420563048454094320292776303074030592206955452096983731312076573156011493895953046028034641749741209750292617138492850145332002736438451411208478642888091740038886801378353302965464745930918856236386709773234993866375640680206248395779853229711637256944687045236861964720007193347805134850725948911875247669946420381239793233465282386001563441811375297915831543577779476374930388688842600316753083748171268720379202528306257069259170426246856587801265294372559100346310793204512062027311168070937454965127910631644009009140279938131967145781436088784292548573263210519562705659133912521654942725288881614406165312329328796291064133813401278331356983284814310194674708707854910518184550898003899603658005590092191268770222322909850066097917392037697427397705058660612321208028129157045299073865600622857239708393832205086681347830549600424662424142262775574571123744131539913875877865951238029440035167077366972180688283660063443467181744811948659644125538129892388834445164920488771619270630668800413093983344724037968469863138014580392028114141139680837479726353601010547574846330489675822151056730868781411408584397516783308500924966485921963290815695573325904887638195411812994304824692910667405868969926356471013627460786420126764288373242036303681962234366664080340916059897788479623791262643472337551294065037634087739743786689309424510060578179645218299840172950570588257357143152087284142588500184136411889660429116891056591495863871188080718614237854000195086964785501164638092761798260746926216733877129136203503670075288451447442327268990003508063374964611550268849790706278516048654275309000164234160600936524932385788952738319343587106482401483330636664326789391854621943280981205885746279732561409272507654126111019454102662873835327081524614410309360378293430040082884817325809161001141220749259941731934015882976005838379661981493324057171800498970385368701731394816669007055273323769912068961384891540235783193142589663382381119250420679587779943034848258025201727108661629062525767256181002589399444724245654498713362846688226699774295460867386657961214141937301655757752730217800179735830530770481619535323262902056362122214188312609073611193462202286638943080791209291036268184596235003231579271637706720235479690116832763359118243445464437087073972456903142482095184730110546964692156471916623924355250337186536489886831108328260460476336416330060033557137166574771455631316561550932167146574380765065187014203392925575282445505148288947271308661582031687527342337956794460325279604048974902478518430224758996604341336324828703718926606334065679623963103696922234213480510812337242778619237423062686825925959903060739260672621617539835358219869796533156933843917713549809570257146903425966028789060153966760136501066818956062143408455524553620943777999637456140830341515431318562438254769660636520323328071018552725002716756899995336544505932579803901650963404890497396550524524077666654269285518911157745513468037928997510603924223730864601832021805529083542097994808193571887049770232360733709889210366480184633370010542690175627649104240342588333620326178270993377922585532415847850489631528227091442488901397866527584037971159300788587443205063319767216689181692274257409050925571070837340543277843474971432335306679720757893115910538461349730507267887085869862029484080760198555891014685438904417898997446502594446644384540562289296995564071098210773595985341209466301390826356106065281032869138864309501155260069943919925166328500904626430353869888171706222651925614649452430287517672739381014393967181125619404855710771929557783715055997397839617537475605285123526626650881295678582387852188687052692334465647917552051132781825957067540237185507665276101297672695485811980188334895849420137003470598826475223414627583125120799239227895056968691957965899494436043051767338379348953159950124996070794171455377943045649763972821464389568876914982284085040960612436859768094551931951047204697270644116030184600204656326765994603943346050953829241165573606443227945233875413543962423791014951799875058174592826114545435274251435957985923516866723331654427082939326463321561908968256998097023816734868405115542693916281729733647174149340738600225882054344602391981686964110064053762404585705853355064984063148615130050508169164731471067374340939685556531650559737010757896432877907467579901770395709959851588841634633579949383737909688061913340838751487938491351213913928325849102733955370471508454571247214056454940990750915274296003508147386504048746728379661104183077867684191462496053269299048477352968071787254343118591489923477028738606824018744684773951504407697955111465107324760476137557215785937767513422630493227872913645063162017569279116964729853849153710202503393769512182697014555823281150631870707500063640758296970715226765211540519565059675203080357047635583256094423068521296728415536629757985671416332182492056428937758587367865722562703192682273152874988892634855499203354749166485402658277688612178127756919552298805503602756468367847580002392009035954094441057221586529342085836034217883830638270882521890763024497019549626335947067079671425335266193359993535568957146831201270747709572699797610622154796073567544619242576807997225758329475204582588326256990036248907377025306450311613679678794538050533934456008629515319816291653881903325540481393527741999747404145683197484799000272208967756334370955569202785829655497009325425066878228197260770652600958606522824519987195887146792087252422366525861300705657506691448337477994354676807131940958546062303821523732294876020200539393341259543761994377940319438637760734745793087359155002267534832720036672189241184423911688282648966177812900138798722520511403968609964176460632979315467816999328171125503597224534327779709945286671268030879477574644070069628421292622872057273466296276617362236993223222131857564725385697853626795496446632364738934100041719933315955387892377525866387334471502742030818311468169482447757518831787968785377399769789811128603958267436402026842594675332230248124519115827083364066402244192744122997538429090726184803442953526271267710048388772153917804603046430205769429022664517084669421108546346291804021852278838273179555504159658987950008563473236110811815980540116305692343304443993615242205059553182276550679577152461561971605567153793789345251583671799801985441079273026205017253701583521304098225226536825833649262268511779765713591329526682323757538370804802314901246608683642944839609852629084270684838478739870566284005182163494424407964423312460769733745294367495755361767067314697234974949366985950945530011853661080765188597945483269207528980228550115605556924242129520367736061916078701347604473243486161370978237039865020641456402809249532301302577079646651181726863276357788968202167284372344510841773859793631522204919389158852423373464411828745090496321029893603674481868425100784286502451637690438053028474028116253646984459516797895324973700953136273083539065541984561567930674320966379822443789821519557240676356281567586678975442329699471347412210571526439077656007158942141374841478930515452398282344976583332808805337198322396875373151477394098856388505977077730714957134127479883031211624023167576046301128406112825597990650395662486296737758228675289863809582406111532166708429959423180260713091898436991063096781186045641463308676800775382994778643962082475107132315477274376493366391363581866912419537389494622630797465082949745303666021750438060997854173797653678022445786585627193642777364129533197719808279656460585638681502339060636546767668003283877126249978681792575330322605371969229151044492505985955200734033578520794038782574709712633757814577207896956506634794465972720619314787101593003686505540495721173032693218686956957456751771740030519982626229577797522450311567611667926480573460579166330783064206517751743725468397151111024602789246841857971792717345560483874346796253824058798315706490508905807626963304551928638088569926999148087416924318393112285828780747386631905743511583932895400830946869745049074521038257464815613411340643004543670547290576272790088912256934961588190782904728181458354809989655199078989261958443657468115577161957359060622453027322215288374902798117701629848939297142229781239035989784380694317811210962919874156533339920298053632406820176415118162817220192254237581384812126764063853473131643665923670820562562765601552387770607062103387178792524306777125249439672689058440244162060007914757818204788926723900731440740462416812840924845613548504259539245387253448019744311646096142107315183249326368479012745580767705964142940575765351174578884988863755677150491475280735641244195898789019647641578392008860103436413167992086372629422103806123458553559778317626934075698585300532465488254744252611195065218156520141848026548694896777403224838872687179912168676388059237758310598365404616850546480781037388540667906512620937703644410760671539889516245769429507353909921705525099526606062177754097124174937097869375159081671336730149871193918097267334012142494865946688656152543664649862563072822085465596728690817745676346381103671157002078543001632093624630414899225683193471259316666528328207980341687050424035508533091231499848609597143056964594034417945665485272069822882242892003551625269280019766766282337098953136729938333442741973052035701957654488410569792974290069524984615506999958495234649129418592353253038981716120880052886680852981451116975039569516484319558136345436877626106224849036671363170060169223441457544019260332271486524388823418799647137245713144610389965101894406107583005541205759798310626021682184644776428778596343143907082812162742820169379688499857831240895708070286469197946358581196509241685264783130470989144645261247205516684086527075432609236636778812086707713495137506740089888729351623701498186532275398034256601968421150008830936797701284419199583813021616042025008080556317791765719730539153676464099737493548751965346708669643840103418467987514195239240840601284332947340939705066643491950088305594329233055229896095829872434124209337902772392598666619378531696052764974424033245267544958714474284795969397355678283941348503480745753831595937403900642297408280887464031782488272299345046424889748145128623365752383067761836082977917636910585284841545077858904545618285580515638985665639967134149957037297754944036595416890684021192619866265097402640131337989903936539929089685445094443177163250085452081727482500748155119537080195984578454244084030652602076670792908952266731848112746215705595928631878336571497715963592518647934378871316089890519547848236767631631360825766884600203273946246916721363997450211428743657667865929602019448117344936679319747770540233798169776232979431547112624354851972059047880632048014217861252153849014272079900455529340419588740412375345788582248304691637235876173745091028806305121180087120910699849036830803581090995236919321742328009960370826128707246525580464678693633398698766139846585280142715247273980394858397208783977420170225781175140429890683611636535480920320402656710961599602416116795509217186408041029995123398904274724760737716273676840557777879823973289898365547655058074609524214371221849353911998259359785736159764514590235240404358895867676078453985052079699059001731953018365912829552629358610718267391389047410496449772166699352320703318172215510955324479847595128425849375230993766890734719393506667505994407334602570081025573385469375843543267491950689482468723045873062605605481677968719491601375307001684617831508284135663440477011216835566632558744700739395893336896994154956315471610169028472208546953005939592930460369928322117248122194662115374193652746350959940796814933404310744175692660608069140059830096844039642072637816350690353187798607855975232594215759969433616578108281899699125427600402058835700542968858206614032282387504094980448064230027970017134414704760253187992422105109674088763787556533992017723715148315853587780598939438471038037530495433089725093049504165937988104630583180593572282030929367100550035110481016426294320739560049509184164105111103348921265680630538005393107677944808530830924795069208646955694095009397746893024567710751868143636630621531309220739001313259883959048472869814372761283250718529807676869466633647056092779725525067378175960307141475632336706013039844299460855653038436207865864487126894866565506097283637406576747381072629336931983055473315783573239612778277694530495232104901994416578304398980064051354656342638167658807202720413284510637916723658644819989955065845151689396289820863040790875649191933192176222122003791902498940910746793584914937461332818179081579636743511504623305005645548495153100484461924827004810450798394805564557558953506347896202997899632849584520774397268977029866820152757566183903500958642654046983996688863338656052570349374642398398510420873206785533102469642415756378825550499625435196862962719479129861338467493357550398967011983718635881697000801259593199164071858194493237261558774086057980216061044182865847108088538135896519342050678809480602811367334398296219289695294561142120765441183987084205484110813399873667946558430877970269982341403152892010534957358028821967802681640658248302295502000838431431125767880562709500820517632714257715620270063256527752871134391269508597150016227718262567725959760318164783272595400042799165018928456981134214397072080112705261832728173927987969071670226655317340795257565572136229456578762049527263160485476794518513051712729956986591509350263318667483050456110265889536183496696699541253777750779726140177877025741186919124681429150001519365581239128172140001958931396409595131167143170592711137743576880087240691052965009794446476740756858157139281818417908095451453859119934817601338657940142222636147241007046558163164657741633843995571227093913777478688046494202340806123580877672062480845907469910693690853794904800331680663034212780248948954410922540905089483674205661899496655079233502453211237634512193645206610825140510900302744384854667267535588108761972243969630269564592200171423837875118575330381496318909763159865730936083147896721716788899347315586664087541659126507380484052611987401281866332613084591345040297015148976910202526648002483978835607187445390338326858449241996332692916392913822390205963254196772233201857524510608843487129982834044526238248468315463493375749154133604229696933394924028768156033286862655570954770500115084623207341524010629823672612830056144016319067416811332986266487810130347787217043131851992514928039031117931021226101415796208272266461824656012392723618033501999739756383197856437987738465904356691769941486912872182811255688974378948078821997786336928075871152647757331210534529937560145742968097218160581276396307768330541599952064759645515007482484145927312587128519801098902184381545729569298953886734665795322971773108959029373779108885694201561139851490269019888835763311526631304092786966986933337290699932966850146763953236938921979727869502071668104573709460579872609811710303118973661038068817039022483739718276004315002211079072658717240403716324830999455987230626170058561161777165619038637425969655921699287326024461724464086367581814253909291476001339539596417748702733770130787084342882695396423740484666863143661730939991496775885438521281114277431084817730829790408182708370851033416908793947824958654627613975867680183316023805285514982745599844217528589363343355096508925844351073653192696342188749848133031439524759888577280695195475029991025312421574664698957528708971635686058073615005937288492048387035628240976867873094449285079884811223053994646854313324474950654875849547160025484988999383077268079748997886780182480469272536170754644392286020601930975085314322395321809074769974449112090446054799694440359362788144093534154213051957172861353044588061795651638424370154840673199118635630201260029364592159016657264022232653352538831176873149475520054528269670445890548871297652362880089286715834657333517421063661457091010530822102175511148592326325929737949492070580213824997958150051479110304347285769539070785953739412320181788636428264487092656478333286243919396928530428363195721298944003541200877857098792734673522797343365803147203699794805985890846856390195258162979259730215309720096124951158030974721909477092695876126719242309258408309957526635637654092404569011799770351314683462864711798094586713623642561043312920851533563927347192507520319763347695122171653754396968405214738920796534501346261691032252064482378892478251253003075304846100516448648932830479474909418627938929158360374724765011183769306085637508654037880821402391888594854347216203116455272350370589877648986594363749787392467366957880711904279398338126215601887930737859512127325651008160255652169609331039056408171679599801460965189171247880554632095287042328551925192905024138820548549014551999060178074646802281584704306476124559802265355698923565635224152268574296821524858620510775545870143497510066704654889273547534924494874895556433466416729950478983770045241220737617541435834658233609834255107742025073271484831592320368058561205439511875639217109845330896362087002407120402136000172191910153700621436928347403473095532118246035479473030316185402897243437840290193438122699060937509267942456943048468232890337747434567557062314876314934916210823568051444144555919535650431936250802618182470722194841095130780617109513956702420769944922854435901506063147582814690000327312846005823290316846680654521703659075262462883109478891262327731278070730788012587031914417153031253783997964829523368083202876839988611795814087818095927907240572723617189510341362016908035774519627663673967141499910530740190742090635717788327043869483135291663736604541208579157660423883291522722414367703840557232084714518533413808876419283624507727494648291716255198147028200137190429483746953919152668697782219879596139743916963370873975298623390537780167041567002688643790764097224792349253073615858293057674468548113840597581047347261380242489505273719735152081163571255715813573603774590176317279433988998936762567559707824582453035051211033518365333485577998421817657848663876537222710617889087335700348414834101108971909254589243446540256621643609216052082500227478106570842733218845519775215020557192893384119382481175670834438456259521784921123040002915913376337185109833351843709788283704910694107845844320222445502764878367280914457526425100804355165641500425291538478111589666183168150701781496897781639912924705549655728227205998256668988871027318049894243186326329471731979633937641205907949680606007721345958140079014761936228688039711103858466480059726891196205117661224553565893447821282376248580097171783794261406364817432201094332512153929598582921289703949435566487284722907018060278205404019097855056070525657471743764542864703266029769572887524424428091537658469089847947954970148344710760110134138075869274673349851816637770756160400492540687043887993591656108389829314461105075308063132040038792633665320823475903273252574167543039059837787439703049452503865947307295772611480520984909429932960754656137749854186753571166246768685411624418031092660803242124096304005743018784761173519997333096756417957457077372721277596928832213496185204336951669638782071286014155212167474483631650889015121967856045857391165860524738366109177925492061356924457586018341298760492203524077105122118936317754573553908316096920620024105476293871506899481529908370776587653258494883023444350945081711469382868181922802133313496743982382922307033814314634379202907719355408659968496957948129875340382621248224560337593367647244634607253297287924523199299036348621603714013320889787865301150241628809019723557677615148902246391573914071755084010218949995951047264949734611078074406856108969765893606971784007958576797091965824804301122188420934794117690952293685221558702919535933019368990969067003309811848687693088732196074296698593748363411224279333116007055270728485531040833026436549609131985184567126904860764106732344578067167798408986913412955876944807167525842294556767739998979493835196452442681616487124013988915063022008492817949359502036339060594300856695221045839174725000253709860978557626014045122335097688954304804258978570941591443170466264846428659943318795934016051127466044429187532858942587532609778344950400183182330238027121338850099393713605343758133686548863343136253520249361145747877644527228509731118568110943975961976851362631579910711764765215135625553429436218640540076407473369993202152561724616349718098485898940148156146712291131605518115602400516665723089941372540114371757091653644197623163630036533817481437608758492865432444659406456239908245040915075795535352241689320664648495140892332999922071313269059534990561884722628395253774288820641955162403987527456040722110844851477720830877216383314474826422125599566894677261736240231610459702561066851180512822658699652326358252878511318918739027338944691708726641093757696053449696133226773151679667170727003962011543719847371581132304433608418880530000054900344587654471103898833738945837458902965555158614861355095806173390539831274862759436012886758202663586558051293552580830298221241946829115459523358429941929223827056578556924347832243280383942083078460081362681816753121837888890843638017501387163848081137305377155599611010713080552124230888800518365240126248192904142731225677611568007557826920687622896128902653787383150962759859675695773086858084435224511927637322670261294069810943733052651803470224589300891010092966961509014195412803972815177655602829971491506727377120196793275881906450352911650889707747887862647120954167232520626400122370078938992521120099919165893883983028073033084682863825005432229919543902055535457332862407480950913060905030836697554090805334856602719042124145606600454378357943417905826708655143708356939702298773624820376615633011609465470371637631784881308981501868662804061048618634765776000337570255864577930495011890522038848416039358910134134114280794978640185741447776629611714974856166744246268979534517723904924797868934421936750346338153610901103151961409139080174955865292553350770669928216687385729013276899259487722442441200596909645938490991263459528186746268712412193629874206206442043974946680619733158782445874480075643966764181806915957070675035834170880293724649006530308616262711674083880340225222678562820308432276574737669484767683309876427098994677693608320029351807732201928393763707539309689102558704769608649777305574043957528276770498963260520645892984218160367214515209246276382100142854196446513817116576941578760415008502549863820692948864262410620332139241391768956689574601671284686459404432163057179734688835716762077205790059579252985610679677231632784928435682246858729434325253943576063768844577264696772377154993543923717644733680348585952255579150290727578239407689803010775535889004733487416253640244808433729323181731449244531354948928457848742336965456148165487836026096153455175355963716489298219079229138976076039590718070826397686055646998516095475147786360754835540648424631538123472844975384146606723357523000094480066163298599104696457946114289764596771745219564759586333077228480522158045826316294389858569920084077776014751504236806053894868068890388875467973135580849797830332755610503957217298841008661641391535386906928414132260068916468257776650349224445383171605251774508311422971054310506745067582952297535419231774966337721622666968183399253525197461180106326462596785602167473251476860720220505575481204192429250500782836889419422950900310065467957801415146148985203775015105995514350342240566363089881174469855751720063330430206120675323332345706880600043628594806998369871507779697294537720906341963481145936289896109973233670727839499991917211166299572184918445193884798028431952920509946495660192082169141701485887012633865695357454768150286804759410143372951435661904513593376363115007581678055606674606537477224742159483391234833861896631080953986869618743976951302155389741080177129706749921602688101796721149990986931876016535820707405477708144836616386679715143854236134673378696849439300133027402446736116269897736016678149877116061528206957140193804209862357114369298867475821119262803381132057474062333449558089932823483499791077421644199374928874424840963316922658718423001061566338349709563659904657311432843311867931022817155284080767144004007956185035200841699927222728933182729943475026063243562064002130872194877757367112991560126442480657216426922101582955630090051737211521194003328420490031779478668067490642659905687468197529623514234511728614246119028233889438227862647284733521824479935847324752134126734748830981649957125198551945263542828264616163255786923821162027886440443507308543505109247023459350338923447248404376656211155839179194883069182819815943238876533865915516458103619549429357893610351960503642428643592893874444632343513590968096939435815556785361267050681960389475893801247735248878451253012848802255434474221308070728418072483143118712127987285365213898945273764521656704633271532876587819399576423572187117684385483685629498172781173669645477531114322509790883385670530762046252567467268642057108781575417590993884250166289516878880091650758536393020744963096491604832914467985998597594818544572937131961501500610858562347086863057861056146201864643787838198853578055629502307100440376741229402724256991429208538002378374445945419731874012632110457087440502406581059955002832670313913314369049963296703591783250234741202341497411943825412029436854423827844691663815667196028976821614801751893381877469882985082062440800639569467727481137086213309813471496268424462873772426492512325029729079225785346129916153907686708134540656656782365378392727785362092360209524754145684012568565057045613665384328210449029556233088479915332357442353200206642224473410627166694300528879193332549366820815848427093694650385388436566202296139652830271012553225314287457554649336874142096234966579779543240868234624540917010345369487888410274851855664089794345740250666622621198170535194969044883059553953409429062671378461782264687376391743836376413166924187812101864005315500385755589992955658021793193429650609265944309587168798864038755671460965736353528890697483619543526980127872871509181712831205516851949349263035001527661915284185231879124399445493482815797811107850576743247810958099597641619000615879804291860442920961540410097302353574500216394634817197141198539082532413897673829804359191597811933727948795490187059518285894562421322402887008169315651485137985509031204476690810804720794327079867058185626283952716189650487173154071053039253872773613601018001461558946148334345035179918622110762463550865247923662933260330286619036338936967230864801133129890500918330079235412890546270862389090688126131202400661138268074282367526971354327353916465461819279271279356737969674833038605563552630777575814213973547693299437549340163360258071343327035073932901855399696445704623918675225245725496743277924728939105551078662793540112577259732512027742126574740138739081115468674237706540060810025733115242190824429840552446625961895885062061819226562514913111947155098110358253540806581479566088417992853470518090211662072614882617173329527873555279722200346492091733563676925557708828538484429901681552383279860389385578332559001185895074311081508646687090409667682592767590888346022458578062861977050313178483556568855725433995907966720160061181161754469609990047423713472352907537623248717718586908636438320540428332539070030359314284707024767776375471649688848253501882172686143239886036513310663449965529353470912837903726452049592710338998997707663356203417520110749649375459947819838787675447112922102633026478119210962470962047681649034589833954496990410571782928147151919664840354553166915142318632610188897600206888329394284759454592923092761091730912294198747601298189346768575645585580516734093047892023418896680132319266703848760191888555257943839344736615757678500190989015233872663959648579160459617369846591385321217135531253857641642510987404966186615076424326607960001779005686187296387610883421998685324586250227969389924039029640532171688421166778590981067830805224390178438396180234225291210073637149972658936348760852078601379068616830567002120628879688556361396890418566438964329187308155708363312107115487401696167737582191772004415635782171903386706910200999522884290948977299308680979812465881651546359921026052572266919891698231929879256787266215068376152294854178315260076889904520374314846138979026186886285244904081886417324567396337687842703795883399267561006172111096194349848829213940539125375293801734503193538668299943990814802006123045496853983490231326889028632905181551034110743086153445866770151842040171970458862279886468391199051023128356185013322754657136705214228457382882474766115980432978662361620938418451923507975401295563247088555930892086751430808381992135128253639703762075335705393259933395086813076764133924453993695681843253789896916015765840982524054706726522252192619649345857208995865580554758099405117916500923173258978805518317144543417654847610188009111733422238261840024259515717552368705303146853881350467599961407845351428343661217486650332251049372781345933171513256234927237793875990163778026250433522056242748513400463334733199306826553232512791183406559304229066606928231374432754595656833807271683448834059797908180722718201644225708543253827558872672025203039919435621456484944494711794403475246150563802953926241529533542501786033245039483740050744563860937880313836428539298643872624072246605229115192207018121936949974972976243190637337059678010409183006528099756390865005710392706210355895893003017844489571124377773542032872365227145454655864064449373084405708570918021825858435516688812261259092420287368403722171230423366032031665576077567056506490607219227250419554750432269718302714467437792651945020091587605701022209416094119039975144624641018690120901423009645345639765258015255828073131326588414322234747608667367295975833503467379227223252738870171750117511284727143762996230873627855032411821317810340528199270889376739415044543531705724563674320792036327125298786148330198252493055950119916954144869014982662983021640045489858498775598869651220760998953362293460491699776404672742188357790213399576449809635544653851976980152559102137172490856472368913699529022386000990684671321835986711186131811644038230996313885517802315150848804108657374615889194661518060395071837199484630299311731368680738286323086161321960140559945956708310657671990393364166542145938990099738867385596206566107286094532457553213555230864220960620942165718426755492003552313068682085655681090591043250882620116903822112030967076879576745121142234754800845360448889071255921678578042101042066264986221361218129342445432032049776267217906704385999175018313340697676943807005804192595325913963419949605139639433183958680151208951106081225026781834068805241594661048697260620177785536163202901676514091171940236659401441511307231225669607478700523689933459098746888694689120952780086008543862924663362289425772668786371295155073769782966278550081193333603653694793440699366678421074236382563626434927429188961725203783046835139110851209962287067137846936267762490178169946692605311745995950290264492520495319442371310167547989820131608129125368349426319572405776524463065344678879904364977007515041877398067062702040725096558428359177769408516550895666051578032152420998840703434012493607177462238617261776161471146410935801258463180992948485829369140968977547385007180982829719929458021043294404496493759371240365085195001987370992863796999410127281426139488487625317562878228397788100125150919379041743266025967565572843091657607120454423921824391340767103455778585457715234848755749999459242484319150954472890887733665327050011810036587570005473977949538535703590397034453907795894075558339947194627497035937328339850168063251888950887205904365370524538137026753432475253511011810817880992331969389321640774044025376301852047241992366046127813904394544218586994958030573801920035120459309441613221330119125234699495098172691084535781968341348200475565146389820155396482547028681239433466191168779932822598122028845223286943979411753240618821094689226590009346952294969804117814527054536937408412263724592527862571859339383539303941529833883633949714721884654668957189728212691524021300062169113385825322632481006815218298031041093628121327284762851101095684016263734120709905078828027555387826547774488728393426477581164463426227884986987047307843048270193791454252948372912489615363228129977878508381152829364962374974499682228158159761406601436501176524739978808493420444442040609717934158962312627587716185301623779932600691727006024537502619761498333474349643126036121137222133642609475493306519901480294689149380149200949080918270368230780008372389563693875077160155104920278805929930109849285174965803981225944940205097417063894499658883037373166586337147334943125319152819784612577909366520444603726228693594599839263458898233313925205694600784727756252339535714637844699669306790956157572659677026434486363796915160137170244244932577067522956556272766969402002300798153339908189652053914200937032195307359163468088817816208770673951396668159960021630097469495926166842156340411890216387034113730688728424885918731592322709320280249737045461011277290925939911787259178011517360032123757941045183509409412839237538021761372047427299137997857585115975895773678656853785327200017645748117465733424735606296688129189384272069588584671975381389959204278224414132277593098033721125639030244950090419903617909941745406727317426072929470028898520391439571007430674738004694329103098746339771899483191626000405720431231435043297937058237542359856062573477366487347159812202854898045421323918143729481735001435661803313174251269310349891736846714564421649576815045732106436288923620295722155763759443465928111889047166697165986547807950475683723282532624198736716710710888052000737484326281821600836815385892949921324510328673019117003847265691932264613377923697356759631574881753220926632083505256127283364030472479199010364620677690624882633507474456017964459636352482183403598051395141979915779501627506883967791693334790023898521311160559286980969300489345730462635391076787725109324637837483712759357512866831106741460757723104801149757838903725522060225026407589357872838043932541635039288293294738816366036725442096675513656246646476734198365784052810053802155603997448458475929739232274844301996595645429317328504288253850621395129322262967699157361088987696757720761606873163433241741454669206471492630433529053164457541820807166603771521728948307554776313315453924948902971968829011354386628568657569255112824387975632081017068053075749530770196560805915619025416091739131675984033941084682088747589096325205901028136071443764669954955979465910927025797868157106543694189988329084019958698839282706842705082937617499023620786155314969800515662424526744515227962198305137854046032744078025039520350983852485238947395174788589096400717368059201699564013994920734257085025752277890563150325519367320453463577281626608656825773259238331170088898289320883935113829151890058725322786312162395915843303507019482772913493741224217554507877641512164524308748494832511781499500546842652949855181800047192244420135218613741018651784534790262863597469284143086525772734125754941989787249880422184100438643333353757942918401444018814724751071639146687517879268579077644742170282208079875925356960166486677216058047481136275181373196144194114470538316901966071885810159162252856002061897135259599017202102743639121399655061611636460677379812627427307348254007526441892288678980753301769365446138961901630851782294078270277047535623661673836782748331117145543908348477885516247938530716786782837427554966503828729665234091246175002582838887893092813433576675902787286072683129528363520354531662532374615096891404259484348016313184687596273339558366649125352506379172854826217055869638319734735491837201397180821500270324070225011287874610390544321203923309281780336338089784321298105701610767991650292995598263524305677586471020085653528382533628692505230725972766147180517481520269509011634098157815476439114899676907796789413079700741907792703822474504605155130719137105313313755668516476799605876013435962354382073125871942439836132813138154144419661358113313267885093353081728492747556404861959908032076907641051117621543328982241296812323416064290541534089848349166706107401869359216759038374737864114909544591105771352664183124564990862600344344479751431604615225364574273781886609927511648421483776901069656837121938249003898720907994584312691991344625557845951486527473851391043932257837154995061996264511389029650631895662320475230693173276880601285016160513892511542733497869668679501511799246579405745291628255249021178843475829071886803988009380566024354467653231804909902719628925156746574026765599989951360454071950019840052257310457886153088120734237535907359028629151435142027051308818523001163549844685960329023551434542659827269298046168280465292813092221466829050596822502003670438645072297479782935464989612681631488014265250578333627673896767895002532210713594529602300207279845755558144792156224685517078959785144581560686991796870735620142391700587956125893400803402889060678545625595383199183891626609739248451194477460535775651384044109975618985455049100547821309482608034995509491876615460001016403834902836412691785658005944562331467152609328361036349674113746633128854337880872611584686045543498947577505044863174840866398249483443256203264520944322367330624860043762813115087358338915694723453629004279626645216482318375165708547085081213293826204841338510420874837431088104666491795163110401088933312444242180032317304089479056844281980158413024929571162579063871461040287154203747209342464669526156640156651127459406721798588994641370938665625275370875769253816409194115163585789614916425568054135098706002937626061648871168029102575784013520169247500016483791753133342448076156944086991560334282195665834528902351199235130632370017676413872375754632503129056752325138668135262323425564843883761980627948434333916539206595075975908720039300517671177313833661729203038382959136155209124149592037918211330898978470568223796861376102187608422584331695475114656731804055291392477217363831741227131212717975409392400256821401360974971323210011192135780474864855961944385329699586173355548591184591257487715805379329027042522540553767709025323396204508261135011115820783913301727449889121493792717786451956336405773392535395580448078832065521862801550377353543201104456701836097882772916059148080977802768219837003962739162518038626250240243236362461968233383442631939277362843919724478224163230963352801979958517931942815266798636720673584430248113739130626499388670523251891293994892117172429950675371192236941518424484157290745387334215167178974184334710242708202381643155645948307073484677676112083358465247665803526939781199054785004189839274042949324579354098427040030938673360082791050486180464261254229413069099940069619891421355037290637264885432238580536766992083014412176483817517625823163732563312756065273150485575771288971979019577725862224132581758253876226749443182992625611575602882826137304860130866403636947267990839558659521760889527586715470819181747926588915793824553948981432271594958765795842947432423853547584342398947441474674816041343577701486088488954286851996465912175299953296021080984924425897332922421767111480521476902713894951216214395699455624933778933778233558060730164580345311929926724144388071936291528455589196041114302791898242379390810550868609254693777359226605318694966817749636432376683650074363196324891162360734015520479407450219311284633668933576338727731142999984512589062006017460313121403527396506158648663580942875681482663436774732998649862574624286870769573615215683396850630943634643078484502981028365233888868284957106575565532083672917289715801294868024607365782197095894165943911902768514117718848490199019462107408077994887866872157175803505101850912091456420807124536783445130857355689377626312962702491166048943373729338316986291723961114371373791729716019705649580915573357568760910489566537216405715421322340594423788534056484869997143103622568693041779623994899517430349560598805027025898408180937679966834247314213583377880067944479751868518163376328696313686461247121814778871704390204181630028197753985875115717786948368889729741471524296733062304019004104767543194035140295024484369526860532069894539606268875602164519545927423142463979109449254498791862879532454526972132328427369837033367353426348337230640782536648704604610962164002381766319815229279218933258681380198887558652802578738694450792995197848309160979359289761273143650556042892829116081509477556591516049058742714780164801024089360641520706023064438994283373602144944323814138746354919200178930085975085330006137646331313389942746391073437142676341226483063695350638933734510220639875258508903411066635239361778099602052188617189402259361077863137685369122269699965916136200839304529167724558194778049483532763539863739373275137967864675343237811877249100387334344530326758894954335443496982985064904266054224067530115123188769736067158947210669618321118614562509849936516784165880506809731225515370737681585597798803504830126791475076883651622422582207868063599686344473899862203210306790451038543829301469282029237674236232415583238994812006912078329786910970551709907837052203267000917935148874987386700303368453564788315960143408251633063382248155696072324844661083784931906147391716390539026779485807209972584545004228775735722478236141110736461927438272519805308623161036934595116644766044115317223124575234920604372567203074964027836697450406268713807706408133389436478019139205564385395873861562118623208385930467742559633996205715801342614385966295058319859054872513737246699316637437886388366733401907224738405722061528375631135801182427762402339690182072676905570892647936304699515773821568324101496852526595239787226136290723639781067690793429346603045109527470036339687596345059444051116983575617769228605680293275032105302534417491695695186183714929629443167795628376180486382579095790341031826868044045441598450273367505548895993123979112399171946024174778206525147429698793030847470627376115761642414296164426164899859860313729351202737939005969366835019652900427967452192491819774378574411526263725298202710349620002671565889322782790860462694055320867929373514870741576389162592123054891168058497869853430673851510979368381029459741942641631935373187747744572010814088035564227160272694339187731484507818701586228574041156075631253475111145906700024380710897667510889486133235285413820575780494048824313352221694286666651903528338064825604898612255301659555960912424830118672968732450877033302382317130467383279505294466219648688070368198694227136498544144928843846088620551608481411087697319160232857059570312479699696096237253009465837488223450237108101630155040363272863737597583896091030105006499598254220462792217163394506403070333585696318721666126252068513147797782466113326170332162942069908525372015685740283800419215112940885320126895491074128592830655437739677762417221853597113413360625315629361379844275295500761561323939111289993371585070393869890884467956047243739522337295165994068613217634169674998710040645687402326733254101390749546682821591994563089407420968706280870148015949302367079334758344987821783435345796241887889148687969611244578085709276272723604114463300820875007210933304584568780535196296009992281667928461446465507262643263520402323169243228356208015523541726260994766191719525196327406001791930784696723966118949980711971163965337284336024049852242822994718325552229375630633395696170065396179740154016269076825991886601215994291058735778711365184706259476321006989569463794465939552341340130144118310460440432759929094147693577848270571505309966990452503250528898134344940300970905855524569482728235785549190312638239650003191796429823813155010914902755073687510503053790931074822537773468869100394265154764770887199807231683363868025790629287281411857481461138829911732491324319574889969153766298817589083538595498826671742400146776777969738941284687952703512079053169050982120418851592378116466180478694552793375062876190769407231341416538034584752153850347120646169185581637443207544464823736050135111562302451672064890820530652401456970942424125511528631175113515491884305335154923175884859944159903884434315541618895448812939798145762086770858211258944500794359017558294259432255113579496073192799931322836210965872133772981777358456192718935677034195794542218479820851552502273158772325790990302967140235582907084232022881440992610141939318683286508080864918138277170710520393450350665404475838058398774616729189419512932729253667257349608694734705694203466442744793707922867118989854378111557047986353625371825423927752136450030928316253097375516152970634343640773591314104523473932197099193939618197587061097913253961224708946426853958474238198509219379608244397098789554340311378655650556535897340237247729168749644034634583324551963508776039713834913626200715183580989273411473811121055433168863471319052602608224463082614860852326737607287109923968872201386972184414016575297412416851043784099941603655690750830046110257237529996878760183308180213650225546921024264396600185933963395172969662175743177470282265267046938552448608424824803485455085762903626191366957325661336134985050316439358669249028003746545044733577858005237705842476814706979833528150187239373858617197160226752363562540134339350564417445599449071269288717588904694985160657723118201976298262781239909492223835830275633666032690839140071085777435765159988163666131957923017633121860623088654656840597917033247347934477775274466362715985161889721047707432036933141478497172432273346275803554393368042242042738168780755940535344891525541091157850665718372293449778556146726673821949837788530673785301136513987191790776792683941641681287245776682140583208777254691358683214682256756681255118068301303613830548971452933400378850602518550950241986057147216987799448871455452555958310745466047342082912851349489436966374083392672356744109064292701310825660196739250007122510574714724813654734494411698239148227243988466756132726962856847284117150563834808308231742441967577798246488700303879383779385466135015594976658684463818524246665494559591922233380194796447192515538330385234734666822119114980474824231008017823559759826807960777277631723801377977460312263877046581596127209104271820146491450101024989631550857815662792609005423256448729130343873567766576610211670804410322306089395275035423581731421362704767727311209662181887667424826161568435888670359600216482556176407145497751714971449966919186078540810524205982504005367787263872484269523005030430341456137099026949831069236173744919029268174937419524236400895255518054348648406398257757293455160660640328698968636695568856104278907709041464841591190650726977377150707740761907862263429523283268923119335389199910093110269014993149104870299760748435523746660587685284669804932576339520444134449853604087421778746003093899649953086144570461838308805638823560178629460784916747898020491658034898155771102701799831654485250635915086764022187219335202297221234896528793961355380905360139462968095798416005308311062642068636274587032949292372084063211292501571145708212218760803586421490375182414358274765067378442747864423894435922961285961575801059350847321540447714685922999863774450279189226081612429228220393090149418230654990090680015236710868071162431542790316995572335595631574003514188350880895930302371352537678789633210922735796683455463231592324320904555655234332441988995638254780704464104630687336584122969871004261938934944087466284334226422488897879692138616460937564396809160471310403238241507433521158340145647290478881416210334485241357801825722495410928646963399476840806137905105581828798696660080517555658686375789948932117899064561192023685922287442061965719378487558555694744621325464928359635970762529334148736077719745111035320050710163041977782117765758208931509609681616940716019038094126078626465517419405983277641516867361711684947211199691575611245393571817259330579682946581049595896112365194773607616097731928821722525574533720600681826774321648289219735398887599603176011966341377854426473943972647189631514579492113832634840699357057571043137618348036153025900675626857397027486089156900570566899947803381958967974379819303794941482998999807138540797661815179965143795957972986729336751183772284911629908316140230518990565038709111205922809063677446055264901720786577887638844405345294575839688170355509834201505586321967831966245648643313285039200250393229596998336354122537535659398124934785481558594481619252677374158803683464178645371524981787459421243477839413477665855204725193238052088292809456507981496500628193259007383291261527537793154129674894127687034859752078098155002725892307487970303139821515451329506304128131642780157468615117935217272140145643450889074938075050853247737637382433980699623295141679383585973214378664910092106599494778938573498388351864138552153549072973699012183351677668110461437954236660958764189797501139659242560033373605950053726069631478358195861600742506927657778755136517693717770902987422242354650324217455892922469914539995102731753422204825477738480141364867887850078269637797609694125234171684446975699339977311981914041474627912123735270533504671091380027150236502870993476536197354181182639295530872361863918868964381692403741596956419065988977455214742881867600941604900852614371340665484798431063023341244923732305925320875178655162437625031467636146836785900055501385420803322377095000849788319705122568129880757068606659691838321120380233515261770331177556844421283967904349041140697371708837086144367403495274460047886546365546451444883860442189026499959963636610707851442996062636343587030024487482371536177558422993077680739055801676556397205397826073023364593406467276798629596208521564829140105979571879528444990687586094646370006334035100484330175401968015160176002279091605807858093629777202124376679992380011507448795742238443477131791539956468942544287851689165150366739580995467430025662003672870214238986171112640460223349722157071430372549354438658398350889644767167584128420672034824951670022017314892954761213600383209889426810311401055848816766608318413650170352103869984137675878585478863929759306362782993255624825991087524837804938028362339214578694965650246717573229563417550467049137895705746622758914560984897464581207619255607818211184204501888400791203873402958566896588230150342503525066148123259095802718475205973902494026054031354826174353386992925090133354224721212567713903340387070427536576754941759976554426962558993245380403054550673842263532273648842478523855144850296034649182174418445586415657367043222849370465660973416847231065015942167005261420223106028009180171853494823668153225723797801509913791934397860524359244424021377765138468495899385946262151785027587066496585703611969967924300380932844169162280999554651215473643173566526102128033663557070124672154229398947018286453435428979525188582972533177286805973204459152137954807566056177043695575625523615927459128514283926130180710762034352414346360256948321483559593949674298175592672120583949872530520051290733757061876057604678379184089290952144731540831245902260156269788995928540854527889402513724673618029799228149605457331084253091663546726230269419162941820166720418536795094937868605610789117509727348554863575877096635170714447668897632409259904393890459290231180312576063501724075114067313737679349429540198342419542533408059019513065430087842956668812971744414932933474883924887368738041206037752597566783734788297834913498422307874161543044574993447686508091714614969707209983374308740339470830426768169292732203562356396876160969060838480613258894694454009437167487915553730735161179010612321328596075588205971844664546285876617214655853615171332536495064193886743584258339908752687191435884076906683574303423737716846920428821932444986330669467188603267465974241610900982784448986390257065062338609992521461226004629998482878474004333521829649107245102013713021647310189153135321775345294617049706352732200024107583864031650322298144831173981317548790998381717606391039518883957242727951926231149003390534976204563023758054018033879467998163246515115714942057953063522510016021446604445404319720717684962979712902926791552126581664926124449072174838186884829145694521880576904539188805705683430623575250850194285956147175448655816798007947988778790515959087215693242754238877707602575119812299128722752086232001244481084257158109512375819551174943008824220380279312912029023034578302685458081257353849204180256411852658119655231595821054971216106693288122552708946197695715981374986708003224377089204163150635048569414432717845564219080663204229744645028218322682078929138075437768357160377943730557012879696502318077800578244149779032775145533157545219062358706625177977386411197388205275614581147872323026988275917536238858492307608762245245255541416118437372241288260117746637558209045525198484695498704384859998496518880812848574228570565764065522406059219445712039161753144472882699487885189373953767589131078284362789797062736626940951612514685370375392157967416143503176301910285866352198628542237560651433084973647818926378919040272567995339369188144642370860194165101335836537009171242265415898462511880417135849162602109450745488372780682397588273076699971512801877655709994452493927351294433031925611450303799464620126667468379155828885307579396768993321044891066177756210800902943611086633044578694797947896786273721998000722011074493007530148435468394412714132359368878942397344261768060138256423061359976858698272899243367987613734726324538040631465648395379239418918052411765147320544081178729068975449924078891369959156639921091751921120898518699878094883591243682005156192596270778878117462318661826258080305753419120309355489639152473476144964836280259382019547597561262532030076303670101692271433992253406701383764485952810548160361759567576569449636301539987808311118066444531376034680481824356681195829716885822714737805155950833632421003206278172681986192767737013166434513154417328141151284333085196868549314884201516287238211732732763853352407080147047888318689175843444849762613698882945733090663645113647973573237298577413239310843414293163842950862429091602032156090389948112040056789675626204905516092494263564700605608384955690006629403441367863160594355816780340375623491423095751400080549844732800424831271731296009325419719034269139611476398663476997628138750704678620111004817008308580656120338472933257909751667869191469959673893629425768740820124241435438054345591457524919330095640627160443341718866967535413545345436884577146205000913700030358310767434951520314003609963728476721085888290786873853322436008518589880720553117475204339253905729529620109844698312902240726478723379378651367828691227478308401442532269926789419439407474037649900145837829723073372544451136321268148848376611999248015557639984236092475960935342732816357116753443135698499416785732726217690100272448791241848477862366404818053032830124472369455728388895746301554393656062248312777836255071537645928871814129729210211126994468262694981387425066518393321730133699340669869453485713509054087083821104757062905793918007294079989308736051525245863298658571092296038446135480436304663753923650005867371315260861882592412592598850310364333952445904281457479093037906839717677686869535870407502939652107545204903825473081024449246064851454477835394441019669662529546972857513831325088571199262306656967914021408912416520565891046518260696512569463151985458469189537430173335235967481305221707125830473063164561952504285891015344599083584430042496515551902782807184250391255797187878090623622844470278184529109719136828413432850382508160884655134218734045143135633825404041116657275625393453446816072907479091522230945891922324786924900955532683090734773382817012126138760371082111741039840448887308162380918875532802394477644614680745742694153558012707586166869225192399997668323802052318208236677239306172187255396091337631556690677535171389952311999822498427003151822616337022231063416207638441544769521439341646975002089988161600096819209996446736678334222880921140842320491913106217499612281998958992661375300414609266895916328975046645960513805149230913653312148986633232660626042931952912981711055904602451702845451053636159882963789535670646962247914327345247938048134473383933288653706265273381070398618974649490808634797576591044248396717386785829160284152082777162888038194396126326580637184425613159504523484662257043028738195453826879224484684200457418152312506277245514210348144458146195036403285286109105363199368707323872331000640501616288073179450094238832386117531992174608134551274782074737399055455355842651019141582587903480797099559792397618868866973133084058923582898613058269068714121370759736878901097131811847577271817921032081605339641648396416902345269226944763284242318247596744051107850148580386817980007774109553544249611165797087590622336859599203478919142494060960377534589317614562701439139633402083523756500370085596526957971694045249162384372117217745449095396310068000904846743888206398205304445545748648527634222523823206971099326857793817273656106475204038276495780127893448340655869110706820128462667947442225203074816533455940897348086753267122339385675690048847192174047249429267993836928520867438775775973666923846163425635298045344858482252640107143217023301531175130278586848807744127830677574342753575012605013809118323188089004611417905244915043717554460255617475945908905664115933800260673933566753793513984559561172796317537886588950630190714131817466392899094405816782852428968162516419632372986059871117478359831294919369059471500539445281805738277312528089668257806693705368665015226577954627462706454700654439163986808313109369995835541004644410225875268481840322650906855221718953476007967285623497126204087454641489780854532988969539552522206555048663723879175291031081825647706383895942959710729393995162440288469339152890478871453136164549091759629159210055551438574226447413332665940421383173450803360306668432860415090036567231496346518877629203660927084510675340492651909133024975401321081412711506489822550628782382450454291252634823734276808774027765729077505535230344984405708646597178503170453238649595115252251926596960531167538630034304456510583782778330873267150971123882746215333174424627244576892310426665261775142826812349453887371448716821026119816872578361554177466787429619363226869007706622453469400323818089756989863528955474545155740899462115131568993253586342138213534725477265416454474119381132855936621408979977969566619230259441126542454175425626212731524643710077123386825619879106724810801775588056174114359411126220822798991621582369999343940460333852852723203323073152415516749371520352308401138816507204121666682072787253033587451903299270639825797581302797081586062887065018097196697234819698754577349236248827598841819664606833212729194807913513330196605822813608854352888459930817520277797781512068736940677683689941765090689401624636293050932743629048483521728422288063001458929668552366328522061647009898253494669882048126244904720681476462643535190902520543892860610032302547078237151915988188348119501201890047582370342740990923616059985814427034021644307794969859829547480147112944384864120586372304803900917251865400892830109350950844649843780119473996213001243840876769822572698867830197704271825226047464772105889783994105040398521696933894599400060365225357073623285614987067380189929232910105659853044108068075984726193369745644342314765909855828168487378856506257553817569205910428325030341366418904342060931073583502270492460896547339205981030638543440399567547162478820928053910793222208713162895582331356618388168932860433752260541630883661885781112498983057818221897128326675487288469503027682707004191408044174168379652440721942364395355938846840134080111634073774030848520669005231820614146758949140472002741193538041999056865145116304267775039117068039628285939301145124275947043194320635955272248972161458425420448455513736922725071333461784808654020504444917857092532801123059581528911055633216651557291040620197743633102792530212951074315911782532237308430231929226120585524267662346349990473726439587100704907422185811464409614670184625938799312420036426703069096645833395531666628147536684243679284496881363593298515893899983425383320492753135741264302820010143841822040119379650092620685742195874733411489263667673898255931856271897646973119923174295134106651070908800673082301411840276184551096867773028785055207143872316846290562726974228215479060980741045488056021432796969968103945431543426946958917588665408981354751841736824987688766413319481203262649881149849217775691150217096831329589421725188018646804054594071753276351275212268725102873520577499545200328128308234260014353421321215589456308198073167139150615013374549684706717315091915653247961015121662850327411280816898622048906470748372065439342833434031411186672784888249753351918168357916349549067193572537730373901346571089981104885244958892587238936087193698117871556811886323430200601404463159277329476928972603854238680191173245849730827380718291974176820129873449320670591881435991422002970111396621915607503895147648696985879292235252595265267903781738332926287954225261964209880978069575989580966791307165532998280797812770427706477786306486035026964025373079058274270089796881522837201471450428512823031815110640229260487691564740221295465475552857531532698112285440907626475504643590171919614615496174908992867300035639323060387576234993258866503398254935615052063529412985091686570729186373747481874054424432740803461984128430591686553377132165929299697327332375507142584219206243874074743107597143014937707485902949217943501206967368298730589479683620550147548583870992320509933886857065794362029163656900780952512975038509174746630309109988550722167715309469079703154030772517082119955256877994869156443127680843153210975134129932284795920227326167513485279858502973267629966699101163668221554658227803663015544816612053111005224588221951316330108562458488143538387541454425612059659104158506318269593661799124301116497751896485005227354179624380237694046754568156317509878915427194472473273177729620975041967841624906136243215141949605958870820717259023298314508801182705667347547199829834954552617687207454203399048827306896180460589148275616769162585775378028401569706506241699980505330709267304917813866482215220032093900224618581328913282754518717169857065150738514973346965408996930663928814572389783198821626021474390516090251356594294307877913111028902706766391981295437457123094392032908822255024059796942243304255350230671024300857068701915607012933488815974886251885394495950285973937586525777669812974094579179132728589952486010311536029385154223551679611719781239326488725809608624339263776549117439271212375027391202222320698090813990619223589145701125755008543525600876054505213033020352205387888464505042558119105061857858541919314628015173730672500893868209693170153948099956378298673950752374554260570197806974446539596002008879273073122337760855574346090911987443387061985148223329600179801019523936503857522809875317465462320248118306916548051434317625564547619980532514343662115829364687412934804434166267047308635149542568883403011862983535325161549112957883376064753498433365047455769222693787214767708046822018127497008966080461970097556774028148640214287543888364224231398579542713413625155598951881730375647769900545819656730553020901659990797984596438444251898319985353774737325953188592857542388717624708193839641041902371281057753756274719954008935990693569733691587476219759676605009416070097907106656294883923215644805637107420503646529970845127482848057301009689093806415502051778178741884739943724465485869997368286511587147690862468334972777279486111539964481002457290592318551235825216124975503739081743962044180770958595471460351236557028910714026752596891672787063578079088734924855645636510834080721435725460759641796749240365999671947617225086411954469040268692292525971982796650751203555615613694955455374841238953672191230701244130774327601081636082665192137960688621585398896275015225519061550325863048772078893039936335987815370052249830491012256126308542691133683565606688384650471713433559169021177753301269908788175276576687896470276869185590286432146078470912150818283210481317399638127643180520897202297908901886798335826424692083073268385045885518866733254815124552163551500391983301817819488209863757218720952150509676362403386596983775723356142373457314312943750041835052249804826441328900594374622565543920493870040886305674968566138709921425319888332561197614106971711212922950298331230513807657657444805340491597177642353611563923379434680351855769382817815204841528964821680280325219353581652347618492358359122449915492275754506095026757772102042881132035449894062331361387151373587717148488695171354377805112346731213913933205491588243016570923982292820919509897199306552476518465644055651826529823712174514550283501414399973195734995095385859034514572017713026199206496582971249341627849557832886531984394755816486234051877631751144516978368854467016009339932055787542742685832530000814369190049568486279639539544260690811046921828797649240958449478034921813381035942566311928895992867062129379833055545373733254718063342700755768961806226554979161975162980290548341631058016644265118871459683276256983240648418376965119924889769448296297552982790634737326231043091583716422620013795229668171826049304240565191231700813220102933043587510754628441671554515651065901237770222874229068252064467078610922507482650742191632864705298856251115399174322765096772083950539885685079602623244341588205837674157915313046830896935815729672396927711393388888296939471320486722416441323442951868741034956477734453726313339851302639530882802865647501326689763968672948921261247894633770142474817962899044020507423186406831974237058954796970622641804519748140888724454888028535502927137456697771839265380026125667817353712380107168957260511393835750706763403140808020097714657487340080691678909956278952236006213002608357465763759973883900065899448771700243731215635546090017913062085289534554698007122724270146903605465003180174253389963584873819889840311728238392141909820145720101383042985726812407388584236817180412981315093459542705699126820969957398899668800602488457946890238760198536285329205618985110562360936172755179453421300118073942041469415630094280540856171551500791432602953090606485334556506425700480110708009477447360949814003980051980394533851725143468142241626455573042029024205988279080994945789289511119878262836092681648423642418185664361678386599312661007704541563489725255943116894085062221809275218331989570612888147936867470497352082739460813482343728199535150140747598086512456808549848672800704548032525205428687960501899982010335100856691663657827045218641970994154557383884484983364087368509648747656805269463256120199180907240028677805085476379326072249201101068895035427483820290281399113416799056215512945895822273924860548256226312725563239620038282444200741069119299697847915519477853122645508080099625055728577639691828397104320596152472253804060713893432448668358960051292930475721485966060151818505813406593766171441307301472187843823031561960333863845513692846977718551462867208665333143211834976758982991736264699915486287414396083617744879264881598062728577591389780869952479013492181869487165372583810151012789620698183534306091998103431636347269630316599566269053997325455602577015981210454909752850595259821956006319633459333276914389141710070336481245466865303999302027537508509047309497499222965604293379326807678062955540421182965351963593355409022494551672232193824299091985539642585480211943347176289148233313806697833545860449240286150281434354534471259041275926852596225863532306259855089846748923870910362899222083519336925671529546019159751539416232610408301229780229929252773916738235777179243867299301576675331569110729367178847174593658332078692469773679616304488029893052448748564601348238964882406767796711968844539035195115592269417017850836787103950815013283880208924891497792336273178279204497712135516499650957094075174616059989832781022381549957963642452487416957668417717658765317383898838947828367521100483579135548863073211746186270366466510228361030479527800736941221155569371209608458841856382435154151337859759526447307040250757124936253390545261191782008903221610002538638625674401017298687512117781702349498642880763023775175166385406640904621724863888739529974562921071648226762498306023206995832145300878368550971332129213804184189322504071039846327583406736436168473018911798569958004457708524322913946490773114415999984994850928807636295242794995667788371403834793701211036776218564310022180744329366586316129636218260431448917644657589384917673156630007487438286016220283578089026363327147350680357761814152473990174277241978755504152639114431820001873415208383692548876169765021442484675852662125504926506969514943460978800623013856738106541465745954269789496475239707395324287986009570660082656273324472292849470222091123167445741995557316578784030545874408570110613697204828274244327179885659486850505505304124355079595201541564632634439887149635153988829282716489660100565150671755929308732026968675149382938296513730008241210089712945606290038222989570393897764054032788696105403557070405804900833883838087942987329369415766176246292767581743387406920365430127830933513925414077558849381845871515824196761158581260360933617449246141461678460956429544594779323492946339915043330750359262234293636769517551576330323426228848273519672553461828087784056770508572329044327876520928624412663019040283916895106094194161782256217313527596898018754815750803600866102145087165100925113717398250921417756767685337824086278616689588866274584144073173705706565517523339440371795874541593676792362106356846588486587052194410951955706541984749495004625401067683770820352549028827636767825291785873239858586945082997879565691855757049488275215607605592518046022034500745169022292138594594921730996690499797473520597647478142903072048762449966053033798580357855162626703351309871691119817073383683750274367773213117453013170980569995381293451961833844483977623327858242371495778628025363963805858369866920777255368463052243882555198641872695762764786761038848447537740418394492196444645556453958928509419753565539707143354415083789566162120570792987086468717807811939070571046798561658444196232156241852087924227448921625081101112655578144418830783874576410686866431573864503894443826905089220478590258372222498071923336059767091181241105855567904329223234257342639807402779634449986775626996507035405419112969843116631991781797365685142463323389111778867476716904179159675487312905395215910665611565560549556221839002317442125627350612629067590064980667711750641863440602291076478372202347224980802495619364434573986867819976858527342385662736887641005955649780844307578860910546028426340849753723163723986568181726859977131133620782543638090777608176679013948618197214380986349189941374953143284033072173094445289254589649544993806084076370319057849254268227224032411213117852524892753887379826211922879259943513696237929521645376406022029006525128157195896931728764349104614518927205921835456781946609238380258383102446878593769161967073865977455176653279332035977847107413491111031206843459276266431015324628365976852569087343958197514254806279485436221890553165321401496355442214734195455220105771925472700135879114868927405335823026901412765902410933316463493974677154971232460404033587905087083710232737386183832070688080918131469459277973472086701189856534071997022568131260744898372463635909739885466216398857452726505165194523353020912438024500310995412425009717279615131906241299716234760882237049309473237645392213668715096671116852699163329688495624470124412600137657757470701233787978120567971872337087817496550964654195734507169119624688940127652681239171873509587768487525228602752896392303359715060158157136318041890283493211290546209149181058018108037494975058931474556541005848748628153846552006981629019201222946145512118899663590627127212751409320185307297572414726198097189729936910192404454406365338789675632370072892640497666887958674632611065672407488207137452869748227431751325254100940529827408842170145502122173448705316402957716683536562075947414714388645259086268091149791178332293236496396207415071353231563975671789051685942786165400854416618120571658825630259925671141530308844623809787062525019604457953887103304077751027234395923394220350946282885529345868540486836083274193437218412621079855376456878289104150116646474635476771407728141195353906376495504946930248438062933780935151707083524268775332488290682492903219187003955756759170221240494296077976331754830135517092335588368204129564218159103192963894065385024517510508926055067973585461703297328212245347447368707318793200984987938224574360385388867073648594381638566958852610595457593160470627455652039096552418249692073634875915800657720316219675115838130176651184195136448888751387878110778065884478583468181515034345599581751686191552731027990773001527426054508401155172632262827079155896015180648122834696085845582101251201502162140899549508915221228648474186739467337900424862574096656776319042021741980938976458030379227117752021578162134321445207922487663215544357749974603175588138122088684488248743676996527743505229085186523926545575460538076155330621322068707178974340819974976304553860244910885136499751626583321808967015572356534571128232690958271028326849215661353876430469659018155118929658166531618475428806828385775499822970508485764729909638496422931057704736322482910464567098563658108608510367481312046371565709879327992127947645080487295777891847262457955434099978103041418899557844344616630206935833742132787006308857744837411311699516450906689111542859937618017034543863842486514420706009527766823845357630483938083588108783260235242769391289491090482185201237351736085564026587536608951058801230377043684046654358485396510611891924046653502688338605984485471421213481618201017328199406088107588023548024742495425790944456638744286237274763430935999848082257969822322367064099083579967738046695598358696016820405981106896790457963024785052006801662238392939303814773454160117424472661734129940733417324757876704819931500533237754180713498348406422884625077457900014393069977168212479478730241565454064331394981186802262788179441414469851589004471803332426422105737432049704546983699409061192158719789770709299193398812993403849301802241225094529393027714796075532651145832881014127148505573092595290232027465540864379982493036905978436199823285858608771361543827335857847862485573887056602315243050923515143534776668558008791424731287455111590890885443281783721415382972321300707417381149785941976661914284870081697220594811261399196610384737909065404950789038762846895495296063309576545904128404112093994411738459376081550070082465935766024597438194479815448633366444512701601917804314662443037020239435437798049109118802574977020379730193334841639337417677548259944856883252128823162466953541138898154371865896699064337409223459612910535220663649130691238464163224768022989530224972429943052363634278679448400372264140914240477009509394035416282842285611734614635853486784179853798258823268868087004823343853830175535764430269032561848847129147182993278491199484245056752613556713301376212534341324440392785175374717916432214382869990472638798191984056305827775748207868674071482514118496719714041545744243681660174750155852488051086740390649135445979853786799520170834974715726658431832730508308069996115216356074371356811527372147689108987039739473473845714840097269332139214341128438641685580047054786464379912645060932535274530384532838232508413367099860238176895122488974441485790649966734526250200425263248872098995232552335921165251144863477783668823602235612032835912182433107351301001686015989052313303229141966387789588288907988161949234818536229070149352125383944953001441392184439270092588320682004071302900412705163335963654528243273600036357869223568920078096222452968658041064834893097285142212995327848452846890337827252819216989802216251278977218216886504191067638124750286708739065523973017149403767277892351875910136821389551898990913735739768764871409974494108298812292304325159645475355412013807187173086176202522907741800182656599804794264269012172236969091091673019042176296112815712395129197316553388180529365588738608070543408060574048883516667577577885584811753047510128150417059571312348932517291033030719635916862092215411531599936219445637038410470284532369433797703750017316902736147403746170850939308221180529875870806112855012219000986472892555008296587495874057638409606276887470389223837456256736608862856225119323473941333612621203319300465914035050454107873749241781760593734430225487595057840825746273528447039725558983327851641727273820483391738148876025120535042080028544260054271365405435611040373690732613922082924740096608950949235787220320891684232507750740804849291307114618583491123354435769000601639396566801561603550786969274401795837307632492574002860547640241976935782066752167372421827981634542982909429863254616210557974803914269943360306144159590765924688468021737155895876817066170296369910919053829663699668473031170890346136498403196186543963368780947769186126840189044240940351103818951921542382527950774345149743068378450271503331172199435219739321804279969730223041960783885486701069125028245297111388462953278715064446446392091712824283073008928498222968570492841472416010403569623773961454724591215502751900008927907014719214020353263770480744595084326410245838982211260372551585357599722420344533747381788918322711366133659075529772462980816752789028831530601667666641850258587186816644244749962467926672167052598479230194809240162282603856271488164005191783551340369331565001108956606808592342894652594714143369028215973886996390838721087596391580842411972068213985388822763019784009349893846597256057277355324107908678370254989723443723602235618600655925295386566407935947436942793408726332603860522686349036013358057719124436925722603034321785694093241308341876521125437042426413559920191879791967060302443943332651306295954581962175166627188437513646503932754183791182870679681417416012707715942016880387560261984512413857961265374497432489074799789963801024573136377435593636425789900373947074655418326255726501746426326924945886956417504360981623407269391037160692159706298542107201537406779348933941306320111604611844894834251826572802036430953208442753358143886135480000584890052292559671627763218850044588168581039919465908868351319935110678927468720527041437950327185572589462707117848054967025743216714425345664495665840248692760311821956483029360219151197883366640831650952552781173800592373311748338508991039724660702518786565143846413900056111263889872677615046831766523429198490109823536130320968778661985983313492427057075111865143118212012553531284563253435326161623165074006078383949580968619653927412557624231161735863573886956608028023263486740529583383973513554881279019209434503308669689917866712050939889208251026361751580827976066167593084732002440594053548535028118975834904681665821064460282961346508032045239425862571120652592193881644834457649923745351253276633794994221872927225919462361538029472005038648485684950131813473251214541961455007986230719882001802652883643739471927070473518647555676123418500727263180156251351143435834097376918570799081988962236981119619526657889965502798794050623534422277983496481455862814692371171958394745237049413253311972234021726227721149456032454003162648681142265979945879038982129373080721299343263786281185320486854861273213011463402833726220124716920584583690872292624738927109657687219734225415837949325374309913661220844439100775688814490714504554855639039370728582050977516946134704532447468380514386519461217682712025029771326692707300953101605815425321035128368532391378277828777930105535093622305804488353556154957030308684524540027814611138861300411004508559094142851895548975548909666213769287030725380929161111663900924038591489997178102993179322636408181422272299090365691389036486161320587364532693100647634522121089698597599953526544837772044234600102491564335865311908766248821574571520992156484881193068037210414581368079794123323306458802395666605697499710597590570740398910430358036538870616576736496879224865873454539064702520151288659517600773464919708431011423368531344443856462800347314930680599756993703660921099390718514350579643707957580740585120425324445957649065177230157349012265064664828424753460531785106279992949524476241629181140567871394657581136287670711024537621880322482190141518080429104628078807420857755801863751687504590918426952142283036295142528171854937158530132252744335740873645408423751107173853724259802113931760132510888006102375306074787303188594285016215643841233922011961878053706468189107986340518390731925690048092051296698082542584259452194971988383878576553979532742813862784448008301802455676819308799784505120458425122768250626658104677455483748809230252683171076964889778848187068859088981083731548198446512233102782876250637665216228664651510391587374845411491516501362953534082340479552351203519709599496844307820715362577072730251005120001522537185430031858018750838131411565644017053715067431182605122340363425723942100316435716729254180402176534377055259700855650087778180144300793983077240839477545199096808511089053793243979006893369748133639083730622242977445342683876215154652601659288535779040439555534998202708197447905823756617085895334159813534490238888641724839727115203427201633286354773806830137640366819998517330108352239054004044702066401842967347082691500502301768993443890222012417891076022865278496158830955243634586702893668986021793946393121588866707017695905966777763153564127170499957690538583456193317856023316974647563482051889534348902762346111539732710202668278265622770516003031162436979292712987778438074752543304905120793328250943854497719047743536537327089131292407024419874620703648481196609856737103698031648785572954988294822681795291682663900127401837112978570457252898210348454246297441646057362024749085526687335968980228389960730331702220965890611448223334241390631832257139885986240855023404747752026388302549090628027348072058309379203992376498446638040777277928027858858873558369619148842692585616665257677488727236013948644764229649344877816246927587077800274963508288144291363824717677214213904093264203102208408336085265066524601211238781388193791674161729643222133580909936348727664757674536917877517897533595796781996534167972782761260429629929199120747650936217337700184643033259143328830921253642693153202580518724099670106176321946220996368989038011768763468112559586702391137347961080297730731224556313122172263965227137697374090158404762683543321161253716112243639957771240581189139477125683748612938527424832175863015978850873076684389522893653347508381500425299395204037951905884143659407837921215323804809766187547243447351029101514268898144677956627217785151079985712298075808671849875306176897671262191904241898647994168784934877990485850801743622135369300016440911142437190141196347952411545880341064909338135419451397464348389964682831779348558686808068924806647653501318466935410785253931159347035988615476248646989998464370459047641992521461105904799395923807638799267764531919524707667452960042306737538118597795542037526460374011835672284686229721585038971273619465296758868907046870459563483800835743681960542218367679482321188270607394984935351422073220158079713037716148264561396760366467379957255562801878291997431481520045244627298497794680243103247683366150720950192071196444723763445731692271029515524459804572078770382436480840846829746589628330908218727823103733665744377401394998148288024503458327669845911929289677188349048467234800033903750028849543393009030662233061230872599599320897073017017093183316100820816887279592133174033208047864640709431127706371391939992066895127449723541386514227623515556591582084267698454278124261278108123534004838641081079811889982123072374104856913474799143999196404615082446859324195291899285499604704909708344269888295389257310583464786398477505113578733951479827219439239027611759369731541028992086236895718985775366880018322118317829798392494460959531626107337582218274013436892915798555077855904321251893500262226848185822465721633721951479409175811082352752358909691408504630815073279374065234568659925435147385596533905265650164202241588081135998888524346944651005463550328133157936764115598359588176242599204315315869654116013846366301932849856498599756115190021633532272094968538669086468096977852630965718649535503773048877863951102866114043708640386190414415282232579340164561975181069010624133309476930757370913716206871659710390600629751052499007400250239716160581970608233195557835704585471236492318816998080214444916204183362839512421443826611569028057369060023350172484048238105652909968151185416737950915065020922980894597220860390977112557112454549262392969672193785187545375952694764533823616920755994217285855777538389385092096814729835356935014859788530441704010947839542131838765016477439716475377295429995251686577726125846514530669946735657302848077476809195321433028758973552392271125515327028056295652676324957935661848700969598389829411888504165518661947744169204197530836005814079620771386180491556810220685537179491186692377864334206663570249780377097846774362401797783611943230081593284420694784696916531001309384324344724666205315519007540483085098511893743163008359686601150932116995481377659509120737272961842116729633171959242348173301860498543526164561921852153200538692936398890983560955864462252293008539109514629473564322018171637872218461262171885135681462501431336083687207787969150826865679031888629830106655781763779273448915113382177286136482643236173971424841762691305206914777217533625349484567141630958472435661695447961794187099192882429126735447260354917560863923177949961225664220406509812160018613612718226079747310185855149121549347982731212185439348477781687099496803227348591716893790587298121579011409069785455880799817193321248015435256417779968023349636723923265402291991078276666284146520947163793661228527325859179646959560680227014457503384704097612093132541897727524867430247727246586876201047474604968095112503564888508270769951459207617347956020066309295953648986978053524229723792725676865489169546470981576200311407421511762972667648845108792950508823739838111728163889444334994005786480842688567580233532591302449292694101155132044784495348332922329520501716918137085840631622365043557749620159094735563774806835113789393996992118016274969146398679049195895539929125279972099780981089470515513434630540961874630431591593740794419733677316418497150308374092709732119137501523399296941083774740850722908509207039049041010242438416915203699306205676100095271605390521963255814021370249433404769400609927546352290604066241822286190935613601005735410629823183229276573654959922680152085433381011058414008029825412286934251876329934481187616302981463683819137267723364644346296308388778741791015189346827241679654104562503232383293724622630333130353197339947976644973984162195129828067347800906387422711806734108073751966638124222978500837898560349116291129643068032062340718430305565326500949707421014529353220709366220678985465193854619159984946938037768819069101096798636084077375801683755566092243780386316013843306099766325145052128505578424347832250388098134788515137751390812540146857600212959512610807414721801458479890811124869823372029262362562121182243584580057694721509956571515272358162982013368263165653601129573079712283988319803794891492136835611069567583867639350344388426779206595101476932517905566253499953316193121325820157789197246349965958962460652374436931909433633712995937776927548128278231137535552631880624172173026899580248889496558940660861597398055648665671268379675348930945719681793428338309965470364493403370338134055548705370203087624849391933537115744283759476258167383155530215455030602533833145155371590529076975321665741740007986258684586869488295087119967885094898022068469314184584972126991750240281028461451683890006954381199487844625809902650686262171674989533861227867241449623652306368944924904932812889897519014055157182543310142155864494504179183290412498320746830307305986730115664145436323391546936664026952530163727583302284195800844888316001810986094349528210899322855354833140514658055323645881386223772266129623124945194174976059719152712742349638300865945386125622619151889090433677400324197354675429697465017037807909106931304065503587740511691817351993369494757944183925709694144264195912956597771024420489961199967187044150952333073311174886078665028041316827733502574494878199058575974787015269077046813931349861809290224375441865188956506471832748835623276087844514470642753529174952525048783116791065072339757184739643566669909273080080931296896775231675110890871643741137541651921421373033246860296215097823577168112892003449171090004607065862115877540070505428853356966005501861699944686034311502026414839654633208928800570249962969193787528343063444150271108228896251209657096365975236079949619117818644448313105309911041390943614280250244957953722048883982534174917531303161661115129394773523910807998937159303548451757442681814096616770875302826673328978985505281910341473694061325504502659311279304916282847867411886639930135494921282286685356711462995025725641653308221133540373929434417183498603576334750463614021782441999425386307899939317515998110357380392442414431505683240971296163491750210467825480683271527749603999422168882430417122871264569445211361748193037268326626479198487796306505026802785909429744634705657692082091741400845234112477276956716918383351070642032141841140314779035309381709051179759417609420024412404819457063389872819910655314348023162623450008315427691240308678031937895297238130806835779227639422990046807244759391408112649987548539254156923978126634061255074379912388675227055954666558830562174127362498815081726551728531388510918933822671203901785817394608829219060906759756776967475622296551027359000109878375972799576885287828112835091726707453567196149397158664295504380006130151678026401818836369955546461771747665499467349599429624708161131662187693082222236324557341789657558748280567574152489984019329743723657634319326059028168438732282925538860300114268070239430552810045577530513519981583989077022566954716569602981006086099279909677506103998489061124909743029911023808394939755706000341506462985227709085230905964602341318390412152515459919496520484213440424422480172732153619036459662150812892212921497612696596481423531291280044472711436019829555337506220723531107122298652673103292531744433520991510586683560067292452789516983424284075494111634263349602611833678291297258192517182924288832154371279829433971789743203213345893657596145219666598326654090162702908944105619713736350390047161399482213356057096319045073710979567127109216480115877015403617622149634324178686162662108283015040254742111580248305304316467099683638388981471592432521694392725025573293978953992308468272155516333338524903059111017306023200160393822183453285822647261702061552709493266507220297550230360774834172964409771665536874181163318614263347472423374784232115818988018452596308932841588922917697111167087901059066721676298433639650283590672481993146502056154046907936793242356319090326446073366775336780412533645271174808769990802633523126476674072682880361741076258986397334012292195982851965896922019703162256769200329882086853960135868975172856604665701652074836906357784137448145382428862276346142363651976529651470156222740355534229344312478327812664473006140255641526909898847807758825993803016233903595607952996962564303890607621080489306248615285425963140823603927132897999841079466791474279144625450599695200781223379134957534887183972353566392461835652250402224307036311508790470893621399991723763855486344859723789164741141674551314148395253166029290032014757358933753665442834152160954183156861075998572914345014271400154241607582993861104890861520836319958866793865031567559196972373239702949833516142225464457537412690108946683496247729943163537860196631438279340777189974043730841185477005737924012959445809746188773196803590744300119109515782278807756297595224007689095907607031227324137176247617853068299298343916999115191366398130125561622247866582619100118351773744724647784422169754687130004597764894605656714812409302293882861900041630079220163578885159887676282103087204606447229193355149849274020516539761706179806101616697971206353623113647154531213686357421212639959802107144640153897687428825113556226726914450253245606389372167404969758542955916216887175728616606454571174313088603193339050346211608611536000133789658268683479956602662407018161631028461763030697366761574835094724858040259315036608596627794576079598544409327324590738408964839632199226129170133256786381877217156371315492211174858678086759506762307664573882884877308620399364133317795015533014927006278592504511733513828004979063407069212736265024368492003185090355962535320422734274943191598057484835603237695880456174884767741801400047329768295849573300578638314697307098560794976843284392441812272045529302979926546721746033504304935822281302604543411563003729433854980331939545844900709057005566200937858636715919075828604708523933354164775661327076089417248703298069053007264880680524585165794248903598199070627989554569004075326341439258120452136894815452713450954474722882655808543946688040150515758207314298358114476788291970505486187585185088334885840403217056795183793447609152448053905541348738333337376797364829128452533869895739922965760775330305086612847207246917242447813054755898313110541257911554690132349674808737866573058371177154034861094659517048741343122298784350230397798815972568756791969709255472656775914176107955803854003927137702149232520579680660525957014874871848903838810859799837599911349198815815867339778596347733880522664093852826825883487504762550119327863569747739065057270766639149730328459900606912363693277949743243226241097359013936910148822696656728848426364649868485137223313020865219296973908520892523668580577646056950283084413490058993670437717961679145304698964229349322477673746366084721442710268529830788925736533678989118980090425350424802917062978106154280099537252003589116883712763637582979835519196610417908403327247561315386729807724475750563539527014110493766961143104482731736036222056097140700786147137033710102396203265248048039924312700879348385966319003509728319443140743243266365830177474497388372895097076797105258071506060729876750539551460711671819468128570347362139088805069359255693641129427204320787063507260698740903827389125799701418294461421589077784889626136297208315637308399053281101307059213917629243690968453426748068317216473534384087586732495475404785820745753889214788229141519159300260286552376679278035298048640346254270533368992075928315366803116049956593340493282223031339079528620571316874817094922123578482409334097968580571669681414678305926451745671317388821102963580360319227645177679807893088917030925232972454087876790328178971463548010376823751144845309176466518593578289881744837747516145150961578795404426419173022399101532079936473625714902917678590275614615766736005140402587794309167262582335367483284498540557943598260742277655633494839742184312344899589546618865933956330470797080817611460028046091411806253987066466678026664738744675312773492211140506716619784930807532830477416255506227460509794609572876669356131373261475277734616970389120573325614975571556282069037439034428784795925901250753100112104805573979764835278339588562934556647862867250324289028444359689146967323492268723728039278475232384444966120582507046178441702485899485321181749992272840919038313740086712879511973390331570296269596133140866472718915050018966117971480892148011337621871509753850179725947766947756790477423483932225799909048563506220475124011908712998712341776351118766165169398644174102661507831514809085779931305416856875501348670570168273473384055558997119326667302636912025374216024236230126938404539409952187492380480145522177318716215498995271311879670366815857307863361529071103052646521527371293077099834778184515694620950655696751408563368129300382910630879233002769194062336905537509760531067939535925495985811273936306738838876142450306475402437508005582751990264283782496215030045053824554253657226147053991028357171361852204508794741529679657683771474231006795734229100751037799262925126186149936356512376067806583573419809335339024814094936339720105339098139027566297525042070510303872175790286943250819644566287268689324575070664428095669930518476646950717117704300257132538828651722988254956873763541829558601623046151940909444362984485289837210699901784461404615276444994000822878372348680276512993742797569067030479555395069465776905981396360791056888369015783857703599110668717506607996214294635144730668252997922821465035892479314335765148857360083567532967667621787696729348001052002902880579166475203077036190181135622453529421302590782446186364209171049832427088156762327402625970750473971198016614306129709409533477934621775834405363821532299099627574238369240858628003811561528210255144802573171547838715253311042838176862242331021666570631525180772646978428255170632013535617827230745161490835955329702269533283830244793283229943094847402283461137451976303785427220985307328516322899786030838856544357440293629277939158068511391131058364732218515825837351616019681810716721318588597325197926736395837614583263550899479860853178098526785242734213479147791965255237744989337221478138808373082280321311451173847895245397006646111345441138644741438607958112210805196449985598545324169979846957605106446763898212613735217754941804412605924096732954704645792398857829888837230267283018320262665363825949314968631547746879817482432742870115663296867270696220115246095102303695573756893691116882422333714682923697389500103303909317156371215755736812547162200445328520057796286070642384113746035718496421120001329933422136492009262729970012631199930060861521887850856445729188228553340045029498889935586688770795389185388065994180125367418820585568321028089459812700522232268302541655018814317916677025853942136776318152083941853909580718512790978161681646963114374756422462749377452152646227299062454299293213302677599329678535171644868872445611288954564193648059103190381003735191729104512811503305134946995788286679265943483934019079784044722007431895722602909958810202110678007435636139887376980753952852036146780947890670844117853357604461948228714737972833980979755829680474910452118929950408151457662174780969567316564518022011755423424790094192841465001441335458769164672562356319092544069917537349508405546673127114959324604921234817004571638560567794239650122882566297643645124548846333748251597573255353814221761052587321482893162918024628776360369326742553092982623312104129035442792372005827574142420540226538158505529668406636172176757451570329423584505436891124406432688705756771422905428354193985918968018566093110766322823092731397048478402691461318329210987925771390247173193987402660307109357843406209698460273058309434807372774485320768275882261928033526100526216320470955337841241290313524324555230869060786130411416613444183795896083583831527492020585640361706742487288966297140201360525807539587324290586649115870674203318975333578353733629930630543509811520807858802098248992659727235461933591559135084408200588238789200129296901505639264871138339913540657370580149835856361224943944223000534955840489341250496769215933619201988049384375867984065804585970046309299126066019583275633209047792839976261507202106620332388215559524039129423348733696009563547671277694094108089537623786296873767674039080272594686416218936088561252102160993165067704439105986524353934861721276855071999217076442456620550110958976252087952408847715751569137283691595936543628403227218001783911538653247850899783086162941139165589625234889853195766339961543406533371599609988809819352713413987188867017673915941138991051443275215725437714600612935026909386148846084810240136780800546290677472381126974899469049287359349669389824792969961404955254873821412844066837039226695276920497666268838624670472893528314198140543708602638505497704070749028213505192873521081313224460165941330203426495880833478211730406026725678780297574296161535520958289001379147153550732033889479684830958126645318520984204159661562496159599791013291593968958686759200809518234847933510294303605918016711643844129989215399669241721099274111614529383791630002916653588507895775735982408168721595012261451233845454975197321557977434561591864292449979939387533125802023224085804161382150954735849652395930333928937879313366692000431752958221226712300048831470561599373945325662579509348467954313208993119117962000821517876989218057044225407384381447112359792913895877295975218065122059634445946554979085997966538650196804856866625849382754683132724916750483070063657713780761584479818736392195508521916940336240967089813230053235209273963898863694565140844284786443494326257125769955654142808706652449886779286845812631640074304779907772487714355255262847272947010610380927564707331176560718652057820939464904070766746443186379559073453246304966847622662115403771219566071225205238445261110687588636762726447196997876453230838377936770652260957089207987385354056598969680152603903384775150837990354548283221438387634631809752494084963982900274634428601864197243950659965363413246210384826430148027501712636592326947818590871040789578145089962168113237162251165423769506889302362472033270748681393600770515423268030574234331428330259762048842006554745998901774401193658348206204862698876677951369213291424475739747663086816493078402262374966003485539353787905155805578548034494291067616467435477460093535829250304322170101688452038001516995737097125237031535232408283870389088513816626796115022484461071271642701765420510943674501481569455331852601477484210520640808331591620599688596474162508942791301860507122862443459246043429471120404416334084975421264750340906061382553261361014409970828211434778049233241172691441854749544639465940465607607762048480630840443471440401816558901982630233351923421162399659671600790777258137083601954374880261836441701279645325147680603896738089679533320424333841469112740241317784064512250132598295918749672143557359125624378893849590304218513739173579201556744811791394033358546717435711438534355698462225003156075234023079601207174043172005017998201950214709343856255448191886302175054174751895003691099299456801615512704663062597901836066455194040921614871641271613007163281640294089675831795495946034539704710086632815466057149628231952781174923231081220999968205597606121684666837102800569167122539007765466429272841839584945098908258746735206827317316785869246673899006078011678256385340919740945282536833464604272842536351795898073910532580423994373157916411332948061349267480882186502143119763172729317094711078705775976564738491918712216512431537051563592025357983015899341669033073489854707923416524783610069232908318854719292604225806424946386924553478267009875185413122269391871668291929029671487799261190726979854952650142234761364429718606058555392666631715928416630293855465806377210804199614811056671706538593635446406109260753774082315444972129022115679707713388446739560078086195961070412131394257899907563589756286105508459126231397923491169560736513200255762517110954121398698748343484892886313565545180178908468851608888897823003739289006393714585878514254528432231735000920365445123192940694308859176880959813524344113366461691576624416709957898264137414076722299341620269325432167222216859163302457279640818301283283196763047399451420021047885999142156522173904950739448435858429783652748133201811256439833779747379123428840771162848633689284837591559598544643287093589353125910296406922699935452950743148566578924296210815052490162903919201989781671210988472237049501728304184943052594327539360158668281049427771743182739688705450575253544044942242788191804927071264963689310523449334629189841736527340256770278603478314172443158046881636688348145114000766365185928007794791056917460167194381568245681518819355877703160599954357346307098113050646891948518560044383635190576915012838456175109360096454132353705299023202233141216680730064372016738696220528823796019722383785833181873207797513565042217436076986557821380178029076389105296394031189191448847214429060190746617903533674760774697736572448706323758643829788430401838397117624116846670225365932105962120533423589393214709374238762656454618678126183537017341729847341365922893912427349646139661869790350463240551895279965776557435465630337344348725971328010744999030440612087557227126233759029690042909396990333334383375713033606709650247230416596302430996045800581361872916765301536195255539217469322902086445233821058920370761787270570899426214981278455134052576041149032993047439557123599744920868131440432478571872347948143674417569926194981191511828113527682563188164007156868290352721681298161913448200233423810728795679099613440728859491110150070380986585350859800330050390613454540113876027807888601363698974907675367549916549043721006808738594663481519892002776790172102131658735109881904981341429264464692693524947489900151713483633180547007055808574700653114224842072135433897568346632072236004837830485628165527776828896014198824873786734062622494464130516153139450747696203289421265815639032305135026982230061379762007696273573688387861466444836995977356972241532638602771394316405282743771045543126107761548019119278284185299309441588800397913266945719156129073520753332338928751470978828685243807740220980706023789283087186421494549857538081343145099769839471413561023721700000982562247968988224227097856895185182906101434409902017401886165600832068997607622516629536349388680164786461932672292079055340252370656384838453587804209849198205949201024752198068607436627998454395739498616488754878796822003949370675785766817417295809939296391891043915713130927542837489289662936069055198457112396855489437289641416901067940499009581921113639292423140727392031584290976207416009389848178578286417354970278916742807234427095073489182987196183699732648628468079670584911112390834203201067486658230626398871629734327299993597168572402371228548708256129097045509753646270162227804326176028736539646324402718654092798997402434370916100314512284570013459430581390639931034874148556387115845509442567439249790253505800139950659475433604565179400300928191024221671757545971230154005356337371210585208460700913424845753575836537160772783423829555965843540861722140816410910539541116596882814037276376054537030922384928235165381485648207600719925651007085625685852928259052520574843131188205456116935625316497675406521653552279933813871186926676121483976118647825029468546229276501987104406630335484517603021118552498065355132190740506136162052357129479480958976529005308332615029726108256978413342023418138895570727115631082196365306712943794295908679084840504883129427685049071746524117456974188063293710945800649329120605414846550601125205582986361370737035375861593291171560133130983500186731447118876679377754933413608836511343911599976946697461346715033753958414473872912979859435222774293640225755827055916835267422674527491806969545415144968057452317641446835015959222747153212730159998373814020792280019006390090297291448472576819449718029711477882194462586911984176317717104284356441989697543844988257091085582301852355414829327402764146093722864871827656487261724776918304991694539457482437283982824662505844982276898016421639029169945529947739290781751953317662883497759269263004965757056428974376460229687681173991026825671840580286460202891859807798551629435211986509553352051216063760602318613875854504241651224120407279809187578743412265726396806067968860640418410574278598280843145317765888978201842610506218743556515961714107381380604633224739957842868141176889440211685944770923431201814869017487886782242877611506201727346855803411542104876598953528210138898240619297229347610789042467555196814760628779559120971361080013840602956252383346409694713119290056798303749894691398156078466329028255867462050296845319404985508839806734834748487171960637687525819758181379919726433360742883246989464137814592691181221028903924138931422658407413129334124708963121890710709138927494765224902713173415906714440811871887422253283274652722687860004769979104104573090641766591467654201699774260812198817237255227980550158383851071411286537721904595811289512444650154546854112714206264547667909519790029774536433831015677856798783469986331821459321513755422867157133674723012313647395646510401584966209157913947967121495346391915298883969224086665559178395192400249884099863039988479832496206833716417997693368226881413965147866718964305095770119984178359640817356027904638414736345060579530540779506364980138727899492967757211752265087876388967701386429369481182303899971075441042801980438543575463397390094729167069785689390795971777836225060068538685381736179916687528343671924729271226895682144435676315906207672092261700036715789664510285570061664398319455510404014689241805980702762681354699855670086462929005774495010758236070411202121205049291694408534492354217396459993577245293054923847845904194793529538669462377844920685967088827358695196314390190467895930989018036736550422132411385370537505787291852387366131390438253166782709466575659309914949100892399732733184532376964816482561888399789537645295980462048864291859740842703856791603508694741522422812358332933139465995555596926012636376186882456499967603082912792299365143096291723722582209899492403406158766351522962019528617216717969898253026986952058584288802012075705762463938452999135660241801259825650890043781925397466356437928908885419026680530107789074592839816536327526997022733270220122907982388976756743307939107099030833132895197919686341560883718770686457023774193445212223649846436917325688990917369131223412904588261190541669531096514254075978929335794366104843221901964730254532762070437501561691669815060389248438581263870036076221450939102411651603832914210446032284637097348234427776114810609207915887202845419467821488630584554093495029039502188889786364658951760801150389432283547062379976572843008528959764180978273973649714016617582918743062222509571863713066357471089819061541326066104703157612206097225140816541237189885439494321391688414586232109361322530269989886492246944062535555672414996365514125390413036945293761065930801062485919470243381917445675458224806921777131372233499373931907480320342005599553448138727868936076462803022246398990595980429814874374151845362162183554413760428949761776381312729114366691522824890510787855966685476717997990767701193234540173441573668550174241220836779506812111271584557658084665661758968070956682243693986234841676781346378554952658999475990213468022727163371865974607716414528018373353637722885677023628370161873367573924962126290626931937829675355753415689654330814515819320171167103031445389043991372612282343921628696948145210199936413381092233525659784229689014523762923718967865442617731559892673204428345318512771422069783058823761835780843184219636807224221115132837057700993792167972511360080128191326313863572045098950484653347323025330014895939270080634880800503833627191241809953125892327109175547360537683246025503297352058427417079384181833763510306226946419929146985938037139638414117700421703243319393545176846597212717278230237079079666809186043850741023664215909703911840109483063300487060528631662470271051900348052547183936871665495605155114404764845589410125272220145955053873421841664911733749543634563813046706223229454136368329596643897281681384263045076584643462159253488716954149972540201468261561772382888417945717003807925758198709937566748946196504997893669769678339336973862555814933162429316069715068807780267569078952896532034468871288033126348993694085674191005427854355491688252381056229804048940441949805825966324101866432176584631069924168315563887320914052030429705905686846731755898769456909734191630390547540556057186700492232731360560447297072271729750912002203907496194453571736365936906976890604070984434434947369493845716602593730994956517957349268672410763421397690683616785134285570332409670417110348531527797629950974109426381593190729396826418697234421409288083990778189570635002767402972609937627767883758425448633284563415219932748208680026303626946653646167381208739683771737706295330803747296014324375164337410189469844064289009391990353599526132696189406414884864852569540134418148152306954417719862212388813714320832528845550080145383882697884628898710970107624068951835040234179289877835107384073700832177159978828364674589307315254103369805602119540712202289576023085081956411324048516517627927969510899348341159360392176107992730244007542603872146746094718405427342167403450083308383655585539295728945933176667610162278345604902783474978061497222721248628047526303117960439517695979775229324551044355512938252398693079105614004053986041423620162443623336712142584351142067980125221312395065201074113700616301357492700969639002845978708741892804402159460075648043206845130301364398493976892071706930804689991078185464424444210119956877587034365314096490316925166132460916534120893888724580250913103494049244032524895720057292199178366100114518780208727012919114781756195972414222036214843141014490557603149458528736645661268034941283901725847488899702500264326072226481324876718649933088421556122571753001101791455230235673811533932254017768535671995193280885129624792328556881819339374573307151810911572308750277587819236691228360017223967672933930453174739959976910640481754067241940764443591591093909697708438676672563672330504885028623605316920595309164941058440412083643125857424883767520732796912097573912845966297118898283746556038917105326287043519156289572862150274847218042721041588666419352302242983515402355513081952059987634581656113745508543338519514953905357984269202108027385831519834644293277243890978141652080780517709691527552940542398248227936199486544193197543200737578459191534615202143736806145343960491074711571648195746524336148129763829306737112655309679882558686440046227804692503449517054403445160529143364749906257409105297408654987523380724691299068611191791192605782192931475174152572816824887977722645750673472667478780109334950949930290316585346004228297765933881988870344939822900693314216652183999113980791413267952614697991734636923665464202667466555190258950336281552348581894718922689952143434294476960162850105765582788906768446664074021049283686191851470063324929172874054576035137480476498975880815918554827204940715340579895855819155289365487900710896787443124358810677136923274268958187521178471469358377762942709105243334443363027720226165592176191273895327921268419514270163810255593617388996606347347918504154380477767618264618294586542903938073270583054984782878942229423790101954572582224857367616307382117982817359506531273415141516227150211615446667234488674098218561806033831050926515369205729158222217590862111519786175704004690539872000713458753824038038805126985075284999478347490555768550945579693092828938979460586438062497900376157772970000229947082504383248261309439867744891184925671132339472202144370500263442097358058311778453787753704258348177549269682581302608334335522046945007767340790590662083332595416732658574466879542614054311406282494349477582930101325387726112279602110063161593870321528842521638121282779937455848109289784816499230156572602261043008337265548893372425224790042948723444506854670706797991906396833659980886172278465684186945816015081026240931052055496982819022874527662337567058555100748104937269455732504558065574118500061264707021458470441622982003969000308923657747717327061452268689784604116986899386274561797313518986166579506374400136007650808365925710552336198707355584087170127145795442478124748169194123936729825289206994278896775832574609185642461862046981496146586243799798135431826005199280660107176906810438951886808400109689694075015809563010975562550843946637983299709912672239709251486081947221400738058732891366939540299849396942032463274901480820997091394877059854004021851557740512427659765584462986431542236066006007844029048370115905968587842123267966056213634663119690385553859227462830876337503913988865048639489292587015457300685348856257893613436978376177691444402616881247073014323793202809268134263075194100136875759345414798365579392808332200776259728785416276363097675801678029096002025381184141622957158513405355329078315539603770327061685379745399679093985694886410257917517425261481478502308104035975601494319729255063510664370589598809945484143433216792012441806159209558510447744281086267905306752051544920191347896096668606965486679693231895856110163097334921551076910754971781548084469277403397859217467076645782556906970782073774469188400123603646571373034321170995562513466639096318175219735407387943316815145564756812309673982503025206411164933215755432383424175935843766976528459219195974477277855088742018159109031600888737087461783251075582261311984574838963763804255980458788981418222199330542217441508863816770254062746862208987768639873363092327808691497192756461305557673786523612960385349395465378811481411157102842679272808320686942939206447399449672559091295893836709819687697876069106143883023838713587362660549007274375081724815269162130750080719371272197545565517778947061062898971626508274749452538879349342914820401749799116395130810490459866684926735123647214987221825219613515657489270234950767601178560722202036454781930674753263113252441012256699044210273563866690692198325094283899812459106016177866372179998858386330262292290969582560166733186376703045138767471115844680918219206325546939833999363664490200740999861023023527622991973179035593249455628661495473030508290712372497095863807569614687391473423996847936100679986797065693375923969145147753220267751804250120954337541013935591318135763026024615196275160894427468044005738979050471993943627126526836785787649672731343199737317937061587251152102773454945591609652500371972896357826874476200567651397971238504278621586564357720442598049694226604064456301386043149889979798089109303282322443487410526402247307693683760880550574135257576140846031690830899329562134688722720281627005268964856620627436270181387485451216486907279465476889071400763327536835961563886252035386198501631649514763841516247956282172274416397109571700406911559579574305985626374634538621691496399550383937676420069388778810849172271883851335999101708362825470302943331796973036722613981307409533485898469990783917886968812237074863798810453194672388673959601272107420784262244304488250471364785450085202793408248481577845299895408174051392442615271606748299027490311885396780754331778666662041438097866371714171538324266682355929598843113688015244890181940574961006133753757551180822798182329945851783087517161516798448007278979260620522466656904829811343243420861082682170797507189030611523026950539778135132948117317849983285426074640228146376887987320877751176648403842429323183500577941853063825426635440597148965546791208519251387652580726345060303680984877746863678414648360751488803100598945143996810061896444440375840798599906805257186334809511347101429976551006805354316327843723294270261983753398559719713002611526412345368972837240730339315131781310838134357826976785236567228944685753867259417860289442287305286717922166509203849847072365489362787275221630759076678330255580501296090622280412194696831370504424246890652423643110925001182929288233350962773095886670750904720575689792059403136899488451446399514881763616148532529134218253985253989533281374069788276672077338921547510548439075861929508397192804044281255959555651793071703033483446056477748343866416863312415641803524469452072616025147279995179026402751229553001438617703020321261404895270475489147931010746084631438404754865627770954036117212183372949054492266777549050940897695816673129068147084905815549590734233105106992729170909681391697733491452524893743046830843481879374912312039498548627583314460631247099473404490429219610128714453367644886609469913023564765076216575557251349111222599462690035315420247783289211155821659915719358891526693396990181008584876067186851801685697903987752338040059096418632903503724772909548459377655033763139285586078721705183921799939315799560277094754642770762100105322730909742795439840512873189737873985711784227048759624844538092068678513372691151337041205040167679137979833315866276730569018704815905491430222742695351162552407376951889178210797046359209047251743234837695495987027199478198305696757560645461216817347305602411629585105112174727114885259093938397810404150212948577175110500161034220110958288291194180572897442029883865734846872986765239304552519337559384834658210408164906095379552654400231595667598522068802088876277353900434470064318569279189995322335021271551467464055197128574321900728344669900719022965005816388379418074822974546362237198090376233245143808135303199198168761766636949224698549106869515636459031686684541486869693739776776039968196415541688256015114005858498901340233967712671425453415424201965034392789779498368387483403441716497945232244842168764108535559516943579389110216934344256598864977395771756487683210973814496957385885895175745427166890180741603087046164290314108433626636086971891242534211668754167519517307978285063630731348386705423894367627521692606785519644496966431003753737741232440920851785047659406701400953217957134417233817023789763052743637033842524822377857864403213499435100806540931405194843547267477649361937012731534240864164053814176972537668636941144123597121404821081470563923567797182225772212773031114794682333560260867080609691337620656151656035752727174204040441440574449908605098225834578651519499654283402274306327902417743247722868334716977529034526331915748396981712398773817485144264517596350879097704855873146253358659232079895587316773033228906966436270993957859048849776779488119860434352230614375856177000073980287225305627798987244532043052117002250951519909156919399539630009884261213071268764919573772324722966136256983594093356678619053994832296275273049457634614143965663471082725801793319332077447003671790489272467243295318010642929030250365017481743810497099187958578533200310071807001380742642834476678274502940384018548181820036430911186989511392546931916375422241811305421247100228988799000571240489971566516164235590334398328563103908438069110713188821324882127398629862857891908116643630177740800496512731612384991969514216135615594578318069074177949513590893190316722498479716398221445064169754022551948232805823648643137593049481772213979751982831556335342468592129049325125044533285815405075026067425728329262752649664770159233469489672394968547086206172848480104174535928269173253814651675395754588017933368829438162155963243940328979730905567538467927658359323705677512658277669836410453377267313111591380410633697486689187162044586404512593178608038172767078319704175019529107560158061159985149649466143503223669104477821019074127004855018355370784858106901171732358024840945910928786321998652426355349806903755098258594155675642236768054221175817197004468480140318865760529172645115378865778820968365001293492758230368988529153099235185304882252260909813253361200452091595963164724949230367957551840703989216559840520015386445855436647748216237581749022769504947269112564687270806136590985452428826307283060650392521944747105575242812692719102910759224810278664218687777965558929408153039623172886262757020258273639655618048955888703947368780518513989231028125834484079558550630881871979615367373646867442492909927556569429359675339028255897280415755837617575593342753519273125606766370429747725422041766920479379218561147942949963003301255054160002462819075605268781390354783531327329772653843495331429032204732734241179805775826050862585422942014882397292882167981878436857655473720985363055008753518993712096390726625126344618199366769024910348541192236344796575030920027153546807440183734557258461024935109707551366914879019733891226395728351323729099139135918318312017963503370709032409661713832979389006131411435269895387470872229379762583276639538051356133843911876551588753258614386276525425214404233845235135252911545840246532503172193485018825075079946915817039527661220030105795929345422274759028288759594447633311997126232869506949009436648149531217975914117280796007541307878933423556584403184875501483476315404150761560807515252161256411111441720962753511656268446155930618650643906026068524711366022698743150598282591670191057608752118571958201891131903106514097615772762273766196920949894091220080807673883483342601497387839658172819336861438054183119127606866353512282680572038087173231848422234370797028412646175679577283910977440928935763093185609769161435714009586740098490636413916731055843599222620460409161364120914711447768516972599387271369261961133009492169750202306656276251166116988509885156623217992755903374551713290971422139171057246774358137063091018650793934592976342783781184826928771658352726705340096941218453756272622466674038956644823513208529268486830738555621748043997330233339886395428264330245644547554289560224726212857159503437195324206725084031666350311371458770331351835698994722285247429895028004674963707545239023045051822542133250572618149049368782419012685327535999933078880317914550309144158259661992228072310172243263990226593323414540842712083579657776988066960242895288252306859218725232709913951096541298902225708372042626688852757545113449766353479729331733950762994370202884049587281801209523392381350726833909055398427518087629632261508606087888435087222711064277327988892555958466382235070188619029600803314607220121611267478433404684282864406024632138734901879969896240123841790358776072187313203524091831262120483136908800022562490608103812162321639677241805233641538045181459777153975337057824198820543307584984277366576730755800981077595329182902702707186969372009500096571603390182940689133227904451483592875231596119592297292263052932400323971921227549367749324273567031670884495626651142083684184445002600063349981577641306984654404605265120268156760775398032461790775840510689579392871430911960460717289687226017292333797027721930907688857635979570197850136244247910165848643693073357962270555566823762293241116758338538565600940569605325186459752397315739898484802401644515773429982385777356736332918117632089003815594572096712417152873377049851742312835393348214616960502313990181087267617433156323338222794672153858581909970972906309387631436039565727462038949749505973015781946506867112603862956938977793201022875850579899122728556718923835592966954159911901378855289878436066902492880325682154884415972218563502652702941713756800460907315995142080423857203505585343488753679118954681771928477528054294506823028370666869836758339728432879118641652968346130524485782614212069353927480124258634464188729961789429513539515194567162791554892188205854754547669138740803273318217372770670004500510656502033319782265163071098003559595492355381507417499223363016644840925020433416439046066159404747601755905654850441553350044858276912110597113380379931504504634414854867178149655722735982910736800731840747611550690417618967980111848597334127483002270785282673071639284210562571790349044909009118572729295365397598802987859952509208211996259995259858335604607750952968671965540459187782678268834449937052177808701614718289076682684341921080966079789639425533239663815635424862301346253481772061275917095002367137035357998474634152347426700795178532873923766744498667216486381909042798813233481474282610071250616187566026189695913958524473939230629589301994982973689734326568940817188302351509712441890242730207172632352516978717018044950023979487598591929750079151664160300321137338403016059836753375018625737545829980649597851324053148544988557802935061594331490838727085020247780110950063866119387531184259135848319416682450025783687524148879643017774115539764385144266065125680508230798706184763483097036755831186729168838520331544291903380988654335239073183295957680407004666174983067737548565079493412963496551501677039808464521607597916795097777006730894347959212831323531804713415834779739414225719606067104522338809859851523270751314382975983550334900202760958928804608691163855837149116067773734984309300966676423975068337494866400409930561281732563406411429824580660094634399031103433086353694151456349609515649818920217743004576650770879725106920944428139204735512806845979723641940821737788169159493000722134277325880607010499716039440244503903510914712394253012860123863425800127595839252633906371953771565258025539011364434335627678941215951502280570664769260837032584720944514773749097401921917083136955649895550307356787752446448330525788754955973016198375476743118415772913954415143211945800210271193239604682483792846261211723880820812846641355151829331199044511127294471682943746696550271288691360955202125277483549585044278016648320648713113951393121689689316546721609952413905300271832250691951101790433558409209302391211814979633263964861321750832096623044170553409740306202412287678342153126793685982867314719774960667361458135714672373628336957348199932255947207669932122301244686160314868813057811628443362779324786928924056402061967896154031707449639924949286786160547697700072329199881442151417372610590508230574890504889056254880543318389323532690955078671016647771460445450334137991535111218318677784895602510916228625557648307053449252299527050110509760647269695648099177885574558264693719243517711185463513539646884140471611916978451198597959456688519344234167730251357951320582712954200871774049283781996159397702836988729236306547067468128145787643022345741201554319682125688128663911014692820467057612215823568570549446907557960327756721764392622704007400739062769485271665639419421201130237900288224127308970193412070513120168261063452326564835786581151597975074470579143022058800801260550559032344353146215708670111684694524935929396605297880338994981143597724603852213783804409917297015626662238444743711374876620565870331360642384384970060511221131372624176182842524385609451513186263277718491313571034226083443017017095838019523819356382983264568172245516675763154545922404619228932629642395171501366006790303070365138802699767136722664059207762066051006655435250421650563049308456745083687609805721739135005662885354036167954336005447918551227477744393270225589157288763732688967932267330201581717122433636777543049016444037937097844005188288211525080999834910112494361307823751539600677277674361227182039638626390488285212232620972173184405823602090277957762293279527948011845605914568148004277981942659825275294976947420601958892655298784116594222403136266741748256368345281298510958233516893693889859409961744911848282159985206786132939514070363991451557187881760076576755259090358588628694724433272057673356311868454753748451843849981189576742994630002522382345135945832166550080742393456078862780094298097531999435099185917589070961133949173454166924560957353399976140327884774273647750609968242788953787487981204874096999295452189925989934413292952235288133807746579538027770954289287491440008537916317408619705131576362322912575114785313738474882143821354463393145969504363052080029938917124501118845486525308124307225335199687088935999006068152369514542757732432956851585603471618269991768130210257961205141739931926557383577053546083292835540854418090460157003592232779604261808700168911851223898879376986584420315836665879423797297798630000370879700257863567788590369318384265173223704282865725007006958631994408080463923323364201309632369239579154482888493488121687790982540739222605961792423858693218122122658520633605260193858949288992437875648269869120126088549230078595046026304876757228475631572470667451133512773410565063742881980284467837772030616113326023112048358950485240708906025734110047367478461905180202544807415391908996074641509027162527843257906098345973685527523718823406853507475074909323872383340682416446768870094734502691394740692873565902549357453043489920934896850735602541400743045688773025164876334286962777215842718798934315565538172093814224622032892166147853092208445638645097452346828563873887118804240991358339295990302068599900825141339290013627683204707022987931900336747719105954873132861086667216391448671021763407717301811277143409614903443956599070572202677555774830458992326081430182097385712811525976007624251732165113485022098864252962149168189904563317301697851674236299099178346661011246457355832753921374610548853911120428589469606750031555319952758049154721540613973391402228784223389523180948958589381625857982592184764354760747842819528959610591792548566141300446336298487932028781928010926352015184358240890471368210833661047138643234027172428373347012905437753101075656602515618052018244446649796527628963846949469847237150489671316076970384359484640812468054334329316756278090190953149937574120685102993144812898087871333275950465163414050916748990757572759124345796742888367828796465266853902308790648599036197031994200871706353764570099183543687898707987779718309284312876082561273622024405850450904938858826636570900321982365166783376213840880239628809907987295886979734146762028668696173504226131239634035068479316976912877255179376249170428123125186547722105104461206894848785595514248372472659107620909721415886033100090639742818827300681238867582353480065902347902226454924040842080738506460992968702282065528366429107909501155821582753487531537288276094294702335707055168059172792943677516413784597060596906627621253098154566615080020252123339676321152978942927554308910854766328499343251824994439824189183935892707167352089012709646374960363093040636969952691830005257958836143366833434049903548777386303680388659835428899440202218527615923296483328105404022705902726385865740528994770146489203846465770660473353509079946646507649031134578394079666415574805584218317630407492048132306475443432230477764756852327203020716187035103293823493819392035100163027830510198298366945837779397293065412292064661547578399420018501870151035642339287422087581913104152864645593301656313943803334929287861658331323236735467895635781078738134416716555117187517180734663604589746146507122558114411221407977183755427291894922959910584141292139290929145471239914151035384464903208216621465741964449139497261210747126251856460544981907609595950136135388272869026067040127431841788954552739181743774467518127273895975606209579703130104979893869317959883762317472339899277652268337521244175852470480178172351725478497255400978430787804320506793574740042885073346346277223368295507675767985667875489918574199588313512352715706173515188437332029085630335029238515307926238108207365965666729121460900359764328195273498634356719245777905891214443305566292640683870057096556760528021732891972712882337835732767913177198953078385947302580481087679274743615758610987410037270578818864096928331639412812187982412289914699252256053274827976182343405550633339791056811839973757707921608502358108925333920856920165116696553266854276937375367948717080497017854105102890607076955902747686789207549177986274804396628336786170329220925066446741176819957384326882591601524090033337377363786479742297763705538215455155538486669225165860454161256053659018395282920070605282054598961263595135080529101752327728233982542561059857754653861182987885983773943569996628088105093041894673962711446764996504587570670723059004413788914046389855628129349967916317206886578288642024376226768628691882376600431286998622152913682443301188784657806200741508829639114402940242943581379463071226099217902665780260157891441017749761691839665723457805276080126149246636484362970148790709250546507216312316403207500625744663941707310626290322889829186018923278959345714310054370123990233866634074774345046186745649364140388275200939711671462901855028262626703835364798724930405525879389574879043039263210978428384899896697522406859905857181115716347393357457305245621467339066798614628700497491696747411921032451970799382617472622164225632657347938769800064811043718378773334327497248206164975053566589265161349656125569288546229508787312170432485633584080301848435371609728860571249294010426150054056420505412007406376273256086465045711266222253886620448310417542362511751061761872958638885296347747724177648469445809835488894122224477886716106493864130297146651627815705248763756544114273184381519780017756111408515375547071444008400050707222615358305805732813985759802753219328166581771046516589454287569155097318165141380945543745114551113151182131585655181040018603403473824753536887148686510527163785501765910227590313470533093456486944923003992718000163296951712059530277569432103060647289764493661493433452586749704288504178677391997023353812788293844180374547690281601971467193295064643329619053814114262519886920340128996602227296627606082126109634276858518396341819192355038745321515002431467941249840621607671435691475664530455283023897149303056087775657906567024385984712217950911791870969622083955640742621346142533065939357873927673624901058423670179859982673880580914217404617774270504793230262949592025499756986430761229268356968294412707113196225811033841845338352712674089453717591078477654942021260201158829321858457713015542346591346307935217357771664978189735257562736423197521637103844483488793570044796632951363530668243885547404670214132263231598858837853936967101053951106684580312741232613459308497016706551988897757575977241681996176068310987686037946987530881039898832423114237224256150504688928000082214535822894619124009018970654316584619823119938638312569709724340691213392613933970057576657108041887116935844972709673540311082810125979788121792281097834322488961156799086732900116137717360240583991534703594099060180407028852929620987067762586505990448098243013191452314162766784728985542312792413288309595243845589649426659496215234417947788579606471993903737230725251112066731081020002468298515869925477186657349277050635172030996582572832708410193928552565662619778407624713530634046660143622691315491762031422958340173469556960150391094037559953802315923254312698504044492225553148781986015924769710602330377252986034811077003132603529108642886033700056110613512736458986103373635601877216552920193903773024915360295422409285344854870979282916411973072161991812683302690159934975697343036494735112483588746006350322187477680041332813420317574717317795756623357529972663672708284013694827606707574363819040999928782648061743925685512137314380720374782996322105631916872576445697839250425807614056447471360660561899514706521578580510268294715486922861163302762760473011044062899254495783925742643020951297866479083572749705900741674672941800107525894406427554261716394622820582912681121042697231689914971062499159006136990866867356370692419323940513523608149648684126726931109588619748722184824882211415942275578834467790994627419181306266374061158757623599532613650870562906369799444247030044587603039802699283622786443787883553548584853353038890092934062843858323151820912747215501099403953973638991540004703112386172446582463641305023602336451187122899876146846901050259654182310941025600747206718922303243870807241994477076845360275622155055431987512802136767839509800294355949494059601454946764638151624654355747110160172875304625825557292682878783970012614923145118902467939230542377215518326310276639043280705933079362103719953330111730685024597992708862774445642385309419997326316770233695805689926201428363944634234619466581170694488170303683620259609163619326768285160720469898828295369496719940233370466328581273015250593369389220585213609575912322547779512997871328489951125354530976303989081279822421378168517004485454515660900328434489065188533644533639231204224052472101457133457819564728162201976536275096612793989312959358633163803037527891716151932154335632297359054046099463988508606025611662435373123781454702681264782168816543769943012104822968182515799728650200045714029981141957689652869966601862718139944984240006449334693516862690090929158748416606653712997408611405401050525082942986194529370543746208541474511765163123659019025670966065221041780871009248733573837103968115310347123622761104524435129582343911126882701558469070529746735870322224911118339544261571279403100954641723570248132096101925753402933251312733932142809373278472399539094404278152242622513460676164409948220703181321048334979377130187001571795885884674854901473204987230245728836978893261340821896844472828067777330876013185073146288036548368364273037017196552505274820720518003744738106611370017267323589701939652631886877294660249546844473024398476696135907622981043050272564186427078131532027792336699495445983751603824523376307001697537613299589412470459739609274586801543844266226941248859108787612487811317530808995184060389989968526063907715004930456721432488188004468715223711692950361918777389184774717739094415838721495782415024904610248971134643957463159590054116320680516597392845521144645968189935781776688662670756405934439750283712749523021222133066583580908375125113366728502038144576595378939769831101567558211373023533965215165992794505966177710840517513018429649594941093826156346406469524330944974728097669954933812494408766857395029193649100865377017139284360681871650928513870752112862379580465685227934657075401441533529394163460896393277336234707122806652735479523269661373774395909972353116595105862760898220390426351171981915984191652075127471818591983911391034108023580163993696508272213384493896109542614048664371299890071330813433554784678008429639555055627751678810577128749223177718996868371250837640444828462363831510847586298324433834016863894067604529686899988240828460173622789964954799842364755757256464038356946282608407996367315788777267308049931325889428714413348866767578410501491306913055166445516031443199184707958754069611853812106591750932724962490039580089962027497184576352215332969961676713495075702566525131804529533862780435158796292011552914513129708981513260626962401529244060329458570543369102272107487373631645647627093652863055426583491471844997153077075094877594191088753836691291771454441315092128719830221979762658012206506474330421224557663458993771717832760295094104859403953658651852766003686744460556344294018378227532034797820310572797691810579896506076343754738027601678883062666612429052791792363133216415445991246594997307200170038315100668275377299745549851657882504834588335513530506175424270234777053905726274184317414248825800178199431772537972040853189321016250257778393380384750412054776787161493304350917384787796093725361364236805856169888357457889919552633623875724484216322959893663270417841981708746202455425594265838428115811776024545787486187417121478790394018839037844974634956394623767742561874781294965189041232293545653382967089651059666196792324695560492168292415950323967040899583793311283472987476492835814588323750954425537243971921936701320829485005970724076154766010530188291125254317987364709802509037090432960467384059802178769676524585903911586984385077181789049125056069849055133401160060862885520526790463542373469154890447183583295817065594892138090156137541654127288882051704012236175544074162361168909150805946981122102568712676524003580165261618321344517432259933639722143464914777470556099150652070242884573314897396331310558764288487665724801731366651209978034354912090057569396854432955634977209353934993438195338051294460430305267421450282956872517101403554173073713883326692890263043629093335503203351935624222836760607467616330370354065698486652058929591436296984194214339426608667987750317171708710271038905859472392880137012992238068847419717913207633767148853452410181170483041075397293027595418831327841631307264149571694940631370456847975686263039298089451440623824430766943129165592656517046332161064848956233786269019868090031436863363474391059736964356039141469192523137380971933322606374132970023920781100594587316682262028604814155488420321868209861630813408973798297183484187347649984357873514100819676857737235226644103357557630725263922951096784723136790535787993895630307868635893137404575459116308486510002186805371381897875996912971608878316659528476001769517240552372062447042632510018771349773293870904549389943280234199561558042962307605064365450640386905381498956746925393560422436042596183460388069886693170448370139186152392644729801497960862366519394503661569055725563096658571034848070433416653412317143773923837004493781110768952534204960243491005293539165511895059975054369866860213090859371633148324680240657256880191669478568562677514083385022841728309618149687841640462510330503513436396617563616640703888765949212399524490166686871923774287742174282622511663532806444982773313031870874306650770289656068577752585850947521171940590163752288977272192888975076965448749818654701232065058886248362675207376818057062382203616608581019697502197328091924837338145271516930333627375051888295387505659934760121546002880480723389375841110667970956848527152515867429505685893464520701468329763067875410759789466945891561123994197927759723625059675409972574672588800649271135567028933258132560540787330652810486800152437508240386042529095362036820856023331619514920163785096265476600019196932609879034924687761479803288363541414363957618388472151879528049896160768846091495530152577051961548023913160771703741228111456680537110611392202556209693570864188790159790350232820434654386482150652528726205361374970561259302761032528180380488092347290134165213964367691507990809956326798477476482960399834003973399407272313826256614543842334569402822863504652660499046117321763651264467553601327825616099017619457761657324827933949571383102939412162045297859222816872767314748738865048348184280812492699036081280121915797051328582370893439266196581298239436474945307264431375389080927112314442329378193225999900508444356531227421982776945966274070678664362378891771604781442860454806272132133205799203005260447549406230545519916840805420050651152774462441385986079045541458990596322657221976656151372503139929175554370244806677939516671553204407809664402240019473172049719256937955064560807424215239125179137411441715713296835979377188742356416621957012205533085609610322566696449370513666240908775030278663389169716823842107670673585404065255609836268978403978695727479668897376433910632920216256360658575589803208691373059100079946643228117031222201249360731957881229470697757173409167801758984464749796275671574971396670235399485524367093741456365614640193976886249045493952247915859984516776549155165673562926735556368522288915085039512018764056922725487585275931272946297265813830947232423407471533185551580509891260047430894823029116840699297329398941155062246295795884515466092656684436563549586304145525670118356871092062151690538734631577484323774463638998458323862132915182927529394202465618003495553180632266665141707162533843888800812497238121704682980395791316929463937939311762877094629367579954209267454681714552287448218568883874861086338677002335049183366177134031246563491144581781369128206061582188201384800619819214647510260940548034438664342200593163388674907894696845403055776022071105222180425099779536729303932600583101048378689563646856674659227671909126322012864409946282424666576563055811831951441087114269752784667744824392125938108656415579803279030827270977210072701454557460822304155021046667818728305336550361395966868090102704345644896909794551056478467241768069677940147941606151531217670276391861303360175005813022429181183149736504730788661161927631527413364064085487335001238382876253265613573971175587570661306700486396347340942505980815318159907807442167862779199765214098865530674669457875466227524723184552954774672237368407728068739505195793241151862945716395160873405151677901480545311090218213283956648851526267964345334473924305849721778839977170513135416343226910894081208921631648531667571194704103749205178119717607238925314485766930999628910299575115106869040901312385230074929342692592509881961082266502513571627429104863973225247983863063998363501864686912845245900400377844292613412996975745373627898855542139133471122212516712312093664690822303881331077333133488049924468970345650510388220964004345331311779388635563126824729420706663540621771769634012187025036840524878709141974343702394766346693479760139326196372698331197722451762555138430055202537482662451198436568411102654998168927311983566433085774153439399302229121673972319180085514732220337287016606122950322484964974726204622204299633735726920369718680195991485521398262110761621219773823502133286475086608758846572842828738271446029244004289045283761829464247776257850242025718715965293333713225547091477849546175430131724357209691391146089619331487228708958063378996569276791648175239838211054657180656120527856714277335777037158876226328222029362478185910100609723467313590170271753124926806526188613948320064334747442185395554601461004538748062888068947154747442758260740967530547118005091107461107861285066955392688902919228353593146375799851357702559983966340465488852330121114487872637788575994745889222004225337660583502222676313722852541351432773790238615092844362420095643796626627957745032965061633671584838181770748868741586754139954903296391621392308389520705825275738187989293457515514023063401612993702815207327999108084077896100185899651332895149746831185365573785670531794163589918896787239500279664495661768901534915628534924722280247743244567822436834670899323693575993103300474070996257957933262564589396165338754962701318173921626826414779813692353978606160468753278806980361733921780143745624619226789567013341738462983026004021179122590843003919215086830973201255877514836916816066075774207190617457475354116767036479866744075873352520834838374133083752599744777280571755067476962400564002510907973908594335132056170452634051055987842912976327818977494503071759718643615705412344984905033052682813662036286416721376520843319785657913025825949963017359484399554094889195798718146843399643471548170459428613097823336763929802590648094040425419220080030662146143931478610017312863461201365416404565125321761914748797661065367404092744089155325974534367691851231049511782749622793705824281761021843348683755808080999036122128822684950991898036428850913819333920891573455641115028016401326260480075772939332531646695969924735119402816447045732049824600034223843656367489891988225112400939876254746514697146384856169224718487433003797845987630589247490463674829204343401531777798018036585018149360359425503346823212371601680072000601613873755628324647725823984882555405439631184551284042307917800187717500456536311445344389216308788587117346593863897307854775133624088649885619251371427131919712228479459428089230080217729910367503885329303771453462314166174606287711053720711084810585839596884093084791875503457206008445943853724433577399074971108984235292707954067698940927116534390782885812426116477429236682219925745598102621868020168520776939485702545392233681753364036501812498790239725629761206948123126560145244782829129931216362756144800164595379397392601163316874345843785127360225532549872030768261205050944682948216528908181529555998598738119632110220063313845044680171861373054393091902799058956747114679389378298350587845774814902614327931307516049798139209380675684562764478702196680971702969460139971897690704651330378163644486016628415922616296064956462045784431906885057665464235575704447398262994478516605928417189314245656774039424053570675715215902635549842185389626450214855307641375159728833770138638404234751241068879988476348221763008067406500362125165561386297075268809950496834123147498244079305884464510154492969764221249767941996792493533586086722366650474483856528618543991559068868698070291883966582966082895553063780513711591765073747316666185873158774540167793626821480841847142686948450632581894677771647580447286588717715949981174509782800404670788325711740299748015480226432418694170182918092214127485137450034835616933256006150103389275473258398713471698674111843715378554278606042881042270288965609098515862940193680070559151194383637257043217761327521967981749485810326081666694087391337134915662616822262726351836798868203596327285259293989752285552256432213367366616470920907149116078203987246513873507248873574740812087541168171689961176133125383997618843844433602203881358128881197171006685654784303138345779204932919609242860487038041775452345564171103640438692304329827884361504643890106943315105893600264400269059246256279644487569566197978770798801669131103565978966722973236428014120573227136820838108226187539897351975067816012798829581724938529527117050995064871621276829020129044651150848750693087724911802003681915494894655194973383531202525447534880623522473719188053845981098787295818159762124648854965313350668972222567611108422111591278580286808439209569311362781908581969862243893965110679304755080820439976955025012673699419110612870629202222243633751939783177145662132500481534519002822225441007036687226415423889172121041743872298923687646862305889170597353537434286411044979185473534536762303989106144408160558893131842155300235865938352470825932672381902102323112755596463453155857837343608440756018582790009631384272098744758391203156555751031787518349585177743264779140906728864339228919998246576590889464268172720955300640628467557555530256296911035166801107994967808063137536595398093748140623726824689060417672951142644095096922204697250912308974280901995415214694270164067129305483030807120491450344485034074966905338580554376171974487807168994855355912097810235577973847603174268031462228097626701795859117579403839745136012994839889625233544634840847570816201549999104122353091581952401541761542093036745203859913784366564948748966714651933386108447675597536880851418332342866574103608435559954521288159950322082650108326981756298509782013215477381001721306666095589078019744598919239428953471513556617995260543124801033347829261097597051074114774818357951835321301796150834032673038773462576692606187326451160328659623281153088809059855747022131009604709215706374911405655781455602856997756168902616273951745862749835943409853416162460489660927536304027301772642021552031330230732581624969089717564513507404014335699517139013396675912090509624672770893440064249900129359510664455374052459975509403052125915959173609137669074836010433259227289225323063686488029508293966051498035849927085198478748640222986145259212621923475455369302373480678710780453186571806747229402487482379250259504281420150976039811921733388962413153012462703038180410148195831202379031790307942206676515211534364790485945080061580652917216139859775827965308383303020155821065834017312116580235307793285378674067829252804554655008798879338027928307536393980627308786873114493484080843582984676611808626995848127551107917590009873044269655034228621109882171770819643804482870039382890351204807032501804855617958122014456397119351633744514992526683749974947397191510714263235522635762683729491913922112482523672091762237085789788981763272970274755648765576978947099420652145099611444490674852900295156002182219735800042056094451313482093800326923528369687853110560616309018277759155409451510821046762959468386426918472737582582721335155214717448960632084507158708645074596545305589285375372471773031910213420318544344481178686273106731714094299606946802956365150732673679464804696998086005262688870652788515220861932206807933886211830947591488466718427698703959842858898049869170277338299823992110179271417884797880320679153541974901996599491803077143549211485947334003726741077107085692561133850334200003750686201272547738863823305155000003605652429914110555303744638602783269034284227517165599224547673323888332976379999171579088768201021338321556086567093353185304637755314158826705321147951033504422720623515878019434831754541555527699886732911934600592395742137104671215006753352994764351815075251468900839288063878705196777393300347621640003671543033317606209858509983339755518687015090879098623037843832408133722702763913526496441965206950962707409923234828506481942533567136433540166973364586624945627420903377107144017547457785105107583982228755022011167901663089149685380706657354150284127851604423332062004584982197152051789731164322718208694148835521232805283276337457177144129820549572336190064319434104982692027926198811386948743907773205989511876951467711214610258665488237826849509917265336154465016714801680905691407837441629959515532812237789928197311443313117699095273129611150075954449454823572434949107069981726855581542455518311713282334689162573623134918905182381522583047165127054572209863156330681534416177287886355929255174262201189088059606140119348070404062809140536337725568489935044176570335502815055938204241487817271107571789543721849003491894413164537583991067382590905362309910216979183713756433542800122615759711865255982560931563958282701853166250948539226718146694309324460278520946743058021641884214818014034044461669664588250095162032017673524678997583100445947086339733529887308582154067444306390658990647119685294392122323349286089509314916405264391693853977607494603587667497482836658788508328585442572295958133775505477061109210966030685642897882776177822539267429935801604051036634304205159101620844053397117306973565895166908195970405799163415398227849512178020864872783587333865476406389301245667455648316503972858141842854734440173815603542012870764498098936321210043091304625994636749515024549961854149691306894944473177176488505449804803662441357825663775886324060511145932105299057051207397829689398714009111431829080047467961311675646712753967342513648326337380374711485012673430508230040568302340218290018528872109648046055978131849652467685318153301312271229875678194753897284906270707115241996496177220752437846530034670827366815891134234595228377676970425821693959395499543306544397857589728560574279177407877874109260539058904003330304594895164196783610992221779490729050684003581350989638397469996776524736954777134345198725845620775495576086023584234283981032761565500357133322766038455022657651732142170427150332570462518136532300452308002845522603392208299166161159650427423192852073517717969406313533987872558388027246750295604729055225572893113298127965399583034585419626794774700564782826224938850560206281635513812976571827875581344951783470913312371245048862740138670083554362368695120691558544192596570041961717810621196387919711090219995471174418972902706322465308699800197835015468830377136326873978639252636381925976194301766012203067442162210928367534501286963026817769285563255541640798677263763636282426992892272424603700963519324761818271990101687443397888105393323325521855595336353384337894839248998322583459176473883145638396503123280504576526573890282374763358389567010541345794913315211208027337522922403728371035727805454613277944877973736176054837774563742821587837367846860837063105552370657771885034203405966983464151614202678075810646132361047308920713604469277300956870062961151417376833966235705634801699662465970944903832873046636401824914646462369299969213927472721434632075362462512220543676226786043224676778015857771515762313334710002076054153241727102510144586287820363408975636638468351554987418556344458174409702620479627724148064441955621930308049322482935546729984031923664689607719491132741379514224151841674167687749333628991863984333253007639803464174044876539174797191295617924246048271377876925351128113126239259541319200690289557447397149428043825290648197356147008644588278259742913184136704216522948675604374803095528171457222971341596784441546224128284697908465845141788245549285596297967220882794004109682224777697568467449876266383771575459954015445754596091980549208679386826062672975010604681619148124055537811314791323969697676194379274876341048996909796141217444570010499007791812790052945343409718116945382426542426047670576841291833243414878850728725609838819824808919316996887845319337118952170027446475484222530629022674209097019423908560686012115846557166387540651725796563039554839274502537513921595282921600015800376826952233369253143684380800847384491162258826777441214794198405587818872161862627730829711701266440433418330246280635975939275374030016005860997655318778380868177534220382187730661480791008348534120786803998057357481461895859753255531347398054290903758554890511725225734265090405119362058468186887972201300998819066728307013885658307598786523517115445662333905940703778477455606234541294589087215834039657930808145217647091655572373503314419067115531617111802227517214740157013562801215698855261012575288359169435596605456374863470724889750895759186625683408273599381519784722133180238813086681764097213668140991068969715433477172014799992654020975549573263398994429207653079879791922357169137209666053376346171548786675111646613574331920244906414877875086722773277014528403192646293509805839532962526814530330582387049018109464425153553429205786150888759136262481609608908754376002788075584505481585146539785176517606381100911652331940662133506672502452490416787164626571232902937039766259189072217957590203936330569686366370478201697760782818685602768131958705997969056353348629067707143332580120333246718138751443708559685539157883419583284019418466884914946588751233641377622471110236755821483216926505774628917652589447137593702119795848511435416716983305764071050775233132226272570138218342559485625708919458928175820898389692015983722278635189106464228038222849654423616443890512221019524961791810112862504264481013843435170190560173195846668519568273369314388104477121938206492029243650173871615931683068729996012623707883259735816788062253487028463953643767842848006107247253261061847955370162626805787104916845724211364439216024444347936036839919593243993159728236336161860383728651427545394272656772475894524817468613725064167328934978896099355740202947764462786157142331765445289157983447352899430876135892137310983030816482793076705155547504183573710326217895669129944943629783339233914892594397149231001079877027908195404559024046198075337016991662656886786585048185714108107091878615487632970095820148848505801457373481429328608667119289048712859783949819331277080061193505595801723894684920931683297677442427427792371863152369248896941607118269266723472994189032515491949992372449701773542142121408460502234675268199032138693435073747213187178537487117455407722031628239410469636210506315289004412234377206366605316646779077468580686800378774986426541297739165941285217707015480085570955190750818797925280353017932775133618306545981739688662127075889518106636701776893349511701256142256062683005099625922356174010925500862187663533096573098969995996774033133254513060744604163288791513066591731605587128525825026365515886334608216255570470463187362320566878149460851114000692236648545644339928387145308412968311414633091995638734791005119419613043620307360114291270847955552176031945434702257623840861628329695836813153667310753997952816559676730520947154951496915116876765596309078161680639330020573020079161113464067295504140907953703452655179035356015345766920505186097032353766273651323085348447547000418486635794781583927989422609805513704718262880612903852131006636773705582536490483436462418228390877508684091058515890965144842226266592052746636212758428748091127822926244303855991677246009883933173110160002187814411986969642221700374421559860382957299039479636008831326514722030167636767248418425814204472031414626601285952303428485103807198690704843394038821151241771205258134468934070084623675983727722143651544310405522936043582202727614595069159091460824806057174388482353241166352151799460899828660041868740628155387113149348914404379771487049648322559827561076991070247968676119970462681426791616117268555120163947313249030005345435010839362333676050872109845350692895013994879246617517759259940621256279812812039334907822634117571473563547152945918651106288738737867824867854620200936337690730175282055610606900518425119195661431132222762146894077098767237965853885473626314478404129593569130877081227359037838972394467452661245791130065726758322831231252233966538666962266955074799988821584486714309807180262337296014782135002717236458544872302734761906895124113379327170379794504008762536043159087139426291255030696508463539337397222671305976117521876493692535055187113992766919213366074382226832170281811623784627073529555461875372623485237435530393869496643430276496386163725103796882336335995178792771448685025344556106107852558325453804224625880070099346840515872765192526554948753375252022088163601520476949536034367990754425530274076086745779837461185967643108333128982784941753747525104007675512751459407826962870623233093998040240106667125091837951629261546517868787313103630066455433013830706449397264086310251979611570576109105592927352798227354290824571466411336509055810559758131081390517888599320249909122187486771986588458364497999807852819093790048839837084974038943667986750288872616383817681754079435188399286389091626353114728224577054587116473038914120961870317667671799650852219476839631028796274506826574396935143354976811188624366335639773904363416585848167771477653520293674932517934022338914574270220895641042932405206098665117622906715987287432869821225182201722172539762201713620123149808084070669164673086659330062729657401405455750761449098219415600311152637298633810297767682671385023893266587215380580546822896758058715425314387842406236852392340835009028196161058507104591908136496556578562957970431121296753035055535699086278620647680221632393721785760351818082719687228549721280637679897838837904546304077304123646378725542203070640135020993157845008894409513550555915383663855645835502209514013790768634386704749961664227052521289537494375644864555204441162119753868850177631399605158680702032817563308974432088194659321612493258822768275602507908130449470692596043235639015453626421296634102863790664343677938641940513483667423006302578512851388658960659186424339500992586749652052313058405933280269491569074643697900299199483311356610054677260465811489670164732720404381812119040184394477039808449272502566361589779651911579251376570499397426808481650906183926678527992555010087729608553138385269737751694466376029070355204231395405165046354929507178394415889725021153182444067845443518306776877553790256435230986375864870989241411736461164642505033019924194445202140669741402067108487652037861906953614686224679295272382016969363889316095204254645548539089837309517614164886489116600390788395325811641465896776884640243132738303604635674709407284339394725000379735863451671516225858028361705621404795707648036679517088758438430656933871095198590404193677228528576923844832388755556417375444037551188672385698299326902475440168453709031637962154886316545135459789064730419003433505794988156273446992915461889941276462684143848827133122971477066970887855161768110757310916182197557592458579184506397831889955747452219018963805976017478501110222087670440031729586400302948669807207073142069248099782508452058475103700755262391487975462262769351608107095022447179548137384541860827345310463442122748425769406868853172005112880277210914986353197777161938491257406876466676176937587269766277647315352293614543369705355576592392709330217797346133664731629997932732142916627035234643024247071346007692163222183603960743411679215574153973129480791840900367577519197948758707314421803511366567972789173551121226572178359055344519164871642496282746687842268348522058478248661486664043908784707030390239492538218451514345820889642474964900391347497921142037348333679116927959360355090323837790973783198167429783875190916665024368928412645224752472201602055142733834757845800095176184132287686874787089617524469152564900134700979351812252025993907124106993749925668091939696686429518748650291137770377645828337189566991767290438460545300225350854424782954860853755203113726606392860512610365518864495460818302985087850252517076508946822005561841535778319398022466620118372760108847896140712484636783259983796102218141557962423559366035844779512386902528266326266427344253550697635646643232441753344498457015302704935514295328378663347583576228801399732604761606213210820603496565622923014051984041901748735681386865416313808253105085099978669020638681913322120145418201755459624452174867746775463399883006711991117683829309196221706629339968314418293673781787078110477501362884893225319577824095081902899547682254274780435906992319447843091126782972935805582131478278565247628211797272423299477392538431733652029481116050967980982607617395346037505916418896547672562591495718835321661827240478573809520564299081340205921698838334924568105774286477607668831165781589276435442650008899121822932984127938145762987245950491233237767252168510402933131497891795185769824403171601160035716306535509706437829008202914832810128164709410527798996593377578187401657399559478717263535689063329562533263541355186378326727305281867229754655387633674319568315709908312006778971508866445823961157828148981514494968479849442306172431862273578825264921759598690326179408477654295477528574160649163702995994811468067494937878884847397376809750802220071262523353837266944196036644942410444323451845371390134014998882006835135023886243017667853084905861083622832225413047678508544056550545814566126240478396187712066291332662361774396554741935483978867525004772874685900608773346034227345349419709021719645107347786986337860282044104093596102445484965451645781412406549107399771642997708821100064017478794268387287649051272322142477362865268194283992564951177039692124134999807585161586805212043164585353153315961682105236078063223865594089968432852577658425644386027205852662620836166244500201715114530901386479388184668910167269167275528405515626518407471886170097789276380214935092339968003746552925532050524161751392026662254327760978068483057748903954826683769435831039039631696124572087861946914497520936526075764561750414277989357073350834748765322839307647940058314829078993290475840856038883194095183177538214647501660323149156662451819197485455076343785261078673825173537989281095559830695504198422633054641660817219848458889844413290660979033223771181031652459035318790217781542264445619973448635660780300447432081078988981004905754657704061514484637321937355742346063477391023964598022460575951584476766131853912380201503993730437403327182296784354089344203107115875955714619063308698723772726698183871530785720414444632637461804760557177549157082006148417943548948424650628467480899935930706467681441739009197880244269721572765240300197707840131477934131658135817199822762316656036472467577494567414993846736015715580343889876444294245440519097872618709910965274409776562976316722215902144741367372411625951051143158170727347083826188201588177971369501205675155371618616611110896006321835902022988748605050160570310649938940437814709562104343181867468039689832890966901681837644295354663258515977463595237153381362145380954131801340765929669356394846874065375404627431522577417933814149500750551297595494623645543071175506188666624608304425418346579162272841524809905545591954809205884436107589173827420957417702569490750226447581633611861469041806099912084816538912820865600341546456933719597705889510505664853386587790002993146336521976934740186077249555516533174776747066137755027776682410742177791397061369121222058522482497953698779408306694189790298188071727368612633432923324734799746084619193074215646858156160458149451438605142587509040755932310186851485251374121401595309858028740707159720810893455454265614610357251976181483792468034967111872765809011890124588664619614139332222285560057720527850622208898207583544652746444142986423861305101797224998013681498269612710007082253151874603104331585830148370799867960692282875897619133834580329336856773008884007664215053679187181135364347048583408767297869593588385623845538733120063492697933725901287564460470904904150797612901165480059131850939601964681149441007023127925920587601151013090630502640247207668323771338743080883426604830860528770329381608547209818660639048879856181567714182786603503792982991456034717987845125756545829202854823389794508546134208167374249380773685453458085488115199512257145436662694675872990218753329277545151905013050097332524569980080461785997851825155480687069586825450371614109239877148823114962259102205038982013118325387960650601638961496151229199245672185202406911331967317170576493838574499306122143538444712431935106843319047221954916909035919329899179518633565097208025494429899502990981655511889602329653987698957476737083563328564187485425320975677460094519649919551008278637458231091662153549354865467193559136521325263370148191910384940013152877518800138328063266622112590652942346547146240130821011222611639826285227118010628140833356834687798980130346346032493503762406761435890486588118584187107516148697784047956048995934730963424656399031431771250898761633333515801762271644464097587206604414355913419570935617181532151712010308473190353648572723046830378243770186858275158131725380160858702207157316475015858609281290037167915074681946951060838492605966547532262940062642317068514455011902519289865987826445512309112778213514717602671952735952608590848153678047319483245886016233403282534283970840974490364516504181474689558581600235050397925787634365846383609125621024956233801153411918289827700214783126139078584437718826316780331993160299913730720680166710724959384894365272150075280085146446561186798299072169290280080608433640524088491628334577483047335508227491416992282389703678715662653994594321085531650331910787159504093182040063178257232428005330930440193562878604699252674641312552207363416763225119708002962481333407374684965727111299645777271043430009528629193291791891403513301658952614032803766091131707156185918478067510952856885704593616571368546483112566260738545052506540633299221321934114100420359900584958953173974898137698037512452661457132906764153377316593166783260460272973464865132289605023662408930382764482091545362234450795485220229062568600529100851544695189774177657004750597811305845915555732925284709093520749180353192209999609217133805060442160924657126978795873686527938838992629730274606785423835535844389702436266089187869989790174497704250977695264380380974629849238304265746634592632338043043207419092204341582077430124572228410005532483548113772247346099510909948103251891580669423858406831521086443607141607850791145687149513410615425874596838501108154599573798697777647700990589734806106616682167252211766251796822485497551681831818389146873209547109025971290928497192770224872682354693901615588365135857522159434771619513894166217714573948682816909510096066619011434090442876992016249805229906702398041940745010576318910393133231285045135368162907788799768994532829920678364926319666392728609574781229809501776900899930768014347446893888960253664267668219682824687477509004662412939389772756727289690352256815136586492983990714378973551935493629295817586421035994723202862459651245563481260440018566857693580356590186833176030716229904088693853680898813338298687499830721192625009748488005122903637727123147339233107357620425675690991180547325690582179473257058642568843060881221389501999589481377411688113201188059305592789602928436227632608012667942217938898385815995850453145385796644480318025998231486309213193283947844716652222093138812046503075347223019781832029226398168987896163135269124260053269728431441690583254045647468885464068643422132956053939381663143994298655086991236588193828777612836283333069836106223958442140817844445186902159801498470091422428103104274304032013586910737307254307703454363111943589215463306078852777267750294105934016432436220372549951427302331974637322571250098179256585458138074470240743518401641236214354163931383691723950822588215378144509566757692651568336178502124421920683876093897613823257220076801402760909348143385562995819823959432836202068559884553550413987617285321491929711747903100185224760047777262676434771868815239031266502443157613527630209493546775414971951162235185398521849225308087292860098983301525156944029890926085766830120269329281366038836204138760877991084763491649675151164561600208952000312341605340104639890694554879215224673588489214707745683928911243919769638101130353572535239824098449577097129794054472490116203888990987415988143923731227664561267561776748934009398057878997480604658550943906560511904539183475063485839024855354998270478179871940581094088381238369401226534804293542281972677486668530705390305934039695817548172659184157838836921542344230298871563478582196196058438954934334623532820772695559273208364483924988516302080745914073040508747994177613203853372013709427611949666717191247870435752507345742246121992002765926019837472359820800000309512637338867703440979921532022148077068155775114954652032037909518621628143212858498123448864180415822883948141031849923846187615203382417914589752540016592298508774845576679450873650603762360030531336573925022020818514010752224962062706255164665544714482220554402277438537895312355818626288283926520453047312647379751209743484288642920171544532814931777243152240372565951343304096058065025002783076943637959074413035079545760884429562189621969996607856535444334737303249172820713974558665735770923813612618559281892702415791840489592171007897246358626435640176715888611874190845255594640291832518382225231904288007631914565024964982895283050373970182929856148068481332606258376574493122106358972221760168771132781987607369803148637182152938726030467060667708388453017709803190048138455422884188966219710086674611848395632549832246541330036329318634849161105461335077781607777424995978627823184098448350297153166462598478645254912593311704291633169110031561036835935585714902215733781015622863421442347361330874228026339686800784115459436662717896301831811984485244225868690440251494171718944052364819453313655094577764600969284740246432041454683432491604872079846830608350263504120692885699839049794237369360591322234647888654418545840733827613997726855839366265499180271503115865335077563431485538402094868728288973812259172950381771128936036808530852075812992727900291050457738607395306788355137826581165056499478836562101565003170650802181582340552771851769900986724084719949356140764466820323480036624036150284449455069410056569288126333842320326249751719938565663344871228085268501656624170821546809141353626626048084900679396131462201206349639772515041395362241978674220908892889614326220124225352793205771962931176574981467666147614242867344706231634525062747398456785586591288299015617659607124688470927529193981808152166546192063523099597092328167456282167576236772500501888295816915035241297876030498338889761458606607430810647924208282129998088823548326005083738730719657218975292546930357962927113396139231605442841424396504266256402472961949806947454095761666799434138453693755429319340097081385558857368731076808240934997030371862768725369484402568246664026483792738950552384949984360229142602649412823059146655205920412068851955882351929380214018870652871602682133030429749956132172234988626548822601186290128438946070650296290360568721083772158491346974561192235359883074703081420181152013889322884284437661113193920423660377386639885579595443817686697217017681544997406008405734289640955455620930502181961040404105270762831374458230305327818975944448149334834802338837348881578119742509373420444819361289077217127526681148650349475241690524356125553716235632526949098661775668131435221088984287073269409882729670314445943736508047240818039358908108298401389016350868447739675079447751352428444990932546127175335520334502937414874215178724705890509878254807792661403340360037773023977396785437851790096275732714725875677440126717064107257816096812629050974871105723071889208854324573906814103370891791614887576193508286029907802262338184470735629124462698535482836689947845590734107930130618530702594122980705251715936935292736185598920088780219421347015744722321509468696390441919505018711921416162211048734488999900960637738709266227964445872688697163529417884695644672157326024364095363460087666234752010803794398536503411366848012540405751161613174049883862793219368582039485889799224720625930098929087707996702265085557841992322116922224671132265171509168765987285814362215393926994012997336656435388049144402425699182878764413625196298942164529242941740272133771210391766793461756663901985281186383175187901650453053885185703071175311733994736686589786045634775740631066988543720599463682144703052407777119775001288390182233102787415655663692738902548732808687170039963502970243144870429400876763874968258559203766356530073725882750957532720159812825886328242594707474836911857458895535708809195389569016938780575327797571948013101460411854707431925628939131237465351174003040616665346620261627396161153327151175604525079721743166323111772454786193741866627680426533642884518633677117659329923522291845946071783164467497045933639493648739187784901124713450373582818721529826368345664502100206798524266065650024155509810583313384041111776764887769044965646681078289470941938286411433097163644317078725967169875362372390112669875105814822489104617851611007617270065824138199730181816464934998479255830357061572385317862276450571848314296813673504102061729869081617969770784521474420087589649631247743035071645642701599059395162213467691608875903105857672540044562325747903196245631455886824948558079620769216711217749466227916641921473374989865827022878763330212180157058087148856763956731752011486112043549376547214595218108311956235949570854109065993390430605780069998476120945443246867433343561584762301904148736542470761453495643528396356002806216503768597985681085648957832655930522090271212422112318024255690533088844375965750539032778556324953615438565043670262340626100390365120409601425393513555206267083600876603311420579438095317047835565496920362949690883176377335135461007181938352876266422187089582072655706540784334045747123814157693828613787471364005093148557379540214510258254557844393229785454731927414715745683107847646245726921528174068650018907084847920345630888977363529345000114915571186299366058005896933717309039271208309487399874549885307128464047525629826381048296688857174707409271232883017353702732279581064559205858932647448689955631506157014947408175715368539618620054993923085231615106162357598206075515596818277310831076683811700668626816948226856035128853149193691276122991180901567309682049444862960704783704979588856521491557528951151464964657797789777363945721698787012045745510687699686666530372993881505760058495254276490420797654409871933809802760551115006380478355308317803478120449141663361848542256689580910986809478490147387524394383601710192793882676116354364432484197122612790583185697807822348414160604494007016183327008767413088350639610684939583810689601910125944122371428632221367174613319497462968687045400487177806772049015993489412873716935435285033664259093044933133791020782278101601406435833043109234199810366210260271040809592960205066807302770557884598194429797666766060796062893123456674509246275252451063622212297467752926814907853413361976235364066106710861484686114057129944772924044370738172821885829724547295339997301312928444859882010776425760219354605779365227194016390163055644559510800788110829012446514636646961159835005207653695229034797812216701664292186320946916645936638533035528810130259197140878558782745095139607686033998820943672430941205855534340026965950529145384251902337220508605912423047362661015372694537958712763654564682246927693874355874887195999886974227511209645151492342129062672197748652193020340922728297682966076001337053152241833432600231099700360678130212519074692658259839048961486673281179217258232247903867325952027356088959267533323104943124889415815864744185009575891339457460623973048761233347055124553729776442716263796617488586642818681349510352183609611448308910888941224076816125304984851666853254578154139100600207024338844033020336327618840733811017524285426870509319888436918021101427138354558702723954112203963086004734616895458085500063591647075561258231658384885759989805036760646846184869803861185548731508862052406572646550273943217349425079431267537084206313744422727557820275584040599820272457967567908812394069248780058573327460976421996822716205067089004923901501681428011431471727444794374993430803266586906048510473272364533755481872069368819128779909849430898377619611593978428212845236025900546086457198237462467230082107984043591227750336552990556657421618805960180834234648790545120435490035080117782685147568941494873584512645618154642110447401563667852404218074643191876763053673730757014466428370877522122857489567765404259013754983399383445805335201159771525401860989824358649870021179865385759560661639179127270869609189960131680480685466883394897610630196838670877046792253606771797674067589768586229956291981231813328181611508009851693193292113137213376735386957151102385322669910294885281453698103511762117415879650152365359145257222297011090410373603274073103329421808423183294336207961386321624572205302844108690287315271891361496890507389893745070854526806422016558992799608935505582888800702267858322627335207630502188553171546106854335272617473530055824233054794703570881347669951143198871528406406048226626049857927983042982879367954443699908214847608315966999263508376964152003893620631638140111953677199566671907656824514458668932646253730601547981129813702510500331459088900610641432421679113658768200003458709419658210424759235213516584286089869227692024674983678408102032328243019479185290842362694211633413268777928914924279307366994100374327174695552832771098437468927664867291921268119835274649330526137647545887271779703890071883153268292206797719432953237236571359115166869249254108554612103324984587478869703842798928091407835119501954918929910097658666563231246009824035702229271805856083300864702349534353583848491768100040704352018063526077116880623196689669168802026698652672351137676764685364232695457928884071210369149948527035571525221562039808225622338856804943528549687417408053558559568556687891859707443144319743030077627366489697762539397085357743982353945794648920573333666806219121872425325245888144885891901007599807722926838232481053192522619875456105835250246308649785734173495555826464091492151227572709691452907373401486701657153851099520518177952474841784804969956111862785855868457797656103213775846231599285062381952401955978895264471961418571415607006140792863375920584422215229178649387500026818507304777500471941052615821552992738289229155998409689503074620074490027642511620700255957178005024143881105429312212848635224787343794491585460583108219409086184575537648988667411647963673573674498345562794334419096524367713323012268371806780621157791406150721590807279256062228952284783693199406349809164759041714472879408195792748717187469470448844105978234766664360869022082834092124122339216459803161738622690890514315633091227305313960313632710934361850895480517312035354269409674056042678346334695692044524380615873562621535480924767864563204464049396540589455111567964524954741448625451386250736093518564926349821629381483105108861890791220391215934233120822551538130489223748572411881570174656754750469043163603279690267069947643922876277052525357014604421354657450593986108618614723893339468037488188048105204981435580980970788805616673468529622599480840552327570205233466777706515371291575997395496157896013853330172057565931017854955847656286200796370390753737728780486884894657518793136941648339172082764420899034853601844550270025452478418101234459329811211455590072368920292055345337110871733782359567140029805633367153918148907326556353242350778113666046298326409082767866969190623246991237280309162941482265151527415247822614911209598832353132647178989549642825710224454368553164662940689495502799138952957878466834522065321034576385737143625339417942764364230747374942996367011782662820915094164694208131086708693460431179412553720500415805416457857754888542615129506170434378598430403839052802527153823316026739246854500238151631916102075156229401832673426547142549420807548730877655325759427577879772334144608663058064706504786972623622549245969948445326274066232319263755349827866638517876161154147896301858781830486244620974476678015211899376685809351445346501997412106922466126780961946403993197689864007527573923052239657976748514480101707464855594823233090934572558613445893286578589596244710777747011759074019042561200327877663173747184474215078959974167461640182949101212836456906945794726708197294585628032638102818825774909497114458960696279231236616057480904995154502273491153478530923440213552275759859588003852785547394082487893676338361415818661905678667265120716452347036382709014579830164400598532289355131596491292209680095834287121019696216896288215486858614984356745576763594612122122106461515413073777432826361054042557385660127249630749018676855259426033864138639789435041107748586038266482593476871611010127128692004562638074781755435328627854960083776176612400780142927598739366121473487315201700899964496155361297456560607022306856359331891834900065871532067252146812494725889257435210139925637929482384022897545317683575614080630391235568067339565280477595710466076520222198533265617146315897850416721874729674536090147063124205305660471650120759328242477071858759199309045968869581814114762401256219614228137792736239532341084503223145199629385277214154612325352491503785682691781044517878406896848055542318712856118275243415842958901143679515427945606017912202738097857947040690065787300492628070335509683232259366307995405330112242226507111170876108703269739050707652155688348839042806909236856098849564083539952902121353433598369498584770957286370424506123264831660383209100524501404756131179588777857976581026623870202972668621127412568679648889860043998226281710135112751300693265278206933205541017056053858544501826652187085520740512007054457210681771464636308438466903714688933110835857256440699881867125291553723105709583203967521957246281403632549127868804533692991883370536620460129753524301563400564214960230323960706393087177247472597929262057477639786737633116908014625004871287211959066468722910679434214156750379194594276660935933194834825194486510932568257126128963710171006266430690942195477414575830232236603203829188404465846671589275199057695919660971361144208217839273184424837028970911545805648694566974508796235759832168643108876654650172128299566592990744878968619322305146215070881380500887703799468347119676394708471458425072599849369180749277366093528984250272103219219499288590614913314920898219797654127513728335172484938975696774108992216405597138713468208320897141324214695696106509023223451379846986960263527072806269608122532186799910250161607004628779376238561342671381941645465200451716052521527962997983379635793014207768736765040787221192595954486918849694318921030327119508485117100511926670662450608741387335691453053984464723024434348398588190091927358346898950990801837950885740133587667262701236658745842132250075177993611065588086156913021339903311503794123506231156770562787945548740927997204091670226931941180331323184087393668611889133092604432202644415539813362781887378841230698401150234334185203532170466158482730465277758068146223872353210395603186995670328975049287676838580489079678634692830016056136942995959977382058617245689486126124863485835915659838346016777742668498021690747078738384463818442003826007751624888897418507628200560419767354735239165536793614080457406962838113491668267582018572161335473862329165680495355954668619223944712098855925820521982339459380616653855583492177799678160410810331414654168502419402461449066113925654454786645235310098191400408111425345590228424493836197571988304219970578468945757246204975102933291577574540596387104213754120387854543466880278568562403141961765390464433479196094826238080704786557730134216962503063892749222337664098910382561367361676649415897470757949137383460208549515465574240921119959221433976947001124529351342077272821371055400640663910152294451840292840284017732493625295657191251108704864305588223188364931294640799054624920094738418175547180004840608285378738658404856472319587636187036337893706626085731229298948632480958372049658827717874047342194545628275566192445940476717988017734990192101449314083081356957610743971080685816887797550223779326912473946834789589816080901325277971381507912897282936271644390306187994397241401587845457279389991924557610995454150651018350359041181521829172245513639661203950804299517837953034377239355841629971351809920412143650666138398509543998099515006285457290211992783584516174092813288726810221638858566669128669937997369472703759191458149365737252520436984144229129315387072974842489709044206181079772031235287606126229647732082019269808805706304215666928489106558498724919145320317563946227218401898633798328475849611763883960755913881511318403014615461684186557432883629240351650358421328069271977397696329889071204338403365721240376204710135760738122427336663319712362811968490368159491780225063855616692402661312584440349262578144416925481507854278085001012342184257351762695749386497444517611671644041165312226030863979457148761394847419612785266435549469153396051236834171247318883640232736576049832305675758529773718217841371549564231811831378437816811733738193833549627284475893702824140665146721980361449791434714572528267588018590073613651122178282553007792794605741897467570508032077106534601375690979949460766087441856218454804727902011902415091959719237189785187491348388737283002877129409336758110294921577666845737248944160960142795862534444369892009711026857605594835094820635955466037367494157162525793915284594238909023020862778966941473029028328154093470248084733537022504744659936928207227208931085082994398466348599907049484244736867610332763028159302866378827133711721442379336094709557833959089819212977293190664649270340901910108945583973273749303632380612668921206737122801906599764919146031498273722907466365390100501708322573880427654838245618389521797942026633620409678287481745324248545162603260450397962195855598704643501740231397429864142357818094795592289221610602540830078330593403638897732069121558168108952438040006950150697005862976380771169525956400479467425541800435520426653309158442143866759271894860640573029215420437678809807724174324312285318999504629596909254243398931697134320499847046162032948885924441420874303090230394358807930820138120703899629464430406862298367313033624952511582157831551125441663892020778573758166159054381697485900235246459359284581585014433454238021661232758596524771381924195745290160885082165846377863684230949789397431272322955528993132790269793249675268128778761248827806529262125874365290478944985635739259732492516696612027240311410259435624167535394973365454183685555676243056900637230905863867866658520457485597356740189999189666957130665546564540927611710382774476775724920716070078854723389133921152150416759739364479564930529116916220986639151306712546060954721376015358702066395328209636479190068815566957021912356584714267365974418944769348143621806399006622946042054930160705621006330946033440186404809002922167061975740672062597921963935035982637119597969216168099610278880083690638313259203365409548414723260191708788709723491334494405812198979789780021619561606793803864135847085351606444699407416750396349509750082375941275369503293080692124016809887445996980352675201410531676696030237625865015892873656389310251392909426624904510245607562248533340831462775790170632193990806784053005185070901195061609350019361791751408203998617153774629803079126552594045305723301852087772144031952860942953887916391929354038537719534445879407163023910484060727206947601874750124443820677524217374125243398678225626191828282192507500715803464358116240620241733744314259117727787320870019105251430198366704866959095853422203732529362794603836045749626124458072899205712140570727207351282247720590708385908299708853188213648952996464100130857373979781789597239896905818896309316808422779893049048866466250652419766709130369715268092304877162895467190493398222928093833738429744621550678260688517954729728082582580211284699024934941697662274391942485255089748826533519442678535422927239248110662477821376980696460951316001321229279696554378470169531120789080444309999521143260845108720630597649679781858407968849987714561993414905625292484442482661605618565318913086989320840163155483760154115025673888604323117463502862251285138251014518590211136515360909494726961479422569398292087082070606406061925193490453111851685010610899948364761312785571940595814144860392438722128507818238480195830662693082307750957134878970974010196375118820997104533506804150438940956565622428909455367325675567198331071788312117040630705250706404039260247442321411408694127786404071542214270549978174187685962220295557412002129433390565540654326252561945609202096454398446412346188196859125574200280003585106176853721359068324151891266214427860528932226472152335072775448911599109171497451994815855308277924558173153640556009048513041009515127399905834876154686303175698466820031955273494262599241944123983121009770104982445691471808724770363590692479934579920848782861373391675817846837132791350810094451687751947595103678348943681038056851108287365675394496482818509231050301629398739654810467184303034991055917750426348154129710127180512207972378840585320255300820621051487313968350056082958340647189792716284753293041424285236221820338173529165484734392280787199994968941082171035722646547618869979413112478325901994233751766772442126514809178390558697884381861759988035525390866825912981180187628010999427612928289710724867117957107173323116042605592176066228571560295800552661039603203200041367632598608723498720151471033881611288904710346018118913107916395507090773502910991099464869644939723851721388070241470527826650232558223960258710263667431530630136343638776330046058212612853732156308422527701023078015616542808578533236356360650400890158450601020506718594475633548713219104648804360703728718405476950791492615067014304168374933425844521261531725450960576555174470374542436491071088237133415950775123914744137453965213425992250687592200422441211894885775074717976668930911069033737310673138979543832608618132292464109110318392397475294734221705067618020496606064430721488988777264342466930613630269274615276527006356771472257338316922415272646557884191977236396978703827026122880750568527778353559684074654527354405869130311624839803005961891297002231109100691610416502070005599570767904794317405046891257200119740664115637586496071084029815066838933242668011684522668708740418507773408499637415344912365054833682377206464726256757686773134080560818068995779696511233171486524717994388868870631327320322469052689155902245941870766910489929717417558006670348716315501960356708079557227298090288999482275881948222427302722632152810273930555020299953385389401648706822447343486741208717778583400955029509440750403016988186007596597525097876238885374783715419392081657081681646671280636586070843843027163775274545414513060057361509872745461869451030931972926838622404371964441654905339568129455815776855404476035073009809678695215776411097200542849448133233304424174940662158990541205102301416289891050350761251893729185827890665157777305598678621256646260660872865986274269389768959843961982959769396239908249717895074922274798394749681649387232716512044251245780541891060803182027324887604478426072430297527326953041512494815835316106008948556702641335949353785033117109760333086948291040638898859617109228759136547582952618438518048069226341630814138187613499543419546887200469205427810639218571118367260493263231538804644372326810495300504353417706609797516225963471794723478566582558273015492325492211628084398683948944190065882111398014663242157084267653318952632780863312226719812908815724764079135035347354445124928087207233522378174766732924826571673661290534051708712957666774310009701013939181255675850086848328793133390452701948686241827640203306825006057309050325857911862702366452578837058350752733901004544885118089899771968262142659098059178073237846719648927374262921603745712126533570385998577161916463397357926090897613012761903232251977762340211593096525191295956528844036315049505216175761842600824203701409587178403522839003131680518614841299809428754882685047560797966499306091488036340928420908467106364763847378763019926405404423345574908995689219965879296559135769432187682365001927917741366949391096837796016724511871267734954719086275703679819917240940746396403843976482195832783515704114394503113358433512835231449494152920471545651815414087342516018667149860570843722449075344242111051775879578730509585183129348724183513847330800059663283936424940644751933831212753318588351861041921579249982879296177359539093883011308682810848591825282960981079526368969408084459412571438097112124255102662220101607296132419835740946593297896844989323550328130551742617275133747131772519305616414363917053674749632319556260605631372347654043327648156518505585707660798258482833784381243626333412629375570139559201849738488944192062655087830953773902821007763453174244811416191874710862686258673722602494552703970752883408617635730086522611262797797252718648402922364841391990757835586354217343899464652418143653158105606702118779580330657627071878707620898244998905311334008949745879233118883361595490633513914485432003058320603575201342882857821349434295773051688790225389819658833715995177613467003123258091615761113887752643712502283055334831035219569722466279013618930587880892347772466733273761486185598390511269040284306497822223381103992729115337248466533415250017374314528711016565410933298480733928442922744923853605594753301269373789425645676747183428705514112600861715307345964478945784847916198998747668632799941620127187246679712291699875731930871010298726143988116930979784433041770365406581736840493632884675738606105850928236428581232645643623425387288961655456663046575035964064435704302753953428667593110483769829558668518829500373009236625720347110017197248279551492728292555109318967941875592575976507877648854729952083137089585571784129023133065484471342156971988309537261778664698666421440426380320497177029272940929184577745509128550313230272756141304196991375720984287565594141788575173411900235173620311967716522421493507301369215679761835914109174433756933968253134786272360020863318877252897329900859479003970248713348756051133484980833131502427139334894212409535418987281398441070776104416294262868220510681332118757274776586063071446806230797305900751108193785212546379343327759017132323487353259354339118258445107725490539561876725840936613460418938718977973305809169079190949453806026493180499971967610681787033295010408089106069396383492169622573617789969950503910574942582470083229747110694774557441180717903260068981670081914499332111647517178503562169791374454412877574661801657498363806388108242636167324611931436864028471325026565781997803324101134654035994945782191486844377063599818975791584466416672137175537034656984108753212992009473986271108394359116235069319401472684972956598769541256352731645609632970277535437598602299881584611548688025856564513372100297757408576739405649495429175128926237978656232596944944314651733024832817264746661474211041655134719162717535258004387638468847170785009169657972089319997937052634386398010926738595089953083492267526257516140587842787058766097356823034052403050240282124862728514305622487429969694746298879939136448837337290628879101474547910351136591090682116911044574911413069410196563434882941788417262025560861113486069160459131378709232687120427793615758165060209740634159923114330014537152678159894933056945485934522362268759235306019132482424049463751772126731730242007871321136215451281417891517237625994323793000214886426068398266669859381226157188151341563038838799713135338335233183039630359101626211759545798484489139198467747778979567799960660383895985090072251077535656961145716971756924233066492862083157371322972742749888232556525681839812693154502178129935010085477265883541003319566582091208035213284767188877126276091419301658626354858534103174781343543900428761466688846266722904648667919294472994394463623431890897661753336883498119273123507700617364285115282909985113082873558451993463819720624105901866245263379985520166967186513683569698886944057134469985195524140645476507912164413440018646624113261327880905531790762469650876355824285636753283969796645794165484695282025923883944265775150335709031380708186659379732434537410655206790825952948809596326837013546099334537143275363194919109408062198356450762169203429256086018552832343454576178651099060811443239251803873952979557490873487715259461527926704403764762065840732483723509951347003002483700772298180417249578292518439455743697958117404821007243502628638270866561840959639800021380024056221041344417926218356693140483289686593849784662880450452825249213557315643343026340603098195791117207500828658883961816388650783930244125139789177241701545750735330804788768336008028212545601071874727309465429550915559603856992010261628043665038772822136938246830739730920616713102705625916542337128999653079993598394538638485445391936688384421757517935355135720889038848366783875952097094393297288130462854407874051232997022397862592985963084158579730785341646364840426555072892343879223372025058862401963275514308227862629196728830535956347642616187828062949425524217762569775817273340297760684431510440000742187326129610409588819633440583448886206932998229537521289469417004312634690089466629405474248968723827771264320785615669263616138963449125253294938198200438577398080677540735501716175069838519861856030854524820461592164727862940750149171259017401662697684595488292734196979134049536748699088432042401821194119306540872987666434111672950739376983702124438086335274382430529147425399819035406880638426371807648805909957584392956245799245784809541888702243236755112204123432061283526372714516428366409879175125855032255006846279024710716004508834983673674950405625765728711356116420821986431245586939116873507204857125672316955461917038005492695563042012445574289369885779082253279607732700841241973818760114536876529372944836513843591087829783502263714695007878982245470750339161403694201725853033865606598313244719934189490002851339996102139236144325706245083602271120516618032103587011905217937788002797617746648427832519967137250322022423038697900811753565240396966344978521226474096250723440063599931897328805965466795994025500900999427948534391094137576041047613322067840763871831564228987495568725525428758318823481406291788964328860457217762710293734664331632996953510378696762360444114121965276364390688406410893027577248771139051503784316695864127072721610752004705725968061070251320013087072009485918333087715343460438705451674503881005699972267878264433318144591732947040340631424359820234558613611976277756668080697254878733284972454412248256900078696401691081266886368296905643518925289647981858994394435456211352203548027327434837973117232596820781061956553510489510488953966154823598229959311236058790943482046495977162944842692751980412534565688743985407138254923577870024063314732056926468980604974610544530200626994099722351537157275308740344155302382184437662907190343700003912585686030575339198916971989799480793389962847551878307081181231615459835638732238488568714622429298949067063842138415963384011518254063231552069571112346611552664967419291564450364512023099358157873079974309621842504168834114477091569774006227529116702444568482297673302749715699960071632180888350973052881505623796666974509165165476073328926227960849615397643190499155684481751703802838395551484840611808689780295966652174102822680827309471029381882869626569326315313640107425541953585912249438212874619643792204160226543534240317614290233745666037927512918582338605441395132024009475278011395719160288559514960010814539048956943528326812784865758830464385336581232563227080248946585060457050201436711830813799310879389838829706211413969614110139402192827586266318740428580726865300205843769645220629915397366181332638781751673169604804787867938062673978795651644375488116200138551334855630532232567482069318272650464873015181311177047900141359491743766682453668350349587187912908635067964255531052339755565760925860563231723147367124815442554043884316316428622693929035993080258642201667751289758175506902339360981379619071848969005234636559764687471001015102649837415210531664231999905769507728822463068266124246867585022227519964337786767059264390705566350054763232660414809364806958011195580297996411632637522930458828631740995222977023527707769376808676536550003348547323277692412289808864859868797271080601424208145217604599606612248255054468549796936505807150962648873046594862856777797645612357958264434573290289601805742915594483515853449557760840615393665831236496750755929842247494640906291774479125681030759257862256577680229464446374380321540667159034894414041395323806848531363653113233252097036818357602808881242237091055501090523765064829592334869426597941648528166984858940408563475194739035701665365271049915612489997227602784406049464313740556556275303584636181522701933663990135596538687312428832820920466985049170301061027845865462680922838489235679130583687169700135097981590104976177426046997564258742189396505999111741573874050781983995072458976373615975267006444111116751757842585767812841710255417277771517004558684567050602243348359648443269717321330430714284520574053118558712526424448694116257413889115075964300348882492021984964215777311801271283024579154055595608089051335494847056501670197391558462896742414286516043772556465422331068417719941744946368108817546853815089975295219313881484984651098597820053076544084243294878375835530329582165625468228572799125334821450107313065253006217153100793839549780172000838985692230370264830914466207063810326556960561904082429547583593972010668960376717300748659663214029282335694595568254470632603584209325288302282153682026639683077500100757106931810250498676336768912184655625544282725353936953972981876660437221144487643596969455380145615879297115816705593567725460033359640045372655306254615595716984872176660577247302081460855039826113470560342991459968511178811983507782870445592310849729907384373569832486124887735761730823842690263747315361991834600081489700915201473207223693857348493495538992126427522943976275327327237676992082617043330137625497548083873237267911263211677719317258832753391141945096180103967318192799211151231808252014900865058214614724758149879776420100055336111228429454336022372096974483312427318404330273372694064297212131355256984810871477189837906287695534008710163777767976191886407398991286620596779576979789557052758631560353998247864618222605037004941862566956638291885923761463102218405721590519561725517658098381908411612544279487494566209772922189283408284472533492522186749837625766315808597826401612833228757028692827868318070424982684566636750967623385136147833739781719086786152167817139013425497162559854070344017620556780098079921279333599833860211830507797487445340049175437279874875270879790536264128800552206733438230162970524103908298681662061664892494953324893644919066443967940835322386980918877463626028324528825739615299712422279315372065836738188210081722463899623969323526424888980788937851033453709209253826959317741686099697937942513976026034665397615829741598160631211096750783819336731185964486023274447749372769644543850725846509635795767818949508929673533282793403050863222035035540082758695315713793827565121937172722152036255161141665148753230522673204412286626604391706872016640510520290650705189568955801701394840280996161702312108859422530892091788775859795989429815567162570851509275133095475884691236184825562565241965997720805054598613538886037038164549956706786413623817998214229784392446601179239802642181306430371795676764264668878689657700368924159657776228294317527423665739163463477908520950078316552164850340900251648241375206995622419143200722244641078071928330710179243455589149002083212911222921419507747380264335394201946588817349514581703689387312834790482917327532598078850373488228143901772449979982460391022469698665643613503393830077309645577146569130868378125993373507048779833303701503145371744588873783037531152325703091194296797666847004225676924546715461509520043127082074274119100980960463162217834032761821706849518189010960468660139701581822848445695200277520184137212600840381005477260070813440445901789634463914908153927109321361067263394311953778957088254601421007894836708991669108501274546893069648076698483624220842502545089112836701444832724591182629761250349532900250600932726003365219409282506738433851362103145215449472992932059920942349132443362224290756794610707133099386657414589325122243362242995883613363326421035242582102290636645322726212221625832590334803937927802094258588047107077286617100594945728301465676572263985121541157199226251411325769691852007742988987457617938558471434316183006909229997916769716516471830124296991481378532856869199162505660362984296845005475715959487975814630046698051879026487756251229737903003171130573550204129390357537976681481887004379667330354739430182121511648125993329793919479518556794529844051100913748361576226956362693624245802377979975543398888509049164671249869842618333989705364140686078940553629768742039105139818729286933213714382785128189023009913559958782918034674652523528556597359271151749202325336911638192955262756455301996681152771406443927674756906471432090832789524658878108339381875851964379427682246311127919435214444782473807049878152536508039989576131599708061131399832577917124901170642863163369806536198723801524135873053361964913303493358799228159321803473276253502581214803021435201206770357694019083481097893191277027871845647214652461963011915137502450785196931415280128915176839614169477041151484884323211521459976163959229986151342981976236427887053622062331791246609675176414625750269443364602748678715338746884514203303503878578501137524120360096502780514855532111376969951538146988468272604611920086699351195995491373919580382243361650877319771613236514317967928750620579220195155656382117442986731434815658025669657564628630474665682616233905312243945967281898594850299702657945197332345196983493097203990121301878448456307979427359367870535160055319723958568818441931709117363168058784847559552929150964924314759774763292987252950126894154958653295043497075374150576574505604658183005787405460850192766705987543200656157510357647866210258326670279646367122086432257216354635787382359504512907799633724356233487901820588001490275629315222437717987275704219323926247816531105303261564490153972186644900374485872009110575599798414240143950045224232251138334661122269312901654683598595195962364096442102115828330237227799047655102350718342040410626138045393963345993512016349639584126735960832917258054845426153202768749460838456062078105876494838957075142411091945623212373246343065585958777289275749613485018982064532450283292858256509283286929598750292144274423840114267039037106878425622552574193947656259879253509369525311221372688381153375847952843951730768290588830708133391125569061297178418391876526314758888665756314962732976434642831169589714868796620145356546014073381115548664266110042279859111991636053209416625013627033279384269041116329700947740371118098671442063286479389811933904992952550847395868785811533625669297498538196268644918226764240255539018529243900786443474185695738567273607012923023439298524625297317179052097403319889947392489314798329391324038129546521939843215095531461851507875385277485205654382242712190477732207103694458055357813840299368985474632564258453903873420351958590556916328612896798619090528944443815279120908684949783183909009951424663997227111318556223752219780239253356377764927811861579093324524248013341174570817005544195089373624515864076348557129252702571494311426820690573329223271666223909190170943435142793325564735205937334592367830018163736857706467956297648753459670736113371086850930651212341138588067899201107704034734871967982798875530600707241123316605127541435547563493674938013870414696351404872023488205143944040379074661952346743598618336839275700992459748453929821650699055828802035950791124129557021313383386406125988258253608117404958169891942368069537890813322475675142756907264396163105112866496338993184478181829456989988977960198038662205541055890780677020387952425111911155145955520495246061757469328052944420445847407132041565385474042535318955551881929483896815055965028373217430615739350410060820165312581540126554562547101556661427357743354971665621284776025847720010872223958004759198079102971488342473180037227440832306909278916318035078019762466171174618556149750061002992487804557018583864714048652357792928173678791879563903667140169823923563572559335325489351809871021416468016322755456310176155984080297956094381475941214663610468851912919396173918906772644610982352152163768532908501828403852780780151693529005209017721737053096731406576439388311561369951702018392627662441210592256327448434526636722430313996348190059326017419632623837904186238069625187462926536682898004490910527287993543924504552571264843393328948059987999659343328824837455856112595116599179244038543277827829984350379108493202991152962538636694631647119331643192673217202684162281802651974139322845859368399495368420093617544283667131397228184983513405375955133407980272507679940540339582808142391980974089504185862931640665261601464399333288955159887729210330625337326990905695909371825029515397198289053175752575606818783811918516361268415819961696792155764510596637268783755180782173527257957324865895399927008214318832379100535705760537961334412797400266852351797837658243474433882277294942140812655778306464695700685293752251911722586336111834075350132220202223424553106953190574150978312448351832397874744719203831209492380121666585838161295507323048418271120253992928009517262613649737637636567249843216806878534547283530751255768133652486270653323668290600591357254559182325745213772771066078200461518597000079854174134758649594401010954418132873014632604366742045677413754769167583348126649123568659133243084317250120700324228637420830129774264467085630507378108567985134908327830245053527716889102148991727349623642367858033014130364561099766338843927944162003485612373222555113951578556897128358658061750866697266873434799577117339107193118108826299064562507838792977584923918751079766859834743759853656950661985672619275856398796271359764479284982642981881467904307642573820942053556559361748484077571529510355560247234334427813110467283655050250595308129541270513598051272581731276734456696909422407282050352648118663871641280067466060659481471869501896106829126475216870161118375847315578510930767680393702132212377263098966991596213628543902708615610659495482856938991397400584491269040827639081754459498727760481271953416788869329110851032039696631552003711170839246587142581154708934575804970610760200180212646965957356454707461839997583122619719896719103122651946699651135129148833988165997276491145666765515010953080605273318604735337872275580974636941296795554666702838607505685216647747961031090722844889795727032459135847035381184059903731133776395181091120095567960231416930863003731296806564687941572141865309667565516336760061125300439431634543885767642602998042814793921133757863331209870346179062428268788225636865622158560528489414382400178786254156502615266877610769883028875884359883242646825364896534347391678965267406805100870569099252975708584010129320398307214692735048574259066997135646440233841806244903141367397114270410789800115105730814567937984019715562410627649325152817782399070309473290619362705691663363696171284819760204995086468653947523155397507209160892555242181398488393800272541092497704022283925579784203714583510530119920873076374789904643760516092144159644129467054741673633029522752635888331088017131849104481188650623508614591546474622048488909909888011205799504934937673255380694450815783131236611140499258394245986605445545701735139663994675479128077146310375443200109275145259249109840910140768635638972113086902946135677071579627341296198592966312694943669959374924028198217223418231346464729449384423804497902397788313915920117694232405189975001836184625338769345448206756959087586188376555719128470634914862281483320363514977566211143311772041593705026444554986632725044235109002453890904766136657988997494746770103300192316056770325710576824502878651477617703185685083959425651298695069209232330213118521252145921394275517397615636731322063375993363819513341081241420398575960825319244604036730238588113108608973295556474212310510785635895607019713936983192225080191368955478208768123435780417667279107246302626205319808984496058630082562187652348184594898907102874531995175361438225971524185067151553841827950736360763233483132693281482430284856492072672500997546787074971491507104668614399866878886166965619691071321824918666916349159443191247105638886825625431873177342881547434707751448260324031254300232739900029531419442632108534623262463384440389947060991152367744877028383604609182520081771415756136246552557794340357412834722937875912664821555921257975559197476578894043928379024529930717706205804380652214372048085410270814585592951559134981902658135744889829472301939970238592096291411097290502308342924195217881693233906815565387494102111837727387963493985188746161314877401158315558513465926604963861167438904033764938127962367690854372401876174971906391478295990348182199163696633455436900894975634441878523562213961838887158594117935227417248417157098624067272647835503568995723873442162972591120872992705353968729693528804890383464188289632368862056778431291436550596624109110957872201941553275259036158955816620939264391322915053541975100270302958419418042955766995484001957720913441998061327476185256218977198453434111519713939664865859724310789722565864973689991563050132039057833609595385085588582510170267591959983075093257529211060527300940116879751430263904624644083904311388955678128878955856812705434916113793694845831146937067264803224014955093548672075614704751219385450657251264416191017095043225776991133113070605205257256099206358996026678160090533192012785672006225804791498239840685742672707669887736011245897122101648929216390069853636219859728881091184856289744590744411022902266127138271889947039638919962980902941799593569286980229411361702879705724781810055829755976684949914011864659124749107345568922484639211375116525835293932288977043250827265102253506770155086497110187384980443333049798184933331808828401184267733263466149189102306139848663202429706762190574236426240812612360284319914251371018127083230290027504635329954940754713854414422353901148871884504504592953011672942475411158326185699158350204156771601475189139110815397726823841865795910385007637410417793139979491343007224248153421667266805499942398097618393662254682792114741292660864532510196864672089711696659975341040609153679068225491420252404356488468406973015395118438217444721557030267452501917058090270656209315920145209865539513836856359851320847334376403542170700895205580187445179126428251848387494551114141008769089336176129981365828542474859959067819903781375019735100145730522272483927784899181878655396757050103935899775474892404054125165432749709322141210511611309740473816865390295147177892915948338730510378065847896145180848328643349879497286408856132362299170896342092673467850334077485545807811888666343986726898462087177613239534640491811207960201188350770776799158377037175358592412434060123066773141531537979588071467219448384825607796151130242384796124411243912680678068700076778905730624217172447847860154630463486448591099572607543113599212918682193677260542603132821120419457592893846395186595175743957827779554552949581088189652550019594246320902890122907897743359258557695586291569131627752524012837473824911952645132021937968429046213124612734022498904921788129135782951096771965242801688722445937879759493088282607359884485677385730689396054405344015182480367120647344654523878529446433922490978804132394595936431260565101285936703720528800664710040705981180382958633033916764507082935042989903207947662383945039865093259018557921510640876050336492976116411131680493329119656301956301426690265494628434158974331420601385835844549423276746936122908544074777858262558287450646682815205958589792526182118356086508028536821387840525503644954648959881621089384346422764732625465602651274044717502628684084254206048171436536468124539731605773499000224471616963408525716140244327580631220033655831252278593954674572477420121959842599986556674324683267661287812986412747502930971896399362656565883308080344253611103147772385987141202089807797127604301258152017796039573791605149212798201619864425874795444402158778469955312993290098041777847520937883424229769735036876756022456633419659443466735988947623098477849219494249210507943486482426513825369750934757819999335696088573208005184850119571383449257447334152381766839614641964834926617573038624694283951395390188741516598297501399809185901924280531155591504868257134976110636740449446141536940372383718772238442450441122835636443559709800223048527845408645904774302183097086657779558868720016484786428657015534028807960398894127401861455384336101370385561531509743800488796171080708179623529017563387030499981488216533535038719416299972359243029112721427369703737705586829444813665055695084255721039790514253304482099093653730672972319618832356936489659848317031956179415389694863713178615454631277675603090895037679591159867694801281671708663502546031552623692131815429394518601266782689475600814043510824599809730232252364833619073546003713753102489391148495860409915122935307681135616283673634211080283198551706720160864622199311640960366290156156760044258056689123209739305328855311168808905509346133757817225328786076918487342189607264450089676218887984574665453804545901249934963356543239653708262409631822206926225388973993029592036231395387401510773579008309013337751370393902588903871102784492368166160935574007760799855662020017279250618255115228794088939425718469657560048179052518891471779661059515809787624048143237798602971452688362409471661509237771254542837199780692774810258041629507566488387806877390903678882422389247123604139767756508102570465678834084756463420235927370206726536580031407141959164786238229489735826870897221519852975068794148451383994046667800430614230850599877200613356717724793922093029245115850571864681031267584466686179330224069030870439113551305097172718694495253377553220602501689261622093264969638175595643744742036126985217597341735848811976045626161704349449692159842050505658983400919092521320474123162520594061424003422544495459042617339292343540252353913396044423644667497111849922440263516210700534003865354399560860262703032744915367293288307111952427950001305320906902201992450722558358487548955113575090128045966312095716548750712251285170860716879001302501199293814241484581435360054612571357909790346408722894732576451487383791876857024220401037431675189883582466401502342491231197260623407227553577401753415518605044015917263756847343824163240174915926733103321341715585157422979061376234851583308562249864383607995705872974736063491832180096712421252270922426882896326078167248172801540402054208521703781471079809530072086042501363383854841998694302287444528894983332579697810113335894481233427495664704496205140768661401812000710374406155632196476796863572975718786648577055723953107317530747736315885286962001695842142584786705776895214664068140215035137493243116228158111941860373845783910665849328690078418457331934208005336316562515179900791790985542224061908203508624668363653850310899714228106199160818404490968987425295383602251209847871918713913783584428576165973610295424172509588187136708363968874335935982629084037289231329796090229852683979936398508056429807525456570421086121701704952165063067770939945455693902964799826666425908071548992020771037400734567680442459955284422599852154857114240633295773225731396000552884376295780528137156489503462689218799191780574891168458416131261082676083926076265827796573538726528325235922503326259240749303478265070676889325189578681044825007486836123999825323454403859741564145907475819107115601046331651975450435809992083529670855520426696666413211582332023611743382768021550538783497415648789661231800475148324260079211646680145037437247341951317105823284857222660018696474941435048170961477268490347237188227880399787019802901827302792126445081608701766127822062441096186064135256865707863070571661303337570851150372442994629264503765662844725776532186261048434208600544979638469739733885307767864821983861809301467717885625208694060416318236285378157131638951090420464960929301137629148003210768533840472248818878200111559851803512893069098608518570556735672322278315622152135190401574916238372915159217334526697285691882308881024513186213820055760741844836170953214735681999259591556458300008452309313801302973877157173316741489922610458752610308697713661257496043682227942193038862699866380081461128509039489132623972379740663503531712373709646818139279056830363301451946279502430343195873950143807261373842028860310983350927228176898068681830853911325609843819378536612534815041983603344952230228483400351257567724479016149516460653775960648985785053171019787624906737387651269013631107605603866163271181842941459815613839018673722642261783650866124629822120915188020182605281569132398935151916861894416662114501962827214411704941011475586737329732499378971644824629467346818671408822485569539101241098264144648308766947078198838440963625999329580131694264399553333230824772860638981347758607784813226414266898131576110305996272958004949341356774957606851211458931226655246372849571746620063110762571234232100047025117411212201315956948184288598165227885916730781278287113594861138497361455764105997247409641627272626487758605263027077817524248806184688282794608967941180954788900961072249800809842932003465724723577089000897798706664833494253969369723721909932630496425384818444568847160508766262264713364959178115123102996656283853488698631931303178745961140477224789801571412730564461900478814259730267220198309883381678553105618690482797048035419797286005617707797981787833716602940017823999291620915785673028402684082110406296616101909755516898377916083720621644988060182030653152605995098423058955205454565247022866402974846391711443014523086465470817154340484240592112261800289979278721913360667180575809425404319898277852799894784069663911024620887379124847521239650694176981125624816341411200944156187241816616182819871196154926894119626381366269846403481300041757246154797793661815496890883460982885532018110128874552590925839390910667346946987816516705555193414709541791216555380344617969337609126974724171156905174448305486556083846682012069577810017514839666164816164093601508901848129275462598988033706343375745688697106501441761478308587508358485750217747791489486951427586503637086262165863483408043426528920199967740085914881847108104953645869890916758410582245180657331017864682464241526394709873329432262644539121431167716312954339066172926253660690053916952156040428240314627625003760173199907738561406345061141333283999119612618262581210297159833469224618993014395171928172470071197581678063777932099745254468362760447469405020497709480764136321203885487249235477694680251081594326144135123736681086318742112938612878051825849095492877163150126815136627415703093836363624478881962338245124277494210153483733321569004808463698138037738284526363589360250165966465757799193599234123627760864877921550205044488158219560891225479307223383838793176824060499404785080914485072440749854166444353834699774614840132379985729992501945969280733945870854428964889674603250737491154818834690917987862931432693035867627801499068610392594720763965947207844840305806798181506547065317613291499572845236798083201639930373402052129595943331697088507950596648595217249415160884994956211943365897402786335444349904628801806535799655526303804804746616824045663669900264756386122850954652149198424694792975719512830630647622244794185067590357120976179884243585599852418270542211603099582113287499685128736334380501578367411296420741405137068402925609177690926593079026948727230147358773973711709418555357016348041699087426953639308096376573910413209076338285211029366616254129861261239718807608723830756906127017462016612192239922578249580582280116066120962387459885356854146830411069184846660651064667085348298239874294439871608194446292203219083001077527213033537475421489465291469374417253821508612733041393481956281292805322064779567054862292174343066386181857058201619962410855161993306779845755296499670244977446255643885373207683690217389384270297532061867262412863002227801900291026041843987314546374784442957568262095072875670344022763758232679393554280502784950090902904513348915008172375439768623675902220775129130045102139095279714106455855564640781357975561637053823885107280436925057032156186828714713686899338279696572796321273808939615857416320151824280002747067486275792441828984096202995264287735296928707548501883010936726201104923822498825166428493600216554476051402375276493812461456450494138029927616122347595355863383085270330596573460830196710912595018234491397537036624909015235542104573302215939141147352279616224009616975627987404127139591919658135818333128214557955428906924324926290949256947415389328646188449060924302377584920790892266020907852231699649313178907912587689020505310089531256745788994091724922850902409897291383261794607831169466010520481813400270583109552167580737498795773191808323898133058690022340937146743654455997962874324191747827449769872353627040774920931031108646904964995762684593309253784268021021502496182763653002772964544135768606789868544605407694195106529758728703127122280095945387098965887782868269824898595071908015125932152614413275240880210645461179767211573958152400770593679286052096671162138493564545929877061439227400883801634108441232006822387061969754601025040218873471593430185508557417707572331550365817760052808148938394210320327459437508937928205829235228585703104183067482604464783863786228778366518027403135358250659095699958049233948454908747361275578923000326400598497339689178306810851170134048111730051123393715923236918526646177121404168598548930289626789019000417374010164197333295138923686750940917201513380557175800239748727562533209545470275315125462777150394852064063813836221928839736429098504373766208221583266105549077654320190551464804956842365940784294386600202170870442287872707666733394205714950825690492346057505642030400351275228462207581459667280806726097808108859930554984032918225506640574859060476419500096794553297943761640606519251195224118124019709498920140321386357257558035154668133308647230871665002846582908197707096859972958024964381329709071502409588692931184790234368190194680614917051400953957590452237157132441184680344050313478202241042524152472526204604279995047185620202684886237570889392510665309506814923399841288735709794136621640075278171001428833887746250479749163362858859225469175776892489018189857823199636081812168710053388976128446230511600472834244909819849693098512184794579562005017175401076431391050013261075770146474040938530386345526643614129560904426812512795675901309382858039825286396666364956643354866120820837135068100888730317776840035911300321792970948599066340926454298429168677371182736621510976367250027506669849908835126158334066630378978562560246455456693771486052189124441831837931314095185748725884111430978911417048970708454839076642554701140292062476238426280526564040934713430601384191316617329199724078306470979915907872827887013863823996986142150304967695188931634743884901931560278818184925970180019572379095022342308966572870576742460458997622469065686847864212126528559536722161410165160646315176639690135467721245133787899001591762293567374038037777150077220395768887291746205327155824774485417182789566406813894072318396021800279474054390240285324466576628408892850348659160280444126966596057585921040619077799322359253322870208582565725617169851613402475981042671804817188349975160998204347120132423050480733144886524302429719521977976388630656662393657987867709845701483853417130616188974021543600223456476421245504627452900867963258925785021829007685724808122508585218482592065243179895951641819585299144872896858089684838162158808766227967061822368801816130003043052613291543786173610109437166041540722582148808059548382659170032812491953474635619522105298589232213864316820444613107262626133967153178809600155914561069887885375829291463173191213762196360488961043072869452510068711260210445520352970173650991550700322322333948708945962245793235349292162758461728450635212252200288720981768025517275238490926875359174945661094251534159890862623612195150325604537542311157580795816020457701352431648804697637852982607718728952194163138821958431007295512565412305516205129573966179074485418601013735953445563196973255566992169907856384968681544351200759857434573290819886632741955045492992309725439874936941502683844249878387882528012936469536074098167504303312673358100621848349256064656427577307306588124391015261415754246166863904219360408780276179447342205830573962168171299093786713374548973589687342360860707787733068183015943668403090280825368946629969367080731683946421258269221603676760592052717452609787735571124793215835257109454954600984743683449905974200808703280621862888608845318283307973567718453860164901062400421197952432980049161342322058013457073472007149336350607664364549565634088994597781507872722044897333215016305075896182241279116149324278860547027848706079642483171785103387402462251317965018451885167385794182864720697708186795614785012616901171568693394591820385676721268837071272668253091583968212791467921073762454084884011782164602469347855765152084429089936042547107569714619764492967137243143877404656208616299914713007580141224006280521441628457318983022702027870321340387406860954097511891187271556268239334169327769818171318505061355296619602725270276382545373162524878577049473145374974620358084480043224761732645831175590081760014254503738372599500932813304559033780055721091844702400124570710847732774774373809602561984024329849600950047549196657167865180070142032669798827575633668379298380859752789715321040208677821465388656695996779504075708267351174708120508063189233654910555944911239503055586909572550995908914577586911176188971323505324350902709691294231693247042475533166694313824963199804762951010740336413653098594064758232907901700094399703190803361699570966216584359093510905387951818691097853381472353115654464229273617309489717610356504908919601532274200989026844572211225425741922984843160081833407671434183590996265475631577769165452952153613333261536203161316484418945879597497922509347416843279902388240876561768513663578830744138478224483807223248755024892645847869467820990174228949645350039679395761162514012674148355816970378457407790119718323868586393596843289796838988768816426711825699869074373489884510166752660708967989989777561178023086936693965256488629570983178708379370635763295046215712116128822208516522620955376520603638004561721230733994538215119528602490088666975419484900573473871191712550213004019312233037795395270627410719390133592606315323497393552192479789460887809472484798092405947139062826167296080420835733977563635381156122607034388284033568740036117285246908006490701171993459085409739910542728128624972402638436964712198656245307497521250724557634832161355612510854836374592868689493174588414526814664864218182475378636340854831254901345272339836283694009936852421732190918885654690478327820287064509582684071768399710854320860047007469980259931366888293970670675896527897927759029051198037564540746990865191683986121302452338874102281902027457485248274241711792616140264138112511707473098145505274349052091884178016575203396603594171634420198096378003126862481889338087991046318235405421365779519266712249314375874406331973829974434810672068962194964658210916033696458144832756594542324343972525620318749276734397550352404272220226702863875534920152414233922035328461166396014542679784644030028142892229040896397178331097383434281826919682901706748990686232339498153462679817480894309944892022272483384638661436733750896940492021299103176549711370646732626613350093715765346494008859385141474503812846352738654939282329916492989960809778751902960923221585570866752396998358266799275010750090879691608328776774510206591352961212214087465173954328175410192908431785648792867382706604171378902778883011194004677098602273759454980525427562199873332690928756350437312438770208807638306131791554390943261476308016252687534781187265978518066113279557934414451941966972050868444269417425497708335116318674110399550430587101834482592261026702553466204792072969746870347401316146955263052728631720692301509635912450227395197919810881593136684693099824513190051314177232083688384529590140293942993430887065005858000471896271771871637259202375949501615248231351152624232921750306173796246985017672775349942248324928686310632640715925341477482502737058361378454200082976038182263649276308409638630627468207866100079871710028688318370291892862794266174155912552586570133577795252488952251976941073755186188736313891803146595909673304795350316122576904171929078317664202459798718182573240501528607445678687662120244011396087887348360990228599823259133820670485876757915762255775988451349620077394991616420102489177622009598918756470258792981724188579316449564272385336944186549967739399669939678399009396265426444399600626416787926207597022592197835130952433899282424049511079497915636256008343836783699396811431729259013800212244355514446705396945560688902089198167664435253482592003535695917310509768968044548664374838879478862380653731126913855434665384330834125525757732366222268093971366074506478611136577306464139890613395028276325538233361401331595559250633724703060181572627494829957886190124084925276965440040430262201226503142032124541599390079933374081811440128234630857729375880165373802746248110452898597369436530372756214964837981182988442524760574056648953971043650337611981304301965629494903196938201792161369972335187750163109516668823496711793076377936836769854998144779461262690676876962977042985712652904516905742957227154743435848434924034490993917671964870335313802947739800525974101164845915814807044086159762186283648329824717449211799680339784155350239158666322038687888628194955293362226152637733303038686157185994139078765622996437142102237035104297173371456721829565539952458651573350635789895632567196477412376925665263937517423032351096289638376043465201267841771861071355132673951597687891258294419184458545394133824627781294913612125535062253379119543798932568231437015076857869632552572382542515446450425225296322210575698702138705458709748745221158747391515385350570908789341898139489749076808990431624516724755460783851851519137673747526135931508216549670851296262117103472949586795992701396511004954410339673519583552454663075762453811108923542884777802719537334714021706671453344089964462534154087366578822783242651049203302973513327282093743312718058669133853640320338479928079074709523251994209314724629358676130576547211101298699434390912437421947208532201847090338478045420979074567346300397821105489330024053819725770740443832562361821498499239652572770611334706734169145523396599209836428407970953679944181437928397303499377722172540016501636399366289314232713403924003193225385425090555063353446560647429001242877763709396162722605626902066010544565479148203957949275246150346092655764523408522675755160749174636706817157502575416609076191896068222670691981501917947249420822796820589304234029008579634053949260366966273154470518024921888910012412724769386043599427164158980213762137621124763750126728328258506299052731741117503003354383768630566951640952644293859265707852869855046237206496049578911079577800629425445736433155512159051603447250492543242336692405360091040239789136317695659594058966250505436362225982677519226105675560318584179739935749396707639691564808273494343738386223963063361539895040260554833156010732671294366092601863365708789369110679402797818484936998598163682663454135105584862668852019322764724471859298599173444398774145757720097948173884949010650589575525844109576102416565024981998380267971196332176822799011020903418119754805857484123621690717402395250410625259754734962649365666147051209386193510383982706054894922941533526524194082527966221161461420877607534074447763209211014053017864841102630185643780644350585015546968208559254782955464368241505993240519805512668815341985726893537113761464143578871399640185414428378696407068347977059883187043479985321720651110390885318166544371712833272289115277566354284491394453117512561863099406980054428609697377651225573131618353114685796224570079456954292191310313280423790674755718769979516290489545449914823947631473245765044981260204203461904381281696235321014304415159722313063943421348842474801282335847790265828860712875795912048888425038248876679183385085183435313607003602713309497551160584372722071888214341792881419203330057832101076909182227533065171622805398583676629739003449248484927583140865880504882108933104742294355841942801188917921107480019071963849082483116071491776921077114743547777652655133088742509648113112678387670000757091195284134443883317224201062606385508493033567792652181768928356602359461835736662851125385637093692803039880154126681796640037652038869715442422047195587586992589051346982541435661759640237319391876680070792082641099401923991529676754905796025893504666941695602553082071175627506066883270781812469615378925381302896766955544939217773951019522137932601126039478110398511201497432347367538259445802657440059525600866632385352201338723297350866714203600677907802998308215908288324181117744005739598446769096674804941231178628367897033402558764697201610713416787161399064117881786388322134005331376065520841457539943121191939277534511604094257358026432325479510819445396267622216740869936771691218366719702409539915401470908415501099852656214349569031821792560027936825210845737205416836272379248970694050159040760061389976392323944212715549548868443062307605419258038308491867167628485647309902598222407643846543606280314758088153403222189109345883795424424995373877502026214038392682919264758475337357285272879743693675715233814373344223605406700660518817668083249106100856245683841180697922713240900597074112187621856443170736579723178482662694014435076371402402541846140277164609829975772200755757544609096220685126599080278840140367517344724123988806549557520557599902602991257757723505772575486308010425812661433792988366652304641943034671171266338977393586113533584178871883818920772523284568902794681221472053244737826296016342936143933577670079002798091794793623318210568005043612930493017281359136408864738934281472536660618291711032524719714268346696955537333346163995293046570830621149871543716894785340212009343655917017073431615106704895297562665449674091691086396298229380020784605853246665615804436418583349589364332124887022918122025810016209684005717174897505067170736376257060758666339939041611093605295264096644726766543070799871314398572290683783664088489390690173184381583830330351720008781486403553763231150732766362427306215405518861813340520549516571531850239282997513768333446380185786912489971619976638539093497385582125361941584375865207739407489682912628211440899773948474145201715232707845888755245725304280908885080308848631725463559094113897431310093268019276351157958534790925199693239203895844134601920058312061229717852679790159211117814036903830540722141965661525980980016181536127302361024726696291355212947013539245187817593029286175659631762276704997290362703820020631563774668965060117735329504578259080734878223831647512202543060438455476291636859756287375575901293990827349771533503241437314443203769800802828551585156681527982011720684855659522374827719964892193219811705778230768415013193993375897370260697848929143329460252733179530433302559609242414268070781229502193358200592275763343553142382172238465612633549766120074395502542820604741765156134256867193504786222851199086047989944634982685988606768170865102321462595313748495139592690884620234970163676045618298580912260761508363175920969435211774878514208575726744095754027473275567141993006171528037036095213139913770537192036542255760106461294815287178057342810502341299162138638697396040762050460399163389213922968194110723718444387867557888968577401001661981230266490317768782562509762677185710038197332472515129061635278959548773010122868396899784179990065066783161126535824259810923633751741381203833422737068586727368800598585264101161268500959231629260956735653706202090269329656781674913045381163390466585403612675169299928670431997328199792902234273616385775387282846873020550024030250749185567948864766978089367195797593909254943711603619858728748682380965664847952105130295912503195152032881766933408081179472675787287059298908161040089298330801596880001562172249742022110045782594629072055305480118139598924181782258578532347425445652337342583248834231261715761044912818251391398501939752145194445218155030082726817320821213710749151562224254629272753020969139963839032761049308798042148690414783629923747136951105926142979288084136352214118964418757393471100670775078918815110856605513145000523597891996173346227707446521643104995810620431455800913038798398077334051122948418380685582266586146812342379420058862095675374498189145215954728121329313014195766749343169024221904639613116297712330075340222265292096949145892602464960303964183225699057242950785764495022101161280752010189272631551895555207038853437534210011250229520201038196295294331905866774861833199833647801076717790912052237869660940451112126288341736273961243455032385431139537220925156051561879130448196974998437025378234157232895730519151538043585504578011708332984369012369356843270654895506708089640043241473861329736635930709421203160672597796615117099744856214364408031393715411323260819260454061864316007196515152362286785210880388908510084976526686192219026830078251023789244854614303466601963108917143691193842999050155452384139381778176353307761752824930362676483004845341658009091496363138674294953536831100492082197894184103551689189182773055147048094524782941493302967437850808493401656181702674630810474761146097094458070305751910202632247267499214562794998288622884245651534534991645995187274367338606790495528151141991360863909359109006869323510659915543645191943759253983590076279833101855880404046331302024303855122793654421373996687339985920928533135801351367128385919996729854468297735691260995325037064672270765360111412064799754693980379963066268267563452626553978788365149048793769355359946235135744934541336279219497477325012194631949083464859068206216829354406562214979863364624240092482778651006762622007796736427184895824963771646559787251417526299981035415580589991833486673696901609048283108573225708096527978060815805037298164609890860956497210029176101942515052778866580240670862700016753242792479766369937982275613396357773756861320831535805648731046869686374284289329836434719211684031088682592461497338817198383150071259101430375558802552952485459813664983330421224414561076574559912711319879598892985721659391532914038937456091097952886150149761687125421633264143412975951915009653143675995226168261473477438790033119194739655350223559580808915617431459258520582670895078542272665836669448068346060923365972964175115689820081612601978878311220161600110513771886915743609130644592990101338643970562410623047468362740320498348285157405721269099047268043388755959955692409549568381450736761111981654783265460798740382997090196413701873061363529892663098800296858827821266618961883091817827648025794166330480059452021295193608200779322083792033728677255404703810745310963649190632097316679129786546552475850728401545983654156726514700749503134975366885404848356571926838649579882080665640129973947956919890214261174858264225158279531244661130008378122020872149620501478602632063917770382968771790969724533124734278644179414853762479459288671682122937871487092582467219176906030940956424103870196172499455080188790373238341564794178277897000304075481428608377789260015950866784566261617516957733590141259700003776082361914179535957963876366679852363283528915565787081790122754601643989662081191620149858708045990522134956489330540631910619184057434160969984370404386770594283595214048175659831119326060038606987752282159212617620422924849106136767380547081978468360490950449903207913838832253832921083170089613769072014365773339285979018753574187801038378575482838207064851984041888887624179621549242889853757302509522294343088835029108394463069328298619998353873352169524804895542212169393052803500494084508089111376325982104620932851474667488983195371485168450815504282552817077690212834730515802114033810367583918570117483628680136270442303347879550157904967865926691729645769125000810062191312347975523581100034573857938923151376184372491362064416217972135415691419811917102413188030176415025672659841959834593642621757394565803461968128519104738299692258767853025120952126099117630929154133780752433742194008686400684022846567674411086031483413660735635849535308701022580144679227223409895171141557347810352130831933859279200719535376700936469371245462663803042670870802380707238949406502826779577099590278170095255106787869725731042300535016410579304357841242704459312490968597782908391254702964824011900249669514744391481952461427461604197176930528115188761643218786831227580177566533764591904909377759362383558672908549859758885734622863909082715723412395431352381330975155556362994061316251444056043659487829536560723605554032440983285770481277672311472922730015200286840529834919800240131627256934383185487232730371798069290249443834890407768317326089113984127389787006124383006352236760175613462848232036145559489493576868222130551920319349457241088801224208668008932086213052613485509996219527059852062737894950040145582113884274045760182680482315289015480402386646418329470224157676370302484405292938540865458557381326280831851985407735782755819214652784995992397355414315499497263782289145725902932242205999789611959066668774281066411883966627718591868420433128136357925333388779661116658904650439004288272976544767762409396772034298901205547199670457687363786537764561229239963037161096233242286505667395336975301219208588132255964112288136989085840007602304244968663328024093694932725818972826897129157757782262249123190318209804573716581178460330460637629955689890471765739292095867282516998982095029805645962193343344744254299837366065222471985370827603435470836930634689686153886512396290638929710657255787365399603542139369950302118068977572097487577728286593318364939170502991262330508839237901889773954648782622335849280403419557768127710317210125070134427893920411423816102881664955293539127028105677861302738661825666819303303201417561217065309098466079790140262998508663702065712321013860589279428585033196756814504474709482087419513558080643216286263603540983863086643099399709747896739110858762934485426776124298044441458625383144815148421331972120446171548136127277033003041325709736255337667444720497795425196123125039565988443614233113232911681609590908387361210447758778885086007578826930364210892640392728853272052989107697329770344197551943992718486580510692526546366404818385521003777680213956173021968921107124696793261961446789099766794658124516223414695967679498048962480367106015433963343837040944134248230417471760863531414703590986872216748813231385978537121904533860728115028397970793475794338911544264072735389738939837497058088314314715252227211897836157885347095385061081303495166446539309435671469938754114629508532261162350457764952496681360287084732771440716720788925238213552771381974467530039481712968630265761409178694857287074650064132524091051029421038316453470135739692864853330340999676619759878272040285112698911219960246043101740625190903889274936987759900214528761213203750884379449537635203216519679453645104602178351036360998829844888696900874248875882274882415746183129468880711163298841239388220550088750341197849208189354107293011947975533931460199402568001975458543781274044273398109050320158492479770666249793038150754824356300886428012362246108786210543292838277678097743489187554247694381101078184297408739776294363530106846376739499922629159281526002928293803695086741325920702839654393214295673604097266063789693410733712582110076550385834288783020442509230084674985060428394282400731700564912303037649848075080560840846807417387715591786824901983558655788599686446369542310434145202353668430728482713485021806733950214885025378763001062449710171860338264906449150753655627511438866951957661384678016068650342509987879612168488886569242414104278001859274369400422964157879311922799121671928436303017337579890873418057392766367714958414140844380606676941389855756102291492690900820464858715716919382865233913066893550275726473996423441747479206036387604229641039632975745414214287403009780380916090559828885897443422426543245170110141677508178045460906799806703515128357146656061970428493244617762837535428972744589875609582475668209898662463968874123617849494366092471139814201667615977583518225297196141651214656064051852019822426689935391955891102790559243458792553619772213343654712706802954631767542520346686963088022523510039617720492274692769131222913477434397460528399960879575865089975694752329362961666839469239586922183599293392790144468891519439051784781854193611658214002809092270849432284856733518293120088083012787980206469431199264227123248107211148151072541778178091960456551629897871845350253302643698503618616928286562410796904880245550080139309990476252252170393993270121855639482048582381273573319828942219058912583219935216003775394446701314791715251129729957490383993486339158937190575426717119479815989472476804141281769153252799429385191265651370456537786734133933772039977928845133661169001237381152000820444760543526722305370751550365308751732215346567312890395306862378933377009154050914718364175716926436105478142695832583972396735607033454102897582936803262703252082808492564885060614594376282847043384279912301193806945159962700075909015907204727071858006788969866299124682153852817197544866072927016600174818541597869835468647764773331287722006344196361917457203642915931440641620291315702356936505268737719463576596520525102649680449286266096163322452211482728072546823001713818274325564061579699431560120798922786417529962349327851120930715099511217913176797961906222915915106603728409455680718630313713065279751082160208034659990560037593257364083186986551425369846731999466880492637802915954772985545423106140391492074628725122724661680981164283049004111077409666392486128901930637262043856227219954260323088760677462617311605663999848994924385685003088312669332356316421653927855487875280316866967936386084383496480785103668431133130323811186154622614068589709143980459616613611526759600194477017096439336837087158669573546386802797165417076076828555638716449368747837699635218757724488928168870385241725401109393973139739748130213707104269637102667226273780937172691709031269603757711475286240703381249959696050264140104377403460242109968042218663217022759331019466743589345729005450833543929368284987972675288137995379935528857288175107437827709295533409287917997919589930990961127294844192503571230227316301197260655809667086634193902878662801515093675807464360224455038760274320166963147273900915262869715463051400709891531082134563648228605104748848924055082109918093797111103367376534681526236473234203831084114738737522621389225822331904544428057951502969117284202110883041522877033342977688750851730438296686094719237394874532182851942562855511942613933978342727024877775250241774022914718960932649274990703847263927181507954241248536528177952233695199844219626486380004621562553502241272581025550140304685789348696120617972823970736747779481528102259116905649182695573693314275574396549091294333108211266664912908850934563493776895368791860550777706862773831033313778290966783421541221136486810748491511724614671847527646984363763968298571270213549138861692279101835377152513378627546987190283361431918196709180425267344491685961484809457362623939006577770248327417837357581837457265409244571176553672859253074884967966176619319037294698750847445859362532870030202436171938727269053785485344126340708466065291777677396562866298988532039785832519552458311388950961226645655431283203100562691397524915811421418039332820803347166337954078606057283579575783892166368789714896290345700001715569011092327090063651368878845875459375660913231128475731307983580000711313002791354475324753569588128327269687251562835352132835909621827530389031595669777279164439964081393734271108965583690176191164084248024903562067976830568593963882014843126166201197049402256296707212717676092182198945805189625125737827274504794896026737291947760287088059750701197296025383187802207830288575107967901308890730468681391036397852946586351939538600012718096474127723515649623408655807898605562551067410207048329079004863090984552157190522903636519627294709785577879830130896426038413530763673291213964914268933742610068991890292368266765708099139041316243492407779682328671582749599220839121177779636009866016100161865405033485998504542443872777790000270722411484632735898660414125112054235207861933279511223614431056069412204568938639956412976291611169478721747502630315968600660180435973621234499775009455521797051045943104756021896550342628937048211033862587781540434284989203076694637350941268703888272998505255035714429295718666048285159779597579832811015293750229973407981633933869130700663609140283228096547716102535065415434156471441483588311260289321801624479293302242717491249057104011776531258589547571482603832253527179364436301245744378423866327047208493801808923223291281561571357540288336934203717024321678042972667130773190993002798419896009490084649662463588368148164072566315094625979707583905522521084803878625175704453041818322308670667794458757938590025551496015702872042881554630409061430291906734294925091089141050747016572245460327622913690184191782696912753696507903587094091973374143627118353790388572041158754521208595341744514895918221789621918812668716306270185639106717025814985971622802501661461493962717684757554330640192978370981280854889530602165728186398775984676950622857835758991189187018163572527190787617915917964596122586976204018497590073590764924219860031187630524126808310085460621797112615369089905627142423454097663029651945630412579433447396945807424466016481678692385667094097167500296276864996089255065483549171070991572394288493842184726736157355267989991648176282976094197348726913785573717301523504949462800610884659477244918554897594997482788031825980607975833669307533583975527776111227530039050359548018832528729853457603885149618923781343341876252956971890114265783590606486811442924533116668005947139236228855273120706510564252423926057942472439052910459297059000562499035133948454075327146759652833311630099369024466681880366549090417013546780819225106227923305931101846863256667572064430522278757279583672580133359410014280733646410691961331178542424105237436780357669864810175473314785791601941116643698451429610474923256030791394447689889627092682618497015817413613360636662875435600988835705034114544618663804173325526606344603200325392603572453637005020098736330705955844706125998835408705018732465660000777606347851419618582634484176590403244508066284484001000831173408987744230856122606694736375175901141037126900282696805103351825491828088436130533235745685325220189063098863689948663442415657065889198990556864042726507649151064385553750008959164640113835238568799416381342546646918007529276804224412337292706716141701356958959527678178949327208224936323974277363192729283316538774052208085120837377628206648952870493426589573093886037687091378788809955853040800965594815983945326115039304407968784807021006738378254055609942250675314369575868732644053243092469066601417232654398222789669984433976102264615285553924452600116193956641760494447102002628261090355609978378852872448292318492466998232352305372909874941332919295207886963698968618484429575496081594040241998972214568574913591719939834304754977979804104272751069773749562199736193016886306758210684737015346421803333830589374541106200568189202616513975709927722384173514923921789608426640465632007065090833095297962893850090902231056658485554960693424651985252610039929198377499620535631250935640585411304067351218794907904098805199999897799997281785025615934681439544329333879080548124922707614492858630277943116823989284393087224933792075566770351772716670264604189041476610180021602181293156958673307507347026982444837221288357065797326606914322772650075370026783610315406266552663301875134053086434224832974849318538716227752073135380238533418812207132594147191310096275003833864299403423600805371320760673043666999855410216083740983947512966282735768508914522501344453173328863587862132651426473564301244593288763228903481595892644530467870996372668472406293002463010683652955098758237799207725971960255064698336621641403431574515128829882469876061360776438203576241397590594136821746720053667365339464558115664864459401167240294099146377482438554865959272407424543364369624179410985547080283968606685476140377054776839894373901132184065002520198002654761481267109144364244683005139068654206694933960463651773705789151093498213756298689719501879583115387813777329840279545518794909294185033230632329715376516136916277676088648040344614731964131017524472900151311161810831434010676554674044841724489343153159567456468134121612721139043513420290154210477003729988670544587643173226054491260783361480688649310216135403722242221858581487832915479780842523182708295313266573246388263795955628294528137592712641913251056110288641042463568419810633285589895297205010127425566942522723924479068346975743992783468495432244749540646473924158868506473988292728444430018250841837885065883601904759951243035810472190964438753948805316165711151245010804639512769440707778658040515430024083531227917889179641787688453346189123329539626801097244978616501167579452312741620161437078321185876592171564325760636739356827597100144594558847929943319595730278166955380071084450406437277464475817983602947617114825367404471898613791508188140846404965706890224897060915887469299524016045862719180402707321187237993531942397229533897111887787622623126760950789652850400812887329069704104672090896860690924954945442313844053089364439638973028872555622192296620991189568512431059034798790779225761740129033658408611074866287009302252574806227252333582466716241378158771067064076420094829755494181835398988897326897650803305136113932337932672762051793785141469471652094555541550780685907339883144408709362990579628683795072180185920035893865814534301290878646905641613140615216720797401074675238347725492731393837503469627449909466959431864454598955428042890735763338930572983289949419290290612641648773395387115410505700545945829642243176319105149423115311184980196880355660962840946781079416079414577440589110311193224873006152685831154217703042985927795564121104739643837053009373318547473442487031425915423992968829670221193924871770343608999358597917365096552393734131977247728366923600420268155980440540465951800171177151142966633788975098204330721123910148639675721261540632527072132877437983776802207045142006302895574715886666617638810986492103656089409873471836428383592636662105723668469720015079473317316850945715845297403110677989199215196986934002059375114027035382090364841346054830540193506713408182241344454113013888974360561562609695675356267242377142479069786282028569211468652458821473619562071881303553763705590341184145314210769632804014450567570000526026373426669712321972205547088573140669939512345143121687164760050512152124267065092213722531979026323626806873387204924298630260241755923840906552609711710017515892931324016958413600434483444266971378128922807289125654225022230490140203000108467362699390772778886635111854055046423079304222921861031938845685299297299711292717525768422084806800352873764397218599982257104193186156865124324879323204475690513675479102807482344047823979497323093025427815732696127739577807195801800254061398548377340597465055781705770337042449900569095276250554172669920437010008890353494386267238348429950112291776487628010361301049186309456586137060961325665759170529068226722925057458059984926751196335859889263892739742170904883083663534012017081345211624090899877182266432245906649854537079305179490608281595989620707162364259586658198714873004628352183206583962414708034231053791208993738092104268705053606345186824506920655034684745211995931558336043867260176961023633590196224743322189039816210460312353335282633826953317284600890407597511081431207484279046667703273342817177468675875475242784266928197637539503845372804505641696695030034137073570714446269841246715545143093003882254689137966177431735178112049063094643810886447033053176423598912236899672322464012166675276413524917509985165065789564734125312937896384204276451882389742536822865394960391054230832155139517493586364618452507557109426873371014862990121666830220259523289157429651875860988099754445048147619367932816863860676498969176992745079861542435516167761309681610886448680231436682547374307195760505399929164617871435806305150694708559991530431335911041991581532325337599631284425750976567828430809978006425424683300269307452719861365538573504435193472392409611027721976525916411958344258007274588210775710113402848591498420518490565149003012090582343751014565642575622818385699130050713896412289761205020350728483366996613735806389801479419906022582901114998550705474779441640205030534978530561173821508083744977862498113010730488245808086917537848723952865591964892262160370796581532435741718929983999251279097522066544498181646006789351627080487692034665704642343256182820812239988622011311525496431083607702083197771132892306068917988671694155049581185230088223871823073630531687638731581118656365181488590116686994925294263044695370930116063137398174760352420315388673851108411240071822132670941975062467774147152168996182988198432860289477260006241362888513404044691975401943399980786817328755847735971565531836944745178391107893506857831026294533242145872746594455673026062944192047024012998268225719204824515232906818530902245474487724286877802775639258183275461754838439768230478152785781565578128042907248460250649240224771072028984756383786680674173701828649415997574494696066400044930082083102088622838410042358446767592115576953139072808778781239352211809109772400308047431462667489574360718251822587800349880264020717687336790117112483768968665848978520984927099345413230848751480973396302311923188913737400671388132223389242348427771522017223846669343116195969749140416928006205169597628111299010882583753273310070390227218089025658408168408532080728160421790588860674916641323900474187392431339180284766380855787699055965699005435682336205320280715864568930431400748302445470798647318993839445034616780547559179232557161200922619759719786578562275242722650783948787183869817262405682930552540992602829465641984712484073949233066020916207822742179119608663138853995504962372855797710099470715815736489550679084336614114061451659100765258882098631498789406161780349381480294944635901980051153385858762285306013995303337971825409279458000304965498873882821498619681826695478730270564201633912624849079906509280848580600329572704075849060391217135488805212234899415670693359368874326284818318417850752555585705948368330844755214484827377495430106520308703963285294895593806452160276271049141818683955920263800739666212800001972072633987693623910312351955513764382638036146688364838066758033431734831220377216305259616119358826186332153108556200934731278524938744576709768580577888127910058995499869055506263577324272018613731170796957090684487003337487904561246371108549239742121751225660600169073597979107404486002799520857989004478278368525882450725335367574309978905808448247032823379876064809143544974675985876037417815255251159905264904312290653551290082834076905181809899312145690648688521372357283690381090361120689152998308639750984588267436950137214803866089292809882546895732297460518946464909864580085290418253882404737477735712099575743801393285173555027876975800591949759454222477384505087928087863233738674987392889645390658910380517865087797898766778365070148906117254360215818650020666875506120976989879495171864799962462580773399832739401272348686384355434156595557352361755673612549576337685581985212515618451200154962495843852896084137623607449443492368043239199253860087565506270754129192312419873075547589992069952763146582395760858716430084679282306369799527269255410751101440182733979937398170531815795956267929388153621425014851540746210857068591151631365806352191341637822130953839158221735344862491896645581710025297230649304715939422008809572831481939571005982438838504903365474447722844860740583241998844353081562097960412127712052775400451406082981294234767361298199063062061476306214506850694164002582862689506912956875034275583529465667203779484518888616977179774072639487247972754456938522445952051122328736084787313042157154427909460951126967192128031440546451565317533383933344386497713849896442990804361304483141363578349791425636890726527939280107114262240607047615575490358921592154419696523338174879915667523834638367098954627631473992469249014791538070317781888218608166734664572837679395672187708881705367874693072173897599970274748343344367500393305901996893795882211383061944167528633237298544357107621328558095066926855295934732980115638994834540259001303669968841998354710028992962666634215429327994531436403383645560578345305905112979468410837482464907508954347868465420957922118953194365344386972980897354368254857713992995427148653369980619075472335912635593771429079350389966941652268515546483445645961730246764106266539372135184711015107131434041348698881176047868753404776499314486212665247336279775102705311934192687265444168361977465159122007891391311416238825856533021242743080521995589187659112675179300583409436988091720224440070338994999590758116783610108254714191322571942992335435701029426298599551759679368933098776787177622587225675411558659348787814950992156466103868778282762085726456594819281434984593279358263458793555210976825151954195772188971884657907533731762653301581567627043178880367808322852793019195108438954480913703559627558807480490769873824619756981648947551421894908313782867715848675047716441938778760024562871307421280556470529657682288258326357585484114232027333216818305829178693625534917922185680304436989812415510547475506908187589017831390589020058803772646706950144501029256761328485583915389070467285418328040488645215478025119512964269012184450249297234770614783887089760969889674963701301748143824222265333764063693880415388625457086033105612297668503821181777609622134313641582852310556877389589510185481490461619345182134849167551838530760932390138248095368848898858885487062490048401393275605365645727526905031370019420648357997292966678779417960781616001034704026213744596073268414995450252034028156063947753107033976218933273940164915148278448741829176216355335392395787677582181186985785429105719303791341581610593860207692361845935034169966677761204341333226097151695871230284475350587209549988464940934389637697241553932036051382322277576188579618714661844535743237274267906876824319691680834410029404937627151018292900349644150712922304473281808593480509257510477109736976667692859407645248923670764256003484756561126554091035195299163902678078649830694316448129031036314286284823601264936513749785464782430637500693727868509941867796180488218142511799719172855662530543775808484467772557111087801247851480065882978828775856014096055193166763639299473360233612690115309750825559701937689880783245943171956491597006354714509747315571304556042833225831996443973263826841480824839371461800664611481251975369092631779135165928835730966740894007918326586538801270777807425803868011221559646100578046738779822096322604799126123921741799195016781583963996560474385105463442081039279867431006602550918139490402707125854460706671511487207835384146980352737266081880474026595157086190031790764745266124023050776615212853123611489025483607027698166625701158915987694424148773542047370894604810017270582260898986553120600195505569305081959016401860066364128959221051177370171704935764506454557448754642889417957708800159414633253999257775415586825945633846226479949986381123662644352702789580008258864340351835413350567633404200475829417442169954020259465594522937629066833414750344181566645005040404920796850984153493822823156128029601309603125380392133731502696841343107134106791589913591408601946846565730518658881470704333462581365598404101870838466895603268143675032427441365145765001797193719384974157291381364358258626293289616451143055613570459752642905248724272285765358816821020729956473330733911686811785548221696903496955309398809352018705273677148299019474313775394321050075625168523083193555303783733045284383043990505563585713101213520877964869268137932007432198372055808401902579540411617000725584378369235241931511701406978207116436808161457460495431527952368507988216353350897794278308453373791432877602946006670655927437343259405826561796797954799521304588540526217660105749204605831865558196816676256720130296771602533856965816551753554859350802392562897290388100193223393884464189888774081969682907754701170982038966279637664191831769144093294893781117449882587225142107745456132355549814290828910280971439686587105740974761270821393262001071233862304291913223825460864430004086503606732374447844540183146293255547519815413059815550578065741137743047617465211079611387624797354133814358166650089935964397083887026135393697608005716220622764414096941275197059106202672429974744367804026373066532876782232131147815111668844149104897686105417415256800546005126785753046560005848008335785112458434919106205866485269419786212328228109879980643183273214994933784376029613435109251310887151627445805851697611653087043337183573715063581454750274805517560275432701656229685540918663382889040723410875249429558007342559043384230869394639770267763580081808125552232503498961220410862207499067042941059590638073173949067405752065144767729544317702679994127084752759645138605592168787650694661431942700924053017126023636649811914434143588226287379620420325846382425251036189357627257384790214996576220422216768059789232541889775272649735575738273005389242190375646768632274759618020829505297368345850607575084573570823921683149274812679625585124302501727625284371603609758776713574590081341857199551357601629916094899383722593227945837458143553619782007185117810899194483698127442330992021725300528886216966215350619696832555140419133168394468376318245168775577800162091741223183016735468292358061549464772674421375734614534350825893882393343189738530760969360027744346956845850168814175393323613427165629912370447109682863958685470170431052718320823273775134458848626543105410155026580951241570937690001720079262315417084446484191075988857463882587949429094025362135621696069045842399015959155431456745920037669663863402110165185330869404383756761611511453783948670462596267638018757198534436905470726725734282594760327046278041540527383670824798947746097191134867898368228540134311032068804963179049084763634563834121952087452163865686701266486638411308661492158609784605649252721759606342810854904853439254848148707289920140023587759854512823893047623176130993833291853942371540104301282020029282857182457865128235529186099104980517336088550994901500158751825521920443546753477872108786898313739496318329468374539396011300778027865341094775959703568721771468300528439940861266094894930364502567845455507788544606768596953725648241775554217010337814344012666582546575366015120429308841460065974117723883824073486063798894373584417572180316947872961306229572712416600506022436377709335001193080111200774021893109117219529310807180243377303074887423829995511667483863525516203421048174474140714242662034667247071673753466557896350510231529017475236875613402207121446449574430568753689086462151439495390410932925834021018798099703016866837404604533277613244176837965654127072640725423541376356995085146603212499166126701913589582178299824971987867002709941978655500096226622229536169217050457037666179774522745172985379168019041113193310108339403601670901913058537626400401545672884391795660937113315067427866824670832392482340553829780283251877077681696497416793267010748941302485706693004802651301478561236388204423688411309124984734284234814265618724987615202130645497190063050538471906442195728376744161770382461486766522421602207106258335775489511466255998607453487758928088953861126225873845719592633315720659803654166065276332141934308414025014015443803413472562189880644546856920269083385777198650208116904982428528186073045324816240664459510291200289791617763215174316305711069805779701804735152657594341648106759530161092799881293449493198682077363206541096928792143084477490116071158154695119477240515710905177681411635159797750223964081094345467975852194298648571227426813127529447960859530749111951143899829146427308190780163192457473297459732116623231365541150360401929558056347998741520759554601785141713733659380730429692527610857457185614265175470750276833524984374410176223246544872634563508314384939819928567015788937304018584640514225702877290385182325402166484823888000629356799733977402532740565418383160236730014942125956487777234772525050129082559929642312216337792933894338157223768552911426869214398805952165521257747411204243962159964855826199716729763131973052520610704745590685208430784093797995258192137061706199946333144411319171276084892996148195841197232887373483767447734012612610801175055170023763336102792572613265092917047074463594399566929880487027639517392554851166393422412585795774427314432037267026315519459918064655043594513092418812158883105780837070661871654690975014213421065462034573037628581827950642214253212195010200412763679734400967157789435217869263783918359712369495873727695800039759555130676555227928432862537895203996141900857573377130743917330101543622491954567979398441125272004101325057578524104484058470381895053821792530532255489957560063922261518181191282422194384593958194896529894304766255482505305431967779810482575851189664916478842082913309870549132247978018393195299546461566832821300667425997226675660858086347605813684681989289924218084143031868668767828701264401046609349891161272733061672207292162396860927119582954133125010641730955553257972368329560017661729297011224483460836269766965334864273301454824083281917298050437709007676130866610066772885833235530532382800955159401379678167253885891858757029407555082854973579669338370855844949306110997141217340942074577928209273601493126639095113805772069806263660333066075352053740495454578439226451403436850652919673724105860668275687184005971472303417913509464347889196604626194549483341675251309957061758023653551580389754287052718454308673559158910978171940772400366087860940512577643203004022393469049770490443308953980416465101975936376882612735013551986947819875627219992090308831781017201764880194593586370360251421870925582092483231309074081874583946543236002281457122850109271283405695924252701478039937385676659376884521442993179856935689020851687054141219887318682903714905892055002206904453501731171163872156665670260035350085662248649122153062997232000372794953751114936740180999075867728945782797046260222374160077835413859488404899440304954651218684143455805037165963012096994999656966716541038637292021271874637087249284634139171775105366977552780878349981758154907953614938903957628486496485479119722357369534369171248155146070332703720676005319891364802118797429804331584571125474864772578658599678633294992492474268972343048659630755002466182910307179647689138467328661126983726978590618478079369019103649624075007230707060546682588682207064179098561174347478065613543709767642099677766526935430375307348788846030277363644151053605692153385971919348049080004546016801075845327463191619940569640244951723961020702651642927314786358028068943013627400223079872751030323632488559043171365672472068099232031494244051333597460221809861958978529210132162510742502668573521021407368342532686864505524672381337419388783474472768701545162804746969259957371657033539358178962344257734223531726081294045032937560580661266092945463343228777757632462091788624184483139326071686714276318103080256292329573108128562731315285011404033694627225947746228141809395902697217022699580098458948482023937793071835448174155577243988584991988585648546776718496709329163893821308243842228899269308265386707046347752555661814613383830841461559208723293196511275056336182579228249604211244711034309345014737712596148915569187877899644846803036589762117473968956904583711788709628103338780154578444165991618872590203209424970486349522895811442921501146629384230823447507726498567498601254697297758761614862370000044128157551503818930539924596010410152534311640040911470397317126596966780619240536445345307593667518210599412857606454575582144446373874312232367240412026239209586318960820735136997143180786681563477322523878059220123057544708931251062767815287293459978945838153273442595298276644913051866433031758533578980459200114897202750978268032936553931152540601711094023498159281344443259327828376373902450516070572794201852237701533033368475350112259781438798836620699797319882508697385321461455011477970826837031906256700584326153561973428042052060129678299640915854612655473388728756842807060078795079001244623824532624477380059442567595899554110969464934765750992330739808911819473420335407912691716348085350655325953953780402673962227674482340507984253284001172973475664166349999269968153835555687762227516079350328577762148045644534620107246533292976641598827383291023356324010336380951568978681666882642727400200504270130638805356239572652694520774230664995459378585141898246918689961281730261760693232623443237530376829081000830097713171278993435711042660872345047081327436123983398919214826210604701835824626345200796964488778242067103282839944417444095841834689851819130650222872482484884196449063562989924356895861182130865387807221315727268380536661469647168070481576067531560392935321383648716893079557854113272263092985431383292720259170967338484642371284785985216838553679954697990971301311903379023740249513117253138703278744489741313728740551808600805616656030477619557429953536685660836273071583242115580445753822445434575332850513397202180592841276917353258124055835246224028121957082012409021501073970688172937891305533266641475824354732264985483075338108427526907321424186252610276589576527687961397166613639073269903205573377106985989248572828431022240227914246943317492526771779111568684215302670709765366847233956742786483291510255612331392201823085116610671443751464916632924296525324213982579711544374122758305834167323911691573819423998132228569581753250417853648211984497479176455400395239796606975966556257779679331354782750525555975668323324569098749806420498858625987840976507095523367606257604482450760330404352492420984272813458642606438664952587714322364973450484141605898070710850271645574282173277686614392028033661579022915404390930149938110954394959424192527469692609076489112059873472530665696506214759472182297936284690758539100185715195543728595478485367065622941757251542348117634151508412878345359222783038801514389550378904251475091900927590430632356464413333932021353224015821119717709516997142606657087518350972642939878530597369502095418036843500483311374546674280134470485549625199927041244749569493714221070753742648141586558917162342990419786102762838869433824868377777063798055217888536255297223426565106959775874204527573933798314955202228751221879580364368721638131644406803380098192507281748380930590174222862824098289925214839111127797064672473908594276134282388899684687058645159887399325284951067845737019251338362083693684243850722870741627522858266557364506312905307395360119447461767513626316912673081244229256876317350179361945159114045959436921962778421856812886131446680332104173248460506425075191837142797686268868548501641355062853064371507132228760174909909967322748339666523496718181769915572961090454196435287208553644163932649716225292787758482898413218576739032295189608500288151563872463918695696931050618560600210745572857306175552495992261717435999596156305626146213031778561393906191065172064124092353367063655410047363108761697798863941547526846235564434518617152969268709677082026754606647672123447550115274241516311527559289040921028337963114524597515165615174408043449703847473206790377869443431917048896201805535376297342597622854477111731245242284469008073684879262065228572112932326772916202105873048773701009345767607239584733027986142101538184350377385493156381784286323260486341776194439147421906126238881590682809971673121760262148483246267198236223662603642248348355225363599005261587613059829875404419789454055923337065370413649437346344627908885902695612188396226942196557442060142463496125735300242838654988405095875380442946334562674883585262347590690482805166111023771651544490577664990305450052162904521905952702361246736953538650305367440132454652879443447996208380456253135413424467079332747932535867874775377918622526248776823888390750534729191073830612063065014890389687612506856444646133879854477929610941258664806323502516192954542203070817495118375648019038335651513354042815433683244182835595948210396413862579553129833873764641742045503663169865914822971433846950799234810227607452086131807312364830550678533174088178191188698187201940172549470395589870796236460324172567560679481345362607509984145761640189655909959421539082535557895125742344708055816678984552898579601031738205358864599284133339681985102842635160931831929431932995870533891034851014063626034933745322550868739712739888098544237917709587399501603530080190373949087568343672232560245656920691164523165477254604682135277378528679744298728177250413890396338853702886035171404870241821809548310520208368149579256026950692736496414337367447476845959652254007440962478451959256595532457490561629606599577673256616950991979876860609842758666147657341592379993841334877640143858410702190272900396636056266789671404742206834327189545924400483446882179482109317185036584593705961011074374264508878332310807980070658473763752553222629331939683571182570893741966680889356323687043910652661215724184095250021973812357174723244234610670363670196764004437594677467658852924272094089720854651804709896402229612931969806506029886547637717065489308487087008589731683709993246767792291012512402571003915590143006304253235386695546715793967911760957836855954213260302981190302365056679740902016766031581298518944392236504398271993415686578028039260604898134179818808725620532174467413040245329491924780617952664650298534545487128203209462773736748904520899244450530363172845823350588832492438263774609398550051638991325635926629195049339347816112554741010036798366907472794960244516872635600821939425026438401880807682985116863501098497722574003581603724865778681956592499236367033907190783864482371781812988380006768824640054351493535057875199560258595499417412701573262670358776302060878661795505548050794759940624168642864429861977065305092776013189034059877381129023594739301067890266002847550903589302035057401116341591528090778857950765584916996520317723695620391177449912754710078778963716929498965326880082998863472543430247648296145188515757980914823228570895681396469180032524387020455669474323641130203920872069737859595934859721642202056392420006702474208522967931136548205005847843203356264005658282020503776004342540498623505143857731391775903305120892828876509959746000717038659629653144597619550035494114867901266321047941184937347352412069714705806443362151989917223526348077755325419572928546629478054294752919541588327788838143945996424177506665710115625077934203025199867178278522955616490623405590085257751806193462476732243364766756222549330615270690007279866073303673133712264168846847197519567710460218896326717073907645674626323281861793555115421279808836873526147523992945080445235749074868337688114690287713863839780484599357488400586121139218643614487154014354848505456362021411711419436241568498454511852219450444764937812596513047966254348339572390142342303381456754241818623810127586892027995091418475672249781364978524191261472228478193835588751082154016318648525582092155879023517146514688041688163078466177133175392063813055753789298219732220444300786382968859302634547483283659466618260100895448946774217012621376225658141615748122288229591788422922729912352670250773368257961904653110771510539097886681810354943594462107682123639312438278999984656754200175483069349565225851290458795291607681140415404891961087864722483820468229281723420124656315795556191867884068342339954173466373160812008372083401882372125827303829024640789668804766246520483386492503473020400012529961691418057321869518250647787200553771690752683170785162665090717542509631367434059044387280504030030481219024315454725088385877609053714903218274302621766585099819028799744181835920442603793344145908944244811798310650117446177565194616501423510642693705602323451819017710045152119863096655896041833828364075304650392421622348324045774909071886485418751639001666930084909129870156557972307266899317297629952843827740069070716704080641116988185805172219523709259192617059895667461807085069378590752660197005757624921450833984486495428251116830485231635771275778699195803232405945182696397919291191908232673453189931849261198273563378093090515111028910982420388231683001680253297647751044456274872201239953453702888230284905692670073841683964394088409577328221393555362292235065506263079194625486407819753561465292007979103337208892109374340859953518608943709251632604191334492479549937109705931854580285860137698982080583153612177175971796038019391711769138607251196108855921721299757108257065883724943351921812704874866696123190584184693170052434521962390776923723251768409595936324333235240881172350704855079214005211631683395316218220032080353675391925510543368499775197299942980142273223768842417943506689542884972912212153942627065128356593071076830839337379591244185500395151985215778524339683287370954065944302445492849625615675126495986196103938803950988012634203126954395619195077750385791798807596911681148250953643520054078637573542887561490605958554993357615803719347976062507127436915968227898135991218049820550699552055470663579614366526232711604493944776107424165646702026323653625303577352571438741433405729156283162789033290062557472641405145926343893729455854254416381505542289290155089154294445365688175669551040383171531944599118096802894365880138197246528200984658903555292014188395570412140168179736362431810999229155823933089587574978971630453613667816703173742666049550387777044913632186828168122450970310740696099598243534666998180881768757228797344773082914753290316464357847273151144486043911282766293610062246496584164253795725439803734918945691311704189655956689844128020401100356173335393411921979085407595950579369190917080517880053422845544716566163707313363855232515710856789251988967587774943810457186111365501294490691575640521765438138998055566279843816566064331330728390584043935297581637311551974594502186498402642289578823157707144066833799408956215486451124106814373367120611942576915974026224000212231246803947168468357613429170457691400335610699133899223424490878857841409830008777253757826043927940442278424157166905833902311189207757780002233168311379386462135782375476481828991880737353656398489295512258142004008154872578724947292537178029714545558808628829022364533070546404452219281180288268177089567905037243947293533852067429450849896419609871292675272999024646554801542044500117967777289924714698725964684153002065616741199033157338843590090716522428068328893768412174657525753938576169754024454649351202959634176266205347438089013515342227828460164070795548860485114361230272863671897803667525572203863767884387711413599576617688655749402923018306266122539023978407268265053609114002631744754921415546527059102775940358047900870484140519592759823138914239611018131400738646686286874228538849133071605066013509750786344826669654649565938991365651418052700732735505416976997180003404179999888657300944001208925000927301123697092668965283587181934632419255328721078850031046731946007862470068592848290256225384373336697838818517954233955575796118114321349981919831857005615333601038715301831788720096850407786277040932980259731007596191911753288775878347622883708434980127045043488837460594377549834161884446559244480903595527301722347945881572631283800129400375598315351799845221193958753698064348234413138903111811166777735043243063053923269004672568475953379387643812912365977669448907763177869685530339272284117989433302230918841865149230434103764174596876811048779366210327027332261791814673100222119337438214561220715903327028856561691152782474721242831727238857620471367322744139102398624684791438892513703116739615549764364067002557254368182769630364239339947167824484026741794518270031362155388298200507590001155502157349458928984585279355344810249238709769702457963175395418997610872699186474318371815805016274397885615129664736758768410020290921600083819458983227828969802324481596635816988587760398955038097995401224631607489812218855614406505985350224572241003725631667970699818116370479690155855553479806685447045776887327440345886751564061079352370892256554405284220532968145838305469768698129802786733738747884119592441773197505209761532998819703549625350042202080270439554805704559279400737923174164125082066507386530549934243865987938815905628278643131406498438292879400871586138401807790440111743956319372306294460108773010177473419958259758739116464392630501213471875796101196802173675358596237063008827726978347417723160875322558509449562629563596478872548012214973151633457862501247862239299519624221421339665769589442825695258676402324536201122385476235588254641064836113729471317997298690216209736963480006271982346325595172186936526946226226566771843574117008222844042026792470756030051712951054244018935581704701233592845852150079603940616353198809347889296585575225274786693980460175502420255419617000115703851775704057688805201547601082284623378174653824376441465512592027735101516528745864774086004616742673135393477474950978129671270866564140337134220399876104192923213605310617564518775649635419516541746937152579853416964635622198071066502934987083296792546645648042815474641992751901132025108135208894582356460348499239120063098656075374389295003107844614486778812273176971202274325346673657771538808935146997750352465082883699401018125232624596162004794744858272196754916304597764460269522415459142974127641122549897113934348147540802372739903915907638530811173157500014076692792340621080400742919448249265734266945089313729705318129223689428003153297542908434684754570512765891031799165822945249164182091367401274683968372599311337228386699264821782754716222092937522420329045630344489449396421885600970622677459130151855534279982490843195648836068450364146447156595775709328477065582146418303426210415218693669266247192883340352483890173882411825271619750771705483677372527688746022599854832996957385268502909729469046194168299148365869193559464693221376709918031567091821886413669856544759944983610044254725156766402010023385295585653128437766249820306239960628960509617657404693375606879760601949796187494251394400444251267374523565830402571678527376768412562283197801912603888659067851213158468506695909291046986564089602442104020888017258809820354727721007613653357052806411896224386243202842759741062466323406159781843549918364492013983272057593001165096688102280306871329379275735641989384064594912465532742893109825210243178493505469925862790935935961464036916407104181832761369889100016899564720109916913565007309469379420980529231935250601477755247491147649716080522116662879264155247529307960284100750461719878542714656710396884769916786655111900458063089291252409329667435367100901973066918247619447667931562225981128483762466627632623677194119507909453462063715057135058112084726006499570814797925645521060296082280340678376941151130742860799439719515897020083761550179841247607542985711775369707241171410316373669503025849670158165706071725981773149534139971849593591360504096587520999375203913409466333548173141367319059340036401060549000973993415146811255097549854266436148075824809528510755424208682342577091642765478056462847797121144831242175390735454715678665035728266186910856914218686974305552476002330015271947257649941870014816724013480876928104302864937385135881963954568491569674446319616797261459118325355017277213954883246947873627569286908668010635586637362156271236711387928009154572488111559939436115396100819484587152255982480629146287438478734077283359131110778863215306877329914726732304576914194695890805262066732320948414867993851317043665769841004568463926295800451276629025229178761595051673947653423630302834386137155906991542184224537440714904698426404900331573436243544872058722513880398597064278728908139776732393012644101622346754081703345792271565980631661686569715091179315892580774903133094939730549215455765968033913515275793010448157551101237051882665087880885706852734942198441197582564906031797791154173496264785560116909406816226871984608910335956697343895364532970658812180666042961834315963378748745334107931667236311616561012528756256885558690343165472287482143838195701909918175686016910391639934598132884376030077602145274908092936313038841917114618229472584486228202036842308486360608773269757359025851303792463000444938823685434894769800330768833392610107317053888123675563827278486186993087778524529922850803387175107949192147743725542430908984920934667117449024596160299325147904277630953082849732696942164247470105904402095090008030155067450406781798113294637557934434540509541552828880850903616919497359135517254757375654579538415585102436251158024462698333562911949348673351521299192371532143608215977404162698731714467833270822327599534628631636521850069371036569465175735067015398852548517142913330311891892969736449863793875026733821649696704872043465873977327661278995256908586261416165396852781761886405363463271365069762303017843110342961086743704684708775747671757792515965391128775638343708952529305610174413254919285334691788931202837035083767517422997108833693993436561492048851725602127023057103003335261396141274136060144381617117045248452837764643106622215843089388431817819986798575787444884944899499812698418874333472930392742716227230996580861562210975230655846738945743752404183128182635061062372951983387294872272435333040872399355076989023773673019871063593036287330430107599402062844689999929607381209431539050451528403433162460334299390829560502548986714683779472597225004475510096835935102565867854754595548386117615665721377942361268772853856618671951205522962476422182285697760826484980508156160402022116025153250951939735655003342176474523882136915252791396793080633225985608054665744188400849643245547208855879700568705034460726161240653841166039674399397124558669897491856173570381799122676919194856619060003352229885891654245548234746730580491958368370250532837828892300783558760477428238366742328444155848671736787872630270239225540644279489087649997145380820608663737262953232861694232320820821889635998411582555699982289450575292225822179332836403363889320648791013676651644183090563924623805213380361843349938633922224101002005170096762692189308525038860112006421793372387882482011488855453620758928635505763642100544114336556940412612779160906039431589714454303652461851870093371547180498989381693745085696326851994738202255926566426801181051257401208164901239375872972024929316649543211008913514351426238224948104786828268554134908469000639785006515691297015812522523587617835809204653039080424114994386960634779091541809961625171756973832095837772690176386939884123694881634394541191262749832460539748153045997405435072740682033227888264005539668536251107859403059103895783032821238032254864045389599265748833078242073474128422560676128854698855475840770940005290363244436500390690668345859695756825276044124376024843771608888146222377587815034988211437441801194290671841047114776736449691413614207269309215259918649483898580571189280331376859882926466769186161000992835683042701980603073570948896835700032718947587919626674127375139876752647863653478084430919131137222326343190638880548853762604865912161770085078927030653869733831902917243270663255437309203853375443622347483903066893094634219968758737112036690434959556932797537269640721850142423863737708566057074630166314769713939960564911377735393339610972984504335776660976140496636701531508726452179709022153795950328756428550230642167368940680336804828573777251487115904277844881269050315989876678328067369574962915343420001890922660998898962098774547132641042377779265792814957555947632453717530536677913312155720435538508671728021058566005943057514791993140839485396778189810020389621960836499071533999204697897620829785818460566922762530736189767571322809768835869464165523340111732723019515057755735703808815179609270956508901993972599212765177259613331211672476399191122830639868105402436207748557860204717367542298385680124798205113505396589858644043462730231124650258038986464815146933522869642993316219246080056566403751145816183025732884418522288465785422989871601651588644339444312397871195151963296329224482481223308828128251630428655264085243167059942235738089632584477356593264905103612229868265999089202158029378820316401468078461781583931477293758298669105275333208964052267301160565279504722221106691573784758251535268390111718707409582427748886004055658106677340127833863339968199712091053512940323583119854875029304507940964685301149338335644466017544083084843167421310604117109775988804579572016152050756705459921173874450743492864038173400879882506209989797155885648240896155808348582978326957484240785108932913782840729676301172297232046582618233578670366512913415316089810121610314812928964602876732473973602659834235874595847601911506737788501659346214133706408593968038925271703490630473312334064162948907344017785701626496790314018314317385293812226240311684372734734474085960481011641262517407858967523256126382334181953142950807394221171123352327168448387869766226117078614193651404308375735310048165064830317688401329283434491993816406637165322622299310758130188770639370691146714531854343646237246370754594117038567944334563935754170041663300442881948041500331541897777076622601470384208826774763971853352214197328318358721085289108596371650374160588086788643358532380946345583825269833313551186778152016935832927960278737039687726423543498932842929235436293771421940740590719164417101112256020889701349084509394453424366995750926158749036580199110125492246707153009819016707971594311617213453550820878260214445237430155915407471729512105466421789093571243012169206346331806739673467441566095455497430385755493719924583449376436081395184317136189257660003303835279267239908316736009807315131792593703258523058835693229689279924842120151388888732788189384999714524895230030296532898343097078211036768963000519836966281731242150241106739764898635124568916627756297901906503127279841228738547279948650608407937178014129231500074565798377432572060196691274868311263986317754230980874041714027943510624371193502428179414414977911601512555232324181129717449255621773870835591856614020945729931400207264948160523143131992984821937149956430667651225259581766299070401948042922152285706271591529772846037657622519303833693149165690678542119860113510574783458612571696083550039665218217125835981758962071637428565683132308057250053028455885385539584523865428770858508287797371447872165483032569097854587547458926253667639135342474391485563991960454618778370077523604537580727424298547059426129355567283575975307149211002426209608136402756670352473471126996661134580906808145023515114871962329639546430169277337401073069767481626779977505396350675467860691656537863729746598167805273859279842465949024170702424687131444747821435504429152468194706947104031299629759631069655157144032705648600323601304932027345882928278562196731677250971324529465950754044457094059952687087721374708367585397806431543258471984696910137286949782578075764940658900082140199297591608292886186065718131974370273808956748964717829705184590834901927306517367314869012184698751807336146771960548249718675179769493398891452767818887500617364807676478255704678370966446437891830835862098005461396766885464227812817148088300372819952418066906422034787430473142710721440437220198939890223870888857026897208814354422519867253719636881199901106340969251832221442166329346605987191975437048285870108414669471814636709143485075058250177869747831072751709591221933089962637670352249943335980244120192901312500873480093441500881338340430544307412830750035196598200801219603521350794006561774097032811670578429860712093645252496196419138530255044865951493032474062876819232491169057745085705488164855727703799066277559936118260534076809984691605470676859063078635094948544973030177181173291566137006687818234722911893365765689075397083054885751641658688927407633170659400060899457738050972638007271328525708330123825796219822667332653998214760505776248871606196479840187232734772010172195891472372292509980351337368645723392307900485232963006121244621119835782042629199543911726533307845680522009612944532767131907491404248811973564943321991230122292890133228405065218738055643150946406564347835618185343704728521664359152851004657151212617583608819376620158915155885592020112142691049117403638804651662427859663237783153064268206031361305112639854229708313700837287549127052235701239255973209401304046672778123055223647491444337506849507535570343342270930679270387360741604050453556849867381578027516337086787328619926936950948644882695048689372642131591547853327262539645749165009435251980385583329535398118420617574914206318414531569489796879529720468551821400556080304764281084019736403389663985432331120910662435686995774035564335225792704929177338373650927156498222320341225771960235472100382048360321228764137434502853686428346982287188858862319652442134394866782525145603544458762523213704625808678462681432926968255667827696154508945092813519889489391092383237453477352207982409740448729314423826809168008495092582896832149718303594081228464138485243208267423292299679647049581219445300437685160731975135824687998805377879990710974583577511159069856321176845527909078396421888735711362606738620048475892746676060315111340926770839636938581741293849486942752727653408752916498021129429148333730201233892396065326328237072351076759628421670647712836011396775109359094375114699364623502452282002276916366127031929204609005494603538417999202997334886322207561512737721389683785341462249737569271822014464221511907358377246501921272102899383002472241556013503941365898468178948080439809703346638510534750238762787864792099991569949895171846106643157729662994361786501482757863140473834538267917639953134621032188837028946324360679119175376518276454066678044515545747765203230091979968703746548234073175429597364557745114028731835841633828071998017978983943366579698728485534732940234473421474315955624694113578982787973997260034177282083308521357289090722432076462395850636856304530120777025226137121898239037828125541702798026599195918859245060844721018189393033060553447510098204753461090095683572356792049967999522710696719174831254231710139900443998988573515618777552999834518655058930414138252649601913714537111785348973925941137750661691187446856921859360889210758689730734467067718947716609517540079098083211630227166326997206060154706221269005635922589688053845767525367304633080635574989352479937783183610550330748226536658482000245489822890988970699787288015005576691493182160645785258094999236596648593753830710016193720124939363525799953038900030951266116351667032632255900636706068823040957188762854800100656710391890046694372084821625458623227762795591295213268381011271909969392621243015732036722872210219968230144658664908686159564786754078201962810918906180208774248263615953838026857633173092603819050649798342061602568445516745036269465100519166564801038362516467374238596946038233994696582844936451987964008316665896261658831976106218107730128308798253633861143847490475416945725217241386725841538888659437575696527021171612766113507948176576517928367604289333316811484946997081645193198464403459357854603481539715788892711973546285646981816687691327502986555364215082031537439280725691591977681515396469639658140793475656164446753653771919447428632100044405199746153291560049584379706938012946549635249884324934635039833562689952687136509087384210606321847892219712428303886523300352817778961279251739754052021647064424761831942503230677271161506124650309736500484908918078994501318816901003242805597614483679594086517353414336657975404634434324880828289083401907995694124385905214430079650331165332656201569182979891848951627868880596960842075966436997556167483673612338157615090596345132660043920541662773688031310660171972432076222372962386757279438179111582472186360154101567463035338751802604554074977243697281960398248564626495106622524342873965670875838819145689056420422888330925953827240986100320067114616376759440698143318914529109456821997641415935778307513704973988579989586853340681573122463060952974677377474751585303488631627582655815391019028785888195852897657758917357831720072271506012996829584973801107888056836708036985479797980500736720749100683979383910950406657747140264506698511434785705661118772268290799907432937445666972188969453659319756431342757510566152309322972284496649697174355394050936048970093557408262256638885432446820598233256718994601720351691233217055522575798181196893357636581860012696811883454555453797776358220060764307934507971611693627876080197296309338217644583918332513428758956708056286903657087036803775165535086916754754886524789349697482141087868841725623330347368427639436210365635124337802207795447464649588790725667272867834560007453409779040673795222171850755531794428984475790063551316757028807362745365571887216181625371890103624981832823791656898649730417239870428065542828888530570204639728451323184949777813539623512159601236198842940421540885289449602683231129378699390197660689023267569622062791498490031971505316492254387875561420753420179909382367093298787107475859952100115652828948682447471409002013707321354682246873953775401641950370324244183964789678897669124314208885217771936175276714950165016869107574013231960728542799118063758922474192211002606436661468645088805999469223349484081759275438174581864015317747825384353949525633428247007502107747532989972159835546465370566482503315013168526272926193186102890723581899663227831677419175272420096850597135475139357582437102429165152921669221499850208431959882708803745215889675327069065666018745872472438079535640822881566012182750263430665532316133340423101032825396496312827370380818710457239591819819098880606954943613415418451472244174298596157719913497645530237300263286738894391160170916291761015521588136452504577241000493627427895700084232404588631027131407229834727923963694499429304525120430300847356974800837251478459121746846836297191236988148352167456905847327468728414209926248948928456211727739289677783165831657561427123500109820709099019214895142711572336642160689839528175220864663251796459232424642893956825527051882769715625016282991805169559371812668632574214032178419887459204494729585281820812603044124680139935658306698423031996887303792956670226311303114962441857826905050875014364044727105839343719451481819543985670935964414858319403360550295585283967637642415653633503323500311604133515575242597896358328947080985996725739737387618243412180730612849463493469204679021523991021448493019270840919856420069978099539683607831045200446567445007136695385352550091366018962583492808297249369687785575539535922838584673255744348626115669800729237681411552629521172944516618913472681064978884070214921203910056245944619394835038327995050835734595577909682326756578263642670996031199972306771397044031894950908553971599017684733093939328764526588379898798271951898587647522285707709030676492010751263904950140364649273550682321166982259704803748164335980915167731799056329385007367474013205314394763674952519971161760979219737569962406368472547487467633035736685858627524239143111872231157138868644314055113333208129408534625229680732961867931986189082577085096235801019485951567144978260323285649370480669134229537246802342603513121596685885248703459190489077128204375806597228361533282563872481755851571652772138930420506114066899709951092102773117416478832063995861638569261113925392119442000008659728377801006204275607667233543799665790749560030190534865869598123227019842245725475828367111643785350269465297451961057055627056515449590721908742491033023743558618673817137797917618326053943303411769077315030580642021513017929393902059287562130534163128738785488077900891886447385025332675962183717492862747599787582227990821823874626082157503205553002857192777007403276953117881146457799068360639047108996242724906790783533771287649308813474509362351609738382536054917760155379362954802472518284845407718481270010020483996303973387154604552881898647732390081556120237343782803080231677004217966309609708879529157215144930017157509446577163983078129494353971699323753467575167295646373974861169160400130480753554611427516498450272102882954355013093935009521793535730842094053598533477244992878563762123710991858133798989562262602358572287404219599661377918338306565953468774314302129978591534026509152941740981794106209058638781140359661713433981994603470694616246580592619000481707988226725772525954662874236496266601409497042541422350332976445097826616184475443122491596238077466223113415831654049140924923472595341049458311778305102568170548508620023086492964518257458217283016756361294045725986433667499270044723208189433488081768795530259141902069498569416467383929020832476012297328565121511595703173530360174099063308607823515980250801984784850175414718083851077074298335066447511060029797847547370716263094808711877633867499888240285893428416773189302873879103714895597350998589814006767429421611911662076756533555227357975212569839810081135015272801469788750061879756306010389129181657723149567847836900143349079224450554552993883874897163038141021132053906626136859015036526714340759637160855140471393420685270235721982554428403401768790110832569702763804860680913735116898234055145768596191106548972130479266998119636489097147242993832763189619014583240770526480192982748926158464740696159482087179029893655357548027957806278866470799368859462805708285138060635580575947841173926714555930522424593278862454541848679254860534725863887693025564408375847435747686197104161208682010871122376085220040142138467598395426023888323042068070958609247792688140196264791287600471894609478054585601814745298204014069626149087265032625258475553902846647553749747067304394507232009501129283364193507066801424774792805025099724107409892688587787485730075998135709411228459364027530343229323242155700870117977038718804125329435574810978446624160619002262469446259280867806143232815804372760010878195045519199373601844590790708326050911406469309262575952789350736335109685168919023368963920524260284122154229113323950217315525009567228446605157685108398969566298613214057516133358356610984912224098189141124288456923891585057865912909017168963455078451576650587712855620294844448021782752064810785203042721990915133087432971455255775314479721751012243698835116752849162944175382651330583042851476100786240751249884864641508766322339388788843705689747409565916720640651450883613467328135572339069515910575800349701904311838265384006190916941977101481830489244965303146328597843420127835515001644264602047199880939020576299171827189853073644681715343844641776971156984390279880495982872777821126646695849889252002768722540657600050208431826967414874079868367453632780672960503283687878915131532191969951937259888226589558515485406016546722158763127521699586202852923429219950818544826187104596364048206687783281256344641583016283526054341795828764659201265429556929364897974871461887762640163649171460536376727619969746318889995529162683300311503583467519747873835216882199543643204144763325489291149222605968670879810383019778680534556805322578232177448651042356075143571439631619803216921429704042660079986435411263640681661518690335800428428721253025432231534482726570182357101609825159897682924573792960561972754247165558135344959026038009555797609465546045545693630446982464299825984057325409639487040477178189220049969051687719648412202733973702970736018911818254701042033360836309418534272807581328046290043879961478229051801534367032083818821023120553993101682244437464611514424190146793852632953505382017917513172006645958704190656522949152736951813424323968882596327503104592669436133591644686127841894155376856076512036448393514129184531201685716874143621350533786601327063835380739744542685793179561953166387952879636918929431022604677209206055538547702959885723493941174239843717018485888976360567777840404818187901441880167650975090347256804626856901437774366883392069086679867673036124542641712515503017712878838240933339723120975435014618754238763051721552870095402654838451130413770385435943041247754964526036669190167697966861616774887801873624985222941030872265860233806157648124303330231494447984863870322318185846032414472213173421615993673336111956169297020946981432716283743119675002948717616028904354896349656606792466354615783206831150565584730087291742683924068173230705085939510036716317248459835344241471288829115644523320011339578785148780953258316707141294101898428675283694292948368592950884293381067407123035411197235178821396960336816298715814821567125447462024471694034871296571447004077180099061067882850189820691800500016211848235350464732149985017244086163946484649049544659722903254734018883172598296669492904767047129758784969507422842292392525629103481791949099636833952525030429764728765183981804328213649615528651211124181617611968818952808507051269009013372787013896790031409915814508727262741949913357037167629466865364765857663768053345473608860836893104589996830497596147786573842230825043395639395258104911627734704761021440516776499827975187525809089973307390494039306286431572999901887405516026950314575936983542189297294007285817005707138183040275346396052369262833274194505106177226066613468492599442721841165888912804413694084271100072569666633467754174978215169557930693600067902335208968140913415331881491279318414883079512113296261058279508605833786347946627122571886669965791942727563219049500631311715850875860482027764728521231543828549491366651274696724738749908823041364018410383474679302076493167496150663496316779662772207867408173708148232931455345292117639565460937653500836946963734027009453937134586762899300092753962184787854170623984382981295576905205984591214877431417599511111082837250118064605093007994032247356322363405681254085191339205878665815307310206862167697923985631431430273526976544190940095499922692519750357822746168376302887061225725046109414192477058687989828653075716294695731577383397820533231322291959528264143821618424025849460525932999163341894618945469222641861284580947486879621088064742623494065111684069306241190531295255741809734841168543272127114092345475477307047705385913402657228504666998924773491288368455647962409254829061583134695000507292214751134074445590256749682564589797326070146489832370577374151937114269594236014149254322730637938615369797257330971604935556058895146830932425848910186331094325984943647574636638136470003205591726009786733120791522166019259160495715552420478478496414953329588440112060813161926621041269078383603995499466802304797474027786647147433532010414018181856535522496322761316652155392399798447912361049672840240432738525926698753805657258214105412998457969042972483117508406887885438726765339712412650453144325434316673709718609820449325138132926111699299602890879581650925112428309048310945502211054254291737315107677625048881069669526057367305672345507298185083600576405074799272316265071042752116591934689206479612969430533723511746551338021452992577573448738499340376798857755316669384796799197274560481372097097504192239492518587759968827734220582632264226079279901499463787253668075104515265652500529927119023090002708742491769483261199292665692039235984750416430763496352594806144986564380333509394000476699055611038950079497837314905806570250415952598485124032115809982691035374787118308555804595914612631357499965940475616612998261804589717279345928021697679949901588499108115271571367729088404043240252729934642459619009860208656222646445437983963527241063844679284411789018587343169127632897964295296205061490932514851475981746936129843219759824531091497640850898512419818860892937563876680713706326297440797727402483484591146201542877180625699391038644292269036736852033023650211367098750466567057970105887212820776019047435792376707170545055907044552975955712512428868397937562000194796953525352480845635774642293820839865515629747581792071439921095399195677222991018846838569172638673564607216905704018177037281456909710247371314177660821741427023151830918085328355092285704455514225485261419011879673641233801630569902507415953361618021231382511842671134457794810126947083081009407633955733245658580193343821939325506489897777591407054019314968864293125066071007978664844409869365593547494104592825462494724695660485386105839619894768719092030415901920142134178953104165395439800467646671682906231244065803858895825497472786798096101971813594182558132936786573897304468147824806480508047290136436490994257271763377800330911888309724246031241583705999856332393791076973107721535667157966407617319125570881710273621560993062982830966509342828685044264571131681107618207412154190125969690734989513936748618989830752485589852328090122499842155742725227153143781695696941342917601642586218637457637355360344437028748846395456817343943923693959513170528969749965594402031126765218049037215738161486268689500770447379484699873605203715001675859202720393206840143207441765639911362507363292584221553384470399982484166833037327372874352695901721464865514160499930982372708419673087548512317024759224196945671831893184722795246660600982159875342626551964667033703119968381599643770079471380075773653018218938398946392348972695913592480950592336209165277845657883733181066456855434463094196746926642195953105648885111844344466943341396275434328678002240606344648296462497040164688203636370996623501366223662319295021974797016039776165123753171114329423594234316706533571186574628806154426095270562420871336907097998800687127723504728595119632970987468370572236017943093982097531926821669916916807397817475263597442078946298596469597704578159084855870169332539721749254244921191855254738964345367044656676972738775238991285099684636292179378611466811391836931145238698562000099467940268034446175935932883514808756503731978557903590261530244559928455317677489441729858785383043048925868545812275549667058995282433200744935305291573842069639514792999413999735359244946724048644580449677608161495199424037567508553176247045285335805627497767372086918915227987939623195758532138206409774976231116263971069146151834547083446461248131980287313790420872580297859435581158184948152050496081437399616340683315440691936961391786795741434365788505250752630681652262948444942119061849018307210858411011916197887985986727752786053698404409536571789875757983834477918491264216088296968525920630530972669908553017412886829034843033254177902338722202153754921923110062090803470401406685281164574345492945513090463652303682162077986721007322229224790307839444358780112700711284247031249794824981825097368741907916000453891811938140781009546932459003643095802159267805888470590777853290038075447717223547667459366071385863036981137327349881696213478654262393934718800613774704837440054266141271973469517452733568011904152073954641461957923517012453289733631151151270156544719002954149023490274589317700890336263883903602614632400462198241359649134710481133834049554827365620096723634410662320472293383289284408257476530395116194328150323296122304052950035138201694776982790955031642404677482578878646864250271666399410899134739065772383549705253747212353183912554607954274487658639088784429723763097254762560977849456919179899834638392894452402354072480342296897094125844982470520868407574589352538721779860172396712417847528007278736026366987558665031529767797831504076879095525614132965512069085402676146080079180093928654702478408707854891149394290331513665156213411423189055406711336556713920784911335694720086309365931761668826131842126095717376959272695121596780575244300336988055012277928088087518377949942613622714450997737765893188728250645383777746079071044721929059838131470960156145832464339671291605917301425931903457245910725278554661100851174681129640991763782771962814706151259680797275390859998276863562704984454587211294206883306671154255132924878029632955394796906096627480052676348275429427979450501879009399030024189862666726856002148757056314564079926012649043099782255553607817816607195331111798205402672411080769425326393984949500071428546108794241772868193646477753799753166470634097755019184336616275129782713400905593224728734287912651372053171557845147118025173809140898859374885158337363570785236661171684410601722000287444944135624277376052534545201081630946955756351651833571608822273527086759120221745390669360572137464465936324845703983040486198519869273165736544710872926969843194128959568612893416447740041881759203980637937788630961214884566994484091359591882415303131505226377985683941076803719452968700514785049119286841224674741354628918083512020280913498949067491896324341087944548454260347419400491467735038799031849507075847769866875708988189187831998847431136582186835053002588331218374427907996514543255609424079315523525081601441496909881896316877464490148739138455858718106809643005570103368710596498519796986524157713828023415075257043737425291822472081758737053973510162144130250089393700762573567700707532724875201366974555709082719413470345301612671751733012270712926405730114614929704870139884852417647907497103953172950339823783603452255071389916993004003771275330743468206694106448155925154864101768384048889567260148738932720244572094849847309550161824832853401826060981967882040636915493861466986415812935592200950630421503123523192846038480026022627965126693479402753008572771585161279220343986951064306357887634524697878541680626967452729100627822769912590951825127403171647112459908716075832079867415100218436982578430865255903570004787606020694794817648268857082251432048009227980620484297063372219775515103893357598478754040193500106268304713515945339029973407233179701616431813832544914768586531692386587920678456935042457462185402427166566555420529877804933997485996011166616369291701692815574729326488108049429196685942368190702999681654048254097954192719993013815416306407106791000787298940018647920304268386270475575243678616334130063383501271307131820097711309293376930691827281938277661292741023787121559697720368660533162108707628055300898010916636205173544791593213289068109690468346297339540863896809588947772091562615226677844012053786343726837861754175943902769943583835431787164013317770253691080718332249496905448036057295142452929985645111092682816351028742101057096296316785066132285713895427617763051375715866354667108261716249245843396995936732932064668066295320514954889702068978620535755051075725574756677866222769176927692335575272469431598827327241358852222899991590753340269958082113288446904099574343245749231699210535809698015672074408328328775205099988274009215353665044053492442081251953880369923966166684597461086537330907087221509379090890106230094796257008426221129877364305212407288331824635234833319428291919402470309901884094944875136515636538325293116359671518797967304272792544689867164176562696682411275553117148435746411676618418804128599841205467345302109165365641613352948085693308267916415820593840776535842017427836611487761400905331494716178259069469861206416848851084728999170920582101804096715819376434747520711779990468118831536369187960909064710625641486330046202789201282519701691544856976618891863977699257463248500792134569361981788876082807858817260399569434299672528184255687439741119420315565041070175160622215564844099299440268366259494704969081048869904730520837758887119237928368214825158070889092265188960690250656245413720686449154076660569651348166621677987044247755428079471950352734502461349930086104141123157516672003304843711053581355730111026274892094034164268249357634132485046307481114494329098677596091274008066916126965804886811470911360775562593586845984315048919346161004553839935707450082746370042225247567141871363012706155558972613757506784603901518541607829847096152260913370224524037561684527690197664924816955452767803752035403361496513875128312801467161468882391614574778905368369300857169424207050783118527361224141713534722076744360098543581403480795177200861271941258676220386378865614779887625810256111429948916434815209186148511900464249151797331686390487908994564745253789875180282188068420804178965537673967876228679015682908125864218007242501150586476285266868184185000457622387445291306188007870309271385053095584054054178082860432325461169550800056959167740607254413880406133323574920048772067747927307490392864880479324432296611305282135509466683378821171897718674424746360169721217683863858639495603972453451296679551431327248443224933020794321081707802839091802174640927403106735259807447480589144373915303719858612344536346608861381386447763442868279459380922791242420456446496477433111622920915952687897594934134093915151227028870690798297923698937636677304723610349153032431688966465309974408296083676507928040590516368975561437344475657216726797642940386999546406377056608329719470506269437314937738201677231776214871125384359115308711586573970894073400872745323488463578370591474505396242526500687581431859976089322331931178547669080460741443228955681770241940020874948183044864481200081501744949643883536835609855327164685598073382286653861085122489038445066519514373826334058009775185519322942490018256380207115931212394644402980051983267633641415326295103204250079004016397859595118728287621040758147627650255894442263458427496213649509770575811875850987073273830837423993619582673608591305991607877160167375943832809373054482040000482807499715413028648328139108667824724498881323189962481354060530332582522779911273339602085590372414514536921685781764002506639197664623431384212965469960852467918418088272651960701209786763399510624810306173896300237566730878692306480924177119257182083744579851690228473158504080173404575932825168564298893082784793995293629075839778779735859018649239293625110571450025120812333481011587857286359849252864128423475162661385386282494307830680665735234339236968318431006917353654583356805578454846189951031733704892651209298156788192169749846003234404351045115357632354449383281825588232489906010926238485111907764985381823571122489721856934617058914925783671342460111469350679755265006701395155926047269374958083998808935317031034573899821974517437594925183987536225370398724690513360625087059915623947194660332487573265816848303391784672672003510072549441553738494763831082273932117732366948568063826040343912715976254732636565733645168617134402604604492644209187762531598498253247391515885620701577580459775650666023651864288591941781635100968295820507620173378376763411793953506351014190371928200952038298161611944446031855977465821224515040419226729352663870662383110848515893631832121831783512688336187615851279517755374871818734480982393067456956358027398569293118701605035590294724758928715782137522149946965794928344572996756964322197059619706085460065126822091455681032373729276420528676107938337647443732430919367374707813487742851656732694481871441424212256318322378751374769123340432224804603395120608659349201710676247382933232690154042015130185916476053708903939054853105470219993551207934027599119625726390668921259033054846668021386447453090285649009512211902879462755684158236625480570079479920433069966220737971889166420026765477881427349183199036716960033123780299573980252467958862761783025329063219134359624575957765073228767167394559390181198549701435727486189947085433185100070567486626402839690238798270611602897102571011106764227782134282581343775605513843169522333693559110190725667177746486848225863034615234356710392591789958892640654042662675316997849391308941412769452168297061592150459484212238504933154469324726719531389640295777669365123926509463633024515270562221358138571253443458018932196800987970243472657417947578745674410651616639666649875540078974297417415235627617983830361853506530266825599340339928523594031708437680969748323226562017379287937295667308185518708611439597154744621068041491059294227896414035354135628988855691188547352748169948774438602552324215939666523216412795569812126840399368820119367481183048085684292652122100236740373364038915394424674343321026835899896609102623116248549337710798990185841374418970144362630206898235422201121102845535533806153469482373831786541317867553443352637558880390227128300868379820924556365206795280346466897183540822539309300259409067687182139377896048567071249312502679581444666708086986868667513509644181772627365391845550723077673322753841845044153161549014636904023862662789050603149249579709434062226513033920894936529877599145464372589349231675310872423288390117183430401996420874426246770872238995935697851551340160632341292268013876554760239961295460599622210531191668874016528716731386433605015230535709166538600556180125659512153354877061993524979051761461135254588416219543333509374310214892840761130956266220909674996543753691449408228652183324777426317264523725547220711738041710324360669616742745634016767774849539281154656340033679630515261304681892432088093678599267145028929776134658553021042410579687934060721116389229590522047626712868428523974697721552658331012454551799114276539405925929158948388987491439528518672070417276517486054294653621866799009835219217547069451609021781824857312236206382176537827914474933332188999263463518135062188023111181760073803858470748482935315031868089792971264491126363276155743718910070142308782184254716307098716719686736082887752739988878673876867103956857591243845644910607757320398433539553016186696461349732473116906344651058049177438990053976766192813650416766644971857754842590129594807992338994442382296084230816617579376031833525944188964834138768910299453344003815918771789000326967542416650357403272124628118142739003770011008428144189085744094228804456222257318160206546417253543101336884230099306891445096541823106265281943074613393604351109852705601193867973293939770838752130028614186412953624863313603294523527916313377439046759405226975015745912693896891600779519534283720095318051319497930524118576410752953433996591083477573008701033189219709896839886964767221469390248896492905985190699524283544128645221626989279960231201549506818947102912686310701254537187658935210822066910580034970724312337400336477065517111458890443748999883848562768075609665354798680107013063405089522988856182038590733614714095877977958592873978932550231668498114806033752283082789700213312331080620987735437425709666394731774867647688164350049698024363887958844591251204765732555506624901624987454433091661672979274947720087529182723313225565880287250402251403620684798205945759464166278849776168135281734045180931351614229383396701617473556869903968806980202536800726905539383067425356999987907952429777481647409339356474207307328536263303008523518079393351548295144862865541268290366674748829755104238615478043403850246937243202568399797263843617493826123578425334524087763871079630367515078600578109961552579304223971916189209222716074875926110734165205592751304311519571314145829484827518627034716511765030120384360304587053331964375486590462452119603052810785270622310676739208265273996526371607431491694007961258124141796122787241721751768913961644396283267560150818916841675093667035377567132833969605840213728415045967583521650599130534776537744646714291884095113103287764588446709100356031033455852592201388160120409184152248168159906312195869376862368166666235046497574640120315984819774975811598989711278268527987880737913844010079538294666391046115571928598180474692447815549509294978046155005276619964022103008493072642420192800274790414748747329890258392145224640419848694743474599341853036274655246417101974944713120675945990166666379131024297359091602696663677253668889623337337444433632216206026977514333867532496899814728964686492015066735080745452525888210596279705299971862896730581620803916544107586754287354696798105265662523763942613462909880547211422445455465724746464219097455919596105623238007148844242524387134354789873248033865256018338276838565797191234418005302805782479742046375935383083782254711357341925937387277475404299800687588376476647634941905944424076848322275098475418729593996610461768929949905210951367764974583765451547538553057563066713779876746367503975044040099538803162010454169937921563363671892991723527300115193955862015442827308561580076468076693666117056272350390223285921748455144706342422223183446009712309436233507362973142337303568545515117824747471534032335396854561668165078065090881276752756987891739560770574420663360900725567472220382218515000711999511151165376967038178424618164526902304125759748003569076624329122637549979987454288046922992539823499735980181857001539828816598964945198754679479652114331017014818992093683666468181218164010882377093337688921665235794751089338889876174329679365994553308789989814678937950975185269981575193694327153662876238990519380747708632655347251164979912004665543279740028961789860299014851485747150349974466601647428502054153591413618889929556902455945872237206943481530248559984279118684869404881700020246910947616242299635738146748332700182152623437983741912834777821370802258481521226309766802805031859324202385020867244941155931394513211667895626986055052338899420141155509389014733828748862062401235753469884865574933797816121605712561045473372301875601690585056674304329446524939839966264103782337422653558004390210929718382749509407336328534225600101042865517729303321544121265509198997851622977384819544099437165309101811817049448184837341012463809544199805571537372421176167148257226896086041001324831706172255458260464250499284273512948988249226268882924953437985302108078487081796950708128076247644047330921870128439745208565008769916306143774952266461988758946539694178796677026324729797378795859702861798743689370794607056518582113722246402891021997044762182110047889663910404459552659295827310185647655991726674343158168252992860251218293313325468200157029077746059832630604728448754792965514910039846764931818814376588898654724429762480241339926301050873152992337712504021744379913387153702311807745042965913630641610553994918217381046129059290957942399426303788915502637965671370908363868931567487250274312760466559135702663919901815431361121453315270319026923978648038988376610971023342771324721826720736367384431165485146017246531375222891856855427794769674331609345131894351677201019280016638549399651997484653224943108395581319634980002751301450281869392972594909196218350873362632994922669660449268937132492799957478901201168522435603302150842727138171878088183435057956131382425439766918588742382046441955840701766761537670566210161661810951432888386827633115178149076012066547771781483850382247190684426271291773699191830549210474545040011577142270697334927758848595883757087961126139756683360362554592432710001793525513839366519245016336009034227227060494839356974748246291209991532648736116808048206431236428125449012166155485690490175306477010825322423239851962923203334194992692931144527360972543789037693813517034614347817210307478542392792023478879948060827562718852585051680301309130511394959671878146731472548562806369128686374117510170596388704277751235220321825073478945337371106959009563525191070961540122038938059240151176455278985059794655377047747575579981784920988359206434666025916889244745889406898661362580538876344575640151048451956562405062896667826044211331949578911950291442838458990192410082735600348535353207899084767804261791700715635250917381363393949566975726698730973687719811358557917121043368570299647745495706302706452909623673953963823368988223841983787270368252550227949785266469276932425751105360325755676313277465960473880271099232481498405860027573527132093098257260290706383123580527562523098403853775504750528834390577868282417828449014870561673728206931152902683519961776058842009622005021319816803374908693362437449186713945651975111514743755317274574570691124669049325514118665096218562298229289064168633642288890027259086292986014759940929613900590070199177342164883544799457854485609642139291333424805235163624190845460981418392283798085157679812330624988941779656138632892075383717549420556600214575311808162355424141523156047004403251527081484799097635601564903124556935624609851446936286403016858403030332384609162378530423783279229634334761169554588203471756004937571178442381556392176874380002664616210424058469228201203013707244676551169808635619449488306927542499874765884315677764851974011904888006143141030955426015056839700717568753452235765236790502896585759435109090491971762884174506270275146699405509317080143412027983519900748450974715723441053186879690754327441652233770088569728843052586431426094247236586134588623555851749978153877220177956010800956145300104869104604738553111699374114204744390311153298116663358263486695679330221637094388389157695772005872045630089484889779255943216639537858688322608004897879116033665687209709094818210216642246469923149737783835753002544174703475787152398795374286614093006145284972159266030797549441515543397162731207592767529119544541833066036889877345603264673624001302193489243027437954966382093003591802151422119877024176252946919678223371826918326188025828583101805553065366877067546084128610576370466601455660032380815244353715344566619513341167143770251234196940369905210199158727995123540251784060977805732883118021733576770936881025270583829347128582851729597995536352529334214258531270728133275875616683594040545233813935410448468461655018351263286059235625399155315740528054673150861040081484014799624728212477399165875128409886874412998912594794211610601513710759744019174699008386904434163908818089241218197670023750748878000487387054917162508373341892131954852639942273140777023452978502238801922530001372607500372927081062268807255119718521861484858858330227861255960060862314313844944225333815892410350924244387948549385670124286522074429146678603254821812732923906755876164047823359659461039692253373316674709259828035567427320940590660823827330261540759476567193924685437599089066603055547813737409183270945451670308953228573755744828755876199033233013640988830290743606009152437062282686410256253352119080409794862967111732499861821631213274625987807743139129773052955878050642191358863201451976555499760487746682639088190573988188216697374722597749430857540581605904176037579262691373322327205236987123448652617144319066371398192886198803078250411153353513658809063361164503423972088062011554414057242401493474689844872749824562755531432814352206520264638861559828921129273859878208978538402042602054989027725827812847405984874822277831793842236152327565142635768216470163565423251897037221215405033249793122280562734907663349428957577760826499418365072027832033008438763138031374848345098985386430076827240967576604671842898673232476720772572362928240291716443352709758518002549560562187151512056566365403723610938747900546398017071377927765447023581561892196500765536592552334849372373602938706937989728993843064081917182561288074553125923679415700400562735697762681098630329852436731323408746341910364587175794233834954941982691955369616573292616626903721023926569598889133244933631853815982650411789443715784564301526477465086829970636220654362487797653006076692781454074912854579695555380667092086594599741748108618667634034330446984186374704835866509957649955386913090019068681359673617284200351910140314806055872864800789533945304096866989150784791857278363863914075850461755693073856020751509429639247642862313258365792121352939505460488632858800420427376319248449601633793169040403099473196316358852160759837828035403406900101286743589503015073768981119738558262002808818231222706111085190609559654366628507040321169407140037673658698863802697304651108126543100263904551683428164431899510081519011420018525506000177665650767409878306167867281090952919810318451440000107831818885204678601663814215383878363278123978497998862841799961219519156190848748146572695755376484531942954633678571712814806906383603937946940536118569772267714814391109778969092861185704903898385590445915497247430551228948928151259099152454188968558382521856619271746762622384831591313829731475539249878251914062894837456260336068489492823604172427721173342018855179484870935494240794157285030310750074191154289956732954792610678746911796607386106242071535259816960343580763783496220324237479891454065490700973987562471026545422765777597492650347780833874504110304905517439507438942501708480517017824563732098600684237501745271440571837244172894398214587861800058838536779347918865236922794468783072029429984210322298763376905815871323454766016638192671754192176700036852341135608449574343403880190929754779346437731457694876030542934095690197677326676808725513201716175887566242675136896554643569890644359517269172617773945031660029799213792377950981494838569289865807418881616800503136928464091117759258265065571738036239729966527275250299959280820565110375285279333923543881405593261570776147699811873447599690398880908437164718148295825090554520608050322850460405033026974503321026341821641441718936958441031278429737699657470747798322432282830325449164718691063034992027345347348149705493832287525536654036209858531028222987406236725956805784008164132681481687769537463995979206342046160522512038864380777864929310638677754627199978467241612817342845208631338090632638465785193141708971720899424752432604411898871880529630525026426016374549112009691497911940726035215661640048887869370405586323656236876909863877866365519060641483898982337655535838600013164902055416356334039562814355896171432222694027339327133803746544685193772906368743716406793207559704520086014914025239066517756871012553135205938601029676154014269403484365339561905490604194628854395591830028438058668894592049762959919261874106422062016539796544390982254024485664058643071775628525951213691086431658025189728279799892969806638853896366347914789826130020001714404575540998248894997971098320410525936773505790074644499682055415736299132194351736251746620621759753583338957435427702416217514905210931832444703711983651817886610206645361988913805816001305831317055926967862450965713729511651805292019001475277001702979142185650647712236927321528989297350118733577337041490530614464616484055937562620688317735091263362461703164163298579613687937146196045715262308826574537136354307843191139879930600976209549183424225810462576425334705911591671817671008604847153476377326522281023769632024109794119912762747006974022802482498757035832910792003485593802077111058494398698919421775509313916819982555845999744986916467740136226651797383350157585615856638191363129736222780780392499505789453528811509652517868948238878822465553282966345934950421829021862230087694526315457399281150515490301408215579059846360848894262746363482576346275434253442042682514255976511349848898291490849295463954507073253326406764980137447232401140000700447519378568332195155936256439197848683597815599977480560141847682457638358206253354647229151384613028497339210010151317217842773711908073095911720229212297913381884666531845569949076241641014024371685137080011463178329209234089461062895863041387065899530534052405069387683381693657232286305815085807315721120549537944713041215556650318796229573138312947292525350921498018078834501225072770211750520393038266500285236069996265093560740756747577733591606568707374925544412832514803735629168961286075368127411862828692302332790454636230959688276320971053823496449502637486548586725957060389530116180182359986995927946475890633472149307131850299490865185675917520442188725990588929945235093037395099528528359136695259702942144861193780797308827891711763981436913225870659504553962684258528757748084550619638630709364802510328286124715718107991676250884072925619302381437340460026030442006358550747845954562570690489428557894911477623280299280500640939529357520949856130285781780336857695946726753140213715982204496961090932316091449861985967951758504835524058578924002223208933350717992993327465830096073398163757493396330843674913301926257143591610413412814554735462888013317884232815551385993780261612941773486256574575591030504280871867752516750054535050167496467377647485306986575078822730173902656728499079988313154649346376675724166201975383197381894931841309916732620532373438185852719225476884162068398986425162739063700965313980977230833838280475997839271290473334177515924113789538437979861077946391112275894237896892251409782546327531193487909725657094126724070846541787721458019345968843765629888618975910546583156509576536578972100306477493878425534400992520216916556893042625024392691804218988693158326588720973390032773251950132068229210528599488714020928268690963155465749931537606737450427380246788317074288808282362699376613876236831828173997835869681476535529592171292581504369563823887789848786972559622773612513020606782390260844962808516926674646755033339897500362126215988678035654103127015871688721871744634324473772322675828927112309504600871134848410624531604834569484847315170191725297026385355836165288613656255089283658389659568353049739240648320605165415860493291308865573971010912185497695465706012930351989647335635367783753015645875711887137893467875550885212998907821957507988562278684242931142565530186481675184019559362183825197144528864586880033861503052136614916204204147675337106863009262309854006917503374267772728373897581354375204707047636402465722047125095657765788209320177723879641192625293481305384447976381015208067762811057839504008123846210286390950586271662941324470800999931846431947788703520214856257849856460804249122631197534167091981447070098941971037144026196664953884083404246504311438627852355131021994638602944835142797433261213356128544061745195463081201389397374110240855709979077571805164366195338520086014226425671250321725331110226745497841063993190080707705910017916856241905815553361874074381773311790781733841949760476154864997727949768108809494234846225812747538378714512607582621505002795366992416269130790395524732274138481333460879115512717212200793713389579604671902562725816974487197825544730733041971307296910106396410931606123266460732598752073100801150144020063927185279184324542526411550258999919771984416716494628270526304881301406075737802124238152209376625169893953335455338267311614545476288120202176933014548199115850620480068778983241480625778167117840132524415845411724758400795993327901360534422512330837171109572089302479591919595475336840817659342308691337054547926857287423224535940272884971295602258056204739552603961463591119428281621646599302814070382097550410431033095559035059343708379412146759878414467156805121899525345839479265581320924379683326113646054609859110659147201630806801043308665461052543317966149145041188585136495354171417723692442123722781686967468626273609650293608563443265007050936011908483008141426805090188267362973649654673466178819971402140423478105937098267413765356526094325396378610089557649052510306884454616156021678050335743004417548541236548802846466482687090968682060845603150964639435018994584540468422404090205320116708592593733734275147527083058921731218846268911986728994399973217148794864991102786323218010762208518785347418071049737017692413165502103348150446709187010348055199663205599709191400441553411323636414271561843637373781107442006415621351759577271029174818198908353003298726352439395844447113986445302904142850001721454349530683478221244877993687246881607247044684071410678729528178140525006135464162286609415443703530800905578978067116958214672264161021743985385449951586904256789625030351368706102181013790178343294140491559113928616790345216009280003903598096455064834773655322494019378085198510587767105056598898934414312773424674597227224850811567020225873046504780389038184553969892312503369350755505322931075029832052261011650927311307871316069094028351143513522890857498132321388053339878344441597395182778226835919546755635431675797976723616831037759845549548911474022484824594866356870671620037455652308899674380830958643469829998367969951588166413813771815787233375217708613731143312434085152620912376218432677494319069094901562389152910464798855513354369241393348140858605485706371679341281747739375075041956813951134044248817016287593072871423977799557325751616298506222982772704035954803161311306954971341444235747148540064736239960264504163327642825656005082262155407574745159143990321119278472239222245403378638658339914312358767606208960591936721408426165391213742741371658875907668954048622585373529753448168510667322861439346847045282520165087538827675514116306222105711763999510536905803142011891633116814524908866217596053446588808362687950478151454378917528958215740881934975748223701612413280533500983639721941283907938872149219821430655798289299302052438567582439929226778853940037917636977729164242017553395024415126741113308286340111460549384650965181611993919529900928874665086791634678593348083134285119868140656731253873743024324865629925645602087085097286329892667658299554805219081585224844036506429279532394303145558785765033560054060904360691333755493653389394549783192454917499847367256357205998274673933983680866914691042431883377040494808460964456546016331045674806795726394302117506349648804365393777133467243656333431709117291242563045851397657937549020404127567512609857622461887013695885917492089146923526229483754325675613271400610121903926093686873132315003608924551401843642390862724050468037230470266376630657771713049516961624348770338972688597094727770579213812433933256121645712601048231032117573027913518440839220470697105220943343574397986173730163620821366250930985287601586994754971600350569558999626218438345689085235885212824234325805185053790707861839587872264329529140296139661044250327829294633274190886422970088255621466439517837930074193704320727203245322110384754518382792860558041888731519645750432640326931961342901068420945215502798059517773423903238925878004380350254015720850931243105493986998372244583786345773464078057617711225485023377419040889303412431549010752031899221754305161995259188728493672383097660467759721872564481129495679714983845968338332796807602129540994981825142351290077829942738623456236733381108925352906641513711130765048437885005234134717620447661516251506898598782276694840059140133931799948520099053350296295502604883447238243166605802259258702718548488050108309582858305469783618892197015415518306875266427493612046512318971808652180382601585603107860819067020330943947415571132694147235140413588148630315447828601697737763026266106944988270681974875112476353310088748489479312467500251346628361458614011209620618754274890551942919257694062802646337100585576881875686153057012955481396519856277134733620122367892628796199892309265872119636137388173485417588935662035496401829438250374811809440498467173953721120587313779522357567957037964686113767346676409367635333293746599268223724548130432012282572115082417780189857394144235251535624260859849179980870182606456380132083717057442025044964469183926412588422597474734178688257439379740434868524917224981934896462448102115856362931246242912411478677154716439668811650752204047950289086472414506753940292350687511941192133447900551806168588849967650244025360559818956938252272592190895719682716062897694476710174034301111063012922895555747146340806648607540408776573702673343892832543600841723897961235136412829077808448949886247457104011040633967823391460851666696352822203957650665745297785453204072055485854393160726873940000871314291059571866560570957882373098842851437574812121312821665092977634078118500562337253913418121485964817861432568225239706896216896936960635972305888374262727402019041856070005025932971547875851508476505625339030403102011127047205429276015633085763964088012077647856566561162471361071550554683694303638764644911309149256271678419854285795862518998474888955707209532075180089376956220294480864126639589562374523618519451851437049248522487875180906406785304833733870408928501719120681218028755933306198484532985575752911977063133603022231397779900631985972296521596859870342075663402612982900449243114316454393754793252196856913306620884572906266648560525143616426267837257165378348339656784178771975555215662802876064783413643058226381270853935094475082342708531845630311595178843263580206850481266363932744928272650572616425770457786591716714226990412103918967104572247594134183568263209565153030078558351102873024154053188039327563038302585276015302396371392144176654472728040219200617084098153827477006642631777481930155102484479444364171240628044843646610720381569533077066293972406146613689868699736787792055088504390027743050254328291598460681338844273796864496957304611054001247611527023402773222411425556493673022880490840174844219123228401536453086430364616699973256899188008901900512037821208708464066805656579887581058441362589305063977337613074569289740077872265544090921964372258817626900482434155242933446850043819303551754664052216265166409530120994575443258088032308235511088751422143524014556356792247186344423938390236693241054155456486265406280941331168179092027949191407527833429212997414751650001394715175390292282945547939659317202156597800108206518137163337565998566972009598770366023440560172861706776822523905481712173970149164874051693321773710824060747710477711347854181754559376186556048038828415002095715131252249629252788557881702233551250750207018839447394243183115148072385095829847086545971708514766021020169377552079032484935212557694393021719027886136364367926111497965161106225279551943405062320173758841327929417460852775868847170574730592181148185226242042293317240458673866561680750593702972137022858404166990025988695918846264861761397337455665446737294629087158297063983428146054101071929123856145358280662221695863981180979008843501229053744062628471033573813643022734879322010492178024351640595394974095607804169811746189857615418051966100282611830733763789865446646550666663221879119811166008983572566834958293228876260191105688677835359329973709589032978503960385348514070516972119010984577770971173386711946832350237675700227787357381386251468638552905445022100354965256470965119358217267635992865720785111618759265722020526937852251831641922991399624558312990803527999912865175617924051585106051365809042522797468872788231755581173249861074240838795154373572815387720785748634971352029699374788680522545704250829329253781640101266470868000417364627067376242083309805038831257909195071814239772632535710647267784827109816040554140670561013157863515109056942312762634647393669258717105764657867934125882095933155987796345701685624413099333741881728349472701088721686248613094959583927465680992904733608621197800278859863846874771026531282444039977749487885387971327835529030209452950172391469012886503790442370939418129097200170472412511225179865311427956735684737899629318938388895285928617503193300099639400650111869297271163040746453065354914865424764329804109242960534612082316567648564227983084705992472753058423431545988766087675244067785176082303702370159099800644703883201337141176995924637663656862510420884601478970010666125687922943779242072224808239296727573689955636547961881353734872162822882855418629696186636386218132101739784504091264445882023120917855865684836620392523953153409970419925828008875702545355544889557705719953159424311635995491956649093784441793939788109362403868163026944793258114566438802614034407751237805585708247482261916970695275649754931460892112016449619286011993734381534767063735384812325297464889632759439026565596101827193433628241758488610531934951605114232691235182930047268422542181524502990329865759480234972671711376302905349554313349124713836199288405779948724391505761838898626448536666832783110386266306268837314748196180451040652318052486149804257156338188634192063910648801417238669963159727949844398293867302745769647704629631566824260697451417558143172096117448234762746173608010272396176388191413461919256391581508306961643359216559435081819739507288359948500077390806792915841739495939305535389282635382767142938569638450193450910894933414559064690057020838466742919492675198958320702723847380351724966139948609042885552225020909322429089286523238572829694031296229930168690269224589180339858700589663034048387887257380931873726730231140013060165327436933789700303980840856737261751627900821393086661638340565066180536559754205691878245708574327664068499776268299526807004332310910359936814528764988759791839047065479926581316490377419043401931530354990668191566262934915162893234513417850730347445821683210089673825139602844310759616424496716327240332643956317943362368102879617037382249175637686723520586610764043145947301916950452602783670345972252954564887618391974659022188907437424619394779861555197380648452016526584357587966329570510506209512365066187990150648767982502505960781977056294127739445899283882142965341658908648358064006852404745475323570760961155641345882407791856539123726391076220563643658291549785579828367489559620824984930914376258369563245724471345805517996059762778485476863580773709731017221646882182497075717155676781370579165620900253589973552008590163844933335978601944723158662142453526210201453265001378496014422493328180968884710936952261246132774536174954229027047552261511639747031496754364661485789928721133760463644897412292387129071198072906763665086809645681406947987930609283542155614976377039154652463449328784154916053367871194285147574336972670805967387214505921312021642897423270975653526172581652571028418289157000883837807820262561486219718329439112103466780577043966967999975477286258358830850226130184130480506687053470216217309961008199494113796341910837713413443596199896008653503095477556850306933163798620965256837038652568434761018951459581952365087465696858961253272835189428111730218615146780688123578949645178980141928162071350541553066785724146592187936118862376748648098999018602339479366197549494743876816719107010289927825928140643189620114520537235752042095229237069886203423352710331424927389682501375032014250154953937376085993370097655008391985227686382219766199015540884913026728653994119316194976117290270921170656979744316433318342898966531374944458753230854256965099774791440012551426560518334188533382828811583049005048911386033945838399143017491341540786107676830530557801849043651234755100826561599777639361397036303986852175998809281541512243568543167884838706051737445286272528618509565698219577073654505719894996105852783835633716609990118097243393046273235492675925111452699247419235069421388845476632131884394592161123407189155060138664085874764742197457457500448090485709181662684885574190381201132484041110747496683814758641399685022818333887300976777930167400689745457835691417922049029185693756209857486120116451496385179332625154829739960645829958202662114066994061158664983686670219184413245218205222698268668109235957609954670008514385039019424066536336916601407175379108136141676091363695181242676128169169621138230075179741692504841482593202552002919356910722502229733300802138533173164101361750401445459151693047498201505703043196847708512435051772213789837179262383019896457708947926328577559343734730608008243943827714774368589347207283644158958237674958109259286820064776841154704323048807399012927322480346860922080537133830681155883507691288385907471831896453845031032895987027692724146868884946450191712993345059000828537049997047527952587543101340860402119524376712757036058992863440903231109951379308732080499768313740085990440261962379531831579351303793550036342967239091300508094630404962548785990047021128473068248929134426923469230498384137156226028881158486229001568851986405666640785738510098204415343873058056393832758694706647557406001912104250372826206616717761535400820752849296999040095787691862928787544425388247780489948254506619533126076237091912429517699366611895614969673658203238742712388383173914374630343562438300991952742512334755906854570103109054467197958082903615118128264375691652780780023175489569281833854279898382741640834801220748539903067256080096424597980468299688186979397800162231581142634398031396382269684549743586778088510171738013301624888393258756840652929273743309628509049230458833553069908301520339250010653146195416620443128176388109437822480986508099281434346200817894655674037697149031013655373911698855967680298557222117305953544008195370619115851264729179205222461159615238987009216174333258648503779004939653341710124308725842666548671316690078018322048497158840430909918272042974728368806976048450502429218125769726949949190115222263651726312921219122968394743729867245685931732968077133548193023014708595248604256538274706274540479015476011437510226959261736419435537815510033101415516726310428761513461231420373164387981162674090649122897519032895224349453292139111725558311970902604042192494899890897768283899321118881356475154639592896045884749038775140826160253003761199555859512975765614866305821989948743169333052931101487067568257283101713534466829200344869215744479327251851056988464043416626319245075669414776395677584784076480762128804841186115848581475401360322398277695935274047853953979768167635383529833950969203615731521895888990874952805523904538350722665683846135272652973854223548546093360496199232679941356035439733295305338680826864171931804516205692326312822724488492394541091550941594229680322962488148066347434222278636233056180847618602811794922804708924061869315895012732834839982775740806606842517517342111213939920766147675661975812604839419578913495378859598202716050815925373192691549667258864362399151728360092410015241373974977020836126075485928959592442796043423366566069337159645696562589528400334703587207664719795295354480457850190941401984754479305102816188469218200088902523769858146846610427416469026052396438928571674199882043063854672850103450737885451095475935503402021043014681564874562674240893814869583489998270373806207418880906372923161689988310489574535900525557057179990237308703079961982503927142674234749326376942031626637555639258205632570882492387438953997519273524989004753135313785863698648549402344706813968366625496664289914397902966116126328411023249654053294687506723529973802559684640415645643404618554109567469068242422280858145442729937748020956896456583378045377698034689796527114697893268265837637836430909309097209682676030456600244957150038066309877230101034347967269868914576681159247534372151540908081107244245325798663358920049549749906757259351016511410570882675984572601602654850315586174667522197049500005445765840429467562881911217614815867958398915244850711785984103800794668448971338411107504591520760462034692753070265275315959024701324497891623406901356331946807909132308346924952812524044745352948074018576051904603929268518379893153423303899842841375006393111520622628984084852093252370310515344727222462199035546315801581228742826518875883590535718059408073689308787307727917035389862090576740458280776863631649472901516698497115971941679217926977737888828202952669233105063802008227268388096506150333058640271954359985848447319192332705118749464602863405904832407808004309538241675463752785166716107046436029991951808432157164267369194050197948379223688410721972850269739479696258717066751525189434129687065588846938360028444981565639515002245260088463582576431125847379686834572421296440628259745662004265159432282881408323807327292166025798683800507993462639570125551484326977730669338667976770848619468495491739343827627612036046141860149650621398571734401250075105515254678201981145290475845487270175803581927606908238184673934631056266358061021733066294498721768611721019506669767373988700203389838776520688963412834768599897547278066993044458984408429257757232704765849877188126894546547187642270899065238017983790347943479839140842807917973669174587027876514732067142567090630591073339704200142836729895366867598656835410156653263804614674464001108068905458081938339996012211533233413432433694602477213638630091309075646905977307104032037417225602636462339906416371299464111322387283220698230786748009046652265531459513293118855555904472055663497886783686557474592395214823249748490501285882640010159587885309828421780242078187603803411326015125626893628984195473396127819335931630380994102787147831056332050141312732308393159575873263861243868311846501040990860965479602911914341774207143311917707415205268855503360037087236989434622787723725225408834854607313815988784500531346339413226274489577447246456934713365568708473827797528865795166295555928166072436669450768388362811062838413505345717635395858108835575663821755744895970988180930303432613815639418540464206060538480839314986668124046202935656690474968502130684399745075363704190811903634130361338865449750017374909774593716289302785987066219655368051760806440715613607996303933625495062150084288586634948402723226519784067926162877472743868565574830742096693522778674022763566086875206670863083826309545567527737252976999781761389513383795986474217989557004482039321753472508908801733622721906363023303692324007152723801758016102858383959585294754736539894472689701227831021833129078781790926482963047938395681749431818804771050784487071277899051017714018570266727381467594940260037224834519144664017098598440954715113583646243470260663473782969560417677977514916238303599186949575473388471438966014301009800800381304444849765493711687404695331274243622576164368262168213189241570238820082544312738397649380875298930695427165847635092859860199687517934965650667848750395040343704098971736251621523131730194977027701617461898169711545458386454271336734358523823901357029057010413931636192962666798935265304532396435489569883015016985927163214151325683016409739049730599530267083078803961459561334547410671982847901963498278318016935406956506202916166730604884051872735355226453189672394954170182381480241572997324012798616085250909660137885673326411409121790019839340638792622810371039655241006018322858549062887119861541037902705686075875950529016194348998743795459085996702793653207108190094718509882517088841087804029072591435036740227995174036294452900647537442471005538297481624567915040912173035424036496597895385431065640753666067145996521654804742831527609041507346152456597412153392755359474436982077101572512581285662217492620336786126744301276055386059801854837470481515092434801625393702838852195866994554396409933355814604164871509141347949302675750182764794657522065646395142650739558292195004360949743850580636215597619880381006415012291032581076188718902723640006296885906856883892006350391306228577586245975672356969588115804668206612526006989875093401595360005577999852144345015137735022056888959844830239700057714821480411640909420235445913224006391890057916819969210164977662232483728874717880096419445097575302325500708912247477314721523489764379253371478137874265987590021476672953104975314379150499607241996751475974132398959352656890676648016336017538868946423894529113366167320710476926702398945614718022917132902269378032717600078636118786476797549052180854563403667090085684147551355282057728743275268231608442944977154759381231527618692062436608121766792366411263081341642622034289141352398496772737952106788438059842565190056056992095029665564239462323533921289364838225819090952238059111634367315553641631686383587854162986344848358097912721237938220456303494171825840214289883948235277546464752651443219885398939915850061807392123027063358102434293153430984332767500541052944293009479034324502487391681337652878762791146886952044364545801770535420646484542401877668002026696600231080821772047368028705138007285534191154656154119275081321348238372423277721494202911398310791418418409198827664411989603910642691747094859551835079445946074784747175541201972322525874731133301438908055752193957175089234656224068574029972751316189580281722476360016372122833527966699934686572923782165708576077336375197716237237867875621969350533538753355561035843394648063112680433343854024753437857441720519307810044171274505306845377177674716845403520982018385645923624678481626553677837399045757285507595941761882607589129807963823619718931521271651815301314436145160753775913061724652599641023233434138274370457173427588382614645024837362093151972448109250525932729499253344046198084258552165822108975462448637437175542537552718340724355606585291055250255209313234638073548219815406168782202049841848595348894070786079968397973123237669262038535610105922075508646178609062473948810585124514230990559966574614715777338241717169007209549404209602531132379347857791283904536048522048930468644383764283870017086940577724584830675280146884109612774882127130100629049272662480587836634440943813800044571106202694298441368761528329658148057296845001221979649124461934289494360772017722359795998797943977990126446874402420515448572269891384488432681772830830006135366592335177830529599208968483513625777414586831158072575540507733615986740594378289141592423520199658052260732770569486927509026754376434571530669452818628133801185960442622462769189014827244109729315076628307068297408583356550187292884173618227480188995549925848264853994766127124195620202668700552816196503596125055342658761734874732597873228910302201991428035705792414375517077396289195445231534430622569101079948010750997215085606035384873287850412314584581908243755618437451477595863773730278373686450496692714138085137184625224654482055415203110709188492386611606232103467999318060892038331294728026755579986087212766210755394695797691821500117779082955281396713638051567682336658227874677497594634542449001103344030529606242876592708983489599671081145868883686072311042809697925054421926958076823488367885043625356882973135685284555266390086396647426763968544772704467575397876172402035856965212835138583153247386350631351408426991848314816580861743552412587437255337653428511979310502852390992401904786630650917537199193729649642958773829024299219652179661172564944548438416159048444529439486474247964075181253713156619169419996196064181367597896391630947792567699873276331313943785419877009579136431947330811245636012614133480614727305724749137020767854544904813296908035902530331464244560132686298284197215206829151220509383357303295447069349318457683389690080386886837918867079897836379162694146706103157058073019347402147107324847929825848963656430049281848422957553770103791052809750498222884028567433418359944821762679292288170425389102990528623237213631533746347661338276104355079530213944902686137502587042518901792882804198163593342229343939742135639464896737522782603022112300157080536969826123375123414222386767882101786108002814885585610689379979278713917848789004943273841933656089975478347885234230271875727943428633143197557927067245875388978080077998914583992448835094299966567132754335006494328204761464487066074310167938043058357864021341251689467933267789632651887675687997014176485249938839147635126699355726939485592655575293514644888647376690842241267123500321444558140241151575848120656915096962468698532775492825133035725613170360107374936961244618608303057101896749804570215357615115113921056873588886861308079154062868912617578232185118775024472492287776159304679461917314889830985642866653713848232506839422292897926801183399880296306905770780160498116774155538100726860428612630768464901483026442959916774108015005053157960814468169182380124782435196980348717539048730235138703605638040592613442068457988640209447363331153833273259001437199930769151986983636735265986573714279008664802129139320504040431601525691877642696907205841122073196893786458881325224690594440304370024305506592767731407113137237605902583928677877029223228872296051078541004274082409967958259469245416026388141336436421396750555254434618942834483496195914809131998543749442918814637356972223074319498888159427803895370014894020214801633082675323145865704869019066891462602261796201240836590849575195059609986975202083897742769023085553081606013009394607644212399201183747459853744337538204966085056011983819578332318282406012638013056181251756812600923460682811129321580476912622064626102509426832894413600439956522980135404110077605212656803437434523635918863477162394859683307755395150435271905688739767169572270736530401601902700226617174088406432151206495902486851613775142435357706438022135669112760971771508396561799722961619250563585574787952259139404811831114380237240394892549996237999035497276817721588556006557774975652024264772142759265992950005789847567382537811373089157550371666183277453424238540185871689878326536734786534011586528934624107742671530008444208712804088896301201550329537203037334300072474450284302012773954440350613817681328587073295683273227819775090037328280181644980680521623531805626238447568565414603765941215251941387369894817797312135019302165925645648900530543837181312376243829407993652811140904185161477477337652203751162075955065198564404018379571732889386245282677460907540533718685116480041131363610079584400420590371984885695249458057950464509590557339779122155195027064414111049451327418914858296040952162626896082023492676155298307230574150130573439926795201991707214550885645861618327927296891816101707497732741588246695394843388185934414874003783828835095333188762920961956454252615696066311520540211453102853378515174934770968024945959870572702102243781937568487002027273845632517425266574304407695650470926137352633476061120066573639089111067980474452796028032884913161642042690591971797812550587414565533339078389199155923209792080939613580514702792750292135169245843504820988854288686925906294094737375484629814532093426290375510968734359360217824985401616664138381275965164306293985211138079013492253839955266372527126361973061244552826171000047942596225762743578557795061318347378491039740748052612463570334065000177313140045961819011476711108746418110434543960538306325488879997693073105042666323227362901830592460524683531827933832225528621399393300621992902159411377271650512438189739947625794374378199969584617685859852591667284451628125553272471204056325174778519869343479733660973129435359933235370221565740473163777382328170229898623033073931506076250171405219783502611037158567087301296054246847242807957117732677867497244449149259228578813125562137318245533057829290496813337039533145629707774380474893995656220622435244033193837358469067312957322599407056961948753916340004658363931619772451755254809120322571726045835338797293733355634347609842069154308055486635219754303619201059779774948118971733482517843437975439790449936500627622863753726691648314949921097053640084344453393551732336702736870329044483259794662710899345908403589601851647050336639490992533945506995068999415465012685067515407878241968115683354658174266422288238438469980836270566012022648680456940002539711480020100325900124633670626400267401190658663167119835523751442643216605816499329192614578977678058687528612159559345946377055573192101224194252216777951701587679573233006014393375219590346827034096354549109048437258251570657622989457252583557373752104991527307075411586347518954457213562352302856589153198880618354359829963076097025828723343749912906192237275568980623343673237088398032936096250521187423514917005002082278087035191143786452175617849345275516629734239710104399655667444441057076706130320437295798921754281764500231957106694419881801538068672015041164459900654839093375761904329184535867177995882573325939447004702906556141828399098404645405810083473230536961082859387576333155910585997413257441290424268717639301769498022908380165389956235796201320701834399443144982971773810268443083465215284374133795442263934730538768519436635021674715678099021316551163897762258758869894739828424153038748354491686495246914920023584249287862126566226415365641501574555760218660658188241585327652147605944574189792891491091737108834639526541872443162019098073574073808954195469947033657847454180952797984616878617400228888856339633547617475099685105277462917477168510064022216925200114306969966197955624041649876029372252109224847258738394110669458852581412770734367848977401696580201359442292146301751539133737667033801060174293101026265157159649886890688079336752332298117057936243626797085078150507564546042153999061802971280058934318757817177486211952258707981785532068146799595144908220000162050602663242465995364123741683897551264749101747219927073726484425714093808105385058281182942691962639408729408827595105542078444409084651056937594911086244918458176036401132284023473175019838007592905337881748620733251771182408495399904700600150769944485488939548865157953263387236581751575640553982932967245759886905325525703989762844369373019098027242576274133378591292432638964691586873838639583501602423707022761350160994010774223895317127472221847929414680065022723164248252759220352693773147361620244884468842550033423916650559528425871836527950666935215933110579451349281770260549776717146683490933371690051795182453815231990297848915087941851100394569571012017846636591942241769504367307385124980646835897149097191027542714141993541212051803254998697254357336388515122246563498610353849962030656097509844122349883201699771458184856861230283121343581948431124117633675137010806044669040275945361776642231666080559917668316226857263858876448541894569418144023583406497908862211839738935035917401141958256795517765882148284997881397925523113988811908627236798997112339462351455196631100372407616616285988408320184138622783864453428394599321747267147389040812405597574124850858407723078588825919686333366151675932701189577789236523034007981133834926811991822054437379072615658903944385947981724267773734733580685053222443826615898433847109669291304439919186662545298256058542799925019990498281150701816495250594807904096078869380843729282204058479223706821071778977644135605622585646978415703875037275205987333348335754267758093496903273911838999383582147695795796499118064846826659713668158028912113776966548399253676623991264618980616334988042578938367878375239305162382933084470655342267261839131501618701809776430627526062045952669787471868639298654496037682622155059340372633463467260067774381526463491397856351398570370250969153763947156694219490034729050295501532284896580369109576450339051200856115490444405573949699131516435792289461126608167712158855438198465013002843050986336592253919719843119176311737504074818384472169378485820627000992560050305592450702914585060564503907574599015315924804057395511881097775921794290893134742235281710844862851487004647109027524923773435210970715149520488047666098568932521730626028813245483621422349023919252970595113813546458376480208670839069320186653289271683785068540639337678280579633544165951373890526182198370399945739854992738491654494733014858047646053844157506028052509680926184176300107989021831850732936275111126218536933919024851122049016621536738393506417252558067348468816548008905578260292257843960705707695715102290231218636370611989765981810391570754244367426924517335714711599083482661679352038813796632781364113065698346969851394535017652048768795582367500473685615611952726224371708551937483431884020511866686151166913787521802306822331753163741406376952338795519675605230394886562671482986719782658895386044049697733551926957660273310852208163041448413054369394943698414662217595389096468826071075833183969464756972438973401075714486594077295425898441910356723327226767450655854846731823811147822008478924285247444915196323778817754222358413760564456823055076974075393759826802998469278767152104464834930928032635995197175241581681867794217214605326089435758793128136025045993876945877475052590478477050518946702211809034643179791375349448893659178131470147289075079587405684630646981766658487387873718314319620981018466002302404091923469420662997237828658020759784138164125598337831057357566248438140516725940065678341647689490753620853554290480768907295040788336929709091514377365526046288783770676111197766413650289282001962885614478063386641205849177790286617833919154886267790405276320194664295930911285204377211817402779916977007966045581895129035516552074491075398324684907918677450960764204907372029246113032899151352540750983758596975390255863704314664441446472537500363379860543098220490708119049397049164524781666716414574358836040571523769917660986983259671963364065118643278054471449667892744774257889432940441040898763795561807339626629401643294880898099410728269171796128822511836619040931527772991191548495386494259493927823822200810937216098844511582649800242998960285951037842342355921057778267305468269737892282233117810071699263277572955567829595766363937205432435687092161219902033850983551579822565602302051604109429809443751302843709571998592602826682140064876787043035560786505289710093677073650728633282442175007861703100330587375608817246561968378857688365011851831262267817476815017186138587132177938559753160068019070637058956370036119206724697258554104632928991632460034566276816083207650898359756988013488546408560183375870684710319626557274452792685337156705446530955757475194031042617606918241844549818723839230941333460950128440655029692924128381435720964763936563973318613965896203502143209312704546622456469720327655452275954068574516912929869240797742321824428685824909025453973124874220596056727265240888026485941619097817581421070818195877459232905334142271446390427440044099804469406205688399070673298999648238499432745691288442676201263055279237771468756394108842251170871288974139676609922637358374548127026033095762331791204784869257224381033316462126428934313962324609026679870044187544430954141553139867500492636434650786846196079294019510987070008519256538391454368121800985882164999416791897390989871143884776985956375972906164485751379988495798149955031491147452503227995859945130382699543014970254432534161451042235744805969139129688264126206968472473398470865504511863852222748190200699247183463493517932408729745189343286712745644158761383279799105450262580189507664137765201403906189485094919829473837854822475399404874663577659837527747937025931684029569504006783004635994150170441811260741934008075479949353275117332348275187691402232260985725811251061586912830911504681285730599619554027885970279790004114821909293485242511883665143284274346261324182965478277817370795524699384648366772938353869223938962286461017492267464580370220123841873262987043582066555250516233114396149508824127749928858611248801191757602060012632191078169750845203253041926556237817861377669225233198215023933953522189163483741615147954525023848622403917972892642714991373545194875017039814815058025846961538134336519324353572070155061606929204242802164094179261442490076293447153684617239858798895431390389668408750106999074464211183429512464054027482917534753217084714278457316553190659540078972714936270866399396387127226880849195960120431683448300781941883101305601447633516858467808526238198427471020256267831326187238637648266244907908611195502882901887238564935132266610873200900194607954242126778443751176690617677452405259689640461906001262711084893385178773623138730589945806145050440554990653593596193350148341883758624772318939736054337869232805926845312076657052255926561968277861680105420580924934226699746693704698334424256438142627019564001882360625637606305398859039766713656674269795092292083577902837396639557251896049059009448445505261327707461763089715700000373901701117110127741174181520654715977192314640171983536776603036559723197131505278344552663905661739900591952619473497631339880398384554138077669281378604089062745149644719500355401210153062036208232039649538756214760230691438696818000672336443877369248387857148077157804895561923205013058211464097443596712960602019668744038222995612313346066393887367729406681054580130558562502259178676554651287981978430076130172618203832223082946037005831070528827072183305682156314142846724949721696999702643177088524568830907739483404589636080387949228234747095096149724334938032007802564075361810236093414130834426204495843036802765577848444273284879636312264228355930032843151002909800299065591094476050686980974525951046659437266342735050675246278411997234356869267642030901074600454814864695597681573944234555683124897959892488600036940116901803691274141181206645212784538462711714022866106493871437792789400548807771186401443173769599068917181045072780621686107842858125902029094360629239362436713539409596608561277487997167432984349812575872375084284542085771041271708026222419995628363469239539754972861554617500275064948218220915613225339300142635521726340370352169395080017079970811442127301954369307628099980735135245430509226810813475105373455838103764352754576223041293587215552006075219949170187634256385028878071366850754894419226308019543352835667032135178252953765586023522928081185098790879085949557123415991885509256683671443056959775854206004412926723046684136723182676271026877415368356794915943970025477108904444959521557265165228221114173878147218483012015102357083942721820995178431111310573082484865316914690662260934432564356062099346824852783074288007006336906205555543338667073777582667539320598532112732952554507649635476312494937548125523170572066648666376743167724948376489392811110913929907554578838807980606512726773507599602859948721011796519778774328056256935983712170075639090937164059596715620252145843581247309162440320167260110174169049462942155194793558763414290265980193154860574237210913293382431997069961014135007003625891190762392416466699715031667555432747093123377121877981973545484417455138563103048017182328795558468797520160126395397492736149414127874963382957283173267712678813698185040521107128900140024811773351724602940585264074741530632978516798494212029594189518806460901260656535845177591048721569853909722225235974449570503608926809121208757203698600701106449171906964476936773088647494135574864444347499203828846421466795278332152404973812760719973095825890550722184605326631779268908610375866318684575150313654593482002918545183487115401155808357464758694156966906214102077749543902340939213578819127644445863244818894315057195660888321446551493919616185589759712406006621419346248787413587343504318499343825179277631378529005297596264260398126990164607500671537511445085332278201583272464664188302131292416041800254356026852559203705430388540729349942124549234560410497764881501614711357788557508786362897804895515234770130768055528320374969900970026939009014922941504758967510780560539391751534337922451805725175039552094694638077906590775203278399079172040368495005859826708785661468541278518993732972126363199313838095112512743714652884144781698641391918079324042258242054586469538791289637125706805839575214650095483764435411264805876251194590989066984485438797799263720474434163639766015237111182756682063651977789266638635521755540049821692808887388456916186787192905224753104676837684275130863815114363435191223397752009762376165114796463879597968542771981901650561955666955880798798718102952870972852232080386017503819873746729082044501490381367153777312941440885938673553635770311137529887946462494716623489797282623159964629047957824841634981716322929436557281790489402561038845231477841994406940872053161119807499700415059654924261919634294598100174034769660464493804970954727683684096471884600938437883058674911126133695114095259614733640928192091292097483802964362152741152064017056129659330392409408518857987534010754086267181593454775609976870411820544897698631956426815070825099947305481766092779637182680105678171032654612523000680045263571718740350523006180912175098007018664248092035658075456890877329644948503418126875343807166243687500521112729616029810500673220950964765696621488343190731702062329448825164200554149649325425150447855728763982117273214775793371921593968817864425343635307638087773845882070455918071265831251414855131196773019062338169103694349264551733408605173596378814993331284993960857579924205179577424095241757984526838567536545464553935827675656749223446736604986598303463425443141445616399731863959112311197427103750745512810677049152085919975844551098875901823547668031020378595945502519828678682891658514128776040118923425073092404889310648491115967487739883707506348706903951616955213509159984830959461047164892068521799072468202738601828808946107781512402009763211244475868614907634019413103889832937450316094681866450691685400461591117684887213263392891912882939025544756416649435123535842952307596212817320096329418685098802588423536917451469225475496487688606920164393122199687850069811220283070339462892295994270343797177953009975076106674027521765299514788740190816080213486852302178044852212787623847902402002194280105196851383985687573861832167193534754914339187613885891641826731023316666151986132717459653400257150796096798820360420393348742967569399515056313793042880067324387239901556929968826817196160293503122990527234014865788149895552046123468522082978505605856089339532625114642411163071079110892943185768492885204924270505321303419475759506322592991962353465080739698437436031976446249923225962157655044744301935490619476279400700062144012498638222246796294589353371859774337001800515516734758596538072767796728995432871003415310577905642637964130125917310774685364431322024629772957100636354371691691028936598541638782125065168719559413698827968261555655797250530707767924219907414938925962309476385240926125044327779462443326490714120841238242627836603788212859621582387685027100727293925045285141550990563673299266716662259035286638121684775584438538849576587940847847220971782202514889520655438799072460458948517715523265311181421663835058410429242449830176207224262196930243560828598339019994282128605866943901958712472670159007414991473772053130469103721302979631032849545253538073202746216256455461929459503054689464029969432691655624951310061193434604454431513943481370377750594072192028833567651946658036613460318289650672853469566171993382627245416302715206164616992516813595501705284418292459896757938259100006143437399440935961670502777713967019113299127988872935414547763186749014662724101606583940648032773309618323764999110379759886206266270937214648481383617236036771005591807311732293849762847419324619154148831812256347450995398113584247902397179998533648415232199656608135879384274235117343748087686870727409929296069278350077910434649270114385923274035154375974698753873038085838105361949457160495340420438521440627278800619759970297703462217181178292252495347606908900280110868161521567356306862652868021811062658629131506122577111462036580719827593328371480676545495094769766291465421969259453537835061731859948775428254500459874964198673157908804259491275468926499687349563949617291500040043855342282304057732227909680738330320080660485832329512263467197491119362261411887805631513802697094668508971350491490201942628975017027529022295684913483785962431516144446875275644588720604783953232326627551818755300977632731342171776928008488383807245017168174711817538725631483169822208216107443939870049363985327987721022061495477383338740124770476847998310680069055535208855812970938744527811328098800932741061371908645160766103011187764967160703469811860683999798319408383430862722187451873840161046272074293625335592363431161690770031653127497994312388370496149678713908648328710845670826953975945773083553404855980207939215491016449152222661744652274213795482040081005751614150992817990238449559176057072060913601891821067232954761081236236229572549505513189492541227024485772999369320778039241287519153469419322087548695876598189593846941578776367824426797293755922729032525154631702291769441264627993448819425353463540038069057767035646164910560639154502222920611356292591751480878404734630846234343514986029886199391896622298740225780542669890670360247818775504059862367820613628479814588619290972242037360309720200488974350895323898201672774101813040874842829510464760553322850642323759586672188675117216483233811519996484034294797064601167081046146761231157654472482500713589599560926819203318224076396296349899126726833894896506533505240740035665121775002142423742925384568616495619202521750694768125412347777283666800251667018004794362361595826675477467783972073716057319199600116445857649498470800418492110039692458895760019556099648093238156938644942315216065641876538414700024024475751258564058737969487584337951391249720153263670779521674778709037439365577284131511272580709473324290015399164107242269445199000522371728034657702035543597098219404846491267334674205427002754917310498763474144907282902648330221543520211413128948778054183363949015845208661180079997448140102575548775768427855960696462689652897868144531974972403517923415872734380357164496473706118853248247809324132375214112107289606677974957659269965602553589123831312109350288485033416365141615359161868081885849249672982490493524984512875373660138666253898318356017104502608681993724622403590288971272739182957665904362499607126417613173480047912282179088956368460756825230080531924800111728636923535880213214135347325797820015907532687953224109567621906273567250976308860940156696936013558524115854883952048936095178423628112201271085146015722263460171029058813530162441302266355483182861879658155740468810926661716519664434395681928100688775917606235540420422920754719665963969347503430399733305091826933442636377922218300927915618543302409450101098539283522809933873418973721930558743048348284875880368779729862651562330310988251788587406159349384304394825718702697444666481624284275020730779855717694357055320830056558566721312507295911029110542398278413386463084860628211292269436833696036580040232937874845394740978228134999498860264733732676259399101759021538573389279936945704478615842799235369394748463960106523086742567243454440090892957000861842913796967474513308740116932174084950094458374381497505584926416374728147001727317818649615955190889163476424099484083202238493735706867418735443864266238836845560492976600181622678350747976518897810231631215748699717073539861575606103854290892361962268658963117410155877189971857375646514095937857121818739979249688597846083318576649157278021032014500450062550760216386541216756666557828387173166022865559953794134470084946261810200927460672297510121580535955992095705309044001822961576753537732782502395546371463737434582394776395709692134766556415599675721297755818995015660886720676797770843723558998310495191707458766570381771374508189607825105827206188340255234276357011913099100752308781793842112481409433168761689729798499346309012775295792243066375124566616657410372046968400580369742927355195409427689484036167330953189558809911906447220147055423372106287785514936362992087023590279926474795967191516924340284809898998342089011646288156300838611688164251625665654341425274180175810061585165674526416762837813534543792986617057172899866812965793894197704127669602899621684045032667267180566349619107673193358764960137035259518336098151194936634953261488533056720706194504745025132532002835496101209447781002094430254420222798455593304889382897896074586635428850188003950870489583113198960966342992653620114863680447888793775223296290431409347416444215400693699394724025530374134665147039555630257640654924372544628200730305728732065732469239758513823827534003642931091625020049825377209554591489804220801729782859581838039156088206936862551189631234064233767640407775517341629706567818296273452916247941564797619344851843519404165951092259227344202752142369966364921155668863802198139083748018337492388557541927483234605549283665433093831436212992976073536386582250851953845134993577696854829888228992690388617654321242294020954101618135438192564197942818490606785861809775674833010526373039687698696299879725366159651434712224062633329070714832670352280340737196186136977884315406515210057394503971556548689099489960788400651797536961961173471104547723299152603274477220420639263421572555655259218360226121420902688358931336834367320175194489359938261592165684474839425725186733170551398054681227349251788387731837203838613666297490815805742134678521496065822129301081192081314034001059010184754358724133520195315792630951485795048879543602330652705649516278727288824746011398386218985503578477410630863327052383807785899600001919904762503242429914185036342832800163541058200281569864945268068299530202148747604748577547617630064734235914779223749750447210298560254388168020398126131114592704367245396972268574005926283416653058292209949428043953112895308376387707014125401099994130080923118070983380109028843632765530664042718424631123618355639078331017026136915307308015895461967428723511761098756809521035393697418742819802682558997984374680739499779758479209271585781909061195612996174587108527382824351782331060700017488808919875511277063130279843098591625028812101223283808272108443162671805761413890106708787075265658771988494115586088464771488500166718208564208961152880254238698136840625107347678770604304847261035260587927255779140328430573578147499739889082094407404838885340685187917884068547400753841531422520207390099320587149236009285826917961526568976514383908897759252059885933964865834859606718383261251218012786347939012351017365194700468380211451057859504992009494947287053092229412250399672736673084615721498999722959550930464796537418281999155808063857349943839212526945789501274834602802345183992146683596917928293151599409980249727267111955173357127491995342395878961927436372732156335866601803699586654926325944437431325641880887105944356074903124791295401932929317408328151093485578521104461423851771417009868683337152384220999888194426874538549212566818964944378592804448498090520445206559192744386778900878394210195148493471247694910394768642073043804222403027441990506193817346675432841627383687534695204996030019133436936806221548447506199817027070054355432539110319927650318566503737931611289577182290176862941254649270561581202336162865637640816402413125632299817395936950766706171217126054122397498709882020133531629927476456714314179436201415325559706693216618442184077968906196462948350259159972368341064551620667541132495264141798117500868468108704229422399665693322936589400549954185523913792975466397080749703804548644927897552154313204116659207555671388221559900887090788868566925005174377706168900746263357590861820703919424681582976430169107353695369134734430382855741310792241658867639769379951577478263581127757984949188120318478799641261179442596338711628601502385284812596477301840103303017191910049591203367136716668263850727285186450355457848174175655602971355588743325634786178710160694144962050123148161775527288774101448800915858821568896725444144509395450535265235178034448039678967141223847261548618905283628582179431780886065090765608073954358142020930962437804113263536236413309197175248623079272012055776869235179429709216302245562021291260917234465167967093938424289136632929121592614141607473044664805396545002172909103076741906089944761306891191460536218730196071308689159756010178688091631202349471132914324552361310254636765739947291809468752841417140915693992178964832642818703154537406309277259614566481575960601006126637264000449814687955469609054257205053488546817585093576909244430016516387262364251043954897039990808256333306827740028624705145916195987174662432302097743637684228500028025968078962844507178739686430796274330250920907369875409390065817636009490178698273316414567962704052493329941071072804113328805609151000560887827891201045782464082207235061066753531824800995996269061328384392410176973533976211274022858840809202784623884670111139604208187868419458404405340297441143880415529934308802440351633800360250368433257553646587878450315786569920834517799499792434635217752963777767158608130337719929298795121324363664142265044393427609370568093833648719128861532412417136714003347960670538281078100386527272063236568113481525672456821382025101883569062443317691503110542576443364033061775747286260656508115514978018911719210096350066958021695993544242350364578343066026607732067562316013952911248709556398238737078852845435698248649721340556900651301446480554608165458223378714227844118828643858887612589238924083535449457735371229629472966526239761523792733394117791711520307015102302706750804844692202700679981913956154146708718823303518371562016484313669916753276406274302117584939252138429267826753429109356771188569908644867186691126003912355392708256011035562793068737616346979409150206222373759101126537616902160967228178946277314537463172367807531005230476071756485223188006365513666544895931044835246411434881926832392891393835594130986657981851109975787765528229569317171816466243444241205228646595217000288174972425350987885077489659224306272121753086119955991095305082992496253885425977262361098523776415815348692475178261957745839236358254099415230083681819823399591693655721052633209968764652820321495360548098140101386716124091071285254694835224755569263007064110211949335081486497644612787141093249888889530233158346028968840247902650892707376686764402683366068201824061077993810428419364865984279491354614782651993784347804755378114256951065617568512734464024535539581029640961266657023985521832741887023620770871868552371119044202494945512768329930322811979130190901350073493435156699567649382859993951189100061790355050739490942806164887767823711368936019683998096544203917945273625867665449392940706691007345140282336534294842753155008387705838087174611646358907955982058634396781937413350541819152452336302883710926320427743040372450902945582982075058875853359951764436750510385469336961273715479189961689482098318335365366198229851349087243020926772632819771358752751170313723804495082960927579735270678825159003954089836487980777951484326359073451651593774421521047894543707887631157349227446324007334338996311259536919619867734059398151825343584831514024922972541075493173933614040598889799681189306562765485214283738607988758640957604160551230096582700481486793521217311034513017174739005174970029458042993699173943417238858060726237146043456810896709488102175453123386861242678722664107079523945080534436790739066460147962244490252871169600708329525883775316908140796377872877298345677239742823675143567415848791023952342514779307602972662837357564770906469550407912917354061772820276320891789687385010522525243890167438060914796026807492336023215179368342244707003679124174782966108432374887714159834913647024124692582235340211540942453265390087538070496829387364641405786496820196100272050486796396688655255640900124877854804729149835871643402318907034694048602876368812853910960549906536115911240399626192315063616239482224992003882175507751098436546487534096561602713488361835404341893470608574424242264657209651292490435749936396164110522123580025497254204305399382427244261612530690470198555551593967904398566192173310826263673976167052846526364677897757400618053804181108836012927022883845319983524539679209184434163579087675676752475896100330072953692447256248017248775501562208178924646927672561132219610807785194926407727070491651690292001059622909167919791958428152818984664059352791198944742735341719792968456685798298068073117852254320413341920669489389311598505658207744763749829384699153283628950799778295430342915506202044923329000070791104344212792050729828017715577815131283580356868425279511128563834516447325719857396458293880639807490577052232534752018330552627211440690992216970025240530356475412005103886331289488274150111694869689166237328130665408421869259727745793900480935459373633663066672357134934976728009307667961720125774103109715903496875874362345419801653946872344707005061514282988711021593771888454018409455258741968211655884453381684132068832407810901029024510524693516098023937954130733916022315832462970689124817805614416592229817585269797720437185469244634641403313906498225425058327241811650857033403606449345697707411638968583333049745584820234754740543636045951099137404709866398126066824932982423356337166746703695096906926084033631684500462701282162872576156340989759969820409262532143073844626896391598706931781832763306949921250666887656826945356802817697980646422851589871264777823774136319625477763399901876349947164584854539828846583914779358227768683706498293845539226988006626200148799876047271302713126897490318431100518704916124017620631098333936653049315237358927044574777379389622245849536523796161860590041758141247475541260682468387637088249450174351823472465531002687152749860528818443602102183515594725943615640380881062148216464391497581226546704465709946700840851997069120092428135840608481403229326543071870920654093198682160304628630649104698322192586944082024105472364911815924312254544607830998845932597485250099571149801487612599524502077948991737035550264384297700440857286559111403838376827967480198910704660164172609856644957605908984819454316556082048730026590716394958186754919201808452782560429635823870581680860146111395919715212645423186090610705364939833956734240635985106272034122648531925487804649981741062449805881404121107036360752564753193846342939032294264367397102952697868226834581827118012396503547965898053391607261900844100594839871760545460286251204503204001694105043991698145933063811757649823746337583342115295324555605634737270226603721598602265263261498867223736063139654460906777687737556237535855062313862428289437878599926049538033760299233246970316124607319396810135783428638641344487698422096716414079751802260391197356229023898327363723555851002431702991181651035171596083952199593799268081926976680244262149412599018207449996846387344686981711623839760441662290293230377577833653141621953110243958409653249877441597927388763123252630506113991538721507777865978501040395155170560244625765866539743819414380043740009836612774625816372195076111546831870946401174178496291112827900504289928791547403184040236456454434916059506118983782029290347967546812713056970968590192993132136286669655808007680407625900857180483989243907091347392048948579459821781178159307815144603429915530558960092651059693756441239868538520573316571998973834051350172180954487676951795915700057200272269706339161032282896416396316481762644223052525136930795275141468218751258452471702343757488326992796391648744801541503765299270141018098898849360014800372950081507384120960481664359414878315585177786497400926350953950773977130279508507689241318443792975996486547931988342600952872528705598570039257457628339143441326784463511816803209269643973301155640162412647768977004625538324999008305179918592678759354978825959291417688316161870410015448537604693296561226710050043916147823828369982491080191809530379855590335692548249878512399474978970552474262476231225540822202717796845649047814837198626417270633123016593317522769949187910992103098186909273877278580227805181445253162662960926746672629446681699239774192685725939985554260740229533456271026166068149180197824060411626831227523784973129037493058914458243669858945700906812031269783666324301698323029588731915873892228531480772002260839395474667094336962390590727904928636416871831956355839597287684714111441998926844464448163513172945356433403089178360607062056209305029963621956479707185669174661771712855131694924715236824526807026887680678295672536250948769830441163149774393139475284348699728780362371053224617038102582779390636137690253563484591085042148666174741315128254395888512494906039388123314072689388163381250572252214733742581429723824915616601321735702998517043121215227421347579816166182807679788071853065118360069975169231390731170056202037446400772028992447050072464214221452459081746093326663868884637935110141563618237215179464206737443337777817324031359784212635608442393215459500819011134550706940346200162686360641468583438636580609024002597840056858422032947429407025701335232323421232275350275469854480194961605512479069089931347920634267722865524353872958896652367042934891377383260890485623066882144415892740298685508495038648622662227133684324083454836586743304133799098413316946789506364061081020870517375231337282979416663494602178856938602013559775565558442228600749269662360280049683889451197584989316850586357794179403161172551827351128443188103189055958871301544310636710521392530254912692498771635413408945718273465049248512857636308859104203633192573586602533638968022716024421448907625691318125280266369886424774294621374255109285369800983149245521168198738054898635455214615984446511328959272178729921777784913748705682430373393591526471536577099962268233676340844674286714779539533647819281518300428422715658480956348488199407653829466352421594180968186152677621702905421439949221587097204589595079504991073828607399576214192090807315532098916851285499544940731644738348357450860072480338983102365479193103969253484984633295223988123593147463027297186054765870251698474812910773212313132542074328609065530649522469005995782997891216857614313353055359152437071974965100838631313371757017418186638213865725499037308389631635285350623178819813040530515375275337638515652281993542915697661708160648713327032922277467955595967894260679323246536502057698575697943170197977233286546728916800062956445986284059443106429211817509108322168172706675171276519295810539248946881186908363089591810794966819850372450305787962166257292836087114749301999269267849140505025334536379759692478708932711945476316387499599336516075720375262560769882891830656165277674663079739653605841393447233293932336112488740066102566115026099110936357425746958914614067895118436173583026558805748212016947866295833488440247172372816708729954832706660770141373527917257540762114950697168341860158584525884016897354923733398026132476102500558046352811222968713859873420688181618161284210542448616498766843220635628079577776604535004476193312420739714683368216618326606712452027912141874856159350473480815466887501046836183986817122045444371706108874600204289130879758510585147517044280362656766815071356076412986759037537907107279222981855320107052853977344680798994714405070064369961350423951434957002652142904031040973487432935471944665559111947532006426920703413408058401058448799271871710936719859541717990413083272598064925989202278560040876128125357793557546247006272270007315969946062151781162516418294615779705159677602896225724561175924053791358086078979964111145050261181426163155719566548751014301242943793174812964912492783109780593096512701972401679464359911112636942411192577708661502916752977775707469180338958514297225866219662278045593551576910785053255207555653646992142061980935531943141043049928116423199973532156329627814318101707549356365179632950894367006836292165540351567403131426465829185281981763184110967712078767891935344455271588757965085721420264665680947091332894041844933683073471219571607883617789755495503761083960410728951755951730179570694631357370558382307264348804344031707554124469355010031304590206951259447972675346593911046816540269407373437646479425796969236987560580490265772454830306091090435692756197103016601404633796391619414477236662434130480290909816741005052239823777711781344829658528152458887939731315011507076309644882371775490419672559775399760340183051525275360951809458899122858671413171362834538392815639239379790616764465503706077243167923307942999170004328392982642294546562473269244094847939935851907012940239687655153081097755738748184230492381790511770785668675395970306504022631895197711617589482938922590185980486731488583198575581053931672201087973282589477157490897729512626610037859167319658939940811002870017135303103028809839850390349696392440617351889993727858042049772456179420966509414941813496035987479186119006227446624784807755687235972564649672666622618427311989169599040623391435169103770857356560211382140276969939430966422241747786110534512600628993171266351295351359441148971880053093573608592462529847031972555445151790346395953359508578980405141053442952789426321757511257674387857607286827928581150276201267815943450767414987969931380238805182518444377109224974514298205833799897150749995589527729273943137040629170586665849656148805937620342256885801927500239714772459399341330273404751163946425832302740888593423480297111025723223724311899875859918287835981974092956111321990946724567554824173092934371110965028893368413516551091362631457371314730872216640229064446231892772075039275413608854645405567151318066423365272057571657495114723144766449520995062059049259772352701047593704538088024877838016651384237641077053524593631181667164781339593564565217062259606807438791460904360378287465085791624791063614228894686295045724460294021935650444110478225735610194277003147570511257108044297447827384734437250282452024776060582122169091294950104984816092795867479508218491966935813312634572209095253300658141707667656690814550415278910259270423888952917036586015782030870598959229390674725861998509784762711578048088588258564831934611078816576003372123575670033738132805362262890357958039218954025364915847596213148305953924423627737265389018537380592583404489493341688400248308651188080942654233606003180568547749664043049396891307245140980758400222879117945352272607157246119637925824816294706196903645435547899109050570012512423130124231519878427185602407362855303335628963959981370948427022192230220105169175643834826964362343430594476398031420865054863251731627212917650629468498338081800077045679532159243807625181756918867444740270589033975719278802949229853250876441204526643243829213901027785345800648001369614478771421751035132185626729501416858474946001347627200677701700366799444868633584759450161361590909332514787579953633826758874342576580531991860876421802690072842162006541706266150186379689516383183930740406357767423103726837919442950316317075943898091424618947947057242261417407751040557519438933456900043289813814686748005299826466054427876729961968463331215948035819776858038230717948616114834670904413129706193275904025500645508371437370023865353380269899439849288789543821888722960386387755830008747987924817761953447769557401521121651193368921166900219701451006579773372656338441748660924124599572712893252086101266913914897085246640098439846926069209207620337074359930789584227628788087896142674240776522147275186535739512652383148855551469713249370370436809256392953023148078053864305357986469662215845229636052309231786656750124010567529899231832956618017337482841483972819606560254896305311656533221531732153940841224868825436915737631850020686406370945041227363762812810886073176298888507652520336984728745420516929578127592776957607334889175994661839710715076788283048089888786448895924222320627533323345294206825918995310179056319650330897027630785862764668052655512268344072857057531962892407356567110476180925454712039201728433605531056289817224085244302093775474055010001296587960428937163192608054663922067899720636992613518316777527501368199425434791213316330006586255160896361938766766771646485545410401932979964507345616920506346343933993755837713176083688551744258508458385882840248205212550862300357052028159696279094313381468716661634002769744826791849475317677485575888156871605769183899136586963231495037674599977938956622871511822273767719232057661726702303665290360089195010404195404637121793642211832280752444686669859588791638498055096586525331579041319206256852279298910307132209135991861041670928676682011996247214447817255222968706946857853824109090893039155329861319890100039299266504210751948118008762973296861893743713366916671833467560854617635433231941437809050017727626055023730559619230166870913487316554360590072125948434696597283861919216714791892749413956479833343220794589259162152268673811749297064106932021847359472022422388843619740970816840779312287000481587200219283302334524698718282652130465878863328927081384428217300283754261715540879854618273438477568332596576609061675170724151153889102300687174236597693623003831059485118193529814886191277785588354141781028844042097107236655919492119225303897514861667236293538155268926934343737605247800851751284018240313895045444424547693910393786783743137244154641972028708293367129076904342867912444785470059305113450834283865787120533977419163796156655987591318109885908028357885150690177070315452085758183543501111194736743351966347945900450522829890699021591372121835186985982378105113880711198943269244245363982704630053681423918373154757646419866335383760941742539642446167064811276498135905194118350428620633578395979825111847246976467947078290989018372535682800839447882147594817878094093892812041007038868188797111358193438099201356845877129628024153674566951583925244602062708920394827293383940006930405735443080589615528480151681358351688858058374358323728321861921696830383958320147661147859464826846037774276629590880073744666381322844521301331697864963345940797932695052414362878364622076769323004129970921538391392501872345873132827181962120992366048068712272792401476792791426886955785365474189953902477551324955500420486359083513566598052205628400253627656838733881259309960321347857649162543245924193167859191934840968740717635205066253869837970887013584301775614150646212925317559416754968457167702872281048014666320090647744704509505589587325966617637116643663604446970073411333613361292619244944787142448876736955001494821700689758822450444015285098466273562692184390772155590501148223259368020081791369691869637490479532942820529980087115168267766144975879970024380349143641744371070973864356858139690496560705927837540916994973546982251843587441528709942943175611094188826704154139496188189734998454435850553415791125747474902966218568176357479073439909609860549854219521721828495774581057513004930072111770602523709052927767719368219067245935782298088809545517427235327052375423298346556877556853820639659212784646578169038655792959304709676310464463632455355029593937761762188706942021242668635831677108968760393727816398534005379603716921144493826359477984591973416729635686369875019541429052788118586651614762047205949109494329705717415890372489481272243522273245448552538015524682958078457767124409131933305808338013214520614067978377529816334210881766292521603591077974723870172594609054250432409499626601328226850797982858510505899502750115978663730007013418107056306521514192574060934451402296786894083540635600405373050284590225095626832744620008566637877444115145052433089579889188315192804854084479633559318575284681340820585549954763463675876714881552663368006286342053753916204877662411369201753053179812116700814757925286685936178017567727811810210635880422558528876586860964750436779360862084839645695223496676027571101765283334623873210760854868698784824532631619510091015733136251398826945159217313925000896112257284862133844496910250483309111722977471017333166411058033250727457583263544081402634510849652514548419365580987606437986670981048676296299263129212411524605408444759885301519195086986136566619121611289589034502195241288114857244443923775692472820178291715731902664376852420873118236394160668186349511944349866715403078652457787311408281638346237383770412004030577502041442563386402168271868031949620922627244873223062459440783800284301733273882947345833285890954565678718869838230186629936726474347503736420966286115978991933029138221280320011434727250418212034527144041654893858305482223508561634258495657629710464254793517695920663287172321911028800510814902699374635852814413840974419161317969701394179097978681028517404268633925470494825276009186228257916443922874717645741954324916339913879616321254246647811955602751125038653658080735334128796214697957892974831628048452002941614989600458443546509763040516401954282270936604372668725338600211166361449512284427839255378693847655179797092780636076894737138235971497783721183274539227903081562338402456357296742105861415071832714414858789701258325354261582460179272492248054866888374509310608545370888940918406256340043190574723526279008979434489953246696948960758772432136891153001085522257243922286671133063229163366278483777254280179987071577262857839231346688812624142198997335292034721958792591495372024893002555151896391544215718433818066091794969065253818763844511807306571380956914520022731720616471190064774474442840220611864534819462051033333816626006015624377958510776073874784037412780429147076318259200930582954660505073010787036555477175604133053393308498145291255784154494122673938186201321294595948532689074528898969730542242008623252261261903769625460876836425224737205649369072088518558538596214521221373894817939379424642971735138772580519912919208145642663096798885571396512495820013372664200254213715016910978040037023922203713730776086382395176174930390132552536801858152105954108944406431106043365932864071498211194377193275015574738036310357852907521964888771092149866469139362150730754857610059485998995236269234635835624751646459093214199043691707329337526587614037972162396342566331057019984437142549398186011644315316365390539725694880216261269322020137426223891363702992101794549440570057108674424959780645963367395983657246851567204528798013661583962276862836798581273916918029397925193710430596989126901419732004603793563595682518054833556723805826309610256307799519288555175382658450629535556414971205248202492003553604968773687761557627164447163296823407454019877336292560994188929203694654149416928932339961657451883251081412685252050966344427877226568407546594965530800473250186857399632000579631322515015910513899867091666575387780762837523236755809953463020292968219020011318441000506353375069385862741100136713575065738722463097759524594161724452753049130095577514436249244869320154139970670579869823516388575291082563217930167723896243553229147716044704846824173376491170090240923917475456045330421925983947236557493381177105316647789774112990631837349241455508646310495243850018902912256577628858062361082573989444707612451037750010073985592383564090128994610895292580704568717238696368244798220020858432672530393620212180958105201106877870718208363847675024564735822121723770673429882340094531811705440972713802189925275042505669680119170750033950402114900310790196126838673380244770533444740063143521785916595021437405349565086358319285806726722211850271635146628685971820508259715042367656111978504719699920489946578804843416796942068242998491377619288973679007305722502379087730206752466565827016097459470589810963386556684947194651885545823707282483854815013046144434584771077846196792442440185058677069645783913798675555121701516025412543877734683284549131890825816225253439894654387430563620112282260107563746561558687005094712490307451837028668226423276783564492109487392254208186241981294956965187755513717156522369137794648655896897571812636868795564636560979912804583321708965334150567425762828833243977986450922693124389460459500436824887508977527160049210438783906273149144868377197215267816457851759790137337046175763380468344034265074392980712756182745415187944204735099153944908200508856158974766401759045431051193840701940094942548997690897023548398695943038780749837023390784164231453356895290778987406638377989339202689561444056060069070667119836155193600092908516817665390342878900376848321052465546370179347969852097626267395311699676331263672815833065891805576491120373858625087124194028188082960962178596591708050912276934271043243251055693736609904025056588649443166114836430644531788578848460397755619989438008925120477741610268203347420650743779782398849522704284666567461003848582677582267515681420641754692890487140139617939786266985401686249560570206622166014587642998211846724380923095868305795789801303577918018135900007178410961157313653651414454730963985969262255538439569843538307866337770644096129312716442640546684323551566775861072254961084676254086492883055536706952941699553708266752465078651551706041231622417934691141616803334756988058114146375929297211199141455506401792810950638274335653449384612052659200233152212310111908558011829543746303967135760232034900196818325898098687548662041049071432410720885494364085439930712040716446768838869207907941845460638436972218946668107547901789660430522738349719374972078958908812151800250761947777546562501598873787337647245582396823406861221588510795157083442835459633289671882308991639305122012549297284157020488379339631495196081890234168503367121715800750321087746455018631122504323195632054632714079375908210783392200940471646726738254349821402628297487322741271314861598010034891342170792393470330419762146776909251027310413909399363069991105813762295739628702811923237996592245308992386507383049527641635770482301677008026431802063356685325327595681204444921397814414225665577021805930714565284180851766814150822009566084303067285300425251180004673700891660576211286500873962136374381175475032441635023090313914855746122903417682361985221799835539263926987737403914008973418107153845623692249930047621529754121467024536141508320195047387846076595747929001495139947859912677903717622295989533048210784209283728908793848251300773246179498810340855826939349221919798759964358027932960211373205067300295833305283606971974826551172185084003279254419039023059332393269137409262038652160441922512167709821383398171490847193320940026235552968069152724462252034014456839780725298896889879655063995274178363263779987312644484186668992259260617353643998353221407971119226658171413056785794736444468710790901992997393772060545148036130514667744740571715388974405074492611869368128292101852187995049374240539658368487784490018635842839103815221137722616817107319532277055193429224444065490382361004315351193959320363903854926095389125949494250627373623379613007547409391180641144815053433002267660081729107119317632323461494850328474376005923610553300536521535137546104207482225062352847734396926566760050349343457924686287038975619725214213152944301279481564160570360978049195961893700340149754364625097400022191162730175511593169237571147785407021055015215866753542721352208947577126604794716229566622918552214063961557420081900803501910081331506159831161261855649223290795877817001293839216187488219561009491161013584592120834095384848787173405275914482202605305565129901093634579874079893534409722196178774432944291729075452217375724903907149090089959326645607560782408098027167219815595462638333746441372379678728018436524917995092443434228570726296322134716026621221672172466691838088596681349685908967727893213060528256063212811778147651280814003153296913446737592725106365956644440803329188042589169267836406539183133180013466585423489659653321362570635609721835169851925116671821920403727661059345279045710074844411545958749625528409691438059432729832843779584193390934723101702929058372506357340710643524511672219913037065441521169770631797748771275106673010956345505960827028926116841937990060833074119854584469341619606921582551131160494692866786820509758334339889341764694150527170973347278179018870281732360129783109550745348881797745926388936447595064145256523904076260119910774682158704938379405986587502953699673462077776124437198491927632344848380824404268891515302904754840439793206643577069396304701792579370466749380465517160662333997954796445224260300621985414853434597517426861569048473680981393384594984995810338952924032953608139038999399210246241562613456419555382565795606221150297228297589348347931253728291108210471094436289952897283897758230047812515308610854783755954982944302042341693754688920584985970204693541016133852123086132991809557001147516108508437503544460106574692372507565659847915765671263011047112720118957917044281553266221900099251421446135824333592915426319000622359842774033823244545603406907172084040860414111961358041607301756357595436896508872607188632736471257117907979399575358482306455517668867613164905932810349620853928848381991551557097103269615011681978631384722265654827364776691541229591908783349795467114434584794605841945639327244550832906033148967774428935133770794259481621448612249446693242813105013691489551759531876586275076219724970309705195337980071628934315444183158062960962854175372361737698541547573777301368212940903680435838230381386628002306350660142306537459911648255836781270778040024490913947210692226662483759555290134378116129744143850712795180891433214796678579347724723865370207734621286918697595053542729385218188649604959859555634640211474980905745485339993070813218776786353320904924332409666227258893271662001599990724815614673002801499533933834052714721173730935982357709315662614336561594707258254113534256735227722326046291902012063296482819310654318870762682498480489770385988731425269239106145299674993443220342219617071207356207254372066645806095946925629551794362176618088188613396216400910403993181013848125389204881118435407938237667612441249659669324702209825560132648640157432912856919832917785217780215230797915644471766715178161617031140630924961169312061364837245628384300081058880997841898242332317752210394608300990833231657601035259386007123443670671872262914134753460559516055060313987198595675869124748123804927873964046276147415788038355356473730878205922495586147879359361850033275244963593969086716350041243892454917538100152139975098850934851997450085428077308629529234551088992515546128751693996073199246946516850380189206502818780254424373981455422968795072432560791884249005647217176397790887246237919004296984080353221060811200425194080115658954950152280206930057980785255218324259113831308029109559972706538256727771999113364607096711802508310416127940583800960361449129945139422800578953784364695227991552841813087825305080540606037728814807484234271084648169046979792627711485695746035342989446976807795482554676714167203324118617884587904318224496085100520437827410899355010163573057371806434059380565667668155945793339729767757844028794062655994171951765588556284222497995712889848369534789511312805207397152275452169664198011872607691483796542540232306422607745917919385247742671269358453644675954284406544276089943518154191704690718439486955701192753100825038585015601675539221665561072586028899532840334794437157168830616377743303703282905179763408388418834231496166742306644022782460508900764485901950150065432046872261993624408622312100599802494929087848443253834055645480421343504842965748520146586330503127483114511330620508369226543634564433444276627914297897844296929610465382274525681001609747407633810505856015985038815637646940040094425897221050909020017699553043400071910513926333205861914041204726482104624457869634062174654885919622056403252020072302778069640444156910307453882333803775694271190808260409832423138631634893769540684940814613863050725045105064691677201377644668569846498185525495115224429463890244030995324109910410300253470058853146546015584227570118493848674959070660314439894959063409671074559021806315640998228445485599839516385435562628410079995605522533159359600293017065473156551194325120095895931180850548487230966549627184121633520561700067561575327225445288160833158715024384580979136984847521478520900603998610638816682947875647728998822637286002721830249777045733277237314965121705488953669333580629382729797739441600006342643597334614836347468273450998538062839539326432380872396262289408933841339425776451756441370935077463911605950929159588504032825880104166932897286550011705708264399061798778123682878590221913348350676667878494595719153983383037034600843737153067504815660700941726490931700225365802522022928307485390589221314908199907372205966261194001384509307711371430438978576081127855034896465410795133950986456881463040319207680682314246576424478551012710190238785138611119309016937222096128635606193591810200579281139769809120752091442457670562242747079613264384102088390259546528055060947099855081623731481698037982975305062744503661939147648925823779661823877009472319207719462690356773629730548440603247695567812484095093368213553874756081764544083993990783802651982518304185815987367074592541949294648108628421328649503594737492999790822774554516097955334099608626730718370249373640631511692072830382978990199006630235582402570087027225947157102298028829874025677150459890594950417042279985082772718295763246718850082216573652623048533312677372964524605796620454096229569054844265575212533991016811593654357978764883619489028985510990646350484457532078537243394992173160154183020186762919292562631180220215903718877234897876264720030537824518031559128965833529450923566505433948709698289207577592783708028839126497788065076012062318149420853811756867728743176823586467182111839738834013494391544952244866766102049239850381357617717189087467721038158892175623457710984153663428988322637029812927114123142293721706380958257012653815736061075967559806991502416837839205457599374309546332676804788629796839500393858960415903837982148424869301052134862736309637001021098285789241920604082863674461572248656636901021926353539111544923305661185032170377450416212669955473389637255334329673713546964173695232780471227211441042828671518292190186986368139219859926360034806796552337617280241434785007663593864193948276164352859895984870122662385582726370940122054479227858945811617986166936554481872102101545582926410909366883032835235549232079777151911768920866334298782527872628619813915009124897701438634159648331402966110907418094252122882684905782841990821562467467967698546586291932019762473830426853774940079836157982282937544572868513228757032865387535153521670939599167736374459306612239006846707483438582766861381455190098888745973651735738334701100041195541888244662189116002028358716901317419495180351880298003886954253703909269530498169155462544496933114196779036677540520321817822223690313098441589693120137919343591508208554305587001374329883054238418252429595499760722465976420218720754684918751970094273624286437669970101208882468094364182193511511482894423239630892902699265745784637189652291230911246072421227787452826057554821873285133834778909189529059677985904703799057065470765006842636066110575251084690834296564299202598268291055480683679306096161778727898999296209193711514162437284324225547981003849937142314958020416728979457234694441644504512559592259054398847656197663318223128005565143547787362695789921376776468657218091287294006471040096981971386718680013111048948364293366394912986294787118069872734803830843387500281805912538385575418444144107711700715018753899026743317360033036482581197116415335768752732825990691733319605348034472153510007091208229588785910068631527599095299129558569264225442384037387086105139100250160292033806310292760548528989648012611443562219310615251893074331136479163004447011668003790925309550714495436283799575873826462702521414775942373285320498934976402040877663028585934797589123110849686094985118680398655796413504025621735885587642350447319972997452816857606882697851440177187468489900343361932109965497540995966942860704694823577373915123372827997986278306551114479634014001932679105671852750492026985533278514180593845511010313382794203802126157534265718636214026543700051004552833085001699767991658343379741155257922828586758662266714935794345774662935538560445024456210173208701488153759449608353106397598270382770790608419432494818053679302808824556650789742904051897848281045666819626537845947369353788593152678298349894789692675461156983752937417493153839409907185664081339351888059286585123056654437995590893104700792609174711385856139178910182389204210000321635000152448316678340575531985359616359202938079760282933746368432523462530169240270669092728550921931205006400471451204366084980107879268198340313220577470751942963023830908558907185395840666968633048111558494917360721342212471231747577756627628532922296246898569234544202810084635825922042063770776795240806192937370030379272335615749994258570761912499750620565790046483032959700089491460561939949557601116717351598902087747580027881801692752206131012609651311286871258623393999126454980148465761185483815161549365287331416861652251977005700261879900983396429234764812710857117930671488771583944441983251293353506786808183391916690916064255231408009196065458487536375349496709017411073605455351556272383297300273196972743326922514217065597800669077827736138391026472917937325586568630417311737779747074186664690126878196237384807933534564767798463114657918139336456530186211917685996778475987164314065635745572578959277099377409246987288214491173394016823337442968538635412988752905740157263254807050016241450574076332171814283086359851123247359217223000786230913310116488029151155337478057335405224975971626387759923513191033994217989203102323333785724583278010725355151038269018419737262717009327739826422946215778064691162415401068624637541616154461593590058868312150493723419699419655597508411855562826135390919847863684647952419972189738027496060278697091725010381036977413863827922924872182579925292021157353937899350893181707590008066120509836758743138311371621650227809806580372677868110844767848290037998337124207461193776829452988841322928427933949786280563474724931340803625704534751215108779841140103631585974264464046506827421388263241690832011498239589041220074402717306630083877193585441901020666438228831078806358021757146319225716856224167131071087554235375460478297613556281693042872816256774598771183177128413751572119486433627384297292264020966797618728746345202949353192261779256338413118562301532875999834554267825924084845303725014918623451043855090171772493862614650899294577503079820441507307030987888808811259679427354707115416563580975577208940402607031133562039219118689650649515152427174595256818488930902120261205421273308653449006243339524787742705038471191029869566979782493094681628524590812765783859872703474077466721867257493916230000190887603194076994894777799862717543853980055095495666207561942720287622291544897806637835083876600249956717343404833493802162587120865982685417984550006000292091782901745486914335891986259094572660283874905386031161899627863750206173051412317804127362421043405652378415346355123027067094367375544567314347711313490801545673350398735091610558770931201515682397170326843564528556243943555706695138490137998634997680009186824525412608455239370413592956083167492735095181031107897711352113415379797690128841371427106452030112647305802773922528327713313658455797939311057433500848181607427956354055385938392803864466615936942665918800236458213175283763582976491455631916181967804403044973080997847328513714712557564005890841422714641589965633161797218004863247650170404088660358869589563858224418095426785399958052373970738706166012188692770143736145194995737733113202181887370054960889686699901248095158552890455024868588684749505339027833100984723666021132647782009210004146863853938280235191007603721551165601053930533043191070812258248832001433995634476678034321110868859656200184252965646207830981875429830602212604874922388586470887600439450467356300464305930707685401694761009091533101412072213494591531721386258650817812237988219316261098102031686564735857410793874896512972892887168279012497404435864050197514364934525554211509336748879275379636962544676019283857384791266550880520510724137697970947132473886101995815418983124918846434800338765682479239756501979932545728002699257355919186716482669874516134377565252843536475220911305540312921018289187963100437168319964558711054000877110590463493634707997215011474726802738393418710309253471105675695268545209130321727658267233219428156663019096086863993270208774052701771925105259391078365260631240166357453685866314127311346782023603800733500318666042081413263853376131691253542821903405020424324230323860963644982060015794103607753461704930709642293242193598572512758501123042083814755924642576161450374375117058264164264409000513899785208736011673069189117257752707991008926833475622632893209251251406717324895424102256536029367616635004980401814013587924308720878158234824532737742707925511700463573406102799792887187175727682103599043081815221979706129090651527803452253699100142330724078812317465106423654712386027649145720174354967805863613362112907318894800557530894188864767616066618559533109306197873594029214484695098456943659233219096857735614775856495750370233873016594819500999573787687277537908840188426307527797276485782359153639591101110898343998449277307033577446122660729379165613466787931886929682348028214886554592675009028804472818858659785981245668483816931190466432689593622172938149584234606601503061007403445608789036143657498745106744371372000468234954071193849219359656138231344190122035492888530371210687653063964335889909029287430262166773351367770133063016566714060037370393189842102069302342573733080809279842340379405372102312418919668651505015617516242469425177122291922624712233546895862347952781189235894229832708008370632897413723315394572825187899169587848834049624006948483380956650786068632764973653649046681182013786271361114982002094308849462064285463973931375616227216703628387211113977426284557131751544602319294603710748558447743154544360314102683417491887663580170837583601939829865166587920409704933274826508650530818343752804563762488616005973570971329021469345822549706891986626581787656932911363182325559524137735051892547523422574007510490382493886898781507240355737777540240995887346481943001061084558873029552884795393592343172277718927236708202833769928771706904674288919513318170722924778674195011765132845057430519001296329089534695242008412224913221671118158803973195548054297431107310110975325643950640617757514838637519665910120570808177655369352197065844199293038785456054076744139044467858304527317422293310535591541551168404321722177797064696276449004694910707407266517928840382290805580429027150359415059049748540228934667714024750087321354358880262473718144604951167544188531386347942760260020093146873932862066601928025275504560484852379164709549295098055083644434713954136051144762024922879204362814752836527699696296547301086016724526655914856747111918033861339250411410370891978450561624956315459923645067350892161713722830711014811818713396547330269396025924560285963874943578052876704556340933586022168075350751777127838068269996136626350140593300076389027558635450987921772931599214142466679791730706525428488608136441176906111674732257211196570433701680529638328480590488739830870526781615917961815523523293821710509573775957128570445080984242755978397005893686081063800887049973976547574920269820198074373113398630158269336499909085494532256853824980657997234304583394268300026591433483510064677849413947382500251308958956993960476831378927657858648512918456709297245393524356118565078524179138471789002478118247543935117788985768190341258337119786511036074056448375458962028891627741034330574302139236950574709707028130270574135401323804525169258407437306120227053736387359478752376932470394513862440571671488251135560113880597563959812666189128570444032528571674239043945417843950231735335281887178772011719368002442472644729446844578825705136707949416560369370367519339510877908045045491168088708264890739992633252231478570017305351926613306387559264207634302475064317191207458574308058803102657674950538728322918741887396663992263701160895463199030049664484841703365091710828775121472077801710205383589882527231876932799270013661472507769741086508120589934361420180216115030913769267219590171616147620912440715840297337872533597317350375148127205730887516724349792275621138648472199334954328033351891706469372180079949525194695825297919246574098017241057667011882041212838318903181753024736921316475918039497844163361360404507908689408220703967854932216424213027022464884583093710453950502156212421594764710066452558544160534160381582443457527079374074121684120993543277627739332536275764301474846711803891754452437035555646964012768376873812857734606146619144259388666555193547269179272281321909008984743126363512668553295807083941099580216044327342015122972078524453303726647500952278246832526685801731222954942094813135819419898977313778636503005661516897195052292546014278936272595549289039025962272192417195844635239525597175332203369462865177229840187885965054369299960352536139250297054309457293168207156287209999613475704084985510534045710925305233217266971394766963606282359469586038059610399576562035471561853099169299893281303260205890334586108357933178347307208711759813764607958049448342872490322321614946345035229849055224522836305131434951411962681690870655229516232706247223395987379890167856962800697290395186369732814911181741241561774674758556081677100934134174264555111609229487000398446901325060644200792968527198834274028413561354281202727692445669063345672969895658711807997749839049430252794578905679853885278726209080649533413590379019412771904579347335306074546766733497364261274855959053215330784625203872923267542067273558064643399776561191364147216122812523511656622813441053111559450350549118082767783582466552763159950858717714103436609762779554342948880573905540651425363448954761262549902514998227754991291868918954434139792350212659189559045074840152496121722367898384280255092084736838682366514749998565427916675298188231310119299675208731178140223065141005307306004363551372037414539708418602178820679928864656466769001537723521634184619784804852937367136626316196731950220479867859257146411248287374254594992947737561422248680287910982465403328950449379305547921951768559788271715965376959456379649731679417490660290161646946677005900481535700854419873273296470064114601372376336365842919598806500136529845943620599055675940957032310642437460308934202442399850355851685571920048206054392019419261366284550601439204372763249984317939124740309798330636968773964623865412284618394151252805387044958460308245092721839576515285423922211601591383136064440169594192430893820924348622466338050084322319357296336774438524246216044382928019476667196960742867285625839445036094737372346243353233155374834784017997215335872592232949662549796334529328530533338049168870101761013165494283336350797328185813032017042523011042059606245714215113287222232185569500518506149510955049640402495136360478288084493528638515954950246712833306377580173465735603807930683372348253389934711112210757289585471290501757163788878218436657125297316865383425322895775263562847721135637376353561117822741982389528929422125564763888920557393658480351715857935976690809464767327363316572426630352985432048522752463402966699278077398075687566495385379268959106430717751773064564953998957966399485326564580793896671460693556856539128423916580647721268482212668109749744274877988188223162961667354029685067058081213079105843303112696676774042712026298058604068909900452284467845315599081042596776322245692171357372714309606909072138536914636558873090676730048341752718692746940144228399455016123714140774878445801348988383483435661408440311152296494048720112016599961190173175445365705219916125409407543245151118806238482953455806033484095794423862509603460513699802730756132765319976701740149387047474406313583274637543186344011479143018210140533343378294023046764413588421828303955647262549326520395452698632852867601123076921608820227007800092044779693056629611381391052915468525482944052388484503325952409586501278124654881983450157211597230048418574913068698995438566234878337376197935311041139404072588629027137013896825523163778946897429048218028054816403761749150678890397035234380228717382424075914823297922512053970714952459438314695783144695061656103732543987907788521410220154743995373014511228605990785374005980417052626971649836406260878764570339461065786717245673561972269555494333901535347232764831302760563665183970274317154481893786400263606882035530840587259970671194592660049334432863021805107082761831840140858744661686959578775916256818414868262582329145664329737293660311845182701156310558312370805504542855058171003296945828302257782012613735679186000720845758545231728869824779379051865387796766490232579849660108056324675955048126342983390479341867145010724143086066911775052960843553294447415311135906297516024115909896387537347554501280727322105769608202241624628147712015748860395043474350240400554348099199924163687032312863041151340871920392304890784725128150821329247420378609488358588158557737987711442330453643502907538110976892781733379902451661437342998333113527549416855619443869054020305073554212966397820296870769056392722372491760717946075319486989535311208039873666568173923833204446720703868914196948530614739168610360378608436120486728121492658616650217969901394482719720861633653142174787778683761478208014050865856698126763184079526508189128595867944708084717017040350370821570000537138009259242410339627671394619597137244427249440790337939786530686155633118331357846646742573691270668617203813586099616945902728332401924398254362099736596799003064216680620862307793483641859641659420896274186997254850164027217257172563317411423490343225369569482532643821158515181020207048678834083589451831514039859666860567221722331488834581714040212818073542269065466933067729859832150089003552359617316689168376331816722658430796503920846395566029095864531129176937001009624115960811669120251921948618530061393315909163831026671680483728620542026384699943338824362131382949660748994065408065131850638816830233416301792237670791013560903493079983538742005367713799148667627492343477128300410555504041360231571192496661156540438679472271783522848446420225239112228127353937803970811100584232554837735097149655665490562803608039388279003221315885282316992445848077314698591671915538518469078378615619384417320295239209620829815528419448463323053487937593400098852857837027313981502600599747247913385801378595680509065688170439726666100419368814612606373228051116087001526963444332969597135021615669886541653204328531340726709350749966470531981563350247435730696590067981585234989201079819768601562050522195948632893835018922323237161993887949495477749669011761924353153330155666790717069538020126759676579918763306747701452105420463892707721326202693862062602233132015079524307611761751192696076796368892395464909195893163873741396290894459300718495419196935344401438713143541078393494286888669603797456047103289316165007961317880172726379184822409235792213375581179836046889690001625721793284120283425637146151651326533496918609235198791490277967375037643250614410453321784315718914039427374268244927123789037266720155347856293015092573272932972632199559831921568466614572062720067191619790386091718449320048675234426002444731171179954912054409925767756077976174889148092037490235085223730455301343067374694979392004234363850247047961954051955080766490581171829756946402464751909877924430568929268118917023417721499409157023446802692414282658426123630138512521589328957685705416196838467330024537408663296016759258623492756119681619629403837916452624578758572663563226221796331034256902161541521143780967877228413999859456588084317956162702454989551466226842935359670623687518364393534579522447900350432680086688940929827366935068526922199872408239225948055464938510151226454205251161946813874343935808372731842014639959327750185257616978025604136661862635739696258939223937265154774805741502607026686452603693150477098746452542803570403688023141262166314302671632200066226755674229427944114145144445897300883806895555607769849828618328918300790023880571726905934575239951590503457338713488400279615497962535853218199111455114819450832891989191694298634046819548463780751493773494138784621096340004685959324341473339827319288489889150776875284128586220254818609779773099609105765991046615599145150744509527999003643360538902721060197627863442996135213075434685310139747480050765877466337284161176739769383686589033374175977268383246481511856352029867381716085652888696033624813794841881405558828225956078053648048326683241171602156779432073167458535625006569202745378595943287777887481493985343111646822333855694970629402474312533525070366121348173493672350824103692500706581151492383603952419396129719171595397230670984381383982998813944920304487003049305724136831103454065887839105916384236357809607282165950330065292137963892678844410643844547484828184675123352261146526288245836633294209769353293235701168145524794825997874821584552235580593175426688794940399756508075530445880357976329326868307748770240479494253615571103537988197581521850989353132861074626995471726536575560284992312667521941197425792904096154383487519834320230046047036424082771192549319276306575893060993337611971626437907129156239652227787283753642921071443482047067165239887048931626124278875046388200533240806143965386389051506258689485218348190377700832702342741503565896778591437960256517578236147950725122249512205448792179230845468606511634675528681604375393807895274604914779806144431390906990468990805946215420494625521187468083366110337675860805405030803791897947468441730210698491503057463862516530149304524502773135186888112587143977409970644727173971247537780452547720084070849884802567216794124816425338189906777802982420513411173029809010821956891133574740635532031362902040548901703460471343875564594342093637906797503590621322581994649295214496201413054098295650183370732659401605162221951350215343050931937708899779953278738481654131441732461353908573144218618023699716398883950624060862693114981698034645220545090497871721397506938537892537787067222873279556107737054775205748622403948860334923726424459718820898982086067241406948144690371820025977482830001383441923020952974433901606459960693637290922606955096284277059251639919281905851016330578425987409691499897286254575116088564971990327394823639720642151530550118593866442557996861581278073712538357801909112334607291257520218517178338800951144809982699804591041084779258846941049754959238509800307833979667542946006923236292244943738326152893927469762001581945590126520238861772414067933109016073741647439455521269638802461029232249812876318780588132726673306527409692591460026858768096386873594878880244452436337698950686443744861023990656503030955020234280155618064109214676943158709081529543692397477409283333603708060295788091846791088567444414519104067792611336898982882304796948041639420699115889028360629309484589638330222384416974668328828425865506121352823134239600390686612783555865857630976714334065931106101518695470694828933265295078121020815340968779687327650478303447305541128532607541505794532829773563331638900226961409560183867335514264362765789493606334720152164112261748206759715901122015184344064639443267322725072088979266416206141463413457425883676032122702307816410181085087601342883579799619780111575710303870765556676744750729875797156639780890396051067191367439516982024909641010178431944454510763084890877595438451291555265966375135804545415531410451997701529936393068498685449011164354580155387180393768411220194371191184087642382014862828057083371352864568420642185646279896062354708300765750327096107091479930912558041407145702128958014827477929190936718114069021049219605393341265912341687346836781533537058430965254170920199905706064765045123539838286477966311502280697498417354237083648069421700775659653446439466717643642365076264638490870846014940760042532581238303477438809896322745117677753596284242765173006938197170495997695890709212918694336773843769031426692977806573202129189063884036490590667923832512720793400687176124482693920475292784611484711854270171175936338005178480362962225730365298045061234302499936747843874920775039532243124699969685918991153348786201363817554930565081670032557990783796051814005745454825095996973372307928062202949935828529317179400289419403306447414631672643446525400459736469337643014640330340298151729080028952223066891929227286996018676695227130275751045184313719960571147116423064291210258004695812881713622834515900932406331995631436402976845165843743992371712622907643082612609207764221122378424737910355165088650093382192585124848073613266508787331749757003365551871623048167777561757113184014413061951232630694624615413197088357859382257812115345356775261686772798577979472358037422952818692688010590892646503547560485714513503151327286471203935396785572947876266710270561080483756414496239162639903173278399396501068972858843842157374278732264053923739644522448599742160384109915586965602899697126224584078126439684068656869641681418333229451420256620541728379940362903736639541005149997842349602764070903359048594664115662865356486748648896882099755744290564183789367663103266009583705631889560406445586998575492773096456723292309287841538753802234259208954742535251449766596002889204475318235307044893161795803320260182111435727074077191987006022776939998051179891890541019696570849269850857685324347631033072645789615827772341053597357850593654858043277672792757331274263866828157809723213739021621187073705382939142885479270392038837703457721971632712358569197616437955853966280160278373188197721738138622018275272654811456323771552095475459347713184986304324011932921635372688138691376100154806161447471014859123198510676051806639226386678194307214643008676345542632911757896181405400531184816149461237487139750585928071919982285973720390665429012111424134122342685948569497999375175937951270406571220974702356506113692412682360614047794296293769529854386220131634620485245984596000688475365248586863901986683201632726697975805772077024593320020271476623137632856802609733210562968655112362688572502945834921223159389536111704522710913793930323893071108505263139380634367277820607937581650770957885757729131708476518420398373190948233240891176347137220944412483336820016009244308914270959730507948290085343657969676788198498672732546503807179772172250089384881233827694755555132210462785036798221691226122027375209841018777975872177994871687195252634672344115714919189282231057383723263730405914013704155233134782562356160823927033337715060858247552862418867628758993130900045982045647438194306442617508560118273735025387263985963414978958046268058372022619946474301022900925255196269169304424067085077480263934430439064943575870333126714836226396749191187089773271128416768521294202585169222369381963576828731595178361383855562393750606620514474481003576075347569157056242194478621044511438909435658039502867176864969358277474238101895141796713354722186252586414854945857678320666838669751721652839125893496899811175178538666045850674708841900092919467822115915469453961278126593874039119658571757463356047776714848524843900678925451396651589029067103738355021870715344803149640141512738515497312417824084170064667783315774886823381276234441164569814270159776148514849425062517352995830111526354351622022968663071637280096050230574004590604237185690291781057690984006684672325645971763400090101582306527211500651238651945651091696160773482954528853081234201492463870605588297788718700628616464072452137810579439036833995744640017029086642972425657837747484553436269537844125879432301717689291736918619871663416453579636081287804557759304799838999395653613619542692821402872356585913974885644018649039761464858530240747092056287284806836905635232591606829078674876666088045095141734428880201456886950859593857615179314158620888777131609105430779251085060542470730138133060536665414795956682310270828979460229753697758667752974220126812235425175427357180262269100709839018800896186119721683161877650384432331433282733230325326746313269164160810280608304567258184714160299017439450667576976667080201102612578235736013746202368319397490310878473443642540819966263319733094597491397964541581732361003813670558699506275564327858094513773337947438133800889453274184246899211768053770336508237413276928823949950362444989515010776556349165810279626528083781462596418865718632283262873194712746502396178419685862258504434650336964439542002604749459503839466371651484753610150807810018098639101845663335304278776547332743984444716175551757092507902693646867444742828484554432303800681430228663577875618708931637438687591683344546011139768044441702785394880863708378636519765660890508550870485518658001637532117239649485045692730689748274370436746094419220113293034198180901443158493188029601318993179514367083828851894719141318719349509015688853189512538094994661457338741526345254969685997176719837964728354053254068127761799445860731386928386816110423965749441164305127550651094879509849189915711294794547002534068189779447319745289430119389799019758095787933924179327908758335572864225497192963906414085661246180932630241360700205393988563466604610518261514117159178689202079605270123797910945985221331107728573416191157462463290753394433040456462367439581396438275532015502149060834341336543230011372841336330978382107007022468106261154605332735916705269961865555968339638536709131282592695198497153385959441286111100484556658721761605746144677231950120933700407308719088993907518726234212428989008503646916319810917070020731940927417653531200381213526441785735940899829960289038796784021507068585075528064558790170900163630533328363817362551701404681207013277099073323462038407576118516022564602693813872252197331771288486057921498191438681129443515762484122989170793180138187654360087758422462252213591166607033996561428526916268706651009375462326184416270096839148690263193730002731567041496513440497062520106994881035709392391338201060004604348599964890000065773802739947105043115584384581556867797431706228480349457051512984964137444137883279332639881956381147661581639295288305700399222063138333105790125226178890841886788081740033777618302384715502052766963323213594048737892968872720187682839760088627943054532266864993528018257606445026292003596346876605570459610879998791975650902671256422639194385188835300983618835744337128914533016027973007029981589022005314193746787711266269211453423995524397424044702565148617771975949652294528859145002756946809785958548856008073942694443151460773542038331207731371969400048910281165315565804891648429840013384720150137679624582420462733498291976392379265758815453192675113670357761342207433857535279302646664395537785518734069534258151471890743596825656005060853980193854462312324165553599067077827633751293869609328665528474551415377771390003667545307156773713419999714190970029367960562012899638401760395817069145843024258420705385686300693317584270065360171985302885481543564959936115977474558567788702483121529070873708270417103876103314525885352658461594108927662262785950788870160898080178632383313635635391327976128411455996251454666518128516680658570722993463744452121258261068704335182230165342387062982226144725998444763997980964554129280936509609809043845353765646044333442347171894257689341913110181179300622872647083106285062211869765186401537134536550241389993579431474367214629745173147542185744101887079519265435538658900201836232904126397289803027491936617034903271759586033916857299507559773322644005895408857218426434132310765297317792731527794834484175489027259134367019802822449358384287528070942837250766157587344478958782638789752315159927179470480990827339502277940209146210626980149076921443774496444520958457414455526475429104247817091785120292854989952510608231967904072326439793797314977536225679255117740643227364218705203025387193842533118325571344840017316232560354235795984771405200584644396735818207371883881647656058030383195107907345199472217653147741382873111172395387026459548661573998341753347574869113370426951612752738950097664995893981434982108421302800103314686758393574153831947049725980705124958836163840058683841453885006503269667687162914093534642545712140280371431259664374023674021459243004154421479430585320569514826202195672159672924719542067290425944687193713405155959957070535832649390231537477945078261216415181779047494685560192772794095073293687168180355303081341641550845319966930229490102598133638496343622575282413523336652134797761454675894016934656166664870593021324393428440107377664387437344945395549718480810870344256273802657347708561495265092349333656372661855790067145198091105447331485154620676236429769398056853268253672908902000235031095075471648676077028377745034086069034628696081113812613561114433472613186161202904658661283575321044293039979123232941326441532016052637347723577263308316451254906604288343728733691804248648337384050032891028642864070218153887609368277709260180533240727004827887120110013401770431129265788534294732682097692429092580469285514570869787296206637173501669287242372972427383694303693683426565433560202014370737209937908267158481416812157692109611411370274593258360734256215897308552172170941464843384696585030052961927379566699450375881532939555938759539439248982871346668567383540377064954124416789544085618921758107746777265109546707066175894375008701861473205686590456518661287773424645150933488866023886275680782240796948868295022315576747147057695076954883570643386299434979046809596256090868895968824267992375762184043735073813050016716187717269090233426965509541936547653707026752014578168774860624978759554000665260269498833740254400644909241028829035161494633470683520516932477263710757902933599805021308797574476299157701861407801899548812897054090782658005844134842424563086760190878291997603215489392924230487556927937396294827126282997446260001795909704010081191223073330462836405646943662996200401428834741794752298437151930502549895063234641284752936225794102772845473508493655912712561261904977595331536699062644511434119385686529766949774034866057085794821303528525325052831204785612284692608831905413138810547432686208510314026611640641290319491829901626641729481618959016138354885046782601395014609509631154953080825285433980285115575433508266836014377225797432140503674691170347185124906589937379618585709293727410931246986882322646113616648393988012081344431663149951543405474712037114740240060793239028317548707046091371221718248759690593244210377415748065403025900240852458479904558545080195788593245378643684826059670422389955645839500462170985125814783014177282473726902640572757547019143022335131367440755081778413041788610853024461584742114269785372681684617049484237219479651069512968905684523344479133915599448079200024958747919543240470138480057596438402878424597161621422545727947008440760185400795256757023518936853832779020303534095159367120207361382924918118530177232728675068276330713758977590238256033905450079123014975734809925018158189320748639217935139194455748269325688824367301997898412515739571390666040571565593969740065273515684704786066830165978659916472935676959329196094866673262265376221552413707438633562991509189509421368393502254856655880550999218061752975024099944611785295670020225873513181200594305799764268152172189560745899563962259595058001116612092376131442615582181307339774834910499553157277308255180500685368278480486449786981760160651491343905376833113096954253740037046974284448568928950978601299781853121159214057453842381913804085404996769590485028238554326088445275745003050054876619100705333811358602744218300571896774607649718313282103962923076665349586366863780039542616959283932389123148760333859779485010734184747466037643866450843151307692491414772708394142458716148723097169022849795175105213801481601680470684753401378433527969034179940213199413809322477919515746613784957086855705396857978689724932730388050816848071304128176854460687974358676166028568496314816305753446747221594335948101584445250529424112095820107412414148722698291822630852029152006597946794057124230719187519550341134404347677613771389540446103585259514661166332926440485330272784987380259018540659508815554608661034881576976529047471283508673210253090695530946336446682627174568310125621800837552097045336312343717346981312942627197058625799870943922845736952045696439911593100189280766358410463620714542972969943490710293568078521254687926810826579046032245855665090424773432147797730716066417955649809290414095478340047650421522087364475902123339759817293707529670324810453366258500965420788208677764566215589922062588147435063541027711877415770427074995822157186841898094312238338821785122951146924182292674335304956728924968737911256732158464630651978656528049317711927672096765658830092735965380399881397210392362236359544591069185978273686202175579946577008799957900492233687585010820460761526963381127800559039710597710988235011674857569232138048376153113417235163300734102817331768547284089228039045634708250557816618249248854732717067400360231992843074353087527551747003620600355598115050403907023191373449219637608419339808238076336768875072801388455907044974615782532526746506218769679429922040939622848730394206729086846721443416585158173277693284384104431572560480550581746225036835374835375496087884348156437606565470176319678225157715184712734399823617182482688046083089720393703011731933622877481917011368553182515426156656860136979824748779528663128234179376174768306854122087650224631550830501597161987324480846323747265068791042759974628001372751183489547753452829864713128162064608681494715746244071881156364854040938021061658697825167487040661744279107809248341606531636543609378551613507330523054398557145133303578203292229284287828106044285054217039215500749273859310915683749465317196252989980266484765714125975116311928486206264800496362677069145250870216022019120513563652410401356479707999440883569292700465113087400359078765154217039088843482154530916560705287120952609529549002963708562075215346127397781430276141674076962314012519775608005996049323871073151638907285065292171052099274081035465916101091542453647598722048580267741955597900539111229606235566855182042131270831362808004153225403486277645261796347559251742308866610585557511582970566115219158896739261705058922558858562992784122271016129462812545201134151863546585520632403166083888143098408457441642720787571729850663065244425093666723299213380340383147301906982488507966263967247687678478239370530432995489141809184614948572972000862271864615917906955541137764836497392896968561632625979098084708498135063747571257850014650251162651129130408928948481534156325074740558998179293829101789433734345808233076285434617523837867531721611070193806013292058401240563018925936056258615718084181314928134662944867301533560243656358847404722127609764001619390920483397428581561866329236298056474493218963214607932152935931957244597331263737458364787445609652979613955913815440179354947893582354280506540058068583052038131505184106912351412721593300616253088710683084738611932727710725060089598206478082883338188683834450683876581155123593265930650799539394973519208311367899025247315617142338609241913588127220074099391758851999455834771506306411271578468257597567072962855453124223556077918425401483579476129404392067175168178023638834947375368193173232322346006831090686401022343815831133911883138325131116583282425537736757245366094710667709162414905572985126277466701876320556848492951534903114701422202187764794724337635750595836966952141717118235798926561410095224403026283486590698007498502422996136934184794085873276316074205853714085419559849575935035996297692677359283175311501600863309499913646965500569471282879247774648197990267316069153335876901778137673039326195230901395950714056273433517270125769077389899523836753143700103764000321398984477154188577864723067966982164564014662353015843038108931631064906643395880908498677030945248308794882383039462701066085033849682411754185474359301805138125637472256114320056301242563966307759406053437271735216669665995428413759474772920665583251108238433637729490568478671742030754179101332670570708794640285616643127629468019470945874181593443511639055300446235559042563287309371181195521435624474173514095907443057791428561189678291008603616862813655706421952385707185562225317227589959937049788576483967575501683166621999878008337593667996968128859416687140055341256942448690309794420337240812763328230226759428082245252815527847184758798728627753323707172965191665384260537899955572899300349028964785639001776384981480790061260385422450179008197643620741487173868680178217078795858344129799215378949114506012439481436788918025832175911268857736967268307465211967977098450284159235326509985273981297918030940863700345553921867969570268660820118285885477102728229636181062621096526166911740447254593563676544783358228460266833532537234620551256910857127870096107602681772039710023290385293191447308747609705187336714894015071184756982126670751249755620345317805404465081753352115819424327773361798921083285167471253866256782144391932150578936188896265321703157028929400278303724008243674386559109786367862193961910146346639717079369525908948415838328518145309635434904000297428651251307018236306363956543862951564052147588799371512561853994518733991571085867763411253378637448012335928520410372377552584559308368171132807519414114535375539944413491716533124603810284936682532289212882334355741191796065030798506174845385557447551764170517994016816940607109034572030238869403372356434483198667972142614400606551025906241666659981814190201878925024676390000920598918378731402734513739425278803599627557779204589257671251192005891988221528303199238894913505835179820687499055966664067824847080479015814811874581692587624004028444797643696930960311066171258704693436968012328759900033696965610819479261006146405417161213933534932202898100915744051960428646441864039040018685612455368592600305002340634973404595991908569445088879510390981097961465344863737822044528631915449152724319191942403638681511399097023440096604189693300946508034808073136933697129398406532274469321064242370300720305310529991191561547067800813383925923565018363031183067144323046187437914621280557087287175417183386873861691850660594103624526526055848051225521663414244698211118454326444128369387667709740996128648917590832800074374800496202719832520024643715383669716109574019714727649192431638466735166026739488659313828308487460907542590513820985962944348802687094477276789946213234410313340929713336799575400308052927591382188253267911619714840100037936214991730754679983066864113730043376036788783633872937494217603225574029672222136042789701675182496011823842001614509009012135241896289678527677863285093955020447602076573435511668658812423545550600927254146714969952349258622523262012160944185162895327934889559000719760509118808949879539204973336764880381446772736561599706355300150466575126257140165254879187104949880131871777023233962719946025474623346187170016527204834372839970418300620048839287604106688653504583244575396794104257434690727664062709371606755463503220992055581891345760680650580726514700320226466996341510139840859018741021362932337137969037463198875449513117415053197896844926801318954109160286591983311672715468257863037554930962475240923269390702083957143614912349521061599671010965874963744779980061978615735768792345863866799960986742645413790041343855053046417294984316087766729503048732007344578669916851376041426857349717676633320640551786565305393383116456399448752459625526820803821598611950703094886067933305196200479608802810681810501014776398912035067204917863184874027084883502131335058585980983484739346286546711567393310011251696006893112280562469606756987125298824506180225992775513687583385032119564155578336482956286067317986152789426578010118190392022640149424441310756189597628667016794973843742247667823529354500279683133946366339606107992666356131306966783656372945089581165861902969251721358792514584316430986329817701095860143641675765829596970472755988236631403729384058730435669516279102993512280563958231617305256164521172353137686740101744274385357906328031161194061882543873773817979608731163785733252025858875814229008742600162655792844352965564960936296105005399977099642750309643469094377562527303870236082214004831174341946061783168080895587019080876250606524358680943188187158752920905387114584929790699013490508117591191964526506691335579829949906066459202393321277663748719047794398674243980465444580994188573968301725145177360798968571577352028844244994942967161996293732793821047795667351786284420813915772632604240967998488173716213651397589188209911078381101259463991593308330096220346170816037524923078120534106131020637996852259526977992185460324324149889798825129570530069336331822296805233590850089888001410386420341807761895041272760800743981226546028336753169847529337937530891125430050121397972617411159924134610950810473090451259072096939367364832414626625811838534773100084702326872583674485150068095830514895868987993165684128103317733753453808720180910027015379573888137111483919051616989376839422621557439930112171455032388628234878341780329344195464241533703019876585755649477685804641204123570646604167881655117382015740139789356712133748906180056340944539781458075985296991234232519949579795676982780210688765741812735938920634820922570483976228050047380315218538929786496810356382534364344663873306364406517769592945551434521416018399215684873187267779543496468429345584056550895996623971389171396954080861165297804917312579557591378784928903373596960952170596227919523376728939376206382166039865850530081855171587878542059759223181040657809187469405877435386064484309639709856962956549148673416207180624977293104376002927082259494200242399111382951869751300617919766137615222495163392685537289768297140586091342640916019713424425256308966681309459493412793615565466978552195102127773745356796718677011092361694180523899631583379738066742374584371840629529236133275982649597282074581571606317912569293375390816506239150596613914361702595772948198197632107112671937236409532876889881193772878116573930127410150393832530613667960188831939154520342370964979560776320047392266241358436672192137335389408336351999721910827378159093496152344078412790899522773729317521516384906126645697803070639119474046369862126428754219878422543961111833936988289395082955268085600353588232101940423996193200066602735777066603787437428834940841589065925629344826907661972990877301295924093712333999833133366295795167985240585763804130325351884403788710628766465398502681515226026917720007517686518433439516124914824962324087876763121256721213244436253989085768211857774062357056706184049180959890942999666306785510033515462890661533590256505285179240609474226835887001917577846198633210687344324145445700963936534132176865191363002233992790223060002578411469158620939390214743661287227790857013577673526032059403287597258642164685172872458189569926725735990829519537088519565173502912958984887894813131201473501571989007374941968165771393325041709282399809273071881926716869353861829561111700976388403492706102977838903757014839536707820677812498002730328772226600616925845883157063880529835695447905140032853238734071015489691418811976514508592304884680012701638386023595880695750722645635834305348058959413721854416724913782035733101921670310331666562610796313075399084802781640951094756762591478286476245883001233206675547619380062727963457312771834405319929535415232026981708335095699654774231560680252569473699530712119917712770248437291779400664767369591158944351263863011811677883420274140505189056108913854147919518712251392775529805714858924246742137621065539874493779753771346241929476237544268995199881912144531697084575577641232583218687033071564032211763967003665598760594864636730414821517145252195437093716702438793663777536446948686575739195991355505011201232765316128003889868033604682877515230181906810434420755809484055862341898434806076446468149036888809442787571842459642991475630596356558980455153652405823836592317910338485878780200209072945061450535397451507178048640877954630752030897968234243716035319656056412441495945048123554415055757708146419610913723659659044131050501921619002322873883099203131231253886753328234705627763923721629349889442058306500170054995365582295292049115975123608943110003337415436815033501914732876746585048365718603906622739604896234332595429604189514372752183090668059676404045853983159437349061699886599145046304660416911616324822136278620364617779771898679962686075210982414900458932580005184183605705612107093397072933988027307843632767205905291614420267703012734145178739991721644151258639782519912456659958749475149488073641418583996117616039876733528785381629330221031305437406500592793981254567890207338789093154218081190596661382441740333884142221652053100003089719113260417916199862123400861032093959736066532122707268324449072839212162498983658965104255488326587837239725807097170402505819498355858412251148491925856720140265226668857018059222782519755281406103772673713131302568765753312776006106730446487411087899492443179227604497919871510610975284027194282023642445546560916780765096522965910334690070701757361852727421249211844716539565998405948388951355061881230963844824587953559901733136085410280494864868222711542427509088598058825386763910530010675538554938955204929555438362572480731897627202905734959427171184506493112500415891859956629100530947252685566803406449530439395364987261417319209615519617223220878888835302193183857234988238998197995575019366702088661234689483472859020550991746357748235870910924790800508806767715697009625496453101750039641165423805614095109909244523996441953632186836547068226634458700323636693370361012066007310600764630981776172394608756160355181227955120019049164274755947334252530029057734686084411421307735531853874595199612745994012393779369336584986470681908004889515495302034967691053442422608859553487195632161624175778853647771756819888046755102219123960143416155641668114057152998882301516461350832830159823299934130045012025322538486209643058665719067768702037725212843515438631479874023813709939534032454940083111998409153816728862759628257402286320931432010946502273609712888846295040036027462787664691283000665213089467192135194783707878676816313021906114022952381293257986583315899985356016154237409586154151928905946288529676136768987378256660067522458982780862473369452883948848479059641097818771891484766864742503169802077181482813234113804209154635667794159047542696330037353741115543403054174831489582085003179736959838752772974922114707893994762400689425448183732722016458742163818380272595849202766798133625950098088117271294460439642697038776195379982242708197902009008784732709608841341334913640387050538225012949433060829353568389134319162036447391033652944703484008373922183283190107705345747140114496315847026533971150481796059083041904165685136199030171471706204705336072747230166231308923580440114677511065661209529013008791633273997257511320541359175793807894720610723904031468977943589397729108936482602240892620934531786997143646720317000503153921506579675631785893592582450414054631759326469540463582758604673442803143803536120480023687834719193005900491102820704403001297663672814878313416261734610138290643763142352010271827273314030506655180025474782173758078846260674588638209375072817678134427454056650792043069595996216582196975259505761454356324075913994536999604200211339173913582918958334837582107746737682137597443571826428144966515566570289979260860954221571282535494559729203227244065682562315344310294370304688302922162398510247185092546047110299857654904088657251985419936997187894234738059714209818685386561839112869805762488578535613627168346882259134475114461310314970992463835831607650763324716532046932545977738128610283035760781572494558405882733736051261579574078888024207956466143032640555307836906106075126490555418002517695929495284685465189037947608640678375358963253179750502314128140532706409236035210841519308132915398527600507746353789214920035637527039661864136846977904367205545839466222802908130026637855129776268874002379556663434507901685996540547133255042978690538066975353064682404045406436110151856829173087667433510697995231853881470437304247925851874963522851099548414007486361038974904446125907053707615801142440662992608427635465450849553491557222303953167732326685782708747127632298619731139138154049567829634137285679793626762051795785940883704696479727701301407574697753642938771082854709349321820964767865533703895389396199253044645962003715050006538740693641392023342622114167374996599041552468212641664473807577957470225352000775247024609731841916512570719946132306808724410532294909798890382518799810479109485176432004427881448778878945798376086640320694626831262643354126174012404930087825863038724739401491768598335384023930881782646969639835814560442663703728221816516276780628461595464489460114026779341861307448757855028144175904712405889289807127174796569332388551555118533800761380010530164872632031267803146228593808850880329732521089849378581569052044736566072287311669518937029642996084638165029956117911925711896261548334700824729671875153301436623557237645137416907625206222434166164256298684802538987078325603031844720523143837817695887074769694359423691216580334950450692836428007366488258601952476719874971892619258543428655162888397426531821942624888037144305118615427049956820749191186480757101849003722328671658814979417568325449776549874045906338296127317998979516753819000785837561827389386750366806934336024496394868225245805909621938913551723950943337952985541332497625836219766027838362728042282835255554106325342441907352081662205156483295874733714387663707913763047798953210408631088911846042167276343940705250975530298286454883352762455425857856801588928550233562340654706911190507673084371623689331189372091561719106323687893068519134510501250325689126089865240715072449464499988235877260157680047016926408924876148257816411099156616106866189476584787351366025875438457771026806644816685124354686572985526207650548648471730719725366792861895332503252894051915489451589168605999256064017942462075695088277129123506161638305685010551867991239256254013597577420510677306502703821570654586435729981861715382668110142695291569251900194733401855472165624383438963421103781981045885809875376834422033667060596306659681949602029696802627805425798628914519191276458505320305737227230524633020988732817314138176676150624979529194227359210384599990074602008451404896778991479372127599191597691724856674779429943935144856806235351705765480891407324211277824176638894900201358372794942062938498079343109816600608048488346497515230524949586717185238890834004454532943455818963334355228928086511518658944052460677443289261973896048318286898116321963185817064784402206576595155443326760410155464257804076018419192040788675695160246461131264103782536505399131521367935369566232548938796966763528751773907805888953394528034981678133018300676254779251924679055726471346277127974621647212658438090723482047626343719257654712341089113143048432868111051971555174572036121299709419965393609054557419190156440856733256828926653394539106803850984996426160030070127144749942523899368451893380767631223586864599808454812459427198559124141625794735010032570502516233628086322199939754984166202435865754588549225997178115018863276803561423815202596704145788919489221902723662987522255692018398953517658544167074101497798762804421324914673129819990147372239922637693548777667431160020730142251817683699345833051831918375070620617106173120007212891610420419887487700220982574616622480266064214720632162378935204661450071861362201783456902229124336120110077008166272359173514595683282982435483434375418971323928381382703813043831437867387445290670164079735158470717644626229681553345118515262965238779991373070823752392397967102753033111243367924610081735196388103593456565850935148742171007378058080000789384296871630598295931345396007412849407898299408308395008373206421223018735097440756035947647282725958486632337190166312023147549287761258240513004200886386446994794663769721651562142101967155288121437995771043328363770681284317597515548253339862089161908013320407877091565697732499810425749544235276361835151210656402280178759808671776099015086988123672547776401265052694597906368529756721282334146247736473134782966629376028544093200300733664319178249190171536578529226785910630599553226342600370137395881941457886557810345920631185764851759626746652015913177712066357037220528848924449118291845441742766780791734497181497024797613390678951408035802156568350768781492035585974536865535530395277237451085310425403333559151107478880064730027624337706122448974609640803459725890217009936958229890214522435200751651116405309502877479235523991480526996326291345388494097753379435794818109354763909145271233415446199963593471157534716500590012525592434342290841880595083989831296003580355345132991909363270089917528918261736884688948193518188377072390286762971694395880271295561417855709869787485382242632742543766969136369659376157348380571529735280509706050358959130140305432809159864063820803331075388255902309114035347385807311491341898102721164295927053972369969069954568768145156176122638456740242172377072431258797226846395600649230858253897423010291399525119257134708750598760860341114298539763878625284193391302725708140647663909126614773355992310085487932966001032399494292429170256029461748974482268731358308080711450376734756014527739058563922436006440210141141023236694777237248862378079646749781482210108836334279729360042220659247081129105818300674328936530774173977021620727320295851951664620238383540682667709571178684432394608723493374382114637249460505451453873712231006537493572669636568960557505430366786982036310442515588188149010031505044966244063865220845523106617978592432034603459359561182178288961878274201138444151934475928349332281200270411179749659598208935871983139739839628296825295468355538164818669740793278988902005916229445131387716307817336528647327161219035380930029932721229671720667253594389390714934007775591189719311483087715420756572514363487901388648619894426291405957862358161589020402710363196977678429453938175922723810317820047180822475933300269337690955050069910864534066862928548238911322693943251320185638348575008561182316113049703463600308429711106211429840440396915796490348803508537987685522955037048918220022847895952202598071243376679807749864802672159173017107389366132292956931422861513524103643212996612761592202874015943523504367708385025139894912284593971192496827410093421963785195865776711235793671496696429559832430469352843635417199556665149931075132436220438555225833282805867973373808138382746788675253372385810561684472327696765500342566377066467468056304156470339994742465685509291408749934674128243931855996076107533253809844348737034994616421670082176768605728566345186200728064933603355105486525137868839063345916033435902384977542974284657087583274477108662406191774618769129922390289559642648608183376426098584606815658238533047056379347644752030678062648548150441112841482155640520916868312730970168670382569183736640412190150292918013383839259876851476173353594740888108537005838250537794912053428217621689804830876331552601293530384657898995598141708769522216759234836154324289668130485727599837863192951817052996880965630307162882806697965971399050876320288062249862466488565868553250472096806408943404842752574236925425064122282164564674483962925265235875590528386040088312636442202423572215367847978260928400020786598468351652386028155851341594060064721732368233910730290862741621182823155841943038931414369515128883952152809162905101085696103996678018541958194222057163152327545134370026122701819956033999995852968289615359407992145243738814700105523900915465290260022774178115668904593739670227925518933885626170567007962031726894957345291226824286675231477145942811177285985300085430917848972689833666192561338710895251940930394931563782847117599510345502208294584499628911955825632671402580063567731285505459449809799559916536580085735265893555999531174416049932603360954638161905253515724864107093556418198670329139829847900532514428469655329201070465446878751641472415364164408514008347316276218832337601307863410436626155610929901813772607952495433257345532038498098396886732895812146274849524395861922931059471523100327723341440863554465575714066656736818288924195264883320839978755999229947738342766762315618017945156966284836769853206009472817154803506904790082248654191194333434400584149166929628006190079271989859950509734491032796801713680172556129149616520661792531549386615609554939048670722965750609091711981373951642385308971585119482910591841624365938156696630106283731923854585605799216150103224258221008647273365679671250457919792579513657018481014196985784922641679807943725137861584209773831450128434130109669834115103853119935586924589275027386354665405129303053338841553407387836035639951617946198425273192701678299007735663828423416198501609780614474235546381517559938432922038193704982697029513088307004090764610943681470415514690489900235247330493234310031510855671986987708226628802621229550176741763104293154466012102770820121003973355220902618046379697204834431340069904109795178647150796536941825301438581993117517425151238810497615137671170490355407392336074435363459563153860857812999723189273066831298906279168188285280784407890322415561693767571932957913570078772326886426516502566312582021079940041606156468168195847864422001131282826639957849303220248277879731388167622060519093813395091182008207217972130272569121290598622479019326996232977199983942254123177339521083682425889112451773723759560098088843687394010700164376580963141853987130140658953476606225229413516281903936685513680936920304318625295761810601538587857396254440178277334726672880638130300602063145393400480388771706195777316529382477074169841221445663566149619514116831419314685450699837280297822770669075904828254455355100493007781862548949033398106321036980132654986982379818476287603091105497133272540895173896227448928387005991247397340497912603835391585031676253029321151684264306194475593197455160221444304932795177488477512474991401172157016728025842117381837476079471717525568123778924463612449213378454098846925803819987799782874384951310846128327712032507756828175271800487372884324266500883648546478634337238188077085974386461234595250902518167133803819858004393441689413072147984551047503470177153674359993850865054899150993580436489917742052980257792314538526904165486858119862882661211707989095064414241614386924659230083263371409049535409174577539841223925284834823649312821505676375302765788741071427172395236066519694313753038238528558431292234234601213956359896353277494976398809955607848723531365638154207919166087921867002694988909636725706924457233891913922079292039813818296921700062846236973394093498933460310696623715518693123093523461505445070276461966082013185687682314184180068131950282424767229271264697470544202589800326277940192607751608750022093953559584785269373322405758216661235114014134005653972406224306217121746467392771426830106071934388598307595986874298348229773936354830887862953762366808029163371386218374819291853678898111839204640396308377747079965063591726490898208589092137988492969387062644413116115581927378633550097648224506731556728831496957072164762259669361880390433211541982080650313461148371584166963550058204527386408396885301474626783500907525338136504237831849049876792479783172113393311185824304044361204700994181053467233350235486676098480925230957747077149258281724957185648329632072255420884439705758502768956809596158305195110473329604750218038402832179136165303706927091250571772235186310217889074633601306688211253620355176510729044633395027875003172857138553345802174618503993196379434104994904973451766445248085600498144878302371632769871080626625077665261507187923101524161509103980802596864315321730613718995783070823349474152953567110837620881720658025440590225844330167720603486935463272870284475449159948698247435037609777878563076371249710800933611573265894415091274126468839711291669418459807825825374254818348987599643277185294266644101454760737313759186786977048556629235676436541549110030193018639997852891340951632855187178696487800431847890548727357865740253417300308779702170117366014241702053980650723965005219977205160663384366632200071374250473565724821054258897643917478674031017309798435222081893825442545856267173952136705149859296614724549129779726701852977970731606968763050498902641755271767409038809146829070995699531535379539400415430200785031629987873455223083200181743211500105623319853593440487817672361768814156385305941100656759340744354723549701978925041031768023085015126145352017844612359968922904129564056362224539679988237746566206569775256573714456098727047924649288718038431073477917165221512609733544645559491491365315449286582966646940147358992885872523259665837327858481785332425933226050083262346677749032598966998248037944026854357103502707183094140522007650087166495296917779290808511802296083035172414374192126486888705359598264563520625063555480447715744778033803905451890852288531098180370945559008126281700120301188518810527313440770634014894758185271493948647108374652519502333718184449325463832699093145580324203279987566486264870538472873219596739178094466115332188099155418161719114131842897011937196233752128242067234317348720999962583996163710180925894997432326083215864513400586975401697473542734006896948824739454463445497072927535149122618307058282158776627707846582213285177394932857315896590010198860894677047538635148424808921529367022264111218810444816242148483316971694051144071435262345528800525192611054436645234476028243169355748382141972412578617120854005340344457077883401161537281493325819491410561580136690665292787852047052912591409816749794956905842567492044399627507105857255524691398621360902794116223200372826663075761033505534187859365852765455318944788450773846886103039075790493981763950450340388833369768570707502655159446841260451921351458117803604558345255943551811703519498378195498628623831527234252293964373542988039219363470460096507415979428293026032748675305513130075281283950239257875106626526828183995355003441451298017374448353444415190653275952697626814440001097064693477044559417263802332935400843890353887271730932091729704516403277097733502306282617368751946296754539294349037807355401552837886153978555513649273521887439967148286113815464001027089638602262803668996722904904944402052440293596824664096001325100350373714437248313530215037618851642273900931025214578307549128131121070575135317597294138674590116195499216030885410665939714899242268162747135679637862436138220109431343639775190774272434417148937747792467576909150610105244542174684703322638370684998359872565766612774701701871938696851767851284478086871635667361110923167574228850071622206461230802386758021636113883057395795990178702728418568353800928482063031602624217538274097612101269283430861144326174014860192310025486050907205542282849940868599711704391548269469676046449619486018520789441241072977671912753701967497733173214342115921864720308677472943127371655223469520188881907976418675888487594851014596628651176915453120839822150979038033065674082447173998718741259908225093237871526904478961199192219639048104159497794461616099574757837256858078964418635170313862169501095576588366088384655268178662156598980802487954952789867005063047146482371725465657755143292180090707187662255837276107273793000371234953577058837865578415537550254192747077340634948155497735446862130738362622398059741189396727089386978368129809421051106767581233183404491189528927442280346293403469238655439938679207196053036535690298520428400343918762238745168605974479943103396519855142528959212769464365835153465375687177337123393170481163966569202092362566751149672972032486167346890403849231242832926660032100097738653024360710653353857752182811962917256912634062030330893138471498409946598148058348905825778150217840405960740099400821777643189106851085335025852663371723689067157927727646200706893594273793585519450399612220479038999908063629757381401937033065544415225312690257902475472690531201648457071784289309848993418127325205254029720718912785792287382310476682131841390491429807313713263631794582439650013566020632052658871838162842113122599291200999757466602764125444914731305960817778864817980708741351474635836439035146154487443480192443153977900778827266148524442343593370187284951062917415754103583093664177430215354379438073546248583323136919438905992322545280384439443369154195453791944128756569296062266469884721334232425034010354513909872656442784773629478128404401120062778771248965077899816604937252475545383066166715166785723457784520997037061503948028342305202359946946973452862115631746654061621208377236437740233901289008087124483373147214948601210810999288046753013541254866300109927870363123568451599734065043142729016185160475610628153211442253598960910823000914831935976120577693746487074676456115039178484572916941421804761992338513811344703703940369042824388399321922418759789843737419106990698569630585274707600623088938941711478568067263416379426148780663717673503921560316968116115670224220211625475243234249210266521248002494014935624855780325771767192992373285789847759491469554770856853268153141239008651190764379106668324307064565642035557948491371494668587990998059400510339050102308320197797495041255330966506215246631129455165603421135742396780302777821606644101583837210784538999105887313692852103049468367918734701690416749105588237371917537720628585986365556682970583228814439156717791925811728843674324463444526639216967369596942849068833230856128608989135377146007042055343154241894479449055719911958124354370481466684747971577067895419210204969673643665517776272904654917852465300701319798361045417952965723375648586894909693904770972344225946791300564893171953297257586495680064300416976759264667136746274473563154145664856352522868260600525229503145003971813432232368609418019657217899767885807514941933290403655866445528809513511829128554843727369088620244603681606032094928711113042964025283954584239143847024279666967782267596795087382657401447567942965444035720500397453829205152870508612253514611308088072482565822886591974424582588333163332892377283179146551669043920086297196153889252849651376606897490372870527261094976054394045458817252385293233448481548077457669707040079675274343117966718659297225975780417768094405120535963192997601169435186663316254208600745215238048866224133197540350477518444434824139815824811236646803030972046152178103409754161758833883823570455926924141943330063212093119672086338896903730115427931108907214232509112203582006716089471409386711985916478550883278989838946336965446411208547467685640232261468351415118257722621173158878349535642927582211722210234154014557279819030619026812043312163386505455864054151378029548505525420483943211118489066837391956074514946868695559747683338808194729502599484050547880370133289222955117545697136534974579805102314754594369321861791194162957795492929738316530431910197875869002130686804329934903960050650019935024482704175555501652328295700442363332161597891277026899106804591985044736769797490575239159831315463223539450640282725806174602653975997355546091414730681691790181386196956782858365435131760504715769030088309171168324453843538535160612233279293485403808889104491496895160065114838538827684226862546725379307088875936788678997113027752997815144333903930004980559228717417526093165400485228922185266007610394595547183819423907387773504879206872791711952355640196548574702110505484359704707644920375184247945605657012904517423132215493862157864878843991341693726452708039391290402682433684171537349966026598366601776361371339304821141452449289369423680130833016185586283957141649741922105875104277465678982041413403487819984937728575812266509648853826228399165886034682282925427828782608416463642661923762485066655743771613634631546095174848949265282456533118246296276988358479973642840669597338837367420246030433050308439276461131383730797240635406092517664604779348666795163999877401165376527174087204686682132412334915490913889857729199992929270539970044431508765851306546120909887825753400093920090326089855725997390617246190755324487921754931031518213281187661123783844931579230446231585948721748686144403583283512730757752188097850111856900837180407537592807482521166504775483687884248432049666005316485903021096001940976902608309210563251707041318793987755165136345162386265086274016307139044334192075050178394745334998714745368939659438968806452767766499796299568129607128456092608593567942579690830914696273926702712324665841755667000744878197576522713719368115788358776807867226323929836836294441124278426717640886770262985746631368453682319358670691557579275322721329773119322615465375645264705101034298916052348411271691668822620246951488933613746182794484570819328856338531337650760911113329818918664518105520655464334107973040314390905367406810624039916867419434337347731633317521511627494165311580431388382515487473741047328785775505374549695741981250400565103195182663874926718042081436952292335129589616750476864529480520367868665993232236927564209761174337678002585518235597085826547612305738109654816129324282407479084044898431618540665954111675119750739400690352117784183905008384068593815030861124538555722553435200645266063655480079185772007379708259021298114077669266651746664517569444931859596124103523651472389945197641868162441200765366700375803316019705953748568879842019133016097342231780331271046461250361070551196546008505658338004410279873436570441902119806886343403066844490938709792260071397543766314881728219174273793582089155603176527463295622084045042478754723322581769565125216020348798561816201370912839093372918135081903237143469702112543208551681047820174301444832739193593200488552343000896828708923100987954013873576709126264446769514369091875712696545795221252624345021458238384780166917779805015538011338518843126279580576102935343819553502535379441870282450666426092453806566662092788805049143013352066495965413691264378570842727571435682319732426472580045254932971860560253582943245803346276116069146917378373201254844762662738844266969531505926840471332861924488092465537029126589227725474617791426552585341644942916333440648556901315848489776898556379739702239002184205532264396138902503821700690383734560611630032346263657393300713753632346302588888588444173393714270249701364426128789803058725200103490120514496939996562400684182634920331673632623704330416641757747804699436774806349071758765519127579074668385885186052076550626270813836147860154843179472592658853691704969711436186496117076677520287002865799197225205955167096231589153367911127780512541015361807980482305750941638599756853313233411208514079020111481950468651343668915647786886332377883348649415349110545651935392988466690862599221718909594882467479524491329182958967118328882800704524055577024833279292391404467822947940236636005452593103948825030543801650354133583471256678906486279273942805641071869231649308879190275236120736040459008810146299550450080860069655184604819772739938638126630905234885561277400557936155312471474342147085770371112698740944055295280481785965077197625740865597261320651559730406568163265905036970077708595032199643930823960493352008444041225090444825379796633967317643142642881228093823740490271112642671930788739109451100440790683066526245564522243556573897204267493208798315611872811657261708639826037665382679276026100950602962706987422445759738145773009323772996368133314128477221333093285035810726746831229971841147963978140333878360800773760930959383315036183064201315084061026248081753970695324055414633823180733878428382712102850765865412138996122147327926722633889494743341267452015273818291904897936122075641900790935282673209085724273762723360429873453309932934273199807745785797948492646567902255503059244759203084903304636127278115268673838246269603364631749378672562356854923297282923720582904654518157494931800853691817566746826749082437651040150368003469139455921436187391152674621357642280008331866832433937837284343313670334454976703939612318241021182350356473915014316220994750195504745741306780116440188222765929198423434477659587626388902196437951478132136314423446042958926660353285925442690940198147895561987251103869554210997544610335234477102025095007826180726073323273967233026175516422125761665033367758190043504210621985780796565594981912860361951582577620031805725125724218686674602596149624227022801159396336149643580785640953140931954856548302019605827653781944006424779975909068515372527244276195184399746945704775591972637290415175453517392033944091366982502817771929296624748239015284474230582908239940226718176507306528065716439559439433936698479875764735249755701112564777568336052072369700634713230012761371316238112832327314045701081435052654865537811858744030371552753020134074767157067349447302890194203878701811378786300805760036062995614170677291765225519947291780786504432618107487433391571103539754885939003452519778364149570284306148758051025455864524518253997505948310995817165098342990812737674107050598933534579050439866054679660686391505766303405083679722617914421698719564444499790282883549771299619318677612293126697649692116501345769233673591262538715750969321680674290480893348136417295699927885279016715073501664268890426448123273054517620203424060247570905994254970153569755072275582699019527624431643733198015379505353111906556652569358841723212664764945767153647744182999096130822111391982078016547620700577397656595911703014583024198066942387475834127755971735540450713175664318480594896397754778354075840634340335127639343551268905283239038919760808258393896943552989767989492505300347245953153295834274009226736486270952036359007246341131277814108847683450413832799427751129616883160075248322973698602817371264145953763600983917146804472668007536915966021854633545883047940746737645833873347484141410144513305765443160649275504284776723469303181016697224581861816042982916891794899637537686448607864439384248153246888741608236322578459131019727792897461568475152361618406133025888775330822090209066470364454386701392307638354798408106941236733905562638886101134494279222685292647614951770590802677313072790152261132140156989083495186865251403223353165061763494462410368303134765135536712670346231893179361283658781124649572573073232266541936165262322930701005033807949790100393354544187691915620386860994403418261473149163290453811120403114436097383339900311105708148528238730992510757367554550755615122815940394518391366379383493049994569334668736181285498499847816241696563238709526514757866088052083099799380274690708470803759703400910173542064881928774988691718532447947492318121990127115686805253200732990868233388602400617397046922910572869600081251441093381673059648436265294139845350643156494226071942623426263813733932188572318974971331482200468109268248178802396138686505341768737576686273567239276083543515701702143104424729849345639756661448393858916998174746338415053117320679898722461690433144438924457266459851678666369457458352547928798039052010724867846797529178618995471582308733988427055817715560827622069761568060206795381955533412172471721699546872922269951617024237661004905096107551897604807066511227955387930029092108971362605527419075971226544216362769143114381603540648622191641773458025670952017660439594766906299400241559022350560889948047045121211126613961921727090234620927381889576110459905130849716612399486857285677580733858092779458283041333950866739939416384114691878543943703262287677975874811659631157380101452770874215221901107033307574093000773411026147681301246402464639637130827422473021535737774555799852988548073852989422063899238155068159793028641649461645838515302117004261961947281034702098266342163795554978392982699763211697534567743848966070416144624706747539003899835433539942317898128994135953810487448521282943917422101410300043289952598426393442428208855711265730482979329703226151460610267081726731532743008238265772359786817198665377729818931709974688686522152544766149175217116457527886405895481087039634770799267734918901658081962863556042301527909321265662795124242937699475107808124040760921174880510366549342996937447574725073780608407992031920821153345599198824327735503571442993926368003234684234197147064634595645407350616313091103500704391952104497031674158978935317981987688476880641371067091489823339351990260010283837862385273449793946036773767982809692125906413671269715420986290155708460360216753371946510817434610798808518599207386922468018418160616653923984578047004814330923721445518496343602636005477647892826638928132063346871943310476862393520150336279901461628829135316856615861421342430360603040252434239970514674132356460109034710155806840123190289156106061783506567707702071729464347264533961344503290579891693462893048739766224242097804402647172709030300490364125651597462104639840581189096564873813727950639991403382712047561366959946168608891212612498310266115562389283640886590814716349745315518020388470905168811420877459351984206797974853353899720426079286540442468684768892691739316416036440246159042346996436989756361691760833106625711648146834569729554789120079940232773184953261477442524473873910462086164420861159831398859961878056219975816244949703940122877664381097121133545473991710530104929887756207385896389473689902930949931158781779225549145419658410779777802834472977599821910063578743227575825990647835943995656691922284351688632085509910737307372354802258673450093977055370099038920828997334218974334840718306180567794252253330423649162262983947118072381639970426036602036255612138634388508958300193917243786649741072201637456810044425764183046178735872186431103769506876835775971486614889219298513168672318922275559176942169745316288608614460403402834974764126151553816728375683626154502205538899674582036068685661553990183991678016617638775491540570419070663968242392748736883471414683607874461281584546164480693107831184255218913042563891421734426253613144754031223961194827150193419732512992917786134166666799867404714565476310434285247146823694507389527927583596339864520757971499940744165847335265173179614491768836167017397693837060726270447385631412029770400175560428249008592529785843051837804342046251348248634181970888319738444098943001666997362086453200676993931307909166033345167460038523926382467072799112824162672499178948945679535126807906608682851498770565493441508583362184932673273062394814483653471521724229423167864229791522157405337311401917894943311871552009652915821279978309284625097378318629493588789418309296700367401034979407813250168356103923885739951353508042227153815303158800451864254696399563232697820593077807093240650395973692998462595227821559753069932973471769486079307629102759035794451438028154875061170463344987230289640713606869458012343561942248775330292561407045264218928705516318582919692001738719567236345789098194900170378235024965853086704317575671317192261733139573728171183765871455998018207048458866472042668923678723264939316332550233267204457631257213648750332262809102097115587348776062944218536905095565791740258830507708526673440956747774696097954373805765719253285007738697131974802336274004009781893161216903589374641837931719798355855606642858825135568632989378266363788011074111962410835653751866165491877194937242247406284778579816687296729241411573648678712040819110681907445565359686020865566706356826113026476083556937061274524988647068798916785600487718999681204670980682579632916114086961589594319148120037399135245429745489947652531222964077322420520703812800447516529969400126534408954037999343529187160071956863754441333237834343377507266339639729313759321628768344255279514397989082953930829564119359905868021580292880054314853998210649972700532248306620564648306993248646562759195715049467480677039990275879487885392646139680366875003737786430518203008216572475242397013199576710483033669164801359275926030238905999462694049593382242799475250779409451539893537056773220518220386687844438404402996052279156967892679675292939419311633419502096300481789033463309610874081052207708609219399608355194884811786091261331567533463093067669427944344018533123813130460177337217312982825308695770539986120594145524418710766742147131333210751704235549700568989725891999470905098805696765123572315119506976365630492585616997611466230720926610120985564880441093591363528830518520156190168063382815392022438107755030092495240109327145992996857277109219401792330355516226004899449911419561713451657291285416076784108219687094904898033835542706556745540848297642459459017735578232654156730826252711457075103228859020354596895403571392427684265252630105873914687423944509028098416877542853086770789938555673466060362344008939956870567085873106267751106199600750346074007016368365719473020563097456319721995915629791302414569437791084994098190191760423216756758108466680151356728812441255071714695494868596182705065282781874667321659587365786721079236985780372315575621823439444976066223065651230750854752949823647110032666482191688602443813703896900534265912712483201507629792294323694663126432549188705999942861439524069706040286183192633399486000675771288783466923904882208446780248043597922009693928429494472858269301365113337349468063307218940916058701586230356236120097325842858338907880948584288203285093380225962448658556134098487169907748856878311703260783032747920411268782667600300010570993009408209819883483246728944072458757264730200986564725897062642954249895803053031990241944839809775978669460773513297400777280225068043711247871525591080228764655379146157490091383202266834574381197525089067303231006545768430577736811648576568911127000771776115219051737337489189787042555310573927530697107104598597416759141593351376256461325867254305939314947145274208773587239364105175432396989045888016772785490608409932054529333440451824954266316460071174862195660097840017708382289752307706162918011177757624192456338716785510972300785848220043656241026521581359064088843200466839465237800360698660273496771142427130588720917902682065117010507411722740926664088801535104288032096326621484146311755090665394111468308473264323223482745927166817465991501373872771175920253281157769452794908336781438155501716766084673184468972392245387270243150804039475461648229857095021583120601330923819468068473168960323101801611267650181308314665729727074691140053715842520811771969750932548354807905318907578787873668968984594838123144249043014283389411307349309789579656709507211248918071841537775772122769166544415035578425791598182641309952764060083917106177857043450958910648483444198199464685170855456373164200828825400403765797226537087534076568839606568921211185724329399680159692768720773038025447373220964671067409669736034479820120640743447150376145671238391101833124993190286108793759243729590312718544741537026856526949737594180263455135154636727440650921404118323255107066715686032047130178941716374939532311106230317881084340831024333509126237492152360478096543518666139265853218906774995949824814923843391607257969030305970492708338533351110992241868465583164287160450979118628313269184182998898081034765668522484292912139731431895075562134695414142839683913972082675222551818226631309104200954015368082361696174044881157640586460546073148688875782621730308480612795028793063319999976181239056878617833334825051613417930471859447329415047088596968610678243494854956971102680638295665963797926818794714241030387768202625590026714224787996146206491088745301116707677748281778542237868652930004796020247444556753767345008601604666972980542883375118299523279741893179950372992107748025920082996966466269134858535152011367543280774882923428047870695233211051176740607177455327279822389230927244003811701093880822029903756418770688659372578717179440311253399347577414653224481801723805495581694976285510489126533574424763670870773049925307819435377245547251673047830595559962950830684703705626325395675794475660352778821097886653519951057254957558141597142263319219473240228968304653713794771245899630965144464004942260379371616924511077870452644992585036095576883201348933345513239897145968637642313030149939517026822509758473099670885936983429495521208434704776651988661631724833336796596774879033749622669398427974212798170305791104936514823133106556799165867026186868341197347651938909594129161008948161914854142579427257894740834953145509980395301913342409872315653624852624754986154086270507781101878206917422320987840455792614425211626874231784130152625779387599642328134691432722328186535839737165666030455926274817804371447983199801028599335664303100571756761037673632539753827872135443427246750476294021717968299654954379319870947122375520762824655030118820894503212950292068377747543256469493299006273110905898931636303620171600576521729139501485625362006152093317236871161475682831016873472314086566140141327573894291367221783836365990418421034691065608345928362026155976886260416201682077951935802434702916851935134875195314597385162527082582952590654009938762879445602697260226039963714834383925880701000901981113132033830450631681683856781581699194727858509691601664082912700406777300117579071168871171215222087327860787475686227790886551083715956410531361368215486173216337135182044680707206268833967157554049106815306108951982464324935970158324772700666866156392400354923355344809541395668252820797543361153286035720650015467173478917770200583781479941072761372204066938522756973888163885031910270771172814145362737992919757646532418476528294543714011118120223541625835324711743042929808984765405499072419419966463141079208427636113213777262150540207132105269248956951910371192825954449920418706000821117621871332385818475796435578563673294495443140183135308400706969245345308528945031540659745108671278092704297342110708018952117144256701054291009437244104260497032512179088368096992527397486304026805864887641977168263491885791832186392532923907587599915692634092723049779101988616046930524022727825794089237942139188801241380136655747724894781567447820209833367960690656899579996528487641004964893019471101046685216790699071323667308340996382402017141632362636830383727143780194784372787038417587938607877007953817401669932218346102384874267562154831993052778363291612687873007314938892618545711931496676535346185078539284041474393290426289167874240054105525734480704502645953827596298008065073821408014331306014632901264552535627162265893851438144487478067798857838991232759887846021112413023726385657611605028200316993245461753081071501519327924751979504583839786383555628474185105930504053553332884417326282577480986287892323452692947450670513087476249177483077169130355485828711767733796457044243267064574181792150572789814163059248293978971441847747569047971360002495311661847913852300540742040350120951051494831844683980523958235710497401905513977840513715551879169996782300273421934004448631305063279237789106272346653996856402543698647282561071269073084070025369327694607026333402516153994049690029891515273920406878471013482647210096430871582940341699419562419682030074108235478304638164293254587942097929611860934995557657045770751609287752392846256600212894452805793151570328893208005505054234674911223091926046354312655076695282009090751417584537914757017546614953899200521955189663813155581379148559011010170639866127055300672830062562788971560479955770051508073155854358740828195917242730558326816057708043495363808613261204424784671388154734406211707765201801846864882950413668270501758532510115591806338492625433288492683797622289333398701324537027491557787417955950747887047100133547248308979705887302570153714468693975604848817977750663755746849509890245258167366833850464977876300129655783956036555786678287854074023769272047356485921728270245418828854337655048475543320461011359050337780834639622568807610169333064510059395667298518515450648655806654825173466073225902461968011628606110417346205999457123729314458579503901331991155679434364298106434860506659205566418543147483743930547827854086706651075981444028115784951685138970297897085660840998232927643407105644640267789807446766326030331088411604911958636194904971370195035212318574024839698344128063097833279772890975021218185616257070135913353806681542581475467906924106163299822685463123751792970242791956642872470406502462351112805902071472974580885706895546898616993420583620248658006656468061487635377913306391414619568708922407410816393866240940677887071727713249446867705579825747155936955267459179370944625963557463913731262946968499356962763004267919317075754572514304794816006809834972106763253012604063015666193197598842120474623037074616368901352961267659745936932602535756792648467690784343928690974900344524501665875169828586380287975980166865813736089139480069043418983310545252202875653577364829564165553030757079342202606267649991487593625661490986082601813985986645065868160023811443190659891215859208374357745073817387016094202835232281009258680575145228799907085925223815316164748194638889900186613453728742769303233586534912468363912726677948969110424207936080435322427814690225976580540119824000661785071027483993590639287392230243493389908645641220953514287695664433459556967917220217478765840611222216574488895517905958698798192352209403586530665976820675271086991342465959746872037390549050138801587619222548126615095823044422099714572298445162168765970739347275735331960602652237630400411742081718288620150708646778427473439210360498454032772459695965182679725158465427415248287928300411245807592673312999430420046352736715908449072734044828526590401558020421578221902069156443283197067481669095400194503729901008228115008215257728408980288884457274846767129976986998748922290001126828284881368913561714262802839637575335461680174892777116665002945951186524166568551732057830010801998770848013223520725579885727935909108323113021075580200698664002550019761088672773436598981476269854198851486516726192991844220852030530088929510158069359159262060242311665719817248918702988359639852201573487787036346665667573361460952487871505641264559999425529064974049922331922356601576339582134085724957701337672435637867318539322430240636149187333691346582462813117818427725467074108906952638835381892065223817375022823182077048900611677789675235737261678086584791909261871344894730125864025430844113418290660663036742766225022501413561621761814598229561255139719710567064362737484522151399892498014768554430220370194459070050392134968979823598709789775867799297845815287943285144143173442913530207174752900060531348426813798796278824361189548855588115873530898287719660713165022068412504731083448929198463695252591534352081891957542266840864983249479419895893696132165597308549403928287582005745275909081884112911219003315339474690118056418798876340697481390930150609240536879538448858995028090313000872905391165273529731700275348402079244670596059889816135914238993286613604870470361665012013819385772329572484463803683504918791040851427273492475378726011245744723750093019426537902825521041326157989718475911434064826699363567374734785320154348932784410636125950789967260541407596984146474156739921403624602976264118147371373174527876727055529189046418791356869319716793801413166435032406735195875411204825294197830311927998355336267730124342317690931024462625766571546847385304143207428594833466500888852485304805157714534680908634297897738054738041818219448888107661857243290817380918724030521132753818493573144922832122894632951974857409723456599897451212853240141693542485753636891752604714939972095734223200568398346668002239936752979215947614362476305473183743803832390982581439482400257587250037538728525057760993255934173753278742966207060065933543271670022045735267381581741518196082974719288244924343965519851266805025010495563395607452374461709420565008263269499764595860160477004073250269601452423687571161629846513006724515398840520290816846684284387163102603833388453820257115411320253177039470958685700617241206092305582312981741469854398676405413914464127267647353399878378372706391088533490550748677966268973684006177247425469885097722975667616008276652127962045602165641164831639970676047506236026329328331865326347262509486842560096098377463075406860883668210045358053716500625775866311695974496849234878644456776674856044659111105428539069938342951175407258389828982362325426100014299343433094254236327369530442774913433628534510307245238087836509317912462457437411056772902187569795335229734725580216146920749038472451623806062847046879447166230670990970710651723791865723087840041274339373019756384099357163729982616283841918682198831591899640022323206815715904259998635834042852211846398961748636240450572195957324690188796754014495400494015053926440224189269391885551197266082954893502665107011975915265309323580518622716856769400773719780409050290219356849533385914134306702058820018779161578978860442552255672015454708417772047879716615135987523146347216326656813145288818400878655631389659844470239589995389636083769665174377246094859752063291723520230170851635158862528485300720639525682369169796472030276283407505360809114554880268069956954242187210882692640577439086009913780132964042330627868773918439927369982122320876868908609433493130014530387829030132654341174670509576969670059552882788108720323546032353881712123673922402477355532554135665736755126348453040090759894752477694842623798501036374684609063450387361723995419065600702413215362416891081949217947325238392202211293105992176697731686257839648376816953869587030634161602678186796631520210326353777898241457003100860821778891847647053834682900069196047783760573612931430301951613167044484443976105348802533078412145249534505151691933063127632162666544928705431275298322635680001912209347390609228692886566806453339628609163128525746034277354886772982917830158644239176893377287544581693419476785177302417823697306848921479091940864219481322464986485431569851463509334841733043678992557047426852220796258600674035295240412822002328498182505489632264433583612294684229800747095473912252342304104063357538308558488696606732359879268215684192583420677103600057542404636658769075227654949671372482916644914765293207893262115307954580029578716063140056749001668843994771505580051173635396400746035901248060376164676641467993855247491217929831391826844605938036466595477820113821844488400683061097583488620439994548119418772473510587894849943935567923208359696906573957332498508866902260258674969832172760334968726380467184903341372461033717895144553777826501379023879916860590276805545660537926205312556630243501745929401052795785871243026683374505859071661433241413257879289257880996862404692114972112065712210058672164325599488939897670411141867174831929490613391816491827083784077980056968680786488357641964349260739620179722128697313144079862146367033205379326403371536951650258318913710611495320154563451234474022327533775739687151306206246164614049841951874144745888456905208502242619386787751158539290473602824402032793400535102720614581602448014066945096141579144092567793792124906499421734309922438299995389369124937811103424724470278932410298071555037923873000205741952095763688611508797848726402212395127612897632580421461082192764230194861575704119821158977830997112938085915127888700184237219653959075071311615320054398811142985739955433255057898557450349767457688435064814782910665471569385275085877487259394891171006879232509828249801056512564758990125318825244928195300226704773601558523067752302161712782682339341401318069700907802206697121944712068760780216169377964109196346445288735927676819021486503887993486284372426160570422603889673134571711650283900398900387744133875041267395230867123127194531794120186742780018723469588633111978582764037785187040175332546165210361644184703692604448822769608530693813357421974728590953857606563189029991926715037223412841672728755896162981644071419885359908908582927634380875786992783010277446770828225747381423004683122252767112159496397068692060045363060468798369509116871285818783337534212948051463857602502186545932164273637533179295548960894533230191832967475149705371580823388845670467634760897207671678395470519560959119370766207178840667985413110382227348131189272202005204391196914546403658112234774231742423618605979322362249417478509360636674795492660316651525610231407676805909911362403751240713376126277134954417843373732772872969288645580987560390252942091376240135079731508910864277345908646482097107634457984020522616272549456835079520232563955165815785014465192898589661728847684937073344418476950963565002478306842377942935190876710517762530252906390946451190144139690583715520599309665767954967334544993323998915537970111223125172256323219396812954772071787805518112479450041655892650191329604779516344298384498861057920660598240312733074540705492188188224263295001610646082023502975756436701732615205051457196038782303688277329825610998465626593556843280322989768139550558731241067350242566328289105661282183057052874017409443065223820510035481863920667907401695946513744740355075254367929839930109945308951242752164746109684508571345259567032535868274323026503327900939925722504876359122826307767105736705255854548512285066645442543798905013183274792369853152706316733114177131027621205561732915150402205657791061833804354327749748929675808549954324761124856077403110975696172956266308994826286427503026868486490042883410010902279046502320325975290140423407247296322380746259729620393750440117268262506679583922819024655407824406980572449966719737409957404739594658519004536271932664367303903027322931723332279466468727358818355591344052125424422311872429811479817213539146253853919826907972477858265520218617850762729205757269445004219064498393264234179120709264949873067732975556296237207913408066527249451891936690822362571698611445244568140169510785633885446415697904676075654090353824323061903439096014708188764271651128516772524015013801064998938814382019729452209862310694986090329640287201258894411015505258462009467672923342635128299093747913774550661100208931700214686501102795669814707339174704392324480484104567339560149445614334438959871409627226406761853498625315480680626041178716003405076005892634637517949460952105042032516290791836455384180907582074209808360976849671272380018258001427212039729019102509099038877975458369586508143877239898590149788421037309477361889975853796449555333078979715362395698317387514875080681702780795516525548365068863083786961431021301074155947375259083607004975538924723179127506239459293265324070286437043755868092797712742079847747881939309934297058650183513358165132934561768854457205540299699665197406190997410920798783885973456326437119029418356467790327128873170235632485347147577054915620189223083751335069717730196940389145948791791302300973629403980461131561754163500154327598742365261686442418006905505110971862590520533433414776466450915705630414749575565710647430469839940256103011477739143330151033596081892022339927770069885458047559017662859031643194933732505357027833722704846591239471669504811750859709983698960867145013376093283913123495505339307642012418422871739013350698863529023747242610980149765423163215527417530454882763388160191035303065899841764750102220695097369781884761694778997994702940370262228092514391889032442673947283673344444621644894834516418678691125475644922959388678502033122992237918023220339395266908052859557251839019749064432559521175073280835386274506367668186786540574806484832360851050116730203228482600523420563796169956468580605269164123495661628760029772089595623585016568792602525259149579561520961726095303235979359994894399929549735120659222598171758296487208069074119047791927195974432270311061352982293519363535856101439674939365104288070167468723050484364031545429987922837049918666269303021091154460269355145345188708619012207678858335693928579117566100846877029198945993819868245897327706415416944462147014875392034414861805700337470896495608843199504115413133040537059823170027564464212961041016378189581794396579668305290936023737410373674693983208661974975694520488256438460989186797809135765551949403618415415455833891251945975283535953655855010700636381213233411609152208349820059025738755806535185646945832782459473641904930757965726034047388257917528283925599254174617027893387986785044059272656859507402000114524879324186027831206373797527353401253296462866789936605188175651919035724223957826766907300609964220989004172309734437889905550647662889073281803988030995980961116637046424759215069104993057824851575093377556055909486309484222204904345309353277998940590533693034018558985659840403996312268324209997425226498007570050319780759056450250412137491105568434243726367845538508395690078518077468025699378451869629267455603848614838163999922826929057943385852218493401050548956135364319663837505990407081043271119068152990579184879828573468847143532013048873104580893783210095152910600782016134644854677627272125150853826307144206451229003781784139852456613024208435763980882688700882680538289141802514925587420681624267887145356574565745866212479056648700132696259098794409718889667606736021997086543110221204238664915295077756154183743442291474066907798138154272549224750851120361921777478766093834269161002998381896998427195933859440389977253061313539005757116678297323701433637094713549427534725961207795828568830066327828945758670265536247100154691512548508822363743552019651088482885842646603767300707378054658421079882342852444775908561992001537900366356716856125781113247579830363723427624561246292035760749322409854597924363166177102019283475940557241180732312952641233695859772776785426223023209584854204108139727834282495967791627361041791157627123590389289255605182902841427070567513780792751832618225900210269610534536265725940967962149406830600484067229505539592669367063487072432360889371749638166711955332549023446305326603854063633440761999884722940696699379865658683801526844318847669422346632653088304283935853674385014360644434348296528768213899031961932579054262215048894720223853400625188337459660658540038587046987497577542359469355663454092437952164355159403650005292826921490388148002413352296131190335958762864584835057051270387084855308070960876081080215565155835893326123887233652744124602371357827498238529922189400086586129139498537990925919076813471134584557482383749584821601461980454472979060099443549969754969935437313925368791816825913934326612858636639885365326521016436214180648573320586003780630991730439223601850444725515300684817553119149359675924555785313968890614874346035654059719703183517241270117715114610563831759425776992866858316941657643964526887165279211123558887099545113801357326064997049204866247563121730943946269634360303747809772690168582274932113862215278272305349047345308709953653090489317253806415653115254523455032715732145445948493461055918937000288309076747219488303339985021364768855403899775309959742662303054643453741705906944318093642686623894817526981441831690607262995292752479939941146935126865278269184821126510011796173187651149070025049496378339236047543097785174342266711353048254508675787580744780109549080493353177156480893391455982360234859001640711488286530303979948125846348686823694417863896540635313445759581934971362165484752957119510326283297908585332299953884569074440454151795234339090336192929502837078048277910724573354468669229016501487906100646275678036579514121883076637616684385606986246457565996654470970052113394240438316623552370434912385057921556496883552992894727581692709206452903909519519975272074693528703805567453325475681949234021723186251352962335326284338604146714145212620033550054967842636141209633467978347749591855531652363296225251225130745267520257837811240828834419698145063985988201524223417171802140646671414572381261562072933591731591114424764038134014526197816829072252880397685063336299467931482213429188401400943213050960356534977341637757183339396507592505423356202657091707925809752064672818905722968710632939353305988490318127309920936449074206834610507841393525991922823948925601675136788245129902420877650757689719693751201665173987189540541791409395827683446141556843931596267289488653778092850690856691709263353178323572638862954155359394790733089402835784366024374194711106481940030620121263221641930077558360937471143897008332315588494985224672356285615695881873727776015976359933515827019841450706533410161892466364875688299971014092272694874130770987353112007966265326944639254051626633173682433574839095633248870338136406581739310399702886840661976603786458444332954093232770455351535132003089540995277393459367712090742524457435492288885877993714371337833853080029353619517996776450708156311673596116864139227027573420280149979084120806543247976448673936940254959863830202298166052684415679959917561103853387238832500636953160646025998332476444585298187706753814294206824340952762322567401271742695596826739380934930330886804034862407288371883202038207920980579608353233443394313498857743367585382504638355462116201909527155312448874204555774517048127330050674618958382627818267790797664695905615962867602397347887244207502240218013664079863939227156546584468608146072858879743535496889693939007966966950407253985135665234066727694623621927108392069308107642543819638437779838240297552414278709139732531085196915099667511778230748031943313208729782887511051080031041972471282873406599916323211893973861594805554805111955520103715559181322018020742887359748609165137585040697560438148449924702649622999548184469689309637938240267781415371564767100833391724841102364816658289736680263526536096339354195197204765016488189336711482911905615509919666140734631460931298802637609321767402480674014219795069603853751614992631834420704009934916678724062367674307755110908389521388967697801509254435445588713567522786727329372148589522919615908012782310400239906084584903210716359580479657821622211557664757972030807862007614223731318819149330330686000643872966560517331433888238251150584524004092901736093897717155472671221655121007985077737259205731118455193047253765111083040957310296946457133619771384219992828844681029595665345248751051459838795258176418593451039009911495883856569872511104583998932261610222361106861639166256693226398360046358612839064096077947720417655209322448348890827574609776766194268510638209658564461701950648049034227604268866037588724060914778813619523848453554253640776606450405543217741841428976005271279164103728586670701698979070560090078571922041976984003568141185820327131033841523379540601796138917612011848191295156698175966231494389422192869409802831752045204738672032319742257411130612645226637007575659854841942723320925941068619102326086628501191262209653226676880918282060385967068505803788754734920564320345074327599678527147425782344675477645329871701215485178509381822971298333083787663002725128670795539271800128085265907161511154792983663048045145076508463319968773150577326304151236117737401269713301406616290368360386130306802473142695947471707100689797165989890569089125942245584676393637854744935366243618368356488076448639229308918837998963403717073430929449609208120466945542062618026600075559881885485488523083678742985352563873548161006580334153711425965886434809557374473947416254749022765680827738708679582070221569182065495386071337798246446569956146561162023752752746528637767271875230817545311728841915704537894611155456711902345824425949188655693789884290429463788666506832432255344983523925248560066245500054752746519829323808618219273879580201657802226574584659506656763585295130022598587361026749822080391354497576032954764438161928422791756362223746278630308836972406549824988429285742330926294501767659882538936853784138039939538550626604650940705153286197211464328525730725240332008103258976456141185961729614138492554249542583778079664496869688614991914646678888583850913722740403832163015214417918768211158365318272112137785972193754559918175580451662821711112552387482960661735847927712235197197535233318331315869589943384863495360111560496452868033645127998026515219908243217797918846026873036947130358396735315785502719693722231705943557980872946915205868497037827593582015134573726360030770743075492647370686234791348374777018385045289390240688941781802181618755763168457529828732446308613550218753305582699129940369675103928931607028754363518992443249881053941159012006162598787398433586448063534537725901642731896983429823794231771035119206836143960660942777623352870903750882091296416752509530422535417530352345514649889855045449634848177806266513626196773348896529434792616964064483663446349931747438108528931865677601506240715646725268310370902038020974860296365982272515221891052057532108241080660729851578360061062448318721357585133280457968219967215320549116082356447192954861087618012531536388628535558986448071634754776640085548563629216574523615721708381809213066286644596340119684209942553795259964090790622057597930964091501956152185401696209193892121480839110553964070136205032594878533274140821962417826242390678421069362924088914369375828288270138238382763156157621405648673506159796549596737369692584519920039558110403560692456802507470883640299616532495114517314975377220326692607989153817546199322226818340723280277388150372851280204597582262013321972812969008857944542458455414357689699090896320316700423210185686765270216526977532141231663844852786616040828020194507098160632150204348739173805456170411196904392660874433802960589114157567983735967234953972462234504235659653994494643862067087779349254472902547671179443386106361358682475294849414607431367366997395346491884075589986071489185740236220420362495448465141145766435532437287801801678223491941782786608537270505840463198879893588850370998069543019630258357113733113588791092792590741508793065685074229676378814985258938533181338615039336076167839787628032110263228031782518279194007847486960197835363921490477945028478211077468687579643067304815566060346103877182355199083293499544813503384703262748205798817207638185786681358097789149399909952969153510196775545132366914267523093505855686907321538090375375976872658668187265762693424694764581775565320964012885518799848134512424488393399603036238546024620872197372442022498382535064854932761839472050303197632244369170715858677922721654556135424461252376386315820472500917594689323528245781629415757787819077456648692233729597710514343963887337478005603497388797712876888403583396912796660990767139959610005560304743668655574699842101809919632110365803415647633534423815891677880139806213142620269354734201527556918972014129358927622473457436882012785805636410287267645000013056394036276817614101997106359971598210714342001308775622183149778967071945446806932917495192319297514462876638732349550156491672779781477634754478654072565394390495782949725223722661340294118934988667823770452097754089002370102437785716212120563904701225984488818597072552751538577082870395936842705138227546652058243769466214906094808967139018180066619661183456314694872798208264617878892537552878952452294926880668329329481969584408370047187771129752993372994789272867395683941527995959694785521730766054478089446997576284617890081846465569276545183063954731466199375848308836768423015179446061700419876645287874531197028932947523465928619447987732990859664394524464117592269459675326312285166619896277128607683601709876836286647319572412615225271224486221349885923677908812519625898540602926068887345136864487164795645862965884988902360828358551099559121727258262886782420854828112145798981881151975169778659618225595104304361120124994928392921084706722640127953572435878415946109870373548040055446054687011469430401427846404878349213653195924798537003463230271513709912839035656086367248956480531193129167341099011608052974786554161775978983426149315400509400953479721469210603507600852147757279642770746460052958416922895580210381939762222134125227158048218306141679159342561931257137809466191644337598218570790508328321893966382577724189208296765786127318248340422610529205322340250439146876442202519394941490747359563677790457436735456676833445432952194236980331541867882871469201034995995228176631649947700182595967496240827204589866976955930960571950085406417697645081532997205486354665614882919357895338504788073258421681036793293798883015228283340740806216468823697457667728977755082452354584576584525428268751077869574454457510123613881527548373072526817858353078736368905429984188262802123017818476848770759686128831275828970744102551086937502894386575174179129424351074241206620960028327946265071428991445379188274617850131829836750415307429451187248725157004845042130437164327672887379752333580343438092938899007635543968532490208134993271429250991407998191142647701226023564842868135132230958616510178350330047499045450322280852964369683770716827837602382199202592259726138145897059895496342782568555997400878739625330212936565262578792484090564750192937946098247942211693231167626717707489230369754791523960470004403381003669403874349631781384195671050060493974213979229389771943924743810759909924984007471476638224971367426175756134565301018005693998332569978725100172573282582101109917749353951042569258311368686677971250357664335933327130541222502702163622483823693241878869348736945578626067038167532922927244730436240740932413321732563397082356433832037293550588888109627464805348124228747602948266169148082332580827694450002153106660561583357207788050252126251469720570934642357205627838267609261807515790556782363778818171924027529859804788764459340837216399770301298010453115394117009831572115216371053902359018065434579894214700744280013847275310793360419308260955727408256251380737352197833043036428838415735214875254724546088170366009409103105748705636885639243822929713129308165312299972062148917726613290457373530930820301418630324272855882476081056022044949302594519917561134080057835754691215798142851109534288776230503850900401958256451776388775837560132669646948493315845770669388766623306520253175557517962500882348639252417358190284501555564640835803924823340813794585793678590643828119780482659365076976369797882142803895139698950380570710568261429148878432237866463023621870107791599384632001893876763430020801161744426025333996128643808848908556558633881948627450946067550069594201844909791401438033299238202776104291176426581387382341421672121735030474441599268569600031436598242455873290117859539276807615669439422947276801000176419171242384807502767990558419279087284056126632574743635254578644565421396208807706616378417840055629789748427985803110021010254442715460653385100335622330585240866609362873223482545648860992963275925691600463873791240269545057973440476276971225932215283122109643018622466117420889976648388901038126327018274409887864750858259507945036923988320467511959182797631365413329448355895257185884844431736075350569035771172729084274515877413273762144643475425735524043873178537018380512797052768476134569789739880981910438839200565865122010113249177799493391305683465524119686746446816093287012970786018122518305833343793740985765896090966011765380723360390192392072239374929912823054967358745271252802982709014503422235117833034272859990138772072521618334508434554232523329205377717615259834651038226364676731016309286607013274137979718767268219523216052808023002142875160943573293110989265956676950866159201526747726703891941185473852996606197135309130349312046118917251677789270671177826716059880443453434839580378644590620660163524113234302603500073652728166716091226179693467777590161458421286875168691640617593924626401321297873110069350374814579236205395858729929575459765870802429721128519106416962827499600324764013616365794814288972505862562530762768674183256729289752239707066924489744569813242541220799753023832273022187528002898689865900318654557110743656572803317570029970768018344036832694147986173144005448905525301774056003696727727361780586016277138281530593707530038813443771050250053098640532889396284263152485515910042784391010178002034632124009175076655959405108314175997956851181462461599193760996594212744094095805798700418566416377548504358043395706147689719636528395623458477214644610911684784287227595062480830225172592929282584191414139400313123828463494223882640754231177799140721269056033132887655127217505853141192811224124748899370671349905657044191661309444807456284469390015515691724017701495206294350505434818223859801196504269630094918238081938198254469892030515794540589633595022936077836786709120008426743927693172343322329057760950837731527545026693877233147190769227212369470361500954097801291451765105387818552009215163118812893707630530801900870630603712805587025283447089958061124800651679872902061718018984455120454819143756530745539450184994847355568479881107117896426368171712558306459362476708998465794497634538779451427330046350329747864035649345441648274077615989922205696132458816344669232202609657518008957964399682898762027071174466116181622553609692851351770587766090638939555865735889821524784743705066754991216329140613310178068254682555537835571239754035685494675274164223410477742480963880349573800402110944460491424869765896909667819470319610694755712128727032025241107494179464731620297989301161022397153798510354794824611493704119394296157850681651555765190243804845465735334100436270531436238528995586033320701818347995425546929738023764553632788121045257223885783891139004787021932279787709149262549394573459550588770967006226517570048940865791512603057773655999860047235802465768548984202988494105159706094367603224360857394689909657971226805398011094214831188356474810083377186932586561299981211894637870047536666441627301697012902024001163144768150072020629313524627978659142049219396737870367062872235226829915094617622030018839612894040660640226019823555570213566649924238844652167015346403025015690481882758572077289075046775093642022914157630604323873405373780874372879789932407784406775408894472268897111091875912950009652043880966530841695259740897846037747118709186099574187335238141419075274529783659715286944499338066045631644125861982682828318710383591899533447456138088156922063106080811452842231617659742719846798711590804123023478851612964342442980287503229887072804628733869017397676073719847395037951118147248125027923692043594525926808167804484387843384439529140096706220695699399128506149922424459018810055010650266468125123991522407833529279111550047783221682108063669848218364701043652058396036291151290607465447864581109214902312639478266714200850335216410835326045679718531255681520397617197994145123442359493457843906982730350326575906522436892692082543686443139322369054323657888276121290051345225423712956550607709865590695303233322211265338986615726134007435756712579076219961699304468586451849579371379707909185885161559472714480425645915778924764725674560208071718405676514439307842031337768006103337599948000868638160470736921972139262404977134427910061090624297937702313381850135773936066561228602930830529206449828202333898430049015844934481079643506435692848044746492188019305679215423698110896966093484336322465919212615765773160024521697438392443385501259868397914121114164878508280229696686681558186895490482423809248631533708274231359747776962212988571356339622779732777069139336683933241991679014281807798328619283078960735709009510029227827729202220223814578543958795626709699326395100082731401572641564185186583853540992471097106612845544233566906032046121238051103994389260509132208017757479953564870290009881095312129716806755118948522861398648597365408866556763880913047026865389996162316665201165237733110653125695856244215455183157279398050409228019285157080890133508591986183902995429897818661496744346118431226047705966925582323202953417993024280687572818749440468286802911197629418853516249764162776419063180460583203863371259257065603706599665945453044011322858160318969655304467709579516528833836942491050410254871960486849208508991240419262947974259543423473045605254091215230657707455550778299763048525899263655857516521290853176073395153794703564062780066505417951349235786000395698551506251430079157586595762657066026310409605648724603002327826700555045389292657903615923919930778734477637542622217607578159462280867955856023177494287639594939629676325426648669210276228467426811797980707037590772841412070307237413941311967767572861601188779739293557007609981009500399609350818341442269256865109373423798794103332001131915900073055675936938837135078561006902243531585775953691674613065163278913097698447378066945223971586300730656265313892427508796617108254336298368850210983997439460188295434226608919301002929332276438105421677604735203279902603622527234841058330243114085689023191797560044890196295952149416041732616225809676332535868183312393447860466398608045539996360172895791403026532228956294755900274090458485903454992645203118516515502100862124744781602507797688614051250511621637104691400643668228626192261102089800691362019496503075724785942965657747560816353383204837722111278000102873838698795841233409300168678223838826009847887412460169541445461336284265880961789060981511152520635817521239588486737668410620466044699391999635891881798353574881304169003057606020646019926229894774317919913993800971263744318609022710980093604709812889892312647401966976277950824746541404340719140683418162779402122206012915048622905125041242662914190232341910300194341947053992992950830806071827569566872532285588501544079416492481174139749800356872907337185146151862744293335977388963686292427431788813500804958861365760653981165436473109728166167065349135793898353773606740441928316864336602501803942723546778166639845470285125850963708816337795410795624709919860776931225918568669631671275222769501386662418296581073928430369770690721594517901397517484483047912415164137663304413866161183491290454231268957975267198004888704105799448636230379201981171114183203420861460248848368583009345659065256531963692107220436175485331909874843234224354099149220533203522109941778451980200357884186128342093134275513932338474908194434489806608335406849678170632803110584861670464256973736993852129713392003446528014337397883230379572357437373106049852692615561544492285043999497037358599110570889237104655494214273563003817265393738124994433640875927518352905387096588209141227208041540799320659018673047642531580515043285802650034740028958550644844457621192272451401503054347198286875382024730325020413716580849415509516887618287256387989677606012736199329311096518352273966985354454230677687287518281634795688285346305099162080133760877787410486305267348343539405340021202603401912517135160747701368504138306245805870839469843922059951786826895776694914714165745198959685038956440227614717169588076998435493579512452207800030607011824719029991086286871906683374725915119462517268107575053112542617908781677057903782361318543361270278524436088591638455582156302310629894800629075219678809975876115015843721082986318411721883147193393808125224580007709288055997671302505417983495311951908802042269597626618507168563959387120694602031357415776356929572585506747816064242182662474803101169123952635767262849520537013528542864370719752957432395801236628589454673835375027393945573190230607303621769792365663880946318751594202741843122911023997520561312675509329490439034503559525326249488057421260028250800218870129967326422665230097464113108249798589692366597096202490124062363237449189512719324245071691070271777703854004484087890822127016057481605200276570139503071844465069065314783596938717905519495261125650390020755930027029295847047266325186849115391918228555241048479437852905175557448779634136273981492219884984391287823465048668703422490564853015445186188238951453850413617882230975735400024312019683063856381639405700305013010387942081010144280352376143746876876165246492649305489255512775761171749877502820435181804240149184577677252950282961137905062779888674758498982687395457047448725326797233697543652594480715500629088003133695613013434582013158313870328393834242487525277951248660005563911105376340274793778164503718568092123676939296110718140427666416440320130009982269463161025978667819181127789556234257131560839403154531540600496734738722643214431354783531896394684352907089683626916620824178158766239860502873658430995452054054427244314232954759693593326662338626478026433744705234174157685561216755510392532765003825252420987060219079926706478028492446905745103451583233164887265387657269858150397525001474264601632871956029407169602016043505048703672685071601708326746457225599591745751743709444429874696290245355412088104631668504245800388649279537228031800089935879500426974872544681866598211444271198687176709921708188780473183839936722536813549999842553039710870375638251082089616763997030935194653428641116002525181803945515512925905913017724764468196832981621817861727526498666470567227120280930995446286603022020049806310988910988159186071129565662766353504889878758969665550973883143723242962319064204405657624150188608372042678262151549524873851530740540122446137107652050242657330203012269594550796004951672794167972650719863087832839497369913381397854517714575331796644788514689704019098897676396025377854104799217620944792935851601086899349676960162098377888186271136529571273899953085830441227342581843177436199831806995976196126991430904345320792690081645650700023431235807441466530119324949345600346604030387907153441298103721209361209335680047637218434502981835070092670741225500400328219755131266258066155496091785908138240375799238525835099135272416660887199913581833251409326210509736798828994172426939325643386353251898313636049880172390940981550270992131124961573565254709936929341742656082086508222078669468700326851638576278846614131834962889539691972156655102126267840004006909933480974098030461005999173681909719513639851468337588916918020176829473625871915475888902872578801380796731888887662494051545460807183736209641218460340617446305278390386031995302680132093372148494179646600753013970226537369906181203710380944372727650390449459651532378190520426320474104195856046972922658689326555821794973427845868897862667262852264402750966606229708262063067610656827988248580913668022972151967322006458271856746044229070534119227946109619412876967062686235766109639508428509655089526617012648034013057568363005382016307017027641117105492231962574565100153048386387305282846390437423713041283045034308368114502775110061115677064029964704395118793753913746907316998956858269063694217996686010760600670655266746159283294292791777064428724420071529466224146263381291133437164996117015339374738832756674386917496444501052025402064166528541898766042086262796665431824244067204096612120505454378016041267222599280271372112715395046494571097118773418264326667099938044048858315243264720671090636910995488683239955039587687673786242752114254216079149343215659966641963475907420301650690240522716293402974020149536919271508097434016000052750697171316265980881428973744428528692517918386393135081427475152102471413416414310874229508822577634769494903314380541952387517639388298391824048990730129505656891601826545866578499588287814269680710514968077822503160598002276973034477564227397799097602016914813238430311654601647515690589049047014825553997694161013851929245947180808523708392023800621519113194877387505271663881355009614553939074226845333760703473128018990604055541829250372587164103612543969733326404419425876848975764708958075902626216364330444439261042741652152463928808538416777299739037434852432103557318573604729284967540217218654736126949891803819425714375557580634048336876403198796231009675799371394566769916527495876450817515542414226951426878878097781979232836353822304970121666281086534769914745964140003615933143016296277997348081770153960958606608601930443851158208461814111189920198498031965569015897224308279190379129250298224388113109209794037662164009653167930084801381275910027420937889986567264381999693455107834999714707194978553122264110429614045304116751017805753330312491864215355047990092837333453596371151816799837003847301179743870128153972222963891351683222282739325666759275930961246950574704808906417157560023312996506113639438530399670704529575373002898440005789700164529047778474028164206832937249301309948180431367915511934323055199830584473346573011964710137733015497234227225058695008032336575149851244851608037432852866963497212765187880332190897219450139467645022993795973658344319792617172173323663140810367032232898412919147066454108902275991388412437252282512528750342535927800731387889947732075388575177853025125044743308705209657182595855003277989942235834648627534788121973242106435859844967848732647590318781985993020563160836296362744151668439374215654278324340172611552280067766330104512213085837725291217151447313529024191755974543837722679513809528502510175320841315170734922445323184219660839698876945416920067839858518600360175957381634661393758080791369833960157446176413920163277000739730919549993924458146374552659980357294014081377541038273514722132919204283484516270013769967175809563380007439575115789460323515644334343821606889333309034753149052864455264675345038850205233998230779330671571672991459095005761846180714805997722073248983677419665431565121908343955902200516250583495524143173917707102474770973341474049616570555116896676454906793976760556972112888156524026634209377990557531157821174170774621443949829342787982236512298201650745579861907709007032225475272624035500102788323398829429329528815955556550131714546064883207808967172591167921789602511379119990753140659613427812745051723556545923034395735225588251278581395628301960775187523928959062515740621351701967525064738721018543453934732680806818832227813306012502464654514568195935049372174610624528857305213846223823227524900066976009415757907648116091755763147017337118762792173191835397474635739494129999345532947931744317746753963933864990576782406824074845246486875463869394019282090107195755069366953630122064166047980952781120007701500909270938899843036414921070837110446699664757201346244117902331721244812567668392885570241592314141607802144815702369468993787742868074256051583239990551338123045230908861043885347580124627893560147440445859048061319340029234366048077851135320609512044262650444389080241568683917092375137221651397034733368042556414424582839888794673785552594978260426045036225134334194809832463775073647476990155469837769633430698749917880311408550341456538208003492015287763341727844440438932500104688953646726344124213915820645705085993227868376869292939639585674955327344191658160564254106052227865820898906022630920858493055518232154718464106120995386735799043168637212681732033120592753298383271867585160541904148130584261950699199237861763174005798428954911338057338151322076054839883572941840407369781506772324849871581289290042178425755603001654818682541425701779182207880946249848781080900987389973062042835886463572719211525549048701319977505519614682580464693501661986918027391527671168587946907756609409648831521794814500751530505734638990133061977309615702524029179504682125325623078591463165875669063878898294459994450759050930588164906842065569107067988203796402145083691022228792102634431922765078392349391818603571627518503185647486748044358925491334713502332943823050418427228293141414767028817587005827494163754452857624518222085996956080783181727444109772790245878445358316633553980613616814029332793635251812502287468154943855800209618872224950127848206517821779532653472919984553200312435258117911771621417128558031780132761301446199769295795311890703473135380901975508632852906930844453114857023508888841902379655702752103413538077115046177458146794897414249249823944698319610013359098351450733795300344988863178317692301180659049427811037489602762551616207827802905481785212894622072350955444942855058418125249619997089792474395519672151065581495711250925186789136767720188117807333663812677279365236604622985354567128739075321438118764283288526513532926270333783135154284903311786042701022520276691123969665842876331594017649331754257579013755805092146339414163912790639792846219482838057453439182715788217553559777086164428803748216955158705422558982300952431603949459453098040458799712443253607230446464981460041873296633927349316562407367462283351567702842659748022918074883887300872242449016403623420644014706018375705115611090677012955362287088260229495919662309309804499805509651948090238418683440554300779057914564021620804576804574468429800219400210800430599136166113894111941145515736112186142503739251669476735350594999861382344984460635155974701708545154437963056515527829661427113296454130654939456844071286332862786972304053771860064111458573588974542686329667247263206280731279562476727593585531898038013049745944612676177488208774899992497851968017618671866838275202467986559236761776838248281232054609629525277570095305098849689818599972594750343780594934312616534325107215199961807648302302959103299269290873103829501086984928362677251540296218815249618881742911799828111886652525232330454562669215738047892521231833825583172412764388340959318925161728193013842692993455402604035150984525214564347655302452853588368230460602525636775850768849768110092178646832779832929411925661135312698171471948900959007782290832567028513856602962687689619553042507741493822273526848866274190994677888319148716149789841898556111537447464293861207456469482568059895616947221728211703188010803568060123575371662074226653850978931535123752728299345240532965442431259156090136176030489467218688516804061491335379675270967904072576738056752171969464829810670498186211068842851085497488510518333424743188496546863376299226317670307136437521089401034957308732464820630359062185991297338104603216125781125589572035059049060540993120172397479772518693648777019021213444784779405597416865436170120605067480473854918915806281520620304102500306126107919335104198738543978712380239956050683725900175520834107452972742217055365160942234392428369890043913730189286253329233292209882330030988832937208968821799983889639402051570730510985974327764694143976022662401066243526652781191788299820975332362094588448294001291223930295303734117933046573941627771442501767635868992361626313461709351219765687502447965697730465549693170382565955046347587236684589338292280872139120625241590525206871111790049311996999798620465832395999573707651050677481064474604489322735016210438963771278475932045379408526645187453394609579819056360233189694900258554306043772938998017967182538061498965401286911412407305783951613545829284051772736780734825711751908647009703921618045312706802473575401508948704968785325864331161755352906671623711682731300322605183111948865169120353902968628875387601279315897152017957442083689239907071814334354945913076658140730270623674902922622272644502871397714510690116626152579877034093374917833538670952201864813531578566519703492821462232614292635226658958008835743991648435283103545216234295917840338730783119859063798799390837389746742653980593148688718459815264888875102636352908556431280604881969048212269799965695368618665435229652311990477879128931443426518319687708031933244294077082915724845844709951521740463285636700218101602613509716286766021020902596258543891080276976679742740727515371208413645592746382885927419443651076663585831860327365013885543193595951331677495409330665073081929696064712198234511065518526561593022511203861262902023701916743060150381219851476627700107533447652928992466863376568599548591845185571474612370963693660453601452407539794599677393584044680385065504171236139562696675123030919428076706667255578367899811676972944879599752806433808758659991765928363936132604621012416801708374086600466279786438551873053931326647731038103263460354842411780393134066470862335898513166101646786347499373100919342139168226657283794983746258933865191880262564000206340901623123516857788468784040168597711123444510094556130861393906243448286502912255337741822717944204894725478554512865043027906623378409175604093393198128362036719538495700078874184871379902399532744473463299425282493744414892845841612351851460851606782068834855855690114634075620825235023078517138714695230269426556812750743489849763538657558193834506761121663132951029738655173856255610853240646894863903355451278513876311618775242000551483547182942880557773174871471394747597162052004413058432761980318819352588842805450904302613071245753381913231058621818394082058644161920730220130256554438623834915900441255051822016752955824401909259309125971366743661605456894605733369297339144939844630707900382473110380936332816350284017492851637608052672056592172798246802914463315757247034422843694773588964303490132337885314362148145978274629540190253022925172199700934329548347782992451770228971102868649632759670017240825653990050573105152355854273133071044216184151098732426500701132343875969501014466992889786080831779479883009136434944892698392179408320342481764288642611822757148031293653040988743078552685610875038108466860705664958508114960115197852891346766507626290774164472490962242465955422458706556874733429997159402462323826819538455690796137076155027951315183164856300057717490671094868816848673817689663556637035283205033313386686441983950771727053668711460208807636738047667433901291054021276152949040447698943671685759102572616714172663306481045832534133162412914246073893961997791005716126841914164619051033385170568086726169807183218221353069264602200357181570900115813547789772849528879341612986495209969114319538232718059702183716675850904565477501779034423346237526230971787522329212950605204530625909484462994583504763152597321527857468886613286418744083996371803192496203375434491418855807115472895807779480778950168543802319123789676798542324897703044490151960957378232556095584439050521616352691268519066351348213710484528929552226056624036575892384418137207082985236000396342519237576801020120918576147274086825363403423162183792917617124689016276464640590400783310035769866263054979666195733369584689398106444889003926632256909896845798775991142214860568835790940595585590323769961531457961659198898672933056676478793612758360299143253966757225369006999310751391335942950935143493459709117992767678240257143159155225742330539942437265545658254610412293786284814875923354114963238496232489432857050871180538505867922251347358636811027467322401564859689598594702802156164774349014131257046876663723537346645655285788242359870457831305828057246008436659592950146704627233505911958034928066072934955577659985289757854225760742950441398683352415320091909482383999409664820394648963975650408217446001687804223055127352638188535509888384663296711095743253603609151230063701822646616463390085823914322964920041092832066584992558870695424930669884542443121924341221016931398541547500173771843922670250100673475578652649460925588690137952378121149635700625982626656701943904646718976139934660560662765256335789094157282427256949039851707483946141738033928540136357187273841753285993300076314540082606605976960905377872820157414707468497339204911108559559305569397542056739475779418554121014823950023719310047326125031022787515113569958511145637296565243802168008247929465937768421162685416028470416697122126956435026174089142045071119436442715564261826479710383258376011098336098311069151596104410126153558066797956693109821262928959917503742951104405438226301417067004414378617288330804956934023338220661578789864880891472749515285455706468219726826179969183279029454519103480794600357284208461733661307308835942590780022577295679413666629785308859791322657836374679244493643077939186008892327361671202397353099433450894805959379009627415786100823667877104025563263481174242793175459966264145697269264669550654621070632272320478365643222017249771402228978901406726713202286365020736838672965450853441535474624702093706777801099885407348231883015701154792009766997333911934586266433955631878105418349791549534643898196901779277545034766123343854701866616844034081788050274291752512284877589943416319641857822343602985708387743071698775002781748365109974549965262030366321789063662192965041272008991613086074468662932860307165477196165593577348585083521445336670412356621626162009011518051570254261806818294505196822573443300364297822599792618169616878238126079234730393393018465144357331645488830115220330696046253648276462535972133314898932341023178489721887240815709175599522774119819134042042872198385984415353966172720583752814306980812391785410139018545690901047981753935905979638730582848736086653685293668924645232619838335680700438052540768861138502907582791079707811704375631478092004220541941836953543613671928313027323619467031885774089310040119456236053255320400429684972854838273214032043023083338698567923160039815020802038235078858888411194339100890837170263322292225362972764825868657241415885390927695082382603230467310605692750039008137288729559771870558172556215443697278983619689168070093801188243023429712090922176712814016110434532204465372083267163123719425133789548654132436989671578112845542682643423837738478331583250071933501700189504856063737647600009855596575516333621255251006890358433806724755175886857857802011707131200416494771187051330984354539832475371065832235358516022581719931500723268506851295866925241656157210172164046634793570048531251589317063825487846878137039470973167430210788905516451495374023345143123896016436533629091853786288106373246831283497519561965116154101125555310319637496303594852586862060992373367575879003888476197039466031979305409230132823170657088351233977520179253287432908973762591572322506676496907508699753188297634953623712079832716630566338063047929745602494590563568369101077963158670198805818881297084668434414287029342406741586763480580433507039909279637680931093873488043397557814448446621972286728426124950450958702170145277061150994222855122581985329780168564771325001183930353831985984104901913689713663887545597658783802546384882595438299745333583207309252321944876191477363087433206190462394076022884159760156801413802357448152168065297552997549153207266158322705913251375184409916452680166683786446654968320706676032017483596061421806708642800146407718654095507938013844788216315760864950217469984575737850600333357984518653999524986468267282338305873193692618089648963306199270148194405905296565930916972680922356262603220750463103880154615229696916499743245393477915367106459712274261809994063392982412576167730963026373492721906549853396402323128587169644130333359424816573881567988826255142172385268452865871034588158394318688315267296191418587807331167459384150027429544219701314426640835821496985097305739959351433500578305269122638870009210808322897083167886346059927742578432848337464751246372780365854328595824351617511996666753369254173218533519721615143799143313292306651676855983549810159015765183451431766472669706468904208962299629679915497834045235174094076943482188983181401270045526612518434215338401246355395941232713301065767491647299134554271037090260638376348610242850301279815348431134962886371539185140362657496355556870993540022719128307911576292739764085322329456563729030893425585454974784809959495993488753352156988607435182745218108712286813117162787762635162110660561297630745059568369651162296945780003727008027007046313238052137988769440948422624096189114740362819708981720794767744249329394574861063893199856370238381534833831082775514769141815663352041408857642167650958058044208729759042201434863035478504190456889583020571520982095725767651071546761159702124500296742688116253148964797480455095459722639149850693655389019171077929438955885078082648068374055048943792370789290878458047672589026901756276087922278995146833885359750857067616235137137353441269137136276485705323771949234664987005555616122624962695171256097251256415300922308119241879248386605566711990892733938322026786031069154508803693171803486159714964735275026841986591145520083288368628507409480369027748443888256346947300537161367929262399967484154236587186944121662460184064904893558473082416438697157962763330604005764322941676830356378205691090080038295243913186538922351165303219144552356902544642095495352859274091449399852623038544077387311679496972435656331203588172733611922880600139986239065584264639593266094833982038629326539867235657605784122452371680297725986960838360537075251673819794910686152459897196786133599350482215772272425932119215238911929037255599771677275583031477584845620506542826167422951959793219502627756232701417360908249151914241989200298806523107081955533897752038434720942003327700219715876662001550923634601512621382071640069205205847222245676537557017942415800368876866055124996780284232977418417225837018480997722909373145089997209564065942602748586551887068779502902009704312628011278983589813518203546217858919138603961125443689072308173704027899778454572979399463922313238757724723274602868909822119115770877141577961241669074877140278116233772691012072931842232882068847578703177888704570293798677627048164146204410984708334354627569286756527133653951373877842707328015418951700705730141786640865739325359405863432284864109134509190641562636352657800972324853392309066906324398585237272874681018120223330148082712744764301013944497672533346601617870448285943454877325274881464572744282190256317150193472508937787008654250331942068068138099294410204024381848943545853269195724539274123147211645705986848218693934394812227234464638261868469298703782949017674621506433284758659025281833310283864934909924332813743931895622531599755950990297510984695330917572329537579166588819198233953458899696798639724739590156956695092923733994694803102605645905595498495154739375972035810903147431235964042941127932237241410791531982847780544879573783629292006424842114188375778988170321252274235597651531185839149769693666379862150676574140220549433494350615990500008845862313659316670410481190101893115260963570598927239902648230312558470886185417457625857796297579234478439814198710365270303579616085334963144394920500637764192141235363424165492859155705007889165397787242546922844236027535328274850787304788061485768474821314343866196252995091932084407397247355721369361906766801567811789872709250244232290555071726286701858875963312915402281991011775943802329727982498887401034289845024285238624966303747419762222127125845744487481978293796240536617862976851788926998054158421155084667434405578988395931124757955555418815322675339998096339027685334536515488948126948438403059865856017585293809960936819513218987891751522102142427588684990234626858264914609963853061197731369663230087250118178107659868121277413986631738099109801624293686545369965622121532665803538716135395292355154147060655491911439712368334959671737581159767218804873387722490996929398153054232224649285346989932416387957577485708607751301756564675373340847480746351573460709502230757070043828572007730465840831571385187728371527697956032996620497321313254853203575234547535184709617024849430639068599299554720812721441254487103102078580086965390869974858772439261615816894704665218152138257446822203530325612522851796233192233336817082277736682949633070291793351962177195396584780888996759862313285192661265193233168711573211471956836190538616066049619213817903217076884286773137520068649872476858945441251343068138598759500619712220250731108757143436805767472786784936901341286863224809502870563588465544170973863832713477915519761189234716119664055934003097265226031151089457808961383894138325095572621828041511874003277906009142421701833603357901246023089069443599963018880990210198138662504172020737096566953750646959592754441479746468381037975194853608312810234817291316537463699637059775458812674858632159364849763237579664244761111815155700858165839422807929999814565941615626850465966892806473807432202753604054841523090498391667637159275444298718755115122842065431207248953905002911288188344481848564503215519358009518780413659608836496688483289898906064345615202453653149170372107871593919251423734436014619888252313680300351054592391900253260263721252948237529643962594939935704873703215928443111127084781183055526417987782602357459457437146848973998870444472961294794376052453217062648605267386818158013820279256447977472862111784965795740100594697285052594607690410308601142257196360198348215950631446151160811483521736511543959116318193575278320086074670670011565339575337909524809519978756198741614769501740192897488655364249908824225569007397372898559904192722563115795682860433768706290379559104517757069911860848701687164553244021552244273251375853409034912798579117827818977965587307360163418566856492573816358133028917729120692055452751384530099862910432953461663259915658780910504633251298275273478030488043641744024107464066650501748257717641763610377005571367482321905359473284801927366825860874117572140433532952201223565691294607122811660241134395174694631810282080349779847336983116806974799870020884481196322259692326752223222964335342651250662089355934360054446851104817198774053246075956742217564159224898228985413061666411323775186961179767679841493123294206249447381508917827407572304992314434626321431822665537041099337718016933349459773354331283086461940501154580013303154894397443150980565778217787490656300061785179436147730883542271354144156506096085550094267994692752044656229509002912786756939893150412534630021962787100567080387017273214111635668618311402622175077576239533922206100235406293841217042719322752626396376444801181943022353059384911398219220607498127348256444244211326758675684686949231222637130786692885172680116701707056473883965279417477124888622977290847763468799026696077728422565334742450915880679516060113825750026209495653105018495319980886269173090495721606689644689334301125016207881413046842638312624526776674111243577607299778418431608087135932653554703824386186004131332136751782748433940735810509380446953200110447709991885863758121131818790047460117575642778188320541831300184322671454377926845902191719945015830286974219350013816897524588023654070551495906604249211383059659681897562885941897561164758748685285156821645565957234828298804835015911529183960399218812535105693210032355706044044296027370733573460594671003114915718141604096275767066903472249078788670159158557495061267139302866671047146691273942509120157909151505379546024066599382196107387251797919336876871475754919280008581660056849527271283355112149624291601546857586744415040629471198075244637726866597219922252726538428287315122661932772192276391622871451455878877590770865335846183862038502072628115503471834438071913184202341317098596632931142980532317970885277221139308726029981491636027491675480751791312334843347286655007369285465476739494001261136915044820488974093335745082581469471715675948997398854610423556642043231279510461671768694107509162141308616286649307463203609954278128579489984642408383952123507084866069580348725531226538898918965488857125215870260801198872685352656037429423409153297873818169099725417885267494821043513090802933959353438145069986512470279521320200677818407341792468969523849185401082591346693048846114186207287036458637288688579265029711986944141410070494559158598613055785496275795425210015260098751348932995906779545154318612430138796973090940369931795045347034189594626819685308154645204974885680575857059251090020882890807354019688742593572723188972629773207671394353955793831462776252840314405552836534721395121740892304275399000059743004940553608869025526186227370485794428095355873247738729581757031398421899122287407968146096786161047300233241065424636551956941175391934160914537197190303019084253121595080310166538489095493568295564384354507533379292990096834941315363402361861015689792563752387374075892829240378120758385765574983724057327154355610343774580975686080723057688736837362749275492455908675231892440720512585708118728883298573900865175114311066691090199906628753627128482973075991253275082794737914316391531890502129358233606964146145724057452440049552467397997185528297988041474508621951496348758270298476087116690129891171533109466197340653934287313840189086859664956062463849788786850378484174211022087873015651362943049919853630286456958274087734438722568602818028074959687569054339421986120844494614049355125806694320163272280696214913821320752559006544758698434258032083508481630377816206481377836533048076246769922110665257206892907440782374224523431345225936599711375070052567358727699356861716321188444986494705291198552533711236390513397912979121286762456988437850343767490811761782247635227549519601914080297305448779337069993550942667015651787467379005743816239310499551424158351259282496938367738049220080905161161106953112027201469452125517867786213754670623674459789986539477766648581248759318110524616131414060336171545981603398110799113943262427724260200444558400943636668037927189872173573516786603932429167013314283241432137895073242328965774341041592801222690520833837010737432672125932997154885902582421258734579857623072012007351055156964084734520470349497326568988243361792205767169892390823128832011091224215574074625933058661662138747335391190110274138615653486656541403900102271675954426505536271002551243278840073417050403358084930502517363638561029803416346552008039545220252016650994343539596854159049846515156788099598715779263141525944928670074053686140581869902763901658712592868833716626128589121928933254330640196848007686373094582846463653515081709890998175683200778956839298224906053194138853612034066165519797971830212270966591754993384346193170195297643292052362289361879371395770115174027795153268315672403530491042922081847645892321125323259124949678067725010606238799950447944016730754045016051876382355512514691342784175801443123527421964700393442556462171624001418555736889935121555818747359188888768021133638499302549797882191300925231661712860482177101003012075071075823706705129224881146899308247794912827279592795847061972682455513511609613081006441072656910495984200450638780603246257207749597627176243363576094910747091478351730762214409132134066673708128018172663622997716888919213327087432435609166228785676422231095342648557444854213871719365871652660240098407885099828149920376915048971064602828914229672339905757484113525169073816052628997751347581476271784120044740339484596533760332804645277081659571270655440617941055457821049990023162141026092669542097849603396364080165558029452121201663542957568517463640898368664297560906521098398770556252843123658379833986403541343425288799584682889279954035862830142184008543545055678068101683817516396527503138953267926670398799884301402036505953902894659562242582133405927002979325686145625324730830799715410608273650617350726815616528896851519361030879833979058527490928566003778345129028956131277385851190087949741102730708662491804297943712457809042866246529918869266268442169782310690378910086645259019077633288043921426570181503768772625265684869410369298419863549813405417472028763931529423611820788296709325030485838340778045253531372757393054385888182757442685452855696670319782297560257106630617239778674667738251440020513324896479597582805502978456842773583837011677555134496125833694629182507634879399526087761304445632039248837975237394203149384830714870746691994841550001041955418981822634409443738114651455172059539863707902738519124798276230896175806468560136115132971290239764721030174643115634330074965329461142804521412072211918167790118688476516055643891742866987033780058968704458224199991308967163880724707660186965708838370621282075419819937797803684009479460591288176467095826499275655545621108809834659015137000996175854096837553798127097632557528718097976521514545505993517996343093368858748821491718140046648970535502118112756712166017107051036431933158099079349307700312716219362599503785783759530889740698689996701874425110500215113385278277520225420514962181875679070295778121846294799367260328772368295006614898564612861076267836988107108303776495073746176957229878398329719594734317787496299168893408706748864406362717049356539228267712799182495625881608005249986433169643134437001500936918775638172415084343260535318067470414740641984229857714847405618574279571919057723770513169240024611503199706370450783729097800857778435306477271283179884999429984890839009742807140934963985773094724109674625909402877980191549578387773173226817278916194164944645541275469903332925536570307500747712199190023962720110481472406868304101627000203932965025160722899907438221023763721647142368248752489947399583641032283106245733414685581660771273867737082201059909494161313705832937383286518648019719780960626073658746809294502139266435403592905411370962752389792133245266665823047171294902830297555788350547181249453403324388390616392557418677454222552384718563987679547149419662396633194378460198326685475682977806848631142089296961637029656502492076911589720272165467331652364638475031536482510699345542277951799984133208385471586240182933000925099750049317675794585792176257063927306837358059599911135417030288066381475201764336253804445311162818548529038006006175534085252674889251111024436990556446633635560995083859226490193285036106902233173411164609180722173191765673655179083074118835578642352657559432613590384324755109785461686845910995148722133994326500937648482318303966932175027119636247795165635659473839799434288674302652348483792842610965017058135655869965368487589144445511243182621778307597192592534131527069385078110570258882773233725063947306119534666430737590870982633848143644906655055454020996937533240436114342002611165175690325065166697815840616110812864958703490779119601697681049169939662067479835320988964375153925114306472436750407641028317109381421780033752044959799927451817961391856624486466992996758419873120857736627114766359696368571983304479755556274210513719022375927691226679408218965985039334956635117172797593399543319765557743859240037649220202299196348912058353933773606758534692468948204623665314828967348800514683699477595850650799279761475644045799550963664184148077058855084727917417798631932061311927150579489905441964867531370502016125095133402498831549574003584456369614140939239868625367215142292581739918710508786047654102387639871956816711126942491995483938463893662160236157620087038391422596596693244901332210973946485607289361247317322728622643078561452526673659986096936267912796080132955330995271983529342127185698697591670298078329595534465080857749398045839868907134053188056484236437018410721765107989268159781901152028596945174717134455374645749791198128599355612856773569807506011067528724397985085723615743317703755759395481570323823222488186583810561642633170176430963405166563606899753856537961486913561583412550005696892000696446506860023971737471854586155204820966666382676183295046637708849292695597399634095503200951388277496149697314934935528387844492940115466503346621529919997729985820025717311609237156170053008256318479086391917078079238152819246110021230804938503949393516442215990260250526675028896867495555788879826492197499283646881208696628164270569116785103079708026066095406877540083039873835713909044627747147354362950198262785359480040495975158065254648418119054839666866911409477792458467015758549322287998737392370469582410071521746720130523539627200811141620111356313523328390345475741420414994874737470158707459122094764968146597131676231577139834452289691361881000973477702152606915868879688520353964320676892601052951752380751299029465204432948134809139123827650607176242454656590697164656135276062806583534520959638258592997634456351466849109897050486367664306033326651606624112583440184096964389334231528888146577266203833853234593013385417588148478053520304539661154542926724214982056749558270347541763198946176450146015494936230067510989855060121662650878578723623335656605292234050751340243132322881982826611687942294090611263660350094052893987624166281362138457404748334623526869082289497868026132710345955760758297399902474736223366412100144739073601022389839648097785154386467576651567724766073419778368980443258634946593953972420925941546414417441107049950517742748786733690521899400872234472156955307626570079260090509788205769824987750362882908200988686896363636972374559165647829079849513960169632220388009272718196186448988192218803563713099377995546291442551363219716580759806634274996581253089988770625227074086618706590381340728201729896794666518215061400888490559688964547236130795074152324349167873781967511838458174866588990492070335852786147807269215510786122797686725873309274989255903928930723228788662317443368802359748450073154457519637217790384824853633972058536297875827078520238786838719337433555367459918159598373572410543374977023471765746394540695716966231053124839583695357196754659263529993990544947575176771996861178352854620102297998892747180252680600194547086978713438234564738422719598404907952255959816339351739819791145283168346356827669327129810172379534320745467315143364577438201220774895769231783995090584653235223888455393551255207811446761370808203745002915410079833587929770860372549467439172533464461004592289486364710271555787862334856132698338296530334131091980158857299822503109401366943183201884798045549783054085249950000147320364290434031797040720829890611670877273986508416726938567672024422120370142146250347450325470946725127796716291205977750964034653016071535367968907869760168718263940954236569271547968025055434063234584630122559413374650500636588787968490461813235833037463616210341947745962193839907541843341905698979110129624866307212238679934884664894837769193537498818331616595019575649725644608224953291399142412916861382663630778422121197938215065895484559981190233225916889559904464201008138442817802291496820504142067040225454479811182168322964357554694805086706558821171638275476751885077167238902615638529315002145408382744310491348200882663040909839297892818460618836821565549548788643258161940931410514577729608952056652865103336981918495210082152970112630527159339158999984298748616744788706619605643723380550234306665372851977475968048880213140263027778920159585224142503440163432937268279310079251797348046940713430001322554880200653459643853409441536639977851637466400427042722573663675814305183858783906280829133262362515056261684765423248183858384282165937584219583047536294232467839782234975088112285143766100749991741178853267630337229009749709513215623785547419028877224203168207389054791530806784743048172295773475954095273863118434838474954541164971210250047931067360718813693037413898474193964760970070346869780191156708586993978280908497465842345926585826161783689710071605694111062582967553368140368265289716516146827216987284141260792981249130821464411017797590621670329426391786921154197046585659007954387006015208029241284717338018257773242336718244998185910350345413736122921314005881663149859463526398702774768409583892922875875002432634536556381500058685706620390890173871143779502666376297707157036632961693132025516115807564468027658682992298696287618026859495538852821680491845485633026753595948573800406882679832750644430133432640049080186108495041218513124244538109520647340094046763979316907818716037484233731498481765317153323173393990610050089199117918592116140223189972297888946419719893034419128794513615904626372655198707726551182543094603485899487677171348628331186117798979545956121725482245441140083894790420177704453930381619741729256311406946767366966553897790407444799829107233487154757293495297627896985717294557376170869705563904524848589748180698050388775028166206090078486913948393418640247032645944616001538423701652547635995047979960707155587768320524119810529338384370548818529886324064915803438433411814774778147738852916395667595164657749719517413992870779207860444810063729391333486710774477425663724532886960239525595070777167931490784834767078191193357715544098267580721513826218614395180312909321199992984168733093997693747626300870601899670779487783658801321124724132995406235683925791697408704181060590734420029972949400170984337960305563325770999161547889678468255002118358700466934977805438512328837641308804434669278117022385917035529446224082326153740134518063916733737378443409589173778577623136332195383292300389641171365864273964016703463119751532655624198547721504054374177670741091489864415796401163949708424677239001487857224829227680686286296368642281447824028244602436571405086836968450053236862473362230386948138073355529253281374363899729671994973919643771298224095070081568610537048873225880109637600798406722050451733418976739413799214247253383770966545303493155735500655317293111550862466101497308413624114121266906978144472757283171369340087394923699143941615084686606235279560642562452274409696002590292686041137904601043284778571287645361665345327859011231288090829590766643242548090842459599666842423395931375626955200012475156673778849815891351882346825856293069532010468856984569116809079002812677959570723033498814778189248709461728239020615311690669805973108712346737629753610714295251024787355601118540544773295741744095131976596083857445639118920688020656810925039519024309821121247670621085310024914132021489620749392869755030773626287365705877548481726123155929895356869065850692018590492383251675662822863497962547005248876228110688827144785277976624008505002289629035087301771209565869045685507882278937146769774977013891636046908684113715163620373159458876776718917074216968152897579869329931670072343090148543021733777625180022785506484133377494222185834140600430496911172573167912993367664623360854312148694158273453280728098274158362826697411115640440779536328852355694038250444345772434323197921247204795517272077029141542919265254186681297574785699327379356137415680543172885428196274294512565283704968984263586646172171576235096235605451406561192414087847901452474576666439969573804747599391053376925546895615116590864834009092668609836279365576521004166673501345790293745644822682901788154251039118116025085276282355864286095227469370602156335914760953815564808720613420385843119584960091694231578961416021646921694056450938021845502475658754101910774529281638790036033557206372127167082214903484229414495071591404639407513781552147350515733006856558719381412718406755940079106438312628465129814409973564333300309117494970651485053096477497673069585039192691238634261842444497792845810848537802444624702708022617508710480093545389867396760927317208172002688563302056829487722485906568593166061018951950347123525367411540709724647331907964161572554518461552198083548603365217252369278276152159273187527817240841418813862440712565287597711300352246025585664264675506434296289498117470725904063995140278131662552967288456496831984583722782000603618908781093391888758379027475804180615635992745407294365473952694636943629345864514226129491124796782866884959077202579023882020734943197963825593021733234563007280160308161731120155556757997433219498290130414842870702358815105230642446883913748302034285312833633046181786464606026288980658668083306657506543696868126739893369043389185365667662807924123269540180030539747900736587405880635862907034385045355586416008110540028943316042995903398724546316145437447299990507743563486917698747035401048811567340786196078316655613020340363460586571717264076713193079479266867002513578992877938958236084415462511871375491380300210224435882081257956425071599743720676420913590650427486858573410164172370354586299077454255981639805498086290336580167561914389990753720258958952391741356834806513342179324550337548813786335139329290024576571675711332870787420682251144395720939735838425916283950479795802013604149875375102152261174748742801937401263973481539109170026965379188585856296295603034025248189279246714215428048855646489376721956847805449000521338879261215214864149381391416415701570946473162680110882525868539980248217913975241240165245850986434001423871793231495286331196957586117532741134300298290257881677350207627515449580962768042516611205379009089961403349609165723544440544067153628293695338975734446611271198722330590017747502863977052409226236377379032458228768750439015479319126947816833837196063055645097043048772411837372849014708851252793857177487067784707290825643067722784838629417763836738884626083977212518681463894323106238168197841924295311106540495418879991828566066498985540777451019122398667556386379899067882586704295098789123607216192120688909718278594147261007262572535064120608848954275184703876171202124676134241219953708542735032103514377546761574399394418497360455881445967287167771220572140545988217985922048611172903935599351182912165428156591924168634777435447338596318487627224969997892961696377398879667111309252808423504153532999114156440489524841291283184751018232295447415338122827465432466690489610575114856260728375575323548145463037904240402777392874413630600235301156675279787958865832870574385793979485705970279257039500331701063673520205182233588878170325004032506460696561742039932394313061589491200683377804028174429356151794226366614671579720901956570861051617066768163420075443714549285540816503108791210166128547648534381338997814406852236518661432916162718299622384742767864600613735288292937332672133647200060105370300241258991261033205104124571958349364569662005497832586859465910920804793052113551075158174991522914074073356329921242215823962410985295751277069628816654182512750190741825395834991570064318268134041442294706685826210164061194484779268219043933576345229138195908443507666945145164782180945402460047594196824304035306316645947642508921453186223356341575964901859008986125213553447177542130834007805847882797545104468356731115913319261698653037740655110559364593205553263129497000209517769994300212078665874589113665754851115258581665720228943185200914855334840076431796815920856304795708446847827788224982567629806988204877616594175507214339460437467680993876704277325450915699562461458563571921208573193485986386672988288116793188700643358817525451825504209357800879264329116011680235313961382941540933837332370940755086929106344954788271872629604112882887288510643762874319814383651538042660864143835012849533075047940318609483066533294933411928456504314317042551797874310691913777067694109788872397841689760306405264461642273939312230621725668223314532938347727843275391360597088998069629547588659889019323866498958211240286742861295407281293900717780746265099869565093995612350503381686719373796418119739397203758823436636805618853854324451732868553557333625788717717987336863865582035131323910980015471951913840579334526645129914123797308434686221881424496722323257108079842000728538315654347607643443574479177744386989040551617441897765382699417638289867390607730310744916583387527871292685632258081091620172043446331012880314137237928716109821518789301068302473569461561167589726940999695322287303760419153093916400649182851548845804272719037734795229004375890662583309174651372472037858836054188169278261164364398087220532997183020796968148863512199308012288026632925246753798094716722321739440253626730327372533484224874488158327767346035888325989823166575094198950524957379449822807151603122651601410540457040117195278703219042282745784039726631376188401081513783186361778586386284754799570779132220153103741787663328860641661227069626698416867277244396403139869157121234158239313685366109476796081549156640107422212221271032747593807394641993206187222551299744707639458991078051327395152823545584497713387841328403550290020341653107740127311721031266769797941023494688390474303672066347329420014382575841333393557808833570482564103674177091417314393034278185041915212441497594044684067182895462582748377387100051851988057962946749181018058271664510778798869637112167415394906057268833067516511488205768230579145433574562893279842563447790058803997136458922035306807967673633722334613722204220941707636334742656923641774433221371311916555629400168606786859989152561442199965445990479538893014245845149963795191311349591968067223058897330074705267528437981500033935072664701366995026016110670732353927804826027478182332941658333505729533437934744850060894776654319066009509063859446514521788103409077837540803952007473587409555923665426049790332811316857888047061524672273014655853056503746170061157946361196986432078638907451149035385567691609209453968415337074547010221098552669350751094857112529403071870511540747168777387696073699535924810497904946926918904362200846747959018253804408096872145883237211623115211248876808671324184568774385250512853395461712095265259814365233212074697233163527268168901383610224780687557788466088554412449126301232367560779525097908517008575332314343946880198169675509330594349395542482888681247793085287533112041912035363630581422353385071166710633526979350250433506434771426184136696306578125420003341149678030153649354093326100345238177361831020753170640725157619639117870240663570460316569602666437705877967786782306864740744243820217505303483987566959278089156477245459665845748619298508188193363418246236768451620286290642141587273824874993553290735044967596924871677325270137101006616236845118701886294575894054603806223713478271166257279556455394490856430746273618010031028493800253048437159032225267120889483451689654081970393346990303514147549001012028204171791702092762933788955930592607225275203721744962264115192612300352063691976879923391409960131855768874876754799627863529703355890084019814129797227875177313691540881805060330194565729410356983741122387221372103561623139318021387642496825114821642663023829748000313671613432721159360169768334725681241960811240130267272695632292111160761087796652458970810818752162055169042468174583535864385460110332658456558683790405454158144209043009915467526485618052006673875130842285417983536008755811928385547819117989890209069040450789258186350086661878629589834471762040772541763827413999641529996146675874923940218084776972562931049865600734795399852664266333116642814919155724541345178220839895554285101559468271555119405744756941522191705020986794858624581355195568315562126227884644503062498334561766514437351542071884305733521162957067091663289963106779643490430335783447469451390670456561798415071052161934373200477905973457115411185969120671965354403380807744530374722668678716673993213770943647104800965571533678713853443976891553866139303147530490911401778140596793129773112187599101144161339137793301838649431325167506405716526429599342840053012589966259423520847385086640362031029710707539182845969507952907646350390905658043837210514811208070498830696738701337885054231908727194269094586796188010602517224240241568033383360996364479006014990091299648136671883247035004849249279649040068584421579876599789264122223165689819160956483557945251781077265562789446016043186981757801170684242283241485120880478822975026212928440978865888483353645872053067823710268129844527494963615133141041064470361997580003489953136033380363375915116059024701918997238316767852492031365686766181757614373278479080241843024687950640899968185582558608524524580409320585370498494484059779901080516319356164037834201242880847559049598670020636104847404063066649456941173345673217104261441877121886771261192519427910070315591333836429532991627399124815347396148835558321971683845847136202309156274772774962425955692676485170067147500249914123001804154291411485273399412503240653769900939904870222285529958579815358280324526967920177610911818328729633683227062391652652945648429654125961875640843467211177027756105229759978332861800045155458637405232641233577645364138566077183271005762253902167923434231315585172880912162883758351876982726156285159691049375057417652271779348130196998251361479032927837897201255489430598548990689203268352828424256530164482640394682280521978054923754464204881902740071589227932427855511271030474547618534743778381943109405508252291451497283110140385885134910236536990915137921753672269683528367797343611642203740168917147232317314600716362520889139047474491785988612718063242141530568244400332800369968734572177755443749290268768863374962080882985022017752525273578963256233913059382880401338150924641365886350210571344140999767230621252989466005675838636217666003729217897741365316593852878398770672373259937430014194188579599692326279682819113121060419903150791164786127652996241174370425919953934392097124301708205276561012764140449828483037634235562897982468630908855980181462832923642050959028590639074425897295412969789734081407165499051260971175822290914565890160649289529788392554704238406472366900945099112023076498777054661018454099151083135077601299675142941496361618746741022682233381648199870333473152716117481695031799306579348512711574921800263342174022301222076222625069726755158111236624399030635503316847063679109398351248427946412916580486180494491348638497016729530578194624434456907918030475534101744705668968796037340569453033568578734737905243996926811094208552129889430260852269222128066167828839541175452692115211634363956662756650701862683382651543653755354581730492640328206449807550691309237366929325658544256294061300260133375428212611295531974262046216985294873362382037295168372727955464569725680024431059512982205236061771358064948255528652871011174024840451379140481017451483468905732652269212838224043790974639199026044253493409081388856825705517049252922721025327177182728049658502359089995180169315609403269722576126289536033106322121464001493986122839847018467531502676226133358140190361288340439784676844661419214876981250798953241786611730474266303420748716629474748546375962953626229375748264307288688385671718496876503330282474602735728560459588087227924005748024798117268231586924783604781001935810312740373695549794202313516029310589569130239276186170714340121803835567192467969779981469387813927517962148797572860919767549350434872509143508891299089011801567123742144556156835913268660396337980719539362218307229324140113816276189946367243699937860344614759254793957085743145263007251543872964890697067478127266494078301448065085996336575617725916472223806271173860731678460766361523122373953275522723192892827989957873974980049918477135134845840809716073513073141499300985312771645050694993921217807302094357216261218591927666706965989349794692207914850084815265263585457652613021279466786093884928984430609824457368015101991915775706463111876456047967256709136908222894453989423368422506306480747801773214899878345200985448389495202660155612847375414967487789369120109414012627384345252006672838235509669239269258231306882527498554575739895945916867623111536089754015325173860733758421890282023584506176215883148339471027300926064896892103138966350032534191802571110990307628534617623746702885284381834992523555789513839550739047452057761776935600997004563924282811145016921226863757554175062055434775936642940825542879750242603850697075378204189588750961012819506438090775426194788713840013018550743901098030873560529700502666698472489082624566704946377572581145944282946491837927838682411310974851225753825608723019605220909791132004322344763944821569763311000574073502424918361055170470131229707270364221053820549840841945208561806427663840238059887521561893867611512753518199833789057557317317719257639129491850436212482048793399124607077460863210102511612615984749905973758422520745125181404481229366327750962811603429902466276289804939576165244469650024046191036115383576309607157572488135355390716259969402827967543854993053811011705359684868458422079860281714027284750030299049075660167740972327476003735363240867843612697513921082657492029340736156531206991006365606443876350180909146944821122198593280556516717177361862235779192948787391327501269757701888904976609312481278018708861849090675138385211869324760450276262347749481525668193931237862995127628538418155512369395342279566954080071712856824204021815426703782230123124666440478434331557572587953527245731543996086263479688458515410448651137294188831366694671337730591045947654603245543501294532849431434527442543646535695088439874451183879618759654585764203123527323135179245357937082995492410075276805804052168094859710932315477736045892222369716847216086294092522215852834332095801482120476201859797951484224025585905386543767660652200578509299683093917169487093295346551684679775301539058494964539495290389400771406718579481398426779455112553772491748449692282540970213419427164929377284577424503881590439965084743545180229593020785336063920895993371706749500363185357927715791104436886816282307824815746259530475317526445398103672202006686437195739748963003963994508859299395498016700909340721109229050755933842314996765960695593556870219940325276507572513789059185551406880492332524349299841742002224216759865564317445276374648034466225548412697891042107425643139436921324576975725682113246307868587195433480151824844030258139988689243689237042773450244874609287846600987698298829813797773955057031515636336236910831726247238888352072679648831926500307881334766119150732691734054005901417281951487336025584735180345239529687942254998999068946710206998418401989135289174476954769775990552811565191951803809090104556539004270576312500851199984512070163534395727714415229026860097585533207102393530679848877835996006904590685064933024286760603802490263948407239877573621336860949124379618520858926901122093375310535068619066275171595079709060042508820052534719758461962254861672612677681719487911732463016497914240513512235134598625553444733752429849273097333123604765440918116385732966885693058085061364268544158388548870515543933078079345924256415408635480279653672885198457495589905251231999075064491427960326222784286561586048900433831817041432054992072136757135274731444369279454127675610046919461894809242695687784783353346913011853768583993689847697154846170398881328458183274655713125035893202377290398382311141422376078064840235588787048164314990547452564576857153770481502190106049565606109073856662192002562707482846898413543160094806439959777654343252104848561906297129338489098971895935077430620448140785234194273725487210695940058652015213288052816608427484697304454170090180525478790087049116003935619948507132704603680832693596292109910519626082640305572243521224233675973236737770329778707153330468379662021816560951559505366345669447051933621597511979788934601535725326485461206604805016486404372058096926551389302485761518719920740978322338307452211393272005242108838215608367222368257110810660426282730821261470790420246602558414783054061268389925703114375788179163027891080903451964696781890906621582586691828204415682199413572160795880908033372080669720719818048213456490941330320659563839331186711530692841626485083853466962409665382644779540182559407506791456844229073608736600683253305208446063138747214391950275762123074987942129031409944830599686080666641328150108731187424847222929302858316706484386716515537766089079435869413845441976137584129268767118579828673199110483965158369370237069447413588443474720040596330213253199983073404915323148422610782633292911419689316313303663019247530275895650828107393158205951757188235099008349689861186058137847268029074964445612531564408511539544129328167136135741455588661766777987463098859545634105700705441895806283877398994158639888819296424201106474217642553437278033907552603003981044971160052308831043478753240278371355933391859839468634121116668136843170030021150969935246806148900129383830566626963045848210902570720784881047810351293449253797823610619205759837743158156794236425957799887937813139391385714559885626266730852886235222500721877577973102792698093950186224859707935353454709812612115593335375978077605367518169536780120531514200975817593355618509616112058925913490535832557478236761986845609350059030378161243621536521560157526527558158079531467160411853736489904032564992351117934014350375030875854197879900585126781086011735805254196944924393950255950496969340754482115331443605937978189933991201216104724011805805235720852982255135310867099335617788978316193590856403612840557834022555605621944534701006313143802853910009431116072548994948782923502129781657346596467911178921815031646702112932174749257802487825001769715068828255757005150408011412451792101145926100714414062783923272848870240279485060231831611040753330074166614408311305974123986782307673900856714273050401203902877427098069001749207560583247748209954902098256622628455944177463988219266113736981599360974800632820809867518708410851805705589031675883152106678252848629509270494013964763655948272737066094637915758135472251191795709789414731238402605711770724297877039316710102563957104470648233513268346792072389559272113634175654595794096167107088661830265614788103552093659842591043384214209857086128509894360956232760952886991535946450692529433994722848945130497787683640208149240551299935388064320048136422578378454789731033410612197944578963968522000681638968007774232872865563835802431489600303252980134982549334283660105305338019605119927348948242666907330701927769276222811706957601093658431113230207406678603334188254716089305306947802470355493487872416411480087061449334114026138855530758469278646367066980630728776335696712124388049363590970726696240093797411439304215764907955399357091271751735459813436112610372359760940382433849767829260036982585444499561006615112531884819532212115850059916142218693995692689299245005996340378549809463135113254976019529300779562424618545516208112090673174769478604795428892622211802572794985206470853803921098246188503630921754369557211024869236221336848863157906924589838715230445350289213849970343735394050681808933423849601609445953801036621061290521649250187527778093178461186141415921418478355755152902670761395319571036409750287371151774402817639284853724571752357026796166063925749239171585762482261284207508197315923459788557643376109263785909162600475228728330983028759737431847210230508982428466921644694719188909987886853852807968672736846120683954420592038183371186689122511121678331563977439284390293016946082465066124549308687684115718347284776218918842693413893450572824333825637677768848255328147463134900154506629368824442154419459236561204371672827639722196669086553063659371595554338226913811289414627081752601597892866712244069791541215686322254442614226885198705231267357759629929138910288124637007472408317902202994427318597688766161491268509370607470006553418769522817657379603974860809231030639231664943021245234309846593604976376623456261307551364527252465597851101296357214090816681752970936950217605116006804481974047157843744187983624536266072585633368301497560415731065404052014991680707497183577634912259042065472992921377901300189640774751391160180782569265174612242935257714016100228758809324270155444311796914593128799791590857411467940259155297474918184996683771683773821705468593651937963589582468856618987420254112331992606527458242075639604981575013890395527109077190745128754320112926275618109402445108191814772356159170135450338711371585950875897108286092133516237379860021875034048245055541663389506677091272300479451637343474095417724643657281297962927063708455524881823685196700315873425340691970322243483066570806304001700409045795871141753391775183662395334467983168786077471475534226903911613809249763395224477298557996140863880207962893411911940604780935953368934823497328618237476705932309793779189004833810927328328923991507209766330397232539321558015580686168841320214405418843509971508200104045827608506568131120903676215277082449085693809839674486682834036086051107323182905057674493236414017042076414147723092580994876065450838682000688859638225793696738514644073537113620247952609001437751917236441447607505541056064136772704441600711723338327413749166386517759542130826149561505467733522147105091336695595753796304594404305274791131417096167956479604816015850937458247449473073106882616177652455362644335579723649279421759170401930819018627681211848137434925135409749737480620298025298613614267007703040055842455728333896376143282791191731952458276248476648256383422214327039524430870038337433863937951387664041820453818793564915214953845807383330345167486544786421288506321280951122508922805341104459164870111908324591683444187284699429957354231532887317816606933727848757576724564800238660350377933034748120138760834521043774489561276491559558271680734011421721175301646885675919929429878998725567197677750885222226348911715284730006627551148850066276406779399625164756901749454987242827501912156742438828214862461748472963039049834203615961966037557768826503981969271821783326302801057471499066894229931788793958449773923404265141701764216114675806953360986502884780570882623355966842013398249807722716888340134593145178925414399352894220708584558460882978523735916584339224958226263251883985953079714890078768999343757640553288747987120665335549343120900762385659017083930991256534463196405342416019009574334960265287801551827517910443732262386653968359533831120014628338102277240199541914837195446860551809272460615279477347281891164694712678228001232156891421150404149178656928890750318228140423330690461824196718478405326451441943409613750396612893356153709312229305264497458381350185545271093325782214733681246242177245853366899002971884161018947923812704001331904358098624708551572899227365565703490361664213506980724567712244102902073860376919554662420640130012023582473435349800495405756902371903362002946748429065115079434272187496597710307314678574574660448579369625932924254922905035897351265963866959664091774467318288628535188867234017967912794028408496354659785398176785404755734833134939682397433209308921741978034875635821748576126749262105214812496668964947306103087473936758345912715135265585395457342599312552893076322281803475405057198901918764047922191642951662996009740402569488226306232375278562673609525548187596086424802641476621742483252568087342194587881736523513329876628568835350820982822534353662413190674158111632495322553520158482499053538840677897984555473727774994543040394782816987500673177993790616122080649085811987053530470573670171801094646357519830798134548451264251677844720769669580072510554085050929743768980273110237589479163749458327455239785832039220644752286016037109265217245184594835597820859344328651381926218769599690460001094926149515007653282636635030560334335707171592243996053817583013253992430700555517258207320100573359233391699560121477292688573110024822549412276840656860355347370684685735329970166673994970558092529784704072560242092609849607505258250439946212237517869153779887116236437258770457466163896518596861049548279917194947176453762254528568525561608121127390212009087107754866238127662152245383210046324772438070411133093255762327315997316750791430370435492880412228119624431740959529228287802872981955762128060026280512666368404924180570888130005807512384356304965167874251379935639715899034506102151690387173517272300078974066960572147745971011399120892525591820252062499606818855900438033012312809589432197657909410049281942999156605089417498736947136216192175668429057803877754770038503650487039225157684911153235509984908979978806931955737908469491752429269805849948353291985882668132649722137112752728012610223909173227824472524575941676069399616843541625675911852978997419989922347881121595595774180333676715187682771845510237962030882297052115420619861357552226998841968027146974409884541079477357401049632340568843800053538702734456457338231770666771720970974152856540297685938504571918739356627854277623557430445101877968954633633734892745109808849391271872124155827956362445006675794012224404259770506153249712239348473012437042866962899900945259150318628181021488624261710408576096510053343453525619129503232268964758458877843208426864286810553734438624886364670745183557868978004621447716541114896745342267329534931008281408534091738397928153004010184054828251478077018063878030250415302363456812789424771163747179298934080384410692011762945689059344193612199206943755996583048697100932161708113757634066572310373458718836696634014016540529282839932414950403386618750417301234103084991323764903112290038072246672073900209936418857118449146311074813995988124631698990421098305037158701642964109993081199521528433519789376537244352633815434981470852947071459068211687833738564296138436950531970978508202403045077120703544713828996250642893865775166833414944473940067204857511446620498352077663043573411308054118913164341710782822097488486835962292557252694934301687708448335125220069877131382047315819513066804603480862091296370223013279593138462251012424220898905320534502461541356325353218897589685319194518730115164113189536348219946345929960647903356361942616704863124140399963473767289786628320613960180725413417954428770654341190019374656639392256275171396238906267398657331058463380710631574866415851584409612438785103253810226555662917889039634980813042921911768964345973509028578850088959778950770205066552321878583658555684490871412873622810611669017198865113065432627255665189569120350209338591038690127058113779355528608117881835027754960272984822028673781871991014493391966105872293378543357942926445717462245945580353419209172253951651867457140691053630777928078420518837865169782269584789843447444270522832737749520212726104056917728625680091976796629323575986248710464656128838667584677424141433129531107703437388759624585541074838874569810406457151262279879185078398545703544242549409031003889113123326795493814720649581051623895718846767005618636486272643548213050702905061991856164453130817088099496092230389626562984295540099953198516141329596987479109324373709947477372140514316113283249440084634501123857377032088356886613300440441153354632929465598334117235267694235073007432679853012841157247368618297631116344736992394693829652284374968318765898821479955105853861432344269783511720398434962439214134244842302194561741420166079547288379705401840956118478011531920652635584355895629277480808324279323928361025154263933848902775083732677959968526327710006624074978865819032061689619887589609636635809914329576045285269749193982906621756532069986251597859083847520608668830166701216898929393213084090308007469624030356975951830594485771043572887843590061716131310753652254129981819009076620150324868376040895475914419405449724351222885715314811729481386676842813039806909427966282871677426323991747784686185883033706494264079556406308449694183471731176339604956419479288282231827300520805808119387417936368685896690808353022122539329260762291873838106058030674009848835390688887195638221209525759286408901664295168419674550533527492637644075949547249796042813329830093105071479079723255266245099924896686143400653390784043272128055807555853105607276699843211932376851165225134670603853812373986225380870029107180320499849740526448449500564258384968135209145386793709430903497997157876133458534505778628894805555004119783394920344160537915002456428034667800168845908176003238918698890563254536702557729688851353677684509291273796733514920780677176795495079833154007937569169531169069306268779479494015269988795507565627335138074415694234509108171781559481941555873150063991155353969881425658675428581557109991640310440083489561514087865298310499429808479002568087268696467255517204871576556163116649457065536018931338045996705165246884784175860913421102746404725548216289417773913565443571090201690837247024761138672305781745862981202058009738291814228141434845968798510722064105819985992416584228613115168112047008147139430676019188400805129012396268471395629580967464016359044103100201110340835527649454333511696719004239825693849435727418875273456102477901425968783427959859338038260545068035863380241747978883169570103862351757079836066476475222196456218063659284040002998566812251895729662166070723271758547360349025774244009036721557428197156990964672196049378744677260608286235694427172747585911722904873731820171215643294442265790016061961516796414695158695427024843120138583300465340037861137109289367655836220598080911948328695711733072265744320327314387320630658708232961103291938626990350363512068763634839878109716319457284608072108719502711460303325818890617624343690138312493368772340021273990560316457140534450919002650281414414440025609184453210961989687422859144746284320926866052666099788272834545106947500878424880446022640528274919273483589607018025424005145376589309050662300170890361881077248322847674720090537224679285841212080642326155822110774584333688479657219922159997601378705085761086565100646880962003753092450388379626287132207771236492612905845415752264900038370453763134985597637552658936249501015735410662311205812184477594538289542405111353994682313400601549445222960188557392742114127173973667350987772956198924818276186213262317170210236225735920306791047873772666287153057963038097356775984339986775775488492899128085237052220763645171212367287932672639183498172718909885154787914547227384533333850949787825335448101264901737195100908176081364941896116454698117314321903254198266898185080168101681450370690034659867263972588964004128690600379661851192999752244199051675354395801929441656490818209872108474886296920025983709785800851701423215738596574229356869526813293986733853954438536839225307108249534949123753665658822115061445321202054913360759607750765328009544073865204403702136169358576124094461084136422148401039866603982209589299989127200871549797453478077279929229977168772652823810046733437359298351756943777746072257138351968622898718234761651919271784618234657064380819783277029778126163420785881137430859441838457119343238515138457064484108396053347300781833709843530702728850818812076334322079310322011585172676435344217744416033731388469056529277274576615041716452761588497705959953793231793276059530724118694907096350861954894273122070781163905714379191142684406434520690720636415844245320081025354833581827598708827764955272539554069731578484074887982078080674251309955219740938839959615675857087441987204234603523489689588224975216253019253086691443538432557939425626369668197360408709985038054187494506226510703647241227475560686700888015685144273834108776710274481653584704735352002841431512264149238509536760304525623596397356041984716374265168650015331359473312188083267128705067029474292483115403990802108805392413768920324404066860956844954953506081459488675908400657266634667941363364856372268248681238274594232165131577023756186857232774185372731578831562478261324978440209889957633910468288615632497052513538674752041320923048658549054963365112180781757930769717370562257703279710121838432799584298581416280343692787802962088340108872978818948669809832383534388203322981977651790638365773591389246303680600784862774774506945888730326447887587151478277128858766406710137958728908462611553365549843813176599747138893333527589961583959201578706084169916830074881650617437485497170302504567240457270493201707409757064007883436686136804047967499126754805516614338399694413210422528403461979250480530912662875737254530968859273584636626906723308877669475520565100140715030557309583672291323159033245034388545543696471919268772038419463990441189272116980238719207690049888660473910047002377796379451858048276760519893254681729879298408156946248780575843960480417004303492408407100106976720018643401405278861112368856664019751450853877911146424662162760084908179668454390428493909423654644208969103681928376037357643401745420893437561791869065030130477327230319758685586049286163432435777594741877989883635443469084355290665339096882838601388390091248660197596772237571302973454675896672880376123917574658058552059091836746146473633481434392738104661010944547069554104905194630019717255991586516656750093717719965499878982806453913418778740756921689950268187310319007158927984077534699263928209752358252704070587459615987485592132551345695017790050725136695516589508576681214378663921685366045333673234397095752593465661671433625278608169352407299164196681876606442703158462144247143971904004887003395500077341741115807830946146496305561949812416789240157872787921696137145527452402364391748989547884262031040499416552506393745900760766173810130455668382715602779552067243553573687724997147206542286219271692446136417536557867754817240272713297112652763705172216289309734636622351642896751614136196478164395077289954888421361055150608466523363545612289982174231503815420597992676743272184967957041389951283911326526290237589522745661076279089656040852685939927150090255391384477908962306682192546872683367877354175331695233485243186937828186560675097404370848546761465679084649195154130151373376477936626839734267132284534685823748621086673388151160046126980209268934328919685894935551246172410310321523987830187208062385499855680194575309109558384759518349221047508919938926236235760947151686752431349047289361271498118607922083315152059662994007581610267883915530092424994912465345945478753328433832342596069849588499373552345221071232076387775066130245699272566999699465016535228787168077786498045279033199250265850746284766979174679821562138069594166799756552735313544415387740192274870097654920476297816547154562278034672319464991646185222060579317987743474283074491277711752394012987479543683677981039547959765066068812507839843493824065710376529570822002113113550742299377163947287265775671278660112350529749730140378131496546535327646493951976769611716003031000915710791091567658618121035548499398548505933127404292407019742446375879824673578912081979009196327804313397272176255327909632946424008638592767475063608123198407243247730746353463672143219278619366400118521074676780063459346546674532261748872728380148491164867871529651543791649500698418906951607618301926028300160270053892055596628804338567226084079999240529558689859020575632232052840571947150447619480210820061803365395679133002367840130838800763338356099840534136784265871476106409559663550153194956465732557539562235995771954653106935657341536282008564383319129614236679071250631638823271679804219797467659851300281899995038604648500150984711552600070949337004926840085465693964966908682072748569542023652766632088308449713759474199877576241169739722314227455759538174188624480236220912782956572275663547106252661618406551003901808073232448024473480724634659810923500031823908252695895416818632488250715042387676938366575515970507885199109241608443144053178964516343788970153017007958455447978991644312858816586347925747084313143169297883936481224614901497551556844699135412018543512347423465209437323012525980384784635459917609034098395555630157747204642153968207775120932298895414209311686533501668982665601979162563861407771802069954841892657714524572296193837049873956702265285111845003854473654363411920311259582174511171829904115318416933222227556314507385236369769123010818162339205505458095868043750641222783606564720554394479734950779371193299111737455851828542660048752705593917554333704634749440030966853349626859422315976401219212479242123562164416144499322845127925030622639756459152615240491784807527869402598016864275158025097306038021182387109868208020141363365505934931396998028885350540638383883126914090908368206395957879761910974264262692073327109062386935450096343935184140081461243858016570092683631073569626261465321493025304001811302064705577983465910467007790009405910216001569904517478071336464047457599187481243409777083372342275862852971746119127887780681846719454651175857606364766603724222730507094687509009154007522833697118904443759301254970282248582395508415374646444766121926501589005544172115363827081632878022308774348050623537128574032271199745427847485442389336155629215704285165266468363004995973926145460394522666291222785109937764896582228572052646874027504009370859062645181358578705106630289952729285173233562475872032589593197974426774560668960708715483842376548760185635601094992732614228085953768356904711401590179562904208311084861430563051835822757199272608342131434192683542776228442311370856666615723735309257094955840838873753363565700587775760864891018830743188257190933756115205513029663311717167388715869786519994057273958381516541719258524611478421187540657871709020087020499776426347025032339592350900098102004747996329498557272224887852848164792724789945198812029827311421925849311700462896916535904230624384058856811078420732028277183614962159506284415869637884428819112514580230902290690518284088296952574778995981845624496520945710494725736178742765873405108180849920886817968046218623525100599029232358950552209625963616064224489811091256545490311907939381971600281038703859998315890636726832960207842080492834787094952546353948297203953921598563016325880579955076681312065159107199163881089459603394651742640691479398034985794323631293211612505168499645506370718555900294109649854629322758536320121323531736362749155256094417424695534807643989077587892829621381305563174218729604461438370450514302574947783986058662851575975219109423740161353528385735175311227467340855084444031353083073536665144041032734232584769289408367649454142949320962189042740091432274989475045606999978961113269108510031892940834595998849115344242048428770012761577755656711782711082503330718311954017074875341153298451116945124300749430195483695438490681467967208562220360334890306700795082064479678289683242642493968175267887084944215917169643611709205589795144040479971134087177290454280975110607528891683790877141470284088546595242852658961597970710004077246818981872374362604725077590061073526562093589027183970506583134510658635877778794149894105732140901280737727468056930983116092902305996278847611064121007311938958404970525931427282518120872210228854889273340951782525192225154767116729028305489320536926364610146417613898972405992492177234584287430749936663290288601977094996284971952588863417964262561659935101400657240168886237120227395024330095434999112330594741893193932613355190184662052780019871260461156294082706337981599416475046699663503020882645716651314886129573839367450566849699933121871699446061139489737548055497094403222847089949558973078289678897672978978832810071177641162392515977644108688075379699065167450569905572425845687083814791140205712027218000112366225750905555819430063037834649160291683134145786963152306660222842757511119189307636972691284863361736699182277725976032787210206209668537543301197776116721250462433523853015846647045917356351251908899257834142706949661331239389517706122295724953270158007134230742009738121996765918451972004372880732038811290798603457837800727222803005144449684257631486153024671566725427129695690801199840557254563517776108117920560045122865404262611456484250008366989586624724380083645327115764427418193877091786854261348881837683375134203927027298995626300491561073535890440522802110006886398347524827945553655276994125610052036484803433498394851978691923966174728369262552273519849454455849711952766801847976941414731063278498890468095027214475907613474852501093532848033410085596777721611054443371182422166443656134338638744846342226102202507575585669977033842449769463691740101357885942996313421406371921296618802296178097643426047492555451366042037481143324576013955194079163037339495172433575283878295279632516518407346661808346406226400555631318789739916600977577574697935538739169588150453117565039610986903045159411325949752689206535694397889064585258000436304317660980390517472261304478159907002915797081330421215410651752144753528096459419557196872644048582792690164591667296611255094029182805687494263554902865461664584043770167522653457052777556638066120625037406493501699690986695920674036095318947047583375739240775045059785698821986599879367471979741846488238960952276812326311709914246178343900786246593784593791486833934039755571238101027517556740603520560282200993788741021963800197234029789609561654293410262824344848594035504772635453913241647211731335896650994296076797770958488189495886053462240500672943887078958764039578844056932136041026319104181547556757414290834898479631663678368230568450142553506683318294578866650752819587795142292641155221184583925883427639602184619887958471785837455513430372400254506986990367942028995151873670142214283889414506627516125070825211013373375452882614904029219417567127640144786697829295294820898718826824329158307828476096873952718222645877660729836726924097415478763745892039493727485324313298900279473781941368404266371369494677651464120805881465776452847196069738824705993419591455871867331508793919847833655853809723898476195823192774494648865272908830180589228319912692539004215997709992993414986805669976553080805412658217909081894751593147210863338515320881238049825706999019902979365260471077760649144440043491525818827920898784200508846253638814136370531972600862932779976504545456897071890076975069584975027891399544027397083767486475923322787013438439133278142115447609991620269763850489082012781778910729860822332743258725350946312112824399892101745332452329421089732841522684354281543406260164276494861267968437656484508203015409577572248730070234518055254251898931510756371699588583386430903721715113653373831533835336596693824470580966035243827453625788648360609493460991301712548060046019072122410131746131497294790463205896063291719870299924459707886765054477900611400338789517669996345027586443664554530254556734656499615988449921046298810769276019590499633516777898832507766307254945547879921155414153062528682644993160419831890405719343329331636648949488583849869546783443958434591150088366831361430194179022981976939293125368324792061254134233222720823124265437480697625069721069304083699843805445999880869055565708078722755043707556374824910981673811967915218872042474328958774593443148270471911877615510978075700688707614346352983141338634166064874080486384599813315193844012536885675257496655300223615558120890618787007890711685351109084643897774703629331864717183017179607988055480059277887104518148320752546376969395073236570720837378368407991296912119507723778475406609005212331731696781554768414477830941828544529726409507757270814096455243583009019217926961912377539793298273260067595787479491321956742797903474934301313743522491136354849942308115701719285680580173802132018147086889575207669291674953337208092629428352973753481830214789566542483282066540816766099014456789526340730325279459256646266988656038998433250641717433921036925590977174283854215465882882530838124765985190098925799545815958289554005683362519267729173427078648390336484679199455551561473383484326392539679531832443471307845707066583150248260134748946871313767433553666392808717673877230695414464477910976451533728321128284246350854574559893752459754884787287000053072086377158010909548072651045831392463952185700540761093455517041413315299877639760964397074368605598673454264972336703712332566484358792079375643347095274568390895142445028220226015719825093380114102225206607734144710227276908201209714613921080565391279834042944602084852282137315505817709353340573101206605242396156790598783568958823957494642316647478348933099890035230089544339163919434956013605803331417984415675599779657466534232445792822846010757760888712439856123125954850354448413290021473626732869972859596669334857873600032329893480517961220648849398245547793623645699133494963734972401665122034301542582727120319165636978363958024639501043507033315394909368780670966102795770843166762414752126362670801014666141307732166963799165942701550296143013902429610660229487341585778993457210230984183163212404415095162569644608198919298445723996178563889320101574667850114320664161158627862270428109469792525361741903284399619545959354942704133512793279046310483353469409355597913047148946753371243067901357591958997811804007318025664371284587162145991579399417083303324630478683500907467820079880474978724514445679793423459331469943387908175866466061336922685005711352748364260781610292932011048566094693357821196706665451686478231469700458244109916851220223278050697052669564799717816139091014226262962666244589095055587660771412823245476918169873387457331568059824132855594036998266532650894984632035952717176550107096744948371840305873754684741536261703469438942503521958046070581604175805922297805013105453363783450618964389180528800564627321102213921129637244210754268599445936097604762617344094855823853702245017293653601016252326967906462366652709584376180034791473575396963424454518398076890751547821241257668678157675696622437071673560090863354814166579085456487284463694642855859667456767523928812188194061006258977215741694160726639822106784731974010112841136375178382741756434636605600089227285239390198390415554108172999753922212661266177261036036087802678334073078917320473248521501146529661492450207278465674197490896783301134559010654485349801528965647990606416321168660463371802497664722611892365540411876656839733886243390328950902206979974724584761927590679676625614963374101843763385549149902049960872146106070893739340109379585633795298141720918480202406341560448802637055241242709810623406964835641444772464885162425131643612683636181615581855413848814255977481445592205839712195672664665860535606650410596572326641077129557563487450071071780850715119239399617990299710742419004664522255946572755422022740053178303335120282167788270837731715873734554534931651305710757094249390778083176001739358447229720641472185332882211984025674741542808975074628351378280399540352537459793443564529031881309090176709463511327252443581297504224810564014605243431890808862519651985598938377954813265891434516533016355236566872500091052965873597557095645029486060115333394435183825087900630191399834574051434506630495397192056987059380167245113968736388383067836867334098081462019740358672933346911324003488050337045461684805643269630038838040744160125596939153369772477837441826158136749346285049619371055388812456014442288202382345235397493645468761575569499902568851416515585017727833741447663937965189920687475426947229325697169788296557385082131853159976497639855039694669227995219992770780705327779152923529313270992768924166689005446668077811629700135246676558293155051581373061312732402855873647498494531289803958622022518695124236451921758832011205073235354251475735100628217228005298531269018693240387360979052534196421633439740405231190215769269509409954582837412417932596482484410535874652474985124660904304331508057315783359055741948149405123566285105380703071917581171835532389006651256741413187933888437713696126174059984603273980871786544442671911046686277241993325589782945091558844329140493277778894469850766675101936761118145472913759782545590225735762816651386689055057051301284621337604576373852040681600505468478538830676405131009288620084517985339934063557401662634465209022787812697124577896149781393926026347769437937619243524493871247897973271545977923600164157594471745069129056417952336542668224199868027269610745400464350370901272127095646177036316437466565107571885019186574664649589264357462957139013331892721455537500121680618529679339636815097856269618503054661645214541479774398605025137673135189122508225424177975687224908963744511490289496562496816384861176605620069636424472331204974717993509948454762402494760732346480107205729529823035468431223663890862106632390813711649109279084602627303794705449928486288043529280656833468361651232208768984115216847247759503858377836574266232213896736189863996713795727812335916780593898866071147852271340023335589339494645731337330587289156242310310959664824781071231351333030906583077541669999527408087341041550279922446557869422202912884472121506198749626274845225055091906558472292503624151040625729451376498455462095089509097246804533392465979398541173983297065184139679165780313062484226243483535881240564711896104355139554386278323749067745092618934690752974894350819772942304070469872857818549561099503887756409716089645283438500726332102935888594981764013399612978983952262862507973922508609245368777799904683303179691224929301677729287275669932501384188627826545770001651890486455463664159982028363064489219901982776354181684012760094517967654869779869451200486014569023441744618352308442472826790116283379350516230459700034532155061110213964094285536106735771677370898739980800078053892493705739759025432344560963448581877484742114953606222517275599141019021290786326907663340503311241110934657591328388052097515956511417581138861843298798432557998684432105467767539925454235672416550467782910211715259706579724130069237081370836889758581117158282481071670992709380399834162533018446008294265046465722295467872796641165993710814166786264469201085252621411964198946291318567180691789721012104226290342477663986605980778804501786832111742814646473198775584944183150675596691357760204318956277416060911316586363309076911114967785634833275800466524352650052386759138233564979366788526538536636805717682309055326820965524368277970193612947445784403917831377638431276399344326011588274435384838583844199672630276988978711543653110104272888315447835926092271678405562211299092615555567729214662016190267422604751561126035978784456138241529566356426583597460410351426405856717396781676429220731892712815435729429347053706192614001215679902128459109567018304312090383160408686466806963564913489139846209373479681627650373639430029729693326823794101913436222245243269203429035728981405168236883930971606604071852467905050965182666365922982612072619598257325635920998775937055557564879480672991185671895341665186907086089295577617661741727036526735659846848215814448740180589258663660803985156982129731720588291213971493611698811871222442937039951722780420585576839030949248787004637761971045507191809056159980612078968867513590713969149330688333332604095606081989460364412438343084561938723887461409240733164014216067151565265331319691584877376720672540028196634297554166362754882006905323605398837098164231539826259021386277945954874587858808276453941279412188725848456275322166837742256495922068600028115253762155367418741445449589797312839283118016152326796211393388038591250670692463043324052233753188660872636833289008131841356139469927661001607472185159413885965529998591853666568225029616203546411507343718016639055413069513764274347321975385219903811845160501170722364511701902564760790344911161529824630355263757448488209702372962718878608808212063216487387861635111818575032859807944136930927910928383403701819829220061696934691271390113853818366004912201586301169042127814021654046502681088146770089450582435865832288505038193730646261843458142236271516031683153505404717949964590321177960480659741224986851495511049259242278352238060226683025339286340581514656005085985387838942393584901064212655549974594391280986473211914169615491931574999831535232513533701277775024111523460552886851872564094704227001287389825322735734175970543882605904936859448354985448673491549029458406952567837204006018786933075545100166748246033922519286910090067779061712852647489596731978413826648000958609468336458226768842966543677118739838229333266895102822133540507224758190632193849640032340221970044840829149110570409458293383568520962385454003576894286131032487792399473786923456610157064025823939898414113849143153807056567276337468741753540281204714215334785937230758627411481794206729634463605250752263242054769776598898543841754440719901061951857489023581888787731820307937510683434199252707282760307771525168686476072272405540745590721886189206606670222852084845878847173327690450648900123729324170704856533673011998233780478939035140973624741102929457883778687365633813758078290365628689843550437030615234325967119592713885086473888463134000880606674377669982780559065109453161162752629227850387821265127577051345426943930168804354069918668185388552300586189778988609407190742035373288215651709683358055785675212207807857774369790296415660850033685670648710375656193409659480169968660595631649305149538635634772411421037638579506575927154828102394565641933877741582915316252495016948253124995440478260149197627552584784137363986689280490661693414436077868459349410598129628470688442185525259353611897525625779532766329848940861331646736456468968151407995740160869045683639793241449376383263685182018210404055807095399122384395562451900117324490433335442219453508960194759135974258794351242563244863128137619665863377274081203508067545377918839569973181296997319461567229850241875639934244984294557941828724254089950184653792708767293136331398597770368605655062008849362092075846862807650428504272261090869722492452614890983034436008096016165573307534192605471364556563876439230288684574785314633743464330344457491147541130150112469376327397631429491845757511955482190137051482119062746272764032861440442614289036091344801976620097685288056559859566392094312382800978165930943489589258897359763939413227507935202872949162642353424258546903375798120961344183891575104491256141812486719581874939440166530020204011269075560730687315600682200958127579677669821258693090034924031566835076784197299515643507921618700451610265892959169144671396203876604588761499347364396074590978488240068869078129273225636116190556777034258831823696649877902713989360194865634916659340155832611658196600870975954870824062874537385988116818226002982660467447821621932511602663615688190108620041893508946106246964540015015984713896168302009542426399048838237656820516225205160495817382498291280813739710870631041526766135046140669717776529072767100856122837745267976247539161550579935086620437048671331195952745175223376391818659096340023638250352824829948547362528399892482627024559437640187721015157601596996664893254968241826430108036688270140063859196240972631303308204834098303135047671950572334014941798147240040794027748894813570628888112817404146608708690571445103359336844638373965177839821335427754410010054218948729714217373827355404967698571921549361466594838136777375161908671702153355232839231082030228345662809972212465542046045824295725431162333446396089029855000752374933189306285572734979607650184551204749646106833811366576968776131109975688725725435455782516493860469926596691821800053317769215805136801003031955438478549025232359171040861375755421944137554038353281141312172378398326601193626592942113388047220624379094269962964969731093546946685896427604983327273309590201825100692053268745276453890405581788939348407999480012527012686584135566953885963166462337280708995432538921192321900752457742829888328405409846043578456650054517423661722231697252087101107244971155698355289486864978309918707411995033526496542564936636844367452499683460851638809341081271872688655417592979152999381883049813162935357500519806872012407120096466847036665539426657933745300146084455249342323390158160003943205252001111474459808994468061851051874439845189062089408111018767327934442320772598192163679948905677402820333708137616058677808979094583417725403643829674202320958076578252767790964165028112197456394801474318906014123142418302128316099212704341173193989246805514703341017878851803394153313132324815050975228458436238560682470924584629656795082717891121021849793409058094378015483473987562054143743619036850960824860084017271497622557425184219945334013571609021486054161280914489756298671172191083277070317226667736335298987839570895326416150063467879408583469204157777045494166967900540628087785937029546601945422233713466282718569638957601494152824863128716465012350281967198225695979295381695893592542684848326491000075477619368203772843925426190540157689066361293340110979384206066717164512571089752584658828092171530604608131851327168904009219373642889708726447222913035542120072156287771761824666044000189612055751520537768774793944918738710233128867649282055230313734758784534218448009934627371886952889358587437645539226234996707706696627003231473943347200922101270096275860423517132366679060176842421747085475886294755027551090804607505741991933430311210464501813108362440691520223485730391833885961404386084783562641162411745748238321899635505532887299150480796430672764473763805941445985522034272226105767953136293627942106005577810989417807867332414368016122552111384590162559136201613895365124948174675274539984309331863250979403567396067646603611609859619010673473009464139397684984349123832591058901454464487871623167035862147228121223894577322311047248463185282941795399005770254135950044236356646514434844791452896467192553098860624042438153666273627713867683509116283929453995175767620031891643612441219192294550952106999479780498636108733864476092500646361791963163171386137233084950971466535058700224631687523208151909755765384276561104166350875901002275401880245784299784679160681677859088081232678748544968800601297250221813221385557190115497537183350279150850289013454749169042360898112444252512401870621762564897138336149242957972275277711789399143531616297418608131731474700191607319663601494988506584422736787355750177298621791526796900298874622001601026371274254860662148415943948664104528867232204584018923418449422773960350206910355577744587015923792171469215833895398470205990932175948921667853360721587582765401338403881785837948593275969114635069356461760634270888368798762959027051023532972053174074942681680192360812901095736902253950429836600260478608807977548935419533433881831148333181944276148202016002234795653913576393301056701099643161535277279879512873619444479661194073861384065694289316448097271491793505522408842657951578521100524892440924246949328996254849109794504759674316745433408343430385864206814950430901775932914300557727558564454465181842985763708207469449120227633991364518818085977173092779494846875504768176362935078656951108009945505871094341469588146164307080273358177858732198711073336944656759267026814990257689265681287315374852876441302066191812452545980949856068662725091362201232675890704249805785199806023593652772039974121620421729803325414494666382852994919459093045081042021856615070786571681483882999789255101160236999598904886401493321051432549853570113161188036135999897499253140208969958127627108508928156557196550920870992622025087153544057319479247341949461418745640092139864253770540287983386490498880383940008549530446480014153962966298683473986009819680802242791064542861203620552840743732509931432479862933745960013447150293826441374470726040643353387817804972210496301976864178339562182683127832350563231808793713899974302864571597797587491270420208648605326008244160392986379295746880224998607189554422823555470847002238201970153917025471336433794320417461249674412441691591128387794464249812809770722323721752985819914646845981387379676438018626584753505445873327129154455816241787696863009293691140432581616516415746679443535655551445050089744399849096526608881879709038180493718403203712904417756163022281384233620151659560274899919931587939804090599556426295699266213488896434190092662636495230945353599671531953581683773632997143522305777613751707223516546198965356398127382274991805537555646145785282555405800572125698938519440995713690657578705804983986724936226248382259400465968804707537552534543558060358433221375343153609476723149430262638710682768383906173294741647894659708994660260958953283962261386539750457232649513795845994237835246040513320590734189124927227035051746751551109942369051927067318749195779092062372576317903766748550535135015642240798391771613055235607560960623650498149390733557803766351852015379873709756150676983410618770271707108030140144823990906761061143836867006046268593295264783050901270189141035111118989772073725662244721569200512141097764053372724703307871332941344507437781537097104627363064507448245669299109679225635852020798841042783111296599365715844970162121951580626203051310371034820371015262875088753712297130007333509202662818087009942172072704811063328339314211496646915242332537512064173466756509265760562692850958271746003059223973628394892641097309523385724110404502840459409165548092393534647458875314082284441921637643500563793692577883252525206526812102287962394363259788658390022625733125511255405132416881711098593927889644017611146977093087183519728682927485572180386125009884287176691870672635140057550495759022261416304624028264219335400485417168647820656971329906510376910101647279072119761912739847420414895177005137539364112224489512382661701547389207446311362566443791487612488330044893873407261444973453529293297144107420337744698990316758029679957157499374303106700937193806873696246801414938776123272976846466005675920465565767878859854870688776371087739389871124656803277301475276512829338762599066445884187517921763593362608107842563551354696417118572904631158377635973335353073405732396218356435536974475802699888652172877130403247402632509984130106666121944516088099147195383476378531699538926609323905291037397611878808597176551576686096043765001951734806864853961336299475205541817881148200931750644104237620849772274274216889692577216283492068031529034921044990056775705355790625200214712468655093695871888136337540834121870646337422614385310383238681598120915176066841058876120652670206950442222846861530842449961854113505532691257803942586414952585083460343229758938822123809724132981639402418275733793228054274752131919956486537269138673417666446607140627056156624217160738385002644942856874667376524746888463569819205897051367431397942305194288641999589678198973899443675644118058020499867315084648851901634407231277582354922826277145977252129289497980357917877123377332062837134948693425650977339792183881105934412209385564186201052936332504224110853985099371840494103954810877427915920510585810689806917059008260277869837728011417177676234205615159881214548157623825319728496678906013628625901482824707212859250137280889720802084940891550252804186666864195763541084708083198732085990737074281398240882782526083745812670834559893583016733251527807266513788541649314731593003767932521709330790868562758850151996767075260238224388632708931728810427223584162833956075840304477595202785043606627863164292634705068328345305803258621743734900722669109058305808601539067969652758390378096961599685679506853350537777068257709580728283317348856684236334250628474283842528866840610964954424379229998910579506085061806096668322735173519013217498604624009239434234631605126132148103775461559659485685779461074498784760699359440276922663127814518612091336706272563510410209301182914199336701737984108958608944349699940933147035108170843152187902492729028515805501576642424865825308315810604799336753532794514825311632981710738110610900906972612966855888175858064899475305746979036303599797728549052053971632916842784077019898712377900328299935999835394809079492459860714766919267823830475488781262465408497923447417508901554154877921352286325550768183189240805103387236376774429014253878949511484951731640979111189532559870691105345463464762259116980762105303254953451425317085855790398310689692754053360552487899958974920775838395548169540310470265308932330419434793863135176106769733158312718837111131491352151360580872860622849633234551664932694770398438884630775476215583926573362157841588602307862499541969758818349302733284733774181428574102548888361109171489054226826087167939250393755560344961914061841429962656516305003756824885171968853027596486379270899467226035444676438298090166312769471589045878203532713928864862382709605693945100926236455835367422107232768303203853488263057719139470201494985660525570158181135784425296865782238660656001409021437626046733132151365911503329481530156306885079405133028241491374473903171904734019917727213593887623633479820405705615009244805780204150328119127215881900816839534802739819573397715591323442488792201839242352834985121419727732596920979811170264544523587155149513552857352346771887460526062218112971163959081709954344080889117370960753526093046111569513799828499993886689021273886391069844477917031453350610798105380202064020433430900270825840819252532538356227456883511651607953288470170880547317379905269374472942890983149460727383406522411631612429322546915920717319460432881909200709374549787795074753851003755028077571574292037170540824487603492446567861713206889338205003160839693820743889236343273777021423053667422368063916497870700166557341861835400374307450630454377449858733093882219376068015750803015837002864619980379073313804866908699831193084103752852063946875697753958814921058173240075671314285187095113977923508645574444877170090961912852260254001299503010101273733773518654268915141796917857022672593366524526597010277941598165023787523518668158974872115104013248573375452072609437155309026645254678812389326271998207791530713332436020596504547909348352569066438875313618763049131906334609740475060744950383372838292000805024667756819046261588941257853335491872210751719416098813979284133603131504696992790016669318785422060204088308998989457450292315926478669364823427483165050669227173922580378193233324094891032837280935359173684736242103526312246005633058942487738553319884562455252537138841864086956379294392364858040933444030894941255999441556178471503131987821353236484673879941488709418785415776260036323788629159154731793583685847524547278462368046538494613502249726884564304119098159548080093382268975118237508216992011131415182744145439475764323612577829643994130293670766865412170834040630124614812616026142223238409572834112237548728200387829963027532421538994104006442725736289526927637869962603408784642213743582733662951138100556848295449876395772307778588736278787706033027993395184662283684996966924517882855341679954163622693487960546854032229515023988656919856445391093005310202959777347717378864574033983204112935657952642829687979832711941756723114113891405262005633174111122387402246722482674935027727853082413639202525422579190848724725761756325235863067252985447910720630837705279702855433167780411750614560563004056424033917502249977346289327916740802650840985356880365264214679812657157264139840588921616457691192992400433293726006648020588192920765061286662282483481657012504629675450069344085761180497585702676374128317309387613983559752206916387824813996987983510105577820396110805601387934560800861042266621222355256317060038760310936541315366376906231950482464548516593504447074978053589085569237428571321552354980596337928039599243622961474593617924234632545302401886694872014349705354494539362040722836467805153359987199236611716047882938873196019467361077454413669907403330164459823987561744150960223468629469554760312957639755678418486363049679847536623696206421311320004247920572777803028607783375649067958951323456970076494599471444045723996521160045558867947221500792337488739133416736353004856675783326389451763130374822932239359799286475425279023473595705519989174715496331920718558681480700718577416962493647895846186686829586737998064246822858625943031389290661796370709406915334738754121724882930885885582752769931704676472504929270205733040824193908967526000303458532338822434989231258473868041234225699761314646796581782528525752408257442515148482626458177944750311615340072708776540077031982724205879614240962485662713899173467484813246066730289169502750368479833680204922129456618159690236501403721708386461534424965276359937678774882559204401066684626785303450357904179983066711423105894659824065719336087677474357290519614942148928195179188262036707964846173360495206528990598640082170227871740855151599631743690738793378293089495077009537884382773578205638300746703299743101966466900191080189489114511190831572350334387359996681170466748460685443269313715667361559056573024112107363105182434988146619921001865966596315824554976777911753853408536521023175305952220836203344159333126025755567857821841104020226032127886445808238459637823261802282008522089761823388531405519572333662004877377117449971953070322018071335131436332067832602641369785545924890324908193005384897887571159619848065402463935928583270427271015273808234856468276792244203974597789928271525495358101696783720323865788476306463109618300066925662460234338101058834091201156105305879623609598250260040689405665516120510644958677888515842972629048422724836347531625233872446864221224728142124933449509618162266088374858427225496116698250828966437784842021563145450864278119723981634166427741137289893219457593669373299576730685228496587754946898659530402614880462367312098645285934094908987023679677426278770215927329431836823375165253158734755274322772954452353538860027645356874554006684599093457942197641101531322229571332395334427187833327614263615025733956823583847165403396108415932061507263431750262543836119885648356573669337385094109933893179991194541320316896898473300430953586644034421950780498246135667368499897878887024244501068999050876041710392389570001694030474269336756597901325961060020453010912002060526964412785749684948967965544707975921281549263205784919452440218652001417951231962899649776202619835818701908235986767471472035287888389906272410978300220652319102233077944303379116469986298471633923815346755637803134012479648655310930788900669060223013816022930639496266937643628685923232620899952919266635523324288456056202282385284693513915867305874887710532037866265462954978641619757114125543284187823764621775681613981047754313913640459492381914186349537847434340541113909279551127898884991168190212047502393903351609043712842902588156872267346001341921067719702201989326775316828405606407159450065055646391080826924051050496439309517114716642286891540548464906600340574548880175586892094767770692438404178165333431693116218395453944005618930377098597166755151715479070142270694934378251270429070773693259748250523582277997965544244182614142454305625538750996746193321617479579100086955117173545115143345708320474717387040188331332400108919547743937233847085575563522550702177024469849512651118770466241679194854783126292614295921513367300238454615384996224862127515618542803764789421439515030032516486017840210868403592244741060161442315281800165807675659024076655337265148446250717301234691071493686450144900971416570817409398884503384730811072910608364929036471259051751372621244804546417523059473143079220511573228018078750060169868316303600811114511691109151435449410139856609648238226067926786270524455472107749673198870594825932809593222669972493175622635662054841001863587711118113996747928115805168672179638005386699732718680824006620662980523443875624232670384477763928816024619415201070305418949940749714008511287833084669952087604031232851782587361654873717446628420489509780116756641166858973809390105469005964674716465079445346564178337755224673894153368955957395654925145028008593598995885612522126361652414747450808129461833237090794465241064754664440473455525722422850033673297212715607775327862024270401672654154191055202678918745192901623920198817964800202209328762792579255056671140470835131750024287190241333807191608875730232110693344125751783399155608800640843489246731998366324504460352369579396221786879093289629576424246640485622013637643756180352762695506219535328345020619654447775159227920951153753141967585461757494565896777539599287453060543991117616441874085997263923583088222136653695059263153292390536209741252662164499191271891560338340323189700269682708744509096324037147164828499456656158222084797157937855603734613349782704193980640742643327347729080704652401891486813113986456365583378416494441031406615962947660045380827643694789944100658002245215814769234678352989449565922043136781486560413948743468782890405965671456342888553825117212463281949828579344350720963273200739355331754346037102999655591195128466098446668714599648625356284607442104598239449216994271052743372664144619812734307830973766858550451769023893732457794548586169507398756957958506764765714538760543882247580826278081861824611549645254336703722743873186767790361669073005212004339489540954230299704016619613457539575813241975206787258703623505067928471868665517332605813015499115608935810806144547703513575651035423253606873129502072352914827996645268906861605419244089285821135883033134583163140807990982621024433543685393060703247242404851504862120958510058108130250691929890441877412716012683950200673977225239497293471524657015471221383272101314055915368899105097156368630784033016950323317249689762048755350674293330432586798579035819135832700368345556475152669846970234510940336686038356292724507623335651308522562686233862293866007903764065710664246312576527051230315494880413974652177347240282649649860357343505037083734016925442171888654939548561969675445936118059610576387748907703477823337867482787364383286746694631463230812007983813387854581185515498861223900950615945263115903023469847578895515157517262409018984390831304736336724861161927218685389555141655322245131010498325472644199499701779140191016108356512611169541882552177249637318367943486027694503594272316029059322383735150529480724584297187185146528746439978220094871616748494188547303120744758083891173274395326455001030566045009633984947870889918288525519836430409079252579507074825563575165272643869468362069665503417925705359781730074671667652351211379294657359431324488791210407704010071309853063749633938700349932311357416103467972386256684588646721216121494354438532082026151807415055154392323010714256087053325508470886212599028080076638330901624091749752481761187618804706601908938068112967679598775510799935910503815754819397166102227295130769868034704566527118926300926296196944945603545998207597203449127391233713372591645889063582616286229233270608778772501716501932103136754234964144672365561215484012145080919553571947068267109327700741956893395249963225962449976017825321754078712103756320100244141475519043978620067188591547843947879655850952196120874195964204867506371259363699742916179222864236419035102685434220760977298417547853197052791974703231398117548886103044751047691036142084788323516871627062669852440362368940214458239690704627059122940589130759536313840112443390447678464369779445330709393970556167871774922363441362871238518559153702245064686910530807757942515358214732771455811527645142276382445031425760077383574725113093194928941598022129555198861107254781659102734195235309630280538588456739099731444506317190443001851413036523510801879748671461770868877552495908905551399391136729018626690678715404557301713551520250369064268469545575571501077082325908398719871508159846311696296712805255066354734187100726382665998856738011531458125083531891030569728277411199539447685571766976825605214388208249078325708978456681737535682987563877013589723668582666981924942021798762355895573280431100156293231995050969700114131152511431738107209306219671685323210674620780947060805770871705905665036011895539511671007917374622056522244191336542973797622894576477234160111014160114822452821999680650551794460805404797337473615710131508998436736077064407334204750944839590429006990715759132439678315339284012336341585889126580613863059290618021851762865298962348222612220120212432028141033213863272671240935272448979452829496480556695914345663843811104076417234684858306443935765713728069896929020814302718875078589797111845294691040276217759616516501238162402353671247956070200159126797892169703734808469427409995382650340394172089838015320373955341872079561534597740820250428338115557626474474042673008862409760762144075312822108692603690807186789096163045886904729459185482285762988483334838100056253110617447893023236350632931734931157296601482036165421679843113110246042437308251277186180325413119169373976235903149344733398611759230484353690463832613927057729730378058664480558546962830576591458179914639929492463608857616101871875015115748847107158827725709228066110225408122572087643756294486829186724533710613473108988615997798753688874458633737829832080915753522347720267206565046038630931830589270137362893646270946572474623976695841684852711890480031739537705960591005241009816818245465402808853129352654895059654592358342655197893905727818340566772366893159261283344278122398016799619007174129040946560364865889337801844020295341286415582448473178771754150112898026854691796783772321824998024387881845935997676480727461282276842838986980688801391608191269299535325923607813506087578203443859602361409671970313789950400342939891948313122128301608611029907918997555074204709859536618985524081448543142944969351761853395270844423772918543752799412351216836396773912546390521293302056816910490915741571235050621401904271326624479061878764819263413050686015602392273823537535652022661410451935653497825748702038664956219217404461273419448038224979209172023893584622674533316404923178105627809131775328774967601067247839701396283878618774740614049592258328622588105975974836817576227092004818701252133159742247647036538879805272279027740727018232980200557675865587732623368164537431598660997849658314455129908017791752005566552249413587763359374177340877362514758376260869190980006675981415734067121379466421855386845420274434935036146445888259467954532908511095099402684498848735026455655199730222617811972905737447343400936998168487840692249859809656717815353647424487127889062348685763258913710859842002244911384482017995721939985336982513431725062459901914858046502075314225800100370607647344584790284784668510329294941453938122773548000538208090450809093957966439479700359656489437439540349115961050273206680861586011269858941640785283628255371103710728315462127745707033025569287306616297275855832464316796781815074345966496241894066043637750090557319125727769192820350552893376312835504295821044029792895454356766006644965210422209369865509892824426122758017714305161648283958102153274056261424599317174720565196417600244489576644895991864428584955050566520746526531275786150544599819218301874387434049001468535278799767942975855091554004773255539476389632539972326790817970883938356957015949587888115408143529376381094333600383880229778363521484338763599682566722061084895937844527823991648129516582547313780815023469509511620421716859790707585100466901345949298628154305644102259437858486141035579060919724170448279144846073759561565031787531850229318253878887612149948661043781560022616082550686357467326845876787561803179400558369689621288114471055715518386440131995630780639657226009844557366191981786706620960017572817577971967796199209120741647319472600697234026308554253815869138232691560306643749445170686202330039494500347632402640834764820538012020131183931291702043070006176402401388245804581381761850090332379719032193019790512870072469072395773182698533588506770928689133036317226216151903303157086027954920968500980261557880572827689196935177638374544484420611050065564875710910348428945302196121807972921655148095084656395271408445921848825985551302299846392936616239176108767585633490258378206281737027266330273893223272509554461442460086657021443935033626178950981092238631238017140223333802325537074137056327281063630725005376168037078413340658743262535236025492782886650794170368010821508880802588581927847999480287566134430808535405718144674067844213576858069416020931015857644670067696949153117202832204577401005452670811240404582365934494623209452581068027468681547357135016185850356033505873685302387013590996848720826719196005244301764455070071811258059790380672914163991656812952631952358093869186506994351727675637984514192956336097937226647219078505321598717659650425290546315104431028654518486171034804592171732943598589758930096561958175172038562964679500125041383123916519606018927198830560517487356155606645533297854488997203690795987173366786900750987960531655508308186187846031343084617798382590765333122752371788461940062289894238184186216904373960542663341200768531327943736230941942911643685076096055596804994254535055548486091074952438980759618084817194669533570158985060100277359859053962116087052608728296678324454605775701323176452687348541099312225211445815108649923833671269307642572896867675660609209988198191115815034417908225153525408849492077762881909049503935735305146530993052707378426123330193822032736582946628218764529052916468424312896196088835542826292499019265126358410283929689780139146939295518297303318022953114435158822485391406828041991192321742110629710701206914240907829145931297170501671908756854025324934419476232749263373268577075504232533906327071408069387617058200329986460089192659530733985997543017136297397684427868555607808080373448385815719854812319606683526850497001139876534707799748734051726490457886518077808342755010686693896730702680920740406167400386405346057861770344941687712965224622407682707772844140601637138824706295321891250291188482053844935953574212038875006080500126402366735532825682099180801559284976147926416855303165157284930773652009206653555870035883428084382647064279031970221331992670537681658855203458457759272999965751701331164137176090523799329317573943160612705198858741715124244624292185588288863376569946691697917503941045505223196606480024942428581742203807419354333119421856568266616227583698045088338436700739440322793910809548481164927315302278958491241427280658320878409072429583518735160251607035117318819341763996105187327750999489217179715069340805019503200105133504251840419147217132059934291001798829479835390618082697412850397860310933917129183698001456722045088878806948264028542895385879878532083702328334881244280897376179847379944046066427553420107089488110640798818933766591713900982901371615530860467168562187922112965333282973114717877510178422093324967265764276233991752903165059155232897598247029502796740091816592825214357940437523684401685588466418380091947619836380915527317188394171410607574169716430503194727612177913287961136001909121419899135145390284406278504479402744091897325664426821291445774526411904291104030169261022584730717477899170920391562247591728569094388004628457063572989654367401937024868609755167051270024558616434403989320161063496653165273161561199823329260416131088615779472510411808358704813530936026187376668151191900421647305414827199811911563792940719432120566683248436696469381465934881854508948979752709209989542655251100756124573691655276583611661889003196922250659304711360331412321681314455587793746206653086033389644630642992533614672019170842461563631737392699560867720199522758790109278786728680194304414477462022628717372067195912385112040503149112577276992046962849435612311917144506579271898273802273529909482671125719796380148222143699221562418248261223490486143033912328683120757534324051236262029802914702832592968340040679955012100363829657277733354663679109526539238441960834084415355223031215523389903395900524894621576818259239497138260461047098743975760861556517720356110337173848310809767981523858920480774202259458045562695694033504349329297336861545407893171511067191397945446513475264906398303399858846041760566568652779531170573974175675338720882490899748406224013631182499166884435831171824260045061046074996283467304246804502061985574188561002602597262828749773407098534496096764881318566427570028459440961362654222475927105177103537394843939356971983391860244219410445484111851085299322434376784377891953284885759597063554956149846979293688750465528966640577624015164308292442138201852756529789757922573783630103736726234029540288463721323193547413288024473910058438755484520167826065123476442851163107177426196770336676853297503510963242494895510016661051038683815576209524090719801296788170613361648415260278887698444686036993258248949046715824540820732588502350932014479617797521073434936533028782685843422041276035374313445188758690393662256511679899929970357566696407730564359770833297938598423914968691390240995603056298714903536462655677921728006171184927114809096150520143507013179315320833010104102061021602755206317272683682673376554508575050321633160090323971737136967668795881393448350479708892829216903187759881405820629562050538071400146265100886108443071050832981419329477414482186683797661409744688186417544221645047972838981773148720478328808196163799312538810615131332249898183139153647932569050684255794887589658850828729268959303993896090381195790391330726638940951043571237962172771526810088957796177942140848162151975137441206536206269804393297755807714370555873584454299510693215984431976868910255100106074642633194903139153291718713989182828754389283466929640018223099037896118069838091237513114063248854254824587839094924331455645857755319416488639784845237551801411587529839160615197412009662559629042964613717955530704418390756616225447832065439635708590635089599095046809361663373439123259333456977947320879894695921201090115284273262063710831476608339426328432061973239536511384016800266245857219563361059992375987359630242411589836208065394321523061836688525385527261607102790628341583848455028548079775572729320053433684168001947469667689059293553405219908784202506022134474049318499310600173265382379588194547940965862517201445874244325153367692277906990071357215682111321950312640089406041655753696597717111405795799728929990800812991631366285220382222659579792566672123780086644283798603868515147921485741276295637473009746217957841101562096604450749108543646742022998216837763687193191560223715925095748289605463590262475587852791724212526364202645567012101432024213528526007585497173542981312747673333148596494927954774808340529888778226244965225550773554176683050399309765833966188593223845403118865685555979480673480631500257754737220621549826625337112571363764064560871329782920440647400325626790055544670455039064725341083359689429635351620262714916504068177072364149905450214264817761620744009774678893339295389913000551738990850865978643981458578904702016713678304425954741743668110802920437000462742812774461450820839641913669633277114014106701405334816628892829135394689311275014833271157898658735100151291417097541924472621423285320277553358000103050664460111633211200582294240076943409335906975142387518216666423697817938349862035270017169997829094853468504153998385436614849688097333881646770320701629154313480583381034938594255801242873199304345008203698493156188902388535579981990839980705997727145723766052942932797957875642666506087780432571547137995467426875216057258930781249170623863419353328930526642087116709186054221023602500159884068981991503805834173532309391074766892669102713727588532918564051644249574059812570913759018512022598020500172911877477933032178950614573693508791816207998822705917020552219443575098457128165094686705843250735004030103749120072994231664170657765171343568034207803531221320652840839015836302507222159089344338127561954425407698762199815950832651949297510506794611467854523989709321335993799002786861159732089627037810800214457072462032423867373329346021289248869510164066609015438827172773058914793252353425699413381785638620461159621042525701825636831293226961347625274910622067708674368064355220345321158827684406691662792871685411217647160681752782261442774487818272030474877365848186443226102969362159411156442320803534741403760900156699140844030184744503209390092629733493197945869409877671400393919628266119509803458896895552480901722441348989474408472138436329558071832457556933068537163064691938036224219515662636634813382555969286012189723073058669926296759305167388508625811067615136386623009053353421685734356002133932730229345777553535330119699440886178227525520694642112678008627639871986018307826736803168967881694444265359883668134164613712727225592385554485210940817443083121214112285851918546692061481481579947526769956274947843291329380793613567425112197169181608191405440576108627733896997029337811319136515937491865321963487687926098124321547001752414520427938234257288968720209501162457838482423310428915441513005238555375014906564187490474057493412217227442902282096526431103033717704782567545353096898198177936504631588607408589325704329616902281949764193312963582586904302811468905786110294224016248299970398361013717054315330531831190811279401118359711621695216253046217110656635697591437847641062669008505906564124814358663445936209796283495105175020404338323865950908786376535295517510622030813868840832900574313067925003929467238715170496961625555313629731155699694498939275394769988587921620286817006560564463023885982928936810015406064533183295857460306654809960050529206979184113208190939391355078942212398504504577767310866908555364423014644008780197373859778775250508051643772494461676123052841626661143974827032470294460984648748270518047365283330171265718633100238898625240453493459518643086002471857341970452434714767246790316698141897929039213566702080429291108312612206668491012415657319923615783528383534544024459384022581098970383371735340384568213788477316089190796492344736368946017559493682186772059292997810060975584541776929225976665888859489138134341468888815590014099979286261624763820084966789945344709060025481009625309963063809104530651979406373301692092197007323566276746281370459389289510897733072704516459725566808458099643643205535205110852401456131280049715020779734288535749707108929346271902382520575532440058419110790130244139778532758209072618679552216257786685461881102603515719133937221355247345440979749664559968220914438062717697708663695246381938227270720730574138124275067799444630788813941294729327361859758345141042474636778052360981358373131259777914174310545614144844855126605785792626374559023105514230902286927723884695641004835671878631582080202887202449783110111818306492243835108459944873152311268301372441808646980012772729153141065416218249301178954741224298215750202648754230373743729220496405482812554306497396980975218285392061952406545922881229964932044625361920120785326521498111009773910030027743942746106311121512905684579603854763075119026775168627425677752642001151369199848749547901495082516722492943465680660186896150466464274243063215953486682596435981606311755582763617993799339114706914864375840479382831279518456956176505224431095172939389825419088289614696793318812062960425595232569964770113520442381697607869937949035890893455637453140621364537585743755693948716996082665398189952740240456869421596251387133327212153124837615661487520227695667420142281058374426275432667007760943717594031328531492514463511494085500909050972918607095757096708036100814054923648200357807789056454718502962712785232974331663398234015780890965522342995978006783776263160950755848887165508455569971934838452548919363577683904093757993480594680398412300035758509676547221053560192561417746230942331733982431820042170648132733671097417362337992126336126148954321456680431224543167918639453940975978153300843544244579134522490981343161965118222252551189265305830326893742739392101435408158446757581334347894771505622849590454862772458811922574617291727079026197063774622350610039860429391899468398747690174460756678151272491893028136528489103026305188283152006023589194592737663608581457936471386867675804570115271235709654707722784164971590380881201108848621414324696346661043203133461798294772016253403934847290128070853251025483502935801060283020215578586348498685416627102639873509391888380477061515868403225763176324850718869808900077395857337911786169109176197391372086571988344209459372402304127387279630143657536842694639504894908367805848678918514440324322841509196362059422668807760280702900014906524849485589441840635755442684571248383123632293579112086894082529921766621073295138127792980648565111698244481090374981762470378788802792393930144323386688478298974613121272839568436611941014435946320839926787558937264791695076353414292453553959065670369271819420832556504248362429722932434471490622200996261247737227135981659277799403858261970457308211417012362300291927176412122101793770808282276592711449822037759876816502979438509402430413672558927574692152702041559875314434967293183312236626895920169412350573380030922177025591723635471200593615838343288535040224240222482865270383424445009176428260622896853499347059748456254045661870485219627935492476648658085031328657079146076821877893388215825576230806339070807957858100573046703810091479858329806443950369856474881545579384522058251631866646172725966749709348017877409532265418489045291554361380527804203509892726964192199032160890885853409497922416205623939340572503622636377953797605913528577715672562319998310072028932609892307878480908304466236175855217179823068969219012536124484710555105981118813363962930155988094674623725232553064118512047118959621406805376077212754365125144084174787509818904386898017166222316883973841551394914349386411742871870914898620544216888575446994362646169203141493712472480569526707789605505799040623339368016602295295052796930534380299105194573413599305295510036162428580535896263797147181648385490194947933087318385002806945300874376320741522250658925713531352635238525744278294610384716083709878537188223655059259397068642207006899148671965629077038196536440709393595599161758527806356642469608784681291590065067958032558602332763667705513302599446071059664223289252325688465593681593577971884023368647992006788270133099245270117381233304139708844411277530671038250669545419439529165105753784386607801695521780236307087938621209788407422762553473646698085762925926749233286647828042351157888250336638616718707444559455033058489775682961932142604714662600287025187449915127243849647489042166615251524110802158120819103590302525203926306769860997082954018060552276119735888434641019918966361182585776428854433570804945477808904027760342892298286895246932673637911384937189984045200266820999050476564291284046878214305175312631565063126202622013372216874941504563140558685165411192238171786864598881246378767428113981555858959321780801700342686417346082655859234328781880249446857295990898015907266505209475667596874553904756864106470068253020844399470984365284249777930715213525983103384054077507629981953861033228787798530811603799219675839147127941061091580693452757676616085758858270550899579847258583032991074634993626320098194200402970164548589839684959100261018720747932219523637367121601960965023123748545906319867649291380528560800353153318827319455435365175935832557736762299456491550234903152594629093404591949747934776634753537881928444520222920650189877486236849108342330093360494754793250422501269106283308139090511646878780468661541589426286813631451106136519750273971273166355048262318765480862263960272345779800740337397193980801725604527857169768623503142730690983279738954178151516824444175782991163777380415188561671690777715786552651211747717646788168707339931692624216149116192272060412609203412342249051716865677206880568621602666736909237723137408581622175862197027940643961634602210041463387227808045197947199855588660479903802058770679168888315197309014303227078150358423259522181470859974766566456535061858714825665320803203080873834474037781859998862576641363026192926049053084071494890330040713104262593449120456274758928093976928273325422136078603500835396607764604817199752988137786269538719707289696758698802374370344381284204594585152488069303604108557127877545830595538314806314003813125459246563727035020121421013429271142295536949806306232927212353974916490909709433691692595009201503956997734194654697900074920863520379372983420614170559723334500074985194126270274512236337489090369457690757170955014304240322441229876424621886219655346246356461674924586487724500893687450207035980637312070253006998738263954054454783713669019834113895217798216818714936675934723823637057742078790869383458837640873460347581484198105513706455286469351713416299673594863678634248707249292612045912442120530964302493475429008233187851484306567985289179760492947799293993373016447790317273110235411653236480776767459705932695039568653963473565254145958635384052148020658324403353987653220315471990403182862844028703361634728885104384015918514646383231257863306163572269751034958767714233199078700718863510009391017591187161682652906115179187842291856668867548451724805724024039920786352544869983905842868785210975066659226119571526328018594499442469331189352004448459342141290281722047101948585735233377377070287197709232550273303554857462818347952906414118916008637900182968143297460720873262159386535285715984833638458991943330934491657540568400355187787259536483386644809882243141247512961871867245290605830147995804066484374488437673280442098019117652791785106494127054223242753108595932948760300961734403474932039114692222973774340046605082499593797677664403978072951210332384374026065171259231334065377194388895961627380764284604875528815536660793991380290961006572136489408236798798669997984557751091262495176127865791414258469736111222610589385439232840564256950310416489029786497308277586061299264722878747361118140349697137714139975082724404051571776020949002240067526671319309008009157485992732291221275737679273202793099095355286003789459107483261316628971600566071900946298523921844904393532045462690291101653959166469209129681766036453247835526235263129880574997116778477678205853108039359927476069296999347913250374258383916930967331693427031492259358309555045884988361731184556507418879319790578309135578926984846038887408161014602278895932818365384209339059378233172548454266082923986378922428154317783476057584531644617946656816350432129018067927153550541277108652686674533179889771555818662416745784018306092806464562009649203835977866423482795029977368744357471307565138244097006661783004721249904954409030782303253940208753909128488668664441592253896069039389774951582077404703131431187659451142503292102791932234147284831506844460771326984327834286166153549283045412699900574889824642231006555856643229302574952009431315036248417107610572236891307461588459632677341836765210012469309197718321143688864335924034179545335430303214369759765210429513586712585692856233241840727984626426457286501957240834806108049674900954779031854977211167264327760894275739982657044997781710032784401638895128864153690587364911500592563375306388977838770109258440483451673426071133261260471027586814631145498199561350870230049004877557073957975169440000593165916238974351107726145728222970877210996465109767185571065251272607458538384270347184226628888983005798410537344596759876050571926515248286543651931894917962725723471877416629722019696891843898940566087744153714944822931832176020742770762381218680331852217800933049471889392560251096166634998069978416575459427796743904185680630379583098237850291026303632234520373286690121050692974682021506833357817863037862727994874242510371822028880372504852633951602778184625881577326093891792410045087731690704534971097729623338385208570544040296935895938160469957826428562564454454658417827867904281407050917114134573596772110367917508926453374186929515937695528420035085593754982717497238128133207171096475558042180092053311155002194894039715141778414872001375605483566846420310503709009199761378842634064950794767189261341767832743647390794690303485982562463887349444875652160186114821540635853856644954886249573055299334242813253698003342600805334822968949673455079183667617497332003504448772492202040058729504388479590240562673100212961275697592053526849381980335877943328573656666077042876786850452655572879643256178258006619840973208938980152906205665409539131523771367931638649387776861629872884204940667157465268811153612175738483384385962261148014319247292540439906621072878788811473845736264974062080573137240705508054628643369611440411925151432920865468497628771106089623229356925567115495924962399979115221513805719900953388763873843075999008095586634225046268838308880653298197476198091305561501955601048167403274464322680318205039574449983432410857592851144642715783181079048005020803302161476325887544975472745403003018187395682402582099444997551519418702109730903666491257048970770748897392556907682498110838652176779858084709227004721110832762025297016692958630780820289039383982718011609701350759425862773407507175955965306522589533350944603527457684998203298647947899047857451113614142486096548492174471242905714052154026398246354604483275741339656674525437512156438783632967475456742021838305003663886885227690967695123259433619656521895335543293094701274850999164012245218401827026191023660939364891851022156159758872753680900576428529455915344989037699376161144634672330177839455643594816693605623169646501905178890208334944718213446575309375476548636395034846982061034557089756027113818060103898114211971781425225220090405072827211812510753150879478244890604010773619858964899487725878747222697927762880483077739507589384218754465892499812213385860890049066295901778266485633445648868229743617943275146279618173579966667709540358099118437239202115104699184140079009882770856377651443459131583842877911311722104233752779213091386489125719106342408936078569748313925848265305922818822833203244740297414949282210252520160041449503053432601062540466590827048189276582485985674800934420749643754263949152234601139830351235705819514832743375460443447744839171936789853648425385499477632279449452113499312827507023139521067142926763534850960245521597540648907558621052954645090910616703604925986714719814820178059756603596724496504205997628960834948947865752965576984859917922839711069930533398668658467564097359899089681938064018329243335036227634463731979915736432555147066785924703298658902790575675844051924360300828858526478581083594263664353178047715796957068356383498633552728802718259545150189206376803990683961737597214041541560805272428590212105937561149929883979541011615799902363009782312753677208464192834374465810081786583684197132173901509234593481547435458365842445338466512717037838516574747801783513070343902665105677219122734752820007723363833648534531727448875404097656806426254006940469571190779770977076857486956404279848118206722273019488829654523631497703698319592189013188951777576633329328985182409284818892861022519552388353819942599910609264632275122875024132424380569004393338382458088669216757512913583444759489379881871200321818628913602566166469322481493073479931103329476806773095408198393329397477253126226915530228264100713466821556201022741666035032443912400524019112911218161230836702276702673913010265978961451022945992706661636702570354050429491614621093510686855665216584441595166030798773788564267255774122651929041601399750749843489331437034153462734615950561869284318271608615903723452883872006211621690670622624809191292346680871408752008669637672984901202042050534027085483220317243949667448115600254592738706599256593273363803662971099460349676458636058040993805493397148647898945336902595776936832406705093589520875851773915526575940929776212449247465716394368107386851491120159838305524902188251837192713557774869988828713751099781153175385506758889761991339450014145634247913012324306178827212549015806849822467621281553297810378817541464847824867563799554330086598847704399207383232822898877731905815705162723362418234111768186550863403106243800376203283944063396574675501529632206823570840511812209272281791971002138451698641397869218970688253151546706285131393738844203279560566295526239779253650742032029253080604543092261530528158698083344275251186881102401393926531098257546295131985686274388805242022286892725108515690421354734372176577734174971025281314971656376531952957546016709298731274227341503925314458143212653602290253062672672452234957152779084742066788012740395134462711874663697255263034205162771863577499542176254954838739213617203875350011579625344738277485617371721806460650561442134161096726086528041209273879264251620084855545168115424620080293208898635072487607746184034491666106507814105695759988125443784164749385394697296621802674682292338454997038471621050816949151809024977779277334789099558529662876717391536275135058782368064081325314604988240744307362106173588139344544468264701962598256573731083461769601897061527177531513137373710219863655003350160002362186435620448333065671707239992887790464687340873108811029574904546131963864203532646188242085884579167736425199748308762080535173999481875025022212195473636553515902514827246145862970851935883103280011618510075472868345080703083022765962883725288701047996944644930366949355438200347338621574191897790750821722841540309222079692544790722529925733195915861904520422221599026827700613620972417641323134781388525161725009897347748354514643957840539209484042422612248860694216557403082094279902689898207453957442535401751474235720123155703469501708252217775308176958447066572568902208908872519052422408215837259339231941509401465321463665446934007940209407823324915244587419987626560306243645167239368362913992363103060114576304968672159023382103116264481699658830670968793551893533797089664904600045994448047815841934516561621745105418701766674325838766161332747331473425880587355227220372851880316511529733600738985405440972183617756678041775785257993195682770118012058119915722116719512083506079834623512568508250443883108216590390485428541170095503187550234663325484024432337678935822009823990241547663593258396336773049211342338658559875404839274226067045181104020727033946149923466947828744334403885577987041890077733915569884187429634094012500272533341302641944286263197184208731584684227514732848679398946461597937683533088043475668916798385914637485139043789597585630795334331216949571426956510318443986579576766640708253143571399017839552938833747836965209433485092421261602055636406312975864350987703509798212298738712357652694867029389092202615972542020116410650664969283666070058881219981749296745277800536743214755113090515099241054281898326674592219013481823860356319516711837162773111056120046406779036761838766531649794310074656349121270344191251173822423746684314315210113834025015623110187622005100747416697005947206927248411148766571662455908845319734312149117406603534903508955693009802012528683773557774858807093366378412263310365138705653535545015464870453210846786606097926162331458925213947474083403880104656161381485905714991656247007642165216207607630252043922913354197486766899822228060916109753687040898194842776438844842673611119369034374933923190575071188375224446264712309452234491367480156083444660386701921536273414402367259062935523915515703172181581050868338180397542137014884017980036031738142712778997027819198133872957687540468474234997251741698794755168786006694135773173079194192528847649112388550131751896204965960786854666286875768538708152709597082469388346405350505346194884845309571397566846043472628217102087404874518116085522835713910993898423444590647862151701346201701456583537946490311716236423675473926223737951125969678640105082983275568819245076379567600479351245190946833771802030135261022956740762242024592196851520777456393547047435915912880051449448734887458469288097353080585379999531622902332394937582502105234910687477973142887890208141070879248277251735022591082778466163834908755032691965081217533370388277545579024757038315110047222543479130187505747485883785172100100871752814117521985738363197377095204130353322974046334163241046570477712386929565592468361647223068235499526416913016093997394600718494847818387795006913701216552724799693535553961294036780571659359412729800893796020743554911066799765223551220935472226121554229800893332934255644674017560738106281189874493515831044575688412497567583232183418766205635139514507458817525730124027660177618679745976441665154451314443466024943861662383457252219286216512617956656198220572029172231251312759340100385931004815935359125983061777041713764021819797439217556402848499600111413032007688262979836879850871188491478227836642983788439814194364581385019255191678950736684186622868867154447076044758680159490078209073277730687903274988588290201667981972605161283648338119738828708896739252978349977815802764197189753155296910989922664680997766916214583484807514211007265236070676242529010408423094178126352664560042488424292029669353506001963680562124253407946894296257264461086502642550065090826597155423346722588612029207892906207148497994419962949979790937276230294714936032993883310283131130454065222863823239145012166588732566511069935604327127874858879253740211401966282678527596689318662028579316182171074624827052068845918087227473847547251074980356575375101923571540966312634751815351998753799316868692534741516054799588918711685546858578379235234198952612680242642795577150600027864641853120569986606329015496873528222853804665030075616504924999231421380675354858708344374438269065317625270908448130159712814593412052424128094069763133461853454978650997631395702135230640593013423225774717382295341518987814334413177532933398162217157503598261742415066326550058318066125169353890185716380388955145627124464113764979956834230931161172119435236428730162339857227477350950360086185941430604506999618845956119521484067661545327628967404964049426669628613286534525521950160887995256291333910328597619415259768836326949060006926017613044089240648218238892020668045594459295970295712137072921450570830368930658917730737540555421937002725024219411389701286080758902964502940873151419775801823681596709476438388541380080308380317727356961665490041787218454992343942647800832757340596909995835456349635101635975656508571007370366996686601994742039096526107382653969003608561892101789142955395385868092205260928724347385886381965771220458927493137795207861869454728583354317758857886996858473816000000083748318580711176939688776205461823824640106225592230296851370993085553487458897802768641919688637801261600693951089228090411386754353839240075303734428132749070899670422501080599877069677063533806245256004986237425616335754924136551586019093173561145886527421300332423508327640360003403555553350314326761732408252659475899336170452702654212041585366450307805432669804671674216270224097767206959874811276256442514018831123102553089293225975011640003175836850745603476052051369350155976740261611311229884886478326006976665402296876986689881291975583605236564033450021299253247710150221915523604231733920357726640256497781870065821359042683406338533468826100610246952649385139702438703644369903901325938183307776724808355030848984923821052456423248320713959989360350861798597191485469870566390372566346870865225144363678585474223505417318628013386563006551509672408374066679579971248169449203565899067084482152395425257932458024407224421195810998467418674997335530416005056145424040998295778061629074535327919224823513344201864098234113127136601336922588259283224094476418944311816476061470196880157454358624920003586246758777541790388334974342211638421220794039610173431990271998802538245127224954849441581221019074406987391712850148123653051831073098459900008253336895350157086510444391576188296738751696419674210842427934504730350052384501595465743825852543160782958935224834219996931146265185567193602216680813049422004357463166315469244050397997444920348815799813778897207596624319834879514382906060713676007047544525269416948107091133070173460859622122351257221189752073595337514417470969480925261331196613583134924574836251273905684697978543901285466982018089218185062354831634239757209835697292850346302334625167660741090334858989150529109239255212032450502978764336041730553871001965488914398212512590551784421493181266373571100685343820823183979576545742497575302849485387923484697723057126519957033362030191125352612077824444519077843839819606641141901752518117134652108407199326210746449806503102075573923503649287740750160895063701697434526744534455260793035417027221481471143832163389765939229064093525836511828475551213054866115270082690690822089380620013575103611769468461430509368184377730392150848368955829353112644731033175229784087389185423620722917229633364196044499779924052894895590176260603515627881114772768451746378584993308869065217345643812019145397742902907299875551888603343579178249532579682229919106025310662414310050576687385559192246848498089966564539840056756479767813451801367602213446495700312402082820277817603537552185632884777521538857832683870756855237004745483293312376657924735725676622613217125236134162438120722234114789044257102338979104333698169280326338977363690858074768705485950241595040717272069525414575785005005168260449470615753656973611242786035109151505195062655507949451339445240133417878478658852281205453077279112553920864440433752296682822862946854137522223826790745149346396322223207267944717772651995452059297854548688726811555238065017336074855435539487232304901066036935593304721671928272708943531475869160169966401195941426506932376390860360978759069174018593615850428730409582213452064559813674388980182207682960285519238302031337867230765694266687223615403822199960884453634768705731942024325338866444513818709162916417959679156204959334445611652335320960576514953186843982228253222589313877077553221929912198147386984039599847339242797416023350223526149772701539455827364425620500044305831837022437890774378062764363943688361814420395068164255680359641650505855644711216621937712383325295015809366621470743423628191486084494678403996585086691906353004788264497942839095570434418599810402837277940522580339644152031403973276917368139857132681025501170752983328083307444411237023548107607510029763371998124103405429383244558918151995945897825696099232633788113608744596880042412970139167942273386796584954380347108108857262246275747514953658683966368459292908000619074583001996176632652264368067535615314437406363381481678384333426644307831974323134395279835544417934928306579685870523055736098569150833144431652764863270835014865147341513783237783267890660587077635980820124121172466808388427834971049431704461118181216450964648492571406452993891515533033151309552874008553159286724036623429407473309456220323241105167853126300645392380778675001144912911441938017862644292771589846188125811621742677432928173107264147758959524747367550459773892378876702314754072075668603471742581632815669173195874745154693034829210717162047296994573701642218900083705934897790996767453996909066306358090288637008710521385062117905831481949709469188499393725795265265747735029087172677581484250084517740162968539408255284208187719113503909731842692265543862957252509413750425744963168542910284574517733550076652698357675374010984334117274878513633669604637533368065832265061820000519000958508559589144433849547239927946062335826115553870580976341765044495974188155926873194598347485029636569671645105345598576949893689412741280807234569454644464433622782358406532293204513286199869204099048553031927265898659884554795255097089608334495885230417471423022841555181617865965171298111325144044629855971259757505129642125333096813741182200125004676904340481386224658860697512833892583181652850982451066515698284181110708552228361331923479146878037246633469061208104023979812149755614502846238929609697547931762492545026448397586412891628711451092417679371190767179209316687937910716351288394148431995254628163421471107491621153581441230224690105550219961678186007219636910578821885034614264646555074994796740699549228758020006532665818799386497404605602241807970758734945577561429908725322019313381871576762644060047485328669321286788281034830132119639127295618080096876419923030788495231523072145837422262300912061706320113498394348701800195976834916760727434447079328465085149262338651825558969506304744872764498637143738876468997045744384687721294988671575642807645087226577147429632406415085370194859198693757899720697190927992633267543620372840506709344349111145393311755896544795768095193299900707613639197478507826395000817625879327099350346431293138338111976567637087161158052848637394006637022736270000881065922034159152173202764683358783719515853760443395082311958715206924232948421907929789258078845639417942661860457391406358150241768821792596094916002779914439843413504786428286503603987279500152254515388218468627235683441434309715633347935845476716667549177677800897178065056626714576468429474277436268171938324419510314600850293869490797790310690914259608150024359051981450124680164660830990060522969447268855124376221116539266938987220750235837426526530916717832648643589161383880150845975984177168493826506513595906454899845007551499900085441442681443952916818619227870025793000414736240674164306629311953887147493465968062128845021571826751201505995783960298467787261317618034564638431318162672238482607122338557975674652709569903839886901710673784645041781622768904837131374562050910090397449632022502262989386597341752264463780183875842668994685593170826006140484581382490585859552115399413151458918215953193952371509278040078166259933634592602038749895386356348062429531258358793599706344396680257471433685018841386381423711090482828806501062244386711087605663291858795553535356762697663721047507902892486821948058323240911266902283225923305261554590230022266580925630910197095968393565021309557964776695078132366725129276029985681827471111857392604461154170960017532361114060044668829378236565691205534543221957239422653717772376476600168777015012868901581274147395001834994236027488817830418541940173578334182893419020749606697386187312566930707368495730239772400004655873611930100410576205326847438622788383918257220843542573848997271699229683792186842467114805062146112842577504928007677115661310515685349641010075217199795684963909467981224819854875650776927121703315882016772159240143237312945745295273306280678605915582889937504462535567325221026283911652936555780682332132204609480586924406511165773135774317330858369608735198239691937293645836658799480483890935309162433059269197141516130175828852155861407074154856565349405949012199199170393491475412505626614467512501842683117765392212572801147667302551245108546453104771376270880499690956243713594459020437937190502913485325352984736572038898875638749537397240484328002015019727872901025457191660601894014652743976043510338405915175637834417636107154716197222801333359270056058321204905846987700544258355726318266202334270126970203376621196774840795361506184430577875412300366443465747304207015770033510497373740514634165233596448186273430764859421374332232252879180721635333272508987068050563870750639920916209091004488971895661382247503336980961189407796473462560142508009716288367773449721523509377906257054714468311940714103445965605635376331822431817863583117769677977705812355340600311483990607722225403478171788045986856188569776724133633273587705161609118907175681062849167034237795026450784576345352199992649077589813817941361274207734950051390268413306629873056494103237471040896547618487069278078895591895765718958701995266707584289967394346357593169733180550077435314982477096014453268100885505731874278211487810844942518859782509602452248765126004449128104356213943404622053045022129530853839644679914734254170379070382760876148634874309545572003787635640262164337216027076624148933951413756997054338707616024669272733049415684687658708414641832938936155926242916588839108935115206487202098071583581274640310056353224231253016828693461388378180232198273278109366276905863481832144686216381512869325358514141877995469337751658977250658665414706926145108523396918160807506073615001230384174128870625364547021009600980879531871784842661222771489457357639621149627797251685674392864256811447100377878899056404100792551421511890317919091269966574325094550791786694142571000427282842430200128802346493776517561147005697461916074973498384168486806762110517453930818465759211309079725296410211032075562998571861119494010186406376358182937485079685052543461124165676892664332551907592465796405497857325192354639308600742250693496117197363091864804027056911284565695930004279154658895748974092538082675976027863582247311524720072976656256266989865344413540857407622967558756429845403276434090925000604265472684307692242980135359330539030484957539106534678459378966027314568697070996371978615199837056236772660953548912901788385418589799410596019126351866644875435989036919940961509983567036705647836842512506200431698777291160255321506251487128146868190063271803093626600396851638811616646899818340577074082485574128501193359510624834968724190220920969154167175904016848509101384967963003492299562297664298126281551551460665127138090465097597480157680964889522590619976791271633153893336362058228783359384763929712687797259225552487745711658029154951294593761405882702172880077308697779853417024015654021904809020507278873464332960604734479541619410357936356537992499441283315682676917787450780319786062275861801948089217504100679772099972179760975461314644085195331387246946220326701026128527875912611776938561042001540977766808314087364681081393793261240473820593049932440628828688993339459338171512489072935926116500166898963259276926798851222876336439552337486254214536764278805031095821127239503373932765040678889594429041221781546870772804065406727273360392759707294168471119381871543900219879635008208642601596008832569887259996124672812906668014772696351623302311582680354594576408575377650111480214417927594239081008926701397505448953237152110069849670056766899370919213818999602428746359350220195358929253575813779216152253795995793661552767736520566038513342957620027496204126363898787016274396868565433365520501339998819105189561820304443107008035448048382944014493574978356655213643868293559850057739814124111698554334563394312293744902536713205102969833922913436065715176252062189612850711371202299348125564763690619600359834042168184225316771891853818719889318824043655243845833406443669911367955567240533427219600306233699598956860027097435234210449441162295591517182554675096363961631923713663250887932287166678001189906654692450909360801633357123166632713406438309282075684846662731047594232528338425210485511101221755520078206115815331861695430470779651849779005309092662422364288143076490196905571800389565601236012616021828782373000602123018211268109381214614438751701257238755841853234632881139700545616551871954313194063298479634368927238254496468478679037333438028205370162056290445233597137460458356395316272142056657689552614850200836124117504723978384680994576383175439499291081879589573538067797597653533381711263806009330217807053676719004334859580078608379310556233247953209602539496357997124886629119067394067908176493345140272255695734747266685956174763342467632898149222744996555220482361353030539783664193801119845674286078319851524063533243945736872728240253063193530301668851004544918639282921311588115405174649448478503618566991595706626793847436807555866149445444259200582293000498520176351244643526381158298570834893862371465340714633911944814361275769103104086336003910850534910806451139595289278737370660211570426311202375115768506727805675194015355163509835029121222737648274489491801965497577080992776448029595237445061090856886201659881663055001089461610918439901277179147310921121145349726966520044354060636138690738624955671959862815123794953250750927662120345486575436416653981086970278303663402159345703421378639958930142618287209948689698782538082949954846704883590899347058277856923413543324094600195189530305122572114646850272129727042536330875302394182058237517675671675597140635513900754639767454469264508294450951286116849854647806928440873228464543945315240491774662980757366787967696013321505954900847424192586061381470366379176616993127249286314857412543788821556672537087573097967682965875268817579791406756292238566723758164417158388003462884271449069260074633008132392784432551944964039616344003609646685196492520635243318682885142512194714707109256594430421341717064835599825563996693814022457382375872133933753389363518090721689257404922521034558962294921400582475112144727505198986512597369549146538600827013004574404437822100445306446845906393992001730285344598560393735977835327942282828650209065174879183187373913518707064262555857085517160502773829095431288470948163409783147458530311938896320568939750411222195833099132346508114436635052690315032501843183601110635125432329461504615223083744203603685151708921641240470814508129374046599106694012238696790543145026079244893371762449045980449710356565231846711741273314116182324238290627590718543195850808808965026262004650895757479324558052871046019954872778843478451048929122576046793867115270304433181597906371033465814656687622778761279221646077749778816228898075950741196225525975557216220755340164729177360893082138125814861742311278997438038419144917083796759699075218662465247978096604968163924647593223919354897913238373414855780342406498787238952925360747304358145368149678425689805965546039673241024202255915237111450961015091159448179904234910298539701133015423153073397998863408814389069838368189114051394140603879523614141222844922495176908511905033812399094208552079387350508778379122626880380586660834568046526528567228730339229971411330296985682474231563811881245408149885473132424979348471374035219872145811893318735651995944723232644202303132247489123058772402051844938905645280060331353668235610717988807864895174909629352265157158445913784869386368788277214786791742228276576261964824310854333091045587777107570334425221886861659747916806459403116256909124585819222090534861341761603505414052423461655169985189630421524778347099267764694220200193726203621970416104080363882904617241689819280165751741663050823473872258169920495689135242516576162867001137087133548195488906089618764562250024963634903346397318452430713913665097801793345626157478931330837891186824900602720927673756635240218427404415574076402717782886499470196623975028468819598449750375456161429135440363552755520936213285839553192352397612804204239061273897170728345206782788046774305269362774721071241966286843836823859426473845457096168646993267618327841423443064936269803310005242726406236372095567561400201756123398370219172687049146120075371745751387301002750333483329105974631061652628608045834551177324450109885381180323818879002037673212494994107378331308273792097566898778008146913269791363745075574523964726801208413059211046237293458974831523817351259693744168254576317475897857440000444661105165066564009318754582952067735675808101496001244604984658286332543208402551688906889718221035851849335153668662922791719204402710755576758123755093751996185616266552448174877433846193966397868349323287501973783391181371274700039552282161692511322776020426820285518478721655783651668814713598447774941874265937092620570791712872865164280129081724940671536498835655868665124751129211460049042998754159145092592054314618051153856158724091476680974865948844526769287443411758370609641038780454090805286975227759651117248875287884708132653138796068982373000712111145595344564731135932879045880808337603518230342397210003340951876682212340519713660747017098475227606447872160521829659649160214522289573565807824353973867966891250568458408560979721321080534958199512129442940542145716165310011859043264436266148450508759157749131792944490172585895847181072119336843633968362901116913581703988152533690735720117417371637166275728768222067331129094402154669182885977547730361340421483654564011196393424247393442158679673814974361564047090717506025599294901876434274246965871276131085611005147617366080100805580234854954672983515475925417578778474269645830714701562525085803570566556637826189342359834487713051525655975883158519149511057577698555543743981156312298340215401155512975273579377556898673025298519195693417719629661805442344232016241706681411156194285182070958195332655227309163847275071472582180384216904942406844265499339648286446423703161977815351300749291214468358435608803371590024522698556353513153475613711092568780976362590861541716531939444876990262577841577370886484248031698538029115767570122178192221505433940421358934905659776785526328744192834148649832917982823480948246064587754657859124467279142785424236085602773522733050398111113546279301400769021477449286000244263107115372064660220481988045870475867037269067209522663800444202187936125314310653553448555410387792052008695111775323641267215658828897474591444322142951371906241159071321006081595632173953875161919326408727630155134323938166425113656966969469524518526766626824277229438912793307960078430201218825222915245327156069838971767482338000286741706868878910268238535050219692577369784133378447874268861407994158932676809132517572470780796220892495089314897979909270435814095748864566422841245850180970344681313744288047572431857771097085096078651404068200534157054592032236955239594462723094438268386754522481750662818860868044142565269059533010012280286856054908883834384810428706475126338520220369787275579279546026386970691823938998254343595607527443579895536603297773804519602507596031998102700806511589498931776777313865206645843885817549046981618754450821330091272888991404785185493370405411717333453741826887960640554060880364526071686369194979430406352326625945934289745753839749597316425354247884296973778718342241444369790450373534205383476577159647164154325232074633632883767411756393699106328754940945887578620044938085800155442599367170807778302960241026541720539107754090749887833784591092100723516013942837704713970442430588723071200587027782782415359551290093049786602415607542623093070064070682284097966822388390932780068790830717971414953015847517080840055630505607039454909952291888101175632436435499155160474897234684199160070541768192845323317505323229383005494145246410656022010965434117995105696364275478400204512834777302608854299598745245440969431330570463226463689698734807687812154544363029270995211840322628170274987834657919242847401244386874124591898901013752324016891098107517612778756367440934351489492171127288512128441639021360225180197482683384755766852335797974217364656986790020683154977438085919508551731680948508131163848397308766479319108410694507007397932083467332366852722670179958966937551736960481735339447629908050690644046611888356713884979621572920251158327315055408773173542968242425396832396192547194769408355371582690100498648011264407111947732582627944198388563630730608793190051198240957280562234787264285325741429960488842173491630824131453358859792149406929934632444360851354352744101399248661487271101922882840505957866194800816063687877309868044761782211217793776476464144515081868527461721759070978836024888969124667041890140564875226175667203403499983374326528745140708512570145783320802944368347043644500368532152222468742288729699054564777561813541000058753784018576030957090931580051882098858485212902725057694059892711326207615376469253611901169119121822599118119237765560527447950423865289171732294506310403684697976854569450944361431338993324352478181993459308466542336232310256166468324945813219929121425070717130993914555355011984869443522085485763863352062666022441784484676626451478267405141941182846832092521388733404622422191507271833096368765399376813431331729052058097680820494669850558210247350824735949315473879364111662414409980752698326793845177523313820795060622495493096362387214065039639641021483584797508414477876192485879916230434318679513788903119868291009320758453753164309947838229805789989436203795182701232464309914343111080129254738651676676994729494194521375730915632759641285061495732536639759997705481921931533990267275795321135490085062579348318421774877664223851201968974945201865292446788636095001876216018093428847930826068012676889782380110916431513533473253189412011773907670055514915012874595660398107539133965701263251632320323595090174921481999633763044414264826129415560281471481806848367314135437952520450614046101428832766006745141601479220814898394093368597654541274432933332534012791034552261141828615489735015043535027333562252714808190634042596824543694760058997984951730186539889657798766520908912848860835700788334787886987176921210086830419220313864543765022771970200653768876602414209595758520783457132747001787703872533394053038197690760414339266088754766503584321485831062506438433684697597172027250483233776196277660511392645331957828048021978624205273923365110412240548708245442428859036495403694283208534171956814969056495169946670375076508205506792700001479161976583184846194940422436455362589073415526715461234427156464546422271715957519027478580621135103979077899102662284265956223740985883755376499556001253673227066432740526845134143711026188916179773698716473667584973474673123838679220518185572614685856026059094401059897172155462388162410395761055052695230475937305987425141604444480345412394273273408435267245522833418580170824913563405915118586011131603435959444825461963681569063330053675531058975806076933541829194974205281129111193049173534474429849402399111242845239414120347541461911175622815255872722783761640913372859771388407107904258518828246064109192646331341505679370794470468997904906727102372851649335797621255076613263214602624959457052115866094672369454654790187813975232274850556228572351093876772889390906772995636052483101398749882079044540535125830279197376456614138521378369203857701506839354687448808924533508883765835480924589150695029865662556620037412945483573526134191669231348190981369988288641035569953192045510386310778908281675898219539329165908999363436359040787010863432560603616809298835399009688382532972214563594085180085000857532505787215086216747821446241260221718950146766387172997329157063892952180272489585525745407825520039750998119071073598438625236339536387598340428978833186350749381997641219009013829596068790487702428892828975071663120010806649995030605119601402031790670208941958222110838320967426469036964838161491240889210228949884760287147151638577575511767174339720422342338475523241859100845442907213668690611871037943880591747510409312865416948397858040055201863128297541414955627265601164007248864190423251633883893658145299896267987252332585792603225101760368711594932032955878465862676363131540447627399430202035285608906807955299520598702911812719003777553943682087574576594060089417545593247134560776715429135217315864325689663655835831798891422298363998910500928266567199014117089835829055385063548503480470867221755380578646883717765741737112159514258692718061176300172158863372614786149864323562271320830225560187906062161571946813556300597761137258436654209105613914813599903377793183314806457717113715731345920848730096247798236674510481889678044306305928744906399653370314525913139032934752159925953356412981193997010668135809874639727791019599441400806660343493855892555253619276611643678775507291464882989106811756884276027602549296299583226537957042883787565032786397096979382053480457110260915366520327718916862589326652654269385178554273845109332689031562090480572774706732517876737425824721100144668626633117458264773961829820771085258934306130573814859052676193377476360960886473281770259237810949816802964820597659469364156858627672612207231284187719576492021514741728615449157862662943294637931849260991372984323392532292718181454708778500559621413838296520057521108203337405694808207809880894570522404404292020105635275087418242891211630310822868185107571807307268098708172812871023469146041665205685310095907522030142565220952253927916798119966328524937748154577492347209762925164744555776054022965942900157301326080177458714474912856549961529038303299565656062674938034751461096499099347804144479597774171586188207047988580041812083222710587569038111665495831114966688508068051462860406590005444068927508894903096843748592094580657652859666869024134247397009828449193271424095772620211628325260666491249113382684721442397631021557237696496382821017602156969150847307477021645075675804488126936530078577608146709865374227761356423453378145878537280240311270952741300454041329684009077881978723042603001110361679792113525409884826619151453367373981873572017198966618337702899960684512437694366853350714722635608259371789396821340869633686332406587191721170487137547595933234195887243020635053841772569610817210430778682518863877466634688511221575406820235983362416676697013019675133497420332166115472020265807476068579907746608460064603374914448315283994481555218985757676579849247950407672159504898336837367588134556823781380955173984862964834382627804867196360334652205291720178925804206615401276871272391570016403227194476811059424817987547621298413819179517298957794201032128751006932568703500494614221085983847683563273347956754317878709215809737430619640322009612385545755648479699351793600748851384214795892503644271273441064014701139469538585088828208387850343203600002469760439842374497145017114040569590227489579490844151776069906748117411874252974361046827292375643580392056768541925005331037184210630635113096791393149402643801841143157517002355918327264346566963755096489554496031709360500929226964349095052732633076166809999855027450915335266649066125212895352247900918629533028182962441182937968414430109176847461532508596567262014784360456351255872007225187359948972414095959771396713727782161459556836619898609555942036927526316963548200430490485362492409626180820086655176933689531712267958128663239336466645861515699568666564436425940170685905613728946587582542701718671055517554171507575270815336463156439716016750215545985499725132467949761306265909713910459215569010861874442873068821032320842433508921524624468134692031869742309389156636723289556328652283561503204329338813664703425890359805559904291380471081477653715245486726588938204244882929597706582747147100991026606637528277756705578077877133144756439121462267836861845250953967254354214623057619210881605851581791596600345458692426814444182662256969164913902879970851558481042454033447109688976007893643347311286990373752397051213770158549245884299303414067383734712137322218110916598173609678891248384196156762133469430867586936662667117272807820187989365162529797906657587260185474194737433497997711041711924484424325860649970676967011060550208766620997419731627432885378546745912048456831947580456205017735106665107875016419276258825489089970417741512295359477676168998406283651499791216113424518119249578280323799024235736228828620954943551044818570233633887061996277452617434388881661070207329628569915820508641809304756806728651245712312016949207258038586782047998595784191167593394518530231996851925799394327172693957997091822649569840125528306713573882131653247627995678882125538251707768914656970814648831056063810922592049090191814914354700730330215284522715800416392845689498999950096790372601936983692673271066583223267358803522294372337638378985453352413619833810965159354778350381879658639212646035054751628824571831143594714097976053470503886772228872569424033962875518612643316306175165486553729736018195881809091352591906205606051561520410504117447725603394722213027596156228015333289257888027404134252245260999107694527006046645137731696203673080704349049790686890616811606826363528481343118851088752168909052724744249660402714333127000835856451093162352085132979917188165254220224766553946708168002286241339528820569149245106671744962457020419310593541597714669023882829050440965065877737905921746765893527824554495878718047681441061122831843391579455273674093272062536123930575352751464109051950284777706715646390638074469244474650646759790040304206633433667884396411267768180372705150635592635032610051495417423528156520475131192540094592518189983820087249316130689223963931428717031677311425824882112422435407760973681290448760499383581584496960210191342730263284510585804234455842863866690213090435647890139978002272376044850936187970823895402615424026532696110908669996349787645923252795316879331654362476079421991898922157996859266160356070115539068753075108755624764965400173164464952368130197988224950038655508688687848534348359302752074063459482956887095547109378460001357204017259718352305153056641327068927523026463073313911806318848035295640425906346575607442776095083399559480948061044299871567341365190263854398948520688535322779714143568509111369616702844874721962285152656710353123758569049101613071473465862668811670564855479428648833798948546318670948838269746489061996516005269080416611974733138711243498748356836644623589202025716686238387034197272267132529918881515137030389701713718146583435280405410976824525466896462210991919216949371834455181121465468262166590087388568880538162102758904909336721899256379827243745317315065962679307708046459025854925721630891002739227072529992810612036519503403425576068502620173397083086375050518372405749788448689552013244986935239627904427299732711644965040781266988889411573173908438005811936565115762848037290989802395790527092172219355147094683948036500290666693089532005074966121789878340360634319284882750319156108760523352556396945557306282097537214800405519660123474586166767892228855893354506386546948547207219560128892949298949035512711132316773481485462055724089728962408716455469356181157349742134217004302111202483483154843849256268755223798045696655121737654076424917841387746258027397321958986498317435556374421518507677759248424374720779480702648419814258733034696726495190223140348183121166599054045140695995929998569521630833882738242321389376056160513164472324188078645980909157422669048794367068779199905640455263319231609145301781254141941096830906612499039981343696475275260907476351832933944482098711197169253658672331793931342396257622819993093222602908392327303792529861910347114411859128659863863460564438038870387648856084895817338669441644161174320972805192761143930849153993346003360078802347539909886466196350013198138737460456334251756637551358036417574245689522086821775307043750434594469866223040716405310702464409679569232149911580500239227010303000473372410381206356646013115144110511058070791960315139095223857732307515967402753840458214572567813816445698302362408008821046463176538141912327632173321849285009847833990074273789487758240846185486206740045549295138373983825916667740781998012462814080862915806461904754309197606646836164416419954804416546032898075402798306502818858761945389479271972446569512007853350586085556693880803616680505216145218685040125949031753913704070190886694772946528779528096730851376693965469335508410129252026581137153509221213406049032479973967515672950986837309560739489508958375320245379958318449432962121726054726532797810222271525410691209156119364684206971623420098854057860646427932868396883304568343289218137943335896290278727491412370309535419638368954928016515816126172717952715603511544406526527652820539309800468455065676747525109512212567136010000058023720016947447469336944685435343819887471889177035806002806173258471191143639084109529901074511180290569473899842855158783812951090807595452692575301551125698831556869731804951753900260623313452935875643731815957509559059673320173573411319130695958998254378343938096674175554002992575989768172766885980252609807699186421930101726664408086810743561229498772590935015282194788569935038045192049733548716496659528363090270652398154121598392313942552709614934875410415134418746794055200257836181357262871552376213734052749022880872549249987725394842960049557648086620208616736357007765795420878165712100660824642515493191558476546096003788439587526578518086178510773483143486240296999950163418143253689857614483025511179153289625572499847357756526294116033499114809807208251407613632381594317824232585309321903560546339345557526455479561539995347144358578618272594775589634889185625545997762047080483572819788662005093339927810554740980263943390720109406329223912424275078833785044038410914196790943132919599704360066498050213157650595681349960274789893918946576856258696620411399155596604475174572644615076541461673538618993837238239182458419037035196972483040826551343484441664255887125681062728123521230558925452616677374966288271610140041311502226969317562017050082456110945695727257862595661985870413389594222529871680340803329618624647426695633053410818589282378783561446944214790691077149146282352625301882800715120767335491396153833481639122994440780638548254328091052053862162544043643174450666540245725872384356174812388792612441001833325093214599491329638474830416705049581700819628262069948583733588000413132946755722616819746281863294146624830942866002479542753967977289113094253998456729673641792697433106634729812186104593080845277585179813002819547463996235706285820898285187060284326581612861239772507520309082874841280305084298866575661081517964130875401128690061823094597427067790804445098577430068070221113394798273193830184178681754540885847397794659061927700524679239773249231870271526146198090755881919321889594284706347352647088952341918125691999540430274580025978597545303623988686719671227120893662523980287570280783540860518699053368035149579445684534117469217477447879882065893165519227106248136886221685019610691316525700593449908025463308877769817054507919481658842412519765939727035238472748162517495783191083273312940202918717203355147869042386219477805776528766697383887931071887598382269666973379289709324144614831320651376637605213224902693369591700790795259527309057980458892190141232857204090718160731654581169682391813475055526132882467723471513899325417405020245635574597745013174828153781443951753579318676451200352875077723897834631652342375808979930024338255292405319326160380658502153621874109583290918986385123019917880426013370701967703765018451850982794814042815592022037066368043470612907141418146875457325900965611509543635543271228761022281711874603482533217327157447476195752495428208909978787029435780766017974789317451281608069727514439931346278212243811516271673216753331243264990679994604543664177453827597879877314508555479372110590318173491094960410060835238517267306477155214249514996117001232464881831276587273316276320578307983789536667914050171049938783560602493593588471856581759114225850646764220447585669554646213613739618651029096523792014228448702915157237205154292881826402809341196047206083542938231631388190984861627036910910981862435318099998413633775522579675899366069388313805309061351886495091125336969347920233282720891534747539602208703064323872331346437281562974171161132579363817819752182164425037143151326018920379025445023813153551447751562249016167445581330896223940493811002945522279453340017656407296483867426265782136602348290419059316961158787718615965132823309067456505743036765597811391846121566585816524086797234488668425523371875904043892509316920357717854521506592928204095160555472560637771832484725643284756270076301742108833952186572901305032525190169592717567797457795519754390365973072091239816984762865364838047340423133484385416557137307626789294843122630486810939929754997008849687940754506540112611877289199540614469824121690717019272142506791256868454497633742813390196855414837133603098448574800387290856250174346905760676227759817555704444858838589546372446299082482274305043415675675091310845212077653361783511540534011745011961736255613873866895682307632665368500354581748317598957356183280228809163796215457407662536851045888131090449326343550038022974915759931384135409800007068599928477555235558639983916809234057034842102921802744097097793984363270449095090546538420721019201765601661889145163649717530525522278941909643250311451305746500561210618740972161654469339812478108433778486913568055042778332658092065643135531929750504295016269502031977492079914169178142671996633594333387490983803794616313537420131689023094481323701768590402688086254232149474308848848863381237270233254407379048435693816713956644196197352516009365961903283047354316318678488304065700709251659910598137922932884010392349984666767467559693480159161795940173532077381095230410695766372260604836825621033736106729941873434527641425415528995666622502320555353170859812273661730882230425116350931057814444091163587443018197677760954854281674145018012405717049665626981992184489693476632483444500587546631449196055083497384235279167073091961126852113969764780237315968907431023050109556175637481251039302506712828117537607239636562704010586963712104292274460567599967515530902755735683716010574558555464325760436427097763769158514683647085984480860873910935252154627703618091258744846145035276679658765719798364860545734528069699707009616040052491113074598260138439814111523423927113810837564842603733383177387443917956412439253215887792838594699858871310969894027968583367460792457711084426348856325043943585593617526123085505685997251287300238408034457789417624348065980140183431512906691367709687316020746651727737937077351859300117217572602092982630236139137503422392860601388549374606994500762778372600313113114476976198370469901616377902260853528925452905108786385693918688894351752233324918499990522156341748520599009348237423122986222455457510548372436808701513434074293088371557297118199149098075065679447543332881962755808344843653853950334976597472448559774535460416253418223793845983434558941498880916468836759701237611040257465212743235855662169821015159271923644799656466892656739343390249011396432103329781878926007901098153605433553774499667509714264879621129622559210931674634599763582684567923298125326512515646281281783969063461559467774163409636729542871760769885340727216954452138129813510540197644879169496537985715868756867999490583033011307678917705512578712295441098688555908657338258325394463202302571647806657669766508077778823321912294279269284610152024662830977993818750999750905850181335456074214259379334362531154374320783828164631791957455765015877412260074851757859227521010049788946488980554506167464815948236711296349324546586149838575733745374114161798167165830403609937302456106366801813841085870989607722246378943158393314613754853514621971613139161513331474278417952597491409650445763009761438448395336990429350247207413978843622655771328016480806195051967870088457573001386134072292608168981672993529149432802954131825427015302532638219436832230926466114015724248996919788737370278194535983638981179999941376446271268824716208039426769758054754375193141167095474268365202155097782705257260254356553673672709888062159766892890599452878773142813610908498606251238965569184075144574313494504582555778921549422058189176354331936847416438012047170632731569623002831323513372719576624131366098693805617077206202063335703979942782088550548198398394897062605964715972867721290029790722110210038661301354779384333488947789639406405888201758564485714745573764852061642474744141191946792384332625302104266712268569053433871937059451579167354195884968843568772436679939464979850761183385829618124150463237506464272085694516712378497605543829387239056044819178819817231583096941460966694055663567692161142313902881782991781944400951049609799934375665667887424910154254223747767806662428191243958652266975761546838345512892947355769346264506019136233943870762228669617426862786139335994078525169827739126293896513045659189823219731596700899210470453544773525305819285838736567774208881170079177890796913811001435709512172698473900715798057340347832423836294882711642949713735381280748479038139635500894078953092391214158592424264251301487838554575975098957366524334991511040125284750076019154719257574272821710666271596621403002558568566777630801358249685889800781696877490830610791692939131362517661672445228534813987205852343705580109287849086779200505171197824024890952611524080666424767812643556853764372934378801615467277609866063565299533083876698804078509064066099452625040891629172214795830553597512742981829043615265589993918563025775901654620000587633590847088282822380467632253981904580996517937192692773541691763929278793979346265040207310974031937347650959974634205593132458243881033325711615911777949188394287121992088318615532871860371388789796084608729024652609542868565539098520151798302626060778919743507539308892456854125310550422292430378439998835876567364248120212275923751984409294892453008533695665186787617628008618889640022344684312156087672654976996074408308621678458395420508754399810133789777341239529482862303765854030280838636604961921676543595537984230132704675814324796322131348524523180083859340318263272489358586595295164635487344944760914187568336055527962387346745872501680428828837709478127447126023222004627694017518313621890806219673655814864458558530831784537544134483201423704483433799394382798043032357315673404956499801888212899341678460257897062703308094910250397548479134186660662589211328874359349533428051174789513986040168887810292510053093547070812718328552072121576938653510974177017767777282808357902833124721591494211873001853146034708343034011241826295431577877950590085471434821225981717691213681963214110837075974614462711275190779653243429843105381162844741958110635394446834588804868513105334618807957172309146658898976161755693735313401660249737101339441229121003250944825096802577843668960257683272553145332115709674869736505255902139772531756140239110627924183393308711007323938476721600378640003247045847779385419868794626145499829690974478341490153812906594786197888415285824620417835075662497060743433941101865987594591688009802043874212592650305246839608337538131861999105974534275140571478602501370641014100892040633387571278798635717599198533348725162098955912003797244878340101615164529014285142249802110524724901285558712075467109937599973850795823100394844973142872408202441662099402413356399707558726076296987863439405034705920046115974189300306831489155984979733270731201855281452725900369631857679664214714122040145024667975932069184884162324048776542124427966104661649287675896846404391663183932904512131245788764835343509495408274143350297424816552779461692039053422092670078923669237197115806043591520603021827189049851166974300728962560574942396426527891181648666432263789547828897151837673662575590865577382293971063113310148085495923737995315743351909915669056856154692329307076088625729413290107783931187710759320165753580000446615696589480534165726586525102997683330159771149652834133168079857159921221826696944696250247984388087044084308605035768924474771088889425422477943484442322923679728352523859464564545329545864831215176190193179031952621564914111226203579124840880076045525571095428267989431718721393173188823760707628244481236912811158802480512983477536551612130871624692084353298258909199518365034845291017980363204694657740135264665133100364267935223043901389859783780109975039957701379713357312767112232859119550561515180110951525156735055154294604569183939695636472622243150206268574854713380958237042275062973792210638064630788165062017209406855345990624542442032149385554191818383899062818973618244064603896204777223732149227815983747044870733484961199006009581173875726729893274945951804502858275151826036443096659992688951566873948311739401973225571043632658709041170230038745598909569962233662233742388243697917343786852696427730662175960310388708161906068582994354102699443582339398316275432979014614155484449259261454747169374989488067863157869265701809146950182921989465702449286492707420136142798560848411120329660572806775987614600681303048664164538307465944364522724947356799795134855227226849271634304808530628440373012772126708470054483451849453309980608848546952653142799166039408795743838032108870996595470127264938382198635089447903905460882634702496356931492186397248700527934151873187273736114702699552259967674982281602019251982960894700615551533655906962565170467716560119027773362382381863730308566225599554777629046837866171864727849250896892816804962256180535224481673316458905900721842602533369068944260716191146805543718019623756751209816140311861014850082729415587841508519111142408972036955840123702070224674755015682343623523089526930267762262950300404392751710643054860257479429180542783924377683082969006690662310087662965830253442121801670026116159707802686502066476699130951332662683939758140489987400264393703100010086064689283895202779781715612708560156821516819980576879356301976654529827253905335340043242256860128537063488107697000138312975627283352302265427464075380900450818954007981855312326803790397283501579407083813555317609927634206419508686064401649396510173055116380906592525386796101231293538911936629594658990020806948965725282282370311823846459535145477636290256977116397540689298838395573735714824554864816063459688699085041859541326784761103465581945874257317180945089192593077896317941893652194425963854675526963012724250376573457334840584186731775195591594934242567583577248505091813946490097234238687657340651906440222861096578272907534347380904394645703772918404868118315220374721583777034639261500423040664685019724709075554370216385192022749723177942923955459199520651448028009390431345421559017301843760440774609294412838696808116753552251998796814733588520974464490148761655688599625023213017445329710850395555698854611515010263699336133187273346937048586801491859384913522539216659865634680797031164519624541943377475906800316661617356983722115124989001465660676991567343939615959101499429294275908862355353758473163213112050087237442274823465357928320494266409039557487869093077088136621679872196899095560855588539923298750071346832488286636598862544096550042937356700682705433741804504845470894991392086059968228405117437380409489080875190327720946805620600617350863789432271639123846500766262580604151846830055703510185334045651753272606270850845496197550987518923070036167121150749017994068064534326994787138013829110934398939198826747873308165831250500630569979669979036379802924805354656469311781738928580535890659178119495562155605956945980206992501940889674586077605360373250012533328464503741589088881482375279005069834867087246176778119317814340278702683693311900776688868016753930657839681170909537434558505043970398254854458062419102293356904313170075235327826829011433462202684649067647672138915140902608850989016981739028204536976440679437857919971047046583128634642478475611725681069602141511899537374763937939937576576663273867770884699816331000995235807588164372916846677731238257661193632619711912147125155619792567468532297930864264725056952324393978469141912993198237400768158195527167385783850381272450978562340493512422415641693693224256305823866437863078330701504319411794610297459184747855536223012567723232931320572394687022493473932915543342028400227902692721399545945879027787193179881388287279915662989796783507999981625441252071411106870796124293009030071479026761454102051753573176750824624352764775714126548794296956054011358517240742660729434465371497404251900265173572657297704482730187001157030496481057204910019239728798826205314150327895158138964102684138101496071727503780804366944108679718784674046961131313419377284886214756341416735601862954181745318459567856719989270534683174763879539030479969806405688884513976053149502664947832306482837659282636791597031870931686948870917283603045768405669943478428072431589589582235708806507425976794489265887976321629749431186073368332405025948748914513527061980430534791625631772893222511923930437573970804300207144866301164359793345810719585912736817669132610080119569348491623027120378468883636930553557955580570010917073641906529136376934638002214021881519479487438682592750888680232365681822660706734176933252538117336104150838138241135072049702060136369683897403893392768238142904574687574627328006283265745797116694318936285082118148223743409340820773183764340051321246946740303823241078905460107179237644926832404334081541521305048012842588173836105523244910552362359836788583446351123015983707688553551139731172287690071936875559992454247474423664357064464807843338279646794495314429698500592556030486576107893909506767233283633507591415088781337489632143329984278441551805595694054648629762918322722994107931128333316106016813961062274645186430884189252033886516832953137575367576069630079039836629315414481265783584392082233372535585410384184132475824799927180968674676364195055726235557505969010374630608278103652174067493458072665564506758086216782556581224935207733990305356376644863510765549944031858277466526674521222261843128864622336788922140947880038334222848307100661169215568234645521680919156150528944925618078128579477609702476475180676522698928821166868001405044422268047279910050182507041196084268226663883278619179296146687466935859418948390033584169016110775232556359304340861157878065335772250234578292428820859041458022834894627365648547546248051764085447237546942968764635496911367225910180049347344096258714185290866852054105283708609765053951222120351003683556694681669490383368143936026760346387111316587946674200731626970027134745370783552554602990901985698939670019188145111132357900252654807092969097941249007068937586701799956661993495228687282836584205110338736845960490295500348977137039421850769176250542721619205351349189965162770707683624751231626121722138914605302364702244409037897597818109263991215300491628311125064481421501137807226248343143593807130976552807919290601177106693939515392911546090685598328181137924823714641870309398877847073080675752937502390650023473288193142106457215527355264016341868675887891038852056728201475039216733541804081169452548835044906288860019300079799376840870846368037067781888834466916713989539249764154110378768209585851994354211494522445753654288707324542037369561825363802300634295419886599456600183087063875724945004603312724651052186503623329364777975634747485564356642806568095084979920659729385920403042184369504406623932846255648702061305038794963891563887213936380808829424079677616099760551741955219535122618602187024306041744007396609577729778987062852646693466408255870495210536519231486130208388082061844135950081800967187234866545361176436986197183850119741465156204147631221658460950061590830357603758699947849940636627120203134333796077399928684651806167435258328057718581705763310671098410486048678045891329363559646792458107397793317464993208530337718677449980666598367288389062185085629347409512221326152141060206271064821069807562653026866315864836331719855721644413276658061887582653810457020560224374481514434097109774418466694202663328255269537954206114624214470856709399861931223609147067798380649406923262968930007638578368068670016620928010277056586138751729782781093756252569427019101577991407084700327749447597063409533364153870771133398445362174250522228817465408838946060700103042765005211054605558416357714258310967151077402601396352969142911501780806248878587369927333542589925147680072285177378377081633431560163526208633917066176209822985054246708304706717326355189991746962094024768761676016255527132850223526910015865109540533240396656844137070626990574151823135470541720246071202494031737007712893718383002492412162161968271591421536406254337003354839488147046714574900664706732082982348335218828080914788506047790341567868194399893961023940913467774186834222712582978283592303577042371750847540072729864873082140636337774936405700095229296762338254754770897704018988410415248223213356644359344873656215480922638109598780417855736179246734426123887751021284093377250759945183998898569974201660297224552278983860386484275509906419710699819654799924657433480185597808893517679087278916765837109283833389243032058948707285797078245200514316954995545866950077263493088950254646548960515490684338115871461333270350004143025453233376581209728403100474781633865040777863312677959760167509435432574189353481279042646317114399740369516440021689549544523192858674718338562436844109883651201932515184542494683627086463123120882010861629378384917686402183119865292168621677437151354605158179228196491754717068596045239052846867332698056732853104421202852140259358552052853944888092333981542518047180721565689353676247113347557146762704755027200230644151804101291189056704497774245476399391582983605516163118440010136074837376657433267687502807868891155160111374934577050426289402914115193467168790498623054974855322073406268460556392848983044950578383942297307805325961619104448549334153248625304000533544811258096822401821992200989002345751064430363369442371110093384903521915182723655833990098999302671704154378700919150145264512021680796586630057479763526987975005352709544732056359960620152728233323413292725090224639766745172730491934665049267815034502988000079417130055522108537637549919844012827173410463495607770336083438119563231837558324020601885142452693694348275337009888049216464795028797836646491364037409775984747505959744010745150897314509166549988611787908039213580213761334034532525939411257037422953910927990709051978315609159804339028566321966557900162418693121674836875533742134525067431722728165756281761648596569520470378700966578509198974343150033073810325284684210598205479106095038398797389250362089834760306656381659847221392727626621934410704164378086562586162493029714155382853998593936304502329782342442934314012449257992107496148027188952553649903509459338267979187382137882121412988831748507769885271102165227272849808404955038883746502456050444888025396672490808604578139126091467795788752793985786730208888631786198396100388750033352059303375548460043087251069164033863102515634718405417309340733728695059496465083878699203736020920889243452647755871103175918715029699354901670417513070927480973828713934907793206317319194763959743610094997987078152098784966684602628628533955026687708315004141059599299372865048132072817697092191801351775402912926319982853705907878912234726567187050287034355611122651022952398734549152922793874541233593481724879788246909342872261828811936235684667774309973779861049771471846514784590396737643799093230077233707913658419699829391318880517034662242166479118330359755464436555153005719849604197182723833000791203875398416123707431850669654937021477782148685221564123980631594196056990497693048472587856104237336330352867558932543271632906700158283724733925538228667805258472383043192036654118571169837587570970542270792319684022741066407179338606503723059036786413097186221557071113418642872761627687787511525777556168134207795305490658682467802585540418008939339891100402344891746997905678818465505477738715300330500184232019086049651974617043111168123090925109857737073175354186427972681118815050307840977111492703467533664609400580967849642697288169152118825124168353877526505940112103438359609329023596580222715990807195599320108035944917959733808179987088675944950887416012081905429275242999193850742087361344434477309423585389309967263790665933593368801459766093159650899777174479151825091362544156115133629443152949260509370708483716563489060332921609034385733147843875195793548365360844895707085579642377214697485155015159295960374596906467319012780979274023835708810647430993821617393971578109002226579086645471390627326870279421943814212459661460521622419225632997952781355844018129132265092753055253020334173058520922868088119816197455703257085840829769426358917723134185815575004340577583584412468316948096119962004519403269017938772543287884128975310655308859048953016538050554931908107005305745559337095177347909877381789411032283826047308854185355077253755071633218742743325198804721678071568162559322280739880156884951291733418993635211728669525447988763935963537945548170152344741234863002521483884761546116056500880176761796450309360298056260341058265078358344117396178852812089534535215491016808147121579577452739754191738018109531315408960012264410067945944086722559380575445116871197575483775330783461708530942910612340295524023987725390204742074813266562856794118508946529420880027798799782654301518115413027806142549325024301597192181926114955220839254052548187659824478572888591191459424009466813381134405112796500936700953773589797199359213512111473615927840799618733492612649715577688729000808712964112248642704039909603754237139070775817464029616210334947973407655879189457341714425835368621577691385940365359021532593607136029235985368364474158312364879797684895634749562673636641602303510630295937273549132391864584056536356232317492086870361367236329736901577499140653681316287623581902835786216975715423393923848597662881540921123609756564434301977068941748345861093805661671132750329336052974617836869879318799263755668510592037393270106394391431990136166211886638537198493411835853057611285925111241907190150387202685300081632877127549823378357896455690906226273538205892553309703170799757226239758644658077552033034124273930624043019871521828009694781162649840376364872059438565418088360436440973502974035179527920823813295994975075456587501417885497837007764532766105016388577684850308839726126852159066169981102145769783055927299656290813969518245523240212476459586302397192602030079105498476364773389745884344535512692044385498174468741751150968229930065868862641899046020660416464698528234373295008634783139260982206418411229028411850308700842062117269327492784077421924314948418118745010989757923663414359144769445739054295915074734558032760201315221333116646040484654560564899067233187167842800493618109046156870447430026847126347407191648876324253205789680219212971061198361820658623414865798072265262076904526983400656144689415577554573988645193397253173454510545308627352423928651225517693841294418744625020658222689146649403371713633952623170028902118768403714632472101335924614454268730480527501438656663205632742599946187291583199852921605670065922826515633004825732205881578639572320605387461164282354853002910486112318108324346349451350990840757838531858518130356646279146662926162031750673214613264763905264387929024760814083176417845774875982057588774333030393007956316475543209675184292591739533182833035222454330393424959063303258683564839059577325934875542834919252444840432691158363794777319327718378481366272226107216689745717364522373829747119023664246613383156430959995872917583691372251065671924495336571657582214912189077196130197310678201511657558659569261359756777508067759498614407313754657901985753633233637804899295786658350324940251259578507310249106031861527893193495511889121388695212222550230799769579561794915057264970501429520171319112816568090586089942868885587985089175301544329733255241238093566675140461336444310511411795691131833173283783364204639302914757524956098698293426423667037534568737823063313447567177335763899902259925265596142987904724927780207993291478228449392320079962967608876458871911177266891730819565195067569786273389373428998616602234835013871128460816232208126262020169282826344404904547623556963400823057049973306266662141685834601954969946198707830958464214708062088567416648839801237908786298485582451194830912112747958617474365288583190330840689560752685629412899129330066810333504916188147077324272151635971367701647487810063870217752126245854520028045373176466008481150493122806913898776887356126960608270068486130379023967175064683437527411937431437685144939204705322646789937814272631051812971509934639459591480141728898806739218823646778368186075660887393307940265852644242256054671095453404740670811468767940318611718909993215802378075794580776414068251153038799343359710096291844909707027861516287851488879700489030413858301449225412415015873097290848326523625189490765900955355007777679695429146427828454639447163416903088703323281483444772782550340814837557547836749127426277806217334490236017673386602023718029534347792292343608298084978765679827550590143811697922835482793800343204818213747816178730379315198012838574175104302466339109807852071773542451881474878850020435906200935026582462359501421849194270344256363576447616445053796343788671390621439203948231328023020146141854869663394615682444222310370057193547947888587514285729746221806983421431442916930823289046581031358129464887318565900396748960629017277388443934905895210740498982784184584214261232027038195178079902246698185823792272341252631799141571576437514064994151426770662020645317838465682159086589453411809309701942107589900313359271945023677050487031968468557308977213594455394382481926236072409913790994147551542026463166625481021332011684025755583537849856572628421467055061050895993809377056342256391580247757702574993358941032083856346801171301830395607300213867149423615427096613461534077367892828241557718560068255650385431073416332535875014354236696809401501358613902747014613985586154381922972830155870305798107990007908112625719548641420521267868751596066323805940532222101663289074638132407356357856396899937376043818438210798449550388528641558460497340985041429016928783294029552644901965987494510804996423911463624363370478647429196768755455903538344798059753186726913659013526283901871424855687334648411204666061146512953248463005765988293720869068008738390892168491927454294761546578128955033378393419376731479943079647989085804773980810607948778824713395405687165403133049682613453830976229162078403934538656280691340144695470967550554517329423313750088026576027747375702333600349913580211761576061029783322272369363100569937563822731220649603565906166362278055897551031871159892064825504036611843643993937743548976861253826669769282514439053197844390193829290223675606809027238893361931521641692350122565580452255336759841669568693278209229876331542641418820680604433065369787975866105708198166785850065165729942900681144165070809971162971736976897049384708398256486071326225835297283678762735000533958999480359732632601971591618830589710994965555545895482775645248132552632345344803706215706331769027808023250597572984192399032138482505067768958476548072359207517734565758938075642804139768567409681550682945956078159676819618884919681745259932638815996042260271671696987346496537966509116157229815669719067278723998978594101966262089416921981028357601233182688878884098591437303313253554413383376774546702712179843964376665003843329457637531664344222714809902009235345101898309220526958729790543461414870713702111012434998695222686249385857175782772040657797490682390705223015895136600161431385872674093843409996293028132540771112243978806427594689057582855558897860661635933555929043910118632253235446689390031441135695724869348158268380594333377919996162999992234833746050885218268798090373843114490553804065273621854512855361051225353390353818876156283981006766936370254380898463834045552110923843031417063507149151070781918954139858359503630204119071759965324294830124290660966349573802774460551159163412410801561932061455363956648801076141933764421746490603067409082763501951547531105930190631627152678260145941860423510360380087873451646325503914195250011865675249614917988813689658047232520701853579630910158798695463820908555480637759985320712154905529835122296246503089478261829516914768718195920818280641220482952456304033012065756666761325562292432193277331942821783847836043497388020369836490960358187126795749540725305589664389199672233881534647786400380920223318398026214246960107999739336907023606646284672603532242057785554264671998650140993049437102959128940913865906674837983150090256426393696203706936970713132620417089695563204542401265042464402455649216311813167486702573195611911009283010195832429297613248712978824529493963560578782286507596050618149093545679671373134801549752434337669353202085218733221074436065333672981189799291382806155372276991113910678596738513357597421403700033288437265626706419467466338303016291022633806446511383381672710834697825493214499257920790466860471675971949717861719880024575631879498997094060863668784641245736467547065499010006912426624008029146579687915327963055939652144193884705728562510290730671069310762243128501004192252834115944770204187310921361851255514961952322053368233321847382917194886870379130800657223694982744292956199235029482893033990542072990234592722388133503860427647740857733767678188433683323874927375666966773700675652260584608620221319630981185384205681933927924443640339253967632666962085491501919988460942816138198880047551237422218668036540915427990882241626718531264040398775452667039887575971122796467886260119520409540938682911713844601980566337422044670826541225052458698950593368141765805180257342099104703813882496555778983456423671855327526932621991142821875818522048235035067085570655999800241063227512260716143636200210238245449066611853436838635721799710922225568761046253104516919988104076171682859102975201647696429386701479380709214308018489947044567047772180139509005314168405907443165173993096241368459105280272109566696303635662593994917647875096045895803196750971503966708583338882753721325517060389884519713654436083307212300374172775102235734132014270016072987713192788001142934724014450000594609878523806642604320527611601001633577853026183873475795040969315454155376259236773908851396111218847581789570088680369815107036257489312431204880574186811522183229005540679973961119377708566420465573623505683221648418422278322913298722266983024877893290234896736401263379955559985557662719375680840881051997282212022454590043830427671651985846321283432771436498806485068019752454662176145264145112358805432060725932533192766172666724318099855888349973850987808998318612643367396364703412333122591365345957788759593411751599234790246566005601868496144296264950218700871381825795589200311549271172419553454580330349018426545539756849041412184656984759168697333983183290638092640429481098821872678401644323336513671730719956824866946247586957908924456272851775984602021186337082448119617034470956186738230551241351005016578625426040958719703650630878869696082774632295037560900255301196865711239054871856040750834765854225122162198926521545295728102137358942393457106556957627332351852478223913414638535593886338132142358988508025730888881294824288796739714094257079481400762242373207865251983067272220086615019504794346897119884777443741342587093814493531634802734084973108549986461613040060229476749739239769587608357404620854122823574386534671455134520399354618805022256960232242062289057425700303027058856903544987700619183559360869945807621528951592289416136437470614084052770154640395208149081482262294610803874456701673593418362470728974229660778875613533600951935145290700752976439179262781541337501012475870144785279555442306535021094655190655680347107592001651344771138767706416366935411235773216367537274929261275838880862282364762617628503721255679305783856330140728974817432216426547657204546084076778423971943369741092897128821271452729305491466762468254862885936529448162149703183703905860096462612246294039649027289462188985617990286042712494033975703502658052856306340319277773686042009222966293548114819818645737517397962614853564491728945510916817223817973558305618490388869029638142274967237425123574027776403771211526253365462771219303013226851948255649829907177045582568211884044448976711684196954916150211259506309694805957010119859470193078981506648710048131140226014163371092885843885096888715923490444989859315370399229030050901596385405517030764542234400348639703898960964035135114905813257886525374556888260675399437556156412819118528511723857695720986531559669248654601809467630716673446263814029722974583314010706479221100854422491103852785915384558546006787305296413867461471081071680263160544043387015854620081981566825582462361984767841491806361290340352045049740258919776269285467659632562535369701793001005770486908252563671062388150689170894881543991573922215610319450079558428387857680538829235328334607770799817357907445021183219965390701095957536000105082536312110841025649092265356252032672970494246038975837060302408924305258714663357090113075840537092751411940986028419544578873081762458129284880935823245305587737452650169218032795144876143536598918463197918656502350674561134846180986110159670535732925277243207437539600243339627960972097676036187559274357781017596169937512027880133076247644047734188148887055167418251535197975118422800551719254426513096605962682403774174954107215174906900283991958676759130506220947601293195628630442632905982116924000748136229536276897846249841811189029755706914275558888456824887040052146275317223156086872926587928106296155993220669442852584617305671936945308305155930217710482212745649324869315800111833940400762498177323157041887122478895874870510336878567608423178035006265253640390339574894921809601414528825544374534631718612047930986486857000472462066215107925787574731776080763322417221317384031185366765215701987314277161834077627626497248805685495450917132630736606882247927246769106275693287000104233291934959856101789231382196745183885995033364444544940460471449498017944279934084046257766359705484572651701347857427571811386582758619841982630249203823456290240156066616450620111818345724324115813028304749983683028837368493040228986726854618671967079213808141765436013022543074283924765758077392594074391134831424268007595791662825599632617967935542065732166060665636670559836663439863413712448146595795867210951549792851775800611781222351136897118383821139400622865891599446751086629731704035186530200355943704749833457564052669182155306012924872343091127799910122068095004467498135983812745221561225219647829489551888324885566117589939090022992398399765739146045071832397257387460542780850072262177233548069307048045182433643198204905797705934144700831402703017124160764285824775726799100986277381132844254722243977845030141928939947173105780450048583123219195867216912874279994860144939751127755680840592937845228709311903655988082887539628480739409484492016018246939627132679812104386116697667817214023336255807100602988982284964407628931025787886601990856063332390648461350801800458983037801421988173919753689192841662914923406413615510221404569642862900737906006487426203432599457860524147482649981261149527627334204900851447795923251835628334551988756073644683236366289143725758548629024226673105719510404566780526151254017842307866919275279935305606359351883297656285449666028565463610232593234887833721614757309437959065689474254318223236171093125442239808496376087092496396325287424599530225599284129174095666032244712187982305660317742474506238525191534018281297172538909184125585554194284231720516026558409756128501135653850752668050038326215698122101464524516761027505924848336563215267879016002282787211198838171487283178737112804696516493163091144022955523514651397662359895530795511243141326206984722295176238554135394733832978490471577725494946813129007929034465031451406824228170674681148177781324581762222220411050730968115733052855844037227884793382061139584205302990950700036775911293216246594036062919268373722229264736377804847095354459475214543010356579073483477139232774250863708542603247342023154426974741522285788638028377308198207425174374942394682537046958192020361141740335682588150243364896135712129575886611038806691550144771089027066907338838398436648719713943833750943558368166565795403223691706119048669786290806640157149041726799727080224130363945397173266422425756497472880882117506366332342178140061978845654064991419822953686854992300359462784614611600852114775298184172609388892826804331135155999163018470365098996083801166895255561926041614771884890029965561917408175252316613411343743414845919433259308302504829171966211996703110687153785413004149240336501048989004520031614320160248818426939876239226114463448645661045685866562732417102750911070169266658633789128065452792198747419551243288302142547739796828656731309402630737065327183951702162478516684740455953376280725714978578531758571251489931316773706596448978283408948715405687566894786854754679333889454054993112901946058912786702306089538803859358572635749664705420190439088387436469437681729002427686373538003961381997428626691239147668923000939384172938517604326711831498004216009918709496855145367595083790196784681745443767720509852270166249910302664820745252786542176256943281569685358463732972925950753437867305396737924163506112285087408114012759287145091979937840651096055491039823808931377173057872022708979120803768203735798712178129382825696488237312788373696463105643792378555299089507929300442797323989956304452549100466028965542661305407682880551361835883749851231571909181148485480423332916193014866424296227211132404091006784796743895625339626068964545910340150736641123946538606282474104324322807593124194526410735109375025481189166144011693189011859435120436254284150430151152190170104608770150669124357019852070985881274655959840030380832334354894446035207173689033118180536160721310512433972416576135351776664130191520526813486874439138790561753137392615638305588968914022164185209463816821015768072717846910638096408039680834255408340650125331062780310886140965394699963804884957582106409771074156098196609875534136922856394276574864518975957940041505944990134438012193809060228833901174503670432930372270720134352711874347216968715784540633770980585000397026653817316640717649700848464359823612893946401885665596625488247070690174777029194452670551343329794591951531569434745922903399657657600078720385405290920740685230061872969099542383026494962573760521462797698405242608021507618051990458751962833542144351463282206700507411171897456615315631458571164398860226351093430443746152847803291738626053795088821560134478191521534735545267527046906386871360729351415428844256875284425408659613529636559350345000907718147268790153429817522106450589020905992672668854038825031801618052297518377268944079191646299027512864445858655836148006723638131716953753284205290907404360254834955334703870385931307540880519046939003580163436564705649804840056234369021893661370176532742842334992424966900643710940649517427015277157476854170150906456745708108369640957155439940566527790969867622603357387270105217187045963879145152033940784733900363414850154535805847743599350452120227650451019646075865256003814847015282327216327213802929553371302645617105828937444181945172239738165120008578236346850947162248705345897875622410453813455377045032914432235772520736910462897921544925773099236574628982290583820188503979324423447959469247532852967408216110612140862864865062195193091370522079246181790061174411054186250864560041851445097651943994574333693430719714788198892294821835880064317347157477530949946478075066816910834633805128368449315786508987676371885741822291494216831911750880677509077966945683964631796157853418330460363152517685841521809809811891266964396360900251830581982044512844790285845177259114421055373829066631070266110118953224167494518777260738939066287826813344951856041170391802010368881488808015725651384927640463142493463367819316273380764588683322328956236748852369639329015688326972164075113361835378357458787975285542863223363675563600599189169135198333909170311458502970035120868861564912538291707344795054576006348866798933812109463200281620491502625269359884083032821735776125913586106978084669004030278240770946405312717543550762807954759165950464348895943254301017549731193963131803353798264424237567384533949897126427447623403097982170799159229991825869761571562035721527290255331422293149642888877907601840201257493454362169340532777628613127153357766558721490722522256150568886267176806118710952397327407691497748751755244481639603977098184982070126440665642375407575379184821980200399504748832183756353856002692222953790432218051808235365729708807373635705433559908764800638040192481139559945760557060651300103358657526737372829277870428150102639795093177269491356316560664646282221439469626659761541352999336420635076285921615621144043049422059545432978765844504383660262376177643891341291664461995055078240404576398402003247871953819680722640119753439428851745305160867532563924973049068612633143732695209779671719388643695401820883923892120786356180086517945069467300940860899702819185091772816474275201794887740970599465570126564750501388259584818334436088257145088211125418092743138962826258117165237820996769600314750901217899591647008031094409119632326009087129252258054536670947099200937210287712136932925525324715933835091851768802615346293177843224522364485464004221499804747041404528399165502595740725888208563315467679031677216655394051376866624686010957030689974477341282526585801707358688480009104444171851848530788168294562001062550278988927582467760580588743682351863880479178124833311686549364799333793487702464370661048749672671998816613100652260052829622142132532451854357765117764072546408149440659005045434134305808671019812960632310700935626783651870901464682611451395658203038045814182568485557743880172556381941841722784752756284423356459248498616981439111005799421263328058286484134059609175964374203043212289130200158303313318353436777592850181080532863562426064277348306061182890653445757096754174156781300133536101494785692969089717294936297737447098402599083683805639353934524354473294543632171812133421334175433639337285043942418200006800536072716504827132313422098834221134327726401980825558163829529236319877618119305812929673927607455871754803419987106863412688289012979873689661469071523217291996196853885846454152457177944165706097896628712328702094043824276493090446008458549682537821523046479089132592910149796636564444982785898073946013989954119905100599279190973718185095267886184682908026270735598260496703615109305380664652832027300592183865443974276890399530236856824220502816271138844259622053475891899061281831494205498881723102037380924420937193032177681959410084217138074386929808644788368567928971712296508950231997951278354505594219085719024335951707878164437932783261385878287826016617587695591453047822028315186568688204698224738125984783104539630768039750598147003998227011083451256109666408409460279621198289163132167843961794015893824607276665875840449514789160582245579157325538420393313985748871331499750470885774871284597479443618360079310352252215874936016811821738889856175590567564516252360903856821852547805909523318283396423816689506984389177537631158027125101691742297068779779341733217409738527817717864865757671631336786860430641584409902817904356317392513252737531244348081870813382313412796004939702195404845286412062609768589416893694624014594709595046958074877445628911467371937761552383830464624428083735457067390026947858646797497540218207433533427819724875116993933350405823428100090117671273025413337123709589473044578621757492062932701230556826625334083990483038989013194492465561433878129454450161409314603669867919071467450490026568052252699889701950630344276210769836127844258656980700893856389327138968961849998960963887060031519729177481425784269130508382568832253625220386882589737084840564726305914364730457405234868136863229501391758668911422391820882348918216043254238337713757659020860320520691584628263177111435928117495863471349949699352775510788448842415442346913067122254011924702728068016095924818499240724374569818249370254611722010724730409943053006082661273555281622327054817879156848025676364700017080638537880890607834074759019919089032245732490664968326057358919029946675856190560353184604360278094616623452376183797612779147127848859864981367008535423433282971264979588084736244305626994169080125196065480609589595419457374132645706148128739904706015613214449181224438477095561532836327309599546992802558782861140703959118228630735301816529240199120306975760346386050961674966470142125338268295293249617312169176969315761883328157095839653707202500811581363616353367408764029454889125911487205332975234655551552853442655090508672756710522401550199044666454031049890804679082248135302890065148126583006360487714060799466183241854417039424953169761122352699732031468644939840750958818716269549489510484283559342293287968928086884547346957508106397561228764935259309472493352044111027134262211414542564988629598182365614533223712829989705999642634801790633619375571131772652060337583797251415862807626938607456474275550452469556454644529683669536601809275539661436648809160532524643794470026592602039373004870351288299554564114891918528843491231800817953333735498388817222531336179621651468984840303311762003193196718378203938103197628764406435052169948906019161606137423535404617033587358408678362508759018977452677084898364864457067431486540833557898785479929779673819880433148087607199305898439366091035781512830528699303470654477091592173052046629534664435614330740232322981683585358799912211234643622671307007862411131964277671441261724700175746185947685159111548142326301620618857729536978078199533027451270689942284236615923382869814898456841217817583389617758427385318033294346581969595266476386229959059421101729556784281534747186981650091587053208711603289664256750277815236658936756398086682303855548378294215507384047418177242037200895179126984964935317855946821977441314766128417379251421743517775501865107340810035397348460868191925028038656255006883737115306466810286767394250896184683249810039132910291502765035025669941930913728795761737632975165159015155964391063278904114659032913567807454373129482312830093379441584556135538469597880599012323895219484425027817000488790502329240827999120568077039869307180646723349649074213213532006544719584276233941544885295197761192847387921330616268276004067902411865435056076127696131337027105592699169747491338679936311760127377450611297461504046243437504245769276238732522555395117838567182401570725843058047724342857168636927422957932493209621244913071034012157949096620960489011008459695683820086041165359161132676428260000577586010054279361440956701034595766781024408104730339772953982600186857777165842216047992497313246292318515489869751429007727668352501155549730695921662147640802903575531975030877236789733597649568550015175292271879856930546506197727339010127906384407400783403537011896596556822214552411760732816822536522614702050833305254815738726999009034832358738376493403433468373906991695666773759727111558631964301436572870726444120789793112935829942758295155384850050862178153060790780717891632925614481663042531906028091229661934639704081135132455378473982068752941491285374036806188073957277778067824969857868606900619210887046342718883871127937010458794514422030519551227916849872737403758408716667347188628119596523036717033095754215906214678814225115759086823526874546728045584476634430309079731622772091925734668679257861822947652122652522655680500861738966986489972805588980147223810204791565442166052747386681632931794696434285683222079009620293774942242452626482447722612938364373245801496437229239102294011520910713636395306196172230444944425786321660316710399200454604119455885680594697999324055282288930012056952329232690132007543366463507564511867467491231878080639256689293950433622154382270554631996031012765977698845531385857684999663614641925156947740010577789411756854281658229589342395122299952632601126249774914260571518810504729516759597127325762185075233563127371611428158287993663711834528654518491626150973606540891648844138480039720367692038979686603080121914414006082849652263022421738048656810198157249218635528551553271620190477320609281333116645244435500057213516870455923871508383046563436463800498314580854190891605206528433495179444826098889247549638835377147031321880202181038545162228917599246520879309181519247625574419554185490509166819049714409155983303739107818265889403118630746603129178909753789047784277104629183899842160945471069168656512910408254969132444539751190769649467597471839732025498156075160362157398574193027898176055797095208013307846328774984850366905836464164507808442913119752136306610788747340689773630302389631102014241330858134580182172184030469759815360978604762543511602443441117868797800309938129154447309884680677506072387312055541033636455547827212055251026125139583790887808392219969988315361456381145021497782511099659428601213410171635768564806954858137506168507191778454459396264474233765002576353100809408083980643125081539699342945497929177927361670720287563507882766087957380125133137417725927158040694891431600552999251744836731916972100762913456819548067467695147958548726048468925080257833171610388061404812346086427647239184186134629274587334770271792750092977865885968838759087676190825850596148427194434558904147144058544302596353096654931484589927174541873363176497246306381220549201141959526777142313304500270233294081673634758706149622369796321782780718891863138843052207356245475559275076478046376238730120634666159796563733550426214179932535297625475558492360880718363279294753203360767204990926983979535884949388966129040619030119963556075705008366005557254665594146294034726854217798839548506706240995635196533612526623658627732951767980241639435287937044416109317149719144300205586333208557812621365515410158101512082782509524944588359748238608338772009951168579341290452965780018707873530070375626871043340444465475030941994732087832783877588839401447623446865083258562285114013578140332458819477529974930448894388077086445542841997045535283520038893859660185149155790873846551347594628469898259722838060597316967757109063391480579301315327927371407011584614176579992213320758752572560584937059885894337211785397588430707560993062796151189679624495969074776436238874257430094161160500949587429175950315459597662573557453008215241336761324952322518326088550786429900166064327002071441511663079487624508302081611069827342513028385624454517676368767597028739725253801218481899651409581068067698029120208620262572779830683509977834614873083458385274283049582366700954127794831847331218639974984139930682182848849985875035922375625646163021315581817476777149426219952332956548829831384924512482118140505339707326674816133345933426485336694740101482404253425641071077913575024796892667414991485188902927320802691233114396119238409669297668377299000699626201812627463590540075337275021373164640099737899889866112839190029451813057837162117393213321973443754628565273996178576033459699119423332912252881245560522166937572418543850081789938822532890773532167668090352704323462503126149715695880152198383003253435198004840626205706445824279983820043256646369300934925354548030332342187415147390619228873706064472132258372361168352883073697238938149130338421974965261468217084353835139654359480591088098385677709487177292568317695197800255213680709936258636121570877791271367858557335384042482185244579517395426243745845246341684852352402521746453239211751295317836621038023216108143948643438160539885284043314886188624615239387274034627564219815282536832807346288602599479111284294411452416142294684153560109486886219729975761788930607173436082557976438836554070839168890831001761677535350234550980867502725825567426025742291853580120564639893349545364967376154467727943478365010455846459455689364450945677034689046047420849673955258132996816188329392119526769046470359226541436691589532935408979704532588799983593030973456282890101058698112139943240168040180220229577517320472069476939061436557103031811378604880868808980331108673591945225135107359631322651307502124370654794747840651934949556105629773323697547157246460374777015745605879184200688960942065865748087322102495792825163588450035595338168029993125560810639273668398700928580222025682649768354647832176006225154696501207895803135721369447234169114894347013874260405953267296884178998574272092746493771954242509559602042039348874796156406397503393480128385429839397357615990737956490030030438700670680342764009544760930993048999905074011315902469490096442387325854950961759147210582764621243268214427368918013778559017733467999489499513115971945066320892929699143520183057100486317226277015662886463369185141932956575193436912241393525438239005853935901638508340299855495960137926238615500725592013512163870329283307009517203712384564294754908654342943961606053694220827277370464974186643882848178485514844842812737951567829350810504805693411297430866211030772468028623323909582960471392471325100008777870299475842321811258310206116540069061350773088020533528776973925074100983616998895015627118022499817916601089238385566902735946174931414300830717185630427149779557359276007502204233876705100273476687007683569425125731037230316738231593562280557554107582249380434818396796061352359561967308118191423552221623011303942539679711242322807029474593596265817033471359600645329343199230157529912101368938970095266478713229026362830783827971344612502646489396080035035106683705471637906057101412101319435618399239857271735281542297855674234688091812503252782416723794389109932549262696423993798881737455137789004748725655074128114687730973188871690177972179920473225421283510145764980498372289128615188873785333688469375377027173135899649599577049357565999548482929845252398098265561715928104240057564686716075951492692968594648358399040039553423785234444275289388687059695677199428653558597114629031547913791225831588124609740912774407580454185772092646487609477010388602184394695106781337171718701773349357203251290036430873125946991674159461152663756931773963045600470107537777586903860683307829977157954424184922493785896591117572891796605370277380850190120476010322176700392748745945986512775699267275961824300045737395916685395597816936300896805388412315687079609621617495106805172052371878796631393833918073355098997039627854218279446044638473538950749901174289313274307290502613411067540297221478087174000727324081475379270633640465196033108692459044952716465203607612209988423773180045635851618849666462701648065446540042223120367164797057037305259996605583101334512651433643709192933398465259668814972080474423109979618246392998101109271768630803885519654734618597526142512444732783471635515561926555474487364776963247810587056971439039344462114074952624703778772791348010864407868310770346634267052361742976784323856917730370026712328162601808492476265563067488264079995613422267220858603283893574832158206348649376334419290405429376833444601525444441559295389297616001679467937284357983619586827075553046187243718592470879871419500770220249697032309059820098189551400833405296976679928187735603841557572027782533864931851091672016008950193321105526421425013609100072709340116133760235517294269440092106103429012994809308264339174841008444451048434060788256997523552018952019585520898788670588973235736462185080670218475069655523543738876764138894306930634381192802976568621670374751462593391187772179697870895454696389702004089205673798671851677757811218899166567410708098939888727188251040637735547141910834560098363680623591580239533348643758352491652682972115106852208774794953138406807046689799618019691078105805943490379869640215164198995932382211579966315005025839849373654700195558263897138679761315132094622249905519410295646979924010766323548037661779091074336218124165594226407851586784121444255886767415032420808592788133159583163363129629248087064483806534893873109669632719725440004172761772299165410493136482118865666044845177493168199876986156541243675001148201591593900944947791115572832997710406658384213053141325892230590540953324975951867686077492309531908263482454898447987737601892492357565544256219291536308754174093523473572916351757883731491913833810875914837668903903888564604179514420688822752810990697886770036802763344538860447815374293603950330963592103144294903256169240949102867015782527134175690911111255171838326449167445371731154948082507416875704672417855837354622318148534193504989906589829584939401757153946363872425811760012130603847986501408908091417431871709993528469765861590362042254119813735495961922336652321418429724326465814868848773730769626868289590777506648439590034901071633450879364312639073831015048278743699900555819693235688586900555618817109446633424692524834882551641899187428246617658526553794655552445655209765768927883564978837345796393003907485703171910670639489342421033087432358821799975043691575217126860160280099576645334388522147327088783320347628209348411874296670085499286489961909093020566696717996984373166440112815154790926761095096220380562771819746220263760697067321780785728271824888703761900345382222813956414394191875607319977790953000334782025082969933013723988447980539715230501452693975131723040129182256178969285645753612791455547858733488493979493964629313207783270075263622642048898959105378907583636863589103230828059288778862015904617879660326648903820308722100533419869902379176970191611460804175495700476755743486437565537611394008029907622960801650305754546738907885047952669571465964411696245331870904575107790454305620510530958171490023304520687481004034734305282451744830693914898508564874806136894392111278829475986115514590245753626387004078649393943036052294712230462202780251929696656997350006880384395184878340936427460269491408745086839545043723249834359519247001469852731223533626635053426863149292507186364708333582495179922579638765830374255234473299649058584862986656198681889042659696243372217470417274785529278537053703974343718928501412859085695765933267703807186003411689519510507617984956592109977751336877952814095937856021428410756000447314299793571239581957830339085200299862692610526377921375296129586083619063517793555866181254141924409030304889839736483556089351418957816916157672081110683324791983602317155080876010726743479747601580913735142074826368811311464571412558711238481249065675456582934803635314937761895781968274825206763175963568580067388718476860015100729084177815022494663808637648890676536813347476471159064335298670083569257529061726607179652213450334121894014337477907458300747850135909962220360384788422458737201482186638637435759313918247198398155552687877244865861148810345327223562866685609321906893266410184328301689521072997134077797604852364210155576851286155341506428811648691289606927517955200806203505371195349438102835490331055298986644858697591201474593886061366664178374480929480239946698207263352715180688771578064978437965829851169823596557705569305691384298735311868114022864280146275378032284182040339720349405126566445972880716345594952000645795078540828525739737987243577232270791955001414446813975993987227944750846069907750718409641091861494139611911385317660991750973882043058704714251698667323518564820891470238571247522226720944666872546956802663091296408208954334978320777119743380406548270190725462376567836273539247397171871483964507672629378955429050229998772653929063486390417376409302775165282149582760218160020651914448809661119266526463238323068163848462217870766801583586265398279228613340440623174951682243019472049601480635889757083216265040926493797697726989848938006555511339842144450862986845677121270389221101599453829126001581080155370658497281702327062451229403809817068638681802011198104796504637206212676267051917891030303131485982030838224940392391488378124345095787926546520230853790011347207454531982269476444505767107225018317523752701021317035210912641044005490722277557554981156056404703657767058950936125432324281505358442302782571621226180415322937561471527775098457643555593198366624829617955457702657591297578542428724124775467267451049771842200604135308871168493328479728552233889196222179376110954196737885116010457945395595081912780573441075434446215095199479636903606526019532967547416511966258044716261929828618335025638846802766936750940387166069387830964613435603945487020138757150995368023100243454648045928026205661725323456830342178369571775491343833895362223384488865128681434149589593808744718648011385941813432351411165766300966313554135857516480241420902562818032505131053684504359314728304968883570283989942980358197061657390340309002606768252325505006484064231421923064717579444554631103041383430173764213843468450058626432570346634373765121584014408983489614896690695013176943452312245790037327715819279805026970078375460436329380518017457598762582274297753497131620872794388425351679090101260819215438887930884382593301505802690293674329548097090395432567088174179701562485607848552293196388712891488832278539478583997600509423340811891256482693538651869938299819129128723324461485041279859615938941630011170304110386632431487803896101221137700104401206151371910745982473083295390727948874168128076406404849318381524174590270141039486990954763155505518792515100505371070050537498467804976721844551938602805845916375674061325020014714645593888419685844670413031964520281438455852711807981418682748176608938398011522958720525228103862878199885693525871541605614541183508697218798431065540752909859621915690368564259963789842697526724408081053956914882202279556200057721998575022776260125058952287010420448556331918282781972659648137290028361821296225306677096581786699192636998641570190952481055697344515434653625478164166832918963626247306023948704360190632112691747423602600894871213938902338422175355449703516117566631206381626357011703140736204323326404393645087323807946951259815744331119200761438959431582086616498096427196395382429991810002292910875408735214331007735109606186582262904084568673248923265663971953274263748649764205599088759680823247503719951511120408501437042128044791391021832283499089177373544116384846429712711249174636661503326766863322039465348297721990354297817875639417459614798386961046085347808418440022630772755440588310846701234714518865964765080684893808841193652343260566293427613285795868192934407867262477167782568900740870337262379118855828535041716969951226558125786062679449966846802524983113499247689403393898167934869906221179363730616482379145996300874361192212559146841397861743982941409461097545699398210870492345015426533637199641127998322944957630072338615962493339593007371610339363640614931919010735779179519232798111731560452808793928558759473023972548835201310543646432171872254121237280374438649944448299248310253652752414259092925281680667241675483161429824776086478685414488570090846111778586175479458000479379177945187171959602727457490197054765924980529461358156034407468204087849023947609228702191451109372889249929543478310375646253931630452037861724396229608161891710387196049094812548050936390449281461802188278304861680205978104944666020491658442633894955758945452836922337202248575248886655285699078927731823162398422962488607671888195959657276849193408224327711010352753374285740206997966852583776135204395938364330703215442744198700193250272622551005574183916759661951572413825267425480559992034889247021520018764960326790336629260145287849296545813677113640133730085053309597802413967658612405646751167936573744062935872813727974560221072741914496483068597952807531046440423886439355049443429381736009236600486389284901246744876332059006427192294497484299491562394384115809428198046414544153710011424809753299599655031045668612011648773238558191289655167977777305529925758655006479731780875706772293558205205252109774913230550923193636725380207107226469043206084647061472164747804871829234455133483488021544600605352708784301149673703934655209764770393277370122001312446540958044299994827523203532572348830973290313287698684709894903683742204259790760370397170393595633150281596956757861589230148144239458552075131878403950453579131448044734898854930143237698542722881120643712568647505523701906206857838530067693814303281751050094080467753655268440019306296438319701648566777512913804384058340237143022009028427425246121783912541097956984415958200874058547550172392805102891262218186730479329373477621804869960461966793051930333824840493114801875398788182097823133979588204854795438612200891975486886384262977996222487538955245457123289244250628909683380044816679067816624149036031918609226714103583806697655996459681822825039758029313705897198768403484598840004907878956114217094398839094700375620111226205051851679957964676908950222811228509474682685442419613187133265396190471376152317920403017722697587997160668819136046741894441725404449814863146130969932676971132668709161683433596014136770102102490783412104792397655226640156772385421553309525814422277879275132917228107986403171578839867430111133074518389515076605630546506600550286920685995885494268651539006599979728445861890097352665555254420934981303652371902504726001522464655498824439980109305982979523294748688080562659083413834824469528668995162657705861869137673331762025113514837041343730948203889814670673019694636114469888657881437866871437384626966249888142983819045550965121165710262366848177420718773595107971857163201875539404440096768433633002092346221065390748839826574506537736994359668546824692059504840835509357675986065686034176801892274198718569376949651281829314038172576523953532557186128253995981806405795019876476165970815384510228728256036836341513560349264377070512546190379383942395495550539347895018191743149705944910910564483213354388503628866224281764966132514841463263827792152973454558226996566985087021963130655430211157413750469299183745398953623186251224395874515385164373076561304903677450017865984111975140853614926936559789256056111078259908025655586314950416236597828686614069459227490455977206068783305423414276710847149866188440992409812132152916153596211579208583719872561486425841023408971812533153166446533969358251158543436435747680688642234591813549810147955990381431929763523703315443431220288286368198289984074351942105694449809032473477144426575856521789426255126475296471574477228776328253404018047339590980504647226018859471189581968099958920397041272731251703770617467768695814299704532968536962199054844121145498985043745651860165399269634779909872470155415277202163704485106532301854549251098654824101757214668675647209315976424818792341640810301344291521743891392308976279046022421652007648801501634416227950938943470721313591933995429283599254283287246198432958520559341200647476860432674409846112297218737941577530446201004861774552388169070250745580481827013600836312982128139129893765566274739395704019119649719757431788453617939836999929236639125186346127271749082226752401781767856094271228905548418105681161563282480266299191516251049096840137314449125566801350001072667545248733575267526900360873235281648991954958115145508482164675553017264833000529948432837204506960612578809088897794035819181814796775734740167053538645262866757434985959998682001647840836219117330348417373232039258771906194857936390828095967032115505966214638696054928644702099173059677521672870558155899528610426296059363153586178169366643204292290562356316103710529488723461849858631117471115575332942398950211702972822005783794142793980082501445439309579639925988031265984724232840431147527051353136371442240766550654542777957834245335280741986170907919821149500499711113387855431634946456612985032229130327243589281868020788946520016835290926674150008728224158323951404119898206722535846511981096781751348429057346405741085660794664166435386982352770554930278683542082002792366789628015680162144337865007996890516449037799947354921009411566800468640913520012541937167213045629103824911869613095550273722752695254571704145182685029415333491807516128660067104978125229407285751668700294819419618973989818669789720809370366929330167202966785193510255803388111674035966670713708572765538954605546326753586699892041779335498551945116541619045911866132751504579503001328119336717409737833586733796977190949000420009817705968496094217349961849549462915641884921969599776408899204885991367835649068322297293142007683511994950924586411554720021935606211699549490155119486603949629911760442931398157255561888623369287218390035229930271113790560694789702605808502673446608431538614396561819145227070512200433527438216714206188282883625922118122906563630017888362241020696984434404192141930280380990033612302748169213470514916821019205823649723112326333477380428016052349974315075016322203290159237516931918510303388786070621054026430312062247879986351459427687107034154066499838182786412529326094838558327070236373392785820569292970096124915045190382049934676557389277894758301562440036475815629193568618537551856124857334661910939619924291424296602097109394285326111461255881311181727761413627366541873459586855743418072770273072099358166655993447080672661094695134624574872925247545248039374944826288912636764819370205871978957972325478972456051375610167306952026837692598345295887127610766858125270001295062844400567202846991964685528330721783879049289466817999085901551180200669736505439514047234566791317355965234166417378850699840769904636777105065549387059804952116918379451515094855749608781624062417787816449552302764607710568693600708782230862226136688596690204686706934267191039841309245558577191464516871766624632349000921745434448311814045431487206974102808530412908902623677393453338639416552270154295921914022009938787362143587363733106559265918876304083362453934423253767243300445212535926300063395596262865494507094131682964295801969922557221865236653637746205050537140857140959720189212247697100850219169088605592249032103433209456774095001736826697254786518901930142005089320998784479469071827930245205977710644987015569311005005406748017198002972987891789324382518939313504872290329738843900445822680149086985618760352293915649837960092692193204125222488958697604092566087381450999802725328761531429203866464804495244556811040075924929300201902247701652038992354798590311150595613900324350236325199126894400556526959654210806087891737489708756387325222642184574734852088644320407988291669738448266147372688311059272770420591715480363392135611185239197932044160367724824206093207996256084765440450315611868504176145013804014794765108776399255158689657458864153512714979642770290583286238072397608061986740130945789392888542157722332265851238733801839076029272941014348069710653581021221413531766628839939561345856673748527996284567149468343295622999845796745232992734225815007089461079144961384482665866459240187652072392963165297043861504281116700266120967220813527581263123911589408052973003831380108289948951704478297268024188858982929727747803992255074520500165169245799136564493478015248038437043199366084413467184902660131654156211754488150835321808542689357269724424495743778388131483603762095422936344604648537087367038461976345186858000876481661567982554394321673956237384674920313761462354307175951722192174339122630800086568912862871042105290595598268026185654964506512991155593086681379758190087026412558454382714522518396118864984092417199511346941631402009862996389737007436689860103387432136750869841211359496684450611880408903882906393428460116760894880195945591520386073878277954888850755205235714347304328095393331647974569423460489493872733834857405516372902596123236595875059145999563794982544342691261792420226547306919718594586354903872589465877459372799958431021511967288443853806314299319107669381435642769774641642101212300646995323651727399806842509597574297072269868137999495768258787467799637579053107122776186690723217354003525892292018395273514378802668639804189414766948782856804807550270822824016166888435211145238491095659609131350935413110287418386695561134281004997520634728520543971668727000706989230983507312112532388434035391149356640341302871082209291981271684074562732866280057132137773867772837226357658834211571222757085416641256938065099718637977911820545968757901310596654247561667461465853345220571728559793563590107356394734918098729863830612601091440478122878994479434748786863009597992691315723128503372701817902674900439340437759393665160524945249833058523161149009885664282382394338106598851945881036830504750761730253767965851627189635490631779205652456350830201364129243830203577525797017584924903799351350780425769224722545333392352601032415947082411353407111213450466240504387317186090047278103447585044149230903674040191971881273112088061184463954782871265997895243966900730634107920748359519994610343316630105488054572052925312979655858155234719991873392005756392593179005159249002819564196925972338308966933439858521724488371064044547051113705947453848655728990267754275469504453921751753169715217690969428626980747685612266531632461812293224379232175593333930559754538586603352988197685485289594422289655515357939197169530614575331048081585786333569060039003949944958933838223220139417708161158931389350115838229036273164520924628107697743866820303093561647075776080291071507998788509494309818205534150924249353127505554446662850983003772044003635728089182478100067638733678526631962452798611043057914321862321455426250310396988646085484909177929970877387969872686556464864229614248266186246451261125879668192802458731248069309620761268280091893653181709687940654554875545315765640623458750161604971818282163179992300675169473636019902326371420876426193395901093805713522206514938289395290596910353161817485120122866527094007371028486685462777848421826146440370618103861856840523575420985671798000890193706569126079736823164692126729679840350172895518499832883612685873194313763136298428779843919859861048405962315094502713354343580543781341987151175273987858933070431802646260106600326834408695290201519028991407787367021627293490956668170125693292212640524553684689233141150566110987877255914055121072147712878748904504042440194259495472794559939620068425587384852237754074465001031095832891627806290153799281177729501252531882293293486213239412946911381162312183447601489353770415519600910411247671977751110504921727715957718652656331411857590406568648843988612530673064577791106487914085967092939277620796707747755966908171189073673783408563943418948759778038899173174591668084868778838192372982671697570613949311153258031694479221677699048183109641674336269327055113443767668746875037192611453719710161237859961322173849622216394090749615685015786131522809456252204591719611644034145880078812118451558353189916883090336574802580358147944947276784932527780382406576540974203136246940185311432354560136653425199968742372244785414225308085483449192880262656744206635177197503297623487878101441015491838901271612029090056381239269484704733727196820168113825502101318174459106853868680324254540695233320685725499725367753234903403447154701261201789069462296792673162053034707759534951333192765208545031527814523720622982894727609455754606371598109291779035425707366799358370096387198375008968139930950292411511491909652707194293161209935906920788876234482628532822495332937226381824777122729947324270385629336386054251689445683250468906819086488224163256496929537378189414105865430337564142801948159175820858024299635871029274156503221074352943484043941347235056674210240855641168059467652378309827011800007108060643415975294566388348691956921171850058600663605798718454068972016770036583238399967218097150509459724458149241121798588434208642292409312966473238216181668014034971606284812986513287895225554305107199826392716163818080944836344246975242031059079575354204473386638377409809800980490338283224298221475114098736646646627393311702415377582657594992755968040007196755191160999777125547645086328188610836609156143329374080148105680929152526643954833970220016703986209067016901247923588781105686775913893307592587006685343172555683822227174661501940686954715088596636027224025970201760587927842786434666588269303036198671156636807547464027184159977617960815343996238862232531826040363733145385770963844376264638180190480646199864382429983526638482419952591032695467568807579043021842972894025630704430870036396051936081234029388602741245982697069007843785695463951337454529748100399024255365278720607435514563381643610710886453287572944342918703616185617889950644972631813981814829580002969129139957415237987870653137595981938184235531385671286816733740614739524971152249912508613773088060540391162169993090564719455669633071061110103445795759152665810521175623332773387533470912174212591766709032527022140369849746834012608073223595582782003196982476399545279980544895902388563709870693380394852364162203467590256934162134022708942064120718076663970479076376105681861160989289492670582787049377143363290627708649484293429777653496963155638654663426413457956349011865835520855063739329987494940121528273918997793636569296864401611164722044566123830747651802925140304034186142312406695573621559483596738689625414239672818353225407738294432835826225581468803793843646330523223794757016613733116843187883998256041559465234444909729661870097102459855831412793180697312222275819341544457656881327555011038561950724000751590175990511417304030236611972215456913115789944146477640499410819662543393527707719027346524277657165593197582892343253163185229068727330696292829116998874505366842355830630753941856732920240361986209561909558077530851220415715054103005188611613345509479125572687130049605469680719269950024653486077790817511298939286322775196507134003965138769255526325027958838264104859471780078718278192641185173209954367882449217693230894247774198083149029861075366826366539768345531513306157576939596182018426686479780397325407771889569038541525018672687570510706536600843792975480485397029745308309805844718427731484442083825956727810367071183776445995673741237426387360227512446428332047292488151887257368568367411754043524744517258267733108690831101999722115094585731132384617208043953043054414500172615386288892593959272423720366587857710629703518926352120110230552971906948190801456169979556896454953381735211169957318273740135897007965055455223214915660623786418102287506546806243795404903706230409552984905986052295966760536241815257362234362842519848425101224883152694152976214585824056198019040590909430648146829462575425181895676226367707651375356921780665102161130601475668584265488063725788591271409528866905537818077429197974554534033917893753047849688594909615188229298221539449003322173877673089622528184618575497213680408963429074212918211503453913912796401477889117440324782334814640750112850765642517476757256466925557383091287982863401636178876004193204664721553508649745851905990655843560106488034499342894537483303621215674918397759698305226281906970096337206575712338842067388486349575526892376139458842489899476981887056905360642481171404125362950395433882210401307587362299013741425418331012027697770506489934951694618183264588433950403861130781993307762524383009730849300997847343852175508603741735095314922736132251452256643921993239006444853776123578467579081706402333202500056135990182967326822674044828239578897874326170724043034971455233301896976467729792410086497712352635133124174640990815176195581849076080219391007792572140457080825311260871820785148479877359633487804967894164315815495285829141944468688407959296970663327562896226844235146950216660445647816246471615617785921586977195160956498382323015240891523055629722263071654120825722198163939155165089798991126756959573302612116532333051398884380855158410285496220376517155623482493937164004398839093038521001981579912378059908907344565979672538445495852817932251073778179401608271907610109069654463217247381861780482472018794558210113341063383414665311927612594832176269629860064582495342483177796489148231358783623727105729031778399589547510112072435619679611787220698873842760099765846217999893986998691112466062851797978368806669870062518845231019124568267086213112216977395449126867211175119461208520545235610754138203517747285028178498458669930533915184155277373362055525541829427718128916664682657574580724744640030592499132143906703714466266322575197648931151857289588577909495051303921365936315335473293376249851981259271197250304048264983313054411669688049040165191382459131090574094608558656495503008307471934339413927368284251889492418656874976169727359662105109308756124689810536438459275227584507311317061790384881681448932325692296921134945942295897523988903590681282801707642296379095143806215211964003088821021514441225251126473297091374057079194144575828774968797852767893441077767115766663782114670866703958773866644223910180093894498509065106217828904220823274723644809463577621136196010545830230122690021119705914569004577241276679156843792371576413509426970113045880469292128110172057770281204932514487600921276680707905772683772964131821798021126378531741116990487326104980444237377672311581339350736952605817910315082245588855817244731282990691611357452357885454275002387132175334344802768894070621302458048738716891469450405480680940850557269264911995759315657204956395003016807398567811644774840031391378439870853590823254406809772462771436617717673674132975534847070741753491424185008734676092804801646274853027009847282506435201118535375618812597265382596158786850597890895285299714364396822152542419450257603874532633542525631562193388680100139334709152126414567766607790682333842069566882317543789256289186027904835128715115640362909297077073672525383286248421241344515974485500830715552447844715000967300872718224754916057160635415467167910148031674407737916549732721101362146762743387998006957443136513994345632158318370765815013325844345480506706827748691885304720671489192371229054073807782777109693193700908533065060416960795739007617321205687081248466950091074488116894025588608111038026410627458786330458174789242398494780329838465629357971498080302955444326154867341809621457501340213776011653964261631965333327443459715886535611757424880409446472923485176251504092393646140926892771915075294830677909732189133213811778338504280885716376847878091608316459319556008684984902410559950784094090734797736146350141109234781417306537784024235290805067422257897529664292526168481678809536276275615758332021663444341249545244206950838277575622723456508324674490191287929207817773098682339988377744317263216927130311807265013003347650857865123642513417163993427145618503373450261960023542552009931208105741980677688139927540182823720258365446026657053569960955979314148740003347484989654292981175012075613635184928862525688319422371382667761630814763099421882595754193188926701648680024835040083121644545421826698974986497138550388749083402115160002538888835169455394971927457291295452046833578332223669056632904295844304508906390510254684421790252588174758121109537529139997321556839904280334498234905574728408896441333749597387947563305077966777919328140303662261337185458719037495171315393932552885254387025088875404911373380132720465556922948744574444436157547727499239917257589016854359842738631392219458233538232406161761109099250612445387192672408692317093152799539268696325354717060844421822434731186920884949273712484154484938986741678007935335520352890825367766807901667698928650198593515732977231506728116085915579561898938167435197745556922778833795010311393280710670000183367509747607795308513242885711448010901620478584776469727492238774425071102203308055946349922281781543824134099262827764866527674589361553057214455474485594660132155409187966182670521777826572058343464135467716514934638750698341324582894302379387695735212820909221210904172802800005155828640596922397744098677241510512499597385099786646484293190419948909839802666927490127586275078774373614098575918534116394931237460631048895530789935814701509354264573327935120723290123010402662430792663299182916566628630425459257929105588751523120617785818129114830251701554238499448640938621374474773234933135644106919946988376009120647299858913957047324582949462641908963543425925379683925689433381588078882196290068083239900237052521385667827796739093607710686410149969998877859766559202232119932251854175154458815705513111032678800301267205488001524966925425868441078401115616691409728768226923531911371829569779194571002984187118594759318863770696340318006078052810807414582128893198234636149459475207367105752712947388153620740707009058605631283706168744618664835264865438830658769277615491173321703043920661315131897114224425392704784673360011002459698554363645015888309412351122185960568597650471490598491628953791377956043960816503152564202785157779387841265976118949598375412626393067974153493366295080597806024301568309669471333867769433084729051228158700994630388662550267686326377965372581298924077699007504881890045850566128407762186956040945663463437589036677838480061815110755933551373701300163214205737258971373695004358762786702471407908987382972947506309040680213583085544160685159644589621440837232177682141027185234787885909081166981745786297487498153075079495160555443893907113722003115746999441327115768878480956462042827423494898203565926748497225925931025630313025485476315289078557244683702741982120086309224085035722983214706247932172177028085498667513508696512841122677327950332267357474486915297791899531256194243203323535855013214737354168515086434360920234947295385912558825061235327814495340523261747271985687608610787537480209899582162435464995231197343970939074680017949091653162010981659416964179222570301731895795631637592574552496388530391882171579459334784276054300272705458774782127099343684394494884780899115853054715552599144601676115525968313700710195258037666817687904790567264812929380232721801729802665758718689129910265789032438132603726073619545667075976727690380008896782771745120809132475444833667054915692195751731346270208657354532540038756753733625254408250010987801768892148751205067382849847815887180934887276279137096725237874254808015550999756020710212688491664293817859001485749176509850716126009821352710539510299313185839289319033176942231548736255092994976159040073275475855870953649997414075334435136157376975538686232023727515862207698121363884901707490031347881566542937677072274901357397949526504213324080480103510405877658209236010085831585027985604346623104500553385238003700567088974042842236192023035074592480290561109230905500912477328691485968105565918695124464591836767532732329693726010693742948610171543814888322348623009678834972292326061799222349331698574871376128038026347759906345380237820711802729740903389139101195533041029642814025855042906505338429635137242952038379821822625738463527447819405439018025779810274523383425552625523808486782268918744487724289649128946978241999354289767987454043391920810069264549667137016413896974511221626644430492579061881147864613832352652883819740942261690309923004812886844632671529189068931421550357859462483249162456966905313208109049951612595107953110763498057059568444604100888084473524998418585853932051754887926343995772873356775658426832211410489568472698115982868464827754201790360500346825479398554273908378958258764588419031626353433626189547231788089779576738064976178225672483095964523061890479853118903008650283738812205451055592522163515050110545515467526499503333652628590787589907583093382249253742950189466402178373229461331879890036630371392967099630723621432805510615182780956675614912352409033752870142631188861940109413151685619647050681159987506497232400993152820527630100786649894605310634135949558986045694050341646528422782644650552692642229580526503706078161010851070249630367142302679409704564717778815513313509120189455549946847105232230216447857266281720263299550477852521611139290148444860441067551606156223689554507137100861796382858427744521600375569188685585899535054210160557685921863357708800584365580674446871315560903324237885820228067234793688475128585261949450126776025211972834027916936237301455105613693794519930829972460006198774452033874329435387836776048302249567075683158611892563617656995882348269695968668378623934636316793641412454974539755472927139880705133451736065602838061388343444035989709256294500706509763294423021367866165333041813820533405271726484731938752235175364852274585327310245307321444966226226406477137994059470591621715613496095418492497114839277340198494116035862671917099860545729703189915232552796503267943720327258985565533633251409687933071400929952222177506362228628419819766680596111103651231712938645889868431407026549171148493152575931227624652100093022687808838076183021853196101750527615830598145703575266240226233263224184608578848913956139249037423492592852158978945147917592995999814999128621145822423532332879252887492294077252682000480227073253879066139361753046786477346200237148335541581775753984840643200517609443121896446030933698116865310553438430920471856473872370678068892774097423023627946542226385772209319069555094859145492820678735370607290838011057426545604161685682079692093290991682616120750668078353722561747823750464565995658101617807727283026769849269698599237193371318939172898498337622565705488483566501871009462406426894181980839279762730616264017027388291240753345007104581703197432090886844990475803644032571177716877374415521886607165265044833273072998886660311991269220403326699178173342066228053121327462514068029787935566896002653366814846260371669128222715611850049551525031782191158972716309205828303152464801077748133652768768881506738598219401429363862009262298469513918854968636159766889650129391954099395585115415897975575135291079781335587117114832294835465509639754993558168359140462188847366470727626189653364439486835813570233876644549062437051842881621674920626099396160287840468627683512928521121170729342063355064477276896629853654438865147579142278432999528558695085455499984458154499831933488826044731832752910187387537156095742319225343348128371522003457496563105472928724555490464746975779572435947719824525353079257551593161697826021307691372102996691162907104466248570776784296934987441427933363458730320200227989257529855739101962335836894386931756126596267022263507966267535106128466707374468803375886914761381090431647905534669394127061235912167406679777554689364444932755465545747338771157880275280793579365872840277363799214811182735708455683106904320211895310268630172663067359077295733546501720559082124230562068847492948689877065555317577892879936314879543318220500482135399217536007855030367486831194186346270129824529255686460630243169488360491563274232281983458903159016803360473251556204255779869635172425247480811245488608690402029557185158885110379908762386752557897654106266850894412940141737656784258632221010952958601514997885089861810107240417252309056342872006518518386399614766682588098918027969673190095231162329426955218226444790684743274764030693410517619440819663338914178887893555947777143516000719469134381819202235948692921209694255365132164234624692681484151527681192895743619971455377568287407555932054548006619863196437561134663247677949850697252759833040413205883824937114742993394404784827518522766838771034021828018274094594515436386368161826201199389534887205328046069453138908737664319779001116395725579105240469455166585027924313140176177184373996238011642346292555752825997469685478896913105150703539622465141301148292242108236971259418252911773232844239021291036250585951268793084233849661402027329764979850922491562990071592716865875017833464865425638189953514252965319436253483725284128353164601505049686871250403821491106907805230080267215000239420759477325499172934541465182596612000754364850669403814398859930484221156449532937147536167734341946729488163890370408466992016594701562904131371345103554611032328970873696614251080951435831298005173877028316317460923947310050092537300537723369676067899031494902863838830467846765242499991946762755248530762133889771654786215863721286762237350968681410766945762273159054144683060101531444450636553767886161957493032826550928583847285910307381123565827030416428983768552907083989682699081909400890294747318327346820780398170227073124944070616440764146109394473410722436294595955491417962114495972426474869123950901135723074633046884930744928794526642071072894518268394365941310745300834959821549649646938594269043557171876856242324189538892276416416661375909393905637809177793102702624977350812312839822340347011780014620898765643780656578193200500448859104831215078400682516288326695265002053608075671470896627167134179232870779015684546887501240108484633848267794778017339274469595952613638879355244843030094889611411988401070524784065546488046549687577475587891063459182828755643131421476646767784767603984203772238607110882657433462941065711548998183466502065362205705458450016881450667823648998285970289453041188985734809667161246940984946061199014797943173662955718973667722630838737046829346278678023795920158751537462149401746965359098154465218193958272098321462797979509527185789290062314781725069632794852403989889392607809065743053387889962446797820402439486011808978336778390662318750869342435088625184831612204005926653975636682592714731662877747949509185037186733726318738120585568719569517173746818800269780142932058245267835081984018049540843595759541419257229253694649671837304187428025288342457825485650784024588618142625690647817331729114396021295674002013106104301191933224390694456362053758669027310607007643084481285453272948954085962800479451224184761948905466567386314550349734790749361843292566939056463679189424732022475184290767596357165243994984678920578521869685856653561088490692070014099374530347178474217709201091993212738121501657329665841949655815453074432992184309247674210957562850281578825615960507778546956947155878194737815073271796708464414452644161021242477557110044438651613096219943518866686291128136198032716877735235414841374314280076610847453635681495932838918833397191363593167886293568248088103279732207635101490555117478991902290857781787653315737761307421391083301215094850520608263808079055982093181440812313537341999936520001084691077670912418030051680753677832240486743635130358151876026644914164252196959086251302801443331507147374804876959105895398539183048819268439300955435184981046484413027318267440941107753209095877789205379794823758865286624318276759138564060407347247153995165718379647567696474489838147927322649881951726404792669062872704140768131910910253390933347769374664322721818998422632980106559913711292001958940973590221046184363886354377606894986210021250336439320472582376417119420099630715135113482991938769481888581697571747715044728984259497153649317045553767513698944676125109788972607047066456633590571456826889284561338113376249479326673314515931118031876948781578013990878421214989182390491903864078011567909219877039565698190551244244279152868100050294396873826175983016688911515123177761280786672708596067957237595179921149396603186137162501822653646083213717407430697706904041475839140792404033230930175335242102128483236303234800963927041559614301686660479819812329657692176541625702090260677669828731749466975288461882071837960600327367382381291391545120635135736065697938660064128658578912588013308529159380517464364003243554528138891790706038333403844576889065401825909954732134604443529351780215070569126984651184693924499415684285874083166667996976305098551563230596202379232700476089317906337022726537427747244142992744435589645487979527879056822208775538821998468985510626028525608438028187065936724554754472591335707212873499820474515548677867833209938884277289808265093706248253956892213783355594516902798860845587517436916956266023267812767180531362049059315459592194584531975219262541989225291133415115042808589046747534296156247939394118934518577530323979484126128359016514525843730599435367921765064390654035436554066867736469267078511446006528735001003376068557588488225768590949904962129289817984884225135719265610607958465998181370834547645051730495955719173687228633487325576487360610251906470561950487280689909523514080366845911570012853863114556509712465001865744505931911008581860138882962799876786668562771308024220595373632986064840922586869792401781998813809341788672448531543506789981853052499021795959881731433355354415042273904442007352510658715580829509501827274052857408508920354855020871538412091751895483736584376294851653756101562360761364886887569262106565905396170830850586223869478733787240280251815169681302076216093088191547328757233100371123874713036703482385713400962738403100115989533212077076746694956107800452632123691884337736359104957327321662615478361067908311792810283307511281157810051002132269010499143395934616967009227942148494575927647538706977125505458852071069488052906635702226901888089458766063005215867255267649410751022875566292610900489353574486530510315790421533728738479983284295748840426621576311081379521830035660807915095938313162906506896175504294285949445095906931750631094981545773196050610757007788979901393484436204855603203180685525472101160265904494694787214388315808006873677729217525214131320589463662426950472846223103431752252005498817360017283642770152814804829433289976716295428446176772855094252294392565875210775143040446950866056424061592346675420001633840296640308576935686260509655688102586038105057910774017710801833681749428629718416891511128717113458950325667147007474497396047737738952709038326261159544038598440454118848117077769326286777083066656438911430022258332538427007216275473326473197404705938913242390563303395189766028342262942221795588811087225920731113649476849214690395981489862629242246291691308977644720916489654958549093802745807040137004952947852029478425036495389044046717000590551324988707556114322750736749220823064753257145614820103081360211520782361407793478445721546359607280499351317528787055097093307203635737609629447757024883294657512107789445073316125377133779014818180689519135419382135190003473376759557334277206504676770231510476662298337677414335998904078421932034241445315144467807432005441430905389408181046425444730152213950199085677899601036434929735561935700615672905202667097364023718620848028444294995727972862913526179812955009141774317377348829643444290405833024798540296940755179917792495158029206719766801526607409981225376493219674176640261704005160910619298819598618843370003537886166571383422109108567743047704830873221562078898829303054624842490584202673580134363939456522943598745566310887349064964753210520744704474595355178401417965237766453592397907660160891728794878799123658982389183744786254261272423486434863151867208761993693920945709804741895570299660602901296152677660342904761214301800123914190402128209218892622089304205384572219204537416753354205588483641830789891295540984702502676295061140029022927400180756037884810184705104967866155250753840133692117984151514670065390274209476572746902471827553673289591655847974725615458946933851065741400981600885689233178942438309576879453342710703493907240577507405994460706927412770475664789764008258090986022420559707209161685883711212458965105987962607194680706770392917815622190404204857614173126268909367789951459984481154691991430445956652230848306074925747258595011420108413233742933413192178353372918365173657793313796362457045072298549956989579151322585780573999024619201066191795383558480240408863339114979864760019057179046677771778871837791344013036543324757151649848353342273001066979950403433636566223233934048586789533536323202583972541285591021791919489747495710202331455815931424417456590327005191574746321463581124126245316544311260812041318324856800455530977391818085730860390897537596182776406262702327576411670025054944657991921121363804712947537130941538639648465770268427425946800292365035136658227832360207031480020352204062964118565334128259354836835303439655000348922068328918510948126666631971177919818091265475661125939956717352786513277809735311307500124508158801054312167360630242396745559740516329415442062521337248107731664676806370190498584945328958971361301985132498777912161126028038559253092616008416796361869803875197847906278183370179266970398909194107120615966590669266033568287904640034412194315229005064913211085713988833385166373943779994133291388742730679948820584987489436548594412309139338711087761528553247073927400040143556203951472575865919553623752234537965057836817101369801267834373820568092289183060858564575404986233459233445256408162501813848780661615581444274606757906714547581027638032864061976766884217927220343805751238536198467476043680680399496590045714137634740296779695761560887556508527602174219378589786988988364079974864879770753787124780265856428605790249850118165422515315051742280700458013851067289209985503336208444317702999648230477700107993562690879954479169088744107525850604461815195226757079874715604244350769807021699038734837765596090034498651117287507814801506466853095976384884725231252478389169265916831982410083203231006711312469441460366255231527177565022465489407384628946064699499093050293769683374448217637641202780850831579279383299779482452514631252972204209385112609373990961049581310504448908644962479880541749497842923130005844967653975734467958001657559266318397386426377061287904209959978520733142985511074172703321080385558458108779034734449357960935159022299481425630401097480523223389670783893192400058102932915855453690749017979825557162936254731513234948503917763691782045095967071185913641512911599108929482434132113830056145101335874316712804313569618956788874785596582726586938540109655298269289439393923838222535908937726244138179631273472265242728732511241940640496180808792588802345066495099812527645071928226261831315052352830919719767834731027120974826315056697584785626294142614061183899033037380365235303050716447715020192776666945597163652886986621034946407154005335259928908386614353012108846581923056838868252370349847368226528562359287759109190177150438157695635990069585751606109577801775544239833997617230078987615851770849663510024411914447768296732835601881622534137087377887954174827554624344330302177952720234905121736683272041009832424096785039998712741239604095391953215274538882105219735371341754881006616368509787416778362652622691762061816771233520420358368050001140515040011955159886787323290335907861886237301873991663841213529895623910039537778437415539180320370168787508234843451409000565479380850158910676288923230231688757393750414068418252605392522750208071393909333936121001493861305115858319481711707482405763347577295936062028463390964352367924403168733205393224877311983260151930481323075321906901633263534283358970048283680938264318266500348469368221956565059628137466196004966464745797348986074267929976670969026606848440172781799020868532665243091278165962356861621894849312826693896219174429616549547776236009505741135008717429446641944521306950468484695868470631663295205652117265213738224141021359495559699712485844130774798757285484463686342205605773951179326478485433554933288711352386831246139493089403644000132291865439109233205498089673678036816574667213942699711384032118605259131321134237267627087224430134616294883049044135678648221501102516171320283944131453786610072548764887078310057737026692060975374695017731476471364801557934920302706867569957627735034030300286676442993422968418933725564596287905931721467360825269773503911501795869593924175604487129118667319571917233632770326785831368995748697766017218381771029817427893391945495402457060862113387559237607227905432661690659372585909314432249793071859020028423380180800182531490687803598105709043089378151778256472890748132586783548376725558803506489696175284743440598551973862239220799464275226090825126528578229842136541199755396797091681481052437248533913370980514412119633160666242951650021074812633015721029537852953620899430196632537254587829309624079291891630454470560200182415820820104629990161539119114130620235121267179151374261051479842958104321469005339712273250738766145321581986331851787274504883535903575410446815120716940942062731689784816808727524762101172130172620837039060141573554733285362955961625244197816843924423381727191371089913458366977688541120388693227228878235214888334647132144679250446271408241208663049481483750737775876124413196503360424495013167323311070392524036915618345981764801062938685667850032934337049598239821370981656660973325969116917110173484640872059614594698686973356462873826528830317432750025129392688688214518838458470223953183526238598616009525066671433592567459528113370569501458650255188839460751351827513165874495997793443583539114242711051676499552797247579358418656447050309652089478367682784545067902123820113358779206851195931841465443242815175237482523402969138251001533892760789072594580141395891414391489015872563455493105636903561846418456078156607790325924134403269775917108148179831553967268537037482532691008913815477513712278989853960161187814903743825043988539410469230209288996347566777286070774247277782642038564020769045730845340963140976121166438298245279654749471006923246689584964594135440235449585300421991511734216988972807000423579927284776833054643051375564204283690266978220736496452705414299937747945478841333565572955544562441138065196853017811743849210703418457940138659804459971254058853775616273261394198942890810765368996443139043340391103869747300602850174917586698239249274521011710892294151554239296254995276720838561122727150837436515528908873239186128090059928251693956871670087589430561998182609308901792578616842189672502323475795920882219634415382864997148675965182248288861108840414451862140457085775655429715607686898871932121607773614399730362187661191389698829925830250406423800767646859705292940356597256143453783627106204526077110171419058738181575547907640669491511036418510534808580769507050068324808478045053865082359289708163303639348191782226566781503558544920442757525656306128547131641076900406638792137165045727852353487457411896037188114830774521078786534723577646821474528714676565020189560570104090222151771866885489774668799021899072290607639604773506244404132847480945456490093726012978418121734702279937487112918965510475589661337910399976664880724686312280075516957797074913532069275075435632758313915397329566783963222460709970404289402108699246207964105787370243221996496487680138809403171201453076519398804501096654843729991419491447710633825970678038816757392322011390725581052885685773773078935107180376831468350001461252764307511422890453681906467609007776752654833579849847568033389782343861568221772946854720321594654214183672631365210484519486068157902550003494931147125301967581160434298401656538550285661264556044585010564363293763873286903005984108089736780678634574650209988467505019982796985568732868151724629432891566461333292958171439460298747406367887180066370265907001225366198138220389429096610408473791878687437857218333127141461878859753594944835216242219580804734548277739463521095633140915376099972403170228961237551649907314376781847071248243137757040519475800391881550371357217331379600242364780144606556720947961669971500261572519904910757677378022624199928686296013855692082668376293046243514791765526348352772542656433221152757060636366299200707130884591610411130765656521552954906160617955812512666655459087391159620712172619975859088267086182538840027111934222574583237129401498328812998068574988415716190939016515286885775076045023422775803120206003957296091338060806771497616438561087347790919320384707495738213466355620095828504985537287218324560565172307906023135012730731640741963082018250251437270927321706328251148376100308913096447404361739570047683708119837280241154164366426084654597665230117824500225550878009812891146932924701092949172177363127780028125700097618384158184732391330790858122074601325149134379041225655964764889525285439123080222094975509905236814012731744735284879291405811243070871256871747034750715755796615164061668727808526636071216509212236638770183148459652900867605727405240400204391018973234030992837659695192145397390865900942646379666593098752852824371725190301184253256402520486737870843735750492187494683011025245066271497461094841092690364828163443496615935482830723616331683350190041896736762006025652172036009074385706849294445934823725807819854293608300169670410660545420983010753717170736407743006881529457382621474619606288096925723117500170151967865784650387448524124914610215313288518339261396433156949412952468287709946245031534442492237741984222332511713494740658110043897642717294211744876557415326768891753036689311092185172922538809832682351009018306056573814912649799987041008167961374874002845083050973003297291606098688370059759837165211417831553281403885978585631177999995722126394341718019796133636693215424117863295959000859747502519424411706263462859276325541548277154653262601504610697292314565305407275103750707766460095710877663659361602551738310622589112293204020716795996946502717312966633064443280246244760444677201508204940331501582031333493611905455635198070839637046630560329150658498071601205134632391742867151585916067193236668289921153964189466659876080797661535179940972937182335713388679451873659669203761765067103586262532762036565497129853307863017098872266397158750495211743806226675820122137039187258140028156006122342208830864492824137529942121038379408302284332237926244509880649188205542011618374584910322375697592486642017327527561078455128816418249747602409514302944554220586342497887810658713115928248029591225845472348549689341319906241986276243033981723423968288880018149729053240823555824787100973826755401115344952056582251358304205641249474181919170689787993227792480861213150846175637964221144863520460800085567954621181150939727321081767308639117463230130589013626798628628375302613917822079348005982701356245532658459469482003746826341168025573531012409672076889238223164325263423880494291145879394879292180973511486651679647481772148934666010428929372478993641922530993817400176966160539536258091201858694110669802820841354216589676253110563863601820946864491167376236793774652447777754294678225178454950087119801650712590792216812116546695601914870803779893993203044716809406793378300449690868155113052833766573282922627516812824025987656195822765865971041554072954607865570963243326696669275491220345715085498526674359355522978743424686124509326348338551815231337701479485738058337200486988383673816938468513840488025524266304137205237835213919577203941635222824589122658541716795484209696779027550653471822726294593975009091008071937617792697404967229228148721989830817628874467397411862130110891123483743835994613993295316049833889463689406592231389498754233277700578715928396208473556961990349629231001972398951437837910166862158432521575606348702438979413308322949674615911115561391820045563181999181193848286692247222848266153271688533821344158844977991108268595205115072921998579041914232910754368168340059857320357877703785963211292396878321644866478295575183130850110207111561765807501812276479102763339786792151066511226334776181675713716819766063829376107049450871487205326836143404936796558887062999846840277773018069509883009713463114522667818124578528262608533652557832909809323411697333549289865870312373290476899875347632574119125512957864092123305965415417143919004789842109056536818230651200389727884117291941541351214745476494444840644426970636543112583280368100368738142748434182749631484234821561058530834605881466462789438961117909794309869257136189155180670729883735012161132662204905116986708870337556703073034291302190348193449782987576907658806916248663745162126741930816241068659828157437481707765225943971719904669496945956882547872064198270506942264706420112701099082851271299144960966070878722979156496133769468689952725146513670808881938018467578677509717123295035873864425311322507717535511237740888907414975321427114229116041399659924342035286773266434114053898853999510078758952417060546140246153355530607777245226634383545252783054667393934499366944511931151949650205281107530293426449968450101479320028730512226317671270658083842214953962919722553505173178270124310160601912894129149139763654009199822780113140842148381222458727525407437075946793603172035454375197614628512066109733928435357733607764426893735588298209826868756360099245262763762926057955850799657593970984130332379526858122106875918848262139255890402463865440959711930346828580059920149895947425827353247566562978751236421551713809721037521530615123827251082832996291093126368657467224955826449021258902333453296309113115257112408585243635408879788039570081027787096259431759232324739580639122086591946182051216694316023038165481089510535437448986482159327691798484165753856515117925421614619103993984632568719335029512314437373496866625747922302172152662305274046404791157416861737917291483166828382422366204268527360090017089923023496783916995509383912329042304938859265874530633970006048857875023804374113596962908555405254991062467575589068703617875063409768353946661039614224523109544367970338913223738080845550851622017661295434049422448863331927742303698814572079768138009031370264438460741517434339564144816189755683817241147074729591724068345747837756170689902166499293487589811357426738514160338913057894018083615716612567213317341080928262524458420618936083593551394924244363393996275528700090672946081865533551847691242551500416574601640692052030257837386249089512171225192551571324360702114422438983983508157535830262096405021692529422888554086060037107435068707301280529847330951301019553533650166294625371265522162413045736247903277968339048694216642027333711282266318490339029885059938579750787709096609892511725740163912900599262956565639975305685650835726391750459153195470142664223200017744198647460360994006861899382236385229680264265181692145228480234010912532413886410796143920724963991811379603288863570738215388933263090354051744081155980975272810728498525950841643678309544731893097740599376811481687963640818925389788162613577932981853043902506727878463490908653236012230333755793261953175412431663803066494348515077490472641488379457483938978621853930482925923010182620578529625486964265119688375144978770130662426460074509215052647138417725453990402556011633419940766123890675958246301704519840045979230658347027704557256174762535849299501519255358632187418831340090896606800654631942307791526868734801439195492554966345218336493663946086425236382530027743675595403282148120046695311062829356563260819057748015555572772629074043162180851423349514447903869726358520064760737254621542602953467298422157859014699683033531316578547638203216174449179310325754438629098505323499387031835403909064145892436532815768259848037659370896318814768989883874362935065073142827709490921581432103459970460478232145202610838534528330184355197093429773781699936742191670448921792954524554125963890649841303403508666648698747073865010950904397136281630889330245399951708091128918374955813634477298245227787210362193269226721430429380807072842480427742758910080783701066226689419224821347389306700955400382768696025038360926005617948398942418949700642936380748885207773099045234021697621631892401738948587808040459821412174461218254691948314916260672405944651175866706666614927947680854882147605507238528161782328510951898358011424358933233595466595818369170502530224807819462739674846592730001623189493489361801388700027122749511845491949902078769948568016406940985494794488125402498085070614824866020642499953134488355854891858245905114122531732516550996722441616443660907893590732208344699048430966959349196266987372716773573255047350874254236553943474327454965877403027746552949592346526554176201306093132544799458584936624013822089524408584815011227361378342966181104394533348626205566787924432374605959432321216576170696851391090894126577828436522176712929675092697362048301684443134693690013780320382207515221345046908385530012269496108601831388411226173248501496358144656661306549117670620429814088056216163559183861109440474696934093426035509700879852905372260199171759320880930985796460465303849351567292476897141552217638748136876201167543662206612652096576400173298764759583696322771990562932616584554422015703843768231900486691192590401414750654574447252512734287951851993206571217782978110424682344632543349284200543484172247819513306638889041990716451062633173488087622892712542638860154816576916203354284381905574552819873830334629496737745139215246077446341389046901655974921394949760238901744063973788792956074110511180208087205694889233944561788412522398395682298169960757178621457092394485249603438978670970726507166942631223573240825386948027705783909322480021717761033415785683474305332314796580342531647168932947961520085387883861134469378659006093721041876894005764129558410078426977417617942679811189791743692664997924462409583065241288743844141750551177218481930865637739629818194581325163753305605652025749352103261680819960388928936993900801276844160343512475352589349239342749328169919168710899984821281403158806218509496528532756079873792418649689645573379818791988029977245748189092314237399551377742235211174573806803556220042605098389309996300238173331125750807599891678833260664823245991991832707794719299244699488444295182471061364719033514953843862045643429812029620879333770943066624695818022985962187335847896539336925137660509851760637448678181416591853021599677538471605483442442498965681164685570240093023384162410614137711077935768373657502714657221147677412184321215116194478439855149051330199602291047802291169777177261132534446127374232959826693542008626415108948434429211557609799443701940153188380520556566350040209166974522377603784658147529612104370869367444076829486076193370923166926223172207928630727583166135021689937845362326090268961236663836716680976700975216522083373277978920839857895489587722068377465495022615133463114276221613042076491973877073631305132505834557417429450864190402429217270659927130922816241105569448393941563740068396849953348169616083612472108562212292657813086084429416671467732628597246807071324218565277643101524699204498613148060545741121302980316287807697014703990209022640427208928509722161036718385975065928663260467786678465050017375155239811834179743968574324999353803013511868514030651952186141176835575950213546748697796447572645114651206672747570023557220159505855306641808868489297373937424222668394871817099377381035823764612752238678798163314688478494860403019963258576691533799568285960607027350011807648560757847603303438602031677738261751317616749706962987134531707176317468589876223367262610337609341387643632113970910062393887042403985187496489618825608083824804302736180911200133699535275312471503601528623542908365622837074583751901806481162148814870770827556630949882519039449441853930708597561358710390220195865025276792774492023502256259490528031582842185153121154176224921613960871628916554947839838075032127442833663697684396863747438683073852253799667235091624904590918283523934712160684759352077894994866541053103490610030512328891054245113870416424736224110408891375345071895221492655264196045503096159107553774728271260916322306260226255523095548497030188318497511420638456181070481019496981386916065080647588006668911498986497324256059891060731365845869958852963134844489729308444761372519690825471683701454258378683807336629230211705350276015750750297597939206842616089252118359750648313000363155899905583041215873474498838333233642965846450589015545832664229014973156775139497787119617971218587279086811912977799605877857121189183033710610632037288615441937522787650273938271453309424303688105127938860604229200858627190819628648898146593625532961011706462338555324068985617808780862480550691114995939870324605567123733047035435092699705187051879025555832713802783204125986680649280093692728889579235207644485162830140661231296709526774520555863148565875769654808142332735114800077933993461596301923984498425186937546179773361677069512036481011789020896784410002178149174896381308887573294315286673620756411963328705147727151675509255526442420829832487060203206937914940893248520901772203095388105739603974479057714861685993353114812406616144764129317969860255090935031254063221154452447931499695364505623322375597000931850647744415590581140760613247125206752317541452384068849037181672656008841290412069309808990158774721392209100318102137680412928993179077717951173420036895275190909651193652754425584528239276056117931024582669608873554397787081146111194993688987207476686178097911664521254846715079454968527644236773162164052797751521107363175660142006294021843306812143047447726748513987160982946942700211807523902084100937984827102579582111170157698642528541645825377100795262865509682010387869088329356520831504206333688570062253663071504723310708544397345606252861280176455294606507268048705680796747130892477076046500677729830094124804900432682537547576117347789094289059680574492781443244080830553970349825255647615138473648548290706028528636259905091206617805153669200080609235560766516270973717467078081099363694489336519487181121920024831493475013040401253092614293361589575910779552697689804309134312244438247779350451524990070083031612034323277198548368134285388200957603421492136338514537380759074853497086405171165820208748823175099271659849967197295987805996027036384918881023391326730487854729341695315034389559942002501147457883506151705270015332279249368081528492758058895268125086792157753849747919354911624681531282358072579390284547410210451311459016702595520422539298643231261451863590056483832655094195199713577374082205985443659377720557424545976319673375758856988513560528751088891010454663041275453982266109777735006978666624811824373450605159021781278155200362854742829572611988563535214762774180318358405516141630083194093670826466905921601590203718417951428558916248627196617742412766818613707559100606179672246874339868584998088676637683747811482852996635481370973155386415377590928821854953944066633144172692625193550541485281918035578471076681279448681466130883498293491443833993372011045979856003976469358657140249127002443801761825667575144937728176765610893079498243549116928716816669302256389664350786955161741561903276432841815731921347233950317999854857011240833778915951391440779157372276959886116390377974730906465630232484840741768769624044363218290821519660802753601058076553119686199242644873506065497509534099813037950425101719596299589407930633028677810439035538556529235767272555091249166328588537598376849995829319738137558834526757548651176439258290602418937572195993103808924951387913471467914217538254644995921362575569717911992308183901442569422162901820165103129252720276931518050338610690699679446780625422826508209346455290759196129560082265898138941686113434729632783784504783268850169656629556345862405941430221420795057012777305344424034953190064330972262015410680080002885116527447774051112786158852301959981652916783250950676294946770885896613752280482384876242460536754697888183342232154919463259073643428758063445768520730787915721098016478523657029458267487241560610050168885803245672708915846814387338397038943534744534373522841134928052808218589665428738487619529460121206453447279308402581728462393900434759299541267281118546658806956518891026115157917134816642674181478655592760842424905178419135230667323399553785654545310753489990079146480756071985407093034335309892151969198364490300975673143598917712242564236003450113980537468784539687452180784781179328409947055400655655724946000496277544327159837256685588821995765193114065085780915274647241757176305599641364138212516184211339052558742509371564215635690443182761581470870906392644680607944595222701483967563306045304010931263302080182506959639005738803169764791459829844306891892978455775162971926375560581712960229473451406351550749361405889000326467108306786624007714692155910958600728873856562017581483035151190678161063140474559907076287540991098933780879627997599519100660501449914079148314694529143747202605778234924333110331792014936283612410553060301152134385818756469404179438201134422880690891964582446484133235183021696870350684456968921120826587432376944257094836544432323210222603432780995104517338061572501953672955630561702390878033402897090229214865221884054459624925242449023368408580610607371090762163370318431072683522488973461974279356404183174816873678461292061855602425884043612626060095743710248824419909602906602010176178139847265835736514875789997279405737416048448474190714959250805736883422512034627858492851813257709808117666491659809554510589688264371423033982419061922288941251923400838602446134908890765875506885050325887398494420033093787472465087675793301264378322940518236476423124941799766645300161522722848817374107979569736614169747268654896477163265720006210472430556739100115218749720934263994591501675867199014376541423863835652471932953370367928431065154997793710983977806269292191499200530558442813727185792160152141532709883445095803049159742997012433942119366215413157815400117490144752072120757668078247103771603668133399058726524554607864237676532787290292241489636182271200303479021770670631358023436945472475357956763755258271789871716645222602475134667271494509303537173867111749040260443534553403302242590537522476205350532720115113123708384332466848381341558992992687997699322439741990329246295739452850339167831105956085458127444948910031638623511223467899793104586595802888195697604359117322715504983181381557748898609495664436550762672263395575500348904945698031802256571560894687880988487649948541065165121092198557358532131549139826898536368709075096951442372079343725180315629246628383948207289537991313889176798009254035342657458726569671577149279469834782982056978091905525883733510210197834896750729895883578627683569056544236643714323614925898549784430437123716500333743412429081647810322665868634655806592834898229134748498294534864555395943477402540071609382556598621122978120286734544194847664419191537572492482496700644619333474645883199222773025008375258610120929169650567499661228081336847555650380344822595689371686840371390384073204238399166765199418096567014937814992895264493641008348523617870334116207940430029056404960192812357566083935398722332627359854746965169225793847672588954566535072910048183728958610634954682756250176105453754481765649470990020233794845147066213519086394609739572374639379283097624784467938858752812640978707198024658852978829728145540652517774018386474348666007782478754362797454666709998459262838850638962247338446874171986001378240231876315496149846167570336168190338430706299891770650761189084917244872886702061866155472404270641330740628314764864760861206401556012935723735741676270576523245865426172513613225768318524490575016452735522835656187010591390900553011927795289723507784771437641405770301717291946953617817512873329607409316209516689693167957803405489758568967190772387336862891001408086045612563045323902361355792330815961878839198836946691118505549660096236549514947764489871903818693382919794986369663811709086817713744661981484215483099964967833360308146582990250427119521132273707098607890721936451364899869534870693665655401721161745979418975466625356229093845184242704933825092482690688497201161544815133893620357283149978774896429446226883478836156578545730920602980162536996834697718415234617775802107123646880904481029949130696151049088612373934195094316543886757483598618432131915724263966785645495143323127470585160035735374474766001200389383622070171759121837567716031202383238816960376831521596949627381585687297158706254174140175275215065694643665698170764377326615186657345027409040010040398205089728288001036369541349741622841791012450947468822174154001330131003797962987203351423384353142123702170124568392306739006925076908064486484043068272391905687841547379542055844943287384161851731820728122824640146731714216798858609191906172269746856289030250640300211514321581970466314386966593244244190046815352546745151472613438039860126067478025426620998123061397840059211461713988702136837168853278568805468096834238211239568544035433771063226745117949660914498111895804895159934686466133768094056735765816882259760827465946802637087497095537128739178644647721850800895930476593069564675189414731700128450356011416957672607503006476903306431949383893621616750244055322435051397199372618682508232300034389285803753108343517420412462303084748076211512254498162799361486787627055113949477958177429209138194460037479830477590293137700948287310073112128140224451971502918485640669777577073467434065499209203242051697482036637767066995139788534426054915597033183104018446325640388076979879492894212178747743033955179628591974861674491761693785329451730193261286212833660033933588647299818530836516833442149780312108921555953784727577795201804385445377209130202314704228545469514579149187322828061875249036738003357945011117988231069617005971495638034847321515698409344026607737047501083436673423712172299123056392487609146733291973698250929933906820668635320766496587478807389474914962758316340779227212200784105979153341970108213337497855552356447610948545441106663593308632040641380960315009284797406627283315332982592891167440905022675291249012182842528011367246870344265833812624429611426909775060251808053890127926104977421346622350527175190862346690007370758599344374449887644543937680154226738793327784675241317297545157127993964301012378233425404457250393136985587976766659272597143508860197427234918074735088809186273895906558807792662050531236488254455741390271144015234100099138228012377371865783305454099919870457989478944054272772678189145464061928070123185251756250910510121225289486287312856458205038042608778353692466927812614783242242479708693605213278303381609404586251427239839560202675860838741185332527441083665314935959713133535871167760814284297062004649642354826339907424067036061936829299546902166288121900276379188218612966037588259015586874628492130156747544731082764269804843052000461781410964245867915648481309613330309657809788868523390360655533746396222928505211543290659346406100514888722648400313958745596644229098029978397850664836448807554576480944224058118780822212180237992000605713149264855863891491702042905910414339537431185254440487729734463942644881715672462388067316453428923294618263598903164751082925392657580087193639898494919835765617310372550222879254071546032895426663526383765319004246192541238816233114971284017470093455343898249244959569189838223159302819512577723274521380182994072510314751239072594716792006768096011501415499872373149580177723846142829830736131785515450133878135909073459785076904513507310087053983471587424299616896326932142034853055404936346619309559838844998378198686325377774240928311049683277009498144498685680184532707750194827762349982157242850663972948110785454722902465973718524899897270673838567836483394656885930976277331594208264932675702358146851630950416951137894707834432055639778209912388322717583440305643426389167185500012707774277294952389896468179755280882985557223605437110551344149370036737877655440686491111810317681899816788503337485511752528663403526563273749234490917906030721689430111096327087936178318106534704861635598384200231049853039603504621836036874888994573176656800113414656975931739883688394407207075630113118618836611834193061967127917672898373285958787789979690197004579055571155346297629888185809204371857466379835320778768767591925788812164222509991695299339567602338750202393348650152620967302990838161256869242286002554800997960737048033142479957943196263854474001973883927356142368905592081125572536787715128049142729796682562629144244839717637033400146209523575608159107606827722170922566758447661462930233683815745746142207376526541749161595825791332004057080417640666998959057150118730500622922705166361453876922272333484952593173345594850353915639641780594640855490478389033986130383610730405006318889267907991119259376268678723910779836136467658199856883147354539955950320253133026577233357633402533958786011081848595115369263249953521996967358227621079488900997125597252206500704654753330543774908133988179447645957269354778611336050675241579758574916466944410853369566887534513211314312876986620593691706285839539738456236930864561864174096986755817250954835173029023095452020490605084335741519167708978065626230860591744237212849399381843934555292869929611551556104033766737240717041429562455203343714320890988858167348749398584538854642132607691685493976359932770021404413568692100852941986106746314948549453469254330285462384602190329989036702908582599557614447445353392747166143648925755873865337179252762215709972387898550727380906310492226456438967608867834422117268117232276206953713731317379245090171269615309232514053163767877391575790567324037389027279532782896889615979926098041613282395766410704164522463892730447600713464778075000646724439528849742932203765526963984603626579631806370006075456449332652382808077696780895212955048161434569340031440371783025158922782215026619118678720677828161630043441763728304137351614826654648236220698080677186439832486222538135755830255338105729767720831300259234678419365230786024532801027764107716249146218186193823969841251013372514942755490157159919182710195568479952392381315718767698049032100590846188756736735889324461422733205962943205993128689931086340129082638282953330190040467087781676108433460218364665804190191265528959875740664202374054309797238045803018802697468915765750538303862604221605153375150449123395952697905733561438472031378552210285783204062546768682696866164302339362508657051526048441909258662304501515325255233200799481880752812048138419898463565795230198995673584314397262275022839497085682854527137078622726942070981358898363450280411680681260885500680067881541582944548560477011071406389844388875765167695526108042481817238113432660307410886001507287121933188572158560947425208320645549162088514771276266637007991351393328140943040737532542048348946292618248340594077441599647165389829441125513000035088153223395206012090202647178335637338836693422009857135364028715106288068888403656334414098468676384616042623546372746430159186244231100258096484877976326822130751164483001075131638507166953571822647274836023442131411238278133061635215281496690571084355155041734454243280160051051645365713788584681233349242874635856984783327126279281760951138353441337443415323679166143483304304749690301090495412705733905824180420829916992206665557216005084274249393734608774118884942647782175669779568274067396997976345648015744876261339547011302997550244416171718443679377109918937357751685925220200211573730493131215159343123767644934052317059958816159959676621524122710059188870037854199511023903446128711336753718431955814836437447021799044203450892748419049285942797053668918049179471272266277275162412416330550292057068167045099533427040997281393693941358093769083907374144155157318809417190421489105296817229975607175950080347440925018682532863700444379438825084976665322224592463400410072664255697916379937528579649042582924756589168799363587519728805306853411813079917792132219371735734375297585506626854303173585274882387535568316220449044492157043076219971957478723217754845088035996001160614314574903777346563540003287642336088700407220991713904833021959508735606038834565715154542940939368137832828986566308879707912821007009166153865000535816286950258463173176834794523836486065567144453924299251378370132294615062625735423735329492247415774112064903757416319971859209658661730666808481343739286689678038041217830973519095409021182564473568411834769879644486814818592421941411391628296149262374492103760342120073755634296098221578520785351483250078365995920252839480336486796426202996033392906622857312955657492606589153615824385851621777145603449283229960609092065289049236486302046399578638919412202317267953807613629286100261614023598014331764916991808678382634269986056744023893721797791024478789923183354133642664878617006957908703388693501384728631791084981467903637096910064474406756941936349525226762376001847763406899945507245035001588085791361181198479456502705281516913461082951871867416183270361181183874084409197993780212390625571397845686689730882460182798927861248266813580698759840461645200619622009344631544142119369314009939034368842744993658869372742759933198480687379972058952270094430865851155737569574584490638935682135096568892555921435419131704469523229794184062308028336407798466512261739213877106744858388779035192616317965129597074430487772856630317509878396595290113270650620859867335241383010646186264263147822435301701742982388603360105724324439277662451402781847389865514743343946409345165564204678513845108498348474303501997095242881193879939767891999433719900593895603795444478996450476212206173180014809490501626958587765679809353211149661949145343882466209692633546195786296317972671682817707372431817155587166897735541600029937707040716755259294070425261987329731241193128950440689984632302901063619247118777511087228116995480189204537571144429087928382221945682397866607105637203932628100054448552578814379455984775644742560204154011997570928631062168003077282020702486746356357982635250627083633084903350180859600969345819805249190131771439278000574267367713755104053054861810202337189747236846312518031377036105071246709322945021449665507915753072854595504182965697930658719488303009257800193851751693179811125117569586250985456827341951526215637696636652847920478896386440349045727238548499634641319091039708032255316662236008197094331723604298084351315870731865059016169978977223304889247481772538792374484151807350963496196738398932009479940680011333803305178548309502781843782608494860980999746865746914725719538963589569940905885674931151407825904238700601077694959884556042059107896147716243570500128014931067630834113052237745208119854713565740091868569400365371867034783396258700407695132768586391272478829580579575463594941497697396980996333668521129486396922358355366519280536365685734623745896687060552192904151298130111348911269555863725718975545410672724072938879459791915736939200226185118877005198999995915527708142041078928425426728408185637803166478796189836497142129260042546255517819591208139992168652776823982766688018933294721924485486589547027687952611026973529121853446161935168997843953413139097986905127889586188430457476532771399350077700009372000150307416733163008799462931431644745702115204495400958012248576861831464543268463170959985221701289158203632886559240814721703287669232531854810452475204416846241124872326478524226547854538513707614745740059183677573195400513493237841603100867659932611775873406806241817187666743808685571495198083162924105913846614839901408779370143383087844255313807110922852468350729008737084246154596666212562450223754553956558611177442079303981803427391342023596003477276009190859645148613280566682335858039900646288163041615126611804528607999671289718140734813825593858450254245362894512262048462911458158885964760396730484011672023195643558071119748909041807845409344153832572239567815044484910244413954433232308456554335154160284737397801875080808450555157074517215477388243162104754413696228402333825843308628335438628422921264827049693298772432581486870359436967286808285927481825392765494021078038306151797075110551429404116588350899335690455345520460231383865417870226397982943944739428442922864050016724392031431389953607994043872606252695352949117301731980235575679675558794245630385923442535392691428186645815178273516587409234926196929519055664976986840597162386179914242163128255743835719916154751999998123984374695208798659992741098048452699777875805865097509731238234093784150383111638384824296151807244944337241437424038330140534158695538486536664054933106673457415379266113114438747012674707227728061562619259820816917654302844575747734693928932796706395795155436130074557392578859830229337387504584501089246827820598848907838509510435568255540042746646623792823944559527218222065542626735841059000233197105410443517667104954728952715804192219153202456317864958443524423765182180728443885463026285407506249026367083428390419894184970128709806484282135080636590913370966321054842847745337079575839411989433350445569562723801291074940201951429411058363428565741922759603171300546945551272121389931499900981166569402394188548803173154034501689188787235611738944292067355962569374150077375699132247694272948044096706786035713793291888626725387859238070105798356968533880291038288280320278512475056446820882646604105498546397799658082696017440016047471926191997690521520081412549082601729680469448451946687714237985004385172482343328648275789871033207887621055808091972564894811013971566219184407399589563975988329847487916375958646006211879833789267422247449450017953890846285382198538660651069575604048058468740299910251668096817775043431756989253326393832485975371155813519672175783503962658245951775395444094067692830905185483561777070839439585055171604438009812041943108637247549664707547688669266128727588603986940465929933890499850223162053721527360349188848163334920191712535986795427949248956983010628363234259616293144472612325594006802978501768255738064136215238461858983803068705118804269736620337169180313918518819260721973879058816694489250135186977787097113108022671483156805202274614239367087338322625813323789826027887591358486028468743407992045579026363340986683310600646557314860256220156882635931947618881310039727937233429052391765291611314723881519760897839163054004396019812900850696734841748492463442523190233681334567713415528177334577486993672803970969398731469818026753680166613219338567386789390635212374496708397822799271740605064495121462825328443705849576666753114988647311394502490674900986419247018092724284738707686843447285899629595778336496635600582688317450649124274556159923245541825809582406853333384461768190304945421344301180755864827419143493230596923526271389248268188358609470518754789498452469499488490425947754039246532440963954476033330170069569053627408259808308887170782956962216438361580344695420315658008914797479220034848559873283436319861318309467505941324515917516127441544633953573051019159816662129979327257993106981145564341782444659129891428318927399363982433131157671646612694577390285459989656101648692624967416784417925434186303689431660938475585971819679144976764077763816708540936502377915374419949608646702963423768171943555468851256589942555376806886722704130823652168654605074233473705919391283149012181936007240558524900832325821116400414014342259658519829894646619534474461929690515503928728435727648400993015517745965210241774609669599151746303287748087249922106196811013962305126989782532719316725558289746164408776441416168793146469257506884692154151961810068530502412377323931334297214437289364646982318545274142780548774497233447563574252031637732645877030699132129294867577284523779218810117152303186360689737741374671458914858884390180278976020857695806190252541265156008175416897496533054782253985703911007245752161400079920392458232983151216352240394757373148808837660460748910782371804143734240804276083744474812148935050764341395931251625292504041336499028905039212047260272272060228148179766569717773418610003144820443593212233340236600668174808272622715593234512238824945493331445823686650241478919851189117284699828069732704588638924069570246046216133072288198729509674838660963199788197711565648002274995354393330852053154020581758784661700378725073500835544432176100793737935924876438361530618038599790087611624107487323801542919182169652645195126584891095059065874825158368908308646806101455455046467072368166388277586626490360618822419859331602974358262989890548366324520240624748695949731734627917453259421457320039836501722004216794964005478717440811399081305116096336487391268833376970447768141841966326417803945150993853082110945407169923752891090846889536100636042296116711698699974416531886567204139180054917649410479049483200283131020415525311096336164204713770702997057133001254567737542062156624628151669322374840014326006457613410869160330564441105580669560766591910610383816060581383952564322885139595436940914350101157021214732231512055250992802381052031171274668824063449168189798326803531562894255742866660273390544976687127300968201368064010739597506210018926737467940993091939142536178799788795053068034719652795973397113330108787869613652506037756070698735035715260186621554963322811777877751792310825124463025606613562303237154956088734971526063193042144930424796191995757774001310931682162391527298705825920783229344428391044900624585830749510206138032846330882379631966822911129605256811028448212372760981442804120451337605661201626095524411340733733278358523582674437888443096679921902690479968195421298418740257999263492302073078764011145554205064874083315296805427250639731863840709372260336432079250413593808628051004669244853216384763272881685555652486993807019896254978008362187482080744664773049152579614875848258333769813481401816702133000847245838593924156949657074548470952354052546142145971530172830022888685897147443789695620906849314542019074188751796137143342783619163485671461492210195910126623687329071403668452212296110002800832977566471861746289420437609015510193922743844227339616840403925105095551819671414181804040006181256182016303256881241535746350515445279132798076675707602832457983391770755913087471550889054168750056451360426239511599862290464853993399658594489978004957216356727444229656656757577432263518233929991310696504730660471958235544217617341016490117135587789697658393440501925783566082300862207931014297089303095489980276744440886461648794680644093509560057686673424027957693524056407342015356726733699261920746486706924706187646540421031353853707334639157042117483686541689936825085254059416717523636936385282530393646313886034029755765781613298060295784565312475550057376574943378913526722694702042452261187364173024760381545293948406121147750683347817538690510897563107205883218185970238463294329333194195694347550882091183208654486239224784921743936975640794932335354605217802211133770489861935725832174381125311356130295723354093616573235143559426309346265776034100111172704178397293047964505894338605572098118364829022085120828154796715644972246856224583634661416999042693762923536282389761421922125527338627664299180703832577458534058206512639547584124452205210952791309202784887514050145749744696370256682187436244285518233514280497864326231078451644713986138099147085369284700655944433087039557923650060538430294169949260448285685391307987501541566947027299032229499096547736062871794640319853587374684575520732307213480855661833583702008617127264541653335101890937337813308523652400125704610622372155301767345972011389765628656003738064915639639305328726141494733070655456673269020825469662303608146545802964471963739000088819591297542621872023716676598551030102587691111984083820805257428243937588923547318374769845186129016827468877071198416343396046726352263731229615498748597142598631382416520693729535696634160872870337166596593031135493193280436157997463237249767729550471516938777552458654583248631915680310598576261803230006944022769811344500148851330964323078428924329498730238491152580281085241221659546809646096920969676294884493644173470750712003662055760328654272667008459973338756772405492562667390329239887224744314255894088066568969404426396910170613075518798039454607055224778057590922271826018442464258070676774553363977112444456868624404649979151845980806416034563007873977883601280302616544639159942902893102570633435848786046917312181323756668026976954648884875543649742538053427891271778395681048905469973770701494913752354498028261286355879315312561996394546758213212559040792460344661554603044884550647844641452361114685297771174444402688672067879192914832948426926795267141560445273920488017938696909437112639032730652390243417706636987866629927475831804537286822125432029772628673858013662768529112287682927259218587737039245896404836894503531654875824232687633976783202344274851340191190286524631861316596181721173606371391199237848876890460900538659080570606230766805156585897828641125959839511556574758809701833707787066911533629180240146616899329067215684042060173475437931847845118182617198124913169861321798330187953142533515924431098404513515396410773289790438098198202627339329535781992551121981698068385792681323232118204384196305886524937169690266694410216464295902185713078090558473797586085205402051565083489278649220893833726699747970835340611603879275086314984483261450863506208829362594496198110456948743569327707167678514536394566217044635987455080426695455963486933971525443090277179056527620431664167038788855959320299881162841168715196466941365894266232591959042165399225328576735336918054374892421857657445350586297498014243331463963132698048225704599555108397383153497808638982020346436636506485178563419237317313440406567194105616687242606516804625256250735014465972267297829443009182337816867227045344416909321391117060236377695034888873964501591966038291562512772557632848357790824520840925339464635198361238804309022266380585953922167348240114577661023353597555586666881763355998557833031271873177103052719403180276757181217015017870273536315313862493024174115957128536060684185836474962271569315583749834761990485842930615143053827399658962053033361090510283715651686464865586549009645553497141515160226204266496023883445489780006133037741737280172250827463624109837650482280697997578014023192739657622423867646319179658217677335342254898250162265314964596066197398057909211631459663620458600958744054032942770566039779505756078716382001397194127678074029141289355749734254990641072877196807029804569122719388189425249191322781582230782485548562229044561832868588186038068728495237447010129832755174493815269627651647787478433509038186735184884270690848401855597164677702762324623022356206004373644288950860117612977190978502859588091078989126880061626202695277915444869395147361942256107528662863019248497201191633496161347658393375979477457567370455079157147039275158505763678684517753737295843706229856130497806802306050820352994078537151472706822070909659551876454555730747875817207790292955220399813060760438637932070152587535784784402204255030388242162630731426612053906252312120024447261044860111429994623922199682110274548320730437942850046486421937047225967814490431217076786237234992769791724906346074255722110442015985722486269357343236353130854094134947621324836223727550836676805103092370750778765203635117475290354612198909642953951990181711570112595494601606806826126280270442886919919047837663174922157084799383632078624523030887958868534196328463947073599350883905394739995189502167789499164488571397103175899775313528011621312215908321199725796503741048702758736183072526438085954692973901787959082153240232948623717942760041347650175209598860897823286730310152521853072817003932436120058502139367276033908317963954770439926699566180465482677899026679017107372201529566772617379449180136712435378503364573706192715543906322197505698494818302783556573588255189469138210059531345474058642041155324167126915813984669398378624397957352794360855097731860903152089875610891142323143801199478029370957250738048058387811121032842204368809540631942797977638330989171216185458582941736680906188711430020215615318702848384955717506751725950091873446017985228623965981053196732314747491136584695921275523856156232383052531088599689514201265886100094278593501469990925493028584640278921619384765968620125725936392993779764908840758017015221482672512572363887334393850122194045454079694233877152284825204053256823652061118101522227694824824483988201671905474386023850067041392002711418044950118472618579642741588440688240483631268009863558299342866897073081399509525974781961738889399573943270598109146135255241654875817676716118365314790532317621653869005187819976257168767077133939600314099220237717093872589822750431841757720929200382917349278328134282891332234855751992702582568601314799256270449770263742873109435375812039595358706690110680920988760024847215743456596323365369382618553469046997284352437463135960699087345817800058635569110388605734593092439961741552308191409548434316365445304897250824801461118679457663576683377933826836696095981882149638147568310477204790167831935854811018635898466877660807864718644181869011366440392273677891984436294505590462458213935828510739718625635683383509067418963346597791704432429647153581578088425979636122023586748326513858029671667385067838973371639121054002158014245225593692374345669150594474908476576923453958799927634453629310188015013046579019310917343014142373191616425426414918711807012963281665072400844550924539764428948025282887413705344969797006640458367854439099628421560326123177136049869737956072859001167125895854995502750378103563299568679555336952869668948432129615141119498222686143432770836135828378781408841222625712268005420372192868467555647949525306044259687844487882128738851518402910486636356654261884560399594537300703437637463962658391290479102661430151332692576008727330442401693035570245173549975224600230917436690266854900225341354620536096406960640229529469566576611211186575199624576193210116848302359518608509771272814996530824966779535880501428626635022533339322902630429165416083993540895758156764263896558089308883010497788703380263434853157056473082842273598251514944383391788673457352102247090247898451673129987965668557722365727395368577991849569317847886194413652439499797821201738687425093937806108407349602772496986802924459912699175847538551258244441241287018550351654821206606683048019801904586250349299574400161641236316242237143100824965135713379707164886920646037319238702253166954191634519141727396290164763277790585295688133754234888011807025072318796983725681105683035249953806023243484145480914284785099997113686472747544014640737257517974832407789983866325497032012007869084000609548046167423390238971580033947746688808991510470307484318526389431872356015662561315241675417072304099360981560307868451499459496045958998565989532516939721049507156256162151815303288142324522050266189114860882286001031418072456717090013134257173942341172049715264006796941060506685519132611785229362493952699216975954147543943896297369208452150623015345612740962969072781571727226219875326530693224745599628276533949129096531997269815415610853649291013304119093480468756106989710123818930992226286901031290210653707065279648989487251654621979613257751581217149209039607704882477425094292175063904698867808307260035575991639025792720447521170285561853435027652196604744598718952771634656155186169292135793004128540948738809754849581555904954194116310907181642172168877736640744284230452681523665985977138656605728238392517289385818746599589569991401553170018690135972040548193596309959882544661284417357611450438177694021007063236067586956135403204512563976394213937225941136612772826234187389417895205580075125405824564274936613251072167628069128623394311198659249766047543370968807399944635414006836924517565225047401178750809702371640458226539669748157637310798550682385508869825778624806546453509169478444884189216128165054981716609995859275058250404631684697396345856248134803355546150230893088540190288688952741459413951638785433973027103452502981032916626882710468427732984750196933151488640256974744738655529885133880140905461034860233822194536410242025237421900435570228196408925738910874244385174972036208467298198067068345856227828408548186493291856554832547762286114032418946274432678598122784673213337309557433303593893399259239134227814270873467161017154305980147354704749183752228982294290029709117661516189946653207690414934635279523065828635497659722971758776213851946176213734085468954883717724679113415829536968885328413758319332516684682500690522817218823057216987148818774033129887129529244700476253524440499848857076247171930228747517058444040138844186562413957044290190308222550497068340840304633707546117285740929646036653750024796992576307662807518425938735038664078292234416579292612264859804731884394169342077474211016869759665540070607737884204993115301231521700776801950421240661059121080098420036897067373731321310286635474953500793015987078440487943301402357893832272523652817415996134183626173178788846337488756009457717466635663561779324678348714056451933084460823488478582923147447876858709244198495898459474475875010435500462019644735537057879689901028033478786263297840339152294286392458356902601359690001476622741065014331329395120229520589943815201313844311638757129948695308797095496108015976199608040579291303398407955998292769067701465032716513832820367083617291979417087861729113831449312163178540399076285815168821373440347606793048660535755164098147258149783427678675961425253084286056806473261092473711038309522075549793234807216663844106735576199568439031175334508871648307693513219405703588849292620039788971488089814724370561204413395511796101857452057923298762465536293822585952520654890951917223997935233302517900681934070203813343339073530434246703891233625056970832596782413042956721378376025762573665587659637209212785683889303659804139858919579858432290231248947906361378698565844657118990358283705737683715599806672934619910019973719554576935239603962146462906763069332697788609290272017416828357522138439247136160213406391581278129745360408571452359016938527206875354215678501671697452850455218466199915586317546900813448757117007318823967013863278369678405263634331537535588054036558322880964297183985061388180452951804573065525139865336245746674494566984574612208307302902110899951564219706899888847029809418038637570498658173318520791704614568250083151331618895000071848183551882984958134081228583504021950693396636019155111569429203920962985731049410255411962983417779510992042702911261554195319179136514862844540083452337161195222851447935450127920879773492910568927319840491576359244025985823444680153507468886183719371772524569311592005161986475882107039508512355033850789128886960027712764985733312152549538101986357739641407225152315389770635201123920617998163790846076561274487637213789928439783696178420928016078169824169146920735864477680571874552085572923646836337757642916376864449671830469931342970792262859403971458416390507958898906682690855321484046354130859102355054367343909560156214372191153912394297644966556598145169260482562763513237696524069347536915503560375301729012042905340687125794385110449895602627738088050580853536619763789780786399115887279171934695409566913491287289656159221612640272380573503118096799388008412478633901077003190552943231054508704704778036983021370326959364289234519086013452483175632068780406530947730024432270898604460746843243273941652638438608126008512565832666177196154458680332196582342078520158543759380690811962353842528730704353284248954651670557909771369879638318725544186389832753780368070761365684249675384692622819760965354981633573033249223555332263714833994085798461655609854711374181655737617175876882083971223567392191158439684364502479809979996734337031698675848715753136804193138365546013196581589528699540711995239424367946416501355859872965204356349177476947535508819033371407832341727506088039369628132878512616329434506598877403360917330845702167232017215897893760390969924550023538453600309117458655620182146630977798241724699301871602024893112475801616389686129402951593287842213976500732759988563935762191258088111604312273160744665764759921198793362625047030185535566314037101710700706588437855488875010157282779469971252476181194377174642128296339974084885131390200109205991786027465329181292321333314208126775071849189433876292165449388301989987715431429261056987522570720095683791401340670431167025370062232620823557965966145676954164873716883531214601372293917724733582985418504745513656027875939730424428391011461396175085863439331511180058544840818076867591958686417198547559274890423529437109449988082115080111763450396316926705471755911905297064502707806126826030753569842151339688501397311280081687426370447310366528052095681177830790866282322500696680374024283024080954917551031062344078692521277430485146147214783258292062715019356713632692606101531541419892938571137375539804263845642493197024677498123616686942454212845277075129489128715971609222366918871518784696555815618724777850887128337143253848892688929804008328130951883795087701032803710783043565845372221990210233191719704751034541910696924298987746737140264873846249691776100835963287364081633429441602056479846703900139057020796461560071435636490451062069258716245161056955492148464061999680016194058393207532622244407964084542785155444598029523075208365880929384361246809033223345420485601207520476018607481236393899124204350380308918968680812439823054041999730640374291051008237903066446645265853985836436647113871493934309670123229405570016132393621654534232978247259936506042875840971432729374263135881355648507054386713394960105332661178126302902577066442447075935836042340248608630606456888651920235733426629865040637647662302004196095222809471183044349830902928564998166327393860962985459682643287578071574419299838240075659454748140194232230338354181530675485152527886512732286837889211916535490631495611454338123783742502901018019520263144590783243679595604118691109497417426040931196555981300822909116645959611317081921481759687814461866486805512401538735124110834128902696882832027684209610766147632669222474356383924444160765651129019805190935215508482720655373177581060539459445343884639041909180222026192098918858087102370246916645418641942694496345405924210177876510066489739521266519730150107364106194236006869311142277546186620978153650017270077439336470943171280885674057737245419859921580198260629969296867518831997012629967135318956386509147238721260389288417918446800529564651922376495600676452474593153324430214398922562774767872197411554047671001528088775199697008173885188811512899045106435559526813820299054128083318699305477903026319325463484323547795029476577181480965696747551752127990114863446442306973055319270378439707990977953826307849472529808498250650971760116557397409634772419831539829955939698398793950720537540033597407247682767880871043567210165618168186963708467084657988312248932879005088616814804242944680279259456041793320612002132093475834976299156377340294779065355976474697558127089435746657136222436345549397068667577969306419999041785786862900322617950369967606465264734862585424714825615738930662251955231799785087284885848506905068342329045717501380272627585405607595910650070711210531087230512634212037287883848405395076242583272839675675636328261683741791891896305134235395807532144450019204827536803633328400633995153657969076260503695952622295716672619957158747483134287785193824679096604079691104597558804447909614387545632267674887795282449657840397639755844446883068981002315663177157721019449515671994346528757385963090101153694481354009771783779724207877698873255342647287819603356417525788187874588642100162795894245629528194365628809155915002947813573000899451447370443515005131779514355015418865385788593519173462693342477847795692353267385431857090905064172568329254388370821847341242604376340896940862584652161020965297351852876335782531089946448892984960231793522466409169764580264410919211241749921391766694707774680485015048688310809492685832306986628050618144769151738981193872071245201721916933421658632578067652174562817265775881495019286933413497222428388577919053532617439545924719282420749666615863390605076411187999726216287958748454547645018439040625592019648254067814396459958379733589925221615036566075018756242728337996560274982905373915060303627287023031879811043458590959254288328317930916560204583561654552658462860077893923705864138414294559405738129413163298060556394618577137483332395755326986779747082297536248070354470291118727503746403540343192962776334478283493786626142318751497268567277080275253576015630583049421049494968031289750512142122263435762064535604717286198210927835674732758172061205429350773700644528932119422215574918591748006219767908988395846439950004937117487400649063193978335517107384457958293273734172207377951717919987910716122269137441753973834764913987976350646004627547673267706596522879668174937076896964097032121753012193899868744815099734542156901539071080495135239904437295325697336453898894774046405848701356104698321876129581968427299701958271495197712746707679754825152660219038051923474048664130062064044280577270817444056755867503159632929037598248690151203408605301113068816976645727639916440485049618767402530562994772133070008731340692247783205624176560092765415321592485937503077647438674353468710044276422118648062635856366426801526916340428795509108728280207922995606756175493668292185827315124215843684116521141579341828188341275598167898956115091948885348520074495971599751064156397030021175174084488966968623909569320819246460889862197310727254830773164446994791584671615035115272464111967118499597565989795657991908436345140171510439547072288120600264214427223040168013118495602551924141783255175224527223721057836301260027083247084526300294941760239937471780978735896331947759739650137402216442251500413749604464102504763462099050613692567014850353608534264736139087377773105090983813627667952973527280928501508149079658134820138884291930194239130494625471748261129759956790727056404403891421746753739757419260574043181323856834257705803774745703545837472586102179730383288231912312850893580396974015050970914488078259658810958810538222000204142377749629225591038695923715348458010554795709644596805302625356186650162697862226476590549891064125503308025831887977854244875495040592446343780310023900189210949959081660952791107773358799863731627249614489977848935820713067493113430328170071664185611859781743367364276806230600412884618829317931882467842076868099682785261424052964285428230220865316705634552569982057835436149577424401425710635440173256088025910242553706705631589898825042944654736692625070700425978445275646547104699697888749126422854203593791680269230851549117994912096183035481271340096584057351189469794471221462743428476872019897822982707949445019698222032573431826722781004926449418984815874273340618944830615815853500859132999579032884352558973429860119599846473760054204243317372329557894151669757428176208879199797783701220331508616163506067188083175875408836371147042140574332409273309865417193535723321773215119095431413406303903177705042581000007810004673607727289271744498505495676696650637398421892353746323249254746165436925672538593556919136473455639633030627958912628970201780280470624729501608308938656781274503145639679182332120256225387337123085659955991799611513268512134872225966028692555054253019421089556418960172761059196335096110775246842709881232765281420555351893805047297260694901950990528325279788293718940225630938193343393859041748122879039376583300055507047155394020488439144908732464744495446409880993044571562937947203771630804261367164773844425894927423853204301825820741427792499725269616094028631166515757462847331396061743261890296933281752289806118667795453702740384760605797279011313007473987952278905390522820442610547145121241572754829438790209889684856950234443169833195007028863978743111103554314991820148699918072155902832291006421911055339270013439114069382810081126062780475028346289713920244930009741480097500371956229313685086048283616824762491631090730913521449274203957376358836417617672811393870185088456084794379069688219825929083020765842945116576932813796364502814120796833339005764241888034315111901291316116857263335724895919547150976427645850148062073401341478221012969442598034169346597711558184496416666315574069836263995569097608630803226892357939360159121204580399457258726670009202468564283362971662683918666002610801838802341680472369795364411311480931841254472177151211030031328494360605427872351494496002656731007165657884619201725993289728479088906675940625052793880016456246612755534466013731287476590596248122236942834459377434619591596351055360938648683811215142870497908802704307517398064417283280971486575376962184971319723255129556577493222028586563506556300127508389146057451284483917791909338898013236968728817902105550302773645954657668862358809257624818055705425470754292843265818475343012039894640496599074428819490652285799354832293882139268556676759306902624627769396593091164670120203812409293577383478412727573905403862050969583642874195809641478191983550728047176074257173272891120070704767330994627922928910569861677225099066164205248561378151272136716743705527437992596235059744536150480705245381678444576072284144742997589742384092809665015796742656210294014545125301186263241477244150796916158488620654619731769062799289068869675276459107892304722003241252921109774111263994638174135668779519618419738735845345921162996683800801760268007937994644948834594091834264260889965312845691177165717936089588918149136659398205015068217155317581575694010685782013893690756591529411129990737260304552852291853486047289768110581364241355069786143939999973211830139731172776662928532253526274687027422410875309274787009399533924929313647790187433909168861942425901360983991284407541644857916586392969611008697831922190300795487478580753610590385393855984185160940570685557491508456710133833912639173693276191145017217853682001793683710408047256905941971908202560930445083760101843551748716747839530327243518793933246565116063622420905419960713568929991269725521519362442592050653611044047443812484909869625370311360339779798091592370986704256122184960746357793595411269300704303611533289318358946510034261064398525206281084304225397488582291664057019476093284246846224428338195012246245219029872085626094697080982393040442042738574438334367713950920059061127591977216042074492097013455620747765641987432047039333022400169398631822729061579505497451762627175003336501506310679622940559574428667512984461946193706633190998482005297479300686353141072603768894586834291694196892194673379015279179183679553419999362137595906458879034054305665974454489323071753608319434072709926013053603342832901514525449450487057671156344333670365105537072656636859995374905925996290049189245644651814003263782147617478039288504118919867071928924663396074277162346424989799654299535776593775007412992393257653890718925841539063767303634751685837753688587886426714190330939424334105102298512664768620032062758834355604364358569138201173621234907079437521968116140847474523666795172191007328758205525518421191537594936624240030804129656347451746102672316987505278272468670939023848485169408134509738343476033900437058988428970394583727634290457025996493262248673315698575601780964879465714344100820572582035602744722467363966078593303769280825831548732721880006339620137103015432920424259723207040137263337176482882270650913170437653640300605420899953410074648042248224783013044099925462097150728433525031947311838385225615294338985321989923983770724103669713965423231783120689395256364711864464658792042246797558584060554825472581166040939379897051269588525519827594135648258382339347366861736188311635339068411316761047117239071775920370420759349781814739822247759985071592262638114752974693806800542290284297597967830943660830704921281440587155529269258549970901490498640910669246158216325367570896359350258769657544170977296034792587282679625557032324672329038574896034527968258950283745155035594551967686745701075543830134308250440332317807939442500886922857655339790898527796697739220029442391441441239225247508074408336900308984117743687252945973173596660512360142827217777428639539459621234417329111355937058087277996667174093562684378448722407827074931573682553645042166118495658254440437678566183685501869534680322166184770693039741773035551053234525629650241410569611457847748672538334549795646060687090271244191052832657433654415875876030868601951002413136053635270379880454105933549228212265090849076064741796999959852306787800493413831509465689264568219874906145321444261904703449758659699701890688990681304360824921629034678916744702687358069398639780556993527389382011128281540386403654102371867251824052277094149080171393609450991008452027739833341009064878238293245851700857277526904572003694296542291838350812739395614733820786821458723336523289307816825990619823860404449320662418874880945897654538721054534615129172048793522600041326501947089664951301006928307751899025497004435379591179520799645114545345417495738129352588407053335137684990803717470877492521904877688097046395672716832061262499660896308116209467200452917671226732159256218192650278280495139962408874864761159848813174001546909754020284290058970774722804184095363685694269451931281339851035516407952732419402615550285808954973557547807503913631490664237315471569252702272308830057954058759100422998334812721818238119360024816430527544892588504234502407823104889650944405264420550469300694132419570427390614262582462560694395101466444238558481608552292585342484834584861146027091783783297889459978007720849847316382149585944753025652662280443941310556343356134330922312337659460761402433528015664569585217674063354056496449148731778573877235974775408231636725050841894944175068189925271915012287878704059366349273620016662653848504689111745246597600835097337566559455576850555910911758785713628473957886399022881018321485947494758699536916283544397089782969311590220229733347124987270441595011200545329795826848097261378447503420137164336128314187887230416255544307335885023889670204052037738614349485091951466661569935460557010440139177475046521030912326562442664697177760819234010922306305902527702781141951698544382716362535676008428047375690862163598298950781744627125877639629004577094862770652079273868629766992976581361160387947618629747076864915908447789396298879077600586030224668799272290866827189715532016148822047016726713431985678773697743611199259621304956067523558616362730031260620997750873512711959117674679462448181688794363961167822406195794838989219563520747477828354231231702447806885973895500592634435270495839723802712165519104796565919919627940072030007260357073741241303573936089771112903086235553029608784993955587562029406447607371925797982790111034379217318405363112035596609857214717787672021507357011417497251549708441817855184891903427963192498826013933685836386234059337106216143244040202380794337656803307331910725166541086514939254938260002999610339438923774569334709542551834053883694765682179490472445584663537671203194994666394082991632770531623817043548171425732250677857307155858368316728373788623668382333491009979033104221312081237433149530809414065405169637390053473774917659608533954092022038392348425871850509675226643852759581239865044749282351241287282417320469501675551124549198873233284963433709457486979989186165569794358725861225420133373233815650509850135022372710168772300505151366113885466851614451084335350353512929854709341930914564344016869671915432016397610824339628416743543619079273766641237761580544165717626398211455414363595866150120719110073311692930390983958865184420250598724512242409096360850619581730766734427825835698036895972672902004763137236761873445510389648956381740670108302192308332043771800916456687045028456992873689699845600934317025643502183108084238833589870734188354729301794263237351546163877625177658548221683758034162662003957281837521828222975094817001750768203159172557744677097113945670918585176506758368971030276800164975046571160315766983118152653765038143905120079052414595715347646989215435588448336396168481367545529663325182406043346616524230715164898364151443557756608482646746044316036744730760535416638454503275161767858158358121648283958259301196285140371655317079489879418850666608245045707422699748035350353548420357692717884027049214894620131016230426853748053050893044000789472495033358649981935549682550794207924588275940827928914299817935338473748521412150511855650179893770747672112634719943266286058666385636289475797533372934374139668410273048234201127566539144743673366031410286315993647737400552492284151536848885239858963641610640365591856168579804210919118754126885217847439856286625158613959152963413565464916354197542049582852736321814734718699552290945155588301041381723817682340649909164986191191647989889423337383026067426175138875878175762057348487041977523377887665041017534394199525531604094290306496777759254135457100573482473734495860924347883394109618741856203973686069802351629209006301999984079253719167227450524113264569770545048446329688411907585144759329310886416835786266934435811722955898634657504437485431086878167244816332576960296044366786533429234313793452068396811513229061317512341473325604178685795693991354381128249249804526947078229401164543442524888561821676566215343402564705227498565086257416466221929028587533132265252106139180720263588086719511497983892240026084215732905486601112254347823286024794095814969683642295831044437357603039348857917443914118198311254507357119088141645559069685445692481446422539186206100712711743884393400734803190984332975278730871392692680197000351313056546136162539663551118761872139053029572739194009640197944418556851861434887061693732177006833434423722030536217137696056421629189430073483707981811249826443214643926722527281369843336219775272452949498180115464948060989070370324714011461368352237685945796825052644174876234955036542695459955145521439352362710493345247524144426516938922596227044098814111820354262857917562089907054834736828261266319367843272907196042802998603002800157943354239465486667330967787534767043853217246217546923235903948902880373147055542426274021052138347553901974792171081590288966698958957510709052820665514501996790366219227433894014130813025133575281480890288421247848156102321845721174466563657519806681569093429795009008424187374101597534489996823656345630040933501850277398763880022690892964822977281637984136130502926695993360330569083710801689944443595267236874485129545353124857826945776251108976235250149537492188950882011611971861769648321967046286196284205777762585786641847198852480832952388399979973267647473436420443885852220805562591138625292356171473897523390761017327621040400393432115508967453250428927519112975067019705125657711464935501912637596975583909054901388808777453479117812540544817766528823638564465386330258136984082465001394370299203401121066229343813758717113239187452567918358948469223634741031638354426777346592790965198056643484286800885820363945464319787448114896421335165801038434819470775872383264878173877000490594560371731829303213087719513712965840245574041614127654676522816925070582515462702819320729442327533607394896906526644562812896739040028080980868660178343705012584708769508934999023586016429402963912461528115955959442424962450638723844442327740349949724457484446588238340959705164074758580922720724380601825273734644417825094956730958737022031900292330754834208134639016205877245808466577809208466426080736724979857404476582625520286756481054570068347071042666618613122872820384627485659624880522090850462060754572366397346894651398606302752437030350532760317228547804441610927120219019750550449576480460316912225390454182841778573391604845985803142226956404986857941309792515969425160136539883751216401408365521434517993443126388741885227715340432779261919168797114332980269567064454792513443238558181154515002024345019771345584930461221667125916446722540412525718284317106500612537348861812547994557990308966049361663186196700353298608550268685600601744097826005104460374528175553615168015617060357929643323633358563742724280140416357120102940580908929299341422769283682593119719986566130977157007622962507420387199449800104569062942982122447536500232594051699521425305758347150743832281907992522491170412888827982207097399600043529759521349588631990166382609098532992881778043745166210246630614540471255450479458169926373703480632112452066120496938561713274009103395623724967549579013478803138791832121170990358865947133838653734899982744053134901109523334868618688354987045242411844017624456678398880950471854167607759028247423611608824479687179197096984488130383394834688353547203885830172017454146315454609666412380137688683102544772368949135754839991675590916934774758074444412446323478767353112381114191643973342703926696245822257916485567315871865834184279929333461443876435815562822188122270509661819112899410855537512097527224803604328418732721374318782464763310785051847972961945703154079869851662389069783018300697171136346890930141936284864533518313246588579112891242267044677127752794441469396356642884171832121928862871715618008151302776839633744906818378989076784082631586983789785394413449236933351924746318043232290445480955281442597022660998551984504946260204490147035317965543425354697970862484820063497187545171181564634101916546807110901571916038821112170483517544364227644538828380442662142589069747099934285989046963077661500881039706404907675724050299752361211149585929757741667562780803496200939473808950742960012026118983514765592966605864969065371047553776619463346207359966755359050997913807964410158843497197591244799223458636074822803163930719728732246073837335977961260004764727625982489173370219527611592105778657486904677972609828021246406635569401249835984740249115192267624741068429954342942044470305225342369444428642906502629805057107860001837629163403157111540736648295181500369605632861960127531053913424959844920305835057913356447751953786311394232296658903531625655440393021514267950432151787533105522047151114338541252617576986975231854836760247961844580164939889703248874583981207958708022433623776045671977503000593746392891743848950069685303668233846332203361997210747752506399623769264796462798973466062886939723495411213383090695413858361919669956005127855508412704952365632501625071254178773546435920098964296637421556982536989493542245604078939937414478634204769923831187051501048551013886077867815707374956470002689760806142027485824535060159884263595285696812222822309654441339385549921326884893766526237987088036314014224977779211373312797600100903504080443358737895440528344203969876778739406136738893223368616838508728993527521342746526387280800011607926392637829228975912325277650337363848626147454430724165253354723645670358434758777913261103581092978422809793774751653620257484450069775547202592162613305872190658655920527427087000915321847746100792300724895354798800273288148333656438065590821578987756498984936914373841385866215630215673629832462862782850684918773519529572344014347961582012613733728955731191092882293488859592445263623312549366365495612002516843978896696538120810576782894113059631152977158842952189166007022243173599504004162294069700356919615908057112682104300365692916642360963263189260870910826793273614025992208856759976198386017573988508475474628825277617024103171072738173534318476495214765491278133034129635202740633641014347514928084026540783382199158010361865870982248923266077108192882784756467285950106106223122700046603210769736147331876863658036515961284829707390996795294613059447084786104757348303424927616599546531864687488811858563847801159423782010133500708862322503693311860824254460955044540601526649671916844964817970431294187956704396949172024271711008109497208048601761529690160655987427087005399933145799277931246816185683428236844271194452774040411143102029876880571747571156301371408015669688183774417592727666107518902719068542668748713333510121109592324745126840727832112404950625845353071658537644629402151402654198954622879885593343697805799511947252465366669801474837749890030978068502108104406485474134639649878188986731215811101877072260466872059740003969331240940798961709014431276916945685991145594242097232132169553861476126944451913531230496592461396620940308250087489403356234630095577949986093294740559394130961404317010756295777897525391644114135291057228603625062700340268912941969624220595374782762592472722463857635477424468609394101787705531097326650189219253972028584865007655865351239667404899844355500422960622744321537587117529808846571071291081309205613628336432684112795154536757368230442823896398421113839618922228662026567602823250665773269409608542354353994090501918699986487115973120152075838877323572500708813061609562815742694722334239882537458659191175380354037658335104538750565365869553106629011436244967222240468616600333818339748138921135133979662228336977707597846649662986445446311346951329691718506296827232089038774573423245406684844590938009122339738203776113201342508501757023461204295514809502151038723909174704684304446383103573155765991314596182621172660362328715544601003009903657676903742048460650693465784626368469932251846185433613167977001697344339628511236310890445940967726876858169782179893195781632965826216436697799713121495535638322948808967738973120213444252806194576022852716886817444160085522387501215968917844783871410044925418916618933121187004475149266268326379206463382604714330456502336020818001535487296780468280776300379698649335137779779394854212561945814922640583448055133427668714404040015939392527112684924923106173348913036794059002942188644944381728231378701806864456367000721865038639669246505109189822609420421188890147463626948616844252329586775597366056622687054072928993658029989974256997180647700642448602875292171349350978749205092642565889755149490834780523443251552944090027139215064157988499368552103077764228159579541485335469188523393895698030454361417613264489237292441853104219796901534016153933382634749048715296540030032921228647723208839459410039724204381163719643293465315160104754923781831479308486421635422413621162199290401079348322447764620444153528891762131685305881973149550242586373670140983204010676439742936311369722884221318157944457514721538378041670586695334818307037097597981032541323220632269367568761229185448192177359959896189547535774968532434370903315545080368642556428717661545131474008700454651488040350874685685910360878417059135352939720613774061948785834544592887423239580447569564882732876471017515212011305263735179775202282846716361908659629392462611561299924062182895183031229930295946157487847397483333550226441987306282675350665999837494793847609124240298257397811092002332572158588032738599690426076367618731322552431125542414742860287406895174448909464477634977044626388634854703807965520775806917181537929776442059527337581267293028641292467846505006371347553953508750473425238933702586196890991737469051281292207325361913051681940388357511062086821624381486917558356701192685569735396670189971949040110755259129636010670279582529959747773559443550683933294237518108685838823343554042219551208205111649760269078379816957928476205190568615496768957127309678126481262879473848182590839018023811183077760660667965212966984428750130705986229157040848134754098474618917056555970915915032767282743709242664635938841709498725084080893958663926251117613819262162084849610998968637624391253584127108474494159091469537822286026868018294006199120078596501191077576446838384372566101828643604154073905285379389859352731061842135155366331568746853870898781149260741387660320117669105174150065015970282072037261081257273733103934230699056101199925093184775773350113321908326081985204094933374965447965172885818536133408745382671290953681012676133218795066673790683091726453493201930346912770131295583548298646209458686541746461290925084711243496261538634399512202968376829642355473708117279733327746578794969734347721024396655379423542391307142582944164769656263609611890925022329751489266513370372016426834092713829520544886486040905816673006042614408705613201140817176633786297221640388039758147858864963545064283878958014753501773353474073106906570360807287578964119107406948140758418687889975043335425491721990426936977653236455178728009407995146413284501981431294469841682362381979375440213423865500778857071758386262556272511126417322182582124321256256091436858074707635475995754838757298709601199555532044559237947275614339924957060756712224456556941896337922870196954165782706723803570422440238972729706152486619057653197984322508085162771132423086429206332486717264856453610207844458672594847581988954575627103229886770815509032026710111258721486200828894575462331934702282154852715513561958184469158615216813929778663538483805976831996121534921698111501690709738144697100811331354485309274451012496044150481638582800101108716273689192147048776443794306939727471724889874294031817035663308768953696486644894846694878127858314064378185996371168100883784623930061788352966242372218511528181738609565394108159385070959816543793264436635445986804069639471378499136072325868529992589193865597894247125734521556784999024728900440268536287422259671102956516576591399238410565891136761545606991423876550425214047448747675263625824529317381843137814007416863889211494238863312553434392563350587516687726790495505848797541401264434786313072012980372900399614768084692302030647243195653719336244689048729146099624395432111710663360976178448383626056415218643777195955973278952940936055808727291564336615869745434365538595089422408801024705179520919708117756502568769125612156285739171048655701249959749890574404638965330796958573194511748791395028579517172968798276149072415983108155946808285073199110912208941661159856020490451594264267687055775102070365939139141419641228399507620315394292727765479792270928345463649357754601502521546833524459755120471044306136292311144814824728663996484927189482681128765193984821639750086181533974657283055693333808108557073605937667647442973882019216812423918288353471035928978655041786330433398502257335295308860081127193914465515324893349886934239696158206064726346883182965672628780996047398038160150040440021220917156122023042142036772776670572960623522387422033791008508306490226794374609664429624684738733190161822195624951482456539866771232180730593433352179953584695522166452868047020820403134033627381792566713591045228201018219371760432471870449785263994715058776418228075398405989833619741830682001005747889154517771957358530918988657941486732127337405263881954847297084664098499753419086591066154354556614353837915665525129280170858944979966214930828782413805286032074292343397715121394941660909362247776344998547408680552549150772660786723565701861175860116936971912040503995772276909663197882692849807955336925634451182050219149595901435913127888226670982240029310179145138605155649272581068735213141465988538834479063385771786370373084358598731779602150056997025918779176615328341191189922333377030655530172033696252948406865468092649656042168442709632147184978618210766574059726762227508576906740669852105155908923642053010310342270587384197279823029736146695977304832208759750014723051410424945293715335113055165360786212666392393199531110803620420635457775091432877035963281533441001785533685618057376879047837530413920741348103191780145092115181497733322850789147400833091454383316838309898053085748401770286880541874649819942443443286852751871244692239960973549243524107825739754313767153920858475003091824225387117585845563382960014481472075335814018527244046347941300823712095343474274419528052933606530714342846357026948419781634268866424621245325292353655952279902128479780016836066879963054088658766536942539830650642790244496716289749967620584264553697786828020022545342089133464684867422939196567634557710459849720927088396513475039513168359065941928174719110502815596776937402057015759321726208245269515265584617771450674744230603584457123110499070184827624734197192121953202946542555881707018825618162956133499314435927153089717850277923995559238192018468231467148093022865605649028166846218703915439969441447923894570394575563867336839761311500558608734878486357362038959106997749073496922989549128632450245993398889022765756523083509070045868741371363132518417333961652146397684665767958808793796533102474793847891209638001874035811068381751316082414789293401251736899113647777155753740238191613208629234806466595261022217290978331031492904596172764528805117034005362720613657394293247520207721074923433121970024271841311132560319905500626764179143980857956497802715704637501885641504258702243795342172177675022710231361253857900152967468256025186529069168317339641944604845784181229934718722531081274269132492500574617818032164632629799594082593532661063608889464276258322306194562510019110451156838667890664211022806504967043100089953953820497718572982535791233895889354008816578986637270529559566490460539872035410431286291996985297834049385754669851303963896416615660963828152202574639701047364486026063797409466923856829227486946638816782168903772969329093461357238462205223182128557327866912239615161206119278787104266803352192204714537579806429500369251901498470611790419022640444793213395875991671030028766016827912088813466586170934810003947523482973106062880399325716922627503426834350966717377058467491494048839592673013637301206697199326746238264740210916303520051547046305042818663324834722131721550098343941333299475288262634379506814087829822456426125186530014355093035757688235053681651003451137706447261260360500780640121665994601321038474365262870492285096015579979752304064303221006212947510501136260234739703763297212891941321892136746689470157734400904371660522233752807155334922167494577613692404415067562368858652050790848823245986881240472166487786921208431890139849935149493299299875103054574587229424586223431069803396914816674800769929292105033754441855046289113226477868173572833156144640286244649534281350200637316807822319470979814114468143903923609961053241682911542887848860745723080951517746294100471357451237710049908112205392169464335804587541700491919957403284576312588906466754146922188443701335460679486020370003306098818354760646075847667407383211243721638915118989526684449053602860211793114673698140314153995133375034358953529928859715213361532209861916822404363759041975811683963879746917875305977045598787301738715588953223884759936304640918397474687041775879288895786666337425563364023090368509950850325329021515267814525532415215992570966062183218460268518453334522595312498124675584082538642000544388843251495560842331050455245467132324421444840120945441087215056303088338419032379318238338034322469204735663590337532133594920684430023859091734361503525358059938404123419250084337138130593030780804716279821246839803336398735766216520924435080433888140601231688224481929528729020161111814802142378014334455973051269896735063610378547008944215495064721249020033384135569616130134398879157026844748145390510113104328970638361618049562941891377002360399796184886241086842112606853857870554797710671968266831583601831558944801910877798822751456687640740473452733471797402421874568307362146172768899996160967866891032055391107832893604394762636151152944198237340535825765432524760905379902599019254453919525089079853344671431906139795941649292388041455643051746186722060350113089032054752878616932994279833905895249575122231032631962782163769186090038386259504492353047206366332693519965123984605673577498001538282788975274623313803304970149862204439945138545584232528238814369023657949065981897383361476403582591117771538759526920846574763243472958258885770197270194034840197261052154262324232153097938837011347731260943934656104656016914513296324507182846800869798590451876967344717737307965206704974461819659141989646431945956120858372739938270424123637991358933047595906228417779223517259944469492231996154567384685614047698843098542875516181391742676906732954162278955238842875102013602110792294927434584101555231445280783076105325605382928212101606172637385180506379760480364362374331905499412936483141966322377245255995504409311819405303864753613020615455204372320735820768233477384790222474020880115288350722409467851318945090395426074865028391392530110081463425606684428152819716275682476876743307597266942190376649827846596369204182942859027806210932849945835290955761544476331249142216886991456089794568595849215199055625264465876947473136006294583597534276363829116089660517294410601968548994010076031755950940563824126112280546896470998855479733350602820104362047389373121705713141466947112314631306420340973651753462397533823953204323767047982033574434873010667041778115668278513929476522882306597411923322617896716534842568963081214146137010475282615298643356964247901617652025438500927759001298693627614671487366478333020781414067675527878811227691384070126909411851733968867603648859546686229921669689618362510039520957586734693926685481349910527934569488065213407341261254976898291934163426977628668132480374187071870753051397125115413091406157879104917885671759558152023064853749037116555299254644693082332847754482712518536477178968825388782417343813475461707971591416063176523754162060383438768824146989599068036103418709377183027170615479522680963384560344592493903346082696513829436552174296044768670936650329307341229209286103777410488193173685669229916744521914720594166800744688135710513528267335817864352968353836369716429499277609950171380541920711263429391486327691750266146450189370752503400160233371000790631996756911636272652993809741981052927816060352168891254901748323695984414478722873931639572817014385164184002210067212734027913147747916463675609420357341133238104921357375477976196550917859255585639233979351583228959989967943245114124059662262828130364597674599639007821655339664220993705156616158659363651068975054806702846218027383594220825869868658427018292893174543246808599674493240351169516362012193778168401031928565153885874513372017810773850972085218904740462040720198182485660687353044566810919319268177870268384570981854733653702442860272315553203189920284208394965788352503687037326976761705514303566604891147442653944681587680488209572185115416778859019458287153157930869931267806109318574087157725594271690619993793141244829468356826190413953630224906968087692695850285085231861571675568761563200230295229047434311602530982719565620660086914775090028389013323663010429440325578569837364945585774102322891122046571960419305393962222828794031660394820656902346327579333019405638886687991913138902232340341554487867258858323114619163128514009608407821346914251736925896819876148306339128585571270589259779367075439569156181128122165487161166286997668625228145410271253199723200953940222900120674160166172190824981578082224954113703020913546186645824512988898127042126320132464774125102627569630100426025267912724401692180063998984325660946718833954322715213630104322310588509123477750424787510964138276306816416830368273588971898903137003325479867041519389606833445354253715260551602605194536506358408784230790350902656522565736627764708561536370872356665920161100806580341172017502194597905884162761196745019673498672674233049405577446155703841776511821423016303055023134077758428702607587128414049723296865489522535712009579160029789103932041711416688537669917058469912615476302370334367663647965337134320568007818907952869040642464119453741457316727730008547219860251778043484155725550236620892559995628374332931307442474033886915136425360141905248456459952912610232855627591874229362092768586938397109898046377693625544452533542756095070783752265974983749066157546483128702877928197395909435945893051623668999003169971497393266723467048146400179127911031477825160352746727587952637433459519410436441572340077740829066826736181759037725720690765821162654212590987782073614418941352771294165104226160257736700437854814618668599258971752092482578111916675802683662823718031856403695026190643280791851232342929824643607029662890675755594851290697488846673621630973736426719379785405177001508056750915988719131785029097153575625485670392835835272129942252630359646654225518121681771484761411810273082369476842220449771871051824371302781282313411573998774829144519842930948828836120727984420085548423450196947570252651825414960783152055366241383270476148807641799500377683276755096083259305411373199544838457000211888827313069288665848248690229242098627455101496252833437016367529032653796162304310116114338144120878611063843363567406684210382652739563751158516520941203766934108755774008061592320572747297225703127814647132023394682877358997248993038125288858438165410336685064542035047743455219827606537631440825735033853852363458108453215615910830061358628403602550174592611556698616620164973788092582033101954385137969484683447289823079138884488076770112368678846846635972197734533137331798525272490540663394085595650944596542556468286836047035102414269585278265023954122526344776936126970849599335231406683591987937487396479501367952015867930841556912371383390946125163213558601681671940749720373050150220945382138618747238239965798639476435609448892650404422406094073051196726131146700340166562842750819539173523488537509838753799013079607945806840129800284133626611809768743157650557163898730384711015484350719732263839045496891312025972919496808620128340385180020298975291678951814911568680456765753323674640130335245549249287364427910392445245668517579540990329155900459365894732268441600071578488694758839091064662783175223411636350319881413928008837396716072949248161027355635707915629292496894588039580324214851242877045529567159954150107366947886762077593409339556000171214147725994371653192594254703743777319936677630761850462755309112690587340305908091916925786693600344013787563851091778816619649703422594274663218906494073605154848351357967813946712918983412492732436147543068773142442739779089761183650982897164482837405690389963229928453465149858173807540510403407221833027774608428032082721049774258822845054815907492065614148424899854681936637376739961365099375410412264683911848193558956712826731171490275417469336259233436929078088356642028017867898240702081325817014105079736025129393706696974313192007246170476963479878954205521094617186257610600165574072494013956800008083699705534557735370600727104460773212883767361064033092594654665244871526682250600348244157711007257453212416717436148753098118594509297396180605063186461187670869485048671116270265922011443762482259778277281951586353246448530723555248789212112674900637276934168380764302352632088540588231726509334737435845628453269461583423503594168750632021171556578477326798820722741010240666247945744160619508170399613983815559162263474665785393769685643437054712792670709484280173253792623225538374659741608606661841201969403252141922712370750204209919735055022376444521752468581311452219078581591302938498012844134228112785892921642660671890731808583265982913236084662075667119049557361095845209695624118850484148116451107512992311074486081388991833299300310764818716031769750859652230967144431918713928768869032126614605631961252297704319926108105889340968579275483677957736467926672025943454401053567133354089342269166963482150000915881856257440850853813998012038713020666142914958964581242859286791664113224969854291358006422285670904437733711623566288258776065820100054478032917964028560523471931720640805998724937208751782109604318259861188027225094338037246867793024509842487155661359723706016054092958933726320443856248901674819211536026921904668784599439146322952615407845272607333073054570609834113819587651906235490460376366850508015740536044282262718073912582002003209150458796895571080839611655287111048616434898366588584959460667110943226895905821315677990889789044149584981857186765897108643049902990905874245031084579054919422693864545216898912496674652837195365411659038576240075673312277960623463796078488485176038367414126169104717264581670980154832034868691063958780506105484217472208611329772038057605849028506052393192513504151926173024828582439850779824886594426374657704921648602107316307063416442731232835473988649010528770282776608761540499368531169611520401093704763246120222532037096155810321896001869276172490680060109093143281382590642678845705940524263304917905985166993194375430472839057734955183508805630568340345579698763813348365951129125015520035066579492705189075412116945831047093537195640010510840807851276700194018498509540338546171930240796743302449522516076260820881928389983171593571275072629715933003589821900760361334729620265640562696262707854133827103349727615611737367834356993307445741845431180470544882228323379131596030853138541528524940992109155811888818138706626939144418922855729542121066764467360352629535974064402129654038018998005101113753680326658571183473326590891692950520477993228485745728063980120478226852994035615646983638607709887182117937076388313422810892338423063610361122410329811730059737432445510847792360943535794697262380136791994256162972732545435006757192368945053951922062662516534434431205426053569986168371392752982334930793191870763879996775793896798992109283694120352106640683671179196375825389375456603834328902496691082785649744279781724210867014658159342390752818366053165930885165480410568444433459075180808064099877558704585011391999087574875719028506950694225050057416556394426956432312203813561305773127537821339238302252785387917032214594209962188059808439280430302384804987925881079962571855012070141791477719540175989148321137106097756249315935410411557747494509366488508526079972715972579835909759514700617869381467368929415012109775211947880640966069240401914688675571896861007277944980535514543689539151377535363761449925982659083849375785539693418004406550123966889029353310725876287621973401902736124754340034894304445890253548555931336230113953205555505037703230141757170013364991344460455247730590935414515983371341342085415059496428183232102252059216716658349868125666704971491998461475429634025513842934589927811679401561833945305729784183655626390205528900334744784350734304660705149229285999826012114472828244858359836149238467199643571468072846273049769572428972396152115807637743520416068129396444806705628799903285751252168495444587641786047670322616065239606733986491829671790288403770851158177248900229566592729479698566055860808002763027020221330959359960453945474208518588587903921857857706566524349232908820516742201096354967217426585278108830236139590969107794217543756337284000251078604938358396513327673451638691968423407536722277279226219702555798783149841052146541738003998270910803274531637866666148601850110198119198127806545608830775149821168352081210751919174256563643982558340697638169663975731578611517898357323084644739427194795085568098527340883226031611604299383048743777469301762086015316693495304007224533790200340250471880051498484228405855529423627308436512975848323224976496993332634897439508591538338435386588935780107946277053396323000596504548609059961506949823774926126859119845309017254835293490856251704928449213703378344802425173714089746060947691621553031844518764090258738611127433009699086079551528716029568168974691595954103110516395150715132467198096458086074516970961455850833273966572599476738195750540484905133619524793245973970327757550527976308376855493099820093685772434732644400590896293572828522641217041042749595499522852512486534107659030937780655417098926342390355473321282892992706013839878292433848578195545557272734548526769175444976774428167885246533561136906551943102480431321500068250992149003984291244381896983909547760099055788623115787353555485250159583626437727935584208911234529993275814667885185960333256785712732560494375310779562137535644167407515014679651593389994656415560353689777426791362601031243511794944942227447503888939573256613353145530525417828514083736095320841285494268576805368994967403438364361153160886614870758724715621208085512149653703999271559978390405508938982521522608423344003215022716645921715258247401206941790545778655625633551022634164834552981593631623584943860901873536027209456675875170396823199252172580705533824353682626200450471154251948650253397630553261113697871899065142948386791325653935418233259381632346189840963800876088855330006366119199453226257559457422647218128548000357542547823005379647986869855514704743017904196247025310344265243482076869707005708508608801448148534084728253273680620514381451314886229214304194171672410077275346213366325784247220633633107793173147971144113848122551404885506522685761559509695370086640270905149288311571642469917790669872914638694246213372357237732371228184519383112179224355937192114684494636080805376101189722525479010237102088804447938471700983020416278079664588800734351523842398282613376704328675271701289396826876048648889197555562504723421761968233387433588821797429201216374873936920889842801113793046357240961814964624212512143989951332913030782928118277210401288130114422803708452253562122433321231150799151320888527777158206335526816210471250845460179883693016588106130935981165178772105420887102140992747716488023047627224058158943994222326651502908617020364253308144727528512516376408077724965944290303393232626544851602098809571549365871794203383374540661291479906553537398795808760716695274703514948933998002650858850991735806562771783515721402906797170734982734707567377102570503984734346224342469675432076740288667642838190476280407814789890560162041614632352366685317683219626504594369217667313867613115257202363742045384595726559919852306036991463645321976321598276437705786562858517675952881908927966214207753044036886289720842020814288376420589459552073921635571461270005889614846904668828081758246252812096786767526423231068127053334125699619699018267371783660839027492501703179021989366613881803862904239778974339535281753869531660433475501651561196344036585188696243366150328087917904015535443149179446394460240335421825968612387738505080198883844893216296763000342952744940162647117481197671512786845840287986119659964724594482581199419970351637654138321069737573410325774506184894317193086731326016574796015952664814639008661458983014609392619789398740265388299057665655768163243190775897162219733855692319476267178203659961861990797961145978549871139106779885234556375149092629785019420168573229337596281371636670663861601796503858400458432778523213460142643047930465579115470644217435030367679202876016183715724229766102998637548446809530100738316098095100876004459887416734325563757333057288923344955241783803057956623534437991148692153495540048647379114557645294127739343080103624314386719875035163112189529451375297085234317705562008877401647976586649933750256234284009979482329839134846192401026115080481050593388601789902252309974129352121657003961221428161822268534809215825308334273574355802687781314624987109202677046599592042722925627626968277238863874552342651445407871605266135890960076492120919337387020744979413094069156985147834553713792294704872769446486693805779001404542027634235746129099432254173848038831098549229000028877442593505523951657460306495893962319532799563106706473954318727038730117132051888795810147658243369403427549729691724107780659069354585270033041473472998222100405350682899372590146940738204815732266238933826890362602096099725641495858076325035541185428931354304365187247285199222713181076832781708324926067145722526168344740950312779514764214935243963152542401757332755862803457172022626698643538366494803927892812968189921552897264781444016491244186784480718907203281445111124054134121691153364563356383063019265317474348928982389921947035928648503787538288133550103091404471688252643268661021001411004267738952474135794161673032899375459387229437411092804653719154868823552946034050796776575062703910702243515227321108402153170441018984114849258526315230122665219226824879714633806393812603936253103595965907303867137299973323134973424515790720099837777049624421380301735717793915788733865041726915709480452326496824199691955540029634706882310963268941704874946682164849129681702534299850009537861933777445165191606178819081059658662084711894206880828449800279855698074676311201368538333924591984165429680304902350006788811789461896182657692975783840285912438559171903880571799757864539780555595257019494852644162296486764497723747588679411035411860520515631581897993741514036067706031966292087990847116964990822011391422644703519287272754331099884024201474512715006808931333983814792680153544145317600830667142062614321359998719163983234634503307060701967772785072101913010246790483650752830059128049532184336425423194770935482910892279655504832997861446774197698261518831984705683296561602618753513893055832850156762067208929038002894857747736589055401052437703566384276159503279586600599869719247737239060563337552142614728115734556387970297659873815500294809515726671258234856471349259072322957564232678818968162532653093096763870453791629777003927974571667791030777840632000306911879768197536830026744270281315411204858465414208274248359366621949651274665845064108812795359706509696216331088769554366454406614517603207880437253786585226403387066768552846011863347552638326611984489681500136816965279042544748896358951396314130782336703186761787780119203213478619723801238570085645088333542987274488140639600569888750654384934615748270675188878629069149035366230093402814965755690782295732528770242934411411918938097399514238942841751778030619031127366898246703142435038994706248008435049411812020602350089367165468342443748565302675883029720999329763931472536014873099455284178097185564484653089907479489178114166573249386159058932764157711567245343482957079494854523971697408114100283985923887752660038578260196943757853575030186503750738529706822529240427757897487066112424227509662971606326073325840269871935741025447000055115597316077051280867722425210438894516451909775528168696950843258677184958745092352653421611484452859548617810923819743037867310215773318418038177406336361458698114145191166856576157545218513255079281386427746845160377203736148738689656689408375043344835309401987571255936485494016366297404575018493133403158810704062203075638499365876106555791513284843790702504033225781437678145494206368591308607569511189209342700043444448246698641263743962252713582999463260440119826423385788675858301438134830376397923420970510578789736467655796725319540837701193523882935695053424333632449009088703834153187637112602317168263998356884929137761970326192563911295435592881148887515611822635978246216610233542396506300557719550729262990924320346043276393315960393665031699484287142689367711974951613750597398053446511472702119388168332427007528820817969375694173356682775015827047167621302399883174513785323374180075884980224976888192179584829829682890173369455431820952974093170812188386584629191825201897087169018710801621233613201139039255874685012293440812152596547432280496190388288177851479523433461699434635816839207852543433426132950966325335359266216576671995025251332586430601705308428212539876363874147525909111494198749092314792401615453146790537722842888773077030771529751378888236615727245212488335599407586585450491468441558975324991828537801338059273978681801256100770675223364339736838660756583587159862974084886852853802364002468890481662053055303620626500673506589680019493805439340110617692573674612598116743510740603020425141632835341392811083573253170385257408561823026242661506676064935020267120684834779807912511704046984220344669180100198001531746932658724826073775472918826215807255622438025138474591315254188947841659243841043573966131469706165836338166544315131245261706777676341906926100363302428803905299309307507046263862406769381747365946441647259578647529626394134372408147366936428205998174866354369697451585959769818703033031104196089423578922944155010059397076285581172043906331532720185388676077199725204584345418460522682572691203089436301038721802788562166362514126156684929037369017308206751464277713573325720449233221105207161165691426296265586255477367445878111485809180322769003840168546104115563045227036989124940330752876571119363478071028939542558004635696850102897700270830782708462118037633927203279039692228744167191039968482455858575972627117574115043444962238551201828462041628897664153017027445743689056843770036993059966258894153628003075316279402124241165588085274315470722193338445297989681866146970380341226523025239258330236203765333245895869321865935472076886423563847154174779178087516982789990006499938760885985333639402775646732794606013299623240039155789916977686969029157613463943235773479684058050305030247295734465519225998676829137338172409101686137836802958538970029316924648743715697674952691896451046442696242507866418456737864706913578815204228786963633192091388985596676773132973859909197593998443241198870785459184064841134257280465105578757694687770107812959724589470222012560332327474179905986692821027042783713788102445002796968809515563271900572904030456097988673534820754761542067998455594564394539395855669751729851833136304520954165227741160410691713538889491368134870098788860727955675406422057230086748502805177083971407762418564690111588976732409361998660898556965733619079833850767005120488245590427435175962344974221177991857518238883910464180248182235174912879265044701735443096374012119063762471424491371849484815745439003573833084773371081688570506382791203142033446735808111989250150109289209645467084526625756225004371107852306256686260501853442128545986000104038258998018132699118643839148904152327232465671588425879252225155075926219888263498132083494287914973175028347437239586849738278309020714255180521621634316048207691981208130764096790686697200832488299160658766679147651279405672788103391702702856019461568369729352595226211039014367923905023364535366766873830443503444107600236937054274511530230202714726402465241367697690314656244329759390813473962739396171538392384993815656290905494082075212426519886172926014112801076449807628622571480188108114009558975778180308799509298670030672240999994825524211507380118154184642236069212936850299685360435693956082457482498495859962039194203503023138433662657940496305122662821258916271879979992949000003519910279818581363329699165550495920988204200005368889634352850676629936307655271702282360693289948268782503848431674587676171961885492465237505726863064207735482623859065561317931952917026160627486476603238251598726020615604973356189436586015270399175605694046293056918788571148348791428933468138387876342839277024556418517616620744715241836374154469541439396287744386923191724331857106565181398544701843485004391777848581190377316105779321360454850524240138880833254799588872072608672644778894776989571168213273703478316525703039102661230222845413597308574617990578943606142339692777285310774340364286007637290434782649387058040705310939586858124939195713424851758727491926917569466035457000689476874145793312082221708119273251896190190623534246620299609668408865156482155896036968987167741769121125931132367010315801721614080447434660753348561459690198915441799647799774566359481797630330198845762378185232042544156344760008708267481718819374841186641088681133101127246603442844205254506640869540011252078915895622638651469058360578742622400746934950713570810496803734595122624312873940677111129241276419719364081788303927652034168094883642024659546622544378370934246857355297274402652264214286799927683897433994392451427804293059291281833615032884256643229291899601262774459173569243425713334322003939645338086918366235034528141943992704152273013730966174510802867819955464066350769162230656304353702336060249071470934121760514496483253022615821291050909648566275915926929703052904989919372849946350350786362876200284830673597418071923774533697069937494498364601143543769622903558079175359029243642422481829131350180982561295540738672842948073120061599775488956228241820861715050185254036400045942746556616387427541082847210254378684665497427773676671010383634444641738124178381004618047697870961265631022678518936551544418517994967473957422681562530754210870297590466525879003835028753692617393418385667143486991848055506269585292111621323329929343188104404629495115561679881165684771319304775719306773186594487113348024641578757379092731498220619154203859101996929883631743956919519709273300126813167467338790118905752736987984328309555134047086366156654539116977458799234307504888820567733665604549449159309848574256737040090510046288121769023885176780150503845134729091399026561939151372442906743981073279468208038321658054149231047690772524382518080563185245299656133377708571704226326572838753349138869925810578490070010883608781054396478723970550051159045604856608989634603809937592794077495567964387803129495671641516601978778348204426926493003680756205151746208464205347605077585002392521845488191275624518248827881840327544769872439936549168845654098263444693954213026440318214171089528588484644934271417624386486883777803358699687316826166334164288691281935049952650644702493684444372048183572009286779107420656384611775134501960951956768082384151368126199171228007532700663907181020777945947631253672864114241120215616745923564619461739165009699567408643406811229474715430095098150093679099726192242282634148673944352180157213970165055018699817538781471554665973741328311438724743662969850452878987152201857643782955690386539303783498049779276683671521664650149024492502854367365809985351685152453815524012480773092835812747725285991899250251824965787088847956383133352295590154991759860383606851859200408174675965417282455148759886137649799947538436677420016856132454029650058971419734337717329056268517745528311836329484954036857722921164323787074984757352888256169390732298167473549606322950794648032405253931617560001815245986593357150087200924080780568953969232474971391182833237433986734266069007147416787661238856899262833093073373585405272162590716960158115802919661228858186510893133566551685398499409729454593178573694237608258898088604069528144235319459972331748261234469656058016679738600758960864881504901962643970386637646654040021940806845287910305298673150302111218854259776044328572227540532429038463137198279593908880668122954698336415752128722872457738109761659729440511110074753941489093350385069607261748033163573906598358566073867243798246140833998733593950754493179646289973042270810943262236013574739858852727310900037578926049012823989118882809082993319566395289872821699685982762933296985245927820011516640356460259870847085167573451861155740585775063642731038276368092702640345787374172349917706909020787360121933856043103410675039483764806567568822752773022207021934180293019580892832617776392176079845919338475948090000793642834135877605738926584804477671347478597159317233406078557880059499703783608227786872086668025079371382996843690587311696076814913764281211070200410382521901668963858092415430768478369363235288267631765541318191230546652552126055260752790321471029458857685527895875273132535953185947026898430309789650711515809026659996665675882150619868128045147208747761325178784571439224453300378357700903509418373343390277126759171333753473297031192336776991201394769712498216451541835455646455917977731361649307620544083972549261353254402488550246309121103308136014157318777246885629907714654965120405420714624351693087307464291008286477444941563682609061660403142024019500160274379878549072839524232544216121782101244507766394051961657226646114658787770397818334995019940122397424574784945734921816755347420150348565080331796483380757637677571682979188385508327311134413706862977866954510100125651481147360791392981270190383799626273860666634185666819608586777185540553699980055943618321564138068949257990656602771226243197701865621952434940102965225503830483100571831818184735124903619578713466210284334998507639631648465415743527822924959079700873988792525856329115572581225094650715337858905559789967612041293999823143061765637591500547610836878557859837005752544565956506538412061616837708791170880378311542675788629526092453482837996482503074774759999944523134795487804978781506902538738892722986992288285549252602666613983661647842920573962834692161114772899426883898504951247635902094673130352641092351594139378985530428767979837096837064709654352780428588303044747747163347643386032444571406635236944445547012001828744909924142805469914397745460143826113220227586120061651760197333989595396769449428644850485123489160811136585795783973642967324095107124858670354508003181501433414105048598916000060790589548791181123707632735450541917897668226768973978140824552656134601043577883117013714693613236200044997241780956744713022822685936872454825774871172361173284954198060203588497943193571029409525964148097929799367931662047712345093369553458669848749986973329339931671129421173841027674561012186508002611529986808694997375818179179102815762618166794183872543373754555213960420282811585710938885067380914739960084044418811804741359133887604560152523058773268257369509373367067993185661767378282800651184590342489355315478343868589564166224216020906820198663779602479139260358617972545818663741634942501858460648747193442444687715726782306328642517218175142719018405829384301072378462104647059763981388170145529981624564775471244639379434269212551692797492890644584842996075526023360312584326595860345812504316476093469009489750873029696852715714720448044691072118483379465286973353803979400706415477047983169426581578697567244285480656925576822316840462056164227395839942906711272766697593318257255808581243651340971886660550313702163437557208834130812116941154312356821182384881747449960402971560633028986154935541078506268422941435063641934827052606032705164723279123647946672112090826211148090359397459448973256657365174251326385339528020055510736934159221910151443618758922413739438698851650223573566698982708352469810977025375943840575960113000785176117483797766624167411591119195753763372884568271664098099980530475640509693431260716036290529610744364672310286258432823649494720171202235470251580497741400280541164172365876735466930740899087000735639597090780386474350051422104906100706652880828803160226541096564851284137579006313847112079922132967398001526895239793666909437719354344012833401310737558158899801361652649805010021366111311955957170702694033848429806387708884813488389719380437306129951078455361343626982668986011889858455623548053957153720861829132648897872148278912477877311103486458910225208106723119492169994271080351781657095780240824172965371601991857814566701738149670772789373165010574938362778050771030904406786277578111868136882165096232508807244125253141302245248522275271743703155070172559091817466338486312943394828509859266689266572253153870736621140240248500003730956508044023155257558281936778951654007277999093281207459977752157479526420111948875225122828356957676225784531529799029270060275379553667945313667981613831311655203127849198900749781569380711298027137715279223192353544450399454132153682163406439519060273948526665802438090717219775266296948811485069165550920341411192171588737816229716554640526701928856247952312701342078149455325656226423990757394545990513964100186412186559931662271372077618933846365056569080407415124552568739578619455498234185107234099181866951718825925366617211014056742401381898841344982164290012146161706869682587672804104448461782857029868157922759097942706864262666818232303143553860824195328901595002610268283608651000724396001239877961639375593648765648521733119843403918149362260009929775421960323838615224619629967771811435130205422004504324457640909409249615721475592305579535419732201110020984851714406531543901621745520225953054046733458139694064391365518957730178775692167719815951721714238868555252898642077368272456379540101019941006244091235236267902056197475905051501170702438606080815414031862658729680724594366150397534398023538028263407120847922921050305067220466753379122013114781827381549448910448572883140418433060972226631158852309025353303553284307781743996521759155852533813481185835404173545563461835641658965306369112828804369719427923790044241301038833516872212384248429589599213785705763074403629500661873291064244472421096264177899722844931172085925341609711820133094993731033065653706999746685068408129722461430837853838547989977711379959546624111031356049177063320285030285345004828599611144195023414110197555445207653076066607610892993766109456180868878016381425920162432262212587309698111432898804976027083109701877295012836811240873632904176800128306331908786981538560550715852149128765921130188110045580978631965478250678284544272932240220110039723693205411734973982973790853621234196553482775445965097655913793360333362400040252567302517393838930679571272910329748529494309119397779284242451265425515116827511796469892794313507595571162922780861670857766448252327241903278408133689736724863121183272211444488080132648517957935772074624548053495837094910277297395713469697249098224025455744752126712434532256614251305761492980494788561141978864037353833169163795251415321043942391133141992158228130841091884342212485496791832755632154532891678424681484113430588856696232774562921731933490264436890074678270748432109863353115959338001219692383186693061358431583258432876039905343431063470660511741959164643367348152770354415403439053972278042543586168083346142197538543743726818261444776918407666706194555133576149254023165351658662691665783423110026181371948824163516219015124004699364879215855969980807752631318706699701813033996992932322815762927490914545035869733089675614780050913450986999766876102548772625779804957273453919683572762574040140723397385202019282829098635457514978209261073449367252486558323820054539421303438743293676098423964134979592641109812950243627734785085122332405482526251476031112065332227354814516149521001819785401303533112767396575406942731068626377615451795467232949383530109086396928057340282781507367419489894744127491407185173731627680847563730898480367006541821117676265781169005998580796961128636780034126470886726478592873777423652898259918859084543137370706069570812220689312166621331126862342800145398973074234304520721933891333339897006355129006268149414929927884188408898237433228673554924640992266377961165561812097202386343436512049460379175610266891518015393017107338061495760702111100624219582678199134512223953973908907983053020005778520952217157716121640371319765956272384047889055085417539580950621588615001370063137377869640674265989136457016501197678851690859696307758296829346707914318354538146197677620748077358767564516208088158046217418175837212636755224419332966057305639361012412731232400434083930392307927182488160200761205581102926917473875753415681117105455045567053393379009163838115972575608216471575449681541690077481804023566915018652454229223563877231159356477266166432844448765593274458125204647137629141921969049097869134816491936137744351692910869031543877039241950761264960597786004936225408416433729207055875720593633489381635068737986400640173621621340307217524638380839513017854347484035012248799128352603749845488015968019151421855274126849001430897555043828704644726407330375921382315091528707822117678944857481691533875079692198972488510932142697076963529760185019024116890396602360682895814969430590473354870880075271397125042931986551496722984344367684083153893244906083243010724365887803939314893949959342074365286341970034788977606395356291979258317800706294768350902874990527237868111203141071318205344818279620472633755323956543135895450683198783690063824316419920948030421031420085035996593763823396009228365733778009595342673453183223848374380161420596616451412604106735634108134992352514157923249046165675232797696067661273194406017495999126538756400810417712927874753274574319212379322879177560118957302169771317443793335471417499784198800180406756609414738928852801749926759858964885188221957433023728341813342025757884668127272168710158982995025087489474781842178501944286012490208020189898326891965716524476427709797820874938791818674002202442940239034543852218875238287485833252123185925984535227681185974153731075549407245886616521371711808633361017307896313054416003472991016126582526888883860855603052244457875791969064920660964847122122729383515173658873843878327498982745911718436704683506394676478314956577793657264045933681826019093793640780659755129765655069501575292627562279786010303802493438542373566232947002414522907469643284998373326000904609091296608566206942444124208127813784476568360293136251338409764530201536285815469966885027103254860237634691055990432561238291722604465459508547069386630718730472459661289998274843565156340486552510182016336173454001271680124515513125513137900516240667225470071644741189757755252654245907868803140030133768914170575655050997707438299245597935590383028878877306857388960996152418315393563844598312737173485951155181875747717221513170954370734297935444321938567380362207852687416958767762928800205560084474964874546252755824479516872322276868272251072684088894772094722182067376962808574764484199468137450854723697408123757670354746417098504050272009992417703403234081488152378157930787951598780724211128391454641975568976619293206327662130462514393423837124048418420548605929390594632617516190036051342186757966346283271354686347538174772386014565152513277920832285553413631018784594458259981235263097481295096713151989581343733974869896913564820849632252957226897728922490333669886585164261581542437155961466527572327301463862956194153032402595245730430998724957875816331970338592621525779605251433246237921258473811633098902268856140206705948050142919590107096734008169858484089099086474659082110171694348264798922562394231182399286937114205895443191819327970264196979254382218469556327655609216002083508531069997632260372054116981715559995186817877569241584371162385528818982485879418826193741838427678569480339958648423328465622896235196603603309432554262459486834619692222565536485659378061061256048193961879321717642119371918252359176817636775019092411925898369167125221389085634634301803920989808664739357657451927097315174689401478617139642718458087409980278077427925381003975823742514835181022037236006991241678085857571687086173066062253027542574537763117611987177687437595151234929615449357881647882677312080953718489948868496358890416197805748136329234005517363790711705916731623323233957919023174620441461823872096402725076577695664531207503479720605780977579376347410455481628043675775904672110589981197036412970015086780525402613867530929087105088994474328342284513187403343684690765990121477629425108394388466293134927158512279076171914574909576651472687261057190907010400166431705018128972370197151227213471316045434336639483339749320075140717153472868395753258202838984955485357092835348310545005793013406922333268799198824026022300164889297881304057961232198149338895143026110423945158036857735564701023031881083794016098201275295349953389529212892172415527676358754411104540259989722483864360576647042373101732024055242035127225969454000766342654080837537768382087803227445840269688452945325325374196658666914841539437569240827870820219687592504718529402530851967417839453627278223741279799664672887856467277755188626831327315906148129488550602890653420356228026893407515787148086666639677799682183174218973285511163077349716626469997202246689824827596903505511553638594382184324760514152635966195050625881116336709413463202194625408079218806937107061635113276040451077001060230102151720931903934618442001049642002067307028978178807157772778117174884257430278032186407025585246513953747348889926312543128492009431057593891073543434222164510926157485827864246273062915355875409120580292316603291749317455297744393725740006784046573495499949173226562045991075315961265599218587627588732599712726621953285358060036081576494042441313763288998851748918580311606759874702556085721444679147179377591778072110293439433952389153204820246346715653384982491105249492333329506298570247193983917335922370101844751973853970561747617541643526618849504789392612841700123137371017863540908382726052368969996544837479693016210189845315132490269863863270350696814694840883747009773584004796083557520985923719469437671157448987958848193198905024800098124352061050093843877346000723389845667760018712197397318923465905785539161567335565204207954111114921424143915699049115070839594729950322355815517171154906862376859239497692130893520146903195429547585773606648161624186362216666310153271057197052671575828652557786839425190547457864234890969919786746431744287037193280826320803234598950759698851819194836916391038054740409965865470020519809546696161583726562235663926214336268697374240400199842222165126370054407362611447543121433708317923747945449423963875756439637981886589387612449682264275486382195040474759831178723284670601446362347055747724151570626508069305980631584252568297283419010799806082872645870017909678026072638533619684628996496117482358956705075671656531376714021513203978094201504286357921273927210864288431929206870541792688301495104576805507592816521355829241727650265916937951100712399422542728543804031236377089220300177671493580642257091101788701700492892377755709804152305211516059743760777781703702673338024818370579267224545827242390025870927497784348250276123039312234168536012871858714394007500413887198659334317944747896773841855350568231602891368048953287511775404255311163257737912026270243498378161081218739559358159301289604989481997293611220327005192138867986655900751434142864450119408015170136285817291768551299366043695476759688750631959094100247289183770834392874699959583213482239335017371861995057478093922937250945653557356908428271987398943017186800207531839853831632385997005159869663460355297212235512569349097472034748343443467816753332241584967345502226367846450293532984310551564949867339096403422646144628088909805203918930113542349523055081135701805898128944428765894131418649926352927682124366206493093237926116704116881465612080829393242117042020685866852680184049316761341577306207457811931257166990697978721661366169423376561889928897529341400639486212122417471390932227377473401156121231547720304151184001135883976879901402363992825566876534704709290537262230674099967840305945097869765317036436213591982073326274935185220479284287030337857908240122003345576930345288664387255130542955707968648919414025761294794482902171732022724324457134571552489440426365876632765215537350276125120322250955638194705922979854294550010563687052088011929480795272821224268749238909124582508718591931189976208731818869224359941683857820836031699862575011884745903607419154166769094677979031674382450459275786824990280184351655983110645338733637978062509741729941852167720700234046598897099471805034193592352451009692038455986631767385589231640249029614990782435194918190500972029572499060999457680752633680987676762811672880040749421816171018113024707336257792186375153849062915200245634910538771738421099825008630189507933151560659901524091977693479929051375779296100987434754754912981877675848879611482521248059100182809152856281584193085616778605779466618027093339336724502998320817255041706791347244786621025142589990128893126999674653469411396067832829281071744088456036150120303135616786557148671382571069485605151525927764726389301585857461475506245556958747093957002291551098360763192297613972159211479747109034902184276267132600033714253667455119615148660648659154422744508126584832697186679389040078900488490443423712402042349311559533628747962403240692089827053040924082854685013500991284463284260286202144832395743546516597557546019352504182095706032600268286170666151856350863425488634946274226771471897415673456443043548959105817094367953840126977109910975555288028930373355589052229480938581703121427846437583647650340003442292169374269145629537474776856260041991344533942380020935901388297256681126840584808361868772962968389662501602464495847915437205267610556919814599073985236876790704743748076128267610286806188193350860884755922580418250351724806869575964392566008017017759479564249674155345934900089281433575130102548143336013941761593194960928068072827602103490758475448005616392465766622188284436220037739462074029994322056650306253990640462820409283741073084752262402348917772907665046198044418378607479852077867200912328732366167009082218912397532891549721564466100353525563265768978004962810095982959356605735955605033128334283364871155879971025851070518604122150048667014347616863940174952885290158857608296667998737645615004631835483259041543616871142082663383111626401498493128643834501276452754983207141981786960798498060701938621169487224852516750316723415379640923265573106069667694900699534588792534156873630997195136482171460757051769656116141061560142956842697292934703538828834208698885745228956979744240390815432243112074481110250461977993452669630140958897718211176779537719087838423153726531435936079552954266068215331984871240974171985793046424652276615704465423485553533765290420757846847236857687490243301752795969466518685834527668994235587415200720631341665550776964612992780920814390271321907508031585825915342396662550816895223944592505561532051804630027539690509776147387599116834690319807506052469278809853127179429492921978713993515997492151200780544664460517317928755042850033493154481260046246376189980807601546555128601089565906834601651274089447264317751983838443666943864976602641933715538273389136099644104922334582140265836275123120578235787175434153486860145231567801977507004019368149344034783106090412479369394485903162659007551030998894579613511335264366719847873894899240508238288008042603735372798140899592563409069914948055674064912103284735473458195136126599269709244203393036011612242146408840307329412212116258698669359825913395149177314873766552869628815781260579777405610490437734710152097138377638123178242754008251764412358785442126547994537601822128682566557399575291892215074878180034124318466044276343541060687395023989086272513176295595062004725859570553398126590503487888723163626412833111902358184326350751169736895540260105292604718957094864439824744519992077242278488679874323338414406757309305863670844186225946900241801927471337746722155676815947726766872695869863495002041706125992266189404625979722684970642673651022346262447700194895563651671545781251376621741760426065071455568317872320763759959154985267825765194091635502531148851302000677979308367567977071759140900980283887464423021344456481227559104918723945119129206433015330648169921969373348899487370383642822024779518649779543661747122678218697881120749154064173867723982976249926641946358234766921314612984278603765589578263227570362261384628943375783495165391510927932058568452379016075041236681428775339067391838577609214603863809527470192566762634829500551341808954041120625506007289329158807068536036961053567383092681094801994223197777742510402579936204909712137550093170891624691484263440944911651738756234119480614482064305993701057443570951798134141644848431952581833876052989568106286543057330525852997023386293583259915345008353046234608407605095152505187136180058492029627074735521408741861583829264645040421592550874658592988304602790130807349665230162261402487078769892874093339653175005806224661093692138093489154675007028056356816803171754027279857710854504399870037700800788997760178867649080836971048392614311145052590201321231497849856086457601187913934780462230216546675756397401158643681371934988925855475817980701792097473410411098946266679925665432306261255353870218795388998300220168577342183577359475984510006346399332249397791019411190948646781245767320835658748910253955918444700538459030804213768919170368418365105892902254755639443532582724617108843526902821924923345983105699693120166196062785325556277643639247533767533520920167910467412618431001305753062926757339463087141061560679812885727957125819444887814660603151372473926511097723882497571418297808605205247572933391948010586433099863711242752723756499222006441533696271565025162717577230925589687732021369078537984021931517483325721474388518219302264486747999669553929883851374937783691028598161721214224640871710176064784516582911751027680327280470249163415872966073343671866697955028922909697280854028991328139612330758422989947783601452656023980104037103609045438711804321654781278196617797924789375318454243166365712566169355112025584004009595395292656867959780195181583035489367507166093598840856157785004688212648598471557488826097407507297094716022886475611114281645918395671253741295808194112484484610527079446073871526516881734761278052103555612240545213886114147952955065596213155773180840477072411507361010234707791863511892298899667834074309451226383092289119223950946738188464366757331554896847423482389126770884147720685580716498225950696250912141479236242662498524579414248562085733339196371420564552233809643741833061505763730902504963990761863125290418076953344343790817909517637197490921736389604509227989662425568674772967198375276261012523461781811221580226831623436149414641206036803075748185313929756407947768197918364636691389642150245374690918459769037878928734637852968127496735033327043318501708881104154979766715872366378315693441820790133588544403510403596796407937007686508824528732654896113602437440236552894558451567660388878973107889743687770545814362929662481962631500558203585483325634339724331600766096656327331746820412747835170028474105341145021513860873348729555618666168847807152733312726414346219557235621664670462286331278040575039712599675024117675135412044314349391413857877710392769052423351299242882782586123990141022977722818903963627002163898624473361162411179774547112461958909627994193507283415721166518605232108093547900956443073357628525713202292908248062887529106913088311067578813178752093972309727920069136036813492330555130880780113019779663046393180795448626952830041989823563739036703231828491718179991967055685502832549205819899481629821862516673647577159661580628296618175017301285089413579474594873880524412654327107828136174112162693811689893805140438856329696877033618806885158469987605682700706882847464613975648474114538329791501883510505088634335554613935647919931134917928347406769014711065029285520071242666321758669587666989893840294199614503782107099118509581044686515895069280897860328593805687037543454264175028662475419563366542488202126145063191252867720557195009983561043704540558641656183977616576057695708246113066145080113726064499208577259471125709279237777184038903972814382054814385928826748253286223820548028264162605536399408444095255045221956526906798221123084691524521636573615823927305477255314102807641442184581931653901321932108051543993095218136282716499302052682701944795674623577425011052402567468098188860159462442656891728750079150825103696303652575979537591557955237543119111535979552941713754583905347224702585073193679799854138187123281273022486901818709309345077259546963493395061828503427373606945225353804623725433620323043459151540510235323587992483220211529468942617538127545073558959009953483803566080122256407469804931738704317507726804785101609971195966016678643311680052464050767589750586879395913805185118769907869371079660151315389220956301310376273823745747500633729296357790757082863353045510516355450135120951664822583966838995422184603291281552394701136925002710617597561745982373797987104832135261598320787431004809191595036387624598197487060572530184662489066052277222913567488398514739178534346298279118955584798372727283233138223360907552947590491113958399243253177111382472335272282380123259570199577447581786228250754759928973461824822632783511058256295333373391780903236140197539456830850894276813863184346728697308310490540893421747646641481150239673755490992624093146618676377635136854404297997678622602790473537982873297542671487657497037725208646557734787466551672259194682573618522871870760496547466475652972904044210710959140461899103067074673532204078923354328793707320395455909107029988527155260605660994584248093250053904119730738332375247592705718512658424107015007278232253617871177800039033797101771257918460601509643825097740366742368806700715908322794702553009628628259945230356247352695725495584931155889755575424079375169403239253819895404065648903871039507639605854819908321253502543567867976178840436054767669714156794559342107655643380431162593815449906672591844445346045147366757390324430019580135058224048772223801105480876446659613551950514644496025478704017261053514841194286826800113299566736122032862227989455232375718093083882164050171461131145935175496236416641635400806376961907053348163862909630394046853170427672556596830061001342438461256169939019290067522676892486916516080744794804783256194724341893565446320941641815851557185200174746898440527290753060501246396080158714367017803302504261795545904308851001134724858863384785753902575135763096490671432651980219473637609387799067842753006661564476244902114949021417094269990182205393507476550862887145487257093949860906301691790047522960909461827626649377690653632127171846949213590664846902946088381947023107062396391293360899426462433813720340483710061650933196263758589347530635436955388349020424587959798101478982729648866698881137486090503242089996112522877814578046913840864149412023981667646573646493496373066267838671426891561260434706452488521516410699834762257950074926713811393796104449242780412828992653901503358179562090812886343596293712379979587639140600326054062634838950424783724863564561751405458188165451410107653352740253272813605050168064594376335301327303231794892861977357033952736877324745701644558231004617728781079952875371119191197263749567214543560038034717652185477797256624828153790685991370579058117067279095518141216946660699500878056811203430343070251352235390879375370011025865991479403828000220375717917970427334669821763833285973749317780816243150655170764942672731767537490557678717232583534664729984526532907298114740806937519555348400017246710037273244224488990076453953617746593136168157199003585869019080796660484136778451026747762244696686094597344531829853529480797581699619917005509696309299456943875188962672994901869182027057370367661909324436725695858460477346463096904621845853848541367030065578263180917285238179649644801538759916158775617105410665439617302931082090008235328222085908633225512944167298412064233536861393136017917182961871079777016445936649245595573401603699559620897068321394284298747696724447433941891173099931115599014674951466027372735109587673001556596377501982269495655183605135156763501086424811907579166655520997838841234028897102935377096341919363685952439945549396330634744574957242055579503294240993235001832657275635360360080737151399729229657575515323197531936437976428176937337504882430090802763439796060356132749513948841541001236247475226396647057890349953091549310403372157663294652735266173308916427544019443682097734738350842094294737883436469028009066302244252290846127478738485727014832270243712186411501668833896260611290710470793312167490817794456344423225594944304778667975654715566231009704747523662853641082571294077705866079675523825858058036275212483234298940804009434039685444714717575392526950746850169821810467366720295757700755783286642086831349686551234558171308095149350827722762818573191507954115406224588169550123175727672580655502494367277619214889129206365687808226142162803650959109477685321092514750378083783416203143255959509009422905769981524763807207433373878479646361832771072302170630274964921762958631765703937414995809312928819421416860642746216337670883336253162478686990190005730745608316501596054981410381419420424717720652034866027154615787487876188866459401320869858954701159395038179611188286286224161770376422525785361337406571769004734114952315254550865472885197308939001053330742992042180890152297828961329771401971943063412510786432651688703500963025184055586009058637327228525363636345905285986957968340914215028247692236869722880252189897465938954451240898165176166842086969743916637637607460654082230407725805107886416822598959212276210260616767686005688524461717238943004893627959237095139566734249436584865081729502132491453450968200130846913324607321237022274096059881152538980860975529502344039869458129108109172605456622117100209828757183078673731212782114368910625332421054400648494703206072436082707781692852114881225535581796820105759871811339056714390342563854967973562884547036365510525973213190828658827582540118866203195122708929005348879363435120721655309304977936651384812520426317385830252092087574948887774448887321857112755923779756781127857824386511899673914728594076493519207067863308857271185213877881992603339712296962604431069345675320817193402478974695235080972797323232859436851009101299531646297923289736314041524088644828311801614594383092142506296183518161466856241698701120560445366130616572449608159136677383841083701573406305372602870665002552588066580899881155286275101206579291806522683310143237923930548183791464796873266898393973051002452049821222910596990608141399935016143146132241772128549489007228311110329562741691992194898286363965702424042671202854105317019089175480354843749011973379200837126038882466008865061632223232693511582012516168927650932593912109619209328234220247362266755824871090127746178444009859088910501435757266838140955235094351660943506660559817897461382933842599983044223149259710655055437223856643329900801159278213533730338005178493491251396695048025410285506789487221402166305472884622776868609067472088861600544901204904000514173435322649459579285791174014990818917910366761030009212424820059252193465367956968333366104078849786637220208770580355620508806953726207942138618402087989958346859849984118086630812186569010587624318375789366005698971981861205704292359367724262986516819601037301841937083135096638900149384054890602743100690509818376923398614704521877245282941674510307438705047745382182271901692703036137364446873274128716586467756518257740777906964125345565660880413345995042001275147782432971822447559791404372234664150240028153097684776222581879142420992424883415314760412081353519042405000343224415018215882864796963646261903474494477463673862392402743604830870732152674747099663362346643575730985856779536442265166197178084038644579298134889934598520022468358993732776884891204258282294521132326139586539046628046371698050317005425112677334659781561046340834932770841732508218013020286356356836946069744863773329606787420796334919578822847958987140648323094576728733746097707097550852985554032687696306681481081450042716469243722873104252095185908853898222131346895527183129655086876751756839124985492775330171534914546869524653341222575385859861283815402104337743811254366443431616094464534690279371349523554447538967827485870208988148157850059962488267727584097888062235212908661596939103503681314167503021122818637854316215683730778886043144453715040034112788413181494646811521080055679310812928629991960194375854857736591334616926088069259557157082281079550533193021547355965126193524306164581747106858515766613298099664407233178485436640366478898405163263163884991451762124043928943337346974154338146726275153079223240802530685423539861579562817774424520716368690001401736135224526143650937025876765159389745224068631741288018673598732300815988478071431454407854163766583117247688939535472454116081366977023954208756875256884887480530789648581716236910748409806039056780485471451396951163947441666775292516801844756991291889291443487099151384951543554725169320538690240945204260245646015152052223714880083803483020059745057492146606476545182183636409902900254139313450277462037296019785576042203967653496300208953732403389868748181735745911204386054769040280503242021946464685826431835073208630156542775747289488864780897642177120814467220210639475853020827227753571982705359888173001267084399953512076457696846484436868088226545787828973691765697430440441416957153801214846410320809988610296093540334096043572160178718769951110330968890770089491172169522766946541921006417313853776795255073833766572885899773433580096550225550689805184591922649675239965988170710730498155832848173032905819166964519364864970112156846792081224699086399713030037977629306202691601097630439301466829335386356925818617531797349205142539191416315482088716329190501053570269955866564780575280719142363580430693980022186725606151516439583550652040157507672622006847478402072444810927708422712949980797248622775624411011322943166060133405600784925526056379234147247089617433105206198629249965607405297935256383842513234360087503984914572264289590417256231430646305069682286034969876693033052662675685912838538232790755278858664029454695014487401875904067052218838757742554946566852116627203321641998254735666757790697270559781324991310839495586063620614759718726046217833021500193676177268211082971025577427001218901569964368477301677744245990499925399011339578812074567636415796981129865216643909032778414099052563166788253947901333949159812969227681202407507409907420239041163139590622774990104004379072984688229897188886002043392541812528197789339149890098908935534152210844950660694460643075696918328713457064883346180985117929822042406997262535378540246222363025132605219747226832150690178760027966210448571472690363916871153718589765079200695047263201820833701471180691882844975943863974640646612479517497728103301848765212666657394701909366838555362453651424859355640475560046712615335181180537734327728282382944650089820212966557930270649433822922805838720955411147414274009681924693822625011862202275701924556253946431189142466791108624731375262742208949084966888434662868177551409239972528459547449127308350062152045301546635994129271328057189204605550930781594634495787737784508837857181547111283695629032743964256459326558866042471826824527816109839269702281523778991532520762292724011835724437581667847704609163620916755965146392608553936658232617609183869492702430609947696970344387042735919629794547114920551386816078103740598788670110132970713764127534611213197085118703110096482364608760375519063835562182058064668496716117762922218538659541708956600713444080842117549934982581419918422279922775136463873858406941666045520628374495548117299990320187353250630223087315651570195333581197165116417014587654879039934610626356760067086380273202278541648916093782105175573469816608204842896029354857049756581877627653751495350050240542654945049088817349526743807096297513275875181049276228076200267665946508501485246149707986237213072303899949057285336576083374898569757873092224697339863597459004486684552814711858476421529950336514238176397819002360511957197490316873654429244273388669443144610776031877311268475788591657195553534317757479048992683089750116908578014339382754400707383547932216709064249149976792906732246570579106542753188218774722320075360347789740721994839147882471739060738650403618939296976031233805512073429638091273877966779973585990739136190064256278047308615360506201426449217865638273752471640633170589636822479125017495294023759210300283736949034586401436805098046089471573924746002754780543870008607642161982559030514849355690570759221191371279548058948829533555496801040841994432313611510538597945149365949544957255171116958491253273931844338867747457583981832004399990537776567378225934745938027548612068868657980122783172866420261182153206230251837480792324859018329531027290525273329051278527232757248983525357581953653586004567862841369828213230988967232190370115777222818957630246697408100436130685236934881304103134607352112216827444818865849437000970541962891550880092204291968734417352299440745715290675130325422812856377643095979537489626703110708872595512354413232930621118651264964648775710902851036586956845926576658880044191219829418628360815602682396641495107482611518130666521145357461985811271756137158419781864364803161539241731151300969215525198356269514934862881614328309399278630466800499474648098163180797297842557702951707811307546882217349983647529332082848105560931868661380991576661885969933197373795677236698755206926917355680169940143000202594413344753310679444160703127447197569058317649067746031593974313446645019959428366037654202201988784308255315106611576585795141365320138235567590453268706669086680247643111608113644601155193805476952443576976541029108646710917574544523775126030831590435511515706232896178260945644717575384631457431792972334772723203230268191145901010513021671229818870423125714763624138791799235811997117984219467788121049160520493734425881883240044433425914392363798309095836338074099693028788198125162850114741733983210410307503098333543095249264267888859730563009283403061198333660695758355828632682737268529269418162660908226961045849496887732679613255727684402814049609824211305801285771324611630294250940027604382750983134380636177114174886141381043698076898691324238685962790323312585904839991597523112095892521677396324204495376619324998765070566414826135846383714535504304624844467651809429680771268371992744870107321689451970838494358059950775672474116423094814890123918667679784004034265270424067938320371739804106515556837354651752441170316591536659367958029811796776796598751620411213961646632692153473517673092184206802954169113554554331311789747046877589314599240293440889177156707971046298095572311506657765032466212573975890928149781172814936839472505131884441112091488943545065226826765381500063765385067088962705563834118294431004800008094126875609914414224532707650113912394251746947072537693633708596766713001378465137374623361052423105655589330371559039227777393881539676173407151351477036951381861071806881529444365929656952478874818507025183035872466954521777938142862124257944764320627919724704302588441903971412317597331559524494007469330858349494143038765278833310769205094498972789858944618677714082143417672891566319345393225422854020155206809094959247074713517077312179639458970824913198556140240029004510348466426149342223593583185461799016446108079897664489844595276026472297563256247664913726240114756448211250528845623562480351763897187164580152177562517919790854108288401068097635829995697206947728186724495702366364130668854704196476356364329908790768231272817528004678902496200082834067509837792772616776110306120700367985788209805668157545787532846431879211214395979390948609957715210423414483407175305150697401026727732900836133839445848854059531422262740234247071477640387036996685459515674863337939776532989458519144379908807710227897318815239635064845663437936335297498396271456552161111023021915349822870176623792944063076348097063541796814022745155906063417416888640495501001031595327009116164988775432315030849659964783603186683120352304322857880822317045593094999776202169126080329706178383691970440006372506285747079932223989817450227939379074013177194537756244496503715368721938742786859028333198140551169666769775564463447690715888806636406832191295007879667485596369838254970285176981266189742656861358724645273524836565869390524064725867138847450583596027768096815736208632326318715955592252528031649196766916277734631387729869564130714341210284153977607277947163755251106241021673548534295258787810102990468992803464478115678626772571265044732321641245276012519919711259739825343033356885282722393270741365965319528950856238494363116295408395853781790670051206942993520106063184143902102508620287773446591286002631938953564595192600496147536688952257235727196467751123231707800134544304572728826835922589701417961454168898562657424740495653866415909545291682336896884169524937805656360894232048176082335011107725713568916688024206619578552879200422545356907083733732868006873780997053875362374738472280972611301106810848386694680345358067207410755108092552443868442783632046501952228848231291110909194865493910490956555762841600744498488514274391242410041053841404187100950536338754597671787547191203215097240329423971341936609114933607640173729430061068880508323000877426873686249366664555539414771315813541954264274997084289694766295061076166285205393346846450225564253057022214661754002073042307481071697089167054953573550361605949025814711001837460179554894262966677797591674463962741627011654356951259722706836283164698832976411134880575367916094691025623173006099559928405471633703074018542629159684080071490770357295642410421862061589162791568523385759906536175137081976296056872129758699343617275009767191366245678276380193122475824564586139020385028974596489564548259254128328615685496335344410794584832818912454582919111373106619992007591517431456009494487655567076959558638234079131963899752417930709588404143278920643581749832779042289219914114344154385010532184342596031443658860944754608035183972885982513840247873272557423049189536100832093764965993572315271475390269058487113251462303879929637496969230024315788817983637324158286973172669104577398438563365679318480166783710870747124721988348581165302475174475201003747952877255735332021634612828487954078286871923430267309023364599876779896173175483921246910750831945858000309535535217927746547719172270215976077709836590469841979927495911053599713887098702120890893087881016859068180815203121873973721085674691979993412268392848557603398192724282897418684639164201909480358172212981782163808067803178926812787973986432337879776578032948933621788332821157283511622041957921404639552148287844436324482411331654463674619961423152952696580460033815329040295335565622114858762668145660253824522466547274748508565620630126222252630626927318318464789517001651693593263935489958493988192699982385536308147752427371136416095514021754820300837491630195317244444871918701713803274311777331955290416775949564219953331100211574901984302157816540272950374434733915736701523000392594399426046885802125982410300305479006023238686224078752876709612439919444804233938239016925209287072581146602228523018465379801879384485014639601637616623573243983126300733026628139581071038166220155121643544802367535094484599619427433078687357152624484359038071016128588749663566063512372704690243861536239013421141820038499397062474829994246159156586391788639391587175181592079669797820683894776317521824531052519850674552488819015115683524496212264598231339667833412630442855640817843600783817232426161290458268387590356166519302180256081835873999065315303335257721217022884479882623371316294587862437494522535689360681840373963954164330968157354909847208458000689962671501523526189228624118766466817929701849460064915974946631642450798281586402109738172353236967076068131863012999228038318390789474126308869633225447922508309708365104055810156482343600456508892731319093807194457281740503896909658564844008291911606164004864780341921807489280523260970316732371793069017121464859047040446101355795204842180392648078458009744457618430081257439019886138928919729594392121338319878566223217891486060940228247502497710279627090141495344537170648485793298333272072864949199353890918834874847655840342300401854049300888579969653694391632202390284791075607612092424663250765302425104526937172342205032115075403698122644816700019281121968734135215070375834523361811307832059140882352838155055441073265768208876535745756987747087299556972014732920504271855758192582227656411866666851760423402954673771223877764578914834576136448091125401735141154910633600838080268711761354427223110292691678273027518253716489655233968235985724380927237354361854680937282966435251207477751958394218957273968506172493331976349854840021288745779173400699567923076042609783233753233811738802378719572753948464628783143905817879589704989621388740899292807276371058920763124586248679769436914520672412605510526404853418174697312294067328022765227273297091978066669871879027914334256936577931350675668230271520230260944484413071148418997139166743893443125027344010962202752270460270326065063256348272596308101608663945520671921516341383652342066121259969379796601872144335990947082119940292100934824521975048873965240682398556349692668458747506493592374455660139445159212704434207258663910761067176205887905813281368054892356873845482144166240395187637026438477489651625257321429504676304303618774085229746610317444727507961494636017965325158112704770099081350193508714288341048697153322202362085289501634704668840317175322911808461399108426599928365619797573219339635446322088084952642492853534025097704000216332713679293517232882626356491617482031795494755435815721650492221965963100954565362678666922377421376337000842742794184982524287969791949358547340472975256182389115927422665432259715160949032640207681814256275564648977499204116365546453154729205687832542784909863147208659396284554344416668023128980441152641822346803672883371704355320371347249403378440688440731966379560298084290277964140579950552145785253630364159454887075320848269860300037738916424598017796631937591721000787372184370910720446524821062923365511972221949333121795996300300520768983499155093709195898412900280318155916897504430992170677844705841052979930232764626261211324165798747549142656952611193184521420953890101568344382176000490386202458760032955939459266645456619786688953529549046007583441472704704204078394924005133140880315833344746931093898905849646859319788510251877505869212418541758149624945475263096293340860862830073091509143033571030578327548095500692353697528128409092118361508303021927541149211214030989478059671965265365005939308839929300688926516119400735196818005366279445657208673522005858747368494183099375193036182078945111325728893616943713857774405528181462861515138737027047458311322337312028411759704484669987284697997519023176802316834749437632151465758984293833526208454708654707327695941958283057367483575521100749515333324998888030695212561055694216108032127411975557156482692239910895771447083382083781501787840328679504070132511932610123844222509705574820577304166475874819632570562954021006419841661392687912509672687088978990787667042746341424456424825384580551873793781453684926460156936006259577124762411266070217303845750941225259784898018965838057990433503938954690583896710312906043428443788216660487201617308212702655799608997972214874021654364148138343775787945050627578387725874340182017289926071272002268811614893365058313873108492378574001783325941361649729376487314117536223292743215788165482679112007886577527533131267869516912203171051252937146450654869692339330443360347729961503834828310398274471849517378266483887791934433460273078548654431700324440398892825505644823505434121737830515895633775912480518786394697785247882799262314119121016349082551831756049687476141604591022282400240918565998793170296141503678956739104185079759107537707505277053716596912728964978984610064082435992891663223535805272102788807320406664419188860474844371683296972856993519606104491173159122657319526675631025282809634657596771382986190693102325201058797542931003651202695971461946901847075696827985193943947134891403698571164213582525780995080415171695265686487068165252997901019282710201472730351453350248362220385524069547557396351818924331039106874528673938264096132047170143095692763689328567284316080177352925577160233691634518575060913026663016012772967457195794415517148129502316735795517042545161949849977889078005143459719895373948595259810506100952788711152239523823356852357011375044266259869103131658379711227827182302320996037002311521324129773432628327923878316050436001639185624897059944607540071281347745080113633749839087842436410909829252507261150151800259854806106231284881880774337481354708264814098078717759662921224888042226164807751517279245667546517827325504831371501608830606481477066446357142074465129632835104298213317379400941513573327265979475122817317055343130218681539046472806153663872306324616754182350945846590982320522000182449931372031618030132778599577457581566622530577453706528207038475678746958626848268376384784133893784508312807022212712889779155088680992701527272204333700442294196150184997208346099077214808967861326246046032638070230919631274094252542752673012991172653510638947613113694233995666440470818992357993716988428805340358061585132244764406677060417756197251335362524700120654044417397415716108338918583248351580852999138589845308612283787764338561043186297209495643472835729573494768512051293252033954631186939145492563358074790427404295277434745618010451490025392819052162716260346623761019902979071085019745357450263420868499663342190164300455981113609181350608920967967068362564039562438310156523718024751967664325948108084367609739292498646074421109499692095363948426289676428275872047828268256458970527776936481193885155344699101218522501723703411670303199703545243996335509406432424323921733508596115846573046719512237323168597133370922426709944565984758513147785026410046647561706360075095810697281963541398585926115773403349775011362158384495568330743433099609883986424539152345632693419286730927837298165256775433103642955227347459504772833231037888232912963809172009429901730755363705887705972009371671645456925662660135043091030340748436733684324931674036631375231590224992892010265396057517580767899370986412024645470221853595801086909216305478481485694186062533758673108902591383514853679129210421190063293787371609274704932014646919833366786936104409975725841042157684129478978164037176643898959411255825743576873889225447372272062919797400131289579592841977158911859050839575528135417498251525439928014091733048984702172050102934053767114542287307193249408624049406741399316806050891589684301825909789058585111231528476116646612958846032192056062858325091707675883322247949336961385574484332803552356762821024725515216086670363809193227124543804781481813498465761949496242280518917490157017962307271173635867509589406940865426622694810879312571977600204184840301752123017438377199794304476446614559191340210352964472447492606073146221616422814061782277274805001886356878706189312402914326645487964781522597032710502137365808380860331300166010094419091597032708085652765915398003093730631701102705024083492651890262409458090304971241862653527235008130259962395686553444343017267887712221457886137507365511079142735040425091868245445206970669010077177545039527363847328528211675424184179203167808503554875385258812748584230667026645310463561162605359422840726672389528877867224577298275134448599979322002265088103331712677647982697070628882486876862144945795066947437942550604843716872056905107951521848199972748374581437740172183698877486840467141405627003456769704282193316603331880204006504398012491159480862071654601260482522459297324845020644684849370023706889894895207744345058048674213201354012726245979820508773373677239373606189183421380683261913138852560805130896332257049096802359801582669180722284763307937629344452491948692571557345286083418313196167364507194597442593632848875696032912839617684591082500076885760685253668774607782386545251201024634678513039449520805617457281975287813689255354178843372009393459782469619212569898859116583076769348200681484259305034555068512547043903434965148451124313512331768614816518149812170420457824361939230966561053123600315142200432387292249285227587363630897533786379529529555042703154788254351048395327059746293970762347269411657954493252575146734279812919227774228746204578452195543451489507201790583707916316149068337128410182522372536586777559121095864405321129920527244543237903420214020320774249461679017602367194237562675286352708728710061854520374866191969150232817592376681107764709152420348975425654167624030368129504017494319380088431237257826735536714692464260383478994727647539324772801725099062539579915069186331996049441442948063855635613991672448436319041249171385309978073825875135133615009532495209424093288481412497570768328726165726168518188468245987534410435773174336241247973378492780264027297663261949732817470877618714043867726034712006361185421863507935635551932172445744374157464363234228723075523407458427135223449511686159210197199153850488946167257216958609479921446859470616682561726859044443609748765840080055478200373089731448630597229122772497424902881131813324004144802451071506550582551422893392218113171673038542678101848045586822941918455709166398297937767415925471390161190673626154551114516832855959737905142749870281108585989548622092583597785699664707333732015281026536299567100559531753818323359059351714919966366744335603027595405705081649017966118741201411576640028669556339801471677949916599565938973879824290694730631711038846787744247020552955407654123036867477229366101463897892770616396831726347256156238077875179516211660631275325483027397980508545091213712335977237395438113118308628876653434306884618203199640003465033961294633879053594375436629634114385078277811975408398343957296583640738210951041651877759622235539143802626538455104763894318168982011507560647615145377117292313489956735421493671544260900229969049788762502224887539539722029339133975292696529811693353446264331920611617544679406608083786777876632270798830620062885340352447630310931261854270706626894045465436938430109475525027383715834142010559062218052909467668201409610911607072712425686991779743374841351693210698077727641497562094942358245483107707841485331271893882292496689015118747716309720114391268515221063806055827483415550365647648457871208973922693879417527251366052859120598665743841266137469769478987627966817422279917159541884730308706232685157654796768497589142777707518559731660672575077356016617818297721638507856415522482286404818871622826125725604151971759157099750536808862636451756975635481367248611836186590289072918827652416259247580975367661945576491829339791176426615019225420452990792251889131589347049219740864145093195202424247816838329141324099512913098965658616332290228814116256086567532097359261915987644915655311501885725354737476647124188471833425952302739253415566491847528658318945958414164675328045198574628161783999565275998645400229221508166538960421832742118032992056764624028561446876244112567935361307575208857958833072469329183170027796251816859501548958108589270916532344815129195506703982866000008470397411068822094396645624998011428279464900929132673701993929933680337489115020883333750759666447132188841828783710404655577612048457427732671597582910443745828000654531171425555995376928439476647656748955724800420002900140680071951779319561404119366175524915305886467634737118664976943250482712480691540927750291069777836931120508313984689157743520811640437119751236409355620646684816144920271826036595864888825813157028690094443518177696800096952062773256550151184401613620699496269135613322383476548108849342193620220272889886769285320908485744942895810100594473123024656341141473575765975634887558635995222380174536339337506754042749051733205124672690551541935384679010688007587995048754072717238376109391697261432002136598086076588653790191943825475530450457953185828754916394171951101626365144948658288004426080898627059180218263927982434917353400202657101765025032108710587179576348968183466192205207346251172671964615926346158766431392205599391095988845254445213134154424849457417060860321067107119633415638084229293822366971065287684041821498193596970892554534202673144865740174029586348679388627789683487586435329396897295597697771638052977480603935156628617985187305958753799256473735758893522216841170822046155910914571020607246790632978871063835066590301103903200376913736275350376095140276883549353983575610637360206222349955937326326462549086656252930685844341205825494108875606534559232616810540894341676331831026211536545399201677139277444325098605593843821026256649403985251998537548099222922716499047927880244183110104021889304689890444237434211133282988412036499972125083243721798991760746988918708594285835019790516627765996840729145932127149853618133962922223013097473682720831648346299829307947852759461397932134992195190840172539241935330775049769023105011196586732994182550534748948499240036739551644624617194088352171389159275943363048326453225935438768211443329514748824000247057346484669698062958147612376370633828682062690206653572053891473516668445956491195654847598697664353099011514464356847989783418921188188991777539276766622311983204277788067656810875776909457071493484078725474066650790171490645293583204651070668499955684862065397400290885590166356367598561905829749584196631168818408897087928167841096773032981299101782442635955291486705140015643325263881857187771733414194362668914670318284886945560397356197243493550375872083927606543614723036818161711599483370790030385835797182061514236471173602163136880504049886948380736840358003051343839502366461929944302022045212258991070143429219116453985730587286072120798697101025332396941076552547803664272558718117745200629505455244967597171380995490059777185644267581297706181622777117187985665354070456763228716434385044510246055937347071809223641460391428622858462401552318852290956324963234095995033196153516251734437877684348141268356524542764918429864991888173994810189251646077885524781720140378208645890491649889383090454409426733356827873259318398421339087051687446500208486256556348699012959920484969472736127185248552772810432665663635977509240062383368110515263152496282187280490874261114592222650310487742078952956536504854341322127640104762987885309506319880713874546858350177048245626516175706605510428428834280182735525802166607454283203866654663161608296653999552959644671732298419927696203696407248967804161087784240793531364242260589876997623239643791912027942988091617899998138253184262222819194067198399350398929557379791029454142791713129921307611559255824057722790050732103250323156286747350529882199091159500980717956285028759113008392006390061087762319076289016352985883144721517518455265292858163807932116424529022048162148977316944358735070276396434152131466877047132162904569490355381753515662917220428712474585735795547808021588987152589566376975122222264241830603154546672150891469405309045419508435851112201318272168501512083633464166326129301774372538728105568072633301358366687621598757689306345046184867904684712523073126750515130992779397381222442478325283886564845269994555074331448487606562225748130952809249627637152965879943009137112488542923956638730155244860598905270972709767517926601723250713364413292616603004759957699019134055783443187040362616115268525434080872480896107190771946569783947485448774061767452320125319131176291073886971823573654123725756831082161056779495051891865625562337673269233176145568515855621462238696668099857791932146646747043608186642138762532879368472623002971196232612837344929449211487606636495986721813800696811181607206759137306802887865820106669193974709595783695283608350484514897215856248032772534983106641347586119553629684745487811866755849152004948793083510309317889282889784864554483761005841938742266609602563250473318270975566283140211020563124549392807694050703977836912957475479725994997795874954614595931258354446676411856229081392474031486625304616273379277476474292104723938787366200978795748845479183141672650660977303584329534707529680207226422805994081814818366389872014735116862734359351989139962210947849862711757863613898848921851851773236027533996781485895713233317111328122235651012808297208372382350126069462277002045898434872026684478902617744933393023770247646999399062869021518169447921063223997313545845881743381737342771075727800869825502606941929621929752519400298545404783413396008686784831326653708274273064768905765416334104116669314104161077789034959254866412145143887835392495389722834878015299883671239246578295609552918778359064491622132971045191511256111265533009682291892739275147026211282255820964526105270737241325369780118308170859753776603870448235462655435225690705273323721462953079766575323663048019920551114367611043705653985112980569970633674998228427030229995977962970482059379620200708939183230086554358789482626115334930389995823906619733719674192118189074531651282094290457187392279528266469403960244845006908364827954400942031693912065641555151448856633996439535795246068544240824336270823998038772118027270447043451458240020149096042127746624349709948967607417458792575819206184517230218789910151209745638575798045519283105658054716974949885494622797418326030020654008879399209188564384959006239094471909273060238734944043985648404704175893039217974432239235196444848614688679849159412868822503391459654618942793826821854201573725030582697596754930610336773089116922764070635697772975580185440072659881730522176317000069918583168989789793475624294936300653758079930125982602698001143115940027805456053016246205771915428585945491064328131342994870930971634536194029870551182505764207164438714730561560041117366582599419643028240911391806939552274650169462773696595542319110021559392232102417740339923645997182573779263578447730867463590708653840527409667074903165559628180670404117321940588220942762518663836479043734088305923153632550153504570185369489175300780133420038501832372001237742040612502131080612947655923810995814909714518834103352458917623808100444889951543027319315180817873986334866099419121703095137571886316457464914405379211778648638338313611038827278699619527914078313946425874144925369922623293447946539420126452019522592711122787988744456030545679400305533963239641311844898698254973054844799129967393527612668267167950720426778613985781699729246948397469183294415367118417062993663613526337087474514274444085814575140917769618830078491465864631455296357119549479664300895650538979222846773843532029774112034080658292639147738396672971095734114611593430689315876526461361578841451476763766439618792387546152761749658681061187360632735911215779420846520455258013805862202427928500700037937678289478445166308137428128048978757866158206863012740980103195433300998358381943784419584345059650649855849332369276027416706783217223119147846360013571272565562253522357982009139186103602607104610678852970059253159266388410900173244987768430465662396309428264719198820906193721190726471557253395829278678016309212101114973095701585539110686315836664875192437803460491500710103524571653579241125220383287256707961736866072979217243616564923452005973535083631752347783676163878545789233794736007939806762684843042320342173673441638559303010411370070986564316422119375979717057358800218711903081415727191442545810039870687830844058657465466886021328837147372438393024493562043201085548806257532390151681578471480756158524779865460195224015832916724507588720968673625680357577038300054119960063403043747127565301833049500389369470544762258702068569800219644290393165166253863813746174641565813123233804610743537653628290982549268800096602321296183138962541154082344776662461054419557161360374052887114407313107614922479992393061557206715058471813813399933408898651606620888325599373216243641440696417349824349984291310548845142908164469596956320045844667585954581163499909713777527551214127507431269528687252214371527918406278820221793311508151674869618282819327294394080473453433757640307133026113867723391890226779245604203801391313240338301287567727324455504513869188950739630490480106428795927545626624402345596747087745942015212367452020788882387673902935343195983853366605228877348283585202248769479464788634174982101709855247872457660259464037833656559304469277435804428380783514956506133142377594465868635383854989173880596092451381944118469092406877790413453118613737856373886463783344188689466563222129277119578797952456119504818066378861015156935397642155122954016784277217218124556005218992927308265144217164601503686537298506685856070957199385977160663126171582284507275201799581459990156455676002225581817392707564176266725568368698197140596222395454794474695459788199206396836544022018577544146848734488206242048895960927333546135127124658026144893031417525702886008961319975192589126180337147947498246516712857698789373359055473327119311325065722880748971616969389279106310724298814071804956489975661903246157021778353395195372170166430347759845020705369162484774900507300758765839372953006752685539321737185316700879798125010790363540328959994460102655135171127631380676018902763380946899213250377582768401603479274333449074694965377131391643338184940161797184018242734800493629263210359875965492691018540159739316624919409702558137051736506048543176814732868101009222254134664784987241449726257223656001427870026940430800782365063492766674335550546217425938690575453921177670465724282130036119980217710473703380375881760942163632717265960569818044476094551303080543552136122542460225504621520295388374115216358939536902575352734773247676046671210822261170880546207764960410645316441022337748437006768349444583247715885606848808490480231912184224401841691678789666474058870575277467047355806351520936753136101911689992989866536224769328896734784592000684027581765325688702773784756191460484734935678262907728045706811406208098586983437058790581625328864708338574598818000356561254283268644239006643373356972430119685573566612175573191799246064853284030819808747996174184898014499242936630363539916245664261592822355107110744101328343770482084809156362997499400924593986492911763181259690186978053576538225293198514304403300158569646873762749477311328123278956232429836365703334753532698089091545223235094120470655081106324464747153180762839177845090484572417204255370211844659959025708184985167285957985856036789991704043376423717845254881294189959831554476121285544599655263043758080196781392773652905363242923527927135693378665361773785141124408892083307746930205921922450255514759884913842078872738754008994808695444250161757510976230724672369653005677480184938510422495552660548431205427607725846342823187690845735994906121114019982823699349486313261847028565763276651966423510602416489805629819097472260948520561480313350285966250122556988956180384157175581990299950205372656438133246671242252595706588909617559626898859217588272855764127192798680509890586226916131256560889352790165324575339256715721686025768810460175568173075403857322056281379480279465638831443187763108430778809800731502027775418644301840929775886149547053081770853219080564024776808419281910087560852896732892521181211501167659622592154483281354255361637338209030502291732256187730567125133892067823076707993278162943207399409292177310708255589250661087830059524212499553734234968925839429518067218283221131814293596486820896033128812507487129018469520881443611757007022050226895181578992833375380934698624082870303602310400315803861512762873295247686053875049374502048596073905127102756628589084904530605573282055428200893665853333009213026676723694301312976771999885293058701708240068893646401923487026807951290954783768602527674897279881109507070385038065003330998446313087256618828987482078824635040707147840838033903441843612327969054819074483627057529598512468125551563173901381097200444185691089739512478215006278570919767372596002472584532019688629529950231941440244421840692389761565062572508000227731353764045274002946446141977427006053741601304337531243825727631731279977939536919045521504276042817060492419571399870981713781433034136075261242975608702447032187227774625262154553348707878516739667560310421728818998502877255105221410892276002210592542472982300663973231069946098801287277574057806783707067393083262697421668009294452135516959867456937539950641917938012972024098478298726246348223807892910708911171078250743567681240264334097611360456986483767726941370871988965462165572103801139615399781407471073443273170729138353131447134222214382271611662754028439425270349092584563377982652393066074409821807046729686870693751951329446446929826535619129286757145870491427327171296590725004015117045947754103485734354896268134315135355613144985749096002530318850735305706441122831914736075963566594124259693417218691915883805664260732670091342544113433306771842317813552817029423017390490213390383583995171521879219267290830192183898875703073436516292071421271422560353140958945377286063049607141089286956123115812093908993434083911640715041615547003439650904808008115010038565389547344170908848394876256665180498541566361168112610446026505700104588609385189757879707871794672460392100629966256420160672789092234636621048322993157861741669310158387982289277381872687193407703773047522642493589215036633509067552470232086780971989082509208927511412425041025510888688874036659716587502407027001921959843761140066484073752068418408470343610552286828059567426099618262336798811543556454567801682207690539240197460628535750504011835158341159820367890173030782209196239170138079375962661635829648451352569006895411362960441347276633810066127076164028905128670634377061216466516821887021295355154624673266787437909219191426503094072040179919809980438980241775453279320184440401350732919828968140607817196694907584618458413651544244084361550355890129259293084875667939742791535046475622083569973460374195902702817383662400452250248108628089747574952990650371442248607558170307208775781361176064091425724680777671349078503352484676060393667023045040364282133903976449900428025184192209817095375983168573882342766093915526410274270920563152565835455301892978092061980633397184193116477436503505084597923615156839402632938209034648769022595964909928532224106638189452186535103511910339664662272041525211815466211895200649034243834295559227657085653956221079696409940561786367918443584148167099636823939867337611052459374623179908386596463225902662692369968951423622186494856991159108155291910978024174124820741880736254489077586310229727678928600339013730832521625968525194155578370576889121124108834705059419276279872017287467054642991108561401795982384686940475043741108510505955012251955068484620698881524396715561406385019510648780596431703704731392786150185560601670615816855789819539890890001076694459155736350743419849915233723169506403043740408840003075712984333082231618230940715810602695051238504821068637497672248814993028115520914479926826871445066822909397623418899839587351787379280356249208907308453038380022396742223175672647472850842832326218200136788171421061586636487113422726356105777784230314900131550339393052098894204635025036836468744391638442322588318542096236451467709514220185367608215114380900225262366914042924284249917447029313969913543238363574612023811041353776478335384536200325782656572096719424660799462956805431696187162183498483686177150095304793938132163389716688079364031324732685519193012947989027099236926223308158361740056897024059311347660108770825024750033390707639688297769913299603964255797932157887647676745305728791127868849789617439249008055548151954848530943023490272382382620083801329315344805779791330679152461061081614958296563767460984345025700618307767739501738688850805545648298729235467221174774844362584087636345458850316814143063986125543611511422718178387682058289435157409521532946876832254246505485547814777421149559003819492763588895669260561353298234664403139282932624444873456178522732178477883187033690375282167523265329290250262608327467961652483118934106080398565033072713231379529436303696941585862985939857350072911027701710844333323779445459778124588446114894936603813471329452752445068173928943716111764216450590131302473642627687796794719162202394497149677079515137383195863337582552514147011493346142331079204938452103293022262382287875510795014913935110307940343921303871963068748393004821398772531012018489216111840655256630734032388071201946985809074246271430238032301699986628246750697910810553649055389268143048390215255933330448084757255993053060500525547677298746034832399205029660182795240059256371207529938188311716768752073228287008574070297969696593021516172007126489855809856062411432757747503878832707221574042958202918781717978179330113767985954691822425596362665767533583265157524246353347163782961456782458333184620442883538928997893330154677284902111320689639872894570044611753668968083126175860876378003862811816080538472831890978504898876535955525975535117612153069343594321897778506567003309365543649557210252532168440071652955107437508326584098990127372525898338792859272118231498588950070849321883623392386985546477519217992521120506903702857077078934686447718882309912686094071548420089100160415358278113544950753875318149832315060674840364847616154639207020061416892536084585071976977042234398950882173248889603019824262484312946901552713319048848165772217419267393182098096855828103707930610179952753224004347693013602872212652150592575109395795681485786794634569767343830887439845631326143891999062912531426699633798589689847233679819422777542663450008107829790382221821086773942282585030231505369679657755675267088266417783447057518718041253067781607406799765556616890754397189551610461317289451585867336696480327092740738841751884894138764843303511168460476023062931361471128849884426092544198998916666452493757654990945132332359326430585302395147857030863572017313067109530555342814564331196684373314820795018380980946475754746466424945169675250486804792734870643417139291813367632242446447806781532613046899852349162977825372046869522819385665722780096458679075159484713644106855179289745706574957194177577023675421545196923954311648270963225522184747802988763378232063622590827825361199030052742042432896360847290676096410943678654873481018826197180776742368372448211594708241631833938679843701611701946818577226989660528781533087145990071428244305786989305340426996062561416917356128148030454359442028058755967801215549864122894990003201783844488805217353593558940029747723897175068892642339037684490284861744047904198834131614096292620491693910952394520649846302365117906976982219029284505354511095174162067268158084791311522719891133662772979319934113637386097329888287126984356127685179273773454457898633731604209259163623532659008301069589797526290725522246884840706169997721830004888514982430526461876246004948011531987662967185942511220444361865675015061482242358606379097923661445511478717176010480698215881318251698370977299630013725224686368839920914923123510567428521993118007183969631607970720271041811676284433679234893518143412630641640831576024958411046051511567559392446295858634730066527045098401835525593558293660927800827659819330618768661211804227930217517156819159878888096788253971441528235152830354283894056595650968994359873633531746487845099768832105314990567463588052878964841971152268530441170306824367119767958730712144673386175066698384591785654355909864812504347630577036554457633323922436575653413278459140581112199556486659134457422535884742953840390555431941230171853534204434970855485465384419262119465611598762179441420677641114321492954282045143372997672173167498803287557849085795159447949644475246039561083262929647370105312333940368396863971764678716747969178224949800345907924861959086415329239798486709077869760161331172570170432040893742956325636206763084023873098002298372101012323139506719208330884245556866912414975299837335763946491478681377107617481808330126170566598425086919439789200654774561818918662151221036125555181181908512421667483286306096602880800376993987959828874032228780414390394213085301155218440705520640490770571148472746786703212851910349207144453509300318845773336493468746678328056471691044708224047445223811392829110101864359932630575765683042457076652161028997805693072760233020601457932043371161454932516502421241262395140164928267575870295441671797392843804445594856183241867225809871508135704111337305529003415783892824717897634502007881408086145579350893884213197525119118040090205580747375965048264004857007056302358929301094926087703458113625481153581791627904227808121916672574759555146965518405749860949800534906049290378458152663299364864119660798645717319496874778057782899027756751582364222253943747171126263756508749745638696632133218948432276924232069925608464472546434318378286683543941717518665784325750879172537989827166675409202441084100680109163785065390692341699224311420857497066617619496632852072763986306038940524977773332420849895174685667548713567949797588848622875082649960547689513780021774547445358818460322678604752074581228395767087778713933059285714513025669338641489792960780124462523498807709444391486823353783966669162118368943556691406851057162377168244295269268088797077933086712704441123298445251221892663921207957700404795230031093400219694741209849816530684319086206854199403560479501447881681709450141058905236358832076300110078062506781685048409894741516006340224669179000420762245720191291335473490292099929367250152365974281075255453321164529568275263166609581828014446187575778144281909003559902227946398219670425244490490600242865430716994240586179970917784370393613036554589453612642625846356535582566946378315669172292144088676217196068307825618620749074611677102875404540763033044956463041354254639572811968159270558801262498334632202691840944630238056458174778864161929019523771562243191720512555367638662809007005847291521456598188893832681002181950792638685568008833655091445904073840128946171540932742021172987811326770635938570731542741226759870706299511720316372049541700092281416227869174510337112198626331844950043220680288508491035014306812621096808225277766559479293308568171575015180590408879728901086213921729174302431857892470786216017187576433377309393911772344699329988144722777891771502731244454153920525031994428490844127541297584899384775367553270728543508467752244521451017402077741036335707440450337810214018331248351878401145130473874404595275419521942660867983955159414025228377482223001170002127931013520668959034444763819251733462980637581799367240974891587521966594277600588036891678792111037310096199583193271397081028385069443748248524437568560427911185005854568617857538611388569831305344809226872721205721227312219650928910388095864459410884337047434328525144479125357077756654835626380633286219066861756656736353142702446488496697410441432675748283174939301000261661435818975015789658443502556680633324918298473773755177147993890989417258905353767671083024492919462519137598380288378786295065073539970750107621498734407203998841613662005460592158120666978904955581548873643091224269237000832910088263401525102302532753904698178942503070451440744231935951952393894053172865599506278124272671737313334205209960991331946985550229536750569632198612046809981778106008539572421324117090636548074798893996500446919022124435395759359019672406297162522410993238069200935131204789906396132640601130447365846828646904648605751277492614530999001940325228576759019363725359754345623756831727123258095876558811580089570427569310409468726034344729405965371050413591490828778806253750060311977234798761505256310110013743610433181726434562481223573564167161129319811688476711899640734556594400721020818481416341460745043112977682515871483956195004961134442183498901209482662965057097453954921161477780505007450214758916814262398279158093809598564635064627862734042169154451013094484492001999133079039673811135688255644543069077769069410991387812561871195674680649857674154748137665314544132272166115229043209746073837888326539709399204367061152802365558043136000767229746776830311246627601694321691792458225157301772413806853237468648958243359693628284599754272533690288242641941952422689727884114588013831955595435365996198618846407054425735715657301489117750505817947652430599271095303889554024545198150833086918919004027518052243387686996562961863029149339738832184978475844759718885447032557432948519202308073497134510767585023355973344250324851003169675081570907483659028729727328845466300353797464490641978657071824277694813681457572700867872252141864250591812453021401471605771516627776428195829901078696073758350182831681621133092318584705039660894250836619861997711866062998682342200655817551367575073101099834758763691180799042111229760738905006740027583630476428209599291646122590684580534150502802924475692707827112054038792966095262919129309052145853386099838142299196235421451405188546391321417654793913874470162034772148808643319065666997835384284384716399456510480393099057949787356946250250242818696808491237665753258524525812400510141031050641431453927146934366454449245429627034955181805729735550118318542573070371174517888210102689780628856404996724693072984773933491441369087734650769384290768457985126139739803553487673257550393888714344145555882091772075647275761057403881981522632779114294149334524960309890656487200426589525251416226420611946252647171263551049019845592222442509936560784300129828854187151694346948496126181078221998170572690523332169448198542943365916384376991120621613109950185491647732469159145168381058233435282668410282081357132270516772899952788399533435591612883902480259583774026039883809553987630470593757201117365337604812454309097636867197044597775299764581839544600736773592463179033148784105742308099341664391527055964637526438586523566934534025605932323104686243794966284570016888184999588684837834262333395047468696622630219416071465988897426468151653118357266072477322175911491212292217509823595967056759511254022209836170706617548133006913969413129374279197440803455195309607596329223200529664199618189090903298974188477790288479716291066096774236848922088878016937081588034367753181015607746522823303834684245058068806444899289052664507010928206046391445201123215070031795944380146945115428871897862210871653896761403342167247284084674414684992318277173447270998146443471367539963911319648404196900560446542183260854621948665291152786548355075062086619207425419412294432241920590469331951824411813446102117794497451634796434749349358006999285337652362396716339853738919417557568550735972759459293830814994372736295633298451679230536934862903632676780323896536716524182239784404485197025533972708084369493040578321684967362465792936620123501381519003594306515508772155896271171630990780001404300250059779652504867692196003982024885494694449196896318297939027556052531135703259732441940114381294345885381578895700329387751172463431317500465526316078553229957904346548182883088283882871401484372509007432211649721946263751077601645719422742344298058112852360368415849919339654197402020033720640814118066900257266387971085157635203402343291062929454631610007524597481132431985682252687497223316527637027601435855272241185810285359174174028887310470667071047316753537705502013981042639566080857084547288516598320550656283864896835310635703914125728183414086667851721566657892045502649887433180076679545759853957987076061023284344329730776810354314394471246889611698179114131437920324253337054325298361036463404691988485026449656397467259340575467286710546074589103519032932563962492915817866741646383251162275215420216821310940478352384885765625967936104123410996617762482235192561340009964602846229630432890197221380088449941446986204807921724656303041557804027748616847190943565598078871085825601836328825460874020990361260785482295973333627139476687461461218914378774264246669768122491632567574066006323560976737729715512494128536112860754873749018427408254635360036030800016691139868952520326927947011245483694195824198268919717733419181381010825507277146397502558621041824642308902463432380594704394025306348102104817004813907309731397829384077528371295578179033058378206175316531592616427904705341975848466520133021962703683423006787524784741540348169376741997779874158834584546745909250532143015881428763992360705311970041964902170947263859982675125942831281284256940191707190304520430743254895955162619933914766035558924185847877231422415812452527770777512405493812695092063334053526937110649607552451245412505923276328093135290876592616732311684157430197978617855203501469755240369506082370179891619777523868971893675573269704937579947690635479897131809456999944856567878063812953494995101750801135579540547771406202433552335598106095775218336089889030612863248962796180205982749411487350566440398554583711351070638039604648364617014815276930212232257245442136677915010508476672672655246571198189381698146334572399884175347268831178616906423550392851798111707554095397053881212468599044802065543764125111235736697112680057989944787143507067591987193561515155802548504333100359387486719386604195132232643310973870263975290026171837804448966037095997842665852022845497980855904797877176889407168935869741811420169475280208405882387202466642059937524425957870089878364407021344745456486222971064834828500879955586937865343860933343556501527622771272746370710267144918327009088780971302516281691075878265932760943432239574636695031127338647024066574334668903604227237240754032101738026992364268980895769761531549652649604607339263980809687453769445129641374610180852110384540671204633659296914330441768070101458198958721832636853168917977721075557683615278110783016481858995899497809236049622552622571543201498950961333520635834930049213704021669273547585315508891851522259710075933186377683041830287170956470548570426213788127960935636702192767279103695377503056740771487233107533072323685802914111582774080473718363124667029966346177779642358579759889153498811406444847454871642365895703109552436254581830102858313475001827335959572325585102596099173702179007818876806596264176790238623245733297632561450575544896040369815005582840269309173171383659223772787547505285570005535437859264075243862944458673079846654058927226971997544080643057101658964097702875413277962123466538073118473430248236444795871658319598130123912542279508830669652166491082651009859274901801344193170312775732656714218596037831675622328278946881242080288667121516228343287580291143706392952772051164914126200535296702310078689446545934148162796882846168347795296583393828803003059059255311633770907355342035344018619829433942343517620141552615020019422934217668143269894425527222410036145387765879513321077641296974136766376342792147776246286175312197771226827592310915805087610881063832685718171766422313157877703152082553837873984819383376360357489235296978885696677929646926666821267512468690607181821744780203108388869680754015067029392984713828602437666029039360943798515993220839962339424534383098821683932831777106150180778654911082105668391521389398711396688095247595249897161334890197997663783365843659661874941712678867006095627166009171636321020283650384066008442117329551261367223869580353349020417835290714514186823257542606562725989028339079558553409160456120348787134597381373678752183621332255646436418536857840408961433093222809774424350780561291729846621380180654114594718185863248125043588336398239577163829403288396911010683808793962752924598531897392668827529987686120207196179374145735548125218855777667393122083157454896508605099902152666060423957474105377548744569300183518317990525258434080124089402402345022272876284456588258884877977617730310909930240864343961853491831267402227333285563321484879963226020749844673861963564194173926864374807728396252850694120307606651849637462788179637454397837975923777320480057722707513366913161442634685258334801008657485178827991312484568933414946936278988632031976040973812365715514974082283445458296743813248305368024726478810604434187970030180289185446773583218969779402887345683768416631214258174523818262449484878638489743560304766654469428402494960186075303671692945991488981655161113784195131354746276422566832243215597392348373644450523870888269877940411513734645616252951398630949795970477749224158908543690874288470107929047302301442462280844233721425414827760271638192920653638708479111240666767297396653690192555755820428580428016914598839914837575536931157828152963758710955632213751050242882163616553094976688893562329442553414148899389201523123756268993633722748383692797354786345275097676564436600058769652004862139133243712798233406720429735711540993066659569136847792908120175177949827319911415024279164794260662248171404839148410111515266689558096246213408388463786155582102339560933474628213245274534659801684920737580248183133249502632818303509253386604221277686987113458485615744355224046164405436436966598375175551924574111706733564787134546718469083040652377134301492277892576661273286155713172154464652637158597866052776367473190580156498500042328432996719870030314593024285574871454586441018471929386273682181834872563503822753720242906047291563999642821794630228707792780900416210720752199554358610878330955485862844723251323871941388058441079908999305084205439938474393780739642583547896386513494570694310231145330758002371416734204908956140140514767830646639748025038142572043353756591797316066044548376156054900888176009170542383027301789908975104341572911409192238828901042415588254395440920447644240987013688584404546288920524121102779441576139046807203949171097283849548433867086286852014387823438730983731451692052570761396840515100254441141953862863657046897305909074122245494626958042505307165578317437726009333345660521111382311037050968483243822809059319818621263430693034055377782221610309179952495990064282416765277967244274364279232149300049879381369077870862937483506090281277813785267313412012104193015141699585138069468144038308024605717369384759901093633697069030442518049545302879367318058844666076206811924929841843148883496638779605902630397860955865300725473385369251114066802636405843971336370880622462212423688084576806620829960895042553907637989022217526928645653371451211600410215686841469407153536556617551074331610585383441504688160090797393624605051428966904168970863116421263805795818616783547731697433882463991267956206780947247163386389009074981512791135538603609824789628793640395620412715113603883369064377870680933963769829922392819700710405428774082184391406559508394235986603882231985234485495741564070260106181754703024915563493576961927016186162818877214868119854089589685621828847431611506970684238254276935941470955196265392053306629547521896967221924831552457141783413227023108948044355293231763504894623259174408652582913705645658650404968289633214679815852251839552350823950853558270547706741400899107372282194063004251630120160022172067398621167356392941331259835413356144567360354596651917793364760094459755016703417642159741297688729054058129496305618832789162012321946378990010410887644297938112782560253723768284977258908664540937446909652027686382670072634064422405895759896553128950017130062763783800509208801142157550949555806345874102619076892333531859522398064224189110178233204651539132794033022778856999417127274075851590343345621664550378701065735438346806066570759185212170381936694218591116574102701547934512187409587616387625542194601615062488828034292328996175532059355887856286490162194071825348738641014593310955330657200976234960832588544853755732749157402389498390823790746704135888053480716465502380562422096652108374386920470695620886758511204120363199297053380624225229172151590475022872695786218965527996835470816038288709046938737475163695269472922125494753737901414049958121624794140338839828088156321004627644664846491853315444512771770993895753615934514566848224663539930719084073701501428811563936636430737699533750244746817198479027965933264370505444659754785204253601583947443871613116182219048156723746119694981251725140068961113574339962442188932030284394472599582825741654903584522789184505900093691130120093014159522796025554343575816737983567902697800552453411125522243554135393287821150288655548930371021586401626049868932197272821207815386813719103079463915093179732588553986811396656294148387352396970761019659021434648613410785619291269407243035422469556254667316414804082346307503358331435122584362788660365652825779093373629658710828861350618078704916684530544278064405845360866206503012715277975090551257290649301442871588232819566295002148870655963186882075127200256430807224981722591781209871181491543609063649965046119061571178963385477487738504003810586716420437030908572112616536883217375208092824071752431493123646805336742063359004073680505474481075357030985456310428868614597658606366457959509310504464333116558435015613505860301169297194987722286440862032072048305907223583109492754998260713926895771662738545917625395513849872827942973202448124183147377062652644140751107487518859912138149297166571810379855999702462636393555990648999189826980061369590618198530897345481049470243198901853826208401174317030219412802907806070953899620948977255217698308419694275704735936676157601895412965893564343803358077234803806067201644440561645143001491910874164959953491677511988372259978685230136851138287903204221112703760062227055777226266762206368740696241699848088698093773020425841185785717016557409403050141124125928787155223715219384395009023490524821736111927802957270320787155546871515274038563679226379296262458741222064462519821380322478430413972339504079850070060923570788578471810729268710153779148775270113123515919997979900236456701532704256269940986356806830162180442802540680883635900703840307574204020590729000178251700580797983317039434479418064228267074963205352999524885274602735023271042937318714379262905493028343504773347669390279758423170700143296462357053836694437003916366825562765114332279422632362541478383294244554515730366159623664360143215127507192020342552108467707097103585904372914420965183740233652796360948745983326650571562537017394574655535254246601240197446272902157375531806751015220494783874825435905667130109499567955380817292524940299393894874859338356295848784484733637687266412774345001091232273000534188872662806433771928086504244376859842906264322249924078138882695962502810303776607765996806918728363137123284097294984430614338167195870719975668761489741307372010389458563411562004747599930671718788150636891078085047153242855169743374964169101184523801929936435340420928761784036524787314240134435117169019825493613715308640464848738932299516499263929052341471540477102887199167627734560814069924149412002009125963628058952565547578318765854826777280493294530401012068053337552687362809697837171976976581823217835849619965989800537018549421013817630654443919394875937118458349329263059167067446520199759419436504451516708989623034709429801370252106539609365390108722747343979300856661639186427339287036974410365806308440228675453526161766974022661217934228570364616573526146562919541793355458891549378745972300699073636514298362901879950532427867732190770078622007226725680413875313711856556277323961789518509039087110825783965159678782224695396767182323953310529691728067415935135317133682261609906334913786161074336630100398020094538379021552214299577350776088873951403100116324804436739230301573161979861724473814349794922314851795099045260843206919939363316719762387633581969793225419290425604949475967463192328179798585415909078425983135551825349666710677112160130387420848575333553395955676362994667362782356700272678981635986421599810273928421565816415459908994191319836668574729080085911862651120285356228733594415343658092400081749317304073858888325477144520786484221987355170045842104100554543696405886951659532799242315326473046924183416401815238098460372004331907978561606142733256593099085668059855549948596920244943245359028782254145403334922132979972779558622228434240172343024410211291022718300047154776526589030230748685751927138274993776363298273282475654620942379481209371783477439527001868145822653229952115612440752525330564627963747585781439171996779182772515393383716581409616040692880008207790848913477596345263178026454536547013334028444899734049812998698585223383972821136720884554527380851746789011607489758433852802379572680883004353084519999214768341293119225841672045645164113628660912312155363906604239376020854014432999771324001064184269733581577539938435606609093539415204167255391401631637988658460984747425831509389830053587645728184494678200607495984096361426588515010313043494486199851856933114714748694076008872473547785035940320617529378052315073966832242063223590829680657429913810492396085280260228891683963553365598243974912172437606785872815271107689975188242622526878676857292432458972197215908807833070896863758005193920533361380453996114822106923786334318260900635604068489622508930882076212888203008764586608104551661005384884734156726892075898307450809149644521974752312071338682275408007717596115079221588916545901431687449984791746995574582066589023741203201775605993457295736437325764827998914999243316291153182768598224412878611202749377337996076318484202261755411300145364103735153655196400974554731820449932150165418227283035529377295598588328673482440565219535386446627141254262937051066917168084244150462853973103259673054707315488307868124225352061475758500479742764717207598910973501475353222550642952094817223473014250327710426282682441469290413024596082136428149263574896174450383913040925098605120302706883366911355629210977836004157974894770107981765678276146770736732800688152588153282220758542854916581068216822206759290120807771136847379480593335723223881486423982553189367577420945832955812108736051321401678376282374018229001990178684896611909237191964112704175739197891267594624186225143842949109485532846444354255621309379424087816663288370794714498392789113731835002791925526408358780934741575703619516345343736420859235119338743300630702950144715564237916314493379402955425446745259937112920885167459695312651111760285306804983953829096095053390936566644042124779206740167207029248240854471934147098717723840566618328994106449166324904609375771944206548323018467510547706384177889847141147900964809991185261860735947870170919165502349557711392728520568712199205687812132055253235528974326375006389628501224296647963543918593789798880096093284792925085924197524418009737662352834069304651987588865116411754650417658205068527803960724598282533927088394884442340541456925967582721326417439859385811526230904382500205632751561256119703201603214890049114034537476554833563113156833669393603694683113044740972494760982411567806244913888204287078098669392075014379159894964781481051412250251716592415677283820064689382568300642825020674547939861442254986425402170524325321723787657003449003666987944747437384699979786352792555767431021267237980411479340568329647545151228036892131626928063664285790806132359935734238303643089413892864377870654016422766547188800498030931184715879425167364377149049236181642008198405254569650891192623115529797241868560376840972002060340178117042022352886521999902507671896605689223001938377025258409464041185680772925261065236464352321557454815180344305424244384044794599180779514547024515458101801410076358915626992056455521687715679506984051067299605528729137458969462870264789360283268816491378808319174901702697621326289298927263523490294790067045930680827739152623404867598605536060777033105945793446142460879902728432927106984938403986921213527216412703322506275520365373776343182440420325008288541883972646019737594009929447181044247366911769840708256627041714668106963211061430472535590484350443756238658034798676266221560632233373195649386218900633785250577500727922837788922334894393702225100988142701566259031163384376542828491867383318983563498158413249614776451210949492076731863791048880213026958706308040135220395923507563357381082107372403271922067939262417511350085102194614876506368501630321273978139182134361800858047731047330526351186232562940676519634702784078986558242617204443855994218688898799962489156113795747583324164599040439953413673511903510961821272122059124879030565513036000579748788181171997719627082674659146277269624344611057059928407529713129779220953860980298894470710067569510605432609365179193683704104476842951079130399453924520331473046243974424733212824498594492126139362516601164183127253104971802955409365689540072154591009858332504097197351363080031744851953679550378704974686755132419405981777731009567299130006193264487500972162429641833115014488962128736276080816069996456888482749738948316741894788198344718047980690483005000252740682171321345331241270330961439579699147733409086125354174075295671720893942016211673298928671533158121617106908851988798147173811007180111124359159637947479418768445382937404899191128018897955150477555140464821825632239186775951254030370871847442562084641200217285486659023934401726154011862135133716283767499732596951464844361470258845629637456650680246154048786481862174793625070770553322476424242062194568836542609467708445964180053994257103015178424686031722047429404485443962571809300539334722071149702717901223001927649991064705852581500328937016992420550967430046050510874604252714594746782382738153530647122420225556006103071187290761985787292915093335684122172866076230204506858267957509692077636502191348937975287329829338959255014174824094303550866364549934094132966628418256470516136379513323329146211452960852840841753714352108662790616785203664981481276217518975055794561564758006815754414426442997941595619868328689524045430066106026201671959218097641034504824272560248126850439215400143486674522772475665853282638193126219434181899110743173078567844543321450347372206680752473294009918348439104296935781722703320419089854076696700897310216109736154139542716613737327070849235502079881782635921235456168380439208291609835505204992260234777686910864555725737538364278689926051933281625556620966514292742428373480079513137405172828976356366058543831818285715770266862858487862334251106022478465250112481403757187734889476222078619687527722608370812928070594896036950039318915271457504483507007417374131540452894316396005618607910934193582186863154709609049232234652586633048065496328984086887618532513961751707608884824255667994472757002594746610699172058618616491741105120564764749301221088377315080634621499802950818379473933176598549777322815321598545174714114292212723399352433542213547686005408851412800123393895028528676924500644700457144751388773240638578602559072654083701255378632431522363735668349548494583547761089350675063404543711347024639407047528446402795583341464763165838922988995296502695124062594073393134994917986634766052982050318185661824229889961315222060532985164058777153395971159825162300202822286203408153753604327605921130523124265567346181052635391687219253974344699517104272772273305516838209718936943454032753130923247785119900289312548112605010911929255106058625941209875571068340544408766130321807649594496888210288211606281222955813531530942352262566422179887178153640396499589426285119149689634548453476526012644175997495522770807040114339346940945173782604178551623893027929752208762638295527505607884685499152062901994296830388081127646654685999932343086842326565232314878245604153591282191119881542231561926908552614023236567119526892765515848216959013248013462907456223710754072044746980738436722726143561920651279674164006553244679777634711898010713321697340133332955396617126536309333344191483953274303775676808580865236779718295679369600459049285510818786144298896225538407340493783806132148971186087139372323565626306589506277702495550938196581253666782880439347513679034733853117612030710526413612522248226275684296372447124785536950884959595284248556038792706844595608632765400854464691267496200235058747251590604207139162585917184953809808159121131364687405637038074129931441541201294106917838472602296321719225206373979088220701195816328547856519327022062172031669237486763029507464270044045642396815873007274969572662477642752595053963016960545287364318875624997408526189114434293659403631333675053395197001046640824972945812725679889491511854830243296387587863469891209016317547368066682013652857071825004842540253340927407406334975569958536569061516356697688475035216683189397171917184074577230686033734052519749900184469391537133502874107983631616441484743583071212409801530180202235831415772678852111864431694464426810886809538341753052849697154047560045229746915354976580855002641541261122566755326755006406153150054542301750052739505119424816999361373062155586484793044714400809108164451140124470982112178927892341014863003100187292146385590689592087804219245006666414135814967744438750482395204693540171672292570216283746903567549737654502423962867857211522653346467844460978705077670950618112158304768971671430242417835151685116094151962050003637061291176172483384077599656556141019800121765089325627326009842055433425169035574518901623428649199452236834174723983043792580862865522633867090728939542552935570421700401465666763026800939019903925450805557058474784925714739342810103025431871520110656678899640465328866984916957204976162640165284490012223596100234341741133711010375394799460548536159898515150637082052004685338344130674629242779207575041105118020405903254927798506010752255501791242935715750726195658638406352839810140611527825692853237851151993554888024569105830227409447197720609427307645664186221348645645980910873232812921324458245155688682190608248056924784826537398946311732806201908804627680177999078440580529871653691131793600894393270995173986601725317884662161741626220349239076059066752187614528705378293406682993267312439249776171574526053835691458809982497336053911607578800415100467236655196451212438663785862313817936246780514683502641947353108465797351425130667820794492799780392379570914807394221809908883487183286204348117968538694570207716698540851995694513488089878653038894203528210752099223509826789345182644151946295868277790087314962229488033798333703688053279471728435877602840356391387150611723284084446611808354317734412932673752102324420509703182085362806648383384169174706456439298184017989759858987830554401108141667000482894592568949461070605804122557183898769951297091639342345487671552656581214521756151225352758839408082586221290965724520046396468265534997730143447508987317212321701002263348796206734659479063565379907408961064970441399254824677274554608818646217541333691248664602759907856791180829508040100527034870224760483863373346149140696654954749827964915590938136481076379295031527658059307477563957837050284311219361525493071683348999612543243731005203580611753915601663391194783297670530436434580096857397048928711551091424517263551042686000338255591608810680441526897317097323888593590000960552307928951827115547666605986744625876883262564758410919915131279334687818535121616191566667073840595426992889299325865272873669868069349932822289263151140173476684927321416060803331898839052039649194446934962332616319802906287406467240079236105759222397300361564600267786427295757415954534933986336845233907682990632849684079428802989346520377193144276236554788579095524940327405883164940711858498388029066766829189175367547686271692767709118642377154262526147771332213475739190879041572195565220459973982356576581272692263576078112888359559986349829964069893120533963810052335475889317087539249946119200385463528392655117121543743848204082596401355272974191747398462524336997035352823836111895581196420993112369879314180159526038822358461730676028757486068598019796398157133018755028019950935885490283127116096385607181415985128699210674320946001971444049671212468867841696948484262581161722225236597828689903679097697896192473384556070488341587301674623824982571962127772422075362765675528820311002361844580855054817738021409127386871171491650451476338242409077789644341917435998434115846058237674214865837770634593805174532268091518901908558763982883469820749813283219343086897373198009483662546539523861718524064466550792118943893938499994165688593759056879043431022830727552621753495781178367603998277293280914788049481958447582018511368623227166639382176290866685954258399293627246250626655449739736589759734410093444686099275856913495011154111086417225809665112780351407123876848671898237723889626226498551103768644774342848506109684754062448405321506780861829567143553341796961810750414299327157161217921039659664824916477203484732200158158144451598945085883166015411981881062112476674433234905536971421503903563436965351216930259047571337786629704880801152112997513127043533922930687353532555870702401045813810652651880063256636855763922478533885070183855042345949252298499852218146179231381554314057743433570750664704868761320635140142216465608414979305589451668681939044782400233646451534114441454396188697363767336259254619321622321394520632369346565209446677647613960226002516911296776398681384779939805736370785262273397309871012666397539905613639622712323166968682625827479356482737135238549997215183647867433082402006488411884775320705941929785279300743306667851124841080056443116995378489252854030656378566795330775040096385468966488896375947840454524272122717102505226033746537655293162099362100204197231007300151171703205822568754475607889252358191021868614233958532440297673557235410826992668524840777444096029753454294560839533444891683397613233720483597915039780737633278786071706122455408202712330287319816862303772045508755752398259576557612757055912392879270152101432191319401998124496758592527881440692914266911756416043267397416710068364832697894581133008563446453839226056920087933634693408004634541997963094047115970060932070575584611486470882321544870788600135705191481399578235694153709882967712856086965057571811718619562410261874960673395783978105298036208364235848296338539035874271798539279194855636324009545642455462721749428973208818049182703602043677491446732284387669618355809249922547713087036225307033396458682149747910379910474596197283435713210388724701482613209931384597957294794464372085659770022679997581276133417349606544427857358379349035799543029126788475907095295874605434581770119641400452039159966094228574338998294367010875075098890700061496851187366231102934802593796791665097837827637881772152438296468442281675825126277626051642204802856868393894147439043827147181166212992080714781837466590190901001158037537885996732415022191369199828545027847722688212418897675746276695512263043282856471261304204816360392293285146650074154768920706598217693586594963327252898281478618291999887551650644749601790683577469790281539571647876427600905763081018938756953359123461667692397765354957464052466555109641215528015978327833181280599178931022970056017799878751628622347841704326009669923761018670835875588806521287515790401751074745323429105579833778535927659224181024561962560255209236287810085301585957324559073397131595590420405397028917607024614573404141446610102278925635951215593123124264633009083170644498787615828120718143782754818106480909718874512518823221028184654200044835193864443452475089031011437504787413426602513178352223618159665993746202705313707891604986454067662841716021352263015935076050510590986221765345484159358563089460994451480491343783074356422967379266170184222107980254005995604396949153964778310642265137800084786948210915564648879217160215760031724784506958301186185553613608784509544121442665295427787339424585176188476419447454379550196444009022320537339679455099695105711352830401776075661467121136254375251836390025135060586872824085213822941804936817119883594644537907879825674581976398118145913600630517725179904344635195481160766909721391605554188110567046443422990889682376249923229009299851549095519859612502429625228312519573166976599762513163826709536122311598517870422669866531614990799682924006683732806418130398488864753747187323288238362365455534685093450411889803326381211805385208336044884889525694348596737027724236327073422780346271029492616160265944137214901758055609971937152849002025729896140093906573377198774572594890548608713255443768573552597212405043134651334951826718776609560989183600636429067147586059148575774515126139657497951202732208874174145132546622291539427503383578324207109779664736769115526210588383626685088775030574929572896882322529505816323738824141382496047608765510682396237984130564491490925333776811749657915589088094834573532420014295301096009256603883195063714950505886612665213346320595034097118018064120924472000809574741353251193599820666119734566001840882233114073194303764774186825433543347493361607716115266261663842775065924899983382099836039785705891684461153342028255560604513557359468076970028288314532390004376933716064526116774825476685916339050396216722656381793232757531610056821555497577062565638641969430858418975731776534043311041537682035885869151444845779668523220468109304600663442773295095034766353324393551309642972513259117914050963338569319834005416128295049160317580525298602233914118679939399549747807934060160664365901124129838230786869368565112614698040100627827289090871136169314585974218037486347979803490837624884044977032157523102359300294044104793318014233366461853767940883968023521576911089681031455206700136530016955728065165080074349163471934361610648672457273145605819115805753344646384586431229135849466477246396552512741808481980998913242439930894662755752413751477826924886477171570245116487433666264416266170478178921361441775781943635943744775564769708784130249756312815260586712369683363337915255789585681312206270465768281652944720008759662112362071658081919493884532199948183180380722968515531751203864405447233700036121398237502770393631420296903966088460286140870587423736951201087595734507845419723186899178745629135312494245237213940705278875881850073066112206659395232211686470244132100841178166743843012796967890104465476282557194538416108132812555761359411829377386613973920445992493366655390430431120021419378412495749326695258746074303220289871277239715457393272364140753214983050204337903105892590893847628086718864561648418452055716202341291475546710757865611511677096838013930482231193460041674533639454485701862549980134299350866206107184870545488048887295658631958442078671509567634754789587094492649189558538165785323935901700669317233275643543405493672941536039868046275871285287192763632400287166898508901206917082009377808036687421973706488952525024154386272208288077695256497388968648010296659728445947028782616404169818262128438241831575810637676528202419550380409033280471376918297140177054195362832113404969823884866173164134145510707646741576702205613402804860271209045686195930714801833153902925073559461751976707738653889483254895795540353371333553979111419205780334110538714093343548866847100767081680598655547633913993840182038744902510301824317039722798654147338591687946635845508288369673940016121857779497160481431291957529467320521589868174149452020973444844074038401907209562851777180300701604432694280811642753132256815631675640352267760574829240518481617178551749839376917193017447240778123944665848814053789974997509612938234450063463684727423553759189621282247255065752507764591949556254542397025526215979981783040440097779032919056657358785687021176729935653384338098617748529043364651186848059260785762072726900176657854813435712191660731588674570166366817487391404112039060807419302162596954652501150568219386373901928117434394633843839385336965036195855573466107388944301551244938929656979792287792438045421334659690630897675146295554156963362201966854668153072054110788140170319769968865175580195585783373825846276986631957272981396750138302959932175584261572925824988694324418998916143422169062170956179373815677374340728328122639640039495120309034452956578412891405321982374995196028275052517416779575244361805859290645103223177598750534127004429255085733319236220073662693650426849167479575509440083284439816020351052666191008055925951488677244040606066549442448380910514503045727627036352518353987865176173534094599109277842897274221407178552335284822163240030361309926332660967816612045268781227312097739585808787993825775392243991928714043533544949137631168096684866392438000841531331857125921218300988561212872691493598338543183687482066013111687697409567739552477911486879858895977229790862373588265022415159760149321411395532392398359866638576011085640937442491496131038043097122784339966433319133154337205726254180361652808521934261889216524584195595880318020294628233202129595211160235372483588500065208141516910654653546991543599988787571933463621179057671467856458089580408353241264806191932108106227032105785015876132884850367271583908253819016616611339247628766643706029707400157871009237945079596639323671009024308818934056818290837060874536325656955649604377428605978370115763205409381610226965183207621091327919083566629445481835627907727194902125455820495894553430062741814641754175503050652255976564478700427701112716928817275628875250704166280603821007897254035616168866676402186628689410554459362029172934642774136070608898746875286293375968894571143983411874847111836602325548002855576612608242639931544861550622207191496390934851079985250700335801053345492961272965060884894924917961605931421001517192150435014469151209456527862163925057530835775201061841180051221265506874723782785512282596552423126068798322230282869484850031804827585524180386586860864635692141728799495721158688764023645850895372528138200049050349598225317765868871645561624268770556146149155528089053304568910148079918794505395757020589000150265129905968689803131527569459812826898863231532916114675817713772306782523599414402227824041669519913765204384448514080804518014778381790107157345045391302819454152578690641525719379537219466730587401121248719170102755672152060658383536366789274961287602434384054894313710101587679463043411597895786663465759363843415739448753009477178959897988887396379076974214365421457763705462908370776550385948744703637483970445916771604469983845563314805525180303407676808189719379997989245978732633096235133809925329806102485710512290167223599433705568253589252853017619662669931096026838078934005581387442309332064344693020284877294815679994276232840772880577481880146559519707307786238819793045351503009980460297057828712491367307204369835242613361973563564184591825601367870184523442716118821969441472162786363560826985793317674064380536751445129430002403661421421248417905075828012007134891055581858835893636793527328506115254222432825340850645666084488678148439628924013775108048207793042594065286199828800713726466901240282588967207726940624533423896893922420271049091472702172681876832244326236388072834889618225215364750538154363739667068724764578810462973927475549739515656572458186957886948778552523595345382724689423973449894603131462839818498603294209326447372574107996150656243973588523150888902029141599914595840165691220257358438269057329526997663922155475940540349332503748800020096388292792684619530351366496743870508325657603399161756151382295191829448580894627751520456918569661047357997134860157158622742357588716958728525854111596166900381006190010656350753681463372861685510798396386779729320156380283253836561877645843441676115065257379736549096425115303254870412261211144694355195732419988579140277832598994880129943613158976140719333648315526419480113030312768067609921217598360122906739610863394053533763209586040955232008506580618454657790645496571329948625706719135212144420887732414752835358135368415444326927816959593381320746164634450572430099189115246164999177911077220735154936967929718479807190006048538023718186092020126157643775455582905407859374348683559434735975189389850421671763281068937652338328386690295257080676860769045179027380279169149333770850326420635902236743229751297610349147652975495851719014979126059091453589794071940304306681959614705784891113502520192647098521006799362546740721626322064370709586672023611091045099863540181090052255574919436503619046528155032975161183577169824641328619899875553886768179220467483251040428126200786823387446964167330835916175698316749910802127062149689145714374553542413391247544417142411780275731703386755402867901209651687946753881841800680289834900793426016020837142194638538843969858558938329011569418926721544209711303415377902304832376098597149042856939032871895665498124511887029113518762788022479101390758959850039583871310599993661764593312810770884381998492946517525401315534765925343902357750143314850105601318972104671119408970634735343073608427785673620561750614636065889702401876017165835589097371332511850081304418464016530647350967592103957332019173471986360754274240752854795629327640220214565997949688949633447687674527044306144576821348785734958300366268900907742504527154231433348654132192001840098579799422570374793072072474315752445995371725973553740673818431158825807281741266866456882404654622584796020462937686059032617158456174878611506391612333990801587554927879421701909370080906473601375097112084369815804480755118374327721412337598843290692974865859610487290656656261930014260571015827249855056084407148060970287047788716179428927990171218438808351328305604420710037613329452800257899786259609505970596387188386795281398088686397912198648016275034843988926487599381853405674778086648470238940104621103180278427675212899377448163656248236585852587605437348351630740755780339803727552956020369946604357482904551508126416363544272037636305191601266785880133839049235838397337428444931353235321132644813339242019029846781009474944259064678932601130797769798521689778412582459862225890795892586590158849082435938408639986227110413714422478637453225837877103277335087864381085063217854877762104097594148382466111283659526287059083693019246754889868447378606269077434153374971135941600103977609510446570564449808214924422448438801259711833180539120104542373823601759558740421538147848898890560954690402773286873876130282350201351084453538838179564268093443586414464889119820202622329187628829996517085506573890034326277104731517463207262138380564760680181484744167925425972574430192300554034919289207433205276171374138443516503844113015844889782714900468596871369809533851240808649866858712993848184097189387071927417240190601417448051417930487773939030828436861823392305391091889252424612678003071714204288930090400829963918241532473799585438393760397361638555773063740259398097749198033001628779119220970062798716785980860301924779750398547552676851359132409274747545350654922635320751778385827777028535110332255776560626013788335302473103298703725630234320502184886550869837584822322548368073710527707720136471726441220356608407296633761334131890222836643028433532027328263589432104026995221094033503473868963070442995098924130306204016449177526397801228617595066862925505948107857276585332037539673715123822501880911650564872559229551627646674305094012858746678566087668288856760158057482652879055454018975603283115505649571502384509481963277186028687503348618126472232092300709803671210469432703896482971264165287215986710605387668583537239301865077057847586924866293238148623091396176835355558694628334007335971469964522691711500269450298940637777785003517390024583719449136973990771765606082209533091151818370567111239117860231739333137947484973334402262505790312478327611581321809389835852387659515634588710553253040524936189089810125926427766927427207561476443033164661737325457838522541974764151912650821516617608653549589871994078716671546351502482835422048450664616690523298256333328378768467111404288430241999363679365068677097243358446929338932265992144153537875494432100304403086082090331911153125094121604914331989737762046451168628383553511392299022871326135501438685812380059369497805798276990650317141099816343182836748288624996215459957160526121057580061663456621924657264851872711684327941371107563692164577244950833736491487361954373313174577282422279185754762340209932614995728840893298218962029074068903213397086465161239397613196891620915557172738394082665990638955650672328412925913262164213534376471003881764419924853240865192881777856794057500397817311163717618302167400631565028133712073361351808915102761817904392714165270281125949657332010077645516621254184880809189937164678739834352684689176305522216538774209276876076191621647893798755601865985851503825454989322177548946255176666105363127864770299126815211331887165606748326001407993671231229370569992700756195891992622403939866929079343249187104012498162788635269808150121183017737544029811172532500167407766874216547724868041769591966113256311056423672015811689815897913036056998595680266616738718501931543865017521236913220817917685347988736482078199659546370182320496296213376763587488604847905481693864926069265490506601138930357025984270871472231160734932984348716080077222854191917462640581377902030762910433116239609298067573649801635748591875984292319598581054672387701747659935928636798082276797411736558451743670140754320902552941961896133085636262160190639221017114089301944353238648235128576931193118133681331841332533616318114392765129557609067424540096022909542337593553312308176487746881825683423128324533879856433305827256306322182887870112994391339125384662872944281428896584848167191273052456787459295742462113065439104138589543656610028459723403383331214796706296264624873670265891602770148365375096608135807632481098890781238603944124376837454762603266981230321191969348742594990788455914366949583090022041571832165067588690525301918229926414006144031438813866845646638110054625214404368779191611498885426153520594243761015554626965099869015278962085072362174265604379637448760389615607470075812869771175359287765944932132407482380501265112537586071718086270151613861702827676720742824502149768709418246626654306220461088719971324288867878422421680849858054231525720660602989838630786422148897485974468864518938259183760017184673128238644940894638933291278134886256806969463397560066029937007340712026081358974165550920546672831186491931876611947340711309920734632585805843902144878058947790303163987166613639614585296717012745182377983522475931767046093853155313687476711655764690173572600580062249172291954819208584111034829270430052617392386133486788677372565775148171802444331954505162484792806275055507742375324461696926297733762875523819302234876310394520325992674602246375787251553197757324855886205786880194613079665129490723588031356500846586607288987334533287947308576695983040456635804264464063081150050137296851676526261687828485959422882056081885917112912397420173472287365270700515349963768302200163475481515135458795652947523010141709399076421329414938481732383392301925791687580787785462075348426288257797002581547241400348716077017110041502341765389006327918302220443841695633738625951797189868245820625164667449197983695969192513960162881436338451270069704707375086871576346779405653862949622348441022856933664093796930563640902242595543681469706544414905104226729489591627707924841537473044825495022712220469435040660673517677924840716130309526470596145216624312810463852572420930310861287327614872218664957999919967666609041457357748176602222659996767281046767934341656676687276608010908629752916432058280273830673005254821805073128590273495728336661937028060049968126953729520850613819841540569157209080369245868357306759038554457165902046888410661352015160956561154279580292827185902723975928470682020404128423802326360574780872424423614758849266230477430261942646721321938366851729800310524366471079108025327535718663839033694264032127691084179023510139109425467922468526846207270047118866684350477954444901050146828184751918632809803010327462964227404610055876087581269792673533779466134221032314092062784829888296954271131540827734156070269046590465977938134587833012572327020782117528101590030651011283854309480040651381073084410080456274806757231070220987139815207179043804831249466086795430032138466014581042522017960554585625165300627197574275775898751952734793926090208470518625962437858946513178733914828532537919859844153558361924227501696540677791185658814640730591053623674317438139841572125905732164484586001623806824754470724089607353825574998218819235471785672581213793386422838029221913023858489531448296925406350794403250477782341231945673082670491019205120247115698415204617786141960283902547156855240678265657847315533485791171950997089629575733891570194340180504016769177834829402174857034010190336699357542417546832869764641567922525012577639768734160271560139007930732241110953667305185473961073092113962806867595280659131543610826912983872028424382120131579051699335961782131177469579932889239071355562745620183789531809377328774567985574756987348333547690076892895970688461651555436003277536661901736364656199008152880471222331896474221088322787985515883822979690166246992976159863943923788213353084888085762259424752461492813049966816197636037825746369418569593172289808779195351005661933102902434768895705652880589132496926501856320441428678159790095117451404798794209987183209668292152748502003307276917587744487679251789513120180304880201555154569618510171560536101602339081642358772138575119013718758593482535806820909993819491053544053783982953583017432325222777905581337686181727727484144448384827992267841398889990455911165193316215714681328873696019813573868905824843392823436521817424710580312611063150205987155032060417169531654584013582381251482734095203358382893563075881023831735828833683784075991010412003951317936508632125466451710944039943515805914724625338975362614589941071336182828967498862393696045901338912462629856996340637251051805593207349840811570574602341587399908458930040713539815325431299699501966412897203021877926349653044437896726448946916640639750704018572879166232976423311973091630156038647766460571064158172982410038547309560719056525030194593515987828935392479267898076336602803624791807729717656621382925994834893653332916384402745107499893655522733263356014863791735920783241675485436388600947785219615162871245591496401464922882689385749822989889651256940884433691091803122024538038849996668696399272986629465918202954308155498959140936131077118663183999612156153599640109841244531199032732939904280695808755152957292083317735502157693984936134346195432418146528080188850128498283902419008414806469302897667292879981221092558748019403872864769566755372068528656043839938858739800833024367557634703389240425717842777145283864534152754742238776896643525539867103973986690196033532245298319922933565870469529888289230177175825862472762057289632732298876268205945068512735761778576867346337796859047894846859466649269167085182021755867683628221343299129081838530904743887215328813261390749293375380204745424590768752001754321549425388555884443493407767207509725267503712400374977809351496945429098955307484639390935430756947896954744400153806093151211525253407700708870475059252998324779653050469797124031891502144143481356265005143976844644328213291336457292415188594816853748202296520778108998121025808466495246767555106490859773488535433568625532023079980987208320534735989981892270452770008229949532779554692578858088586956147548016071957855843678569194777254289063856512348775546919223588817693019411157926036867935609075250812163362335009078737940387187507474908857849212473434172881551825960863984216150173588922693067768473257447353573766835742517802106937817293394717580696914111092537097893110594415374997426700362251576316941458266597130585581712612174432754306688888359693540795064683846158678369135568488234498263140389816763298559826913221339184244015167768380352811095858888667084964999345242595454122993222041772565957200025769629828741799552506321954721581832921259669089301299666691245405441992276340624613514504780876906902120287117605897215413675009099928913575991935376013774889027210925427414445748658188384831089165534967149690215545339839883813166222375847518948594940439217010874270454776492375488073462622525168140867695823659501498073628823604870168796282619205229596338551460402614715767148606105108612464637535258077786204861618099397611178267670437856070830708892248732024015880421185705453451988102486677546538590473541385055149361823658841772431734177704173844537753275944554323080851625505601428443016619669148802108076209790713094368649668046138275276787062066012333646010046860035312959205697393016397645343129405834057407504071256462482288433591685016712393618971132785602100652644250449793185129500264662661198169654947297021027986855587345754788701982482628979849653708984314707871728049151056036178559030889100786483794485712216676471520212113206811420380882472181146398835787832893632139545125843026991933930546525350008327684444971390716554322128507193171164832278825087742659557022674283349312477489517157927031897039778967428207520243482914697375535626816492286924573759630311879952462534471780895717845138706283589253378825468189003799904027933431550611614880952102337047074367427682503125475413968778626167865987789921751116877881572208528459103741311883977686904003101263090698458014232098917235389057696033288133091267906823538531120662723626655809523345983407817371466534373871891780167056791899653626193137745286326402872577301926143829874911676389193903979300863492005931092563049354241831770499842446241076180436410481608657920970509386601628582310995506757105670811392340690774686082336607217730585691797848118833382620491301711655886498006485298553201414397238378876021765548251096330425289320670636952569493107382825691970584633521642614780495439438041355972540244163690243173109666293134609218886590982137994754395601255607252400161323595338085195401170027740159666758813520603082424460932467833978053557047875620426493353648313862475192999451512397435014024645243135695394618042363629772258067363375034482426680009044837132657038608271195857897755835209761353266987939772728766105330502654008669458900366160581965810945750353905077038111311931561462892663833247167609655547463768707846974882208299326088895155388067601520203739177067515663481163033281737415583709684745110938133142630149100050441128939317212241916590264665545903126977098653876836923323691473715799321171015228140313173125568414920814551706517841979776900405943865026339090951088033253238247962625770260612449797239513707544802386647966022191616732093601706445399408579365083810279327908846690374499279514453587021594354466997790057813495604218072271772695983225422624519711114776292887744572456707633542131855676507938434833056919614908276715806773336269562530649536836990604818586767651297984319372599536697671268409171152801234867559201273556015009264480627451738100966582241790495491838439954170803543188469351314299186075983444566204040854919829275940625549536193099324640251833491116059787308244059084333532410431479703030549017433043250413855617554262425018770937808745640621268648502107599020696154096818835585905717112448278272940876965739986918936981708611705690568640260136450578031302749097704788693188678039662892141586306206135213782172459368790809224562837126881429257843992937113160983397367102566303518096496556143596837160630915954286135982634392468097025059590676823862624848302139951342735413071403241886318826648963054182501093317278245783767752133235117251678845546878443082030732974224581860340137739581948995081461189846343378579146618425601493772364563930033241371667912097211672498768131182629998845902190613714270208552771833407955384859287083437136274053665250604510235515245169298184301395841148998746961760267884581032551148597913758281158636662389966256200574518544626248355606112661634835982615560755255758860196695728928720981399570933827915537135013990440697306630516909186369632075906068403604475122443360430483615425087957073990038985856117716614384965905082366505429549952589368522600410519428999848688262553438847282595541810879988986753563409052366593373251967803811222569085495127802998136021149736579294170427326126115464901823346909297506740000456470051800848727738880511629417363749802831594522811395829323311000242397493041914289252750767706899913608129054343593115427611760303930982019363529918807726680419364839816636488652284880405235295335056435507390225020161912256508887767025452974626216903214995607569872631477003230729190878455017903784528001457318013633583341024775076312034139580692255441600474534085670301855078285363118663440801648052472695207391345503975008876236072036008791696395881503137888752125481172243582562473150168805338518607923998372541856733158764763706420806966071987592028713014336075312605584495110861998605030321062883704042424088813383528682298947868991151417848968680697476418585635892944346768203394245991666137574682322175820060499347929247563983135283269729853981442228026075814501919033257282215492360585817329739752116341343102576904258039015629392463789011405177861743414506665807358571030045249254444518573485154595864903630063638299448359216192397470557131710831818836179285135118047076033103730367410260435716637068232621534535303587488948551562133955220937037378110602344142965006282615821185986388825516991229317425973725954887855410477944273560668357300573577941647892315301282348469604061525959207063236653102515144703786791886373680970779601468424193581709285898256371132365386750221601098927691497302779035519217975246930080370489481448543948103145060025020355848087494308805189704051849884423232241754010481107623830805166479796304930525061354105195861340033953497377266040322983104265185250328759230787492655635533374947940018874043424756802747133618538307629963412808151784890672803710530772776099242224977603671540228757156058008608560139309424145906351401348750518182347352871412328239885831702792243354078986044870846886535488976493700927593242188253664081790176016127569530337200407854463427015701616737006213682971330491584735621989226866785570577140842890701005994166574905848676763214486504663720932655297476712847466141495435934553578945879053301356663228272749446814399006997068285996768217517358377006489979889566123524204037759907576458391842001721919823717490730767259539408635023059500066252029192444900306522835898551587900911460505520447092512632410396601251479824441976805288458167729245248371666327057752265284721307379215816209332551934620514084218701125025643825721143707515537141397745745741360029678249408566931538302182525323990666019830677987765018419808910910342662738708249099494686760901392983497222987738708977751566767753890537760719779473659218179120411617464675514402873251898469651589649280042243326496811478312669360871469821731047748380333611254960444454343977489639887058705778422717135109051509551473277312544239000887564522190119759882718316648383052458324685832287358619925149685218227598161902300513240157929099891847727607281250937950321658741421675939850752323687309259867578324529889770852077510743880293410152661700354096863107999828806653389816044518260754081401409025803522776843865578852050313283774005215405868535411642557983315083962018063593917527903907554239649045146316887965549976357768661174560584618697316688533915590924906439422680356137361033207242589885158952208342863308598105220697907934460108708620836803819602039298384499217306617643932412527914356069590821650159472830166141247582039148695647130421060462587968331995981352287411651414020653181122216987579778097545939386082406234554401281833906980024528161916996901223210520717816786596236168194032779628307453289134458983984956680408154811107033887525721682432543719924840266002548794254535491580677024107081930373430519073603707141175556570524882011495436952044355307105142959861007848959807521645236026783159786295336582918496052981458645206395590536386830493032346960582177268762950640213969630331128992098584556516342438391317465883112095361741045946588441040393491047240075491783131718048468199730423758574778864688202009433381504097188241541985765457425535579228835514071510083151003567367148645576427091324446061808620507511104580779527686026319516025772572931063492743796632659210114004463710487232112898548308671502512839776486676046154923978998148827645560669269775013487011253325526028481689166144896561478941275362077484681345072094895774370555097722556501063853339185374625352629040310178809099837984041408704126278467946943263734392432218926304467304203685893553382082368246837421641612404595367970002753573980030967497479510883966678216610823470607131683675352833213395871528391943759995697853100774113756087077873676013072124280832311945529945762292877426706993922988192290748542607875942585239693348850052559503421837088377120927158371216650131092885270795612735051776252103089566032336478379252489231921180832199357523364233608438326708739512801962175611294163396865864295349464350185437671335076084991469843611559685541717378650182781439715536296401129838970267276044367778588461832505236803530953344074030390799308395677225823727256155956082033533654240756828256105584586349644647327183534230148607513697405859742027937243441521091276145445908120214440823163072196027859400124730820685421485689449098148262155855360475032579701142807476247806640133049375467787912180380482771711660706806925331619250058295875744763331524523577116297943716204970910033089712921130463343177370643292522869515574196267019866510660819829429750884425527868785027331554029577656985293435627668110563788390318138045728238229745448925133420259133371759894523877195889960893476996386659452052938070850795160059722627197821571668487002985603648297741015049332471752870686673815672634049096051653130759421012680760351477515469550570491618871830714133618644678487481424452616647604825175846908605231044993763880272715470005682256282418062235930358732156327268280413160880313809106618113817143745519156922840818240644233508053242386578014693946748255161813966173446579311741862862516384662238197538263685320561455930635294993865564791494577303480390571759034927652616185442395525909684334420093330747110531274125954500599921503644675175519574156913625367845802377004500242232326483383154926707956850390527828222410900421408712444511609063340175877135814160872335289550954618121262479072904659209038072205631695720346851997384523408436217480431825829600109830705601955227861664697757566963415208154464302436578041197650384548289767120545139421491301893085803564768566339951097012921175513613921270497865685487417916762386860873517581468465772079206157156213582154589568440482193626852125920300021690377693449259918814989709210766126260893106057357477817327558854760114246675307490639426983490657359586747100752300878975342068616478339132468474409788198444004813191188931340143204399020317561256526153656962417010358264890787018032750139767361769753566822915776822650642466558422894527139975011824412153811741033320812653866708006566123280651231034854552878235808816702797609771870077922881454055886523292907341094378776498668315050129161040590224500745138486322176543834784094472725635631264434962084306468878415842506966822296566531811399326742415202755082649220546110070727483965920406585988930262657994197406541752629825036439714217415401512405655789559269270377986595822519971389596975224655732465708218153964410136893838791939615087174572000754476728624841444743924902332590921854071147979361231430883404548713928650237262003953431398669831191440762703666550564090795674116304785108328045965222721111696203503358325853607519806830897587672273573613097903416675181157114047266440989637376384306192457362507759310389636226415518811342316076463657370207454356402558367044015299098928931698509224994066820259406280257642753532513863696873084048554396759700238667466769308297049257325846968389738144482312978453135965777109669511216605546954284858060855663404501264073470263561254987569093496008614153706735672233014362750710442554893974540843814518594785906690515473682169832044562966411700203553370567679086482009886739265330276534501785883951784787331157793607311160121990188330974382055586066945140645363055366014130769429713935367290803893849988733523598487954844911936250096405955677205733110574510252601705504305902469692174020051696781046278454963934459301832435944501400309332086144565293232670825556794002433427529703410688099895432401378220912243283705276426346192631654278331020618614005215751010760002433752106624551469146167424556047946107719894240375421975368708276888531770883334750453291855058885369394648201434276598056957861672983070746163062651959928573961852437345316868880300633381390889770718599292504432849540039817081230827019226999309467725186737160151602431235482286504409346007567477985178799284897912613888798608893869708172641658290055399908922210853436718242323942613994473860045633933078438891015760062060890033814446426107962647142294996852732170911668576998724467378274822034007519566983494868133238561165380470237517041616299560740238654149931199593930253902839964997654311929921112751720723534162453002945923307316086515308400942111113588788820386042107648490229145563181756191994579013846813894158898453974912456878618208116870043494738241744456828518362856556310919630796483765705058993928669533477023773734401953761665712701557221757092592856441885626386097433667048586022277612056321926762144662624816763750233632321101086332722304866743649688706523671335691960908323935970447321106839604995556919298897961580807762438834456905633520064425672777181450184830398147963458867770462487921101723008292376480761638388219585559960058698244779754814162373193533479301044161948977526233639926198224031671072074032599580545787168097797106430434637904108120699612442337140365995739663931666474297372290911475458451833959274099053936792591236521500259350092567720613731415662292010225637859334871542538807709239782307769444307467515005743965494703236587212404286708846816115022132844699863170892205285458433158011807571785383487124301728903919742403644484109178428225286344372241374672091442509905857443804294185029194239010813398120043128439582171246275453708073183507035762001945742116934536362131315829859208893251191191380877077518079751074915580551620419874218723670512619544356468966080038521770137496504361847856481935026670658929169961713283641150339527913554055815789680655155868068343943513488927788375740744619543250652955921562121729134651134978799780200366846560039769121115947523949660091681757364072517474471696303766043767411217650380453170129582915513808377045740817011464979406662564229314504678668531758385716491660709535375961280910819639260553128937283115766882548894636312103169278296950038234523511583078031554904208891561453423619476212063335716410895919316559280757681973948212958801600405098388090369530421452524929267635287865332900203284415407542901885341911493372283403661038552346621147272892118474912035235277301866958589853778238069305477305474188994453071045382790417742206901030364748673790103475998324401522252813850944275822697060494717023569852212022607416594829713334873262847521110476266416980617531098311820183452209628694126657004954483754642815946866808610835977103098492511482971177279231212298625134094554949627597770454015790936564575037313087461400675341875328994960955353213830434990847807088810569492322613729830162636522408439150031380797007254363495606730856999387058039222370042870474896605251693671688654345989451625626850372430862397928546628424497941787992204906135741834414505101438841605287072796653105386389986874752364164532460400181259470147081075556869615712015970839244991393412724435352849475043550339164409584319104598929602366389078243564127562556428882327179661251204510018604146714381734074208496886806693731729688331143261550355385049999968921963786465380649174412525782250265118214455414208350151524627628516527839366995184810137646610739980095993572318492228508219884530069588068609646176218629759338551480105903031173022850630843980838188608972474749009565263582753559059456188404529439087254009095274430433170670255534243417997613893030558413737315199514259320402177249822174486265318873230796370739902971664857313576596160455796247683335816756052196557418286688595980311283776328390988339934783218888980839801475516012366432374134378712499556464644087677145531916909816412663256023285974937077630755526760563576201887337942696971121123230729140902371416011714091650379009802010742276458989568770465477395514280942669802163433266860711432372594004979954133393314078484813874681927825624519498429436061179947867726646441723357589931438399329161703904548884274728656671633989355845389436178049546051451399232599261802841808598313612187842690415968893785034751027821961565156988049041980876995521877553012506752561666301878130325202536138577673466444535642940953172993220884585415056015022866155441410159764169336342000652796719003838221489210665555027428627727015394038578095899399055400962222168143218186654950151348921543289647205725104693696918300820785051382623752197623562232196028488699988508216347065363883404876652073066325566735704690561993331539769683190173650893493329789503166552015389547456782738162153318441556302474057840203976343829256530882517939904267995533677408360093927060831818290795653126139768273250681759613872934325386391717511181686166786512123708872376634950291049313871212810699800659992528938311789510272147674174650831936665838815494134150760741532727058816750469242532572280582660375680038726675772569480963411770012102575925553465324275503310084950280776425266378781306392729949071419992030913107864688924470506109045491935661916830391956175109534394936191183165107742924442373097586044984155498288546129338472466288205151312020149797462824932078204018826952408546998275782357563717068437378768787533009628721894800267658579042748377721266634414644562109494460616048398946222442703875033469203846053845788489297019163116503753933456398242494205252588373892631853500818416788313512915367610165844728545646337986716619356985421730045973041823599167926465876207797077815070421792963363784218023638117072595572013104371282111796412787344029658441651821823585623657038879077958097805520133108721881455333392234305893373817393632323460878786379084584173786083678203947720366849554152360604937324985615242157797580112720647539789990502260636340048640744452739232025590586705683654289669145081263774545067156378293777118828059600426785391577809759067204691115949936523507295180136104965881837477229887153441037797639336586695259231749660345746297863723215533794997401245490870337289603409758532683721954017998027467054252166007907707113702783795258513565268244333952537139761218682518572207819916075102851096378634812996626848858510603124387767396168793136737960588281142525228437999263897421167223108821444553751751631518069709541039115815781268850664676944425827762043877261068554343087762356733435638564903661256107908405838682126201960621356597134851926294115736408755060912490896278414856035828872899928134431487112163008543919493045904431590822682508579586258655295349017193941686527703585128450824637463550935216400720290970164214090160482488139500752717744551682585507390497066003082502378093333131544530567611719322155994696235569965852717527484024291266856794362045070042159524609367117964831238661726927884681333335348981439965774100328968959533126405597879116489744006322219376297669105361463352091688601837969686938197355510724520754758809778986950002463199887751976209161647379496380614319568059118625249239669526396554682860065969688089184325326829516624914932676722492373542397740688629845254201713615214464925775259067684232523404466897283988198914375662608618667259358434183256939332311042159283091963150325926420872247604864542050575670645606360595736338134671108807031185718810642780100000724326021209185903217589912962915883883746137895567094891739484648466735927401374636938776407180726199136568714085710827959038150001950575258188891316803607186784492873848330857855336867999024203922181020617621926614799663212172161222718758699648319607393704330162328625490705627451739904874732473504394390736113955908643942217542876224769101754787326099013254983031484442791195362169550361142601928058068183402779967078903784940028987396802969061180090865414928126237812967988302864873099651862671243346214926256957198288775609407852013458994787144431966180142776088880582078087952341858975165111663304822920434279473143226208278410177492599754998099536110991953521531211200055269912427978718624105290691633489446533861634239223934951718619297179426812940801438919215857501358046366177013353212968234212062447190250358239570363062480582867598542533949334401290259132598512241952760620801776473195736295621322908366458330977338601363965948832566363100444851200008747005603456366823757478527032306018843569876993422788532765748480609065350875692109807916750420670069122985996201912253444008776702785079686685697516911376279762162422833645789648674953624532994064262780940355065476894087594956461317920993924739998379249516922244658301008364043404977236122744386137276633940956459598696796009645032646382152397288710244166755931230425076006566638082570497599996978648366986391421943410540557174519913857180086954197077881107622784781436037683703847028177149419957452065846436333806634656843101637845817314135680479317964432278583356814905092725497703398811377243951718958954894546248577008271507391555930560804371129561418669891164498091399714960327579266461804037506447414105650168538850468375877976711311580518953379731115912306289760711251414311116661711214504220351929955641915033047071959856232841122302335163096699612630949224809784823458302447149235714822406165593806430855753341584919864397876090337593014990672918896791564801434845184417356628228248851600828312657980640414305121119024526146102575981360210691981744259504067309707034644391530573089118118369964907663877084636500326241922993739520854787096395690772565357903943513587659794078367714204090299525796667491434725408755718415459350217044846914065382599383731341385592854306826019840895003278616419402613019536511226650731149358717972437867391147111553730422161550409857794520328701119526751150658092679350536990193109176995467611640278557218896592583727393240523804715519648361662661909161290995442321386013539479173935107365041311081096638880936554979424049809849581697396141571048126960025521148894026260806079563138225107985104813807430452482619302688475827053393493851864441791865496996005482899822461999791724715284358339423768830410351091289853054332291367783954448321469519625908554944891478035900514533765798156578497878654166530581046187163901726619468032273348228522161123863224810066687629686454362734084088743917132464434532646729013044094678443135455753072735977448233539419565294284094255527018893201988977140517915202113871181438462035427697162479631401294178395588862962265509654594016278212575749305807489964188679847359466521054227862414024387668892451648886368025747418518752608193626938453391651915020779816806668801052213979470170518670216941008430071537752163840601729808330361869355764202097314361830935184381269518826710362419072936043493607259272182007143209074751781715738675652241214339272773166288226448839756545106259219139572751360468054294798876636308512419806093188980845919423249070318731136515418821995876375097216718395497292733891853504619618669208191579500900806529105913754349038816901512729919531158924604753168742279984419260469778300056317686318636978665327810735823111375303816270813917725605277260487152437179821426786156723015573148454495999704698573639508352524278364953424136666873883732575292335338564030571063550880279377646552617676183165766856459401888919233512791682559511428464729878910132631388099924515043873999477958443422590808176752608444888047612480319668857188308977171765976335888957055193753266696697112974520882195051941602869753325923565056329048032420428690761062599867731757251911061505222083441489087815126890631569809237345411068522233891680544083509115145373740747370890196062632095805729934606463744637654887712229312657966712003346357426825474844598941469529799881934982751685344802999682828042034984366763742164825381116710614959975333441704059018312065113702977267622753659927402619349027616705729055770248712274986527479159589427558610379128590498598178376009864820076471451247144183197065898784158005706353127732505054125773318861840171054584201204338985315084028071965743967190549691028906753830780962717443135767855730707685692700728512908856810380593712054132103910626093492529622245763198902788225440155804785397077812803464885835470516053736372750425369965654998468236333183213163030008489609801951281013017276945028953422096368259523129801452769907600943608677461581494223051978296868181965368107476410487499261913469667257453150829377055820157558052847348427288215937680455793132332681813762842882278323418337592928109433837915787204692601588755302388129179951250886460845583725636816695733860503402874714567686670706260716339436410288643075454214062070146779685205454819944339921147998699904482584916425969046819772218302291322319611887364394264774847220011238409435703762884640383913243596497265818580477026660919458636926305394608960472707709060527210961127697928112884665311637802996358901636368372288487447657986195448238082941922675011114434577277724223909147791751587682429007830834916537742412393468901305130035231591300845723817782609146485335971633530094390696295825792300645020320799370016439783149172733355544915501947458622873601854266306037120108884393742814700988624163705894289226831048941732357780114808980897673233938235753550444333528737572600317386772013272467022576259740196788490499212491863867542160593849539036904872732041237622426623974401704260436157558580455866431318068310301290303905191158827440018246109487444418519105849411308251045039089944590353227332033136068974828021514357453217276080171797229164065833766790290025411480835567168529210562859180479770607394016910009120319680629966626542736889360209414246627214478603422436870980298170577226928726299075168079616437566222621049119120951888377965285849668759349618992964026437176942985635665786480469411947338508808711684874323046693259794993520735641145285492959422384009758706441839264322599241017539322952591789903881497675389302321890920618461178083779233007113393303177943667428374955011948752574596184109355286834151010637609967361477700473660791485035221945190576382170069825184044749193904575256137112068735458496024297277480058093381753245899414308079925753764045990566211217015537332847249753594043737325050192109249454985754889425419791670292273130594341936919835404429507430054664120994325944675834298241155711470288712830369662554995315640380103979612018509764196806777863752984459147468664466337087894539218593415139968560112344998851290345836495972455115711717830252029031166024702730108934587789307270276237014691837999651024895180349178373375763129591511144717105081267453200929264751661182280717813112047705465813977487872149984731069858526952129780476224507377806480001866074032562724057912922386364455357901488131931088124902044951346256000001690753046438886385583917090736859709536071620787957959593278877637356718070159157348897210178609228826818273166556470203326679280442312714455147100391706829388201940739532943684639903992697693419797910141463894362893589756531344494178365710607675877192514863487008269610699901595576360599676374126941566964198139645138442085388438734444917276464111671167577994047993740139347416258773331357490716788891417759905940612377391061368101326164642786002191022388552097833393538835319158197599591149173413979886485105058564809233324476756361358499042387356784403973072241778128032191058260657463603838127999256261925202472621404730332436179767144418333116535410311661308596688775973154810941211136765477896142025975736352177612676322319762273327170539977124084357542700776686343139054194742939912764605810717019567821914740847541899623549224505561915180443261003712500255256296118011244631715165449436389832929904331503594880484762405766165220935357599444618496253947055334392866042738160889504290477645116914275299908987509122568348990658238813015386289413831573891986575085812718224028541700299445876757105566107901802476474161289315973324440830582757015078259862678153839620327955292894781761097610027402056638307799910186730043789216272598286606158865436211856408769976874668128274110473844953581904100288865168554290609052866835073903609072121239583155033610914679265223696217585249982102683947095417502668981604454260813862252736372162099340458993095233631806808557087739960231118994680662695790543764909679998066773499784159666762136227271538912469028001352349117593393180243798822872058585740928877189473706503028406596707874030800724988413619748334667362852169360973144946059454259305642838931518829192009187362142397277264908942164061552160417513966641453859157468430137814576155679756913570401145236392830363760964185068309470167941980126617239615469697512113306320280930058990558470244632845337885711175778632948008006602589292931269881058348335420291531290196883728027459778536772947089835690406227966930707198471864990760508045809287253908838746911568262125986826898765601074129850549952319530122564887902139525153473018686814384413211149379721171057556728446770494200646082564248646784417250638919626222797555202009635297033607074028330863167471820324184767985076196934944076626023360221259782628539130568227996033374662154032234461094971147076421819947366654000578178650856392350921028029401391480342051266990026801458414227026244279439519992084003794201111304485687448044160525723610134346204227858690356798845543018047464493176916031547881054438442302246102323038601955224294091534787411142874866813962617690001844202428088483928534980828336927309248404135390110823478055989068940691319240416410495785354359859090864119170310959607270621631121042789094924532155365728345483310691065937633658055617006414872409060810879483971140551314978726273560879313448701115380900646630453756723061981019826640817764686225279601445511592794786194229881618585747036578803255911374487636611326077018708108802427307332238702052882196684024570907796340924028596704190679099436719383370869694823677845111371474110950905370085769078296479860367407820800784540917741895588258069410674444417101309763527308928985254363137003924678117339962052244072463611684889693455223246345709082339704991977726363374321351225024849483644834744451457128511958929545459106332256472228066512806762381494970134068326282679633129560775326485243641393392219440739737160866164279247456685731274734992448229589731961066759165829649304767353165801429018995915927686879431880172361898070600938137109434951497170736391383611191687001784144233178537926535859743633054194366288531370449444291171389851014104480646378418476325740616435545156998728142775415890978007387128905546241924693891497496948212499883574850862400598546284948483973126182347087386897309539796771469310189028910334778707924926787040464629165449706727117378065416641059331475157436239451763649149565829962692117504305584551826520174745094968896669759052946144462682529591754846229246472875588879640113946515848009510804921007423174115224113510900599169158627440936406813660699199845648505184023713184145420255097152822525492390245728585278776163399122394801634464134807014957881799417542925483894418770142790659284590751575933782833950723916373119828065182208798797506138415895070803833978933014702365260307863908253048919998317808572943329083741351382474594172497749969685672328131974244058348403744577333212709087288240061038498136043050220066358260008181568172671831387664864743438362370782967245130808762409164666039827741111362977826618625314435731442831863642073099430930109344129941977897555522538683613926387110522297085954693271123408071900430228232272677024984485086446808546682613774292201735421986858774969090384355647219845134828067313148509866831422711354366366953686307215238694825738604487809777205982879761953495315277547224754475405447628806520488595393951060739604042599130893143044807637694456916844168052360504513324326477328993578871941048083000496964426127309665314260374831164258563361192599206440242185085082506045462578177508136881037977350565695532105652515997968291977843293304044621138961716950319803454083316153077166383146747072116932501562562731039229416064651965570275902231494805274983246991170455058757496860466741419625934446887333188399284910523245159417772647267913922154438362359125702173134781645337059193151671292250438188666907348476943042721142731279497858318952232527705769998716986320458309365147091628485394853221938168910221027950795893462024378110108332766981449588850023576128631594504316455828066993364077784987111111579270254663491567453426772471387248946602142539873778906512057937604803195763797252358583391361358286657470535329763674270790293243491304480422343849874447523382784216400097623564197335077200083009050227801317545144619228075637155187986432020770644806212283726571912955606364253759112745990275354760966698925113257119142135101813065462549144364096815856860435625014036990376879744128204052185545574915831152133082523081165913558605996466990953814678795488306464145582508933922146881045567378976025428204355771115946346416930300440428909437917039314587842221001403896192794005141863495485426600526371757877743297329793964783494788168995579806145186901551302506371874965810155706394675181737724663843526922476949283178291433308358578898048333612601381703611778578871833553422900468611741606415177910935433283349279097909585459501409678936074206924249671333096725551287518917674791418250318153064588853002002392929888914744328934477658080325571079723987414204758553593798228629357318300500396808150555953212542750558807637371882381475946321439936890422844157945965596103122942989580544927026392923664524000455826680452441419398248712175607680020744527140529929435495635063743119968906005684751080813607008262106617061482898057538437572687452536935978302920944616616540654587146840229625405676029214804581117376460743149349138862606729593475534278810567629712281962165738094868863777988797250401025129589722525347404886485618595195887716835375607086400956082896130554232269474142512287421008190119896606348466324521683468307090529228052968034431212435196802768927531036786426010439317949911969907302700203783580937255311374868909063296977810846503857404124741440709798145378899024553504401485596461182316800027767430592093188696422417290163923206828652008540313987215641125290666360049634069220697509272041503333192215170933658145031831445853837876109788956189679272089115295815784610790517643576165434420944005954985541457563874096673549076841082475311933823569613161720541299563150542615935501777690736319804032327934580363183835048181391822730036372871281475723782031255238252251422881744167536245441436148658786798249135090463821382629553551716883302191113527604335247737395027774428828705147116231912558709243380068247757946444592348579021582535185949497966808325377891548513593058617114516217657380779874293634612914187119202740692612146480460212555952149250211803183314365834692729403859447383009254277469220357278490701098101513837563789517193328507681961030722856236215974649249818811800812663275577231281616645293423142730889276041405034394532985360868592374831803659675697018676899088542912080099103694405527376020033842586025429761045437498706194975769293794815776621946106606645114704463450334735727660400358428006831918397831693482813884573246776468141678444522443412318514895881335303920601423798281852962980232517309132188666514172052861234820583745182200183312108057575080084247639758543565890328602830547507697435628316507324333996466313636640911537405054643536574567870261805458270017160453684940788620624526626252706196375958677193130322854342676109396672738984773464652417209149675288065338112583914154949448628900949815981842746945104915420073145765496463961920223953870284459355402861592024838819990042567228922932433603569039213065708737721394418132157152346271486585864568080493025353759476699311566347667481081592880309165223470617332254728611149881591678600658912373323001213613403872634655769539234420567960997976117301166193099566834982984865565654135467482246550484182961196495080922101567076093333735865415906321927823369876603847030152787667308765150155126534272262785099313351188073075214843157799919671772130830251203790186087501928560790756982446800929758352874652915660209482606661309957858532820222522667888346574421334989257077705014957452622085899052044454235920230216330623376264962941860519801658948755951034314609482870976700346960422254348886462466898775440333443990684999918014022572985320110324807597841631762783595634446045537414101470049684952030448738774264709979310385017263631635256140706723939970040481263853163487237421805475928590863621980460830404113920292444931558225354694051488734985049115585459510515964380991028576720068965765081613815922215734400708066996994297518412042288091459725075976476008301910778032217053934422251568909018970732451730203392957102799515891246870459474818093837578898025041502424218189350172586133759562667126419770577234968970120387131847075917049459391109020081604519624907155584642613717336501808924287656006079419581168740995435559202269727463175326583375501268130905748183204262234706379562599788399311003073153461083290381678159033019444010716892275789196273304607381484431810289977537212010885543176059137273185661368739410835061439303156248018668315674092765117836839403127697641644115541411631029672891410265704675368543794443310248069296552208490969723959819279151462177190625803907162443601153621213314945302506279709459715566442195605998833779996952854653419793667004546084503254115352216720321948506672114500202983310149850372119840702759709940204344243204042956992248852993897699800973898251506357261858397577244360932351332732294190707802495289489719286065974097978550125460298399939676955026232864880012619188304293185877942827822331548836809771505755405755243656272076627466948644933055028664530510365496356130053077332448517662172684863396083630142972777075598841087909888589059283035352124754770986033846862638287017510595069390181202633825839688269674933427750825253431561911012166744787661583689965570571810874143011655626596153433984902590985494405521103839958326086478956020046464799036727973451301976871774387612176351033341898125422563122247728962717425954213794063053503601137679468364308898959595927498562086684429672245199373497157957961405762964049761133131177504387137923292758612003915827621639779060391617582675356936923132103973362593712582684244117742780187348090303007176503719789070006162530302386045247978346883775873325345640157928646815284517762138332561134173043367504688025072751201946444408924033357936586716707594423831329647324906970490432883434847970952848375610024000292298952615709577847695641996451543424254547978209584109699379369528154897778281619173705232638992361744176533262306647990460718148593659308262139856502268456715841183047907096424702519022820045833252496169548830469300067668609156354678427374152647432385012561926147431963884037175483740009036148754487486772799676488854851507245801455170115454208950205905746161489837320727768191888857329528994527063560259350646202962088825870699965780515985712668010856539535534746564794290335128144176018381335849786374871798949276744340753544030412909486403740333367792009451457551498741491156882627641670146191599858611799044738911687137078141666895779469916115569886393720534061735238742121342768265019313623464554146348776311695863332985811491974808476936787066559650068954234450786834550042394158929863451789887771800925973806180295233318405511522780021168941942348135565389410906193637308961938502509907440602383860108153059237929150630917884771011504258378168901475174652814466881924778033422151364804738016923188416894894620270866989220756090987370370423811695413186260393800535754645189447858977078892819072248999503648002556660992540112209154522773944535462013604675751972684695226332063540840646685125682938226353016286164559499385989169350882867512046109555862119068507170540983942106021575846154010653271253525753459937158467213882238525547792985202303440388136379246882050968858711967691936566627897180820564101341062220972711078106610953934097699951524819421812195271454198471242498692877638333240316492706334518202062291650862143707879153255202340546649568749926163994000334691898180335588066994316697682665975289205122858289044975629485829958780190269554975807731333676404781315278428965289685435311479054220430826441333225840008511251083098981521730623933760534497826987658229695003556373120577391672174011172843484871188311085685639309570211339701376245159219451003896185295460256936644769332051201325166941748558388371072379562371192619195292359558501233235390301712017143928282620633604459444502134278084178483159694722004696690070552233700340348038228475752204283388384281234518295419261881024517524225909386538352987713048512205518655783855920410160469469595357390446247554687091515662751118861072930257247832906644606824672874578696540241945896394009607081975925593635254804300956146895837030616124087713942498323054640520994970024066139135792706139341286075991111227080481209216161358608093424241800276841401336941293328897115521084030985981481234387259124824339554636072876546578574120225777601215065987218512006483700193213179320997732467506153523146954594927470944206217247417262167079273629550906731219375246482260958070672453262512503145416753958253599830236515132627206459466176142125588846647359596210365334674185001539353140988968144353263753881249469520107850090254182432069399992409702597598676729945794873223120005735915214149754945090291590279003606539683713699710494134915874302982512145270475828475582742474563528701185868234156592747924106414246566390959233623970773715190227154631167078078923422585480198000465375988548666736239444891417479477074063782751811029359781683449163049300619524026591660268495171990768791274660890903736389074883696713449411361594379674848920872514881863603303319197904385673205547028847577382230862865931385364109118799531141628488998559525566413779245622344947643831554726420375462822421172437084977103555272480187542245979383967694736211295163903375607716852187458864268146985210789861963354904852714700042583368144568537109487745615623677982751059487200906742575955944637398836301671523862545496863692521058011552568785885305049393772491325312777235879543350447856612447018308582554509001833519230640041134501656431229437492788322163681042527221883950891920867955111435580431352244364727473774248670817611464133394472157520473168207785703284387069779789588893390548353675749074580835803010408820324713239797025559770610786231753104138602881474049886449674725767454066266861899286584412898404872588893448257304225992804316681505524345830651983870466053687275511002446259689720984977727176681686600230978596019554665663399109911118939128655808534300225601952148593103776145094176142202926663277935848501169837050391226423828586944017149795316561536382717132357039154966619883964273330299673251249425930341456195159476502646116677242529037452721450445066500999738758451429309516061345419759167689413866570365950549798874735637139566670183367461368479893072679017854989846972059671054378331835967190269218493151080849997261448321720104165364495951925296627631205664822541273004153713604015693447868603729266173527033810480007649934416830384094334173167011365212888363696527162231711093765485486418786869734808936298639232567356336531454439275070690070638623701806599880693124561569565130744177741025336267526547182154218462708986736299592292139812564598840788931241368147253403161358467866690540214983738891113951794719928703692843595128403725506441958822508031010015184668180059972871050072965357346027999471504219699199857769015329454180923780227316836269359591408757135229416041808284610622724832449409581444967500658115116620144535396138953606464730549109984306234917986080653454059641925976423877591543409090899077735048621552652078307910178603664242069617641530797825170561211282210111517646149249984418567534754647541513700002291070444923772134648306205453556732993822166684467523564534264599542248096763090628937720165748680844391496655479356227000715332447078129106375253276639898253170095062053486613745931567039667696258189102949033141781815287980701060587771914404666399881027004450020434856727444393502477653712756759777069825892615187162045427753110553782434004105283753726075464354400705475159027279419167191772161843819050929052517171279529957804584981678885672608305935191704821542720181265267925139465920843131656843683094594668912888707657749120569500692287771190538296594848568433163741981647067183614034319169110254255134986472187380286418062068508573114608433812382167616804474673523611641942406316502314577827680839583926969451125422627208394064386704411732601850061999080159130301326385273769899166147096163524561247810228774990302511565090331653056591645896707558716043539457331399810024053936291187366470934586938299883820562550131006015279353473261457333956754425249927828185845151858717421581989826888412001835583126526287490498843018065730560248637455256350372171577602154372360867410595534809753801315732400677701263130444313625166959756411828751553967952986284068489647882533659411066028457916837540935442007613311341041344583672793949154525398737803294954878162887268707379572591586833633316919372890466321279689891019299303302141711628416849064504750644642775021435729970840747135879779914098314805410061109366847822748526950606503066710802275064397490268905343770844083867568987918653957501773647823196173313567082948981024891757414062050741992094554454696818539096692107458720182476866664300332335116273738565472752098838194385116484001977392187633140992327423666088958187869715593240493586627575555247306178786650388415507318282728467981988009405875036433596408143483495057672698624303312724899132675921572378239492806641095362804908093408706256020960552641709982498536108766794945865266861312114248984115867826296527985611469127258747490298689769981082586463840540943877557265449780187997313266241020782163710201047853003689512785045478759534670253478812298339124445810013527018926628689933573281556428885693093387783889221386403094349003997878778197893220982141870590660896629051323307602802273824748021389780474699982773527111707402994295805200237278617854619228871277890281459625893300911147410733339458821851129447814104456442597962729922871787592870908447952923236032482817601898546766028765812655129636702633967176899142770770553733916946702070827572698249611677813782971869694428805017752857956436007615106050350506584956942874853834302054203883293180541091177594052886396083095815876343550705908613839352641344398979842569911464403584264166929999556289445794940276203269213523089786461354935345923259163200128541147442749456780831568065246508575453948257165149468848629188483178357175086494135127123780976238675390413794874033959902222800827977053066992663672406010879636541080167856051170759793065500581630580812289635114210611667524674549362745984372407025736855951953573539855795644279340560350235705024153402978360817045122910261302125868319547777502647139557571326528022464213519798761631064766262085214309486767506150060220225153214750164050243057657394638350982702992255222086575269490307520470325537961336097650669791982546252635430457917326050320999015990695657650414185858350995314237942765956949369112692706326090895521852011756080991880202852984193484228867779955993981402022475175240937744498490973529222440306912708105178454791175917001778365499463229851164920463236852074399579556654812014750869068289795504617876594523118818202549309023520584233557047264961164272370894314410013104639150140280048611429007109234825828632744426642348946033584522512151810777052076621338016037048753827003509396430982603343972501959962164599681561673015655920321180102871066574125865576907154871439240939823237268908988707825918175257319174233342614091713143707356400298892019136765600199628789120830638813562812055333847731781404824109611138323652671699264040951209254104113189947843642647405184017761960754004216056306031760029085305212801971879709671896621536073457835872336395816942962403986648645926695014075282754543425412208840905936791608516372687415032714721646876178211848923442656601436185258493734872168942156290767940321676110216100155855781861292129698657599657514934540703358578821794985475515808755191056640113361282807956408437136167347696148304091770338795692232361212711080393224296078946836524535045814032342125423775541347022228532322101440396315410815580829472922037447478258119490902046185434408727955285773663734257898776976876564769928003130960241559973688047820046011879331476804169470616344360351285495571191253778046924219266454596273006930010507877060817620689657869680711731155834516886528642035692360468946761722792832110537390707589563674414394790924625917199356767756627411992125238581859245759175371411610848896278984754066504476032215126136527447471646583220541205247189820598403803558230488031859673461936985494237884720697710355635536045722953220422162124973710145695729700302983875416007878856203672241571234211997215192876402216195540707460443800137698835862110763144464464593332516984343689047418924842074255053049737637576800625503384758962965645008142947458581058414939116456268259547460688729435604894579828101903134823255444555551097454601073316488453767143038202294697134334481040650257514402491155325499440269145781618544500806412719549872990259564620989388709441908353313933813102967009125782418056862596788062226314618013877723474904823512629626480297142201243163542724758426126205822974617868458946925939188267721240544518288657572285719104122144632598657039731082526311002623451712428618457320015485601424354960513503974406149128265171310367755334097610326404832526621850858335977259622495392879515673909793606822559280582204593477318985413620044577021238356417523117403106567399538509570113899018097769015694485731068786451190309103499331238204052874975857824317974190701403478191730359715389880427680761155659453133217549484844265700151825315800162024314097896513054235563147947700851522012042315254197694945643275727056093954754558586147003007991159915896860899379740146243334493474636336374997288068240597283257150127056904076328209935179556539840874007068157714134732644961888252854967288205275338343162480272384720034849721411629045249883909779733292783415755973779726029142296843802853508810170235194037993202187703426145200905019245483597144806051759153701556678821060484115600373788031946176054663029116135286045479799165292286603803744356278269951098126632068925477888213430447873846571849831501488633634667808816756397114331609070423280716618072543685725840036708349710207987230066523505321850665345754406311912917956110015751090436378506808917854595915090023538835178151652987097536939691879938514703157555099034899934295659726687576563602003945299008378946903137372738332303785483166170418256658640388243349218125049812913692340860837580113924766807927246988159682827306118262235447528826067885131505381433379492959186368287151708060162271976810500052527437096650565275976044584402375635252836447266043582251727387015712951544320802886800467269611685779605776603070582264769187973977056464641416585003789113322589072532248132606249142748347400549021949098203693295861579986123550081091785608360476124997810842582937146091908824423022572010989991330889763486429385402770473736756998787051579700750516710563463809219643371440777264101515319419467326273950702650352279138376062242620049160629820034731747554028437399318621264719279093779703182848042369124228824537304783069948453318895784784665754203777181341749815779286237346210106970032595024679035685338155978938469567356677789741573902657300456631479239242808146565542145754989629207973864288335917206804579491050940600398432711392583203301725578456492347057144491978723292984918492351967221069140265100571465291659688009329429000461657950231974181077454087965588569970878628051613474923099409262977117082330367646494688299057913141386398512478676105447415471948655805952421920428861664738298925196242083600511527377295230894944124795857659503387695088128248631208705469067109999732850294412473033043570774181423610518366354544963959077976339152884096524333314477538945808001372134320214249471896598130067462652677471062618617706246037118745270691739488439062126624426787948512033129876127669852837095436903598565291310847756300877263875152877329113157946948448203873815765387364580685956935678862653521666564923199235401652722613325260549878825431528081423300824843455214318276204020816034032893943221640725442509330629054717620185851677550682098517138578717131340118685051902169675368960364704314790638491800355303957501102452466221210490781188554372354552336243239378178414343563072650080558373802234618341668301290821486793884309549796375273696390670169305049246341087500987999901148611923544869846756816171051730112157573743898924968036658883669574858386698534034657137443256312482260253127632820263979840942945012554000201301263516758636816431325269004277586722603163315425270163665871891169144922564177347104045307339783932907524549822952346435094609326271142280910227967557037849089517359602209475340126719629022297621128471394821699415362353418689281118098022774916370026523303347466861585327151079141705801312982420872677287392504615814606157820457715572194334326457758198268556232491317530930106941739430930967796651055762989325677861178004631447545719083368408213597964604392231525661335051579713564109383672837980969860274735049748583523017907245875804195600302568438311580805364272882279960721988938618291933624028391945501283205275027415574556393614389782186812910170656735005201909628604464241048182124646024013310240674459686810214871650563056023830215485925330605684336649789256961088038878022761710600010432064785323773075013531784405416484292566724667069573148652448376781663253858964680596884773144199865187833368056136557895843192445478034069955125758086110273698285613693818480231936426273079288166390854218553140237907963244226119116153977014111023338096641069465011281188351242504041022726917338966986946764141683711531206328349239657623731591407634537110104092879541893354760647242473099528051415002660749708372470199467075150655652344666044459613814358733015372758931944011907947851446977125048219719862137304037787159609663537935308324188184748867936771178133505424075171611175310736582720810956543239201702559144968956797116319118223959126403401590521858224548297017671977558300012399447500036853230664004954424306125668507540846435845728170125104536650297359664368677442228438509799135559879393963478803415732599118929536698699842749083430836742496729853566142194982347655673746079982594400104911205597892996203390587112931978239181724048531483647274849515146575684135137831241412175156948756114639142562159780188396680184708646242232920860169688706059880265032675962721412195682108557554541758176250576088454100999806166447824223186104325996861326090754255733693112296373710676154677372985787360657367846651691414301017991784299710935402264864159753886323635146081793539070974334953912252176953548939108827961206992678387607528853417789931856343434434988926019261432036750078168546489614696958319792783283918870606117413854210409879226293800366290201277050434348811615417000139798416829357305435206099967370426552646714174007692644996504972679170343136139881496804710117055588557345728421847817831710482819932103959711632618232344037834326479434281396462894703523294503890102666177116474185986071515228240320542521780217327108330276507279976445547478698161236707855485785914161475661435804296228312568481144455737827058129963981450496715322520946355813221340635943276325943786084230218735408697998695382725546211105404780375637537475761589095696807594893143671359579164020975473043355644691528724788517330855451910184461309444877937698813290363632214488883966658404708198515706714151625677198396925188501134830338806053935194256792329778481334360814741712013100656386948102504911358957512699336612715629133756095229554789404642047890029156012478925975929079446881495634754044477476738293120782129169328169959629993385704672820209282515009929907892380944533862927901438166645266299836305578287688862844836875420670520166536288228352402677393788013495969980697319658931771656462298244225321570614064555543015422247814131026777936851589285839641423194935089475026338575071183702870245024865450771691295995605859263380482357363987329467866225576506603219656569752883781492914363309320081894112503676793897801767159875020642370782062091735681366029039609184156095819093951299186676280736901271762587348943656654830940753239477041717528529378574600929191268213761271832202823512473072073966847955045009078448624280948156869961533803939246762579420810997620705677929497560816668854424152868817761448799746298577210386997774301857297396884539080513401453164367516839123420280258399271276873296777714426993026962921534805590540422698608409988103971057319098368608426338769059325885256752634390108838785674277147027343860452904660261663015380984694604866291464642457674029893682670133792958318511657174657162136101137509501148265121797362112074262612529170722923977917697821045021667572722493734701007811164216589827736762311987072792079225958110022599881501384925414222324739604637605163051481266072720912280667268028256928711647197509317432302784591013911566601464406776788196609022641489749276829874902068566240598042339640123153310205562747730109454473607617250148715932195753529867717728397252245393314324905400465267098286444326223489550591562675409163069302596139286417529428366037417186130690235093198891070455258630471059072443647555086620363238483809069868896467955103728999946137021451336193155949846717284687723124580165692877341994042605765431371254977476228998247841463645498772404485694128740712590536034838888851171500536835600262955494015018293768641680001626146471434512311180336503635070250814961319089749647388996873222810176494906542042794329423884879016264082038831714887896359937468396951352048534206309142066208514268561410247438807518585860009329029636121645815633926852141193901180396976489229482070065630976843397398331971436503186399286585741623514929058114641457911022315730205066366998531531581866116354832971179500870175896435211378832079413209587682655540170105542887587700740241975865392230272827258150916793584814902231586454262860556650356181062398796829152338865707104317088579610415241626878612861898176678084699765380410499479345166041024291589106465310702966722001177216042390234221045527340421906809775324306769672144841416022643417577995549873540487787773425288934710499692230531501745039754840441673479857524019729661088468953378048167189026351147782500541917718413739535042948661609642931169928598666803937824294952715280396396070676470611797686293170816824712482843564385784592341287124196067772015320469023977521129207490598164147864484392453174926572272856402248879163659846207360085278349668382594065679093761883138832890964868275613469292128179099745585604152369066199769236619598135838235744310594717194130615693667679733326273182728946718136601590587344167219760212995598821320285978992365534317784285530846344751217112398508855928151279413254878396588655581841143184895161430410318235131490919698610342739829887031301756186122397773654057411611991745126227483074518215223253094968173622275447352048615681093754937740630167634334274800750262266603610513813071706013011175535940309177341900072900449484261587966118733661734290425307686448372551791783463209530729355470321953032257333912415273391152996273095676768153961140460057734529217806467962118575795908567647993553602918659155549063172460243129910959751202924641747964720705383447069803485003359292241248579318661512496218356767671737158678586901581147047921422546768108348055746074848388791042215827179939689255675902454172642183267497217265103219447076785006926369907004430108259260315676865135929664739381281276578122946217940367971227854505796038288810962784552844418946410285627309054260042356269132508458413008083925077949483677441952130523366224444632170663572961913830987029158698280306448610201532329539416836326915952770784197513624744605831644344795073344253778604628332871940681101680947463038601714673873819843489358029792371727502721555702501523346151593177222840105404502369539213489431263855481103268370150898928714819782794054402656615340934573581835079413559238588892853434086739860038267117752107840939350587135330015111381128619475077927483967808531173029828175998676288750620271286079262832164647731712555023512921200385788521091223497398039713621064730603781067243864676402527090514431940976831223861629623720235607322385339798219575071687348957297741886218060557752241793055490386240406893285445047880451911930537993764731811093920264651455257541310319436603011374453051462206126096875726585648636743797911787331502223839272023488158118850827960225291537104004484472628193764965438397604433769724095669510375497486686858602418808667685470281608475828294623797401263501242112797654656956501622618011721146993765201048037052635335329619229088352813489663551597927465222169264229833939434193787219232890137117411380594697925242233805481955833866712790791258361022050531599422610067458948230550614809328959799369756488353546563797595241523928239342273455102696570970100538163661704924199938321102411486615376105521050399593835010570435502601431705685207269052019700598784206069805313692488707630964349242974645833094549227757987471513897849459808887315386449767611063156064874154699017361680130893774638611699046666482579623263156211383879732290880803701345068510453841584898241959053850226908844306603559089785518731887217038260662226974552802758631224888217766409972683567621081349034472518337732987293603909293570907595996423446144274348892133749928846350684751651108386101539460128355522877751656921382073893924386479849055004150229923885986629308654220880218437066993940481376811468607022413251581543814416510801789004380376750019063963567811870951407178691490916864160313890898148437329481817723428864927331538920626960418248143417285643606499135225644457465750544029485802576883890891621540813682452423279682496226677020651203590518959881196807813499112595721047378879406112472911851928765980454634520456641872841074675905086764309850884508871485214502785922566680143321739125535248153584148205725587929749135079488879969818487054053488747022196923496205413687309315169039821467459373740718911524755789288404146446357340870199310371846284376665355112187411054193792343721151484959011676938964170320854300784312066341400055634013982922150263675493825269650472526442756520273767621519919877627692806725606410709732432000900207169502747887152040174911810431623081225996362348044486245253504599152546323286234597155831932066415547394451767400118840924977528599294428896293400353697917199897325953759701447234914714736899599506366316777978991872747820637503185884505183442010553116818147472219231288864456786901747222551819649623946907764932402050585064486793327164749154482908728720757818692805336712539434300255364804068835500606530628058644478456507518077331778069478336995382788912050636336364628333432898578797771674486250233987963224943515029876746940487800917252330353664440161116141534615803330281570213112875128889385661531461028479263825345509342198983893417012080760411997280282915495558071283281070744627998909131731181523080303219755168706903971458769068184746091587704975254871296317344971034655335498053958902933012364924506263350099930826364965073471452143760116856807808839618178353875435197550278722985043688701608476474245482151949632143856830443473852131372642511879729265553957385802456129650202404262964278488512547277304444620671951208548835217117171075772976690512431479199727694528235637357508686010747775194779515124348609311393235149608236944695979118027378577981681015787144911438440900668562247466244247604983341141838708827027935909187579975886891646740374264950988724065978563501658744803669338444826654157517780399703924505083216060684058216652468539954013221359065120034112197457999024328229334362709689957850289841933459249520415029523121381862361080562371665998018568075369968092758463737835246753340673357930158041476690227407811324383398478435321391964568962426203857249317244594080952018305546152961943359755791153687231279176782890339279579058181655365584778319727278154002866812123366883262741418254825119951140406202692479648488175996379001978148902866688923846456079349689558110676774437427590941072714987504939272422587523912931276149901096609652907389991773790549448187456763888061076557188751170154261427153458231234096592724045414945838675294914069203958432847664529079901870496941645641690069905044680882091989319204542235131327152789539487895699779372801618211657031090959262104955382178829500785606074843711420357244457728395935388745689445480836767526918174528955175406881260904814753414535647347640871812786707818264066751389990343880293184892409483430308402544757081489676203157846027568041362234043758857987336763339454028351276357923094427889819408344274278552777260460294760440898927703754366991885138976035480162471534593553656466420482464242883308705177027804134616287110376170807648414921020176126758236657488545614121186736196858978854218225812147904583478957563240840876625998429839023907609223656801464878980906959836524309406613616129167434502845388710489492543910148077331420042548294988571147898563361508246465637148491686939135522521578822515676676602082080560020072088327574653587397285795988714988788081166312918582466105568705869711300166271643559466822717530675040089550320243781468003809761168354576810912377944763046741441260863912335246902347388404093639627929699374556143109367923512133274940595701550193315215365497802707538917173251246599946444396960197711094332548036852836524043465324518344519669234268374341638568580817885725154684983793016425841354117806064189301388871853413545581402913528349277540930386916894372040342288644200804645973360192756774402323704307768623992022674455241586257031553933219693818198927547671213504947407252440973700027916921289684887583371051574066456788678648163325781518241769662889331738917231926447280311603381629918036798738682885009916063995900669860454747460893134087322289270850945481741950589899104026485770833743156288335202051951962786276574340155014203126622408268222492001603888264292805386804672109128030958414952589465809144191539106223466992030220918901709525487178234230290960274761635695579254255389549386303667455061771621880062068972116054922295382916665666725868924443277851538701218965142857722233181662526089746009131961805433787883300581758762009278020036852871291114323570323708949932879603947137301153409546267797509800537252367992212583703855591014432163781229447658350634955980253528634444435009525644904697832182244980828736122162685143828340280190211765290812916330238707087906909405590239850804524249854824157082541863902466338344333479507787368591613774352307731236656242676469523878069291078436908863868154719873470544667111852990093971125826404912218433809250768206532768059465434749220237814879040762416625337006370970511866233713303473858230053353101135695233434430060787418339465113246232946123075145415892564923827899105588785273814080792629010378247362651705365860937198429848124195241193998992988389020526659153468020825853571651606368336971709485051398622348710424627487374703341389329548590992621691073306585088740157190770798682630732708401934514686723152626156401380327497176139812625935710010109944630845512721311703125213219646923262666187902597984023417080267760347292354912553025544471987532189376247767897452689040714208445427340503593613938566857095633648033868421184526583654217769535982639114165456025430755388288296079304384556570786362459723542338826106910601587248840479980484818642301312991145264959422574798730524010813122606940591594852560848809868017672757595598520720141870558514965437652220311347999616021352552629168963457202374700617361678094282426661584561288050832730058110537980520878417393345738685389089282931317252184969797452044516206334973335331431132758671788705587089650855201306302497291189808332103753575306528719096628347612384233100089384760691631236833745846620560689720050344797291036724996951137364305765151618607297376756254086854174496304143928092865770343963353102605986946928660966171571569985446185391566215684121044052232700723341341683727108067552427980060720053509880719633992371282008491488959975266286006961193692956676836615190337336188854146882541711075981238590504318546296078077004082245301849274018163251645011682952700029861793345466951570397948837213518709291573950669602523175229590603605691894155940323112596185684107155197358734481110081249471903886477114748169289588807885077928428473207770998412159851698453923911037469182470903754375290824070538387394493893888799446157035165176722393696537799714590387699701920756500980061470619085398158650523267344815443977880077268025125115456828114515848440717617825841218628885380406363235083862016740728850170438721390650632861770105523746669609279643277145064142141200718774084654499485706913605723484273092886603639954276843746163346851696708925071519886423110571824701474762459706678810940687965736968472201229822501861998201230673159955925821352328144943199704466034812308196125498624344831517370343896347197076556006814162675405044295181949918170604076002370192048844877268425691975962393692081992745888958321000581529041033644238364908295687001021261347496160203244495751132423040728346277816644037246691768407803497744001286952358906458517938824808851689680259760862984603318184439897234096715540555526376776720698134596260019652068697486564585430391100941379048127336671497290746050443193813740537137673880834845694800316064156788962767216127787603121862191507831030585870614891478440372482274644951706557990044680964641701414151226246403650850337444521305486033079522389061733833075485327004133141741430216750030881100266206083867179031346053706915360849477026181875228383461370848572624766518492754345744838050019587801081294609825130136756428234831707604813603843295107641549470326079967934823298239227910922120189476474316450241646876269964121569179071618309024756882252989449302802796268026689593317116170713241071320015061866394001693878900108078796047032768523043603119792838901982854363931891357633445514860850265897455989505538557357399158864767252815866673958091464711075598008559428508884366844050509436380682997257147068935196693646150515135286870669848952807380205948338687521510772818823510946886838711084034469365208830426242985569892606111115576077530779993081094217890256034229072019544867271040589439822185252308377931870238413962771648207896449650101241845529444717789183185692315720777922036539645915362147343327675010585339469902273622838751200654992029060279448226717548343123291249793298027270921671779517492654702212213253471313902011454459324851786541740523751114712692020569170498322444189200360025507385962305632208199303017447941389807166864273251263698267753512961124685555348730812649812388838695417714770463115271762093765412453344068008135185171262860248087909847841308079790054672483215321973467041059329823842875432708624668524867475150542332028807560110470139512153945608469014565682080196988166653034888995092494788423551531123942825261128613659609476428206654109064400773408265226015679457997872960782225155526302602710680209875397289994428055959478147981327833247787627962478538269494009568874222929248767933263850982268495555043258046318844642319624945783529404481939628036217691170181433631039218865995114645338201236378502669037921533241132436607939545477995071134516124321679815635055666251334341364982325775651511322436271283537971819811385932793587194245149350080436225748952105830945627705146456206281005490771403426274948360264946278545297362592207035015194929471645481933821230818998094842577060581119976807052056710095169878708435777428786057411507323890489133848738363971654948790212073351024638572579457438672041259828454992802814634642282298608447201411632050737242820222726599292496881548372366430052169481863654046651100241014529138532282516391929434251670063526761110057731082964336100154133826551450887957626678465100382567356006593071288529489314463674392020799349503999889786635771344121587593740772166205234909119072498828716097911631487192521640043660692386946008927335898089582382984831773919812930075444549069540059058168984582061654360069278121555733834634606046589150964586711666998242496053628366089575260844608648728371551265654088268741278510216925113525416136129392388511999301898919731234708644874489423805545381652840604401975139567799010768528413533211243011139904055632923364320101911523575916818897811342461241797995498063923705398157251908132991917844748920770027676627594802588786438811568060472340542543522259722373368717566760793941776208328499465086472984245918498131045209911530745538419031355597640720858938509980103080112935141577853048496841866937299026202094034549808513109198950261179675510141980677146636595993148516989131758044677057387636498422442272769948542912114977947547609503508461742597419057186838997660762853209798701445055223855911509605888083901057229734233144201541493099826925400038134152637032780476735864482890984523367143921875800793956113092921836656217072585879231214910770076978921823734125886422916382475403583370577773374195847266919570203515822612333882483836670028315397869350837340171145036224158804219233777011201315028207635063712988125501875462830223806735310675937568791542863722754074508148108455085313675290307142334949508028768149235287791234207376907734539604028519433612561495254256668886474768862841228822680185125931768120856108563149831240230421581818798679556603933434687862635692850414923578379594323409195896426801355246869256341631052644396657552262746820176483110827519501706217156577594645820156546839825600045615327018915532371345889847190306481676684756195971363551524894133609941615765777551555607135989878680165616500461529104933016141802929123378893841529790433668665125734138788859151392590047154693752960149743619879753045954269673317672565715261617277753866976600571628194352201955114660089622940920707244517819543627205215780378248220127960366285156012394845459478380375986132661892049592938706331444333259568480644331764785321200620752912594465676696015483133697005965048511550795210093287709810831672482360997544462818137156494870463273192723958723545596703480384715989721595486353604769183231324142616602146125559101429396492768363215590241929124208376625767506703011720334256019575993559059663235382495530454488859476024088519160510644959525891919623829882873866633211205177061740584542089297932646457496499451953764573332960439302518124858090714009295120580005716007557069972899020166779974438024062396293919290864014586277244654979080261852647971932801272047281651578342157758779162045207210474168896759539084476458410776565791157345282327255455916341107036697422560299287365140558162916852814886964773146874377880871476606442483264692277313375900794513892025010249842307446047885636201691912585746446907721347382260196659898218972437573261362204297089678375172135281898422482064681707918512543968381774291938179901059369009117444111925809218431908340912865258940620418536281667589972444932728031229686198158089418315306242412629684249502913333754717618229434775954442072736728556206518794445128096743056175409670733885108191153614571603606929304726553988908805128046093376635349431613561727680294642395637357742433715023062638443888122865402367642356656664937685901182432175632507211906760212399571539389000014947431143041946704746556473083213445970640198389112061461589495390011101082053697809097855255012936857439654951659798177828395002307941087839437994658935954068270928643096609436678638005594540350543384149944969099913084149663447180069599652608186249739120641798741796761849522795431010847155581991921004266866706643944271650872260115438333044770524487689557023285977255437297210952227739573010517809036180527271544115069280939990271353126888192051144733817461607313928291155370941492436388061800920980969231461796741175473661825248687289712479247493303466090699807585694788743508937075113487896890171124330808672894275536525111751523125499663349554136400721583064130248812308712113036025317937283205742741093302876196751981585004246618659279054447662564089846586882494131936497457373749097842688514165250642511217653778135442580403931506427278014762814303309086296327419809495075250189203022608199271785439029960123653480905606878047087059043730603767295151775995072899461048836046944369611563499939938497668075550783624828031908108895297712869943970321968343301102138716700563950061082279134776359772011108644716386716073574611078355417721336634123484594096236589427211946421041631461781746051045214502791196954395452086508724156414795001323626442984751002537375670677096671619272995319462329002981135638121231410751426344895131170419062501460815923624063105792105570804452470192232721013139890939268106781628424712650413490568678494169488547045824949224779225357430598608810491143320233617077853307109384131579831583622919914547875149992988204982174109743192108523834136044181484236311857594814344504180843272797092521089559456241637929883630348998221775951746401038612878933820778702176929335373040379756132439504250378522557722152866258660283517752649654135175923094584945448448272224537469179545616099731516145519214729992767681722891421395333352997696849406301665835973300476926359641995860533162114415197196526575822824705559753617645401503866043379553070118029999100567671598851620268314409965205940499513412475191365696129925518104201387050323341482406235404032921805665062536794618821941498790889851193221619123663871156598479801647893862926614654459690495615681431925675809695681688446245336940476780066556533205261387388042750807383663858575532482935560291529331795174056789124165640729006991284897769078532795050568151347951983155653765491582135102256112844696124485812943801117555382714409648775609044952789465864611279668566359657674611663647604267362954797394525776412589463643721578072537775076469356280923066934974121197909990512345027641651201194486160295937414810601126353893023562950201024898148374414851900182169936064092635985745132028008820272355987792435439722526980951023005563659391065363256344839225209821841773804482394706563980157305877271161086805758770088794083340821411008608328418620148889005482359470636981176812436284849774290683177680285241194469282269412284414191721754814247653000216282767165550665217085936060831947254616461318810626966706314252342907310418143469412567395728980471843427264757577696744212447514008737639292873138674661221159938974890028069914418070338679203783108526370903357897212497209464051010747016697929350376656039704578872547841752612128742901373143907989446587388654042802677169404895257959515917765747807884148841448597896252867055261631014929749087671323657317979770572279894015531666069210860145788786912848378348306038329002364668980175000632612364862113195038562592496887750445473354159024137839503799297872685706102036436829674023880044637490889449846359440960159151432198654385125864324240440299462995779903344920990206224525878358250508117384679205350413934606170585943760318961974368327110734358788146784783373331083825608271316941822284862053682583224971602843905900749854969970140265513685842658638402251760497611548327201406903894065322013464323082882204988502544896183172199695263364042714639840888995868997965392316322725405003503574568430347019383734206826989752743451624612438058969292481750660720609568180918299179963822288597925691393693775889677755460212386333062459043542415091105438284213722473613370297739059593805122995666102007650590606821859754558370541263747239543755327623463078556968013859433115998388136037720411159502793788188736886023829804752476460843073382046270589334019347593834911487159490251261285707036955783562752211294816573792781040850867788703756695887696874440603199764392082037143674089406894161922534226399697243621998600479493879793533456212391535040667307177232582305535234847615498624333098768718764606069742550157009452853777098091394990896343551660489128840698085424336094904019330558458994026648459987648404811120681365018382835392321051582211324872781057339076062966429740904768611646714777464533723499995099083991103345517024203116403358190273105555476029197698627229407903111983796851634592285823941390201515582339636359719507541288527869955173584010838459351514696751585383707321176222099185379121248192858794695560226384825015858398464996256439378237776990141827748475173678827110290379737454413869631961206777246166659209260662734939572448924373961917964795889590388209702040652745124807954396758926375336548750606167431114342304406531171711131804441583594834380526821879259190171294153203403585145006653076849889840198357858499841523055526816721182350525216735076137812125091812215265329450848597747848270432380111796435422286698253948589698978161981955355523288614202758771325720815183061290864271650889399709627624856778499320388252887170913539453159965796147788503806115082505318436264659199432647659003504190849583148348746776129678035483678392160910401478342192240225255788472819269592195810963732502267781747476432393265210252999991313067875819100385613322051386720765668455536418721175745656464097641741775069885716710198748567761903529684464059669268975233586861982686093986363479120305123891922876486011713375920739615412814182284688984330531240935606208214456525575115963800345792425853271599530710447477267764880707753083019003287054797132634136300448628493314506410672069976757789610829938577035377838965516239573649140850503063548780294289996059637283936133653163585823268650638763182277753061717636454794733816757324772066674623809176909364440579667966604949766376343938397171602702753083917476721312745372823719516715614881584205765252260512761178374994091214826460838302097590206264130505905079433839664475149213023499477469191758363473079609815052950900343462278678629103169697199951046606460720818402434269018304395833369907598408037631302358325858714898316730544065461353833224068676379066221987261829493504841110841316559317116820509831344087578042033799755856135556338943615131819508350731620104104735548632813698699403262902130888347023571477886208518984732103756094471760512184823644917569248809081628643337165678494587119604085777356714288631800419408638283513213690775419634581011873894150790868027321419215287996826421590210510149801365680343378915013386152572728657938231693467017572573558160800764503387536913093701188788957054531139326104993076378640104385188680772717807037098647707183423645992907868710260157067164974216003176782989869865105294550769574567598381886889640467078226475495194186923970189188692662547451678031339531950119777448194759319712417870263823811218715479770276905347382044584747141094336117143915893419811916143232561087724571661085182970439970768465538157826193154845843835670962773834973358048148517226614918234142874346592067215449976748172914015884040716551571015058911304284951092478179779214098808372091835230068123278878560439524773562104430182752388783404762577303860207763061632833682778758152145706010077744587524467240545780207014049002554598603871946344410736904296975796555959329645958073249641667103802218208595403761643484406188934820067869213136486251210206782450257563142145916660805883174093947127191987747878671178717204202089249445774588743587439470743071962947041131422071498677015669963975519460914713872843959058955018536161820385059206616481274170675177058227008423495724354107048021487106794993239530699416016561044530853337026957814243995317904142963487005679390250681466812064755924967269042864140816982253290507772760457089444961965268229281959906016168122206017465177643571877077940085922255280406333324193863631676788029966571866795287641951322497670697675945396937490820471059263522616557578634375340340941491706439454116911721340521838572701152240722579746587428560188672574468859351400799037620766124655135473277276398260060651131080181838154552633586638742376863668048416087423878077867105225903260875617574720067191504336691019523785242991042227637076080015226153103024571969122021129112875786286531364079758029088124119722660464484552168616876305984418765965273471252797686062479724727275030360575578630333373404795908029026069594225216819852840284063932431550632206007261140066262692612580397625277035884247152622309075262958425862617383207511591554940919348578588925928764638563533365939824979422358897613458657533760924607106697143106037322124586947081314934792139270496373115444624041058392026880045042328141096866269675358927401680260797798110996677643466083533676464403653665863970339727869464064934548668158454132976189868511077472553982384477951571583508893186754059262258666273143051627545981833545190069888548612728344388979079426250095273607553884871171368285346369272056417612704292806939758981109199548753612219477863620953264558062487514243837542720355351823170765812264895687027521497165563259281656602767903692851174129732509386928088303595883302920500448054040148167627265295316374984238098428321970695434102671537966238980214005767153866193310292770908265799795460258253818070475886460870160676970466834606414138869131600321158222737647558276492813854311093641274692723537674125669977859146113901388908202144632865074365349716313604933579420799450437968371997021003804643945306230919264274614882403734443285371210220113807513151640007131087012822809585413124975705188898409858093164675196494041110300604936401435045443456044068049545124121909798277366723292327859177507980598171931309827205907429858046154702074527664916723272415507730999498179991080409114840956367621839210730099938024937181918520800946865182499978949709042275157729992094092472601864615883028914702975731743275794026707291356604287980935916323679822376302753432465945851818897080163936811357600578562611916997257477815976355106256131586575396562906252736091138684286167030321114178783062657116713803075696796652365781327578338969049620857918514058909080964392090558890133418842985669458370402527700512348747905990080057564388133563396169647080757753798154052176780153116804918629089686340125622512556582477237606984657937997173052217001097816170222587209813706687277313452657610917435728356711843288197978890437196463164718601681079623918322798622888736853729232093574441692780530962535672094475456301421130054786110341562298161472806977903727703671490399577894116082366569907068449076156366502507680039419684272876498130882305245222228883790388923308850839399145675539120335106747543209218091266987507454571325835155381914985316967148024069463237183808705393365389708367662354809985083041119875372833038440538769078966913144214217501922578871014428845206334886236863328497512078829215307003877924841096523347552658171519146730452121679477829578330852942142987025539668498395174440871798586321894919357659194312172226980768164794422473085662207271228284024430795045422325159776643412858840562761796802836100092745118258094361141636001679383316218424927440682223979513655774536103007794626457085306414122964097912599153051368629433893085593121179377287402534720380302645233574364153217614343259655095914642461944004707401978535946026726962473161014348870089999095972485825622940612357087154727014439964284801184008131021720344150729069507736196913695053955888002198310395012262008273504435332158243930111195653401959427387137626515744116531094015754760396414775291169817916334103865684986186080063371498873568213683755636345863357015912171769240105545050904870958576686533089571005443711311575544204607180960610120503589969874415270976283405268256368126228982795602029627050119665140922909124692701150558552913643119162832135904122344971963779436100894188370619282593265013402923665015674541995172173294738545083150731930573583739739640694168873684546581142009481794313749855421172545617275593012741760281065463102669413634216151041634595594974674861210163750482620616321971730375778602955839918477994930588343391022093491513141797051398916193580405743044501888498873285403333338930327717947224623842582505012215215571320144252695306157014369567005760772680558621253639265679414305049672881978314702987581353571343883790580786415166989404719816543557840626138093121804056690597027851828669340214153682071608787723733158612465096619373637368641382649038212467027782183711658185873920000646189787805702707804177445664666716834209890911203525817887682364965924639104449266464518812620750250650998054273720637321852321416061788230970667795536319119153172599719686574570788422597763134071689213755612926239144531491437242503412856972840045822978950797834058220292783720687796108872220500478292525882887457508354440798984677591831022767269121231878784117135949923188067145097304901632722503704988919236345598232524696689139600138858637145616493345706118119629160792171560471187131635852889821003448282279677144323367520855203085488346543892814089139985398919449819475612365370313351248886300631413190172702870531189422032289103331499052573243518563939996923183865041065783995811023011983967099440869021356950428072910544160236223174954242045808828164516718479478279021856056566145513946626239546830453018061968460982261549126143958146659961591611102479583635846116378374762090981923683608435802449799375970386923842860563560407147944163305806255754592840704533660667842451239779058260978845025591276675493514042104700107470006568903096497449041302285491806797066878142057478851169753001094422586954203891839422562937698878851774011604472678208894184631155066849855290086785843368159676422259898075092208386487495092505685007536963186541727162508395185210640029368220939985587136510664098472211149229063272345369875314268059167167007784878034165952055948866141364146873777645136941004502572335961582907698674539225866665641105450267336464085727522927426534831920686121633995802308355041654859860590631290220873032343917775600393194741421922471977225588402362624241008240513175910528177678188055488637943123848605816346317903305188251129923033599956638466742941327182854773131817686916769530145200609667305636923269390212557130140617706803240193372421389021335353645077100035477049257807854515745486599389132282869636026458485953308229594307807447416058074348729847462111395591910595819423919323811180910902629591474942018085495861384282200690315658201276609700797529490691162210166238965660739039904392682006217940367710709867543517523663855794669411779089868294408080128875565891989133739319570793857815622805934792408272708379703078444530156289101302517988814855591905120428599932869816442720705660823752745492483223405270549112256458767885673609015811211915413649116120020386963291120224009820120613238013631563960918545156631144927969966669173591088722012311009232426035275680816365352390954754216781393111759755045333507012400193389447932519744516183062672495523100243114362539747765184617966162351516133055076390610110224561904431484227050663040613697928669111879966984898216765043107743461276337815034301861619231606863213387247237433388561014440736534255228032699836156349347723270298323352190572593416795768623981404561460726540081770827946586709743922926610691939359802968305518088308445885378857623208612753409469787825712592973546851693284249075133194952254746333724585794452315063003838836807244473532485767971579471631152407299067607275020889221885543909079378066180564725860886860870306020811733535064355358709647783430366729385362488351216021265921721989330236872381847101438032219598225341825639289193434835875348847666901621729917478313745707077344788176198383164620369534923402844388673031537877836527581422501992832477264443718837351031367778716022162505621441308977702986037303510241716418734486678379663195067716436022017176505899729787947149930470973044579731356152158077891711996100596549382238398972278311311789865569915692865281228203846614820526213710484041645335447922739084568884604417523479826281216812723485176107150366998032056974797504048759367410356066315100245354461196607220750328830452800420507232950390690046110967719501390169420847063064074735526604065206593752557425691040456131344519372167025248768984819830785049156944192385545024794671055530349469995377132348632772928978725646635770647757396939969066286607702924077129616680886517742634162302199613048796253224131268990948278396505789874304300806719541963421944412569860281332941868557374973318424830601399404787524975732459352183792842324666167611832025332078649906913017217000761588193599366011727070282266927500464637719559942922811918173296217743126675137613531231824361465055460890829192167175390134801092002884726804437230827474281804078027155779242628327068032241722271554568790780179871360410907321417302940764897447392285069317533685078409518675103816220809145718410443023975602930643897881030900196297872992593173183573232368373362738915765429933828609134553307516885876304200929945043025621438020307493787937089351494363817663043377977478265909475312586319226157683242631893171978665681497308517341404284315427917984267834888415046147060087310546557669869685858327446296709995580476005318168084448567960899853051063483391171141708464406785518627027458640079471804747112056787478490627731021399229555127019906257992747794437340097613961540041592367219438891686760013158689495488895916369816721092351390244776509954968059877962427820069452487316741709501804748802792596070515167872265786683135377615585085111547550256724201161948668749474968423625719855714145723515075508770417483763326805186362159978297851002137778276322878382848588800196036652247015536325523912346212413793743267420573707085338133441949572248407231801237755911010693705849478105858395710379108700360669490147383836265239442628034901211941445976277582204624945974436663759534627418405835741697143148231947943344848932144713310253927765585454846926181718379530304868392465994920738893529577990563672056782433305236736291113858540011721953008757303399810894887433374311989219617312246114739965156510203012545199579651881726443775831581346136284867296777422616356161622632330728822603820770327599429300710534291424619726684734507979265618183388191346304265441526505787356735280928127581155690331756104220187812193019669069080405471322332916079990028694185837000944930900774379319837012831467850811407083832043000001421850592346579216650488332094313568973656584437011583912022622886024555585746244372866210882324487625587547102873624438429586810343771519317424485407968812182007845820955538680536210235919456402508800348927148488541452204073231467401488197922827825723224575192285452376434791105103157764593627139689212103139253873229271853762763532731874342939470405217280000519430733064336897051307099295986130220923886064516602226730397759325068596570621631397708326313211221720697108308894852851603678377263028768726422426400192257107846688194558960339081698677769413972947745701462281306170623072164503091348975587829775968058978442190356906120495713913652838065612407235226734946851748828908259824149469799794101444128873390479438772165104076918615613209785065784345413362508574260666401095115518699714909929333412489519238100468486650146515444330933995396940089273129521664879098753599986054820735110412509821718262299525901558254465644150437379830662619599637436934179279220769165921458802139728252204627530143504849933985790631956877616935133846784316748115066702294490210567560137088452047422986126513781776279760631237981102055069593703193426888162196855342865767507878830828091268542991505603474407501732365763901285918553846227742403231246020413287013474547854399154798386097455239181324446885198482885295859518643938531360684068763026480047838690388693453803007578619585360426211965696551344279911106603883550864532968088242719755720678175306757984577356140579110361222849788265540567246706933072594260392867377800864186610814942932302964091043067424259494304893955433100108871967936874011829975335898128252525633199055830192001992125658620155838508469552465365342746725454288583639174439781950836192078670712140508727142678525790429035332673522165354935042783236768658877606963303700402720584462320207301066941131253322926929638431034400501812005065895796245589169182292357121112750869445527197065626863286625877690547050967406083173003010203363082080248643237798296696189957989111330066172578618060986813619478997279288780933614515512108300813076372366098766919113016812198608599867188407425574989834890080844571045774230532024187378803361429135340619366608374985631535146902738521108779424343284809662637694388439893706281601468465012543424804518277785184067943399836751567082266835076232274602903472525482869164168422633081735835497141865392185792077647732638098096757057666638101530413272435236219874252439266380216284717968745417003769070644108744493154095272122809179865303225174748273168060107060463134129165154059297085004647923315037799293115537028684402449780560301312472608469137478909988584868453084861091538541782633668370792879147283399147586029182681288430918811507137723293765717096766291116340462393835274372164492538733173849000273670617606700471989783987741506770657895480577366716761474749141229251581890514389025936666630496342899747295375145546282455917054342628931747816895866019502554807850138831820702405297189313128978585304835335369538122812893652524134910443319712012995232660936481765820849543337839591683409051830365344687482573795096769616729842433046278168567105593378993679173598642204651784712806365637196554963503167460104436668515749018300501585791909504498455858760948895861287743142305240960019189284003474520972695044237443306613383240819565824583707759658865093545134296834412454317738486625387316969188603804497244429588897590529518791498465938801860118393520656500719421096811756352264609139976082137548177091312933458114060207314374524506771510792006797444397156167415090370777335672012221038075673327701960043491941431833498530812448669524974589632011210327475173669618943235317361483330713467282614058968050510689626267934719498916193944040201418778049203100248780533435510977267508037378197867980077789595308131993660076649828167684088471185686955233599245187826134050078923241863091618440365495902407514712998649424786587408905920778851833945058195612297909010517090747130039823938466724637637409463891704736563688920839848010498967257249334859166807837667418423767339109476990867833065531547206847862150684813146808894996079175787766278616521059432404004271861834377050436760866614576501714261009720261054298402116690725752110032179738510077453601768399099427858481745663155006648323020301979601589512014327625045695049059009093623213768800291499605010430891230587281498329895200232948071215332630186469590365951228288271508631698347646690035370271511623607642939414694799265260372365153171282545938885892415466604174620239174695453879404580226009480464925734610092234459835713105475803520243303094441063120322751371687536931076576619870573930644012555143676877311415668559814797776001269151368176528695986036976208891982037440623615032909218497427805499095131937703989331656531823498699887268055052698673295861590219878534368534474287985607412994879712104153422047234908882295001130760600864810408100820063310513072417401953043383874477591505788418178394452019024817884404067935860303117668232840833968920566402670232778851308108399128699921217239452072425432798718089080586915891679402916673951355328171944709738488945709603998391962994885724818831660567871493600388767920093803529722082809353737849137234343403584532366922456426024372711960861517156083881862016874613647906127112257642426342937668571238151980446667722771851697124201335070484798607312699986823766083424188670346792367901606745965868114144670711359028781923717334528061728808460947086497357702939464648325459912599366329476699314830926102809640908785224568165039679089188030865803203027773015561483089825917186985972981971624578494498051663419325607853918981730525433734583334546832100404883785476321314384431365190152788898149514998155612310976824105557191440056664062013923970162448535428725899767123781730059855938222340595517881760535491972603718102352788094332667156679227606541093761220270871374659865860281036230278100661152016935900608797881487749095383663185484766601226465146267559184209585458578088043016303569954466583239369596997673711881008476255977394842387705641101051750929560214453701211221343294649243012818089343676243632750778833175276508550596306511185569437338440730662844315413476004699918368172491013674425249793819863635015712049229036153799179700522574915433912551260803234711364532780730327507994332407085844017656888491699062042085940867888183165673333086779996080474092545564295011081387078710894530444070298507149344993276716226461248863522796706526513484873255525857994539337609730106604329391842043205404231932006620996839797463351145301147591023969549016413888568747494072828342258722806754817961510573312445598907949759375505782251446303880022431483640022664228289085060930205271855789802561307606961025729732405673352725582253634847824485510825955663565939259659507189058360686576776055343686166927231356750430723580727354607097211816704458792163226139008761621276016192566070611810225088606717089136245555691083532153598778153042321636661396261568486726887721566932504958110052852096948181631347614458253601509445000806299496931633045420342267059400537616569878456624100948415817712869671653427735098439052379498407250273817760841479092828717957769429593669761060211049801868322657187254479553887625398724610703955295619430294448569105561553279918683768356606786421638576622716983284566470377740501534922587398313319636913374466568654194349322558835594545491029825350051408035448025959366287638844926563092292661474105874715179351616396572893298715741123077331522802694328458447921489495711515675547028808747925435800073560939441924780810258075942941572210971672627411087803785675962630700970368844414714891910370532683939044837322590425934719707361346078777618570261549196906137020956133764049118275197822409879152963921742700268060651682138479253224045013849738463676489126822317877160529944213111939433267427089806549347017629357461754417990881396010417621854042369113972499054171880394625613504463584046716598752212076204651271257725049458784735414766542940328648687689331566418035551279815734023037985414103205251261391877899289899692838762432716613496029300278368449063788186517336169468668843910700901914518988113412140030331056341304005116860012346100443847389120461361972595438368104956818675089336859351012883140024210426939581897490445285694985834486579140855279379157433694544384478289903774264283834646294840588849515437793190178840232729613507195850589283937935672204711364274751018651746468295257960919279255495416752828908208149230811413152941303058415131162869060361418343515200796517490867410366907137943684656710103741130438715015131045885248586118619443104890416260117596579560344312096019756337835745021792990792738946900258561451225442366972856419946525738099865978985051836434520006177501346986086522235824808145813796849014652587351336872790959402317734818548661662683722659472610399566954864328934606609391917961970394326634155078871402831851779567551273112276263079215039617144683938551916350400018107685227256089540978404669120665941883486839599969208926261379349097197954106979693502444556809781068457549405909148876233572332866019001383726682172613182966989905565201882003607327994851117932213372487647713152348936380814912545625344468021226380576004064015616495043540888990111753162705463921337458589218783965851991409962002676432993303304062145549398874291018631587975285761314312602677312489882257472959195191923724832988875689399944779070983478941488493503066835661278650982834173444916740233616000216040862018464973822025031096813895947874128659870331443904287451927869215652939877135443515778100522056867977544973130096823197804350424338806418458892536597996014698758272318982192105342055599570064505562150126768123974713193605834307943770337032601644863255818665027718492416468190470028083879459451937712432607157451076599495765872481361841440369513524175013434785753361933585079163937208856853959486650250328774110325456573531573765757603907012072234755556647246604142543878297069519405589384652446886001671314939613213165042650673679933464028082126231709538853680575672263940115449249319138930808585474729726327061275703087328204975007546990078091923324874055954214049112812613918318563762482295241826587810017481056610844019261951485087457543372823719751100232724999256447678434724611663717292931081179107685121296701786458394902688023289355554536023232607198379604268874238603877738016440368852921183848654360860500775496899942954321771564724266407127722059363726685431495786536335221375466388664030808064802343906604713278120277173572179051510412107238547038839119091721239431570874374649774324443022687284084773511283412229223565896562468609649464027318574603141158888538512283895762742565860944769155847203911650598071426635480676380676593446871807702331427824583994431078250890624295986621851020945640648962749371470868002298893347698616420640879392181681143037069353726355041062517292596868171624796554685061296254537589146524434460587077723629170855335112765441480511573360162768416147422152395542573101935771468469926222164819136104712395277821236911846346380245105708440466523461651471242096573250479248090100730481119096375206622162386293368176593682891442003827464272421630345753189153430789880800616982532771915466092821325731436991928857783268928854171100851117057630728415121422283573666312166355906419804723011459006748350659081990860861464561140347982750675678045065508743718536472994862065915710506408617465625002005643451340343297457924184362573302749421862274969190921684674130584702400014963535713974769945359301668864302954184085933482878216926032073504281878940199881931976922549372128266114592009055424153571062516994808230864808166829684741679565920787739303838523281231630673508408144731980592693396514789454191696296276176687260666568440844280438617061140860835957803067299877156289573704759323908466146905002814056400506912424021172622506875464035662695259525855558008011270376878903142705165079664108731767066643903501015303063017763330763879311926796860546363642842772755595198707378392110080188555006579945451526419315347375289894471773268791803227711054578255222726594251228936910920330199520727509026743809244955426498339727516817732749832390639419769278622533626490512184627336064885397332616426085135439949239892113847631694325316142413326410560291571013721246832553280903918368716494719081292486281828970570548890425422131066101852289295883841786312713467885960076081859072905428926114252084630495886915688867243211930625272270383255271403519385321951915459252471748042103213302090116524610693766899911878544632118834916799517873279249645835148269705618292611979758531652086488189111842153886939323748520602362778202698659221319194156709043230852338643736671547458852081909154230254026013463061783397148858695800710028805915599352021809101717992052827702172852647680708402507185768495477671651386039355934913104507095007489450396896676622064539215437531264657232478830593654557655361851688414413524629936157051053691587213422088321564293769327596291914783289343531552815055845657260065984417350741439206198571410336681784322007424825657165322078665556415804507098508895295487721178072537376427187622516327584470721395330004955670439395319957521052150184728761017918095364427350702129596140773613826248897808958318186869936557371276461186790649899559439747235441012617462471510233417980306819189756629376953936075473822533396868571049664721057286650479822169276320856694643495702764188485583430215451382629783010783583507331648000415020766343227807409117392092246497681146273096816252438315472018936701400628031599580738026598841964979257860902621771611889851084177121835311874095141675255275544094972851530060673188014095813746228834436156288634973627649540945837051257247644516849000884747925556687083191616418404895118123912321928633258503317728784160237376597389618328953840924645868972925695167774282658809409625767812643149176040550257819128580564484865291781020123923910673139115683816868424311290953399343225856392047573732012640350011924532768745119272916506283101003326344242394167578950896624042820653732323751941030964311184625916925205329421418583656734894981804027915193923841777311458500157203305348003266368075367196236366114215138515218386753355316432353364447140534158071901137938923193136714917473079923509481959321371122451899560403884128085107053553615856371782817513653677141809216107715299659425829578888784150311821161341255222263480950573284981475194416375079795177531450890606845895260349762025467583663773607178798868831646160186069875872695926793805107188585209934096414963371998112867757851328120786265848585560911738401273843160542709194853574581303954298603928675337716213014008956003841092987666530520512253811841752286780164237199503009806716093627890352084107765724912805934651299934903145247011503087418994073099257470977333866586322479632376042976047807385720112495377883101656819186160439786957835236657425347451468809837089596665037288802747105863067749917192017765571725444694973222846589011335472103707645095796501741572589332378097124126950623253819090486877847499509118268824019722142692755050142577919434292919596829262658626388783056725643670322300665458771950485685808639991818742104021603667172709173372045268892086696779861925966497938518626314851762229153965343191222811082570790799708295033312935514775732899514337135130876451283940611041621831325741815716597432436425459667022405267987009936341431166477983140373828428264960000542350123808698861784054752399367791102626202509055377339593335702197860053717646941652668927064388553378623658622823290173542539482960364972527322456038341407656480867565630570923576215807850424093235582512854519243148234987658040916747907846999190851812996361886159043876530484656674993883158046290984859031396677074998291806175348691698492699380835339232245364251545861065677823681122377834762407195838087567893713927619434981961256740663320057996580180891009240719091053728646680088980603547668476012303416645669862135514036298870007994029808766629854046863221467795177760773065725650310517262156173503504505136324222265793660431800019350387172671914485083203503662859137859570314245229170806863738302772308185754396800991876300639983693857011344376841868206769725154230258722607642916397474545391895074609398086255034067349819598254726848715567218560847312403518670217949208657076098797412057274073463732988550740115151741657829847821650437867948781549603327279290047653574555472091909318840440728127870756568920721942093013411576427098244851043893013565854092159841117592272168458263181868169137244816051423011975814208061797072884182925411325261471102228449466239179454436341326851380076095515945847723704506388217117315903072512266891160406802747996771268179626416811014756096461411475069146353605569944584606409844918075707491583326631227038579164649281681246322337884556841446390407915148698283792731940786983948200533144277621309086049974805567294662144015301168295048053921154978386633960737424391100903467191634806058626305893956425025509294834123516787185481587414595888679925121496112566370991888522141267141781781279146140719350658070541085933932681355863765884648198937922299729756703984751948894835716362454772060099557436282593439017798256833814145140862202343863388074393978804457815716607154704011914604661579517729878232704621700158420363416674717049463517010252363777518914184200300147480980803010745491995839364801230590402844851769021627238679233287107059315087829583373467515360014404647935202701895462172620523512704993826845813959296317075558762467904796813384935432597097644522731248009198924647162349017987794517278278230604129771624361055464588186238806442981909902864754117138059995751939600874072422239290176210630388239750735369646372274610704069220743966126938176477188478116756089493507872884751499700340758286890317111180435972395936212567384570233639937007678369100299370357154215683621898026936772289036934253478807930433699730685248208437941557735911092434374617061623926202004685779415549298140962561190483564378702009110785782678387081176897055927446713397256140007360697623297333535353815601552363541578457660087546209885049467456260695127886509954596581010692571219184639113330530731428387080472572761281098552997938054689368880638459339900644808047844137252408813133573539058712489854936595524824530335995798200980775540015188931602264443791351824930599921131508291875609085683657471077159598826279967806545140009213004506679566815944256402124090557275975356020180745027215399330413257138490479706685719028516270691495924274990281240287987629550459281117864037525572905450706088775144693278825953023061673645893700123741298182367735678813040821997555050487233629034326314194808057478842079557231903991080681191361000015478614569871348083385409573353601812220109023947992871972891829088885908359001066950248654495409670781143924464948387346138002573069533925940871820568971346677067799858622343762365414826575409742714774998057979583383733455024003504720783048951970981683002132546691809516494425379643703014823360917514635853669784609820122943016280073497863201465053188287091874703241179054675349711742608218266823749793928400964189021322150518645947326699362410613971179015682454424015292190618001449064669771940151634557691912942888219798369397508610649207736462976500162348592917167260231917347203003967501075261760947890517303090980288024608349359085157915284649999736198802664645809422181512037215990588257158898130439321800142182308936722144978196369447942321834371533249762423074091554476350720294265304733360422886718909852716328507822676908434532765997591314118913787267053445756679945319797227776079185543317643720766606105554000887795346283233274675402191503199653161526117313752740904018943087221229612538058358511106106628182731057479353189356786742256787543697342618581672820682569715986072987293275632512425958314853724506127684899384486305285724732365198593589219169196049907709558346236065716850371947654719577783253136749632134712852161551719551843370326142334681731153359272609839576845233313848665794502860611700774636811338960321811881779731708128527467196704202712674169705188781021396355088652568543729084391802613201673597307379544552478765094329623492895656758415654308710643549712470823758962289619812674285339460870870037406603285867366806219330242557096312137736673498455418436299388426117131323813751340067899641764499317984453395819891519541442384513751366708265153959351599497817833983215146365963733925620592964908069004179267232294444265660502506696244038027380132687426269957501586262722320243329695895868356124654385461576111866783128958897905616537825208454465401234535168924842927647062991542820256526694211796766283594467916876798101350692709916163710184887438847124633197113193417270462078242803922202941414097161935492521634822777921390809585709512507110317440861657584323665130418100692337369920435343684638605422944599041883786064299675093465753791738477178258775902582513910164165774144821936878907351767882212232436224860665496639593234698887374424094803151154689474520760819289827650875066788945644264857949157585271913120317293715075608371618058911450544106712064445554445566930800286106194552903252699336596164672711154382986887461336801106722389227574883033764081828374967934361362700495677876295138251967374496212799314215173885470245119647464093904186006326382991777535509271674886379682537449521576947189013329442653584556702456211827091341062688093382454697417325505164421381266797242918719335452853559415497721697771718632609061167104555528933914416301722705749854257852115576155196645924376551080234575202776935901497774088839188649216837541740398387552210460584328944557283112881182901394751290326518386470899652138900435606943041778532732220735637391156790425882653807619497860990731709577020834657184190290527673214332690005344728119681735486797876752073224616425984869936108725211925517644385226370472510922490713591807858653336701950580509568845371344894765202567685660721593239390891866728820100044436185562747951073995861162958875894010682561157339002453853166130440264552475153327149364465120941891533648511363908473511696006010642395845920915216903562648547619329895606289333511143243526075286498893993009331636034518531805845407742329139647950033709229916618680763887868716161514459107717178564733566581332858706649182773650983880447344695566135952370363860689489637302235544159404872404765711470695833071077647348912439871396034895647532514951467602169942279083345588979888398929114349470916451194946895111307029049931455040750032414343499952799301604205580882909822900123322785321467375745208217944721298289467344253939370143342731794469072577232784517215815194353548314586274578635499098714664668327309058897516097393069356969414897925878518588703640689082319999551841719328460954867833953144825176378785033074151344888292420717157544828325203550951534559893654303817674240644910685948585168982056306457495395621389381279316416879684866375789597064263965830513937746976809659598590431817194673855755377060213573631063116709430962264821267007332294164758253625886487379359197287277700039676371891614286069438038637782103988344665263651843614808613828917052493070002725327687179858231448308973140548718517297089314438644983855302933124340305961697352437759139836773452614560530431571147989724177130295732490969981076156648303931567788481660534152637404737202865581956161875989978122899635215782180518171239175638995833900809261566942019715471826976577875907660478914410825464574336324383872269288364267328987654199775729386295858557612646957443161054078949160432182356999960104742485689111824764032086149580546845970042992646432995225233546160067978221354190152963338425648571469916929835102796194383641694607412823442241794967071916914325564769521730244108445568196596940855147753551327281599747082769921541490816337322087366079314569191635651147550304324520192745288449343181387123507750375478314656287661476885272755794352883558078353625515569690186874787320977135739761702015870021862218112069241871587210557019129416875216844812146740468499444179402071055251978842894522862955769093279671325401248059496985772009643552742373863656390309098400036851485616585779503503394314453938193612924264675842776397741347978727539522762706547624443961040255742456125851017495594279819736332924370607548805918697862515833161077338946459162160583030370622865236830852560734563970629672084771161691041213232787797567291520476952689922109858735753039358967421883246531228495756846768454982091547295350288015006315055148837591109596516456934094764225657233295428093961223741514396464245066871067722300502047133361980608588383833448048954702926906748221222328342501904281826228474381435222445225316260629707157466477545042703779351603236493737245525887102776785145674092171855498615429166414098142108873050531516543024103540716802259575330825524438796131724125867527374143905954381058232037307154159808327381962412917320522981841229205265085542059688716756632339589296200031146064145893163020445285161035229802782620175844618266284886923117482246410980812211737433638639757835859766816675402970544474053290574987519991143954986409316052254614846892630617001407211155916813945240831331855386956572887473508674519529809887672665705836924633962338262831222886122389868016977815223840267158035724349385516379077348473868855157338720163609515940655593462562538434687655813265133123741955325600256321792267641487639895206611223585986003028840368479166635335982660039318643901161348033109321028314342318754042396636565904887920359693701440223420482208246288223402719446422463731876083124072064142100915876634626918279361605992072813897648198213553366553413400627733833089612349887403383968506629510976640334738649144567617165586029536905359128042335263440615596151174468419156400622490939263465776321031552774646050316974368818268069972710619929623943722153435597292581866049811997170535021835266279878677035827057957127383752559880503744090468682914584698442944256918184292168081630738169759951441943089218211573603008038327607302602276666722804972795427588066391303665015629097785165447734061018265716930258092448580631887352947220041755734900447720361767196729277742853380695989775841867596304281803042840480242454811318456706319929347583674242972821283147098788173512228523934381723330737128121586470042641301440640953279292587579344891708968446976214579189820939497926137683274559959115651041605873613154066316888416054196586096946947764329672635614810641263994472437478322104748526158970789084125109679162565702748248565524695981646494764971936130503725093768571753324499240085562748046791167167345308639717022596648147502213645660114813360569327597262582202153276206976665811649509811141598769576323090508078932662067929147989874543930221597570337077053456136424314431259631980694581981852757457349963471294310285073281321233928529534898206968187134610140867585328744809754183877324840249348412402275447604067116978269301519749451034251547007930169341836458082313101251194495945482553697829443148767031815373994994740199658597225926881796232382829493326645262931012540445133195324101874078690722985610652467892135611917316403948308234938830034742898981478439458062617792912043050854290888046285171605928066966882983243086379536447203755179691835675385025148442193779607346328831142825021958811669057736953050856099844767783971995534386212177099821819105104585614914663745142991730154605101911422313458481079311828377991254834780280224842077650486270106605097139233777803351856212692068433446091259593901063857081499530457939933677636898405421441664936540033905679278602233468169587223832373995357685844946660791637866251270884846065219020416782471189748062861112785567597304695035365083825548059491831335625014445723265814513185843881813341027601818905752287922423206838065405689164755216167607770431867598182539553741424914910528821109240144332693887415038086891985874347841263146717403245750738262350811853921791125429792996954764405776127905263626092122267000486948459031100024657130195697211615317270365244865804980287485489798391755991846314775979779032840861364803683301118916202612381326931535317602633970760973828497541105015547196783532671137372133094368056748695562082892790019574895016994956765487535652119496969762113341615855788891389574384567418827024489545220703478584313511741890219355653535648019997323511365070335990426434674312878398873301442615671605078239213223779514017176449234636665863617163545456820916873750418984047101792972921165385570456053072457697600283913913401313447533200790726959267968746406284689028969976185374682610337747701659550341940580867085634968241513990745625643748507409206079141903174388262691879126497939282757473416324049077276104781672278533706431275754413760645707815384420637012251750915219499220648986278796982443614142950139118660109861935715313186095057990969744014664766794378854168350130202261466587948050879256988273516942419529255649406849250873366690212364737913862009705961200374764579210202577310917900302320193609765716400430843813060391646423764548833229610838100814992158205883433762330023476366961914335847771942967532699431979060644310983499268154354787576611072288638055073350293168142187071403096693404886518173247948034650773552416188556550751567843622885894516639019566500338626853005583017974661049240158446758134723795144042029292578981314025588208542993452154649074494706705609201408812172635729192404743124297596251644796560817995281711886187274779351254102362355080236998574662201684840252092726663392231337517144022502104185242555278366241344738821528444806059666848123995079523343213536483232034551797488176675535362953297569564880520338966805192321667997684743062959597207167728971584108143824314236707916402855418811851140033853935592484273164054383854529079159681062691220126030706506628355519197219873283803744926645051715884743110059130360465200962680002530956803010372373691889564038275800796798343431780029958182764252130834618836014562463734030682613400810909670975710905305009642997372357040585120204644475737044145989208982435828565458753475457140026984104054588906248624146778622807183831236125778863539225007946984975556766758241999796047993604038475554256702725613600783111140463941675959667222645183780800436898113059836527197638586975115013541865492477442231950080518516505640229449533930842626659189061966169479179636123260799756889608495218150451186295165895981397686993047685278462222134130261488905964061907481948127855134010813490837161321625143420568746803613527286172287775587362981564422881579836014601025028751746993883786069124563009147115970758183889733375103377458372032213599477558784465153106619047740354134318033006282735842769841000408646867314891085647994480149791707025856995645752584506743168009390195144331362190763177632774476599873695184754299073427792268241186005792373431704453964790704590948133772812722532672778091536850027955504908591407951204720867198418048559530148061031644763180449574865292935637852362940605621522021224846846043400897823528532312406135733045621827018594277436767272388853363354396179712409848963966655179271163291729176233659686015594847694228321570266357561330529643926416120131813047684706594080384832520648438049432863693972183456704143887638590736671146437338782061481268092784380725620245152298814648954931660651712133785362513112054125919035351230868981612478025778503695308738171938278622023377178051372212528280496741123436431090572418164320771191860957311447521270270676742978275729907901888541390232419812438287918908456846224811817829025377998202927163302095389680242052866073016145421735502408615828400193092031736046891599640943570971337059066586813880878341831664694911513961654173258598145360463546817602106054394078625781119091260155171984526672586053920350622996803605535364607755804966574396555876098975223611673562459951932098903243172934678477398831069279884476171384088819446070346810063903971035939890907135504639763874418448137670436031873256884215725588050738340231478949693740908141819040769307925507752206238795793280925039500116634453214238053113977517921329423936178898659217149768622560973390555543323672274776616630165835175482927116480555089023152896331661285233441888703403363782335897641808662418941497238104218517098516669241290062728480903506363930802098186778966080149805185320429441631675080525703859775889917517615932068009857563709739217996611652026115003292229549799916398430049745933972226548662753722334559828401771673520947151522597054486426261366130447630309775090210741378183801335420291824058114024716565323586766485585204789366959798040013075103947225285983198532630798701123922628854426600650915536268772520771937694932786194808885804965893446876823245127818899189436644156524210581470933418347499959571164594869872753222803455801147430785434046895180717406215330676871979250054211651523648672694142665747902798975258794177964162556065468883659562968676471041310984227371294211223653294929540818603531796429792253962105692978228626269229474502109778959121539732637621807323068047910066424473265565412787118313252140424014470288278585977124780630190809096899264711062606781085364542605280400899596825027176215687589290104246602613229462123283781862693850343076372361819156311359737572212230220965170488722030243660877665952028378309751166157266243518579937140334483331663858786011122579544074377001733097989033015152692236572951624597167090421321157776060455993295250410265557096648792636183016406667620253392311148775717511556951954345307329828362895635260391532311690858679501534102695422338848303358583660191890573092429057908646728228435329816883831658162241278497816306874304387425600855847890040136000011747140370220005163427715757411911871386945609981889626385411069938599834000126068846892320216260587108733656768893085927641106545550505706372421686089916400198813577439680646765576081191763360847043179886415986730168134989875327439542002809399344977530687543365916105257373344714390858450594734961273709132088200182125142897249336241868227015396214205388522270474916108183989335880161683539068447891679574326265115421471526061931609307313501027557960872838303751028013036867007071610583591076390434571934302384423512992386583628788796814212150114189703093041508467974627904575629426093581536219115184690253678201105537995792147033078187529048587162900210885267510092250888113493201230678476176321304559258494783545077222987909147391919477520084591387021744434690424157964626544712668705578055540890010127307921522272323913912531811279082328646761794201060230052057876775356015385566551318787188917558420043626126854942247040314549422494059646710016910886861441464389554567905796282580398116746817867083987575302061504220112089235025075250600384613175396488071688268770367231123527124818838036565928234366911270950455559511602057631463430224367880538224887560315796762464655266687818651405679014804734977134232574956520976916053449495621013034664264032721224838933947295978904324105441675415732170905840311986994857441994087663248112851783446074495499934611957630887352699877092862711683608284859036549251657941870909480419542314085071278315820888381652782171329523424169118084858356988202500588145492648369095455098547274020223011663443427635367030877440853712311327879083601498998862583393003193479514179709417115786985610587047601870943504514955874677228173818342185004961585143377780188274301234962191592072210510535429913297022774929114965780702700865718188704845353637566975974359232134661999876010556366824221112881362360665579061567731160307741258831006513255153783941361395610204279665392264663494889240234543486329081279935892766820848104630510888870265144778763792237633831693884530913382451856231288673508843281163399680133815942888629884155387565089838591847699322221788330885295158776430965305775719444394134150982699878582124503318855288619945000299595441648045470478522639439244366843488850667236641387364523403135225576999964029160130730815150642795907232868070554404873388533101498458861390004959078510965774062416318093861955709489604183719679202063597988179903172055835093068652664715586328384806878628450359652796184868939188468130621497423031600819461480057439237490394582044796683313760450618997466531384687933102824791250997048918386316801004000356084668815356136271785931124300599575448930280274117775561159583347175508811791046252943675030132078851276357570212661702295396713901083125090550156134455110197685743637559979666828450524027144510981252352317121424023062481846912756430983889346301860463765710234631410355224624116298762560538195252985777548099159836785802319281325742194407229064642299013804620759606317597456936067528969222363777938140851405438916596954572887656205339842837262671509720081058283672449889517743901795324428711090141778777581558062325415011033838056723405733830361638593192909108371776544398536257955917317580378226103598773166473997827643638999914224480335629341742296570323874821875242084034209435900552885548853223311307205342510805564118493794258957695041293441088050255597947637710481394626424011711566087144095255092482178673120559129834357932128561746205635781788505709965559643714822879583007884970047488808853014088863988923858328936535996340471468629148031709959341596993065085325883729277245798078773148183187045379656055151550465068045932155457778285600860626418585476289359708691221559198323046643917283877020611984049267836124883123960147134029537749083304230807503316850316338830960627308195892449853612160886987130705726702018084651945141395623044304629083387751296824386415528955227242643405188463483400854570038309022844229072312271701227397433794566664561003006520294904258906906561464847094354499668531841795319239174712196276215183265726399896037566982091269586543214984302864655461894108040225868415588612438006499922114389091534351238106462165388589388410299926848802267851434764852545854677937504006981908371371099788439737011651678616842425813957229361865722533180702386757551178027840567969166473674213367658432481801173676445510483464512201044170275014590615054568173464753527835575360675408367870892889563629229674065080825370264295336364837853191457124889238840927734764064922766417330171066737484928339631408509465780126575310003727416281896160879368098708010158605521039550927021358680395350725924377395730847606973292209009069544641099957862027748793390343618207873144611918394458684712340629375043610893959307071593956968298608026190370134689899260735936547482521957465662327892475159546101041103115397071056757203188801020853630562334654449606917772640742302827822280675434211633758303848143269978524111710821899942597332878879787467392835738331221256805610937174369632973991389861214408776784628813552557511741900263004816459339336258738012061272992703593358887239079895462648210186773994045249760311211944043372534283805929223696622570913274376379804318031442434878714873249433412573596123281468123258678814854196776850106696859411959119753485833003719107495728229058100745067969544521334454187532227592115147438486347592928669264400159028203927118682784002059866957342308922671059413788664440802716501828474094703423440010250423443490359811842233619924813475704651021684042988122478835449577460206151754336671292241608309859621966304425094585561810464239672664950937908539286280243528039640840589517799068840786935908662601486386890512389502331527977827153913048596367023179980639197400544269001843243134626043253295993448853269557756006111271224307133402759638719700615868669019585263036131838955664003789463061018376502374785558527234521819399540198584779201306507792067148431472427070748087171025167548139207109919285353650417202208746874418091868014209036005545197480124813530168873061195732077756383371993351544894097786927700690970868107323575784383483959600157113191195012998296765714404489587173661516721165295507273301513815935462601944546794198568584251551756242905323436012475389140254762897609836755148803006899573408547101632495248685533863089161626824380819962995678656476314683717015398726962852319480398053437577939279643743383201065236766286708357835168811421970145501850001627914688611869733825063466699011309316943130607501319485104069637282169097113716305571569699673775298150503262333752378628985105759557767626680415137063066271083789111851036963218021112557510916782246155518620004313113169381002030295475262703438449774356632753537536452279614909641606058449615486878987098317499309310363830763703570822639191194990452675917772532419158654686643184890526874656830344294339487623554689448699394882782980140659877102247433733084419423165515057269657379982771955195763825779018806978591360643227878246353303543115452762805038037307802164570269988415676883488704414526045102866074690269508144270818784889381644261547998577876523457288428266625152100020761819379832839786575796043144959291926024991591679349941135422636413007215681805754370605673433305817066055506316727315820430234994735618570256810812527846646976991538554949530878784305096070749571132059197697942828909579265247426518883540803321726823995947079339215885097846695485992682189417178340116412521568214408698974255778458227057824365871453554140618182429772514731376561289724311426989139200820536763461944581754259272215423814102525317045219501876312599740275887569929165337122900246819052341060555849752953981063697413336617704170156834732607015845997036830028112617508198804996739600764898855730305179643007722374454395943447727486902484558710710783417333778454037613957895207682808107179526367944124725151607897577330310915668127366222389303185568281540445518664770421411341640309765516361679574875086428011319664187319519198392709051528970510869366897797547336148496940519396618958835650750933667992474608586026203978648014236848102710092396413313977536825680039001428192538378736020163196705280765897605962999021899051384320071993805523023013941095466290536990165106494052845598200975938187448733653803869940518674183505191571652371104989748509854865331735995463401014586565601911506598842792550218452728872135345023514916409916806201377867209651560574328854651062760891616644290374497371254867696304999058559540742778323998216526017220600290654525223762138870286937099390250639911084609146285451500490153664538536040501619485158397561872463249537142534991573287070652328579417222445814749387472767997057129208779286511177544750041260259325320556001770672205714991744984411032671940026527047651204202270616393875099033676993694752185433723379155588650711636409135519873156009966253398883412931865275152332990344696946548193227156876252441500782265887416992816504429602937380156353292587821700822271069637565055614343865129580037896519224395867184698955931517967044448959803924282466181129287086289236868847469293581930185037686498316951502537897099085733603239514940346762780655066078464887242921259499044276832053551616095964752509785196299612230949363426696957115748902900888932084474518094447241102425250921369632875080488296053521364750370495473654653702019786173767731475991321362254138217734833764718596924350669472695909645051351888172642541436337673025220726996570392065530917124015085555361024016420702293376936321591399846549534329873272535486175294670602864850567554568484347984768676443441549298126304896092346295464839008104048113756572294350811597040716197584145787329448469109654157126228465051289595296813936160472950583858091202585320092441646784915596798204828021109501588096580711329794591684116164129523571435488911656976440777944328216487773279311059048830393058159256641238159339903935771629862667912810467162818007150428197043207397775706109750462283177914729181320192456695831040935472030643298862153871516016201727090849657322564509132010753575217529606178571744970923958057994127546323020856700158252957653756693265888243666782858721602622696298433756033748700072189978821922815984349790375294003124280605882256260320504742337205367362705353490398801878194214910600743195090227698977518561385714161503025921213629590738276140706758778373666875998848532061186021135270417636008927838481969865602828144522306353993098990433734781361810397435407922555316941567325846084769968847546036182661553736601310407809824803367101484938525298845917398224451870474442600944768715881602657117375017880635525524645825040638629652375829028003072216104063133849401468684005712480410970993341639152095473044370313209662208180737229745198744822898315915218649838377520289445919808048526084013181249275940276208646529314434464477976893685584503422368647363880865010960377216606729517996366351691102557797648322652862098086285947947228995633219235445850299348781029309410267172757419477279437752169720647228334993338799163113683482880287782936563031899788187661606124301203809476016280451849964833198148994513533727336233055643274958261660193979373892849363320781725006205267793994174199268377802099024536085208636744768134890666789405120127557738482088391479133676404814865948526145847606360100296476814403728721762157294716231616478733217408096847431193822979097690971010427408270349989853587853459538388661504292640731448973145130210956991578800673577068490727318271527381194030754271518998162455092790612840564438938880694515390470327061384030381560814660849725682603811696675193100413925005028640061503966427667534265139735740481889313593631725316241043364923486228153272373995449545493831202625193607969812880503921024710052659642939462992917270291550545819640856366195233340702373118753429714180880200864695374120007998043301623945829495435099326743785411848271625334372006897409704668589500233003783997330067713908121019461871163172763719727275944094937281818413622045276123316088893969476325245710581133186975422360153122394761998708734380829647638489120357633588277132396545284456876831859916208870318324269841006528397427309974479378694297763623142604003699113344690314367825110410859117179878203244298572574042190372726711491349423614126574551790742071295240466188743434166555137339599924017271577709603923389415618951185657162684712043397547676047544293193031964857533793595725687399733524782973950221901610549181016873659116234964095182768098944767182947976497528031423458802919277950255291551670418300614083961224829051848737939014151036364280904274602348946567305896486707191479044396852809660777681872238928183136250020755068993104232444200530399269148830032503086449407774531576487422460571687951865921908242603284584737608942794394392225161860932924842854378295284726303450540710058921349702162075761289033815454342303132080088677978985199495011269319840214817272906639096625783265552285675102799693777485366476039154821548967358936273288707107647287987007490468063055343334019551961185519127969900605183846228478742564276495807444760580473573762456762925947239710835333780818965341938526860880114949567989682379721329443153391402038377180163145802007108748503753593297095657337390078317505158814451105483722523743739499190931649434775827668150252171266448196964723428876273612177416617294435683227997229096011306809990233898714488147200749375413448519041906642822092419232780569764151051942187773538730040917477424542527569098832966407189232160605720703689424602151124386984461153166627514835974362648371795282783665708687478612474983933626615872894452543111257496365492750440404132709868083547096631474902449400704270443734566367042857520087343399569861483576260105327651023301451065666341141076353775209492805304627111508092779050325795559045195661235364018548108491863552991974717180756358951530248016807548920511007801344924815211172426899487113994339757034998592826162484317832916378316240247948458284911647457150970697972769547376043360843793633399586108753766620702466663426701547007819424432165121245552900709061012282592214548822243570228453819639800328902988659547953690126796302468049782452266220926659953941206812711898641421530254687481187974378573172036982773278213676909498638791809636702834503671745308826816764068991589163225658851176271659368629258522245419385428507390357817048060988393677545209659051563856094608616251083084127856289519829625797100444805219640218427609132061141854193214431613475053530862357043678606194687666490081243826985012778362867776694944016216426748411001112356198808835482650663901735534314656273368674448759166487297575846107763454269858524887256253352682009060668443790603411118326168966679403477084603436304212314745511238586667775966805846311583061711768977710826999073785775149696998444139278759019697088019389432853133197851624883462718826000859001625848994475222657356769301883859679221062886273049763407418394176566213335601017389912490941866651921176270148973455740092886906325316393121803132497513454769340477614903758886563709463676294880005455471542496879847524492122754922813827525163325439754316979755086025920115842669249195081775937438534835540703649744088178505053995195104106053892188251768021615631275543683144978994768516844472385938402986781983910763569599275469124527169802141290247455928584753750873501795540211757053120729465248732290747223186193536082270274362171971407788007851803326774271540612822763458231284764794105050550220329819007448928240375778087775733139135636395788335583136779381943247367540007184841504956015382201875967580290883201072748389490703441078985559258404230797245201402673892450754719540175993899323568608821624712680957401825458111599186698491860240712077657363218240026567225913205776032308607762466711597453227240605224717470041580300477805252634381711600098504042253470513151859183957356253828483734513187667206110070544397367411637485729900976223236168310281196474262181537987734424940231755492925855845894130281227065903421421259015900411224301576687897898987704465219863275388276934698601324839657432979417138701371792328820141174636247610188552913123449524423808300935412514056748172228461807037543072283510077312405968238227601674588227312724264110974958210406338744022405612221539869245357915096017047062148487183089331467898307898179786985837528176051673046907288615862907661100198308345148575489572113349457555979733590221207954752743792714345604975026397716795609055254598439698137612076923680309584496928876097966155952684688118391668526875252826215152469261290767050823215544052987030639899779993292299651230692854105777858289001571030218612531511760285988605766884244871892048422379432594321022391225212991163390070123102159025135024809356440361861548436334250897265058537689863689005231963129194742788420297118938288742098726941559392445536111606721865635960934871962198736663087030155542465412955804197384124275329666976166024648017708885636751335692260496634390921256731034845057258600047249462994172711345712542111733831058006970515571135989524546582352149635387015951301420688524351378181054143926465813965232041665990341437428722956098931363321136452515857337047368491547520181713357136067314272164690440452583615361388952516167087943927504967030334015617806978012664444575525824930778548070515124861397166590359648918582101585347583886020621614519261649969428617920534208704326875715606532599464578924548176324269086455231080526231836163918246314505919660532884766134069909419488518895704555333013608199549509884481732055599508635537478719492084928194258220201027371946062368091278629641270436745571126468294269523970078428186986586203941588677599573505740060854523053830732411234162885802241778206735390826131863246195322625314316229498881585262359641576747447742874400812184892019338862252320470114193728045063044937795139454433866764743962121706146305900684622307297554584173105407498000935603579173285521206818662673287595267803767383064499379826893136124643670324943666037359978876631717376713212351448858204542147169127702458177728737340650779226294083692479455221848457489211696812975101445321428192830329329654507757544561957446264723378205826930967208695575025241120631635009032194549977402775385725302359313666482701338527184503830489731635549805773990310761437541172437290386177282272799386537708642988083100351996209103342024761089027934054877300344581324866985512493129926695318778454432762347386159489496767603608083469207029913629373830944382661402328156702693657702021434819949510310491667361252929806817708352322485714978362787086750077184755807494857601003087224465623131988597506745598634585311375475039079154682363461947265938977550608391517814149205757188224715994809288011818565187184628554394659392484151404658599583385450860473149293779864761389231245476373077620799611910818982847435896275255532630058010870842974869380453565002830997679373606175910077984885552597647471668577725191589489746683799598206079071167989916271094655345655420225984607507093250382616802819199040054523593886880531817977469768283405649936874252155769305303172961174920308140905752871841653637573136856441499131004641028897613841779917084317083410225236138039896530861770916175445575680947178899327326696097317081802827668301168833872884185577502264187407705953060972336879306136735160999516244731848389460598640199675381794809335917565486345211632665063452864366835170184408319440683257172878629646860207229353010791824166747038765120792324920703496134333929872440744386246343815409206716402860011210050309453610385888724897760572455329180622830890354012327194125177041898842509868543103090314660808280433611183774258048556743086251504548083227802862281071221226574196033251428289275547210771183961215127093830221696877298662614620397564195787634112198373910932611224936244061230347000375962980546341732229604270863833479819776868286509499513456577798742408740108479336454729998183929890637995390242020645723430000506776974249491729830697715773187174233800719868664525518878869851364918350627450067735461105704001513416543778759275578252285297389896381240495908329845964131414160954523302326236224310153740844570588492242107986790627982734093811009282357106694331540237015979060619503967231515636723801040977587472270997735820949073248332893306210979716763123862649563854936376025707912934186199165348613069939133728460471445683659898530186235291301520266211556751510869348203161731364362032597306125738198584560023828974860761081269157547013662190399981816172730450594012775485096246337962918464892329389759483977239427658784797564100094762187145883223795686790510677556362543161577113789671888522956528490834068359040297588479295615657863109539036693881202988967590100992751146917051386965666941721481051843009502008819461168550357022968561929769415136275391940002847890230228050232204442604716115499022300485713264029088478768979677628573438901898761220893832680041038193990801634749871847235371435939774610930244210553335392950856101459170116928810520990444295140450427847441404495442496820070560866040075618930831816496005852640390855889653187627340302685959475149425696787078848141989348824111753788795175168228266014576958831827701437786462031803609744156324446905735405375207531531015897478778493302315349066587630817084166127676378872626108307501911659129422995325524868146112690158007384539223314263500644998093191328989703534289673417227302492545613453374617130090911977806798404170268749195968589725749844382325382710964025747729782424630812603383267078614099446684579040673775139769103713101867676744696964544512431197730075894181218096543493513349149150892215108300371676657461822063693644558562823157866912627746904452669467375626291749876125191982077546496539610527774932712735830039734024079260430046524033995796225466528248571896771860987862254704238251663452248892199175776423472651291249671612053775564080029012064731028927434287650104795868978104427796602221444469504232821813145387193784398667119982840335643345944964832982885572762747631352629173539857831739627328740373807843645538281668321441309804337218582915732481751660067087264584074582821562494104110398212864431662855616006712099372999668192923470846485895992688321821130394764521698454685641297679322156176825930900453126918504168505076238291304242490693835629294241934687485807358585621522725583800194027895755508985072617430073461321511662181179179511176418448057113727574982335982800149954831003928005816270567538222066683838088167557901834140508698059379343124888166353322759770724461586696574230814799784724359673437754080809950806746149433871432207094762776182170456490198918319168246294131219915145569182783951669118885388877467357744422288115172756236684702531553733437712405142985460236156622015201731981660942020970167472281575749446299331730389972405366298750917963380193748789067031165117387536467275064969916817056563857930011097415210485196582452155472551948803960278944521195238512829944024153234394829940874110429434368303774717911754850264687141129198801759385570411130111860458926397324912540413439776185618542785348295526384305179281123543697266912509155213572344363429954332503688287824976993378477986310538652756347833673940111221062073727724681385187827591637187298723776387095781060887509553180633023009787640540616037193194024632255231712397563158383546518900176664392405828999948894393913384188922378073976459520625881070532969185569942234842009255527572423680182248517549463377369281186857091713272593733987240778485934983068832710532377081643582377706440999676477528115458476821874773781058249658475128402543389813846192997860887146157068696035430700397061793305661418848169691547216749923589391426703107721135221869018492706235634352984146018464616405452463131895619393502727915172232823689178995714593191647420980390787277345251831623752858024601539275098629964704640912656119548658053113182456791580611233292922789716937542739520684305237530780720695763024854602807693158263696191547771628303201329030105175571539408647242571075317417406137780095124956196987518682870899218915707465423979650361864559231959306474541566300222593357265262640906477330435457893187578117039041658954161817004894435073579928833005904696867779749027752516816976596989671349604760638363942918277915802506731501185366080079644046754015969589571279700864904969121282042765175863695768304463754295907581917446333649672188650513372556730891929704644493719013826293756030644933330526716857034370189512958031644529121661659651597488832507124023024003271889958455005481587631512409843806733304633459858482904436720618986019685122171345280701797088826140724083495985377748722924940465975936457594972107532530129741302234154668549644831414205541487895779652513946386400564016020785091712526240355009165895739911202318385244276309274193123781189612378126581327548812680572887133538311115297875477378690036744244967970145698323028174605367390802612647560815039500531712389667225266057247182792610338363441557235330605324003362739287499846027200135736638825077748884505134893325169840996779020952053136978482027165116826069746172647570356498612028987361039739359097532266160141479792062310004239352847395682837078626591781352032561513267916640748963631828924601042545326483752689819816933514646110998390262193685949504543439890656973677930545234556328814005038977609887143672594661965405856109762419769208076134844658679911240328174141886778016007853052873098030778052232258356560222115064782897084395260711854759525489733558245921305313348431166776405262561156510577052870947741519944790229699686997979174759211617568818603780835802195687382054097343331669829464823422971817490145929250289920654120223543842142995315479969045550577145945868525710338135145399374823411263870547128305216239892713680351383206942450928025887012985813290286862644716423511581231090902924405104400548773439709018315514379559984532698988175242835143936220447896345005195839877654001710649524856512353700174082749279305626346734422864906629518472139987552008025533037327967955469073892850640384015845669874297181218655090065761004020308926663545298081010462444247930467641222848388960465623570493723943729740727518396961389088973383335991923107867423400399152701803701093483885565701302549938346920028655790571804243949326952338318765625616493077449790521122046408627139369974355118196198538522498484342526768612982339956543185569983311068050657850666858534079052449851682141068147023357326255944939136008275916267918307415888207000368250967569220370026866089783772484685754384234863113423033492844461035777582100625345559921853400216078367995945971550701782573991437027586058800273577285464447604420916365622217107753192269633787298934453786651131969653623346113392217218061842825014650183944357715042262400100583291556655859539687197684489957518798217633443172669130982857396560983758961773747714790951982318840241685664093765130961898579945875768352898065060679064966267803334312881333546251547773010964142467995573817842201425080584325942993903660066799834162030428723900087433976902229735739804432647850009522244433497236109982850438066132547963954462524227645895255101432446844275297900712484586145273865057796617519001469015787392983417717882602822095845687552607930230949922588251434609389908189606414337207439366145158391534726104839861521569612729834762548626091384395430798989260798068485676514246731347957062410341348806618168759825178308515930539283150992249081091700968422525659977464299024196188129761435418975526073529872112419353224688614770404355422668161194535522426119620481759815171419551846709934445063455237962817505319868128793821367615797943127107376885230696064752165205973521911257690738945928335923756062333786994239793438439590513934188281971577694868563383987671859376447665377736833657240293737859728462348451782027222707412292384963960580020613022571473320359288107745010279828139749448395954684863645901305879318752946666118801777687584855469804081532738391529778797670174569167797719599266073549511211269211481559809498163791305939363527033285112960444134086296356947215705866396622055501944406375656163296925841378191511472682131439839442527413546822685481795939577793595005084870873980607611885777626205215776834689825330649155666081218108387694250863645445159236126553353591990948243591808534726037601009235414509157290908368956394506282738082477178865252270705975437859376349157496659506242342343996071923822992675310246679139741032659272633106317133264474390811772784938109480915705225480779224372269570144875294973246655227007587242349674397664071002888898676873382013257062958393436099627267167633663723561677519598933513632260193083243624168787755019959264513705503601516158057642266876392917941842114647359291594813067983057487486457325134794930353937374466857701600664383420106987362640870161173307627826567432628900602561683421371991067011424587758627375846954703967699075014034286776705518249333227199282039536066584968224746815832124214847769531202429170615806770069330729310800983687119436627579651450218163395348964363583670681721235048478381934440830088879695794081896412793874343985591873984675091983797403050777810359550081293701716812018268111311413096630422881393015949955923576185955353734032477161794237530942341146337524611030943786041524156203343219560884300422130579305290575951064864041392042130835674538658625977236743637611282462503731681957078860263498446925378776254298517375914899442451175476291507916244288391307486283591884968204002830052899765404901304274834639777014175151417436566571955869905903792601673216372524525519416448183711408652446335484120349128854839055759578638380720838422548990596559650634579141435741620763285370940973342742234153459657116286613759479729794166236323281878159637439045852488218502996458848654414453163726472477529818899004781995758508624945447502659371058989985334061525067394558049300244150857044423946928761359362227552037193515254231553230991417550045069179345197578168781906639508376309858133652867887870888306032188220711911142352501945877811207879586954704250578699092667841817089320165670103343759467514064558901478519359666107182104811140956852289923785079869573863490883319653198720621698087669894481830676591575983760026667842520263671957479014085830702384088595138710760099353812259199546882001995418176901060659092351735715364166343381373774434928176479400341065171596032057120392632618663997561938877223303235270586742774988138475886758956303775795407970190109953975211579352882059902664128175651242438469602140843865027783711144795988724993479519192012532077741263936692004255965010112672508950537445561819734053619168432416461481225869571757400847888468567015043361292402115931004175182787527267300644044142422280254219694733795695353773358010475764233243231460980927449841827204811399522755087776972162041863369572593611406688319316764694128064083175339904632114182041381727835897020024649118508533188709859321255862587179967109501835527171563496918732241702382189994196354726459027264384479600823430490909117058197420609723079401995078026023510677437382859804018554431742791796859391146288901609975188449130239941682968530054742628698956554510313874920627114397386538300984295946495773821932054624007936399285130840500540842096145671114138981131810036132486562018721166692825694549164350650063451190917240761684911150872018928801668885921304791311421720774121505314756697078575549820792389861801957165699847085158452392568045874387013253273162415599346053104811496546081571232048634953266890640746409762689998500742519510170886970339185307298385688379538824792199411975291656716816975553103073870917832828236003593737555004286097724558539992750097588060989658856600603283104530861628503519855627453720257270193674993455518600153110540400808756609912351807521844652651086802315105007300077933401316460526340757876188488867422170408417607505092401697777480081204849468190149238928368166909911666994988534276273677066420258174232789894600727599008847580442908869387239897725639090106744080049445683519072373861551405089439137805269122753498560066439322626372403993996258162895910354964968826779576674787708234665928854603447684621786007485807058219872262991674539731166389644988925771582852796434850139105636667930652617844843371870823783837212197963186255078358079918372001028099422547105436211610934204991935988378486852853736180029257590350515514491635191406780259491170754683329290855782252446374028464799120263634908007160060631008644710700831268264031820799341655770876966831871811951859294809791998693145823445721379715542521406911663284770745060485298861120409764709003411709011248864832247172312129869895843023981684745516433548377783258902288132030857426267455230415209747035888449109707619996221708925529552755961974757891204234401491858364149765304487911280080721905213832083258765151644322857780862765949512160650670330845988191937311201962588418263534404737529190661650596572149179769127394827962703267466380407870829483164608601122493540952330271271918095891077029779812288981518047063278485633199678525875791518478044694945336125303576980063836173529552192337616525775996602285173661262444769842147411441790632377920580347167261456566542982646281578471417801397548405156908980018158902958111003068217477317412346068139896501554046993390134372766522679075994267126142462583579972037320776556818592465322397558995988795100224507674756621388464934966145238545232749443203331313521786133693027773851557074774736211374871243825071466019050695018894991765208108675465327293205672934141180126158099435123556832157064506766290588010064842516976617052012441621540329425453943183642640943172863951057723398054460742747291991943737535626375394533243802230984536389529228773897169295671219293313145767221263492782251339547548207424808343567927531274493663697264213052214468957708040977501998680013971438525517470291107081503043733212484317617762854042452644907152294596899417045012401771819836152940416059121105173834435479530768781663275818639315168628103789303261437453590680888736938400172446981028938671472059574643432706449414749860446391497661527610461193765440970209116265173034088740756545539058282827988198258072270187865269651941151040558500716910258289757285357549318278282338632208105820810258208853868613016114589944714504181837138786426400823345494188886883709681439205681015081671988227174824730452230644415350451682837135403179981181335276129536106904412616211202941901364347877913005219404319009341097634200362936348424785282101268933772352378894077046020661184920834947496293676753703409381339355197820895505048414998215162901483252195571690367846417640463439393196500920945416689104418284147384872418290307987680444863862757453112211864007680858019618972841803085333978844146611805932774095674238188364124052064094960300845276319995573698233563576202631050909580373212367410247267694374817015809651323095625994612941984270936959644830811251150656931112176506994597570669314855958974070047688382946646198546325308619247142877746445096650606451829084927686352635900655847951065218043310895316472745031972013887780658025126641620493985404083884729240940163403074251817778709593706860537538470465767122011327925685823771925094597064183971224837250692412020548023293578978241191700260970492914792951072858136330327337317263114773816232351020097476405345306511438888225874908237995005297579998663213419709681851646102856621189864649496923243659755713685822703590865821759477339548815624830177609044421449438566194082317003175544165925424209570597215781112607322193923213891244687736739433791976139752686985590166265315773027115622372758258544689688704075696233578220059387663131379606022497413411319910156810070090531259171162651131915048394600807506449782801627040721833925589147683823455912666395691470139117367581470017681369609657945340278821151527921941598482672685039682800583699986284041078145014702567656549090139678015511013334604816800442812991723420931248883982497250291713299058293008473680074336288641994664138102627637206986617213735748533759516708685562687483055069884192814063893810996583506459218338887975712256493453316570541261800018223038335144459889639464188021587737717387733967096444258065604690989519378586184723866628697674727632399180636086239718340385228611929342734360960157572812706102477944605714667001690557542020058093273130661737956700948750078866445421343026769408528065665921440414552113147193788282633160171749209703425031116816491235086793502402372642435137581989691123746355741998632016302035182996446223126520811185638944304221614569424509505750011256001353644452651274284946072478023908621798125732452886732911667437977182356900910430836139161751727438958071019890971524617730431109548690282356640938943355905565121955791014670563087788598029325930565410152444219312898119413547110866509449804205124915802772973743176571726617211284328553972226522763813168726113782879717365852659700032280363802236425918987265826525973319260774947529377626836405619166286804164881893423653284624806384374346557946336685910228921332238429410041725931805874304957790235630277732070038030895459587508855734627890928796836491063900262795909322997285464964149470597516858170435940876763298581678813059729758980846957643445547447425141816968423389364345566385419824409534292123112900483350462212546720443877850461331229303690321968886817643922569300798950525862119559083973904597164737799903291772977892242250240861916516884438856065181572414439300824581251606080226048270107928271937424883716397623557147032198171881667666769735807118958187021613747964532730683699712718251584047844783189691292879897219921408368704641113097669444860901633256254568634593045267406874735600034558873352700008163597273991095396153959259341515497059288251133737722328951888613734576288877727429660556076584800866208337183596473380709043568227897711936429463272118286154364141739349356891674268192764539974217985127130607684268096185005809603741819548362283842712048015703519818531140004021933811233857540440457013915159541285839289371357195250297089126121150910382989500030315039596540365612068124708853716115382774095012677980642312416805541624101284035845895344256252967946064935386569322806117700467058788395386927620120740550732726206244959638862360538678462989562381570796508807983372720406978186817971087549396107995909394322529438987602760775656761641854454756966368584531281889647730824189578114526333145518269280380265590302217411248225832774666925314914797269753225776846114482432620909651508185310680378945355402068639520928026859873356029015699119679936519165730600735073326241047792009540866759439504136695459689452155956156919284341131785608081334468671951832359393258605130640143183109112528393476478746874139964638225394488222166408734941170996419773752017399268911470884047572966468384296401358364168730384414060993200209693841409250141210546829763218595999383454697826111144596860412799368029469176041346632668293583773120831209712409211484605348503851985225253172291950019119954403025701065105664543078134130822641260618462302954169760971919892647368356840041669312506695584152245894789517186179162013353666820815112677345189935205036076170309811042312718006184077651477253961575165073779948087995638110382715904908346865655686730507312936494840740658856885758407403125311245364446783048647839249032857125820520830723039030871340970486815153492250048052103108435111109281248764909082709557105655628689265360377005944251033295231725975683095923362856525487638601589707003540835055055688766832469477924411960339466931366752689433715686125542268950158958069829647884100103432652342140963158352233959598041988679876727606962736710587471060539126934249807500881855113610898496081233743269402929924484674183892401199881947640560603537114349087585554354926083141428083056964517384905764111631552047615690591021389864874533123822455062114914559951449146720929346482185903079643790889796180696440565177358149440444591258248776954005797452476064849853370264923977597409555965361218385383852217045236348781163439548278636119335534364613716630712944733332051882820258831810706725966783319501933837588984864990134024462841073173440449988208241171037609198310238699840721874251326673615078227996982605666667098719147078221528442499288388507148357623658191316504582545080763962244702906695390061942608162064354462838856169966857433934718392447623295020992760677460363360775578201820058910511847275831480118329193040420208985543866237927494782298767711086307473018699143727445486376659460897888375075434299756444579163130175652190916925956966922150378558407517976670290137248474223921281802238034719258415104204921654150998092233433416887642499585288401509076804121053677336467875997092458639265007545252779350903118514057195369300367490252408186206133139966328941072761748914334513716810343810787063776400243227120957018162908397236813196640157593135610926384915522439934411768722166588228932895615698386425646363065229406602323126463428608858946611963945418911118851959347347631120664848068837348390431789918856178166441952630696055343352578789700543651990689105678278313379075649097594954196317982223378895277351190101897853938912975387938260117636390256118045187075285444957603579497162952727115173397314956719329501460580543276146770825973864532599585766556624003438698474791490501537584152099010451487589033120664395590073859540265815143723954760420058294466564134998328528375413130829460787908612641189223428857849411882482959730930926111384514715022697406572826477074431998080000231951310951813281634659890088134214313489932415781810300426897801044061352534708162627917271902956186781015903422808401797341416183027869855361765568664984997064676561208726658067332444876650181096736875066095516660178854556440579760754850143401123166754881801763165811762509658937323273086295041068664028047688677748310958611574016094839081527521189194464666075851225726126833570992039151433199960879832564934864318766407031389438294177742831869326321919797110739117941513598153037531026925456318199557031673372458993212992620990843229827071483303745341166564511000694113221233441810727224528119777180475823465598325720583428647691609555320282066350452654020386031062878921246263011853302875387690572951091003945438243073858685169434335417853030049181226409744545965237760461795134212693962236182674917868158185318786931220853479133424549054752297646303466988249250247039967248175343652115213893962814857576432832278939753164949339998370793710002391062178943464498054446897544296096698422400685503247595581491267869114066693726731009844204287849223667688745596738104439481626273279173117570056930401533695533497342741055811608901630494664275725211359164144198409073487525492255498286835618072785309937345549507506326346922034752412101499687980047590801866638009815601077182877371764227529892553574719859244451952546216881857033742116838345113215721294303718571895527983179462424686291648527274410879999445847572236625717981430552262855526589640868866719645451105586399415368432041201762253067399255397138892398374484166392751297105622282227600277964196875836835771687723828111208188459252207574775458068160575672636853714703918768719705484524582936696659497694189533560042937632316277513767459200620272971743978753288918269166800887202985568822880946473089513686127924637867998801336848179994478873787336238242024904455070660472423775503590635512617650684458134640948548512263172188372483021996803582938240954158017360333943769159718533545888500306990255154906198687052254217465939967108550612808059755715186543138149656157222047499567212906541383792764863258444024603506373679670230704590256379848793938443188374925622777473915767148997277237089464315959988317342096035926514090795001171317856959047139974620947344174342871185031444190292753498339683753427504827298774238702650847200032720855075488260868414328069872974597041110307852777738196730453911015961542035642199157998314537034094362491407412116000471187037830571096852927918721166884851540693377447422847924909705466160479055891259186472538220984072166768165954206650497326823425792866327575061984661361423076041523032002971393362100093864463288672359237162944983649041383853132708350830258904666388082565763949758638454740434839413541632154482651961278249184859555510227985999914473318861504327593586041432518047177562429979762852133569818519473005222752445302862156234576741553434369521287808522556402757979518737503693689162411748021505135038961684170506209176973196358820240996437368390195501564518218131457380086094646570119696727209188045744438196842327238287102683177681375191785313170345964971943082179374806530646132141051888484783295659788066520395575737205331317763613462777480252764833327839935344318253537105361007335118574792977589692410317433879210556167602703994657287955665737313431474490410012809570362089020178633752168324284279001023525465523813459897368471574130075131457073104068577709163258689516268025886123693663063506696924397935161581930990965246788620653317497310045900145541904042430824554140813811056681296514333770285498653331863973477373268669253482277576085402716840703961984013411459553661490607854072877663477637703328660970609500448376983578773287146438538849723662364182053197958758546316512425835508776567954175497145564841576450388704688367251873651740422934366251605563335641121008557370996160359497446928676381818511435330176503783940613103848899277330643149314757629912663027362715223079281809743061476916445844135566848953806204595611772237456241339178922654716799084724052090599037536909173957095517823401502189830517803318601875184700333498035336657058917237370807125007282200997252406659450403707847281571834798216759826707501412190792038797548595231865444178650831691675128476579625015950282360849165024428966864394911827609042442644805458379675034248960958564242622694495450337900236312590626977172258503487024218498529095553538593642544058887317725134610921291212858193714434927076169470733601453388494010795962875352518790978750227603176277798249860741750395445907296535719144415133424015857565882194528527847352729360572230150741642427507404234896888192772302469607950097459403222140017007740148772931657901508999742872812956877858444790765627676253905598742345635112259587389133098618811901802971963289433582635293993232824652780976238540466303492359068004725721089936081243349779293801501845509429913118423920640626491680700125436107941830542979294684724857038708415271759534482266490669321845829262893097608871063667131717273458025811345009725504032534074799374841474721026572418957379974086837540468004578630853046248992076206192845153756667140612121921084255775631066868014176107340654331664513680153418753094641655014441353059406305953575772375908297356100152383927348861147630113864420927482601999094233369172478599438884777530692489367961427553436123330299270411501836153048456298470550950125350782622447379881951084179391733320076807279246673180059655932890169518166252673030192179837993243683563319811511445621015458237695132312287928690379695373504351568591599116670857892992269669050986103329231496490640906818081295149203182605438037679042665377377765480760049754859503104489467655244163985017065335748419470665901741664847413005715265521233538630908750636307878953210059617955764839279550988356689385871389600993760072315301430239672280342904194957570721519061388677797552568891621446754686037248716215072809351208790495542274042063354303348939970382669742437791847454386217884506999109741712498794443696139526801239682579797968754234264417476677599430520514730567884645726490544921634977357007875079144784650485556392432428652341024251930650694552668862298730973740444192958696658543001369498764119435903829126797889764435019093796986210654679648352781840198899110945093107526004095079094756235896714273825289290270152416915815873680247138400798469400265129141404365748997487778840548502310123028417589975778314516686742223045512432469564726882663701070783525105847265987925031290673985542902000400091763188645345543234881367780656124328257010843727852008264207655149586939838187383596194693274864667010049164086968679589494693834570406497562189073118428186232027442108395412346896615016545268993783540510935498453916169770749482095459008579997291168197877704412910251314426949889306252087952033852967459466797653015494830455871945345769644961285573998037737767980019186021509453394985608911818307089586791128160749269792807728868828492688107444385792709972139201750353695714183615737179049609899203505682667869669175453402437351647315663943285696851489027477945383521025826844364755503339235188280364657099270703607219555616346143188773940393261359732704104625142630014248069533511877861182882544992923764293946346174925603855631145878184219858489206863979393802932692320856391314805977419909744159280707194297658209854582715172312536509667843940473554485459861129476548917317420244658340922967313505882990280091957841376190187827996124832752692819429281096916127556701462272447110386142595447165314976934588620361639651173969417274553136789521037343166546340577617415516689807565348152328929145876162597902874997316265570048750642320475228608159848649840002255858059352177570765383992360700030415604888519655945056550712078980605040159010339233498668692965178570756157313676118269160317233846297595697431032385191853858053647989611490028053230362888460656243828962786261661555670490694000573716861052219485211007374399062894756102864153979159687463823968943105619422612490248089585832473991100092426303852483504094355841494611061036335584634600148357329647392620292932665761919767301648647612235559913150978863491621756807109742911037810855075452444902466282013304896075917198783394855259952016552750450680978917659022574606603366423966121005301861609340718608758151495994941834140394882284994069442441927006229280023473104474576037572412802228971467846924984889233815289684040619454603184060420402711140662407371342595241948879732082176820357668786691206209669928234106223853410534061707575633808755914967746867316697562975425122573200563476916880359645781755450375344963433065982269720845094882014667888272074283967193352408995451525129684642724092774399304406133556208853983022857887847291456598716870024428448941851587507183800622550061067690831514827531535433393055466976226446236980969285544870105649953753992028726326166716679765926736000707129304223115713951879198408773285887716559898904336193010685129380955775858441525174290389407041261599096887144722794681426503134776062242370326710378673351752716366476231870351515360260051685077132535822705163308913646437516790288784289858559077320138535604195132271692170393047240577909207073658844078540778888239731036789168745565869838648568395173670984637300984807318956557241127459204987742328041267389880177319310800414101606623814181486972295060237790999165071364228576707854874487017670057045638327347005914704821892105622126764869521337400231669811860288932209665388728382858408482592982909687566779708815436710404322572764207406652178783167070036662898441019225930892972796162553233710885422752734051613865394674538574372169790392385839638793494671194813768161645552969443394830918489217524169641154085700357576926237771055873524358079371627781022443091787299921453815869803316091803982939595892709308165700588472649311088734424072207637915928172204214827259440015030975406200944092592774083491255242768056273358025067557071506615237630056274342034812164800510351365099749582187186324266744136977429718922829394154047937417725200168856131679692125177766514602828935933590654179199707503635801388477206366281890679433273437285805825905303227673998901746924041350114708895205528429960633737092369605881338396845333647426824870093027093930098569757045614728823614824604023185700238491486118362558182140904139942246252327073559842289144996013683176075837053028009412517162767267480528149228173619518130473833677905103421942341600693361728148036337648073061543226541353207750226385485456053439248697571543548063502243337536682406058070479607893495576398084504051583941921766657507096367264576348996985831838792200267166124387566732092901780600981050133429800207049041483090986608509375363622860287366573302592020842987102254229947072630926213552345991705846836739006913634034215040445632942319614984164917566685246765958482661889946939582407156552628438051686970744438916704985877411949503519554400749668990311932755414308802361643623518515262475810202154044545547668623384176904117122575235178531268441100987747062841039613060201673469589522109294267886223004779438480805080476227085021951382715124852920844812685461270866829141103203037870397367436996407899688056269996489973340930534039801578588145037049063079617258034625809892257147026705619101639380310666851898413398655740985655676886821527005456073834679504532998547870286395997541159717444216990273541018155797557626998688751918520860014944937193990099920709017578404290966575904247367565807141936163560640686369830482358181864049140428192120083854363249629859262409933019205197290684711138499643541537754278844599438831107997899115742775881621932603862836723255225966285332557318052221340838782750630900086856529841441674802927200460461559026551291392490114918180279638667926419409786283841495829874976340637236791376557737167143326233197831116879514925358299175405303109611291482273270267767227871993558059415836475842328648601587986591657345778428145260163810706738319996961726710738898697159194025565922201061193227627656878164869229647381796789655661923211920431797290804107404341716922442098914965152473372518094777516387074607613721309343364453379326927819338700467680698038355104153004230239241591875407017572836984894203827717656701346440052617390447609887610398706744939554366961481580147277016583457625875193885767034339798930517918835693637647472903528947380174766714441209418174526914081977122806371414545997578703070610420124629167688553947771101502511606430818331567201059868510495779294953578891122612535044268148223212153246138546398639097071328904285752420225138404567285787603467494051128769656704042510601147273794777446320467689418446532963360829797542085099461878052278891305163077933212944553404400036175158099560664791251009229093796233836002169663952999107244293997229642138242346673465314707593204809750209065089631428937871989262543098370369332668659927694507758482346427781929750409790869356103420549680181767657104765569274575354838512019822457865634630578598615986796571988994850842406347882219387763801819876030025750007789387812599685479037761433926868981830685694911694737455866283569095563928165664399951239395923450957278052473939407753354111896777329958395074566785526866918701914779395619366402440990371342887793249164235558366362764014402568753854606589086731566507655690492608825749970463219816589204295314040711685474128751593407654151267281876874379139392338512235946011168848599633826232907928596753271524941712689413931580158745288678549390477712558996687539591921788433246121202436994220524769478269901211946045218069336561568860766694076211943693093757954232551238962476180249464991354651504527852215358100033426839286041901150551335943399609974228049658110821791052135172149196675944453201254033835439760160040026154772454180386209982958317934250219108405591359459766715722257843265886915266456659338171087317295475856927583957327261240957320273068166208870712694768612487066025396508950065649748812549577183927864326568797993378093905339509695901079446364902225645441490616145403966545063170869865943708927468065148233855301504819493042648799303359743045949955926198772758541524189910134711173676902949186841098943822445476479920497931872261607152792768508391494301913800055728694590940182026764354884692019959980635871826916522431192760835539480834836981099513692632845088990478275045980510269102969963519257011843936395401862063499550503971520621539129216047815104164877917051181462849132055318210753632582036611329893810712674295656619840009217068328136741568220386284562413310920086751180346602424441384300680338250169584003936861736546100796437371844269022097680641063462059103775565804839436018753359167145722235309230507318295123262094041995601952125340627668298518268622606826118683408597337987572375040199492582439777038760769372274780978960975612835633044582345440336960113813389550798995940632191951823087370332844249718150364718356406042094043333160346827382334066604605554486410824254408672934584855687623328014596274131898105683978605409135763046202876881689131238976195951954483371657552708331849347491438190562243859446952768718024975685563253794883876950697774087593590085621764454908183771602841428345668924519035565323651137445553079767935031880668164979721863757460423536187509061492448727832863817004820886387638924406841997777992201532621975730955923148225051129386982111049050640783487305469142769206977154716817126626919128343763674254949113804436848657754660411626101546561478069516583718832852186821915158205036688905807516484870740433348206485050802612912237004800089738954021909298849978958157299443258570826406647770420590466146472746801970980089013576781932793105169578418089581108199179513130058638328810050029604813641758745589523056644031737404924131307586829156012231737519321658886189094103201604996901614167296126977928381123090277060119240949822482818614956312596490200540782653118277085138144598702999032161616879275307751841899746953183577055676837660050992329807742057414254398837644849532838698911519589349111174820510381600758189771960995831439358985995994024973474308621462205541062474056264546120326283813333151796863734157749887390492550789013339300535320446512234603344045306038114377691177706733008498119648857950384792451263706520645506877549064013445411377324709612422791368376605908634882201534428372573948459159784364050742181618145530357673393789617869238468296636982274232076214631063850948509126696054676947198572927841231270322357311140206560238813488214368853733419493218961361688098699253433827290256007536468021176029100858754622641932998752217269443686255434308001114979874329204196732930344246435963999595330192088295006871952143130775636528958431645728246054149671138589118919554950220814400538027854527127104757276285722100635666520543262450609917793539106704397617669638799403235881791999288097218230155817507784182214927798054079727961937875954157920299569135312141726647587171744743633130333663973059181854897724128820617489843521854631729417482832585596761607112891740709618309346254694850895576930933076325212354320235253660013612556094175693206462841887975400049651903469372626096843067723612249871600033189763259439429939003769376907134594765815902494933159423431695533289584941508186770762037028890111359717533265333051103342656292469956959060838551666993024958667962677959724428902513806753510518778673911453144288139276271041059851779460907236280695182242299913713098131253712219332492628587222117196705491255208168965434595964609316956706325275344422261551063450834065704832104545794760374432326844402156975593205719890406997232934488500934035149374579784940422323817038452705813220355491215686435268251874678847751180720893643584079937441032256757971493873810108864536061928502409142161520852965874803681698000996984683137399470046767575208826665700426505300733016186742430011029915356670844986627869390352260677820254260483054281070623364274637108548190637200042668802096701411913338203731696417849937703768204788236339880312452896697738393673612585228149372909397426944962152771912502420517966094032582644742837131927919130424991124456232726512210970367542273187135697612660800086861040472637794451164538928543640672985134046291395855788845697670844742783797705840209390255972047553136309032607345041853787667786679276174083136833067310329392515017935453953845641619454690007572134962983503568826452431445410030007390579865077458399932084485729504960389097733629912893520091285982652271240679232167653226037172423342098307089960429984757245280750437079740410064117649145264641181054637039393073910833036063877490881874861603594998730279332900400362517260361409347423978918685982151880866528790389506708785734359601018142193036746192614484167979134145398794596853923270870131567581666697376737372503158379911813567922673967492328793450591986324049949965859676771391918645517706623905016589373668063858970563003531624567323354729009724833978812119696557948136328177699580905761555822011073126352840786150560249101941111517173564528152647634526361299175455480390295264175141128702271980805896635003534872838393222329106076968908351648425902333193737596700017081627669708910755977201809706324903594724649661301227046794541711528992238245018557751447240714509668948588564700279500707675678897838472654778931333072577153999925483110963291271144058934721476570225091785327685902361976255846855897922742388069392662779154634702099696320473086831029536941887150745712999605408296897353726390276940349928751796897268850380942677599598835249209446810691585343820344218088756531555814017071943571505526901134332276719096489357899910020532963595438182429092442162382157107887729238805757258726319279705806232225853303608459463811578048339430506841649909083108085522413075164861658773759821179955630946068513247845206795929072434102947090671847924524621754669977873509138450894666153347189465639509190166400457843159488112590158581051099371234658622950430465704543479038513835243568573049704091009329310302420305568940994372576726118029563024778052216843843122908844880745443431794803551546699775840814119426563349363054576143566059721357629209321829171315354150534678611019011610053595144833624160516711531896905322010691953615508397536883760983791541468171909804527340357097508610535415034422622008688317629041404842042543535762456441201817293466271565870229585143022787005527922002262411543123049673737675898809092773339521119611128526322207779644861819848575323763609195584984692625178316104815966421829323517789701262754965753100398201170807234124757209186833984170102409189510201965576830868372035247598270385554523490099179116602851795026505405491440742102598011199843133354319679610764095616868906571242038269854751051564951019026106089669309119028215645405186702728754696615586515498159186395252547280379810371141645014549554568586774532784429274214103231257218303016208974908496990346781903191725623520364931183424081628114945259520659350616588841149756144171664685947070340792391903352555510301932969457553637529471375319493971285051317826557275627379409238810039153486259450108228501616790547885136055972544618933887855473353530111804310846788809025840857881654347366515394669346604930514702730585047838977032607519369539779517989524273798917617819854921469479524390091072202372549868154330709711209560355985898450384124413246402703176579435881476134577422124841520375934418640595414865115615889981636712406819174870201574513721834465244556889027707364980809894723705710183623167165392366536520144315223537903322177863001481790897477276011642259017736765328870113450456546136873606472931151104186303740325612853184180222992628399159245341220956815101405934105427152239566682804689144259379210387934161132101792710849772405460496213353494579023319399695741382632829004327704597166763203841874948549614920731771165623789334618073108838374480725907499041913035088379105618294074807989499527531256009700980130412238308845248819969709888064292204996882056052943305530950639271042375289141936510148255208569808793342768071612598293127031762156077425547474061281957229538296382715337640401498816179569698652703500912633322986850799453645866910778110152866586552935976602397905570729013579665362558113676244824126622729023997710750472757769116684416447434102408000928767534290440121966375748171324062391488042035571009444613948305001160112106869866939261093024961337917621173954226332183469248732791048726739161716263093964874909568164573291549534840102764592392672773426743262602432438384952590462888831603483169928655251085782164766476817711843852112303385389222124669002492331873562077030909188817797737729531732313725755515788568344633974409289724477027576246621262288584366731111591336903829731925499578317478961833655984885915104679462250587971010407619868676330635475226090806080283989358488349783024184620110080895077780828994767506934510874631227371479834451538359567095672411462733494757725224831518140261082720674063453403975133462639541608711089718701374995403539029382875154534957619543904072473531088540923233763166555584879182440268947284915955692329057289856511288700688262464957378155731129410589646534911515982484243679193999511940350185401233990064759856477072250789274376648304976528712934622195295826291745476227334231253510482658512815389313216759392411446867171573478161631984883712088857328948423008153542312961188555593328070442203290879694906404813243590609420039598057223770545053704571649479896949755120459981018124140668183846307151993733681651950270786778675071164310673364321315352088675707715528844003140206250661151945223548967791180516114802493046102373961539327906462419341873727499812399954382271402542261001374454384471468619685649509523969655851822973695559579658598888581855066082637113860778072837826229906700428200764343282683741813316538555039321780256348461392059011121084962291658240898863584067220239117058817713853661384132065584724664029788787506794426485634570149458757927722308732116566469347035452921761396190453104169749741688601469672553644413756486152378085692594351646786457174928520373372810810155294947763056007998515232910440255393160998766061233919399223431014087403612604903554758095717118164628849735803031393831039081303671856970268173950825124812453336987133637248338767432583441785031334775015114305437236374308598817980631645738910197747979166527859131457373049838189886705614859150766273869783937370399635692826690248685731984962249013530093033384081348061255442426540161666476343626098369201072204182501595277671009227266714712725060797711267118375612613644958646916088578681512045506783583429270300322801873269031501408714116200014711707322074806741683205789078100692386894244659923759589170785225979026882953183004494111486917011707774756745976164259701684525346425758126559024710210651502294849682110812976652275373943870996710436498110892090837899154451683409681625923170257605472129777852659443674436546209531567768380629959161541724495885553279343580377028917764704580258604504769873154624091049068487846305064711361815914441309312305304825291343009802090074761628090279516294010284866582829855048330830617517482695187817242917180640364716067498099884288559792597048846837962896783399585461094697856789513648220841133219336115717325744875541029250073562877430244888961820164578610748403441161506827121771258930591735881036593753784037859904610898643038276092628879979171244483219635383958896872251513377147495672215756318532867142962576922206936153945446667041907538144581715508312958595239717604561621377609828558383881141328409785173008187304572584089154965691493990048032984515068529329505875499106913796228247540986074774090880816790401751924748318279298523840236745353895423353064585219142727636927544836747213571381441765723569312113605882073953479106426716764127502124737759641816748972914399234178023480829286865525357310559534688833396571734815876692994478237342016505373000490888530363676900977475452309828921173133923020065698494429482895146531558855347962397170073330079676034697146886498703589161038065304893432940854650177801901107914475594110081545518673480292488186985777077488386160845855639283398981058006580419914731098417715011264645180734560205712800064484433126925173594945311688469395814576613560023960805823634866437988684932853365899424185089485047800111135811625158512279696388734742276052554160748127614523957557162040634426339460506279333927038847528949456399426421036489733376033811250875092023405586742566046020737323481648283160133501329592728437317335814806185258685745797270724608199494007629533622861884982893955304341742571354138545333897436569112463085761305607199719138380607669161963766786459296785996199121532325375789789147163811002840816393913694035931309944238330853030882205223299625787932381266709003413355219709650290625862851714907970837795141682027731946444587455561428480157383006244566582891006123241841227585638247437056795911021532137661463516885380953848398537852436683523042754390821955753233334097386673099706897738394625756874552416524537629268288767960818158246278850901482648528831955929417019085312387653575596191240037372060180986069189076625656389460013780989399067892914741474535490100829879707452647512777139594970761702442525128504089140402821160179150451547929127888361251462468166009030730220519155784515893102856044116867825993972206551343655837152282824502249887110700368390561553095411217027364425527438277293632009714372465197146890470423321166575105090423700737304760524633887819348484040407271607216607039313104898656104564189608681113867599085884485518615030148299287390017447014271901469554261255638369529419812094127219333132160905220811260934210603112162051439296479718917021629420808662799810719101722648440286468426382644303686244133939412398110682562965614410873124645436019885762466211281789374559344716491991603255360887924126858404894122231376117093586515494933017331182861224072573249705303027205653107709331333668637289181859380543505971054539297832069635813666981873724452978045905513418529760130115578755840638118571147243129480838290321306303451794721133248318259591797084386931297217562529286018513201217052839557669415934069231199166760848056988828495113370789786462340798149915737545850344809558029598460183468738882460773490387996144867697225873986575073921662975300474761001283291760770232435632827912944149486930322638686198931739668530354221919141340955868032717913245675431039743041510261231300446721512796973432626331361512179596078027571488806891761134336572045070412539962243846030349358974550512674801987027374699900544170567374738457847181693693488735286088433858331747267846345985175536599731309542964012141505823906992404010140527562161580764133829046274768171368915674540076785085287426895793131841691407855870902614555195261960117292587282984820785088256895554411313172638568740675972033990585829502235429187493628657012824589953886796168321502858059640929304952809918806688235392251813489250068238527101357350780262106047398627036099784266493463509465092775831294076023262674897129798169760753283908266075884477157002978345921260545502107063378577361526142349368852668955710109408149854939757899095775981129338141782249568493037413096548704705782098885923001431204267721127739266580250084453265415746587692248909771598129650055781678113867031559054932310967033929439916192583527149370527388034538628093900763255113177849986432173657910869498710940992553377131193536258987989241975515772596196501653709842451193539231745018843068303376501871518193840745571039429916678192923381962102745833004026586775053543295823183185296052071969853102999153753458334583912899579896728024253994604726928050095465534291056130448236598803436049056147360100145894189980494746300651840477208683333457904115706649800679555549921454245143110344299166850682015941259860430575829332907594476505002409288750696646671367522306853234277201162213704722805086211970248302029244932670571246633903796519048810674241397988916826320469289991328578763958238423183229967782646146692385250846536860887562819387383836685963495115820276335045907094422712228578545898482681515999220254571022128086881524496614490929592702487154876886872023180682677324002773695650408450736869013558402279748056946257480138250954940736855331404739706916205748072494480120405677259833453401859287396196083981916925003297860592163699115283961539138234208438437951099229730120252422883260591549214873077843219359697758670752670481435550108858940556197801157292565496464137032187145474080421912033832102233945279941180622528719518169262400074984917342935585735430935419422190563420561992594976927482178831581288883813295234440006670871341751624777794117804536548923759304656516404355081673748817440738184412222262804866188555978034676272803222957482427248060349291871770078679973131653772153223538197268711978424440991519828819341324173067486599577320997704156018559399036905713161809349264731242662270399544631980755641033780888831911906151520470324765935242850605743368294132043428956038479509047160489958944917811956684208820031285020121784956760806579773608460243970655068510535954441575531433453747100089974419873553318651259410914745091994533114118944467291646632133302632959792498545459997264571441342624481764433431450514580579326733914369474221382200792855368394946297119623886937040476789815945263159717514966928542741978017772556694630658781593382775503326605852201541374956953216055836105937393898025556689500767516147323992960707114779551873468982788315827895001714017329349958607314663268675010083614204285056820451768941394695835696597900285658154337768475432399422902165083724329370483598283352804085789365797281515656591262749370167899807874683160445406116614867025800968279318968131606035240741244257467969215684954786559772613167788585223535664673944186644807395500847012972309831586956256468933684033561345868891995452593737627368932698841273076642479624152632097578748280562513687196623625525855206864673180013832831685291894914656665356450723578129525580476217333643662721961541363088686021208661495680380389430969109073921754681666410244408086121794255005178970963772115498965818518030920255583271876072803868959841131770517094573751600811652589617381899957217211066199693546958530590624068499805215437052676862703761453961192771796295777903178119040026459041878566487472515667896370887139553246485490454327969770108348045324772135633373432978143815502757871256884541770100895421159278572249647772064656950265044463188146612663172336646310715751168293746030051897571897336636065289917702477094530243064657649767610308459244467794643759104367760396381516575236407149880097853520018795549531404005622165714272730571081395596964053812344903773008312482110021518399241462693412818018609369955758619571247304710426444187144466151909843039547135289914058719625188216725299591894903966173967531473954227910484137465328585173743923749862976101533635123729933679722599101457195005503203885457712961793708605506191640820823018651593929221839087484948356118502504132139262771691385346431722713028309942088210602652621172261610223084424177899705495152162732092699487734969009340778400837905326964118206178753208398969705469340714435238998861157411952727184281443624560543021201270917382818033111551414398327264956241353178567113277887039324983721425091713110767436313901601392151385472688078302636440829719570240489011706608938759245626807299301006916307345086952631703134599633010150456595640148992057188243693151749385746673143187676469844147802900150745385977503936756608579018379616827197843165167602693343965508487005582193993038028413510645847005337274803487204994618480478312414545063405751493104186703276233541837332341762685368681087881849143189494783498426034274684108151246689555690868489865319818878358078140069823067195496443034537511210655042145347757159703787311208516012244201681385962455304041939741719697430479264276388962571320418420858504697633518877411067593197434852741954142732541924134365023440003203520534024593918948448485931329856970327427782129677853784677467110683825355555204803772242785570095387727074725335412438720571176855570625587885398642533727927177956108585438642165584952250534012750474092543205285025112445940730590116657890456274007505729257873778729480276170396001433152950258894544789582581084391863742808574642728251019993707392883851707842552816006401307366731615182622612228656649859270122334884228999610945952613111896860487095371696399967195497881425252744789839650432645282630825591309868166350134304516368275431731873246105569964504906696431648944311243926891139460539028471881322529275875408096038196455252346043126070224042353480997133200499856490100640380128383450876016185659660393285469502894560433090100169047925089540555289267993180927546284748972624388394180395675761410538251416537315196227856961663346373784101752410875146625426766736332860326468452261515112726405956431211689247859886537154717967831456497473937877748052035441207632556619185444122432659302745608525223712533814111621947514232267853115082255599580226234693564859490844884601771976760356062291351531909156871603797074477928078819145131178468236050465950463727620215061511529395009581941869367595394764678162698009931788594606905006307560883243870081872344941609990966734503095796698625925720867217927263508781009261635159329805513549956653522780625219233729020726068776078052734482266492787735387254496141326381122082199929108999227300273154472162838902874554250237544112543036986335873735400723868720124435250548707174535164122889593196487900828842463183841724347417393819963535259749728275893501159609679494532161637553636159124886469007595174708119555261208961440713235286910263233314852649038734093162415367357688625663448708711245681202941292778586557321606158334132542615314121794948860825189218944383907111033464956478011135805612756936222419431024018617470306987159132316104344399882599416770696061224962406274922929888760376976525271950654500131582037972625979125243705095255154366767883686648125834354212758768180470186366869997582310757348723607059844381450724917747565264329599374699264033534375189679765440025856009891780593808026897448893594128727382841891552336296344919501841971981497245579801429608891676298591108935595696406076873629510409363194516538123955174122663219594128375682854543872358318755625893872577205308255755469325155039434288270601692441837215476201493348422640172925353899257903609203112414203549617924453097285407718649894127982193404008897571178082879536824866422226339056639133700661115075223718225501283707471352808083459540481685474663672847874288336050950923111150390843123002494236379826327414692005938756432365076002992538673092897848869982049114147709883551777357885826912975333105519207119683869588634826792672777694316035115295207897252871216390118927085424543149979032695970144442391483606175235610017576800011209119667284743361941822110870055053685222909318202553444843279333592948140368791593732390570820681874854249550486838978372375008085081123081463965901214431750302207973983852463330442313135511565766447203564254856019992659354048923571936865954874421706631205032205630735037166537575480698789676648432469624192354206708592402143500498262298270647414415360562886761639734129010901557302026723400568260534302098841343476418228849190056296166230611506503946337348813154867911058789479223339776825829993626437895195418733256841752862896642934644233220794541479582554022956414711156548049618340635385328405701306612429502904833997950864058281361042589387191866570352082027423438925567091465803346236192382880590779699520003133873768541514543170469272333018508896624107539209097127643142742623655349155814720079685240795163158124156755516259464717154331181883736687757837594772915436554021880994811799093973665168410166765907661073135104076446752451300460261182648868620405061484309929428109523616915331420979609739978107916339985620122879532629904295320015943761031639155960356645947507109771603562815820508141088247290982812125749733641694596178775498805116708453957686682822807478022077224989125652749071325476378175973280016772382586917094280893336574097061652779682622349735578039780502632760597109553868990098014966694030292379270471186701710372354928507647032866267872164065186657503404265287189805928721958442282139768988992507260112326899829188879496145853516592274092366286247519746198727330090872379111054147604042470211435448374068903858836751401485642967311071373494419314164088674076854530076813194942331924298989524762355300623039438041085608441914860228265118463604518778937527839990221871058208735511037797937177414639015342895935552634663421996269691357542845629654139525527128227977132751530744973336162271795350298015335405133506344382678137713154410603654043458957099505673751309467988467210843309709781808139511280134792417929899329783265939675260111197807434238251108801539558422789835826707404455881222069474965493400995893615647035727051857148289525685754376286648037272143973277274686279874543828104568764504410632552923551162097945542818372943310317606615039640308123977386702271731856587714636669834758912270475904584369506812115425238423850565333343007927131734249995652298736073505648432314486351230913001143580843489917978680167423217853704574761173674045215600720293811974302912109256180962412188448352459236937229341014399179242864310545300526430716328802216736018716709195020579313543618971639311834109934629347572948937413950766281791718922009954944529328277879922340345638356760190024791516652658948598195027923814213592651534976359123445837005485155964117879350170471349428990562376012508957213967032084943649622891041003267796635721228244101254613705528733254617034264962641379045543892926361415786101670542547310933748465875189470661559008662234613205593122789799675390948580279470269716032137341235588457280588550238494160598181807777501419279532458631406046047732569547315499563735602541196477443827591553803940329380364482379548446001669937675366397668349787540139209005228993372228634613396540370008855274927704571714872637417894516793338756748454201754024324634362547868745203920173842654540997326748384250009502698244994577715756409056731925921275219180662389479284370892761891442107844365857590868799149243913084953762824152959864318294140872587652356253236155609964896532897815117414341205438595651113776091062405061358621535189377693852424441326956363293898824120119641651364223689467909161060693572919382517016800823639957781495557017648039872685758400284000815835599607479971239382118035401392352125972640805449498267713892217054429826713877306770367072459467803313824598052159051168242801135440156007795395547173382543014700962945037239706628342425879451799996308014588117699905870966706721281517994955108225668743043021302587204726573999869414589519375436570238222118444259471640940871121822215546408298617371828563089828464653814729959239579805507525391218299826317254547851581173027121316395002132990302814612599402975140600854129130055971466617288107676393968633060798219756843941278347085736542384606081143868623127424103276556315189006543163631222452317044838561961334626317859470298787469264482179693815711806096942349120286001120487336581039790868283071697961067469318510087072757483140165868463887120251769779414978924979725410382568164584623642573710250842071405456738405573237106863697905318011353377663090250404508361611149361890114791662726612091765244349518725737193146343815442378559035771198886868979987323159895044087919764882706024083105478279078712082054294262635007311749907408555836936168486056705411467092415907858015798011076581560652003813758423488499175727296926562396898824327094195308612770692308911337025668684435187240349177164636691664581801588145987984449522384426025233669040115775676792839050306396854652494861324272104779459928282287590098133068559901474530148218686387426134115439757797479213446477390795786233189312301076048202775721367574775253544372530684199435887287105294678408347756024280384833138694640836329779682109669280742436959434110468872224274682378395133576451004790326291900290428793955468599586586585722434646064912374916924678612841988088439730928652384879744340884778133012491915961063124563249529980381198747143455496597208683665166591610566123147488817534207055816287222111589089497724125131450309581080475630971934267806811599124891047857786017470790409906113670336165807696911506194826318545748378162288538631401386148264418764261704007887523234676610978766380968959071997300607775457007844815106552437190280033815662656105055207926393583344851567069145492376584948462617074949102687414165510258247135062819953224371407349930509851102799485411881659861066320099181099277072423453196291628136829143256686074845189558769423919997391579014226606998173433507546178467706859141495336619206720279705749050294497504191951969591276609134409704513707252391154436173093750544034035784038281730246677575721018806388237458870616535235876469240923789105654609763149039480546696978967806019735983808850390483998130131516375293879421391472324822205230950691799776109429751438601568853641506136200964164044409419560797280886251423131591125432049295996910425107359665114955925858920736236711933271447411641171701281752510430318295602649496088175423936977517549665705054174541129344911193042389819551407463245300835041112041738066784346227805100418918588380407286319216547222469552196680339180541538623425924455453283327865005254138263669525996222434153595891906346813057774940123337348696075012733356398889917060567965429169114960182130847732390488113370590895627692709398807060312068634732180264496711484273923456030930050710724183369142791616069863693827218525619905342207380051075398583822869224396735549788181990403549325691246825015908361186077118694949471220003498267328033428581263712587333874948815339241557080681471701694802871982861071496748011716734782684006985643075465427503097075856928175217749375203778882581279193850400901323071971587340353346312514647954140829851978777844080393550110938846867427303526768373718194772600502056191413808579441906477390505975692020789385685624850079324641125187317120084652610901260251127906699365286358803778596369150049740262724427938748084321479956198309375375813031753661663973502611493639291441272494193638201777797334070515826384795970747588887562014273178394961022036768171554729048869384897270723348779031885638805500451234898538610693273928712571549269067422909737985175811548238904947219270474565263551750215616207631316246860544190455710735707283096287225290674090524210602904026942735421376851525046658305542434082652734355573343454686108322537743812480606143153618871469622716755783517735624439888415327407370042183777642478018968807695684416752123862732328192550555497256177983358323576677464094934684907307819840402247234261317008993327003750754915366440774608067402971766361263650621240515213244133122218903201592010887114822624568593069260701133964971678975887380987952962904395577419916305906331674879621001912644479227315003106306834130910905583318641850203317624980697050261174102122272010895459174174017299508905953483520542296412128439605337582995461689732360817252853769571043753277232231735390963400032171915756968270883375296202008438860688576483831123622328503712695530571153904150471731696626872781000414538214939516341810520011742804540836211978454496781350089352797316201066030200288918126724580706034787716155758166957107647669513603343258066475481720749799684159492390192765453953842328566592391603659194843091100734187424557355922832225058776834377260297019266053209178053842382455704605160799391816498359242133516614313708312505671513462823453560148269916249660137894499108123994804270151543992795708858399045709623842562199915689360094310170626378581969610927232399241334511045725275541359055842096774876715509281819079272573377013932407948509722033487204886669369994457178193676481219344498784948298167850288167523007945924471179926057329182808565867710956809487792281236653463745219957866563626098666101392976248983390213505189422201798475680939375069585783101245712548954206303549043819472927917117809331603238984013209460840244027321246675480172389169637086519609314966941250156098219891648201079635875762955833483445919705395617028830577809634323798408805949117616514582687441078723724662653658194647502498731813510309349239856350515302109342188762354416563365041517695148202942760943234398086996490830323478166523857707685885071636473001131752489795918275523915090680228497590932609002068458379696536165028419836812292982919556790575465382967286931374687326546436922162524042882922466059533633909364100674382646637371384460753178591945796338612115952512280704826425276100837088098897093592534200392909144571196580134685527376084972493088220112537401429440820726087178455089663866710836068662871107752757598310700089442914387985758308238857127538839327785108413271446671913479039128416624413281455962408670592951584640075232985247876235731538951154263738009547280120572972802445616574713494278649309069394239918672229999715119749368401160086126855762909716677161760845742901771222504478166908253010811045870655973741635270706005152558318995897860210179528040998863791154466297357392741521947834593633449960522373794199978118474227721493587430899630028520294804129620862526789029849237548129257041489824323035368775449113415400081260650531759750728054420273402906282656349867291391651103160593861995600220274086443310645703926478906110594214317644148678006722030790857925663838155973269870747751053228956919777074995856844708184692589073720553949777791298234384746219238275661665246387498987993281866550513423166899331084321785407075235985634473388504047770296776788747239113771568308158599574865393966459878387736472657807489152107069244668787719789957043382265437180923690568960140386934698986242169539251601880954028978669501927543967607482585003887540153027967908724209034254361404337973160075878208471630253741264071599617494672930932731904440048615328345192705835561880574074932831160397868035818941471928406423322592624001801339209679553167857307985979865659652539761514733395442728654538409354580734576097732118430068338954962428382758876035124347374073954175992472445626317808406783444272607751534246922457270007528977987646668751040836240376702984006708744036689936629453783918598866918687490445169701039397053769356107002662406430617720842717638375838400956610182588278919199566383053613304516315098292455577543004665315484556904536802565406013322650378771879236814304835831544665121673516380667894261788152266349070724121251793347955240260005518203523509343760869344090783794354184564297506427321395799296631362038258227460671200650919861476266251645264307876130098452998528572523675283157917075254576936967984477495931625936007886492897390210307835458838989695889825199761346479679390552243186913931547209834143103622277227070866076957966110949241200751241689398101197470215261771022785798306802226934945313686285394464008455470196481838414643572819765509052174678526229260334248584506143107965359593130343718982892599200799148442181598850363159612833973894646650694163424475325016502374627083646760292551108696061242426384626297045299686471085781081170116905278603496904237552052695999992959858727818821681573149528872188990133255981558913813965955033980864461553492622763878090032498465661974550249103962706612775297523306156052829179024433814264735153685212207067193254396397157409946260738691614296773045069897973815995084252507387841405147015081516978602280537329685116322703666896100824604529324318558880548931628574920097508083733169869250646715060220693125288128781909731220298613273151696390255778901382995043324968795517775639267720027039630205318444079673053103934665172860464488421506620432579121366494927548858331996060989849758718715691303829797764175633114028151038069202663450543241726750941997396181103415960218103417189214869262162419080398428398532436712318043541570398516177137976598904193358524905003820402690311546074171225630399922665501057718512991124357827693691073093879618003409982467109499325798695650211219977977237487373618178378958911636495887825555180845450441143113909958872330036290159407381994918361746559747698628619397523058635738595762594484991039035748903695994507427113168685659355260973952075376889458880906401634701120821863072568570972292432966854354291853516730541063825207113203040954390920684422234690543268431268818091906030999058885489726654857000545950767269800635873010395076354189849418059181094119814373152895069938989513258339221474167212502208392837772958077063540805779836933374675017425550054713634024377147486475514261285756119401075339768211501988039012846987796747595515596104901979919917578592248843997448283659935979777049153775892653126717970786161032839582399094681383301935349319352240082653566973228588429363759502776750272260872207563866618644670608258394085418852445316404895251877016292567202695584208842546160481590572367668520194198897579655207265136003839074032465468645559442112220233578885427741697328552442644370814475990274643605715725343454442758699517663389776806147968388313923613391643265288842493246180562771728652893438313673658492120500476164905237991217335443391980284096964093677826447709716155441279703516689227605874946177134507425592827400213590031743428717931650158287809694778068511944167164708194826484232485743348772035483736961742612480505198661719391220342248124765584479915438382590070171175944218743013637490965717683814276722790706147327135116823709329605420492315082157711175374285778444684103341425029014240263927364921176373669869189011020732497563764058479926736243167599562915328107818302788834728186975933528943706328168340107249774771231241313508452630171774687129988042220025535815365788056499501837446829284272925059707060117568682230279925402301219341592527920240030827796834672867242338584320001752381629760343343975885787071998760690542688164452103498652565684512644759915083747157531175739637267782252216398963848475530543067498536395116122827708230368204334001687498920538469443668822887072025540244245412266294818428540198236603952405664975467104321850382010086847761463987825198836417592098695434532832909752075354981650078967014213186220685928106598633388831388492609807682849827136144954374678327807601663354027743756315746264208193614536445545072947134674361692415885270032857141928561726877683611450938069414947678921541276648611685694036183754455583639756881490414796145712447250597439796224719901082209262023247934258641985178671136994492598198178953039125211560527551962596105438008945380282624265265970819770704744638095453695478851004630517795475887228311195040658939710746273730881017835387640752055187923701265894985789818571449146917299838102363918119381302469292408561083125091122444716813811438410878711585890516121809907681597222141627235360466086799916048799881010680693871225210318281997070753917988962596027625026509539015483778419745476371632464150060480665267804904648309728839802379198928120502168905192463423115737659404004381817390178614180367786435233668341786770629404891916807983862833223690243661895634207479418559376703769705363536670211259048084525198063934372679314572563992092789047740742152760880464314178243704526593876058370139322820029985128566293260316571125386291735497205114771765575082102615346672057403003829259540882908022527135045136404721467881550562561207023010694096497850641074126823514870921140692488355514228605442002864504261907415839352690509596972079828058445485624571803104270999112413049778594847718595966199355222173982038902148303335084342018754350150890934939089520256821455947624526318061278986619619562419519529285428382344191258260572360933740162142284034063937672680937853705210316728739067092132441508432035922843120222065223701688846995455731056457955843546420448105402509817901066015226952954944616265578568134677069239051450705542706059474545482116384568002869375197605754408485313706842284159971057686303628014476463792005019721085583202392519864187276965976364820447734126658222895089071428075076262044562279722281828884132115756648954728140476463392818912548840836439809928329875191350939289969418518233905481477841873583087036179308344512541324753230929873921160375612397701769515895744042663642438463536066002585866400377032376474072466887615705066395339071738890017085465187643537815625936912843183769366146500322483508623725028051748951996827161222015297972750367738911498770532161261565782662661913669095856473892663411453280069553838753119829472978656384187648265959198267593490056641287489577908520786457654943589310457823603777276726542221999242952955562825899678971841245500670738590560504911550422641298197743063264890622365390166887834382187646534330473836485030372504883522169138421870404442941513417052698767735365273675531917584142819920257533633449964273473351067412167837771699900642063197494762634598438638612136458323815262845593244024832036415659696275303648413430510633580264888866413553029898344391637985340991084150436503716185679443942919400259232850996874097298253757408302115226999770951154010557699253481037794203472848565830272467841897087882340789085960933217748760725073921765343760659712439291314623331865344222918661472885790107956200537985389825828078006612198930760352622749307956951052154624558601278445207440944431319408143628812159456453455730912072622498673849390567634215887317266458557541091768482685073991337068781724466660870648821990682213839287923770829352341506401467803403696017538922852296125061074712181364918883101545058742672335126274951723333967356252152700863674600451452152158070663078677306868744674379688800506230010382581188949595607266465135882506398424323507277660990067057943130261243675097864506059731558643850773252843125943417094341193018463194050036344772256439613825130363123969935475738125961575789142415702886641495222713897785152640304172482781578756800092546785422632420437281643975067523018938516757309513955118676651206043706875855805601547266397660940440061059700137134757723386041885323613738627371133323677182736340550399039723353384295151789414222595955344134773069525877243819890019567994554193702485797577763131599210129670109639465305619376162030781334388959763472635418490025963617948914603840525256696581012860287846712306237996374743907333866095063634419589614949887901869721846024518994765755657053180122337513219336041530709149887411741792724845667552527839454447587639451581243125614485388282283136455474282300778904331823831054093548274257201161892476327974563090914227175231457660779472172160608546022825160994236794535842637861565709832088496405058529724133613424597566230912162294165830373479600902490005327691376586925015143106077005050504044312474162253132738232525649631212094051028569927049170944222510675195350291564703140855121118186363647259386969869611366290901507777052988347316953378960125881748871276477854465188159775858050902120601464863406506305976583802372525521925066098561560101333511550108951869191470171764117865893467190494188916576766061265823668342337929084290406069528225660900637312991913974439649099185749846463710724422048965724957297633144069218966289164964965792590633252242312187465152494329769913724291274861090883992249643061851942165269789825893639440930999009119133254569940217985066812035665524235443126839581826847421132442926867193863503891699894632046041302590129634341886842620490029670489761153744327025381003423867393054707181476284342278661807384354800934740652440291704263083784103725758169442149900529807114729668855245332129478197843068764081685414017185033952175543279034036276607909809137757536186468345289251180358835117876739532429566577090535587060697983139303905061229621442550820013988132890485655107558360419287606008684320846954718191385850859013900827300829876237054339964812980710680030395078445372033411707104590246887229955517119387696381548315903834569999592973667869365839283083217993816765411650253144367016954596633612924455153541897971443120588066424949224439078233966832297479252680945062271036071841006777717361170236417377617195378058794271963649232819594799464531291256153320068720896710297234831977955593579770056122377228685781834484254913915555520881030574200533576996954833850363853726685461874366430145901222292548378296895914123790452995498921628499860926119694613473908820500051336401116436170374361681380865489088917760888842419519398227294491917921241515175635212601481832530745984041947485163446496141188392213139705955168457618770657159788130959193215621943237369550086658060924430898658197303537118745863373955118130827051065704117958304222275970128277868161088624733564091741403088520061312847155390190808998933076351315158932379012714694246326265200342780942613296544919276023851807998937297289858468301166723462979759543167096590925743429298184443896759155493157623477492538398186210467738639670248996861685958482253160837720886538544451960878853445257877472532713127451803567743583405746089406963254417801550169262798094951944033027563544117834365552034595758418596893762951366146723693887677674211997654702044742155444434148477153515372945846743454835602441394344813984372535822396791296382410080570225171218656068684871568200972868344219538885041944008215178000319372928390068938439108009606000366006329798427223558610957513892654125300131027286729745889490218308462948342918183565638882365524713808935356535430516060966708020020843689649825751565035568232696634982675696388482243633336538701011095416549889111619668288872396789543176634795906371131912609147654042000224274372087224857999371888313175242612276334048166724301513472382513082233460763246893481176798595105174855251042671413868097899986412327577254591240631253637909951751077249446256807907981430823656661662800646855603598487154755777171598327871536966465267419660350425160085438138381533183408828550597054006332740505286113038552015219639192262932047340095096672112619919631143518103424756278086397086341595950363425038246728598014147044585261990053951997678552612707570669025766088158661664323935300206911501947523703144700036353187223078388596161130374877959940521254855795517904567602749014290881149022053518366424636722379829914838305529645309940117171395397884830852954681110557515899055107753253180822535281792604949018630772509185381286115891885317481188424275721477741864779222887016710178061245910709056664999597725756652650697616306702932768410718749536722450715253475362060006178333453318735688209148015963983855871328546900597811664418387631964986166866199510711986274653040215670812767619806311015283739931694158667586089080511658255862958132228230905594264530469738454152624949943486938455474915159963188706538500551422551660089195809930631318585510988270908236036313877457874485664593246152055432389078778811459811336912996693090327140253414845873676566739857989655699605893424123183141923419289644320327925832646906804527983235053639854188508984136154207825781893890682669689482678173591694044254112646523416566827889041756006189402557598384369413921986767918559675606582487636230028637454075983464914620538949975746632802689050089850088580707067635789625876145351678740688050759309934153424715273468358703584609955522559088517494156455732324545958275232431475892103136999521434487458090149158851534028421264139903119642924232682237543402948391534274904686118075358059360843680418664347817971252571320234116211948669499883300972775026970533878100259297842781079285491946817441935551012069676965403756603833675065039624054188430722066937502869936369711665646196280827980737272340902795864862653709227311774095688344732802567799512240430234943678580720669969792428858276860696490686349744579232331353100417419716426614779014618784693255006330247973773536655592980145611095828016929096743066010589455412898625392735649440024595495036397288993566195609567323452169342142194999155699331071456828983262402748203707096821165356696724832931268365443074736028128773383781208819163207238052343791965102636104897727190329533304781079632870053895305238692420969426818884068172058878152944633189161517190155046927456573045779098318081047232172429310405987895693015689691403529109326410049976401391706521072184570311098860648991384114465159789227904769811312219040848843571402267492131617831628789350691932096891225187544369848013196038052406677566936901558044283757193262882104339682331689198385708069144865827536800158867573990030845090782344436635136727606081123321910104069107003135562950486148679733636458266706286962089290519730438092576586806704715389874967850560254704661162353253581806789355470652698786191270755476896270957254103331352905482677840209041155032025261935571107264008108945245639306511973238414035707126907231019791510130064669352731260231991046307379300551305453827343429526137839452130851646987824624604576031967404300632635104578170641542541022319168530721391303762852599468340425202837015741683537438992287656669246669988213550514433048379312007790951689166856374684557003708705659253107359082667895435142482968237427827948962682081606954206979636183210548831696313711965745969084633144642682995990948102150518984775443356455957647953905920071537326256800158929942457333942559285864780549918124938960942103967770657413812713987139100707257667863897885558215293521910877247497761069814099971079271484849277351283303677650315935610194110415090411931850667735296483897554509455956659392896580918523169070864400600344158091611500614574240644124397724358316543608916488192453545120635917244588412502394105912228406672894792087234615299358924060518672503705333995083419504261045403028914931362227947538338686626545715765761007475019369373719616071371153240894965638232632934297491982169244309625409062981720871260293820722270908487811916630518588703292292082377250141133225945712517137256621304791719369951850726568944780812594282244332193903107883512145716268575067948158823803273083855066228061530649356454104371320330927892908057197956793624522502644731514523314319168715640474473769965249132781226708608327209989059343740054510723896430167318902110999302364908726207721614534936776414138319803760047493555610322726723763688112131828540762783445350997601377605931579305376613135418285649283859568922494078327768163643916115032125221499719080596573177042128083904672577532121619641836390797065228344892407347755966196083829455940410747489660026533685571617678118918975970423530748013124733638857712923911346819340091576285832935985454491787134143632821739930583829911667602766865490112512603758210487884292888165541622395117072041383716299869163808227603165818486025466904655838537255846804383159606001067642179960724952813391389366302401224744786328830863952318972153640962547400967773047280511547909483038426124648551575742022448714726920222420080294451251949009474728899753982919251872102751203033526855680403905001756825786969049150977530604494471248753959042377852006645717889820885624885736075824722464173761948621458487409689224669700157793370612942662129657494679767961032647100846053490657832860420342692429046303573153162674345008662022467403517959993871115670636345748942752161454512794556680275475885523821688862118096955805230534118242782112427486663567437720704813299650656029901323873102610523132614423149042059818073213873777386666622602857003708810209067705635168855259299724468380848565882347708221473957879170479884636697443514581527992838356746130886728352709076139804371616291729949788125237802072677838565740925710507889275553568058045636648747124680415397273333837330392824389307533401442223684416126109651903264138262979266126886864358929087127374807373550378357942665265464882557758192231318573367782508875151659359444128962387925006064868625661915036333324669376441240470753317921551448366610771392461201681785717353711808002052026539220332235091797478996535530335031497017833444074933256300870075434150894174641280133792649805818185538120713202590019332231041605036628061053193258082101959016107735216652645374175835632014461369073998323764449477388987635921658844167303153823060004673627216247041932193697398245754499343754814698119654120618997113443542122820252209764159120459993348472622428246824262073675612960393504640110604494967350442326272956582201213442789693392903806220789131599149104558822906710474246272315806051317697993114187253073902976639745409924055418090074062305856138814452836542329052911699446382761251033997744638010183424928429520486578363222994132797807345169951812798823986100321620049724431198929046808229167513785912517856220261909580070654224106669222860759994691837177419886857701032834391355321210719076510446458471371119200790510338885435916507723970657759225593275253382224520103044464626145415307442188204872243988452321555313166519253543086595943093249921515253218481393124303027512547250417379600941409467341439929511888442256405848169620257231771704083279860770230645418101910024185315949471406171307566141000330368891412624536080765504458729359512342774191487258606619775004824841905604208189143008996120861145436426349717747319590862463331827805138517961156993695939737552505827963410285796759324110201418059449602133691369068500748817109843257588430967420749547554044311656903915503432365244941380235360429081363001024615925229581989730146342695731282512238461806753377029002178366073703105110979764455066628783752651019078139322629385848749108390257389958495009694524262006954093224390344388170810220595567526338750350635809657173618648264470210745729569626101532894542462853604374396038747812171417192393366835978818087656746385675634975754513309790840331779715373864282647635736953931981642348564937518461953850928181550101740777760396484987542580949711950736966866051995520213561402893568935394868988323689146682375498190374044277160425851798128889764817412820210002238370691482813278299915345933208650842417773134291029933107398529534245195083047568526700182146413463079364849871463148224491674625727878223509505697269045890197691596478767182533971527921071490186368287332634981692376901883053009334404630945098724450108700600419481551692335069243266029664751959819971331281236394015753365264147463895238517323326313352793480689913267063269319098732137366231428638262879036122924667717341574258903870135455306758784167253409414448577969435079879441863499704990144588672492367718020640607828062347849525520244050225077370807276807773018760126746984594175594794419422870278068108618613861958895228074619743399761726541233695634675708330656823012683243241393728537649684301541727511021594472885540294372573438182484699345606702322364714305962184610135565916977143220667053660326025451490772955074991498573944736437131908231810604394321508719208078091839773006315722365974792878377318863681949529884609534479703491145136458132574734266068430082179893682307308504034786790898293809328463840756570574160174052387164442884387046091845618703928471971221131473644479071781345196958058761175542054270815737404145067273304500968132019466667402160977514383701273762782330661616206656307057587734515281599277838026114044888335403829993528581488912579694856562375972478912509960764782534392518068560646518077245010339703974478677444409807477886479241140905774004377530201860129657515335317252408157761441157713714557120068224196724100684486249480234454451279033230123506217823882777603271748170041336469396501060403607150585470211238092654386183324226096146384923306847614816000822159609356966865450515627329617766145658172188867296166591129150989117992848899548062269982681906745119594214035903210276684759929592758181082837220596830997627318000133301346791259616929730660491704662700301742854894689252060406378766802053074221860867278770499871498161828094757734611249552954838443614534103739670476221461537926219891430362472523588489394362347824129945704666196678753927090392548367299034980725557419363295745602642788511043125434430405584028639979332868140441934900449623785556787470508880145206755860197055532343028159668530349664944441259787995377995237837225280426976062137512376424492750167927384469242824190062126307333887422206435694671969411997429769312170566066038518598777929593538017265871399137509184082474842052511122843113225424550511659485095599689698468827556643680508240303341249905148945175140367624266369552301066669386363544976542326279646666453406544139264531840044200639903357749065706837324489940154481567467043307667883405126850162884926803016225100489442267144709443511046732667325663351792311976770117087061956283120926431302591424308835931344840577471278228712679127212645624309088564924445517207900085354576145118671176461989694917758308220592273154802761743692374792890587841252381228715113519478547114939725141370590145723990776829067880420615596321341314243832004609962870747912573178322340317581379614376661275113183195536222338913016161231861114092886986279004156878144942711326097132921912457734780799011627980863703657206746841161645814978209267031261890544781797622597863040489055326641397893007669201743427243170812014541257249406963630700859533253019114746856070630757444801407367476135804502900491012239838023382937004769231335438534130041350285579021517751582733657466571193349768505556578738736845695348483701367915829765361066968565888833748661280226505266031942579572544222198301766484510448692177887111744011609743906272010412008039847091489146818737239048814258945959120014762447002049058515974616513655181655688721907641794224336480547068222467169611739263063930933913490282599670048186707288847043266237950045666133859481048371121550061573667369230143737769732475676240932274516440481890618548922641950280248453998958677214284733240716369480294345534528637111790025484086695652982876734717662222342554378821261542999503429380603158538238242129314761711241961849048973620147387463186017111236076036404063124338219312258421221852142576995239340489442721035340241611067477606011618498742396128581814217449203914787425524663803463336625943729226007128399268519520172131535433194450070555233841486663578663891978071180298934671331396197682499664216955806770774508519262204067756047309722807991283992235199233548600966578213212406837999909728425739896960035152136055030804853867539738173650762821410896176047693209511302144003896314702082084688339594770011393525437760150575232776905806955278593145501467874363604929575739458791123532151147423199881470830470227983356079300324336482785863486820622426719096446315792354580925783793221360388067554063651722378427556953245627581778552915689812348475135850268795497036610161649873567435075860671974066448483276757631742879337688556913285899578272138051682763255868257135231916936601598994346881488665891408776109690626175416759245936746304047468667542166181614514374293873383861181000692717338782626958777438910050559765242430205801194742870344982744289075582946754047277851995216230766664163151350262730255257627812932374870590687295204141796483375736840822188868934275313164749201496813095387751706072586170353570663231285084103316231540503826853950057727179621774455386772762810267889590637450674775824087184984309863490644534649354248176632588541496815946690828366104644034574023119028355199363488538935639382512443203905351327360292686312472308908706208889311456835636218089199987224866635663864237802233169235963641996618736973181472283901868674842248077804773442254572011889521136028162464075770978999723934892180758010457315832530856332423059057585248483663627172052188083042700992882950023946672563065529327317549065819772010143928784287567275447760877422212339723774292437060171498311593971559695926053464706324007239783541204613222964831791779347365681579342137743314419859188620240688746828468202563762869201619302655025920952345787696974370642075123610807673073106209655548390816554078028050640776463982456511049671961748819760734197791012419147772305800112939825336762375971159674064590467685872105271705939086737050066283689287668247823001892151856441023160610323684407840760895994740531351306883699230795276659625716661058827665616257172258029675691799296396565444810731346375896749381130005555510628880309012162625026919482230632698317474932482166173930977915740205603750580536298152980124562336800492878056719066561680534467134396517570378215024725476300282734202853252403762530929230044573615058101156902334592904541375801088761150909365818953600270657781284939558429080629677889241274989374397553419915442268071199261682257585783738823160206205506511603660442549094014352417577380469955580152297990579156347123323540876893110267449587915577626700573363904458006483023331649938614138703890380730328640033530714077226351498913253056068581345646080297190479613262959803501528834237401272381114016935202166680999008038643129073774194778926196124740565638285013752785614699596970630619349187420640185476264009254095056415451748205092745879980515340466610580350820739601034039196299422208290796276460847774375033353703474184472383619049284629381261394126699425112066166206693591533784451280637200401711134937162581009763767444281296594910608368793904397350282272787139798575148020354268934195369863955915568828102230418214994887068197000691501932654008149111196580026864592740628597094119921198444123524277475911900158332274923424423983876398661454317573984101778962076020341325703042261093405490760016322669612674844768918079398488689348183045805920032818042951477425350286298015797298005100525542440547778207359099079041807972305713706149517363346782195430759399438653270973081036040273607608635474028128487989447766105644197293825823166047626146596546496737531577214305839127420777539816799723522711510198106210996820541962017173464691737164796414629558243306946194135005321638941932367044837670349046521906761277223109352963344376450175769043407781753322846616257338007164149027485696289064427304485038631445868360965628236762264298410852289449820578040790826682217804143084481330304132777625812933223026149670625950478646198339316734172199149169439906104472485168221522662086877201490626992190912782382962271349616091912414631603598453701468451307241825952966550267200648487248686363742648969369757157254759670143334356594822084343467800827112617433652171196470626113232607454976146887253091775612616456081167513136301837976713217017841220295078209485929578169740614959257374003476294221677451471042923838306305048231805069857381695064527017871052106014799642549189428226108064241418163599648671484196269277828072219597196722881837050679401861341399738691400491310723336143046379752643431034158729501508868289159806603152933950383134368659058283796076782708755363837579534859701148143458747846994619123908595099881561053301553232517241526995092717885536386258493973511320225602407738144831648606294045818609391364882174316487663175993405766533941197772806414223895848133322950809951032187603804831940416171972211699889215765455963164044432652651844291215928795709296345456466965156825850562751644533997365863907080823009594587563413489714306424846742502310809825416608535745790795845086938354957110352335496617088058733139789419762107128609461031406902308717758238546317542884615116407448933596792086124433078015232066204155412313907174816019608877109062482291042540695074265794076384204918854644170937770831943375939464442518792897541825771736565207973441292253848438497179232228531752562491851399035012539300381212779238140472706918458013913553615431504622622903947462074159087489591830090551146996628376391638525047946098460143445072987961966559566202989240721671408790499768626410114337171847551909750534154753583863048470391507446679119973647186009640484023487152284697535839155791507897794415012263385727856537126157850123985984106225377762004286262731164116207715448814939556289789044174319120824696591014220358207124966955288981067090611490412536565791644948623654407685093711127279498104413116528697021589873347691429846400924795247665119922064271065490920341946880468811895158896932568293380433948871115861702617499970453669442126491386070350491742385971829447065076733330288334645383717824943960937517614054524780873206948490469492968286231377292172258934630691762426026773775940872916623234579234048697853532375844234417318156742270995631100573889771307938772386442036203731177908265072074775017595531831456850507821493188217471168548622344841104119524392857184499681123717492977056933173519785797547763059027054287747206250885920522153678385168697181270195821916502903644456667475731479022173721803828628761981891182125184128103604311611576110250027264314517462198342256740328795475445169125391692568609572790910546550994862634952665274249882424119849694615493208006855944894483748280060025178600775849557201709362001739037286992102782132746101343339388158724079946567109325200542786390683432892884419489502057965970474176341818778915870379941234057724423216390400726166820391429592366920946222754053205255853572627933818646117886645979067344525876211414980954456844721191930295733648318043936525781778411948536055171677082465338526169575838322844771208299927941143051450859019115606519743745931225533865829919706820918287104280070510833286537162685212188147441538052964084904260829162163175558495442537660936766156859709882367240943000963800157303105636885200892320801680381148664876912325244747146463909943650802590140510640264107481742688978467440771610865973819506916747578995515172419822295399863041958864407379947414771491674504444903450645590303436414120362346116932893412445329562924372499552474498497954701572572307450492728940469812406935575819108349969505308307313252910154512656220970417708821837825930079680762601640016356686123861769954770824554960816919468559385697192998538754994352353961442006273438208481580845422929099379879484037371899834861296420887914753704578455533265639096271133556965697455374305195231061752581008847660575223753518303694406730311397412550956434889376356262714148312046185771856251575320554370171164517571002548781596280201651987652544302269913585860860828423152846891449815095499860950187891458064510518972645078303581412000325893601919434583213016570123359583118099652914168574795409151223699449993937998421319175114727890724054008803701536548782302129804299180532036711018405096184748368298992012662228694508829149540770217298982414476138724853948908571780617140939159117120480317841462827720611005881466629047133859741077359521212818358363854055396117996421805365871748694238244069201928259921656089774010220531754191311139371051158175293037214943230360682199817905592473912580795331037405560659979180787526615126297793964207845185117532903208297000266201201154116861562977106243725194819625541243777258918827288370735198820489305631798387093110599854620817838683787460350520910388079155519529012831451856574142798687299368410237360871063609694689631195649957501624253885394651337480404838805767746785730345238908766043933760637483409223590357396076420319382298673885866976367929060852365963446178399254504156595153698597828739304761483396540647085474990327392321610466190927694891785019326980471050926497248395934198739477949713143465174573662091725167553362233473157950367165491009305063788287214193504250201684580039673128980242725649907652957029506836864224208093541287202975494320427383442335406892748160949665262801794572551374357615210699266011334549960890975012598240635132156076809992702282660244503175450527093748837352680376263605978192502803430349971257644550560583099799405011608424326648097856928159951174026074325205649213107785671584541805980606875772282903828698572843002716957081575155865005604639759848524618402463331906030401914475013908682053196440749555745180520156034218279392737158564404214967215242563642078010954180054979047465451864517236378872255740040009470114856767091149152676790500940091238412866167880155379857333519840206895999196295821060104265869716148459927676600331877667309081127880327717247762585498781953810898683007962266407006475620938557354159988927346233020281939877233755087338945752548058806872218616167048644048139002375261230018908415174473652214519199678007078866761517012419756794360863865935377886794902607104833694216120706729877037380024851758102309663597214328227050501761262674064006012033127692647444702438548263644074141025830114323626166098273832802317014651084801517267997162201455824807144107959358383408992581791705818709510152267547462922713637180779385408571364185206495081070679512610389720013568978384094965415936099950147652818215524774833527243278746304996638678566118852952686780932592827677331580906736116288695397905039068536543996892288560322885114987562323889794149526447897560172860341989146252092308359935906920339992830745516451368865379635025549686816198392638691755975175553428052437319337659194168712898865911125612136774757154285711823034964920018042817371774793790307106485202199468834351015952873445032377383317310619319289378326073915857586907642492009516244236445092005606454633864673478339080781017030411431276715790074838135156009815497909973328235613068566405136076209340353492133538142221696201085357695284826611585728415493476345863953910179088378934786046895918969849194034317941696606012311720978797748150548824458081387540489389829824230214023354999568868017288733502467648255041060303980585442789535874395773201668564929927003314540496194970853027561407474609420261427045203716227106411339364554145391342081042570466520637261705229419857008860881418589626753290352612848612919165600969553454362627780194456710541951017295753922757587846457773124663662213823273605336797112765445499557944743571212361815470357688773508860027445854258510733379019483246657957316392155378116415529277342972900079625981791866015541661696045577693125820964290780338392553200195555469595592269582346000841867137028447679851774755050398385674607067126367918445662020992015548446741931687628979755493298288291288772123936818589526503715791394271440152595555467987244333719775505269401101143390258091112618849257328411217691783403706645499070809442065585195165892977923216403212762872059611996593292151916440841947698854902331840313560630092832374157615692565224148048519655224388080057697036697952546497626035049267854078939416558938708497396734713913768357647020017790837187223587940339986066685842771321532846245168676798662616413185111130712358718812862115254812919119904398446244883372262914078538349836550519755254792957053786998696020217356995644731606515009292289381549707955499589905450716661880309680031890677183626601507174722287957071239018379449281683226470061930826720759610675345324970899981726850475052393060916398514636441488913906862382601091389167120549663791622142518525339599981493036511670817388593472460177826641304135498747683550640045729943220353040648188275065983364588683096018725323554966050616883688713416601933026537638268542934146034302711908810204811163499075079173842446661647160385844103595091384247385701478901023337288156911847151924087522700500184221474223171756550219423492849240061021474839460929843721032432638977391467470248797767804188605022322870976787900226113096995500591529017840030177112719685333560558532577943932336038885583922041550159809038992513985656773546932332021833720790437994310013358415680444827798410557279279402334673997103709510176390207629171549034704910310225586710081497358810430961871357269357430332567396584972162621986141983188364538916553632452252981558399554751353551026504995419462048784009224915696449505691338842542633639208630007472461179462824464148008232890299961944361681119693629301805701260895435475819442458747288060814406093785736409805349242653969897470904462541101584495931717485703362575214194454041480288274652212694815228276629605473753490423843710482322530451589705418135618507339070987972991914387926937560069407789251743893386729617995613112342343651525819692546748424725994378408946005008441173167349982612477999177835698912237387859290077379199017179172880797534811763699707758866218429446117365933567005518966144222409324906176717755080471487642538760333826450452146358594298355972159098389467390825666686420767983658696801898821725155206165783439207434732748307549879328441379764177236180954709455947008983026208683912558704541715539651466142026508228255383368537122624400024274042261907705068451220192021295136636433655545982158065531823431565304417940433758717558198873699550567421121026726762896402907178724704682618499902239765406204185489293377533729508512296715571254397393851455906035542756129817001814461041298922678412562950337159540300084599370737071569042695009233638368665235582623437530215595470185904381897929446170517634439724089854099365761086511216501459164418425968432051637181290987658363473593299429102817048867595024478738150254954874088876339556542980303093284831900169563189894276488065684829305014595295825378258917245473982280124657459912513475093222528573465884284480364582371804191969325297411317202433750335324364506490110176699391309080929705905886325051452746476755613201795986558280192233389844840336767733781714889600357462861275172359318147714656025025390857961704697288242497998413401011654034312870105626449165337219472840856276884124950406357060482728090396176373845337279788317721609234244189728850881775058668582058538462346231560311883778314702943847015013408716974388665897885657667753414489445506110465593320105154472498931805438251891822006526358882030409544769193708557596190591572725273107090031586639865814874235762979726966575960907264984170318576361565688694727990888166713338654290548323731957871652286314084264497985075929494916161107750361764189002511076242275193692665095060575013514547906702935387487599876598197668064105272833499590247119838697081595298739823455260701921381444227374850777740901830300491247963650790606194325746221881091985727469233030776880389944472727186279182389401241619374803290642081025297638338222293383602470256107237480532584597384494287466531023426493398304929609425569831620648386657355979041374361148380318286212902233713295851523056310221831321035530237925536283088710710717533099243573643194502571922881931747196123397621893482926580596410946941554827288144374511048334431439913228887027256653426741059150274985326141752371120632793354601237927853483489569736244133155019414804469545857438226349848178341383077405166764235402429114758212988138719622201866668200202591967776697325972601292669192179822636366470047248491820680036554499160853269462191466458455600054995212315805919522275309365453220641275541447402658102486234348252224196480900185013753818219184802852524646551297422437469878408431002512733269432338629890633814918409596848270647812354806450534621385190727672930513828623429350698557249102613350490284634418320432952781525494993729441696552712449769807632482741079949511719061711190148449887915325895887103639345098339627230593826631736840883956078558060098213626302000317663258861211813349866902203309542712226221237411138454546090680114432966002345576847278181610786985667850700390335234203017003398793039859854820147939728179143908765465349886077399465742689753573463675330602388469238678094054319899014966179375550688657838668110407612520772589285893988122364010299378716016495279585987871359490910468621569867338895882432053343363346609059888809689983448378387909152897555114927311706389404205421368392918002539902606135974350023149528384166748288711298744107324982314060921793644510965728462045598321976674150163876549282275737131536162371687979053298795038246972539932704395035165122050846414980977381567446009266102275754886204376708504857245403826094253293575552315596970339470664358200786822037151503844779437220510832093010017799021567880002453849617724037656851745139304982424878482000460089444942433441068707139034313423610120451725378338474032833801105447687038586482520661841435483414953401076625174772258321879896372278600604908421861109934201000911159899988667420726897870011397071507704148562954678476761452832946421169974102177136676188990649745935222611509106612806441836422685062927914829083599806893875471012298454170835146598714687676404332336720462273363796479350004269096059423553313043855573787011587334072316198626567992537557191075734786127181694387184324729306074932095708211644835923881957434100337918803606537043617902644536648681926761137377565402218655373961069688707261159248879315716023205218010051220574003937448762473721976675771823022024801523043749240383786009750500928698590343793187297574690041393044698024107304080048320655094938969213341121278715256880872418000734785727512576550355164126745573631848186187862234561255913201142815653215108954346747380831425065278936543134634641284347798507469086973686759842692855397584378691975069952496787206486061712589212604787530222386666187755427387130225001272813392454873193445564459458376859590526624980237042384360355496846529919435810394573717132885761980074292924096139706866735490364845467693809989895551684044257552814264558541910728868285324274048415176961527632564102779311853947487765598601209463664312279926432074376496343757641263397764870303689560121171700382145377989403936883008359181071319673773843712572709913914926483573447418666427015272284866643149593231440743831548635082788335416227623301759336443655805189369291457433042205379845458857501416568965574239488321753480985848783250622210826132691222943980315195227376493727939139585832413839718216616860435440660736467977719721247512231583488822357499130353079400596579403570007700249066170849145308425043040753718534079412627592632072627699510476293327720077078298380585952607008739354830579374175325971591858694998901816581835203799187018278511916809271219000847714206643722840978760747559168884034111611696591155625069533714921443086660151774337566052511986860190372138945939905965294355598891188673695362787824891820597282029794869737715960051199961124776833283038368615810717114729213498625937087308752330608973410661449181590886520680869768440910397110826581402723024507088786154015517401787325645863952743012907093517759084419002693376365608901278247264486798022742089471062113419651920162499941769675351955266438166637722629568012285505098790655919866555479033350136191305434282760703648879855401047583972966700662990152746534340274246903000000489141979898671320157069899116691069286982320643084292665492490756720361381939144822445926268563858581444985991090924334150247422015200875845618819411693944539394118264014294581881187010912937289890331301221773270700464666273553719298180657527359922042232675140438191527362772658458527578350910617584245598667754085241001475557074700094916627242651203250011818774423910478773252192292944614199768787755874969339059226859300306887636172705891394515234162857874569895106413648646980775711258925087458524018934720799916871355018505488990411585293858200913830662225266927793245384729441931446839779154395748091457134025474340788985437182153807390602122188657081475393385987548012230718414031610989751076568026738470465312577105660471190557949783882534855669330575789989504270805572146037198869557706299788975737352175184757390103076779836409524582850730328721218658355585068113414994116791168452171232908786463642496975998831652885647150383751510678242129280552624749476452535973476806334986190420807000782701180803191262707428221491439156280614627672229419238602235390841387270118267175611790265689474973135086465861981678997673370098034709077208786779525825421985064126423480281615151181265060065451926056436900917390958028228568461674079283116663458205006903168870908708596113544102080932063565163282474441779968072819831562242046059113083520409691527720713424112572247328842558400168456984252074213754379080907461208820745331721725132134625535452171385169242526544272711924131149899899918420867306551263406040614970057244466475462006729552848141567407814339201437612515014269232784940294165389387414067604458936760929324075029921249455587847857301920981033448360699305344096432891266898637080465753566857705406796193132483687825764434545901445631498219485411411164550151602565249981872387597223477065764511963087657304767303795054906813495622004298910722575722013700518373016253376618525926606966933651546526117658718226122064618519665930903476482372054991573503616896108975293221701919772930328430848466255296655853549586000140987880896762229269717979651910056406692402636713357569593989202408377884114356690799607446580894628297602323036318785115579571398873462506141769162699749655744470069317948534383733714447974618908261856719461000717740072897900029490956140402243880390356029958028330799088488020811887641110171225936654054637686420307439610091092939691179041413291328709605971791357292837544235171842755208285169893102228364685516536210245646080648060526784541283485585009141771140299415757759687011838010180277669318753027460227593399961079193729047591667961148214804326460140546201427381803040922614059461422429343368988433937782787701005525089833916466161920817467396975534222243496932108096811949537842085234873366853735563943202133187564726439836553808137847207813821693512051927198660937255379580173996207648505722678090810908798870790887107387569663911677630418366456091306361500457476060017253742356771864469294249758435105475217121745641486566324039516076571774485672081636151511461794689151070758923304034486132252537541830241512032754359477695961028919509772809990256768619820015301439031801404308440381858332931354456588542304002533691842921818174598216143879395628770210511550535618398314618599925544847423332743942289461920876773405970817984714696047437733192848871168370095566152394955384544155736225541440398132532568603181426743241418865803607831268905750947824786162396675926033669408418053316014497260057001720865989244174927462093584385329487496393205431880877827738677560396627838311418288886670821213622140987581327704677988517176487902796531457608131673517024932558055296354424786507394868815452201389493587287536969883695239576313075162044989056215190167523123250432025367363906588784825121789683543022689695468657996073306312550198712506590900305231736458745696281890623873883633722074363387150681960892755226926384270979884259795465417291348963869878208778445674134256932686306578525770527488808757809196342291514278495517941944089447262265432285579933813258957399234266260260664565736065382706809307489078543031850250523783035645649554455022674525473712988694489255659518156384077960027126713083880344958160651972507454341843439807950967567888334515046963116886195042796448845411798490197033743642670039761538579578774194258094695543992308241886567202061141764860155062407598415400617363350160863023183530066848798848811848910385099068394686526072008128707254303726503657809691816034222727368545835075549474388646789403798258044673140150157186545371217438598645813396258125633774182857369861560613245044367102113832146991176083207236940568248346526794471863367641535400138779703051277524221539442584084892125166003266316040995141915657894819061492432128463282762533679363240652043136416037266421926131408386201865000899319429935023172221991507527638599427030568145424447737976796470980796049876823998705514734108517729336731345336575169744718795041520269883216843027107007451905580879520844343823610905937396266477861777680647857184559702292993298757338036560263206311405558111583933655251394659447274755962728476207385113940954171701485549311275233887076420408597161472616466196632073695905298073862679541508548322614498274040137761536588130606794151692862113323479408848367161675889785666898922170664139524352076916143370845490496175606495841591314215809475121637375713100212046223646352971443071214718624524716908844043024689064038115755329989245027956840495079217347649557912715069891175500423699252670701157985034823142726534947005855099946113705539709947170396684945304086726483452445248198967417109023076261865837773263173543883200619421655231543173752400394897082184710608273070154446422464063534774769417352206001015221712147380027952954304053868492671602579820348762590148530612080291942711667620177512822705218312004717437877021166850216953811265334220733871652189123120006221308370409244891210024660541722842537344422082772011741496475831868163316882645912649047181614599310106919501683085991341397405797796183747979449158395113044462372187150021897047613069200795303006334352559584579169091883747833337355179556631900794843069155835486173700507793053898527162223947734663522532398616355424254149575121581448915413868000256915550632847153739823944547579544414101176716049171849129316663210728177346746002292597329555109271428766770639090912198637793973196908254483603826239372681305680812528738043534560052321835688826738820412301267176862151152125319857684568945823513411363349279498738855880765856583667060900517375600187793050681333778634333336904635101192875441348503832054485172426662751281821618537175983846352799284916206617799000376137281684294913073229977610899035592017804201549724440413752953806556329142437379363460887456946959219276711085016631783631491729616171201473839377493140637423686733577582877327752820398841230889682117364952955386076538585127315281171227483230074510825941683312720302460510537397355274595917200072656895864716343160628006328524537661255925874895983833832627625151585545523085612319926058756624648154814770200334709753973085162597705090962170588306906088399015595947634759365431250272792362507787166728694987615900197788447458350217658076163836059790308357112824529742409501121313437449129748030074170882319121621862883489796160672784946180921251423600133166732846106086949578769136266447470320692075398108740191311887498636606034807095334729957797392628633563481979994765778341786860223719578344510544326171504524496530371804270968543612675383816622047445660326072553133297608779665523775004249712225419642694512682915180688013592018247202996361542614304086761908877614097963883954855719838764191702754978566143910383478142629030123522189466541417480289508223422115845990832763819902431088539981839939153998015196828624571689433408086654248278296267578685518032323450813019526741811385601096146077252349831702662232015882864111436380062144454933856549098683114950663359851605046291642526356307232629361387099689611387320613801510662520978160307199798584030311899496054912560365700063295267567883432169090710878511360223948614360315619653940851238272146262593849359061616080553361052344418355726566987636240283241471277833986307849089288590893905445755990074743132877348603612322232545684311183773516401358704400161188169820910732780412359713520260287259226051250763145503741178135237332404339349434649753568745254730582272990055415277599030286284824404953612615771805809583986728575450763819370534432121552110736254416167395582184500807411121265836156923966266646124993667198888733991427883093744320981777432290735399545984696637214358612074738082825059921116591559361962680136235916927703594862946340094193088067720551690267005846095635519569375783021915449224954835219305331874750584193004515767268055522869353957876169206056010998542515730064987568094565705090450565913782579511425418659303512669476811401793628137328614406323526648596618301766299489469101799824292594125522744316648914669483171672332064079528639404585286572414751479901536031926210831780936992568545742022984236454122895825040699085171945366695251192839769399656364692889886276082920764131998006514435206637994743780146833214062298758092883587333350120290461540087336143774532856080840279434320237033925518037019788091895493766323853905290279793730546127803414857702156106201523835414504446963027020956690984027137792856137060728175975348906770968590322987227762021190338640205596899552493438321829526912267082689299230475024049366232159880000259047800436211731953618280553563868896286551799950224918217792400567926559719838979225282959351223729468072802087882127760299546596593843712929808219170767766917586434014177450511509048553219293434610719221801067644867955564753175808765914797521993308959315602008628629430467250393701942167715558091995043373669339295682435682839029506041823083318455921512132544702181756578744671410056838867288199985860674521378032088089019098105915110173694320827116030029736591398775877705838084698950509874904774527879073187109148872286795260790887972951086704424172662722689561395246566533267310518866762658834548910412206085851424307998704092904700869207279918924573227853928857747870861653567591696463573133067293578978941073310593944269457328543302855730075121472586790483173858366645809283405674072112055589188090899765848935512559252075000708260096921061109020698479044103021906534617266801124871692153454538994613452795790907301716359402105743352103666313556837831085279384791195564640247821160281137856172605511446348919585913539515389102133354748739774047542411601563965157061883901604754952475787749153633581796830994260227132206251022596405849138579359972333881440086091649003760378058098603543892625460985904770302567440179589435112500538856895691745440430918982700331709235901807647265317816402365535919241049252005743194905131802453035601803894920811627078851354306443614766117894221351072203837764376930697504517492010932361394442234889377962478645224386297055272430566508132662314916955955482338621229072359026691917798394380683486338651234940306470709965171695669926855232475769341473087492646328503653464368716740895375512365056165177490074965885882797907648204582204929085606494175370456168871728900220740963557030696872091766657772455471034485538876273381553574305682691299301494944028490799942675999427019294141384178655274355198212860302532451195178041695248082609399126956577375973885948739666448007284997846126020734134643018278355679450669173743354590663309663780249484259355118152195862486410658474990906294073183099610931736123235279365757169351412919304548566182782477837475274383113006069078722386477760812477307194996735001166808131539343573874887646996697065004580263067165391891415013096506624395171717551405803384583234251033963918829773849608633220914761931559916878521080493641470595126084731134075276638755856082138502001690174718464439061640531480888981821021723500146514302042561478492033089610688214965361098376640123163757817834234073066153182032602669285734825864999649152613705590341735869553434938843412234653718361544299051373052485511700081921952607251058234691712295819916670565758312173800208581918980498916753972830903918457090974432107971739847350038061745988651176255836652387105597022837933282455737554882711504993401160912269729384889763229360033135632556349081171812774826060578231023945438619741071036921340141613543231163442395785142622062229055024778292081724484024965667971276473735481780963036094528105774789895992395038423788075783242680329661037971781366942842440458340510490675418107080068953710750341614973417685192112746309460649189929271905707690959051661073010808166152565270083918795966533881162614694325332496836247345347272030663126643545481552221288198930100316671283697028230840911723337916375618567811071895173161206953794016719411243486275619933143958567472719221842143292740410703903010658452658773846545474000206666647945131759021182179523222106448664687839059038146634273569708762864507144396878451063040440229290019839012504631934906462726029624586480823426585295114557004581065772811148791031343645754624314304911950615657478864971424741937649224659864322085155846724596508735237701144794752980659644723432121825048176217735012403419685377249594035613590455086222317046618855778652529274331955432160281097396873657346328323097086912325941177059485698949852345769765593719247934935887500665992812805491712612900070331699473376496078800277980914142951373527993158036648438159212023230799716398743801358698585766749173062338318695718823975480646428673840989704275356998390779762159592978334323948120043137202800893140800414049528877281540850672311694686400899210168004462912150758069996370185345987875167385432643911309573733307825673775526050871183616829666364879763458825191155644244318456677634981406667224794667135699322885213515241352084618899801457377384809527364818191238243690564180961624063890491788160799643964885955454375369009010404750093503754905610854057809726501682409340468919300654621341576312180195625254054649572639962319199974788339393998134843278471607193557881399190373426419294273042758587317360690786029545188979234670606637586480975385340725349000506081396274797663721724521363970161524622307944556042425117292597855033446227179775788162681686362881772684448593407046797408948946413621814482222212374825297786982663244235578405067531787644450807916647530220021151610078263756450027107792250508604419953039075401111437353999839561608806269048430511281432031113453530915650798046400041351695688215455938373622586454273298653174311637748740105340380130447449747497490314880289697349120549374139086234150066359651294933769509039383017436663307835698790084732164349556279142329202334133693514486111523175557697055138215997093669191603085432500813604964629362729005553226832164551415787089130547073396253921583833205534626864694469695246591496422001918380348728625878678653846090633139149108028754822846187051685762839914313376495245603184906232019092156419022328442818451738181894512862427086519607705855188941320675905479458717672739107378753973149413725730798496486028717506417897879914696328151092947646116308442055685547141435694895152853464864669618396249494576798663839979428797211434527128698642085961414308117683901734523730724758332976956023611145330160578700538995013991117041934542179136130306382165818738788762288089946333849734511206871800102783157434473416191999580809241927666935022839873740543877246279694315517352125929696149043815124555295926287440027911695363858205253572952186932061841787724811899210455749651011109332720639120226113983959954115462682770410305316087662015263076735825400602880562722164181081509842047795959280542543566215646825542632745560942832925075366746771418005254573795559682616511884529879434606984283252992580768631143411955565117324498331553799091529975404148930269391762284890061790003722035218066245941737154340707758626053785868569916860857108585534591702850027503551999201843334509329068146803677695719678737142047585808270080941806276270244400531958692789070466330355192204332522131419988620213308997145778298877988626068489198224016263538580703723388261154936234159526046464594976491024709556330952197535262391228573857114754456566787639240390102445451375765739562852001176297590033998834659749743759779659423910880006590790501438606997174117800080698069481111672974764183574826475744886703644665528371104789052548414910397002173053452915018829401160596552558693188152988140453793925226181326123935055435707329068178524582219673981549990607833984055064356505533663494330239230505832522616367186861632196749415445299047085147481356313605366175574485829944855478739335621625795336446906976083742119249293502696699761398010711489159680124748098735083427296688814524676043384463934917036128492943471129850190488838058921005228263161709809860029591033498189569429762169578228303412394578346580599566075874968722073591684916859118985266515578501513947618278446083892890947571206714060237602284838728781533346255718451322789376509699076449866343331890126338727761728425398509630888991965415778357867121552343317566888743639428687911617398427262365334784394017146211632629280585101423916117648311884123394643954346804641200232491909978661617582114845628957280389849399747723700113427068014331988724626595153117850612999745748569989869156605334126989623187905630845089553910093069532168144409870039083657346766088807530328918452726197840745860831120676776533866783806442297036282268792974699459568283721877930496969657900197862567188727370046575652471792970463858363004776438739776105019891944078409648450890861218158874911530102955505220306462255182245643894642203172799504155019838772056478480281772468839353801224274982545111583956764074726822897524226021033115418562435729827840629761231299425356990492658391206303116031964806564215489654405861289336761161482983501687020298908503942002853356472679206304653987162347458857260070180933837168471757696304836162507117094160490574133869730379796050272834427112222490333982703484731541208707784344287688586226925706352881142826194135757031779460351723499007652383349247201865143775778133083671550960439142866580936155547100290115156629435219307048153234828116925824967569401676301900132393117054254422309440401198620617053971125053453863960331506800522608200546623901501993831528556743369706863040489616750057322563587077740938999902217378226711803984832276147693797335024729435467840550589015931999615747804847775202495571209907032514167143471885902101093497375494706159034866323682437840805308401650883575746158966146020799210698471620314604032965333444091683505265577757302201705141452061304207482873157194540534275805639919044354729729995237281299575322985819675976870148371786638497473163046327479547970732944803957122201206102270294028643441852293994787667769475480191333583395047636201190380276885279203194467166308684839711759803662298830390507107808041803914354356433585794516537601985937359884450275090055743533142942995037689283704383976931371654610580053605204397162949099294939234024480801670901783373947817395005256547376440864938446580327683245818264226866340895750043519032096217935744678046395646396593513068832200013629655013783520568850556252209478782108091685255532647193803424991370759841478671477850855337831755837513440239722518413359983088463841919808857398872967834077475683374746516316002204773706544256355171736417494376248208377072358553377958885734222525177798907404571623056649067341520873490872595004896918566917600172016810461747283087333913996552015621057505917071372589640753652011972091360783820313520563932218382010444916158978119072297174875594285176447874557763968157778701974301996435619147224589209603849318564368269551783083215884119562094355627592157394038405037847234071008603315613021297698614766352424992257843343816424628789905198174515265985630021941003728785423526835878717641312428478873796212435188042424946321708125884386692540710159319502666005652869396988003483428601803025334190303025685176108164184966732041999995702977798086635590397675684294098551433119105248572895774893183518039662862996253238868762564850537621259148598011249526595516437040730734240209917534030279128985950753328232777466693239375935996004137809009349441542842278836929132210639850334822345510293138948440615398480857501160800927411189947332016099733831592363535041151528480748941536162997356457625330288000356396084458709055007269760689624692023070754091384459034643406879313069250746835428597971751257190885081648402790963192469931925573511560320428849782412265443690479970537372186709653058369861367541600464887110561413865161223710162668369256496650810642936612544285844447654165584736201379458905725577021822626095915558003343470186454196853050676390632736579063205119059953944100088688721590338966367902223311930827484421382205244857309382524572258821014561167404326979437314026615889010624708833168122905101960957899716419289472282521957240809759167889132841673060845872141067773370517949748883362154590055479497946526624767409722229691803418618452531555197365398604281799457212874672642068144254462857557680529678293147700053571983094975468045270566856583048248575750470449629825415317062370253639608640134979833642026775163029298258341085436123484249523060195582200793331860099438415685540659508897349758192363808383746815986235941697843721714302253125598661746550187228083055259368686214535054923905638385028750166626057098366397470806972852742890261474226798596436948805507633898240813726807778419759794864826583728691766237824323805866227954788043483039456438841730065518968807259044318826389322030864512304613888943125052358683303421157811622935088758056050659226515349335021659669609320075969966209871156936196288625151170035164463265418048690421713540781019777126450017290695516607645644807320030459240306656494568708991849460133912409867087438463015656959975157231850714802645532028832926453853156273834740553061061844299842932178528745603865816998260914355812307435727916810692018967644321896313758430949553709990716543130814756717746920667456724226742727185575185436709230047569880197500577416554994236702538078952216266180141313469805371608547057366834126006734858772709841630882939078721102312257303840684819265162823589701131353834640870134889021552918036057689446113703897168105717426642484686703765200706487688635430831744632860811452810531067418547172864017901734912948241574553232584038824643428107826883501914809717505871905988742368460203780259855813085735246626273859157799316015722846238119307490192013051014370211066901563695446647565693323032693009070835433159463748824389659152423831982590208450126897573061104530860333164932595862432259206924925698338084134649993441936025050453338280893005698096339713844190038555991093025644699170171932341478662946246531338695100215656361511257155368045606251966987618452925735244049363680580496758121075129486476450149431456457283323528471743310901512186886036131722460649759217451430646665613240755904408836587375969456108134430024208782192393832717708532091575245425292174425198052872100878473562542457282923405405871060037523820427226744475011018902523653101733988636052705415285145787183252215954934902371632467164930753833816269980993537775468800585260123088516670154297287890685890623223661350586037132863770307611218011986531187354250610376749480277021843939595771432430855063190447946383700451850686134110278925528457908544949068952801968396755397475605345219350258091683933802610050131014779145672292680911514926661961372216234091320107883785505765787413710662298709748428979218237318944410229180299200022332012928882655187422328732592795543702031862112425681160514212733526087996132147637760286776734618073803872855630936198508499475416332129917012903359432914456774944679086536110094753980504589308254867591009898038089421714001956568087085203550836717178208017067284673455900686583130157723052161693994097965074462184403674080951045077953666843228409521667576084141820308400575759023337908126365662540683714509110032600395125849779789036204777892510546902973692567153787056557084848588816490159821796791256404068016633417241303388263378616421960495441246613536627201367644651654626968112465498864109809055755852668776925964113694838031731604107716977534601778240667611659405251961678646032680230616091350708110298858183210139810116791261030464129122082888578987433952383311622229666619552829730236848020693256867911153858811011878290891343336707683993061674940734251351047047797356377223383815779855467964634540884245756051362342111421145065046827946844759561727006875581120480482979763785193437976557054645480396163150464203830063685673461744525888744745959543169239845579871261361475288884397810971271047462929502105756370568722304036547576556912606012782473846736515720617035380893905242517796317110946894229251243627234733518904028714023805756276866864002420970436082744090146805091266997819046342578341593092911288203572338173293547743564389658039156511738093149770393528179828895448704172854229734581302866614642219145971071298686566015787727659469936579619214524817518946489178057115273343203723103773737869033334749118887779277565159547015426654382829399239240013751937108955350881270314565320320606687060638432381475491940390482846126796801328681084621674706503374605860572606729710136845562396022013823826070834530455791792901571350444207862837760513613032433188549573090013608973116128863948409257638732445075118680230469316677150150846298238463425562332974020117520106498211147173758221101989367381817563330077612951405696656914422659415987818739302936597139932350689996623951966777073900430747562021348881771087941627856727787344656233115213529527204747865541267985113947873243001837355369226527459774431797954114224364189165084665264804688289648498516279901795149261674775375889228983256258397313728919281256033833759976435710033934981975202926719562246493896817401278438475847935475244882686367470294371345709064722438433325307205543790914411200036319992799684126796009665409189160093387956732290235728910175721321367833482606421530789851591188045436042154742568954314429952199723276760251103224146083676104317509580967357151971019611519309918394075680244363947824338138471047076574484498840347169065439422029032931619689512195411449631390176624563269317105199166885463111022956147583553462138166534131549415700540092780611677184949962532507526684878539775761204598969555883202743027301944935700285870649630777491793624682775371626656219446915279604936220641070716289690753131060485663319467732033066800414483191116455107454661838072655151729211523078912210144067392380211707116341608569220466452506761288039644201172131474780104579141751541780542767334989321782769955704365913166272496863921937011757941588551796439123636583032534209708257854251030518304598714133474095637477072283227884933259511208401753686696981346109915308841009001836237763137799355259547435806927403994494531473338624714307294154748455798972162517113665189245289674685889894173224861300118643193772272849416077483490359534185857185772910367706481925970972724240002244072418089016711933558151828622150504975598719321612313497703907654306103240619155854353055607465739125019567498374312364405634125262850744356620308909322002475378721308211308463424083050315167317469702465562801281043479915000403085941886707091846096910693723105142372633126197072176290669338765154021328432933470875066400522003847150137071346686259849294216607008048955415331457348740920303452944819325458687177340652504139338987301592132807039295642015058498658829757020157053162489674224461496705881304192897265471219395575414213584762207378817005585051181001900645240240879926166537087173311742223268574611612269150177099369610637115531229437674447668742741132797097094090944164095682996672926425587518924267145651836018019071395545222710528596360365475594587766710541172781260120588366505624197079406666372503665345120963015366440109918474451540690669837218394800613474415904529710442888811158692007802728124487916752435495755978045704449950444593440936000668596183292144511311808707909939169498276464158524734628039065245596393815263600573361304203451290784263255200505507035945896595134548942390409932509677209693562473384452216920498426229329772736478804873320886387186691666980014258388873769005968317978532299296923175816710743728991890659489485676839628788058174533619303921572755585895421964004102122288984424515120227090824345042891287736356013076902846695569386338165178663901450894156984317471906985101782638620164768928570221348330803105181991740838308278684407924842228567057077784098664576721705783116167931173648685640062062599515545071481742552394282455491399176281091708556343592656017761940798131076785011449583483403512057060003034124079265620809113243317785228002483537706816873353678715307280701566394384640742964872551747244877887019273390282985451296990475577272873504766996157631361199470526465335185838586872907151522460338549583040365222291164382628010897936815963342264369704302036323265468402369095915052471452025756073240390597055699548704834502884372076235041876849428459214972042801066620502597487229244018881328523781155575900794959550121073101939569524061196070882159338122242420866571303257316452796950015224461149160947883321494854569935777030473663058405077737607692470624495377176342891218581386009441308350146629349982799516268259115741970333690870927593039903679821488664190328952814859938427908934110084073790611053670038822482885895919678407511696123732536844619225421847158191968525457341773277704962206696824624486038040058149467960268171239712760792529897860301154806693865622208240503040937218046471121291394216359245993078441011592634887837260300561421394598208238933109162130691299332765003976228951723230141792669821722996499767592550751569759567824233704259721168387052140492570259203884091438391014871347561175313038530075518088714292673167225143708145297621575408594898306830380223978837813001296155806496402328577416246810025248169404251616930091219823127065485557964614100720172296542424311472988368948753307812735269974111442090365882431391712455544221968071025029361320120263781932360786207359233264596713998821679394237534914436732766364681757181505782691137994835502663339812156781295346024520941512048559257472831469102552842291284320940460748473136191812830120995436607931193746591686129780285179709581122521259420296309059048283873459406282122496871032483491451349913030865309855600401054656951266520898100979060270420770413193953724137758982140950957785004111433593440090554059933340433874282785100350252713555042811176510244633481550338441669281722160796703141329681959657477936738822876594777224484218918307604399401742639433971932221904176666312042609070744717137428066320175885971566460826607339375480461753728461771603940470492710405568024620778707241011994731417914587467418400370697384067205510893955164725483199410184247633364751741702325188189979821088305469430983240345949981224141818145973380048230485847116660779377737551200321397104265874586667258453012921287741843999153740439026405009171605665831939140003813568499953542831505005731578242242836764309815144829509827619291535317264362207626343114747211567896411651583440727708605345379741054596636648662385933118116527975587629699895710250890840360519278381228380798608431587612530406994993131313149644876826075314247933011467067852433557759343525633978709018739105600649817998244950892433844940626509879576292633329552802128278406145781921693631318289607155875489364305906169623220153169766243512001369601279663870248905856533425962506747252586894424827297989211698283670899426635205510113815550258944975972534127468860225458673722292596682756998325585499653150753915494978621360048910172098530244682001016945246820066246376498086188239622773069083723757006590518032194901454472942547048943902587539108886066669923073791919597456654479818125873195874588611743074780934404826166566875952555746340457571821976478186971223103769809812937080439677497444889002685376945836609583373291317717417868192587015544534206882113370508976515534290830616274072220396048166679375849934383853184450413902641999459611659611502852984361386395453328995402822201719970701379934028930564465641311580859162820751625352404156321740152324263860747537566761573452032620261067484691848972732678390540373937313248596733512300467232725896939804041064547077644318064474163621619699500646131172356569796221445343242680470091621334940409366051027635153032115137085428602879057235345776912179287439624015433025307152926604318230962378814665689822994239663619374380116582246819849483035101339864978475091184443985571544963756368031292744655903974761611084041760910017131400518397255154662328881720243088854312879235217478451170945409475919344821765059069656794275794748445867879474713560524584537900941375149467569259672456042062603937143703778991336484955690554198743371286595028740913807781193110603515336979337017460872484445053981663818698817708141256282761463858702927581138206497466052390267410966600051072553127054413388859296140755410523562306926563039866486888252026746933717188063853919593308019707547862618394246663180588460001258817478720353721460494280051256318923388176461004313770030884944704247334979642075208591253588244284582727186157594704550199269772461176930827018170138845247781016056466378540946246903337270591028669157111134713230861718031382337127754205592759638273831304323052722640943418193029607285981556072277399098600069555959696400193252268994538409511996104733765880295357262152026653378570343978770806703278914335025351187524123889742869572759182831072175356206775586420983837626682983995096545651438204108532173997981392137918470185991745105367288878376382441785163285341411257002561478136033298201487498619535091719049224960437327267979009703974601360511094849713226656791545911897977338408445555911551690248254093663969323772785851189039858825551245964529186211096227132000249408066765817704850504723130765389579087765427430816105467897003985883173008300996138111538659884358210524725523221369169602017698050852551308274083438478043666920822720527973329968017931653787653608631136904022673259572790328670011289688247551811537983960677224804812655875188200015774238182626671115948097826462819315823331605438652817146365588590065325939339580093442237124663497694416722268495656402218890113041620366515373237583509439339802778725499540922421618919312905889920920481922446295287637255985592949649283986267363245958320109940631981387928871808469310882292193532200295649469374742066051182899429841412348304489755209716879117927885131478531640116911558081516960157168048872468578915587574473667264469758728087090643424568013773343777453543423924158266322409564559845649355812349402857691967098438752708267971653682847517455119214167476326414414336736527559016540054737834323608384310460596380522426134151555526110163449070222177447538042188063038549909713598424189137758507563844770357374560506931877142704361539339479834741660946655018229647555372636566883954247201279815786076940085402718562638528182140303903330500065342524173393376322884156216368221122740450882063515976113903112564708462677072361098281442617115522528190966044435536366261985845294476215435518428373489337892520199599116817918292158731280322044191439350829551484632884297977144719952468570728569934895011327030697612119295096316241249373374525182776918692434219971807583703147025174566659118071785815852337224595547371499117739770523620553488610641130989701686196897656886893753357535262476107695499556179528197474873364534032815781209729598339377403446312951101529496396785151877456951134086344368925703196944454639252986225052249900420252172548911776748186452742293296599069118327739671639823135959151748833916084716254434218692128612344169989630073108121077438543022144290287636433239504716471654748357400843918809351499355723571193274674540198820282494770202105853731515677668471734324638182436262344759778441015806227127717101042021779056136370712336723677380611743365639683314477087603640769607302647111010121300823059310395206584390620665133314092436131560318683072936357221156862316660648517498172801173890328836372683817681347358948823405135484261558216518308667240402444677658961612854674413381161176268375919317531534025146006671985986655712320767388402858732563163778620191033812955961270734554484119297891839617814310571349548228538589108708730662392364742710574516695282536452459031944145234576102592356851153122108640094067725660190392150273688896207489859388172657084841129287794731867319895919214583764923450200553118730596767956534090409848733559501321269625290415842028526335694609692072765101312406034988749993843165625461500639794668880640672926493330896194012750089816167206781361798752783748198297931346398947562340707199067581263841796189723572428410090133617263129158217758070635722746138235334178798816972488195798129359873149143855141725230775543208526765649650966477743769061819774067263314973663969647014963987824562777856842917940597092838218146664527661214267806057855062892682066330317705172709123145267586602374637041800744775108312724875354207604664341466770442939949395791220088419201546585983378725156120963331407875629410517721947621082043922509031285441054143622254267977333232215371832607030663415367003120880072534014674891891220235735902298546652262157978638343071047500335695901581848464641382210983918907309924648157452044217701565942078942839655082831995082975603540102456606102283333372733831684511621955433134279357783635438276454658897693677364709396250822314515492771791631328105547078952615031416222498715314859263423229638062568904701846015170354030929154380758734118560779610956272598751801019479160879598059831622628639651981552499054327305950155007506865502311358014689880148697569013151249809261431906328598037517122120803860237362866613323652766094870094920007791813142471233964812933255420560865195881366625009331977678780293326042482113155795698611778593432597938474439258888988647610026528659733016587412066323835459209894259571359539694860732202015626624623637810495808379027450397452241617504610699635688065839625824339548247741194483808745581851192507413343920882076340360375619964723342701888281525301458778962554127576782048473190539438545988938850222401548758181262481488866677470122167283577346287171696223872719440809585961568501624690930008424137838191503051622323020341767579134315695337726293786547272251033274500535409973629982254012086875015067919036372235713219092829775708023105819132948200250820149749263880566813611886671024847359899919632047986949471418360452901049231849939544651007260330568325538702303962415516404869465862739161106617888292161914000133161090214767855963311119198432660430032980822166928720132219012890914772320438949089308112920225805971466727537745133579541609028138874456803914005966785148686568076810405918198489157287730188895046142727147496557319147439603553909266089750727777479078657985083970871416707259708365865171722631532024943859628889164135170986994132986437398078448215824779925892794263990994199047752382920080200064584474910751708525437011687119439929965555952464564738617454664795683534600978922147200591090904428066817148443043843884241975779417154788409651007040656042934578208251265805549263431361574900861765888706875915448424790480809621343097954381265691123493131370808827776342185230891013365263365822661641635366979582766776363353062497819384934388084355392698313947258356884463123276566786963702066024643262668541445081556600624123561402903314365316278762573697281704561712999604618461035711588927459699367771581374011163023276898616535606845331288683981527992553305259962536940890905250856985692545564951743075185658019723489841256842225954553018350255093704725514219193912589663167093066942128707747271426877275541148094842465660757304777933831788062761979221276438430569309212610951818861389633926309932643728701775535024449112873145902971455276642008437740881402590790331665558933358176081500720283611196059663532355743581103550774349019908611812090287261061963262252081056913065568278847182705347605662689659903293614222364485515467782276056600671755728034506841175295346515310742667433326546931070477553018184050151187717634240477170582315035863914070946788520101354105689828677047298582041289764964433989303784730470974726789424798751242663403702716652018240974762114955239206070379173861085918031944282506873895332655840449024167374296615633055966519765066312128307673583604823359559651338366076876527225821759100027291573823405215022349794546118593344505951895602319734231965286727004200891504736978889675412262771084965728621737126729764647973439693738986165907106319834295836270868380682765063782383806097257841035164983336679026273514890470845064853177697483301533199133282975004206140050175195927284582497820359847809460240384448538064854226287921852349295416611126680231884637775016597883654743059170729662478942889681404484451020774541941687812074553038525940354722763682952512843232784439931326912503551313274661710083871615107065982754290998509044547863619775828578349285880653291306319330853813090224988594281393990193198392543953738874102461894143132768590424118235494705914206541654528588579666397443493123529571412485994789068389989824960014442608063535365941680195296244444515162267130872052943156033885279044576715936599812336623537876565930368274510973264342992105960538224281720945612715517102004240341275417754552829762141680985684544072540643480046563678270346508431420836330899836486239415133867585194765560085180710468208487533606561295948406803673202722519370624491419986960163442202618386042755500245936583861311766899799635891770902260149534389425452060907080544945898923512643741971228250963738110647999333573939547785616963203035084440127399131788790216497945031099667181640636863729869312966594510421301795864852492524332096052711543354591044516193619125406256315269112582625435224058761404320476382910956363921936825950867612153214219213138393073544065497550398382699488313981214518578011939475765659148046359288552494014353748685287314831203180880526126394455812292972087485529089968319482128555803650756259312411594496803397109669475198906671019907714779847257180491315588191764339842471679519210916186167516746747214203068821438924973803580065636336954966744607087222244557878243354900285033802126799069623528250794664583978934429236014277348159857985208679270867557420660322165224691807399933915802383861895314812612640857914036734497746819145816733363621292751255258775858920350728336768801458936962043233087659543150722440640968770860693405783692290118119448697272934367857781002249267170659200005795191106155326641951608557807964900550524035075282227428768994836017899156792737561051889050117637812243453402309961604356541035542340660009091714311644302180507312899835313048996412951294821104094572166674086647767931554560060967151442195440822122141251479951094221279646379813595715177079241094858710592408379661105345712111424071485217869831417312534488208707198572035229012658218036908243459062036892242570014476957941733714803940990874524834120176773155016980875018476127449852248243654754101374400797425158514134232908387664869688476292721012489008496131299682256371970256106859603623837781226377096173923808526196523759845163515508244379873296684182276099331192391883734212993082559728935699140043618556082830842424578346575509852340334420885755597470300064402730119311415464063766068981052148694328134384184306007523779530124206375846617704907594966992203264312796283700856558636193535800162243794861411076764357067082694623355216457372084224191492562503509007485923836418180318376756556492851971945169657665085540058627328566556841975918966022649248217939761862905522106638568840167786983386983719920633975789950967568352105901877656817926887021297710146724231170222268906616257981835434806911369816767887687750235546140355386779000812824253616586281944718790572314744170063300008436680991657124743459766024238617982970610759308898793137896214835215441671440324202096800923720802607208910420274975835314105360721820844611559692407359409827010210414932133597348656561300572010630559160119179785379622014234158899526442256559506371077094764783135432219862574290325856516639843298923847744069610165569375005030020197880249474570762908074821950182669125365635981447087584666250578101207577876556873836356596284621238682738843868487221773094242484243865270886679115268671168580513709678669402992785476933215608906357464777741237328151444634284207387846432471773939459006197474502042808959845026905067737705203184407390181937075467407885067172714510617139196568510900178049464066721871014949141655643930502966675668081660975785432315650144815228924434604999668964804927694278673755754229192842849033454617043279977797071612780937509833237262586360182471401832522654487191760365883501391070767578680814499512265854481879252575319572354575911945235028028832814751413113958137151200836499824335310714822990933800367969465850399768063399955310118486536657974401314071615771733586081091375416801639497572997200283359137500360153056942737722603875099909360301482682741005425123397842692968580017541949382584638516044070597817686815172893983987501753940288910451454416422130533454475916332071842932999850925028826523105631137520235010049907961739171210631521042162013468552517052673144509927534842603866182377962103245127787308550492240301195220266894859783038833783747820136311569936674293154180268699490858946850566426274569316861859146208825494815509290912299772068719934167794176413198294558662485813131889108906563224473077379131809695751690389894410633632916674026463982096889241210616920458833405806517781123026169665458770247978754548495404552532277508266031791289031470384157325790233322002088460787652322923347131987382228868339408531696896497197421444900018160569042583314846088412477941127465390449452921798425141204115416311029225989436256802385069800617127750403320597509839374088353091722385212063159309673179579625462247534237793820990168268043826988881754214096714918777374703439436437405499086186661482260447547594727602074759073245744638660273403519114253101856667484318761499351744526133904554809484306866442059738011461612929394800142369756907142187652874876846246646419041718624618931417373269715270356763378519339257265335188543060735906767747563004047726657230763116325156263353901765131313530795695085615031085318886095042965166981201619287742232627786799154729312698293265028399691872064254129251505574640563911645183102193200643245136789765660262663967968588283407982749143044536507281041448494577709964307745103931202638242399805475286224007802624108350536269442912701378051808091838803495948511875381421617987558958582905911671322983784000095723911602399136233242126978500346880748404372167565800410988453305050897611942086815511844862863650363933875558278882170553372821958053243318416886613857019662916946818853014622844628442993804115374037597214115177343938378604218361138004094238648860035519002066276536713407370183403303405524296620822466621640169959493321245541324993798263989015067354332234741601320967749198830974520083765402751410704596579492670339439106612196405030153218799070296178734468676820663742344713622484709796422923482801431454591056358225145503757443890857167745326348360481966299815777874031776668612158384454726800278103836627240874961748704202563442651224712018919984819546639243856302346791222402594637638895097978867921411008033087748606525101868514888196352396225365478430059038172174134349263474815410871814945402059591071500127575041825427838305517268523399015437817222417723521518478585388638294618577349668218229893337928857853948191216326850053446392683203751030509408291001021892858244584306539988679214107163059912405674564373023029268140651096001977247850895202593118066216870426984563445046109574767791761214806996299475709084902275371755073233362700813493678077576931100221744557478238771475664775214151960030787970011340829453868456317757517474900524024003221720850050872834563535279856702673147983598595538632400689186179821735259102925337101268294383557363166856926562624528526645456466492237410627618109947292491739622179845618267108550246682978293735981498170987431111264874044464637692120014261559472048206524950401590608586670309620391352239703304609469583003117157406265116698205453523716496634722490866304080517976607256523727535553376113386837717175540823171681403943624995997017045324157179398370635419147828643752488324736050256645281582402419870739820338453987046228581978752523430727163701550107925521226524830844302069588784052511948173309832521064073117251217733193757603775918770795807051068427801036917971709897265230387652336718085431293903438373043904802053230130141659864049967143016915029835001609004380188438365999179071870586830446428469018032295752155085276988123429675275500622048082336054180746081027437453454903480057171453467941860425263465549267917422784491947192157195976260390247650159276664750168099698098923283041889226528449032257309956905594241862249483072339747362173255697288137611955331899650013616842807828968438174646803241578305460370802558957430972598021052348205034302399230075479856193812611424798206856879610612232348598144452274895866204534889605177581979713706668064253513713144998801871552613871830042997958340058066315188157593696322600387723130307575017746637777512889171343290907305000944920980413817536377389237935729500571761586497208585183604887470676990184588038484299233524660067467027776048449034175567391409424269673352082717200091109249780158519636994370262383125919510785593902916202488054517394680426741841953786085859164914680361338408530061168543880099453164088234333545379180619184479984322621811614606286932944719171495799455346726405225993966960663910130187723143261840454232352689108324621452354651098099023920002788818649118087939383239484365936176016491285338841307631378984582709753841648048647929094119208759642958208538427200253371482503117529237594407722538913665596419556988202729610622343818460254550549178622670082064176627165212026739461074134460558330487213396495295493718702013013034600979440404204449530567062020985040156793161716443904817900570784760595302682252514322230485624606490484297555595958476204030858537462708635731330918699931450771503359282841020312185571655427530634563358193500617745915324786280544425117558475786618723605277424905323079806529611180930328936386294414243816678434050165611339661033488155246016050798587840116427506870526288404976482748243162695682048954928494913577223373284730288193919674498925616262945304074431387159651129468937493898372043776605689794325016015118346615736670888835232935087071413680461725893883899632086791665881132255778590483535481640681198274583302412105659647665428521812704867514669326119136811247537486490306154094361121079033572228141999517713727050959209119624306942461856323019048127113422715622149360785687480911785064912255025851353045995797888084012610890008957144349713487554856285744659940672241065737196842895614113411794679157028111973571952484210889198581084543354010213383114776979051589783126911684580966154315712182588033740934604096122756925839353269556039347675901551336976614817518796803586125001825167673123448609315299600909405140768920013915638969441248886618213788935847759233077255218183280748558070492271381932753862558243254878897209573792436790132444851966442829324338176562934407489463845231243530837026450939334441355534741381445036891482330432718494909620672005975271435945101201279585755070948532620385663217006428553486413545491520707284667042603606958049858064866126499276700192470092875138538927897263308293597017223134503389792543722312343075116036988638981546621547547417046016408147701613982364707107927804586087633357584056753992414330923007226989618761943308074776999448642180432905449686255667806556370517622234628923967862300651290596796384592914208507371750799338111624480640135549693619160133255894343126890540077508453977351627617236480640221164599790827244070972432090824497812060804186553323083070032419486751175248413531818971651167996162575503365043349512159309950825079857389524730573861719981027535259988037405832434462797197224955189563124761308336268092887702814885497452220381182668408903935623527196913636633530304631951414020172993971192198972335510908284926073275976277253265209957861650957607837841585590387642646795248641954535901917393237168513287822890231450123813515026344875624950241127715623219697418197264747584774683758928461590853027034533583217825903787108958353270030702313480929296463741347152050940924949102632084950086206760830911566981330198722203646773302476841755737765079773494568569110890714421670074088942500904392892476997711164768550031436212595814291345741385608264009496652990597180014697108686765627351695658489884365470105602678287017697229012084986767350122936419882587085023103259775346883972576711469143315332391946437544266296830468675780843898474720637874735887651750544868439754796702482935738319822432603756100499170626304668012265342689420142077287771060256872696191886258464872781898762238922498002603814542736934949933614242149392875825844078970196202897169464722426064046071283161416778216662294599582676332662590141764010001623980559866899017680069282063046356505293686979995247939491866253837539806159504958088919710004950500588582344661083608586300486253463031305195560781516550273556912828098813012387631205816484336155120677286490956469434918798714285755836011427512018764202436270346860007606820390639566573424130093336052736689357716918749835856704031514144616399611392207324075825152728948833949087991635653524568281533700604854107103043690084812568945667288299174879352923258870694146751084014070688129761874143786912385546099385906857040518595198756991868370556723963797450716371939554111468057151936470145098754186485794312543444130256928713863309373942502413013644925249093198741778572523148681202913380606434112703794927379762097314278991504233780802208468632427958347178307617169095183041548623139138553561595445135661409239115063868125309355944079446329018383627661491373217516743205167317289819400683082542221776609104410350380392306457208676041749021166767623209837719548842478231768626167807752201895321981378001100173806105840953684757538044022170205142897784043973509306642029773875309541950469190027932199932293205621400061516754056121869133613918433636170577088028278571089697099185034434293313747163560114140298349562016029178570760454488442579252306788242155173753792189152967698260060434002958057495114152863573079857883278737117240736132267603336866482578226673692014511058894313299841041365971826358679406587285862564628201079232500679050956970465368107824303361998985214943874538978376346138579233994921430096217304899421658756778962250831155395395898458375376187942063130584117424715059395001568907764976947203795227226795725821950847645259139143532527617010731726295027013571904740081921129517504040646695360471612762844768765895903840722999852698224489225193295832324712774745612062905022521338684691933250716603525312666394844357525591846283787341150136335720112423729173016333579562012516899105250467810570479159875309836704572098478848945168300459030759888569962617928667021719461973832548517665490146849063777433304832677445234681284712764789749060592028782953636259277477626718307415987605241745334359232870618414346082211541391520618616116672411057630287088457788947624528776155056328871901552586868484062707058686948502292253242042383251930059884625587490417780485786343780630807714425065424731374062177009982280470045922604403744773810130389167240254224333381266270083932394741665505517748289702117652284218390489282091967289952096783175554772984215229902417225230427674620271958185891189743954221327381502393606469067052671980801450366338462552139969455005648393892951215632869869905790298299614300905216260939023931087165724355512310528704422067754439511507907973342744257994086402516214326534379708778833634453289929010323866357789378499543612629749139169976162365836839940560435233921824906689210564465162372082521617048066665980537146857091223333579676956214579230553771630137529943429046310022127523361480548780700225897161006064872285727343905244561579527503970429866120550674970407076565266072087065834208514344171748244347362652021907729632670900962955530096685803246873401158414425594191116912927776068710667539029059650453595660645493043776280713966424678809129653410233109323668817052511505501561105226888903591448907647599922908574105367264115928694262650649205353982279345720513298921958837152018801665479385204035262120663170621316195180514879239335372662603640336188549457559269813658575857917520082647046280654527314412826603349591445963934077762667024620503708984735802030171363054967052094927734722753955321106914108558361598486988392762907655885220420581500423674328671949498280962883197721430507539802232985488124245777553422589232536980598140049470756225104855995595684792956518278801904843026209892719283523205705475665518112454006962795486916671355707817457133595626181645922242364284010778678671646195623599077751904506800939170136300371492048728979340499988332850285860776720192358670139769908581482923984314468662893890574301929132460415290459524268636668396664450288750762009655212073423959311631673571221535299074894543264227720419543754645944915405521812503819260541595449761033246514176966996242626424177742104521365863237619669543536810565502621281184731675579872775922739303834300838847165414290178826268653915554230717045930950170131663722459965707530566821107208027739512384107945195232578176766959962740871563862206526909742971164575568825269329772939292041239877812352934051295137907582132518257234208678567627271682724124256371468129710359807346903187941095485341851783073783196008747954975981545767768097982016040531118224983691207320635722452540999650920422114222534988101736670453464735130485455858215772795813653077001058671963081474207652236466639110066890022170613443021532646835855904467214845802017998108876861751915451966615309018283334196015458863338963988006184713997444969427853342468638919554324649559635675735785265700352032047851582037793756472943330583445996854250458535395631608513905599047192072694077634071341736810712011262174575146944379696536506296228754415321278853608692855357888927149912554099136085232230015150317991091201995747531866422626379514563160426436727321594370970461186503227834025012625293396821320006991315938192247305785775162103885112541257221016907119301276301935319609399205481068273713409972644372320310144949942385822181593974272716670724637351270752961287467589130902794248244672999508748264183854872558280302443347707724935232084702406894597805938525187887327450146687757341527194379466326073434754043598809361518437827589766830189225478856403749492275074025169619706075564119968527634725650576196458005057285538989903145883469656290671930746695402017345621579597717345625611900714119492897210368819704676611407997673427137405022076850193196934355584712497005514214482819815058661364877185392412496802481747238433576863038822257562628431010254493444995365986993252722027064713513593195209142822521552077775633053634181776166844406987433114879994664652562196611025944843386006002438755223297885791959466256841024789113527996248122093455074353537078504661736373907485019854917449646784012593867340845437069717641138731796560811252708269181306017691780437581448879812028702749269107009693382926145971444490092968341277889027745949016277378368561005382134055439198204540684802813094890014651102032857580624851516551485480608975822359347464544205517394790846377941247984627242781834579943340934209041820364634994557279036069983008882332759824307499782391057621502404136775954880385834201975123927124293815020326104662737231285647395074359184802141689191419778008669997138027936406140883879578709784125106197461712308092527354176555024360128601086670785381538258963528845759081684883251538095594108736701817105858286641738391732914922628336424934992410477686991106662269988827835835227905618504582393403439873119282362810158706354900690425359829610738083392751881902330020852214912440925732439022966827047388612138670272352584847669188754994526967964360867517232444920601362383274355736830888741474912878697324427186336309211463680062514446793430340997567223577555604613131148900301127376804494927188568962923027780255479247742128519743696484383626602811075619115786892379371173890397398911361992904695581113306827835362945793305080095561545845562720348291430218222190672333650590377030083306607913640135213185248745983629299601623997468659294777461596856022404043874507037886519138098168346583993708461440130259098713650370848174599096628010160872418294769833141876642530460432498982050005474536736032100846351391256658806832905792531792903042870818349902712463031099681669863373509444536844547511920665937838218601347285566094378446306026627507726262152693310347874260398032693950824974139003890488822722260968710359237210506877617289513965820347020803783235340602100415725104848880242518938001368806365200732333703193128831746882216027876675468476412156360477706878067033401490231018034504065307842422514909589512407778834700724269728021638876846173779017967941826072923074018192936264853438105023567689433334576954868317767738401988126351452458266613144296094701852403733315162659911650915842945819810161358824871293521937536911563565688333454965794820919140763386263317050975885551833635300847012185493935969452079925574899762830437592629740786267459455072620286703855672039453835086349091018092901909923431240162176626638069702008799818869681482045828797022645868661678920245197810976810880969545108872693869233498590313637924280420672453013037665870102959017066104988010730413951119518997126985643313368707871954943925121599758000425230562350023335448454469533274531392252655479243207610689563190409814508881632997531421344409514124404357837776390136991330946565151256317024706577844093630875726473440002935367581715059684538731354035737905952458724671886905569988840618708382959612989514291842097609501047936580788635246964745194373787813151141105703672491555686412466395054435234050081245633350755193892461659616984180225004271281154909717629470728073223582955276072826954195779275465971623844895488072940038210491200589193038593453422701095064423779315322795524945707154901223841582364449776466803536238455736652767946099406619997489568334399824715778475205641806195013886881472137662107048646936826548572900310679066094055709201534582694696048763186719540643482603719004638730439555399449207954519912358457119065357705854087998529663127873948598837914727541770826159190556991820496271970094605225577979282952693326866579559072307895873133747292133808071976389128130526654769333810703175226037181760582037472642788319939057058131290917629013830860486841045817234322666876125137848488812427740808260150743111415668922390842094630698735424423756614756910951798076786884418108059856098267107316515274724810674945272052325765205364455424150698741858518159236678384488927078862222403374556737003217863474953203340748269792751512405683194874359738365873309603651567784894696407634214292353071845436144329405679097287742239810354118532419735027223644875987534678499783581610801787241397042269033822236636317230176085369219384290664712210973245499449926059190789512865638835838967509030965021702234913236175560736938366654585963107243118249220145571265938859692681695242231488542889824064900304551794663385179837605081785314427208446668872848972165361712684412488397347416268492616894188306935806498153123686793357472058522235982909511443594554283506434890194422873207056880538474672258534738828774609847781309415847866499287870070654062399844264604785729185740468652071768238100701075872872769749130423605283660135902250918813542671584499920286888629799157291388941493535202466961594570073971131220190703130768511768057552881880775954151989325244172503778791192729274332944799745447205124256541295191700967129967958415328633925331143139485288729603572416546556596105091435161243168915320385450092085091936678825318114100042023225231521311384294983026269996638640864903774246720834309321393511520655704206023321572135126021883598605218652563717944613192622154103469492521724193108636253117950701230732539118180121337523047877180291239422160305703458063469024350760529333364709582513395557283558189774981114769800539606682293963221773042297163704482368104064924656393779859744999610396739914897900681409921066210782744010821743957598995601557162731900204528438965583690727441982802301005288827793601882327422719161991056348339926251033591808592391608145463740173862690850833229765101256336750416661247359265453233134668982459090459190148068096200035217341671585023940699688821896854850303316874890484908329575407414920396526280427065343899036653834544831044824151605757761182233813002093259646165545688186955893979996303201144778604386357978746453928930936285905452039552905701331028757405924997860069214796596366565367617787065753900834032180342122913978222881699690993859418062437437619604183790061825410760096840604231406699023291700381721540363331117934227233654596344960094940314973475500244323173337265748103105308705625799183297918720736091134364856840791135074331155148015998614209890572258734303659498487391739492901156998630947173308294787827137149984936317814655523125334759655740695642565308810248231559138535144606187055327326186167663774232854792279839193746423774777076207819056466767702591989058080271154694874638111731132659491792914281689924903006715385920621442564586040351064709337230480838712350613493154806587985786976554066733842384681029826874313443208103641876942510957422673346733125889636015525859615617429512422103824319877829113224600629950302886198347160937179839176420675461025748753139779904050877174995791945224802619015842851559073530263166722780203470424933431343760785316821216118422323975335099710612025307627051378058032826572568586149088004482818018068397787790200534263773526500775522147704379964091605328018033695367082620006751700626733221697682299943564853262196384079096448382151964188070340843761664506449048410518446769485035921712430351324160693982982949919543858663294911711810197106763115930607863256211110173424100968501588507803378271816221492756246171643504479186532846548650988207984496596746527258945666909540204088361530986437249407504304952874151958048044044222549161175105877235400616584452565228871081531057648516658914700019116846658259836863980586360907779794980119829299279453909492162075738462803652501007334441544541783723913282447422132619657247606374133639590613929818572121409490987323115523477573000964097239430842366559458667476746901608945688599463961549004820684082059726340142421349262134761347677140166317844614352241807321436044304440516674317884226770186608832073065509343819185107927862954808147397771904831387238436682703716318237490377175211750459570097065142271184533967778632281586661528672454300203738914162570200081673415074435681052399607863675701660330721946116665511971606734124571330350401449957597417300090198996309151593795485302279496524059386907621167280278206729335705106856567601659831392482945444729676179244277438510797700854532590496074935773382522356995939382113664253275433385044692292634772635987310567404008312826585296469103186220965332130410645305595976013433306919163050812405065590106293828602124920862366466167731467881660256309139675365996170978605862408631934428441093320075453572097655160076580684298824245983420889617146398007093774770613348850079871821206471204585773502882971006449667040224217266623906364840749058619379566805234172137255223229940648812456611101137543130091497965961258809864484008978762635235903693632603061875024544598313391117193123556968107377554588570487863075281971014595715075379960329534368566667767919686819322685634363565749962585812003171144996961059262504762951055490016835422683863711032770808175487976575905419185153795768792130391157794447726799372968968856958098387082349348866444608952625622333922714967899148846199879119252090281602479453683506383762193945173741661486190478732750653704920150404825453510761683752458398105842566433832244058965031332874907986977526464375280552961927666154987313823247994049666968715012716603485976727270584361080441319947717235554228424395196306686220537747040893327352879928924737142857823910784087846769576485851807713668107690921455319627818869230226012514565290056723017614586330964432154536707905929682044837676183605745350335986744497945428305398446948575664643068765937126959650506696475882307422337995458268138699949980929285206245600836291216271421964131029011274397081414701910782571226649920405997765509552807604417916852884324848646086770080748504965974767058291020360341856439615983063195229435482450868433088053053991400536935249968701286231669467721588116088665622352213083245217971450741057530930135273130672795330041668491069585097267469963031497337171714090479899217357099854913632869213667387797810256781077309218589279991306550720368646032478619768453283862539972661653496475182044492657855811942539790958055753179227335199112374985799347059764540993083103409687988463520938745311509430617694323955257263942534512793138760202692205342531659835933002755843246261974148059044085287803812595075082043463387329217788831199290019503775608369321108858798726038950720331992700255115043575828312072131632155411098722943197683996356561839598034641516537345043028078442292475336263370354376122913644639596306649748086246806788280874137746181987529473803796701791696469993542516619913902079048258678599195190059074570475412096524271737541879165230431376110240065346505189733407657812977810791538547167414954209587740294461125058069412836371718075935524117643404456148403958012575506046245835344436768074956857262977167109346876462322411957932246444513498021349150702398240973878366001830947162730374175835392561107781196065724812914518490995331094660001994694374473422991807531616863174737501711063059257348374088678257842771463798917023473015438398455722913909423775298992912129347982058115915601826181785991919735098648436456227627249538977917150940814429509319529331504936938067450581754063680928010643615704562961766617916095210485305886649441325404938600576703618014745770107938685746504007470679841600807567751775878088608909222906440840516765990433099755813630699581362133287089505196842759863964348319827673602114318945184263890726409588453467979203179697519121887129523744762656000982954793834645204130449681872196223603412799888098862371253700881203728545799496445167510172991187656449064219502028137332012273651713649226396823271174322193858254685538021610270099157109775047894079883926677689705326925418351839911569744473560794806309995300733472043597191017055706448631742579516160218122965536041873583879995100822768032698245251223087732077485677592728183015441707779525708559990595505029622609523427295284003715196596674471004075408650218912999071481109539693029853044479488777658004137161937171642963884826170388201894297171101314504941866862676098644244778660223591306589411509233749777725751513858631813553344990366335825960757364825017170272269003386466378882939830151077374016864706073360300201642442857796709762952542567386803037031500060157064363207472601344310024560085292504313596705000371254842183375804368300148088279458446972560585833333012481394895441632561511315159365542181803012892205809263675944891820270960863756917251666342609173130724350588960556422150352781427677376413580031843096568222624981117278392355406366679259788895075157550847111312452426280552645559935035857441056083127501035525897967926973774740016198931829727228244246721086868329181583209861326702695865019495252150958902756891390733272794916974587144089182520064284682602702348984503414244428133387908071633845976248207295184277295597543077075267485429424288349128188141043436903065468274056086254789586063368681239668932365375100776809104510422137780368063040697628389977455893182786686927657632334629561514681421663278412239229380953173260390300016417650133858404762176678538863435782791106395001730079772905197259519535230949158466314435063613296394033874187585931296031139210221048032154306118608746991594185855820703262961943600621594511196418218903940463710736825673590028745436645776840506212372790812814401976414461596922458814316758394813964592083333791107256316617801332496407983563194191424018677101406410336020536180633786333331356731796713109022224936900364490311709363037071816186986076936879848402534814857732398428469281490586530052981351657764648585597883881461327497797516182938615844320136897093456927574221380241272925860468377416931948618036719631991695963979526675645526415736051739513260697103191876255135179882331475920921254482564970555386727875273579567065672133103916907153882843277772597908951897449237168471523613614689302884789732453456300015827065705986687826323109038875484217047808115901376532959884146815900008807479992990514814273326084683675534990743291092472793784528084324938549815845773851499389290956181330785803193907202751738637401890874341000937307899982981421088966660055615444388813395356110327169736913911237203535390649940424018416696283332710687635482348152668127133003626637210098837183220124794563864860266420173377022033185483070325537732602540588721074843675630489038760350914801809386103971501479364382351366196084163972299427423088697500158409089754004328196984261377639794741294689082187635790306224005554636494342818679041284116752284989331661369193491153199621433168092537945520937315225158092340338440908258053669031144912964694360547872162311918423102504783571145830156423382243807219376770883256534371610373494566847744458919946615111007180419369513397938632766756918711375873918418523613408088472100804969622726934310224630223519340040422563876883886364941874082048486091245817086550426328715830158784112106134952135537513618053396592004033165987020462882066663185789391673691009093163263276041617254946511104955608611197122292771761019297154697458259988001650347135167599584487801122166360682586926263032252429702295093645933120324744351225982040834843256333092200588018968277505233768785098419381379685609047417950570580437359186904204241280755068096029179694331712761548113511983364160119860956904992997036273842095188444601205333620645841563033188331474892988199453741950363516324282439617927694326682800245888602000669206305363884649936969370055307388956489477072358113095147924197900370052993896581780963404235497582901499798332112958437308445601957480262722411506334914053498948951896812463244562591390167059092326264526889106294244821982080348569783829551643184736563111093046094304681108292184001026159567819774594373276154620952195797165090076766641177740893735138227454641637447091775121859676105362489346208915331391151132204754318946327436010814603320583191041626183510385964024235527799349615755346838657569515239938691803307393518011805574910250351386134027168255366693780304156694173346309324958492949103138921551022446552445246322820413518232092224565917618665428323614001312437895104482366661604205987189880070000155426657593447841356251429463226219835513729640481242077810142290540170836105958538218406931556128609093364305695362704432748673408867866419757906676302696151844899877695767190736277563902406162976865054785430632773737158985677735465750726627374608866751179662932655291501244562970562555462763498085161779441716436232125704596589947303715545212244128804342568024013102213627774898614767094541645647740272610511060945349921641864213398205437246811690309361730293035158716908770224675627426970438369584579006373223177593749130359765251444080165665458697868702508123462407189379667914569630031523429356259398047970094385083971022525258785376022094828492281103173341404510886908071764861485095327280502369467512323584465188378323782993469131655227702404368673904463547604615312363874908785968115710803646118297886466760283030977205308464764088823708070736278757734482691305764817805461428338349344388437583060958791019279294490862261910318926484049949530662450363196366190189005156557781208754078659320414435764813816602319855202881752150060731895432828481221617512311436789691590033257252089080536604982481835479952374735270610456685379547544820445638297208087315853558024852973583943358983644754248880915395897554591256094385862309445836582021640634575512376114348405355816659804668248245644812087410844023990138413612377946275525830228272054190715257012747938648058000173029319021984975540326669848965131855212333040049534740373338396634592504751615754689640268916909278467533042661445707242850047235331698088404661661430803598536459253359148980441143701019561653997462555298565660484922299013112727332241646012154037607452921067037771335578014604434911903805414888174222891462932654648922421208666571835650614954264909022485054814601018071431227185897174011291010642235272428169786982264152644307617330082257868537915464877139180133275340817500163975981508209432086117696067870894513809151445314664864578544731570360952550785679830441679485123856215475982070525175419397888191945344495971300478480005789880935400993889085432616113485318573129316405264659777826113756338523330919588921299171328405018101196134756419188099648786435344309660663823652334086816829443929500676689553902419794510776369448482705218809860270686842569631743559318309964713831504455497718723409884353224158879071863566431895956958174753676598172564924849659517188738438327472476324807258353690082770015579041014534905976300678604078492395359015495963775753022218388317682607198351660569492701689278791561877857476705590433524729806198557459102158450063611401921178874241291176716408554935425187781452462783400562232051550733219209917146935090969663013174900703383148502496192888963860656472942141913889659010556650183235826494562355282079481451597646748374952844413604974858748624990880180355745731391047224970439603906224364985486946774210760268030540481943369149816221400873815549463054755295305206500443707094690944051331570298931574593905462522954288657234222649465656034292023785151843605575483955254362100087283894916478676175546039975021678381697218199315146744318346981469824763250240046153222610780351169692790498493071475417539996951177196395000034275590405546015480105818819641724337186795738029052664383488601106179450294455311977574009237627069534524086015235616610964153334172616232583762705744280527266814639426488608061985971180137573911043406717354034695601137287359997493135193882447143658124724468635777653797219385462532414469485562728128618191346206225281729512430734148720441220309963292472919593922213149136138905084119927764378625508209933522831328373171759835523884623473884507153408325804597909133132028019980083564513481726157310665611288139181550849319308453389587900868936912659461975365836422230144994554583459159834931533015714894437487361348516160143755927692081742951662695663512073356730567640614979614772304257590221392024227137722225329360568705767166830932043918437151739980636691677010582559692394987871195987606285817248756088894959085892207129834157723055016522698947518545589720072888956666376933324668334344506806850180587286429372170250575365216443909691950579585292694435930118497174894401162831100917159046404671798867858283166900702754455268686380096478395162572469415776580880436376609497254662505833092529693307470943428039388653324535128935058992034441006185320189155767670734294672346112452281629458024774344462938433271447107429925331468924191713356993149502817686749339265599358567244208196469614224630369085443870321466688002400229344198205249131076560082886306939314245041346913315327798846519712576196852301846990530978470953642995365527468075643928526249934183277997845224615711846763124977967519861304319387367710074963307861568738707283330511751429047199050576864118382242986212730748316078394818727103186915342580573879078575310861914998570238068535684650923184372604725403882846872313923086734628993332649382876788783840453929330970084185949354743095361907302361046504208495916981551813588824609769101742612239420976298760235808060529454733715798359919347637975951494152983034252241051230446004999530155950794805244504407189046610558739737226552116958196294792811948059276976903795456191424142725764294413095272630503691748555358054628186779619843912426013710728992828489757248305932552092390253726474155330683086804083827202008514757216395754533512122887626678468263051913151445522682619027637251367075392484711499077883972001563760083391736331574859321927802752319913847200700558161384250030505397529221461707045815475071610001997968880588430200284409026268785799844058660742770645892985250536831049966136795520675843859373459431126911876119337298872975160680869749498647928994818442667179166171362886780562511886224608675618938493060223161156789089809340411496225805230504227329740567458209099662711478938457149642678842572499113653727842518701740596688803336166415164890593267386209259237674231359113652237469687097473097159981614218601101982231269444992654244102691884648412713393230796022335431094455855554303104056125389608974385478162735128888176304557000672725136949761976897913290772459875579223748094254674610775615280350713421473467501891612207066714201679528661205669482133486778018389248460675508667629938239422549089511133052452837337123620938339809476516080320131120784910552696643861123390689621398961415509666069365547205231074670378945593398000899951853731345015033822163593065288743480956820246437603200010091525349282981949219616358904615054653531582379587495592665816645669348272439942562653612317304241157559396150432818364694532560189850402832040435813605133004533066925275531265125744785715694902723037492990961848756906432182279943435455732622816208958049838713738486104489435368801959857116409815816649614416686495496325482681422398958749405921227652417110919323075662323965066163131824068092940484252400514480031054881631805541306000453440790323809849995664767056142376527182860813106407097112909719251711361079341765017511006088958007145301546554784624351413459986155098375547638297653910641763648188870174790260498912110502916923329770284690216343097538591013302559191574702360720999311140909559536562766915706592022377080449375867370696777915165618099306967711091750716795272257891051678760850000267333252815906922794429430442165624822746521082910436354167415424324601247302415023478975127621074257296967011276889410574701232034326288667526905067839307184468132305151474580897322548779561173995868967196798855246971380385397580949277615628309563637871198109128553464602896018787018349281833577723701864756919604449072104884072605801980319535174361374206185084716392124342786158034540079874728115075371100889340445530720719793443878774792739990753345284922754119520871625725114050924637344853871635469429920881015913586216074412681802906906281879493794594253317168467045893962547368727591446490723680865559095309513998509852266917867453904553984726576238489320292522657302371331756151681431797287073525834774656426946145953431159575297075310352761013274874699438041902463549555923488714513253655140570739238699772953006780761902135523136546143492146625089046784180065087197784187528435251938939594559410805000355285968156573912509440896525203982038947669272906572521741409058407636059027897586795487176114579183707998150157320138650607215605524322737732689060844878284765258308948923088474936079799984285798382853537119711784011393359107328252331638727925192170417854333847688411357871572746731909425812796699147323309743878996089255740410191150648161126356945154807289096379183848069120186061551998657434225290706943387879404118474035658519528379568320632675016123977770307704023487625625475015464976236258559828055280444542436523009194281283633352038508094397021501592316211196894867138408910304186184962728983915643651141345252021787065523950998138888314621839189866754324619196716418141194809568244504558527430200057789277155644560974567853267434683882236420193340547434539832445585010247439251644334242802482810520653537970054011897647639016372117920997639381231816980956821825077090595142244735668996114473547676262283263132937636567195662748084541442740543425465114855181849468851645155782981618654517948639230729886575482015889204573970436596529739862241804735934118530302633609136079496643705875496030727554868715901550575608869579206010540768652055523683543498389996559097552322803629537554734012281254462399719707185101430404629366169470934828345335971602341707758439722461025932365161518785726990999368285040352609183773898381239826503282265862676140845356495172597483906080616361491858040692665625283112452167496118954788862651627150460782629500149309753939798425775264336310302894033855619357615475169050593704909976632937227060262478706164725396995625400890693733222330847109884154749334424640397761756605178031822077254040741354369902454714472003967227609555680496575400837856871230954257393754662082881006828379009194228024175974479077853983047168392506269419484815238513859128385366424564545886131375951172686135433989464650262322223584977722171249999658355905646497370758164301338213454142471662298014161096815740041431073380679992180873998477861431824602631467180214953767332479041319804643934919190338169587307829114753315851262523887898673718896315993183743001100215344041468476555172607838736415095773776702361457304041350771262965425339478649272863259271473159657839144953492277079065873025000694547368170859564077411570141401777316228175173549722879134170186416402700483278255006682105849687819249373493098620281507655948861336083839825247852055205355860311272489611455847238435247181885325767290237486094903161632892356799656083098693720984040803105302498301998029497412640773647681790193631799752071124206527859624922445557092862030024025602867320707509769081397759221680004910994156519083013014940907203746728942695620622916656743217122356516240056684419762542942660512312053146601246787363985544119988907917491234036990756056889730532338227376707737611577673843268111261312267077464941772636770469928933040899683614384823294042925789093922448690570143816007550370142391410492518449976057279225816429803454525680082884564940668047821752459837285319334837081684988257316109712838628457595309806124986679121806174593679482508060736752099020757509485568248500395428867482859422244128369133326398955351684640317894568217314824028702224274757512708095654388528759177046723729082487268265514360170160507219702054763345077884623834298205871085828601144524379164248604025765615347839718499605673920409687759092064028876895303460797760161863454696507877605799786271298857228949629444817992184359150481761561216660350396899659698515255682907498396912316699611975297594428251078561130822491131255680222888435347338485109990354603249882991157806674607902779627798724822365170975349670880355240057820703884874439597671862588987366560847748921693071353588587553487730467870343911022139059467529018880462812300161683938656587087159037215103714528611635764913716699137640825580142276355631007021027129179758993961836028034630446952613592557688672632036679670022336990664473135777700387276447632790759940698035992596239021500946818892402342317996340377247372725584704441436545503300725485916580976459327938355517565536785894971766232323169690343841955289220795292357314637092653386808841421939532803011253131016915520296580705473200164809475629024492048719209886320436909633448334043968583795742266931820323087317179521529595296998283056393910944386048181784967449002706530972662032962460397968367829799222737334662821884429005556247420801741689316363315696199700641241621917259953871711747066434407549093276752806723455468891114137662237514425227178463528838156856181864006403415203770851968920286866320744646727610834832925723525783240451669769315405260008774354536755439742298625201315713011727692589976691711054351636084010742195725146638937575039991588435620733134561100708730037897817165582054590681197028568934184544127570755056172368495086699189397259801805636074045450561445113046376495124786428716308591772883345126720767502044804391163902447643345653039353692336602180059940619057664190794983982686634715891774014526915988403865108811088403029103359914387317290785882655108436817243435345461870328578728550877543450134418403180284907511959472908049979280880764298099947023577105794540994026357117452002156766464798485045809286426275234716427118273054051202451864881875088056753275917355969229257995834634131006237832257955353957300150125295960059761118318855995491605735304043121271599267160793525465294590381267732529193109935446588746348515880096502644264356645883571671072987710914992801432015161378550984249804440903818613304860768478745851843376096255482138639776954981556988546226092935195305955901378158980837146244098901483200403510169191356430611319311355852446693519706759840894377401996141393359235447654103378332220846431476508641929352279403989634309665473055624532041778932297697977754055934642747105061235396718527254740335683849541553477022274322586272227015095424901512096579429372776554987305538835315218456468188110528742620353129805107446958260052791584688146714240149135309869543751728132245362719268685285386547212634697647171590541733097714950630294844012185347440943067927196597119295939541740470658144000955844465326345790612532631462446708158112012315274285827903783216274315751496318940294699515583680059883203176581473699371705370204638546532259681733473588508313558008942386769862387379844588420293279944695609038203893135001237123160993041707308536294298731341307005518388552485805438783092135640026604366460869384067840813642468452641625253150842695226619826923674679067788298536817486730857431051187712765339244157054831385525332386510106152711771175401915201075854563006744014924095076435342641780247812150723525251758386497625391938177172163971685758958961981582261805768795000179119411013243138938755683297606795009525976939357556230592398794337564062284272781666500329992377872567479355203368909927630978670371666629864838342540729723930272122341969955525351654210999596256566080583913326102125134370784802882709221877943409842314710479340500385819729115363282403191634216225743401106959427776846295432648825080106314558072827823898131411218426177489776165635370217217642489851234189738096140262354215981028696260920659858630613497065798478569654425979723411761175996895793327578241676352565129692257227337158330149845720923986821564229129041803374088938458483065667519399982097953751999764279506961838498589809745439893549971743851204105840407499511754930308848958017213296464469748259104394007210684019124111213959071024560206199963289679575325507633806320865044491137359683003546309107008802995294770921562612366194189842795527689717504406550734105121155665953383394156470898555057758965580431472596346171764187024552505335244282742602954985087157806297321375601803014794588619593596333465641140456001525010815373421859295446439072099738795744905999650390207529188263030066936350445696466054998123055962659346304036703319708264188677077850467103736716191365290967859546116672568794174482679260385732223896233694250106615738666591254932072344809105299328813052764746603340545376357599349125755533423592942287296630340703873548109835395666930269759198341491738283195933591414599779097653512870655895652621001515073899851186288742932787716140693043966484348264769566029401336820585120700315861816409413182057837988003300613976032668105075817357452091547326328475671024516673874710455400775677163759871302049894780161091776027587216030384415473803412956236512779232500813651879869173798481267239972653397234281524816760753187392956550910562558421178957987519740208615261643077431584715209859122255755746105208477745234038556676267660420356179972110171590300585811049166331345378783024895112419053294669477374472652536804852914474805909621240359676772812336584139795991969354923434871512189542518513673183805131874121774809535311985680075821523449572633532557199395388291814663424934674374787424295441496542530705058004544367960265349947065482094448510237957223983243554935871233568707487014828231215223627624962812782200716504930479105431792734661922277698738246131879728498465457958560978891250955398540194196990456396303412628095040316454729948635802248242753249206515980288731001747495162903098716236361680489448167375074719392324507078172044888072168917243205914168564029726052118865377279960136487596462298331496951887675613581903432547424267571841943052491572968289265267962872831380779574761938151907683999220631362637738144365263589539790185574134661320040718761423600935624510994407617191903802222021903735300320747183054372300409362207385541961471793881749844436064984319937590470173072553179510525730174108915896625265753722112988924263105144943000747918817074810772823731026631068753853595742759003901934457998607736790767254709909576921806917275005978994621405349591158671986424675193078947105072019484808967259674115993805102473490644518090844677651847450843612504460572571372840611506267881333416717330721841434719396761465053083678828213409299808617507182550613826160306377650516856852789128853514700079954409718812957481632626046067796035488903843643261168207183683230763812398103302690066907033285677053217821747724489548687284012942528289469280674843146392417881842088353388270546718999444113048741257496697294900699897830395372918537894896638338430644809556392371435109798455219980409507335261427748287023877922349840587305171520101579919393132413821942616250047041993887286485136487563988895492158601332143570101731282492577466798245064089137214479251994325547042108744881009429188770041260833663842221420428838905018177191516626770198975922951902905260371199167217502282252919759612377671121192252943419890581776937120854117357966064160897645222037782056188391477106377850315282357264435627434366095415466872893228620820645915960723374582018307704462862889286897432765322649685192850841993042428735099102096500249335302530288851444114104025058905036674214657577296368791017813825517123207608106021620090134968014595584459949159396461211035470282262044521699339707958056167104558506357970527244259716524580890518393209412533200538209732973324863437169137949279546829459276505604287575068390830937312254664288382926329093973386773823512877610117237179601790948855430926498986363225224334989547454457979937605546358313192550415772309577383147658018932268727760388485433480723681042469034235543808511085580479319010686676115497989421057802841475100283933639150307124938877346152971828614591560858079686970080046895467247271429652815382603905738627226675982384362232955579970569130995385743555436357431677675562627419220702967822175171357613060475719395579757860108403653974951203639596998047800490502690946880471804324383505304815863794254776621516602965552693555622943821513568109118436893999400257289144027821723154722055326742737917118663851853616795005429150335486680706300156941067086134176928783521823797574532806431151323724621026854848026450663376308198311871938016381035762764725523704155337575105336460864630434359600124882955553410792236254801048051475356338196731997918233979847901413248921696253581190880662982836812919182707335710599600457577041317035992870511100920758391227285886298571480958375890437606042727892475034326182114055738158751736565196360530107939133365753236292933485572504201807275609150472222801764322016219626247531569076606702291807955058414345272894559413499485454043129689624730705111177177335791580264625287137850721683943914432993357549741016060313534705084506301772339780750334681197605315770119474774713404096607323365840558937201320289683121040361323896067163024422642427410738581172569505541082998078998902681368081862786112236320778449022388013787867155511324846562530287106779526762494527766419724514836276044106513857115368532292935487740806318020211681561922542235124377471175486926369740103361467842117198161915111142605374043827569086567788524260480787433385873984981692513095438557263169791412064593121672640593310652099920422755892451450360588218683343541635921162645680348053485306148562560260279057334573330538612171914818568617759815476690820347944141671560220628281788783832703858072545855816943285239429441288650050398597065558394674175990495539014991422169525838615578436855130911604147743119559734281842021260560976712508870084761617954968747867374663991324032622387142537349267191250305857785405777303109447317112982830721562806786300861611374698603452492439629817198756045600331724080467093434952670685913895865230520045821201555518190708650862410879321224662709894151145553498631313754585031186839216071327455396389753659925946099432667791300579489201250874292956123849552193974976328737451489331620535604516770703294459165323846330904490468996411550334810851776034428667808153518090346979035328920279968273841104948095324445394734973957520646703558204775375119989313643100533071442976010257712278252221777657894201392892902718569995426597478189284646364962248330479615831080786142798378930900780206927318569490915182807031637872691294395285097855788750661554477401002159845395400115253813788167295770960152344788269670967132043600330383650776775057349472059448654878868897341758972617761432677695880045504067734737955093592623448871072318444123274710576462800498918888171084608465258903768489020009182314141495636846809914008082705079776690464942669165956274421151796893856979611029002492883389442846770670970844657924635275408745146110569050759070865019753534708471002089912109179012713392340613449926128426805550242418632938283075533770684032740465888893824222454744444349248936193433299240545548425412227327140669812928044249135229287970570949471113622418870027152473526890453132842634741560013768122031583501344245892470742319389456077632255070476023873145314046440658981535886587019937236740658409968724192073611725744308014610572158008190137666938767349705388579804002022120897622913448529359162580344143810311353563444900000290748595776993331247748340950877572508936453922517677511287856807770432754006620259978364710140348655355023302956356492363869980366898755263280366258234848315119537777778235490199940204118226492480408755085980241778213874546406572182506089124172851412934756823499063180831137289784559384484767803414379121424310524993848783662832804269025426225759463348008126841106604838338226889219186528529195411501717599242992806146662106728449845124311873370794049413275859869185967633303615415283332573397666905141459092327112577965234565389840683385951933710157326710868170410503219567797114844290459179398556944413196855801080618257970614597912320535824983084773613418876764230994036593078931696162717248249627803656340858300773172799143333746276998165369305591468676629141213621676890253008475724437217484980258282847507533101976202386970605726394527073086353197446865746642919747551957692750268109036317164187958919648358169054338264470345558535143654487666796517387487550791515744873818004490965576759099087815733973726908350248894878212145028327744895064041803504737905229305346925650747940355143280432304531300636124463360436279582971402186450224059039181258838544094777920487869281706159346430100235483717928569264052982921850935228462504716717354923336939737936546301647539549311641368173356124198617946885170193765221082526324527144912564407495637049792191147352369043431082163349029447453618641403838376248334293813934474864804470845115309794298367981819864508333850168536114501861098431266816417616332479545964153726760671161504305528787233438596253969015314887077499127421461072394366801175803840859305349670904459834729961962473583477640412490166648611056643683562121873542512878070894797924422235723077973884852120126149960000547518570329190064836605432211261064570005352299153399856992698848111130590624953835151723843024836415427525158732229694670462445308069557930794135599188574038969336647605436083761638035107727417301690380843465250454401201706712602830792417911161453328843412450335360520338993393996683294930836932358447450038101518314082014697213439241814234962287869193674410578534425036452822368071929139245491910764447976308423299931896345716286763736649687346476004203653192842307943885207099828816886599454945655679655241007923646883955579131102878580052372072828079140341611221253528807487021480311154565333022414040623930152789576882142441183202077050158851743097048917456995639548295347770436546498910388657708971847186090233050389696405248660161719701630915072135574647645047754561089645537345729563224582166383340014195118770363077607922593390601173336329405892485526657345567997929395422991553147999217070083690919697517528060992086027941062841458884632051262455822066326007998663965755214888198241420181746720151622011069787056874250204483314802693648478560325338853758732064336382177553236666096006514031095715902595555028741344496979978493811806771423984670618575807518525101053244706626225814968990405217571311130555034887450632954472278990184484720686595200400540649930562417802320652640092450411107766511778481031260363866830073953528662884548232492810327632695201651539505482927684282566356457990368414484376607033891361235039504329679069183099304465508256908423886561627496630290321889865229369948074594273692363644083188744262716791900633442115380407249126122976273255400926536882158177511012305762878636026287610420660973431672439588056792504418508375449699554617988940317020131250569231389953842402693010668911373069436913242370586079005500551324875179853890970149253408469082888078194448860586209988689191390793145130023413068434851569578397844552061150459202030517598735343517250524340336168228790320929225900933576076393095268290305589016597287548036234961403118061580322527253706972709763423354408052614300076053749894503139229765124190156873222150000206001014438089277056836786507822103001462862707160783664197482077778029439190587224167186968325368885400079582585405295160024713482089233456575223327775179618272992778386328632563580336780116863955928738268631399073312088854239810434364687353682295536821702574940155985663634306128542891423719981741799265955064328626701008227746220175013399173676470440104900124206051558935280648298481005119340772055643849611480107597209286838789560831689030964122342686313656163508840830702389662382707844899045718732868472491051025455701685304116526513667482974271258500255058831691606477661198257734721909425855522448274209028549091941215454337163910866453512771475635483164170399259919183669187197413096334125079414181627192400980027754934046340632381533472643931211202320045203618686576182194491927947601525131045242836203636840182005855050150028200661082454725893146835458959483362209272980172462669000908939923648426197997013325724950907472201608780575699973406388910331336516764603763187645491112685031530709016791000842198572711567110272564964215176090857073334780440399161245499745368247001756439149489493763947939561691810325632915402165084695243022485315464068345310184585338029972584981367600955295411702683283780668225020009373567799235451496571970762755731184914345540396788276967331531788301035596719230258452117061654118242789662634726984223402645308372417726123144560830879783316281312574735406697776642106383957411658571111734945619085579306007976852658792727002769739801291267149450576959138151970614483892640542134271781968247590081007024097929894977347410752298673277487573126759283246476469197869851390466409789150985922061162557999369072715525895203698957712564640831224497505162853640981696322735422318531677504948141434212826209334578831416978240793342056304242137595138437123996562812310362567122746509652671734782531109728760903445798439161926550867049413436744818159875104978265236853609255511339672535617851137010976498229552661627652095647437715640399470140754852549369136286091022788578441187281482896271156868900072015570131612518991185119512025541004866546248128084099907331635433746435463807230859953774977334883384743451290649608283567605464026912228022089829781255009192575188428894326111296497127530411092672844186317438173408611126583369064429105153919730600498958556945964427856630725380926868465168421911831247209388748915153673103638286178554442251440691827372707131141387101672039824429107166191745789371669053742266682172223278037493973491234835795583295883470347895298194509442639931434447313447911931300945343574758919207283820805670115498623700162314576945723898724558342317497347272675431139370956364619622653602776875491129585331373097983207145894360818983419272801614492732040384671588058345795649105568030074789182353833546460678131373822245181716441715128804934342343465358981704147631734999161237052780572433769508649923535821527029079056460864248803720384129601214323255479779714852221159663851161999291673051382109842138883261347986742668516553162283986631438556942944412492247061767903867171162535012875434385550217683242765539410420515343086205755778054208419527993618560580217977177511833531518714378104075093740387585313513992446073860998703478322496531983760221652827702633849385122502547555388188055491662517357659873177611917543581233645891538544712631565835717409998749106907383168043312207031491682096752644173004683473600498821120945160965991426203032351896197106972108122522594170376682262208404807471868414866950536327708099085771354155283800443095432281279975759871237738923066659894582683435870665634935592575846259156454265056027716725875693906072569136874293153762895076686752089845570474443799610103418118689571192336140961237647070698398323890776243912435072377865059577112520989429441250627352951311247602484089571850379483485368160452601567914391883634990510601087621131449699801911145814079331734178286920607191461657681632223355566027224003714273846964164344580428178885673470779837450496510739152252061502386976360937893164508359921033159061674361457529418331446454802723700465292635965444876882972031749996544598348856457534787336627426121367027598529931269111478379772855126392929587455496738778384308306317708320988774195383623593014767408386020389221724753811578905462469808327869166600234639432083020723829962614680530634061025301617000133900806081211829420740562042036360717608832807364730389036111930007608538696787365100584695019038926313097840338364992349535372881582564615298775737220247928821946616613955424569266577450444632877394651734680140364484656000849612824392589551348808310394426972750387593281451109705157844450241688445673199601528146060218268332229340868362020843937406956254348011463722507252980525071309505630355020745863563708530144122642021998960439934835950835526113101584461032304805177928383274108834064982866534954088218916774698034543473870846021469066188302417091647272962140529044784815535531858118956479335469937400795791676416005188730979412131500082961362640173075393247039472850010930195117067136035211032479623877194001681510963274025860432885401642373742131058196501146877318962852437627043953196575080644491578532202484855489690153559385776003956137231209788442641533057927782448028033743761055598933310022290207078880543337506119166123633695056943432428535363769674062848228038317618669312247621937856362266862334040600914623610845414974127588476064739253420720438761799604349145694812423434269915365712922546164443471588663500612288745435512707164775967561335576934472389455272530656142066406526365955781098521327307388997878568193378238545303266187288901325216982713986538649046595573941429001960342422375987081989308875878074705493359149681207238678270791766443357935405778204777730650718164083109135507209137963103364943988393292624509302650927480319711430275350996445681152817029562124403091458810710856145078204279223193071700691986091883677535530262114459762187620592039697286317807591357141475964221427177644202699122073395474166145104003807866248219837304101023335291366111460996828886209892704188273621703059468594073414207706936448005835874306329282484925405531208659662895921411520907227486149070766430451246671573357541400064029352937094575360438812369860738448977578283903815718242357217437549519695137940054609611004376341842595476950993290209612189834100647543828128651502099883024236228077429876440461359683068748085488961049991521326373364206624634807015523774552272744530252443023489244579901014458263582122608685481494417918037712645700991942503200769466458974383048933194449013441319617794605860728071441186580801828860559534353105458931142785954049398071012409902540107065641858598753117132875797349287420585290820456829664126641677106813598971976148795408756141917045834037609340242833344288928049477018871769950157906974704491222908265626331912771315389290359032509962651859143771744886829138451615849341233560656055672441932021159625463260355406400159676585183930211644825747783693243797169856119371872801241078792678337877108511599978072084549843922434806658352370104484135241524669405892889247150040599184432837005287125264150938132885739581976235344740642728812226749272153062469065239019387188599449792227846794101082134366916699812984795894841733029952725043476683341922193088027211296842232864237113880336808939310539224795143970849261262783759808349804008449423491885914841583798278041948023224022247229155424710247831419557438162495419739281677162442929777300945336795617037995146429184568273772441896810995552373973036634077121744487097651238096092256619240295296640241190962842980709486528620451130603478507146955860226795561484168814969624559117368902497138685774509174543250296254171578611140214973889856734262015563503959604054650682143299869634269424634097884803417724730424354019781044285028474891944402424930890262143935962786678271355556870930619389932903215646801505628651651805239611418118624227366889887520495426771884434254174729137775551149604186330407195974189326844411566720798327100901806596126046692990591092428374904244005121249676604291401965997930201278664889090517831235311364346616174981207861002628334438061881822749265308189155461307234399816985958438790278690392399866323737411113744864879031533907135359991936846671058769024814162705314909369861539325760279441775886869132156515866339828750780098728388668012500938116805498525899139066851334785593234584083839745477659120229545459186035337146709553939007713107889252820186940939880353394208915126303239482112296172483138772781319161379052139594144674755328810281429883432121579127457692765426184385027679353487101769978547202308985638196763590866583901296169210034852311850306632904204589619056411881181370948412486252471661960707041282340717468232658186877791724348293268560468686207898696524722160618155759780672934019391875041554330322086176003872169228385619056980979030971232972441107157340364992737228340818610962237667389523362217729145735964317859253023964131163736504739704288292152327166421818303810856226831428715129239511860529183816021684672500911847485845753092606615495331382003969248644689911507723648743100922621828886307950609205295217850261927044621394401995861166790371972126689758798151888076122651627809250147031070082479573948047976018221719072776756584321059132261460846401243007569512212103393921697427471170717711590262369727702077727029367764915703380102020414484912083062404966811336007290100467469846846926055243889662343625070651671828945686197300661040428140935948067682260112103789230742418920756315584987386656423286728381347875582488346239529440941200206352892708345110185483420973539613367468524064114105209600553045349880196936532401447213227639413092971205288483153963284924591715229309561716918728683685283332032058236036949881740944522688317497271663333509501605303439634352665252334109888942324994229895671152236781844420576585129964473768156145533026964023112156136658863257257592187200482349860059118052219606402899946668450864023377643127788168311624473850114233541819886398901660574329601310081635717586108752566859279668785570590281019358533037034805766281719419347300670599310218574866726618781882668476937973693767691280773965725466980903586403141617029562669689373267309161014897662371071808339289310226081838018802637770092253574198844984688829164006981747382877672472964866161491834803701304333004092096692492246494774659814292018741395454195168813996074414712952208755392433226064036216351179920856547470391772149586367214101007481360462861111720005421907261234404706453536515038278644312446413719350078912129716085662998988677849201138454636287253482350676152190714063696916539879191630807672966107435383240496185395529459803047753937720865122060971886526137929916334779614616640588430742076600866453608554445958451568664533338309853759577867113337381084973352336180617277804472563302879100945030206006773178100700019378777829630464918358039626912964305078964452665484565381692934949839514635095385085906385767094325057967131961807249887520490678193424184563755585781697061404419776891908242759695260272139128872697366323056359193023999028678216781135038206387584445001932154826873955113892036655852619850887109580361216227253800886228427373557832695974299378041858152494303653957459657887620116408228764996207563488930171386484902463593668255344106625913533790631808228933694412819142133439323446525726493185043860692136746040320075016966251370932481361973810157697761281468006883308008990025252397053783333588016351161944374999759882337841544506348454989244593613709379320338749965364756860775352421648437796887067916882045317517887270829888011773625118652175976821501893926311511282493370747958087911556261120068847413431521335497928555299617182730093606127505983541274745989817592547713837162669202077887479920765348352198952464799517034488344472325944769357498500386079299274955174816124220202155126812990956472619216728831171842154286049689778848393329437977266855142605167913733972036041909046430581590576053823321816399323929843016992162987696496630536723947632122377780160307938331242678662019255571625411280274086492695901962415411615646578032280442024713992733279724262454656383794752374902023134070754426969485573561506037528675830118453035087713029188888748278991536566824496981588504606019127833740033561504450221734860787537840913759903501216233649376083350537814516807261133568019621006208698023444097935059835833973889854501179245195868092069645841726406302813500089525947135940338267208172669972906512232769774902481813530476627689217592715953312619378560344453416158227337574236564218749375269241480994835738765179033347938191175091635859661150835052558772206843570355336859048827685526505422790619509905024805717487457259520173239864306531326650799147887384714019955137340509057448003848921597606185509258044170019170739386215710721846471852560244718489036363730271093735095858868243438265581792202053310306786708627614641826804465773853201362699936196823154543360588815705865694607781128899806763187876585299643606399513506457443345567374607282549809242296426829520642440332084539153442227378638399760780929480430312797511387438804044313493860898194250479109089763243710366103152067531973306310948828858629680419957207559961624925558422629368677695629567602479908396040365348622902132051592656072748330139114400295043189475222469210676903807069017800126000958018920868804202574531063745074354359825638581898381656674640550312733424134732990718949712613025643451266750169477507219873425198988850854953107060882100704582077338412097498363064275179162134094905536956452313062268722175773440470320732969486661617498898719438819589264547003213231850727847388102083085523889884045685549433031512351817531131704156992669766397771639637862162255129059548775412616097322641151477010203259990277236936565588084707039180119292142486682773391475369153414956341467383512727264682065116224165010037501717957017852665287856712116579079427823915406142568312325085588835368479091806458903215376888565955126825764833343037222327095277954689771181377042213606805536509322469807916667080121521153418610038065194779531683413122626687526920573698120058617921690821399125424096717182158294807195859198485065285142645779433257701548089557105984760349519435295314982525003141795011234879310450814729118982936279816844788621380386459526588485884147155856782228667048202672380363105730410012664264778890339933307857186291413721450949343225042717580296289595943533789774947736067285950288154893545587246520605001088557598991849987742534579270268973390674026509394263027605673882508840300312186371012663862701733932712005098247532073764392739324863036656231682083146420169867341817175791901526719174121320619654751976729670889580367112350167080817841553468986588324847403214910925958621444922992947047176397100616640634315664162763696936550066733213225529351885078865477861058477036875217227843102217666466633822813712653504881237495387398903594754253624761733117453789208557979014838548199963066427428770656150116024218136359125284130240304544669527300764468725426371425750185455695965428638679380963572270762971390073956380279944100810341357466979601313287728664543964301581936024458395726810623872768135770133894145023906882122293931720502874301841090090790750699050733843748651240867166846113114394285643111890018784892195061497756696593572803648856625249125515799961573427139719313495779694966512755746927307504285462259668335849641740183542351620227098190092723093463325148621734298027400255555074036642757560172425423974896348651385073823766625493926635330259779494969491227042875106464953389795748429861825539217795019955251366688506266450367259425300717903650129508657202644895761905916249363727081550105638403016914664587369796619543158774597375090368829383549936857593228639770642770839882755483149805892873878377719526423094441482551071132739627868108539170513458114824492449937552437519432338918224149467515477657807222874060474500912091705815806279596366659873789200552892259923426291806541597082227488287108966214758641792824685389123088743809078812733653306146638887177302883811632528000812136085165085477264030794285948683549087793760396065361087135914730526172101685481167278454631953478024244541325454602860770458145549727397415626009061681646936289077482943402945795585191431554861809861316900678534644467345512011168991145427581477190110678724974005810309531753348358966886168916348766556733092731998630686824058741254841305711958168600058672888491236475355222712221120613264266796350771176960619556021695187053973515192036407784808793865605990976542913775770356688991378405979601561662867825344007097417136255079751308478495568545680711655133895803483381259635259299301078104501700191578388097926554198074043006099251214904082237201864889157802820818466165994198636926919887962214342832501166477977834648121109209779198840912817472915254051092462829711867765964547491688675828006515344314040353491848193630672390439951914455792932358880660131737949499144667078542161556478439021221519860332911846586467851871239056365072466150067745305477407268689904821468915792162696470817073758566250875391777345737452921181290415943318069440618524401691436888230585154577220335947207947425594508400355594210366233821308033310788702329488356215837361652452323593727663252497753826562963027361939854338868216823479989604745032663906396475750657691072228950586022060672467758696049695923057706853557904099998043881087867896539454211509795838385665032738293801646314409789690124941617460216983007710172931454884478184473085867533108597099991814038914026842808201290431774156146363811287925810381727386564734419970676013876291212678223208848330051303142334738692845428981969597340912275996269921443977927730088802556045703137760491891685163673426059198159394516056297238828551848612878439270942314449068034589361543887148566562070154162308048221861297393060300264576384643876823651228045017847729240363487820818055219271867947352188175882502929112225573830917066182473861787469735132768990340929649858757906070769864897099814602498212669087010575664899685877044354200929515740863809589663921290595117692707433403344497946173083860912613744289592887519709636116685814728408151894866721972524458459038467715868209583281977139843998628404553321274890920035415835915755871224813830095907084632452768073293210676975575051830644050626196121831612224184809110610464750075778329935181934731553082795973857826913100290798065366828865927178671085375867019316053809372837501247562595377094685705301455935608620057945156876658852779127450515888463327838492762965133365501844691688229487422031070351992044678906801712665330664198049637105640851013886528951295206092200721792362066031706555661314885024136827062095196219230178871878118379072896373310550523914964213514883234935472532749655922562207087758091814211805789729449512300251103790864264081559296954215084639417819838207797506644296747426977910965796277479601504309189548915345026176707910966086590440889660002259640623745668617628326622604707723518618508269099720819691692775050929619709003567742344442642952342042257143298981413515316327082842907000183017593110361103121154285348711014006229593475436885437057183404664167983171368825947519898703565558021329149944160007786895599052589085589270502700080438098334276902824810912502465362837003511832684699314173860010205596035935803703819577277088200174766651555292629565815157463271928848349344666397377266175779909928103870891620895732040800718750291100687695001965360453525142586786691314615803412321624299371591077518436062622000977307342590716975675751518357911274763125112697917348309406007489563572366703554998682367948809048176331385449810185204917123348998671954245436033482138522903845741999320251005752055193648905035291856204220263626152669886296719411185964716834890557410948476709965723738431725880935646242704266794072503198653361380445009634380139174835324726697419509249847304186823178124783233738359251786117648372791484765592479137828703846250663492868675451443723147085290651418334056233885071224982031637084133736627446822163550743893171854798255303486496151443915941875172918181751510878909843239924489453537914718736810117142453914829685121620399582782219124959653750104043886468642057908107010728709424028720681735858029816104628532105412566074819918430595286362991036307078294514993879924642762187863205513279860614279701756036335309832588801422644185570723421699602742335210582489598703932779659176877423508330701256391853289517310616108661159249279208007457071588647066601440828589940588009361183743738212442531481901474562618887571645856912408711325661020304077765591290664883152824987595247192032257659731804347417055991536125898199535789893368689367934816266553392851479270879630205805956878475607113459664871767762035303223441755529628813364272465432507487800975622600371173302980235028600938573559125954700582640561297479324704730463604554645444301508232857038855758940977169999169535348580911654957107384471528209219665295520950312404510545315462418314901118931947715131237690395064012933389769027060557441260311554068377830133192089479295482192567351594535608720299432131787781733683176783756948187590272751991988903101155452788734898090230969989720181649243558888875317797253578874257120445227532067218167930176652437354574100676849040433310810976919510929133743098272979317093054876194944322034419623761504503748466672513582255795891769944039524152189722040566976507525255810279425639018580393258029183728026836066910717382987662569658627807790406907240619222630152619012497094636792823920899505736412466721473986042092412840111302815501873116030273246670887675921199798642536396312634724721410967249088248953535754517805647492894994883318252162237923559164070974421500905067302877410472493202923290365926798388097440891869251806669327427350453486496793656892693091081225384344615226409503790741123306502054736426337994409827839959736193108326902605776181075153628087150902136101951806603951635804776119558444555966905304698252134834338616771008661031426056338110800483072224033835180998293199819428879884248904244786603721073346505911642933663222297407547137015377940944851870039145450347278607434459352549639818427615581657894207046002479099071572895418787770592545831750713137506307540355361372031363856894369211927903046690935216384992525010140725146667115200474217226828670460609292006602268869281823408636647933147453538126156427163247874769767599821196223375942129354153565101078495253278464667453580318528272961579999337981314328806205531305976061093090950644985610218075721219092232039806432651679887232102253586498065172443447833996940387362625504029861364068904407402029678548678920696646094397678679869417493949483384725089563602595965599532802007567300469220180660447387003533912885962280770848676030476526586255228946095525950057846000480071226716013516616541016173989302226428849694693311160160285904748216965170713096542432697008178024778312028225259184917412110716561993761105313233503511511360337968027151436720880665944686805351877011497836145282700214502690434732064254739744636158123275607663558539479176330237580704655495991197660516403593725108979935290723030366612879758397456251298057767111226183091455013446537861915809591435595837870982603945453524088617679419828754214158763752108989886814700141309437969732345003788341129587011999169366404054359164499367352869021186803671409298207925793819616242133402442764862903073731895665573015823401116518125714390119857961577287317858020229395056686186227481484140764346787223846650015342615624802182486976504324313413530872504212884072178179949335462759359230191676762567709849422538841020758371527580380500259804590561518753851571610522279912277766181930621755874766457114816607900034559002265535116115735163629990956348160773627267761839151568615877590779240316142048024612486395233536903488776732699901654256333441022195505049979751411481721751867461497983201673707922298293496353467461710167981589094280536870693340328403070018006595081322265387760607272693684439203970766848778483886027079015581855971541662954480512866292360435324004491504005586392655884390924576023997666162531215059764574258563730834738888492216543049896773033029163898884808004817368539153576446223848937403397035964903490094397224865663154092757451982077079594051831545577651734908738548695630358408066564942530219675101737119641516416656474174447899509182719902877570183194948637493805361531744489593658203212119625972395316901812456231502531238271232026749121340738905101725688096542637869482598550893624806145849032892756195267282814510604557726457427727300227585327553579340863397182696641598019488775931386083893201099613898641285273837508416807282792909222184229959559439419093566962754793974558586785088386344001052718255160336408539591075034743090187317469204253497863213543113286881980473933642848755840949697059388345920877006062265659069801388878652864164046977216845455680699417955690239660103826367418488902405970033994220893408892855343306573331486729680265541112806753829554112971839276078964060104655273322583079526114138633087838180647508036736313878406329816357679604616842231128841527575312099237872437136155824764924919159294409119892102201620151501743557421521047537740243573514245692779837793664206208236340562526793859372254153596876125383133288718618147207368369338564568296560086995938145578612953884100584055156495524252323807450032140158916917455182352264798240322176416354450180020637636788884716148344330187056185133130725292993318692129156142660750754832072601734860716351912304974478427766245363699765723405181013708347889942287466868173871418371632720924221555293754596406704762025180971485755929003493353136764240540449422956356932759292232787303285262974332753178261891018625746183463995424782784663785874025526622510911648450086884156013428170852398929033513738745287036607295728928909143064385472495103146057965397950334026364066314469742103330225934695796736807391675876980580283478230460774700554134376903673113631379916690767925037257866494376271501860800743846644067943758043906593064889696020124196610886927636518512734935794024194462874270669722902304947303051543510398953734684033557480603923558110213868143617147365814970004172062285761716357757493461705339289607744043712634350839613504307890217694913813908497888556656419060124228427193901487124519798389414563989816526462466274046985073345390899392806854593496888016163522183503483865870200143488325099677955973054355187615199660831041878516815759337321135155796067275033407180171259656388597947765217476875480048340513671260863765218295878464365960815030092138595898956561714957673170223552744584615443186492039312415921101378799779402556440084536959136822567676821088687809831306636856279514331906185628636295997682122811347300877146525476975034308643965899754358189972590052411230876767007694463024556282921660874907582593998329809847453151959510495616253025258740309296086433278258266891507212928790696095594886194390273310136946204433837079424047395141217657639160956978747942149209539264154050070897436438650203614932768126965083158388453874097972649917151285553605833713600176355475785089022684275627349835864193030798065004686762381594345544607067382372570955371356034089308438023801940416701005808269811482354898546258153769016527179989012538560918843999219087739001512729543690775148245962246650810484458351707475644871299256486792787435754745694245759435225665319470164429297922865452413733161743161619632268394968395467997666288137066038008619160023430880284565268580160966603468153336403325303881902773606722695998536311954466825867911031172540017792960284762210328429360985771085691031938180914389092506290622650392084999387985492304177762736878646964331629635512175595271435468775553106934883261440518847195749216907630399727162594203754853444277012017191546540302200039745397793298458468322409102425220278745062496650600217183793020420830322080320611160704211892851096907604090435144483974514176832075238238117950114082774080720313474498542740470490251023268964883508342362929359697550623106926568755446565637007759950570280036742900372718265324498075986702002722118368221855728251685247920195029903777359989330784619531806741981317150820800994366190300468659206543521989447822832856650198961816474868295677713152048984452062003030881061947388606392726399221714260438600774565596812471044266712694610231887581302607044294366241517669289464406220335486377373220881703732587403627482980593566721822942325903654893500387993240610898933360730576873734424011156117816974987041617823068548397371044859471955997525569985715809842817098408251811072503195400733580583076129374016191849424909320939345865254798416418942414982111104405978701969857271637627729011138969979420479449676288616246092408077515974265923078354324228992192275243493356804801375127452393346416435840590976627476259769542808670015431652790655665151251375280294493017572110074259955443095464995152970442906535669506359745729112886461395768671722743806560563855468057686391358503080531653278412984447922481468659371468792671980752662822774905492611724081492612446881156276923329136967851679219339680910763075395507080968804032601076260333939291152463830329873004323683321106209644981637936543169851216260444659820511683562396928545164294997077408454539618879592996510127298726151522810802709046914248019757160915239774310862729809825549519041581023059084248269274666078730182669610624007887141808027188762167490491104969166820148432030996904357744051147370913743843914013889392469765143993662726751034799856056168212364062307622976180215449231855518852667186298727375834639979611620492321300384241176240939173063986411139775150702469383771790857112644923237425537825745757927117637284950973256143913621054143445079105152963517314716852861849313861500268316278752329365669907381659616028864737536495433037690659747380664128291317654300355408302110965182632356774856413247144556476714434643786791999990397395567246153595918287354717865656206086392806268443541062108817510229071270452247048051249954488242325574690502175269967466669128725445550603527744996443667678285642677169102022111115626647705052899395503478738345626701877639847485088978520542809050206114855481487510057233915761032794444446165010441731700410580514328582404472061606144780186539150446925840724615784800647154191452843715979619856347137331682829364819974197154324322496114298060364676059244101802590580933298344913230048810271329476150766991031646712923385379008281272020573881403065636293088268548520588377755821855820230618408784095134511108305297180211608152576048623729378339546846822697541005445805498926126152334397599778968025967400796833645745658006404306191095426712310400891851456486316212589708362559242502912228837770551065693824621711350038443442457788887688242397749997386984595441596704702260271860670016625346470394430381305090344978559378184148814818005656713856936650933041100077175555618103852626721931758631935950438762814486587998109720348067426562585518273111184740262518810237767582558766503663499699035404124724140311376836506029017622888787084059984190559267146985585803866214866754863071253483439438118543709275298130879014929168030256335673014095815406950229656641102685850728373348449919719189719952644993021669360860642081352959906588441982874329576745462980715092772810209393984305357672632648828703498720682899440681886413194726694513031544216790125487933054502584693388294779108144822973987300648398629611404308896464520408884599409766003060659116794494110422303647701145758038499020069982377726856612579699549695648883983682443739260261391641385287188668545514377804451591712359336638201707215088380791042575736773148558578480195182123555667648947193386114440409173272936886207629082896239245497054742455760132929735592861490459948229346149775745999115796875011325607018624370746938778403192970085740661185632665508583377445148579325753343977247815425337745355008849341306279752681882024099161147905269466030567624519274039310590816944325947064827467510757381229482880956516735152653569256606063137293843288637067211190947784202073213900054513912338882025110812320952843736281788217797712465828683150095391875323326028653584534095949693032327817350652838862587124533160783766369982598390249335980322743425700846030842399080167920697923985742746856589994555484868747078941023475137101337533689567050786073357577266712118491912199753187990202561780769914274044236173795994106887388595719155107585294635978311616023448887039390266140042058695251181844182101821742834506630727930487109066643595119463869648157137540056552195382712350105919799527914570409224014168074579290583976444968044726994387616984872686457526590296013895351939670046797911239759713808565539613583178376582128794437675702290673634175655319151238084816397621186356994687245896185025822364704097272697643395570638254833006628890472215857641719452382693064925263237225605190246562502547774179678099356496341570389075037966492837245314815801764685881745044862644575165209105776357024930826595465656969372239993464957038904375533299616000080659136723704980062690042900036849289073068278369917132634329100590353270054681153368961866581428026877955975514346748447310075484258828905672269228017656007775397276918903462183635304805671164594123849235960832724439094709107557439559801850509443414842417887469387972229022879084440042976643344299137806005252890191855424889424326511800024439462721635783501520668972869008161610149613937442177405052560987061675899831762794930175038222104595126127418737910814965438597150253141155089174652112463702520133454808064712016613684008698324910019942149681043414628911537581940168854045106160359136630483966567803899244739301208802663125870090288437805967300078334023736310342384218769401940178461483513009244323256379161701813415943597571950327478461928401804760630698448776517514305585940449968931003117408911381751390280332064086365005112464131102583394635663675292334007584636370300889010823542776339785308730639268058036382336970975149658661256401614833299216231876219317885608473626288422902672407687848107445381115519033154745272930009690742562183333289843052951370665322209196326619328072090239886231113359112937491117548850834020601699053967712937659659766379761020354964879958680762514754862973565116942560917011577297751341866066990812429416655512037867050042753399860187722267477428242234009742638219894910146916979834106629965707902844897777624953035405320657712492672157649236277033737417868773125441077852072578695413711875491440799628807533440428811702491666467084296752440028868396947255423978215693366683139300541490199685796122963387014569236889819757025833617102159999789450216691135937923540095019514547018433226532856170215364143880316890075731180669844105334991457491322612646241503909313945454952898177093794918273658094682624227005830495170442356128595084047702831386921672159301255344403339316516292248788813845017961840842776553013659014751201246745191613193860677667158752711855492174814573292143546819761422976041519264737685279597152273181931537549614657942856354508878518815676496294410658661352378091645006871006317954117542646807794349747650844862129861470672964384027439425095904145939746071607846826858606705238917380271475866251521097180057462964847830679432462024464889132880586286753633397125036918615757213679688347594708992470607312448418782998483983184187280159461443196151873492335932185379035526043003079993281530111022594694348346803034117350194476748066567095359724131838083951973883403406521947558104456589356479342939901943827245690396850815954541650328622307516052462321630359671562020531840944951869666920551792216003544926428511418774873747408265061319646479818265946756582020284435884842639318229045550910808819610706855215663101309415055175278368072579239053748420173779894633134619519362382053065154626331246324245316887096748423816629958930557436752499118214178687237429483651427222468127966136210839396055230645626307366388440719222357573495509930653442977297235988603501510519424940674120791042604505587497015471619059979443394927355127141656253769729129383483203667939523466449688619171547135196535384960702007810041096503222636558238573309030089991940887266483753185153121901353544632407262605466603066452030287057029226991432130097196271219563748927658664880032560059862933891707984133005483488289505565395463076156334166452358540945289910631715031299284858853430325632256336814477768975793049052000338255842950701494872249726785182800730862386308564775316645714316112711174504737678976606098507679431439302822927243303375373195816689065660836306233579307835274857842246940713453516978715321816796194040600221439828836657710396360815135466566131630197128061121044452549599796059791781391392836322360492741176689637571323134377338853961075241135972290933692130104318133685551045884399598437541473377923925197874068507780945926106807052992045428020297297014198003640114666803818417976578264575463638843314812121307018385222862942062645062909016740096667384335627740388880802703373241582094820844054152945971031114650825362320768641560636076460675731853554920730891667228614236211512524641128467502084573218711657331037690913359435339127717385595189201279134448240806774033144532714763437252961743410753078538908848997008023474330904461243130178495996517343000384301321268950121045373954616627720112356623399515414715621786616939263142468948395169056970587319353936615328862318474212761552097915706152246068755426828866110821259345046198935019695125847659146970292200422171987115085472774298985022468892291102010807437025307779906363681282798564466691676343455361953446566465098060099705178678737893989332896786139202152720332414377587429061701228265879876816046961302181404332382267182214730504578021333140623987958567982288964745141708826681609817047763182397734863896873507176868535810645491257043233422949919603196233154198119337950039042122696160856274536026101489273673216609146561120512450889793508177112806043734141637897106303308504914612436714053101961060189456843344219344842492764991312828891346523734666548496063427386190818318673282102982167661456269944974743213275212465522819719821588938432414445378751932137340447172160799385151422767790734268308398823101059187100874153735710235753626025864738554230903675946878831214445560724666651418270945198334363089365190095317027478862105954538877087069476213576016949220982205966317504783266696876725862708564146545479890605913808871119387541771622126829618880327724523428699574499321181131974763437670190397818531329576613910841050471842766384829280568792797507867780197434813098813009533402954567647224775742408783865862621153034264023903525110451849326676638603618256490576179210699664607718754328106122267414601433826150254517403898018169221246162938923621613439628285816814999726111404787343923156097839079984609483614703157515169977686087061876667862087736676943382615482957013334288501503528504393138650096564551060356865019804805547815786040835608093087144087443435584147489533085488070694298448143441424895475532177285561390631685563448157268121853716067515023734027498274885509486076650541628515237471097352656666191230655404304413942030732899562500605823017330781769637366641442060967446473629757921338829244697239937819399315623432074833798693111637896129512612234189962286681493500072884130134106972997673059634027622985130893976817124647242273863936719485469178468950058448725704831873536977088160395458946248740534905324310773259562819389163211718162673344611622911434247003796198921448841099775359170707653885474289788119258542650842760948946106665754296422212431673539156325348689268121521691083695141240284342826980082631525690999364936761703719718898774495602218449912968822948926952106817591143155174712005881935699748080834729163046728738985123117727122195231783868352750374737976579101545243768502083285056089733744472640025560769347331567276713953563836108877605486115703988513418230843836199568134593739742041255242761803394253620768394554217245384430458200126039505245558371430337076030529348610182519890555112598947891214492590342237359551509944646086329059973274110286822516373479966411784452747513155318911468976176029997347103426618668092270426316682870453826173860458734944111779746058760846738925733035324354626490002493940733803502170557299400535405724065896010333328353872069185739069522550945795058132748669236781086019890390425312498292580191324800563145811297992105180503220512495199151501963326746435450908939008590546744053727490850378719491393856004377711972099019809064558172121641730236035088883116178531999445237289525546877179972364453056542697237372864616126895639067372130883874457564519913356591247412681249548430886497476449850753882883212465897717657752912440767585155232163905635230101324533469401622021666563732309437115023925917349451323047939478107292282355656033136378857808048327126635075422942949825777081164112972275528351042698297196784275706698114610959285933624317662986212121828858235458332031287690181631842075310504264672634199080238206649839991030944290767843942169930393441851308414280890628556290665095036572690344742408512743994819498036214017541817791498422527866344806127672360979511209499771338780297733797752654630456304042608263979924223836213748038004168668342137328437607449061194539879718860777414580414611830261242871979339919105460437278523126251844829830281266696327880853318126146517033421888202311250013520245461168875585101054761976619174470096338066314698334231995085407912071676117980526046353887870479128248922651134647946425004512446382965097723300312409045009009927348558315592306748417341766892869613184259062069753867505989641153696339572819306771684264618843969608935401322286625150821799311101719192700818313179669597024766604772539073403138474391361736588490590598649683741611320643953458285436147625868588743635417316051012046165703901759590743462316776696103091577114631402395866935091168614210260740177577467459018398190748523755244820501908837575938009965961802709425957284717076854837318688423890943299174489764492921352028229074908361088699838807619844121245475211220114333021966640198780430318646648970550329062967083615730994082422538280204200977965923905624641978703686800192791021162626364558755532109038995177499076156642587721967955983970528024763854917168841759382674997982868084479108296797576056681350008105198806466335229471155706268986730144230538209321971093887163075972284240969760379859628789533792482537798532801971769924688005733839954975197121142775784846813339879379830442369997523880969923765564929754165195881713106238702701732525433262639543708360189027889974885323157986031634682976026232314214363696194001055002642272683812698417926549216959726620357067595372868309302791574475924420894481601977505068750004498590206645811493164954320713482517278591560409255629442229085997584589101809877245509595348333106537291522663561576288873967260850772569681470435782142338442302066140523045205346276464784434248775689248590365703213052615650354518905371888485874670535720071400169936987584200564249294781129492833752220574116338486135468320605509888621762562248554707213804231749915868084325258064028269260472445437651539679358382377238571952190783468107658286293900257028932040443111540298149304900771329864413913214072532964904559764120532139873266538538048345957499612452643220525391693374011833507765391645906883520464390400258278709025652685650852674666617004875750625026674799061826045658469892099095515973669056456720185288072349426169148168971749762725102834267611460750906498769371424969707824641693137527814272427380652815578860555766967617632716962562454387933574187674314360892533737616896197990488824137564080353408889034458013696448628613146817564586892245256599896419978204423598764261587254412939473317840099802306237241075742743046978684468407888772343240311996605573470886635086366972270132251557519192895542541104586872494596370144963606758002899002184566066784095450000260947572100122160667439270985134865327650697104567690866084987594478442533518707937872691905694409115767697502927276842641950673427386508510323070500995178366749699023414750705492617138333498202536251733030093145357614807565013462814172490334982382707344843198839386673606459282327940438976542242932672884683699039863172427649871541869228998482201163011862886419011979636920689540978505210353711257730175371900629457021746331833968172266708765538194196079908766495071024438846761551515278443363020241272188152920111716476017965447014686850754287511579588757406954096062563243450530010647584913479817023631619051336727352114411643312664927509761252873632859958843660597240633807479750096611423028713128695627648239646198593054282899792845128044604630982552149582208080947953298107989175784604079270500842920996111925006720562121330393200919853884527711696084190071992650800239901942568767698786106261954564249314535885670719304792468110742331249323196607519338463267043949163157538111909750181263911453684937907640179536280937472752804191250550066645930946625022933367180773408273725934685101324943799277444730326778784283245834310729366523168646018945387892135280623504016808105627529372594815267189563633082030703666132692937540801704779955209900699645053337379154650641431536352765805307406368367557087188353949511885115090593226335538815628490865667860112860126793632800042117009575799268760943138481585258368318662014058988214779439282861757118414412763895648274177047173572028808381198811670051502412699085220352699585352336431325494686730345332637975027722966924064409940154309206135751992309460516002720885984414650908133769726032488060017385600116323616610233353204968771020189682344101009945159186985853340942447292086873479726854809454994233843020329035292229334620571543759296139487479223467431229522880724488780215142635022996700065208668122735091746841819907772650913239996469776850339846076671659574105252201549422165259560688248080838501137907854124915037701898487201949909739200578598288846282580704551873700752282724234599501879151731724917485086891060355265513426400846035683037369397083645635268059086209746220549760926141959285942686678734990481071754897100973591999682316665639169426031987979554046577246243137249657048575336169597166786738232385973870903943824297422463462101889401113230084637184285811548087442661022200620611595430836682344817319153426480638338803728700024078625905378704812141986473269326218581480530218766918793663136660052987532615115774836098990918250890375038047105215766991352277000665499512047956587099716737881634590607841677027774848145691064369152259680379664981048031216140572269404019501366996282167219000567864893809094310221676505723799343473533944610680521788200543565943322507891856064160840039031532659181139655011268758968658080892205821399008895168353721539868506513011385472711007404721607326207839713874142221639050848806125406924155784733616506401214446610619109725997200079757677276160137992806117831348974196007554686472994490511099804064958615604353714090715319729848727031743158801530719084021210364334458720469151017876696096676071368639240169736600816075452569752066553085607354867881514090843276034654580913650458622149823451806531681127926166650931126808775235031081422724601984615274720400162557040086922698700734908638647320832519445184027344225231582888451151744774105466795280712981999261716068553639949400739202987913774596827915301770821160769752239194854776980884553522091509816956116509217928339218519947453590051144332126740120414831737657007866340664090451380194757203053209937510784839693645492380026812889706902595488235432238558053902582937589838873715178179492588907861893720153032581794693858674782982592404827104815341865408581592928019897142747015609333819037976925079496276466521794235631307729474440217050535558891412576368742287417673082890263538232752262328564454564667862464436322558025717877882357752294905990144166858520236884675576152581330633362119522042679198164015886685087417624332076260714638356585302917500377276515072505572863592577523705009487140585845582610735858527365422962900861944351659196147587713357255989886841623448332585274009628377564670803197391923626170800438869225977857516145415385327372209220356660263367954125018581159538809167397809709684694531794830162265483220864629842791380646956078707222672705905390419652673585498386198743550734651950051159352562244794710753052698865793696322169459694251262033492937376009050068747103077265314246750577330473091890643966275398677337831745146596675622214676718754297022942705398117346912104852365933993888205885903418675054654164005743107492181722382359602718231255980216993533033712185746652235771187713882447557303179355143394811715528639532339842194590976920959532265120167596738827348851589108302223573031990269782002209636797130601922894629085976702913878533031844015401994217628743821372478370842094075987119406146504676315022357206773543448927766622838970718333763206228572064979603990328309491876836928418275604935725320772628600652239402234385490537076222354323460573769267768984090511806082280083920370127693589220415902117521730584884366440538959410917427516204635788474953547421901955667862713537492826209087812988544409079543722575846444496453642022593716570308493592881595269844885417201542690107620912907438190351513065213237037631991276503635057551493814086253630741132141988893636938697442411334402711836835312816299130966507653002557376496865583167006426457138287670151997780183563510044879075978943543929430401137857385629562420064614537693746837895673519672688359607455123577818925748477634394078902465234756903636009584530342128803041753716299149482589234343744004490840884507001708114037433379435132284087153727172745529032128249305699003241470142607684598858513803939481441734083757558422958817145105980218475216620367811016190579024182444397547347669166244303483066197549168432532249832215435487291830899185321795357860326043056092484949225312737631658768928957407298014744626567229536667513988105402986822042958910698459214886088449928722688760476053607811397527205316837689464364218981708227258641413003704887778649113101587379401348504152721973086154963325144281549461045284981448801649677726183850099848944018996869740287651102378591452053285980723888872506077568509125557267717687050520710674092460376776666166301912885148365948827208637660884553347053647899238886555923561175909243968607628116242815279052686142271690684885957356844244162272527403310026595933613351945239460662061521434092303040626971368321095647981743793045533092269062908942573112571853965118387781754111039962014037768825890734004981885865852971588934504853569061390504398268814394551566405517153311715754525928507059657295040354383987658553646655492419432848841308868144702929294062235968308937253993339746253821173475308490011941062532329153721823780143755226414336575499017544489931208053301267071278350823592192667388521476589904529920637730430111009614026462982406912483381519733498591936272775845378539595534553458142331832900411426595780350344908199956246130506610910493391117865886442374269631709467193064755073967149692009529149277140863067270205555368670656236864682082400433245106127936986612424001213302461628357331160861044655934407118059865965064820847257362087003790088568626730053496034160796078769248713488366341131247533427384911483527485207642860335248579231514969245624355581106408784915766746696638167936001484225525738842589443256975911715944844869830470202580275340252190165451583019427094179390922380359400532159514627451468900152732858512695480315523854367245528241996051662662885955339972380263557330963650015435930275489497035160562934884444426385983732307165242924376550964304080536039116648300558480990904961311832074444929602459720601008017875912261769543712126884015901961679441699122681903818128003880283604534641333435019114899814183730916888924350825024991990897080537212517473338276763721803590710181679368961561313935057157135701332445987636568856848258621410052508988216521873675111676626348235989040314156391499267472561926719279488976130021345078946498375577339462578904741120825349759455160099446566054513097069199237583818476229263561416554862560496638588433975332311204123541497119473661571429728038555280052592345814613999886562784079459309692542980050841366260351424414547340058766955586080626353647294268962971772206316492066591025543335368367981294213198710651521103381814288413643788265704439977816238405065623845883110668108213511132051443059318292515516692278768316725687985410130810718734642225291202304884920084587966160715495314125992952607053601607165134856403615442638532539386385775521014600955781926884235404518823946167022264640727648635415693027364039598033789512765005880169544692837760548756186907630487396093494589954253131044731097042199456169959460649146265032959657098783423729071006077473451996676407592401770889088248053447445647932813218002615604377073387181561697707758775891693912487609906037013999744166503857555251517237358328241657311915535234509940130558572860560915335694763063800307789086834962513805130742453768549225843643157593632541785625528188782571675653486245800884084498358793397703040979440287927508411977626156115566345960453753866673224485841490871489082371652030105145971175502885057268312144153570266210826798441007814783916677986686660362601918856953140622305812860387259458348312454517825613120126308086573849478538972307220053576572961783886378384135159398854670300702950936966937703279182145597603672678957947688386233293227055719862235389105104733460207632052013880558810635059638844930603246375447767709908638105335961103321780949652667188670422993877482176678234122275784162499328201221628484804919536573232926855216098102496923243767266435631924484323386600873147741327044180412140090522975296269999185994323906071684897383994200431399992528677672641980475923399528667046177707482313527295611539728342648563169928336500469311033220637650642781286922300822352242677543456683727694373313102506871256838757533160470478947985213893679476588668981569245953892208198775647993124611949015090660883383272149436912523827390745116234707341925933692654550999932407767871157080348138109822338460561311131302885721438294938444100179427925695875311774617867168160415162926482436899931680150097612241013385453344053452080866565234125143590719822949610752576882691217726973441060624782241864750675882831897561717112848580378827801188050032340145328492693536890642321638051405114308782997756969799282854305039171427074531956403731209515235672214758805760606640354410250641981843407496691750577221293344640743834409528706304704377768673042197261263275127182241348171535171083760564005663574005168747228649591988762454494027965988015419686857596319065925328362001035197399768627795770021889846051518062677734669566038617190041744623444049912314415391187865299630679315374015299979808196848006961947929692143289940685483568942699597620266395045198066021330321479734916368255507009092647585498843103690826575598196919910502803458332850141852197116226939730100286821055143349635819439334769691781065918613844552149897505348319733487775162684363322332343846166194641777560925699939415847889332728354186129040673088812285375108874629062763088147361974552183022175896398694044521457678729916795667447874846993564057838608914697219824537191415189525800587020124036560888872855768553654832980919196810795166272342117053985055552110842375101918184254790363748549085670522634967248669541547373166702214015171640749548819447171766206786702688628840746624408810231040243243783451093807547413906843433733649605598770629652637824930708980320195066977161620399549010419234890818747382476440846063819475087776493982760910464655831851186880826537835702664726655056114307864218542598736364355625839051470434404152473159896878774268166546265761447216186277868501056217279126905413447177904972667523291031380606832665602737636116130630254197896434195081585878981708187905247697141479731517129542523360097929481642825276211683171283609400990740716632715383998811987824660118018106243253685384162380242409667805236565395799033965911516992143691209072353405027373761410353366498643320500690761732805608205109930629901228883384493086320943547395324760391712234691628879611396503332835796946783379782633648399871301738558131716461333310437327148159606569259431703735445576766262703966683354073169416886443068849740992450352830966638318666711973207008593731173190176739448030713270026473945849525235717008313887819559170831195203645669003647128157319145257316750569202230600608173367874741514120370974169871704216407750055419637188621839596033888215797720842580082133153083968792326695894392883699552502349667686726690310967987414777769824523214785334668644965219015345967712059192067030912709365033973633245268981635737762168290534692849271439909822331533758553439851019124602326420901721986286083480687462164939931821827345643799557372456018757872210544246911667354047919696847001751462859563415424509119539268719628884360071590794249699954582068168853161798909737782967344137497789398523563560405448908633409791958291373719818438533113194341509027076705502099098260670658659581332052285900199262875864743397287432250850130691659447087741573797077306746212226631499181439258895898863091012902353669401840441114099937840708812052608078461231004275321305114639829241766070688638723752216502634172335384094443757483562553917619782491767801998191565520516431973063706487116679951551165075694170635101773605640341332346852712054442086502516612881684761354725381388732879862101985546523000910252336531021046431662955690525019400266028544821389793599027887698178018289713450812670888425910354080546094590385805563422746632868957605281718889709083303926022248636808246716643247043921029090163862817409300232572743645078263997178367315493688613146377203612798088088446093232833853958957567108326366266360298501850215256150306393158052617895210749637164457292757190078777722345827064199693426998128604883155818533662484366213565070241475133884102608793163093965372471736422904052347219660385555755156166254211110840740988930869597374014459010245741215777766965455224454065437792488831421688168075038155346399681663293058450519550132829607170743454866532180708647498793735973728536440867549984247552386203553674493627907600576515535896198175132357962540857183195046861604350806736896743301073374363069310607017679798989481888384628059439913907899852711884437347272325953380022504251019630977154986424260679806524043079428087026066677763511876012041249669198336512445813966028539635508226441081662328999537861599350312453300050814781487391246276323795494130963784468822473933496288056840207489983799361745388192332807205086292603053328918794232687492278792844480774413384797407054734791027203617791385462635698967042317274829093453811948974994185812526753463451916308468181174196883574822941788658809145569024701510385730070081183127868533396021531467289127554751599726382226079550410318368433296075273649607876084043905431503868497309999886695099571508262547234699911645155083360278803635191179760374355235459536803490567334054115432771650826869900475613256712523425773231027257653771656339346000863228366996874228390987564100353555250352445391746140105429879782514678299347825158190983175939314702614479645481684065345709967001362870252920816620291571881747534876820186023777481254703957848785885150869732888378837188492058718035203026934880634163498628070410343037328158762954500924898374554116513341356488631081273522773515895793445145985605589563310631268437435190479566683928669957590336202142636754092250337763538553035270880817452249305092269131887102387340820590390853852210362462733869928444439911033216645559216793798906855103871931302917407559891425057777419094418104356555014041109442642882793974442874714749432984210934964993476303787537452611574413106972490611837686615965152876709819694559154561045886054403528130100565460897269305016548854741489195502903786847639329671857962601866813067351095914582503421327371665761489400265544206497543694239170956667608447780271177622535097229606931401546357831149008963882207770104645878280896721346032680799401883363243940143598909779028508749952040204388184703712653966715457170353637024389108672516391960910774633258720339030344520977218016175973299828081114336923038521024197767161451732665589647447449953301448466446509968533636527823238159609886342524256052199537164884749661783773902217456075945136361323018168618926624291591198500551001370522002815762573421427576061744230410037474855892980226584740841512852437679211198679080648044623708012727635687467889802057886120521281477276468018343235236637546700484894698611357091289095007470069596072623825820101083665690874514426435998997858838592974134811847383024085487538455280839076231408837883096408762642061810811079769662524904593465056074585637677677722553302409927110154473662687206841576812064016175404872360674353836450237203961327068604797506169776880617123069856876784144686087424357317442581110053537456126293129346739140209410426754726900613621549753087193707493926770878845141984369035021343519229642795440714187505909304294430097436564447658334818650728906889950886161474471671102125738519202780887002762066861188359359556997937890449956723124783833688066215222657640614403205692669521153805932698025461517706087788115860162185825337192139677213411395108476465267234624947498798363441429097380664378631584294707232353667439016688974106104629807539823184678702539893454459693944118973504076947803334097526837790489094433611425942628924540963408609061713890808814972775243586474440138527237698877030538608622510035153414689994064049509308564858118282586820122341652506417602095124347881028898699346204704210147578811268750037429612673686544159282285053280910280293955711589948113305874936257266372595365838815300489537012210560553454172172449780283924566067451072620639419775480965035677496456907333131068241586059784905180020771219711423350466273682314473138648127928439417023346911357234868093866279369657186433171254270119285737096252771636060620242754613032467108816175551691754346548080998862422429240463512096568629616826092854391669732652389689028204834419519644540600146618078054268790965020549772553718047183688354732534287395152026619414164021806037324595635732563377949635052710597695254088063129862125625234868251143237876938773998304297097879606772305703023105055831052060931035355539288712436237305393376656482292558622293959113171780190878991449487231023683630754022825471828495240420734530006895873874113452467971660797807339748773320863438687836946782630916344622973392101751937036406226370762153615382706512429263085745283756473680338369942003108074854283298576960697186540224885596879891989846336877941367416166039191393415814793379639803215712758022552847761947391955596477846938272255723159184768558095156221268188943228818645507676659437255393013629511158721386185631664667221642887971494122861761540031546865163947889002594376470959639469700399917225907537917225897249318799763788116967423652654735035264771323928978526643963234810702886684828879010592165607068011994990033493872113084017740341576033099726948093243073931575525312611384053268712822602190382781988030589100208481476051742338147497447491516875012703336421818542414443781760717700150026436378083565367397637532973269824683516513341824015218866110227646604907965833835607345971417741891970697364707031957034590304755462848844656282170322134621736818370714580307023343876054140620654117905083783192918204160980839981409414886333059397459331353875350591239813120102677341567960934476180221337444888709918100998572035352402987079745256025835225010608833273641054252831991582297547092270577758661980997840060864356716394132360071067649462859279045902818696645517180478640558020581288710735368671103251470403371785216707645866382612653289218339737373890977476302076612886802656349137158852107129550387350936491506582676869844558239752527521389541037676652608741382012090919931464872501884303955757088254387043921015297438668261686420523777915530590830113133608769061040734894895524209727151015596693877412525771452031181389362084097531264065825624458309056129368207828875699551387804361011024650244224781954504776264343103307537386373318437856256569623063981952062171449444265646119181862630976251814668800159343954064114349072503646519777912608098299430592395316281732583327969478726305887532342124578841953114574194904885725033786539228936849916891445392493437444231784377458710179884752162548371897620584812849802888810038133609821428262393868859137224034610778656925668158797398426232007767904618865371139088454091556236724491599256577648814331908782324063254231407015739625956130685486114361142206111923082409162449199446971278274338634560511801353574331924740168110782286193995074803440046121549064765360908849062153574147726467413937410969807906779006080461411055469867099693696120792924142077387438585371950095136252255058681538507418132576505229173273159676899492807902673671892825010830441334721150689765781687315484681518125268737367326069909959427654761504105064195105395488761951651554008311120773123081685076087709795092806235043601961236463861631925133057546564233653238669978618054815951720537821181090909399022807301496767986444773147195882991825444338647204358525038197181522740619923327641773870604360422314059232104708483856787220425804875595203660412650670314053513120337379913776750889464262889386713984237277287736311128624142370073742625958373498617658293815159914860862233142257930533638828112886470682767933552887544302620244586068061389821110942197133625742333555898420361947498628077065790055402823981262013063312117960161573629059082730488601680958368327022608664027775564409277438629277758524766233786839135050963655412683630438318007250843149574572887498326235879634318601506988326528626107035065154298054209480119409693837273095286261428547124231572935404860699052420391639376939342395652978464852685738679943574691609319965584810040984626337995102429071258626907569467923126640823722746431467196247285578406774626175134378826683829554860802931423414956173148832555966541137474067089595023713137421887787492687556801496428085016898794887862217843585215227905411375881109855098902921556829764585368034522681521857132572737488314549204349218463242294578038938168514298432343973429727551283865248902675286092702251603180470049235379686435285205254934601446661274410342963950075653759318058819874863000126599293342456877463321743530170935109583714205798568253441278593390658786944364175655866520464144891464436996263312050893972883046331024217040393278378872120905564662332888956376141697947731602897342104135836269883661600808049279810069848823202521703651849291786272802454430553616482817533547517334270922914888906589604716057103953472460728822779129343520368854669447714387049153945100021821280660473027259651942827928092445615809069565089001007345072979602907986491024805962367897818952840595704030126273389969649286393707858938195321242742067439034363002925298974082089166757961051929583770276511209888831653826972994072460806347317365950864264918496481805956845817819803780602228978863997859723524002797859035048602822833684973244133442962301528356207097840669068196064928536543298010476853402190728765470971906763683703442965806881431920144750338951067365866188022198810117973849022898212594119434968996924738282434306723759150265437327735804796322596047866328664204684883041735459614289006563813057622703523949523951412625458218504671161296169053925649024899707356966769772860797907054993218107729769293017287596130191347423055646948564484838772488620701482072975992765440493093980345029539573322274995024988760323769866268030917241385841001364274015984632137465773039779020862924731464801394727951311958771859587044761615845653578823827031009707820587540032896920180024773932376530857165630201443885664980611061662981321128436911020722846045973161181810178473090487495186041845128939345774531642551902994656872223934985194916785050373095491155874473162404039034266194917438297281334234372908353458470377865659276883493366562305539715166898533913617782830508649489523925640160187977625392238831638129663479753620627461338290003816936344136401829350425316951247222555865711764720123507492191281171708623748525713637117741318488462401975283998562789670808598371385490460988028501002855473172643863866918225115320013130832348994943241907987552715292321121752291299568891483766974218042702907550873866650746863879202065157330683132423667744147816990957570458914906204630695127555706045053649865354438637139493397453443791265192519371192515548457710450473118905361501102335499854139522375266309957047023321421855166468623129199950956219784752718888970067611520455271830312758979689768175458451091255878205314099379023878236765805330360425426605311052964234256503312083602830879179277390199287609620563788186576965208458852246079244508796812963389599892403409496664560223179348141460207769687231748687283799373331586685527244560342201254334588367825343155431072343059946644191382439546133409960407060981385726794743311029170486179761928687325364242396993620397120695392433155840268456174348088163639685487626737802007270598227056925508738996474450637623023699290027018575617643707339632606799713853475075325513675309875330714806225541663062037978181231630618113257333797959111194563444345455258746911220273957607379466390581617392745505216373552594479176768042014769220478333630686433973247520698300782062839198770349208635204019018369388788466233212278205880350055477041734301984978695387341811013795116238862167926398102151720033553461303371922749148941089878383705543200354820701618345365850546539763462475412294513917213586482088846429653184569513347546278637870393957821579014918276756537016254127982544954717466386050681388142013154440305650378592667513218669016866421352972954471375181503489779786730339025789796811434640864789433284096340390824130017822911414075769160263724547054233003286411441524679534029536103428662271840535263391066285822817293188413582711959242121955871316485922980594485810127986846118190488079250691417504821009241015073450893079599975621612218693152759813699397010771384449531231359420561732320347786950190237829887485520786427426492682556510536244138919840177243020434747735705978280176643705781280036693164096350450438446272363031921116971716199976480002939768050310676564027250757482016099540348487867881282040893387118776260118290797103968477273049720224616499399492558154738677362163095419608149377957599708086558733404130396476288838900717975213171996666259775420958378357767005926368755094124760848054366524673774058512292601720966300779641035148388937713240927004769748923478783183540730675919758407775806211696251027496691426047248141222442429349286277874550419607000573010725876769301461122257075695300508893177361363358983337457822161767530644497071380372635808268156744113137474287961197326280173047073553521696779732567651619850040326832782260401093075298215129775201468350802937931267301313118543743367388964093868394624699505173494345355882891827688895975032822886636474524607516586259251686828639550982822196750294618911758382717179306430167504042094501724873875716655358467550709490985896353511418963966817489849864959018153244019052362763444607482094409051915132025197745279268132574866333838546734716810956695918640056829338689138092798157280900641205231824399879833360591742992839173183554432894910325649774560138715806263637631936353111258009887865633294708096841786770084026446363537436340041494476851805021252577146349066999543256663293667085566703530415641994364169354958604531188363926327956627523484754059554218234220227173399244274161022802401332386731767783767725929524346540178400071370324277270296394076484965546467032099599099346219315099634550434414184601515715483064308979401969283678819458698865096279618573054568023803716634453910146387962556635427573063634935023062136755430814234740766837205807328853873490443481092809837876818327247073481517722446300269295245486418596344025473446967834536883444951761599097783784820906446296091728685813163136691645189824536332419512485870372677419078057887171094993019860800936660812882658805376051829015041152128985652717697035432293064822818773472877524204093362534832576793810845002136603045458172229272415684025716021381182368553354664308938660717340518497823019529276597827269906447223564220147522161066360659725378430949822568812892358823717877216150106776286856178874682482629801520725429584044542812724915355871438955759112341104365014639505109675700343605858034568422652936626175899920194969744331361023869659646205264332637778110405439740726679180276017069230387307992131769048307127010619511024884009860169336688974116919271959898657303564543812681893760975457416084367042826711078282310081425014820394084760149715504031714491909778174704036600778614816703452916234812010831853808117336216585636501949366351445801840454163543095960040893483763024687635607409338699196355460305221168074212716975184923003488647728225201633883762001823382508690468495279988553971605027601561679713909269386585043122674467868712274596147911740999053543448575544204070115264285544173677897923841104040326041166973121524860927830785899392139221254232965308251192294994225440381319064704978529635427886632312610973942733647520694629987102715246556759581484866111280004195558325497224943956252917281971202035743675378538141390139865889881121102060393368337814891801764112316521395592507658500518358428239797503800785699915078972170093642375080475568027365227595411625231876335647912456877812297623495042913672866084938079073134440186084841621163304903270611120625520015537267916482193113300539664597187669864299906679389885255747063940772774382745159051848320414503977151112891948102368801947469533181307535912838267636250174223457951786469938922689768072106684853962863602727341419924483082460016254499542082485065241061397680174497664417394016139303024434072222065844633502289815608831200482159345307293701996699459671819960085819634695465558129012578396600988048768542160337523477475940236870338816331810514443083490425208349901728579422497181127095991603716346904951435714080718756116399679381392369462798141874943031108461052351402627314268344709844840982606722566598143990140527701403542710950120291710389895982456086789995400411570981800004089875364098119101257498370650115618388361516195931825736033440208330754314772569499398006617798894239221300221994186941048762064775593855870843599612664928121538046578233907243846136905515666628146763313423119530772536948458268222467028094768795778846379188849307746188588151992348284928786258543106885752534980085787198234315383910262527801420961988513863090801493541706328149324924286412645601838163044867537028963671469919529371904709836227425879156342408865743110855013245384626739804863834159190905065939633166178659410548814505179705490432524576852861254416170011033378121324790113475360269167342164457295576470104553627128231143846581186630045006216902001980244662581330889986629253403008229670597271749565822384867208116342650875853795312369483268174665094488478502202386408183305633298793942410540501823058440588957306156525193820547911080193456043088616171880999805990811593977623591081909792131789638954899642558862865681125281040757212253932305632838201955680988092919089703820791488505720770624932453892860843016931995194050246100600947575389495673486108280580057187079914419799383820146007166926349712762456046011839501406665860217908995042407177182808118075678769165895345197088631165844526893919411742452418532836379512061823841397224632799208279572646616363422921577488785158824070048929063801639067618398590578573047333875429755755570007681499658616302168751213940279318471711792835538098161999380344258074647634400845445298905181793369675421663263215482039388215455463150120614158299741667362662649039223307036626219882413862009668471356109404585302808154682979125424238409940930009471438877856035018526840073402270520251000251889801322461762882466114486899276886259674235640692309473263796019009019286598848757244984264395251267255916395584218151799728809615474279903658493292188535984811366163931284650615544241731949042213115284005935347472880599709315766353611015077484537005143185633407053144745791744480061575529841910427606699877239781858606887532110642667204756064774652370255298217921087878824838901484931237629218172040972105469353161935592053490526044791862346722779003511543896068149128035620132225852444726849642118231039056687368807066240621216278327229190192548688119721848776065768089923959888687300040427118337424906964658806424718244577962868501378413781737462280326928240121095234673777007314841715046912232829020290662795888100191383594098289166540332109890406855828113794728574429932743814015842923501146508490511309606319570176365933335142652251100624267090036883280242973128127671574131348447434906946182208622751285056784108622724336373337235286029300116972015674114460121193076468314932726347684541711037085940435530096268251853984638682684497440815594540272639784994241081386695402966214075045476758211408517490881385761867502365400250753678683416810594611388232752920835516202892075274180139311578628215898388532767955551762881679666437310828774272150836281967108152366323838681431038687011426097670107345880071124875297387233928016883299981210263627191686956437101934121998433658482255211292902187890881666791509921146480829157302129593181865455331995335158750750003957387660544394854063038467518009366030290518097132075935474589426716427382374236533557596185977006800105427727080289187782094430705798377004745580029670832166820149370101590252387479223657233966696135588469962091367340632430279777870028176667292713921879654198182728312282236594015232101409017267106967695304342036407641441603263644686569219170258576920919090821336333376600978694334835991974951879106050820728412912688463004556700342637382336599722446912318401669524848350700496582205565867939066795493504007705014379662385046977125783682615278698075623968306352926069367826876073297706364456866093492334362227979605652139191008211001628214071850272232527057592144139325692083691649369494149393524624230001065403216722699379710492857998180218324659456786468592532534242427987981462182935116852639532101287121198977878055670692974087483324838275039845519581268385307661667069969115467516596462847749498478784111606450998562098531462582710705856768732817974376138850212254411519866652257721114570099970408288795789980319722743650063536344569415103522075972792743251581161998045982744926620853398902992181174828336926160613938542169626478201478994127051546598189775109451941218841558661417208390544468332586525536374064011018143504033222209693363243788110622677454890827412740340600753332044042240860690449828076299198868458894628471264663979167306749819242115943923013081443510327719592921008909552984540218174571254793806410258759992032073302058794774033052989143656737364193252628564813608478699723882410786502989636922972005782503299703308996149758943741748520345806694061838854045912990012962938553959565625942103059774371976552445830391059818930526399840335252497711800861440027835488391486714725074183338704970116486339227899185002587491921568846489468378942275350490927649614462734338327400129874749467198481538515417863536410162351708093534330037310445868559801297892016325189310800872793156873217610320833871189370781725556092459284551048006709504799318713075412891550238818106397537119185028302239210470159666247385574962484295098719816819832597586342904848968872501191817777968324325297338529472618804934389240095683396490825824275620878967331720733989822673205290941109151814376191650666991457902625719464569761630508350341588594741069792762331471360160608007970849499298711579465823054896543887622156770937126102994851456239811931781426760633805894670898033376159152424702196969940972593491874482837269453048167046888219330332143693855664696091576825881490252832574479374457104445839819288597544540232932875877477069953223284572126467275484731205119160328092450333445816300618380754788168404877901357612417054018295855306807947499283309745135990004524184387230061485057787912672261082955718634329689776086167934576358590906621075574534459980327026993776892295175872875199304118576513728444002813108522116961931567645620468080667992870865121101152915939228056328207774288836230320117860597280715463221548670523984969149996286325941918932700253104876867640291146534135515077695696786088587065089849458940483858305495772763042161349768230773532800370049959721226534599552501879383004014798768069820212060272062236793631155438979765275831997917376427592419746943292968887553915439014709878777764728804656491814811035805583604102638905657914996587806255242958140188974287029522401643551217710491286172049384943056561755166045108772603540486165151904920299677241613212610882497997188762719627244603525794478871371870688048593482283132597797012190492335454231796232761513432072020877627682095734542753546240625800319911832803664056864116595398484348513345068059802138373808457997708943700564507936970921387806657834700573848331934695676058362362155249869298564007761267293881091674375820985042729093343138700055495603970736152465156457943468022717304335411293322686329477265447140991628979466556381425764463135751984575755214952216885687296724891651169888446468780759462395106051749205678066783011482381036346611397775848339430766073781962174980176955197420276230783779250283260495374450301493568143895369019643690034824101806080065675106889802308016199194129398997493951135112371672590822926567635692247444772960922948037237366689366697441843307504677244353224349633017378180948836359716961126087301069773389921986404915039208755445044219144131986072187590592867928779759849195797364901501989889286523161157599707680656852215238510313632909019559536621667880204184573072309186694688310530077038903549329628775394699217487223368943885334562817981272743735211473893907767345421442736445148177093179140121749613827675555299611375829279587916605919081530959888565879633455513014905666763965369208256812590006094931424153589686412081638410462701701875680641630380284358649929546908706189548216728831325681050734215562039671861915524955504412810780580392601729197833730420044348956950419876153527251055748655054256440569431448063042532678017670001477760968858737650376928585154088324280300044935260696710410741224259070694745804991762287801589375485316428720057575415888756527510721666113238071983210759106202980341082271724029598447030007305804883195489861034347178712702411389462884035917484674758429087798586798121905687769637417474928231029480218144568754011308633271116331220243438246898071668689366974437355637724822692536747240320253483328548919767707532847736224712106708967498681468573824198245824518369177313936306071766778024258613345422950060786395227872391041247828216282539246318007007551694028052463112883024893781001327425860256094591544034391786230180604192259255585274861324505170168244135422219082186305650740464823754643049462598838389830461741795539279338818609258889424573433496894558681142103127965185982198302857236800141236431369316987564619250975652710355979326794331341575180900433423795040317052451864280361367299739694852592907683159653147489719240755058996682199773721237812011696957515676997953041187764198478783822876070458665850532285394762408507565735521507210632311035094877082158342989722701653804439817324255657794668881916262687823297380909429225763599250841823561407012964187220137864037668541816485906389298893202808101616943372156792498937165205269446037749723901995145695886450846758990672867583402126880643643376681846365587572906392061965171782795990154508922243862610714849937883178359496767561694059130856780069662223844474708118663647334600241110466875649347108828557434513561648923546740279623836743892435830684318761555382056528326955162545237608116072235603937956774931667328668792557242932308843924873062130725910504393326827532473080902682405343219283062220032562558291888844425547516166673803306691697904228269390551236749532292852036304588312017726432434796334856422517307203357536435606421947034168827345604471209671058544549142605893699550693909972296735223535623549999557643436593251480739708362687245648765151254214614589805841034924881330107647909326316633608542661272609916632969731729922378779555054123617390691742013691511351647259146085234563676447645853607012644811635016925440692917943241443478070877396228082753321765630311910555641840715281138796035194253742339831402016602942807433187627584389809100465947649088079210213678297587492676828155729674991727538755154445011262813490554611483318620857814059053945149712165905695642586798667486784693974999755966560114515926289633166748260381024906637237249553129632258622505218604314781760280113552314267366416616855984247920516395345360411272091383372593064042947128822901217735278631649562053445280238452756675358166147385308056556626778725631229690950580186240969650631979852591890885071435018019304103647083270587012243910731536099955553940192212956801928357411935263953877777423639373930178078434887469583041309369077114734685341959403315270918588776518809813273679749489985365807771537914083941782179866867437418949112894744984034127580760309334181234658402444882642330995454253163715205407152662944513348311677846515230740046608526709425102714990045861369544375044975055261527919730552971877397238993944567395252363475277355516438312628863123121533197236939949611539985606641417269346122964815245344646786824008543873891855604098198242777627064025607439000782261167709837424891064178626470045976990184263256756204536406590820632723233797474096332999323705379777533240549918358020188392092322537061976583367901111057957827511942426760363512154009178079921469149735065346148497507186074954884327673520214933009288663786109789331396635936816551075002165896917294427458374637802765537233183899571069919869370137338639575266927436913339665480532454831995743558922207585434190862224136420124185277469312219196099678431892310994592551095228481861071428326097715227963987154394338927570850391232296846102941337456735279027079191515776598805970532450711156353280991126806162499647520863864011033430220143239844384307897185341881918323614239856666398810135130847081572309660804971111418140144921067500871870154496500512952327770180891422229633427480114753165849540518749217446418902260992550735334409595686943678585027797944592946881216494486592109320930802759105556998266914469801223118679119636530024802399737946829383523191601669534971413498414425872116549788227198305110711522589880225969747590036556870807542648922358508047068859409265813779408268145536620585028459311628983626256042660868317671684058140502684710165397758414641222428252328626368421881902774557554465724501005980328238168002887892683840739316664130317594777553260378075746494924731274217813351223501477111317513468128303717880664341646192812971823887739809575479789667011016468726181636849764961329390961306910090400545911388453527794182234952658513674385747841238355683748043310391865639211191042707789271131379702001937545429263076763741341901785154982617591081394670794201030366034016606775913655010074862408289516738718335315190264558627929022086729120940240618943363080129148407066994356875412460124951859570097167605344761733179399400937218970259177131787652546093735335243514934765847484840100196011891050674241999342356388219041297965086872256932907270391146062914290774249734750123004445687491738707429696768116779834043433935680470828757547037414215982101953228007203886125916268321018361784066845353397566929534765742984499368045463008736333543600416813801953346699259898786592464919782087755982500494045723750933852218093302932904142202567327543927148674326787727538658928081706249516456158343812062175593807819156593270996335300854899408244487231624722989563748580993379181187967317906246988897395154559232116090686441042267071669331745092886924876558502281308770102264504752856279562815853344910892021446869740256639713122344221378775035671356956895248579775440475782301462584328896281550255995357203532764500307791899159989219567985645080644459896920590664872902944689598534911207016661895621174287977838526546135697864504854975766774661420037760865558600733263156825054694569945481974987298691795083384875509068622873559394852177426684240935947833275175218359253115112314466413992949205451358396128545122275163003862764793152393833181134090015304925913766206879863466511139593220972334206488303538540950911272821452116946474773858258203849040376718344569527101517162674037698399563139589103329771059350279078315119152612234798424643873084590573249267598099614659130452521749491478521323041038658438962193327894305464930067194866094360748120485353608458128654433616380687064875073173481674046979554664417688343652285260052674636726064451951585978170087643933470505929373753487479510170897988869287945749124285887866891339956436700069843863026791743650092400129885826279151848280985956243431747370523004542077557670287902035858137745760854721671748476451660013815389862643954170669718690302983797705839295929554176233735582560759047592704149693579975562726605616359588895186085976982572075600734977976398753097966564720423777089915174083725061422009581471966335297288351303857994243535759811493272444346421323178602555635195941920266824952757656348032771753537902971319312166803890796008342226279285240594638419156858434492086537166845819922187578461931700860484142415897040076411916335376456984232171947442745799041435384717283648016044793312100634492516839536248644824260851875659344755287681159077886207684456513613861638015971625229422453393091039865299889884209544747408914178755915538245941723500735841441191715859227424075102624012875890156222972062816672345207463829073003289361043255505383639342393164526448794585483428501967712767048232658607292571218005659217482120894447362887055610153715676010181439072090428200405768864774352406664017831270225320606301553967427393416177325203684768721868708729450068948368644651063127648862671665455875107358576746930260132260661887486494296899698766862836240493423633773595724370108072548912998726437588365610213097646293536423332220746477557184542467802430201330328347829287984277934131188991422016579497823637813886478194065475295283121049472867193769737900643590084411363862675973902444763812314433614938179704332647403092560037292014561480475507343476127291659432473959258258395221390681220567299578841135385588738628332953560729977994366329797590388718397346225259927244395994826886149076745157447780182313933408859874117658536568151565957721128382286101162383682232238322107371370749018440916460308060759684341304447971561593489148232386720362836919431862539340291026974570433815167634762892036845640982092657678272714548723064424150218735661311742923933176298819148662949578578217024131694259890190825051346262800736036007741130637210595069174437059069031699421664580620044789770447844789477290743145811040391964860569616242290511488696623266696452594691042282396842683259535122275757795400001637279502702555373796860900346648155528901172356310242616451436364906830879442988243257471303207268339234664084590996970534432543342918490689297301424186027491753703569625024083588208606595279339523458275907664487596719141695300506554128059404136218839130005629170474199706513499758063760381036752667545302354724383889813669932127343806816826972455010665932996252392430939693876397848863685169684342973927354877743010475272361158115071289153728811644990688185720547770069460956841809777195382039912443913721648500022973272696590499446791109748665149732100662401929985588012474410222226650853298977852943469424140439861053946724215840721355838227408772658651233001622086665773298276288867632415912361130699898006916755220927805093764630940699370764872150136869799999751485479619786748482098797952387103208825823308645232252983281172707827261135309512532361953792933271993159146160027629984771397383309320819800084876490029941117550430497215500175864912742054115157375346190388854268770488638053726967005169471703834568387938899404555926756345786626018828583370481387799693663550740884296382800404475514529712963940110084446602204662492592587459974472894519740327690561278745238426475699673193932597929993716390649690682431897048121353719711112192538031040071250742725810880014135892068166053410794339791532262521746372330100114577304186738825099555491811812117556114142917546119504929707266562476941756175321307048625121763106799110532604236410178400114597017993468658011299558233660789630671402612007163181453173431496830571747610198770212071374440258036345945253759412074457495319325623402215077343755585995795211819858079672505164766250149062026719819440186460688018964491511863794227949097754351422959441011910087487835536563723833760051560226211400360641065363438133143975790466036634965554946712267266216804911142463967124927491769168930473573255077587363085544720887471215409599647453445700115354052871238454524728756178808597932162676001806348620655005400817931182483046422723334527264607593866073307126675183448821297966297874185978393072181567034529209828378614140570438356344462062162032396965650847416224315371813390953434136064775132590296423636311596223356240531466317784922578771173081570667355840476535495049187836795686842843324003222316886855771113514734460158142416382285997183613288795144650128421491456238298435134311999130153306032710083252747811370369082142060877011951101659336868542295815688538926712384224705063820479441809821120478147884292520230451075039179335020019226062669119117897875880608270028446661371097180664575275938427581694249892866277642310095697071940471703413054249736176705528173508827650339551294989484984067288262949059496933874118046234236820448897276267168306697967908213925580920056370659249060803199724497183106928591384635857656056644224594989953216950311098247621516300930474528400370898173257942873861373090536115554296897040325549818638226202334835684960031077542496215050817805057135202823409930015961435994835417149361328343261195873229573332419011593120623383423911083730946414465202457733468410250519342759223370421445641663397282760372004333883959174419105292812876849516829990487035630896198458030361398726879651986623595757548716448616208413391042305151874221509899020422468779576739977371000659540463197106658124767990826988940606069925743076681842498131816442928260643800571113214965650412265873443012329521774637539207780274419324535843348034006549285940831506447912475683884579557774774335888250564840754399974170410307180991991217986264049052130672120124108123701826548441154374253092447110614898245389960501836146428152688961337483837144853679978525855160133158154581423688740077591501907094160418280529897296167827735182981708252534688667695311076525886579282513852442864108097233587115526682251082058298681259681013948000027623821505243421836861068788779823488264190845079632865657955738583043051943096793424562573372872265326697193063498822693629252803975335956705581103437694701780241987398436559146707458225560685173706279015367233831498777542043900501878651251091416310529314100475153982209904138426213300752297608052362881713578069858858864584841224699461891205130894211218263157243333372592544326503605090917514488719440635571299013757501581615096940186476870095912558619167375620323768338385385064863745698954588240439590674874083252539276875760936619271409102042459138787742316604494258363377179154081566755032803628323575402845665548045866327961404584025040636675605802346759028635432699307837559538459242083253088862775543545323219143285610485852236542360751493035480269735381441029793113457865938178994012673471268132958051415415322765470215592372117146983656561898017568540363704107354092223663194648814350154050435025839403433358200321180781367446127307042328324443340026197651980318855270838174058506892444949847136565687360079550721483037088164621299809688800476311804944168994925066969983907358875631246346407791125533911942241456311350254813409798331290675706246203134524768467269560362805616477943660317478690924992543935117725624653795297343889508817410478712830326018036144183895181957390613952685921169081997668391825168063111591481352097147389407507037842872703994516426430129121097675065095449800970696820021079789651055952750265882469234555296712480650629527351570959874019364908198075569889882995570595618057585714757510078711152869114276350467784554159168354625439370289386799351932101702382593611142742898298928740241274628908621854621426838882905928966574455821889564085210603717675490423961769657970852153986605992872186161150703399105388310964329097720802010274918795804084428314867034814473687021463450353217847308167575668818676032213199122329052627397881546213771044519713901063014195441955562687802757647097700287834238446770729769485709429945911055740582536193270207076859842662990640259363726477336005922189348865708193169610362471704298826923823160192433987169434204175177835068005649495863016122141844906298566135582530727494333066271024528062524075529639952381685191864154542581690176447250815220490076189440542005953098033358968790420480956916124151816457992119086862565022105198214000827452383880839526710630301459954475423910344116490383400460231497735800039493245638395434060977893406939808929703964332986898311538428569968564449247269956602525493265922030630985206902057622032383290179046686838908386257558641609612187468936894275943164880026724067336210170278424528219630762925648681800324979379526582367470751933504259883648966337714545218738501986914201483340709039629463559203818287287990752855305640988029202824258989744972138662320898687238989848716297531410544868309490302273391258393095358769224957718653759326161579655257122740181785985214488650175858153367670040527372729545646125625217925025906852807780407946714946260916266259650706275512000913449116235617543123822026755396386870691795881862261542873487155408493768905377946378288032853296274148062278961664994833860111382962940684739296294960976675541917482393049134348009407702731222120830173805215443607514654537843544482838924961622173138026078731021119286595834757049565431674270675393647458674775225239220019915959149070147044944894554463031943857928142728999659445749326644405957107854799507583098814974788511109154121762346249832711953185098963011829871105349903980368909649653035822121772085699066287715898706649465796596193265577086398115869252434081969829620843998646172037460637053299146766982929711535934542219461809253729916071626878322978691188184392513513752158769796236706761992777519379582404883515329368053663983870303654304335810356017762091861396407448202507495982512991756814494248308766668463521380824492461337914229033354543775103566792524955103710425982366444757079008025055538273840940211409547688135545215858020700243100862871882945952173443822058505481176572450409839870778719382521903314570827092605614181105603355472321266595743360919939988882387429671190164786964800322025330845422500981897002231545735036260900177265820068940728115588217228322952777349364371182824261780228049734885631707481484978601116680302882337256124358298980588151993667152519277161001669511261789125279484470930127702351425388929891588495528717409104403924912401737283379228043573906147705744783274698861070046325780799176451651027054477504118027723115197461289988525007103214586821459030413596956112172398016471837172008447853359293565286855053401984558991120965698482238585547534653879020475775724610748383191532651515847785294522903966425933059908707042083380766290661160127724781727636284057237009640020608830922809757669872269520589690764244948238899243207757716284805740939901585863776981862210899156080188763525638647071163653284766533856539297508289594327591348590377463800017572389132646594188888857612620229401026390259493545900144182782004543849868890886356222674214727640648054243002286786179895541510627656928042771759192147830118210556223145238177215522770949129022657824030156764767859447217318864281693387642299838760136456367162364500104010748921489279475039968127309972022713564374361310433408174042999676124192629847489202769349423611615289852410238570076341483952892066980445681700486360638158140773778399032568071555366896827255434013999502832619887160814305699704814250222093689780957376104502260241753996427863609347202726244636824675869366490442279516061720125476879496310864227333324287413967079187115433805161630168983993467471440185889085774976283727378639756510610988558830405570329295836506121777029967876798551855657391928239678120604035153104568554660870472708156797023370615359698638009997757150553878486982746043732746717211632383627883874988588193752163792403890165102524684423372153653005456459466440618661365085522448051661501440414302818766849152973093355238404752345350417572107617994774637832854642566805038469323482832094161388538577401031387282561661273062216263381312115877084107222716162827792602041427937785199900811606280914395860479476997221325506943918428099810903624528313203802558865935930670799564083715601361950548014706915055259532894374576738329242165083547047393639786894629510599985102634357483746954524727877312506535231490853149883512935770918854072035444427177995998990075357770666498634929931649962727669992175145383480696967478673701147922144039977298488138847903252703028763241090972093350365398455987924842293665549583676466051174280334235120229236032034649682013242593015360114980814270776769355558339478512877217186832224394984973916527720169913900416454152898779159064250980052617186193514109793849528709806112424406126562500866329604517925842092390743652200877993634570992166702780201650935354280726012432550567807800979249794990852921440346880310918296157834862856154326762974023100282358209151041609092561350538931904324329980601832574702696384583743001252311614936003257223529645235622575400220040255957538527398466899111062785151466575995380890661518093622687624704043717788276885821480106746769890891159270326462890289370381951220557848617415669810959593069819929179234181382796593471852119560676343297727828656137209952345523275046108638894598689237695919352320852022066216699387890681087319055669377911897593492528689082187617322955509301768473946375582996946119176442695075187493387284663517028209762816058488727621545567457383374983563103969161091311943686958154279152336524068938158661913236601172441315286106746894479477031447002792344051683438199834594068571308113271386781420255757054961418394602218171603824157927018643376692018417252605659484758827520253926815466935023563248966242505733566971348479995716900717429957930321592644181762112950727615085898744211461805024599847177214190173901168056531737875960203632510572808255783499789048482360066759990881599018658010900249648563225006210219016120870880748113898115498012760752355985471547845162204482207451268893082239507294148402022002211622548245383052754139191602660595704240916981958815836474625890611904990692351508745865267794950590589690648267762675856977353797789288996893000703958083116795751990087677382193733699378279113325541889700628241921788624712172508635307994009577095736785120132364038910946453161357523935932765573223266216673017994975155866695180305014075989377150714290073849551683002072231217351246134291649870734573002769406700558706638139345659528950224180655697886391432907567202525635505888741561622932899252869623782781834130018065309954671166797380302388680168251973477617591996781221511794940739809506503302963093696350072461966168993136777101447994604787342415851592546488206560216119511099687743472671036636910455194160228016178544613148140944111251780425293486783911394177888583836316135550368650834720497612475937701995367732827519816876319112557096032619188996247424682409420806407025523462315186151170382514739258399937611882246553936995377791505712459738913626222419765457955816687391622002750322638142115746306228814576582243395930985277038836601480326701398749245174426125554115292207613274989476450375673176180651859813564569932416377236580923065387419862306772779166079034103162939712796306460819345616949146185128439091509630858126409465311343253110126504309408706439207830351941497506445875760147852974309294314621896170294044621276790963932921466649438406937459584885627401002418780923251703875462362388568520560579202132176013191966547735457830621433780441552849066077259314892727197237777696071527336677007461863100909225003933302091250497765138096028467307505551871304418098022491829815496293900158426966426107182439921871668971676334124241682904799295557216707474688373557676765928020992784006301078119075322956160246283470114125584268203177803052211630257202313791609616229349454654342060840530125473304419389111766251101908332083613596321067341835096747999085399086860717474690819824376433085744632298174904973015480962798919118728909891411788305509986444534739726152444266945236904626327846114572045204515650133005688667675444078823544334444928413132842006505890135281280188065125511858243620271820253777710057663647109449252669859313552393248300541514636149067711412030406177325920873319553314875877024557545658359208107694527383706836595648962324918702291665661206559818727214167708066734255005173435085904276184608364411636020795204811554113662304888436100887752008331644961131416764373299423210209160632223985261237937276608702536251302069379255944779652730005566062396275073578881497664780167563555677500133896807855926233451677925432628480509476941526061824660490003106285300458729103763909291425982461723232496351673378395775658519306952130246561478575844052615072442423133088816004773237622475635941652893865276193925011143454508940810739353571659496503396382655194995462256254338942161667101104169124359216785208032571041872367263452546485355240917627717950187476314773746808627618652417544854440438490873557951423077490353919746317769366173054699586777740856956398944050712519069874140911680201666578922410551849884453138298355115823471041318482027530208413487436264256776390373589267288659514785980821006491043445483238747575152579617399558870317248417219710492233331318970422365808395882489956651018149424388275994073763454103873429346453619851164455151875921293431170067378179568121419278991475257035111989110740304520913258518310158098896104428679032555381170755783673755346428523603912667523325653143349379231203565797035703249106058867909531131911484587513764694755348003088973824332389698355813806700941857146429108709338266704028019723765537803565853526384436109486604148856096552062605918389564278229050830538470797531514599451008697807195358972229628905236345064860837848437846767824297717762503816643962994808400559660767551064497763765675200761914085220124811815587896032220393705305476716746198437808513408051046414438906415353171784895108735863674246627516959710457277408896750700375363082369941772898532912233087853333997509376093823134637656738381851065344545736920445930799285779096173734312760162439006746900614992487451342016103912417193798777429779194637936795418503102022313858969757469279771086921760341713628408386493092537837739250180885630308185811062038848266678103567318455689494554421557375243635182449810726245695687599416746256990523580901401100637153901150504907353474744629231283281462826826890263083191664049537770190465217285537017199491085491816757693941515293450042268498573586200741009370179518493944113773068960753981197503053761093732032462986951156251964466377554033298515964970126000331271060640311520956733645921191702694265938897265629921186004448008099498181214757178198881893131319886616644641613140294208528150339437085403350758876719246040594238245822579711173169645067252551899989814684943883229301296896836872247464222662574467292140783444062764238719576151106669321258129132682212745201261249988941867054355479225462542251214551229083513067925639991214834597878450289479792133865075426175835023928142210250893636430852161670746454487513620261857687569258781586281224391276764664083513460085907168404427878813277758880946831137367336929689197220020734466776128859204228581509433270066249708791239563662892530985792587698239718466861094825985362062663602552915224663403539879936981254033366009664103749537544038174151831933909406416458782207109444955121329836879999675584745652845705684285431302810854797832541169676141518382358127962867667120950507211536017252152407990645916993620578750978139133702033443396329446294596212874478665919355001245648687209337871952361592092585189304376396207024512507066885417526422257363419914029062736569787655892849127071832822235331535327205946223782691333025409214386210485372660079756187538746639330287949595247289171203737243738024106983292927742037085167813991978872765126205140170775503232062101517602900099348717351573996001314685020504421582089999998319886506379946830122993321238340061918029078110922990176619818689343727645709264967411003402027658355607724994151129453620147278862237670442750495397132461728959454309274903620163062159030821315596815915615537295201721258430270265449264090615514146493437612950276498845661140330773172503826006164655957042252772472121797221151618302976535449693228105600865005574979285485387874042225481012384239202667823212668939100282317912792648492739551464485642572655784977629097207809489958500173897622876122532781922098806198534047509791044184990476163468297847968836643781123418766187516047090750728722202044369837622549500029829872695696319488874903336646278973442474802160750263828266994350526991744135977011648970109221300951329076630064867509171806158419113198910821255566907063019253322743841189259262781681858041794786713280484264684768020943958488282577707247308085114972815336030477881803060446134376067818120488498101144583502613951724711353953976786843696151466407631158211015005168989836924582542958598176641732522257381653519085125041723523597110845651855047585071160793387883037591953527889449274334880147530828856287059279412682860510570765589440448435513026990599213264207158016432478007967411612338374345373809946208747565863519237042233751853036008141198862860478352440745185556318131516592333196893314430739276555108407369725474572712555214829823200338045199934185890277935771105605632275156025667465460190964608676154639107523914478448575772938727253123132505603486380821168775922193698025326239411897484157548550371376175427537373907039792910285127697222913353495984303910522169577842422507205642498726246260363897692199242857267257610066066789692560928391098416691789806997496798457348032721161402562047581613218082656967670596921289805454357766497859725589119994374827791208858747208482679938484313970425930588231313360654166075726947075488971115739080405097624858771500523957391175208761792673108066415517623225557149993380433883856973904869408590343921042672257473040020917052273414109331646762142256895744064601737445847505146565518981328370894383840695486056772907329583687083556899296053949852141790846569909704567673605319282968912731986987085710087478940916108324599863808894476099628434211799885354627671141435865662241723530600164740131149570656870345696136660359773285711759584380483882080068017128529641810591786822642046298661994849793782024176094107339377150566278035125309176166386086694314735380846132939853525425895097236680583598962375531304473802168330825793507409615326852360207661166880374916889337763888515725290142894897583788372534068056424831966384094504645075536599212103458578751368084498586307830582652361898743424840685217567760640083098543717960537572238237190329010876206247765584823314640864932687216662092216890187333422824293359678409921142598594027954903566904933002310658359060483987229854603647503757677233753014557314218994570682633855549894286661268090244801344105202945683054520345351730571344392409886361824804214930811804866125629062332275581319834675919751247353599408645124101191675698781965110470561844080734849860523750803909487539995010674267498999135131704779906299092555746634760419162869540967938003206851261267765054809800954843084785243676418965299942430662627045513208307865999957167066830746260080051115938852422650537144293808621063740325009218799675662845382705236420287484088212340441857945407370458536536061558230676066560432516780621915044151114789855264387841766233596430703708590387698824917900166711627502075133043408721703963522619832297775899758681656523217405685102264666778141798678276476089479448163555522899051224306149511330711083836383670500546472559140279000015720758348644398365479581167377634114694834795874013971465768489693610829810317479289928581723937379962609283665656756558755625469578242075402171479559683705713604245874409464836298347650887556690741627664579354824478626552010357366386296684027261975757519216827194199691574938342137602974890728390156959908475263122059157852201040409684058357806843905381699535430910597603749386074898356454721653354220452947211572992185821095332188957029717690634852230332675721743291283109804089120198952490919939684934542642534758907919054419273401264699131110451908848055330983199038442913187602807995759151272595314749115668482548210944637218061375148712996987690367854548036939600623332064795360737651780379603587294375867620908629238492154648199540387853557940057244211855417108231691348264029447100620953487430604169638812548637806146692972117181935686044507081320650459890388102462324753280871613228673163607132579479199543258251398805410260862512395141664766244932047667698147645998306009597744079316103859400611442085114122022464579580922065609129996673939269763352197145780691314707111727127848640247655145574172546021426723397544821960843015446285551777479614968643275923555774146477043553968859430768940024864400284185796486508058171456244943628802357439951469336565031290042486167321111003408817118122325966814893061893318696822057753040485782890566868277017855421564896671857741546638765132095156813013332831556893731449800559925559533338672005125974202533239345971863476881999453619099103877042512388666044954437455826987722634553446619268837489434924919318465665594967767451587737385053184680977498620934486983196303287861362269394769054253018513388792598808742169988385637420955842034807731704999556004083007429887808621472754891382181951943166595558086283851087578527384049916189303239841611648527281433464991408255955751837789544442565183557110927462410947351165989990847283407906381035961236248125920511695225203869348377885628445576356251079076367589218063145586505184795188363253263488579719344727240423586334841399152671508763517747510466325004855665466367488071882108690113844819262535929006088330787018757074337842238623921820259683588737433596736368857309429500862825369514214974828393796288179732268248919389732633654075634457052895995088132339731537883470400508698644279220678984768770140541337879197209608841441486957893645212715683265943093535177838244261443198236705405536811087001980208750030081032715769487000351987292191772123714391917839219607493501074157107424783875136692592151887821623658039023281050692767080631331444210527315959256969772692071824175599198298074044565257099676677761340739788148077737732909611817287933189831436605137761250936571129559835147072444384112000282363219667523139613983820597403420162336723566908254036959964131626582773027763034717604462272357684930408867706432086885234684550243350377479269434590229426952290897291127579218457682526161641906382628717315126471216733787599842723482300330947331651993782072340791590595922120453569562263453285742759575120412398197957326007049420058677748258557021532311092270600438384893179927399825790623378509367302716134449483110265262832408091808687616621938623278124469653324588944474154650451472007861963866193964806129424999674021970461887183040427409839033466969312475814522679073016399198229307194386354253759319531461180799691026791715947006024784276757618466590948902792839012881130789849810326871506882918387295086580397388205082282850608197815105893885070653300316211359812469879481456669678169135584212848635578985293388620697277076831654758972610844503371101538447123444495697639418328003730260239994881220999785635626712149079811416750244530301394954204855398819267160200097194818696240005112341590692806076595375079767307622394403236673994034487806009455086412005141735236281853075827653249555535313372542240965441923081993584264395853905960737268142457611984188597479349249159214444913444332886100088167025032983214734789069093619412748836034344723161413620320174458300001493709759359144826805900679786280753353411787713308029815118385164112649242015274109440871383561758611969098480986208074424967211679498086860115010334063126839584195834042151710019544816369179439948487651012205237454121492673754708152908162746588878604678278619118577542038037348978391355319977293183988575511235851716402364742164732722641659354529772824723446215596377405403297612211857072800004223915126906752623411474882084994736559395552022846624832274582916143964652406619610009150555122509638361864311921462430687518721487144569127680302372009417488749269837411689446449088257648597380465800148385404722258245255291248966303875286135354644545120714022054621429101444683630923644141436457746213087835890449854087098072906016031672027101487678970031152439143541183887089793672825702108575212784264035104010837663169385710852017535806084914369583304430183802734947840625355013813147720702526293253991095933774233789462594066414232971045390885294549007364175184025895311138372369484210855551855975372665637449522322775079204442522602325348691874154086601928795645491694511045863580366658023252055322208155306909027532709943647717713336643326057497915249265132997902330603822030471575584898949768103424115320027832650182216709847816708562406721982738836919117256944658494477259031722309829376585876376389493058698508532576019205885493785960742677132842002613031158493084538524938231316723508240020275001996992077933470718046820169627632253246018818148405825571652405283596482529402574550444811509617579897618237254087722934362858689806494911158675941152782049014354412244326292514169963436530639803693040152241179773221693618106213834528336552970233446000568259588365076990747353162808904268792168090824309559931420408229596651124237154619481685616536394636241747383431014835300601254484022667599746765191497232587518418200007944543060510831199710509395084243349286320257042586995484852709666074037094008025843655488540133440227895286542419164032762521569188353581106761360645082557620134091758032928326959242846766587860259696768046506657876710513619388752897039638005267535969628549407639204569602030657861007277277673432511896246340141285180047658791213887238195766693169730017655855293596707135654414017638329117568587274178916729332199499676121452671529483591629973063360238025247921334305098001660111426717843990017540414196588272754519814881741484129658995476990023889238001451053711192669387857533802966395261004581729742360932968934576683256722009224285218207273851453070810564907291929894742274102173968190620457393288622970486321326301600411262156608151924998082390530502547654274229643696474282432685301120603731498839262149540804975038887477749705610097856144246739119798875929294920666133867861909200692642001697588644216200909181143464213595383208649392858125082769278983499171960985938395045224572576487517965717372044965935241850610632853904846916351081343249827151637214306575057056854214031273644542901841666783766062226173312253954357615329567968701587259707691296026676020675956815711706446528133628061134610570663054711402123834693710986630063782570796583987576954267144091102017955912196824193331776047570626122285215537773795909834384031655860516528856681695352435495028799460044747739646343420449484883063126070010868063715109331371511392413717512305947285592904091597579628683089891548665104181015931903780526599071999966841861881875744327287335485904352182162775487279811993241392916888192145251271507347011313155880345074752247259037182405746219433474299126440257771748912488519581382316700746285323807522036593758930181917884385159639662934704244293949339626726578249308603401629738768715709516858596419876913508152725690513941583878479101057327772274846274054923507840450317762460696826000942138695247774351592324550060263984766351960296937935707223060486862050430325454952954198074235752072641808231941310482152251109817096531616406297334532083349594109361404642751686282724527854349070408442498249083007447983058555941944661549063733004336471937358705812241957663886797493951058510107440282947208872612223891693569828089079793968099739325747909447908822483194852125133024030965608825224877264254151608539704312201174258060781800232315671389733533421334100318475330960874337979367753305729860536042117596883182010718118251833655292732882003763574214861606334676950550452603318425734956350830555920721720238791108960388347483492659671340527411043758306085047212170260199611317297560471239443585251768566483914757316853890276922523425725649064650889724789361476857487820907523769001942960494583060115853087244086963274565609000697033143190017713656153812340276864662235457935280590732159359192998110235555393080133923043219617854782341415069073448072193904656439508492483948839223586362448746297188942265565742762408089915692931618072019902151919180185292790309932752287226550588027932107219657604053174456718679156187664994652058069187127600739449627012702028207470529963531528526812861146938507855062429282067982023422142886418362757832456900123863451148683683338771385162529408495394070545707930930331561076490390324904292169265173908710005610856757975601676765005849454471579644005335448713195829014905181448397911452425093535020782068364484227561273604555545074780170804928998439970570186022364168055689014907089612945766599662501880112461982137505412344179812075432781986873217733814966773492894013611848245064694380430008112363992480244534633428691027060794377836335360881412288763636225051401608976036905555375309556284891380015216958943774008246008948233313912365528293066374856930542926654943158702491632053169099751321110431665903834567439665131272884717536356895839978318818883084557948347278401639339302152850403561273974733265619303483716628494878626171350180132219835492562507114058691263824815690048481938631043515496812994960387560920735505899032821062842818249886495314937011820751981417992445014292837852608012354450031827268839632378578077972568952287895838105781854160938668288726913442996245898240034137488256656968273046959679398261608785434540101166624210014005968836439066970174020007413013933499046592311168489323103203637389990274948399391606827819930307742232798284131246339359656877364533472568017323377622536614376272056479393175188156093071442269985609224677162335326871574385470775194251012738668534120601618396061427074385350823285342517052044254306350291981619997626887007096984249092434358035113932716326828069932477007061884238255622638529429339691068733953499827983074315151408701941608703173470462743338355972076529630574299509306501936797904421459592411160317372160652449555417708360006079312869528367426812452816389646777641956306259970761746441502496619954286257348247076736362379239592805717741834177199314238072575936776243583255016777708344327129536906072395172744969176551682443674248787402862656738074015197953705104175794844783926945120623452014326854266605709991089766250852433525013367646803486035919831673083902194843946698700782474856838654796768783362257466859929968697294525016652218213130762019536452772443966587120596364423623475125695358975659246987888791925020879964650135222237399577840482057815805660943475206586048862663489169817295948758781717994469989003168638526830813601391051396161047391026267060304556877707313061202273023950930186444423408650854119344606373102848382075759464220786737176960814367026210790492088163819308306452788901661814460035628243826335181630572274705492401552574296480126430634127054727941282474538290647229859504773749034527175211186419595757428359316788460831844637061054265818730166864674309707545545099642158371662142494659392495580959255655627999285484383475910155352286901727065265596196060067034671012044288338100787925016758602280708223651772897390079085390857024126803516358866414633350730235193025514126988638660020755207660367740865638706366618380511757424425477153679890931921895151360960511024645090392728594444229098903216300403381956745017432437118075386380365144554166531967024562541478127733380866421000636144322713214450685443339598936534383696211861499623686570428757921077127214145239055543593929736171637091149964057391094881475818916535450770154275932369634934655198815189109838745437280397792479158364507020298194253478590848316173245681883298639662354076161886186533901708389465826955962049528663487508907422255829796124987411786911586943636897335133332575283935515623049789284732020144735194905255263869045392427706085510383666620288986327609839982861999490509611308673718663257892484150998771670139401820300546886501098775751096522946426724192575011204868589008282836760976051167227552358427386878750133178042076226232833696775076765575880971504866679129668333729834215977566731535655111691703635879107907918166043599772471251884027889908084376435306348198786255900042289325015667642334658547997516039508918945773280450970732487338377759934935396946793353895337881582422215271386808487961591877726990844704654022555673855446713509408167687886669643418264795075113540304636408659371654109473592048069833871115853647570348271916527815478251542801221763753553863575057790858086427093910439551795335542696267626560177733073309120517383664057108068816451680614938377605797195388182794836274838627135518074269151674090266749657416162555270199013121569815014643755554418482953857359312375838563494462412691300945570312602385036717097795755939927767963612385450590241818017386754011513982736757653750128706647751473947384007807057361236143638589830387168948031300854906505430473947475335691890993926672771410863561973996143811471312520228836237970639269429646599220240497009683861180267802347595334108301650688418389328664624137638734894409101817343954589870272225138711289041018646262262909860768372337805107789260791818668744559780076010588269374697358031672045539648550138900314064949713738253430330512128393391460096862780033894541613198394689085711329584058070317511794097781303015405085780423659020494439421853703371032831054532933837627333595968032666636328051863592539621640895434649526760574218279714444695818795128096658937354421526190658162618951849917803871046586702215227423185186167564178451514591323847428584946170930614626005226051429351950174404364721686951847093194494038302233421673079150953719036822883405717731778938437629016010994237856671074923178874081361692235648344942660983886317604798854533364552059148370974403208426477546484204050584850494117157617754272829785710719434325526192027697554850348811406619076533527095536942607029463237522378985412344548326826879614976528730452234391303616480387795436903749653994487634853364794670529058608430205439415201438219730309461003250133300487672057605537976281852067587307272449355877148191568286998166362222203597198154784190139838080527593208986150700216518106969629968338304309704856779646579182611054645405096662333833064165796935651012332451766723473989170947709316700711807686828357272407985556802727968416058884150093779493619886845895497493872274619419799055381414769481853750421474523624035220766966440187509860133659240222343431898022715410835852750677891628088680373623152445576953224228940526648868373595707109738060041388309135632449003005808757290048610838884692068477579113663187684482295891066717692178176286448337689189461647373355972953553219132913885624596881740548176233366030136755742842708377568452375047263013169528841726799539017699611757852455903460973446937011740320022361023122353170297894925580002053924852481103665840640783788238479525888168857585550153819965391509262139542962191351290716605329075658339587895879494090217836722132857060802458312773776658222600915660002863779655026928997253656568557750802172898941227217596894585444458888035032470404549611651449287698018327727128038174125271282498017302190072183017970720078412420882647152048318760543590551085915781383639064762923013980392641219196529149121273330203697750411366861892151987562091661237743533198851547754699260420447045677322336781320966939492640763422833068541094142970923759619069336602636481753435672512462628631870855477212883139475604147121137524848613367171774248824575041774856936346190879851623613539868012172947965347219451539880988421244663995090762064733145615807014638926863322125916568891785123812593070967066174387907942526057598610124395658541478902307452825336728093141597058171825423667503145514220464661655076973077906726062809040119193079795938476193582940249459814258779080393269610600483417936910553467205049906395579631323758963018069411328342480710589373398277722899582956102738330389832027805242010440490674697816349949597855920673433244510797210309093750380595475750245576094889632253451079432040749323910246105914400323313642324304897917955637736657422133265022124897152334583366727068575987953522210359082907881266259822759244142207636078165005115650908080554823818449100164246662304117878101782218865304638233723149957149955842446526321724472477288626725626445137778964512733621709277847141293090253674924882307839996397674544332349593668123488094589634931394753386348583581814931852160464148485396659471263652617113633298522777603205749781568406813222835116765889523732461585117987599746776057721706089720063088951301699032906834185105955873792331451098768132457673185028820388424917341307183746223700358915938727267442649523623240294366131002791673844915766431187917306407308699879221731523484188484017013133532757354414416626056321839882947421121914206114045417825616428574136813885625094988057871153830107718831482696673184108704033134155959066123386078573576333638122743287619115980358564216891568593254542167846862260277817509055775589998171502241218039295405360360923466706946976271763511797523512847833732267055840272987872573215882628802380537217583515756935578598046067608689532749009007519184677855009541800379793593008837132102856225493360323094606781502511913562694743795339039632307401740806126104412331793860059487942148441025393320412123117915051706723348702748109126210058800277499895997115847333102335013482368673679864952708126629385260209261302982567402297343279315623130920705256235900267001052253002295593572814015138548578543344354311343260039244133753472826747185669824618086077155151759347248275878622610083838762386624056972975683031591905485507030927206324282565949381924596151250070324969238135632979634672381460536214364659455659373562991835748301017635715951538883131377212748044617259528444781386726095274313234213033131861356280316441832367029641047050481852185655926853698644003048331534054670667671697562506805884787640751486817286205143380418793621262004013956051438185049214178490294121250806048608869226918979696967725094920253353327054280880240074366370834030750761376024796875744881818167995875782974340569047183940857076180745686700229688302377330815283229911958120630480614288668604053822933534537557209470523970907798135358521555570579309468293537588283381165695202735699890265902416344332459148184163979646528444214361958819773294326698986862184253494325615024522639244961178720198652254941137367051008109494634731629172413202197169955470943259180766391767996107325219607439973948574461878617148110126612555030525031533010530885858622612926296618839535123605431153966656359747941788841785784400256288430432459171346135144014261770742579168938060932569181240755571931000008298806766641731374647339996610776839877607441313717589860855850729689619046146993860678362618945091470999673273468172078829717857781832202991361607988412118220190225128335909194173607007449866059015020523772304467542782899048072545249143657198190603126393248374554943186903234929970657041190387041538010418022004281244916290773533998247070848632510670216676052725026449669410846951276261910067820809990576607456892929603087880236806139325194816566422494787455306461002717506642949514026216547519135642301346427125225869188023899243739677725850034639397068681414267735630396144648092810847220997306319483773473414402736359910068178962534528252142631832502143953105613438285359553769570327612229623777919210124500324557754640312889860718429428259033793912960884156595344429728066444047799316053908367079715044672349411776780840439814105339886576918857355392941132726907111033602331263590540001713382881498539491828602644575025311893957102442880574861968032069160786446571575464865372201754502754264445577248142082437283169906877164131693957969345624307985168350993976106520711549331340386777317579287024436975383162595853313661143774949099295579091512282811700832927414665844096787837323919174292020079518460824617267797161952246319023362534940581482409631334930108153608838449341869045318435277254149738314026995209147908694809076188351040121226506669159614825494384484588888001174177661663188717302183753103463419631286107381690619254153743629221667072058048382833652294312909278756553945477232701491919492817360878245424587546228919473794543778566173962658066945198373645966282365064007871036847301705094144057705124603662911245441274218360161778613641039434900337343199772744267945361747556559971797621232569221062828893951663290459913419370926153691662499778419786415759652888147411436420497247538351409757601500547142885905122176554020325958161507833163063338990538116795442253492464934817758227704597578575294367169416057112310712795454929769083049179358735181668537904984112731879975857087084511719572912966228583025923204751164602289578557673484419533374591989377841379229420595140376585008907871193982198548683420842035425104207854439635896780363067963945640962220222787942423177753535520724020835013365183717927302753191343172106353051912049996190938655018930833555505553060740723065947065619085969286071585022066385981905517674893116208569132499183132653466011484856744929620133430473087267112098130073835465818426777930371635880909856826911910938124285598611629718313400437952664971172300153723221490552393590018193969721634461161306030744172591409994297943095661059972379456781479264008381896360316260578225291242059781701808732715932770962934314301196997473185690758774314814322863899016889701802275620154872221326592262331670491385938995486913280085821781237833031425924633132604855409863133284120682506429038670088101889078279810822587918030423942665576941129045847261205126929779408819559840863710676356793824833858702929770975630501763331083290461964527866808803103060111010898577909508405509110913478453908137576134382163551035341607122933410499748920368148073211718177714108764765306687993411661357038771102704088677011155331504868192175236682665930969007831211741944442911861821743147230113291744400857546620906443956927139235035944802387017800116954611951895850788056179633386543290702753745990877959527143908291104671543876313531722082888865691259613134488994475255485850255608356882188302600442831738279169593235861357546903772308802971469893037925723887983697241337082534486705897844506515747235667180481748733526733567971667805915525581997213449817332447998281995665190356103539244045503353595982206174666839254366218385867360011187080821770895790130434206811806076504797708371091946387694483828522337777041160341921685687790346860631989895596155460308316403685986170022056293024660935657088951956856635787257644252599642799369058557187260448945182250432998644528628634986324963533590260214517533028183176953448589608283102188093380162363271503831590321801286700170465928180912992820767520394894653722316987521934880349292086753176330923603905638787157887911051845548308284970135472684375146389850018595968173949693280629293060628201416106867955712540501099467669885677935097008713310513487635763417569268589660865727739746936766049321323073177426938112008252234499811001226811443540322524823770473753127243745229499054113137595098605482026159127076124817088627221529529125193711025859932028142240859076981237882381465941596908596264700312328708810273656491452384728615806246782967426075362755557300538859189782090399846850864791078127721891807391051369357852841896116900616662811745251384630263276208511213066698749897137099580480870017807541673508649149087767286569689218897813186142087001790921680302456926228507356307434509783177602530784770317508006261241822848038504395867927371874307623694973917546633620678980755403421138267481792334772472617663650116418528317574526273943192135537444998556802200542886182038975590758446601089990887824361999154274017154598101209032667051234088581575146902252417013160648206553240901297527234473266057611573701966154500412470474190554210583676654363756289400478307868551102113900883115750775363607486494028583742065597704094500064227465848215418788188636284471791296714934104464438050182854165299191808046830664890333749778719935554837386110112466597285007598405384874326967351915450944110402129077978597403182502926882513305978787501893491334238089793063808009595007497504853479032084975692158555199563439889428990774553473012410845568673077498948955186283914171347979179226856572637366036375329777381981080992795583730480209419804289073135053764518979355646895945744758425281979469680375673625223551476440188418175839505644485079086125794496716901455339914720354949404140245689329055827264486067634586463416112547379052626147120409558481492226016426599189460735476487283551843753118196570401127235698119379682575665497361907438955173583175675584204269233273262911541502503549850997262498269016592074640100844309103318958522210352789238448309474560371933672768640826287661574821793081519116139668063302858706077238009832303287050922374486053980850411270474647441076005922459814396767256898403235050094186278379222229090154657362147082297481689734504985121537336497873027738180743804519298203182482805393010735697634330203665924077261436653487248403290816290228225658387140290732733582590231826872747358691146844679537183288038071628903079250995771856151746779715075322166671796542643832200498680217225624446549294797499660966044211264332027631550085142688682441731902632570551296028943682984256112852226796897177335681231700188671660897955394334147805776966135025514000242810422098744696278538672606642816405770928488333854737068622583283561604708917795142352627615381555722604842143609946522989287775587282051192073331654292187192076098116171758934301344401927117610761443138948923194779700601536636198710820788726240496659426140418001893966068187586420214113005900481779144399997723197378290584462321466827349668680988279547768957229786167614738076670531372391242828153881085310672372136624362689718410394029599804235699146798616106710275342659470950395696340773650157312203971120535415607038165223368574147458974392380841428744787926776802581119212922268941892615434860067976726834367939324501750455719948889034379652457439783105440784431212046613740551078866511247097442326400908317703722568242775703977540347379938413361962362833737930188160888722096937763818748076906541468977232670372936392194612870492495859560134001875269638418342546555656930295236556858045249778306240062187242740623802638272741019626066468656579686401840330747951340350372250974897744208192141971777372115213451017997690507128065239081352268682611357962111073795931003278107112032547836327148400770009607177299213891887463181524862713695818332641647118114719798290507925141045675301549402041404223034303625020184506451585299855404224482014435009995088277421341534761771162910936284387308100980446107601079943798155346946072982991372374341561495823555408645129589829244284683410833946498808382937225292265487035918584457032323528090223001037257387560416733996430468912455223223164560133065897238889320561605839018883616826912154363435198763359446892950396702225400794268329339859023971384341678098536128711631330332319009169443085361230356253057910382458484294383457402508207701183124901823968541524059842803557438242542715525760056922983466274302381274511312991602349984233585855200894875616703493654367740016068275204468851588464920389096796535892024258740129446142963107409755019819019069160190421739870689829588955960097765865315550608462054521047810358337108270360184238217863520481130112161556895744983942464401793188230855468856973720203022245749049260364372436878385289546830133405891651075225567562761422369311290973704249378549422928257303987191311255112755898572759916382047369061780497228008297007478014786601339997556370033658829684579059093508111196813656034847559330915813443811922781278872884316129925234201575512757355419692531455792987699610763248317598471469913737504262651075599106154251577581924179626387207512562309713554892639019685244774011713555391720636639380731975618553264370330315369873417060579845805074246192524396051034195236084893261195997598060217333179779457555023890508934957561203570728612143390886010387617439541188709523652698560886868575425528520466848274742006864538210578851950457283593371053039750718829095049130869757387484008315910826697290741240913277512722383903941068617991251137234696651560785012170111069750780515420774599327384185778706852287320266845570213730442184267187551091542238443089210942099063896651419674707195414087628156197995112096549263600677806126392745593790434406026294430439311130079917918569085957202568227796829668518515911174497671728536110617067013306546546167628412383958548254624719090037128497443454817190473877898758056647824132804547072543233009955278276779962817036493476487946240030456899604811548605185219154577103441510924959815353127268582004757693005673700889182863954830332265763167594217010474133897987267539023028983673298043230666900941084326799322111137157875743701365448095861121923446306333949434378281802466697896711734227694531111044065147681463774794093704396238473288455779066673709914150317633315342203377255231209948127275116660986011905347145084235631427385256590488790045651558608695495298825360133898397019103806757146860192439111319263855284140390145310224907362930348183977426082430651938702363889622202471509067955513915220166266750573433932254270056557429863692890260859118317451158835071264889441864231011406458390020544650493187805450321721660438023727346180002007728615578835421038949867829608290601935301237155819344161276588015908844833585200271441421532965222237854513712235756133722673144939853707121487908388719074593988823713033618226405882008498318224591276140867154936747095133135283295875004922048597634567358428518195830906557359330353375054736752074096184697641209054648691483397410485257621856844312096826700514474034083806895470156451401206550005030428131017635506424652401282704381354004313415167534346660246969372029680501611447467743927178093141939691371366766664290059338407359099246059089613548675699008801937909050158771935347229702835346477768920289272074292745446714355911321491213799660626872158220909986702755098956697499106608779734295742372635711594850807530497807202934101284716551594257948247326679134966143009801730465095580906963151731119994940453025591389572564114312713550029106962466023962405130122593082177894809611050138189347605044990683175262603138348528287694341717619214803744307701097724369478110264033036227735346334974737110533849054440333711029514508471617263302975985653150107594355368014396879819897974688404210187844096681890109762956457294165567920799407249701638575403671637802253336912307944312188987346895835396848914400896500490521619432581881215895455470660973174456190321745644218142874135130356260575278714331502233274552037773347222477616710235097136450372553837912046339342342445997380688680906308467056086525513145394839896950143358062743245633434357481307136305873839391018507387417610229623768565771021604683827690712630064490253429090928951452671067969253846806515602874815214238255436595220765775902156733008909401320079624170659244065955079085884989537025084104784264428801187260751188955506195545664231663553975112077288363837054710803255126495601356961683166284514001542438046187000955767436788462295537362565578858125093539291600435594013371235951683254600323994355345157341839440696701441907373070473254484604962911379176344389728503653595230727616867384392758520242131210375947663298218899692961541859635883683181618215777656981162796585140496724164668947739003749705978593899580956332915205575144129438246484485854800582642655527662031475894404625094846154054565919181927557220765903374361842517530306528736227191685376586239937895233516690748600719081212749982491932185664102367245309033122120106450488473612883984571654235028015854742218301723050508721598950083224263744454850876848279513588426773952319541782772969306831159816600485686034023334855200021904026067185701389418833960919884008930677606142627907539230324205740604508004687019225319798681878114309655452755246952332261278265882272269540897415826750654565497859738234002836006792267414135934070335533398706616970200113796669612513105657072112827811450736382048615467389451158310250700257284353741197216095971342075782638205785265372056859836505961308124117113660121752170265197116079205610000145172179197432402048219093476228579840156719052151648887046202206460875110191400155373959329122688517818924243273888401935815456568944944691097334782360474361809537136570672809893667386476305146843377977289805756292462482346809355899356611456711713799149695552043413246875904244009522303710305404412427798876183372139486297770060034475026665381821920586292493022278633981674831595824706221683498357627550363619411777098999164707055503649320267156315835384316694992591329727909493733485417051490537171861042670053113675576506607421665882519756721971503999224104951560060508086306526441148388736313935501437579163060128753851694879053967374426543320069495984918289444840931736201051704212888957493027477446938059985267289333565414213274818428304386613497511304118540783235138252857431194167457446959992197318754156255355376277584753862082908484705368048675496180364590895289765824410489401583946467276113157504672031045969427269603626309462718967840229253109418757674607840835692132016848491761875052524737922005121562168157177738054892045550686498494629607745472018078870025779930409467146092341222209948786016750860890056172087515545366422986302278881282244691402549249290937816103705430719870953020554207808672928640200261682752937896122981947188526459641700859885954800501890273051527936606107241560669881568970220657044232516513817118096831249273087465006797437412430528679818331703552489920307195707279909808370724390374706618019361467663264386469041353206585211550234603023071941625033857566072301524206004761652145936604572105178078303314335066361752002252598020653840481976174639962348886141927109645170679904983182741373719165528281350944782049515070649575109418753854192668446777774616227446031115755012040461957284239147008985042505675801148972720881346170124385572164974648216743570077803377850775579795174623106564036208043546444505252711930341303308923495819888290606848807509683906225723446901350116456715606888907907858870242870473146916468440180439339213357242612352235238930264327313982162106091858035389173410102865411764787000573717639452021135815106621512507734678209786185675896116656752632236722953296382779787481289884131558164418065613683311239679241517624290730203601578199184867638896044949584965830012723861277434995956230773065350943383935155839709516791553695248430372433482120009490397269406964689283574563503689956794471549089514711207629304272548659312202594723334499454684982993440346665200709498579050589141713430149260958344667780962252110011582406369708080913913793026930615476406131672481500328576511065933287652701220425091984056481556566185046760367979920065029303203838562834633661625543433027295774548544263735753432241276701565560313764822206524224642914470026521777672208411806940845935785602493082207438501095896243033017217419086444224691608726553220864456209811868813414536364551414311746858000672707886611491358425832903241826115861132999141723953657215739977813576202741584167239825995223770830622885832413009122040459657931342624283698001016574975964470204796988480148207467092159270234485044785487656783399730620904302767272727245045017687606694707836869479733436102680081630036012711709751625084055730010102302271172041573523996997048153814247524912447702096328000943925205631848904515267610048069137517474582803487268491248457217057546668840118315582040453568871147461913054591585506182460077203735794134653806994753877723810680365325023770751804660923270904666705282315060941275750076162306127301380064041034741787224536192909700020631109240207571392998796472459532563899192548310520607736060773549081201636194339692978589450055531942788408775638346905776572332161880482399239743663024619345574210798004159984341634378203668502712560106272615674252321005616849227134393466215730762041775077152322442334213581992485789563857719840183075371136471329733034478663046148765283293773765547347954091122140539603337661908726475163646661781496359642415655157177067668437256545394049963856503700773753819207697972848182197729320687000386667210093675679149550551626605913096104040011227076549833969505380640663599150633445125755141765285116536650874670128468584058732953909402899967162993745782052293060996546098716616872960822261047527865880154474966448842435101407838261414426433437741150162594348694340565534359294624438707440888344647281961917746832377166986513227689890971117944202742923566555383770316984295295139982478459030071558735724714663980583915746643404755792174906598772627547920036883502718867118556844738773242511260485717389095477837827272578495908514850598852168915890953723165292304949395784551818152887626714573864441643110115559187932850438222438543099826796550028036312485846907669847907240654571782569427148904295187507009562984424725176716109314064175238360095841534277199307987299717677276085872507166430623651089142860858186681607248855493199192556501409915968240803075466214314235628564717820532372154497575588611463771692003177528330173934989071293514572566258566808932370602013157062823098419146722009496552196453046384286138685924107390287529882418714470326159050836570179727038835485259493666380423315701205938309736461911865786340304222451075647566141893540679682864439223246979964825284157911803855362535186123792383953925007035160581016578419167533527112712860390956315776645015905906577417263813354755180770108657466320806827243140848930267289743017960397013986785660869509902698146980948597693741633425648304575114077275354852230474392293163259542512417670129228642934118990452798287576965898810228345595718296743278018000149743401452206329985953000947356654658753031693076170184855493993048565957920618111107195122032016467560478366127362487497124480892613441393968005596851002746000989370470265606182334407840354912965784793803931001711988186746742707003178367597465718885319161693569120759401443400115672689818680807293584308549139582468434099882284596690088836534175828758356858905710654784150057713004698098384488699823048131228894102505394343006310795334496508394387928379563034050506026280063054125131161267197666669259561554500917367541743184761838775965984839425915439230608772179415143213964420733370325647748469661665737439594109032486127857255406962056308181655169140753420731790260095190613180603091456505920199566658649629049005746985866194544202233346435473825084247613172473498073465822366791709411608497368312359513096509567738087642654290894484745559660511195762045187677906935171180997183878647053381437117765187973611390877025466814000055195285561049341703544839459439000137310203532013622610922086298703501120651904346620484831118462330798066875199508487627812888286716409260244696864068827441646733551330110966259741076391738708773804726397363575096039192630440904121793780932875471302521027437891977572572411887233761574202205878266985926928168165587433212494922404308326798963470158229951393760980818568141528854000934862960637238755983455909321288003999434929210120249184174250217145856133833971974437318089070984825767345414253796324443758812669783257988293046933640819338839443622626551122015426608025357541533991541190049504709120520201407271275315041534405001139696655071219361237982600367186951645770020428934707770956626221164983921223260042419150318189840963749415449826447485273944234557235609005472044464797997335703163837349561287046303965807773935013263281515382045359942215073804056345295823182539345498559027042981524122944467795225187338794749034000334630497792839166862853614976751499891133909264192482269992277633905202670124887282421065282562269838691977022798658713601409678532670248424166449436562029291525544597411280111095832798343656391929462610960821472869732216081505444468296453182889753717929601781423461274301356091799386800689013201346497877881460240062160747597408328982441683247725961211576166566776841333610856404771736967157782680680784046752581567216723974718219685494341050067344076420106842647238953464885067874502688815923562267529135067123612876207347599550448635301360267865995639395224760469847959503840861552603336034634423132638099284047019675370693189601840229575572732558211140149199194332345691713483925560972492310514612293835123394488920633696384401006078411047778716455552094877556578053151880407997981841343365163448618947959928999687513391671673076946544228797225606898461926850845065355902560847036712016035563836899923326149102380705340740802951459103392266570486773174752740807702588551284860533894121444407587645694971430806446004596678589520304573200281814956893647262276774126928882541889707554562965710291775906982932970731372076913028660021873380319342104568083423697724024932235943166450311560140108664639843928454307918560303822636096919904752001469981873101666868949319960703589999210542808655984047472226234812377288433729693158289590247270723414513504685896056310187032817068557567553798479986777515147687557916784985568469232623169618416469504640867796940803730305981126664984682920393509769687012607079005330996797535189627412297005992779214502476204396535163595353885442629562051715014244952743282891722618157676758617567200100179983594852820363596767276723887637607387596966261328095594253528910992890205837843620324816714036669773769613602478035603516070111077686911059855429373661629506868585768536549105106682576341609820616958323915990397198711080928260430936753438115495522641572459741690096252533430656587114550809704108308485588277019796730091039721096042269049322303254038084742114868940104601231020441927870498884697211406974711961560772659691755867309740856971311959530871022528048013303240186931728906620113202004977109139032330034540526021454657073711845605851393373718587079358905205519551419933729560969244466438084852875927875309051978001978654254764644704477806546214868017192520542555300005661938428797150378766854267044473466897005325083158986577633198138762179960040343667272830669654753650601392199987814368429659466360765605158513820709431362512339882893459614824780743546586967680140732586431268056075679165670657699266008184975840801248891962483654288832047739376859810026928364596038381351639493299586955203089815378460001596477822626769064447310360898920249553613070207761402521974188369695789865176547268224262350531231950753194055228692737965147880183076773913249083306475801898653341023761841943849678919521307373166664269224023362414760283948392826627420878777472455880304117535947282990909291567219254235952231480482957325531859785395543910680750651404893044103958258151242294075170980903660142971202095853115443383522180537130844792289128804397705876886123081952435479179667890626814942267953274008184545924544009333998479200998442285120797236356770084436565505135819862780240203213737361640105709864667353732594299456190896891902675282242669900160844347759493738886712971215393904409185703800768108091020906359161856876946933559079031737497083938157650793479769289835384072619699056885400902922738239270172021675714095079724899944428169649259278648420408030423622961118048896135254674312184836453124474525475822755626984741544438083191042580955338288557295642212336382558991057368513986410448250140230691365924527615243460640288815911619756117284837831101526245515714269372363895828000586314517716563493024046308375680829660062820246135897907426817737068645037213393240278486918387955825116854197750828220803439046229443130383952828701103926812445928997362168488809928521390786471411175760360916330301886778283078239172301113492573751157249240551777732066866900778459263742063775622999110257738641099324234972433993689415741187290682368632683349363962350866436213994829361781286316150293770881509602090303851576942736233673190378889615602668878883197073744600094977345361966546189106688414574942566858794451608216535022313048173635279131287602776834445003596243425805245206348397002314557118487959715323924738313367179438698029157776375026222495652375564337509760188500606047622047266663358088963267490060695530961746539161727181534279453747189607522319700419684661101169218968422284221364230320788907734163593524902880541096023125871216555559833582625855684371705450578076305129084667574072675327204339260269876156948606047883779116802047533882997305196341179548433600635398321574611698354187932416144795866032350338297355185519082760870629818094263186843612317497660794233899819535587775710728881784557090205887168158249658968813465778232654132982382167533165452830714225352706600820710612339287084390758836969149746083344767284917742378559131782926536513752949964384069010516444298757071084205598141520957354140681532829882391578850763912056567542110807003628127680618488918287743763836738324155446043250983770005734402676728326246002277544673715502151347690285763632242820670026376588428351773182521160035687464098789567062535872881039221671436566981237274980419714185231582010126325392904846694410313152467550096541723921673723133951690399691762513688245998212075044295167416120462107655478426761629216328885397501733631347358558541628852625200189790016808629757421596051451331787496783586839809671996345110228041296526602402643385788716099883156069955975530021466928490599185937841613242848767857701789268794532989038006255577597110835490458005173122036575101906989150591980370299602511746641098450585300731781510323630534624417709503361913411411023906631789046524712003561777661346419215729812267053539820153553470722077429784477181447568857019136732528599552933705552387413152111794839530589154383786678888128148930059505502005900915845262548748698615355402759539257004763069682864046127414429032418811303411508230484155455266729085034510076016005906604310442372536081919648891221998972206250200844732531644916842086546182492958143928038812126930674880533291114195494803902193748998470610336219239237502023306102829882574866333846527269126772224463791902639350800705774294728111128934488109227004285383291038834721818173282411264117046164650259165899581223371495260620255606686864267033104739398110040687155736895270289918710218489576207336180236126114705236604633900072411506972202811627110496049512703702697032745325913593139403791226622692678370757197282850848567460902046744543277714885091914725530348176484357025831943781972121686484444300303329294399993953449467564993985369263930960886621618108193798290031331709286830570264906293885984294758432006682086353313088401338965337713795488852135413720760947673318857763711597728486741611006178187432391973491658477946520151416435495523380899476529840016802342991135567052629527897864764623674549198671496429483817853516820011594425650626163666129242542824775241392973766919458642268126825573936044922420764176255814316586629974908235752373169475892853581727954763772106842891977823810873134153747194898384154330979963164215380227131591638453313576878808462206342361846807257934791177399796981987047279574983858347210571768708160348862945653867588385064207472034111750499521637863800004112853203055101982333528450655427684835704913016697275347370877076801201442290102026859997625608609415403726403788123727446773501528023871255731845675424721321724608365310703507418781836523639890812290477823267599068316383076701382039031428484906553455858649410980807104910216547246785663904267254396696047461440929930275582063916389595337823742883734973765886351293013288864219724280970563710110695972879686422169731178978312360687437843446229499123190571234814320666244610468407958482697743609529592895423662101630613599322559237780130095546175274012812653405165564313961887778476435825924208922041546920205696876228834123251876519233458532383515823020245286691941777693584502380173723609769299923874276138890581385400241957508553670035061507244368561611506920717557753766946745350305867199878756000031790530526601594331719584862369359514840909672397807730192079990238046845466879628275634064235517239428546060818842993514320640369365010760133399340346271039825609659029671163209809369752494417908524444244376880217727169441145768888995782660785914977739695670122713586060582702799049092934641177740477178131593593849613210395130091608936810797026687288401246372732277945385570422839680657953974366730944223810070782628414060684701653689869114015380228517084363312520991298841766073801016867172949847153103446395695254979911389634664632552581039998679962282286686583070109236808688437468655534507681944171086077402346564731153105685810198005081026456334525806452782412761757506696018751416058952829833573415608180272821369403265968099919198453348996214248788987838063703329350849035921233333011984970892235720070222614216161249414021965255525813099478677812166731936985560025461506500974138059025408028494633120644158087545522497141313848569202041271850927251238237743256724231146398442237844149744009236994083212919881754625093742236477861127580622672563541628419571974057573194513488067170607274205889406043127690694544384708197030744396912938372326946737763446261324378953253601211246985572471172991098404727872279991329479713426544903443975476262005333979344734645955066667689153563802206494434399551358959230918368175982739302259051125314497753804369666880899643038894420619811739674812397975671638399613828033816361467797910110435490048321401818956876309844618305241206625006304644806297466914120177844377601274342145804758082608159367781906233214492073505620456692068030639754295457614987101091348552666583305907622657339201740968318593963190880859983580831200494394874039035823549964812680510556156702510890381135331613858288434974865042519517105291428964177310541010862949027809729130596636487879256842008987147385029374076774833025125859027855008531121447186367028953410271190832829586241199705799945038002860500172290519513372168349563963672280769714121955697425418061359898157426669051516404066514601824065409601839543002663991515653712206532203155652011263331726913342525028590600307691624569104463861123230895671919838462184737015399741210278395562829183959855919282955340989591360276025014098263862243951314465447464436862762924737187018759626193450774853835189148638106370653562036579121391527892601282428354720539467841364451565980149802483112284151284726010132727070839788845983214589213476498882941268164711720751022124101146401690757047241126429333539590917296572761699911087279337076452679080288638040914835153125263528174076985669896764632621116799726785473239499449619800929661094811545023006631741208182319469176874553537449783682305823440076373566650102976182526024227019165117768278490341275330497220405167084533632056720418387885942457601496119611133254596912113131488424783431023892400919747730289711237422352345320990709881628631734128727467482409749071321535105143660959796165544652725706977212177834308878580688111419845311516586874039316745701464213330976883929222085535664140816888474707762124969791890558898779333859224557443876242630582424126108379259299710734690340911840970390560553237615308418459535569523531959769996479274793575049505409981298619653995518482038844548997462940893696268088841761956627116505668410092966528545600027987634728750337822131424513244250236290372028151489625290754681057078374677944612438306566419113652995721194542622078018991606821306313549752337533104709240334379771072885624260864279909848494158566855832919378327006915053958188875997169245854504868876461034897274890969236851796542725715561947109395965378339852573595494967378427689447287176850259163945640058586805384185486820463617141475577435650073662244906786854005085758961209834381075578517330539965017260083736845153063388556727584770513677128779864804197289969729630890008929073879000413485697586471441371772991771080861405392702674668768075592667093441200926384329369044873109083845672709203578052316110159144270923485153459414098610713122176423927468222117964690382622925755352294401570658030683308203417948878474060330582209160607859767472296199243908701390896937658526013264290966538142203449181272177419167490606729170654256399665663440665962943823746809602106669226031480373379177056943121989860186100987125396063957822759860006867522398637545172542825530015629647818369307929018806334700332463013228954648262644033330851689488865967527406896858469996806031774642885789064085325623734127136615473203799911612043003765245307859271088952761354798690513573870026790299714627932527881061902071110887217309195064482666487796933451701366888762894458690551883727645679902511040445510694072068792509010872768469167822731578689511769219444337248222679662941739430639358973994985337989986862059466030029687427148126985383725862753258862614370490434224586585274063343330315539523582979662103569645639960339494822055922691541138229246857687258942126363822857657870776722989950550692167982151426785016447014188491805329489509529962366573800197353800012274035180063059531826560268022067308616549513546086360953830387326503229086512345794574334888295569148193333971352849389911324842263671190578150326055559113109111486920949459234418209219605442679939981362113305892421987772010985336304665780625535162702389797146741814040316844682629421530397464598763636882387756320823469573042614488472804896193643517424974460202589849348502209559531604515319790086205121391446121146850828826106402095886592415952575824949106784559102947016685752551672698463604877201208658180513899964309856319139625231997345910726516908623482880213786309354931268488685918335931623919117794659313501961834449143397998369803201161842971909666331682366339416381209807831036897393652896743541055808993425917361060034026877173000620197515078408550838361827189243913760387675940846907496436781997802293657603373104080610820553939926250263322911286147786954726232468909540110900958332675741264882448522971999744259579125020476593544564072068157690154702141979003429597415213695241586896551453849473192652673886555571463662053880754815302417145245424229338142285690211469927995410019371259028406287043888943451807893029223280844370492609412400348023645684966859265203757230265019074792281110512931059939555379166180114177309904794921632444859051856280167254098396870122434635232675769193246274611807557491344216894855121942579225626164151797803300094255663849006062888130797332098402103120884994487759148162266530834830538754349005873182845655134458209728410459489415284000219921181529785556162956467779441191657027447634516848935044507779485049313667457071841599503718093594905525850464626678344866311859743069052386153883960681233609896332205144753214126173967727815069263940402814398368266362243058750674422054114340280556965446779179694891587781744224182389704230873187093084372162989981677684246408986362426215098184225964250687984999625077433112128394603173940652557850396809212580693815215847665764569049513656848343797211437403611089100229722787990214315332340314798532552641412096267090153268249703934959673820142046246643513651739214611812144727135375345909836952356030948181860687483859209745043288732320533482585232582091158231264763316855337983408249073683230975934904279170374074295463833003556644148924016964711640293079303996342386918859538702906358831458156809378262870729823718737292365714748303867798757519035018982594131285820372072495625437165067542578182916571263027603017192520601307555984370597628784558715279468869984156406340730088186165894633402384106324120219079552645046259551550502680062002665737280396763525866434482614761522229735889817952006594841851145518560769490965232755033541793656597238838776649550130827546860670449073543104308340292518907979051164591773879716665132397090219241839892515923048683310480124945717805169025305338299024647043562079888194231593464904573665199136349303559279224300144449643123134721439075652064566311825591278179671519531709691209727969301515365645433552582668976645551427882499927594971649101805089333937917265623011144271512810467498417417423958609575359855020053846376646704293565510057100397518472619124710788289701250571905981404741426847664312431393289768123372473060369555053056479985147701290301129239160024783465930331262047895715530738080669395628037232561838532658739969201306673862344601061266400624633908338940804823779897547717507447179542767024904866340020349153789193936112052050917442837565198259696104634345784268230480262203097057836794902881828628296921096625884912860028521968613865701578455943476737514305011346373031474018040040038475779633349159722601870529603045988544163665549317141514344496365112120579685889622299092162917368021526399192406235352706547253536752330820242014058629956957698102288714985235084499567809296195568258179814571944954431882759997328531668440865451837521641812234914024736283031892697080588547404573168153470077058560491656034070374094125200681286689187083258409513143899733855853222505936883531268199082945822370582201943231263960730546233031887107630817725128247414190892010639208678975062440186139741582072650346554743007299172796237506444711339744661685784676104467137922549862593481127018280445050494058820584346910471064046009026916690024370477770496681460263965224761008015449912969919460267487974014018645812457092624528750429035022795025453681255578360164715493173975447330650708662557651381179248252766107769264720036914421438097009896799929203748700646229162269930021957525914175473741823857641650043665256760025680813718703022618925148869492200248816392901703447277006262571275289085761977537152136691265527114682676639842746049567311640401179473601879390901285878926526289013383934706900030183576931571454159066527147331895700081576016403201193428145281588121395284568956896990448880960713918474031175725689239470187288274065349203323240899760529187491602503622706664058733477380714330218529338481258026351813015361423966610771615753563045467083258977250469327774264398274702875814485516383706102814924510308158951953284084036687412249355240936887975029516662634533921427861287974161067655678960903127447255179049475790643373667263447363851841669290968977196368663759962184638930316034109836688580964190817156302908993937298586077018829890495594290173084955925913434810554965875195397162093373392293738786439201772613734034618024805833004655608287725246642555643299573295542936217078215809962695718237650376273270473572243819590384976517384570410703988727871170200993787007565633944074649873678858308956685869827448368626700153169391697896244255945518345478027899617919649291993789861311116723388188564851706364749432435341328689658337744450098498735980844692311929332126574614807437248031733355855994080994893797869176659562051896035305449598549755921463583768573854593452642029441885924275840149684953037569336832625571869267918825719457122681451218277431867880550238374415002886325792182602807183272416534973630506163789887785364829957680174835766645827728753584674455506325083396618659538483431285584410087091617456450890490654179957318543229915697439087088446817088206074460811487274576565272808360036951670743926248050355623142704538482348119265286178500294805552088246957801047123753684715376026454808745386076564504898134703845501848603952308540375871067303179542082707019344609535582793520060616157883709734611962600477292227016160469046535746616520812813771229242775057976356107678486296802597952948305265033894191167084504067855764856658112214289110106630499456568539531965479093678966733447057256685747638002839077467801499673559134441552540515471548922015866273174266127682281490578429472712268360169952560439025549993309942672369138543021807841419840202728750708802266558327751652281994463299912549124132383741583766109809205946003312336774537753718086149940868987194419068593427085749461375525950339638821436118102152183065485204300569985213383584827969862565664045670569225565336850285724434541547790824259466081265923624326066215333507383244097292240193886655401150884613260682563706419093107166253477497614696592874408246506249208379272411522576873614542679187939971891904049639449894625277051479749961420449845675426365308666458178285105222076871223204694636242934659598589984505481655313038589556452213663366960747008195377460469750132842588831737192804147831587253451775542518204554329742806145949213051875634390212113170468756303215674397104432227357735357015546814344073693389823645421507937035794359686327115304771856205986340098022036066549063302486219708187861464019039070711439146748573775928639897745752298219415369239197318533833668304084011167296343287050421578842195134733815340425182770700282791782824277401305998857551524378707341388329350914680053046317440429944486150629122939186887074455800931468089211232291829516212023869520987614795319166399486046719173921488180278823393155493590990582135001532804992761414359459122863586540247588854624869302265823324530020108707642083024129042054170078580756862193545983017468116415829450402940397587071250789114645637222055347795409004186878583845849517709190379859502411167636940088303408074018272853684274379528136084556828484961714651391953509975636633484156367057924768003547081379051762266463595875627854461088756172608597536622403227596418769273558473834483538490445873540059660228804580438524398381537994373999040374905918555343778386238412549116484217656940580009571286724748382572766505819626127058730597829443312599703517062333463371905647511502521883833051159368740117765266096026540349988560653133511952411173881576933100850535832284538786424349199576641585845572813694879104702505728232335438440489740535491076479814502161070866608554277845617483563791280712200813216415464966021406827612586266423687597217760992469455375124017446453246262767686923199791172662471798981860312252119628057513379164376011884931697238737554649901215035764534460039769657626000356421750704113821671864229999453468994135002207322078439438437414269848421772401874795536386823316243318080109149808556546923945639067753444132860256513589971446220452760087176970972610990480868782482288532255041422360805697735788617166696957017865435389882856607962255235779069364224977590268617470368910898449678202662769435428261016272973761523559364891232291415864654143613946481837778960987500660782911780596073449397447570924547169457055077228912150881708241547210339292095549875906988450982791458866803627163918461662559371744671655241707517954369293460864632260995018772610747821833110039127256426037693495878914837014789546040288378705213902281394417806032738623953145454205565650675634006962112333407555850732401636835968560784874017947944802864141829749154047117501996760415303781521182586406165875958776489386916388984543794073432225652026007375975674756087454603686300584388496067211827423337862738659619365630915711641299653457495285542476172667179841166203081469641261895199621128800171703025637316291732691859261556524347745053412872425923878198008163683600331083611401495938673944397647199870931615444129310222363680777819148754115709519241062278768742758654317971458131384838144434721653506968351374717030939130065799014122679495144047227544215903909051033945399360717708691958723310195804239674225835729909813517030000842899138115519155818363643972125209706478010087602446548776172586234723825174635444732944371549804470031538655462361376478115016698132987748596063933621188715713163075302791732708991362240987393633608667005716914495428387754641504040709244656290845571250201059769869458909531346889802638543394363192747594405803247547430111255137104803087659653892832952928909674780656579959904495988028383117369029843207539139734940342210938510546827682021618583529135265872399591549122057669934434148612122762423037856815343031807663060737744476206013583600118882145755917169867258997231389021802526848499824965769302450234711713595033752588725747638603436955418885289914625205123918149028121110821052751005486533013106699037107780889803521426249091306983209664780282191801242736858569622756589305110527256468645974670239850115565124868859536678050150377054622291147854916127759611120819777561792394444458460021595232149129420159938808171450766655396409154972410752124514418661176336200038473201389767915464063805165359048021820735944917430068703317223901612979905145414267681330271787811916143047911505009311460676414633372185408698956622066314093453709980844087013643380304892124564023810477709302977167989373729318620769226732665886157550238988733647660752746553969873509773365596169438457060787669836410291529819259686578250417693069604537286050470392265601169114736062562047409963441040684706363659677795775919924130335285200707817579109198912545532538296050666911095736551026930820141034340554778350007629748709530643192354609687299838537127202924566677197359773455390253481403195459405429777330770711121288370220945775958208377017669340100626665484762206394896167872754255974618488106449111057507625105699103265568651766041932269337385340761438103338033482939336627563298493202736038480139181122854831155423684204141479146082087398414347039591199056430055059019613794907273364576427931409473010317492731853170552604129020160677189737573771121714405906409763263487323500516246652476484600981585766410790831433673566741552891642278839156604677657119836354512227848511460817587400008060534827148084409296252186977059005776104029593788495728024280087781286446733458467503019471310400715154483611966114285644609301270925678626914637456153928243211006903068815908024397593106779996794013875149599774345322564687908790331110281750696100462590629564874703496960737288013129470764526299217071820549121774772920825406625635125149219720724467569869381761417561046787179826916565741036817734751705289286633557933699358011706974977680378318064252957011172970236270502259731426792087117680904816243167511249750155229525943973290545454669515620981663604461281774014269973665833172183263639014911086152942371269061703025957651108947383894461791360484483185624154463173776725698193401260806139602559259498931659154532332930457733194518200417442704178973215676853744047682348751844597128828279887916342712002596532751027153439116465365366140343891848228950996816587795482968529644512858359613533327516740354390055018989469406081478952312271542584426864088089886544338030258861651503257503004511907583474743309570029156773005071983339970862319242094670547271140516157578393083031402030859651288173542337471783890020733570104193736538564130379290700221371017428006010612238598799148556165259072075054196239250005163651802696825655776716776109585982451577434588803180477873369060369675128558289901454816086252347538004143942914961934926687484141951971057788302272944422984628410661235710709126688016007869468253666860910408587189453462688285098755110033200089890754180943460718954389835309661231143735930793311586376125846142145894945481460140245667208548885947104763101384292365626477033406666839564391948412517036570480705144499637025776868959873546354184749751373039371717661870045326864106207921598613842988886049328687150289407796196056195045755587213243394637693151755770016520652100545720859142726866317451934203489124056760467617310019838741259611597455948972458681618077951392706118885934497258808112590395849174143939785235812893136233894711957412814437489385545883743257122336272176076475893042352889083491076928446363172324242295739459412362693595625758770954638287845372076815759326256985861111456668707636156719316508682418240127133302657266704489849851443249283731532961014686207307391144570772696476180830834176286621703749497885610293799627998523342980981184726141906882480478117848213784813295857451978845902990088599345077935040837002622114134710195610002094717609174155593609659499137810396830483188371603292257529775177681100970401430848299753080892810076162635592669016299064299745272253612082122274461482310893510670673276532855825596979307375935343078414310327302017610991953159780307600224151584441876455898378550238106877923093456182401415824343945942273616306416679852334094323051246412801284723977759378315960106357619138406423149235525882444954173766712057504134925800396001624541658396437458598295376980949587645724271447437079769827673953151153213816315142311101997894439352606827833223049628510861811492325730828590304917244437610666749724391651445777803593520967523242307219798997463382702401376581116337642832066747329943212730957343404329332242810359966828556261934675909092038499317102037929544697453139095987863160053778210859440436187453847265386513356747933011536854336092158437163916445041986987489583853532782330423202497198197777746338336342454116640698102760835435277671899533604576008558110951977608422187982440032660943152188516885533152801072598636483446857423343959050017156523496243894559186798286982337363336916597290286945309849039363705312585969296863724750634402907046883292245952427339856766157212574759158864964124622690838595397968608216921317118709084131319255791893140999099745232859252326900446298853375211096526332875287738582678798033289469655960556165479890850202586609641211844569888855920495284113963617362793857814695057347735322630067278914471001155860630037830953648813331563593588819954208003507384781148774233702321632221836204991547457271253844572329552233336200503532299712408927301411894083223185997624759780392787963943445344692656487224877762339917152125759758347105642797749468959845881030660516599101935497811063184714108734206153742318396042914555917452446385378172393030390369477248555277730765648359465915695835835106084474476783781684084094404403195698100847061150790988892229483549654704471934767715522591586242862890705928298032591217873753566532742835840476534222527913898957311503912583282857435331986503146189579992952172172405079537677730951020957133235250891520201129411302821200256778261330450640892235130205238105255290092742811124162267597106955966564608469968576307552838487808016317094586889187817622344927632392675743464111721427918624628623504730026503531743162283527726367054897452489204457521171096958411547747276852105147143425622294630373053285911919076016391815803373342281500723526309598533615823620110477375361269530068708357734664610304784726748014895306663684211071283006883809214611056564108468955851785190659313988769470995489271070435772372878420854947887288490191801417434147117512528072361470737464112815532831238688486799859841135859749068217369780709430243052469658870265563399489961943171589986663925303475609948261974014652317343844468102836825254011191886205392945570908499263690423385772568121759558113818901328645406244377502406525165663175293085214513744418321414374477591486657473807517101917778576639900690597348068533648970619694573506057590337556167239734728247594047313753126046941807590545662679979532154391591870569875934150525850721422501951420841256131891762102940326627802706975115538244290021721437253955686948502811414460105778918528957391877210990009043935786755912803022627749987081547777564916290529284426207042416152917296056813263534794135630160998645150183820196735095350851049978641496790627743788921773640362835273509711801765998881549935922681223738151128227396498362884377737480136958637021616595232685061075439938492207211763409271844679496515575724911859035089447550560841234626695278238752976842104854285572368259907360588102294683259234104252262369680160101108823436370826209191783358840771181706180481539460702392821747923553283922828711064556120295273868315174485270515959701193571722728491220646248669327788245439742258579818545128515684596946125312241142831768250875356179822289927291698094434352016509316621522315722796508822752657293729844596209638822404827063015023607050295537235051586546461941291042400957813825155920728457766864874051173322643383768525669182582039421617216672915683172845276401255989304949878432907243860294061149146890369864404422114881737240197359505292388962718934488285932545542197189596357057314992346957358476957251414524826105083067160269436448982741294714454527527617824322739711569493620761958520670165068997406449649810251913809907734823485815221511980494526788975240184723835895325520815483637359653986686738876647681461254579930009062618848425189067466361115733891687830169068289479191623870065546389375089078550533340735500789929200863791236574840401438737791626839822770539973649016741692544363223257118126844863613270229664553281155591651233932777802635613611319453989546404304515807974761074023203284303953040111888298246689701434320056556419280926720972456535695959416467875296533398422742111563973062110397219081846946188595547915208433805357096755064548024782661131327525878543235174159077706853532237889814397871781469282221406563052908514867438534467295339394399727031846710203799408989395290329288932267037881293938505464200013290259250706926611639950497427889779411307063455330654220996496532661461363009500971463372972037924455250405898740896616282676081785643474470986702532410521059196049646883892285697289322049697461761512019898415821153504449294981559255478754991800382194466596127310935613053259636570419431105478801216703516123360991933373794774294278323696944247272736641570254584750277831425139875532743376002091110782013096842300434499353176229052880041079282589315341048777369593456632688548701806470944659593132610529843939840738464893966095396322070549675793672517145745064892016031886264696497131587784068200386672315089199258514677525108998660416904352001978647725054996472657725788761327406895701875940758339153186486315780000966953005581201152177571392397738835835830685580300361176308513355192614429975742990704280260787760876471110648677618986015483624651931272953763761516746880324737784110367576935636961211103152278020667969166298904235266717602370555364454265741854152789234943561719104079401648836397237702514961330573902490563703397971833504162214992852045811952702936585001903643669993724374743560176254725142991053440670893038859754729567527753269551981397711425787241901941193741993559172287295312095284343487504039020501577621969174131242493271367538961516988041907184301325601446812607795211841314052441261816263331703464932836844955841176765613957458849707569347276156782633956524423682352046606571509421845091631021173873552366669604573502670697785340502839240744116704856199501953125059198647192088026171068270454317571492692654494470417408425162086434531358342530406466554763765352107465186614677077959669971102587248230316434567322098138667734855644777107497056940830848996226872964428192791746047828710597514700612153721408938134469657751968110177600590382535458741913383714999573525603190148303262864985235497885602185110365315782129342805606055671001733477568609713972933801185787210152767217831597853245516003773563857783122690689609709913325441062438815011408048767098435093998814824252236052084422197466817421062727469477321173906411750007434324159790303959431063353927393840566012281723625742588809311145655225952080914102686580132334405825552456072596479601924647247758432894481884818089085458726292313011311290960390374827592250397712886620336118621114062200769512011408801568832938163250815793342786990930480792718955079711911939976174082671908590310860108533856904288208049000544810740302576581919991460247685642447611618852735409865118052279192240870390631591782634717491493004633908898220373683012501875885108806347695239250448071198978658494619654893305175204512573557762697815021947694463231484363238003354226288044381987408368668007701958163761646090523233407624581167294608843844782969102398010311953897061080231198903962130365493298789018672613843485926148974683143718860331126252558079823921300262345652642011798840701549175660770039012636808594881331596715734325601060442633164504085922615000578935280309457755600921612485932085417246228058849415001514616292276889631228465977033310058886344129898449245317285773954290145132096388534067737241346098688778001899437250218582859070059420982031346108487853474542374842165338739903316146949372027228404848708821996603557372790547262785136341080656682053980478179401715530839865139578185578171903856129649702774331179870303879635227720565405548124093728213018512803470339353950848678386279036162075432497079659040726887718913868898546179584129194800040541752505737974875158804607038042875985423352673144960314680994099118005011575166694347352325802115516332351511787407455685405614428008460434831103257178630616812754216831177262022230946238532097924642610665320308515076943924697341559518722883256376136354272748065081198990612226308554160498273793221686563282933376466474070720179696275848576135313975571939435445337806661269907720056415630320513135562711150747374868598612538060185288122457454028444835923743284757136767484627024715176818365816298611025636105914905144642931059731805451078453576319920205418479370608118118263739530115940411760899419126350364023398062840490667770153460813922003929540217343300176221790574929826499303992824710579905950287495275925399640404763659208135098688400917716991509382514667099160732618065156473719445295938311630983248633917127774932187633286409897891471679923706175374439076378627071859989978251780012360527486887596080816836454799235231003835404448352354914490582578050339998483347283597501765083369388150376814743129324134479464367252598650733160419678493423582868600423751051951110185774027736465301868244911584284332946247353630906060033767102597479577175381685164755069401927875916719022215361268259664892013821648549902201546740640451673547953932671212632845694174555848162518901389453415594109661090748745528114604565181305663569637640413652815644643519626693488979929958743535230928848214911431629340785208067858589586585451911641911294673304118833338063646928504368696698829000440664198179242156805495760927320787647096811593929617405147321889296193082458020237617945825426332839244992139401904413971322493068954386795151411377874069520983942498229656495310007021552652773501950575536610718849943638172853678303387107700309930433336369657280765200871885833249623179643816353385205660361092015228159646288353138123545985377259902124395614159050947334019992866506387020094221170661753831516660135475921616122810311416476360124742404526005820892289307251721670047971047680018940797089357768851108528093458779969002612727608928832470628547473517856364635302620569035193688609263679626179337027039635120427463098998853377797653283742965035908453523842112698585723120358732236033646331571252955431672110450689041744693318185107932518056620146709324234393162256770537861256696540511433309212459796543790339426037389161287646059779675848496452321253816635464686640577873244555910680012912319304653462459557685688241081488115487674434161212733603859108810323366356239432284522489722247024522676706231372879007905392162847078666882686262545199693236522412929040764311362447676698962921663723344383418936444437865265274819020792287886384868673924139443646180766858793323503552046078088196719518627977270385301498556347403469850667714622251401688333714244861696780749888595651184171131004949891032047996329873684998046714411042861007267958439885703738109286553510840666326229642151287609339362778702374937014183458020886994161592802224023412185238893974766856283821616307766609967339554459000188636768205693617346603334284529426245128982218433439318250588492308154198156790912313104475641798180265842034934858121836629843391876936614589971831888231605340826184061837096262569510984371815081552428864359031353427738417815918995993709224778722480476064229979116806806528890884291773848066584290429080448587642873031513291931887968390234042126286548834507145780473154399994123806951785794410417251611737053591375966302400834144457751500705751604537198884589520164171570831406671164187038494296989409789083578712877853123865871114008282875866711329047875292737122277647759042283381374861803139716036830335520386273930506552336069058713892052118221983700715120029637951944053528406246482867321977483163239760689819280095469831806610361468361910415919443201643415054437145341362431024586820705626611815542925199455898251076365478058621139207805527814793610530086242098582707878107338401132451166398674474960727872466418552507670809248808572299565736013633104277239199138443385696984356855896043268431902105125024392906849338407253214894776085677970661160335120161597409100991957708936318646568796168756843190939484378216945091554231770203890846318677793329263240216693371089648970739632501037599689095399763297646565620989267434840585308964930975248375030651748223858662078997174151038595815939218471861986590962418728744376076810676499513723382121315370166417303134795147946291434235982569484504628244774781867586967880157189537271790531033121855838091769588163367190083296967254004167350831648763931332764071610997201691462479635869908987508543433120989622878936077663130276791315557517999054907238447752643818083205796697815048412998459991473048489226198141175251744273031841927896328404487860706430487735193744783561502891906806197447589645766342425730255682080663274767556553048469697101845258200449739499560639379267519909734658428546232672860775102214254391568220568831800002642345852978819593829570725513233158154987189915735953376059054115640721876212761993509368505861396819656783575136838911641510785542445197622321358127811234922453408080464443853764559773564272239765914186823181775368937722670285314378290397061665343198082381420458196060374727276101445627074182089082499060601860570636760005132636861704249477598551266733704569827974635389284943179245615632795146553145098669800201220768691835617404306052122603147787499597961586347931572006193674337299775500034073921350568862684367712416819706280627145999944944528590433926651303852357600362994064644819027402441789282247162986426841003861395181772249139030791799304276395040667549084260522865835684203162952668620927349508195542507945455684286048416633049106986422132792590334727758384590358062915285135554054465436865796834144212028592869625219460454952728001179617957759384924727196069365635104349526165104225262595070063169566893679256219302452509271485124031280812593141739113532098845326177409695070639546999498509024776172735625015955225349719368378338885513863079778798312787366272422071533399092140777125718185128155922563941423082055068712702967068631735949166911358199164061390053338491273750085193234258433137408484951299010050560589928049226680554532756548086912970098647897879059470510597386412359400918036416340444200935492177728014937164510327126385155883158297471396572003041558106610771986202620758558630904767105334739905122872967158347958851748213156964221632796148376219193436397973622763280975616937416454392771935410481498120412148966893631703302775780791828388687842433061963559344972171700584043604418372060505312326575398713211926232032998409676473473377450726720874619020316339778896096712502140757515712516514080556576744490422448004353599943535222722653346054102599026533539382723925735164936347163961239864344366377286110147074710537833146056918003325152731521662208795831483847932810302181675019342451676177112169434416356554585891491436040564140685189143914955025913728322701345888180153027875806191845175854153427725662028072358509899828397852915575962082123035485128143826745729626786741744101290169500525294316012558764341728570395683679949982417307930028226255890287114440894256871404784902424823736852542455501611577515106961066456911413858165815666982422219443886273793353563679197581350430856378825201664134499082895825228922512651847968882397878267441030382864715393776687073921870800027354545523267779485569822168323388499628576054175356664072999013756339451256352200001503814369410227934138529757463953470626763774999572088068561171613963216439282859978000014552998479521784854143000539664989693327032887804702805010055407875514364210333630612804149471919847945853080693388553053948417417599396957591783533681238534908485599003791948733886710057737059789294508978255552346036892148675456579509304410466203077736983351337844207593509547089931716231477216637142653900412047826665783435144021175850533630052091939540875749990251346435525509592309647430675960390917756010911676166850259815434064536514855960133332358935277514122780853791504639198804097071179156059923594061965094524018624948657379769929907331938464234141786279086627306949892175261243226257786622349040505645291470232101552388755791070858019661441785249892715141969717161385073512317503351338346666758262026586847035316094052688955172793182502145714269059577526332679645687703915896775935709789466902316270033778768171325707929230390344976631221067239748722329698582653424237699650568070358765781691915581006051402059124980359689865488702312790327632516900535280405003618445197634674008029306166965468121564407724152221352031397353567429534148613454162732832021067724690755744682524690879967876589369900388258602072477372906022511695289125973087237120003569603537751177119674889878480617278899402014838291103134818502229420196598501290325164003811876118218793425348747494757927483266690161770109719504060318266693240438537439561340514673865251126149336153648197663449253567505688977020309879704815376224780579569350808831878549051157427864976700326134544432810486520357140800217777918619394587766734604550811735428087071022468504789128042288422720777478816938903022720290499882849091334134851761879371470200350204721105497967419412014129201885084486111398951957941588223614636514275501027418567028099607502199577572719772926729559405703587030306106638746365973532193587017775974358621436619942283798827481570407116383681952592878130200696372225839087238125998991834589358940530959219599770428211996301580957834657756073864318938608492703408613524369675862046515026096836410025211615082270377032738892046988695144398495088177539804665149586089929315478041218744181449108165508854437338475971157681358287113827627056325986796914110230736531517963814586462873867406344948322809319246394202850247299002830297222910240282522511809424497519398944379910908861554635806604564905761587770793591630537074576741443075548621610806884605104498463094965171315275437168544050378925604364106524739738734965185827044892253427560179359820785827745394500959701145236055688079342008671933633099576769387403426310068759572958042451580539971588603237433993075120186535210778960409670038259822105640025419014687091491690450256289771187323118792565008839464769801428641300036344423521482344437740023455058111591646432910549773158483473550890082562297142693820046544654556634310599038273117028381488583254137399314911031330205437520978913945129440665909378771451353843663256632968261984927609712524162989404530457658822241839720850639689131580379783360995770558750075586849165511287969162677267246527095151976550750086019214290649786004541918161440880070691077939416237317019804009135390234406101007069116995584130069694114275062701137164094357515698877681431907905073665199525068936026032140258105560680686707363233578548662963150150210281334609387172340577810600483520999133932517967948386413065183899679448863430343933004260701587044293821303869873686055343411484538296884094741659808592133552024246158925893634680424837947075884177277068286074317285716936225991304504942659538202797382906055781620041858734406313895333938115725506531482485609263062390541064045144108174006432210727005855248852090378806488491278545318610348116190621031826640397409416130892145524826696840109363861241434445474453277180786307903843773252913698190787013005307570305344300755662762499629469235430051056199667503628126579848792492292982820938043546328761659474812209576448957084531865240724543810227035448519655727159862077409222319940849809206151137016088406974835698128177756736624724192333058843416752446025942869534783836854227659835167856760430710614948340382732050312133497955776692652650245081480013488714101282409404257896671204378670796111992205374704861399871141631590213665425690125675399343258373159929766921538100362153881026302039722667707481689955948005908048981551990106087004032705411250633887233702969527477330738510701228081226521562582932642996807149342779999630468904091958785407769703989046015087783308771995676595781608558936900085354465078456861763101212741368751419221417074567705852428481807825003020428794374308695482687014440791328171464467921037291927925476642445943753808641213699879636531527037436063931714768613351415647541278045326641882788684606624137281743956715944774206145475035207036677846743441130825288296624950496677174652434848208690968110671795843002759989347268552183881528153983841465901421715722737900776103798602047375012408986730267152154162440587683013623525565669524430007120835046905745970951871646983353868428445765640454769819101598331149471736333082753835922167448318765890877609183222677907611728306856398431697921185801740032694614776080557141640244078678878626518843692208598165272873807392727194883307285834823190790809940329123074215938534962438120725954351017087865860541007601724072831758291966828324071208149678763567543051369620707076221249108394336618238075742744830549811701529363783036210656346354391154413957645148105459701795019771320662106228143822752277226226087341407118835797653463882566976993280481444590940312525995428346340493536754709254810794787033732263459794349066793015546746230680337741896360924221684250120842146988457353366406823088823748469547019090633867798596846668254694684704591294871399557249158633432260946179973905940691041166306401317732898120637760105032377041270327443071365904478267119540542428917710811591895730088900501852642113338728586565557889394949166129066978863812626978500840873929850589791920209492995997416612248586374700168784148699294110412906153326974015107305230864794938643924100912695538669700451106614741305189851577371902915633434027209495966976031218199210802167509079232383440335141836265676945499102296308141527366226800023141975987772288220718102980639951393447893734340390384476711895792835244511033171865119982160209485527229754304796328340198419178302991771427095760473290759402139947571943406895657930518131690808520174349495130821948543632457568992300909679724613148019142543896467868334501633332157579173543576057978410065121558516446998644470385976316996935156877749701706182652703204660350246973431078165353943586150857727246499495664369368635595508221905670357102272853285196042691898261426016475412194259872678409363841158658896792913324556049658471003390972659046228694895443257364233485975457799261954412706394643857838572609071558187375311962355618676661472894608503587892845066776518948283288932842223519208632465628727818015488254091326420619093581921114828594120679359999921407960366624711022014353503635139751939384064191987904174001783470666957575337624010419795090781922550251812056659679015890356696327966435336986738872117946828587124817807648556157658098030027948788286607131046039534373761640174643757103139174730184626474031516584743562489781454482313583467815230781582577514039419577388397316989560594745346466164537628095264959911288098410942779626648688656649781687925406283919320281671275882843546212449346594596304039317307334653740817056809519781209623542682000221700221330340542939721060522756653996489068006420725342265033995780868640850909951906093035758395273427230289827478245898549584618895558748369224903997649478690766053230831465576286000632366825298801595338429760425057533034984992164280160608198965873584584920747229078105023387999022154415378275816828554752330308258004721568232683390450952919882651782133671645070191576909377099076235298748994930261654799476476906107698258595728248061772485672220809752942078200695406848469021281166097817529285809847106277666731230302677287274741632916132352300025674518062244343272348188606008855033483310719728331831424406349677538197716089265959864501399120606297479294167443386644016612948438203787908278274566290523289421825144854454668754730553053547172174794857964284654659379640547417771905332952099999230147232647154340596697134388262976444439475378058187058293246925417669737253801753044481343028818078878197155929054526040896466821034705597497873370497505171190452897011247926806331843346424701902926227900734219300955684962373187329921772939756219285916226362704619632943780783262596161911182787355576853211257584716296641940022164931093772506169728276959729781208146842945255670615390384929147566137638287574775586906493040293342967220584909944440618879651296836827721122903721484076889650884790643570247776595376978189183205882419465117459562150139590042066767127576553710113677018518859233495502610327367584189764510326453107104437786154766494244543836379372066281244074384478872080565719458381060653863261160475319589912912148810117746508961588479797707616480094012274278971486825262531596177665273240902383427159182141425754297613542117878983283580617668691284161831502618457530745244451032673073567567280190558742667119772782422474714773159371342909889085573648239879482144227048223214587876391400728546819431742917481945808467678225698950215696456949710957242775170909045450791913951765617551733011719276618303054744291456045958257382548631640099747670386156471629672552224288685354364841594967811803618240286775552054216371873871816476560587766697094303570590448513193815709791022959691781965936874433046602802065928838196491601666587084527660294336674920636350324999765631568635370180535820374411953334634172319724508673220406226565613921284572792463416775703002329847677898026744389707795690511597114768412270552449971957087020660640809117407990978058276129359801429894352370768825726551636368181523005814263755068863789893394943812542764433106885510573481188657373911219895950856244295775411309140076589657530071392502587440669143123988123229952011903221436000610718343772216641082218574965110121104724583401419080846219475786932673800825930213397851127818770257469878343770328891975158404631777537365744194711988184748467298613851111255943750475722957744730436718019192991759306907446336571446981747932211809682051548145113508554966103506512447997849403926773878850421271811852622780074878787291848108795330856952240816990931636854305651404083626546229916563413145844264795731723625659445963645923556374562109969010248535467614870927621767115835930161034148759443332910984051845479738455407350390105778839867465432451613679469326023118187498940356999544214125696916296632429028257797006446245984681657617074548324390389767486097450413363567866551165185124997028883107645010518769772150913115934221195284105241691441104785688577772460340066334160448634592477035924728666809963022523158816734696965007268577055220339864682858461987652377263551383429874474159766750374213211170289532870051920374408279545238072834246297882185748604726376247103865902876148793220146135425220576846429584889269922560065734435505932577258052940343310423756300839680930397224795388186858238755998380067168130733950758257707525738273506388925600565144830042502629336900330981099335521012327230126832301817369665120209652982633764261349463098085470065761031063199430956658916651730505645126380317815835886453879244209939527938528384607933399117018070612189666982059049332355980762032829492543368433035137624246967174999961677920057173132775344918470636898830837603997281283313997138651266354696379250702277719005247531220848986710302730975501667522783797143543386022040076411624224012490077106840156944449286011047668379047125763372117845456438432849611600313828049298491148578817487976950677935802953551343046039692961597081873694408395415952107883087806515214191158575947601273472536432330384702069993704224328949922605470821742358649718369501276242192998939063396704239518322342324133994488111510816915017709553434711240595036767644368488285224232009951714837151019347840354631812719870872403556610439289247684495221251876729623094143046109870406735386946152989533854578672989337993651103832742945623639319113180154667789270178274641347778147034917674542810825523773443672682991120059974424680160183196113791143431551764275919801200450644268184610566944305750710645925881852016414475894143363495028750686145831162109737790056132114948685906683922515408323216102116932264425229312186627940700034603294837532241184148212027963386437246592304773715836462831972376573379502030308204176975755049959508367987962629620745201594397283813568873554139032370194372415548047939050964208532475998454729922862918221383051733917434347818960398756295759312903279405389575731368257207375841600467281757321323797768450472914051612072767995544692047206164961384259639591629065037088656329112848278422466942471532558084243825785549068732556748446296678883479670358021337194989475360629281433579726694739408067442285307739846437061906604665734424806934028439510914289435040992561784157004757159823551712451370193416690503340826087963617662601593354800314634241294840019960282750044929188836315556890467954137312899940578223618745302020631785563377863835409796378702633866160169919868533163524881766041267135974106852481650246046890936427611020580785376110480867782695616853335162526575489655879992836056492557973929640755040421155187346676023439224439730314571297371097630901286667800734751348943003988667136142849955031785050997864075902726598988609625344259189472649484848142169766521192359921871172162907559948846103119432688569628079499361749401711642768782654872040229118316229291633770612649876465933346360153035707854825617725656235389044378935011879838742269939032804614273038937777996020921578110576886632659738929389082943089618940039997299058947738528450657786663299566667961291361024661472563708147036828034564801713207131296792832210037508936758386890026908615934949620330181720209982924503769345757335856939736501461369216001777914707165044290316336857750611597350549551195372884329670352810788218965311949989270589297139892516053309542561822936374243736448074700117329921598593417974021709101977182899518641148663237966805246391950161305556908865136823804147517825533887323857749753451196468631971470796723176244494654349565326837575886169336783600009281702620316059339707359940717505036646327406528471201915121755646897718511508059718671472160549912917830429537761472235473683871118570547216940866182197761008525109471295580549758124156411618558964543679422231889925214235456760542490937656127246051237327724646319673935654896142032178581211619571216445593554508918462617161769362953612880077718823233334364060290707759653667794605023419036864292298254455169068566219188501435855078662369799434705123264055504522994024099082111865353525042158439948799507066623201905341149847288754857520475224875945242638187543155025218516819071556220705359694388091644353612239635937526404518010409549709017580330950122376400640110933475458016458512077187933425348659784027408117143291911447878098503859352383400817520491399160149731929283609877226663141497956598410872025291859850022962724756563047698770971952984383349624893929782709712440395628799240608662364509523739351531838946643136602517825315884387654437574971096166890912562519132406901066413889193499177440332032549258888749663044171889376948186623572171728794029570719142037146191629773409957333631441803885272354843817076571539366552261319310870210375585578514756406211352040141055697446939120570291799298258221117570484215916591402966756827591223506977110729889286110014198400805705579163894830384724029506216261697975468452268936202592221346167961431733224789736821253591919523954692220032059835024305266892494744642181920952277369299739574431784834078152961114369162427266639423987377129766265073552213896996781756288445386909912729142163192246991894510625940452143002646298668613588296751160161763717076829254077433112684481861222595440205423177258365761753697059664951360920533125935660047844190555234866099866069146622393360393332841983291914360775997128217190692664748938340830493196505661237836330595556797745513329140702065775661077115247542346793387822315102417445679143769086559572711730095115108373802394158189534895668635370563615443614712807381842290897354407071795381322275559446081728488988364647988317555892665815357849100573761980474694886664961800258328868959860200532880859231520008206301864290842114219401642523041206663669090168343765543225834669744689259740586211097860135663153086561073412031942879208120843866843601392342295746742728305370116058212204184197984851280549194304580582512226764644196527376149927548923628496002682176889785510332279348391254920491840804512371695388346767780371418407979240331471998099929348457081624676376475608431495212297746915895211048925461844925516336434360883384513822972642747998757049867325671246435598270196205170816544352921888407243254172977289658536176004610655183528632122614715846296768915213649433118469259051058038833870695967074874579022250726929112437709425936459981890826833010664338815040026655807201028342704975504783445745812601406228814902694350308061735407404124625953452600991693418574277754991808421005268708575228969131859009380694101107124290476701288305835425592171501249296398556732453004572217427978244707599750293569825811000481539880493742469572322261192799472615486308421032786721321741873006919946843342254018048844983553375490132576660327296650123684563145799187036713378151725775663950432693510508477280188785396147914512725669864184631241923974824677732627373888466894251860749878653504332814892761177717295226032903989569130586665910675870534812813880400786764878957759375719257831433061472478373892109350934591280093239543315038760034563035288975589638456080329138045358247429276580775521945830665802989213377256573212244726800753646380545675120477151110333601305540388921009612963975212315526297840218232366210102754613408779957259458771970859443612948699782386997742070203824221775235584683975995032909975450532673097203234887725112612339064422614814150298528387171885898215877409584593016607257226273940448273585700465498459770958915955775093483391588125216314364962387752138367417787700287796171058260218334198022804170951650217262677993312681754851137853583430927644775553945648849264140481342255905068962650788358365179574261523625718315332292140336866674067732608349386863983579833922290402073948786338136872573391058495882531414049421746102905642005007213332570307650476362097101594694455102029299558353072849370087384973253967708591773545937175860966845990854181082622405595398000851386421199975371344430697937793715923558294419517421770013025138311947084399133702622931858939309337235695237586603298465819238092821272477558702160972744265028949780227360425683788034366493838669588684058768433644430063983662948577581160807505550043898786826881359549201620234886066579226296188060725904712468259189700824554037883482315978858373757774357513921262532424111376982969304637285916463052653933427392333029333548552936430466188814729605541485004473611977687027955763321220000895415576192360308533305457387760329136328584951639057445255286233332618998761729263749895457183027642796518413223581046339267735695447132444597737672546862098482335470588137158621669304759035840479083394265009518288055226461773787017619525034820527116376190978174008200898937680065504405329135617381290387408689409057512754964095553894370069701114595506831395653090246240460877133308670759240347033834959703283185372644658932640711135738493744510772428270368083742974746373119912755366281035940524352948885855719888363629227022685254944116153157750944826023557576974278723018859066330428060053951035713013470971947643543932438172960824825068483010428600285438496132434805640251377478911767285455248926020813444100036832680146560260956348526181495157833822881394142543655289000252806820369842593943533101587989386499436970337330688370863992320398352228702380410341365265521390411355523343176714795667522055024774875666261832777529775916369492731754378566516698419972086157461047712958518652077449149709369900670006994764028752143050930145542491106976368620296516699283429856850486345689701021077374701214438077290787888269754945653448513440198544027384154304746564489890088937611129575468301268081093040126325143598624310875834475865104160519208667950818794497444969090867882827804196496249753870700287384996159745354850919477085034283151936544745428097299755784696615845766040411707340714347655579800835476640420001175025934085584154606795006744896190012968791707839296145622368780220909715968663967301921429455408763743822353784145292093112534678767043251389652861196595116709840979187868593753332109927479713405125436995286730067494267359748003300990324051042147012145423486752916459883103711043756655274281741522916554014015414061499847885337063331205147701148703964552747836171463486256502337956208425286285782829718073804007724796261440566464241178708095460251059744656433155859071251983536249173647973733959593978576712881913007782949034443433043693215174790070900633355021098325697050487404717986719954077850041707394443244578655014669363614027496405372652784870538816646015120020347147011188409595130376260981896179118638760121467301804177400173386889368368540966404611685425849200417272158730735922742726481865657858034904513648253234618372653862616001061862511908311627946153584822416362183654163616651010676513425963501561981167570062328833119298018735583043270705049622231275713443480717045791502256708844862044694002819205175535726318328815165321586808549133715431331081385138721184744786960785223227403124614107868286279580212310899906892601108266403733289852346088282107061287952639855986165549852674451937341606224424504744303709507188372513051259056668924584555276839754797401300521312803305569848293755888192514110197189844613788045451917913438735793661125730094447946930055813300113782497736584217772591720482280875663458125530041630838051121408311683801706512575352214507588463740580007998688562563337208137498874747918286957746975404206307550652816526585002320504570832537206125680749205214225760885642600253314923814814585435629029858061497583199474463184268780730413928606026885421293427339761070808871171274742369157450073797619473859930387110964656845218402844141078159208175138799112847365090126749154724442855338097081320058341839731953803382073748805797574034799649533211662339646156968391570791225504230065713370724302822383153891751915235909328632057638030691802110374255709627871181443428300517033269696574390097193851851759791614671548574813402542629249743784033476448475637331419412939333855889689212239525959897840338245296212794324308490942342434149250956641597014299416930551475953460819050680696764292419515590262890742057845057519235794755017412568261530255693231621320877084287748917221399736576999683325067156772399542000953245032302598097094455338975376242743007057860139882601072343375926178094470542028453004086167895049107171496633937947258396245207135432499451712621823211301347219432506483835683286565240632320797075804808834547406221778767136555451284220338646250133022157050173264291660397204271659415450082963458278446365757783848530917961174981404599851672987345756187190982247477762640908844676456844979123801922596171594735065335034327025201186545092293834617619757414753906757149146677897094283671094339852103785537530294110900727285047638223120657585080587898591869389131093960279183374373213767924258482595887591945852936359519819603148247392266062851569881058146723144222799965705833263702382346288122369800489573328368510564721285984178495590300814326390009969981922420105004668080228285642641025406566564938104257387395646850309629882473758277544379653708789067129148939412327387917342792083248235012959042074964410439380071806188780353967080341667215684316997529262225199254203827335380620313255055253670856387146261070438041216490154857444636099008105534058839030417664648522830310455813581152873913855500689584815157997633911364369803061153472402488965971484032056328723133560367674564398193148646161836299440154716919350470677490072112319078102910785759466022867822820185108666190560470126755515009687422829523872562113419912682267785169069344799998824329845372757544885608864805245071243429225765712117227432113596803696163935197854664793340196816811549827564084672470313953613314345744664575968529938621263052194444476024767512603437783138194506164205837495358689899185337246781444976835270944237259843490867736008719113465621736765732615441198560520816146895927941375596848281069834153378064987571866824426620522443238989150460266622125887266313803970435153051065945236219912017836051278649436877068599093457480733687240451453186818640609750390285419085222251399392369714959044726272512839828724680520250494462114650482068642290364889787102470401859843493820694480754447478196921794079464930449868642848182922137665998922693675529084257633635263844045513604798326203398395773445224834737374421515610171786002021197542745276703607543592153506323571729338533015297681171584419062783470189773405378361534371124351106020549690128387119122590570060296989104738356700046043205675790740145002732274169512562515095371586856632684055445633728863364503094964894668839142771277980823359119352641980382725077477440066165675552843853293027635402834909884882394877108671569127153590219207896499460734337248140470733369488000535137416056963010383747599496133428010498694683143979674869654804990181297775562599139305961050049510468450969250953560275590055846578279017809580244984005419535887154852292363467336823775153775187696026446308478680120710873776144147548275400526384848052411481664543455035535132922319958308398170598492370878004259428893291011590176973735004919117090661935267940822400194806410554496559706229386338790039370191046745859872024997786281324442369707398733714732185525542464774268174180244760685402264373584439397034036054249748430756571633234102781145391516599963046807801722488922342924422266739087757276831148848372268160683424994233667250661504750433828708409725631249685688040524688247727228225778770814173997487491940585300409375205452579603499791797277944834298279179850549024070202044591336375552435248888445100278662611953855913178598783985269112001937731424591058653823993341696245230594371914569728721902597081535481329431943194256695638947326841773556122121866182210995968252262470592113758713550834018206116263548234378037994870391358830180287347016229889534261704075395008822975008598651698175531488878669079046330907121788448180114904207590738418634885358219347308560108635033077547274222905546509533374905183144902940937131428376524787351409760760608679539515682638965846474501660978644758165369097868318501624462285889773060561076242117590240211610180519383791478559854842232628588987252284122374570608058141847302270899093279612869385010924780879055591131469606023572036186570588868571806507495192459304447735785272377869502542222556721691808096699644320916271414015413759986922046839809954133449781293549714451833581762947933229005344294230998608690445383474346170999439611049515669606675045955254187849066516990245712456541716979738137348329705528598524051363619065234339570001735721265929710946585870133047342706671992042104055281906951143396835219807352837280986267639418493530305867963674959401322324615778741419310049789375751836426546406006771638626811024093929989553394183394231733557163791821258623209934002719228645548880182604511572302813559396130464239863752328857904856665068110930770115440827142706279914639991935024674118086574345974135495184018914983768069292780179246859547100686985088551754966925517322515593036905241398054894881772648709830265098221565551397604046448746690473002862989232367763614590405542829747990711181616626524060479515563954429898433102197979686972361534983209179557833188529118383793463616853994775781719136744300153196936762891915224792673211543919582557995783087478527123240437321323917840115464981849280669680362583021864752087064401692299595614509155502726394600159460202812049135779407302835345980363318351351184638481765985074314331361084127325936866560982373835040049492351336216902860834490294891965262476091520035754561464604735564840764465098965865124391847904131940943439178916095898373660731601327339775836495375893559120986223822230550768778118199554000199420133977135461621311240550956796730261389527778140451889297869422594288067302688809248404738516231297744729108864140503732913116406553323727981991116907204758833243905761773731838381113974098516667182919373051044464699860176835551751024610046935150172990529642134943601686184596289191199835149964869136464432621967935028270392612728544192956805696949269921246480804166103057288215089494539428378187306578488750350102355290461755506517616083585340807587014785442262784212703616375096097965610819628480496990748717208395423932017813874078789754750047476839613720120357237089119181634861555926796376911779668550108730683721386433497624673803366414194624155062558898083573751007705041304388520542089732986777032630520257036582029207147861398655497017200850709120925126442125719978753259878847049667276531171261145910683071065546495730161356335591323358696922615771655620373424465159153876533288914061432049694134994074153110032631867845506993915410682367049354189580724265942583298869633137714019902195601197202765203451789708339549166776511307118313595885363067609247030522040311447690818773072602691988192867059843575383699999254169551296024145271426844863705085282087520310232284133863946426972073575846623827075073432189407425189769220146702402616711621385724903252256712551534099759125998902805340285504551140015459748429767595413363727094432825800279083294352658524526437415200612328140739289004552400930490206703177506630434415593624038307151860153843858926327926978999915082544448707186481856611717508081081213640289364349377091029038183053668379101630734396938476139455378007448140310104651852355294142174275327936457491426333355124749001919434773703373782726784178012824117697073777430857852915068332820712275826826550573026679433366084122088584041935549988493395831965701711180138085012323774478005760338789054356797692913160649026367718363411960844237652429983035412943593615574088426483388683370234656752270977388835981106053342479685059968232349391585602186959283165632529165160769489276173249444666143839462997476002501349677921638746207824968027403712933232525914122286760739035309057935438407514211372519944550109293347637099834027433593886544421055801375441170037302056036912065413796135418471854084771419661080470772622963748884020072243365401780554216265905153979599767893204644793631313312498878779938531882339158985477242362641972603618483292780774166260409697695779336003069155275953410495582928000391938080589737113514707199661576675389967185402763721401125513334360696321719473614672668847236280576543549801249200060025321519221226570965075778220541229769571180019703312810896353631732804719494906046560836832992376951399263076072757853885333891008240840953153731816301734640540157129486146671029437825457692073841562117501199117296565450770244287297996238208024565491586556732122838704899694695859779605935365251324138355814369402809082835539272229121643258553379073358761021939309121271345401104368651821868094795524295968859618223950401633151997753045165264153284757854035198395621094408672495153236644760912415835926545245824066909331557240355755364296330690536430176962788223792856715740223946952040889061319011416895995226870100298950818221093975641593228229454690842761522236329525543135828992152233452182985471072272424749550276488180326381932058171350754752803877752688543868341942540215283811695300204540692104425226601201332782130013940108209870440841281625246123417297611147683309234765143231168247753045289521859761056271344897787716297044813448108830505982918568058220173608112582825169781912027926080351989229707888596387206828646546063283812744697319548616839185677164495071175525570466317882105808208676587103028928843888097002161679086637540195291569864956154322000741410636104276391747488816554581909436205265232458680816167798698672947636506007984466626999795866290460396000289823832238472135936990604848503934522654886397315298994541830634465592227301156249262631043939578572122984108170166625117814442227365855535780385813765947886294072367462838011134336643778835715513313255242102868652975290375011385586036280292242914259895676303201352383820282397867604154217206112010663621877918151387994086067044573135466153612833228436382094362265827718126009006374366076321151766848121982989971862692335188194536494378661058410379265034791235851680863673976435175897718160045905494738807339722718858592781457858573060724626261501997436112720974219037990797440432226000978044360040620931658351731284402762706484816466755861046729554990345154056828987586561274032066133309733280466856990962206475282560190044195555578598691069466882345788749040052197035289367363108839819019690688254265639944302701457413267420717825944602204180589506079243942723897331552175390098131180782704691359636202256838817518504077933979805517076547986317113215297330761719598630109895907029222329942638150137063010659005042969566112466416049694269131372483074470691187216582399343325688568688465061039031006568460346878994184786231877853723640562975932118700763191471686483601985333021741882373571364829966217292629210884815954471314785748828607708946897675548243540306042956152236242650395757289025439345750315608833982088089618056054017444632002938319504721139092410216813800673152046690525861098010101200413621341997511523801087182451203309898629230166844043944257551176647500991670586310435807500232548250851760568891931905026991533199502303618546610763059387913809449077960863171858083057870134582093155560372973797302252840376781768109983621254143546665397888640301968776952279106953564461764007012639597859321663147093465888582831160171327605106224714965657922220278732689296520124144677735077499745976841741486739072571804927007604592253039550580574853398500548441011945955027441546551148272525702606366506467413167728417182105528536038990631427282787486169130503768317764202777311832875743441421819937526269097355838887008373766584478708940790133739865064109349581584858237747784509370926513511619546592647464396972690184844594024146230279810272696910575496698510374812175916274464122780158123254495761598206837987145318002623175931029416165841774292891865543668505753215084691411794576727834438674328129062626345773693136515640978622950218396956318411977365907006424757751316465232740641439628778150735606913829910228461905347342899127890850174196784382531402722899201673175344246702136731688066008155105611909804946233730500537881745632721749809254398086870164714358923580310303006414748421116306304862260574471909971245036341117216504540409870277796480044245712532321183763948334613878594715560034304908490268454014441304811626451131333562698223844965314538792633337485792469752788174888795170268270482350366764986487811868948613248290153107296256482001027691767847196657578477278685141006916172612674288946603000451069830143757378598688293302510220897469779862526425126454404612339224824609108380545391985334350581556869904329351761543736361201702487899124027207140260410381396940433632104090074716952492513627400978987033654133483417283366531992099662112541665863444913040820689513755487974025354428619653066174723778377597205921625508000892915119660306843646885599681500971819473837000145378338219567482692795088987119666213769662922996078220068212163419352867532526444372300393150624987235774269837204337760943534436071046457109501205501765718776125344691883750336251724027594724114301506664536800719448363555994021906125206766620648805273188694726158261534874435854522918742426636441910407932252360541351225567912705621304370502698412755991738815807182838550090559900165429264379914062294278711053784742382511930512222868378306712992031098075780783073077887125496032021228161835505960480051992057194828784152247594336375095466272798046678329727586328646864403474899246874503666131722087980495684707400453852856328736785927158793970294640660813785772029907239574846569827920710501031950337301929573636890416655748435279739630543711151576930603939751241809867913271978872947478430760181021566849869766376925176119639395037198727132016555873310973008493134248674721139512741149098221310647760317688769238383022128510050930863843546037964400238231749358523769752935943849677452434009083396168438820646951137961886806529012315737063859778983643603418415864332103856352367475671393798981542957238398751521859742855474048966459714973443682307040902088107235628519342540163983227203329120008134502381759711147220125474209841354522788407380402536206804314349502842723222165697705840174857758855718178907427829658215402223494404059166264424413501325527800438135124553017057621785026638587028397189889723146780485038034469333583994777807910081115617414264245520466824189934535227396126563464663920029285335367054134885587537386534835813850349931566379636978194327059290637364094793578522548024464856435200592571606129184179511451907548844880913523327389425493103718730378658023788621399594678264870287489931177629314593828175185746010313454275755328010642617672837420806982514193606039494537471862559581797208919422090807017508789203434456148366300492037747233039763281401999131873474279102333958249075422451868204406313215580740287910572150541121617553579423655851106619581977862657537078190713368324551473781498415665521285885625830074109511739791421141919684203220502113748946272890309627436228178923544860448678643421673057733637300015554332712787115782562205901129606939884684546779185997666938413485191849735580028703072176160010309398556018221195830883664324419555675384776037846883315700159944317348018469854917583382749520382141719118805720353055644477069952001805929735658482996924418890432888521267284180356213032798806105415895456537737640188393828574546696735692488111131358398269176250513570776991917602312348791061441517155585367518875111246920059376320198132107187782374081352221698279086571148781689056852690868059584746230662044405945269314153054120607297000369454348374165243640103327828511826818085006531414101434918145456267601753062877425205232121898708900209042953934869235674998934853744818646496517867793611565727004827925705899639031559358185024196181361066421866908965421684993785925601885122641376256163812060028215438022154137027100933054154406316353974134177485253447164585505541470621383706883295079494836450171529830430613883972701573859364346183779248706471619809052555532928548357360299748556390977217182183864259322988671977047560910774658076665054356984076130638954278103999253156846940693789012548074756439077405599326265988240914351134141413201206251260080536934046714298532258347637784119702285198629637696596465586681759855018469930688253373377094318468946610343623127352485508229656951767157504058268544255383724778186527477092383623929019690681265131099447310693005442435318604723728186805790300126914956332869710415829681919370103418379135225104165849984323032329685420192330141897417810104590816985524171682319096603685681977977993443615309017549827005078952801301195436587913575604890213529950330516534019582601604572335150943789324442252754789615525217243998740115796755175307866885927887202843387380827279777407586176981496466030451818138888766478113097600303658248448230033302086035738205474656635703134033448917133623041430161268937386984416266903980578282836600118265634451686522947268818556625783766324400259274118463581271510423745616167059034473033760190503917898959495600569690395754942188425239929142157775369348562653534908006121840007823060170812192948771329891744874371110423035234630188776769924357945335693392296072833257071570516364051719889778903782636224358365612198969992232058294458161257178373340039691808355268731851138849538314825363582443177721663710473192553041292918622740016089521794155463368648881189957858689481530297281034018408775757284523272966298821430385934729353373920955241169240780182459547722747278924608986735932116040047329672026491912667160574092449942673077168790614193435727939196566618005401686183797318853774285992506361924725425071938190798625630446435640208670420930990106429594258226376466073991780725163693107039320901205475606178658895975216216105977050600786288014696725799522874149630603288063899718219748043721967623617232019431671445277452193753310992177052576093400266762781732112270915051124254083558665646731807191306567869851783266162647113229554141711470152908150052510346573755034482644924630425718466667985506825338715558983455197544318907276835545332398581935574034043106190235767310255067049091002151139535662575204947098379600015807000433151101438038991273245341405012398626571763023869098363769817840018958153962474779275519363159824999215303130926220513610529830362005787755860961346954519688160507021667115487680434809048777209031146278376654707076375787072706435613490420040273362545506298701686534899254735293283869312233172702803516505069850988681534948375956494993327877448740491811210861477022161141473096916864363689733549592977275221293603418536882657806731004556003838023671289762067413150205207127960465538090876350848579520225054529757975724912461730328924347910783856305695087854862697556897348554191191306123177738980022899476878004351643349995277536715221667669148018511331542504281526578057829044814611557102649160318377728014972678512584127973259092992606839977562425511225044440208995146112984358319977941809479666319348816933397116026459609781544226694376824594235423059588265577634533527671026010100051659403502739959155406315366517396286087960370041695775864600258213699902430097122772702659528985846420178336702562822143831887643032627179089065563232866613797870378012136482418320836416706943738342059872336501497323804952046469219782062164935677778241754655754762311154419483233702966242138262074345777585161985131848426366877976973004218788001921703693407521125705528403746961645438390296544920473989195790462750848031995401877586174483994181659501131148541227456617387748260251586910806577759924120744232322825506420823186809578423593327721182685808806488278274942415453129551660938022502526625818450527242476788059829767682174394790862002558301132288905748983686729575391675018887684066139370552898284737146961568732633387307117714043500045331412793791004236535800122141660098854341648179174103805772426176565618484933783113855242794886289824939615896561873295573083311864247132199873990833530894938474313345849031441041005197194210928652610884279868046245251336711028314222313207309329761731295728562869109140883951874304608553753128624280892861283262741356784963745892183701371290563777349144635887010460968857861180623176509958494492340577831680122748558454717240862087529441997803727855564681602838484332881562219695904979515547049164211580565501255881740622297279106876538810047414055736803140629339987142821201903859199408743470552961350921635801113097446704944508740220473222111985850154170744285113459147850018586733645641281857787494733377691539209728126839564443105659274267738081777143062001825306725526591396003101866916181753581176042526003208269060334338218724970795446920046185677623937999701513140510114185875322444270532528602378070636443141594411773028774496496016533626620841141952151575986002669362939098942138428697652148100987387634144398336268984356780141264013897630554787435406149424305202360168001794823681997655775050139053311783243588797398055334089283321829360659352681345799166388296698800997907600192569818218872470290008142264066404277228332529892863595883008056374687488149466234868706762285260876078044327796756137505950912816954076522470686213442674308483072060167458066382068151741444092246349948152920215843659936659871843976330987387545995813803686834163173363761655089732949562701583260604720242319293990458690190118560291053326101957822544001230725696457027787888921359852996950758613645605357154165031444433982782627876167940615049908705196219164787025542663366875625421483447731769729139298287379001886445572928301966906466497622287786841851951536206663086455538353209260097297587354907103593581999784704605500415266143518213498889338725586497904165478114276593476613868257891377919950286001125532987629951115112295569960993663559918999192822458759013558091153045444991346602571204868340418357192103211509768629906920526565110963879562195850533655707572941255614018264828103672581095875217259215256744618814584404461623850851067560415822295108050208440634206386423213087282066785442053867597288351983617232580991470059945031025741306813361793543012901441500670841436802579989633977767492745407304082661766267132524528885789586181659232781771746137813729455874324728523467257018314883314036969559316630263005232875571269414131159057667613287777864437297832650608524687191333601110291704782705239118821203404444474255657843829378528647653278322444494940017535068114508971286392022755767322624918559272024299693814552653768372137587738031646194793888038274522413853094765528239996073957022685318971162146109026265558932625660601694897366961704487696936811120219503981506274635780949641113918341692852960769229857424010204740219784616505532890431789319378350605651084820326281904220007641000355490343547038768609450867258467856222142696555162474611869110103194340259380607263914042142074993796658289999048676171190022420749761483093492991369960205235010986348108572617643875121935441400829302970127837430916250146582536246222388424959122681243768145069666154212496751425847978506992648340184840890256928950016738855974609947011661524699534387172713687115898843758244906981911172864569856618877623377365427490112276358438232231645134480195222962103826158788667433941836798973372153807734937068082432537319707245170925677384489279856319214472732769446644462883587783508071164126353948441702680755154330528031900708116042552878979167526663498139277255043332988923045663494894765004551786086261017379007592809651282681508765644431458069047708155708372455648743593411384038295476877281965085269405242959169630745767854983445566372839096898977035079778962312675481282922730656841763059957824053844628643725483286229674717888902528606056414627627414252451693263634038753565998996344166138277602470945795225442376905160007137689316501160140154372781562032203944083232725280368948079571922481666521498917279189233827906570847095523939672986487419071785013228285077683573779523036690001551304167086288178795819267652058665501895765822363305124330311113390375583065877244708718198166364701606362769508033923942940939988418275806607820292067170534469612076060537876978657691274959650074154473763261950587443679271830370339229252165190500985404672430138388792081949383221434351686108069733825283670839571876330550820210447197322390857848455621071517130085689384605802488847691557290984087719927765983516618362916071024136364083024538955667054429026142081280375730031188230707063155504165831773503483136895377266859035860022203771188376808484620828565838464614338603879894986222727849618232361314794596345708418598626759186560492223809703107779436900300334737343261318492816055317909626812236319365716897752518476346605158009159482393368108654995294736258669212400454884216722459296763910075051732713212538130477204479484365594276973542030086302207641900594736972559687585025488926834652256481363280181234403355536850521597990633459678088592766599532181703578810074221130985987222185764598338918567866625252831422499246855103675715376483419188006591041572578729795109012133380749745455931813936763529593240263185641653549809350481942910335768462998680729097132868784225131366186671455401574685814135208988964379106350743037719511223520133231070321399684174185328586666571471280645752831610608741212038504795773627631499920937296343904555973155634742551769546064151768908475491925034665622987906826960734617780546354656596548956481440346237111464217467048352824332390148988830378760292365942911406873802513339642969386864091231002527437669361526298132628958315378450361953514553396085234051210620722017649044128336880597007389930268487084949344386338245606961061924538107293385119780422411967708705189304598196540654002507197901603850323383564153673290272638447155455175883231696264026573198765533133566925653788526988146449725794817543340370230928891003750364204656247231321765893169471220398965175959508972786039166823873678418032740713420402105500044811743782857508647297761870673279920661139257438806839476584940036382053872896984238131663622264340855057146080321893301913281229032881543921130807861994975927843650849817683846114263858597500051408687644702313987714056911535670969600300474917450435155449062645407379006846621057837144831101529819989194767197214016865475647186027557468591449648295612872143620289832346360103294091680484650947892403107333606559959657851904946628217046098709776627836904014547063602547575914189315714482740578150380224460793080528001029589780426908688065366048631255853757874251554131563495523192313669373707627216414592957214250421048306846579875206933680739315394601288366802983813934684998224088926029111862739458528643634362891148403106077613774116959116842080055420656508521776581464696774919634621253599358519589152632944878750470904305799048613480397542285510683530454773793848351384459116691009433757101576653816342009128540997227951326691072672436611613403379624218867655522074398233147782448954367745396842159168425547549420873172188108489326663473649398470518918979692369638988692509298508008791966701958588366644867240389640568839196823272640441810494508234357806108664350460686961890002899675294724003131491927372234602511395509696683095421411177619001716817151306240006591697398129979518279208522723760188693625803924214534442752550702833597478657843413164178961548964262666850152805942781260865439884108413994700929634107755218406033936162651627198487164555678687143111208581876213877716551154654439377704193233990771231740135657010429774946359638839686276169988672994064517082867716893838777809474647953218788843474546144948225911332171471708931467260618130246735734650583629852458875300052189292719115022241771754563413270831033782232606935682334415342877045791157659793593525185906940122054832334199980969361562421806929992397143713876021577641364654419483968997342033122545812151702013863737197891393914208989456604370892892831314680756589060583980373703901552467177408887230105477367568853239299122527820264456382082650275058668126238779943398086083435787981280078524790431134700982020450971301119848301199125313803134581604910207879817506239518450699641520961539169271876115759221729805604752341578400278015724888723699991467008739063603895617881096410511519217762256855233094307077531507060182897524196618384094939967837909719825289979853561866177151735655148580327313059029695840204523363285201563204128482510934677167160508010498545946887460016165065014664752245068392740531292846602200483186179794459881782565008945550841737580342260514474332526858580265582748886750466789651292872872720066401452894486858675123913571695491065646428733669606403122926927159616986695901503087661650228500666301978850786961290764824074631977122162032248145889566327602480972513093947306514721934902530742334748634378445452602586894167049573978406457621908847497592436667111649186724885756040738867156139241760501559199767254433522370859474972351575124589353696884942647692415440023896164749211051846460889277723872460551773549919881694734638867616074538793008719095529647151099607003351634707701973626055128504590765240520135325170147809489859239694955892474651738102906039833252638800162951355251942764246203599960458741925447574641908589422635232740637021213049264976957726252091156780190293625794405348451121033295610444163585660708044928949948123990049851323433007894355082694843443084977357519143339887323714822447502786062462233148418930744556212865387476335278099258884018332515799783084346956471182063880411626385595224418656532424325598500115334412902227599270041957690166691379355776481268394678943784665193099737139678574264563059407068412634944537049137873900414781425212895562347196469256254907368533360587692078816297299709998011057143991400487393583271520632571747439394681198921307126649655097635313216114728006763328080255577132467583462140787140886957718070570275604573205546623358292140653583665110512294134988485741869659872260505403418169312347428731477875416556514535864357069904935971241224794417079076650151612105854726091010556540133266001846423990337235673288588523891278252278591803826730919404056728547205183448143876289555911103605299660129081938607771022256149936500026868539129991682717923369117409023896735186348196650055624906520895999799376101084546017881141141483063666519257065161618848319749112343790650780796398118280585495035400638756346216083802203864134214824055132452309943502044607569341024347373265338116033974995677199803109902863584321236902852656985864746282366127587793165843718771983162329515937952590005305554150321986411596640840484087416067847990129292435587651758876651273117988298831445492185287246079943758006267626183226363845564067495162767606581694008301542441254856156526053648580468376519621998821170319178809028596755198264156382320498921345319792312534596492352419354258565028643674482655424207285800501889053976084971737370379111735926455993470214276742713891296645467368750973552880227341005686199382977919353043267740047738441155228462876059733992293995852436520424845370577102890904900636638267077639547877242246997712401296465590769226655070572197894302007272527235756986410713250902300986662209776396507480334691342521308790790828349264800027062699419640976177411889731104129187408623248291209287773093176164298166342731773569627715876703616119159681545413712858749386965283291396965244838231419487535445871037449244444661525263228425460955205808790581564262387693789524422167258803399972128916718287203250834382125878975962009730767651497812165039072800811744187909966556556030010509181061673920815522133286968368509137413290639523983199306996449786976085589745761997413633251961724027653161228270821375729790846522969694817176550295111972179900359816665949539590240135115049801096064456333147877220979969412606296100969782433195134341194618729195589460963124873793274693375736543534517558996702487215512596077511817817292798419562686497493505603399613209010326894819218949250725835464336040743289447359433461882003493247430386648745239710957065591907857325909277569433760102653181707245052907249487937858589669418173245450290193760931718560840303562731207921534900251868023420138251455430340269173510770754296671641002089508112768082242048462285357948862859777461419877583094462888810005487605990848369223567513580440000674514201719678305135235946583512880572994384065380008030132947003292352849064694797961858129135232721030454164932041399870933047465003137027813131812640531470478388167162981956730375764536296792002603526237997856461273115059398527404398110988260701176706003691899190077733979550740218322829293473978176196078552800175416224433023409761588870290632206239800386138733456334676524942571704519944546211205220311149374743377532061799414792756314118990200939649618021467308276278043686284760513171571447247281934944414428153302923610176247050808264504047861380719565433188002209201469189351986445107849784781861437934305463193619365395746514502951218661797953007559349474459816071588289794549475144281721828077467665293006325916640101323668205200682439391849180055075632451656972036414942910892346524536196828347656629580629261816108191733711562879952180822053633215743205642379327568647145332157997969840141279330331244658282860641095825590107410310603753852990072384684625116419507307576647999795527886724410002375476995354771631148210146872335239084317653543834302076005568631932825224012000764299632097514803936528824103940233549986751694156928847455788107992242196007146275972126253086094470677650049981576897318408078701126538158689532212282593457445762617747719101830319133471792025627169435197890685377346270110508322864305168292877971709619045637742345716463425133409278124268454598025653406410703220511175227290147632938264439634816702806503828320799575115867671152301846177905552782181160969180400345048242580471507709614804926230997501202581580075984925492325514955458258962893433986953989445924530123007846560529438266457800745074442834296964496100890456047634022155446973849074676954877406443412810048880867377944241949083482239513419919115659417434387556654786400334637574587691444408282751271679097237141020616541415638789665563389119550107811060393359016389655768795083532685204881783122611941971266373336639663868297734560860472915690684841040395927579249152904839688709232021953512753716971581695002374618033153763379368283179086695384957585134590979501050832762691520407019897648280054487134262011033679787450423513465490467515934382828054027188269102629663830971099893814937360154310967078180762086060015277303464692846602697630895280179924951584769737756132270962954898199548011698174090389698478830311546588875255102354886831636132750228012994067961562586904173650241200936581764057429161923778505705841989725441805067582021420919112034331672173437645217583227951301256971639656805843115980045574056658082164300346102892186123232629388263380439540661200551537161805770627112992577494447185791019458279420782737933295348442887783969846779168907011957517587711652870750243707023355746278091808062779001637528589750309465835002915612864028042766790242270120234854912238803244866826301418727781185965919049959201895910298192564152850681597117284835359428890745578584744166220061244755497597446208422808859589522916969147447314103202863380111400201092934440672787045549396499051036618568356026804720312488503641533721243757819670613613313718469584730083660894259445509463159711558567682798121221778201386306896923562853036342655560366996828777578071213550479770441081104814081326053996386206773890698493984463433897130521553662310282503161991059997510180113109123586406759498032457187020180315041197307477417897524327958989622231647691509560121340934931732448179890448156121682631320936939694950076243447804056843705322400543728246641584799825573286078920123311847076727231480378096906175894724498123533402268254763484920724387235270218142590402244674058186156679921622245245958040523412925263543530598817508310970378764965508478235239507919300970776722289987892553038921805617383111929630004591422755751290167513731156753741446555273021040793110564464701763063237865347136263214998682676204897682013279475874854292600425039226806585810213210131484483308769529271066871398861971078448580961826705792310260633974847739651636137760896465218822467468421808873583416644776275744028634277600722341229127351506872117072102908776320415963870237696307300484825437663450489644176960216425997887551086773372789342971381770480253211356414269460266419912496206617591025918790913550481820046178334523199407732786339591834580892816308075227779786791923707092537959456516506852020112126523600237100777528504316172436244764130063302707417400254282487464748522703242312756651091072101752164076952596425467151821518626356960699267619628057171632254995366197256859039625213429410395021521203483441706669842018249573965815489371989803686497078314473385668689766360377863242860145082384759729462667897570183280928482419732322662790178534806557917977522201055154793289472831120778994730247926201269987966153943439250453179637824340640993838335576273161207088703445216613313462835419108983163381763992429425127829430530231898997433177196396397911880144006903290984430166887646330722454344106168271876076532408179506024801102697937937272145815554112518353109762158180476507574143875589909961439301604670963066467435424596738890270494386799930706288953141393697444911117624904201205933576256250839482581194740200189381039903833965265085091354562776999269152327322701855230274980012770401188347900321454608160287261749629163445153800533753687436416188416276694371237589639333683895618873580220367606968435537125060386523915603802256354369659710336223855634147977942761761047999843916547353893712564717683942380658302545265652684901012452384997969417079288364791352550781303727610402016907484460135977352116329074348108403307168484459531494193007464290748959236274216839611332799418452398213214034121253914192452620373644594318622189703993481952381000957899041505612431329025447879366728292318197128297680080330577450905601393155141780301574050114158210613011781378409916950060635033615565191058601517443486005671594167314006712483627840681336952924540479004931938661838146430198704826247591149080548769566406530839319699040916482222486547252972008487743844933888170062891388006604877702536355624001279706007369374119743648859579296551952533167412919245417895951501025657791453883856855862608479156627775787122627616184387001080377258768170561394797263248285648888032366768098753060690830458820659257564840628681879838128341776583433954243730904182618869825470694198319228824260336738221466868197288884564328966339309169146651627024793565000001430912140071771814356808850746417813430870308670372856343045198212086851567833574820671282484706287629438822491283177744418221456433719686027379806017510170444299027074772598281818869964181603446024645765360899792933096603420219527968004619248041166828426961599808326020192956923219201695016733250348011297528682998447756427460709031988007089338893300857657532265270014968791572048756663795865564305741605725853425956228429019514213928702402826921267687333132982301596009929029521591959446028969036394065342547694182832606428138192652448639340472815869618288085246023648062709552679026868436720375416841825871686796623073936175099901150114630068345387762498564207218284674756592438742405089870010882906491690766128070381212570590565069161609532442197077636205845144949866213992285721806469343007427691262512013871168837460369835000987914732340385989785606058710890781138661887903167727157874587822497531818182834270964590822963754326663388422975001996485708083905092424158392134281566440468603370704995358769735915111466160530980972317134579272179771491338963699047743874433261506697413943854314232284507264934471235963322106843127770448203240621366075139660674353868145123769903552274777035062297306385159567216177296871922230285686105639284471275284325934178579669427732637676532096627094001400384919982201740061335432339661813156165415789321771486153754854736910646616508171250121059172444593779002325525628978951568591506818885213551990319455407119292501690005130810769871889451298595221608989247462535907645169390747083482055055889231856146172013158428812285210285679304984866574882829888911973651850577709624883886284572146629835001575793815726706901249676690059379491538057137095440214429145717933699448425479530575504574374430197898125637126850809679347422359694874238623847804321605649921201380574528430305317502052397386306988688105209355476713815395780185954437461824626360110003040111009319966213265633720400498331680450514524376026643432602374026387886888723506315183052400807285467934941932451353685082108240747867323028635139596611192354999881459321245233664950485283070335834616548680742950894487321580980435481755951172254424316927606298794333192365741459583192463939960192401938465092161252535023605141674732673485284036423592465910657314798626486081575640534491988845204278129192658476623995763827217699426883579477039010852589382837383286916173627283932271751839603223822540219344649998589774738543991600668364664560050660435937975323103170425634756282102554620980487388341046460419476354848277552551332196796018534935310290605203208218288271952044807932127648945079128754825886865677092172323200553648096090220236117414490706550501207192152581730644405446522333173686518791295835876341613162441641922215742555480230852748168811424488037755863609299231151953493582992752168680550622904139412509849720824309688809907849048409923261989746369285689780584681783932646893220654016154789607904761234687791835682241832705305495915492145718868746614707506153184498424975638299390274696095269773632386050197470392328639890807870314527874021220039198196675360175372551554293618514069171998785682276152678760730576395344726057100668365153138255348192569552843396036691996297033860434722214199699415235465010349230460578506285246666489346282509774749430102307474709548776689102980311089926421404302120624939936861653315196913618945522734469914124420706101757790251768898113511511252595193439768651013027459848983169478724613550990976215234736996447907166800544297572746823305413694822243710416060875581811394596240134588436506031197285745979021532782852803679441645821272626836385076501596448493836404466504900201792103142738777321154191137329120625497910057169797058931333978484592048900691948178092315427637137040027166748305435150073028959816498331603822588140220941263816328703522150433920583752131760128798335443380786587274021396813725844194958409695983921313170770804841466797249235384735471788844106838345008159884566332484378956065852447788713057804601841676452527174983295213303569518972736288542380060506932414514151485494087070623376484973458312391937945635020770110096839318352131236865891910139157342858298668272595805096843331333441390133683985827370791279881844173525758617886520931546217821673258604971115094962212863153476496761905057505016840514595883037133288953088366886940665099746275410232941912730901053848564375382600049486479851390456716014320601641298116007239335184090316518559332478862481218652476912547675081115159674363533939582695542909118184166337992231808397815926823362524926994464796355537493151097294805277400642762555512449740979124530402970064757446133771546611847185810629494661420761511316213839741029528464982287640411184185731342838453021615167784464475702963418933166332006445038325850865220777477161182561119282433607039135102348884014026473752461493883498020785323713538919579093640783529195613304985094793854404359541727857751845039785120007258063767095972448592989844041132112062569289951304273106604112196932608691914296452854845270198604800245568706630676331897132308059806763781713521399739251111939826051998998303378579866625367737680954676290366786285311625042985548472714121785417362562567094996575268349529588390555851996111299102412150735396005003500247387988681715142493396294717789103409414050545968098789150101281844798728188995515463788493304413196641878586082261542808440339104554779665632276340184036092095908985207922765338325189825098784825067636530599188729495039912626991225058609321920818024083901046152493404810962736549092469331704186832758733639960253527338376853638214590072213299286339275461320494574785147013533164484807460551042120046101255324844942257672089640754916725399447366255836305546131117334982366103937039990195756904843719032446344118040958334244779789790239957880148784430638051759487400412507569902305696825778717686178817318255540338801413448038912912900773699094957086057917340550453652080664602889258144832168556633143043289585688363922037801087102451347509307410564447335384454480295859723686392233251350472695026288929106978962704196373047402545056880471165383313990999402233150710547420799397757130198211195438449313888328598733180933992285818169310659632982462261089101405681090534612112827392934311428886306523856243957595204311116578543174942975050699948086283638626547924907007830585701427485193337071197467603495526864059089225034552172850755641928143200565075253399515963217634731676443415717633716165613111790634081521846044686006785753610997315744633352326350376145789449691898624084649940824673247289395841816168965669670110286144966633995054674625767612646063810233387522122415505998008682422400252396389805057374312982972714484333081914580498494885706446017220560524876550948262325774928391814329238282636959632506783862321852842039775862049497112921417759493823219400193836216703430700933255603883293640022845672151282681275931942423322483181221672242679161693576563781571080659313102630106428957592056183338580087788938510774880327710576375860770143063327310396722184379232965408594627202476587447379799943538169709358884606692637306674016580734429403796165083627298442243197385911609153354523696032032362109092023051706064732525500926132721495672350262880961535672028823296385305850632752298514601620392028549018598985373529008870851395693661544795991277122900170585740391812388807630484268158125026800836695736493113952336253988042810674810806127268440493434022715080919568000994151063033202758848839124748384720855791738389964730744238452166912249530845393709575139915149527972034469027577173618780630326442741750998548090728885979064903694305491782011631172748320345368110977228267132555397385755401452077343437032761888890729943735068612561718925403712739752197457324689141863685198721103104912841874705461303625745126417701276351055106680454844122896335172350330785672205185601208527088805312931806185470809258167512582959907816365941346189030892369525887651272239005832413116114731135195613239401751777983222023314819003564499996657357958693257070042528461328274072123697091442561847756854395179615275283920532298269591333387451417821548047668785874782954898047541738219999165520183948330437072758445722124494556328152727049644363683603566390643062590957470825591734398979460829932198436763546862282229444803715481855041513542702423523494513946325817178407177754430353394983610423571453169058164199137665263406448773390771207583875497183410946873257399320227238640093312185564545677645648958232675619003375373823778520696952565666749899521691462540250037572830795728561632553879133156557857633248958910093150826633232014344251053811778695483026881790041960645935535419651581131890057795663273418142166315337732840381331266175062448141872769913397798566058788912869423608188086523569472627061690955714925011384421887952148990667195317942443940300700671375060036746644536580128275277552117292248022030944806806567135860287192402420075606457992376746984728040350024257090303395916941767954736331683214172003016006899899163220584718467535475602180473144066854869642105545143430022454180635737922591480598154421801433470688895395446387125663438804291603363348115198558578653411649662148429253916992534768964997108952339181540048983515153690989251166248555844622935884958975078063395064208218445682070225086220572463276067671256052444734742411025572275390381764891711685007872582246421958683644928012583626847885598571991924343297423236079052085299267356288186923357413653287713296675020172700446064077716754393200225748021270898114041781494282024273940171812773992168188966201649186556801952212130748627672807553216351605847480046019655428966802880433098967155690453806591285571158327589072169174053304907713439342116684674154106288822915984830716615055913462231711787639797438321293353630324116411514701872962046308873226460111840226809579279321630123848780014943114613587202052671887726997737307354116925071450459841646991873506667163219959139674996863361781524636131027630426283150716066242651271042870311509074437585624432248019022900745193128996687422952008817071021007454493973391092961264123271997319292387393342961597482010440055357903228461698776746197182347113100963657432368424332996890156557479008581053984713215632780709520250555145373502133935337241533927503075327036130635594928693024205739168809968037472035700273010102771407798570004361178774971408600407893364859919581882258897730790450288290862611363001617352108836785597063793557212646018850624610891751266371686047281824846591366455534813732275566475273437560878522629597595305503640656007612771139977356192458804461098338394581972935918456964146664212210164186951408550925991698656053096042706578042861861505359841254957453763055893048224812802880948749191922077699602110792575890445642329741148739912904832430756388152280749227956238357322368698352211047414641033896229119955042856345218535916699606125706438001271318573859965587332511472093213535330815203242926974646685940724068401432216274380719669081822089424640013607850333873233645115244810844280199363154355586628773987351267933815708386918706501912004543732817492742911547846597899444473137406028006723680234861712643464799395453491967410311894917063534066260405900811022698041762744438773221320024476553666899489825753227015966238950813829939774906272067841179803987777906606049592520944325795110994724832389370895882970222633532629907953675776574657438811485740609469863585349153679441033835621376518844676191561902448072634646765331980086735377222520363686477086456541533368183887796518763328284974813586165697020124144130434943052765446273693926891080365859626584490798432391031754253122178556280233798286967164580131826602441315229339981740619312141507869961104984666975562471743959661041257824727960744234634053257651607635276742248030998426131154428919513883587127739337203233805909916620411167306311521644851693358390412729986647132178391591371344856860422229606288470089593372319985878102152597898260852662318040188335880448751736375519688270948478785671141590579801970219394909333262976200380701131437389191224415891493722291467912673951111581151479989957457302925543751397100219400857730554934007188591162964673127759783913647645840153835002740710349760827868950914743519642674509254466820444459262027329735973891677501982822175075054905387826781867690899434988377779399702415657166056145629403500966199348702403389275335860784737682971986854748724453705435426068544896744224680342624560406035880011863784732110345249764112538662045990966507388688468644508230748842589563259482775385879685903634273803766975363408021795836293294546472362025471725443819950872239249417528643058150831695609593147149122474989794995987098703830121107049286475719646705453284220096298588233630810613398129488048264529108976348639958479672628715366998692116146863407234551853427344079296648067778655580480697621108755694637661041736848155701599432142781101253630023144665692403752810759099772139115947194269805299964793894740663238241192804145699477513870366667827303476307344851880809645176529905968753139324928187747104525088350538518307829587803653946463753726598441811542351165437278495898517784884119237495549327157889712035936014517025520768501016739588055492302974741206024341522165153739530619065167297774254168887702192067611533873551835444301115775242707789258827134085679987839295675208074410681945020007800030719250458380663688037455443956333540704226285964398328713700624217469837897302505207260615753056628832053246022077681598600639122944085545317254628918179724809882259137717970505336993877422576392363941139370784667234420084242139346190475265877929359376347404102830475779093637390901150412086952768254119544891554640563310876472332190028169207433596477585648721238534520273839865412612481155147433102743927562698874294247924909282441610441429570293917511911637274946848443381942579234746356523988517018740887090576917664784403684201543309828950780057488085420622350917609224458135683513866029035527635644891509337643863619829474695346673183792136666529246089378340377935901954578376155856044088030629014021680632418108794532407776504090528394630671966787121153125403826406489120203432609997481333833432702038407227761756930186353675222921753165310707092259473023332816113502597343610279556040388592623439077477588845479834482763070762671294349379818466148897139966189380639408875025835242933299266423164880828825165422288446511526764021545276171952863253644916268713763057798829506799835485195704257620602928846402282379022665452036241424024290644440863827519444791278525391452932816885484126663746833199615615825837410933305903924665180125997380126412515244803582600572346071377522617853455438642440378489676851368172988586009444928683845463804334022319585802326389158348492161159881218726881701753786264587251356893743205748709209700951698714544927905486594629564860494286027865767951389960140207122818805438684160146090390325890083697191688254407586172618765683573096561135733334010498404657029056349949132545215790334781408629350338703517476299672879061287439646591096202494106744100169591652362794924924571609996906015002146028621858207879094465144128528696803530508650597782203806964721629122628965298509368682393954227405310750399916533287946124638750803261912480544512798374531780583409447944949517335277471181008709207992292812695106218969360354825978213490360177963205678399306946427877520263774344582844228716335213207390242299895182802882263731190067966513728860479877551870257665753539136511523010919078946372703321932502494196656765807576759605813004374311876140658260567987267496643170224969655399903191621194591969261998437916209752040024817092217021820004739612606653058960758567037072737581729895292498430428723764502655354459276559109938249406681210293633908838717724167034752197394091662593046131318527437133055650410395911882141526187730557589157131617363611694006432618212152156909437805227696398727175049455295264904178622126985977943553727538039464255979961549206186218181804336399101456117727106137343627248823783684876256646217260735485674655022855847573404367600226202706596575141417281936350420349732703314964838734109222513511423616359722531172276897788958913060320967459177255149428625742733745104496967234859321932447831514603240317937989035784697257918556714896453953182501400492629976260096720601142305818573056040465357333326782974797069369064958126730304506608290871417626975953238828357828763696575381360382504715492551360881806046558671535509224280100277810927959544695645593622525349035886421208169922470553276726049948994514294317910116868364725596746410502870018730920379212657262484819248602030341829291811507123535171159518666297876266292493550936872289261963553599537166051172802339975972351529600980077319392481867920673661781640066440920327317150444102896027315057330177628567637988959485262191946373114077976580086092741232847628812646027026052200374260987425186208219302945979104628338169169004018179378341518940258018843425423064261793603270442930259001365333430975475251253491575966333125032505345509002172428592408446367124329930374684414388196861954314324899046254013153548933158425985933451452041711388204737474998387872814113078626560283193026480386096565260310588050991221851730207863644338916234605710712135050452584672408463144884533659503866965017266774196171885475647888334401727848139832134850975107902668434663472544616795891357633727981597447440681856643904810235732846314598943619748079489863161688484245664556656400695512751188039549035641502483352106219845114255698037345818349974363128948218164040891438892784580078011803977586006072324494424517623721293914044067125768237651275626132813635571019739464275832563324925720145170419960145931762028987971858680552475560639259718370354712603095964791721723574948645274947273828500600417564882310349219975251749247348183263655970841807713198865833473320638715850547629966519134023765265196504877315630256672782373757054546353732599025103075167807590767928468693401067911652969561120627470351007285376628735856706520924237572392336447638874271447732313904455894163898997731341981371792669591325038023733170423832764978910847143010347936910149902991138832821348932813748795768700576903636006342693671127249502237087007738758493467449448809773937168951447854520355055344575447678317719591767214761620772349668467646115419066079438209966183118043431666989788401761297762631655528469011903343648708299042001876830260478132397794248816130223714124829946449601978110620129263667720751870957027885750239773940212077501391787618150754558151515560370244903681083518676046594534123475984733760771125127710000020181961288278797471379674723506402206736987578391038293430487004534610960403883152915410718614098905337696989832402241937334781746648383637356560248039766882254816445426150715007785662144516089042504401168797534853379078919468122882055512907615739651878371721992923732579197648892062926458951456115422779623492532298608632217385020089809545134172784186583785529149995792842655123260702996903496140532854804197164554800628275330932531290991094214905540738885041727517894942501087643117398794602300758663738336989288427309969275286323920646527397055574032503406864842719991039662543109214925870273368654798857163094370752658933406474102056314387111931170834043829205461950524411217425755983068617711676469355802130145074102643772152609481426555048129660550944750119325248446224837305658006284562336542376802004368931650661738809317946143619884988737503174360365931437697314614791950442662495420964831281891304928911945371061531004369395641220709217651981941834553297887857065811732157689511402348799122545959161938500525252288418617557290259535165428634295961356756628094679396366756060469708762531237435146828974172797714335427571521800026900472016644934178325771662781578805006915188503838536834301352755863274901199253686832864919417635190630227120347797736212623600688666746148343100377274376564833454713573999778962213883072113145852329023947719576472867207973133988195461506800672940157992851053961022559226177498507248389837677758528957045294093632123810807439985950166696017392074319254851594331868388461905756251951590729649583716995606005294286396140139668369496605430756212717512970709347421631908236165810303544372108354110679196039091917581567914537832558171711470690213219714208321229670937414714590746682056492204751592911113231161899981444193829031649749961703322180651756879725825787303576502453211357545451039929254868748316349107027904275653497105867535385472886583176256418893172818504262003258171391979932460922099643943401134020952426844918965322006457604602813516028436762423645166132213127423493114461500426364886750975393963246339866351245909023676957380076302202250399270165536423143235223873837129372354765738680008688303110755755717367502036715970815801497204422628609824780788789737312926466556716398008503830703342489676569455129367245775430471693599507674195589538379612981662270547486259398569368183286197776277039589497371828057253441506078591783092710984659829879244204324483429701828054531517707320878228703486681841415355596898647790914766322618101354833680601687842206460916906873665486171016991668978209245982925400751203181866371330287383851254935412182979333897680440043911240750937445940907430029756592346269057224285349094766331609336465318326635979357458361750413455178733541680265713585531881384148795604631731659354553922771200579846782813921924290659760023420516383131013295149867109215321956727311477648598252583804274693120847725137031474517946756305676954122197911631170618011573904161464770808562547007746460709014028704149411884285484271655951071673732221588766936140348950095651478066037984033650148614129997328059409668823533852703829893447115160788207584801312562396484946057126972100999280918342078950898549152857805541886451236371501746241485875641707571330666708000901594399393091286204631430288942742476893155537014208620996468451740454326780304073696190936705736582953519754897312243228036336324656927193781809682171574580878558824559810560282860272326565794407666413882602473309351962527555123065509276573399189499794401422629012847055937448162929532400441232244477664653688076085654358409906435871309065478233300696983636872546955018432157514043700066781193268964350535271983662899548861807999689616319812722692531023693490096878747011821861656977907988135548927822880783605290697827965476069272147863785849711861502045412766105600954523285421779403238570836677032301088987685528482901286131863664627134303718547409110437453894012119269674378795598634755302895250764144055302579850072262283719143013113956293356883128992027524109539619526424910825390234508472946708093372356155787557855002972633440504087000484165362163645126431345552131000826044461073527171559518144107408392896297597521258924277807364840659732860110447367419078756610794503256573990051700701773863649664763512576829158141321987155070073724860424624331882509057020150237376938071085304931663654479333621464321308920314238882025942991287958717322373029347684433369212784764669101041253725763902288283224321442854055111167588807000334557860075820341106929008628188766428108752448568078523006304721902863781580329080108150959986735920552284515601555751038499457923262089166274939871001739264887931479207643760387736645389106614241717447283565921090738554306497066599684661507706015940577253984121072269150235999152868582526525540646251726106568640777133478917463759592978899420921379145268949784326351238528099071697649692856604294937632749003305438802977469931333301140170202482602210888801155299268912480082443322024279355257557097476015156397591138223651354492828477174264744221696333162070331845238169214576939403801166768592998473360521197016040495000119321176144372637394615187259391840460026190634007340790680384684081485439222148338093142390886753809540308070068986355243424793010351370498428804635111506222380826393289070760332875862816229285130022172933535925588752579234841413579902900305611591901814750520199088332153781328787684601869535920022024981321756934931473770757002737663772270965639864403175129264050835195076545499795280412667778634559320333656447277679267546649790765934913958073301617726787133560235507450036411906103533094633554782602333634978631521121756792898348390889877728873187935624954107396062803594279916681159885767188778953487498861427902010545083994596882244872982508351738791722750707496624964183518270019246666479114380024106092086962881544938624406653469676185105335498410592962511938790027576578474412241372767971436226736988854633259621942857921826002264095915947321295437557679494341101763983838359021399555464427598258941181176388398542633271649307211122515068712705535985916376398761927177969523743611596083931742557160975244897268151277267624147369065601960930272356047762826764654057832786595604996375034155135483093158642321280521129461461564994514752135610574830295573786901362568749561233372220000518723066649602055794612970306568628896139500100362320246491393430100032849227756109603061072872436875224522418485762858818571429897045031471365108241456906920040567651930282900317459794143974158256745908801765254723442459712310650609770331216629246781546444457837519539536026114983038087351994398789176862880554572577991876480022053538027125640170727608762762920187788202198095434448572139201277530422439269520993690729084389147751921403612278290734553840902771228566650220150807284151084364075983443999022821477637118338710127416366949440590497493475871459938881519640869506663604727322162722473892063635994571960144480628908669186465957097400178046213844633121031877134522023155867013292875980186638812352803039250734411999872359759317474282673677691417646810617020809355508726182768488787274030871866628012437137034467137056175033442246611515799227286421078406250895499608382730791653353875362219205890203984513715571803315309158067014168633286397998440380824185168777095848930198831355324650373402347890249756427998231009405365726981179987134826071187171135184346402381921840769448167857300176809389209032844457835393046446563290099117484338591898313992948614134862192285022171310999427134982147614313930253063118246408161671086481036286062308632855559888684987897874942687000569065587726973535229845060956772439333056968919282794839530975791523650111881062319439220766918156352541535318721575097973353291513662895644524666181406757674223068600791061608698334295891554290160940936565162950430893072225782234638320676347559633453358202287332337659499110457952238707973378230020323009260096171343753520861689097599320284992874021150125256400710500205742703990506143614162485135479607590720420112020012005306509659802460713424134271324901422296024877046744227396761305419816805832659461819144488108754171746368182713132581946512787356733593409453288440025902171217957270541955927149512614742821377652488093542238228889492814413929427870435313606736149439577442683526696504645195454422490101339779337894921318067667137447728113026278421145864095342699561089398412173131669340919677917617342898190366303810933605096369643935100910458390270331431234431797735641979795937922366590612376510611151796674347413613388685398425652098903916614797515512404425268485659907224181177296921461371165132697851428117446300881304579848554054716291893439523456300509579786725301348907216696876858615984119070613735077450484525316321118837909058129508817218165684119599963111398890654189689718506579279113971578421559243475751856457844164743854085439273198514270087029825427193966988570579906728775632459709750952659448366344403520989095096718411647443905649407699866630573767930453186726693308234864225780708063891171323157411062378531882438624212436052536451773349986493285992857514463918230624417810631174023931446399450808768224566983252988838028943353641671998332816029533106621881422742965287574414695014376981066399571251101013543963795727770041216631518302761802877352293785851267842563677555616082475146287214572221254950249599544960388494044173580978732784878578725563558238633458261330819685952259106682051676516118000875873779754005437190187220786315486800529723510772964870743783059823130820583144347702113695544302856781848276851290361676774223098073001421931835521277162904922808082877708738962163439161425007137235191256474389534183684897604825390166341127438154304524824102656123478642873181718752684152833481367251877498330818990303695160987267064282232740636013992072137387764063436559453282462624378180873272828167914827372555642392356789360057499894596961256171811312942440261609327298408831957052130876432283631583481544138295863855112787671411558027621574074486233624717573225195472341552881838374060996884065466885870834276892625368170906379394220841198662363255642378631154929937717288131045865043056402652376341233634875368340532332556231882672822423501811503426909983789696567391345746534566718252852841102604816440787963678788756302185399475029644194990111182394214142646244707424903716762645815764178908244023431328643111916499122666056315753787328954880650918068637162728799552332577080247535767060455357886812016862801793737036965049698086574588483806471244421414991465533146009853325217480034484633477068307408808679907213056443250049370286024436393662790174218011357923480209150726986843530016441156308986923562189750451956614656788059967592533302970347305459530332642444882370400111009623440058384503010200422425098291045481217539773250203493051539411765120383133058255188164645122444471770720301853004525768490804860425428127936347310513028341072256802703466740411297304158482044800235805451613002757663325899477542212951948866298193449094781550398343339625264720284960918647631359554930452808346258380776737270865967448681458283166932043021700383820752956397355890210089726362750453961723990203547354012682504577704075158721783951446965331039650115460799423843804309800758562506767752687140621029655207486352260992607567659909118311247907795040723569645119163621312796757832081751125350275722673586550313806067896393688446383394691898147916379768447405499689250244493262781596376398185790992590688242168461515197210377699751689635414160313712263211487071239650249509504300467161950284030815257658200350163327802904180174194821264810388898650436160180474685077230721708670542487730039036991337508726380160388337786512570482321578408717563159920973461691925152614520893473237171133645990227380503688401863007730954314840911110961268925030046131237772773525968843709959420202492144199189814827177101430404518696679230582543830956501345579059827349389792572427883656928413486430535859885252859876780044438720773469412392363368711963595151399359596620021790238403887961121097335034771652048012356405737812715175516647469498116253904434614712247610038888365183315589212444117109484200248895658113127558114740303864123433530616603439821292618292413726491247922056635752189383271955005239492669180071632332739304677872458756351488038759637606742627562385531783420261656244238140045491340394301227818957768787851238449394697794226402429288513812551613521349434511688998153719286963377665663763261360265436986539232782213316403799853623376792866915916029162445108629679061214765665397669947605397092850486140440748839564834677893023773953982837417596395323121525271019407753640235764942903285223287587637783594574403529381541419662882438575631806576441948242266405397149589824461647266641223928640751387581071133297293725721961565396200988214226825683112533189071388381212535501154279293313269078291703986779541520715935154157684509337309374895136236004453442332895335237051728267639484607780069657460364812526561119858044720159657690727801126460696851114142589379014179993952974714461412738885752189680898982897426301948442822533982335900293075790521458876250692309954454988935462044733592991177233895544404459275642379132703059956782964698285530404425674393065836687539369710957763731463695054922561999306350424025685407482858980472762476057796621614174339253414825607071165196692774315650201905848117314265843924288429437049839302056982192790358458951632046637290412538052331824559283264173898950339352165714506905767738771902287051623516040177864982218178735079375025774844358434044928854372102188072920239169305807757894301156786504552699203708135782146383358831540053821953750306510099789939154542315380953653997078707120741719949412391008172259477670793435497889518865171437248250377350106884091656859562629135559643805710297435770901746006876299689962516705892085711733718463933137960118880198719392476768689410161754330724577868132141583611703416741533797295626507774799699375293540419014882141286384508213087378924856186650302326237092433267368926017868591900320939773092770576246249653659376623695261354039357371290361479135488529432174475487645363380259191511277785935002059122297370562267461145610581597723129223803752682458160939874994745486378219288303182609586953130004600677374313914710544849474398934994594415808537992401179834202275735087117852238041559851337389713683136885733124467361710473183957716144217577355920591454757313125709420028617848647095339188483407619531463528514318797059804786169854553409737119616947531552359155922302314738412232493344867815412891289292134633400691536488200753022461195534602997035220772329293033671876779148176451686938702177786517653452067948394808011838339666125033048020531181947356423889796814589793030562804049738666986048648827044807362480398311571127599960064016878826896838923243443384745922859577893592643154392130524301989396795634554734894052959877087198282168767277517388230048715138582574392866851708797813147264622943841893924923229620529759252184796182710424207069996258195273179575767372128679017607484348636594589427955953949150492416932993654204531265842904732737735486598246119276846364701349612452540958676242398928701787898859898753942845701189119211956020548876636237598429758394488547598415709639270954864070133989864601991125639647954462415764432098433577546074859357259181715452077741828645377326232621632261737151438522663870719659829721825447203124373162465701669049650163712839521467110575661803307309929878108003620634471429308678856246720705741603337082401175037789729923709939068906919862358040452737376923800136730852072075289773547428721407878284753738349969279963807317037969515206319014653088390515987907142970397772306786019178271092978627023178805611274622207484342395619950364372240004409363605855956607385987212431417395668664522219492510765110840746550548071721145437970066071642712614833208395650674641619638874965862240298836078121899416276898538845323905564396818001782480733932009749270902034447073361656751888469457641342361098624747613986563978168248926774811288262224785110670476124050383015358482137873455499912355984847826891966816934160876833024193024100946417802941621267913050775466820662136993941569267456865043472383551192344538822085962410415505656817392070130407210785365660203603477960578395357805787965897037221457913004045143566943291290857080098452604274074868158655563674028176127779165417039360910956517403470045444313710272558106535100622084759751704988927056388108626714667256986055778434227981803522304584624032862627322817683822622070410280111044076581084304037844040114981261950840285274403964460777139419877001324093144130108383176176831319125748361231371420812630139506266124354846768452721064863245853590896611007493172439633542687886701755584996439075104713339613308242179104415704949505652425578320513642349476239694007157143489685304830388655638987559831773246844693746110899997020975655596137774781948030279135371423131155603012987577051808275326974315351185257120139722686228825228112069032640387773204203302705723517682128936707411390916737816756908643312548390781736362336927298884123828201090945570321603742993470330806429968166137972685759277947282705608953107825692624851788638539201433313644023227178054900982764058408333203211653841084868572300350918840169518473257515560576983369991972206928494096339174552318653855396722558032011323211860380636575512627758398407767588947676205812683069062630227812770603954432954211795078532652085485027011503942313935347485987630223554276343433123197356701304674487381682916964717283309841116187212307527516346922227069150005219039446154835265695287855819727974241540235151819027949035073111738780579812173596966430247961025096160237766882079766356876998637158200934630400716925234881965916097751755450176868611590952809784458468750330898561215485260096768327240231321788543372499084773518517493097399349521862067737275688417486284884747358864908356761404258557750659232338827306989590531872065796043494076050252494348616781452432707482101047231232208649127183449142352577071534199540274792112273634671144027819659057148894941187048039145393373051967893980937546270917838643915883705513101069058302150362805741456309530382013055866720336630097515671954923944203355326904091298179765012512994689658171172316959865265813624501312250038347430503814994213692703711155818754707018413868498277417908687480784702337726319019163357756366596517284706545517899875914391051543880984998828264313057234592235567163733485269751753728973190339087290559778221348681200568283163521951774479170958191336710612587685760242812195741692407195588255690768635247160933502506238289972877985795832847413858526928708832430981819613766873212078955316201279352571608204158898758962876934346212058636930210808603655436737462964517414179670106971845288361798976892025207632328734925229949519185239203983200951894288511019222443970136280602240378319100514334219027391005434167951724389085524982623301362055826610584716881998770257209719159755870914214927479334588412279861945360593072111878462163939763437390704742231913242910008372671204283375471980980127263136648546264982970821938592835184733457471697276387982964721942587649461659637675909340934194157595598754300911101088507350176261367749556950527071734775956934922756301675132372435830625290332863156001335852288071657666559025298354696640412203888712803007803582480434485873252041785827381500695067914870367363513414750745435036299819196629269033404069470609903151350151490120169581169745844141286497698646655665876928546210049112111534028171742839776973497499611336175176536275368214548388365154190857439715831521317806912858756667146689588835625905099383474348951061218169050614437723821286210866225590678443140421829569681982914611316277091850862554712848007267908303689377833202265377521218148791560602185238915673671926488873396654978923634414939365453607543107565493669974012530661948696021824336648586289814703862370879900528687264335784952718400498849459499907276055293400991677962191023241153957750103275033592256543225764683625015046798795869308861912898178139805852325219426740546123634331381554797640961438208243612346908143808489561335249369164485852448920766852831672916377293457260268469677854090586391485014452881252084109393027199384236005346684071541128895493932090666753245399533652898074093193086760862621724595515220466469093453235585862466888844214657743792167327463656205425584011201798145001189672223884286833768324786669986495318681433571292703285087667818865247108403586363874821293839205183252042729211056805369686617534766228758004684898863273450050534898920383271684961162562356823148752664744157194238496554355232491342678231816999729302464353163616364248525858367535395271407588673628501709387260362909797113814592164490779427403830377741820664572683909616103328937388324865603188106527913156790328753638659829301090465484457545318366092898262650141339593932078265348151639975795473278243763644343617970870230286895345203184816319642788173856874104937642379305615708403714507899429893936329203245201706829490735758552148231889190521162169681827454340146312217408435502261828247893335149517002465789286876419862029104338936142455212674288113736972751826947525005391029072266499801002577788412041549409455505388791738107182223418671311374920186989785395139346694936872719105870418349588403719108225075762681647188768756533610694655548290838756478622627390085019518324756989071393151494346150742587331639297452928260388405692052798025765353993619307892924912483562635916595683868710413481357980968770027214403623188270115400095316147581413285082730307395270065516749683283410661231311217823769790175936363929749515717118134607557496297175443417631150963189509050564379601027455988111158297740189944577429054636953281174077316988591273762492620710243344021771448526931419749689763908586125036344920350877409980965246413391466359061221695799816858941462972473577790648113150715415158571428380476917389043063004695884996186556323073852037910895757158513197164989088947703793835013216288702585104189514827520334960585003737831620095281110231719091326493016829633918443967481736239359244154447862042917053234678987068631014168811967510930254412301096213244456258230127883942101226917238691464064576212518898062130627780296650338218471175256084455284771292997960083107090464993663365097385285982024057276472941256107086717154329370150596314055435140627355440430472281213920343124462541478067752302084511165129258132284973986651183137200076387491087318685630119591797531802120463442744938175209280566286898840555856643996321054080605317886908578520104020743843635813626505285372114629433079831985870256656837634849659259663108604027047018802994500494677916559874738694357255164679747471541695257430441282816277477056071521776653479238443379780012877614838680546324581431511774907361752930251923355741591567445537922017201520989977795619575627853028288706301897571704252568909875232331974077214250411868311295519504665880963491612134520093787809019900423603062037127026089161476869387023401996592320292547169987253041455760343242845567580301595650629823080596655454760833605475232241084654698665944817674872666769721304267330147027273943829062295835979785368903785002090630837727247149564760687681432158981742833096454277868170828717871616809047121333828556367873819332355362734699852713131055353719630507085702298941637888182826929147692494875635537381826943144289452855780844911635856532532169004966701038236418629793787604524464068436509328277904076422310992523835600735487357708786777777033767660714784551552379045013986255489360745609734074382811857131648987561271252633090419640492038642272971587895799265788725748787195669130850867678789197497899632645660055577548924376982226670579511926954267752798734678141506460507044685809352766760019439382700195287556558072155515406732299912700899490758133394094537508551506295234343821358354868594590885368812020911181197276523544124856175233556448174332222726389679075716108562860557664839732448549664464752151082489503258517637629853746204761054457876022363295746728025159811991453678726305533368397878256322628169700439968961688882750673100948105823471785436352841201879905539466100129381424908225903737317315554370779847317679552055096805872446335050973046727044821820617990346521505421852326601616277668835967706838269760848737234618117095604950621313010955333523556273543246369784847910052016045182543990622260322999877847278084169936596252038605953028212746321341366915325853394476657553320673149415476013863166544486334068846075555061593773388868871782860540060832652403152884078173640689281609080106105285982937288274664275247254213243584360987725928324889553175175178952449735674883465230511514568224369857530571470772683570907731566462730683633155965449683363303740034591948494148186774899442108691436832271159417094071542425957850300366529261025056932019953904592681548484445570222081522346418343715806609072119309565573899945892234557618072757949421525003533081490052541650425010972206326708683733871570941356047766091043779555612625979781396954238352843697984821300491737002272767689277316763956567605447080724626165626970245433951854247821220438903104768922273704418142252691869120120979373239565854032541408839846333583583464770045504357292566970823473926912999284263780005955297864270802897431156638220866385825619195982884558302193877629418448018316203382795254000644260521085171939431433486686849656565315704463721103765784976297769790469210749118930960417407838161541411755487552061824725891332778004658398721463420211141256685528248484665797809906983112386402189927675322707301140485864675983215388376288262816268256255268600238992220097578632225317227783110934667860632436200281792897242880693383813054855534426455827072970554589116514836488212490031237188830955088814738142836317875288973854347616066526087839558195313595214932404265024676726630248616668672743119146627740418939365703363677889751422167932529006363712741804981205672151525723630356078923689625456181324329567254056221250697852822237486529522564294030694644972863785865502109661847506784250264413707005486392204244030345047613968850406614580567263830382066324483844891637159965114644626907960030294576903869255706021351869616145804220484820761488861705249454679855076775118587489019036261933423269099345108177505359613660726233121992379586230813491430550528572030019239222520519203160288675171817181089935503760425479451375858359989284354390410871512453871125824711451073426511436466672455611650302264087851840713447318811436241670704430236343964638681155216662041465988878275283807552868884962796361870906685938917611769325523788323837824411766429193485960747435911495549295352496241694690796449624721773084963645895330264559307858529871480655702813979626330692656742568849292435815927251913851808179231223954991907230533078270430776511062282109270044156447433910480640235776291778420572600770530338354613279097948789397268408669629533333289869064900349701724213347881756397183811556408653925161301563434479105953159299913204744076366493852443931075957225544851682011400515245762980076520758172430377264187337426192279287095394029538972621119015186841947496785516243310455920406532801399590168537727676590733915189782958118753555565475010468863921791728036078138838629463783282831315706977386775402008936045860690858288529519434471200080520087985736381685683814117119127114637309590450116890102130947740578820551404715272009076390195469065619708610204767452441335051800469282488535537408632003791452743691094922288505700158744684320276647633409702992215984171989258172688694476390352594227794075557627992250484917965594689070771127266456209182931615952858869622421905834396871902260564900167657304903204135030906879449936427794700859145306264288715983149847497535019311956022106792765240860542982106452810782233141289762990509704380540443429938116933516968890493280545495293426925368374453545628537465827861278675776136427535251058898028253857089405000812690335452407539809226301774825738182988422724538670434714446539165163806541520861826330613650202569226219599961034439075654175030011226267830483758667555144710723959064385976116288377320243219881722330566517372070074132515565576242958967799935914396700459263236652310192233417719040868833812202841361041427480114270784780904374467443795170703717433924042187638472761732500670469677045622975474716834557868437019447931414534263565896099663365116424511581046833839481033735884826887561079926900981025503573026181230101216677730097192825329861724220817632879921484613707128019291501401017217690961354511740789711824230437184066344718478899001490193717845980513232968529579322982325376295792065199664365632207135037865229944634485672958379898316161762312020724902999615253552353800724636525990250489269551252489205662778491823601543879251717393739788738798542868246962769515251542196677090945151808936940784326312827630837923524187917744980440433496447518677931319045472514938516767169959893260777250778546378756876761333205463613006188330359450874714214028649815917105101926252868971399058166521287564201330352241504470173153251474303531025651293515344440477522603347708918961898311204203976488323309442743985052238647553434481860056738093628345686041889265602552385152495887693942661644145965415586866127304665541072662052086240119195204990215155250622098465773762444861490698196203610141407138502152777969645958833268707293338507611871307471465982251564916266719481014516677103316015093514962571078025220128820828006697318305073902311983821085673641496039857373630871861059090832602418690328448229037657313864409688251248681392692984317806871228440134605217518542200283528477087389733233609574672331168677514901962532626606375342217238200028696172357800056591408155943703496920071297511363672212817759339581795844733049710778720317817558375420041689837817887671594266744985216335468988882795086241331195620604172240061149868035475052197224604439361616510885315461802715324641760584610321710907093266537303503862873386853746386466485745845990603808225051051250174494718434922032335025751656207334764377128662225519285970820631789558599198614920624915439738764717174610135072467137448816029519822620082249304284145201663096562338022418413780410002200890466044810325151122621034481186711605258472118959848447927253609554050552573483345685599406524224907094899210653376131673245198085077016823358304154750545639098770003005104503240316233879400400546713404831237636003072924639846400661701821208408228973308202077377126760255439123349016496796668205279560989027482474594820969316218237372567791025043868271792158540693928521259196070469728935760806165122092958052124774726415396647769126816953017077906144848732411793615506193342852187198413959942511186287195553214465410409707623832497953600372179012347876844755409659820906117715084545258737021329125186808944630049370611969809447264402735153790359270956655811692610740508932731424789417701185946793912007505564157653613977312265574050853673404252432735613224817254946483825051194155442958974409823299527339690988538516990373334781865868025263880797014548055482937707226984924833046901942373307538446492236512070859862806395307222777756963381989457448054502371945311100597256079329771330862143175929778405244673610329751254864297294472163987902681917365272255515401190030168847907992381661071214236261721038178274422144180956486039162647423272383683881284515319699399842774260740620825183617813242918769612374179245583235877214916991307343405678175986912996827063808238915788624586634147671355950435857107452437488879980219902492074058158156889677539670602208906154232956402023335272648420917290711559002147072326018180224396000698392423596802462300664217674322626330466257512939298211263628515798022336539922173860875293698099593766977130985503856927861448544679833702671435983003529148743606067536924030296416573290591031913997119819994219138716349541430221962226943497911328608442362599401572971732436542052046946140038649469959876460675367045695466710657430511675473637344477626951539788909132942825547703177012587563013679310390502523829407786069813604830534235279000876829115537608458001165660613240145746623673980634951632869739181187596048571879801459093120706902695553604771590028181675303999476861704269371063298485856627404802662382277269331677309964864144151378979603755099551521823949046644721470105160641288094100286259587933555787581392957755998783607819379081070853207874687744770207776321598474263306338382003720863970843496533785755321766028459879134279411984782019083394499528219036568870955730132768669688484827786495399317562438060808420500361369590597494504162455991958206490894723097495481324983736530942824545452528455198394269575226342617830963603678639094060179158239230564356160608778346921138614636191933405560804089414936277077290451609559477549617301615459250913755839503374109402577021812265561618478535066846791751834665935310574915681154825403651744992354351853552226227026332147218065168762514093563012284829957186720133360493177107920170223286468689068113880340892370515586004212109131347446098521075989932854457685295277474723238209335251212876014662132327044768489063305336371062250459554624867339792322872226354786910538466715065204345144829642667145336083841506745510972860496431235095970374167661025308487083658309790473904963015844215119126080910168695216451824691442281148525475241542248012273808973874175590418862607365106422608448411319766469992315610240773575090089564814547024005836367260556155424075856071767519483311773555038396493703833669288216535708237749685164540557622470369669491194435063743982047322089383311573463152122832043636738949922094042831900151805908365169427629778235556305524156555794991954256351648998181739042660706888978886169228543161883021729871266025451843630413769980679510446809233000132537660005086892794183460632861803425199348909542897632206735147920848558443166311252111397872440424429124984866161504128801379469881992053257313889214506858240722299096242315728314040835427244758844757353091632217948740415916059354730952911479824489983822314756795052394679056312747402013886100008527380163999376890033790310438869194424486762813941332046162092482794991630090808340698505438562880352026418944587994665994346647753109304843408276955672298264697682918193419599539894322651211593901295001984707595461034421696784103684619241010070941660261905904298583377652239835763946811681130203734283345846851536953241117729178334488252308085809870018029364146644853641242607142638296153116876902313261922784447237609083400730543610387420600152464647553354470527389137414966990562097411914856849811816178885003671138779322655909307855365000516309283642842769057763466960538706746296889675898801254021901168109067072735832128784110841960132094534169574425606495175442194058754588656618525328314963919321004354210433511493013460343355940137804792379918110440280702444850979524137759080076379855894736847024671769450348014399209769506652642490533940650925757362827220788791723581212930334446869618312104788753099064573504616401759210796440158367334839647468127102806178634426872758341282252757435210119798607484566834652342171543353786130321914208558012619020626115205828227069735371802557137542094385151359578313968431262974043172701351502559515550629226344871789408042582847500929716819990074390075112676058793027289234518997948977079659170349906729384433580859958687727580399561430776992974524764221736558564792493345028087445584061471696756662606237212692813224283809384203893775275520776993010755346491024693358818393711536522296300677909422192269517724869203519794272486192540016578313948535370612044326401036609045775565062690283278922009990211135614377041267277734623379858669555891114585502151343101149279893842178824784260555174935805638740883162988709990285901813706065712840525523452633758122203636949726603124688468406049652924865319026591767454181807971635264813185320941820447041149666093840827665113862567410442095564435277016406575228652735148626818494363654442460984668584097222426403288553136710708456560430508668338851702179948579073290807997115893265631420267350695569404735726729617612596697152147799088173799930078875985122908309004418749122820196278223750691530840215006233176090165533091162238468861234683815559252341112319486976693241988906463735626704392151804211612955367544495481746761193640031555857544257823882625841058154479991504879673825250194737849254874174268984383432290191472570187454935026559840995547045526478519339200927207539964758164303710846381980046734796106149942317570883999112475024492567118542586836047954410350123708937677504948576168328574689700880061907281232173853743428389674511904147202344240570583188089376723376388770796623480893473012701979130575376605459489611507193272794612361898659346822965490454458540738030823983518177161695626678951403703736338359995459142299462284003640029802909458785577443078010882217896837082598946364902125091823461198340706220099999296410925535485697337851361455544116517876221635047694145514291604151973937827862740073925850045465854561780031317435556498097049385789944393684686415258209281427432879447703334018446612890817176073165091651182061538907257158698885364954331644515437531563493517718279977481057998656738743129964818789029188542215859570186334498846552284841117163071717821102291126667250499222524007261725683046746269590035232860978804450489827216213505090272046757430796239984796283049551116676420459169380323378950156790251599681403624076445236684982480276766119923043758671243742508380992746433977303832561185381139910344039800404469790454710767945633114025023599820617851894631882208530454371448892976149870915786362134187696304329413410853986250537775983951865884211543257223217702696856720111544368886665275200622578597731887365818208376118796273252970083912342826975919530528155323485173805605232078908580127147422016677806279938701547690731728731362152278727582632184767086953642652866026254549274247887885075430818375237381428146493638779515303069344463273864093847250348795126511409509690998199078935270547792942957977512052142574692518447764479958475415905768631912761486798021649083146123755256478895191920328324030846393631856969561727216612009919275097938374685753336834289279851707965322642423751216048027355420793983905425287281635020872052017406210868654794081718939582271773563799007258149845030615075676538259192556861020292157355385320587682001068160265016286937345508512893525904672978857738791609208378049371028178594371697970525738387578598891850941327425651465458500533863921798336508972361167741955708631751732483758459120573947752177078633231985183728531464595704464316805212679137415357055456542198754437124169687561588763935949503765719345892448377998148371932788153792620140014508660973310757512344985614306320415200294002356322226755402364835879633455820409179366838722165696483709462754271590635549522539932187318416047383231481412143147433586076053885107863794613133843331350045659372185026982980216742106933845040592504589783197533096130644541363444917165516264067479977874565100204037781524463553858096750882044028650950986633797582988646065839155575104310032506474389284513909419317757202115284126558643715054814532360798216293282795362845805477592880955531300871735064777229044364091048102725049030425029898107889975186900798477030300615431482968044718356041836308309645328680381494045844059936679974117626377612859371098513545705471897337889527440131417748457609013139016281267754660440764010605927168007983960686560549366028563844100756873706820528257316059181458863124354753136381509129886832392681801337753699140480510610023447655846375460110775990008664815164053871687983799942681322084320847943817436670189714627258180504848536420895371604805986148893719191668705215444572098885018037576447007167264666926323351474107904414926025467509073692756162305797122754068008744027995041346467742175871242875931175659141177455739327051592360430897160275008191714324247450869352036322260423357465661431495765344708859333921505143419685217908057547379875974799206385363977235775050682766318142620417485867485754684876407114424864472137042065752497544002131169910528084240345565776845304269320843807230238900633797167348653486859669652055146552691231694157983395130282083181913441070071191242424116334917973135810976698364139554623402835119308179888938848962513374034987453421295126657435509835487707417921787931752063131992526765378634143858289460838768496532860984499593250031478498478497697703293540291013406382791691510327616237243270726975556916233428768773368862718357108578355802394734573528793278029140635944424001376487743616265178101231159070174459290201935558129837121314168167931151280670276314853243475803698118543610726421717775710711164497894212541183061942635565733657574641410531036345067485603248231176924567343719578646403455343037210194009532626164227044432642423616301188833655658450620552943160901370619337926867515687412032496305663762755378150894248070131551930906986989010148024256615606504995132125938498907398430557370651616738283037573847883434911042633308882599877152146631528983248192460117539603236805786568916430810808256691946556257438840787247030783061983337157235829591851244433120972327884167832162737904171934074335948922384288638102167030133660938320882744491358713280887365687815264331161540775826924650231230359400397113633855298280389852773561146699406610081903859290538833071373979892161775999059440630857345333144075520873343641599599866616778185006760004634030705303719148009020568468565044520744767073344136746120375471163558264184243914783016619493499305628697147430854125604819416933551317550259356833943862044103218200658919982968645718569470877277188544425426233128208069848386213174450559072472161153772330006561665045951737411546753351544031727442603597234377377439830443876967000704787718324332102098687056881067008416500684145443798083927409552462536980092629675229898641528800246442801436777341291433350454719682737104577061775402090461047783072621604188040173734687993412179138237802846170650626435260791841409379711783614428252635225087451887241431580131288483030305404622662729187213112002588097063792809321775453332334925588218233548164774243960615946811167137950510023198277722255171763090154218003656043127739907956408842704612542873972468166379286183901350110630280491829838581218046593574806328024117285306000095380698554035431593365163405418373978218705778806879966990530663578914739705911445096131126493012482648322332987571817200257536307593375634207293272524906568331868220386174084417112594521692991747163227391820234435917983492066332932054074444405865257865748354825706734474596329878919589417461652578906384492547112308620735382845309413742030140397946172364790216702062499526756050805703129849870067321868133682831393273729590872213455484082561922044597324345971270091790477421351745356261832825021076226028406458519655988427461777943100973202111501528949838209038002340704576997467953188316002710709028005120072527136163513401783443420434965933801218138942869200023270173303299256716088137477712123479762823035490734882347346129190358194460833015008584336534398969477237913716045916986165955806285536940273466535097792508463154129556966144591043701360160151450951558918265255086616493487708806521907698225035251514092867216666714794075963400065103277270811938310991269014193348973647609548270079309703862029802967317116723702452152063482677992513671052056501515256328939389515453224683526993496613799806616610967656458304497685712187357231726350761580365145777140272762964282285652266982159923000999382261668449511446738087372903625428669123566924723146620402092561605347727028302736640725473581560270496269110794583019381941475015619969579177344080809096308241222411169413422057647611192445420173440162799159596068525551130151637509035599769322129822567817568407130187023268235470009427392365501000882011341243832357829556865681101607443343302506053193221051235218038374301543646770956115441673611608501633082001384849933848246350441141482313995912307791269157607487366138217470977631172543364407895009417232936730247651399184966752504343659751751516546433932662817333714270688864636736350643618888462878985309687280984039206292180726264585278110492065665541756593394966542611949026456968529917836456053673117264472686420930151430044669990626869228418302213103840364471623306021810731071346242052310813488965802469055614297675913782577062084445053835730711773014424210507502825752788054460821021077547199594017218635744646040001031962966945602369012557539119090317414750143991407608814362806630320262458372387155957857223204994679458702726269982886327834608733256726483044643442580485136928344579890689302047716083150290606428877217966136039708102725424051920870056305224930821374797006754065574492392179911770073521237945724957455580919136546169044993323665881497170347078546740459609393021138739497895118584545913324600022162063495006858263299200216721707922243505361940068916420296095517340357912068233699411278656858269948060174724574721271855337642227382359395777434143897457922487012243998734241748165106730053614174866583781731020597439970195341064850626292143434752224028746500292090072725167412421947809069089276509538344171102439964239124111761067348830661949647977687200544244222586565464072410163017353798179681097712091405687121216235924784452768338898454726116476844029150767965483620309955223226728535921447047003832404419451104933379590928254959985200375846536371046786532252572263214133375184531640186563748984384765369955219385480616613941823130277969635288237805793349192299067900833012860881451715031097952483901046498068184199996947330110768368089685904953650229752760563103981817672086777913123846284308398687058805238478484099031822162403087260480856457495327738842103770507139706574035271016863447456418420184544049895793534471230148569242500698133824404361676292820187948347497246059302594027770621217569832723579266730864165928871489381230579914174064305828248889290961435562924376485638310156071309931052683716728312622002566259149505510636775772308763848383158115514065389719922038165718846788322228995333377262876827115039500525313125532526516165251688451877274863260917532337906573594055720828648098063973832400035729425467285210045416134534648005564679212602620440836150236679732180704251937319499342026458990874401446618916278305246632500257118280493801767938078586523568163436823807206662522175496478171909048682210022304860214194968656041764209072801340921938207272263787538164479624242853658181389596961986861091563982605656171330996803582184224659423502559672950232452209303698595675707522150269182339336434665234733851092003190865587419153549947117364620993994845399326257817557805446414246200798355539755304938918127710135995427725981106541276803190648565640801950024034488063300241385973513215431592376423639811510687353431461484825921201599213681638004479247885616723340838171156896091100023841215983565376620812019064619700037842077248938610065368613454338745031977348447789412818455372866479798377047828014648304018890632909251776536283388511697498887100376008862895765907254103953127548112621705542023896806375492748265415302990110289533570933122249468564614329399991888761843131077896097429977980343040669487194663581268393191432256162627248936865115606098055626608588855701613739944752906574229237876242088082596899812338858904990050279584711885966888674757811128886415704315925908453723823483902742801699325370980042877953047415342818290256008561594723192513551009004997241473026240942414481445478401179242036449763414677717521171657744891163224123159866351617139418654655621803497813142736072726269575365411584740976874142535505732619968224220095810244983089607456029488286257756157835939666320757356146746586884224639588638989223046137831078493557030694819900484560976964478084433272714228322252533528384372971024564254207597931096342856308266562318903008884446206970835740131146014610647620903741244553015172284610406012177534525835655078139189278999158331088343475181611511988963264374391450416822896386684663051756508896944534611702366799245660682349237035350070594953835031521134800470194281376965952142129045195276695606766613123655033797732238169286835248441440290109432309712436081286053368601757118413822667394013015994260082296335989399260643736120869622743153631418207170216144980100567115336897079568052135932032963379935586084742209671501451210105301549639499395430501657243894407698487529363398551666407668877130063497387067210188995817420933347929294929466642738893608635855899790602107129398683730623391823176238397684281555692628909627829419683216290891907718574005711728830786800186696929022748805246600368206238179271229887195231833088257436534454699985097870521279566424140386117663988160035915983290770256114200227210777484585714966297152459208830139405330744382791833876160997096201512171539369517945061333626408432804259732612206112561613759166376685778981286790811971033519890165947823121445424596626179762486099827067609008309732738464139256466684240748116789293324964591800245827166561900460182398874807154258299933600895771532103799255164133052341047727423232360134084974545086869060265818730068375397261524091531456970419957858242529669540642281515803367519211585764395496494974780151942316175063911381163630392418860293904049939225837896687708794654302346455839114260174169363428324983322684047485502799994548555552297229520181840446806562632948293907387969573510153395418313982251700691762455350200452230042473112247053460772417184842158054421936928930796832838103823237001415715023822870543271766204163512749949060037115224897822070300006625071018526567988697099299311034029772611543085805715400601907619227364211495037258270654797769031270683876359641146512618538212878713937663279325429702631945194946755707563615658826065437126986352086848406927225264799328422279303749600786054926758326613444140604259316853598456855571826429739364729184516694962091368361987700379096202454556400190256928085438230359117500104600596707368141583721089304967404810875198161575207533678569851195720253175957074918432390782030115621769836983822557806726741340536568215982222156098589237354369487355609955672317336404179129523816670321519255070714146137584191430805051676528512608301973333524619994615691434149123463242143663370391827465424582287183411044746632268418210570532573252576179842040854700510857116213836547352911362078450786032722070697341984934340904769050401378059355371096783977815339057624705268286173164228647462231390340617425036721730187933669741491523596556916560126248261594328659958234165873044835358311557438187417946129471214462782926866176131169635032059494719057625893819274050427640747524938068200085994724884630116962992348594851760064408954278588047999650492115887896301378326991479704288294582702661577661879207203379842779595990538107734882643258158713585139940721574648919485297567697322957616918272201136619471711686584245811101204330418952505477559815702317705063309969555086159703084900744190293629065020527827648367329692436076929247736187888862671687363677138208736332921522844740219215048661487807972899094963443317039197742276304832312985327494798683148001445132723270915878334882546948185591430120841575195009930958936692848992081788778470398560195815625808528029943127677045490781441772414554802124471444444335196942641609265017044125705005018291218972499396080341414507369233478502023395325611093002048967012804699746172866815994521037845129866180433536719080091913549330789851958511585712780638189684741454045684815233752097515671146922888547684460770808071783998150596136369856850277287843952976978447706984343471778671462560084665010218985016476444399715554379755693291388063569112938565858377864869503655329479313596974016451420072373748156266136753563614500908439790304933329132877824706208357942355697302827894581891260824593057883102839390551485025351724245691234922635236530124461017728034505409891690292552409686527581753735278537181971400645545885075236244622737087540459219257006818349566582237532493806364608856426607978510522670492392985821023588759565060318507646406640040919696397218387297937529155845139006485737494042246659198826144627770663947876789585940541148778130037650869192630047059324867460452937391166323006057397533367219008333710955883760715966467532844976187292152125069862486105782674684051900801776721405792839984517044634158952311302564083236381244809745022666029632912302879656716042658498146075682046979445335217489145668644010155923623080582358290223792638908047627241925912024290339331082498550633854482460887312160341364875169457404311174376182982798109769028889613579066569345353603615015300678718875525123242876466873179844540368318005596161408485527787574307463479510023805382846912113044923331887616623997331101267071948432475737448542786172351977815097181760061572416626935664030966845798866866310626379267115855496769538564845993924430217564015039806402703126713614643778350530039011954515925303475892681628014519032720676419431616187586887711038694929502083122290574335222714365562317121164083262768979814891863646913025007061713015850597818123059049324615286625305874164015695428572051210129108856485387436819401625758600245106137882673063507947187741036719939063195605370357042401282566672961543898613459616838256258461928680297152735365238917363168205082245803636888262456088543484946183356342949480034254634697126990708922995137239407037840921465742743045734410999536840807665780520770184652129823112269654595336754756347384330379849144353082747501151852466912430345094549512334203140228509271949581800919560416452965077784571723510118595141498689076702509387561522792674471317429965035222080763337075976205493780523896746394470968701400878665781077217531849590280184683464755350777091305017573418057856690393359537743411356850812918827499044594376103969035970327596316588786474365274077016671317467347539863441505391315822321974845300916105070498777739648054870403316308835116753470375814285005796829578979752826887227561982801295956048817906750007215140863480942188062104622260982294809647318998102324060962248516337744486592895347401483034937144786320150840703274677165949353977307259894116897763156155831820368618224421034674155184902149025627355788242366443504173460731047621582342154799422799784969707753578681190047511109806338436346848815397448291744330175310018518586096819367064977995898254687321730144576552489690870966147133648876489841812570433375404395130285750364583519938460226966079383736471220645778692517435638570165157113408377621465392222418530391085250349423894046081330459039009962601104457728031114609176733823971484542219302054161820499432778179354727771075713535288249820825543629162623493278196964489556932730916661960647191536323046636614903289474508448558517812317121325291515967012125800519086579857655904986303170339804283164668658471017388619942309763013527254579317474293023769616308796332611250201139180877275490923257648804730165115577946985887929085497052807977009936631735108492673479491814872827513446967164444174082410831144782185934311244311732776071816848050767092404250497467309798258941404221052863868623991924808602809924316776178111977930941583938513321316861816837003573096610417261853141234923958279867347559217258957491843983026430507649758771744729168226052475200944148221737989074828433583834177877082208322057783461231726412672752665092205059700951895531983792913518664018534474005980124535637538096112927015513441647242340110370485328709129069563099947427664015691795192672868475687369944861574619103411074124948394215418833511715113775807966671872111875002559636240461929316923825577610482054375829381467642647094117527003811916926819766951495364764496075026967001912913974908747809194824897621432486428374077018529171646328567150967009556147300041080597048163112590175151940744951046230164675935589033492240932106341499376376049764096289929768154769590965875146825648343869278348082217965193691367234437232694740763614796197641336087187510113601693299514682094776891431924739542974901373962558955876624304147870559682885738308760560773499459816821070471821246505463379440449203731375514565257143666658290714756149443445509811604192463526763058709566031607265500633765937648321923033528466346684096716698810468723271286293008870061339138656446194724331777809351209193156537459733336005789651689188557688587491208958398229601589246457232536632182094867141265802409607989678932838472726898674474538681441885018424749073205916218417878183631536514370886777714978125971259709545280467334704047749048201121525782529608964971969255588247066201354620466695338148996470562935557182768660479585048452736341505840261365164303682961282989986690421406365670073558570475392728136876423711783254313163754016588306345809717170044006883716016028395946044748508257969437385268216426019293740393617830072896291475691566828439330268906610027764007252148867401869574826230384629950410003172525071519636947645586669703113900592614973413756087384075566033633378247406937288642680441404405674142116063954875128752431225345362484600538809404780406923521820612112772158935140037348921321328073136761248858112016125511331228580665486997595168849897203733657052569320787041899253722215324403854163000910264529376427408827972806492247508603189466934684131092897731977126667296275774077399936576355235693699088290008286100405282662656584720746433818719958048452705323311233538554501439817567557395268245806404128279581127933611484544133820774202177500901842079142452566899594578973304691658399515068452536091061499839191676829622115299489819508377014293133614002936324135300898225709772760206732557824169108981370560122210057268578358822476067864615412092725619490772457595329908451349893101722051386634291766081481165627139468620116934936013613560536386418322657005329098169867086081970483730892130458633709815384322788988502936152708175358301015744715245345316233951431238310154556397565019085902743453695490446342534614087866546189330457685706233246922579431369363379711382224066798317093769595043721356607649987202514349473146107373811248242841861310541230712465897616629103057291996804033739331431832874215821434673485768239243819645906749046625250390911337950983213321721884320810163232807418122502142716768350198295881264125967740843669850825941879231540251314247357204369556773860607960880630157041318790634694679034432611975990013259864068113010420684779262974202978617102916946143030086569633548654114119667310771109469664901883081039014254248647224497616028797439792836026369416476942999549892639691231270784949025816207147380640579954527160013170617686643998536745925374666605965630472758584868817583217878976601896882075790955235352621745080841638465867027819503253658924664882016076048880533807292908912923779151378963283063129910468927806817249462014902994326757413525487524570761346316868873177057546632828581480838774007484632590037886003519177035207671388453302517759346613841865763659836582773919383601619559887750400551559190988578477882792643293012576968645407094339035667839505169827086484689564563283552937646498227397658283859018876547301042489736290116027992839468822508431689825680114364177089771644011291367047355818878468117099189129168031007267648724838578786146959962736320926656814178349592226995739805132459672634155503589827880240916391387929714897849354940199901350785737139607939220151854395413299166217498969416614857731301892218507540020154149866064818832162552836565065430405385506941182751929770840007149065996540011577511904287451222370014108244496634405803195630165375820080597341438233461597624353517309113923287609447403904958397702872874894967015474536562573642390844772151912472546333299795553403686238051093120471302486783102148485752218292775441902816982527501614664831599387112717990984621295826272229988590890829463924405531857236197168399510417865661922096818412235151853784135780263514188671706526629043630448215570090425602483117725266066089811083938229684252553263141167318616481975603422824796791783190195820696133324247557830882808661606742576170764036615527457972067731130314012398430065945623583122132631203880769272224622331406041597010438117326798339382427571990738231791708158773305739653150410628089720482081590259819775060374743700964341479884314795627609408655857053862560007717189074129901668399297571181269769415749841302473032636138355035320585192724071339604460900479005475018316500033004111154023742682085493235770540921805720957441217142192223710951568748692100796836674885508331316878379862516032938397997284928707004955042417819831361791996156338264851188040883165958888872169228316240484984923312141758727202284537182737922226138689192054227831130694538628609138243374595072362849693004520036127212277043786382506358394684741053007694865224572238908610378209689255989445557821681005702396823396698333945066074956796569495494109281071334573115544819309525495916476199325960026678725250584305968592002650389817678971053893712256445824785847205939450024850644834100831988989291510609105508444443143628484614002874981997457410668677485228631507889330270600150372494351346199921752878128055764312339253699492356512456383405982802512193379637446561218509236507758267100266583868495163700523027655350793418979289143782867666979947462511125432109665284097724716593618466781248985810522261295364583034043411348815381410003849276583842150630948770086213794961987428959591153007676236740166456023140908435616669820823103303473207076279166752153702638923300568891465335185320129906718879971076450255504842887377506893549410662858997821986904049628158346039485400176074765781832141397714111942718648560520959153194781967356261410664373603629181110189121911388280812302118208154722770501027787119172301751994088856025300754775488816864776761309921626449874837813102490769843135973554225329807556431163503861949097008732449273125311636394966130492826299105472630956686422903185540248937207549766295809158659200723278650232223159499116575734097020164729682596644141076322975538035083905804938319292643544492070413911072158418148118075596009749233165187122411125511552766763312125731156404447749090963868611607335203125324481793660740008563988198156826261624488906912837099856033540011855894174212612977444242301878903544921098539634102200241764459353776794647789019134076734827958493834817052763793787448759564283129020335919432730636016184044999103649377776092157202402742640878492060682430852707655250713257366208508711835659113661872446090163512730288315606965768811210385696359702064846447690587808907400297332274237543454242058327974081330436644711465591352952244000992974756493391905822603600910474343727789318521188783660180122470688138001984939138595131638773200998227033389683933490612405952227115765593219653195974883625827986763618307481716665399637397987864550020376322453374569822613042693090011170394797483582404800018471049117970623289570878383098888631655757829749957170554984874297916737878176939884491228837154597028402680443819720737400992051012978620951011670334074441695085996292518433754787021611471023452061583729126734462578967848094969694259801963323143086421189901094750328823212564404289295620228945730518710984607974566189514945069756602918650672477009800254542929981515881640589250910968818632633126450100449428432916500638615367111625732860919470482586674848601852350634670604392664669144047952640564494280888681122487546414662376523991103028442301020431577164091029915994065296455712080367957085665274101048045581795459143188534094699797448775801296488554203833911817184352258159174458239795099561210431296652009866841055510054119843021912917662469556937991338577270062526003859034143656473206854454908761892168244961856298211027895726595242933437447945774459216820430907408842093493860090148434982995014117628518786171162633370865884048750878485827814455708563806342021788237465631191110200255875322468650946745412325453826407638546816773462014348680410585097162860496282793818092443422568674618467032326579484643713705048695757357124819385069289496246952635362490212870145601115187556441991400742684160714146770567665058846866090026372369268708628662664363214722748772662206073245952349507764791895811901037158602964479991949388437946250677074666986481426418647712511199067443946561448786903016996757632425578362046589367313620126077259804205099429418842412327679010079688380426664825460738667631418494303191334072737488111488134386127664545307562567297073119104567443915441100353087406203689957622518499437667245417080173222628475254220641386119759149365069306645614963596395391962033429719030625579403628792027654931724500941181811124762773832671085463573536297005796858903835155136862073806496601810538305309166649596939817332532250661035698804195810405793616707120564366153502211890190696185015563176682319817329065877296312687167872325326207756260161540273913179952501274660776495405980094776025122969399916295877780903019341361405573120861966183411775913402245914725110417267786531422268432411939951774388727916773240966179136316117132372917071421480747364868936696917112859222786946762881274623388848890968922610859580116245402008206689634166678865406078844129592919082758357785849385632955712783108779071055915801096159831502839803579882690650267601818476071115864008340691784053490917802840676960990876853834117862461697043410910778964451970054462018212783176668822311492828921974685268586834008462570157428917908534436695462609693406917279171513745187966293980306625499643501970680562783993991719306635453893937763030689579087323501502977280004428636236366772734849777446074485386211148575160175129768179138102534150905663052034198415548781941061510530160524136232799686307454694338728245221296002949178887708253054763844892961595718546849283753985494991431655414631499419245167660655924960627966896271962179862822056391358732434727922854464909544320026008708127765515587165232245946170360305165049802040704626961252085660885618980277106936301285782209538623842755925012295801592572109606120155648549176698027410743517600528658313567632329894306350425798031896380890004924032026874007330519577514658787739562475380577006042581254491468750392537687027744523749522796288981803309946917364649510236590857212437337155376278281766545673658269716673652324686394480363896641899842125078926427333980863462992283083893966954345292259116795126552462641447431568821300285553955853251630924736116519738849709309689693164701606051677444167498630048121815944948467286925413850077722354723611621252462677478980529747785076882929076897843324829344330778360234948133828290441766773606110492369592387804477247962695822730222358297843957529002665376040440622108353770618390847042766101415114906566594817541332529267247066514747234924543047235701261923046510634764166738230975012821402597708649077337591194028513122042474018563258249773716994171695516786005802628830801084718961151393617965973682615871645180106414046074920822967484496976804436654260943330474145068195303949280651542398848974151443434205619377447165354771546482137130435076578519390357466679091009453455151680593842826694226196386758077734620527814508371698768984133936248892097972727859770071175499012354005308669700510341386404780981417983227577667486923882689440498772083881700235718488207028475873034224430776652499087346909198215141253505205879103763721299557690376619440402099977972900829684399809191990160574652754202853972935611118694312786405496101191188747994848699044386186591775750895133473818916203506994008212622422935064968374966226468916233415447012636668451704573931829493055419552922597195523102459707968935894791688284061071959291835973927245470378167369464717458191065120594546295806214130161584771355518049224439676920181517619667953451569996957678761613515243336092229292162716079344006981241379653285571409917207739310961426730520871709062530081525826945949486139268605722874015353536249692774687077574376606601793066263254358346981594530464003852413942939446009615392256464968258181005002456937973795274766705300867403713527720892338241257459047654256527033378872541578099108119286808975377788464943154180098350257675692593581129532005001358714949851772374913758961052517817291278091110387886158798580384239624492333618027692312720092491521396540002989319027035676810808852531405228165098630677472927513466057593591498397345764404887190058199890029595130468379658857064260419775196014763993256914649934627959947537789992026459848429973821587305953372276020397636182271260096144381057806183960990425983372058559599038154376424526336952430990420099506322672708757766650604622313118078688787350634497306800456420425329240130735809052682455088976923087574146940445774831322431945744280615775542728337355634103157054041052012821870559748297310650626324707828843444935704083158263053893267456621776775395874115550913822661202451228656546053731580889480079504191502163287641259431107810358462782496308265674661107561837457549726877518592497116226534731584210586684400189582830737680294795575204766004775138633730106506177527499363634448595939844951057766281481637489635058843998346459275249395366167037288690271325395840626750923896931202679363778985598154434119803774102297416427647928731882266760420078130127218771785081988015833961816257005768608588925341949119824883920297621447321323084349103925713893362022057448716979347852675191637636381576067967062406421301299078409120690991399331914804669142861898917602555368646976525269441400498230366124457270090466861140913856057234208995025958684566055961935694566798149727330246511798571523928628908013044357066384844396160473046857065881926744181069891625264542732791923137696256596373550005570026455607673830708816522188170170722425458036333269602562674052863286409252048963958514222135849075449385072113488787717487381118094158841770133605067517129356254569103945679951452138109090037215979938127105426626198351169267650353373160712050241954312105185308560421518617302141190100163608828960949125210294943520828967992216204562691339355299524022023681233677861649477915270265150167255594073395053766872421072476910266942359622511579583494499939999523829288941836106344588138430806135529652579471476035595850753880762107612033834549629817714361603537598712641853043776822880692025185902608634491655303965925453686660189498680420525181107658591749307667621749473832742327206865346662538618763305240273512450724571060396548735317705828607839643910788056606175298452230192053796342077149126920488472990003365787892715993125436940837276288990311757431528178461416244941285883694146368512895450042599370685812000264962071460199906585910483899888354345139896291189905057528564359512867359397598043433863602005669671249107940220288946516867814591592771737358031349385466546967935428678605410267016404998692621214499744054581745326343599622447768666840704328948106054584215587721515627231545403864187521733376652093645363327995814847526627271696337746383905367476976020836759089545554012682371681364480382492324470205185372839563977934308678350556199658967862955849135419077640780287728287990251393082219079860501470698042880375348232653897128424975709628199102738715905096027802312470134529880507878846355184098079977867721500863056941422564362217643594003620719280204442731803881850174675038880633310403522316459106829592330485041818188281816151329214023173012764304734011661939306982700854516798484715731405510817591080469145026403024479171733916473854868351981951862579215741701206255318565178375529645341155846835898985889730750607664251022580938653123642640634207133257104314932560671196577652329971653384889106911973351347295703700873829811870284826725759229342644934265254340423821138728710757010326641597544038511515216810461063894848487076051404167346475727740388394153835955935574208433871509942090632700599506218926821357939426514696915587663267867928133589548604912691304128110218025730375469858216759267600877502323430559036803319523064166422109274177640834793265180322724604561383134269859435186035948554225666234715438460398956738407137399891485200040423626819309694092358865706267039422631006010476510151282773056762660211072131362915440135487162977292319065371837976375490647544654021425045114711112678906067733643259951335130361555765812482718462030545476124411224623240367392380349332584074675881657298501421938457261603353610836660292601447569919023468777301421652401909194317000840805884880499712730005589235911794340904485519586026585776747887383543907151387779249406673784870877711504291953436116864192762849293171546922179214091056947896653943989461736640184314863156745163863400582068169257875391311805876686576779717544992817327018754089400080880113003112372582179971659267181853738372586570971354037803482270797660918422779505360078552050355748625080985651523508078965883229768430523755963390710868061499027771280521885822442742123395481568203146969991677512835890424430707732860289122720740252008093279941004864975505738258225474851001858102336846786939457510481563801304998675712495414154672094391426552519744826259077431730457304823335684891868293130519321486606130097444769919867156889195470070075553421077973570328717427950752497420530784089021954293868051491607071149782125073495209448349067143701250683467001060266141976549623868821972775936669232462712882455425251014587527665081586419353431765521664015244836270373268721120334111070435139640983452136821242280835562353197002760890250721261394771359490944313466357011648307444471809377562602694285694849751671230477950680187197439915510808181672467866120953138023467011317504648211244505650387740929722017529274858204344980190794819798182852243853815490688611111290287144744584443711163059897683298431392924220800957584502083583656325931300305075241955620268670119134839274321620674414676885702052996294250229845012020913621491212834872379969899861526921836630434345545526491807724125507294245649215633566043391512417283207196111700062049263385485679909298497672714492354942840484923069376589924101441600957969106792077053383436643005645313641086483811044263992179768653252362300566630083079546953954214203130726079742788938509474905959400045382059983245523998109923562640748089844019189703698675846093825230380552427930376373529185125621001715482963147071718348739918280211683157557471635189933291843866788937731743501123410416232567278198226038518172732842543878930994598524346870884638681759951782855494692257531547942931313398438096014761038487220270460108596731418909234734435727462218074198534994456508759763639980872996863024820667376193655946730247490938284474827856940351296250203871130224980788833523968548435965588844840332494239957850807526884873316439821642336398634821802060401907749369122724260132702905337950212627339216073724503500235961558945990150076170852015738361101442056504267890137101397447154880983251224031120560604612875703104208837449442019243978166913707629325026853699049910853890308228826433971334349461065228975279481783284793998156859040935849568623523673970976426088889377275729224514879262017408471518445266230667178432614138528039860792063032676952926061165656465599487611202131397093822912315174962169037484294344808877950485986249762087080837970706742713186055602859294840596447848853221125034654586288614885715747497637871838857927165119353675876781645185600029047093557569330788082134292314348148993463057821316684680384902592404571904559963051201496523577720332184289761988231056771473998239798311335244574895253362850868362936942577138641510037537595567591721585361130222528429092506332497104768957352369856102278827533481552036076567957987256990566129986415664053134291057510601082109556285852516120709382906176945958284534909931360981181861753053162260616237045991948898322464090420885378755178678507317184728934431786844926932035958994375344038701716600777169523697187798864427516659690203111923656864785384446895586809288669841672493904230839539465813370256687080331975607377748106987963934109945203442158553241924764809140820747010626816219181873612660120854510531962001402871341611669478917338392973436670031292316373641922354617790818016558542454908021557628783891178915038707860700675047579328706345330139392948228257237875448727035397049624228111515223517100260880047162554776091637782076507768450344761425130694235638979237972887882798453011150978442153399662215883510988479364147457276885750153017510392388580863808123828711232208195337134841554672950080556360968591389435143820404290807229369694532897642281758302493283361511874577800442345538874252472789267520671606207906778107228664660800780621940572037793160031342986710889197153775142985444176262064977425224742258596156729585945950381490528448315782890117503494123679183375913737388013297329731601647015606690357435260654832451934472457516465269243512502036703399966134670411537251994964446970506865122755854265459613266284552953088366496498675168853900157225330024653396177387017899269478878680455361515071417856829154831208414362211564055141615379881204514358815037873912443156288923540244300322405301779558237933211902506013249829470495794068833352218274661303927599659913996284617809435211011759854012230898901595249604848611104740103249212356535790131156844450623222892530648919610140440071785473304132609489507176460022383723009524316053804026162000608755205195999631573270244601108606359863501491608691299309666428259860250417557630694910992723170324822332205265011994273647850237706312871331298708730377628921520247075217622423106436371656216994980958937707383847224516184403686654412985994966613339015806104710638892108204400282718655394743831912715295038175888937622177621380191245878229080501373436845094072108868443757903943473772036349895844049652524149355384261261907642916984667700028422357971490624366934906342679110418211458097951522610932359676900177066612825614768801019853524676533004494156241933662891483296564261115101984425954910405164977427697128040956360028843286474613083611710931814604116476482647261260694987153841863095964998708025909827159821157438351746028564171346916123329062142726861425766794555199525235336072047069757050578932552591132349952627002482374382750820426374859771791713466862411246950152967558478574552186421182668580886262318972974847138176535167109434447357391202839305858885199688138290374167625327263715515735050166898129906505086336329847113899181033403008072835129151638859187526073025675140743968984930345689420401199181606713467299211459797743091740693087235998314651532051457576653506163029285487328633850910559715099776214120036942016481317852147092354217037156412655463206777516997826895617466434580037386598520826340445250813545674016468627569273108504374020441208167734695012894063168364027257088936833468584113999696950696231342055723110506472742468828093160591012951741636319212911965321789257932995135567371031792498563934046828390351036423266534027447336803457296556864127770295775695329124224539252278801640530750833067444296559576010928772228149207478261794456439322207240684006061567558538882775662038304555708831962884442652138536650426663489176282389198221377861712478817927938806662560495766670549405886158884898498329333659732324142852740442155983200493444429416550461271793577790848956032090150713352217993835480014336031488060446658296146317639426277207716813781723549167199478069035451943786928604903230137921707524768927737331753896623393249336158055461993283312706736571658290604588610101252483108844570553399068240328141283340487176388111414783302629085385973722379528131154082522144488698070679428560797685765657642366424474599642974429926286000802029661146221166792092092674893597944932480123694186117278058562198833267579404921282573966583668759767559850945424903312532197880669577130291862275123548400027780870855631683336405948551546060903630529439722335235873243094529878343801941281387939347738684580021866468939502091168000477659273021110764487649874986037515722639251561648431953760102283040610652338533413337662075758188768485561537519460004019394684924866750096675938294930848321136377607431168939444524674114708385424512929463434691780246646803666883249470148347243455747575481494308562563191946323899152203659018224700353726714479537849928762812319233976618633561427596686405457892932322247546246819470192422209019938970372286465473295269881223004945770992202493065227740018463571390763754443435679133497269769804525760934647622023938776363877663723028642747902233526603226377109997100030621240366547053900951184720244525830929017289218856701278768508320194798053279618031524071379015369338793822817603669496511345830857804922920320101115891127806143983594301605834584128621700874820630246225272550621970169790248596034637570948813956941886966880799840266490646653315763252576293711225580258268080218090992905141025465680679837377923757087827140498737564339620298416818161837763184580514085117402441247731422920586260607577291481299627418652333078990985461200369101930103758133717275925244191765443351125654692020484720080852742464611429895341973006889077302996283649938966653599882451764097518327481396052835887671161318831737839785594280266889971197712769307777618588386533539818227743521512813379444459938666589051212258422125576578386673452108425162604429496664663386805878404925112258715234441546496395540035101562318285670289990671408704800946969745177226619130950438531029872776757145283959713094720617570616370292418100578360862768130278549349598927935979463733922980040305413315625495880188841172429908711720097260786252629944845905917783405785982852242070421504733814505736642501798092052038418464245876207193587876168642305788396419794567764621727288267371744215125634588891930307403855704171237410974597326061207097190780797321831917060779665818942728921429122673674933203256230340922970727755686151404488706378109408455197539264201876375608742561081230691264135964305481028412402359775300473067435627031164146800934329462746321552312049062023299026375064930344498969907027634795758392811525385449006780437263292354589934981966051748310320655054461075936931855771191078097365274108386717016621163729594275626485530433455516366862888320308750095126392548011346410436509730136299539192030874727934404604641967339745994820791001705325007011104168091694924168601101837130199388780073021590323273719435680240756035178159529593874927640380245382308089717772043968940905973953178771419553697786399841830986547929531188035962745897501494076022598435074370677639049424090908019083691971596608080579856223407954650664932724751299882403612990414684115891210964570441295885648637270944057522187553065288970721142800783963288103970982010263911694107345668203778155558967606567390610773619354355904856296673239977317842456257591671479643689410116872347346025421241027330330216874086023034023486417949962153697612233367609030212844143139153934267558860587172497981386821903562907690072283623327653554117795952636086701965534383754947911907142762104932271070844130865891005177568001944930901564754019022916765032800037752376126578937040554244831144990236257017506700504781806107950796234553614122006571143874264900486478751492048611805598724434046539405635831426759361993898340772662854275026234021460535438831513935257139932324539635690359133384746436202634280547079218863691884058481648692543926675813425745693290069112314796264058490940374286808569229235378006514720857723252822617878949272943250680263312371862447084455736047574494242856701624229156081618859506628034023725211158042226510975156134007428124273156335940886367642588522582238462585304004172393102470597372554099078784943581862500618691541778018024324479621087247763624642302710594110710915734659921657835863468752405760838736176523522851776442261629443259477582675703199093762009210695306081081937922288407084097940742627362249244409190016472927923817426926174837079326474009968573813165724406915807303687812076041235137524181855418955186592192340709579210224433809762471031754857088129284018413838372382999763594484396754470489178975237958697869704989811398443763820402399636228234544646558205362114528348971173705294733129715859116641685285884265961932455203142948979537387284009087591414898119267383609563076472020156626794274886972698136400949245903194204573709830080900411608275727372393182407929817037338650714880083071367597929900445814808138912439049029589567580244456427717394017619592055306577520300296767619608171762223739089621966028216086639602222659520256359848301774455802774626195041673976864401066608296442923353722120565908535079660825588395211574308706276479732112730260172617713533405065160605741667285282730311238686416065821171929287279322414830049523118926938734229158537766491681552854445936243477785141119641997256186397803703967986121473035160835442075277447920987211002392498874004996180082882994195079422824256777700698791451264830272709550293403040272932781799437059542861217609368232375653336048660297444604123704482175813300648939205757479168837143892887193079149058343444605541824254586406723409056501643664149779619884960351097843269646862900613000673047040011187939820371000660774717342267742147188709849029616874393419491705463437679448716907909942332197583039276760555721624571883213652560983377954740499238501668732611309690970912578054656866657030125163402188976493917190074991790747453196066499362462679929176436099566274538160888895163757248610329233391155012884387425123599945578095326197946030694769944462781229211429262666586617911828671559870446529497503970653950480638709902713605426317552514121445384304449433621948232468951859122882620310552023533415644865646375903989982930508059216836057565502168365309754548582557037164577709167115218233667626259309294053132254276190528892998568774866710674923668611873977567132654461138449499219188670167065532778701151015682708201103169485628566273130327236957807203101186703286842877828842813797282679261559951500118486342261440585989339414768261270953215656884165086221411951913416833161490225115804976525623696978490205042578917037324048808265153284181876787867897044472308188864363432889357368808488784519055662660265865861493700858027177224255165741669719290187316892517710881545804280058163043258911590829736133596338765329535281588067326283476218260722273128623529959712992353735151330277454734268554582589869853315809250956752622862270951730163650152858104676698820449588444774355613196811166603887377219597713071163699847053046588869425689079479405162747551090451829264013082569374190446905021226980356894286192965429551728431044983724621856994292982083202538083759685024149746093529343051995588833567519328984395485638172863481195075248204687494474335306045817265571085660340516157301423196076209744154562986606641599747684141336756514711454800762021686272391313151300661587392493832276720548283918368756838721398847286409783166110039554571128291308186885247599056299831357237369066851088299820312536133477928593101060861851441256213742954931886144292832606462936180673441327295705304988953542169874312487338392940574623447007275840167186208544127421747745552151069955022654011715523115256859378658751341264212830225427766465434271597406245441860030456299746607115763832180273736770232246983674952556560487927586418541925744217612469299851096640529371967231954183449202130925371042627868972040905411713688176113054321680382558284472533239421037841454482601267990168237851017036398697585321364622565946885532373182644128342664621712314090382868324710458909032021881812619223041670958861639055373744808279435301516066145404358679723144008919119980142630157347627566463418032916635782161962051769001577065293668841501614652700267577921671745838622650869868771065028608859950646043235523373905747011240422593952476264781613466258262840925093462990180750449966646707822510968065181969745669174210545192787632217774683229106129471406463874669182259540206953500790218571087729681874521417817919528849646531755861039408448670667183899076700279926092371774101843700165649962046950468910605475948063091646388680841401843063379805359914828113268548638419631871469066966883172500263045413779492156640477531279560315132157894943483425771101501894528079866349574024757040184964568164733423072083256192670127654966155219957762232370316432351217772011232799351918065026762296690456861847253632223354346161007654850812610437728135118230177141505012452569359354223729913935051742589195331317333303830791709115332367985923442412513203394168087324577293664719703089513259313754250469068650234407796206167581720029139099162067708165304719372229585648843355347045350891676229957843954926745910159332915639862268467654542503488581423181300394805539872661775375709424827604785470005371803657662501333489499955952878027186747880773747374326670532958969047879008332411915391410843999448368810253876926735320365371294281442223358219968792509064024268701499344833797983352268327900350185138602583795589382262670604551450081615080491338417025157907434984334311442358702114193276096248927114142809891158774822777581425522140246173633645662956050806346149109488042069104635462727779407138893884962556135358916309402394426401132270172052409350215772893528297404902764492108727959437889259379029781341831360925344785974594325620355429713074991205723897862584460771347200343588570210265738625707976320494665002421891611536598008112476797303635163643578015534816071039761823947624244502779308522213040702805279415492924285134963834536909332250417357869354781730567169802002098798948333653229510136924797874196901057708210364936627890092857853383650089027995963912177984297964235827335106623586363489863678480215284995728678948648267343364457247247019450880899707327663513289048447458728352005681820277094713594385999075846588240906279631584310590468068549113181776122646096557024998149091183185890250735171618338522297271412933369189734200902292133828758943659874978936178384670803371166081870033312619551094634664624196305895712896923350909081120553604954179609310109249685787206305286939549156852518654255510201966610580714294137295819290440403635633027333512665340655454740655003097476229963715855567995365979492850874086854754647200900502878888273459350284406571153497190143993580364458078995461653310458335713953420221585855306304503728518402438390913110016126512248328238167290190971459150780051821040002492810553987190652293466623545295785723139584093514319820378803054774044391952281244441039978620948282591408491081389914077521139243407132551194996048207385319095822455352108248297083943521943575938595840140346573195180629423987479016218303140132781901844653449788231234728882619203783276441899237218327169784339993941276147652953650625068321545912963918280253012804763996674828056869114822706269802174915336213433463517753555322052613608452185148043007275612823392462708037381655982966013380996258707865822050175894525501730064549508696862275657975490849784751558604042719308474744859504682807964523886041666249369539755768923552617234338329692505188284370977373541771162806493660113243396346371450222977084548840492890660837634903462678209668275648605585763802482418269952332481463119309592844741520184241227680705325597265663777370651496020790026813862751294495097637726212412513378912372469316504556768786589732025281521028513842886644924546678581698072424019699238018254508435658290041071568698731427999133649915013338654119150994884522844846299774378861772771822009316402939160554583083653386936627585188875835656472438322129151968001871157117862855727343040525329824301947090403324608056975936865603428187302119986086439672640148496014444621660728953898795806683458875194293623022977625173847682050249985473255742573659610779918717296157064521425125823094775757417962698462206382782219246560400372869402562176963122791229979225011377210680689892656259306201081246750341522925472153602836230774028407328720824469682283179148742391607981993634081289059974167037763253390741628578129284655968631446534362317938529514582674058302415651794050698580254292675230570842599218274607812666472160430000357092064757341674659659650051350149602601704749536161554410465675504242384652235459357399664649657307056356616094908601611181936344139984067204755391507168557342327364544895214248266695044273590438007906139941773165304811627086740662432362986666729457588651780872946531216582592545073985440769669792863884137186301304088831867117450169085219335817771394639754765556093166694678563856763367705168578549246160929805520561703547313983627277449180137934046516331195994614229537156550893209474324215509923382596113508360369715480416884642675225056796150956364803828453112960524309030149560622211933324133961053843139475862592363930870575439272753850392880453577796401191934891023238776732635633720957679151085456893491301480024383977206275487994680124319956368979994058793840867886538407886987702627839551344387108134977782413500547577899052805587057920924272649384462390119517425167574514033234868765443480353875619327589879822681311987900759683797214233497978484611150420015101987448869723584290718208723350955799196513415048398042664611002470140955094074377497815400248723392244723424322056127365719326548096739564635842434958935022205393497549073814540596955581865947140351219435577307457709086870730002052031090302730241632535916051416869140558208372938641704930030802142109806510045881790509095387349018330229738076407398581260275898033103490955434230696414490502348488481389433109787544801302052917638801878433034317114103808198996258285279224289107616551371640418670591128407340857579090477390661577163180980270622388343483656577757302063587316207230558263309145413818691929824442015902548283276327338823480993928662631633941119583938309238061366839039889459350240439022227835649704497469932626109372548049175106439381115551091717485997008753872715580779470263348025510516530444967620780487491526641018819741249640102112850238809182721884289957256220185146626358494601913656784267296959472856829506419821605225594312185668973008426520553270064868374144170866098947705727147550304401468300446244880307428925223438391607732527541512726872807618996276491340631106967819492685044829696932497736780352148950143602564352847536041619264571770150501920843831495947955148905679794442639203880867001207027835375489339151622774280081589735258651823999218271103635495253287349438519044828505267570635151019555795583460833459842281792257032242867890698211454046984412606864811327008144279747102557438079655154417355716791536357136942053445389832808590722529289414126864016060339823260611744061092598402793991457172938724373701982775162767795980625515049561601458406567967347340284303594138330170639656828416567940358230715475941171324767681597186050548609395934312650961950428033661885512398644188325142230413483496314274230906047918319365671331055351098423277086546354880436497454870665124337658297801524593724573711508269166734530005046962855878232524170958789874100075904386342201204280685328693607217460934067475198467765666233660771316087341422318302717864298809647052113015973982518207777775297075361815479980502051663438241028495715507646268436547481180681828959783475093824101599237494354932419117284297074591543187291937067326906566287164591206689719675920566092360470570940709761851940462170818513473642545832150896173365202962241221946931746977961891651412413399877697662041589830668397816183327875659499572423385530501406418712835433283643334148361888128203558907256919368843571000065763418749457727000503847119805084194537026191015152952435898812481906057990412841436101897133937259145268331792612356977613074338994322821273962482076947823933258679985399136297119020675773521028604163997471549005101884932856423856241517370600653107447186953504062253120939098422096869953651423261426040500206131050006812526413738992086469225389497881937470614288016995182839317290360953660607550676533026194455982581672649820109489118521587440580141631303392982908051319032485246928342926800744373163797669934887345330113022238878189725438110738821056227950336265239430227327897756355020375175694059674616383481248776445955619167377382923906022075900769104385924200307898740029383972650223855866200920057059395350762318708147525896005123896888638149789561591584547181872732353927231882034796856486254045573429552578093763869406940586654847096496803402713543838269421317917349355052813730742997115771681665402433062537461507404311439672987794720439245217979112877197971877372422173732004155890583724759581931293412429682866612173054038576466241911281202026932000467799091326381579342277302817406273235848053450277664901781452990474486359413430534481971160780939186509215187583793458288710136457504273274499947927582978375598134085841834029910777903784770419825497454750624641838527240868316213157986553128414216522291681261219802643026959674422218838577216683071854027510716272172261492002774447654523954742199026814277366171977814199382056557457054073614478563062948149192547264088629815104535549195691196757146781145491796731603550039559325032780260076419394988174882261824572754476936423195929886716991200276347454426024621910959561550643996027962811860662220174991221509911736002919938406492748007671360815053186296660492924305988161038483257620186047728681671607939408329020835394177493881119159508488338919798388765326764390942088451497212254975897552333364267549736761189825196086109487140303951591052260121352462233394683783047439195108869242710549924835016158479224604795278636881684001345215477913127192786928966361676093163108094172355368017832412642026607779445254534446138287215541794180914009168120786283414018083522859064721734598161730439236068386662063159521722425899927145955674868307467143977687581645307796290589647966021490567730641238103522834612231501698440538279801483696516317445754782552419634889387305762765796017756978700889068839778066652829798165136903880634485735720474909095091359907645950281498463014707590582848005095961990404840750960288932245922326011779356852033685100373485841779169655379297644275525673072291861253135443052984581486820988659060882302214797937080881299552647321270475146513844153887790354355005877215602362894148584254208839578751661283663556952736813821295607359246342382803253395105625645918268852213259117509692782906675839396976039186103543039833706168446061992809577514163779097079724637510024599972779591873385736996887332550660683047473974151930723415243752190698660072563060994555187569314410831582675673124956508387280662445670802376566433064440333910997229413963438082002705579592514501524901977672718711914406262548718585033444457638292762042146974634864829355168016456454791848497204717435585846067487536370204657331865408929306361279749148201923433486391512070581525594670155298139325216505986942354212652549537826174809196476338332439054647328624818753235817879909563472309645047045182454531430914390898747130209582183716866498110065090528898416721307597057167335957948897962598845789041209418793565315700724266756140643224113819678538263831638135911475021618900636442337830110350016156902561852378031872070303824743675500664444243794401256024848610352209174660517841090419878328886399815536351053928175273448965042687234054227474258640662336960947771896875902348464012577426090673321701513086127617752823048230332384731579238590234644098973284516051430488310321266783796662189132962138382901084222858158023158685438186698963634210675014929020043033092994781275526095465790382437945404206876920053717961740411828907105360708201124146700139054364767110067634740915299364469062639169612184192689405319551053241613970218894486606378235675649923597332842243101024705250802638406505332005662610525207330988867729613880936793176931551631654323591246632654793453121121644470433481497878022033234121158815781290317256034389962421224053807851719077947567252102548744702014210493976456373709130306545267059815419796216918203479308491744911242594569548460664390512623891428969993437371729261392915753637454083346568307580831351414204176720943625024689706872147819772987530482122996683929405424317772116019777127203028237775019209716821433954670581895385332959207180529726558831595383671954174796803198885020850096644108343078608326754392897794826549088405773053929126897945585587892791873689636644801119609286614387635009537936665861228306642911947431088859386221699459491199056474358128774622255704005352867668924946040454977492275636710037009469721245568041361968210900000070981225799029842866290117150891666625943718653023331514270038775064755972705064687993284930426201775271311284056448072114702915080588038689444656413106892566542398368714705158909616003391549972296350436093481607267721955728313785635271484992886796409149335251708465378738062803972477117269350838648201102555132707245781015744236116980799617294160984282138341472331086585157418688724489818679333866684154563674503874449785433477462698675307766001721973614516299561323012463872743017436023201830316937067032750231457742127531707591319370102550692637248430510853224384628326146406666188472504800965796907734541047806700552335969041336920407383830633302028854690364070848773955936827911645793318593686333203835257441262423370723608175945076888982459084080639776269479606261628752190135157196180520830542118606873872294210898105150644748732599054805589914047818450351041757055690655016450324633650239098896804615825848379958347641578957421520920654818332014703315449396181147633327967688350546825240271268455492250600892554232460578587957424418200189714097260028669206346112008995894933931345823290752584921857806666374165993484895582992653965385325341986001617589283244769142350745117609129224802338676712673525749803298195487841004013486438623019306859997725867749368491081682111842541695596869410245202866441841469682716253500659844733374013366587620926097801934630571078801090628684945603298016149809954713583207888261072698847574424176742747673071342222365817494314607832893481681437579092060383601632193853021033543564867120846778076215471160670657730461788831383657134162613814319432549979713897210593377385212896025282104378717932152172454702999869562134651139508986908240427414905570502881098313199018485347615023487739698077013673124331698238172309862322977928279523444398249945614409208711895362833117651238842181557142388425718698525571284937801684447539485036207064015089565892577552203419603517503083734003405703111390466265830136390447350292390897678916634394908470044180911003242668378319744199303771050029533345036153055672162826371383888537353569391958593734171504179276605789383422627300459938116924423116861938193529863526077813474508649820013186120669615719906952097914822814684651427619399040168851702219916812167267582255531207986907892185638272417198588471419426186974730591728870507009230453903638770742207030962139661414498910448398428183733278164912821929872698111165636139162960575874732047005589563488007452254161284991187570587224332238367722149964663629642849448978610513860975423369857564888914675808760440195389796419804220655901284922323246964315161849355767606261673115800129321513701308528094261465059015130367558217178226800177295763307972866317191944973479330839235246326740007356387750043482159827010973436230658390432367219905407284411755360151284448866337042627238125616979295755541634303846505928766856143921333798903896888177887691755200360715558018677368461739871121070929262990694838984589246425270429322527988013306043974777072684053858859904268461645863920489338930767629928595626054801179921581333512410370061938034877871383835842280029461293264644548670736243001467728124383712916446660520009215708543473991456998015663914603162819770429721436622976292096390864720445256158642247909892217344914238872661229032732191115563644681656487265084522491911204788144298536953786494962765873702614994810771310851313679387416456829992900340847540058413976024184581601497690472749110155899153878345060783855272055025405896792407030507013859813492532353466354855348572684389502046115072664779685571005120671738997983809377261409313659815845495909099786137101636664035326454651935742986806233893374022128463211031918931644361572820293881280933051165690939698278191779753871988599440044065206628785253110911650201235200614816909166375394454007926409719753929227642763411986905333253121600064867276031604578707405412228754551113618621736371555801414448959721294257201841462602138897283320409453074732333723887542737049636470777370478629339697142627866001769245962605559805512717139518692648632726421669479451086713123904919541385141166410035816998441773767174621141153264159255051508431215913479672703060022152365186771734232365982113882166331289009003758553713033855069732793833541971540457844093997408143794709086005532107146092655070182729600192560611631164744270874655245314639412589945645202419138965719449997016044032127844972786192826107715833082375557365961400295933434684917840160796800177211397395060067160800524958019020543564617053535558741827068947137404251666513221571149202624472629570358592406905740577292949862939121923512784779567779757563919501824788764200230612254768669421048486078676854181707559596598843110971747664736994421162676978997760690664038144357019723770267197276531795060444335819737110401387680134695411321330038741644871436869031150637991036349655047164026319539344375346825618874458420776811995702545324688165236317236086813592302158147515767012094931314794321806470068152968193470179557356938682004498139413456113824771171529410729289626400880027661890454712966404702041785500413122804269822312948921520585621059283631850298895541872820009508698105264006649750579670764371498463492658654691370793530571727333905122804613475385085376424887974128897235255429186990703840253342393610757126753416422658922557217854475981651619893046665044730722386971658813646098576893952652294454477426595254746774054000091612167550196610084091145097897740408851364941942822024062277905426570187663446803897594144683395189626212312136019117683977120533518132211196582294864482188438604702595035984058378861217435240844040783141050749885745729780445128206636063940347197856687077326917320710139698763985576019876895954035602188612570735242474790957046159156174960501065850196830606044614463801391568813533537605024668180176155179710747221394857732597691568177307111682166297481029403144597036045716902156977178097039980153647933269788255751810077539832603761986612410085941135658299684118948193103393587109528617718365507914879790850324635180886484958336656882554425889171845032952781841545614050065871767611871853538396626350019580371337961147580185433337196591287276078289940022464742358571695513533889879229453048678344615545406913345782183909065082140079593260605656228374382537854196919688677934670739472942356186773983732447346634778542656904115998275872297808228280159104483543969049579094626082680773005704241679006834719116798775482161293472310011629003066412220180101482246587605339177499672206561214297503886570433989415264084977640242109351223245389944082928737410480683353573306775279797818634873981706684832357388343917060834286418455045011300969947537483632131358102602698930214597391414710521011178704832945878198995742260186345434150962028816448301732608218017414118025479905703458175516084867158732841833731378452103431389090949733917077555736870583903841925255688081011305009044492674092670216385567012883981253837772225060616633373403077371388710027866270438731750365951897834462987723196847253680999478973110666796391933934004355284647632718332324566753951788950399644845475279211836412029664552881943250025907103046799372468739737045074025180646879071262614524567926528417566858333898528059050397680947467308828351013181056458625274125802170324124396837989612811202177426314937238315052707415835306764672864538936013426714807388547137767826828362534352759157263479196667400731621606757174782264423560588243699215705548726928875952407120143437415935095832570646720349445157223884793452093688573390037032454149248896119342725559910804450494398814167625480348852000177006243019126945816314730632806525870097845995439420710102762883189788915504506693233106853318517426677571179608373494379258130612107467450054626397721974167784658552374672416389616867479496200615743534160413719267913943143237004423367942930458895361436188324267798575184508168903250095827916688684278224256990994072449872170003507744228539824001217482958986911131429188013770863987992341024203163988012071556856894523160101868603512833094547947882643969658869225147285582923519125023541538173136588324864027720204931479579361583086135870562363452379040214644929777955172126377736005463948058935297066716173594292220072472272632588921736227077234605483633311857961535778106866251144501576534224081220242211994143628776636586862878000407402246743464698376685817194621579086191653929607270547744836992531874985207044862605049004186009157816664334944551026587287491390333643373013751664347674198017418519140579158227662792505219859647174610840084693555936226435867778038006295752789540002481386475240763572748902673918878739260542383192367684174920406572617621577509069396888285290954842222480638143161320902950309684647069413899345716180209239322187887462567249513754236940420677400894689589696113241994625836632685045573048881509708350464754937667842598912793880798173472571250060218573671045663134587478527110906926615354913268209934592441323387686927416878130264869925363725990869171035384449225332860880934214096318178712476723990328683670695576969980660405454975961990701938215611220184669206589377603482167759749269254101067951834350887045752769843892720333506629108805946395457791240131041935623203525908512745938893353543282847572376303911612418041530111665649351632513305057753214428663001203366968844651569099973911392278210005742386817288084630081278985192997118669409306613510368367272300884440765415093983360476501175814786948495164939111244017196857044364038312597194138317914119814911034501518103626266088293836264106907581321660358314669590599146254616646477943434821030414383128064934621053377789693988399014016074922393020216811710764546595248601126586196112502789663211160239574551950742279224340769331496339980541244834973352553153505574627586647205083512467584207755592787518290993974875842761263140526175537580224456105348960525723507986686200462675188468902719462153264757187527174626666036725531845602930880840540865111065748697187574385582770913193018812509692737298412843348979693949269802621056010769980510362134909463446729220980604751693216590678612063003326348305731928477716323398651726695075586034232921905055409943017856370391018940662991927196461732048221285316629393169545423596799942573797142003639724375469684284184064594596005950967826793297368746286039612786243759495800350637381938526100370549130480699539676588897041312964194346855690960756531849396569671061094385272414881908034017406726796898762014543595983053504183997911879705555814335237318634824791051398961551362340398818155262090120858301092286520090506847626853626932515049067985527528363772392009360433063146909980036933028784599144421449257780232980285745943607574552617943042957408730434978967148752289764468521805518641270302044895209669150861231090239147820231952282955513000409531613698035783185287692490718548814001209954449605250085771867945205131434672842813087761199379744317752342878608417062195391419758080501608766174664900735894718185607106221331443547428679945024356856739510269992353374709491387637601540676321580155182595266391336322833344640303464220222356154939096806107320750121998715490674130588265836708803913376492586830006897163879760993537926992594305590224382066210331645367009396366126333900959102484244535360086873877639097925691597602525910633285955160278361147702394957210403207433699463054143951459448451796698527575984914739947739010511092586297344684284022990396917746243899729859000909901417819945719588038176403012817595931243474916171533111721561134663657411443088521637586691370015241386970926166578090614052188462881082039486641181495976452264020948803020106473436516565311899299506816697673642450469092180980366432566277048122948173586868382384058591501798351948709751559618509487595032339231895014886078997025013324201798413875557687229786875061900368345231213358136565520247259727273966164429591758883529532042140436489676183030100992078928576267537161753613117122338690386781824562848184040312775800252891595406518244152704212386123233375213241480255490998386525835168668083629253996792020174108213590649418570996329412704240877884958752015919532765713849870424171252632240503828820313051069645112896718119430967148928122762718694703759047076750942405098222303972832286136968676977843671054113110423463912402444923805068872881709816376524860605918720874467319863091509075342511287624957229775805709212906004742135761252024419854143821909229889341361171412193488637533432045596972245415701806853257618029844700875982418334411989697960519467141550392291921016351926345968196085902957826128250466964422192757005420633945788019662474962235492968804187216973808899467974143547504227542534848192121592086627860967750593618389414447760603880985126157838513299989340395605787908023915365032121380517918151590296024681896737503472944958497767655391045760312725836425683050834114155865604511707988655444794367058026335106295672708806839011401546092741222697996564376511216854375774825562367610502877842283866295511546529065858726383041684343219497932558884657873949493703734080731916470222724203175414118857801763850892739634815599719982888254164126120050225419318658865106523852831790531537955800157565526824471822254665555568614611972520785738055782386555848907881355245282119089347133372480973550364405125575567763245771243120201247439807173021648797975274338243040882092672678442675917694881240710112489995118698772101093377696764586259804072391648602138786503796559081025720992458666080652586902961914219723238945599727707614012300732545299946711090499938799446559883473254886131442435382313397252302440488317088791505319067139542084073368286958401943118953104986310576013653925659944616650704601915052301769719307598666266730597548158587289116290114196623860468130217146504502735759001258873284683571088837930931082663271742448505744803737043057892374633554758987297329431149989845701676218866732861900701507706676617264096226565533019010603758541010309118028645324069393807411838106385218842974204177138777575820603382552044969976883079169311251500450483781676453592195858974008819386391196287910378752490064133637078394038539882052627392587921186624956962158279703969731125636254690488294102322497461482583848704791477636953747208367579947225315221720871236846918799871271648650414717474525287345121651500538623546196576696453025330429426170857599947955950861266923394580411593535682813112798317893222857941512385091198210928157225602149273140528332076301316620082015584692622107118926262129882007314869879421965472583297077853649594285286828168776628984491117758310767279860997816459772192422480274530862237557837733242903342826223385278375758685870986250688828765851762336103248589409369061096080943464863033500103780641811100094693603521473982872903122656463230462153913558824576576548019374448332997786858560585064259300705892686113639380959065915922517375307269428440985535928518118614721427298441877673638241581831607944234452838780458373978374386285270520421199869859450948721400449194660228547735616679956728341325934654142627254242582148354946175213470964732208527142530341739974136345899761302732899033524274735526338200828042588873232104925324930413573115890095105805553252482409024714199357516905934643281854695503099765918940546214294849653760966720139015105285012630451400296498300454902563786478567385503120672881731481841740270090822209547389490644472570842537863092265720661477491204801699423191602422841619388713895341372135476496355190713403605811415552645053284660199806017800050185355927986290761572117384308475650490704785268919103319865541201939518359082328576950814600474971849481180761674199012240569439156232460346750044300343661941367262655852680741624038056890593275667190842852349894798021539459698674461887726991762175447522477645992284699900943698001729602006131343813522519324741770757583444104107041015502650907237903122992864700742069702493428035291498451601408852727053085974627460754033299045034712601966965526755934401988321435394627730828869341236866838348483454979176627973342945208438324936060647423588861669424876218038640278604445217064963927540014503726992979028337098791234507752567391704206259571706962388038976245122696555137300689081301716430582838108752344206668378387351916996130191422156058944906109499571089998037567359845768882366792123231350526608289332691394814142795373263678364872611920649220035222621474402180077163865812557597378144299663637997955969331815222007662535177483963755199387442402460214779617703524975171537439649646181101334012962084447716805557218236851872857118469248404572044286558294070832782775357809133445400734585097484660637693414986192411275620457362166609904156254010940429934061053479101245469668329382689880234222774920697514235515093607145662647160219460375843958215486322349757132152837858873545724360465772885856661818697046514738299829492257144929893059393078376717610020848671763763392667289653647153753483066066975306785013962396106672629443217539658328212256564555398059574922579629581751329600356043788799737709920236122975397060219804884801263755401995780398502560575167905558564032337407763929713600649347591838946014025313543947734039018885147917876551959188595734968293011717122310027716339119728712862290824576068284507522035385468974301864117779384360434858624927997821379676728266319605235937475105501994588936955882116457118382510581320490935924346138468588529918706915708988616391910344225994547955789653249281811044949506954602332484729411088976999267063845323872951196813343295129512656817576961070126003574865362966688267441372057034063004455392050972333583245301189790414774295190881120246781949508408498868128767420038079105647035246353284649068834211580742998269030229243725095365026412663327666220947967677049179668834496475084409259331358408708897961388715476872345517993346932923294964695730852261234003374396237035112071791885449746590715236101763131002483076418945198231683538646939269817255492902815147609736686528207475182668535539593025944076571105273077315377889412476124586870238611776993638170897175901217932208272095874826253679685827964594737453311875492878091297936834005188710230923537339949001489399567091376445164239052659331775019619786378678570082295596955861627619798914319553217842195565465077898828849695301071997976067222497636441094248470965389033506794755271876510290547996725746988263602941312420708685637119923454342336909119382162650772615508878206274852656881887734010138895452521350949928257274287347641966236804262184586859702793925528975964791057573125963182248652463220199079620024781814774326748803957894572864699896141255587042417455245524338105131726556561131537384025959653938221674203995139482481344677767936541624793740034913958672021742748650326244859800946370915954811345500404183744649207755841328796501066760655296007679480573592275000982192486907613017260394416122894623724224213762715297187596990183474178519973935901976228484442614189990732271276816414879359590879692150721983526859645779020292172882576343635390090982653211992902540776156291942653995356686696177800134690222653137744903494171331408305167552594717096964640676605581304236783457525542492908323583399430896482035674464795234049838696223380783587505620415677574352462805961492900150233282456008685164395928123065969193780900042043227850583829333580859838512847080390297861711258788371757279382125676749879172372463630753679565097518834146918007989710567317837363971093545516994420947228866222517056747551612342148847340168825734374284712971593596106242658139732973422659787307805294562697969515690933353380672388645042482602342163460761183188812528755663540880051127207288309023833342585131615762483859870803064856886174299568317144641417158535201474802036713448888755492291874527958636149066812855687667635581825045859604652412418912158904156392159584478140676421953509227325948076655756729423438823971360903617435437110921908592296162537278588337758798153550494506816245297356705967947661319238770979460554959389859779576676926472287382020780309977446443296029550479216406503307563822907452249505858914499062459220588667603010356430988015328793280875146097359463649330765988610544166613728241193684550928666464597063631135081848851310895979455670156848875508868356157473132384868281333418280529414698886578995282216865155778079155963542180577487246661724387169243424044652682694678343202606186617240192935133408563611185711301230132999975118244602928546402050193069673534879402500708539714163778532627495703979407630688122072583041681561699246152872792289225963313197045762899320719823823906349844289050773916247354470587698365816796222743143272594011097243762194758767920060374882561250698008930410999592677622593131394240412476255561859454693047837291035195766847494258061814331317732886806467445367393412516936995312382109239530113451152206192751866345989397328106147448297647397378907851294531707411357027563750223190637683090361956912069785114445918209362908185909935606626892059807517536494612819462302622137191742094277742459840918106951769420106088430477339524529648946221757886651155954675102829203722867360352637463786854108899264769473477922048737668092875074455534120529423503574971645023371610387670459976020585287386126949311810197505126547695875839330968791610105042359432012700434055007539314992668293837961353226084586584510226439816669288271642149265064876039938381226511623270962820743544807580899516168587841047036096779839882050023676922840437287525132617786462842619063879194652821571278052365893504675160393265106764187159998628951850831696108029741616967209936784731136872173501627380693001289115586635113716017751199744491375455106447267316173735021411510761339739777564802242885784763134876987347595622178274586314920119236098798488601354573341947742873210141326385359676509213067937917454150406723972249096966199503390373500033282138285890317836450105694138023225952757029523614454873007011184594933228627309456601674991665133962721432449267517288162274049226510089753341585849614459460406552535278315201588264377675805565107899086938396281923107909502519170576870378187333219126789782426984227209857741658670481788032259908126344938653435624861887390897574868202432819976877762305509033549339072619457364208056250723532982247984414489952408504883621338033130224035390802406253940290455681021190977043666933274015545732253596740132347548838495945965513927771349725869532829642227031205982708719202164530173283882016915589826872030036786550763629647075315976478835427442980640153984247200911685331700057497448176039638090529444858807614291729261828676155750752613981970672674619348826323246907082820532207966627671413366627146592607718734787295139919215896222475822084902867880796476497417311735838370084708699877426802636118493653866527896000482792362665511810961426055899099982408433519958885222735674308203109219380920986194719396964270456422001737071224005713599159455287943950302472422889931754529101922546446852948989292482965626683390563597149101245281097455725413163983179710236990886492525060186662474465971568712584955852504682156710155996112990336040726902994797400288088013551710834383211919585147294727350808481676279777583139375417585929045560726313678101498196389288156498925968164828884258226234992013338625788994973131105452345499182131205921443727612609461734827568674663890790277561516725029896325497322129206653556485266507572823536885257935433359067357333019271119999292736795165380909636985458604650188543014815647211892252769169080096115978953078054122718156278536231269561376698156899542950329861223426539205359811502887970955019697352051657773667679065482253353422434180088839743970238660489576363513083269001891462299110255866387727119281005186262089583665681828259777994448367382482028568022797463025383603467898091244845630161866100524017275621531937064681737540606801809340063274775147312869640101400980244082940566149937467106133209971227823985320165928334688613768146039377929842046667296180865280085550007256046087019912127514839902033810562488583757934571148327464742054891927736006301236563578637837269847436664909932496745661001578826756080850330728525829634511066583399927336524866161384843632503425737588139343375288944409808014575077155384922388401602356086791996531652019959406422960404978277598294337428904729329982783429912155225144082455121159899244702933244137534346382320515892464366094416708267246763064211257719263699876443414504073789316078510216847315149086071325213482385181002248093994467912171897994678139456638394002597743864498422091514491919606369021253458923383114151613391011803943077252660580405325506429756729948903471815985635875473265362351132195617944412460417456699320254668807502935742996673601439556976684027797477955361656599015345050537229805249912025943596024063682982615805570141450592791683383543276453523460290693346237554542948768110220845845055283612101106602597690783854698955647212850784665442621214394614098822983497996857205375010951971944747323741620440524380254255564204421674405912276209712400505602816917061588633043612429737779516907104924293291438905511661157436440117217704418538819247153334080522062097078770756970047628144709226356812602955106352028266558908481727636296889124627081587064483989641077837340081203445558629805604507331537931085534293880099018527808434122082460872363214205013810422991707613526491007237142231681519498949862726815305273799090707722810801151046011642476419663732973297245467680334565991721927752871134861979446628846053304987157947362226639787348994792673254433202570973506972832714674260267740019624432840528860627964114259113987627815104079609538384877832328906684530373524445521167952680798129836424213364724217645030299020029181346495250238349717077411616183115279694348041487693557702665130283919642414641036282498024152678001445926336837241449628888016945762593407474785285080349980856443629797146172278316379501617297504341541168259887142122087092181973928526464833989343339795597451521674051049310029492492974448506431943533108912982177743496430073620632042957213534589516684491075220964915226077819613142224523680922050831381076294761568477228926562562469484116659443156447118825768507896550573181206285357475632249795093080130675878429833144228467232443103933088026011544393649081027740805741189902161179142672032943115039769379625165800812157032086772716829726430853500479922521046862653337405611761675004882513668669030709483586080690886817720479957888600848163050318355000445720786315096361317469533757758844833012148689984057531701911432175415728183204758753834753461317586576126222996125693666138075448480719715077021922553137768971246800421422618228462553636931713689899034264288695947878567930231540428084111792601469131187862725317999948333034524995375505675845645355237818396629300581602526754717789456960713742624879339497476406714851503817158110301683546675215693325062161365160067102055467167361356504313789100242349454111598838306477750704864250656995740995533848764575677981452314119855871999846679124003315408622686068386061522103626273511192245584458920597546575454474497214621538544653663752082949100986723369561145559046470585123533502168290958514481563833017819029699528716956466284675605257478846782008102679799773835789189544838626615125825118106057912369419457699728748277717471465748455562909076600999965309100556195423120553236019190889033771607778848155624363061348484113694083223145354084233395267611924126384177030891640482627755041724027261179129373979236233479675121521878924960117556970206973748740132490854908529858548515058990052460307847058492828355559958143018951343336748505893975209024987625496917276254378408243532540933336676434487944131136248111976394141607178109861711081628547592964565011228934536825544940341093498214681138517066023741988289591828429240117549629711702682519683492148708160517216552684297150861153023587927055352158719193746788020558805564764748045930661432417733836960378228302088366131773167362811503203798433389485595880083225561550335458760387821163399336890085412647910653393906483601925218228767367371899362677682474625820086705369973112957980673754732131301160435240292739881125713042301223956814574634741137225672671911168805817465629061519404717605359583631863256932052773281137064298757225529260764538690231449116605349971111895649505581775009365374973563152806377364384991163718322232146918071022954726508312569977318610548047745563556496960804185741107472990922394326553326723988354388277454849141866638677411270510525853880044700276593184519487674902566764269826011990710557562121383882442544887494465524120832824983010660929096479720092545201654503595279389411122546327278090497770509590178427999235754010901872103223178155011898168146289234219719354494202624103922246546703651277909533758481632940696806375934401217183397961608953486716228551678540341413088412955553515187785680800195399482021890426974560974025886448678543875743905232878077834897446542219899665868749448142748012976973524070082480336085371069720845669563724269059726331744825254006202615085645925908150979086165254186924581584547642169483175129981290385368969711044488789052979820140416664191142951531614006777639387964464651072448548093323765166635659019587202559749309822579766401724226548151977916651551754714325277764930127547593093820408881774015467169098447997335377629573898694974444439765968561655782617758078851773835263031890760276305637985313336285577425422416549674270657807597571397510450150189511335215068413885166707355314574413887449409696911813766411925648442832683442914407101741690403923648172259506728305870655062899934064648378761510747079400444647013953906908410223856571669331113749724895389028713052304420826052384857595029704381857156514642961554497513562247111167709615452599966258385216671422779152842954636939044041688512921452833542480160302615721616840010705823757722433586587018809068442548877531342410106255432574387647373263333908241607983738969814127282684034071078875333307865678170723228149395966140830822560850404739884304311190668725833487975244580484855687597044228229298898140269741339111383469487811890662667707709104503348063559480346244145878722514862892713668197844899698766305833621820702347683873941578645842686225558632034605171629914815504810188219074168836147652957861685943160606974598882496450670829948326535196672792819601090032556116581476740918240561049225778138084338494173246157946860841868088458247962451250142413767043070693117874729485140496424652713620118687825681720135512352232819160400547289578409772218249017176797574507901463126601778589874405894124273116174375479237847380159679836241899391396573880941065778433228917836167177211915042107538258043329810541143835899914590450309625720728746849964504555116277163426604864960886330206007940217896051603472769427294906233394712555020691029927297679999593408795064753226872543153642686409695681332839469579495519439980876914660698840304996601939545681952322690590279049149582571145437054091029342068367377563506898987338004602771026205589637489587101162465245814985303098727194320009274148372348529423138781205968492320826518516090736561244957618312197535321644599827211358056417754174622708028505988623508694961055073573508270740654100626752082072704361086901428054799701265545966217920316017269093076981642630014510820479533295069594828262750282203265847683269616380711564134097242392436181529229302781142319422258888566323968604397530837429805690206990264791698640360123484348844532025690956119109881702781755825324801885346321185662709798479027645758982216858979200201968112101787712591333999512551496658709946303886724706210676161409731314029566069259091041013920410250339845530798816371400544777511777460280066063108525317804617093811332013060397780287623095021564682890086586958369960971650715700947827849204713535810730092919937078829415183911548739387293257101805738107957013110905021180941447104312721659113711150076827368921356907100474995730475811520078709399762072097886214208930384631716654174000476327640621214041903935252286926954056328897259155618549281627033357474251216144012300346048753545656065862426618805586012878187568238875605392045556182062966323914512784369186390752833234800510184578515435736270693423560573244196641310400387815715368893707018109712056580032668058822759575961560846710484663447643490755940680478527450055023841413215688249968002281284364780122466440343882273903670763291954234579182628992365881413192061175412110245030038481921647178295734898615934692579306311162206049982452443110323737965615660370945395997151053626883696219016146016286604232249896682669806949739531524610151286038821527152213790369184647770398315647155085580910680924366310591539391710921120135795404916743464909873291913038439390611775554368932773108754150333722363839646615050776061869186608607061436117047113192745029777592792553131309308724302253746454017342773819343511882866004163281957486179966909189229454453298004592492952300624381767539763443209521770912567721496936803668944332458894586543653411266896858308399576293444304594502160049648906309132615450228387943970164921687632377996495989932403729548424764099193886179051873935070033775973478158854730078260254967930626882299868917044082149524661117407421831985674598367801487755346157705731756986382801246482034525345575518790572045743398039911383070173091229802889573736685478361036663347959757703125713999507051871022207801423908283062066679444910515084731026816359710710705955288185516869110662604433939004708716180457493538370631618267734980755957463359643696123397430388916685727106726747502462152573505193171645259517625410134683501890753233654865710939977402213757271044120704285169982253686605007720969235316702017158239386686837982518067315603496900803289517517075007379268807601716439756945433556570851929606851119121054875372682336134194914098263868622735030523748156729330126997777964036554175497372005554155102810282850097462528442817801584528949021100344147406263618533880566301163999596925770242245203492798150047240121542633217360606675206156962550481544879997336806059675688776147468452326546813863624049596971093558863088155431385239968449483010891400696967960578509278997339264281260860880280293779572802100597277811136535893071331584222615628692897229846679218556153953748978016058556926346170504552518393673194190158736654685567737160585539160607347138250747615043337909839730941552652177849644920596603086211711372034429175176572662465900278429691144904050802623648229238713841158303566804537586627043631829272001663028682312982335519113461013191936928884019572791304231690030203221127507887400847587064840540551399077933418834770549037046189484480386038349688462054322707505370958204253170610374476843142637804965136632922922567942412794290879068116010122187689607617541997446555549862884468719767763281413606179419766291410358584255297687576398980009995502200292540101772568859944170629930461123521620447412564184447325642022181950000493801585633293789862134058263406288481839124256172454502348873839622500255046249844221220900049480422117095465119304476645109419523815762030750161401960960391929975460305356715455339773196052629546558029072714725117303470424963998658917703411568750023103566078007863955970868870812635922698109759141502257712138331156982375202976185014877083986810521293501671344164976877157904919266927713685331146275169048790119580132883286243572776280268999186510929061425037591159935587141017420342532637548841205834738446447163108425587347256737606953937316012316471932020199555424320328856881875668025780025986346652015965415775310107748985677127533786006717457770253767720260619323899384183486359563035010471925618330495211009769676532186705901169603145280239621180943752315247143344130630894498353524024793342663626981962536695698641360536174917841403785668790267069709621990922934775601269147347477234802468086255384931969484323945454120452946002817426408142587243238857361343966186156786593501303484921289487029152079175498642314326464342208448924662300052173234425996116840271262191449671346991555211356390779938362286717400852879554739928012262237991780091339272884825301985754759380634606900129235044424016421360779653004559131513076687865827655696494515159413435347773733391584846689178975745288603856515195003268550234328240750277375983421357887730269008750017263571008314839582932759773778946510587363551889239594355183081967155626723008365341581910817752704618273230830401804310251510895321117983151730948436649282011113109909049095263153932094985298736554269889551117978422899096189862791647028402788019958358773916137029195657743273871617913745112101252550614253548835033794516389957243272637825529582220780071355225290946545766803737217799140367907651572650970655732617022577609389064697832437336724084435161299105009927145363773516831249659134400602099626038521693408132790013466376603531303451498530747140312227604093139943863407764737812694387113921755567083247982559536246619058997520508162878831610094475723839802274646706119651927742890863812581904525454725495856883249339643962239768795984013424732752845223742382448221055046645109610491410507350664664327952635032442174817645496435323807038385200990474451032385049017057800714771985137986207199644937885567253469571596844400545340375383674362690391716415453901916406933967925648748471723211228898278626274742336602154756070997694799696259756692648451796507176116475602549822985529393158828927519105765339814786865410286650254806598044278552879482489431886647024194476417714935291348938465905571577044665565527204740845630035772570558942640569845111491309277091564353086247944581618807526287427618624556510972653668842747737784844980211554110802464148553248891441013099517265767127966399402336452129094455394199740528037835895805482556390343569813074929781900466413649483425216846795513790299318049239207990893129426937993112503278508379874180237562301620036781358876482263386352598268279726671239506630160409239073413259164901907875199583904045198309022912177073264743614533330212316708564341256463341341837068720134627531982056623972155282777983262943567175813725086042031334970216089476651163710324266716488616000174220803168205849024562257566569749774751478809040211282770234422732004231213129678684444546428011590352034529444378768423520097088609844587610280071264168498422538268239988445367656646807863429838639667732876157961201645550657764116501160128463501332386248570113781360803259796863134581194012914524868651322530284972891685286471161791288259131107358213638492495012605245186697451021147200768874904222630276980494788838218058787895748615997632617248281094533782131193538162157769766406231747665360573379051121226655166077022666789356213166967391424495245119676018714121151983059005639241645578412148068127337901731975002864552306243066953529689651766719265391351349489288764638899255827771209378724474498353359574656809359027496004413876855097488418394647541885925361812515022039390380773077026046417094641333316628994092921387037813069631585029697728244838002102558389905155261187030307031472165972433557560066720213820761978167553193520342709557205990980545797107462409000854715242921716992950220436927657791946848284484052272101294154109983153603522075973645041203074659956224443678307656651194932150797685255766580251652968496903711703835759982143409634772087013163309007672765331311007541352883323678318422575683099834743604858870235700357221875207645787799260534615050511189500441088440650506349409654319160632912040366161011258194508301101457749685688377611691450417602719175739567795149539602857804708810905330162228131404537496369984380099325186256298271580873282890837167000703962418667195536405544144391996281541533477903441240696205833312788960167866190427218677611972050969823546165508633624817562102323862813395158446144910175104649081132719865554173513534331826081834573455632631947442911551384134510898710953851750248350095920908926266477999153344538658397514858300110577273443487960264521529916189413844305426220151867139812365531830684344094405814747901533935622461797411941929169068647381833710858104632768089446686843887526117590260240753997624227768380600204732722834341356495068046574182781348884962668263140700004094036103256995415698568949759813006675755385934891098273742180108488302605864556509550416230425697577643027179340995058189009221730498980858696157576243351090663799574232291018796040222635287784306164627503045985079715918338243645754097370087045027033715859486400961556004916347997816458655132302230149573563077947023577356688558142795335385774582469138668570493345889979067178795043166186464033534562474367741344019921907352330657955277067384797962770457709798936476216358342026302127424672365240563666068829701946517644155487383750817200516353031246204331980393500486819919547312539576150174003763047414696271703779471234728107476450835007229952198297022372764172780384735375754747075782374452207261330297650647459375924702278959487426786069680409002915280909314515417771831370342802571987302767206730736008637987351350936393736345271368403576445517728015556933518343278315795342199473487374959011535744376273461148370391387328108381665401224099113719282718661227706295249461681613971081173832380051258966063082630907167475604686008242096649263414864021499752029562469165184062269507524517023107247019191948841274062279687239617717067757699459235374750292762510876569532087950949559956801168905903858636594322531762961601801330981042958919696894408058775779385492795152930830510069235522278015005267224932738683408306943272089100475732321099100548520739855898732059314253991301268802181806764057648144258396576573344761873441262244724236919540520166689181996501602041742091675059868964908266441376289871913707508000121267406022379852546498415157469711698241409820117900040297215617413597030147654711226668176050759980060013640813718541832277441218847719771141343834187063604814676733058087015189841384533570097540340456339941609974485939819691105369945828023879929732073846845136131399073391949596461681427658196768857673765406834597077841700136369578978950522518949450501463955151193870217575740918985380431418441925557378801344916859832786576119912135245104568514830520903469645244095184901995100474574581706233573851357990375644097851468644867134782457993097231129192331357449895922433150494506314893955614514463831307264043837274393472998447349476582926752802546797023685279087786081675073187178629626953978875423349315370428589234599606893127508123117624883201967599507636804560393558962757473445654956483133054534536565910124803398626118063210255279856405306656736578718380877230048166803432368788687902978974711022304877530502923073925131343579675136844753988995919119377787951650569995504396726119566082060460572672944409622940046399461970911843589388385071072072763086187700170496477715882014676339873017927561483141322843700862385163612006398342735429312361552229316592500974350100266233932937338899056707674398275478218485227568405386390874728465185827544223098461737889956764923533810292305652387725333614652537655381162819417174825289244126318358076561354251941570827481968202416815716535728660530551072052408818512826369041764484325316931427356955771889930668170803990142571877631824425985116204758782692688118657114350061316770876933276616383374586341811309845114768842495996683659717231754804430626145050164971070805964639505458082885105612922690528779359270099477220301706564004620701497736147683238455446439384587323914567517016526178297152389257597093099057824691193450636580439524254788390485560209835761993358151164752869590166043862646022626749727715972407590527634209260170634169440254121127100952339551155743061619872439655939334006656968507540573153838067255624432781974360632349605305924615369403072520512705703365326379047626126765566821606773231983667415700275940708172709447180065996770513798048832369167163815699243890747269305094773057010512855015967807289487601554480546824068913548444562813633641137981178251055222554359844438833984778594504747852686109197390944132407276842828320582512464058450536458806822810220919175238623554571241848148709999514603145211786176839797396392235545883708179182153017350703851756225657534884165959726936085260625455135939893601867114159539912688847421045196541507840261477975572940457751663162871022597553243790315392295246093089783806724719432324006585870426314244349106444818907009176060702461653232166688145631455729542756831609583767618500855789158404313177083028711741259329942193669965102858856136870625177955904679380311624479454670765593644929115294772656541661993090931872456420716386538625151629492648662948388784056648436157715301166265746414633259040824421709774680199049463790886503221617404972066368658372663071044311096697517404446075962287901913785292728196708837261428931977344700135755951672698943894708827522489166615836102950184819373597476501587121992323853046619058637706909476451496960340939153075084635349128500039827871328119055250598389343149177369313667877816872502365703476948010018115291517236110668777859648858930487765071788185521420495688755635233881052925586780608555228574790577722725293556822585949232972461000941117183505091800426285785637747566961529859890054504380224075982934876548326403853023123406648440655006757482154667782794631796151648302354966212343060223026643471181117106482904739133847957129435166040451511207819878799279640196885880637274549199313526473019571897326443476213521461112176078959735025571146979605093415703507134646849679933603963940419991108554137252540768070069482512102421349006151554736766439686271559927368465952434744231997838745843265121365473018845442834114473721730779407906503538112677411336637641141167954013563161590840566166805239794552134505928291260929173460678962020373122144901826753490937491753397473218267692939699496228044014768165524395676168556768746146055037627262464288572412500414858586420238556766547378098897359649664752760375084676526050005983844138900282832520061470126170292357920371550178721980599604874928606928416507443439555952133956638862117562965267355883746697046558566782343810680447685619700274733272439120700665652879095960101726325820160164146888131510917478450008601095744931807896588639488427436822771323141439454517414241964710809348980881042937990748280728110810548815920386387695906452403925757528027082723933599182660557282923106573390465918964451028965961533891259760118441485820191369369036662682034416492620669553216956464264229021755360996656723587534560101586089012676750918816949039873379983187618869696718279939083870560554588981502004124291140833172351725978490838217155225938481243757738439303915540814317243451148604775576826412467186776155017307578725074793083695532397533913214119101236203893291904121481540087831851508442742859790774821559611649180198499713280957464924428345670684629004240752445866171784888766139638533695962194418863713554594592764075055901682015840704620526712044999275963046403538348948201672459573208356325675607153287414432798482687072548469281783108832715498191739276574450120606331503800529500332539265657200062635027379202619927821540548140305474754664989753294245546280667896873328250298332114001454130438719873629188135089810144523037645940315175223565219939477899085529778073495155739669283128596259242291086976772197159385378720644233332271040768228680150413317960025478558806600263623197423843949869195252634536684355833675652700482739060356257689146539683660213807485714317484259669225518501770898488321673805666897872018256634424159789483677311619623117590260978800839604473628875928139625948840692897144546544049538521595478814083897307442514766848166759185774231990841017315115054321026707893753491824234284360946505792647452940730580320665408289531967388856291471005882795080609383116409558682255996264915508574582405328774066475048348874795352059435395262242073051225227712054913704303615725730079998668635502080744952274507140686429238044051750387492203104494702014090332112141709602121218325044199631724706534757948173349116581710081427871366313361993825860013347915452780762425795611839411302568768893086649278785599861287150724661086330604128218031405970505317429044194129601711807824167371678064403764972459528049262719722577726971902273724997204739104579614574910186109918777103560484204812535989553118266463167510064481367351661922965040489332300257669398332334405426856086400283567966313260277986887911219125073376928432671667474609031044746384233341270473158376663734068249997341395542970623334632924839108474020469292951830988115519564602949125660824634612901096633246033126924279532617941491249589143325025326934436221970116978743477914613820012106181924437425025568997675038910059549955331358694763813216711906401197250843888919073436697237916892779245134535313774034026213029128147427519122674278970450797669693155050543636739237441264163526535504370063236007974396321696089106614990702910752977603233402002768283327031349667781246826365929236526799699300316750432657103856042060888194886045353922722488874563989572859574100832618314741708281501214448395776713991149826660104820550658362734879774767186109077154673502740755653062570366363979933821867972987759795218050567984675998476118524455911616977226490082873982424459002186393746766145239717924465357652136446048627950423083125737662900846512282923431093241088291815452699803175306084708576788760534132023494324979894121411916578199970831889555448272325128354531618485168346068497318213351780095386625451325154449124600295798750450564262991391744580536463141493594985998129516996181298853038794689609394969998259714837117733564918179815573119219729819387882540823437873637349754157923501914007605045851796016368355129306562579914939973446942184408680457428027209939669372010020786867299254712179648723338840489332834675454513272293927356676592881535802315365695020301924082875615297535813785930570285337009474932589034941358062448744767348849866558644012933428157540378581420546620738723847011343524402274990703021392625415617361151669925751459220704958556751158375996651340130666295860542617598248603548247891919129842857283754104217133674257620179207326011056638671776829465536756898445719991109013166089875821952480480506048743191145127567028059869843888343770545402225121014926465858164556339805636552699183311142493097970580765395002836650782202454533875300253196998771782310094044049586718468929491842452634447298214770276131307078024329386392669314719224401426371354041304438030159065124563038660013186892551921741510260581806701705686259348282164636426091851047442302295705446874165366028029792811237708170329564730392358844749388198102794817691942345823764870144661142366727258952953096293804958768399223202216099283673957538621715910273468140978799437138229899398053804166158527772434460978865032866333544936308785489077251515775670479741391787600332174559956002141757487126575909881870913342412239518269771553232757145109484818767330478086262415663672505381931960040126385257699767297758190237664351650143891871466760176620392441696557434548760874828729428913551747266051800588472174340508488026840768556475648916684041967370948732487767567315648336079401443430985565494859540634016342107138532549335286173516442025497505610679857342342625061752488151902644935904573062689686641074296620293732516471152040287983056179853492152677991651396311190662623364078273102897649784959684772061129181135327095079019746087243258432457932912765862685728295098876094004650032225351348656255079401512910918764148641515783091764168092748536559273126180229619763582805904423430388048831542626703651076423575979717702817837845781927026345409140791380245311834458540015916974022977654681939232503458090256816450057698893208747748817712417131550222250798635695896422847441572768378849658875500256915182535525952094799844805385589319980089497828150431641445220731570532283694515805749053651193846564516593219361953645477513019109947259367199499142893210064706664268383349902927896362696176678800662692424322472035507596747081568668529313447734232359734004734845721122995833421513914003630575882929511029055621630245140189015765753097755496639652168013971090466034103871745215233931355729781422738722198113621792254365814218385334494060607508525372069360628702102621407014433048882029937792030772860325811863654189376429733204672806520061697967654661027817875036307484235190580331542782183734705967591478234964906155852248810816501880528058161583379391513493698817843192193733888855152951101696437756003498142032333249099904514311323197046992671126614180518623881397513606191642606763741658211988758778556314511681364769690907625734311985391171874737210901283023682639143979658824781231070583459197784782463615326749739172104560024449319730822230047032215033007455036691436074348606649890511547413173640765176420602113866135878448850486424622752392515421278744128664780116850731481603283551020151846999300559376531557263937870555402234661551902259824396905218290996254661403025751057655475545317062189647215950975485038226129678686251391830493713637771605060702030840702028389342097636050439280661292251141815168062954102197566340398762539613339184204454998037879661891662590413301489576152057798667822482528450569408590680019609968857457578844004976885485864031582956202824811399025854739361516841325713592026692106610066451817269583654888075860393698888835741830921681462958785378810116249405076032633941610372632819356897695009834809606782895224371603753969933323709580677535793653612658069219950724995324371248676640853689147631661194431155980238719092813331667302671007547601376124067838796085559567149724606504023796591999859667799490741923263884443526430204919720546514057404528873304568927277365243712512139875625030513355643619179505627063423179537320697529491941238754324202723370997090320046999125724637240007997629050578566362091558001919223479512769328224675048627972694064678049200393465046885611312695316694361399217100263522176486914721084153627398505114428324665200284346218292435477783215634596894053823955325032215158898208556998346693746488645029856047899640801576751969632972508547134768673394473683995895514759401844573066602315773371152600416869111504472890009070774299868545830409853693969359474336670049624526217297301733205598872915584312309487643144017201941227238307444269283558678412494444970499385513299886517625800268232626964067470075779448373891211191693734539701086435800956541210812491174812235282268746176713369881489129141763869443550652633227764648692132184777443282880544546560163084661807643923855734211452241502100422233345070374736094722776354049798616853492765422313630968953345292778226261876683515544856771757297330434069310372450850295682302905298346589122698492401463354673274330434168601584819222653905311144897368081235926026591563309013571760312628705566025786140905412176936277441118520837020506961785193479455682263503346155133027715120971341191630453384741633311995228129904244543838003254737951704420960818222680531185160148963761427222866003545021972135540995090077777735902948593735382388706702375006061149106445447493742797032094326961552106653216800011010139679505292415301635264797927193227133046931828287495620777677274330836324060818227633511411187684079672865632209901583950310704936383654672162653327118791115387621339964077920013435142660131441475593207797459286052414802695379086312154152409890121753946838674327242410705934912802787032608416508177347055472817800662280582878863795418578424571082110498280131556604997912176857795737781462536754637138031656660024187023061584439169813777516407764468870382628366654053120345887104736762591335482710588055659125853264687373333900799205480965273208735502237893799354452567208919909107919986651736741188181635122776377638949334230697248436054979871183659454227136001202623533005318926966571281994481886370838155666345076828951566437246194860351957844918340030679301060169828639436191341365135016411019140407994573034962178995534799580266365324180960514933305508006503411017696265478675840664943579942275185474412134795530412103627345075342015851002607874464443286299314562664490827650851534892966945560213034245680657853570811742863169425926798381786814552954516617774190427965429506686392156414004680655378054305944493090185531577586006378728450113521077339476153759085519339679294485874417735883085313211277711819787066247888217907620860969097923469934546809484169840325862890642629832735006774606277114023704415487495809529099537575299855498701219991929975355309342258372556085473458054377770237050012065155909703529475184007037983803876860912657018499346005004585038751776599691805436023059883815567899137332280030934298697106864552179309049848597402943709951932575060611656249576363634967703213866344328063964195878770891392468592654580924860179852561422112390009347737230986037831540644177776210499612235898686973674530897748910940945698796370115974496184515040037596191348230718569007632628741406357608151304743277499411624799288454991462492019621735548575322558166334821631085175126355309716091453240388224739279751094537420007505286777201245204114906610006557964631804581724414817667906967075082563609306959064228777662120494531942810075843722617422190591171858463799550368458664805303335099416244641631467440886715195836463571238553724102566185279798195076244814818644206151419019795514036097491984050839089289767997849781952798025025449926221347140831752500029375710435782915644812033796798644219447800643978907547346066598626564287788248494912760132881046099341310235734465169560282396585669956574732635534973603290954947189228881146793572042459304083683787075687285171631858026467674104595157467345095166750067413284061049607680599603067262601606462256625347543605202416266506354321388822751926256471962888948169063573500349886903607018594426885904466973788144236195688083944301444187636474925289101163846972487776808857245608056645597911429946758241225188550572238628200613368639032361459132718344419931777738388624632575651696823229979472135044146779004136441232482522816663845970092945051292409704260255511129905859126683556788936430996825387880689971818699820712576077490433783175338553992993974417020682474630535739800722061740120594662801087182757243412728582799126354422862093937492397136097292395277382782423216354881398478815453379282732100123488855569560143910281203396347507294192240133183098324221178110528910990518738542611036970111173396636568636111151239969689145236998095916810580662306198964198004128958916862354862950018237550585756518474073779938249426708261700132151760889058980802039130043662911254334016039726871054480819844138502556825190125135160038919438066526879228653603756438083616514959729557062058822712467787717517889274756206292301017763295092620511060433812473091062192981141009528294471339455458942365901509846683509806512830225469414654535890372889671695439118866512011734658751715385126986870204958369790514401448643193616422200229181276009578797665491171096226294828028484074494334144896496485827962284639670595052530849385927331514787260974234038955648581463391304661332199664082620451101424715198802206713058175711566977636651634491804521929643351410366932904097329444812388072326628985692261907314501833010631578666913585279557157099913063169711152698285805300060959978381531803602721271247989078479241379880337959403682214890838600052278456125222641627911619542996160366016167902197007249845932885189225675121431415843590461709083335818157262026419513954144551865406934510225448083489484838264637588371424340112232196099517332603756025902508446239598423934655360212440676297231706362566500941355689327533697986369373470297586315183459121920635832277561806558460864860180435181542864082681238886299770228420375462209484181058418098935607165257797498513485351269633700466527185095929823396147828056444129500816758406922995316182853790701849915724084297631026603909158984583263821208450292406559392225438412144656520152921484817625382641690760299892789900669042139799277732677450435742161822931673519142132655246890667709637716036278604700472094127376379641852476464445192106392913410512803303695129694740792966133619070099545062456361279852436501012551104061116412074514026756633653677064532256631069097485319959561373496179246846287141263136148509907744845335832247005163266358841254848915565958230732900518449299523800464641607565289090070063316455716863114117990100541883315538816363516267316657547842957890926197710033522185422894868661398055694679741889917849930476824463431405979888092033089431081426976257000967518091061926730644330859174612653282391158365230188559322609914480415925282735743641399317108336168357055291477049529412667757911345284791302143333373920071699278287940534249078878252483310170156330978653596583992256163314487327367715392118413297718580572380877213393166765202269689640978818038529365509966159768688854719706643305335897365821553151490972528204699894273702553968079779935206146160319028010526759252487903080199152389396233313171318692054959028182236916216003596555122885100260765947615020221294117137613506744367727890485117809565515995310506936152846446640913852910063760970586440640644552588524692228679168877085094919521670434641123743065169300151592319747177432850323696184150114458632798818937449563906659409668089875203461504211209082909803134922448357691135759912680376059643643925822435022318323424237447673080250701829100018198192867786968528933390888588903528686239785617106493864586980028644121968039112116605991930938878574338920332423655025765635657142556682776712962212985729186793608938287000013188464009870660817366122265115112803401665013681287476595625080896673726259506686210196788370325133952602219526110784845604520181814121263969620136846348604222134473904033983099776699913476940571698206204272817667449102258382249812418720365976400273188976623290284619474626375984371230653919064449176132430627561397799737305430161796565316148596059182051788427049336174802388774339710605792853992296733406415048258872280550039224551803914740578381392234191431823694402664898594364461215074299452944284782189610132764939499962484992855814517506592704745024755948968851494785803899489492837166493888277103583009387226405412754006814231177713047846782794647453235206752863913662851758183225850188388067860547888591243421820262750376980372947102484274519766851758495283106549104609749194655432471010962863072741973189064936814750956323148736434121964625230773170590669720279355547870651900752715058622575411833786382180287401541220895508532225867619592275593338685673252956457643771735510487136247601878882394244718948484619043513664215532161721555873156902295999160877451731071332823206538200748881405882523627354255092659166705760212584001545701724102067463008883539942156175539149821078550560108362770207149370073512568150585519209612588491653963811534563429357578582423450040323922239986230026007740672114194012240864364486956383949049933350346993368479270440827979278408441869460825276970869508263461430494352232803576921505660705244195515113536501069022178719772189037683726896476602695504911112287596266341368460873867275617673940723952420410004976333896908876269244084782980969942966575646139663026911784450308039038240561809901895546370239216959753000672304636897547332462430515202554632303978618510994362695576316644053617739194903096657839946326607230995763432399906844564330954853280777256688118515652923257516874681175712336971210420614796913839196450919978690102098752258419250229767564980019544290192495961665370511390552405953422969963976756043980430108032554827600536684497578375529913126430353833869957817410820136500258727539520555995202272111666194983211355442565684663182157533171147438796695940098973980986767991373459268029799349947482035774754016219804319265232518084023416255800694703973751122275635401585037419016298968789478764140275705140524498941735649911265969210593969506908721170979945746843810101924647519613797026382205075476189916643352002685915392140125777418824182395670216980608798761882118706038894157755843104535733182897362133443225710829903622528577154105263302156334133104582410344418582185868921824596136451582943601673363693468411025034053892498248696729845425500744171418666426840433773414211036303451217837187388379335821026720816533508340634983334626149713026735025576875056901878917202811188167214799627954345943717378031207638797027285518455814777373648995672390606017208167793148550048013179325336794252609157256114631236835128131108366295795081915155034397575410657405935804344116883738507427667484225437899609988282664202341694017321564551364868022785429300704200405529905671086954339066098016972729457337374072981557916416018521042654219430826481773634524963590638905091493468661877585500582316742068147130049588439318955897686070720242911780863139481540236343441114809285040376389498478257338949577033804020282208311541077122900364517497081200202319855296987483551698098420897385599873290474438830913792690655379881996626345524168712065886857155827631938052600789425709060509269569109498174897598386087807967445253048163732344250411045637338597314520115891329041827533562487479389148875447840210579334956969822043613089136011473896700218240947211911075990455840206346749007459627734068568671583420942831397111818649382843507450868473011128730335844236183284138518936095560131057426061421120466796782197739942041551487937283121014947011116612050954844184040515580332627009877621334854605765792040988538931669950028059831814281150435755856042572018069887233336632333387855646219564918299905631119975656025711587747980346978438519829879331456613187631711195145410870003619314870853100900292458895960303975562344155381304428230552132273432577582691800459943555607736184570986946932497196263027056282887971010227628477864717645599519666217127966936112416643676090456081097113426030522659331780665905122392040421159545390402370907882153120674407363732892181488406004995805994514794843866827452829176843696355598648438695948791536530216934954444445951139631914465827682182515122037408862131579390308026594519015762231876743034193977010225026987182238471296165807364148144283622626715963406419774710320073378931966252356425771798899612161984613663508977737679407195451894075309499927443805708060034452397185148931654483393949954524257206339075459441539420958739131757249834130896393991671223088336934794739067798110058243382318516469859772592704481776421792512391654204713207578925901014873824250835866380736774816553053760037477947533311547168958941948471961433508276706560492921434432384069978328943539867783467656814862497957321896857555460172853477059982199822834035007808821267613979978540751784494690041797111175317675681281774105861920687332805636107644073697243679520019078746589203146821889930619139350984835344240926078950265458743563721443954718008665192899244330409847929187976346574566723284628568396290239840126570979946363514756490075261435034612472036541734543655657606521647336239061535604844970457375569202111121170413817050921380543468705078160404906285312450603776027193886772093879651461457518678189673996421093191985939128940999586129674094433539091237606236810254326331834354048965811187812564815231184100789440040079967252108519072694055970469566886175824373441415688570593302996807843697309813813274272910593789129931489621298382335855466878518739479257051047598644459945722184625516151807887406121929335396292051008974225923783346969712146254399288863801442408124336768945752181572394899985116915409777682906284848923907130607342922678051097914056746934304354635510354776600921416991497567296718482610256207555980318823673752003507793735572005445408580414289668444204270992188788908409698783060987653355538371174573283629883754149251299617158276062645682545843016187500062743511846994384373085381787526050747037591596754715431683136527095110320174797515320615239000292703515651021493788297194297207953360990847567388305242655168568302148996997274996413443519927459145577591888460701236476540009063512413093876734192563469946047227083473082990485208735494095561661363698444146723045270347599057264654246570987777287762853445977171703744567185100546875731788171955883590263206056482708268708727381957116617924116890379976705910797799987540276664345331647793597272473104785350742542447669497998033172140798475612386910707407970872252149085711205800785306629318622764192527259544387489581174153881953716769038135668224005095303662844826736627682979949886326635133789218683694995045506057544101340997666738375564241360408270794584288561503768448683485295522364382178224605926754690848778457848938355083955254833066128123160225029224902864150376195616315633048830098313249685749001007238840103522596690067530343653930460444464329063239001908968207182492617081702098752785387665531896394302359907217292107629061348510079208522613625279488680761572598955329213795414505923701826606153552267829258169263803016608956013841093982465927767318834190714849423157047501520956339767367938285833492724574607669084014250288193977128854778707564428166064674108416398206449861724759448541477148429850785052295266410408333842519689000453663266458820303650645984991651685350680658777285512289853877086042558029830679259550485773414782294382228778318530247348604207709232481034710402086984733107803399065043088762351522589770195945582625186834023512004181361706980723114431928061769467826965714375661888679501616050128184815967554043047902684889448489124715817367202694415230081429835342616568725673938255435181218166605188939419475030896058821086245074717937255033265536989891911168458771604870586482083703421896685052462955636232435467718199475939793659892172440395159314443725686744949899496750756221824394675449838796555530791592825255704081281632110257078204969433591200647400888043133330712587865341811518540185233005778531821117443493764669567117387182212764825009772251644505736063368370852836614976926655929588735209321488498738623409394862903446940905259428415778447110712336852599322780180450265458481445046417554018307962176826466073761473967115528060207230261825502055020011025690609306532108863995777050452614588901750673025826893604527185310323007938115012296687397021404420843104492612345982159778539646300652423465085301343824280244002563401885182363783844998011174980206563310145550694511505926459982280437556304003540368258316729965439669500869733494221493925561230874713482223944477995665369215357076739358307044517641808479825499480120673655080780537102168925461578350597370226038288288022119487317645551112883792165866609014801990126828267917732152187482989218838565957101819354995070171349755992933756508544546358595279595397521623029622368467566797973609483430785356451615121390437528754205559276225866411755370593764246652260839422734455122623287511343280319326065922393306856432621934792657599474576947630744895354349060066652477753539504805915697818475961072289655542441005780180876875505450266863867532725626906172036221644129221758443327626495186544889260955083406984284457545960993938537390902623831393496678295629333699819659455343768705347775862937282638987341796434086150333457510124595359264667415495988784760506029622504763967712753153239357632836901182815367146692822166184960192441537921997889865712840796759092779129075668239549945773296614192794919624323054913123219824252584644805575611982317272429485262971840020000752727590099620209970032284889720211018642923444015692382929584908206499525754323643117441409978488534723707314326043579915309519450023671362771490265103138091378523675974797140719335549212899019526302477319222528020477432470568650064182567797210853605370909770720755145206589606813707154604492365758630833601547366448440489267703549290073204358442752278848580135702116410777050980503677364412513038478128709393690809150766014004620611572124278426421948571009568182235222483523336667365764854741498531530097766533048838611085884635684619013731734756033236588414906017704094083188195372102226142989839599777412986226524223255953031452048118364682618012748869413157521410402966735629685649774033934722793448093139324127574064715665905495590693460472702185931004268586127143804714891487348259584188415577242732360414317624723623394945362845659205838738939273998941843809074994302645630581063779221790425723867464818979747745030489721095843812614851720865617972811605464691251799048831931951099226697862699885643453943318820322732110538463957211564963859006526011392185293531976028979010850152276010697943169652540946220537477479390738290218584351395749418683303410736285551541452150021893484995181847392473279062497704658202986862239369245077166681725588246019190116584600162407513665961668702273305637897666726260587251810066087167862091373581417104671400491298548273737268386695951510081034340625135580151398533579114398421514701589074495704901245977628397141315551393282826238530960458846118389330917435178392931179275988648292293234299680491125400080094486116192117963294890156073749499647495169997985651452389288749875058076930180328340832607278509870234484295159342336079412049894366987717260078257276697625457339340763227324479926956515629939826591439221424411486878016354028451994786678858046838193100651859906485040692068690387375786001281297788865506083716277780776993036017723402680394287180073528776668187981224389733173716264793814243598859769698596145949013441837920393130815979503755254900724930767757568077345103786506316920861322559136775518416206877106481070077237385370172307739912622436139460918085371495641615096149575423390654917389856631879191892491332347418669900673432548143997907426538439633750679939078019360298630464557587353850604712395915766608756401940307182265968012688862866374222671449422962561275220517602764060094611191584349125658331246590484501864749588224731201891539844700512873683101548519722531866410908714813010018062742384622342197825142622824543409244540178630326315964671887023052239198905386489599619103226285922591009527982142547154844472972455694450329315127596731965797030494587343615590660408178872522655620934348358064019440491302058713607930805980224962021704056754064646985869546100286340036658485782940641072238756304508440698399694598138435767765972161625331839380391170494928966522474341968224625045766703590251975975592306813901871740425663783888224183182150181351552032739955099718055064242348705472079581459643800715857184072082058076690142863575303809188574048446837130373681129608055154083600393017659811576071229658623803486405947132825818982342564313279875958052492852236473504800018994774570783643992528402439054192569682803058538371392079589961805155491838061129181873345933016862469671251806489489823151482262596503976235366136225399158865113157551083720705407615276632941171418884098362854783257074202876820778109001470869222958145224949407522201339730405951333983673535638476775617095353405817103142928740506069034551899898787482316334417785422749816745948261145119227798334064093565099656928562001201279728465130874893493146957289836916904482726366843261216048755688220757111417909205193064481647329081243996585194012844036397054468708423060560219747744186343318067855593213213401890997817114714665208212069898875092782934438469760702335341026198838144567804978994524865916715460211188296261090610698913336573622005730340550406412769162846056415713030651077085522712360692161062025649838273184580486567974412426816162733592476874942967943037930229029893186994557752391564148865584774142910596945676417938832923402964093089323271019135959837370231339073731268045907177251856914023629049397611794657948304913032395307537433014352125375480478471531737613662207847257068520555325185618292365609280577475092474167509862078189423939336234701644438015510162236962254434084363004393051763988012607872553984131948458668899985536662834975778220205453068077821188963571471007183779088790571765858848260835900054188970918741958240176579451646959652829798748472614387159454920496510306523990451378630079878291965882645116256464046393580519380779863196048253713416557336989511158072252382910047853719430831550486574985086295875668306028323142928430799257019901823135795981756294834204769926778867225480797615214609041218746469946755281337666725758959338543344975619443636812863733774736855159736122033813619793739199721951062725974378055939443405907674401164410582942193488110614655898936403039489226233726210908470480346526437794540751457969655391446944395581874953202527189980761354802125889930219058063135260801815512230199505590148951465083804845854077876569566029427781555026357997253563796135183696748722018019161878792293441973728344886305625385362058949294782568730939977154537464377722299633945358293172845754820120039713922216336425965112758676148049135872530838048429942734519708119299326088449030664796923740938726894741332282577092472148629723420015666525613952598532394699801867289267579567470610732142635990836566634164400694612640337415248952731105777166431718412007806037431527358157749489069730249204412310177296345634468832438880125285860330157202402109990979883860549968129154839419996172758689022729065729542436375925769780887994870820245386881944171954899117932795456009162874801059704397763866671193032868248318554794541142140408956955079537663989828743320771546068257595257050103129372631550213233232199353052078351496544141672005744633600524029608419920214755623067181417323827640225944555123215038450424643268965505105318285876842856378383318797789105135156899741664514036961707496145255518758304419269919432300833791190090820304775059353772524273083431023258873758742791059718185588209838723017493458260675378426319767989377794656359072716780761528604803775697731182271772190724140380569718956698365821352928170136616721396193122880856961831696231477306384699660777592425352601747927041964270765642527038281754707439847075340176442779918840034679438365300200676455320958722161200768003952032191262160529588621279268905828013812489301541040019162642303867624064749603370024939559539491867399872818898302915448995012017612970788375346990182649373200408961255988147209568903659086759949889405321139137298487442682341627034559875059666837318285159500643879930887979573596740986917251883545024960465153621593401036174288018497531146011081680937843446858064539165344131947442869000951500421447444652309984371312809429977669588386710019523740265757559485025774027351887182589801972836980066247681440426147920188477445185356822551807775988478847278598270482495857143973138915898295236111334790667452255651846627389199024581992964501946730260141219769113390345866812322101735701349129040039514572492466566499549079487708428641643338508237083850792574056542466159749069584969122108020482832862983136217264178262189231680793457815852387211689568725500728776133461560361793369110711519932870529089040088164812221062751669567063360844365619334510982346688329891944349758251885228007895046485749791896664287854601305330082406066575372218136197801838140942422486888088667745354856513979232884263725325934681861638725081115745644167314428449563403090059461197019295328477922939564598730690025063000905215525319628525097465860490216948658545790251592954364062089871224329539676857104721873580319665635354386359723133996063558859511796122551710795929540715936054020585076848831181429107014320129686874126535625416605878515508164857687746436400168156107655098103830652007562422258971008509418635230596682128810164354735733961576570770251312646998173388063237465568843999215628023303957885328227120248791239617770738257211813096334354929743144318810395543762486159560753060984894813487613610114523616374957457484370878729580400140375849231707653671148443194209295400227051758758928973764743660058450769038895082605350216771128187299863632429258337620784483215402903738978593877313885016069512183396623420923348198439464663609701752910407985790433881423928398326941104614600590851126869038112985613805175719592045262373243036482049710188071052015446189737002831804711235825134889437710865089909539918457597014933674441001394878358369331027022661609550444947673757171654202166504642061663817333902321952869601149685024518927175636229476471237465218495473655932686792341484150996395333253965466733495590310149046915562643243641088039509244274906060502018573862536847412087424167422934135271895899193228723330405422243408956623529549687633980234396011675240213392094233991003852497593667238708861879983256458555327372265241889708817343360938038673943786206218736949646665687782974830740992899380107299053563678640071823438174910182610476687923256457446347371716618267611410722030175795792337119581008653437157864641940957897002668671927328108088359511690709309994180629517330434649023705182954279858857979126963170443446083503292542743877539767258771984272263065570381826912995674974906689038155685117059288484254622606231258788478058746943694995068717141421366730511332705311672102589503296197715480056102906910586420785709395935302821247598791648316920583952583230341153237572792109393892421551520325127116272732317308044500834160776722378282799490251386410737507575750167413744290275170669788646342943262956358684086581685778034278165289513004556238961558655920907155698390334707888867846075138666113720827404620705246119937017330624663025733847810848441464039691429803585473093348877924851564171428976555429434419062625877450438691559321923645649965748275084873081827543004069605860421339723027546467758108283074872120157063218806924677364089858562474234445154214537598099724758302273280111986031803526684593324485713225155886239033807030957845286381912653111539654901562156127431297153876274098933340343008017555012294178848523335069771571046605205314588304672698031017756797602821304830079311197077066151694427858175839419985811660851699527670844937596808867348202984469460006407161267623373957015779660997569799621420317642796637107069852359731039550955147858118568748628552212643679737664741267180880281864938771912697303077848190957342379762690606562512247528508493676204331789038519275688357597965747141266620493006284036579655960147246986333647354709202551448934517841945483461584191777402757242038228589898589551003621327483329127423313080752361300554290587324878245078544020857258898966818287888805435671013668868143568320303525371246788607074234016870394842762244776795436733143874705438578586759494690514654812137550722689398799399868747254587567012655988302500107071331747637849768559720273893637472858025938678708426842834959362621247111240450962864988666509846600214737577514397216550394311565631666331602482535061844786986756482119863087433680226471285202013642739138422630589297463720806959111259777517705073708380763045130025320422991249071309249416630979618580356237949582226141962845856181719017662206728141202214194537769227633598404626385219128063099978045215161895476927262956984000074090428630016552182419810676457119625417187797850096501860804753390246545635561463919287733873848304865745932484826002125216760084149812616514668385613614249966183199316973644073072846457949165984705989651806417893325586576065370511020178405796064082918450774180862277273398724519777752606153132784584739669962553271510236772953686052462521930388478282130962793595657617650194480052571766388589175472097517143187787884842979472971315218812797026665990758098921375090829351385589954066334393661962894252325382538847305320828260416681451847723494121704135547635335369831808687821415974693572132503200230222252462154245879163967383439165330932332968191249562199351060088537317699340799699533416438594112349941650590934590879035153682460644700733160281372147608020547937733909889460985414598981526855624210934010247228490813169235955275725724682591818128913998870545560732650858681984263512558416114076742370790948537560902137002741781028586378729583396293875219558157504173089167401042839835078878353510937097685067638456324283358819638558207850574529338718959689115653087317263977965417527231493661058361419305095015093659474097066525428909831963178219112427853661171025823254904903239848558207489573509755404375642938974397705497390826071109186573467187615003863870658408321293748031451812437161728489491644495967254023954562671665166752171217563837186538863032608018616047907631779265644838550858018687141052789931582002804323744787587885567562433642353466810303109376552198832900629916754118779633136512375371815001818858252468670051968088341537259901577282948728211228428065017249685846238590341247224764560388171979324533519359043326499538131387651098348625619274395595886424024614829142016122593845757328453374349939404288304372641916536734534502354656722006992377884384382896147787962063177990431547304339590004951706593641058555192729155269536778999027320181013571484092360232813772887741732018862816261272690627447811046612909450200680508239942827018315117799763437528159688562440684409586332360618735856269606729744022568844743338605175604082646833312195445452394946276573127690496678045346497348926307163744407840997942680924984691416997419658585968823399916437877959461571683110368048284850709190847375191834230152467213667868083253376080386972214411922221745076329667493942363699774508308714978963003599541600597343470544176714849545543598816742932212226180638662017289641955292119388866974944466729034230865147267190099124065161002878557094958867987953918586046227366414978194952467891088868181000432531691847152314637962512345983494940738856927974468763113532306353012404293206571837598722986199095943361466238269491470427043189592868290445576078935220881595334705810067917037319726699674089051293739151843034338971594458342750659816927298082359658226754191797759799399783296866157709271683611865743755636254910070224391778988132415298662802674400622851337777253029695110124466691320442192641708117457328693875814235986140736831569142157758528865742494860700364595170086312848594460834314994825362434521536979912910123225203933658667603655258708238736269267163956077412299384016531667854139416465197604343411601353680957367166170074355019680103102427144847035744954586756130517261881963173003834469487659745884676327711492534584534482374425367006122315328725027287031676573221514747921632016471445374237044319393788733701736501749237897122360980546882683735122473749953410019505220251055358118424846987553781359540122570626863110124465394160645267633762885762415629938620426430908257309356582175805303840182486270863782367341003593245038603914892038287041564175303603859219306031231509108731975824586849339514552280668498076000056056742075709583126049328568530421919056788170537185200000710270149901107089739172825711295853667929751998625152424703768851692779100824110683816090938776872807507431000526527035604088958391597197593435717358562471076266778136721251138406340843609997426097218297088673622871715648541070811932351347119310869262054693967992994069606814418054724588869508035200667877025453167541920232249508078033501687685285353272657922725801320424150822270125325185775604365360403489100072218674261667212697529454154601434701055044956858690452917052308060396858360349979216884268136036383842113420370230803870232217873321854228694126375606790087050491906184993104705532939448126225483127912232832274510502416340685788933420564607523190147577500680737164117759200867124352589885258165220302283784241339150544340372603026402265988430399733007190219208038540033066426156476061819711136554198302640102204079389480387779960367038387044588883070069664506836700687281175395087524794501167229430186944517276231233119297867916524668841292514292463054026531133610233000422565697529957455863672624226846137034341452998941601996762596680779190493891516408628163000948871824009164073525751049018270212608245047416231794501318291924077421667384875997367552677666252127997875686307693348674489891764393639098219528177404641873370496448596575541411462401724824909480460149700266147211979733041413624518219831689551450743174162718072693719406453061090768359564458672349164644997640924614297239942223290831006208666401780832553146828919286865133999467214505963425957549698317160937464341267672107945083227256495579290773092081322574169929846290473190396665931367923524431872378850247587077128745305417504539555507269421014806164917971486939183914906944176642355855188018059229552490524557499025258660390431327201105290829643393001920943531658180075616462909933127828493865931365223339736827998478904258184147055808237633774530340492410423988997765044077159323281768123944313695126864829927690977956801235454103189261037203866169183967801088969539442699036146953476352672083665255471073982926659948238575140659469103791909674129146602820434419181562220202036950910246646086085355542548347494794079707772670456227263572922746378144804679150570562504823289198890087685886383591802991212152845737532557280745266690878376507505863758758308406066912019482105974781805410285547985980906720594215666629833153742035052583701195089168293906599429447299556377213294845089617850436577301270015242750950218759218047052320830436488152738096685802309753407467283077930703315778027586084818017304354524758151516159900722181009631311848539271133646967498176964368174107911566060533953879700836063692924470950443021588375705451692633952285057340406991843113248528849172498585259670542680479561189952179578863832744471113086285187106288241976024249870673082011037474782275764830329876910615417689442356411498531136677903146156675493432400973188895005890478249559724428050332960725676182279901751561818677585148356190923383124544853272266552382933071293983127913894925757062960253641511494344735111705300569208120652816658336961326313298921933258060029808049141845842868705615980160027165725581657101854839258003118602270904434190946469929308391929299055783307119142822791692857953406492643454361056860336339350549123976884377435861658145160981782844860685843989563979354748319774744617962735334608209408614854221204126436775383556819709386137459484224361881902928979328761374497725515637842845387879211842654551212773162329050903716312819590970055612400058732271932355383625429589188386302208518026697961509402040039215614190599081991059409447379687319145527774240477385196186766168561214487446692818088896975399136799721869156346671225752281793277824370270595502524467142691990055322529808162360840496043292973300149707309320435983734678327642778503958822419394148918408336255498085184416200596087417253334518269692319540541256671910542276745900715797496301118172279006090927358663319701877422443151287204157578669815784523296783264657518189775052593864840346109940251652168059098222638002146589069237313373980372625346821945643862336595567144119767756307290320733338679706779957395340897703111226380795841952897711361527665528572803354438113581796830297919690977477349523778448912114308584067011976664962838368531838777867206583526309251188600798345978613895388065069255961806635352543379606936640563285141338357092619773507962236111046560043921835425462955845447533403362302521359829777847630894669462644157484264564999661330481006731186470297612637580588044087684410322011519824083811189061375824431742349937536643351166911639885662663213056016839856461927205070543201491236099799709040852211773891716475567658925464763598637917387195229200827689314051969365189657541137132790497962562836223703558063464414605261719553710297808921195078924067743182858319813763485442172577417990786464410327564548810973899044432634315881890857235297068502486758717597192809195374639684198604023354867802229533805099330052476034609265996338958579364565444868784246749794944829863209008546236121841798542447131746482475337583076493817012402302895549245339847786926846425337285457393214314974569516151635812708957113711911649841603673801925503565478698809375378824785004338624313711356961256990436831056688966060480980020622338964660924842038040323712184691899647315126456884862832205914341857929955536064042680731640809315187788191798595500724929737938622871521524765538133111869632972846038347500380785554345858810448722553462410907188243483738627413444780840878086871869376368289435270720726348523092373572940132286851974722289889211018900752427013530034083274624173380092577999759972714141874908476158824044573405355258324936852290094011568722393832558385557587077698448700726929318970592499828035292535384542419417631920842850615891531129536566936719805155369614483071102719201985332218164311200144709288295343508453574710144976291553043517589589877183221518527084295874942900174175328363534635469939275408995036947203628133104400468231003147418240834966439976849669642042534161631399353255412676727918417322293637489669802592590406039671722668444535521156890126168636880935816840325786939067062877458269323791196269130454467519520923599074983546090790407267002231313798257607821376785176327439464842039453408504644201196831492107381278790411986175845708717722535775843569009344174455009759010081449337151357116817272185012855695121843903008317196464539986305858159651196052723111313935112778642877039806486051807752420579387822988008665578908195507609925111664126006358551793488636067584246843894342962492673327946497136622671495577799640451894577545349007413327163769741865716169471812716422772381650435914479339921227839550720706061575502839093316011690247918354876984583030399981239599737067312163109960158728754872227781026360826552438905071655193086697494585115601387564593347381729909547317592923068696691874905378219574979669316116127642329879517638977110167001794118753669578950399091763005655293873074055886192239416503180544534492194311010954778538339389256299752444950516896026466344548698646602395633963606743852754618574246978255715463984852540867964422401222751322517434073730121885685134380147832902566972127127577660884140786917798577104098043980326510008687557950474426390278083508204961897288667632346049421787258384976616400063563053208304409296818358810251200728403324242775836325886429157629043263251939545036845391030300864445403134810836501765456900132934844504748316705812657086363724801259811609185962153586547210484471039419142207969046949169466675930808295963644647234165379917704856795229747687107679721258140263148636627728903768187727847752546866340378742430451918704305091461948297972927467153886435742015787369005719646037124897232425929121788042430398384213346387306209211343642822380304975472267140658785931210474092873355452259920904251151906091780059141183274790239568205697245704827125182190939145725245014743850967461926399501654935035977572270449216758024360690727544789605930356724230202757367044034440361851519670346879319362709898119950702784296259179184824043672780929667573522884470852056360275349711346641266590197558134561151654182950793542381087443169042221979556584255855283933107523295293964785147503384002761887362102647264267029683032896789842520817759663688158157255391525686044034282002505492669600012754526151372784193825164758872370972114990953693626350396034976112853191318791991691682771789275948267576813894075059636791086280906947736674585080199289818751492980304363234733960173709938565921955900097795491189112168956769301092787198163319633900490294505239520428247569045983100140101971372826828157005197968938680062136973756196811149963685430885749899447036087154552155045618415437752323218350449665266901205836277534616149360493209144529506997420630628107255826927844640845390010095690669334657017676476720530061180648470697000185213981472305649643876025815161690048110748142733409492143265974346345500319521477186279681462955515339681350073102300849975186851263649590412284225642055745322848509078498612684951368426968926441150231131917226533364334525219516973572132162935247213487439551135425275325759158569711108476878777739192865895412880094232713714282816842390165706978934730585694941231537502085142639062035090143157173838089362876387576678901874954430583499667521588514335316965319548515436458786035124141682268936739614810788968911065117876319465259449271426575874074980597475264191391389188101276983100488828772846405630892088964543476802708155475187131063049299121964856715303841042979710620435760900170361994005790735817374482918393133598290040312719616782681501063421306077902559721445603500236073350412251919080475996169476917749039957551636758161666150763572486960472081119132233288919204098012130644713943683851589431217937671676163605975952446291933668885456847767939979310034889113336707095885590727485195548149502291048238840228200731187801607353221755993194078409433095019022257211187386685381402852336840553884417950362282917577404443763132929036753659190355519076360339616804900697716367589980125794606132477361647364422957623655919270740730031284596533999848162374331998842767214985326532756205631559614878001594171033701930427708434461672303825308915835892562440479007590585043418383948397507951783949034065782998726637908895125571821299984197013070302400489473416708623619999105244860443107370662709518405412770750542630818376116406502022958578592818988311773779708760069203127617758683820675566594987441954939077619043003686043342001314108053072442792161721350180929280878485711738557402320624114488821953204792795390351907694352508600595238101431814487074989069150719687047791319762370423761772424794673120924074317559369831603308004446248101364558155935759677915461734303864669850875519113414704145436298737537486096796487708302979935042274218080048320979882636218378207664220471451387749664614260439355531391012059570799171936573618391921555262239369290557960117783050098855024517434843437009229150024887049708058691088709384006246459441541860439081366822630334081814059500846255793584556147791121633641746368893147161964356610223396547653821035115748174677293230022417477680512557093769351344438620029506745945685688879438452125341747682405984442262433451499672654525108370881137287046838131274242401485013077845573455535936612470700270347567905901422934979523110497417720535464934012170428815309979070378814181337866504493246743803351088611543535202938610847425673267710582602549264551283476453410758246026618489771921426650320444755715131048963265302332343379007810057731859641873980670376498550041791592625110221196805919648693941489202605842218744996355927732872436299226639111445421375692354516717567370961206790396545555047192396980412050346435677082545988081874774161159593712595402559608887723099344956381785021175215851916774894887835477308181182717821495029086133706198393406979961604397450459682480757831558659460586140522420034733005240914784094006537550321145191660034180709821275116381642542127921066253562093194555892344160257892246447047466119583233733413304656545357677222266830304228079174096863164589920220834314291356606047448508096296283315285823484971567991140155130085614595961002329708961925314150375971429979062480509259019168159159060301693809512206778206141570350365230468493364418864204502883569604739469875134941511187380671560479436075590180552874313802595393901923984605176051931775282857364250688289600147605906714556515565882278840752885613207536667573396643763640288488415609814526391425409262192440233142228497498934306171238495359419981135492599222803998849903241925907839608644491562847186444368899919003703427675377006816453399567617292229168187433878817351571137812737081323952819642223828696932646761344589527054320503310291874856955379645319834251730071052812809974476465466845132612196608099480559612301513971679809304544894889954214462113582494992317529610058062596154375399815575815193275727102593978360893154760084044321498181220512344491339115406973934797281073321534336034936611123398211388238225291518480768009692926449737556216719251717488269762958092337267195555799574344826866965353883602570516999155839593125166784730643567375350174965823462179615537279004624059549754010564110592086156898132203412913737022763126741585467640086502468530854623865753560599157599058982010497606546966530430879495303877531798907817453536723072374171900060810847899090150398043804308154091947397094328552811598728552837442640321932827910385102593548051702654471410490151576067068452291399541772390253360944331173978749968474863446185974951927585810031697894137341132481125213585695403591152459214903280252202831589090566163431267293247313726327660143652192379190236686688013753102143148270579015516085961061310175975576522931233773734831264876346912996471077274999377356340445181632553871962781387031440757290766184582150700251849747210488534260100842631420232851578231230950315540912317222658355214903716242086394990168973604777618469761564664320917947631218727010833394610467871336403887036437406068813453929130986228133414916772888953152977470503520825591154048056659213626520871218416394454986562036088155124169363837607636286034522677602728566102262888837666983051842574375609902325904069487680895484990778557002516177750554846138491657680848260342950692086546744012926858927057421144984450896146560476754193543480708236282135318927994014990185355579754644662339525958677214533633233097454283565406345787460049756491265628286947216628708315317954906715427602914996966220238502209358747105992149943096223552241920939988141851510428934159527968875948509282618997656130720302611671290858280394269614128559304096034508090259696392738707543100965224430528558022316907270911065302886373752663349328080518328160056753975922392268429935599679141064127634928785792482411374260704781281035314615068938952907425708685928074307593188772665001712821014188759549030291896936999362972025723430664763339238911965714333818022396798678999631013653484083301349975871271044488739433029932718714602729746113881059151232352310298136063539369214531003727103476053078656983299677488340457857415888823780001758760807757826857760146106296138933005944422193578018319823584932301967342884520760883034233200806995878546772942822127787374555839084858750467319248135877085574046551475786708806339071320969766804047778424872952283982095951199619790208868332497101728501641075305632877815033630672423334171747708606271687765958589126893441225682842761649667028903687801061932282406807724217914764973580145633896468662574935762210444948745543399944189758569770079562677672051880960634744291861314048553967637271328185658799354621566407041712977954760930239380072976451430387523227362744145557950831094322122386561376386266592867194070888900678983255916967965115017032873422873445846551257398775399387554689492349781361971114629496220405686235763211419733115687870320677289311214073437920833081419745720300983391333448866310453021283656011811333411510651215552320891884201941632868131787085949732425229008489594493155803063982189378665671564240984563090308405923545688442112055671886938358756124183552297081367012185505455191040928921523429545465852393447873792299171745749036301105315485994173272221225344999889789200925027164512414386689408809699458798579717777315521139498460357237749001227259592937264015975487728727609838695394861861107696051803405951707129726669115212167759511300605593828780246773312525865644397422202497903635977001560328961210245133060232667347177028172257286654546479172620250536264056566219694238767078703393026646089712215625820338633048645724035733129301729104410343245534278381800286176559455767936945018289736646839967820536495451022506360175824186113634387860214946173309642514075897732701635084045582911064344986963429453184403122276353734777160652647596327438920143864044061009101854814134477889104477675800976058511068874692554855219184387571521213477112206900352593357405521373700376520577297490595043340165496758354522571283669933406615930489837355842814472899556718496236057521227903746881194973796292459606336508245546080883281308898838265603389072149748820548659378133707923317848819157281137786022909072776053181227364117756173001312591122115721527257068179957558494924439246937469524814408258798934584459713247441394301026271467428941634160877846330362879343745247704718658160440645994332537161729629802185793251354291487321580713077678671149737818286890144018059019137328152932360102503291633468339593466004691269826022518480668405003405837039988601488192840511049608948774835197775528069947349095723932331537547704371417236291278927847539363484416066343573389697257117557861439669739672181041325203516119095516664517663687847775103510003802429312165375710610067622479122087520892491122616554877158072570430724292680300121716730726092223232743855950714739111235905383463830370866757534704941869693928661149874730216003311501477027030328658595755703773198985740566567967121004013370069100280802177841880642227679730104554751291961095364209951272413080187972652581057688256148143783657724278794462879959101582459853487443488353685563659989548699335249772955248901746286732440387394183099291217202301442899694327100475018408921247693241819858311496212747511490455836449238418771696138912423958235320312341148828387485801540048281890186803331029252087322546880227760266697384390829228201613990828614392977952887716859359901306834583011182292224779786624916756583162433403084025812977387286696736615791924486846750720276548829018912217213108954698098139025167634637225161270104679274087271761091220267250552232680406961195549546731214269011716882411935440340770521705267996016146022340936534716796111432183746760747910648067036422913012361235738347037114895574939958153123870824688545742847984746524939308773183516060140260947653052298095643854481856085577915363847684495344038239131316237046918763610531397525764033498089441674699113034147052446366406009809616679615876909369262027514742193393628247246704902523971262265952581902857009619278721465952031060214510862952938284530334906698025356419130547821288341635156159118624064059479571301604119768502061298249854432493380880311713786696086538446554007689344740218181376239457885430675519084877652143500562714491818852159909342256008896863598176262043075099412776065361278296210684457832193619683093439595298825979722078430178119670049020358051722495796515859281922428347574710708831539302007149826687195169899669239197884442792741569062913814296701198263404185461148232411793047703634355424529652457530729738622641128872185059175281941400562899930177446028638293490401750857721711627615667969723775952634691209007143378762901326983526275054826880053037176155294739423211477608336300160639602689396967968285887032718536609675042148252534103928954189200517782070622504813918927696487974102695742506629528588187477495048382169652431631813229480533246568521352469060232904603915746540734391758048346422794821459293022184315906949047833799993293035166601116044714032534305867482905048817855434271595670679889095867071216536584219704869513754792998099948901880491849182890491361963231205412121568760404419623618539811699924260012402207581337371879026816335498595739129648136534766943551227773106601335843222801878795270748881714802234928368238280212840829258280237010220340007789681229615118858640826393220121528236483021059097740340748465211011349342833696972109473641342848662695343831722942198825041933928509907026723248262929347076152767629687357619453983811439167427621966470929669671495558918094439976751626639251419142774015774844523338504123837325538134112910676530226962337728608369319816424354284745409873841787384238563644484038205715256835478988795919845278225860155765787798696174695008297267789518465158073176370567279467290064955764456445409688589901410408987246716139410493164116325525839667331031369395325629808955626737501379113974651015354769819225710808110432565702071068803149508729617507685513164244422852336868773924972872353066013061078454473286631407901921845000732533285837707972429771035728795262337230404567425359726776269122928301954317953303699071525908715827640940846144078852516387281039885123187523031071508287462500477371335263071304109391780212986830756402973410985410179145002415867160258954746716893847021087154450275937549728903731724810753287557458306804395014067704704431063920201435806804267993833955923163096514933061432079529979907278303276397437987964277041379032816191668275274228633520613298791513812860551496396219091525486418998888165618255042645797956779247791835619468129495631870979200330930579983421275991203798994810973471344509472312420372041582875162571232763568579112681064381799166855979987062207660171843202822373388206417215090262991132767585857846451172833930095246627109305053605610186239989431508273465409894045325173169951076672722857880095750831660315208460598317439331768597124830412626249663061603491600153584394108113521291945480044514789164755585097348028545102169628244099069094884721439673725454469702338892175973921315379904188293963759872027782246836693313310659158731059530897099805509299473064426509176605526794553562706834054442675153144629134971442640026580028512090708078632380353567469900122186171438438205685962339278727518274495210597651538497418409647874566802487476667095197791740036982474096099136468203435278720319423193353678547930785789543624372419054619763135267945541441008844649421112987760752700177806641911132699769870639254507783367645126177257578597631741462453489050993911593082619096246117401033142603100317731111756807904484365816564005999327655548431774217624063352485669975955941488049301312084853800520922156966142074076969356601327607475023442949665337334232754855646569876447079852743967434217642536271617858513990603636828873567031956387126696974701322049696274815797985218965685778304860496270084415739168758631795013528729655702121448663617996018585425173359236684824419072534220247740018849499768151994563519308722909667264324359522388792200355030630152387327147598704231823367951940149359045562564128627103237033987767233839526305216291121465956813138013258181973671022775758224854517037690820195333351318710772460073680988699800372241792703303813848964206938519243044832832444293205333668191529061953738380652194463635023711854356560121153087153492804481524263214880047988928806249596477430980576577344241715448397385244162561498829994828425317199892257707186571516096285744286653169064631094593911952201087155920558220098276241313322456089709819699530834829344190427963465646820450518744963876208704200791962818270668487827308671405931561853308539353263309535677784286005637939572024421389674551674561477756086639572203834892411355128177746999144617206478500887588008849000617154691533192656861995126383833708115594111237769795396292830718231889478474362267477705779341643209473850231364161221449204157544942545902933623227100089756632364820710610145511365068846491100054737994018287722406219906687803584370732737368825486084017474398638252423656478385450177261251629254697103417009630061469025134902435662963357024608685068941831581165459335077076331182639985007163222339386669158363863175472655206843377437233058437186884156781802065312324332140644287224296144637726868111362585092166748564438052023575028635232437446996779765011294984813720408184369680604754264278408577134269561349096178821179025736913194067292586572472388618260479340217082975733832700904345394936513627179080667676980209530470536239486440079611651587991261133362490475506304240560926427525487198293707729075613600892203304327969204381556296132063145633891020859467535135395596247678094862033805663086339460542550156541264319083191515197733942091295303425825025323670402380439555195243009983650959402621373815371005262463663540546081602648041798489381088937795560050346361999344126558076034994624569897796955438157372458150805688635970379456149852615314670446457642189547155368046655561098602333234506431902584657142469702131380843983954469766332825512617615213917129377487766232110802791166169219946748447303532428560804140799046382391686155378156876544845834039372731579504685178449948243237748521127177144124511224125515277857762777058344038827518689793279617690695583108361595022834340224158399913960447472368602386518635936929117823014053995843020805239458318185089680097156141373613762174070054966822465859166867938250366372114645212652181130924411748484783741475137356563052155847848942328671313977235120494596902757872905176932472069899176804234013285507547391668623453162464292647708188421938603791867509162709275800307365332250943758603719555285946504044295322764689512650338625071115865413755177624915460759247857054883877558222597590618700448919322045927693391989576015443213249947631591186914001082470929812790925213165646675070514971735471042148241255264046638777086284251007881864432226906182497557461348345401393414467074936297178155797646167923035654209565039398633013735944890692792461619707176425680000145944288841870606749839098263079225461305874114848046185762710489190658122112651634680677850292788944835827955293162408055541217756996232221577299201466395005746131782123375460510724633779875741133367260681871665485650841314280449645257068256944792172265823237931212331990850927467083514769764122988802947358056332507737878687956247091805983281704860540827608672984798196944874115350810822953727901782845354059300291856225882917444266030694792923698297284681672057037850211712498753142273364989994562953674970725335477902025316070951985006681822545592105167792196591719076972084913929611115982929888324248015468509828681729838102987295884315436252793487922024013525224520821155960131884167382239101111506504931299348861110173527895198716993338849580159217637085712501714114111776988033507288355938623107218114204897818836812377296867074825136140630324388332163998907469222446223003104602612631775284253813166509299200570096719933835909362262027604467855715977744472567407165164694419516647329789008978689351577683739003888994071648965361475409608282486440418999892312331311254435784214582478021762530673011474512678212082174082332326543061904062680114391492461777905165013000866828173869318850700273767064773313288750838897532913005800403435100223804720320444179784090238693840503345559132207454948330557817756646088912038390842526866641996127562358301205349420413178393698941472861895117850484869318958776090954682797792461459496552597600431876921523146465903959685293272185005221539930872992077446605508484025009325055581662878670797974515520433061220216245294372508374680723060370739941948618883604112486373758571313269066935904205293988265971692870043995807871132372442660952118548137790990526334369737654332882923360454475986852399036266804681997457212459786620442444633200871063527040113211127728653273180122339830986249637536740925766752140869151854426326235936613734104936203269156171870029373464716127153351663877701846294044944820306439104412190598639220248551108121065348680333051538829382503558953924539209492468633638299181398347498740863491965599067391460575768791603156302536938495795098366274574282730930154498459336835134955996105616767925007095883634442907626775399730700936774954740480572307737061885724957268499981184749214642480389696450983452590046825965116194303798703941722301941371615340111242738981781135860073828233654022229085001725304994771249438044243166685756818906701964619800131265808577760325348663183814149243673021209452347662299902422347084669130172920169472568067345768988789158282451105972469468055039424778878336961006303900524100356082454797036345889762763287673904069092132694693413894251049361389406637311909942421683213782933332074147664373617932427753666837500599789765779491615935309951333119253811816442499058261684647837129240879642651705172876789469764222570995155747511132643690513931235857601960511462110120681282320288017612049215681778096460823093645742608691064353335595696106316139463996569934646573879253090570497177610633294075196034943072047994772499083322155854000903872690812209676596622533029128554456860540907637756532799985327848579743945067178391823514275729503467739349330907878934336728436883254847721544015845500810957961025602361934172053435435315409627864444766865386235786446874253817803170626203719938159340685319845526290914723172243920660917159423051411325551960265702982138109021947790292656999261528514076161958363939318940224564944137610053432443232660418237064190100275463394294740266759849359715742771389012348807403270776831416769956796072490618778839712420094197605911534343900150540319447194176469859740611429702303226570404324387690499897988714140863321988690506680888726602144963635515663949479281843593216986749066201725613226214554859905204637635414005458432429248609078400745086634162156045792492572886038384867699126570967641225550800349321508418944567485815766062437603205356530219999267681221556657775458470336992426567504727992847728702756812642518747383828238799642246717453179018574700071111394715228533818324870203515150221349976848125437246848133221121762537024661099268721978848894297778748807239733647372712109721913347631995785435521522235839625420067711155662801589702620175273374314079916507552287911928452233297562163992058998804885703587900376566460097300356774417115755040985357338160636537184991930411875791234190589233467825062798557036323757607819719447094620181110825388131423441092046820165607531620656090636560721872070092637258378438811172273696278580200392176113236467782021016287421587200203538434841173878790128059576800752919766139794123417406183883582634384838994446413100688288031312870848569021835003817798328293204214361371612890426628532011565522461789107988054726731028933966575840890904871171498027173508054613196083042827255496309981350439572746383105452907099889424237930437094681099543495990858025748438287378802577068767847130180565750474263285582583704391224527496136072723287406475244526439291149471042756080986232509288925614087233065922212499295108024271453009989922658825737076978675566573991582701446440922515437814377129707619619085015071806817218914292977493882222982334804602251541106372948514393120655518854842024212697128184873455171615519364415741780428094769885032433227168215493610751595115070543730131953951483570800635712814695910105964356934602232034872006363402018037941281540720948103634510120231441655399860230185847180310876174507021430263422733553379790384355056074807299922728975493628993381966886659633465080739642569364322440121779879296565630238856380732337308981623756405349865734003583394986020371928456490527547186450817831495705216558906999867445705505627043878060966231361805588149152157141600742065594347915487760730220141988378389370521032602183714834642048737099568220532929769311515781468372799317421010122843024248257557087278164833497099424750378710731375921178944298315184702815065861894659192334940798263548398697159592453587314857284709718184113115213518655612627474733451167054891495016510866567243086190814524106308567616706923498682682331325688874202132966726353041167492756931303250602573110743922710553560038346403844895169548575171892435268800391258436997404999773199915785992175919666458235005211262317311560291799095364283062203844032142402710132045129150618977724316941230866596557834203798642108247457484512532378378046104762518008601434171963061907505614930813681925176946891764065780400393897160557007049546919899691229118665435227393077522818820209240422108246331412632599310062340589129152744609279246368242347080131024783897580482183008741388330044456746604307323092735052956740253990687242029650055217771663954919871102818261654448713675792139249642174869733336260055432835496502101891552568209360958435165975660434007620983594166155301334828707875334751866069961841651602479797356217971170028544674279447260424113541289543786440659754656968403864897466133422675152892533959096526295325567235094753948627912241985203750765733694049709562582601811429829624841820512608615212807783074250394675333598127357724318677070837019153421820419547992038141103888235344472218241532899762465958783541989705884164879358067189624405643089001129811624590329840781581241935907396136824442160075852988469947211224536276476616774464380067813116699974037297164237928258461320615189526948067700040655020664013619831649870907384762403242658817727569065524318699382455759630886278430046839271678611455083790372828355918855751785891655538593330816678586738380464309283123580878483822466546580349073109640925787813547255532833125364980101939525176442093029148514735608329429058105588963210060363047329110247360002631316280956490490460457275228628327902708720383688464680690140787741517831080817731758673700469702625576154765579513312913966122809069623889040977385809346506652434777446682339781386303103680592152821335587208013386315864585842962863933947604157972499324619562076408126713121390281003572829637037857472210814115008732947910502918719668059463083720405429834124026576635704121287802034534839554253386295477878929382499501165766967101822878144909199151658232518084389236611533823979355052249649768126979902787960795358447507337402780639282005155639878412038280991100242804828545800008495461385883312001981029328410253687355946466261817467841089327697153144680306224293719356129730120946314556342694157855360587010858228343908118876853781950604519214186256611919374398553927393155750454049885541352743264360479666061381522146914379963097254614778740050327825338792341678437209761107191321932029447246615731847551133706404690005280834081486128505609862378008549760320359782150768379781251230257677492970115950884511339741184106395709593305488109253214497356493038813224881960656163263373867397343415225670764620300059128113622227808638282228335822031612563381614175988512604717335095557844742133952436657979417841255245474569850026467283540764327571550261457632832140388511713426071747890040643981851768435316838950316209466714758903667949636674787041417204317051823143425214064661339611923627639196850307297602219944663005297578880851183173329825947785217561379876574952543330419141134607027964817941621453722734508928024738249958725585782648786906422974144502563341011504883072620835161505776156096949844957058526170173322756407868472838412941467309651189022648806563053036175538926641620604239994655703742043829386710198399929592830804788905563070944492212533934855016507187775655563778197680776279220304031839476182079401979774152810701911331776913460653605031149130922974499309454937120151193965954894964283363242369335328688685400090337057327195854952697382165617141832468412019695740206661832438752388122033582765698797233911178976308614279780620904761725644257293081732286831742743592924733642283916013620307830029588640144082465273515212401867699486846072170262261312969613415856031675708646818870227138242119630404151055627660447872509285960862881200797799911888731260057222130814567638145549464287124251513274808771569802492288794477286471316882932476514708839339506801365736488580218657221603419220081383948755989991429794374553340134544827652275861928045718449211816350216187571102869135578570034183202521847344723530702946411218420538186472587604131362127495812971855799915317416096919293831436793133338402167017813865447072368827334331319795387283639350626410391036161145348852243561782400341103064848701094235169364741528756293398987823657622214042507540722710245249439294270363076975356667718690363081693037059019114574934535947467522961668349623707174349874025135553739599211765394626106103661571127907718804013964798565034906327289153955798690317610714347089609276640435974565861435408482416322108562009367976047929118423439570811191666154349515700053044600622675535837388147838839020262544571880320931116508392116423281304523021093158997514210498347136356945592580136254951010965583934749405871485970944967539250461604065482289077879592879582272965668760185615191998446923263035442214374289638730912042257744259955983595572935101549008557914228887657304035237695833142265349111501549733415785747728001799609440667085618683507147065639322256315130710141570118972848426097486718430242440699199549617208242861367821776424995971519102206176456518032661512334038447540772475790291587442171959440018974509325602487034490510309609004908147361176214090132867895799382732647651073159359571282326221037082244600083704965284748128445040001455223216349350311988222388395094805576016714722419305988349153805477387625821377715234702505847672511316842102055127504120812940531903364633585271682628167511562538517405399438214250590366982280652871715681948333101861066140574624042511889739358755200661329989305021671590932423471740869359802400472387206399449861443974918071382351376824853329776108868226092384950915346458315264990718893162044309742214534115126381796479926461966656539884033957811721371129703142195065196256800507383694080302423280928371951831608385273084108158204903522874324851947034950350183090021219720992082948579063921954219145072904777462335743192595311579827264249097243792808346799535408119241384073673947527338779684223896835125223198046033155633637819732489790959065292424037904180676634891627404347633215704818520704757338375748687220271314629201320878974651650910918838607127989574095646528715634085405059695622928576925741652860355309554045762689968651901216001856749537568682987166990919494922971449749801461564972642260718384579266046040426123009897249618522675920158603877451589719694159069486188858717821844898012836800793950897813934298398779766168820367383911741708206059574294588936915209122811130752633563873176559848842492012320337259970328387357040947323450258405472561857510309520177431644220575384237961162856483042557876269123004822057258837705404346904117389474465261618240778784624043271613363843390365141356496082195566245013765871679314763541369476617335606462274335092333698305450387714546636686388550941357399921831236187217364837094646399004642596936639449994551926522687100290963042107463529253849791037469580710832191657042471414824614251681691501658598861798137523466095181122134170011893361155277090942746702834890201829298977497468868823144692022864969079307124397225998514748396607784638664302039656678983745880455611510255192924745858299748833637965481852991993280493532742146040119365736039094377998605669997502642579299316855026112435776128771743006554141691666628899408451590535426846190110302759959592296374715937200637613622345446132896061542749910019390328269104923773881600018241620804861005184016531356527193649959217598047218564743750153819840477361002454720498883064710292032097729238312135038215242530832885821181454051300840125958491588216077130662428784957921944626097743230207616629235831843599900642279890181210119375018901026050234272204695198846452310563558861545192934873913856360253934689342309698655680945058033871557790322070329573099197719545180374047873172295028197265068209127085394386979456648220221767937680167602794651526201941862789750749405655183806010190081963903969637089508215245560342501292620387446810027623201094151391764761907700725859547139469767200516248594452305992691936884086103569198639221041259744988519472373242992839282406491761486760080033856951996651250673923098033361069751106585322089585057105226262851098672956709836983050481722820373135068517666287823211710112873336340911054233530409031347738063347366527497923136227914112476892947957501747249526373856350007022173214352926805352878735038775111063088740646585055975778823808417454311714651610146678083661389224097811096576790057658040795985920713452562330293180483262535103765019015954963512599345429712760739941791824304129225703999244934338835193612444977909625407910242536494368981822874823769671491641679844848352389294953791537677559923594848574357169878346754342496805199089611254036260650554200652922979108866330139591959421656390993887416270266527921454271057421019040325188212279885967095859612463023813452751102693795768801072862625763379672623940957962762059924007294184545447050326372935776138598274324305936701561616154772536550562446705493102478824384662403168420535627939010306681487031794955765343592837653162514826390071562386738305623913141604886710613303577988727800989253411505808444789191139247776613684969536779388250641906297615250173997350230472617569052977845479847001418070980344437348096607165043080062285617883610910161357209879238755370462346200779700944694273908701933324458268590781126791955293363575865277407512116868644355698048783959877650137998328742818092801772843507393017742976364266150223424947147502310885441616476952361830977093952006667781758490448356415143357987773031590962592152369090671814364586819104766837802657631423581852115387449778114643275627263330582633388716619606023279075872393804484476462148939256645373607269496000450153821709500961898422121156365763018417439578528334858521780573545945460027212550076914599698543706859624779358991770749325790554296847616014992572944864379079223914164103134204751024699837190918303510863543356666849901968532233365793254341448176599072816648753767561233932945417318467425830601392085247868946498578120427328992395977084333790986100262100326680858333036074353058901804947349583273398216453271103111287923906394340292514202884351635037063583754896590413312650980991702913120612356001048901389713449422311863012765809813671165224896903078576643486938050850057322441153388740667588640362345210976095668502498141883706764045263751816948525155924551185084325085364161813577338999095864593075312000524499839291107808945313555416509595204427612509661678889754308321623174974733082664679298205762678407846107984775181182731517225819629168155668881452667468698590732872268516448453362382543913430809230252298811340306310798211864179576072003011036266112748364057881632535647376301042709620258914783726764986045081919888360695923702199484053887807249337863026764168912965118260315827358636618605423334057922314570327099386684013533264874070045226843905256977123770817022651096082948696737260730798474583712893617457253723846293000471727399389467878977351450670464292508611229851422547763783431210660454696279436083462867814921371497916839017639559317472366159009675351957902207328700184280180142599113343720941968160921287332213710823620403757532963464390277631889537466620139572038743139521844545602378244264669928888529436687890135877972378849430339644901785113876851859413596796401760668604317158319334641862345780412370614754889591475971329109609324134575661624860760329843219269968552365289612201650881840028989120784720779912532798195971240372741121122866521941169028101998021233687072651418184210187722631650178622074602009239362741228428038349395726543591106975705308843119884778383077747915219191750066318748988551791238065810338656389555187250142293930261807632306862976075638462546906469323023982016053050149710495492874557841247460849375936418114177936670283893686670166426504837450987950122553556903770222420563935663384506436486701321899868739526701442087738740377283533728908427874648169614455822551499282331991947780622053433809159224961976419983107712276808839809712767804754789793272624647134908000118147607994212541286421551499416519978006025414058152016300993629412408505548719351543286606220251745244137468658867226439795057859174601230700019519188195868869312614219248875201095439437693503372782542481017074748847330486339228606078679926906044577345473013057577572657115478807358929631792733794419357320080420517249534728615698789701232718712056074213692228484367116186698084537428381516912324442606221850139221442034281025574325622838103976673345054901146359194498940449636755341550892033661301685391475124511282442208562415122205588300322446280701418230336507875044758203381743607885245429214560149933457297707422583340275634906418923923319383117131452981998436993551036793440964610094649859164367631272154928660467264572981912804017575888984647050843827590173789902489685830604571906268157075513951047794765904200993569450569622780990544166044205677441519573876540007336889504241388294781290727084425799461810479345083350402476544723507953210527078715702466232659526007195783730615382398707439691242765274611586271301409226797493442972171761731867482193129737613626568416237012942446687112290124479135821665310634773467900252095604325923843763681009776960110777676228744090858053101526479662569117468151137229614698646881117708753669924748672266532345778741532490578823402588854589526585143519108646331728549242259552383846724064953413255459778264540284326970833435422597865675059690586029947898147745144290909671215832172909358817036357525541780782781598753303319081794140279504500252889585137993337932425065668101632046587755426464353775668008281090226082826706329426582350414943682828822724581772196736109411750872565853747032883289563201528221942225641854296039061436307881260994599637743580460242887987670952540232828871163291379734575513949370378189020473663789789046781641850545906531016869549081684576584372452150239559295745575582874399857222558949663986966420944270273328452005927914052020771952280396781708771295787032618024810720178396514861130368444136880963655614409198193774906768253443194029435943718677342528636613577163015877182200599162108239070184765074980062700128134171131151991150011552353282855127504741901127739173828122684289387708920863642165078942134452961855360880681535067392595834536815979535572071512390590200693504938382958628949887728708340952725598718625655710213190511766808399059905749803933769011279573659279372559347870387766267144706024087610928656982704411127362998979630707667072375461231784745491032230015132785120835119675753612202882784602064601185849562014564144911731663515402164909162386310463124710395260761386848011478049932716063385180677786661752052954207292599910047068149991783948302538444843161302951545724578770341429120409925101911935470567362244655695645427621830397763901823306935607767896418121448651510016614812688713175242673359503847662000647487381318057560227979934000812150435698872687917155863192001634966556662656394926852711670504861780381339389210012155157049024000882370687193418779552023273707484689330459624755087061306957693015201455969647602893081983761059451560820246128361725144275887044563912407073924994749519441172128107291916222426594305880229403967401893105908513224152406894917812566019131726729769087583317098435161070595380832654335337845207541090921495694366127167440969157287565083391455597276286165782757590629187070546890619847176035624199208647412911254092296424355210372534756738528028492843488777207226943734786698843084099584355474874356828861422270046592711621017680658681534584177937444475794410948407182130521066997137435530944307015976259367441660908506877145267735512889443684322914925522830825103046010287648467332674210936747733072448730443619574936808701120603790313648821949881021080514940100238000093796018485740205885541108506288651142156473364669896740547060257525764994245830626265807432965611729288612350940583248360682193299222333641787546670625122090759531777089572004079565083909938277629183433184769791991060387568385558164696788133426275337887970159249302711117699968289973230874058296456312590459266382775621196220226880024510969419461775108432184323815597611318781394538897320961371583655779351900750807642399811194406211771692001299959056494894403043905301257745243271146875146701017765420980706924706553742523139009008088802258318540722300109569396117421782689257275858259900214149182747990100042848779501525532397272219504506514070132319977131502980918086281815050126752808142673399358326841231253286593677274791030043242907258886134996362157225228774119522734876329637556310349552347304412824647943874497463455949662983127190752530025593226849917305910162750219029586907073161567450827203786118802410528433531660183817864599426763923406465652055164061140862490336117526720547133757850454149877918718668554209075494031308747382554942231206376201027622772190382736656810278979893129056410852952170406393395245769230999467464562793362846133560990133041343933295875124040708040049194192293960855520278698803978151091527430014984975654494925309509696947713988519937960585488852667425168793555759902547772700382739868911307648690479112276724218021680509026245403105736580191276357292555930630851016717750724227945754814160510989407418396129334370560472713025833874463304298498404745674290832016614423118618215184907591418471801370471523128846737310243978095709633654740425207339657015562855695439268792274845116287551512927236601887279298759665869444140242534211251624117095049938129268225533980430671703848564061130759395139612825139833654228663690362885257225571893530818267485628080480464450121584792695511412452078492706287120113794045564865610181329738848049655719702766010721211880450153474492008902630851265301298591449147202992139193461808058943459575791193228413274485686816208067080323489758826935716919635774724908388361940105483173662373644440141347712473802401253134532508773980378312594381445631959887934159588299326143630692872227262862526279846781280832271289397354899963971778654260879284883716836374339295927187315156574039460064119942836228571298127726139476376062004968509075737913344301149191921051455690457461145528448737835799072153413294073264019928415269555005650742625038302262816694174483919908198567095831529813169194698922597484676887057544375809226283786857762447724517517733209935767646663307277695162431680702319329729021387683852459628628079979910291953712937247909680121101687720157416639725892904235047129604352545076976687267382885914971747031761601811780814530513213572312387026677171622582210983544660767986135851736892574364305981742968085206403638069220356965611305845414372048840576332115767261586342213533730488122485078747689397182014823491838034980946390394335781199720722591300871780916337064593346106923595403491781554661225302680406496374410501602032171744912856430955648898848772230839769352870616474956247247129007774781109457913633160539428587846838845327674773802417639969660951093827866431257201454872081798851158275647241140266276469387904844705932581122363524951420046510905486764130378493056875136837616818494012493821627729797348193461555380971658918171195472454279608625280338076466875398102872534435008796170915247774632223015470542834140460201190312420143363522112749692496130415588097381916991462323415180263854082843204344546113041707665791183737951618529854750184640417352499435988710015780759306039141669132930660993532667628936408955171198302612464752385320674556583867325906610639275456506919715680527968989850447803842674631137402796467236170000162126919134519399412872952498814130954562365216050272937977152376589817517302879751780022893388195136925849177440938613603116868370070940491248069688753624675140774534415037011773620505806558478167604266483893575758048336253463223215597559420902004593812880236742764668737865573686193725640304624238334891427321609205923605591802870851556649021610198235607070578644664143901383234815471745501502581811565303634794579802319277189655871560625639280352832768912750573821675959875892897836348149137811037364110796371004048043040053280670564413481288029866019592289822658315618863398133131433123783310502651574040067240491732671989743688750351549410799602239594115091879891241673245758757254797145083352193718428388566904963456338706823016124934310035263270559364134153893054229010509159186233219605575209275739151986901708202966341750178438460373341628080698209439488190386328579796977865599698348420304095882840903417769494939193518481108119877762492836482469056141258118087945647549874447326685064080409760954605099267804915589766441191259921429830596508262817163487182322259406615192740414941873946576197749655537218990715059988370183068184427741906863925865838110243833640149532780977269951202817953651719568473953369707931598500230683954812641381022359651204031129921153809495501775354646105295773328552720567072423183348855359606834067616675560250182704873200031507010687849274009587302979406429245087489022935381248340922221816343069077135145775103541465731666516527154128880134054952958923580874075412947241328304809919331161575189438167606422755782448910094618912285015690838410736984659635736786621532978555976427365672192877507895739427422906189102403845111473437603569776412104617703505159126742916756947496407883454503954894293206265676622664628078569151451620897073384892601287773392379378507067145686711038710109461730061916735176381703623343481672963174309922891535042566744212601442819178928526785281200986370361271952323336580576708538269909983016247062058515291388591613208116243442953825931557681449792757716539515976866648994644411032182781870892199982656140505938265345509495380546109042690243816176811157066306868276996994540570528992902961980143057374434695868957752398407715977528019824425851415245535585049273330685072952941290774135127579631641832188654709643030380661661962067200733257089304414182904356092198620860846586757012523704820973510858019763717848500355546475800505425820969101821882760971260329458998507395459066055366884383523770965995206584904825636910226434148401089966679287813173489785437304805412801233866353607213842459719712933519090720946602689677616478958191770990614303228605559159781521473904380484466828495451188028869372861580795987957554641318803985967432139922388972073295229438625862813139333779445602041348317230694933619456485104125376305175568187637511056410913093899002908587918555620334728206702528464911732763001851864479632158722273319961120013131797266176206353607513516682658555650319388754787653805972173533860432072965236633788044349000592803202363879275872703978501279892396614979911615442554189608698371518924127531489350434270704313057976595806631347447282645482058966172804091194602039723823509987160464673326795961911640155357915873153622862392761242002458883094165508200432726740332995821489897491240884187273280569733874834893780778190217451821938884297950779729329164124812598561530224986215649633931644037511505788730936759527612054162885698393169518159986099048714200109659798703645328540033798908619461760518349735932394520516672869534865639985759648170136592359798808738152590286440459297493448268516110108295145162977573863975312192449638505228900589257306925183724979714070746525883390486292687362869174794880698273250054430308266306967405497259141926726807643276817710176677348551721558806154109704029020655087760827556363000097835810154344704295998277712022212728391221552537823977120831081144532169702613744206987026098289867377379414590179824330032129530001723672611965198296796279699352215186950128479704088545798467315883617538480862689840584009812393089924529203684467253694509288545191464019412922520359963733312192749399059394442856169552327646181748000504366641095870529392192914445881253428173733249485512852879797147554246054453228196550351510453399568002368392090895125296351667529612221562888845684868322026550105542765643113974453081143784745649873885841479240069845061360297095059670947243556490470767015449649321039978980531393412340312242575479798662859735234212147648498519145214697655227908063666565987204952990622128600143155771888174411609038607278025776182173433968958559566770309309174390881285111609342604775131066589683472048885079427209575159457039634632117100326793331285929770565928313337225478079720694023274124410896107363230495480219999566503760588446049070259885346217230032362102265820803059214832567906102957534671031062555127914484318821084587685539489635912778972612867490568290624617933653485140414115317220948589081069763491874629946806132283381918690328065419546377977040735152972681929544210064678108503669355931591754928252430820468095927199853714446462424825757954022484466231714952929519341312614254811282598943529649943162366902093591436020363968732221612344735344181464430524880547050297951163504554889168447724237621596871609685883957590837365151889715782962947031603517066909577645203160578824134481845166494771880321943709060953195032386046891060371654096067053221362490986517737202415308985395559361677696345414760066313487079111686604362183763347512830829110834624757000070299749143387642872987759653142031284354114346017518920727164795446623364722601878472373926889913451750877942053732756204498746972294012415907259818029241375149859441245715159548050355993152141966803689435167911846735350020019410034280612974761568887401752194255296867810981433159680262098757861029689330137754254658567303877371941779599856642660569707419980398325629432883622356925923057018967776953984336142514393943135381369465198050282338219899134364887134801096085192870198269023107128335200935423285311591048856318570016286874469321037571165111365399645453388707770464427640000551897372986910741325891672998877175271413590474747119654469363690289104823915152200430115350024228957299717424931137513734571766178586693483456577196002757497485002577702195498875480384552229766180075915947002183262340935000511278878584706793236566903405844060921205159062783953912044527477359178292445128024866718508193094861689688291317671775181157334090098570180959030517872012126520009642700151285053335782655841931670717871260941339017404049876258155001116686291477392922460333750188813800726827429556326032050584035553048422050085343504079021317978826340006374908908091528055273093041232762975649077493699121797542186915150597753479566253257522333583526069399387604246023802936630073759704747314660889934469304690796244651370096035275781338291738568863115390416401526578719220800456381900481345752426115553047485833911005594228049069882090241228649767453180780521494443368955435930392139429584750303209203149595242191333804489050529059004867636391118913121772039136513652758679521532274810334750495631267002226899703536967304289617625640934216023899954272426219900611498630584437410813399112503054282501223696220550919965094388573185398210288002313429390287671347674350617070978266166581639933367513512374893408612694047461895928306579977845138288766761076396442928656075444319830092424005311925413526713727908692971504094612581721649177941290307877798811442313598120546398544226807477938566531298876966102104144787516417283897737091062888366204959642553516678160718143594547393517185534676062546756641580898896346239421464159107451585793575578855973571669335772735211419561046395653184587071803404717282967040566072656800656649849147390311923217920459321016730680755419859508495710497450290822999370911585891141797665897173670149093740744597077254584798895876347033930317196874286952100866006425320049693097603961988165510926986314161883901667156857040485290252320290754450425745652076909120596011487277613955410932229300213161863301035753301979054085792561227904553395907052950668461293661129011620422776222706241923512748475886289651153678246755032587657898190500887517958084133902816022085494024010487011642904112372078758477182209119575968073697041212609534946600778241100044453882673581386555161292797209165053634456281854828338069020680639112087055037062596122377938026062734285349434034553969647968327774823418687136698490259106193852154493825698304979751861498684446746824865120549361662715337320273643130732597537991966532404075481793438000961889082004249395891722789910593132319764536522342989376177626974581506497806832114363074346746205750510763084128106736283692444041377006464682259462287968598570473621972522686112498532958714112704271819578937326928951176271040989244129306728672147562177031528712943385782594392797953833367213526009185684476508859649481322479380844661774632308559950722230960934823689683654215046753748192882691231067062271841393946675149563268558564346846721560565338948702749472005413788055531792104896793625752490271877160108768001405841701272851130065014812905033824698381260968182381042368934421195820726638370288894467147947074563298334597209887272863696363366281770133867818629338818960928063928673347527640885643825732049818900156467162047478538161588460096526685509700509878662884526842146688207942212585259783869007412448006898620268357530720177623664153616598411611814367010099969891680629246730376019986174189627227725299804143140927446877869387999774370550131865558391696716432921215468732934156109134983034565350133000569750308235778228337354009020597095357034062901870730248615889185530939521733780758372339451022462178255223199618040305133903868824405932383701351004667681404792089556359394408430279945693751742778971286151960313287448867764298581071884607928510804057747123318517732090732909516119505149157890329100964024330073007342467140242989603939351748733436459542474440354904820550227208787917559768703553817555293600497247698301616021905453908985933459643088607337401685966173634940723413139498632338546430703975165025864138972037697289243493417543971785792731311075647246219687638090964632916644275779193024455835717550198187113538814253338556458365421807758356461320807283054894575245740742258303586004585875376384970397277916089995754816506098853023137878533435310869732367586701340417427468780728984535514709958214218290976173435932515714862823042137119975748951093453310350804535538421162805014744391001357821592472824020627225447005914430183156152231339292837834167998643451444780227084441708102709205593961548650535284588691574505060998467564089032823630439205532893489875633534093779467158576796790047023177133481555843968444955694618407038007589683168549074178959156558975797501291074540859382951189836274307367769383443637325402252018387937993773720288069741191043795077032445676074124211737176469955992188615968744306008173161017553402558195690347544576341186821327709832407861033249192429015679706202313013238729801133651861475572645796624545441359525968057482321973116191797037357442363924420112566265206851392286909835178302223369203607799594787849015461298963850242790270515129555718412332284128630567407496427555598652108039145208181789363591374931831526671483437986442996615036968508902764543869196002273782847006936239249858621948850206233210073181377624551440732836491437180051489103943443193866718154141655415215930610344084026234580297570166967653624273814997877275583295930931047044480160186140558096198504136314307943935145017025997308991809408979712154200062146693825669018183001760745514778460878091267996161178149402016980416348739470681555689303288832362996808718164213638040721922306025904184243873692304079238393718111849352826878536189724258571518382602136168611009351927438607800028012403128984427505796545832039199753158123183512400377643277536581744202559540880044800522908089266760252905887093893626019722147254028571372371988867534424071935033372725289293692534680875291464757601310943680333193320426370746081319340665112223496350471363394397103258146556149493963917442591612426115760621282949608346890834776905156927060592345300144444305669735591297552414354440680942863947040608999398906552954645746612989013252588532397790949398377018048703189662065306038685857047672285813918811750177179812622934638720039333852921140790027571233902996305610015232149544220746522912141640177100681519246074985506735963267398966979130170213585239644452810297793420132964002741708248148994869694477950526080651359955348701349382799455161348681219360400455786947979941033442548146656396886439237855863027148830906100691316885513707245687290398489093285228965355322339157588216819231560239355421826729868447611547827371587966627703008898249130615875414364685537695308788870923748295235717015832700825261548493443141348770483325319299131019208639109548724742667624144341597858682547469181878747086022738936925013751909467264382724185649855003456557578196837474957100214439806952384930610514450569767760990541724256147144561233622160535700084494028158654916742032426671035055906549286412495237153831726944404761291755729650749436078038803678979428585571586608552801295305714131826510273034378913250337525209616962355823996714498301843176760753520679859036502591937589533928705117531034779424311920960895198779934647980041616025623486129480126444311368490800459776266331610989513576664732176031398682888836241439196115043312185535486107828906879252187190158558861303293047782997986061396292282763333684826733495822150903996071922288259436686175231144882844014077862779921526583368105348991108025380000071056767756092806030966655540362652934895999892228287135882662293706431508147092902108746142426346311742685445012779929533164945470951546372808970135115573576588133833056524786679463907218486527362525531994234689065541061196425876090215543154215045006680308860117552614444855299744043566552470315653816714368605347209608259623203787350894077268469284831146751965176794961093774184365967334139113975987601699762116887937814723930884716548378772821291100452663736496351843337327051441448817546929627716340282914023610789723136482100152948077328005971759293620657658795781481074831042716355842301263001162726146512250765503701714246176309289512352924749411469641987290494779462003784307541183976110728655355203035908626650559940819786716731348733547908681875055898967392333031053775691786526426845413878995910271583858414058498607019830294922441706033546507664372629629343577571990417151646656410954759182065535567732285110012703937889223487883242154959125077755284118179119753417214927255006173871258337242522179704047158235555299687183301148040033884764019644319411854797446646597283181539660927445911596327410057584007354726616457532603933975343866444129977759035610194373759045009760320905978817793157740942926295909481222297143102769131741063458472159413525209427020797475364851935405080522921249181940773983841522979281594391767195606374080062258869059192102339132444932708009064739642452215742731604221146740474659941306440094302127347188708474741362502499459904709543256090428764216008581466189982030156292976977437791576786493034630876880172148657680011525255595849780056068089244881775164592938940270334272025986570296831264626582241261344857072909906734775284201167282368308686610069338757607111820736118921308114524815590408865314168176724905989558776594894281587575610449419409520231204480558706969390744139963383771669466282961180088861744181772988735051056717646879918703323914096268585709616710793268779681686438903252871846557596088114137504954595815592727833858194261112639130707296553044877585334595309688981096146199268184975604939414515470447384760407975016254463155515297106741731198244085103871060823604157338947578259587317386328675027904438965416236227608291472397532606123015700213737631575161191923455323950089428156054381975782421710252493815751812543631364497282718019750754535377343876318322528145377235174783700146337565302286874070778942787719180985863962844376248362639347964016067535466427593255256408253184372469230045112698704458325601014878726138398255786911344865251381831544394956675751532105797028199828586400255193018751098475853274044326645296923422741207490203003160397802278284869254845797052129066357624208829519734707822812359315383175913340812242693035111617200091939636319840502619833112743215837239274974392954357360190235921870385364973947152645065528062919336756558972882882789637438166011432041597445773435606767003900549235682919042791747411509077313402084460694041967983651497198678457429514354777540560027159636473649544013015387390340177896637367291597886770113380688907943575857789239968829067121975421075875406523399752072054396095031471379307953527708942109023002259896701095937421978228405225890126097358362492303367255736518714960127614977412019066242744309805886405112984830952557861679424438172221616033374729014979746269879868870362543497758712226227864026879492247575101972268719191995647873412958273323631079016926927882733454914297813643309892644375364688833447616552182756876350189329312604069011905254852437398460527407746557192492734184909920615016693761622348502465767592953499850655180164561303837502247552172190505614641828329609979899925549581994781411141992870282217961162887605705649264318946251371432129985069436273272780045213169492273857387096110573537638130910296759073003634464492516095115237424741797609071315489424398454076413569561120830742271891140207950137049236127101853631979309390119624924303273864615655727256212829006312821185341178092142228401027799503537381789185865956919596259354904422675872167753743494998535686706062164982394931749815644073414180355213503805058121983682061467049790214149506634795363891396607653176379794968122394642251883352684438198802193453271957487250016589151932570486594068314191299960213740118545905013064097310538535324399468347143029526941754381696692812193582352850852489900151808905383442112200665938805919310539448430541493065486770732918003505020564937278474937606430792637598488063399059157779176879321578113709471063296921038994247164735402613635704744182254687560884627383048033245410597211866134215915859571779978689477060386287324487718486803598588597757145840908786086372605553954141798775999355561659981486616134097540781125215586655862254419458945739029077786712036855308790460197584634287822629528867762241080217737861452811142875207520642583294107493947561987903451955285055930184980936990222645968005365820768554692019087853946446175925359644852847043420204861109848807285853560528043085799615343573686278790352665039051297135714492408499998693783640462680955835202362081019976335382377650974423471761744635169402132211348040478602303334583049065549666466624477963443900461444124294843835026082167314468194194504543002237428718579541737515933996979714594557680518409254230037093451562554514854044963831482215344718598722656650176032115408502877765462405544618816572209317080130136113803808326908179869749428220716202880361183086046207977475157130302049688707692945532580850203550029489715543543185874247431708518815524784614585484125566949891706337029647232499572752234347726819958575161742979141770080383082698235531631869745441253204540712486242731465838188074463141376332798223289244420325436979898611566534714496528835352313175702200657993000280898417240746079449423536537517837747083200861245081630827775443822012252598853385801022432292141302801165725996377038850843935306048528801263755065996077132027098232268628466425347941002859531814695769191729730064150079987746828009464243734947288825076901966816456382967313961193859987382650034822716334139852654790091163970229118614198101253139767915729340038999381717337674996062491554263134326501961597234017127437376181745868933049489393781688815182300675932703274363954502074922295481753478232219610548741698462464059259822856768510382612077157463962084864127157984482296999963684794005429467838329763179940871044300299303361802385701399681599931334844609654616186568428097371696950672418129105047908542596445178709343088255153520013615984639730709321431917101087465678801934661508078042185698264241988459196241768003035879290461739797833744535901646223847551391051824809038289922415987015682483070432032861033643365877823325616311987599970121923868890050820631417374068826500835713547155302810354271249852721303545344566302024512083013517709648263669159507886549152328698244868733295693369706059554421831833746908331312621713319262474403600974434880175555594567267070535761013153504950677674280774065267463381594095009159064799165519780951945018393761431371490081613124843863818575934050434144271395463519875511502455048305980176126759962188476194010392794823162635307198532410101115154826862489012162169421972883017290810439150647293288278546073426768399553596450908947842537949657967995444008935076822618229050087289951026147219931356799811133743789125949307243915671268176065270406600730508473567088329454856037586504376512925855539437969212307801500155487369521993745843093374192144896309812005283232758853847405243480930327646005637435202404273437249093098732178662729489015129730116351572501605339966773803918353185304912738806409069781817500935460419490584810413164422869250291461343771280343640621657380347888474468911803229350292665748344788283090262441041375389281515916850454613629203979067549523000758175740056669881616073048279112832242918655004533529434045765989338854779259642697970498601195920927515768095899118844362605637886659115196919728773697651649436256179104299818913510541243605928123444598384106991586306310104013228248955714480501773881614000115374610386068484158142783462183970918066483637425052024211640380967155374818881005144901187262136346878605904075617835621582241682897950660026692557560655833150613157250850644064589329952285896382164538647048771682927829317066101766275608270215031443129925595179277943198984352689373916076068492327487714045521785556463359635143399589378610768867732472548030558198848994007918283251460829487514826290250334074534911912807136171642303281487071479194496741978686312777645468353096437528408744950380446558422798584543153700595640272051258680797987290471021194116832975795246535013955113890708597015510697455215293664462444584495607447434611453031420573934555653664345418230263975753637905386422535878491337573262766021021523511499645059053449735546446798306693911427334278664992462285207322500219989689688942644814672765568134848112797450310381632485852281294021630116219116096644455839857541719313136528651717468040657514107815325322791995444251490678738899089784843644922439957824765079323589392453989724328296746328580851254083938421737363435419609272871193441701519432745154707350809873303804581828673190544221536418851283498063548416445641450691211987515342224776179436199430606889191058510458838450347896753757664582886130217148091975686868999373905968106047521894831865909722983253017507876251957648518972054643334600923822564456265004093786152662070176603484546839759741785191306236344823670631058045304727680096296887973306617924904867591137929268142947466009592345911909344455336169562284561635262906736539070636784645926657827166444640867189774134899064922706405730386509378406874405411717573392489724295753547179588559273837404941076045135131988371373390288505069206749279354612978053893584960123514450655932970483209122977089943339957510891359681004263168564712085197619346550287385751095748006493152651759004087986311466404515923141435354537012199863670776936027814252455229996038531257768820639793892399803560036975788928994015218224278092293841983932018868372202180097975579125936145988323257362789370676653593825797461468293346220235095794126568054438455724529126578333751106969284072887127617792530958807649261973413110689663765011288912022755964557602185078211038305780978145567519474357811947764574394880422069269780931566880915865258209442488092342192446138215231078462908441034110915485386807058045095679770815287729530580775562410506088146459642225495575575596587179171271090165259509764832325783733205421443225261898179613556228579983234624677538496532727052265329872239842191882837514278202209403146021218977283421414285273430603763900580267418654054749792525391486012794164338105834567605253398666069247663572722286129733188858396807005243558327895234895361453527295459890826798875086123955660436730444458672009630393958938936586855680233514246790275576996711237996656711384121834091602615711888147804355031120538463932331822585408919868284466766515488411400475194595120285142875391600640241013579528308294286360376559012355808605902351844098973664485521174616984241798229117339837025915165476275989649548702741720055779407391180542004885015464535904784008611637514976735310521251581332318700643815458117862154910368369910728005650782125662185066160653463429754111674967098944361848438219033860301662892810843956064519369754259618199839943684941608051715912164502653601277451677850042873406439096652412235695626971236571198299657578609635079588540414044014403775328567106136591390153710545958096232906626484843125032245204340418991028943285007628467419513960146504440916811897700451840274473110737001395074177356734132736981766446427897272894012365550269650329236955275979335975297910831952405773289107489826440575824692762299469972656646946863659355837226043270277204503273640623200165493368975093150098601503666972634170077442114622310487133588175789943696894502768326835599971956109939220469494247700087348739585985223876313069830992850595457209910182798023653639034735805679960855969480849926511299594040846343117227393609626853593170155817513390698084420546932276695043017750390718238107404982901516233722473985277058788199878631950116402586662766995395178312884550099265290868568605092063138644504382081237064530815828941279953504853845685771147884155011044523365042415740063675933859821708731977696728227983904026689232006264564215807102741793514773234315124246831541490809476320581168999133413410602476206221466308818010168517595401674005420458082274391094724074339394542540285705337325429006062303521715127828870599202377573464180719518494248664938908879098991405444366293768979857593421579184071779998667077089104667234934345108469201853042031845950098053166581169090157958158614796521393055096480570087755417480480834621147320134558526163850384456556114940771162485977203159103858752161128076067590640329148356608198140434848977314333608979497041102502244286195356254455692244023595857681466597287916440863393379971903215648464480240972306474788229610942174091443025048352711731085803696511123956566288329840047599534024957879012016047217897574454810785164998070700403632770137429886220293269019555926577848140744354562675544720528298248217328571570923230753833892744622514704145910608384631286242238692445211612335725002421645137036625556649875220676538031401563638230310849101445648576284705478630034511988709487862775965964991212306671462237937113004154952574200912117089169908607612094161134344907015508879875545073619607628083463425542616237837920681378856441390747099984062549578557489681896343121784578561324834618247341948234799313039003377122171245566226467010934491591555315875586227748204678585378166390997840020054856952758131969687697156310029575493940606061341708817137640738908249285819844356034684179725926517600844722855081889919361270238743323554513203670570714416535204524035180660275360410701403445469308275972658114121361140176289099370142107485468474523315045578467157312962564869839345275722205436720167148528971751223738270999733023264391110403334173539128173344956643023177564637389936871915537376651805949276615489914678731844854734753107155307178896350114452486117898012475121747260045273848297377163314012579770105147236081543964094041362292414056825620862557206973594489288605005240022990547967687558274380783824578574736727244808316171380812408083424071185534090647584653402752697324082459994222396306737714584923309418903725305734123106679723979774758956812954967694918584588761781413237808612641454798068418281555308484567814473607384910240456790544888937720062870010357152721610401731416255473749444124053555939833130117183108757998921287396917745643574061352654737343140761794083663943679394511357460678616440899644560725194094515777930140805045660597523812481177702886819858487915996135986536347860881903079799219945300426101310149661283454656717635344957284843375097043644864139251141555942045310912709885477877718174754469372411497038090756608364772204280261530957812208390023063338719543860889469282304811203085566322845445051463481477877359735258197543508695044495488526623952354523717324752729552988309368558908743920017484181070538223627101422540375484414499691959652817567930371246625582843309888910342087399183309326294481525732352785439037036857381515361401828869508551165942162974810785319988241962304007766479465150347852890367218826806637614369978898209395588531673986201394231069720884079550074837469162062199186994507329939558632042470317827613778748763186039852628528695464130676415240804386434781529431706666987671340206897900979030331592287572746100867843369073850838201542540845825464008606630836273823578823500137886863342509080640380698715832198645911036877491387354114842828355402020904186853159741598545087394684811983226234505199119292625378766359848878185552393741133809648482384926449359158582835536284650661065430836517234346621361209014120122461578268359818881987954077161321899199429770293805119690443154030204812939087459278018930909419806712936711384338396842537426229734785749682601572292647477963039862781985642391188618974620611094023623992536000067398035795893614948813993866771894486885627590760569595809129162752282884035299480988929364205658033438035172656184850938600334215823381385192527627083051572633923662216197993515812581458922890262494504910627391937776665631478991195852669052534691466659333254806146938265190765880522993342061898811914769234641715348895033570002511038467289628455011886376818535887157722246652083300728826409516495079465717118579827515319727119203635430859996218426133927871025765057113568564687708293495438592167323115433674191079581444435626687299587674558388991810953303958849818032296504985304304916751305374945226020208762861891138513342405737623262916282290194664450150245203334330421472731601430921922060057156196181862532175476186987583728099230697160289547243294357599186761206113818758425417219259524726502303238805233723258759616595260977051026057784710564578498036775755825037282598066076961349788687373300432012513120296003727719842699793206470273122327234967220089774234581793397770313868694562507928867144081549334555190863826429989687236867182761372592926726459284052214452261437196563627605695829880804794364716031972961347725087163448410716823043864268333753352898516065397074000038863778951283279645173507321054994697847379520775488704556904193095312606052003941614442552809101543530097640849890368766535986404499384124998799723420060738926788699040744344854662566469807757030842537275676640467360207033819311688427950464887669263632012564595971855897683051348088812669412206109063748675555931369117133839511628917885587816152096258538549217736311001191925058990940721373860565200745238295095297299804982733867052136808334988371178388964564412351906637861480566601938836352496438489070875644755589569688053754412883934102988245308224550062113921743458176005850991175388550610086802138549943252708282917935865365338976446349119981521102238891354512297638931103461518807840445052159535163158403416724512232943688176437966486403442446045228668466581073499112092348133971674364616231697610457149064376706558782653614789432389859768298427073066348392549355010401874772733903339857876565995275441719796218581747245445549227609026271098714909535452395638371070929308979199578371902928745727641848505565530324187098135438081603652285474543989579727574359501430492983142766381090154549532989719024041820368295568448300345788046166847984098126601802770365057131912544576054403640722602287253566070023390799273109704064577343366137871910568522911852582586516465496657312618732956220576742971580353962446073199624400790175548565101600349169340256043519664036029425060534298677825142834141043157740608681343092059781421346400058748806160400962485480348324110941179330544639317928390446337263906051990386150103094624341983428710472432903256474790526906529715670425161710881083770781298760476430490583311615961638431184636111500461822151751361486698825606686289758530095202464405133869251073498268222192519381678509140699606554034196719801349648966373062446592147274653581565968168869669037311749891811973929905629009458158954613931716210566545910798626455531211739158952644148173335499716306906907599712767880499469171597597891710400419960382271187269483103775363026844665351676617741064076101460220476793049404397216245353935282949981319251419875140954600311743559790464182138243059220587398506296546481851232045867289280165621848872898054798164977222812612458476841527413818823507733527521732639102441591903183582018897256976763237366489557715043169946206299824625457838868906597398305430755366448016540622182562465773130658103511742245035638927931623891237530020711781433259988380881559590688448661511463461010154855588285675011802700914445585013297224711829708533998929405477943711112354700658941947849113099169845394679938085317467179672611752365672173526781225112580426298434479263955967597553840187562383448526858725776839832160983999389710671163914903233761915594199544344614109686496929598946198854558726216378809023115741033097049421211875882600919939742972627156359744756579495369599318864708656172362775657091883998587995553256141308834432456111150423629010404156577015520950904510373936381254208954139603862174612936586343982005378389378435220456516799678409783146208267353570488317919290113947439094521449255260473834491807787774952974480830408745359635122289169146254029449114609054886151397795726967724269113879347918374533780953810959664170591958472239009698996580304903775552763684651245270268332051200699709935526371475194402074167077759269553214920248996363345037236232852436720887586099057281318705236860036607324225930486660431334952026745189375772166802483951588536348692233859798999511414905367781288222797975190850873152907330050514942214502361075296110283874008298767460310315298258613823762478141468724381067635371627153819449642432347889965133296916473738992521660698306740832702083432351139711597585312881647278159061958173393887480891999082799142034233707274976564243138133053119889531089681271272958859965358415520905107533693325829594057744713825127374270007037573130771185022387493310729036712294575099512577388530821498602518650918277592410957733346956724490414335162816807752164083380135977409400763230937629442201257533839085632149060863280147888419438321663401199743265167450106251892480441362178017916263030344607044132281881469694808994281133116705214385858042081057400368584240556493942541616196463590590413956696779869372005655120596651278373159099655063667923017063526618415047016498137166438813197496073959671248583783039448364160575406979304833852970949929232656238925593048673432749329668988868564266402749184820785988894892692100961917394735750372288277815985669756107559690927151019677767299915891788444193825622186771774305051416150668173509725692389037318342766051298018877113448366942788548099713721923256300850627112838748276034190589500004455424554958970798915753042258029114535912519939452186497144236387600626657196814493345978086088782545555365471715387152703249429700302346920157864830083857294904149172920340697737881726490356300714518758482524903440496901073069143266554097921508976451817170169592917329907231765472782527589517716837795177086343917545250738437962953707483244426255275243764114145130612168082513996142193673224181219640365645995605963057667308127121399337127154966329345259126360981914264512681326090303842061380307790587368653009013230077081888033841877910771834794001619336192216522218498604488874138402481431855799317206792021502775279196817000631442160017506424899395329120364781755441954716519063034373826262815483831751109885648929302678550131770619757733091105977880950721579928487572487510820333308238454985508887802610711530694249118015844966359058307951698726367571704944729329205455549210017422317061466372816978739470504570057795349181629173636785223919380332447471748465509597244237012562414195172518105121859170391520481241654248122006265732661215948307132209602466351255800923309849406054824924216947235092924781018137914182501143358877030031487498437884021537350996334186621228926853902167290160215942384931158048231032728076889637281800546855504302680904736322114048196960002888171491039062172028845788236328926379982696010431191281084243929489611745498826698349326848766678876346909127078723965665939298109874679403597247976025620371581849622764914517300499822792614856389119845140160352474932642890213240255861302222828821863255417089608680003629519433300409814108321862765791544113409383621912708283714310662870071162794032409721439166499017396805423581674807721306224215200512422581213695217698929340686097882454818628693186009786558933362090877329979869357302555979610805620252321021162504730286440453293970201791381229574951451321990649321048901958256537092893776936672591284297165581847464527217943014081902344776222353156050207840116513927326175483812708587040324060877548255815576047184385325166852620412753359575360907890111578364878991322723447492641292446698691076318567756558933878964177908942737030418963380528239809611484278578285593800053608805188917686764015192845829416633365788023720482261935707584287694958387082035416949492681647064861148495982067282960797247928405111374169477179398688346396721681021828382029359317324102066651728259990062137880414011226251052218363490313695497355576949383558608788743649669992169305966764304230048886665540762743993918455113507524371008968852572785457284878583944715409676604031030144043658934560725329121297671879491584993911597922922118185594505918759888699541839664250540691548869134139272182571610592039383847531011449673924013617875417228261621862099527717069021577839828882157254054656862028998045199549444066678072537837076618401798373315621802203536676645495505274759015589631846730001558359517310429569335285005062571285519982412854501645594056185566338120644348081138670991316854992592879392486387784960195605982733572544998820870278370225944100061554986239306637086175081780849476030704502498549942461634690403207780243469358242405802454119574990978134909098873106905585643470353813927028085558257918763369710176510030610811282771280495312804033980300987201091688310477487363815825926087938580143941235608066023864570610299526610136458960097870320833514839466988336117575757725057557864230694982013519712713859037352260462589122019133414085692877182168731733552367031985687969021847468400369123560818819307896094808573961362573009946283556476614656961811691673752120970608215240819048281025268148267587257533806618877213458365297234401111367645332429592981910025990523275445821826458764162898239541577692973003521448332244725978135828095083663671104988549728933886362528513214543443776626656029104102198304556520970893634718935201933578961062552197591200804237725401026806013089899242419768128961333011991118382939264200392837135961849586399316169013536699345615508135575904125422437005241274265671295328557508213227570473745567563029186893464896095492071980353417378428882277060254621128413861225152229621783507049693368976617342269959734118742450768033039444184347114532107699940958924867664755517809894512732517708127665053626876139588061442471307351775890418674575189179789967584231227065033680974678734254899981648297711985198516820222313101298426272173307584200378721927541708609120907095344472279649550208352447282800836365316789440784668816701353993022537939182999121040260645098675182018976569797562166808992910645111642457240014154033707215222018253094889582016553117229903902360444461942342994342490542939075033214329930227671276868214296554537330516336422008718915491788240978756636235561104724850121581164260596366199139082655689343336272404203465800193188700200286950750310684943978195844855518238847312002484797393808288813164160090627300159043859972982378073056267997974613127396665735248021795634377453656831755842257744495794552211352544565322075570409993310928977479076797499949830361313561391857470315233525228350393381032714685606396199804610577747018820223229773612934948899893498001132053128392905241373015106236234547748093308180458265774844802910609430021896616103134951499991297354088292387758913530885198224807780093647327062512172374731733146068852201051772627548876162451179450210255041026854706177512280635249906454987530672159055834610393362131852537812035906481746743657004373780844251886012318262131912436071174798273012200855473616479965869557428956912386064879256612467813614902202221043767944690118603373766719202203176006650009018813379078211101751671457048145359776993212882964141022882509443721808002165511058199587789631697527182012964905442984267202599096856591329076506906323641788164805144241409719161213937052501214991757745145993506902413730399683833237326329636168835672154791667653146181490430767366326837758212751044484623869994568023412288976729973135680814673449044384127634082641773425624379687581637531187503553306843148635995149617515882355318234791435883561667681884934367668252004536453000207131799062722094610812777596073398912805898906647274622657864474393108773786976767508751782749047116466971813279306672040828895193704395900877672972841470379229064880373073039752917572179870007428500450532374933685024404398136412687984826016113750826846869212574211258438748891726914309153387233995836517635185289998256527347944369080586628519558804590928541658437766574889652996255310249419438881438230339955325804333919559211080004307700164217995550313008172403292154050103295312432872834095746493742557950982918677952404082203793964327016705747690178036380699302345353153260313472488995622399722380989615545869497757263450446084518397656420850770758494407023821744957879642955333874552916132994012927493494803677841036604107819489352816138180415857783974731951525864558512618602812554433197956003803147806690670750099794754042518875513493479984082776918832666571003346807019503050879016850578090379940677962399216352597657388163299345939465099369710253141214980068497986637193367767865886251497800132977305190348939735091751349340004012956513230069677432034889277563061484278594680898327524509765130459202881466969231791779748595766753607639024512627864420256361449373899875937686420630917312269924476196565391156474662883113696256174415207737546488586129259943405967332289284269506834218045162710129244590031585115428369827331060123194178271998131597820273042414953253920401363631280454538765573651298571915457270298186984747646215590079064098421504661735406987015817434897904346700397604983877595117032778534700721106044631938840117972126110067312705259025558664224122087231133981166899702885780239920068802921261927392629021977968264923038019157026292186678173843158041542432440637599053075379537602228051211805847756794453039260859016711365212962920063838998528667304188347449500692855274757833973367040630322240053429776886827790219371138941007864865969625117171425618832226409725477964396951110453324222623560634731334804772188291851120899318759325190230078871651440999819606208959044323370152524838276483585993122642446238846408206538895370663057074580914035709011166615778034349696240263842919844850714326734776315658845615352944123605436987318289030182122015545842864592611092761446272612866539067441830502928505149923366962227877592238453775475154719880533378590172609489970890526778878004260921359328004450624619474384913141626275834307818208651373844334883511419321263704285959748652922059961969045573862171074383104389944681327332470377669257711130518960473315203017942845778860295017043042463859218386023003638102861715080017108367635983237949015786920841216815379298333145808259713391742552191950219758008848612989173815451541388350302641405374210019336968832705427085909011039312835300211983281643222027446778622668437876740584892323863024266406269981409953658021254866765596364735407563738205189363835270520110800489143734899544962390646568180434379752416971693587813295369508360681582123491518870846306256917443952860222409048985627020422072288106835440468826791389506695744871619832292931643479417820574214627949140284905724330728923451406638227172519554467585839562735282678458710094481250372645262216251513951031693464866464425708970511135758389190384377880643158683526637840357240216131185455554337829127792178599170329458376050305618227236457742652874169163132630735719425609417191247102256942014346722119261869437142928917718111076577321385113339196044391438015978121317386682640067841229200590092399992592117262327598621823273183493414017927037582391627975202455310627294690772204846431433341802437033713740218955485442434112346188235075543881294336380580797338811662410730765680448245754323236443397179532508938967627926193939700551936030307025100862293562995433517609587210339068657026818194883900137050340690003763749444561123296647824556749633150684463578188873424161496963646627794445227391158870539191788390960489109606294679958667335339175805152874197463950690874771591593543488328434026100704904848222026992683773269837102116206184201227481166353839560646252714908512984201718151023241116593888046831117701255789779409196335627679170239677304663990650460343183445673679341069549058803996119631202406253575524400569398675335094391784987070346075086178134037229987411171436539778221220861045949074100710987204055905723284855597825126163130817391928849926752986790720546274931783787837608531897874333651524250117927620888306835180197878767360127870423907874458005634986398016179421549492794790262449811684800303438092588133295615254279618355288442696533885524764818298642549104475166537024212087109321138215091956397476258458330606230161960112675230152233171943737526733639432678838958652784414417541644860785325657058932832803397152733796563499767928272464107100612767233934292323771046234004056203049131549716844543581042409082880982634509099431807147183427941470428279104440161057036958060627663987381452798068715942391912005250388233851859954109285831817632145589073074205038272205573615825203883123320136414880300500633028718568993893283613248156470640144425167919867704998059642298907758374111215876914166361911562660667511919340529543432533343746113360254970199570866900031892950366594641460292587937472903141018401674090361997651028334006365085527785045854380303638038275673445855948498199139815419695548022284369782574205155469130496750283279578766779954464526015397815318060059925552706189299080718820994001393707706289223296977606982817389763244504442684243287011867243201172898202136548500330457581131855455285811660110292578816074914269651939015045808553840890850146465332634073689921157469285748024166385639556491294662224085501671652675282474783437555700025715261762774778821260097967024479284133631631596432339145532829867418473524494676516504162375242520597827096904209020701381525297936617130966672802270231842380785608704841090812057526111409432987758099295206166248624572563546007906590805917207818317632907676756488546252390686131993933885245548630106411169529760885707146557082639279045844584838764426315639945064571794519804816454480622900563796706526164258833568258679448847843676135073956865444162822092800235816469825865812105224791500000650047697666671221223199097145424760176854015443437875322802791115810001479466918401162360907654107546118634556293627651242001909107635198268815296336569156837150694512392760089231792935955014303777908260387140796460407216658509944797103573198555386691842772731855067174928438739722006640552204965503743891773709924542988940110103835314902574829425319994121962792142908454190694067096878378215421221725915978950003859542620493821688522542247371425086632203411833840824768295817049877111085334249997754405006154757295905409841064976892919426239175741231631082407012568108500321500506135402171509229400047682911417737592274081649314536331463649876603704686773704379629812573696389370710104824983613337506984550699375101743931533234832238540066452684316738631645186882312078878360980740112067362003510028973504599223721002901575445328534228250758747039746914170067456816181294945772891619588808007710932477410483229231794878047429163361615799906343262072920620320567806845207881996730483747590076308035323953775282600674437789174221978614648137207240813464479986916966384948194731980655951600424975929197387013140083135307571237977548905569572664467311274190056971424540120971738772148480618529835626440495606235037267248901423288290661074597414421273353919949529323649241342187420499535656849039276610768704059185839437299916061534684296559338301651040990602658228143377838615427429191522008944054119017210403849626582244454891065040743688277779997438801557568404467827584030060964710615850033125833265802443833419351833589111274769617262226809262310663249321566475465744745212756922502298618731727487278466251615532013677123974144050073193017453772797193379989196651547328411049657691327386352094688999262959732678469953496588336672692341479804239770159969762121168737090711678535754255492992128853008211457446188462846669642840354322898324285002614865260766154263848277909357274568716140910236396456769763872130533231633232856780034662074044591109732156298863450864914710577443582918883279619809865443405781215462276273771897777702905462301536543727567580414825633374273608988481343859045178065906162273457390113368460745566225061551579523005355381723728089152887245247501243449546247986462760866372909447652460523062075014011663993488586384867941698797779485605309545587181999886423525921087825433545929211853980580598413417674172936705167354798374791957172473647740923786542917566814418348015924995459233451221858237529390977044161013681401542682431220704407708822402619123543122726033901215096920820172589974295453531343516208205668984262197053059972841728913082099902132336772984153504687211970973406794503210805126888005708300809357658818168267738592797198442932412383849419638799758136317099804639406773183464282269142871772531502200069831359654869696465014567577415456579012841967776685532788346191532235114041896566300721164147636530983823423268089463897316843290305101111029936499985626518018346272167052167235319620310333264626483119091978432501246743386912804878180672872017374017082239060301568791509961578741475896680820390983216186793940119812374891769339962712267362595063791567806055522081397702009048618899119817396933226912884202053879667637297072122884592650868402150806655159372030558792772988383245450338268982976449874900832772748066529652362352715078381367249371641200433488522020923376355280981595192648018315765374732187305173573107765754481783392685020531835154955931120579660957621021692589474288943858654499748662918595540091477631806076035698655003321572329311242586171156696227356729342578720386391478546919020431874748803939171837053880585686371238446675272067885825700620406560975391526603487784608776841675029936547524787737617814028345546056683305414808799287386014557638777421592243960227894113388328595544482767078290232693412322237160588392697235544090421261478586462599312752678217188907287306306619539031595633842389565574200789555372691851610548007225382221670550986843991638721589729643297718206016775303025076240334670387504334002858097565121354395830529907517844052214768734604994167276127833447673012409164207107173544703147436579180963737559315607415659214971625553257610057588617959091386843380679975886967058972161718047860615606320048690418213185899336723715079773479022441168051127573231297427112024503047057426959783171626637099947409092403670915699844927638068610526587115451770514690563728156972635185051090534904544083459913670894410083853641614900214899936275741441010570748775590475426264417536103161519065039607335959406736312081666040441201722597645930146153045881830685941696936253947662421667505035715344163892155935513479929099532153191919539185302180018037102760245394826617790568441514835570401785509514162466428207974281130116983109516328144987342098357814451597940581682834183668544250534174123010117879003012274590137315672636791562600596203962562978367101207818969643044646136957867573069193283855006638047295336307640124617610928094233599241352934210223710396255094263322150162083679873032285450451675677303709222170479625023292063963923227346601285954734636425740423663539164004891047792847263709796346647278175214001655914650227357461088413332707118978217619730243719587031127850668876909411800838792162055201236502273800764122137930573737838426228992780706947356589881200518306595927991487506206385957042543968038683951072778699318174520127680607002931166602834894831336166683591199286630170640851132231226711095297676970650793123305617650269169545690161883834707353332855852233482166849750095999184151661084684718093815009192056665509075931960244411226051716759225425128961580534128028693749641382401639436893442927499324792185003783141127709568567967785842417150332904735965087969368805882636463498675305842821354487758809963239977021551449284696452230423215441019702152380201909280768282339705146106832960038873533854192964215843387586379741130381012196336265691703886612449149248497100620587250526437170342789241441821306191547221895840898713586303622266190773040842751975963996820805392448546907168702307001354924125016052799489463448526975430837962384523644142647102077269721399725917087258928669996036217951313130740696551866310351975783863198464469575951526568711710104988100038476409158269996010684595747384643533425037057316046084962350545051204598800782639906659041015090777059392130998488035221313513266969672303434805141623247282651799840054484536255401472838855153385363730323328598754521228166981468356164471920274229842821959607380236589625199645835019976467628906332100551418192189330484878650778667472435223869888421752615328024364965634496475086735169748256155381918518891562348182556604422583037218257065285620406835762167100087350053615843815891338478410359844414003673086282334854941277385391882301276135740039533974331217555471008734321372251504844659068623022936140519126779092206406464660134193205480127308868617935198947462523340071643818583257999566799592387636576720920422166335539584607492741751040213516209671750819383656992353594110440993374430416792001153970138909140646471240205793867583087815062063307851993344980612029347007037894167149918905561908348283361996422729005326875736796979050074014282950426082298945694283115356438008369053525937584725332907624542967326935283157535843457581572760670764896023352467395840393108343995154293210568166092968351632654821537281676474964594010654841712163762740288039407453110913480082200386420702440534227107267316635718452434822477339330928197492888707377763260358280743895834244627866432190780627984362227462812583232536783150222726387240817182342357083703997763984296783993732274689189609949005220611213955377275336986753097658093963805583531143681608059133648558470293732217761813496024886559864758939984882969589444147319285006496622466290860842325599414984219521581024172043298515700250041460859775566102737734909746297113038845609782489694882655756348136368969146240567955811852038204805419885713743628257276527131867933090693639187381396734609691109515462811528612185092472251463624433062875983298384698911089874771735138694039168805713591874133372339708291831526000610723568891942614438599007548310999249295182810602592340364895901998559804711399783862985102317221662078124417964463810025837768673256350654181779825377740567613800498302328750300380502176489247802330948131265152592433354432687107339527557691698945166589909551314595995576896236110471464619941388686755355205993213934652183365676344416493714662854064974660603928110225848200629454548406247325545939524906135085444060829241727655084204993717057323209017897204278090670014305793631470821822376366340136479825373758379528523506665329365372303795833116052727730929829159205136104505982909421117692770668900554220442040517869320914809345049972507263046743807984653186158451503248659350799746141123434567300365238368220453575661237909081377605835803056083150511496068340439477822498511299094486595209152768270322118920883737322428550161186581560428863533742981279492689853051273260970663739221120251551324530702786534113240463434229214287376533855858393603812400556558308445144059367395672190872410530154306798254056705918521875596636645435953942050478892064602948152209104374670735882100709843214903948723040501743331894856145413272741162751064777167459282763108626547940188889125217813773550784138939679374966209961826237274759233964949573787809126124434367400330703365633039225101625234419404362122162923649028830512634551817267759817432875643222968530415887363806162017955527491160928622814038978968866728698326343155975917190819680148475295782867847467256050875569019723240484855046705620450519011985930038886003051917518291298316524445474571894478185730296298031663026523169470645340463858357962439390575245846875869731519379592491376823178663096920368818677453505183990976236619736341725862878414050644442701294428007954349943207712587541418816858560647688128672756187759611948552367301209541781593748057102697667841079307773348558021627619450834755041421778286940765620681724673824482429252593156543034869237362488662858140271700107419555209857942337464107056107430571947161100164424922099086025192607888952117177607726904173862866559309226625487284296477601561259876968449299610568801210616344097298621252728127084943900509758160234158630913109695077036393266031242422868906355032287598918258841061266480627499864028636136878279980313209756271536923364067478003759862420666187872145225208009291423455442319826350964688542965643302004412297315686786836254527224041695082046315651626260303465866901448133043648358172208317264328843142846505053824543238912354864975925321335281139121034260948325721163843849712757614611495319458799483027493488706143291623324526768308789246278345699464945097415418089066423624190071950683621538694796717651918805012042511668064812801656463452618037356212324974594027648940925457200236645673247384400692642709386143132453491477360100177211490338421508663785945828301749579157121844525517849111729488382945868418663814125575291750061467743866760837134164176881010055930795441960236497018254168496575103670436750327801362373789368766402971468793257341353889881430664591108273352770187971708865700546753592071284244135382947897738571252727138275951885694152844352031728996734978537884021035938923962896400572023458138828087395669847710421201092944738228905313942660963153609132208946310219652011664638579877832152765066596667411483448824266286191399106942775730773249448642913559838313571125280383887652753626714268941920284239117958096212349469720818255861450054129753888010921837309470642166737862587185137751515635915390545741447187980982878461113913918062754968659476020470692621619002231513371936294073399234054809830973965115846396298836767536229822771298469529261352577969209539637257391229102090898703232661033322376724706048839996102750993425058509735110776671099160501033344625003998475366869839945740248689092733398518082198878302128043944799334795450259964000205799532257879454894552381682948705753081666059847503153662382640929794621162871966266758214477589102773351453955878684043669218027764022794352711571838898819203662545355653202412592901142905072692966420962487215908184563427807017951499824073964582503584831666848780152502221923222775145195820835521144019370848045737722087051051022185197146231536333314400062677238765183155179665487884369490891921075569396463348709864711518921367410099401503544253823822296756989392727150095926051219674468321388161818755710545894783225992984480219420950972332907330213758109821130650366822911089406867859172511549354877550275903219648141489006999292469092566579601477330446093897548794526445031409797540433419342492349723624476856278638927483808154667780179159738041269383327871208975640165080775175023818142234786870583634179286790106732375820536790116272429857573358138290365483743843280515726002908063225954724334970358953172687687487780864251038988939475555899521719108063797326268436361934456099758642132019669339722675332689033282758580866170191878222100507303726369194465638326520504465395625586060904986387413665370466379834315884314433925196590375982819040719981012171973053802094068448761216622268004224811613511370916392864063355328206848329017226690515848650561737855280802887762955397428496703789457254884154599873989814897595300697923648391485714138759615492657298240507887267698513234194346798874596225652785633450187140292826289747036813834422171067804277258726095012293061809770900313522199524420958741069974248038062701888625334686229954718559036338515555644390444811490875849853789854393792668239625824203108444020601648924775286162259745707720163382195913176865222837632280295291963350205690316773792309184415325362779128156849100865287194959949902032847308562286539221788276475345242617369957209675088960242995413202608114361684042142949075659442874632381866932833811947779332963484313537487862552729147226125806596125278395074818247419377266725039887970466508076645439097073776960033533503323115554943078036887111102917126484286745673577049471634884497673688028917999582633682152983389738021162451230252792545312263248112480806415433561984761372616371415945339582144803625374654280229567471280074480569584579730171320521306933713903906520557042782875783549416283700393217333256531746490710469788364386861124127112721335436713080970895446670078463921917387671369242071857377074766126101704340019084611819240165105037979201952359476028875402668666462963830743091782453739549564398175612273604979409325681110613394263838569599287660778727812630061316138384537550465507136291453085622902053117890940078131223719104433658448747847798812280092670945178851120565787744230475055173899431584495936515288093044708299423701771577294479061461429034138423274568087113299591556145463829446413824930686003325025893397014163830027909009928698901729072235704551261790210043034588319174004273549407360762117769266797827681588133338215535807328270068732702690258602662313822415703139826776745352414076066013645188417545576252495103347096013551183793414665269607834362869241229144398483751857685853050086754753652598970072727584648672316889642562661793638566526403375263980395011658209474279357131795365165184558458893788666832729172404830318714234458832137052465570412989656168623330242396114718233792971314816339966878977945351297450223124531392251275845008649772140810492371890052939981250164391620705943519446571252446564649119841014974320757213787440704976014543772531757117511736002712722627599821047824573696520541891454694188722412657101155640897872402355865766783016125123634623647696446841517258047509069931554226801960816282359546763691315522425489825387912639970414144714418141186195967120622168831401578188106128867082754446077084486457984360025294161824651940750631019072792520801468148162603871887648411288513929269616799520305195325600894068284361069662048504039994906163685576838278063753545918683218655283501693917328029674106010391260716887524247757506547193564263414915288712369828602926726780388069892428942843990970009978650754949716223478061256740911150050744389216875309879695273521414406807748755590917241508809014541362527914358436939514337144201767347831555516770627481450772508557222939248527112468970043066852150212983578994779386690535124574189948878567851183894762045408066473732498910618328057129173475945358431028917359635116230517007949083847515722037660511508318065942361920819256808519207473274019243475196449304047716912133816999072140274092221799631831184465615374032054403378721325240690677369205088317199279086224417544623967303457512826150486799503202591303051376059068062397363467959019341923892065683061136995522936096173995670514396048601270663976654706470361895188673515416796649390678328441347061706517078091316551997853144948625136664415187670400435902254529219446523691108763220470448754318287753709215236290492356229143156978973391755797095422330102413763895776004173542146559295111583421702844797574498508967491395066388541518233008560725411212585880849842433423054475588863073783960233870910563355115024458256224857067511564897413730164233294526077486404964376233575694679421209132075486858933805562787996919738446552065867011923965396953943585097405911674114664085633303693937476855301209331603259286524691442319691534244158707073334075862803872223202937170013439481917472265910406760749727791581306508734384281311906136613244655793321086224409477418936132183804818821030401280222547191315716559169840569308712758978603596176525738791455000285308963840117049289261404548756678798146103573089683075806287035344914277724281628303704730710072893208324140448889996327453827533271983527719795894021967827511336688238972004742867935694284688265426663798586332000292996135967653298447406489657369375400874737850555099664979030541026770180968081663422465862572723845241408708260025445743922471791661782601026715193668013066623778555955802325487366111178856019895122706520447145988917529042799374785200616297540073188255484734404469258181999916105809009953208522009361962980937565205951579693693397136439747495090880316390174661074514627761360804493145494778953426419266710104129327104764724082112659762151433017531617825795294776550658362870940701849996454738122692159466001796021662618128889208740570205320564726421565092970332952985757772744702256093183414853358306651766542097429624671317377977615404280942963427928475520631881753640980289972735574792844497532054085133008780585104705738413781868226578500461385706905413017438957514261689558830550852153809887307199892731638561770961346385522941876906900450183046715132870088039932880959732273728545947007112588378486293891889716314913936965382709488397749776646863795817973586942488906995777029481044495226144742761533068313151900366949976786526582974226463071875226849366581269721249344947931196583147982915670845204062655231989173572183057493551693425929322837632704065915186570163512446216977591787022308224454863962763879373905043968943967637561993246956902204410742155938708751026512621307939492193880118439878911338091195115890196516883648617031773030842920256480333087537073987503786509365354219181696173736997737064378000178501022188559781890158568980009927531835080296568322710611183678736942969227535254845981667312164077199842512666880474076373652600494783640849496710920006745104545645380246021718451823429137270557098013390177325534056737930166071324525902774864217662287239673857103081202160980390498839212869635090264748943686078433607349913972229979881231440255135398895398661705801620213559416429135622178636525451957051371144480864943002351860615699219625072926213519572534513531973757558245965336713999645490154990281169243767719322817657086144879312092240571559390034190182190235166788696988132025968337446345576585665405260332540866342444366772264231445891714233301823454041633135631346286577106860599156507117449830170250888109334652598793354709187176638605489646128179419691428343617111621156214462696827276981163027872212066873996772077312614163191726536565222669785035189087173512586631886384297350102902316474091740692247421938493828688286747469190443497430067497853665758071866377227202186946295090393359491943136469757589564109701584119680582947726117184945629905763358468893320012083231933522671253956159523965900148041422562127790696874903465187270066512887779703725795792658328088668679853342089540277763420464889314950019615720737380478149902850834697171061329310687743269477903888964534034695838147098978130850491784581266347981703037636697972520081501777881311068221247843379997169004864964488587458489783582986302725426717071273135007139390825894932018046966854035909485833733316724978418095370838720042067303605556486728286967800324252404719489441586755230176288586697484927630746880496002192606958402476783158536941996846693337533826717807297089059695787903051977955945969998790410719015436442741970067555849254395192155675963666014130360006790375430373817402655345207660234176461662103147156757522632765876691685782256184427213019399411923726048303116739715951777217156345789976935117541484363036578765174583216711952479881161929487150809709511867668312481833769912270249779313192755202806591985416523236183294379118438541197772056094762797319891087093145159898552532171161225618245548601742654971834161780726824226176038394550583520187310577744084044888155876280521653520775658127581381783336036133857258336707859110173012758756270677352237103250979395264445123719345242864612150883469723231951185427993756015884036486204973387032969537174719092228620308071483633048163778287870088473520269539031701530562449824634251804484574996978782220307076815583422786354820893948715855828276001235588954797973592873181091427644927114844588806111727143156892385981512895355027961536243932243383716377083925285613403269231089557422961001283590675118586250125228223665447841418303760414729551569282314853700069917191575957556176734263904239412760068131014312963345212986978263733345203958905156376777993394042605363353271188811560372993106544514532346516218927191133765527647129877955554201429491287199190446563892519386393801253078067776606666286198465408985125987885568350418415134803050241599623293323393726453600778842619639049286461720634500556229301395275290805204713778582827766650453022510206184170792231665412040259368601248180539106007133610172574526662453457971282481465990688970980563061315720609283342275133852526498984062576202776001871607866778873705137964083900755291316895861440018998341861840470991378145537353808001164291909552379800497730627839922220255002223465179410940946861261831223083227617440149513560642345489076039804338051530071256311137762624667014110540735324220798708433888098437410293652936881783134967573098050195292103762068251954235512789104461406770122248243864288830350651563139621097274260158002649414609041882522930551824089233201946351705928739084139429160315106231911835504714356201151527789991181351410233830071372012218606291220211952128163452587629082476825655072608765601523364529204349146028119372605772265633029229486274879212618950178359808704840944762495092209554125798381358070458434021450771669857674304339525895134036664051455931603520431504500965866153747200380066625053938040183676808964381033786929032338027723109408440617402530996845610519130849302269798711689105393142689746617446031993901740910605976493518073240416803431046367585805020457645419407067875125177344248612494559197298308797566326439398759237190654013285889233967935306730694794850956283312942246557776215933408590360878319809013353093679640494718211979057783563267962197958574723667257752655691483418990216802048159422587557894086888931305363805097041322206106286908866866991233958751057838523036899511986307490923919522684999886344818764581645993532572178453912934756722564159664043637281301245509939353955352276102571491510207889084384567818204279998808859613437501880736448527624212523867937805452990147315045495729211491545821611080160180908702486879057573399266733359707298354377781698372150360198738145223369004850582050536942046451582981173378860356568909437718346528297276677200081894779100111465160857155763625190794091352382578670252794491123361072834125043316978577380201903654932964679994786891334546878009995095270145468256166141862276623453097489940939754291213368639866652244900130703506620439196198635617430831743335874404333053693029485737556356520835208083502835556253723969568923022183369715285212113691123658464903080178970840651809516366014303365867528328697875447177886319285763672431817700451002074362227358187770866656243033913318965565121840345711721534130967852608980065072385812963641271384929922826182665510704212865164405530768629231361443428746282848153275784254898107272274507059583224207272343859200042322660683544655129455025102354683619795483015729534048485896118937151965676031942211534690729271103380077135152854350912087980435519786075984851647473191912395056724821918069894909471403067973695700188160086300375269861794825814591840260252696801025984843967007321776277455395119402505529132090473167726414731282592192538461366746606838766945401572799762441048110821437885969888983507406948180550753407156626046008752432121500075428975647862703369884469844233206909503497972929785574216619814600210549107407135774051861713644194719793078977795710354755951104562311639760394753681028001963894150641096135334090570886910917990209065368737595854708403748330031111831016330385428164189984466813933640166427990628750286099599472667098515986059063956579955051550926958984632688968167221559669726529474023367340182614496030535807388657413246016976865407185456468362494432946641413845352792881719358840235629610242901920286148741373660995902544604314017694734048510625810476535989289996206865152816750058062426307282875439607512810158566823292370955605502057946276394031842948340019084316431650649816277143769575220935084763542232809398493376903102766136505157305968412222018531536018086771178564743988071424438358991704596460263172104211433028966742036987545895524421181546793271901341769291422742710701967327798684662414034640285698229945862912893867314572134601677107624424065830612866118252054786465668343503307273505515405081993915210160642247513688190983533177362437013348196496597297043396619359948477754144963063565689595189205474070803099356146978218410548042517040848746265827062994684396239627699237230264498957996769337339136417063319990605246560625843836223915396370324372213554302000411626531901886639618088389499343023796935536842303178711123385677764105041501065170564944614532777718983311374346929703753857713058810660011977773193307910392440250749020964874455107163334922948282042619843986755058883928832452447107942146343285053349768005041624693323366201944578475434418122638378802102522618395330699353558673520503268361469533151859404594541150205336110968406779155437604674166119231321280454865173002787774790101976542052054573481399518832803963780218311811927282014678893525992648118880223785866369419953552718339144789982232800292183939329058424242385188503294994080304819522587677459966139808033081475337256612552474148243742040730373748456009432672193944641632470716692887212699429969303262852019976880549340413585016429725448703617975133004854392734219165952433093335259904583014004175993199292767265053516551430297386138540279418973510893903328658750354497013522807363501207280207816505312498448282673924529614549734930620333837822964948959163809396607502669956125122096408976833865055844370599195065504830817560750824925296314509996537911255690833921607986929525254008409288303373147907307584392970169174327538548393761276345138109579466910401494352021580952345179236187433653492241903977020478574068019949567478266745553677186098149974259213816594321811245825009270384276194677223753677028687214227758762330079461251191084010918595435778611633508142438475324429057852396436318894398324607230877764584117987675071671288014503908466548311681455415749806489602666791337837122819130606673338911143497560316472816575413307379237073983568640487620180446053255326576737030685200090300344567917699123071423682897399594100882828065538342034247617127733151833906221554025706917167923215828155894078528453922290291252141427421374484662223939665963139991170004900723723767390680887659435671328309615815730865743675849318267671321577179143274424070115412015857712764762642688392807238886247236012948672170155609652769611227344225545882180819863131235949446404405896679099687605447214953925131828010649275501018948667224760851665844504633990454693343643550242715862694645326676103254221932234242290529047720364009398460150013915126240771312879750439702423838463697431988102705338668159535013779756800622412032392398384531331769283899093420984467116223611442343453137108785434565431100492244690183075169816028670293719522115860495410632722386305174892746172607967619666633963942330369993604395031823805334987053564890377001883579398663372000726538024443567663202233888974833308888250126853686224093547624617937419349186814602262168770295491505804757530404948594330622117412333990472584529749169882669749210835215822680697518977005563548819521467254623685534522196909946971735905028575903257621737606216370174442655490427648886316543524241135876270264720070962596811517328771405162948539331305635536084004154876690885731388786888398092338638296279915175523330811739042055487628340233628451308434400181056529310224874269431895543028407551363227074531594850763513033225088793420555181493608521556226595380158216300279166047245852773486563096561097850034181271652578569214893107982517419481658316401473305176794903954825376772758010531566064910105231788316304789990015338992704572604857750658908317919057907950585541269080781368501445208391513372515786629250147862253044623721565926352398116267153732246842060161198603320589825175927613835054813694892671140679065252222437340905036594748487086492402650407133927691115099332560102332339953248673408198251372462919209430331916595479217922698440762330035833033358872524435256159256078514774303422868009330537921186983584907356190416471289151751049099816585592360086652032145287030610367906158126911644473045019136696764472285343721773836548994651823283206765936605598088136443644548174903090447432984302799888747277026690761794498548545036910098768580706971583184930270128418169916492637664406517058560164956152079521339227370103880302201474069506185762307803926936355790914456031371709815712948227062527319401979443476277341287612903805613210129029957965945701422615678577300643737363847556124224589151052797973268029616708225548155655329105699000440689863612654900199137431963179091032741578963032458709299461829330043944827215957530118779900490344671525825815846861668843734253526827467026791406797009171129360919385430079303727245814941785133391035940368453816159852514121279581759889814617961630923752941452534354746639394298946166910029122136909848966970507472728009522470223272794899975549681803714513046586097918170669931826290046159408435207990197310060605112133050832446447598309284801843572067887483803113928608079430034181232508821525031036416161892889724736058879525003046731233862067596874404827144805654919958768380239143333719643602694403581321911841918473489528447554681414904616132068194548482751202417355066218043177527754397723175989092548976481641519515183614141886381606691624754099234661615269505769251134655171470450698302307790936237536519461979430167244678958131050636961286299362071015565154942337410081556286267668907961098534928791456689423144411905024327060971414034575565254574342195805618155194248586117696144798080541395758674372427020725384491968836369985495319934402785789387602743607528002159043882216552353343667529319555173414699767759280042508931462951058173241718581801751714068344706172071257609711256611793519679409581240611515100910908125707665804169184383222771694275916388265103206252390419480793856057363195414860598103357186935900464597141440328575969200779841741668020304229674677554150707867504903833808382042442177493731384037918854073386706230982717559736487806230402648471220078632438584357878379437811493743618814002465284074752375520455451487040259073332147157973461603570077553357748352943815416701346181004988850437798240085042097042640707625430112150824256931162492814126782881742375203960958797790080509355405624873171310135144985549634469908350423345370203207755179561438736542210611017231406404585656052727497789351065272956356556996268388738388245284945563693422851557252050397614627265908642576680321283211964688496980140704093110174006758721894670639003715923634232640394267411653188890418624052259892692986019084347851226527620664808647533861011332466640249903350831319679946530663363582469169006671394917886521545974091930158302451073311634970443426256623090875304032902585815003669813989552801994528105048235398326385324610015601514216869064041596262745224615763785341740750443424144919768097190621862101798465210468094286613939622811384875469006077400549640991052590037112349722153877699241575705261763469591323889446680569667885495493702056579105112685628115387002620215022638647815665233899971992228761677011812351983382286231553258259432538534409529231430786725502409964091433427793643834666184828702728152152058692425836978754362539886937111059751595947189880945545922170713430265556253802514457169308437597447040078059486891963612064143831460095534578675694358322031440692117692801220540348899723176927940033492709434472267668405239951405914291923114673745232816980090874901853914547953204577684960464548488653633921482391278200133607343188621189169105086071374051202315133625057153390075204992006985986256199500045408637896482569199887966091284339662442064942420057645679392785892448400342550398260379469939613484582274231863359709776204859463576009943035433264002583742573231269115154163068507406739584991585327195480823427146876951861492632075620761503125430262230011655437044091459616281866037381809505293737858660114102424095676705629123705232579672888894810660172632900424344888633926658736829881262991449865274247258013544285120893621743121419489061569074737298516467004254153462320898735825665394139559396358535691022654905324036913686407500932264951784038010077321188817112408423050532331083825731246297720973854593748623165192074431334584752694868218904687622075907028396462916276516455751936588689692526167893437402143747396032098787639949453113898920493726037841270737729208562369464606534724154775297739365478744765052934426614570908429300150154704614480030014844008472447945398098542842581281955004694716579229957586736960682061264765979795092046961422710302661063127569238698126260936055874598893443074673128687558208174816547633390616510742089332551587805624098540699216756728380340916319242899488660189571173179673328962425970397765898005798293402290413111099883577611385437438202500795529143802721454441294182682093624547388667796352471960034395469364135829425799204547002169874621561804040001637906499900869573157172433976023308409166988568757338266993115104911951661604320143884742427541296036928380550667243081201185863486297084952994032989909402905058581408942170108539397076352060187762681398660924234462147748238490149380732189841499913751276562188511554119043490999310019319856742453293044257892576356462783393950040032385268373319674572335494739545546455845587497079785893966008547588199899057067057742160412026429254062749406815617070384438619743490261746654291342812024685362834988407809157786180953952549299101576669666306604511844703993333606097914853861637934571878078584097404086862344310446899915450207566674699246443873548078498663236744604866707162471753015439393194582441026695396985435678789096795671450018879954310637037026026057057726546506285839345008242505434921240985647032764393882716193814862761448720938158029645711936809982014344208008943056282552328809325815983669031749296954600621240147096894724226836657803157085100174172314801850096843084452423603133184904293798282936803056683359972587974855520183274695734599966536272540429030462303677172793581043197588637687198131117359144125716980013033365659453903593444440792570068151067524735398732881691440826454516312228719698346919080252855192168690691533286120664931093599604558578407494288562929413093685878077316062340742655118217171950780840018894218224942348940915688054182897484218989996135954684154383161870257768154877175697416834724906353527378842970129608791540580747082930417577372227963439014472392193114452252678325913585123588780474647816699480677445691654419644208836111471916528271033207555451057768962664767003281188472194029311512116294290842379293518478747258399051988845344866382316579275292528160312746525999249907312485929518993291376946816468323324319547149550432918606081584437002389663075989639342482236948114997459924114534984770229358620494452119083955854314517079666860240945063191028570370167289633170887452699650719983253034156284952202907223257793177630767200794247298482714044997466694017602490922484810116264483068405135566039842348092971962568142174466487496673483461675594957357706019838822506760840245145858228669803041110359166870665455077362907261907677197589544609991776406529742386246816467193181085523293194180173474419233783172789903136812860395250666268851203433878877613786277915910119372121158614205738877156077715142202743392102035073043762981403549635972198825134539000431618766632973048947818612312685985662825401942945373348901775856953558696190258433215407108763170511451774437819249916310425059717334297108116318381778602648030825222598552273428718122721539549937488674762398769793639172991423335438493550497727471753426670349020112844846490503601183731453160204352150971677350144255079825800371167971442782225290650971130662327305388996685559087134985396115659573241968640142137134504069010994245313352409542858659796295291796811946769170793332626184377450040755463937709905638208956986185380031222967545295588894158112866263463939022827874199118410059581639182190626869384648541841435308337012540333552195692081075221188106168234035041299749195733288324635102189546832586101670434102814132270209804007779814158888719144397966707311675815998671722759587359703052134182182913555133285458136529815897299225332468728264331575349897531404367380563552887278682405673595624712631497478832386522423836036220073916460442484993748348973176050935106102290758205614713363229173419383258625236264096233595181536549275838994547049864337273093444387830404495262912758052833315030313577850782158524855463693800188605569003008830329586023620095733137818779956613098785114144554514840697359862192828660908198901201757640972860469638934622906862976906301693133840161884588912029564701128553775278233552126121248900000188359117471452827284395755460495240413846570870584595463167397258795675625250200265044943558531511727326044943583720923690205780181151286403212220939621554824950407514686818678356139961228171651506147222689271082415243674939074568149671253286998792476291655116453802612430148870181325051939096846061852948184126864431048210568015292229060284119339827925136768870041851112575962994354425378076057352006028004144404397047864890478268434354393390639347614251336782185428684797225414419028605660676903727753980391080383710735449633751163547932110558311356316745514301522897980107798913335652883678051348960076605253751520602635306743054348272798227773371925623607056420673086441083435150506155966001386237321217904637091218537669364748085857389668152462581820036918417210473460085139863385387725072618019867638953272794632372424769610748585166323163707601435207611588802064597424589515725033842199040474450161768247976527470512022184482480631340053740644361814954523351904163326448116782436987672369150808826899210124051619424450385040838292010195623033321829395583746320934083663863713991003359020903869467349193251795483401389604336244935370875477097561721847703576883084317415627462305648726495437138166079211321902201584424382202468514181425538869558701100539547273338463935130823237401034001727860147907615404610191627228849163302632532553689657127845979345728503297747528930555766087641725795850997811949838013144350487914307042053499062050338721952941257825850805155177067648971295042431928955382309624289089342634584385918219036762340415314656993500624920034165790037807592842676123948468256068976374183752991633361000926790342304066233666667929769386254615010239111367155039855810376027177172883939532882939631327080769798697678401367063344125732879222347778768253436591157826435874776549647466391474667349595964009977311665930415293488507456662415093405946441310718663882483879895317825189091844989739739105914700544735876657706829698599532730652164667174926618884428574429297087442321882977583302317775091333692491406045032354104095190375463831802159718816868761542432810484589768983170320165975975452955192308344370100203398942530298462488870204181776138686722590469896571965228125465337957363482329788733243309577729850197517000147976993268089462178482809358449788277434095864355871290218603686106933379801589258271139792657523789746115458266708070984968888710711805294742981329240725277609230374157789718662865148776307347242246389159508248961243250066871885446061342275025626258005436942964824431888371468645379521096057530315022726775196948954763802622949465333205021046896063668052487258141789218175571161793971827921958854807410252575693754679783335509147301226912078438091470308298540094414738784475030008366189318095516634550355262787731664419843214511575126373697379892343219069335238854752118349680796099395252744056583784668276915364288122116870198203689748270193271552887753275013388494258729872665073412492404165444965773279908061125292068243125776378613093620043001759378489462891929449038716896327491895798680224265850244532391627665434405689894872807571347434456640912059151069918662399555909214863139420960377080321600628224975749182323717313103016168562641378418244973073374254301970103879017840976100073960557531779886105299888098909774438592611877040679903370747897140649585005479640140658576019439007524111054067610436618691937509467681602292622323775973983946502074850620290978674444305433852038231589506301683444735423960938650162705642163365285345112999908773253258535892174026788598116246641207710111933334382132039804568456981129596188913514448504267244373090902048815090148645280664600540867958154223114522748353609226945254625125583142880949147592870822571599398872469695421979179195173119216061870936513837799418793532665215189251363706331617933194800314915440023935389760649445259415237895389442425891834991255264377257392143589192722814509390820138391610158911591601581573754963092427745021275430931043994919884242515777760425551151472215971570306485800785726643029808566283414431294961990769835694928265974978058277887028882021236173831463315410517467110433518056526646945845681230847659420329749868484000944571690064499709103681503587634976394566498434962392908252946169074309544320163103378533135522384632690605908438445800012981073268216775021924525611579788079838684334459629235005674007148961380117519520275792040612415659224799059409930872866658257397811525318771796084079581579554294785628381710462691844749347489742762790702419308047095159929471972306994327543685048415855508878184953588375194968793213021890194936139658593401686291681599374106842521853229200495771201807390783074460349238187629492737718039899163286545883998916834983641777079435089445862369306652935739081713341525685441024341577297311383591171283537092937770380352018099350273391010442339697234606768545312333376492654772784036172184384692059396094495099912927121064108864067576498727076710126292542668532032759932900041166378491824708871865826182963094008666799134985173584104439183656893361474607602379945577187459607305581722317496617280076194571574867698882050919139917600362813229262832849885851044894889675781549892657540583533734200378015816298041156595314296826129213174447025040115941096372866918745841129171650651398655859926622220902517387233163369435476280503266057936720347561058377165412691818359418270693229130126696590382540644651239895499533121303554388976596841814407557264839600984819784638675135424992115802993801033235587896872465828701733406722358056029472232884132452862037105305051842902341773199043616383807467510224559594892957074997707245803605070007299350116872733797106946000399335290567048775085399321220904306695596905492678551605130336465670012309355777602599538988193235813647582417132657726227854432894327340916567774669834692671542406287730201538488934677859231133063579358706409439881555584625832103590862164071417465253162423888118532719307923935458588578100564354489650151475644728134443182012255906560289840268713695158388682408584635443911824176416682252468314603497048459710398785823668965802113708232076935899045913730179494193476330043202504730095798633783725662956592752537682199400900322588079487508007821092841619884138974949381246174864252181381233391551956081142942868072195913314813651393218276064098970849279423851844096315492281750240460928882343595548134710756751217466997501292963662985207845658297286003421277876822506572106901299524894691929487241125793457489232137214290914440963188547139300639470696327254815340273396918342911217611772263743544713634303918494439804607913461071367697973155843498367628795886336177797537979976807355127468806402923726212356992827122822631000298196031919709926885320312521687081163166459556304221963962441986307364934222112969306066183678158003369973876320825490239069178225983388534665013398879083705596338613797274327282382449999007989686274460288718074437497936913251568521081974016937200014187699719604683698423817132627660560626533576461702657598714255151014448305353390076024571123725611601661822146483358493637210903236693412490632373812688557070375385299984733960817751351909591732333046970635387050400527926796066917641875538401376273909884785207202800980660039512859041332238547222035052431092740387136870834653179599212299964579339351948849967990496288407379516057001867432379833360544273540647889078550999305814224812497921738078342812063284773254855038686960697756205038414154714669330679673200388323556823039245020897952458126453364075372125251712636466895635130273027757205493827326100796400624603409359745715776140489075282631506378582870631901964595823104816384718079651674381587782608650812599256511296631651282944774912163666861263539691819910991424265465524042353725035460315083212930926812161100729388178968811501242620608738920234597592969396376089170646842017828327913735604441075263812979350946818523339187773958735079158342387255281988549889343484911176814937484559698577360582453766334130603700164246678656175929338406595150319486538163450651240875620527131243757132224599387207566167699967039863591037719732651129117740545108710908619029532794783122241738078132558579734290912441451427523859335059221415768818337400786297812418929601378372892504776711710092106610005713603849954924205579096556816694304852405895403298128354022341564155383776931609860143099613250169954871401034623272632986208172711360877134176586745988055413229796358725926075745744818702399276123694815219917684954111229960908379408647111770177435302729312264727110780726129464635443233527755969368080781303267194350934360357744809709425934769846767663407210798508302130694400566839686125415161642625795911216933213727209706579263216640818618354329867049281432900424295190015685096555955733475431928716288820857620258557349299283681907891545905494318697198116960236557030141162937312446918264601561863411918028411842792380281666236955286856085385064406831885068493812270534796316408426835403221364594233366970135268271729722449917333703443357544258518676759833430980489158540140287558499805942633009956430712966732451342898812941573468229259032545221084357723943497950934775257467989884589972637819443497340018025003861388057634357921066757808402817135938046182232725491591766727611334121368787845498341029613147869872142788489930204542935795198297350391267843120974873587168132865568545057356280028774127347804253974792672594019182198090824235310692819812210882924031114489710123161144048661709081026144571886009041533404492119156570988881316592819217099513902256743687560251243036920918255069570262652455867223328920368359776216711665026735522508150184657617518228556952389462533150104507826316713376256017264517813793223786030725894664904102081884221461638169008526326721714744275375095323456604779836425518649513998335063662205292088546300870337423594694786079246643354145992157189385576607191590699320680285138004686514348526660458064899995784901094318545249814442973783534190895637978020429604039884008159741933297722336096407365788968268938520504517111167161177721069534564665678953603011037692117487969094125346607797466363428677599235744804137510896309841050978766530992303058532912240935096364109528651620261083242193407702989292871704449402661902634041985140208830577490829703210685150079167303871731121189870215964023656517023806259798625540278812931342689656072906152703266176692214814904529580174903182450947332346675428033835120812560054169350834534501829130010015150206848758215543690236520031576430111530381111565312793040554219828352057101500619698602449580671388013924108944354742413309106912663885713511183380509907636096706494117130878555347632820674943691603070013090596755699208812342981067066380373931274774779621602938530075876966743478252465645555163785783533506797684246922749459357623955110880817888110125581782438946148471926787306906946277288833457860682041835289205719603019364472178921434398146326012687862032847850822596956615980835719013891626696179195989793962933033602352086885612914195773882973351699295457167079633884968825153805556698421879539935503273749365307826550931337139737689268068984928487788926097601490168731385379907966570757909407709263305973924405414705494825645739378196134040314498264442454208433250361092648052592533675307774698395365816514939364279730465365833716968834895699617113784072578165889201488989660248518281208992333517338384072182340601605211575479068872968976841902379844485719838787945538726398322176073711479920268417752823071872935363155976927784646077630879962389062105867366713327115487463525190576050266906593287892778345923155697991151561777162586473566941972359421337870008351076120016913682810868039696246122167933250462984432933693877894093471204911356137108562334604222904449911778412491439785204029152426586784567531523351900122049752051590839266156700031674447321620837267447676485002690300375961204310715956284140031976508820308104907690671698124685912916600854650214927847751038648664877289007965102050128691943582664615086952791843554403553023110412172173084677345629737671290704408521247148330636697499399103594596492051374649089988251232222118616574514476689335076327947987476766996714214164304390265077717806074030385728944647949103848618743471410181080168434952470250863233777177951494522777820894518280522612278960899320779182105501874346095315861706160312403160309962374884601489288306697412321412782103374207645969191218966006698513630359944653050269149670347538664050686655626028305842956998350474762947808975502914742312161604113500837768341036363806798812121949079096479296779639474613573303286559159714951882523889552330123800044258657600261722261900409561848744160887086827554953472694699212038357677700506589660804303489186807782900744663044382518137030980365179536756600990711998780433570374023764043671067459957348654657728073424079032359087391462761050471258776403119896229767233044461401920209066081849962047017256036639127263162962371412931914429529188294733426618272645767986565172747912168540605613563915785378002643613559937478503300098487403878753188044581862152242282147536086808132109210022449719084703954185241148023829839052175584485256869768818125051147144636928116210380924964169653812409064783737738658769353159992472240548050496286661963525322785999751804636004614472693537484228572219156470533774044629063811932140415290970843923036990959116144016496489727116640445779282810451197805091453716536376517225019203714252725776092828458618425097978574857938502103477881538219021839898681190804163026533058538850675156170843719918626219232721136640946458810778307746252824160245015341458386284162549620673911715807264391127750781184963464310679690500046470757440302088890030626755846048337374978913313331842624793886026869669650837340468137403536384299605587078392247189929872026533965875521599707715169382744219803062647445939777307182890209786941347597258456958913692544064891570561385948490472856017899236316624612748679476324838026625915630062698279325887044982165439432842585583652070702383810519554043284409709510733526965621688727315252523552120538803497629616617627080117880402833047233820553903904081930774854739364153098690317067810070134947727510236002242663351926417745813362037484460321843490665383205219967585588545842864131252963529867861254842215101307766024038808799193267357173746672241065203135382129986749860294889700295146663405682608222842942523019421015714465619103997659700268334498527060232793864846182261281549487335738970137897357644078855478145025444059757526362938660073089359641403062075902038433388192046604248290010491111197720067016445559355920795069933602885178465945106734777728753277952862246823024928390921944585839990859738319326956769496415803030520933911235959593398142269751646235699732737088753409442045994660977585190631942823639917521322327502872699628963633478226398730323355187580538357787855703574865370755475409656601166473826604274137007497934439050350164256906990999898849617777984339967006423936517050194621413197937683985228716557006036650692202869760887805136641042274826887399136503418790496287855934981358886052728312345550016066533224022116145302771987398594412593402383704571645138287946667263875754006147946741677302352304553632875491710337609303914537590215282118465549609535368778623808526079648199792432699377806452342509069968945775510453989107064135647672256853815532616669004267377169741358214368109372345908920713815875478798448005832837555030470854709449969762960333392755880843218401292788331410809886047181948236736044169306266615402050605199080282922039562436611726746978706762133874172897551717213371073610230303240899050291002458785179310204083982906389661849710963504107497417814617507500365535506247033983944470455727039189682383199152483311158910783969868033708767515753838940435406334729247502288328936751818894082678337955168873130355066739960537989056350148897080582345724777769883148231567772593924872370276040245398931170101000728185964492037205061019715669789027577375933614501310718265078390243977604594382984580962389520664898643442116149176197689838659619805495583843497239277318016533200237865996550664774175415178941006206081683070239379770416741592165471112358485679586223386708416539026750788921363348887941171445982868579880737862866772042504998950037984515798032577031113272319621859391045463265592127322390541419204114286626566314167021396431399369556415896330479348806772219045766619373806852230246597638905388654820434274499331452536991333859775737411001451043796653224568933793470342373382830251443461693950406105173340472457435207478418353175161071110579887294277330549021026488644185903120213342975185154003794586230888264775874961766188451005818444966420882872296724034409966753124062095696269261585341617263720573513268004365846571006710696769516795018041182248012971327825063842650559379489582444110431140909711526997384790917284292771315456306125326171447030064690728991852665891461702734271985066801988072653150384929072622445249345583758542945661759357156444032748316824695497954380965771756619662139168101583074596188798368849065456906476715472645192567158693802906122590830466562725242837323915426091741798214661167384429455549639079015420095784438952008174376028620761518748649859749823747783299720457120980382105748202530842310640508333669349927029035883878247498241615766210060864818759207342878555297007194614216639458224382724327870809077033943995905948771042298894029942883060095836825832738880187417744239823228756032771621854538985388068489563397681191094503955163283575493365247646608890702574060188840783091671929856722695644220628911645755340120057830859930445932718727322691968992700733327001169768335196258487051465638056282974631697445136359506875818463968922191161956989279550802616392417634566542546393916638836297528206880732270808126392148642687072361922420816424426421888131787010211928046452210256196737473455762544970380347999477767205353058668878800510275168945449007523637335425484433005702036785124949890800638036936036530032705349350383432877436460861574555884732409097374960901484524233504440947436547218010095442036714074614216729664879337101136869811100238109700562369977061036685769920989158434267093643237006606052643947999982236531926048748067764231080948215541202879618425607618417086868198749509468269298700659872074543038347833931897000507107606008914466648162976858148149667814837299379017204456930820929309472189083909312624096958200504679369603811874164776745384273767532630070246232669619099262446508895130959999360523454510053072229463147631152454159244917200754498737453211512001722905790470226023567755606494278597747193419262991858023023651875262722237699529462752475101804275723849399605665375474355135918110313349358102618832649118266732692859735539408407985964292082038678411151026292874935310983722290915489633736796842846072980563325873460398007953119888897049353053817909483422848765637420949141053988282676092465265690432792935241794710098505576832340646087433854825246219594606768693509190293257444070475290623141650373824402568024270808923588339151268934366670266180653739301582484609291745735013946361486074735106385464802089571114620022284873642625804926961717634239935487136947798363274248229620258827394034664774524565535054181795797066396491788109862424546916096961525458365910092845204232574533270082306743827341763081679592143994377931111798692689345346794348836626363604764477100906533464582023126686822727986969645968708392991648907597691983269967326389150985528436819737451185232561295366716515212426449990070431131468526053013034045975051623465136287152434595801535959056330212488418845515443910740871889416442289179821348718633255663415914763845115972478524165264482179291756882311019955048676354378610273051628803147738333134165091471804796120701725446643635079388013418197756482369835765195983361391238007390783297240660121542169121933108779375448547489934311341713951211369627107705174081288697664504681457839615284037193348265800120890713219207608124051438113281441631836225386258538700470905393150124451956854150414420786810226409362490664625977993165089852004878038055424081974524363064350747758077941579690443817255391191301166996263438516418561243300731997849156881737854607054798526256080474690787164725730451637847044470833284052208993476491272280012782588804264412321398334669699710122632552810679333550353145253521138724595558543457519183935867436960063724907916608453364593954103973241500959187310142247023478833394054808238277265453427971230725866886743421405277860371696206457643881331835670375293473907214978110683653787572074795571722817785756926956606971322241254371234599954080977226925644607655378484717390584508957779025669641532752079694216648026793688428831998628449464121522619634785036264523619544200932649300598310052130043489361094351088628180258776436402908860299230088786457689156444196870321383198738647711529049022637540172658220494000398490802526469367473181047405518029031480599912614351573164090798856239696338059624972599271635568388589622547095186979597354488092454756543899107803795335531392255354304765295657791542710527786201423655435646422865453491695262170328944205415389387725465203868492509013920917331697427242799623865663275738860899042516602324079150072194657928953444424893297988419627545079249582570825995937142563467890689713574640887009406435339485977354838939693729266262112509885608762438981813193474175908322190472643676134776344142545463486682519386162746306224487286441506459491813003669423782348009121871734040962802968322393578350158737814238146147724183056428300614886619339407350693947052556611882566123468201807866429063597749030502369739085556438621218791673418335024645453564110144888208219415367149274600989651520165392118858603070296629901165613219312214231869534349320540767391897696972331838175238893583289457861168993677018317830355427193824289846859403855719103391600452747257920389384678508558060318792983501287780059879675108038755930480728488794395047935256461941465789353726076140724528433058605343213756500595553042839291074185190503642380791607087598609723408720312446685447391401432917550257729868600173878656987274329193090594087708131874224148212881454257768620337900650384260249344099124115880667407088438479406440639673820951665365464342901540079947387373769165642223824833344537496287713079682891447182281371782226536077151323277908773221809611621062469278559187074785914481870190980846857633077666172203462997301769604096723738691560079605510027423987263554044136287570548513362583080030457621518535949617606163396984948472591267352079047916050244012917426411391861589730265936616409863690575778472911077320606198718090400446526129124849614784308486807417131314046325857262678185024829032049326632798506049405051952805385056639467882737104912394203467690258652341656542059469630879157033370881957683585210263592289192786813250448816238312666772603322884535454700975361264929321619128526028951236092015281568174862757467844441796247479992482253387887260422682167071801681981954932806519648957173915280494861595677297678556664622041292610445171022702722849018225568313464426900693117289177853402492545183057971267062965134365486454510275401212057260841053675020434275932093553668614268962180169866745901751580959194077365766993401145556874853084402384625856097120286710076279986471950726906024476047599734178634674123020490218372442261746271766209931365916322820247809783200025572778861000619599503777976520819379827899330150930773058679542850115801709918147728815246948155039296830332022669219811426282819797403681644767266783144823494105031004159210064443165269041875384559196958348535053014632123476947819411539751359644133166862970777846037584431880302755767209300254240734206059056183796488677615175122985433234875280677274019075542171352836719975506409042418382171962214129764506468597119136898497671297784837272757620006891080968464222792215249261009604555175293437615309957970046841165946733575736384857084167152380585259675122815264932141271348488491945899587117162742492341249288846296380748861364422900235543923859617649678960679526718545839336787496294425706989932782578344129934255584535505077423646968569196792913839438963751850774902239446059381017714476119256615279812405163101536158597767167835337517093184992172231136088620934451810975338211163393840909113595955265672924813327298823166427641828916414650301254864355568384487504397676874919421026433818735316961081872401462442885720766121576910297763584226241155921563482536394827596333750656683595483560102890294996663256975962353647994194666816975064404566452719636501645577810760555153170899765627948375596710421135767554283413753978071980580805893892833053641149192936231687936223192664752864852165626418891297197985740923982871970181871883471892805409375479628129508440501306087018350935449946377671871748150234897222279915737484370086662585205676209369950339667758937661345041896801092632013204040949957741176297592571847555704263413503259412190566732406231439502584852068085735456238143211765609646319244343219597736989675443822312200910533061056232045325163879565745709764966326462564609220825061135226377602249036179055993761366471285863535655649192880946801292053140519547932335896614248808345658989341608740271189672713374168857091836333394527534924717801355989195373407293027803698479668024236706982424482588682504592857229189415235861397716744974246985265396971153265819315684088582867618186014878931446842424952280286311009152447566178000339003635349561618166532447315302330550594191622819685057754988632047262105818780625673159738962823787238750004741790133669234384082759234661040473243078704256612302377867896519734058074202749007788600027679771717048688574769097001091189054699548589234822668451987319263136792833526795815617577017943456537617618214501871028939508699185790953010462269915951124639408116091243569862387673279761764764290096873026901692509030467922496063323353385965254753362710481641247989856591329938164240134349011651589172717569795285203519009577487510583976867999253175423174892872908382007604760276801708719008361392476718172788520149614710725167064341920557649861188868207658573968204730563527485775274851376592467236005356686166591445795800816804745653363062468907758812889665251334413221074648345282302667796109826944666475396479719218817654302636315940919391253676928661400048615448631873675996735342411044000710833462087731723469734083613468087049870851959849740812604878494435989435884536170863792178039705882812164149256744556703112615505622503981441205631315721738541386276163456134386169770890909536444923470411893556115694065442090442115220868862325852281418646494344539789969081812351270994047544001486328819108068772908150871542831900420128077294174442785171971859151996960646966429120335592492107661158324333619556090002350933659067573843352123722029514915303023943562273622199493133772246221189175907402319781911582088722279335435685802585628236361179143433299353899810282573384299805445416587242515640734843707861097800086050832982836021530870162411115756564562482485669363416843497557725277579642423880352353781140837335693546043655997843511988580978628032362811649764135261803477911231069829300367599433622159359761811631364189742435510621670245358138756664134943983384526511212789474990077079472822747393908300577902518149702619073936014626055604101020472260165080498783212639477871770500836229989879132790193678488014273923631613488818309011561379933321814963193276607234974784067663682211022744404114585980956386392999034606278944415752464190890889519511040835535085837061420316220297205095550330060637599881978608116998721020481475968350319958418081829800573107322319172279433194861213436292375814739560084187298519692276864792298331095317276488136704586520449980154420103400418481950591331399529756864502313337716858139886452703088003082170362676160617159774402053955470109503847499677609192764965152112278026784866511868954477099005984511456055923390207914427565001450769431033732018503614056643211867718843208679302257156255886433132363168723673200722830192281620551999829621276022401758225974737330462060729103637979281492102652982645751249051086198091668792905121843353884309944153993792456898191331468043979092611337360494089672505649141962062319737800923705241320806211368993755196423202457335703929653631844057733053618400419911048111057029489776985889484245987625712818193010026644105675403083714460958873995259015427690297231664740022452397616068394064414310652567850862769432245083342574687582357177777952919551773064530596394283961043561279424397758214220374261039139282211798613995468694584818775446399380017371680632499584358529994874090609363986712299105704162496844879207388068108101596286302152134043641860068092367746391226639372306294324180845365007239737599922390091170621191886975246221890149559855750895335761127716507551016523836757621914260545627931364112601257593226785983023217906112439142572298231057684255514875281288845466328206945887156845501151914659487290607080107576406699443958372171022024413540200703282481471561462304668695200370409359762845772987271769348268573031303505279870148500750453249924949075284715202661877967101341459332217769910167450297372960728238228860732231987137099825822567229205792326191563784254573848453721611317401698822819709382082130855593248751341291369893193262446352056896332264039705043688890639042687446488526939046239428362631824543019140659123950243491595741428988179183340895241151830458964847044924066977379172261215456325115864639938649170822814109841374680247635865226280331264321816914827240474149609712876451873427393301479936717769571042642873334069989609433055143679089426720245281775889435081703614742592619634722361668597422752637140034683634134180788138312950002592816341643774923829509811668644670217891002330758552461723322193785112613224489294643328435751155224266711142416054114437017549054215709586933577735841170595334370096204261777608163704986687151034140138950985228217353294920696153453871179617369846419619122521099466104959037949013504176613158235668205624964290046128773153998867628470344237967439754022683715359581936985851699777602248525466353748086343448659496358124770569074256879652551231815195533943631283903128299384234312511991256962497722948102195804644594615879124144747881773659947656647422542680654956703595932864202395808497202434182121339769602182202544103724575891910368098437566428783310243184541593917044622089845527575193209621626003389630652173258801237783038008792460908205044001675002850175524280450031686890744490975946831056880626261304961870342067783784859814012778206033705280461902112289507839293355539901665063497106570809338621867131941457169071473072365319593719073847006668179792592125904566612861491839443331983335294838002480106653823615437016482459840506511406450495308348602118038142013771326979487406301568951942801126170955143175271050878167433057408369610525150405740650413787010826898571202823269953140310126294483126756497803402882299198943082457881512278029378847536067748802587755248906437857315832402197773475901164014603758890689450494103685226823028892253755795675630375451809950599559580825954614416246920782169884637281365433195754306497831974711571018124450056313464865290128541756745772738971606437712587867878559700587354308316783804708881288841596952810379212584712040843440017149792033024813304083544881611844080649919506992230838762908712198268032653665557149276260310867460890769779722051134188495906718764369287522891026816762808562117382021049292567098105502097412713933165741669831364399869448150291468974872590668466151622910674592006572293592692179323607435190717552544567412194328231990540585374592817083820289744942798554474795942969087311149318726388216255451165008453168605363978642168004981904993842474156643424531850701693506065548214017090468930205142181778792863887131144519263316780042910363188261407903791040732924775529480235386346553385170831148801298746137803724688295515277847873677252384518227344428971551883054742428075513072695329898293770150457936591295392232877990289232965650342916462160583662247017039823922704272139662517005535705318131940317231953251980792382390511377437373585002173322278475925856510899997515916771532924038511429157977477942952268551861716598901094380767470381986048923881441046018555353752649029288561214717508659908053369129508277820887495164627337133604956006548685360623173401426641073183360385130197876415854017351888622210222064425821475681997551991838732723457882376764764046319825313058683021248935515696181613479453947232935981041143571989947523398977489392152659124714052034436392287877151371272866046804150617383180373681518994257091905173175092011486776164394716993795216804771753810477750670114002063345553192627363525236581852576825470507059573966244548676001414954011285784941426710622929531884614114771693680108216428345827991698143618731610921872270879498210880416473041398772750339158440184422750086250516148820984635866978812760841177998480833920337555666350438317767352365527040343376020693980757310859002570282239169669217673261725206234260911535044658075852637404017128561742983949150812830245029568754214641574763883645069911165472239436321255703257225281653484809333201801216506369889121656388460345731866148037518523341410879429213493178812647725322713497568516905060748077668548674013395442570121731206440671838826406474406963585281513219718944040573370935653494857419343945057705971874882919238569032700298749976401883778002359372066441314171693323298633950580228928781519685773747268716786561286236061033150578370291106127747401090093506135141408732515188616325487288953249868289394698162395516848724159835505225120577445901309525714655422603538654175539934087006779157777109784203973591688271906594978197058005180906146332621303757492140086911235548531908443407284363391340281750375305566274535206084466891774757030487673189592717271420196331542722227798346458873853628961382694802229948704688528096733168177274103539304158174273561360974875941690410660398156686874630210859775265818608531790354822684531532742927028896783057957128423544284123044420846480299703760119206290550508775688193486526813742499779658689133055977032395727191327426584999581497650682742154100765800039552610390511233803582189429130945262471740676380738435022602406563324346588011678281362944177826877021478306077669857012655382733805040625660286154251858964479243354658717624009808086807141293780673533019332112413976032900238715135798915192873163129308815675959781869103034145881345714516902182332694903019697997535936420447040448240786407297146113696818578852226657410007568016819501700950364797971674393402221602753284160873194135211875306886281891755390927215143994376696899332181960376210928149073457409732309745865025760583940508633365186537680689248344137196814017007317433662012597888992985584880141932519961081697082092870749694154012789157841955628552714338305793764837196422067161999695234492348021809597416886647684652090231188658317391199948892930626053336695249478283198611094739573666074414642810217286016240278892981763346323111956747502928368071371012920410224123951083455959376879574155483509499775254947752281867060847799243430489950985465474362388471245247810815565641316806050309563615807243691285317133188106269837107428129050150169853480519940455501052342262554258498990916462745341386404778664838861925207311642886661781535159474170278506371972285614309592820594711039106237446089529152028097840231495306287922145279171459249226056117874567348511545900746338422633830802198662123307581610314613790681570849760932843774941667563217908217453914732445302434160678323776877276796759512437471483264717935384198363102236695391357434232042768813928537916956086757551688659062444136170774353685631168368977729005677746552198092704066028725963147453303474351864855378112825524671263306283233289641618527939024245025431643497248339946005002990130851274162495709487397080959028713289424789398947541674955446809869382951989964924813855320059324137641663563277004646793901820501935750102956219399331665533514471264663254989446598702556535876431652024132880343216433644212776431595628037012083957413394694824389311290345610002228652832601989770595927456846139756356310518148837404993243684985471485147164927217839070698408781656514320230891988395495476598390873787956021670102691407318308679456988044438042092961128131800829087439790392203192419250587092974623268339406958721967823178676509978277011829320857883939575360719613696056959287045151715747526083801226121379171357913306447058493350767339586181123145910166571678233704183075680462547743817876877306251749426709104449970915099362532457997846041857094098090920522661704553746004580844406344622553889654624177340046585703702317600905111667472702433913072101071214657788093788217573771605906665814517167046121379257158206587509064276993985696996887230461281511052107117996164174874694492645646069735642005373680409981151560062983686746356978141450072103645844994019687659919352277151414833044612461587753145483188181834969571201920973993062762778350672590018305000977004748004752408923261846384350165765075254550636423306233700804673365417779142438904731695762977010960000177903894385009285199166015472013699880037962890896909339449354737307404246449496433563486315184680944758102364850990595556345189682897159865444274066761750790337044943934596514598045111502472883666656584748419031938273320785685264621366865107034572874516142568479697686861885401921698538564611238322719545793313017197478972691847590189241935667606003398097680434098830092918397394811917202711863832357986570125427835939588513617839499096129986880437913630034428262779618358700668150042799322892432443498512682292304267852104188255162276773087135049532904938276121269351563253986286351942082564120702200889480029060244497360360693428210558570335783473125393129909988852788729164902214883856743328857795427178862969492133467859677693182279018701955377000111855674219536095722253481610995732912265399284706428639152976930053158064009219338561052680271909033878829328858789101265080961091486262723756562872169142414719821134296647719007620135716791554684672450666206385849295283319052416525938282394197508146414353125917782390793486900984740370382308266379811060639099191084040925976890527457738685500058371434196001340683167092643581540521040980252342070077968637315746524659371283348590825396045765157937873791921128609159523954949553684204853598883302485835223522901785844068287105073529911464876386731610570526684251137884784146272267993004514087869980157873992853837973549832286781995655764743224975473451020230934074493399872710241348143088028265485313010398494775260963791265956648712913481477802154217476493978698600510153850433921828032470178298234122263245951191834525552800641192314498152983565148823432464627214515620834274586795243045206504790767849310693671706891744592434234837359665124034285730355818574576597088570559293106361560299774981158585307091963999927283447958799493383401553806303680457217458804991162972442405466232627617088246928064364113436086176279528422886337522391225209706113145432581579652620478198377518842707863446943919187905186384671477170399201624872360876316195752743066569535641466777745421225096101121975678589529623875075128523905190220529560399558890546794816216434441269235941827290298881792294885584835567924798520836855025328104234404270600318415190624942798868918867751125696270714537655149932159201123480332730775655696150363199853963959461107749574299550739396667724997363702781224708640710563495741255653377488149837651043287048902339360591783234983699987359786577917212722257046603827256462823507752500110277791542489139980690560460047615537325724041352027757918855774658874301533903984960528106187243996876408372231585902636788850200356003488552083091482074486878333799232344624600342123743710115644500936460274921075412059774605638049780730853130356888403212257573969623120903605056344967583044866959442633472214786375194325644398551904224622526519188921544989108694682025166549943947410400237111927137878227632329667765804977653912215413861027732371224446394104023481461677140170493118249298039430032019229314871579297240922905587578802029052664831765930867863740976914121383789006783792158436263810400983105218872026629244807915919061963538658239339827770256197871423798926021162541778395664824976430760962504541731271839962896846964608344626913892385960708187512558057771762392325385320568095068017722255592965055949773509953891841607518293155092848767754520456249529663561528232937308532955833191434335686208676493050678024198812614992790509289979224539098114769691112365561389685227462902283568965025652846685982565800474049075341141251630653670625442437154172003544144677041556932922258895593988329706647615761846443765257157145304327128415955535601663585639604850876138300561371977791005513758229278293855878492253008585029115990130212567064477160766164651249776335485138462778533282450534846046006256202413177322560040734470085714041561863898038141923073315032439916255229291529203871527857174837428424989105044959222589084214340612576894247198942589853735274930465647792783845285880632045560176941456131953073454705749229978491546031494131868188160772625326258376701279601052678138563908052760934094449886986986943187911272306416342588510267436704271901312220442318258854291768752918045852619864919350160531883765904620791734148617650974721112312772923692266059347212423826654467377004633760077216780026391052984258320158122279886317441509474475335514363867510944715538721447122132017036404298178848111106771410648006212594030159814817778495707637993098784827664382764530478828347923299615188857476825051755959526349661741502979745638873347275493077549362751805704495758037470593916469887277278335728923261795148628428322154810280696650585121318750218768529528853111964743461677270980766622271807371322267743467589500689770611676606609851275156517689606052093469146288790809470875697442602435935015743625740752114476704621106288587754284840886415699938436599736685376357530932892400399500722201082277276470450948081192914854831325630281170139032123126629739026532655604633550428883427224524802722228755177776413779944626705670467399474579245969130529099077513533919015296450270989829707513894830566514440763362680906696781103021040790245751404149408639031980948911610207184899476083910663302721349506886103521302603466007085594857719116962379482772842908683882886924413130260039221915199490735984700339583059070617647990649155358866710623194954070160783678323560113767658004386370991408198121920443960606577044872537506617787456557920910382596237999631215627383890476971341158794097956566688221332227172653689706505841373415740893976091659821164977272951246376933689634869566106358680084237889376554732751830511591837866045467766445625777220518556522231989651140145623028357062770542469351267099475827885040329438782538497370515815913360874399137114529408479443400920825779827089271488592838216624138974508972817440869051700657622690349825889397163102846160868967464674046015961121133551278072598814184672507737311453125446123110952852653454847520436011416405553164982998466417698188593170000997596548800874372414804703282815725509506831883869474908487979568029155672178174304340093557485411074131684790724184469666794484794372361140827583523614011190414891392899217509892778786480855825991632342535347620831685753728312488293420588410766679230771650177910419866357448625372463531082084062505172372786772760528811270675747627749426180615939051346561482496780273416998843365656867282308132632249595261058652369442207164114746011752654731352790811686046216875472830720391885142480195166018800163788609354465695155020769857084071866769637440873751489199804418685236450827735413044714199711485515773588324797305568394346662809689449602567456028670719673172159027853097487853566084036784367819152365832800568514321877547704897759033315668455816338231471016091944335102944597968565009224612764761628149807415138710823640116056319287761970305146463736371982543413039640772382686098794843393387224663331772158783802920747393774559226235950296540915995416727732092267235195620911927428475417177476081454223820284433298922098250566762936519098148564422777088068326360573899990711229593723957472703816523081101582733202648679048492971591032426661366563183323871386418123936887454716604124365453247241543402387008155625572559907130555756696685158008414133007287994822998437130223178718926570768401416404335800009079820736122214876050017160856116865966215872673649691045566072576436652894611274496545080935624891928910033450898013508706575272742284705249874208015626638647754535584872492633797087253874199961783243008969398361978960332837799772702830947541041705252593178856558499565212050986179984339603213885142074102206644557376164019055105967795566168685421313937747908858398414299790562257516537855206466420975200394797834535638053701123982265541695413881848629673126347800855956286538772182125322161744094457439913177395312638488771767594005116216679275683295818794290495705326951089986750425770407850454208113339673598652932435079482345041624631372644999819332216574250752938488109050507450441166379496225559029007425432958844505681385221857769185130766726615785137953910274575566454534171769601003140405777132926649647051452186084725677319548768273394450421198653964149798169676800915039645887340246671996513883368089467060318640719664695769597046427366872547250692441322038529487589054226467984860901506531848386951716778731216786537247307709538490959935142882582674963205225507837856121132220880562557024030456601003614953178605152864848556665671840183234786662900138892930059459007755768122434826154643922402324056930487401177451888219040668781118397114647343119492281181959422414022155130757692378995455927306081584607241651278366538828584892352891687232872661834851699192893205626230519664385041308939036152124874784118361190532713925091438031736671966764928672717459049078543361179483813694603977232352755513916671818273564117453005392085875089607334018984548820253770862639629067911396209742866226973690525427917814927393349412401529749363529003006396330434723965204140708974183259493019343620215564503991769719926276164001302098633513306595230542389392791889956071585848511695666345001538954125559013836072098113118521689793362319586711689012012781249713652107131337562553243706964289243932947070506675452682687609890361394607715855455525993130033981744175979048764518383758038195206341336699915615063218730980519376513074909017934443216660642560518660347380042956056123024400321195211424237791979614090830838097848237127264160706073592328872386448900432033959593903460780574496654263169580734266478891918343646062052984029742588326104246876546518353249392104293492889105794369464290857194968340659837452995848704843343252612560809606709983028544862735811222102157005076756814610556587164292426400323881288786544704439415319506129076084397153276070893182274022623158398750613054406147853751855477935291921367726762159927053470429313391937782051665919768492787941008483704097190550417892635766728560899997198324129877988815356196983236332685883182709266844865613682004032932439279909991040304888643997571943795490173973033930758534465934745477911690501741107224748620195084511105100652490789380690359181023049697565314824679877312517299105660539130153370302671604056433767362060083641435319098291377832370525236803868508032364977518279049756272604818516366502197552980181569068415842204163554424062184142893460210777854014174968584886310422744090248295856948886842397401605199806414154583730666978856497400707563740963566867069351779942213964978010826651566378698170867230783210207025231659300664153656200053273105929385754439254491865895301625795511890209031759771104730666799671103842630460364685843218279890159811831007847330422338290819165865936083990503123072094167529965755436280167734187142252078242872553992511791546971740501951001064517997607623092168217793194892363877206551925085472813159425904907966635898441101049908877660385694020008179296987653388636128304058457177033408290744095121406852141674849186517003279379517162872509536406823141865313485333820594922810882408163491963586585497068877332677635062158552198350605207182256843797062870793088053404921707815690219612541878773984570514505881246190745460605775560104803044826925260196922266441307086006809970720348974850856763271679660064717021353857077795062890362324128608277192195606902925595002621244415256612943538541885025084931962843381467576488355236236213508175146524183581113076121349754003792135030801480675578582046899607445521056683401948287566198728769551752752305699446549252648559677434619388178267540951801237522955959966091888962600665356554597824005765285120048213109178275215501864270237283003921588672733330885754447736659962409460521431000284854480210602002446652097242640372280015568865009112543069496937746609272291324397093305604489908661219227849480734991753727099576414927342227026912748600329272223231185483213759367413654838984365673164773936220264014235129545193390113094529344974210085841191876761369140571360014325587752142320460946039121305620478583752994843056196043933464620446904514431739881881834135448381305703239278945818980543315565816929575256117847230432023667995722913371228762083954969994549028455567353283291494580756411550562662213760906641804072555552957352400398326768079567187822604718673003169329734206971437812647400219376731363499108483904173356701014594325377033157394774980433480919278927722086921785481598134820202591506079534710284271356817662934890383386418035804414280726073075746297897935973204092442468979306285930151239720444237772265409860325942692610987129761331423139862143674839018922078591459987904823696677874084715555975103290584577014521929394673613379064600502286510942746066279669664202969367765007799712469535800244622900511341129511037987453817362124940775955860321714410936589202630964958530764839286131645988791250324871871790317216331019679763862309438893783930820201539701374257008833847977344651461268342024041384024020973937938229158931057987027326794054865634349588056855501598893550807365549618296059581236268994845379729524724948234250836309493951043472411261397024245427935657797741863350333702804418382180209713145023496977763368350743929107716022732000046886980951503335267926423460576198153673843291642696650774479231757433807180986528886533919598036452330671841153362780570655103890048344559101343263651375847282849770825967170803876151838656191098323012359001254030752315070743441445277962574733015090690220404464448892345664050508727453468406934246036773425642731680692132074075444930353835381713889240437319393211402589248918855807562843254873323869443791036472215532140484632262546394229112759972398847869796674429264384308880731260071222154933860640500589648614482781062457347433887582433439521737150929554148459794056219628995342762080804124402227365064083444423652021922562516448384675563377632294826081444957024847511250469164470589229949629992570774413505151189700593026226513660802752325025994427623373455294327546845220987451895626303230069240547494268090710927355142179175621205923388130146136426793740376674859178182329256095009965719722450519738501580948640823787048692618709122521024053403939055719773178855662082953155630309263438980543119679778436078142947176039925927325894906915682000711862027253512609907220952408397641174635834298933057139758620022608991590476940794156322891704843311262920622385557945611494688376648385479884849296700864322081558571813111488682034990075193066246554221595695698994316234130551282499950419213983131504962734016355326200445876968976688658440790768920484798826497566153482231215907887856225030652325406991027449390943041966309039965605710613606778572203109141818110834762115066422679960459516426996187432397101886815223385069540860872227730406243058290267617193852481730416953612573348371056882388587676851346212192000023885511679991684454822808707337877455356701464779969286798057924869916895123668288695143752755614898196530146527619800146913169238549928442216482940288013685005425915367056591721546745674266596129938651183624020804291318151709774621305825799451625144312428190771626655746687623852020812582042421096411145858143340211370242835179982797812130938167794588301613743445450556628450564064427019226464173224948870778303110847780950753684639917402814264890438269268187611100101801862404663277338502124864660223062344209613113891482771015713333341064671528648015700222663020378607516293581654863260277311984669094755325375078171982006220427083026148336854145091032529719692800445925277354844671035171027946580485994492894121487760137955940063666405356816755395767344287724090030842313202608058854138013664861403805610640027274382623156283830625562248479134295621074421831771517663608274324497670614309614696148255586648389182185746939810280075306859953411181804519299049934303712783106013176033573726375919623947885507965513572599506515616324270062364183125576766372217510436873139553058570999087868234579997237823587779111111711425798767017177141548171355819922685607269665592701454791372554053334089741953034220690172628322182287944356185877103141948835069376972883433770543512121009269152182456931332857926621082431427749571551941697384061074551524130422251956493425622539331131070851917222932521144886269231569738622620714622455372519694028825606820922812817655695117641803537097402165188161474079715411905257551437412693735499714062199492370132970422185840660303446960136007255044125219872120231646231224020762021602139078753957176300826686652340711849316577963581962513018117756180960018223894249049168758525088841138909370156704242120475790291579092933677087618166208367223458721249243702761536888391218443326819910719788131429904707088003046573801931369482216156290733528280003284699581983583814500585562580141853164203040774547500003849932515899817282045569555845289984770700635857136757138046142071212522922004934330113158866096313933348787716010074225480142996688006643347502746330546194504524552166105378486336169370975830717180157427084387113586551757861302485935244118569460985184990474560019333010271730176934024368738748386818041344201535348883478468972931931481395945915607193314344029602122357341666180995635179172171115787019452052148156108792152629509109542733062765010304230466972242453000118930195801047456251463529148882184211540147855946620416200965223919769271370975028534357546926311216713572962533003040263848147035043002136581007920622999929454240930840396857639627927004522959277275915325148214134056657323061140298007434996550253328202191243342657431866665479800132063961126931011114589487531333648516986040242158548668177206697813506346188749581598470098896504175710468165891589813032496768187254027422183635565839235354816211585117159153510029404023423206541899914456789623518289130623579771518050246081622209277227236241783827317876626787355119760281572082363879134399810362405401434981493025081339580584580362067735195131024525153505697408024739749709707360662923568934264802638897886607658488291526539980956913513516165242067813063623522178964331250723696541722172872866030355851634124973366063327468654806553596159444940346751133442971063226811220654481762054812336426838558381541204255001493137584074415998922754486707305969340449463351441198881095148181334250519746040428530343626161764317168551371520204179480123284453947389161569186893049841206920749281167024275872454943810296831792169476313375315004849997228145217531778972731138201415015420847670563645273913046361362251679103641192728495665491837494575274907108426469328703671630954139639553629089129702501883434816564206560914966956470044158098557616672467133575878973729397640980689391565117863412748254917892338750458400796510750555114177122392733466845894399874737317401193491799385175419706317549116884959053217460937575238677189343649124329262212643095696804010443635096547801003390525477235266796418888206837677965245781869894268126767410264147340085774001077916434752606625464128936259962636942671543774466312142633923650588645186141809085629653987074999897752038274610201661545115286691683385027346840153010747042581386998749359004868452731463453442428020054378298531133806497025637184595954492289993291945320113597600630172007296329634136115536362185925243484046977337648399958498724501239002496226514686622114392119728236753214048935470211600282377666618498418831549483789178287150103571498776937692939124165276068470636149225777516904011044309242052200033808430561517628625489612710882505510998636343960468103950370299970968636501124552460193026961980264521868159447786003564624290054654313033524850923846362825914557365733573613923172867601699564791988466673316939708253092502312221975898760171832085231589375908000154324538055373355180895094153978188857132330394784386591276232455752294914747098464657108177337054295364925689476352687025630024034458388432277097066973057700432196104632248410234300144345070312865207925272842672846309294485045388387734990634952248402099446534457305631723280957220606949061336415120142796886561041311831736720349039058919363346076285778206379519063477137397805402175436966239644203874929583419690503800563424967124957550246718498887772104779170986647232177922456304752764569508621427002688746631707818575021643845134764637489391187426958035070086070482664465083533072226094114813217471414396828634007570943728643341171341821670168441570281003953977132679322012791616895389509658027967749462893870273497678497167842446383418607987029695982652210927326297783002249391979814582287129192308100122097437176670701661987655971141468573145363661665308373781320350276614457049022821408193566078893104295367153428772495325285085469445921174837627580969437639009112397054855883144783312611448697047788231679182094716654368204712948494337023335345168449240898602851654045037148649329670450036623649038158685717476882400671689895244974731898268821336360165257297761866895773662528828859494954781064688911154191663218814999226221670429893547552954807308653236462630002867447703149021579983612815122084986144450130781880525606554218067066549524445829362733678323885293332388032084123155963939239971273518219437457899324093547593641625540646176630722198205059410775817132096090377523972484740029880166623275065112136384120392094182245461140668160884988753432706146162288231021367355122238829019094629452657789613879330484127957311218208076425587204608540597346893412303846978330702488606845625294870060760955746461303017999516940197269652730593337646238597431243092574359210923176413198111709211221804944373158639331774096827187441306464746098830010494293010295661694846644020900103690703179265873921446122778202280280300940122870712280752254207733847471242822334698923780608250218777080120086984515240722506732611244571608288872348320836034042174747776520327520271051310600675683524913989464928231107516455613340818557905229108504960040562143224698248747093199029395620383529968420261983997836122087617318489498315741547931692779591801614415746216479784089711168151658193671076202211555721599377875860024066778784816289070419130038938532129018688474889014978444841864449999473232293240795154649178789952101029632803718267533128065164943562724639171524750270341788754064916254400973311002402344386540268296646586686616625259071492283391414845416481459111428052903552861025786847142198950756131125490090367731340050124042013406898682184222630291271744393048884228132705925112259326724479235725284846022432547069518401630818400409566675791720095335406775863612649873243548494266023135937318087979290485283408909739693608909015601634121185454665517949959436273004430082368799186863714123281602233966979622552471615262912792308892275503504599692258546948272434635378676637376901487179543350434359293910572263280608276580993312764127260025458927450351056507331646752748384911466416939684285884334170954165768044822471739922645952902001960961864908240713275350471604013456255059198423937479517598842709119314081698894958900666728944705629152257188688876438754733410332796610503882876284370808201437895397094045993501781460102521604661401064149926906300744725232024621990596372519184352943247702918194004507427097036189309660504429350073138776555480216282208754353990759836151044923364204947263698716384407928507855443494071907979338178562899337502402273542117697913782340516041464487067929226917440426778797468662580945116474920378995902067122186372493346265892453251543477240263324316380151219987956296133652911122214859468662202019605783694348209342821894485982750826642658516183290546485361994794457250637704128810250064306192445840159161705609320814685610842834928429997842051038731768964334196313344222176184400895142875324421656931820137748979956053719318769816375266478603848063970995972909098192611670307204587274417587442444605248763128083563531882709712354904814217581723247057056164775747344030389502941094585445112036894852738072821748500221632243908673565255801548651187263680381671144144454966431238650560933600912781735991191927198693417677979948143634700747482916445949921984640826977283023739457792716432666704943925872899532087140612926435647124336471505282037890337361577104060710430014915895531987251428498462270663904808064974495983730147633076186025507601208155154989730359803357224457301237386145909589021381605340248021270196961688686476298805988070841672339197269819911212015605811445301604560332660709934146294760180593365358230431375781527641405459619390302466030523052173983496452172100847044668981358756282998017148097264723757165108583898188814216982299475768089604290671630744349614275509283889659394837462501090330761355002105154608935679185392955377305011838377001037499572700991385238152143764031262679382944129626914005450048828863336573077311539664560412730987843922550439079106292664777049886499270716121780794096284305586059850307594177928642724828707261807159473226914091550657807557810901437440781860794979446941225649290501007339286728982910727485098333495322555487207898711983223020478226012339336612567571230695694662297224060867268276056124629851080774057378533098583442109242960511065638588644918551235457619627347309634406851306724875226329076986583951925065871441309097369356594078663165573646749522395431853432688795355455409891662969960446843597677080049021409983220089645661923103030638167158511596369870813856581342308719696681588307783373260923273908040919505543018182923183314327555434679985039950752217398344927262590007981036555391823928564538969610827578821142092370225149793412170299889239212300272562419957562739133792119254250083861839044932439071787344843200474110324878294759366729901254481424308033792487525005199970964763332760768270940458745993353547708586184694417911301090062891981980802752646313125621185872109318938839038231060504636194890987885430158780905707817530826884622102906073629755246604894714594349361438317677104937132394044857283437542378846579450785914237278535823925693425232621003923772516034193801522692543974725978772614549191792693241750315952659750321578147751163894526161078297704771488144876843630755016038745709685486527486983465699686429728696340997734683728361160813811572498736558562280344870225030619275300341618137149747434305207237270193090659282648495826976370321492679257976846140045717537024574520159615055350732135397603012804293656607460685654380844063249416779064497947348603196883019438678917265119198161344665945769777539133546830329749712295711516619128080354064604785991623945374211931282428270464341886659136639525548874988184307421242417931768281953204531864317354649713484536454854712182817970805794341053781685042880679509374763717584697163360701696428736058320019421999649671534688977555226162665902070389394416908460541755600042418762951106928439041329588299388424634319863597592748312915377316307807814365020382676522506765618922714842617807558220046578620083549337461303987901539083708563125721480529755828142639407419591569366370517389157236318557064138618682695752450259976948994863359712341595109574195900003834036161185291740790243055224690380365771124327057419242847498279379536607381805407456037396347468386724985308804585988110985687887908579107225014380438515273280377134914755122566231646960383898305635769489585501526303804380148458688380701296628769543595338301528423991996931216542826997163307804293569562827768912091015825778909030752620463835071876088774638118082224453841871007743452678874458019117311772767017406383090820990536494143502470258483429812494353195020455639773291305497535511791977106530360621144757943526040098662043996066265137065414143540437856645612837915800961908122868504835699549542805622877128145039580606850965128543072678371367390365051997201792887208591776637397913835912338692754464614283269358157145012346746207032723466032296993928908844880108093426671162553315847310383485835133902371330661823722713960679782010588902702565587639681240349692883386171603013740486778095078018939591126096460867979753832273544570630649870073856904201178858635497313769826194134633074335007830635394749853624604582503172394424270867451150906335416084776512581517831958004361867800512945157503699976452718984855043286723639199523086294388714087211399164400948585016318721119567641424693878335596694917110627043762372984107439929250127695026331396241931468893805629395002969721030247732370165822718070490870335717758750641226070252852502375219180761557174197027569470260966506023494154728659082259784635712062476323013261033291182548120027320484796479189894554088824436264648089367685722888479272615114001251811490456780658657353888426438912266152836172678288526479806805706636907163157790205258868362376391096547926376179517184415090331167631124752100928490388438411569367370615944125215763578884167064167813119456933078418178574086549650172723816451445314423043558338422797985801072683184755950253686880469993271768520238742356369645612968182353755761955140338687165540226234719648833180056086782126275491457882003914418731841929347525310517015969837751283096363130584792228017572929713375983951495749261766876270822915844696335423853817492109507525039335409969340594897988417109742098752861074070874001684077753878305949812364071129529602096921771513058250065475696765271917902732787137016271369542177909157517950808711367356787289175913891877266519304128510607229636458212255711226755579310245129729486581099806344812436988703833898592399237891063013523405880021340272651433102952487855331020703954020499882765808814673693830538075770247103198841820701046367288939685694979568904759183999028652968416002916004160354067571515624382572303145172096644337316804154341626811977931631553771580075087619358492772207849344544699600988448207747129994053932931825728450261965587510457556232760621172420615273049030221894408384379703261524257219277699455420464612487364327449505697406405244575629098356344420395868027661610334713047638158855361341008652161211272129905793940538586480210025712181958712980391549883836945149238633972314498915458162644069094647622375992705028445278644482441210750547875730744170575392668529546738893568398970440154357464143185915614684433286564227027584026366913685780680180881627114756381765923312873979536035382882277622512560678043492234443962712381891049245909430716241107758166274965693314423054105699251902124360057555313034414566335595647431732695187663181449909746522030744054893080768952761766468716642293280000428652468776594485874081840721277072749170541682895990035376932512828898786157245972676341851246947427032292115883776656382823406518840178597183887535614297448756770550086324471868576753669103876472136624619550106142130572204948466060626955612089657239335526443990348664775389150703414633688096886476630567515989873047161158902935175269151114032843734033811095845199718461200128578827588421831873385370367090009432367232519125625896345779320174493078602042159341218291546963294766418610772247492497958123920433247235930326649838316347857598960930103591825132376908556061400542652107714122271592386244214134855142617846272040918274386629870091535539616099913348678975087417112267955190445922582040762538370185615095853494754995062966668204674423929984754920367009277958379752787635604379577561401207978512075683200578154565364702389933659264082891431988718688911547275239527866917359775457687902814755906352310913122925744797058423961360161219789212844745112208117146701445631143642713130487397223790593213917179356968766194640673500992996290398778348856261723168738100634515022780862712069500746979663963756537531507525673121900582794710115213749085832505289806896780605536856217485003992823140916017657781949290823370610991504048816843673072758344362146679152574137089561144847834415706191856038559139513174333250047154400076896106389735335111665619358405571320601249766609820108228263225502440305801579767014883303005406048126544981470930229938284419263349928242311542834629269238084847053447553733271245882292411819252529866931234834455776650687912791129420505838819578234220729986307330776159460600999961084454369684010077730757467926307957678610737022861010634977975306964710954181568554843430984403324164501999527525095038193932650543954483953623233795846619041063235560742417613051311274482193673844625035582656583202861923996874486155844980102081769052187816057476245004141717484596306480950705791613740512472290914032049221874775001384243587602360857858086178341803278298755597690872968229448008695250441458315617838214457809063156438680851303763885174125307007992189886086869107205604584157247112749958586473509415901672672600970279182746486622700869708744937669615569770625407465423591334996171381936082214372110260288378136698508124643713544145161096942095717922137809997885553198944073822071919912457823069741282025496086465380980103609639624594689403322103638039110197031436249490712370619495218061070787477620508639444314727767413783657867625850455868210213944073319855144069488970591169139039942562860511693415915008894616060312170978323606092176168616391754251881023225824645993720221637149657769865061450088597064004579107162127169352411896090285223573056064031572589778810763225884076515739279974251045776211526741857689267678201221265490210995890894899071050097089436932685817168921829425734095090175294816003148343976601778151973992718755467512656933591461074740469619104751094383867392764914716182239733866268015866184948518995632588408556289458543461171731791122258335618138064243839644474873525909978563395248603055564095609706759505027610038123970331094666643338418342384521800048921550595154743527745363093423501688990291130143961921805038005068769551083424848488204701907129324879184462185989995712843359872825159169900271625025046902796641055615863584877623711538561044294673138148134993226383471935755403353949350641666097156526315110745380689953857848549057148426226488632896580690552828126346959345849868172649095344248286976058146387838029853916545883932976744863505359992968439940911154234697578788244791396525717660485614596802323113389661041250258138784901191566015556408827095676559248488930962918212519479894840446118662796777314305865128167497673758937637177429252131676995220082916064625756058255446351030168230176442176010362696228124187419047142540688681030620631201090311796930410717282140010677111038337149292047353141702528394447653300651500080746030744932487941555219993904225679399226237735794995528293402142249710997823336975771584904905960739249727708911525244125259183747324191326241772259842322409418018253039393351584115006567673345573134211244018515974842311917432274070928894904743435820122017346726028478521318690249922619904796403545949242624195185283878913734035901841537005556290248834410612755940959622519707104724722310861306178568323810824641178420365328381987242062961655888719102310054392452156051466259730691415333430775363671959674933725006039221005800734367218062157422997313440492184320025400627276156413064161795260659688946844610135798737708839933748076473822987423075295464938766725035696439571564729938052749636283115035933749060929353747387771427675355084044526305122975334210207419732641506368048513413897299719834285631109640330216576771478008594560561162734816801763400378804504641829203378144124368224349497450086949188237501592897120264004096757550027831944727973418599328394500788984346836395592156183285760622934773252717126187066886696956072903170019210524039084914853621484533617807519160479736977887835263337618344543697998915051043155005706591774107764139059539514251096467735675823705488518191279363794056138120437524245257074665630155164716702576354273698545012865823660519965233539396983354345678785004507101358457616567478103624511404901994295696883982988980525116141468214321367570120143358544199965684991614637608217431893546866288012351648795201834716984741247884283753835822339942841600576823857403663022540119899641104660340965418561941506635450835839340385334132165907528090482805449402209710259341031239012578064235685259982968758526747676051791041163130967874226401700730617619325776047314439022358382933644222086618120783446939798109952006798916883709443273311781063765459766410086363814310957056756485531985207712796655330548253448172835653366077643238584073918521801509510931333298754064031794184291207812474956372320011868426152580715207460684810926812923541131445385167205598933203542518181637144165611884582221613767805059143984813031260262836155335280476783551606926697548104916047331616272216026975762319049986517979819692990943361413682417820478690051643204641533128118505539356526814946054371754658398706390377383895987039947139530147902047918777097186484860217351694172553376242924164864700316837150731237010067563026665482220232165540748616635333360854872031366674630240930706098480295585325618333128157210492189308396584818333158843529736914134917695476776510457649696579809978826922340407844095391521829042399359064424018395173463380283235941700741603429610210046344842051232017551642203608424535085830365015022461209176244550463937722932615939748624601251811184832343574202720610207646326935971624267197036883892227703260584986275580873079617664363873814901173628011593951773217682337705818192488579597779817642681748925555920102938094885466660219741452227359712409579855809765929563892722013755520692877125696700051199310013713077077224752072564982431917321061678105105043321400626591065838469276544418869862208667158456890798136403419162570635584914577840167017609219949479769156877375525841619529729203661463475312700300632176913783969450203581539968604705373170446479176686756062276499350081436140226122483156701472661148674047030133201633195966077485841202858864738520462889016787447724294408083032879630731271023810783286667327212382746779019008843343934264628922332297241903577249778852331430262574813051758377510943821853448884932279846924254091104407820563283868538812595391578427109786268616538639094416787673868660071741394632506748981952447236643241792536357709380443413199927684696954038603690390471736581677090868930480017356818144747188016979497103034833487552929100154622936792294520570759028576616780555727802174272739934284570289337498667360449117095945149117051997090066747581365851102172986495670255380792152599980169492869221686772703798803409609668195645171082683975651353683574709996319100057542630479095911331299643156644976260349604656032457008565774801428538671442797652643672081536101933094712385068670879558611546829552717549369973257974852725471190556437246712092698154211799911008294677812722456377875100441187648256069789952500376584449027438385476531847643757629775386725703596628324064935091770362310147429603409599726576155140598376436225894865977675758288243558535497134001769158559140778693453258400640041031656864641706185645258108997009747525112859007383955939758678776333883824879505794883229904601858535402315685474668502694113292250713051338284583393612192360610630442970070332643683459630014478772944870305580062319997852262114765556973200035392413396888590068223717698215331581567517330726532502505103518851004643146114790985942858274723899788789795641823609795872292091874801022259563789757519693474422511440969200098773127223070911754991551206485628222633546227750286638716491014590963665981499231653596719097866691377271895734061890390306755185278628811649698144804911506157920438396491435055728525155747102050586549070366416933172669030581503399315520907761683462698995432320845287720051069309099163896540171706983845174513675108674852801910611769340318016069363358995721101484483471135159848050267410328494039338391302364166792452744638677701411273530119531133010481144726718095932291970138603607947794903220271229513721727672439446298902757914149483160015149855391624778225385005991849709854713382053619605902578330364931292498468757837384315542965251927233579698637557162231341748818837665027129177473359859274057730854263524076922932181829846047621042423554744426078689490139942337708240606103393531887716851779136819351979380488569996045133748647530371722363556254419028486832004486928473775784518558427983755595677233258158866806451265067020321281777418029209212509331539070540111724863199025630966679879278522801054401825943203058641690768004704582451853139802879643443712393720808877322011260561479412356738489586841244687131664370652782794253514062600378489742440432006240843183814046935621533315764233637734489756401540897991565076804582030411205903177183583017646005835954163196919592217452292820044308692120003338480885131738052463197692143885848813365779820275142813941771286837008110041849052194304855227094627897095893735456884390807550844929257419501161351240582223712139377429392602422411958361891255997678526603306626351832408394292908044648927118149342205794631610716585091244195418489247477631282155711365726416321763409207159836839230782138158966730455766824483065157524979035485335548729749682963651592233055301047955383524005096308444811999959151598337636899953987360433761575252330528714753354856924677029048377866587956627049408856578970450027615392394549905027203049094560016143211566424138886265178177862411709968948291778157153420930796562219927109465007804099328438583857574068833056134759286356787352443372278904566085318590720813608636678254551615640210126338571411986037321660134228294134490991520214779128684829717239710639914036104594281906819232061905944128817085913699515826992449273703679349143454722635368998515655995850385516814656154550480878976868076628199191911947457666054197661153267210111205321234778627484368769067079416698600490808608770662952924805684010651323258472603134774962664336691842020605945895361369059559162786869938428095688267883787561000058372174261016954721605066648540153040993927759675396162776260178717221326595494399535105407839816518471739857208097117691778088355066134413649111082922008852962939754979194120421537500280055260500880414305060230752924474996625733709673961017362287445853552723019699336192257678506316673696280437842795987658437512898267505391654071167184095677039018467667952162899587960779312163300893820485629343040623349716546093434623592182949924864019703373736050353071245622552476201396723314660997718584908549375440134407499467674627231441047822688648626984473591666924260509761331334980054900535062062224853198703727387033822613526829148576957221794050947740441145769212402933900150397320872012622022641410394994690082049978819469275529144169035679164946999072672853231048972350362662007618847469120292688374098415973669315339439798298471622493533203982961181614695821153054435162538051669184409056460394769134557526861957015247662935002081753588655607655642677287902072703925849483126613308210750556989908191032508743587138623024265750764207097491602849651530534629878816249959882082328335902809249695137172796257200714004308122774831064382017555116633299310907951658924961987858174875340423366098448289129951031232703642087271570254993743806138167363695244546675885068436900335648907613255802295335068831465366859538650170187359921260671430080644195057236583590740207904030068268358923109167869299400538318291693946840822268907627153688568609561956366634437065501912816513742892219956908286950517941051223769718300089059425194723759203453776689752978686378604796543244299772295109230882005748719486163008665875827889947059728469156468573862476328364770443648792368763997009644304485040374387065714393698785879477696157050496054645622019335481280604437016337950813530033266054988204741326656477222525680294883567411964042638360866486474233017809159386745721416662285497472384558108176207655241980077052360468951403923293520998128444382470174356143626568557347048540895312077024006703953413583866797118312753079119929380216887658863641561230897288069672872762309107455715023167352636480597142171599018738182251666707684540792285779653370810660278745795973171211861866027022341061402398163273739997017835216886183508586442700474147384055297082641812577641275365715954068712855749408456702404180011095227926897504466890859441144100143888250639458269245681104530939561419410396739696508589040652690721470572191448486378693031036560315674145292282986854520704171980973183691038951909033110519214562668480530870674370381745602736363365098979076956855448031403102349653878470808607804434808283357481775955842047843324005237571966994581652962861309763412717844277485596370405615175874991610927105673725046430525056615659642506395830491962315422633023203092014173576515361989652501031173353398947877253297896902131986888011527288985079434643449747139390468732306027261675975980319782725142162728920213815193074581922953813043314953312145265189601045996599605509057827990222632416028955045533521985335533893694618035427114009963559246547845645083216225026282072592259081811019933726236648439857741964787583960913001306099483403135146341425382032869067015285813242285388387528071551444555405561039613784922703751288210540942271084516300713593081955250103353362481943752835409408380257237294364467269577610225652856560867876343670175318539099437400759583528232130136632113245224684789159912960421554745649427976669391176565072530914826032386618554956507609771802039867947585602911993240837253175149048359083266854247001586723558805312523208416830605878373698722720512235001635551142174349031631239465561991829090985039698529135563542756543799310575555740187168000753675609467272619452314935288396726940734822954741579753342124054786832297500321393624284731104745539830146742477826234997089151207368717293582542004161989263023092141988155296719726412478955559042570138805733311971405002947585982604949487741018374373047969823951001725077996099682959124453306643501572927586000809820746819622756224712243736030919341721886381515635529235462287647981257962914100937637532349046471683430927235306142394273863674803304473947617855813910708162565066313632261975332376460265068657518588192602137025851874073044750866503781318433965247392918595988798794758937034170750620966810109604268385673664626460540122184249108636527690282659922748246953700307848722885805519890133492236711729177872435665614258811836924258226894701374544273790222012559313705127934274882804232019243308029485223564204483991098609057645209045111919150731373208054479669118471816318800198244878097893533953947787857568925089608237551521323754703317525713595720090995195737845286375894773743265892281749175921814372731747650752566912275671310449644921053262399829379261747011770370270710091665960208178292725363448840226345541252291529859820387835277800211556707881865191670976196629832587698803526760275382230518749147800634273194839231780852925932926172732409826223772964709495302454382984668450756588618391227489959342569237973738589534909302796933228618622263631594641827118370058817778547074977680070581976352793223261928147197655717693793485224889820099085620004463910503285909803798661597843268239015173643320875027867413613754308500319434502269703923870985098874645860105324496030298861642038055536552946897883957309824692109152659662590062516915069124635624144299610032851435485155738558787544869416984706092793514134022223416968381813688638265798914074909452239455943907180372541174910603771430964830882573668474703583602932681059776464946940803371762539342518156935587974734610193229964853396100869880186518570062881548214289932732047590220120698211287500971577706310398709105252239341481355531129997162866449226603273141854098930049756150760754899150580937767266281393601459962672921090987808736673479634641147317674488621801864208229919564840058636962421348293272433277666167793807984466608556261941842941348566429585953606616263449217087877823998885843851241109597154007485617173739679705381509772100903450339840056903523751808763981403149398454828793496721571854263550193220769600015024000376884341184630657446050792921442936772718911125049725460760398795240622460956054372302680023092077260688580303265777730154694436993496465810303481810786055664465252238792682556270431434542621434660639673493433419369426633267818029493396004359945333321971878615924242867123699020009088126591106864330632605348788051761884972071359355923748594038328328308884223720640842621715691863676130290681806208243267127809217545864307691880782637758035200211517623231119357891446978282627179526593722855172202222057260279248547962309888314307715309058325927462458137105963231566768771612518607769080192822890379141108850009605066402456214015753499759551600784649958292073281429667953670750470667910584928684515373496885202992028650301801038494041381520097711166818153681820692627769298719207697134640670438977349612038859204754329700920073712568415434528752246735401288075349027541483755622363732406201842473960343833106206575520084118788483130946356615042359594739139888632197975786899021510838939501044755028309989875042957936866069363070826975284776520817907074707673231282126184410604840119566446371358086071462937657010305551402066085207476836521033974560863940815899486437338475559729475063796337806934459784060653715342670083185363835957005037416569174356502057804350511708036259249728592040185994944155910169493668791614028414274976079193803370491714755674590068523325818539151740198390670769977700448954199983950787488737938345009304895061413249655670393990070408833335959167440015869205483778217190038995421851950770885295372922019999096331062403427922023968746112912217200662102358893460255019672372835370359951402701490696263466808046157160153419701690757249224714900663437445692730868083529609471864967249795235647623309630860329256563039210809610358554730946194857229857436445349092723836237662377911104317350469719107904831406234761683411968370183349304415497349112884547804373248871341409223388887401370946743727143369552884174431156698065243911526443316234102438902542532408085445519826487458560044269277763060481179269734612212486048224340068614634400816249879449821876471719695184056950605609300289792581066623500206588088639789908435880080046684435373425010599041666552979253924968054142670120040338261886294081547503277803162165720851532628315412509095603926915814165268947969379631363363875007242317434915215208179063923105287524503752369897287017320739908242914525133965635091154442436736289991386621876268593210058288251333524151985791095503332716159508503071769230237657280244405322926300552871997269655359971298120151415267771664438992551339558870554650178537709447606909046674964440649904412759575979995331359476822077268565692648269202733715721533705170215499559893973889266309561439420992609915107793647398003885721145307053209487663872849183032323286124693778411791849040308083756400620753285477562458135142198035813207349780634494440303290527372126525602282722500788577440468514201905490543273553270996978178324969590483344544550466086450489387703205664840480084076010910376402775671055484926813751651845255563323485351194864119807181597961545407318548076023516908386490056759064591220631948972771308336770804681552062816637853845592059110976513354089438858086854001555402297992510609727373282987435295442929731253210082730080754152170550989143830274176562241296348368470790473331814914849988032112891813597195989441007661141482021718234301272556521287630028283557915889909323785884630754217770483812942544589265295273118064792139677602658542177617498378970440139346733389887595008381796966265355722615640324727263831409059913658378011686920544469331850239246621427842409991252711923021216741341196027830161255656386532426035668071516029671168315480209912983591408926042131351198869425804611200937064746780746046173777352640197885964018561682923122492755394826470532185093240302353265096797712219040642875393920758641928482487023086970730636906597958941863851061614157435113481170628029659643250297826040012619215577551409901026220576889349732032466161944101711010491712453323780699724591772332206838156150855323589669653309422154266550818779037346980820824128596084966722494295131820420540387084075332423341170861420544340572904133103787865202274976174767450535024468942747178035224404752218683120294753972509261145763339299825101256745754423389616083633870690077845461289696444084240479749572152117722068119477507731680959747441599656054880199458793415328851448321808072596885725207914467092257948261708891383214419580850945968563504952262489900947616770496842036290683513694150462007671931151496964740206043761945267683223659903183317223085477065217212791784455142561829489294829130444781859513203007727741864788291397886054983219123965222477331629310062520508987159425324027976680257401924806733335610907164380423607277259375098380700378362933074962603206945269072934940232348067352795511760269734508080610761930983124944307028564586519829796259816125231035075988883483385049614231216137091962225711047671999125084601318978068533840658013789423636482346303262780374352879240136104754291916580569211787254355837666778683718486221040750544710823332958073827086398984678453904711414857317641137480205597931625204444865743003946162192864436871162835448793650790313497615718287950229131000805967357435143987443819447821138270340438497072345118113235821890523875070472530400485369596796235003646313785472810326345502313008120256585822536652461740872380627254080785027394026239797833481383467405664411592708094322371176850299299426971053604413043542395573596240539842738264772376495427273255983073520318367204550005459739556698470538429754797124996101652987090598845690539187709918800095073023567696872646168499551696486360751015982172711984044166713246935198310069635409063436999694946558354964180767970763022506296253551216625881251533086844018963402607526286862533905852487199409667996236739138988570234608076228909076205777897592562105089926902711103857472531217852872011815803369881325101759670102778212196873853343001537076447860592863274644619926184040013449771481271353779250629953584093435555525009639273294488255431706431420034115826276523620509949422730604907469458972145962879003432501424906909492182716052762640567569214399679170591493400799304244287949612413724639118319067162694709632655718466294836532412523390640224710690763860600966599776105894559720115723658672334272021400721304918681593968104778274937675209185175849629259157229007436509064667031684499937077508092567827127575708177165679316103013877667699727999890752858276615019863499976222143117842753387708168343053350681663958961235490606594837280613021293523816953909239871818191845999931725738058207194489543461304267506154745550040553615173513157248745517192384790313969201480863227223720701601460945131679427395777361246880378184744301936352156247778620112493172537682652951944684476299239376143076235613318800279227412933130218148938387485345415861680627465505081974834678633153576118055192522355371958734689555846653636008948337083706490336127979631734154531939471324269983572951929959836994328001334484237160759042270071085235684939386551642024094673665888812504805395407989889004656915632977513113092069541281466452703002562500996889608072597221663641748740382497643686438703098510358603149239900559952559755252282794302114312187939638505761688958032806613096849573406076160378903124907057912466004984126114998218253046476578542409276748203414329586280694193258640368440126862480759044976209471436290415956736665351208338368417857314843608761761914690934580670009190994430225352427410153302631303647082161012848588009382093500621455757180867303022581525529294787885282223931988848328533065970455177213840419558982441693173968363065558753171992488860635290687845581503542075532795049427079096912306581732450314722886417688335100880662419152064960906097116101146631527889673260583965296745979397077481603796541354061272642966411124232715248140057032905474588542384471880385196108819666443162425703293803549310281775027844316382816375446413842980879125524135140635337536102487521949423591786328631549553140684258350561481064855431605201387013984275757726972269383102096687342400054553032036037725572916923358344039182465519806179902125661494325442072220768917551532313562030441670963709700720436318016844730650603363430418006752533422925206615023901436877995974187847189431368816324515446174420783817429239438271928757908000362856236063691671348055436225314628525944948770435518150522290878229849069166570290115384604210878133508692061674025204237348107992968469125415874588756813032496051802648247613244532322303146098823804850016258645917831761471163520649549155453186085235150972517930722472908601882206674074860018461676929621240774835076591389444203155667154685107066252509608210833221537980240038207226515295574150317652104406330082387359332030379297624202588543630874945918176780449621710676587858183868649740435799285982099922127518396772465315054949882129313651084227600332581670569119352368280478189403790988277296576624268196344474324914352757965178540539588701151525419742799424463803189867171473741593157376552146593303007519051806410801281762177860625254030392292046746447431848908860929220291208297271918754562416851522743514120350447387988299259025610724573307061709847980086363155293069880569862544244121220466830724061348408264892082447040664165649620495486258521187632019765128095229252893714444735174861843183524700929380525223069193033018218811228108014773853225879835719180857181049999916816328124234345003051537835830934116223310561101309457053279332656593930405292197215636426791095643151874990204910221578426097999590383742338217055544756372802784599535067339635375257544058674450850494707850500224886081815099241405297582238594305007200155620202487022745273508768203632488085953080789320793427261446345776780463532575758439083834325081953857018754533749703662084031118419369571653291535943440934763831148493309053582203268410478010111358761077721572700948801156526580564245459235870553855909705127215542195121828045544220532272345117770500155558553029346926009075463342587870064970460362893757421819188528638866336350584072624508514519377003244820252530191157506102573648999788703275368656202041955061545650886897709777655672700536949858949727676174494222616643664739192665475532772610048087843570571543483510550605079194590451037917266000890610944672370186187642868261730415135460136255205247735379309336072239428329575554679907663579186148992906041905691845799256878122162934020262207558669288902072954748562653179555557928299651915437838868199256825032577317577026085352278250193240037248997896326552637201690596343137798638120485152018254995693599666918158887386278201680700057524194626112737101641780679230001626472788468428056978455378863424631966176234677081683909030444524382905665236498590843920555649008146047203276735316590972236484940920300967683003251104984015442458692492673583513864425881118611533686617880677523121888344992350803547457344761978967271881858223743896280108217014232898800151792625702482409089980531382303094589494042891167531614410631445471447806278682996376702486263657353835814209639550461116481604368958047677832475668946745068941530087964106484348677876609063023827892373892246119797411139049542819134866773393360344351560247048191785953273842086868614466102233819152625439395639888960377732712840889565913546171420075957822488550183185479790745198183712702480183728868402430244890248315083900218635970879630546575246472632610649311239892608762973624847017412594149769634222458133504195969530187752682421624270224132351917943467923885342373510365612428958504466598866923874465065849288407758791379056987919306750986147950467559077468164857448488083420998286225933755524463102973055090921903511819712737774997813595986401518288447978267304082113124958650085216473667176938799521741106145882269717329048912752568781270854494450221502039282232080770071008559979682288698268314369622156154508015818649042526090834561173451380458972600226413498186145904579400546789960317485307697912795321761876710689579487836368178530680983201285072093985557888616297428535868175513698637072723585358754459296267191758912825054422597148447241087327322857119506395105150430373535653316663372259535501008186454263296416756755186629720639698048835228887693425277289050995172299525739508050939271168243589555369782419587022181405640018736102075950406540071198866687097960806000325686196866387980573601077266406691490168196062586353699836998208510472669795881631881385747003744593817303767036383981746688351526850694991614282214359117160626764004574463672883476999652132373658528996016992529543318738122467502241192115122211479457883649417731714959459911514853464707596556053451796119058424232736211065503980703305822721111235851802429144885576324034199827309477478720929348115483330443294659634929359098500292507495583158048206385788786670572562163480097108226355487444044716039748251484590856028439636694913475716609531256416403252634787312492329975807582343702730496965359256120678321877956290197089941574310537539869018269142208794335707727307535798005140295185592468761483564910730290495122212544758513405005831407950916500841119384019101972767484644869942057138208959660912544910081676045124295287109847091399660371788353483321988585408556117396135218798827322315672647709251931576625968029410638700330204117100770036585835975153592946995079444487184833082815121180139459719783529275806341138841022030345271065438404083039695551098649884383202833994006724567238716666370652265764982351555673295207742048537626657312942177061205005611533124099708317403206317305222618264183539419132318615663158901101743096124268225859276303866729181674117560311607044619515611933790847749019122843796420987409455572037986037830646660501746961886298245724242993026589207237330794497917707033718150292894250111759730539360996604841850376176562869280646185765724030447565999809901939427434948143084164777402291457833852044255561021507109270890475664362291729000880805992762128436657004379804420464078185618829225705073874874317471087144129669554552570933306195566158207971269270580718599939845849833948307562075142394431416468066833981374893940169876887381197716787485458855243053082109384447733785911337650203391904710337326990557534994881122584729624696647296188638949682932091592992124861244328392910028219259858322352660288857181008502973969955944597710560913599148685409230396167055150174883049415052674698472379191838650208007435803028252133886246279913331916684103598009963115667101998701642028020198559657573366194774334085901785628166582368306588373669420153911195367786797089561337306707054272430961849603186902696177037779772906371052096391920725023149285817708105500769362444040370489122253592366336412859569440111524490120318427983831432578459654156844221585508018188400427464212350793841953623062210446688180404983912164710871627783283124254351280224163560594595859022564356527924105855809562092807910741976539205667445262705430593107021110397996014188037526192236909823475655241942502211148926180559063374210030278243718390079533478591075550841973151480354721867271887611955315827880626561447927956446621780473638845306247307811861980192108703806139639629602786191244599269498264441516064714371156948227983536094961466215533621274218973287237155419378724357564784942135165373259840874596860631086909431386869585771149373856505562757531311822194369718467353483041042795625411025302022634710354060411423424559906593612267016655416324813364210418382442464921839477035433349724594153427019404016955740306058538316894058628468741940256485718503557585796350421341831393529822940613689363376089443829935821305350715910539239052277104503837598392043807762806398147555629649390803433599082416097860641413869943666877253353091046160920645859061476745872215830569577710097980157499047695994197464469029992518724511570230952395334835312560734083786255787893326057820705794464944406199079665120507234622088907415987988230110820507063465149539889910652149401629162329828910068461114554958019153648425226766182009524755022856443805692658584889358321863782561126169647091988623926553262503430940685223353857774060059650467263714145592755053884963753743791262738661050655095552871144344715334715806167581816640844563680194408530385110144538688958785254778224560132439958385847859519997522841548313722495803805914595143268094233041165128458434948796697479543915959715456015286578980905713653942683461410081467804209962254546965053488356733878513537898419767679467858090989784102520354111170421685405447982388944277549284381611354019826524704676623474673810026639251896776094095403434186285490160476542303303976360372215406809948738103830869122639562493400896978009995545108211018993207660786518119948507473885822450524071913399391908387231112789131222766200756211640514669822679480617722745554572086685373842789962203686108871404047099402460889190333902373621571970752693554582627366138019800292989220206728705325693249946184525337368260386206878733814547604986607782842528352461148518104175951385977071774123843194243857201191215122764514197687181129328895749119584796914221668302814879555462620708623022203787667035318642338078668993300285433678090746380007748279061735075775067004527110058975906267697811090685316703506875005787707822233913760470975502689704095955825058881491712681800020119330306228056249898396678360650058681614425550915908778979867624139138175798225293679627622518548027660915095254214298622448492509778825423178227186319416256182649968005127732234005791081059676252825107575535205987582177762863723790991354145042531225702213885656513415653483233438378222425830698575494235003236221872723742735490204484531354879361453708780188649928538570232933361016920945078261259051310133862477112614284835495004750738390450991876667666359744878855595281897435672317764266346882302198827604829022072098068342145593549569785317080576096185290317942260258670882381675471641334098356418416950888373369299369324109071202752322625127634076337056842575408040202782033906734547274475246619512421116535605493568002740413439701661413927236074324738903991525331936625597513818589163327420284420825337064978144270917747656649857360935248580252098814315458043766387615222693231893065539764835546478221121125182754494556374167066096067344774822382426363124870314810857191730478361803355712942452472754391278929915902907119250482843217179098066640142653803601011274500868608360013858339700186602907999171301788427126661836749688926624958004576212407584628805913688554977182851873919543975987224981831356834626840912447319059463435662948079621062215065324375768249593611006402170654393958701755348254845837556352992657078604046785429613875605649146902396018047029910650269137161258383619468592526227046833645583439356881445330086770097957605164463702942267539632567078868957107686920537291949666018365333676943011812903463402854354074766063445022407629348206081399862170504804381689745078875165292156387023281245014133668800252959778989384265026088483991873872535600074400275031333571796207785557898066111975019536486448778210643522480051356523090370405975334661186265394864569808069766860369459879047951566422706221443332189182516160300456050899349461739232626425489880931158314938298116963674646050917680228510822588046131766923044446029329674859263961502044974455761960384431400319278680900986183091111679598021694699399119436968556765962572815099835614377350674950470290183142089604869050684723384859384510979101336749748031751867088854551899589641026554007194632867542184407764683948602470405494800685258284655495407880838669842308668278279920635177678918341057684421575652561809407632579637987802635424057138988648532550415817054562868958959409234816608521558056466249175352947487391433757889069787714446543660051263925277294179271358723828239692148553588606508279387649671486518458577666113560209412805634783458463646043926531048359389367573239675694691015955871365538068579905909106526293488330169757498189293812548073193333343261110935654207071161500371239250058979407493442929225129394918523733401067950136749412044701938005907086136775496648142185294909108277888268019637827906883831646084730806018740786694699275655354008982810446118139639113860208800548387906539034292805318154284053255754607843219804538417350428740567118930877023868093494294074485100553879787704398013380116444492438770735152537204511525356018979560128685705894383873954483680845697802349954732209869529954596296933021828852557060522636670939585958758952147500671774750768699691392225849659371579459054015862531215962564103113187160576766545887839154111726982059989331618680994918988644758273628525635853193130089310865941039030085236388356771261121531568394233087163478679100401704178047219982630925747642309711791791988070637035111934406045631264571198619418282258496179719565030370718168199889884336742651783756633567346906902438117113205141190559297314530245772046470889491967145240916773822401285052068936550821776126542368834722886654819503019785163313538874048422416590294051694179260651682547369643498040911094296199262993788943976216067016041377432953799780876174322636715756652643477335834701754020594414112942981072485938766527633250694574808530955285463841635771561585728128504035882224982283879037008368231768361817491616964305346657701779952575926998346346938082280092865762071626406709095161879973855896559263617169982280379884981370662212196314118332840275094835436080607864011994532079384526831767471820848274223232853712913275238112407472723951144399403957906185407116519223386983297884868840274845427801044044513807983274723149761617940517212327182056483587986709608813480308875634998874993620014126631503674749066390612801400359097949796529503902961564039095837570328398188109280229912321804657082270332121382284319892080176818579291007959704492685713356085210782048581412354813260448523031219392598189016396736745216910161404699585895607729901850153082536854528045629996541822509684783445644514748062089832075249504646401970530607387304368582174775955671211371526700167917756238359744208089523749052821249696592818103043662732578826027580350259617502831930877359690754498980557539286494454461143303902656934558056256241951921101987066911246736085212750540220079189352027423328555211783748409134119473583630062665405322692418575325777128461699545746312024428278769880433601293189718342481333187555020432594349122441742196844319965323875702532024659149781753315806420496385009228627870049691375594512655330859199548862369188215873675901573647831225685304454386649209000217870812127856549413958147404928762106416661611794310873046408753349019536105598681358628481629923129131720459836612260509700158887437212095441769743788088343501108176428252688525083670035090460276366811675450639638314355944943972294866938248506919742088007916381235219209456763479230271008649861673126507289816907391298900657055989787861194242079519821401254109924800966970908655202617084002769177151956121468992176994844093032329927712034819403022228068584699900383858609828533313718571247596474271058210891420567256728262044102365103102194718877051180262800304437800608871785716746090803217538927952332156976132838541480550228870791510234980977770392126556922950952230147889400791374335972898086065477394261184205416805783409830683018228449327401732296899584998697771210372708004518293436189684087965765078482561965905192649803294712067739310599406688013507156206264051084203735680914739803720799455872737387642998778321978874013899783201085896846805597908957714459006932405326324747255544487219564330235253204838483993179737180970309172035903922644251218947575135963561655850032639678122351078588901721478978801392744822703013868761054102619848034310701329579622207543219245310917565411460352632088811973678355518641557665845890770755731436407637978471076921346707007173322413581989872935008628561433649711554281061105961364520677074322431827930371649888153706449496815020247480026593206115252254991519184935743139571098185894793949769888058497986207482001304244828150644279331026539461760809952170538273307955484567387689953202458881430574055128154789323380359944352529386268286566677682466683308809494728088409333114383937881015219064978335764799819948724223057311898529907147318046677803199859564665112687999920497087830105731787479874591117629116841812684127783532974770325196609653292928688516262659805217361861749492130180417972948404604285281517470159962776417666812068642818326818397546763725452535252421795401487684782220281141236121676553642106248616630758176721535343176341763069553580851738968983434409246315240560323650618372274097793559562174780852288700009108547232303959660375613282786881322567904455598894591234213347972640588053467145008896565475247451142822788071422701818542049118239804290248290985633818761367939051533196940965914517688076504671758308932639044103662403058534214823132003246113132455008359320237271015230161613571800157330594037824100464946842958296378192946924304694360639676785502709955845138381758240406903389321230010719044841487282176849871837408714597758306856762422033177476476009167552965643796981463922094430131250436970048715819990305699422527243162203461305916859999159019455377299728776250733776802699610077115523888117477000665665168980888366596171109420711041684102755174124680184032135134764224268829243667856496920288628832146191231510916256671767125086277840626776001759334610932871809044285485399868729530041965356313020363672927562590995575998332327245063314389779084547392961660740127483073189119319133276230438117703447640202834857182653773905619692777668658547378085328555700770418193792815910983552174670605666450404879979678600086160329764450624308673299407729139270732129654721085280761391229603366234762176677433921766955749807358372248347215576811753954371205253508296505449426931438333945481439963197677371644357904389885257583717738526683951217133086194349611876739268998166852817129934818584712588085338919992529216253048478410969588021601751517554298199142027747903911091880642438278423800325478712751230633872399078874881592986700957498013446339168951375706232874747691219279207175181406179730772529977530713416345730546167703209099241310005698761086305884234926441238948915106383524918239173999931652999721122237797496145318054163344712975774910104071722502122122619547312177254131082180973854478823285577537370866863200818359873778432462313388450381167523089864882696973641827502011937928194209561934520685738907359998992680859564686580986833658312030993716003034406623146122193359292745979357253271069076329322669689541996852268032698522515617498902916201941547325475095412490808088091761044639594754996791239084460050682147137315948260730990665692884369352444354220696987202656929012604888636251454069320337656806504959895033848852719937987552069609081326232963157798563980626862610168054148272106816525636682030915294444065166236916931934221193243611391293261623433056250688773317588988610596877751393015729120871239641555350794401649836741295789566983544950009134679450942092317516383543397880627437734876189840014753145837484569202893469924333380588958939641661467678915344185785924779039401351572041739400799067511552410545860697625213314368833719402463088507923886467323950331370129152478091449164138271341106553788514015489386517448301973331232389257208619192135251657945600562567349629367454027157634241153393455550294861041381648742654411900348291909587693903949034325848675631071756673561293666974310979504465364569063699480835533062094378722360137092207283833437794529440819013623720705824398550631084670300519869883191073342713818316302220685826881067157615365150036630112753634627525878974606531375121966455403624423713826772037887981188859665633565083726267381070482790699241866849009905290864174711092612421749083169387171030236446981493956168602967132849742820700169550384507154609785397740183321418161116623049769536562777885836215094207605154179417579947421184107307614513547504472085314623877325972367218104128465413042360287261105071587390426655961154904721339405322300475975478840797399057492833511475858026728594821855314360985308608030214252339017529674363717536800384380809708421710792567221513789915195193343933941383968618245538660803517311805276778134350823631264248042817281526567030814287643750541981502083056856816396771706055723770916849633683118944959417197685955446849179267174121969439137488256950319438761021337918396167073417547867080584675986134347929378013696844985830520367608216847919695605021360255567944501278341666208934873873431295322651356845107807315977799594449215328792504378607729022358470873722166835873964660799154890295420601739612106611028172471431093187163296636010373274422805125468292653348577052084578805496869010394959087398062073486055092622587536300151551716039386368507893731414387788407836283374269203956344479223351064431789804571178300371993163189502115816964651725533082864956171520764467607604685485047569286606553222500362288157853962271043640508479501204130446127445199445999275313796122505966025365764823334615943076440435307783362008178196355451600177527795978150696068511172735132183225619708400627115459137353315816361798093670178004645435053328551731403860470077812281329539549600884134309133717410890026114172192196609642062370820254716670368925737130519096645138667382025891065022688387985858235804009932276542187517213453201281906828343822886102548595646606787418076064562402858611972996599277742604865777901086500369479393510494351580713758064371577511737932174162434019657768620011966459112789512505623887441040864019440978096438876963548525647371853449492376006056338129391502140830487501639118496143601384919068701085357468820492076604642550412263517141513762772747997406913797381409191472192744641076397697059175632365465453489279010591444592797576775170635903183205633230493025894943558449378359563242775548521780560201433616375596799810229178438844078629596824323986998318305619428343309113377212836766031360539405395271838041388186676426493239509257428322588672573488631482023861316699511494158874288840417994324974459124094882075028128725595039298222493301173557231441072578254473168699723069499755952733514673371882808005974049919393328584367900754113170478751315842233781377246062852975541662061881464755211698825264576696638612341194636157040574037590133209084925339072335420612128101579281993006123943141100779445567314029520113716474410034667556783858730354838318227545944652023390306672051945994107254872670272938362834570564852265410550834321975971721331722359404189207012657021016780116184593120841629930548522005827304924080986747696484579403569147527964355699605448426681385921602985920657089993146279322232217371572961635435434944220366252851358337405343273877011278994867776411925386873770999310539845394500768922151181423260208302089076101920950470273642911791588691169491844518517127314751189307422238055460231232279412851504307860263233007047602722086259541954561285225306543908664398373586645630377006194879548342429247666804019270777707670377347055049612655991030577879251489883540184246005018715467500898422644642164858276562414182960548229645868219524462592673707577661657401705723213266734570848060842777205396808029686854033030327251069566882313647710999090713211631025005599737721789614176626554749847524419452815200666158282766767780529254963506593257473222968627019712144246066966586136946028147609215638636903446165691303327108852336841588377209095749078977312635371145682481438954223041436217124193024008493010683720290455891684892495883347386536493598010095813782348300441529766945275521113335535777803021831978802081047131584611525821045816417230721697369211892832150960273289219461942385824627076704705273203059270176203701631764437170212895596573744505620591799559705342499861201065340700744362048701503715735250378251533658497610291623442347329190811055919857783710605672556529294076151375278327852868799241380147122710967229163227883652457229832924492170699535065613581879466731956891776760015547821684988085219394011073536782199894534144357107146360333258216013094850403552952706990714347211480290570091497900893557222990473050878268754589408221073702242907262012597693689992178396353497203108747245032427463354887688398932051049802299161294205801265328312609243875721441770440970759889426423625850204898710445756509409885602109274166623148872867586659554897668212656153425301652002095081709818679339590389330130019395143898380826201644294502540131340497556726205503631493947777591301300090137792322007615089270039655914044351564178183756952991494533697352646984591838600216962666972933758356783582231135130126583489042488401520027090791404579074982442572295862363645050814992680874614331265164875646002900673706764410415020728803728320722637394796652762999226971035114526253001372412951648849196382704673224421864002035986578328761390343303087841378842631391186735677206390957578161955038073700984233276840369393054215512642880365215787721136104820159502589975843725265552840128073357263321228718017595536475578545487498548370794296756230477432640629898819398887501824273340375423076762632189543950115137132272029283404494521477798408219532210319504266187460271414101236146650528308664820268411389640604794093624623458721281887622461013553160124506607623446457080780856470864374392012317681051381112804548753140912893634599627925281578683068750313346473436786344068049974473735369655027834766554494690058752942621939206669640158959332598969008499771505582778966321107269235158271136752229036483267262716157025698677622791989553605221308940891506016335227045906311666221663797297714761758667840398404703194830027693213416521371482597855550230160717813121179229182888650686458087039539486128758997049129660454472740440839661410222359584630694203355219353849782969268494454444293024190756695594265352774177837415559239088981247891327658681581149380771170608277530558696408353825580620645059663758054262661044336887408034895762118460269678674272279614629326469826014080649811731342574933788379136089856161108085000406847882434251733672066818365610600662079864408943724059313327077570848103924130426858077826403266942831083928102707755285033974848931461039422918941969656753802786666899289831469486248961854599741650516741368845642835840371376105818670394132187508396362688582877457696671404491943742890483302004066203646209320849300975025124246087035090287391507238957583020122551992941968430014125896733612828763836286040086655011250229725210145188809820262086651209002467143379281746550416929561300278400173381470196052828732583095554750890205594489744854227223544758080998157523362973955173368639977256455686689937803364441688187121613556867065446755152992046678246897579188882264411924908278971184324229643278958756364851276068146137151243929540329878524107922337204814083877413636885616134310635124701168030425120014579071053764329861280793210006512461908958160301564531433944741752867761782387997414261093073570324598176752875583264129421329523256006156551538641119326601107762227414426851106913522447973795436609925979515122323395756414757537500792525546035060491731065241386096588955890803680742160871604948986710581956879761485119430934986251973390652385182343649168335226054688781600014601605752603051853587915015776474739999405378130587226374982930562593845044998454638583716827432618273001435923689622489105522350487280431759602358231186937679790002461339492986731520228207325901526888840366825756666707808087562310035793619014455223402994478342423342937371766281559322596600048755727361746247135757505323490709486529252911334082667262614644049725068084924888543905049292765714367573336640352802988802756516397885147582011104770864964760312258164219648741300587018411841855902271358647997958031971403054727052684988110530296591370084170804547576440183540615344110384693496051014203371234342357842768240951992647739656045456882526932757185049593530935377156558398087152614442760383441994925538605700300768722996902181713342144255102613155248293664663750098168334530852036042921678507991330126852118675770808891346479722293938713978076741208800407661394738270839139625730513663238003173173998752433195201357456299254395635680580324146940679877668981098267042741972632116340291062888778052942489180744910385424219399852995239108065327336161851589885433646765838527420252142754369776200444716307764443887631372125991799063534327887492520878339207938065311144192604286086651424281549416826813978289927693861709069125420094036096580938139667644999784679986414517668746833428153507900086868727103249812724957771353921469943116550988247638237900304054807028937990016945194613513397950051857213371166923610048647634405738746988698740247078171895894573823109973543703249086006678479717345111647800106149568348088391081608418494433609330277835860845044181984950632419243209257611608495665468145150519074424958158177516299552051145580794828922781910030850358424655057413249949028728146260495362521006323627722806351564937955633433111021735636549464081029408926592634768621993329790286683740854120799577880444850911462685122062909251934892621963228574644990315390532817668098189230613258508843433249839912696411067219346245512303737880798431295450666230204770210609187937010808327980124077544761629999163254404825993999491452567913724697183407015770347437588858139225806349383422710584353265372131777734241074907391482662667444710773325523299227441720855450223795141576695735997658230162659645652475619327547132610525392281898002503301459647570575529287650852413740121294790864680540641854375245009704781067632197423681043191011596368049286936666997426790232365330113183688143950095549769391544432519621113047317521643454441239010486904396227127844323699076699307396941361817902740653531144550622688475612257670253380404376981673533647910175584772242515671213763703090606795247117083592753436007512681848661793847743423703371478139966635610255103235763480655207215212828998466286232627358515314473185768794081803895256744719511393029261046407898414519464118973877393395220254917777389932721094517889697352143629049672290339571963642460468845236839957345250531727934237549347433179197905491736575546618134950496197695265303063839549429302433738392585952989303531495053024165300888099442141034236914078755089213604470110642165003422486812328990716156600348063637819872492452683834038686404042043493481494018111052506162258549229773807071856823775598955370827619516508249855561423193133528361639142226026103499280745563242760080421919146381061741517884204107904270177084144870484117252818517314627528176551127645125933968009448230784334393054031174536757043001910814039712077329622774944122028777997233660801932040806599156382762144290576079433065852000315800922046504677798470281354682976114239150674616995321486633371355727800536385723244625534366653956557131147447839766081686537790072089811230048464490586305490660572190697067716508895952059918611004066776188496285008600534031439278088301364984124254484298868641615206365337449846008998385038393819087234751231700165058413629315958354919140789332360249137798398673138937825839838665932813832752536472004891050464923894862828464234202286151150927370512147985300345785195996738902326799900352043341133598090425737318644765850606812996936793984464905934500530581476731766808473708101830890670208354788152078678673546448081232892572159263814933327556873269871682135408560855141172289584646154516217273968802468064212099346756877546573113281839543178926554284409465189512494898087442710419824359557709784736963868020129591935810001348389314590994320736460270683350189149448922195788227290074407885027778956800898340544072661749056918858164411915822385039704267897673406962260987453715731727127613566532890252617727046624913678185960977453907640198448349100888816422546800284231275195627184613635343250415564082636436627548243032639261149691476357414104218221893242984514302436885801263548365851217264600302057592271681933995901069948189870269429523309808271765296303113956139527697971203136699991056732493743233281944388966283126475204445301760546067794639084317954238874331549449301508390945758574539680927621451871013169657768724734112945504506200346440349613823753748896546349681932445583731056810892817721175033691397508108702414636151452973167617761310153472344958917906402286481329434143711549502570017332886579764037637296321443418283003673817158798515821524176402153830832316851381958122753452948391132186754152617094193790981947725052800651723705509520772459285063472948598851939049310300093015968289689366827086660309881268977603131239377285035880446703070188196209666290450385742434348755307011767141812496122736563373430126899930292896634200656284835231756483746161437558065239834016254386522899173030984501259833263220068262941352858519677459499374822760398524693985228053911665852795500248479650494879025029152310655569698754691574189176044936152637911756331997806719029723873024455291993954055525144733241445335996847986410150660575369131278902915789157075919371880958484389051544258412545807993224212517190519833546662877451376851743040110488322766422227813712336501657370684192249277884674720470512582014386105008472962228611189772008367254153666587129764223866056339328107978713755986527046367200460856601743857154944081366628198206814939303919821975418329890913047823837670706269817785915712370901656771753374193059614063505591227594119986515432246153346458983012139693022054773883022810617841675292597585660774818899714214434889562371400229999695293504186388176984137636583956680653210997069859969016989204555202493260247545436400583720953265424978037725723065375727668674810487604330167912484578860312436972577874096327279792368143308391313849838518052274835397022551696265863703261210440052776028036354308383294130228659376094576027088839003452753486915845772629949926103900433981032322215443350564452193146489856284907505323740683850093178324875209250256875059501946234520300862502302591871941163751385160169794310459563022707645865369126603284226204446786385806354574937195601977011527243527266881071199374615776802491036753685476075793547452912913536623046194818761602849635372081118534966627100378742121429137877749719181589802966940630896657382676505068747649997392419302926533206695894536174302036116779110444547776699650365555745120082619915554674347313264128066066266569276008382581547160405506481803656231062035317138069976317382084872729159231702028805016490330896424748753925152940474458244669150603754053466884882257981504380021065782738961887911170600087161828100701673989188119594454497620465383022421371912638597829604916079404964102431069048870936751130332588113175530890146484570772661747842603516823073014036418872524567042422692153529376641955633215507694605513563289677518582087857716757826962620578557332949667668782577664214101476012491460139202283270680147335654310280614125779119774672778661147281028211728559418105789486623244999987090325655907274021166032887238910859935281567818713969508504028317465341357810174952747177980846121414916400615396241802344016796420261892176201201761750731325767415368651082361149168057786201115839948391799910470688207158402115060115438977101770511023634728422367089838714196880253116130103751639277506543979666960036523984856855994560812923600407893277858253247477952054209835580820546581615312535841516287381368262599201034704331758237841201073393350147957356816835447076326767535711021044434478431918949813839650886880078019466524951555305416316794726019481714712184199255141814312420875253918763887266249216944925933192117144360641605507500332927296462699577898877999991167472157383678855299845481281769514526346973991867064184079109407593828503461415820731963810977985168446431373560348349764138590176270688144692579042644993977207835516528494322033182924635615682063517154537233288364084860142363175069361193370404203709671283164736421268527904789720025421565103847534531684466882414106632205450260132582872039241794003886279057819809246098830685134068095431132319950010282846272306933646729775911765696359207770260364674326401458617181057689669265979378271732032485552273721357824501429853520816506963647922753041811897723637016481166683279383897343770902196643276266588969678698000401352981343407845900728438449439325768934781856095985837191705069975125621094252345598769368414980604402314870954927469134068938249836882631142926201455978835601779398377338606029969497083720946937242128671639346018291943553066301448061623851308351663348357523849115481948380454141985340661770554693373131034481512379627015388140575859170541078899213083782743804858384671940160736598709527452309256375204739747420869187529586770571396094915760356853514649082600839838884124733871181530718491769723555861322937627670261608908307016829875822461118798555894227768278162745431664423107497688601094166651233752258275683469626495973798787754466322106748799754225543902098236772156939643389133227240197576923748646024800471384425350808263997061603134875597507768867251650904384194201625029006160547960325278627327969720994479879429338163454600006228913671356041886070885329362088202406204839920867619976636007278255642183185722488771249030550705711543648970772712690797757439825735971065283086191955963991584255866444607436436092480487526474156228302196655915610170048955213162458838764422386876295082659153856776028137265980184919974473463287571590082141292081438993743820839470879156921011356141628742481857827709464022703798387642625199173400125378612504967462753616296119148629843033023088130806959151237036156223491283846908310787551840184493121779172860323350823874111496235892838950814922611985877940521712916204615476562047659799953149672833360130006535219688159262363736704831368501269480665215834434116580106559473604556241544800614121921758432179355239037905798448668386196853471186728990254675368293946905588234700347285908282178288802160744389500200004306303605709122428342177598750792587979156019444852883591581981501642949177885424970888916543821610942000917550649659424493738347302798356561437536108212541050107581600702410313929909867115709356869488280514988056797887836068912974808131367863061108829943051900716380147475292643447078504493577889515610895417898304220989529913432132149230312650458510424299389287282471419713548882187602328671866833594508253604365516568383736268136545975430979159242305840695655199773323383916136751979117190426375986900287445984011148028890760220053488364702579561694867494260519638938845342099260697571925500079408258193752208969530324472725974548682715301872201732721121261880009340612144059763748591885867757704850987417872591665627780516796818817977739293615049287922692717639389853356379014112911845911333831636316394165990135259149592483113089458347576274246250938031836773114929409032863363659886066349158829361072140163485701648840671843865312739825431831892100882101056125251783020006969454524500771243351626315766222203545888965709354512842152880882007796277395374086419735372399799852624870011241620599402351318151505042834246455828937959783808624437287000608045278605765496623175823858242812678712688511641212165388122153579682838048216669290543511313732901101983568410319449328076063965380017694788379319974185978277672012809511043693914660858924363530427613977453485592319093512356210415501454018250551592209760975934767559063983831519206749471725573146677996978466502009698310947616073981108079579901740655924505509625680761770237767639745118747455872383898245877236667182866665320577475686019892330655462260369140437387565257630408057257362821169575660366912295715726172250582983309333365146365940760994947888346292717314619992782588324990249731894000604818531513683541737649570572010789475185975598765081355479128658064298384823998130269745423429074132863731907926225495571779781120010639943303737869099995221384466070830114917682230526235661493150922801535633906153015729552708704271117079380923018262636000780471118292867767140127392290732835125911573263883549238334788300053053814548083801156510778119213993733091467042740027934713385913581931442689375101105015603567621991446078920332857209196230311917330910278851204920482325989355613499427542313265668234128192290380900172721900467874925741114473136131162092823415155589791163129680029660725144467408613005883706526123516241058996016578643147614274715455483804550261405571171306621441688376727955014480270031580533090625382394417170452503913109389618596382113668419699342586859132376068408383020854911307758162145328916535256227911027629444187342930257911855630546733325277186965662864050665519908641773085599819312359612459267205926597634102793718420550943779186618426850126243325974747127533295840759363581404482696439309630975326702827753395541653427199521361771895532359053436663736148715391738147715407485744277649589745433519064940745737885882349751404307644166669762657835366455813023420956585930657167786534085289428356664426234178378835470296434899193396908218444004199523312891745268416882573298572797381241322581087147857549075591453564358182770751269360368932495667023566195634019618604477043845716597295706030593930350537016923140525150981934365964595627668395494975035324423137763300020750968922013413433837945363132089789845252575635033462705177473060105996665919215429143430406546969311597834049789701195963907365919789018251063220040721830271905872210874819796315131144467053829179914875503531858174846315073925658469090613137365460800693254638562595093715674695027970659535809874036762011627473150189672783122112025732633092791426094516929628307148490238766862629368516769788120799915369208644102324505443840348279067445270799270050482297091688503354589946896060405042268178606814514126410156767704988742030733202306272422708956008461582198064955603413949168662538594147680426660673197136740637087521815803710440313316015955613171320999628821120169344050722432383470034218988512128584531656743814443237718491658177770229144347380915418334349837348349837745726374990662041638060100821426230934163190788642166851244752417153276364294670202036154828556447712186941083833934500641044104577537932498293860761061740664089416024004521795983491921670770499916369458669902445709627228765753063913128727502941704753308577340387114889718979595255247700098992322096362925062864718112787029659564308475123743601428754736177771469957896429894349376120593218569593592686846587212732058160336504396659683955040429952845810649772500553428961036059532409254146696144657126810933358375590345669775911917673753883159578900714795702081526926643211454417740167280453821409284413945876997120485734113617643923624008897621745109736415674408264203859673569788337696600772381765856645399627985015157658481445653854998743397924165818807826104268724872400814041661789358998112596027409423624245627297093311632079963132088643879621625261420138119070156578999278712894204905081455967879069812108353336751304760194881661491941980168968480123811711848495126679024703290535113108071508483857569086262303252473058588350313388923794013538966970773352400562885853013955553538194672520226129815961571344151746120900923748834916580123996539313683615902651568329994259845036794217178185373706032464019539096530687463886052312717954094371120921479759373384716040060299479628865766108874382066800277155332856253640871500828275235147690431786255857426810738553527051726998647318908704531225105788292784353302330737045007001499538523850718235400821109184752820140662211443205988829607714791686506806413942944869485827538325304011138833985939921913583046651443737575878677083001818749008173900309305559795263604916880836524898042228859980313611082416922255297521262326789124107066894111226698828631916003876079209861961624626656880396458023314908489586914871210968519184311905125749141201974201951980338077305517131707124700797120375919838639152105503667872268511977736699219971567986666619125526448306210721576909008141869677533983948810459937481388889781932637255123401066398200700393255205022726379513942875045256024559280540972934059098747326100606844043493829506405531495507846435456588314224149746836882394448387660781126515904727073974190649132296372413558918748577070742781292557988062948280004794977498460716607079822789089491327680108106928948277902739677328213827832733361740615992349893072675931957434971619468302843239255362723851823527827687207980083574551947083329104198470490469894620898952062231730867108542098787156386385251460102937477436958838009872463403455500091208834102083939387644825218067227752284072724786695504142441059977736970084698529808634891890602035637685199411216590872855169574801080420119559729847069136610198102111523564668373411417309947189419506497454173947842791773907314520623488747268628394724250352990080207691591745118779574669021041203154471585319054640335236875563519234191245291447480109221823702463741066509878741046752290352295433818568770914590905365353298544827109597640748842767242017953540112432442290680852339877269517181714003691480211348998317901722371362835361799497444630802134216666982127767444829107575716362327065188200595087523500739075973153055375104732826892755101465802272776204222723290223970935844907306848488470700769116506948383803526377546222504437923142060212868995750015326600867692582498732528825685122556084772480771433425541333841886286308461463404717893020151050025006029928303660741979653038729422057441077925709365332296221679064672676323008504325747426453774466105096365278060546062063784634467402376496453227763565122166689906330310125938918476213818260116758244657698523266820329973593475756565972768914009829354308468991937201254736780664777964307306708866783612317412356923469878050492737114966013025535251246096072093453237224513093466250515772673784354038540608010103419950564582946794013401692922878111337370540683109267210920935317704851272481537741994787377799349627060078123159762947139348493870286012970210010115200165952547336973242828215705415125320057707791666977757034043300968691503916089041706836750505383906974477213975421364808682248132293299556075690816517875089164133750536797805482356128695605951581572018258027327414856308194794731144272278770596477574559552646369081070179824816871255216077077378302935582068105723564472152399949500848381789514529719164408564977092028178201677210933658555571439394832054268740793679417484647345228567777933142756839662358401645158755685996718955828358340802697728803535832295177348381718946802150707409866346144431513076057617717093494882250745215214515450468165291631938470793893584997379863041236394587805434878280078217625500478710724663867384029881426008585099961168761252249964386378430545913611829131236848940253257991680778286291931536245435221660848511499990725765572826227229961431701717128925632425656586121532492392059843141782222782181179674682960363779655120808814708410642539910292537868033768481642862826622610240256884486314095075878967250345972165314806364856363946008317349315125407653802027869217731637950459454095038615981883391044232403183756072411801648056256449129163859406980485226616425616422168464214377024016574229897482512220164117636572865470663187269734806817959557543921044959021322042775602390432828889939563125587640762859563802015850633756340602166418029169750160794800376558006910786426170688403719229989381515948473227544141661317025985229347001351953582429433316299250239740594855938253090359609548179751329276134638593926382269640017750811785469627211470360387358118460802279328189158310457404412282418937864760816515356225772306596645223210926253383256022486148775623847890078076716693175408407375419269066373485978074436127034044300298207276266301910133275362398463338693191112109318737427902601538514464868490990292394747810565816971795927032019009898439461078035606953042811876255401318497676970526539120589599524882255112527505761035344839976422911921211066004106180394347114667909362938830542380488195366182270085146755131265664345159865165011300836670158727598781937839229398906815406110417246382288388464222766459817079799017622579553500748463039811042914112616459346366326683877025650840951186751397578782957246755010981436412960336186719777058563517069753375394946227278246949271277013357485434955155408176827605826401501873826238713885693367416190472474385741227279528152075499777962760022912867281420589563858588549855285185537302100875713404553475386343725917659493349014447530055511265131613556836063079613168664415960842622764667705917299235635766676084142196916905664013960321782121223575450217826082930763264466288223220078312875536817901037892605437136623490835454049097412487366216786504156560010568083526101614584090559968428483393743584075523290633182924326156257990190593380494367387437355583492838769223899798135417410156105209597829300828786976683364850793700357026183965243808118125396685536926100806246517931249032919401265052263391352671523553814089389229513314164037816234891795050492986279285089083343583624071541425524244995593926020840203227636880340719330336417067696085988950410631677829600320215742515216621223420000007300417754914883370533474428062609261038248255845524858751627993776410556624310128077073162378122202379689971325327948361020711887980614792231012313115339205935828000542162172089809330393889940897278249336030659652814567648922518447141404058639301328092704433308765605736167101162930855928480165857081503991516445879055835330472441730689867589803809106053321084906464565685159398631813776366312059862487994925611318133961450858983284590409872693576453933039183200944140204496091863937613456386008285444185743935368711236976138285185454752323646394879806929658350722629062748958041884802139720566662701336226391209126398784827246305726085331485099844628864144251179584475222981048519954807110942789076326584612790535975902460225985656021830441066846414816971208271794027422767352934652907217773951122276753662441828144311952339789774274313485857731947707325818934634526709152803364078537731965610008999794603667517525104446131687255499400058986290563531557550322154652903630629624092708665330299199328078389645555458175291393136250903816657942260754383400446169183468040834059801302038029345307240245278793449411718118739989858609323646677993212661154937462409178783970646868097552497464425396320250135821672650514855592067836418208978832766281473313586664742547094688519297161774994738304926294341184775884488149135278626508942893353361234347092367456430211374594660836849143782305294118238392595250231733022229596741013004931798721117521407277704365226508558843055353221563631271189064006364158668449089157576757182108461328475876849176249212247795958582247895815338311082977822027065392100130059786665040649174644370099225588812170870125656395092217692938962875579356894145745814618872288526391842635173215301979332048345857624094104633152342513699838860518474012715843922563079278625495747906158816094740633385983131282853483422129526263609334038671465207088717518914766338721729243191891396631707877538321622201170219868866712610859591262334604693557436249462787664203223828441383670107915536830665338804553845109991688327463021202082015425049499032838449769096742619360650665221330817655910364073134026357121805153324150010616692980104655075544785580135225497630865849142120665116005588215928314676211715576148042883751505078220938480404705529384155735824327379436146569730794339431404703357040998509888026939159732896378282964155998221970313933648600905886547212663060873248623823511929149854939835411292677042159069852173354518689792293392615735243079671506023673599872639020705326107632000761894505411567559353101459321189861558109119983945940045520819808751080004006741015852678842946508446689267463893861246918184069760486749383177420387447783094856495522708540409765332069804628008461580795353540288169389446402900237024192581627874303038545841643333988146115536606807003320917474832049046623396779576490524070835963266991142947009661904097424833002296879175449915340081808128416295882875063094073845095374136443689204534335248410563992561784779133700345517799348469401948180378654101456189217396961528931350440887330276877481350007017968405847532248656553765711430768343225372821680268939328185497650320960647071748407274656998877789107829690787362362542967886310778221344702092991799834243163843908702217985019466746566770821377597740903069707272992194286691627787264946399834765024781921219472498583912864221404442310171949854709108852746799846945110547923112555874392260599933550551999525160265472920211647760194256279520934915457732023881422571859932844247454564347315839466453507660583793654490868092952016224732830703881768690663467152713175735216904431335661069778296087504426672292670317725129076167034820692624186472352548507692049790738656726410360625565564476497045689480365308162292810207960554984533801850859806622230992266952812401725542375279913739771124912808306926058307414722363347866098395357382086261647398392197837772518474384796432437368024755766146644254629637629766876525575640962042383584766757328145028439358813287754314314078124111120360496790272805596022062620207224998804636623855256742566267902694200810389606995092590115155694729901179919161103302683749438845641783993279206818957035774406563811190851284401015714066179100387858530927506484891663467234157887820784993916325735239554330559355870781625434557188104224288406170424818953031441819348399694845915910588357749434003608550844699873322475675755779698188387764267220787346653077801530128425346048592690602915049158614070926134799157033818887961665607867211791014810567558032287444858339171151051801630187820883795685456664579411186414556377146575801182244545714078578005109201508725518926551670812221534464154469579078502841055145752759481743581683807967457519101114997137699670437632197130014177000563674920030031311230442374646305431876503531382802510676896300788446891902050913934399520355243631773278623622859654093870015472564467978081849807839880187016637388670363188812091946606092407726928634211902997000257565784912886334316742197758309575290505657140713281435409620226512502104191430499687750330656826145223939784001056640768570254413678194803909990708342938308055443644559670060896252742175785314863552541301512513772706300802411554057782339839299060935555828860893141733739691238249596483515328615758851467970477878233761970136497794907482773735107091284804024630852313392885958716647894834870793545023364406231413447310812169890122824037967971407401758176064673612286321898694418936159187042234430129237127664734858997226330438690828452887749211474542847596649201519574217582414719764787917853901798339198484554449852469142548050620326498075914872492502532935269961339926149088994994837331729955962144474003620414254475602267186861657716764342986072110118555573276076650415450285043985913899014904474061536304100039983379347118679856001403452104559305484379044175230125196885005382759126092189088205689553218489706148613299865628350070245356511240960278588850956902032314764651832563998430555527070806311050943233375347966930523888585447222874879741005666978986791343057133343614858726826914979601368830605162675240888814912411882427129006589898172925853786622689625655750210105845101461200222455333302403657807929254273251825319908528761959041420622802379253580639570294403307362265614754141920161051520217281381516721102438674424461393001994152753584126111514154349660702818633409833903002715129880357036107107970725132913905253725933138826041927288223165744267647911527670604621975473311578437969177813901621335158634045098230557438326410809834297053347143297963474626519847701646494144176894230684140287958892292240972134346630768651864000064936047188097074921189780303943435963726123616670203066678593759417287492769647729595058984567619551849341441992065262892102316919465320067790515005669570847539298588273712140141331235722048131349980349064749729490774176735285954994517929806568523495643858486443003472580329917433642036117698377672734027239391694915160443932219654749019328318628802144502375863624381877705390839791471274930928858365855605672096438931986416467473372598685922861186422853034602142038741957135872224505166807974590057684683197103755221170172485909207480868962105404721470615969493489750886335638487162408661960020759127094904193370006361389419490802153006745018788682292225106889988793421096804442149092025096514585711614679392713942453795062817811512195223424984932204844723450272243579109727812241268327667001702663757660648371709559950524733560840405652875713523377965397596389899985995178159783470409010714800191771286649422860574060859960394215018028010182903866141139214661327884776515125273074882940415457361412344140016154639202037277202142608142904971712379243818538323511493153941348457346149860632439784609987929665451354327958972311791842537800017371296254741684062529804644447806623638791385551320122741058728936505908087514821739029122464640574703710805927386582819046042965392004247926687719948185574613351555711868247630210780748553582989971201934176078742980283758449478026554990203345744604396016687218778853747628150769108484109921377805605760655951503631293603163314509055590224722787951422665351416597521953240532647777567979297524937298028320911867572804340954200234540641203956051185828605538235838037225180246783672273119283591729615707172465648499621502976502783955246020711039198787326451022819410166918351119050202676046012398962606500998506540758968240264297656340021383743147389221504826521933287646457700666685720426710758776499467964248795400180142188837354174544834348833038134750608453083285696772501990741939385183296795067998851298654145262332485210445613274175721517383417765353724358039544230150412999847296490592256696382067412167969914485609846570200423785228786693826811009358642936241829268528232986625005689658371468708854027045561964702009605002380622887228931095511452371106653297383016718599925600438413282159630554558197000892513298383523227050032937738524177933295161269778089186654801329485703339981830408887700359785850517903625456909662643207979536227067378998188998087191138295032906469239777178396398789565429784145026503133034367329017204532884892429790874767140931039511828581994922224332595070252045399216472902052540081827538468591601789162958353668000248803706672708478380718265891586803719015061094514417017377609307073063125583590397668347713586648382481602859766638274643274175508583358205251972841995841869124943589796625604934532439009284987415817005969419741357612732914316225595052788600567123816257706540023324534368835740596965218695309983715116098082125511709584613534343003523998544888335376861550719087525398390936149161023985060012194290357884727044466450666577574675514978541953086354835834419762825489476409305038457171010417111214055584102633251992185656260262718549713232473242642885365234693949163686904040698169073704193274863941404351404115672232480995849861031390869269642212600683441893152279304988782055610643445359178726224287376634695166173252387273861522296048211580728827587525121674382507075163919912331975495642935295538576723685863182403571941039308817485036232055620374632785990651828201632834342487424855045269740838145383358880276071690023367660281257262585571966199725202373804449632557165598852926631338330856737532707671080556625473582621172510843212072760684624189635307152106068105804739503229704591052023472010607075864612984766747799165338780647428040888224570657757999942718420245920965594210375610208213363141054075755848874898726862237331149757228629823973375270450460065265717435893027025376438300099272566875311989830404067272955906199017452537179747674939770749873097724159663969550256337434856933165952114846672872467050148293340328295990968247164633281472392608089155811611954891697424454121199897984054126323856842638763051205067295580466599193122744227684656948625748854583764880797078569436856587573950611284847120567900228466389219388498260855571523503544009634265845239521269946470675349064343811505833900356338049972024345086554773380405281874094838971163416184967518851851801171314825714590047422520088743806146423831416015025046462922141234373280099718257483994774895695290286542958435097052051048421611445545425496691710808018488633833582960159819798250334815191703449123713954597361940410956815611320993562363196280516942244064299583430109292563171458760082053420096589973312307701349104846863492159786040628544892221941889288069475934134434497562821298200805604233845539457968046219144210763723647142391706865516919952288145509568254210377281192276205479934206984975759711030104954672982132019266306953247865542917694217305516000577717426750052938863433074043912097017231500473682675056507485116993588396280272802410696345771398110002579517457745945594966190374258162309783875980667368660668355752654721192252958357908828394658991218697772344955015519519139350023278094804991357617469241296961842841650165879112573110039182337719793762066617572045782094702943435790309083340865089055849570148553777783848826943936933698744697589573144647005089409397203225390212959143293977370453672874609150597920108948375297426801640463201942346325974053093134089787569688452734732830887201252862331647099546024077546437421633888007046911402794974388088446524723337080909844282081492720645310868305640153913509883347834010855895694329954260736600214674925441828787979280746992282238973728265708935003981404529644226758601084218165509978340779491267481043527145925831493887151989048167935420330082051108607666643505604288611808984085420898342620019230014385369865928552543648556783300605952212443576612594874378587635603786144461210730764760351520772881871488727702675365240040057429825074204578306547603388825674937804044082250642184925601935510018234258394737416849447962869686798186335561333670524736944586948508022652086884286407861748381554468250225869472367907262488282635457837201263082158006506091806386038518884612447570689945313735957824071240923402939008253401824957813229331704532884072518343165156299451601305437248722032385341991414516309134488000634325506731959793065907459579766319400297202815915963575788668172164906625086137060277244040801820903903267845500849037868324982296833100811700291107970290562768417192589468477226904582926189863577983469439873312792704931195184902647094099613216673751308233225050480341946095949668536369641896258739839204646492750865913382834536488744890131589159300546614456530873534744858388889259222477811845742963761399642799213541899016422374936538916443628478026594860302617311677383248712066138803631474086091029498638417997977355033921025440340872650525686757279097187923328922328447373101154988091959092189510308047149084440893053305044819104402955122653443590921373448998564215713044081478782108841596620029733254719306804976878752467037946219380812877200499431826465142587893347122799261215698217532356374662571970827195522278256048570299586493671022595390323606161003192800531178410631735574780302388429762284290277989735796539230538954931049555073795901481527207273292395501872622785837178145665678569351536060919672505398756059381216393820698911105018435665083343539968878307178320628051401336216436728368536313936232107344592927120239880289373944846383920404786181299024122208611367280745919186115927557992025167861018877586927238176355073539369724340225554898113331053082226141847981790202027349278146464561225299407078265120238469399499206616319266883354183504676007833181015874492124526778743583362484365297110265282247658117994092859668434553406597691085194679451074750210346749111985095456031169728997762828616904834641551031923268186423882221718008850552294674835915161970447576320393262058056299707671950160515602813756459353432553925884358905009320842597367632959947652507397382402042571465661939037256486329027441159938367663709315502637578613484244623653987755645022289695302124526541848729247722125201010161715586954470953831892634995786958455085518221954974714911074033128004450212378769426804409669959720725744930064243447480184454990265036319835013213438916463687481569152399053882010566300394731396799334980738041361929448989770824058850730890571961403341327207862964232965453237853424020964590615778740230425878936780605726206115679114083900438142163850020916117998612102879386485898975075604760599617003044769494800885384495126963210326630192404920777339587163944711093068405911677487780318327008773986378314430840819010149648765317065179153740205256088284556562891074085295507740269255699509479367627682350245370296127433013576411413383300409016235632472637939393283513498301238309667479441119205572643405595696493803360588875166045114019532639419868388458421350703796131878595384267529820331681848014485272677522184219207728937950125330779656867641668070680671700427843648761415671736072883896630742051999010842969019321149986022347720136266513818574994342211798507995754199688845046134792192574206559134912205738542233862362500916019427636815079776090029275310595028037395041699161128095817741446035284187851439737035459505265574713161019234922522858854894778874385061708082128990302179130862399355973405807212152300807625348463118609766028431862865307894243820515544835767355825206935470386422652590161586820884372213405255471615621835949764731978301514274997440127596007065514040729932840187404407422493896166867354399062521799571243362818066148234279152164047621787820803211899859904569115488177456355544277429487144133715993432140297630311443033308514940136642983180458184032794959804999822962236025488424237988600596258068598138473449430280884026243441562866542969552861269005718255869704301447782416446913521005844053384187033520755222962465905239232150982721034815178147321827629903004114652566049721449779086931042226414163812738947009148320215695360839132794193340946480902141454026136224335847307691314667042550272281308934202986484302061005410508069674590584485536664894804767676130439414679489529357947280405875540303973067138588340656064262360737203463896131071802498396014805447951534079000027924216365480912183686355131109245222595298122444302423971017663166231727360541826161760167865207323049699978774874506768082616161114392618427142688254845313624093952614949694093330202201086890186165165630973185506698344113181931604359679245362718734263752811013422067932907869694964966380536278111170391866746543354208028037971804011277425106227587140301698104318418579888226841207891257634773976022364428366815291261622867650348601479614728004617341987620726669556413155386146200023350366075724958585239620049877276940262419234107123377368754255642346955681141369809504666525172006339148584676453024632888138143647398919936680798166511574483580127613111633967311636259402672043285028625448828865471657440931372297550497802892399443725304679281125357005741331182262590711484986788532934061734159521504794382816183008451379329388864099354536239151689526749615467824258560441520417299079530226715158112057018093822113110756393434011465925200494036078879096739143154025770915383151790963717903904732092071489796104810823731463660831344594394260464594670637088410832873353076057355811328440436864108957386625591354549117534210798444039851484052582779436752970673232339324243594192680353345751899538639851848638703329372240216590344403929105092441989311867305033527103851079095787584726644902020618381638373348360050194026467998777302463139296000856380019066491900227295385389999507912564086127473894063805704151714195637649083201808061017772618253249469156693825201217846371297092949064709210598423560409168360038533137833410587037285417901471508659903407792013251277299245224347992655445787603303974089529247491180129474700045869422565705959268420005002058784356204872138420521525078433078070284351922435897971769653879879752318017721229533854413916913281361241087638837072602328768610474555150583681454899226416577234031597910008934941746394818327794080965360779456615702593864612042782912378907770011139326233626954909918482905205675793234207822132266291462393426575893071378471809385673930298939726644701789167246510889580420370725043975108529360147983073196107634733109772028385807170204468565573815214124473762767026052464409535985910944096270023936917157824995993037058353758027601150922293108400296086439463620931787921581819882877787128243044675609386298762261534222543147983936021908944233183619073222847354577246509844284018278817915499937336819605418506313663665429169095169315906422530444983972966997358484443995852139891816958725966319785367743015360072634061624286703345811816191907928772500130629589260714925269019530891947008472851039904163403561166614193133814681392086284350841208065382572448505436922270538136129465941891513899548439539591834307498436114750595422577430842694582135305709257211148921579910668517213596732850014913985301022527647364137957759819360926943860598417868045503436417900689984694289745319879552443110486117484448525797033959083037796829962277561740007045937223098689885648701576894477580861628469135247100346454547575106262665770027111851823941914770792298742097032464997501725673838828163843575025942877447115324068953241730687416080681751817502856979319140648630516143420489828087543284715331295125875393868145043433623832543786119275907329530584214137678899421451882064876360553930910925143648155430507631292400613397199732426913405824726204922987687847502311297350592652658948445037070035677983483933190915742420637694721620979151071845865994999301920956638786321907578903537334980125428632071137044031391206590540406455438037076961522898518743592989864050654892871021471865144464875776419715385580250611419468008949384896380431136673758294890994670394341597516260142777356306806812859245048077383830681971841014356063498482136911971561749900761316748021806427420944218119863297025086700192387432474142170658338755061733954216828649982260664822492461626810059293479946233466741189092017820558797622337144853854836312344341081943070979550861346278531037085850424413198832034421546926690721242711969949469270301437354173207968952970350608726936911857338467521254660506210614059227876890513982454843321734702000425879303941150607135407843665814043539407699899326250284098637733661358183398541424082905421291338532088226855809251153612990190667290389713518977753199746941818862369861819960368668877267612723800129292719276693822375388903186159551685599467010958125729025839129110612843108932179395437461769895033668073206727956371376168743053004885292946770681036359154204800393030178975281799370157346022037208904421279349120410184234645770541153295830591004628998753361569388012276161870465647649801984993179159766263956218457963008061408361096974971938003467837097325339698732083604150073264102271911491793484426250719811512945732575687266904098395813803805370036686591725915081640509237465940595044181606554056917432958407549911479985443477643735470785203580475921726806948433562604801911025888913814285960323031127980846700357075799711535419787221923046704500063555990481996358428568383875600760891114457980853173010901124209833983307722012513698229273375914380110530859691210561500801864057264666449928086437286716146279276092571062706217664217910849762842997164938608223798468019656113611515069868601255349040151158659580196557105136933594203598748199277589885493383492802996195209517412023303731440853404786739932781553206390959698759313015175101673255279505126217183415315375366293222932536339081592231256211764257083180496007990471630322139240654805414065734317196493166545575998765649594409400937446572691198276385167943034675514439852812139790540867034188948140465894947641563483386369243187132959636046782498664376819284204884888323909622855539460483196989301881687535784951637770514653162936168579488324288428720600521017336282793670627420002373974175208397326293968393672731912759258946252040523888100074729819605830316688291700030913806538906251846099607538716243628052555655339016137994177266038176671778606516313708656381126806660065935797582698053944090731848178425846963854168128571342698578905063916559976979845138469512531582328680053974505491265727025515901057398700323189402382990140573193504338977580050611135535146642030259748269085394595810523147175160616959369890461229512091208654507784807657385559313589267666973630930255619566820756194558012404565494181492461493435974121793142178909537296396755333424462358996372350026618001243485290698606569348202064003016984479606000942122496761408120203908204665548978837574515772536907323676068525202121321748683850041054705053404973645893184863533977617875536312078752919537813514758059330007608080041106373928011475529921900960300301548396548818355867373027562956121999579211772450121468216497744326484016907153401517846518273158703160574596478332325657972397254516502307682468720600774038092062443872143084606800156896609529409749544811946268883215774129958983111625448224254900711902655221222023927480304095504508232763267277965655912912696501247009970797733960822164887129298963054478016859938709919508775738798584715713877879510749751779321063261300677537416498494728884588458298952971525499203945325832172168480634265063478890822012212710994816712005611046315999444796502445809127360086911947394186262356219393169481891122758998044328199218697976891895606667960825704601248296000900613221144612199651351878067879745491135531179781743081999665685344810726220156634124499319136171986459108641319286475836311211402953844140840166760359038884089730441035916812238584789876188410556047636970907347079835787607748772869015906545279595355804723606828263706083774491323953264026100764214598082317055142308321585532155926409382648662460558220654125000173508418403593596561326051758789079739392554682033101641352082710431737875386238509012367842635417967993716822758353692341473683094924708475845874198825793993595866859553761179072645612668450321660451269153368871828040506991547095299446032790536280962314722387220292613116118964190090352116031504744913896678678255686288006697777485170283427019670093013693302609789677335582276026721717260970280190019190217997104396442171266236005993146988580710000709343816764772857785306363196179693598155293474899969809165070609785823786869994704063629102826563938319102964100371046080554864471508696617053662853401071554081663417688480669844725771221076444281946361993087738360090576707434216544983383502846632052913344686552938501569351355270457857929496174209445251730619614186990056897477526381532112381436996461379365849393887956337143283390271970126796587077981310421766908395113001255342445577837893652290069508763887880005204225860916471187980045808085708796841556124918622765821943130194999434520569685761460671884977320836436596476381792616959211905892736180540284759868285169090913624258453643329445906793792528545027167533849094677448684830968322952246813857848179035273228930571374305196966424734311954598021347342984243742410393375325055435441828348829464298582931252660005110253565120214424433751949655621795694977249091468139667594085788554582964861671901657990894390943094211490014313342362866179392856294687991018180470799087873198015865114974271778415533031537833269670116001082525215576332300436198202097490206049668903302880009837001062827736283187259138966549166794565792312360810876016229199790985076025021064706109275311794537849773623464393578932030979781252622688369193305736387114184563346558505848777202942823934469643140881441029234014522046930044491531343851520981888922682921195224982994867208336523074445098082811089697208626774957191059645258488908221617604319276046151617653388625604394555847717091555739334046542375209737728882569398411386536063752889805344651173526739939622303703410800461447807479053728175506168675076310827073524402953229747721783298517263457430469806514829135090169325325515355998154628859908963626238182382076572325392291029518908378640319263996694042164663891756741699540936624036035744317658466440371564099063547288170322719929598241002444489696263034336039043816336727410542146194063534776977079785194539938833595154746292089424824118954206452420627162213072053497563898393435823060597035949556574605904173656865881716169846091374058325534429427942516878370385483744356189470437453325894633222547250157380220370611917295839960594148090340781142393855182370045980757418563401509127808524069897749729612442533051120762494720788611808066988390585487710617419378001772809279943888889898619980085241791348906091489216340874819744665534684208060947041593669384281443002082178020281041622247551220330499268719847019735101641472832914853471081903271487293843042468155659868451552076640649968662354883155979631241183475591881913220059661264904752206508369301445797406385441389342172165122111042559802431895161888346039009497259528963967896806602201117259621646635922722718512132667664765350865734906763839639736400898450816201348203041641422037807065455049281982595696591810662200733639020241405311527852426217437210583459166203245670882083308061117699223210199206897180329495029557705196930935258994989855028255447398851315451611026544685762435485301600180356875452563689403508912249396937499310644654288783997295123459678438412595004414102461783166227916838109912795869349878017530031684677302287836445010330833688816668743376821134591004647527496988119946855472195783573879671394754981067246596915604929920884318641613095269034670673307017940074801240232755388017986005804813269586488018024948098427687867829857842888320619125470742913277782168659133318962480617887001810235389047361355874628159096437894171101934255899663265394932161925516972803680854363374553769209971394661542919270886407369898309473916432940406600368356143599274577658771108292968077479877099218466318036833699230508546418209867644849639695014488374257395632817512433809411483113721017259355467096532140155529610447248112094539063557142048443429800374526354268550631684324263986315736519833849882478707841538691835875599740529844577621300064796750095225953945083804525638048219872374318426029486905825475122069980657229670958817062876653826301607813403933272683278436577223274654435421651743580866022202385136163661604352448897175670250070355668832800140467151510349742998322775014675496423457713313685561069442844082846658450670585719523289343272699186250105535418636868043691601845839624146705312064670740820311036855199090033220899438283945353518437145329956197205678168307558274744059076013449187043459016105612905574591534891632904840511701660610948893880802041065550780697558866427086639615212336667749486113368829091363443280012057501155768569477504387608786832039396520185761786469260839897520033857145156449281162883990749281504324490747900170252472283838947252987554270389587768060479933551015181625005007152901688632699028050300014523669231776689461516052998240642793261263680553522168171386680936179697121380337021492214733881791096404271223901246308868718096974107596910754077559018288777742898677271922782661176053141754351248940990157957349163340016303018446861996302032800772142521836818964435320784223188885938556951057854249641172298516252212714663920238975734564548601869607342002408659962538498902808012791938424049192633739687618219209650327118236719974897163120629402368351633854482871556239665419413743923888531775929464934707278760282673296663103001223738208472079127444645148201480891140753914042522822477284751557406238940385728806711996536132542096078576205844846192406552463117164605145745094423954317300097355762314193073500183646866077383367226857192871094727652142491683193273209780774689519010606739701072174723423793780616441896037950129264231804631328051639117996940942965187969411664105925462499664643600316613653948126832190008769556283343976607263418347211184114065591126033759064611718480804390089259608432701553010754296290130416666550156860254241073522172695619593291564369583030486210734190420879636713962992068962185999753922578368397450074338193385790069831407499702926661037981481073921384351928509475451126002256024368014553214194513969751976936183921885264812693637971878438259817558099280941240149067163177159691961379169866922173649197387574634770677996066676276005744068117931142980235354898713587051296088951163752540065928376154562493296948088292983790504484855064189840145182657825290579910390597902787535148839899076222368098020501380850993413429607012019188136685829805209143073795437319883243191564481780523978406546150927623932655195291371615719570138926448862560796368591274413150899277144075366507699696722067025977208332899866424741254104440466400036532178505506626409139970955353046335462576224077561847047464174325213342355385980837342118208980082623329269728170225053618204341608510699258891414982413399553407651332985749541777370097490664497411885682550321370268437456838867160257509211652538584340486823359860866547341576973426816947745384013944450585056798767685415878221670471087029835442623288842942883289665646360183610809351764607413507184873624091304773606270183676469981655221881843213154845090510782813579267787511730207412658198064576987867322676429266718996595771143803531508919519247928971817544970348732501414995433012479848205368623917073393636315217594234128566530541616135560436197492873410022333334972620477838849891267663229010191499173058804357194837780467930786697684057034122549362530982527908978918867947221721834455988567359672646636226615219266426397149356872187591375568126635228872463655711525366110968047196877666128798319727283294482287430561013674248553283697405459331169436999719765863981328664931311186169797058486377511341027059835229976435813107275425516828809539496519008042349782452468396006816703596001311646632532253296886798659058486418139499923521697913419331016896219244921255982180189455644578767171585889838284313686805105445919583412674339347000753040146919992800343129539885188166297945708873060931829546141753034302403330075298570985028270975474155971626018898973945425845383890328673415880855208109605555837870160240683297935245997117944692930376411811161299236049986871491573876434139362771004921461360125868720981225157764592396904865894928224539983624175856578070766765895580050118098126129049220918670127792878726432896219997223395482649225360374886502613959049287084710747026453417170346875836054142397792586508420770961134474679740976658102909943017193841620198107381796685070267001095036322678833210775978909590175867783214798917563826495603280586017185186040403172865404067211738049129267304119001650435305573651678790744923564833182168799907785781230672687835762016504805328903029195774484001562252656633459048314750606236223948895533437980964526535805279536612850836970736013110722319915169023600507124084387890269367596351635987455855017341802859696105327157793016548044562342537580060096230538564577299068752261891580637911864653641182097301195586166388774680680142381130620449053632176140164095946765813905234473288800488336937883812177450312406617486000187323997574398754290449280751624193085612996833155174073049835116541454847320459954699198490392838824525562355631355792840574147381758780636604613132422913351120055936668765513128488464984058063945445877806002099656208934190421507233872387067476271072986447834628893356951168013104095052452456840265977706049915621932058921377892187508372775413153541599338833751079857462842886734236395193270424549327302266259923546853649807560844428959914584237233774224210961986779875934180288809903642744500009454552830961066495940675159778195686789214380381986597778731235967973592793160533844714850987042826678716119453459255061509177912136613097353336181889914486687106815716145604863896930989316150542565325595080108775713800576870610526144746673180762838065232272669918805223605198671046785541724073209026453293775569476988270581295702488348436145702495739931935578165863379375198927739293936995506686495475798337733659134930871931028240542247146000882078173252563523781349496350007404203934906727907808686712059169778667785176578740787989205149615634785638778602773935523597196774469867336037746118215026992151657458182189218256199904706870835694951040061076862738772928726604422131776680226665270255410406121838714876237659579928890467838719838532886862009174379915645954631538050295062598411196675765083530914318816051898015885022350071657853392827610193743182461705365973572153354805949249047922080147230539976964572404380923237772179994235047821168279097038772600598619322341637246675799304271060296217626728299500979808730514983293600422257216984608352190175427051782448368295073488622282090692138810399454021315473186889916779895607935821587984846508335489565464117885416690794462136545298509231375267598756854051120514073225523646380291839271287089884851197962616968720246198859111959915246310225771575142215552913503048953023323190933338226386613521271423161639722560567455129364596785618585873151747612617077884017960095231423151213259163324053871047290005286561361778302976195462525198923237211147386329014856827333109267389638230007415797898766314746005839613417592690550345965294038873776202972013745533149038968450882423784653791055267579089824263982229441214481789788094213475315163592732190292060159642750628302984407362147901479145871138759381452163345457230655622355448590144807109957231549672992439558249580644611882621610712223746200407171440211726588381334667283064537981317732642037242321729404333067398791287024805689504986193870815380934175241638040374904553330130112709443369549417446568044804012655961999049366936990888007434147045035551403291170629016905011662003593178412226822366201628722641543163029591774931890824959539820537879491194108386807630419532977482842099204660927598385960568906324472132939929479350292251537304471052118805772379501003296981008567454783298044618521153501000007019577543658594030552983711363633581739102832980749037780313580848218734945717798037081253003494601090419599369825696797427441979022113343613933974378002169892574130827683610011993037133936130004475787267521324792868403625041464948927293201089805952057817929577634523301089894616742405233969914577572931776341286407294380330159605367605676208968752827641863701428304073256814355606525979259146833244492661620096312355358306020500077747144611695401024563779612045159960653096948444690605845207197603972775934388308537472928133496843739975327199033453260037892310229496591000645105901649346968734725267361076041290124256386671336559709153505246914480973204776645979492899528963308307917095405038775129493649888212137866352559987975030332952551941966573024859662439818357386960670997028280615535740685228976453297132858936349062725883424608153864742330212819233140989066432158767222014444239145692311054144058091821121104145298599297140232996908537637463913721017453800913647259086939255322533132455342903923155369376015479500297798895604444715333177996931984100483208750342937979893679954588245914618681862105359666183357168140499822052667846388268773255554861518343550458493646959604998314787269091395691259941964696922066696984411257961167286118588081830108093027922218721264713615760973599098609914121797575376435775525643991892579726919627791233406677039297153849777530190400224685681238116139932593424736937393187104931566394250746227968345592279809695408218072706233130049521829394879139567203490863222432221610998815359563706202337269089677902082018509544976579070994708276487569803963889288280025707105197927656501201107121423256882309505302997759018649237487204817888600714417935844447415399704781848467489050046794633587539105266137678844470629635299798017679761965039526071112547040852907720924471970140925784952419839026734570169598115169203958160710982679961546678255729180419349432245234704135365834899593089567067823395526191901901078112547246308948823181552284369238872482743673165805095057525799876099209673970333703439875559459613987288266085947629572987846611163616427443937610950125882939621564903504089558180726561410065976158691781683031265338988641665591685770907988145351446040898221518807861190908954908169146093205064187034470353683649598655265709627132762147876099345641479960663029884114466356099996766753700901322727380739233442409593975286860977549437498722406884068628795277131876790534322871146792785427623317699045970077406996983551184860816427369005574393503015059404268937840477060972465371046814995518552088643682473315734514631115675518440168646765161059433823990116438149286365977016893071125300536529097634968984360201327128536765545216421460895395419962352958568208468929152918367762781770240236535939549255311005787853713074091336473635814662511637750204225475704672281475347579520061860529235328888560524676410024279780517718172031705783277960550575565143278588296843868852247181447065835292249989306205651282740951448975913647926608453631196307989633406197575676806322558973551739595918937881046275666077891864685130661044968670970211270604467863977235035254727559395575986013347750539734419488201862327883663044677662849566001018875080970815944202868871249359167422547894064710467276619342541324062263859788258174327716953394998161232874183350662481726804284365003592608509255097343283771837548848596477791139196595006285842490631685134329163659004361476585015137845258793946522888013187542764237624064874512253553056987845572385125730281497569467936051222915285027181171390514024049342571483433904061109135388490466891067404464657306389271437757708347905014467303013052023080835913461323998464281659697244377683837634684039328718955399616732528929718332958160587472559708904157951949360272354213763250100621479599976199223294430302119555814321577153744816126816942119777869707091799077999006104548079204552787988355805317497681600018598530343249548283379054593446239061917119813862174265898684835059293815779208107041436987963868376181215254408637915202022579895793424043629651786212530457408026550545302908396330153385828547115759139111650410895241976030643801019059804146648540587632464335598351759063320061274680461038307596372696797163628490670726615988914699613015111282252054363865383526101101811367337570502158219082761474081494356964966311145967802645054390011923894310686206804748451201009882846114422265943657630956516247283108609091800768440515643741271351638622047126626731020708543667950360123486159769244220714574933149283879949602875454947641479725670011853236893631847815198856881517597185085816479204390620397326945215166487328872459682894115493313824340044500538989848972112649389300181432666484680605683823994216214920353497086502507878806600836085254033437242200273601498834835570487379425908060437993186726540686295017326293935518563254905474367827551902523845767124674684899563282730476075587103854804736678222429053500654831638903123034572553674259328033097010434356137859266855843383228629438905756198409877343680756112553928874786544001954914314871856824752463025242178641686555804840799284962419348458362564961146923468932434415513935058662819568900781441614088359919978256439507255388157596829357155242868181913218318210358612925210067161039274878322097802892984190408350207909910017523734363022522319540671254167494990846980778126102508865089145956209420401138875537097358480769632772119434891920167406653787719330002687187718613600341896634055685947879673101975852802373276740872144671625809782128505798276714265445885528323922649084970707887163528289335038461461640007187646537400981843878673366125472170940393467762543004766314658604615061446811198368652575729103385689231943268478138558365271129876687423107077725436714726165725277161731499335661984584849188870064211491316022648070889076417745897982957700671955465194692028748544593051962239520429791664895397786099642215094313497476258484394828834208287928954537122170459536938237420982390726450020123528663620946862740773842910174959928346264949521617778953138827338576930977728910487585510464004759699685962906480732300446101180786241279149736022236565344359721413712821706437460300210209307027358804651109600745193282636887063516012106618154345205469803883632188958286527087918769350377274067211193942223988557802787853247502638260950870325995132111743278802631403262710091479457366568875020345450166082809250856526454785350804798789066601248255682031540528617126591903036362849977088566870326172779733097715163501778720212029907545594284282208179173434937187071762394139986701057146168739300349860489341851261357106377394444768913091000699025839261642958016711401710879039192034270899312254785878766578199767370745529397320048301717730564908656207434570940368119446504292093707498693466818333529127580155030135285717249929634401989780289816812196333292376088293785175446340137823672246325143071416092188854202971263712786436842955708411486308442392951270240153511257977321559425581286291157614292706944311026214548854790859624389368475716113077533601258334064441836282486444193001599151427579397086886692825036704153826656984865825620033653630143395998627755884697995492370025139961582835063286021042895171072257517602332239394452307483257268496682870473615000813645471891982441357091161501629236430922951171836553340740971112834776435711110652653937584268601062568761712740693828256399845923786783267708502626770863022773861194564498312951626523331479290450584227705342391867794666362608803478348014773515426459200136465051660798259305877412854332724912198190098375377010833725886931530762412145336340543384724126056113874004396049381545042589155836225232043241119976290547759006259069457461515716889707232836039382407662281550286677565183656537279633015441000126806426643856200935625309972109681323137747801487132160365410870362309015308228649912300927823381835586038251161291181737963273804018795337312951964799404682868093095961052232561766536551611379501890739505729549809397605387873217687320368384134747272965818319775436058423978028633314242231158762547152871237540181425303077681334794253865165888435844580840787191177869177287980337200658773353415246291871532467235091563103974202724577373591562826205157042616798421016642627029182525172690180496166540335271070746744714187882126286526603147565706916778046925713125870750024298544520237854023797638687731117964780865587057156196868215044138691853551822783594798540183408512135647749561238016772574133874669619208223218118559578983108668064290155646184071973544524494953655548559486609145071820835036698490958850865953229147017839220476445676178725273461860146949840307157977707803811604376912991006441269046493193471910232393290255438585033332030496424239867853247372764409833642687360372561508935304493879613258579895948047072033415891522582880778331468353919638281138595820418342222425058161132271470409407930806585472807836049746707639778739527400005294842191557362372598379822222100382042786237126613727945343291332820182561866336881148151259418154743616409252860933428074033126618072633814018062704173229698801124039465571876061359912628042384745652230706956722500297978626559042299960168056054453599090269996132152712565952115230690731265439112474229684260670544764530448963726109722993208587719105440127179008772581810864184229218528089893010641475701820002574283627972499136494345489905432004717363534800855540976259140071069201129279227789726004136768496399667484843366911296563751327411460909178905813129151862909389830530602636079813894957380558626798986111269083658846279157211770511627050625682682104170760389441686025725548080913646471699008008732796698700081630564167106824219528871677361721577629621088443075323351145206579330585595571197974081361349222542937457966007765548264758811558232589237836765428507372687439720907595520161809995570397488577313031102120703812151434951267652301636046453241847927037178145527321133824643649639191544265517993860791456974970409417556901751788596172232986062578607811596637420497057848083168223981214399339321147148037791666263026091150843530679886462641515021256064355443809803502715342180805497333240266852775528817357181433909375478659600552341740373565134283854374152075832913383979114003085742615896824226382046570975964810480573026259243026371634324939189765238857152683204237256498828914452514224976548901296529577178850186663958499421381735777193156462548534821004869211848956343300563491737859963412178780574926300066516859912455018608547089714085821732143886904997099720712091517975711180388779703185607548405550297094107233367174026525196251577327146804133601794250543178673417296935485583140731036620214565033035298573610064703989328011399892431172656201220240378206254756429445169585926920945494828519339786163012103450175517453495627146102019599429772743011533078042338705949816822955914536869116243729298778819947827672988184455868395401551237361665049708742828517354900937115663607603562509839486814521907635160483060696114375448726517122034334904396593390846086525570920087494919402086215371022370658131005691488223254930466308070167837293247944544315579089415571910108217471810388938230684645775116201635112688537212112165703280337890528224857234033783741480551221327556281485473844651742300766009538386342902000865564524074181474015795678849009610934348625426582127874845045159787215670462956518079989259446569574473215632856141329130632407107082076886795679151074524910527364014641985739322793107525084900292771381664453318384416764865648618605215272637111145264895640273601972101581727404022080992592750530421722084932874582955891599337652808789058652202942114748794264948120087419391049034662509509704238713125725259152310950846440214688275554436378909353348353150678384998708591705090298612718973837222213335445613001152104598117615597926068810545665637628955847308236442151705624494147088029553329121449676034189324928091569823260483313721417258793461506924123959893209533270109366495228867900448718037683155886752762736289901962113388961662811157661853984396878839097860249710497468043524145842051647275441441827312996676956361457045915344033983800387076875358765914452770982750712078032668764455182858267520623344029401422454767330942081693548474444156587829724295230243223898408522678465286998757303777319426222951380364776660069920847273004270430710737775074031346171210384095151754357909098105313706179287548652881396740788299472054635367040893203515708030692702888702263535084268504798564791605202431065957660665344673710898324007219004872956739015260675267629614624196586414006870396356743522315862264243335876290834474388963216748007627009568497085722959333322414244033610401761250771969917412722225565281837550555004050810726931827858247075384707698617589224023846375769590002382188168924414017680688800796874894930910967426943193135235280708583234768084308694542212043896388621077673247310073066518025784855324488310263825611326070399558670430697288902404424894068146116886909869273492873583015329037447624624089182047278807156812308886634304917918937742666925185549690737558620626014646657745905774667695797559801628485687829504201713851630704114931277116128007607232743442399590232854297585383369035823422067728214270117514418933052728906972185027980912296237908379175059575207481959664333742706292366218017963980780785082826985530369523999248973540144694739764657531794830852409340701424071525074057577359291306718297939936877808627576221451232663135522926421579637904753164780275689346093494258449700379732958249766426386793082056206573711505933867393412241165165476683977675007217603748730359400604652215039290075022450155105970049696840232804289977990222512362893300921079642203046981799739894791969502211791369355374347486231477411334357500335656335982348279521535492529446482547681159162400057347030140618618462625077777240859119615439274447937949662039068013170708564813644671511073218176460262631535186649117196074256607607480373734379252962187756582809158108898974893539352306578015838936022774199165267915748253578911719669175880606082642979696992253690087203220518898293291285558365567852811271355482226525518146614393442829651442262791865185107935029684759126773965318149075981105819049827380083188596669334816645092963335412693554545703620381388405866430026863547394248104496810245778234624616380614005464655791309433262619118805589065037653553758206697112133914503932466345481236846295384049372704471356597054053876068106171310938827365265332635374454626435743864881163818225070684341255384224013475376823738262311936313799278254713712446313623825139567561624749443969069779242334176890100677236447497786268458681100881637467318435747845473941893991403602307545621904897608906233953415271670361143736943623116389610780345127724947781291592657172812288708884067006587928520692805868179777588145555354999839457120347883713461212003348739252074777161229023911984110486162723427137430107664878407252073036018339168143022878574422611718931971966199997360608793359188188304166316352986227128688372522040480122764579063197210628744812795258739887573424528304340329599292155312647642174806056911710072720333711753796476876197171624408948833123023400484576649974098220385393866376024528155848737907002532790903219576374556906427618036688844528695159429949978846570551882502995032846342627636387811863646865668713223574236103561047915195740937285897340385465114547481181944160257155829357504414894432353647168943177030621723992026767145369100936394426992215752630667316009384202366720825368296956797748494332820677096784555097364208680981101601763797199363122509877122157405286975020934722290184357525927531882808680407149955660490377018322298593368942874804821078439843098711982711580215085798118359714939034959877520799008843229662059838790890724506032812732985515559096864963660945825905910304867206463964984041125913690783775461369384475481317856348360711518319254614752355977365122974882173371009680534581188649173017971347102228061974112592476004989512786634232864824554747151830350595110141412048731016676475664427780072196444987282975943200908214582515757861504849557219906792748933768252600129341868263531976452410906730104723222107844961251561587929667947958545029120294630548720790782210446343549164958353753214479809733964966028461923007337291989473381959047868517409876085759611441433274426936139779351678662216614073841124119424895574949502680627562275667046604723258721122332142094632111211695923992441146037157847775774113647067436543858161383536498820232996350916473236019973959921869550422384186044149883721203392780936407279272110476070423555551450493725944259536193846198662080037590970077182557954201177719123047326011162753221152817176113460541642128153089229715004237968599913027817278129870324565101059938933797708692193297592372653528737368383367749377795894642119783794993477198598928555459462480120319923275408153524077966017002622878181743013300876896070170354792805099173919202122516073783924900537421134022154417343773534096091331441004526522480226542892895859920393582972043503013279258745505688547125012726628443545131586506680160533877320735821372045778630058680696872285377710224953148622974326889359695148689614114673072520984308578576134304136107006127530358492315190650300382988331040912055451323569908790629397793294543402809214957404230283337627396544787150673799687453714935893645891288989465085125464454692604589672256688005347994381689879143656293219771058900975566564872868915745776830865655200985262509416972164767842949598421788629490152410012247044383461854021072733377032752510699156040166539889145356068035129080200528370511539745275643229084353925739200948199145520751261176532214078074896120227670228364811598965579208988285476128602653102083815585995234479869149302434032938915591411155567766076638980476932293105423161690677638580838657562655341224395763245998094393172372603686894126527680199212828590351732288783934899881426504059490964719896657010905746637346627428099826518982082888053163920456652472986899344873233353027108516287019078186676071462624044896063448635142878814804513197084304810372218407881535179907169431590610188990916476606020661731845687493122057390477580561731431082904385817880660649285584265788624221052862535636631283055672011130765720017424842221093281545823901760335438316998954392706239817682249275093331655021966249962750255831563516680484897041216203972095325292397970150310944459477650800574602441016752689738431441103723004460594850539814696474771793977215630557062872600059842401970263555001079330789705538081221911644997084564219625022296204621448365054461319267602028827362253359678913544446280378719506984393297422056425619934320003874889755882474457625631336245071873169814165776156056311327489729470918939667575596701662432610173301574424496148319317833355412599168640102322633066134518421620146912327626315520303730575638227083800647643017398428253709539270970979742597968451698095399156842323398178640891559101807627134280854789399243908807174502094372817652284753102991536423715980884367547693573405061125557940029393449653321198569205844424857267899490769708002802388599707212902022074062181963296616227955512535238127213504606389397592557420688008251529141918328705399953705184244877195371107016766530653654710338199897037598455483371553183351910536113286595047381604778813388358612919730056231238508975595763060770366280594023490431322896328870429288794406788385076359363193116217519644080561976482749552210198076510167522716315425455454660544687509318443131145902493192878267650096226075362980881974116318988994044502412912440888788312643455433518678216262865312832595216006635112794584761008603036636866959683302593810877703771211076660759327002612106320278138269251316621158479076794240121771395915757413185750933037393660538507024596534554627628233751487832279824322033842841991653506018361977870275561292284050076926532679102358956247013690614796089758797308956352544082439535607651408234526350794283591215504513273656373661274810955216232639000988964086203788430705596788054240903371877442425867618795315038850283606014503124878533989323126841141040309726805720817957027912857128627227851579107794137447510033270266046702643508067990302700891864423805300601132986244873133007223916106475313055555627316835310770616286215571538879694728098458033987250987237205274703865566602433644135668934605024115427720434837798199527294493779659928228687933064863635888912996681639788034074085029976468874348820620849597521236221041159123815070454182845002856193795271942410240609762457197874896026526246744981692970295023393486387668195724916117137324377028795194051079434190780845097735229981547874368339054200564939639063480649031058454756216892218254172757396409756697280858450322304060024742811303223812068924739287100311994770335247901242616015686630826148418307080606111028304107384685111008501373244504039447529959356598562016497841096273830791049446297263956715109883721718895708872445933807920569652037194597404769361745054088734993455299444695250984967905126578195664011142755677620231157283633426266363675453997806881992390877730291635307859984731229064049769956106634443321030582760552735280423802134470661133798536329162858725499474957306194269283694564862053361864998598079710557804344298265035680609312523105886767688565516094089884394425192955666090791261442996202972595942175265214539041193714815288248264738195507230611892455801062524415660892843215199191840888655529485108476383069579624530152479123521671434014277785711770046174596938337748506362932297121186364693366876175562193741157316681531065209296896903030376894088109713217915787596373680737328399525960003498443399205750298532564197765749464236810827031121991763677612050633827012671545185050502737421623627345450004748497635706689110349733231384448653200960305048375661950123760606894070644014327951464805134935499435596909091476303358995130371536267001233950904896162389707526635836211337162940311448903741818784298324398374060699403946364441839292266151074473256654343620413074016077354987317812157259628755244014389701228496829026039868910447760078894967248070550923948317340392071224870697759212790897730602477306127074336087861934006095546039121129346894325949046524132694300063814375176922522046003700687957777068307409257055347728133403132387584480824720472864887105704555854539156048727325035239265824516772802521790362985304915234841157956527716057473195117060116253025318195717068000787755133721103838619481634399655199825234634023375357627356805579281004221246168812092727624703546946957704342414991932102809532977220373814250223921804881557569601691296628225690956762299883837156656878981171963829519839506046990205236300303433830006899967380404203847233708439973345346090920538506555422150875218759656926982500708299157516186684020148008333075688923996003730453966505618393016663079177105918825187171084356730262576424677016371841198934927393002176890506456385578815580210508924691597705502654608939601426058451718714124887746605904237208290776005108608361227478316228317665041105007070287644154834134920963466081680310520898102844535532024386242890825515147303072796414986270073584033805562668670685613026626376952674896042539139527869022520356839816448782917623889154002290840434336051789150177244908960927105060352138734189860887768225645639397954193030089415926070189228505181839882789090927111597442233719329432937857861519917001354619563235693533169189080246072860211829734159952546862894976987343821459577673050727852681021778551767562188073753449803917313378299441062470122711168965171827632445492789693036812785298967208580943584791021259556277904485063116356035533132148754612390217973380673934329753677125263071626978844830609113471123195845096589300477937540189274244313969071447376454237573938452716435009650985378917778754446515002980091176737027390887150839828783855677413943541611171358072600027953335527033289045738559879640927393292395635502236734777989249827304581943587179929830242385601581049360027830181087047630741739769299288810853516814795054131857460443854034851702946166856944709755697603401268083972067640896475767020762596229477956631683741479694143063859981358679223463018402179820382685205010794871997705618802003555626002999398056325472878657475335835977394480495287543492391465142172883036066572577797945411986074147027389534053984809620287039482395788129243941440945117688185146890118824419135116286148021090173583403456167912569976145262121125670104759419536410960759243178611523231475682992284085906068063283204956976760885610287117889933161790529599938643944056773929702046387417405601698208724215875248642121044975481041950615363464361058197395806551018660031565412072959652934508006716197965151054551234858239992551213240129503665843115408500622912074489543709544333587705880487923002717056117942067187028752791127847063386427314260509134492306975026024850386001348955677445675628263783133417424671336341845925573923180987168709609254232624549298031934243730469590784640782468409574512741763317762439676298820940563208858199435813090933742656175212129462612069419668070057583831358299192741790272342995509842560920183784805367951422040472963398859852464647929601742874103824452972256731121113523448081564358357134785977005295118171123409798174669800174658197026456207986400544228738039699817118113854680419141590965531438673919867940081233091958378850739647179709324142443890411869902598405304506805137295474611757559449971461174430437182200289413116474802299998883544213215121950395525030348120960796550079072678558283856274509141247462767509670439188600280566617990744820144810226492977234889981431866980491514216642220533428095686845507579292136484343692201339354642505274688317217546517228258033461384766361658857448358942307489491153211839394051367172748402360186218153489652963421803849718049616443472414961399178885168138378710233203645441092863392415162535416068567560270015011045629526632762979938843881376958309220036372908871407211853468804798908375640172624300899155631294937445951993884689153065529357303730072993679517763505601442759328198345592666620543157082516021150872128929409673184383343926802561368904057862078020329775052150302207096958753412081779215518449680796026477384504464340589279082309482070288835336881748412085371625964721816209784483167139231783757869429666582814615884591900682137400566908248264823964520949056017085547837753416785459166194411364180977188454305940478572552138515814210105794500110206835998568072532332067474770441149889726591148688384359494425396112394665913753221393435185579694923278765524038962911619348773183492574224394787786528927758226991243789574467041945284760805276030133198974062729811262622253917450359553777631280574366711429112820142550475789065017867865319657883089598739998278362057573156791740506380556075062620865375728985551563304319577733032651388819642762995141349109559680251307261267660865731321065866013962009079118362422015877689465408938149236295079544774680677810198091860124254676852157079585723712373868909317072659266253472018719448883719882606269522604993943214236734278237000895688045772075427134520448003445523687429475818096158500872578341089219903628020048985219412773983096968809597578132293531155361426282430188009502409370337400778777993466953078537644920567090327388262187092401264981992163459179047881498840201908344824369184263216462412937279538266144316568640611843518043408650382584928618030852648889270491049133477376456896067882115677136996485730365585402171135958593400804615314344884250508002266815795517773361174518954427387052819830734978118717204709376077975609396726453297009907339339889383239410850782228293591703850922675250836896843492398949201067970842324990938261222979821223387998377167452925550622241755784953963877061882508714669655398932401469286785045967949137233416629899437429444568520960455264764340062387837728894034463941747700723706826364647664373983762792545229562217900248653798510539352073996944333115367729701123147989076912088048792044650922115806613492063330649166548939646701132031238524642392179546496238884575501908202746449777279627638808970156235695907419293383910410934119541641091629903208614984344654693989305691852884762093309065651749623226584413286906573000244595527307244198514766517773540857965842365868255244847871849321235294822575784472909491242836810601300215982104439213966790842691775188694050036340225950984113254319604947173077868294654919190390500875398243336017906381420470148158305897116571102366395967807303484664873606942853584741979125414537998775353972584348972236841632429029306213296474722609451119129683746251182890306097107127439427130147786637089158884221262011667346060244804402529233924290516415441119842952085850798642187770772916374442891268312408257776292152335348905119154289986322833023373925279613713245389985152287149097545600348650137905064548271986442485367106863679770368307177354440263682314579376924339659331492974192295821778677940744013470483199160517485507048375908252663210761257762797513322475410385044952033174349099269302540402156872495316952045455307192894778458288496604979506338566468662599851721617787282732053388752285962801953992696365843964566375965265412812021679481733402455246497998610618528765800102786964717809132931275854792793471910410416713362159803670747018825531739899966527508935678720230294415446854534375808203940882919817226838403119278133346240993543568219236358260446344366982121053995458338815243512314293158816542000742582284301709857699660974079570350018774367373274824144562629508469193429109215541578191136244443663532820916105718142762656496107950023170633327517930303851363682036049331965975162781703375382018414682639913635921774270640184847237236809645383665471031794920633205011708084834822931649200509093378741061131174448112181375165177089443443659391121878260381947233711691786624841127218459155485828626892320276429722948472614845216610700910960031849562187434667982555430677263506015793971695891567467369504232499493365389897333129904489836807002880926270277940684143051246587019013985889758603962253552903195571602026855549142877091353227649547559754195424815127668622315689942316047684613495527676154411348231580570618437629143904814775195352587957806943646194658181504016593644211360484709649056723986792453587808544188001675499396313875921370421154925551286219717329550578314112028580474077603573372455585066484684491612294965279422315101292729269059850192812281066904312506262154681705433545010991167845429847378454787049362466653649721933276154996525991905215027825877052945593523658189919546487595166665321619226594259187257483798464981210641266790191990342024084983114839405408904769955262462163849208621755213794481649224527117223682218612817214542262372468058878081019499745816037890641662283416641755696476327780165106213348301304308440864392797447723344681738532983640983464994749819019142453040636310341042785341555572806226617816538722884422964830334460960825393122267050043279409871457975816443519586726099744492704498159110339763357445837161729241065218818019061110728469456811137664936707175365721952002009840308631373501966472319894210088649999009851648507133023672288269982640831812251179843273757816855783561897175928780592406368998654354921585464995312473088198925771079404505444165174628001579242778757639658238321713871433358909322077596832061963041515902446657402928838839354848276290330185993845101527474213418950185791652093990314460563758078473326168628762571567148679215361183468755126931521116564406977025871531635982836681894454190050412148817228594777444410276704004802043253590428510445356745889783658793038413736036934770653955008641290017635598547102659556637824241282503982380050181675612088872301401265200719609312702421811698188419357994860582569892284198506309719549763239829900860305498544897164168729231968973034867514659268699111668568974289297083070567733150927270403174711210415242565838204999646868130493525205212261183495052745797350644962511173685699992513244062042078909586810443781732084019855924301649268310713293266879683235437232252482403726505679111112689099585936848617068501818349698851290469753035520960370035831661027749386595054495812455481869930731634453879709555706713391032384388411758828790246506877592544818246254351915218993696453206772787170534761666569226470552843286400117675530721326139502948306963742438909326244564899397767117466729505420917675649084529152123384928927186047775038307668853338603509252314240369723838859725857100367546070488262381602440823348825545632514222401275078633470847497217833210733167665293081328851692883376062375900612485467921920943881510201364505127367368795261011766986435147747356674959002579747276594456332675602598049982647008504345147439920650428056438614756060793493886703333404634947238488964404925024623006037462897283721399139340035545207447538974698468121294013081221962785800567730843129132799871352001969317449728341152432457084909757870402760508672563614615209587678428815418764863311707525691937483454711663505823830791391696277288576137362959306372508175026467266140848963379052951723587144880898098019561417415475497779705655830376490923021749105322839800822017543342451173015774953250273421895774948027773157770416779986200743421607636789196814929385043837280571684127885139469356767218723616791952529039111649501958567133764813687707537650341616737352696123249804492415656171217199082732813916467217594853638879313338371625424339985296787170596628442666429684707458703422832116575130245259652469730891942129512728578037688200974589083591315071976059031931874788581550349508250942521765495519100054459005223937740776345964620569338363995140605841134974989563015118543388121103192807943300457554024768969513429347487717681641592458255051535387566764469810042802628724710659724740917035968130651168374301519406102703314903505162736135591542598091988775545598048837192371197785325266896788717589053600462885780500233481279088827083579125374663279112954079290681460620878737631894934259975321202377280063053620200922432410786247583009894572320687587928192215831565820420385392908748233936913468556259763530197969045863913367235686218990766779826047155657033669733696239543110630616863799464476928821091759960498321407997838962040034124633687153022149847328742399476882768834631991964599211754792133688744963686650778342631109772657592513665389782326981856589919528977075656667735832469677366439895030155880761908581593276567690103681022601413193769748656710684635376865348478461088610525442692996271578484679016972538974884626355973913286964041956354249359865527465877091514561652033120308769836162855491748664700112405669164991624747468503226426257265222606792401327324293921309672772523859493235331866050448079291845217677578832294185527494591060307184486642021831283067757124574796376512011542130634069994538933354041021580667267335074541221379997116725276631863172686919557276169439034163151751634857241112480983129110717571724685027105320722803916464807109866240750916533942018897115692868865075601047894274268148717703556683649149701733703548806710421106846700106066875495848948622379477766664025155547310561341091701984158644908221668970951861356590748435955719426833598959075605417028275889168019365761571041937563737253908319799718618740963274229485506434217073714866635001811989242146092421830157732788990026808169693467598393207315196452887362869368727749714627052416612118195577309909157014630770991515440690794862640373110482407003205223364809749241322138146229331432084173611522923796092552197175683309120023001222328470800019086938079596028824899648231498065230168551542301628246473747273965094320604278219411016092752202091139861850993117194877446595269009971800121594180464365989046091633768337545954062648737354759648145237545778313266173591582592700961593898187000581273063294228347450437767727399322915363453009825039508005569257834871426374372591502383490309042674085090435853406195571952552585331217981822513493394543699275470441713167116149624962412708255545973863266814660386300910380378452299069245048225576431873668574882239484449391225954482245083286279269531101964240837914051902624205496994126926550001922560475288659995851373754766735390758903776613708595262186717219548811847993866716746942106619714727820672538012657068426302813022898434319813802426554196109029761540732972553644352309263671532524140868324616058240441251580748999694823416482535807830032555975705007630292344658252812501382899378759789824380395113173078851874953897027818643254906132811636754054069322709210706783152575814491510186479941108832723046671926126318738040173287823840525604990826515098687896852998671146420726494167690485653199575925751799685301545022449691334752692753548417794609904348915362734368275833476621372162764881961990673805715397522178186009760960331535656170271083385590693389644873182499710360602046554778005026058965110766476154093699312471163282979832816326436448523588831968825388713103271240819196142858077362487855520951968221942154060303557397886240648892791382886092085330637214884056538811228732344162307334462216038314939314550205523929854548998569708566805468929630982803165065468535296204904466275218194064740460031327917282858680884235122698873797610809204093745549036585069133817719455478578357017120215757795591432647498399306194429155253033398892024315176008829279633668442256935534336968362921804779692575667583377303447510099930275281951576818435989294272835907533416358929589348435816617702623695864121613505550480633457639217415812707442502592826773037022785510725398860215456833173647907880719005882242957819483536951009992222582785838603666365668846250469698049214995740957716403497489617168652428673498146802065173945355012499855478921971029822160280115966429587921690372723590960734818801341753617643663073766084166057360468739077401257146489423960957369773674429558413169640655976169865830751641926282234482893797227969174052194392582780969456511020106067583833111825323454820359080278798270454896955359197964343352689890046260392913405211527919264225605222447366513789857439640977353958416663390278089718516100772338778599525170110195158264323388110501424738285850818968109542562598940047501461882336919810261625747939280879979686609328326054827665168584667406338680817137123367176549048043766714774326418163424050037521439069477714471046957013756501995634751482790799801807881998442799658712255116209154454658522818690049379463224462213513678029506350098101669964657416733980053516398004859490988555401833220612940645163937632786231267915432026993035629082503326077397227782319570820098077863933554048722581245917872069642787759051195474599794361258286300797125188324984802073949278721902174127228297836517525496870744755275630004518886451192686438000784972745577143702540451445086194083197251446768342818126460833892641639816730659811687192446817220508814983875812588962920400817912189065475290613194978312826468318489964571521936869180947578144339994509419952169067732859172975297893303624285205127636587138047799555274329144086072879576732562145178745539321833372502021636960737975874040130761795570447094087097158242501149174544140607318440749913024947076212481643547183455219359683891678151000739487411198568313796627635464525703275660426580253860443241367404280115197919975850692736431482322903414609261014294930063822960919998473108763702427276374775377552176716999125187449835879820151452823670584887829314405009819831469290721732114650068129327426343029584816758527255011438671918152498454787136255293497991092063722801819339366663696363843672250720745884613372726760001836629164637377966248266777499195911772800085670026256903496646850021847387866380453258097485043540831871547672646253378325228293924042525803817768836939142750433557324659817923662620571033850794286628581166250063321847759092811680280795387385319098128799231243950254180832845098147900126569059594533888895073131257258507948626633063962399204222943762829837235618683921793147848903755933430755859823762082580919878340625432509625297379264199651270109101689857916420683860859121929286594512447522466025406744455178413923361799840695459991835896998039219505800878085420554535659094887823785185515916419076038795721237565309015293834296435219301886082711701412619489596941071580348108218827726998333507471780254454101727654510624751272455108892529731322376256184229400218065159857537967583755154723365556685056211912434135905958105242512013985668317424182955433018082082078520939499834670001325966987491986151997947181437455734369587654593173082867324072924078526004055868096388312187568582363080609935145295953953602519033399892774802387744334716377849024782482209354291548528018731859121799447211711078866315175876868236936873133683901847270909258908245914652086620486864613415935296010785584882814128753346512983829469143208019999487804917235322064245797523819224279386599073011004911679194170980826734027584613277049810486955099237644065462783280146467381304812826916098992471462199652690622482598965814918525425305480546142975920907309967463991266355423414117795490658520595243312178886319950769930645283130073485163855881446512927052376902676061547135292922878094610609717568869331608711182534111777508841487724193598934475855476997243685944852582102194744288774135917314049638453015791817767776741280161395847063079840327638972338639129438665355108384255241787276817042581319448276193194202889329419088866279788081504956426220060903989768049530161425307774893988265444866235110647781376830844124767575037993111526040982895079245177649010539443657592655907162095777873523767045768601115033507632697917587976358637933361112470196783466881162855138499904915942704765974587372606062713067792643528836469911197392678073757221668853539507552549105467836896665340238475567855733852293763421397223134812396944931440495102817370989633537507097431212829676936722143552140296507566958865260032668759062693927630135379277421608157769099314606901276954971211277088480301766235284496879534858630763556669351910015125494395017509796873959085583725667876395260586550373559635453370188385975533559042713572259168725507783956328551922151451593087463649290224185558468032607971800893664980904486566543852116607060095249470451316338324937170444684259204738369986329222016568803516562935047338010128212381309492203645353095902700310894975588100158085709037249235636363097260733747844694634597843868803534480253750514068533889954458360671860078899530816893181391028414231917129003677328036644318799879208708641245702502776363654894827917786501551520142156858048737337285757139038223461192444779842427681609232001313743999474404118746303468767535727506487705312935274150062350122745624226376716369413217891321845087261265033510466856119254000396936185868035934018846319493968825404623354178032457978256197872334866558729556467320258212499488863498524569507787289030391319224546147452178653602174144653658467316918992296076231646117793269365720088793149469177382909135857367822625100590259668719908532587389267440505366307956164968292468426419756228599769961421185083970948204845237986243556396382458121376054321620133632632954129626520517427618113783989511079437160950905412595842969361334324315914195362367206665618895148164228934467545695912529833259684044636926801168937681455900422742295856739988582520590750019824453091591500688138350578222174250752540922205429989970521011807584157300514001596612772321817971085023342381940158028539455922859896381064656378253969727388626740360853041453795087659878420128792345056363322338392355843643837819616489877980368177682065782986593208390932105683063101807503201509922876868202828887647049232938748352052924061888758324646122854944890425767899920287438793224594434483290869623084159871555365088098291864175808338595463398681673271261123225174724137745671234465839576659740556738053155021107194027319635532944204952886177651733879468077550463833705489907792299520092979511265202709887896095094363069049537836811072768738212437239277905544616285370318399497572095313720959010228760919062624765531021276248735424932200652065953617937071042577057094366171784830242046804874750758873873824406005145155081030991545296794046389323382218797288347546849867124644743278854033630511118336614120652031326289281248347757682500865529602857710547824724184921832282332020946163300648396753346019708854817872904623491982293805847342606477676542208554412178453971889238202921703236584368554737874189315795608424602765410749109488424830908067314874990221489626099487688828339956760627366447879350496594078097963989269881292789284874806860271440799888690507252219756980063433164362101235029144950671156123840173338784818059343852988728504438398213385271519847030770547012708073498533734605014093130451157779323006357831792889047287104448922010759988392897024036872421366512736461429572872078484404976533518611698576127358605762930132239528234824160072748415489999344691206163309298821872220848275829350650504089975712149286435216545397247938141423002883086871709895735466574770035143185501956190439638194542617127394539291525435249329708083735920066046796524657481375621931420072559003495015766001519951247676331887398434477887420619928204181532333310835588964629808390751678496094360385378691529633333063173045269379955196741536012667435031740345912711942499542739630494032783162240157835150813889047014702084718999192330205544722589821925857195069441248270554384285156845914401984318635377733542036860609417328782660543371501160206107565578112174512442124887707743213548353107023982711120575633777261589776121351131309807062584572041499577801732587891258881638548321308719587604936049367515401278413415427980353284738201187702208123098666412743372557243549130270867091222888041372005424568424980765233143327505494520903061103332938438028846032253181243502803964249923347812384421072384984556284538720818083606926905563556367169640084675904543569694016743581525817324978246897380994025585805112980487332953732643612438939576072746185093067992408132990553080734535868501843551800268185384968672224952305962753974909099724026047958340825911490127731630114281234294183026027146684347148626379640661174541049312974756155999275090378875174378450516602154947544684635592472061886548022977580952471459946602194891952880265743008461687619131424927165185499953519115863139223638982389156907514965681008734877092500331414680874143671058841705428750822348769098590259738101748800177843861343813339346267911485784564591443625235209593705695486120066831852899253539145518053824718604125278587161724374303317688488764482278494493409396236967941562089054756660802936315709657903194986749425199824185841978626889076893540802266191279616578570443174864071717528160554446754763906901667891554815103647866723042671059670315125809760358021481357026059625808766675371184172581595087833057526792501317873426699717454251470024230917659570754057804259929644781317160095577730673033009810231546806188774060745898028078308191577529377059900887847889559794909700751857604579088611412307536000752000345505814806830041031672941083535664995659513878486930700242198386443209938522820091156007843662132853979883572510331762492193511443979296331167261831506936187296677399981950114745891308423126783695528379378674822984072599934708781172776414732783032029840743902308116078089829867558796641313648602748465385742391316417566946922478810202168372589932866914736234054055965722420265771019890308054307447328766991688336281593653063995175823520660422044554522774616714708997365152309673897585197626722777330271094945109228316470433169178192996295401582460314135957443135418263085767610715085315075264216143795323342761334852040846287882648756151347911564126642744940104923401214133487570260989775555334765408853539762214706230936220891831646311698782579203769621260265081297931455489549396310096455112298992796499383455607000111395451187217388860007608967115363656792471335833818964684496362161188893521290225536497201390313029716117428775360714514166513536862373638952382633276120050724281308448732998700016804554997591573990094845818845206947404597227272326412612903277376684764458637780251405626052632244859367019571453680725579514950648642472375808217120619159635757996469572313754458141965567952282816250652124039680300487676494602868099371557595265566800727195309728635299535772286749414454620819392328867692085805715476041847152157874833234790777927439517174357285386372260147431972987421030889738009057431153905433504091076438223238591194354066725142334890307576835116382018581789937084935341976259836941841759608602020526006630833271580233568382270155862185568435136399579306462748791825899004405944848044671959036140080299157224352810730695465962129722604602292172342421622352642122601835654532168534379876879717644538945418207167963307672759741043787220752560600737509745413325292749843608081228732619065047415494576787325787084343222269036169161712719757380745619952997679689072941776431381299705899571748868356698766055242614581962799303533494925319499395037345899852524881471401578458350466980325072471377079059910531048167568017903589537292539633803661444911463938907083225769651176933905978563647985507287197739123935660956713392559207996821652659455893590457536804979972388531836310554019597356266955375473846344807561524592490967201660765000282476094237743776499958753254049115965659503640819689992009173404667333736256877601524430099569586805033724567276847139552400715352305492558056444425321708052194884077700826983431981205190597789164521320139992859470672592466670802195768866559659592975414872821544906460659834039841146592587742463319812224028628217510394408765144049822447508227019875312187912403390077469476891510316525628991125172058689628729273884786601607083905595625475914568943115503337139385014387462126793607719397744317432226284128561520299337317973884877951461030911966019975549707500822466410340965062254393868549554501991867967144637880885306685684957351287847803635014619109624864745633549399343659583307675469429186039656407457327227890267738120106258162260379698895869502263572063707947046758440106413728598887118460189749535308170914090571227576313069699410673386759249077306781098360081203581791013721337658611521684626439985543528702173746111544749574324056578479451405235038265237982064737204775336985856572922916019180058706729225321808207069632444125897917038971416180595899599833976866987102592817944761200819725319242988499783796488049244542167966224816905813686300924535501944618885781430071193749778555042579825296031870068643181573974788039617231723138668750147753985662102613841911651270967094167912401683435440694089545212724406450893961210760501707851777599159607349474687313076164244087999255671910746496570336731235609169902046541947937692462121654435322252466365245365773163370029886137490681909171611915788159684715100510622771414404480742177705742272883805335478734914891402543916830686663972538494960424532801115344369492285662113111313937141586971336051955570017234721621808419067230298377191038822040995889315396054329113383748744193974172825408806642997219171707529393504413802818437464683945698004138842674134245844139014092214142372422358636629114659327495671460765379190695560216562937353209169453626452408159252512624395911727507047308018065553263772434057060473937957932514804700301646200331482618792140936219085477803769038397272753608821447578266348617640121897747775947291574053851885252778577525568930241651692951874761189137104438673970627252730707520316396624274576240680075224176962777688596366166536924858476663899245956393619406187364495999928331442043417407845062100419372903693801023333315201535002580163565308881646799861048656621412245865456756277935671890141377150849313041901745238505863504547165588887159809956505249219097386827373907148284593903530174280470506791070039837073572775998925744367785573221087313218666445210049901307508939708120628502399982689773472168921149134455198258715600087910256906796401607928453566300222299182998899327801226653131366866583192088694396881454992343543127440697509965456330434862806751406898852925000720806543016000857099650078364498216198682067048817588875473302322488066817727990119164728173621582556161723032984141948434302595748171575452048326719113457883182904306873497497085521837681104195917046669248172335358077952639497051663107550904635985056772916182223462840713563265016593118459529850369167876259213255348032788127757322657126166398615806832783099998031022694861544871813457374544249174166571291632358701415087448369108544457363558224235717308389291776091504287225944663414614681552841267077047295649030860124647307006949104328402730526837842804975588698141809831844578075179923456817449871647530985096593612741713100613906688784372059757871727055007833727385888084781332830118630600532936725298961615287221493117709617815766932541170685377576072834958336014082922070546025405038681509623233596210754844393398892338214884943727256618147714306350359081120590640479184924328349777821746790478153439430931312581683228239211087194549418869941106517600793732596727135038165755977949462683320721193260862522511748887720935904097133968211399829940660316832368776150694909965242827216518250603239608192186664441873587143557607596639285759409445398509773145200956825521398199665744205776441228104595478927252281346272726803192944449084447876133823221882457597668664298298488777856293289084521309639040540333054574002024021673741196003322717804411877601157505537115003842141892718914100400199898106390033091859702359138626750547271012472838229499922927023341304952332258999525067182665365953106123515886646511113025485891448834677604954157693500470753626218354507884386432465376221077712082572880622452644122850324130241311043185227751672280358055547968360898363205925108814485884601947674098950131719962113715358196362118541178715326471225687366433571628643292047542856700844476251856922020541566134658278194328081079803139895733104226993296089824369970485379508127763781671926065025222547870472741664773975006733153766694759729281198732047919248930591475750164004712820705592811997862222222268953068377625590023224911373447186127634133219335967829665452581106361751247207546740689695139196929865631061926557674121427721474403382343487053015480253572677439104303583710037872299044654210789561763303610110444196898591494017202114494018572241868148058831388760706781651861504373182555879455389784917150143562153220750328074500215158807111678355910655890058517543880031645801811249020981549671118281528330213997715303532981450736701211401634760847607867217996180728967364259969891372879824665735594520205390385346288845825803627684323169227410510831845781589204745400406482325558782491132601964139342928410719076605469073706855150922398585739275844403621523538534552404043856653224803018676988595135828156869320157207224525885103091448504358227664379028442002941792612630627985996014630576422398050745218808731043412541457448815414534698008438578234454091769802026955088295278953587921029214629457886264439216377970891315460841340658518065080422826843257899820989962448455004812302402214227018383151782338753853202570415407078484881461803905985266833318199880600342981259938408468505665997003637993649815543007584909926661574896177860964850576320686546986154278428855924297058663960119370433578269154294230430541855647206388540718584799033313284822430318342890883780082404121466425886396930197742491192267446209526663184011169246907997049104477244361519534624441861991480883021908922762556571496598747312477309244889463601765833800155182061808228965556359405189070076686792771072840466247858714875976301821237524921726235770364688178693251171202696656105137246319909699372796023697846065423779147655367896190232852948084742174384395596733497712273672452465273146226473233213303948224649408679185308014215050835998471592389887876943071479687495478047547783439540144801893313352031417044145718978716099372777052529590728449227806158227940476852147673665645547068339575592160862149670137239330415527625721044262329943287750616801974405006885589879038176504600326909896887399200817889442693335453276318828312089918902746802027231191765281707408368401966717791753434226412557065740613874611685739148755470439469036591246564057636589482645657813934557795300579754122080893637499644766810383434936475159463579973142362837004937631053881009803991004094567715465788024799167443153471400937965424623239803145422097756359529338621095496156326460680937077516759254700828843884008709468686033401911196454097546909382531579194271052844298621580775712218625615198286052581173656883083871119838018577626034915615194318229483433856514509885798890444947919074169522747893608164255092522082367305154873326384484500815418058023369598040206087878578613218440594633024377900640694345659699467787674957985781556273805172168440938904514103702674027706849063672773195997277127875956654420963093686474725720942465212641828300122160811300160846525939101377869775028565245570177413772562157272436811646282072617552086814215229745191488564892422798958470490538939491534478992691212138051151096005368193823222096954831174928288369322591641496809482672429614595473330302913647027497367115830630143621620291559441283148309087504442854203935433567021101189440668629302072887484364022080163001017938844635683531267884501892062817028963245560162332684566386132478073639360339341252731091754917417397433581153209347088015662671942217997049039116411844252192333983123369774237091593874148490205012179321235439333641369096422586837304045262475644986408764176138874912173784027796682267503599837722273940204872668874433537167909078637951986382506703404049082936382683379324910601910602145185326345319809785012638846912319072085388222363732284767343884883743480841418932073631850864459244483175952579601947633497202417136673619921797889508221391522206610653938177276966205366958273928452244825894188511502835600614982225006636952187530158746347554614898739951875570628566072146559140904818792550673598869339766311920943824945893262307616643157368206185535362667085014726687912656238253764366270943010124091132013187027781173714732217056614276038499454956851120434119516762968282540484479586137779865596053112587166947154231297808262501602999461698990017117255206077491977466340199491697986715321460777179845577116888575259143085352488384585307177963454977395994094114050950687208505176055136199515109582708527211450951407297150059115604315525018408359156230283603384334066725702458022598962662709877333742630229378959234268358339315037598274571224853449450041574797122348823384212409931332772177397649806625177011831749423217556686551843193168993282834063812018067733448447620294095250854439957255457209851524177465396685507444953384926614796954927806009337351832105712044983727442089372854536225695243977061055957882348616290744026743005070195938372480446618399025600111679374045886607835482998552499065628730794081942277851243767961590998274738347438385528838069503738755846480145572410251583386527920218554380489501915697427116112077561666026652830283935476489421693991129062357445208130297425105836988530250792638863831400874872667697333164912393214921823204183657520026559446858717894436701825083479569043172309528223983738842677635566736229349824895064224587536465489219484986612745144954863991821034361458181721128820566239570179209637910691439427002855220019563500770044318616083845928195755945134614635142599622635707724321503999941813710983358454846978132137551569021228088302846969981989813009705874583290233574647263440528926291550184905858740483843183233947783248327356162990459372558014682037969461737626181839614205953459182898843405542181702857514144649788000784327478813852701329055704475017180266645143899003297179800887196389420736456863279004069538379391742484465747091075686693235983671058958281840672346127935811383698230628600739124227665388419951515754386193208346714678522917195391969246190218186904358258217317884515234992960712683323793127238295512731739456972766255198910451598987423877833326682705530140438896220056049259485967353363048696754547163486906593074823780552598942474356968195073653235441021809038779532177310182400239888949650240146658883288508693185740167998222231609779153043738839811380006590136283307647918335368741545877188515341073772115074368535869402341270346149325973428390719492334253971270392162030401052779002636464061707575055054919522109909475034029833479263783254735296740418016087742117255290882111961630698259848452840043735270782404662390216215844050749678539996781730914762407633818037482124677884851132584328206782168473673377965585788735574250957669869254812152152796115889984711650531916932921136160600820312235563080593223175438424954132642425299441242043335181276118202915854588170873138247062336040239417506977405056538929779055176115808523257804864358137870804687048233484949924103132701190592358223087309061095015503801923026123337873146794171668761251062895884189542540263966526806131666139605118658957931585663743110608630236807317361969863645340407651829436815987141654940634924596464826551120759116364805839099985444824163770643904039089791840911782089193967983269674356223674524758948791647481377462861144305790095935004793710353924109470457627132186866753184966797686969814116987251130475505205406674894528117670031978661241392339984987679164628323973516477862450616867927235318194287972135261098185254751759188615959571566349437496048693158046421612305383841349528737910382023480980409113872759130820420132017709069452829820203925948594355210820283630173618619079145008541467831872476622877697811104920295301427519691087409555742839799484280544994663439453138821174524346853008897975433949573545550244737635993527101812154392617111605438594526468971927552256008536883605434933758643691756947188265052890867934160647424167778544338739646531714353045954735451000675314968782499490654490403259233428332321562185907193240513297224638790619369923276368902005358136018744152166243392124419433732581582317737381481851730373297426116008403759214129830862652040048379656106226942017168934001552012114923564983620581151126477403418228371341742458934683734745082279686643683110268758684591608702651741124677639715083577068295723274060340590980096772068911360774843663464521351167664779034217436307311026762590018035406630874618231517097623430997751630077201602529007555781878711742147624443266373373034421690467894838611147583137311273758797228596245794984948707760777644656060209920611479216196048348904723290455024854822905880137690025837890849513890968328908919599182255743742487288264932536279724668290538313853538839856203333975345177554927417439820793547762934903767887053273917649741474879841248584207861024797973054177045364995064273194386445686741237598818775499022272884490617315383491229924507337371828878530326361697667416477719944043338187576320238187259152308580789498115427578844202527627672057312371341759884334103274923074823794486942403476388985455994098380685899025224752857951960710762296379293548581805653820981334937191002145448840781563379997695842824671466061791431587603903269719403538530115297686239298366184229315090931713240063448922933417606324997065086582014433240306414250920828914970698932460045844008877072316914038794852998430162458065289147479084089628250029328530694968775042328757000710824420906479298632087144018846025174996363976548583029381502761067056723384503115222934365818824202208918311626411874191362816386345372570867443378118408489741172438219840969195166956289506373539117233611153417213151904054259461414932446882621728104022913116612505003309028661604223489561375690021489116964723375137962389768444931036759766222030501157986230096788842575407508890968081492124613963823616414040657864789339322566666284049091517560905493362011444714801115182737838017435436263766839038108976469428176622734867557793120419394591267359729618512812049659314679376497531462392872463322726620204199745429891200403164967608455989136677758010066759052634327331215088591294465406512298430275568647001643473176767167245574051887900559016645930202437545994217444000688925181407889449575884699462113952791773664952111347579494385919401693487162623898516590359960630911632717449399715860778297164755719079125642934103603137224002640537909799649927401389666716269818318575439583957383431238691020461048730571729401200210426219227837314578202206715399790549475954063614632478343364964885113967946699075518024760113680115210236974302512980713857179586700525051861621266843056223960204024096424239964678207410338760966434615324389544141210395966962799790941706018948119097795613235533142082830402656279425365404179142469420585710628588432289424826674550086149664948617212854472457084777102561021173720775591026586196806521161578284407648185668712327006295313768990721872776710456915939246061226785289601526329747164663614381091511537864016887884308126026618100383108034792539258046744395448881346083500443115207372279246573864233604942436827468861084894813763752482097800803599264126769079020630548310326916150467620316724798798248719181246617197652019514778285822508037368838646373162131716916016996171135106716627171099989672916857054393655553612551739247754095076856447930229362457505370677700622850894495317530386468256525196558538502628783673572558613457825457724463274925215074576405908788958241238065699979581037082642585347488717586947352215045839879070389001822923400444930256995521687816504947249590116357667049968833797745985950107671491292464728984366907668577483581051322468208117538731524138276204835793787553800933148832088217929693372418762756796331786843954352028958977579527210477107552644332067230601782446416224596563800914774463056964760414885367276616484682627287485901690103638492372563965114642199483006159329626044251432430487597979117411374147749295215977753703540503017463247609205813143231533890793991101222482307317221585193652955982946399615992204208635120048503809617326053084592892583721811455367485858694651183188799408720289972823981087668199648117531349373534620205219887809341378975562825420687092945169288236236807034009088041314199917952224090504988665288461884315543222660682214660597466506027299248983588418698450503970943598065041999848190695245326194388243807673805949735881782667440985272401198649665215056809016168591827004783827123160817533692673629817885139027702758721924990441163751893603028054941571105924250822167281644005872259369468694153123053693881362759872861106242951522012499080542800143888722728108202065689943781272825794711251859471827250932850653373582796532681648515929209023846464206030561206548683848520670465663251091148095334710361477696049256269041177939087191108032397128378424010021911320838745524502028551959317080199386219331967743177055523198582354756428458418397444274022654986310880496496875181202388439892665730884152566424184660412342766127259853466172600191942500786139038898404540806400891102004969899406947426269928806785676643912965453490501297625799792978630457998481149608247580248943331834768817631890299855778301260640101505073149379356802073833314633170627904969866325665937255181334101144266705310769490053473417930910056537543795929283846098596986463078744803100818050625973886289094604417418991559138120216945764801685434041800038987302739787104025322172962083610385625694525929594454155016854904621269646056173498534913823180489337780354414668499681018803567214170399176867952991796655842118735374395359742190212892563191670864025602984509026758338682466752267065524779130927239451518900670241943864300062874005017408223931220319081527351902512558019362097562785413964876263034517792972221009049022218349267034315326376795579351165224717523612314425726300813845925715020569019129748190034206378424852429424350881675719246570044960827994892772027100410692880564793314965231295147397838493622843655319416788300954797895144024917880316034181165298178624720907453402407288089338075444040425560645375029770144078557404895854382439789185864653254037127357895268823721879433165531887415183572596071175524267668627875708837728907129497090782397535349568321198091283508936394129109580986441833850590988466493740715387370058183567527505394151664484308747846968732232658609333638312693008648438471062259347299962585289954361582468993165564103779030019740441058420013166247417424583835122559895317588358189207396549207518361312444077601836810797503748063497108341816810697079970231179988659248439746703036905280187163044813613634582428488801678460220438424732139675756196262152351236443602265150627299197437631706691028084803260703507054853204909344312674937988681330501891619136819563784910761275858432944410907871122827391860070419070211477286854379325047520906462059009713210324983883946321441457828393167907963142534392833793575431053406499230550879622270074869351689475070079469348656835422058621558275253825987081399396597237277059525110051917543473782922957460881894265003615927670066584159789447969444761862348955917785271145337530091271714082192805609660292462819424413258233019058912841637952234768881209290483817923381022160996190526021703337278113224415788742841565989147726931972071504336035908281689989446453189370578866284648517563092072659080267301358936529546829482358508805405988190781741565591093016402452085415206663554875013739232431934562655830920909182445469894456111718767473375188309181163083316086297563428467187955438176300973052355072771222161490869399254619179035998526633250523697139635970603828430261256240066740029537888326531199371287131465205166098027392475264317961803087611869587232895584711321009088169160731292371858500937558540389836013272883304256146869431743460538338335979196590915934597766371821074869107213183675440448660307246039578376960237975267619362283176978389131059539403025964600181528143767590277708587285775607432628411091927110156649329814837345874610742596194023753547553329950722362601712018575402529168025750242148195230723391048509969136909638843749280740470003448692971754519332331809237026771553276793930778689206891383049709193217275139192760746978636718375059042154444352267039247743564714904257965843209195139976564951007540240981627529737978208713118874479820619805647983677451083457632328202295275838858724365076878768513593941712016784346658960451765053030410629084138514788584428764333375884056040998942975071886757236857593637941747288090070759377355252520281364414372756093286143463385676160874514883773541667231530713941735375656137742867131075753547345583982680668893038678755877928775566550367546112084921973531572609089702289307554387997483219375920957136915151676415441410876614357109610878844566231748222454734456478451166535328471346450959086949311862667465717277302061859207512882684196228807798629862397159028626754703783460949327698932701264504022888906763613142003553845199341905589531368548041418424384706936221919034175439315074178050940391931867490521988884038006199617762670842248883569509220657198259632977978511659881013543381619390315973596955167128459932118486697789519618554583870407249906681668807734182803252806638803124575706564083265006230898087216978713754989235965140021267774931850386037529103800170296618773187383689431645384599523500987409736588514716631260501492273514891270464158805015920157173387415433205276021950555315745006105400295538898077299881032362883810450991644698121521476992205040409619979255980266291286004392521867122357682039825593658900720023264801189618565790333637253822870027954143278864075812616173672671318291460159885065016471474810234133006824417459710675192289310185026294126042463441278777774594686477144508256742091330371473828263508037344415718784472543905353698546371442845931396605845366366635200070022145114628442190184553285786958712035127193682234595812933434366907912278950175299126021855818503488079352552869785930453218734799389677042855622198052864438420901595662555435887885585915569034492252647097573549526694091290101784548988996523581973656563965338790597529831787809121436864577654223555667118600233668866614233240288129851686238881368024733935625092381697876523199994871812177448635638193122036277223421766233514070753807194844313759144883316431004833895903824712296111937237840076432765120209346637391084682197726262016753346176478567315957027912618994185418714856373136393807224794592623316054874310509741754945221258973281748380742469865208121063001285821341969124263402457151735674355989270345108859350544854405800783907320923824600755651662788128158259106849781217713529003198568825526743622369829033935861635401192842906082115876615380451435594476545951665680505457803658580506562782815254638361343182249599634064868640564438142225200301516139630784005315247831922001734097994883566602419012017491018645289327017596556585363934777477018310996639688780895088208197058330411085675858901937651980162030752792876679869290882743389336332044687402306676637864581894349958486979243631494328978587886278036137117136671853337945813978216364248675956624984029598016441359745547902385052675550251228366847309245754288162919230498196814603709991934157911358654558537554074633711884128671063440781202121179343285908883529223410040022960846557589275187280942471399831889927473740702537022664816699716674750930907756684636743037510233528479466539398995994108587484207240703264856032281753424226262031627866041279833350271000462904444746917746213658244727953742716822575533908932275863689374816621911971794248483540648921579634366138158503633320903673711937206378589908514167447404482439811719502758362540481416925558918949359575980648530432900957541194904669110882438784468203779038620152028419154540427006551415029061123243751869150176158672616173882665220906342658086001738024611788709390849849082216079327417176817973081009472697892615483341466529432564157529766523093248939122961943463862591666473727109953008618724620391862633079970495754636596044428983218537545012289906455571847837909089526106934955093118134487900710334585386103704450179138652406071934847990023508713472392501424311686003982481198917827682140779070513552261468869271667011612556561593771775119230642969814421271415320281412188213080588219992667854900987033714389471968482920102952150466147345357335987918086284523262513816464751075083987190747796297969507158986381146610625603214136828215377282387263969114313361229216748300320801338457090491199962325881267994564915918629030584871857160169226864358893741606180970557459954199626805736591470206531781292656625455343907845686398734569588128287552959873159389748444405102982328225288238114792094440182059247856110568963373336084498987758475270776543670093865399285999128486579783807055006300509148134219370395387209151796455451133025221883143849445516702464590725609546987774341479511839362080031479875400968707799976019511817708675986666391270769945371889236965308835030064345603886179140424949200888107772386809085905083916049337668659932375275355391205870728174389420519971882679061913896024162128412369523326886225431343827945223707307239598306475595508223235392112240400035422766784919715877008201636616970008469484705617551952485367799439401488935631265297877503317569704083180046226468629231165821487051489570487275434578392551721424163306462626299676272757529510025399883377665908388838096746297334314245820135670527494721912635938270567386943211886688354466623671194447931226446722554377471059222992073124658358392634213103290448097806022861800267636405936879668674876214811529640658632900821684323591441572341404471380272379876891215476496948731614154272422891765947047364205279665800260996931320502873567088531472213264620855756198461438763258625831740911318757341970895038102546387187872443998611603460797069997164327287056128462105137279947186548022253535594303000146251969010997983584215074961382308229208482113787951078717316599613844882276248807451597178964356134015276184937414636599209526835386560994239381163607678509000928397799151549321523051236078241818849314923789200802952271697083012368332757988329144673605295207083874376634288314443597445721672192656275556417017028354641294518998904241535461080045751446824112628921066276687304091636480156131036678472511730003756074999857868579289371399914036843786568466455229766130166393922865927613081853091556378183952339085538241758014030601629435809139196768162726598777446151541955100773228538643595484941499059297897262746253036580367937409860488436953532412124538814388858426628487268401533122729593756127276239786923473374029293285855315108283856211667962035758795804844262499682389007464118370980725241445712722983609549273497701410108809476143051591774147096328332359205787679254449966793911808360951592806254485268291256531226438153896777605409937328549211997837451414611467170982411218471798739414845751746398902969047751129328369361436528883372799407712106425382824971737203404172704984809129010636600756414887540474977211551564189774112132719816905003313266199590246796251569793664422157103287087838393111461979507097883597578633091068339589642839660735507487942805168383367696182794595945915759312038158714266490107865692517614956380112367910257401639395320501023736828114989689096300783511102565889235368885620179144358322455472501279695471777161753831429791247903130285751915836251712353912839428077820627078539371215209375688986057658031134071033875522136183937591319464166921253713714287332527602196125764888839342821031562608952573868296547876301680247296751954918054679685467229730921892519028650336435114917855472940231127941018564473661367357534662426705559405362756897879718712005120305684040413222711110042775461958929961513192508173491013125293005790379679118312153099146291246789595509203521652344720916267785237328816471886460555800081266014944719663643686857045048942574143539642731909455896831452316902344652384274726920243942231150413546977783431965838479282185162891321292754381965400278651178646107331049741491656250540821549463821797089807648645070805958353035339302664635821666549625068311701131340396981587029280376090187633504640490583454264555387581851734439639168414214977177469944646396627117390586604346306997553533693531503722820693519813660547539224155960993259040837850379575380753878808610228095481169525177763605751689089689032655323784013117295365699404051389910937234016601271711936169727745262377695116114979442843452167549825410633936519559623634896987593974274524802744071701894214753849074913012457632704140408607905484260889798905180906580473844103147027071271028820578389993591334751802756974571256014065760217376234704868724918463909051485819480791369909713205973395724674247522914074017318712605223149358513470466465503870035068311299113374720388983810581100247447633327046018220975600505027182094117591526106296860915074280192231497733563343537223051899524784363055083809055509425494301005199539203555715178656704107972840489985914179718876903376999697355616365785263320194275953147713730869225583803338332996162473405716020860167888957195620509607550652452079733322957437465406036131700505707013136579421937862385816426128448507726775607108365441159130041536878335256937626086941047285193598897302326580563566067136145422663585656312574136106110662559858060257108020067344675754801292427106140001913613290057545839969775878928596615319442936617160412402511017464268444176152851133946789105679323978458658280411624767979322684796137648707657074564899276571593036126224062390300923015993131364831127839117945192009404828036034044811461311078572152006474692054357980658373166980203252974545845073202518581261326247732334486246066497006572429433277544902040961362416172712938083455845094985941863075281185723740210865285043896852336094936786423885390900669199122390816897710036404830180108657974740379191860717864182985842167233246976831429935186092928164020234962309975679942555385012931390434795853558937550819470959096423952227048134189754753070145985244910654624310032352544176000469752235839076837202935067248582857277067285800325054712982420109792562614635625349625328819422324050673638242041943366505891125237373722882088440046084176407353418881380447405763619652271880987421227398371729698123684334764489544293626886246265152935272840185250553826512594196213950210284338636065691475849480365296429135626675150764025629639164453231279739022952451169214233341298168567526330130368234645522261201122163497572018620680717366487440305301698669458800479448454738977992897135301581076952083179123437401392662613026648518822557468103980590486654703250065933762163548563005868893885341258825791124488416362431618232962174215311415848146572967620745205772353381669183711621181606757724865752944431372278298703128022544793230389869201558295601741936897296984127611819077707460615318506141662802168604391779882479247667256893464630550323288393292466936742103974911144133023773134622262189529362900420872876198005996384636939956147359531118022828741158417498364842437034590563451663470722137601649991518266918782701071603817635349602738188287520415146110024813589795553889276158717015705011383722035867173736434252879588298851793091357158340564241411741459768357218742447587322473580643409395823028636100174513899984693679324034652601601293868693256018983232458597698177096140366321330040738297550479966389090765300937705032007118086556957098440611405370209541461178129378237519624920469063772094343386104862094455674293911868986123820978252027857451209099987502565799597038083378995901046743787856990380720963361298813903538849892590532067649935759306927816747338536739195295550521193461301510904619856486372832809642755754822676054015489560446001630997332019593755018113242858642875539891275120633280658474028739212615638808698327055207367436410370820959765832423329754830919138216043164519290457119185991416385262320100873958998162337683787365822306251594270509563745926691761830596676648853718642474063341208792234904039687634353711754016878251945486742240641566918571645508261854890722160921290208380028446325968836334922890496391126319716292640447893222435676298790907592241881528693434610359176726340794989029405567490399232559508918413142326231963137221673677879473155564490924642960529573163990449360487033567261621883034881789877854725226920857854873707852478396506470989654907085487230596473215341299331783554998845063898858817391684270648961822876893378953301806782860065112324138029007442977508931705166256869563801939113625589726390999408648263736927048230072279240588223576546128348537640913950056655815064415156115699158639670537281713514661534731327055672943490836685970551720792808351893261018416860207084323467416778488410299831672143795013636602639252649159828265528081479457861535752730850573289277354285240032681887783939118544159234494043356366722199597959913565740587501344806186341034670973062681152516467062264949301440689125512064212054509288569545829639228365063958702799797685183581054355538023014794159502424722736370670888974709700352935210368564768399506539658649195939832743699825794593085386857941788957015423022025346722895880796807164444491693738710179410264634588927531863018356242980275293290870225950287494365990058276381745346716616939244069306762898156808357376653655142523732381523836786996463416685096348032956023078059093608917904497765171885990901114863401386577215540437675121646111453779142353861717349629445932919602030984966634268455973517803978601084775989016637317136147399640849498555915775794588280710973576084614520106828283640431538779513489066829430225641262404072393171452306511277030065643465812699024072986326925558097025567862389122773582575041251561419388913120492865022813283063739851594026858997793430147184344554085100904239787548346249629966247077468263249822483484259610427550611130190166081582216999113253125568595997246358295867831786989644625431411416099265507529665183991663883517331711570751973172698923900872015034802746040428365620586335548334173322554699867867891295729663938735141662152752317992104365483869808268151475818628495142926368477460733833092056909123472235076513475298615216063504256632698744730405781370562938904908814101307375045047778226388884538125676897470510496054800931147027928899858329217687599711104699980928334625369971776690307109749574765931896961708300597740990445076962554383310756286928500231851282623577035230473441284759498154581593003606344099453514564452812493826127242232582273163886401328158248946441692195905164520294709312330758391169342855662448639192096232511922729914250798952784452910603163525670762864440193378352115256690342593552943146050708444480452263176270402868841023955503256687044695912646207138762425723810680823777843727733489152871964507437977922015729538490696150543463091386351983246497156410309284960560765314876659562928330118769241024850800380063481704125550574039546095883100961971103641346488186528386749345433602534272959537094256822093867937890198491747696355757508607780493892393997903746242632259631149239993501833824518682343616646893086742606215596651370506696933673395454401213698131132156284668922618937660743798506317510638200122715045211761958217995622852980690691138003675685771020774615149975898639359310596136147867391960690947820733867473465782628478135487450393110012585761280615641508301667369316676604699501296087029643293236875134772160325018742871412254662120008096709196943229435669769783348976920554516058149864701879710911945728172284892754138952997863520722220248683357994179455988214075810160637220320066362049864634759335983525750186309070943000974195247416339278453831232184066879143834540759483979030737728014879850015374192463283095097297309409213414566260264981048790837707893561330338532348857477511269699504995994686916981070841715822525941279914677974312338968744196754739827170860261175524715120837586971679288019040700318675570479733457849953169966860515823697439002700940891996393234901759668903742516875113565285260833043950755967892295340625306807606178908875282870313717479631620615634888546352239666945864767770645187009080596288837747352709739220360611756702972312799606128759990060889845231261242940111749119623733621071772281622322561154919447352930730214692707708768574084723721152706734877444708273071054726328797128546397986832861558736247820282768844505478048405456317263316851735555960157340482264561643405627375911413800062349738509452900786299316583148277737042802424029778740110517997221940614942869343978695813422956100766498781921608614415535710912461397340583225493531522997271349797841790238404850788678920478545100819707691683493657345971889552972354473538842489480145312146216693865628982707144875654625002580496242418318419405310424816980559370516363650456100862713615728901278302079876192195744386779749330009971231545772454932501452662711340807938891540664925663897393218541209602639256612940773647108766893924281924800255545352125756608776405196255537240291395853624330840580910979693250032596399138393238200498645341521785800375548532497673474701494413671095327971643591479100816694658796907104782522509815299028280714493282057393873526383828104038039278932537047178031298749281636259561521728370030958635145570113903584467777776089358500116594849207433510752314395135689710160973784497857843578068873257612524688791627302679555282886840131575620390055710951635304936313534329564110427355986078568063982376688633284483478050681489438887666619523021205993728927471494471083991551380804989693407957657466955982380478982840025098389597382999294026685862887123187670543543331914196613335821940391092288984030531375852770187057830397047145608012743750830824432685414995817402848373780494804791382585823377067857845388663141402743059908911875751063467675759179527117000755199950221973281267943494962712961558450539870707627675001997990144317028590155854644539998466140165420669903585624119765409041999499395237914201958491532855824112232227420306746234133994700191242256245986609175337182284788793240485455565213451922310771098143443843065229455425067978932399754140179435580017236677406432477440237601554139189257543548803555525702377039109709324248739314205170444746047661660128711055223992999924157695022578972946110924597121832399260230868120352607837389050429478633103343550528642462142614911167353798259938928348410823092641249069999619358040985738856281707967032157333750373335068487433535247812035327213425776620855279752850812735674615630447052883029129832464815037252719229714036492086839428371637729924111215965015853572174468567223940244593797069917851972969742900571670141459306589381168926490112165886456132333414297214044415742520767540357736693837656076984634628609073226635575511840557076501180227658284142974669632564596649226711263897492535409828666948601944721502147373589578493650540627216778749349828368937066178084225219737353603048037189760823810859898926680980645100467012857832245767229380087390737125253867508026209582161741292058943680455149885199073635680989110305840693780104072023165859518530198552731376393130404580934983224316393184207161664119076590987462308273394917897354648073022187397490324074447947090579404758120737102379439001632384181615971668967183281719213656740356109075948140869881391673278749729653845732769022055278152918526815860061416344395459785788369952757844523689675213411112316619268837587515126116638520167759740315447813695213192200654180245434993337623781248449219718741965582062141752861575927570813318936004813549105287170557936465299553734636217173456199858218457458877472170953962170501453367062821307904599182909670751362266681968276199481390509719608469983060874802534975838689052706313698889358438052381102286797550919078811851903508480856747284158674177586385164068506600022624390455755105878238785059903041610233740878260697559878354464166412767696565291258461183392880012230106271351156693312554707245402105579493841647315704134761869969616608892306233932309774916818561538105205875414466203691737218881273783372491467083864759740306640029334020260750259094705535910580233886328700257557061485193486191471337073253914958990452048751209429534325263716257394275214861725581753909209714593253314036613713977307172983656579256803285922820050149833399330380282583563722297024846569445754100921137187472596534898307625412117202591381131870826387696850552797426153220086987183089624448832530902629347579290801882002668159413082286138991769801430671049093979656973997062372515361891376165714396692699858970463872653171915176673107107954492513215994174810069544406496490235583453039773445108950490041823916862882338261228961925471447423525019426668874054982246815276613951626115456876645140032284178792304953242794815153946005331568442391460390473950662385693939413142700329774894121084365012076663328705280087074832608973457348726231412476829457588034043714229679464287366217050397929463095871714644120627464953250005843105254531277739233887008486787514867366608540822192468719926793500765613039472476401781529760671423181006841885228965616329306705850709805648160558206081398873528583199477901426395162751971948073211846743228738962146743382146942259381380196750626813336585357107887096035360207584722916006573303922049906549297076068466352018065298225892289755703669058021173416013011759269179831716211737666455293547911293762913873095344482862490473863616157858235263656102556688461400987060094078831382464187386193051071025769827309760184047694073161168789265356749628824334307980412778879806426997661405000134514179852735836051915689037986330583325561925919077204611828142095361632758066321959100364375665327834986016329382234611031836172077839717397926200598471384848470942691496054363521593272681006887807016821911617970161724152201381030286059236490670365605981215566500459428063357703012414372227667533167896420637668413598185988155543633742514059373072305036459242214373058947923207076744693178257827926584863989978250783628083550319203020256329306274339572254248609780639068242892858834597027547651527119415846994413377633013800724341038771643433671692297811013499510724133051196428337194156818233773449882753853417073729710310795483928678859310252721127316897093686745406831445897965015677837184098836134905699264613589242569105688907666066881009653784923800175209080990492147222016962645804123058246864697605133954551858229183481783457722637555906238265730878477642442489175599605143029898079406460132987012815243809692229467586317868465285954749103262469595606277548537307799124421654836400816244741614632219528518194861307790556660480871301861488709030942429973733511397828535470607086621832775525804252979033105975317945998590785213981394661393267804407958068642435077013365999596547077455371520643883221708144530553252314546346504836135335637192016429549663653871182194446614325218969419225567575308163397127903289944888452392060276003121532799402517790189820510613214990207999491418904239051956014694824108253701839086106873998387720609116541532123758419155780004395634996510716725152524586723198894696443308544345519866737304101568498786296031800070475650970564777294640498602730502219690889895909783240004961089380133158714755617420561333908590014748841171364444122840566350105474769162425597250743840173792411745603286128353493794562471386642083437813034834817768378952893373099015277537400341344593882310111744806152154018719497508143080104002135751571773973587582497568133768254709257687805100520009714264888387553651269473057245230506636144386469470938145428242776555213432602090236446345117064450367944856145067647479539510826834181711150187222750915059461166356181084320769255840526357525404379845024829148022751968723227678730877407758518266207652069876424360808613414098215643197370439950273568686293784045100393323021082559669847721520063447629775070593201803494407010100753708195583788165836376275142105411094694153669430121607906929757073101672729147384283593003976689814825824730917323155128841477794855630650670194246111876560127731035967534553633789494666881035386276301724774102329675029145893051972021926779960212401584257674324047776240099080922458831334304665008439491747776403002137259379891747795648441558965655781485205696810371270069603515822232809010334313297751308747953605133181763502564095171255253611783366348832881940723608511818826306671938790860948227756347762420046481120002669972104528662171212702004568900518977620616370960480414200816663638416429304290039391804437485334637991937882912387465347362058674381842475482219531323946571357063224299125050734738300321979640305687422107110627436318454253094607499879244298912829876905374848034931268285196398886317385195596501349219043343475254094891136644944585383859750722047506716520162682099605391110123130410111107835491466312731994655876614893008555793493240710674644298250310315042111161796734099365163060093735013078624402677264851898114681577883824441164934758544973636883309391526700787383774355227617613904244748872335325547189692390120447763202149538353997147865431712081682686548931589743299786152547247201729871797041772919521905160140264235680655398203048435564181998232075298216879773433466041256913601820822484146821373499413035993350795848545631419640235641219653470160626617430957637334448911992992782990723598111465790466386447474878857239281536696973237222429423805871710720073414818571726900128466346577901413124172006154035007112188266060220697005064203169004312798271952241178033437399066741984012368132704336314775939728964252153858299008703642247106149094020550187190293441752044280292110388848091542571782593813035118194347901243948656620272700424815242926172380665941314476603736889560064316840825431122888465093363274376506694065306151100638110795778876797316451307473510533083086284729248185790256313156129702981988328369001887592911324164656134928165751072387739292114763793495222413338842143247951913745990499215053263085253210573627214297546200890666627134459342997397569314628079045333321295911401290692171502287044286234562769178057132562038594133806137536137664404615204690420289837815816274869396716157887143137124929909567860188729588883184294535614860713061364612097818070511505953286975979938991688648550842786303281766077974699302384079314382663561081207843976751888839167320330858789541473632968969254218124740675776588427492242556274300320868859581034693346717206128866783463781095354079666924771379783292181495392034674891291387449218498072039952632942156355043577062160315774858278487279442335321348804402963912413440788803078116229764293434392571143681605777033641148804782526840496733317205990234768707994382717165129460120082890277482963613917641583353132514820067295691815438565193321483607209489135688783742344039425292709370754865721034084198942205817658243527360608046303136378213005115229747981937848256344208621645235385141698750216359918844506233119348995540729505832248599002505076820914460029650582678427308814943032598163888343444747800243992279935955789499011894507785398854478705231026975483887626983735230893892654536377660242102161370860040020613173717329237483812844407074367306165570113839037486854607681615050159555488923896597983456831015077225846871686349664482687234123218545604885648389973249382606482698332766905405707514577663971590125657007935230967659667368372287588331903448890381533677812049714411675405485795812913557590932816751776937056363132362586199441420537358662532171289310496723526576050283234875702173369861190380284125001491253142167288986224648679823497740691248270407665105190068627633106328075857379786462010443462132992717140366028130374226734062499408486019493277372937050672704411023836356306789210321297898168884176166770211232791735245841842265898191038901985795319080938440870279582894749005783266263943154473445452639696018906370093869270787667445983290148449542135641757088142504252103933286611606417453899223306711851606850502808631964118802692014522436312127107698981084268342485902172113510548123397304141735287271111099783508866661828391090252194345212633617749013489551381598496550141622726329604605317190615794191265668010998463798269093112359015270174527733247363369027650081546027999505830982481007639951716560645300697578178008067678554351493107736364437796581625021679680441393910330396500493862490997303147599418480127412041791060802061673912825420402991911555491447299119637998793842950415254757670587913500832012148946715414926860969636952071262388298412793555262194903685161391394435773080152373745304559485984024335381654040185946133958237888286085173622955208041206048118125370004830634061127655219574133104721432240786967359521150773555432546708260498117550659203235981045019656876630760709032653448230335534883861117146600133556505435883737277626633023081871675393518510979527886261022880301508559763400764015480636788623387062427213664730773675438157848314749334804540575343066189340872512537451068257708580625558124505643850764063988916418870449848582691687326573571811552295561146176020655236766705901323922531832421974483124965039522364952285302003060838641471952113406100210805468233756374206894667259696327644177344122473230221648459853976849784873972629173944889089280320556831560067694242666733825937539972146351377898873564357078567313822713461931408923297696005283025641335179456785583241390757966645916583517133869225986675665139181006401941573286976249099624130863853950758048304248658922475579915497705855555051186300794164406515027037709029552960863521851230714650497981427479117674589029470108445904394995533589833704692455974161100597893584503284793595686664711949471157751681472692780267367937729997146531905161600059898244646295210753276054071752421465853314213581370540298159467732316299861595977843885490951177081996660888147969980845555157036563972101354400066757168129849179709805424241405252453957084085638765707002927119839465012687577754275032897828264331240087138670845443325921007378117122632285190130367935115422385699907369018062755684056048374266045564057325022910101201891383782985601044244582708693576019194591007626610558009902478901095768023838920497868277515056668689143627320902317965221069795932705335702309740922176318994772697272555940024752394532154905274342405937053346484745865160752893239967271658652292006045381006689929308321393241330325969063177136616778888589789144663133409418617508341515698382984919631066208498952513874836103223844478560394604692197493886020264824759350710451943031480125866245281776398283971690831852810323049646545638041065481915276115813547995876311522656088081156695526008216440724238305812929479795157168728069395257469616475504540769413348530535954564873587433524811372503264257144476431037131970319953999967329491293143835703216337709258946079948166369422548293557416624318681427054057588267693337345454575430835437575385876974473505277787286437674526799831276707760246290270192606920304338382253731426469402608362029186625402273658344665705146699126859152264721422968448237866810434146964159604346198729758018638617565103417568209546414986411411240858142062921182245132151606168404610776722118201900811640175589695125907716830024051940399714235709830240211819242062569309544439262879405229710904432991517629441922191543816217447089572180750837784562048506300821862287379384705453825078577686234545826169179734287574747082875141358490495626582515739013077328639052499259426342392930531814821811721081110671641152317471101701681867978592265553742829142086338783361230465462372612366577030338511026909022171702230941761358226957606547422245980059183731357578141572005897725002317467265856102522286256297019685714499206412330082513554199903433307188406235345657407814784243955776084171990248256913313302001584538289410281797457977745354985104250214836690529244497841704051782217009215242579553744149100003893832620167423637516042158745427745612483590541289666742659672753426437444721512483557214185220533594811042211415898688739945177506872696278810747322617995936633523573531912602994806601788300047898707581156958650942217410004610756102220120584473136501962167171034778027889788226009924672700864481378858948248717568532574131092289691364603022449942162847709340280644588225136623336882621134514295252650473908797752250836126697663686650637700193151331013939769908343146708629243491004606433955921230478964133787378863281311089785315757853731374488240327385002491870342552354145299353878913033742225836674388203898161265527971411525816206661672381567725324306156926863337252763810815275331389262732032321652085492849712200123691002625394042690434284694770522402989136636736615432723030142179116755478998103931078802776646623127464133646356397719870089232196859712662888192005908396570122205502038989426579239968822478706966189469319600441134011390275013001081775998519949149199907918855235336612599204521557843447661611041554357990436781244987380006863984579090934917831566580305403111097834683905408670017841892315434138741487129687248058381181314674223389982818882836396278880828328985457640565591932502370979544640241537952759290866461577137400437972413504661214888230530935081362684956382707067908031913163665488776301143612795865507167432905086229763746592623496182122271931868894911615115044565190442963796376659409647024744575324204787376480670326011720670380982517008435587992281704637634289089482053841976843886216925110633791676937146304292769617739116650250524577836106071845192853038496204818094077119356555169028486062777987578022614065442328710581741367022180373226363802941218982847304301657848799322317561026707749516925563451646689123970386903066844724425414815521688577565015267109519840363737058383723606447865047367527803324057223696577527322030595799180983368625178965892978557398829489322959099475142840523204603206937507072811890499018501223540091713802094935673119902693763636143857486086528933701836025243140096321774930188103682876141450772540393888635908914753782031201055528524892661464686521947161828447663690111498374460443287207566690853328777371311522386338534534550874637139709529981208066506906320127439851085824665942834315484807151949906794180917043354358952914969072229558228635725015142444924481737606503774496441158304350852681195512734945570757199673127923100597798175348964060275090365974740710532030783132632944271684349216451639324788790636110936288362600650537893007456629840814410811198227390249023966100532595228861486914040765570638289776754848998858705436985934773981847003034333984098601686710737866197900986051928381128299547924941523874660219492369676810772820269611559792232729980138618461313995451499527859974724218997817226191738513846591901499730047987373162211667517483253075009027639065188910903958336057501736317814236641268142369810007538646617931169605673063917378396340449046118536390426972138545135931744798193027961588156943343093797399823876381430420266094188725417593689769359459195612019859370604897266239943038985247701657078214771143606984362125162416702542197820130369285509697897770996221503280076209242413918846538727468567612004808837278121379196345446585777588078936548114849432478314328851300343532429872276806805070549420378159584351730185896215596305616489985592225207919997218001918288016026506742445097570411813516968415218063947085766823945988101968298351936292044317362146710288906853773025794874019286625287727635203193010435089703554714219290098526627531733305553098035299491279080265010088712621435798728154601176223464487825328111345171037649647408895023855460877090102734656330021974880831440149319960992413315737054186104070846781613689752737781875526268739670113441818125702658908057706348929586617244781172602203920816519962477181413134331838440080864773080052839943492532568539449054475377466016015880085756107201058432773456046875658504500170557412850272763925122021246186167459358340673809221531373378838511625057445554790320313858380350791550219319879632606034406003249644724944499310461217259597254755825745909650070060164742683856632834022138314703239787481765381112718811528409037401486367207138949401602392194910508012850471733594068736688188173331350386513732321822626532382192666019211067612861446913131532589722693724032593901008050548582048534732239789468358178105760016075222437467668113555405311497911319921932719973673350925793830256124909731299515233089483757683373441696423150606352971239531174016784236565620147630015951356396359060283698810333633877213110702786611437175207265908898918862539456592268673342364972461696502988214658552847611219911002339698468062294097214856273092604545925911923291531638953163240960221697726696821486274355114608827612510386332677558113708794083913743826399194859698070736160475782279196412680126179795305779155326111996514962099305452845475619370367663110475880015317878060179085730265990642826425139312371909551316474408828704722902737040228399158683931677017644009694238264816489780486351642150630937619495532358025850220260824083686405801715092457654677545479720271366866065350830924809000748586718181761805010513162750599560767721537846213954596026343963829054039369803406424693829911895235771339772502874980752976121968119357529885566008695317291790748488744072254886829108496900501772217789675185108528340174802305384576474284868450560780942352850387097752060646799674887090685260681227377926164957669502849773072815153886471398711385594906039803991566434865736218614925215045206198546178631801139467442952926927916632552892370618016418347237517305197714623632992415131826646499673330262357485874552248203999190552832683233110336740673246348070429498403834131072890557388098772101349045670762700907994740387023711844026398809572617886081527980180337199943284043249453330681424313205520353277862021958283323551009195982235519830317014826877393248797407116762217597930957215005876230580328605420232927207224902058631813255903278091461545259809356694039803586684017689235492622953478756297533803033080515020301256524021390297664244462820670707172639505420681917629435388471063966592310435792679739099552986855682133707465759110154267337442021965902785149906452095852923011732881487506550483694205147541799687068480535240038084572288504821993458888051482710429009664370694809770195398198920673024366469980388951777645427821336602832453372443453875075562176411762697496812031451092676441182924121422924907448799070513831664251098746045809263149419543709488004207882486430074861804291428684716537312334432568159379854093208382057792618840831578909926188646462070267165320642604808536529754369792148531406806169749626214908272413977448175879597968524936803849414021921096277069519120625983830874221870110660563613026854933260538119312131685737924919608835686950556034656589131784678608307353503957520888300268973841466622870367674339593445294438611273993202857912648179715788081204391495841418684445700027364976441217873275947792619890003511205793066196173432419832111200849074613807261129149862158185895105226736523061008387448014651514400960824611636365545628527242799684360538941658113774306235199069510272711814233546502361558873458528006160254801331182926237138231134952286501794050982862429899264164766235245700710483420742852637168616377088572449954790896164968696443830639428632569195767302556726965890906932644023813494022456952045857816847234411285387387132553174723834135846686092352812352805885593181738871411570777270804721026599825094216172042614024402824994861539376865924221795629670978742630671456002258819925161464785131373363856120259720878972791038152597805076134574227214362934164148301164376721114321738819816413632044951041528408778664939357123632643967292565761575021396949439671631069580890949713527173834361005475293762111994943580220265415599910661654369323407619259585455059880002537426303176728297087037308934179190957625159361850006713115952140193971116556246366758534686128627862461425224858797871675449374272009802296896726832222937499926084980194488684648048784947537038486310447647983621014771707683643833394449020050028594130598003336542571535646276148883235391819048792586666639555906854861015967465114150294099051455971587816089060200489117911772764143615147947408922872612784908778375903702491228529165207725842410632917231907401028600657534412471987520407204354926269925106699070338794632546374945124585838119523213359969409252674941833792962180327318840909402060543486700118177546493239787740173572190924646024300245746713140953222432591439571207897700134515350483903283515786262597887740784737609460022909496537926980760145470449492417133310594817214913723578821378670050285687236571132484415178539683014743760958806213337365650029198667911117617274803772210795733407599693727574478731501497147487163956887431068053842431771031212600207005258711665995411651624300695149690279112992898862736807810514283403001063671538772560791797552638835965866123749429640059716296906393508747307786450856635951793982630066137445063314478188636607590260111430216184462607604169285152671271308955470511459788060224114041769812646438630849080322095087895629231403129525689343895914442334746484566838241095939624486943673756483621879532412776368891841448874938189427729334991325739415385481218356896431701073309056423139528846836076693069459770603992392848181610041748200180761521776728565797247508659792492018007552156186883969764754927462729657229953724049972219240511865055725282310604420598256041268648504131675059034929683870432219432532668346990299230103110706331833092628204331291121202547273833683659284054222228174453768789181333851452207117036681566518798574209885071674209694600600538148789209024995843240699607308784084713338466864693978807297192430190942158028576888553308766837538682914626764211603328633970700505625902820092933671532267048038550559743550290264783580353135871076289603876417363042489793935625101892098962601527477420169576735998627620420735047604373808406835647008512749358585996025812524284635620647297017859225175339504477435699286867601622870591696352086750479442591900799367333404383413446500596406901589954676315811679197639702730450238071712896876218345367087744835614910549914386628541588666365044638250623394110665501388977885089592361310084383211376093917249535974191238190702440109863646179950346226766421986600163568710139745921426172317625584427482576524355286300226347514729900661674540718161437740256051174271641310160136183393026162521410468241965403862826766021188801347079932306541041311235829592195004350669839807998814117362926145605011683574996085122839464189192718799120086770071073079845540509272189292534677736300356956646084665236981803027517867243870694409386690915700293468876113704969934266000740859112589876308165515403735039756768916720672245526828821240608674665864423934897816997158545521632439776295995400587190079465417938290410525994148584404024766280503945427395791462838451087181844182887142976769296708189444977764186782039213868538058749610301093351354732785394737064096509147992082588938078267741142478635850989903495656843745272292048336437799334456117515332218221336582614017159492659538993872098168250684602433026601726082825951235573702378520217727042651836574556139579383119227397230668762661290954271768385792158176016448753471906675499342262765880424605535604522705691284085703476620291270280315402788796551951593896792473589934804875221679064580666117565537594123949969846448994995972841679687135655813093138241604773161764587002374907081178133964587560787621176508091106930726182963738501004192170169553945595594931854608793550003681967347824315439207759191613521195387006787871124770848331627737915166698989427964383307522155526756206482115476171456311524758815643793100456800891247017520062383371720201890572248097366427309431603739787775343839001134083790680414238885234801226660444113745300109372581902862639293767775562037309064009922721883542125441717069667523505189779635453395484585759113813383280242737450315144689440034696529979403568923508818801730401608109195855146750106319712670426015732851476563775010812299402763873961805911191939574335820704558609732139878118751033370780984104795538925798852175767645901224327078242307062274650253675949085800479172468801659793479391757191280064928155901477547092064084989925071500379025437675484137104523202840998875650373453911608763978749043099728193175814172147540883091064953523117930369040333877830244443424745993116461378815721402334375671372134553640697354629768211504716686824802436948111772583588495615435872624342943241458339105337961313731739576776589378707124863529138653950575452513537201738376272622488433105000018335238682832092189027243900172093675014214214144015328561215800726483138799621796400777144087124153556806281544866463093279929135253048359923210288376900532292649960407842546398925207744229341190741478405045788181648194120833071469605539706988544709828503120158706944932116256207619901912392234292644048318768317289890976181573326214802522340330168909011870314737160957462841200055454129426741416549578615595075311791672994811267192977774338757511068783492806633722388474228207364270738352473824563031965923806363395061989814571208803991339017875811046063608977633818261251348028703597210108089469842042263506324119517854491492281497227930386873538776866951984454775653316616841365506056353039502215033999424417758667100492332963670544940140913913656552198742454202506292598054002268383897193907513616444498130018082376371090173694409542462719263659634231873190826317268614451893124444767884725619481142118225586969987634932016634123935775930845438376189296250066388760145851004688473561388058572487044573517110417840054377630855648255468173562569391024634466094395892331482261485977825949866240039985130831092683848819755882493313896107449784815834647893523073481157676379411555878747067026614627456732944245637812310074634847997645956047253370431829840782035318746411066957091491334480431194389428702582766638112895088696934094174829552541226467900682421286320268022641789199194339162595088011018705836424502362787151353584466730645487575802208201707269520184997120050330073064577985823669058055852304453609820215717981131260302906461923802716042328861806548633304185030616707144645643478947384383004648764621259500557680332152274914227059645704035697555509001983576803021460767226532896880822642800025699930643386645998212771282290423590526218291171212965194294384184838730856579264380447263022622704149191881356750350649126292166482728560207827095363086136735793928643275776225877337148793375624612455925353289723334598020094611225614226775198047634463056556319341375058060272571046896346448391515313804477206947566510552031452841089365249358516127320280958438724304013559716597559810901952238916765832000615233044631742899187310166068861553630967361644996670482141603854614658381298884607592518352601681975518738128270416117857768924276802555052811465238221466559976104108442939426896252291565304317594274678809663064846374370772536785198289710636695170728099045750432205142247597369584978985520796675528269195811454745727458875585169658033042499098149482040954623046761375332671573391073982964252165372596598381195420672055799432217517794671380642130441009524296362460996930342490233118762322495479262342338135447226790353175310836357200565566343875925475182737086250491110815909932429542444202648524150018603887262474990584284541043530479267364678265461935825478523954392646208623064710296084226143338504565378327619707688367374572744593193379073207133355304235787013083439037382628467272717373698934340486634196905759442872514071021494229398928463894071328792314672987687480994261121372574650305359273918690878386048489464741482945349386690508417887330446151239420836905452444276247805702603015097134413909769397089681774378600470738640560617494908635341175699373090580986192135096580765767372634344514826341411090116017344023953387368335493978840207037437411996083443780142459279179021567389454281701721331374477782806489940298392406308530618393287993450329605390123506137848268077021219342783975630034409417801212060439990767360533612974725937466710313864663384038261052131662628583100565280270063959816800876824199816673887989300331417911655928191018360825953642107162233097158523767672877337187860979777350709568469391239290690984084944127064012610587826098020006392091729728331013597709237626926380247769994107259105196872192894790862911068564975922837393082480059307004650767701883250945922085405835391814006321576375294866642054557938854850802676901919838471844709611580335352406849308966364030135759647074030453167264904868718080624322482924704147968100224361624451453782556251408394922426019079276987436662968540790546371639948613098056723876472548523480014243845097210973935610446439288725217813562483424919543435163589523743457744305965707947446869433977355154449192038936205759005236122198514257387468681582535210127147850435157649058833596077562277044936878855493393670531401814943167540620195856907742198662122745228640333415003229471303854286903920642986623547114431878383972517264717243257206808577676845890757774246558966357583931743838183865970476545211404041809498719388127350679660050176598555753535857115783664192161261394493451827572806533225845916647034781692288152551957955153113062372414417952838498338511925512890576943862653427598347590704274881092378062682204974654358151948823539893262981492581046345754110164288804102319285610998901994209491405973620566365342281627410681736574470707361422553279333722788598135247315753587920999265031339964916446700281923455037143985944094166193902154175519564297961850702965465645887051726705546642095372123957437278669410006811602823525206190252298904437297596164462093908566217204056338316783970276450041325086234297602260797592505947318979819695521228518227523836112403641828173224734040650349740892977428002663514375297811195382721477761064552369014609090560872237016088950719521499857702206868910050465783580654468680371431700816019328308189756267365416940284495269467981198650119148312023757922442904146434224097321639569637668858311500797074797862101826078556559701537822113907251998576924316934319254108393266430302919101462730254341579610552142778566019151006272216334566126152670976771409100670343364139106368947545901301504109217217573209039348972334469115798846607809482780780696523875392258439382574053294918451565603375813435527501287150128549989800734805841375360967144653904869099877558005462558334423247817370654629407394953380629093293817648491304679280448321530405020962888963847163259085869781123163220289282414379789520274566740281628305792550326761552835926596421206322070464538869069956638652124621898927800829811383750114044820892313643970312659576608970571030762290276014346449941503950168017436276887548884261744490939190277070859716305055315366860118278901976895515101058377366669732555218533859567661093339858600688421828348846007076463133932256872292163557139072098035917516816980660353309320733168228260969260549637942524201479714237871930747888856785053238653368244832983915527044032419662572553681375442616918697843129874429970519536161667017108940047113293293757781671948868237190223301644834560184596982682548807676416176111274667100720343169499224733599361285973223207613773092671124296648364986823703629511008504148599003884255794664893153816167188603416695554886518637065019408875492562292075664045260990227356647642811846217181060426001805641863332739101147597693990050149364757746484417553063432517864503525116104755198976751178717856920153242159354681131908212989751905321317868533023391407608047829679168820395315495288160502783018790261519799080253737111836176984626888866162618121729304279348912250177359449895807764395395230938616053917061097588924183215229129114408056050112457711016042317680684036044504639605812132183888566594095299175727187819280308574354783243297868706587733266856379601110946770580066853085603371799566011173224161261674892810779097487969854614505768459250397448647269756226029328257091490908673825618783380005657672593446762649818792908741093703020251447125436351306764031641239824673182517359930175237520362957337486664618289994404249232692549398228341011981573881192239119840917941751331646967381022383486707282518931230483501765770410248973056589996154654656022528566512147487188982525614950743249144946013246284835183915928807666246481583615253890090223321634517471823284342053667660153755061415079225332415849385784600350267869680725757997126118312995894084501733076910888658501752808379324818437284594153937228532544460791652106012544248058542019305819849460704307583045112330719223059862564822809529045345297589129658085533482655848587734365617966857365339990589268553516217478491987227780113014184417082479668807474528124250965922862841512540850285530239795718045866082877828355005808497069749282088886819377215429590367056536487180294939696365714813622307116262006879282861839402840701809643313761046585255746058533431695311713714763545450911680443780500504717226381991981428856763359955370940380095372581314367910225102430601206866309516783553496451035956750981472005351494402909325487224128894519497481195640997748171008515072991406974362660894474115440389894905551177248754385454705165290084023020639518096048968282393684008849470194248603486103955496846762172772456453802980949259840979662373359732123633671334450140580343509518328660440384394323294322796577286085384680942811045281290714000714935446385839534419836448872751507120274778856643253305034245351595822413885178618611055057241536768624787716422628653365084293635022439845718119376925900053736323050203505386076347880776263024687997473789543960812510369959006186832050736613959939653895579540986197313232307465380676649582468182255339352268878569357726284659528218806359408867996980041156298667821744136153540445477616155179509454803800118771579967159249246885525925844096865627182313844390529807489390080494540314838337565250717024165864541251189650812373610341598514503222560965377026498416880519060233755880717055203071927419636432728115629707168727591531640403143460952644496248155295310414626544482528169147584096223878111946580709964589378366622767484260450378448798013922844625201898719611547884937669250832045945339635312827923186997096067476469342672702985406942158078656209572397437895580279804935301991553621480193361861285584841871064411476951412346275006863553519739999194972052284226928808495341043382212861299328648300480245358910574382249731174376988126181382428834112377748358326184017825525018319592806668753484669685422284487702210197307612728765294475472964301236256351322494620893016461473728876651975581547609415891964385310420872680897207058944206457979162916871171653825190541419135992564480493528931811693414838333544836479349815198232033169594077419032289546186528089370807952788043225922998239008221692022698779984977554043800825472811269211493762497303641545274497837304199653788694249938082402538241618115243969233516024412529898277617929843376406398831344298176127749877642413730529859808967903064915203417089572594174964645579295277864950570853557997947144347195074329340279410218058585464765881964151232794700818771481032889747235987873825023046306361137342270813801073754745164115352901706498930883086213587648765155746275047644335330959058076556857248683631281644707810357564681155878375958210734854220889728784847830585312859549055733909775677602740975043656699751587823066850871406345952469165928972699317900094294532211636281635662029695791087419826548094436469118968995244415039282775621831176950210132058073188949698707881264783861994348773253826740092317967444505091902545779019177326805231360342921494647133738727604429709436277370598436870978004454476155763854005519788782622076765252914510743186277623546911230829012007163986398211247705905508407339022001761789706979558624671288080386772999271623559129023098443481940512518199466623643096357771514201718048661884214737043315216508811368594942304219984644630236620332912862465917025408020580892655704303850486710872883043117786046758613811381864018437069444806289186004959446055864261752629243817812169409570574527162744847529405042968225998396799452974322287448634835070004001472641747218554988638607609367696353006534280206910175897895755426056102774012156218791338612426841765760319250735652035246070975049531357391553895147836790188361179611803623504815846913043143325473680871519516879008865197501910749802328169780163447451479701331768536837471269681688778889268458300802950184117776605900039326695960370292464667021490245820988883051675484613519773987254501256385024381845628293109976047569680261167712025828626871858480439126044884597589669428801209757368357739471808105148690655975106069065611031277523852659773415103952553906712335731194820318192675652422083114659553200834190501638277821449195734815921886863135234678344447877230149595248054402973493216117363072716496330870481523660032743254231292212541633644410506722123813935796716409874702030643319957523829561640227242767101512558740285111980860597378192087231032828533690354534758574731192087410633531075918353824686771575433610884206694622062442038769035560991385727174392224626276043184498331915314631168082703760192561643091619958532287278789652803258340705017528814452881368577334437221356329190959836776335552727331480049545024771846195821955592669075752991135899778383127760444592960955436114397787823422478649799926876620886063844444483981005142677583468079888606829358039297996163667865711782892801173601426507476706445196319452486504278556950867981991630334709266721961380026982397682371628388801283784269326404236104499728262224695825669393360532606625252703386091327103481587819987685837178570370681129106497418480374915241889747166738421015681011285625318621741762504950484589823445393251284343638708191987773567727596595394004332925491088597843640792356517510805660250523639612329477943287840987790778370198368843738985661224690335348321303745370540882634438626345354032210703777061072802421099072337590385609935887052004578680637571922293269732727600241594788073642108971719183302953981084453435483176545076486208467611256661210566953838562946251570093048545698602894784804340954617829999192111019112279504693372089571079985315842618185706934882069055689087509930656556479009369385118861213304008165320623966757953871604841168866267407262954134920458287034270635267213302025815496221180020773652882020442934665612964306223533198452745349944442573831835195113046255849891416383048997441331249108903659286240053361764754544150921574535207180911241019422237358741175353065135873938281089671709538630971848377571611631442844969692571195110030987644223759322554365039510729423548563019927841124468756795924764683264922972165278875333637682318661793171366731907640803927967282701386535326871731796399568436946141710456085348144790339708810487222835149533631403860824292913250664201982657674684272673296222961411036389301977116351872885817863897147947956088661614085314136974772076232961250911427169238311404365162226349631441860776999127136481231403435886709429264003341476454442205763494323159579506434253319282119079065288786912543882167400972666713419776846146015377191968168832721799802695108152890401992291602521211886776030400740669574185474728318096158820726506809304422754009965638011030654726236839067629112874959526305860543536487192178137312502607632117157243648650916336048967514744697503435165399725246242970452048264839544736886905106339511979524065876637691976606448430465851527965146326291626495328473785975246894415383480964911517554282952854731107601670135445936556860359053072975498398370494809250040594138549603084485485358092181743066671309681032705028616338981249402427470802281291577835782601969450892114307687409561332057360733056538657476601823131762935908077625579056373826758847369603878795043465661691060030833288864855706473911555448815194381692061772304234747784406859161706315078434238827569151214146396035833213368420301734939179896625142976955247776921904946376229883387296239454559190587496866579886203353531505148556284506159265758208402947205924159053729209688604184932719027447498035874917397081986494948391775359336174207386110708079362278559406649753079594603366878558389562178486265423641269120694240628304564289097802040632631204099690495693908515182805845356857899864964761349137130816352752957543930690695453124198697641550332907170504968262231099545403632611830869726059142673699447512446686134795858513614791296097447857476760648263908878183601761602751438737517003578744738793676565179224438767089774134050712078323614777679957785566441821603615377106571333001828751990163849001525964023451363999620931232462156361840558655916075272909483187837755584978848499641786549135403590824374315154580089389909205564752147479048155252328410134762876518856688854518461921750992680269361569698112006050192526790835732814159117027798868026893421471758847991863941537861797524046923462944077099884297821197293131916380990263089440134071063542302513809803766009580629443317453622830085053452202686880191523813711073011923120582387186622231743942948560620786924864802873413145850291992108565752533253517731071260666552374467608075243658301126924811686375829157997854545901350834795133800577424518194500571630928219147255157326692571905662992509615461419405619278802628362771399858462279355641267288800589804555881559343415154696134332652688405675793696066755021882038794553337445138991307275596908558592724131036975304158114253348186394532401386544329390260665206391534044997724175129956353569573475928551111700605006758548609069787290037528318273837623303814334785412273716434712466295687948501347955638599832497219720817182473308460465783514984086209205524911516723733144325522351667774791954914446052584589460997936346026209641742991216606597594427907765874237657852431800328664103987823518102296794664468427779881183235649702427099316294855447162205336619864599884280435050277132808160402736967626725507538456340572221876470048761952804567879481223119151324258057148708027117477241863117109491512312341495982500607946475662179649812558394639859196801079382886694490892535008463142248315791177090688586360329100681175893613752681804712105366812933371180131627652246312182153620164613739613753692619741301057102678570901639821667327036368459918871653807826341439601718997839891591482029353919556946709779425814884441325564227003925823718950258478165384130516248090983384247992325253017610849529406819855454638228756127000929904712511281583742366607569207787897454295522765272524079110635446084421108155801735686372272034224827517534027152127050577904624425693795231439254860671908898715030796287211804404102246579346750331058248649697049667846127172323950899847310652921733143859927900700320076798911949016427039293464831363829126733405760427073060276871976331208525824201372667005735028799737505540435113014803733154374590672375513501235048032167392600531299763306038158115813394917207949961764446833161243660161980878221729260972792440628034012677404089470420964527065980499580775953163936215057523861130315453196415702084965474714306886765681825426791544879638969162532507948169627366587706937047810361469227279727670428910998172272788240028000468367774000664763848394422785219824375603919031324217683300605512211278263869130114305724699079398485856252865648130351653515829168319258781197119471827905598990961454530878743079447488908124411971903734754530740882905401789622979889064768042721577308628629107263459702010794742688003036566646727863155772124191915053295783887261889802399358947502829071901908999291087937773518389108700230730040729471496213338565235868673219975304712594504730809159766150867445017333672247383809995767272019425065579034922453912735961927580612774511884706568816633877286932851672481646180208841647170031700723166411437293131510308955546356129512058813813911617865363216575698610080764463367315331936512625646558723664272843361445559328156057856315891441233792574348904239164720584998836321104798304632762151196409212190904780705875863178493109913285863589074640889957321072380331785489704345785459165200191812319695002988853748345936349976836804587184790967645912313688359635255507167615108125013608106067876915646399343316719260533126066804649031324112949826077587884733478048605567421157232735793639810930939584729222912399436088028573728821065022727843105079561870297523342195351785976841818187141169034101775538061374641198929888208850641708261498863584457115104563277978995268006771984260759536243935885595802809734358428640648034043020346125944580961812595065109590712041809538878512038894109253831613301214817632383924932309464339306882195291809087150719695542030008175115291748590432960305191714172546883940763378865733467045445825099045200473502415906505256800291196510763255434990937592045113890966652335023026694788554780626537376562044581589103175975799496454855521268312356770467943666533423867000835263367311849068218007592233221736068862860739150666399330651372175642177495100155440340026122104594421418705646106492999342530857418551783683320220030630196708808770115648418820286026803689623879494231773171914123335851414662505125673855539126525700295766340670494985569298412968154497691397743616728569158651688619050598840438850263971521293836674328795972280511502605075613733673056662395649019955525541270664242757023874176592936530682486401733754782715269961614997113326442112919596870269231628529139444421556898594632178878837162035373958587159037472209174077345240449919967786932555371416075065570563409368137242912775883909725653968732537445132721088773773493794940342481711735335744330730142482961443989659073264857143291578531807038619225698278834350525295452975788378849114088957659447569813137251737793197686360019409537122412743736817419628875928345947062826234546465104182428426462203649851171048236024626420896544420647090295583102092967046166456251412819639574948121494730690449120591841739085334057875853002466290521025500736321356189720807098011762791255840192875898771753556383962370368156570252306208352952815375881280163035008024857382931396645100717507376837834784756848805031566545234210596167092968309164276199700684699079188749046864821203741616147883134741829503512824418674512517132271358507635544620949570325378232864316739434805780711099147022518080308694757429903730143114187921375695950164608352862875470688862581423541414966166982434566853672995672994251242670635747044141464508133721535452559342292964725708582848956469143848222170515640120485650078767966976910647721927429264879491888842219804315792979634922082011365645508671461008439963538646578107587522881722353613953592424837029644243769758702126842364027229753868962297630477997059018050209572590569267921072600077537668271521979478159805506327544448441949405483100290452890872113468011491512754865323586887409378287944480704803357167029839144578500425646653353540670024008849615849347421933025571968814593945892195925958374910426234454006090574521279392077995977646653439559550580084721414931724230795349995102923363126273833480241933718431681930625563200959815060786372360284910485262652491913704409539824321877793052664742357453639920469887553676108710608854252741305170458751732925444170072838522205698712165239914565397923176493535448757267699428782567726920938834394446594890843656681710862371288866771806458213717475644638625345604586021245273198790824373480032941385514150415586335480285740285327808798993522182871032498248669461261980443690797804996410333798464910832589184757247502077287968031067793023342072788200379039044622098487958406705449340766915837437216047109004174957982346891515419112600328649436907500208198404542430447849963169485837908281467194775266262977859420021690093678509949613614932318172179234808078194766466480206916225680128742877657556284896446978653749084226508213316024592347925468856912858022282991413005416261342363162135534625213811206240985562320844777805602305575258327510166771778276572296814039327839115298620973293821242365637025115285483152821646111881224577969338938181998113692074707167779241346422291148129524803367941435554135657899282240154365832549768841230540521278198610820439280954480968927330907660264756835264992086404309467352259992352674878045450349699838176098643572984635032450847313827505906851534102799862533129271228847249312991599673124900773571016199523718574744351217360953885032124860910468164173908605488773488699536311006588938362007311551102028527116626983231492250597566214303265708306574949569324887731694947691457839369679826555808429515542291062949375582411813418305335839144362029051048094468276038037242125296440119177467845996498583040833080572759366313338613265964109584040169909354804728076002036307590559799457230417159919849128506607000721431054548982508018784833094355440870016200232341283870531424005065501121464250410143633858546189506807162294819733704375108269351147355760773747212337391798568126865304655981498046102959844915697073792268912293332490361806016155078106476203202914622445640161085777368577406822281652491271729604102501553794276181520141711270248053498541562240491104958361277075516516533274127402766125836250958803191165031119668822124118936565924487053912368073801706465362734792871801280447497759350146952310066497643450878034059454826976048313126803726904269584908869687824722382587970655456611347702837948584853085185859626504478822581600616420515692179712108910912836072776234600292637289753161428810086912099846927211115828305699678072318804908467045144846774540466873797458015768778847166131678987512986283094406041547908045819738890395334748300015878666269852588395334790625879126869144069172556404381359078763314928089515702651743654078747805337694443256767012188607432692945023360279615641422255257327890513855799462919226547200087180126154261785271296762268316685421912216374693498055152150033909141552964426870889020960918065370387100978965868097836563997051916076876235778226206253910177145429417967687173586018852494970930163415358715722232898761982597754540040634221042180722403264179325101877781747896167623353194594843644244896801775881931399521351570044219309110211265702953512917113134343644719503736013782364796581301056614148709410097729942226783239500741895300722285302656369902011307976664441969044448388411660253903748061675158928749047615030719929378419752834804134701049176230772594636870713764181068231110472909815012557226232731978905117620530891095691387165266648405510046124674601147103761624935351624261066366294894817965770422007018775933859897005294140518544059647613421482137646796619419757987300115604807137376078331865815463286856387038261467543028543159507866872380246599247848866422139971154444628511726541577609710691118237031422022444786741046984893000925561023293608907057611693631778403369047674228515862863272722924599549288995652483599339859684187498337974727988277152774021722245654085189654592396938358532397900310717727181814079373788917635433521521686081524360075271062977030720878187866500869361082881732884690686985715055803322160198498137422339291179433749894505767198851731657900430223484504235465546839480448633035358178981736121876216984678725050225011741038498565804920783753452414534125939160623680356450889394499140562668912481390844028894001504191584127723177215309664558514712637857174083209585454583493981351229204655496055062630989431156779420716698847331797540952327235718758481441584175157243387072277334707561330200185781776098099544274998652895967643955358889039549531618075247746915056708959145108604769608350159852340964887419087937398245297229741906132672400305625096900291686477454065311593854592423922472456415796619419869003339574157592038922248839426351838992169870502590826169705966664742489815904502791850934231663199724122559729684989367252834777200889217842357317833394404731751604376081597665895784996345559482641925704424355332021694700351905313623466931786265881814730086213330672706945936167366906954464736786005336071310637328608218023350577292717090280612588723117951051599476241436521610082029794083417563682265517959048515601680228904409931042211655788478725951528229509744763807083350434901144700139701097227022196308290284348198126782329088234183808924507367653839447615524786141635559959453940167549388726272560859993741270609891001257875738147591730362395692943854892579284523160789224368853066492724277849125817550641267970553439608941130899289909307070841387871064484102424551371680596759027480676906534547633192917332913890741155066747548218377847603712563760802475848420647219655270814639393241564763258706656712403500045542889760017442555937202148138561042987104076989177659490196107611264993736516775428883064765418770010964604675901494555547490521387063773118030792959111363923866033574489208149553223272296460907372191375587859221570589460005791573609997729556133289910423148058039125516403282062861496152681955409578641610749313597004330935448413141461968507859125901979844431848181941541148388347389102800211095619810691245657240931515317325859363889337536422387848798971997514873850906858482290466461163587947867220534251131312457135717071793850913697776721592835345811316724817871617294249449796352995753144074855190293827546933953730620970585867211347580617748814631829129515098701895346955874258734792530517461892800321602725461993427420671364978809479019083787725987807379010441142170574555995311773893587279817093106233665948996651009379441170850115946655273897854301224591599953912018307973543213979548578566202362260321481843062059411217064304729779988684554574164748753237581035590563559789805459753718293803105176823318234633839546083819200971039255138185237611917493086207998532697873656693149149264501511599196089708165775451371685103030560065402327772048915051364426103733152673241888420487451866166007905187450297449412264907310948003501233882661696542479516438061529597201188682997060911507838569533203553770591984813757086161591191919388949682319445145372826855708542239775912062398032683036973314182468683470246259818343002359064182863789351328890718330173326419976697116240618595167168347317107843707018120734617850189847370039846383795776910019922030617644530695957731789716605194760794992688407131646728417859910514245914141076992568813407244105792309681496192113029724588114298325083638959855086672447537729255521257309547868301793863674774722565082170095964098549893704876064260955223656457753233545760037503506721404953981087473444243957904715165148339645580862256686768600182504318309209642806395669801933149668291177164607214790493990273791772480887310690417750099189988046997053088653765168443185478536408811966534413388005537885422101718542404659373424347462528733749757334900014705383677818937844921719571654152210033795949724241291534306457044309609608744262086114558972556660981676628385911046921163478159653480537201183514426333334326102298763921524385543918778916168878058554279535584025420351953542385306758674338949591417223611722841287057467658959194384069735175093234824668385415158775736468292025192011914018145115157380550443811731059106531595013128637727167564697464715481084615530201709819540066134770231685106963788595488045038384148755117609681223554097972768443162124641238310212833874722844356965387397863003882534324716302970388158143243856577067738420752876221462072570713159487754382469291024838036001691107864226108304350773876674334595278354197900757565970812004306365579787226581854046023387384741813706582204276158023890397242074592315576181718547259725530151537147052401389499105209062148684485775452221041366028306641690638709358019053153045614837385020339594620896945945358704987384808072111412354771598361347814537118731327713543129106299464256909116267336902051921428252937506539545633618305411740964833224531752617369822175716925725960826286164334920608408510962839245091741383192252256071695833945739070022081444665745919879330604570476461654804831402859311906801981770112187626888437103159097247997671810786046327968444787085814790879803453559638060813396874322922244330927709465065212085495857912242062716825881332361898981442343752632345517525863373658352422173889191757000086880384324173852808852352287194823504998632289453533042874665117768428147965327226387411307136741091448706126319593212244078827707078288482613106325844371885294790326061839031100312045893585556276716884084855209257581684891989975291963710937951616102053581746063856455759123035227194499757712192910848395429048785147054297439227800327902844307566008060140250224195494079803893763191428827897102666641573398432823157467382298944425565135197769158701042454847029066299163741821242663314076351658031256756746461861661914765618741826193903571045833070203713875362426669774296943309634457793335099842649397188154453199361019126375726234630831142951040414686547008141690057362949282372264686939423419821671614301996022120864053165166724600537603276063151613671745509675348900134068707066191318349619906789011465065482433810775293777233839832727522542198389173102089534614369235488197786494175080655766810908805430914989468296613246992746734069520369905681422460397689761382580232347024043575878661678335742923685547821049833366607376934041304885866562575560283358756544275157851349768143639102489096642955472529554482443542008035987667927994615454681356510504810347416017432068332557576414918606088678589267148429759334681473694903196372202535990121511129556186105583557094912013061988703812839121870810463541710115350365211746086212227595815606216666437005450646965678525800657527618683278804668553174710305290463665940708017960121257380814809472038434153982747956145771695809530568192893512809583862739542038597027629193582395695854622079478375576945008072492216271533589661913509974549006279417686080500145596302780072122131378598566739528584267020870120543982142919507133115946830497271848152078276212712786317811574546718985368456033944909080652657009073021460140153248213187975809898234336928705522889558910359673647839374412687642538771831079424035149749345343444706864644085744996175803341240214427593945930135797077211621931628763441656833663878159167020726076422674133996761511602078333611676173148410705226962580909762296580518948449376289387988816019534425374879074487747977127529595215344754995907015516914871016020121399967915159167379178771095255773734532283648692114679524601332428052172196546427862696306602060745022053714262801251514262392489969244937154980068849317132569272845056890846087008797411848439100349048876892917618879254688305049861671362220830035475622112980057717292965596173008751097722487776830614675005739540145285310547031202214406157150213751301616287930173178294814792188461148381242705164230822766648414556331738396248817920468917549280936651690180572217648481595831042144139981451079310882590896181267745343434017623172392766691640844014169612406249445176410550216554187230460692216466371325188481116224743771409507177061329335906347549131958818166975957496534242673101029858721551742859621529472690588335819983504220725694892379684386760609725277106826549416451576539745708500938487739940331910641024788779672432942729491261937202641428766740467473641677347556110822505298271960962756922912174303864218665431546679215751639954396705803154633013615718351167854856615434952172767335722660016166692192333067217192700815009032175181219877785181530587903909636505605662607164983030411590148378159670992409868164958037721140472443319263149956444620259044653927716316174265981836224143602418702121609623429515438413641986852529960447047918298149238066226128086468616168937705189664546069581184978438921280217192466871510225524452507762510430429245746004167081734379656489553654266540737127445101920161082942273755472263923052644853546063038186401696843343439827184738571016095928625668436372659822523157579244977127616942594710413358955958695380136220322837047901740960773264710079988637394963688988661113848485054537581167826954180155156351985815142373524418213168332845482061983003939984317130455171294550664246515345962363104783056834045892209537570863221240257044718314339985964187585672187950487183803273395950868209320657655709593951642334763591179509928752174544327316376660684686254677978430197691683866296397039215897936034963258353907229638693152765414595948393026391149954510685191666484078932386348675612528616721170074162748413238958378478213529395723090149944650108639174524457640525425404732945650547128247215330261124637454267254884458549723147741586098729922386885807137834024706470570972209591687074915899754428420118439038322897163628915515755355066440143633102570353174746811379010321769730690530530673018974251302865843252753868074846558117961391520692043031558857958573504952900885268514027793314308287358372591475711780023188892135289094439221616031586183570515063881645767386895319918616377667536825843390852768712256446182435716039906977046397631059448050439363500723236040115065550903961459612760792617289929559707562872920246938469573842598284264581145044903167397672566578444279719890163066203694303097563134791375857611335171086948741048309027804470032814258510338840886326495400682972043604868058402908290037285730446369221111825629707641560568831858525591859018025516794567875245251765176848268427987759993074990502843974954727873249165371981913955320543663484618553335292485551774824055399486842054270655203125749827592569582757631084475781792495010703585432821029180680284133225977783588190737047591585309573227086758861428458039198624257349099455201179530827995974237940674701579230557804822307730103665808022718433940326291296800454338167499043366124508882220292366332864054009312547251076244419522598111847702351680396975321979129594205125673136861617900077179296300614338146103160747458604070804716291283559159919383523637329821866736428561099338617527574188636771340938673024378116441851767261126116058396417075097705964277175474610579715278779269675646383875331084542107618148328748355262735791877368808672568358911300628628188568208907173607275772473242938481935448014850584185883738319300597946902534641510639241845485852330060046047990779768612657505951219210024646880198779156808038675544515207425177509130127267768510956672543334469314529122386399019137562444833824359521275099695020808105644610553897554291026424498669803761160763201200572752317634975696607802858042974525727499483810794064579544383226973894380850244639744058140236323759970386803787594535796530123152977026176533284973207179011280528723466156290178860625067621440240777409093119625293611929796112591628832313624855578999762168146628558964595734126195099837676548456263335857470245413677372892255240995059330368378993906102511895731443406402432967090554808157876956153927052452593458628000680380347459013096892906314184696443153575922352967754488992728658209177645284192373783953084487325938334114796715482412475580110254192806193253035229892645244939335715237813972084236584251536155685280093847552128550884515393869710598978874228231275227829491079403000739297661934358610070963998377888824903688056688763302675991139243366233336974890336871001207055429253407253227523670993402166237477002807450472676255980130351088996192602077439838188592183921238648451730139676493918398375174196759890882835593561996382789952519352249648668702557158392544687739896077043556443869955052466066258853316244025954463692938659711321283446055058609226374365886458122871447583645455185810053917404752822203443332958614901351638586882186528915671314728378636580104744531889947265024719933136886983010161234378684981139688725169605486960336678323667242442149686279735355683594709215655529464732495394549731910803878177282576096960970549361840896306710535896421458098000792553802228917938039002095104180694765098174971711677720308921048362960856181677859984779434171085144701381594202404552591488969301129241329888306074101526043012486618152538476461428526248822334932342077945512637613208478285965483071019234249371005757938219008197383349580208538420239035279042530950342718291435248628726635950477826924305160697601427092596826331643522276692402325552501280086318619491619882628790270075067288313229494107557156560536370466314177054986539355657344671728804977693711233880398214654971648841432496550834451548481677443895775483470224348838656947119387678132376039916315846629252891799081397044909923031563117286528376502651020521009344566015166109557108688120074234883410546707352310515272225318475582315443874954270029457831984107877684262067283332191478205098027713516143065206328720241282154942682607748645795673961876802405684015690455336824323059068382621338846148106928744460630164566593009970387461661539561151684161981291448128588264538169889348379898544713832120571143198966654645548472982685830785381183941498926357703251984828064628648611279316415529296227542960037241152156262951076844473722681639791741240083879859497116458622008071948468168978384733267076358058181934459165197289583046810465981477722317021368169759360739404494225806619462003970169517868106497380668791669099786993001284183520616704142108396543191422828240320159163498096110157994077053752413103082198824045304275230965705407458550056314777080556878312537465567212465360357457480153614118865640743439064440770954832533146014351388712687746773906794853163130146155158865463927928025016781332321363365696699440377006937410236568928885221391432423067981939565120552289325264490639494573966595321751006156312132085391090801582022651869888886550912596153614255464667636958047444857422791053865548555980809778372016594882237465491677016577673883703463835471860043885645027386750504126139651679767747789060820619410725028208322623970116495375525554924587988001058651281720239949883982635309800415630706798970186684740369404838869942407185610327537923687059444769110165332374858565900249359377105591931056100031205804559290547037356229390429495802696448015420006063526406955871143856691686029016598377489842574606341016444347369268483466257419699774294344592355208287646152483667951758337394033940615959474246084183367729600019214390669985048330988624612094732635911707377332035039214425313462341002604445277303540195513872605688298824626037645813941049357761368108208645254293608836120039362747690181279086398611494245770750881625638722756097138375144030839346208158393587218254081715766503606986664029227827734569556178827622097325839530751250755382238149159581941506572923887725956717064403070983939709670197704475008483185402110001960203049793977123029902743946937269047167233191701162558626376424403466252883734371437394871449157088823985150522271699613573865449877990394954535580384731251682745284783138077450304391743555000753412022650044588005627875142252449427688876693878572697912158420817058847159600455950696263762004457520611076243727466127929483440612866297089401974038397812472608843268265639799855852043048611735750197803088114874901060637844268783471678025326291151485819374233978510452659116431748008379326042553025451551609969771359287084213894987943952527924255303534714107913755692345747573426359831481952357716307293028396291235391770237494510923740954360313123886528481951166560893620551974571759221206259670360763358551211095967063761537548317967133153334270188838634531952838593507393779607214531477940228664826704612883442604915546587685392283965394943009272588997628707124004639451110632222631881052450149557178063945071391931004441396199230232517198064717859939552414496407801980132519924852296440000700584583170409912227662372195146610157203988820479836462093717733524038721112881093317681237404076795864493123417222271044574879533668053912016332832053060277094341235854965569306844755670882128643404462424573891687726117171669477713494552101552716121803584522341253542817534662624252883814246377253160257310170175084081911400080426540867181580342101054052515469122733249314591497854783883376368136089047135444011531751076276626610323599978838845987717783033470576502459067699564609679158611183107799543158512006046191304509922279181190752859079489590872692425513569605512161962440263397307490158753164360946166080583523307070595409020926974709501275497660972735184230298326083282167558231938851154708954995144040201058496879362618257243895758005142899207149363498542072637360346729730080550633159242187112872309719995484835939773450434671249815700129770811881798424525135134988394178813990392000076709517891609618086014077017714051744191186241187573470805833123858144006197001910744170531309115904200238334345476562224379988024170851032917743914840998628177453037042403321511828768319601875659043863824523752360169158007783106857951843042345536127410104106810655928752490547691010667382708292976797809777543145666281766427248279729840845677114341772150424490048732781624521539182346809555017780961162471007719201880283117343358699291652208202337441883149470891503984435045185531743130492844357182651237065213637241226792596425608537420841579593641061055855524095281672102201097848977064913406523460411275580733288323889356824322874617905757973429954605362035056890517218947675864946469752277468963701183401846593036473356630165199592536712187828009174997551478378653673928890115845935918815142919845080346157024140630207803028514760660225587031976496511687333687051225826243476216968202212250626457306481920975240534966330430772409222108358263993479185375316134268477958190490185180898563035323490405461848399374682623838967000414115964112995228374153649549136150642039866572831355555040907232473194773466870282027994413969969705382011644823824039043466018020081677546364507064283757943848291246425578435058051927781764803904059231930337241155201190927073318177447115713442889230612061149827110594590967548772553695036963757126893396468417362096333682485443344304474462465139317548703860047953865309770832411026317481320756031713970444710126831649287477405756131609490120909586873885462846356866298032833834288077124178256359626555671432268131503124938643517642277751567347509493812739624939022002264576049345843335913465686073260402969148688451771206171704155400672766571404943677929464398103892644252954032684472411993649212563553968891059898943105702700601991560210651595781360948905662694488764453553893116071794770256260586167444802960826574893278726492822942210218745276398291869131517354489904933633779057562691661801645239370834883610100951556324424945125857265233369472562420882786751719944180961464472628465347790059263758771541843294747748678182969068951536340599505871910657034457071283632632234996469513443883378316901665922020702185864609216376576760833343211146710055230139946488933134655475139025136663234554869004750032450125710427894078172097728375255064182226105052095475389150989872823617722635138492654476487304305603857680294294493391453697859813010501514358680255827427885011066997149540358390926491747565283666704473079921119092857753581877384639561028923223801950112512292885614122259341892720643220160913122257758521306984828663531885137641893545949040753223445713013789965631464492392489704005122044596904698949924851802744675359774738952483690771745862179332532788925367145028853560488964655681169095045814254927124500660536566070919354691919959910531230663024476401710068424108524769940605677158152475179643156516977438889130662024337756648168960949408266552145941114611085700426610433276811595758737214380078713314211878787814849714391823119763234624428307988059101099926886767303307827722246575386771614763540855578166765403329076877200039442344473718261508341103008493107941334414253626802426747273527966474577721369564465647329512023409378844904859798538964497344809487396604441103525350391193578819876903465364112993963728490720904648078828437655910477700743179489087391587923720004419917114867155159660882697935996180581220506241609400847371841234414068147601849971126239561420784762451958522045464618020211582564917634828570516754804763761741537137390259217633400728400629479146698323527328583986195745615438633704166618471685432642424210403854990234020643768974947983376898372716194480120922949600162344490514606462133921580166539722603224719439476522074658327421917534591559361941704015128448983722425913736423246463654392708637550380058001429259273686878114979997426966990143983584800653702601520236600709051598453412469766956942310101115693297870227307439334916395221360114199729516069768248683328723210079097045229974689306033393170691518121004606147482355682254238688769589203936074439295618616464021415764895763587776423634590599252552681531415495173257970288799734999492829222803183960450866924382514253538271954131624553622502539982992044251358942179754675455202078826599407523900981021483173087823286335075756774396274931774033257176376809528007704637551264690023182378414455168938737991377431926423043956891836433917194383838191001926838567345002890269412554211995657394175084828262034433034486062811924203304959833611485615334052582058269416577007187327918029139821175287651664793306184972825259198804524084480364994028263437940675646357033664046262358938917506369114161701010501852365232867733834557911265341943892511371893793967921448142625353180586648552131890028320684221419804876762464714269167267293052915756350090536157698913403356389655963707981027747697857109815298823262396624948912784425353897468246044373772779644108320901483164258159705181114329291465972947951352280603005505834125238506352910852996289806995413075901590792731908003471780099303032522130400690766989264050380255928273895440915668132787179479972802234055621715068814403768412335951083802556294640141062363685805899710808589505670534201286673958954859506221556937857595777874785935113447866755260087343462094131986360407722232086994341218213949006916449036063166808557739686517022654909262981402366233558019035730254189228002183569887649624732198927629043415559971084079572445706206953655284447713680469856437634095192925300536490145113789134829233402205206276261011614641468034119289117901767055537464841307650014673982790892209445370571281988798491500480828322297311394458430714990601564364939928913700723748725679360548670211610805871926980076930996332024752631040856110416804497854352140085832325535776486731144549717293655030958085709107195507182685206494157326798635493082068911047083759748103066456664634469052151365307125072693459614270538141335722617285520818715790605760371168130530895660174544006068104917026296942845179665066066911137183240439168706537705023234874356123667062405602414799721066914319392262146209136243854916260367135454093125598908779558732488402008200884332738074561167262174635575955082465454062448237842779191045555088844932061303865641174288708544635120386923306736593407242164245890218097882263814502711398380244777069008602751187805973521971699344002501835609738832982442060846365340847937139003830262949785524915500579285246481002868732412615170026702511117927438644514709898083605375058335776151266552745588693190815158219530490436128285180635633875943934988217909987678033905359640701729282495054968357986320929013033853563193395627171121721227369150938682457140021171667306224917130330782246350316819143624116507709933687672915027163224694386870543200573689294462409453078002090163226639525284250920504947266416696104168140108360678271297592742103513570090117663115635642759297145522518516664242930219902864070325771379860669552644412673566066083075098701738762049259154029492909080912820553515205607679614855707044571687688457440599237003475783280933851200202915262187806690867903898029402192488136591391911481506939111011266826170189764397693562685973532440961593171743722833797817896625124518360907705579462991025368996972044060610475856476043181431437151529565322699940115523385303869137854195847833557408368702827353793168015360832200710530626770801575705400415363057491954113053506392045996353782534202570807466164558950309072348708416343315454467689771097895469915993678955612252443020083168512247728855762173021499000393751875021173936476468996498615192786808227282851334276647701783744394287754496920653926549464562760583671111579123745794917956830494514306864486144092535779327497560808476981242489312910313503273671107044067535190373077968998803120233021227991997127232757877107675745845938779055512230377015022711311072683925357168250846455854141363060008677352970480085083259716815236511921192143971194713012236550215256213486497941259316494515545258989432535849053977732448400671389486473734741993085893681562961886805992471693697473185321662874847321140756060693257325812539767245392063560778392784236980865958277626018934017281809121696006623801462678848900760457969459886197156930706031692535293530256550082639921370946152062625341552950982334065228550472059494151110857977830574516614724431556498326081116194473394733057699987682141603934982755514150747778439387871205195533829067897660586713880471293541254807903219110219444024058836070574766745623556765392602788875318052776045816816249782886439343298453954622186295209801662262173807586686621276601773763379037797887404372321513966612118025630310035879836566673935281828191834556858898494842197611986413307215225059581011966132915349961741428413910526442830341617319095208839504302325336711861754688179300237368181372481502870632011561479376944276126202629309330039759046910036352182601103413611051917310472900733362811870297457958983721678554830161975311136671293821832868530485595097099566865120716599464517182642160313383507353732196711840688197310112772258627971009082954973816078138944148006469258716809542365501505552075738217719130330493362244338196346972076212448400078151090629239673911978444558137066727103516575134330284649889006266744720478144812776891849938597214953692219960730315802006325975695263426918298823911208382528037930266411557279227105626087027603126119272561024052989050586758635465110917873528779626015726308736370629092506393319797090056022138755605914110739826234163952600944887139142430257773496744523696669166799189556305025193271336826463483281836443076368533037791059693800737617685082929292415151504948548293246759470378869929382294392841222496094360081262428328552724303624271641676008551040067207508420912883549292951280765728588695253887108411083465381595218353995573327768458284638515618973610673163895171417175228932830645831935040315910501143243028612990943070155733540062880128468453527787062433463540092179882515075055145118489213942034973404704695903674976660696794641394072859202776100259153407748689642792055362937277214936748186270123719408864711232012696551585292849265560139945954003108902776880547540235135400608286993652493199191699322341236640487431291957518505476181860590364939927204675473207396408493632252033794772293780304820543000735363252262646400143579875591621495188740708067704336568137743310395072406216706191489031190635822983629493746135007110632394491859698936227045526394877360665407445199202739203914690911725242465690129310867185167106839318593351931715391751683421044361976609540225276540811069685758910990091293646739521093000163823275458231086065515061322731808482840297642810137937886648799884330271027520476533246486861540629624835796836540347148245614712774654330744167183616874102314499217748588239166345124081240645090710485981352691959574461665831381001130697562486342948043400936569818321736769611831257863329530226487195384867343267183011746703732219981170481684137598299807029292854480452057878790452917642052191084681379700011023310783561140195047021461623513742469239511494571724637157694301528336264526552193817755038594400685295229075188659516309465576505186297352383276254169704578388166576141585740465232957153035019940597664392537601572340083218567787335764638307365356131842709203951242602758475511672585429822627436989121603051235663723443602934613099701932264887416502187861055074205464384825720638179059002848113894731448044840974582035197482891378780846619792019188718079391891073003925173970174637311474575701034358268252484274241098995938660698208699623115845930093147795839451913606068154912557354083804530557845947180351072421726573179423121068990737803253285246504999389187936575320923515010518052795215468103293264972796393159472874742688449790859712434037288359389588783475275166910589070400942900507789016534159619513916488795273803101883154837251810891455832988047155479587952144675622416716200044223912327388374819556413997775708968432285059914635556284234107827030199167328137293192619497880629979123972244953548417459798911904165474904688501533563886182612308785954286348431627858118271834093220874938188334581309497331395936842033716235399514034251586909760808638642912748944061039393406471090994919242686640113671547119262209690376848506426471650617910014054543988796133592642304569359084609353105391315035482076813443699226357403687159587995577428009348941299994304481592865772095672463938687855527299643134130078834660339336855125209975985113533112039436053808850342281085002242755816334942701876877555450606313002196047709049278746314741195312468280603459901116667246199822995358134756216564986918222307813372357121137682005519933560010171661404973964559861303237767270145941708922756822193079079746002929759940979260600756585814813137813612706836379948866853073704245284212215010536072478599123266256668773044345420255890601700292312965389424823895421063592743712342487018652311773214982402785803733396691897168283576712948637112043028465469028937488831055298860887678861595024343643327797695102253740812268407144977657649520509244719215070253081612910784044874159662895519735100846442490459949017938066349044674454728236002775960766369974572786320433422413290731223043604462608837031997064198660938109197941485991581748042233325656284951487868833036982790158784497097818836545411040434298532273988154411529725239446269831171295368970105455672170358143849417387984129957941254586181182095205943133141671769565505527766858334150035723595596396776925238695787458329354005050379108320779253675936538051238980176698675721168552797904149634741841275047372004346795600511378522441795542987425471651704498456142904020547216055026023621168996542542392492049526833542317242384219450117368110993995388645420900132779948762872512998609697855892768412762852420726289175146432501100039752708849941417066228163171347301022462239294736781429032356976762138676542606829883328982003645860600357796839174389812808843139875649220161268067378307756843584186715524510507103593585699265801096534958117681688236567088374688419343982550376037830886078223330962945247212913307718976504517301332921181526301339009464841253552551997443839827325514081148547340730352309016421022042115457226552582510057375773487454010034009372019620988591423607119038809125170107208621834685967641277507873637444478127535824162857311398278599061224693759861731957090180807550443151902180076637302401843917846554813701317494482259715654301519190543481460672428731739816470770679801975536566231747691909832761395215147617523115688101075221997154757990665204254925496859600870290855628006658137408960161914599609030484265811129888452334021221968703365084702096887384167633806316946604234600227928224354835981958223814045532064666500623302735004049276479613588852180400745355749576729840491759848641654839505295368192158163791778198629936862530498802202177984163022504913000642676258967341745725922840522489360002333144106259130482722458471180761523437632092231865808062864574518640916761165681658268679718602540957751302989025347947607479584516882912142767886927781872793196429065467890095149583008804949965723151774014565839757597982217061074515478794371782733843681138024403712230396456895468106013398160673261813890186490832884109888989195146519388664370972367026543485031018465053336488283705499905799146413023533699546603584097494568968947060870842600083310730483456119110806114597937692878479929052520615193287506555417702458869490778743033721419024785251566951829014304746360186332173232993490829763959637614734857539393212230371193561688839593295120535424903782585999228576852248768151248279378707492638919348136272041145304229064119743507266528493749468457714842404219806376991880362010589409023228009938977936232083055236556705336625647042553784369070720821080988447409295487131950057789818423020165712169392479248714462969054021957757373916588635563319806105447714183338280315119629810689960412127894355847667077569460486023145204037373529869886580144664955109867340065123469281403373304890441807772090555860433259896363948664365790952523104803844248577713707449856404483031595224698209796198367228576563721860528611470873160482081253056790935644536920640121375191611257162606470349069776002750622028637071500431061881036960753251983803208656782693599560153707557548610693063177999955092391012941101385550265415876123880711473794739044600458163086100937408994513438741934959315422587543485647234860137686457944478905161293772327153582231893506240117033849500715952923353665065556001602357151400672229067781790268921644805733472360877024425665203859137280432745100313899176339681334780754200730312765497238392463040728889756119078859784341603200916456894341920476667441507819407983063541605540022465993790909154936177742797180040335897513448782170615537410652300003904208096038873361360959675466986931667428935942596388637389805106422029956160303638535096160027810031530056109116670248781122328300901681964345339326141638257433571315422235687396669116755310705362468648643007669975302258019015773814618009137784802970064312494489469945120332668826578594109718281454941045001731766395793356518750151874048314048493984385055014949108287937010422269517434573522362265207403144593073292357412946174037494143397406814211639578831277181525279015122910783596423395241233941053419210462701656205451071513676608139296967329428978664688088864199192271968062065220819446756817492574280949056310751843264787741773903978946241520829494460333830832967308172591043162274801057184708933387423720627322746515349100557381978645459651152640365051390378041832697756135701901314587967846326252342546565050922689032483964146722305812688900153267252416938599632268709492703507246032614362498290952832232417609046043308953886077139431955971311305713875220056529023794067106538722277099585614809172441172024441182021413474919536727934691049634437585071992349251962137222858300075652566373768996090753995234299446298156474096622757167485148769734093134521303107898735865102090254355633352326071789922206818404990215976216132517000894935374987970293427862239601907475531182818473149374679722828932681816802419774852065432156023034555921403970605872980690741245557841381322769009560609264095156071846078639656507110451199168069291595164335931527242536499704412188171741191515884119314200732867925254049986499499298689084998240265158327211201839232641248520534153884201551448855974318303394064024191133352367294237503718287737960657883033441715333310685755749630531055261851986315538492450231019945885271835615924140594214627733336883226927996346855930567382549319173727152097372511904466495786985215654280337881697520624457548987544436831527358825202186347831001533830383921251078619835270610534811102893043122648399288304087344804902127752670116950883871409168456894786251186005110782456915986184942678364485748073083674353290983809031102725006763620194260979610083825767993782236066268918574900907987588173099753112377106364249688572297203917821843242231605700129461142520912929837894365682072450408190988833042260681899705840397712662462244454983918484228998868387268466145686227161662443495264952325347011011763485180765046995690606028886653025442570728161285234636580018287555973074900036729763204745487939365698844215906927665552182348933167948830964966009387237800666661344342099860030611338931446925919378232430153749608823782799317147446346801374849522903777566097175699750163527487332878156371779348572904164813200263532711025247046548095938336601821170366479481344378389740043199714099655071243022233505720530299862215661803019738772187064311667424991418588196360869707180641180029559642924743617481089369183158542051621414606919375905267147266338932526301698172353834304750260694832823852396254916692218873224582817201286960900266363489542523027205855406265026746101673016111066784136697182894645764909046622850220136487580018838086076630478695531645071393110383868170330883089419294384354985556501118502284659293604764098556682310930854268175429011634846693847323128223309389591893128735947653451755008441054502348146755147404934708966096615769437998868739627565389246260499840175889154421775031548315641221755000327800551601612455873277071535317354530987160313026561411999743719990799693048848769328573157649026261469416641809719583687344406438261029865529681455330088373543915073593846919640920027601406509593527658368421317736022835376738233963609325807191449392502513291815350077103496051205774883496619276138914271814208952261247254476851856547988457212911032335375774299081079961693495126762590955360194116352027742375650734850154347114043327177568187898875569004422627944893601289245584142236163507051031632099429122675846742829502667805898324262101424895565913034821302877887599415631702543301923902833863851130998291255494802062239926996366912808782327895903912454067814748425938604172484099333509935849247837745711857922416646124474531225070159454500230860598613328004183388382812927467582509419710003461320119261388836170615794492512265874558237499857678812195622398658548997313378253353672108924899486682132869837195923489898055572513086429164170279251914422747409451784505993851783357412494947267161128112716055823545189944064087638863931871163739391443518089455090739743088090006754013614091904990240271648413186248076685581484030980767728396351975307943988780683868942341984836794507624442819161188052910923614523019008912035461563168357728608978920150092415703423314781668185705503133576541276943196981630521868355982814953981757670262411893940587506647589923451571759609319899820947427087562621530584226702720070816063482507476417757335227250079900744855208620665276145311874448390889856228830382668169643866741680277737807207144290466384743668129844551067099053045973029894031955673910117513371218397984344009130531368642097690459095088637187149425368309725211936570269100044991746765401970364387347211883157906491748410421664797970990807447704673296377081244313775830202607095156438513417113636825701572621345992696767300902606715356939593307335056031592752258864990972037119682848903138227940839985408754640220272491803337386656409340436446369959391621922091071043745536414107110418691111438856909314381201183742454434985533961201724766447041484132725553772247800447851032216068222926091245139838679242895192239109608134039980734381098542060581295746215811530592286790704892939562706031998136902735087548416365224192360741684922109823807297229281436574715634931551325198211531608987820516082607026946433446151778503371422363597351104776366667744432425790090433127571231915503965640986125673276890536973300817637369571116469635587860410175592565876356073315505939615283277631984894520948613823391267515418053397642598332517211408317984951870203261335147576442581077548308485162999446622486364155059772157840687866092665838695323482087264218127043095612256738222103984593314784882404786990022991034379379601197635619708304032040190909505707465607905281453678161909633389478280710522935689024748306276666688997804206882844585707311583814696907310718694464308853731933897880299730875159929277135151369581293474598453498685419096415713086403425294630412783687782854980479542649903420392180578458192578505225886576114811171079898289782853490917244634251569129440632687136480384501155061066040035015468653232344598908627365325382348276869809207264361274319434875664555123498914597408651323531536023821222092279530846164691446560971774209327675793222714954709699810550544135312519569697969901054826771212053275133816648802790370684394442981903751082052923776316464438188219004435546118913080934045353163116268127985286805290724364792093729809105701970703083814725941117395973516314117895787593810141626376590329089006890413995217635177761128415746425449718482568863596098948939382057196224628600529189753614933588768521570990498658401511263182573754516784876562316407911084307681294709294663858302231513351018631660885982117784034814786855601464360761240004188397670393142642551137760228646701135939871507482522205179888960371490163553187695869562234593943938777989223616200571607332957075241580230940240300920602414468244693792720814388831583997249717057501719941883187934395067168141433474056786426185965833212321671896678745084889390417941666353231842043360288896879494586292506554099816920045559476196927146962443459023178945898621746379335662772608606772834938523544037122710971744255541614320756347602404580231555115991319993961939642431387845237804061683070625358150182409412642105376119349838532070805294904578649851361772003496217194534022659422266301038552154981157775847906202577076941929511285686586428198953113613166703449538936981982474552113438729148198771615734056592543067601022904002053698695281515865585412042153437338740607913830919301066655905355944761605508361065558766834256739881321548098872705502942023061975882332059492833160424971867974647939457729144553467501213476550328094678447621929428116533546032144352064336924162462316412744640098342850900037962943211732303648565851782571153787568682879353397070838621671531304437807944585858610947978413185763143451323085829431127941838467054443153016203194983362456085172186734535351821177088650424560322673011677537949370145686229637424503985003636960186149024616773727546073401163348929956060756698486407044423738937513119198473174567236471469567682077457228073521963842187229557979806559420637719223359088874689755313604193865838202602289350094140420736961004175831854648003438636404358719427775302065090817652373578101526543058006398244506647649536747288311497068945565717958225030718864316961756018453023881108102907975386763057377059602848849310280015033720176417777255338880853717993840305198141376818649859236157296574954886253128177906558168483130591298129769623654756180953624350417269879831116235489514792329452700572802094319940480219989224082349385816026914592448067091842116187116526490321824837134140837815736931382528000101155151371514535750810767812608745082539451846353108914882735704300526293336380756866175276170889328585874984479587659724311142938720802246948022840495434998454023710069089121380908024438395271871839292228580906845436972147649608673770404984482942751533736855197790376423155545500677871061866389306176347840962802190145688773933104331293621278125549382471489639097473013660144571096662434166682415714418568030276460669554808655645553867446341422151745432623359797268472070653546599416370151479822269795367646456360721242072739946917704108641490924211336144972072983134863492045270522043655658716669271055207144025586465699587349811034213308607151167735857426663708532812604044787525291380001861931432527557619927720593471220061323017644764821471174116800555552595159476417468590102976404484298150868015260086656251053732839826074990149071701318143083052986601523050894991473113370779819531138232124280133057191127708226705558577663391000836036864569614412807495735259299980114356709356924226587480782310279553460766835240008884474088192073686764816054922091926521628008887173526716846015365116982439403335444344441253799298590967684590837694053310585648602260320399095576914730266517886692331172834345514338710795607092979217504406043844426751065049322049245233748826566639228350679406704410058754376378960124395096419825630261404227844609235231860123177617700169439268965795952975447454149874736519485114368653148685771839918974495667724914663706905776345968635683876012152050186655853992641649776694659165146924477246136264640050615953602348915383788106875787987286878298485798823591430909130763947753053625199093422797328379908090781768224965754720708621687162744553020083138478641559314566823939383471566195381364713191849465190215010956916533998971183374109595538220680585054723426208114869010391679436541835743579600348081256226784897715704158392161241493856624406504222471925383147958897382853437418011152329326829658857923860661486892014185516073171550673874559962811249841326497073695141856097318544598054753235474727423866468787081265436202745716408097414313351824637431190800778451439039122823648607938507421453993515522822627968935764928185894523187195353182658864899909515802615946964186727137399030991788265887843410774520624878365445386732479184695625184520982907938743010407441105322877686650043212796824427185014122378152024352081572009380273614355300029004386126190273239774516095394594479899522988806751799243972987428858215922693778532600911910277830044746034543529546055244798634396449355789085668108610082002937984145550975148750603526788624925826970904370451523325074518474331987341368775807816083955417782322927708865027643485856500735745705116045336575018293608983010130861597344292599460179357940027519355222776749281696076500546990044820332883517988799186260002141255001624208155761016416574748668863766646373902380639343183393288983187693222603742290320349117704105263663176490645823635385024621520888188759269519468298162916891038802904980638219568406015709642213689278326229458109099610295571474206337373458867510781000104980874106879114438466957229165061251937544654420689690183957561480003478611880428049856828474707491957895287684342071122897631987077872203552186858795110732570046787594160454145441742187001405425702724313703847475283420897883951821584909962030292004436702095171534106315491665281795689953185521738104691255733239325179948064319674316672754285181275101703480115251962063624664839033530551227802552702175399043078277134909926851942773979459465494266251208722578640998683428985270027465105550940572509637126297844311003120337763124000826027933360088013574308281978496834290872292798485965807059747484264084927633394639718300854345366116563160082616375761550265173167890860348451059565723357925664087059232734436819368473164799957509006301127657906400512687179104271172332467214026066394030131940935273169588955684074636191127260363816135276125891669768579969673550154405030733727402215169370998921495669511534204666721950075510209726870812544502453159932565622778172100720076815917196838988281907744248869845497080602013532074589118097480319188451737734523583136624903157747590344723982359376058289759065928014864061596471293529836617569286410678344064939796030227597003081265581094003835141567297376767456608629023764708042748246149787749777834883213014765489534547267729160849487821181294854609761443054226136237733933377907298885681653655081144795415233539777430695886671835224640043531350471860804869615482564008777808904108219318001806325673534032880402076112503814346708269815241310463861223647682715674569375092812602614018041446245007990493775646502917728115437922500790835590038840645673918717763106013696327582803851825811939822748023804720767559067349715882885217161170534640865256091832168961442483561562350558050246454242137997501174901408534580485675016732650958200206994071352590941995982777783514119691679020134785066602177554801809142296384002822575705043153919194622588244474074099855169921243198107621899649184247526151812311346441452104642537439297907529556410459830824426206256724471759274850061694972362062147485003873940058536855362714782934959492062273433087702197599844288346711420205869543907845385734534022260379895044294295296339579480790743563748871369841852004244599877655009105231891907018628020317943632021327838393659000629059138629155954103564460904779112874725390989695489129959107865263646397641004812582382065231584763493717309590534481132077519561224929073123409526121409465806891605810797797190846896391481542191554090506034339913673610301011965868025084599756027001817080547466198639650227870690988757738149139684155607098374254941694944221068288733192213800419733144714068123229306796337523099932492497030050218788347075309483330394078212218929766383659470451745138077448291701089828003278066179284646764078195781162166062905305710052206538640474039822317986049467021084408156311347949485150528908991701999395633175149286296127709166881346547931679541645389071014007757888740292154726591774500250795375718430536299440618860027931751584704255322877854409432769117211139737399096689186761077452022599039317372749274634854301472960112164843590115565570673098305050311375188823476167503356954821555833746432341311628074447538016450528327451149572752617879290316018205679962246733845440270586357344430270304361200961600825226111229843954141557723062154833517410894460304635697350725882290127758480564498951531787845392861279254437766473496961255883103593994245968227575146707471839249760067411993188031274094295431465236765061152784323756828234433199157956693282511388759004229794995885104695037309099202752400186531196785281203897927464648505901284931072080100756015198045130013208155986124765363510426783578687693800785901586737828555460019059343010460891003449516570263360103465745917310103116898657930585760054747040059736274719191646466065492531929551152144551199024892769656082093650873275332905526353049788259380924928212455076043880413064597723241314569744389484481307383587660052240693196506298594019069341930466578210225555721380159216367526665272029376510426787467295656304136868102511571950413834813568275258148549817095767163615169049137632887645644445553995051230778018317317146331470341551254895307734242250041631516242193660717849065291669379171046012455279985439436304673392796974190421572004184405598530106910696154753864939833232004593136811139672027950594491699521328073773291642999435174822341630417388733856096007812923426229946537602418663372034118494030359780817747478629641244200239755927400228677169264860951743038858594113856338685520434129273668866299135057693113729073571537291644358391000041780013564591672600478658199615593084770024718306510858474646271038994036113605362991641129035292685152901066798398026507866238540939294154140046181703479534320796023027245409034359916459394777830773659251496669712071188119268079872854854378344693258958199081610247648026786558329002254263976955449817003401149087851433219137292558493094223404220119380864195309103228584461324875867321233227532589078418246587790933165757934144832421070186918884508663834496937255120761320819153872757826781605154627471375708256524691818858556990861719702636172326391716193393434585774491794484930490748905811778626209461727633279934625314579532368159499179815281978842127313051677365872544102410251833807720518547949828686343217838869572698953335182981433465704113817602515235078700791046754256630798793802234489974379095356848966772084948643945993307263847901762401137426085024365212723611122660362017866055740513979315111013023204121289319085706392778598537853524134696833475075675418876517258619430828831283384544063243573316078762883517497932475400572036056236215142522363929640888482295828316872694686696820282588128486377147804613067854208494346294926909119423224317885542431755893938709976326795698366597835243226063525653835604763279721353686614621981383842610191495571182331723923459473719444916048884017391403217296564296274583107737706023364429891320539365713590565936303548254259046873602954047265507682475669418296301305237575340390159757637696628399124551406107835817829515425279337722138161695885183933088119560464601210642499833547412750102821193913819123680009173362586957029074962252044737729875300391133498364119291938013721059459712159451970730377543084822108186586391951213651934508937808395034660740662387938967827638495599372955549231367550212798146514676904864709507582609926571318756023498466180050467775770997246019380399505509231629715698488846895016018599094871906499533454007507342985169152555227350863785693503077949080810866025700887061831632655641115129588432790912681001487484392244917331757905791748481399941101694494573253525401719137580555302448891216313569509964361372440891961361069100224575345814751465908949255114156181527478716637788825873999595470758432681181439005020108480382407205063040028552575352160166123934441491286595409315562410207697161760568819022885974316184063708032748163098239333416932702406127194510855483563953023587058143362543378703925242304541812686781335676137024122773791021470276814621167517238036593096757330216376661765622718859672610690183574683003461681390114148290566982906168633033284029155099446456114438216350829601840554387446954554457019915783378977957127599228968269851911698164309604192119493416959300433575032009048700512752494693719679902057079962963251671059584572308864907543382462171576077208774808790095722273724067991977609266766648240966473970299613699879013721004702974988163078548405135426784988449790204512146567421072129449483349344301858157005707602857484035566105035673613202509270293649885434373988698197081868798116344391006694291002327055626890470884916975136545578771941024274309551272017415119751209736364144927723197397786485319823618588299611360720379003856890976174565208164545512127321460812133665549843674606266017559149815395695351196482823589351036153139867455033644645559369197399882530572327335592903857529047919902848000080592903748613243376556336143458867856292206622497524386220872884984460609383364780534769414500222946480460988778079088196341567007455198471602680096762528659597036700595657779048407416596055720747006636366177895357255933155626240820061057870013801690793914351545949126507558540351709813118956286575726244253812036747929701409291406082777378309231167274604714239905355251381517749852291253263980484087254550077899130955102431083050439473310213313028963845819529177692343647332944620778291856165608716134357341999401873361577056529182423162236650295272733087664013249123689704619822699596706263818077769121034686036494909889631773536110980152910941626163403486507224380624651077205211881886059171684612238391099224695740340821979533145265919862728533156808125693724234524509112524621078364022101024669356672797418761274680580817004833527995832407379506271934667105983486690451668120465162501417811238623323951025466362666036545460580093973002408826101015650408896753627747272706276027842021691559136451080053368413615620906202170191040721360109628887681196271736199197857368418565506089857198861719379081871175866080913502977851181006996919408567814155795516080178290121518227449903723049537326573192335368736928255024613352314085582795396355100766600309851007573728829504477947805134719838153420161864401541799883460652283611386719464251642874121288409309571715208459670600014669686248854377166218616132227961810382256863295389231068285194501292743599088628687970697468513605527722638698860775083069596198646755474744719304085788265520741649147938678541134642211104430046896240726715969186820935478846510410208088219039163282934630337433987176328912784840893244662691211007937920701614503648009998961985489618490195789131001074404558921782501882564874545569096727053167278654646634633874467119004655885583556623121986525267509882814045167025624970237480149370257630469294571300024679919373512067304767255899199405255983782291876492520585714384961509469212469091572002514323848962400181157369343933959732712526906996260886479621749310388869480409573274287716953209339201692739230419704755055165201368533964188069086359804306867708788177471216881385569345248529969720486031470872218893753268598816378774320753956077499365125099831468488760982672409818023064014630021056399805479841265619181216485277247148083190610991577923611957304933577683741326466206057172460330156905407958732787452849651807639249711404831615850406246205686807232585807603491541595116172112974130607677961007168877838735114737945438604152684674306444630124188615434827771330173174441558515016899403664169024549454803605414872557209201828987621541656862478859949750319983938727219281591160202038125716548789991387170110325677405039128137108632624636401276661802188267115362219693641777430378223076998062987962084732376667905348725709242141040376974221753773142237779318148388375142133773958337787226776537730559640537496821306356202574928556066554899899947265954548398987539335356677233893626879753616130974769136341781750762968883559010833387025368086123945698181366856687374495371998243999111307860066665078261528019283132911810799022682882625827096504796853548824914884042552882447334887046303011971212797671100872541147601687604435827611409274014836963705713817780313594463571167123143559293596941528907133994224767360897935718364273992928631456429824366517189350920846986498412934760173420682730068358821136548282917020807431274577482155949492831322455261404118444029109122007934457387306451364203658711058150683535009867920316523349530321007767437648590809328311685900669868809375493337770338342983346304395839361450298514991898060169420064278107438073588270065750318139586413099246003947835179878362790933654300240867515926074129740899657617098520675953919742872641380717534650624493038645623867976511459698795582010654426923328326989450356887204134002632894059200451538354013574186575836826929578094629828302554118974411117074352076188277483997037288872472296795110054696657394741784689559750538532825050808191498418291667509891672190724445435127077854754711377048291864443905419752881752577773981377928411686251007473291052822351322636218609342719201397967099337316679195021536354832159266969488153881603116795623760809693388180911799973958159400002486218058159834711974127916624637943594234046192262174410254799671095970880810666706554470693551963907384160643522221947970542413212090985636885527448424580333267206274410536853886030500610931103095196068433302800100212178795159906765911898462296893027405690398553310887763613411710442303344585585248261324228965487887477419975326454958425006237305698044465824692649971445540474150310590454776729006131380482915530598831776963372418692337911673042507106904074531548535030730033023885840856444580431379003941845728580292102500608196130556962765073154021014037180413980221664358873090429742501948786679046709684592665484756140094499997413971523804340131144672315905199674407126285655053026775380230618124835121240427190877967518292989855478177647519161366645717415512667779726771080698826386350705627180704674423070416691422889004799727119999097372419350281355762120442801882585717445477722712745152479920469998960587192141854695932666504567561851141941218294103895423611021647915271719020522511509893992295468384857085471718542147331650592364423308777561541509346963281265991341616688182341590067243193490228792762050418970153006004661480234233373341314169947371969189486401403393797025022992186108930583569289222836011765820745118098125359491748844727515457619897928312401789215694398350372698876098423917183023188680665155148898037713265331198010383065741774630737443159870476988562170377405144990430367932097521193704005460601634717310576743362231842721943347133963544930785070094281135332175977047479289092555072286853357207658433551984640597856222166394844710303336084123920749750334917008635162760268921215429816100361403314362898412264216525927150628848070579695606257239455845403808853577628886771084439268542359193735059658355492464204437102772410178279951921448605069968415960494461300620986764510784616010433271932638937639793290193777513527956555829929393609165680874554400627493740716322931957328892042524111425183155391515138097220172113270976605959292752070388805223599614377719515551999564287825128118773601527651152592483650366672372597108298515562417999599408927494065219876212096032854317632286659571273349425144884177041736659676181716949051738412942150211413932398090453280602295504223717739106562612812647345114192325282037467015827191044252741696013534793983033153673878852608432306373991512240132074470441426365274798606548186174414815529099998029828816430468633277672566812318371570224587702206128330779885239910898212461796771450240249886957401610217616325303885370515752031400037069147868529480491267119778800031920572196282658880462163777802255612587618833192369121679622499951348963798586832332297205331754876644739187476868052727209424454396682101807501460134599389935244724713522494479531771678450330386081164318856251915147437110135109340132848633876373190988521520630513889313779352277769743907009522748556874133819474076228010836563663883717921961134559855947779501065559258514183112039743293870870430256629536751825850180378541362362806738853086775671916959090562799207976330447219646937630766869768575925902592636456858212895089908564084218282733443642785492752848796722301287823359480070169330386805215052759895863640893701471115786665198584989431306133181943500418049100076953129314741110972002501764483500930963867741405908345510950487001866795070087096306520835903638255050937737529037563546928254297001975974054306241089506456311381819698437536305044311219111711963994382421825810306789379906884943305396179763997558648200212583624320469376533062179150567935711954592572770554964181498173522119695900873787085019143554056838808766113672699496725629790142571986860440793194272954371977611112606535225335837393091708332483861042948195020132835534952171181548555085766555932682793732576439358787025062322111999455499768023254283121869394876571563642689825094222520930612716726267826300052212129711799027726776980256712752862803278868948174621646502065152048422133481688325756548494251484776519018453717132490738627122100552623729592704667467590912046796968685408495711343604904122636817646396329694207276032012997695780961485828918080545562216006473278436468435303170789175254916958953728678915241227047350349758517152902479636517990493490388180806367307956389456806072342577837710938964288609322200541562837489681434690284961966301235368702374893701709395936320106353418360908002029438504883842305600021447456891823220619463209894880601213917936311901987099182879611906418670500301213879377594088193762429087815503401280155758470639938002562372731244400787018848923977957565516515658097490918737584278521388597946428781010205024475254698442850072709160790870493889335910558119815846869493431857808698659180695784788622857667552426061112180596634280412512225010226425454413289069509728662092055854934783221887797308053580124558402521095456356278484255444957847057496222167185166525170065536397975850371854490500091707914911728861085937958589301652534776259500570726544248434040468424798198039627985632107910994289640442365924224216363068880100974272553078287506582044963465251081983074758108441858924343275874194014286337658879018666861109813497631668810271145738429747193719919799218465648445320019263483813921125992872413012314313892853917044688204241852475330663049134052105216047691596596981015403916302851276454566420505913646687984866316201790870950199770755628886790379198312825114696708994191537061633111684403072794268244241208090356039289347378655095481417275514195130287846270351496807241727926491801616134900552717650406401603693071171166282820598325005436400276107992244201595401444532389579654428166145640605187743192891418378526142518725771511549693059123222034764524128591486530309163617869509216798120515440337823558054111603919021621116890125445281134303902947674393516025225735494186685975167239389232435372275380075788377095356449283356979244076138921702093948040548896967439275579108068597924451731273028025980722202599037486454286098790290201248438014389417786045556781218739360074624064379034645884657817980551234007069821023790769657838275412483647095834684728106482823942048774282285225125235248104139928660307761938109697605583864713512222689691066992946884359461597985014307788623046778618507319545846162979395607035889904622494989422710049857490707423698356918108294051698301270313537250779115809028568128323253261125833845544046853697617030070212914867658635865331302183789469639765949471229679037107424243768789074043717246176750790269600501816706805156664500230810819966385720973162534157597648215346584992727200249352383136997224623577264915564326089449676289276447847200858931791406001146667299048441539584998990256019360702881446859657641017036047483083893173363339850905498277904361434958015246382913899285922709128767085792781280398601168103622981501042160285407831032867734410299023533426664069876941513252363919880394562966966779604283986748611539356454913244311717610840015884576307764141263585465207196110452605847754628824989366431027767790161725782627012336553052646166011674272874070319081558441538542358677750510409567273917326023951350202039730655373263860954727976716888981120826474464779127524564839957951231798482284703785148373425821699416185811712225184111409918992389764981606182151496249218316663261599655224991611874111481940426897813019484458431662202545394991649469068241780872606230300058445493091305496231250604736290874205668683129359769601425022744398516316138189769244482224577678206829713162258615403852495520245489073944647965670449063101825206455303091296383331406958333300523349094284025014228628739065698417131512753220558601070825716707675260987643581226332135566274542244143771837190765949044345367231618860067876592450328158377430471418707747410379736733092999364672430955556053052622188021382413799999380365983466900502733271948749536591138747192795339463256733897829934670241485283002814753525712707269574374820028601131687749181068884799054759601125241211583961851448482278013270136084893324161706514586753746275256549962002545801064917471070057441454947648873703213206807906158105122382606447471667979933310986301219815214918149351259492827356604698151230527510014675859962347641778045594102441345169260870710636719303938792860177058035097086385994048785338482341101345475223192129983003727349998112255428003716787704893057521125652964665211688665750562052845953168527583507221746976013626634255590102194267592438850621097554301958539438148680830844582100000335356478871394483639273426299468368686991380374588563152640140158636700409189235900839406217950840155646750409685856093319403247108608741696617975267843633831263748535272540898310562183610335437559310379914084831326877927647765054087120829685134812741817187529404826267136604226470994272604840682791724649061617525503094112279034302960892911537252651159666436618401170556628806597886556174652450623220536362836108827492591637998953068502477813659474526290532122200920766289777923883902095084524464535671601767262337037029603150244588583674263615783548669866466392522669348918257321655431238723855398991153438541403826843960217931800472273030297391904449478133964704021621018059726947977467046325680811775894862049647796930973588861116141820034509148543101818469271167195360304392920242480378031783901055680792214818340523196529480639057654737332566464818865086740962177442043417615884828002907309071405462808107242398311445290784131637377687857146613674077975163944087450672019729768885032276513253317825864159114720250112156348832576939271450708273555301699366693018041402649629063687455996490213431324863699472291974405787441162284668188794841359114040695345115752203882594842886331104314653935927038846994937589513682628318196499684923117745040568766959461103171003739266643358552079424350823072397029635221622451953092673014950573874125094993189826735920031650818734051583288032252723877546796639495398324830598965260331895469323185700563338358283440348374281826871920184593102035660365206363640335160777598957277015871068144280459040036766067789396176684975374183641545643099887017960093334855311468006296872084592800743414774934305536945703245295057344533009382078582538087533447671971797402563869187099901250881510248715787570671694298944147414321699296140447698907711307407026992763861586054637438304888731025347381677176085583784157535678022657117170904475016739369424944381115345061300396613301239710574928322611009392033110445798155895251184331281236298673742760480346163132464596597878377737064606896496666006575432186905340458055431439245782610315900043950820076608033729591144509343495577632801894588979001609855131581612950070752476102622092472593866368557728768327664849009127692839408526149650157661547696586178664809094474528663312994071313956618110631370191926918795246474746733299341901319557908676800612667626319557362435363132859404567890972708523876799291991044076414945913744535019775169318479892427876261436959243273246267631758646749326016260726111453941635435259610688042015631761614457304331655720868812263796123617495752521321223558321972557636016038586374497800205334414067465606496846900806289216882871797500424022969391813639271767762593426607041215748886241652707944048927684518890743825748967092955451396989235260115639443053250569118053162915333400434368488357579934615099038392774338327094314978830240523410315445533759003062710294570943667184445759024514779453469748933582827157000090121108364408529657856392428284855449605870526393101486180576404744466707922757972551706623168624959364887792681923351416135865966594147788335221692891438886458767883779724186971605169526440423958312444772032610824058164295455391659493894678688922232130629700799020339917613813698601322031297779059601693380342777679539137401855150907770943517759729698080590460498274625243626286922372194440397538776638049086680972785297396550880077338655155702155119597951511720427418379719352457631672989583686105034982257792041743125784840712308416481266894377517137360674428298960764660920014809588570823238539160359915016585002127035379401328114221738916053273612078752791522939680813989542401040555432754581469341854989368644651456125046377855663424907514267822773936082301098790094280806335705817872731163347415569633298977103682889067439854079496945107926759268076004561733680273871397510759992862586197079160114513713650727349136783992245892447367810905783065107638038749596232140378327367160470691686650134399247422833131893099196627574848171753889752380293156700130436499916625619008544573177960373457607203329379710431888007237350094701716889330407957523269148218989985923625778239990501748636535252623820970911743087248493071713743929618018919987787290844069966031765787728551421618371396612757932019456019876779693884712193952234519981353686005849662088926185733183930809053607507397874098524995274695662342732563034361056715848722317880015221445522999120167884438075078958474026133953883567129277604227995303034483791846730209366705889010383776895986418560937010691934766820293222698619307801366996995121900230299892196495982632854315792413252562661227022250290037766283829665967094664043271523644841956418389437558865215369808972081163286635513626218088708927339293500495414307257373948893970475991066273627424949481008253110998454711813030168081099569076431861751003781642368606758286900113578085139630563665501135874107816041443886877981787095007959136890092351793969207194676016377391655874838264218843626191495003428423363920529836067184116231929543352117321983044212335744016549370957845284484256148745452452176476426949406658637130537183162837225515609975717050848217540664935230870989220508684897894110252027945097551287756162244069319526802426747195412855528176486454651270482566759089366905720442921260179131684450049319997100613151680515187694577445439342013306520313174809453324091860295743244484318439310002971999630729470170999877736886177861843362835871752349774838724578855094772611675723977460764155128217540094819984599086830714544632510516992671136349646921166138090235446686685417278293926877320844904823359436660842967238506361534756869545797609283206865553472472117564754252770394619208157036157452692102006669202199398536483004803122072100396999950085629975774965212395048488661186036161623813220890516497268235446402374382656366356314045665038500699886431512211144991437348393793754337694353495413881526320394572465150705286141962614093860181040464758839256444333770179501110761279374711905246305447398917983007229084599143323014216748770386089800466190491208795592747064386230758128783039444024050374073281005689817545431601366812985652041447919789709257773393861541283404923961730500579792834262827538118127142512842496485030162358515210622980511852854201850590104120594499892282777055196090561285981105050323919619585979560692356166419380191195660600648553557734006967243991744916360350938942264391156627252544272917160896803676655461081667118560029430821193229817776136044422086068995032594305539455971006360341213442388642282123112428276488937518296060523106178234585324962560743295032037456650105175638957533204082754787499770515990478111313312349929324206786572508321656156478438400472717556550644870819037623411446780788841899508917647292327512696248294639285644510052075606008864098338789516991031357048264881082806558556307728697283925515754640149734494775835254001803348768269723761806143977041576586413626703124168476552428776868259194330477308622328120862667588772363162821167242709987540204874934026320588834972562576620210629486843561060245852505445590495782391405960260262369701984892654287907906305202003401935197462429087658230766546470045354325611186633825631885242588360371282642321090404438050001842055921149557935196906671280217504332201431084917143734627916551284899595662145100080890625159196560354623923930730422435751858960667071052737101401596072490153523657606750053025869578771266511109165761334401599356293688304696531084769693913653350643987040211277691955273773331811612297568209306729031786966271805773483256292769006357856537827888640396404303539342683906998545973562040943470294239925438426807007624588018874221312261694116575518271600556242388269571356905095677544400423572882049973206488510888462849426351104972703133490728739235073599305195068678894181604586259590857379937560364191086826656706402538621018068292528007785901049154904365092054639464824625043931807836511544651966014171743540433885370126835596574824349828355856211582960195429956720327154559340367932528857907453651498921386786672751754423217860589745325938494093001242692256592219715401491941858475759786930287262295240811934597729277067693680147147447454565436779355629059339606830262584691624773261172311789209844402443987276857494472408841374332907099996727923989193501547526747164173291770701664088024513026346160609238860320604314663327819495876605287830869066242763613152218402332465529000607819896800313788555943961769874977538143708657241511433732576585558340166291550554048526030719495819513978181665280867091910534346362040133100604869184533842196278391061598408635932904772485879949897004598180037336408028241851536181551430319523829758178385493297657609479086416171707301728375381809619342134921170113872338758596981371991119075356605882448918741016738619556032078357569968004846710497780212123525838686153293370956887709960633932770743865784015077734721512103570306258404453320104718437913413193103988063254222595353882112160121435029959500678418772378663924801867345539879934340630146443944985092881182454897509882574085551784913461643610783448174387824635648946228099977202563834868409806188633064765500479889902003080602727785563637906897368463229852272965457598432779479815155481407223049560618316419746025085731489013601562338520041598436813197149627009075612135222551611974335824297793775349554173475363056774099039025973801606011410241943381510637470843528450182989404702719789650141181646418042963058623037574116259701274759897587607473271133152898693523551982201446300325674514177049130660010058100675455086060629301739076172127250654265897491854783002717288810670915842151427198870536892113627348320865794920176999075045870045656193464697509294320546828362035230991235856932816652718939027338274202154612777101793001661457690901563990864137196247926834950454107539058287209121503815348911199783201438421037483598532343623838223733599391040286803087198153756667545315359662764071777068073148171872612629262965535996861143712720032421806852052685266163464093042045835573596855554198943567336611126673495352162545899664455622839181068982575115877962091846059697338187792606415247507645481812994621865065420579285821436172035697846943713301050768876684046221312662869313799639945186438067453953488449645960181011019462797838265174096521668502478700173200154931539874663072959585759086254012233915472107127134778055840879734531254777119358937295561922692913235775678058421724662775126278105415318499250905408027246411107390117420769192766914869494723522543412734332568778166414282809332258331203838302710238123681375248014939675027445816301982907818644668161365954518575917931122404340426666075133463412903292478212977877345587089104933141559405554770972727116160525244867903585004523785524304021291517258794005582273875786387832949622109577060819757970554511283203562552668686408272293339422538401651762220822506607602775844336974897267348106263702707705730116068424836859899918517929209892637633521385239639439267194647764955834132267252470503662681585889749035753105714242499784457894633902218076226833008261842495682325379911684954977839037241483981218939501356201421011677175289099685875408189436220289080498164838075923962141244533297108193642936334978505467641119982954873866164834084333666130651157179740382766148593423630160171573483314110784248678248749264556800908864017444626087405155479039237427244395599663323925847922094971261310732919244130664332034661179804949218733153538241703064456113692759621864490705479824681167943022642432466064418393564031502017559674319272234645499195056577088396591797649979957346336481836632017876851595759679640572118405762908145361748662051915675533741628244598690626780263970143361295947254821123876763626257806000300144244740254591840343250114785200657115557581584469584428095881894467090681245505585501933598351600406547051796906044848219054140500017721538249655800149464706356215752575765691610036732192604979635642729250371506569658801707004350102878439127309907327149430219792467173014633123399363168688852440247104378619227347030631442674446520704664584827416367653002699329725341738715810670037094359403046038722094228558991619548344651144625020043030330691698118051330791480201643866094049296124602908048646822561398320596967739362499014694274436825119373738392595942411146573729150002862229554336593906538523824192654964358965946429053987038451207940248462695481217863196105811422830795163608816245542614466149188377822253679708399228047032061283021453542128341745859495516731693577486887320094338240251148262996888893860185422975502803019589296591998497540419673698869916330535744376311261387439409748338517796933914144974149881795975261629077697624722733725460526954635810021982855894257914930491503118448839097784585942455214541025437206925179740985830795748016707840182532320624648827813676163066599921751342158294029786128544512736030224294704936450039128130238784810311261548345388363370637647927231536471380846910263375795891723814068296032353086200980568529731952303226198366664568547675461059160834662914741888410032483871106200190351384447856406473138032506016412702065822467453888391901371019037781508461287981473371947101398979915165218366499902023982319025751090719064387960384053835655883841312644827396033449307007695856284017123329930169123944464690074773664037577103288623302148044150864801990135502752786706276779644626127125373495591390714202180461836298753448986398373402986945937130684830740689720779925526840460317442414688878629611089072541702393033108390371750559666457348585687184443730832824493899838080198375882572736162726614425137003615239077205027310051953734270899206512553572877767690391347568597785245409585442476390355785159172849392708474005416276532105775809428391682761208296119756288457474639608759957314288017947119853883894641177068202481421608630950121517070746040463845104700164636510223431257066959746035140978986200408145644999650421676051479642465126622332668837566378590685938388369205199884402676998525924145899938628746805602498105529743990111728481742316211085548584605213015036939041664829128504387653118238462929609658188174339309115772846265786471707518009513195227057174320665149911886890848451739872400239493029241633598076564075051805796320104731721135977836274658141885385959271208370960946964124633260219683188924687888963470233814126667622120586917853957712375024740160141207222762634958538467895639577747469447219920091177874776590640982069592586981214222408151577330644563312632651829834998563200258605636595464632477433456397421035874768106385649433726557956659101866051974122198678900630286494219539435814572137290933363296835679879996441921316011483518896952014966220528373884926197372539573587605859611252522167658440227930389773560984658866656119355621482423640105915923600927633367021702725670388937622678489525342380128122755231949449595363089113080039249950819349280888399706394299731853592443556079533925402934285668012040616001975315580638311414496965543922580996444775894044325379924484852150097356633546292314656891116823747702934044505521001772005050856343700471772074187879502797127267820658929179743704280525537573089823855492511008393690738870262669991971091674466801900503933375393842143272058489505506250120458737548700803581255335516340409431272525951401083441163547857122121643242541948255037651900012050611546296721997859210413991565276154456671861779929039106770305488358991089778092131456522172275107728278151982086841384418111513816721919982231464936175342415598751383922030728021778101314348592327823513234704442683100696184099121693330557940548600270534302626845561225598415358659943659164249695397731927973043729587888263759557255325793915083632127388449130924043029542552728654687618228556277798348087341517263759726116520105595046901157035154265105272876025380586750750554385961973242473310311289491254432532725445996796171638359558065840512236205176804515679940594269592186159339327761977652761938153770731167814009712539449588082028759270215351663757747047436175285233786458890845267369989242527207255796359709079191544099861676224769663028393999955988398825456067903695035454559543499998187433660725114098691092707196203331249945811211774999719042151474109092914356561325935186546482850053073805216132591733172909528041733405370317115280988667350806360715216117293212152624747724725067459733371518022770215252901159695406166701852924533914421616974961417993383705527084771453591111247950616181356645363193702427789782254382170012085386723590002914913752855819882919483910041462770172263181672244855329490469036409197178422153689567039881985765310676761316844543049481880279805396426267146727570015310725436336587206037019383860670167564785333621572637702738787917509748442605035498983548336359986949279175628400425333886999458315738646597632658631728215463315617471758137901640586116373504038874833321299082926641573910174460957352516859193881964020318136272542132697024628860810462446400947519497431002046172928011662629041792758028396850523999783721371254492254618082059953728943764567679227028132159019611636598179480044093374715283544356066783090461442959833520263493243130529862401409531907058375811774539393385369190080075031289973253289227696748254931435923132738435227042476831645846510135816458912735145679171234852505034117514367089064278264178977416053931002693557329025540546954601903212345601677784211184636362920718883796218634208590950890356100073782684449387269724398932704840616157368772116303843028167133330236844850279089870448157394369529933814349388965880225900944232473616151695094364514168217964482053951333767963310141230520636990249375287330285335083344912107962366645342075887951884453380632391751514154319984743708312548713890917766707901032938456275810573776866634831595548446547781344756929850406515617275228542775147695512882206573838731064271144185996523611127143088716119349310463012425075688808973912904371302649138068995757869533730549207504463743673266208020244882276224589635039296477088276454472831532565165790712197748420332572624220176502260500619005087091063989862491300705077122684653589724241807655308777535879681626050197305008886921259202231417103883036066805176638949104073306756493030006225783030738667461619943098927871461500298099325875471973512094066460831393539053257350081767658487174785161220469828372456893577433422293451336981662717473353571049066908005095571675727672642830652237245981980527244067840149679091722523577356284246487487430465803212964835817033376727932145340362874449713478688836143456318342379177009450758872973224163386448811759625905118881115581477795736418969600889534446477667132392191571760551892016943071554384511522606296617884871618489757353455530251635126523766023029095776066015717372044809693208514130281274864051982793343206283164196665081921654306807074544003220593665111776663043062650021867279289325238119081406121434224557902617866668742079521846464588388783671364336499307270592755064246913840486798370655411240726374408473038870768591785456898541823386464155917590868680910509412621112537495666796541761306598706339129993101355337669327077972783130861780016397068615071566754575733234334250840195292041755929019797624209834917935447287744326651335211445785315316839079868422097689475258157816213377021158151792473796974957621454497494744364855969493249784672455135963677535172334313849794055566265698275036121233563371677289249162414612382836814541956969246049249471766808018158732955387056872008750038619499526753326558353104247561412381873855817411738778845898008243732286624471712867178995711588074981349343125679115476789065371862516149286502931902256680467565533421901561726675970455669382563902122237280593021283860089475565190276519147139367318976623979270201062696766280841003650010503350059819887142372950467907777114314137077109303740643063452345587534021491752641118187012776111871035484781773483716150891011272910810555710722668507329687185771534922328251559685757768868005664870751046812802598007628390184552039900837933123691354401532234043438197707421430404347313557046462344250705755521867952289188286689940011235061040321795447906464855784161037755595477287100351968102079275237545623024338648013328838817233706795095239078606871522134212153109330569155235000019746595147267925492771517209742357267493559569326898939037010086573999639955579762562518110351659892351622724890100262413153529320099876285193532292675073229126999955542510291124582053617339314805314144840781331344489410604832288158033555580824701756314190951324423275276222305988122213495880658466097626640622756574419899258043497372374510092508851066537329454592742782177311932681840237838206573742948592018633912905630123122749643961165371520531107578926980705385016637582852679909044984735271672356469280547432477532390108151734277863385894797243461780766583365028773337845303530181130471246931859573770650562435180454027697852550253690287299150245891560445499320850542729504193646049071891796359093999121962399694634431195978555563538353736636534322168373402262563875543065416544461533434197796636946382808858245232889510331959005258438086925868941017208832004884963395920538864405860748149700663186609073272329115357183382242811975713805632710772480401740760253009307079393459842848113207825858178462632141714694816227581263278693666748539594664660937982931684310565332668242951388217126092650654992576742424722401615169362077387766930132258496621857433553822996522287828441301709307954689452971088476299623319262757974916314823149733021488099777219915458945515391722700073715741816525686847804717241337650708547120740818243335925806291312104297296100716525892652196255757790767197220812319053753539861750933430914383159289305508570395543863870563818792026066018077478110921827256474857344182886988473404972001823051173047947689909291007022888558093559428822807261086361268018668243614016660929500002953962842473112480036375977400565430200244590513335113081153346605501765006410847349617329989891965997462263244893720345813909832364636118036683760276883265191184031917992296857259055910534056092966704958366381325728478367033777974668408716770332697960016366217838095335317017516258821479994117422346998087756146121296582791222258097234813022815459749248297120202375900139418180010420105588046765065249831254367295791327917245477234280404305171222495874891078267971568603323492324076790800016829108910555129291046490936559960729555419716415029487545949916889275539145114953697901303803718253437790294188907869219638048538118838286977765190159853673060704299188331802198166965000021311179210034358223599157822727196426095036544257765311963605211683339986025992426016691148246414202542665903553518764098544584937483496070097276453533928804679283129330339276624878623011555464272107560044619403885870500893040885868244635321318969122118375568350251358663696937564088072257983294089112989692330473774294305820984472493099545640342336673139047261581679778082548402396433535313257959267549374582015604157791045162521408554266333491462033986137632889480528052456941218756426703598354038570047075909311639803469497561304579064841175113888300806003187671312347496469173062023623116272914771369140191341798954566847089805245021362682827113135137960754060215588894265499996894162465266461024097409465147836647106416835061014546238181761204398333816607947129569855351735782897162859057795007813711938509993407776797944233593515909367833212469250001055838961969167507675774380757979211250135572496055493999842318657551078251437840213318265028040563650322197159398763228580815866213369269370797272260352934594335979257216091637071120586341704338447655388177424176464493470648741090551485289826610419516610479090733379165018803703400825543594609444789330647177376510572102211921833492849659281606142553771399910519635343841435313244526184331141967552342513689561404604154851420687000841840017342027631468850615650355224876963664883790336002907821901031279780660319264265813850196246655653582563660564054504945865318292004960265366404369390968511595030225013874850132192317524451365470156499531964285135991106456601043341156852790369084729895988267779438128885845510142358330805616279631862748482795629867836636966930859900753744595415023540839089745688385618557654061201045557584401745009027628575351894561618648508184615772291574226486055839885273359440532466893592294057374151771145082949792979482257285776926749858255861661193897228596381849342994139491032296457411321239138702286509647602372709809536225415426098455768598520769966169122437231390609788489775507915982049055955034381355864954886834336597017007905832332804846030780925722541542609782465329264134388762635466848316078101498655808276462147060284799311008629101266886040534138913712948427240281413355053705292875930747818771282306091352948993673360127453269014466104098462324656176044739663355967336324705864989794596733354659092379492332507259350132916500941174107065150001732517416021227224727012880833721129366900801443298730758402857822817344337872744426779046333304093849524728254533889032518029836972486959412614968115684001415162783387657513825617128078601666419884365738140580615860652534806385566505486825761658125955934346979477684182493471899320474017751022639128666205525494093983699081662081813866632032125039467395695784841740115518941621535727679494462450302129068147268763618833618082086121163288901209679539468466909544495678629503834085906669742386128324629921468683951465605458462956858142450877846360720493494777980825956686079977701579144907960107960351174934872688721242536959758206110033156624925191711891246977756201607184150094031679784573162481301719817284640779874775323134645145686612428875321728669585501608699342232004827611029944918510319614632567355151212599093614385494294142666614667220398017357864856796553691408626215360517013961187963085482667771911822877125804146717056895713054909352600801387364527649707557679169525883786445016588573422179303925689345567545708424960954296953578872835785816262307528379607668769705308629846179672501560881997298521187357994714997730448220823743504880753892409023742820967976555037220092817388279557954600947916264710421796004967172645498857578411112027100493894235369835710503666825189132009078966194962082186228454605587403982792440660217216571650669668707883665811087221812202355636065280224428856469049147016789924195274477046980375421475660258311075302885836566110966154537364613669812388237940289212680482430103539542577136238563070595065365869690429088221601227664579437440433846082411007610133556915010896922655034806261983284271564400341535988835107528203388414677326913367609591496144887898020464546178591168020467022354105939084119076466327134557257473310070222545804042861708148506796962901231300482481702107293657226081622263412417107381748210681384340873381278590458615359752892493003841412012223994604647927148933223712338967437704046321753952985939789908325923507688250326942875264747477738120104302546887451941363963783421931417586552897385183707109140670292040031504662024765753721941579334070081944206208620410962220580450407391780587861089281802038513313323004925317820481577842634740406989946908655071503727578799022936096601341188453165796587887947023566443021266358591794157725558200558939714287077768827776860090485626063493518005824365225064941559037794480534623510217549252008545858137180655398296881203353135004547732167294803399415629762836803735663213012750716266712707672314964298246750511747338894269821726201342891600983692977071229088658417158265193223658190627437642237002846565700455701781002286796092698891680535190571446705327289779095498675614700024562393833615968335906815632075126519157252566442561559622088101789712458722998322161388233701991336747521233426979365830381288256292029302093271325821718413752176817007380624428975903164999588715397023871308426448889386077751812850536408168825414320398640877991713752932104652300080191386218979435165233304684194620383465296891820843324368324355198557509181845621940989666438745729769375816990264344883363436516992455011090059977353610686072029734843783522441623567595480280191324882177482774024072082639874588726866786378952214549722907157690752149495584165441956067302405386421814159030116518639592348656753733046331848575795697456352638678757678387118969491481393296312902676831305028114802585523974400293332249350013788521619884473623847409567118936801995590498648033380250741624862978280445014770652937256667583866178216243029078018380966723225600416699017824664514653727953269746354861997151481053837377161190657663171987791194814536171662538073214925691911356962873091816905929468263672755107130162291891088360226056549641457054929716544375660662226490269769188427020083940766488224357115508240957787597958939630009192536233017864347790830549745965006392246822462386122290902340383384452709672766612330686422808690448574962247285617887745155140259791352071772144979852497318324410432630071169521296171876273087782429444194054866175602026712848214246312859539162176084752548713262889080927276976453750383711962569323959942158743936262041524291957562947494054385137087542801680938136099514448403002550454558583510011016646906226441414464937177325244259759065004775516543212625557535310395762224608318658344498524698257552857660604948615751177639737156921711729729260803653294695500183553828043385982587132953445034391128046749360180918771922505975398133385825539203688739732007524713868012226129975054395302163343571999242752740270771701174403917460546084171141343647378502329478580630262935996080442232999893253466508886863043875520265778448247761960928114507999745715640167480557539968441216953256669724054568859546239175890991848181794707748296572939517901514502582180509367341654053009198185130697189872802088861062974779233325067618495470048219366401051908048188390460524420485542422254726070998654797088146510935696823363154923618515107342763333846065512749291519169541628342550107885637484077435511321718400186161644556987642954024629683336619241040049724197807238117600624191047934979551716186703099045641000956778640164883760751927289290699782158468921802685115277342362127484852731987505811427667206359761649493583858710485400942980828745253122350901921560043060454480364198299447135815166014190371441361079621838578395200837681094976545248112191051412703087563505988375551993518353803686953805565391258205348256014670819958689491407696621821608740765472909471809273718222649272309163951860547296365208693253079856503596096545762281230909802393936384660540616761441195948047421498725963828865366245653508644021430581028626114678264979256744134723200012529511574268813043071925886815025178824059245922051876641372326758060785012899807637280990036004296480920650368091863027467958883178232472209476665553987607576269351549100101853723727845528162814491622130859522531914081327840642677029493777082434073692354301037252695129211531548630869169158750174954655331440155211188825135035955344728501612695042201119707415732760855663394070036367690435395374992330808137406770981703597988219457986360225589585738804794365040799011902231220751473725426645473781068711415504357787604524942657660199033464041194012476491956618139757158313241828599390225310514684530622558739010834312105450564075140104961258098035626417359442226557947213955296838666147478392457586101941948512142699551509185091365256757224918595107944757607716744026287676832979383503683192565329366869399579645452457190056195198424446856258860221252375139516947544128842663572159415745248238914996029503299691260183028558927330694730040905416288152192707125795943520305070595558318642456643230996195076201308261316675941738076464344500209916763230148683177939740805521300205738109481352708409412172615498343175290954155610268404447337718592588877617472377696106260626722745964953991502312572041558340682492045266164185342798701828122289014129026206887137359646502271489737583093369083619738313164691482392444461609047429186707467083609603357542685293267479900341407763090264476013930003155306915909501563412367732817887713528443412323652736740553052375351050968260495321514240435753440187647088334425175638268361908092723143119798009479446971547722394984985961363833065363096275027242075955717974204791320689114706811334195178205146887506598136145444252024599631880037254599739215152720593437792419538658406182773891725818318215614417770891221425428238193022735287569664762765832415413285665114393304295147845467642885319698849779939631459313757751282811677907102622303286040755882914693617995288347836755765622581951271247792012682312367417502881811275736985617599090565127862265251894910580324023420925241228905487698922545996817370965208559605119586563776677651008811868718459663855100782244821982135525812008868924220921665233306093328140098181831583896681733556434248125367925463693892961145730058232108584478949589868423192661985294669094719080763057068768268068693191246090349012274220960153828507219424634159155757482756061737478282446044636567531748497604313648385279435935418699179111249731952695220162413787124733310763976000000108176113125308334164659614942051088646733928621724874812731119203853740953609730638984030925991085737465116271655781986968936237234910146714190201045786714011850757033898310426964656521571929940905842114005734472465775405459155007101337938912056583577078222198364112855601958798690226781460360326436568719589159455534474672981624496648553636558822932217048423905587709501038401881060148091893832653712841253096820209400850941946139762377595830232562967710834690279087818993915605820364491292606929780714952156021615152984487685044353019457787429039740388729521187105130468134006928801075759705070485090538240764200422522545397188767014818624789220661141632169492283494460708480775618720781112712179489671385843449579434412424991995242900277583291812325618022387571767220993370647459896627979105997844459051277172862437672263463620220694515918394426952001833884643887260341784533551630531813376242069400864799976307433323084933719482378097524736874015737054267517963068508131130010781894609767253658653425852806467075100722447358349813776197652291645877406496265934988379271513165222483483978440546914008751152445120099262270035151438981708998456018125998630513446030756843843899994006179946815788252742908797978892003393428147144637787712534618217818060650243117843547967281579742041760322257419325034382872510077954350261561504352480468326639410088568049675467293021431559472685023147553360590552775240893386961331660919932588896656796739707566971217256014491542955525552145425991930213939679588709730423723464429956941260713938445040363975842034330226018313155734931301342053498978944087846677235703761424630853862655001804993382055951891180439408475066247993547956546090442489007682747944467677942075310376782238134438284820107555117689468317933051273143605924165601855788994007968771652110355727547086332173595377455615978870823885388604405737390361532670431949749941398485987735003801492921101559416890673849720652633135552207242556729229324917218237846755889004481895251999661158170850356818051549491968009633671415139233090777479978745066004129974053853879852592228745628432502601062016359825178374577558722834830992523603309129185568120916892269668898384303888596974713063606530957848913758872780818635051448068754995139344266254250147127960501548249900743196449037246166316576603748478028936638392759890652474337940846042299572009574774924419976246511154186573127888620243030124685418939896576067092847052306246797280156315923657228919006122369983614991600994486995148370772303582893238363619508252688406901299515577057861972690646403269574848446179272759058504254335644090039672438587464327553994804196226984090067798413279335775205343282817550954106744061619445399907214045648660596127252747375475380289054079247984754492399980193402529482879961300550444886283085770169512490600533304812511474854451593570719324623486495084745600840179416990794679691891466295209129312316462551203749776638809624356360327560416641370315066133439580795256514706365597612262060212547923688870071763535205506798701486510930073449457534445683611851543622466926082806684350867627648882937493423642543019313047772089792111717653598678817582674084108745089593393610482212085623022837332508425198004859530134169112429782779496917233792916014620282857822080877041197340549114450451382845221121493145158975745536213585922825001993572513445406057171049972386496556236249946060821596887375804366318393618557255220890615689268729165200494582329502224820836148808440949298332682547279842380384534930710100887265647403753595727232389052155395675966177151951402598774187652357289038662400753290690118854686563928885192119275291470526001322696447003824623645102735434893468021992769137586658078494684071112453355517142661891728846147593793644514704476666545938942701187391805378935786116332571275621787316995198744230104796163592263260257225803740377686383217204414286217785729856340277607754872171976148397491123301600086729812849139979796095279007137368845428832527678721676367090134117055165511014666724656301001985100746517468522949352750419524771304295616714942707165339351836831992676107501965925906934771667305567791092330200155088578748014312580829196775193475745444827989375445179178957505796806477961574344397219117678747371786173009408640895564275806673018342068162324534048079662222058421477010754582023277939085146608030005883359903508607969112353282645426004031592516966345152482682741292465941874341054812143621879988234554886355248217731958239133891155537970226821439388701536359193265901961327114012814578334468073157698763594299215518986913725346500659773502198708286906610031240864791493781693283980598557962365602202014447452230258230657559133367277912883330179063224519677071089437450262621189794427891839003872355258781641133259244922304569822158330583049228783383349628283904298141233447346404442715193094116243181116019378836874746617738959882513430467313222086878243207341323193614686127769618876970853340505283902229061713466042700721238505496607265162047067209054517566560033117514458732007458148351050550925913358576455412851678264897617901314714587022330403090658709473907220619217279325153762196560870443004637362707107202312419411931293322501409476587175230871345190589666013210276919218849643739857778617351974715256962156007608435165375660653864031912526049610563556370016286060970292841087434154869952443322520341072621163266719160479235549216914008094761898716542817086182544993918180165534512206839772468596088112148343749074356115391976515279775248672666829959352779620050875196581004403365644596999837519364543764308378145692728649388532474072655997466860143539723752433978045439433127757006999694469694256176249427970503268622865201864668038312301431987761765498723003062986507596613785078556483784241840918448938622123068806530991459276500707986361266610395458526978515588138783994126199792667579309849998870976984131971391504998732593148802012738675408682800642100400987195041589600700925373981344574774861477967964732419257642912536348400467094582992550645723440707935736287472776806345323964924061519490527862749456325930589656292334704410551257881573049562856142416681246580369045577099699293915357344880155002030052662966800979085987121494781763742567439097203201348172386467270086029725682114507208667944977763820159210652332344286650915481684499733524308599892392654967541996426284231640068766266457916516642874218160776150317507883264455409192304241735224152444034378516067275707078297366528136353841240730922701783186018537533934217973170968663557878463272490510503785683588182147417533484937749780460049089883056592181641145327897992385309856984754363779642324555331657374392301093155466920814793222244892689241402287651518304911939413904430169851039291506960046321173869005780347371661215666455046913514435911505977493772073473733193713983457325589571944093167463142006931178749483458562075195258939627317645067069442686458358804210289487625671257446702435003118163061796246867145811347101460092094174041480185352636241179855137746018826612347076309782325680060222962160156675288623751915025899572947669934296019019671903296927958386020088493704052898658945544587661176868143538910729219399550332282404888398103922496537066311669459965229813655457431189770681829435382151444541491738718666875973088190519927629116210406649031859101466456342300451403438963448663755756145470597813277091785070075051489376280038350567112700148479916858498786055211125752117805142277872034780795312137187267752955892225328455714069292834949277985926798827879814546195340845038054212593052378525508473234398429885367257388296200448140802494910232508909463779442243176785035677670145769521105492878875360582670327824366225464394945244019351931587277925959109225763551552615178111527174304601762342094917772110823310473769081795922276451052722240232160043540329974238112259769549867822298309948978895856391288556691338321902235492697257089169390391342195812198982239866142470039779559026248056409485701683582094618166423115416985523427062708151798130745832345823931556172236970243080030582219586979977322100238311637675352342463805398213607402542949461871059251762252040319077478878373601662510940249693532189040419408522929638593686026948846480908353157078332137121382454041228873211428303324810954694058391341313907683273938818007360297268099135396592589812121024415105766214347164458025310201728229988584840134758285824805155481825828846370210031992211461974269260742413695388872972647712560275528319315635123555592330777287753325942160676261033805445270151869917504773719984411002569217292189816655048218240105942250076276380847401460026476251188845571220682145728550766297681015999695806455350295047463736169573190383907633851470030516701067422824149781886192191405555727033551123501585252823331374809987713447899951356989650733921111719232933621282679521810582107141154760408219616310687913220806295542036959199864667168127929534887480157792613160804260973872714743041140981837849639359810352490940509513674555619691461511287879303232257352716053964945554192862752699076707145111523360295068344924981702789240750037033562217525856103454023034684603240828134136609125561157915210066108752297353678428744183484300795671272348966686791288912728014460224362717414043132297047290442586280869719485152966512809076660327561331726107038667558000930089497177053105336982341126187263578797993406185459812969218005077098774671016911123686140796101011720829628632648453571208768833278019970144969294848622433582998735814982287555256733377568008058526074000951479123693355062636436357476663699674477123563112306234879811406300740806895099969364407506568249420768757747263022296528665385644963822181014719941920689375062954479319567626109760150007385014243672156994675941905608931502039779817822543236234954670076765036635706950588707311815085114982300879327933638872435153790990561389516583051445776298027887962150235889663456594047600618659381153220581546152732420527629922330751634414801594609792163003069817370168449574465577257277089228081208721351014655945807167330505728771930807148616123656535158915363204657335949874820362385923551537618529666691581372756650716399304220894334796628381414920750841970072461579225639127951059526721579181300191335137313827580352553632878767004755519251883439432691700201279648123024966193807731045423116752251320553174518715609962417815877427922903991970542135875284903181915613092600320506291868831716013937784624666427530044193537805713337457166184351567908156270208001495849177644096825869837956895221216965295018313534782941721543963512254975525146120334704311257990706043957702518341188319808116601025386753697408253456050245609314899706343394448714308029878319706520816809246533365599523394946128007620638238188351456636942773295452096425137064868073428821123771775117156760105746472714984746135906115963145349025005673555737365879877877912900775949902971105272887737939706939126478333044908303152822137168462086641818813444308201810245994684556087917110875341455048770807546775289895665820944075608232916275970693999661899188972480131075975914292936515382208676899923263000738477487120816233420358632181488305728829497101623633975449794087409918020912780387505219505308566071050813204693294102176424750476480643119302223123110287835595817816262132458071794832616051870938739790570884441739302177505416012646259400080638168477168892798761352058442721532252999622160698471211602335517562417968942239325451197031323395547215956615853686155407618935777193452853670962145260425812943043383021333262144068609344009645589121871733498180047883229798017180421306073174251874553911750059009358849321730718121870816883068625238546477906575512857857208591194172184403750993720093734430179217868151370310883955343430504975217437997308829451380861816773215251141002512110765969862401828778093398008654258052158035317129187176302421115337359624848498358802899531058309749013486438453568021820352467831376008181670522891248915067999667478901869440149775788892408945905232050539854277311084802001817494102341733642573983465608672911745078911141572627265092395260304568129805810967657603637892733608243094989852368639161746460130674606397800984244894440004601565892620026932069568432855885561063635191097246251087462435909923235051334473903943321123220671555818537814310944007788289216752997408711062904091785390077944258621582894133059904166998478684443178770961589231172814829150855431851335052606603533637052106064156621881355392464051080066616662459419052237673229229592763999326788751583949584290043628358822719734270330846025293544784742810503524687023734005403652264587524629799998174836897856932195899627820527056771499416939357770274815330418125415886105205259768811802393638851191491989100830152458437663750797858866993046534912871711279471826147715665047912881296177156931422071349682514842154606365407685467752090915257357362274916548061609887445985452850778816061831767155806481999300961879988507782873756869547360645259513360542148865110608662805671460653020234064330805158435539298716614247083923273115702538889038338774022338938700959318624993130181574556042061223196513390821046153012759488779361533263162179341655651897276561014952919961608320897264232507948879665183712454119392318638095217148122592699478973863075777087939194622557126847748301938902199470281265992433967086651284378064299734653540113895238227597886955390591279519389034764393275422146413619020716939524379307868586325625008469386646246378799693956441955370541038423133501148806478922901457732940165038636951629657466257786296734055929542631667781346138771906762647471358949688275850364826914769087467997651703351897367003188498576615009986919921367328489224669908291432421456257758349625228597294658180174982814870428052605616190975790645864535311055625836834787616975427237372606264583897156613777429235157079773791737039069313047513493736043299870778396756151543979369661331274359985447857830475230696815320974005923510792865840665445779618329714288613467105086032214567133038110040456242568913606621390928583554964401026891197134522940377800449615923053020943405856669619320809318190445111684381058113897429988753657736093953844366277313532899244791751009661413162499315449409073282027757698419003788138268622184325638419540931680252474084333054837392603276021725934252215835640813692130500093748337117830417517169526768993084031660094397501336348955444715274735563985954398174382395490838634982375492017443597835177810325130339708093459417181980693955409549127913800863144783727187429464000942428108330197633282675361244083028329103721020544283636415511008937067511497128232740677632618978089665135679927709510103076447318859083022549000281500239630156182796592890743162903697823137039244425737241769191149570032350513654974281273026051107168632824782744465205792983502660555679545964208313635433241738921786225172137655413620956546103472603627266823652554424665489818329588935931005553506369344808862689939510818026704231709101340806314228192585605369054117837917361771346477609945916129521299878389665397448380510370014482737007947162342918283234805329437057723228969035786204209517084202769562746218778644180182174111392526479726949056433715425926851012173129943219308679780861657038399229185389674980153703560559732937349064369843099999741005698485522845454415102262403990337092812569506996619650770656720732414212144876135339025191920694600595634860833555114623155346784633646609310301559601153449240310065378568498682091374652673689239404750634002214153696367022519041481369323662532888759781771955531382190789944429382340092596693328615378690694574274527810973219468986043939666753187721464999759543222034712556819298201732367947864940180801003625922255876424746894495533127243585737706163690116242696550762933448611791973179975586923324686518892000919011608628509554073852651479205131960321491848181175054744223852235438237664257007376300372835793179062646561635916473063722214593388691148977038762611497095288563598484138993728688815521925120949145496208814491774761555942697197961166037494236747051869227095360825165173598075838934394287147679878615306794656119632266144274052215061814768762106865476466375041981328924305467717374213417243540601083663350011546196649698173817111652968898357581544379392888306703784079733021518523805470114825410897316235801013233551597546733524392312863207769677285894836278670146019859883336113226394013787085274814996428182593930822902218139845131141028760841445706791163207754818605190140591015297062167019839019538295615249949550805148148114879725686599228919537222040570309711597628829492684208345689108558818973966398487422042853204208428440772917747207635002527499246933350625928820907423252239513037781550660999899035021204893280439240590393435654756991125437854759977164038676454112690334093627024502873622912610563989564321779638521915249335638002593842793263870276816536927926265718735105806850852889910809597641247709323934812135848408013668673394794276651187840180889703673173331427160321849391394004298982656424182274923554308813202282188640566786597912331540306508211086921856408622914077358025864615391614016816354484350467077551768357639457153799147258690520398363109379452599899928966834124381308560466407145333231030232245166177339921719389131366767722514955930762290023803775295220165577213282275894539033303074261009247472390795784620066045588949119658331276784522992389696989288810574894754587408196028499855816217988794135614318663923886306463564023816242771756224785137077866659678977336731253520628085766121608207755559039871522164644234028903623862058264035046014926277029336693548916041881463151560907248137492498755714755576381904568352076495229642336474596275622900088618252463057820042463869269832215346067861483299108625260043299073763419021464421782147294886356755040277268581432794539464502885844317321660730651842147764251410416829234326973503533149574508711521843142893869692512998865854524498760767349213516821016770906018861579848679075204241250962166887107511130089452577489040352032823035234498994917122572748106498121815127551664484312152301371065293830698258922761295217030036741251402601031831352132714397454514313476415960271795924511628462482003849363391976192389365533172859664706489422212666936747026696901720899534733804282488868356015595978946702457231115815243257056434332555675588109103343368458955885785476157022688670178346542452997501336970376334844052300813763809943199651281183493605923445101425835987241543191511650683003315532066327192171008151261468507853293995523901589311461574431687867524843553931829225298761816698028093974547412387577342233704277139350551743644843034039276360457185128594954603703315062355201346738016320752965055303502152007334404027740071063243311982522647411834061474499581475063831014069298643610981224255719917410947730269875739203596927172358377720270305627954032547475344933915599711438996182031351090500197696457199571915709393272976266751030499392179215302921238529368997320551852925648820427929793564263061836452552956372053539786029713636253455102096318038948820316033261351180277524067728991098342176205605210893457023071270067048549709275045356452404057981385551272892955721080231495415938795322403925903964345514475106735031319292551194806204851027351953462882611426270120534683298464760089012786251174971042563852646143461329808840593749127067467628438738701129119684044192205501547835979360718316999717172624230135926467373390972909565694477022414542502254515217069369946056818390030460128050923676541005878649170599283074499165715198939829349582609879010076246497082896318986253313894970501090704953839671012323750636457501540597351394085528362967551260260480106146779742654995528963891459715524985470882294694628958931811261046920467686486652563710104151337104889950827312399216240574704192146529957856290304882874790936774507699918438221281694472851693125345688258432910536316839438728709484886898597678101153017913993403880862327411834202313984258729568429395116762019846427279646536385524359128480929421883482859990581135245290609387877367269171264000583782937089824660529411284876339216731631916774099193264723589580689746947843404045468756261900708718001684641820405637460338486795552747062128101494358497530498529146792722621433744191998152464872105294247034145995242133375331814912528094283742694245004230764784389479332431921315976026294507389369802526180227580346784811851183709593531119603114317154162074829883228492012983398933177591259038671058136154815333279084405760427417557473419298926537751290516123407680938638541367902275103781831263780510468360496292084814301585550862965948061868813867392204664059532168711913408529857549589959896513798172207599227582567224120662760368610361726565977038876867465720658817541116197905053257279834649372583796953804670233108026569803951388987440866790591964311925273830613171551322630564495057813647307201476172732591419256149034858192668252358370815839735431208444077017217093856918706589463625818764839035382498786757364556467313767257581737340984623426342187779164853802237642980756308440646585500560504713612469921911181967883281210508308513133967051109493424414429108455615550675713578552464566390841168554741807095782929739607750258165044098880173008263528699491198278175851576729252631301986756875475529622703308493416108759855966316448411822208857469513894461947451100750219448686079556070362008617487973136334805536059851875730533651534860765838435372984649518349336307512246257070883695834108340959360371130868060436927258783389700996059334234452763055167820725365766784834820487853512132347787639922189100502686759793864928507405899360063982336720713543808117897819613874480124601938239962456462324500805259241301725280875043649679869211404430461637730965166283155402992423025620060536856292407165546767591508645819104957091470427212845540016287035375544953692415994936921459315468782342089817588467937424651628376709622775282426881699159648542806609115489645511395047997826526830492392241249314717467950795843096781167348186046597509408040729239020632595285549012496083036125124252359011107688220055551413692053627034465773645712028275363536401363223124104226294894596919101565021524977053792939822800250838242141082201371868712095068917605487464436393599402416274761017528624796984921311545488731030417060337834751704024878470056989918843373986967344316075569280227549561884201690273526239704439939409226903848622822418458018260725857746720173572932195706768405054669826738870191319410096970599700490150275018903758517580003503046474307698003887634052756740385942820870655398060579756528736861730309875316420409493243504129100686024985966213031969642978647082312680430496886598065613217348621054794862201775203726301669348120226547797868620737007943373067652068975590986288313310108574865542219655751483517661061872442146215149082877657795433683897032834759662106218916287036121806283656329704519386531190346317501721591969968256617825780113693835664908799250412892289624324948730804718967470871853896219437271240061512928059269262049560970016550325244567646250531400722062930436134428128513792221911073656035964337353622933125026704812598084469051789089642175204524089420411204062120592035845370798569721474453625758418115845127407859749512150998220684418091632171977194816361200150329206738346654466703591121017147585347055070080218282432291731503997340885065314365616176237441291501663758927233436403586906340835244138408872758664208062706512061805855349095757107323644509750011917936332517927004753023974239787529923385825361311046843809444065033030814476230011699468962921427868565336437345299028312653542573338959389802445186314903898011454410042162607939870668369367642696180957707236365757792227692278947661503111773525224419800335665539645009229638839070376840603354750697213779375886794936666551957868329257825390643875492178188463894281143592508413718226704205213776308506707258994629567860394764792724645050701170096883018602618705842017095265115165535950682957640493202172542273434343552427107093726497799524235264698263758090145412204445162554409457306740783365869434229865835404499531489504497213913245443986517007680761277735776949860214899379920903790296251551714750300756944555219529130056252507793763779589629892445945029094883751790455295445439851260406161675952575044708779313165017000109410486465801158689475049197653142363408240502406439377146030408141439667024822288951315988079534207403546697141758273133531990418525531588809505035322661349945406968276888640899267891262549021673781477216343154062741043982585957281204093091212716185796498759171547932526062684997724391121742192371762945640185685035382776533837246746102881360016210454627409085578394003024250191379588498303210517291462109420617399679100634784694727023986360677598799837970127898039375665174109441953198919001911979650996428402920431301580703220135017787773199102351021707666661343062239096102639894732775323680210569938887353612554126601991677705131892232269859161934080576960005652877411091616117647841296528713864592364189476408233607887795998684188689494751767961432629618507329732397635926437292599174621231389163878397478066545087045153155721679821768082589466703892127608386528899519513803704486275391017942309406201342168186092100113445091000592842162020576828327548963647083738019712471381747437224829764162071316578015692726988692921403429339701651655764643710278073918949736744291755172032776469528379080701840216845625686901905484715725364525071798279204345769167194614120215894941089343819835947295231911534435636061670454362789999071813241311520651619707999258699157455909434931846792411900439505661322206534240339975646779039811997819051577088792691242140413378466346284073359828447978764006623131180185016053984246479943578736474301031522957485497702038612769819577017995314389378204140384009149981929078524747759306607097957215421636212801362742635437766040556366591151441642375612474591909996424081726744628423835220326884167547211936633624665680204865700037359007783906309521891840615248902085801934900267087486648663042903964476383611296578840994107039195062649039320133339600679569341336686678303894489428750273789990325994789928092257913089738981587147305066550411598438530635286939397112184946050467571495684343061766088667051688087075206562248227818425854017303467843241283515711795844243529565262311555170405492096440322898657985354125639694760433004755709279142308693693515001092106471706061628285665697270922713323168410592957041505624084839914791397479309253122793581028496688497352011485090015948501780889935603561992583593205826929441800231789229101204853773409937608157997747662179182766101872883009863206678532110022619981941188717564177464389971887414903900938323162901441834832129441099650920843699503978634760090718432727276219909638697630446430624438324857284679424177593818045719064167503306153153472010605496124104407870301238687011416273574584678258275860078985614936983561143539553573957229054549529592897404590611437566480698127468578593889293931581441378705476855165031074436096678716862574455089187707112412095088715106778871819572964684716948875592081331771595009497882055223975156333406231793022469139284318549321488001647643700509464512892467721330493828318329792615027130768230794191228089105727371440810534843081470299390125333060542310901263756274340473471713705981376099842570431741644165757286916925477847122445632316823148077036014158269431615658497106883772615167147807149880441689850850826551346664070218898913357790307875081207592227095204620775921535667598534315779892474250138667309922887567606046093969543705906244577970407246359967641506797803729193554091484396699765581803867837622572721379331462468567928502405034475862860998940437055223699427842751054171602849560355394562602871855373424428436110210413817946868523090667859862916332126964826695795634107512573719067473235993890276943044369117561461060572990210112607663484331684679868783205191482304762416057283561387230941443539184956525092832720609977427653269995091028169486571859076577621037814479034305229029849740693919254577504401012827017309351923643607795523053185923669906015672467743492812101668917357985386136549707757392197256312720847750352480563653260490950798419897593197582516095410102814438675879331985200502479411100436027100078141260723232312293972299883639127258350725926141074259127385811688801369108689023924836921468610874107353168499504322553790446910602181456420354375403776635879025540365513837059184278245125121908988328815156081352935387324055814178149361857832471428409904923390231035353767329271247980741228286353707894346628166073231337600848597566507311542871075925942734761015312845441428519628309202563208067366315112371750021211436645361009718192623530703195846337547131393231362555633074180858749963076933637479733616651825024633520112037098648588703769202836298171921607592315888406897981959579946698535861302294688299101845054672994426486961687380986270414345331864954318404966942606641535086237474645160782113891860781566735434060082010060968143227093423247280144463260498721465342123746587863112488715045296716243928633426818959716573083323866332197595978250841442354416591334423306383729088239005833894682592177745427785924327128114219446054064470688434074843047010056575938023684537750615381706486751828990096052334087977348291430993024345462902822921654278415648366270360509113592126136018831960759652437620622909660275602174435219923052217523991368884618741988265893196257895804294858582688114455042415010032003003686317000610747520463544714966655403820347361814545192597393861961429280973519909508392084899124457083807400381604660840488270373845338242973929982982006454289667926262110003029905131031695459283194646367438987001677552321078224197658091377506801269543057823792393149777511899653190921672973573292471643789709384798546071337590650160026588449874034207724235491143561655987703888056150021746645125425831655324096940968925160202341233346884384495443777424747899549179058718170508392211928542871923935589739612066630114417759210375714442352192611504634911451829913504909923243979839705064197023585295751440086629131557137470723902133904817673476899471800110664970703377764184772292744290903936364468251020552227169662055387128906920545591143638777237931821925895285854231924328090029642960057819527240047137742531633356064003865374647257042761950166474968274601966459612764318236015194781007815718682966507750458785920000578333658299519038564498931391393495639709587014880585704642378936611095337951727893233455280060155686057765349664357689735293232799582861235719869419952177671240152634749486439297886193715034753684057943298968446005944582357952444255532182341393381311468362198495051320873069056603114038852878089770954796781154431244199007295670597050574659047739618545848640088268295184131520715507140184363901679378630846373444461913134819372923921854162728042318760324804545391121093679796293418011444169288201771412831277538004616361242206794192374176549225450325875084349317900615336452535322956410522578397721934719649289605947930803729042028835308545858207796893528300808518727058873211023443347717390512570239469128660444138144714492659702451131114780433230049276425906814559672079243175050887253601786092779917699438653083120765466701382374220912977241125037760836862406728573902283389864663683103667507636243397384121525672174250430722625470322192726073468322706307762328332486189084910136216608833743873718320153658777810113862391728021391827508313030677315550260759999187119054476498024188624714415047466975509182482036503882944000391340017411536448019289235426367523966405805194719551081593008495815805542951596920184504886365490875911220533623653339240787031509469187154354763876262525048507990680107831940345369831241948158001215683400146242231048619354996463747292921622305065246442261242203280228229190958056650638842929674401527968175434409061948328234460929193372245976329236997346150922770972696009417627303972404010017812604182548360547338246050180809962390872279075710044696785260013092156123253876418212349691775025767942567690588289116660306695333472621080147871763991361284895722764022389467071175363989358323380130089245325851011509778964996480338964443234363008836979295850078755133073664291258201475633295910332914046100526669951760411838517426730005843215077660733674236322624735477602503879586969711837724294409017836861399266170840538691970284404094398095557057743533749569062018277494403567850584209150715157084867835515862915496075663617400582973248061550815357868576099410207850043647040979952453614481771906640808291439015924034754101159665868806103545663564492265117309684481619503993671543086916267414694049046678845496856944727587572149625684741485685975081361221835753389990393294446011164289530992271481512144888688768908965729704245062770712098892845307894357876782215604652956140031787233558880679015968604256063447539832830827319703258152525625089864006184229438037940187861937665952702269766403045598936492428655201053024813225293855814136132993042247960686959451188393548439156738068361782240314597003814447500423545936698153749653381274357648765967882319401637746013373118141924275928436009412016579216338471533365934478591674196894093010173636800818426196174208612088932917329849062060372325727836183100163166124599760366958708173675936962551625720904626434292088411086673422875412639599500895132513082935559970675162724994446385211348084485059698195570204630141098993392068209086995326949416720913348804833884277348469313914346535491018853169662498027774624470009160879054881280448607630640362385836029848944201495999777559211666021413521679628820281737617655129710869368933827121764673008770405907034130366194832482268778492828357030303794349231862468740089383311016733174229623336699966580508629150800185693832285421676312923645121732756155133334529828092453758358751356502696597548992479690826368351518523163440051608515531297080995543705417291233477118663436605005338482013336264417059660470375095391938837275635556857020582614767040190008680916792259218344012184383370699058683079462643067008052080329646512822341718174653628947363136485934470468486032108325926317134613624285893518309345969899687631346559741488788501256824466495754867817870085164729295329168821899128035764876270762256136407976100596389072910177997289711659415930343452799341665467775485867601523681299970562745842781632956038093303633365013880885478441171218261156932493562422485315682278932860439406602930688508300024168865125730603736919162001431332686459727233966935172723922217693475435929347215840427693845322379406347294030543102303562032174754693672601913760508106748374886692128754828287242284026720147107616993382055442455286653148279790093018656358768330056641085657739867536570073440998234644321329504841313527813676944454329567056505233585514789958611819559030059251094627114980557704357307045365440673165396677364248290690930737208440349937266667958279803231136539198221429527956815732232134321809294600607056303836153268611852333369121192200172693272414712311926752930187608815170136321821973803873014728405694946224595764489080859300348724038087689980452209059522050024105109489445585474581198171288286665407750805504863832361355962977033182395386792173932256912303177975217427989890371684926712036558767554030578271041123782697565450533886615228881548055464146777218151241987772909968469838483350457436371282327212679983724630130664782019867812543386388597407440305400977087321975754274454377786628271876901763500764191714738057716244301506403279009973754941993848315005795607808008001774334906137852514616022297975797094020203657843396751981887260728764219511575208218877177805393450507737088371208325124002257754227668341070052136474160480028511775468782405399300241479213399838910256347651538469180755242422964021023627506100605185361700780470622211583851993022963680317218555892837874700476673700032791781281647167588550279812036417012324332979844430978026429160310008275650549149998414799860161313372536376634346646276803603232169518702482050601344192021421357261799714779552954239941428415836612052653524803616751512364646771426447950821041809158493558820103969455400001855945789490125184043577267161103544543657075851419884329089130557035467326733122781879003323509747506856512073648394187625202411162050739937152067869192884060277194378881425742714796279689567939198834032483855084435653967921522315735859113178007299287543465693724668512367715650795633413738039972628257492306656034173859817547559928122123645878610706781635224142207706526874109581096163670501899303226163686335739311430548438595677022355846917557372006010546279517903776556893721442628202044201968261595825985474927031400922773772808651361916258358660148695268313460035810382394847543578770352128284498281446928707586979291905767022484233701561882596527373786661963569739475647732172497992261316269149735509858360017203527470894603036244540219068202300823917319348074067031394412957849395679160239724669428731342927049084859847277461402908998432781520826513993132787373529359573994121779232550297429899142508458532578939524718610095967523219701132326759084626571650865871768445525890875143914255996643574850719562239590324089089432510747274987780293292913048258580600062045788407564774905059456238595127988797537444443961113765979818743853881417582399867644342311459427133083457730201038740378313327013979206781515332446297512804143509536665116725237800935099693278909501988640274510798375628943582336976220908212758433542397448139191389201121166392974345653032041969050059361955447976151735835549999203024582329314832537265177730113634981693537292419933070602047366106452664024606675433362741514231887266596507950497636850390662534975376128372822101391541226318431044103000793887496319955100723914884671155447483342017678575795066153875929532127998481699186899683039774589773630298385522683417717810908708663211356342165109933792622244241628287251241499501358173554771062734826651453768330461731728079794967160186725844543667985659677205115994102298954710836954177618541742759501935693422483959681535334978808062445505734549081046574711798070236243015500524198196934100914512611633882283384545071751101295669636999910700276806330513299037899077017780613452941235889468086676397931235603958813403080947800982144991561799302473009134448824601569085326337387030007095356366550009582879337995162073850594385013661605471289375757606933750986376858646832422765047967143359926921912707329032153005414643051955582275554376356803287533078956958388962525130692478787277887218542349886567011420233465535963739965981320027606625307705329971860433027731126569069895529488463132202970439620601090155974761082870150850380180015487491888229739952371087384265656059034814016510818125173480818019597481949524715952994729270415311268271084979394086177486357814439417681064618659802700271711569432131682428617473795793580801829651334335771833358666704853989344140758720236419358224532471095702633661142729200410115784555429291783767513507620706164758567195657650889450474061759471149092562639854927796985717571727913762046709768464429398723580287553025673002746175438939818041217168746347549866274221796565014886648861387734114398714759587575254100242241803506769264804641684422671327976220774083672477306050211891445420114327350661870747744464697491778147184384699552156597469196782369704081994102592727130464901413986733913575035887750746377053424794524535497366216880612380647549285551617433522667513132293439253300585324345912058525794945632610657307878610500489877590093024320059712824034341925557744909384068080382192841365663110742958999851290591725638630425821378231097262266069408660199990301581692978508782839395351210886662760405594113606384469823090381628708668690925813045450483609984536356746996234868731401056198780717116056847792891866631045550650717882869224709994510915760364475711169089359420950875025349789249699775589721021319914064728179297483353803844958863186164610492651660672612398980922048166868489653842522672690096414241442512010640353707742946652546147183556323560364094343287467745933288135950533784730864095707666368849924275969427929509974283800418351539422973874376295233868591372783042419844144558643943817412592236002861625975747736506844970407596969356826322992672964559074944505074903210203990887403588449821718484238686565112168534674034181903813834218277704600859822450539369741442200802124710781671245640246385508300084988889884314948585826655755372870569446295783566128418606499852060060105362752415338348518002356156334566202045249087237880450111744244503472211987314921347303878290158764384201624773858188350807186489716774943969650843564569038081082938522039159904001175240862330681912147707235022413498409572362693458295478172890790602359548422215640189716451499632489987933185984978665462305505426367616607374170417066209753984552276243205347775082011297095945478092449553551694906568280534784042792267235975338710067240645939194023042016677931814374482997158154573139509758620116665144933954141977250403430452715490664656004875835537378904375031377810264246003092750188471914903746840504734340820558934074517200838746779916571588808665702420627043075175008005090306754693238694549282073470324522083480700676597163034904140261305242050757571342901813240858052347876940288608115420496677949485179361926001606867790311609224888034462706216689157563223930170467323850096743505401102649704463298341074070568032959651125832661482256463881248364602740242310377103283368674457763204856237658045279404926445558845146561140500886030984238934568989525549685805072711354790836871687044633583271358678765772315532848721325577918596256151174649693261752805074846064627742533094988994004956706478152858571990808580415168164171217959475530056238417129151441253003182620238199193947062219225075489037015274116065377862032034918867666119415986849322699845700047730839671697918586848279939652858630634833717787527931069285587621351676609855652452533000113337493508803912457616764502777586928063379650504099244146965789901199028036764518376459437719511889738969435377785778762917321212577812754877056394388038605804145809637073368704728762538870224637767304215754090846335359174645705260600424167781784550105304337496923520683958780121629747295037849918763809951634100857276205733201140064211539009873674892456663327804462229493009738489601074130110199197849758930401138967950376169962431594658806060149892165470350524531958304834412858839159533433571530301038511052634724883255343184177115539212930792476116719268992393533070377520194931532947127335838178897395812226807154359861361128865094176670162528478151417694891851451257246037234828284081451788196613027806631271444153271864362675800116408491840413476512527750199555920039750144612117295365076357217940166398074330308794624257516278984129828862583623319330150142209752246596206020604669698486295534214372485154727955864428062706105192867265386154025648574079075409055870612112198463382399082309626236430803407078097571020810370882221772286602784540505468439770628600986859032668420717465868940963255791020759164140945114550714912629944740384237394320047907878049299231614880986375258090147634794415389373967690067910823955072846995323551054275999155322600228326010468850642974498713050854469887449244619857179883095085640091023789150220949901341241676539323321084819975009494584664651619239621187360077148871903174655490363881036302955202555342383329552839981773258518234343036939971101452250539793930467134011264867128606442381840243832070033143159783555698043423658265519927348479685914610533775942324025894440392260299128754110050994710463134282450807926606175437934965327867882051885069621272982198084964044024248589490452736424842216383578462258884257679011065643315678098864727730720203292367349393033197157822252024295761456769157475397564373650266090844851897912914946432043002785532009447851608800141465998253152358068881244496785953102022527358670385602332397230425119921215105267809300137898961791995765053165881541019227962784438077169445039292798719152460431986285746502434710288810384946152321569091467771344097411640011686684911479242635336662961035647935454745117840353775502870088339899285368684322853484262232756674350924369013727123215644202582753172225603014158145508134814166570394296982880673681450795861092299692149151462137379399156265339380276774761485302372969717848088263538653621879299259903838796347416746602159898477675947950603010107254154323677656133663390509346701271144949298395150457831623605118220187087414161062826271643520147932053594082581024368775274925734637782268598924760223819727670727169880232769179142137985208802788555861187564048047474380756827871991342670467550309398458094813265166527153183830981201642631041141915772497109433326604596573770493807345916938326794827414709493271265361918620139147711996817680567472306943828527562879495054142176581088330632415663960728527035287470544000414590806884150116662891702164351928519944139112235106616945494572765088080722247975604855630349722034616901848310731362330726992682766868120689015134074365512944168100651762696313237186361970902086947063707596251524098329281696322443817138618975538516849933608618897394564434085829104233370855491152492924380719553440579626245082645765440724243669826691401154214790444177974079097112435288728048059733141116197688982497184499426366589243369006204135971901052897513967693688147587475658541428793632463606024485132084303263549250281236228077109792441452896967762758904325964113258845107643276843948676516592374003338458852322287459841508869217253883540661333014359319442481552046937183681832487826039707994937519474639491265137924266381313947569833686664378910885571986170967155087340076988314744665314878683533572579042534202158791721320843285219015783095579415540206722434668897195899722246594816105841284650555556304534607186017649455483699083501400813599606215099941838470927328389205771327106396345637407943372936975847743029050530404291453765906962570754110826119252915628904750741572781937249039809942885230970346720228464831337353797222307691003482371630213723027732435450424762045246511987746013615236583854172504119718668912706150498736641572312336759304888373220948157618019069624116334123842538749559859937441722351342992027178147585389067362207586175750475351717312377018943821295666791494665732446620305955740762244748645302559554035479248089808106908900241059619913101910747033438162483556374272031338186563918226007573761346817337057867351774940120280817067817727134521798435398822419712447153851248472318788631794446149703215580051366702578510512754718526277460922239593103092370050803965964623609807261582583183927097856240053682267926666193185877849989903293333253611631662775745042234935263555829756022483256349732864397332767922046109985991611627251924466197907605653597002555062286183751975667302033483044322924908199829399868372897889131848948353272777729231088443833764734211056661696435794817172342424498165058175244589939840598882897346640772446933036256720198815258555852072727669015745438364220164388259406628978941303190051186339668824142449293003138435662354486264400767028196381551379679198250362108863338899778331551317833344204178132849092080516117642931442717080498228948375929919986027884373540846717748325906699661665279604922909443167229698868213325937135348311376527567039070493809878856073562552879702741548106110694816815687555199033053295491885566100904087512972726053315749636382951317252260003233602031902054131975397103454363960329861727872852399467848624602311915109201591744458557075070178777258107342284160118329392848266652802062026275864204782481363652201616892225064848733850898513446298301474899396520386830105279046908241784846576304682891996905121132366741468840094469436382066625656833564216797602463821672603465756805077682774651152675782965910570299031040946466572161097557450187088777460568346911104453887924715655285911536853156205951626133546923251689738310573761885086102844028032831248595468221554109332646380038561376947511461701675225432672943818084490365330179301927984678786336181670401328614956785331408833134415482489008916703541901071839203647381948879160473196290063753992952557704215062452487950597592499960165425570187190006032834330640831971029267787632607679538648598316392099461896615698812187414903131998477419421909688839115044235728746889573613252915826072753841641478598268441263428505619187269548148793846760445694461866995739916853345185397608348894138143465813853077417399002736806968984481650644342419579804645862053753309887212681616496796256030069122496792966175027328036088538457947575900956626471361021707069022774824964159176869459586389447841693367590263448203749484169569639766986085397990703629550929429883899834284536680305669562525839286973382298575767734769921131231009429911527909702917256973702268462585475605600495355138983777439826284550842067652490458617434624988296007545964833420350269448047510390740550455951539091266096936582474333007909710887525396740470784075443435483083159896124880760901294553351452416790954856777490884436557955666255711630958404639446440147283706573295435604084273173930698275605527165992073659401095521027394509765181332581077863131450367880582108974657385066927995189360133509825653844713544365585326176766606066468202094646211410259865921353627020773995038516942278376520338969335130056017448885711954097945431505019276244863688556127423702645417731566251631339709856000418472578283676128057730376648297565996079202866799657687534915239515569233320268869872646797868841150852403566590905288756217317224968777778702795548174842016115924053112490132383427881316862279987694031621531206952314554648242507803465651998133225387951415909988936907470831838094634728771420503956400889775381923898531443951658873121991064362536132762748794597850343838199352800043121770765428255472044279537090209948021979707679135086996237388772165766391462596062069552313593595764460696662178471926895618890647511623484058439282898035681418790799791831753073927423799700208132995614674882873666215492476258078745799929819504274952514890762473180218454470000376374248589873428520238862193835037505156473575448877667370101516963135839077066726434467547568845958610812203612270812503767231887742064591717967501766128612530771967738091392285732461764149434150088054803611031964772515498936916765640798021706430891243743729286741564207251821729462050672778449635261099529976046257410079040559590248301870890953877350948030816031638486113817358902969543613962982426160434035294936509615535409053736569591449373149746554365739156385781252465168513796774775483269887109739811939311236163053498905834447672838202609753840830281146456052208674433111080007609986170413950153283974169401005860977286783802686487549784654898467871867985402111861183299699176616519759279357432230830172111799334309336337681887258220929007872378594121551803457222158963427527601957241201344011637464619653521103136113248760945235762525614846982604737309166367326642183253993394167554232052639437692451690684311779189178772901916410901453973443344387681159111006682227448131427703699940842709449188506608993760093997143146868945717059879020705118377463469453838678952987217798617789718857048716832105951107552803232393460442334570633958858564811381032041903084560639154157310575349662721767553992860269426730214097564609855943036661005324508826007075826604957333470255172790376890484698544748680986384323857997979149927998905995644228245839119842353259054624720609956682275072714890885850486774643396008370690245400418997873918819611268765845686491007403514538970554443513698857285683349602076908017205966459470230319074854052146187041752351961554193239002468238064884020823657497038393007374321187140822832980878114406725545273637824852944532658074504008525239618771460650403180412874813020167079506321994042992174286387619541524381017498893692278232157715289832662581842585938741093502593841728885319862029220686589033301214983958892999155533012557981243824532307946532161504026108468707383350651973476642225094162156400690527078641811978199478864002770454235449111025249465011916646753759508942471815836171038266464118907303398774814390406039493474995236666643954235303820269228682485280930370872210215127975067650797759855937870617327271679957411787053030479866721157930796437445520351269462224878292920604021661590850505362533344632810736280847014081084388777075702639979437578497553410130846595653984870168061149926963341678238068462661660764754805308248236443688464371380314949706411515605971173257283507170220713988064021195425266079597376846586582512491176332975995077863728791705696599502514861517043026529048876839135229880603356629444163839486417524149838342427141498036964881106476906814003424542258448139267235215864074597550110783579943137236083537405308678632561653310018349614109117568828036497679114951955187779047228820075335127129570878001392243616074075414389035406663113836466489604740976467996915372561777045523649299734735170433067578637085060315959275938407000574775951843385868488098098821011608107306202237669831557545651928953586728621547484458596452186821445676693054227649499873246803180201908603465361645489912312039095475187595329964036546629388270565706586592124390455141974014241318474334990631034563618014619891051115555394302160763339008427601926903331326514106811607636694988048877052470712762491579673873269376117181824986897032099279833250821077047191068648945978220420576811865798398848285070353301415901817528768009644802652677406512087026412474586886288591783848266149287646854725928853627921214269275980146418733816888122031971223533711233102027716442544225322013969013922095804248993539389181224540334889087032917497756352956868082849299165451847335800675283467373181430108700798610487268734365204680087640729898253731454209697472248409580190489900997933529172450991327721226088074797592375445655978052268288065001503678370962742235209954907706584330954598199761659783445903017762644615736664251194541450964121923309486633090318893953397323608443821485568252498872392234290201584253187323035585282533038572561876270970262206198062334981243378340496177290810287924287019111079982151311179393110785801539125141927388231453288754982372322401332265012347274237426071234630444318596391891718124728740679511157006515987305255930197965271476531464056425730953948671023095829809965847676479651938690505913425372910190839752330328103477075292358376056596338052809524337126939679020115642739559625492054738824009033848352327568267479428382494781246721031312773956692623980213095831305775456105547335419555780983968337978954879040789629562913431629692286937596534631588615393774226802382210884246609439092717421610977250586881660490694902095314650451662757204436200550870213027236584240443333877361109438549853036758879880667362570562646352380730006946380157275714192688150261103485898246879919314803132345037300344481204063131264747689591949881519505232839919901449335509360886160792620763475454862724578040595443545365798573581694224214845399097263383283658726148224509589915406756124852145200066911584625854735589334847685063450318255350723704346005107247067465619036976519218457030574476773906186290510127654592910885007699995109132903783475819092771677653508525716266675319757501374221234553166987102911720553958965903766806422143800674661587808202696620388554067856324793879113244141428525641563909007668526763160530677175760905326723045680524295784526696782278957301645525848263387426105659089401809788583186744636411924877364450154264671641180506425138747676019847763656487024429407238420011856483878627369511457874249155428559689906891822515544870312038560030752201115391131066335429379376478271267950734213729956478846190401059220175226426719586921948658710814051790635151355445388877482968358077986483428635050015012868667299724519920940263188485190322416320020999595917710519594751480196010593761536580889461374106207877026076765480316870786854180656865468094052516889721825523652187564117401389837385947302212435438901674859996043015901950007601745580939280464216059906426919181732268405307429801004157888499298122661010011341887808102470203166259118628147355012702111037434008168070189499184547709576282324207009614185409573508850664488476751020451775749913693957017055798591472072186999040068895656661651809018269395802931288874048124475042273517848940165124428587239653617124839611568217911371772821039649484360943667984694040484145235332717658741266957695805354348495734775412157684576319881678650180254290342406342135483516283386336108368312302440661876180090784904768419999103509289443479285374631825138214935153753340786588779896858324099251238724382654132676742618708452075391779505275154197519157682491822839755840516056129785846718075096815965795523913646017239649117774812444407482838525383337330895301475769375661592411275752256047914812294698152323896432121248990498262019539287950068416664328051435397639240874241056296611424365984495315120519111014759798539158950301234229703234910442761406773906710036368285154231488752795907016200034385298489726201930080475165428870718346831190679820510506259962099257638096804694062576561214695422957915347765013211299208358604677167598767998377740663828165315432831811030185645650584976596656286468231737988753696990467192549575624494728078257334965391158771742009596891866370881007582717794603615062943186750317420226100531515331093134291830256899671871463200835008149247202358948948402618683462534081276939517957776956370756404026540362837771201979041266517959343783278839777326721303272036265925640749289924520962534899485249992978758277696420685619410517502087621884622945906426100855166002191237208140141116807793278896047373234317004805252944601997693695639913798035614893535978013603414889063230255173413663373743705615354848202011823023608599513418078113154048921118902490458578350546818572037593327225153413637703160606375650900568155092670323565780377837597874630801032403532075649140148244558206644239477399037946157192647679155348192617154510780579685776743860810663334922054672381699398850987772840368899004824119951097465734589465146825991663497061999057717669581861394457142105194672515835419690503102690890153673534542383802424301403494749538090767874331829444341812831000744943174066659630075717698034112324204297648878976827990534197128001123050280305092437340278028389426381205263413682808101794748899279648353259952349476672874572937863954185292588790415008527658013721184677349967267976295840958822526074678458648633599587852113185802308156077893469341529489064041574791270211551203884813351718698991756494783024479616239103839670113352868818109793870699729258560768043080463139658552980729397210637020497647783241235946859802230232380615784990939743066322760474340711774974962793867578613603375687859619689029745731247292837417302531707762517283843472286845463585198858171018858720792079489680725954444650747795979800332691839211034684810006242557112149292699498584575522190305493663482637245778962017758881548476857814689667026185506585429711696984779635618362786752426976125645993135859740089274941980331491386814727594192687208439040714910453470207505588330920172454232295770452814160526431847844857329983868519554046625905514353466730243665585717986504262345333928686771039865488039111418958760240975460930647398656554284324401235322946610723484453781604335725426586475090435937608502219600703864658409689473389175318667385438889328459300630872841890341322284016140603968310998585583817707502897197026734261578172880312330915679082848021741086891464456294958836995841889767748822817987992483548206593095038401430066007433728406991981397753087621576365806766911205896239681767698402959377779121216016138707822590160143854449543290073388275769875679327174949447845559429727781851123040383972723650860542941483816159687769786643185864018549444184477290505208199100136270724375889889187419511387396605560967052879591948039093479429156362121258607571512687601945749135168825241439481479463792317126717918569749552809627733770026081300819905805515755128054485912382417278112586358052058268840213291760213508986238779442825442879917052333009030446156467185487111463192882491164236214785698324535589557403765542543431591491518104156700897261653938831097431672943543385853751745249538246565769341745047310566255807467080217320678552146661086169562742081153494533243714663434694879664658530669533737474788101033542907900640071986344413153262095455753603680962251392039552250538430459864727756430542821511622536525398347023800036988024568011635423689560986199929984846492255656995231385896565770320643154957437909721773835941892215109501645647793751046700159411457259362821188512300228846430350676116584806407546163428951957422800371553434999932540373790329680201857319333037795357842384794419899176992381350307610559931838843083012242746824724601756234584447265998552099962815874324718759999453587334002202550663257720604772590903406941789179883549387642251182132566678978082069700576104651955427960695351236586896466130655375076001767829812113299411199479473875743368464442599353911608428995256731185393559084286692929822725739818274945223467085066857058484524701826577068667572867160975690404442682494013281548505956038297054416489254375123132510030952408093181683040203136814367439161607169678745037577591335115652812402662090535908742286105800391376292783366974847103456090815239377447911598324485933861460772453298279379354032231511140968297208962424752707420847130721292481632949707917263581420645971163492131808643970228838346863348571426743692593042635292390983098349347643517339524670136164912002016040218927894045566920383258351379843409370305305972576968817230185383200393258890191322080028896770267011843599926996859391492500011452397943522456570290399406585869090682140008465312838932461960427428312559412476109734096324524550815507278176684752186586584424187980803096824587853444589285638385165375334888575863443540211843869149696012762124650286226179738263301278490197547518760351344276005748379476473358650174043738452995259791945760617537590762363495897566710251906710677788594465287815535355699253937040260617205483957262065738976407097626114735028705529764214342019098530077702724323255846426251402400601090998570566332936746525177456727965378852240793665876220690370735810371938765278277234442962329384116083570274650491286417153992216023418236489331741553423074251529326535642519922351736791785677269355023175824201959913014441709081368930725789821344292866287990004583310030151113223806573902277545494182660527578045893784666913647563525531992467405294881294016277390743184595665497871800907105025185189258178595448826694313683009719069443236300883081733078197574860939205867283108681440060269638575528358624770601805142481561050320238861634195046152626502369389193711593548232492535540574562651259545046101406391192425031909090069509983735701647426561400008670007088106648384249551540864871775631869693013818469237268128500584565389249397122357053764937214966765345373917316190819787225765030562820131444550874421588827670242068512513553575950765820172219512288317950424376143662033454622906145283768689183376562697562672027722322743576349513617645592909765862213796685904733634291735062859223135105182493518602208459570346421693003304080294285146040434705289232256718261351239319994641676554625691801393707473127652636098398063243039649425234379556780053493891924433161620288316946317611794954653563846923263435356352978459728877602320956890913103492417644115174172009290129553848731132682695987973218566874028367550900807014618579360936572242220389448936160317543299804634348715859089242556419079505183028442925921670630903728459850413710243889731413627223406813209458941338012310972341828962429018443906140575760367147360868844550188429538744868178217905664815553621454217306805706045708924085004691028907043821438433765054986655602834869512853551926278432171915567113255576050006788785546777468714338423697916953318986358236778000859534552680200942115220308619009894305333111061418183638046219261095139575863796382509735839101727374450018024120228211183809047773385202590570827861015526299084336465580146792168680331979665969976227370565358170096517471601812614585037841851652312398339934719516754458981288080688369230435697801768128468229283328964359562418687006389167929895028463970638977113522029596137724528292694853492709036274767457430425391461768667263951958862308445310283794837524427310797224794834858768216748309403897465061576245175923828282655750999283445932461206680852114589368941511963827074265626781968369112719713467466137335676738796594812463348983201098593850496544766962958550919381073537303968333976096663212622600087620260690443525528892216150432664468217788298995101482876135100904998798778068232262477272428997928179917760866729360002514135855902889710423954254591661080137404473406329156009570670608041635226921022507470350360709338297754442881806595844525419250618581311345705467721337839811593350696553402309940855463714053078901543565724899948230319175324758185092299577282323819651467889524918835363416799236283883871615719477384963621241426202764882203828806620665958215572510147855106376825302489730758856732360522266768653469397170779934423729588547373883906378280287290773279874987254896713880901422748355514543504779784290130516049993995685260340966044590855135830653026667451291895348790681806539119879121586806922264930158990873847894835665654034563939627017078364949351196757249773294388355215804390341139179771034768823749181543990945213632201376478888267110147776239074599375886812059949612359605478950427898793349950177606630205936874704075070211641057679749768130161221389238415684505569453156533339370419628034916267717888792412128081602580288206323073302562391310121659331284458003172603848050922174467482591620977488695703522114317829433622760779774540214488365429925812600411888903256233392320506387711226827002258590459871112842350348702845447901585319576622239889452427198908908094917861332755082100644231924198374982572038370901275198743071024714652871141282842443508465772728087571568591478002590582466856058915124769096468287013848163037514349989976155138017558796673411992931602746794699023793906452248980981505322511614197837818570705133468484458761871961824433012712988357144773342174123219466744031758162668756422946011997314360266770652510433150796903143096240680467555404568360875104731667548617485700452295266327771119639214895953423776010541392689257270342088705434209979236904605413408456269246949098107804710315888283655176838763839293870573972508418916195500478109486588622318622590431248266754192834837886429829996465420662235265776670647221880421451034692290263137945980464541398193587791598935247106367246998024052403646495753907432864556993354505350154206974022761500648121736139115775445410754971509807060063382985008761114247275320259283011423255165944211361298675619666494010825853787939171146474966343498127594333754629583867150876645290849459317695040036604066703074704559856713676280149744340734918852222684118363881871963263916226130642260042530887189139600352109628015040109547272380862269815841171781696329809601919909865506464258717583269688190216182213984894501956341173833675309996762116431575747548678591952145654791097746671266531724334278244547410158972531630948502036140637219330956872082938278906678430232068474045156056835126955908057678805229078336756217844694574298107527083213695307167673128199840786949457248509432645310601958040393399915799295872457594336355634228655536765051171048502074450010902742743868892455628101701805313428126988836239261814075124824160204036166915034226956467480880342621121210961051975054114435349804889391517191812945324045843814866655218640467485973301875520981768105591242687339751600952347756284807296119271752465270885177626947541517019215114051433015262309882599226303344258164580843850033388999709350713215965192684657535709244230332610124232461697886155994115520350379936431255989520112801620666341147696606228849613794862120741712089147697214190733951263540567027572329906417557565329158390315503266539409702964761498433291628067582777574737294662141103982291310575680308374501654304353350121193132556602086167189744980526801885587381595094772432537444353925069166666273546186419005777418276004313957259987871109416386484193694860882172082415615723769229075049346690703413333766650975877859855641396614878003752172176090825045953220822382786241552075479485406911346341810133036191664148677336920952381975178662715264957765055760644654874593983892600798715602466392901322672113690011834981684875540862531214385348480761811729840944267676132307988285207696738311132393118154760175071961437005898093992363934036638521208381128472049688426671349477535610458150418507460032870746810097173869959548151877479807639779375236614484483535412721845075061337163144253004005787066866053349621247088403139806988695159693649627843874970672552644198776071566004447134507174095236245715058336323639640037323923263711820368042729384885577843492436520854162424186136795506621797218249451455630581054929837292802557455967226336409292527793378428541203270779679697859951305419250878291213158877769496853565697986734791816481629643071894796316541183384496437675285610671873309721844395852766250172374636511569901793463728841643327986715080303153990140348799913185575672322413777481797727318463282634567347152041579712084761171438622140553999942544030762881946215409723758156619412894660678668617080052486482857153974526378039123629416354097684401644570049866597076845409649603558101958093167210017700670169827580937771722060122843803283837962010760665138121531371081269595715529084747638326158454490382453263239774041708884608690045217017308548997639853738236773904250543000778334899098246083687203282568510329271675824775422757760855683651582074253305253873374501162572086211619611373990413905575267324554801119973537017945155120132030005299021684307657206080254338071871105662223770202638185521223654955110293457091621880709739990560694468177136214537192334356137091500655325624036439311123550593709558343547728488655358565621017747470543187311433468268635878151989832466515140960903628951672972410829552552601529757796549097992944335561948438734714566680619525618631095732448912372490321450295920625340307774400538628969954994555305876675362054875957996232799207816468377790201758426371439864134901621470687509074285722577791213321832012376352207046447066989274948491213501747571705763370372413373471484897437682105715883162997027179096967701530581155470794238663322022999669314156858358350353536750608034600850804470384829799215269423465795264598174655064367667107553966978710669089444696045294301914011879192314202994165710386633328776298620138843418038673392673583628223660540583935294353272511282970863768794025128902550221240971551614260662063494209712242443327513712998208101328236467218364146775569050153995898995790059376991222127127741944221028875397562051042604386642342264839561731990267701601270465676391670508382917999252916635363048975541323195657384270153422934579980602769272920285997692360147109131472686846130038604706440604999277415496265777099253562422718922307160347653644272710002303548538784716089972779625481083449660030143591566055487933480111124404709987608893877700995784490780529149288095156048880430633463763966170486520323207744753802723747088922950947892545820528212214195608179933194879706090373055331109588520609236569098205474907874122169344855003558407937393782867860221708165063282514798293518228512090665858733230300180926519229107826536432488005821922036964515536801783722909194650851695067069803449931379012659000026442549091095808191948100679082387926089685596673385994468315296495117444829956656428985085367457096016837646825695985680853801677303012863142244225740521554438137661506281431197849968202448128435591566879960537709815737557337067234673182276855793997780691133912682732727286089673126582470783754238547521976150817899956386397230224401854348509376526089616267618586716990311627629691274584164965327995689997513893534570746865811671374667748387444528120104584044781799675071805065211202892710476884033946874001203249951155339078322527175683495057844454687082022650297551708645015081941317099642845673437785117720841060513178615941466553629782343164068899591011975832736607170140731955385837373795053972716937796442110096126896020047982815729429601097075560418071905044411618813239794062315317693225820579653359030461436723170873318240597458759664985219331609863842716604294884642029771094435778179651196719090761508129233978228082261417186632031818043821859758827669916624809194804433310398528907130982737259718474054210506210019095683376357389415379803050584668408744644435837568958952861374801276852147885749775782555203832369311817932197530684249104081760262590079829301603721676152196427377458552834213613924115946034568638654000993717196714932120730685850947903164535739037713191532108191731703928910266528378865324593304267131227065445241504088985480122982336902827294199702843717539103654044073125565279003254014938890458796800559337525898267552787070331799604743823231060260338700394283831773839307756057757808924476160988779161047909693384076957761300619111295308465000718204843989436439239801965320379426632428674199647573284130798677951082838042358099221620728503082624882795982764805965369318048460722283965769903556615978847757362322070335572098455727812854888621498745426324479199616744963446048349270730303561372454628973876023643126019807012248690258505377438619461226723820671094846033107669520811513276487080053409692952344611253506098865840200859938354203688457446569329417393416120369856753033288401642604556357936919506442910586700206748935635210846344396018693642705059837595181939724077210492478243566086644932189315820825166842313551273803866069899558695344946978504933206509812186331254410587388874559679009888427857460618739995956831745969145240126559977930296098056259342562602807131595114733995737387857980761739261931682809319499854322668686268475283226096786378592691518741333448214301324867342047943435768773882726456492830557692709499674223390195949470596038591100464899925109617330140955988444717171382992879917783287942580744461663934056213921678580785854846043988157954301762912610603835534091300456510705283651941289099739337642190964990309134917624337060517784427574124623271420164264487024525460647982414518609667107488867949766410665234656308847614614910216757381111953751447900186471900236361087884645391430888170792598020977793594302828977669955903311376353617533412247888745833904673537572438691144029058837677522376663877896707531270615941464264408331719017760004926839884140683532572528467437127109373256693438649275701497946213795090516089890759892472346386255434644252839170442829378323451601856441626033947324532430308005999639727096034285614032374212901949506643205042610771368158020428841616221996978631278508912570116861149393607980037086228220401223495291631192711614257844687503909651406755385998579776665884614125141170486221632425711458240560381088421354145193263563854110317000638206921694405834718262275811064940584037325374111761639525450250518243733543889217117006512575500108060137048326297533157374721620324858541027831526272364213440255458010292979988304199615337920057409096029613909639240966788229269690997720991192873422769858573648220191189686250628415075697254599752846575742264617237952581172805616208636888980512159250199242152624750050374573123935316396839661780578213864297833082008514961921065145372881833641527319218061507705482944073838667124942143811441518729292729638896658635173816640513761553985575386545657316100329996277774121935703132104638854291539671180364849504926215641771043633369782885299363523261825105156593966828270497308883168628881530702333197116519621553430575774766271147787053562592587293082866772959548072686472888371371018942280146333730262860920288837342983353470701488413791230084569495735653310555638904932337672069087421055322280072221056049110022541671828277484531488447360813890606653544637058380490936166299271984239786239526406739645933382352358707906213772832270999188263244742374568915859182187435224288763781086038847517840000484505901524201592845092108382546501692345304338766249856593950223310245116049822886930034110614229789340493835491345849514451222712680054218512464439767099728652743658821808990368237113451496805811623019870862295358194748593758555713106890178924055672419090091637123244421497977233862978618847261457758867166173102263539621673008124794131265543387088451387389722837008630169598154914426792867886459515111957437753919081728671767472816637514064540382260610221083683175120679453074976724301154911022247495295628216005601934577598621659538261042196309482504443403010554519989282259701430936351137510417268052810633543961600942344066494824228795296932694682957159103747161930786486177645405781907164766250110405344788528422907400469345933418454493468440431455602887721003454641602917355796627546641053073445197261345527671320450443125140101840327807438381767341661047759348575551898650527960506187606670229723264180052652288560900268901001162952524324480923565106586814517639097606598955645960916066196793264914909082211275723842934314554207442100723698539704766085222492862533079082320043930258723456065130394280743486738662528984289748890183436145005534089275412840455111163939595352242764564040619049855493845306571034444800333769695506217048103133357922730244349088235994608744604681248173303748003324526013699067871322692000964205362652198604070341114227290420080841830419309342247520207090838678267332088571601852491121429562588580482912827886996585388371293390434790258353181047759177707420773864116141199374309899352661526530424809574447137378826341910192304769360279375206041543307426241133832866755136238008762606496395342726474150153516287537271224443526232786263544641553499799833601917763085668445714586896923575646797389652862426425219407165420863081774854054433065133100579883415657706918757463146420642577054021480933160085861421840434674268132782983713378583962311973061508047141286541199899328881682533771315524582497179149730244139543800477870311002099179157732668484074821580758498728632208033216734061584309953370880380171199190994957359522246300169988058522031559549774966705416574594863022437473896534212594909308992131262427138713091718680508078866041101357228036024086012614523292463581892681478826846295335872142071461725765358885625798900196901959555840511875727975738341514436605213979913312468376824460787786942180510808372215949079092926153839911283287935361090809453451632835785856735195043907891817285461204155368215783215825867604176271292991324617696834712845390239913831136788464158659708458804933042077376974085899875452906015306481459111278247436298069280584550790631906840276647111067562472457023855181549013508299499876892019048292752250033062064760904976211292489128659558748507920922177439388862956797019900614933365456930026177229720877170967035314208433398910646595642110232200826195672210364646572083055022499008674442923639224867872716429240107708952786142033946896995920775635130044675138019335904659820141807610277664284598978478336673256686595176566592215866722018718550512874853231411110299178063006836088716313640211189287592501572388411270776545156167250420263149109486917306254775115585562565354790170253227148712252343236654008440236430870732604879849770046357693838458549820688177827433148867819050964260437968288318184614079232502246773656963438861080791771920357133330829387837013113055033370085877600065353198746072936073486302981174015272024704114841749007103799988997285145216327789403548193296868371690640735579556634443473053039514797872753771581908284887411764955289525070213609807728724225024304789516796443961726193413726707381431254156761263495133218116267953701858001672174109287550812886280867368956144872322986604389912595239189900177165760211070580649595798332539769992086611965592726785905344832636242430178823344619442960990097379994513121358015342607902827724237124428315547379955507715833947927359952372655874485019184781819898851029322954216223067417286647990838052407183838871931772364916537723633703459040272105849649484787453180139447499961500834726940878028559718356000271228928015629388653849058925067380880630587812266152404139783031117401972328716799353327283314595539183138077329770436470393677104949861226550225815040455558551834687927216337444359975152282702577960644451088399759243137713045383945929947724769513975999805928683455401188650520354522804323559518661347156425483638934958074170974873289954388153318894076122281949337597326293109301724364405660006590001293644302376554124440721530771540235304827079203415561395670615392525974166556654335220534066985537028201377794273542781293467165297359092276727249142466163744346357170193171939231442125765475939351277826773174386788118757093166833696747030377779686216727905221933450701954726148467900546925861014960121324464088857430595401176168822614203522156173868954587336913231164733050606692254258862258029794141397361839278571346220662683713040243792032996861425006417074028304979943824443767292042872010787093916414096740733829768632884204504535525441019681003249269820523095381799641505511489096138411654035587678661905772421203571929430806212200694628452305875900731950305083366670613164202009528955605898900704945442177905307112490975944230428187138538548474862698496223586314617477275367508426171269597581964180902916751352170602312485005946458451567937474851475603572275916211198201471143512169637759657479566110491777377480300791872849182621378034908166757849454386087707637650375657751172355573894862213424886930336226641795461444339286000800482294317574379332823704881849111732852696165647330464959295438207294510313344789011843645429754513409427612398289429815405811054808858143323252404744072590135042179348814752665709460720385147782274938651268853086916460580974147621985372562461805803513121437447801235475537307185153745871733865737777648105594420167172647353662623327413432215810583025600463829470252686661169858026678706920500508472530251581752201492360496070365011230119977598261741527339730058523704347550588308555041511915981713590482885336667067089755441133393734697033742031062064489794261034513193761964413193645475823544603884557638902798893246161440091759419627710826230935573924792999048154176460468160222777823683133698168892693646089571720683523813623739246693686389083893920183880387972350639082002823678947388026602773316164344518557888730979754973438777087091847594323023835299760991248065799753854504178346618978255053204849703127849954748190768311030873958181582093994389732591473172158577287914338622602686186569950678731953034103421978827376379642935067490013656662788921208490965758415001195122647451909158134273773436749881619877223197782041256074669326613647997834247151633778406475886788249250465592227538249874922298298490668506953072106857631260407235964738826605571753098384654682995111745470651472360218795799902321131684887175887885309872832625223792481844045348232530640621946188336644217962941448305027810900270633231570637938478882368967476328335854262469162238829914178952110997299660799846538397685708856761642459051306000735741833450888297697904496668081105391775206778840255140333326570722154821917931024092198012075276054788677794569236966769552647706516603775757043688966515491034636254994614289570603357082045652932853536023068179053817009366957228950271326648293801680900202542613075172862440508527074275967237457140633602086735691975978482419787393047758343081783523819007937841265016614350316216112642137206368849420914311803317466705625236667105604593583856597959366744748696651429308708123202320235202961973142569657737206088006643264360424401170021692167221110635520010588541244189119591821211034036439464591298068822092367184206148479077162444637400952839976194909986228559126638281685596090901403212972241149849720095940938254996375485427312498245956928034933725475194104371375369536432855105842581585041210857582657005729607290445558161704492500981138793266860159959673641172226165803844024828683726444512070074758084827273747800972463087630295624934758722786742342049894394676484779248140103211212749942410070373763766885819938529860341666442567003095218890062228887703822785244239241979306857348730934127952082167253863938111637504645153166676445442257465324047577305731815651292018221969022574855836863866175958847222225768857437657112518006921701375355981497906395464665885414433093103308360952154994098141089193600978361575279549665326324894765561107356544831907785941488214019741097928332642420803388234731401322061005178384072511752260254547510947416716418895354243096128923590006354720611039122947003933560659119413106531681019592254154463923947495563065007357356491639781310254342219125679677351775264340189837007784372102687031310670350826473192889099809347562006719211973518706909823437215514213541781228305326518553758246723638956086599307097120063760008775651290032491126847863090919932357020542201106698766127311465429353694998447614235874078986233746077197547692318260959946341975165679498698472181017907053719440444197732331133442538779510786966450812187950260822993537105402027638699269876744564586763517741543997806906219595001329776284108590222791935107509457821586586545092188880088489844028502637156891751853329278363931246602888708910086115486157346447550712164519599763404859492212508358696097161492930403465871125716852391283225277510939231921728092073256993693378827771133428040745865240069047356790408895950892069124230781828776220421054058962595161482572701460799011259702027806736155411070354087786792611931833844889472250440928206584543414279378609596935224261671222503874518477480864506668989596225202011695807101546763870428879577095695421921530220284995196516868981968829697251714879187889206553018678053721731551127674428298912058061934724097655562462539013667513410291075661334752906847964249102107916894668116501561728294725541059117246313676034556748969038288689290625753407451326236865056998006891553350629113059493777442851463253143703525967309355237953896271018038359154958256545192752743262400071328815599747359318341241267607066920944726059658867822791153549399152918230206264999044220260594023426014447349251092365138466239774320001530262370163071592538472156271873425048464999960677472478783565683856816796530993979864530317879848257676311369461931565307535137445362112437148717708371206521319049537696571836985316102200213489895024886051004614855362510090891567315236069309943838863920952523703884790934359799141974998332571814162979668955142184607204583383026498068052065979397124610934951102365170710982256871031911341606829122062779907718008655250987291430295892760140767295857922436716162690033782770404988189475530308094118768355773527673595923968750242765168336990809462127705305873428536149692292911311522554613050071568431517020153514440794117304029990944994610514808469956138942548458315232467158915958776111327792431440100038495672904666225308662849364826040513067468406345183529452861690843824154204203791113272874144887291204053098593615054074864329473547011935739819030376431333224630504413010595370418074047914914289437367263585752212151158897901241952964947969625150027406614005194286624934005668642703283158726299163728002360539211029436116208266706137340391187886598404417915900814446394705291672105427145079109584032122563330930302991137472356109899167635605587027176004947373392909209413881357932807775030182860017889167543214588034820650337172702559181926584706722786232091801801757070943590951667422379308441812897312646329059003955779046813049099979413661939894945756599988265450340068468889554494876451310758987506900089769085288215210967045764522064676149764267953911728743256645798958006245258846511416229939116449643197269057590375703782389297973237236412786702731916485639500101273123499670683721983018200324027169252879391000308336476582116673936156772345072536210621073930054104821493488683041404106048567279029135663360523316223391648457234855455593811653284059481044421754672457108502433058358847035269765470549394893277742966209795481871001215630611493212223931922048766903381021115789528253972955812373981550337445111312166293645276136956680433852333752774406383337298877164202083137804768674236212750278600721867015022197568406974844735818711238684715078809818753216034790565027072476358091543241890995700168044534076763184569268703141236114806847088188314474968465644150254446305211385530232052584057702233884008482375629879377208286263361454828569301626629993902359573293622095101089547564093799949810504855390546673670671570483483334509631941916737803231383277678754206971585847745987763520313288023466154862313040206993127581611244755736496426479082450669428526718747275067773798027217867875894138112888121546714969790528630849849741284622219085502461088877630473012329640125275534920521839415399188851717163589925684330106341081160347165340845885012614690502938957336317117500175872478788948627826646855522595509100472435783010511050783306679229984970235305704221537558953099160416244103886018688152196634521141015021960839975996471739624196607385657979757216272802641071322148853537501725451408127570002632943190199601702252959163542945768403062777290978910846939301780331602645935246490770139268644387365476177360075330602854461153937487210018123181945111903258817900207967659449036582005914005645413349696674281834168801798893021465453433214003983319795323663306159697491344128339448823809511590752370442920065144809308276454878667549533402257029312883605197441815589103048107908087656487840972890373985215591459057982266750180065984271854741150045770073866454860671322271920414043411416276293732968996694097034659052457366965677127562924764082810485447512356286975258226500072437003854003422096387041493409514045012490585101534046113816845301550103993407943099557854564966419306935925472272558749840914413697367644191899788583741516131671181037127822807393094820354625402972383008730598407770563074786974928322698681399068308487988686604103079600427651303801849085715789761476818694452151304506793616947905509231136103474397246732420892933296431283722471096536674557507784092949040096173589866581917853605870349333078299693661113636888179432963567281654758981733239850165767778912507889705321176441427425790961524235725097970818120120645144578728014581845161676286151963515078222812933176884178577018398730086131552096339076179167838984042089135380897450417302237134858222962870489847324747061230046800229387326891883474362357674157890496005940690978935078975270676135148226490574281033467001865386668602978108242461853637542618285001659127366944394174029770926343215642903290807373954343875775059065251703398789488398159885006883605059099243441376902926878943233675280967848021114534735799291340052080414404284796261907798283514481697299626443578446459216520499539300234038750859701463250154043135228687479532292982233854615909267919282482358754369776697969305779614087329829152781523567294274342278021899716795790808568996416420933109093900941566892484762399614696146568547322800967290885271179277512792673422813605269660679919089865130996131228280534521664845814734410949663796816620238973445080135099702397338956232471812241965849396510470191898686743912706723957326756102050068098727202059359976683698094835003521954805481198471070023847263691327287322941848313986253199765311425521489571098052234084379279461512223169701291504253864459913823267581422016032405963551483057180250936967711714281816552105872856629383077271177587550827595921029225212612179339764803500531196779298055877773351531913631002702091695616109708216449715395674476096585635542211585027223416985825615573438644247700904055683205550003507384876821368555409936793931878162383499791092237367856023888884158281622419320906094219119866106711404434876127815212187505924704662111608575513207523768572859622384138619556624911173266936309417051977381576974538084325684473700608474251118259611564134917778241405674717871275319513856103991372890653476022230707424105493773499182428839836661926804506497633584498851591338787502856716238574471053345205103436742872664670656147797569683417815618420334761564554426204946177103207222405404135909231188912682282446049708714144081777742124100604531420838778149979731326629718053765349384314240905631240303143569602812833735865816270193401805960191564839643201038610720912259046093129007469997014859260653590370566576709986288605221867560080183391834036639204865282453820644230941301382534569737412615332910722083164827101258695294214988453279364380991861312429977155904763192725547613504374476251392144412208816412072144510642077540493848467660532226127061354573486156950595617113803670481077363941799449812789436174984213006356475164991230002555539017660748641173849933752685989237128273447371895125800341895228533800200897781060017803823541497174318445338903393578978177150439932939053355369450842662665778566570193870132171508001563436088343933071537623289940530308112534074787514891122418642215245747558411226221834555401023911164296677234543744662625668583518603106982324131317303543209255723947048656094634022819742806377126278815755117226675010236364356300751650797305323514805762471625479842426665991711163104466361151319065018934512658455414122460285429333856406841415922311868791971233796731217862351139364202532059767444145779743067793922493562157979557980458290211191847195525011229371257824111993193180701833919711445313658660630277751296131858978661402075883314798898066353560660422295385006898905414765007241818619530266510715356635962578931380551345981518920782621063555579702964187078441076824077363573775304691625488796706732750489976890371414328331338732015445008114970143531202871497237008515132385098865454114091291292724623675872419483534904392842723964118195316562270695273350838250701019618558742678292747561241898391526133851695414911207448594825903330781583466266107527417232811957655363601064514301295337226371135435956017814241170860660172132753619575290769862593982492385137228686711897359386729391186043307836731815097999095350681936768646627816548467914931664945990987061964901328051000493912388895434607463087644594548567697104867491731550751112123009490333215543102803297866244047769619407935574483013360991874385546633719930450195203834325120379796066079312989766485154258980526726653087436432471410127297090521115914063024697374131829793100476822100619277970878389823824836506905985728079095297031890886184279786753780734940724819313798780160575802225144154053191236228636356917231393315820535809708857439504338428185920358367590135618292753587356355574596627691403591065047378072492132273988559445128674419232841533060611029730995295523144752674487931064474515463109256261329956722484778892166149208305972254021510361227873604172315935467353064191542866735670870634174843855681152588031365956055230603182521252874258635083708512190507150187165294010462660546585861479991673387900997717491311616191868710808723775868169447002968512683789038107904875784951522332354806103886590865650436526926330156889370092101221259738328269330668378828885824966176095361706041448888724836531943535894645649223007425303172473694951937254501554046640140741367490805163810955550663275289178316245700795946126448799780821541921657569501837832149129591455092376577693340064490426905560942966875526902593577635851411358094632952837369179483907487510226518645967656056910755800135007035189137157249626968741413604239022152928625834320721503093795207318425523969769865528546116530565602460922525840577769026553754707729955998038469736580674165979393512135952302917111947418158561148333839313816731592787832885579350608737090906895544086618590562199755535007855975651690708923110864597925315043317178993202441385235133470256849379149419186168949521696021158862029262951777379647805161148127312655531599882272815895899014810774423214889112414696473211553120572485862479113048538772301411064799545609135710984279692850588926417416211030421238704689066386679991117700516281575375961791480722667454665504995698546345879650246845091893363150362542197550022791224769570367183262518429587960854018412440581868169495227839580749605406044480112101094797400673213760115897071543482199030175775321546631223151117307684502972942197601805322952972488779461963489593919638150607687517415831759478111867021254232497519245712064133757757722577980046495576964692706036186259317380623687663667896405009438244821992150302949606898706881257074112600187085870658521575623967867548929465429544708067106493366864757726687268928914638743276853350398076642844073549523048179712333768715296232809018828375494394540480607869409462781509334512173125600230913136722919295130374038206312884363277947082579775597731126904481457753352356801785158556606478391714708532770209528629739590907511232289883161319095515044696694826955301353466730283548356990749918589622668468294167238467732172623605600105927494304500704658817122624790775920660843076017001479822321242148677570903035940059061630542083453825034401918201040416879567977350317464875062207234074223474881506080938243231692148025156478292279690876535663445160239391760703418506769999045922530843109690451767611127965910045943191041257184470961555147963262688264377877663075286159631453845754123179725752748220051343904381553162078706020122399121873860821006609696446642422666091784395477378487812811092671131444042336618878582413993053288449338202450554719356323510156084729614135442428844659637999451494762047704894495141089254494927505789766311417340452128278677745239182401721813193295470313600305124459102109583998119197225134691223235577214212969007557603502066749813543327108090969697098974594702914450576303736550404169733093607730337673700950645057090544793377046456395515599088338526278297170269857837625593734822026440501277723739094374156297951816507206972313267939925058874447914471540641295574834009700522522204714675022259243672847650730186591903573294191663468214435076118548107200216345865846357756606266997828125480502427832606321600140552058422595764068134977438270428376326619198153875417147116883574211776422510863744084879417530957026344608361260191547838505343922345483330867052229075768735734331183341332421505808112539709474903689909360083124658028402200381288891971867150123665977882152484897639675855389503559679086711796922310776958667280563171393232913728109812590257295056257723178688912547987160987610416496786060252431126690585394241429692003139947967746876809673685394693897724957116782805839227914078914212090544553852279380692249386842163438848750774701219220129438752960139778899616133275640430507595228913776834869605488875797757053954294675045882268139093895717390133616730964556941243854456604536732615391703552498706735570437704003443735181719250726989774290199534326047196493836644663528493225222196139652386079808877961310405488708141581655900475396824230531128800819772047989771057578742121360264264472878178599767702586636337046350213037276710855173502990342711271623199976301590397776028581801736974944175203718253425623805063869563261234509421256876616260214418004970542658140687371924120590615522452269297297320895460998411370516159005190839194318284010526526273023957467217145799978374181980024487125122745493664133369451382581800748988906841741228255432565272277636395935935523672520274737011366877232284309898970554928451897410414720291683069067722477882674821502703065700930683465435288134178565268745780785131128495011488396505119481253034151141963986801584529923742777719657946316090543713918428013781557394197553209941077406137677834602104434296588655807882631595557212815862665669317808112165823348197032033498090479999431042346718734974419920819390974649546285230277793230991321728931745684831738448333045388878297183277191586926120219166165562279064060188154463382548329072320681872182085244086401948723681836210147674839042567399681309407269217872559348449576441481934647171870746460422037962373759001274884667790218282175497098497967184272463737506530211362109297414772791982518260302228505751599010637114685511606889960224355406840064287674235677753679496107872791543458839384949126440523064977624482719947606499069786224129041942021616199950177740054512238578809751062048572677617856494648333913500423940191890570070371311903120801554039243089690036369539721305411482585684570404898081386945483261358690137319771444985194598208268482611630253975998526572475175521412637165115320808727474434084833963494434933105774796334298605741497445127402979574681530625853826712505871944690557686819973192643458309761330758142078145537823534046390445080531598412393464399722321130388074935532242484841723576942115619822699655700886729116658491808479891193068094596192090445422049497826948675765687333834691282196112356372488084958973132896468467483791382867937646882307003053745346642360257629429243300677197271147660762305774531218549671040249651227182757576438529946494432346804178898952173960282498740000305064803974421724905769095685141491859054442018018333114173197347147393192516446156300362410260674311344816129576438530182936890678151947461731832688296805449368214425052690241130383311512709235824643262191436096659766400277358149314647159492275086713815481522722208622519684392750723247140796457474296841493584082187548622532231330096011396236892124511665664223741285356154432443983020095193024172752340497923097106187447951539529518505723988174626545867802851249244143339780402917808127907391963609919614294738246480025581096950343461229846495568722611240144399045977031857208440817418641408339809092702410914383681997490426297738999629690809743901901892861050196758307089451669266023787065962222509181314194560478264553721646003673744267022564869217718759445753641646202072908455948803490553385047846856771187920541573636258327351799319722327336081823983279610978031016631756971843312899916668619414137432764678479181986382505985939121453194620396934947112376211181090062734234693605074578557221884510345550257345506197914331200756579694217323845999603269847949895665696668747722144665641315031282513972544148440567074072124981974415674363821959490040517344978425206429908126721870485510060996585201715724212272275971100975486237053633019404983170834118808762261742721032611504235642953588630664257932889355625330264757731133377280601259004333311825229797589841598299384981211446533781987762864806562451873025203067339475440323865299633867944457219591974849961980273813003196213214536458705119972316992128332962126412703322615033197548659511323474535216792313473646897676962282049520531555500798179427137784326247472282841486154193631145899078166933301026245982268757389590763285760550760618528588465589520918957373194447290781209841375427761719774469447245035793425870050470768677960425914064864995551174937610716265478323461389648640846827855504068068267516346363830962640365493577832611538734287932662339509172388456319690540361395411757694825865786654746198826912439182040623169661055966417316704770366723091129548868726776889611195927640384429513048017650838421513330251141272193464559821348271517828518454266655248799234000692530905489376324261707881773693911976826418994561458723427276338756900274701603242977661139789389901718986806549468334842995677133175124142832286113197785298430907504567849766259746875214950346635394242899874551735233354471315878520766222065921847766664021365161892463993520750160662692698773805110215239608968129900429701579062762814060974043514451919455295417413762428682811169060121869483787829485327085503337793728850920247733261658130908859579910443796349592192119068158759498177630922235163701006896185550860112884925651454903940434718335387717661298565566636769050166187230172712679137679063835478570237648263174395340256210594582846123603307508754543247453131616361749808234423046083212362652049322817332955603710863734795982207354502935134824137908239007806335785479011863576102314727561160503813412256268217270725817747785666629327545962660645009350607706518155297201053903508664328047928035793347462642839884067360293467122324360308137639737515776877744367836313087409080805681511520213041684384264363263509706833166481014640197521856951242278164275803274767148217902225041218413046206341775316847319611973010439449521738930384886760027470619053168525515077706472863954072148449572837857836979978873213330469866516765177368613947632603005408711138050932921666373679317014410680337692084468223320306045901121602073238994119657185415299238268525927523082257287266031969593475300004356539160946069183780722872917875483516862920171865484357145978057489238772709793311466835083740651015923625345802453167224946845485254797316889384943043976515910578358293389476117197191528100524020715415283189811390919488094092750781267486555072909232888075234902602033039714748622445964496854716905952921091264018760732484263976184513406609020456725319973064042253274065780732927025471741467631507086337303873141897780209184609988163538567093388966094950102355580221031692634409574254723336879743670292222214519421627644527576008320093555027301153590015425742994267053776107134063323246506447527343319384732830113981138220386107775604720639480044398783119422130630093341010386840552430407450246650229646910919632750383876826157122131384965142675019103525929591851374177301993233352221170915220246206162536805997502761471304372342838052347104780867034216359619017908565654288889864464278916520679574552344159292484744139371335282686341589814193902487882418435706961759811831080132236518127290497037481997262237433612866800352815488783937677757578386925718065223231339143285774764036275518796563037112818766929254550364669761616411955187573586845242806998933970667281990614377540519745386405535528158439528811768634133508898143384635116150351599378429936598921688959706328713263590324226458798553570086866098267556229783041495138851067089027213244166411837659433130636920224531331412728555359332457957131132178211693492766772387578288111725559804378144207671064412668272342411910649675330986402686632606119562482600846073711977800156678627320366280212536788947973977171866352011964339492856001577645152896813279506251805062734690781905574970220813583759547741887354002738064398853410449982642364627707799505092149554487909353375822780737095891463025976266946604558353501330440557434529913581159890495475033206081158425743564844587475139313257213741421928355945447108034138221439320291369790105574837331572534145602151009305520637849460458668582447161822014396989515638960770586168118629796692832562298491862738544860710032079248417794912625412136811288437692251593704289956711095703867998840607743470051876760465825472881468925188644110895860424347003764330102567024191676577509323035396336906334970839540118614279150688498202554552965516311714310776095411690613778673256885347850048048877875170332634612513572814051778636791402105463028534071135160470049020976692374085375388203039790246151555769548545490916568489680896877705442936056021477436001300659154407384162221916462014919977062594646893745928885392297788808335134940459514129216166434938558531590548814852331600330630067219488622891758284391578349535264909912702837157169079335820683774266937413369113647813631220550070717013790533227388147255015550297283785923801325010311200380491243960843004470077218679867218585137388082400225653707108529704722635677954826628298490465159610728890421015164456937855676842820393788665636352741756086560288875505443487115221099180763441165822592159582545812761181646730493344315861827726153353124030923786742760015666986554892122712255713407825772255766564735475792474095369764387174905132450076640277104754086686806199336928113299994942638856439520414307755342971609789684118662831703951040101677164148024690181893459369251400802951293524421016031802783281522447701961794706482210626744731580804596961838912956824069019078995231857601754507383900517367650918376419191466619216361663802308073208893642263225409626349712642399219295508522551214626767062252313670018924204178577554012513766900522544596283782600844062341401340379215454313219067935987498291853448892201801454878779643716521006214151387780821668573094241610647284584087559317762946565662193688846859871092883469210685781661224824511531045738490464217017114569692270347960458562364392573546923452497438801111608974643174081717160346630654686799881336390171625406104417382920030447892282526724281180652496915163773884963185318375573822185426703603067510264594234732239222087497756780541374821737512694019965431962673236105911836468049183214939888935827705063857440631734534360885169033826325265592926246025849940803317298196572547605425800996778074866911321007387527932833482662929571025420673073215596811924779153040377422999032037791100975849045634258917565823422578449074055885380118572007613496171964930213438758307965854422034055449133498378117087510988888750743672377833894378985680254563061817064448222652957867486976359439483372577670544169732242377931411339917901349638901918361131650197361261183209405169922387806003496075453589489864266976501724182441555066181204676478656738696130269893184135744216440359215343175891015363533168428022475112073441729654899979482912296312806167896822785750389333414581987815868524312522458539540092555430081078223674287479317349264593556545808433577818543488407200693243731957887267267687442874466336897049362634266413547372111811662081626130371198924128597144569626764912057356421103544548639989112122915686950014472502895790020071830564937063076044742213040496046298207360661139972535988522749697899797799873536807767443610687355186005071298423390275425069690756449144939407334587402402907720626726561053471624080415535384366534883331595419732453272731074519861297912103929579464633950756106206782510998328284912154462982040961266009033340238320463878065813713533762260487383628931172546429626303210139574924041921626914740403258396343105366481619103737540797438916414886735768880387245124809845327527591388942048877540500798025563169875502882452880882915880620854574205593839237639773691159933251718768302073562222889734271259161108824920954868718238799654373062887761386842272518087149770465589221954232718966970394072963222272247699027962335608641649644538748583043636836695300163671907634711621294825658156166007169931418970806465161553620759008044211862654419340855892917901804700232852890990545205392059803133708839943259099358951248898354331569378767882488386753089961036984717568511795668759675978933669092982653406337025194078430875482104622431490597781287214284093376706630584057964472086746992404396363471903030327844473475035685325998856534228657004880732748861260668009892848163994444084596926852935517498027558347662114337066415250313966880558163513987051125531235464982623227452351073639371664764855630258492243094277055151552778705642958095664828331246127201892048191097196711718804517791394210457378250845775724927957464993015155676549119456580296663059243862077057886288534188700253044022762346265725831919094372280294210723020473785970080500897320668254359688462435136931824205700941999469279647731803526067328195795189733852371181695908705410541730151743297734349821394415876869969240692207029736135920757535614490447316023901307543463991681443968671794334495317303054215404848423547381217713640416596505881258167555820344089080554987708782761422936331489146058475213126331575956059086272691651014688263826189498655891663095632058954851714698247966441293365099087588102288823988194870123629701624252678549068959693614794531944590614649894149735742203204010693171061578429657014293640975370942369817906190614990370030087116197342997180190401476289864524649994178622189547152948280877115347656210665830408565294774087198114100051570212407333691967395474109602524636560949513389558431581201920388476026825942863961091481732682031004848470703754869118569399728955669800284907733282538952572163163098804523579129153556536119990578527317858046856819262620971045267442824354030438007127972463225627921507652555626162976901162250661053495911548881828584579776886253168229313430426668421271662732326351792838605770457730907073380708095343202236868240196150307215701435119171537736055620896800367349771178483015591994329888886530862611903437513521092770242898839117129653852810514367671449210254588698563910604057487944221181211288929957454091978093357483254025848386500034745412938995222592789470632898493964900921113381631674284352716062666454650082784972289077801614573419191467832769397515852823010104662043611002413888917286848833901248758476121212394023387319671413011412402228932075791716127797982583502668239539117265700954677390984021857676319410650643734333435336558749598389682826437021916141164618086705485259327631405013519832616165695455976755783682323284195466368263223495439082918373290903895402981334097856513449760415418784410933060846228412789393839368986368995224032758201870917686688546585254151062711733963433685068545651652065210004127736723873694480101609540375668751462588952203049634859498700747804938229097851385296407490955492968109617209038234110323812865149848267520641017669221362409608070213652872951301553437336610629543127473652809401119578486616244711533673919619675843253177337929519263121554672484925608231409569722308916571526708858931286802582553297910691186265803819523250222891886395924744368061048261600065220071104692428369222901687884344499549989308200367556214840243944958560202698072675638959611314597953109017177526276071686712731281361438051462814887182071556744153528306418750520902527998633034760351717334212451092212783028592722365899232218441248616507245546458047079386389682241108163032508880340525579747790153079465015328970047741571453398676591899202244023126356444179138729961090987072161461904227790108042585632188465901313220693910401387521922396611567289054259114934722855569484757276228916470483524363684466915272674912060988242311011973302881689420837356713081500486406895756470848463974134286917396895886611854518430620712445943127185203174705992934062923264862631791507006447437251422285438721667976374364774403923825565045814275249421465727554547166585466879358377399165969045459501270054026047169460174151919932470843012778766532416319832936268763634773222214819999361456713207848636680156971328646517908319565492592050600244547596886111673294766408262226120159710304042147433575240548971987373612070222608200061460106258521462011457559472080719322595629517448730350058965917473807515126495093926489510409909464988756485192724489134095709677003844992744617527219040818377522511497701445616187996568873196287506598315358066615218143551738836045303934600942728389811191483157406686596991092521007735013506375768000893371883843971683789308113567157755074266030861277477026678211469561115244013844895207579201989667312753721894165735866344351838306302773134078680586684239336008605936308883722352586372236392461120569944387412788655832532730837596931753617957441291816147469940681021770811467881424562976617443123003626831158922901686121759774571170202662181511767822988194124183560636919102514918023497115278649072606006102251478613670008904803359110676573000979016555579328637366884114904959625831215592502347317841166722342063120443242225863919329277715052420380823083304479894045818211800647275749058580977145446799813508342445499068496640542531406562339571251486118353478256584401468044127772162915544827635906318027881057705002741063358206914803746522722990117238259079725763515921798014808665016696573648646884716790187957213341429156933423285994079839789982671077330459302596557379993666006226567091185244414107495397825247417316437631873694741864500887761209281899784134191467171531837112847628370642380633687723548158053404838972040700564858809306403534280848225803839094605337564912525631770610594400514238962339482951994562706452301665033979211136567662709598235385357729328857463932813792737819789742131226642126851150630786391424173618913539252637961362286605366984328513835822223831952571583320612407705343694970693334607128733049588137899653178413640924110803393800398363067632530321269566334537054631740291303570687207275737873343891888681390755519525833326163118205663902207561731152925566960928532393256806414642808155648603928525147013213398454409232512400951546774198041465166792819687397509525181652087932882769162758348663980105879426492957716295715397055796983203040553700508710957373442879405027427773347445480432762968588038297310749973311649134356317625837021748576636224033927488872535690092422717215286029212085456858056572975231307500640309308858519989013852185375249364576896083635376015330333401299380868305977886872140367945938218431163705170532886657381440553471197399674256659078768341914958097534249076840817902512835923677652702384972053645872198365529150786667717715562023259484535365157765228256793295250816147084027872104085467750740276328214480407382745634220455932962438402890790011218303723255682092639598621700880411079588493035463517050676060862068138874785277088716550158875120460131494375359867213613390739664919116896022812839581820264174234519522524070826594304074513804792768300196920193252007049888418004042375458879448109792618553636500147666303970328490967581107970556011942211743747020954910146996507534146619358771282766733902204947696903332273111829987044073264302487558327681044474918404780064849287650893431028614837766171721893287975571373494845294174927615052249957828542847429068336572338474144055067732749251961849364134207643910696316839106355990475078201805263208303288832456676194096958632002429029319988197993837112735468196330385728415955205715589153293931716574496152959920718670634175391056895171865937916751925164445978318515557736076336254413445551426832621915334610855206623664573996026981155359335658469263825784139348523195773701033929148871558342788011382792159813729576710430646319420789067825098432388669252740208730306471731292531712803197187780971290975833293829249386215859440670731922918525930430716010123873251509434419130982970176076149371601442582818468202904385921308658170045016987308194758985048545678575123769516282530980263535821648653621375032793905168740436815233297745611297991505516493918710845009309181027689421823470179459293722042082903812142435353283695654369329132262932888771207485629391139960576184387892445122198052410117544502996776862415484901289923309032015232035005801279269293188173987769758900254849941117436378281407035860394792152737051135714465308696127649452716362011429750873697593237738113131656887876780247422950862095902945754310617447905866583714688388566690655730885107266654613151653339363901160591728568598877348333301676423746771722199303939670022249114693889981516999890742656865334129324434300847401384409349559622722276932495570671994494940547050326228432697413305530559071783454060771935238076393121665944557910258583819130495329262634040140541737675329445886213191854876293088913887116564167920545246014598526367349833480504892076496397190719068862560619226092631948090386576350537650227668950970948713542841905074355781623302038269228861435055667243430920283911696055431902808032999719006535175848981209283430537216810757719460927624625839514418849745976830791815143503775319798007615427272804777131019016636884794909516666185233294777855018902252682026776676500198729735860251835830076887023414832596322043215236300351121250047723183741637541052779389026310942651894534012208587180398917284962725767990364562363293465627922859184877895487862610657618849466117010725036775260535356297034096039580887452526658363623789881798220128814359814056919776711302219112286203948382763967615011282489034676932286152260700151920119353326126739326166903802926711512336673341768059575464865818295630153244554789010631724940970522276503794343252213975207501528239156858303913195858457852118196069170467308322690753833372494486229002458290952954454472276589956598619465140773226161233124242812124622365180096244472985263740334033290774417877612733299409616861296617402855058889566751187419582434774816853047556033123023985710869232238744880959490099923301462210866714170504423069085490240029667592865574336020158509979793031085663450717248770304858464013606133976306472757316765879141410722131923074409702793664067404998697941758225850770216362331780077656610894220560740575883021910887287658408860164091998184734679549043584354817592927731576820162265233964083228918784802531193039167464348287825065624170249963978841012279554958124849433633570783264586124922066041736770862937364815781037834784857728677976487665991727795222137786025229205191013905871865046955833227394105330257438785825726019240146990076617537613342973264309633353145924838239110235420223943959909594247558718452513500129926629301507635510851145264884007199191631077264046167185600610917650887537498995643312319155634209971232322631910153228599455268851555315269661912127406037292376613400060241412840536594642412960706053855359590694548899338080748997995916811516695402434996709473222953910225475333513674340395667003162251611339352602749796240734647351533860757883484334501719627754354369905857259403152198243459225726606175964477688418324134891992524825923144189497008087938277429144466900975855211979115098006191594370430281125427777249036869564319195377421112114992018322448060176189366968214470460349895122838512181160576507069637917546906595719792551645038538810915198235638084383353833642048203310697794402971350983668719817768646124970703477571792097596371522372116340667817754523938869090148829238865152708099505451814165094062704594183128368795905326730616257165719304307373401675604034031834453831249988296828721601013376859573254847498335652403165648661123793323072448720423778238028080269520849694427305449572570311058944858465273109339516426909407006347767986782191060457351757041515065278586400819437979339056879512966052903854794128271377812681642356963190645143391227998046332381052175568863247554899796817763710313653364031126803685175801948884560112567775761256589409226762286849096549216475468167933232571461147832372044063994706039087625297153421464532637976936084402776912090919442054512141445178152967511657015111522856633037905391012562465109740223387040538436883746018802270221528759225021219145728251054565446533004199435610883788043304637458113306502125981694887228100060337421180157680662713370725532509318258340558160691157989162441992989039639821095699089301943495110988368129060270695163913031423427404014546419630001434055714724897366798096011286682561944874551183743904129554618783255603187804426720169908148800672556245340066589997484225751657808807459171366055056057048625522917418869979160886460244106041964726492673620911883139115887269297656636673050779010224279701038431413914589611944273793268237618772709430159017602405767057291083526498196567523892288952685831003390113398289539048187656188491897626599626875119702243858856736565559949406242521624006078926496574391794316940299193189827806234340889417583284335498271441623153155994082640643655771025122080905634452433790496058322706990478864968531335213181970514485222309171392638195717542809381313018636625943936450361756357287467603207157062937650191273270456080354934523723779148916932567091947237672333093010760039018215395782438010986424732804385429785655568006809349720627343130107713838247975041480520676569465002657530802750108866189560035784246413705721650537299946146993409566068638314955028765621993473529980450688193747873186496702553021895740311113416144540073108037566567953268605486481491029821813199091607215666681287145625220704103208370492411136492317311943754088473108895988840137158825252939887429549610064548770127588479106101596001079164783123227329394798512624628925772140939595291815602779115531890810726713818409860544500045307041647009136694104544290731817700028002711792911269884195203716022589260588807635814103514811696806440880664447493725019861710033222549088437010941684163270547612719219580510216807981422435281437789851381197835833092262142695320353217699272859985994106180675765973836795809391676312771340467954271664051019993352113572860099884138286735926817224056505893172818088168872398273390835679724532005793075066802023027751386033603768363996714382266795488681777433670103625062631153301514837007511796984382189640295894588007279717579207558537036196076327460239151017546658202865562567011167305150452448956805674562791416008497370298855933806402617184624672242719508037260912420967626211255773655473644666118776065782988290640663028191039598469235740372554502561793614967799928688843320029001780258792663400238173715816293325710205641429364911175501707445025941229837737881352505646890944135852919054448876650294137076018428651788539119175439179467224058004477743342909315454761905780744557110943396793932571591417044247596545543577440973739791890292948943680551574555425354343473069089234233145833886561423541665297089510360109708918896208330952939506813454867884857937739059562342753478600728756754848398156062138231160329201567516107269030433274801828950008146051662089419751577395191969426371884854663155626651503047502614681356900562299204690747401963302690710492254315609991652805737814916487661194545572495552561973519666818132660479546794144206806919002828461237096158242764697307116141357899769396638400521703935224130615928037029297208006380349740070723714238430353875333382030643158601636532290767136096708478775055706890372340764174511879922803996588575101437668213460863666840368283736418388572604320831503272451357450308808091714758720505479788152724315640848422733784298963645547201699598984146127760906271007011444573408182567878333056888781757709517540665253062628357472954241089855193047279566923873971491834523807052711729148131807509640207113046846442032211206802966489196378927141939290026384708383002600347725898444134782675879167410407958250290545880538695326396952133611082309179798200541641463306536888838344940129564570881698227178221140832448863088186903792277342735774186317166126821772858448936515765935265109605019368774253528424518826008438773913794284962860157421044464175502294792324636945856330183890004062459566551198239860783317212342675022618091673778504953931183746168549655355775908195909756454182017335585720166351946852503863287121438193412367024413857091218479011049593538553605617805286824548849627865975593671890428820811597018757159412286550916226359736933091747694260384644202678372873041705535838464817552388828610417370487749791207394043142994257314786262082646548961846146480098807944183973710173947561323912894163847455309496255242567889027462367975791993348624015123764665452054737365426311276875121327762540178307158683651975279606981728777237058190558524505169551260458004136711644130307434422493856025304762053490984510894462674726854031126565206556492499186437895774613538191827919839927766093072788109187060401591653204558256844679195164440655921767376032966559698148850790677439223382431870864459767630194240757676746100516000735729247301589627885084599841995038887789146513173560648646731409153202175588237098705561560418309238050472762474431175794453680076884000526402100761233575868814539650743451857631889898266420279582396920366748439393122849143258383649525792991894547756089124490074994692315182617945635494809472702675627675810616746897698412687157989441555581423856886733182041669256110571988201750449752894388518966074075280336540338299358133450393731338818296241383457346215299604251753691076736739024862727765003207186706431652750921327041328697155057538785547467221344026581738796766569091763059605463735135562091986353553720914798975889119221961995309106504127686216823009901659130085546629673474626793812884652655363979802651321230288129974394973353761162708793659097404727250508413316668769995208448947402149022090049966091785013107866639041160210547234757069226959954436641076597013150304630726721343960460998364743087098986569822588608909019848588504912113814136673945227076908803678410872554261023750430580049179162394781160258718005511346485239241659988460949906078491508389395040567750364207243251853701459410285343952089442470734595387898390907667280678168606669847568398736662622245682554520828581781255159660698721919229611548464064398539407737972586203801401664830443386111380883182637882803200002996312798232978367758475811957567721704317175652792656531412500363494321308767350370439564542987318465790650635004511705756332968278251287427372761172072801743669518059147638762082066987380683023971110687286021919498627440655814363573181979790822405932533343651913844381062170483790157113253795526245188056901362355034385842190035661505145684760161788911217791650114041579549886218413525038442008669771080541530693431159043814273397797962129501281309893287230776928371579250568047281341500571748099889324060540477689023341065242426823272050780079785889293086416431225781857207203862086152967702811827096614349769855686548269462904330745968818388302623961069096368639327705472320086801964348129794081243635994854491835271527468066533786761317455762635505637724424425455799394048406791374422372668946783377049041176831315403460613033740205572033547346435444905555114893505305214158200289508336675543689138613484121021730192525810370914825141652962798709771248455711416820916060422195886220646761717420778505256626568742069841755500010309896697046937833723209642146478562910635936919891609921417414037740661360788246483781270624119656978999973992602683407668003766512213046679702504100826573667556201552550157676246430594048211794016714082838668218059760022501632990672751434671572778633639190715978461077830168160832493040647268547195602122242537680430378980309841619425816916414993502940998383128373597239152774204800487691120828671345344897940666550444529103467452737622691327624005282045989836218098653026544494789684981855449715360630676671681073748083218184133985111543669707467850467114652124813509384624849500837066055775088405540764623619022439424774745249541447138326279092775804043028929752916107149792005757430098336116447142326831762729614050815069734955972585062370938860963380129078128160745069582026869958515437954003013210584906555809687130316543016755237526066393233027205662669661554015903330506093580319966247821597034118575653418495737784713118937398291241061748373159113345464232533529597399217857711373767057971812989478253345201257946143440404701864838972084396034635117163936956676365730252123253709573100858376654376433449940361528444865053092566573429523003141776664439159886274619831447534417596271368992601379892908451994995841571973412222741598518378393815663651190305558780774050349716463476817390161254871658347982685544417314902823471213753006290231411571406763922305146275013748503627141992846475848132153781159264440947638051367410711559523926018650939073671801072030709613571604354868715706546391554130211896826939915654076653953782544001831671605544958950931364893242719242098992570406972862816120187289839129332981478273819831932812746373692530350084565343023436959659680317940890985252751731622178644785066918854684387437612593088457310762967556973040434158824897733184245943634996962484172886059771183637530341980877469636213280682374350188640911286806599392827242483867038022247909058697270915211216211849581662679899050633044411934741583938939415909056328262097813191253380537133147534788883189110290088642139792192558937723741712776988600228152543678536227857963100191657618360652305336936243973442733224572048674576311342130359878265079279318467723511562485782924213852651237200651788813990477434971546689074978001180527895948102045502464081085629029145975126669800743760220857481854942824037724184725478294490718795670550815304360842336258645786849161229681462169971608500418119004172375370009260159009510201708863220825259857865415683433835547074980495406578351170173320270170946933434119498503189773571014588253055206171538292805309543828091323035561915324569898089509192786966373464487930904217180562037622810654106015854194886453018159822058453404741863952139397882363579874537945480111925165593985582174900108457507114206124910821919606381445600887518753679867261853029172837905415047277617964277370004998279503839005900430523591686548099525039255250840301676406032807063231665849707045036486783305137652273148200617716809496717377120235854441935240962937314310314951452379531991061927192299231495904642657611313259331140693182691505936825523414582146797689296680549539505339065191229551165880063686014599336586577788959771845984618977651329523192439885113735546698775226624856090213926312485457817549925267840048842245429117562125877501567553363911075288511080311358502157341838469159860888213876935582356252408031782422827637649517066935948994941325311804764612757665290676132396437218282209237006691823197607349269424038393951503565611564681992153947660820617193310407414611638281334695263332331713791616657077363191699893379698975636423348267735916076308599118559370148146962793690927387423279666374462983874750260780978018804975264799642490862673931314218046867029040714738083582729127503344224793233364321880680604172946742061039993225794879706018641101020197535658787063709675331332417715390764641047472238963388300369340779344180816165962320769698994795361235939258475556531909441320063351016744347661043175122594228073476569906306337414580172456399409637999075893996194008515084503082996848648642187018232583170196157569349900274003862576712205578121015987198272285399320085459822792930477990191751918362760450404198597850300105792125749165280903848155397451871218274689705769410312410709989461035553622868593906777424481033639728126124591307093115153968088571196095939917362969639114306231891649976203442545363813216300965870158863422383201187615050836296130934871457920348388998720954780604804905710725768048371035352216191697464004754944149593284812109115559056383551141795602119514838960909495511606605362360980236964797883355363516021747328465015413069634578620880330714868311743230934230704823663329040214850769374947733724784354559835925542040967905607828968809750467252953493409439188369863715120623704582443329951484132991143895450564505823696672759099287978382482240899584989222028218271064731668692666274044436907426083936624767707298770692501961604408565882397703627020628107847076876216495764253719058823728549463144649482391711961694657580812255863767481674028298160311960442249436440994668753522169219905972497669550135561698506163774670645543539914107471950783687763917034635158701400961691221838491523516069327497700637029405698095673500965355800273761507018797032986222739558285663375578002489366758820968337690404283809258566849335054718320435243191533187069568034232010717683525527720318850166274332274765091469868924481817343704462215298628889827168272999525336130589652418069327023379544327568443314967928795571792829364813526202770685073573696131839675237602256612052310375949155130067523990237989437863988499353782830962551471240839277554920902589294637465489853274718681416801975553896058397017013888792926032491120758015380758755272353855455143236290292892607520050848344383915759726275464391032277606799929145657121797241916853435531058545329931841188645702352075063664435657603574781618992305245293345798564166946198646157145200746513967165895512111682379800270102181818723388651020926788785851326028058124048004432469893653862105080615786223580708879354925008372395900587546021992695128134985261357341437916078194410307222782989490404135607739802273439955671521035866820461879908443332395250844859162658461535590375397297759903370061113188967454583824579850610281197424966763829898889537783866052770083243051087475360241931902954131492864388218425466677065623749619592165517414078847117752122285161869818978169336771092226696239165410714311560652413374765244745247667129457738508456649497680440934295951067919307434517639635043234075682487771626560745792679097567915253435808799926660795996143304870440208593260188337594276277260364680209451459882000361254922957861861076665003926965360000144546155977327203595388207012662231661057677612256987439214552639532398708890800632846129443639455161793472074388970091175347271472111905469177575362652460660576111202664340884854372988121877706231913978599508605757992017998187180245424043061522473858769570489118457903235538015363227884208213848344625375833337268331512847725653655946777748750898807366695806785945765405722471038041250257881578793944754798657374265057433940807830135691508497432325085873348072846205731302707270044903938609400456379328111700664903700939576114774529307152694605066393378625364363842726578426432039805932067613572377529787155808439524260580169993351332215487739937445147716284194358965662867944176933776924364310134531946276707981036222327407798184230921222841254059628561414033564347647601520149231790494698825493623817479591744002364356342806513542936803431756111787604727427956532777042804393804882976650869249564741182482504939324231511925425233564331434754371752153827034648091194457280895150221011067549302377341305740728809530418344066323300920893590031710081764166607232840474464930818747189667229806024887916566823630004852656691925193032612294090324647331761061066569469756594409648792137853960347946904237586636992852261967883760837206393891544740225952302694196020287930717005628565181105522945723574326035395091933906230724379621110071973668271433609212328471955339313083781704631758445710929348585224972038397057752912483522645885831906485269855412739510574698536076596433487923940766323325754544036240027878829252644801937487193463688994213101893018103430900436517077028610041303539724889423236377529617654538156737482831814639496034045889788887833168183483536149554695549265279296718616557838897613624499891391965663471915359107742252683608331359639582877327256921169449288576561055715505254504881555782830692918313846192946055325308439861294420088542931419158699533235646092759676648690085975985791521093812206874650795441328798646450434969209112057795255299888333695838123706314560269061081407751271520695661675888576060738728824731034625798963869529231776923028179422383022087724360878408724956491375858493820205676200521326417178556713326598840338693699980404086428972407790061713888834910920509924009327754847964407826134106207657152064148767848821996344900333776601502688357891728796889026061453856540676671494003080816162249635487312648204870581680774303178828189912171936009163856477174443037797158358490094016194666993383774931439034595380618232692490247270997016097120476628066918534492292623420834050760693746786453026644607620862200328206524458158328255872180938685493387293758687162503984816087539573048783393930444970217880256903046125557207804886768065748213977964093086242998949096129055351938287097257467819577424289636423628886008957103487407789104770679425898001332085657034354332396399285563280638501852599646938234756102134159067859042828704227268538707536964173104239382986023185615794171604471675827400558848152309190251357330989730649235185746916277197482914132150591771117753789521620165288399827038889771931088910500211398155736993596167883354218665956155594041084748397170075822519027331334653363209828096360242364485062507710485858012169550650657224659598296271748792762781593837798063732097168809183239862950638970910504164348047706381220705647185477471001511206928110786126002270525277995649650205981052356093211655905743754221928190939398186174172794869680246918668192865839156889561462567570241992987243824859660302719769202751528293901857932680103063340561443874462505929783380770990593363590860167542604476929046768343173496930856375590857624502846573289349736651820376595151798990664506205301812980907059156810085621965850962020486398615289644237276723346750823638863319617697618193194113605069772040097583343250035172958421514806743289458351726356972423446089824419079347478343335149160558555288087417098216631272157099423030577609499139363503436860246469893791305825588424286000766800517275813530630675367607709166428285804399051963191194077476461929354810886915176283332752166503834012185498654340919724668828106965712304106227623468080554062304679670759833389438344892611252100484696308251491437655345624528410044667132160174524581857047627308474270658398229267756853664260052484341483778146318638257926328667411765347869073774180087571644117874725215539876338285111245244841825934903102304554330280963409777168168867560099568654379841993989311094038165169685753547397281237436113497231229869573958894019998915144345483234971631295628952704779379305112814835451354117565408207938571594208377445753262937772457860790852887776172180535481712877225525292188985504137926315265628077744976008223127842668975805668702311751163504122701628561916721999236062663046286958280380347761511395019322606510536332911780720705451790425135183379511308425199882138125438668222361912468119168570429346208133419127958197192054129304743810525145444592137981253347912940096031376166909548957720924170618275532675238147861607867194661174772155175278987911816021636807784595690521831304771182115743012267776324658305255211890746575542871496807459403043813924552939642450067843440842779451078007511426264772094155066245197672778204403125612953021739027227057004075885732059757420453980445305372592941222760483712815527501436325735531493918444514329853202579671213029334172631617024816223619140076660076437553235031571346498323683191971137694932850422447208235807914456500250328332702384712411071681564124396664200605786498163583128312177870109123719384087637811484116499002871628462666143210273106677266961576157449630930506731558354581947304128910399020198102798011943447290503411152150118381636173539282478198578006025165409131038062842184183614068475429382519674190160672645467813492622500717628179194139956526466550199188725975765200293477601288994816065274769559837757842160627320328435574206594946863619546991678099355234439155150723088903923582492587890556673251775216019027822971802645811698756305479814635901153453076546350578487652073062985777729073138161167896082950008438686780896266844606743162004467237322849652814467020419610309055692549708193787737336286933445686755347685636724227279208287648760016665703651111137678963590704689013879253510956489681483815594600718494380695895957515529735993560226987519327824152220192319531220020320133747471609862477130182980326905103661547294515140499107952724720012837901089107710305466134475105365077718167310087992326132094681067432797962216604447387602153643642854561161006064543173918340812619436914569241406606334566971727030938779696194342049720192932550406593538590046604703602378443487209639182077256162044560894929991344227570845426868241272272436857570037529814272619836427838363313048390458018786553550755330087178119231792033519644610007165604792069265983368818203637514156301431464967372020530649080196884428236739113272223739102521150746470277857817561341345310974495975451516272158873512373359021440840781722686118926165936776842279573463224303442368517322262944431581711532205125250916361958734931723371168377777859085358535148714131067102438186532779689970189976770225807739370156384792647923858967249783562183412248370698614587079740304768933480309116780695669047975171584023731507333164868065590084868596235321778637410526332819613810092824932144094319176020689251068745117856721367093008632830167445766461899058814911854063417679655785724943928455913382087727759888325099966093142407940538387871538543070660460127835775434328945280739675805834274299644885890335695561232903403288280760284690347754587756665915315072710898474357090579029972599910973756903893668204360074194819742303672919585646200079044835018577967941927221750834716018577252655652590623708463356821259746746445168014233822509033664240185416838098633345029378067159553110038475902470550404886582731874047327943336409855754734301058280678055735802939401070403755967708366780620910337141077742771844122346145907432385842180763137131867390338734586071055111206086433724958797252385490544388201834299283951993253763876525265600415843247155946857463444825812878835987844155900901690768933267311327186765702236631162484483454340635943733284578178599104231951398083047513203071445896004959396417350209968825769727492333707486115283968727724153003600261753568200740929690211924291061813417873475255734219488542244801817433207268588179309161334104940324322401899737666275669123589132722320479557868959191357950572351521946384173153995202117920874233200088180587022678513553683269378538800618204615834219658008893327422060797824171608398528457462947074548338815184413665035754235387772123881096249066125713974361801665489508922109944275365566945738976297301402073094335551766442438878210290936998109323167698647904986355769576639720722533698429811629575593295554210579108855454116454448421494030843857758039874954122388907019790235967962226392165772219289469001547116577143489643429766781482044706735573739721859838583147490545279063338189210313170037765324379768422938350144301252868581710727572356559473437981326533052163892043456262217227155837640571347230509205598570220476258581311145150067799413897944175651800492768681714536048041588069368231679768474241487855209812634568736580642646690605351667896621709185047251171822503198368828290191042432655200865161084683904083766376539001791596877834859026479478991082578636675256585024136423476128094749247900012573241715296602979082621299873095757836749635116933287700228168850186104259291879317310764645634113251502967596829723310598417613108480976092972145929511550232443174251320477258979372503576169856044782846639894176469178009387592922164980965777996426221603703027735612492325813965364643462354631730960013659098056251621618937027922662299796542558349031893446318254072303870429887838311570308338849182170918219643477099595819570661442941450749795815624943580829204242273394157229470338559984884305293442060874971457585352379671961557896502018349612289332293563512783008966949915903096742162864078177225395657545170356744996416539538414103458970066904889015944344362695802599644985060299515001104212820939336949924395390307132666225342243711691523325880698221387394733663688301429467965251663100162079655538257170214866804502321623382276063485993291450234228626424470107323218058083646621443811829103093400949634518645005986574614381927555747177005750510267973516428358778230741960019409960339242458789662070085637530142739611353000632366385191580423096930075932328978739040576871831473770973167158355418618376780571133808443397225600078435973595188429456016878176160400342157521578210033977608695012598294469224604223328341176626498197299396308717026996232270790500465213409506590877419712708773353372653538955942364056830787356506284364174148377565015074942982861935604762392979223232892978830438889028952918296689705842640434057810762205320713870635502310212496089797185864991917607733045581979384393288316770585058566153353332330181096212691360891447518124224952541759809151002475025877487620092533061249342727119140889889327301246923941107150274879618111690877506697588485515672106539812832024639140812098600007162036646717816156536320196243880052864141720586524047083879026476563636130610846728660430555678996312583097154640708614276368579879363865507637889060203649098324453320767245567124316240894046949728721058996687447038720220213457008820371829471040817757619537775902752385085009866641308735861578355298592136974456148724403071670446343335072865045283368096842889786778020366002206068284849790208222336690642715171966178083897905523292659543869287444215721130428545399917770021962420596287144565549539104211743124071295009456416831300327184240881026224153684206422842876131834301461053933852908526579455388635797752998672657358136801142796772011025879135117350772640911422415929866754211900061545053644733138588569582279926155598982817550869626419099512629135068767287311069274652736737647130501593506040022172248137640406889702044910521762977176682574593254600883651711432729050646657366889110386170413691043312876015585754480421587340945705930020744561040033089289454333418421875520126991336844349436728934630853082606244647259603177308548523231314801415067260851335237989064218666960611768905153626275329854038555435219156417158770310685833862930214541750742141195528243091306433936079265340472943088780785054316493463779318813363986389133881238437304870714233364125122645050882237385390651054005918198610360913807936615120208459886635519654765263611875314343400644971425861864875029186412881081644306612294527021981237901162729169180612904177938587167463096247323589916034584818355531767685940694216306317573655937821640922747302200396167403761084271047907213509354308001720187381749914120648951635199629498110624885503100991704412590759065902006488041357962519608603054352680919377165956728196509903490154430841866785064934140639496808536275068608973163722580871865521730031777156058825721981171275622862499948289570392078145253120494867503710292178744314717753352068474492321608264142519710559219152901539117509733346116957004405356766521426418815719920532927105603412242274112228639208267324428953255571113607775475058360937443467707280503631178651644340840883141283751266556239558505450870111344889340363111585073557560242174496841912242261680351136750783620727353381059428360764144346466512424859609350862963971984623951971526501389906613160064151529509446318438061007808832862782975509543699665069915676914689054862677742591108839702849402144675965031808428771981787850581557779822544229420005321702958449481015083925713951551171443678134761563339707750818318684460662134368018435262266625272821154946535386863547211332905589236832790069226432053287235433489829338055692927076808880603109864350462184042446539962807104027204881807341658605026387165171300259344469160574900271991822607547351231469509124730289210251499158560754984231008885592476192957544512974115117892137122143668697807479008146838152420117140126580288559157993833842600168341249927199033912418885885186449211580822197935660776780074621073768146414288357542131468220373455814304435592101337489715056833033381764611229416265995171893598764408809580943705306386212030723510613116950486403166319395664010971092234822033118399131762202066976252767110676526278154702821016497775981506361820674110688651750474659503251736999384862805822816016858394713569355250260259925217143441187351871346053169770779988135576965520345180611228083211012726317458167438555887917163546258101350287486818520464937299800370054258409043790382270078346986013815862542652543043427406903167717429888553779591977602272966434071967896843903124338593949229362608911944097373871097388560003201440302586779126625155993838445006961394165464278523249833320374355361994573056120818641386023787060736514036702384392348110943471079892107331855372760041104087429452359058479117287414445370552189567051900899164045932977830993687491047247549338479663585784047248590583639248707353260452738729969693057267071673031150903554094633823649915191910363763528835410517191476106490534135290486713259644624840298822418373842503769499565562070149561971331402798213675880974311652224283502550888926104449541088730031756373016132256483867010521027656759025442796674268545610673773280076852142022604940068166958400100110967580219872240030112647117519114276230387208775799970958224474666685624778052605192088193071021569836901907389658854798772726431937643696720048302618886800663093358705531136725972648039284176865262073720418901198098637270617443418940105637436175111235799943485863479754112586246394341321356076732723374520052846620338608285146737393792197840926744696415620520481672196297759714604027321931665071770434787706986270634527905705059197574268361483279815093779587806215876852129304802819229451282788831467706353791879443079505459666425925011153133292292899180542295802850323949776131748700495073415009445693984716581745258214184306727289850363570713940625914860518337029923196937298133032107241068621904390494771947202204716535153649804012829188753989103084474463542865639744537217237031551253270843680812262875673534772496883155682634353219257984960558722493900645891989109565650790915088888122676726065591933223229847546168811679258504734490492239063810411728293855436970198127259199746228760393663654640657651135923228066536411034780793667583720630220837072558521463411170866028770226158789240557463855110151894458662235965365153058987880706730108424183682136976753060079030479484779985168790746004463832266967247938987144255299240881104394539507945804966866052799342700342156937086824632268129801657416299357233794707111087071921232230844552444203901224898998486487739940625067797060696027989798732669533574831321904297175809352388971297092992979983416154417384950244654279489429225208714696168033828805198399398642016288177247318625970086788832653036601908345479718394747519680898884890235556813476683937917525259622163028183664634388967121536839583194602048382690766980689662725231710019844000620582274972588956482911130339600238284803915008639100977408439210823255168278530294956526032052769496150408060444323359361386133607021795959953422760409934176847424346532729278344633522707780986422789967081905319423758016940603871627755234329809045544421928908855359875299365414375683177066971517020943216206436688608550823408349708258262138515128040388238166724046089714957169372564264874794495173050834043532616842225926723157252798684773987194666466318831423024018140740550118215799713094442718272227030996730626677951730328265957940512389751839080649677260561642392437070296753345654445358068245839179898710365043004994010135325792823705711797532615325002458741914579497649603010764721127859242109404847012803123856252623663704682462000496391734331708747834719463254212376904628898131493633586120668624780841617549840572480018952163810046721487306966171123401179913736860801656312894994066626562426958115014192227230976619747753445208469936042556736682142682054953017890147393709525019195542529994543367509007346698363622234399018852264636656065843997612922840851461941451788185502511995350460586268304996667586772120408039377622968552774007760467903581680608009424442157328966475997480329180971260409139512835737717788873947939296912842371541270497363832416638698158480006256022392238168983657619079372975148582908537095494828705845163688413273009748168932117494080288537557720486524830994698880017331151256976282527355529940988696022528083277093018169040509733702295842332969537545091671576854605470571881856087999652229293453369819731233886675233011482058593860205978158985037787412040867133201020566153551010121184930566594507470935880857568892958970690919564187561389956795141594753993770685554849201224439367310391021827776778401677367326104917625763710039355227055342025883098081035229986354715183479778834555613355219419638417293820195805543021812262845607620547172923523119613749185250017864484120829101546228389189866523666152224348979736192164804850931094100511003977364824220588023950790105339016548508379495387402878255232948563593478893053702887070197797783167289965808705376979876795472342436140938818553012006894000275609507536907831511159065318183552564809002566682974201826747013130755013997973625311757161364341339654614749806677056477930661164374850901214224773046570850383688078780638002476798452666457732624652021046120808590293307974478307758613891054407406606733784856625854543148088067813876976874815844274274527959308408763355412021602098731790581819405009799391715638548010677847586005832684507354397861390402679412984543540157954446112924898610795877201203618386381622572882457604347403484136327611821787363270352374604299149830083538968433150154801048998683984549546210841359357478997201868895934622680453802838344175115339026349019307492135091792140636673494602520614993935347528545245941912905043839691592323450530535477283285485343199469126147453365479603907111284426376858527365868193844478535604752832700531476671249635364150539786506202566803721066839823503728699202462756471581974004062983755642941122448052935977194706049115820442286232111000764610958565231196669137236686620163382305467029594275280015173587985462698856628634641305559275207028742061882263611799848631060164995333786781564514412009922335409212181585561107351758146819891057607536492424782895214327746012089564835257530430224740978331243631247086930970901594697553147314103632723913458942721452043290723369942212899264319169614181514463143388790741559966425022552834236092367058633317596992949150899731745940839140406886911459146658019406634123628077067269999611884876459451517806811521846558848071673682956940688709865102608478478862759713261290498451326968013657099033414903117843656694824897499121623141671058774572706122473567134244753044043124853041662500510773635923789239972876980352646017694751757183307263537552669509400131226386308938699135908819895609037691199260282475873309494239532249719279350643233283328944564448678735210975343099847501621729591943919312094600976996850627632752426458835426629193219652822553612503022690361123653627157420747915480393654520759681604556362704109140763211263574547621380808433296636262189342880182547121415172809729213544840606145078014666435178872286275576670792747119587004125805466751841516181355425097184626619693426840869014580869051948954862735566155865794611476712601955195363495975436622658154707364430864958901013598478526707556704250507002476802622159029410984436186517221291782355938803933643842363395800132270464301419620891974119061725058986777057485410034291824127282958871065544305216153621473762190201055669864829680736036398224471493525023122799251771755262745212626738918947537173882453636921298371658681792772030729018254176003042022543513866518607036519725135814992196546689140972635556509321830696441769689617276787335841901571551842223418321652828989987242617508517727127140066743678048219000695276570576145998621822564879514839070315108421420444549061798140441572016701327352001889314997666331048390778213749717294637821629503870562505443108893298951567845389570557267492960654854803659448259816005771765144703540426530700925824391153454326604838243431859124200555370878615122325182293772524631517138188644152238244747632978469374755321486814022371070976193387723124051028052127100822373774772637340671513685029720108263585243514139379739283914480208903674764946474150866453716539681218715331670578530488694047317010098581916799137533028076453586686848505144548007528623074651242331064994295277597973019035582878587756034104557073484454804839699452432342567409314724426900453587491260469807095800744533999571082528805418407281591831491404504346365600835769032919907545158785026138935636834783351825659409925937277556618116753242165172543693790054014953259245427747742356743248003243105416686235092291384284123736752892878507962498966193205428589113327427542480807932097821422609665289330993651385689927896280006834815653457375426925019088264029226330333094083973777928106607636226366783491297674256523609964103322773169298398931293230113474123164017243870494278195500431474140164644616560899876520630993832980377014876000467891786996715149582654037372339390037120446185054481377377719468441173230070488811148606890765705554999113830783511232426901568531493964444652048131571458460551724348914572774267466048208488143131539748360960532917516662422983088656417236873940780638841850157201108321769942449459798510213554281901777714282265368831405307888799225911227343229105806094396417674495910326550516317323538093640278721887672243594549482403250290061478468776410043986211404305614416794966619742263849687331527735636102698154915010226424683756333701840473948825078451720551381525961804338697247304982364738240221013451382721479802902804158349953502046311156915927541565048394244251424911749519104284288967885197795617846067544379612318176994238437555969556999274500005417380887714747045441419543632680921294985844282372315757425571566455043344889006365234961825552953601676561866589961634492613667620149379609775792131821353208571557572333588277719127955450706570943937105779201914695652038959332369794419424221910068706723177397384992344298042922171797812430900856789456364228758058274907507640858735659388120727760363996848505418263234873430309082748895011879305393338280339149810363971445020647867071400842523875962779733206620099394554075744201800716392522847149083192129090274868724515136522806620873990385996029946505311531138098548811371667029483711162852598846317646031248171019423438120602197248214364322220671661174334501547874034063303835509521163517043447418011059898607481937965172216023503101924718491945422053943062965455140440425910704534467958184886513395049815716430970253283248835285865303350022187715831155141412173128601081422186544169400866459162584646280483046103470742988882095361637553069156528999362294766934978681895736978693520102623268887697429239988535496395594862290411956302287036748361348193547048699229309952118272362092274316340337122145302211885103990432858881516943908587795752338702536073552121916166973087738206733769474368539446620550026225906377837488159710910246274424153223475877288212495214203964721441325353124468648715564453603882989056548762009947997819678652609803437527458453191265148843913379578598431242893274840816134800473549708856106030643232742175493075813945869137014956719804979688479301104708604358410428029663588369480559250830834392202399544927017113034787381493499680849554634335244212604645910878654931509003178703639169456087924283952453503960015931726414337538509465023144414770851081675930640172963289564206093829792711189628455114225539575796313490501765178725422253403729055557254286206743963135028865864385177866474113665509853117724575631035815774482225500415830012948794627772466912159081989081033422928593957817816844751103611325929805126341167429080351385319272594246333571802182120599617004860213696810311600958281076842051613429435867286930052113554808149799541525091098627272840675894833599663302724750093482688619804986458201080926846543669468384208505773966372086982275594659125383064742011562963466804632766754358329430547129590788686163388649857409008264110033266384150504946323492319692512399093225976802378040533948796779003523982115450926094543259229588646912962957276691204001384344538014872839198978328604603272892647508322370600176536336298537569100367746762584044288740687537227069160919394680295716579773954830786499784263332669383147619191688605805806657080963458043011216803734623206785818344454367347196475969413338238906820833158888684224512783840428079789558099227111229151194803091922887311976190684931327070045566229051769897830138078248244696116821328040589753030510722536807524525848189500390819747606886195038887440051989241645827640931558907725097615972263832254751238906096399230473298703457770624436528921135645394358894032038035499850553669589562363362281841736861213315675794834917146629270496681664341201562636314109937243615480001678332409406281051465520646289240099878478325057774708678459409985788103319331765552952787968327611684646328085383215169685078794863262142048814678418362922688431343116008651377494551421440198795273353368615963320234132107289647741588229301327503593009030784447096792071632547127016163806553307356673200254034123929587999397929217289130986456081106300805937903615305723139297567294836698601553805452740956938743455803290936233344756631887481686875158177687600670791601274170304222230471131129236236335898215234457505544601578764150711973137163744359486771822693397348151328813528133767024309355470053831859430802119673310121466847045649879115818530101468373066820874316886184743596712853805268058402850666202441522277097031206827191564313995722208237045206211953854094955365587363082173320056026297857132636978149854230896958903817586662937752690038671297367708600637416605562997696877402205508207537325892800486779462028371800996761138570942398504388252630614708994085474780755711483956074342408081346321647045032721453132074482342826147744474609071751617363791129242788342251429674680964829577404610386642832396122556745372890541977746055125694405381107445847494573666351313982437588351337932821822620218589988176642248112930587002237873306002807161041229200242686429428044561250344434907039030847112617684602474110803209012241421714084623118165182448781996005336034806508662699100920787206773198516568059743463646674869677451910610766688277192057225921166013583383055674357948087859915898920254554445171423436537471501428218380956191846000438908171816349265711484266228403079706918678084983444898080764363093952285060815040583682656956605837216769974411162378975556908587013210566069539644384044825642326909941372642907009958582169049816988011839811948224376087373184870131504521198487949623813276069215773457559345189067741406844542111141465313490342436516565883572393654761044084415099112954598375735963213224759496114606505757919553472215636661198260508705591617372780221301382730452401031443689505392423272260902597345045919401858771347106393459439062292741951587552206969240884615111195532677266537622993748472542076676923781291053835074517041865117836997801057746340967456613267740035511555013552050213007149797323701344982716726377954702989465409746586791650119455655206104222252598340080568303807101925066594443420053957789011773109952137975980508030477859067951173107234338198347168669204127377071951376868573821121622873459658356613693460320470484835352442443647266344816643157639768864910411026236874304294363610236179252667063818553469790652131948118274104267718122226269001331112531313868047268816781273594873776244324578263734018327624399480945878904802906301451297543971701791244873352624135370623597156211138469778544297329679010294439487851829087091167202719852087775140527672143773686229025860054038522137625926908766560785522270457224237034739947517358492058118567996780261756094766492201143291492600253795912671681762370883494517105938876386314858090782565657641715846302702653874925780814676302295882477117134466282982088876022401247994165019126188646593080933483985177876629809242931447384827923360306351981019683260085010534910664622897167472364855603976446461986999216005648015099036392422064386182530182166419361892680218078290366101133537765545095986115112054906392542763603260559476671068435556710578575124992972479847415213719950346911987709186915357278535065668648957547786233762755820304961743368601580378075937591477436454231513919412715018611007104289929690339846375811987945706936227794351106571459065208586074097347361469378574597890037151812510529364405563801218102915032898958787671609903765748303039674634743442941465293475702994773890277878615723273761352276302046254777695540551191818902978472600758142807442773815627641436859177046653504077175901717016692712071652655586920207664586631141334551624344320944477108295622914027330341691070589646736345493168342496413442746356401936588338997950261893128327796877073747259866967852014762998974171927384728971343352623141376734586712169944325382266917486055734641820333108294951608735202064300185969201828265976374848156130423502614856838932224134984727625971051374247462911359410097286857072294889959984526883600098012544231364507960563559710718904937894217614558929507219283549571415641250223753735975131820032171519531132225420188941725110075368778623369603021020712618879855039231357174167061204162325167283362907419878954471431555250708975955705325508706192336199774379479286579404871474871037786218425465252493341899179364265441903252787299595384301487496561312059656027158334248845986592482050532759492284753585164726014849498739616294497378186152711435873394500396319237755037296191825596920312251136038877446318533802885808603245047188106563080823739673236193361155454664911124749512139675135908108088200061287712714461692001541438158902576017336593442704293311051773154773445204252507654340050488044279848661654725806267954149670127936269491856525506856840230888227799519024384977781827032834198016364562941549887672299519396073036549329607665765433534535837050899218311845197427631153355611654567293176610322321634952587557791419035304755435304472775061437900767160429392671209459314881010702530903507347536112068518891587112497899114728437827483513073482002976136696064447924891835117236404455632207076956404980198464104809941501111832321915055364165774013648535125798323149081029400900102911507622843721000091118375065346750724555124922110636345173227075441131471826980829230292463116058066054823798794591480383562848219247022680529666374611709818696223956430587997120476341777356163589490005841392338665168534547469846072305433510015420286811729918392992117657814928635689304048556291154929845392163254124554084009974151749096976161840414978128881104071890472960829293263389298507090002313821263913977352886821687003580622636392277760854947671098229220530204797534350293877074270229744291198131650764253917377933589547233356429723351442545252468525714482952583514191994499944995689633248179412262530283073367598850323285998721740165498316660680688329219132984126848954729595767918449546955770971266127340351781703272582407320112702731183588273280829714112646595854498873924031301479854233391860317874082741178933047619109736482860259835856138919666205650370765470385526212372553624137123640969812439018728898685859365245699063330243819532415604373308498680022718155184736066230800266406699892932548044475235985949266871776741933847103191870462041269119475423852631690477722751340670547466265904548442159397820541465031328963702926134016819378419929063420697398040795880566237505974516781285493780319559269762940050020317170414058204082010161078443339692805879045760985186864602070567825198839903816602292819549115989541251690890469188815749115737846655364434904489408039034295375598413526462151267513805705024500816303941750337137406329903008688913001341610020612259405584863133215576415496478519246238174542366131246463687562988886256337670022070046573719039116703500201385999247706344405906731904334723964705291253348972142106885588753866115862042029373346447370508936311181680932007297952298265615306621392748921093804890995054769223768048281116714869964620720881397335978937221751021310472834433891654636314273901452397658010933968717512838715249839356295996851142317931719529701065128983271603145415934178210070099008020808151131710004821431284186924096907306326003563713814354191810568967043618755926356623229452042637734919385028821696458388766296612843621643743635117907239763986913023090752414524437766302775731424554650466979259015404742896157921136663940440052530204632637976476744996264555158420606319972757880760572873675968545694758411738936057234674549877589636959963420729202481350388078650536746002923680761066525505132299667363122520071832102011615207640951416269650189488546709621183029246578834843667238908862190089803037898171465983641060868225640427899094585021713600289088582648062496581822904763141516279804884144990900237682339685014067562249633095485996864593296047003312753867521584887443110825192426247294882340314097071730451970349067419787314140934410431745832045280396315115159674332619823174107016165651123098236354090962204627488098776308772995474951357632802755356814334515670793063059653521738285582693155585056832968513307577502390238991703838586617908966905873734379286321557574498899952811916457985127366856857390660085847461398981873748488919412172428399854946783733348349079170414565052658504869250005420450858108629855899122255908501675153664706400859070477437908033693094507829600183717777213793281687857414908033420987293822782251302819491738814401229569702484231884277986484447301425243766671126812243112197481747668543951438809935423193544229049636561181525916061892795530485593013616566408166140541686100551714610720502977322930302360067289535410468393043151805306312269254666410247715163965856934249857288273437735214453340518864700420368859185322048766336663883471305075108010948855389790602004704477796653550995042728379110626847945070422776608734922131994939115453923003582982351295449733641075305338815160160351522981760262149961115197754803911097249399063232316607264259952607139079494874415972430820803124314786233171127967780065981813041806355854427862091163964630078204594680246717184789919623246500960680808999806223902222053725848841146793698190426734451006772037394549359792243922346075538013839538719476024181853265197972809225330697917463039909472922055432081084686155334690858727098969645804354704258382338995804211446483659525434469474217190731461963379412280664436676077194692052966843918403415894819684141965713678793607505478893789568455325320789675334367938941546389721857269139740531755170065110775231226167163514015373176074439233800672534964890338597545841516054447903892224323512928283699166934082991117883398791109645902352169573633866613235410221113994118174202277954797911389513272720423677120787239364294562505150052638873984620750744218772732997003095742667539879827400920805901732772465497651115761008550432597051129784151787007104832414665666642199249823145170284006686703196044789444586656239450138215847058775353377156848158753357477602331762333272316202032001835902716148051981716338315973676243914245722879029330389351133278679209773042855338848906735137594105952231412921217672409023171647944709911884835368376558770708466952452876091740779031087926214602318569915942909855200067034306750907467764667247970938447553509996766986138235402176481602419708640888604472544808965786694806644482082657290448123384463004259032670802076706034892771953245029395060880033312035528254743961443960430030614765904900263596432635536402979798362035756076528591260703190950251421217360488820475118645689233054271021960481393933977454135298581992059334972073895491184007038998188262280761015868644446818222112211309832013724287322129390422141212337576249736140433643862595407751789286373193434388607233883556424282397770433608617449992474376939345505405446629855055511703687083552740104440045620356727933581390240532680074827234254184214075710385199042962937191386689144870864562513175325285934991817335184767219701057714717640650309054915051961456102150908488258963972543772425872520162747686426404954943561341147700487703339181211274389734516213466562572807665820789638449310837450868113774458336244164534644923370134768002323298942603555049007092693971008350191559302268807790129363966723897906598561775869926284667279127263786291199899060082308890723627886329124779361843825621122382550834847941315141039261746562462694824518345854389280414557643208305148021384459994020129212042445434164403958326420978811754108331946548284286115875625226085051346973066460526799641671929203121949677754351439798022091576797250565653878535623489960687861626993475863563783075556511277977175536980001162899896788576938924377365194770455391439410836696673580908896970411414591418179025890276612200104145081985104128299336081577366678208149829652788977970379150020051354633129940448889729542336209669419896322545777508892268813071708379184739070154249985693055101972760522428458927827378073497561806004054535909525242257213597242495229989081757207213695656384288933498290286947125646668937047223057133828736902585214347493713300868651242329555842813061954530439251146662943301707106492490305058001354385659984123731197589012575772285917588483952650999911940301118560129991711924611666019451720799240298010913226689613876308927327736684022682705636167960847945344265767750372330293544885763511753510853926612492722227112823354632569690981190342768825949352165735777363389349006585094531564269927475936405619127577774101221708139421252014297159079901730517937690829330649450890273805933653862516611966690687839146777776065681066652989406814616436404234640894363036835665324966446608357119092469581709912494201928313228464380874554999828205072219280082029842497557455915219435666706007865938354065799477315488680732219861573144800872147222376258335374855403058945928360764182879942350823698125383446169708426337435937216502484247307989660366551059529757137317126374282620922862568898806825291698481604307601088592234280473476018440080277427871308972064017189949191063682978763065406206713052063252241072603795816910928614941915088569785602907662181196709407715736889637273788217299933243491840938773305854703513225516212917195532595785570942670469835850319247651915766785622402422364053955393966464064153279964969014809306902880229514946536699091600883406718080580052645616995737128889422492196910775893535603118827270389177011144519296566275425970854203002988140399568465785886969937818131393455163953560379112624464530497556995975115063815872025841118470741013251472502664639767458373512300305548213748279491893096753984170738728105983163009481305163058776525212763783084264175431015356589199809181871045508100500476815282382380651816835048345560190490042311387778739863600158639044017623475193538346030603253997538483817122128811464046759020296430632365165812712522024398947164531105403526406366458422170233601554943814877278551300434696985419613843689360523438243547951450919318367116277765774368283546475685178892224617715530887434397684653275817563978320856998451382900754471606399377539496372010402092606391763147553901731645441992635792048974422145087976261357509536508096279311251340233679801970422013968854293817192116244262972281188186008559061832587314861561180391770268552007019093730483630041321108288720083296685317132113463636641844987974355966172546250883053858449381248352716567524523521714976911141502349407031238298816794883867306331131894323042439397679797209683030194280040019134427244268540913018004484393486463038098349464542911475984838582752077121075525660945888052983343304342641936236121359228161506528488327621837456258975767613009330690715704721357127619315455016186474043952977755164097882752520919784265896492586139586963836218790630442809077234069614930930733692618151952254752043021456126723055113265361564282200719508794498357837949755207163426913141555810547780242767625269439563510203138570952723617282385554083724061067963542265177476010684946042485115693530811793661556255496938915655931114188188919958669581658579912124787492504198349212161807347159213541703932730216610382213829048250792125906816825695825690855032932063862573503404903291967139018304325998863581166496699498111004340620419403015753937886299686380934201609917592131538752523264008292433394313153393978023234720182086992330856821588393275321377458724513524149334267793915147634987982675026905525833196981160036167716472399387228605452935620057226144102474573746710718852908365925423094812031595341541094768053211055993198698106911207434236196980641469199807309901628218087897771741735053695788713035651264917580286332639041909294059510346985343284374496819387588968788643415722272455850295525738084148035762206413805299382545373488672989913467681397489449685795923773388347312652966484318197600568807782796711148065720458025091678268372370680810905571059111319475739700667978439697172449595483440128586019286602397679283667142290353526706054915358129983397413947761934152001839598639734589841267774544723568735646801319321357820034793691533686285819852437763121790519854786624264583603505612487255875280733388926440045668428899430219051112656740763889039890162606051906479030130978083026341684507298544832889694801510031225691552082504860762068511048327802311448328770123753549433413342294188395051994738329338403417727273593771323104729187158894613347009257279607197729538470715610445268502542258707555184317217706307538140476289242927980332995837776714748183227198443152486820540937924502704118249203624721609707308811670358635614033763277090282841156568997000049895485206837806282129910174259898131128524994256911643537632866679130849356763880340575435408069558998274928201156047755885482144591334384080669127851497740746883402675351213190406000779406963892808900380402515396403768406985541828959371621021629176998709093826139929896527229473731581711960058003529930449659928992929902964482120191620542936159305086250761444599844135157807427810824582853467144296926830605920965591064572568594016308809551380071014373425069123547769517293667850019394896409081178450733365659812598104185669356636801615856764624559180689288513844079272650265959083548423841904759742372385535835201283565273748016236118378373938832344314478247507451050143169036827658621176083784311604072461994573490967217632112077621921495469003107279668594112101753689109854454826667447325434156909056463927160504488039406063795816545649614354515782067947539415877956177569955803567516814220210786051208232781588424807887392508856508713957261861082416486335394151187737287434175572662985050195427344927021622631199144677526333276392715760532539490150413173841707403244278336807305405493352342592742141497200425520829259724253380796532028849403371523115025208652057094795746528086807501521013220067165593967002831439040502758234776534038770369593224850951747960394541735806302706873728249327077768273088677218875676084119019848907110173255680733189416767499258127761802278453215866317991169616827319203299367174891110205310704455072509749072123431706360433478685433132723636836216861314761933019854884369365583484382904831521451042432832653474564265609612578154308133389217404364476972569082555778031715382091465768454187103782806603004544912958721752446656165668644880947975649563083191118416594735382901722281872974531455326636729536182083678797234253485409767902983370285998501686749835114089262347542632173013992592806333876045194256510902650701551143535795611872914586013173013383589503689844826439268503011505246720976728047209045259829534816910518977137904530621235044698887625708822293896676191050482676916777168637572389662425777331907870449530253988135339206596570544046088365348324051206854109892725554605104338438648104319986233251017588743699960996094540236432244613892091900516051530199003573041262231314299732823730433245801584358654480771452005393152595189558154468660704426394661138042936827618129872557409834411233507820644688320131321918596059789250753481655194435010231351931389396685037129711330483108167119599851815334913999293716899659216489558999450583435353010186827612101557260308785036173312622335951212856945659672281830144482302859611498527581276789890508977746489582843200285175751351606189210846069589341345993485840707388024714351524797035847475451122066922564390606353912413512760154134326767526005811751170933531836297191675315698151659653285562777580094825410788826918637127948402668756860897741684851555280275032233926071843594824834911599156647704814470651672196225150506672289946196946675852049895924604324663520295139656625613024967121834811674022816739535424575782515552401019350037360974399041801023406841738285411037486002293529953355443040887953070217100537747156459235778986405171264151616048281684615201635102805743463864825927841577642327300936272410928530410748913341332190487108614014523633991720010200681584943922846448117618229064898922461943486945421949413802761127451522100662004654564809333355206028335002721209745164038334941075302995707997779161442337574025431597093549691883966233584605399223055143512412464719164081455827876822804694584198519121612804169530805721359291171418827592292244458028048127839985870197891654899268770005439212820593546199922276229119814858973277153417673329585863359924414931145173608771406561968726457713725302171393454624837020298966854840142756510877898633374781445992323303371425593716549398341664791659861875770286559018788639565315781686912128961929439234903259197988346293084656942590178795049264017518337748384026055926166994781457688851548563482588114491809006541619606656020379812947935449442177734379637478633252180096887753106673137479578658371433737398089771804289609757823615965533167864144048582953586762150230780877384212901914727122695865697315503208893203354827554826738527139564190361000285053013843460092323852921357877705259166249489469761313903082804636231409384026057477670195329574928319842681780761126561314711538376740054941947891127777173064699062861295110295310047476333356917087363243675002007541353873466602374675088026013474041378811439362838905251151231883537684249706229745830970734271463577689280577407456234018214663870397313930503135333746378504430706927121094159747888585319182427129248152994142200526632191959284518430786108562016745505881596922570380331781256427683780579610229375778382099007872356787436350624114256546804469886318755571236789122926428282544481792996349346531957893612872731942927252263932459170807867399985241829720499848153448035112444236326431788473326772645266586390835188481191968115708355992821639254091152996194104110065439059382157791993103502095113342150959895324727830043109858990012189516273907356810113911273841619903944659559183897485601166245985453663420109850333856813851736619746838606875323363542632117065658005566960222025495220848410086680746802856049942669122045340183151500020447443589965690628030160263514577319810043561884897153186188754612774198265275861693219016425884817174955515779961925217982980650708197538550457211186272658645530416700980712559311541004595117258408715176862371164894433807814029988604427216050771277142694796720832831747692770219732103132672561301705519288702984039071828335576134559809021516886706824104290457280291445025482341502133277293882919791532068507053323785712887028317490818249066210792357260743848769995319713143495579283038570680201820433340087716623810626119337748698380205370390944792305227218103572760621725678908111720942871867354532652224571647444921228289035044626860870274945884841546778625563723972604366431422269202730972584440574970072078608346833995221423343453993050132283153580655321566880619116336489910644069508962807585691044421688483033671173303545779421698083217809376773358005066706642189025324446343826761788657532566453328065021473873110582181655234606021334459114108385521039284565855758944181213520096863519597667814039394953034003388170819473450093968631895341039145791679438378897871379510186586553560809782939505213480604959001163490964788741916680384237580281030766801451809717464118587368844640000908936475425272422846238949105134592202235879876712991583027776550408777078265587588738080313225497485465584735302570246932127598909215489319004479003041228941317546608430850612986730984095087355409619672379714530051744543767788936702234687331692466003614136189775523118605647118606313725880655452405653115198331232579817544753367696243928581829683953262832246860161694194847963954697054055919723392511992414528486073627750290686140630349551575271648646975423479971422566010738438190418745411571023976154930246796320513591677627059454481917721572548943305270876541578760530372355993126169677205672550364001873643155231749979279583522917558081626326554812565712790720445102054013074294480815662887828968885310451914337828303088913209758017696251171318910303678965465621490923709949046965440754689146706717783385537314077703821241275828317785635561718515258337360295269793929877271026437452090916194171535473683934639140846531745565594377049321283020944620418692319648487343368042670029801499083577747504692077028749897920542999052993474958974126302612855104050679415620843743249393117308820774612115142330282475289251987190275009287668285710350545041477843118755778387400998831060650520085323627606367003283649871773037282076912011558155989481380384156257393100203688632200504294165393594193547822055612000812053688332260526269847177431519930647186354951030767505571593433581330247990341856755788395628457276303205018309691346389109228295310249225911785119933170599380516085594321299608147876992319376915347666697737480513302918111241827091340719877810252699952477200937663951879503106017185663493211191861301510020404152036493245021028835462209403692875145862302408907488663265282524072617305086590361523967499725673345347619716179798307316114606518902801519265954871665388426235051092222065652440635226162324423032938030693033637727326177842893140382246596198766717325050044052395355216392283612904803735340664510291935117851405024706836616752574562307314458096177430592323852828526286105486001229265759085059679696350861155491883579780850518869629763618923611564334277920381220039963502067552847173883987066154209528141660805563290794678874263887200336765767392278933902918171428458426403840472307820757220629501129600289485119317645412009041637491231750213361023888596077210399776005862253465479056839842859473772516380730623301244193678447587018031372031667517982230330153826868623590930663487176004911848751724751090653152026718252230036785941085638352602705992221016120253207004671825637097610716583956053311622988129926339359559566435646196770140181813770697106299524483502221186164216951140460019537567654813171679129520698023878435399072053376397499841596040815902717879708487232189552176232040925167923797118806292448228143620881652503302474355825553812477778728180583209545722935649854199929974326921361424791193520403545476293206586665068616825188694772611792515989663446549027253553086660521484636204930251145570947109856271408766327684420603530909195535493832067846246297046109711617915444106517911618569967457609785400616495445960035107743407363569821875027600457760186015240679669083803398367358145205881627948529946386733183447125653040820886022326084966087101091743606169357301988060237470622888544003675814655774723347682358663001508904034790106109296277225284584000577866154867849374698222481800395577872792961377085938557828206379883854642390749295136380065657350082782936247719764323796918124353393684289182274727692224773211875793862460508597404616095492964094575293654292362592217594138353913168802900367557433010786439599146694850284566437935797334642075805625453074039935589804398898381798857241850342187809980940201255181605761797220146029302726674515001444510841153604613223670227244723425465327555525232601792064941530901664196117221110433541085345871567455069288241012354869747733178991824536289467452480287645086804353891192176981370970057171796920620749437049707025665946652319640871773601910887838513026427490800724940596570085455567973570434571615227211336453087551345796529650511280656593690708591416965882363154117622304012098648596314905868289243142053316886421137471922630444924575566943819468586431478052422428409417605526043016612769759690405016379698827104582980572854722446245042684977611185707824755665181920204968737665922168238827468803793963752086426696309020196560325010451910268570421550034829782222113652450839998908351816413027659669429759405023185801547342308679252734435341251396019453194737395302715060885071409518581096131880563535778161218466674650875631994741634617204650427154584770682864878725963160123365333105548802648747879892842050977471485570757185453080389777926308720653146336411503329723667083211624393716654034534302235027502018785813263601738944483566969493244255903550564077484196946455186535986907479330311050427655206190317099487948089316897377023830235984360062496337044669228122975209347688646911182015785305397096869344914653541091546074587254903431465919425004314513740128738938787386798525878735637089327411494347160201126914853472765975832405180453512263254862157849764668123929570786824759391084185583875920804698589509578731970454296314193947061523821309023696156294325165715283506566846343500892202787296917511318663222294679160300763104439959386043954536590369165731372588831678530316669518333283051243696546675861291373502315922420737806855238974270703688463089825945075173926693619654073317572145057096007241780097178873979883884947572679186415773997744296382928771653982105482542874350417314421287726897925849574830332065671589516766507458395148022589726375475417260592945478660897050299780965539059044160076243593615832568593763191996195764180711376578458894004534810457925895422097752011495985455623991826046244447717152638115801561599158661029625858145637739833739492365696677235003581549733767242011383699199195311950916945220177077715442503454023077532679892821266175167991220510906605617092578053210232482798710504527396314191673115460422917575115290708375045441992665734694267139557530097595362622677325257222440985672899654556869526934458598620499721496931808849037337309318655254533038666648568277180727117031288863114084161364188831141470349072186240335322003966029763645371329573504262599228572914022976111945836013242633273053155491245973635660274608766787518407141517422866037722805636831107242193364468497777102734766409958078744604441590443292237807650174363483163476951735603512715908470220055322026251581218831530699886936993278795118623922651182576680554569414633871842850349146602680209705926572352401723042044335429795666956118269180922289622137993630767367227091466668227875314459575187536604208485913131876625234075799242587975827355089378047290313495799729083285239927545311114310071869006800746804943478970508842348849766059470696657882348021078196609021725384424361377529878494910235502951184485154355620152483041158568170623318759133312201340851198812530717803805229942952832506024880730034783351000431230376496511471003823309162887490150791187012483658042578066028961845766541527925717613642304741916386806930785339688406929371195192088197619355359205557643642744724513079241416272559099027198786021800363749314238626642170439068767171971077296748842435865470429013978457227499935990347083335459030068752636531971369380330550536603905292984102892943498959908903903494781501992332468289901569233305863731662753710936762336668816863263553237302972651191218357621164944756897204359364579339607027174500684189903623503839723839413601123652120781852964122110618590108962327783529046159044361664000765119725541389662324604134595017720052608992075115716917754760140522411596516090137501885127934227345879555100821241624464475625254734141154387397114899228094565207988454582765475315604991592831831843641996987255706730171117360962782566578402713810549717150706253157113756030974564344109871923268672575084373568516598750747090469387899932811114614494268561271673595357835470235344538103931887742564655626712384452437131814248070655917438886158958325207762654265010469548883073896311277824648539654941822354425363716948504942727985368162855825131504552082849321667898974028057053909840203200756700755808124907636832399465509991765257213323345477444860856087158968771586331051031424622786132379493392205267011192338495784887701616001269562076468335008075524113911785078350203341929566638011864982848498678519441708420777389167024535851046083104563675918123506435299356084610861220680439341154233465048052195743110058520202638177171703064261339691159637793236976155388260307876983553248376508719228780951021021308204456488659929765423057722261986777058282649687954934843269872156833911304896707864248859984273442492448159687767122478303645524002725935041583489832852408548793410478728078599060102907348221626565091455809409288913081953010473283349353137878793832248206540021577647089753458759914760372548505429052945790670920113839942259169780223614102823037853779400351740386057311881425482258067635976711707862592016333414099308338758259384511838778616863818132566533017734754086015688000615890817738828580268091518279879647096883910834501759549362350448511550453739782452239559831302464592749033912593710541278776752695918783543422831406063300184232889164458978475733366876862207014917247183337505412558806428862502922672496039846352104113801868502329322093176809738458828007468807133241247630179028746451159302939985062295568968147372536372324585501162593989326998626680422163571955973598050685613920326173299014609322687522283859717149745082785590928686202469254870477917249159883966266997837818260472155120771027520077190038738450316221809378244610873347841198856701268395926441329527531819489260565761683216318246827680323540619189115835089605835261682991880739397513438115364134252933382375054228293930086075651261775367473561323538576924040652873549862349704865417998191504827677706533020592287230604536909892289151702842310659568951729413691511444035007083402781325639157455798598261003125382574442544755591273673736580050718425601457365566823994963509065546291235204079698265430831697398991777540845062534462730038850201793838517539645505894899566770102301929349077848475944762591159898247079282423948876182797974893437421491504977841629136749072433167608954535539399018686865636817711341717581305627984613112911735273823873262799044015292783901830533112620255943893918738811387531328356311638701493335954593083711574604327651070097056574969869849113157217822289118845098321461185360280942397874117796003889730184073645243276263127548556666551879299273000932737183294855149606471017858713367796355842018280794625353803842925650321040576445921677369204560110099236726520948347943183282291646744856358438642376517489848046397441458375057788297812264882024996553468457787268905640345707051617880570144997396394178072802973302260897432257643000934707871856698293414487197068899664444736903788780157369166088961192929941143813478726759965630689850751479039845252818765439250201965644434536090745385411026967125447078975412337125019395634141169363294712472104951718588511241376968839330049225207631136328988477714821280997306332298900172064333019466333878396561558977408637244814980510158291088672553289291355773065729118548679868425468870854381182716473722310248354650943865638880489768172134726673731439739554840401361111014340240705276464537719535717092776020461951700476460496124862897592854761070074905995613363425403217832723744517032915683877848974233026643044596167989683480251096657608097217866465152694735576842849344510029247386898236128279753387265015401395419505679305885529796031739672856542029468384990050395272921844856241158931759835965546323743067990448354315133911458199472093449052496780450581701433324395155036438861055080347223290936364046783215509441408252331081306704190402714381322833906147206320834790097955039495392566275806202179486655179887080393070402639105446667183511569029629637363882605160858076139248386076234637749006486260163102953851750092545570036573389972649555931310620933758930880068336647768532732765503545489014554995559690565153187036377308007550344425946289308465629041181942118977384843632108872539714660684827357466221150880516610147137370985345272113312276050241673312403443271519541675947042023682646656530856762499668108433289799697713665068898385718719042491616334920984401517593745473290279734361206713438129924608112071860683309180954730810255152894958587005546746089430108010273685878716517819114582997997978252790857390968984471287845370251013711362362646203535749496025177118712962637138207040057833706119317786943269018231241019638709184217353626816420941061322470627409298888118409517132303228482065116208205098687812589881026520389835877595172137912953934808262676130169587281002703194804163756446748723260354688018092355852109120712732959098853199268305691575292935501986457021803649760871037292061570936978747711938216859451471150453996747303472991560772118984125055357163284683232501383711876793504656745787423378490970324991542621410480051867371710788928703421983971746559914850018275640795089647898177374997815099313576924050783154995483195448439011487165936479702385201724028960272430916916247580567824726917818730924876988397425830995848678439741964553572477620815016900352070763888660434202839199120307800910101400217962898635143662162545011123697134834218038918120052233797033303332473186671567590674198833794972085736595005410682114311867293037849540317015123643144935912571835402876766375071812769519539413405652723951216733334001100538266299494650304374300751843577280964865295370313341681999150077276829482248705276648585230581860129141350155927836383011197323444071742473128393681068399281987110236779521338912415061713175106664664453941975839688701944278625396516382884575670770930080320127478840664701289775326115431863549369262529220670161800555569462622049428801411262906354486602030345304263882392011651182463988348512363186216355902988660306010355703186282342745991541410853905837119629737339364512714883728704635644742221140161459304210602769643550296263348423392377584967037358984669259911273033689703205207941837973571436244461206047696955861490549077240106925667249760192606641648818970019538575957905481447665970737793393174029365101116912271009131094461672910113694400651822502579394014512712935140128024624019950950679003265109534921740836086550177544301200861314298742544325626250695339786028105814426748596462930505961784303906710963177616376566415729416809934654970888849626620038810892386740165808090060307482993028260751900378433280284123377245255264819518937624211464679274842129629798132142752862974420289819166645358411510778275687340723286073447108989701995646351606777251582803804778980684145108830208767496305667944705009347171883193094389648921141613587328668363536716793305060734509170481527437750142310368805926913638662220916843797746494812167321079249101743211107804507677112926936340942918478266158433553422589349934771936469055951311254467811745455939433244784939173222506910051711800204525690286676474792333263955681358399279653644134502311159598413280299596911726926955656021533610179797651784464699163260775010213537834605058489453489633849365809807043837285266619932023980962744308320674134294453781685790576628360254971491072939823670129171520368290533045124189132290985301547972758773832075383751114698797457973971881917876419378250916973729383392813214053767945302528977501398602166335193591376372981846292499879818499032071394541989782131074572460652845761764774418338800244321431591720031310568102054847128113675656433337499123874278024362191277772895431159315511466577120106097836291628499152381742925988978603129862526412414315142627169785150452357792556126720075455576639903198655066952227403315219823947095624139112914305793343396776374243522892156397048254474389274825008313205054019823258745272848981228009172619865346258956028414260105549840113922187255564905853068727300084031757537947196519802425335597714778759267779581249069457997926295766786509852342072099318461439382216226643842289924022853035050330295029204792152239333362807384387655690931701815695112806850741649660583593866836200166343332538441357298256362926565416278448509313997800247270349959929915841184137240554331155886485217434650604240683687181981176685569407017389199166660494074604738272836839131779320742240849014339693014999129408487825540473403236018307711279100764167805944445431056456528364692201112088626770436213671706672507464132450724997459835319341652097158283247920097719740927950744460672726338148896571310186745655479161619814197748568216403891140703729314790137418903959224328098438641803748807312155233028660028238673995748513748891926498370436885233872701583457312755710612012962176456358985113629767235319465574811417902113996209530722539824527334124244012238051286104663746135709133287843115913226287041239629121913181432949985103100606194753979789706443579111959158352401852212584189478752245227802243732172922795024088191855825148857244068952522006802946470922834849892043002696296228148178342260318286258685911114114992930631043209392031158425483373747817785856412300308101878752193637139783114616810662511264688461807941838425477630447176168011935622471342378303767093333251209389673134280488241624663700148872153049599126083599622245693944364657301152185868595567366830052921128521700547341992218452001861284942708161728426828602445790702193618781150846262581116591411460977878866561177219868052738466407473381484303270218368730860102198242733551517153973208090435007336944095414353716207343165966692816887678812710912591552145715911386927860382262709381403828270467462259471671490945279581311857353980355078079921467415289973290556445084895454990892523840534783376189456513328678215762196958682687058479411085008397532807860592138802159042650653305167187322413430983108950390969733391537861010831963461439718310900022228353764790701942875519191587115382677767992060497327246263215141940314270605181853984852980625943163008312116990658718075967060796315098957919569874460466661778447027217416178610339230126299414209920167698264756955516437076923649522581238756883044939537722535478972288416844119091835882458097942611539541059837400816045486171265163247751810861225252956650202913644980855898335432120498887412774862718860478629219594246296513115131395803286849974008935540648319925120204598440601369996443245015677814631002035695221670943424630502486240394533083611265421725144371722021852175560319052061497290275677176650277201923251181431744930356656815520884504732470078218939898782521268492601057667071219214590485552666096050367348299873848080974959385865495523379869240753169059283083740028559241444877305961285636007372088042722371036977127026450688507922674836874670524417041284018095823576700137358582348373189738828409824392576762657356893116315142047993703906502960863139333938121285265348664059388496164386334346645002161819090630719197765554996064134641434230303709982197488416356077339600873517356658679788909478669636372839785512281887773623223541292039688211788969969188790284231168679409050451591983121800314277194705868206004558944314095099785344831031491180995412254289565780011867657497403400199322227342886772028811381156585403420926908943130333394279201266852988264906316547019984137063473493621586664025160650586245212021146939174474847185184371269212301548407039160090717285096612093545369272880570495988361672047099293759774357683035748116295490134497514226000693297304521750393966707487735091644080770309280440457856210111284663666797782340890244229410322373484011867563630322761448883914199304161242054386240247502458636821611396031761274870111346492334623349300394395519296506772010977806917281387178284625220024982057493720899231572393452350707198295159377761450295632045187065352727777880553845839060763612394246581470403830184315225987301196852931347366642681492448785444170499705177498579464102911710348806307916034395089375344369849627077575041021680953882837993898014928681270784953201005449197312460729566048155370223036278691252894653759034431067710321103360354586585668289464740773280447396511355232653757846703696868397577274780579058203107289285132257246551382123377592594917770824429129246455555484689637306685673525877662890010964663052195560844625185895040080342841368082759555141676315632827051009778786922537290450470596780444867231225448799389732958959215989803002676605137002511970148532403688424132149187225433712877354695712754818432580986751208134403979227532037297092511105424481899667465143971566010294035599488350046414890604853364820980270796693090477666453750076599164021335223200173830934683150114535103969509582928501276611117766706253274748764513561364363856004540245189720554495344329063603473234569058768014978830585454314344270300589012092742849721256443190189997887635520758214461557669724353109889334119852769031514393389323473047850561217244814272227288849506626770937245923913408158848142789839742325341628513496716659006886824147834603222704687933835413612793842184132007845258568315717166585287761780622272511731015807614315886123837993797338409909661968827693694914997363142221078975604595220705569149233821044798023759367099941364415423842554372594873451119651800835755932631072777213445693213183360641974964931351342178622070340597862705097017383652345003593072242765214631019520536081892888456867892486969656826843936649898193313915746371235571137049298208275931744509050386919819951376004817238352413799791836440656361566237157733229067407453658348417296445098528507838261119681405902203423876399160298124639730705320013424935112758389299896258015691394703031440318649316775473498014001866356868791994942032106273380596918752185728944899981475782223142989154552935940198683133517535182983610667740383191213849271820784082333270660791790976488887100607631176226399305492607294106842260004329859207360076822546704901209092763469616142295171412220189761920189101125186171874964726834990908583767558809400831250512636778811589693819604334443256959789056940916454880981511579773806404504797519645445897664848412346680319335337085660192304849406815529564252984150688466183122199520604078833583340064726103793993889454646663717239441431070740799352357508271372429420549980499529235117541145013907089252176436186596852674753731396313316360387935011110771623930620753828082897443807714327706481900140089873931104012375886613315109591662428097987910508935532931361345521186316504532926991949359685551151594883122615924593025632139728265954302148498360033816865440778452393143940779323739457048928618559623542405294177257749240199531053152385486948398433504790701079698987751174805699026653255956351651128038098617973054865532192423613229130294801520265142695497975876429207856473342162079745708714874589230239456510912311141812337105782324652406021554609650644675726427963705031101115225164567999830501707406479061233464883139378464704336317393031462729748452119493504946153321640919800509389600671463657607673594030003930201378743514535387850494882838094929981757143060825598466276337315509784988819476183632293812691173095399523922768999702955998984036852372238690306950035321557018091858908022909075137830920885044594251438525672420365930229549744402527529549189057366648993118544043609854826478385033449661546985174078042189949783297086408910103522458291474775170834602254599181118757078716108299172854239988601031701376829128129629596829768541010672533056695942049037873355347326007719806143075981072273292215738290178779361707786865540884937720687093726047054303977123501995228564536009726415155979855129120893191645449633747922065802086509857429163839273164389033787241666641855331852399355843039539058397170744950811205758742242110555705133937352444116737489434462275804396048065461448564612594687786502932099219785508243252584063739609537736547597528668196038233663649938076754271844662539804190619888092179865403014713704394447476221480326031380088106389660562639415655622980759444225080543496333483755234744744083895109698103842702451601661760242961360638024359860678333083804791383193667310638850528844291348104949539204506091037530168339647799094329698191376026729232171112216513510005550737748892233018738835589084205350786874716849365027366685241565149326158371156787252011418626848386550875023169656019898696692098951124370984303427364067360511924073742604462936137757288774543290546952685975868569744982853903664598075303880733060135812042020102704014226825471334520678644281397570787762215598210926565599255880136235003322071119446144784561220238501430149957462093002214282790811073578224048973178082228835133889169155416104395675572220908764833391532713843866965783330778479891451547719157164717787707746066656502228415385288944067275456436787210958351051149640089285223024124776299334776464182748557251505954533881778628266458311274344994945933009292657567201382101561291833361052469440351355957640646206115157017597143602161135717945536562971321755566953115995339776469249948977799308857305583370842056030697104382954956483802618979750005171466560303911030403358022985100343505941892582129383107785464440316401688690289086033772332442126182129957268952526776193084239124995097579084822112133012800308602637154628622461814191088820024538826502065464596101220587532764162818010475734257241591400463801362837444757054608766593452845369909107733527670324509682085752232243579646127479461343858148758221898002968797951537764748719237441798308166196900899151320677502543242346379123606078928081442257300841145849329107655363863528025384115264691180143611940175802892943723209010815460664379802636698682775793562779852440603878191388305539261607292777746723820702669892013046534016919489931578090919876751853762096545772342431025252471324863335145363420388537820151864907942000482472878991181855471222864539381234286908213115504459687527832450757164111970827489562645147070514961382108402092682026149819185953655259799343306059126532693567254669980608416151598634951677297325135664734124934992261869904095293146256955926141672946809248223058300611911441805160069468118994653192932540381980195958055894832075988549152148418981189111092320199639715530366003396453853552035963670562480205265770859146991154996940251526142813603863528084772563553875350966832782090908853447858159958688148835286495821071807633384892703834007247766665942727283167093390016273480186581836264997181673530480066063430577420595691563487250880344592033020768866805741181506211734727672498594646560053586699100978241537785044331564647778824783424069313160749986068641123237547092154947213812609495512196641177971990182914164563244522203051959626846213875764802450498319912434295367819813181728334540298933255733171025345576816456635715386044803047389746424200078956196822987517837221666429654474340697497205347225050598049974314371690782217808541219233470398360360075726061513875897325109643829185826659838544428337285238075063739736359900444498726791070785148052066771128879074545937907097707308778165532897390200899153911696923583783973536436628862597456447048865884806689566617265494070214354339294799543646688168866080626955003270865934516152337806714287511165937198435875426286656426176566272788415259801292424426318029044303326022927483096635914431257615773243157180020064003402233024088390796037683192023179261044542152823492361892173478410195603709015186931330966603630803776057340156732098310445467484708939957715700907276866041366546260479454329981073192625135507089258211571119471741659587749396481203309562006250995056385191063744346501094833884473501185561309114302588439771507388576687476932207738520533959318089980332203846160942156242581400620796730208388270876202469818282392392757954099748277735540856095182337035786842534993118276015214839490371510157778690560813225513276700267152555700281484859658773377040792662057990083345151104096895050083452950177101843377755648159009657211611873539445908188763831678572295296301800348867846726658039658364630184231681932927223355539350081640257105007428638863149724698059744667913934047934954885468074825309271514917230751464258829674821012095593505525596894024577052170673265967570356685911852506285624566009093666437725218901827659951090448045571366974787223531817521094565432306718079018648392666813120184881481549589934163355727522643288923548926502667862348719205820479464281550861341666730723285468389965889392200455328533732224597679441387971209816904228435858905069834952439013407669653805817732136319234732694786656503525762531986765338871528444095213398693570110542016458604848660903411378195134889952474229965016379244912412669246160152647849676646568628759948894808066756072807294386076150006581906446498242041403215693183154537410310919996708122560484613021849517883101342373193149657732090225657346590436608047659936438152351128580209599095456432525339183676479101943752647927688659098052441003413179268939118978486756966761498658635551700160866960266818175682002508273884591146496950959980989180957115800286761298158910280086059933242163607333884972482603121650850430315457962442624887392180311420134946651749897102421237813959176935907038383773555512006077783828557262810352943053477712456951596538205069704447956515025980329609266160087920832607379059119371779817774235712613206161787820049688608389245550426436161321983893241600048111593487809894648595646407837422317246262466162415361852173093697041042800157992936126421595094365809048093821241768668801201048497155893560508662706938876522966070868719006806169115239276454166495602328978981460538521757155393798873400380027211294973125282454840444007430040398465656615960979708329694580377140520599252825385306515279000998961719569964819436359017103512353412254532235109242035871352698040793607242717513319882626303272273917673035269794253741982361024112218567460042870434301939521001202930697000716356908356337152686692246549682042880036451352674812640779796098046117973294508488777773452320861271675725066242276588252387344553378233954780814943013903134808793946854970327449551012487649343372602484145287343282339543341177195193448040397525252672001493006246026213458857883911599222099755003128107405714341541622920733063489713657661247908135755489798062026843457940658141709837487296640057359393467497333930075725947290856102224593887128022892424247084818135096808079851118909897518641202600109569534987095857373619345409303126278884420579351509446529931479434892815010895587255642294402018520916085462038206277887908462853521419746158344361373254557913716117198711147899726113583198225109091544290038502988231081058735911661861679513933434894716631520666975850298043885649544738054394833971283714744187174009122233267761717775475437320139897364176472718890782380816286539504695560489296349530269096115671161269295036304391581910755887686824765455564358513610845891209664795269998362581438053112234606159078630025544125235123540436276582670306597115789365335861604405591535886337177047319502453404498187357047905346288139235890637981266823997564231581681701376160253995324639963569490169016252893387256831608699812970630471967081219844754468526092665730883613753069438461242739798336882931962498676846656654301382283277742112043289704887657687789828976079096027896304144172912942201935992731348836162152621390042711617921958253726694306724374442537748668861344596721802376711751417164932982919975708825449010632937364630605529617314575827619061452816912841091485914236926174064362384228911815047890180321038972928444635277859560586318269770449468530432882015531079457205903354677773592415560218770731589757022418062906564203825012419261593650959075148041876030295983051377086360390118865259461605390331970892324152751107060780679121770343914743003478921207643254652801499891524051253661085095823499933600212449626519755292910902831652882995318449745475409590169856937065920951291182058196336827233918890657811740038773570433815987383875523607828931973556804678356197050470766297005823895340188071317577136686454855205280341160671093658430720764899332102350378910216468057484680879440193088530787207911558995357102102244542798303228602580447397067509714102283737080791774626740410306159488904849732638814251644717863476851797847660125624304942656339531425823286789081209672051455417526055901280543692153440109223708965054905732043971000062850791325024811183741025705545476385251212315804946723926693174670092944098207822203947081839282119177244895262227338933197392586434782037931518898229454664984896119192374615459587140509093837676638066197208259236328479024157743621744235654455696530026981274360259685132862758453191472243315158382120477168422726667120467810252130130041397087754914567342502171574348091609365471116378595434995465128618081982292956202590395148813429935282354657207732630231923990949436686097965804508185307432163403966767570649397390457438699168192969836337100197991906389607668734324158679269791070454470457043196433325149588181290971963375873930997653148122722370114198018978039466878694834846345728463672272052180115734873585597547187495532549397565616184463859000210866597086658662091384022727079103236777843568519118782429579770156007117428206387603368370762852627760114992328377688461989154639997795666319221886665673536547923919664702763242850159848720167123357350458955285390689115052410777279141540943030182126620183449790424133756655420633476992834898137331168560447065655079424812824107183520520311188052648277211097125877560644755700375321132671884381689366056971248526424143913101824786136461211823740659483484008342589847975744021757176544071158006814392772961996714096163096166365503453549052311355891849163771965190167451994437517109524733460470023349827009465428664407885823698941417510390112821404381844092765369531754716030050961626622495065442897401041213328157363671199566571250917375638680088830317322207521304405694503324593561853239946200067963179071492871114706160919056795298434671035449021529462084779134648510085006274892620535877508107776762486301330154014093805623848417028559486058620930845842646490440347283312465894782601399323895826977299978192428312042309130678524898483415910688810066361951397481483278678573262491945216506301782568453030257256932339131701969319612745314070352717887930920950757930442219646728722140830193310276986138741031096232178481535360616130052821167560790305168055004196115092088500425037289592761798231979416906603935308490811473076512325402974460856571084189675301141210224319876368644077179857817476245185270792604079399847217824884167813618465001738818129074533692006734989696754768083393108894479880582841922088839607225840535274718049427352970372667631867177357944289513465368498423785292143072239084879855651980216049034980027839662073805366403459524622579810689764979415295001477234851263383211362104482415987440661082445817182622325288751403958057745620511937158204988914783710657938399569187853228065391012705912652248533907987857817468798300282386135544761509554335452975583856488836088384316431129894326788936683908905149254259117588329895646992257324930897919831281259089692026571970394114418634019398394253714172517825546662548548757394723688438576018181732770642650256724174219754028288096674204642164957659552048518279888878787306600701248053832970931910417937876578120673861333073920896320378989082135801184835272251361300985361265564458872751761984506428566758265849610916291906446734186967569601429396196368550779963586662998938597351638886034690672281875363369861297153396488864646692420350425212011928700423466686450468744698156089920127196825253928402734220745133997203756413362605196294505980536399249552738870455796812592639856915191412953303876150990796378422750568681091441635836407502989736676748667631497859959855103989498971793471765611259824811103682861221713835146851939698839688775783185068317394607489021849269844157536145820413142775701854851795380868530478199146267407174203842158561113516293106660125249239929928014034478805809957694977990593223131389450641433495225761341758140438905353074436913940452727074284293526530338012727879288331769774089214024070530827904976908003078338563972004583148621001897121296329734327859701493805963229091616448004269067379727364457069897753149527277225060110294819048687080811937722135956049721246256149660630778614074225757019786039801328846045346079506574090015642477370851564389251000812359772291375917949541550696999827073475963869807681212179968792177538654135757025225132662319783363896554065638394223472894694245245566950408457084942144421255419946931915385235583926199250512173720366132654977035367072431891270845084641016134413103047966781939681016347163505362166232655434176715821227436940554723238719187488076861053462213303280565340632991387869960299753936195401860252472502656243357873501332762444015319211334773974764537353884320471629726578071211192912527939481771491128006259179091170283999167143873753204558561920588755724630802459651505052844252383793724627356668683814034818750676194702463313899662286431240977244726299236660184575973756637696834709679196506086819683283133222526523823042246461902828061942730690655203647920936719184120779951464932789943723055445289598850388967329587165962168428766558037670710517103355493672725145757890260347984868360616574106830897064868873092168834472634899633575706506543730058278119206675520442664257130806098105249519640677823588968533119908006960001022000795141013477033105915180998143859526972437979366198355264829143762243259297707908963024607022696450106105636552103682859388752600787604108377175399939492994681454142504493044440460832624816811199229740434298401244346965767949625945879294353701681851682561805338320494315123726478212248639320940624523712297999156380732224009703056741330577632363297448767822311298771780481437706658990397874829118099024666389766184001911615996748212454909406616181876125405627091819219929400950162315927612510045846190522142803848864719993519539889747817503423031791270207344008382879125702311079819624259946104384973984793151520380849493845113591423843789288554169763752252454704423184036329995128670841535041983856521497249807454420608884773135789427853081802357333208435492159433049878515187610097484587104364907639364679029938463766005239178102145600790091271767147034549347044533250160760038308760630875209716128223011172005431164725565792407786415900389380403708930275033751471154709604462833926755254850294064813866989536658654448414333878034744932358226921942310202594490502703603177541973893865875995468040100743032122711211379700960118409587616533490804580309519235505577353121065255866466015693867414213339032454147595206589733157902945607026545900864961685641907471407681007091597386200176655367103250420857663218418409739100389277267273373560430500157005870144831040529965754605371255165142980214655595517170825622192734577935190854267029413883583290666713502944515427785635229670337309689795104497435508708119415558821720435434983066779003896446604512742259556327253612976381143858029242389159094780362935261545510452710216045333613376622968487645295071686878500478401051339894566126667567294258483809761949109113044001903732028699124930789035560677422134708741133565867551553995539167455061120350015458617543793408577056841897426689275596894417456915168727699077406611218346573200187954749694460238231515079244450260793315129732848326495905490083610961311443186807217448811374742249845380976219803408819767503473598859503633946683782226924002476494638093491054826064790929569530214994867979997297260212782482353076515804159626826849287705028044421032515127607128526807995765568191424413948085371209901324179161603219437843919040063362433438098152634176643199639666437772790580357073109053788274977300582593923953846880534060271006547189617927949468143082491513860564677327866403675758783952109280364884426267689087912913346806658632489756927190295515256725976020961468155121923436213391645551525228103208988294704978894088178431254012487230475316385379558708320881309100460528026229947782595926124378417692492713488069798389185632039152407450721710416254653454891913055616699146123635358460983299901067701319355920455811725617534294403094267760774478299852513482561316166680222168416805177006721871964345211303850235462525413886089765910950178175978528164049650999645337901943464065220614210994846107408243121264585546253594652888162082149146505246158984458168036207683090108090152549798697848248669179110480278855315690775678294442321415522574284485703006547529824369963125960023605151018273343325543341346367183331493000369287406820227255781535920061006428777949165674728438130986149624481187509512827953089872700381777447117371089970912507409071029787106961926711154969476951033421317214475549563196953205654815974587805197768161919593577282229012355029456248346333245318117267333539687327775127534539847421188186740789008847979004548777166163107990514919406448007668961217512362300436202640967135327662739822198728441781800190383934995488961968254047722567991108486324685625591422809426430373427027290479316678887311733722560410464599497667320264508769949425928360563864628105161807302955720605060659380011141279198043180561400513692870697958091651220597588524713735308112391458510943915487253553116225645537025927468386450959474511950196979411991020539233253281168801416192362784763251617939348247954022570444291136113629348324301221155192641923447568292819518510034882535801650066077946695907796904024438219156437072774454791635837570234747079588770960613788240658016510128070159529428952373826991085542859698203799848519714977559525151795432318896843376407476381629267483614938607323024081164922850226998227703723816240701906317906824161322802524537826595003916457778515737784220697348574151531997853466424934887898516402930930547707425670361245518380428542180497037897299874994962313868279927897537871175566806277880526081901444416674366991522671962965727744964046853906277050273404901727448409739459617902053236014241108478191882419028833787898026024752403891268291828848160577218677333988406590835898488276407869877303753719270407464751749254614729839367703393541979181506067790547426067020425154210328150522324598798321791791147559248767148324005737508377131411745799535853528874418471999514922343939615810655660130690593398310554589816777639007720999348249213342569251695297651509512611752234823606373288132913609064035776296928302401241575542996362833130101032559970421455487941294368436332889756735662982617004050764653969947424720895992506328130824766656032660502380105234961933043294759927901325018136721900115759771672874873938861800162385785824460009900740602327276305246594740366721494795379937306757444571381945691782687393986529190648212857823845056040821368054874651222962198725993153081264486792483861745771616132713663025519052452810843073621999166873927643299652032029075263369378006417323742943315930813077754000701356052653280590237582268946911987161915311524539658891568786725953473320394093929758350603944845990185114374887105705426641262034360137150376416785088276556480473210532104148586222244028083006197064839274191911503234219496847116625148944230426335025898399376123452043266543471508263217180738101159485592070111489388369979742865481361912483238680220022589029832293003169883398009231169907765565158276051794377659268591489933963804493878623746318500661247400525779628239779669928380017658325614196158086999159013550672952605599546748116160975307384938152460646221128238512541348343441551758196888606353678655808135202206399444107687240175737473088202361412871957632314905464307069343269331346463206477792165773496906400581251823724924415202868971076611367769929089318536179830096593943757504185555218425548040728920462438982752623124156204169904034397552087674596349295596491897382395582770280576036954700440086754921041988748190625807223064831150472108583647496811556552890385038999587412736865046882047572421620521814533370164641175176433628885143655292551796432528345988923058898588040589374603452978876146801515596600969841262362535275626221099794289895918696093472523464797475185748044944391326177966994821775378229726915719296724510403204436911756929300853906491145882314696893109891030665999145733206040543790485835612809897807971918705919044086783428364438364275808566279864172363547182824913651721820702336115891870601015743651712187528590190786634783343251595582280496824553958905935191187835729878253900253729535620127947095679839392081912661741272761547866516704468329727192921600299243324384216618715112056213558288854227257677719312139196356462815469757311463218714465506501563276326386575668874449001966096929928720562984938345747195193985022037665495322290133414562540771073182378405117749232810420135640088792871974168399125436269889143783270425615732815861613279277678144005881939805099919647088129451712322526142685142621545762412226747511492062054227547304929352725718620934127604788964148168550002026209915929024799725618031692561892910368978143916482423098011327235208486394048955507214518417174910767395678204684850077944635567291141963140459820782972833465362459436502922323460972989333542360786400525824939915614462363873111206427776307268791876428904898834653045729855217860013515766654872318622662186863238805755711663603257910683281451332552440217718872023636209356309323133640103659900947470622583374329359911884078168689002266040606785807467165423077744108253473935918069713335493647585056737305823484486915144118322771236086199809692747290141815135601663884368555955279235211096745376172359649732949787795144621914538317539976228468571899091760926150149004259295999495801734987128709233224465260047312033717195217290032697568225774943454537090795778479160872789578736898325559621549100127898339496013521617678251186643293195177659606988590641195300517943821862044963316362396831425323982645867154725915165170020602301428611093573135801187505934159525194335775074828465288727968389227111307215248990438848400425972704077125608448869475361410532764349798280976910737839594486453984779363107087763882852811305857406631335971263320462125782585728570263473196153280787352647071259418792500623453432948872599548450900273087157585715738374539489722721692460886278096375973926724587671389252167605684666973549186032127474222477506731500225033237290439096941250743876833480259359308887528905158008971969981802993069460406575158879846493767043836084271021527910830303406876685141952182414707220230594280269409242400160318498554551158368813937256805189935497696730273182122940150950729590543182323822158142028108793685975616042344451338136811197170546411645506530720016801786805439589216983635909488607323339293913565430208523175984752741161701158184199337529069472273441891468929775301548447234081360206158045998466371760618941376768984678183577449028314764189589674485755351836601050613707358508488019852864992833317723454225357459325477009451442742027927111630282927420006901752859047647676665839834219621356931504209907471011368772722968914744778369641029408860126730513436168304174383099106196599686471726530671121355987798290933668402004604802630609926247164952188918988771780526389900121493348640118200752943064149707848042825510631271413555514734545499758556824515111556997703679515270407995549547483871335001009610776703928403518336805423017776660036234496287196564899182255530693198953897544832703372051311823621126445627188289745007218852251473351646164452371541241622677981272705909232387130248022707248450011218567443777970700917784655543350771723176591342362601984182527156741413469836801431187577213178663268212851309609455565729734739461343086006483334437682137361797628836119552160349126328282153564581799731796868456382274922030954349160235220442285750560630211642913243388688069380993269865063658017275626953275594305218830627759096200579469761537537636094014532564651348400216686526323512229912827202325586253577454179638861215179445791305269162198897099352080172993864262729101605965243523714522598388784568822826862736858167551862329487360538988148968754282969714402017990761911145039604960900697571626592362348153524340448442129077645333956582429460902579006716823125550150202421981663456776626404611865064875586304540358493246077670509061647486002568551700984782965791643256906407035293348368791306532992769423842413053996463955868449032890699113794306855497270932062525062221908287382192077752912566479380928234407407155645115280630673787280730828295229651946106198373255630143071140780231819738930171746611718212824435362845156057301965040819588795949359347387603622865234262416457350327052175846001242914096800884985940023390614969624116302296272131333846103756801478101555313481663177577766980885056803564314171760706524073695803456749789529649855750569523300643369065575951416775544798573276437976083483831704828313048786086936443142821764948419845094324446722261799769220491021923186609143320508778225320387568495950371254187251496341339240122140970897620061413815565886849097434478598490573717098633738352804449841976697036422086190718128731905055454667678798267405736213238889015329215497728014865960489966892587274958008349313722682148587090823776334210952802760925080229463596065721163237433018608471793907364924399865288477717870284489110790935689700256572791641205275644770892056058907288663145945258156301272641494894886761323499492102155845209437999705431518754722220666889276268221819354093723770030883520476873485372222713665093209457888039884429804238954031820572533896765820750523675474921026564559676902301810316150832519349739839673139530272221764801903847548727130982088091043602986395599179070873906734788762041796689682417628175583427157616173522397042280738019200525242337389491103323853883671549063481200134049757284132933874997597800270989063016116717289831413446468748896652507247586486344161732047660127185329244131605415415651217923906703644402789281338585852674806474753603263879553320392713259051508508237558146820534582417920526736331343161100079320260992113820133242524419026939341653694196534737046881065583798289431505315396623076034495679978350174172464620686683602196094149467938087292443821989448349419748227986421362603965712663130957873992431355671765681567795205641588493685792674091474933648902532583721329655932600199762252175381580175265720925885757765823024837584014264091132499625506699974940548196158047677078092338817314755521562266978954401102360301582578335976860096277079268859009357160943251697423943278797620774289398537456299234131346318699743920027058672718875599394945809480927851290320283753334685461701630667758205572083678316980769522453640116143283960630017884303664429691242271151800523143887082244110968323126280163112634400725678968064441900878586645878276705039432553052070630792531679006038999933172334148648690054924438618769275476097402530142280613191579968070393946963547126219947607979005509288014866066916532058080038634957701944094663291973879383016588117744827221498560099853608914060879683659748837063866103506384265802251745507363676957406372145551029000931178649448922202585153739393518407270207125427296484744911472903486785346158227696362907144189673498802072452178059074704766603712844781674546563914688181666174102586790019293437497476121627636264115625035792174542628417840869450324516398730928140805582427726746523108446082582323927594625482287509118241791015894392160808662168740119757620835054694254608614205826535711863999783897921517346862183646109042793387605085424141148432229097980839513553149841645522250967731113468148059692105092337419733890754630982666278454557768211364015210155998102893455226417297074633877331720957397054160817219021852582918820505671572362263546796667775568610616962397551978937886107246505135813646201836191150131106145692654873676063367244498753010790546036107571090052982970983246911520233967973563137345341643682178013372421681929205876242182527833315822918827729568580858706544984727799913966497419845091816709815863611135816437629868391488280869761114181023844685189366210717023614057265533171932735579778175111360977472502418774064735638995666924488198077519413785761837418244499060833979617312717955290477180847511491031705906243238006010838840315761158501984164636671401611571642875089433673902684288855755068592133957834100587722480508664711105652420468393722816807601037566510120423059825888344538758051016630101837621653225151883250919506695225074114287852562342463567267124389172354576562365218181541177980132886132730319196911528757497171530136681306248220914656242107244292947319541057058701269667436846025164186010818432697863832770378848915074944890902035751064223111746504099061504896932176793720023681328125954143999884304270039987620830786948663873186992431713643773470730979049475311064983537973063960453074795186935667004018486814585193895874259091734086650121508919430204204165869867327408440442597901938674601940633287476601090136466788314633172213963701669296250809158135124271574012691721265235301852436440393317948463121746566134129603098656482669692411525374884322410398965732787607997959246282934528888089817024680028221041574769603965413237074302492338821531692851348812152620239366598150925890446674508857621708467613637938545875537161139426607107299882628097320288478121537763905689220362647120158108603404441493972629039776035328782358924064740395269497955788995290274095712391340013973919327784777769496566589576275448792077400688293032242040593268870271891109456462616631615054469856436757612393446982234138056127359211860039933408095821753934795005757228236016306580889875096257417730543466554605771863637426620005721745856192135694759909812918233032441965869883992445427195838864817424316306672265630377281441852529998610860871755861655332263814608194337740411955305815548630869766411928950926739184821717937563427830858412781955876318914393477583378914363558847624601891214248244390583416811497051098220358460406310301868533008975780375187417962006278723755866030067352938529886843085960784707574548572420031691468457254131269885950375980898458298421173376565456037509699196022214426381801073300950832003372200366247515141600591012215221090751212708153366548764211910725598836420874626627993499223696369015795800963860107751862380263579468810343305332740110849628348489327826434268668701320375237637220607944958268807329103775225107224769360761948672556508245847910102971496582317127598465477496668654884536482175517521024168028769286185498463258452560093982972812309431918745152575330170532310533943925298082174456394834893444911004911413126642272159313740509385944536335277096682312820640815845002017338909722385250547111366274599456022353761821252708852695411713620761197523556444065313808804791056081142347692667676090550856155151603564888610111877277178396678311514440139786292292096845813029137898576526947142492230055643475247841878974832495468010632042168137986419368278367830099844045446843078171371748932583751394827080323558443435438069286177887055534759995638845293230189081657024089439759111414181048084756913099318070363210937967961859798239347135505222184429599618766000439258707045823921358394348171249388976027386516246417725905386496280292762954623152117890081965333280852885684392553242689715282738613637821597405000317653258712651223096893022963263666042685219714105814150290740119311235275813384469679067571087474918786667670466097790978069923164602727477969056386119905229074355665952677720860482698708212057622934586481252352851295800313012028765171015437867996147087628979764457669929816587884858115327699064560035015250892575826107148188931593716776896538807539972456866958094518136319495964413875088531145973222776073871597660708394728460597486147997674570208338432291162045528164861619090251913750737856355407015154437381381266633162618140801939682451425630427554420734105388853770529429938759740503056091986364387491891242324593309377189809991601055174603680020671160160168359718882838469560238641120221626268539075259019234793773878382997745800080993213961669411918778750990881546761818307077139720551267125292694986368726665331552002003810111087772816831621045707079182308563390662747685776899625553560184411689525204809302776192845023530450854925619247547992132183293885152553361587857833325531353605564744729808529206829347844856945878820102442798548448004205615905285486151993225192062175828699383596990568329202297760683854302668517751417151560579018643857953078683238480954730256746600531728002198122777672226479113499005087219133833123018502642574189331466073008927703384253530440378652234197234315076183212041518300057362304104530202682714700369390376720760444661199834029025240558751231521822823681590424382301915081040496226140973378644648523254016195293430722729803518539202291750507080100779324492689574966922222423227567530991195324663272757113273400621720021764401509215182456255968325871962975961763721735861645064929666140198397684439393408719562990837564517176230069487086595781157644446294987929746942813758782273832141183626439108204861926721425688739212304306498098125325089404127885083671233133536447220905728103724928589744264430237047073667495962615442819325931164160575820550096722327924568875278887730371574527920175627565924888515771409529332481150620231724529754494694375492436675158117386575885691546894278544622410365475075692465434577678540672997421712083109249452362795413674811247768916726661247380063861837679388995500715615256573418861877564183980444011346165987474594577188832999481079831748382480325250195081609311047654514512147998339895797869797867031106198610858655050637506580353320320324464635318419588692837916442042431002663344658295549294528532373915504649248773462612165313132777813423793213474355159740166757287734609446930798646865580169977155486866525638687727181860836220672892156123459729325957545535424039853284119685126826419703368338611471719763206230818113495290036429388402941524584351203146114545672540130996551331219807688860285378961827139310358336716600320525267070496213594819705809191224326093463755164273614766797194571771588756599279881405945130992048608103359628068127305346913707504153359142735370916739369046306606513259481637330661110148521854697892385667529097886922540212160371873004063759197759205814884966492984501888354742534405689750365319091520275389133180478688421161824345520693858478732726122722138223193290338740654523199533489638604600742539744722559612785567958446332036850212772333150027205760253619090010639314763673200051562929342037406423965839981919618583514620350880205361990427172489195006667031403783763840154204905076063046432318309679249172552883474283735633233591967798331536854636531611689480877320186635514193799684873543538944781305509939334744635545152435238924502762717411754093325270378744914815828901230328688738757488752253165618854117543908248835392208221784371416487257257484381834205420094759574694896358361161424481068387273346658960474964213441631054465656800023022913748242892501202102680178981220588541673252994963769347985139308302563591433330741734836186532749892428472971208403746146780202162038109757758545003328524847195724085569188894005775798485324769909852316023258822981735369081443878848024258357636741174171335735100039375363586591663256377827115826930212908633781431930664391838342255389980076185212611544540810499856295328308189777983717046191539184862340107923510114994035777828150395160126463792185378754595354514255790080035267951637066282517727829544021120741252492385256916577234188578744105535773136940827816813814519685424689197280824399008512003973241219344582696820353988225980873933695088823132053095057377832397775298737438744047326852067940235213823272135714005155148372503909259863197371442813307944197513164067221094240399084843391523406873434078973571707505973227158358215602255625886844108564271577286472929821101712733215586262875314170970394707892784540683827176402555784615695263900596354796162465465220000038009677954879998053897137405390487065409034670753091693258641387372500620953828420350572029830876529127348147944657795697114851831070395815222446868667913278420063228116275171894686908480529804765721188112269923517727730283209765151478339547339163097852079258276447850790155842311413745184769689193617316342871414361339280393143770836062257897983839516406790359661936037114289264835937070554771707932015912386705327134836953672846093139026563851627150381866638677804811054502857440583281487616534210863713601132232280208335496008823113811509351989616302578566997758478369980394833545691611002854819766624892948234670469768702231255788274575791623393716768998299964855681582407632389420269933023385522427290155372704652082198643096587909586648686092836786397909617026385015545029762066452179550060688376908784393523025865845209116026942051934690592094472827054440156425580002375247330328233733018315080565307945491632769767547986094396532102674220391810253656529126504662373879198834671372947544982396015441951397226786269523281021874031825715949897480486484809085589345621883728546078230167993389318886960728233560242486645392396387237483903673599132264612882932905131761660555947522193003703185514674772171757459789344190832233341918676455932430568594524110038333412058846320761709086538140610857962462527374265382227383101996084162991957457270721997938801125860473325634059786808656905793297333723795437631696066098847593469941631494528881376652160728323192884618003605386346236049511329635735489005309075734036799610660950141548167997321124179717993936672715249968077149577667110326301318903619847039440875667957591936913063765030905648330602946914610109402698497386475640937520514463559017460220928876355828213020997430583755150939776863143267009670436367465004672642456003325508887587963766433833352820451424848521844415976921560443656396673215535453078041936713355991751762150765312819328173623285551142831178934440399459812824497114532215230776989938555183800283083585233340031677505679067575215225538298745217716434980722814665423559053493859149464780881776157656658317589573957463507565445489859819913934241608807385528951427151750697567914996029914020657977620477277301843001375013212825184994983260802700234171747634196184413856602187502661704685739360751889133825172841455043548974524970561651148067022877568961820682535659572130187497161845629124014647138493313231811811226654154781668436958990665109895978934775004949985067854629689941220131024816781040375799649771724451875083588239157971104078897147183661749248503511266844052205615257589880284608016171295277005536235248843150271329163570925750229658995410023007512254877248630791169565674081134028162032948889551700384034932944774711294688333922613867463988119694781935406001762659989989887568462585640560894051850249313505805007384592448377263991013278208518812768507311759216266674019872308396769201840917420414267947477188938638726837906609847108532674984381607590761999647257874594766298431874318773482298211304256037443141167206722382250801888384501121776430925043510537245987294467181020956507668451795196708206077703006796540791616183027657884979989255320366988101164303915911584506072524521385465510475688646256648267723230903165942986635713730994057263940624444650571572760960756050751125639763668721538787072763862357645582990404193660334529223093557934298850708900114355365850349800986885593081085250394718622181119137549416064047237576064338824378317604179768723118741778126044457376061511286211168628690886625261056302452922128046447681267037419220318858413309540502258561697926960759802475115013054334510471524672485037975948708168846999487488691454578476009912695011497507291083560197849072508988929150076479176126714194749434773489853176982837342264131490591936449828571542720790754559855931049822471197007165292545866420515797322496400029044166481225775208454973160496373709646819305279075864710276392846347631699061614359643508631304047565352242690602882492658113931389906279867661490909253489841850002902339228212718878626944500605987387224192717668043938811585292667158517094017941643546969051121706051695325722354798751762565891771978244509002458533347943175016437643307296150624705392488804173899849470052772036994368240820275472443028319945865557624265712622096490267556263169630205997163268637486548938928573671705705219082573539918603429069311978553530859489401766490221139439447265408513308720052531555753533941508094700548973758636658095510554782037481469140775711147819767870081987541224521849605283745949566634491296340400855482583445307278884835946816363024291919464384051488506681847026934152324089655705018689431751653672836005229219002132541401909071375399274293168952580748015948286285842549642332782702109947383936263674675622941251318604281161309675643895471108645397764311747702198384974999751357962109770779326590646512585995873194481123445055564274278534883863089296958019630602319015314567966152497079698699108168853894342294850560474318393738581454729130772527812373896884115163126465891040213552166330974855572880122409630887565148378462970234941780919693362597497355496249952634971094898292280327544786876047677206254922092800016236965834725617708100316464000191733494336603822053702515134696813355702898060811633392965118098318059301938147358624219316654301203313515581517351705673354568394761979354493354971685876630460785657050905418398302829525038412972495773086167527443057344465463436305309622921692204017753260502760638617770880701530418680429737500774687875013073221251029302782520272600816517059104287657460610719581268908566180040356146113236314556653150668734645883201181339668316954038169306862643685349547418970319184602733018954109545485387913986674329032285723500464182100566996053734619350649898510971020719434323378492389592273946550053996031265971740039933146370656765131699601914854858767369590670798645510576627541989758336485886874384140578402217863471368295664556731113155117496965998211487915889698594855470797302680376509680373341952582915771188325111126428382358833661071916619002063091352179348562109957632123510610600260653974909322428911758741402260279465480732606617252829255598157905899504215405731152609174540916997728418952311066115593381404307452827057183925009339049386264242578558287093911843636037180744485536458897492295876707104404140224532589143329005964816407192501268883275379166508162566914357617840944795744255524922930364890361066333203042233566293058543671163389681089624758658326338586996875349613119399067855887341009615827047393626336843917319911561093000064117755074292705252203574030500308174858816593408389182747938109013444294051434348301129587070995084395159835783191775933772195584161746149748220663945870326386425345985027151776278234583335722367491212835508471732331657818618136800958859711485730122362343024072175884170356297053761481218955556096311896302274479585005811426170766335493523977976326139550274967256647503767863707824498536079830489826070625818096431205142456355706732249887474693895389709523672866080568525607470170779260600638608971732793605877714409247045894716963154848929194908469741692345406122142793254126344135631728301080912626813488415384125144650890744922176482642079247223696767540362263493380047439194787162773387016312576684700119954274556523400513112135580003453604639884100924640582740249292540963131270460291062627478846801546369794081899979413897757721532251571685598701314451250172313140497551970071996377623458328542461564533820024919091731876497143244030067553199059820832668630789072931571202242392675375706796311498185647996948808669367123829135579430858244094592356572854232668748688600778420226314155444411541725157601551229748223271283610924537279061395882337558582111239141995637061428163925137042818887822644990777744541176371290542258181163835390171914307939207866512274507874871796745962749277760413133438954171253986241904825495264398171429270493132835736298520588549548079009586890369927748289014668228276012744455363078869625154419186580993032080168888437940066167642993123308082143603151294701503712581778724038252920771406181614987600033906079034733636702898677942458361672866538753215102930819353847480492392930014195421722298013179301618403988770075574622303428099848227657336327334905471394627829227467078931345970919483463470904581748802458447532568661240182314581986076797341515788136865377094449219830258016745383712429841649839345841434543267334271452471803041301659096044562641183860115584260762113460424272935634564715004105246562743548254525218656782888654780566496826024986366525084282626464902724648629372286119587175035697136460279185421510646600114902094948044464652315597464704560080069923292571659806694067052373673148937797076984520686103606375279430161696061076130921910277818354558507351884464593927214596483089614792428510978747772056656846819106032574216745553275959658443596274799080103029097845957706310886571625756717645252903415533782601055438204337144821689835967814364896049740795011355492097909402700818230993780433786669450459245267536856170432753130873945802748497086878999543694841207490395010354875324621003772970863955458667917552812040452876258184215879965281801255553772466493874698700377843381106091607725482218675670446702778822842579620232375843352668202003801092300063189516769321755237073793557709596897950539419481577058668699336227606312436297369822234046025485503893597210078400342010553834421664854272655088236761839833306509099199103492983272622751471703658907271842081692740077092596627765455174183238140155647343920127108714869362217148560309076743649463295489355314306318202621853814188836988300696324997743922931303262346563872678821372797951295225132389738803125511168452164836365151448310276961527647621867781733789601199448796623919278623320350807978063625943159415897879914331877459724237949857102753464104600001538764808902897435997583013641721318520897276957929679452808157123042878738112535330467173193569267197966139560602211692176780841853184938312013401620790587936827497067476180554336477566838924741861494580900605146934178117019964378832476571024639523658293859473758686037443508918726415035126658398132375055420256632978311257631000100157512879649065544931126904462176559533025378669683228133380539062393981789450842479002762383051864860050080206065557897108454447221763765551239497056140626872496172387255707806961979716989373724289458769034032547971793168853326124917198906525426694110234026509346109407873422378523069902883168149244821679269086708204162783312544833267078240875091473319281850281997846176391119634761671618790785730615839649832916876580357278638655378623859424406182813790678235639063844478017646574296714407225188358966575306086455994068500352037115478657396206633292008629029653451782474217151742251947596183212877132297709492915662092372821057212679691381535668221013662311080252354042089762774061875955525181449535982427727209727767752288206438253794920333155326143219144601033187898269086475028039390236563987938645665101489521706687976884564790898079381969369404608981625494955291522000898391959225983207058332290257293475116948275504651275480151296636737618880305690182793349272378862993307366404438466198154074183754052438012304654714894791711303453011346669403535366337741952616306292055342136295401573477696239425114033431144863955027912937401677077246839851634241238136195079336621494824633072006839250689082856853549918720916402312080669785563004935200994612119420527717658976465365427820786769625742859491969705234782066049478973388097670774981193604215887826454976893144337540672642647709805348841850469365817734993756226523610378885472107264736581316609268076569406561226851450287748215885168390017833614546636659894248568946246111069069544499255348359815829267283669427569902196493427157283733328783230961369563941306258264535092096777635942455175429892008752879502028343777654139899995181914109202321812738231057497587928871098955835177480445652594310221841483072298284917204735963612675731100620867852108919793907986131617857355977104317467224115956718288581821578097497840137825238446640228740167633900308549721722480388247080508726427414135244884467930777766584681003513527726261049349804610472750408410178693722415056377084621236725931942596452453403573455723241979370162544108519558855191576935144197877549569237300670737311438067107393190301637057794216149196638213744699882873481023154608095066309162610919560389013983927192664488332802685811351683443920259978718079552338447182915905231335967133083766752377817189257240995082902989496133044029867826798855878520414628599097296774613204976496676677708614547812180262638493895547505323286932658525712500803357163514917107699745356342950076006362789182312862212793088611334599644063097824666768500574719882406314825647394111465268341119607242277999029350366808054532090674033206650428413835480525243928334475303323030901856847984129103060182981562951146176471502199006517861018911639756249604933703200602000588907210697502346992273728610036290064071347677379032552234222145200599396145218483266771114678605283082567372381290158150297184171929967397909598034480990775789390473607589938913887773423238200785971727488867931901414488556734608248795421942491133047767358021563481707639102730174663586418109848189822663939924761416651579408999806183104324128318254480580276421620163109745728515103045060457663333463054059186366993167528169537563006037011265428938549690163220085337952773656903113345853910690242102453556127129333180807393164898105534853996330888996940137443963681606720753786170242215820085898195084857404707229285994879889501147601470444956013446959949235948113940679211889571522291505234689243168146539917720307327370558046906278061241339473517090140501763179784302608299849362080193270844669918043056080127502808349149398379967863686428181682126899717190841647172727350617070548178060026289033944112667429939426543135721080884735308188379802511233471292355502393884704166131774334167955684013231516980256368090968203300431644172371326810739018493026379238332392898257477800121962791980928948230852920525900281771327499697132273994932952219267475924760563657139145824509729441514085797804455709437858572348624138315549952213107622431718561224207734271578208810488046260599235794614581143118434334452742825798194977014446422907757054881415759647523192702557293962308107045792827809133097560534972769033390308328038611205269041020794413018766389874382197452074327381098685522834064407154851731720207192336244180793778182936054862193702673019754609993605558333734700002346803417683152263592191397916962584219595932024579032751043263443152990807844044919523032933456236917632717283666222063271460919177202420250128921937560783671965942833263322758728712020666580411580519310214789359133003806735906896686487161652223272666996710725681262593040255182857827861215962836909070409909328868895643938887127562385678139695553776711753370421899035947092477254060479432852508683465938634179319904458717529674827475749330434643101882407544264639596351680083836639977468242589454585146386694249251071743028104594020266317339106845097274938321259970489554729245623757537474411502000208816585542140649866752032420233758579892928115543076123142920512010000926403681310848879255407798314307263792217717996833743382669427184923936743804522745650074400000220298861567989564315919536746919875450221788981976165222229647807369171182046163507516081583507328630462535312869104016367862882019071593607259082088651304548677803966897786304994428636584465146725779372739147502570560869634631645516518405832846590826869973193621085256180727748309246543116536831858578806451744809179087539942116651781094207902617957182471351105764091174084243700997959255018262084000561034264758062038630831264926445814351622832838680569655671087960138502938592047212498565825339825504289846274238669090541126266936683924055824140102438881780670591933265620358402043098799379207869727862933365933417504706042853226073839384130237552542093525683614223409969091347682074644095582027173931696561694270247958001209571658874659115478802875626264456964127920329034162217252181339467662536356696682536767325263368438785943347950692459063109711431537739898617003866999105960630962829607123952777577983973738388747613052896796026239872757744259977498864969376443293460253007907813952619420466812889236780796684992404059170021513021685041132160753024099102810135846728309412691713464196674001753832884564060361364600418398478554899063410477635917415349759124050089080358743086644601661727415873815796540604933538039218984399588677200194673284425901936574772005173564505603525984981228015664205886485580763306890477202405338462872814849622033806403416514950464565977273295566539536380172472109592006652311469752764383432341727362652062385122303876088076792486012589721464907899543723882142258344595227971095065848240770313231192852058549605618333277727406859558388980069926485051619441124649600886521792852339472953337615339215627252514192277349017645671485255597331598447175951104319180036258690059467976157091492375951761072636093243961841821300346309109267941065552998342165867928837732901253380261434305439812402384609441982851528314387642518107266567363811312473985507985305245248518327247372102787922139522723282091510448443487620434306245880725060663861556260351582327843981632215570100194804098918165732244434423633918384218020232535908287809489451617743632566035039660721487656088425430943004015495811310176481436393644517190860506259212238389512684223724342016562275389891898514662146810217694389905930828178618263946199698108177905482062042305041302943271177362188985102163305885072332290447648398241190911524968948484497969490114392523486348936301183534662868859430110102501056281386840836897863614711543540841630801081486231655380191647651943492702899839481213700234566756901379683442305020961330042346435774654995173158462086651043905270786254208443330910807809866640853084817493518828816609388171501900522814953131680554899374779787348610807696276268428571904342114402080016152701771165207285114179080149935198214148749369760756130603618421633513500735749356489707646797146846758353876652460286369793657075482247817449525394035404632845561839336173074515205356230206908952911047574640508774748398998404724870718614385884617356864609623529156752843191074004405326369340567290211075905214547117440881416641856645131701417191087742303374511225471038194161914987991194256975359450304076819807429253973372996572420207135053049862380875817458742036237083378805622234473864541313083493525044625624610976589101107867823090543066232317913751216923543977236320483065141133531984935929565428942768202436838449147780655688307714599718932553523583634865609830496767139059310275286884532793645942304926516686582652408890434981686999619784465081206053229370196905943468776330525461982694418443404283603247654232739970659777904816627693014122184414128457316085085884330472012249822434052985177393925371456284523603572317358588025650527551213396992134253769977298921741016957046017368260346033806418439554350385497901554504917351993030807481666434550398156478838873561731728429303398349470617818156740845948048920904557582566311627654940325858865035804003779093806247833997462963590804300572799535314673410099340436691306014148950378522349366735065042115947792425831072521623514915122679346388435234299063243866670820975131657129809112950858228962074548973833788168251927034289802949225563255724062303368599324428895570000783331173843379982011439706234542438083217916124375698270826133125489615090948009735036534701157160815055163440761404344627032729467292904951740657446184970706448494859986097616849154851130676724041657796031026672793007803495677562105875499008979622743824012538013267193090450332595746432071549347472503953395367085604139702152706672609045284708679666772963281661243617725537892260074528883515007536968085283910724932876508691788080762524047773115819769518881169851102113138697639472427707736222067351151070029330838499076633570613630917667886109107571401286410202260203399690365360994031465677695799135838149914881774915032419697212060295523975841270011051143082843112155990106784855094785907946974553671365815177624257061321674288085671161120326562003934938244406500969925256284366528258914929519592953625454782647524440420504671489821218516006696796123678219345683113062712559636463004417966918076818212486341518436834380794317643958217483049036164497571668394175370697538675010546584791178253742002667707990752916728111413392939885952210659618274257227299714210164379650375123356942151343440489337738089237722053146586616120320671565772305293418827775658449074341798173461215320805317868398376307774145906427896542339041881723441754800702203444024621172479762280778874878513309060002508304211550600414465876515419664183181574326072089560464073694436560969715987287399365123990163091946376022035284868437041848322440717673811724278567014266842364206002990800953306067346972525355640348755451349996405268435569500454514824442599450479440614706957037639849145754023928082216976107106421204426419820004202222973957813042951942010629889325803124948958208613601699928033246396288819625711902299988505031106413353312453471722964929305023963618211497328220369328294880254891135325971224751637530642095725550188725871289419124955726810413743619904454969333659533310861874764045378972285670667130449938541349658290597918480697009088554146636711049224745578209680008534587942691921722300729095844730991873362551260300690990364161678092189820533804474076597655270810702954329473777602150274838050422638091501132374055040915893547758182138079820640867105717976582972393331076100786622332757926938523778432554708217795730990287479408275757006026020148935316099824385437591325423138518854735254023724258094720144011358782991488974067476816298913434948383622407750087732286825573967112689845398443539011715001945412491585511849510493515739113507766734993266779345219099383246957207049284108766452571100542704626336341432596021682902308327678804354504181700831983021877623914168904457078549920740180636193544629204937683379784779987431974743835170662466581811111733747729171678577045012026227481551955134354244943507731568852185742039218398203010357389007507012941175788651103228394372390902765254209002244374612793211548152292854790322067969151225901431248961953143779633889704951749633433068691045170503255958253953074338331005615944853690921603772568402161768369288218583240053428273531734565733344855513713776563257736643737700120640733886262829396739968861752579196875527951959619281694084833963311045805540177979053430384999727353126960641598877812169251019243816098254377793606909682472339127814846068832532108725887233720367718010279589094789260165996340736820632414009191076655991677891300864363665383179136553805580521050324520542512184184191591655224625209484194370905422541961013160713464588663335957843257073030998893174560868286352269705603561361995058771979164869158667613772891732569705399982611004086100631971457156154203161922850564233290347884731937761620426129358271114429378527487273304040668273428918736039561246370527491355461798096715657866330150795380544156426963407375803442499643087182355167022533924012849474672378749297535290746993556221144954159393712526355807830791858216563420611005116977332791330303875407086849337786034537297976132910389574256304772751031014253082162960211598371886738875301127745198064513349692680871999001163014129606352272179836509810796143657747540087566875331660752245388520045675417966960540637845142742048986968773756150183729573475114419999429250714789544474550436845733919798417464338652899794827356805966225956434264331793437152751455519735791308208794094168609746928655851552754368685973800756522378900312301290197743532278533418005881387137400618588241785506424480855328645433212563775568975521534225344606672529487503275646854122983176255388197851920811304005106439789419455032252381353225618842649055424641787183419398630915986381481995234181932142357962821402856925237703726152572360457227798244759932201349579687624809371949861194957208635928731347957143275886964493293567961251724054122043225753443920972370217125018910884816115674721318810796825065565496779197678340083925372675341729454766945409800869945037306308685596976803795698559481467326839468875939912409358880060886903864252648939533682832927162848074111369782717081755334171707614919964506640189446663539458972777180985065938795388331771010631201363150880450150749089733857024352791975472174580899887532918580754444104225310135436767740247359760085915929845715484769484648651269530874270283234969686567706506366527718956919929642691617078599559322509822582405587630022685344427148061575540188735716271715947903361889994851907093599341500285998238029916962847736529983060307268310620723332134535361800609210098739132751962794818302274903846572396827417111832734097783927697170604498231784597837686255448501768415497699871250633217304313660569178973410315510876892657316677044839224494825034147774230915539671637328081505643338642004807213938381051578185519082537901475701106751344472344301092062206381472888528091324659156982411662317501725142277730084862876494969767699114977122991599548677521866249517161230465661816882223454318711146394739000290058419146893894979702011575949872735476045915979951783577152349775895413939611527712538161933837914233503667988018144345480439728454863765573500991855026107761282201453151745593191010283614924283939295233666407181211459275093641729510421324461095186992183908801320573347916304345831286758449316959920636142720713463688493105009446380870207857403047431810486267704151065078195844378459420620393774571231329213571488478099937891168668705407970889700832719185533357804692211949861264822628742711800655051880678619105783648867353039127324511533766079526723129234547461898187985781179179554261098098501939476611233337981147488809082348752203570405027303360493666137187293918578154327035859832921091965303847982190087718061882228357936855517119432584220657569323385101734740737023942660104817480896197226415998252271564772837365690212978216228933526898032198944968852211236075959705352211968193487600350494275266641346998063720685587655563870378419732408072194792629277440426951970773017161232234003748075653152694404252814807512107569193970986581998578703967764191428977783351823148972534758786684266705402790290683321979293768124853162640855446681467987526540509497048416983215901941547458680091660119188074418013693236552702107578254434432955198104790289520091643698130809211035915527174175709091186591123900792000803449876834600905010754592034353067571802182399375483467910371513329355402809782880862867551009967031810893307336036734822794367660845125144011577435464936587376267779890721673317873771486637711201080662830285739990313520350924592511499566113539718782627641258849924343119811721316381069207718838953072343785079170913424444102939284235512896830858789929613790235304959109640630403735027940639694097076370908458806739330419449889394425177467932541328106280418482443011800420296348596338963482027397422649951918503871554906124994604932500698133537255559847456063018540752841332106632353028247554550714519290291245569127759248410953113433032688436264680234859702846812492586647874039777830346013779616018548363179273259226394975548942391904570118809417842888105139062780412326179961298688841596326171723888285180943754903643909868330018446861397359626832155265871952513910004962823668707373452222489691882238002965059661492191098501197057110327449656767968461740763325855293269453295720303219828213549089690176935982166302809376481562140480989407168370407357748049945105903782587584557942720121098040369859113941579563803567944403410146899435331068061304846205137591747832302669131839943048656173880626633400933650251211796225819405891029495192638009221120199529726083992089698924015459687027366095467966300496656894770445685382622655658601605904830287025805538499643492426507282312018575191053155366621508393464840412650331568772446539174357172023158223065337017637451961406974228056661569876524566369242931254316703337740700714999367685397018609275023886162931501336998264737086854319908422546075724897713415090908221845019885622910565443234143923281174121235731390929036350602056720069546904370312227881377884731001298058682609411258626644268294344576408544641734956644820109639318613579319844677484586380842119611730455215417115598930465415669559419208490069371987546899540171369011787340801675809730796122604509492288338269086796781602071514223359540322986596313153142890081009185055237345557383971913837779060034994510069577322217988725565623313126368972931995423226614270039713006486039457713173464784325011888771285177099951059322582088860029409836435798749707251819081472356777794014546589723634156833351597568291619680732542965393479505491019609876905526671997035838699896910471109865147966736007464850803273898333682104447901253831832980055569814521336712497619765248428116174352055956954255893455796375208947223291611114806597588842821750405989939320249660757635332377064055813518793002824544623111167226195065561661871883525645544755397357184376341559366267551395441976892045303645085436436751822254775250088538573409673180594743800190436936368912703148137293244268075861505938996933325791252814654919275898713422589801491358497352673018048273928603473653971744630031766541186127574764769634674164370529238010230416491208102859736153048415680538715605210146279558838598671951459499712200420806519710612924407248162817183170731824254195388400037124378454422117308542276300726154658071647295683942744122857897202853195168681107740084626966553546611573134023338772888164904008453013266812863840104104569942041840440519063057696921137845853226946693406152835873064882338017322285010876654943579846364103630886152985479248783656311210878041990616415357176536462361679969423873317598291570851562480785994766586306478154182429626814292033510264805531922379000641001962369922760968835809685002916139637916833963636513398114406045469180763789933165722875992360253289519794085851749349086812675619157697899075134838898320155751122531254478883644145115244933770551289920641994592850090548968644826396842127230949077120566674687349305416862216104811901079247371235802876191142636240826065044723536136563571011085609928692189266975325141299992612812605947156602622079441222602587909002320024809867128650636382350177745688709342203008652610188475400335615742076439466997563790457141144642352691716534207258841341493824436163388698589172434424823812851796333390286695682849118812525512658161973594383223619455243112695000574909357525669605591233152132299432630075869991179514667831455391749733900691010991549061124523601794795477940794450015512430653682815250200398436886869844305848636117229525167008817235936059168234909941902661674143504736767529760818783586863189879892030150419799646677799452198736648589106992664354253932748238718040962735298942987453405977089458180244103752493509880467179205534739167880417598273782238903268937969830348603124818109857576035679164275035784309760520052904216043122824638312799179181495753661503930375975008113754424756325341878207150584379835643916210346582004044872440699565668514652769310188562542793393720495408512746423971798017802999166712699102346973305036852858767980167443017921668366179173347116080948159700523302731741211812611281646901818324722993720177344607423107101767260794361870994652626327801062577146192085536937011397074896719528201624530035076580933206853720537116919661297268512228383951357157713442365326253115461363188334844034906921888237202831936200353786552661226538866908133739961230196478592398320891724351109630898330203036841625393222771699394789512916507836281629301505866215753439184553917461895394955001236717418532231415626989570560676712010198517798417356970104201091743046146975250496283931999030316425381435691028284732549536015339659148059612373862801975014560278203869314584193280851065938619923818042576197280208034338949806982989979455822687774933979798382161305989215818511245841994928850488188344258235556961494146727572672526884348801433148436555701862944784911276042028061021193864945955618655289345879290348428433105860903885005104055528825961160906317157938546186067935986264803387695388196335734434242141247381533362452143599465174060803058748506917924721438651104826592051119173383820212095233872999053296827859387869451919853206416028868865617560604269282054071417103131974638775634713204203469172298553836225618685010556492639821391573003628289015409450630550957342862312104878029420754215592827603366703922305550606926500929376085269717713955849709419951815533053723566814919959920584627307810634555762861361176266147257243915809756134832117155528700549424710783754367984989054945579823665224465184401880576952100703688781956605919701636937754330415247713107802006719781216411621547070426883129168019526878374976125795636554579662737759185233996718870439552283533139871622429048605320671528786343287106893545519615820831325283262725463885141688671078834435178424807258636061846938737788036070223022748172567151206690342832395323012675124498771318458099256322987633581673531408172841667411819458532086848670974344642483848196311305745526344606005110546613860931352993092723625897703189410059109674035754845089574289687824206855028581428827241099461387792691458135801849812076774389662910435476747659495996671871236339571707151208182198707632033707214128917557023933372769075174989054371761469037854825931884414931937116199988650476028882705389037693326342354666945729581230509499344369806728572721218337748828627175873677085047970153829271949693836122717369189187790312614025128023439435102294823407652562299125105608439695003631220619461759802356715085365320085235954900474048457267701631166944797555433775567154079194821503020462424054312820463761002451823351815460134095984380798096696616427713537743195064700811405102784473561503227446895626835835129183450084363123644956481107555513579172971527932596236642554776934683031190358243916657841991917186543807084348981171474852789816306169131820670937794022406994465734267442034326629683629080817430587894028030412002594098436493140119413669371680236071367576304644044506463930202494161787239662641582475804744447684777615000531679817731745835665941548324955615792676160893611031780409141738215300993448485566641191248628929573366933068424627459707696238148827333394661028812257259087557351081114472101431013295384263916927832166960319677564714359312131556884606158628843863844510844983829954604202522183019053171234474563364302638507269645190250326199921650136663706044716638054461771005001228966591269938435296243831786651470694389047174838037657721351848003360501188355653009542161080746023845664472202796671527477139248995861228984090698965791997576573990915892523341190687393611645140554043109644423467173583962372608950071279734454895735762009552810547154034786609657618562068249351879372797915006984345213010250745903228493673145229170767103358233957746315549227591946079640853063505362967336922263342259688786167094561409142133836812219699700573337401367309407726405185730727263592180650826941001418729790262522881711021341878050432526891600269384759148980268134140084291994599167191847672414083787950412465745090501703462288447514817539600079809328299690927251263893048734608910951757060679024386896092762431596493286284379808209679435203808707557537604676890851010526764945220757428878462310981275049573367743114000496337301398331155738755159093949041189320324585090835591462421455895571718323639523875760923626809122579418911333189618201942919367245196413408320236373145220465407264533314176552239455691535244349080741930894706499070269811073912435349170319480904520742228083963029123407446162147086143631590503383680320626014918433534974980317817101463038262771363375306712643846263082709012938381250582975629892026133515514052503026170940156288568075872260182062653078973235393090587634800648654717756008673425123943232431180225696726021453973430628993941697952243027648620756300593252300307649735697781479173709081794695252020079112983662643543675289253633605246132597725656086678339009090353438498862747903429314114953530788207011839307668192403275477982468467504370915621500164695462994265677354035446760904624948730021908288038441242747881103630130155214055731926860541354128255514463327313805973150403568625897957928599794064175040904272863834765854033934719250007631007967723829340830673538609928799311840349557250959899966125301856450442619887906315536077000032112205474111574600417959905429358502483868040214675931135387886678139741234325531542469113879979546131128473791060510522596597891149451258913021351533022843137870888112425111097956314229674984535372102742279956416833192763538857859190041204549240472984298137088847429790189139755078773024702702930617921922125440650684516642355869015146234283435534224190517409695235930079860346960474202319383377587399962014157929231854666012262829781292267291806042662521998866143900152247974410183491440444245379850471469034276866190913765130071642698883938761147234840900068845598333843758704809670078655471553095680920449447130643827959000067891513571122277963942607772495481741747543827769117136444900570861957139093240799640030704087833038829650189316613097246018352896094332915451672890874236591477088945493743273413759955793376474436632464698715645498904835963226031098950259437229318259314600651084769847684142243851227314487145232017588544777944120731667702861476474130184116077568543387298168597574385227350449673240141375214642484153006761139495368056566336565037643772932888271426001798795072570426222780507165608673421627062716281822203174159890865034859938181959598026198071038353918053461783553274469257120788102304891906456955999189634379340036499181404423400743359802702192744009437730895032774392135899226286023971986067091307729087126372924489102840096012529617375436976134010318116947182479041203442244772684609305017367952452920090888656236687189684381328404549721268294041380184671872143347142753499785330507794478040143212828183955111162912691410197169696165720139185091450464018627770137003429614202498126987814548753951795742247320586300008608041828593343927162975427902865236747234936063526789599572975036106475343183244391391216858389858853907906967083334590990900706069673484479604956131487463450739142005168571454506894422880926394326284701964200379913083809191311583403368294458549178272936073825443003756797589929443570266875414264264201213846571848701001490287124943389020411279931433536687580723259898767648629680081700189023801367717568321526233330225367731748305568759493410195626769026085775923554707497264825457359615572366403265386976812789295600760177308499461276688144177552079444632943477053409392552469997660887585803430490343968678734502365896765162861170911350812476765495025346035966889286888297900428587714198761682693827342871601834440261081493540648609715747296774506852788012071142724243210089473888117542137110849424350946578551162978732640409393887894848537079522246473936937007699317154067355489875626173283149613732091430619591362729272418732277922758409051109691336673174273134523401400928818262989265520334340172405766278342733161358917684768650493755735597748327927890704889247151898546225963406696937264167375634773553794506006385483124723915200671862072979374508575479855055468424527874163536115146297584688534453603137053886036709750976903949877701420094099729321190699688564637294391375960953168145627527202354177828383111520219078638286795892322236248978631545806883346820378820942740157774086009344320394706941282600314367511884890886704110286491592037335577874443309564095825807828878793029321009840269743063205719006423168300585163489743551298284118871906874875322394257621252790023355178095341196026723305308517271350381598020373281561228652648871508696499620662382370580329001549764058645407973951834247573559315213492743216445901878550557158208460222522006971834677309526220293244174612178443659330221933568909345169284632130828257526683213760770547634308831438076876215375685051283366114230315494706904897199847112553721248306721195771338753289224238002003827069403804212979266942219805358932800726432534678727420593636315015968052411921040835548851837583482225322967633395598282438038218969964403351303194972511782389975673076831400210634323449120233306998288838937962030576155729802140169163456576784879772898411352976633929785542629461835827780615816384209560131307840562284250667855573203720403386880488386088841250622354929554382293935872841182617790485334681205259008805916944805651608907520045992278470069123301229040502359944437065752300451239590629766087481959455685999880017487216593420563280200594913707162789774292127347049243590170070234741126681479031180132188036901669706280789122179971204044022980696629744979654503058226821056008464315718113378320251755307778726694613678566690247035480811950319347707325345847701093165121400253178933897775037382475769472096887847416786856182810532638923537973846325408338659310137516335340030650577575150432873146376098069155715071936365133068539329003306805453432141818965681928650860959512386413418225261215618925635079415331052459264602374955447256037507597808910653151400383324381927650084682200955592649359825862622907609813377634714790249551438669422490882807103507235557332059933475339335077633403814124710379058956862506790274680298428602152650783445924208032120472190720558064967207271170526724803428225737186136601268907743277801919592367108047840814581416141594346974643525391364323139512346651896155733562416944919293517257349594815018875629381825815632124414162927195234583717746682128816868066913798247388679142020035574574720534940244444485781588753892318001185411094682037437432470005114281667432568609351234729901568962832102184304295258516284425080451573424245984050805141434557890962976482161458705662019032983964667969919028882760275154110369131458867944394196790172206260399433339635073821151125126988600074754988463521320173989929959319492896097899506759086242115008973898976414392088467001647717695184395495022049962429843039277183974762044593686148876864552010169454827701961456140143266102855070712331377418835837382586115355320037837373705067492235337656510870776791753459939752338918449460116574755250545194229071898801270745506470745278962761305377818510017850185687072782669599856243420004744038964713593359662933033556519478907602800133957793642419024647057005635150761864597412475421467260926580826341080733055449408204879531346266154900524892188624112758877244281617744344462808755190379462568785009731099599353937131518138691320174984087989896001920397018133941581196545439958396387454604257113080600808494145853383909939848262751809387020109429977375899698885220199456368988515599249526930747457021606396677484651469521851857161131087822775683763851155174206512734545261154744216997831058502410886859225640045864340880529947000127328731071936511246112006609815280992337873334888731323279992190193276444578316633318201349061513637997777676554031226428526731134712808066024505413549040167832342631466340495861454008214198887055603058259176641952954089592317198264242895827556777318185439645778723292571806108967558767582131228826400708193393343689166390149731591337028317055939147142491483894674944852470120344295141814431994247994500758386083437573388075387352254738679170291225615418559777980262626478445056272376727140147149443009316691101194642587645385242957505191151821428652372277029829725187614993020867349729976864681284156498239841991603510556715874336829310422253808408000460579802730007735885811641208271955126571889003669811827297489636456734864190823992901651191263111745913566087253670681937002640328804510473595304301578099147440314472125784306810289829751957148866035554589233820515075859995844098862772129214458853100678533746245910960981519614509015484146899686677878202473603447408207625139892572862217941965110079152778743951182335377623494738542707230191195200411128554254931898057656200750238112305325312658691129631053267484111456172111308299878573543946368373813703842760053804967849582988196191073645971598974687868179353302212003273908758842554878688301838011603321189546100273190355544126154705434684154258752290184458107832053036640101325206113994552306464041640551468623384287836993117520084049511723088256948181561088684581665410826518243902288572100698655280622858107502139204380103616326020673683366216359124216132007228803982307059491885105374354921423079239065946185273954422917853603650835033160008816883313917146062350534213370486745444533128697788671239867195521308752572032537559131294679060395373995386765231020724689342905332357869896365405788723703463228457271450725335889604673292636231027939352436249921220418336587916957649761210262743012602720673204379388807871439190712148764739142520433290512115788967335789137818441421011761641347714619239491754660186363224107604953045213660363230541355714717356751822858896272506430988793105260255109676200315956464106370398432648316167601913719637854799135619866259189737022356299883669325971036632751105480449668706170535762804664717842431277754337667757073389290396492344133539233263045811834513243507156601827832171488021847602270901632288045349791759862542699484821860618101461605264060499905383104635892406296738071892051595009842966465800950062438224327920741756645843189732862262489349523984204449676957913150021438092927599594461193303122405897038303613892874080620706475064205325036443040554593408812565964234525568183158488833374643401757787714535213026341627882003211667884529254043309814236810466918901162549815126197874466978599990954352599774125948090649309659846763616393277971805485489611870222161860439288982748506589357722093688058539406907235082650334352322323423413839615265145254053195899123789327453534912742158742239761035363968198273565427711487293972461529780067349532928866527666605327811619571491437356497554352956241354618861136090170395581005444859104103183297949875828502085611136407061509994347711248377198487592248609702425835382368034049420655726025230101653567940332168956597286800193420564763238386529335969437910494164677313938177092365310395288524339910603855276307374024653514440470476109223738769348347912806763600473834640052162345844074165440433618774319732623338361834381500475382294514794328226140123927922738479538882132171564640194077688219102181415749858092009409712162133140007327930219757079443205831633830979182024941393365822863657614183023923959984564939348373994459225628775435074468497726217408395527330431111342707338504077988138906403860215153507658656571077953884938916175955933561409446338500578497631852429625228244332036826587583528735940584597246032987930276087667090257508091197878447186740012040767555168297829712685530115342457210203114902037319186528926498109538060267125429977543117936545118326821295782428492093818637042751204242394275948620821816294841048599923373657731938847786981437409848461436974953891618689501549052083773914493747264291463829933404548718559597188342784909882511470741130857120315435599058282181008821966214321074635576550808801859814306726596701459282966674397971621346874502758822745880673482667831149694679443598345959754101933777568517557108035392664016552256009523124840704139111701033170144334189099061216022588701165266420855582599927931199981801260602955808129900948821544301545062393093079172272899059470700202378668195622452273337434233186997184725120050956485274187294849132396725271979929686574285373700643490300968607884708940749076558595841378606700699007825190682302795968465151665546853123941806905292100211524506866116795563866798194977747638629648634995174022228102505072299362597039392777662746831558227262461375772811218847993866333759485385108918015763185568506200927861011509899316442293701132175181206673291876427575039831358221781004281382915783061066764432530135590165176208736901803209365753100367009380940283537006659742989951294328019254914096997719051386718383998509899290648727959029246945236415163753388867133412971737625331149834442588220274537463658546699462893921067716678847196679930477590539362937486224248986697534085962004448873567650811178151630082889247508396409585016876461641797592427685801765133467356196101245344138479402719703704895670893739399181952870488791188465375911677834221297060711498918970393280540700370455296028862978789833568424791182765824297482049496812770160115825672603997829692629458151259840946106632172218560191498580511228211562000395262028697711847930887367256262579786782058612277572420181896310901543507637276679517015744120774838853585612207238753164143772519119780224929805040432496460873493195879838172723516203959126878205095701182706597462525871300627073235438146174521073786855615104302002073864737835208931394631127247433714629149607561355425939818355854651187480097228389981661384359410158981347163134364135241584037247747020428341336419571408806461674669193265283731763245181134204184557925241551825128019054716172794550683787885316039431732334631846442847497699536399618694054000824900975053134485217826572475373311378161654202350102373191601536573081788202771204926062737681462991497214720026459880557714986366867313783382429924553486539574386655624222312948081548789726765267016919792104590503111879301179090795495170955659346140629646945591786111712291425774916695503074938791104764594367378995907146444347272236592071459227652308633768384238575788782831924764367978607766916270677567460578170837167292993018835214393784384979903637660305526860194824919956572892077753390226182860214881081572014718152242713884238176927783502871951107700957560904129132218402974043811989524988916971003305025275506630039830389752831911707757046451760724066029506290739606225663500296329396576992438170132537240940086994736760530480432895988029880895959887863847066534784481546234795687771433816489293590740464383029124850126486610009141523679305107034935656021392537903839951598814712804273864428063862843892373335919270927675979400071013877432445516009486839621303405665669723640401027096015298735603515787169368343094193977741570939526023017223733003992528195965143701154237562621682500032745053978422538770620251389927144761124396931937879620835153089406122317782199266028886729376047928232726657725548644486732386029208813881620010794634381385153881203080238568320274815059490097701560871801085407461428550820648950841960633756525902046808991404899233073449033907555608031486715025395998554335519589380672011266420943026960576759545271368136912816419593237082901978579114755533257100245308933069991460342352932155184120692248377849622763690061096156284700853234168130106798687774114457522940058347118528466495688074449029109885481044046293944268015494305786450490319243503420752825218560131724874773387472326012879762518446993816036382028345670993798602878613734143602219553591945683625074165668424703497950211270796872355795978394593495033324572121127781034663533977455558206381581809414756228293249405108481285855791889086624043460985208090451835446131956082100585081313678435124854336813341303962053299910427059294689200920796696449619729491055977797365466197940024703046027547907588604452617122184104405155613728235215870456451331784971268474556545587828514260212182896900819861900067774287108822411732628471274189464780511906102848415783848182732463997050503493770683108647702368769770922473608224405574781793371753275220277265541408223928649290619493814970744210713705847467809260339123204330139145672622840315694349437542264269454405298139455093770404006140559840170836650179000146444782443714628738924304272730858780559111656937590688369931315247012671259351186955028119784783586760390296008365752987698699819554422231581402978728574981364012296005946141086768955017486138941163941031121081123959746972893136190208327053979939263798481717405863319887167705745465785432173040034087133713720916250280151478124248495775828886993429727007951815872173548085515761892268255304210791992547766779040700452750214660737075124703966009768205208036541856473195163818673431831207526075332784379465081069900636584671839520029435170486131281368481216039884047124231698656834268995457455166856966551232668765842361899292449842215139388363679185219003656372573523200647052124244815282752176565306778824381418662664121235968082574123736694559754734752020373935736545690962012338097397098098710366375880244848678648655756822967118548132118095215698868634542231856731273113119636455378730833564195176167409561031503680335482531861090173644086210514663011247450287296835725679156282937828145615669759107277570243615233647738260665677338211009669751241068234159960645723125999026146727484681349861462562718516131943684460222663499019594883280813358503679962953488213051964485128987099843296348177941201905004555505775619975886014605088079463819545887910609389409533232072047921091479216379742736374280821690420429874669349495599106552622123221547861858675895889907662854061041310015833151767431032648871889945794299969931278164750395738524898050703926536189907792840398114482359453774492083513370150270176432893196509226135206193832232426455091096714622151713585642944211966059942238855349472421375929267057773340175139222769336313880665101499235120347231474864868034861052416433315117468055517520580353238426901371197560148602633196245027431597591088337248918111550212762959126221200662244277541223918713017785240654642445988563859973076669068583436784353211344510909426874500341302728459478493479066016798535646034204959622347073456770946990465356570556930400340105692236468319972828368622884837372192746577443232716021383381860067012135695118076023229524024404516324962861062662779997566538550781836437824739393414068133156186177276499629859193745293767045706967803112925883618325072370417714944646730840154334660268517656454588343279159798681398934713751651693008082103424735649598395055109410454865507751764331459946956991341208665317086538985134585105936607443050169137266326048076270380887357674191381670185591648362006979104759754471433287302459727678663847835167172530789509899285846301347744702176186197248183369851310697732833091474085176725743874294562776976825217949048572855698208302786414474675521962518539710629399705474075576277357662714023108481536972240920309569941973032790569367722998172662560528810158810869604325804859145387020635688476334758513625337541793403694971365442877950464500282006946054101988958539573403648301938545484277631702691789264993870680548879063581629297954029020000201854350845858982547747182246109767303035903196364861599958989990929035998066657648301732696002412766266891459449785897695560728368004957340213652058371854551973500289597377840959063438601818489552138105493205621101573739732438248811562336492345232293593650267621443087148179732368936170638552182213375215776116069333622451956716946310290587937975182402364799780182311925130840512491091525095904641702151697450912566583252569924119279116102485213792423573968782153515278732345560791119691260921013842302186086777904539764331462235719099895281416810918267013046040570456484162659471447548961486658272769677928769172741751448326743956260716607454002210630798101496726517115493168554529897918010562517528751557817522042904714176303246540136370350275645765657323545407193078088419949529426054076800053695118157067473336557142238175572102299374819719981020501563948268675543925291478125256784787762035399424024161654407125412540905953835471164951867708566513681405169472886640607599831503279433580701163136924054700946170484635088029603545511242150661485478152751858301407677801873970756411394572886951321680094269128419305933181202816095045035359145126743181098218464832827970377575079635521945661375114702790821441339446970194434461295101706999053555048568930952958163143661915216050220438739105562290417470414208412129047429023446281091579219172031797130168851524019417893768258579747923251166389967513731755932774696505872723303475110498951280276845598318240333828286831039998290095660583515363033947113751973849117833648890631715974953537752981438704545273272893809465373080695251556460921593043850246028974589120525239299967423220060525292301554581245578099514644739475290121247416920332162919813807829025642304739226676396381411464429975921575846566252229199278418252512898526885471524034916667289033512155018053781514722397655189614017816295802844846571048040641210056172114070439183365961994329155709320768597627813242900222018947511819814582698155047938614248977330912699322369388157919235467302876857071969393527559070268666702740186484698618386269366601386376056724768713340499783284317123894454783090092173390555096250760049230111561915654231062076259512254209317499180082433403487169904777330055470408153419062594601565046828586265856990807707130243722009458214624091062388430312908348846743153071577615769880896391625933605202689968827742697010187286662347205212053984394066655718976447496571119780781025620899680598225504181405003198154824682730534910385461768938569381821160738814429774515554416654934797441657845379096949063814729846330171120279860462183132626324171189524283043266628310207638977144848153883539651771101301506594297650728866011036191469951741334266059286571072745787061297992312917034021194317174209057851502623969683751001944971854628749820074498199767665375988391117823212208804977632495019019274280384802620850445897610043035584844293276853491717176885903478225935748091969253499346539629093980507031918765470925395424014038439666668565305602645588145869289000492179054685506688008112704967382278706216206218114778125389048511921684438749299922912446076735299771316557500448346656363060329511427395391746674685128942283362505726981745185798678086370054349379276656960020822679493721229604574518272316877138407046875166855262452472203359745815574702479305098971158437298609042292632792507481639499952426738598003009881582510242016281753024358236387908087551646021737039033151551592501185250858717496031319028451087488250086144097874565952485114518725147997623345272401782066062304035080667864003091914697433003484304730714634615346964337717960578833833682258017500105056657017295943201841005729138472812086709508896466295287212620921143290925275882902729823732084112300818274163559238310869109535582377810482989521435017451266148336284366696144122237860486497629557356119495739935752934650953054265484476410536024278097497432010245948767721074900800422549035706218424791459339399483126862232159283147026106976558775533681105140091270983948076838455834848300780173643228690898256303792827635170211336756740091124592223294457839407592513875388421814021390643036705372835939545425299877885494518055573262599820856963853262917011794305152344976740749329740841511245650120265457527678093278500939618861699755922601154288690467114965147133246011569703388411362840846168059274581474552472513397507386801622659830851237604242852658932302065190347083274285780182477707781975997758407093717784863784494407025012185810330110319245916994383172654412781621486642806394057603497939343373919331174981075745656041093528827233935073000175644052053665827778266720844931673948758675579880115421727786579499775203620458275673845936506442440754069765581915783089378352732570602073095601086045462866558108782568197601540831201098858831948821090417407774103281574487382106387012584934805549137343946909727006597357251260187295274905655971348989469907686976475843440739387968100393354578278171282918928060325992074309562971395109424339235951869555269198462603942639863183885383381691283471346406095729008791708600142223890885815944506835421119420213318090879233868604523712558335647873848030467861842556763855829589169663922034169720922213788021247947442210840524189871294340402747148321370862108401120842875496670559833491033828144286023824498648010374028258330046650430941995358171149750858046524309672233884683703601551744131796722637887972937693320347178200645095925838094354214936674837726275200282879716066832359084843412633550293402868205478141266869640049283625759428720503664380276172477735689738682688083296454187425338691131839404896697804383866175616569178551202375800914640241292158820081988440890467520606084077118850416425715427168454360248127651726053513003483521645394627805901998536417772444257698368057904823578850031423169938356781102339768727021964614245867856913578040646339853915524521702117081725163558385119840853497239787476586224492876675970237640537860960018015352815042807933005368996457367688433061427430974670849845891513022177097755126859339683754077205594721631253540479899518427427483739988752085711601447292587789798483059211843954140971099242268618339643161813279230407211210979011864975249929715728562961883995435201103460782875885173934617785414441111495415027210518193274001669429604975992805650566122425252753582563594685795326517389087210020721661837443602681569063053880686141027406586456881122774233718585171978867038417202758445876660290681418464680637068484903232890441051069297594638527920494853242363714030045315815741505741139348295612227270084901977234362019921137905416157333493552459693829086697393663013814073314150746048813307629935262983902583498483125027727758438947134051644109250801330397490778860560941274786743879111778189490942929913718213516890087132519189567117519069152842255793573009791352267739624823853650304557038203519245568247516691710604043825896325516069110482589009498798635076313682785145340485444350401690816781321657172133550772680527681208978959086281046898541518110014792052019480581085635603959506826164250606398838939091648952156878035378136551578526279855857076383406052915351400524354020609205542440839049590278014286154691093861238155266278911595786783889788381643355595756903324719650038768920916338356248112746968999683523545550714165902222321009166618356802524820400768215724113793073362730785066552372171785875816547048712253022108737838555756909330271989463394363476101435889192765962206581344501452232470108089121779770729265655982877795848554937578750254185484894170925543270779164341886610473013663191840016219586516063207792849611897319074709033592330130189633288442651909011423047709457712818395090746044555601087890059874731821136653730983697030267264246292074089589949783902198307806267332046569672509437181781561308836203411711063227765794928555128543669327467646725030404939979651262144168589263893219223186543139670306437274328624138228001977930613254999349158423127058267015757091391138485092913738542406218948369061036213123537687348773031938897776035019117833470881714092607614047827346100077251472836861810478684107568994406873617907510974936942765732544272758119139519159252984499748107654198694474842113864382361735140263064961963941533886235004809163530510931507090520696806884650773953699528416496719927827031846727099397860671775295602893797394148511607702044555361102751307245501266220947094428498164145726584981367714246475766305184993942062612480283638752971235546724033906791994665846597553435086261198771153797114936817087685529820758332207948714198936889079529929660668484288115907461022018608542209389171890470676743206017633011288672136577615952049127879639517618365506441855949889526700281069640352912268811602967672858965154187884972720155583603003316034830412543473177702373565605145813639629296635087376685598081154064361852280393026805840397199919349604991191361547830082035231178106007732999198639839708489531584165016143774767664943284033967368904571661301305556610339448388707728333887762899058768685258284433392721792148646139339393862254899092341246919528269147060414119897700428868280787198276794506671369122855443425324066685101762377947251801603566348800654731035161099879538992492188868337883197957160632900208571371080284126299806555376995889701262825338466049627944784625706247810718477356956029666886357173035099514566813229544396304812938243840086918662393031084784427995048673347992866389676587087782953566851253575786561272838265969534677484308837312709083757874895123974950003361310400530290709483959854603562136011444330618420734772721043198110047195032595011688092176018975964472603764270872611497170046046786598664612883654784749499159924141413590622030500682645131761928760435226860309910642694236210090787452687272144782847694134264284151458985587203052307101865088946980140899042103752411458778833608441694897500810343671786131131501786858614810085342295501202513652250895487722663140454593874922920154988523822072706838681032705684610406645742680483016091086014586394519156049155339000164314532201633296909156211481068200138861566124477946375613486087727733948630732719476797365375335322985099432342183618336473842116857658471878136642355507269489872144673902474562686211601340701957700542269927941547911212870324112279912771742393939774306493961132055986527577354484526203650608426598332627560832294468351734949774271482707468931719090990455450634814472919985995440230964050977551538728104664324333607740668959531429081169768063595372052135633216778090965481067997672136955431331881508358979345616969195407174075512952225093400142835683423038498106035580574945396411318444953562641920753189849088301569752814136447883165024490927063067586162173378754217895009234637471037867365078700805897916087877465647381403090484501864332483123315735839000380533401472372148200110268522222117394335522873913612465319684700964895274057903265271235898143213877849982454983156555630938741204429848648429272769359529533986667520509356195347555623357324846571303378722833405333273298755151504017506294505255685616974060088693926677695442501425818046847031438050011238192751967610820908770368356020770539094883793733694906935898120653087203323222999706364617278736062931418074591776246685008343616390979552310754276757274202853082077534511021957926778803677370326219841296701285936232368844292070810982668484285094942980020303724432580052835019826512419722304032308024529350587952008792084065659854932151530306157958666709479318979614798397247929372178433045393658001895159314650728980382344099046281824666613539951131301470477361971404705645128292963039783856896511829147056257396376332705945729228454007131733780587368253053522071434335706478502501418745832195693647628920116281146778925505705192608701429051214539761347240972755561123863560430463750715217837723825102652853624112236796726162746590158620067561231916355646296585942437104801883710769782119546072971819480793929384117950670883944749980998237653941080498318905938976164326144703614606786170042292819960519410842824291917061048754587776662390149016448236818856225807348069971082055780232940319510395352784564294968385935610593287285216636728670200957082029416107901617536689638288889425789949835056003800851563191002897923931532208782004868028666406320729237843702671481148715807839139697901304909743240825773017427339627807513691043698579826740125332805857015249770832131026712304680931929288121648194391666355966195805026997111653878761884757496407771609458906666280954517453403113854347048653595690412899328510413010202462688607464224106312226537803317455625102813053948127850574886521123483338648919474121535210774676853199362535265095177696309465019285446359484000037871188037262694469140963242137305156731071543710062936604617692188207249455376974872038105425700835462259013863238621399074429177247564391573750733251104296542497016741970343932360791121064853035369412444796302979984980956273985907455568729981903699149658491748110528498250341380110897263419476845572719520889728360117137558915300023376094708345226497021726435656022650236048940480266368526381087897292108985798023512360339678622176220308856283076432905495209197499715398628502101831192200175522490543681618781733170977543672740996148273816707880321966262883518421484451212344339070013773428856678867533038707310542067246844886419621798563223399426776951962505822853408182124621201117533670344318548106605964090899879994086102277353518653452181448670527645847960109879614681729194425268234485776201841343914031737256598186113576401549840340442187958393521641796296285586936137426977059354641642097036413547589073843328491322652797587988284433940825114879148154231274858359892360395861861302806833713554966651287443353237959175923654659570356401534757861867129885486149728842175185713601806430687722613819033596432137664185846154893847012775403959821478196874603382654470668631828588652751691296815003670806050505442370504159640510546800243094074146772192863730894055264822505149505417712743755960728163977303777409738659661277460126358893912921591101918505144202088064670990443363756363517477623602202553285291988515541115432751329209428259944057302047138424735456175652931846720835021657708882342402968438489807917963548851104333102582683104526585033357703670996769446872460742818606723057855212371791422875268554717068912127584126755916170088241327323222434266872076448798704760246383248984474579523361156311584352335416194072303656107048572904336183825371663641661581753992735411055572328598347788570476592066770890990079605309311762518657900212285039439845648256087612347432117438088711110296307229876882395402322989615812050331364118124599951055285953636917301803656300423130483121338106630254868842491968590020089481443494940821706284694229598330845541339663930553994590083167605270262024543945081153876748393208259117006356361061351907070992168113308393134413749078262046954133132829572228046063121357200870298562237777309601413388168185941313892894439236514416111178441829929268140594458453632470857486492381307440916985702676800188729333712980188171261714264432569614194443351693336930841040954575958648395086987820964026389288231656331233787711530019309286679269997802143446681104738154694862589505581451426879060238265114127227543840647165446077364531553880653871853589273646578532824631429469378679152565144184175511095819369963402780513514985114502309767112487353222423383505403393350581242345981450898856148895559187115312445563886873130783995757733484531902814683472054324965245956286375586239718094550867666198150594813174622560952512232516057528785323437722153903737733873044765908504948439069028125782774789437699664503666962352966525229926278810071973443355341214501408166586455615486366293735714390560451035691401689343469558219703424961659981963812505072879578795635160789220868713392195563586889487699019809500893829696860912095513634889020590779090263922258924095216336421636812541278801237585474257085883197403239693702629433657250862669372081495506814400324460637271211564851878037683308191044127344945504787197003559314563226628884046777930003132550205246363684394359404810803349054234078922542881594344627022452048597261299351230077873308215551286596125696633903185561059874700434764236093824487102395547853233851580334354304853083161433894809401681412697758322527657231193225956573714065741077234473359929184477878693161917873824880459041501626901144931009296424070424624654685355552137748717448479256540544939695303022008483788256588959173105763762585377801283477168513191686421628336922136247339802026447703940013375750890782107972310114424302071654979727725461974983599234975364037732509594472712053403933281930830443431259464040610946783271906838033097433276953995187424802282356795660572020256432410674827139280451784267114369789242845035829438166148951612713690066400783172254908399317343438010062164674446102934287045233883989383407778783162062227088220973994589994229035652355211648069276273944246653315814498756995289373265342302939534918767136545051544531155239820416562634074467299759511553420330017660955721169689062898624681632356935873009031146579144810874011714195670232308037191156629697823363068650986242080737485204778098848239613485659391891423993789798230832403961846183916272232304076631838720740253815009582330905668171296977413064697809510253510360044162773489585710185842461367880702110570683703730684031525853738479500249698395578820829276648216450435250203523147982683964614573553338488920644183393210145107214042515439836618194268062790163325334153614703114572861919139889504320817085146132292308995358395299685185634921186798444181507826589320198764812225299698832139108819730311313027584187767044357363232392691019786351466396955095351156705515789514981572471327418821192646885060416804293860910735748826518305511169124086396727714458152741284327022164466532872073138638864768052712091332484014939106354811884041869144390129234230755480410117537803196388567647362897037219706144720981850838345940694329494371373422989071338759590319283276062909238963817039120201884642177797590593486227547778899159217605767077258600160144249892927625738721150369508934750655798082113655457347242524840334380694786393092759611318903471173406383838035782539840974464407107571015096295052730043471301475496125270008191994064903960195864885750026581594093993551680630145210378731430161242052294882984078597711416447648217517170673854912331748194413186325914189946996061541010617462468160045949765890396146279866581905537741146665395894569682597409761356542446365002606243898359609451969822987410254343037654193614835580020730270416752370035921005159284749428369802177980260747478471136223753274812779998821693025560969671751484773806303448692130015438576937371396744096836679671591194534445947336460303326519457073581302536911983026907373308521981664358813823765529896814737571332121846189336905337296708491056811260866473255371398846330336502709866917507825955653373986521567453467232199965690936318806355644242503667613497307963943146340972406111337756594317082178544062732772842858833942090676046724390071913718839983167075865972400605256289544144095453294833738592180789046740727239144851925387853240766037289349987068441237895131114427204384470758671548048800047119327452872363560552345691021139322605678507926308234398262140334369475446358443477793989452023699523585283949863561142737146906587491650901640407014505539440829185894930905705477040106464907530156431732024386190717715337981978016502811723520539491710169670764249168996213587606951761599965933107277375333729262260292770977647998572994631268981840953284252089120102852229246326815838449250702641192502949879594862216848679726269173918246573520078027158191707716569004571300369989916728922414232620262510385303336787837219797042093941850807354488116285469097713622953029430446909260047601535361390154590940706437352540314099203716386067879827244222062435622133942982719921061624594148562479463623079375398227471509216370484731231703198099353088900594209083038874494597286320310347856904601794019477677713043405940253509854595457354323603224190501336902970086776459783557474863012959913277560721766209811540637496391611554532190736633207287377419250927305215480596954780868279860801164456153353429543905615604309046224536737265464489098433617295839930394302813883058934473332526133938389433113440464484149460246572097697028057505045762492706466840192287337038163080188178432977117981464195408989657262722974863269260846998131318953010530408036872447494865765969616495457382649847244571738722298529075011559522248793289804064094204785254674958167584726519298823416760281664294725178968470131819330774836744056617725442731251885176069969573708250369798559242630356914220425282157849501246831258813887513644102546864821511541765399895408936705861340084601881802730806120491029528917743980807473689214841985614500177803339310872700512856292153683565237107005574126351594861291340399060667910933451811340635842952080088500535303266958703341167937086583787373392246806719028718136964831133350036147373058733817779980744382262284665258233248438216613886331886741344541320350700651653097338270488374546171659016186234590120931270338596234585999347007015597448052546107091192307293009280729629471438365732041380435542736662702547246889821330413340170611490222558886945237671343669241574399611824686829287396793639783467354379128102091239657957316143388312517367105624972256149705329388000681440267831527383469652158468055559244989663772402367236633516719899970091814390335140533365877380809292108306740637782647219809715264599070952947456629955382946941085984502668766780370529781681184802982176184416979952230734117506008001288185823589049121726755401098589467390205394842991141473369143373134010971104210443713315459989481079017452529751979390002588474301230627650340692575789390131751890394552223333488119603730422007680613455897468707755694228989956851512802762491689559833847662396271190347719696046049041422245731544057293593864810584882749610537990464098003718429844194425615833261196574555666356779676985578676632464609616563839949716178048683207770936512245146828440715205446477861734523886063387330830513858279244613273083189696655053781786053613232846874065183994566823345799941855682987686331329157392671480607573912248951237201001807362671901467188345954297674824441361291945441764436763737038168658222893044568505533552052473816760848087534898477085081587119615605452510654620398414171782960460084511901093995838915977293785520686591635413312722308081825624998423627449468985371924269252657864991841087046308153433965557464405691288342021707624073785818829482608282278257058667842387638439276474293313498895997156659342034762664712773463264974511798604565311936544491573888418895087501733616967622558598589670159586827532095986060509335453148205230418829122694538708731017652363064737290411444761158445196448391851613239600553518447048926637887582805953259883988472310255396435660914448541931992826157437136905885235352015376003762495638629844010328086474650663322113649240857350420390090076111393028995975757045812296525468096568121079641279568654455886189233256528916399841164646236650067655682080513201260259672306073728138497083327236530676399289105225835241870758153164510056047726944934112542115156090059449389389849691491390746896636900586220777867761344813723359923332798257379283875873767377430350073284020880564112375477611128781816276809230821854206532774782239387976415844984569409958078091180833425856925075027725299948257367028369432582701644440076418968559396974993012310628285545955578299385908901878469636233962595668117195765601314690240159550589908742514313953612688676421566130764952988333028705163137897338664118108113895534466385108457436508682992924456134492673041155629704276086799120736146356106032954389637670467794127385504772452783373820394526722757604637713498298889233005927094299373125985496818772336983111853329775777657518394652816091822894945724789524710108694967556270700685498337551944875053899974638998882590750532555870567330283876614040188197491190365707265404904827787188949050135450404938983463194605336971267414943329753838205373015867144237058224784505110018106661879587390299496729554777949154910886362153377965344153265286660062119167085116357696045429696032822938518870414281655586151638000341658449995508021038268015565131993384234342634055746673467031704661950454402956076820085174375379477619484720334504860098927227544414715994481979128578716106948596220480497212160531583790655938302531881760585177979388345159324293858455493484858725269326583811772843966994364659901169063749385679855772399704085492457243230034901388440376943806367343048336765054662458536723441227994444997978043918488527775757207976333540819459713525264825740569148363679999051821971755366080575985739628637294091445319589193562401056625854676140545208916121156263671038030898652603016400471448118346020211449623328107392111545685708272502865949700398482636589343218625531843804710256855945992557762282565504792390119683388881257291279181118002271260467124764388454139693763102619636370975622292751406593582257121806836547163745607081267824590132800707431404324114605584753570854236546157392766774641859426858157750318618895802953816996663278715449021855579653417097243853909605438007762417616456786048194882796361659633726134340777048896248893001371681775138667772030341696450267319241731299846357401786185800487662879787450375098690761616264473146282274508088480420217004287027099218948827551415380570791683828553130323158210787675548867834807777708264002598274004301926753577681040288064937220747638391546398748171381799988953090813162798749874055825457921029121758261045820466822446814255425121200885528255960147175387863820838612573793255953146172900990855919562088987976772490550589855467803881001602430688258210851555889309292635262823096806150595343535898269504726241245394319615782577299590001770365416706545509236848420834573747241121047745113583573963111039913367643952618407225842851659359447237152968027705577796167239243018685979520089982148011886360858496215575481883235671748781739822213774110574083701948779919379325855959846800228024736643714157190484716463104346237301178533451094304100106089669178353916306052061379967018157264918344045779592921470156153567802110678883900171517622578923114490886954557502627831547063438481807136497819413212939645770671338962486175968762818789456628218449794335597470546730845663473226825329731142047127910105429241153905547727222097767373302093508480565230754427924992078213687480584737002005741133136665826045038179987377854834809864360782883792886698867534159580022770994297079827661191301291804227993701660602537466003581319315082314013739059057991441029758018996913131049330342790459829037952102888188983342363086363512803193460348468155101642365561106673995767604514981299189289179695591204290819123576847728872410467167206000222666554700213453229955764113070194762007531131036131748961673374051550626725504175597181730323292063168172472495678875014429358086801180991878421478642607621910865226176780203357507106842911271952862469141258901050528483945303539413301662236682070417387145857108488165258620065140338607537733675056431796450083159063354578480443492773097246880797395331738072655511076277530496562934888368569923192617566472129362282691845563025914408490999840063129610296891470301594982225488375918139038589162952121269737270412985006562779345866773502943811423649700973695792210025526848260211686489389228138253580410321480321002785090516845332300789593993766624600620528752783748934771097187488997871578001711289706066550017337427880491575084969504246009964037022144927612114408817890273139920281204009472122559012991233888404029910524987873113677685283415236607424677355062714824050543673775909627060433205229485063169974260828899334987591834945531929358870455552887736126836133811284091595435197574550146992002887466173799093548515712839197849845932587786721031192762142886127930299008969476664805007492983482671215297790660938948064518862977568301010498699169267602135356028447653279190338774869659217695538519374864172908481847347223198625441558447379176133689892176869369083560685443599863111155214685891265850190616181171022190438037420268005303209532986163245655793861258234247973285331070283288918189120693008535486548772695157638025699504964698673885313681373570964154308426324299498979003677664064082900222532576826519618062075951303375043748494480825205748705771566671101092982786080574881778222613967665660398714582581279865524602232137349520853081192956821025295105312594361446875084549832496254425971685988491395625741594697013624588102675883399910271342768916767820871401330506470394351863206356123806144467579644090062887376223986233346938814078107295258274404352174578005853178704321505009367327921363537333130539165564718243340282021439665318715081649245312048501006858757989951973939934679214618683011066026377748375640590934785973756097980909771682741516916598014480570531895923206576167239719239931092879905982861266686810150088063843475713541604852751798912283142864057616845565239871280288944012381405541782283518719102291402159729328084290739142969535251145402010705189436798887304683075446571147636051921831820350899978266446063262111651039889787907004204226221579565484958772467257904543395429040401213586339151290150487932642791493908095922655412205023230597463711140149342071005503474681177514765413959189590015174206426293809018472748142235849124876980786759216315867942310292842402198259524607809925701664228562635825636018291301338101133493459726591638653640921050359228728545106413938553798044249111130410120468430507701812023902109467321527521820682688983603107297207060290857423511981189137649949574747015903933069197525511754275487434390924096256113549400469919785499088610373261271762444474034808408132178479866449803139283795810896770804142076881854880200739795943250547423394677454012690801301631057913064548958086733770938181060783323636309071783122802739536508062217781422421850992788299837453326430657150517812333748105855744331245630230174561660896099612080085326825378916129835413697588316931932593327485061365133649930609108661090878439361138022238854455354264983286343187197944700581556639495073679084155664559646536685488252269786401485547425402596381209504118982337049415970025831043656394592068866257139178007856768110666939732344412366559533904472963169607798204820070885211732302768668953526257898002696284657547196770332693614021334940818105814158687303513488673995229456045029310866003650239576144775994346333533682758001129941810774652940820951983580071178354524508710353310409406955495751415547088019184883398274118762557505496642400259779392653051630588316910573178134749435443802464893424044267931032824190272739508351285269440813397995258322037014758035479027049512109158344412338047773981958478345562734413271172197656835791070696735173504861367258759368289847310766060100628997318940352014972270635795773944735354820211973869197597793660192482779222046642252429252589387889279304503297327017827660326793970396656734146895409674525358720579295678433807017164541366276306669675205635338002743799872585724266784525585491810820029586720690433990676327991768684110456300767906773132866071594983644481861050270735346222980024970343130380793371398992219036945620081560791285107974260636674178762873199534863903706713501442387439987490782126076392728021533993937939552805981615705150681394693885577215655541328931445681473613881193970327555726571928156610793447457666532164911628436251760982195151763632122862029038246568470705539892337343761491106135285826028829453062842319128124649742739557230048825914234698948889932462895291519593016926842587985490887036376288073289172667141752146858917326926846794759200471185680485801045442174224045283058998921319813762886352086435811559131432923430952160470496515769273018214761132901990597042775695185091809276280318087237602333593497759187337378806552222449620089356958127204616778796875282389011674041658346378136599386826398774307397811144305452030519690915307476982768301264513189331540166953555161413671349174031483776851494830378097398850989835474340565752720230634131628651381055086500574766250183980472366862297094241586373008465085279730818948272056184907511106205905249469344473152018682565769622652275593385689913475239160335295782141756124042009577186939753019841046031104220419339532296653531246432228359702075009663186406499374592316291621793463741637612910122695899253803665370994018127616424669911834248296962506636261992199687710660960458107537389424961785853357531548384815829369975108697327668684559692038072917348796212363484236574654928421261707137473695563224082564029134513910851558093105976014933318506596022299667304195051156025945202160414991116970050175262412876415963588605109442773454683849877503377678469183965012405831654637724621848417950073012859437784205691373640705316686872572393111320393882338809260864682842647666940080442248862388413713164374834706618012457629975537564193465603447137268433283383743224978148524406399146212329267265994577224247196170207896223830222213367757042232450620601294824535225074265627955729339772365915658387997987964738515882081140841186655867519018257122721345903263684905662506842452782491856660182239632933955021142009197317352357937027319000080692875949976418455908418349746133389589271284132725742888441007850246829957440143229600037622295848769141668703073883993628823908021577766203110320230723060175970707203291447599930453374391195258408383991314369961145185869567438257405154524408081374720205281915953019895270826873049744091192486135363524552914972457413430135683011303717593866913567273732277761057320437018518824059690580356952828197949739004777946905233880388243195732877087006939413378658295998294358873683093818940645374980392305262080223709325330603354992980854323815534576732302961839629531938061769168875516782997854242182939196671692723783567214928101516644285369803100297550528842352652914782554912411334422844190934888224939738916621184740525792056594664116039046684391243152109177496707436184229227048438333719962602458459192433539978572972128445449727546399405686478516072779608912082738605065134435749837218815418950067882330548149765840955165213545051072686921686690430809702680194229463473333897822613373871796063792118509731479589628799592776052122403995023875002223492207881012754638185927076163365646842051940577901650559074952779497599591094836151035252263829600969193465434704810178643289917318478737786482018314369922559416105935559234522001344476721087935699935903913209157230963779071494392976050734362060741329490045101706366350033774688490015969215557845167434426178287561311231625626598610611323664348509897905899719571095588579393180745027021496015543659972074619803211255442436063007761492680950209338872637950508216007677259704877546771546434067897412734610310864492100860508928879116175671692275891415586549890020943302626898640478748971788538403563044645881799314434286653369803280532993463662000057222074652008335097159631421956848795650702314107516611965605214253585558756271459150684219828502866002992444935892671403406616076718049334115803945944135437095445339988438881412480166038444868610068979627977605156095477773143560708556655161379443225220068593252167009016181251773506159424729366485070120898398488350507804605902747605485003375438464282402702014830549046068869981100407956793651434639815673995197301536140768179224948761014884896832499573440190328952548935252880424384816321919104396074136837228391495259472503585737471292895168588869369983106889214116686648518666564536383852030352301087295845821691133255918506505057784954037246761415853120771241757553739250124724029781900756395417821878600710233609487554812752379329063484240224623971431822582937186240708693491464774291776036452494533672279793857022482854588414102181217850203918202535803015851265156054947566867183499564184858851928878292597511213754439890850009323855378129922082317781035578336094414059999223559836880311282659694487670922306463463515115631147761867950023404211633740342269115486494187597324041316230574928116416204923835617122409909994300028013370012768586167132749759761851664877429300015573048280905531224036387105026751135236385166063169424918152512447810865654860766315900914622693708598010060900973819953847252207297604678135898312894618923905294526245480477172517918943304478669926006200455263360857745636098465851050679846620370970919901478028953192970712449981347333286095320487905341502881642345361373188323946067573778505700430924647892459088489020276184964217005962064379174192346243935122936235003870864517695724029183450572525188323482597550714974083563163922147667267726785804980129371198649757774465170113758383729063512374026508776246106410361263567971632807705085655627415497111759940045194045847258172551033834430031384155053575464485885127275719303872123906340287344927895512344177427540553988726011459223025232294855850232983829494919379725347568568745910799007992337419637123659671140421415133452211873553747644879449698689084105291991589553433552981579810043894366072095753501745262851822081307555764267653449884944285182108080296356207882326476457920913479206253108582736416754409175132788135611407474195793492734744739978769421473296311225121518932228945276740379015684995072077045819046057447499348282897102394897028700828476805928135755403289878553493766476713344207628177299111203153154462048330666623250762330550966111982560886370163451059756672428850774857155404342349679131329937529564548875621989610144521168299959492474656061193292119582503372053427350345832833108372289809255714619588257278441027879393422984626072806089910304545971607675181965278349576461065370346989096941407667657070698927883810624768887727355367925835250812786833214400521175870645924873541279196530366284315484802132993040658641531562884240304658674181689511112763603327776339753672414665593082948706614049357214797624632688383462875121236304367930776560111266697031890786844746824893123960072944653024478795004500335780193168018251908697023633773448300891980722255165680571401421083515038689769415861410496134000815913472154597048628672258628984399282765582962268769013846848981395179718500877208377921179919117588817136153450380997487869799336503681074435603228965956075000008305724934171267305315350779112360541887520964081867416801702752803006545663980305652388593525940738644075474532236084870134785903729492481492648865269305779303568179308596319184551508277251761825850432140692095831652826495851847824781167048024273123032339681648918825725526082537337677667977723223021132641440502393007676974342519641575919981761659401849178487403374289769693918768964995854565422879900139507862842289399769000970989659630103153580044666915610871044068143423307906277156260558857840601759566876940912061518600089185081337598202065607784410319314220958951575117003493729563915820114778191867451851198676635351997626380122998248795507826937977858482503075734131231767717099678421868264312203593894338218444450937572808426882471087505910088948678459111279893763755499497596203777575504121360832881208670076419371428168780839894456443191303449006251357163562677205227918230430962141075109792186113709576532554144819623855178853587258189293571830201725830575375974780882312622175786007534839431285322194207342635636328091615118872220447356386498873343317484311199356929079350747049957008513474433965059614841839933209551790912681023261841300317688990867480079219961196288297689338227864808364508794950561308025794615464657094448333965895966196679176640451099720965508259768815010915199927897682211857094414801556669639384831602375890237200012235191155359923870508071417102761695780404834058216896029967251367766868337585051044519588645095901067671319651524964925131799399913974108469395947537277985324058338985247885872471404816935602456712264862227801467054020699967200306095027704188466842784930247542815772209678779783835366484115965045350480766980017380028866041348662909704924399235292754697005416469608199289898042812786037251850296503379378765405788791270992275034837811054106731369528486966719273573804700087879648320412225670698158009906317561575900499843288680011204547437068275100382705019652003443182666894779648704443022316519924265522785828935539450573213445349507597111521479569571455436141229769263747073035839334994405603553508472614210432192362107594047409374288457870934035983791547789483002746397128184223244539345261963664060083137677717527036765828413926996491758041247233457219811870325109716938368056450131309369103623331595539227984739514658662797059269128245268656436820994101306958766619843670006929976034393192166676691300825058165566802978967071366747875320397232457158833082095907157269800696232610453278728124855052085512902891943286452842856547506292709891482775787087010978307595391387492443629157298153275652165869874838122031738469547876154035920644895736369427792879306736855895662468095805085626065929007243479435743505788542804024949958995705095167661121807991727804869714554864943529064495360376110430135901502709800681679131279186559404931971267294678434223606193737050210897868720582104762837336139164070004143316017074593835117314307637504764291849811021128959600951998503229270320918851491507225113000434830474847638062581231271786392027625659207791717803728186979819862862505924126968389508681105645740911555326611024251642092329495551619570028867118242835860361902543766206628740394269121414089917765579208406740891831042237645278388391913150283630158751720610484402891808398537846457442225575434478517131675884034030243906538595462068800617654258907861838821060482739357293551068261317820060848960153577728701373500336438639928823425173156800120653303964403577113399897207056798013625456340466222529468903609184488819662562648161619777860329072442202820536314126226236129244177327042343571703521267543286185981805058408525606821406307203705384850999379668983076375023526885515236697314539828986042861420886917078421746160091237526800927181637935303883034219966538939072948480239938302286051847377116995208095528734888566632311567903940481022218678849627170912367227354867718568374019015234617152415056341382111621129616894436312635861885799725578421096613047519825803781328436409216754347027213055933684444192688350393825976588540323253162177626725895748499984171820190728185053005390939177739800920152295297479223280792317210686889768314425417824272816989923816402599006900168210861175607827897405634723301357706773824541354446799685724018094676340772687205773687137966223352139847096279256668275658790013160508822108631726299181829705820557203728130851599885930592399396314743509318682772169766939907987267290478908992745911338781061602908539545327525152935858349734397027848681789352558127992478847822225650855251303089422018997290110881729085964308427479690983928459517006014400165093377252602242987262960078706231842660073641366779428533746416680205473548812687172856989149994954156993798636527307048863967751735068748160495450581628507337990881701568382149242809559182476318241716904754607877406289081314240183963014425602304071427489389130979650596868404244924957394453843981893663464030473812843699909651923228588381583338103408473926119474440718607189101259053251022642164519089771244632137664632410730731232083280551998889970695541899293934785892405459386076239342849554704487433171066250566288294105801401658815771608948290421333848335909516350106086962615090482662266391261788450584463510104320915737484658826722126948660411112516344769261085249164819772396802981232904782081973790698350952525526075677681366787561903721941588040459258763542502554501136905434646025120706665641734628104633917990272999626347029830532302404126351594003231969936117909570128778582653667882731321441429158682017936357116165284424273659710057565279183121477257977446135442195842154775030490087966911855300892492764585537851183396770505252303649627269358201754906853324268145717594063379038447054004633694448155588304227148887029030178732559748105945942839511401687603028273598173070435727770119252664696041499219375305794991164720476542701615003638732901016230145167318923523089545877386527569334550308588012236193696172556254885892078374381956227342224366830307638057481213009233633578705647704579714159801921624599985829109735712612054743296472220713623454671723188417704433399577938329625583258320161094983255327890828624982765419161170724569947891617314401022852246458927551906552591933289837249650013254467929556361155853808532305001320471679891901552077570467225667297672501030401551087977218339940758225670307396607175157665513884105456798097394255313556517663627853485323430239512765297976571667203799843987035190557554235472776626843921179591714116854808060648840155761692284367706390408970554273305974716559937622093923614658904528267697218230394121898182313714624579924838166768290918647002179473751069101774689992967105806827501204299472491687870537963098043026771875992823272238607446222606477212879196625260104942674881583016037271701449019623095277378269980631354130839144501656253117488240608226366339846030656314560905251501489883351299543820743948874488273982602580461606512773286368055382839098943199272428597265980212009567512635710523929966405606217123107675760045018238543552874572696107818674254660194583309254829720161670906744891548202344597421784580309441248652074826266456258942816661953713914155069879332182383321778679069256576298200162759963271792971812113653250611601551796178769974358902388360100037110203838904406549879703487295560949547917237074533833242507424602811360839973485189932790609300684835409400922874296427874857861956626207831411125652754441243879155396017361421464281088258656066796214046818638137121393116604422426791474392756445803226100562898935624307513165477397526185592479972965634481044063788808793616100107880348721230625394899457753520335158411776837168250865252060814637394925929063167368763577096403205666080823923685280120481457227150084517949415342332147000131272791142047966204638809635904406237611410720114136871599075642208399669949293987790292411464468807406413940742566748512522347184177664998756183180506335673614258525868369190646136332928671429780945304710634756520355976169885951826843489653776867495055976321917861678774869821422190188773955960750507890884000599441398514412142054015333707246628387151411092623627738326966898191224732075308922150134015401999953374469081608708403638398470727368596347759268563132036772401189606922686115183402111853902835912664034923846812803512708394076947012631823500120029071762047851382761722528585426559999076652627114304102184495827605680464738516693594066617280204650664826616843744797614066380822935287339656251962251362725068773777406267206701809394584711064865255764084643018803046840609310411321942645328358632895003575295444766470906030300613119714607724694784542951085881020537949677311305547570232347888354119738248057056436811623193556965945488555417757581667355452109669041053809932157818004123844714672419559751350891608862529380354118809231290103926581659545063359670844079679905823101491412806227783059719683247077853196991210172597218738603098300854394973953909600359043407721684730258184334711324395239881927686136445271641185828778075748852667186196545915124602167789395970678609384846683787533993531564064819696068881323003588709181389332001108290251286376187576984688424618563945036132498972184848419752572793953837944709066719779863627435496549427917016563685275329577566128337501317421911130161211834042057680746545325379203124871845263016822917835915272267108849970239853829121496680319438359664073450010678776589071800182147973526771013926874236768077813507855962649349262697773754287182209943805553039638914443226191781087781365054550152884848295925448057495842072908626438665720735746591932600132756005462501595159519092385123080592281627271414372470188557889235644922792447651089468059426306745791081192090174049801787881245347074972086435867209463563640218153706883087174448868781386676334572607384255002030178594041702339746046676692452743596817761741126419786111313461258095282708011097031902858913767356457030121264212291199654318440631008632853349541523100212507668915419172640510333774731231395449569370743175880351710131813036562646934369715142283996248151188942412402312201481126844658329484394699348264202917460468193645009490580474523803246475633773136370450281295991721203446395317693548405745753687288336945598594513139370414376207953456936348997550399054523211636938635670048931631708268571490273855299986227885611008673059064158169092032259780398695469068255504456014600995084286679993252021501276445676822992840899239056352750321163662439406822818087896626575624740864888845411892907930968354950631625526328614681619902970015247219911295353341403571822687065963385173856973728069519281858518413603979650479910055231132563488376583624380805848385789344337345443015024853572897189818012865092699982995702433297923087347509406805477751481568734075892909192396782078119296301347701895406554408309478698861258500851699979972125398783999268816036807588631619621845783475082832123583831323391153708498878124015673086251886564369741497037370275091966034957922609277368253035097505563293972801999121163381595445158892213063655102754525189390162161450653287679183049553418568367437064365469968698257370005151719358262573119496820469041733221486497246209115379318205481738284196600728699096685706142241712790256361690918316371232993518444001097276207495754375907945198170709188283355895300645433452615350795694168179583937152047513530609581806950628174547188414655913301997806738087545539483505166339829988703813288291485641685246681526184662996043977912698821333033613083870253888917824864624568255653489626709782000360737248922707684867298666316473729732392100715182601292564234689791540076484409237070672804155875961779757867572091978236023881012396555792230839834906531094375832971616319200841402010663965404895971945189008002518549333175839469697757336673925091553293891473813063521029026153291065723532029095321074840734846377677436526918696005655584982650016053733484077997804727712525052031240599757263313916712113395311385952111737176774050334673460050851597744086361708707498841840001649035788138136267442657088351738373545511296933212719360738588901829381594678949907221021918621487430154972412772963812938061028226647739172508643725791623603803845115391486027920601833759659679052132395502770161764552748335092255981031534780826389447913717991769911231977634346344452619649958744853143966400493653307131597437220404666644856510095385273005741835301775129493627639931081856136139690529644753950578930089414849892109444061614818323760482011245534848794343003629246044923626237575021869652894023293107023477523584393993533353662533830750400247246198323822355307393845289453542717264462644477286299704275194940218314820664802419529076873218509895730270152585200437811687579356525194802045850461603951943108310258579171389402796453398712033655891397328656392014840691574472258565095553311937087345730813090370941614416357728516219815721534271847090958381393089655212706205622309373638257145149148516254520398310943110630957925255455230252562322525249188087412570306950382069142427855917678536157859028515032791359202541934244919002318949795884599822613834974925907121726791087514018052402260919765258232329657022477623103107854074105155557279736164816480727304964890513466540575895636831352575698682759248085852393975036825873080664175993079065422127778202152578819977543204825953388910733120967569617519533975354443853893995213938505053335888349289461806820728265248637214147610600142075094217668663756754112368493958989815723643469152469681241806411182429369959042015743512128421340764726477929091087368969688930360919846705392499145010463899785099738023311354734151135675126361492406589777541979174456264342936351919714397824187102551833814789130146944475402075028967936347456960260382223966731231923972795312415043272325991054956273079610299125330644919386939188445514749787835267930645151784506363176419885255135568745587537742100337161167629504041920158663027821740700190716456499483800050141697000646446515755333807124326023238937437346364926769654814262969463479145444848766400410058065021283176698117636066863780565582850421278488690872287243349448200518273284666340372103921625308781693165796346852815272646736084760255696345568029802901530722749490690568275986068004121703603158530081140351551086477261941307584583166083286097367328840392662825772876752807135023520102717455859805532827216026218372738671101413464522838806989797311849673675461477800090653397100816227691991518973750214792843588187509540062321835377516822059104131852027295093446490651619142101454612662133229069895609153717502015540292460413558222626150048243891118364495804889682310508509194317794087682278482655682393733100895348099584222376292920749967652089129714475229765498691185861513475937349543096880441867163979074253231906796715477888434177754583670625934057325185459781368792160187405552282264786255966860219312979758078805400866645578875280920450358049985960810891906286457275294809672351742570428707531303040873750551400017559955212661236441406638945870370416097790188847731849175152788016499910300507871559830335713482239682243514632407443896158957651213250346508363172718595586826020264123220724904198964454976126919560248000220474871268906263275262899349245749370853030268535613269839887667069424103478152550014622157903160865425263196005918962351174506529167022294739010450986490399141677978358218417232993382792213444401673838424615201218263443635107699241810204190692628544743043036513318294785568011352479362739039013419847601129099433207074248096433779724494574792282399481821329107055361401879841200205953151900397223029793153012219938725879575474708524416988581538809463756545137577949331462522533318914342085869872093028169196477382169426912727125454758596925980706353936425553037420370912298059009018781167117749117394783164030159691213156149342882247273669889896411978695519315587624327290346262060356485521892788782430821073179185038275578548444097321303229492801671935010193034219844710689936752769915187864311147085220920619263579065894780090639302132203943452752011599315197549357166821864337337919953344848964639517053323925946718540637888842318998862076449968145194414193667020442940715514483414543540923735316018724390299639026255517359333682277720766334341065823698180430123307354730873142500265082730580704778569941340458196445313356024286737000680870604202001101760654859002371773373960092513785872398586553874082721694930826243057472973729143775511061697574105843051312930595207713169136956982093062945286842190844401059762106433705705611846395252859734849944256684417003831975617450183443490237456388999424162380911638341527936546426515998233244326790014897753515823986496725042495778584981268781240601278666629166423178054359945540335617919993956721320175254017863017970805162808337216897782210063177609901562495941382774321512063026210941648722349845509266575385258136672804991887963332696181564635671648290096469223606941315626826931001353174654783771325222548860685830533746481247287172448274525322162653911612961324576307157690805442036029160701595591843360745112405787384066378298818133087916648620812389518352387134197986051383722751615203641161949644314112104670551869884909081023555414987530350972595807376211620347347205848550367329487244049671482195698821776823871526883025439128851097502509604899246106136213875633289268782079994053575550439023412820834318514313116859292688525669769968244808735471089151019188350972887397654190048630607126478492131680856064391997848965211511592837343197711251064742809542753543668596851688793887382589270170015969795692520801818269343642051771446812980798904616261441036823281306117954134998130719570891247317655162343654348803836563869040315354354372551148815258135621654479705014454297377565425555984099100443469988600566670975118222094115297861170002740468275677922952111133063085790188700979925790476146635512924859445106501914848074945052962293773306975265177769033148381050364860219092837763417837515648765434657996243789404887049777166088054049848985087008078034694505195405876995162785382424814586103931297374233000043529308042812213011329451417461984208664262756398077740897419670006413080616799740093210655864329320513574359262148941844084893281065527003681118671689341266958066843842899240261091175268394569889784810515772590812187422935368052348536174059676159630601791671231992428614512860944105545461268948410315988301459859894929258818710759820350622339445237976271062709564343592026087687442059318624677194788457042692615415178928729051716456690192255744388686909341360805138062074488131514710312837766847393861521878448882213514583701237297351085088365620180005244140784926366950565403762510898752497448681776227191989299866067765023937380013391175378034274005298864992505597549530213073625761302511218685476800750086334209592907692407307307075949464033516516590372718665481360342777902723126043657394242677888912754088503917493001630836192082194992683050783723806062273281240760142876229033717403105828322434062068904875706497015615762676332027059661722301789596313160336461405336199871431872648651377516956966808107077479930809499147481049781536591267957909550864097419119379373573812933765556966907883650634074766685703858208262325220077223039789275148319515407184916231628283721057818894150330146636966548899913494063984410525127130829690439917677727706709235748480005957407335817869359373627882356175037784549042050206294805496351333633058600819791916762870153087809117012695413112161543276544472652127185058267526361795469034734391995503595298135923885360861535358559141176242535326427241500666139907743497603886947846056958377509200349594784482954510319624066550457919563100861990726384595636001766875225397170295484236272725875882290714315624746346106214581816657256643883948240605209992868016063906672357758616325476776119215405507523031575125952011159946259206073856339524629092481727821122813515474342807726925497089559536604299955512864658420025236030012683355831721065386405138887148478253290155202995875601015443605182369596887598776217568139644991937748004217924240529604197412861047718191351407006139514754492721182107732865162317271660134623602760327957362013746738496944185209668010302242247894891631318296268512177117573969598688589305165190805502183984957466972773828519034704151895425354129017071287751178117425847910574013387680028317602691993149573304887349243114737423301881294798898878038840463653229435662561063976718776547830761312386309740258103059884711066226091812007316289958924978775387075527067345937288960710130104553667478556873435328457808677256581015033042393541823055427176646215493239903987431580121945373081941724059789599242788230577764655294589511047550162468510389123210389848161025835789406273702145728799014390165924473513971953877466151746319430764668320769706003924731167418514906899583198063288642599539680000038646239341851924733645739132300639753098559478175436871046337107297639411683517768428462648893042251946535244747474881888905400360261387864859454325465429504205126338020886563361691826325069173421641133241045191506163320435633696598870564628998587686715547408266797691616264011737426176873030077905021552370062361310012066848905320241295989921951643743112454926796998334773170958240711128258799303649667480785223979206729812364107981620996786039417681527803043084345026149634660958772920187509247762890596810645719374145226454541855499607769505185398865089152625054099359190291911650670217747336992833305770730067130315744683213574306265853704870200099462125545602616387929882434637729058850525145327329028152271015427287490150069711826714643742366568960264682509585184999096909616083747731554179266516138128382487382893320508398002296484239367562922227161591428294199427657908600760274173293203604487887357957493491169861066166146529288434350851065236048060587724850528295976712446852290287320601508806887667930678878725069412837302290235096116451078713764532993125494439680536756839804770565031646137995842495555919694064209091706163636901404826968389172783630710013366192519393241725001897522767821453861263147283008970019561776875990014551639497055700824505094876463198917508682146082979904756460231083879608564168904918123912618257731985035451629815952417128126623326486371202969098975181033757201705816267115230100312858842564790823502644615054358950900011005658831111634971595784138341235157369882559000486357525091195543411097159787339889823984809653220135654871701509043714154562107933975051610954006158513579574692931723304422371687621308061672005605328775868471394259785857999195083596475937321303947787074075094772389497772201293139886313365204514571298285990360782798492851083289453870268425790623818176430849976651548653942244270814478693158746783084404394690012363496802953129844903888902425809394213542219901347864258218141265759843555498362858108783858103153847882768144455612748578352901951062620958204187475812650201940338123782940379738772459650843475444361811838991957496875028136566579738959504749506623694529562638687891243923748577580444132086450591726278531406205998039646756980649910669213594436653119565466081620530987724826845106849003126968324703719848269248374875736120456129469338638683775129593110923357867684097942972336879049520419657148128459898911340629922209573333761070096135950902153125804031179293715252996392344359354457149987013304210790639305819287619365112094495998672970114035686362096891587313024385081803975938740234871761746622926305498756437789204442453542344830733298551133965093923150976695457567529054086502184605972442776956469670269924700688403057310720463160728266710832914119463940806263551501728942843402186006518396134321255470890685474212825448479736984078586777426639866175753614406949024794660251232129935446108807826193675316162104725029145952457872332326436340740232846700179576959223329425750032576230358885069987549715741371454393515016586202637895182437403553344818835657251103446964942464226446892633214563802715386732174724704224435297570423549231196120336105369073836499299444303537562596330963011413816975848029030154780522200781416190979273080837152801073035363283462837820885512758980304980846793807896536469737880353396821580719149826979881831478133241606643493158164169608017233658030565089198961505289189896344226212217363807816036723057199270442789144198166690387023029502559234139072758489767057638970695315312278055745151289543416923106257069568112782897298240728664258542190554751392116343949172145027410480969040147316542008186563045167913058933570588185984347545340723027725834486138928042382210606733818693864789864879109438474525276936552396205987150856245139933255212749133547610805312716226395546291844999039171446584122589279846892263186524557286327809264856432523553445104255999303333066860719434977689209554365957300069371133994626241408923492975520422835185702184817521722729803643887024890997664257103072920329282191959844198753332139417266217461244655686285962599549262795305538173127824207414446458890128001783673254797902332846189718470703859032504251071049668470181870279038049294708141661517287016926362606984781895096257384076717059439118773321008116313742059880283276888977011971650256457824961926726686910315332638296246966485654309186666425053941014847141608999979422882093403427237865664181372545207474188128589895878580496816911416990370945250181643472622601038407942284906565784899864268491023178002620251103762774851847487894572047884772866514988760698185160568754936964454237263766375518989770945491157473394027525368224614706860051421760661845093587563930381459789104339696149855558880166602266366560122223841568537037629373692681600688193378471720191149506454921486328041571146857975665066066557017462567119905880165569685501875225040250077146532889335825514009936794378888475800450871501463439326809595889846941186032174096309685446841677931175748073750924111807695423309794637462724491617684122528822946769836969040233529817953072274307377947837250729437810681931211533520898418319078935393938383769618991784004668074067391023719280698374344419747975951330880682892756316811655666045351886694830727353424060355463443796086421791636369781307844090360037566740789126070501516707520042025029786678330437264254936616644447851291005483118550215164491594767738548447067209222665059012549417501889397777583784741032310750887030918696728891739991053587462944949277596748749030840527164854162180567680609297904700027869187149594537883650112921027779086839379848699488901742134610407678517014275801133049773933139125632582723424720003299421386689416463238781093028434669657279347384959674476630903604008742191573508615926174785044111541655720921082287947421497113162604421486997158870295469033382273042446810750001466062428924217675480122190582790540068131086049721027915548235333740871056838141485368560331079502208881328066501227294581124679783503007606231743716136543307705201826071885333098450673837603731388346600715215240829638896611683159594663051638676319677415077866670132158877041062775024367149699749264200767324031035975192657779428923694110235954409414632490993188187937048734316219250610126441522744141064005871316622012657940633641646616312906390587597858404274930825803609346052016268154697688380176755573085708579124186306917961379261613205975059284639109887521570997450792619136097620483144430179206686774841492413162581010533617241947733851606529272751982484920193221334877888465837394999240802072677962666932182828435970927118145389002346829541346965544151058228084029636434274173973886915820030260385193528080827354090942055680905607181583580478905710850958759188419283260346640542105522148874918821111093021582889693267409779718962869475576228477416292116604611679598908221177502781031996346917822306062509078671353672357341751587100289790062303577008398102215417520439364535727063782130927669303486857050709789621887086381766096927465806269625150417849915081534989878984858523891439793150184880526156640634599472401449293066127777316898479610150772633906846266287136290560642369967987970086057374603661440223170181321655340976853330254442830626940357124536138760457620091002925674696161767948896054347519418494460927799416640313635327570035253276161059347477608043382379649797634847569749642082718647276426256973348631585678023684704843901016194581588483275901679396130573712259188728253728365944097471605872840343837555924983423731442985259883429159145695174713469066585081240531161521170429168558450302523391467812890047106045066292769980439996660297014514833884711046301925914804515725249988648318359308941648676029183208805815062525200788499676794319036057301850253209213071196820603046994858518417299145521372690643200683566740705851206803095080035559729651321707512342437849945071282368023352605165204360304394841521956262579526602225651802454795126230902914936289963112214680278850356156375289915466995213588658723749866872248895172258078109693568542821952378813526454673389573470732883071801373517196991611230618519311263474581724082928317243037031198236237451651107753077452899522271096319565792645644706968085067607582113546248041613738066647386174634676893525454300749073887276911922866982756621446819492550892802758030352598875962868823724445547290657514930958346514996099830497145871602609459562830499193031931110220389419579094481519770135879441980292638924265542193346924214783525382837333785073857713129560013947340388390594325378288571121133039739609246080787039645360494080669943398781907621055095736004805394038255473866802117255298044296249457007733059315820235393249017752048749332853062978437490333626666739962379668891462815131371148689673053745779409246643806602674897614675133489396226465897552851812074424761437337945853219906863722422787680031868163116278671863311955563184585938998460588008590475753794176066148157230433090849584384813079262208597559309464415216365596307303346015250020731771562660819053372996671320575903667007516846677444319233984338142907329325924504096232130229372044387445899500779952578619417392342002565851328873837164030341674588466766480840182312521225833638267323730854803129270401519119493771682465900766363895366627610084251123235846944424939039588517966928864443453456633736350918167939833314083036943974356321807785025582304173112310002624995232843019070410732315217926855977482928666984455739641899186594676879508416742170509073846981703780368060809921706330152134953482200483450285926711401420607391826158787106665210210941207060854005510637856109623617705940674104110846914662472277480907171929502707679744744466789810776070875925709069953860186738615146223402393443143480021561500936797461256407874931895450616112744458962468900969319054649319863747784242433364608486918602626118334951338445199054755758921274270815982023934917327851051500116170878274115585397205897233372782220125390754915475391323421451968356517021372869974219334515752005839491031861218071378421043261655803138627839889199203875565133997925869368260544435211118420187178939138120411361969932384533890179187321902247578750275636201201190050331242267013481835806446103490873788035739708945175500649425518879897782937308634479531421482306428991314277344416136934986696359120591526331612094345609456681763245107212376033817749984365003924262456813251720545304711089732303860711115738419439079465378129640238867311567067913282212538216933944640848629850131541444264484222008779258756095073569797982586839069445710692126205710876441138589353291424067967713140137166592734299544542979073810841862948108754720343719610965255120004047052461770702951166242967711071883444781649728757919723781104909546872331402160401103172302761262266032681387731364181525799177566909174398587314474491960655132098984959547800598381869810897524532643658699541078415213388279884966260485763248270686588050711413603494691258405164812264175198331586194771921130183631716822894226852317212268788559626773487056020976877781432624172264663294243369995387166730983947860652585194771470921623344853364741245077649374975988591777565327228736880601150978306642092851838197845732589241765749745475591202389651045584329813561856920742415486278989930317279572094291853018347438035416277605024037405269716340650170755022536347630628518635868668993604982942075008384283121371734480738277490038544697670842333504326894444240082191540725637484259927362868098831600706133643142220330449572324428333740658818900706684788555926307002039135091105688612835620154441317700800910908892162615903466650154060869809757605206568050589820333208723701275586475670237075429633418583218421181669917306037012676968496760251292887035642059682989911438234037794875693318238036583014775508545117295308413402860151381746107577168194935494776050577490017228821278181311508481855301663987945670233564352055144633246209879257122886813533823499638271482866643591270675480428335393744155859163771740102946846878354278338737794618631679541698756548370814564138810934723552226573540362087529348700050024576926817753777537149839029393394109572689940127949871353690702219029487335237547344127754757443428722324725245215624016400816037360841327257007696188437537893009357592937396631184854811986530922797320691396659608235189001241743462999707498449830281201827814113674371127256415170784704121212213479239342766916565705674660823447288623018452965505021474125262917763889768362348912634247462668335196308991565506951901722930133987656347510676926748462168357168392217664336381026814092882843854446888768349602606049096434757885393222455086665249409796828751175851258278877852965877057769877417038038543399149685470370337734899665976587133501379338291456589358509702292427747671901126012365434491888542907016776169947100187832593238255855422883941232040042949270015037782559963044634984222476232983350924893016847195501035423164641618686109185969726526359586873635867181763290344049292749063445478894003777905557625254780255725156756025865687502631085198614425695321223611288765656277205393728913748322222614924607277174238846368387294393729444763847381667855417686558996771982716011426950846355686815550680278269148362661006163478663757385509187155394386880734663219381505913544219197687116757981634194668609752300572389669587140518348085231086296856215792109629403687636313423185713277332001090619106593320573948471387139349674502774690228246625507485815472236291426065287495872285027134890032672618270945730930775690918584516122006292310158630260135782724487128718878186710767277337370390528891945944357754258131505487335743064242275404044343461159319945489012067542047984106144821056522542934836580584900362688465902709420605426195666428929374792305897780172067496222326786969622186413330876120092138007299189905285769106511880578039860376073750905838957463902762990260563582294750502566722529513267101919643451986158210037767018552305222533572204603108430213674845621990630626162687147384007214147983134777489256349631242747053470641359388298171757215762704348445338684708974479085674482784035007906942409616535619257199046251836200644261827613168829914182643541890705587195947822771363206262005671371714541716468568401174525490969564182712833178885557524752024627139997602101550574288350729194691413809375009067012882359243938417126540048073208985245051431538544057158187826573916238013611563374926538844644552849891722322399715120969512113281718069111081079276340293939717267569697787898517463940136363650884828526761963272862137643382479622197996695022524632796172694930164081564820024997349558923842235103863443535073304721535087065579512834698498877348952949608361726057475180938087027159063078398907752724204341828615858659528020840988294662878679425567351583621565751407097276432933352690569321237716988262614336261714511360311342530319697997155084199655574180554725820692435167653931821044129042388153023305649276641739993417203946184993954917357886842582347894852423715468186413189439634317701797905009591263237753216075146535410476992391663350120943273715786059729545862835556754891625187765441589523394898654499694400233733463441321385621296940885342368961567491043901651759394512653104727643945193801215952816576800816535528997060232218022522314597306881971814422989390099433834812364058166698654465901369656674605863828254420980106009943330364944876279281319386553346365824601855898829488773610481222940698678219889034497799912026779369157343759152509533784680253640477232465359902277157688817074359223557101398130094063166776444098859748033903042355358558452878657778928533590593754563456611891512212055982698457724464003356497942407934559440022611556299526966927674107848067428508259850249951784770499359941747664982020736266593785229896805999970963152510021054448781881278141610824610568903521561590289089740920371601101998447665307081944924058362356577149596601326906979411121444227503198714872729076184052316844016802443492129548739636605974283456644875356452750058267051364048270762303211696711810540927711082165782583997593697325864503019197534762516136970358733783494373920779587858147316179027177641339911491752195213711485921465409672559321906333896814564605624677912700340857679491889340503628879074511823128454090847203225822727799857520956472088995131664820874538325458288955238426204539097502428432448646212718302725452553960799473088868856220331599339295799849519544534026968734895784660154562681507304618027267473359883673587671014836062207150080512311165386253899549705161986919135110259896794903329398045841085942603186822860938973141067547780780593692140725401585821570813219991850190655484073442172682585642044604390032347399590793416884966772926894595139599822831524745890133689538928013211147024083085953593131253316186342361938440840466750552097355185924254791011596245253521142867564217254160827354463651430298204691907627410915935023953654325251008428053175625423491901098786432069904132808234398224404128580559555418112505249213715816097115028739693535892069162750863454298596236051541140632108863106069931065069844921799882596031011618753569739512102872731177189445360227744751778161987984611993303874966037052740941238895248885193825599465832587813650645157101396396842634991491006681802967988475334599756103245166330250140551701659289693578321129002191871307575251730884359152114477188279963066278417757580048704049547303571721178444098582182530506414319348556366312204834995545200176916300031296345786164979721799698097190560986482871090122688264186675123532606703539818069549107980853338561708296472631723656318868042319429292351765994455931253428576985226580334223876518446503756436261944597355613791118582906324012790478002116215936869179110691512040041238351335052349633765104627369558954081351265589301918671797655789757330490532532371946814849075411560856890816816818570202720346937236711155137866160360811938947906062074228823986993989671475773300779720053128978625821206619264405222495106471000343895674016717999440664856569120816627200642418181410843149716169496067583706280102521199956940948964301808251325174065786647838563525300798202475067178302967627568336859551083937163236719953080996804558328724069489651036688765144530104943954713056862162702978838333279231207841168913591200790534121943516340084040213471309577798975813172511817181917343471705507257708806396358386002492475609515069447334187456819173716715558803115270964960843370402820870749152451091984675144341745126220595164087799689543187464790650585076731959134784373652072010258484624889533388366001343247646334742518803100869911857824544042706454795782524654413054823047591437894562553605621222631613606433755790237616814426838119708902656841853440571716611029549959697247631435601661718498259627694274569127773070757814687035497608240621535296635610259362007790288768053257699619916727879452624206320962787326989494211802149728370896962692930244963024164992194957561295261754943937272207557556182800513769394829631838435623974967264111239603174576780186193096200496636243481328932452249941721669839769719135908842230994886816069089560569474834687083942263939291752315534045971175016016508359080208400620531708934709716606852889908345237616905794472612636841949834399657170812084672546407933971555255901587134709838632567795617196458599602999953671143856067802808100316869728972825048894080604880624433973094553557428975327710870201486579591678636651854162833159200320353275120621832969437719212157005618698371232593007993855184674815993262447744233797269090543175829705429735664591900413135459943399141735050564806479701319688551862668840993637889518419872860217745478182078342101651453657732377582243220388003115627371613636561106983093702315302069892358828689224118996518063095317543601668570592368222766214532980639307950059494038505805844072911964257241672816814274668164434873599333143090902776324099256836366912671595453791593045585209902013052216698213417289692766056873800691250516115314004799621480251813182248623818216166308929622055186719345727907373066013472300935725672608433213448057118791991689926846001113805529118226949896945341189354640324619694272914528215003548390427482924327054873310696178701424333599017979828475768905103389686984699658197406494160483484301508984077748972193906894681956194241622360481577101319327015640169388380823399786387958971334515098344116616923407429684668353680385524796237964498271285191729990578033307177281053576674792086013569062433049293957409691054329996578285593568014703495641904722308050388593968382958179362856057436555951306220514065643788247572273911092986036199079828601643594300092805747457193178520720252678172212139290625256483033681054865750836948518020006086652013415811669951751496669037747437202508452833831811721103884832967000032655279062974445448887768138668572512999519794037693122444834076747850386470661150270836635624105551628511017533472555402990803263883757079994032294476202243553091932437149146410063710341020726263684065457840306684460937286786538525980902359063983160711213207488657687258240267922595564638947195618759741949388188389361940757265622264074559346392730416533458004915351938461871052372409555700756470304470044910311979887867568476020357866159269927854261766281026404782572688881179857427806108126386017081979455076299140101627170145466624020257770468267320945518919644150089835695941087783212235718443735466858663823594319793386246477219085547123985152601706430826560890311218108686086638296379709165847258693757619146384453211786483638600060697522721659130376647174649088559295000325808036348826321486483715440782958487450474967638624812455933109482493335014864916445525617933769600828241196563459159036812757278414750708753252008510078453444371890243986672785948868541767631945303819955371630565581395438073324315926024594589561358383417064909216602289867556777506773029352396196251127876458641352535627642058528856686570501340780032267135525408678934126556515531720491274731003547351703836933948892289264300094006638134961291332506157701900310471884042858590120699896823440823773652063477844014877977239083320872424941414124591287200598294168830024347405680475106012596213834953267162553603333743926512262739323137050885120239695726158454049536239215725318249539202412768152305504740175873074329705494442091234397394254727485829055060216796181342300125437127024050029743514090296588320348226456727406081229047353194993946725820248693442998448166227931299443653314983394282472411489241980887662620180079948980382825097241221648619448841463410715999675574074658784608197897332968601780891643752074800408504647314717472566194622121410415027608017569137506188973203482520005698999740152634867864583809153285057391413696226241667172932244951291249952196568629615565628149065713306694490576172836689492161879487159328654190327492124725812170427819342595214274085290317130610372225884064519453422099987749897363300646481806770642658211483906991418076491563865842832086979729987421998277898640161962210900921533782640817394477993452808380987962313652310768541462716210036506684630830126170672095689596952657959128996101332498450806233356224953655108103579908257340992430856619262159695945220092659057646341858271846537025942043865292973165297883803391220037104810312927577264351218998287056526082164081992970877538254761806411847388459725562201918292801112324843639942111286336675692510326774813514761210719844654311925946607736161332952474585699739961505616672233945400425923993315605837388927976927812147914548667086387158603110761786407530815093422587157992878588559349143988575414032296067680922445141660287700720981897352626625015475996040777304817303010883949874138391305653276798006388867501245522881666429826820973905575047252022762822839098275404080376954122982360803868806721742933464245800387602433135415820666562174638172803466460208654675003932546225084810742241261590737303678916953125616267375542830571825304553282663417568953578110519908042006384717162454398042560764951075406840144910464017556268356127082903777480028164268953346917322692671225381034844476347780291110279249796677539008569068468910346015140920444992552110555109844070648996903370903074014886167981447515466105799615254215450146225879448013194214595108569509373814863213801119935639915336448425780621542219594205096945726474879107554465234451144142920188543420680937322562025271694770751634506597721683192266116727594304170089983065567206769673704138124660072319728532864796446111656007404766041346698715081944632541933296755404450662600539065799556218833627693296093316947509967164580897184164337314893762529527266253022728767923427748650581240196758820775072517707235002699231565637929585279398624424898676930959948679683393511661241601431954502409159129665761375743670588261849013600687604852243247979665938783794085165120399557448696824475065557838442741870599200125575169096229768204181898649474966798236499868931546227662563040830982463135709366089958026691988376519521556480020985627918332496899157570376211600719399123721441742951309975315974691892416757151966253437967880203867232419175618794058718630956258694819256356888341326508926064676638522254442635127645699451948256306369477125161119070896761966159235253596218119292774698195416227566628396016117699324638605277800635362600185802399756232212262823480597547199141974602047429631271459716774420084999201370377775934020166236815971537522310485578870535394186067404913300374897097423195038045725515282570576842990858966139269432736353470303483775836116823612499311116716483971846255691288544229859240793920925075443497993814378336591723506987440485332894408024839292018696556324486719496261025790454487930814764265571015316778199147366034645320064516278045626807556595726993189024611226439773262301373986763060588614438644747513526176391039208214453900495854697090466575673946757574239556431041037464796637503404120788288976781043299156519583912764208199901214464107588562503056083561826536053053801538804804126557671323085940608738875256177261628563200272052558547948845454511782308494929637330910220558743863856182273319227457854932093636260585292115305225574741863654403317788745831028083009763884351763259302904217860055478318144307040257185398565722011876858787662249713136274698139015400476943200877779620030051490219769447009005201631875770202292538821678279171917686983731175726804670672231070303872637772980846380614059227300393584022430365587089360841503841097775380178660898860134431997731158240512304513048720178654982323263386964801975618747426868330951138728206815079089286330476097813314579437550629416269653884385570410734060441794410562959276996607114429831631527220440582544312464299480211854410309883934512028987508909153352269849641228765980473451733894589936002557790206823013015186502684990556912030639832246182069976196533105891366803736188611445639034398421443025570475004702460676014244440265737319092051262455476838935435468657827342010288781450165798086950707538081472448912825609637999487364654040076455649695119393216142184890914762454689249865608811320542017685757255760557373796235321376298988890310631568871139637651300058224764219933781800422409590598078492072344555835715063081330534698708359763322896491022038215779693330009532621082029406235558786705608193827538821333399263549367395969151453582604373892918633308222934654348134823357539918585713929663881108474146579917062529698162447660055762831522979842304672878848351418138677588146958933535077769589898909363305283241891195133795423986276999995626655757563029353311320951237927019621132762608008105925159370691659618669018619983388364035894949822759495846111755606988320434256981998019257724331541192143054358203980559634290494080171580993964760377740837527817470390003440889333847060480420550055488002837975857110385568055704006427186107639789155723132993325611497939243177748227052417900299050479946443103179154443033780173006723671174797737652637594232046620827688268533672450663871324111125001458801796634525956942254115392249771963054123477140624537461922293370004181058230949559185457592264256235319201772282139206710155034976908764092659721203733791407168990786733379343708431465095839032039927687568567860094482116871558293055221914454318991053002628493586513908973290287906650827089493723374432491066729524150747679782675790973981101535214377775017527806919227998811458448320978188123598035851431973019455270105139369678413715838518377547058086314185795201281985163690829490941231879526305005595502485636707711291344963992780170975212240054196916721020929465908806015564398139135231678512364722369757370498493226170075515655573178102516797981745116045722402553364860171203274633856666343502135947002632005155557334528452325541552038568300219251415155933067615344728572253463811173806381061638008896010321652304386560640275916670598117589725230653690883966802015971967175113969208536107888337337279445841641916486423700690862881399200862901785834798880509584657971301638206109606020220256320892647878001335344157557228466160420080950891081872023434532558854543854171808134995060180782279906791853751919961881272043279745343980880484873444412367437581858582018090402493052885644576749992283945329169351402111951849706258424670997995428938446863040273296307889322233727844556114482973353922373760183565272138051495041451393221797196330072789857443668568366438373217441104977156652494837070651785302136938815650891934223979065623784176535769583611027511042237891951907019175569432900615438050881389732018227097089423865032869456507945513768993248471685027807858861701889643766601056225507439010828909301949061677896092942316431423687153472131339671339689624043135471853124621173244907048176931516486372429949929880877509025576692409311774983447983094813672323521932194121148713024123880230570552037897235049844628761028303094357588621642409254017048745194953838710343398223882359945805927436244603732950387877259777079707312749440255435293552736793162333803800831801211176331438822717890752143007223517369783144623145564311746320370329186830730077331254905462308397186786737723493271085746874177308515560400739108016001580683413392362352288257768049228986296978285306691635429000750021329469271719935735339248385021105597665299607072826078566678563861134891861617584268584207438436511269315627717134563462861079886740739433432935403106733627868354317693423662545741638512562730143762284927382342561878252241273403550859794485706413223630970030568070311722032588892163361761493215226233560540670679286709048156586141275948708154326226998493704814888876271466014954446618680951154490970812917136249883106318913454891802112364142328490568264221635570788382066146021876352719931498804091637362380801501643856856963561605106589656984085181055473344110717642871674615282516095204960342866323071750888287718954917372565347193766738881448436990446039338257597033635307668800551076117361168617725923481520586246062989909999749290329369665970853004165251962416212370392948776409757832919950885018532902785544025853562217218894435992062703637964380275500485254229742655652573845971469279426380857970201064440890343288338416297182421099356430561920841720112164450551947831890183896589943699148670765090381979984911502700359238004801334494351649989113446057804511788432748622682727471456351624298656638364826046660391975138366588418953239787563397800412485862141296247922917641796690964926391983050053717474156750210693929876958250885616568199620375498648089064491393382145923682939728866755329397077541882367408083385797305035798178233600578841518316458934072712851268012857132167051871782296020224375358253811170237517506253627663288535409920898896573202654348102759135345289869773664976969143464808342097427580147943326275986624063326184935752217389923477516686978365184022200420966192032580808259755495401778938103327814920068334611199620453941894749933911319255732056392958252420072119620655975686877874072162407232962006110797338869574667661214738313980498668774224598630573728611440595070450009676732103618000776443736183779792627086413566368733699571853659962204580241712617294033510023465096959157232745723109843898690787637737142377188059430735368983587249803717121372182847585085925346861604353381807494538182744033312276688964340912801546788498522046137969704292057363389521887437932607609083214976701196245848102652543577796756492981024846601308822790565218466011989511953079687136076451519587239745981733443196473790251847484662378161261228784034146827070001101151119124094057109365165309832032817344174387843367674287522450176902218133141661438537446124038378620896494795447846119582634206511376485168593460473933881180855112234288001281556633626452089744622881401900549742343617415042693982282764418281694577747020608226943200231747746139348015041648909319596579815002279571264245399847878977978020566627694741272631612300345251398268158797564652385856151681115018191520607651564102764085038560530637474394737862470080485923142798184232932884316680464365508597172530779820788946275866574199011306867920181791985696703006087338724237543215072720552419705436449828971744085189590380525494943376742395868571477249907783041986084465060361571965556322562232100951738801993355236160952648095063280720173434572109331035248362975724542309313997057796950294187068476483485961806936024906283826132528193936657896167522538189559495650097047116333832602111761793054556653926013377193599670622501620437858947808147544617802562472375398308726195851880115669277490836830829561815416936178608430111959403478150478275675084533458147248577648907618564903540340671263602010945693344439112317604194710294045696251861279533675431268188750238985754307276552323671533594323357772749380281175122441529355178766171501442354918676116648851851579512872319409135367455470358381695661126250097903342637412546221606108965600925648427748411055096633747700851802460493065073103873770924338615198255700310709842403956428568678622900079109731138728402237435131008232857624256006813826206973404982616292286739273873029075218719424689746317120225694881625828995534814052296325746113217271212509429962374651566518423574610483709627833729504057382307825701713696094349341093611940478665339257362852866273370102570239824909684258300027633504333101861887180519471882149836240825377262841372762537682781037128878132184122162975842430553359167600377172032290142251985449985666708257750282040977123692202635704891232093793906831554031107932090226931575164404908156117059825648651176743912143906324580692380865178459925361756151802371242358997449989964284755256819860104645033796450948971743366636243674669168670933060876565452868909202192913462231806568854229781297056318632569813096931532803214676880614311628872207084994508790075813261217030677798072808499736458603997846037020889145442993748320528888325951227833760108808818437305418230168150836091579523263886612866569740620583805228417550516788785398168167803739727734021572780265875324740122153485954376461492445385096332763089876590911744340238396321512503291409662698719133012989381628742173843807063775613268896290842033077415206604900907261322246564789690506385609087481318828339130947946921172149379074008870307153448653788295509730940921858913815231866439972321181636810250997051941389641552836912510645438255265147541276826568277132543790386742339300980989394489803247522506139093584598914560044259045643698792369361621772496380624930477836256129025857178596992080187983817673539743600365465618472657922982838904628241987553410756062503548921289969306630697407421274972628160636467525510367505066720857200544604890460184986314076424781678945271424451267900226546261517662590290916185174988380262284909419522996810027807431972837761113339407634587099349701428339855679897311836970453546742080977335767427316704128386060037811432276185036646109189615189203524435293630615230545206803939350170617186601800645584530709839998848763511148878558454317247935916820507843921290349069796901838511856360910811419275754637765086908088294830922801982033507550681118652186773989878829976058212808724670506345660786770631490535677998043459900111786540953916312057045820696076944247863118479183043265409461807040833574398662120739569756170302800978913999948931204554082512688208497435444871518231841090076877373542255843721379780119516216548486311867689186089880420143297173205710433855350588239491910513168607650952253558285034009922932861087721825979599981259961829630310436034840250355390292902511945401489092024843381027151322951888199618808659772355624342914924659826460542778615915602916114549615402599335313083271759623305180987504151666859593723451782692439483427102339802462435775590010178562933439584954086334971658969942590900325985483323901424324106973516007416353633654185288540574345141363987081778972313518278899956681088714783194578608362175537864599561965558331039691450109723482464065933564043690093198742565906393588881129437606020756375888821382532970564553654566441344740232875188565226922321062143776196714237281424836665367833651218333786058210500827632269953780525618364623839192492208471608061028371648799824423917574691143377566347506711368367799074493906606215709131017286317246053231264402466468603433944752836835253294249554471451960197271256413151097020020043155132388892856846496509278946826862852796469283028814995187447860952324412341164631661206557377939685948675091485402129947643040605090522954583507443877257291623362540829645910093408841405424499435543948027699067310212579361540886243767697226968037992605730517157307621942304789366800929683681334899209151787464588674305064456144518062329636080505457730300841688146990398398094023072307979209410476106962187206697685896764350025193085617426037273015595391043010384583442879121472983840057000510369600042460974171412048200985535420459846898455079396407375592833057156518757307075643489880739267801555229687566924253437489981201056431274077059596753248886899582087221711615679781512465443298391112237915441201697492777899449194638723299431185626675931013825008433524492307997838280381194166728787847809488174600158095417490787841191669152238094858286481813202767078775311463946853355729277462842189957807369987750557847051148774877397068218714194814884220424689851060397351501451741772269159198177034424094378138140438743103610222539853192676313655880323105824787492800059473115600961904637316220879568912352828966966553620165552705578950771015778840448201564433232692444816177666714044393651525015582035651193407917269396857812158734394840568001506744951250282740164621723160362162869123907648895727931094849331527969095355506165715816201039103612731598859259292310669183107703909666844466271825870111115575009676384260810894208076532106428676096077360604663145888811157889938348274119169422086271974142369850716892489016937349860991496973186160908955472054221576024751205110431598227707082550648911875210063380040686012958114442827526677280560389470965011360937579663895027130607038165865010669483742895897712184545680526165586729474748937235823496511899083699675199767185870445536671732044995793086409978813509722005362873817868907875947918404741463167539639808310435799616907364458328193681457321773337740443922350041106554487222097681694550601328000956737806261431851668880127971011785164169096702658379312269816568752266094255571032138044705618661314562295178127248265228979896938391432066748085985784121809458569029662099888706981088413278427243390950811559864927086355415405812772003418987135521969722598547861113753350885290569108616575851419435239743947965720996813094333168499728088634134276381690908294187821228350151564943932262894993278714062666121622348826930702317382239841293288926365072841681534372609835836823982311884055969114147551503202400388721671019862565783150888545175103891712758260434457372616811770777362961653146792676565339423302383581280089133124215278594450510078885429244975635145515416442197502182362340340976299585896204519029261553625864127156904376815032729752960941250506557475422498477637690722583377053549457457596437831235174706580873238951607798889854536009056424999785092449992465309862317462273432059850740815629636995916402797501074112758404608509895417463378117942187805302803899588741994272934322478744109153554123118807640567808789267356488297623405343697773411184505845874355481368145182855559968035536837361846039934753586950763220864309602815273143877669226155058021289461104138964667248219949621463801740139914863639457460285443298648358702145062799670056350400640515834241793048894288867095510490420176964131688376477716305423507998042945843161642404583522776203718184607186392080729144403336508775768703904979888131949024858765166758449255606454774795157994565901904090236433345650701464184815033715301157623708337303341467850859314295887131209162953365734637047994737486429405861879545770481707463300285148630902959780595215581331321499627110840107469454166804345698072546613183741621740635807281137426634234923965015324446801805725002166447749739084231491800418822219810035688061801260202399673690395384507092410826357141846371017131656423448311679884814676783383294527283647157035544492578012888757726732698737029231844635971829346246556565602563415415575138250840675493916911228409615137114498385931966829711006826004300589732452821402520913879317588177330811681475292547890436748751792652685983260045344399176532915426455079194717632843929113745042423503582355162494821537286185707048720549592131808848127893547217281786003805126895433182300353617463826615304723939026551587949966906363179872490223124051135970297265143195256771794632095361602485685581280075271838217459939173663765557035870801358790879075871436341305381651586808118172860016485658051435902522207788508272204315720600355665180890944591694437564194132237913767924123859791142594569155469281020280282708935966831338589388867416327715659137962607333764795395441329116287025238615851745169243050975934339115796656870320427027670388481693305111119842035205971364656154784563695265921635003605324573921323061445566160040368947718447441803330838770120822066880981680963957101980876923556672686731015622313085847448662602097059886761872797279609805659924318863278284670882007121962559306705745729955397676686769647988808848245186453218519759025957648334698548802910690297141561105885968446710973997064920186161019772855760485075652360900035716763535131508263102854546592890173539706281100490573070505846813648011568596610869085825689033818906217384117925365025788569084086971121738310866218511854346604924223008361273984324356509529591900730066538615877627093984172374414386228349445353342926608818121544670890777221273683220282333591943896123047278636032715627646977882473518442210952623403109749522624060200828748804625315558362066914592709962685103308342797119182970744399377774031889307699710405327526247035163555386298476071478062888470220987481652449025074781959386288436666937080608633222441077365786862861102956777190918245731092476470214108703928756329113601706265176507810018389925040912914353106541598758989673316998884582647706634108265774726871538773298413666505554679644378022574644416848053799212143889387508769829993185132960111803504969077271235219729907577114152234862390223662707150837072572941718028954276368887505040684961709042710868294812262349172645556716466196421412415100817969739519941608151766043612099547426625015639725732870256864221012592126944286364400927536970364341912827941521503676042658271864061187595960287400217081461201385317913753546690677957789219186722814215808648946246267352711708052004947708955561469333265010372057857542236678198352773753552984983064626907604461115953171702710766457187635584433481239934889781664743469255103317773072949649473489276848007362205996629600574650599018433364298684628280401963925982709821223780143938500730111629243061837272842276599315423075131537640195546343569273472057046198029689635065579685040017527672419684517476691781525995353596538171570796172360042443614129901351958462375257331311711631140852482577933747246740039339645483465575282411155341263351265202941477517404135420606659874654359303943145759086622002801217211788342883759246749851045703189050113897838822573440839231906492799807632933913030090866407174402763579936912571746243645096124677765760836305947362694443085056263813263649816592900811450611174284460638768644032738766137838955692217764784437082428347405401746070609004300662580633747542904906801770523936807629302072542607407029619839452972272189947554377741247152620871882135612815684028006991355006344563394238943641837448530510762843696069679178164430700692595351604206237024330360149210271635109066155928498019881809958272723798325211621533275912821064540711711885305662074925024435740971263649374328843388750914857435139106073107491651957031058282272996672976913383935261409454325692079996971162996781535653982624121710028120685737262001668891569269933759597381284166383984048308870183562198822341801569932564712789950948615123323097793412698634704822213830444515350007860037377636501250378554960930624402132212295282517257186428545232473149836962488203195321934502320001968815620628634843611537539219547278069231778956381227436510821966343926757983197246412785124197490171590124118984431969410224201835530968239028962928486445196174274130821207646652265073853797848810447374774828916353549263499447538716885097082027965420055574601290365389862166865937800308646795784791876579130831484590039929405290161853398345571547159001859721595817019643681829529032933959916493283529732583882519820274429792432945681566743094637015636348905046948638905598883284748878682966936628986080487431245422032616950243305640175693905052640069671794396534425393899743563422152169036376172935297935925721328257365271589016515494523631527884569668723508136965164075218310122167480025964622861041915568999078542548831728817038397739417291934988401449976555859438053901972467142745755006211269066768038692305908812059391185566073506066371425514768786992810726652656696535470492550004950589359518523564853000678668378765873952422777734155386683210622361360405283646215611013863565414718626219342712907717004126087932692861795562919144444612560310162673678146141218293199222727154456217822281785397332599981213383973999828628489289454343680191903993841811970823867521047873145825887106596250160379078760862128079173443370943363292880431691803473974600872530495695459641507509201205008113291573126869311685317579264777031783088717912240515088820338742328137856117368568224854984523533990929829378269996668765627534660460305241522892891463666214113114883757319070164020220619483912835107383820841320797719061067181186402846802565777990596685917942100716635607557385028394949475706736663164571954128293320008091812077710167962472074718591930469492557835208026752471766104715707973094986681712576357038504364640955387969186132607392307521760218952673647335991667784242040667350252603948265594913753847000006741061847200294715552833065696633628413118660214345148538610973816261112767571028858810538089141241665378763688068644494987265400256372964663742332950216887730305185610793030805822998712529830753176272902952438652305734358188818606461139996640516991703432665615655339579080273713289789774880162465472630001916544860202498579279565947113155465219208369701235934962680336697351682537104661783807479501588288195530058737417786089681094865528712705785440374755515740249893483244567881398788688462532728786298052720832795039294496528256174575258714440345916802203042375702903850668025255667104946185807587697728262705451527332403417792942470181375379683188049292461813462944423248791908350203349837272578705243759397885457470853021042676916389257353224037659951596224041462464962888255408609750486163007498079828582910448355078151388150196807238472393608906681493513951629558870117511440206158960498800743787666115524236464605176629757620726881860334668943932498269616155758052059548532814838138199343953331100915481454814676791296607541750908742111840454520808498496125692861260639112461074829557220583932218161820435166178917657208007296112691206624347420712112589387456240223953836307593591331643390438519644753270398689272121309557301772680899799840896821391312719634491520076064153292025096681470161350332419110193509746113405423737796184952280323681885080662040950225624478848576273947841340545407576178711383916748626239214178644947096613646694952996793307331354151627444470594285894065690464413139452072227895670658865651104198889956544126625610662222297865514709424008673862023227287684027302763484004621229594828351076301017201156763544375111009020434278652870148511663553496654057901555186456049027144923651898967515104110714962426115039781527295615813107518132320823076786958671428045328247555397777866758820051095031496984587609194995937841250255023960815516277494345278238102217703336801359818778550641968707818243880772568032305280860107678644757364289145046332253777035845109010545337030256665481712758974127266719906569187220065751442693207172583620796466522981930892421835974648216665412422579535834085025619948627288956327194164904581340948541182505674286417763554959311549472317243963578033911839043896049203852022457633708249397068769852175165033960391996396988109894170177665730630788562143296889294727719317073639279037835387985633729688281795487204476683538965961900014201344931090068794873206271958972396825843017052706661395175344366564527220951770754998940848947786087382500514034814960909371088686156446524588541293855518808702859300864523475210471110490666613210138390916617843307152154894456338303954568030321078090737640817442421264608145899365330784549915096891595106062716844208353705416020668616790146605510946384165098365688532598258087481137995051270949358831069118801977521265341424208838276045748937805926795588876124223520231909204419904728171304301289808326413806725143170619175726296572978933575968917905577443886463266970386905301487167433851628659763824077639505065400765400441091536748390499610923301548518219877699725848795128224584140346451716445548949187878350379014057797912283511479072216665218159919208933868490303849854788148616546794037417259494813766778663200370371555918770203341119037506483853830648751016635204751036082119224516675354912257572614365562183189752842707362048152211583266185646706373686980086574310328184848883649887113488845015979302669958788870572622983436201668961591232258393558314346393726840042121209844468023056110535778237814518112069676845609544200961977478406523799381212068376257396699365939309390437686215825208615725188926542516223987235432311601589353910135496063094128901014585826073700284162734373753822411280963439553561089928151755879708007635685214556291377631801955514464420856061018356827429760227467578739573602468894263564600328409079449222313675935370462782996526306021401884526194974699399907677733358260531108952247916231091756302901698975952184921354806515958698774334319997122519853341729311930604454700602217921191968135735364935538101311239407600274741725248760803167681834718961963162750291769721750244467455883661484199789407876338413982292009421358714427981298471249757073057285709101233725702145777061643654786733594761813295029874850655887509308837495820964412947654924109804883564430936696164623775828209239443513312205330469678927836386604640113235037181572916303314578945653932952965070494954933612434459144519529343492659189723797395039880008480974227757122385023157557719107868350201744145109417532470860129986184569125867297680586136233784791828069518109298994157597115459373514153911999232525264072120325751157744923455283962345908480271604557885008294945508803200233627741065687640176796493143257908851850364193013378231551972642619126125201012947170323522320649873114527766671461085294082906035118811472190817472357849588955766198198373802528850688253695431145765700421587703326279543883507554295544902259910814510658840875688696902679971879299844125301127874531165554026613173389808594676820976553558591107475087698199158309114348829598508428677746286372329042052349420114673712020871859756697253944912858055766891470113522888626877924577561693921834621454231628411150266604141159891392332254362826381131630979703658482077473475325336715876634462636529927868108493199051373542179167456125573033170699653479262778832039355863433277559138446282000119826787939735752478400343160008795044694097287838893347130812037303607919115143546439483606691718428624762959243551729237807069750961528141910134647856258669249183902186898583177346709516829649302031017428181456079376434031190570685560430118653065127776442728158808212974979860232462031053906245353325178499720420227358698570438005093906280611000304625009923302235940871992981716890003130727809446704609527117041602068519702282614273081088394312192787037965162214549870606878845177441539830709855588967199643539305021273848067972352496797149360200281952072009006526697833194651988468156018726036738091792627619145646390323089515464156846255317651723563333379880429855033382795358833596658059473620717970770987089455930670121958453850695583445700571379984071257116560770655148235783313544787969205484044533719804662567949412564762806320134327314636782193590604917491295334147363448422829093952793496285501100383914591282903978182933429397443991875744981365890054004207740744156116534739028513632943503643922887257134112985061402608945461754449015274476832767511193867861835143206567778478270736199464071002770876820100369222162090770404899355694570670109166063025650667412116684113758256383653229098448651913410264058885286143204863251484210369602984131943207450837893005986568226384835479585146414536459880842449849643779138737923710014958160404495913901184016940501385089085014352470264432264756690514362386173454559695464897156538669672826619855122213717944019800346229279840171629959292523804003992037439199736811065029039316273861743063103380921883906620739009796986394261947603245823755751033829677572620800462757269592921629576480845202125848919922019059505385138269012962022152001672811117852955315751110548480473476118430612697650721506559866973207580361802245513107795339276978066115471007860659398656945553849629075119647836020410015792471727330826088977229963696066968492549125168268899213655043652660441204901444152183008591956665422598286901750445735273403906201862071056754815849207694254780710896169803115959431591066287326103158051552213690312654230139421571721089874861950318591483576353902047481382993923783050891893049235103244954543950583015644439997152816247981029886122585751615506075701498687106624385553703992382291671299374455940271149780413899907640173250435432829629697653800664666110738429394694649184421961244217933798300850968987302374985905293747773668563152837900150067622522045139371461198171472576419703034701064071573950376142231509886714153989599746171447864833067564894552064252642318896667886349524664651717678653606794116546977622874798643925285423626573948605448873221875056794037513675135023933260582139205532065739548924443265466266216048663736442496624676274312445205939227171592761500133962008701982519011387072236959385302720644240877990016866918224448042372075912425695991912450859395121325743725012720065318507610632097465882947552778670025887658763281334467038400514659062732248405730875412645981007683663423019376943358978403877722222743345257317893151552290615835540671149179901775488503909027187071753483500506114348033919471942365829344666078184109207159509643826305631177323480085865666827552266502344727623817470744788143826891810572776623327768866840243333353108852620462990459604596771155220499081844148602808999694000008095337154738678205538934046391319269261968587563536001819834794162310035017272517138357068405574201296417285338750605101734394109485720602250357161372823666963251817538018201831319721012250317166096653666411280623815099442961601843252244763937484325346280640562182358363767225628774539340510002751165213938013713641964445550967041633455304107260618520267591527058668221455182998989377518512858064439144623023619528342798945620215927662697100573730979809443716776774842565289052110280079614936309680404939907504278590310216795705575524231884242787307888834331735938404213124037711937108554407758345105708381142917244241435224661732670286041544344128605380312635219134564791563513032643045909768927718484711379512548844199767863273812397695978723863135163278682326881453417512011285457218343233059969861993967220334656612232046570833390941910464180997608954280958663537839108197880849644373294382418860076353276195185297893255310363857046678669001902233420128928488372810981904669873716917231153374435941832279948280528461284849130131662582869796648417463563126204246530310386641389679135611585917283216539968377107088420764782197215293409542225185460754797852136209267477102254262324014841007303487890358824870377907805385560820270965954695778790537320631255793951730138839113427573504977663769439383695818517385061610142040372235892799910285800201815953774656211410460657017270868316988654331397809541891149054386915722960473732698365475874836375095228472410537969948102453429411997713440051042068320865835690346431928790761677747626154935000302408008724489456985262979197682393723178731051897023515370892374692080244994735478180660619105098228402299546344034769887327292841500026327262393091140176185264106497804617322669245638133495019882741128113081860143609329763268005130431305625361944138311787677865574187281152657739985555989827584285101046671667800433913015238064612034626315430658988542644936799823793966345223318453504817302251421724156059657923705972025224560600415500038937542951079200770191650896854350783722389721517626847954042273906856881032349280213115830052628962192052528405546925883050657660970372574864519582528946207733966541694909281688482000329200140133999445944433668136508407168414975713803073584088124266395340304997988368703956942077845604178616618442896652479858069923980332935864928230089905116005509000552535423753099821586850700838117136963814012949128010080806669304543006363074594064405852403009943037472829257112498027543730025594268596754035194258797226772959710442739154769974483959908009445646320520727912187267697879646606462538423624887598386029383362538695422978523084922878952869720674413907941989599461166482056337166683329523127539185776177044797619364010443972322271185328449209672879703793566178648511912401612359712436795236931795574185003704309375459152233093697693910659957275296769618016319501551871945133216620351121905575667778957740868426087567510836301345268544688491475544510579201725963652717602560341625134013080676882230249175037909463477630448151018075808100443467663822464936803640460992515190857615276365874643307683089166847050641258464824816701787559412256691637229353738957332106203105893472606212570299686071244381127037239558020091381697997381174677780146292435947170175595907808072402158920890898755003571536527773102093838036285946754546297193492508116679063385254369213162661894459828115347276111351804432915400728428547088737858492955240262912908668043770551184067201660581012644874182643921359420276148176190669559471433721859034027677362036338585447995594387677235419101282773869895098362581875234768926518414431187187351327762394240624409628309822746139846857587150871070567579757956171727060419763752516047635711087477955585071242027259776769838221351933573041362305391786550968164659279890208075344906770587992343826852519723877682670829241554691158153179790145914095554857678269363891377901058900537468314513556799217239347396325276145332026012200670049042135678319955561370365575219585259955190748316011918819949485044570940123400398527816168900661875880835628710106610072185186945657513880529540080791334050847432835305446731251123553869491205534715670054222867543411206293023514185241431358162596258539338907894791237639784260085639876196981474205524727223298962804126879809064348645082958966080217283825116268455625564764955608456887012460479124271480533648378030366856254547550033377242229128135336614348962877519037209172949217306737791030316293567083218247128459762571473051022172275920254546160390804154883761044666655182226904610715798613256486004891650242752335415473798429792825723982827874053484024004327333614421587708245506950025775830800748915631805843873856185040414850257505421750971226241437352867712030579828818658296043281797102819268653444518615412128326366874289330168154003515054240325933591060307192262054461786284459182953597256312027537443925513292436999676247057767684029932461380240196635728781055230432655490793004264120803278760066988953930789881779214966239573979975350534249364455684101896472101749123203426024779372709629741653405006383380864405971271293011557570301962389094015865003105640853018388760473720411622864654040736679122067730688575741307497369731306948235025744752513366497673515134034333014538781903095122497922055858409576418619177909912292186079916023565598245066720687091004262886592792459850058042282650934476307480172701614029475661616336610274534951529559651556221261868766042780435797774556148612280227989791231609819231506365822910443340736459718767801651386524269908487944490489387380860320191225276674483716620520425878352285797338198351889297130957500267641484315200859641518624691655608594529138440981540888255907391864590512249262542585246808815705865899752790545165626081038413182034384328740883949180641619948481780887276805527431150403978239099847125302212587091869380655633011240192530534583356788569775485456024585139901649568870458585021966345379900580898422870743669304348958874959768871186336068100397343442561282737850568081917616790923451884506401238869696584396962256231888587980340408413844739395367855003804111489388797699020571930259095022165913053032054448378248567464432995613134643683638367389822823946746536905169116378837101688527088931890179691559500536380957047761332755744952428417078350085125719079254676616883710978714598089321212294628560232072301404246631021199600701954509837831857744869574139147616039688767591952905460586695897349277377800187941076776615210979531783052613679193931199753681858239955040954852443946163297739487194842626129758051532020563168924430103738535939717243202843123460926841605103523195647461283170728749391877712501580849263057802808973392856794745901590546861030403068625099569223520595200719612201739604799576286678353622995196167515446889313679417433208204478551571174487045070084139677214315669150101617834238804847132701077127589907947812704397377140788727557753843543858370093001132468107791340472626153736636152208150609357053030358269232360004347572305270276119623504220466381845629503332084989247596174360265363290357109061790496241723229186468421107805052273143169409183807863920073057730472283534737988203038656217768803175428432116555770108290813168904307614689786961604327724520494568797809361573333455569731278341491505096427582309268865938990044878701487164718581641047179083894297834965918588076832483559678138367807058242072793311193167961698924078862775758874918467894239958184735073430155866061510764362758527274566124889975756103546078608601193577948840569607493383640873960650267230868940555574675928151964930543287458707015576906237509068536928115843095852734682271932073245228087189869308773039728355301334412191231235760409538905669373036715568285768945379374455159590266818547210816063956648297296777993532972103339553589964462770995866110546257304378138883211646968075015765005896661598912914099376805596924412983909273327448566730612675502749235589732544247465314625636405634245505050418163255028653500120475397008922448997290386542255635978128004534293044754005378879511295350020557761311655795741042400601255819510046777746789894197262571593526574689152808450863422757759614982089534570357120218124209704312762581354762206072693711709663429967506969943439303512978448099311240395388795650350996768321447556421676113586192569834881760150234481305022342437654051539073519092903024712347325449274506863779599541216849808961920643802278045420419954418122529357403591514057511125653545470085240440082721669080194831786721560760423382156678198855973644668759654654012253363115882671632631316310979822975669042241202365911363673706922126597850420214321610645709097399618258360620033915015716301988940797605582463367656507366530574793316829689242306902258689631022569553902042211095687239027365539791223601562839919199026425620199776265883027956791467362977067306262793454993559798946990822006429450576053016270938887707185625826538721612237181830511419079055098235645589543070190454070804657551131042745618393926357794157935995218319421171151335977743166329129877013143038858728714682217289247122506625640401847899746456413810777822861971905233943163483371541667147617939350291942188075945435308880812406004701996238512586171637988425808672254467434176461011512311860125231765096861989336361316761671167674729807626734977821928841076749552884979452926981955461000002421586597211533680816272159487824225753336852837016093651932684248177930504860654927813167385973592338194542901392991527902970907529272436505523708748405104979664163769229360303058211725865144366448523231940762880853941320987930391660901703920578146584295188706680946336759245355365035608712474418369446576343951187057408074869336251080841342446606111736189791820817615273296642184075827738733636552037096606040937651837948608544679977548026641766151164004451988931461342930957320849781111436967377356008869240062631941716446900495809451027362206639886502903977245778774210963237446894824347777471104571460058677952490544336322004648397466504056529750522480934109757462922237280589347518678159087578003640578222146153534834490018757856804457548504831550384553893850088359688596130208790766066340656349161027029897901249937359488242567203009230040689305562365698169501947795687421823365778944782637341212706150155373310586002157633260204416896950002899130680115668526426078393965027840418924610731344956889861347210952583467398757236789625835263874798450092422219432214947679947550629464859147201896004024686942810744763739917819840737113553535831146057694386337085192251924950976669336821573606864126176878025773204964691073262093666204445386754878070580701872879527588943230269056026366689306925653557022866463475623566262821656568441108911066537780567004292470647689463077944949420543183280790763088612321085960875869900167702136771250703656285643544505237382381828001559181472636285389368287908104760208891453427767245406870852253715487629066291056537664309702017167094610777720855329815123298600394351056969043633235636142577661196196291312265677202039848848749246322889774703141512726358821992183721479719662208014888294515458894856420959357260766158700460900285196555655527617346176439163217987349887701317302856878295741635378774660407787541421822210025276347261494581056742911186325017485669795955866887437092023296580646178198492388824631574541406295169019385087571913816034201181537094465211208066494104796307818702710865548059001665638587004309731665264410840927757944716005896861274654572190722365352483763794122903225983542261645422206807615049873580372427445782000695417367191869194059533448273108579036857712832589601250508767089428291664711224184317105496538695471975637286051065360594952636602591605385044309682477487786973893150058876513076429285923341128206029708348544158499140628559809813338349534509160526173064506730910930833509804401685182904621538089435409796167807019351869454193272566617276651575283587206861292878911128968137489792873627421109667011866107418824294499380168609698450618461727150439377162691950470508536683511888434218422544627111506284006505940029670108410899455457166987971018741357787438847712595808737270821377195572066290978019020346990062221444290218633969504721185852867954195424381609494183550891703834942111731282715053632386173478137349484943037454877147845571742309327697655123628100353060781351770976176070308901305126989872598453658121681041291202109600459391136263019794117591703688468003651202181683816752586897527292424732489034983467212678431782339175913267891616223183563041131886338780548710786740791903470992889740702758922388391833857721512850632418872625712993622552378783213519459158800467900176431460210144082504680899866516836848656997154795396998514032846877029772665828604164643647099204938697388015198331597806855351294992015036023825940147551907090109110408487881410089758126882663172311804350408547044519366774361067768784715722213615105349291424395814209962812494361301168841938317349216253608965353314942730353700471758865587046410160442031226146410060172902666388784914910555528683043954682672838836973477751171884001063974331659407889162218119035724527289025286455232284524627621128772552013994969035925088202539742834958608111477614728486502136369338533122591028717668126052159898320652761234894026419557744027479911469378904827313323926957138621818112567697523196375913706975421401833444574287976005010718352016397665958038438884420715508737313754537986480898818234893773115211916442667255387763077709943130662868114463627614852730896034144170007603199337344859485619991583508959962169106834936812073689188929152536136935597537728552795952351169669360886686242335477666181692191530785295462225511241878219811485573571992953300258730151868284299566316915266237790478454751005105370344493657513623885925009008438371152798462941509162593504361573702303471656394369994502508839084323904226877121660413535779506702929333014810111713646278959583713202057896486929351932766347999018245383492773768617898078657843618691957083071456471373309487614123231216185889958893980559762118389337656658593660893299059922188747123380339435111175037605115957230846704406197778558969388473937699544838692919984695482618304081246143882064671679094590672294233110415985386461188094160756076932684699028415709828069761312954469907240519663132016534255995573244174441382743210027061615398607352770099652694634067074762992978542275590701144085384364167855074913156973931427638036638736896341399616036867420955762484386792213021314597783834216533301071075175175542983898270712874442462615608660753408908147282924464704830281458687839540922323883456876395805822558075108651138055758061871564516980502724777657587678540576323703026120452298733032218802910769159927449734590174492610054118132895528527056482036354173781174773696669477266618147522234789998190505271524898021234914934639134255128986040178305415832467946669978653025278636846810440458945187752437575306479276279179295188433160854860666422028089898871334124750035216514908626645882674399961427421971447501576984434329141971684708305661262392365959905607800362710547042737308879668308156469363339314686752531103720246405917850738598766420412034048138740264033505858289930819999377108998569215395380782414540186408451182863856155481730696618554637048069433666261146919509795687335679531019322331096708090811545322861851424183950195244494922984219030817848424939328636859497029939375387858480173916013617168401657656442385102881471037476727451396193765628954709320488761904625364764165763094389583370664538545055079112109801007371081693006368711822172778756824235377014439515302063084305526578561619117338634629315045421342924952726565025746133408524038188631117960083047240032710801193477864042505288517818861000138161488551931560144632728045621997807366081193521012919199863602122485484942613718673834203611547827012591469834373942669022721773320159515397607344449063764218709359713989451021246316306994126531270482344559401167825359819796674121710990692828705580608762207303082176030097839336231010633971954589803873916142304966595094644466053126705338855684726060676478672654257693872202834074845138255024742399552013100624402903387479284965918439143608361321795060479525019144154453820297559061323355837628376537630655529056400742441878242865159920941206054145582626379684953581313966967427155978574205828508925196301600658518709984026566612558719857987747021209027194096516014296864364467563337340747786796473760523873183014730703353259796289104939828897274236875282700277675527706469953232731379728371278984420715343026753026838168649612458924910774793351105197246168904709687269032665093230949025951855328744732816666490388052396423884610018563055116128487239374891557131372011032774758314004819153858378849867186460102291433341740918320566604091585478312179335421077223314356308416840089241997557453738627299648808954127996925507217632110517808896144017524652344316341423472463182409532719909303868370052839644838637297284887900745199138072982075778985252066848895095302710739451771444489702455350426073860733621806957569165959378322078993312202914449879127340326811588249780027492487224234528842029146841249146406604303443989761086424172386785603427433741423486169374937866592418419716789243596317875903026635822083213917286277322196573473319514672065777628969280052459770333370146865956142194444467780631445416849374302624599432027673876737720019115397913071231950648643416187970340595566632034214690986782310732220007709288422194356769899824782968712147820056466427828866085068905676556854328062810951403749704334247927079225610260413248317140590099528983253403222509243765063686195166386934841351288402773678249409573705721158333706553535029637419425000958603241133253948090842827094107227309587268248898162938997221078587581275499126252497988922217566069881302320377900287900789238962070057507352389568426620736962366469109010383943656565161920727993164730935817468187336287627764031648181890984854485188317784878138583832685481336490099693422132243503511232707264472974928605940295374023127648495018079990669864487783754388789375974204863107800094204795838674545673905562420439173894835009282101467797889437384915407036366112292626066452170777196908926441642241936465451971593628576950042004729671104387918099464524443334273378087797895807290549249242884482208731901128180254775997124556468497521725311020828757886662706082838737843740078652546134303870541935871109125392849702496082307949936697914186147972510512887781528822560451910652213226387516681145107245368700520972599979654296097717048076730324382847662817075116924409284261970830229190292968209019000737371049485405714850043453327067047119922827852400198415994811700743460591773763069388823444347136507624721382992559187020162861840759218662131801825656857152669759200726985450999337565561468784854743939000658249134729366560454484597746055256608143191021641661984789385240880660945285570575150714996458772798716661732735003778693002594627017616125600613957335530782975338704843613180195087651136941329563707638150336061248190454316615428940007692986063340862361253154564088129019491442480946844652235942615213123226296477149521161906139077735272309406551087237227393275087651472128477175500733787369396266424982578601519207668348922559268002500681954159878566480776172281718181028368313164558250675835113942209589677210929419485041346858720524358643898195605813877326171292838529920590458120760887577377173144879867894900295784505612964602507768449875044365898582488341095070823682535316473912169127108221253586744449695601334117533590122980861392621091766834959887648550539010824185799801598233710239011984241866666904100551371331195631740549073265682045577522319153965036560557440795969910399384261180073507219994900527052537892140048604041141318267999651292970706904962250836285196402589384099565316489566767365553072540718820251868153665091507338022528904092534044179813015275196306740091368004383932569084088104298332429033669573697762621367305683041579867629670436020507004270784349803045007752464230417434752147979665627771708062476391747059544256396315597849878951066618320194904009276629827281695547861721617454198512636666941144531635264784956145056188205342054094950867451259840171628660368312014680725632318667071254159866591237711676627885453910076325720505302370130623162397837894873564719400164217140200155950401402230340540553951416467796628651178095444056502583302955895975829153095122038590370101883474570334605544142200743142562303863247307079258549020539024757383630238746633953967192104606697004929082211091930858773307916710201419150320966224970990226623339059666718759039979408536993612023186967609347215971249863924742662701441960384023847041653554039747313727468380263571709520252482557505815319007292262225184484281157946391412206673835429303193259393570773769803911471183702882842099030284071860936802250702006139103005098099289009430135834365220073229940769828065701933726200112953223735229644787045121409654811388995687027913026848347935817430936954341750101900828220296023149147599063714713127115710633187104115093090766010760386409215055399135114330400886032370084600945376889886624537096882210450949016871485978420484785878309347883376264172400671464576274960201988626299989109465069253682915718417927923025657859215775029140499393234460349312676764039852950390261452945173371333764071617525694311549378875003388044530285267995911827946032426432793629769267246508864010682510655751867048485043271896854373676867560825230482476958036141814614682103652249736966968703204417510062213627968749392279174585081359341585505569973455485831012702151238605388877730116254105623088110443622786606075375368917325713063323455454284058233937392662164316397159867161611685924207110176603420483556022490460699626709447729069795631417948328916927506093552116373859042534118031651065147461034865075945923722634636736983142227359134934111834445336790607537599333643718422298199419367103889773911360452134244325237734595184831131357072494208398494017815060619547495666380220533417452301263363958997966151954939505735099884430504131978768293489883749576350325554693335575352689140771641369465046815774729877316800575473986255530075951333615980548292702962477712879013332942415065178006052930503216327456894182133744748341532231996193089793821315145001291564345499211055401183683927755253830362907817565293477511003623083817290181333504749046758280252038206825501834711726014581860253817114313502455599868954839822780229402322451827221716314207557740741804395287497212058120178954445376866825818311330958963055537553401159484737830921153860575240793627211811045064328378959922107668361082340274038694825927338768173386023110629655463169285680352825844865394219249538629507146371293957742173665337747945974788654746741130457112127810705287037550309880483547103388397695496638257285196118816401619011803568422488137059528852130766288634164906085063655806158034860344575300636348904779072821080697191000817337585483037268559191826087418823434856210743548924617071018780361116736160950202417135251037653245277342544160010317374639545550227698113144871313147909708009889409168524012206431788540624866311287421943954477135084379879384709489590896063675306934353688831765027025003676451784909315125019822723988920466289009904191459024479938332956552865147637082137699551348174861771233865550088847343098394087901930702307646384208219933369184681536130364096944452093486491032758636596558011124987252764542605395717258700562497899475544008387155470575045420628181585307287934558184028615033086831526039258395754581290458420200972601269056140190899976754851559119631186887384256887872965534076142160163455522846422301827470222010994202968050383235539682595738458136991282563902751325902414836795055985918348429522112856199126432078591060310526658498494281497451529113011094765715538726725124147504594841075576897363061935483901503690344713951197115517557072620965450492226625901025710558409847748999147812266680954298751394151302362922971529839670523386982186325438434184596345561432600794842458035550231559175376351002454764353569871578824487769935580493183334987360642017789196642226672739147628705276301246318071939506400132223906335781282082750612881070978837702356932840813893182284814678340520013052961701675846124949809786848055779808415921343748143495003723395533917148363933721767028733589286359882732008681286721990668565400088458423957289071448830216107369380920264016643173859101268963977731924722790721883908198970887315742859802991142427830459123166335684094534134154492616544018527422981523412624456980148573177857187411295151306826302957279530119192189339194917034609569538495841807831706912446407268622887004580263360568659102846078315973486059787996801137163070639380435580927771413586933608454331084356130915946169858169227671400177921929410942031890173818868506312351065975792222683068479145903397585150688149123746686129178407951158523603787296239429873255530343896787666444576419846411404330049965839530369743869347036310096780427823608378251885643124778363928841100254065564759590220002314732781162752827531320213759967801313669959261746090909133777555329883305053963608865055287772369076730033350925726467583339059384037786504347856504963806765017852176968743733621958794391855546542151209357510614996806430176968763378902733298303626225455245294688419145490322412498046561505336137961967501167910636450740274085670994635630707610326885643274808733173812167834668924977138030465396964975974869476241236899540885021235292698087831051050191016876717996048160947267494052031226282657232583371017746272702230318846183200796149840745717298796322420027052221832870323688999914886807866312737303249751039108549377703917316791087687979043292144881862500821558221016448407987212102963542054161728167707073988460789050939590901401181025683864248314848258742679036042441396634439103734271324135848115820117335053476544417771530578616308284941783949527478486450167118375442977293682058892214476329384471859496885533777382688102307343912992925975479858753265627157103201973371917872840739019403602812512836766357807545196029108209071755220387802926317391138897083944850281557587912906991496731144822369101825390507655411357820049125115229508671302427336477039629965411058054032054886114370237682341610491733804525235782602493436804828190576625080324730876156226908451334985623413013535288734885063638549285284859131703467308653853275945872824536166676036297051008918111058307831181557584903458236103819476410101945063386258911703164879352503542697849621329074546504687333286918230196393626202012549327473682930529760519316976053562217235760661149150794308700901343948954182116869366963876923040193164368501373273734494863719750282957284437931838620121698779533563451694548814463133160640200095492531536286226741778609750890114143384974319315788728294997613864892312858742860530540657116749198894672438568024335749249490816864750686504594007906316109992857896091470774604733148313742358219638885179252089311298387771016492274480699932780106578800064196346735608080532990166318849861635514528105043724880496671823384913824281640564463210350026768439800389499470017888707580541545715220951406681365161781679120938146937427493539746827746284943965478419749899531564710558241852981792903071658688556250602008107502590345640964024364568248572993806625904420722897860216103787551350438273930813028618721128359142465664261045978158394325341961099089218071034268285788773841685319987092856738628704115730404816926803075296015936690676223929537784579207807357496219366678260488292205626558444796778812293136689880000914463000970091912563267657516519971285083510618769053211581146326073337223950796789050727924918833750760764478656562118709288484790924238685766500616620948697897384890927747510315627538503644305098448929120964326519972362309265538967738727440144765259220955118257581720864680576182618424210498742424004542725475979774825070313980892289750788673563676390926770158480874860108430863722495656432473547610916320437086595431770484223077703629083637067205076685900912232999428917431799660469805488005913934896805405610138383341162942031887423511186809886707305280726160248680713453089689995612085742100306215841622439758847603595396050162477278723960034025069820013438795604281273943293653220982492506603276459977209782292374507548072085839831897668994779822025330669737610648979947581461999401990661012382691396253707110236388630707883397830029176584269843040454323404407611336128375511397487978718177140916331391380141682148021356712131718764100334445850234086298285946638664461744405873833819188209427934227925959781173213067170417240329547046604849204956880371289968423105829195489498811613970772201452026587109750547253406559796626633487369395057401117396071068983834776811884284503093702730818524713093269702672707193196574513889262619718011726007004399260253353843027349984129910337968716654064984339594039633303763440581747904749516540673209215687308695515814987531064372926789986833633872599368056693799702576817609364364550534060647614224679697230777318623137089735896461915132523084195546556040974966450913383251521078134779284158353493786603376936799167553235098549596753729671432587332007733936892705419721082550161036440950201769671044606030149810230613587255904019704976263742010679548298797984540012336058371068580329794866425708459404464012446515786933535899932067069372642712853705471995806910746327816634759809727332177716793853826747293168474735985686066426177198659440172071127028237529699022176065784958413422828720044318830760894621324763107658088365557786567355459718721789273629258956698425340873944260046939864577013734443852368948428249101727666347315612460356038374347935932243730465693602167888500514289636923679509163833504475727834315600807471454284291677858938925629243968729896842091060503847206243716959067439083885929667755932415170116571436949208325360537083452903950106058119971384681622604759930950371019110987372207088602654985399185214723422125631572471787024894566494267099332592616281372992804879135710970433167789196467373623588400666790782691286110833614973939704698617535496995471587545288200524976926494487562547936282677062721875479490678981949724554561723919401536663566103864102605904920170355991388382351155900923868146390419791683269510590054075744133311925046586894606354920942932062795080365126940381633404788700303776395623718140935611275412705619532893960452916414402068241856629108678758157551007663190916658442626385790215578399418723160646132390970593346110216689015075738048893076413515270188002603207569930477675484347017434186392390215052937927450966475033791772698047732054184533688075425082588189244870283853782736765057180899746254877922938234965242344095728593948160655186669102245535049858789312953014761637289514082284051942971466420842060536725768297256419661437989411774564328483356396459815519202962438898807405977228461903679179122000136200861635981996637115881100073930737655316596171700796256093991199814139578801060311980656319666085791501595030911018679168303335068952539599223496122186499304176075909820087506102123025224288075247944197543683850990764543171995717932431087566362532558532100067894090893744186686382529300311193044852302376831711641428634569901738703546470390166062830683211314770943446975706570978714475914286398700265216694092588579875461088622648164546553991221544781146922034791807811295074213987232314062507430233827434170601831857988328041338615683641897445630002523476481407214090430701649900587809408042285335924787121408249645336485877651719504925966263727937123731307284286857766403334418126984439594475767351593734583814178407167767621025870477435390735509986180958332938521038826211382720346012114350018513666510674594400682290171071886849424237803019545642746739097886337089231845747065519242315641608173530987466663969542471280531144541940667620821956953610785179355705186921034058802268502975454403922736147330440127213401715997066309171616013424550808670352653200659625762145802607158010526839708093853614803441483600663001222653361915667322248675240875002501061485446387042263811659908914580097445024067333254054929832908561085957258980984276463762330024761597944280960344101970635273567125149526006843442115564958051447018816686748826595040854440338492886900201912827402216727365544786271598079804090151674677885574943696829077093023898993817317832261647737421491844497605714748257885801078398383245555049915217512211246527349818428549495820367200896331702634498940458590676430653039361097193346739386676287218613278590830936811271366022783277989807583279238506836096302241497635574850347423776848051466074456478803909268700419699921709040760726862978370593197963989702023998949226190130084741797393938366462049218301435285841428776848916939729362591835034581205709489650252382843874298759328126182105275870224476932493884751250973928928930719209286657016442132128413299389053835109872374144849684725388582858490985863474978705801395932197580866536311569457266880923819060260976807645095782276501297080315788798279057781644499461306397953333518402958135838821124197564333673481450423255107866825531118691509898984815847624305505121413637183680640605837955261042452902173730330645792726713046863595951445168646865418296724512757898135339169056395536377719919887993152961606119457129076358739148374861243356198129448201572518262846513734684045060010437300072303961378884426743490536703516941549026856892893962808611518185393413575686388407953489924625185394908320983298293185115626085353009164138515562395323053427761747472111126202863268549478549425473579377699267178033423511960808957178628950979556206939075311044515755141287516349390582014675586158982566707549297824026808291296782720702462142571535869107075234695040884719265607291248828242669852094312529394978585511983952801421379558292682694668918166374146007310327809421722174472788423712266461164901698765323847139083799875090209726440881551933000850845540559356396211646535825708475000906314356525559977703924861459173643382723934172421132457520646535587707416685379256790176238109011058196040217165556662017085313131939529115296132190739074337924773627997811829696515634628141181438686511335849558128723804208828036580396037625085793093839328892972798515267326890487801412156006309265079482132544579513530602891311657214037522909443724497041977013317997367496921660394147141590643841481202210893544637883057576292311032141889360224282449486910621336371265809388881641657346463886794893379825197478178733333966189842634602485142823464732203415612791408566318260704427399928422976650497344369608519096899724539647214973429131777269521912412271474175373989009150683412539454962144779589188428382758431219851529554248083920374437986282161195609985264521083647723596184268607572954697065827075751541668844865742062078151563771170283404000592284655548455715085455771300659123159356251314930902121389136435884899606213682965453694168404063095906465622995725243285649971918040833889148522716860522815161932603195864954261605517725790768188000375843748945883294877748878219921534617620820947680021906838897816151570657113674170787533810150250293060886871215598056285680330164846292938091928035663403234668241680843360837981851583879127640742532289383977304842788380293580180824436919688914213300162433427212025544795743790758845458940886508456622478179475247277907862888061002512167579224376116104178968989490420869821338677282177829736368960286638796849954120621300895734904773802479757072718867586489365172750524126922193583374564491127646092254584996680608332086846223101314193004420057184780268751431693306003998573469672414388742971306073263185888269568001861719714418403417081684861452911703975667542738262499848936756016431497395103759267087350922156900229695631525220426563197355626303925044533493661151009822017530548213220272691146401699525404073167567208725994668911623255752925152093773021979607243579381387238533053973667839175122544092920698055112605894609845803202005774608784577890197068283439022833319855875889422502545977886859411143524506359085113315307936728135294413371980157652021482424314679414203007151251874624917759377202590395860741687090125998305334210042182513189886660050058906878257631815999447937104090428275328721769054897829502735359431200857400231233228665918578583278720013549918243584782352861423742770414481976275600505554040970469602555275190417135374128196723718733527216825032649355643632998086331519818378991999047374108411946998191187333277926811194877529819004821921118239374278968191679789063808708407021431039017438277823921629658804181525441465702897741864252249058617234878313183019225643719042664382555036023297596543464360531030088213131680033325167086472775542969497358541896476761363392812832641895523563957868252795963970006543704218374419559106104448492067602543348200727794562421507443228691994779681495813546235362535463002543114744084102757967118352234771665261887497585045739418968170783557809763915666899541809445744186916260974563910295942254635867021839889955032315587708450648691943857218239336593043988149323636936021742713969123800111251973404228881231820367141073211740975070982371727238973239038393585025291974105732056460109678625199060669393979897716473493513602601599552888214627344666852892579702950426014090045077853240217278529321377844735634422359796113397907155925739050770868005960490239858002601127773343492703809375575457862569994542318612898451673083076280050035743440235906174815725641859481819117560490124935910148051671708847176089699597771543218186728902238018538064222932244660946817810954292141429112756099009310243227231034280213793344413715572253856427682632383855428833971445591966718603556847176856038545976248247513123099488057380612711180901204591000194468044232547041241845958928499273669112111693730813411112207988435521953310349508401958413662722915561792222554767127588181494638417439268681641134532029210239468162655474718017674112888857709729964377921136860042249758663778835712836194222661759538047695276446564512821291821642141233543112592356264589452423410873628347809519324679905453786011255519022386373848860704918448359616174556376791677452476928924965571374748536376209248555128626390528997779278678983066064877067337071745744028450315221867057843054161008656906235001675398924449541279667000419503332827229950485413936544763609980666307974625649978866279017880935661177674509268959248570175029706663925942825703826658305998747230231590987671095541275989625406687418316840197393471666188585974418376208207999251431372360299616905129439103558888172485520525851263952134780841143054497839717969048488272169334759402778038506430464968062095480705094528286704453532202082987949404678278806216169036470625665617937401964997128487484987322432439930237186848551462549782555986433549785635956412297277602085837268693481028010269593754641680242195800826650902716229292760828375377081930745137414122807723790789149675328910281256467960260935037045404049080101983816505047312485449535186434708679182507231192115760820556459373921006293458118067644185127644710612790451264053325989297883724353855984178796161135045362577277105507510066172320663586714724818155632168130640179691016080619520654790723644547511840401251277314427381381251234475055174205217752727452725110538575392124883424961349085045553503425730159317900149211952552709087554030076939257088136991105820906848732421834949792152428068299559230926793225459093773803444432254607796400815678028510532426414922958101088965216565136461761566747515681311853022198734877933186000112347345607488200835624941149127413919837402358813990319907904723796136290495952061298530590567063092912293737097563624685055565983890443705856472738007822128917664511977017546860743418464288724583940330265051262784660427703913530752213609078673215689598698791129493617375155457082367558091559033622117511632367967843209036257012362731616771456154549780035641417728518675237165215402169625491549157989092709783861115400113512732663537360092275461113536760867144654422833267215394950336742834270675027672921676547409639621081163095896834961807784257331651926791117165214341067242759826219169029324952772163953274361762903879419936374564127530917369790639486315310035996051319764329021561651869638974984784371145184837976260229229729672989950012453268295560138508061340375043250688876540295753830220361038413007735703682970208708029615735478875351277189617576926258058120418901081373063894284468527625991677146299227123249914908595069346969478572991793811758934873908553266660740384109846848856945677991916619003820037324861995775772221881066612993028650917054512769233766630333486622244915636488392791790692230695957549944150344615432273829958189267077946103778543692318881018186803269004719052852939263807012863943314888458128785221529511530014987881674074601379148745959345319550669334569563962089901963498122320825112427095533798193615916919605711915824237085800340840148099281470487875531631703126140343634217682671349740692162635602740947261531731784780961235222561916514784799083646136492286218616718567639299937797687440080968943043463251221250616359584740864873681315403519322563529427911776103978300953591132902827677352516126817960620310150512799075470359487313643399709311158387192839663144998158072276234150471491834515554136005526923833015174427116981276991694718846113760660480903390489395426069299885314909807998183496683465195922250386004602956275902603021328579881569905210484279358684274294682078303828653050725450231311337782856770028447038155261532940703286803830041781276642778570083252912866691961954292882388298714821157116350809441837187395850578012975174753253972917070732979451791497755168848802580536635035909929833795823276852133021733373936176391555918243051209067974805662459986555727689141236112220483882870885796593649077505928387933439688890454915479471798530931743925482485073679684250718100483197743806385383698257953920765697259356486421348081917583963859656166803464223843231775975778557407654356454506626905969002640813197489558971869097478711990821051473047077634568591386237759990070347765981180210454352260080511436013930279077908465165750613533497256533194750636685415005878945439952800997238601403070031825102778910071679612771545618205960171862262333826655414427821507458266227702078506112150329264792470805127613038932085398520145677401155566217132351111381002832139914168936550140258679628274482154886831841776836902848117719521108904433384233714539863431794349025328007066605142167503774046930447468663851520722609948444079080177675186157320166344982401371561757302852880907688340784836102021605531169895514524419165306460251617264246348256616885564190792216898188429825842752242048594252315564609917832609585630839985739641562279713292012948737033844548668130878463977568642029931461444525207360267641238261044075798276179159975220652304986165418458020531668334425610847364509179929093026067159300998687048679382031984557264675939610399374263059116644500251247137213942962798539072697952411707879295210543842365083539512033611224858459517025369896178563769756516936151715551198129675259352510641345371694140951408779366286541466710024095924102369474753599635009861974941534036402766662284549089287391522177332910291737662058372448043772525690243421411879693059349808272535889718752956750791265436672835726210614988747206099103719454649791359942618751479580819477389653879293324584350444890509989095189969789340545170085273965434689253092932765944810505816301072262728405023900654290574921526069436783875717425721079512886046752276991943398453671831516363120695510764031345441608003604414908265727162731715730226274222056618418832881073878491597426412565106476807724370099127068010656981043313299376734711916657530639543033967058299696566432140894198023505637525902944173438722210617254090882040243702828003391903959177526780609575214711996635711044583541484455763689717711014515937591555674421363414876950546147250941670034308185994478963271477967522425449872918861432619445887564267462205143823686091873481515006595984622251057227675525252879300690609015033863276538172924172764513723184641094228390563599094469095863649921602687852764447854956173816094074969542722963109705733121452754737192884957455328383505218529501253050103819176522795830384089268595272309624653385743010429164237246282619309698016257417321799490039050965831241489080839125406292431318149665683244623925754224473536772178997216522419844598128895051974562859824827604321175251033546610316917229053883193819036444669558582911566063156860198756690678451838528378783457063627267110232235922039516016406671902463724455016367084152463741144749517628848934720395759323252267410806332560081623663148957696232854295913520116943970753011071754002173213996071752477566626572990773032109652854458701230031404764641642542290347772154732504951229433378966938183609799299912898080849961504547922308491744476737497175826168625721290206043226880676295054215175195510630669190380561068904957413508697661339231868932652704606910584093669128651629203613348053676624327261002588724454955825847718514427074888063232153709039288979332672154649470247991492937703769221052011794739525616865610027882618357099217513677417215464753271055693187539401808577803276689341941938670278350357110834467770923668221498256716030239260085745232799195927972797070648489225841482522758193677773006857790120480281006728003434382466557492074327867532956956214872033257773617844624019097819560872510422663868267543590666749425033402784278536786521252689991790144378201740037298110963338182413735956851685552072293301744373731647996855805639613687503333414158808909959104610509759424336758361120633810562049872564674506417366803083545963473860273151634799420439595446915758069873659035074332921861362692318543599283641126513399053566850560453006089979613449758389369660523526855848139337358236036664510013584889134560747126303061212234738132299377157934352772898282230335044268274549124776751311350326610214274419963532568031226684466441033230382223314840731728304398285812509674222989616953207337748017278575933964753092862373214804919362637986265030801059043709289366897803732630651347085906465041282188451539836167397924515375126931404841139956839171944763041766131061522930967224799603900116834454496255822936416319505350737813938159465325968788429419009932435195092564394253971269774566363152324622643342149856270223515163488089601151854529499430439672340398344465812126395053583639933898169736292090255907129329287126255677165926470030141254701323120755496540871416559516484018675020545467429518990600508498552659618452617326548844006144603131169184494975541915511108950372677861591484768480247778345791282195719585311733455886912394461626993919438904648513033931824000282694302630697337241347431390791791648717383349444441997003604824401661236517400962991510664509895134515119150609045365010895186535631517572020084663009493458882602691535905877878800196179090514826629390355461120446099451690241535468181147065665202380779377927843708931882723169603824722701418377018483418332923549549957779072142349223975040493744720257115181362212763366387203886179749181209602266117795308932849372294292101244967468498947528215391988113937837462447537079038471496184933396898584867363813550490561040627059539581593230513603269759289736221162850969207462664933791822049208369891743819269314067832950328281903730689884410425376843109950986627912318943896622786712515714947137530013383893670925247848369255433097261526231389923430073210047131226417645245807791909459072670789993341080149019242207689338329866852632894614555587723147236359558649309281091951933202202106503685008878542691288416002463286129664323285054898822304966639788513419952672042704786282781121308613695825642109897795899187886636644612057409727646469750845827697798872379176869413176604179251716764703018040341237878798849281866243627697424668723318809549195987996400380078730631324707334487978945436088326331277778185306967733166807694557557300785329712041200604650506603467369658529605268287180449397347567291624913303496092223026089148330293550254640222007568272929232653084311055528760551860403106284144437543201778152300648488331779015289741603482930759343576154441730601109962416308245926306624039653267558075798108472244161941200724259693270326282234364497824107778249154953823917351529938933611275919263934225296158471343200264052577322242828180444652560553294502956772651964283526699454119690023464131185611015754512512067842773691036848886935212402099051473763626037190669032905009440599274345950054831605546407366923842600136170645825221531720267176203378085731423189474560658088185585955582129882225379318432872373324328811142382801277876420503004003571376620250955237680635753393759645093818586445837132693773632049574758016162012749264941984253948389030256903999915460441915853650299499635273387423128863485618578194234722383067115476739398492994905709102447693119432730321544906852445773597210256996696954959410626303249946404680452938468030829442511659566146601419078259658282884987551944255688387513409522608961591192778486945787087328887488583245216371489493443138459917592092614590715511920779245554505325946457286869846803344189942712915208699168799375871933772754193786756545227651851833502873844343387419957734150826040328324372155334093569834401274597241914059510676730767046726363237295349946957063704085461527008301381407273553374063490749310062358469319926913008023363724424341493229068571695379181149572824530990534373992362894537910811891256066473106594109912783449933981552445980771052996199574151737244898428571272838743692172210025240046739030353159593771855166802041093257405211967581577954420842817179463786412643945891579681076056773068154071842059400889604813561915782574987991547423474758340515079070045037185568350720037543908810881451696825969122050157656406247003496985523084649688812801793836297418150473879444585432868019883074536126341304928524240287319863766757599159298347497476963401450170094354786350775196371834797670449635008841545482689075983430543584505780983367685397607424931895742858291091107902915332525764584270029263296587468402123264835160326712450471671155600994616214219306312584446969079647280708303984410728333413599996186994664374715563896895820767585803299796858212465317558236798144946183645509426755550723924342314499196882043297192189021612818945241736682633125297081744319442921945877818871695076419424787273286677659619855240101427373111711014799462443055166145913158811320708491192994014458683054036647161876649688097387190353666080311870057842498293203878338107579082250235037208076108165877599890566541209199802933174264608714626388661569177983942884959215593982678316379982065353443299808385544325551736911112054950665029210561110466664706414455263556850479554697224029490476601822142770826960591802440683617979799146979433784809396822156182871122991527811403054224475386160758298543070898943068290932956856748134405028601424588648751321709993885634060702703831878315257103956961817305108578556964838195740489815484052269878020671491840756068301819840490622176219072828853291528626547009092124341682936376111784088418899701808450740215809311634697019029182337316809381614185288776752285337438253329525751793955937132545650690122446996664588821006259466814476981106907837170312044359553580978459353561829488560934723390187613787697465165197323994796029987365940804403784730868688744305435820830307909775655035283636454630775614709492890539751885433872894630298171978599654902215026633505467016278907036767826102963933959052529907314519651569460964143369115519615291708007408776001505515569869198177354373236914910279831092308498310137883156684234143817892820539450351845112630657834824517568364380675331283797543973294612409710345417695416617135507553604693459556701900435733683662801636343449748490626987284682873400476401719706498688621757374312597554437147553220469299861768325975753720488842666358142751997441852141977341609097828385537028392786390016059691015772466092003883904815556023956009088907348891529899424307790417598414550322760807492838273364361783725143813532372820212955812377786395641912610946405565440032028568666518454885392695893143486928321152901739551948920788078793386548797640146074082572966873290173447061863226644493219212741930258690439636285183539610185268185987296694077124857197279942860628788114061938524634673473455041848702496068190783042733635405942819212675363981696553986868497821183728960951645408309760674696865550640602676480092253845425392606965854960075805120427898505422169262912263604693656506089084475026345401705729854785171200168140549729320926227677800950987950817595810109334306156655372768277129697041583488027356896122073219859644934346412097329777265269263179054833312384636193755380568857293784187614515267248681242788057362841508124108441184833201666598043260784047535745205826439577628217906524499714889090345606267788532564199171774483981178962524106950656430702393123905403290866993696854687525442849608839039515881658411165443121062783372203115691050599375692780239821103434033426602634163075590906722266072375254411983415575832882770366417371466927004797590587538725085363293164519938926902744919517429621544951985798723868202329094276859794410539689497676938450629047816606734796563819505069744579003653158819060574437108153934277769064543225762392485266488279520483889846662733922662764559921308299775084356636139450699153558598673931980401323939432456605708524488166193102396502499040445503554446577376408791021592244601790353233205509977377245113368640615955149384656304947862408788889372551714317182487079417316781934126630710389630090175674657107822666763944914078144227995652924062751468292530173814136144470854644796043095041164496637219319904125317313839757204474382561853391478379859599478207632512937903826039054515472745808237072341309039992169537849156628472816833093034494282381828112871875321376022498571431736789754959766124114480948558615870319227470763140109831293794739302592553907153459140677915851361903934698559126341555714806122956276131067401124674071819180747335978679540109664615628344087259854531071635511619720040709709758120713426882120248819078314457929072550599830487202745998768327440525522301860711760237641807563570097381409907759578851515787589662769103580325943353331938698773966754479328934142202177049171648886508764418165631786498564901480644208950350355276038241518579761720176277130849042573712578806089687067794725189267090630467445828837381507044796725181563970418788807505328283711345972094582475335085073212351197916290669670491789361218039933963655157749203429598933583682901630243242221824485890315285541240466374557274552944947867513172736458631462912515953620739269794959640489247738654262780236340208061235928859866693863884068275219631072120628056260309628923765527225774461947852392723567263694449610454238819132495828864166210913519532387249819581336237376581057077839520631043454552483358801244100219204045946260162471853786081931853028663125695590006662428359117694120950579235986398828636439038060969693329407556120050427477225542196875822313843528920335932517667611458699263507468331212935721907381967710785236372320769422071415026126070802076539282992919227874733912883092154162425670927244122002277210505756792758618260273945281585984794734989731544737388501627800303036452470610359469358473210510590895722615361007141533378668132992885984672821689480298802460288449618111316138439485432265414169371256502141960162349929038866812026361947556975516248193584835537368810812436470690475421698721116537525045029462989594592645834858277430544518456600113296267307866330330513141478245147494972332280221824611385797665526750526617080561286619523442036389522894273925400064056871992933483036600098020712032744169483265947437022336845107202815358264050741960639128581525466988631440665404932826983088769929505241770378722799524313290735508561909843372915732079215616430485655020797063305836429279306176727848292304922314517597624011576363470704760516800711788333811530644856309350215403656967799046055647050214192679929126872972940643664774887059299704034745310111589998443286625454482539116726001012224464847868575270886675918844963044799113688593130192356754030979256554927827090628059772873587947177386731486445234345905806579096331399198726657770011221752541100395543152411900331707154863717904525268246436301633946139100298986431635162050865702395425006075820723608701030280807944595694103258218767505312139418260329887227084801120339550369192714618935613064962264945341319841810751041351143797819472063738492915416847077215997076219032339155364031767974810187712363860227248589963112824180765881424291584613343665386464248552842246557009696491667124866647076444742487854332009754286973065107416891521291586851767220488216365756254533023792389064582521171897288200356731686147647989054065667950620756658492859497616753419322915402040669555795717193733914821334276819817458912197299100974372131524063510625151151201290722929994869325220174657790235331884903624007604625771735327574073195824786346052682358922538808263906798002901935612970286298255755727003176065052491676759744349858898778983157691730899132169211198582416155862377330157005533027736975812733461546397279953277508936059232537549151069456115362296498061438431884170853193514492048821052605735665493174920503342572434889391198589025760703636934183089389675868539387378321740175204038182061276919417004068062267247814713546072376013501169614100874879246536560986307540335976003414154033251119842716788912594790580425028600800553284766745492344139078182970265813038149155828278933275021430259396092020470645074332356157376334324211285499957516673062549255510148803494843164733473208266352619272963204799026909084491700012728334355341677788808740875007868870236872967202155599064006810706183096490545506713253726944132888534673728072848032535791051127677163229271268043670651471348053382724102811963567314948548772092200896800448745588871972064731354458838235485610709101912898137177072313038473774353191419911183194052585343777911375581589209153697303208615281623182677770129898507130091111237126267928810475955334708013985310078254369501449226873082326055842759285830810090599318540634849481357558673166718041913397826371902094585470548823265358127739012143962622048493222621843943984152928717900077457809134280630481285507302955220843544565165149847482848911658263931415532243923032037316437930698823599272753261787170920047666966990759194648021851883640794777642278978202855411922479142038311051899504251628083080230083993749142313972660376135910550407066410644901962662500684677844626352582623487815605239423936420681536926246946684501987915438474559300331468891052376531732319973595763572582942981050641984875047235476204354204582169578323760292840315305899650917546838848497969495080202659609436197188604197488035443185155675367843920514704140667890034888166822225954934491803671493460846051045723504877922845799912418791747197761863710958344910164033353349355365385515738592934968435628054754080724129330470358317063317615379744992365994747896361811028190917875413445787375956164882038394097995840737856281014851524470285370378854287048989018528534215782609870904604965531911453422752866968974201968371318603776737592351200688008606455112500194982421034950802924230306961094210644869881800810621987537283922627141880580088479839026782383034069028316166458811386469944578837179179907402474921959932175593622161975510894080391252543506081180326212413041532701380156841590927547168164746972401137623544748717040335880551239913922644872209872952210674469587314359196945363050838698493608736701757966400545732979974408106776564460396842261108085761247760005008837537660511993995022015966766165774736076168655537627927924381411678939867846518775630804692796984023062627438356010883071053408538068085062590308225889788438471293740308803070716701683879451291443970115359237298194922504970887147758270353794748695921968256093430460372870281041767992106903881695309714599266181612903648429428033711266215330158905247025909427908795806065540938411730838037166968378359178819253097398497592944382582642816119075854215063942325380330028713293298450515403026422673185765537790503611502505938704064725244206625169262550536155420495071928282640464411380305014504418537639062947793383957787338494498444486829341491248925267234850816513274091247681319635926497879716110786935532146791118504939870883381892211456360674609109454627260055397236523440602606534536226135437828246632520937651694262562065230239794000481122792106887071554980268638268749801197117450922438632327045382206227295144657814825485397128782959472469747680907630197042529760772507655621712321396501898796185764659333279087267882144480465884808998449718160418961157638038914542472094719239473686022700776231417656669713313260442228109633006848714291610297171335608550413625518548796302183619222367103740083127695668274741848355701055247644969986048555950120855037540140108594392185322651373393150313261923180132438916291694062706613252197983424427188427448329265780074891385107511548187571031199255360448618954407610692951382089413190545078737597320816968331649981121875504575354599246794072983246667198608492152962826531182336680458404405608130878646947196516338600292984857982768367226952140882838454185436008637041380882498979985403427326940128843653334332721978140144204108526497012951135644964822541378685659592818749823289891246491250622312355402721460631041768898388754947633966211849754704372736154699807522165522335112206825017522116782717256421748185398600314512392853151336349556787804524378786326484409854110525696433832316137890331394912602183287047311242488272290198248201565962844629083152395905700386026961653965573596797121600355851140546623554982783536045496806827946727610280593853060474282134770906550376078593955644361446557561252002866579656782301302720567315827161256868757420970162761508069388956170839308393888652733404316064486677269392763212943447314115755847229654983893301868686662588612775005060482408733416716368167482890295564049047450952860333120473278123058200667446924989611818707053462511384283675491795319905213098298551326014772815360858966815777633043341772384257867227591077189705878804844419341009062352845476004763292525836003469376000118104311833636842331308723047053396428907383347492895668120268591457285323868865119726883934585852452252435785280405097869534602581812335899178452245021962756953305187101180720053280519181709766838920967111423566930430771957997219013194245890582005311520884129455318519016715352198703267668386502715766125352521738324714553955826790131278190192993497141820246505127434678333418651750937855633175078210057888434748869617977103286228198799014354467539889843103583954011868955524646193148500149901420076795452308379997071176085880704258170612208107703861408003365868498061958056101137696414190964647106145975031583971310778161085878885187033948332979617898225636574433869362209098524319173775814072636599088374806299512903060437635303739531713192996801945250716450733926903663635575753543237066390028530531423644327438592307306456632563306493151163183160133774106569086014647492192787608590591002477241227882278449542389764220289420191653769253991471560364633388588611073118503159326997858771137411193619784356530572281595919381290971623230728794056734409195216989062117148771616522776545826407291104895995231889378210417703891754753502742381648153089463098233997195422975088477661830994312642948084721459690424488381070403471435260045116976043707356942405258286749652725776026773187943385337446239816873519774856966295106335686489790417783644072919042451506007657912570610305102207095877314919861940510746888692364587994181178430467563519780449218161266646494191000871570687823768401025255250644368256527248661463958676622329378415017517829036658582014560155623196157416187191718514309151849189564748650854154961037876425303038781404406176792059098620125527809357069085718633128893412688136678391629176135246035993858318687766408430852021204299114828695291995985628214519358552135884386041892808783294545137705092786218856299047257942998897037542123629759857822755212805441643226742372684999117915878201348045478023258515916055463249062130280828676073715633084880007628119174768422621198604950625739094026609178085989470483916125529591696998128754835055571135776929130389474201529494054801371383969344655825726227275608973642286725955592587962265078386301352303852701954222131740453343441872016497454559502698266940509307248436684268840412419782263486574144147275085887344243541557866255305524509889417642504129497030469278160167318107355977888878068606233587000277183055114878713151322732292096848680721067673011693879199810438301095861774612109498712794942783332020013060995459216207171600262080232032928735050068248447488874547980022012693363358363800747522378446939197842882038538569461417996356699715432286161638330954335894862239005513690036475811363632760387445981497262490816881938706275144300401479553514712753673685351688533984587349503918419705616190720198897256678574868514430425857376123474708186717890803081716606848126339623846786227856076907880472253644580660554431775898961697926065333604579635252392756888036563774816235384950442901231630958396156812797021736532299368396433448046552949530462593377113362893061395284657493789584213366957933617856810516792223801072740128391952643155335375531594674014345289541732545796941134567988606656798695436567108308472590805880104318210003398413624571006377573333475571369428367894836833244576559587867492499300577880066041235861766024074488487730607578132998781283524086097782540885096715047355357283015429100896671476077722413998681525050400386856442220790019367605724832534070808152661597821290560740947263533834134265690377056490780592844356365645437344355501057772829040383270230815697577622202395603126346901895672440951592715734170552002468039347595110831419882416338585854316223698531631492499321755870456446108079914158678025472369202561564713216016588221688138950139940823685120309021109771771931754179694317285309991442180456932349148791756023639421041113852769952586276275932107002856274633848982932257630514785870537158152514458295327614185643364469401258741237413766496129070601735034529665089769225692290646081115240034626112034050327252814300950317272846902087306775409676682016178172819030959242498328467066860182413483327701153024736635047151840248857607706548065895568073949120293381668334089297477674156451533694096486232995309995181458565122030255044126829829539733000099744896517174625975155952350444159217857151588114747817509971481957538374335072340320076460515242152215097121800360621325723112932129446417598194825520340715391155702890842460743445412049598530727330180745949486498169989176049680680341285194696972477194382804425217018259891648400297210601781832416269976593905334161633785194131148599957898480812863078861336802961478281258207004022721754986047119829468231850478769176267635661135095779913160922357512988994863913933437473508459088314059269875336185836727605982496124259552086709729627126008539943687207920990296402625747446203849102626768609698802593039344570417860374419365929426260511268306451939255183624577822041211099810167142302237222537665322239896719306236478962376620167286516127493548057825226197226668544925466121842087701337102895099302142607857961573230030929629262041157803052884548187817691198294215818027264413038903025917405349312642363573337961992036666389626406560382928907075852671528866906006823226036876149733008758240989649500257258507058709016527193682832945054502801452089040627530567351180932848120163669046187962625123541196549196394787121949446907819688301177725558544379217432312797985046985107447541970540537216085938578768122946199864857988746570830991720513383927392983546697333648244300761962505042432317856630941906581944777649726633066721083869891079551755113884527235212669682980827342060595036626614868922634217309928252111658101969940606957946053655163781654719379604311541601691834352602980891257147896151914710035984562373561209852450305507659420165325240985297929779289766554380495958871894758764470791786913686884119401702662079101025476846534036766288764291879354604330796413472133230043446177745384568895549704202865129267026438127937965899353285723110196963364773152758292730671384827103228212773475707620652101930120652173776414350793036313387722429983719976555647343063205054291272959209692699121449767420585947654225175928146708536005884849580915015576843584358245542539110915600692707073033732534085181007290437142968464220568904339164690601974477235002358353002758419859031830010425088412005576230155609656987183290678449692604716706352124013814356799918072179631994454574553714402711171356128079548477565597514869349402203993225784966334386361279232674235901018028898118568755076717547230779016642242883261592213815369351719995280841528266863953709018933544004028687202710341001391136841075637754348249565945797578376882931177513966698755425745363783623459192328003505229452942246879130761209153679365123805675752296277712201293578103926170895672563795085699250990994308510178833769998047435613268619049773488406432245790563564182875217873820462130066936349261117252093172446409075151948555714244937773339697385179076869438616386155232413254539445745298997887339852887956984158718261659569090509031643557371282217327360121825452434836616033461940353630762904633336851878668960436404155046389410720338011931199619731469363110863979615933094099144146110920475752119683409879614566080663422657946854796562808076453929685321946781495255439522444055512890419406705661353462568892561740818388043452436241884844082123842684745697952365611738847429777841010812097403582005437799822273975020409945802161946575238925713568659196017328263796498679747545882436996205877771294095537382559461672121101464370139340877860134264401649193545315710346531155668921047635252828341218175996750633840371424663726871237826430544191662771700045784621594492080250199943458224360268814599308724678299090468903533402169183555666155669126840978617965285826177375424926748151996096576914301049282679995262122544854677427715419674198253355368709777702630278006680701071777415597302999171841580259105590252011394713006971706911402976000907972793698000294636340255630975053445036929575025057914687469795389834234812706963222835114693843106562620564913623027414791687712392525808441365763182153764895144461977231443429945976235247506604666158327331786453340823652376800938493909927297075921474702693801455455553967188432510598641228748393840139391253750289586157573336128255969968023247195937038969454118561429167904120172001223361382326187924294755075660032735647221187812881032915353904598539330864346927904536178037645787162588167178529868206315936215093770072244752309167370508309660239348985619851417225408875945063035350791501005542935120320217547048421650893671783141003555615936615217769048455066500575531678354270953762196258370251687157442768064078940623295020746873387281218595450157852849739226888179496224384142131703836532564043799844056035270265174056367893874691579828724480989558030718490029241142257671647777565722774595000705947634445936112542138159110429466509026143289105417716783524213060701377957156400697854708051985113067693706223488368907383405287070758440251449828280422279022277365273884541082960377291527583394582465920663346038144889200245352128487305627240952349731098763669102860019640176004072978699070219143384667287826528130429944149343717779948365899004898346574736236193047199268894537147284671414889362379756104919327985940912856890903638832043640305630398660424507448586638391871792546911513235195587319165874400559652047205323453634090517597374884360363070569380887725064436159250948690863807159020494700703665227765652595428600130754742923571609853508375405490726945658472368466908384922115523456162793349017146257452075892841083988321934288196171317772096547716521776744433771908258917310300949784954075950305865746646630378765120449616069801744086319100578937626856778245641504733839199930282835616754312723281047950423434551035879567444389415335383963548730823814056998531908766935900594253244566908956260789586630324156001745591892675010140702442117469600803404418487588686220578610448626867913081632981449424242848526269291433072287792617762627199798817925118139759950221238011888009082130342021095673720797251984343479539859259728528559763014405958895919337328614635800222368216777805927406457747031681861165762451091822372715331409184940732669710705179577176780327986125498349248352079203617824555216430063824452314833249861221598776864195735676468352149258256114116535922531319581059147036038656033535898161689977216679069482737134227871104791050412960984030220897981176027962521618255226833118875281811768813601627097516639154096090891351630830139077723104660491375546757216731355119779727122861236725780716041486052476072940352035379906780700026060099251717150616632316560224020110169553268414087595663869302413392803052604538113510982693597094297271748078045178689238271250013853689576596840637823805506733117453594780091704539106948314039912336513528058677962765414475748202729390777622125951922788204351602437256018634140262944769162065881809007497750747748979130966397323455724918906850972308249077899240923772045973616676394297659351229640126017745799142260967745513658186429974982225536204492996592474270762470160047690124517750963904581115519423531702751869824557725071110941044600570613992410690061985711401485303484964946244134053800670861255439899003548787745999610191995187050402730193358490533345128491222079063136203240618591739059589902972675743235977361960999504297070552286988824166151341368333538615229551500594679385519257415327059984083053694029656909419480131818235201628842328145570657082020684716542345891534288146600672831085364820864803683958072137458681043218091219605028251058279790337747322637471642427789997640842946877212788914351889003441736033909186192480737655063509020469452590346013499113095988455344714637101560942856977413845738900281093080867654729663829849653452627102851725165980754385888457639037878581367748064184869577318022862474504560123178411519021755663456698184565183963576828157874779040281095817766266635661950464088732010961144331618698712102904322349128067431238428339241385567851074483028250133609120117339633270209073141145821273644836239055423856951683361283886460925937758471665516489096621218610886403701349749036010922480404098042396594278625240221050086891623286005763958224263876038675701981210149735706815397929961585578873558034352890673512479467972126575088346008280544227190662769841335057124477180440591936966103782792447873137631615356198856885173167927648519282408782867929104337119086781647170228619830690808813959852337718103477458601793669668716395022744510463827281790222302258941382775713874530892859895564073656343111548048490244943729409833371978256006274514900777819494547052420770969433096066529319137390606283940783667734940100276808976562777344129755087536728796286499904953061168162286689137055037607397619013577380892228927660624550416092706187414080096849564073945444001591159337895643796708694270198843155966710292530299828216421542385990596877082780868719366777440087653978653705892029010958964817447090443996273376140090157001549828671228823193167818506762545004747712314532620224393294879832847558432721777127888409119012182145104048872354548311868051645882535874785644721502126216945612188306798765345975584141436377366406692053196432084146200242731863733611844690982895019848045444161894001164704050887890102619476716297378108459293750851633383283730638123661055927832556194636579579969491396985854431920628638150058369777639932574802073754573762528246781937865842546850050536186627506176883004000518724911542477866979004111170704428390046151346822633476184012301084588869202257029897085511201731009148510139768564320821760205901182286979892575319893455792422164102800909128387656857698111130911427965553154026182837464692015880317130729993211603885566433920163571996804952043773610873217539860026794647084343633263794221513546286746535139283492121841422311941827258641335512602391272316993066245619334415950355195540026960261735271255382116490267714804201063245312430651212659308255112555753355682216367183026018404250298472666142226468258634610663721980680080967309327325636798126872113543016971243717030878194712101571680602033819319196516629188408765769604818221795982558620270687820342233814714979625860757707090458865471167709441701075171171130548814240019278958797409535201877614359775397994170503740880923272696504601285061044311608989705171461131754213804770973213015113885388251280563069125987325003507924787640675986201388404935165702394161618205664155371681187439955501451075219539323959154409387318813347228749938844965904841052193174071312797593244268122291772623962879407558074235908966197544615285178019577152020020321159803172745506121403965626410469036218402708238136114827666753551466023418121504588258713694514323756110629886011059007330901846261294268161157006921258799963308100071841308853469675482609792656622081151905780872221651430217237241941605378696913976656850276729506365076453310866029994097914408260374011077875339972040505545793678508229065010358892820188704980982613381640235607443302381926031490776880245253697058479683125553343632104694973531782475360157019260290664368323567271988063146286968400631648286887637606056251806676318172764125967664126694416398379554366132768952518933366338569413203650762663489568513903114945748494367592836147403161711386201751679044858759134278606984010162583553231325388265893238628539055107072773066946383558962729170405899851626897850815118384379297716029749357282626908104681214319913444458298981711010592306163044973628111171941020543044156411842082181747800863593826431608689724456058307387122908597365946917996848519902098008709953466220277912737261700139057158453290854347884833207638325293864724236407864412842686210871758417448570626210893849113878096540814955761390319215097017066103007749597235004934046753494229385919456913559209951176309678672784564086612398961396775476561130439563774711530120239925713568083117647156647414931442871016981508755744307360019624537532873763083332786787112846376348793950961183056136690146639396389951303740793892342486412769483329684712193284006397821810000885726000176903627383633520849263556942126045728866571001910466071035200963410982106362140959050704149737518171462455187658700693333013606922989277100373236359114985480017499494677618621616259413308908528550724788091778976348772443864624639632826827163117594077537016583250032908243829445080264826062112536643207332883425050195126992987769242430343741601243289625948775852420578247740855919935641241232695550751196956425696515096952419133258529512503929788656310261135004057012628019511185483714919127255760098693041183361123709132111795300060337074297634064068352316536420023789662041408105319964378586340157953616077829478685549387779476478140338946691074272035103232779299467182275753727280915511248692230223017892258067310606414985168026568794651904853142580174482148803652010019772076178834612117618499136820733837038852953175348250258252155678057134036738194444635187093886735291738913217193867170541742998307144850798073544116849324074707436423818409795357420160294905747556033867389718945770108045895321141691961041179641310260282201354928170402070965510458955651286958478168839813385015061627219934334095629238632680122381099049766370324187306403155508819906998616950350220486464572105649958530449914389228019484525175114652016108907205165026605817722658400843560360772194287853304005829429299586765370308047744939628499327772627612295301826711900880566086610264792064991860906590098165892106335425129726154364510169265553206340120494912726026396861968213875741321837180408366505724905084131166845554511565668747710359472573934763325581742593402555280064150501490014914937538294666896763081997788333241242828015082579188159474775148816368792787776148093124415466991972830379418203833860331101397629093307544809411990381535007597495036401179130476053966227233002154335099030446061609260303714238818642892526477171378414365531374558484468028665957216949097310462043705201974228535287186495756456951614240874342031462311128737214563943151350115949348164645648603900995384878791028161045182170082506851313651109252214547529753614125703737034840654380495060175980736694546884938762884237055128026550166810501709066903239055109542140168818444726720728905126461951304143923413182425800110230449221581244381736233698072366503239556023197139262822671668306152310348129020783099698548317068408104479354216985870464242595003333779861455231577061533755360156888646751987672932555463680883798390256495718314211564803529261067741874219255034386625809819581250355701408679527145755264874542288636164544808211549241394773780778857884647198115047958030468940825354857975981190949320031763689131794270553318067378031401157635997777450530945423388453359599198232168166348375363680395350444933701468901972521189273136317264394112922412862879660282821106123937782384198547721442332655359538032492994716296435865043225784704626894897332633647510356888665327874245067174094601740746696696925332113408743317963426387836041978719154992736364784873162322806318030839857136441878205210763860989268900882538918967241155779904308578634727208775822539037778175046378129773233692946142120294686163018312949082590718940715589021602502008770366721502851546239651762868158103346335410844835493623503779990391955892060752447354543735804897979695557700289979557104000320242340346199095403435906377979687783983013050893251589253731271658533463308169641272496115459923582136259659641693424761943240098147710417699175397946954055683826219275500903261201032946811604174255668000235579340489743885406930143193223446930247421999811285128324725321819688273792207832460121472495575876945786792322965743421733333750311554063006705315145462945039076872753340663946398821365680685896783530423010041494659352176880367399981147516900654275489882911079242748581552663291404797246304626184156990970722740940667171407022681033636335692322095150337292097462323599624642514495157271890685345021435011352824115293109663839893558377315494225682236199807180243371830803486417903522862167255370763304008493274291101046088734238562470869508373339667143043280268567594091336058367890462704682783990551786351102101737159560577272871254886502244259723297924202843588711232192089597915889428539561283858292455353782190398771502786510667917046623570424926908450720657673301974409929819803712564661999139729608420558208016308271003870830897999964242820209871811509050579045761676005868477867411574434558303902105119756420618826658512641952470825369835444762123205754326162368701671696272684674288176029444396021675614365541811296653226435037595215819393155267224773695519130907029800588660429404171715456094391157710955560238282031593487891146206913566568120001467196296305785313660923177493109864499946196709418397754575103603334035264116819746756676435844698113820328990506435664213236142627784777743574676546098299023186225034976692483683474597565978287031362207700693316590215836944744966896156678547859912830049577009339162394097514195505678613181515373793556737055184839277260782197305847780184299780765059626953346546171596274184578120042195107411808307522749480650061811530431719261783647726729016760109348472253052528405268546225095957204739636471944617838284744288877684805481625018849798399842494066717231976313159139412618138720956332476208967992645994631708880446122254913621245753209046103517106323974288725246992967277413901000184138987938011850854443964152789583190829964539410524813016121713997395790377231645894207028059608476049152613921377180229856280041653545820561592548627030679731467057079693091203724616587597704115417877369563681874121154820100017004571334978551473770026957881054053348607578949870839067417123848860272459280812965583784900577110270042235595435996717205415584356396760326923350786227083702924467098847170106726455509596894930203717951870452222187764476887397793471402552896628317574834171549820614535432150796864688537871278615186064668554637992718645898068400700181838266672253413657651528777925836991463489897643655278660470413981652803496418652376539763518617552549854191515992881142833540931823004507135421435181647428876645998399019782856091522088867604930433585950438692580584986399801413201832603884746420448231853900090382921902806298569666498405473886017877973688239345420321042710648048473480275931007355201587104028987721386651462939104212573013029716538409186095716792373970677823123448941018151317006470685345264806935683939820738369358111791394408901855181763966606951513386230164287807207771299555543258048732025120912532152472875665121778322191620588733029093173968967851602798261409018522655610350399263370478011884738973138699110214606485973503472796656137585546103901819188216566469349171332582302866193955331835294272425803916772271954274242022653701106330209200065341573097910433316012634264244581977638066127426876219921217590270498527242773505273786624254033836459584721077107771350459267020699455003756932407325039458123792852996107626229383586233360888828102639788423996615597704698003080832302535045491528832400898946236870843926902393550333303472696670956881916391693752146580411762430851912174098840539174678682585864014847281982386063896901330023381937939242671964890951059392664395228607630730071085017770191044983120307522759336339401344485657332878215762554304893773109053103151249497350902097807522205539037420860214997128528716961199464565825999966621266490146553894636321877526782673108541321713224753750895399483236655319797717271153074206541950552503160704305877605786040230894207420785275671605509045089306034858333873566307526387304557117282677218187835552934825456589122134166481461699552004235143256499814230093936546480287594527550962287025938335233174309791438626723828317569250458178444021817083695028450409418182874953546851309549744737722476392958813172443094877122885064105389545185232796881108086484115989287561722055867806016360406620972017112640905963870066709900437539337962154966848760550284272423234285389992408297975556388865704790872996196435744168689762511338506489151950881318224168373461102386512437036869971635758060591326913705688706843725853224095183937635942390068267539661017437357226836950898857778792030369136514740531112271620662476340609344668221904547887549592360675114030200880200873268724060650407474633514647333547079214473060930802174643660495690336381307378077537118004998274030781807482890203291757546036893072992634582215674800521481855835885301367117405660964430277718040435161454169033769060098041987600646632909296673416586650019713539517694473410699233782274722956030287670056964876727925327288227204786844446616342710370684411799302960227616871365086974448934892850206165451300992363423585325272729604762617169675411400331626776600436766741827725073867211293904842508104430361960578400982649330160726691326733522471886566384143679407148603984162781207193346271023351163827627322389227598470125040607576421941367622928775389542960461440917453873003124111607441826307163208392909847242574239990371301179015824592392878073780711188514167568365548813783733733760681749569784189453640920812850103891625164204074120571747938766039748047921582268699043665094810725078167929300931849456895131896861510685856470422759647457922200869064538417935519992135713227596934510622227333445826268237325929038253596322670827081111846327041103531098869814073013224407765322407072733639231723100629167249379825843600041685493114747637200322988692573866865633165984350226250845763939713972606089574487662286378965410616676974003279079129879015958924903504919601606992820898806215309194571905047827851477663935462180550070169472720218156069950780023127833161181072256687664387367689537615108910856678887296912773456925172671440637008852558014779879369108009482975699056377772918524248749745110771136480552647700575918610119658878661287937238792171181808359537436023745066846089023746735115878700047071186742391583186964781785122563466981102848485575472985864331624823635660194831865707222400510395816611443453896710529803365175028958154707187908304158178461369945370794663202026384253096087780156965519535463512872197188158765422397289448647962042211540495001598811177047964665773250685674358920741631724859186528350379939779259652087620469147316356183166567916952056873902383431546455831281766808914807921258867271555160648191126060613297702705686123408558619215403491944176794622592587134686784634750563233898358383575262358816027340593189526428054673180402794755086035229423793905776246197106957329467992338100859804636524569584642235645290660018776515687748465773455767839844622617763725838409740307600125661532158663100969047155482704788180320377989973526884837199117287445968277822794712390670732220708964987987501516637077785065351331068723783906767329441207309631627806114191989070010838474109981969516685059130470825337227634344308058048828168995931120130351489437105299961986255809440680446811123827520443044542041089777034941036944777349645156500949868164071700479822515489303584509848500336971110329209904153050013669067742986956420125141298666842582925548294726155269446173672205152700602914777341172225252867209841737451076723190624495485971636316926511115832796673173898467276607958062699779536924042005864881717718480964925843799375468718638809786937770645608077225312305895069821364958456839375755999087824680651286070446381225053103719651194212999071695442283843506329253275117536291591802884697499461708095416533165692258097020953933102833752237259027778703909046009842779530384242244974166072442289769682456183128067545004225672778899455892765303588696201287982411655358592190198393548868499120593769532548930551554519553157532214998938170077657733766797205945577958393437525628999475682458433391177959765264995972344887693566468302653695379256497680611843137010486029411113337669661606430285621967910298741189237190541519635431997467784188613387974020369546145275680547811175295271479209130942492295147852915353085736930764983968342259340575716620767639857835547393388866267931402292208878087541673961769462551004055698787731048002099002654283454910693339306227320431729398455998676518197368868540240157229162680431892636843740228025197015762530743179155012693476957799367255555741011099677265853800763194095944553755966771553040892889966142745195603460510199591441339568061043843399510072690411374470585254343250905753009564756022313051542616606915284900419089789293637463159037085585612809984136045202728031380336294329786387850525228719947224231030800517616904932242195153149190595977387121675794592425176782632341750316220657499780986902494350467164672706844385296506853917406701460426292786523514903049007977129363033389770973886769386122341900370695209646515345493790266162370707938122164632654985386063865685027446381020706698413076639864370147078204809840598345324815222050045982496094424064638297114940474648232999372517613168235565302395736198691720216810449126221946737032007517969756265458725789147552878905039575229954528066587645105390811095966791213712567672089921703961257852285606159033418429918717830098061022019706146704172737774474682555671907098527665934737157956833819251950205503800812613055085167419023085683532505587698894620775008849754005467445905822324038661731622137742847111397810203111926363084762808756470277235146432752344911256773905772414999027627079109940941687764290828443671215690307266952422146425437587006722842000139456525052278337391520897649290440995982356710436303661177105407227801443810672865581838102218503125033918070507686532383825043920901527708014130213526456462784128219959428248499094306132231053671249909202287892309077450914994140162750193845924837915739879661783990339894972441430054645954980828773199986046068650037974480109113879218677658165334952891947638755538988891114011297281877775149075675713700873168835228578443215061039963515423291867128084400988890113497616423895302519134522449432283157057910764564872194519402274158731007208450651817030591937600166161841413555698369583717231822330974896926561165259337545602352198647607631377709006488511095058646385135372990907467102065444092339954632891485366326541327626819532244605412200710754431251492085970914679013505214431704203765225662705187783575630480972855813972161657765819359033253486294889604219232959032011773096100375060059189766326039025976918590559022453135935855027612503860561884323670526345534217581537033465192809719173362871106642652974857540167251209791632345925039620390542712068487183530700678776043983762351154046898888054351846037697180636826070485939782833248537033799392076919831207479473099880092276776498516558232870845637810227250979163218472635533482455062468666463941814298599629941556731812480568754652748562492353345689602371213971392307632400974765422451482715784217456615362918975828238990921813778078666360627155026939922959888703628832066763222403480432167759963461137120553703250851299811799643688005239887490926765793815559530022021335729041068464366490895686347059536521496245375197225214347090921443217413072277010702334950241385770713494294917730569853307730260022836558726776575994098339335333247769962572945500886472037133873915703414218119149617699519669379611144767285861903357005176654470012332307073784035120480473259522069951030783976006253585009123352486858583675773983307429630912654724282695115861492100861798469843953505005065063618971712627618808900548079381502268388832430494089525456898878829975752992313016834537432769784704914930415182649147355802696694361670548101388303863661078443392926073769270881951917627208346603425517638437980618527649653528739312335909857749635624354235821825472703056031903102447104260017706549922909684488071469282219857235492388028818670806033016378662437340102464455345518652562863481663444319304534269249471439988138336018887376369147567311389436106186731285700219944700377420038561154881951931376717902304280501332355575161574543675583685756975215282493957795551392156854761208741286969596387692802664675304920512456385991847392795892023140993211825497312896629640164432450411503968979807081235638795854060950331867851604711903670625072250284844253626828368284382228704706183471528117983833975760142998341576143785578038611124542054118200005238978803688322977181430443054915744176307726386038494109294792290271757284914452309499614698344358437663812187176199427973373521485101742719177525784042594656091141043129451837036608894231159731747764437190485157822445980923073655494851745709858980401409541982211447069093100331921411806061656620148899879801337868236230223050696177637421823549234529459490189770204027329634408854309163356109585924221830723639363397309164255032572101655729112810219627874437843243024953296405042773953776962503395713886264888768299652141812793031000138784094679770158746632238602741617602857613800285491022345187036100286617427119498238703322059178378451313495733728284599548221615042017089446929179913913744423133983088565647466980332809694958266860753164270833495088015529439554865953674105556238669325470792500189087135781066429589131014734439778548243649457747848660694492184342116397924829831523408461978370136212613509271766588237953317392008044247919958930390231052974182367211485392099587101998115527573328446908236441900818697347958346080265555417134600891852928985433671259230741060083363351006330503920258656187327690974309399939878706975124865630286405990922313055856493609230977590385825377862217483381913588614788647246780698774916457642551998765158727863349122036256569580116136736037053816201078886083947013315036884608254384716908622112103672227373713840121772944309501283044546323083013297838988825321063709342619185555008003194907825789863509372087827000192230095281259407103477299445510217931099257877388970695945982942099838735689783958139039523250277662156250275413648126084777850473801891387058655141297594240454351659263634001006678809624840012664987160287089637796803746775322655545400450469679265223814318489478016839816835553044250895210001654334203040379662035583433537069208489823417192970900489393287425003552852551019164105653598304822934123452118087510978848111487489500731553149959933132436317208992110065991756429171035308821596297128113644091857659633424994664540637664827524966333230883668731974354242170686515485991598060965630503057138281411442578526430870727419920206146059486660902007362733650867799874389596879216016175098101759321039822316722390189418089298962265871910765382788466257949397612248178453520372868992358012582511778822741586719348738126955707024888871682780205016449988748120701726196634511134784615294245195365219128845761428902271283454593290444366251889590928012600651242516902902325801673551425354094157415491090471146605706575618994315059251818915934301958861093771344837664047241144601065312139684073161099273147878349330260829307110068983161804669681467732707282398671195166023002628392094047460535918312197136399532796281983791506388838862381602893273687209394376140447041943491339760254511948484332749160663682767754575785778996629435617362925975680006971406579521673227539391899181788251001731640302909027906125983221163380420196300903069549649561104070161535020507653113617319476940739168934736545753898064026258927223425399269288709950362063198101415615643841105300339322969601435651451324302585754599878527646318596075545970350547314717763787767443791348943935156020997713218501580387446557565175442455084272576712604005235018507337440294832716105562374772974490502639798170474383393980567982988648712808646994287298940572675989399165433775712796891515820115174632831839314352591511967559259131684507574894545627640630460457406855910039234098906832309650690664458457258360710635481261537839803900365987286080991734523087803146486107467120442650434639042568293733723188130117669636665101565909554940703289710327739143338721772884582943369930278304879347712425738004037791863946164567273746398121796757433710912362072114424755748090464835395269146819815551007338971259168739262505798746094202909197130453276245503908114946542713953178723903080642805948529277602012410726584896903569506083441221109512889492109467386744753942988216631547124361196793432299608413913426480144697198450623331950396569292550791007631186612591973153663766295626821978377924338875044958666248362563088885003003717916043178565213614561453528351969323042737008322684402323817150068394108809967660717097544503668728968197783751059271527660856325587848682894717699854249710025969204272601206806582411675586667668493213412355121127348565596400225219378702409470584050441976648591846467388236126534838183570188121292489449000265849722432637334331320566233611171576865876320695752229039407286379451023956794095817943276355175507660240805503482526999021851518854253364796647870116679757280630089235350907051996196146392663081761038567822997450851085547814595799483064352829526883778321429320052258260435677137116818259001906104256693479395456313304707959690826682063567208623121789742138021002165557427062678019494755029248258411325650184638785680602435353859951971658998870454005607180328274224311729992209054695662708119284301144865671463419054543744775972138036526014919450701466981299632140955090370272808088989297737132179739978258284786656781314655889919300396133243009511967234741230276403609360732889268636599111380201169950656213636169859297995049909419350048195649699979547103793347818388096412695545971207032617684501524656538490784586391919521427766626296456710759835307029567390498799120792156192767901724243536513318662814664303627949259911434916828099123805246858136596994729919477468724278095208199663629453330820052316436880589310265045651064922796741595855654285157534151128707794573124708147559678323624925848845682557345744557243310689611271547848749907193747041469725248687471485930180297483743486863281365135630830970699026109275010402064604572709277051701427048532497899401198452317358886802867617125492795316555098075121510501919048370923561181422748539318809775086161811784585957250186245165845572598741892909420018324860530054238214632110115359313935755485677141787985712146756794467269843376771451839969967240226525408317832086740654364725435886532606518242115303733463963164837459416860024599571442520135994278877440943568327202481771119936228081141375519087485200873330376491475872852296474549300077864553307605411972377780870081000376439082863259244777039624446407433353942438437908243630344132490279592401137471999340159703085218623483348225573175542389591417679459576466535355771142358687390762815939605037030050813249463725527380603958978818558990961574042749029730531783429437196636568065116919488443733381475627888562702648483050389473645151599802990377510726865269015839642099787375888238959764919309722324448205975804487760446631952666581532444502708510143416504270994901808971632055874435638738087008489801432717981960966742588982132063070258224701210085330975624642052442468431142676306004685008157437421801276266500828793119110628796700464821635857055142888626611670793976477463788810593868073548129017133202024648858766711678565040794464780966902764207475995777791803671976940359614630556170200930337357212779486585986981940410632125765186227611163608513227694813394507351301455788957647525465549018297786892901824095435120664911848458197276146807395959258523037887040124424665383885751448558997655338759363492054599450517188634384544106771572557594257045400269396964746766440073200467175691525002632118371738002969003049019090315735885825358759351122429095135696026015313690238165580181854264277332581678938309923665793321582990692258304617224033478559892756331643040961964647431701532536789263494151669545703776616094207501778334915562872467454426947123863897514213343427527439166974493336087617946479157204372325551436096057043492069072021267423304239890018700910462743636912932721494798175720972233420025151100923877407423709134230420461677092141104619206143208450874492509771952679806348545485892994036812624063093259853573359496230079617930242829878893651506442448070104025524928815483855619056753660251431983824228136768986762898959862878144266542973532102622170766182620985297427457072784869979582944933655189674862591539573140980038614640765460601445902880041559609793386710804500722457892898404854863237072745839026656929866767176786558082762743735256688179651863664560120617316696306907632675231202468352207019121867565230319304058319141300934950994265267351114202617962192912763063346361975193471783574411603663564324606579310774951362236800112820484576152854474652048297460143058079500445794410599589689748864767733840681481571552070847157235325824869181500359367599829847474224747544065807989579086966400517985462333412231513657877938836194391283884808188374871196951573273533192268943374685755838534239166508028913807928465740310309510124276300008747313282112495705078247037938907958747069216537970377019911997449660426697093212054507559496642512193718882192815937653190263969601853743474852552301042180777663156446828287916893338309569006373493170273164630881803856004197369036751011660043249350135716900282544108646996948261747999549404546173572031491878474437225508790680006781876992113611555656034291386066607934559542380507185463392133470962632334457623869833468595502291698234964150508550517089968004609541181605601565729531982764460589147511266466540039383494884172610695797882958241025645091584920645060340637871487853154646522456749450195573635862326127853222731816567867123068872160902535120936215439724190223615208421912324138416792696483356003915760151109334000003800096420597135107775596603900034056217511603708462716335456517850092108729942864323834749231870006193858992276238820357367153509889006120196925578628831027357717552093562839645042085496008679055779229912359630866516283036687903593262879709560600184697143952338088188720677685708127081180412530999268623800130412808474264363598054260665882381669145490247723128232743918587782155050318540286730266170519957797418814569941814382396435239116514467679955094374237810306782641168870086322333184816700370804175014246997611926801714816929525483549564838192405776553297408310478597540664311002444239545257712097925467857703446917951651595926998245409377042727348343311558530152208901729214176304084747520396284643024912000255759783199839427746323877472025838070448869740510675522785793337565354722042297787404222814870216923881936304065787892492202683330357507309318805478303569844466660061195957139960508995244902603094206753823755847838972726382341814791634921713184181473322911097185368759876053882433048603678660824567379492035009326112181464079662661286180251904522517454282261085999813475088183889675368951461357540186284125312408994210035641300467532842453044074386247844626467665418172883312370904145997806977904473200821060566017631390564117553656408326653708234258531344096402434229239829854014925515891513178715070358650475943922311476208652692033414165917556271411053490879930476556937544209633196698921743839369496133666893474731257926701007321171491074856874147894301176965797094036895018524895190571725156890859005164667490353442275930710428427208175030316813956587233978159743863508560009031397123542927966677466546621073076613211601797375690496354514026031706365498751790433141229133147744880251744208888468245101413511209982338108728218169857592020156112496232376615783711302506798291188965832630340381763245045044864085544474330986743121381090946529705729611866908606331919226068463876308502507579491044846906825188017708697934688884708264435001506770847358289208229393796791764007530292512730626030987725563418088474773381353512169137656488665318895625669964463391603587606325731991742381254498589089002796771578000791710545825280583131688394832084674691582360171665773257779234075289592938460781040898156599242197420135796333594833249280195126381629242465376399294974415165170818271354232166360705549273364514235951559829212201957650670066157744763546017783314175990064803108427868657622803701449146373077018042214410166592787238805252640442678295408908466137461481431216454879159798054540672649019372545149083802367505166762092598552739663668485461371675199916299034976883863253817214162526472824139694463208400946841153413933355637936274667513034602220337099255064795970407670239588175426473104319251965518209126080891067195675673152416926239255734210181082116047224062907671646405336510888508004001714425966129640864300197276418705920641411167619506625345606344711734134168592853260670485784380859496428990280290459666514540297987333642955882709803554545600975234704949179056585004888400452354260540644043259578675248625698221490589510986732189131298174715066034396393980339341737098246911315083406153809725645790812889187669997294672433816793258595798411308431451755688376270197601066100992232842942413545862364471709472697825745678895249648554982110072846048741770297488870695741104634090430795992681714811159630874328249025005192339221974318139031250171615147225247760156330031039056323720764984904631384114798688327656845982377895521915422394630776336117521931113617151472740745327748736768114840504878191737343734282737118399675619503118656867452695542133171129765101275452401555247503740292623953788926900689223303134292105127771035701848145544885244437578883584669918991304874481067887860486220795788062551171396636333903112945799485389998294571616015405184631238213581344241948975848868159944003304641145184929615131830043702562061867193071492077084562288334739211315590265048723274224629801813614101009756310215603221983713755151402826612609966722319610110580536368468446796929369674388606010189841936291972517515026120087308592605102225480684240377518932277338492658734069713730938348189282351273092570431560378367340755715365457686132110995921244378294032524584800793278780453678452060454263668812230924512918846360493318232832050038804024318196976359856655995345402023533799230931756754355308689320939901611353883995040119682072171003250499071656524944910561889235944861280873881993845625061875978679879332361931052387697162600718095527993287996128716897388738781460082798498967933468693313836238530850414651439087425625839731546528263488688368869287618474571905219219183856574377509234887972180143448529639732052219127387246079288022172797872896211681747055154899922289400984620199160857814535857662457882580652858469924397783933947965247264632176518452512691965818069021173969086790858394918469590017015990753633237201941188931436028431580708769938212441429580107893772043046323872882786866908748499766331278076871951525467948430747733771292330074066206727162584896456631366763703407234368452909440996415253170730660916952362420943297997078217232210291027788678993834267071599042971671148977309389003808603568430172438695825527588328899602685247384494870177385376188048646561583729904232265841633712980715951820811336697420775190253122996611365559438310105380926180429121376874764597197222432165020383613018479884605350459364552145104718220868025327496612459171210642826157597225351320552702085671663558378835065923673122169750364628934556189652118960049364024015780127792135011435574822740614581994820573736478198179241196816090839137020741387303407569843496708269437622393258660623626044014804008243475720980784622632228322349971928868334000554562127212552161398760496145789771008810229748561042408726834830689422274096396399362268281463282407122427840002226653373077188855814188618444288036885835733523859585034449794422737327802525136392570417851424250197995221056518616592380501204145572185664084090535678009519357548004694918905774434373500648523254685476467138952386475182233468601160677126091586586550313795391873459359365172732019853201896025034586917337735234219263107900781129958517626112145923355361382784551888022983681629973502899564344004496805779265165383111782752995059576030900003833306834446412125694621242431703934385292684476855972376885656649367629295902904445353671106080339153961667461593156877501855725026950387887886157026137219628531733176864239802218673433872027570245397643131072586914879326621383676493247700331957547037712068266515956978929770742839013150801850835038479173464651426637163492265141982129512617090465186253249608436707257375815663195170060961809015936824287072941217192504840051945963277507735197651399261019008058384240730653602923032925995838476107345546206317614053178761055382092641520341373175063798647671477145170886129715883247176803718364210754486768685335728477409837587500978423506069348434326999066376504888845192817774879682281671338892204797457676779507077945863535766371406067199544074701112011348132719189749173875408860787385482571070920087870053203227072324449804166726746407646019449545053672130093262970457933646926122210045112195249508854037277674482132790026204332233448369348197376718573706686853811343601462106095054137923319470489905109097676558086134401664303616273570301716901150767240837476626284787612789548787448812400112300215847964679702812948256679082095220812742812480344335081929956350568793535166850681304458867748844481741656159722451154315984017086563324683839969165552430786539592994329161358720992443083923223849865571651733248403320940701603632591820614473782194023719953302547431705689487739411807110077885316302017929559819972175742762789322889429651624649871945549817014421808414997567311996135627482328836365531305600087939052687664044652274592421666601452998542177431467063657793002191021635557737313318181734347028162688685771362339809586788759634346986493840171956236273446821687927043164446770786619251302505456924210848271966394678380228571333247152588112533528375598330376597274927609096177948430475545456756819343048287067918546838976839164007929653832222573754150956740214446151672155764104479138495683680785073006948056204735407301527581099715203142768247683718996003736117037399675264510791512708324856225790757478173384088976678308706215672004534078416443135597629139137395804152515130193524829032066403927435219936594690293563409595206248030822219485875533909011145044857255817177573223021367645415505697275415595961082480541087207846134329396106525766071280597472668860134250263861273865689682781068275423104577448267699804775230744299210037774349631936433335791595983209795682478948724956138393113356995188498770545726450619909053813605926521750567322338983457682609877432545039454133205419085284684354436832659815362129797293540634804973327792776315090853433864128196404810712346715036242866018424732842458809167552047597219528078077301871017573853929868176059328252029799922062260742728015051685819673915057420826414665499932007145347048585656444316775883039323837731708198413627802223353518368105973567584787521205494924153554212496026070042100168220335516993161290852001465201736389045686310890819025098554403587290761703266523192391846099227466988146079455421190791629142849929964159525920972335047167639263514680301244748050252901330860170050140272541316498705608935477095696969277116304201879178970205706080911944304246066837905552171779736412757874892898200001035283349134698529359919847573464789629337584511263383176472623388858493098686989536895676072780381035257948234530219003577128665936963625163372248684919007599382487779861729036756017591161552818345156853922501862014150269535239681955234965066707640438586666858071301661973472989135749314648842123834189180965115260661079926135273527185442545249465987001772039587362673649294043304986414797154406361062871650574974329695222842743497500661638059420013559386440381255638042696554944675218152568831116680912101723636325708504913343851463221206276530923227012284417188084203396160569934954897580903620120161830757778459499246720598936593944127456998367121972231341415457945306495349401785057019907074425332593258207071293260908949374333469816001797248203253852635197020732782193346203279923060023033781855499298489831923418057254300386364577651164337286616725095396856757398768339570265291623255969835242215838254473252875234390377866071922970201134728068234463693985533491656094931343823608530486118736862484041533115893543453015925865397333047842516331434712849281322754525625799410697200144911221716193481571683848705583371238061514977035725758517484144446071176764526804734558893772525574125408954926673343068902146449557323857380488389440070617491178281839953626054069372207095946189383085328650796844532139942781847668518967356605805498726658785038857453190470329644353642439092001473428469826995877585410513894055647167459744289469580799685576355671675432033354424931161605744956309136158235479488150323160930804567810969225304503653062307993128582778013338497096586341251364858753791687191628572952920399577209800458873462446371753233092661703031429711307611546755956386007390505060888958120232811771768445004780527338105643264173474886556354643701392972405698171452015786312686713138053975829599527951411693635555889082289942035335287493734062619693733380643482743503003791393140128389910800737774153114997911550953712448718509403990785484201803665422276521665414806220874002931403415609475887375595853608208748180499217114511240311561359043223739686539740517094541054555693173497153904161038139265343420647293905170582706603773725933387778935797307521866609371645403141733174169827129050791602929996151075044407664229912174427048904664022109761893935370801502221724475475398433059278401237772802896359941028367434274209113305546973574131690736241330662998951216818142705347307752095004367100685403769765465432536724268691012508498188809250004607879627651890677948141575260394397714025516081919351496042920761352684780009451041405097659766286597637405030410100006960201793488878018761351512069899549791303053271978439975233209118619485480479985643742417171548489675975654629001089265411321913930724369576887687547823453344947668053775668909262879080123357308322539634738599459772558998917760166085058167060593790275172690559013048114793045167179513752461898009771726971926446070441439433794408631270475065519354360494545016105906442887231905366521136129278943358882973700742405343009916369099178507541487021916715485347283567128886849503107453945399232968089779813719868649750840457206684888848376377742996234863909531746735221423315908048992495052711437310856120166096304274983119893356765459351559357902328363172929322425343613698538387949690123304141608985953056361182687071880923594585999898955447110064601582144009806575003042161075625806301014693330578922408457454605361281372216194896567222589825112877807617941602805193241851075433061058835991210929161257593726204230816426694605606329917326123535921020504272101485208746492166677854516185749289291627775734048526512527262499873849048575708285323846446519370230960166456814783466478350028836594022607164861610838160134980403696269570868846023569242433071323717993194935144839630137419010688127773324246131765599999477271637935155676237315444740673103152192427393709932572180126019389392063913370387883780775527731253755421704912497437371918312555435925937908049759275346874732690575951240527308899937580214781404193497118940235828773443409629860257357540090335930117961903432154061751028659590786912022664583320959631505751720705365747055115988970300831557590156999809198145065322887358125696961160427346143844310607476668611804221057468731855421042005904522793008541814997917370078774484162064292416580314056602328262635092050963439367991675793937755528871376142504367082128583051881862825655490116459634578796534242420380823482816979394763431241505531232971563113226313519672322469297737105240722851181180326173049635127720021513914684066971661447399064484911466901864138416771713826633882339398936740141738215122174772509975253110437337154873436079221967241552654124177278271747241769103399057260612768003804965006935608131038765679022199988272695966419193428972877893293650940086069444976901087670550599421650777673286684292393965875865412375062411768583013034494231856798209005104939478018312763027703574571595470680806275113393462699734864998235606688130710072441259279620304740872077878000744989645173222396948280657860115665359662198732528455408490522791033579517696165904354024161800848463748868488144872458511106622958683086962717162392446609014965508493689553631233263216344777486642292028878566250661440865458162247268379090013594882592484782340474589253307195716370641275032326407924210761201829835848184260633129499674865319752386083230826340497584729568749506625922724214779862844716962641440337521189368276859759760959453889167722755650850984614580635151672436418794361686046282586486419957373851357405823670391238274518888865559085982942640250886576779415598119358187642142929531900390053568603933454106222136602608757838699237747509654242503869920361006022343074868023226716924793197368531732103205850956607781530647648536985651595275506304796983740181114684692774509270046310908291133067246298070668822329283533197106210864700214375489998146414479737328203934448831550161630620612772748868794965622528431929910356203694725110126056682861383740158747771675523275230365993870060961448102647087676611109846951062957222089045988943225057795563681392244114689727127026299077654642614264240583480777765191898626639092408210259518244279148653323829524130799155251923782333904761695693203004063783511905558755097353898994307841280192464312900304639649616502148216931768589492482005261425169735772195328037977321059940040856961142579419587846627582531371322513103367290680178165688090159304286915815992769482145514241513320593168369768585849671400065178760538655837156357312390107970103555769407665570741461888043257095827497841849524792123154096952525705336371604551102842671702796565699861368052803994847820996988086425056207363326017517055018155899857651778823911652822595210002316986267614380623492520907024173134453648019988951138027083762345342248931899281292649255171929265199430763258734556592037884476903391091676821394196123142431282100882175588486030032369587582617782025833705675118843072783001387817196684622258856521341556839835704230912739229731934323829547010939620642306476351566559705551163270060035267253458975373500382223670450910344720896982160075792678379013514397501076460649930394902337275893549546445007178972773243851315475308238561640689214859929786230558350630737552407100160232208314629354159184430345744202404118585402308932403659783659997651261681264064273181473713976739961950782611272322353926162685926095814387778852173300385891425616195262012337621729016671828348554727886295409403524432982093104010972591719106115322660172794823979794957090331889266682472824066098902995512690136359565817700040386407353323746238788916246059565595927641319131017923808766560471893553698480753589398330238067684971145007804766485930063941986306028562244074897614518861457047029990873933887912688764042698452254014202946071079044506712371665570836511336012332667408496288600686813041258636372720450209467206569291440915777379364828383094608698210178677618799707846977014006391351323106674219189608205096236322123402739823991290957745559089314971938090285181807094252801742303861115471557671044784043817628382279504666543007073120803059034903974655949011085880256155273700989361431537091965968983483705872096172580304111999025225543273607358565650170904947695613759838370386376547803095924957581519254064612806535794075452128869985287344808646323603590271995644295868196833428208017415410992165509563030887709490561002658379955503556023471782644727322403190614172053641126653982041122813442060028869190163412368725900675788105815935655831940841292124802419442321981786872200501327718626832046514287276441054467516048601456145013636477868495017758636799711807035333706066827658235792925551763803461964395869161800888610497924985852624867699475480048803082628698637566027465701027602714918344215895601257510539465754856191136794102770211081973067390337188969328854598527330282572408118379169464934361330464697271437168773078451985726773085301119063437312381966093414133821283930191017218656127731511793398848906664192040434882061544953544144443537505764866871360506985954443703299848820767194425916329475360657331982616311561954429860747754588454489199021990055786412846027031521762356450960009211632823073055500215650472124752326378911803579183874549774945169994088532091370574401663003464545434558886815349898920029304676280255065062580129946317461836030020060288867904604646028871362732186668955205155670682402757902858769646923204080920524819795147659213357151881881545876790020961767719287880386665893112831536944775618916818450907455787648679906935228670637210140706296413551544238552669759932757488133484749775541476176664117571339407941370626604060791354058479573347434723130326003283790542772469301290040877984626184436766646908810062974889035915120875600604530768882108220313726312555910907564248993890210758935724985390914996067473148108090118862912120835588710522562533526992398842964710887818850072050035632694543164295072587694042686335307907804402523574736503370526822976817522246877683073814264916328923465160474112134146262282619029325250956933536135464017976395352618576271113013574406172439576130010028937036003227429812379349138695854861333491439572062005861535157771805457923584407681361981230142499277949050298341913650489649478651734891771713587550447642006007100267240533966638720732198970518616603013874105105156634549562050697703356513370296851729080220537579210129046515115086141513259303399961368619547861583178675955248138040260929198162052936991372590851883198664023398281179914028678586068753042233570533002822879505211026290992902257557093359834380755975732020788422388101867401150569297195649159660180011991073835949141305027485820343855684964780784791976543378381094688730531017773494573908422599859224555939684384199247299031056820807112687857050135724120285549141470072103987566359630391265870307226341857377354447303146389910914539041461359812501525733519818136266547237875021925491269542879803989136937710637235629172061030290689071099515751263198962330497795832707978640811437049682506596225176015681919766287862064393991167853173016571960078129552795196610866480099423123098443132839046213890841275693012145750189597977270021953733038570701798960899888742964089210749681136834217885476794687793335844811151917705870415790596409111879832153207655619093990764996822783499873302535514899444028420509688751744596584494582881665959746546224250550958722883786286462472205256748078942364900932741455141966516257919548694958395332300035923478119180087873119304006755592992818980711078723907809428783541908352573426970651870482365914150108551673345901091082847494291939160679363292779273653821347317753337438742834174188694477862601962855192277795200956480415372801843034404373999128619187566669330283052382348555227555157828865124150516125481049600502877424667390171912291428197771868360963448660865186790657629119459625582993511307883324044243486920628669819765039471883098088580748452043581235701014434250506133972515693845098497573149117453526546987695825889605240687011143802682281197304528747016366897733395280884592782416021264129931692610551729915341808461682114027389206956551162087082081221759706127956903111154585285181847829005375687012797866756750884358304459203833351818356620744702401674127388730982002373081185024292418160682897801289287527065695702532541137631825373780761013120033853139773755311196382446189843377891069935905510736997642428310905042671136032186790401869279520848491598169126968941706620366854935170430032278684811626716094883048963787288202938637539371648778924221345555294586473217646148222282886387924241694815994422598245900526335432010802196536134686301468842974584253627626563342919985264935179764896746856034726308810447847655529331663654537531015868391826875917290605151974146040442641584560962607209658043402999836235756511248931909904481082291514799552881383898872367312471071117256367769663947459240265297472904412008337326389727290349950426801536367816630800655947787830885072182975252170187060863020488915117934073685566053526399007169099966018318803417909334266469364040587794603262400057306211822911795200293360558247652509325024463721070882490123441631154076166042373405211017742040426236539947230753234293289641931151158164189346087502170429881383485230182328571764786250950805068537843431956426910233221262723254530223587679536688545427849047833773063495316164260140737245395400550852159659415451066828162144961243180491581797415680984384364328157882977474959497584049786543786579074251189136611111910685824095265218470164623798373223821233615071529618541848606778259482790909748461501741768400500359202932699027605527066949005117728714625785731256204369269102520792088950917987674298692294585905140348640231141529003854463707900529959279698502701316154810096948583659595869368420795746009096131822336305404774199287565195301387846690564318416818599012089583563268144287318194203670815919566594486132863469158562628540568211850849367345791983459036323924703394605327939875179754962400999483936499535125839539428785145634877414828349733125646579125140287984717421942911671178932493308720262214597326535920348026439453739853731688051335279829820977022469633815242390736742918706655755808396058576597098346511330517487987932615727804036154317293856822969351876110368666287593605408989161413522032940894111231607134986125446314671881415752045565572234662563221470051164229995080237874828848010388315520872600299541573974778687533586603410067476663491780523039000709770535788774225569448212171756455441921079995454344188338910831756807518939448862727598518821988524658351464385023244724107447487025058937406317835630390010055634473006475746445271347507006672604068171557007904083910971068613066419267505388719279176091715099831553896580928065389246566089846054097434357892285138552791441929669230505304335344231542534937025876618200735296082746114706167508475575944524201124344761024777278455173436692264784166327301593464269425755321255786253575823772446956939949404658348854015072078451103851052452456044008427004247881672824318527294658895199206837125475203638965580584074716574162946467332099296162498472952377891444187729076295988894767028548835733510508049651182679553508549298061037564764202862760206344481163522325267965178836113683990637977333304946562864166479887951058699231692543643959298414610914756585903733974984988670627508513756568451228106762185670948852067371409465234625382172130961810190986559292434414276456835207247897002704547204807426529284319396090976066084236386017521796491615842331084776888173236166671381655950497795846201603892991740655454617665144737223885715241069350765997233345549139097055486462857468705785696419304018394267309533718773255804489345350958600522150525777408342929277281284344324516532756339974107203952673772473007813788437437912396799184465200875958789994660460178746295811956125835560901078578238503352863406135327686683229013551844738344855102692014541005703473463251924243653710003499892952770797733443844430294782925620860635885970238860608916638815965256849738405039336165472349556071473561707242943608394199074935506023582656073014295956109180240746850853558664559666090015527127088892371209333883494378597797022293309284656073174638274005518292750675046391293225693769851030808351184686895923169796984473607069811903533813069882905248904828168405550042315482843495154977869373517148475883688474246876995604335075620241856879566631800147962742420498916375506232504972852067227999364922996375461200357977405394528752880365109754589578600274161015440881597413904001190717281634915663798798965598892581557438218883869475339169098245881811323069248296893754552753542244674275385744047789868622558699078500758388297619573735437979977970034470386641766563627492357742674178096131288650590612859591409914385881372460388066751147995033192810603619811807897253678035409513672998914084280513970926083393503594752750387234292734521923373242726852267232766242872274847033837446951911233388441088140691796074044082183457250294553854986742835287379920498191770603754855984097209394071901229044742955054785425458104363381762845682152709013048439305539170841555630770356515752233856603547541315975305229993601691414814769312558939742010596649268323589817318583312700728974537224275386898866279540733297756873821706198118736113418784451164302676986980916953090733730665142627576628568288170010430067512003919939397309888223317249295620067787441742176017079810593255980929094292256965261710133783055930369154556245163224450447095461734134965988012961035620724008950057750744725853824393237124743779992387454901577166442555091347703984512318558094209087796476210614504933190758391405269580406300257389644907353181380595945279849739942813317894352929454703720161959352501443843396710173811406939261689925309299649705084140977329598864939407842640144589842278876081815767729585661773488578331258273431051800277106587903502261170502495446363854584730620752606518667574172461558578254714622908926420418544030618412442724462969031461100978782561865023228616642283244357663704205713482067496911805088165810166065211148886920216705426462283062725691675901156945970169892684483450074119091583546234895490617090452579035437690280661191099180195427162692187655631792085018612768197371770051015371852067200550118567408509959099229716150171399982665275613505081563286069171009518452066349209483827136650689649738566184011109416633805922479914255196311472307357154819626756032473551638739609786846347534620290187012677472442693950213094862223657997537448870283179857398594708094671936237319101802826048667989471262959774899260848007589228086358165648454430793800593470644712794312007894817459676475131600506467341468394817976247676226149360208874004998392794943545665351471098917835689889319606883980611314485301585817961441212806856088674559270970657866352162990415132164242452793390206413768385189691362098536296265536589792615721836508545664697818459452972340092343614971779262055428870042969375371394146657269788451575606570701837995548107078094245245161361398363805581111530254810008251502940732384948362530355452326574831206694242109574861503947917217383183479113854292887082210872686089863964260663095241494475076582810195002361221735781933295921277631431799823225344131888488450972445074650243101525078355580300629483687782242962654385216934347010483964104238280182942886805717468221170974269808717035274569387828784056463651256811186748330584591126615471088691801569414785207717460204816906377106080126108982297460435467672955710922283851347754269726081836461732724327539990533655395584100615419564018760651734944951715647653245431756377272057051227255465936442220291611216160667813347916557634771089851920415729645190699003179424969341451050509398153902339942502659187456366624690712527405734602458297980162490745416800300598510213432547625616747636963609405851937575428674934909135313247540904109108217847058895805220556205741691164411961802093338435984010690007335436313566674425231862997665883230623378731244050828424710769001594610877029020973109450992271070354342273603555747641205330542207280084793318713678746322687630534020603009698572485188422757617883692012659683694229578721732044851250779650541600329332071118307001191615306130951429554292321180236283205843058526882389445799659391026360204991326731546810793561147400539303914272221142943256183940391017527230312552368278016009506057871622670560674855297745343184505558842825358164718206148285504729959619917011624216391194840347908194479395565966922158078249380641645588584519739312344497775569000629264596221866221235105788244146444689301078199706979447977030280999068342385907607641728149262142087892894756773155912667786836051118744554558204776413946591026397153637876177057309567404175842640730780014053186821523473768509148116295758418065710867016224526988774172754202737762295519020794249337290318749084404765391385557500506138385068276349074082716562373192458654575942529647283688761017846340315152328641723367275863494577120613807398771010578714486136502673978369536662378772829096279257964323758598048656859153667414165785676643296047799874206065409832793568450520222710370055765207009268684640423013206631806513771959072320219620281413202880895825361710677635646391330631260264382241522493283936837535608888108732781566417210033962134369310815012876490901459845315140746852766118357923789299880025504215893929375506485312324619837649625208446107223428290236470502139274280588621698048831407436011400714997120026782866631165082708440658066007093486089498674725665272499752485742429539428767606710390279143164623437380689860628187430271211231142673648803536278294493523390525693251077377055575597076153355383913153290405125895826723539529728831059607282514954814756244222985045801627952382672999347758984428527986895170109605088925623364987238379818558483177284571093842022090488724352213861114591890322109456947903650808645798304005702721026125153400715677517974633362367974491221874047992861230996332292238160943884623749222999359302128448314004096266102859104101281222186510763487507011913220165885054923881314950542636073996176973162256414932547030720685495390039754949592452940211119489370277370359829993562678074789359423575610556645292074475443104184703027834745908789297493268862895749688466679100197769496167878899535297814447785752266915915867865985453912475085516795482968546472791454759443851036731551719887198681647764638418909598001715261789445773576572629038427308296953833351919844735439142542266191861360481024861798242861437986083141280900081585137557376184663825391932978561062396719395263240229240247552689358922959229347452591643471876874217605671234932339143694767033061253429589077397670360652472976749404408267108315643771890978512931120607794506141614636024407550933537529151125222813001303133373704460912468695122291043843461731308178280589585326523863993335912669190641643840417500992241760779671943183846082954597569416093322311629708314758720018204944385451441428299263745421474850118031388529672768391522121016992896328995054408654377267367752143324359154794374418808272324274248975888829253638209144452259938484918243640936966788345106307407440094106815351529378407116691737432019709207495809881886285948032688944172872667308351537553229862964549017836766507597696114654499562935376942446897137389861087453481514236779202180980426650878839485669206817078702503300741429374027702807256897843307445811139340562404927589689987665654513164624795727801977512220707151061032323569642007931520786312374480129333104018562767799756929545112886654600104429106372487731263976444826697856578980996075536135562011476514646097152044759659897595932647347805581021558432974967482681006560882184215764036947376868409056889880106036444647203309482493555653443306583788342763559891156660306696873229324795055074975748455764187141860211082640719459241093911838380146495636325772628275345856281643068416099684904298781785122870586473449828315327537281318817521087839371875354304269669002896592558739769520427227106518906059658629661004384066324281243945031963351299324476517010776163802768003980949102935129662857543473944004111036292268777293189080466965787819508853874719485401343936478356465957896045518820602109795676886594951526914050120947471410059972324596940800196527973182897661562214017776152685549469857484995609711780674222093340585670489296212319261020629739965138483957829477771435323070983062195164197395368079000534545376997971466255921228793147664143372862526674188670309876209896654900933235934680966359140616493219474707660912453243614701076621242075719271175181726467065082410958042343496077542888924563406917379603794059207249706923072474443653020278805512763381570262806272738326788886940542360630955396360927669118355812941344858311231082088302078886978402853758454731655183640502498300138942132425730758754003575044887960050800860834560715946642095324609801461180729780129250004950476068132291370522694211304038890777989631763769094608089927457867862046572572643269443084254349195501965377670791429080279463831098726866702243878228241763837188643529171634635460852999232597529081251657940449763381991807485449862919772466769821659919355063987993044206752843522169907219555557550905330084505668210982611588242404473490951973603730037463918803900497690203398262713529506363215294002238318889056175222362846585174900665615710957688386023001426161494295925271866710457545713652803923945950122415585407089928004489889841154547263518073486120693436979308062286060516641702465561860669018461474426489654074519761478792600954120999551437296431541845419702172673569859570334973865557320667775409017860894211868351939626834072727240960893481013915799424406678441098335205101572456494524509259602867550051005793665333873824048411742250959525715582393195944434844567053192209438082748281952012368162862576272304572893350507022994028614403215291369530291554087123708282822583393783131978897254010226323269088132567442580497590916876837523359170985342139787439134838000170006947559348403865082631665071438467796415381475064636598308410906081843854273449614530436559633955411113301711730620109386522088471211924992058354967801136648906893131538357253419826341770509945047269853180161842305637441424494176899184542597930569392233394728963284538805531693249408473952292340093102061985458762378405358825865248157797055574294225400928155573101210398281839598014466550208579662002426503553756907183303102693548613598820196890100687290210321871381879162400451268334965476529770064800724400239577497154312421615219913289425277630245842097898993246009915430877771644007683230471255685549624486895325571696835094575201059246330718818211636128946772634041151128036584328233622191520426234649851247356918331078503671689518036446669467670642489678180690973056482888280841822835824939129898283748713712306118966594995862395456206459343539599308121568106667965822093865510836153571221006545622449589108045054885099098963336260109550404021760591631326006174678992344184216067225853100593390791821327706520215698785016777924163955183328446685788879629556261115987692990405585822384952999003939294413216498701078835457583542166192421150872288219177132006059090409652569898979419662825490513473080294511645356329300033006900437531241626424634266190494682479615381768948426920600333371134611061740811409356718693795637638980999783923047170474796745818259810064100479744447889925497127569143394601181517772555002415232632629848715692640322794171063714488196498629731751366977012410696986528321559441645372378481736819614984164870262196927354917178477584569344051144205001107362669881084723828038902120157734332813735340979323025612043422429613661854490028632597553686379909697062386526929334286311627376569896805146208229321211505519264283954599345413108414171436210191002756325665789969193928180166542511137461870676934850129451823770684723162981760030424704237731343309011270469179392307007819068438421644872075589054602866410285615848918378871441889776486147869152653027929236205752624534001569058005866136357146808973451563911535418287852916084768678612054745764163589315017180494508278691538530456300084498506089230186740855073729420873320482847329736788722255246355153032102384968096373958442224190715009660049324842717199411436672733432618715814561005614945584747067725621863672931686566561567997169634098740529880823253496089345390963819085732298613372113739324650186793491821818943437144695401002796686490109929455468201155376092090784093849956039530734228057849599503953916799004943313137399326634729212180195337770491160806162865870680905157233444148917077163254528595096085466568591388202138738525698303887962606303073766723079558626467914371025479165184676156528925483504939900903501675032380373407354942649753889455747014596611613140176348850168809807289502661134319650048936739328048861472963533989852247263797304360035928241373882688288006496018653104038627515637278201519953384188665652291008076900544353927851943875247324806782429772603224040572567694251120866490081550202137670125972561327381233745006524197588064554520409287512749215608300131028138661329048376829928499635355005824401394950131508540063942895928003503235155666970259705240096749283565575226680773929772726606729089648241693569472906666507115174122683530392556036565963505315824599117795168671544199381374936902491498632267583419321371528720410919081321699963860830247982490611820735936265455646039760250482183804269742986728899513565970646888400370788019128194987076056834610047652927808453531666044834938190639353868964599731959631558206287635388791080165730247122218879450322546458564141499344791473648457963412269381593694198957088710306817739777640542809340172170673639976319991650825916250012703490266654826831708767056693907125077912874135693100788504690943336965079235580422492282123232685652163249265622580684375732778454776941072534590854159346319969120833776538334052869697646425822407088340912679247014249809801352129691940699585262330376683135435530174100172066216474911452587463872880038987234360758405404848880795496945759499788726669512629553119734628372626575857112189061016616906123774769219737467055414891734963769401720029822232178460702666904562616066733739416409659510237246390608003459757490561505209899998772788144959419570277172537297826847249873555257751650877582589212453981963749945474821405038963986891642916054810903223537750046246024320095137519746359804160553497802389022292452160252550060223776182460278815319004469826433195536725464566702316206827364831631338163602669292308176925084016482533892641541657196128123060460256958712159367216241132004873841046151498969915984716420553403338975741271170773604086867872782694332156552798926150727908868024700797708020945262087313806084796092342368137126836947575500705875207719715066735796981705612430549601663500375404819973219305222014964112807457247072504103856664860882823599640872039901408793278298987258100849562886213396142065673365780992964756762275778189769182016636484702703742950604438842492275042417794448774845591190142331441868685299934010676245113909685950205029539261403488964847922463596170149679168870188034164964123567332253768567837936683044966846836505046618497893628484932996958826932101856776331979397001237087797483736699788797378983097648762151953240457483738726301485376359926880022428844854934987687589609568111009735441505908789798370879145321329963744384955872332909087239161053240366993744208995352727076889438722066214664507347752799909595009683412043210735085797460122977538386851712008484157980099102055850646711118968178266248013202440840909693196293228778510553760754564116953486266221747593204015104115382300998735920646151785419603462275321196323740179724291594408801821771175224342747075654326764661058746644729829902397698674614661035395168669067808900718484973118130715216731849321679968178953733153660957341420566587558536102507661368132756669100301976755461502498950513594272418944856151577580992371436547423466450497538631422648463508008584152630662661631205112930768374112846171949244154862541265282569698016788945260134065446112012072686555604962023570326361425311612626475987412313146970123249685630129209325219943494908784705606433783660447950595571640292049945022092867920089884543084244038311597334719943684285288271973594622801596980584837622740417802623749454136849270704363364465173787811350755675248740260232809885371732622822140594155661567940257510961117463664006863327784758676804529592616710031632838030808729222453793864067691314788378336637516154858940753977530721372707580685655355189377252655373106763551587305562205549768016503122701961126465843547687601064023181671125037006592934460286925469218197949698684480533593921839276402599374588900275513357669554093849834094646530691625095701115927213467707648237389582844164445325444990427199239755851824491300501714306317874054222465466708913586392210597650499871143937910854318984981996590627168084985420679727725641286853298395795858063517348196812865644893388898994380942728857665195947865511107757918269653112593052986839575441902663528431616863860832524611721610620236269503784589539446337146821420760469095434445663431090386191347024614868590961008838116216850672960851299066835779853407304361402792784511688129744864202928092930768282776735850872533604006231178385628240973780663722930218990354191663043743136702568416506427995155409174017729774616660372917174366338608582921111958355487886404673109244094578590993207116565048011669465381336347112885114371256439632153059418132098529343795598749714485408631345639967429255890796579225960706255867678383205597998685276682312219760271176624892517085767360439805067662197315097850585250146483180774119728594694936223862654986932521002827081023271800546103572401202433762142250542604577975213332257743265961275362656765734571148150210486631323364569498066785217755875468454055578506416713375038987667647492376527657608070990812271592942211180303138518146490948850230413225452013870084997678960377496148776623568060957184952968748205712383613158706262592378251420531002816894242074889419061044384916003635129812133924023455366973454163615607847827477558673426316407660796763326025816321267077147508213979305557931470563127648749461451858756135935508591358505007368818983373274406764324119008475757208412887743804954163258199771627082032359564297311061067134368425982837683596958057488308100515879944205324144324048236875159994655844986348260569553210691906083545475366519115062673690422704377095862517409045040240399108127535525214505680234819274944815870397701430226824758022120255426349119783079582147270793072949174436556668093958678507527677400943711504353500708461973349716739295104545651879967914324534394709464669682288635128065187785856295285308922273733868666446826967276333112340474450743241008145586477990890781631002247635194817931461963351502874540873036993469284423852614496626589201121800594410238241564427766451432539396685051809193549805140210413428448998653595168309237795505739970513236436614472047262195106456993927021434906049880081293048801751468707033292699514084127061761222040374635331748836634682172772054012240184990083830012919934822504056424236894834412317031521028785325200477855013896931462030140734298576502940060114964114844507614920515043512781569752635828942664102382023999027327342232018516001550570553637940532235536814483893871574561867496341850976317909150694604992532762196134059505455368109315178716482307867743511406284684279164579460512569670220984152290628357733947294573932323447285622176276359077893242349915514929004064353018695518419836074766487524820132568514130041547683495537509407555507282009184438578809208523129435477857633410657385364828130026437896210513298466485148554006144805597067990231770265304044772625484411042335383868437232213370122735795101352865089363778224010371113706115466679423217079524860130640333798300337023030353991361750213569916700979732502557348741467560153694936719728307279114818669574516285231102150200185197146910413706017726175583841672377535151778846250989184537283333690653829405716560626720979818501200798291097086001077929039945394017374382050369772124310794413995803048324481664354418919178861792409966705012540064543500485019333984620133596064992034232522572792092002992110071379498823831511461535507158593306170045176388617194648037917658443067461669262262053281373909307500846783051722696907321172252821575079286846557591201914211334577890361314691989740472666350021940163865541095740804264636280837895540575468912206626379602742265486972740501042343791287441069264580205238407458845876119544586039084835323377023144457460097602167139694557396667794809958610963992188473366020112274389834496783928315187533581996508619343901292633852097514223658597913537922635090363389712857546803433859622435970267852025065272169823998062592545972589998051950937361093365641178378265827022793241141987569015688825144030945958146212650190202152775450819995631316590612625275721991989721485242587829831945514319938540181977227576401296787772875945858945808937073183295574487854086364218635441837804199593908953839775537731248970174794875911771396263086158184308427330735440301687469662941652626688582171370598390476758456994366627344010289956012800201065789733770127972617768826653600454706471898872324822079451618125249842643464323832997579889535678077635066232823976075355747481566417340611628421046019824534802017154390839286849241116115933998018066165225667312356326621342046149488635411171556364538770005686008110099017495722806842947383720189067664573700866550153234978155794290205677045693722114675171363575833337391215436985261315268347668600142660432223296048628430525556094453278526523497213469883665834808300032567949704326552641633961424848813567430472870174404419157424945452400874934274207887001230391504985784804296619498156134541401149455541653361724345306172712114090706997834812341272097732693453874135424502282874492853629911722325521717823522281510710249569380929326154023086083599301312428103824971386784430110894878894065756462762399730645410199864156585312755974033523951955691307516212663901781214750153568543772005602163868475434032958002470453553398441068619323467565605750496954181414743901960681928306930274742249431075723359289015181288511902594266355077544643336416185506380701822689080753839087933654550025772279538840721415501484328307110100415702811495409386615767920605442655494797848615906440757702090681085171486980169971682217989721668091979035220247377137254176859811324515447840543508271291678006205408027765562022770741872151917672982438137552090434175283776576105659567348323834564503024665393013191928196284494374877899443482099892608460017057388164634162276812598468573430925700816274274496277093222397261961356383912610006580462882506403293315381865612260834603868970261363074092670589003044571342417571320880659013597602258205110369399167568561213032242580797024034138272212816514909551249855092415343274121597148957759232190983827309437514011476100599277135563578609115162696546213003109636362650138325128851215737336332787657445872106717091741108640882604698659013282531315399083647299644365468254437511218953487454654954738268859673583131255740874306755207599321151390915080810488683750360018334540932159954555742527167687570278801110639230168809393878721380453474263434915528298532501610002447323208380259183770722852620625811305131290670512227730238780277531247713023401807629338158842180510815822609603882055271810575084131868754451838805836985317997332716312826471914291625431555260706113080746154494674656612761651622380481413023043817876415816350989684277430747798911935602662674466990530361715302984293623105565377501024057034932700234516918846202125743800155760615703338955379158949153179109769830712130131348998677185071661890284212627420893362355527776146891501870822147173351286935790724603204117520467777111320928754839353728372468100474371851883778322590886919134943356157186698246140653183482375172689327771290924942753941348132494114468246032462515058100521249379872422866911035019749134855377950843102742538190083111624895552714046251834386616128635475768292675955620552457504602611344479096618928356039992052186639910984198117136124581312038278182215949619006010184427508221594513518050698187204276391908850197025091432716169390479247432087142334210045653511830392958364852624911542456041286739627728747202826540732539153798427118467691118850550964878682358470189713353886109920027008808664031287211942695542073521842092670679867773260965127477718678939974594853690809749750688338961345998318856299541889088777829251236325929756971105170252219494379699430310839979501568587919852645326323830518657588374488679045619733730848094095116223231825278780110440403587402719783976767320668890976340737215400541532099715382024452329611733079256398447023233865865460872917049323576298661393680268219212648382931037962108790529217001923593163220235316314564986326631186334665667739382809820387407471943477707267176036651184093061637731870005184821305491875678979095264875805377268940159091744242670918553064727707491784544750827190730019367861706482618158408504033918807169835255941905837324978900764059042425532592853465598934441394841985452729189829878711539777133474967560588647740732682335753853571397703384990239111724538728002322332815838802763916501182454561108122077967719427643843015713847824487194627827824450661472746692342368430177839797036279666003950566918087872588270041333793811759423252319545793792688277785312613063489970937947583901649937383772597766982185112942528772981303552361834581401594979142756379364796179291192696611118311732497217116356214096896709150105326108982732641369249558630425455078530556660916878448757883801927255309103376319666369330242848995281799997330422379606231800762812054236618701996259373870172326841955740143558039155445221292962467723703927275952678975586164244108297393694175819159709399347353611639111619559306962973811275037810883746869984139382458096464651732051709661369105390803855458993066325097714726416723508063686933916683801640032561926457604877007356743041919743351292610713291940802696118515169809931436814449995078471082225897704603788950141346256282051655719761514662748121860160396767716466986709123227448296974693998330167766383210764531120219244820486441276045282555647324012614428727299816790250420997456428800507440556588438548414798498223097909688340203477433023641333183848511638366276195802514025052235052275645303124314306661342517789839168431605291162651473050458334999195905187839015363952716951892502222123066828214187623868166803586732940273215067179656027188926080318116464924722356021249176443519297447292130211829006891649137596902628469827449943549545933058501871696333049326567617062452013119173226343146689954843815818978684017020852929507383932301395056130838702452651891772050223562398515680319046607998790423389797171317879523469496196196758951472971322247476112971722772356573931028136294208893164024677820860240324598726840700395016397300993868512299406454626372439317323612635829416587615286500618583808396085295531690947466395320608346415268241769799448538600461719073000776518562176047684566124098100656970565013094408333709298578799120760888185651587940076397456284371950791540220901103182940949370645194967849181616593591060842709212044836503449020354077131559091380300793995072780060639543758046616346089095008173727526699361017990489042435428982934519241210108959724590342706625786042658125673483956742734791919487036369131683365663366016357340009118946551327914473269796504305550514767270582016101000964756685899276365949310222320831493625308924353679684029816845295290645914291487108016227463740672977943677187110722789324546300913407152189122821362514274160927577950907527763995942525921949834729306973609283668926295315515752120109197919558227253842021016609081907752042900533286248724596114087574182273458349833363183013582468509320808310126316536044695044504086569489992636485707546149727744583923413733813589205951086520276469817083557719105139046630549767401692686130826012839360000014480320794422108988987635443347794505921628238121166584889657683423084740210530926006034215509540752257684533183227881822219731793947394945290650590077761456779763769981199604550452363746689436766796300565762987211819399619336492622086187249760100393476110603751552988177518747645826614301673575768248464324730802681048503201452244559381598014395569328845642428467640248235505025179167385201091632429369533428348528985881872753757804127748658555372619057764734297841837748163257057832643435169212106451048723103082578127896907642011298170926936086058731208802153954276608103047165539594972493377415076809163797599186446779969360043158803335809484694726921824853076165144175780710837668279794529023277355895410533322813404249270512861944047165851669194932062566988852563799552582264337537471157541007000521550987398293004372882674095508762116896370447865205163140683352108373515928894112024364423902595319644547550064459133494253522282878128599175568788135660281835598547995688960446405722982542086172551769532813058068218609151055480217766563459880002200682944558050504605523738950529385512003620018211668637519973246373611506967774468445523642336019814385361927170153076699542958128131290422694394680462440090394909589605020731374735052883307578926570874407464060230219085816014967051873740349954807731288716300411761172937470501915352221946020855096801481214985014847393517136845230701625733363774515351756658576820757217487654298888626473877784094288233412956793558230723980057757628945111435843924657238440516467098777921697849072021445977299003610956197889029595643835103168068993800670486029680383209851451524475631120629426356400466351329359207977193042524907683789910731544611844295324016549135029971902572577708221338050818877228152873524157605965872513713225402840903674809694846088509921388154601998467207270524708393582277991814086449760262930745227705936809192899579312893005921252220411893680354520280805446980841536571422604838086205942990928573498545486918084229720321808542217917714271389981354025547922963660198439581963281039049876110522409703271762602797916063580047263482405990378106949451144948813293080839902887670299975316953624553335381368081999751997324152293614963066699591578338954923136849282175762274814926208123560312678776272561334400129664462914827693232538149815641407668031361065200095654075385805246338839028093489620241301657252201296190304085207691234972876381853686779553567936032753975654206121297432943597549122158319966521403431822172500415358571302159567659804928968010915511929930413991387700786468209844710236057558640150447531865115907169091527231922070391307537180771617451727537095429266219292060402076639609337308599649578351922192867837423927617917402277811925635197385309317251644064273959795862222637069712656322401652470537478045685938010056297852674569249374456934545295557310271546562438878991775076652144600085850985800392453085485008782604464712084320164001282878207036649733730877317461939616650272516979598991420741439726188668725294144699364485273068602938797073671473387939733385471621465082940413807632728236139604738578950251647931419489175604426510141008771346390502835310384293281534363034378034956190540646042481445586662029054364441532923345481770916602158481925987769145243650280583328889201008467792925782542156325809829851598262366082166950182335274739492449022799350809308879946229525128833341009837288201257964621288024403666311332613196626372362750913725736525109664665049526780119292568686103153784954497723705916756984428280577448075945603020240882618251592701689872573734276882849750842221265427567327187911771379132186486329875206056474683183293980842342113964705102180106655464819477350901234361194686770132426478121435260911454546687637634766274452773529744531761869527119173465967981824683972296212332313769546592421656188107621023700264767744029984353295503657659605203977836649327228324240114833774098549226529799760934483026031698750583612051246867829550468775501956004594122237146893555924241033606646031548973866069579657291491198681975624470168187478522027005508409389826191185402906959156730401862128590769082700064396388211288377438058833572477600517387765511554485750705436780444242039382279897489588875829275588850964248020416948336328088330713614972318467142681469552006926710236792885157788054491824107875165653886876473952414168190637812882206303889575231718851376576921013576288934460877640095540903472163688324245965107270615029555333535252039658879029895516716507536128612565539072127951291221702632745731668932603425789241525182733781079205212030619756544116956153726953966833340974936506019224832341999457306497222996310689814726574709260863894760332416677855934659557608602315875616411653602634951364892857997215909783830044078153251397491188393918893148158166870357638354146845760476134513511675999502685179008824702932866898966382571578388156158458475590092344031687186787834619116384766952940756384101158980142494826689634911182861812253962067937523502453257169355510583826554332818045989416741614464634407682575856002930959767689687082529167144760070203111337349012956176110140974639936983851640137689475925079560389222438758443153096300006913012745156645847723617150906507362258060582773979920996661236193092663889598190391914144614006621548362535663577681548366230100307156004443896529752324704633057096303368167580151862467600580257425248833348362638405216192417471721801302184905818786732071827993160878708905219594585447437478518713336835386850267613367908885558823797551482985187102026254662765086294539864411542019164379097281034593390363893254636061260904249169515946216383296398980696987715034561151528442297949991121288063877923598994464999386597051484023771834619460548872451196671475343580599238411579395289051041772116977844892738912477959980719911655798641606344752173544104892445753102934772209255298271793156064838409892419805637206778770534942824317806732070758234803419768109554979212607340000981637469325602736933866666776950859009923938106360665724114052611518458890665373942841323914972737048936349611446337055578819825329722431011391427000863558153098355025018924958893131905850615406965822987112564475879254284065695723764291182662968558177971123103109710755318905089343382107112976351992870081956274738710128422348269683842587847804887403401777103115499652675118549194536946651566310775676811824184187062076261219462447583943708650262441306672687262500667697900065598274228794081217261351995967428531733837828881773286454850228372867354925349883130536179493602017880120982273111890567419160732588356890693440672922299296815138555033326146409670476914304364617298881948026740719176691898573864589486583866873154075032446947751913188130828167307770624114615159384801008263280326558866593325764353213645368879541671484574472045887746516533099451863647203522508116256925013869988682030525377682489508940274746056755112759294111438737612931331219453981909120697447277234870653975646393315480955086558822217980571283404009180955982476824313971214392897892259577074498496061894920407817255549026960134100282776366905798121043730005078599445392628408541300628496533092410320064729012651895705451852756555482933058444064651019301837680699744007951621669208627198871514668354721658553637788002898718652911508926501298811154800839449096203534670504845591729890123734178791766486796522826462764635898541651874777547715711035736936045434235084561132287839545541212941632957557938403352794926917390904755473162442211029492346940066317240527926152412846253180312491315088453141367073622959614427980566810502987237728017159666115275949867107911222481249943199942599539215343348549777420455366810334433018763757781823661203652154030235277541717988246619550701179238704688388695298030060436516404930747082816675968237713934515536095170863377451552691295369432788798805167072046809944926200917525900512925140976948558015154389057999921563769181036918642204091217724141802616490038578296828451651308776002840698258087864628349921701512208452391954356799459423690593154353826120457388890979026125823069497334494746038398307138768938346440257326262104677928193799844452738134221153514847749303680388964176993140142294627221959270619104126080763452335002815853076354614403466404795103925374615046784487893641249413111581708229002374623524346127588752141390445160167976502353776815926256447071602830912197893144685249857454135782117856369220887163356939300743728788904470160353640385688459428955948310426485730465682253942169706571639010166423951847472599484622539309867900220546386806030072520844535566772653787405990636990681661941281543707855914874562766001131924456455733506552580018139873526285073226598208998670304690408302823902250957520383137899473957505216603235546793769435492456393397785131259943666925938198936618836802943093883548157110884380966973577426052939152558162931470825140232267834879039197401624787596777621730175392728992254844672971623426188869202390254293772528548346498210486619823626660253042800518415289448343196948596760247359747772521484763456722310625641136606960696779562803133303744645925420975625718919671990185053897645307333329865931588501561699795812514137768664025889316804411690528879138021770429615913331320002607153562701687812074019592816848020756973185173205907600293407264046807523949302150640890659123305133244975046942524501492406056890174185547032027969853368906648062297657081201888288151655107496160932186766473315545389985159818780652650130402652577818061105851426001216502685164512551497546017979131328482276947285810252560392652411353596188759668271708365043660877346823869776588779167921277994551562176025779674434839821672715041368684648130089416055001414412867930240276224030973151217251946598638904634289624976546210324045804652911566039898716462517307436548785202093688058414202968090121625032250526224100639702451557042828227075754879406342099281416134629660978444210956523182833643609192500685213982205866677995928654862634526011715731915413575373983116138499892948349431572281748909320808271169428604360379339079405563355478644672044778065213214696113608219119992573186174456498744920405794758573850421372377924355158829859142668679750744810479704931246012550092411971165364225614067487046657936356387270461260083692868769358070661996981455813666064834117970867458998508203952100766706722458348613888778571618816482654035503728905282426317590773363580685241779747583501518548648563270139442256673932179602212636052940773522458096568967113491202698537359141484413730113383607419927429352290025719435966885955020756057366841816892643095178892737237853972106829269442333688959204401614268667908743784310646195628771729851779259688734316290053152044445366238582024468855189188819056057803857746155607852722599405500890344407811278764020919023836711804596362225299818521565431298524921841543832379784230060902280661531625728054906805866874966434100086928941883720565272648157477082700279167638278527324880673058134949054710781078884260242955615890575834386758981679114345066525668332647806427238639521735821636264965088966600522597225622260131633928614552726052330642940723431101461740760817945440858757133591051045870304639442499108390953873412744170260955212512461176254618238318703065182134202185496373625129554993294237452229119147860070086724589762970502547885266871500812168416013093842715678313439386957541989326665689061876793881814826576492216521459423389145355953384091412353137428812399594258991077404645375486040953727790750292447197615627790463025011673503004702861160671848709512291754482144149205752297339326768621093419012591572950657955356564368292556737772935495667342825571570878741454921340637735982306866269209999451219688903177340082053962040386290707194957082264686793806284211129389566058611903087003798612743171230332078965690571120707895892723355519022747656100217458413863518700701479900860423371108311558340181590496189042607468426315402380306961201445990273569661799256121137500942033408715794601968674188118636570293010496059439934751751168616027630037491428621984390267061872848478052210893252455569249884545805608458640477309196333832196623743686865133952502090419705824849388149334453550920974182289936133016966626835433715663713000931871983964391058109946385721010957671534294862225308863342086436215322782331107094418431258057716522604820269969905570508248789682160800109958091801381545667310801531317883754625147080103743513563222128066687269750501731569728241149235054480600001620438590890875370004178508448597222255940413920312795323257665717877180972794624280564012740851984115397492274218189859509626200327489128551201147754897180590289426760809552973152528072207636761533454944613478696622982667418693360161499886077672887989154225354261672429766622080132171912618007811965236916205265812661027328018419198298553041407463181806040747252351935312212432109609770882713829589031346297546228908388326511746267051105199780787637937196435109392112037878201783188432989972316457831146360628184347254795512217587279078154944155272434318909908614939248536115536862936680303029973138366758536181948184997124099547513240062875215991352004217088755785422483970368751532669366997097261133133422312610852401525834850774156561920956159029730894959075811012446853074723129810597050141093389433300589943559925074727061837084590698019758180759118923906009157839076296218476618179798784579820618793774724774752769144271675894043454886424102895821386273633408511918029394012294347299817218258417999612445915908231575758353608729595699829903535293182582966355188215443980247983406177114974771619389903313271565454091716260885825000041911732470156194555358382343289079757867848521859981421391992575029329213418726965949517656114666442296861870490763716716516802001985258904767570065469480595792759654529635969638313878153837253267008985295139121200984614599474650727375412017980419887280159454592222313159579176337374697950656018714265050734376265671282005409147402393896017325582836010288747405881825865546091412127239503499259635264807468786032003945922781780232690889058753568625081187549725594554773189444099151471080930358756127227155476115402006307370469899998744975450493320538104561247156006150947751817337978647165344927414145811515675794314900690894427780791043235067427150907036725473110969644328734033965256173841669739264014029753235994541232020980326515148471604471703886157183596430873354858269962433191856963664743286415764827526216474023650456771867174170436634655199996209648607524961557077869964697568839470941600820761804051276649848090424269780759240403167631983086851341243184316393233279978439748404796538680386077851955468129625331981827558783501432985518743232695567562003501624580551779143736609247697272932974014570627689304567142248661359522178208020062230465071994661490236085284465406530611095446012153616861562009659823077816050629123634294269740400116641461597309718181013862083438230849155216872285871499818202510778346194861817184340897732080199784326796845810115083036123778896926513126209877552998288711514864793956600418607753859778217960146143618806931337368882793081764662194237696010258664646053971349239985995955240715016032440074256848819467586285287586716231128516006096962889570609320203718821378506836460000035233917205599771065872654745696451962067287437748988104168890149835733582189665949437837412387732961886205670346141169116076442542651492290482189134531748279009678319102428893081837908145252133123398748886088754374766766560113736284565969148630930506811728016234347758412424452513208188193136543457255406537978645333363191020866824518235260575507017893600212226654423230313857716606164600146482773812678063947218979043135773231941136765727024258308905111462681819742225814419450564683497323537632292927760976741400006826216861802434493597449809857623303405314047164291231412966591715848502419999383058629068514912978940114325840541936990876446782460636157221353697982588924904214834112505866048851042715998261678305450738434593350545719041723937605913560832070428705154437906626102553315202881796930685250376897663825588520473560163421531083490435399820286406135364640064046520674337737372673805867580656320921103626006274984370598539451276486266401969010579475160516542426635761143740869515162288278259236113500999563507946379047698814010487679574298009849312364663056085118503791816547828344757883328090060773892910333583107394763246091992114224434830100052896069650080271709347730713131246323352369905510638697069428336868317437098746910870004049756400339930082714859384540040477565680321308851708248350387607969840393543860279502223561137341563438515648296080847605148939826958391496373008633531600844751859748132572209830579606933300785972639016980445928521690022149006512620739796710236433839945841586445750726811851872221800343200927217038380802720129179582798383517223462144392155747923066392903966521185167180373844190684705650218496783495424307979576259677962057919656949451939810143207266044100583914134040636111277215243696180155787266518511821045521938417681989282777325003904685933951909062230093063627018534643420332324361493830213614877908432156618209250188031953206113147144892267233360204825611385761471650181382774650454080903404382057772195492759740123308846953832667764098386466221862260211525799148605491743935337564994434959710576894596258754091062913266920312972691608466954383706892884156670991301593244826620710408985255697069190400001997911291362650807989172450467014087873171680340395849706004683866557081535424828312854601620009979447835555170903481684020083999234269779354036408161180091220911779224407064357761363715403857559150971561204829353248046400377034556773143300137265273617607938389315652249160911458177694080228242470168968957010202462215518958074557268400978507113156762729978921676037218993816090527427704163390352267564763823433199838168161536909571816935409829964144925641344718571225937266352329538498270824020157809948061966274971467961293916947187039301187425445667853212400087371768364467626275715152981851413462745507559239929892024335394804979083418964331810952499022850845634380625190190909391791110184513221777201786686434106435444277855001962479019955023673712217318544765197471410116367542893321042976964037775689653159541730193520006318044245739749189021295786554454371350204650865639790716008491621413534375907709105596545823189764873971825113369348786167969713359156727782130032303218696552080661968255310191384082800655565731341650561817989227763063202595448108429135032598212755373098543817509733623285661176251333158789117325663079060872139635589952843042627959381679436447672311904324761666305466904715970986262674834002562493402978007236517984765882378535738985943778697525982249871175391426130918524118335108447182256488467731735673629712602280863195154490905059873393882560843761285369809369236602279277215497396982411086925211828266267165887886381256861741839511354444941444544606689324782422615493251803667570405835862961270261331302724782891815150340480692907388686532215911387475953346104440255479569057130761049276785111452588644926807072768649673830637060960305349060904024797328556543839095253753317058145569580710263746420138091945739787779934972036195759228652536195149144545658942773293405436698493638474142385098493584422872822608836292886355174269138364520834009406329394820488991466067288503655557236033786193655251143581611201487316502058742120958654003622628749603623347754277010149986707585305388145799096919628387734658219372329585414713925367094030059054325679973464209983210987833149527376794612181688878889850198026359244279108535801304089592186365207622123952992823323031863440314262919034235085892937812584916349655136319255752189315722941332931335809626301060149893718182208454531145992409795329037185265231277485957675307084795141223858401161763003590324482290991713546765285835079251637813302581761354565390569807758823431070507619985551474963867848689260545535605555832444442015536144447257025606009845024862085605933908147195161258338072657868930810357178970390525915296525671431819317693797336702955129343917080280734642961308454710582361316465605665267235974107398924736426699276309769966552743761013847719615784973990593509220688460705218929260239384213415769536960554177069612929848038882551706583020030736571834624981231921339322768765459873295293964786468231060857344324199878807715628941792850203426050241832969215483005631774481105043970076285266280797367107042411436234605627724999972080145873945768027281095861376002921773493633620954850527688774039150380778354676208885437524988817891421766829215085100827849560966840149056699895640296822623350793706920409045472220475915209969421145998841397113852179398976816866048580940746009597893748743976117638423943857453296607273374566248096410685232669967500410559392349864655550045279852594204133443889869875648126266176229823358317058208172444696405850889951037550913077916298957308952343289550555691429089695673909167172480427243945563634053422243511629551348264957540241948021593704071706935818865001731297390063807682036789637210855776175922533356076696421829993740770618964322088478508739398347511888208199515390578332895703169100456931198341471982137791722049623191258484650432902313785839190895612360102314895293635377833537227378284422630359102456193461410158945937482965482868317716146189104207994740168413460416595955281067831135815932758567793101829275950855305238021198064687552065523055524986834533972436725566739359613665327878922321268394963853786705357128223295885422189800516442413217008776601566624396944745253359292182472108336147288771231863120551530752276284559907955117618463093082869545245573903809522924102971553238472125259087829554429544234436980810253897179768089200097916497183939186758078886426295309394958648724924564402119805796125257005978136247074541606077584412350586425994064175448113588883719291619246186750195859352195435251786268410848380749533048849182882447680202900533628045951243721990668191764047423073957493578096547482976264957276842240667891653447868820705411484567728375404046848548800798099701396329809256732788714043238420155212999906017813905610199940664507704326585134135661370818047659501056385252747308622758359762305230236109454096758015647504271395416192824331560088117355574923982637454683641189532858397982876039293029723935032406961804529708299405964000361754153463030868276432648859723405367257419000687520764268648498694066255139284760976133292969936217576113643125492062847995605958842083950115405552753475954365707068216884804655401412273569866668570935206407626948565639671853641320724525373942068048536052641849221561801910879610805089215198312405037213497329540691793908562254607579555143172962573245503748171623759461255377766639120970857828103564593341537344167233245502079203123628800742719175397352397793761841988539528164822626615014736084503998285234469215627556015885174299247497096749318456639992261612241838509905851393347426299178008619862504234997438374663847665333996017234329021005698271984332449793086567353708766744364590474330155005447266329793485592696479692887461221261969834426920234602938232979754973443426736930316027401879296748313879173015031361938341431877900845696712022355660407960914036204963447064175605270589231838751715771331969381884951486764846806064685133206949086209454768166556933377265213377454228940656035305037345058739559670780760623356672299435523992639900273286018241365628269404486529092144502835152757203293453431266658154879208389535216703388687228791619295576793971947633137870208115797241440262131141417873363441123524431208390997364827936414405191557355021941352982185184739444881879538294340606192686616059642094055470666051223950812923498671046299408359823529452605188081880928291884776869358260810694452912216692549006404835243829705337644359583905244016579620022954868771594802793736245608117230872027365370355697228671142135291870731050416851541017057274374649611380417935961938435558617806585814290832189207175046415644801238064054678881255530122123913107123601799080064146699335298460636912738112923456688190120788869887303259722837411481536112634775840771333217386710101313146878965331547033070260941062328742634069639646988762869111457442207391850448710428415791875121745746719921657126648737359405713941866221599154454158752324317941018477934533694209104876648249803476172890911881355243612908420132183295700491156770853387998410624467845453380270220075769892628825008133405723938914991760416028120846479939988882965885750901954924979987577826807424555365748461706025503681167177407974696832267773472156798514742307044847440356017810911561401150221609606626043749415573855606951410660391352659678067562635666126412587644685081142640813331205829350978213412994954658590307405604980205255616355998961260090549521513429793219867749636979185367860350005169394246021284286486313164272876464691233360741621715735811161742647128329504539159360800743881517816874687183732259958138848630995052352518390874612699875902485071697190514990761163808802555408562553356537422618952025398120139891152430181838352378339701300969585157979363082709910928941386733054196510603770932884860266162100014471702957032102830891074906411185313678483022981080132605987388458568598274187977623943054529259566563746251326773269855484145967715574899730889084216058439913880157412531983784415006084756440798143750942676995645537424860048888732923829184497234619017744472602294965839672653929892688162757380946011146337041708721665631457487136336637982412687523463276925290842483153284740040991005889352255834268338462236369949814358519375360800043308439101694348422012589252465976865125335361488745632963590853888552944166394413384703185477779461917952390661810650288031269498457372027012190611673201489055445417855353219389015699817950129055726781038942806813739677298066650633923924492786643094667417435665464883999264461154343415662557123541748609376078954805132145149709808926778151058062075696425744258439364729104226424280003106923866389093383940539686392845500993051553657232123972355370527774174680042916249085049067808616983908297184513088930733677583490473259383228156388848365304477214758181300093122589686069648376122546796399190478873421511911419241925757376665256736724601402510721354392115553405040676611495756516279555708675044375032999836747360647285463474446080976800125950269034029839046533744890426967642058265713817918204370265134016359131800921284306065175728881815507404854056666751045470884101296584432508101084036756291201086189615683271795392837077987097712430433438527423400334197570906699624904308563861816174064046862716279603035517086686258138654870442467148379498894188090560106625096938966120396127628825190226744038968343193527610618709367137149165288664163886282531502577000761672121688666459087177259667828640405865572251217618099100380955615223686790132350873086981415501487158094558467147972943340103871784625145067469285058912559872619949781759727176830143242335950401261711077634060515736388525166643467064798780408014112755767577728133588086327555609290391687016992387947377329206671246883698488765318817469986888275111092954381948125498284191331760443645466489615586509545281537788613471453796180450345254624606669547470167914883203555745799857220733657192194631903304983217138204577963158521120694879154024454696947988429957576801082004968811231624934859909716639022823702742645381009294980770145723627410005315215578453297852254780451982418576374113061870927755885772502917551315983352708869752675020456823420187550211125708722014534116107815207874443072643085775154968676739216010164589990694672680609011027147449567839594635802539797081836902016029706692591190585043838397500220570539290059858435534087272716596506415377886746407892317142599740823266169395550386394748146827384036382235953089172048606323273267082503906416898239117278559404430162264763991249594683111886557574337568593229164119803399634274292237763774490705415957684760828481179285629851557455926286666552770491313931389957394329323312369704027505124611274711420994936054966247544352555104059664151445478395752505853828773572525106478382065032821374790387443669591601917377462616393687949408471389316962425837427919918264102304946897740113778427542562926078366442286693420297420589680630345408251462630036135495708560272615472919843558223686644536086680343717027842156219387229648075627943750117848100210720516901825865419263519162192713103536878723995369617007821945182831704797880511033713176211936995680245210261765591318785987847701570226159927899147777780583365037948947989532197730351351301276987087295911128732407525552381274920625412015371680390027659535866782880531493818787899180739789718496861308673696188368950476992857264883855820090377968765437705065991051307467889967831304306047042066264587238020599000061660732805332218982066128385156266109406529173159648498225016697758683995071990302107585563083559605441150571226571052144897708514752810616370406080255015937531202258195203311607606030119657149875116357419452235037824781751817168415460565066608786901844447481209295244228039738479444982581686586999324535195625770936046007512002437484215536614850172034119900291010692052225093500889318484451862950176664573740329444358489404473665104521651841524047497580062245217819651999295838609417016850963745566640529388571751719167955909455367185025862987640918322188091110859762057916273061955399182466589128508660300416406184746366560387338035781605096234634620619472802875454542700983418006807957140927893681393192525737106468508770694953635676944028974857114483580166709025493537541433213812142276016334600798781835079572043743722332226566184371684399403868464479952739205692778998971137157629576318908714858211891484377062374056864101757841579461811943830931853267499980146038036290252594258097553028168929834315058158857464696959748886448726917750847952292221028882097942673645060699202007459437957671222647765828092935177157033950819360605558661552369646010488030376315787154663404013328986923797118719198915607007666500388035006009084408326460711684255922996498200030184439304327924312142000353302586443899900378477792471763423734784766785141722296223213525805718034654825589521339572416770461091517374016882425070979523395436153246576622295806698864909738318560189688600149556232460453235303515838376160797698337145688224165635824072899747449129199454866636886972294150294027337702848619943410869301453173812913638170054140761378742924951094271547726583573624148342003360532642599717435635127575204279702537836352093255728601840820168713427524465824505599639058845112653996420387744842770051950240661175169062826379758797405143297696328971640858705962349612777668856140575058503513568566200958399072996263333706740223163867444770483679120794337213334674625678049519864824902185226800940164283189894969083250627202758633866350981221126994249490960475575407501871224365163814059250609011147141101209120636299049401642046526753600168705345137795165408047980831429870482667454143178370396366009065106769550279682662288377105953144438384546228522402924282976630909583070379489366010797337296588542558332137405904060785652839367635361588240587748162393256789419311967973372260575405558657621492130645002576940871492117576139477957407626288671112822888064528213236212285641646646275809820579034592641916205115742725840242217751761196963396518830389587366607706413631034132648973995971871427968744271095918806876163353235407717742203155697447599776974891933529235626565488366116746538240657740453198790699567038529165010134326864273889049351818625086269555179568262157778690632087147301138456456194818716225449253220105603290129675026439266428755474809088323259233929572288734905090443350978519924931873242938946015294576759533229892063987645271422321282816630497046520475688031252282462885066528712477376674318541677067234833305099845199470844503770284369271726045096403564144533540204280491306385334770685221430100457154363886955196433135973939006245866842647122152942888620660639434957892967707504925247380982987543667783243693055289814020292935607146078420957521520819459473886737401668241889631345787523232943533640633992923676447317775325704050394802102343674186716585209321911147223507138143371910938369878439785952922880599758968352122997555433908026134910643723405986674043909286891878089718346901692934729284743252799115053935179800682352934731599049312865931684842022300941454945460127195514928025839188199867940485545269653564009245202583947631872841347045762101006436854171398145465171031378437142140658680115333221086749586045644683436213410311974642904294299733289707988817013932798156269448388830155124150288907238733688985427538442816491327464822379472132942381718899331852149866579827512930142395438910986534073625558735297460415640541212016420344844854784191643527694785328058870352614491265488244158635600399782362953369961475423386476356529396373186512344380588116817428435867506071589107737476566899852458159827159935589441458878560932282603205363233162643291043238876219264450717290670449971931538588336752445224310985793643477129433721595699454831079536614537863503363915787725172077165289195780916627548499624455069253020742235304432870934826625725267857130719859722989080561600952902063137050388565492421944720642766161142994753548670025946613124428000043548030387903971784781224488264414749387521166432999452448816483682454733848643954484352530900944218219525072485947434035168903216216379397535888424002284905954012081327143942409838554812969533049797541103133442691368844542032712307016564227444276230258323630949044974520268191245191905563355769919396172853977349485349750504479770340517542188228260738855459956273296255788323431431971900005446959338232184696091568594214402724070290799539332444248014195315862909559943681829940984721512035942320206643023083501148130276723691803976181333925016202481740351595564592481488692278945013210765930292140618286816469976916116200427664064825910591308053106360207098460853124759792790208000464472004237574370494769990742288165302617257079630144207782639195544297486179057495735613260206818534457285759198285960249829050307875870822699658936657636324446866242328680272871601410115125908400924532007836973647325832760925310344505636656184451174975338472187255126469245905707140174327336045374899931077400813693579836464121966685911754342318123711568080162986335977904366174102053481571946437768792847498253237352573875122521773690961218977757122089717024679199200457779839321491040151134291279524761223216119684755198366450960520931708328593194806023314489641217767960226750731840521759293284515707996692369377396380236275319799678653615685137565694164425889112746454491899352655029970722976403134470327118074434659385275830119636695313956286440001274030478306550625060840863564484334800117962821794861177354490521810153727935623960395755528991728108314617439772506732336952934847603247533670010242401622475114972245568034901352611568526632956233501687161440633765715627169709635454471767489980729418412131334025239919023234729481043247786133849969305741174336273228245719224206512616708840853674466176126232708563396995355094580210339658801237490611270130315976399087434766205091707448491268052081638614026228823869793037413170517019775873200341812326880104339175326099431527815716135798336483707240738204726513484169213649524316608803495169013807135533015643848548214557978326868061903304231271183317989520373110012109033299321966083010921438513814568167154125587094329754178785484284040725126731999661049101720680485884000980934384818956660068551540973875369825454422844192469993818940504843179552951314058028626030284660949261410121781050575706139231591755632318865919585479889554276560055229797629275091182212603240856998631300402339433969803499874601589030686987056222389462456283526499735984783829433829925502861794780400269700042202700848513057155068934890284071664670210887751600659296860683690298935375481187590067075018325205534319745802027976924878574020597474828685263040265155603794759248537976181665087859390049975330025593228967259746122827619194504687241665110911557690606214147958247816715508707371078497460837694589308386027483183256237687960944331206761685842904489393192862098442576126909409411901981882308177402655292508133862474650934478659831946115698257302493028652659922521724504872398866994688947947998173209394086025285728554061709014192522385854002942844468641692831093686266471552164668286361701356456953127398228559934517063238112847043010031053375282352380785496723103580994234895293764071790591203128233958786900369437997138300325597390052133712575106201487853452574181828551492840159567745735835478478563502435221769642991107385214910582769588797093776651649650027426690360257940207499839567511051021097755270080770294961607442393812530809070950200157045341950711979937972667948869658243597038117352392514943464688508879900075347561623616105163424148283165186127700214072927253137421270424810762546410431765034888723724917109389898317505820837689824299115291406635803267714938848463126429099372753657177836796888195790457628240186660092326465397276071629125456660254317362316655898439871753312782639703233745095069476272574654957549027133446872619420844097638280855680767647561395912757699485390702190857289655933896311662961830571448895894793295842223957053223873448410431804613356036935802494713066183676204303523093684294273378740798692836525728450819079299546561663175019494863863576837553641123762759475588595879669760550389366786802469658962670511191456334644336568505072850359640623020091101244233296936135491663875766457873967462598648748622619307239653094425444942347758757943029603189933333812801228735815949613994950840979781942675790402265867426718978288119279012998975592248825949659580173116762544091980072885449282310982892901242039904968681750097517199258797847444733442053323895335475638340455168851692038372067414837322751869890615090982355975779976979936053042882044683673223966275168654933110901677972158026315030936927233244337165399580026844213271293050760152489225536846891774651002440391611436786459045111315041242458203554754913633281490071508764980867843061344963552137639653805196366475514205412364018793378844465873206085534709514134596474479094178781544305142044808502323452970224132411377538624850435110003897627890354665818516797430353527561632433556889758180245586507818824907867359475483242025072677269020531377684232644922615745421565847365479325078911470299555496698502220686320449192237589976862349531203294836845034990796766007236724757009197218023294083953765748028737627497536508319796430884111338190663972858782283402237453161402520995063052888088463334953190102804284505021067648671695041338046136565090603229994288158154722607922547318579100220860972661610054385630367584583184188919992761097761942406321608785952234794031153709691150846056978868164019251943378292955551712819750433415145475926440107969186662694425395322027394022305935003708708833436677984580042472640921841399325591118879571818852870718984647060247453146972015143580285022304618478296304673146778360169736631218413298358582494189236286633095301491144822983419686641108609379048524780560210697572828616113290205935711484861488124765396867639115371848177139686769086384005711661982644733243060673216225252223793735577315063913765732776468522953223655042406319597692552651758686526434128107111062147667472019281841762454299011372147010138827148185690759647151705736906304578427371520443099670982685804044335771104144447520848937788744103846062664787760797256614281358949463693153303976390537503982230459489677387522740461733143859235312439609873306742763584503861902707077139369434170001717194731916684745897394870464288896273973911005347448669178685222151156837127656797360611980886546581498993301998388596338454374230850695025760615237455240789047086081640560903391423045313812205844981986014715569087884022548008727817695335223019811833561739762393565359660907058517238374973745152847630636330732232649943704343700633496031465268498316813959927079017413002404108959955079266482164551233948583925735755817790955846265966279284090471411444545836666211025699520728209568942085781551653441932098067721250402647752325403208432193554838825109604965680911797442606709272917006090683442509335596255250317241697512316695466938017029183410380430288849348850064730632716104726146174830389845353509707618138068735925391873942255466769688246517756255040731636101677797860616608505941070792503211476648549856304587251621979885531144667456706815128785811006826834558586314764164376357581093754649719091688495114360686699545233675239408468982449740795136401179512867488405204864640857031133112195398300499116285122340952353989112236958173735560472081555158951052023563350975640626599197326871354199051514341452245450203390624876447679495569198885234544725670799778631139628701284796480209641392925647332348086303916350883417626866198706516411585224138610871786351912969479635101078493402399664787934072937872777913147580175604500468205178719793159704169772535674699303054417462308032081596270797668944331319286345258841947361372443264578056559855643644589419953695965654170307579006482643223432695562044574218677809710031993478451299997701266614082068691804062530073688139966030508299657363425692526048285731149133578791067213641510051017454072787565863087489723161176351868354579824615676236715558945176976392516338736003749605282373907395814612691959603038290131138773493445244316469631060715913319714650668942230754292708261339936465527491373879596986134632850305811827087442003414449024090522564086203070743515459909765559814324390020417337863168224427362130591375234026825764463014031037644409537298797752896832212348517142282795008484722906526353799979930516754446247690587716376684459774037786403147531629073432641295599918905425636412148014092266106714244631265442455377916041132482186229773609531152906655281373711154188357361637406569467823962606651753490036268345404990729415288268596600345249101343348883004078030376201448786074946016359165952709276945916148202579967748394623936104567401254029277582184366988848034631866977689332853174775855293804093706982794919732814736004838134266723294747768618490370599138749181960346670022849737672202731010230982661124523911380647618799317801356701566203226435895177180789838348178251804978619274620085370668443964264907492487592177399100507643039190202921163737246275599055934431224947874545655632484556652816204416768517745819050606537691340261632947922728435625242845456752851458198061048049430793065823929136444082180985846488930357220043408773959117636085900010420158011162663884144678943446252962657593538601905445092838854899390461983656840524555031185241250245084608720663744446488244341221077335564450979125352152587399994702589737620174966985702640538418591516273054341729166653127218230078269869113891397321217643836186728892912947234548607048926135702590316092002227246002421923429467268492537983308486374441982751486226721881684669142873612186913680214568364937830672764177757665901940723138853781292087672971698945761120831812697314529420515680282332719051780072080084137093736410577727353659584105678213337029979186491035474412265589451988635380809398302652238066034991035846015424334059947305608867672051913755840429839746615647979919476815696276161548907751305917469705283159175290485741138733800061950572599402389207393297624478330405566914705473343126049206060250726707037436692920819953658699025982801346766926126184318185871169944392493682021712527352760512646323292726991393049454607152039328567330163947280862244275707374665717720409712429242338971793364070573990666204528598482613753808233193990990326230714620020777636397706933706034341931139557385745611849729072754892929404004791029176186012245496161574759152044772403549830243616072448201149754693307615327615563085273575457454429701804240105974219549287897533085802069305467913450218269619515949570308556984332804375475825836645828486185245700195334466723466059742628337900948584101342615857887196564716067348080244733119187144591496511178957194444987553272852195719287684320127670620211875031737230398909409316897295788386997429784329331026338958936784007354202673115615513898161052737641082441349729130811030345041432695515607719836839405417245708093263062879696135520550980402952943609270312751202652426268192817316494998204739461877249988434357520364351810454764899817713399561146994735694946007410606492223739371874438867656759454694452634257041962917294455126064191537017137630415564311170277047444849452152123931661045765096405882833908248036871934511669680663317386250746754256000909483062818376347132863596274238795056501170453087559460716585516604186173134622986758982753109333185861292225709850698559892329284655321927826275495052841573949717582323576987787611227754114289716182678728577703282719464143384546405999865237563913094478281802556195045216959002438998596858796031767382294511219299554388771887353222148352626116864808011070661615703997184404347689716621675401452541642216808962294562382153086524131270835930377003266472583705180648699117681720046939183867575207433897705588577699341962261420580671949446883341435333458178028296755891657956287261349164089133817162062010773451869380524215924339080102349166623964429243795024938587676551295998809422452011900188852508540773721639744788198986720625183197394196127676457534754292229339075370830275408049735756814551573516720007187354388482428840255659357906900091616180757743827972832110798419568332684190376023877517124125477225452495351287674064158842131915856835991099436226452915385225295036368560133322290987944295413804424321096675227643557937657792640362799547490063202394413519358220851022642156117166445923494765399131177958963938193682280486105912194430114806060589598544487652411982215211756666865658064559099731061303422243585776452915854009257827612337461702539363357097295806073304325462335264512906572238384547727199004263774790178923793448698414730223708698158644267719714773346105591070707086079956601283351226959691396337266127969815636287974693118617919331082628108656222324216663392985168607549242501707951310457427700230598225291806747584407643532332174017722196747624918265181576617710208366713777304888299215219186923506141185532271911020044990830897848582951195737794284777722391356443805087447785482003144057501961283794175153247808659433770605583329127579762707327700555636724941965790747766387574195200178487388662735934834414177859678532559827663693108072239163279120376823095573495278997688451960280218799598379792754438708547519562416677614584623688781652027065023791515855983685435444078159753301747378522260127361876469364243236747822210705006983711947848735754533405051275773870449012399234671937749215796899051661558969933767611788746442363396641791410176380244077467907001284789825986817768008505574705059220891316536373358107112449395290998186053077964497153433542411566475163298171139667607248319433860545257794509842070362603706873471609488468349604736109337576619485096499600227545671558715179636187402139171861621652843912837211588306152628496305310517339534319210560428611731367143852785183231049176151921753287105689091472560975325358971134327505229231288910946311177548373794172102633871025351139377988521585039812662848380445260796367202223489732615498108014505995932261451290776607561145527566755529269464148390839948883928608263704384211547852258601215189833951650871050155148479840414343702372626319513675143249473218040976339336017777954156308996902868631380798486120237378409599388222148163366795431160237370368374156134028835687455225813926366805444026473462024356448888803955411612052043097524473512311065316967705244504787816800039503462334113875405255867032982053735951442031980317723628222002628512558587585303657479659003470139330996642101019969363658422197040388557036377217528019937966279814037064108541248733287776245970398672452008431583366065420165413024332621886225726439787055975860485888115591061553288346876983980353331814923555024330088130479087255723218995170960691543139608883547474858537374395740092240975867661863302891616924020875106860664608211058968889811435999174080702733518441335451420745243450931618036570071924423167538730283653623442034275181747803450201991260484143922237867933162774118595839481938085905568678465341938121511501486911604809546999350463939514964889394738080728876248050958852074790680882795253087530845595451978050035046605678080000876960411365840076147715049041750627164613616558162244452627880380206977374211456057235959991325631020450373786651739229761621133559953556472946491872253533997018836006915456959614807757430940840875729091907161066466145432715268290583347874978695231875282504451452669157849866273704543142200408383154967693097462988987557492084968981806891518296095595336679770042108444228328264836322422550546915221520532110009724480728572327566618677397767801748744908453941712572773889040032597015338323367294271640140756475527987612591037800451874024446599664908184616937456149280454038963039040612169018339044274574757236939526176802569177248576202957146312212257410302270959707637003095436169992357101471386267584240769143534418371520089338616996952354459279704929512024968990391455513113987635339245071384323101900521228613449049128302650686073615019599875052044888898071244884896534947112043112008298336505848623679309827631519704436605193895701712682386341333258561610888326897296664509838855497937994542645199817977548148401377190524493296185348679895899406896107033174334986885650601889339509217265659043722383599589354498849151931016359433900429909688617460565028128125519193046383518377486984568919104027833473683853655309181545447785298923551859085530902696243855613646018799051866745417982390047533517912430111977419016927336175788730688064505425225129040991707109027566686260650517348069854774071795478470492313593169339364319146772348041496912338920234396837995807693434647006260748806996172333223453614200302604159406869726864215668110461447313454777178492456588786875676874405995548269067952236425667796645304673665754679029095181850682284721021227528618030488694267041482808759771854029397686196574285346905311165698202898530386922845393165904502910353731922966370891276243644576105850253644761255918675280381250223723374328647626692798945174348370915128066173743494295922956454934532599161001306898561587234435325421487549169152474015937892452718394518757714941560060533540214345379549115695086664212943901610633484774795588605719328297720895461420092113436189605976996354798482593098245502587357289028670974475729462109642965382606884405806032815408741226060135621776799516050198522386173365606031481129472610945851278520000436041473560055220874849906749614431881118885189009501637987096285960450465983568661403337755903904155114404327500448120824987662839622932606165234109555815955321098917411199863613760888080064662391047692175868156899758589207724170457352985487420925361289236731401354641028899304135875352137973952732550127863362110914493185775008571291473518130243802783146629095759243766909092939956680044494504016568623044861097528798438526803099275905003889871823530674357209941236444341608439948625838386507522082576427612027824161925089832736486930435443736038739875662770344436203318379009122828721966265337346758982552269161048493355083415166040301165539847322005656448650185513932367036512997808043941956731493779978127386274467794221776636894481638976009207850287716796164179129826125179789348667390004537839674705371987529795607013844827524373820816250501936357420057168408977857511171443972094746444029714428663234674115354675749781349123580160963420957793419147280097806899445745296449801260607967392379938754436755226500312959163997820962774342046542255089389146575921030070424718799642956401992924497221603497729726518220019169751903366451571232872748187075373358531051071599031084181741052885194687450035541854410773400257371681359295398420170866471000277731088215472899036089755139512518297384129510033869358218782171629155436016093990083280843526454480469062166792515454506268574673702499060057018170071130650688370505622436268422435032462316215283810244114638429773962424281970624717486436489276041295964116346765866532490717916538345683763732146196462594322246739278392419745394250038176729854264380449225008225244720646708281171656235961168181320133101413821746776821619390584039283586119489506774610075331633540680196240872162922305987376335276446467326712573974680436200773014799189158853071448841611170450512506321687597520336319279270589842480457098643772226686431869272548628719018018532153184601092639883197659507730316577035557495483033738658796562462226439414778137892373307303618449259447819437845898764936997283685575315355338001644136182099700109011430814525572070309331307312794309370754269617167532444313247214521116259757830165725956202971113041391749873634889059477172510151170144329351792653806329096218333541147809671362599396849796350150153839394724768066601414945082077856175245277416678603849229571835634743957373146138422665010166808113173784295400068995735081444927437069685063120748335295715700831361462612994831442420397744929232554583744298228098832993274813349275476197384037224632670202245666096817961625824098427585382019236546353232532689757565994824056932297526981830997738308055707363446070963857906730528516915222941420740589956270618490898925644398563263714221971443629781400693207160304740716340014278638793145376376246767119491093388814078325771013715665439873568581504616902717554775543533343247934400563587588395440705479164114963406689865831765404468936099543087351379622257642415240334952213622674528145853770954314100892755100646253041791634069174808461390423122385777330145313108696315977630123780414579575048945102851704659392275065877834562977244494157757570414073541143861366738370663015422256438227159678785587121296045398299532527740702997569355959565518452103295284895118614640504823443226846539265639218910426409928147356696099252226242315845501934056366388826763736507611353917731350207411147437409554111459964135066910385712897920442266889294088296694952721597519946184973296352634999036921169370870987836989841148663816832560606294070255755198269952217256160215185689659578218282385057328471357881721852838125252896211748992217425373629453609818164881935386076501210697560907185482829865844433642286456347193966050928363726429275951070054329346218960358854105583838757073207304726639077142548878197988142938934878536869945134646713725778783164143302920480830885375793394594686331814793593491264256999671817045971811217228708421104274869936453570702298758953156051486009963449678493468732661896249342047264490874621391489006652165190403501728280031453204617033054000341523922445649488173587740356734107206162983818023477142587773399258475676304356621851867862852388182168413843318910876817099714660959621081882410745668631047690851892066072869844376628006240249105110989982607198654008214639781477654008450022533776739373317837163856838174811288268218206761052294360730956441677003272170436233037433564473914576538757113863222106861158250809801696825503108944427551035600431064063673834253317288196344579812787967006410263232329133155948653945532782185973256931657887900121552433816848028201206441553417539048252391818810540518161779805702699946606232345062164230079018174136291170892797144184836130300019978791357763618373511538291452212728742963905400547932860936784667424382449840446635020381477500209687747894285393211707722901540020344248898091208597456600391389934011711672105576297139251260959313317824436542921916735054026443922327248892495234580872569586781843782593007541555745183785344030118305237479194856498847012009604377665663470796009603845413901566005490246279449476829941612779328343995885522586721201386092612024315963635059516246149808433613151865329565431292477140679682239356624678887278211328046131474019171617441285213847562336696352793571603065579209196283700998738723948205909331007713337193518851842673470994207702246064796030738452540908412462272577926965986768567312971397442822126529234162364690015779077677758014688913380201056297025922366960259223308364494446510155815513871189103119094891563414768444434985810803953489208395194742740726736260860701874710440546582658925821775681208278097179518904323587387785875781823057469626891680370228952442490225255496115630324742662056394946223898416554697892118514479641486950840124302922760750446075049441914434768978398418995784396310963165535712702469868468831952974764798175941408010149908888572938254145511623315290029434205628457129801305531045695460580113578692750040319503807040877257162967436236157692928305455331719188643959813431843198581828682667568253133103369064426899148097747811626465264428291647075944910362979786926931695704550229283606129071384876370120852603802020083171633688490488222725807025858735715833967378057936079043964025859288331706412645537610485895660008499687835716742030659214677438402151044396742820761777192337027132085329819326883545094752122759775922999270864949037441204239973133166572108777804893547596327627819026069945216183436071892327994309131606515480002746407864663386337677546124907153017585525741856218474348755064242825854554545343209572628318554529555852419347593497616234822255564463434176907450258033440881509186005081668286962039915553134031988619032866680822900502734399519727251023515907016388779179498602520376387733537334661493870165654756219679371901687496671152543113592474231157550822297094063725138280154602567728576446379856982465904491612682911724167349966644360496658085313084069585407799024422527139318798015723183339463220602711910491429810788026232186284811595257850697122770165320320142872584961311282471756495588025336136077844688944690776974343958901091325964159402820158185078276863686102022779175896738337391426381501402318809691715153997505598400758577142852173342479994328058779419514139383378839710782396772678238574524956036231285091980889703561215569114702338711671289279249772507592235363917802976093503620437459125514149737889001490437643257586336398603931902959187749702736113772506823511930606956877075618964206319567630415211891285636687254501153159554191427797378565474164409757209667491685726930084788094218982309923206375803926133580937223977105821790975732447210012467966072946126981281102956770579888941091410075094631164532458010278315714744923246930467044952753307039353683260676153112491827005302607282938505772077137579155578379650272818962334847285531218597263570177146507676027187169335047261875398718404067856797810522331022602109828259737901474310459024099363384505367689939599318729372581847099409454733886630367870329687552529717177284276640802969824298797976376086420193386466171665720095584973625579186977099772506710808597334339811743377494836290628921306041290146145627208569475121273324260455775021114738821821047302000844160161904018628563250216134611360227788015414123945396041866220074570881233724075369058052131292988695253555716239109922693144523850749665011046090802509688330979285911794233874178465915215763706623954911457604222400560568969919752753104018617232998578910649088526893492943358067760782475666688788426579933213200100714506102097224206026640359346168531199090619866145070544109261263958286145110021763366564747771340374560350981652380720519967400793512119171987676968882715567003082147853983723908617528531885336407814286162811869789220267271856440156602037990338612457391463023706440122069945505261547344362651843550064055019202466384013962520779843588721339035377513031643849260606754280377884735633973162436077265479636667359370333740881104843009054350556201689951329354887358761388512055983635596974915174004411103770690549927207793897454027284946665820867664795476176717891838048046600229049997128875963201045267617495004655651731602364722351708410485344079473411235568971988009509895257716616942760617300103590351046286067386744929027559300715040010397554040847564293450988381796082222145296153578417152557510462045976811875256084835148260429437665588694549327693330235090878204530496888878744809555390379443646028457003843293953134528372057636310742328429353706591141312969036951375808994316684876860756265201835088561253061269502960010888285088038400705859907398361341600474127674025890083808764674311749427794470132105896685864273652560023985846325252932656121148337601729083343532850478167833853139389365609408608425031858971678188738865719037470145909338086281327478922687248388397583160156066604294115337422521051620036308557892855793086156451502991559669523637608885009830784427204727466403635122874099305051926297774791342338501501806244649269770014821570513920717152824973677639214841496727241526099403861208592542272574075787742552454585025167450877308349701402755745023500111400993634524930562567639446084490440161955608630610112199648674461496259970008226932342042854682381382534135501461263219416602075017928974494072442049660849860642718767320966876728398332217508862121923041704816165896504665066768204876018576241023983670870225932203713435500983069950739370355711221586459460071970590285090193019867601708960107485327735271932765581861573513847987594344527618014210387167121328612488622346616772925366200609848556786584216931890348317948996114147043042722697079685353442451741709253324698052456906042144444370119902678220904569486025139083318135022522698692871664382252840886129437621716095257285122112938780370377867741419746285947783598447500534625828173973855225068478019200078489940066818178609311025093967309458832062577564817525777534394171505569855246007806396912376306119420868421557897734014776582509207098090908734000908294539405013573496330788289776554051486954123844186997426237663492386389201548974076634501429360826085723743416069184967255223047892551641492846052651216412116095108722495967593161381379311437948460895502026211364306251139543391998927919713182291714123793732814507766319610319515357964755741858191469894518982760475595657994459026473114231228576709695168968445899148286231328523845446267531494303894018132040829908338913413450220531091723456696627630614275085514854848736478465548849864131974690784321282680826922620713501824510871803886788855305328205524965216790621264970734399477373206091625146673883335738616271349430613509390139778488174876336413845405945340105253704040650078521157799682216036695474930747617409120848723409634835205501530099318281698058479920106725960241245778555954134317238753071929635210024309381660349738998525580172757864536387169562767449137748859902715444288591810531979737847383280998288169889495999312960061912273687232884627326965506153046886953781606272418844061232980026343958818690309364713689270018219221149151099476366028709845550513948445436154187172245307975157189310928475123841474908798446308347338582744961075241449311053865643435492480247776647412162522717182458095090570564814210548452651025739831991483141604302079486855909014135574377999535958517500481771709778223262634081606151669655413882691689848633234805539944343735469378884358803605924175355402266296259532723911717231013685243177035419711022400341868658614736986043480951256839181165818434363952444914563195841809332651379648405237601696295112128307710791009872532025269200606210305146910360270678845981718083496681805407573671474618933395945846990888589472884050639556959210142116715583069473346595498511850082039561942832001553916868029168888266993160776276469786570527463393302450404132247846688446938962916139937958256543955623925940299425974457266254755484768472000993488298557937418031861303475806763217373297406075299834004989504337104854076925269525323457245111824400839140643790985005009545714892502358590828983862680762059296729890130442472472868319716957808690022339540692284946952671038202391766971268417188946310886309010204578212438847431373818753381013586605865030963414106808331200973542980840533312612307301129460925060314420159785147322149824969087105100030298897850085245132984345131387842412024142831974972719215350274827678618077183667983060221306026980359024612628986987665265605616167061965439709906238186502943782425777861082076401746510983761486642635368082293214254104810951353955377852689962219344149999751933609621323602534728693930528936945791161896313588806493167915383885253938105790503079000941947354807693856587291015714302909044335065503459480282465417679175902017508825268553051689258877992545840880949181662264288878493881417664813683725331609037332130099903725282126938714303044168005194548207314218651325160269350740328435417060328079158343629894167614247386513791824781108345221122365400525853449023266090849543401183641253454866272339263744917510821240240011333854819099890053457432268916581639782864471993307258401901035267736824781567847017881480586927398765111996642336326065964029258288288244773676581001320813958691244881122836988118420003402200021896102109659570094798510484211946286531237962096564048616572427062266341908733197508214933526544038003627151670986216862256345394958389275089451534479866840110401760451070082712666489862493055585849391549313735571123427945600918200818637062090125807962712726640947187362827242350187083601532449441802972971846884618458113949761033158021363947414984403747020296679678972773269267812373741693099157215664853098267631172935765485928391760855823581066849366143752357251524336099097477556344947423852418361630037088613696371812689128998093481646225994538433301451090188978513811562447732067140741752753823999798479430170790823761183452660712892911321552610958779369163132041277477119330810918340487036763590007325611268970574588707537814399806055849058479895305781001787004020494355324494110278171236038199734937762730940688335980108082015463636414187619676592281703008008424837178198392030868404432264466756252959473729506554212501576221012285799333189373850010634498948549774969832570939271320206964587414840543698977803059768387032480516281336947017877225297029427145749177376270953405972519352221241331059303099202954796100089207534834754969664077186446772373183604876987322051335369687264763480830120110957084440496171869295276492026807330077552909335966582997006260576539944345247385804663090138657464638476219458687633191237002894982625348480985554562323848043690793630592187453256703781363090142204202789154090186541426459481664878718134788801195753535686602491801961294586175525219452997373832202269436063532956106908923491831466822996610042835437531782966734169731559428752519471822417332134377318973461364411714668531796425089009820614295473178107231556046394823388381874104298770986875725341856201293092403784666602422422302390955471600617619817726411955979746078932612524351305198412319219653640884822737971366831404280577910591484087763894379278548477446188850177245736784201587006112130374400690843456747258389547877639498479573329564273058518433447872283982654044058047380847410482442454170280390194316176221912193105034402321607333308562347989247607207601600213926919027119451732138878602953938522743026611993034891067407728559653452939256964263493209008527147920908133061720064656504296760595370681307144989548140922821563499324283808804552556909249863532639400388667411187526093021991352958809932753322900145012822383848243161373566811819082142643070735608061959425206251642910501426123307606166271793657057386743226031769772644217105997603613403537976684476936192222693837302568126979240122976153456891026983011817521223957055235141665719795551024384220609248320617690939567860024354016167645335251516758787132689707900512994263378948682016408918768376443157694743614144165867068609025875208727671396027560030729586638935935286924681429342882413774606565876767728880580266146390430341606579427746391900658896151371484728344715194059256029094869644305976371454067753593136417567743090661783477579079956920067723820161105197873571606898440884848417766417505416553468884360830313059835434510591577582071017385554417433518557639713055542964698385757878604292808322101337969682919319188336846496866744775658492900703742147850199500443428258277753112673978049337965571250885348268336784845838321412855841380118780617364440743986935943102178971698989360917625797976938819232776894303501232808888858029030133252846065133797959745585650420766014017715129483106506277155223964260152442171136008122687332569286251270642039039407099160233307208261350569552447018886331136120179809066572431013539994645950025676984219306954046800856095572299045237351316397877216716563324617932565912355752368009102920458414312759405151321371510211497702465075346997914962284623230831612076458500545912496035901852936082013354752786830005975914959306044248852329377943529794369364472105315306244735716440283457555887298477137813956609699458288659223841010262718233974454787462322909455619902360944321715863912447459020027952766859193622492903144025612141713462183246240543542427515031278335894156718898602389474990181292160815148017398051896224440916832724674940906541039736473503328665616903235038720243314121931534338836159809128443267870579933417922439742319477358571533383124594650777497871906270832133996156726456603520454996280847735751170725965475826612034764999857334199419888921006422843291107533219457375247237293152870166139357744762318349481751230692157438300041032678938730026068855727905234739439626417931057083748190022654108998114256231262843689291757327023189442309954869198222505384996138981120673680002831173785779105982177119961226934962955441019937497755950255102066985808677937057554555959824383914624623610784779984939192475987157210382680795819584251307916855413337224534779698521200216141791322076895022668944245728633521298951192972336448409699873823052465100058345729517485531723844080432949767900703272662337095815418123587369095380882691488058512443946213688265594899986133857765669710904039285201832846900880779473681980824137702888547118259044961737804157738200319671199103280785035513386466317420912298493867848890849043657280131511070423722462722944306874336669957617054767883046528706849581182310723414088218013782522933839540973845711456892335272192757244131055739894347512093224913313805878510631613403946556604189231206479432193057236798165062258111533534473803794765902081092809914499367998047380508925749079423320139632057913598525299148584774934135656968312553602694858118109008032447412178960797230559513989386205060980972540443078567420551320939457493166826110681311021335799639493356798508689891348948607162761438225126669358963859943935183112247495572101670496406892902070773355625255831854801981907972883800048190427308813343116407169422549229991658219843396187790651862833127510101607591766545460789330376758195917273197922141758517575934169211629363909211000696200338622131810565751466630687495831538989240957872134458811245974770990479631037145666799024162058153032857114881324139776196696030446647033509061862207134665316063852652749998316371913452548470623674367343011383945363103629206936807866033726527199854059523171853402007296892589771369897605164189712407018769459143081238137877063698933998955168233723488272029287122738900863276353060639368404286210964186890427072812835933177218788217552538150433648149574935546128441648001435158518436852895388887232237248102286784262590289503199412661008851818529205946386172515292925573818670164955174281979924082281657141721828033891054220484908674807634388858713632696486748908471133500641276061455002529074286900813511206578631812636938279183110544457476005696862742151952581494419536582350919739998223491501541734664750939737739030397958594035801736806130773854350561120397211265603869368346433697253597876377969596286710237602915799370843349467251793334518393707437263869748811799043364083075693264138915653402911088090628354813885033615071778758517507802331109191416060318403935538305723199666818559119793216305753097249448102879542395849433193683456966160185385458883729672698338878011864427564269700607398096539629930614541497296009570406036825151889661725989850965721091231805479978297561962855289481203311679853672164676077540315736517868271951192159381686475385358591589982969903530200956205671719113097683711789051284838752372342779675378659577846699176357575348633510717676139377685017386204161165409097400425351880245767896493423859486481757215370455672182231390378229757045624259202047315513815408550272771181301125569020492824632242797166426879011110432676370918701658413710271155149147876031033805271652737878767603614726226024101344030361296560552802846897306874891221664405780624440922191276345068922854617372019419424632913809574374198027123357503296996654378698964141289121960995216106927982144225384764594924398285466700651151108577266261629206099293925763874892281442260678921239542411718802117477838237708900235542665289726239056865368502638328283770425464823911487077443029651006898750117300944186306692538463461326012801406226389503021685360389316740053209484933831042649602241413021196092137572869423423031366291994586357709403844088129772765259887042188923843094259925141946928268194664513778113071220055892825766383744007083931905842743114221954964401566223301811087419327720818730699152249299482166791386706549514666115487988604680981799269192591362752546800199352815225717987686293420861841668680195103470488696731298730208213183720156638131717972365355890332179848713108091010262141515741938676361284909145724827752488272680128702813229537093189136257964173823189987948150903381917518487529803995416368635473641281437060539054076953802608138849624697506469003963529655806552457513346071980408605189671745838195911289168979964088738208300270310029334870640328950514115263850827498011784028684953488080676287906924685892234241699099819314079807360894214863024514753451258380964623787368967174583152120944801376069795411473818077788343941273448725931286835663060197148983349161347973474082532323680670211552907854785307339809030323754099340382268003098589163302286048136863494500726604277359367293199545175143417164125642727922395704065939048115398518912284912446797130345867776718222248698276736776277057067665097999742286985510888702411086114831816662575842304399369840291200878069893425262580124218547049956387427631867191215583237717226943005833381488768217807679009274159660810082862976913181578518882553075718834384365737956751030633369539204396454138626603896085984454722740844446796929816931416680870821379236233309421857213536119653326087116977341531267861756697647939174536389617544572116616922948241494582736582644167606398854907454732460930615698454361456172456931287628890378653935827588804944357129771601393090528251493133054249113177027600032276518784699521448016685465933765912883725470732530984959043298856277759499945955240495868192340061547887191638804834911471004535110761783911835988921348888652587519982879485602724801859717446128922701979346098841623113815480036512915835760192724572035211012395850614234810463467534061217002894569608273701440225381240011509916945406322315287630271767918365853847876620004941015931779609287470900350463785569433408478826020779144727566769229795393772672598111717981700193624371135623068726018327982031494570034455294552261993415044494846204496832046309888829647330774392972994016803433795100093044057950203578265609611743643648471715912991363646937886824952903802177254249276008541020512489795661666787952316839309806353419351691067214981591698590722773155001643397000289777904090182913754942967809576099778246070017631563046367419647588052126960355317362595252293614279238442576831517505768899688567190646105801812936594869794644473782748448673346985805179663743629805641629273797882032852892169230254247390260399334593016942248972206871604645619266324683013833973389395999281388108779661192412223085095163377848046782955159364779871823891494079779876126328392219411191163350840021529542162083869529336019663740608744338823541583363492242572006569474471301160921535623944851227804293949523687338926147593030509594498900531070022348507398333803096423500410970979566845827606893041851101328989158824302626223660010717060518051944892399387225130176075970417705693310489613712616718082017298030092515848432934247555451198725710974598923488117711661054995882001263136254169324138803367435502997468463985501359671081305343238157213725296088844874406909056019859254057976988811454235590813992669420446953704738826754178034063483034704044397893069882750618997823624652615968171843805464015654178789126076088366127834656873464356361241226721063388039013991124519727769820405012710584836338140776356264741154049307947821546306386215599761497225413106211026411257536706176149246333545273440899520000002406244390507638446590660102569783101102724298483008542397299219838765084979862358348645065820994791582993905090590294191208531860340277104643255659826664495258860695024878115800370004379254533063145584598021729020315609426570808294130080370954064780526478008782445426176277293247023204160193467713886658000642719191018349641256090190900592302915932199735149758527350824697647487024699593955030728426060661040606455031443717992864361974319300647706126941228442887234032809328613975310465497324148977418953941808063415428928603808981067883276716101803049074635029510108902614724550773144085310596676877319872064438869512213547543378815621324447323460651172476583758996379363687534484724123144822494506825101960067818646138887644200197383606581577130856218823967217897439608387086942948516225791003339980205544211642687934367966874444788753225304283570909339130793789245152068002335223802955794084094070562136271823247402361373221274381799929885926720337883137999964654913783757706963493486634059425848092540542939828055889072213211045733375185310131905744747168418938742313898662587900074809035523483489700936688448904912789540769088924353512315626172760325376510329843481097511277067631160068176975718374909564618557834784623476826666975275757212167136160587717461032507417172498340964437419498421996664585484711995287728936604212268891379829719414355164679120289205029082029758878553201015666302393372304552063394273911354992710140152233919475812648790174380370285658127325477218428854961247644975971930562347434709667743596215311866908857856045012963862676615537253420268216892469860901231502734645271726915418454200407115484870448717725492952235945359044598986745146791360981155334189461830415309164037087875295958826951139893482880957950048449282394428840857378853175744456763263564619500205535935942714542863017923823537684624988046315005226245195612200592216295939890314183482035247575667970537571981198898424247668810677876420015778166770154943545363022439955032053015093715270132157711974002498349643959167099628613646885852117040187439863106813212420827149748176560056326668782277527171123809847954033815753081113155220968002651166368050444906273260108523108754911445604507768268685028181675550545190426411818147118281420439297417400992658393188164254946502191150901018511806933054131800184539357705068857403205595434247483898426510642716479568468908499992210781989892914341610212138989746388532513743414544194048260675343035921215843494948687835514259503181825333201588914393886080687470924695226042737006571105608425019138234932453896082566613548708304522124852104638484043983065010837605982176348788944139731002278060856654080883337647622879217760517223347579745343600189824145996363794692456984056231621159875311349702336768907168858784804847162676651972143506584453782982749408511486916967033839411937585672405391243731350622257635494965180849324886478189863842972547705249287929686184951666968040921873100011516638235683071556264996921731085656640433998841568426501793089564867090825044509615969582327325419383338592422553000734137414766156983791286841834317658174813322948513972110843946501398623712034011851161933362402662001409912827391081615351299708269800066089092511287313281818776039263754032216268556504623258975795798030208528448656583097611780472410345424818932153630500812816185661498433909609470739633129305114403034627194262878666627614807518193499409141661692945633048092509049744992782552349485212715578942953819611865960919899067034735383741247701444884748554304285950435697812527904405122774733383282238475134020890603251107153035694354063297319622392321253525810364065781234958338443579805837434496689760838729076696482555383573252014028659826238067743192235198936327838188525705832231715496984236445218792811510786069211895649922362333759295906384472266668874352275888020567260873001201709255130195960627923780683215431628717761979500991617894490084243354107306361842652204357215299635601827115349469203138035049462269833230386082911302370386415276792787127664234069416093768138534122494322115996346749517926533641169500802965385753447568688004091440650250424584586224466208307977409313451877172829420121996176653270359313704341105179177483474410594819358482172724723564642771339081498081192060328295855845533937512892547475072397630343214659607597350719864596477539305635212244507255545354621636914521640185735657143198056608631322003084772187131269785436679394622015887155293753079114192543249648934753607384674426248000382512980217135976700137917524976085325463624028491054966768637458374317496084558891074131501280621771232172861200841178454097428737599733413024439330815874228903532064193481872846648844053902837898079319841080998832305904335555537962815061483692094362054241033600852896420011963188260449108543842566864309515764037994692885269285634937800812162623115069122798055979395219427733932454239695110141825229952229763896513515496614311985903282002594432091481175087051855456461754023066548690093110958220206063379071921301731236033352685498448370743614657400420160706721343841021415362876782119140396027423813707886867285750196360151411081435449872375390967511307652855204267152622672842644259530801338340406946516839649610878652286113537606087731710487879693384748946650058536886780394230880725223345209809924631248475037236009662634306366675340224845143852054013134596321402638192104245877477639766863656253737001522834375162197351951602774761448520803990923832892761995435978134531916827491017234759645610684568968678904976915268885886724646541298049021066764932529069248839202085973819667852602461295437048536443525439033786166886024141674017054828635684243019936761704402235776640727369758421209663507349811158477821239224319159196333770013114114813302550576084962382262371283313302453376578364660360378229784499318809937030678029487517940746396021644319651790074512264027339447790491990144091257442714760240082622656560250764928670332324400883701727036778985864313987979192952769336500745980855345427463436970689989329768927026783365028986273636988258750368884062875249979557183115507277334719263336324820009562015167883308025013505850327964305260025502503295364774749382258019830006112180454495166414640710039780882611183184297802695788303690999225132356695066576009096976399644391252857381032876752466364471408121216597789737734537762989584259518890766031886771118008126682066424558194001951143000701530521111925484752474593449991681282978309905138671824786455963807024204007177778557818479995799190346082250004566032446854194030357882633912202396553985677456366559313793892184324550280001506796666485704350296187864171869742651743350060539252133327484278239250138415313363646522235165539854173835511367725720681388340216087898755413539088392653643676900020054567065144731548740649395891451773979559237913391953886792993675346501285435242488596199407479905517898792230160284438363039258232922953630266001050628045290569312617888743798506508362962889642745070175379847843268231840232617680708390569628442608363784236683661044725397203781809024545929194653892989165207335495714210532380958902583897343461537160481503502731040277829616913662430127457642164583806844851158495668431779772664783769647514428141647198532948370794826243768676418312117035281241779881779816880888027487570958499335982775256861473658264114399817629662766089295441089893622812320182428561582617496177752508307697654616745117867016600007680985893893683486590520567376188482377855477248671959395168572153154326251187372858742448803109043400329563993586616973037038425135305644045526911800387344541080191344707812220807846474754960594179350712112102101827943486132857904195397208567062849260933790802560021141550345956830178704532708079454792359466217157053576878566403656956547744615659769826752018699372168213545315363632121035852767520372570917477515825176554092028632213029641651506762644100979426928419564230443656242244819511138043405681847380956865179458801362923483639889583262344140027667596529310615330497325071898828566239946672114299423483153663475634263603711288731005201922269472909570244151098546132797780859537196908992424102465502649216851599364750079001653439959939296764618875575748981757019223407965343992910722063874509867943984184609598666839133704809485729308717783914888237320917170877438171809877161745347743667744653860279889127560520690077901121987229903259808051200713512769019805179643585917660917093469051385562486940260113638048673156813429366127828669861006718132749267819977977380085430955135815236936927917599964047832573240450730323831010929073108676707218887404962478571116296174530161325526095232686074731825703947190708745619358642667563428283347994208252850200818463806259773337886715449211737706527590620288596289925476726281697628173919753856551273342666212004629449871480205131048439621297347405948147763722458990199587567499922727100297155273456464188540953150341817363008273241451880003229749834636712105145069350773893637313046134424145798399433788701609727055164528781219746976129210384786775071817896346924785115943086454023813698023509485022878409647417189755590855460852302221607333266768652133676281265902812916282258290873791083835855385582244721544802970102662667637587259678795227393821334390275498170636336990987440760166140427784641988757609899202009273689755738759607955913446683943834144881334674097205741214381578314795186462505304145677107879078096594708676429792592446793257378909080587118881470407584738365518040395405808117255000432610318110479625680764956874255830662613780394664725145006053708014955529878499952873011776086289036100466008917650029683292163210014172764533582236355804163826914777222313633829738516368590834289731615730615120000123100638819878033001318691330057257145504614809365641962866977519194567326014060679024763569097631372203711729035131030223575388058687662084088580235574291073542444371122794283081519085889186606714913812173334555525306518104500196519296329994856458292589950690271127830912193597505620292061447618327249526905098808901076211823008073041883186083515338577059769342225292177847715093948068194853489225772185748968460343039943983844556090250193702432221266141670067627509719790990154896438852220172244609789576228280381058088917254546171078297610473877702261879857381829759263239752878604269276265042339918902409375020399107727773502084167406741875011600041954377383118990101533832625305100241278063541566266866881134686949256905642817583843529207263337854988244365182967837226251027037241852700956412989852225463050164612541676679216044906646453346224567054936221226619788711573665709044264544163798071778930156371220818782721855371500030019565942724131384259679819822697663076941595151537429587142079964134645641709194760099647576287873524832605400403058679876802710425477852723860948144251267737093619209314776795534004345504287597645423320355003584748227062678848939916998511891292701321710278065829831676378723561578464546754463894480001538672032278487554275465395448729311582265281893678234821250738443041387142188917354813084958754105043026319935108669562285336030086312991580297334679472571472422163560691755616944685549305295497682946740171080007519248761600291200100171623031203832457484570985813196415154023025969998208626162727868129757491517267086243047436692575531502500435216214425012550768851799736618831552278477358453821274659398727626026913820961415949302799175573067624184033148067322427817415511948738768750236164212390522226758095933454651688131739748998324857515957193500084593007055916341028685988442485492443474199035971970154180558122054115791992328811861645649382469896600458945787563150338983951593075762199593273082284351239307493267587960943754256918281319108980734596079346233605036213232700446601296103173665772816243452345613667235203481549518507881691154670742843344253330396575884936240880185847598933622683590850366448520711502312771305451402069446677927308218914633509933498283677721164893594259405984328319636663583846304232439778431774634819922642325569055858213630656595550708876333689101947396508762761165302176677801778255394690189427822140524886610673141281081015983791867856603490670407827308670707952052125023583972553126017066889921003085026875792152082224740455679485292355005498506351404096052113350726801275658273575639653802124814535724146247310626287621960773956384408198514843159787151506869447993807681875854379723394947311565922808490795110377431977824664379160131334208903033395260058191112676690721623813923303845505518291907628187814836332497313510534053611308473360299055337539659232244560333148042307342796175580854625889615582877011266123496784421018581378457415822882544415817376857133582295527877023632681863967311002403952181511545540402840929967201342705487903346822109997657432058584929432626494943727362269106852512880641555025923777488526707712348630872864472949356636306708905394133139956531218693248138447651396412237223266683302639542719061650209660788453678430972735151021144909286262349500415989858459087625470371534339601906851567862691524812317123871032809529990129760818056439645162850439513242690879867574826448462792201922592671059649331465026246605681123774649990869984608710331017897894810295712962798462141895535146145095573975321643752449193499105709433140856030075613231641184968866515497825374996163630327775692531913803772242211519786119298478222589449053777800225987132712386564085486739692628824616451159645348969968655587260923154624263768515541096595093659943896292434518854793307305185325725358274166994968640737876092671741614497953139757771302048154208441066813970597267291797254727860991367901447407035093310098875006533162034789672391007596410796927158258968629330420267107338016953562474520041961866188893978496508061357891478007847971457335314406602345731234721695986136156997625424585284111913909513185810000775235417595498452645313747056338386833669197390077082783750643903707813836751631388325690562375553236659874381158209563126730259837667019251693822493722974810411139409985206017930747905727035894071858156137988417689712090645230771700216317887825716371319554761921567893849439305484012750202057906477986250026908363637488942765015586098980714298936709817799835660486774273580458112371770327085309668014033043303725721212138577065112242989084816426572353998407002006716448638513724325880548818082594763693188020426245770486076214917032318974258098317386853805041248982357904580422552656935511871498693679682307758856776287844839779431220139300005591210738976484108614593437194556551630041672760456465992422026095619864530956951564174449116529523863890755632022062247232270744854450429888691580369639324745042940875927194328004844278079902844518234215979245779242542127150339718732354266890255190181137897878722933569215231222683503520609638597926413795930641685969338291737316021543133949512147224058185935653972713039292486444327855410076732800631880058779501823165702801590258839964996705789025573075316485707093949194213199573437804474035986899995106030336753270392829012236394958299604724770359502140346226999186371346072061498435035006988000933045680156545373443217480968080840782802925359685549053714299339135454615333292428692955935517604109071506788970897936034670363592006116862136440847820584261651875614995484830773638806582721707024976153697885762793721166442420055970080593738568240238269541832597431407496630160977117994079271812839476955797588822660061324493624964249108820041318198401040682993727065996039246461708799720958512381396962687138772461837786409552968659232192965161478247180406955388095313994707119472501306576462789448905087419557551210575187852826558401187225305097430713485203565885516070137346793248791150070416705654487989753663673849683272871934956729889923981594378420631254634283086348208070273844033803521432198594451724335084752377126845119674987424501464851481495988605372049981231720610663444399408363199412613027482876786832075748270817843200863292804048292057814772067250597346332649024496126524408142515357157741347241205149950667591176640016674784731484819526794447795738452383675011775698704771520234399215875121232066029266374808571490799235020092862859016750626008320849444059683614112999430739039394789378099662858038766555582793592576648337204974915978371768771151431275649756063925931651008894077351173602395125584989150050479617715137731560064841958201973305284057700778162988055357460164018935635326889728421856260670801051164516278390375036616207368605865644592251456236471527976713794498153341871368419466423105998732535927061113021633948113845802836978999396269282638913437098171124895063747799707421237603575578247558571141132740664122416490349586555075978664465916614501075154976761999741236197215852602282751962716824997258611085149191242211278338470204959247460879299053881368611718041922023894541535754681201393014735197816933214574145502082444985633736310378143606420719720633350438488036149288326279163565551711213657771018464867165284646056539040017058758838045283668828838710123001948940223259966268699838104186546330521251833407976747672542324594003539620917751332896568500064410978304161090440327102110888324922130342955708082781204927455545115911374839796555091652975350652688132633626594688731152039207816079858367481265450222516766130288744626590451598489030175646675469702098595207654709171963265556299415355465358400362984358562658752431248838177671440709475621459564464031885313724370979922259418462002672616000540547500337304421996857401423337963777496533233863170727918566835816090638815133278376483931644263227814275076958513561933769209116180576878623533876905239630915047375252899958624610483122884775569539745779829013712351580469909079711373428966111926752307087518241033655136291676854042224400278695369211970283446913795774320771867082426717056405518261902229605901043916093349477992329527676051885788986940148037936973982058620074635961761865954508752170497042614050338322024119731056868846360909908363273034058570486316944672536952262698874686329213190668022379389331720591806467675937306221171294299897051350889214612674191137814591154263377760982236419326399357905106620695752324600157058697158017338925627874050854346286719756727613986664498240445516203119583410481051248893908628762262073521033059085332540371951851965447852352527950863868572371142113280359442586635374701045155644038943474902710210979212000804486938128805112073051054235259228042211170901007130430468937683983498409877882675245253202565264162458600696209070556431849638055420287464069198431442000720257955485161139613743191000017939790356230515758809074829929268389880399706138189644183889373171176570606089630227664089858331628368994430908742084142948897348059397390159160499674588501467504820327094608139819994804267577362069150548846151516560196288027182816603216237812764946737493085472710766473553869665506975520207381630565494392261176396365288738585427314215335910542960525650466718108141305661683819796493026638019478637784655292655077546400118119585344993048000181100709346487998468471856782100034817978710913046195504534806275142104879598244123648766733955818295479158818566307323093643301563038107460304012676146109039479633226232762104763784343853228825519457653603322891578921640677762053914560008686118415478137405386182957200443398410430981815212490713368846191304076895746297970643395267338057258814794036174571661418387317424951817977179321875312931618838607364794659240919447315823840307222852516556457138464137456571677793580961910326230560057213732752242892379867632755225431825616057770662648520612759397020577376521671163097532267936147941978536053060999628766867325320406471806566884051004257557383600717688104693855985473350987495481271790543117197757480348265819688700218539864438407899060616075732140676272434325308655342545047515056246180780595270294032476084302567448519238031150941576924890942033950228791349450103601205054045758376030665123698829159753674051434830836988234233663900610508922482470745706691137756694604207493826760449726073986034626812836805767480518317150027965320959540857820280652510665725450216728195471233585016543457353875895519915007623385418532601607758663639725625300244827597499091919437604958039964554430972860286895028713152750865211776046944031686010639862745712007853306058402826009131494897031228722070568227575390482896279197062071363497016025815181338839586376106171598781164749270687939951200965566816066366236362501989627123650749714401257918572816989833414403321355862201467652105529409050442335135760698341228663928575057441758066320331046829400647472878856558245806385737763595411311260181175883586097110988037767263413897821455023325925210182431924268965630119611714713756891516475211944349721166156642178516977271384075255742904633372004016994748358399133907788396608194430092329344931816395511511528620205078561826365375217327102581902376685694578576202510478254975662808407006484226839297444543392584755904139835383844785264257636923193747453781591714115122622799538856261813688275242272267111420084988090878732591560757587987503078463986252221806529582446704790879493985567154378440881178110345729746783216225183689318928767001678688955987753105167442365262969907841543576136954872076109369588272399822151543196033646447197553321254688035589210725194536513874469321096311498738405104795659021936221767976262152855281435720640276564973456785495223385539001135199854153463015910408366186003449236682954592139846576484345557580923873051812603071728990601455719083089372975506161005322606790021445367517098482485510999154206683071804684657367895909272447960499122214476649500558031145707431092483280214820178360626067336479829436284932225362294731077646870943866367500196742170275707342739143789917272100300351417841754068264638733678627513446943751833876947040604906023737493153078724892529537731645752945920546646338459707197653916365213139116017944552107282563020667438660635572256730040601768566994071933401617230392961875293951267613175262784233827302089490888157232155834582167308951427549935365196851340988004662293126863320511018850495242470061443496082379644574589119704597405955939114390875497857207131697304425913872205338933625270960397510500304351572839844857378483492005390443978808653093283805520625743153310917623947666674472030191669377510981338800128540835886666697634169861655289701278912163494745266791637521137262011791417029382479891979135437016893021510525477818767369377264373099552154434417690292057197431556963578592809528241184006105704575986225278649421067959328549827810783084371761738511583095115792253270939224203678866068390712582660157282808339275563306318626373735079537082962122877840095710544259449280996344506570605680595037807721354423513482636362322811415315268695559320924368037686084903131637889803839987139084750574359560912260231469712780664723334370645236117509200784365329819171969313065417044831023901010041943280828206803934358037152684242228463718703527620348660294528553870264953351634591211785813465133346699857259855579502109782092164101376912489136666157493716662366183455063192725753743585062013422690113895479023327127905393709307584023752993492826434989154408214375402018466676526780958069074292688220592655444456302137551680538516431080420369843399912915861447656986851570399369805897516062656059452700801129789641516484100467215687226520871322036289766770541030382146030429444860043031062111649852781408104024486144938276305439602463652373849044572486372125615365686732285950700083501431562455503856590894677660133655906548924567457529734243893491243471570213547198996478128962496584380323158024998206749261585669612661920155454148060014908328981186255460882471594268413761817185248949116397607456487323035566167138325435919020658612765198530130237844458878241873571859667825647623808470746437062713547923150106814424793413774447210654965752060656507050051261640256169618834733872051197011182664128691072175929388983154994796823457322680708505287563165422032723784923725494412517825383212597789122662513169548363672488515178282670213978584542719314482001350057892213625219112108650257999857402799174123364168450344719673288354392701484594113854036783992193956418278016786466890023651214422834885886269217193657520709126079296897074983049917883572557105420035887495793367489053741537329932906255101309781393264582525731706514793542732452029265860768302216826117049499244323876259303671553458885340142937873353910134110735996952518377926301142832876609193485581507255415537395732320503472607961224998621284027793318283004764721813645857289107956261111972573350285847222686344327550146219190726709980150195555012980383816982667903970188622510109925773251392815837530195040849693443324589245420948334756888213233479893348940637597781704562894741700106756604355025284092367025664550742586308503227053895483040797858542827660705173376623593347922641394231106578451061556998456570234114423421868398189105073492128011013036586770746058166049382137945507705168345943809788657727588161623162457676306429453960855293131521303786420208597765469371178096426803073079854769995992351305351759279664206167142811379150079798926441342371361290931074784795137461225269454133971542574558321306465684058918807115179755120951405078059949480387893751854315083436999143653321008495378605329970644307555104290143791134439835789440001667173353791762266212526085720230543243851697841014269637083464094878489653014206722905262477562908885406753320704219536481056717864099950754740941140294980489065181881778949971265085333933040912845378993086666382162453079394942445293009649627095183918316526077920872024524862584048658487352919089154702847368021856358147360935449096448265039546006553114086304422864546311399394041326170493118705090415065987410105251483006548926159753062629519871632775771099237090472984702181560516009100733586870156520581509081862113628644862112302396647532716556304431968712410661590415528838714254716544330229621203985370563245389656757186226462828184780433388145606323328767611525071634758182816452277219792657942920337244587001095087690587188942451474863343516906320030932155089237963882529810214253815780554650895956491870202745843443856269574958447625619600597348114788620922795008693054615453148607593772982072754747365628679836975211935365960062932827778815917644740415585238059668981884464106467039498927110398560984763438374089068086639873495330154658902115144048802038793881149718040470746016768820669326291483234024354148565998439296718055899666029279087349663319726661316977118078710025466616061163290802605050247300302549931204614643724998151823589963107763047458740382734681613599620098636914919144838772401610485788927166594817685163131339164420469196195763344227528409935145083246844584787687110177344610365969272100921009562286007634054621073710755810672878773077842686470279286955952498997273569740537374620088207713644467711627055292945426331706355739861081382133835014889555846671943096437871968588335415670654319937614001578464907458141700528664545560489534187800480505273728539362541982268659268751833383370783075314136615838573138710289828007655019993156839010543301004583453549121333050021685496642322168499173171466094682355225029242038971850739302808926099855163492863247460251597579867285375963954672774536112882518712650479418184690499996147322836418388134517503051004781894992725386067718919344579934513126610823196561760407894832446058628991171762581308327493663502831606427257776184825336068840771140962199374631939996342621375574446908010748897402351602819113869676525316560789366254349737327122717078781914797110419307517555232470420566331205578079135066366921608522370593028890104312595177478025305547004283347013566267387261020842564068126112521052719533208084097100651660484943934060904325113604067384687087729157704230392121559522591692886205754107453720557198875574296179477986091042547886877803875664341522439386997587375030988275923208935406790666763700911060644621392907435878910093910698882184679564588552529230818440571257997063945362364689232959732357825217690110615075324241612306094530135905672494257699306478994930759428337209249463996716024864677889711909353144277782990656235876949344382491653269440777670017994791121497532774858804119748684236157441292450832938361874959653770336053038608750223707155465962598095470131541540570651045972280254201442715489651861218576992958777322750083193235889823117837301888159146701140685984833094479633002336665759858998799265216363619312265324848699719303632174414104789889961802150266777538946410872750257988048704201857638497850879853422851656304567364590978476465987689534424233772333188900563538750061828717135397266857610291292128497662545489096120101335564548068174617644155035691518174101266565936424948537213821443326364276056953427231204891826650622865243885844454220280451426441735848294882688030783935719314064460986430291503237216200067097876786727945723898363488505301542861863057837967925614452925903777759603579906265119230188514392763870648308530177179572989905809698674047262649235305663212023226544266333621631416145863722714992490778589311093165577059173821167759892571634478717740506891198662337298125027643634375343482167715278543763680392240646380657895170087245956724453825613802453268300572688091562365164992068474313333552478130499051744077531258130499877245037708797849098236349822405396020442018149902006419637344162218926603163566327543157982818993756926575237269995050550098438116970876162819168623270310894294783600435356186537466706564153708477073521171124944993197703876420536292105228141248981438982088834303351046816498516353763363293198571011140413636740296854489731870424690901551184075159693728197942841769534294544689306313184426832422066839974334404305827502680264580291649561438064590757239264004034621283760787840799629991172053653446767032731893754730888470093837040192176558259269874102799538670411585437191531998593954866186209534990925352214575742870537138455289528517000019713107666681272896296600394217688331063322553462193675851981858986099982755479463344098324677794033216820258664469219921111572999850622546827645746571399667240263603405950177296493839647704093919575536624604359524235277059099803750681502216941299977543472076397219156972059558512350986067674294558732967907780314361123098652747951821846829083619175710382363139121041933204622797300494206522224432129540733901848005987444581822624904817153809094051111687695369336373874106236262530259227741586646218527373051572013240662096363634108523627764708101260450385847967255051191477961021347234153254648690884841816757225374374502355269394604416325942279207840289377889210449305710920988574131137178476288955730131237455026921569714503982513258908979381611513890992371995910204025300155417061191204062513540622754322924056556329172494335910575633015210050440618544687962236345391362467406910234540313187589444221868901265902324475126314018497635920619114435011159893823369220081031809637734395963540184093320247235872117296429521467196758573117500673500082816317886988066424953393156606897681576850438827722921394415213658175942623009338475088757055260726216789068766905812760079130300508992703218784312744138425306807598032920834787534950776889224646415446254117015488704514571965611025912285505908075725348999434000488992155644934045001946112497939197834577522629298588462121892314856298230753716661611665213686781021668617169863224511877096267743551932301080525582932107968087330146233927383838252581721489582398106539296704878762747811050128084119757128909575287410732601062067596784034325467765069388031796446516050322916375665437036941412912936999401441834497320887520885310309760024163160466423595354723835555352030956411384623748085089126704530598010778320947086591092216480583139308511048566231986843101255829723855985510609877938233870612951956720526243321837743870496903174732918517893893983163088777857470137828476364794903537333711546842194479515122907894614848833143290998205178056336409307489673019821144366190881509938326811924262895495321776722391045789408230887493856796387083178098944010105236083444873575657752673507800371698444078850645038892759765836459032772964927408756269453581066802827505380269860935734120603933830234101455146044706381008785413650915002262715112392272137681643420628267407735470388209561788285743750389328038184933920736505099890453181442817980902375766211554651449217582162247842499478889246011044091720453655025508624437548753644129975524532942199230575270878564848421134689406672296850592738620024150436327957547419487593587505638285787505992828837560376088975406439467472275162131433449260073834707569962574580251311251657867188480701247352128830339844864135709145812269073139644764756033972975655504366133949963497177863101380302081351417761935307067820869084439645311807654279060964514273692255075352693694980827811267340984412042781209408954978767441043347483830879386072644527172205148396328491156118015346774811041136219277151163372866619529796148922985763087523260015405243516215883963953486854849954888479648140851395401896250033674642976702080881089551704028621697707966214782028689557207628787467839830757645334956867018580807422693409143685365327606152619468342561555187896302827700077484765549745206084078297368611162347550490055704781441005719573694987923860978618603774786028910960442663658663776151117250573516061788913156456992597615650555365547174103128694844567051326613488739993463598389867962069013060215864633987092921705116263183919507462612603816620276822243552384450209594214178127842040896402123304182989293259995651332743470022799629897120373695727442732971352571886022515844180006759814378176277893345792584646895482324409322667789805628108668803174631121051725902443192827812355156154230661606741109343895765879564160011844538624935515778315044069710423237694560196823156051844446069924844455567592613394987677389892765993228450837220795748550437578975504283734243756712128426710021705963769420976327885106455997549764773770933802472980026941977415981273106261263080954439598366043889470558298806599058546949201840312168032006022300303811650938513185249545610089067780934940261885419636836235261907100069269004334128883800089152578539332451608699876057619818616360231993320604343878570612974343149597077033019563744394503677617144045537626161519877635520969409866029171551046166124521541562349675862261188501689626993524748628784952120266652920922118016206347986224897474003952714009786900935813384719887791137661845473189670456141451018518333845089603563960971353565346526032614166769064057748712169251667574765020653124023204839178098456920757052148895086696480566087136493763246365438593081584967187743516665187694711763343858225502460611448825927968781794024893022872845091719170593696560060787182954936332495214223554216388723825329097455153190354600259159481107278318195964596294762334189261253935624051649835508116903272721461716258221743822932484422634763686514797706883786058827627120331662911291626651600697931773957667257716980427718937843348356777454319415592570991068881475492571065125590613981059751822943034745114052340304394078427441172921774943169902104905840294760683462673904324999786287784410253716826883706283046786505163603750907329316047656742221558678813122246237429284739294631830375197746298086582632338509917365776415351379417975605942966363136172599139999682247011767200752069058250764888869271887497891864430963752427456555685731776675922271506601484023008831462791745352348437825999812949225158781686642063317966417775958421485360168586913859839438303352652876066428653027480901801927646659918914070384699919839547209745556771425091604733236114592238808959506702940474249594335024192505382807668140706960376554922557928581687892724356665278856401456305433298043025286341953095389706177983065717051700750536324935213493954934739826139784702346830634436493186575456681182090096677061673361723412528360584907885917180246284372036964929947366256252150197766619940200987971746918567037277574077172855671270056503772652303727476952114614368110705572601681005920612515011880406123242679793304557877952086121035276219581696729304201117031160148670894797187610711062697950883949807985132113786617773783536797224046790593949532795027241327126127497053024137205775393103667286791386218636719119003742187916060886305709424012063228785213754639909899236190009226125288448890851964120749878020440996085664015521692513869022774959087622223381083246640783438719538713232085025552232973728641503571032882056467388811441413167436827408680022773979574714778114324174535875164087983359849881378883099497462519462150293647387066048016090027572229407917924632198856163954545203209939336303811834409703019568204554302561682937994344532352040726586579163374181135487101801987685081319712886372183121084178065512260333361102061377306944567582738324605967745941459867225819234589475581314491533383028798711493345140640720182398524847901251158792888026248790857297398081568090198918057936158306198494647681122152046023015424497489646030309190678081020138955845689730162853731352255016818998390699204343153483382162498628890807204950162721026637685902329371364923797475604861056128115370262559942920950855409874376014413884414078703552319198680362300354964874620581585590248463956197060230548231393960425810766285898686862896976584321816948733882298270933804908302638723582528648100064282484409369285920310873202872409812509209010778559778938091934867378091871325259873537692952439209991341464651434828359494331475688415928896604752849043341345807189959374535962264220711864208324424312725315479453124678688833981582985423462452689729756114087287816497745554467473731125040948227111202656353159567224943818886404519810692611250865876662725922349533033314104016892297724702693940601881260815624764121553676502194750127624569619263698767988172352978214623702634098780095395000298853504287388690579103139217116297168210479258888592731227749599291742769115028460868895711117560225794573097286148451931611726279584125199019932922458996168703732955059930331914735131926176881346903837211090875501507113004848339325079078128956923136290710465072659182427987857941534723636910546450808530786096679223341184153505672710744399599863813081823512902227023206059007765781423350741597079832483677383230517591526025613223370991120499252041855301567354724873925915049598721269786866770074586592930507966367374280246690684851197780466521143405087588496097755978359217130754112547276996720533015624033215622177875050287081185303812566352688225767702710372916453317997874816959616789529175657801202715758335567885477729235848682510785246704213968073018536400068895202702141504590878668760091013298123547133442718792786991216148719966248160980601736279543792681376783996553602737414658393663972299756071991357384607287188492937671259171126514249657592306381566835581207180949861357808807823740652895239451731271857005730536685667913909162293852183489507661863776814911918438744825388234299970032570585727320911575115125340806761876373393585828488758420307119890057170349654555039085728297175882072432729655205585088838733944591239664313015448378818396908862113324410092127707473016109612890874989068657649910816324730264063523051222653974507794098748376918458442792095941742318008058376051502922860474305777848486686891865929262479696400421148225152930707045006523371259423314172453560075288436651519180080854988843819604477402512337907844224134238463606667590819794322968461883290669298599033640044898291606122496872051443009606846080521395888625298950311033951483981807832360507282653567086162223935692970117057703658065001635991209409245983769176057576264783550484672118975526265965746517091744956461024152329130607390542546100238540419783651759054046931804277061699799666546311831850780241027691246001058049585537271127425560972854333050047214096012664584224368261660739869232927877189227071735289169239641128610689352916280161442070867234880152441455823209385001850083554523158836232290974719417996267132264020735611258837456222883505446146543393072021675680072228317702708502411608767130334075322949856406035911031163614058377554352298306464915577862197928074063992701770802691094022985053743413873613884339614765352531499863609899810862101283008434024165781056515694242162483214163342645627337024520017633114013279469866619629113768538888115325726759207241462189530206495047101160249109281284300972217516336598826960660539216295561111110664567338572213245032203230406911423589541137464164919698120968904478472334984019676294529840289036247394983791436148444415543443872505831141725249097406750803708156912755790578837331733565584971074148692860189611226355053144882230668808635419968289687713084990982362209878056689068082709833857717888692155946200372858154237732189117074425356910820417217772783140697189815330151780656201350617940335215529655334091099348719197829587311394419597531382080644772812709660534015781224008302368640269823110915528254960368242150465556843089838861124393208059733637169704128210706106916485548297648781166083455052631043598109503675825468315342257916631926907131416047318497993536730216909762216253340265291499862063045068617199323431395863488959077111489070115392455502687865926661350900247062428051981663690874839071230363483666483882029243890190023413182828481066245262950064215977445949025822609547473493043892596640582943758731892392679212719756890447919781021796502405761469050730333788562720401246764457860261116610495805743547397623468728805476732844484092457298384514845478942674542202658718280285062838771396710969524248700103196824692187424641935383262829107405879109825318010075441286659485139408766859020637713748000312600307292511868154668007265460428529687632123399276602166701883813757923339350463206035214152473274082528455910947488491524688670428813142724039902332611230191123713536686477439786316217794867542124983137039061055992407845375875968636085600278979874839084850906026810406272517762563080597094234428533032439464912357786245262400393468821916902982878290207590533064349235053573522964824252886358615035566312941486138046923109987607245404293522092719538677984333166726990244044970994894442949607226332354071380870574629208684716737669179748958217741461071025139442269993469396573747042214498238109476200882526797045744864288497147971717297597687833463278400056376638648249523532232126246855371544678760047007480516632463680622168052085008960189149126503382673458211588698338214299781899176596835409569505588400371246917826866731483485470442927516731212162988791594311721876274056553846599665948464110765833523273566104976879987325973806266347982077901779036124688672287025258246095904843080706006934368518812118142336744312270055981112944639081099632887004036989422592022802325739600916960582896648987426333998814660459748245236351049907905666714307690690558475511083880786135019546908459188334565484079193529944998196205050160733103074177729565755444030419471586708218356994036896350175766386320773970089359828976273435768311469593557197058110123402469660501682210058310274455723766265011772680190812365665151404675156144772298944583258692092551244867008743669766518976431407009578233791983938364701696609685752470409924994599470187673677699830074855263086637672772499519824285349873556476079419434303449780932716258247726467795968666854831558664783674616837512611838128370479145362915865516453590871251201864969807071838183307474209266481331154214513749570205161925089309569142615605483857524514093953380318877651836134123166800875649030779748274524254503888961330037637033815054597089964081987389554197228347084278796273992628906511586851961105906913177468739780082644313503794163564937877124428723399006119247688989042797847680651300141634076130117459564101344729713218808736593468804164697200874925427598999250302369754596840798783354528366250697341336317314332298865622241523587392747867657291157198554015915426878013283687498223704643698036466817835243351165031097981168387332514292123954895886156935362725115500705865652717097659283442396444357928572423724990359538643997004004691182538206210066693525008615948794511906327966298610755310635790045969343332877062566727305018996072225533712842019976248675161427315451236998021497487519133245960194155198128317906234493544451009931225967809169708711875897626916788104123875657071369932355729052067294287574250511119367832148400717111892542526587137642620328788681513096415122014312112439571114117409086521015590756263871115045584752385539038999340181190296771139744328427071459880590772569689991863661959470412588848383731699929175423451776227471435155841724007080745886215429608312673051657013805352295874852724458909124265292719761540391929892956778238556932556266620816674662443606383062087017739735556393582725569885664587891797253105504387368906481344570644737477010527451015904601345636762157649349448452811878940971308952480502595909769038917439735908432425558961547809622754942326455162858502290941521349087278506566573301853274312716549639927137938968734393402210386652135242242783518839483259452650415639466129804880696362288393102399212454087394060417992513132917545816814051092498005892311177678577300632220995021603091615833104800268317888048889821227564552773925201979294382141186903640965496543539069200302436192115484995843707846169427131484926698460808969001211489328069941586409876796000273865955326376609745092429705888456994811893130918997890247806409476596883973670472018973785876023506372169681443675020087079866576601416375701969379038500992241907688118663453616697173232460672679512895470709429057895198991726257386872720503054901403782433205413616242516031126006277424736474430413024153386046497166754401134161228469960360304798881730676036888176230381788915723950826321155003363253833942801183884647896478836187255903007911081524781531040882790543564867157324464046371225893229605351448319576993378514095609660457644562814345165934268982826465392728724963385640919172993435258669080485628050796998509613101978192168562141411558785423310438369925877161224788932037339106577078680460894432556943866671936976055367367882378624758960905351778288852903094520262383472474362911101183443628159409653134620371169409187358195668675543178293271807993672411443790422785751246719488054137231237639908666781604357525548791668583515690180782206341514359456921482144147412616647855713795137662909334769237902460008828385727184556061330363064788197552694328374086815007754514620673605901995099632154541646531426446436985133618610445021627521719703988002064078459984801772696322870173422034562743693740680432686543450021619577418376291808515228645033488154755352545611475423129059434199182481699811064558281290553182714135756015771712633236690876720063685475559334020187494690139488917881324990409761093025885037746045062675620823503360683088237237194814029336243547919053022338905846671548812507874315740354195054701880225535283423694396452722159767050670968800868849128608986463658000051538418121341097732458720701812626029504638458595053556924779423108773496204346091842644785084943410822071859641172800654564933479936052103047381109843809595931828124310384406353552354993719030222297254193260403970390924446248300002524462145012322779945685586637067457676474794043265133095533786807101925761199871377939326439560231775292349171482097486404028311549394564928637716267853978984254984075934576818445442451237630196798567937610866108667783344518536425201269499539903121986849324083679150269209079637478491718461189253634041398149818060343460906808630748234573049196791414951619480278695606373108545701157971166858648580080521135951674201176746960890386515854171847165876404277050277020610700527994339233052264916453247544801702433808034586003769328827155589584887894006265162419324724688464167272406489471917183558677098683920521981821741431996901973854516732765702412317118807633535734279034270450792032083546907351175502597138833538902747841330870507096950853675051024618001407272088944432977375325698216463019364499360511791229270011172310901444949700824029913918173943003665053263699449158916390135514710152380393613405813978440657862419179163063291415291164418175689003066156326238781293579202570139459169536944556409002588104416511406458802920250722716950538818154909328515194877158746639659829120351738858092478801946464663515100997081764635070917611222779669382181765543619742886119681449912213496228045606119281873528296576939799981722811817397383540360303874112364014888497746137574776169565328429539705746489602585598873915545363735298167293782212261213408953361848951710960572662273405198675397483948268408988188030746798321923568110099125921731291892078223583907365078003667880672827156211862515163450266587943824980195699956004843045986429158328678299632977582783458020360989768504865785061373357022376443059857757024956362516107857771349413960550248801070322238260874731002381515732404644463136424754421153279666052792439166905608478101103324551725827072927760658246841367915486476035327787081438941201324053062170380504908312207746562306344979389074058392510467480445366691310692600665903275736933269076092255298790999143220061123735864923682093494678103529859157875733931723016456244906637170720409365823080528483768817282266038873409449414900515759142438870099030446535433563650042937490980907488032489921434800352850843269835229051102296249879655027666158296805405266558871709466101446146996367307846648650473189553773394444237203864644315447906070058882233085667946245235607971086565841710385616765023633127521395940713260319039504862249766943290183642527766475792695760933823151296693706318291513869779825903830435387556403331746130581833989042931035466626352987169173057845449485454148011033491683806008913045047304395150393916740741039717209131804996826903920068615422811168507244902907702354267073702569241092043602479219710047051071548390468923552818747607207918366895094872431287842279320466371645533782197496090634209277200737768301997456001452040918959137881789583316985708746981660546470415692498241203166924156166651830533915024994144792332813886433814218590922247867620925483555220497744328808699561990390594245707228455681608352593935679023010210442002068639620635194918464913849185652266203239068529043981227720730636988362836650459312129567640784746606229228708170531291666928900304858698338820929461550467893354648007467265485701473545212207501773458588474906585112888302775789585145725206172096358183462133606287852708595382449997107198144710633679684871650107442532864552065443649496436504090655719524859458377647242875442058911426156659467254463851750148410684904915231787113634798556887390721970848018304851961406839901618764649932534843772841593303505708637165023305510589589576833498231038735909925930788220528461106316476697447758063574374452562574421657991299583612502486997286194395466608998443382979462674648161720272654682810238670335167388060312579166657990770977291644039563158099477316804028763464977792754441566549603349433740690039848145569083313904514209117116932417869045483178110988213321763759294979224516082398151670548898805118025870119956908744803433164239118214877270346565386406564287233803733171066746668823750035760958751718702073129270597988632593927055704563499848181329170360010909478433595266580848361772684326798808716645341240915118800030512519974119685426905976610740133000922442603718555924819692849123179554132910358161393711713497069340206050956526310141751634242352188818282904280252251239309356241359522680518387077130631474144789385826401171291929463790198651661203992925143065201893636216720077999952362346561154453929603336829181552249431515965599332112996393728526627246020565381978555436012139331305456167766095775744072511634476085324840337112617753849522639194344469516604090941252713223857624429727464105076692264409385616679938545033733276255820151574728316793734832483332166391812497774285756572269241423499172613938172420341411088661914386621324193470601203707576061623181932837685740475475927076668245312169647373169090118495483771981574282915231006246571167907416120915752760618989695895092747734488674413030205780368402724246562155175213211386530582926315020007397626876810917711361160523633547442621361951286518969727757606441074254901309910805180956642337279091226847655823126553274824210755307827698302662522319967192783807700275195550019992832906888811771545640640136330494832609905941305680042985493441019867147527860055763115715217220689638864116433298397796475659259472695838634984944605745741888421561917262123108566249972214511224624775229721341297198195656489326147689145672225658324243335397148369596821772749565062207257912410894645195438784515620737675832892927935718746791803779865781587360355845484811686091633104655713922880713990415346089524536658993576925182936987861021717578239872649910190308695582291536600128769828176900938645148731653858022106195536556780775865965934483175745419412703731289695393016644436441067267613437149241761401384807449399870569266935038584972536252850776110965995830111607318298024626559406719011235377582745378997341191211615537345053215329897927274765212235149272312978031263466344333144440030287545254452264486981543155925795145282026037819199597993334337236764852933378555319177024905266467389334467321105374128039411465783531640340153140998506679817375228207036652864848838978003383379999646075060147704160572268081481008439555685901690864140119858793981058303133536348577151354101202214269408790309880763886640103338335069952810788661912177693099534808864756391789390999221915235434292008069709528720678041879145109634274615051570430426215159722631751317852075719652235118176214139413570954648185050648589427273513044237809881536549434339978432759826234110694603453005382982902596864817059813741515143740634071242386821724219895333908970408349865427786804768650235070815268309087554074412252611460403616789344214598050500406934492093557405517613559511586050530279241809847759749716835562442679509864667033309939512062650060423746203024246392586204574344547684246416046447400598560393921560484031713439916442791055576204044753772497432222458708919844026490866951108120877784032393997334263634744435247693775640601728417610329131710980568335397298365382337416247280708189976618053742769814335158131727914705991844682164449791856938754087518490769791600130681961063924614593451862483617443799174926600325740144202074475193520440745849909294010537642428592862370777289376981528206378658696228137397660692375148646586713108175001278616721191729977992615428848792872595349118157870236003212253469452862620886512521624137581451270260953581607344530158639249823674189821422574823310570841005812702339264758484173856173867387117950275126772653207104053073839554977606131869947568336795558426558787789205397156630618538554371455659872144471358782127364814050143268449647462688609654327272980158962087643094871219270380131118264445648061551689125537500391919392805879765210233349780430323341140426116160253304275902939541810718592014356393621235403634129819141754800230853404063404392714271872749995751843073822410598682839632618757799575261397214525459002904647629318513302048082872281656630925310630920567989856083761114723546352140293863775887134663101689730340832679946978315241217006084048338570309430114148156578084729767308849851628662478533576893627098210454677943802623539853821728298452032878916748717925988537621736709357748323841314795694392709405547533615163326826420868520922598974549016387943770747858035795533955597418132703101750937472823806963014445552061777923736281745739357536356651134943355533919940194027523726069433240558580739990502609519398399083807269856707758675598084776269208647664572732633170340387227886298513299951244154961542297668171904543431442086751738002386913914154151835638373858841612696159645100768129275310181771990113314439685100991015074204118551626881073791930311902716688784091533357006089845293746994571831733193791885001998438768495461540869927964472030887315020763048601842785573058837781466532468426738249546431684040274999757216154803579600108183047922878777203129493798079558701460824041812430920861389964829805162107270569116347026494589076428592063918364500359429878479537924267620654420426071507692403785997184237447938651636126257105702541864257046644688665190627905394088716682513001994859036823221643305699322729713639274118032934377878667961696065682773532384413902787412318523514263534943715077071599138502816818245063775054100261233573922058996660595578099321641183003534580012331137083214205186348472984860264034137321021997012426808804356693385945540947805024285942612182715401277082587675185537891779572885856164005545538355910988418568885894493394705031057158158112032039800780453213215229868802769321339183353513122125945464359454480333167019572936700653139190561332737966289815873957157071265805234139758941921753938530323001969554284392566004946898172858864950973620189043050113694304616494400666201140623953314186757947739977050852439502317438195257284873292271879088941764646833445251190307480075113046618761149170997861186007151930563683204344339153039999521049720867601738032058185044344705708936163241496573881158047955821743660593439530246089859483508198213510477373837537389689557150889281449833165425386697946025025884481685715953186369331924498189875160964727400559673121110699463448079846986067015280535709461688889955977313261162330976257838418425386239947340938037420294433071739312144119790263821879116986921267752721264392366850562300955161271136533832327372404281930000463905357984341042987989701525761880979864320256628687266697827824999335145522340551513327285937955255715610427971737508311256936940098379887141447471328021135287833736783878657890912791829474121163405066414262930481535325066303873009091863146301740767876235223039510508712464709272292950120176945757099099202471981333006914357976219110642555958136049076794906514130872443280033642447686340294886901199758431715558138914378320596849754521331707684962400886438526837240759225363135469176070751317299320291916623956117971861565342837654248547551268425772432604200587974703443237400804693173311427867669039898512108009415113585100080187940161835582089485919414788334539838388762689266454594188665161664513123574618115771311992955716664656255503980975263795930953674616922601647774178287411267403576232160481876411239752201358620731527895518985323431213902926231899048304309303845112413630090003803971627167143558745915779753232505450646028951148452875838060642668648999006252514791459688120318850770728116976279575881492341754852978632865770633717071069165211668422944999889162032462714674359558489372210302632634689980404088637500359735886248622054255382170779627219651817088383071845066897862468067874061817603029947590078012469184760966908643000720998540219500772280737600767545966442662071720248476991345031758490049610961995922767760632316619750594812632267426022561594197501692558320673354195323714667882415699130342797131593377374086620089370176510438425265759833089387642828333501437945539396790913774797622330806942150479016147406798488403238488486084781453317591319525907441961442185905817515694048539378125741596691384169014267599650506798014721921654391567408017441957067262467300399940704862322925303585626907918275766389135006650128760383704799454425489727052493630200695727476858792169978210537555180384625695822680846604372299990483505024527774462045928998111091527783839981796572772687852666361225888447614144583941873680629759017952479779492069806840750819321348299887360332344773858397110858415519705334400749221242695234353260813242704751557616805777215679101598217728869686751769321202158840670958135967275127262927279189704306289120882331993247051350508360572502484902147538049584771182925418696521767925050310999485972690795187340451062848149901762519023340219905982013206668439729194432106194370727382944624691971534912819786254569673933029236248562330271106330984424798955264248258682374194674833719691485734501194173102310845951966226738833548836477969452239301128082614473175500722697305430598766005401868012587342102025857088322703522790485705980847245415699547501238372135826631972290734388986745053002126402561772720502110529273443565469812807466126103171638979979624094627589403064349219979861790461477187584424658159268295323146847546634557083551295226042214564384419011843754853376924482312972851487237337477485823241936243071090263878030323274887933730369913354793799728144649724355559716613714527159506204908590105721744755030902130216659387154364286222317733434396913929462721179693745233782648788535451179243418053366986456742387497227230429916684897059808219441749671108359599274428173823956372937439957718137657657143988043542083929407753662703189005394956127379279052156278455019479326566259125086673961615452679344741329140060901333912521586723685805923671424580241016392634987640549222701796172414998674369245527196207252960061126085464820479192545058344739138300575407059541139868713042618328223373608204200349246544684827248974421588187934507349449823081319666422363068046151025707044706376648528656116155908925116016748327772252996073208663049313614173896924381195251086787437628249145600643350581374240719981680551806810269176641033067572189791620637746774373604188709329937890005898720334803495563471255205796659197727668303113532024619144576328097208876486982332012609962734303501179443373662823417105143458571671679887721138093525992227010321663158544884000285692015203495719452810732958941124763987038203184619984651814421923034148239278534446484807773398307080280543361307042739363763117644174698510642514221071467924402462958032786293993840370909814817358172438589388238242586929981585941741779585819659315582157509620766049242896175084671721750112043583177166676755480870231064708419348569918922096911157536164717795841109040535664276488191594502066418695960617269490290599513861066295792467636782235724866547271507251117068435144050157135553604823384210459283333502118039639956561963005975346575226264005970001713094959148083967612107023791031317238473736567209911142449751810170397231486490852618135955593587050464862888795160422308549973719600992269120869493886025425726510898282285522832988223013202916420374656215393252937344915455704842783197403392270932297081529281533369554870754982455234210576166071564552019765693206048790860988393333974550762056666281488767770085902052128033567541017395320493873622516515595926853757410184607468790671819084639866565568167668239462270147397668140273132287613822921794920416573236186979940649286356214521533049126983354783260111748067363295459943049700970987361936014788806767431675417884914884981219955961942244386972567810314300911871308016796790570215760446366376296669163320590514845944192414838675369149928111290300903763744937441849039934855322720675058275152145584551937810306206878318919043074406800973812809805453448055456924869090894836723367973515667882702430683827686165635670046667063190186538916248264342952753379979417124058611196189146778777203799269712121037858287078662621362292903779973925854260087853755502335868683831317587167978624711914000178972058760383862127256377294140376136412789379847661245137253923105306942752325941354993320924989793409262331862509108556382206135152056278808363373327170916799259493910930946623125285655082079113167164792949539892698405212860611795771716492215600621687194758908905682231092108579440728978315487034252563463769763149059541392023737839825501012955075855043221393457854762051341331152145712337579115810211243078280098890960356419070807625314100431248770661541390944186354707890107844372901357567952290966647958873082622613520863251671588988334525571799702313031819557589812562547562895416412179825786350279214672041603708852432791589015464663210058512782993786410465502325424205234017324961531946252272774990885261492924900839387582411997487486003693390311199265090592246209897547684440786811685366708884180872704096556097025112745929761552067428084424536258027565911268106388185860805140773048137218609104416085913663621964201629056410547239405791875642908614202780427499364942817850869999975055821322975327740781285336662943147559573249393925241649839258090483237985858314791913445248598918335872708384530227418642938250349375986661615825081604272222872686474095042154741090180476964984164160408079512978988966319404972544881234363017775691118091931738494204939832475844967621211780169478512532596865353455259344020288497251564438045561679770828897587767377912252389295200405727869230905443944535745503511742512973586881074556042916881383858241700800084722038097818416112667237859909141985218811580067902297592088789887307210237105446436965469873891330772460011960864447873472217890029010190990387774911606383041105609212652042952878630566701406072228973431813089047346225049391740103024499070829147158285850658462269812256321650839900919398659095311373289112005370305595681083515212487654278010345426150699206961412084468729187014427035837413910776668308096872219040982350324314725243660207712877312213372043815443811528617735478608243100027693635787309677668502389616411521530469496893329531990944944533378044800565363448264063777055809130415430521753907545049127602522347713335528360436370634324270533529367954644182753969589894760364766772595197418279673602753842536787359469138146372268691945891386818999271697770633527914843896616209524861042970643212370856318311871465036003016257641365614472680692023947742449191621729160505501802191196350487295657227828649559600259058721015824637163052813712627227820353468162136768744855237425884791427663146840762424539903957521535239329063266521587598750314976620306746496017692398201166520852261154757910097424829524836567260117839869942452537299434546857221715488679212557864312875697550476205336901845269441648161654526959464095562079687499137529987901237250119705824049012841847091073528606138313443936139888425444118910408393433863902254654314434910280339252947192071054256120997266092171751476284086505866205556241752088615768501540849725500591110711996138146582161344737003703482164441819232266835417652367307281824701986604658734072151239889694459458848036851930303066830197221538239272158182082188041412702803694092997235417366632301026147606838428631196266419030476706977906454361950703725323702520199150716138631391479381235893113939014961474651666872806733932798410160096162057479704593309215479247710210329185460876259209431849881374677489973822162892775043789347333674399867912952587593847634114114588104042050039326257429458126274394316452969511757659411700334087251824644569936586902644134117803244449292729381648841732114664353323852620877527865610422525450573678102077125981256658695753427569297441747195197891633842877176956842496780065967756663277788217407455708250332880820007231431394942784829881679430093637920556155332978952797797827111018000354629110769867782554140944102885920564421732129505199151573974119333702497755340152398565548726204855527357033896526829214060060936148668716306966303760369388661208209792726184830163869440200559593205748141877892187650149470136824996453657886560604056947678821283487157721270500618870603929105067941259545698430338209480929642973979840529855970768265112618466673393706428172655187063520415906371464977885406210079896189849411325268093965287522938721971727961991577596205672658578704764828672905570853375596416963995540216905919208438517121062869756537725507138329370161858380805727663339529897791576648125421349045874121810930009856997666497312803237346185631231998533958838425857124890294118065214689112428157590392645427077202409879289251499461438781718119947460621624997282439080747915257642012433340702181088374867322264724951592709657817779885989357376487820093453286257631850658600023930024075552114658197422659318146666156443729852901465402917461286870048037340907555590033370776846199901082346972894871260491310279513707717400876405004925198432728202380681494865550158384228310103118119875532370919118989407982998294788189640401096767425154983747366297604462055440207953844005235918889082626979465237498653996555353493701130490768820925556752313229622042489209035190351032404788528999902902659312098353209501253901651160364950393030213638958440114651706964463152552797920218464822157473726448120197054640545088452702728540054098450093917822063144474855564892560284019606780138277280736650599895030698111505761915233116134022961755035906128984869881722059896509214515352720554961863796233436964354048487989683712399656329952456498074286550340997419306783669471105708531146919417069838483306684204224219392315272517053602939777074534618794899274240518213957441908784319141218629891793620172596125509913573364252428440892126404384066211348072098713208574458632492630239299814901944004524157604132538657247590715283399900836152532064493726750040355701891980120853539854493761089663488601852983134336265909167580642311710207302476220616063778215212064183354587149988706890498684132102469675903644757760415035226517036917879543062257070689694707123628498477698532683588483867600966489370884546415202178040426393564764586894685090918791580788002251636307384430911435542713264566855644305508552225057789692935683653682391515714484744810736066692953736264296907924398682021325094064954056710774650757867036612875168884432577446520477255867357462164837400463110675130319937122234507211715963063114806357836105311271720357830894239127775385092181424280797618542589242317503802460324789724816373854810684674070000322250973539205876593726283361210219263467875297118479039783603643280065600872670123604500482525581598149090370587964725910958749043919829624689263648942370106675041559583205944386976818216154042286416859665752750303000408499766432202698492603790118231383304592843592894471404962336154041337373121432717625355532604168530551074036846185427386755792704523587962988623859784267095094708886248326585936653302508015891418143300154358479329690722428832758825331078455112048049359530382948756525546587432158694733630586536213420096610627181414182008725639187663038688494884471211897204272721656454477811717035068687594788451646168860333982996623655093168986188893316302081580939913925386816531030365618008374189726992515216268142670478979391277846606984341889109474093570164744689651772831257508448511029439226574029834061468736952374227151554857412771605643928502694455282265231988581978949989257908127039811466760107591349229735521112857846640122211442313435844573927599119194893326182238583104606764389690676864093813310205552679988604072532782804878196422709353862288799245869491609993841467901049596783080961195229706358141456118580461544786119667252675547158867161807332748852324742514042149055701509863956211724690565329419519793019090073975748226355957375772986402254405391360664764838011196762727282297861320251718209399625743174755356504440225763513059777356810522178771211892470541492249105551862167714389473628793185912841101150333159135752659103738258238629121014211369732746707998192520720619202463297404826696556676250277638646563106446367624230079227029903911400310224818007332581304828814481267810056539456894189407404231463323600253063513540712602523242278436300044707090418487438589575787679509618101989546470491435591926502005303653098305876575552040459732473916142916855301680580578062934140513306151167714383426992900689949703953797156367491656735695786657942132058064700854704862180417062523678005469631043637183297184787933119643681666449562414169584857949217947524706931650154796539070960871947718189391433112038042552900428388133106459183987055266799719329946399984068748315422750426688408130119316289475549135436939444167477237815004584344870892413902720521198216963455175680618946629636042815316970013789575334681726568379294019168267666136392096982961773820778512996523217479244923668226722928920585589931280102763670854246839419268310100829494590732102189236388855315214108749126584071264528414269181396574744351741124534835160887097054807654667584072306730474656357392181575935141298952927696330162686077755031550171171408588176853597271737545421462908636140699642248254450244547007465082331217348320354796320102293067466400996035512865726195130354429643743594228736478459829239460833864737677623333662730539525375013661167731733767667617423397851642132094335273756706975259206388151241280629986136332052435766527082515749061148899832102427399722541451470844362170161195145215802324560950483249433134034278670444871880913380734580275688668412478157721959239328136241676306947302737043524272576420569112550615016065031038665449130828321844373634360566616183512855613861977991448586925331596754210091674136953181844515057079032448561927982463004655540773484949243121482661326812763194823184682936411662042830093577775689376623490256105796105310878118275913765342639899876752580699178727763583356661390960386364648600301516520918673572410589842615891338125291845323201669361583332914921743919116215573474641526878033248089801974315703121119938784550835751228846159623459184831441813373313249894072382265854230332945171149419827389075667190380413505691933966192311465376763108446136269646754302138398700523843978045489415008161105341092423407429290230114866987104705982901656597323851472811414090178981674717197901463890874720862117731472985561561990368700481006772441995479829782405903303155252350631972509655501409427283629216219555816032642463718214317845667517472957709950903067407275365350468878137585897532161435571245731521059891913895365770717676510915711191028706022064036906420465491205804511947492562478633906103541512627163923419114381688238488813201607956151781676538008489464408472244612792092811992626591327108577083680486059512821925402906303126276544994494250602121771614062037077893467885972313755723347601607440447087578181621351201316374139987612702868285840855232034813640064543292987864345177685439459870890680973929453682906571411446889247079466531437947828328657443654831029521260630606512281968691516468518310502735515219570991666935450383344472608045493563023112869010583709534911621150441172202617375266574952200311653694741226992772848819804731560579979221762616126240316857893808189255368778441482260653424899073415598139644296499924936603043768196307143662986830034392393185373884017153513984520958979328330062134262876415140444251999921983237096027685568489379419462308998193974262053201859959519282453165580383878275723135345343894204786151062810999739255957575587680495405969379185631777497161205048683155970998449719927260335606511522873694140511979426789014061642392131066212004996347765272341708215933865076720140827731783447090717032512455499589047565729252103104556718903300347215826543834851692361634380316252617128319528217890945807576355737854555962705948726743197540721645208923309265618183545049184095906540854430905162740938447134865311843680628278587527806934731662104188780577098323652528278904602834573351045819207335111593373159804901038617686894317128621064763203239575853435218184942802267914786474700206305202525799528606292380445810554125682273851606289445699184601444732558912289770879099365529993218219448028480519486838427439393426158304526276968412387931299435650569593604783166982295046453120262582051091786759004869658444231479080312712050287383377312881880520131702445980899348212608856649665664948229083284463525295655322150315854037762540651165506852440390773844718405376388193051815222521973853482939266049967177337374117163510408910125562914218620312569864545979114073972830191665720576175349317971280844640776777616911073190396413242210813140586344454670360952548636971241619426007567740949857334481545261493746964582954134574658231710815630889161890093211850666698521433509786892369637462615512595943800827389530904834128700441271343527205590527143496526262833042912312493866778086128454676360153893493238431824398715979842646493257935176154413652241651671603275492600376072347110669326880383514679487469460846183910689993242460691968093137980264012507359121888800834896152875211355264093000678217149345982555140430917867532896851242928748575962679104077204786403898656822735000748721987551081531234957861945601805786478778595756325261941022221000940056481171108314802737087091167471568495192681736013273704587812033862164211859071025745744783235949919106705471019237906421490368602746091011778109278661629042476136776135535146834989012492642381741374604886215734323949675208905241811674415353427913180449238943403064790773050675755788847359952858817798318632244514068428305375797693119623170466115810017469712194613183039435772019827436518472124347739156612717712162631208164316859479134821818734867960811658555397750729848581028682347789814079261969076677834242564353727650520481585472732744397804206397790021968420062115004934343326647914337325836311037689722931147538651342228677765914547895333267350135428125359969652871739193004514270738021842044019810488269049343123266559809829066467885302628016189148812685200834686561281383135303074216049069424778772924866002830717705152235172970880080304743115089491574451415558041896799936460012126837955983064515686183208520317351093537711045112177515638351310579139264580783656498588614121453110832192780347658499681523041370223203740641247236573796853944452668432215827170895224428706594373543343965276639357619769375622301270306663193345483195583318062723734746735245139710067327244549711726594551470457400749800815841445952401799491183013746625262545748997721856068741464295920161250623054465550337013184831901708418215657040776500711486792956213337427481804951601338563988176884977015459436382725176840416003055330752184888992745882095821836898023376941406039669256856044464830248765208628532317348671882754603878950760430537374491398688398371663073493606048620642414140518412922458167414057143270832024042505321257786851405348979153660349772428786004843779359409871692098183573249214191970522592558485818444599755427738697080553703302302486283781971505577785401896116138861355329013268468625597838547962314551850671288673894259600772053746913752119944750917158009205568596595941120670814854228056935551141067410822477990703362100135820426388355947570941881103036245826084655959406764215836477623219187084392632986543484228702394774915116129747130029503490168460544238556987951340302437056788541769679108034099242234446181723690079726412765438021917244218002337953722581477014066906543319400654503653837392971881158164937743545581051467951169886264193403697717251622181052463303931942243900938624060789303416718251446206708958684320163208239915489330158748661168966517591739533686138026340891081516323716098451243801576913705522340440622589185775554892810822475508423508324828689286464632251648436802758844387729277182444076919197969769971995437727369945029252278076002599046323402316455945367132657712629713617089659687098888457317612349892207461559347936746894292168323269799661822438686465234103548951696893594027963963417866221355900015150441118133301393146272822677663105094639109267104689889001956761109150234494048374886971847760425630455801894721671015065478648956162117515773619047127721453214006638658220572925649738736979960003624080722047278250988508258418569370703418136135483040507395160616296269877285737467322988722057314021272282128878703198607962977628552506476071258113042536566009785219901104988103734086841591372795523461821697538695217797269070807188877783084259181120538928114638805862641717293174670941250871581026225870695792917132836896937082319988178613760876433498592400649643065367892267197399742970736911894318305863258983572518435052607392171064196912592562900466051566582118991678810094700377067195935558285363448748390426815484769868119996453274714773607609996424855434742793008169151358074433059252008182781689007264473194506254380769320898140959676613294709421321087565939726904146040512559856062924469375978083248378405591979288310590782278410232595642313724006081537349917577027486975180173512926060234586746107513472703733407019807052273718816294465447502796611586135330934383720267973356274761355573108379049938276249220953938680114567228404862544806462388685304822033069931680078405968682520947609871767259609326638203605505235414959985068010538537196035723837595108518647914460010009106349685096773776922004887984205528318676802077622802978878224667408161377562233041833455568214297995861964185749636771201054655338489087472280997304709689666736793477108125058219386614493446699053103740906178190452550555289421588635250656908466868129443323290455008818833948175161977666252314479848961803103413357537178882483882671182534143709399607735571135616798848261237297483378798684669813276038056211488933422533162201540046225257957853274475836636926570653908318959949633263759770484575259097466041990850636833360549447767929033259248095563774828693965513811587916646989200222060858967729071210453639690385639862363491005442469099158442849717789758279091430429684257294545179251729568278799212649222177548445585718804187774971451058293480554482568812518140989259637835593381555964199595500810953731510761692913360026670848632283750459690500655312132029923442457818926272590152737500478772937955860211222603821171698650797945827905581305994313172730721549390462473906600925863302789286949783033674457299174495440571597840491044771534757873353082673501253904570800785073119223913497195933048357786176726043743671150653099516025556076115367515701873229003286456354612000150870706072972083220659667283096927495576033263725938554284434109897083978593510799811297694951471750023649820677034065713120418223925371548209281081926577707425325075442055043244727223828497531163788277155715778792131138336253798179387520517888868553534570768883179460804647444053945090437618184810065530142350009376238104614858893034014683864466178432639586415488492435102398132030653933861652995856436132927176502207693940734144712799890821722557214786871311313952388142034644769204982405676931977811977982933564502478565806193509424852730136976078715078157829609394899134289081152790160965595577969760337421781106776925110742010745754557549994832906802864772777727943771069288413016551760614580696791612551980227244877993647250923924979101216537699161833482471711682619973724613492286240502444314502229358219904667052502790611502883200873987958474988863811537511833087344653595649624895074392227095990521198913104007764232245366201464707465365608918075035774285535668154363470314584316431734622413756325370565664659853011772593184671068217118759844893202448123761550051259137160651682483443669127142351818829601199320281432877944395572367452580059362199691560802263734908240326087137072297412229775986612940820764033377623339743446677244384880481320395982690728345626972227623490965743917907417125970351421256684191916714564626084988819385472761924878537601906090237697646643634360959952383908311038103473799645259875624630970188300930518291491503781266334399336093504526027331690118738149606130059061146038810063985993582273605725738536716663607676667856722314420994078355682414446426095733611914016081922779679416503921076234803845133523535327551859599282471062965741201760821314597757619013264909975902761717465728356473358618192975134694222588994549450054694920668922562060912414854035675577135264135965675121972442141707998703490336232696139349332489325469539251209330873432002685821681000333533561441819960864301764707830432301522988799280487785576529909048742073458417080073964471736975263648574914173037400218567723416366459217217189987328713108127586374584389994860680037015204934074614522806328507603608738561493332793206512092690152094174762888575008040428956403484927364181276557317988968295535113538349583672836480303478797253703952876159256933015533667813343464769230814541440231013181148709000930199977601442433297658342110863880969675344460264639910937835384688481722244183249878908530370028386876637699655440488499560717905461169983799945813214235971294578295083869802718456151921500367911177292044928464065538211722566232189025639795574348644842844508495091763660898212245929876807689298386162719204785353546023050418937289993780044623354697793236550574413917118564409802132971138580575647969249304242371518279972668475185560967776995355188710498500039014428428560116722807054206777121872762536054360456866900593550223746888456384044877794240974550341044616058275820563547259340415709782747301919675402612587168482112609383257095274053086204987004944872697387236673997139082885042919597268995101615449838509773051774223850098382560652509836662458749946513553894502735092849371309823390122189754854956572783218881822250047035322616643210541486586469236400439891878321669943212394036649349073918093578905385741338104763953207707915108942125521086667130825401920953277442800061290208406308191409521484874910699833681950389271618977877405910286654359842681883467363224078902115184909716164149753776034698113895892324732362486050939054731396456399648002376979819051270873639787604405334674946131544523883267580723817560529714869512398389436481163483845679337318901586703547645209080394141026736224485691784591737853753991253759024803135568474403036235942732251535529254775413611949639687816961932751210433026159476468180704982741502099968825743224309116137603598957286059096538271485593851179513653680465691765658179604686144661885799596664399373417561180325413757729404066448355396775385032964034700289004978730196128319405176493841265416405825998046847694311550136629653041426521509420277676569760915950239385111164341869001416699052121541607011812950752427670184720884077942154366506426338918600156937534529002722025718251551681722413092165389153519564727404999964391165071061244090440765205070098367533864579700947538838168369173975175573725536537341087726651805209412440285920441931671601856430143270816200269645665237283505328788242123353702619763974982008220608840925287556216204241801948512938799989816631615593359555702627229267320046013705990469868227189294228141986497300030457957001853250948568718462177492824684163562868518724704101176179988215107180535344391622961481315890446018775477659796173993906151494996244016227600902241408350661339065334031979742530743726534230945505731763130185003226961515355676261629172201536430415262779869321433935157803897252899995843952613353646744405516881657812357236338613915661544400263130664124065235624915599376237959457885886801168781137698823261822656013115672639594987394693507231476887567651149666603269644256859422372846053069504021239870042989331351134821399344588165078183471761953351425908889955157165869541171545289259233732409538208757179410274373076155118462426675923624704739245580367136166803269143909200386090900726891336972777775465584228080498962949817930866618125165719332419435553286996320515605518948486519603789181817583616890954705472748605958487752868781848380407698161837741881372235751751523248008978800035244505522097601967136545960843255758980534982170550312857911133786868370530254286976914273547206695167394465111445429093731396720453232580334705410239729147926326477584990547062689663374608783068772518550122540587862853937627793538376356039548663820701844824655542096110970316445036293878965131640000007937012803241767972750565120364938897419548648377128617257639084580649230883762473694952802115568886039032685387771413647121378047452442222842464326201635606149932459430609744873637156070299346868580679063614388181324691264032110545786351409448816728731026568243550108931613046384023901294877750974644243280624961070658916924446907853309950431773043289467114639164256998475912456757219894794417070005699452738128502323154181130914810008139934776074458935042273737579770553448272363685345079156612672750162857261510468229151973182291562071136161639461142772189921222498571003581030085371357395328938104299362000904215654199852914158268672401190651413153610865176773797558843191044413554383400275058723397983073308101753341051812274713590144680793936616014287124884439505434930648774201333992901357969370893986543295831063606779698216364833492940027207224284202553245457461332037591320563870809168782954804740909068192680427827107854242647005229269208011353564904182558406869365934676467792110168856966729526579686801488313913851261348343831381318006789018867417431821998801397606780473095323442192464939377738253765108418776706910410215804645413386834730398837138948994848435470108754049510546134495657329986236530322956688939338648959717690224322963427985822475625870208433567095633649109346545804286331999699710213179310857472140424805213574968508932768452247848334963231106430158320941068388686092365653224259107621636752468744336623438405749446816835685237240241613752850730625676339020826481049046887081024165016070310402172011912021036038742431014498761675988583715075953816008276022002794445160935854268874906545179413870299467261619364355370225268286349360512693001129323608541437120362268027310783376547267050256009045475144615242186723498567835380745535365453064008383454798712363824973222630852838386056858787336100830067024897329398505652787717045752964472011458722143293521015109610862145384420043365199814069699619207469197983691550156394920443788889585092530175720173248751481200218594299863283005129460823581421669187674362644116030730054970445242576158694881510672420681134850251613684615524855059986026462983126626873489032775126119172983838547572813272821242297265524297207900884285709319342840794600517375480757824785475050686721941982967604054925690305986742706880106799024475982562577141905394214495233095901617336046583209244055348736189078187657085917753034669087520340165680331976624654399378249318677185192421340062384753357325715760515668169354002220244576153280860761997079541098336730592468631977493782330985591296258828061928228942323087065377098716232484539306315361379545313203078902239425970202875165061053668826301109239767812766570876333068285101602842258915045494121191086087210974850952626573381451348477408596297191028786889682771237457692094308009876712295746032881762052292979455658920474556177255828042171182127854107173871523932942661430869522286739105872911014566278036070120760960128873011766310675886543277763686757870237517184062556809502763621249095841388102095870336088535229489170629061154592661261412550496003533709047683810204580824381209048395846222723476419751225576734364422217221251448279450143437353456367784139067942424992132821475318553153420083133796970564949563855703184169061377303248973338440007077285473705008885568769486854017999232739688529888151531599344112196384980027805716203094693297591032039249614986559835341231850798126766084121826166645581740923378901261951310222555813397232678371002250059520334764904934273945814111434423670197012364466645904477413977130816664058084238382222397151970763563893904569748964092484523411096282629945268580304353815794125404934921611798437250696207025963467725139621741495879583885428629291907401786114061845300391016955446992312025844903605903739516798205934779282482796282668949122952766445799072213174169027791896848453683186708589269305742016849093575963814425085219821364590512973938361911312768065969661598328482272650195410283776813814430567151601943037522695452120055631399858496075033988721077361631104640974233565958134687189468191618154041489809677145967184975069709865570151822716769140625417895843575393031251817694738042786301486106140536024763034874682308938038874314762283577040575390848384323894682968642309258479144331407957312703558200263711709976933323007072723254989736812736825178421935601387790661392558417934360965638783083714295074474750522616405838542251138238256034257953429649117204228971433536925183198876599169393694039121091377370695906840202489429849405757360683850320799187603892236153888111900308103563384500234017167537413560709854525658716105625422747257746499835683843413929862881704066723760675467269893917192058420028478981058390617858930502083296194849664024207041696287046480478689327735177485494667373635205352138670086506856051732637097911613955008391989462173869565578210290418537199696927552102671339243520904418635858891142802856833689579774265871067566896648579543205233772993554720578468187729754047922609304627005605840051041469572060296708715270866547429856162888107625333620350052419553927093351368892696113576380820004527710194376483375170261429948554424113073447404889998798170879991611359492168621952463930447702612772725770983676220757268256243214715328884790297338586676087347396939422346703785828827988189192636965964375308091206660807736998369653726462980840624997743440241318692406635907319145565587789837558811497982350504699127739899462224217466720549597147473787890296971245451174715039637042326471334317826043754192832471185450271370794220414260044267213921802369877625640993872843801264979636961789295625866701951466195178984353476161226690854260837727199476032197551089125110527286858066965031848157543674815142272488915961336806737564845203490706223036143986920172432946678160429115056916505154298168878360156008674450234023522007028125633182996562369933008238922557937681603503548576816220099637436985836957092914521445886476222603453480425250024505134627022720483407687089404722076903184927849381264026671107533671265996663823440330002557309789836251051168524504199932291381087012891143910117746755151584656747919755076593424696208097616048919016143072095381977427486265082110361555036916197643876815761756649350741254267014750715760735908285916031618213798267663931327060439960248057037027555634529756144437871339036271638165362864481651411291882360424901753179747305489011139995984569796077440301420198361616361940000267986162667624749815641412763405388499443502825840827204300653709726398464032906779150998917335315753569509713511048992227127022868971612127178393235850591973751721010788332488583838758695198402480027173921893255035091396522059665823100924391240322946566248871169555733558970455689750005920661613510294677318605092411749992637618843841986437377374937708002206065352595446459901455005003885559171498543529932476269155481877328149362491823880051417122727242797191972174996573359725300851070304443087996367992891755082860270890170171854096003854138691989073645510957660170307217748089531852746258280096218345196541797463458765818799108290528383386718645720714354168025207871435306436286186221589617015384035429514261976839479775214061455000698837045937425195576504151171123526842243704631506642639053190973381985514940536748645494974448415649166447920433849930957451931719148075249465463030364353892435671689923378133247902848410187084738843867142898827868305700564355165078684563644549371696005948966449009068603457898871838423518834479404999329349896766103543861148168480755504328556963261117610233829286754663517833143292101260318869608351478880839624051615381212758248518999709262399974777790750505581974185387705468336910783406466835269771823757546380343356630988102629105035727099928522278924856870690897592674257044526075567351000063908107108512845691903536944070770696827681481917620374161144499697764595555474712511587376126727082380758755595742752042084296048949800397600044396323828972017900468464824375433403590111977842909487380235948716923013097854535882569211426655590725764241803580533323594910976511914834310075321556271507005279654799703144897978712582402955289501525665038345606944990351789891711702336596973370105983814690712409348635892387966195211131554290306012143481882292494488706077216233571756319925980623590283567078519064088004607557074136294065856465607529741816947954336782756576149919641040118200698531249375206065297338451048977498420775790861530422136436992533064084830019324441683595959209923450740295956481118907345198633512830723794075782412046069548909503395422726077737455100150157311051089382087446649207775220969314875404687389391298059131307399439398130978517785073642937968837492715565944360203784245874966152505877399129399278314344613677516186940746615408035338522038260929179233013988663507283074681074734199246744935993346577633033008673881331905905879315304642918763657893589166121873882053199641506437174334417754666076301954300567984540916890199367454484167088813534020718738156967213407198029230799062661520526384286466875303367980703764698920708728882423397889597761320925182576273831213916050799687931710093524077038102523472990661749322278678196013914636826928277236044916225689236982806811055821726167323436427165842144886205138232133478474015690527564861479139051711958319662384380358550562734225131664604581098675860130420220139566728053310521511910460089030427675126664660922421452656083151685810775535544480981560031201913471634310942521159820649068552734585376555934708348792999128585660971013802088322933714871858444985490619733822375007375722993361769318103412652816204043324086541026003924919674350480716632160084536044251995250948848863053137305514247953190017195078489123254339668665707970675915781885918159467900114041015798025860708205928132213568628612000239100765043190105283614495412396854575061389145187488736629952176942464641580665397243524568209581378703292735197256683064081698622184363896468975278480259177663004681998754680892482372911131602099370146710470207022280401389969037960797716790413966025905632217984718159803316438500865972388584507478262824633088121006102938254086376570630126404082511386313666966933760673601766784302782010239989059320312398784334558387107718106271057329580784073393672430561634904758321708605672685181743925548449615284470050604661708498210625234524989274958865771038943035679439298315020104395414118923022816506735928636118335700233345618207421216372137356478919180052433375258878682352346092627633460362786075206013515022185111952211225787682560487790644601608551074172760547449341158584691732989962602647851921592984680274995014498635088887497536099112710464741415558981302373948687672669058345970567215047490335616990625210631845471753532023231216791770901040974138622768882239336672673776068828504707620206022762984418597188556745869174571488668820376146923658373264379230591131561580385729964508302159564092077919561979697034848198114402807312392060432636622600546895383337276157493568305193520852468951232052211910937416797547885740984514513437139039253588165709718584834619504809140794710029183825001430685042354343022394125835583020424008170992649730627295212103118325932479253358780238574822902543703442884978057685222908792597537150630802371504565114785462502850293721150962760486298970237765101583620339472502612335124404339113219875296345656574826892979372850274826300273193491257051115854043731454864395101750188532864240580605827497707045434755222911797048356836174096873634353087132965789923021038944832767148568638746668944086334029479131601987868408576723520993961744289601069665679593354255129874015350908676057911978730310933900175618802313234342371945901426806888038812657413640031581206798748195689820211438587829843591970632566112508665516337986930569283333586370431441114755480572223380667452973222547332789085641662154853093242456297570261964496136482592912357554929988050972682948141261950089537658341241970229625386682788776874313142286993379296085624533346696328889758442579157226469253918499074400064040787046516514443465301032233025139980517057286959121587894976241397757274859796920738374024938400452458990316363663237026294961702152110523977019821751388261412119939748032365722879401320737107564118223864735753294093712845690661145507836072160113295569263514364294991606497915242374463052024006108661511126173371701673288917783829486883148220363349222990117992226590756533354024323725855347004831147396339226394417366753176273616678358340035854830309729778772849937175953190235685367616486396350599327797187198867509652833024873173592262510132833473932771941816558662111005673311861317082694322995075245051506766934513983862325446821969921209441280813957589225081454001272749868733101430460860317778713522137227305302726366103423304212410675907196130676379009475997190211928908456145870414078266403002854255012373381708254544892888246421591326823178505600009520267911954222621303202175642474055689724519195998548656404158561765386433324222909423513544725682415811035586396484902852487324589358418989895274330291548267407719003482995324657655267837652905140382999958248823558689392423111463295640948744609476913961431232744770839060139196376468462908073122753769466185386158912385353288533641879623076980826131430014651413760678174076016777189799270604366302464358092379210745136080131344113497915153192573304177398698063066493528138181592666091095409680864352335195315308590490239678993608892896597371773703260330690418534910615617573600492553192067923491894961078608703177784982639268632122623964612144117983727183851789315834950732978353485369615790967525726429253767935914555771129272613455111583186085524927806291844049394461525190190758129072415973482340455840106100166572244985959205027003447855349909744493158283778603456321802686926345592506296869466026043510451702860968158666212385219447237373664257338788799522957067831975330728791573310483603006018249707043810612699190683903009765915712912621674799437278924999029837034420418119150259909613343335716188293790679222286594649275079981615693401402666600726301012939371425847132709885558761138964755100559396199461743681671555521000861497402929116458318847380572055861983146859266156388024352959149707185949885386947471605567721761308351686383986553627946628354319949906431879145383055741395048245364670420147923413107783927339991588231150371906691323436226100828621690358992513874873974675229470718004738941408756692221019527512874799762051486486991367559396861583154322048216498130083242862161989350777744598218281550629288997575970209072718071195809227618162811025063499425747838780888265900764166699743402217679784546747764916064799827223091397713722810164125006315415379120939671273850167027491905995068404683796929391317260938264640692707869261217401204414076328043533617683087427135196805389759023763657363267437914197366814226363707530231312248084227340907047498936293988834965975280766304777182004657919149990307060701628750650010058868320900647779076506166545796648707646921176435008617387857017580391779553631974250851894111161794847473177184694693190483684381591774396937480078850552042720522218096960775202789055344354581836752358726775250241394641730241907388609212507827732689464524138750880366178122499913291273936510885853906925849908040504546095621324717489732627306804907304396476888430455661761422692905046760249787086726041022393574284118040216487693060339804817848482960289453102491698865636716680080764110502360517653664005192997270203447710102201073821826458227259451947046070661553015969362011651395429662472592132271053665887094713159504318202520789347313499126020518280745711769371797110341190744535492843337270733741019478963766375372559663364159543069907866333524137154641212380447332257319876131605842082710368802821417504489597872559965485940022255029533367702355833325775241315945754234031002590480622814425325364210935374595159859743480860657252668928119665007886154301918358352225459683687299500580077650707778903511662222995741394296920474280232644942937652185300087883101165424358577405649552108532183708466887908613579045604595169441586103965871956474392525334956188882638391149877868181050586165812665311291108947681546987202042617064268537151070847837494863468705743977967899028672986754407938059400456895256728782623438434979062455875881167752468670945029489295644387871595781795734317113202344898586932232702854652866565066931064158446199870926753264985894653488203719873607228139458122773675599655309997264119302241949235990375544294082112601872350077025426053663104735597718210373907352960426439151377451831575118907473348866629636059478902807449348483589701491342390060957292107251459075370021846089339612599942283687079308786178580340714149536516639338241216431767157639711674291803505202843928512624660381805055434011107893749025417796599034803444893225631473237023999707321384046043938365538686835575052048772439313800924236801624416039823887250436367099849910580702861764367474851000974905876923508506196342872338105353161005679500416564013119166504625401043149162391618653934688109184833072781404992999563333628126380628660130132085602685349903813602960315698474692062759799522051509062092268025692591117246444846489040113196144105133848229063040390930138884719567910875413591369719799659765975879454105916009528647867517435487366143982886235397293715882365780296153121211633601743819788386682375034288646786814086785655506827040998410913263497272088660629699441460557546829493384737279747752711668866974344300621711513836588308823802195964286865695981890338938116706924184030083460406774460567609171621385823416740770921873650374121000870929025070212899667983067440261668775061508071235459965932811579489561489556554998749024752379827520589558780839542770056002048346697241969160666482430401361394298383308311814116175809666091706849642996402502275820232915644760336927438301411929981506406379569872824039261904133824371146136644569877498806023526716866853746429896292091072414285554874536735505934964813747734335072550376235019622264636391439402081219550947857557069304744159400460965614531257098023337434833893603828266431913359817246799444868528836271291924161752055097538704591161351865570402564277679721750861821059254524472683799168724776728082332793810469515658979464488940847390976316067361613789171878564933253367690912198913439569684875844024546782217814919865574196800873030502860417792272660270533997895578738898842420033348416981673353894942450473762022506658078882025641623638957206169895628124377371757723722339374909278523182930308664858830401718680176482046282676657741815318782217322928300529996963611062940326161666448366205330066328075326118732283654970092930236665892014697424028197785767614155822015182447118060616194458288689985615643154990400463412544635694369168346681139873967547600605270709757503758104144004354736669585481603777361211278510453495371377694867185079861789616061308349805049308503985282926473105158530975179175593615194480529566338012686310031312248058106573051968015979248227444058782016203277180839840185407920874683945647462085203302506190924947076798086016002726861409447445504815004442629659014370164789898942178431329424719850753538779264714695552072689646310362829165539655155921528347015169228407363195143907191139314837642241427420407559908683574081057238391031059797449014230937409726586607363601374485559255253939187837599710449026693883350604289129707968574976663065481207460395937524474851981632817456812654661841663100789983481471013632739025532492149405199369534341278954254025145750572247599103542531858431618409918907272680325323488743860115792337921823455935786815573181741912762537399393751237421882527703679253283290420385359194200574829149867280127980184276776631729753117252192191836251921440279161225724036032200354453514429334501882690127382832650451698431979472851347680347119073389059059661064370371350880911129352367481179527098322478855056978494675213507723289257368308628176551136891723591261840444726383521665412943110876658294156546305318168084730661577008086424724260519310725158785485085347726129477019268536329341925636567287774584998196764414391130587454779984847876526209487048448080108129214351742335009736001218118726155860500535918860978980274154667620710158241153963494303223506951277058577840215276296951559677276021243259050427201249185626600417763136153489354518996840859589400918909494657142644674392072297220535936284864460273521307167474746938616343022385021445078480190880751436136020335108470670380789637891665610940333501824934493720267649527908687016156351424237991196597483088771361483814618631650506233267951583743890029537231929496993102334021294416851858193387546466381279449544234617149320070870818584481944264813276414175473096881473025129955502420329770819637345685939419508195075821544155808808566563910676491024232486783379896593562742791045260163752221140826197897259631355522331924797575740700206304208326992806217177057347455994530707341742560842890353769672800191512433251421928002438298597441745191081880682711851378093592835124138867203605062855586073430592792636945497776772732266632107062238197640324806703872623717314181744761781232889140334833688733745337436039041745728673966150404054390926386813399667113544196211951395794810006884727679523872581648193572238566602368283015681713025296055215269327929014365170156566529655917898943881905479841726601361502126928629393016935994757156124032644494485595576893071737336039826460252900398748148746723749049604054955128147659484759446515745424397032140474557417195062770160670299594690483428027983534904422023752750508957040870798825404463636657507198296680346507718501315277006702123807916688439463967235456161696013740280821227983895347617318337190914383493565002593227200096277753924156334048772776658740124693680536670953836770186038658599391458591308748643756828901521483248271392715000141598645265159850753834124978284424145251280636778175385117413035815721019068160366447865172401346420192166097630636199863158451474613451199827843033931550954830200175582576875533313309115610693546068574817700956291942127335095323405478494068223050928331860265391751706960058098954741518604094166759021639488726150004635347204043427455398388269494858212475365512291219621554932254086709357871602648871417828528472997645120797325275403738453361730798919526720742249497660499360512888144920911823439107914471273540731105903244241794247003636872162924413829267969141249239741578077458159197902000104619223897037444870108893023794655252714911316824615843513645435630178896559962347213186629574923606303997822232187939700838698529354740996252805854734315926324235254953529699935671085607468220375120204016675978241835675415987914634295414233104049200419738567319396574956224700839564103495275143835560718031324914306751723172411988228809310674642203001481459145722006367621971448611914910835826667391446616789049471016624910287353144371748163345535942054014937996149739099602121379309294021821664223574078134602424200418741178013118000029330774672309137534485225177749070369470260668900815361457528782567468009141544677013470146103605286258973784161566226994721248227422988722779744597727698828669356036414401659883998129905784662408740041689247088205521755552819113107018559823240283891247912373434586862901041735986843388934789691156328200349475172283239926635115622228873855111600240616916975254401022148809785315836892629428230789054947733119079532610878000761763672297037996928398386437463361076594864220508175288086145420061985099060143312135252367958845139520314557948575128291245160529761121020833454062897739970899719746546302525410751356797306481561109545054954709619899343575050845819956030854341910648391712762364562665250218410451987652164184648761185474101676541173138060183372362786903723533755035359681839557496241932054034898546993155742853960810075052860627161750887820817616749228545053096991423772117447090097388987972369419753280785145110721493489513796858165616842650724600182588771946156894689610835057284013168336564002845134324291551093716087712541287730086773597542887456771333511262475011816208281047912923942644961517418190518406726371639196568828496173630021936895479766522181220534772635163253639339316550296288364672614729750654343303592951020569056397037746896580948756142656495706019142108088089916442483142480070660619287515144134301042699642084428473817114826754484653993899420229168229947983334314971493647367845908290142491078690143983627546238373476782791727063200287349390889706858040242889845152965620239674097582170210113291242802584864815642568748262494953054898179168294270138248721679765793972913904694683036369542364661214507262401969618650622452377395124415335670261833918261063254718838178231172109331300294360002424904106883870987101806987655511477158169072465488542883533340585174901328030148127191733693742663236245929499595936546208295652161889060603270743844362826138893754679292430484509183449196136245963683831373926721249256977299543208211410848670238636118336026493437371049181987784023042512647490406467799899481033255924525006179501207667748946537156746808913497291158177938262304228283173902273021314898868270256110356856835553007450260419728094891081159263739800366960004069253400179121626111467887855327301163626021143936371482574478483750439301343272593590915888102772788163583065305237506286329818143076594828149153254518377215432474526960248264957885274768930708821481501386030194662798697020784248662075287118539890390494827400253773275076654983866263706052403370120267517123757763421229479186172567693358537803716323348138481339660547993895371520968436212518265375719743413136934884002648741614137640442789044483284041882492194498502341002297052479539531426974686119576797424521065061409441486523227417807116281147037324868281977334722418208413802717386385870695719022762787452633126089124132898761114144421241414054016006915737877652196781501658380184585143232494534404086196769042394889574751376485538881798781101703787167166086276701196901220912338399820315351867143317018285435345730822047572265977130291888581248820228542342193474469813089205959338051170474575031423384744377829531714592890021977903741281059177191988418531582406479756945326653325635816822730019884946913517956978670522989727474320132987718641147038542300192422966509601782693338662241882979815286599992795653662344652367745411120747509395610738221110504094561834146003299761030165525190828594540541750378817798414985572729057246059551339110302260590170654839523531851377814096554599011549585586915331026527958307489273005152871362248411857022044423447857304313683700571014635578287246797047349286427768995285975047610875282097071766132001629796516710198568824661094868482048142530829583291548143200469659623944435874333055195651005851057303407933107812848507142273939049543965229416671612451679200457315988877007506716024709881048347024677544794605132588247067019550785880352318609315803054296304429202632974920853480886186260282348356052839212549172582170149690147491695346169327915790601134326289543433637399142304652492058770233535808252056909840171197695126446994425308898136454528735896608932938143210526210362504921634546194692470576889676266534683958367658703070235933125875009911196090040663304330226952685908040224465371602733155849549257894752622881254642613361299437213728099852150520124930660375215657083145973669935822413934638427311642434861338093096878036625236138099896174994148940379427501945970637367401916081612966567866958721170415076516673332517318471971950129376905974591099858002179259704097723546466711236373827008193369904118122155479408263074355804943981584076870846706685542684025020175614583738391737162516800745465816838622757577148926041367423797293588527636544797296661448612988316562727262095547502948920605323465919471176912847011129373161911451360663908001929713183067515324465449840953317862603977482912117332882894013136259717671562675231963996266889904364404490529402640942266367472578160829440640337287888721335430165798972074140478631811581178055513098092778815908679222392537468458050138702274718617978322090595089156660204478731978147660111377379454742332305008009318838500974132282043917571901119233494943299794165950652784386195940694554213069128997448234975036096765510510143695285303028096461077408058587090621337339937806483615868726186236835637952813731452174742697908912629727539472127165911870069985855556992128833745364329352681268616082192685593838110299131303673032707060334970101990230984539864700056125335942708797443152791801888960953219571340007580659246534841111651387756592916496224353681109445977274703511350792694481075194289962563549129453402248234399572214628278603272700249527699744981127785552703776784247698335658859589246122607716061495931867194997595252719267671686078136599216548259256423054973309251615892727399451415255121451542833448072122401518497799204664705075982770443721315327502667321827257161361605496556562398651957808377497664517743144428904213134977673873472356175001009183470235453953876691966060161866641645899050773180189300279401261875514683137064683032406421569149310869849051952506296935336806316003498193476854685535573728046158951104631990987051155771945729305042896962643509737200933928156541896322514538335778131095330238143210863291800157245590800567387905114880831503566769758938248356908525887499688202057181882416480368833741398828592761219389278814927991950152358919063373386676226624291217074671287611715415873674137958847541561414956580245604634392770121293083548401515361276211675414100875327818677258537443252939073712785092222762471024240029087391699441867639468226208692732469213220779301951381190150329815040812759902666221139434497906323328466000963530507616675843023571170302801362818912517558492244038193433127242262453653326934180663333087893053276474089406815553716450467826950715522582164860608462478863986910213620530378797143733799067270790141165246236632897723666663123626771300947906756063104637352863158375515450669069228433757087146486668434160058875256737567232737246626565603224362147020054550074754227556230132260580482097110320763041959217030631228031329106203391434875905862409317044197556946868360823716605191279682342158133737972349149468200877577367618979840316259998212369040943678178251268768812110662265261740139048659766732684775800445876530360127285705844901573237638349310728432593450420106047072843675675473261876762359507169013310169408080556754250455983007698959271824850472437768130062331039440200473307916128462543704491950672301966109747577610228879353990138562245483944728215016940484247850639774940268020036684238400305941099628649848195374496910563574532529922027133822653309744054644163737919460040492719726238522804370659648583857205436647543461749807464773931519475587287812163110359523112235710960013839242430783328713424019976809685589245194383035413057901543997640526820764725569820154597683609011270183039918625554380869499667944577268253922884366876676952110197869621293830639534427064266648001830426221186739278103306235498453381247564599753985501838396913597401818287623105199969887249647629016876918377594195267338895197717110300821615866558903434916934296942458005794446241508993894596666891716016164116744099292498545536053973616081239799824984148251469412141495234825729581537185299285238014422428801086522060254497473098722558845697687487470676713246085695818348883500207374750801579014210252303559107985708900319895929533338174442211389263687503320967306521536038327118470624599582010793867295614969958261366184860256954826601321043373043065305300507293978768041723571013399359587138959110205354662242761164412493639342279595559613760986996014697781450801713648408174752584328269409280553887305021186747690836721540039035345193681313555596261001639234810083955222557626188186509809471546771888284466705947100811428896404477562204484168086592842675884351851274118172450050925157359216782236464163242802914541095572214104218231590687345330344582279528581012058800967412568013904346860419473881894598644216638948699577048263090331021001139148006763453021150244453504706400257759345536319437169075631499019568482895385575421081033395623379571912770527743414273652201344186110644578802598944923885027931967170851611135248131140861232212820881147595807705171401076852159869619890601005609413639078098262130775412220504948443771580522304257010059913665886869261071756300141350727846935767250218422435007097516925273112550911274842345394615728616826741125084028452763579047741937571502160490123273594649662885487221067295282242610483488643389547289032555317264176942367812103615407860241147674720323777754705288324867955453128160298898755173921155553310737654093564903027971969779582474775604761878826748984058798418876461444055570845502149537554240959975653316797332184145307292475271110048360233882130790474353051371823347039083832371669978709414842402593585057537582029216231206915516973669756647006728416256976561633209865821366167979925651724212895762324313458495550779497092762916565424684241232469550628058185853312868071871361375517393557555896771525828791864338920763587403386305448507959239365454862046861187970156194917323597952884797071578866236649318090618314655101631743806000452400238757632060569735389546999793376690666708712239127925505430457724769578838963950037716712254606908047609452092858953497045492862756721292223445813074572882375737009921345349166494329549139984586266626054191935226480682887155489970858371605694350656333221911401657903232476061285885376670022572410503713887543696079516702739939199575333352720208895456496712410727974163363366128863526345017618013975265413415837677476142827430414377065574918650062782417268802759332491717717759644132502442294239340585420955348629013205215380862090920033733611465691298823524276975189041937671053093255892373437772521564878607701405794303661321258132854711500589634815842467685824284077101723718611868106106212569089650883092697143557184569716486694618866606977020806615932801459132192019439739905880697451049702103042697041482057361488756244261094831497267582336999301822581294470170044614498063903239256224126572479162370856676364667914201633746575171126341768294718650361361923917189398361914197994894277024879272487400330885302243335127321413804038939423345090842450905999777704188992876310286982499211717814370944713616550672228548164735875334712991436871490112865801925148342398128898972319564328187035378630144636599581712639408184158932097196794519759519609675485733281699552958218823014407808360330210568936877225712995523115884270584232915230044585401744741793059857533781534320407297465153277003841798024461998111137468092222867134952360398510079606205466119275719394597048479102660710363127258915412222497600212562380649538821529190608213423263383404447207512842850951418956760247237317007377488373250621627693351073529049573711406609425620830190986862440960459585333805203062164458569074330810883259072106879985334303479253044608188471165172101456744984250008762455338504201596391195633759690049520759895471347820931274162446348657538789329945132237931621267025283973599704260354507905977295467331450963107346047109991022803034119776069894767882579320760693906977867890749870430590360686038398365896817504556690137143572640862190989004928855916534196149633231448048822710940972470885172868319689508982591283575990484135996629390212382174907449612040938090797028165313502511919957747653740674462633804182413193905947754384740992091314706639429128533950558847684519242818874812655094218436011816552986651930582869006301201471684880135095969174639522248356618212277810616443815497263254353384779050503953546543985738785132835375742822176235752294408690911915276119254640362020200658669174119673876542059098024313550937797677595248387344895964041994844586768813920359844682952217358773810372476171970788887246953635652937042281059151141647995479631656795782387032583690248324465971383632645078403914817936964006469420489666211220484461740881529625139274975329569050118110654110488763948860937491830252938549592274444505671629097442087776154457870083860262248676059609601344208656145853016400019053851882537123661774251970153115063496115327504707850402154108716684008890232391227076008195568089525444405598439216779066116283508323158808432256111874471728843434340798132757998669002982405339579089086542120732893916587272287047049938839349271995771670902798830673664694003964030981485337254003497866417473323212611374410980051115006402332056237916150229862097333551049261162532641481545154032536652911271868925570402038301740812494938200725804481975352235151653231675099744211224947765262304376512304813478575657533374350161751670757531953030394558808798376336955295300536016666228889043595074968490054634091953367919450091638885135849216327443894890671182479230444472576055739519619392556098615092296000726020187290907010640875294466474405758075215767052296994967851875753162372008642147637970234319989691254313958910934446051108239258713893478095424823060546083934981413467710850322608883144227251649380679984136103432920963226389796660878030009284144395365825147685850908922322821664130654208667581172351778832277185456127019345920300249981460073560004358901686024110877110029347214088231537632861720791713830809127994760864903923616206535931297176928825482746102528360872914611183285188345918981775802468124322960785261658326203792259513462043150405083786129658425112986915252122676729603988077871925234028789223130568276544764717650226487006642599882411838103341739955999152976125927085294351103239038959628548579050681646399862828473820780296050184278577865015842122570787885135162896952814930413855034677565134080377017206504455812016801133325467829455036060102905612956948728174426038792934622932806920756960876158120763284406503695973877797394909976157316768916013321744968451097463295565816445637696913377122559574748381615759827943371852596042152411827263841871275215208101188482971498590223875200101860917782667883809761917636479371707452941606642216236997470137238438865937158973736905504013185228197312603729780062534577740234242473564459514160710208447913281026187711664779208130550221842814982142724078228272889255558834754261046757003790692769099300078089790196751243175818033183553346369675712631173723236488744805205602726066294424210285216236640364285602104150122228994066609795241917694317883436089015191480939064884605640888166148611443067009129194250785486358461275148743774155419528682345591946809797799773478643036815876575485383687745674185229138476011550749320692661623831009722406706797174153480995852906236366234133341331592811530973276505072164419049184189872754311836802925452791028377466859529384846876314557656081219963678164871568301052880330819751953125784397417012487818802422626210958911016216251909805836217158014161393881256719063890551416290349367882987650057281580584342609649979604824745005085481227839844648293440945111655162643838617638519753430030047530243422905127827546011696512178735908879891784063311970989591511862494580278279205900124898016800391574291920878559273131595879585452646851936815816150918156621902795575259204297735306917753406244326319881273904659029866627932286644982111989687312648742993703658084641077014425110024487082853218923688363396227466229157521016607459498971876385621974524671069367579422495949850510871025081489112710425110835738901368317129308256671866077980642504661391576346553051402352043060471217700892516111350980133568499442746660172270502308346388302138961153801938072822394379248684831438085029775950639084051569565351313852258122089367880437366838961522137275728165769162105149872934824091369470311956618495176029549508300245601280292365600101426879125475734409485876806497732668808173850289691711242089549279080400002014766045795784298423561117310792323335574156993888933223287105881135571251681203236433641814774953345939921816848051671956065134471429693187037510723639852687748992340599776966728764376087765734649984760945816038146404261738877669915642653077150000073769463017101265931727924961002331361448073792127913023578922686960950032439719080401439385135653451843003173294804401367036182627337261318375985197675561778112219033741981798678580436250421157565911978505404004160172638697833040780764873556630719853595945146302325030462040388485259949316568585132984774223649862283298661501789693990847976862895335270658809920174295199190850909819486435381626706846668818799693381384548734902967844326220350346904636271834153078104487752409461313757981865512181545760191704458633538473334402950752758698312868455562490063907371258655630695682519800047848349957916880901479110055229266026610760203902746623493383835468185602687948639347410201394057288177943339350578048560750082005779929618458585879727710123818506422467954449025728068869916236503676945492813734381444521142964824377842553344829771465073362797592745214273454321571287845704055620275341252781276498461034851330140125318004416527373739936189913219834738933916091236903383996071565845291661704217064638703382633807294807125634559178965562702904587013835501719620537547138599886103291118102670832838303488155783487778548753664088291767190159293662215445678612654806398458573950980157862097305890135776461553254469010860756067419045763167084819673220761490647119423423032407263326632788408536135158554243949616659613092440763622086657799167892604376037053160816200891718723759825864128654838979448255331631759044383336615330846514775627114203279611636519426801677254488634846489662131582041776940305840051876470965844517352862028386624761151275498499531662561229218151048792593589592568046096517000735025590814213805320001455827013893328140177954558652065030425916644850571407286795715708666503633002825135521222897024688141779738886105271810051748329947136567084307055969494412530945374997958234792627316848645114503078474107224072898888942041896674793686188640000663793530483662656651582283946021907882504689184891235409108452325962247245843661271796295437904693082567435018051331368612045084126250511756572793798561029574890022515760714077844543356801413688054825792508362190826809412278461556574946056984489354731118140589307116677828621310094225001130915928642064911649925722036264863745803351517651722991783928098413428663125949186228442842501140526172706577405432409346726421890261115474227871211577010569540412520121077499985014417631465036234933063894467995441203710545036469552492354978849335856722938800773443074055733770908381802198180241753977903218508628180388847840354901584001679550689152753270741631268614161750004631614095553805275936598658152322079657770829519656284879443555710394872825022187380637364767076680564297605562801691879350572100997965384940000881272092726793927397046664205776796433613065990439906551312754463311435218969886201519565179392613563743023960988103660140830817946957744484206960927473802452127273389453067662730435782311981019377905527250827719202417199516999448901554197713898070291355808661003046982220624360734432435562903814488999007873707935642507434097265795938468361538924613794620861927946105777184102298640220477297162305815955227608400059164430774259006678679376803255441966845178851501398678377943999621624693606235072679534262377785244951579832153491949960044339834037537133098154299695252792681040893074995556576311310241247752929640261868615604603754038051959771480576599937158993015264097694639729308514445212309460348044019644886148040002403138876846019785313287746101099961676799371196710107944991823165521633551106124750610046320562478059836064959960451716801576966639632456598523132867040492667316188403062655814261168274206222004957362547334853571120292540203809624618719896078796361834579379501126145410420518200920841490060099032950754615000869483527656081181953651106918358649743140010561580358286555893356017983570877904788942927459787074607534355032703288143302752858996410057737269219257959042961674974054881899435347768299653045196560671739965107372001097419155470768605357704565432047370913818156070224163508985795588388952670325775223614983013804512310148716586780568461202601832210665768401347344074628999490924069147346517953946055599505293323715642770375813390564511883005055318497587667418448401657123410710085480896701440081880989639840587237890109704588971776997409862568556592816040270566988410469838800605951036167548494048338514355651576434696498759481096203217808069243849943857025807452052436292369961324625446059842418830740117765181883890794057608397959558764550110213227456637541004475058108491022213734184830088314429038885167747386664570535597824520388187647929734212536021186716214839123430181952380326401923479524563748997406744292571280925963994611013131914087942690002580423529131377452166142503013231172746281311336666493366226274940284446301956416156343750395579628772376466044584036822547807374544204739741892063645543291395315963755085022085107279755918952767290838190904887605953645688689551189744236725624225294640407969859846686515321232486655335120185310007976305874649369915789417409472168600420330243255998681209947653601244427763949788227682187076942598276588116210660869735707293498118289106255709479932097609829519275565377933344917635359745374028751593869826177493373012755526660441216006123361432267292553605352580706458341715932020560284578943093693449307601224675908761704874587045576290018561557914095451523075426375229505963406311601318781349381575214505766770297232605587462418611877580429970230649948637255617681055385145545404766354221754080859448095197135250058801859825052555177335845731188333211994692203708314602891891846955796276081977184672836636804461649532795622155285982891499254393470006050267323511144092120867989512195582714247053203118618976915321847813120714342132408547163813013450642346404691203853245689496219152131526375157585444449432593823415623378309833834708721857595684871469127752367668788779578665482045212162141099837500516072330844328702952697057354763697855209524371466980697066644321387810368513742064579686954714825155598217997146567612438639330495267631411843763455808489211072525695622694124333689240979572349220659120621312486904930707258215594657829948307583683221513992859284761671584661324865974659731710787323748632102926085830200970430487490466271485898150772230138014985884228985482720669151247340785406052942167339888476177982642724188271138856719192749427387456323103893219981295673073799963264680043573935868678175719361157779380942437192978303004888752264913409925401174788538794605624190220522022633887386007632619570993551955232317832656581126456028673101215861534822923123942855095204407288278362383537483445046190190073258538826562734748372677498281517181044296693906082039256258621503993400233395071035554474844053586216043749193509633415720427620554228871015584582638153053982296689209211878817459780815404539443512815019862807782732422647432398932703656987984185328519655656119938728395458617094923262716624165959465469436742699524698421949713317715927599742915413977016701018071747195829153201546393841305201087891157500651522047888482328961239479724011174351851665564215060894746319985049713699954039133234640987705175965620776552127414699123164496002734500406488763552634552231242544926472097110252977189399453439069979101910614327613735382865433084793693735222748210138638732293170171930466388755132710445633455985255908810722773920842267436776028032140920389364869645226446271983374374027796868555427265016202170934440559979849871264395863747217449127790549682308465213424370517990953460005770462335666494060495176232061491190584986694823438271585461459611209229923627340013058188246152495006361698387367951637189175863072046729214648817914244111043163164624342248852936070707765904515686339200089639632691115993961963055816913375140342014215902030531335712429415198461626750890788202835096219038839288183194450746852185338763792767477577604358984094934268116740118263470584897485255050486053672631230186550968195271434103634805616277777361899938598389809660457601291771444731863270471117189001373419687435601670842564487274489217795600773826992531439570410489007026811422545313052027129588497320523752583923174140450889949626893110069799366017791547377347250862368530108747763458012672123186223320706043775338492203662981020235769468196778346044639772760443613553945942460728819816130517724866701591475743263585379073785583115340470789874522277688021317856819149448079397345771884031276516675534648298129884384072405752961747327269048570248471962154657504738535411856782156343760637660037160784967499278202748654984944036345049255262348630761183441184685926614386434678062194362315434684843749256211120735362987120080048786261698103179123285998016161685221028728219674890774858163277853914046168208832647793551359661885347579909667567138122639885574181938235586244390051169994220002804941094257507700542061605170098219123947208477636107220354787223130655029734252783626356510962056445341047266707430607298643046569791427871430260168163578833973225517668297161585664644563863012071477695563434105338587500302643585102237289923900456634536760794357177273721649736688604323992367981226586303284292628505572708110406297152895496163194779408200371779594090935256787654947643627490082134288810937606270118785137483347163303271322794309308927044049041819021291791066407656655583177776621734740939069681836216529128559964251647563342057796402181884782169059871183722802522700812373412419100072668333527317045390859812447528781139986554686128211528804164143822580064189701505229100324145349294344947941923303432834911658155668071084524843799459988316248635084724060887028365441104492829693877429590708078788240830625736010202211928894548107185428590518885528440763581453532012773920450191948454651141712302884009422923559273895962404877936247506120772217838899544541885986183942784074973204476427273198005891281750695864551624345852037197898240231372775411464700802694257781961977053455115456901493740118964762315068464875065509044055239861051313616746171272009280685654866275185519786345931063244924403050375799301851169403840553961749467948230799180210543179449525242548451548635195440490487167816874322888565093714266751855941150224366123538587292432181894591405026718892444444380617777570498454509957100461744442137943478422350661053467580896666985190780322896205912548095918510308792664484049006408212339457540806438713567699326994673741784689232838545379821170547142383585804758137442523795974860969604662596140254767282208424772095289904825054488745029699339161762870720080644159946113956707690165029580599750475041384259553251440636483019148610434794492024604310090080820336880567868354727906676164306001746165355022394542529977855511853569890171943046563162482460882209833921634597424075153840794331000795385374102165580028890774108324600567511172912227119143062629743490356721237847258864431970036167583554833077801487600738887672367213636440673483979120560238045804623126922157059859538848498071320559342464938379191529279504015384612818294076838244048057537510073915370597158802664675731138788986516725184267944110145150026231980953800548445206527482969075790890724634501905337251390526361832639866893472155173950318954681789476595627697461793965033149573956737845915365951995665111717229546110863777363664307626575439872711081030147488015693889758653368605559062974686979676149307543344783053279948189967509905476266879280214427111548294930461569882563323001931331571262482970495964619223664376559672270264646610092145360391589806334036157158299172884414416962495253466729743888497627387336980447986414062468782823375223929941574069795172250719336793400210501568985269623072280505576425283198445247982696741007360130848339796991411135672392467201246131342440622965546354460290139124170477427561508674802361959441225022691902977185418294353561738447587092007408405103830598194423602272276469616188601048168671766107202270061574938392392239473425246042929427302181161121472190311707916688495718451833081243918256452183473423796675500802259090908708200595112036313233713484119385528702626383222006706552661598952677091791571076719184084383970017650466256334780950659420350933504309802640487297845404396275228105222259181274915399657482677524929205108998372771152193250007553499985959639717340162173494442487498872070876833163943372612382615476113443818137536427283600449701200141681917976740954924399468810616900487496801073453823987059540119530308364114539058659167867975492524794044549821161221443844816734542110168829093229072170399608872228647065909037249103363057918509832245360574272902379615392275935299021711407008605415366996785522235532494955885192073164087614859305575075846015587621400499110755558319745617371493527665528077872529105874799598276997059557391865644559406083846891608453059709206008265522861441856239835844580652314801124004808076126474460606260642779551044499267848332265453517651707988442091829608017442418112844518761678608909059160312729366812003989704470349489902231020189035059817790458975832995950362270037517866382587773843875830640905165091686007602368730943231853072335323796514311239888397000840799835881501093827252472127774496266155227552744814377576724434508594091945031512081679815409515485804015003953667884541300113845800106316039788715295855909514718370792035888747595475839669932465662305480743529906314545484790172638739817599556094639852175073738883546815590624178832190537313854146223319474512480403120428265815731039993562313996664364546780769654804675842794343807521292498165215190115235534687598932919407046526239178680571503597248454037689611342667539866439363487397207908281927697879150369305726048711028228758065142437390084139328465988209769459224917929253782578116672540582807990315978661179607600367673942133488984749589082767764772830804689959567093561711858596887172370218686831593285719598364308559546175945133721794358131470567654048096047561610082937930569548880043755311250619497564501999736025083025806440825002417862684456301852848569054442745271318510707988651499578062463354376415684528297302650193329889887143174541397040120932398497553390429111144167957959644939464879112925022201213282781813591498315796483659298298069056358814288029394973795352723506789022594876030721208852071256916886264615181917914156858385507160846052698625474298994130406085115465769676714672306171014644478395368728734873435555446116904146923283121571381851419368531661774380860619182358592381050211519648845878417519478269498034877737788820868926265192773953419479787613191663363140485925658186278748254180948141483651988056147809392778818763276071312165858317630240219637070625886526699307455349207077005874154296739111183446736516393023498638741189656033397100791311396553073192770449315015306833063664855107476328353081010702038309939736122991842433003397988369348805271421383687213694332738216667211672953754196899980528531519995513399477714421326479507634388958548662224022292601963197249852595608520245697625939966385656849338615788516697350968497100854284079524274718968513530692925698167526250235906131519481396361691265751594163373224053684858436029699818870113821030252014946353901809783670483651587664164058114080041498672419296493194210940179020576539661618661465057252666562741846854285533118016332371383667381212444768381574909979889522924375708057278848567199082554839151159597671294525555319231866598859040908128703176254441925877625820466721741556965347586679780050428679268622043572904147730203270715548177746091538479992039768537813908386982536975164593022294235795241029758222825018397664490950329287513647972990567311677847786166345973007100967507602099546921543980171091947304135993277659977142153682973983301608096714117352204298382905721946349626603437289585363458966791911364884103060848545981029173975451323514680703592460630222094233417944724059726529316327674281922546015322121780812542339469651591504132370799445881222459165817305657760229474644066557905238566511352310771689315556472497848980608047700614280170145691434933844246433132295747765114589554452516027841210008306520543683562524698572855847437481689168034894305731473996236125100355560068679827647958929210551248926459125338882881701946516763652686987583563398229289226977122108397353846371682510280463439119023831456439290251521593470351469101731126455051152034387784319849408535879852199863256778803837856585773566774036416965634430211085137410165415244399786952661197675001309638301003148059032402798486641195346952902818984460746172287334291045145706163447022275074432293181849288607322854142395325245914694172907146540302752514007417451620941655833323590229299257476500604504723754902323606055825222900727788105719468691820862974224035290766345827288307694357079727185068161591050578536902403565721194836892632911050870487317031015063242683183750678748450860330055069959977877107163090489156900997276467713995836586872308697796217892138697674824831946553132763345274388272589990113937647263649815624008871353847655974326684577024898225844085336921413725468357556048532491948411567957717610522810960370150492921341949638803367257381508620904995759999479739163541014579248266779506029824083155741055572620328539784754091603453094156444129751815120401075374504353980039548977661239302498622831373934135691061236022957861735236110995488402483325438553580733809507238353791920577761499715869386749848905206979736363957668411554489019488319318157910719687546258618212307756280357191992787942326339479599479632565813859136940018908198637901211124581845888942203258345620415850955637657983054934603437097839524470038383943147097475048387842727894983720741183362911582302657424019821340966423035344779790062990685828401119912779664765571833652009950588394739418798563855160745950090017161990893169859918009788865535989741689974505597508934601298315794309524401142945756997878920490106240770918576763283814305350984906141727652975392412917846379996839458156911730508890763706179466052956898476395692164467888957859282719680536645096318975433773688903079400611795399847256834789250001932072797262245259738933801521015370309150459414144200943944734145187549912186934526598375012148763656900991484802398131296582918422015407792745482935830435648533639619747880898496058892519329755175795429465914414587345676349074629353244312201575616073231939021274784953336931214355855418087831850793776597020362974305025297033510387609291967122898920617679251370121782192920986426650525294981794042754916133284680209057097716350494096542098631616739011544620194474030287559172364615569543267119228251957897041523498076635811308879236341433047015404083347586649129587399339081591885255633916858016788006787131859867523857930480314276966518423503893392989824525719395465481594753600869622185819611739166975051836334406525202149917737269413732844810298706427794430562765198622665499502214473887460357325772461871073972709293808967083690687232717650900256769281131191926468678952856688818373800173303694358211796961069041301527756218234507099790021041284346669476856925068734646622699664951549554810620250801573297139188283873885022664007837588629853786150753501389003125615469720691996063128866725646051036316395682106267708455570408460565427209833825949441997343794639343172585496096771502365974292955573580468617792394173139790970743941894072756801875594731326828994554310036585065971402294844384547991015893787249040754650969412748003874116881911520931658833189216480414796422110165799391971967554073741634962382460193237770468781920300888288427246036538536729616853083812817814360781559651835110359378210061945736783551529102215091083884532113865901962304195361417072537803970247271819894839346820053175186729373496605470639740578216981545354465561621063452835869987321705190540804569296493273430919098427726994630221335531325307037824254511667202407710792566819508162642803875397720335463196151376919535471722647463813075954141906209426971089182362272084917239067360340872899746779084552098858819244164757687295754006677561794799456340605391910860178016449437509444739965909560318560935666359399854006838056036770115780156088804295030135390788611879400317535931987179132604881313005023868301094642997112731767308523916267029473852275619915469936493378012144900668157111346385865259137059377107507888574992507982445224341261412578431453743415889600105327237172073952159377597801501028914871581949976069986835405041491272577152686738326795780204022179504592092573672802216364543459009135699571970508246675268938274549019305148018870156134460426145869216697059877870705599516247108013954851732721738371144614338842200997511466489139180256240067489349244957196749198512167536126858243182681734751063942074265298770635110938178696010662910928556313236235587827209777220418324662682521073888277521855076888604227928152955205279634118866775410671327561890816946977577735934941021655514331725649411213020979629027105864065726951149433244209448540459432307172786179540067897343829356500340539275122179040132386427519784157880922303391232774762964176179470142513409907776751038226471500667323840584709598842126517719569034906403551716455329989822350307190715715110232495079475242393117601793033053799215681006790448897969399154694342732621050155466577061701322138987257850155742162434580637502346789725330381134614034959162220503539788716245540904440576128681870967700895554301289710988488258614189193647814230334168991770972477745895719870383448541758695494184470704839239244820010113662956447999781884125388682905555809189553236921450489297246732787125413080624044684384894150270860551114576130585071051528326631284875855772123970535613246703825385405141761179029179438215025444658686475300213142428908406264563010848302330578712231121511344946944338170619093626641126390700423901741287032906734913599050824311937287146954189019389043536977366163805604396462281839012307501844488848236845766729597986077029223481959014648518428513098009024676074844005065657079264648131316722422191832398160025888466910709199525581696713313204751377972585692908317498343388562199339902375523095840374104136155119229882111025218448433658234814517317064485394376783002204997138365807451994860214089501862158269246854352548689198891471374730304796045106912264912704424663220435338931976710238557538529316448442167595541035252615735590697138740299724165604731765824213103623143329719403643067297760406327310058346523611119766868450089246636750488968182614156359711778914602247833980248247044543658001128435376609795541324135574013980781402062807161308288933080407944856519050911093175762729653830434006700119539729713522934965659610545121677059268314121081642191289466415368145757118738892524936654779205461422774519851256745877598030113984063908812697603109852870315222203388259154607415485190607706621881060977347173110394895349774346992574376337968447941712249980236810027531479598895524860537696022717183347007060874634742411126214000983470619275560085631391189033720185932245359559185389043184945345350734511118118712876006122968471588700460833607476882068124525871357924706101020542319077364423724506278447709693647837907037891671343682881527409448764834267359947547826865369983195807734249082230566456623032743283468144789570572019092730957088185575227179123961408247302446811064850201588682195029877052328014872423300682875934515574309320323556546920336999726767419624795614050662294161580620765889406665371531017364149238694040224317000898640326515458158618860677750218721627606052600044607790925538593123897534400114646846486298453761107236929128214025020002473928329581204606564009267836915687442402110081397317909774190602854099171837733406031303544813454082499166683696088696660375625279844405227235587132529070557609029163594004701701147748737423800463461362461415805155559559510043792966788753836190355738806232422776057013006882385136394720123520724948876105742513417518167181535820470400566990335002681096740587126505653494767808760719963127093078113636751257738088503620788001156179732358061400972316962085657531906230084735638972638981039036227768855892977850070273526370665695293125481896358212238151631069626197468255791509052813071926769618494769436921492072732094054397083513920068971526890259034161956631253687740595346569214060274097325626926465764918625851925028264347560021836371424673529175396917184589182953197829557003684572411562420988812108248379617601908241254967953265449367093577802164083441586031054997324880227965009547899007861890789805157022515941700213350736367646562630258774943639466356163418186731830882952917050015897094821009689712391340438799433537424455154994804885578533238773226328446468755216803491490869070158219985020461559111892606927543426687287221913105131673684043215048304128860967553788529173893861289048398249546463777957077502678911466489896774908577730355518679831674657929378796575353113253942618352337174021649083791657566152721126395428182153731379296475170083315307680736499311688546637366761608176250935457413057183785093731423944275704695177561380478464690587196816063193918963938091568327909956487306956506276225199773465938856674849611967765175266468571579080117581042122993771014483657132018640525026577632513828259544568056407578991579377646446972652684902064100799176337502639562496646384528608299510670200195147091268788709523624701941404964342029945209801012821300347952104302739896605528582093368644789355772988569812492709445961412880361452144902625920669486757941568958804507486292897081730338105520940542133744871883684572226462891189656214255567163910564000017214273985770775257988424326851874551997681496334808958423417879146971346185519518155799287620576136890851393317689708086085122675001417277388080494472117446336219856014752686782928124745924359406632255043107428855587190663457914486540601994718278029926541349382364453783214340396685758306505764173822363477486742382550646561957225156564957064652034451506041446232338942662114681012858267448893625433936737874087338520355979362340894036389768328778950576899283143431997842061390162011130425679294269356514214105683032574658177801855447873504698817968524700405165982504450006014074131008357990387922589676754752540781275560999703198119173259307670554715596260650164281636819666342515706021288542346361574175401734635919245505646593526709150621164646013632352105678731007868257543479717689347725435721760540451989733156482102547264954964570358727817506620769452911678254069715248970375240283422413548344734016774411697565053207636250236708969288968728526598170077224362089694158882439473212473115288895680145461221024737935898060299902875480424079863061336313824471887901826741305722419876219815440958647068267351215960418803624526926955348869671374378985867875050625585894202819076224592926022067723869618675947037300274829067111663683674758727500106570322389436576939039373402333818849019562605474970559585575444570075227213301508008679400412640672863856092380970456867543448955658286910747949076307417575943511175128046233971087622758810572650633289969397463877262640949131117350859512648457053474154212585968427558133653934457166415045056787157846807930488929034081535199678197343644454943527533702235254528476442127666792065865404772103244926494450136552818885259905535170977771624960311675539835471699702812840899562965039233656763540070052225947446540853353780442719455498178106006240403039620482358753616992321591880680298255990978420314530955714029121343364102646782649271560934093141638382163748919017126373929442551715120988890191444593423298831075224785699119512231402105509946613231781128299490040286273159971847343239103743961295685413772082116818654140245020068689335441189063570917800738703088565767475493957856163275835846959378667944005452569745530189985765172381377210083039763702369003890083081927009216048725219359244007934018727178515455491932388901832577761288308620476355380364275821556873012181191208144636103855481432603271566133232818758953924448614235821383097947786519879353517286270034974385485137918337081648492572323764179945588731864188935729512124133520878730506215122117427360179594815590551898276660399859998352950510199969244821605157365052902817646444274019371772456278034446362052600267823452007745267216854152674538576235959801845791005636776579621062828989224551186654247527315191384013639309033179265728458638414969995317554092282860803577175809380264790893237852172202075370902400307608745315468499007326963060323228372993132381103868208707766388333429146356518029862355461826005394957429879043703847194651501312590023493257504507677383724931211964352389461874389563071044418985174000644625036900406688823190101294303242948049604169191767312257354786103792832203225408995835845018944853138838833308977851357108332823239144345705514400911111204417010574894171047618125909176293297922342727430998186672486345951010339755869426339156337429390301941083790079665004794796333344742764248373642475459573867786837836304554719210458500747019901623443052101996936783693407385449875795551015406035774253549972749535610949499252215338679413652860049122786330565514428356628761239378042562683962198730272008778890694026095182320282481785423865770365187164714016590245192660284390506393915861384578136225689912020721173045100534325540836921930568772081379896751888294029365585153536956050867533461064864219017678808893411372215347110135302357158123691338176059223147572640563745708065819901385153741266251045233571711387433954716896259083890976983956031507271686440342213991306345299964535661149904828567155325752676262401342798290690782318582928927556922711222884238743146278195982960556191231330545519539672535436562833823898384385259102530180801846130146976804760427163579129659177929238946237870746548703914959043890266253963790897294734830888187318717992012939367636376055149160220322923291286027219690981305015989868614653768259533385204925926712562972565237317100866923927376634192936069172292877096984094856470272969260940866222422694252666480351681316615523998446274043474083775374183563645234861152599242863861190404416333990187616822130417596570392626900640402106880260979854727045657738827835728327819124227345508454289755315594468188761750765608297947341003202743770453982844154924684914962547113126760941658461395667562378672795755786769383773288128940527212389348808079408513003863188139857788325767066008820854396936864495600998383791043261552109776188117093271921694618640705728058817002957039033587480038287379867577680536267022748434212647829837125948768672781360905401622397045695869133356992828921153167866137354185967989131176994712492637270743636936704981510800973153878624006356253735570790933986509311792942404797589898994434243533333374937262717757002158527671157023837853815945334529387021081008846894802547886190821687394764355870846572402535023302464186324154193150338549594054389721990053010085317286104681536911243338728785564526108957855196291671020320780748199291259229160889091935479492652625162195180611647831726754360970361899891764756599852503192939622618873833244430942806591666655080178417635091554974778509115172777901608760214428410012380309906132330355236641407707607802203721374373603665119332668835547543278024953582053223636656459783950544695906746164877487014495787647472106581298485117590567756973184558903207228256983026025324582446550771078974251338791379916500733858282531459090848627600828213178275279648254933342052857395127198260126444027531856796727196948683592235141914490453300720869144286730813756060380083382358831822240440400146653007529211116130541632794641331608147175627551413128240260102230271179597608755531928663133637367575570505891692929031888621448283145895526910712908232660244271622262302843109501485065387792100114105538099690425807080668944968542894833019120741651282189953510818012474050433215844968054521900012575638013818089916466065548658115348818541926932237322126456580334809339175038886490652259162677106501450261440862841639142240691250642503318052710471879381094362418864276050148400033421185694444451508254805612686613966989092125713184332682503934299283838576792939700103030510313184293807745616903031915104273471891451106811905424893372726187343646285671732028852644504558860236110878074539023129062027153318304539151523259618864753251236088100515790131766616992082319211210492805141825744075098946611779842338576878975566819908456665620386307156551509613968638787814388985483185329868745273023935694366336269187633034664974865513900364621049061798023358869063928692857192988699546404049680405813359018326295819830073793595880862136681848077729064212172087275493258413934448222312044610417228103026101453666898989962410431686547075972266220507260537158677759239628328480253963658601841356144394936670374596829152926311682731507362515572096146279262480891391074429617821661765796822897960891688224000077504958767082521222724303180512727973764948828961172202488294055092646530030624821914192023521435313991752433735939838653763004402112737712487846434651802274250228757619771516879715355930311440839572068398665442816942546595957010642788606113249560034555140317212360823621971609906234764338055276011944673989433433846697128649881890266960987687689673989617831948596198990675411563500599277807555643635549452142367783057611264571204814636012204111619268608600927434574816484097695588288945369707415506210818719855777488405513290161666201491862456303059496987869686126630102240779286368320193934679107938956846911813432955608904611064704350379133891955511451268631807895750667291552047955820635320843043564978759167293328559849895039263462272903481505337810252282727247692364273868623738512211946300074041997901317109521442830429034019817200128773007332796320062107957069428486785726255632540805274439868797207090342957140810879807753047783771117694147626498978169782504546900240822026143650323672058658846000835250003161415104807146116947865615945222953556716082714724420284134501035330591504178217824193805218782058378589370116105350892106091382351420941224939809035380053701888327540880285785515422051944024561456378060648207809072912770609250354401479739682852717447177182617270579588568649210969469875909770049156857722920598006853540537603115687691204988880590415392447379843654728707608809697654111560255778626610785805806896486399844124202933146695888412894690926613901859091961523442102383048376820754648247186256775859510144959214521230148417288304749393179140585966573154172145281658584113778762896457231901300292210817495788766419129622368207293884779378001963822109252100500593648021849267824685683549728109335246820410870471626809081906939417724527683724368429720024594517343440325918887767573400738152272450696443743692683012111692444101645321644442236987774088442183539226782639804444595456025725706602563047024672240742511948844164443355375643573918828155689976443016099065304076091447244130972922319458360560512317634529030281316622140328143609359162841253981453274326828978161904019531992803932729044765630645991179292484785062838770685774052793958233439076292977840037669317034788919622777195744172907281294837744537745598393629548988131608344821431482733414196551619985945602794813970449546522417433093986662495892725726468903212761491495583963791280918545663806006066860291258645417527568822995108615855072697200250351464362915845363359348126488991511831944346538892462962369188107921216968426557500260326228632915000603600364238063870105699266014394847540061462303045999471004452703354253873920542519590904533874055956250959830327312384632292135653176998096294218675942175224116581494310868291330753479650064202255299284367138721313337232755187657535049225439669300205043464678541670752357106123283573863335169677522317502001700966725461868006020012591795241186518095336660322399806678960874191591560683728945115656549342353345026651743015927198722196560294269202414355674212662347688933829922686808339316537291557958137700570280104213526308002438417366452674186610199439606869410041147237683139068701241052168238524054168166981340501150217636030285432555059008857748146786129048540758460136957499714533979497241682523110127498372566435944880544849154194920024108142488679398901435123513259146943744358629944244640891796991324019664919613857994026871916304113057708114709169978244883146317979461156595539441619066994342536858944567707956732643453077229241883469484290793046655616440034574044762555711670003662990090673630764065257905658195210184515479606831575707866915604876375213636600225123795743556319683691701129076375485169896757973954194340723817417034187037990150764175988852429560539250738325469198341333880581695905174310219002414688425878631177336696427345351027830237329480649111248415925474332515019509976180345124273591003104071066287968681481468940766962713723489109369359881200182956248885181084325537040389066853049197825700479959694325692347236511850327464805972639908953026872640062263542327169537956804436931453748183645972134033851810336905621680580561031129107966324595403840101485495233675641071616566915465660962341430830301780929966563987569257602802774003709451777691348337415397777215896523410218166743383812567163850614521732561202746119125575514223826760389584846293320665904413810018927483873775784786546649781591049670610579173064805690687096400799985555716011739230760173750228737180704072258272345503405142606824422457953761979517977952913851589368024653983880840846568003077493162298593950268506043335121021303243487025065294893930849341317640957426134954143092566343298615504304944773665116474467848099885387722548306788495148407006834263272166597121262697743011094980751900598776049668172577147893321369270658509776543694304460806535533823484247943590199868316541751163400057880590849551985382405415463484445178575024314673618883975575433790799292962450321735669448260302254790658237895032889306879111322329542239976660981737839420592790141879061226445175756302206843756124291664911096896160965150864997728485392862819541268842100121492703779608715101724424889873815493976302326319898090188255144795531837283866431633547526316325987487973484372207676102352132242417007503697687249457958662711586616240385336003372101688196046940284766258404804492619423698463393498885467086993563637072596781269735054312235520669586889717282922745511262898629562266208170738844894046531958862929590940729471974113818435314171012543000473122312743743245146162604674430524774374264724251816715616797200939453476008294848323389628706025839596485178051018229885837627584652944456157103001094741014736776154740421116371610301201994138571615639175256750897958323826260833614247537333641946386086262033870616552967690022059030714658574136177680447334867812520032048263198021017345152522640260426828629413543398796923831980728226265001585618259029425645123277283004929759269453284283890716540114151930296098971265390122756752017313084537765313512653589889962022411795146995594674379887266249204727548479021552231269222774867037995707991728828919554722043643539437574447852535242945612684999845758617300359739474632856472027337307795203316427534214017735530648583805954586391918715012026673357073967575182672325179714853656746722124488173755849352366675944723990268790973879200496951553764969038440628720779981597280243638043973978716711024325386369557207613361919598051108661733939670436305405962405090706728069279357167683198087222223496977496508963889329321975773250783816134692874315239809208479463947015190007883627391942581986027687633743779416052680751215262354340594988820355105240424758667234686586672651242801575595764598277009661234162261985847035478225158230760627756087579857324915864271434910635659688885047258118200162571119908940711071446010288710837031068604230906826610437064060628078311574338613471551173444915634892507240110857866181675641355638484890059517682670062292511344975557427039494390583170105662967218180933843378733348872972016873364214101167823766580488365288473624566553487583939318507887734584166241689975352860998910590826807845097158949884328872394968937823241832209831239029352273405118808592953564435261099482838537124407155204475739615754373703549461704021065934721121200181974845061507158913214341254218118146765511973516825004871538294769066838733534938712739136223240322320775807398994496318919669932638962243471347265211006862830530645808090381045813995865142150067690425782032571593593598385807800108066404066420407739866485697391699503148102550079571751709244729552509222755118153437927148031722889745144947135696516019581047469312944443825368996591241401630360073652653048099052894745539903639822938377887983330147507553346673017907339253758106059780901172043117983594468867715544855872632481227627769644259924595391457767157552472823346518840130779704424722840976558413762699119529849841515142492116515708925610362892905214642904179490308931070156060719119420920060237697338855203259867323805490371799319931756374917348830961074470733689628675774923230784880484507526237763020541150224450528805461706368554597235614136093987607765549661361006020438132488497872720458017622537516193307312442525278555014650561277052910369735240113849864004786465037795659037980216542063250417217691193460025132947643404905479298405856135590622903869440145686570322795534381269619877102602310814901987464321398789963000335500241803616081499858161840496325490995401686571701132817361261000247541928094842666699419544030165294851303782664937777701588864722598881621813599069931690596301850863842698686426231613905187596808686237987130478583045625762389118792595539959892855192997307314087529544551610307018716730933670047749381362813526182332712702156866899591218379659546015159478134135327874965403256462787896397617621759228496832630259916629324400069128502241705732696094110685951789486057294728344101967637277783135173579410292475440851697845022216198405460688463868133680941787745907821560553581044197001947807946236533417201193542275383937390807420472830705933549429741218392960681140134987755146758480621231690028932704734088111438509998188331366948590245360886788787425159923073926918899298102582098072359323178512722982877640406895593538331012854282937660734878403108971306530937816893448858377106815144932269803817191187576834598173876959028542503017592689955430515002927074284874148839600711210761514529898242052187430130504156338504821365684417993368859977370427777283142478116696985055946218064519700937647430965343353248259339599277427513315934810809055938431062210298137302290493669433675920035127079493870093150610440548825231604520611622139332053960945289514109079751499344659216495862912028353614809674650438525337209884953985525786397386617257172950453506513114595013653614314073097745357555869345240645207129836449338395680399361219418786729060005799434545742358371440235095974137983633666317281044051320359515601555422057965569500832680573488840529018090980149076227074172785806673038000321708704342510012756321224569054138098364549493307997844584585148624270378406113708263988181363059716792977682294066752070112470919706974581804157620109494933208999763716431229994903438546153817411530961259971604036650446683405736113802235322021794163626471517327152812657376288385177648212044613691291228401341756334502764709191442748471161996582881843173678921632609008421673329761362120769502349436756374727556325978504912843892968081422041145528051165188359014635526733457595015437086282544156923672333734510524646637522124932527279919090992725279239731909382878553672557547559795537615109742848236300790663866166678374980563382750835121812352292124849564130311298187843331324100676888371540173594690381405795146802637533694147329352977511765267872465411297348130215208039974624231875135767795624391371910150215693369120626137771574607978122470179203786895364939940097782608179180777593439152074069215503523385622756409753961760882644051735158051868214007253919677631996993332822384215189658408233531081157876835926576829631089794564809250149314744563552546332771995951391875939177335403280974861334169584319708653754945906208045124118689357744001260765610251775695281173677553963179106303720330391563047667984187380357165124392021473559534623789948390485147655315113943945035046181045017961451708200940919697345273168356302322271487785151840164628513334498642712349486177018522556513025106871354728051913396628789350462619207308195282218803213326628956189436938886162647006146083460846497915187231748558024063000807114113446536276124857373613658062516572799347288980609565788248963515815738879593118612490926892402206256616088205135909038770978593115741973069374793336358196059429601205450523168613919330941491821627192140926108913601335691650592596465263057285536253708103978938600998351807347172692251746646590267696631622387773787084525847411815512723561448802263534856326338820529470802231725160799722442599710450878105018654615261721926486072405160076339920488107202054263027418308864515592977934861904165961622199546217913582669072642031412200736848050682957379424231827609201444172657416153442267330279961651570047382391046927201171219429070701642208790056426571213560957375003174277968234383128171242697601508359007142343527030126564641775837501929417657372846638939514744739424414277732279712774378242066144175612439981382661977444698701277154463160950870215437862789084543399672017146826492221462504380607562767439101190888256632578740818459140863304184259644331995455762076678082186465393287837889616539828935675871442088309733996226273915421877338424141640370138238109995230787759291934972972399297418739939396498849662726767156927066746174095651413830255194610253065905731804154980943738751951248561840726468017647515486463471137478118159519893665067786182258742694629666462319992343383017515348565145122275024572106327099605880962833251619661055525757781882331166051929423235262952549511347608349409493333534943476460659450083284393445278147604322842967892472909048533541516497639437506938083016300115600020470940048781545910692509451203646271587021092225283671801624212184453213333050082729855979680844129238480518721547813760185146373063865937528577643717118826538933368955259546857513417537915927887315304990716618210101296140068402351009612870741058210745373038933368160453692943121817550206209436680314768265559991649115627069318031631050723977287195684543507684809375643737458298999957382053580023197401416174081913790170625328866803990954658439653673081421633097087463593625169973596216811286893374283482294863420343019327611845657559396370609340902914928567547160462619202044074483631013315316733010802691531995303073623175119235128883371648132763353244860673644465122116613757705263018875984685491495086414143307565017822281400949218448293407456260137585924062901861315900695128383044109476605037219731007361964270960633069411761954323805747854806969955847116443993109778528165175261092823797504169930143727798758090273216897788112732448520824251725409126234240066876894090205764279958072996553853368761761680992823903664323267231664035585173406655775947923547745248192999368987354519184205255623996219681823095905056966196214870811260351170955486425813702003248824932366989760567359845806394728314490500691976003789674541109219504865821482025961810583322154674357691455686719442907741788174635884111306222783429555534833071699396470681866718358875804827647187117794441360759627031628811048641041095868159310177918172530758296063947183677030494431954509425915791609690314227183289873294581029024284036474023602607103875741422621085278361041222947004953559828266164189143582376542188786435234412166753036621321639863949361890640179664440615992056664743883823467051412889391681976858461284228015498167536307555555518604749865674102986093966126292637919530482942820154599431758067663400642906810553690493967230076523255664258255552373161218282758330210183549733448070651800693049750934662778572818717575217577787620165804049032705857334764261223386551827809487987203977140596633350193038460178071632675671205060335998721763082805294912018715077415137138892982234489244689651819427398797156434751477790636341289214383417766020977379267744322871506120304420421341051427288416680094838084018450712316341723524741692784991162480679624343718634238364101987772966379135669005637949392394262466114081249577812109892466682276632526831726788676665151617558875622251088778353752298430558744414359960000147857550911010246792622526445622645477197363518135416447779551419444438546460996195155220020042114915881957620068560702737503946500091417073051473362463026838135308364143279868178017527990780701250550403104829786578220711118946578770941507281431557472411865400029979732654751974222273005617730409369383684639020479745451120342214734565949433498671304031085128475837629433307714439141661690330141911767671935256932405696686359403071054790535989038548123238862209052089526013804311146681615394537267207063134684150433637785900752348355600066048957711835993438029240667583565843694147953413731498382044505848009598106462899083570257174124146624931635479813755739341927266186021069902023285898243860875545252409615107106973482593263480763850460740966822134868075825007646324658174732606923892317687419240037502813086410287963297959968230363318709316502253951985881766176388118251858212085507626797314720672343304783225003910119580159630310845411996530960626574441745046068034365873356355192890154573522565432277909281324364335388830386457053031220657144309873457724135230186867991958085624796060636827661304420478336268328255359086711620630341420111568413227797613075397192693388339538007984987250816026323030135243196740173501288509106549072929367340559925880273129878149791296721817008588484454125822027698504052878393733017724960282152477663113063368388451577859281128946991476785171460503872422780866266251588033898536129122972361650512860609140856258059989429573451900062829095140849092018919634707324542880164473770352092958389101625645117164324465420195670207520663454981422986066536121933646760840589907240503525122797124434459976793224526507615107855244937291954308079568677079161748644254822161875458548432173011756622959211485889099483192169608851968141048194331161490157181989184732888819438220782947073971424195778004994057595979840175559542924206546982045937809548291418800807264884495902878657670713759670213786599414885523138147440421942075412495379630304627919549855167676879036950828510630512236975138064368645848686275712301548712663180127126789980507059011642987776432130722671684537923636249229524171422967510447458841905264298951536153596532654856960524449639502213413532411340729211712739087116202463862057174754917721909963354891254304252656971155573223054018583804355810045293598431186672019994596367327608199065761288565968404769952421281587261780152121632633373731208832461919923539305786523358882553758199939748803664900356402041950294326835348218443489257707313154633121566699567760461602270613007540321311888021067837518733271712148954401671153113499326918771996711213429885043327579377378671844254236565894246053694606611188988383561632470714160001138505070612533875537129685829204230762699753714427092354168470454584543954773709940139649325032595712406606231143948590663479930130303290073119506222346861509935417509479955414647622959740026984545675700118444939540224559892263896615225668036035575554603642351183079755950329146149971634769145234245177929606375459586662328699524291175188396401557679713894565380244506437804932720016345031063264108816189982731840523806211106922460497141118197649258020069150016765462466854542829230644464126255268970727586113151429277701262020783304315469800384286386675845790025817001104856736352506527530815606680523982166631429591318600480927517975600947829340589730817202824984890527091180199911551781114162969602567021653121023943250140720012442932923704765887944541518689246805052898852046718998524000135006931773161078630733018726639673931902286567446443135765418597937411648523336272214012949434089985096834182200290892848662221778563044173163616562678533471622695889286551705922154632810973504748209217371267946549151599047219299360977394528572122604881850224757376426116739760183108863819661043978561747037895462518196579224652193565800747524312029513283466475175075627670245623587918266487359257788034104663253455509432262616240498693845247055531669203514165821235001592549308998399790811330003513886945710975862418323390024633020321629194161264926536628387466101136543433237092593455121369439878813137525945010153153002310949356383764890350005132099752594111311881997272443054479283991702602620853184529252515052309752142730533178839438334669847668174598229284839074699630353345316821731922192743921452133878437793852910235075523585102586039135635487298947034284555774268539023199513895139107441467476808072591732308197046800275160636539930156396196935890987143439578370047320476193278828327759273229626630274367174377386630041203835696484426047440164812816501862880523091699863911630411632807261975651077689593092395166905711418658719335589248714071105157254294321783457417947114608609198276638273651899078459282083287596123320248521860025863916812384224801407797419853403938059756417598855708606623365594690108992441635055811782383415067771543122800011608579734112549232489199876082736463702617306378495680255306621287324074598065283095833408156522097528788296154608249970683531841206814272099563886036427181439633567188947932535380301862389823300697237340101951083412749165005655647912013977050977494521516148095617912619929136801269620047135892058760907265589354866781171653502479489741533888466186525817663952587247080089783839467343845825935695113079805204272019296821654393112361997092644358670567144774115914736993581238963916252879458615773648442743520300644987935431583940210616711965137884559092339267400058267242115079213466604898774545881864054837217537903097848416199685344666192649208128390177002477769906625807178362497022919990977390017706733819851123230951786475190917391484559327388353739942358531890529951212263648998254991642976724681032674571278102592210830675433293807402795514004179181249025569940103305580124784261961375810881868408340152831387488395409171459069612011274888506773410314170032949289620029612504996625126442139870385783085848042549028677314568483918476121367224629944801486629809194539777508553158359487254273159395542398103498043887943708650038206010214491609106173388228641880544885043589666324106080318140967394556903110646120464063010339592624739558064634126193997746085324704971340078269204354251802020767952182378469107587123020490913108614395267061206343693412221948252005329084145055360430634576690364123241550706464330209908970785078367266668588220508998443012618432332914787370476255194244195835936599433860410688212579701592413670841599142634509962451922990407423937577948273430455441012985875956160497885195083657727585516657506525172167302735241351947925881199508758555907524275687474181493858880784071996333993582504184384432323441860952376217767913424188236161702615434582559372917900481610401250900393053913531642038855715426627042579343521176682191757545774379457977475637206726955048333904182888614036231443666080603775819090319077004402701141889095251240311838409604693528333156806082189789982766587708905729669719753064815476630273323241020888689575323161043798070087613473568942651276299722679206648849770933873939352764179095013287217677545773848014080617650754875993630301312952549251939421236144359442840747355305977593509596267585207441439927422165258667646282996592290041342671293439459153550450080477088442057914101525502041330656840795029912651442461583031165277780958569327692895174107520255488287937870294628131176694077238968321335435895827778720873448033681416424405006829236578038322955513272619192388921526356607624933130224240756893369750565872725734063688938176393257269293331590064952917388765851582251416822767397558881947437595765362508311418825073206471306951192459255517719875074299947275878532410317608020436991326571225250594987989596519436877625986679441164706261582503517874254174870816866984649250352740185657338553811164147936112158742938192567456467161843446548559396003972656120975073748196708790212685990941041583500180769087855075052509933236183604314982796877872897561421213342071737609958304956346497399232373065171880197851835636664711015408441125522936883249479235017422251162426601204297066830596547512747358335150325264527768721362781095404484973485835685713958114327567941958539980110711868292151262698125185899094972112442854317522404051484186557440818342200933145751762567539191546315102421003246937537977866365833493062423492046882175262850528836332915460204471228770545338209268049225014975249218489610750351955502780503320062341062165526079526856197410826448456552981758807533425577494875684014131110280699016923255854354841122408213420450620008424437938624551987562591100951102821648532911758912645027683139229552612052655347034232817546952479337999024890462784412797208941629796211068066700944997960188324516576883155445722460722797103721793944785296629654925406954186233709050997964891454293455914863618119506953475460064487339201823597046567702873907927378877735512808015243985242893152288675122563754043669323146997664442843222279812433608278589320738891406695735289675124433400649763485145953162727115009813610927608553408764090609489039907160792336933550961530209839473181602401478653666361346715039396005862683385243062808795900948264490886983630154888513256655859294028245172957636618342597468365108387883963510351698914602050895166279770925318931161809689402018177273000027549681076487571544442367029587787860866775474269825401904138338365883521652314708134255854259914135277183975156828641867991190068205810086266036319036349596542222147327556739673964868965322226513515449947938835467124243502985200571495776291553288606638444057793097717544407503166743405567961506966177100619120705737752914721557145584702216397613615747141690472398598624999243989203358229250763755791197817271525866671317869349742071890005822428658767683020875951274858575469465681775271694587507801635383939266092300139676092313965734829053660490821640934575859328122773074239879306016050180178655938821295112120390742617317877089153005434133739398714161798652971854518692147774414910277105235260206257100212027722846277166094274853379033145312091854636851241446937341292785317618387880936596325096292070704773363662656729964765007781182593263388515280159062871892070420211663278723997684746601009765857588348711376763053897002208873292102903816147967830560807114882137374654393059603314157762948681749093472990676050101459317780706601207391756448187988905865436969487539551547241351362421944647342098436777192717196537516367745295395699821062834202088578773851892408430861374450221912237228196510037165066171225362415088408577804866491123753834422178973409033208780357077438202328118307379866716230454552555152863661056663880410995250076625217637061548992278147888254695556525798332203664958734208860981810172444950955171645928204699354031872222013884528950744228499634792330096324968945414260613615243940614306435690089855540070818621714722773365273799535692174288660924805838242725262158527791421120076159614726547363373172359643077810834187830502523336764026111517831526832765391984082210381152405944358373735733975472582704956319069119230297383229788828057138989991780802758535735779118271586054580352415693660180579332009622735596699621928116035063615822097256976062099558824574514049696902109250087597320421725418112953116670258603315714971286445359231525589066787208373059466301971840502707393907526200068852427279196803599664220560545057287283400677181747978731493570841435857859289848960719375913317294781474748699496370300064350690806747022042632843160410558352902144534950467201348231646556428920709665890886991361223492813813274353566227405784816198478935554236024113436969438412180097869885769605348320429766719611179605580959295263231481061223749714288129911426674815612055525121617656123996755528778974202009731818083139114793473957315544176641034783385286359115383732983568821634916804951727177466484444508340260051778971563228534212995641899253670813953481824362366317073496961993767430978947454275347784667524239160158617888954218477894362068888055391071776971994239399236028559111093945084251088568208754832633244705184661119785316029279859898233777131778608279816286877581999416110315258195047054453523851396893563312584858508732869211036049393581930094170453849500317419467036379221169350687151223915021526302449311016407543992461912075655195354659300114971976456035424797081327954498450436825634021093697878291798528855160273440983193197235710388356193919479583713349562436651235031927576790331221917107123983878720996434539009584202758519843619218235558166792558613615797942317683410717090129503163151539364797141007305104881051777370172531495560559834611574265066129770232694929804937810983342509815002692158155770056395687490809830945352678052423481591774184449040284446521893413969350997517072688855946700677167639791856726538246759175783152210988892935837352469740494585212873636522436476482935883031570803876185711505702071545120698774214346811081334861818859129491216416443537364162955457299901058678342101095442610486018263492561270696457735622492344930275979542812156067293533326386548122696439432705672389695987354307111723260279032996770189600081707564446349447055319951123894222488635261480716282145971525233126478248452282091981422150260844090649196215479853838411697295346161723175856152223552840456131313836864850350712410170174831272949241134468634843859581948377971403739477317423233690806196062973591968032607738875208871165779425050958520217190285100724312614746146499503980096830382242460571485977907744348162645678008597964522903917618582736301022032274027646989048356924122318543314652353808150426918656683350307259155843278268818414468272073439331726857397116324385342093200884909668424507879206259567234995164082019149137076236485616300930385836684368257241568079771616368748403420025165295266650882688138406456697394052401587325845880221224119329895688903023562926695483032429391795415361827681238745073156666041357519499300914263684372006957461104537868036276446203551675728240741941090623978189685020666768052179606988082821301522489124020339501077308005868984981052155543233681330511957002876795308863718925149840155463026536507836257599826263238692131128549227815208587389063355457805124614120326976794037462987192056114169408755628172486840535049871970734401165890671545319046323156405243844690389897489653257366188113486159800227635134727577135886220976272579003437572439550627749676500610508887887998395992852676295111014169879815916313934870033502378274246209508183389183394184510707064456843683301403980329404135959534195215208730807322458140388868698117374150432529242765839748707946239729372642984921696503536681712051207101485723975427472129049532341894524055872952535207838145228422125360268577794189732087894440295695181947081568424135332670031797550740386828953543206181903172962681636142778134543031536266751609074669067762820354673546617259441071474809182208087914875614448077915984270221759125573502848034573556441899858483898124778460987836428028273935813043520454101825117763389340302421332738228994844701331511003933294766188758575855446548733185706330932221217093739083383369395037247354061587247063659768320541895310602640171089967129620177707874931515379643805498902904410303669307867819723687401289181839206796879163438452609508622816827412864371061994878612207170186711923381083954192150157971515626523405752163915084507624229495645935695024381969342221930379033086794172573153695873713652528107871805370200086563887862812205991980857412715356317923908873690934992395756789944044564029247163746654870846425711615724277038578629225073970331029643115955632171744034399586634182636177877768897319968929217562594670904411074008505194586460317943575128296006037154251607747742152587627534342840639285892755097409182091503092641354435899461010244203084250484741152953465034089136656760668795286497065979574363872199429998972008959704721034528058060705219494284032987361906546272977763456094330127319726244372641691103670265765438396156493371591240337117649705385400601225841272944751757095455914842601603050624252724128202914482219821945407294022298990551297940482000209622233760024145825971447317004224822970652279675713678276593820538706084863365327883297820360711040894035655308833688639993711420933523416664966299247082450661967076689204692629524994606896214967103635261313388725815366105844839376102733355426205596145361163780003111880033353116928345477101694948595692854935894994514755457517151235839059083279768911038864248091244344363261565896752245293527114657023882494308588392893929162365360723591729472554070041703197357044373560426495217326498437361038077609830596781805445767084207769673286792088721531776280637386283348736600660975502918968617905016654187421921351160373953726542428089578810436974523789067182120264489408347253713505804509426616041968921740017213481421419663418925015975693873045567190889672410095504701516881455643967240713034885398314854859997130427379249151299075538722852171531606523325066900404417067314484790134906607591945118902714409087700935376003392243203744724548890746609292161712517523014310819255604278835736128624828196237670761923291891678006614793287488950326088312544116395778039413703295150095043122379299248904072022773732504893901339650181507739336775921489634558306934590061121849044017776031840596302592407712284044055767526696417749230594876888580076188629288385393059654462678058341254840935841857751327293927207271224691817515272820271160008647050038841552231621138631646069418421902170419044192905481872563564467543126270962381954148943474262397793687138601484176307762237565370945545955250657736544039186811112348393536748076923583536682973685911971851137082457091352904643194675929029562647178758132552025661607404719323677369539798623407906587085687947437318795154813830805713316838697322581771653875364291852216292416161335394122601010547236023511489038266205097947853368849471275511529903438234056964809662647980419116071313964503658508072008663743575110089482749193021336556197693585312349743865915865060626409955243048644751292807631485241779355874296308338009354930396684307873943731882867979342388159554532185837279764085113613148997403283090467475449442251699479753896215604461235286700246240732420469417547063783640836194623541578557838826089275304030569457688026955550513900536170489029851200749804838983041880522362712294140397580350282920594174575430953315340177598529522935649899219957160656171356559651427154832751259444207647511468307147272981215259683847228320976831216285279498175228432265105168567221529878261308620844906447299959813942215649787575261684709448489336010931543264387431241895900532505879626592279790863036371145950173214128423472360246005150288764616115360527156919335933531159276078024999923479168970126010520657940433237910939957010305329862788407259500822529292395726075380087898173146405094515892844317767428898619826538430237280134707222071544882830740960859886571098803861465091594106661269238766205333095677319471982627830701181339163308785425735475391144873484501412616711164290653619151221677016290073031846614835778633673006873722146733699387634003410036787291495282625325539906470845612901912930548995375070504455854244547740794855410558660430355740683791584609571716220792323704783395399356590496089756809701796483766481047034916921973463417695487136883517655384626040587732982026216048602015217077859446583302322471666383016353430923874496585082586183456887565849712348365908727138709678100403620666249288703894338561489206260604779605235003703266609834979460646958902921524696565197642446049843950637854378110561700825390396733193216092361935248163756263036391520934803368924564449109529956329218920589833446677573660130446114044516244648792416247993247480285803434553269650543460042711749200422382092546405617242036958847789831673986898231103109896091996268856142795293918694628229468982897365304281237524434417731745224774942528498107049779377791782410850189519672890198872827432810870941696633864032053374733097252296276633761547619216477208198219843680944720709279002162092227421228103372933738403311385844041608203877951446718629412103413403942225277584088045659306801097610982983434822095072224701823280195836677181297988474582831713887334730619856541829840440754150624335785337452889018193550371843089752467751378113410760549610354319153429775078205429069411651781218373678866452603137374284412393147633529732616108455552398818038917666249553954079419604696247329637375143686171969674160994171216363308371155020292685689398023509757686792667925862892167238412886170227998513316003971797214130582430850294596842081628398357262927323228461738518159263807719739724839044611594566413269258939440119035147886925430236039731584839270409018369121648973483715457226938479553899680238162730867104419180928580574429768472962370158415515140911669064765802109146933624690579237320174129242642006749359683680872145314526164894638613678128357820358903439136265665973913486074774910537022579093691572094779898790259295189207550555974812391233738220478258695324257416082457683370877431475228836555672889907388543356438066315797685924668797186370185935287147855587507214733090848919732995107995044098192817891154995389036296786307513445528059876865285731593446189830525596318027831332774185788049687921713799539648767778828895335109973640251235021822281779754733381484429002867446264052660252995366921623109249799766648749851081284059167091762017876962295630488135105962298013844998963293371440391209537995510866869814610351747945559172584152781152230681455135444275401788044178593545561973455596047682253546549066802375726578683476721332650536520522462707819037800976692679168287662884166969401859949852465337523806071949002394128566524718692727151264809285616623482770322920923693937009115310257884716145809146909530580804994678144845827399901977102891781502728431913226157459760474871013704096349906895052259542773257495279818700837462463382104004261221453500173741178544441650688906375475651837927133146324611146942477929439691275961516514224581181586991657691337105266222156507266364535692947642869610567939532420916970021264673758348094637687920578641885292629496672086416197769834460384272414912999864071321327554853155241844723969081315744642000976298947864549202330097495459448995700657902763813639633091797541718207020229686471413676688398542491155594407547707266965822360799371153649138653235964695966033805154427235929736839661922979245545245819070106809165262067757894008309958227367169835201175453287561135681465062229116634944544066620896376197234403166337632234078331236437351492582235066391522441707783737782994313937094788369084430537883065722047487609617288510956665514144359559288597948562408062732186161951918383435355536213792508056032165753692420354911786738954075403066219837850284615436057826294691528840657239087273131478340474526522887027448277863426557636464454879208061875556457005930276782181237827270572461531332648981397600454257921517840427005839340909028720613079748408122189904922632823447014362439842334625531071975303953936916777701750075449333411756764865208324708206809677191570216948445285796807557559793508727739967405613917487862324101676008936397673083037275041367236252074830343072629064548362192477605693621532291975359892269356822888590592108660167613713825719222661127683273828069551078160605197675348994278550373682461235029495612079912373131963958975090466822352575289685988091836408784909733248664225943865573841759506230411584707869634464820737071526243986635337407493228532393343829883998452983068820895570002326757223120127848188607654536184832662106579430555845214002335851565003865619421501794342890271133794856687539967322309893661682614505246406327601261149117454999585002887229220240384986261809547707855972817627279092126742645183367175280808721404745745954123665881174857076096941311414735246267406373088924829952321634008374908394168526166666295924690401469497546541129747227750547789653972022403104218398500730060632035135262529270925987264844577701230086379138116204045674514153731311554311608793180744443078981416185806657136440855626695449642459238218062853319338862654113881213806523855681135447523352479187039641027435322457277084525660724057683110103115716948780806345014255530169315237590418931074737446554132340250731554148035475299592536774926111220499001499700187466269181871384374765302185628005612899738620709998835241037645944301998073437332320386385774227175381302060209786118324227270122957009837533671430328046346431647530736317212589981429980782131908556280890291998637301617308018674839915848772523615489030451642497405568088381072444771562074577329705758929310562127677257365887558171426255902693915535193641502215910974977208421232575566301916223963176629823013561987110187024157785434837046811774227569728046907249500407552240299599061243398631733732577667704555141366657593995520963092348523203770924157987428846886668792180158597667351404664782039870903696226548401109840252600380810844372669584858095796688644281523148637387556296255204145114879211328582146701031779152170129419805059055716708283810953850705502682020425355071338386911171949491713651902534560180956574184724594641308576379290882063412846113268211792043237599667717932175864235072559317102554137271741820348097493984472830415788930900555315794036470486529322866157421657263771849677699420745629299166240453901904245474228897690134067554102202744391605054564596471521337633543977295606323132465488777306731519890276497665291624714184989728606626760725559610976448143520642157050615794796531538305882473759946492276961217351609758829430095600544232229822577876139416495753666195120499777513875529145361423966189902871496787806068759098000822841411352647419559597442641637696072224987021200696368094109082057744669289239601912502955900784035806053343665470514375259366334628017777085782036372305294177645277246245891281081669720622846599847750968174151861198225845882940084608958630836447007357861254056118635794701280726642949876002074615234805040506423278905117816503562424495690277937596083887658167798472084635532633129054493937900293815703454018621472175229473508468963360596345344348421085494064541768386324027196927245778449997633076680928462032819465156442234626266717052786313019385593719583362296397964362226696647338746878379587299450131678537266696655966639897146398755567589261032194763390865551254689005227536689314021303334212638947040376483797917398462511156916638570696096050089545714543356944578723717101840300902663146286847981976039190922268402126744586993549869685073982142317239525153090508040153436815218306151937908268897455830526047477469297238395730001739849677446986268931405060856269947902103910601678785285767284406132336010492714659563075531934294707832575260391998655173365388406789261695739883281746511314838122284370776222562041162822146200806556969161978461058609751833884794255392159254224209806677536145355980257361883132748412878924253236331905160004921325886518010995382007470165550631901513443662673690425182903783067616389666140176314873953874566355715732629338655805856441422875530907544257357799584335561969989079604549116714648190292001734975795680248289718247813102304960893536703710755473122293679229784157748797897891775836716627759567962956076657611251004945392298772362649959806541113469854799152492966487108477897292737209848288244829978691055723143561232688152318507205739211673984920611879789647288530135939098325270521292646569529248854069235443442748245748394454841324595474202276161628066698731579880803714821930874552775070398075290734126001045148798006698708252246946736147904502264605511079584490941010562799037676523078845624847740228862901386578037927022017642824679370373509716115696633731762061944456595244979976491367157255362388679961428601032409273453218802153968643998548101401516731702862183138794230356664435462451730729369774153383415026574129625222371097114661135382927383454919446365469826512536503618474009733030787069763644527918263639578279594536228726708587924370707754939086950552954887470643404955795725094045831338577504770044534482225166165132195818008746771634157161435539182781846232094864711936228567260911426576445063795057782878233612828944221468989243799777108741018007875929675845416418815900944870164009340865364390117297724799516822539742540333411090882855169997871966758640612968925432398734511951430967115134880685831149141418716233733096882641804935617897133839814725280188588613525836606745236181837313200880570230927899762591501537068475916193486214347226515832986740811059865302370370759490617454064183125780110103796486262616140411308871584014544066914035270129560282920733726911612522903327202962638145005489615969031178001628720608923052897047927458337267807134296894635839804201550580772868733372676539556227107400402068730511260271106399063821459596598956830363402694935071933204502574645014488010305063083407224836677869979862980292767805775878900918169093720827211014512275554593542574859285934870128685458415562617144806523666112355837985387419345914988527720770647987412292648159657465705064281807792402244458455275736673694319800108472897186275962058182202162644862376949067969396506658871017712474062242597763280686835974448943721011989547432894703414656800930456591415766386147283738164473732167777592276948779209572792965967852123835560534365895811385738940031336330137411884217130732080709735252016906864169527161312074258970631086281779847082372014161853378164977911598702962065719545933905258848192323682861567514490472422999291605559409005980205486656427805548785352701867194637526919820640721972242964269738742709365921464039379473836573126467961066694254723729359136825895537556390265420782874591603128889335348232665312964956946166965662562692237301195340997558502608125846925741183768855328379819061017264442782677176783492838648472783615438509594681184445528923217080083234737532290479751415925242595056122651486371818337698542896411241238064060889178347755702747816356651804569056129442257274360423137664608893791997975690784821798508551489429468123656797899543757124079372152583885421196864836013118094118302968535503356236512315891885363397114256723183201709067842818500910622219225468028637415984575685936632964830876456669832176269488361572264760273449124209298971101052977936519882884171069113604264724248506729686236772014415812587942100423492280359993446680113110949822714271438104437206809409611943189264399350621833831513945703326054948059902102266739944623390657624525919967249606227517448570219666644780567690942961861999566815415073916825308279403638528282447588647919937500201064091490246892343437232338954273511287311364692894357692839850698836319047462457855816628979015064401415636708754061016315611825115728339135121512346911257333791897065318795789698540923617745304735062419600689267251773234683339425253157527086282792270409876291062199050779936904891188439740809114063998027311091887566543317808339372019300781497289802069762030867014621762741366236234226905212716546256976747638191265581356118700189111309053429999130898576852542462788108932436441759007634999349980052372224555122444289432489474132282049742518590969651605757204564570583731380804158015783040180540715576778574831820899627716791383791142404135697873111444942091499383689294109828287379369457578990157423468620787867324026236642068529013163338263487614667068918119911282640902128076814080607039159441980195757850490811248927083198226006929765715948525705353529310762032023699797370377036294843568908330652587851053696997633453246941136751895480696480720646529771648876352512249909522486372325814041216422063805802743891602857967612996978952842080031905383571584043025400595843056613715432944893190328474628049507591280511543314715394345348409093722673259565466847235293685199162713864340062893526082498979831593036664813422994372667069613844188198937188957145356182663050668900014951709033356513355252351496605016320548422736327536934405912842504887146374658398938017226354941079343153093648756476933624482091528159391375891700005302446242934473806181988844778337012831190605105524939979721197614311266587511567344688951944809542950392949292698647854219500752420062134701915230516403000502947884217586328068106003719053866387950397919568677499751239191750587129090620581986740527105324205332635665332108934890728437490371530537987157905554746747572151836283330188929227376836518875650606789229117115724072555317106573966401520960196457912048276656186924927709595140558183715670593088306109851664502524552997537159160382931210297873092676031261986038818725583710743399322108380075644160102023893760558813915913163540902644016039081694258711804644740546167230225340552942254924290861712212068918052855429087112082193567076267784991667019692683566732904956179580771251559473576807164008348095881193061376621040616440679295414094556588441505997305220621521818327312869471106448350141955684223489761422677808638245835275339847290839996114605144031010660280923250608543873835203571346309545015015265284876640526683288972083560944068372769802618287958883826825335140827736386012351821449548992259060343147357196822056701200672428115550191541367894373656230321469183403672647132825997635872989395406653457736458379315333747986033967171943344611723216012364364245220489009908801582039504150255448093656928292956248491002994498773466250038344413522437459133522684329285412269060582010798645939452115385287958138029023648947118337589739712641608625981381693185366064317282257397391832277546302376867832792363246242027734146049502300766140076243426567724504775327851153265618660538452204225224716819087050692388877930894551883553521062061337255995813830121294092292257645097526017522589911966660944837081756900667700957483218257456000385323100373390339111132330202012030793454716188753182564049281597566160105032762407179063498554043731797934849480516100828834964382569870833538601322797559382431212328626719969082748602491296497461795126390564228403651342558541919397790208314973633822430749640658069601493494994939813669398179375918056397438241613968520291930161478072391113487960787516822159707249950496810922005666018273880188197776579180026306940359089968951952120962639282461495887334721696386810805271649173595214726250450516375919060724996672101391260901739452898156903893605988904012311136296300748603307310548133647075187188199309979171300851694649780285881195701287611643398444173108813480964468165653877209235794911968314442005286049297062134383165032442729590133284027702877900338030285858864343465373583866997567260986195330779608040366095495799734521402830756329249412782948324490971403952316208298268471004233620620014059886294064270794511588887627246976406603865223804655067188767968805977109367308284210698275455448622862917598759515021809379060144450637085424503423891340513466142762361148429778775510700909208514947638390851000406525996872747292801431954506889586900227514280877120798868460327258644600664248030676893046979697593735813498111390101866720964317269172110498687344108549159348489802843229106512571720983147742909266530188756898031498461870759297649103460590586748377753406899975183772786939311808671307194974726740464681215098617467250282344652181829942481865495387265375122135091114929440555464239588309122739534559440819812515541077773677945599997055922531975221665633306823510258051044345641764837455284267602554344401615266558548258957629590665327234052777398862834379555779164267408642012341631366537520442565625981985884377697496575909939108099237396515768399619606844078074015653338495800880297064583451384895808130772470504717817177440865004361945954834654631851816171824559039567961130462015136451475957768564935541550632286205355206577408724459217028667926817895853392118526425034339027850455627159536973297638405073572618816719960215077724027073447146408456182623038791817938736040314200253726543908518838194397388077763268878328743688969821580555002965571264133337485731829219417571000320455243707930576047969889636958997656440483344018860207209749790684256575812806783781699123032160020948100631451073736758964835326366255025762293426227318856345849408193012441667349737248062592165093482533578913948642728387952365379595861890108078083766377636812921731565336388081412967869547125831923298131315666354687157324803569312172830892299006959237968109829622159013559426157478551976677701830414269389571382588647571606665219060418368520709074751481566606839206265149129796158532181756196379047300517493240692695885413880289191901620299970386578983903186973926183216926984114238023147888850505517815944452077881532412492033651167076466282453238810833292861539936414758499144499574397593711560573712922725439595489181635781129858543175419378208359864214320479934479214729858104383506066957897331818383735512888010147279220021094529391626410005973722120238526464470014757475990065253266745699529243584907651836657203820903625073444821978455799023171019035183873276111059462623020871921290952518566309478840296651455287023116620260315638084230071878268105347739669466059906345200873802598301925848787024378442428972287958921322562047861915997304323005356938413497661784547219341939519752660070490558161359533851801391910641003346754080634760684035655541003078920396679848216721768141410227709660410027764561810368587329780115412757222356494918823774615371701720069020340084963603773077554380941465722156246170939543167421345448580781284865126336856337746393998382842251968858110195665605714789743523304465413850978837250240169508556991013693138236375524270610366288978756504090915905659904296342493967744943486902423465515720119683677143689149828124956942246499817431194222461084772777504461607955620606696253284664677314542146880890630875161252750099111378956879904031866412360584566510761163738807700779345926881809631619988533531957667315340755620322569326014823766695895706341143887467982405554818970683539381956474275992086479694814145985549321836134209901369168284438126581928227928160443521512568515004824847390522348709026512484792782683905242533098956822173965748486217633727397734150620726493164654255921420417058317157150696343573979398187608981661786551894119566952901974475754982443388146129312476597935735153075030485246170900968324418538156616102665061318428411345598444455154833747003092206228825055498699289970812457494632654861768504718629466755242070316894273895499806173814624799478877648266858429644365328027361471741628326641722085905034882077799410145753452922864195564671311575830502331359744342526822184662149773541057170486493785859147183250963097554717483395812367743036931493496326708679995190185001133305127830091062486014423100772377575090719104082144147199125938119134017325644042565584536215750453431435297688627706449788116662531786443841779909807740955031440948392761536438802872399352854490453919933518419497755578356949518367658652465413517089437097366647719269558932101436941329187165991404090499017996280160181309231321417293291348965919981407105065344579926427906583104612781237430816051344050361063965467074433449535742906707665954710798815219263234103071686260330816647474964788006481515055751193387118616629220279560347833107683946405772243115759578642647438783362337645571508563431455600147113438064557490140553987392350760848147980124835300829042047811710368989331390581129608742735775324021641356715074657461063023505759948482911056083292106352491571671042661645905010098400116896042030213591882407788203311640114224734144068399481149012868380778816089956904412907415793395790193628281418051537778827425704566962641331603641789015828535548680338385383742705123357390082116419533452278387140833976098382611993561324174486916267471700086205919413265292224185440508796189203208906773270997191960447315749990607328197371817730554502067174101272792109591884081646158799314782327716893361179388624405517893207208839228699568085095619135872560442258183677407610731742689970082411686765601263702722058299528621749115103081250381875607760054804408400502966083395547307215053659444718928561276712661644808347384377374189655628360214112827228299400615950844816216153936527031244096378222787168001194425803442070137400996629178545215695462973361038918956105342476190182881034792522077341101830747075884709041341370026734895177969978582057250374684813657435003922890613994227995648100041942496989924809761870063190547327586088290972703328848412449611707826052760178960106739728541406499015571286355961470005748135986021326447420649165150900070669767615924924776149548002220360667295596612913883371614752338062506985055167374903042303982648828244503537506820084921268441668215629536764161309485309878063110510381090540840378807293471531607982103258012348444248853088974833706130158873061002510711864606375506649922884014042178094616149281265998923180520578826359780774164344431873211439651116834677536115014894237971973085665848310542435030015807129969753546442429451154169141226401290842657289022412770343683543509561760900288459887148788632862033038442914073111291461783744311428367602723981010813207678868962248217650227164115685592018989024250522513476673771036858057200754259323509659915165245285101364249443230692279895889428376337990467787805513854383326392525997334251379515206621315045706457663272268686243812232801724507612421504875135501089940632770868316914921017570845762084819571645251060610819796206980092340181846367926379717726993868757812387903014122502907725674173258084548245693804448070786735506514453574895407295931070736876156169366823992654913918964344564091300839485634624019942602776028364224464842082939713913009488524810889604685183247060990025402741126056968099583299989887083578734335786309018683735068915801901525212390180385173824100004128387071922263381917800388449331107724491408776870144666534272706274317825766953835345267218236687906256294364503367409366497634611679245187733595433289577424001517339024428010541720988230683619938461024999367130246988706980725709914155629120547782359356877058886490037596785890351219375411497401494070660319373468326716271072189962646750797152795923386625860658192936848634012357979380950687880600420698494362529190243101350000831320849502719481530654725732398285019686388817695830002725838427259873189607470391385460410517519562489529396969643770531847852621694902422637395078940685476494896943051430069469853648989348367329918834658186918460458875140053596167300157709138324006469122626361896662592533540372711061558593620076039458893366307809885681606466979323363063975645963875066759928108313764026695267641113092804306967001929668012167298429149094035697533585337897843155797142240183063460871782337444354350910966669908101536203077923771579291811104607268017358983478522863927383295046000223549623162741597076767344114367423220658714929322321389376372210004664232032736080877296280082753592157282188941274756582034274605986732121473106047312883661391054000793711428103053723656065183908729778267830512095762806773438663066954470639346903781826871464437804130766550940497183795763892979222750648791663503319515253091744726206444385578124431579736582216442962892493697939881199839542531591228726657992871267756929796935791204696306925833357751722765542395479315121101641526293561621780848376155276334411029864182122071578641205949771526568919024400896064217751837073251879179475178796287030905995583696352083096664851503494780476590565669042101383718572396486316989463525117420557069644272866928442629173626932038765529452603894110564230642373694199562002005276401229412286412309105807550643524171019523158804434299557196295810795744577277251802317798680351665104715235342426278562973914909664708284305645100467279368801300684336481891502722612157629798717235512171587233529999386194447489203831916850947763019211741470288499718100394381026942006356571393524255566908744357214491793271257169908712516034318242337264997756490691710268082111155496900451005866099628647909736234647353984895998183669195252394472726409153943678167103133441162941305028974493944182196827695212175259238057389072585560596294704919861361862074754139424341670170294252215605246520825209097745055540782312295206949997631478115901908284608574932950808563654407148763813001745642277526848047380554967359533985892243349867198095494721815413971369597626599359377529127896053938751379922287903384335478173243324503192161338629941089215675112522712910037869099474972828455461483650755063045098832449209392774337523792724741892517059151603624313824705552561069879608926806812965371472299755787231876882314811734114192921444352574056973712253710027764811280865612432383222283445182862074904030926735878380900672005380252863987025990222557782597891796309611175169465055905875145393605179211125956249278466080079814251739464669288961709406416956930191571988919104440599648351556426301715528607597517840371756587166326328230257689017119634702386355914647141430831551341888086744664796517371095623736324176318465208477377921622112903774491367566684184369198228231307010409737456241200817025287907064552655657085363120650100727699200288186003794440093128462740931148964773645321727261798907716095708588745263668638503755710316361797421011982562078040004574775974451444676162047252931146817851966085408025327282313931019904882631271298371571344112913707053890671937581949270642028892902742743363068883366199649606235339349366762507505877770796862447486196852347540886949797649621390226143132881788066536736257510375917281019130395066022814830518856419668939247219665997511493832820935379294930670117403846579502418241329092965323819726376906427363422889828750571430604807284834601393219936985567816152096277895212414337742738976748492792029400977706476622251328432046713899069581989018771197355171482215591861735210290414720146202743996930443509199526885717995365516403258804341697233742646784785451514919383097508419677982535382225175905711012853353680011612571731641953955508607071725642158386880836579438166447353020282463842533413552301263821380517364963932396545415820318186846293869566187275995546622487444586020981694008437712948659502481030664136499008596056148513600314910669116785937105904061550496482491716647291317296901506703774599233106574583961078305958423192830477330963774970217876586358800423389779434812666895956246690405905213226157917450365868068801970768887343011108181301871939510769578511298546582288453488404065658660712695627808215949229693165560269556597030326135416154922879167830118820252402887818636932758041869718200669989458628589456699993982083335312966679525346657122992652017913075556810393389855509333357744481133770854908569354262033746884517787404862756323664128851828061858687213237716493902500571321782989338758137769707399750785278389176636676277989678520762121814910075004517103036351571330390534609384888965834541468409113276424211220023388026352762316883239661175235069138486667081917472637001502188875504173817999533588532156418859593748728611795334484533378496788920601969250642036755035145409229250755765215275438943809449500072266050589106842505963658868560506574451362464961178300185250781346227932760481263438458432538534874711515761044025012247120099506014980906267398818450250417694019383072848095755436705930364629185929105343996028828196622373099876726711716330919820718365631594878465726321302876348241518886614336420881096023913082807234125555223447417932392207488475688023115039149745118079470592378624906328133603035909692985972661509473392969935757267823049575494698365773474431450565097164266678626608419509987769716649556641541970929870406773487778588377764690691040692944545632140330454552917356587958761597954609929614147052445312781429817712790924075852455386471280106689502989893105534000736523113097217521028851104491685641756191802482826279030011417098764820087512522353141834566224149998942497559826758271747353342960360615635408570390545158931089201599637249840374287713215864846199881499259382129755221839158115450196507672596437842384059983305628226621168096745265304021135585276962092132313186503918482176547920112955000274089630882044498006414566318969222830276892874078428197978134970801476277113972233638236306774895374581483738223575412523333791418153675618080006081471065504210200701832520267301068434548827290467766043916821473001430815503002738239122032827537804928115415182856435406012266867281847017555474420275698797343967056959176831629904224785343407648250140080915862529033692147174803543595315552130555071614347885536270254386053789212441215306294179773856963086812555596758687934874529388148273229628793376661421730089138082719429434741255350141608212754931839917097510294483979462006921161687153301079087711861544131706438839052768900711904758281730080248459177426456190047826132069805127355847980214579534491543772699648732606038797463432961852797698190815918111559925279204116069003983658612820248388101259816642659866265897901743129712489098912069160186129079464816892576075183670366798293865179837461832679421420350192738389753759132466419408307106789136263212935206315865762909290743618006883415365991474199303071590027463339628890720873395138095709171260626113549776045128944644762686489423695959026569179484744177213370456147626088585491365860994965891167112134030698765722026381677949165010307345254461530523889469714577896317608915708148368116658488517539892528391906306003032805690061644948556637929320578148005259038118302637026182226816201767637091568707824570344154784034312693644957343127466463958599550036015611275551973741136372937877936120373918125065851805072194773333892219024229317117818108402260968569189403578455719682542777937065034362723767229030104458926731297981643952964192615078692725082397990114747653025055526451369007458548961416332190742308508640592200284109018317965707095987108221282923320955010740854776663055933797902941206995601196494194752806628060435639000646839819196397656148971981520432856884428346399460175914508510880659219133441657209267067282660735242623065817567656536615155874569428319026242864264903895170587643901092699068531864155115336878625891824810174173361633402829687517568904386880293783913530580946471449026222659074853659700534095188636295244870569758154600344055274071701163135543449452170392945680693780648303609274180294855669443225996916476513345127860756054006327058688722127723020132173949346220460903474593185466378135644978020914135193301650871093564087096808883457385512778047453272586001575462013244878530006147062156373958295782623129170607395372968447140482774823250584355588803497020320201956752224988516327315531059789936056372882107800288571457424075304174034360989228667283359207868420927938224528148031686965266696175685929413697480575747037047814210267972931061252876089383826986832918226107290385615820356407297049070814122215558894654068279115234192896978231461317177082632148897446041773576086215543824785913463687822875456424712230440001379613101710164978923547938430532626695022767378902954169045004745020340393430858446993456660099122852417108856406565672040406890816598516412862415123323994296536300018871325645871552234578101826129798606714215463029022932305133378169206945922302300292711939857581222836860618397054023336112416742288099177959111083428081302011941565088309475526522723330620722156451122302870422596254927651625748516795530419450649303477343693240490132677369115387556601727471760739980391717934408820669911972765053134010577487523681430461272409347098852401191562141907966509176415781959488229057101233007700516025194922709766943805558410228019731734212514045653650554901231477530011486428727829055379865219881918959872691603302919410713530078526138282999225990850160006445159397657569637873325723903499100514816208402825391111497324714357355856343303744136790651209797004841476725975714669592448003827278222348993598752667639297748132921647421948164357959365031605792758387988204729265553709516491532227845095717886581479818916058355091399766454213249535538454093126058357546125354370996670018447959539048714750818955737200141168294482493678276774139518302730544236174324902780687241465485714504346757940823186657604412578732437948891793914968628590269709153083969856881806220283591529808679356487160994066762487958268217482470476702562273218776555438112813037810772419184895651844101571286465283631465483385752128457060880234979020606212933075021267731643929106919996220761494389453464874274460938116495391693097953785362250940753204110957891033489365497245428968373342860919353683648757362783534569707748136455065541172407744484277251445209196339454982983617068351084671102977126721056274212195141759453274893139818276789030722995800892119957057988758145157644312001040542484412048795059495064945109793777011312142847144709824624329757057124158210034532954929275406378759126099674064976147456081154991192274206502889314228058103592157992392584455517949932622731748484476112464428936387905218414334438348524752894279689890219668116537732637147070370805565463908854004420042275916385539791630793361638473627057375192366829765891557387232639250540154206827211045476844136923366919216423134355759248702944292110346311098489709849531107727143320297569466853887374935258477261853543559535645604306009771607840164765791441536841885579705693132201682649198330062525535683985131099491275221645669245429858034914641970512143525281448313930011792029699399025097405659519648034799266132884726974384142483821949122404630950734754809275490027962667299323769435181588325298159517651985017376697556510176029393873856863895418333513496191165105663398243956454235465978350467282091897987702836470585992436396083315261695636890484666451017616092364730034873049675269980768347266621756166011368596555223405935697760776628748540200441889959664471803897411314536884726456636038053853336351839712276573977024190323272689529634680975514768547368514631335635477847555759961628536429544939141644839393813956987389963213526401609718588221488425314025961667068335433637688190729408928235578993742412033191290307306624555453015917858330744816244219685804806243123960322441733667020075040783640389614480783462744126279595816729325395151004137451723235101477650062837455422535787148889041591235841219090176874096791809237794916171095712443463218963789053187193617854579783395291445551178892032783572993612933328751326728554441598324626480261711704661292943923701523874075294010426347325523271933285779114114431382731646743202858919050028439831393039972191889055796045789457808044022560867614309604992720900849708924535168475488325118666547033014564864865619344015758415578549775835897160320775957079045271503124917113097801516398170311881002223587655796030434730262774796071202756286084892773587749882225504902927684139894158634444114143160816106483589476257030788027544402268557173019215599001595312101246724875367484350135880754049074510892894657556625127775069420441867263823934592949470413475483326485724300875208236983112935640035057067458423580795913445156562743862981214762046112677373912199896115623674711640267872932212168178081592706148876940728675445582151790056001539137214380060075254404719985786571142343767221057385752325003899406420416955792336245009019322823766617897404416468170729899182193148377879309556162588149807703974257539808364460596844221845328179978543715181183734862099402156052224306970847821170651144469298566294063249563247861961180038569063284417487753091022529771790523977019120464335834833111075949778553734167713303132238367873240887556363627870735024736626426378483708104927453275073199901500460591124446443993589627215055400586152078263567879970831438370842842857450058312902891392453537868604296738547720454607551130746385165276488667262120930872136492075475564236414221882870062347388579603585674480979065011325971560914521414986510507100595420105698460627754542562778842632085426682560494431600356759205480806214072234439134325651733795564656802323645977406009622116549390927288630279674439106399907140504281318285111537703281972246263610018648363423895473485520622912994213513370376548786324896233197323175670676200982209559494804637628358917371569271184976367718588224556642873031855094330269507182995516423523958199192504353798833918561399564597759160523374645198991616832206180041929778046120932455525194567738274148195274473150320226106999025088543494914486857938582721462207322970426859345692501704879534791973774380288348627517006137681483769258109698680150994013256758795559931005015996067524086770644643927839764557173011883935600537898002282054133775637206868468694146173264763428320280480969475492844142361549643251802750739111109071102569016583652911367607381371776160944029335096672062602151214338073790527740919186424468701679603292583130837253569847037333221127056768674777929735286126529726026490176874269857522642820484047688767282955733859278845549175408184612269223171705680882704478840238555951720555331088371675783494972355978350708958942713623640543716613187880940222813740061270297383741768487908298563938793100559670344907883318716184599962680100711039392983687608381723232195302174123992353355485827826158238268698161496609052582634076437514091570786063509737738899586057096069157386387146396201000148994181854741281535374994525163008396320136993392181618539459405515247971532852209343651991935182226605990157674134878592168789572817006415373397088712909323629719950955216359629113509868847539835120907162247466415905065730032986731997791498336855364724832247347285261472575801550097570074610762355114943707438950522507165957201833264442023489771208365771950740248881909691646533291993589578507296644933089865512622278831556373107560275680846893437065381026146415625108618966333033545244983215665181383475329081531318608164045728980425031133493447245106320117240047576200554065501654441653278283666824687203124227093754857180427322296767589279479328177784197671235033377163372825701698623072427504838543579396371794537194091303474913118749359366255786635701070225943241029243388811056344819530970166275414320752913861071560350922062650157476376197694809762441988454048879718646649653958005120342703650870180460113930678950382319097067508355394882368685150035046606838442534019638448357463672138395171322865392560197850063509961376879569751376420010109974778667277250450492553896702995250240891042786102506653873742522457318772179523232381235734110168387220465510213499390320613529396576204964458910777551008379687982763209479323418748646420958718330415613594147360937290534732097353594189057031413274689567595549109488094355149152429269566969351713258836681953319833264405831833453188792972815850500864103872789733381873970221631491702812265214227896756566854313760837699618990171802632374876620333294215348927899795994019656099293533784591257816889993419745480751536295424774463098595893332648328595439924248007858457599501361022472171131304991853207481316174749786008785976657021517479284194215896119878532404171785584719597259621332261936497755036082460805687853250215620949554653670518410437716882263707786652592551798595358795005809445913885952422431071493658214813046951270714292132918505245072449011737466387547142886479848449117055535881725988232095259688229281733800774963552523106210963100931234267742482396148072004567170240399989086466252382703762495931611161737678673020879564267192925177409273217097707739135622220481645083371387189858452948285705510979415114207902605599219491066527689308407468353812011189874570071722503163298704713537112932410138025410070897749574722559584734149014071031162121333531364677894504528053728873713037840973906150583534400451672166309672842323120898525756867183795386522494524491378760438615037237439971075494065491962589072979278996441408560529035544787797078505522934247960653667801461554497581020572772835209273426067087282440298216967915885937508540622587172803170360436888235970937331908883264816370223071829590374328359655760302398892572116611806270894597499446936576922276901690730107992309920177184355924764876058722375442356870388258712456359961235930889902591255668704091007944750314123234286014926437922966627646434157995297531946031149484955085157285128424207866576373982959774175140707724485686990115320937152901966462571351770304411284303104509774666409216609471636036865724465219585110342828206874651409175479716390478923384150591841717300437616380444654940590894536869394085878892782931239447982939868304055211394355737889529788129008363596402534193987005432212393788628869506195753493815579500218974560582767127028342559763944761772419913852704120805951132163713613031690193740355434864620841829758917858740381396104139107405659555030710345124094033135983057758820626772864009609658864557583954202541776438766445905141188627613377526789611720407126054716017909019055615196316943937271608116585079768797887828439114572152173236782146684691881670146809526247877084518299450024163786455725439723966097623553953942167303190954890333943336885289574977689286033010646401814288732398507243517165625260434427973046138702066869282037743932117837290521540424831342042576092243643783373120292832979871864635324309457260294559688808107176692673688835871806645852017604324681816712430902170857812148556430392323655740601883531272575824849575961662853872822334276493494491203607248465974966291102356222719161216544253492045081591576541620311842073227414643428240683203405256646500057121620955020115906865660989652941817864235540264697071440167978276849119900040458857660315794470484562270848322431801111339834343964777190755897888978678418601201425642021873661096091672062285470985971971258739087302065209136788754066920271577239763703870962509133835000812097398475420105893283289604788874826853853501510312668762653812703783199968731122512247554394840396763704680060676768378476120768995621116058276926762348734984009667663467632657703011127440772426382552772954103066667808445454216909120797905701623517996790072280820604819777197851235118540885218571700178051591814841135945723905821132932449857723585073846156622473112585760965631403914551269480796189173679783180778485722848230046837386421330761807040831958899246800056780468923117152604425776210281656820392033537699661022074183125068764376223192378136006550293105271880529086261002643379864295897222376323226200175550831080465226523829563770086597445612971545735681080021432631239105067247258495382671391833774888333472866102527429126043213450849644542291524633706794724349635205698025346977189996837750515260364606792232269914716618002545013175081017186320411710766834948891545624834013880416070062037290287017533565697524074987371841389438058178236170292936718645098230872848294265290260007926370071828882794412087354366183952315403134259243526608826532740961407495809840805248880796641341721416357924591311572799105474975811564282916401386227324624914295296545362541433208569939937072042676148913558584130435489176226845996367086454554290799278145664926358466994185765858622564523431799963271715082503373604918318373298601030860578920717761448797080389283986353803769031043851076678004887112505425981000346569386353618188885327607349231138729167882455569928723135237643481970138827069432280312609743674969110719694944568480402855988105739502454240462741549285727388472488800855250823848145273453348151478613976064880490424641034414184956574118334196177514483972613969160139013677053703491522352787217491134239072011090837112152585361766492568538896979106794027514326838673691874614468556418275688536708658641151654152232166090489288607314676228532746950045020130743393425169096751913575027508554291669897437625111613935183794174519155184914716218714188216941488846106169225937933387172096394550612564947080893538541568234261833580805216561476092020847070651837141328039501570107514451930162223258458379157750171269508630488148173218480523026725127117777857137071488495859360899828011183230454954836237023043929534588655294988238476966726966777237631420880994514956848851714094804476584101149253261661289097298898271924958863769427361693133324136371893726949775752259922794983855268394319921806640875530726740217989954414873191389877261475047397324740190847060725915048247056893331270586140978140483843864382255858613810315859387747452734667446802016234122515034457721020034295241364453147440396804973152695461608203233945968975749018014344467420845799449462220407889369235100132905653335251665721474733898488590448346509016201097474605471196783493782145118765119806692362928358831002520606701719472930672836618497798764493966820277915997211381414412943685174051023724249806035349717705033803818785862994703616695673487309273909209510114201147947696514486034271492479605156152926713463403741638359633679479415674393607420506379782224601383343957881524806560588463934572292282018953383801572965823201617171897367598995864386489921807376342979661920035018924858364684499649061638923726418443249517464745636835798293723332850801655656656458835399567214019746982588657553968833799766111934739310321697243317941996546032824427548097462153502057465628036359301490480579797618837319186212496435849129486676585723732960082809290787753484670250744458795027277452371062102320426065676351182557382842704907159968827586251450110080614490238185946217516293580523171571046872172683461210616989391005823315348105843967736694480511332264898632206595383717646873533690900076238090889130715244798744313609409709489756105258002632291705594858946658714928556827231271042694605072798465668816802727490292654555160516556299971695347609690173768189327113821310845115411345695455760460583264669172140082661989488622440032204854162597779626235809286845403363264615165629110349845568135516668803755046576818187126893348361894974127982668626379659407221843654156591876198416337680341598556171460752719445141133340270230802385750956848829526723193917715033566388950684585645402743375735217473643326050918766545555924077080645905164549311870519357918995882704082150426108034224949824695968135811062529592230951771869611248725175041063338354533798457574031457908403841079222931085774394543969334085212430646967745814876793896415587844582369044207189928553252938434825442392891525388379442039930416578746562275046401162266036777983972612380609865197876450773182586212253411676297963738830708182129392587531719216692433553543576229333906300669608669284681376886120275205801267568157069564014908998789516770000433558083286839969491212724880162422597081267964329153894802635029559390268650749324759227718759638461860263361945708860125128737580868188426907202764368407507132064827687728005462662703280490521741190840344568290053494043132154449458785545670775682215074861739664931946653715564479208196340492486570716584114828816811079389240669289014424003173903198262699147394236959207509376046037259753826590576989680971917940779606654421786099264310270708794489381353957187786329817271036715292739312327575597694781886058911334414465851532339210111243096631334605018525531333870720194515111303389121705887145068670082472493755287890649099279709537446534886537103235824168483247194542896184974677567516664243519499218437348377419922992559211244812742878232945807932053803629571880680353584478587686639209122467653443384890953987486018172865205377570949405901392631985947974798664283470237480660816070382640411083586472580566657280747973472082148515601223044023818936725906752195207106846425835070395278958093801086111772408407485206683853398424266864124831545000526786862210818721235412376784769467784700390576802256088317333048249382876499080404566616239926996786562705785363585998044876117727131055939571745375473041368180164045362016289791837618411494342789718217620343778670154526425686719870056056387425662867364524894051743139596085499078834660451335153885852737611995329735348671608514284512147675090335196984955172985019302855532869005924453589263983312908419756479412209711495340569140965466321827958403777237633213386032511487795205755187429973287028504917504158885624729954224905526368581887220584156085018549653698152274656142322435757314001342780767802506267169159610660081729451638930575587708811106635232439407561562118061378322379235127161279824232372342213681556428871853588399642750512091674540755736032214597023523263235065810553465039443818120738499110160778042491438570621959152938861684932386214780904033288954456884490968951686932831479256801007635773408798294448112740194245138852706786388761996908558462826534810112308176808802574821016237684627462855266981139547843147772490273750164280127970407061909194009776233715776799334007626326596456935490871819972707228196272708362892059289435021297108030760397767952747953904252111313039764774319942453328493354594385215273556565008795356379298704578773174714452485369892492560554999914347056435122494906134955347731482119395618159194294327901276337052683876193673764145719350552309584094858355274903542004800575850539906472403259608678527477223245555119823890239606268031774981832308404481609336661829642095012763589541216920862769873226594196855191645961849882438900072326987626161263163271716594397665471080119692477606467441137840636967544857251067727947774771907034935657165494277619433250711727081349335661542929104632370258835308538901515535148803580445904155060430416808695885104387445370182513932816016925491604287266121264343842068388483470647848314681658501694172311529265512224031086768894928153383437922662621726336985329971855120742806074234723826758862460054726738108264675236108376171639225893246784110812543087133835071198089343947892381490125443054931231414545612115350263347669503809062323024625557874223481838419676617900931299701203569337225732119418048676819800685250474721525102570473692558511591228950155639020992893181858701686664422918245130787893487484026617345598852388731520780061699207173482049829244573708136160170670742783686020238760040367295090529807491652080481317376525849505727080425560458759398555028076812365335682856849402225965961479051018265439201715767456353174483614910894910526942964248148413207915055346277089870531385989524118273939710161502366561657368154495126764208150839991433844517894561724898576425834896929303682880604059072020063739120915863507489078031027357227854403208931018704600224249813356773908784784932655201586558041641609328300819159878106313497395396977179349294359570062160119213154573178876476498434423759763052640442809962028603600055449590577567077612705600216974593620866196860979643771674411086641515995800859431380009501025107774780082730237418136524969827119026466005689364682945769262417002352392480516587354982709128768518156569006966421787919833739047465129856768378087356734715686755499275878004517062587345788796582898210018170597753517016218117303514328910374315693133121652319504878029932071913048287710646859687453803549701583447576523709800308033447287788777697029408422634713954129707312309521271390637479046881181695303140020965295110133268678581726615770509932948616690744450583739021871453496259134423769030538138455672808764882658603141158872231623275691462455586522580697892245031176079210306127817128929150559962352934940881892208632223973405797657486695748247147174573366974049896195613798413571756291322292963358775714583691221945018240662241289254282940509189463681485235235907499564864834389140544851569552856934924274045006364690297935572842022928369678676328642475894459729603513706896246834857376097420706335764579756382379230831347838553974719875985665850499313786589915487219079297822442444678594469641192083518056042361148945227374259601210066529190527705164224366426015263797166164010640721172198942711703653921618797816878590528970097016807236175593288078381211624610437397290221125768915490808409327195328667335618195953844106379876546882010994698151991715807853380841523602586783397539180936123648613168306776917254367328301315615422271781427616635541913565730175781647705955699471579133077121746533662553217952210850981481830127433829476971429464646862111361393352201024087851180488193534764754755990041401739787562000890596560281029489278855397179872283770492634595061931926792423951460848704988635310783768552395589468195726739572048138448359461112971433107789322555651363133692020482782853564338213931344076909305474231046068147785920035216301523724985535935384634208679655766509353502414855640193848343335372742954135240813893131923142440622331554476898137181802476897125115883715749326395686528543341951663923689973901607399560344581828417153535062365751512700877872460136825155676074937050845229213790942475020210047167808909352361563848832870976169181897316179994084856314340099072799117308162591574313002076193388333128479066809044338270294083357166736421983151110194602150257796992142249529820173028555709981162637318605457223457355536263457021919962465847656237697355059589619173697036568449700842837703864324707333058408947012563874070718617880533997307723588178627053656091313293122972921288618558217241701211758077600343798459766069698369946989357691948479805946158296635290642500296582903431871813215291442025379018436580928788383691625166742434616765351123557641922299983548093595871271934263228640239662395776840578465318713561512350430736324853640658100685193098509635140241801533754005496098264657190267648501523765813732614709703136225458023250354694725120783945753146012007456262671616134751219483185212095856991028184314877465866512952728671276752228090924277428730646933780634982291071224013084029997420224574532453516002297880262184918453455623698603775617693309600989364325120404813260614488230507398743044436494429584462547674809430130332153408876409777829671921743031353755410910906729780582771680873719492778397341590614172215080706910584275315217406892807397939599418503071070539777352521121914881632984475368045746021324989525540866107351042505841391015031972719491657266660868439662511700250764792527273928770471546000793120700056289280251185780804569253766701998385899013416965861680308846284668214161942407360556317836490608323270574218174861424536774334405086061355562608533597800620915209245938004890975060376097283849279680713744871763995931879419875001176446017800076207883217806655002523682886994790885261917915030765089496599151472786290203748559495394989731236121899892461427350496095095397013107059872988714058094614236242074957113089392556307078637469814906859481900858857609100820436845053674851734812393690847130878300084123857921340304341884697532603196409319554767227382226839502181942009004610826503534796218461476256899557083869493447970446318977131324625073497969523034835305266547108473154538962298353071643332713338586448033032060169857925868268184370298543548756006767773525886205122575737526809676736354131320982436041709646703985057334876740241645626864030174758351597784667708043140073662470532884237342009105563130488850251030888124290845830050431985093620038111754051847168972013059967682208434407797422403923814350620530794111035388360907415374342287051449340965587667680044241158730563924229281586637916935618438274204480558133935673244000691470768545771224982129041603701284677252020368157286603386193736045892282497828885231696109815214733076278882858161365818737631369249807030059645460949683507654483275907856956540444802046117918996816704448060589870596892550825963929433282885508559473965699144854954176590999750836718689963256995785651219418444883632772924846958572807353247925217387625169277641304423523023128598783810637279469654219968558313802944849547133528896175076199280476490610229466422125239154115340380004945021415254515694582438878667278821274992237526374194189445106901028614213955642865097386518707630838873148323217739502979379957786697043191052864426592386567017336611549055359301354223048516217611846353061192385692730077497618212833988580078920739725025467219156833320767122190090451906194533873336311708901153632254542974690321016012964137644180515004546544869672086164008638510260708381882298927568384521336008367230811431784313027258983285107989423449038921972223826282871548496213050914346382915511816186431783283894773338824116376046629573338852656852216268660347018008549764342406252071644395557398935432351775891336530820590538908965537788269770374030362177058624550088735903180488215208169170501794100613106883846243409464698800279641390598713104685752403032149177445214500823613683359539579620270154256842805879386160458997692172544162431191386760009715167341763900568986035146240464143059133772901691362758547938108115755620893638648671644712156002844384717427979783031890543932223029457218475462035638506728221558245311257904186144526117458048815236896734893887650203793429442911770081087223890308334200738792033967149470856730933618935115866171678925830986699677829107039666282862749853569742561410482192488154211800420803719465491914585134897780390012684522743315520232593809028158726550173558947676954516414248160639678731946767371392966270381201903108169552967325911902692607928240248710286981682159840703388926359974636263591584462239928085781715070454440907066362936629866305499090685733807014428961005085306643405116359430643858132086988207582944708977364439367521757830604112166343225487773275290908782911429617563231990078379107493160871106359310350289050874010401663757991821422011670268460429292021159183791510185943251337071767261962793869588023832029890034494088398839273278178185538637633979102909172730938348227801077653953289976691626569095343353062276650472884730313807069093200513709942261790208895832443286604424040211314211956818368742053587550973430609854091549971109230156251194274426989881113811214681469679081229851396791970345245300100585501434061817042648879207132053411709966799197003090483766683633076608023537464542079780407748631225470823843216474871998379431790397603382925409236667257717938493547853193815044325613755274082082574754195340075326937970841333340521571482307773312962354002250150826871328901155874815885942140335702875465468503149234769019521534423594912343324843807684684872157844387161620459054914429072327606626436699844918345060357583887563275131913962635047252998558716487019914459521889008865288168112789628512599679007326901162600874370100639838227959218551407489559583503382161807094030269853339223653770231939213846210624785947025459201210405642675955270044196164776047476786666025759310462891648827195224459882190057225746363876308320672652597888045347296883171818764748559345391147615366791552353625169127973418973087590692344866004459539020031310054359742180976794709629324848766978438066579969663756670426684627502654666046268272223790569519285744334132681844344672917083799073581782537338403192343382808407815715826715283847123805931798563823928053461849760321215322939854269877894871442250986240797416162225411171442763991560678084274311619416221287214572098934460477467251748655307906647718492686693462390054897835545214970035991912676029145335442950483443604063637045839554419871373401193497089925079806695744512533342426004333864284165077505958202125644197782213436660338916221059392460684970472923561177859699027675368481832851261837470562177812741507807656614723695498348508957951190169296417060221483269711749883237465790375340209034730520561750403623789214867752045804352314277392453754550591450299725780714412652185837980942346574207275461228678567386231869777831890686918379772278304202431389221326919978587843523704361531048463284524984501167411793401567702638449428103701853695862892785250113992548009089541024915142024119730937089064445073423961518455807034184121600738046019648851706887276223264050088928400703990320723004173098869232812419739817079572519566681076456267200523467326580370432364783140912710651324767628459037189791427840019841427637267606543007554525573254401418978339844368160058231519373338202752504120633523901521998471631817892467424674778361900553059807488461559845594417013562304041056010824503117547861385432210274009735407970335770832172751612836334179417828635063712606521283685947166964951939616887552687892419305153403541612304729650332790852239232173435835597217109335753799081049335857775048565561041091846063135708497160194259197398862051145330948960299737923682750548299160546950132289638270158447730289763073371291121526762908629726508116423479900920772657371109475108434469584290122792208575892548025868569328594622211325612605893853808681514381004268162605150887107214624726080571761069758036527022067976727067455172351007165100824796296219955955986025583400784277180914570924326038861335354227171193658337640291227597499153564453074297996786199757218579372436496015058687298977782417396327990013821719137311363686457297825382258234821694226405532012153493836570684449966985905267593689695536073969750663028225038315378636028796157092304739017923313647913788515459310000168717836421179270005234966943671678286426746083165010944431099669289939954000201745138024190583153109100595608875810973025016709484745725799984051532866903558506964942871128888681226639512215847692624380951654090586524205285030971079610498516172565495571950498023425354852748000137961589684053454752578323939622491073860000811054180884388028718746038050548722590008502160096985616539724606217405505596377983443257760246603637474958925027551171937169573750586046923259798247021185548122950940444177943251550009728847297010237283988357973573459711347118749503552125313882432201801354873708426169935351020482154973050260511106761104011560524241720357096246909208176448246384067708893556080074174296769760358339062837330345693693992455516096873512032280078132060458819994989564978435515218132115179813057887574081839459971710922906807686005883762928677212928709676767400765881421274360326900612557499160699525755663944169050213131212444757857604508762455325545220229530797598384968401755608410170929140656311460051570866009806624753160344990177009575010962190197501114142085627763765527853093947082099657356813262900396636119506993588724114926240259317241321523336459578135188919295094625041134037666516415307909340744651840852460656766683940955378063132856902807678751242419470736373144834566880817473457701207835711105419601661173397822230685918054169944696770464849469681304638354418860939155095269239495026169935320719367881272081129338143285032784174629970867367113671253931593827468135361138319424413672403678614451386160869650635984654020971056243338686004787178112920552086264892664188252171075839567658965471979903730880384603463758320314660359343076592904549264280335164350007009894986872789668365069649767866788805537794986672454876075513348492911451477117957729363942669660741758005194794879700212831074098029589127172368034253522316843155169044834255273919625879294437419660262311293034696928431918239469854137764899823087902313999729459809124986794338011869497789032586166052013206146082081935374434996308515272637065156419711536707870386284127283095071257161331519463539324174498486275886594878216494406697768395914976659496475632838210879578084906019004304189275119770579470893410415557481505218192185399079015557502605296137411612052686929745524346247435717757389742916559948678261251238372430559442917996871840041939630817420549675564984092078740488453699447456033958276136672363655418375855826037826749896134573333361820745031215562871132302715825574038136410697801456503466730497532224376009484938941680317742064250847344455767213738447320292814610307668189196395892231751093667908508321199222790136017918087734004536656113879910306567200671168857054556828265216769538647750670616925344489681933802716786033804337159099145751994592147121446032184380874854801767279771268326299707942452035968984114978333397479551430254736436590053306316971622578550196580048799613054162955406268417190115489020268001381425565553976049701747948120792807081264040639077803937899062040062652407894252203096244685294736079556201195070851287556012142297180833882808544246034478585988310094030176647754245000396109625944807111732537908308489374327792985734531777273628180066430271540969262948267360602983878185363166233804900073880877481350205352814600178165410871763759029969288010605721455582240444140065155257050857651309855471363852587290454321049134182724763507257454360210846882513635162346001955385457086972949741245450188915751364696796971671498282854199834842043202654346569534677365918080220359602687474312242584759221720406394730018329548960717265948493035352316240998972973746682497623083437063182828099716101854550620640853811620116978478863353880614179057696759019058883869244928760202412120296267115255968374648962649198651966715095812752602722560419813439741946876307394244962107523606532256936332901544193514248477249305552649469199256637141259183728498063447294935720896523571918825134294522439381580447851268333303191773227662975150341163915366225849510950195251396042076076730076036528102325701967479264478809611313067885011892184395817885588902751039264251634002884460954362020108357729350446703910041992118911103524445670985318926421691160039540272112684767148926000393032992007435538446602984128068000055956827791575082215581543945633915680233884848109782337752141734768949545214318482373348554875410774302472187171636701330192181813593987838371708446351720817856097346647598329139728150586792055271498334846184766278172354492817464035601443911703559836972022334580301864409463128721591728531316849739928120733579327041734166592349368335472230656396284912051847328944976606094896114671438329616313178249482022913335987848102917416372295082279605599647810053360443712296250716275155806616165727974038047170598966545013027701358637986001459636744519649671554157853013580691767729303525180691168388597067603695199599111260619638393285773600386445152422178369098179438745791709056021856319997518789535336269029325719480365079437966576681429419636961777264403206312447140245186554978026806923046750927273791349304324824732657271123782505070596343785086660121536823496088399730328005690014620310394543367499469071854916535832246736207574985062833059330031459861625951376898341897193994536793638645102601375531044255807268434214357142437868920941630838672882637209440360250858570873636576332821168088287007921541366762762937135204694615342290533446752937887902937868318291400102679222773520928740232874146057578368729252873373587492791979680575869526800301637553056903795434571696390284314152256284905390207028790367100907787449066168638432533119068299840221583804609907006734136643749493616637738824317266098798324636485551434084581421356419080032111259504258042215192342732439835493291266348555923518468185895138022818051431802474593732852050351313060621040178306196383916225179904087349467354734881481515568796626948428917587662583582274054280893493813848928215239110604442399516397203398824480235120469669454291371648243894932786419426391760121400397546874473439494937987972413314422523728691832269923715684475916886970824929359385787207295604249814628382062149167454654723886084258017943831387278751445441462931782279496427911451500429080941530156727811747477340469856652849937568134664859291809252340020828252932961673909307742428871940784155621141666699303465196004051693434191083987862846824853103785301368759990819026415641892614429801049466602476684135858797339554378770482254804257297504938670839215018534521120052872601387851041458182577082620788401119260831524592901428530162678939837280376606931279310156558141990424974927647702957523883747815990896105454267204709010028408991580848990206290473748461157288514263871056873850610144944245092659424615906855916610801251309886032514825273883191593806146796368794681581235807582899670751884721962228751780848983648688615946479431873457620245006453847665945908797025488338210581373667208398569870861879346652178309277746286859863887237104493823608319667378503564714624927929827439623255717540385628325025321937641776768365731209659628244899430442879717840595401205274488945617430302848594524738957244737444399211899237668227111854188005533369535304628156866773049288852409514446213936693713894377424884208808664176064718212610584166603773554367846693930983989285327777877506149627697448185067771793042362764035753211593891252547635501817252725384425103638395555608676275193716329018091132952395633444686707698348776716226143562275594989020154853629827627008906185878466624937212591028452099921555337299917406455771507632286705460242182702786569904057586608707662788327329955497077599888765247965327585232106260049387698638675414306467693383413573914963098036967040173340600988588275463992573254331691917851173936463931033652860551279548907468135849545570788865922741845476011913162199665054944502211651518627183933533595396942143614675170142251555014244946263767759912940111935138057495812651171380753944793115456743615254566897025169013290127315814573380126643334681249196111879994817995766192118710993271404447341718392413560462236042730064532432434325194767252574712198988999663181197890327864544487222679859984328418399602480629436089027122988765094756296089214167709942352496386136312295534645817150073683520378689887067259430110404065603706147903294595197990527392887419284588089345242594215843234005008480501457764091142697152109038250090596920938900937443193426250342679579831735526456627526193496628074278186814691882684255354410396598474691302448892895013903263355598211204679216114680160821678650668566952725711480319385954526341246985373566703387092413975367092310796232102212565643112483218041470241054687435563089016468003389576413982513604212510692341323251793494638246327140991703017101734411704932830560926272795536986035662044351473203485201076665882935599549056877913000311392894613430127106452633262155733324129553875952160762913978357147920147756375346789072580551985002220410569051204498346994212317004393576156856342577084341953184365682553253236304787781048874134162029971698187208962967811359510982386285671444146257692398140820760176358642677071988689229669779938508992880779633104255767414960050571720455409120566015487927222460770520578434217557098287712749122975744348571151268160080487181823700573679695513630798293226179457247285768322389745834118460411124185287286164929395125252695983302623016612299968706583024730480815766886225833238860628274574126597630010227188504827898793960570455048402348369574512682526188693038355713072051133440324614434532566871479829674327933104965616199911208994616969519527876519837569019388558241807957377426161245201160893751583101362681125630366484686946040161069659714043307069402983022252659042405430173173064617507760688956481949030794872605058846001663806115991245753430958099779280097482848044232790725970463567280658185265018368578779618001272790722428198338439439798980478468472436745409142238014815247891463578184681135007724710416842388436385068070252096837259103818295367595073612607635207961368678439121435964320424227426119244568860878861753473324015651035519277802137858290552889715933473876631524213221830521241389946030543029255415118629615938373575769276256188088959564069670643548264607742316461909907676850445955408823245387483641434166335355644780768878846706479921200793964385495352892533161128386701291178774563451642294739941899432376591461322550677803380775532773839448888561949931414750873542040945876528948292197196316549069577804027705147750179521056438325673762589459139364821157462345260662981109039848244872472211578303041623030111285378793393198908587062137091951561321438326688916947207589594666782071289227997698838401319720667060350102526664947777924700670733443100645074306410818108769617357277675263985543118254140738365718503021444048877137511342642636086989339354006121204604407513254602451915494182633868215877056003385600324988809518951073167192986424884553094857109256513932124029596648719557082347296354935228516041128189171807338830595329394476141341317984393952303573419794850590751745114078409225396334604142123170196892482514968691266613077374618834388029483690415418455383820290503041924711757996206708131385569157001270798578293957211427846564347987496762750857611648321397527656123787110304747695170045574641204342708699259348658344264724733919446253784409109124852710496057835061870301031878873675864315943903339059621114151524656581865886483071651261016322360401167284980730450690543870883038967911105751850181963933181172381138673347337802758794648443531324134991897890955828161165274196543121341118740489356163433694893816766319676081991779861264946981203615449040909492952159221015673870258135532175948240982634552783832296682855168606367668342314030508831500330532051844260890057554265465458149969133638184293018762748943226995142007076903562823296160843605976335352444967058766089529370377690517792082811222437119806136350388075384534201508846740137071994765632333304191074267117789228252661264586152960102838379640769602504736861724840713911279518012830191826801185984899961742159155718025124746389179172359000618592425140946175406017428587869984648729866724557860959458168828416950760599793663291393951795153367251909850236671714678026380612199046329820947039427876587527857332762716162890845257841730022134359920463307089533048400167049321763321987458304143344087699739276184095766989325263764839510933959141884086644447428260170921434825538041428004061691048176465831440418958309471278971032189378533180721833193780175069085552186652293407327230999086563176954439743401644387415927287474661934767484173356561981671912877747020895891304399777891403343786329039123588366588662957875755351347553103413859793859119251574862890636153676281953076099683986883829898924850834754138174951122305996636883571515238857070962574302600169514975377496686439009204793159583093245578444145716532212421481645299208921944287501638464439927075436158965964356189798945023258250487141481565788236009638578489408650858077795597653675157185750571297163044561064670711385893842376650703647927321543137759559951281854868790362832947970647641612338614094437735502701650039916333389224604675786837859710666632489473891479232083627002183984737372710915480882732795593052207697594107699348910873238038211224042067557756191939180306750670450380075372007707714125983261388441470495072590252357551310525274373385641825754177807370240404922531641262748668777349835159991168896667304873267687842003971343435135238930707966066918280796687117209910946754536021120241801492997506082018056969505077371476032847909888334726604656794031755602540299626649593998231910911968133648127662623268257719853395430108718804589863045923464870656857727403747264811351520246972421853082693551218987090857407020190775301246443698660305660194609763657764525027685124604735734225507860844352443537927674436028216935896130293157774529382575444792774669591994633051680138391260153541791529116937976280143185250954014963874389558728302202505601556868407943534795591510242149179435284150074144975438196786976688518320983892921181068709778090712355168786300377398555035373471598674762473074839627129144518231424339748902618778808611478373772015647787605967402760051549879559777640276025455779257117494787066706744176171053192876045641351174554669306769473890874334791383428548704598966868182640020579511987712328710447706752998245945610696451605677991497954843345266921813340221548174614365115688550155006771384310916506750241404262528494464810590272248899361671433227438809857405068695575126368769421163856307199943744265653150956728190418934871751115409748572727348631257195978028294139561991605676796914691988706011606393924124358572225921373401543342973976669796005925932559138646296426823413199766161371121001683126171232843069972563738403427237705287617172850949828929805584667961742648225582765305677167117700151721066466137597539137378000950550377965931206669181750239200666055650923402570555078479583695714860746005692256643387802666166537562446244198371277730291545572063964204551457728319538399222220349429700089334889719762727688013901288657780906568052247603164558355064710541730182885134474212514981950546429437528670087987406394626370252767244616434732748983313217238443737372010694711648757449712046027970546988269926368554690228995837198474544015097494557398356174748939385299540507007454266668559773458275551891990099331394665714664949511959069404400988619523890034726696488927167460491353534355434254293733029873398813333578242274819827727532355828782358000254754047796500408851374800914652999924058258388892546933976536260100543078975892527189844990247977092047628595965023940194508215705171361810353573126721386141804253848001746113387413041407343280625701910467374416661770831574920953307110200180483237671416966487255410049296113067701356523470670113150561631509187553728773655546011499974061160488693045741502603935310369416029539892409813317259952117812179719501068446159877836127032163550590356298756294541257350395277293340932890248435868096077740357332733256531998253914675785372046319218654561150100005816904220736391488552041925160285226982932273764132847869499943858614353463815327335563663954617649974560743022351762417571866303502239460619625791102515250119694815948635265070588432115726076652936912494270603279082258376306672686884867683153267497083666411561357093397240062959253393222732614857743849181137511423176124424070035106677111719906459136427903323162157050423392984989117341392700605968044632991513622524321797473492343460975528299264691359264467945598261082169283442332794820578588490666267502709756521944200220247982288035886672113787306671460734720965087238343387623751846795817137178966721130889850744048981356731264698043780210747459946548140817339116314566510210468454867530259354969932350691429906125263056382371779376014306283016657824053372197989254688544973287431183766348497918190645805135371518763414026489079776383680562670530430293169703153992902006722013128385162743006836459708683036210114703691228703704105327935850046222921579305843445528755416978572415874905669319594997242394108896616611752382151146097665875639715187842625669174336714315380955386815173691671760156559468254665715745241462125850805300788007638408131504100313002382135266071839799522665230004139519034685944618125612356554252473788415329511416366291882590376089515020402747508185191504727604496517974024186888722010326885283843097566228127050653104216161368950881026901875305507017753131930882274636184229257452809848588127538926124421351266277600220981839143000596095985611791089928153266431797318445442387509040631122392521655247279659409363464056886921262852149619034870513739741698188995694323345671599654041671798357993107252617418754390165065638050720849229419261362860413745410251381942329637527608435530919723639834452776739983823926958818434509777108210483486847353272167037109770890368122114985502897458813905201138926285660620371503530533280723239849774916371385560606100487919656170343777677325748057970488045429429914130050703721218766223304567413141087452695978070541357217494966030526023525233337401298017222791367983303430424570987731418993543089080982960843363326233155392119568667352979905647734559771990611372258178565080166388906325892592223993682459363309881554063704568943682779508880013239709506098270814673247836611001326804589645901108958826648848911299741149595510709671091196440854439051549010007776648176157815822174442611005059303804992177475782772247266877767135005679497216330350990481171042308344672072242039468471864967819036794322026532028152833423367722230109360041057853535628964729124904256335165239050360440267398129492062894911584604886589892330256747728909078462045564664334972648590041489630696329260504883822752339201323711285552509593789548450162791558471948134381329872109346489071572705481566564929006426394244593778552250750023832824703833417933639936822717339452099026496312426263103691870122502590045377333832768832865268141361508070215883973408104242323962056914861222145873580357269420059552404149580188689147389436572496767171554384675388813535648376684411042037988770421632931998067654446817751416237420346896080525644517164731583003557204854024544995300928757604766426144993463775050709384179320505147370762848635939187771498381460202115080112337531103753578355672247996497742269411534320733736996161029541050340956888021915204331251837466828799153312350238289419859498747790712757467478641089134125542928955518538361014965807317263343721191565211230489233279033060327228244340744117948583423248466202151837473677339946740535012983487581199274627160565462722560318693414132873762276027749994309310629349885630627348151389449034288017668698780585630863746648860186517852245414483443990266474240728552605261297732276307493510998300706932087428413147982940997409473661074534377471303874155142470818383487846110838724199674675664475594126014794820740635775431567973362689614277945724614858256230868722356334438013590952852955400148587712325530921707861883172539867661208136676359326039477685814614633704525703080651575733607611966578927501707268634100987177117429322013226296519855783729025601393096717353127904054526678552152789093661805336826829335891764743405403282745636241736721216294793164563521907716661237834872544809109280043731911669262666994898506564284386555963336118736128226293320440599830880734615602913635126962277169307530836847668636769973482382168998356776059491116385376715210180343509272792881477034755679251756062514453787311238217559625550254188659805338282867588362510214299087111209414859424853493638061894391339162862198016661467404990807419949394535325565213197443483148245540593014489481524428234252611326146624341684625846426785445384077646049559513962320456330485899037450442605901315481748548797423709603517644275815176542253325472262394204840971224083921064074496541502344837484312057723809312611017392601383488154943298501274755311439915028177221771899972706954451532255715373195324158532529350650612705396342359961862264426462841973491102848764554402570122993508739231541818248060773447596696996231999372465405973848356471509519161964224579520042528276689356395047654007690950288088674347978594944399484868691815037239032417409760654507100826507860729540091060185439933193428653969099955624749242794639111259224805843626314872393917184842136535034488854364413950421299535893184830741762288348220753355063713584915019203925438700433550306497633097755594394904990679659504289684313202600634120355914781556576188159840648641894869602493732882620878076534920589475266274317406816206723316483786617729493398278262222170439179029653405610726133485277424810804704952338880892472401019719029963784910552679102601839598479988499180523813300623300082867975878292031601556687872194298282733493019690486196997139393776986795079386990364699955309106848272246551491901360750771068424726919181949042191808034578087733310799142410102663915093950410401315895069608446525386693527743414486789697030965867010347093730617057220767344610760780544082111698513291674693558308074373633871720053092930868953920676986712058019158314110958429278306210320596247847178999881420680952365720327796496210681784261574116443450154590208638143318964562341435520799893685288554886575311763333839009447370114219839760314156400882163441053521653570641449484088203292518995527357580244035241595070416166901406423599382329027870144430141387660770460145041188952077861413420833036044412654581434010111181084263963774232263589369905077263328966616088698360958084938747635433954491767634613131993598418547727854837769380783592631059711237392595904437459075317237165756345118625495192464505761133951933304434941124849587478272321410294759755852917093417886837309432227508974830655440013008530643055867901127506048503545728096551839737655598279848975661873488581792341700941049245532109739672900703895491206766144845117430278323123961341653352249235591179951365031110728395880227730284528223326272944026704679272937892243369373886793901280532273280226812146687043727685728786089609827881621271632109564571048000438020417479220513385216879389216818469713909233344187255266208030685089250069669479430748559258745553257613545802645434776243135119205335805429608746129247094138106300394690362424129659663902748653180600172864658701487815468307917093116859422103609837387894353034421918898279850811964599356391463844598596149035553868428894412244131871257283014457027731275140724323063697873779087461922788522122244714728836732956228905203011489669437930623109499770458619193559267328172795764625040985333594306192736672325567621453059583746983890698068747131633143407979641236326776708245606148330914866336526197706092817729617478795531885073287311980865190471013308114417797988622436730672357934752391434019817287844542823831234212132601512700601217538155850006191263688338270231324708515927421891783652387738702118948765165551916447521182461237227632357108125383166491198091443368987002934923030107811749410500198568436324749046712155120312836793437009758108535560250590382406234447086258410909328610182917980696736942036478780940870183048450520201404040464115630896583512476150720648126812602631036161336317348118160599649831096190099614709688931490716286748806092814000985503811402906562920100460411443111199640361016629459135011769959451791839687496646961299072333894560518572711940396391809501379411604822603232917111428140381776661196110108257199025155081803771277511646055094023273280205145321966830236424321374289119677568019745933247757319039573496984093144960381889515527073852811472291286139479581663658616102506406814433776762621504210564259531878519717865764769307833235592293954794538278980423933127026228219560196899423187762846100115694979965170986928000477193416514690102401513831318526893414317550961784987725592867984332728683625455287951656178681411156502069006478299052551990064965855129113983552105657340604700631818074910577400468558104924618786057339113771558652739037552119345891948453990892828308229321636462036577556467853829642658639385111161143688910272838567979409453043646274164148370002038836710047902184396141676748036945079099091315018314859856933795231881736484190393211422030482139955386492133130942279673986487963138000536277921088658544399910088780917107410779280240815437052962961287616002496215566454733067258831485035316612358186858348389118993721706339078899505159877708313062001762861040283709257117432977033732387110471383481296393767300434438773316745780388405965408552940613535480836655758440909515296635010438870368520037765845441241353325959263166232555126486251176095990772520463321740173648402837676731558093488976982255868312830842429617708764061902449200795468421461002187799482146467964242490118907636414608604607529439039841576690742768347655451195682874391449148443922762241952843014111162700035472355233097884966848192674249995314811336338835970229708189367257986696944441961218582263423179028739209163997569903486307893121480604731386055725170745631351417532665233674404720165241416054228700511872686970557197947961005000030947127179028193541296840457586655208429501220736448621148690417876776382228368306108116884541339849843720472867536790411870569254607702649177623445407307888474073107550738904789240586649435866701469447113159240257805703504754636194120737790603670383289764580287300963721676858966985061545934909558570118743354527693243144047115442390086179033265928254345236336039381129047654645453883892948724509806277103185781776650737400509605036829846961166752860028038649123493230278556323707399249989679367993560241021703533315098230224764260862405412046589178679538389546701459004025707454096502785998558243733513404946738840583151071518510284950075868364146717249822853045742188786844254788515164354734940647455678899682154055647583622095185075890157709849535443516338600487920633172072127152277599560598283300858293228353566783813481068895526506439760998835691138482094712334516711055177206281776875673500997614504918599652944463955049587250126031787498251712839442893728406459338243602238625209981071645221440160640300135803269159394335381462896958376309261513326953217227702341383579363548871423490567168204163035384707813359430448691048912886583551541588501243620585939409470835329546912489829741858145185589952814380485756234728349529384763306516425020476786192946925992573804447476653895232743857733222570898867031078554557866271805134311833003079108509502698004941442989773099193331551791464785243665907334228115231136368299068215812184861262144037512391693327464369020637341959122907587411426996270776099911553173950595685317221297714321928903657028696162508547006030698953448540253589381304060661095289287336660855266762140089260254624900360633756998309705008845485422367704578016990119079309477323323246509451576266968761094958931030021894495721200334496121464086978931088180238035710608362813075573030150531186725601995942284703756971957622992251347511116831270723428557692202987234107533019876627906401641550558826562593101049245336081986945018034216077831040174608666437021206932792532179665595222221175333510216456301488318148321044332766634592747547377648284387404052665110257478755261785309959658464266687483861697803148776880487607103049178680045825844376883607899940638526640398824044290250297069130122293168818466994259609656001737934385202034118585689574912513038544139839897767272650449797924320428937110470469081321879423032709718418917825261229179817755695500933757417695800992587763161210985998434357161539076002473324595133509522971313427775370017764914985720683497992565823355752419368613426888204614255621018383446492549659161955533043424921498902276303363524770150529711223943861586551386044725378164200596292139315851936918058752248209276275792923383727537209730507627702893090331162357874496077322712608972673826967091423504931750274406568817131955653159845290294593837252700058758515418831649997287908598722020595681834240154159181522551874081672525252948036559371534088560421761738343235162978725563103704019448601515029817354016641200894777212080134040836746409627780505918506914213811916068639823485227592204673395857195539828281306696092987795663750521996498862403448154348734404177627688363652719432462608967501734331896970346016494832782771422491991289776490177006702084854595329107549872120393782106009134751888959721486475360119117407782684375911166636595974484326233218085254470589329697505267820934605260736289833609909596362214055716546673919611050889315324388298096887016369587483157589132832883612306765646703575145770019270668795934562266710644001356245336014837430163301649668541501085179230360960759481119775829454213426141450273863919163961980955218633527246485837303657907239830337845940491136932954542337235009086423086133056433452455215200961774321017600487144912060588516734067361171814533302087410872836741537984582933179625780069241534779405116379238060255139171071419882239414416872495257994568100743195123233710077315000900521634843441982729565145532780851173613436581399804553958676287623196296339284332521594151016359075621560615088190096832215461598738709116095501119386102782538648353725479005978490631988515101638124036694774865003995003486051723810775538955142463990954743149383781876864696489161476954531349129117721372564588342413800694126097376715979970687823850448463219517446899240161060819457971090221067921015758533188839898036466273222584116118008293868421916614153052839542766383594834295283864438916810326882564352791096298744481882246023658770693489368153114308237453208783578062042062072852085111066699358769555405798944520015237072964356328781149396713310088015358794019547851459762882822659378942620639387221853875074760382655392679500837738911355046271617807401414283044111336996576425869971814645402714456573985001092956016844604476190205987175691138597752687565464259579913249584495180080978675231909959674505466659017021295077512479135586949270077577337465043096886724773487997707568523957177074780986539571578232517778489306145145589100256735860465087539364427560745379675254487370958441489325963533333246798491178832736608837904736052091002000256631580378251640171582458005163994312270990581404891861810780953078810317204977569770532079114064893573401267063679095407681400388828260295832597844144922087429748863128105946527615901818839972403838006533600557717746857611273066885446669191968746452936812801714417763573157756017962645075870000789094816684766045972786801794299144457159739938244549245803118155364898577475754456753385159453781361146917269798822097810241207872472260554807824183013197570315421911528754319485803189461020639388281743116673693882720599859449740800946812496784418267514560093466379520543533254026719337467294833399561544289816867911219482906058036650000962861431497771102754324075508520335886319571812955265966004683284182345700950698075754340719773718256892176788518705009684563745504554798075350734464845233064018439170976909414642998831364314273341284379675929040631180695998703126899036090874509554437621258963819629299392819876090519826912289529387670328335889516407945623426990061347719960451811948550031712558406715743907235616893770982165156723722077509851580129822914115375648379340385694391419221108542956651744727705447059897615803197096669780978681802095502320452586160016628303049954951115454993293820257266643032836230709531186315663793897619896213082330909607126317149816360759512388334058958405915632567008248932568216837693563310529721470540016256865236633958849282332708844001317242528385269597004815107900970375360020585951584183890829913528876613905929290886766928682952033672354834525253553648785815405658808541269949213009144418123744501321526914941852721391589297156696672258098419373197805771703300487908055167616905469952391743024552679584302570877720196480683796838363557244194101481324410128694418114952353957123821703400317939326403329172328420004747869475639392505318366067013565927035281763853587743344872752705944665976658034796734706878199175538729397996613567951728357930718521528970499049266829098780931016085172139657522428361844210191797762313276950907632165624916389311519078022702368548118369688119033744704650425612108616639271634015531642343823578046580179934710196062196487534798094391492722635309321793914493688828206743731352967452695049979152325554524748841277194273372674771935590369640834041785597106578644363574513361869520772351578031745794048757754139628697720311905613885264690669955306843574628565538215986324516129566873752798443249564918429334363032667887913638294102008880198485239640533780758352716325477275127200364747245963151690980667527438127260138150423334359793574224651773834557023485183768100711410232110384993571620088620404350472709485630720779289473130576676952306874215612771855662066832535724528747192054896329694438983178935828178160478056382801326060786593925784859793436269641138199556565270340627341057154514555560289318227165493051614339646625263981420113691280784831714253644639640639852936328559255211976543263684915074080347415705583364528700586086993834970587690286858704123227411106321945399705650530838930004828655644818367119932948363200758710266210452483928873513111898728358250778121170255428350947734890433906779837593572893502668448472824307886837183770836962553110102646625302601177915459668019573644803789159795089962386791285943372016090449070286308751695008478162638685996548379851479692516660945470837894179458610529982722152486578496336304964370811221436612127467621126224598512825136655901294220209231842489001032420717770153876339518975001640529378750270719678083262680480927333112273823995188833303194988074263324002224646601354152436893084677143144671064742209680997681157172258144544500312237811063944664876951537291644438536303514334187972691914345581811657374048746127344810863715167901192026301680245392963566303911754715802724214019832476373083117542391523917231462579192589149710943118468156929417516439364657971284447876097276101755062973086206264311202200634831141102908017915010994625611784290627039232378484909984479901688139827395806281370777342214317043247582788906334022943083528622231475127028925300426321439048740609663377955799523195133718075887229327985500115618951057903225355872746016189112952258546350813785966389463985108612665431267583659851936420708368055242584512146209032625548283848022312424929806249699722994401058269024271441129215463922244053937959599016243535890486888438028759343322929341405860473922331320775662673120370097460016733068446234623936364189875836861602817707068610504373434389455389137446108436295069541019942620266330051591300158537025641861583586338359124811723028950472542266729362206451608762347973309334194935956517961579946625010846833597837297877518793469134427892954200449278551131680874456157918595970921785435832624895216940068777480842027365834380147668475327024314151092879484144989025077869293616873592633494485184677072047706645934008286921453433586597125411328006928210610356168291450696471776224232046009188189443050751152864366606964057825970937926250775015335651859915317108790963717257342834906765938813008898094595688578095994745418242973741697888827539883109067107912460005044110494823028415153256642014393986929143459838601733611213374902870352924571191259076056145265160220409822191217478614806505827746590617420926857642364220977322627587391131458503338604238231078315728316932865961144773821621021181330179233647255539305932760007593274221570506684090699352009180634457882116603057575012636670723198275177824356528771816463964979579094566091339151300804314849077741010504603601642033684344755095096101766445981703980901294053571426605530496421667671828131726348311319271582720678351075699067153665974586324711396237886614144847506519218865464864429819643326521005368917179728741796754676308372534470782547224745972011108486608529350009198163663526763161577059663716655704589363934379695697968200629925210968065350827046237036035822760299186778875109516565930756972118114927161282061477830089197318529456029071262365691580117401183590176024866761495678701758739096271123718112105730953969208423386138316516858346540954997656645877908974579223968275030346693209422217031886252660612339389568445838550592422092221108583418398204494953273116310899712173663954721835785630432203573207298132691552871930448062157253833187122763258836530669922786068841953455355665190443402164960101592163501565201130804638827700380058188738517812050652414637072802612182012901080154026735522914100981966125395754829398257896968013038775180144420931523927082083546305547346511573022353112555929474629339760725118094660319734264699055742343495608495199569222598957567280601888913294248725022604157373911284788914660418743337458187569191472263960512655247587449198031519132191764964657592635292612779821189594858800993099331553321920676318877491844856832042323489728628107239102264460418510406974777622204648465117568255539295680154855441513712379759602079944943476528300322363976711298497889250600641768665945519622723024595412399812073842261738073470686937721496242513826182293371170692709604373715524683119106704978075543670707052503734900748421846202876168411061165232502328210129386421653277975518754178363900871755106302575805070464327188042804110241540746838547927031520217388586743609587684749982432429794672435028315568340170983976303524291004943183077373520963120783621559834320181233925153168055432481735891891068941511916716968011363081363658324925944865230314476905650620501023940915827983935906257542485115018450539167970903325968840589929444156413333892652129330277851385074463128669046119806115456243608616311300383841945174668668956690937588360156920711829278391283974976832855917170194559945742018908771798549393163750359557095440906944676338439762236506476882430309538031016742070907472101633256853190388379911230759434755553535813960835018656962337036623289142514294240912422143017099918518807437682658874040172458043134441478908472302232048923808539996330469971469237135720863263766716480384805481844910089143053250453108949052833362695329836849063398312728887477525602788386240599074161045148974977854173056383689553611972220757995773653731670635656180145870272017216944237609562437068339619452722878005893352217947946712084544729131847289822103765282655281230569262326581841177806286491546858742131465105410707290763277858861856409994226492247988081536125475674827522728407824388564136438699304717609448065175143771227308831104585364900072175234600625951389648537845592634814788097946179717238884228559560982857664608549074846814691123421298433600573187777549386557134715751564183395318418812037009572637917430347162775481892521915221875241186228882391950234624522328693838921297378615735153713328567557618346327612081126650551870657065739999822545656298574024629329560215219729071425488802009017533863356279762107608656162663922109502303672894921285473116710283405038729062699388762304455185993870902045574660958119644062623401882912660829634609826161442910773528258297530944461651226376538113677465746002072570780651177110039858935770935282103810890770286508055151077687490940284935185161208058245780228041211134021948290221879879872944857349980476952934195526482003389284326821500371875879668146535810050016082807160513662055056689107870000952799742875425450988003225100324217042743254813035201438221490453852313653424821235354997117093431036530286604506088082020608631476654414942761563236250409732138194464457412179878065895941710845928271814891571260999144479788300554382004612289219395248429690910980073986652894627867240836038819516468450864733433312523277067739209903451358607654240032833965007735801978853271893605480877352465583479884004789243041554682194937860937705794592029258106814658958039733832141304647098171470929967063929223236338109526817302641154783222455333789882861815103081908673600639033276207876041088535924099293966050070790213225299926332563728130513780970176733506810691967277780896117822323328215369391365256679246346463915623608181343244312900610978404253768644224405133859216901402915384960717198305540975234516410209430340182807389177225676288083691489580285177551293311907059553388162156544644605960229662020174442771994151079544887550917325325023070682775531155733787217274730437049274694221225941093358070959721537748051734824251766677143645454741924972888420485573686183092663388308000814018330362291767542806802905228554429926059880101592424812995090379610162601039598998106290675876319253298966276479233295788249189348999858083394005498436339082607940343911577201456572983837810839543776969451588407322546553247809673833498085228502353298741285321746478765707994825608136447989676088342530593445816996495990104321210903219629430167140075243993723886470238466082092480669554108551482506853835216542950942881467316676643321655955087142658978981432740432405200076733019464440845485679602238648271478997403479902942040400199839449415579490226392166236748394200482180233631472603170459714061731949910718927716617134403611690990276480481691679387993968084604550824326106869536680772127823877649692099628182043315579497822245347539401753613880497338187535733785578660500756409477023700399205344630221443854717300566986205581480858066913556711754106801939562670544047235566619312745177405900297221677126576224732168163142862384225982218583599388921229807813141910936607299789249024830343199376997667960067750344727321112677638377797309231361590184307409391533235767033679296042093906784507049925082417844344168225210553626405913865502259232868687320362974460412230663471039724962395280251396574996335489241935254161361460073781814845057183047557664153664748209246845490645602220796228463291860632228099206237157403120946247017272503423714331758270897475641498367477113326584989355839914016651104426021293330764082766040739449968402784948768328789499792420147172381828051822755707658299844763791740997825364953605570021174830695605981478022311969735981798788038765291121778755815652080757420268377089911355110098123692060943623365370068021671510650644307731778789614694689908612395181609873604843542684110314275397304016383784109806480604155283767654693265990785791706567131205112528716207643604492369234599318851794365025599276109082354448911158469926575162013181960605336383981812773409471717095822356664044666367930695514342190541375110328522150839491454187860955583938122175099758911955362021451404138573257221497738167698723089570665707894914974319858489329977964677380115658490231752777874131199652225417027808899304707936708052983475961788046037571694463106400884945579744680805300589396639638680825489843905879006306294385183743000292781140326468107038269651636586003860390545338505382099190838198247140629651569303469174879378557735372468813452157090977394363515583892598718207278360447378665808041711764090309215509187955695273167955761884664052952913044254599738285140073984916324681938862759004170353407839388155280055492813827036684397540738954741908803692611002141093070442851248536323691202111071085815234450269564836874287833137907457510753190358145629005183359671982441805681826744164776739632550567701964965816142830923743563155577526885930422282032256872065630820121657991239314456067995197754884200559634697333299000875611914483250445247567926536648051274254543550932920375972198117831932450995405572240918718987483503942800016002307282407339178298643634779859167203888774428989724060260468590225955306251834189971253303542823234294483903435506724051010254126808043228694888944763971896056558877113258615494713215368904287474678790806069745822437332500225644479517178464994117033665203572806377676118789414261556805623039302541718184045762742887397636863744246968388681416048661949128926783947208000769471667514448898801500182954006842033700335565385063667642684438069984475339024626485499746197693491218680485542854766501884070880027698512650116119908003935653295333600043977975386629002160313429441845682242316396667669452741974934825298623542522187708699613399208198298859726394640190356772826752004533352660874726088513282952691371514739217539383960718800211033457189984052348492779292085008934159610010313786748012534954533715539244841143079521561398244613096700388975591237606352072095084721311929731612359251940090083978406953404256084533370666254954152861524348160687888919384331552636740489556047527797375765730266981334142878465931006446730772008382538785779216639203897876954182137956590870375872280777232027556862089900789193315925535800445439518584983951156067686815185894127337696720413533911386884510613577332384907153147323415033890398127138820955156241288588488163046873977117322532375095469633718112419227540605639279973070939954207647508833468423586086883846896250801483006471710005578494180320601528792953564597991568897914380342628572567826029784384515932726074489338716878245344236256332807139991612209596275934986835765718918252500020265938797828728186401797028612030547340285391102412997347815540464723455475850253483302595158306975302704586410247524317374006725366742386466280444959782962017337307985985806578777426636327253422419214756624873859611926403620199547976117341800825161437985350108798397617459738196959514277158745819292437823833118394012795234416459121377890667145308869246589755030207041721052395904334231916654738730674732184622856647519575578333783178026376375620993445132030225888888975202363686702639199773263334387673916629216602169492951230000925889066729494135930631599011520246455397552457014756208776350672780525083402052607596440908378212598259717854637158890036800833692084307007670240844857075343419838101590364197545706968566258888708262977141944759936958982682921727812805307220988596761856343485201501100314513370786813847792121408716603100111035313465827369019231011470213925632311507529524522206275523086830371298802259358602547121487751395854669979151836805563251441041852473490070977844994520134513980632083286591107465748202917091539658160612611041729936988838520388729123000577609413075298916777889729243872347889294804890372797388511212737804496938036180161201697207762471916673633751619002860782296727727329525041152344018850559012374611328428510141986498938378471552368083716462938088648986960513229799046726399623177998969967228043932278187601535484455182314542971496432906550095151383153755362395678050560524537940071768155849402087690616049083873264494230853560105056366694616246885068098590976351713571381337042363243771727822992852631965987704139553348975975129932195120594259738361866670843267784029446981691619682398406751054601638319926156779742754051504503043703642660629406732637589977468748830790607765196730319257016034431282550451029719196831061067673443278927539365532848167725570896547496863106489003169262468960780288206498021126580907140965161789932513558037417107175479726573478293843391441806069736702968720737055679291129517527068779857945883891928284079602832012939727895272865930696719722973870839615548884062892273535687738699824925003437743240022422034839183238596704477125278627166610234839068676735273420453780537432880882486370933260889894116164472639030980524267540452053063429915033913727472259636309586322686628888185247051519905330416952076527725584756671386063589675044921472968421923657431001670306339612857588763716704868566951832537422479261645623404553039572635031415662405806003195990252239274621212356171690885333060128845741951315286105073968068973667549250013450960883279931329099909262250594280170550159847242126893651229133520455349148748834466730224617684543606859274312673982258776333146544390558245562617394475710951354238297574152899734049597332318872731770067992494379848538357973743797426115118825107119231397366282975871123726539753461041041837832614644663435499027420495560071320581540554865367407096315432375416679952962081914844192118090625254013433535231857516151688702774664536355568077935787605023646926972022795826687065003609364740970203322354114199266954576255705519183585478895568462230344853076252607584277531733602403564048463512359233505933630704826139415938148365464914933449754156937617785683364319552754656263555739755142545977414964783341879221433799489679909664305599051437472804061422033412831957655399092184563056796893899835393542785050766984513355008874037735812692503671007546614196835922247462864445584746269199745608436164356073025689704279427971223689218263137148142875695510516433005465883417086948806121397612715789740474937761878181272146691221275467002792004696537418882731892771850220372198269114617396370013616245374634755973000318029236634814674291445311122034836036712647914714604963927226556529889863535214433695947635861335288148242586704205784151534016652974544802071603340207782783303502941234474337175474315477821130724397878385624153741984967628167977981104019225775946575636133623504037677915765527557209188094554599747107321959930107669069590914336332084189666295727151418865780931963808332628640769200396940726804780358736625146524171540550062594967678047325448865235671188632353397679520718643810407780277088340517308760740413357509370423426549510082419002310436314055768374425258818842695063129379429858586890236483862491366097644121128279651031456547489593113449538668415160730170834332409864502943233080163904968014727981572932247157903695168586059564197233098895157328585967309556384423224361754429800730996487402340183834039859837121693983739666105453044886348575240243377704956981136054461547927342670487420526781708677724999217645778103310678008506997429328483479118471234586697623542890860548753758472634218702210416288711092044407412969636715848093695530460635691080784791942007458841003191265612458581845160715951567161759232756005852879749736184410893405797302539596757965861059122839383627421351393693260891197101778476326244970287072032959348737866262072326906574085782063157818392878644617899852525076190647758287781720791717389057435472369717970701112003542117318789523914115412245290369246768041628435820069923160939546076300029736909552803206452428714088952448795360207671777828427442174188744116993176417328991679887824870439897761518248101076782863832826533435705217584138073152608682994763710027919537954730022888139873843942573059361079226113002535669651813488709521711986324283578376135469311291200004897653920175005282733851837903830087654890565718333090642535326312785807249390096184502764208030687668860691905211798451893615863274744307443786184871665552726028401702709469070834531715501321403273317493638660546749359942628561276913949425140516459169709891381754880966719001478426812970372184011891828271241245102992994163687858060852754541163917570975057468739110949108840948976736415188439371401151728560040012481385210856408950902193896013300325141701642283865020059186929869405937202474096290162084478258536424288842132867346692717888331874612248209766518843416435456546132842816374953900009911459308871594207664952164626515966249798676667650097464202796058280323164071062025662411186673380430538113495600142186094371785426201304332635207588189993520602565889873003548977840632441632968713520503411381965042341129550866710375924311740507240934456371255418910484674028306356060336084127715452953197770143730643795074672511773513581010339237066514639163590656492747018893176313209546626318790140680002332853574577248591497877613917602385201464069804980785134764211540507100181599317666287632035718572626832335679602334092735493456204841569120325474415010595521535420617136379976260563713055626660456448808734677814977968884367393567011443771778835903480619618309527608637940968834056026570090262779430467229002594683907710805501649757850036551684895942344991711797162471935109622403150422489010784360517966776711583085767952698678903462214753839120059220479481244160096725129135529697431428028131112513310936250666233624946321988482880840107574666269831403141212970735439114328445958551727244564872144262428330412246406216107009016136236520466207295719604973051214788317260449556964770096228928307824469329640627567610440988325521108608486516534815318336046404650346607833415726699110414197514838437363890275293785628034902236326483835603120360743359375282336629511251910972056542957601967966321506312963485647123287975824180823816324790191574096941252988489760888899709452807761059414188553531753827177173678897048882166983047981141090026571064956021022341548068100617402211364211661425876821961468450010437846811834913141857836918446310055639133240395428896997117616158263972429540900916296157748676049698357555203942468495962196211526837420032683495693984018283302010267377928694471041151951608232645193348021697181847685865516084503849780373766053344879021451045884119716081418534446518642615966967857174384408721908253556659034962456468705132044077143853889882972648252304584231267423319173066798816269614818617286024872132560004119702232305283761011028520326916423850962442128160008619840398829770910233641156459300911826089612060173151947706349508016376200059133407754494410878954041441402009418438264565261779687925584475551872497624047721342963145388960751722777695943417719793317003666150618607774460336742004322757611957890626055600098341005880216093997501659040091510597275054392692580967563157603383720945511495533473395932478401602384912428496428863588707871756813121128928656174639560480558790949180349574524293332871159650648142094959670937053983020851242729180648972877378354844112076596482449992594386950008921385525135472985931523151598233373331654734216423536027387633545726582247965718854142457292670667972296410137546084599601218934890008963971414497057974271389546102273105137191602507802604865170049118270986122909407305598151090946049680499822258381123071535000517792540870298710190554348292445051824367793769365577609840011179625654196189538658362342765212564627685881373988760725093715340317932274106930979099615461159220159594580820385391850961707806345310909556079277477165486406115191672491178197015553002558520202621181547312066668705700896985536428227449802911910767814104531843281326577409193217833459084244789085564148470905824255635103105180818727264219306125405901606705862630362448732393218704218507655262735002017278052873915866688526284445218681983387309100166294105838602105802641054039540310822327211561087370424101558660802461459903304312898233049904072090887789042845354026748094154376086108608412447975829389010108639057384466879787930020545677323440816377705077820816014488416233641789056083062978615333173184046637898963578352157967941957098034319688821351429462485702688104111052330617240912117621157205892054867489821529512064035786884004977778169045032793428330040498970219731650621134240149728015363751414606490353469232574141001235435584226249453723517217326225553594084624936005229910258451509158611529037633817648676041429701315186751006515338373932870413060939814194821235066944037812776878105268478959166595674604671249527593981079043837241980952143568302893902190805384205358081876405605520655179042984421768742099154696614337927360754023343331233882647104392138001072341088389243162436749173773729887927909851031528495177765085757988884489968684190352971965425992493094381961541547823150563109086143241844011705018243341428880288640797819919151062129408373592099360158030448970907426287580314727378504304043882701100339439598018851797750349393387010033585024315532594568352990063007325259978129647335651485274366306629998813442772863888201053056473947685815676198211196200641258206298719537399718994171920284031958264375483116301874190350078682516187308159728504406530534754275155160075920476400459890928689096240107877507002615763398950449559113404057339046773735481153631027752021578732882895056188775572226754982095416903984599764426554067685501171208732433095389410105683632232640653143319735731459152700114018817438894676245936365524670789413217581023598231582689037708955374455747952471962525704609347508810221742317527479169610224996471680398278344227478976973956282117892431886634405891584405631535503237535894727220213211696404832610353031881756836126778637218670202448573035343330234084682982636679604906653015333775568371968911019661867616427908089402888315817728151583844433545584406823803183360808908786701715782012260583845321809047726281146108543199012518716542665157613950747906219884166706963030832650565211615373113671589150152872339664153603734581789146215151780672595979673788701621168744144360366688372873702126826533086004519595255663933937635369636616055655286709562483112657353614466191550149472342753806545350284296190126936850904018811898332925895095756266313388813982812029319182026230808972839481050542022681483475651230676766023851530000974675075193059612908863699385597663960964040103546547433571874306643170372592697403518209764090891754940058496455358437081567011904556872514959726907111746758299614461331173708521272408423348884659746080604014117488508929098358002600461447000160516428657935780244762796972503181832611094525848915873053882524447743402296586695732967442533627732771231675634183116480761437624991867908916920775205835116831843394551515617933469130370936098856508000252703728801793415513555409017093850049255078374480822319433594186879128550222988715420639489469558243788106742158318892469699151079954349840388134813000942460003719802983248013485986618993893043038814643510321069713655230255606668338792820167122704205018479830172494427634874337658764925502657785345688136364108075667778361383357394693011830099623980318021882639762304902838868074026785089289660394140931877106238206903712040999791299589253439582927244327651381016594365698876010564845728347362980284779669095772820232514896154068374529596851370669051453402937491592906767936264702568016877633033017838351225815776809690861998858606578908932852018195675905471199755240800864654932668861362619381138575875846330631332873856687329625683757548738903180371716374300579858690325204268891689845839502096306317995590322308313831747734599974583671748876921911383715114054932710485075982030965615849281309869013823878876313089911110842349702567525327615029478002922821650020635378924404982508568134973033417649681320702452144393974393219061828729585896203944925534006070710460902816624951845883758191268856709406042874680466858131069554449781916391912093517417326981967521410203086844919942542198855435563621532709652671337944698216413835874290314793789530671320910435174625714862455109814038037226007584833813477611283128847133321320218159764357940095483208148855800715946634240409852211396250852887513341882196521246854151628799286136168309890529027411960003585304010605131938691863337122609856794771715895880311634282625955000185169197517243892038459263311341809783191696476517561622693522197499040723002291460822977407644673990318584271518517118445489948747287973756069347950933385521609548256761280481807188966233793795083376736664265122585286671442941315552056159209600688051489592559276732377173689646135237117929566196516725279071453263108976944509810084660088566845346635136771572002925084792097765023765158239015241051061379693229758229497980223064984371565117435474032490980684910040806623112828428497841431715685684755075704615844533061627172263312976299766593661817104853125026422050120899275562021569534441334549934167074476999938730848916664862770149438059898104471107042932529415492934794488890737318517210356203218436222957422178053798459833772817361406270191118116237402166120992134845134327696489975957506978465113645118410082600026314596731440319418134382417033860774954659978646755935829785058525754457106105525327803289762770064636506611379422257706725666188326488678685522356717900273066584168278885510361688371207907551216052337594300254099938776553420287591100936336707928894966256549468146728376345624145645274589369495098269358480035771102500398748793172540101658746236008226734270636269595464805848424742558730451820094239025456497729221803197027391110085819706549543358360558498290425985693715879789983177136542932691723718867061670437145041680737340726742325115645679065187302549396248621432139717590810594181543225437838908483410584924648874668153957122288534919537409225279280109830082701383334723486063944300612493217884349547595845669373794100981521671768621692957127930127188584734317692027392485815271348005646035732686625851214334203738086406237185404878633311662038430000760564011842358417601432397253907020742453913691417906458214772663069765768666823133517142990509620175937448278446692512968490885672081563426731016452195621274117297223644022376723624100788805981671496219958784718731578123988488349902674012859227773393853147953763656886715691770260941104104643968310109169026621295661813871504578992290005941067302452849172877662783435090671101912991431244293556839082189902536342487203732004502635299737432675433358537479393425631691640948944518559192720845260074303136838776571794197920121807334893987962309802174760208681326022543846360146679902264805008746932602334693890955615700801204850251095561759795815537328261739175255676264216555137279153653558481008495827019991145446756390997315480429184333608117757614291830274084107230017466897721091187307462294285275079819130897244719655938743623810536599450502069777210116976261897931480588577209209958494783743999710092920344548200584403272113830277540909495452331029185649935742792738834728487415508222542829442442234981850079330642894270380617399909189507310797088236040613723409219041426999805559177158967513193783825122176287420061555124539379680957953500518133821289228137039104298880431503308220445284712525645410282773106516042262364349195985337720219250762466206655479877815601733571058621600196091452500777114976528414966685422783272664888948668868669031014711297488523002614221910992913537750865019791278384012032155820227642958282058794825440914893519916280132547728606377423063201973544021177247537497712911165170609820410229172333720055822816418728148053645800528661666263796645074191089442111690840607893567752909260963586893031821414050391429539026795396311721640932769285298628608827986880730882806970978735576009780175465559675849317807085011086814197442894424811942715873066423818877656293865923013354618659581642922129665353640008655655443562305188832260325709914323382114286876785166584170581019275043758464113991999054860456343338119470746499356022179418785918638384529277427216056009242091215220053955481386146168425078215383309183514005764744740079793206992184377741923686522580016400403665860972371598185955769335057800174155442455796691353133136918107421215809102863487562419541909955645139310586725353960039796256470496935286552600454693231593315385159206267692498648657794459956474632963712771169691080808011134753837193569937166524627875273141685999685752317091822388918452544167606811155792667322417834656184782866777838144151529290038911670099784330043718503795787221810346029172291547793021385884262517305528101533769741779299106937772843464338215128974462492288081498826788391268241219290248003365575991308940168281293692598148740458919313394254593138374332527480997168471930600291564461151295898670235464079427150360322216779010883288893506301205501718586954656377712099552487383587405442120542196214552170683302185889139636198802807450782886420539431225389082573401259496022811971382683905831844888070183901133616922875384980948861103713294559415760176138845121329651671592795776379546493323823527670958603104334663282821357909648167742438011850615514688685438461525968689540784051639589646748246461832949378233300133173499466319403143793660798658232754536331614102887183994933063917981610343955102397027480402499420899108245661957963654356078962888921929211203897548446774730027566931678258546488518675136036793727194989857575715059559623423962662810279802500267798271593255854913460875884727651789667174766481176437882946172868577940558341957089046844045541466178333535046208039305682301294311591053951055165321639143077920098528492711883580556139835782940591100565278976843341973421936277675830826412910695994385387667346967905113413733895410973260730383202768981139353482817621069233336999091745793870274179247965685809843793941769318533389739105374863570329211658522557332892084903264605061422454041234957529088189603029707570717926456305239920127238623294832127724422789132974955814377687417707752025159964761445025120907456406880006398358732422537239833853635317557046275706600225247782459254603027786635848769040927901433023329086469640348023633533077410523223947214708267274894628822181207133227313721516899492358449154058288352377341923862208359282087667917082098118887352947180060996447357283487698791835152440720666936156681224572157642391354633377916781161354388780076764108515573778491085815407866053662502475309835595896624826246796445903278400305378503450558881087953298004714419196696764403193163990466507616341204418451298400934552945455227728440755231084289797295106823517477302181253103900374266633366228030132929233861565227551855950849480533038033421290963577596183908900457007184167024498527045460540838076661376279843484922040717207718985487643284213280802250761789686955653377859590824829846496372709118448659025985887658696841979270291478693829413893845165294045774952921023118467177105139927692077313682348498799547631799006129694627286443343344409005927578405516527916491324319428077552527243758195558255004106972361108404166432636714034591451940201656373370870012958446152328248458811846999705799405515426108604580347725317096010405957660836254745225032445944324595555647440884073523581239741416463981463428943995776819520402234850952591895604632410770079037345077493457396486002521122635843666889450345416640778420612368069627621295292181981052089179220617567589653595400429095242817415874371026833065311211751436522590164774412999922639648566299985435215797301575848910401327533172474102801936624596582543271300020013272200623545636228518068267202268263487771586837305333895897436326718824796121707880429073224872957705638267255046847199580075847099739255740341545782127057722029004587376536268195902562497864616615673478032490672761063563378424161383218901841618173314836717408216746028054608651923102395772481854933268097956337792177965732239975981234342607580382770342717196911165814903278790450149985151824397985646412674615772649185592833860367122864087733586911675350782951057638858901130858544466986594973119186498863119987344266013895201759742636442350826824164452820092467832389191345551373856397179136242668251803921242189256240238099934480411061260647791436457788959753859600483479436114445395025495841637686238540941395366088659926087746547182154248201758364371653300243899638863362963810590827805970491979376115733259117315196495520962797511838957038297836224244361451665636197486238765243777666910323854742632197940350413718364511768353503776969721078580112025192632495216424096735051813775703782095944437339123122732621750970713259869375123902257852212219234829604751800675340084631909720729304995716332083977183912763097780771731781425174680007776889043059089039898822699825116450254044785120795930792788135576455422763801860203348456753025113733172889506798723696151738179110610151137177385813360444077333490309504947841755098889479538483071681688111452484869007477285639348123631036651463822561581141034814304321442179649952999263370531557122570271602430334933039350279917026999267376500987528869745353675566496919450243779051191312472935318816503740153512326136770829017923377604586061732924650422161584774539951366172570350912156262823547950202305658786809770322296490369898530915212108884505828633947858634329419863519435747082506757226812663473758669229107300157785491471872982940031579068950776398258420228481761274382593707081615598357895991211361890060784778964231741267176193086867653719521524635971116650522984170648629487085752061175961736601808692731865962196796972312021083149214968758733034284534777375006054355077130805890147058680652653281487154802708287358006085068638362683900326738157330516022754786632544149123701112921583661564381158240110658045029011943469026968419848658294979622955544969624944212757864544435441472168967860035306996366854364371637732764709659502173934235829417053600892877025295549142524799039300937298007855609377668500438858764574788196593805203023322843562579973277676897313317927206175061537525204296448805336939734431438383171966521713897099651711880840214498812015535753079546217985295597603082316001429834035271161916373236138126724724882892586414155265892170066192739366892211873866118909227761119142771222202254753659853204244429626069385205000043257902192919202762378880227899918437667000378466910615363508453647380003309127932129063936833413898900868439564873544681501443886097499980461485198752246948688917293009457069493238624583195250537831154084537161821856988074542716753292944916868818048434933438558298519479086566789269433079584003487448294724868208789366473448592739439605873762539878019424378772432127244469551885122496671485246800821317425537403301898495864824598447567601825220895121066181722589879878065534601910508796106757585396412039239750522715198942020091116868175911339326690489092238696147651499345215007064697088819449648463454717976533661178469162231374335855683228749721666061136923196329062233438301804348044629541704937541236203411867545599135576854560510963889775800890078829614076708072874920846642440847531678621030513572063103865620949708383948861718006882864974058289768397348017929154864414183060835676491561553111767910964360511897225810332906101158464837290216739771180272271932156548855528898193279637946207441459747464433185075981968934215729679322005164687582563726150360145893094748335448459038887736731539522932155424074715914343399659100695570535732029714648104979286775467231117956401126663665789971188432847805995725429303049413739836256353496854421892983031236003776432337891154431042095346628367134834236261333700045570682812268341402064595828216541660753436153271776599408074617372584074085541901934897054467279621179783778163756436259155344336243554510564387492672804677815103115516104087563061540202493976661389170568331135732987414148244277777012775568913681346477829265574260223042649145820083480986862138963399547654052130532264742362906921717275023248171581175130844449582504076564494373610362815501767590453910636308733757942591833487443578583095171139770882884993149513427717993604935336041425736725590823110923394357474522941245226877237348930043781818992958613013467241147056582424731293051237612714759454747156126907060423218441673495015601184182472506398869705153176183905980772067560477800211704096942866007234274602870602503832289282760857242968530959404489849403111149672577239436019279687948934841073900295226218982020432951032537944656476645477953829338532793893822713092564193404950471376450250312024519542773231278998874728827048554567150663441520622861429126587828503562146606021927079465868661926605699994297398571921951227368742183292832411188737742414008012909857385351002555713774222050424293376699040447176456314755046585730074143951259812553372546381883398888258604875890641802206925805840927439631341737738518359065797833704337575114203456019633253216218271937868700663907318546917444175082914915943977983536878104792125105109406851175156657087627288668588956577129442066990961253587715940931107561055972541727672223585668739496872601983352428992826922735934565568991567470207562302047775679889230822756103817092029473525498347677885083534105196394873011071870032772607166793435645530802577186163963101534497410726515103387640351953071395702681709009756388467221712560989893707979857214457097657036045537473266480030458557250350690951142033559034044610559355446013543634622049109118193417232968790252721517894420748499072755593217084219525349176142626670844507381083389308216062380651202449996552990820191652025068615168211629425784696351126162800723486529261604568833299623498802663962999643937334215173161706078466492296352939506721698425614196470668748620756795877770140281776560996813460684717284752864516035210454348087894057642515613648178472192452610558612529867238825942513216868866517210419759018021526999961814047499850829666412925323964869602892854370512843211651987185898767324063625092296409699326745614578364341187439855864657127812752931379627599296387642116266986491107251341807541869361172339370609123808598422008552720450941982185966595348168530246936145817867487563704460116600297801816902059804917425866309744468935286121066768135635223878498636445986092288837753397951822273241401348888159378700450874792141597709149192875791682153152835960888707634789072035312644184151567831637714050841154996732227555594016301486799878406626573568154228598727318257571907395459806595079381084348129481629285150680015957920038427685636287763410293980507303472414110417145708064493284361843053216120324198707771078597058403892777669546759153795973208023734941788256245796909121011561328592058443108747169058307603255107052419162025263895515096106184794097336186494166313027238745976942799785714439959624570345538984166732511118545427437876450012203501095845884548498270723689670864052702825530179783827406911955578947541016116957012190309267211056100737526240479620082007477800811303555605365365436549239833624165512881026594386222696988932863213522844396224600796740804775277034284632561937325848930291323413986501321142544028367815109692567020736264982794816266209947057843254575557467962428060931633239762002932080202132085273824531623835228489812006034219208556959126653193912376047074268710789928505536660858957261843174091438717935576488996874822164309671110925716413235757169357300819084607316791700104257257641889347340719821426172409567160586238991635298173485473746501773804914188163044273260694914946278014674779234033999280924103941003912109591872296078736831031675042595840996676639103036269695045458818440133494861055264827715072754023228382602869532690821459200236388307278968220056517119716462495133049153657346192155515559500460947352770514596487593212335847701011031165625666164984965531892021234033743216897323167903130786151125318947924639448850050004434576090214929080639581109746638401820775817167521115718635661228223614621447931306881118364790232038360462043493946877928579944706044397620772909565944614730323805459059843400607353416201700290125859678965448499649364248930738903981230806689733019008689821555460884841613171545480856405745982280860101891058183224331990749668373431384047147722316628973787449932557986304762647055424678696226327378932525178239376590028227798316073631910402964842463089696275151077020928196340328774437924549423595912077457031553755882605485007239381066300946388893779289688828121037839048559227263682221441325084954763994656431125621348582067947960237778269974724799592655247327098884212873460702435045721233119196281061118933276482061517007799463955717036685034644300525818676780662343122962419167321330625003830298029332316866368158598618164655379707067851163330041101998052776105501639116090309199223943738378198435022963824618954626461673704270492842284375517774818010659609128254266010177647875142993657600320227281996352244256274743745531078003531012889146070346084616446208146027035362391783200408125645298559263129727623462185794505329439687267448534438554802110448134475096318799809108044083882058709749940258671371660078297389944054804344058450180275490730998831602364528577235310155115216104724915296426776258040970814285403058309345998002632379701636986438200667998878072430467124853239690921348596532107388632040108542604680693521630786506825049895405647645400445569734481347400515062336466410624744021532196952067071274963722356850651816846763950535852172244208755405977684372379285489351705922459249101596019133366190578949811800255495062264633848760532418642035878889727393037348289153838035607390264963512087739969712915352438508214121229763051775222631043262731509361350562494006552419430526432610477081501963114343523829062563553877712357648300088358483026443236293130380898999229106915341133274536219300185421362433815334302255183926584964471981798055112359814751191345945486013773183137690662415934430549242390026979193540064325686265480245703928376199143286624883316171822389978740680949685665215708646693932832446084173162870403329405379699883127686912600199952160292099429397670054912334813845466081304171722409127607311895760105105316445946570814302612340596159352444754029576771803066378963470475587350856675233437269823882753369036563156789399688101107957721411930127589835414249759611497800958752339188775602425416860774951163647149611536202784404485290423490717500959744262995914320569586877592060752306842774075328904149631861377627881564282416107741852066080770126435533658620627081522311609430223056315983738384756664119655398080687041924130378788757722879909610565633959696030955984111337536025274685921804715808967488435984528128712951694692451292503563767590147488099567460676384496247481706184820569034480406103586352821316282091854128027711650220260442898832242096633004233599724456444229384705396218590304753205003598875022301632118843761420627923438873136175477410669382878283669059506285327811443476192797311831214031264164955388575474466235346979393111340957700479384482429795366828835032822875674876769576642491152269179864527028309314194016236871835135272076051022273098551582176899441304512915826314825492885760770898403338035203127050855074544309451917738864623911270360742051849023608661471072982463762497150169342930636760718666655862978319625522954051298333793447462136587207198170362638221382795796651115642519965200222595917243249490719702789269772569365972652238413650893789285437853282301925495257369204745912393502466611999076833121828970028376079104626771784632332870707027375866013739069151055666072942681416767926066486945516686976217433044505263391479847362456352088210689282023320482255060102898909622935001517930247286016371192704920357232080373064873262477499609688048239073773527220223115854532847323645460623738403438794620250888069372798613116753360869727434888226951740635291427031216744472495515573692124496515615866675235403640642820614529988758037509684516446723431124055467140881466512250023915078215431237078375932310306753442362965722288730327060326568814628787317549358363476278806485802480382318011468865713748105350927785897699391193928105319126903879587938376391334359703462619045682265965738223539930480042634523588012824623075779055451035546643404785489636364471752075071811460134480551194647822246107100784351644972035534681939358903381766814406601868396283947761444834973639025901879753454364589553818216942979080583548421433694571643600050357999412840331895172178815728163444085692254609578916578149475170445905491437453646381848136765745260416013037079443148387596011767770163944823772003339015936371606952660640052919371396292836479095133995522116475875450860962109340210191471373124951550126211487638464322131074983786376362725020900350497083329771580870745340863495202208876915179793147180502127758473957277544867591522612742535079867149959241452296352804172083033395105718965266526566584142417864438573636298790016284368045998573454984580905684467037095353452898172386305382762448385072778779606780595614215595465648576594314917300021369916093833725753467366574049060424763966894391205626613808529331363360672553769103912511964457509684402752583936992444977814206667967511784963724789710485622193900188755389722115600626253160847087794536645891318072650415533164063088396858315007720897533948457287499349818699712843533217986329646633674451801239259780374870523307522955213514163781460007341040226840400796487210341884401544485019121817866603480659797352372300967916129176015979415626311118215760329048187703711166303286359880931287382165482122682874799591661386973460921669643516009614833628869341220253406207790560767971463235347352442360702251164314373177277956405321447284109448425957156741353251175990979637544133007355737850057848397708763153157547653259419107760328721458484586161365721925599112208512614603845149041773840355111829402254480690737277846845570920021277779754262091380968801830685896023304453911491556739543176781829817147048546798547684218952307127930831860826296890081605185335735681960876948716099210770976148650465421994833233611409852417656451852741230523708157032339820048395534844406128703143869501197731670950594811505027640947337961958596698971224436996857466485142685769449720524167681162579107011728531814376619430273699199690462229793384669783554271421172239816046411641879487453736064647395193813864648895970204412839892876760817523610059960889585697596142530517172120687034874043660908930593621010668540594413446807891602308094713595918639595423823463989044816797890031352105531331544529148759155323417351286099005554057747035238235891256731538296579209352809397087723115548431977665557000437416257460274595252612053875127169570387935355517387936642214729544460398604848245543841442158606203756012768128494117749756709751659780347108964268642813431286281673810720429181817554815889149313721018585989710834807162271077859022794773729943874908193759820019777061261835985820259526064644348408557051833220997093179362032220052887394898550375693897032341817645971363503425169297379544728262044364049313855886811543151024814903223398840571106932497615145841975551258597892930623665202577255784635959941738001083175628855226252767237500271774375332564082922848666614411991831502686416353792550139346150682990345088337519140307837435199481382599206086226024813501565837829960476192538579827112034481109314387849484648306145546532518003819543505836289523160129083012019348359813003051133431587765555893311473888304136059090592295285474084097562423787095026751335523744849941840960670214170782376095087322094544131427436049505463845589755847675936255188175156248004908830049261820489373950360002886330875039472251038096459298539407227979668244513672978408702391448557091262687108283424500419830215854523142970978768569027500223498246364855597972902173978195549867512013326647498413131937645278959619007124159042232500111234636061574520190371473207717758119218701684124527034246239654476609459614417874421213160626051350798266905388054020403614684661103953144700101076464242969475754865996666518736064149193283354664312306771974436147086705835771079876285661635964734800591788785774373209442569050257729040885279225564109292857648028493290654326764307236007465905997142674129614376861870600400479820414805135182612321820070483418518789201042139946654720225197371088645699391478206039488190360417638302186346472414200885334840527085804871493568395535883403881024554864442673607984084523982044086418831116974190759069487492791032486862509038477461423336367023406048044766099971915899820243405449038373677201617415258556005384998931164210745933128902260477961647905360974718874958210834925758466430232513362548314568367071195962650068817114941001155271990019444319806684546411330339725992879023552071337659978843366251764869812834571349399506077882117456208479621228035929388795067073519217469761288600790345701761364285421888608639957113109226530241811104213913588438543689839807983119168298201253962502124260496678249747724160909324854700214537623465718843062221175250103674050305594326024159919284472929951790487142225228499930533673831938240010098065190988738129494919395289966556018532482605926895849806412882723832649573263166388767134325363025130352946671479628643307507248655870812247191984348303525056979256752745610722958085329609238561372967394856873205338521413096889409691458689989078531964631809222369594020778582316961265345632186605620268746913282611186058088740313301963179449937960015991560981937219447116811301194741449647673092524678736895077834004752758599576285264786346885412476388508352690027332251760736454979217103151398116239781999575650586885595911958920087290595848783816967564044364794136545083255895756780713796665670721575975195218252409125905393004907395640750963088915154606029191249078503429376100736587678515239924790526357905138801617474087958419908459200799900402123784009109524417436753446794163374591890819541562994346859686867192677442907377174080149437782404187491760066990084042110162034843379643443831241098734177683864222059642997593598584471518315841066331206236194436533872951385342607213415434051796190706408917722028510568857742448809715352165688714900179150511469680536767673168359960220720036212682953977532560327848608256908868068693087629465721673961198281274069566921305838592118462711895619451065030535603676535977145150581543084060079283495025621836112456919027188033116195403294392481681795020209723587718648232716197022997517824729400974658759567867246137286290857684239110127256804466365728462358850264850960269609934883383425062243022571327507708993148240895714693432988590265022623712478945867663319712614115732921996681186713877190873316259791258256080857210281752755766392600816828436370130928629168853151540138729673906527401199283243909367149346629175527712375363354462640728201363212953986919337407717638004608187913239142807464795918002355712125939381617927325191085766464911705307021136797651092899309479914419315340528712440960975245519615700542107102318628806377350506400944224808656677594509864791319534118435741357398416330082133365734029706125687418302714761212368949825705927254516822406270109853974139168156585700700372831245448402290920383466525433186959869573606544579512049225798257503056738645329561748554847435065018755212634900782132966340411605161422096944718087374236908495229466688560331622294157678077335317166116052202243718631525212963428448990788659422001179489930584902804712697871221038846890525050991105447468173129125134871457506860580759346551025350291470716666612526868456970708434185376295181510237991230130862574957194606680176086204729475493049674346368850901253122529746624312750665134984129896871796024793179213436979823992853087712238712723308371325060732659809626358712830993179992614309757389353212346841953099658829068626349594361366009774864400237156717365067735396345691917924385671197672438136466524421318283093129947694209553796056856644376942467206763697942576687258603715611516076897685269347532506691278890239545497266758243929749430082742075255171131159288083441174574139102779254918973933436887088935167595822676549682036388752913080001715308257435169462500538175179351938162271350248702104610953614706829550724176236758430684913616215144852375738849164172189899423435541122983969399732568147339470717081736862574970755660657988844000898869161071457562480165872393628809170537843300918196550352073819936457823587308497519312588832772711138613122488671652372300399780079058570824212474934410182227739983798202502214137719705602031396655915977120473018170607956797258463400115796893018302898085956399885647823609066369218925902212935136969444843402573795945901285264782313441129830377893025619353605077445800858490479928953837214072618856008629194747229052946852729984739314039640105384328852861325196669200516923512891972885457256718702127389401220729723287285131968954370106621974633233214607160613536888666849614521990070828516604140541174478005654477919682841280063476670135789359800878104934648544076285633065112248831008583189264082689490098148708907661443114605331078976438991662270968138552005920869031102411925146117423857522531078109360132771808526907217148601034938806428656204645954546501991714274892026620993842715782313479104583962051305679948245434938601857327412677839338863055678381048290846715790953461660275350804513280373901428973127631125174342058766118558698050963044096012239369070105233333673030277327458488462196437132443407716992276283068803388858448715283218287212947305008280390191992837096231613882458364530942334768298819148593812173765199382958523211884088497810338855151584721405413094731498114355524424422836540162054554099587351246774864975590883345786916712225634170540780814969045113543429979775888087831584813824989415127545345087197962644310871843862810740286393332180407520972422507268835658678609093582886837711773734000866693054155739601522173203049717502097504326775370832721999831207581712946525083435573299289468284870624096531230701424773031377677079154165322493621447254024364152831214024776714410536860694347137818877303131323028078942853420490176543509049872782741295544154953351055290929740450124549207921716219947423838920004527978372088477348415651886465463989105074238256397896664588574096701844164820925486848630629285155076349621193798090127824828040389694820841997239640173879589854407307389169526247879607990341002208507488853328263686187605367549326596638046235608419960353339534025075207671260195123631916557414097777313056762261521623885154836517018196142141447208165362881540528521115337052629274310951931821638680045589730064666741387739484028822347953272075855442847870429471835851218679882573872490544421741732002929556054993102157759260688587618165828191686606772080683963445236833128490142118937123895093443512245646860927922831065887806727367888378356227071225927621431513162287492597120016072877191013204398093395551883271101243925684779470735075231368245132219048268055240939968193756037043902168875488414917944772966012664191796251728334076610582989476979755162234664002170558630881013508842425059382012729950576300155655533664781483525061954099997856789751569348332590970258144304820808231904533036709380868485383556318100479873725165531766504734750601042528010432191782806032084250757579042166043335975590612973787821742645297554336116958060685643225240271243774809904856731826894210926440398533864868515469132397513893159382020412475162520711993463092772820565551796007298094555471063382891587896870163704841678317734495639327662602060002249427576716014974642054074304830924170997081260404082348119768952300422671303534734942741786972755592974469683636404520666393124054394929386622651740554722445817633548792233400147392058784883336087166590065576148662091432695263544095174269812082455409120070050213575567628445365111873788923581486240153595741984142248985713316378610145321484905244919392044517190788093313966728295991353700548338334726113034088150627658626391593183898442728016519896087729136673495013401453914158934027240939068398401936556065669073858135497898386316113929813372029900119390068128124646684648544952836094155039167818930319686697501991780498464111439729738884447800303914395466228328806616240047652352420579972037527122912214490625299048689463806325464643261148130452219767696354268305373326901170041926703402643249507057753323304126911424898621521908428781430660376679720079086818692163180047480522092789794099950174231944143595362629593258174041322598617625490465133817495448420171018511588857697986927666762510924597360439224316841849727394410611260069915003715909124386756642193221037654609244945283712159963045328571818399226804976412597751076783746588421683081828235966345707592458718129893412057469887011082586885028902520433542286338251231302791438788236975814356121677483882742299403483404022243421755512650394247859970841199605928154243085930164214811891294553894844843937258210069014183606583546236069459240308811567445026433499118336948199379451596838126298582166081599381511391581538009829546892779572878802812107080894099211485702396078023951230586856953341530938794814510467205449161437021440664637267019149929966532890463211697810690161769460313629431735556036860119857471258916148389563269227405818356431241004102873919252290658381297515581133026067385115400044563268519958809493642727668455415899177865898693936803037528198372714793156081546972675056237959243296623754173858611245716710810898850251444770322277123658560813067580238416573074699015426696176102308326731089320522961509123672247014708467315687913661680616202169014097830671810017718887437151071680204253074278935656441128386088178561928524303726125565649151055385036062059660426766074408113950943921149719137457343668533947129413781683133914855441341771941502748572123153412282801885380103132540010203190126293555215243495465858523405354912846871097163774256415724595114375147759690109461253607172693198437669896366118075171032544692009426467773212955203086321749525496264299619282356152439339184248550945476641676643620712509108829883286595018077554847597815463177862344355371072323755917450620583414091194521892928202693933057774267172220654324466435522109381363012431637461655628259737707170406841150691746491126692888084061082212434401301099686018588846294823167719790279333015466738150547800283299351652308407632109383050299117005519055814765536877223338051078918109777252625837316468425815335992513634938732387729789917258243617100988760356134982500359782684427747546568512735201785287502855982544006910476675186980238017247579247275638902501234717962566706070608039315576254455297421385729405844048290182243409769509575419202843459026528834752505298724667030389529395641745204270161846323376415470394736169286854722257699118411429618865968656338986397483936837521663220917155200200923747570489919170272342588389825796253970376310947302884852626881730750848045028814686362778655864391212088512971974300137873251059749927828328815920139820591944098276871318328773754690284495219406608204008068358436169895885860846638361552206689372522382565148519309716933390143535684739414845135509008822006101611747398030081078489004105153708920888266647867132071701524795427350611421177769171516848252570788731181000106322857496804579417101134251456307654272244428601281897700062325509188844954226459770463553693767922331095115804298807153119508346867394703372412001069002904809170566691880808557666908578545813163022868151845943761305255858830647505933536722373643977159544753001182433129033357595354930239012625881620817816333715208178519123484695820394295732193480894921217912141099761480315267763804597904783905919705071034629907101667128654914767050607376413469759276589941746139467348273372188928028501906961718247698595106222599651909263177735201470352997811111387036920616026009045620975938971464791811427925318247542348206301660184789135478393431453628848677901830570891176812854898603277028164813398507391027769551698372924792410750604149988652006014723477880253646765988680010206946898695077537202011893777063353324991652584801546435049933069321873642452843906780290488602519415219318768658858445780794091449713916907222235717645353593879837914606448548192984628100130733189312362925804743541650920152292384201686045684891522940474012948433325717536991166209291410509151049355616845151299186554756429558713568954606193112617712080673296157226944939029347821627843313276374834289281134221771068944936815309653959130474707228923825758089658508220253194162575739169365612987042368863537229294023684119144412243877851108663275864647852173027773672170251443520860832905311190835682066526968201026139083242723748539753223503073829635277838505658349570022787663383113453370943942539371975069505359012214940084795808909774115552528975108168360527832288012037544098103288458266699778600488763480184675193235671506773076834097884923036598383940859800028352972571078076684803503611255145700895748324846710459749268193084904311372326035588709855712323215952743030662399036883632178818692321147664272422224222252661394115498169833340303361060549666089999873588090405370158276829629808378765548908381788450094418270783834799862844774232831200579966430356513297563288480706873211316239027045490588174840687594996793048814172787264337142997843519365696702307033814073953911125562885126481617731817595557601346235893075582292136410128720024188444383307938467359877262571256261827569080856789973294423244859326066616574054903360713363759806216662398733525533695073986484018762471607072970519699439922610850799663748571971627363879524373595312090660066158697783058994334471778793629980588669655614660623548566023400133493217417136410297593825862292330403509943656726803413190619599550442468368171080878370312693729344588632959252725689592412877875891822080242283480179949406229346408946888175500824031851183011916593124364707098338806512404930302458856782156927112351240839110905467111098766999306751088508001371604975078977336932748333473519058787626754513816127661959964559811387392257085911886437961129570014700835264348516522390525219639506043574295070941637330572354547692278763425948782007762006152795705664081302862659929111010757076683152646699370672136911311358393306981764372159496312712407576998881877942487225049867976591373511649456743563811855388560320591247204469685945292974157832162370244951815492478802506530141921018186994441276607672874779345444512092949868935873292825371559045898671830806004944270449095146733453851932274113917349439292326824793567744065201261421074365199308666929839923039865561053997964271312778532134099965733251119730723879786893687926318714494770873231914266024648742692309279136991941246707704642636651820320782872964776330148732179309306072643844655153326214466683505456570664405357115355732582752059206587189897517379823775521559372865258988948902661003338397753438382729715768036452383186765091032940866487744698940002674608129039535685656313012802464110256698551735088183774826089413992947916568970439606141038612883921655226813673335898484865626918180806462467075202549962192787100931289952282630621730177612022936456861847666057287916413650758461716599322181076264515813387973797928901264113124555691972888537534980068302106874461109565859868288739729540075448628279457683771596403483107917825788264623783686176358186066822878947393428829994579604589459028445226707134254870227419702418466686688206872148113274445571058126191404672233639831689296438517724577717815338484082980053998807191446400777937663991530438823240892475941901362558517928228773016916800033054794167666157353239858060384336207747253692254560213769390394702156371993953887180242739830173706339157026163984457687468492177667022559094819524141350280235499969495936453129285852753521159648799456207256793993050786934840089355862843380524697756520488236261239088219344673625318258637011231642743953941505972705256086730038470439139494235291704400432918590369585081275458565537384900967269017966720854216310575223003760541842005520253525835362960304405825450202277487678485343149310541429781325872084894986063185914317086569142123813909971681737842108742466688160719982113309450507207164205187757423118489124967783539054577202186633038406201234430237893263138793877357603364614678206259139747406452669135246381905569772454689761449735977202831851809536846432895584758266413088427319584079850934532010203854691541389137425151286786292359635174599567235444597300410951790411185084768047339977969187690464141010376499119685249398283475406257381870713818485379958710025038438063818392882388206192111226385815960389092687822049995946590630536740294767686618636809793952329211398927822350026432563040924702084284031101955916305551184801945486353196036106465522880720729944149217471549711796463333612302958988468340006571596645709438224889627791357698208993205101598840243173875362494072877141461366677450303361815893787645950252404012360566507374036740944256120374451178642774267786342885311290484118713302206893156958147415463576756382359958776615653633518735892680482776494226425615978961809205514805400780291297593289861127323064170677585554503090068847589817121253756346193314385073562865500641615824263012369625875594159288842570416491436332980648986467247443737267992112811801270809184432306628789633321248309367310123810040773652327682491434598679317121233056638312110172221696810584893719176055991248234241356203326175214040408265127464286296852308991313721878966867275539075749502224536846556700949673943529678009763031581844299893018041511823725662508199525478329922265980675241832716138142443382330314711509301454531379957230712677126156632417281567250613792727708134998222759353056694203931200979300586994505049564773455272813316357840998991846011015856574322949482491158202528727781053981985125483906858211489363036529143336791615969854317776660234709095741554078499904897638580012668791224283403834305713899927064464583866609389382879789001812878663809371788648903133490897537655820988757517833623764432831727089764126265329116323506504692855735043201379782278546562437627849988972472116983576630666795518541616003616970009738328875162187557753014011543944464630776888728823336539708058089535236576884223392982767022829641422663472365521857858190376920607758981823975034170697299844689387662708541389820632920149776424598371701401811312397071728754012695424967957558433554322991563250892223955696931616396930185511483897719033134485540032481857838434698494288561539093968749949326105149294057533192123434761434754325255527390222768647188180639621915270101632548439892006381927706542099267052840720822187464296048001529201349880070348012100446019706479601960016892934380687903713821332537423709481168465548288601827289288618893666429714372593407135202725714019055252219034966749523618780371563143513404502485356684691734086472558843959635651327530356839583366134633499200892205586980427916634081199914363710053085200455909779755227449784319118178887861288710107246309715734631174020262964508072067859121255929333932111787781167335212609672975160947652209863745994178990260228918991213319393160430914122547878714983063626917743493897122108568466046117153477461058767727266539819531346005165473695887294085511388214980877725084946905267136184335921568747249054977418988425941222952761049333119681503091392178618804282112914201845751541714238911251121721641855475600109725751761489416871727076702100014280242019225441028284051196694794604078903147269314330416025142068706146051307200229982277458490019059940647285051377120683921709026925853543210415693794244256074848482650466294519523770293045906275390678524856255740922652006527232561956477587969171894166144200581692639642468972851707560604381884955473657130908268687830990635832717258486960975132012792232215523292872478750323426995863219684918212128988451598881885466295817048722565180526895205162116223996536317826163400880544355212471830926615024873712520379836787554314195943987201407530080535315390716524481935865858415468202527661680856201165064087989603864876745107701711948778122532740927819253863302000103811214912347746944206600378081393213122070304986303321025545184791532076631055357843118244769636227305557512820579655079891278684351026699343921234685000678545593264913800996533776253207481620103518437104815172061271390598171307281457337190362315619990689639733460772622931102693656525040195167587215702937948752586574221602567241015038688585701786054302874727275545487715323962670503823409645036823988627071936841205161412522804904578097802049285314935682700674085210976184708575970779000442535187512856874763257132851882309370605219407405333122490669106035097805858747109067936274878123056506333321242894642682413802123583651492189365990242289395639233280770213819382901162324865768554695675721244207072954672910618715737021655391014994957044152185018326929405654475698362887986292079300217268710571457977206084048754061060245745180715455886955245586808533505687960814723249885910931015879630224612824612765124348999779000241964679832861554073409970636898517626832489274075378547146185904865964918889045156138374238715346743921400369688857989481449623511374457893223349421111354457125711830834823411095758586512641735601922321897430231276067623935198581056724087782800960516498960469952354722298032325396501156883286670162145652953300884190843950848624151476875081249436329471986678003846933008719647639822875355833708988121579403636383939813893261866697112792884310950710803629822549321009894320370711550776377498930250614794062925512371126108207962782397475570243834539988402569095152636391805831195357548721160356303419595050218088851696533707893727882960349064085145850821186926487076611939425195287940482963180302442680363855675416262013293862851705219652269513627162600403432766152384868513994430687626091682571743226586554489121776661915692477449894172502599756888277561898113624842681262579728173456133262850608509254899120183754367393728944577747422837253565375891590827950372805819400268754096715901113262842340997351536614158448813616127387214633934070102811963887533259204242073635104130432206650165101826228150515107222451336046377344034946552886021708958302031213229791813062422120234993042668154835046625766194540808282393680761453809806945423937791056854350574517324723221872928667206001554884790284448280905344870583991804402605089842755796406136317807960824881885610657125778717196080423985489310754801594226417524417440609719294163216735724102318585438931899787354440370278681722533244378480206148197210073081976400116618857221325631776839233023799209158575253959856880469080760153845995454956261570814465285702387829046895990085001143768354830422347751562447646989100797829692410211023027827792817349233409680418436111215557918055682608567069843510528961727456981909051729440719822677879862336035319971810028786805817176899092469986901902281632936663618440784173952474737338223732807328754213820191052252712432160947969570789500959946497062236291201223987143857191415850390331605607081821141435344902752455909985886766872135006867216386598675857824042422837786261840559475520047620270319593664670818527152719502746503648537711171905654664461649436097815466647603185844709428657945596764671767469313758225018064371405476540351935409983719559642219442721637389500324650386006978305764563960296671981731760045132563246257100890251089513010619387111111286344909222466929159235195085088570490206605399932492404137644118870093888576398817010608403104236261660447907561465045687690169526735272472720449550438907123406853547673548161220523703558078422694297232696569231171808607609175366098680976855945428131843290477123242045452063468225869246447575046684976445666268313342420331165152139829166747808333506117739936149103712737001877574741169908079726151984494657315530756254161270878155860338742601111999448024128177106879189947421265224824035339759066667762776518757482613938393977458205001779821516397036776210948715250773882619222158569835745399048981441778528704371303466947313647472290731430763597049294907417810450263894772516024400205747384432603497071285709331605443542237544179963293834757738679960156255807328058631336876138615480509754153795548588349153787940904912419749619912993073966071174505061061733033206611131280618165710842458946101906750232196424973755736815912844888997075197500390540287308032797297163154553247584787242427890153762979754096828900862218168515470584759755717448683802264270466083363562916975595959306020421963517463123827019484942374658858586868751152707027317459850929608907430457107085224582966363283420158826759238028784692523282083387188518420787866607005866842812337489920496250270909595411762806087093339613228411748762983543656156782644812377378789015496496517011642831444410779389442730508910985749368336823482216136660746374138933525477391501600254027079103416962538955460187532025197685829068110945464520593041185018390975103334428699644024420073670510311760179965373695317878957976458086148662325643780971688780706979420929541882263904815875662324946690504400483262662322722522445472320083449934061579676004062574736640980778089195074148420435852998114374518771616719242596767594411588005740567822632367930136469842017257468395624805004398317262315089110902292589177185540722204876942167832694454833853796984905164663541072545716584367610354072372902652274633019138558636653952990350275244282834483988357034799986898577890126759519821406033485138256384494304780414222480600080850326085728679902606487642054183244121740873036971920561665725436689727271395063504389973340125923636572094558461609760886670974568863548934763563810437443236302320840072676976526286309825629266195103669792794394681675904921496641244311778301556587697682547017166888746523080034705576108312332116504851469041731366975616420886940744479419493958715499454955833190304981325371762710535323732203289190384248962417309153942740906762546264703831046885018948698797361911026529832847826389129601947054539341069200773928467005039746137934221067700792577754004028534934622400097845264640403522736949861927953303520153181592594982087042840432018724759724745750069271103090385969854402082880229783425777246234301932863057398045825615779963695853090762420670845852746701118801727965576781021551799286650972100034945954945083151431218088021243336450137018697669220495116151140622637317764492706122862328375315540768655285811652896697579829664072843903465194255285811283788306676011033243586115293926157997827097886071400817945745160356770006570220811797493121365399336430091471462490181502877610327107916026197378757442671681535778304463601089167178247088497027791418589807716406745338719887187292639292637645501010153182601234817668089244417520336379689940089129112623624447617365567323386191503473909073617999421989916464896295251447653832318698474863659070985674381559663760830197975232912195055936425656169129535622944050343399916397772324490559445230717946282683334839001340491163793901794111059745929806335873948545828532807584133441975465196647138309714299242483762358160455526460513581913126264722299829579955600343488318044493728139200800303330865794359189479676771620947417833297261307709040935448699982670651318840223899180744612251000241298214624579522364142333211469185337407715835660326740801376470706335735196003897008687858888897151404160374742723360920339576551412800530484056995933489502281000558962881304704257368140174056477369757101380595753959955690254992159613466186562080483104241526783963663995786390342075084085116232134631288632364044767382893786311493732955478666234078449373451882196332767698710940288622036431935284598538263438186763510695682367789596214442115975130061314141664746092876414993819086546421661210170783852893801939943013077062241822280600059818707229846273596925720076532564073044154496982459494366236385379714557543665068431849092218531078344460127872104779807513691286667940932078056288670791393060016008092813544868526688415408615764741498462905312890139855613562102686488075813707335169024208250891929238449003440961146788783456045130759878586937259182372777601792370329288955603630133730443585698886480463293147899686475846208732547300186061717294956367398470137152738661717371112777328542108364599070543542795757201954456374286472587227921123008653778891077479948057826012710477506218823585720294546783706312151262514010053646072402701152514875111066617272173274354137189261719882643912588138589483447079398229513726320242115189298698283832771890909683157817102056856027116149155039719995120074519164261933352927455987600994687876411907345682760688746941176454663254886366840873130444841009318054260854736093135706488504963407479195065172347386215913822003789623029281018672351819609012446406477849777050816367817538196767079031068377084178796163959007181167710206324777095651070914824079130783449960321165154621270182751710524303290544121393760431601619801881673439870395877913259029081188235306747091294898446095403945953475213120596729124172708008822513124816337640834550843461008891626030383743037466478717805316944272589161099419147804639404427846888238397384477629735803733862010058820365823173778582835522107374731929833213061313108132015066068090987020319241960970517344732502678909509919751935879865070317650644430311234189414285147869016250925105054245327606112250459760534943425503895295625804703356066784073292228719056825165643940432690724204789012326100454054487389784375372897642122393881520587464081575169482095768363383745757589689778433946447876441380706497913930754124501909822187180842007752248551667528381870603755949291225825893394420994388154224297816198088407118834802670794246076811777135872089211214478187892877827466476278196502944911397099997181913056657072649806634258540774224540021535604195073976979589436262300867141582531809670172562184011713768464583415896568898275732044601675550787728045679468745916569740812627866720792379110743193807135985946311532130336070520570605773636260127831176810112819482077093706845149157807656732449171556914918691910613114914092737278311555902125029864167744490244750760767870766634657907162816272073050501762251716736689946053113929835588340361381166307514118314738639048169551724107580984665546564500813067127175416192943951948951464412463930648683099878553180063654057425554467323289793173162285621572562763043810213803293796200454564565088946796738489673722858712425714300808693045216573722654661788696140790762497014299585038445313189890990827331483004867921364500192590216834141938029924407624764455278641732638774981113696075233812229854117316714478268734266396139428816328009130700569832472938045124282285990099949377414494813701932811493048181884882385482511173802478918577589429637250221471821853521913481091029727047409282470230763711160736162786409665376906138934804736621355869451678561876953810086876420244111355231659790072611904643247859839846253418264580211257967697950811993573211675805931832990921276298653788826119995633151419375283659741092505012002325578122157423913316382933819729218127689785800531622869937205040257785575967030158688048284752922351171462721918514317445573606400710029394433233361010740146730808001841379130238512107422865077687693937656938976480632275984849928289337858162404317697340023602631575654931022576725009947052519748845287768442895725421010837196282540139689336454780818864711047779238501482660098810449396273129859863986813674312473206451656957137379074867048413135131168993090410056320937430186223846760877964650955206921999744999408608387533135054924499054339879657990603518799413213158361606059230708231816813809340308031937837598624004158152712193643516664565749505018208454733479848901235025749209661127028749907539172366386662253565078426758099384562585105905583747149759384044901091257975979116159232303695767236394977046747539123131449827019424055995354894825878307515731332009624246565972216437860270992747767013842534210667146000713579695191245360117965672630399213842337878678918878164771222763015636310351860177265431325818918416299231473558595233605747842305695879262099752310252842061654593147702481175893097835271950898656820924891335259912437858048860433802774865906860817876598424945606728512360406422133199185309526381087835063408305050722917162735810148493295425179013687523628303289507150047932753739141451262837962928422765753494122238604748501953743022356965608064548807332177381570025206840807795152780452998721018438803110994857080749391138558314992514293511142314816137396605029099823569968369802622210912770444438629416761092977393519399355772227114064300268531336012726345906060828697716731176617828851993739441841327039540091297280588619992971950441031413755874834232572229715634623378742986705349007983281940597291070732947757472836605887799096527310023143126210465185350351209414883616853719425815475371630718835588614445506601375816809627211645181265016489068278164518729090899644078352626531766994029566148433594201328866853696716163580816883604670390217636939682785134830531760849525702737506291510541763571043454976265969356903297387059941846997231646203037230803395002234505245466812882674157214006438242807850633919137225969924403136284917532107577102175679112480557574886575760415019485427243751240820414299484514578187400039783197581298627135525965867824165238060105456798201086489428953499517866610395554636818054930674516040734319065990100050139171828882869809719611949991262968099530721612230656044271947861895527615657237401273525475579745524498285798582626366596393150830971759242549638148467853669553973710612989794984958942618521472238063833562365160813563954252915349607985942138029030903587847084761982944059558974045445074665955348088697656766721185223803677558235554701983876818345765744106872597672059734432872784009323338372374437607297487202817089201110474815606054195736477102062267042330820903019711294239191586521295582754355257892350432299887194721074541333703281054632967179691616770212741100386590566881910743378970659360898344431575749560222280039204042388184295992216802967631703080733256234605988938458388413370864774350789257150818197012835468232499705712296873481958393413786615150546149729510330689533982311263358611752792200042705039370277594561418156679920565400816483838168702290312798706986105378768085846051976855930267288048072149326349672009347156709796072291598920930974697372979343010258753732189516011625947420357748936282572262812950085662143328311635151425247485377893718240936527026341829007442319436927185376726520290682094389542223545215198520125716658575138305381971601057494385714399524224416782351216447914687843202912127888480486024391626846472190598054817479093897423006216388274497445838411093744111633032812510619962624549910190515366195937693500854048608339320848010194151635690343270497255056974351305697678886256506087433535833592781538275737405114894535167029253776578713070174772099995856425275870773106044951889426329715143941271145430990774119414737264431219262368036546771378997528222257240304175911712304430008529014686912680959803521261753537713824466144855627862983008538739927058405493668264643005459591470675318799400968189096301289103892533003677721305806370231656260765426048422820497667791433092878328911366633948137978516176872632739641843030607236918708450028291419240550881044303462422100333288811350053187317063766596857454092979293459396583472955605693291152216255242976299321197440552088635328208128016216249781147469552708121445412789576325356725582573390618145184200201753251881457381140181377725942414495553211432608673792805728741011533346791180162103881464692778669643671693525199272614415138601441050343872757157442563281272495687824252108393303351853683223650917958447814998996117651562681873834211161449527385818077030727491756144423738924816749571819330970099601018743877087909147593377878366548284774425224980690341465216360296512538860218820763327757687078180006165755686853280458279360377519084891305402877956313991198519318515226191305551307927671185360693138423257689220783678878825952025315404620411514763858939333915313773156343108555738399045354195667639833875325103022023499383500524690339306290665209108496566236235942387211017195089419442166819996570505480493560178135608756239095936459658541582198881412309570632090733450963407673432648868417348885465807216916438003218719242944120261302417536752706353490178579217240338245936721899085796706680975785529891573794349788744491805763345129716376826876392024516003215345005945114617835642870303024685488712437542436784799897927623287716437546950693755136008816879446843185337683092346284296508615348223283888336848509622486855502273489361415394920043173657623973371490811869364609109687681059132071797944323900369925911136995048293929076158983181744934373431002978940958178554919729334170433197738133446348508434280488697086773177016539271986076527188988582964357123866306929730825580449210089611411099605533466884738007428425956265994213417257112350644163672313936108874264241011344948874413707842799912215157516578412506487168131457690985421213713916745995329691605343096505985166369167059159109340580901231510596398263685670084888885675424239296521624057441102786279049994063988622726945487423191630861018677907186602108288131169836717110315012999253933587765056046011846456103443791111666257385130388654408962545747096454112023100335906666793057586437634818180127058660073316093362890110571812144608608965506694510099919117656868517367393032842134044254269871351616861608449454536128136132401931064961938573169503317731695952759255859308924838417023015616460180117418416913335316964233823248891074610805666515172374675596192143107886925279119982017301080872372150036382708897513661208884943296699047947323582529151414574292594656396460927054490908469652906791258399921122254730053632275572016626598599490234973055642824105327633690740901266431300375626291002116269323544717347140987127095875854507547066523145120779273724668850919948354200965920096013343473316100215523298800083217859887379937951297494035590625184016963514619633490259022064024279426605332817427100599857751143361191391706063548025093531922248833619706975776925600651593060332240351592081177048177436093831420892607512181074296765229092690239051650278318763382354632946217824107365021427840073294101941786922475365855050329898421416991135613050561708186999929594041727299425182977630336716082095903550537163638639496801503701753952854972411237016554734086979511315032530683940453486235847501254679536037783470125589570409722666275454922139686324606121509391539584393310248476433767823935388500538145209949793271942208910754172018527731107718927192410891475358803103200930271022191333193618714655614299977947255817781651125750763070296482689959828080393543637329575011668568060650571958011784629513900050223697889502759667070053055665105711514848375145700364001199612571916553883170031692112330815166631281259898031378119484628321196052840596580490638881415054572373616965820388201714320823875374772376154505297612834869691686927691436680177942202755382623357924305300437679903298588203543017326042984177664368031162461508150783161280677468816035950294259504190569524283525008430682813656899042029087820107057957142607766841496583249897879110743977152077575808219174373433765395041752766488504209636858848090075499079004453529509652703654461674634087090060489112935334654838380434536284105966249294304389662228600203644129385673369412024101136218321771252414924515251264461260743357856348392314073760015626488346535312479884845252900412754487470451262569512753599188304356127301381044422515000473737275282036778513615242391109694822628924899204945655991432579597957122414135936938220194543100763745530439737585027503491061171567567161506211864706856189985933511734772114591607587258530071690499668330355124551789494200424305371044363981838657535083626842849727005842892992289414606817389380287988075005380640747204111359147917246278725351846474620234315308703456568503665504266092128683674910507968508487688870575831117087386477844650458792453867482157537122927237519220695723290398499295234680015763600826021767091788551239586055606432520848387077614883653223797773574635918341939759999293755838507870406122768686241783125639295401446480154036678963690648365990303549187350928354003973914406811687883307086706071745884838877006542341822071289796629081747839131129892673582843690080244318587548906777405637464063336816327216978190653621509913287004624799371736670697178251900407029720049254988902896525722219604577828093171970910945265051965450975581181580510187061405246946317733762008598769881794271068597022765055984088153174138404104873952290714858460071059427464985798359222044121646394817060035300380721857519711167772771033935451271569666765535530831079979467436304066714043220172897151953248787916921563193994434726342176333003380342420808739096092376794271979072323244646936501667408918904345546289943772147818124598711163459407881536064731977661044350847553588016340131686689497168287630242349048398311956747442003821899294116823368524096107052057442952872428945824876481653927002675246460722141540989314944955412153400086071042365799555807061264139365554702386534324410824042026377743008035061577147737693365048872917334071405754314675760933629825255941179248417390635250851103854259031535816729543459971685018888069821665432151342649735335234031640864289094006161582087392408734523111891688939943941973240131110976043872848142851706289472350629975932391890956469673470508961329645100357242720927552088244183458268968788267368669710421608771082203523713364516911829211626159973993286980497306273943150958788141793737524679092843072274200442806933492356222937982622465219829176704938379345566378390298373914009339041402404135733143210166867361090545365202441022335692756347499761773895740322843848127630108894191491866673508405385864086787827148721026379777610697627393471838987539378466300223462352685357917078994868796698607356105544125296445681409141813083186007035605791254612550155980400958003260108660934114367803107544458866200039070903102482133959126999020607661508370469053046758928841880134947725493237053090243542582445003180285712142479608147707271429393978233651285695900432163280197054859620463403021731059722628690273303613529695313385650245442810883653369151815482534683426754093565390765023081741783054932042447766874677305435479548242649442344827068023737464742968981227331534333205401670437591079940718622698071740379834629987282277220918426401194647437820677309355748221045364158881330134876415642249474939171037381492230645525717218423989759631066154984945316318366916816112453408632209907166291291483368770580893588820531139483087796338504110196725098438153715059937861485631460427757760532895326610606669482842207838106250523532521659902683309125812222934320250417733886823791104936447370195806130907342087400965408168535814889876471128962627426210399472770657416404157963555888704704640352525134312508892873543770246933419064923831885573045386498729407040232451631430155705192629915985118140595603267989741041548875883047254274912155231461055513066014707795575720824752276592553351567123687064265557283273805398795754564331866679730430127247601489734815403591342351854893793385842329809082147116937571718688462588771326992508419825163451586896979698373312879100633845397730772419340798324448022956012023359133179840041676936881059662444359248114734952371151700301693583193065117461430764991559581287926646314218091011853917961161768786988879568410694475951821472989385312467453266829577740930339417035952232839946990692040881668588008736429592028167523211346740570246726756715686101090968946930282777231061269433489062561029040316940942513937942083882609711668143332804945923705636647044438852879255330180253278877174829897369434576115873285506186017382970685656045088437146155168561699460097064796592044198029412120403935698022034413413165458510101883021388347471907610656470684031048239056996926422176710365203785683870923122535652168359751602203858676794646730671225475919508485169830126511125933425530622909418350797610038555808814035220223658108191469406049924783300269524418860935354488157681605155216950050784973608357372617379163127916827542624140916186288322182140924717254472438954138257564381983449689574443265935462038465670830519946185762911081893908728044636006565759410499052055526036887083161182421611097953771917538351165527292245640585232777822117736260139434588145915071758780712751698561215905692652293914532291218442661534057313813154951531403320232928943910732785030554146326377392222728941870252149706090786210868293722583366619822684960289331510521755520749578106364065755718934009933524499089999195954612455617581977647402630543396903767755253480650412071443967701165529826033050418586898221116517852319428560605161512275803736336343476883214768392749416965493222774902911362675844782205997304365170954929688001950855493808710097732314447957855727507670936982958066107029009087170662447713866952832241036540376282464238920451043931881239162173095649800703644104910521558181376116044875951047148454527996546331138033314831505866779957683417938088681499664727500346736807762866697834221320768700737035570265249057371687239024812372124987632434210234340297124490333538576270526288443924101364218517571764340696279573036276148347842445654560731404874066795338194219150609750566746843433180243585835063971126426856353969100970873776411006848830384541046659198140499547745900246460531117365299126314948225124186228404945623194930209489103185022968970672371732942162172119403800973507844916254007676709742184434287362861092911177067593881357034144621923233595990290580155551815989951714441897452311483181519898902624876288713193064139828418479341220616983107518183692863278723310843444586939055221392769717102167854512869690970433860576133906256238218675048841601453453781938346214952549140234392401261149272840430787818617119237882853919700791972074368420100687158348630960120716953804814351147861131898704397487570053709158087165395638054144652176096811187099289958689249444996442469990543122287723557740697697409357710390994276865734134785995951451766037643659550965865235938170966685640103980696821736608448410691365063583300611268990387928138785923701079186093271306592662772978878815353746022474169280922907871314365873413092279300574142529281720545295939488356288817537672467113334330936932469018116116650429026318257017886554803679977771243482191962505998877631990303991094492228346692516495777152115688270434816958435584097928629939475359433813879876362398236621956726240961437997370557290849131174462369537869986019726369679622693290112509333875489726826677591374420136810951170272155637638370670022802769936180345512971615697006881893917680332221678983342987509972125822160805302294749396465400127148849449058816984710890777424114360275430391096267478006535747357867720144588813303083459107756719822246043163100663062920612491695984560851705701131621421478792099235570917622986336533954399315023746460909075693015017137960413772219369203179440647224968361828047648155159740441175412126440261772828426007908672725358251001054287282550023468695380084223573805946938098786757999438262329664866090546563540856660634290153165944569132579862672365379310816231687367716692195848387537911785363708007599829209599094188742290536665713524171264690419298084765887367863830844655548677864038016125045341346055218524260221897968667748227051576330815853218327859161953406201111294285041267607775027387743717316430637381309352158429916219371377076956085910902867434414731869101174345330698303930501844611840311297512488642283136524924883407622861753393321318664072535992092060471344262166588299856123405009616901299022026778077441472420339142527071922769296889277962386784315708686169081153424026912894204067760243702555386110319333966531421719473304827362098295861662532037292458259513578363641796155084299554304253350779332262977357887753354047522735534283402155882423944968517630249660936172181486373080786346628675947872815782069879170700892819145852397876937961111578201797273477391849820964618995998576809919740104834474775821122746148923730618856346692071622654443006453350600805363113684671779786617911497259972853239474589314543632119501741612702552161138390568463170894959890804210033346674339998361276062766993436709154516115982680251901032941465934917786029062852187580309261624521370171484419130245889632367206666442961938288345941502912686730198226232567883210238672336854233751155681281682817245271918521196519410471290858984908356326586518872686038691917636029995275283715729111741013337760265043515802530492264691825241549144843567640027297051350481337151244139579571678116505835226430048444106298400658268045530129387966557480512239142629189450649520555551923440976686693790242380779619610241787642348643012785910920240433610514964485354026699953322267283327762811765228410693715812026114187342352682019763558475653432991777200834701920098659087619061194671140635278398501114636246796146503379684296098855813955562272659429766067529663233802834243704395290601433539652064890586422585672820675474752519234258701224782850448150146534338403241382332499515477041629871266977365601831909339247981408908518104747097880667140611541351573417471468133307006715981511514588358023678995707898066371470976293181106080590503571723643026237290936416527578704856929356041820917985631700905867738088903745803506846670170097824343880642562880434590574435363579496501111548638523512834037993242329036741692561745519482078304639457323345778274995579173772014805115415040072996125767740169094862444975416183019913217167694538244790719024268123588214176495623972294746844922185900454597256317799685806284228275198065048764708811701648889083723722881996081941054837212083293287043437827802151077012828775217460140708308805581957376620168390884142059325424318980244914942473623904076433137249173739755363986843446101776864925752306780911964192832712397074016596757305214186890380451609895296738403565448564132778582444445284734478031420797838043888460593659837275049141572505608437965753342234788046147044012386124231797496640789727758438891346896895699370678215588075166227521257639228202841414852400577169496300527681283699755474583086724157313442350515355926711471993013139238154203281605381924837803821811469475851815571046588996458527221856673203009093351858927904631547768473922914556608206694823071546293086693516468391778517819492031019665234603107552121920032744990961021501919750734702788477080480424039139055705802578529771760116252398772731545939511645006782727364025495893386947053991529162497797407429874626861285223595304827678167523885212603893066253590191134477881660691120842209614771812151421785920220349762906996223272569580030474073737315989420516888816546181165568504818921638728396822006490430166203586975327218744559491672253214136260245795013522426241226226954445407435855235368210233756230829283450610173991001323841363388490558961752126374126676155353622332468864183226203785653072798171930523888666917470364997368499202388864514760208811825302012013179406964678753267980243773244055852286805603047091935974491918051433136510664760626556234478717582065516458622623679443613535165860010033793325051648618770317477864984770796923044624757067921452220920940109953184303887202602880915418531088888913039425656529850423480857529934541653262637228543620656146944078753442340669025861123837449022641127041417183652219143417770499686717661905420906429593256520383942442655450691855589951729426962152214644277120103201409741600289297638848181909051849986265409744366888245517919324968423215761972218363365155253230686936432173459571091030325003427263860207455101257144625062811761387589842447584008949609272874883482827741348119555185508876054126046269252454909287993590992889774862608649072523198242161149889829229932685420609859168392985613667193745712334815021176564943408585427659561075314597598809406777598125583472809582181161988703270408616226636814092738046998892836793497826435297753728239780292155120630112767091978022707431172477588081052577350934494709076698475332679812953143237906204126501146643902837554126255216687719394835805444753668065726685080404459813139688620299289032929623040340745658788187300640717731129345693950690354424558692588594856871230591241135638899965857457144576084162305607021843111145202530900480706171170288261198231794838441207710839812158525581878828747388904514093785924779973891504696698322464245306957726671852394130238174006573061081831372675061130774863714775557252340918141708426570847399148476851909498125075925102776978030847299781341428934396321880669395204618296981306236415309796341160100070751551348051928031989574269145777075489457183666702992003806542992983402097229017394840451750705415741622206013379244844652991173258999626180228143347527851177123683678473138599049647055358283613254320395808873755900237714074618668632398970381728616913459899451018298138561978508473480386933683934189073164601543117468571473967688523369497870182099682250022291899148007333646191170682311327268213761166547309999037078359720999906963316103433175449271670012635977408122753869446778029136194264329153768162443120046292281907370067935215938026588946229518612229275564192584482929044218480674892612551139767327940582449588582600874361694158410526885557356141399200772926059346974853235277167945884795979252413974862995884429437954163630464185888965179590551288543394939918008654149604542517441094548156300377029125921991562807660139651744575206253565385946111858277331618013573225072316067724185793729618481951879711666983220762880745859937470680839015479842533885657454751105456889521903501001988350811425489334553366856225089594397331653640699574089061136290091345219517611542549537630594820787163435138386853134661146947359333585220768241494509430656839833040308234323584821916417056142270933550973304087807950011467934351951119168351862037688671700575843653282575897428947964057553878366690504693997072446699248485971153103397595516972047217819060818433529478488528622300027077846185035475397618252432574450967892442520207760126232861093364197157195028711364557647776589758403521858690996145649426974819170219209536550480341410682235921256675933457491729932977170791553635305749328142104980296470057160865357656578048677991214908143093255475351627063022336166905990295605119799000489996079672099473269452428701405268511784863776677329060773675890535219133505070782142205318624117258058362040986562063564031170330216935884499676101746530974175422142407004848199189483019694581650570221699668054391509462286800368507626061247697152963926344241153417217911785736674697715517121779810904524681582459084746074343071412766664450600708203833694849383137137798243704234234687509779996367801316412604280718057576171428282303672315689270398219043126586795216108647359295333118918045792739964869977364170170298704194219136652082649053075007123056076002274737863439343344924589830025040443336114176675442400970113478603760089068316325384577339967870093258305894882941331171605638496636723086895223368141933627382517706695421532317934072260429025864345371477957082207501235565657618587626429202709533195322693490663101972027490756098356026305918432550149303761525150270302109689299210192929421904004129357635912811762533698028127858488118645196468421260161946180067736914602616316156792489750490617013502531558886698364746368881390579850650970229517471304223808237494149827016968974708626668617073511447205903615461311192720831223115149154983651682376579250832938668752396043143489266591145075997501105250852738593274247886939548109363839705942805849738115276471012839089631080311644860349823643781178767518633180482471314104986897449891676380291503761102199835456985228437013497791452671994483586148152289522887583809875984299176710910328678395841562701404211845399416413465008581261388229981675195714984971144706589334706745724066568925498164329398312696384445842920313467721011495170992699281043648933402116228280691139806029537052652789948190214676193249155377750238698185686385785718146667954487981821514305600432397551476144143599575440064728933561808030897349219709395759966341493305254820311202747935224487842164740809902720256664829973384100143198136362171189036056293450932646808179084053657218441157957876537275639427769320672681713912994019199665167158782710190808282981925966817225536643199272165151356009296642395593843642463268777145322108299654277969236634008773480453108717134906354713624414885129560794448581677982629889612816660538862628631057199770873370044516795169127431812598986198611373432682772895721723384951562185947815234617722488250238419783374871061323384402848355681461499652263462123066858233954492914821986592666691520828648800154747799275837221754280822027845471204352986667561559722627253088982940591446685699333085544163879248564373218271680947207464201035990055677741667743577851694327630013996482945230032627625165942919935090316386196853312692456104978017789450542309151759593405024902059197034025199287056155955537142689089847433967445769634678219282397023223735451934435549902348475606884767076614352700958561460666665291522209205539115840683420388565771769918577195773211081960413379161740451083274394608479524109704386262286270280317490556604112762890157054759502378822792604598937883048122710293108974977926286272559733118083899290375504358113224361131972442044265853192393965203791197076525407813979522109366467645924158993167866531227902499771283230223205779984420507705769044230626388440651000342689179589779202094870744880314696507287173013598210706472915617492190776895656539744292577396588929092600851081514393938670935756939494248747977661321582134082599466257667766646170467447590580781900180149948184651458879859741171031634308150427378820130648647481616897470883410140461342216093783613138586599710862642995701223732605895818444217987929268866831968385716768338607639231457574788726684783287098510508186669042566380203614168946173880484752818799131431448742412306523678946652531987790291779127135204107674139489107784275955616860097409192234018530495783472196522392064623396076235980592426113759815489726200758389529354805512570047813320053810135617323140824071156274713752293062827944225208715188248560700208319094942255799715363115321954582125353015023528992549438547701523980365258535047544079336682852864424611599172481135239495514730317280497288929579008893703106706927105381354637388355295490273895514777048194257377423807459665199404699715214665502944393278531353320989677184917868267491601704718971513030296428179475556501944233899731232623374589957516243958813859809574075945608492129809504409546220121764188196675039236054893772462350174309382811218264291700393079992914946056450049147382188686940914626178107419707236517362341269364368382744918734792106863832552096244830239316487161618188499181776689179321340750428287152897682937621763665169791737008174141499248487547304278255603670423151206712732231698959320334573248069691887258680982449781803487671869181437720945907630559220772371986262726653346948012732367868787766145746830196145140869260910884004644441022595387974298251888045024728842088611534161113974399463357409792697632219849028312350300039352594487091762872123409903620997590649379652604014788005004092395097066512100305882952545232684307259654666915025150617017021326372550892336878417072549310386189392859390531617611954167092576849086620727522682653356067994915187559361504485672252942734864890293569469255791796616920006259703268686743119268035181158388737192684003727928313460212648822527271494253421508170156453950012857038693256063208982487182064816286498707882649904068601005152196581337571065615145675176109051265305121974703622890537492955434310736561280709037124527559098284836520589741148633651372939786684452394363662401709494854518312656899354685210942877937573641271293895905148591198299022289586859286759030478559803139152920706129191120073313315042421722534534015215788880200584217859438007579999311213386374430448258410811846306464628540243276875179015664278299503122069861148496778708579865668682279865697266986061190524957326124419099730094516437875505665074764386467246809601822133436946783582529988603997400318831381693961825458103920452038073331653595703609974860921401057371221038976804940510819815535600966841545351865735527715810424329248374164614040083917327111599693440685817120581218822095952817451200024593947184579317459748078734458481031543849438628041579297647568183167560374783232153863576070511566505925947212117716524859242072247316158158527302033048756330394198609740285971492250535934860666076471549912552433970006144348347141304233399925496887615667186816677140691218606836015254771937347670525461018109333702108618422301726571370434425685019621938486827636028197577066125272903722778431661983175764040260673067191758050648399516026734472312545696868265535214373551229004641210573718932685836381332800213608038528766853071857525442987554036900654451818790776844973488927702834416194917269955940211682994302112986805498048868489596190041988418370470839517546257007253759324454024402244889183789487057278054869056456814320740914851382435469583615151063043983398591748728553138299301657250136831109023210304407554729518374080124489977424088877721107330436481570840373650761098888489657705954596880233053431679189831426388892620159200996577098101386881156634689850839780748195391054809733659625492139518686843222540823968268012897465466311486696349544497574064517920428278230292851392750650346171026916093971779501926167829758635552962507440259171637074344967918092015545512034860609187002399333140851204392546907737392034009028910918556549464145210901304689524637372066388177479010207816900095019493250149648001289707287638728709876653572753528983420222586332311785683324461974810738197512270502272685361753960441020249843688096154555739709748516521168453368213371509675025286687545252175419651435512841382215615171135445923722454196569586693485193461354486347814351870664635661202100074256169401342544363824451646136036983315743016952730097793300556743805404126234462797159299843143793304132365420822456197650135520358350500796956410939559741919358394163867948413076263677213381055468821187823672713722195306853276908651006053568533085512181509105271098889783345487202099490722775112136584714560980963769022100881083844854835582684639374314148421104976488061423534186563700805129600785502185119625900949732754972699364644623207427514382316379461307065536791418611800541328930497031212371274901115610287924755048261397799638203617186493297261762164852008252628634642700801763084896357892770418665967719448353868653142190872838276321464024408037268754363979537561799439692197516860047816606566206895266198810500387060051131676339521407611811629254843933941956312615710028549314788249544522489403559306552070793888271880270370792878415481827038556198706401018454522407364974717268899154603414805443037521539767396718843056791655583576817170360341611713632719723915402837206925480269978164456255764311523286059357785992881787931744582652563651805808611369626005068399318599427765396514836361264582153051943272320513054765359013384669466822939386634225780059086411176737455360863108976313826313579487481716951116719089479719830015468912679956116415110450851742255836338041492604548267335290493497638218570313385222160308781838224535710959664314168308126079090879413292087094091670804599941874794233496460948390793425651214993534672064676708943813061715237966831923165040922828744392442528817849213268110798078081635078278695496166766181310570943510774520223276732735786216484134511300350716281965943096274328122031378383460920282262456659695309717332072450631336431552479999256392459282086286893515973748503249597776470803073202834447323596152207381612418019831114523046689684491395883910913838044973572039158954494109905758440168843540118476451185171946895667312017890254917241761237509741510457361681982233537311715985047780438189897296063189186916269980679761635614114642402850588867814083090258976216037633538143275540301637903424185213615157247738764900449585589837123302218632363364636738756020165029977071133872501070326142740369093374018879212701706945475673932349695846683510609290512139522381953455468809647718516148134263560236320526668202732267763064991458262880610907351961937422204214649352455059942321116043894847468482436311636480089524482036005103328711715483536004780820079728677738289756536878134083127529756523392261160295666239657513334678226992250106597017090517338261285719673264637191171217978116042402303089652472403718769011182653776278905130824500170169429250594423376254857771701942137657985612059921262095305545398291268796346408854111837576869728328464389072927777564345700034331754919467496626435715518546142054468177635274501337110081862356512666231959600203787152922934237441880734763867154843499675950331745249979712856621955611287022592396797434674301386210163648814944642860491020789653476168430138873029422161981948205628194985313359462558081257287055537020528314062553408060662214753580559164552197868212875375870634845284226798847625097915247435026566897875599869409951258448017949103479214221133381158409336079070359777418773296589117029274179761879410296303422952927216656787557992460570821483418701306918486848837005101935159158671243042790963506652610742558570210982934567137266462366350411874234033922751345974225424666497124656493923976122605966530895173619191915725364728235812745308061491497290687495892055473633699972719252205119614892776798831732297781100913742439502814880192721629169354183645643245030789146920635667073860587964577655368326377471826152200329313533403754583365167626875549797308620183080590837796547033544422840552399749534585567770547047049219610740210136907214641148920537664008504724030723736067600953372143659761260054991657668756527685334640111177878893058329581073665254105834294869132840544014469506134082054732225520330036675469816354674157072274666054083781296441927593575901725521748717757637371457440530693459357272014168101705487534629771955904855569929486261348901707799667947709253812100199376530880246526403556364606071504785075505897978821951803020174282592084536642523420667286026373575584326051861972354332734678224805270808333393922981345425344112332482943218343236556200027232158127683335282652666320829545198648549174511698725192670901468064001234575462060577980826155832852218484385877879173525896022314916617519961394642033837765990065754294067269381349236466313358385854752617946829095033930385324643438345224297047650558077009779133545567336874527223430537791881733142135477669400190861453834451200216994636627755724724358143026402489004388135317566893756554880553304781376422583518135976577879749345479269361250749424761593348359875959257720631736637754903727950323775910515795904933525561784500436074434678231006834542741792673241456605526996879664223145937008897538467787410770792914232692011738797361775312145599244157083838489319239878019752511171743516161951178552897556703109275582678324758347767079479609048812274844174908912589773024067889834257069041746438670158811602585353338114239479725723509807680586230982089024358913968976304874545398113591657456903828705720877534995088720047281071050295162474486073969931826193442703360677736825505063805624473706294441812223397754978963455480446592933076263647257554547596831134246147830674131815877343097440405448234701520172789356574923766157417522129452490620051886745279531319667143397880106582560453117242577073583053521638094415061409402918931291912406284218600840729417214156762108035998173202428892138694361034426725908726387350273620043526200762228990125452406160773924390070633846470167549609024903489670697432659178156870464959876047167132393673185956524367804748695818174791785519460870759424896588341042035170160571904941003444530476656864359090739011095078835067393935017424876892655190559412993800806601348961782344624818564178361855697147165355474039541800648929840080501794171218233199040482168324241641240815698290575268924493143788061773556383180046955354513181170850385972568809348497346669334527902012720631591711717634414180044388347915210231119884555127505499447882876522708893441904113772875127062538634552790985965114089545295425645458527799033123041339407132047896903917229989052351255242435631173216164946166247182222859190682871405215458979755128306180604914466400468762217811312932439595540390055302744478284102109511223679728673212119423317879108538162621490351238099835501777426754869779893894161355147927592506315736356296040799708381783532403442494482575765561336239369346736897831310930587814056290821448912418447790043270738601994305175255900435938923000329103793695512907938086610358824594790252637250889701984995420009193594695002286412608983200997010128541720563720833241482670069377598721370610656381598536044468727304713764672280244407947555068017593326191275334533120965155787168921790685361163947064618921732749073159215930234668729802468290842212234586354202371145887380969968623641359706476380586275419806171567040161238240844866889317897744719124087142667982006971490244165041260603431615717457237746070416043426036654892647907540353542180189626203845082323427681993885638700866203948764780115418931419553774649911533310231179858419650050385642736920524727301573470444236819221975929915817030892709578203059069172637203758379470276944352931581705257784116587298252897763350923521230983593894426305255504370528953100277076144118088100298345343407079104066249919086680370298617262351673339581615149340606869676563226840794268866192729917207241329040368635176211929536640331718289830068149829274067901675156861846155088266255414441123773081249172488458513288550332552529056750774854334509773736138031255553171266046696425006608810871007628528479287482770049002240529582930642180294718505984599144368750827689991094687234696085330407452180147940469566320762294682760533453963342681570028403255806441378537221402746201961739804931880984853573677499107993297966027332757992971191615867009016809622237742881836137895113900277872763728281589742043303806189846171349911711884750507784911387842336496678182757324435657662495115686513270694389857504761129976200068781541418042985312229123538597476428948126835032989301407528029685456987590849054137433637513478998426640946693013077201101907837032830898010827861631029917458979399318516636361751594718863278890013664186054654525327358079872179178798857827826837365798642285307589352863890317414467828548318528916058362277737447596187102146055759287049449768801745555090196682226221828706439850924772883734711835734266286376308854170792327386570188758033974542079882486534109042984938768402784296367959008853695238229322214238850832124275990389108370417830584215923777195922697937019944215892795724861469951636012457413073285739986083830436986368142683068053521238348461227943193850093131864026912828668584408094016522723806755547977121714192680789025689956981428289251039819977137785279543672499017471846981340752212050669199242288549477933999275149745377215826147816486537290790824366133209461228909660043621181981383808859073252011606458795205024671887763608327240275392740287764447913287280270520937834599005816307162338766030040406290190735435725723723003199398110652931164636490993417402924854995518133279442706173983758541971623822766013198250119368284332987829102330343534107153105426937624460883923272853839002458511514255941115297361650121416476728838846932335429140334458415118095855211622890107334428767853746226458944503643309311612683180757238522305798002364693135388878443890451107299663310845707330978764230624713227379335564045759277254284594697574353495258664939228321150243775435966761889954040626284450222602329089623417800544319563626412877920817237626368057864229979579125266494648789770786319179566359552217860873526322820480612020639836032849615529836257790191219577383389474873751804281375384362489363428404102984918606095756052007518611880389850459353899595208644456108023464205191475915071075657907907716642899037504109108973577306680678294482115165206188919633798089802260823908316792624933290218444007556036640479859667511780613709005972040684959739618899702861021055166657049142297626824768047646122018048223384004663884932315474140363251049060706835666886844167119496661476176710442921980949936181982212795802262311025889597522935063585697109367060846387719889404797572043057282791817448076512981169809686831068060016427465868163645821495542891979718540885173826886807495058757164122674624221040753176600151538797707221189845748466333382933047788875889903318511136420366439631995022674086836747378174557046276671969132383881096558147886370704439224124894048164307320861071727187884904715709750030995990430893660249176217205088435944387376795107566856870071792028146830941065764022734486676682507477162123629296101404988035907345699650810738783791416566573608323359343928072081715897842061166051166173627795565338174713382284571699344878667574929029839758016304142161255104519301588433503982329231233646160717181208536327305851813983149437507303936486319022444281632206856726856567680683403419508852935560887885867378930443553683019272780345154775811009961946008268287117960101437809805241377814138928476812882086215600250958867416523570633680029250002497377626003093628096754877383164587778254358545284518086815260437122161010786057410752543662629453125964496761717467143170278658940035455489643320176096953831828433594586935074263572811560093727905251983568006494229367639481395992637839201576357054423150218865068229013263556932814540730427652280810399120059802684764250311547726303852225758704138796868862419176382042929379975175096281238709017378497068543960934285428224990386041820577743949279516979009795102310757450592674854918794220297496557196173515166582829653043090220951079216986060863630242272709310234575149370408029599334975547658761915687161923101010744574289395876332469036646792647147534233374476349137244205274661588264876393138102090695860672569124245937566483194637947823142378922661482610472811682957274286112582195884453644544754213562639731153582234976171772065911199381508718419242488612663811980728002558817686950981374804755763740479036435079723806138224758681946649383542598292932693759438987461075578675711769527785093599817070682580300087129686663295551761336149760240197501465315946047694208520593899082536256749200419557485645975926285154110570911426893145503936815498019538014474138904793017340829877132757651823089488323209932460078499740900780561648853707244679317159881610923375536459389871303305519425783371245486698502101010749087515053322710131399360924695607393194701830144718528505684626324192865599342796253380070418235303504370446527094930390591099625989560878025466237173980046674909120042310210705159906064744193552567812475350767408501980401589213346981377501085946645751054693330815639704962964359614935149088370374248427827385570069551152573060882672304567124933095011182868443224203640499392822153641518968297238319278291061019733608928564987065441112579210787506899609215874388972124298519331457101054558951098061261332938086555600698582088799213642239886059181114358302173349766613104397942511077832206735363948067278944620828937620628081388444241705679926671845064609990229940294719237711810172032829424459947092631698417435624659933328463200172085923290629642402004802598798221058960166599686248894235469168888933893353514174564299897557737984582597141109870054545251446241877979583626166707164737493979769263325938132592823947498781983104903483955184158632022492327239937546221265141108295906349547411777371580766929236719114944861088012877077116558426790044645477844323343853161163968028828388479182759017545966109721586052005939340305863621340404422119826040392372999396659332439312473635542269894404952719846287331314521180802466070764856129030873203210738973679713735606173154318115466036727750021407038440992026543664329506025740823227138653126686476578762922139169605493015994718712156780049277341334776591727334114892997165710406618325479970678977393655443187040882150435820466851688569910756321862905580388196503235219344833506989123138951747333497650957386110450174279656022382593682151106431154161374177745266915317439762311142793098019429952159511336567955569651293709620990339513708188093101019573936764508895367965936901202196732015727636150387002020028442538603458740070416241998369293939220215147139555109237514097857972788434480263861630061997393853517571262103567300277400103678335359332039698272327981762995956347764361506227407948648791771881138875761340731343781428930664642799467664174639075264017927832354618977110140210169624033574086160580009835872655030407947336442967461277050980553522930500426212288395165869638245381677349209935898037130915608472334989171177201221817496586605440947544936941401380183748774197888550514419259860230328510990886961788647602208809701371084999174611800921581444144042808476251300565039538642809649732368261699624489292292475723025615371132895309497515014926413461666078735970678143139808965192614141003335469502902603006411519500474405599544382484843275820524774329525889752421817066811359732721489071704919632873363750686102026409034868641327132620402985372478512250889114537925924290728130099373338187615064071931736262051130756183153162961534110433394096646227101450873203104055461952485145756140055134644093024675071948446818775034545308382858699262617862673925951354691022041828184906341981502731499733474409170655939277942999066844802424452256745596902829341270921438915684058585210762077986843620183235362287796610849247987808098704701823612765946222848107029319018218674441373022899344387413919564296228461573454948966081506851093578776739501278332754245609305113456702997170511806417711570300472379244118988087504033662387922942120201574010812777434687473403878010307994419839165723064447231679357439655239882161676982147552180102091481537878228212371969761667525429304429241856376802488390927757922596044226371081624114737585452512695269629582222397748740396567471118630933541807376286384265881501931921777864423247174935765723489354927864152748956100829262064476869701605382768209117901474518719054024000325017985702565954057392095549670309144309823242093209604580120864313867926309978823664847486607811135185335484702896988287992045800334033138825751435127570191839557173129539605447082784748825247461352123320527930607289695051547948984944464061197904390436453268908942283979043119773384036617152460315441953429968735456142224435615499980391201447665068554518431734852108236680471142661505464354272010940111017346205265258932076031979621104062242106398398216846466360073390895242060881774213086525726975185471452080514164369229555541087060226470482058228513438793449006902257082150531024166343057487263707963533079122439195588442443109091364905564479331898736365776549991374959759005730699463481687713035171756803324750048204086871213686909384566647094451433594935707758260928515938012381334944885704256823190078285105086187233366299418258210461436412544664573504469339940809187113637284079338602334562607491260001273390954658825436048159655507136482164707975454529261753405804065494599228504933831124410737786133977472072496223594174749882258555653248388966861885242535907195672473182318657081457915679014932684791745621323797564543820855118269899029524554355433846741940806138659604351761460861280909333420774227849498587764967246814346416285112736311673678021732761049230056070253212586073637549593631585195977562835324008258214822335451010164849341001686620332969409639560013361132105920864253539724599290704383657465882570313547443543193945492333345247122415016229237357886069803080023868879576230328907718772576597422933682502935992851967779668948267575897561354216093423172208245185330388166632713234265487455930878065523853041316134617282404727952500170250060133284298526278041421741053768367299062547122175788953261949497305070685004215935536081445618164492041119533774331484656429510423305782018028456070954708995105640728178604754263450669053617753678772386666561367557188278581712316550771931465600765532876086638841697005126622699190934903836835963535546183511847448096751201103545454403594171928589259143497527335377595225923741226106452056899937982815732713606608415383822774839399986428757816755529853954434145513916698101369101819631116395021926472906569778450787806196367493139778288291485387831775621941237667029918813995400018292212982771898309595979532573400425052707771123930347431493094083219977566901650203992858994943461627803110411260195583561212405054039843378142568044854880835208337563361258048398134254071553580541900453829286760367886847596931950757985064321562248457547175589233471577193333570215813205109233707553286701890496671716420858712105042847175974671048081449028536558102130913381715215767417102626228102697509734935237377547046167655718896808545775381972908954504873236508661607523243994291302221650799095319846304456970647730526830768081850925315215334840052028600699425176858898708229401132292588434444440201693553636184015656555011097625592640872854384563790105000688821896989864762677622180885079786049902475466593320585282587314364345556990493573949071214343235367253378799967011192711925357777608082051939333385778847396691965476779457472738021194409652906339476378272469298858550451068055248295442392244748213854314623252560168325196075624054282184170337192514866468484022899824191757471999925929823188274867745643123142570601058511520760300231693628281576647430289964125902899910162800395564888449665472891258520103931696558460752455459288434874609724503103191667025069550386623822247755463280524622310751504900038934139846941498335461916039868088168726578270873014794232139436917822266469202558538729453340787409434790737512392184616351490276146141102466936874034630774225933792027793714755300761813304685808489571628986834800935269795052020091698469501582306469141809500993222794849825223929470426994398681439209473762300198134125968025612251504713791515390237007213687768947019405266722827765452673733883448080771238642475419009204478289591962807325205442672520362318039543714572208880805217067213765099841856853373557809059751006699939837312672653813503251073607915323015993791931740668321776493328384849132072832462746921171263131214497607669224956661452285224720293050702064412479628884532596319751319087048234057552788186804590747653028153168439065280892388919939292843492127898025518945068647106363033486874882957425208621755608481614650563686771254636231607930102161789450682069368092395171381765382890505804000867650031107694879884709039014155067985993410481135416000655994255480144870055754327559305111808056988282714436390531145577875762268456527159678410009717264859200951326922493789336217619912953504667647473400033573668445927430689096462174490513909509111748482310230515066074636217136541718100097169499977645255997484112910858270559270566776395985427040675225244894777885197858181435203116828088419656356074769702245945322266711125241720756458593961733780131458690374017309456134411432860508762843750910892582534226820871005522792006478053546681001487151670853675245558023586842932874524969070953324738468763518176594853846520612598230767418539763469352334041489738921321165376775316881179106046580964341759719558776632909119238939981931024954511416991641379596338826263375782601942948551280111395751317963980223959901696642217706388805379711394912064535390811093410340513891216354196586045671992585275054417426692429055711085992485400988125680609694287169026455823648189405739079242972355788770198406926208587265980729886141813327816206116214468337630614748175254816968581694230237782738915005175845668518708817695477867363268098862545050479643736061837911566958901065068617259249583297763808986814921181604634307545140979954488423874327380575132495526458312591623689759313457903404609140313711413706989241028718473046626122289192524091414673161284491826960120890433922458874459963336305424208934343234157298881292614154045745956618799634405323839815318325062858423812653052303954596210522218728443093565657444125029598301900998691208210295507186749558441185111782089916055366409231016524562108758194101413442516406399078177442911158197630352114301992884647216018051093320029091959505650594175312333078902563915105796575025682946902485425284261455797697993242069206066322473437055276105134854217160900204068181610988232504510032931145994155609721006099866210176571843165133990831330010013862319028112981562639785477990523149592152146082821503352343915352656951754474710227652952038336788114509603440653054900565957525194949671857344993004267758485456625937800940947134762513007748942412299668357495992816573429497540006687630322902378813412821365315942460889973754311873227540874446815158682580722443536378600711976535778070067535254649709664022362236389162133195380624455126530645204219319649699709444672551643818845496590601210970957561549127091913897961946471210900721181253790321670098239341888785320734449082675641890231102761154605639920263922788733951090732299367705060342889175132106380329269358869255642485442517770647729863261507449362208607094675875648271743412533512699630669753092752427799706591293882018452809370773332178927321236396488364107006939954573960608570621046429443929567365311304137429605661944622989737820996366368409834895903112461931849077271351520872345502545363452138647370451224846662920021290860060335372897998301839373750446835976889247131013660048129992551510695697965872287422893640818384933972500837371156114802781091288574368723496358368472893163567704014670388123458598226365958601929104594971810589215479477658973311092819149354961133938484769087222593724592938962058847099216980043667085491304234499458106015354675458607861777736628118906031825231120641651111974805107427809796569866998184941738439405999783031721421295900171375459829988431767668913150767555475109467083766529292253994722959681813916603661185287210019558881520511553109531188615928425580190109633760973054758099819060189139387692091215712833766176564510191565991437867593758775485300303551263835617337751721112324378581164188778854136188894262768025461197857206962235743535834436123156221136024357559300624767353090552093243949600579512640803440920104931417201945597415853010301234074214482885890160229688128635586988014560188898644287741671794071391549205491111070390188488213036875327883155137450606355513154030185282341131141203918625510741076546921066857271866346311077223352013935443960303530008187651722943626396064434239129437471609352031758363146502956759568974693377999961992906414316889530917792112563996584527016066159327807978485158313557975781125227649481518210446102595337066335229877257559182579971342968755924961690343089375783712804749803071745684382354218453324573837457643119178038587272235932941558249481001265687925279672058222464159034915769861371650504790492806149294430644465736166588120732541276037358821757329414643079745757573422004519362011501786238562801982342854152214387987142022388916139639276031108717881631325502915349339109126633112316228850542931398554118695286023513525736544045495687362329791084707678731162360006172840789521808160501189645704232729538548368996519084789734322544016549509633278236476790802627765171449323499407178021367057945641718735679110099768751016481399205878573447880732820063771454495068600142630577211382284980836188040992814237259689185591555251121526095378286664603762127294802881508386011519903815518967452402223400125316166532158514672762733095837634815211950413127491951543133878597502854180025847792387479248851250685117243052886992339472864025942952411794670293773940252738515270173594422029293401750853197578849935262626156656958802500227544292775088526652360883041847342298141141679625127505015104531524813457217750401999951416758462030880040319081415205902463164917826977078132081939832655130233659548757395546623187564824016534529746389979099779763130453311862371831629698193212595205718202005661881484750946983258053327778113860735838003269152217239616346719759302038191767559288277059114587892189043236560696258592201748677307488607022687865499935550344563547747112622402069267913732360200813082820271239769691048921298543351646659444375455201361559150730504437480459086403341397077143244883613879226028923955464644803308756417013138510767830754502388954124430822040115205335260632670762581148985131657177707940262285179883440682615032843484823463776168310626960433302733537407220264590967882853734449201904594951765571086051614521706259640777029329684774601234367427700565018251380483882908856914639528144195443912429254313011339175045549679069479142916380390627292975268026201546960716800627066026651590617018310992378321275764109859962053066683847735691187061059897681538069316651803689232990602099524365810844380387682928542508410224920045056153678855409400007424007377348383596196888694150840250542338369577225378020558755199038071199540096042521856837535926926116130805602482361105959594828551085545869093559817164930268843777134881371266953463355410641966524490137907381772243627545763891201255098020994285495196254377036617323132486403600701813387038042305784057002604961284857309438510601161729344641446783824588492925076618382539613514606964779914130575219464029142389135718827638567485985059423283087012088166949866746310253287404489877405848689100924038482002670809698247152277407681088522655082168607614499338533481957909711787829413300342274322332518175443744183679294434643552673083038345504801111771112157908134273682976387023827975311767234688703838592396928106184893235415281578699308438903503789776925145530399903899660785817876442192213512485874149965319754934507492986940703004237012103227064193019139779862525462791552034717547832722914278048145633534862991161942760155192500268553131805711305542830792804378873478281130550878773672308999992568487800021117248186552826927248527928281624400147395943166768637566200775700259855870986990172874206215909174698422308190323324060174152906551637706297582646519535655444694427876178016598004813197777845804342678277247894068578487159069181094784449638771181765989012176641345204010555252920956230303577235167687317217995110445630045554543198676771915769826334430358564002420190471392130410804846976975176380195812986024261058321938562452540372066755908591025618664793210449513842737815569423872023330039275467913169524169007346058507935085497788640063367992728648537581328151038006241485332212666511476504700303786459094608574919917848637453583170791682441455903437815708235261826890381292740847337081237352844527430821398284162394982001686076600314418504999154723389490546741401696837783037331644479260858906379780034478383574470170177902782434298501866059277911552856233241495799742408456850669644033170239480532185697460352734392905195232518906169892788491649052640300134375511130260609370007971510326290320665324629926637297551824604491094549636161086031371388186619909608891231144684298988756193634498390578311848883268461803054887670249460535706358271424588042507197385604768126534397940956819929639676396675034101665958285819850059850324058030636814792402801904842424362099638424223932978369125974432408854348002400775357641832898561060125996636680345972993531811137170196746064904028707925965434331927538402740729083725165386714686261610856866694248810913492656448384201696982156665497467166891453115464783148055728100764721436687964781382835631270030136637592195771266188171242120521706893624487813247991429803116783775923697910087107304361917060573896419907643090129806834801516988311860585644443635193368927318694911139997933320979073663377965603952940739855480117954746979677448311801904119970833664035969544381958010511833177761992970309048269033616034734395961113936794718520397330754008221336733764452751214898323131512567762424013717609504036242504258469769062654551991380808821212360106156047166627330399895673550757968930715461291775923175326250525259566373261352324837757401587396673664047145784534306773981265379125139217311703660013258758023355016672235842226780100332110236427959325718204719509322220353853767111191770987189272138429852734700678542263595271354248615521136089657671676101675508578229582158100836847651572422464323434178148593941332850298160949258889561492920914860943124169691569932168450802703564894368833976109123194901298653564052465241075717559880092755584027656729716661868091013410608459979113299111557100641775309623433488213419908325769177638742606020197566860254100232819170897507420667063783300977281439827212323277201092017179130516794778062140441459426088362926542921039179495583392124536028041481421876392475196145075913126597288458320778257802626346533906049761993081538018871360599760997874659384542081292943640630890679123240127463960330017338715165565930056358250920998946058351410985981558388155122549047099354155816152807434222423440824906610710777891451974640532968618221973467461695538009964153200671587636964389759956057432126364873478649661443943926428809214413860461453615364669964281626604789976168467867130024279491249684430114296268723791774292149999320175603719929414475278343590887581991574997153259447396918194248958863257753615280516395912004746810085476907052084747940611143214726285335552996201210865657637543605328203115205728044499479915007430968189179539677653083214953403987239684837129675594918409931270850471424677701282834027004224645124251951425916830977123713048049561214829670531655664792909768888714807094861966775099058850619238121044917352094447914691417866810183447223375974032654615756056621807217421766968791442539482270669085232963939007047924340400442005809663017402089414385972541767876635394906313649077964084843436929545589540467629940821442420610253585519143487632054772481728488054049922859231340682039595755868739683172564117763566229966361181871556482577223906359571008054071572854339929602282279707603091499496540987803815777846669286363085737566265847222598433784829832323553529875770839836477763819098840238402055961457319071138642415462884957803070196858680322351836286429377757043001461077922255785132556808192287838108453666098044468686337719112607039824994542349523421179881967505172925618618038873187153651891116323021715706084613634205621973309843153204264129680932832703887691753034841011562477753798863709560797100853482803660983606033487523094035958302581489391743278441243884069338950394175067762523112044346845211077617997391734128571271734750539508150118732585726929052897397559115656516197110994155350599641575705501647762051351631324197987023339226226892442610978608401085629717925834748108238577751467233928826848238437964173158115122331171915081349914668184258623505446258289972869106431417413306018131677866313094760338522250466132903720642887890116227829180072346429649071310905164467994398256922233293661686720372931040715920333252922696662648491699186146002266305627907893041113295059413774331733945605830675707346619443364917897767076151333073118903663899801692975946614899578011755452138063178062915483993997932678137618467775355620732576523212534864981308562226277696158704788044927457457746474107093690086601173899986891071835537651891562727790751438913409795093413505182716373787722894539083144727440926525769690345096871982366691638197659360260700423581128219471228090478119823425967623317459534738367414860706019907995403750353714543765208668076730923445577289455109125582547942145824265590921115831431903316037801225525530973381043115606243208736537069949365313466877424596402505387019058911977716746826942593726422283979968393167014298013224286375310081594364397444002244018503449802664881486514265874091450849710429885554785492047045194531262916466096368355433009816032517152933566451762901458956136360690693075900289056968160314787369537979445865147322582619454529712035970319711736333257064493212267060300639307569936675619813735289264583897070055278557403117260201449295167682443927267340385120593130029292043627433612152291631754619018393959549232150751911883343812540333201363085640393843667522295754732232044349517389692661499865736967006680178103184388789005858852457138140502038822056354074462359454744432067339732203817289922520909642198431198276412976681378602262533478570894127955904234023821476143790121392709048371817442380078201010602359265014648460358170199125309917507875449353081613913584332985115886377390596477766550330545852905090122335195902889596623523595094440345285573133546855949655493960403289712193290152584540006906745171103924018060363846110801900838860763150426432159097344212474355038535305224013752403794257046784858169355399147777227704119564367512897903143015179677237218935346714070490593582548631141395405991675908052765053074208723044949129178686798420135158446346808394596831578346850414351422272909551979166111595870078813265392510729584308666073009323757274407341818449760423682143848406110801674839268104589633598315004789789825216078286418021761979252422480893952248103343064563296149473209114539771196404586552048037327379723268355335662727935452272375768484503823138196260089489168807629660985236384209886460694103821185691288033594669668885048242328900512919758698900299280973476013932042502069849174022134705615783196319333457442487603514866364277039717948658691012887963085386829248107255031399094721911613879463491612555724261176020419647888641869404819353352151712612811178404402558008115400851270299469362632107139522958472579462992977575862782426611446494674013723495521031423804079267241682482596571471956161574066070518813025617564899826486218907982048308320514991635417938550308977865417621366147162972099316092026177940764994164655478795435532027002748409803681060346279675769952446182218100515114449437883729911098748263124757109209893676662131821133461724549897779528578423778899582738147675654204735618171103568754737754757967434206883413072036345507871423978259558500906232909788914374062665650777000063722257410432459081360766615009140743345876709373049241846466105044545171836088148195654855066859483979940911467744894112517269458060655054920424293195180382297314538968517088125665853656350601909928928521178204433820472237701687217664858792550490879607287063525305621755627663408807694940455216103383825666650762908270780569853171946646183073009384779236661139351505722824202918462574586665818752475439405893312087659999181763166600501630566012244541823719741121514684799534979533988397626375143226328573990685816969888955144389035807337743790311343458584060739596609603842484341859142488301887698820417031162701980726277619383669687297767308287277987617476223369332133627951910222367515047126672753116725212514983978089146046399203595174551787519944586036078823738097936900731556685094001864576804818183078461003683441922621230794997018078481618231432500514667487067506225464382182920923679824254151533526178156663918340084417257049368466396612323493365978558453646631295592267670999166388111998305567142076273220293929307193689875286365752255912446886332667484850627581907212789426425335681904312845582646874008402498936923730090772957942105150342188449382584241284576906454843953369017138394855360636182114761469337910192263400789331998556151989321669361537116864212616226472671811139418478408403625613752504950848356017343799301829098094135685387876457682165481709952432622333181019067893393032311258690733948091547159437438937555451812512006387169372155822156068736711388015523014984882072691180133259494809086750063671571780045604910396026707725131341454246546950942404938324769260867700455907933385970868775509408031063161389978844967621127847857775695980305874507197321114425868599903924311927491681687999308630634406152135601655422244541371767566105550162403970109000264966463098174041711362252741710058150355202521724947296809501368564098554302879878085142084997431348743404703837600804631349798167585373127179895780868821626675341855311865903917452660426833440557502746061227536597388367979076477825991710908546173801489364056458710935886151487264066078108585945916829846583128263366998752935189754037841488716515688512819021370928511848741575929337054620264628318904694294036841431328551302474777070015214369679424400463524146722056178530694789917920312895345492530447387260222792253713323842392618652040803815934506467833534080135020307569871809732809542039489391110924802645952685905219936176332593010724580448293022719872144946579371180450509262774908921218172005367551747435757123866621108243215192954031517080994002896376309928558025689563728749036265863486341018908722741122254748863728851923078351142891635733099548963130091107164922590064698443330554813667505746127302726204424976654810156812266373341516080531276545804067571503203724493130702972959960872357933023622545387996931121052847737577054982593036792416554472700445017652077474545535536025980464956584385988375127639115251643060207745930133025771014546719621423215159454848791466864586390440090129818214379867749270994932423831969306645401168171354811884931993243577653770481022843456824087795962812049157369220810198823462916662402510269015200445075547916048341711679865936775033257642371557941182464548682336036858389965516142917404676734349201867937481786794880671745332267192175624874578008452186250146237505869003846079535253379997372963206193771460447043348743770428877735536282664097649716984127007317224674398314168319478588568569012184629557389522860238235475622542643347188632416642896342979362804064673378654865231718500930426176549331929142735017476480416614231078902445962151092652136127741235647089910793406183816098371251668827591870632788133127818175173513861876628634782345902596155308680143554342820461894010775256175131155350991231428873628454264986649899480567004682992546360817171386808280368483156351851534499139908189927503200515747183744400516168862445607086245308408119292898903475170297010173039650921465622162711438203725396216931176459185448591681226924076005369826503860310215171831835179034066275728793936792790489659760850399017386469387483071951550035472882247271015407677540457698925308886189817307452083915715184015920461444654937915127040182068426163624160234758972523301892526886421819798365281096403031602589741315800732834398075895413482360185259221579044656585731940025793674182416926703120723694355962565025373606588687532429826063539580251443122863912492196934737853580643704903794390605706385278300974539680204553075221568306738979681104974432389900090339546819693644432172067685480584421309336206025325484200092275507630295158874005619965783455354166651996072689625287627411420928753427216483968088151238182083267422518837507996464798876323247175145515685196878980500894631658337393153108050579254294781305834370690468155580025718083362291834274686104306757837394192394739051323180078007709180252191522603203919242756642411674425511119227107712601625787997256274227866530472976317315288726266156132030929773011318041508269804071102850380985202838577306841424321131648062059393967778169143184733034670199490116877694471283344560101979392495236583285232738084972237546454984475349724176646627052337330423618704615589309457489071519366002566865697562687172017734303790044023385531640202210516461018124115626117029476309797717512006105401324430303408622990106891141279851556125434425124902980896018878597245383653682433688386199019194744643270226248224405827148914856734272430586296942379954026892441135583008303579987943610455789837346285471082993210974500285485967103553229202376821227938685828003574050713945068690754250925228467358858748691872565151504549894812744395969472264288062957904516753991609646185347397777155203059586633659980192600658389528200968838822885711253628115749178465456541952871875269767760184382343266671559273336112744403847094307657029943176978256645324004802587290745476127568923447887194940364722326492985942697853433978561584852020567232063906856260810371671848641955421604181338595362846210619969701938921271459557907372907773604221671168820721152128403932568458948012317445296333425185148700900866986126362546725179367817360871438101641600732240039476557325151174723276194195864757352494630574496265547703475404386588790970100401453903662890390885759180951422273147407079689046854912759482053347429376186272181586800082456587392638960465054178456910852968203031230216079225815970200379491645994949128166266173562990194522800896658078278995493210477445996261635043706897590198588832845370323319559306673227426682389389733105068918635980292167533548740298367912335114333411104971287580101106234880603452622678162415981072450987866863499612836273891131665518548142050739215867136358688558862439095710221892951850071331572779330433096258950124104539483493256373734581190413647268212682412148301763106199499108801079695547349466876911282458709882007793371025076621783759958795019898420927449682987321294065804953266840949891323420476090601245068324288865053601709791401564682668276324669027356284692019885891431668425786060930257862747446956809663695709097027186639501812338784845506043708583646009580499458432570589265184293196806398274249595615543491618958862356157498760139716557229776689161939415846774282765961576991318741753061480529637018117090750594483810808850783372042255499079197820992713950025624549121616926495012937907402575536255206752768524856855251571007977089835594088460631501704697421365673686081616051596490562914643015014081541984540570895734477203786668869530820820826373657452595636806040806597152874772900333636240332872785335349509233516122836484056163909970715235995281899331260447124233565429501489265182646257961380621472486071638270963220003321721746662952716922212377963884497008511028227429212620170610789425183137559622035382712937262091430700962549034119963808221709091509337889941219789004586564340399439991804224615016964363325325564464454512842055014445033235841857722283497442440685239872826192071690181992553814310358415258747971634966073003912699354420786903816857858829487666241993407119200805944841413973608860433964344079092163658673449372333851273233158540294965870873865999730413806028873412373638900682618769739324147581043830699606102931665244074515505254554808007483421293382821411149790778486779360879211584324176327944683478808463234976470634826903653619083388479899949678530144673551449323260615478275212326096416002535522334153929115732511453888854790212207140424255429622920048368263573171407183211234097706925918434008372475777860440694982307367003831586205229798585542949465541837329916716394420052459299860067063988814794227580458007054157465105907047363750164540715827580670072769283077736483771967259588931184382659941953261909439968576815404747810456299208091062476903652031354671564274840827824237588689763457920794667390078707854755090211684913326238329558053966047065563129354896263900786266688773158568081658538399444861876309802320840323358188832569390088540097312364424344633364810682286874721453857612042037958065988822635489628450085221875893078280065433663772919969653296031323059178775857012392337418315356504923578425176959153827304892830680732670809075165596793766821518319699445079561952946618075207425409648073298423639244395856221347812366790288010184333094337507391117750337215909788385246226338747716389563429515017293034727029011859159090978404824526588594305041447333683261697698565403549556100155558785946153915876303835287240049532037185580478291079463686445624259490626651892312109552842529272727796044007532118125754809797484996256539437335588278007255796135963098808150652770870260119153867997008442278666843874430564323274929357272480767097332326930422494981402615406220290179576750508537330005469062181264942520823266185965556501344768322404220856499989357128055751019897857023697397458592170010760062115960983738810305513082538058132829619265132734480107982248916871136032585431866915287820033993956642854974869373690419978978424246432946953567665834770071119310256086876839585285808152586165790273170006703239354839407789863733504840673326407808432018381623680725578746971445493884323169607581945710279657144887180563544388572722178599866869395725339259042827893700099968707372463830802128467720143543389492608334781066392422529347553380448761340163976523461816498782289032825398288952220688503763868600662709590228270817897591997749334228825511870808523629783814310098177917211060220440349347973414092959192356023945363212430212051588930094112835513678990492041354442126264830813425172957002637142849944789220454623953865994018038658260135741526103285585822690500986042566150152804882676616831730001655820395542184417060065450583689173992345121463072742051068463848724969057558299469528690528813045612872319974881961193493978573300863821117973796889876945240545758885895478685026178849018074723070651335730659411704922394991417525564149842063180859662758275410695802605939253279116111928480779881673331652523812653310727488097904247844064381228850074030862200570835760366937458148528409708293369769963388627989693426258102306020262459288491729035673771840631413216305309102557105946131101427029973321556142247724838553949706691030213552937536708818047244663077644757827604363411530584238401965547100005718366829927494121831320035238033905642916166595017712567229399428009928837749599434669722268656634767430782175394877321211001941386172826580041902253997916843296414367329125447588203465688192580618623068488795198422983936240346981876570406505610618760298647012489131025326094939631564154403844993194320892495173485301457645577892072678768863080142899380722978876519178616002057782893846373993693532401910709511384112221374092335943668978091027589739489129358688084094670913378722266542123304691550580193820088641635274393838141581596444575572317020353458045508275039967059408893790427225123035417403756413186053829976575700252352788402988252249745568559681647399391420439110262656854046480264978572763987816507238309817792425067706796270075381285339588049916112768068465893881805244545445958846004404034422617835077058448647811370638013455208342922253816582071589177973924756176709029164602744809038257740139735339058367423659173531143569954675026315771586065814755215019114386572169269765761574427745588710265063100040032352145858903137445113217990818716447944217802035875998970679114036905498139381640002987939357442111743370730409244545328868158037289536464138683379328399782933918315886908730714943856187465467344663895267639255786751248478706104353285279537893319109165471640810115060431234536908370703247749870800248032953789340207997973720924493615324207535095475906747719984991980933242338959668493350138632605275000013691536049147751378671978733226594958503153883626816371805811151483799981931423086358230818761743141425680866705000202323491616062884456708792608994520051684952524164187318255059519668048984413545312706872788182160767600760116439844996789639414745252131486349796012521722945611428886832573691938677225713309094104470178560626809266781734422536472989641794031426241998235694334494040123869689399007978362074977640859011232976967110200576394967296736490755659565425738215622980353287615679278985708340264494614669132213788629091988327097248884136393474443271785861957772687460409308663999256017888396764417892895477880226235575190533042289369812422014422561230587630383641788427481913704306237002844986220126359956517377985295158608480807557904836729251664158153228590846736350649085820210145530112112675562909543142375620788252459779832076372046725823461727298015378794771570354140590014032168143313139176372421541454072922036939442117543348663478134745862855608438106574727323776796677285146624845366979848106101004275623288103547387245148872863335729871128672837252599195677704838422533470221489783672928999832668591565177341833590420434844993071261767154330259685531307654191242317572443866363909325655173631499005187960421122767294981437408594383426011019628150112883456834275120811648366507313170925158779134892501109848648022546997968607990943113948880432401148573189084134008999108076249382355981502921095595877684980508029688656466907655104568000511176131600745463602926353212753525674127159880090293439376384445115449403312669554969303697640296806761219504530037561315873617645076114709773772886252535013485036038484733946494500649157320080840110584890762161817870206016282853380546465858879433225503856628824314370259982676316975196586124308067088206071240958997993020826327506256491355908518909030980265864579593922495761681651994753701650418561804688260980086410196912337692549212252577711783528998393374439143957547898668057484210599077669600162761612921787240837572449900850039038570269316719148782216247146667210144327944544314211819891141804141966429805870815541374856984626894229567813438496707775821146448879130849450907112891220630614753564769652702314075823295581270817405603435807641319269090584253135821563015944710103642500697691244369929395087683331393415696188759455775238006726129503469164078609987193415446091590475487562969383747635369451626147295862016045427616640653603441094779907586920913618939646654573281931079930697762265572169310342566652868029142916889476009653922226329878671293580261540755222736589265362927463945035544859033017289659090151201091553038555621538435959179699480699042138697039571569233349916286860297847724325404122003253500932663430407177121734892183205594835654002724210416641744848861142662475187567283679548494730952258427303340561030741827877005282244608700997555814619716847471195368861707454731993891838154238820863053789492262268490008133999611496764887730494200087396751282036748427024108826748308683017179274589228142337474460110358289819427963501484066558810062816334314002257774072701570247701494848292526900954841453963761484716564508805914454928517250702716822606810165126895029579850794580121493084079791744127360298630524486858713749014415863845150574883822388853191298996919891913190846327795277977927722886252024315410133695903256118286502146956458667110281973639154555372803039366054401110409207633230634774470924719345705953151854452000615980918558236765795353264383734268785896042490988219080322437451171620971447779797491957834449795621547067102386720142039342198520122088149316976483747678302727599631921542819261005109453286072127785702460645454532225709417860896957200343161415441017987609077012034947396742316366485814224150711691848374772735583421356780063982075361123059081204643222616114610074069292342210308659944999156792700315775855556826966232288741661572834564528810821034442059403610818243114185106446922637256746964350975617263021794053314789777587178149920657479706733320076848178389665527276755726644795347913899201577157795772225491656527651579849270991135643815891365587656230508120888384051657615045942428237001320482547019137652338659713319491142159362315443233363040627728483124300713647523057490706562486937120750445955641534551382549401980966690971113383474965407607196986644592827962523605291794231512235750870489099333467185811305344052028510631070980937756233950090887835980990170024026459038301383399454053098291565351709930645722969975973555537323519393977810626004087529417387175634796638034437353167663437429969577234764824636863901253434411448587840607081628567767272368828537500612274071826792248436752378256375894843843300687244982435473919399572206432442410020591627849484971853702596836674634402540410596195704124545939331826475316814823541060255676555546497570059784622443206065830170779399359199436797402196645626234555941422770690886685071870526234627217775934033646853521861832164888229529235319183747047945261362439758227253084754201633069528613473624483541187828560331709361275580172036154310734328510047062689388885926772462972846187278131068798814083788661573004572632089687105705462684570515219819132880215861904264019573416297046778113898823429300256440876003765640617212920369241366590919633607385370108433965588756893828712038524304896814647953894658552584541109346125629203249396884506802395895272502265777384917763388446145666915166182182408699182797457583468836581004933059863578857678709961468225298756937474701055281568569757655829148592546948399731743011246030533728477754750871936854436273453160409832678244866199876692787500245410760580697902792864411299276951288711930312094034606272846368305129989560039368861081510727058986220984594957481489672125349047423373868213481691632313397504154620316361884959318880310480355748420913693257531022965719053802752286005094547219751986694792214742635120777175765863228064625265162982983483711259221842113963845855967720027320009741203516091687513302401821625618019561604801099597070999327598017044210368670282462729044254874619670838327552812476270299930168734703810003044029026384809207808785062113749418409403076383303406447862781481097833707277017034951259075072890964590566066569861074405236688461861131303188267620133833467545719640250693394819740131538217166594071349182594396121351889988196493143816253759799377648653490025851601569929781534028034802048694207650455062437878369259877043747527461391490243071459272603823067303637140815241503129582493135264591373052278080994138094157026370795435947693063303085942392277966687793378812739277373239667835346559060323151234374575851214427939033400432901233923051670566948968020212243818401890179228465600709484902882824740409697457043839913681184809666856691054464494222971535131140427283897176314693095107699535965658787410981821185458883365114870173608762343701698990839173834380992890037239645337322933092854339094336693259825977182961594534087911916516140927097391476280026145063842881298193347771007364261503596493790213592502640031933011465841413831633981456839574322353315163491880039440032158484134287382435432158951549314436247317929059883593608239286662458482368181078982725592729551326215457062153702001754254720980148081551405914516558206009119948398022474155856582607697491157945248572537859126575583540171359554101050634377868473548549083535847815190357223809760764346443094488998773752180044363814816064379949040164874371145302991284918891348961031783598774598875287377700581488555074974179558643128895166031144759298465673290455527336571039703144605982098474103172100110827361559623882907218787653070374662357443345782274808824170279522836718617038648832176299681812297406890591637173914581487283873585451630957008864343749048074022877046128401929416014643698459388839583159992828697010464800007682027570902074409796858995891042946806113881806274013353183489956036131453027557492243143674887814359246942740847905898009590876881579379518059283276652976553810008892608122091275727689895407779243639098645929644135746489867705639601962101249838030064496612567359006585442615822849422868485292423512132541095990744776480304110257239545431204178908184173622567816224466292486093435951361716165914249526854802559113838425106003070326111750012394352445382564360495008560757885404457876974307051258582562604291615444321723256887876250595749326839557861621654779611079330871940350532520415958559789919873551227012131311658286949637762731532640243867836549673643417379205991663368695783813450560969611859080239696521670699747724707012703739138593999295535192704024844268441423686508786618445496571767006317679729194696038666122102448157419582255569185941991282219903831262495359116841534971658040002808222659117543006496365364161676751381911053701575347531921598879763640856185223375801077992707920430844043873379041938488865400672088054412229252807859664274274028295069571966100498709970336451709549935864872836577551925186325306348713148882663929802429511869320040657112740842198287289582846409916892423710370944566617172305104960185894560353284856074745102414504422142298850057498838187782922203899625433659713528251072029364208178904108896211557587331871058600870457651825997268046438158455136078338857562436207020865807558385952598837333760212089197374681194788162043971369315602775551415342488771489506872112676340059018329270171927341606322215395960533866853158749205399446812338197662032642155176499237125427470384650115771643870793373767466074095514131509862932992896231852970830639378096815020190999536080935291834650789635402228652228163930311920744141483036908387723927848066111322388074925529985124913287639954550973891998749902066519997423378993216710797587495553250591571466254226541963742267946096913477390463960554103189380287450552319025128784049616427879226500293882285067191732967006251448089612444451358999174630259945874664204619531853588522966656428437452832008496887846788361493635815238847258301720269123413710197155087150293044007493763660783275694656924344487447271254157214371525827456492081034324041215948573078768445081059676809187961981968266268674465996985636085049999032753680798332388712389511913078158687372913764100451459072158790489254236766055693458502344963232772368470854609324583095496429858786287489798995794872060305700174160045954183836617100830202634003312090353377012661107800671261710371296498149889259728826472452277887107673158866844066245186173798641671169708848717593140286238749325528351358896157775632866729643250942127724355248240477562418695321863250544766409494369529706087430506804042382305927644232059147736144617279626996429143637560274701039070174547452771573983506742779574027903819134645303177771107140611309762328379889707366289998291723545725851245280380986191242183004016195264448543750106224536629252229713658520389461321330150014173602080321890604234757927197247369047166077204508736903344533723850336201379113930548144598756290848171846999608740426323024181695585075727244276377532531291385709452808860535015858857076237151117204079368485055913800133584658289654016737006066052517756679805531600133975491643928519985790556642383517509658850501260468671335713367837786433955218748429942863398689649041331932154395130849306683736723900095795219231147864731422576485029032772782571629700177098674396524146914363368313972081562098691351229447437406211573534092599645190438469396943828456372201939165975739552836889721787441847077934919262979331932177957743755324319849836348254212779826120991412630439034384965480396286861288824350380220027281278483032014075777183463476096483713573849618166776514836387319575023263767260399459439107246034450213671156256499560315368815433729065553722209991149040162637482363121935817514743171852031120775126377694610953880694089805277781258134901523521731178368131000850156900673276493460965878043384448732440118095182167837821061348832105467455777037827382225218850309201102926521854527745830114236349202853384775539456871880478057629834381935434990762959615604229646707014712929825957828471991630023043680372190721240045485537974526245325320713674224584730560924727992853105227742277513031359914318193205458026542688192487658111213917212799918755901379619781700991601988856926744100944106678418248689010511408453788247452945277312434390000517641013371766715159357135999884892812162164299353065805300390107992433715857146053198833566156098121768941243969813922432421660349395875597993500427692199303696513145464471452413321209713303151000583602915520117748432310578830498216608284390833853778809385080999657658459092915859259929240482540694497956795966542699167103142480878612597716748818466865906018044110302571443285383130925206354993473067903798737837368944891947241449407587925568296099747683337590548400229719924858430276459235944092097710921032380629081186363780329404138064201333075132497320727075777283536671325030251720135450640994750664714251670659056629517476599612039863920847846796550932075006739691419583670231278740509618461051423660863036196977476327381251572741271229000816506746379069938179442574009680253851099384894107426309519698488629788338362213899182517950639288540571271641725459057596238127403260858720516846484094239577365265602331652977496770896542291931378142681638665123405301515307267091394130829853459223372983402262886613393995616928804863379237212470240371913498421420643552203069324950498554089282674548423974844301740330328851303720646726482403459887153180668645491399812594124883731282405868506652631280793318306412110564136710245709868187255373677924173793553192467460083934740556790510574496438214003892644375598926685926498640554149509827332623510110416512334185860311127243468055806434456901146569534412203045068412751309240026735932642718553721154273292944341358940940170998174955319714445050776795293574817398312622260056702170490345501009059587737365396338667185854123019460701062935058208396970687690420566016469504345230614864095081257902234912965451423926767668084456443116832324029054930910286302643659699281204229498231008026332226654558623955707147403765361322568248880063662056368919758779425437136050314246598284719149016902841158329194496882553154166659951686275184883562782591657746675692709460969779967572058102008669214867843579631220363527282073587032421532798078389543279936009697971623347015337779656490651390453063864045208189939234010978740874026754457721090622930908297524709379334244268868438294448304793578231856661664781669167487428448383882318964782338223435187143007813333755879376031314544964892263543637944480106990738776085133258703325054099530303290561390283016682756962122764775328427146589680415778854940183253771727081596773612917338272655448881621919950635685021183837061094279450773354495520324968802259962492338987271427523641989834534152142209594923388093612594390944752651110192272111453244157210451782606595277599361908299916428211402296896294543133135766371469502567258825173578672122740081756536903337696056325404593735195905000488120106695082320444136580089645509656058479827551888951851803787687462239437654695984910703742211387184324869914397447766841795745928968739453983907958912234953008601411370583816359012197351809046247208540997994015314524523737508757693696508953753518962029586435390864275904458802051387205949802814906758403270172899990353476035465904763920482334777769816069577304141890193452107851148683248552766397646625293102468942210006746570490391591484508149189526608088888737204453034779429468650215603450507864282103074992021185343134331901295797079300043260858358598368168326275148817567569298593752399347037276855478743148187297909022788072318124239067705208187529123831631328999978696662973997818776677219641919948718775641728127405774412624338348817313199119069370245105812521110705408090842668580556575575054221942121198118634679106401493576813783138686165710567156892326892068451049347816684958200252466788971639402080647626825869475959350977675158499999575437335361817640592082372999636030122377300300365756803148584943170439228855911023100430095175015709912913398759620570288348851852122018469977142510387267135527612788035629616100252799104248975660992875593590308984322018394895484268045236197199840985510851709563603935860835090427715271426013110879621474717344192414630854003034649612134254044455527319112459058185034033116532643643009936368371332815431551844690271497467351594324711361982249148022234461019887196665274240239329977395870815370500375992330382370847453390584608877424028457332492142748953873689631401999571026998293521753293453800454345410759130399716661832557378214543364055277470574260786833357423986772931509447878765072320724281744160783527972186589269088202467664231146905077997293941587024439304572108827744797806165742049859881534698520328699259667024344534986705671975767084418135274311787510468345520291338749097347833077813985221937787021420397719516829458428635834184668843701557053001804882908459943615661866892880716300760218659620685949848123943007817975739218341566225161176674737269308455520314661344466188247429495051876372056987178433345909544311307698540155602960117796462869243437989427167111794211853254369481771701322810167955046011188447326479485444234304330107340510982950263946835802857007796039564321097943049953812982495654659305805052834072841556987987510626992742232178020021091397376012494963370339043704617887261681041875854463403253249626786944312967952605749221975980205500196753915183886451701846027105933603707768395500449210288801512936255545284693940447195018795861051183210874225097749196868948714902319462041469710439094903769950046699107773032254221148149990079553652669830991695006637106050448804051578927093808289615236945263896445243746048913790257319978282653843114844481181657203897963173110126897282439694849906355104638699397065162002289996995729215343823273425915503080268290936960203874893607553438984469907804977140409016856794594344684666894977682373451911168627375861840685644673454578102673712739935698290685304904628775232436328580353006668218564358722883750656655874242323461965929867907492795972475907059467876061729818491322226111353809796220646126241750309512282646926802926146358736224044224054299814276682188597985246043496065733787993936831172904596433168852246438969405000947914253879713283269911183287647740598267223473036416383727310442112291087920068159908283458436945222506402189364257310001234852254842269770036673413188558138412682069157866165287593517386446220562648579434542590732446044873878795656414207205567885322734285195444190992322257671354872088883834736198756487007272561330073985280994445869622495767570578835111333722219272738584284001098882951557914434542783923644071871002130769473665433623913439685956852533330939186904147159034159668044865056698892437443402473306790209582424615798947904964603402043394522355627429111063490901223398100957372439023205498787893806831847144775707614967021379228780892572170271114638505243210174727819831099107966179575167124601876554693347282309738251947734595574967972841874585511917361037568891909413688056290762297510478375726507470759023222027195486679366206915640455617457415982372888535836973097066763171826044579033283494684879766978265782535998805442441112164434525552047453207124383933312828985261020961516914270678939638997427302312744132135131784490281380699214717237184487879494381144880993596488439768397452178136997405004691262358809675599049455164996055481553584768568216379486933659662889960946505664641786396304717614801740153251773344732077330081384978836087913278722649168888646196059736074288647239856742489652634417490200596566999010976900066900627693460484498134971627087151882056618052236449608820012617986610249621618997031271584990507700333162867075104155225256694401659658863509188508294687822170939171198663719912197701717556980126783474755150375136379442875136181094020686528555810742221089735675832424208459459029688446957981480470048997944582539921928499278173860117853623597749401928842283437714537907703251775674453601978478374126863600282001674254247681492232289911933173721286675433698516308129654999197457837788176052694284973986632140706850832551845301438358281147213275911971639710764302413257153675865899761245246166305746645501326756470225695346024253234579889982302998878341902177846564388489272232372738397528062833373679443813869349593003142858425780029152209254394210167786182429562984676454859713739449997342258146049017191520470037974357670903574535572626962866870321821812785986175810804680864281961441700842814861178957850661720176982692087562657237808951819812627269018159576647135977416639680252656293146264687637842347516415781350690701973629035578312746530525046504488435935571844344607377206948453881328114577702045583441682163834790602494752440927402478604262128674458398484295666634854135108829741030857378840080605339837915933986881593710009941872210649819427738954876254616012501854226611599380065487406176946703425639218905988363958468118342586537257195145395117347371352715830844596660446438359972831106644050156601523102243058841864943602209621909238928500217074001038071538533471512276581421882038745377078788143390475373867054525908968332158389918574566136524113703885564087731048930340038462042718503806937650295171434873337209013602438930804491175390025256165356718097921770571029404422352070551315411674287748367324477737001034158927663995940098982610695827737777001361356125118731026602993004349952339361775150197753500325842949899902921522886164363437265887455090812994367540920529663911227264712630563246850656501361858198239394562087297457010621401292016446082680506437020099109113471818504886924484159897790934831627665045469321001451182357601767037130426681185568234668821119456615153753648945347448753210456378880896709939626669215347597682151832978196530919830815502625008708855997874879121297428848365798917929957181403178303941096509712632150010888120723564333039371526974870746234687643161281005978622187254931148700584464209160705143336577104221411602168327383934355167424972819283486130073188014187571347768374698749027378525009858780050207476031628587908499126461222457485761483902753977305564988706609600381107590608287340140796987449784075278110787292767461772508684457627843054876466943955800586977230784020200909912766909857081678006858606196497881617461495865353674762242548296225093123505168577815877462229195949845279199180165541738615323231807362854441387936386098711026035309835097077863277020745773797407246477136120926851261826062714857192830189762095383042537929378907774046318484097924171418720735103947527059668864199195792371057072955159638757466699955001476552705085732896623496361071247049153424698131276067719514554447455660357873748920519004467908984475496057881124932793300427668248870654323648442960706273418910146604417039675552877081198234350377628827410600033188670805380893067485619055611472444380847802400176717120371350905155554438292652326422417971123128823509234844908352980685012252849412098490216594250052597014209964756754154824181548228222086111742274319693636602218105789133827202658014176695274086301755979562650554872593506666192912684691091519565006626605038543268112093646899249488177910111359698991293875764101472082013461408472418778845429032545620023097246194629967258575210745440599963954791713150033188338445246271358656914958449787739250655512931150578146364310125016492700494158074090885124268822836632144707575892319721241586584758325642333523525220656226544084693804074120262353426093911542909782126750858670627712480965791206124899414113670057647740311297640892272224905419261767889638354217718454312318345321674929332617996419262693095836985170943814455533248755277980152445206726691619447293023850434023890333446151191620568365003189113743437125451297229588621302013175681419253210056625826459458192392540633031125236266526396121653989102729829824940442070290879328086603872470643187923859479351654262388917857554798974439826102969197811408715706814919445468062753301820119292331843029973269786338487302725175026034102193310984919020151477925977264918289702422485701260815015408481792823567569496628486781589185881256694091157541143838982625254617632140388900225277186538662577367013593246716521074836680631196149124043177035943028560339199382738564855247489773864815743433662668756430715713740728994592704963224212482536361917918424491307275386792889512667116230044788185433265273944605331412823945213110795549351759849075452786986432381986062252434858607408756923606022635366911579627237690050437462332842650458920007360868414425496601176617245245850312924439967250890927542406796213378667561982730575161890931219993756776949444706864015499977040367389566983846773929465011510619839133962732326758584385293028573051685411936348388316141275816693974468624770581511063170292573092050568939576608916029695710128170701609542661126322000897839990940996986326791940272581374041556737396499357256958681936700865964894200938753946232876582820998274310558362214263769939435412405248967774050150572787402475819643849371731059464948361574911931192047904430840948249313632088951889230253527557450245883885497951208807315737710533001537510473847697338824212743720335734702824556316109832949527885108101766320682913170563494754852853534236903208225877261094604078013214468407071499109752428398436008200390565024802228983600685386733683228076769726011422426644692250853827296996941103713470696189324871934473859181778466045048821085433945685800226351157401370144751270112737424380029020551066700000684674433525250810184614596211707905458699247361445811395238376814215615838852566754617579869932063344206974716853333937139683530145064185002493125322792762588936115184593925531919670190108743513942833749882630608114724782033339431010126656545542032121373410051531587772272793253648369267543110657693566765621971009453062586683790059030308458779469487640910723453395506697831931073676760763474260379608782224501741694678196399129244783163927322938547786797676636902470972937033040736133108841967128354415164286924137619046848786071627320362036769371709589767182601805908248536041978940087666500425694652873843580796943817618797411883328078675980975978108247131203271496615880040035487259151784623950663542692516078325247779324990805503678311409672482933607159785929130992753825112005108779197083411594772569898965678346519942934514421509171056448074679529166772806030294530704593153916023052574182472281345999272289024688463077906189448760447420134423078119631733342943467641861624418914123273461267461836856521331442546990767328451907715069416322622064700485719895545795566663355063154213418246177286011422535885521158286129440084676254883268263345707479695425704501947077468945223405396252258413114856708032042113723347026240854322866098437567000255414090757149388564158928386311051645538239706111198310127411933560614337478943301148166665944974903417579285070365599588406221629885866775574047599236888722183370061358537033712897521733088537800046662381599308656374647080345335563998109214031461812020199162106233611552685215637205757254444567742343529393234190039528641342468070771349092676322423219150653461525086781244430504857008589994080796686630282839264625063380931223616194946036738816203995607665016349880111679225298252288722303742154764778558250946055671318903894284573842389085744254518967573245306966155909810863180872026873909701446255895043307459572587622917091224610942947190850926290877104103432199117510540984816604699490796972395436393827962458190749154806712526568787097081110866139876396001620548817422017194585817684421986303872581689557921148167260243720255830741429840077057795661732022724905705725974280740958718889334241988664835506636439057498631498214449955493639656195282764737892470924728326757137015288823915758098789625333245431208321342134506631168112483178359162289668102036333525385935932130005865849352631750111654307012029892688771202299773943234408895065392971183406930337547014725416626524504716431761180991015675182536922116325151416622441124177131726670162644533073353909388206370484755626274595817058201540709649196105787922915832080582662607659788864742759052158481644348739876961145354753920628233063975866923187072883474069830520596149641021334773263813276844779257222845369847820573830910553375952304276681443405935150652173817161672003443234634956063747887877914953954740363667965723037163375846355894581583231620749718617789468840025666011643316859539243438357092014791847657121456844334367492723974106645094176086775640525819868514997997507039987026671921877278032368880237137265132631146616967332653828824673567065526767307799259681431416645652425744975893328484000116173665406663397021507570621282668665978826625189913513205563217156150893015824750586605771637301597931423131813285450765202308700833452379892041456608805790472234676285947831258539316826538035919879744835039600383441371013378555347869109271814141023368200434695644504922916812040367556483739755570198453156322351891278274784094451508808713769410520163060375807488564107546115493299572715099673893690637013406964934433137894889319981410888020761397360811072270681133569880415462708243523162126213613038080726129808411148704803607889100505500020931686721415311780579618796975137389722381546651069334398712820350521057933241903686383347289315790842659076884047797956158550127955148240638952605491698105002384640643823907094638142230984817965609360390145162593436027224122943399837661021283639771745370377456863605842297154020996769643597958905724512025480985481717850303254814798846860424010609568824537889217615796380868555692588213764639680824986608435435782816853960479292888231662301065125714877945814597957867294769771593775445423867087346799581908443651894639201811815488150661304505166537917738966171684811515035820041681550645879773676625042121736480323349621962716619156979036221361992407118891305448103619703479531383181871756295344552432247481596962070847423538337529754647759450636827262692224126755122638672886799801970014436006769209052572380864402705484183293569489421793971694975456310577476567105516827932867409402517128386956920163682306504758083206566492327021528103770396480920919968070469270436491093933907902555835561164832479098293203927684490064638931756626492449448840595363320281209159523280330079645043523441809159115666749015116603391129158402946363184770509341717998571645487276829108759232810528136761871976606416311351993858767284346018698874462881119367250820514981739366231621566891293627732211795029972712498408297021220517019028858712840702645035601060796883785403418546488322545254429863147580468848263141325803395478687541031583595105774463921645053450656179299924340884275497723149118592263497914985227677328055956501344272502540929836815409030431638637181102346916761032615232059250108983581681925120764449804509343824659292139566990646284139118602212598416212958062884417845454003392022592244069636801961734202873637874239706940357212551896498936734131629355804534748370106573754620536029911514440959181783728201729581877459025163082699845080059155796511041818347479806114915276736465746327396934933116610717369820824779034462432512381134411731825141047197257689390711274313305424170042462968978315176862339693726153719010411426192714382209802346241131484889983957335399710026952129409079974895549302729023401008964941126011935522441235232653469650615570790604051971521824659640940710480388909463823075523826829173238095821312458973033969890092315776225830057297050450214436874650718087168100886150860844865750260943456894089152349080135832151542349707302911379553003045693047078061640066400214350658278521597501544534582127174636131511579546211619496423710584110570385946131824857980393218188447721812144434747119616429564684414417152872457017783284178730284026983530555556811477841504040260353967884681839238277211283954257132007334060410002657699307372302043945274342858495560708923427293953767847889361870351018006603079086134477035665480996958756422299228793395197780037067150239921436031230443104546534728373013627854521292720335506144264301085735782384967729900247537277183418252622889149990938552115632919330120497104882047516458004010730453384121497034260286477151854317562347883484671226135444357210762194425171248762875772665199013877591263725160472185975298140891680829719948068537784644357941520763502805147750127347017009799649094379763206607316572208284782666266311927260955186597535221537778758550037194137194069935416540742811967167848137576842799039215885981943144484535955587766221970359836198800350756442134878690130722509620754334680575885099472603907946238675089451957078014640481941900362763384784855908924649215883293659547871138226218892660650225489288971732438087089100358166295646153522428585554019718598793927134062529709504532252981450412660048166550871266669018699281398356641071900286332513203646521207209745096649363987599740960815163001117811432088663877645736252031273531526583191422183241481614231575034062454289541295724450126343925490983648492377184906438112445559107447653628481596465260261546727266242303467800072880665943045591494170735826534082304905576277791001508223630606935260692771968805830867330570555050644137207184524683657763753635810113157706461535270831139083782055505207513045840598650684550166742400253414404583183960720064823277017056364170762486719752693615514954940911923577977787490294545520984933440143760247058149566185144739147034347293741869727171037374018121150775970077009246168388344802138886465956160798892330371111331986024476926423651083156287230843137395053373069664301545107178076710001930311847101234042016137306829435822868908737172085272693340698913486694774223815535621618200401775926903822826878609426509763729190470550593216276656035093803804814006438943505714833269457496842092377085937877079301251464806873767478837601989116718669402042950376351970759663038158590958177657341332387392118680799804900185135315791802775296088177727622250959974659472520069889268029816464587539443005316083865706722295652710419713696979405847003806004119622808181780469762287155570819049678871924478241096342852292132935329316399848021355497229680502708720617543568203733667041275272803688323936185155764874004258026700448829670299130406508367540056066001130480226558109338275743951131242735476158887000482636333531711654937878520028984098047996555133226033807813034171188257914661173382949547434600397704783052213002314187667217153403585729801988186943716677815047608052103976913621160065147185974233132210068867364009643833262698675122445375458133560424905289815228417183560724445774655823943806054294780584361778740815231994163244460797413935190141689676054313882990196213995711165695409950877427094326773547506131217377546199487893708364420297303928971569000073781181156405566585170162476430762420443363436090435914794236484097112648677407840585947933494492449146296644498691057625944253254853022694840717148470901074394987722587685649927827665141132425796979838597136115388840383919377881300387487893622988006081191402640945366466763203601246593579482733789183249296045218339044067768456259392972923419475802886398624274401768130938238731176012890221348836095966241266662827831744597121440586965653513244564122161780034272452263051540639245543319361080281502906446891053385839624601408835157454971173180919820711565723157536573840367964840551854310469824877217589280096209786550536790282350923056460038609645594524313551254670393839635712650506569705553988334693689847736896395175474938564313861891196096831502318516109193419598470203384528064971846403615816625570085074174813043581488954092651754313736483561321481091572808802395020921776999797368608756253584635864880899905717241948674693563026141892722885590939040638014145545096358967893895212934634051182580999462553646222202172848373735710250481503061198969647654023218321295398622207170200387584762822539993595568427043462976087781070253002389850426303110305427449186347281791628301529906386044111745426739532141723798410622140434474855158667057018193147104672004556935802528377871240890568733806913247061138653537650762852387741079340602184604956998125769799813820655100231818605099149035547918085611590384954010508013832301733686447026260251049200490785380386457261690093850844536902337312472952617338306366704747642639682153076082378012203837101456967734665573782073717485015458893392315571505025071493735270018871551715049589053925942624077118303019881848855926090239409807683378769336968900300468471433401414936795223778858706444302866123606096976018799864833824428885955788223369436038214210011088778922308845708222881335357371832439961684882045978640409674120984158631385696030417681606093520036980175515944599833245120765197669325952908500176364554084321569856129986648043678411020724992572888773840537745065675777922299610946362539711540743257570204376987225816159669531268987343219590128751464171457121987031320574601072379607990577805301344419897555283366376373955813502980906821924896064014970625266744846732744135501835097278259890405578537539533909922190629470935026826671156097405260943980476750891475968707695728227507910101080707036797984544801477026722250708033881958173470111816402628774183376789447916263898383901095085982687902841496162967112118962045533515644476215262514048652429934051530957110055781990349524720326189207900645197396060845947409758739811549376981915586083709411141858518647830905329761665368060847372339791799002220080275949543593142354514406089847984984806458801532211555330143720827431071279141284642639909320903738525316563443170608734435028101197184357331594020674935443292123545187127219799978970987995357342697622875784743419833234488299166965581760079152075185500641464031123761452020586054561170153832461318828357548322003522617401408776172465869170751765609562585119262145293256365903425484950251596813389208642693601523014598172146919772584165953616866119753122702350596743332201060743399102583702383497480925638694475173557355061697049510913556255415775906342057291602833430967558756548272351478569243715877930612496959745171306918980398047115313290946024737216391865329492930696821031315729666971228951012442217812189837841069186198802379949217756113748251250819795255177630921169688802238742424040832400058473207711687810642068285684529522976298075966132174464549940913349949366603264868393327745485635194491502387170225439992709226762756186232998467060659928286641665711299850684379365131972909413834215973929488738203498824513397346596304710391083209684961092726374938714753186753111417363311846695358576027766704797198404844471411830499621218462357022439677458447701264805179023344471452085866418995104142410065039701203595338747145473340228936690374469845998711422104826364148425176567833080210669100150268360559455612560365488299263442779157459746891310390973388876713985863061993618493633375063106161803782189906132407544467551977299157405485570683692222197273348610491310719234162303123967505333822071769310028466899856082204915552096374133770532058026911071701619664450366901722090800489351893276493375420478479576562065003837145544859191317421442847186396045301249882371935075435190874787619519584677471049815612363103995632485618588721888469250499999625583224046177366906542719815372438386699041258479693474750809475126880172126310307540993004213013146508056476277309672323397904382166843016593948905047145727705250467287920083455008517324680303571273291627490352264967832668421308240153500660811182785953283266919942632296860428416775443871914520989893332410780256544882142080841568087263040707170412228355130374011173402882757445453453164762586884572944827394510718452254100118143097925223350362729359307233614468183127023824869606390466641919991400321881298969174836655914486764868677591744034688084670914299675467784896629429486774239288809186068595043496036097673407641401603525261387049269970614123049048416570719670938682095376042072733693726874748856379610339997129511384427376178198235436487238804660297533012913709888968734527644585211273336526122625059929225659492418344210133025440902877437782767290696670261100898057552614208158567012748603798743110991081524422073833735209069300271275129794485416004381941720847640882386218731263292521091394171590238015658591429551165650451934164236494268570736931916815763959824714567716608018403483024397703371599338786535232846224847972052032398925725059519986398740645513508259936610073429076475818400610253827086769653054178979834416330770006895088861149581250541985685918461259548082747467049776209900616690117437689917199624131649036095892212690209796366985141979846608420964258646356467401149741442231135333682671434172297552436768151935036000862406971537110481183147112291344939763067686677927853147028463678597217463495240539677643169160747608696357187045271647831921791406398359889690643892748415466374610589689772089404291893551723776651673386063960144400278902537502441602656486085042767416302669426466627583196457262618917169159038837685921137138949536077345783454270933412164557632338180679110919973026135957260298243853120370645730136286422542312929793043986919235624238281640219807981228475446802260801018209965088094073626456950196484087789373935310372784190627819590576120632132381034597102411496285255406735802829682062981030117498469446404082443442191300231999030581949364344874466703463808275792889028892941035994900151375187125064540548034032213693015028339635837382196766474744489712276555818416463845438985451664645602658570175395193995789846994496045824254790441368621330729885582081815609547232677788410111941909846008184366486970655779463449006529609081610166251437431706286689844953637058380153823560433713244626967272976453379161456688319458681833939977332779040989679256313898063777986961030766410519265896866323815646241436417903907763525683621318222251052150206486409583923644863070173628783512550025875664335375434573898157644116656612164825871186299985624213877263210314778141139542170464387219081064325357357529880807462686156254522837676037232507054021041219527451958553876490565799031056978165127887884626583897051445196460443767446559161730921590150148132436044704249074679138291846184853176854799253205865344304810876556669764357983707846627989026990863686844808877450788331982576560261895892320282130585982014604893918730417062531043569420675665079688560871515825898276325250337839987757424048608855228631974821733191541353542066673725053197847796202072842969784028272312125094544581381171924208684838379812466061565755620479522230628655473092430809182065459725160470234420930108056443600815725340249352980006195676699521446715369897469857430683083117620128363391002137859000298206387623605554884403891871769038003722284966334184482374676269951636764823397788298859123774815577549025915887468918603761531907843453067323432364138798092322150624713702855984262136854924097012887630733552297651504020931862883780539033811956915026218853654729264538475127035288826925762248549681566051624885837400876246455387680337844242610829127153329997782460158627886339909842748490813957875167298336219630074498760087454224550821162084503278019373179082918168279120024391718511877858431238984121490909244725944880969919152481557863515470258429146677025193634059883804273874868944565525366376917835481280013015685785841013516514644357660130530017341489658139496299326032542525466033276299181677994173462527769710465650954110083092381895493628771477164864202312761258891572068661571413832066337428996006289428985619094228954871649980751828306501257547611908517309173390859935576496143564849272989785692175978675893569414677304025223950391990450310988480344377487329429997155131051325315695972183339006362187592921896686525198233035839086668101184992557532512038775034671475826446232267409062804915621825021494862583736466720167123518944366516136470862667256413184667656361527529104939425399982210259208591809056340337062276252427184446779235894722352763356287163136887121941785599467301975791873632898213410412072056452166155205270548524585496345511783405844045802051637418968588466986286309197212714963123260683078089905624827665032646020978742104890971125351803692488078171653914237131476568954181760366105178911275138201077159397901966194594493634024839538492762275735966734769601224720540745236406431878186370962103880803210531175224206240808752790750104857411732061179669744069004453796718689224364083622996052578646931468585647859815615749180347230926809951642328953243226609440446297344112372689793051663077600721582954079603827763374977123881609574401652806420299216460002246563986853010218992193429055238128892669941645834897245906962301882436029669956201089095730669578952762463044621569013097531214586001604628846161387368479252652988340852961731094126095148547893759472924503525860407660118484510818492775671080985484912180131577878043517594081691812151533842121861745455174438975214530347142552964449525815245407102395810303525992097728218073619040985736616795259759222370497562484029413370677009058647862880647052810764180089863803060498927891647411800248699257677080499928904441952240883080016719242918073582146411883550286095879922807724323926820651703728883106546270943539980989921765624095423681635482159173312060988297153903056586484571638948479752404328930749578240031652781434498296647641447735185384992436777220715057547025504301260346734202552008951050526464490882262573449896004931743840148047980992724543354243994795944301496173563242691936098947410542973913162992320528666351711780866667257576810357635612660258855319471297937502629259762438387791815048514906956321864960246718580882569986484157157399671869865358780880707960657175104027452075559391581869941983467390172367200772165883122386840784545299619187919636908027367167361210292388565750206559839168999112738618735163049723817569377806690212067492745538276607263221694479453053098089157034375007843392839790472278063232423219001953041171602797494367390993900908831842571888410398686322200894728318419268402636351753546463111822997894827726438483853600667703665626158583024116824320192961870141291660636302525014479077648755557551611692534547327128884325979458312474696350525746953657123705826248439318158645627558088881388931834752743583209878654638209275645984831569656343100767107263256403630372746466282100513945797678351560923073568906903523631661622706360379597917321459848609159181297252108863302683566841996525760171220465152142965538572786651079043727396960481972837667696422964289938059814901199960281158248965540113533361765872177236883868725592911089583744826096843113396804196443492489730887724166037432164880180787661591743685751319618322384496926675414609194052808592352178123703686024858845539203126340233830937308576711896938022224150263671756461277233797401378464560823919632681891158696063284347378976356870950391840431672208661698976559113735983268599548195033274882220907538097848533617266362570866894761596798874599610777897237939860944742712083655200332630401934151531680600070876089116987101391968048414188613986081017861689466985101721878772528359301416616790402444608484583831359128058625706657517714784704168831040521890775532494718293252943867936901698507905779338461256221778634974888472463478943183286782856779109645573329493561221570669696332040757959148330844748110878283820785315886382624381232768847830448074927076084493234897210237833386604096417617639528132767553542730071518506265921902245760446815895499325801832176358428193152446863342284861767317441450228610537280960126628467052971488718614357412140873590093965428151376332930652754116510702996320244655840906011638398051281864219665067105106600685090679407797495585830103743759351298012809232941295678519617940802048981903706134397530150515948164611864636714240233983884390932062160526198808707722013634490671074499219456785469534274678779619257385520446024803358549540716778864800482776560258170014306899507968575245970350176615927704563271974747437405428019120522583511817394249834606522772758500417929636563434924418804084657321159513486983178497944374313517183871066103346014973816547629525286441245015563818757961958616119232768818887370046132815606752774858831342665007155362521637637116602824700064812027490861372724995542278080384918898514097443632570286824712091729420925571088915783532593231182278771041756880714716189837420046653299235034468473215495719965428744952188330319331441885667422134048083934255618488533781739627099414750833729159715231944918493772202989128493313577079099613246728280214442886485348082068662020197790140487185399002370890378038289505149736166765419306035120333752192922468634438038502137628214685018818192468716106172360584785904028784134453764058857541269083434991253015798396118890008820238840310029921969320055245978757295032393390675288017502352781305804899524915724861992448170523132385027649138471898446932708959414993992450862591687243959072222928529770659262094428337950719069196532574210818624857326043127998867314942044276842243555200718050460161950286753246004266676603565272636609702769476582355808611435468299233833705603475938586777792523606620869641376496414771124033562123490267617498944927897175645695847581727445210426331894465585330672692087144998590338853562405412227096085589536077824545192682837780323803573992784656826692119575650049896321650381343509574572773919352576644783131397116860078598270369327133127460018940843656233788147514526350909857035270607649069211911618206679823967398064003391143398691989305492637221662643794490749770594500480647135917281915311016012239396533504731530680824669030793754966845399554223399804069249603572661422091139016826290821376059510151191653425481412162214496785210672590046081467513234877042862551673658654312542094895637016114160231072308665784084934756877433624151530532853023239701426906974706338281114910039523861692317178100186428469364356221858351783749805471316423513056444040768745146326507163970726747563135770034813925494416400309321594665130057255611074761704581109430788620508492117369354002779253854094240540604263140527657754638664931260188760072142092422805443852955191882792415434909224830027064966565672024737834853848169457106427978748456163626844706289673048127577377915977739037472249304145235987459784541645014074333857451724858917751579522229424880461923726037606403052517522228836621092999882039571860538910054566870311326361638417017797901048553352484554611589410876755597433448135057840374985096939008443942717704148800638283080048559867162650327078680806318679014070242831073611015238123187108958306756887627950870544994391119834260611234109719619370705819676917286841134401695971981840140991476376326956250093963808744778342228080779647624098330873007902141941948970282027876030710967740426663377394768480519447053145063575373672317298466589794252204513420405426603184800456664420181523485336535701490162096141764219232274457916290921937330637207247637105806240330035666990750851690335233814469627924553718819090518479142122263581249060137451325674358202622555813733561334779402149147526173754977760580184916689550542055685025059329103374827086998796651393170072566672544434777522314957862019508511793622840503529953176362966306284839147084087712765763353434671217287687493427388337553751848488499618774864683206690399116044551776574779086807368743583810867079934401173980044890464968538563762721936658709670030775849049558234926556912336242999615588090278005019148736154388973987346738155627646877359507897634969286955310905439364755024629203941715044448552220676439349571104823824060067469614641862774880881868114220579119689836590827732991675276520185747249071885064564991210679769912184806624897371623804758330324826738991198444370356534352689751571935127322641299242138169983482914835210120941727422723429130444300387198271985056365728025911866391010527405755069673910459798493645214161920261395974716960570958650129788637149075207550071897997573404991852790784907279507760411946882405271389473945622962357690915924686873899584928652611276140824387959435508051240269583849417018684456532097139746494972473056087110475759443852263229740092181761856059756782416248980399527398599424742502538921462785188847435814026152985788072103574795536789450645670037106529156811109017935068866445097247801077108050821271067225630379555570134243370269495325882054336254188462139419768885175604316279142605370416881002429368662252068296917897929463514831250955294897145681891275704326736761765388750195002836162577705647469190904475756374718227436212998184978781252869646826676660834235174052025086255256831415664029610496282555769539527976057846851328575030871081846304282020019352334034750760822840753296061906873394641273836811187074223289671172236917245391707525918204001022646245063538187936116762881910267165652249984212787893097731417847811126739109946541417796651766522800676815671854009462161205693208897017521730713195313275753517461304949471725795073083468599713360553406828428271758147937913835249576091501763058747500018266855806213714671989725396247506967988759231326057679325371379241396376133048545141842762644063434613461081084624721501520387382208460613460764297371834925358426347050303361835985606088809716018208002358999639875974245340115695031450610014392490519222438570011267638408593281810492313255142750028138883096442024586566005674768871863600119702884740546386951152476338076023315985603617313655063135978268391428176643782786837435473215905243601235511805321141662350560147400307251232442544123761224156823817178014237111864825641703955184050225302365957129490854845668981091118985567773156045860124169480282482396256732122479680278265760799316074131763228838270226269126317796081889587835725581348222825233851763419843409677598567824381171931296991283625777397564560982853115688788949347797380023311246360091198262831925104924760264495451476724064137226444160052919520789842551862755888411600570284726179433875116348767840055800369161673257749322348927617077060113487963062380724131094419650681976826038175240617306515033877100728212428324555771534532129710107022601184947779488778178685662205539264152326796566193205490090748231312677295057214491106544766444493310982227935229515572946774667928718267633934502651606737665414408453043001863849065012562242650740641133641058889907453637122966292677134601642991649326599552740879883350920444241747057814856833992615336834844711843313644331287179647562408206085938134806984572784938151943767921039288423573059986910691942804686417371755524628882802968119186113809706498574979551404284052396649118264493698818515732959519584807031078285571128029718739940376451004977121256291793352144827385563583350299524601301654844876346580529763005957463718630634648616278015782754445919703673295443264037495738146500260463408223416648430730844176160329065808795874404246113239758787307001246416463445559032295209425666608753763753491081169332579778881522290920412714879988882627249040342827349898865952207601015474260735970849559024999546481773901107084505953468280164704897626217366256903588821625225159580312328633350138448215478350359083407581125618674180204650474914966536921854087438608987720876649431081904421747008516094821836023667651466375630968267961944867664592421325066761576670303892405967448068188950162039818296382298613208722214898217206685816391223951245688375370983422585803628684488771237541862642811410743744253561363019157322213170369107130053006926360665192812134931684455174726002493433130315495498577549226884334809112090636041092850898559992407337391614540315171005275751247110383317047084614134909137571779576499931669767983910413630850357077346513269628678815941767002741933568867903099760759748150217775074234949296773840450730488221851703304095142635622030006083759007670339507331666709998371505851994098376089356606622830455656269845935516976837609868488188062577363611575699084606407794218617785475693302107162016275574555050075627385856325355770987066855386669681907835644318493514728999776825540025445238919266246528812188166721018911311075895053883449066939493907024720893915684308255474222452225293845808476483557123225463079893056205403303847189586217599720642144948259014614837566427435386919739251870982398478772795962932431757567729236870942744915241702032687527676801701900171889724436326108530707715270914952683777246582391316081411623814264159419956209587968842905261601804324432461159341004597011237186717906865001946967572067990910888184704306914650178971037707112855879159623092416466100035787016122085986173456609739745618167338068332781859754011793757190395304965707119973091903198403246111047835173703543964000359919668904272057123669466418998357374241985705677859513313575793316945915495715039354625433861184119347812375228158389211557112571466182711018804395155732361039904713676742278487238142585169992300534900721681855026934171655291684589511790789788979336794326389635155695205916981310191194749824657807092074371884650016255578703825335531719344294116571989087429042622258739395703573564363361166409358040825973111593828204746010706172177718836980751583782585015091827131987886189848701474287471520770344480487065687983480210021594781353123990616454063100887045307469284531457034826166421532811720645704434667613337569480666603759207858338826218477645328187234017212900829320491591204373357863111958325921724009309352019836359043288870316497534140628134785805297395125832231870171069185922268137657718218935201361900242951840989956548554016629291241221159920261953050566037560256550625879891615217529987739254120621055799816190460209051852314730296163474367834022409829821612587717970183802221704789379962641794084953275307570254684199656071055013470406499029222739668062273893335991076783838421384454398805043611598222050097921036030836307232451759398257410185369404454712015454325855616597847872949478168288130483167509580104801004475294636273958537555767681352048482796994355299354546459275296229377998715180246416107884785771328330310766588997137977787513854895063447423226104676981864022206976888440052728083109435170388480255316254200238707071727227165748100828910093541930356281416916890637775616022795914352979896020049343332997364351651063256477509994645310719350372927249140380621285734530171198677119513963783468397175844872282492273905369087107284678227742873210212050699748968066937306158475325953226512440180233641058840262936763433535485331594796917610957356715690388867889428215693272324462149382426583309874347053377400085255573612513116840260374869002032460786245505092966639126119724951760658817469963084261632179540242758826970202422083240648045781744436539917239250468277749895045000393264792980835770746590087545207943730590559380446723760863144085715020038969686683708454482042517870947918886102600578301580930094917108722570301036839137531927116476210578183794543406500528288165296090699466523347221536725053257538125720910660266294534846997709481374128828077473780764575820471538946491975500893431347543410775162412762016988887447813544202595474239129331808045978702041626963586630853973325489044928299194470931425335265712906065877726413270403770186169964830638124134688949651019199143142421420880607792049787706315277040199947156716475868626177899895180562131605931668476730552240140384448576710376625409778208586045208639882039544031451109798496175675401905061721787141848313895611997568693465833973023525891990199607639581945399390812672804053531567939545782568348659311576122787112972247180661138091097099582978608889916448674432173007788893958685123527020929577401543030887266895268788596876746774857587709560142865522190875319525084823391751915759853772382947414159517943772871031410761686992349488051317809334734570779523854214629641516580946659205124560979061887598249281183866846775461681780852073083590431919116560569478639121325370743531167234830468530010225103053922528744790119805000687237994576653369861180650716466009574755430723169284385442627182147401227160774679060992851470712584359596506522008094323865002127235899567094585698927132459214295446087190446692724997447116146033933523852983072215851471881910470246625917909133262390911968662259066812097640608878517016547340953005262944312045734411952780739577841368595006214508359934080916922688617197192270065937378782740585301752784443695969460539286819393887912892266631925340932656677926606282566174747340698778967410179855181088344523654643185248874838636872275339603232804627761719668612093849163686359483728762716001269692623052281202292752092397953073039787206439572110808944148540738418270059158765749675646086729196468934833848031837103817213131518409665901505594790156645736117948973766250841755760493762027896093889475115719054714990002656569704842308584244097563874854078269637103902983570587557526668354022698121220565527233671845023504899696080145294441657528234715642858013789955501929522225574702332448776184329928546443301480589651489025632225821834485745106873866447358211247643340236658226286351395772425405062125758149396308118641832656695027574088294488786383751591932498921374156084669230597853555964388016286595005359733882335063098378042944090224199490588367535352524041734572451273938788937954891421204354892127509298975632717749445962162841974666428732420749110019586250039155367613220865330980882456938289222833387650998782161213215115749052095351613387499986441149982531493660102050303930874341778908980037903184107501645776101238884127634462177577512827537101459853184061839252567234653331806834440590575042631325656223725398527769880928466103944386795033611578743030308797437891150116960995529070432407016797656255926418502567915683657118819561578683499130788008382420650597304810073213017216877467694477632928239355767500461253316454735768961821844810751759681711622278241026340846179323544798174958868540017408195249539868486680149111618373717599752738330104013214296991379645479403968022461390134456279179602347279810651468820468727664976639454364618165753634495379779879173525022260723722316858823486478798672667978254803008286157609776317349052604497681407343764545209126044113556508361740322168023830049743770265282994248025861785393736558601959403566706573777305657347353684813201389975178135862153055297855310245512184996619603138790376714893744123586184294035229582835122777543282373426353781500495480595873410861069290908919357655460932384229965630535032981769892580262582065397887185549750049915030955082711149270084310526021174223068298717211710764236819867907680602210247727027184485612212413482188288928035209297011511214472289590052928998302596123748681412291097643116823433818713530526716813454278752792014662911752088833971358199902953442654630896049883802118788929051553505601758044322006601082581473061734480871850836767701837551735984582554107281692046031236538539513765453156069612934340966986760053873415255050716310062058836868345645477091137296363838825353316451652585171875974675238119712448668486618428897479522077166795743874863673340721376016124266157211042502264639422826775146351571676713220358275596738356842493595212709165955093430078968140082423773218990975017682416660106815181115162997042659981491032430183380790016797537612171668582740632055747924242850483685324905777446211656706004766805446204307668561192924117019733279857227358251717688180594520447314574982080113328369578137970854204674269284873662325616939973697604980847305362554107686065553079833557445296485571748947737243479621197465227885049479413416167179965160087184574701124379560270335963243667888527718325402164706963041132807572972407935528863028214459163741367092367652300934771125145203980655711638724883987613847671936648329660657437845277345659657066273300445586096067670555816035995280346948543124567039001683861148328583551190719946761570602966917407744644333366682229597529610895470275753317724697623928631461428089451707964989850788979021941846837894148678217254675118886848272546356660921754472800206055216322043062856775949168114075786308600846017991167471513984930074496304899808513658079043027018875073465400527361541036631054933175438836236251257312807482529983759340618090000666506873735071433994025326943277837057671135499319828491324495480391959920047688416024539454282250585872448378511122956195355352011283213572083665228113415791420984259382851115146907125616113156107849409008745502407107744432050009973447084609677569266244620105097236883965423570669610191040871465468018911303449062533443198484858390301933214735099713204429379447626407666997949310114359801672734964715769059289203813616529799118359946886571213647687862453031200789683805106359119426718403966596924756034434787166707546146916196604488202533182187100753419322760951361422296369205618426269371906993035825836131316055444722697558708849898709534301870582493652082504753524500307490168727579413015229666393085599413413265623219053653611713030612032687561207567013388898587862608102919957462098114807817751033694334635946675797683912518333498248164003141535532235586312055942651399834597336295709119817188303024338933771343806510617930914326052258620305170583712957898930409713159797983287295904897861829429342220425669949738486356425971014525857645033989095744425185396426354964010530722254207307094981285702801008456965160685207086816019998730016974230573045498215798290516205281235530687652615916740774584207336411283221227921916161410017614550675066547624297034361799330359155572707913254250417934507285156743935514032844411818586333657673264361576011272376367695449904850071255001815487932256707007018489900656345094187720216357419964573650459567607576204245125769166814712474821681100075623583598879568094464049767008742409491830160383943471969452945945546439305415343077598167356980042464289518779112519572749949774187727585803283492986757215570824721020843519862042790546089677088878765991049689691313311831734434736459078393341023514415651468729790589466904836543849114407944424887439395037279847298021303712945383366781245403897584170900299588145191510469844526288678889620359652580111547268694900327830725571353651485359292749728576053851252749211750216588512063288117986118760193072635636963673763471166559331392407456094580590372333674808170408448902002532585706888749628619801550119209328305755039634928030234596432780780719420139099737720474930375311875891315948746909223525747157335916525904431498767091781994552417956431517013316070697898455335057629976497338230342900241795904896154186389417863066347598744014555755148723240926550848563063982236482279961875299916539572478540034046670636357812060214200755211033410700625008279123758948674007711426215227893466909866856584120881008976255093949065568294476980512038569502167291046133215704644543019406703569037287697710324125980440590719268794139442577929487722440239461386452465483990030011765138679217542649027763642972047368243540208328916165669083755611372111374873909887017784746771496196427405565306994034513138899302740675840986200403940332152896457686703332434965133880269703154352532880863879618473547533569165707846111093903325866295478408387974256413286588563574753021758620131101326528748315851036707684893687919580479749747474427872604054254208375645615551114742220002686492573704897446149416902713225601590484865244187532446196747620240138682386446408007671909714552829691486893582388854135668279717091539426491622734326181151824891438890968656839144071924012887765190555887635628316325388092958841536239904474919293918657066790087918976913470114298955841090860856348861523329953288046393969982592230196338974949194576968265133346239148905788627571388388917868264883436751507331820784559787994977540277418475715749777227031594590937265547121981420859630103044345795307626257578873956229729009763637150947969420984943746413635565627899204414784875991764578702350975224203756967344733224921848746735763157462947675387465309234754607866958783704361886347383140003780227915976723059633559054896123898469524764977751591848693887910965069933044879605454961274734032195830612368778374461436513783413692275798025922267256686453033407388645402325517913867271719285037174935161527820063473392904040587471565751497023011661285724536321137022019016485061561144273519009436210208578988864467353880165172485753821732589691793712096982992088467992694442220269863807117188212752870949607057909119453055587885754293030369728672191158938764587112454459916635746950112575932945774132411395171472638375653026700416508825234457030010423983629236534387541205293559652137503119490529958366487178754554987532326761488918282456857319215927185383553592642363505132226342846092973756095106323933967032449202493145676659763115253942200003770550700078095471147698180095099079452465627461029693343879984375191051136461170531277441567132252106412049210337843031629027727758062883810616022933408745140874295311589942651951764745134121265247386266237536595319772777286386070695165971823063539794914643731172731031948052605763227069940530683085358297012302741845412939296468411774623945018137783884351739615897834298914545557638780355265822811266330545807587612143608629927344220519474147134288546018245596755951239167868385044790896984627175729289465363141965539896719338606857034380836774983279649107899828916156730714423192831185251107991071805190638713332826800830526153981979053461373965056002640714770135168580510219747688537161810305651521058073524746475207636743090619166007401234966031427128114403206796452291847458447010613167563412718924203337347244000781936706055452836804194939771585248039475111818025930507641474691223349107124237008110259230298809076209852642404793605338000470687187298378840301562857197255417685754445254651797156784690621867974005150114962835299550666163205478017252362776436680257303948106616246687881088500919314600751940324501446911996102750242260581750537319019188862415125522094995873677017984299149711436656393223254951780663102404852381435389030714826044610487012870908258133252243447452161667931475294682058188917911710829155625239159348750766578400182803098176792902192769265856904342514261938132013969092731280533610378057318730407297001075560290853649554907505762598352867879759949738054254430963069563966404197228629998635558967309371263861598159409530127462900459102162322978749084664908411743919072028053200201232852050353471726466594709632426409613963066151821417261451483041914753576334423940498823005354849378542724841678182629503258259516705007411452714832235453041390127615564935240713389315059697120123577373357500792766016107020477046455057089771183597208135217429085990003198245446938655002819393838908635200338838225095018743674077923332358575814474226858617895985815309624719299383968081396050977001457830931508787256861820145091382031200723888148137488486022987625439001362587802380694539547053338754707660630204911598643012432793628114220145974498977030386761914606699497304881850185654361389104613969818524147194150701312871248163333816891905029793860595352001455129256567465119000175571029457638288179195084835752817213620067334494523697811748505293228721683730290347841148007367938500476172293060765778424356917760021413014827174822216939194790048713947324777255598068729191877485907774591013596053540885521993230179785398531623770313881853067558357781705340225436771506320312797275133391490484161318160581278348770361506598601037937038861447868304686245666561557412569464046911940953686636368385608298116476134398292029636883537487438743625913955503415713453624293122873551988103924860650986409888420899897141012437359993750150915806909872604087671736467725652780654373551744914841705043349336153869068771844456323921610940401210309818897979825661110630773305943682700873407106624411234028339759706438301026230640290475665922221388502259159333480030051470894775811139737503306435453022464471443097884479254941422531956937040599623738038759120462424288480704479258961233113923316028247667590122911858405996663312999768065372217705743181648375974023997042385881299249779625781080610496762035857616001656147034923499137491359344481652170167718375658862607426284667492490711357583691382160751951162301853839874052453838803113354514893462723406741593747556779070578719266318869437129577231207490724134281456500652252574230460145901081793999259888750567383374369569816739150361255197446966972531029732453710167892311322463830512393367058810343459302661967512254970828946862048022073683976970634546085935906746469239767820567003641402638339644579047912311534790765881171315164103564043123594619876775763364536866039905076960252606622662086405037706002215106275633787289864551239581684340039304109453412534836204788868830183584348562162367902585507639468732138597409082773882615155772920553197899941867105300685894085840040815842666778032522580671310905716445958492502404663137655516437493982978601422956598820878647932646421734934300523536916128806226338903068380408346592747155404671631440380568933612394783367062274385036860866247803796562314314144351702890973479448333481653591965576573253435260256937158045446856258230269926812523597022619035598129968154089393671965536174492289920377460084112159550145580899474695014780828544399092305661792337120588871935758392018906852677921685001700876822907088400183811580220092297644937567528903401041477680970049306838325767428315862755651428849781458816277162471173858560480716356609369814714193782598072619138838864124451310671502646903933508365460218091181141787646403214670405557475882799432909444540814770047224696891778736736092029204791918959912657695851083581399759580807332625754907551285966723033094964775987951272833791007977095042961908446911791643985241446791672050731698647502926412344144013888327362104517056760658594509143480215665950589793058848224158954657230399078426498379431826572926187194634117415503134884340740454299115363590703393684982630978347169315881603299912173569683367238940842013928011556181141689221124989081258849797893663289737505566242476316995894720617959461941970440485201523672440331608690320969929104084907275718842256583542532904154696297584044970957596871681276573396368477142413764313951551966207803540956060809378261934393781943236744912886704833203147534267970335887205836450537226589061747802979207875338036125157778365131140197075740267540989265644718538503417416335231345277844662589078646555920004703524271243325251263476384622612184565197196993234672999407770651939104297379242847508773138219673209613692010253300909133535172536535565166487211575946724472260554134700106869957511926289744612983740935395901608618742799022255302695514470121939362089083390593167804728051607027748110551886909194228854699355028720451085562272354420965533913684645781513361958318780019320052280365283296603001826458333951762271347392888333627922914365556372036083849485610470833283582225409362744719792342643321840995612111742039637581773499779462135691811597532632920842036227403802285508061421502526834527526457985660057562717105061268098499665390764633422189062474645079346201136177409115561232919143607106505146899165136953192164758698223446735614564979726171915263470291430574113824090718591289438319823351281637272196823293302445026934273839051318755745292788531866738933639256184326843711862709419261030480588223032109272999430636001204081929633147815509597060536500230078890080812659186654889046121620178377975748457533952728209750071217211151704161129503256429732127276535206853116023019750258714104019900939672817618924089551736557379239253349910532331762624147522600701252275003235024354130880260040239207126347676930797469371838294863637869162050545756433008593029473456744985790322249196551520254382241243553349484341108439911387489012374592534912019343748818792811110944152016173776113962611698935733077262025143892456287438225492359630998882360952036956489096017918325582914228623009108403792541915206797421248890206386414700234653602714334415909300916665582737746625082801194577456380660458414998759112030043203389745661226095884696634487639667540342146194645166357269937798902894602271028275233229761138599381471604072864092197607518163496039229113191615243591808677636289738911330488803183769415291091774998804868532433718319234583055142127996388672807036607804822647291402425033275683229628294484029914280006441234277660123836846550504947422409056802175869281253927377476605740672699457016083102375871051975813348857522263754933607928822492314613259031664580122641131087764428944267784383933646945719992226917659808720276465711769150934563368156836944539760456202307514539337588998656048534548406888903693313242602989560253330876648323298296128956654391693992260034452491389838963096781139896961483011781330356834124949627536073406927998814576565259994638353826501284524823494599314764827333147526148231075388825851250099015686590532377756767940398768869294224759135696591532675076194092106196943539672739695307486231086520345194104753185766426671081974625768071488241550791418731982922800073312854353033459214528418967761094755187434666995655291625579661585155163437527509819993321585229544686185525954146377086360400173438610798966226409186963397959031947172544160632842022375183690806815866836654059238647526509974787352505110262905117652816818873969378413920141979595532064265448564310950625767925555616045056830817181637520841682268065943428159123406747811756351838179192407253039635583327606991254514498095413101575405228326299428030319662786781029740854260124646482315363978046076539734138676049951987502372074026976065004983141666586502811309367805461605133300045968907426632724363129359957803072787609658393823861852338488551897585113135458425794919276096992975078679477230397377768884174524771618540410613688697920347994405451354487557696485996751489466784028995291178621533828235663567593793369936396293522746858805192831424934308023930097914536545459544807659785433570021984959519760417482842313588877508536105751102586931057784638473342234008248717301311514652137480746982568151769391735856925695032925369403031371043072947721984289718264310343259893613539298788611883835804503693728919921264949013247763349327258897438171659006950628237543386763928638923588900052621244394392772811034150507043260681129890318849312859191561458531615223063644712340402651826387820368379963126767777372132596454442327367106117204445415787432345359598122403380538984555309962558120794863742193439238047780238171521431201574339923758758769679281835572108126045955154473860661678757629064015321858792126849464251390294773943878924251605632028091571648303867837024173912330835182973911842676927030323647072073097049033191331287913547799207664722249212612728874447179959919760485742718793909675756718420521315292469496012173109798365706177783442443769766606575395754115613114734347564051251025598374996262921337323909185882506963495953602339458259910360121665664947254996814548030927648093921564902800441959675417162448949865766296831087674936636074605451718952341979765641467888752845381543261676786508207982577330865281690378258275323652288619024377326449069827200357144444591247873787273826484589884312533738389599809299207858997583888287681845245912740658271577283610377271021178074496265701607319955478367587041626687575556920567948974341100154950297503020064755747902027434846200575352314621765365778950436013845765727573264136603200962401343304388184375595474041021874033852192630264410129810254715243635265742661045523927896498793911444110595804612320702437915964771272511404530134376403755119367228872638227746956031207128182677654046441095351718563441232604670357844665573770223441977820184831869698648128776055876782441895355818186921330929170270696992263773275945640639017647428015737291982903762745632561687511293475254679617014784503377843656338080063296143493788044508275113857581705078352756233746168751600901505285069168454280005507899229673666251585847816627069565287248331822219318751709844666790513198787040868757766405442801476034749022727329223338211585311105526850550408679229745122720357871693924316164519878385539868815666981476991733971837142399907549655052729057381129090022905334716539192838930616656660284713351921332986157957900945734010101220405002990674401375771398202608328576313593434679230105308156419691842725345690598729425593638515832848510493204267292306885469945366763200159550310993856474285685109590991749938565794274777080280963378358179388107987942934704350936901006061832481726870509912916886423784812664325534058238566223646926671802201405450642245919776207270147666818062506246733326955441282930243334480588495503312910923683560335210674584006795598034096740431935115659969682274999737273379115532374872188149755679885169475696776239953905893329134225343967395662538657438260178090927789637007564109277205163560120490784976117228083347647008959182023525734368678043638451672054815335983647335022776263324946192532565068172946495291518922504714476331958411639729714322403584077958596922515786625875449299404498220525106403751706679787818716579682786615838396197863631909250547946169383472652477246241165487785330338148753212861964855519093628343954085575928689792841570586075194320846473193402852173699111014511887092171458713086545306532445109033168792591416649334834108720383458799142051224486075541680347026851239077683446806442557514952863575024319746878571348799634137822878624980308163314428866121479039761243384529839140443088940538778397261660171079364884886054162749039078728397937472796555565768763663076306551210783933225788943044511835070046093577915706787958275071379046077376988299132547653567899531702469352976448875208736499432465744744468751140611763568134396698051587374890681382608468745523286906163694828979282897209699745973738843635706107297850771247806349039789878609997609898649942520652810999341403885331384795508522381804228967315621188992111130201461699431557921978730786818180397684614184744905725655068896633868894532524944477386881113771725532179655325211085043247049149162419887352838488855990733590615419486350739935329333973487883800541847521748691761159221869373601755085664826563606358308683340642942257672206855018526652253929022195261654035658163939994851991969254775346986919704574767664842515779647247072345174206707411619471295945886256983936523710270551633970298471514055002573549793593225930699860374160183971334400933952837761536501792112632040085164399744964935614426200044874329870578004870694247372670257166103600344639531463190360572481787437253395987922150109049875702024237500130829163302232578584214381420676719218463291903118773971085802297593905472658854731536332984617887106987991504135752138057836208417847865288763649035307085754759942844248169793337161580382176421566159010960655835650123263103611308527524040347827346570800117296956295633092926028662247939180277872008370139752645616555488604724218357726818119095983182216931161329059322424066374812297019768096591742063530329050964752103075276795866507128310959042991044787580771512414196015857506636216554528896238080909522180184110721255711281292373987432724579785784456911598297809807820904254705125012225530071588965606678238586770760005492951646761164842541909414204988355014652394064308120405847503624095261970438557191808236437108888904335790982686494448642464295480613620765597674342144165875266136347753471210575902341417681805335177703085328431887399758428213984162495357721158822444015289840503617162052930534984817187123381338192013270080695983694106708794056134537216433863424626474831379747849071017868458490629438883306760781639915162825245984753622871683308817921302301254352900164845464019655950271593699557552522692482977241095197647457498337418188444810842716284156278359079880162045361890626323758220337829348733789540121584308296746138022215466550512428851880503886592580693917583378609090091878671721768411526328636247394925834235446492760731544807844441426408015378223518443182164142277647924283715568225603993934521155713806212296480221260158653117800045717469654519012990631000061077824114375623341603460658866308072234549937983916949543835835227304341902765241969597116186251207362527601783427749948950041994761431279827632248992511479988512285949464113060951730192063848909958554006499038924521159899491739217260980891725796265991999916813329317951052017110015780554327397213667599912335470685232541843715119413331093793938390985583337826626869980031960902609965524645754175301473479451708381505655214419028752310845197143532892203497323140353022444155882625052289249348818210088371870530668876312548349979126990156713724948893941696631496249737230967115125725751505164328686839036411027548719650388571004588015879845916304515430717324200259514822502798758128777905221469112173360206686857050619648233360093367585046263752821156600054671337205886243889029029691304261124573112913884542784978866727894819306395833559502671143961012918446993615100475118127935888724563204723195005708018877972958696656164813362803220564687701668695734544595647512014316946758923342055965414313131374125804919656547203554833529815930839381106656810040499631892713033749513334628454170895431291021638880022745076192543283958955027770642676029557642392159557182250766666634415672727486437668241786755871045909402633415353037486360438311994312423600169358088908862609481979572064540157598498925596754379527742302075055179880213217472952825638861074407555103232673267175102382247755600135006172261132361655634424790076884124598108085203090446830577272584315220465669485527055120294611962896531849714565711679117698757661730150793585290477496777062871565984147082051800954219839127390272396980264530039053564954081922940575704782972451445903533079989036026940500644182355309388884059746656298992165099635028321346269388858631571447005485337731336206858991787328278687164149101210441984601728055593275603011415073728824271331982668559460261295343217276846328304513983848814091306739279257597612663101896196956349240677977821433871651641160060976328892342024033114574070675978481768887358516226647249412511071919944416944101817744218882884925185242580973133055316550522595307732043856099686236144515820324583936620067991366045104325948272170657869387056542843328810452904566943179264703864127303455499456060353949702929563978504380648813408153797723023353198706617580397273872500595216948160794101218193462279666400886648910269168723193875235215885148221519970779662431320636762155858133751650936799313669945983599633453773264287182462010750641130810898820090298632661612480232489300153822554591488455132162446945173222601781706877975388929000992269416404999533723614500219689368485471046832837588853205134109164447359873733829551936561995215485984942985912770935955546281048283366414650659107466372392448356793824755520378907505976896603329365549133367180170393805027449624725282975727863111787023369605868587856324423638393577285356921600792668893252921303903373396885199441693448215570305555132148640273668947063401913624081125467466459892224651473974521500554622238922023931986944420090125470079853697649798537844780638704211439801350478621578175034419077777245919783014502271703710404376639450449643871391278406660318960490061206723789908172533978263528362182151398034728905653910050357905843201033959018908123632260048757512238405635423503714208633716697192704701891333093662163797773687000412931727006565718033859501590195069217387433189970737052145458150986308267970291355336890591830449049106617139034918203168639110596631282387475230145373391615969916411196772508453759745577039302429296497706873662857855328740433281545975444710365820102623585957707505366116339146978043551771563902350748546929277590157230782133867379187343082829158059155338305150740626282887978963082835913756878071769494993686299237345253755674937312542459638769689583510610450295716349272504724827955810471849163841232721030471370687716764027359276089027241090680118394868588329654589491056442958075649179161428605181320933980356184988550979704493258276345847330484925272226681065700889064253763433774141665102079853706975775280857433663604762990461462964533217998250697764870614950328537781578634369958872988521832873720202540763256991241655921518321014106315886224817201709749469178642738109720417879292951577682469564055156373039226117270533739078315960193252930342472729552966018942894400249062025552766083766964477159331525019934499195897837809895862937694333808668751458712024540881368605096615929395841153834117350036239803524591259887531401703580188215863911606917201244704347559828319126427290734811809721412148541881765944502671113396797731332208952360060581016567050310748671005168789916661637707401499638719902609691933342170087478333133565416100905696516440747190086144284870576536961197900903879194990023697539508482064829643807842532783745788607830024918293195043494098366733320648536165502834801061430843429305908723406235260917965442300568681561784819632944475968481214823464634572243484901915827875040036231707821920470312320614327241932341450315066011142787515254278847191019008214337756723093907200669251669391796358343472999586565734004913689068341082767097719969330885668337392226992477540797027836786206088819294024062984216413376427618134163459609043661316176357579167159127031297804019408946467295197490698854537606182463743388295925411423543567467326862907254694603430966558124080316970270364549870025660527656341646561214134031320448036454754906671901909291179326291740372800240263509733719895381442206083995100193248964450140865070106028362166824766092298087771554763007206613529223911205769042714529379614003306532118756948245686539579151569679455983919603261696028968765566995176605000042886441351927844137921821745018213258265943069725457067331074298507345826041308848563026399639059498028993053026613618535308559491678724470056045637443926272798651900504747787701713878685470467433764961145016675388975969179727109586458921965516390434467196979280760430192328183032762762283897342544237865549934934359039593511011504311278888798070025627362147621542959442102649668721624151115027694693311160030002511156127871240092882591835783933151221812002763562229357414320623085118872782290119512362173469624984428382968229592794451289200063791942766090372410222275833743569874814611000361701399316112332181811653547532314873397239278651461608017185315580149890408925947356597201288234204779936375147831929781759258601112195944292793160356300727055585150311551603439829753208780942936337414282644949365575211647346723284225844993870376177407422670113904288622767742106851237795097887605139087639085367977991019535814432206543694399417213461002014252463830935384722376539513334879972766787749040890814639291530384090841011789056007056197785520851718538355717819551741258094320953166071176482936000014598845624481631256182854527866456341984057655596347971034811213673185581793189839000319343773120762058646877421459240490134549829911801435978558136848390192414045547787047980056355819674656355529579622049627901713555265349878370574837921104623205323080961157799659719776472657465184071577576529181972344370241967367823566886603975745090403916863443933898599782743478612549710830452820046154305428615648986725638075994646737986140528319336538788869976650709352125899836174987209256890800248805966976741813280624551438577297845418386134259579112801048149226425805720537863056813490339641294749144818703027248822531276419254681340943599627043799496676436212280336870907272371733504957725729882731831265276348312189651236376270431993773978150004192202614094017994817213621085932828324380098350648360965836239296587679179471630872633341935618286038357166886141761061597717162991924019268367695513887506543626260924005255811706517988845852438004272904744316518385636317202919785356796802550095160694566684195354744016535219333102765311643301734443812468026134830529335995818274643426431291763976868722091562626750812266092767184672704068774888731328960746764058302446655975739146492935465818283429248525003204713213228726221269724574150137733880406942741908965207470031296613919523194850401997258824340597209146425539437250474393765772641549696495786737568657105884630570239344160355661303798484476459043331549888494894493425926700748520878950569106290178118656612632768209275542511292815825354441203273306142072524547135330912636741496792874224465110584685174896057026010047158517354822475476452932529258908336781050588934009067552657006128571700793213523639672136680599465667713355314287207245657019336260708406235458780228691390196314919193383335424704092709455421486303579250730896795139516224848157639247632736589225127125016923971763716587851747311440959989947061809942013163299761611269768919052552819649290108158448276711493641862447038465124571658720419123980643859982523728740862723425889967437583872495170302359850375423586158018706264631518972190325155914260597961894079018871634829901545371679826466408154624404014109650365402180322398365117364091922877363723706820169706868207322158692150715410738216972597729575240697945236897159389852733028272811927726145274474174954028338538416858943804897133855961868246902340958801908780970770521618417999598039433960148855562749932254384613272465363982517825222652008238276277587594803314502095631201456926158572107042406342401768750311717664894347441295069599514431631027590142876848225756343123843885810270824369682051674306038942863215778325344103736634617356198216497529318293379844780720049381956631935027315282768035731052083451633120771125270745537660227607045159927506817322368594412715803951837229154918612612065412812681287754365836174502456690100096208139882662123933056306693916473773606397701193751887739309707897419612671163402791980470259115515870559142069592035348423265963625035510362826654127714763422479879165504926814497051319642256987795374379488358284675365895226904561037311329343778538738781222517596481848607318809591767775389811081572291693266823212183139234898274025099206713637518221627205721585049637406492393864068551944663689695461397698433419937517066573378396783907678210842508916752430935868929067364215508634462861520055679257490140848863434478524751463035581020643104686749149030392825914652435042779501451648302350964770986411918275510106478437369171495559525633857052702994797929321513421177061926702189884150829652631316544380091520846146326745840721211496490892567252965394344882057361527459363915797024421664341075730516616547745742671378477456070957251250312263788181144750695912583285265969106836948761099484646143251037951784158534394639006136626377556003094032848939768825614951041293831216517810758107220415617997165728224265118078778861778928768775675748863300950515535865911370869090774264553941206716843578748207808136604648772977453293515858548179842623244253563303205370159421817774322306285084207679796418808877115150087908156215762433304937460265964449517497222170100165470743142400782226478767147287918359967551346070727560382859234854791115831465056705906686924190182098869658635895186996243812987022389017774609562836503280989780582725860986734687181342887472825823509507432448243934510112789012000599687889137136617761341066147880512881021814496193920147727112779102855165380536123904596813837867477661395409798234753310649437032143808598803675924866251138020133066150297784984664231820754878745065136589641755662119850746553619224810003304425143375475875440339886740082239332715176247019699336059307507718055365048268431159686181227078653778071017513863050695908962170247269302698389372306863529880881426275711701499340470912288015027003710185337562216451812598440169673376135138927757681734949079120840574443187416002898335118352128858985078461657764678630824124893044397258590359329226323383941288107663980763038666295296558720022414181117759678033487641555348407664699862638580539254633548603589024188839017196867234770781629330703628685363050618931266320532713714730089478107286818902676963867675376967080111432532303987803652684755253396605298956822636194413738140421909217496200330350744405219826326279320187850175641705416129269497317379094495874357847443557536838417551564615309046210565536759866539627959012200296568349947445572594541432555150865989438192092088154783270654353807660854718641567608146496823223647297158060428747347449917733126897566693700275178004485891745948000933522515149608545782496097292708784245083819281331250582860145313166242465369242564999889591659196640199287617155949527825159138719800749307014959857074672823608022712515206367654406537536533086868354555754828458280276688899266532150600032134813096019565111359097776171999762282994340374960290378938873059040160162208518276963965259346241628153967780708582194871181706018369837804441084229977662248679557080250330438766058077333578858261123806104442904244789491995513628830242062542487722711091362018912190179900548068520905206042534806141085038973433638109904776354509785508370416781455083251588762493568739252796362190041602875814949243819079111111053589847590836816020127086583714434734464645851663835608162389126260771664348858398976166538003591413694449018740838272752133179669895175872227576639013760292084902143316480807148074429149799489169716863673754853177852365559259012799321671971629622920828991852586570960469494636184731808027157552369044318238350110431674431656172050244716789845032514207735088940577505957235541386308420022178872989196683692826225585114504573585082794366001107197069982301337445948297639401707471450707767915123858457019582497877134322394717275546080247663204446156370743052160301830314690522714941280583879695851453282509703590866958180908904081909041329339638029092735153718967356569078763388348985941850265771896159297844960329014122411101846373882499871794666600931111967691435222061426004667586870856880005955162500413133652553977892080812689532610899820436716640044568849143750424135310140714429418080143983429515129651279842343693954938370766130120190274284449798408825837328837469235091506057817456956161283685836693894908587086286511446542444275185949053355896987846282156982724305775234226585261479814480042444972217317062863013963677299317304630330811886716353995815316219512290979576533471957178934207283552620079463751505715849517045551510272142944410850491333066149057709805249396061219531498985156178610711106436895644426814784309744884888393344624979655141708734223020051443070559299102092982857753113720451367066745660819207708843359050439352531600784679924592971515056905625280145531671816197872224231059491534612958660202070897404174528729722234789427823243293545676266603313164500306357350429221203507227994898731820820967900707895045558105144621898570525316317356385702973218483103931678087917479951559857576532289485230844989087979784365148396551100493175873221467000664622335150411147445842512697316251404634716505981392239704505462609414614194632430930096907087598542164807981835637190767111480869399414065315728717626194285295461845888739869446642973738409163937953988608198051972457514037877710698943888451238791069983746138590558200055691780874013094307546089444306523847537039903291220790070105147999832956509956562694655380930461013643343256781555570296823915094541627161179571220116468452806429065005756488689152645646357925611960603973172872856264850760437725971069427502257499938730776781598797167980677555719848220305324912866847386156817499915791958609589335501340509290046993434695407825868178202177005205333795014727269034209249902025412865699919308407811305133898092513474862837025892621065011134581918896523774799069605696298986655372063063379469961409032306642502113059352539689068587448549649870137613751614288088344247894714995406307423409496825668728248163264551554336285467218158685104623754972972207636532729292708603894549024361314114646756839831667099678702123522305050568733441564632623308886655217341749560943677420970033431488077667405749564795652477226544586870697824435804257383434554307181688605474906559443623457597168229734702837490738993179674971437773993950428604032360273451005063685366178279438715261252527134106359784518996743153595107393448207870005738725629678598470958673444771246521750108377649106415659801529368124025419542733638443503768900408187402246649118775884639976040650156978623892300718253695544716656911066204642144640073178010355901597334673838654050826728196558730877424955149573170731781820479299601641724568129382980312590999969892776748081099001443301592996998383556010023334629685983982118921771754532935323470706561788050222107602959901642573750047963536659665054295620865885496192468468964407243694329470619224475538271196864897593284475167736906509870441381635049460375948379610008470339351736185310766271545157247620735098817480570835072892037407875441785339692437003362185634788078755408433297800922081109400546983014418374932832964394721432390189197219100993682284835925519506311928728934139074727090652351116188081996325964530891108714007013615923504627956410563591051258496700333882581575063762279080606089590244828430104678760787943181116924202980171766463631677843724560528125253476958262335496858192921555726519138980944790254941916216808679277218681661455379755705775253907970494453267625115812731587202154694318337853622748845724695304285337061957006320556823345198422923120869095492069709057034996952960296649949976982128339394306195856189433710604479873054703097343117434849229137623680647556404314404791478018092596847419678457281385059518669445020318905109023855206899791670031352469975153693525229825011490481862867905512732943459039643758957663490311506269054933925287254237618771104711549576169487465838491332372879648928478656162329558028130921485364059281804146005981137544891929355254807862442963476794814783556773278790240527444935213686476037503393145326834505109283266544812175947241929263734034948300602107307586317129194707947864770995873645588760180514856342265992817715599993311209370186578015580877594254432411972840695865568308150779892654595492792025464944681422214359402212886762377038279651727858708309772074738480939212312280573218411127443157934087631471270893963604757506389198124975184762288167891341785166899756742855097440724092022468966957792252827363828798661043502988851605316897071496521154511817012049442004456481148882878382256407315540815158234901236297566500423991159948614874991947898141733366785011129952028333658050026335314617648741730164382115343315098011031183240375207848198708013926567681932822155423268798307485990598951285665844328916183523567897029636263671839858567869254250047081055206493528018421196703689781399657023864344226869548181298782463549798145181762601456610174134049714813545094224674302536288577300564644922498460944277262574807278317068262772371168149769523344979256124543027967084333992367096948831635118738625296471911596262541398033582526472768446035328292857122597575622819075606500047943725243295972713586326460668325015779707915922953616309418233479552327596363194174056440565182856804988104030658937828333167990368130567568087388826632811353063576041770492202050281995123237547407930958413646780287892495393833776729652661240880076374545827069017194448595290103121138942136649191954420325217603145152819353540513079111769466264545973620377373791074426841262066493692277280358472103532027381624291279375601847703668131120207348317808981286849839047814330256536729254321850563234684913852864622831361270936123103609427677447080414211397732815254895834713764896575113424192596462147361578524863968712773366071128363062100822464916096981203519020288726779257406866094150049270614295247128039474745223834133919667439739011880728517902152897337737706258539540000835217256562243760490144237041673508247434622880710875300488654873495315238286644742875310692254114655309892106586831438567115108351443058117024870318474024539635900897676452819708358371438335464418009397839942073476463864674851061403696111606675447079133976486382820389818778260318479126715312347747838497575149977655224354185004301073034790625266125595227083896372597086172831434263062482232618749875711346528390938229917564893993837981286102773153158907535027002187077586185174724997458558575186704644141821363858577693804798197669750895727271687001428000951833663944031233618043813507222423761647719283400126130555354113365337586691995748967951067426907698323092575896732184445251388889710567200045845153760036038360267713838776833507843826133889970977449377412589712163896547709332611433619144168960844266079999260087187609749455558452673789681189629792696650806009072698540978195616632842161334887374750606127970993726628401324979420910992523856137777787129002910361068906601868786277111981984795578690667001370788755700468543691347458254860573420738005986012904396266592452298468650521095996745521937275878761127657655100520938263203802359638917884027953345612640142834438551550838990528704975667670967573720309014348667342084561893951232821755239477625962464190408681481681759410383546986476085032129468292939491343971806417641930081726779535841874311049558250612466787531190361635394147590198092034216017944276143441915610211019671471994688927555013823206313524286677084619777972418850801815147700960753870624280065898101559885761218703571263758094481837828383241634034733483344799779218647010445380162553306906681792174998148113222952355725341563903135917396585226564830612148883900843415870561205519443101810316398281424379808759609576731738600550896009815677618858566927503509532313058164780880327317199712269075890846586254243866449902655203524815139526717817229600688849144490755283289744222215399439505506480688099636114813368450188483605231588048775286395631024045056745886948018601995513943171005831076739629155781871014223884032434488264694584837680800792270569255875899612305716757187007140462806893607429992154923639285575461968489923418712028991270588817679251673026181955265235153739532858703682252984194293074743181004339213548064152189629556707220159389738079964823777455688974652886880889194528540379275127361365028280432796766638439722105390933394040313106550975371611441163230889302879738596674755220849957041155724391579778930300335865099970955711567755767315001411991678350308467629005094631953994716717343176416719245258068520181090926353399367688904949401821834310638930791861519415882472915704773065713190502825789786923312038849385138288882574988866243861922711636293614322904836212720372249723577891127783972386738066393217835470760002153290589936788237740963085188286286881342614911773034782494900048311657567496706694531403779530735273484426588516112188440203551705032643167823389702242644836416476576751698579557440479580833203472042632503603454927821826107831895848212454987441489743234210379430650311207354996574332669329047052536835845187017043552869581229646196359365151541840157898315588717506509122878397854029512430361696022019594973464579758912502775188720794649663178738081523609776493173434609136600931586749010249806944883709245287098941286857575239362643440713971457917954649227828803961674139033716168646163263499959500243197862117783159767051498856747323381741609926151624781549876873574404513028927353534521096179356141113587481661066757144327127643758785577810184759357903539055353950254778417015629142453882742815035396564351039770648515519103529091875531474047451092290460147684198298747582649586081621394779508924406791380610232839691724559694045468141650731240564673669333693391826078714593335465865048267380273331361818969710794350405850090769885410853928623771321046684765784918644445877048085476860561863255266097807178927062023778623926048806768076254791078553934185099757138976757936191959051272101593069803934756332933010379613551100783831629564716845979560454411562194832539748228239210338212150799523120571764220361618027485886514765261282806087399513359935893405007345860785797442114326255938424161536432043681978263671263217700957238336582238643878185802060698203959130388038187372482669552588910827481261355802270599016352271761158396232666569979685725999227992879345076071222765326554522842597897315647629161994200964337656060007235554691846121116616848138794839281902741885029519936180124515010846233193205999798296342688841040071348462974252209416987553507345785044722701813258731615148979549063039820380255318370481477776572210228679198160793388980386750973584728380723948040083348135259965467794182381502737438196036960317707153169734411169260473556174801552948927179549556913593615604463118052998268653829638141235275789659097287696673050491574410940041437294815789701474566926352899562152947089729185085511221823968934997093706265049137257616669645039634929800289771374584925415474380726239376837034664203259723551946620036588349742685434667914178938490664568717046329720094785184591735484940219308255295349502292725254425958173233648053923800191770488182216049488587076262025547510850342021420740273469012827176087748825197360891047701318816141120408433009938475850814764754768420155313444828120087239163589648696147043719373392660242591254385113546371163528673432070789793747867403686530625456394800230934855818150241138855492725140181188955127301317243234967709444624748395866973713944415898482226033158591914610474744508014995977189713048329693538518407624013691198490297912468902791213499816027968584925992402974725720996615006857961310260822753459965163760958700180137646088948690797690649809494980063062097346129434770680983863822551441651245804006537642796716688341104377943353718922633109466680617588131969808795664732874546696548021042635878082725895817301420236573338759698904779697559303912477744439615805051592829666661768122946534563320224286616690283902974248994407970283106630577531926541022340138528921901394958274073666994500610836437309787063244494854765405619690971780666973253629981334747008371224209914708060851311747554713776229564916230721307252970712063315791436416834007242703279717355860657314270908952260208647668297643570698165184842872385591229341940871974083480272078325479994891160569081191212320920145312609364230850314248974168945419656509005767290099730038609184247115330421257596515053476432011489698050624111913475983959498706808506410531530327108560215042129785528970779856769071210296457833694422127742151610548906829176940827893279389506872393099371795736111297063190905005656741485750682772809522057260365433974082293903907661315289721440672984118275993702945673258778553080216147336388301737319712640293852004063583379148220186049606592399035084429604597610073453147758398805324044030204442839977792210626456311420528726619456079180391460861771921745472581087153573892526692747482121455411498330277326700373326841519120137230940560532150140589605573376064264068408821148207638510667198004152219512007644431065154966739661521518473192552143883488481207505223918917189604977540226038440906407538816144457447815391091142779372450158564270409721724523517650007612553960074305087942733739751177206682309056760450521782185328044385447049394033473907008690152543929384790301455027683909503177961822238329345513834236265686743628259961832668003220958585541192862227545349669281121932780018582396542141622337958569963113783667648081847138275126110561057251055924580818227522571554918583578901980837169413143421726706728283840061450317772153821784388520245559335320582694847798153754150382228777367177028377432697307265642706777174859750682100040890518332079387496231115771999608777713265449153371720134742831057931882599287525008379950959539229718344243850889095941951122074957893585278319909878123183113223118110203244954671228505556361130038699770420951607036280292115106720432207185847388112629580243279006499926538437524134893136806686128960391108112786724113302176503494832402125347062576748446149031912100420422980558727621777382001348219490700527528553396706585420253396472238766574415616799273946519037772937437164759367729454854939647931030267499959579142951466363902326995575139926461548335115760815594165112230160845177209297581785420964048079323156590402593340213436058127506141073637116810698308181321156260591491642904307205118286698234320518196816615740598444396223578780870061133978316697488450456391258856543754145433406658019531340658999973525736300872687672472831641941045660969798134299634615440769917779877160176710682316510888680385988475324104733998524302044538053700181821704954371154256248969070846415916064443783458076442990586260715958482191152460401147669994392520551421451902154726145843033168513898421151839724879983572822720143843778823247093059271408646543165172789407979490514351547091421712217873147708758912653808781162972383701049880549723465711284143563706796860698146565668607743017124063773248889476117403425553612720358306978403254907721956938002921217818948985681582213922564835951092804426224277523064798295013776491899778144598973569253703180418060117585850759897251721915300822694910472601802184043055572303269520839336416200605969652255390145925523963825816613925917115863566198327413327372427510954820525484802869934161637421293472874025870959154416885929474015068499182129091893849975283260168167311314388445981472229783816769009099784456110110081097928918938750312989595856885218486599387573653025878967149764158739903785737255973869999921253550546381360828983232163929887138764519540945805485815701396235302184980132106609363718495345881905225069521396227105869426987888763028187671414528672285851696361675953989543643209233333186357125450915216902413373296176644060385076321699070510833259142331327581899086764177887013557434610558138256322695137175855407336332539701028252885982628163140642121990396310135257019446005183712424449820029303113329965121058358395447557130448357207386743343819389908885842600625603217084976589079572882154008035980259865715410063187349206018574772947119099464994366944249254045414610734749310010165237626921295492307685747711173553617136050420422195778794605022563608448437271276817173295802785430032531921251672050698898683656392340518856180016923032122507545449198223622988970870595999607760901274054878854205365875827274473087615748467676628022094060162633345945524462605025621049510349030022753408456245560760769198846469698261694598955300956290837604415322181813418735826850249628247808165008821261270368809988291921285096373033436946822567202663731650049654961647132179186058085729553734804238956772883094112917666986034999728072908883586884995015539880191181634049752344005284838601963605628025399988653826488932885981021140797759430240076404928743803169408736916843059063236348107655346275203080025765062404492685157408542391712035737591189626559112803764690594135547512288394314818000258040041902387372507815479379772321324560359830811347692083293885066557184812594324498965296353962966353811278004813467495549289621464835381718112129004494934538009174981650887614444744569263171880559891673656421032540287746249991180891530754461103230009657368962284467361091076605337478846728006836131734778691843519997670110458344730282095011632596869037919721632854134518946309013059366068654224079777553219203333777674453306539070534771082449127710974709306459137276707190782891127469278959083017693615447902888081303757279644878559225944794244017454075154780664830751480492662495587764549040048450520769869908235268591968636646905003423087636759959765882759239514507513257425949531080701923298226564892521343053640129039275101663549070478034122151961535794449094264047058108889751435591036191201071100896380014270581143464749502234707965318823292630558295336853267187163102673799299712958364137628708053159810955929261047643717941346535188598399848320930889628625422995094270572062048647867781918683270733180286595194672269701055079315364599628721986598309170856961224039515363269223435305101825338276542439232529149937322896460302335486409245559112443624734633517291138590096468203812085059292915668691749695677434276533331973045791920136288236922773839906529643777198338413618802468281024073423826191050869561868266160718528666254989151796686297992468230594610811407693249288201415937719023473899397484347715289856035496103248917421810629062444319942324797274702763192712721692315357745190359106070120117093103251381314286543820311113395691993593315144275542808731003550158369846935910546508041197223976961182094644017152094137392998762015890659229972126203633165982716671038622777667986362972082618867848044600616822905185873661502670544357867433026025541839067066742646093149515457155895688359416434990727955857363291162354171171825373747511599985741029024085956752760462926993293777065565424531114497540332989847765392789195755986979696800386426646290758002310581955753115905501895116812663325557562295691575274144525585522473558565631881633554428801303719962988822926327094950867705425102263633764046218069487520142948578957572363218336465137428742302970553725386142728243639112998417520911577792032644118795736169376314547808820206471748010431267097263411429915414915947954188126407710581309582791394934031611075650247499890564979756845680199350430008627647610001706299230590003530676808670348469640084521781740905311223465665430581533169646461740155935370836382430900739842781478914279846251169142137416431856946014010158818877802284148506383744708426318150996089280308518444422261471860556948407911845538625407642330551365323508663250597209516978046746954951034842175495524586148682033561889727652748877562982479347332854585614321393699503432421285742893249893450059647858530506563685575744730111437984932213152908094367574725720922458212447667530146073711282055167327521357243272738687101967776424772083682458521000759214320551730658493834986574897063427877643537646477189431587577636271667532668716365035854656943547794053991140761371248223713608666587752645162473449280579657354119915769062056472796918859004825877507839867524894361951369190906649763938604688784298143972915828462037418222192050295200896105169698800573325793773035699718383695038086147079522616093350437941199512714872371872219980310476737462020233428367383632505096187806839495202742571326099701349278912909476254934371521578427945635686283942010020554052221692102271657386912067452670770989828084341010642388984872510004390293461165552905360868586972292884770814997027978370550292267060505455894312009283673965055729560228606584477523339052366316164838376363965062377840065949915091237438436777360775565305922220859116519074795990470922216752883137148204079588434747732395927470876477427169596419768021200190864672867909581640166729401771061603831421069310895343591278311402968068140835132411627598473842968636021340058402064686554348002646259599774988077905886450650377676886338792606486052346984060735969008559695598898659881524742840275735042405412376590804318412990778295808179532154956776853640957858784743670407371245844635545615761527322603243302154390193160467723124554631751371234548385039802967569270884616085842327297808215198149938412848090459305304499561207227379901969034634080260808285117346118685319430438343071772783540856697914800396956250771361569218470815128772408640950099601411062262657085920558617068881775631539215086722953996784539496904810478058200529295743610057032508792467598976372261434359270918406264616137673003766467964209499774628072066434446772100522656393753708053389788533420250206262380475163422945068007029622548155258850687897015163438571382284641118088149003373382416851558570563182475986633853259924912841235972514483550663663009879656693844336098675014239718851569787064873643261956730811980202765442423200432867701433428375282956170256162472216816179758584054636616199958474231657783515279406840762939349866641338261016710741489831583939221114396822113547197896648193333005345254088872517028774538683385210073329373582446296782424141023416387717073438763472446946954511842680152144428352160862545887082096129965780820048384168197440955446210524894874108693057856784153582854346107110965331608945678710557533616311376018768965075285884269992629472280674371252776126120630925553356043009524049280531416665846849986097234030608493460022266661466597786977084511224231875778064430658789957456852408522653246275932348632135966694753269891421102104524294006126222588909967846234483203042303844813548810114499621455340770614041376355810342612088190114879707277672647055306813694080797188642915822440188093183334047940468713722389217211873810140298801460530363924126480986395531414087505263279002855036027981018960896112088497684161559051211802153076703527557710472058114551946597088982836641632578954123433073443298101929948473342469140497631139059127050788210765446701857288170091944843350100103467653354702790054149803716810724878938954818004427285798104211328088583811003316325748851737080818325650320699323170520523366177202879103411877561417286691783330251487721913999385391860550252135977776440888156709273356007829326682463847853260397905688228161544753428963606449607655530030163898743611353849071678331677799462300392331772397586020827855745544387942044091125666784932190330003661528450667794779134602753328818125508918344390663091320303316242442861732211990571103493811053101115408872626774639628101001777058053738460805487008115327372848272555561134749933844981696822678688022384739696139549246400919891882581427107713751654032087354866035757072348487127747576879723206762062600302551125394771741466253397620593582352623108802408332734972886590433823822904902077126603579230388904359446943553792604609325347480021810035183691481288822688668297934066112574041907722555601735008702070943254053026532758492428069778801131538433742775710269656315771141457204398934377994793336551266784673696159693825311594696541478466180326132539571101519761727142822852747524337873051801564910337597185553125993927421710828461469337718969454735612916590349999917278253650613770348025274040009675234049193140551340677382548607852078862855034501046595616031074177128202463579512966159650543529846873514893308125033856923520771546380203409172846944199863288632466378335698200183054460166612175330033560507253404469210421310680257896638698375322622633380446854194952960402856053459603620804863308481941036641860118040591873592530939986165456471165462982944767823292036971108189036361987727465970295003478470219876999380963200861114934425248018755143371247029955254581906832285567094446764732899954569807814340285693799822283004436359490237651207728853546880403868414790021193278294993400245660081051352293029535235673517329291078766208701519724828948641855533344550173148991158323858108022349469319523619833857335583136110247531480389691135793483427722311377363737001494343718404062547629529828069769292125122594547350309458789196808876214641406770643970457199948215670459440808951066136167313194027645827539626352006042754763544749673620376844238641183818346381192263844289699377802783156986262545602736681988287373287018670486768931694238409367918415748136378278516468765970261042166855490105657362045385800774208298714731325020988747697656966878580978201381861383397636577909733842325124744339236917525350593612095706250651818263953042067385382095990313463279609082995592593349992565171644038021366791708947595805807756741080634040014707611615555792080501345522651584063847951656122156536385118317238727718627614660989615829724014183868352655076709570537192191889229566488140801819420731644319131126184847871297322987775321371457040088675607645351420838066274313155777717273817936591539499279659601630568224371786387009148036430412038075831196950214745383594463547581637503259887471239733375565136700161319993529159847209249797931320028746697363743975813119889070945216067248080488760412380698736418437984834580779303333761119511007443218079407449476109933375147898103093289795774786490981846520796041259835397310922138592895082992508520761045479623447139887374690969517399026513428952435361539756359127925506661036971730887264844221313316149057305861949529192831119628531690908550557928172991746802653747576485676453631499931285923313459449778193692580603247169570147893826783254163164729306489292838055504692118672251413318736570314824052609837182272586072435513800448413867845324273426261197460702694454140107159394221882174631357908075368704093440197199188704232616331185520929940906742445238000106917366142650213615989790690924307621573270883526569807513553600168474837098122120885328051174365221071654700292397254632130130952192273747907013709613881346106603043240797112821896105250501148071710833328347072839416049300560843623172880030836250608736897616931069174730778643439444972108100979512680128880220573565517739433533508363105569255953225807381742564591897846404866420984247861886783273892980408514305268534730440501784293380046614343917595619434299542454696923956403107530711069253954228808448944748642977460025567772605401699752413648416971855331812397401338262241496815054255315356144495529571588813196134067312997212123031594717472249804506872098234337998598878868982574177178436867963057349218090475252805659667726270612434533289420768138887612138220350909650872057935954511470479696648999937043012799940598299715061767701804444197138076901559048404658193951808737272725923307777143886832893143258623049754500652674880958373850521404744222228659061288041673387306275760887140550960094472785236194406175621053690468949882274634150535859602767635248203430240421013982597203685073411336053298715299435503490616859876796585339147653158449717367516224523815987869509836031990128554432913994898234976600972469914279678532141317028241205616289615160042868926193514201137329556458752680486809532651249904697518073438720898678658501659819295020383918472603921741994776964562159643500442770319503677625774563712335914049173436349424715644361421856961762654819819086041097542634376876509329525628386695331190860573566403443764177167348208639753421617352451678822480340569730210366329255975872221206375315539607613716482227215929683124248185850161829255757884185760995532373785251481621365624857872095795614238332035343836351076517479069459093233831131657244209984398495312117163032816491392810695891369458812604044435874353208321235225874974740302686341981535788881557702176304586606732830679119781269485670108726526441193214034533069868005331639381026092338906740768314834596475344120352001622302059764590669486959648615971687122279944682942778470645710023400333287213110880221549670710836346185609030871737792116405399918123490205134918893208835435498606008392279401039211460174024581213153249209973075818916512179107903471428285440295245416041850159991639706159775168348532967275374514422268330107014576111173801094731155983284996724100470695679335376758107204403453942657695971889897419484949356309510580841383722037099061953876864057331615101532467513797561128780298322393053207384689303833876190987036435446782899669086430024077423228689907345476620657637607435467321900731768957349324642721225048189513829756065564559468646556712868922579417383263820078312373512866199419966586315968529568275477047036356712496897067359947260605054972521650023182110629684553747722141839487898407029119707356714073565188259525705895534971407130728507307320963442217434294981982532843726121901304417295127756156536750059368727618786412171245577550839335906515818436645090339022649307868355443752573798292315615452222234377221674753630050655760192199693033887538530899492239056362434921666741978985655160891031974057911684176360021437185585764414589136221336180910259424075467512197121378078961097224106253891572892110981951196052062684197414976506503316254958387086239645395823262694785720519862493367277248523736645851077938661158777707971640368141103602154085374167739154968364714679474039369306258997096223130438555058592648702614407062577835838692731788370367890889327086657027864796582988292767968863264914144276218589322792637406882328718737633855493908122209450455482561389274711510496420649276614936859768230854843511296220222377117172946471330109207917443367958478147659811009470508926541809418026700601774622260780634604204812505623967496986033947543718893699379839592619308204187475046155194167601029988195421271105924286685387891638199019649939928791552564614764792682349124972477989838144194736836529387041980059484875241899690141133890504860640973670163277430450325366845664093801590211391794423555038900766800991343695586644326077144775366063921779935632250238791767680124045048640921944086872234796402788112527606501966428089122296719136900302358782273746757312605680777167757161796026413504949031895585120731304411514826717775869992777204553469978923140150193718050288012098586851276733564775892945180914807630189335797612293353549924779561300133460520219240764154393903080413297272785788681202861795491454035235601912701025690332746068380140846422701659776412252122250101303198314998441834565300635145127527347679331434914980543460956539643719465155363781786374420285119253771659922252530762332688779353132537293696031352639215499030998362907120262997468588473993167335724412562867005963953757594163666290978520472556383886731355809605038437766575482058937317945943006689686211175836031497320001810152271496297773262491317465874176600157789614459417635137983814630963156846413757191600254908372076314507271294032154444876271113347918957172731035521671255515146306740731325675066703615610424624431746302504024983814722572142292969478236638576857361970525132011496859877779638997087511550570309616765183827618362055966980475838825809302505701541666236627442140661299869821718313555376984656867412114593779838200589611188433137379236440051044289554665643801465965933308379776958807481773294326710918794462333647275842322459537485236152209530489833780319461219504091997489475277211847646038731190280027263640927614930389703289051630208398551614799745314076561020734601265281949655641233629867266364486880468622925789382736349010078460544471829612244256602559248540703126106270705341265252425726824498463428811745028136591714397174555622271992858093684098130542815945103306966224578708600133393322553981661983000174111408376662090198281641276133989582728714635104278381747551138278390599331437079900999805637029724208439903886559127234616455155417373439050420844963209482759583625260507534907517124468652126596803562953428002219988952876094703179526070342701500769165382227044918743848080049289543616380478523419146560561298607336593679555097355412936408265735605352428556799101977043021039997073153672120229338689206437994408537331486301975851789188730286810421710323937740262373886401701430397841866464962361003380969877199194608361713222796645849015169343152111110338729435441934102613081984956489849299670867687323124759615026577007089742289717511415227398576879667642783127591887858703208954615386737448137543518587271272235102505781714227214030855732885905871849746812582982487436345262092277485716505893103094518793064214024697977218882431542016696267212197775950911208972811882229122721904357911009513273808783178846926206855432698439473600480023849143456354991180736933867724732071198442929990175223315997394929121237734135116187649901599047726170801503917491929589922093227223285378702728689472649562118513490957738944967614926940765332454714503874689872959277328713470750811000688895418735530701021279501243025115454758714852640608210725608307722316282131089651203500238278233163442317393202635428391559992501296024122750085319704376082595127635501005498299610696084626790758937112113195329525451485169354625910572122227841266395189452241393862528948521137841267542660844359688154937450378060228443124891350920628605160545115758573080151607715871097617622899196695650601710704818429247456057883238991578829511263671452353858747819625340702293487851893490103583539297671145973485672936701611559922549067220415049230593160579613518375675135712045752387829727303486670589880395925598656861296405056575187574051308962707528474198343989333313250933745009672994870862812525601663748691422801792358510629929236362782100331209590713076964210936621782724154649339176270007928890451456074820988018910988356947791820668257123869372873237853645098986942161548147391113640378416874912115793732714025740415565648959215563148528799260921548884959136622881580955263766716118360002803836657789291115647716741982231573105012322805386962095129936875033428460925509605216056355676957640349768524715032219215419246008139855185206574022576672728575623508299005810614240599134655654277803397706579406234689945422044984594389423117004257869290668276289352387008326623182286411888136645322437600703381652102093444647869761507669865485043975302513624975250080216491341702801079079287783369887979785019399661989367463796555181131939502406412598023175393514760613054822730586264026007316728875932624678922055319960309287614123828572546810526951804904933836250836951431462689641156416289471047606453956053366901070302290998580843356273484711891065459877473125764183701757070763490904141891156845230766222166082164573599196205280746495920210287277852752392516396240405612791092818393026489839548470798062715199027373978888403791360813458315523620114032297860748455426589929366582103046607605999072131354528164017717149305916880692750870762220725512128959027934778619138668998432112523378032361807088235457688816556366525166826122485584733198834822847113963321842721466631539351460963890184663638911451245472497863273059305748000263519332567337098979920453411573655445643458747390630626947105389755265659779887358513960008251777712079491188805368147550431180679073942689081798106175386390314056149847132921309325733516750085452045008544716024516173576732237068682821603103827495636602898285701647467193181254795168611431150528560595212272892216485983332344013060592228414924673116645413629806883483849494612249276983359473458459594962058721204161061831362552755712276831048345819807745757766536478949353752048211765597402944432632471703932343526731061837341131499828151626635778803272957759093270184368574730841832048167382231659067243523739914314781786079911475465051434081634863890948531583967824705468928777878530294535741135429652592079478497176533894372834183802757688402570592029460545499396537697592173938887481290700829385939592404265883470009518121670219025162743852403125439489499209753752891380258642736496954029035035514042913046743257292756280686736386900281218946232531528634871679776736860968044891265713464823920679896047023787992482551479500007636490795257498133908586080515141710147703650690853793152671407812205314986612409295307752108157906385482411890353463768963908658774329307455524097286339261091280843313884597856073226881304753387136042309159844913134754390632227469022985357220521777394885282660169993655250683729391406917898638681821829423919651937616882628341133138058667808862254777461268049510827779496083750729028884161497023813546344580152596314222844827687407397998956115109160428434125966622098196801297194386537815033018690613595462650992896000874737010411237574542807742675379193792730391104945597220319968740090704081685449437758884678290565388477917890535110723768909417253885632766981622409072155491219568018000883379790209874410913923316891962091116039597659011292228627479038722918466135609565519904183394799333328210762202984915375648524067593834749672577514209586070460703677360366296814653933276593355731958269249102415613057177647213894460458673192947579640999909809503185764090475365691135233269325076793418219871997791036778852297195240374981850659114439703381847055524326231697552487208401391261644719653469517354542736085210279506786116622680971280630584509917234798839632275358237144675867148372210579637275187888999668888355281404617905761742078916913224495811634127723860482344479144477835912806911592215679233686599560707563365494780291834594722408436933429211708094047627259768577250784544856355652829131444814692373425673918206354275023764363581252366675876746648358068897887346440893736017172914561358371261306751703990221736643288651454511762178708348571177662574032250923294301395284751698463498830019329277325085241664554809347306045859144489082279636629046808095042017696202245632503939248815656857812700630104052799520949440265465082417137016757268153265392696243945053893202404002696294987707639814311353113302297830508579178187161303161847905466036991293006514892242535294507844971264517654476736334521147771656067342875144418184585845704093476669102006156075024673118916842593301758311439449681038053756572585703177108945063790553153541787437318380084226244670201678029254136298764838925088087709558150571242992165954731187427412241660914781518908431960780180130046091116576249102299040541059729918469493184073646596441376494520109173272771905854684773477872177172657718253727682476082658555134069436821836504927191756895903952752296136123938836717174320109303096750305171032245337336811605272457111821968844043604691798483002403411281608597017041513833418580176918676263953286092120050408279587168764161345059556874891599659157375352715581078360047567088167506467054130431292515774946306024106306675191173100100018617758684178443303710106772374841195491816957813019721672931976840869625436115434726692688840110083868113796362801002597979162563953725991585703764887695829637110613377411032207182421406526679553393284653820459663199754741449508582597607800683506978328353892347699714390404620182288977077473105305916145217616266017928382379478852850022771315875705594995139493128576604227075564994831669565660167534659051702775248463761857009926480926359250101609948757392401489410843361412016723521410304817715320943649188554705870183030190499157763306370549842827971739073544002215628975500540610415367247697922987953991557989869627325020049962539329935713219990389942063911469371900549823752079407123567064326082099660891386336609925514001368830834822002142149193094009582624397183733152126824594336709655975934425233433785097056154601369574925277705695922486674142621503788720199793406685841557205398024003265645248199764190605850692771532162582590774680356663737534148826977044196639127237471244039723518006590634629726219402295229821919503307046599165042061076849737939729540356774275275671214599079124994540175093365187427414686720124774935762148057050898447624956753659018101650723481481238945475302862820439259007425989894552990024918829859711550021407379114153031862668330196498440707277886844925191038773177389171048458702608671331848337594958121624202614504178517117960131215949663515918398252045597627089745228126363155323093453992027747473324300455136798234481379144110738636962083981091778074892367838806368138197609748424117125302218198409456476877818442158906234180219641490044465389757533929561724356438364657054982625517743237434950884843732678634651406213687177964747503192250890373031794795468543002487988339354700960462758310374519115301184084521884998219204284719757513254393066733540645851670695178707135622767227416498093093386898196917420785020174228167941330771983470453729462574448879803580030787281702244417103224636845641772877353125439830828840262066102745400467179109363865799200530201161643947822359449670118769123951042540980855677679582418473607631819287685207558735911352810213522540787723945005649868982844527895895967487592214826304159024113247844054193623794536319597803294410607057314827101258696091439736217499971617666634463187728413910746905393416229789686925145864468714578780259376239833927430736264195876652373030064492147826264156352260935581251224947874873177139178707363529450129243924816480360299347010231363183395200523012353309624923225921018572760033984944559169367742953459237514478356795195341410923287965420359241346232497709775534482861029899557687375249921752151412358315610028979824198639773828239838117306382656264145078583454933559273719387675112563566153307372712053396963551875204121691661278732233325736660181196501046675850634198830117696095333236375043062839762245258680039773731195863630970965004152602836007703387311464522794334431603559441977168865328582086211473748062225059399651403277938944591499324801096841853517230274104780509889064922332480736868625817433162364497682477727646848916834336955250215471722005417830493512430972466655642810636640479358370714214565116554184560834484876881740505559042937105608194165263087978852667354244693272046995800641956070925808555372826319729981096391351520821828885770269828561451729585397631321056194783257212453874251936031763200149962333246984002630702789402655465453220464214806642699629292852273882331314316045841880984169114437354310315342780445664367481185693985302680678018452012797714228996207343827044233486944348370620393956911411090280747004506424736889198205738277393453948100951133123429188370153662014749033860059856427558434207007885377718085371862509586475312877319984574144349038239974081742075053806084564797416224421735324599690361553825338182680870412996957242735652899734266396031571641915134808005829857955610954093638497864552661489970300146693276547518672775929011791285129057295301941648163251117317786399601266157303551198420484173648074466206234614387454840506462499870564321655285583504676070626417294624893172123388875152125924822786771492346299745918604477756257081536756723485923472050746966110675447033340988144066678761717837830467353728401405511643829297833414016224191661815874652641529698324752966825227889616549038489811433161585397035578901261543587237981702486560174675788430739924148086083216372489718784974388710647561097243610774090160443450712760451880990069954152247769720320655709476088855799371307886191474725792734865678824686488335943766044120483482849349660836108853935610830226424995333093800705844800415014298383841768012933453952014339343874939020802452358206508658613082443980639093943806948974869906525192985660758540286195852581704344518488724052584688880061437981398330517213221308110885085619803953284943520485379198207833996490256387941789703232118578403617045422001668062532464018719933267819126514775785160761195347819895811424023246498861580823692903238047940598835067160143598368549837986624334268064526534822885510437707683187493060359275164142521554233130795338009341158910688827137882136781331462041025989953541026825322904858411883076826499414276254748974522642959753134658299408910775383068695243224566916005244896191795082889427617092723482174607171916539913860140536672229253896387613731196431933740712512884802256576257643722110378017811229734191579989116925832715536919929491535817003988970173742864270304054987167845316338989961944663688139938791581298592599808453061943895642141494535278954498228040309584667271159924465559136888071732504666121292464774720700417341456955174661450938609517724779670106190580909084012102397597637288266931301511575654471741622987105570888542888522853159983713373020825044733366175629668670833613849587250394664273293445955571052503926796675052405871246621690005359879994096953692075194086210952990434982269780911554768158910232670435188475730327830628042454257002248851656804562977064723620502588595882278321978872556678827090546919726626183426154224500802143534728242225341358176924646649564096671510381520693773317531864687737693786675690705194502009497549002112949713695859088116358736030604114007804853047256373685197928212234125540040570283014137479526732803254715935823020425097840247258838401207112627882655130588416233608423557261804198242508260285413399191114935160616583004904273925246080573371563302568304077432112066526525637898441480759786009280060475379044904369953693825451820341551286013712290875669054117821452721556751600651444897746464440734670305117122953847252266754123492796661547833816624880543152241525389942774445087570384538013853030100662546696910341113988742411392315575429326074734047990839984638195129747045681038132639993234782487643385402411431125216766390380969963493271744499274015161627499451213091217647819649077652115774774914266996988134804074343141067422187352322204630594639465837828012314221576162369569613572336058285337180648144643174501032848386482778172439111341068340368767494651716949143117822406259702329775868747353724400447132803660896399194813146631492275210010854395855924372632768647799457519555023213371455465690365704957095107420046385956925685556065669242769954056783191992894949082119562173413957516766531119501811354790575090096780371231355904097963830373597798989765187720223656150646199855653397097375436306953648495691116760318609339686511634222350927547516974361810776487511367664589480577774189027963152009504077210515538073255092459578803819655887063601628122258265856904074298515883695779201212781671821189121105314628035886585751591915323685497802001991506305958828550722222418105423577697429288151664371757233951318209201369699333889922212193973285556277238634722536720949381695772188408456064730785239383162029586280631493093002512905040052003155769857455056160200019219529902684344258365501127836399955935757333441373219477514826314818117693991439239740324870462415802715080737526727152909438436322862658977393805445510548192742063920386751189651678871451251896387489614133596200395480698424439095792380222527263623628800876600606432162447390538686515692724503341413891129762773388529336322913814961541874229445828689196704008713956089234837846232536837962726615013294248085314885068223722492913744145324103404265968711407024670163095924552592414859342467861440523638799571356461025340513746672010075035294415207276822535142567868356632448451789845862976745944250516498864785155334104428590443093323195412458360012350461266871166858504918326662004954576530111975967881109996340967490226832009470311821417550585298705234911780070989710920553811275653080493173548606943323332058257302754180126666829654806637588972091079889931474438337314512033637575055615382044618685894606694032907536788618780699366003367994370385685669478772575954521214175213016894009076724403355693526252458626195551560823982915074439398152857390763234495769027278857134855350835909267119550402573605287826928846779516159869628326503792179949536947279454895317200949986852725151460865715521856981172324439333280894125770430339515425013002345790704128166917595217869144925847367321789433554180190913159198362633782627317192254315238527291010315631785452236212084040688101885539822515718889117804414430950252614739011009895227785486023070769734657819085363003164095112468935358881096714755316261509970313490645221203621207254837714615695481779886544890836510979182829235680278530449815328382915653436159800119125068052999983567236658142231219439053246271544000844771644742045303377469960992497368273030483614171914603777168002639957293294222712446581490382913799681249388766603933172932741707404892644843937919597343665821771847092448099333225094843264926733673343956050751883373461872751948377639907311811986176424367112766221652759765727612753803240973754217982388480683935437845013617289938503753024589614591858911352996652657148132795037552268342981456186087743756143435030837455074704426250817735154089721634559700299601683582449795556683027411658772048252945759385336119674560153739420299770924066853240024055682111738120338001039178608791082899960321844639280607379502383952424220306165702350905674012964711946814468471151163188036747395399405214772016451848354712992833924670223735817082769643600253011439867235696041493464002077025772202940074537889704516236613115522194265548168797680896493747958647352088007250176449031818244977512112489599402304910170801441277758005091916837146696718595209971284685194301844139791858690796885476185860546148948736524194212341261679229303977205354150328603861858369389002854961307857855534141171475383784984316432865589156055961343251706022184336538964678946376858973501394959456379858057467401244061857743997965734050547049970495015272532694783129914835558664957293345320246811421158775374241818795052443235292947857050167176167124061445990500359873617239116147550416766430766202969727681358743906365194772848839007430671031279664503522601074506480200099189446898152219031264406868666979756272410941713682567774178600993697153691161385519962519272178538388846340439496604320123830083119359452169938211925021707463405075765405537808832555035071035522615558753632037994052113985129492841243565095685151205322221742362635379325549544172050884643757574186464986386989650166132128327148399138956584511296040163361340183538430628282799317458662209561130745165364748790856878118774639235623686239062098192287016781419809395504179950560922540723463472363197488353030421091423502543081436053800409466556069566765275005788672918803222204785993536553557345888625133896654535109600225262712404305913342909484201968081156290545540580786362592496257062161577858216918792247512267707429534600264084321171728723118199328905024939195328831426588594014685170990462034133934235547449871889860751860802456961011971803499006145769422619941642330045943822606943788181949390042251933281334542268727215069367029033416330416818334539718271566342834684304588503321254011709023204781337646602488296426621799438514904393155909615124403618449029903533802131798575172509453079438271529486568434877469838757126418351154275416562774342802765334981082015320341327799470096494308269341172426737992260127411283664042001027773953183042714610651546389178362389867188305157410600041047039546051805365415779217328385395087753802305436062931612618031065681466036948989155820619467442698798818015934276749533177599044116614427089722862157486791612973759035717939876595573462733816529739760765403429352657978784768451303063492893032695743522511784475623690213882938966468747848550289194998512375108381664559744816693136210365860529665981684919029896760073380933801296453143176052669410622309213795267319882811046333387383157126545942767262169193151532402083096595856810867729735440526091116434400195847907945711862089808939568679666429806463368075075047046533477523769915654156271294699481498276415370764047748530879626077691501752269281158124191776195635926285168281310496140390682030309281985090295561054599405394291623759087067647807828822533200824393506374438386427694884862875786416394371542757669568506511987736371371947096096150148425222985983434448738033944193935846838544560599435999194887268000401664548552337948705981056724800355877021305320787582661444274235592274304998451241034054159753885769982230212450394689053534039023082710627246470444676076503006504305748769188206829216749998027777474413923168111587145166869115668033563537568814245918524372204948035921811481473429316292203594137655511036168292806778497358076250757081690137609246754254290886886591689068074623737955434952969038086514835049152040287626535827904009995355231559918925131695138480405303788268420082456205604857299055964605826715816661839531569709451969111593701178274616993899695928137529193329152503479396936271444356757807270673094437850634594113603665382570425323427901328539476052303229757373676323581726736965457177344319652023301528882130895213250747384335900976544378762702796274143894628741844833882442482022776219648457327588388066442905658229497984905357263626818860046896942191038517184933652042618728376329528015906319381635980240351935639579997505846235704207405435284367891990369438565594219335154339625164864267424321805504224594580225055870645394726389944011208818957225630587545188192719742146609461703458425199699204245193823317802752618860605720672856460226267310915732331385789884445037062416290775775458508536660797365434188271964335817638201884425914976449068481841671786380229284272634521608693896969900495097138430457888079914663495855904227350936807800942263392507256550212743964760452438866931069732250317462364942900248401516290408729436938383032770041722452087188425089134202756978319026344032920954509718940826610117407820689166171770986665176190593207438206370376756003034826755945271464678723521336226870560430703806414647666950070558641353601307684814894151918385388785272143556519531959656496418692405336310840086150792654034050177360618591988599513516187915359776648549673131685283587443803392655105102539285561208658606022644866681737841644687695332040420208712355635143870677286645744817131494641250011572820976531478900662952619142181498971764867466527726982777523716733862059300953449325449344984114839770257960000410118014386583081940211207860575693555434669368684222327487491939601345561736241352044742513713884723431570662693099861319621882776668589354889120349714449347778396015039373773269701714178186581014338335608352519435289022962995760562809095796508717328674918256775041228124491824165490499815711263698327707043975746599594725130031431670314789216026158474113931100283203392859408124943097585205611261953852250891040461132392947028232231561533715215307045777680934683462724885170132707898223606693169034798976057890568980237330887436962565118841046434828310660580814365898018502158820698418977442229355088997151864512167535899379722655270464292803776645400302271088844745131738110929635236375713604580912543330001520536844793277021127438241449220315663658146986344055161054357810723248820662547086837278323253208390132786148302208365419294243019327408087718906561097110924598887137428524119657023542682893295191765704215724828620030667960289932990388126077486258659508556634106878098281243944426008761064123369835117238440450718086405719794442558436089162812937630157050225862561217907994423066613946732722789000831481696131269206678471811530345012824189560238692656381231974165232426488584288571085898414005166205204545220381312960303476318794807622848621299598109910861279003111080863412521064060735637924175636602636518567351780851010085406728051818133439464249287301868122723321812932059689621595032442289807631536142622420694866429333084424988462051539300290206397117487575556388457516707594681798469082630224891069259751699965692274545563533680517637657026277541660799582346273044195815121991632947885722702540430932752872187501590921156365741941101215290028487983132434405070517340783939267147069875168817905839195834922477506423233609979501850388990595484017777587826139984623098015484703631402173516040321315295382239952099030381246161269461619138374552555411836962859959234336127973189775106836885432374048886504134338478487733321354435316646153172601508785773520274731787248506772819116739520311945887568889544204471915054799453600837650174856664680979388114939204362604124405981299616685741185191326269153800253944863037218301783534022708200872130375237359234917573107312730252831649265569823054075154154660784511051879035557590518607864667095530892061620821413893858975647203773956282197883823377354798050162273152307951837072653630102774331962371066262381346726136110959363881490226341421625350491104316758637700524637982154400817129411595009724890583203047200182119498226399990571341204298874595916656201010594953297122438558731210390261026344363547356285312926180786487426999655323944111153401162276304936013373534292270847115970779493761949517682260145778748904750722913724839555172473212929732966723407896442111127649970075525186568188750778862146662472302985657681929846939803933216913341058499841154926320592485749037725089954299539356652276117342113930918779277425669255324087160032427387315331291294605770776678371842346425813232006195587152215241495769321047145077876137616946319202874005175320910633750174921280143778480460393578942762196932613690027268797846439371058693234742904454570244895416558005280875861921827870800309472264812639211340730008593594969363693423611000796976945975180860470746889362921229209920988006236708736246276907559399794494067502050426266605086020488205698696838127687630087099538574828107448163703372666048141639906889921591446787161399092824776326075359281689842041785066247402033598402271536062034720812289243368961388996319622313250647374274212918024255139545386390736583874595835207454727757603770862122632832839028011333988000657958433366458880070419579731525385570760294005129887533372980185714909334321598515561030701732453619703481035638692606872167623387109122050389375448304247261755718933373654346049465106153011895225817116119877267339557896475003930427085794844082794405906412715428292952580745146534153084770175957988868560654431008075094675398552950893568361542810357437477453724159295136842417951568925945691761627082228832881586158511704908518680737263195904182354045520047948104789547619212065140301475213889240597587251939650860577574371739053298481037180187225031424936046921794979135807231755297835184101488022551789016672154172001485978899236429161909108019539542062111070650984546118375120860479832986513898414491174054708159158205039700535972067947471488006764782995825264126600225942772470708867595569912758602448768178059279858331726735437821964477402728153290881543519947646303098047106339490443392631184860022506105364937570033817464089263361075299998382538785409977301260464353477999168247369317202884436444364744761348988731199968686911317625427512248653414370764616938798165909887186313486970574220441560813280559846592734778863751596461295823401119456064101148358330365822984659534551990333354992801517231305430500340297260526403045158778600933149613908640595264352225910198692974860385366170679214550513176754506286035607191368514938058465274836639592122557541327209697309099848125068452049690573871344083102227930043830680473071140755457342728515954957611613525583258754715348920234659222787055033128933017535211707991855308237232154686866484080283853167268673263065631843399755102306135551919154124144579531372679937999504202765945142897385803493242323247829519716938932771108405957175959573312148038203441157240521378106921755599626451818127562634675576585014256177101450985475900038256894760065777377099776129058115367103188962221549406955938440142841648581917248305496276401033287962237110896477039106834382390623760603625869985330001858272452517709928960111358036636991964587670311627770682995777974618527773366623786703869803191131469293177602027932978187303524760706440996196688694540080505163698205624262613457485883533996527468354045642163513018236566996606033550810965369784922226392648266056798652562278562458158605958713575064813226456793503533017866175140545345632950178975231925342245092325963514418724740307644289944074474521504978072420133932724386195343128925582183029820153613789831878352201535032377470232948559956051977523245399107735563468071885719153578445025617883287901661384549651693703876254493204420066834432829074922638020030480471967652489921252329796722069388130662283687644722560729054555487376563330262486669202677210789740552579420698342845456672126508095438033283049500403368539767629580059926560640572040035624932390796982451391118148260938674359873603945854478589761402980664889228182229210518420044159332838310759816470202148893472548747647171934442496842070469943673723178624655314925485230480308927022508322604218310684179049206721995168315036528833316636740334574172463361896226943782242617504521496669696274423127388428486980434285662257013268422229078003472485117516567209521997322410729665707679470835524876113184605062756497640491377712041048242907848104101402428654705588620946980152770025298788292885256434056394338556075737225962291185634711061152943195979998926337365296621501123065987960104025100453746060551936273946312397016534633416405000938375914925392074697511861082197619785266677410942851177086757831030717712377144410495746893803202002954965289437929346587845094096963499193186124994169553792864124807840257610048232735977042515979578919601000933422179471611421078699374777899757966217220114437632497900704825296828522913229603526803340234144729010186770420144364328302463465455319130275078949975197158953316083085440660010648546655126428883085488073882992453354732750120290214712451829141305732194854620640921589254964568280994242600135095187409249586733814062834555900381075749398261620001411644268983637981608903037576056151235072221625088240155623596345985202274446416306778581004935085760037432053385234925756633780560094356575840473038227803953513176755891791075446317102112874369199259818925336326903359554868652819951022856742389517612637284641552489167447306125472426995654410169921250710429745765682934010950493729335981936597089258551174508031136996564259881648014009072495205189036925419879691553625118872479482219147663069900114343587772193959603207553239847071763080984853693664320083630557204100536177614742949858614283515312245027761101487852874247840077728780539803050185618591869922472291083369644234896634691543071640396027223806259346101052781075245162856063518931980236585080620324258877437489819126908892583091729994625742677304054643588198995581222285713922724092052374871800906469702485611994706715748717967839316264040805947018660522283955056079357549378519035723373650500427998052079080994549454465010018916311317638713235912597917582621609306435046524625602174011459882775168979947816504828239778055421054829575675801885587782333944214573584873966389489102567994742439279847810754725117429501745950430619684629481971909913638001649703648335335580791449699058961631268259169405935785290230744469177022837651547532617387230732689746075626640046284275224243538026005252364864732129865519471761220597312318731582104732656695560460199567379462250328264886076853591113797493616163701554101906756823206812130374853998571922847813756597081581091684450039352575932211321427745506733369064879258325456274992240262080593925009270000082093685298944924052065285341726418959507210762584458898823391080612561264467249204571776693854633371907521145884860802019879589278816550348172103827168096989666780931385370776718782081855339836661407712182421680768745921645049644268472624958000379753942681591480221406919000041629726589212368616778343309678877076299971953519400245857480557879540813229619873960335492827184392200955557026968577805488840442858489127660195149339336411952759690804587294960641702512993612288659580638146339497362512055793258183161672952232332304309055889961754964646436752694664332271093301826050013843491729891781732322767364228087234502149763594368039204593360296521131777664816838681481444736624027618036440599196052309074167045016832830523737144149504846860358172465123344927687323497912842925717922067405973355708175909885461259967032643761032186727037299126712637414935882248312469050835794490225941824492655030747486191743467536876506944010427610883318419325178313249684932645615035454556123398520412994343713505040329652539605120759119749108259914687769085952894714923239280662398014562790691142362608085220058793157794826104417500655696666988167412507754586086843624033225714599662300868066543221097356398443881086245381714306301617253653360609256116459178053121555565431026903548028647112128121745846939741502480583937070500154433393955906332044132674484024482674141853026124170002899911786440121168190766001332887463657208987692372693870620969401849603299128676670796824635159291601744724166226219345801902317920301879447416062132107906897343869687573234767305116569132085037781885619048359492760210757093166848369615125238304100960096601463733347599487295945525275930459313254486322590114101496482432369698863898806991880935304515239260312012751569362539383312775514910058254706889225407104744291997220773120270891854688264164768307278301875985085901598406815737173804281575949302509714282022458276362166996452428564120255666398138444032140502776447637713279057641796356051195544060957541131288267288099640151294711521558982897366758899811724125309160250981678524444636631779460500802596459443158990093407428769678858994827565816440748517542721402045311454841255701030218137583155115161451273472718960084165084839011637396301678996798709491976368321277537941973818454203299208019991545834195707540264232962258340217226842688480096975313838907928543426986649233958424941190049388333353909007142036119572002422137268891236064955505850768123836585658230370175775070995866252524967219874552397094211411771915462721605882768556093018735734221120281053069677060475383756644761920666678863176639657130063205772906959045406388577929633021704995027026286250840373255380944622487431758175328452126325898573284193413947662279370442661310996647113618282310124904108477570926922063667379547686000062958560929093434813859891993516569314031385350103224347140638226808043540927575854029646861239955977169386547602112987953802494526811556273658076468078894005858576886659716065755619301205652722217010676824023825643235025823474676891665357028329779495204394816436322698341951336887437825616925613425763989803556496880979314116768992067862466847566540047161352437570399353657002625126666551541585171333177703465292703623749134925649739085912526821865884051352150795041498296439082007683002264150677249510582853740820927122196682067012649400365627647625751273018064385513027155775708351535806764724524847354588775197008419749004397683149551464093299824762319425156414689065646898285113937395732385559334758523342064152124472183084229443280526698131935808298766599857048113432845112498971559641764208139507507414748938768094365388691159481166905623216831985696611725194046194239023689783380955015774148898520279456482465974867139936599403493096395298258443788081756767527716602545828553383134235579008366905335980110487082731661411320787651110877291292947018573699878664927640021545722105401846248054432408175597848882167735606279014004516505386526067372825440310757503095549834984202433407654403739723434175237633474308346105919701028198927314773062098005827029122633965692288382104600525056580693233980896822857875118181228563581419778084980153135623190354780984835759918280687150703998883456414326264618176405470321771310851187278752997561866108551140885890137967010889547811954911595018280005556536934158849020622951362153563239295723022427901953333200248460560706933527923054124480334954007447866725567764852094145003997547610806449699543041787105614666707528757034518853791856865571407862282020957192189745613264354480342809022284130641251099941007439737407086405815834458901702656344894523100978865391490509195830755381856966907823364034219292345056994526081672002128397528458434380128337387608595074765546726187724267356593267930522653146811470508266402922038458928447930640055870616991433446888678696355660870821977813213362708504893712324671976817202279409197924684651686374886329836184179628174155585873724233843668152354342218143955777877464509379074154681173456601654182947672590392867242283922519698131754815116962182316580449345109977529078762610498885828263085814864256152249044400804863527156004051949301937294268589340289088612151826498675981981534528554668233918292939028426043440626208931756844119166090127470717864639257698418585249953335102959954843972278138394472840289859777857637509670624938881647726193311963655591083052824881777510254386076510148066991035163367452075368347771961770576943589513899748060279141992072197630456068514423973912812790484450797481059839930786599977823091899764842004442334400451105265992207015662397894511901427270755236460519578787938260323392925129363099069550308762212224385080223027025536307289656313839179815322130771883681826309105897196437903778903748098234329108160459650537986925734019293176115371827238786977881171363755991912861342340315133908366803131021074580495561892825323607049605109933781853943467575815323844573134676396763257436757152749081073187795914393339962827787471023667605700953174324580616604606472613260981235233543010001974469176515243145228199886545901573271810243013138752125463053771814660217520934355113405109247907749934057937160599055356731150033635984530249433351142649919650211314132485651496203589612623447773113271802513394357286447141887111533759976084615323080731598448947830429884649010949073550737883784257586118290900313910000865088795357722667969808800552748169651859173371868238471439778016964723119167944379224321715840107061244591096093785974648285154027954284393857816366228892387429731824843518016935670548450690219519537341663971161948787129262428226796447145073977339047257130436675724675481311626182971129705745558221696513067068163916939834877857735858636205523104300418822443880929659788293600225355420477899427612292227138645459591978431708339056602117832455693496626068037860450819426439392977510190451725627787224168651218326090874374482977089306144140457032878064473983762810470031324536857710898846667549430910273215170194239393565433152422840301103574868888823792519849305068389443201719137736468996124185141229162586204702050047496091521680079424767845816116187367428387557468786641736550698403945960724633200392006977827497173329411318869536543535158398805524058051513945132582478748530976055395210999916138213871858893301918663589624058818126531560955893116104932568137452204974487980377214577040239099067220057115153192060241956947752598776376244770762155578700671995113672556572592180699581719018274871372621280267018591695638221637994301030544351203108589045510897890179635508074760235562999842025922987406099436764245178122316973299800107109569578202910545201963764997681956329997296570242885467411872172762615693988357704056294493456280226743084426213065919337478771676403305766150452001131775219336186523735724914932372101510626853512578845620114949758086990549306364796725291486076137318234125001350138748571484989745569539173698337252033351576634088370197096278510520337330043341398577003663114194068049273850377099716984164396911190298512693312276763949928371896050687976801833631042127102718081458718876353475173919610425210394461987040145186989602063187310412168652511793964717236171372561778924726027038384354956708195351960351772950205028051869085938914547424079993928921159599877085606182007236078766461653812196160156719367693111859637831333207712058553345979160622126398197237371084443264508715689481895960321266558101602995995682012706071176722809514364373467432656668804309265014852610972764499547255663776324254722191857157579306100904330787877884482666656892301674529031541694873737657264488906224747062584453593550519232084853982144952429942838479466464228919375755091032542231071374076870324305452050459244407599237666879319445290100456960472070831907031578614907408601351184284069223167419158581287453064720253532917423024038705618296041146485561358367990471592178395840169900030554739629348358368228271406536798463916605207854840824871554635496685487482777191846637145474319249732044132014003110863922491885135743412403852437376754987506198457531819715215011045422566400904602304157680004634311271338839691783094473585389424582263668441914166390522986902500522520730261225761455734724232236647006533728380232454083874320014331649440634608342194621212568903885127116518224348721577130178870429098068618710074656068022356811941414078584406477489550718687419716695152510737003823345433771712372757481449582990539972812255157293479868519892713744697373827835643415283418872539239933196394054202357224060705805616685990965925839887308468290114081266376263058211841749389967201556308040149815944278056245546281192959397511571744542924994963805883824907582079854008171998002545899399123023113325311315050311221215224257855500719403333370669727077250095876006343118850410931989527318209940580687008712758643481029330922010146124767560495740075691496748631718730013456906798570550290138413137115496399689548949085668960850756368560581005417358374699421095839580147598793437740215091632611069811840892479706415589772407156195087899357950995752239630226989603598669067657882992209036349127047571308976686118979500243412100384029263286836793114028128314136731464114875480269782904067694955873130707180737602597942373941092591773601642192772367551824112611531586856308673968190545474379646828212731603128174103177554080328976706841521316334832523370819624016246186265152878290754055127465111954922575463811191238390958730509971542829629211243137861558139319772657034572000912147560455428878211732977394557500999094445760769374568373836887016863254683033558194336945965678826592616863337539138751321827084153648928110082032345354306126947270693820372238338089781097321925979605474951526812573728852645847252053066625283099317473231628086887663333006508577092636080884559027466840772339633828998214514042829095132255196011928632607614902706440841938411129197372197108116105155768743574597522764896539831342207669759303752832697902604857713926488772365875970038434831832207125645805114583104199651173737032960336146347424208547465606324596168609016454164890382128124816110445574451019270356216278856913351650271849726218973465036459179271956456892394078918579866178451590899669907969752001417520427079884207160352591347475119553534855448307824888189562621046369350810660035740570940869089687424249303922529487058847481844260961503066176148055498750453339902976571870386333492354854937286704099028018753795607612016679607478188487365654625289685482155735603996844571745531769358852953511007646058787433080641062622208962323296029009725809617949636775176705680263513335589552155167864240293355091326905139765704891499258152540789047638257308899245288150268973042561902112030047665572030503861216640842029882379648152004326577088134725276682565875630613770232975103685779901155825856504111338616753313459428908548457317017286662215809640663614288507172386212496622444884955723341143290363206062738576475718554203683463372164423220598481887934884551413228306482719804244408872897593608121435754576688418872247421019967726947626127544469648337629273202061660268576808297415644334199054099727242436219087161431624295086303757884081128138683547641273657734069967241581417828466109507263698037277426785995815331480529723692250932732933154483585764053448899600295526319607137364057986873245940717553941095742151112854985104619134044831629172649592195537238217186986727708173162821230666782936837726120595294052321533211022506167437181259710146848549388183215368644227743392719915881592813402581469082843128782685990218061490271622398332637200857872239707886794210293993366402509297585551716848795126247067265073037488522581487695508650539916507159566565582341234245233746725859775193342078338302461533370120500075869357688318184664854104428517410362101828103481669232925314062215607910763553650065170095197867544780923506172472240809681995737704836346373874629472007938814753818319940442381431093492798007825859874147049264045332444584904848507515657663127136113551957916668448860375203607085406266878693845601176881532378605863477217508182563361105041714023695267746954304038586292338319104589260381939346620625681659822347509808510907085984691355539830157117112478410079144858523452111608077554440989186866458749282588376722899715296162523162569115642519264219618717291394904485493973985412347297507759721290808463788423857673118904441988879603558926684996950606277750307347681251011876621769518365389893794258623828270640890119718098458911402875442196741988213853311762318082485111295376000742634179987524919178763317570019929722571618860683715611992788069129654633664113384436895674242230067442423088651069287369071446016374104008332504488744631418049647417990688201582037152700950699610348361047951889015367064154007781761856241217798976831823279608087708693557664032615956683376450871981131357446975752617987348321477073846045274609742216673552868906562934270810209409184769840705540795445504976009949219325445298333234369765739813985196368096814413006849075713135944733579310391822739735150747479081177320990454442829525134315018710255644919661042822314663022177515971817972847995948680239762141672044960495970905374503761404215512597944541255869073039909022894042620358941062078578837988948044817959980841237805880866281979787036351919112243845632214940062556838426844223742220455743182213022736553136682489488824304038876880504535934594403055236505962483079185943205613423095765092688341399679241050126056114361266181847633613350527336545124562144103657163192127918416535861486966220531135995676819962983150545938020724307179014951383684839901751436062406876836158376889341166466533928269385823703786865221410611874484417319309230715979713866412491227388769547118214643304369425544800722930164070609800591991846528590455947012480046167847090011656299143330203585701938716176771503984758646016124840680091305875625375410950562962766251685812592558268057857117430913202699622866010760168758844379405841197197005894556729811367576175506984390622627962268342647633706893045648747673511303651353067244623648604004796068847593697648885877087797297396757680531280401794700989534432313825003758980053624921601587416278163726210413683844170362446140808567185624573783348028965434460283119796926796515444736386855434859217936322252827007444213454072170644238875074346952251824276115533575762746689200137569676699280392595201408167425412931260381787091110363181699677276764555197446681859328637470748182608170467209385355929596919117975316148287846295603968069078247662460686260624023885863530055654910006512474229845141474768609989986781070619940889674204323196314204267205951589968322080370940464586952398772127369064498596628018730704087286427026097597466304459479263423694975799726762370189141262323178829401180264566831496342128773007621251788378067381444775090100655317259577449127469918071199700000498313381016392246062899988042863875891270267407495148972481193467050029503507273542917289012272174848846278570360033420002621079634725673823114232400627022796989292999505816747186841549516115499672480505997720354159483373218537656689266269742651687956316035825129176670173451081943419481669470614559266296849538798039209288805894009201187286337035656200681595454347412596005119087201973883491258825419474034003935123033989604299010449490816101630973752234082863241444193469015611883073084084250859300626064305088176347735306751466196404224221503791626049426482361481407212211708622394107214376417397391471520333266345428620585378102470010991611550785912375675466806236728572430842930767400880186615187802855448849998896015215626078738812029538839273986413049300343474995796407122798138894550351258971292379816997012416113265809832991097280906370037442828725798146390136203894938322809723524515406250078046529741877592521557758420565808832981703757938547756353553347954060872335744146264964920162651086339119765733845983019852638776379376852054000919338236669381804464381020218228480311526224846285494439363578809239752591900218472227626505294709076721060907306628807108296716477681636948251057916902601464577121723582121074668098875420688608473538955167074583702326339145081193758414801557354551486128019350972134607567861857128700553102711994656656215972691364645386513016618996839162403489826374634522750778709801657982667567495153432271282076994945123137325554360613682796291513115584128593747381847363760620227698826511617988428572442092107783603243866216003803864617611099568797557697798767651920813694148791403853689575527335455751645782738077084435072528131196627636648345106365862900872955811679318611811851684986757231820532846692644896174956467103438796614137223498899679275153709223352489163709617184911180444942836273392290156119524644656021911956755140282515407739048280709303608234909161696539336834417129484614664610429193440833593629123086334694585562412805221705070790599971084258081895115759486697128553116629982299195325385746246288532213173420631208912791249795356980725371870008713095482112171516269046465263208966502553008427767880490330349690858929868883688868611061681162336770161675805291358161835916987093735202679068049373145738798215618667220669693918794918230063047462942532582851940692596952032288006890957759059831515029240863128799832464103572434200001064892559944000796324815780998670394894796719077330737422408875537588076118988264384945266245869289676003316139755308836944057874233848067224627863932277691753360325000455090796773517624761310839776381830138387850164910374152061897381092056459044019199956889679908550162445627971902576477911846431255930503023215053427065936571141793873674845933552297283263282195294068584587831691021574977242795862508597145077783748256944649504528975798713323111334074600793766515529329677706117224283830649478576485502858077717795600644852084059800273282993416545332433294499194192530702285896958831656036692831445056095678697957564510945577283107202709971951527116559480556380941256947658049217105094227735782233061397307764056785102756688394922468741765830789607117959567681763231624979143128383776282621890364738343136914996764179781894632230347891038949225273789375778306338449031978335726927699392289577500338957362590349863256562603711447178649649818537841930827864527149488790379101637925730769922565100974102317339922785655629889970956215761799085338493399859340406308873569573787909066862949725525462925345114492284436932389767294884816345641205897660867125898858597941056582013660341972296226282983653125720798395499680088145598324769113454225937942717122667222035393164565773614582363853102236570458735800572459356140625561670947770986705853149476589926265329993899905501675445371713112542621241124949851497146325297922002824963420139773041189183986951972915865098166275355921120522206578096431138420990961210863779908731635936975748448344934083386160748312067487929284606640989634245227676834256240830912822293334747538435702377173923069645495530675209135729818849455410052717958354207466919995993218977279788931749256148767456164365199714588777591812967770675640151831047708018606639304681964711402119548770751137670723804177885205337420292640010452315269932030336592350166026004518788156149089258327945009508740742957594492035466418646395727275878785239518467718742527951945506863835416165558607240005051813752564550880077601907245118756998318870781320478176845791383197350966296867297944760682161483568368704876116427793319016914613393312151463910573483289888522291580439118698982563166900672526386279641397248229440536729959367081871005542781604652136271444191195646157526653736545650965112847698734326976211169897801657144001992164682983504952405267909300907889084264734048180859870331384270266555337339248094555095402083759826652514790396747041006001734398057161220516148960521289799884496238906657148358615502173625349267752304431156790799354976729365378427544992686277510256696992851696562617113050562492890719793963653851602334985026352236718055219733497809947380208880995994184032436234278353162469320044360471716122812587266714114851362186966380766984148809133929263192000345615305874430142068111404768500951263914894863987994676367566500229615143173817980712249504574871851333587931773724211106529153663784855975153377977627557844954468010070555903177790747317898259571502798154162588956601174776170989746386633542225535271908474685104646748960647537139652943854589574348318637144574069224640067829672459847192847172980083384802867403611903214344162937324246297802175237380075714322118821163274920094280823897192638258468016881537671764276378757518165460806762587758916583612169653623704247620609205594299741794052746342238815311191699201768376663821602873575770551646870008048470642983105959512302860105273767923710755706207180657348481938499578188438095726580944446183717100306938986534675405979211658790869655474299761368621074833703386813019072857876892360221084340381519571561895517385452857884368042395995196665788974762775623402354695262186524375835597035105607301325022130123138952105256784146702172724725438552900447855989391648662038870684126197894258331698035179867832234708787040789537547094929333877376292367631615247176562531290396575826898114955101164437034421125199027179213477373591187805361477985080484161982619453713013851195914116932302198463807773817448682073490439459403845964042364171493193558926300462287139898835080431752806010632185754335269224150648813761497153088263551139267131554867051939026893847211952869116595567804913658552691274677444482378260646215355668462498138487585774022009374752949684686205555243117857623167770635482997968459546973418709686273007437633782764177471519320582243994188793118383008481632115757942225791817982015522248765496302217404439524215819577597498435243377871246194998808383186720917000792443880925565751557188090467302469343712627564758191684448831900230527370018260878763500060415456415466169551225419379417253036336472138913914870285897577456665814650706013588549242003217527598495002734834675328153044850783878321069072015834298998201984569021379758127418744181935509147038784352259750282538320086252248498910961837922139757741268132025368014144568942727865668695864794002967571068700007266567887877601851762233991203911852925192373353532007991062125924497177260883759519437947747147627744485017240240322628551993431304462253486658990050116945393773384687169285717580837804651727330144393240735847577489941777696438531029713188505115115794747312973091845957528418447346168993866488101836755371965477930463841734696160905629735625963737892508495645883005976786694279681156853143927686622934624163234235326421894748647242101310864478413061354273352746601473559105956381421081045887708437028113321436615209779837716599117325028229230607323205157706428638533118064581204765639015983479945605334307677477148734179571603121800804417132773672227025850230174372021104570042038050148246772970008173190466478728527579519056331537612316546137240781219881216136449847448558910110662184490338483855925522971983652283456933225802077274687112107891655214287717975354500773628064921168113320606373882976253494717300044979625948983013013503608185652969090200325162708991627263245295238781841406332580672903048166354708553743196472054287061236447219771564632238714120826760348480750577228443707546123726763322040487057083175247723806358409077100973728071808211735678071196875035593612632570382729555096258188655412594685127161556264879971856460001418062762487136102947539747138810909980033216386035448574942860997593007586563173078903677919625473632611709755062199536046778912454024631649315720125805864840581373078864810723882206682912613084634010503997070000811865908933762106135116681431358726887731921545458371729458302228269939894962573776981669587682587126073679451399247522667291915003407516956500202982838991115220882986062315397202173037209544458935837076968526720578118502776133043501934485675558475050409351338873510330421451249469737499687509419723414213241669124986160774506119125232456864020765007100020206674066460488292904407645927377544387614615568005916665440288315033555680002975845016423457889940180802251914989389479476762913447407784840672681219942904363672851040143507308826026277400655955484364940261678021829769604539318155353987026203990080964111571194470470959751876102679155464066410815048237720715105564438432145777743197226526410937717057618598995307751688512636034295579734956970059088780237302237334206570750956007515487025515682077704846085212125973912014120437691903593637104468459431704940025106274618300247179853775527386000741400242991803167360220585169037388648627249154817816299610134250411036464584630071471296591860518237849775254432705315985542112360715655297316220187713937516863648115095779448283017935906875791801075500937771241177842010158854915369122652252596786757711777586774346241640327533597929955640148397049600939214682212466913204910306880086263970876860669085631616247134453551775929253206090048484864293470196412339050410323159657901380031450136162087024932648037768546524868222868996034212379355004324089754735843988636254023523940841364804946917163556374989247492031222730999907444349349400929093966455988657171657661680963123021096453323033126276418456527410366919556540896722407981753760327185092739154722589183636000069606692766089063304451762935269653535524508439020989744745695700928663999229950735579820397331521044020643901931065976433834481897717998919608424199049317984702671791634708299839152317422472119171380234153760724122292382896435816886444535748215111590078794684217072509460207546057738916876035720343851251218652897245546489614999711171372014825451271378362332488543680227707365506544661065379789992891496046231627608683713209759762256856039356743417493151518306825203308970584570886285727074820050503657138209388461344403454951434249489192974369728577634436018261018891249143460771047725420868618707210300151296580097146412689595367448497796298999821090560877545525715435731985700557630447099019698408854185170788238583039758980615322460501977635789301485589565448607491903428804855451849282645388956874682103749057296379358524225245032492810320818822522279337131495276722475359593774479227373191764406799189158213230212230745986697415484584094777424163292818938779846496425573278822259133977913110748406555958771452734993651189792548871888845690537928566496699661180790348236206498165064267184956221350751171820672428267403435471717387777174393724990444981640536162520531075396203366595117675302632204069650745264572942517163182529483854169215333386010686753673205363272001149390028185727815424755169684454599750447288587558745908730295086759903202423336468162911281200541504562649463477019922068791017359433530403585816331250391285759019881162189127433969675820236727041419750412185266670677615663405493289850795962131427108998750441556318292036627097271773132749997951378354423867436017695923539181582672709250753611711882510420262740245657608075762465804477980908604062637458348804257338563572612557686812153014178902883719763257060585050294268895863876356509374707623715149560334548583937150243200336243241306468127046390283352312009277561108974813184614966981284733224909327558585090112996884042333963457363966121302451836959007073823621683113510051202600978747597063896896108673223541799232844649350311295470467508560547727317072432752481543464813678121105899285497415782080754553192697454536485469168780994060088300552143169362825075148196151638923674231591244882517617992672415495559054502660319428678447217218807961945380883978538988307118803145717382483250030962657292065418856604126597949012808254541868157535951402741257075309150334707084743854544825075491680027107996628281284242588328513558363241287123297287720622995961448660176865753856326877557203958074894419850961086131906197569807818824236556225283058044747669656192904289145705570937863663540429031144816259401509628850774814124550877943789873446206265535953583490285403341472478449696526160251359673564144917250636019725789457535066643683258650107169619962496320104058185614920249171793511676694954428525054402060584935044232115398313492016132665178516419552374637851505204916237181536958286694194341649299816505405813073485669780667303377299050550281865336026528293940395904146536823533855357482091580900818860180048881019405502823300967866337110999703394204585696172656923915183679489050981147759891698545271433335492515231571091747439088529209188739043800090191506264130537996350341073573120751504755374969787947798784619029856585647719203125358671195762496566330335647962008306467501696489454459498352613345725570131628620356645264130405543303736881383438489727064321812756840226193882801954301826493537975670257062352300088165076729568467047622651768720744093830485029953972979388642139186400218954319819886020888291162006733804262790258061548520290425360383377604364479326578932868279814125423570548959251711231016951974086071534835333384245132426018142286376067388131053244720909291522360977620790863635561819098797434181788304839567787239065008980974253305510915262177346689671400361805773583801072774472684449864577239205971368992189749398599728678587514224546983620812065003355498373352725308809446314878607405260263049321902836903863754302418767823232393260551288570071812298615456162857986505489490970447176696777672355604750180532852370379551532064255910033629418716480432640462801943696263795404659788463524302717121621413504498636165711194870802447415501111805771622600922412009438141967047892149148623914687177546336826453408141183818067013133909882600038794273495713099048671906404156557037078919882171640484163583517644457260995072200857159304111719427611751299468620859101124436592095755643330985755355535100011681397191084107091922920375148742056927528304029555376248506522137952809787065626134159846621263440833376460738666404296766845203825056415897153115255207205020655179022018863187442795404268120223993884762858641909418858174441609008042820736990333248467251574858584779730864415392579352395319843265199296418744377810883766803890524325369711015009274903786333642645723228281414739531620232366054398376088654777015581581827776604297384466731283098893897206327745235858649001132421378278908426025165435554730435146179815997340537555178256421488485907857557572505727751570540992870074179501535846549885422955765987553024715846838134401883951223042035483295650567001247107222633713853968000594153461992929863520342604859540525840333419739495544850656034807238968819293005280460743960693224902537819414196931877969337756164487446486577166586849908910755225404544741498812513689283866365287381464601259492222256809445761823001211239942497160156196052212854787633721540411670105634427765505045846953071459429523142898696879524690805953719819108858596373657920937811534335104439510886647450416068518364411312803599068136523113858550735197927706612448351975100724247505426237610194986538428411428708548689419203738844761488084873308695531457367910654865099132729196350725657638258221734714186032115618475161645411358096262479554016723882567971177989546119674327633020901986449411483056878498652807081124446942338880411396152369955408627383388796105809010093671771919029524179763631275317273194806941144118326345786539262568931445944622625277296672507593466111397672781308269070775535763822599646720633225853036122581760128022712158796388486671026882268839306926313719132675253917687011745204241196704887575389743429041502208309245186321181152526072032237676501259554509386412361536563754270035432026898949619058597952388806293091059230443972286065781853044095151775499619768283555179102880410311336153556667373972612931960959777934312703103004694028240789933145743539372440119798987406371684525516338671278738244455074585780212629370298925133793560795378714736682983055555889992351930052367556350757430530272339529860818229043941533836398154291302660148177251048529123237712308177880503940094703450925407175243055070380561769326766664926060385587792571541856209062266838297102466891696668996674797165131699801388434891688691935204865684802029310981014411023049530285150610583088869516962525449705165512191297049584693410648497052532878516702767834857741112045221254354722699447161107464133400761642725867159822184077835362410333161998044342854157396767859356824314625562216392269111869183618442527333050201742055001880445669444046144580684478116880674107999166722968115532264433397818391166039854247551601948014886898488316267199762081904967425149344793630442178667287815425823622982995395966699447777097204017709745497070659677303206597533019002396423673661517003473210845955656169845431421178273338722058698040689712360147914090404079562651429399519058408044520284170536300078283165493942784669040386930707576518299166497937885516703816923944807954364723107575530527768077763803497837693387782577509442366748156473277695810421809009940940608559358662191236543960861017473584668313775983738364300909810098421691919139968104396283978473582751635280852864623114521208642521421573573034480320002967394493174191837579589277916312685983283793540147908415542377703294802318877828936346713989675076851093630583070443767153265075389753467838780447045465847489843297359583606444232993445143069950906406209501845915014363839833366731991282494265706487294621961074001417746748020342468016456209977435060152375488921752871759279313639801575622714390494347065919633103870851577087369344310785060924497855257293292348706917875276636714298176553182803653498403893817452111877626778517758441851726467604722453962272408470140039404230330069299072902365519946540832230377715717542789739006890237671036232133322350512143494225771962798205203251662529645573007473452684366340117300118400639441524718797917472444288850781529525760043230227440444840686453850538392478770031402715149519927392211871037626718586611634942556353391043368184073628435347179264881439048000099146011672736398500968253726701688535854340563452728831136554745532398468394192153750287786259876257621646266783465045197805503838507662414036044051450812196230854464006362519537084933598279661065800814251166978764230828570550729847351922150066943624495378131141567716336512482457012677030478974223388659197644789982998524477965427313565755367107528499211090873019524550371197083722216153602880866172631931850188504433795411765167120637234431799885596573672663447421233297268429704825553334226662187867396746262688089645039551848990318542080680712395170550782918319232476994285994248910781060887286367068947067533394339479756507125029798812573518605990025447144255680794176394104699699628647043569294109296132866553869157473988176257826296371724679095838028517066504674217704505726673847775340127497570504621088049867443364095430134294443271687973744844292847121893531030807231542408684374741711415566278991491538761867426848456030815571599705898724059635662119968557500390656132247045028005176042324242580037681692288324879764854474491634968695516900442299184528756779353843095955326572774563180346119417423848513238681408513238847297965120622850393122636724329068954092215758637676422000532018103823166807305235395346601806440231774506741675239431657229951633242331645605588692301418372085818706878185898181607996535049412606553106052110821902118179618552208598426145978096526032935476503843843846350337625001963516396979034243289627683980546808377054760766617580998860678173151873090048824214413283156240022460114145806544640768025757461577908026677650753617359960780952731482934161178885270437962836396495952043546494858990369104957729351232220636705697852622301261497217337507110819953259859677916003372501395692392138076048097822701279942928052311065128991995915544122649084006796009674490018598583759513917188909788111574250479792378079612647068192602607186868473859707642431042043354456613876603840156059641736590863387774439950106643627590413801975621683458977231070146515114046533297036098788804193591050561558336610935519292187415492913628822546453062939487738929580570840760772511113038889018467585711335610089936433376208595955581059413500781048296365313483274516789929987656867997969258410076103139081416326529880090946935285546978969224722412325723023191162252980448418593343126264344184496487472409421331849934813956459673388970840443648397961508438068050354292592668996372916747330443509174553177881975439950452353380018459212223648406292835732071859223975401537606797873633897207534875476092192901908038642741757819640310726768579727212821470981973928364222183017987102858144712656098123132941311308748518132120296579012888332839400668973322313892863736208410447701809302955187610422321079468404190405963632229468014648495094742915583843260619096628235230489104105213227929145363747342388493698361262720038793627289597755982050223402521926137161801813707823372572078052560509210615751336994107418536025726154595759211754649858718741493903901088232451685155399333435325737242404532524990967081633492126788458844604150730462880846380161323509863230023937177871557826954672887475569805093600351849582515274885516076214465951289268831267964271614505848855632073253806793060382357105168502063395106442783460895937117979741794301249299745579420490285172465179940144878815475532564801276575749617222102253964222831185956825945949875302365627926832965082220025929805320066885559625641682295456619437877959079130594928580040370366603147489848634870324719734557680975550873748455195488409242059247596888223691125933146802721713094512954301592456754592963587260114702547605328809822094238362849407574676959510688865274362722544349247858904021066015887842177056715501169285668315008183545785412394181063999030311891290816306485792008771589412592673584724053156921673061376324576685942786969702772897801891705977479967348313793427864438508386593760881885313761721083989217359002215954593104986087304595674458295871340783023418005996564916744466927523727143058726079775296884206654295821289533696401586750765997344587499705928496555706441049065964258776090506415722540577837918766118177777147837908714967674489772439070890231152368748335779098727036569657344503775037159715754881114254261474789618676220914108754946739515905595287945363846784280647799802682227331086994077031599666566945560292179014169514552959578385603711379923585804100848721684152393664015739630106454383805844158601870925659352607677831990659312319352196275329545269836121584635932408465843832170759746098529027438029153451684695935383524061382238398588392935685369956911171250026478715508584579141402423089673634669034752654248425387409362968752493765672007537149908254435481535723658694648672416966336490407958923172913360897599111006161329579209850241500696133592159056186321226482919966144801771339329897477431317343826265459146397320125233616130903236024769138752111064202652533663945853497714269088210521205427714355422582615121287468911086753578521165453691243184826670046943116094349507619600518301824774665217368829204234306691130980784563810995098281429450815652972855531338393345295255125276974399735391579187509344489314637751648311357689620910317808916161279517340275722196971520789724453700462148689924824481897890952196558124649683911632725166062361234147525297662152251968046290923905523996219285888044594521450265553618008515352301119584752804478539549546380813211502145406278143736002833288517084437748756876072909796733929340055622470266436283431262484680956582798217502882876148031270432944578117817603662793318635984731266203792145102407148750098463364412554277920853109322546970264809385597668494339229435514333241444929569047119492754921690169898292192037231788514620828488245876921354521168973811326451427607776357772391388510930218652252158137189097783149127207149397512323430750907173124278889870573823948908839409419334316233215498833966754508478977609164646530743980752142781153454128805076517793068634962677400461517783439551473499000435132013586648577071990045404005995333006349762930647988718146901540011272040864778932948620753276027620024841071114047812249826767246974296856250014146531424467495927527760046827054158709401233485977312742057528579288175831675505237642876086622006335725856562736184470551744260251520630597969520785094650947648169562857795928971554383879191627519828021625461417843755007946212002402949106446256732478317406611747133584074674141240223221452232237011048353793474328477507281223570583644935440527932094076369272786695402297950214034516645040715080110329978616525993000785618589471535823773099103862293507851145123385290594561440837759377597484441879458802885947714500824791045754032211634911091845774968940340611624531133372112180332163927181107691042842692643367020077159749344135698057105345913316018705659613133545518284750174229731742927475736330495722045785369393672273192643513282480849339147064245303000407435207004984553352712980345972176196916107550580257252255038227275057895923959236106563901338600767217683974637147600553968187010003162131838661798095977210908866331567782214485423711232568437688918216694820305966509985695332057935152846804505194692831194939692616335826788889055345663126536841644989005728760011017638866348803654425151112462400092967056696045954515544420506575473112801332328324873658488928402550153527623162375948610058048293083229354527080357697742469533511280880997179514588034342386933794110203564991520058167755842079403117531380755259160269726992187669767154112976844685828651340912964689664770103723879644101348602256275367252002490719545503564644420456933615016069512777942923290010764463638594184458415383727389274807899173760886023312143136814750111436622489381079106527838632458979843422605691543969834687980903133161574623603149071730298793952483889771151824611192053810195399338820813129045188042352856069518941512199297114467257240604261502238437134979409374900170410851257792742460165276579069603817761081623928927354372768035276993916633396798348988837233535461322163954531667532102159930503200825060774600537700989193756389334054959888615626239010773248542736493583277242050997906870470212779695599311265414245649275581934670647567182520093560483000744972363836123663792921684402679260332731827318201911684498851463374675565997734571561682371961432468731021014082139724992980017077775321814076344475091590031495563856007135703492662676457377241354435706499516050499255731601267414339409701685272667104238213210845586834094639871866162422321946064769942482114679535034272531613665328701734905707892765509714555448396396535979663413369556744756923666652903247122398988652514309964821499500112227057340700826300904205992186038352094262418123692200000788000171728385045566586949509223117192114796313253779682649027394822469021162784115855952179325551667940694583232979710261700743897943930181424324687567720109661429556349195275431953130745481890050739429825397587445400146090442181518007229321251965751104595700234692398618611762062135638504589271891049717373445892136336186621060696596696456609918329841147509594921692636643275355521740272818625794328089338984016016194486683947180146132451285719959996378753142941541285700749771198686009347519778599162881345118380436578159971617953207314843307677933661578078431213698538127856269017163745107963847083141949977626409832677492523990899933318554791768090615005628475501713916546443983427608350624781977370025521669554235210431230155370294321014826221581584267400124581744784060092456793412993130304382762537094662766797474512127381864301448437809366174294136415468612406146971395391063993538455787394390238357615799186390836723317691946418876647228870031418284432356657262004285581240939253633154124851144209397833930830404243400087496844698498332385037223440599071989642294369044944848324578972996878890332688182573116121902911425177048514871783839826286174381853450151963746096480742264379152978399040920980214332734304729094773054158562257768726917123669053699596116913977961787663957446516552152949144313666978249567667718991300362329032709969933681230771220627405922031318681657403873183797306184503417868864391772773082570177791574324547235596886493319364411307227622672659594140452886413431844344030083012784355757855936569585926907007063124367997090564118730375281517937623334022783954801973073320145049241373677048827085446649619375355630721727487347388703417872779955358704762988910252984422194196635722158099596229358847435298008841725272302608763760621985138112734003509805754428809050642724127223497849033473935824723215209236993364581930837699256428253298903100301927395858750599466295730858381160560931251409693152592013870354843327788482657981978073957033844208596367340399359654143513315426584565279736520788655539429124976328505497866775455910060056340258291461779781539760740001041857700421474065763987468380027500497457761150887217212777090990081534664172690549836635254828650277761407858060693428111197453889525390688305423962857168390509898122172965596631215953280134575035776093437682991461333171728947402547555669679430794376330079383426865956764970584960946324335741966991246522496375437789522194999421621078084399606733649049476008401408491791403087779325657762747814532331554317781449709097208996621953447228988111593822726779775812925148233938817850930689375028149433030927348680430551632456921467893736697333745759078842413979342831433964612070755815625526059144953361293243405364229051118046940698560055473763048570149802830474672049575821808075500791788632183317808952449738854959846571212422037765516648060438824845852304953658933777191737208861860521334421786948157757451224362061682204258063795511447825121180538219285885488769367255124515292862632487209160074351871976893810348774159142954153124148038929839587765345735468743719839368411703183754345726616327527634089354374207290207715626250742227606891368080860755892934420216452847132189388238829623817436403561012392730674555507251816208862014169361626317250723722287677571656278881825686007238006888850924795333363588361556560467723575579349897419991472165515606630856494704454071691197471068008857284515749410188314827286667857676912358976862662096962966841633689345663009386362484606979949457367216174638516426269442620483351665922705687484562195129276410352810719177486536260331914353804408149561183256135865051833139747319356065661829867134154255481066374404547250020523056828589280184748403621278709050466427868268021122513751609475495880823558963004642702837027562993790633297620620160776627922335931262651603653368006542949252049324208876997032353892148144249553773869235470232563921414441029280583005855748103980546895356852972663039687448521366857262293146944888911121430900101760573911984771630902395250385870638794059355427083154541684024721085909015369006661911184432793999509790284824943472512168797667006387563987569351333367963870885945771553026273361506957577108674660961176762278382083270432711040755370004079528813975232260511009471160191621559710578729657156976984821963706982529681313285456391575265905300642521901596552398668728389026318220907163111127295870286212534672692414032843735827013245223846360204675020929199073439527192297662058731782197541882323945461052355589228679102595984404923234257141439221443409440010299899977776716284350403676012497385207933907589883400362897612828778330924315370049391450647063359500065571533101961256987722954392712134702227829314526423904274055577617788546702403340400966139604091697254983245737278034772436432841321092262117449176985444024082939205855169295650341996580269311386328180478600955145476235524968591884108884999458569745956715407135917872522494816714139449779872662970115480745210207995502059637190004632341672938682090387066683974509223521630740403738701279441601256142001774863898898481294617482679013451772957294640829599180164118263026278982911862624498640503072656315074656147033959226959515241037684468937028537482214641175769199198626980840550507872508380133248990705668492465301727110372564672440278578777876146146827695837298549026989555623292341836260330965715755053412999350699098375844685326798982836955300438832106736050216089815106854290122978340384443010141147597981784731380488180048935507921846225082268404596084928387548687093270871516793100759536496854872914541375980175702347027744857218444164288822835782506477644331156339699155322898368400470448079151780849037199848126617031405226634477074354183855811415364869485324251475425633623685096126256454479133908082345255969228263309186274723196112780979979497105282838235757365665103566848839759663550687475860617503050088076851148065694061675396937650799057191320546741561384993409134344148609794615067369363037617451249398918308718567096627642255404444458792652311959709544905167639149289440512538936962694538988476465365264768549620833855069609987756081506918429808684072361835366340006896537816708738172565158749563688714608068681112527566031245191050222105051908535366853533386122483002770380221038646335492579997725492535226896016615251517622208345283279883038197203240126342972564220191044177492875082987899359029201554461961459550229633503558917356382764224624400637001919539318266446154006938243673321912724476957198550352819101219956842500784536976438454266302040904419819753074692863949725271759060669107249357131287964064128415549977891849650933628137968280659254122061505534926035077267933496504253503631551276358500350886733334441046832642600804472894807423225448509378453097500500277974233162487000510745367775382165078949057032010565193028589976819760141414511994569821499743388876976262448665508958055670565425700155088149870832152163725796834449994535258924868813607648071741362275471551983727006861987764349556544995194501048903731683140204394106104014430468708092553975571549142231555349053675444310060429216068183492177732245981896851292046072400195152128925340115910222984368699844709663263271652072631234317830183868352873297922065805590227489070350959670904754847237741628227860880395057412141196833366941679788267559146634724711456231417535825783986740007667707665353859245109250167946157184295978652101773140332724749196077432308019263085289168843638128438221130885175378621536489625274016315741664893572635604376774269089594758129807929323291906946187182572084251080599461342554479001586044103450711801753181853843420019167295007294813438458634149583895964217206795002016098910733680544661565969550429404994605802245732182817333399142751652895280707236986330489824558383952831643892940238560319385429064053219229640821244294518612746006188427909956116471465149896623725032955938165067536474308052328421683903141354790604247447281306118934218700660208333576503782616606745752320250564915734645653376784322746525907269891819191503046653768932105238306746261505349767064408567416169687490166143653546921166399544083469026949720660081418194359654328919421561937602406532204458790496126885480700164459461053357728351572188637051315975614097691256597948316088891740364238323092203402867487193842196283191612951697430535255399185541915799979974225127307873287943304021109349782951115813775882672892601238307108694789947129369480882741144562734678387142028641466429525922344972963924987415972364915035406127032200594738856029886876278891558786656855512231744488396828550940996054730117497005507612672413597617903662525214615548897976163889459413551662331690322719520244318537761837081160911309116641756033943335400582167974902532269392559463107028599906140461637177241173121262114849927987113148172828098346162886204479945256713996369127409714707103471570103727746415510326340678464785506613566735427462458606837332410697994037147832679973441290432021501009648828049032335918483769440565129681149356232200587553418163438808494920912072159846357213224834819534211456091016703877481115297244108358243608773064001602386234694565398827229517243137697324173168071934367574407958051445624525621381422056593210043540548740895408259360347767963819261820806999000571706699762957599939469604520900655277406511862666526903269025877157951372137110161374448669736027566626195705200013137656562461576681061655258829579339853263635289518743999047113171171721437852226408759929877107653802756138753468810810773649861112608461770520320177951021931352491409091102290434001401487948799424876286606075550900723113353428112785364793410974419558735970580679315965593462719401546465179092588993394298476176916183167699943921621046600867600333431263667417764868886037929897759909125207805387495857140670415710931310419634780174757928171577719884061664904042946077819909868389278821000979086044146392189394070296830144034015526855734021759224850973374369634547841493533078869601827745936354600779097274747120594995694396206747570484841252084016836589621668621822224564149605378347545289700884693658575184568301635276463734532019340520754896297831664976332491537831159911653824526589273520515709511866952852415188054981636559109783376686731094316718105141006126185438490053550451173446495237117834438517834256712814453489499046176650091861777601485095278332221537676644573181749474460972148070309306383111142541577404124019523607031190723710696203734231734069132481289680177390755170419584986802811311262291252444295396439543220706769713120112790023592394190716026927052871645192089157416361455150155972708086201040769895410264786171330492898010743897949012282666812368851668786197305080678159578699534954214174008690655622519870730148106606592054603978579046898312003686475505278097303065124323259192589625274213093252185918663682874413460357486362045539150463150915110543920384530335400353712530045949107127792316692193747571155481088311914431777942340875361909979615832587915793612939064372113244835602379213885851653202321523069602594651712695523041129316859088726615783783558961846742947323695763605828713867901138835299424537573107224693291266927057691560810786897150643194381676034385319937722740882774284997459058946676050085112807112869843138339932427050402121186784531881450285562652927190920000077455916941627655641258882876645812403275259766510937486221531225966724661870166453238704057411956599445629048867444652397260650824319416644881765394045556484904397301959749430115142845875236897385391831797812357623495509298126196335143363687078075505586988136460222355148716770035298613060272098524041240214279231316436862743498285410993546366935383085527237326965408215848434268150314604781698571013364060702620182249796392709397316903877409161036284045534802440354826361449684860471290744082698163324254580695370767735029414061814245989627352642784517847363451175858751089171713330006670251926237156634894895097458792303898900365039328623324304882768561404191286830278754194985769063127256703317913699481190159644407288940784997300642726677472367042202578724721013299085795347934813229678202825865055461942111895412343593959640279921010990126515749193498917608150930172109151874262134565187858248188098789710902394061840656199353943866808299889083525950985083165073683723933085619632170813372227796405868213094151256226811386587465463903063458916652470369511755249921401446068227834325317674749810417217947319111919779630222488776437967197571806521414753679965643667037829476287814621697491832954833189613349776168811544416110010564588912201287544488670506843036544612860525821950872500039564703016537955889187864456997127806667970036941126572498910738814258986260542461580128823624833915677374164329724201834791875171443337520060184770500739533237875362669268757890705361425574539758820517037164626415822691611516530272963089147956073753220003563410363493362835153382847287803227288659457124599044684245905497214514996209665151831872826338511226767088075481475061167316430527939146311454656954336329130740341539767334144404533943280187807429146088048805938464327101197487699039058936449094697634726962129020736951734511243315828321964386312906018418765014300746206662236983122066326939141841461311913128969161429400707099791671290691751936064420135919053049439996250391629520950281910762965671618972038944777584249118069947470586829419053560015449073252325372020497317285370012646970014810833826314766427386268994940038437985092302138859469221665047238786784934550716167610777196235980032132286826294852194001322367810230215922116431395954184534780885212055737569642287653181124318062548058066587753508150368723178706516518299948649577566452335878662714462084583737099641140273742673242372963997392028299406871668227274847917049721777332642803457246309493217085322059138428110473290008877262147480291477109985704116420548414804211443705596865130980250060257614027762472196952902425644675033972264752439069125307252129989760720031032297556763048350903177766275968468439714326015634052089059831088290593461438225624559359718844954849557529758656099858572279422981392760274078678095833130947315039225911628517325787691751585336870050994380752931767688988049706990239378938747603632440040169812433255421865807454402234049313198840549668586119722129222530882448256066734755434183489265198937512899024935803728766423265175007680570716308244357479292383683366104829052575448927056806413949847873000451231638827996360712841454002194727340957868243173168025194799631155477018404200618249926769691298642572595348192736652798951997164876492864160002313398833240861462565022889969704962127019459432158635210217571307268066825102239525569871005378099414532361447077453822037892804086019633476174742337354659394889700478943750187783685774048438622717311727681250499685922827729676646050587286962700786546746027576357122963199348052402957345902555563940273808302648806806918481667199828380300354570348290158669786033573907477930137108644487121086900975396198987385285207552777242509023023812239147176718295802517363738379597982985587872031585443239806867651779110755173561379344017501882284919533123074114665604628705327705381919759605225394533558458804185534311250033063944422389933838550159972593154163011953050568887420471029341187610353883330505215683365518184651500435569278705334881879283191735800036299490550218516424339646804799794919971604895049299236259633078826117942322876012765229628623717104766525403632712135948383425551423543583814063482743879941931279536827693179788965201041121661819624830061954756924504376215775376401591640648382809935198719656993164480544361031120407315248332343422177718169382852689439667323627994702422003036356299146061727554392154416370841778484169349248797354501816707803141039512881298385724634801434201255557656849023207421255296458017917226282032987562258106751125230528676712496025591475459074273987842191990518853211698539873077204568839969129932296278445310639187079411534595005263490554338133460483148088513059737227695152267329857947192959820444269755836497691504566018623621802418010212835082335110478048479290394348140885718411884228762140963601434766112953510575361577834082905738932196662034861473748475943134900539054394787261637522820239621280500725659246953456797224822549266774448285291550233676345123733870267641305768655987939580676241723650008061899253225196664169879784561219182119502184300111472010666509301012153557132573989551035841142173334337316882028267615908145546287391558667189325973133494611381919839138769930932027472640461228401810893092903669530240912401769673509235957282184761242374227561297971172236390691704186860732467930930395969857007735259529268732703908988866452508707798086442472655405761510249962968421845208237041336463194553307297217653470575127937183227040091127199228756761986332846028338734350167003180917054986302383412705325357546743755165865815678949776421656455705156144374715689582499511934403746349497963814577562970479843099611659764091042260604472165155094844804281710185390836157874561564400656809820031837277975971742718181572944011997898213605212735427483494186114997829365190004106945942741923828891019783445663933165088495654429381393374235357194955344611756947926628595438650494637080427118547069835021193859049575799071316432823869934070979827428363450104920311069176197045010405657055434710393041668579289193207389257497444784441497975931031812491359456993761033371838337459695752963517547630887893170662033771076382159303464207275948972782103177439991432761221141135519368449124379178971405693901909119268070926473410894012721386233792722770613159055072901797673274219810465040319497321819904070373514087916564328138249959158331396287653323279488417047843952008939517386562592795693787254588751896872649261504526410945051998057267153764510697262322907304100584198420298910219599845716373650240835611780234400819178215735176129143877109334305005138722691034444330464193962855548769638647070867986743054030164480516620417673393339607974628013449497797028760168493076387715497982077161666627521873365833404427558987570321823743149144671411589985789287114367675308350252699914266893182329936168686880023037836075228555191734053261730542162167124629264598606477476647115431442211380796915394401530907214074882525169066527874960882742910638220234304160922363120552651707449260049816481468143921868194223191330613080145520312389953473604030122115055832048353703629042352581579997952524843311739896732394971264848187186734897704513743429012790190811429050398002864985282601988117182542846723589041772617502785886884556898825521111350606014256619535207345886570989284591061781711646794862881888408000367639835035051449346211746486578855512409715341837166696001768529548456057682748706492506045536332288860640053327686515408690324258748956960836260239384980242743974145871064617334132398165143925355800205829842346175676078054754615058279306705790184347956480870161822197307366502439992142056420557178021204105907008060771929867241224132648348911273754874269678565329718851495697547117738227183572320434854938776352283352765385798683593350537763698515046023436648195356859882830894776457550672561429819123433436050867012083249235753807471161431504293354499677476297497500972607705549524250381696307785223992161241126783870627819654573227478413999570676737579191278780438660692655969813920715213240881868191416999377024017814235670008904676983473124729516665729704936968451570676756323909312078814751375517078011935800062072621750013357540190169957867143507849480710257432338745001855908698777887150006115899907589890973176374924888915356698719990713638110704110415558032087933905839872136805867786226448137813062562004221233758337248966196901831975593272353978930950016794492203204510950822055275945873651963365486820340609047290113187653072965030616384785097764151212563635663395810755818745453871936975786367294945970637914420337269950502113271981807309453280803676327355940780349007465268719342210012203327986438047981757293390045341430900339896424010975580233863182703037809945777034762055600851017163694947555927877860632854332421021817310225254457448555154219985086610958782188934451988675683065902705839460225005507922012683916285876949631488045776505598110034269687807901821853153620734678390449864365938567744200284023947376109155926837555993617258322435980441770878609245618410426078975619503910695899274948566604176473963946492459110493736830447939588171250661012008702082662205634413584571785361249386189135859718851288245502612070992463924843133366754499727715107836057824504592755851336985756510155358957930905308769133570960420732294964172672119324294213111711295404930678521054928762303197402369961780954868858045271892123318162406121954134136215419504979183907390538556435547970181640718933021444793158226719056893732902553878330099519166840708267424128170585635161216061215063720408007463797684258368416247938858541677035565893975190587904754674809051115002877291601006909242978435318157739064717545895167379717095073685773521271309648542050939540247260562502178325652286490269313319495353372820332731947065245720895127504345858020139967060814263708164983999084139341620235471098424894166169396220551349998408744424984059678927488757323587082126352850231857944542788563868156487971108036747091289516718230662758821219424001425437259019171041352326471464912654662669192325807463009809642047725548255000336170917896446766182552511489780291209594322663040875714882651195298688785597490752339656287163705830979861013005762168420200129510128757143522635944279999283336755408822776994106588912068628552187592737124390892869340179980899242837643758432636084346007408833287471122329125890748905936658312951825152288467475975982735348522624095308788832586881099710249147810422517271102894070670669669911720816516504929890491875262158223931572524075446024607680060236734376462269108356786624224034527541150602854330704731517123592305425682319008341665428264881988212695864232131950165763508904144605674260889456469532512327376074815549867794329677594008458350599390962570766044519747440938952431253817244784073946490502968402535644143916624288484038497099808394490997930494036048934049035584216297305356462122481451649208246311042839494997763553562545324666436789332631827834497849328037354653938812581561120015569976983896449972016624350346705826229065557956583617443017859135386127946326326778681959376873271701073431224122299047699829237095049377663139209771997981226366068205111245253200952618092385169371253925631618933508019505602054545154447394675522497103060823378845940149674624373805444036875915912878969520778412535743373570455016961292394462423008769723271680799795735667856695382718184850403265149634777394949706966310802745545805939605199991829413816921271191026707861373196375275569692051443405757854106354353610613076339828793580731031474445744181819598426033649687032715678372933391993808765975851240568149188660408340011869014136469504349418200809962616062484019310397232292363471001171652020020053384036007317457522954367305046333231107018980761043434578058364657118625119659549138451139481774149082771257629306555386922768720433917584492285386763938672803139837881870314346516691725793547015078501688507664878821392795196619999690022866754242680008345971404315459066708353300948458227036501828086239102952558818563629016339005139399399805396482491409149764590071826891275778764925505140810185237144269494296522643529754575416814524705409168833441403567808682319911523723171917411975579120313070162014799093294455232482732799132119404462801181901462370754094493573412584145457449688918645687686250615260351642404983573811390152646371820805343575640060165203118145662238078036500449965597370005401402266647975145380639373139975202998791506140734918053577253846128389023003336707716475732558530426245751495597199483073879889296368320742874730196708055869856290129134656626029182415176594026558055155651863315459973506479293300431209759079576937421915583591013500813934661655373474673313433104877342088933420572302076922019836080054452453781914395553828594934509721867418216507908851840698671408473900096015083411972307560568986201655828688097997090191190284249321051357558824606041574112251391633635033903309719338980791144808775513198158641855287958883405124844924611462694759597890376970115234281145194492168388279692700641419090564626596591793708967876640806803374613241333276615618949540849024511063251457362634562194784160828702988542587260998647121966270752069571386007123831380149600121545066124691359608970178572750936655336547248330325124903234007691948955611313123981831277592877884116506115609119108651525857611108238737430669312257566510729007949430560468417553649753340089777617346603239811273776131193957992431913744900997223744534473026957473450943383566552692986527958203577471313462202907343403241312135815858433411805327947706593907881967655301998544164799143692790266160066121308209611036220522694782007216049149360526255534030277093225597658171305963839498261711629033932382709839363203908457834806373634225315619174900118217348653216639932991269472348585660848439813572587606306452563704925377845839167759693468536588328256041377541176356978173339124553351601003782974645284508073613400446571288875999091703330363547050318547409438238090324192488984449013607240655450124383546386650981834802237006250853568239925114410307636335205990727302673503589651745537716585008854978756094787465245457672334977590467377261655697067131058656342810432034962995277188917096449267893649657162890931353951332003862292395416323090167663639408455652915380219435486049697765067967007085847304954225069873509528882922251857912717986034004778051854438192650219874507528572197721023426462344790135301957681532563663796610066473434297333783679643188124382671044381496393124681085091180605678430462344317200912635038191938348877579685581815296150913755680521109008871315937452185690544952879253088883676135539388685428064722178211235624242468707570487177773798685870871029217834823330780877356031850581419988221005828952754351007165775553563195129137123131438513616411109760243652737522132862877338921416846202497061111893277774448865464889068460796036376137123111127785494505913716674211298305907513314142937395195850630635905516380678650875268448135268142481289129989458412001470261620434649454502212813639151537399436902361512342584443348324444137902122042155449162103741351501361125377016878034576516793607761463670780767737693886694864479944867939088728096152915598946127815201833774197914550872901828423155978838994967664277301661003873914639214103417326089736934084061914684532269906554123643094565536435283818927380359240538329721384670373228040237781125242553675788855247577560366878390576869187079234327586025961576658367520768283447690503075948281688424488870504175614602926859116044158203052228213613279740357701087659830063317075798386853482382955445631967369974888812734528653936622746370609051637102769884361780871557044975451193707988612795567142566520324110071427161037390805803951422705651221606736015670213344218775809124426574564967185829902042455083084797754825959966263757969038804744941067543269630824105849448748310229437865505881596616190415402354249967782176108069519885823990023713781063648952979390575283113182953641864014769305600458345783195645086615841709247473156058120278025203631043885206703414452301247704689938066897971755908797620695355788875247729195778494263172703302055465973226554144547424748690114053155746709877580508690329767918649979566996522450863209844746629249839152144113997379068313186385580910475086474065617252172563809495018007807801710371316378825117835556727693880358808780210270202783894619495563162440393232477820298749377764321957917156765634018125476735316949991261204804089801635905202103011040088214890122729106132106226268332236004084474694195620661468707590924133485055440206000518951203519462010726444016758370119900623016992469848532516640085319399393508867133607610152938406244431923361273204377906982259831401803036122129102520445559234508735011164624118687137459283544670008047309242937860863905920757202524214591882527406157629787347156267040100322899697850698231253181683019695098374402396538765263636382465784406178821085414580807143685445868307905849984313147471951686672195059152871458695911155457565996598153933462110758987726783868805731506224115687416477517882441063894394130412226240863608647298344402465488893339645826707712756053013700912587465401377154600606987690351574132818759786048606425879269261273738272575927287681811844054673186486308121542315681097044999353913605552687341045525643565599066583410134960899124817939245553679718299356091825198319153716580472560890303787037005409968673309369026142394355370913039521337716352921781956799927501005116013906113700389311474987637041396569380290575018801401896663595953109985840278677856612982591476449301361348037710264733157026381302438011299235355075414147058348989003163585567506726357925865187937109437515593334693864482029156991026287462802107731843125022398246077042019226006960959806650340553833586766449007055282222960488194858744896677003933045083533116085975513004630058962295643153300612041412370055696013403225384885994862110551535809875772588294864608286767573397503141703737730282995715514402177227642031435684950004939273427692497788127848857547319945331746363513186956726525616469862341097244377364107542081560262657999375490638717828840974738467936642505616972507944715766495394447651607983314708638714205609500159116042746250048848805550666510095832176702258583320932174052966088228232521317865473197879476261638612349694243689517182524411531588007974535029270531441347521084864030182875256825415227752619641782454544605994172683613573575284716089804297634490511020203160653363603376751627308843733153018975396156196029391901130051015845890285092376971861352961536649020473909851030329365176267902580976818065901688904609259646060218233117619957529059040808313902121258332300737956022087882055511872228428316691545449846551805486312172773656533192721260551928580851213988214141156570243179066839700542411687057915062678263697197925223361284985174027341740861239459154796655152287063483157056386773645185987914195480914118034069579671616711008578029106450318088056850211679510296599656940913534441235488095787154286535288574186165578513643724627005221423739840207398003805892802707229499236368621557588512489543015054028930715723513892925886167489832136441739980761473341385262478944976142560062896239537578533229652796828438420788372030030036935347847072240052847515840913104368321759910387208925803110041857429490782944310494215397008842886183889931917443363532675912148550838743302134593380641161368845872402084873319805988917456478048240390362427086326907510683520814781069056918144574303258663884291284691912410304480838586222702485277280369714027306335966269251287172546533110014006609229851730856728095355745929587495708140779435672604022359025146566393297474812954760990368819646696003778583676586600327651276432227167127988573002182088954563528842527226664809948782161658399126192337894026865809727464842252776681682881923445293026262335578353406157055771703045884265656154298904586324100247166267790704937557212803710393167184145613670224017601459304438787208468920565432513579467745131946306133773508969390549966095237589008050160555963572861420967786498876439185489658010266292801445214973554454447312890596018428647025954606982912148603052715226919358777305917187505048348664880176869375813034011971905870887798421530947907400809644086225693816806619988229073179821201295295879234757155103520190557963484501039734147051460737223873856306542026172159416193970756058941867395984423963157966932670618441064110805559949558587245885805356801002277780301135360078666854373106430919904371748005050651502626876585128490763608780829928883369399748716030840566083869726732037162035899891298785029249874202584425717792582095379211049697504346548797038640751303921930148081617272658697751201151384460576285693432420815200160515148211304619747786050243578377898017646098285363080313420033295091656595103032614685974856285188388294615384167573048501899251531212535374525693695808674092633890251981843910859413705988614999839176139450843747064745789043560094337348502910369282522303516674771766961848832924500256148648477460712733496998870346066504370661169664344784988449918293208068709213523043008909454281637130824654644428560745064185799387904586881486586693089914874386357007765665776279876388708617441101414249001181502263777030379374269990087521044697947530761734272330897081398558419711701936728779457175902983185312197434526055707725898193153227321874072921019663275558221817118554754122238758721398471035650386192774022149440193901380936416130073269371556278186161637036416034076773888378170844373823551020653338698837584432084831566468673365734115525590092684475545804658823185273876176370689544189686768341596123969119236434394715177915122020227854410842727145764542117849665377633310821111867326461342880609255367022638905195503328061439111404763744680209173808396957788392515363907503405219798681892476228014512555777901115720869075514025437936083057079427474781428177066852036154437447206986740427863880570660502347092271218627851658398828116402433883620258126094163928030125252556537377853631258812619355781890765165644319005830189617011744290251529756111612945650320165150114696964627663440842138973453112620943220653627928219643650917244156643072756029951096775845509534213422794905870543725797378978983303425590597851238978451481563192282485637667000068476356215402977270059657271572777230323051016347565049247418406025770688727912044178626506127490158582605869824698461023178823077278426978260544691107794836749905740023764407127333743721156225348431582340565984035666762326499617025519044074756783101095784015174196593575010580435327079977454321434694796628765217487713353281297901451437704651410122799205577087748417115341275422696994237230817240098617236906996114258110852118490034951197192836683653153254379300755413741152692958188765093533653301544816149162222131944650992165813085592637011443155593592330016434595093854697573888901428086739810655803543380020250797941878830426323196802002759291452435115250035877568569350929946250883896399467382493537156558318455044611430780660549597973044095510305177961200990116053173293468148839438494614414448134311326423646432923216008710558745050686780948862351494759685721953456148600718686206184485029410731399484374137059458380556402757779293065577665889253759781167429048094239532221928183306446569341556482031107419842443077875905808218950767049038206109240849143493537345904988083205176449713504819548772100998496222393416360292415979082226910097456084589724337635806212525159004100481289563719532153392097664204719605762053081880211870524946461638614757723807338834678178644811062477564476190355385111961731064203692868723096658901057418793544093643009817183434042919880411202774897290605186643009227913778723814164099270159162446304900171198630933992976448250874934144525636831550238213335444740080747981484151938955486050398273942001235552849575477678750385496100947226981324333007242798370079196989643372962716397373104879058967770238934414590835642537444431943402040685881971514257341552691696433603003091667782814823639206519107833976251556998171330363512597448778737410758837776901618914894281633307823634144733667152062635232580765552726718461501957786121919297038749174068018331382666087300222180455286743279731711189898930973211223794283513315966991446559724664057692726076640239277779462460410850517662064392987646131212217337216834838177776761522343910876657048706810870209857357627714154629996248280279690783336455781779439803534828887368322915615407418591494416086201751436755655833224958818927360056737385933711243816900745165710807263632310262112412000320846209039840071029814932273258971374350043938537850012988189391696513474550307744090007739816357745365152429116509550784206139898461682646338793304021732806829995378416463402653400360865833896517568622537209900468176691130014130217600015627270726384666510088412281065032144537413821593079468566571493127941330597550273876544557656865654046284110101963352924007068150266469784243373781107958190137331297124459986520246178973407257021749458223089269375634398197857147464168056878719910653002153200049357943085401436018312956692950597344739133577942783568972423017192880213509531657271761772570705551680581164257634188728243314627613070435048193066290543904085832659607987147479465493747716248079219161125620467490089136823011032275901773327281358619710828860559272751019697840592877643195808403247541316793492745596076089643038792981142354447938465081015338491269721447536960219087408094468725662904188561442402440606913444809972310388308421479105656684608995852721672613634638869701317936957339955323595732855627443277133259322213541581837112276984832501670210019995273169636407750765781626964121481919061223406894652174333014326479146568605085173336071757242516859364641005671119215206034966180126910024016969938863481015187384610073449036007208852079296103927013273175611885136516727562469992570354178920672591446611998213474959072392692270357639561227587739174642591077454846597536495503205551237812821121477861282896240591597688025114262218538771944264321163020614156445166834972702162531239172441341402795765582414822323845687911539871372676751520266775234933998312995335713103628216558127709361878701886339441742125769018423289267980403801649053807942777589386097940808730164969496430099610955187688282334415169149417174374899251967013198346712206015780675901228345402532675474015576867275873122591907281400096989373099622544699269363495483014214889628856417435746399902433933650352471202060332501965665967897098081280395479603953886637478432136902300727843308344037847964491507902177706806945943531554171467373332495349738715730818386393486402672964522744925280087943728352219088246497369046326440911654098443184258324336261982645877005049731870152722371691944058468433690959740652681039561401582494849387081634366204950407549712347928166455906873617811118881224575383499903892144299532032900036247617862393242902987462385711977340099318574563237301184699394127679586974638974498152922993547169479753358809196505015706807315468367565359766018312411117247748061393969293722778917634520051455486505542809332755849435866142137231608308487350853851575034479378596358121674265248404685108836325969045698698192479505775694281170493792387924012253011406707752712951256725208925972446425795211513334261213056129652050655325960499244270097398526077448169150936024497207492423104063974749104620317841321658907723235440601690820614736111142452934079172272185013340847431371304383718872299550347350179369084571008109202628568269992667688234365767812228706597638770191309208307915039505943531119135264933691563421671874241545272403901907149131158158750282961691535821446393860486332065347498228603737502004972202717945767064428617443319483489411707587852187659453289313781355912256439591053801692974134749289725425853858085572556511149350732245266458014430814698376418444188155913771745549267145125834178867020184972284524801850839721350804560346522223006400568796109842331411075652969259602401627751950101078083728433321632033391442627398561396877962446765790575820918129720222321222633101528351190022394890373400957035313759134976809210621783558531442602867721112224879007193811619321290115306659734916260072217591220427349648841110809111280935389241601692473649995525830889071742768229848003541945725535367438242279818899954011644132226326197223119896233800828518013025315445925868165548676807255980274530252291718917688068972370226449768310624491433483813461236937644875742452904726879931868992302801011916198824729652457816018044636561137891555939002114525280087607172840940953162400304172815909306624516394611666640121749763755657236627744867211174425494390727888076185670330959446508866228579620010521346254064651582621713297157507527694208933084013550693285827096222889803623407554683382996120374192598540417649620074475525320823964174847420773890546265137798342978999100046327334687741842299658758010485276547885751228557124586704934931164099312132959694951921869494408871570798623029123784619787158227283830770858572809029281318940187252839343802873120605493402857424158389195822524186697979212463791849165027235423116706560419003180790900600965533121668958838321178552171379630694976896500066121105476029809359265930003708448534905678622505008697821609665674130432582661054196879938920773195480568328081879449562580102402036553093541474201297268732989393610298676976013631810526823022355656666953586555956650882049405641726277931394043627361370739960678653432492420249589888754345986388411146261450357440257313641066638569612126745254134670897588270783354481175763589481156317156558240966172549661614479348186437431364126986713131092609319428939841877193934957080133724981131696489800545803887289948132930304328257092627671835699802606409435290266998443405792463893319926763590409833379997828021865816995772607624364023481492854235960721531277266270348540030718958278589126756954978066820864628056437323298145186415928092134646924269421595947476389422119629648679944269965560670012926649177270742686281171683304311440211111313053455346244434736743361300917196165321054251174363486197402509157865753540908680082665806058283770905928966565752350429440537581030295590678839637688571827881126494697483156417007985098598925127578854484119841932171524335968679595611456798074835928521935890332143096576871437866411144072444285213806260519319750040277992019346348001889694585280506755869824043629980131815343568675025394631478037567364027359868211798444173324310299568484871584480358289016644942911051533485040497889570801089429313739103014408253277470936305723660873068624178746091758819998610299493565319155064453419664745125298551023070672928787930654698962989500614948023322249780379227343777445328534036151943039476287954624838180386725001451801369998348850738321935621186806076083992413902237664695115085498084342890289868137100850945927997364537707550660442621604325824922574628308624032480263534218990402828324846971658709045066139107382592976260620343113364694652700945196415562844847393748017768985155494732284576162062615303235570404011497380960183957951365535047273722955218875371716442453361724130068670749401815243756157853918934947953581178543606463278472406881518085915836855449975457978158998245200964412463471927460049207435664022757323786922097323525122254866522916117802104582421725854170107659873442713658299906458937679951486600451689924942034772382407007315762935249548240745802017982846219943133040793157811136422372336537095102322447930942572126187091370031108077477568440480675219913846729597411343517963938960378649912226600475637078184628444900086472345449865415384117829845460644960208634901317782876748706266762497545630158679398173857810916097344174325244413403023785764561597092871203120389192597060064649795443385771387849242080066204013385501495674678863295494912077648610063157442565697670074827290238104860792634221750183920135973974421081367887901381745929940326484484936525172139357932626459565009332614296029056374938287876907920802935788261003896883446636100928726771935542249077906585915658611758703594442657057653121186536629378032687820601889210910609336153443163004663771966846437132706070577737306265533604595072249109749493714371324725288926270400211576769672070805839474459780571418972276403933622833846504233895696733429370255755680524943269809662251367974401132404064864406953053826062302551613627155037359106451929773462517121851388388356285774596818866114128087281472912688344494897552375817457595780348821726910602618503651938063663695115017351651324525027234676807101251780066777184705634682893431000772323157136635579521065840994513854913235379251604578977047877782274978237236680598406816654538536295077280877919201947525552294832476989171901660616772795717305106479015413537680779082058549241255321989054821738929122706005882126755638720049237053261271283753301161858516635412783851900671020035463980598725134009850064662244312759427647350812157724303537336005109964436682526312375828995882013600232140569901473129452535983618807414870119713520970544871312597035113234037122990005624237401180554829497170242342025448390508412871352326953757866771567086526702342858275184894918152303097563079026264688163829461597618167500804108116483102409707654236781382159887475073838077103969094640549771866305572544607890724331422217388092202929540687270711893742448365829816132608385559543244340287269248097830918564263965768159014601535953786857769864511965147886496838899462981996818429230757174076183501025839810379879541428529435423727242004616018519977077511600128170226851972760324859016051291211335364331972779824236423699515497955466421592781929946832003558271039551119537839727738130193503485955442359696561698103192448948804819299083009755478570498951742161443545097384019923499599651328349455484234148723616409470974094799452099636618848876012483848959254640815770144677549167852365720385093668689773494220920273254232339375210623244033260587750700963468335220405195691576010025293841669982360984947201491463771599630224243403562030546447698228328461991873992261992627429489307147337326003499140033198434189976907296773268015609767249122008034081798649101668566415683395581116962637165872150951220451751761225000842737803244390481244340283095929743581774367588240056192800956304212168147458183025009783428434842049402600437029634436083838466262694551794400081042926942563959012142133629890138627254733169232512035285627185045144974574316134058975584596882508876109515175724378752396859699905443746246899787954166593988359616101046990634363910233591407792501910981518794264326123416655624427605029860876769581694391134865599539130082510285784251247678752913439231242809091402807280955774996255167608361449324022095663357377939046238995556874713048240269022330799846895720275083256696077509641996146428296943542662542666026175078893603320651164715976002913376295508769550836503238712456058291190290204040103513625095081206108939578492832903373035968026034487573977685809012120817457148407290718453663550087179063745623561931492295221313948757937452367052756579811203879844009355060811962950939315215592735523894315430911091228157419376027600270235062291083260691198204208158432105419250125341897179198513204493290790716227918702799231068099080950402110309073191313454239329792450272137424894948751606466285169541088156762462953189074221465522973218825428701380598139033445827081260539124476506389536145598680187771495394940106029096759289073761404461668988380507278573260022617741659591753680595204480004398936243800142648991167311179164330753363896495321444047909718163341156795996568450056433020944743416403662360513327666230266126199394023778903244197050893920860919755780164982997603160726733267906302167864275695662243176278182657145085211389142558040683729426681786219753283165428220962955308388651285514143900984799173606312584250615192519977605827904261701567111912086341596358365728147650534877664613298512940124384146450234281075227012400384647421250453605039235664435696640905528892021472085791995523509135644077918025711992482493484783108935077810676252655887963108830980934852296681380241367356758735247238728549107222743778295299910408424586016776252153953239159137153871140146714652051830003896777624789611581228719829366356653289154937527809892267452464312349204710985361761011583834493926568663939540210946230266406886092098268260260306427528151644222790255458157312587936423270100636712031823573143160790966028786293708382830154789099938911325286763492521932773082735495657017849549026407184566934964230570297666963788250517492585246134776722532688551056777359970896859304394126231135901081486922546063787261291035539319056039746724624634133665587572554779457203968874751787680885656200414741545479032894019450143236994592694026847925807775422884654280149962945090246653243942279691347024748800948111559793577396625166092468544012085866059923915530876343378604307633961132617377623030921485788222712749254144357483519724329672964097503468578171998680971812703813181731755056902408381810733306041609325969789204459177687201948969899545264695722376623243240925084877351615064630607034018592567303206437529752749748597016660434909712855974331913576138648291751011175061762719850704831594458825333696552724454275346034479734896245634765630591049522831519140126116414521721003266096366634754292587424269316472905252430735206913412515747515816283808273140707815147155429069953918796657863083341736411421919735514753815888698059510241110500321100137335160294983468558357967762602200689152361684125332769680449602500667801294003349483412883471507312735768304890939410181121555771863102483456780466439224063621071265194737791298035470268067312888238685540241318960943886517424450602898913393926497813986124403486549410658888873820715535153860174596783950475691631018599020148450839969747708559636492370816151950299561075635698667053483242647997394242623358619961585621249399581170539453637006321963732706537655362816062891702340729106954318502164665176017532015087803131533429198967764085393910444999973397538392388495990006503907096389256494825009937594038516331973754674330317921694409735469566122304928613595178019299348967909249672645706267077880072402288047165727265041905891760038165843235091705024250224458687120462173750060199621326745851081104879594002848913666569230330729621473533085016957704543954384771251406263769339954824765884176324910779326188135718967117869754357364956693355029599976413025046043733878404855514929147065641342452370135963216612668530612683314215308814013470056524684436235787234777983612731778879871105933257352009719222603197422551161811031398951197197060228302946926991976555832361234366302724727399101425009412892947974799352075633519742109572260019399607627992066563532553498485593977439402250376622702154673087681129086836855329669005443517418919060611253804741685261540655355654062940512603827102672423491602110771686897119990508613705298658592801154512335714593505214470843974864653536832377607391123608732246914482647203247939947186810606174121726792012780837724254377021896586001871333226011132522026183723801253572988827702594740743329280873515471633388811715317316222561557230699035810360458151569394312443338873655859013661012021586130025496042815844207017731685576239426060480196867361628752624858863630461401632723069877577851061417250617628947587628092055628367926591485177573100395795404273825932619912574746880807878879964545667217313479425628218467070063199480392833461232131237461925525196505378385272443864194795748871902480304345605220110345832938566743552928478496229040036156503682682720270890540125663340471898650769541051992487314702872420080576893987666771030380870917859013116810660596820248842549328325356172671332443308789592395774963691998241902803372189004698478421917953460635455196509602934040132936022608365498698844459872149692951216390383324914659748037226753654419725463104304065910681809929283719033093920900401473374045453700416527518243492011982146486588623972981025493757222104723580812596254583480741709145519358863773126799868093294927659511444213311133696672474104242216693438655778450910361084371202750863547454519162989164756509961425851474222244427582327204986366911830915920376878110531339868831924291613592376851105959276277810069035603225607057741782630870110011047129774050611765882683019931626500281656833731041382035116763964312148311458399143825284210316074362360524267147061366423964029696128873761536273670730439121168285437726846924748547568803054924873418613433709918980045926163798168978908235277414008632687150592392177900015151296387899902055261334986155415588078570709400824212935497498007290728623275172984829777630104048892937513493867890244498525368200527966053274722666767475947891400348292322178674208093035586384060884455286025634537101069398317936645061981934789624869626595627722356992039358516679825727990867301793715310757970770082088520418741961317604315106725658416920226754317852610538938986700923902612043235030653005599027631625182576191996861360500171519244125128512218687292433455928757267037201412231937103648669068791450425062169801691502444360077821138833112392839686705622605925333202102350043952631936750673786453284437328936195849465737532762445168310395355170158050471014769081565707212039483696621302057139731071465222355664995675495525931552318840332493175269270344186512903855117775969995769510952911701322097082184614599849626255374289561318873296188506793323457320257615937905316432414656444150620103853548895304430973197483678833839964527923228685228743981226079896075841947924095869500480501320812205916629465517218428122599164349418342113938726910920513602827245685122004607981030671646399066370517704863498922916006277373614550470217249378021435214518557161212618513781760901503598385994527952993326288206181398882416966706275550216990420959062507706826425405680147598494300953596916665167933242416400432275691616435955152101581705713111507410452035175453618954019300474052960007560987378168279973993237329859836551256818710349702030153857599271513023927877348844227626530245442928383608967802112281071537896173634422915047808008219144980030116354214431828866150071064675618773223986178700485617832954431571008816150685525079391629305309208827505180098784118103900477372653484817635240087325243184163901850548557346965846084625730988799571225164954866753359904454702764113134885288658056380870949955121446972840646485270495497441443093910218169544711801073829654476384854726737534003299382491334777237995447749131444870784897936434787686670317011568072606901777356582143360311458904976189992135589755035931966398191074655720431749072400207465490856864415800483627568609680690086314297970451089814020519242693410261706866521694513160677705822082514430186264085334793566568953893428056834045409416416271178562737721855670717633145579641394081976037663604662307750679578115950355429146146787526730438029813428926094734620126277090509475500827031366587217714394673534859363527265423126300817410437874637653787199226654908877271435461477777683556004906502536381991540327400286269887883926338654616230777094874591431604403662158528660596673606811804605801322542321311933977845298551257570027749284194622639532120121782111031155848355650593539126270324598572842946412886211235863622006468289485705829511538111598897642914134309630446307950623171977061925868831586100310527691697832287906081947501494180837614327726286424764510106072369103040854734191837440578979613503398777252963224491893060394421820022630084693181265290818126115451399480246890344892681480277009180127897838400411317065184838737503665568753578502646779209313091966857291968802346286705969923596734391706870103572586947641757378911636343819239961663883827764247841934919756220521631849527725461804673295630282859439330477155016180560310942318828247223228773257608109738122433740651918081830555317930848610977305324080465960285352134323349744800480732869298519946270617020565336166014969815134073414529668410449378995965213571520010738853285654147164779339337313081423058105455443551358267736228458485852450789860763543269007364376821547004990864394506809060620292279351891623179943773335642842485954414713786819477578307398831740077112812876727186409233017309817513352838796210155360325817221958677271072161047074567638438184651290482055331374430717951498693848800900080289532287837263893384451991943292184239983256114014064212671015971049798489093574547400081061216368146168426607672878144180462536054375690613772112644347468538893637074251317852166228414486157057566351409898472476370278358851556212850733049924008814864025891614405062719319566195880347616075715747432267756770512164280086166206309654927289320482323833786511767806555074079073193790558690022295747823867605242733243353306144103549883625634345228315637853511463665585758661433236943282432692430265233282395567049656309585663302853507822303908492403973718668672744159995822192818948563646424545383067085871375032504422617144241007100867558308247697656241755595981065101579415817198312683616388661126292652352328104352033391762238539645424383080350432455351863030855862096992277298883827684963567278966808422493341820661557633486222908334333011112039395629623418453342209569782367134759971267579858022641269207961785923579930104792183840401549740933018908794453119947436618678132102056387236114622994643825869446657764777271331893550060847929663932942549912955405436570907348802253685760612648772257578725642925903824427812965853692354299473075345163035358515657826728492100290300402875043061442841242673755174226857436386644411525802639619143897679526065635008856412784552760234863540697210009881370367639162574612966754678587689163749042544531582526341729655200200232213940122418239833009757740865612087504562870495988131353469028549110122262714822375842618197687321818707559377085970045111791514357128930419806854513528948590230678438346089715165298832180932869356593950675109260849647549088456211005210779315696712457282017927171018402178566243096637136604682424158199692218206404769773375341282102519524661473990722968316589420830060019959445442906209592527208775790995761302598105693602981139453114703162778768010196897548932721809554624570044520459573129846167081344821131321274365706663484479950613001910603429489970351918512103639611668716367135314994990099583341889595669237350792101144822460469568541628809801736932279720779747209362241152821314394370655815362168705287676014485860451247306187000518364725079791652349833085278413735292964316386454836772435163603160596977522151874244292869118182519742970695929303078784498321819989513239468994836115194321853091975398486570920428976806685473799986285770558370350272487472714963780222743697651266958786760500975737696384724695424487111580934299551617799129327919463937067499542954808866569103629509362716636403000247423325284794852804805218160738882110721228805540988601426912720676073754327910737888218550013505056084880990035976800003369115262558689016861447831943283117844976746093409855180557244530262847019247562334585219725611762738091418640049848473065472902860301977410747452984609448129315104922740764667586244602985774110815585075358114808537280728451966964411919312165805710037057497031594267259227393281210403344274673532781103877010563208311211942619840791294833715505962822842905849099998688795903552826129149949767560362602555596370531013251007720551287914511695920192916050933309154418900100311176490831642738378329661840534036297863625701368848542501173914905612101451903690301588851399402391580335397341869922320154090976069355538095005941733416778190146456370091080535837398048032589854493182909804927923427416558655481941884300815068993891932465804521586135402914283097121310332325425068394587647403845188227333971405716284206892093794021616846660247979190048767339609978429157673728568586495082003350240984259782286115747216041677909648884835600935402332859580456150537609626884228121608454064983366568840702772409235387257293720127723775535615994240191422375029176923695918103411798317082260231555567783667346489359077303742673874493036562199203498757949035075111191519604064259292256335669094390943870704180123403167158878803375688042945130667235952891016216363339513593323303411482381570098591936926445430961206862535152788246914165631532996665044900887927832894962201792097178144321252909638459596131111995593747199213348317099600279645155706024399777437995601838123205390649201947017061924162555109615494666735945146099001009582186520305317049854113122413408623761630618247138906899796718521222554233699880216689836143123713153033335228105918226902658029932843581172530654886759148398505434527249936431796788807283762679216127261377314937681316645889415851657763143415795102908688333303799171648915748352287999160657654988985327414438488783025293599332154550011589764108006494371184344866665394602009726008207492833294310581963149087945797736890088830448513322913895690471035184236571761180092874084564113705316290049090188010489445272365481503333768983319772729881212506840695506089510126556981761794977839627638860576437323204765702145360608349290235756201722683954967288165504846274518426554045472714093828898123667611885420042643191621886505481835256728152148129814318170268550172461982180736823076277687114010512714790672443209561423364442957696266025924340666024606099175020445454345501544226071527853760703807685701297294308634932706594200357342340943792924872345967162725261069614649070872099477648289839767111934057289370557736129146065282604407541096963874159392294494172334021529766531943003340978937155551804222217015945911142730850637565173311997654456982716003079456992395045034121981409382861452687900334952228964572202156638853862549956980468243462004563576398228275775154368585519079551642764580836825243069120826776530267083276503925447261451206129834118765131534217658149577443268195358209153898225362758589585746415062976740289362394096368330206053703558937629734183721463188003354883151690793555926668554754277400605835991005080384489417733767619591954281971583466284159571759142530173517289693079227400353133303072837853853866427788269315846349221359645577872023929393659143188380243757121754643939334204890037909386017744977618821984298956528573864619913154990689729952439329500080711531855348622955210059525603573222042518905654998549050680688819715647568751932399340089362274375911304721020146028935398950669622348795539847774706086451615592085132270283376043607011335515328921247412993929038791410505271216065493130073330401302103820860219601745024378204361500449487237606286401319339097062429557894408490225320197945047444419279234569495966698719504273348243506606082310836374796176361848799988077574680088167479839140672212742915605415173618494498281920840532442970974968753713657737991777642007738453441201251247976140227337578685982469677673845675144832315469866801837769964518705913362036343382361246128115360053411656441137980575052821236068711011820290424609866920598170503580594114460304863889860453808563531365683290627527535646414318627137496312049627783932604726351489907611966756976027034949375811834156870471149206878879305162593872151826815812881029709809840758125474024585187929228116457420703621619229596874832538326409398939432183100006287565013994038773070821111606077084362453458381804412342810884287732234817412415850016710073741630277981050042500990164045027403666867339810637057470769662600534122530118527242278702529884732330946781252533294448273326219221800160191131744693670199872298554137437853638843622988080255296303253002115886981820598580245920620651835540879895607444995239348344613936169822859009062205351600550543181950925627775445852956074617304960364988892964374519238547869695750927501484825991383527441025877555017719389944095477406367438627385825088602573924081194466535298488040788987060610669543109111740393575681302004221102502886494868978974206675601706324792393709375292265898469400383581425594023173429156118069058945059769862837696942033967217943399414649669972192885096979767984269322864266366499790325174336384082026893612076698431610806378903798294571667031230245510109417835936916075426396625590409621492066236613787151103791849746696721023548823687354057996639634875922907044142720537937471019693807693074451261215840342602943097461862437048723130689916184207641811614609941534505204474047935512870273067275517036896564003446161152623442183193282683214352767433400326699838053693905891132819769111129346965014764505757036865492843403202348364598854794833904980894736606861127489609740892813401469232699250313805416022818441033655265358943802340307088636921891656870741108802425840950859220851250390746915217852456342399033935655942629736521351829331739505904025591765006127980294907975330714601526406930881430079986747146373601783982277903136255699042466448701095356781413671882071677516484124690393976382104287572235289263806463510246355599286538195426890680746882600636090118506619850099457300948625407890122381425049749107269875467813562206390737474402329509539140986549624425956997057693461262628185396386774549274857553472902465598761453621215538053649577216248605183231906219636561818205097877726793768774879291790688351263996990188498348597794740453807659323041863747039259358773108901867510456673230310979902456256369335869047045799014677632026666170906743328939550284253014118827799901509342896496457198733102672076051602338697060096973923446511873440847155444583925457851312227966592584443801057097480224759949683949396605166800167346100158533656452952647200502116099468654980764360687171055361772765420277195803272352999306923445251180701679842317595712025141802980187986708999614628319196597597551691248640311010973281174671396838221534358796046585436635340787290516975084003789703865957700899840071505040753135408029838459695329259097684543398862032101137380686951892516903652530152503160093519742476223831734479332106103806399457104594970528241176681163484718827998484859427757918424953649492998670168294618114206203633711652301012455380203451500424922932128215756729478539682928109776397599795800048164603461677871252794356341284429616485537306606105254459411245799924740689394139736313962341386534863636749894210160511337248551011764042042651841248410429471395587496188164364824723415392331081805369660533621007479718235794964351719670271292619549632146386568387416198728835159562264044267092512231058613813568894084462755144579861106555505542229071435407449479583045830766476836210357314240136416650326099418090963195534123404127802564544765485525049238281410928363841819594483119242578980936874661676346103384607506021313743559797732456843563346862703303798959295625576513237664169825744478864424238927520178145457784729185868677390711258130695494054147810217038724940567537551916118019308109900986121454561156720097225959225578102113607453359016495578785268342678990969425810358192047608782278905498673296939471814311238219420153303600116121855254410369647871453344599886732205623378793452415829076242889025584221421234362566062517444380207033855234653491912716141328636398870797736487518454572701860017038565140088930402318354064167646832994368049666014417302281292502146346483589739324861244737560094198986149248103355067399263900530559706102920981700505045842309846092217301468360218353881123487084479262863160895458810466702050687999203085368472022114354047091413513868369943527500788827517634545306531803625601182430851558399522994037557851257902554966872383634408142453391317706247900055089545109568822313556800707862811724718475272983835199139760025564419537428445399452486975106753398795447466111422512239351819832970155765586568429573133598670665392596750825728797417151671127833181398870865776007786937751981383167651827321127542816963908677583749274385046137275288390649378881108406781427206419865487904089604516687358259336711019696991413169091448565271339063045721173799076894093955906938217495228568200841321648195314193539835594258779677200787757290915523201222723894309636312454026130065221967715622569927243944590935703301705221907558810260258038760698136325974128373457688157666424174526786920605161428151821516282712886808282193584988709038253300613272089836843412850032340672628163356225315977853380346638301764102192721002096843883771866450268137991816944120265824731275658651389757957227021879611931431990141254406073094171784685256016302569633603573626180382436420575514221122332638789459894344796280777844346987226777248985706686445202826489004416064727762615454960934631417916708088794734062302770993922904443690329670940479562528274481676503928554979063620338950774508048384195104287939534173937459673075904662749602721133465418640017216782124764638104960945179682691768111236215110284169376270857675064105364803704416041512437957741954071200167358601505623278550537742801041641404657878754267117576412599141942665246302139066006870684247796586356866113492176341346785761356009205367288741870282661415274199484125645141649415549051759117420372580303328712734238027642311561716577721449656936406480567075750736115959821045609654629605580004080454454414149652021255607825073500022830717524529142685288099861404123410732417778413803631642653611986173118922793346538733928695570266320957757460634763984999977775175539751058872005081970933652833502037144763330909097379818794054934254861609177676758086426769207954999258705006576358878926534111977271871257055710783071352515057146040285135520238148233582470300279431438912982495852573673045261143351597367857762360161040810824898281185622928694942392713117687896717385531409603651409177461335157544910406735441128127613181012245321199628932301353342962573483812821481080084399110429625933652277251136142188167773121371744395400972585391908689934840157185782000479751641819822582456325365738805665433443139453278448961551472274927261779227079282640963663401652059807159937963751026120801335641776930226262158404613546525142573253620127448224297258946242077178974797613386375823667974108520930575643630871974815166639341218305031896555974632266171055854956741590939244278807333880862960964660156382112029292324587337190810237282488130184898994377185085062046059525960159558909871430950832010290348367333799031907411753379026699901325585296877784577395826272498815072395967982708566948206812634120155418145577605210792351956266257086272332643392893397254526420527200995553609728473233366008535229431575451751455663182622543943001059748688870377250292476332895139830596676679491084442560548956022198090715232395777256505338166734942033525399826447044963549297804763642473167607204078756735723881414521333867698752842072393590882854334087059029782361888709056392220362606659891355631961958902916036460145720783724487666651379889987549899983811520585259542358315241026971440026989146381746000114433896629509582201682434312284849542931277422681683066672396628285786356838910783765283510146267321980777976352951191240138807080393333334198496965173878890311895925434282934379364670054598966702366758870851898767637966962733117703807468592435289548929073875308372160183706866907402291920625832972235388405137038581405838039946959967292773129042260878166470891817332497722336260629988198175220892349911326637440532070292212124852721505846555019240000754100964831812754484293270398302085234641039094328323194601396286061584694119775481558012579784170145484096774263451440854302079831187599608481034494174879731553423921382582881265822399627477565281969976844244971953291302883945614805321799355047204438329135741587811909713979254899932731790008171843746651419829557929602953693657131178737917428041759021709376673647877936527831250180787404231654017184982521516876316549817374541116822599135777365023516434730263806996092332726764061160993292741603845135175241647995184511995340779802431094630167609417354805404318201006593897591135997805299237469891572171870761299244069694077413288815335631388901891589976550567982577370026220342030360432316440469815894059186125091104624620382912101659329659595356863963338751977604960515097894992204372845681797951738649083974422398856808367542096306169390912975004578478388510057734497237116644921392683726255161455874428476688131794150890575089617565813581277442641557199041383250343335750344242504091849501555391183618873320251788497582398976584082667802577150476288421957391308614147689703834544776474517499844460197962598664429302925255266858912860259835848507913963821887659591390647790774053890876034251318985179089498731245301458955069249897991890121242345842739554573514436978658356249023000185016162554787155138694464790909649979251466860999358799092246276329915961411547133902551722585668114621075215459633000972637212950378962569723642891407583687159357501474308202291524888559836861170194474147813732130537372120292938356418567263157424284281034622451673634789421321490300050762468594426699359666660506280076669009974899095027557198229841905464042999449276379793401289853082774632551174024946218915937387302438215860168037894341438783742590848276165452190111388212429881889539940287006040099953622226705795012353318471907465317241888921607343078243274365982899719135022661322782767274777238864476262952116074494017844899301220806143060670365301269765080500623252136173681362623515793379209156297260532906332856398122863145089723562613642531115057127249711610617333607500470214978346057818250654437194295760070998554163971313773436911066658024580140920663555927186043187305185684216926652044967970316915369971485307612852671112389755539343916867768057956617492861886041375587637976256913165109074021044747420022313605921487719350907535360719163009022764079489001933175458021814853319114264967748973245237075243470294728802124339691161821517897426572453186265779895710681932310439191845978003324181909068335876731928727411651857226009367959559110829705794432563987067620129489608632692001933281853261599989262847749406355234211980384159676694976343910793538140494843126873479638424929108716114174670326825051529825806623545458355984060155298992024187382939307002864159716134537228275211830494322691826268575826774218445960110101564519222272447690130095405574298502340323149803523254657764700143687144363535310820340839973451662260831684256404347832353219800543547971507473803774347998287015101460766244219418828915777570392876791044881551302322284103875718327650720436047369113736078996355275950376597024432377280700339012864229947106008684034858812452220534518499916454270923796572445570093609608444031549247171669089124407277453296347357697236720193758494212468971683272385195215058256869355269300087556323072424592378037690153224292567799386963744143748291251821454479785756780559237535940118742313011060331225939922921852519045387885463044717521885163376230498694699689863728035729487861372811598464126897465020511663663937656078921194673747732220390150791643900824078143981686485676506285103880413261443119734412919034322924727098112390110736974016941743041163607755374903263152470750302844237192643226423625986987754206107387549457909071031403429500966192860612955372235095649620323393335325673719808642556022359134250816634481402477174850266565810105186893173943039908784488407407248994271535504754065979567468003550993339521958972477362202513061905981661903781312560342760949439125796745873402893256795311873407398427129678629247119361435619306048763260657800308695628792189187219629218898881707505484812008391574665431743273462501124919199636787270811174310477593127452133755306878207923427587575920434769836385065778776193557617164608603715666136741690276000092328477042776691099859990269589255549081560738761115961763177770229356612743727045666356194375450858359337866501242763193843302140684007113704716154906644394287867545509640907910257125362633885152184039784771180889547174109034986044308372846892071429836971922348030501879706054904905031029449115416537429648955076153337418595320070192196547784545394695037706273740693842460731609791401548327855889179093737525866322756366080790219150337554756044100363088211494325246576118841192311536465851987897778073052820156211806647829268507323652457186052659412023497660482290917338356057039430504779731571203086901824695458659865339766421584068361245812613880626260630504573885835545614552969022016382378220773508238830101894378403449991922444777642541359420864821387219893330854003167023020754482735117149040767789885809995094758588696068524216967343681204119841118957351948715033964007604278834763383062212170634211396490489301128126476553330172753446657679721867907745883743428735771920972300319023578154772817988328111622211481477231279353307666806481857634781518044778529036552374536682907994052782521537533971846958101070885988773408359722632202476915527945753493992264299527108656725819313707918580700547669359684436823433283181966935021020530553910356713023978939161199097328407236111955171544864149962887362844066467999487154566369316476038897787914898825714486008135455343537980166156967978747204961078343760701564506451986713674680637271371719595257694599823916180782712992880874323067194348332391846140195416512617568551441737450344820765550804504953610921115201100566039520869444036501432577096602023492063664780791898808990712464603613172310370062898164671722908531316062154562111985247422935689195524830896691904981074089670015487211864651902478263395543620645966445621457416881560467316733058860121755267034181669288159836598816572632354658408368262182967187033068876622776305493709099988842550955970106148109023834344108129799263072176025174336171896353789153497285947346689295658834213239880507922215281171625501956750504035431460573102235473561386652219624167528599370557295207223996165031468393147465631369462086855849017491793706025264102059345760508952951679358195342372489518973638578325731720794604100486306055443341964423891336567915264285083499095869390899532423921723713840518391192695197857999657670061534379899654510339193912023877582755671411659541397571446994244636396796854840317496202013513807978952195114755491839401306021812607092501644675853846702916310488901583033066018090574371660120347144265988531333039557747273428884115455608942803594923285309167374556871688606255049426903580156373151009737682885584124121744844280471517547696240157148553902922480044214603366176476658890650609810399893350054149588150973511665169405082448292483134773001752349174595879149803007671657933722465238563287077571654820546029703719987910377376621935598876158684651976909303712068163111861197513102488158453628422528642453312534475908220575645530967190125959266607734941304628188149048508045815147797290637665789544097414800774032160841729680236544237960252779877376227347912889308864044127170075631825485979910365202094083057448194105632476998944680270234381364538625947483678670263783680587891743369000462590882108219432340496917298561013039059947055021389194426543812340483486978713464760908788078144549556413236463286114553774545256095883530389270613320971234230217460241244863496969786713907800180146896598700412565132568240183853126235558125747049498079675822096607933735219936385028568340361744289641869997665183416531146333978843567464695453187161707402598564249229634172391908724435165445760759960591459422725029884262070127849919625442120420626030744484557273369784246058611892428738880287863502558308152891504408597733159803488472108365104237486815147782465040107226570701316833769317472624841076205097606529558380742347725208569302132272470363594811532288370685927171247922811440792315725365052677470063213388520502889404895538073535195812945952403598073739177231636111503978020510083491183647598733234025484400972310663705557496845675280458188591685383836664744156981468494461682781746096977220172698412695260153054043518163579558913961068618036287312639320782528144476158055618677329836138818680852070407474168579671167711224652453527353594513826039369869906095959598391022238045556102629816957099058828749414956656353083108607255211596180445897274071839750792338653095046470794923548383484343376174218156803286549428114815113302178665863185466292670398113389125717064262016420476874906658863116763071251028096518152226430204858164473230556643626539988651527271013721018787867930164291178423711522278506957972790298809658784706590777964960562262856420429744993447450460292148660813336099567993702109621635136721453675434142812407774290670217132160989038854485893889691209756149104590943112876525690231145143632061842244304473969311444562713679949078112740989825968517966131384731243051240875352536525961124921045702008503265616744341102054207153677651477725891203575207858456420367323678928806967796747837927373148648968790434375762883990821540230777710246300347707222901869849928132202893595125020256930548718291956709872306915287247196975374735937006995245655436585073919420308960092599591482707305178705258840281699177974449063213874575665675863980192341000796180348845558779334546667449677942079378313536107978749798362794339783146478364691269496127346365310976317012227883770852858555315851600715423818301899878609220238146184259183708694336887080757343944160188355982106285327683135405461515999653921634948424038931893544149983869946625734767415631622227549240133966380010774489393796585841530959118620200669695630570953591066147180961356366071975147627024031189337673639580504235123957783472607968846121374515947379270545568253104015329833114542432330670969805731617160511226208008409938666067867457500334343623969622208906478770525225752972108164553155384706633571097723078240369186728492140452075929943284057705276639586809527618076139543520927676233737365879441998774676383769971934464777875266689306247207464603642541995729334040580046082819896368106179437227209717750342440334519875171000734279608356342964052074621789381700704520047011308426354347949889164070479245909556904618250972328023319397463701326242264383819358598425188982389485163141401575648129340891797493116129277377489035569811699304690096120723472080697516594439310987580317280304011001210740340892971657316662563237527337286469738543488203711564814944403332429921129081855768976119886161606852703908384074326124513005795075011593548406503469081539932012488654409135030837754321869089062880496047908902631674148961306529007740363025629745148248734456973321959076894925002752991369691380494984562002385578819368742238808669746537995138963239891985528915137343072749561767564139422846965389851861548906572591623347896009313953778632539400012902106938413511659734045757639169189463753666854110322794685409754720913789605407873046958789186584389807252621901499892147671730876671083341380264546195221241933747351620592608839243120326483913195183074774438703469942958027217543372898327252094702584258956537917740232420826201241546431710016338676533219677388799446038828392182353136482988360165175935454327240710744962923103580098267395319551928986135848388492654990606608937532980653711759372951861359467227943732951691610551003665601743591061558219821113657950371187226180091903415987823061587907353738308250936219408942731219903849138289879077496469515522969849406521378347821724887162420629620158727691050043721925975982724186400582741396761982657144940148416243315559493267908974193701384635420245833553062567549965758485035323964583038775533571803837328028723829977197243836260038410020744079094888170584837539853193659679667235519019964965450480917605015936313234564227005139337302804070719832032329903558861610582938894830838851338689519030322169874160857174523367755094772572294922477673401416616075529133940051775204286866496900917764744507044497180339435241221983796602366558130493578176316882076838037298228612195384030307046859047046464968358325392131785075015462524786145236805395274486331487042573664989863857252649598812008908754235343618768802374510214140433872109159801617005064981455707026341603266428565333662962186528103424368895317551649333717944542588046275622771697525921629929133192272306980469179775516804123129117151094730426165012767167202229985264017837583209356718322986435018437106440326771582593512902330950225338007344193202853814011765671260061480756363002644526191642071648011492624824579397334726730508935569680478772659008877228338392414287782428326025668331158387938217766600118999714097609513585899803678830830850058176023164292922211417729279928964192226828879359789115586093120339357389977589858154974437019855381048150988721702616982752570037660997988736420111537892380446016392830203855359365435954632186289784483944166928661834959075472656863680379576824939407444635188689003594596090555695160137543883953849470713804678709199225611874882491401676985785809580009489432357927732056955996139902049855044679069793810034864551032886069887847123592047597739598198950973099594785551764343902465372642361303028699778362268327356015369395077694027255343969515055211411057562380382804800039860278725067345459368498765854809787369486100689849261617310093220958698229874084032983802573283501218535762790702233763961923978672807173078039615804754114766433091811258145387956933635158831448346790089007607048381559115094335903902589440692737034426384918407133402012739400893630179178721486793969499582488209972780380457888990228317190850652651280750709104737769979361126869674002652087884460338034528857090071860114753164238606018738737486628476157401327475677744950181371059188889279390945912266064570448736949523569838191586577953512031933020549467931748370686805117706911491230130308326680095573795252771318133140868306837669474207267823543588525998495895093403433251105381597758233261089426027718450662337713170003603789570399102340966576533123556089289269120917077451982776158330031122084616335297405958237946618077218014334207385023025075626971557502183825108545576087473392072637029887305699946767159883067938672508008894590546513187180831637656242667037721959211844391695381128198916333866193184782691148760315546573772596271049394889552475482626026985012471772539721963383492684750726362397700523182617079446147541019666725863890157246523887560146329976366647782392773663224825411538924909951088529177386625313035292585136228147357615637245048662216580516830154493324904937020597780029798744403084392773661079549104912218761759216997631875899788256959860276091478327601994510448715678320892193092496447876239722836911852464914150717545598111000097122080274030141143106848290081108885632134865680848221879211773831365742788972473540533625592953251488410736511484895754164699035792984754677483883571150402595802478486370762797381538360870313568370751830711839943226072916122194880464600168562023029080453370380185067419086026155600985938422369036744672781723580185614442496950190951121812121493648683883708702600672001369965875604391720954288674351221141406702210751770926231110882930728074085043789546510600992585230019563169761257473073682208668081447956771948292458525981095813864714823759561347141180520007058499030850171480540226699134853778878139947656226514382579069189227653047980369083788601232542443077298010481614026959539178315657559041746734364594275067805042645004819990291734232577517652137537152896161359926155101551346138489046013087841518779221044479624951233690867373929331681927672559292954542389105565186189849570383623938311356347474281744609208334140376046532628728493050162012163377716923373640934280088331285678673234239527153367427156021968606864118088700302240586579477530935697357882784858536091914947373732910696973163986092739800961318369367148175017989672458835100649831830490314543427123242304958969996897239943730304830574672657166932182822405217580362691356127978791764383760020106899430468137093299945812450822166699710170837372163101043379686709755474482315186067727205097152580662449989666843370073864622469561800571305016699903137214987784610853205139326007271166401003402517073249462443791648503757437946813500347782253692883202319320683940190887398212714739140595277259102470028910398585619548221920161289953988460275521228728939456481277876205512285513208037144567822831984927619465133207883703747680256574054745168847491881345493720301865824665604328812769669142837540335772823608331297478030923017248515224081068040599078289467671802802516911590746004050359733953701921219178376834931806154153027620474023120976465138520412922487903216749790175671045080473768469923108007109574364730710693637057638538529750730869622677066527919390685154279765374180852380829153798969527802236145363064489096523011571104847060630512518936742209173065153484027395187147748565372214588902596489211408272228422229274536382480724687882880194398190155303213577573081078021218287299700490496506912289060784186554110261686950034667890876371687129512700379639781493899802293821757142931480356213725966986987103011922166193276054730981605328379009576020252019113379214793018717576722044173271774886096544841402234956149815495936484925827821378724251680303753990538391518310355693252153625535191170470768832739431349684330474195671828120322827279101617948363531673755018402621329148652813204177939450535835876615676171615033877217598012163469813881334582885735269945337218639767408709629129755044939616439791556705076847284685310481333873208804671060473823076677068974724485046911681350068919902309316087421789560185296330359294496525270701563597209617740530864642532998931327887026719365047836623626489557411782161097640231802820834610482721948369866319410047161430861449557791163907482276513595289810938018284542697083935538458616170850961258144654897217916763390149693167436299992248489316092763727891600235985334115437967404719970473942839487049725340682146674222241221407322191211701436181790280562641568789029390097810389661525606817912732359825288244375620372765578959634174170500411282933985928725770992917763138125581113613937316620352451835826716702886962252687488735326593124188369721645312182922318314163173046434665279296854217029036323023990996663120767726848293226596752072505831996467700809657205460046128493420146970796925119782427512021073397475440243171715282738632175049322555844844506139757126141228223790001288771233656729281183851589654070849856824548095542910634018120093434943676704799312330007347145664113914231770737475826785238298794687217213461252375904421872511373564022840134699558519200733706796095276437877015653947228356586500708091402103293314460119225023262278933681975966082634511181523101980973269168112901691043653104248437866209967784811598924520964554452574476521308217274007729386147545400725150047202582659475505615782686828645176502986884237111746759699577473517676742653033484904958289040988818547331042448655377679707193752353481708202428652418322196445402912164940599690626933656074383320549929250855593836514570465996421534811364880708702458114152336594938848374826658179184302691161042963610226390622423602333178964586645200274090740418838741096895291076550303936681556191047097450798272807000639715309936126409162989036996196066109431607554049433091487213996993657537177419384508955272311144349433449123709041833138008902369117536577896811493915402450291847494689955302097236445345349152139880820957643341949633876830198536149983891733840569008716884059950172379173760464216835960142954407767956385971597568871506905462939266708234705037018704877358904785889429817892708919540530982403198554426045035325648921181449956864919346363598476404459954707446167729087845266536084975903460919399664133985282844977224941199439146476756145283968042324669729237425611631208716707358368020047296323389004259080609226550487433907508039753313613204825270791618797606220374529070588282392070834900678155367038374953256720372845368291120780443945252768304612881714351941696073081745754363136790716430657256753345560666193020063055721988524424770895894497893732338321874695908826427416639552126913095171622251105900316991349284532732915986413647929740730034813931709440854131506045907836731122155681578685338595948505242987600929613438063782319227055979158247997938437693551159153749885771380040496350072810503278811610859302409426610594014449653270288019849328952804171464901392198596310948939830140897433187853317614902569065259602760382420571787986284857782639030995372633925856421437882330753295969779083996141857568507930878058432852464788646506122474252090431624671829096972065659510488027395902660190517452048444772094651332033970884566245155564166003722591752236713185637832207087701108754701789635959136202996767560514145874297917672758530197740784423711666051984365568006796525795150479614868078085206351378874063706322106130515291510276498255360039811239207953854728993610857080017311922672325224473727008102603081323562366316119200947504173250302748414824600078727665889632633076984291026751284297418281361118840211403770825044525236910268087441169075812339460490747280507615647339151023768284000734669808565673531628854625161859422296788500557997784361642881222125192781533068212170095851909214170303079524281011044346010471716625528523230286337634214136410276383978253041591832754619514277255801335172622354110281649455776858257174200607631648625198685464623564752745448392923873318821412453943489199022270675368513071314911231966352179135206791311897589705964487998646997922375951206014065420701980471769110369384682169250008018536206862994790585398490749230010199947385229896863281988494520197997689688406856422981809630177183181920368535400522312228399041140534051219492268924495293413589776390763007520470186830721839330308252601079968100807520633846662134012719106836363091545327954293277200109186547958523589603594637356645772607000450475645886194069256608976198745811190099105246900702609466061259374344876667741552668377647113131189329864281359509443711024340583182262368513172815154989631128320333907871059578562791014109299389853062208327241419936050499902018907652103356625952521909233784179465094104764477352581924108234065258704245997249465723256063378318718977206416717375690970129368250352260244691429893519148038545654941196928577516581002773673939984551689242561457074202668405963418796071269129883774565330212721951174445703090317995624454840503316417365547865892983455150652170775910711338020893765629301626372675054228268012933448735535028449090395147820512968038057901384408469754859859567270741700609784925563321300632925478128203674373538304591718956579373023137076213293962258886681027960470824535747396326190126803318382613310625835660137396923312248053524246954070620221317358225738826510431254945572138847998606652382705441300730887846472165562219416806273970998984134303306574466461058892449220821321265605641333884033926145164375075646787176720725827425968665794854012657167949866126423063417443294754899580522615196671542237446584038823970546343728129200169725494064040125689424411511099402570970239064387906880629675737598304020145993777710644444978321736575118304057071330283722267774103076725891555018390844347408755145694043314779382699546656808416467911145711665480276832054591943194279401150055223442129604036221999102881933384908840393324260622108755896241183688936099852921578748543748779639938974930020098705399596654902415185989092553402101501033238035239820757866653508859785680589947818536305810910411753930283758991066830042552367142702687292567068235914273105698298769905291193024881131057400886978037637182252909291463712001165224009390313626309278619902257657376554761285206619081642653840466686275672100777581975035081765318305332876332162752222649842089630872383414181894252653194097175992149210206391270952643441894642343706565681532659306600981262777171843062915253971686935215613519726017133897771284802265854781413521568354467009403759995300326764567885675842002846555978372505207028299994546096847488930164719509263871857369818087545922396142293866824652079969783965157056946463179929273932983301097279684068971229115162451090677338213068561550746898356478262122662831075473511990016150858862071314715039416969672769704480681328820733047369925647106193072026931074089804258011126156114158543800208047873669676408518097635743124568050354083117300280190856402008529956532762853947706643985394891719928822791525050761820845278062150386106895868638050807123336582178161786243193102323395448497443023622894325240590322231440986205604993912916943964303383765246460300128206090411617706001790840268778546274801366368320417302728551526951577700598083583555365618542823815712859025770741284230285424719887955667975067220556795887041943677140199607098053192106425555964487947749862412148804731809309497808661924013509147738948137148409605792726908092424647354322941252964129706083590430906206323616814395432081358168506463061532482503213813695677535148723819150721556960648940500746712884230664853822905552826659680613828067971340363839186616732734443396316503921223341421935169043636979814106479913975631234581524485303308864336354342512956540053360372194789650962661172830312411221865623011673183599376722331643313545597597126778235595656025655465461951628795597616363947984474405966614969213291765803767629679647409234394975132307627668692186440325675273250076166885830781613540748285381793967132295388699078552213284507179018452567686641784303121717497103615996953243463305617917739807887802672101435190735722343226691212160483087026313869415179618524875373964732456095739887144395746418758430936657353518494922095627999540396277986727100716920456755214806441831088316209513044956275629216824010649398226457462222371316096282445171461740455104806774577360027749466800955127230020923362809581796250884384344087625160722611136866743479908959588368858549442565931884301177821077005834246082323779256493268297790478918420000056835690311795634804090880972398169558972219253952383806725917323723061415651441587464886431197568202010383665807513366978701646413078338532593333377366131100640659750441126351382383835236813697525908315624220725183162955899238690651606207559898963770273798505712663184529754480554070488279599301106631840798432432178057603530726908604243082202193753852883156076745344332459536739502150636362194620432061693241776019470770381493792533237653259355624583483366215083517283885670749667170535869837613486301981120298013944948864862960646592882404387824626981419127223516919187040586013212820497185367442882339632308956387600226800916268369387008282457541537836697519834834395486280208276103871044208017182319293347305843709945759978129943211030616747340675991289459761820646747621702504701513293445085573141779462462395916548708992975420024366823126889620420027419738950699118574815244841515203548318896113393278842293439482544568674583901608800761175303533270131042392500030246557461201132551425281975245484403208911663880819458251647524282769121880155560175542844151758806084411996247193505144583520104999682687369892178265125067228250139220109006211677036641529600100429521854437018240894633099920197755420945785626881927872405389408235514939011679415003285329202914057758585733059731221061200368686591603357455941826328717596055684011313584927163584613801561939582518121586706348046704469224618403218419815902274763750241586468182664324251864307257913671143833511758587131020545976475720432319753530053570356085890163458628087670111044308542609084905716340473058468823010227400353724863261305544300846677642405949628072629070589678957912825200802712389039947622887225048965115340482423357180580769582180078584600029485618081202087106829156902627136192556264102079435558354062996343144818517158240099883650239865675511828441462412530257388958709134437387778570533706093745815557558453149924365361911129113886226319737462969403450312376126824568728040282662415796542783583095808590347025103790385199232912667068427837707265755455623604656191538103850493799169180419797641314083858598155469203997524742227161611194559509380335138934260315569537347466223171324731663140224523383214978975190172778998610285251147283182314635425809342102101313491256679171291410956288777036446288747767608519760183311309293094335299287103343226870225535053629641350650852771502184504930503769832793412374107592678006863348523759282738168857384860770302401419143449635853976138993011000356769033298661245984964658013019223360802346091719154176966520670977111418253309834456622314303407145522205114977871661204502409764100796009601755681425421545905632662948255997772694080959490895094495363997314847165280676115460749973792296150597126533882190471281411292413010632887925606132293522446703406996315479586293037959391573351038241132114245110973023131232932576168333842024313798556129058189545958831481956954856302173489330692790575466990315521945790137198195226264675185553925012059694109196662356915460270399044442289524338780275886390294131744737664079162604363615979166244394892967529724733927374251999418316601842643646222128880602864585510825981969153729782601492158816392214651517033013359798486798301033893136134184514970603265882422801015495548581027779695375631515730841052809273803893687267827402566257104327229315515779564050226517603842161056376836857625277141403488408125676396589496171361482214443348340816400629061134825085824759383416834988887280722062315019975924331964551151602604799747755976003974917534591892520741774228736687904036202715991640922751055251399979475824149790709164837512905992093449431896143110869387841649481232298817397412539155496706685580103739362009925901800896554852763131270192751689133200274166134941613794051888643295558556583433256740127734738307525952276383634864696977326976084571161180023301173579416855682952448513838590564952576787121441200421070116176326256000017112401270612743571972758054785562283068004633898051418997993392543127813713937433254990041104414477974487473736026686979146735755857651968807877812580663594467823095956976870236149243164848326860418261822841606553991729365308818154301569331367009371554855741993691602009398950834089067017817907201980549313738161493935860155292319150889731812866624362563226222080824477337977030906038865555392999827085990931438118298025025158018064030996713884739405614313255311732052849503847246334493749946570035432816938654849857103233618248956528293449512039919219759941553413294733497437499772026275309242953100068071532721813195195269750331301001607235275109708781640772246088224295456097162158962567485970374941714240100000364187076503440939502772790507124383786770822266050910436975825476413181482301499495708007665994862244520774462523959119193356595443687686084748520622900794033149022243615551357437743524983461534563554924158819795027198344813227712239162948354971404357501600266961933085264819300964246959887053100778523472491791444048298621845423507103398219642345604088103822052596136712529267531797211735810006101698001317613308617662607752211135931419301513857423712465068644281210880329410131253266261468240619405404198253757927999793450806866987886314240594533071794511320841191337406671172016994979507446626999758787185706811174288752560129987856411397829979021970527435507459397246158915433362837314950564295055333576523106098914218963029433154813519772209798500384081095924048164869016716910454518959618068003557583718013276500656891195103010990954144336102781747513283819115789772777261287407396191998270280930264306299721252166306387146216805080388290039701993342197236956039599140694961963059399046141416728515431935647809868733130437832322613598069415758900250291068130202820701010926399683630803185733668918135992155825168666997351308106758155368216134190220612685670016625936824664714445330203266808959038533492520376352015222238595528105829145369424764180678879468998607219437533786279612259317819477900225553307950415749981928983089665448246210604390257731844969852251223056459004392912142273276364771233610159004073151874147164769727351322345166688909123847011243839535941037550210637915457819162857878572292957972721362557130387484496367242141126076842019697486868725035087361414485880437311387775645472112422631935504499753746233597293446906111713244449988342700451775361452409555318597159828816844540833675119473833424137721661694207331266602059062142146826938647207275226713918209295539302057691522531243710817452639187836397428354801476175267035392802232171572179718699803400826870681307947410342922099789196657908399513275851042533194629901982205475509853718694194843729407126116843980219213723218271870592734824038861684279770102354716017183408395956001494590526490948588674403728617364153115474431409249375979654690500910237696014401846837509092699720246469660452346860415243012125804040821615200840978357567022008884741906497031840784157744217866187526344721868306441328043455198968447768194119690664072299711626246851821088228160901676153502390982458426629392851137589802755719956308199305037029453999673921935807363007822810678001357330011235639065273330995890142440900707763927286884057431522984414180680693276835679892768397010118593491994493322058817293220683841530253386592537233464296887064694634714707902202921386859995379108954145115111300425358705169598286386834947325350847097808810867045695262624720457810924704852501583242745687555864789689700592971318981166832632279625000485795630867169233987924609845589872411337662205059579632488869563558904470919770727211263087124582377738497543957372932367542982243591240574727653381684328463075349598979898785392192134130791300636292150416191411056349111110944947600795816701453442956525266923426403742945590880166938365911875596510450417690057180185544342942374966677914391078255580468768090122268299939393739310120764313864482421656903708859918763819901497184022846921563591958489458400795305303161772511147681749469261699342196000589123751243419328756996141446746486349394901322014864462023501429855027054324552764497698839842051399821907467201349512389401222488772220290411898773955081221720800281895723496236640518793642146766294344048561463578382261692921809071902360123777171171269163216530203754072512024829656703774342864535392019323144026533375653001547268247830698130292569306861890913418512128042428022876936024256452927372145877556113990936837590480444458672398860512155674006454056423027084166213149276045801144431579501602923849049189096806807398243453853326036243699589901607895156677207827309730843861577884387089341717222591943614144145174428937877112547955422473600529970120476563384817294248351773574005670252898227801799331124922686383214640685546660068641235930674966396543326309499447552003027465553199452451301110380328337770632766234710743510631879919234139832546142856874962672362388950187543674372418716898933118178333403063178863519842259749152876658556663881516995564526767906511302986149194524099167065563167416716540820624512825958754375353420568823989330858780342532769883112988377646036706850917592096317348104015381950169009067082805034130407331793195040024201805073039169427162497573263399443984140132329110172121798094629721967670593616660947939743421016217548167554553504875731815770795941981358219568077948426805273408906040976921644589594995835391638512914286459587555719913752288656717987581122619872086786995768207408084002853932273981805450005910195283134877654852565731089827516950090699753625761041157232084035820053127075833135038018193509525230356805987870875092361890836413825948078037054494510341700791757499671412966956396313673202022975055985787110800943589493947332632297983992020664569615085067510950463059561856142547726942631784142205741856216564462280059776379489617625776532828793866097943706978728423410470443994083738704625571937965899019006593059583711875914602091785788262215369318244569139165491848761473327586045148766001641361777334269835211590633266971442150413524374956091345508716658198306619607156984606317567787355499925165746568133246438798980504492410380454623514741731608374024975709008892201016907429945051594224828218915427777012498339535603140903216110221699456376255041188718209665125186300198945315386607258412611198215543489562335223306017083519339630779221774305303752272599433651398263679917422694986738929236961002774508232952895013533896782797039059467596403622306064669341840333111500595603121299661946963265401715121697334977193721697458324030248387315200925228866472723841435409725297325183515026411939407228800046606903228507514366980300143301682331220094856516231234209099561927118453678214570837082685083382081604282106898370555893238433905802595187667781534014009225041317736286726535056924973726775707350760368752875821430698352514894881600665467860620885876314378767866186256313792239165969896666784309684632845671148257646634730965010756698555747783256277906691877575141564611447089998610863651202627418736180227796562290892339706301651909236285552777457570667573054941010904012683326772462427734938775636378543852401032165264986080601056523427307715214056411149690210229572843750611248024290947514208982051738583404459466651783543051395733602967523449076517640393695040394831198014311241616040057529377411657649970162490938051725719609284415604472237843891780174642065157770763712577961604819866283041879558323804931215967327484231665740083022820966258122838657772840681643538980929233782371758636628158599624295364911455050071366196668021003750681637513534785640182648275919895863126979017731109504401790338429428865467383005106860792564912067749719799395884892003893044968732556262326061967712892961377569095833774090187815666978356205313663328100689930969388347434159015712931807297009286024876014319431995354787091867526596649848347303684075328889679940384742339653339609760137168976211758232366284255148333830636594788557098996009170294505391031636105726689922671427532728386726669169130641426902463858445757399714428229422964031298354287271622446010493630820071024262058967798209154811795202169083753096715116185685886408879777946276822184837637896811506572311292928052499537142461680965593241495081370921956604689485526985187847099919115680653991718295891624563769533428979522896329979258191528474499780328461145191638455675560151488545906692588627270557405344966602654605028716184699222516631087328816104361366717196413654980508064506962746497345086590597785733883930539356040092280635561109263299122108014705853503060687623056727087175228276010210162574700828941642255524214681629121852011507985730259831692250979950165626651573205486163480039159769358421882288853536873751871664075373824012648063046737861470675117026433621858125844930127942733634042378905782784527506665074751155754896380657498778611073142843433908033119396877598902832999184542137153942417867406904315821966924531731344829558881860435254010648732966410660607690716384793157161360489122857010550752686202756548254339075708445680890090998415924257248549005387859296562504808310184542108814669726326035812701270887827876264682228928730314230278707801154528259283335817991078657448749737558366361084936003885801074819859033160849637106377442974841913982968780293187158476709661338726427481250563087810541048351585255279182104081757150192039447391568875713137082684406092489204880320434460257890384651433636783244174490974883125878713953439653817982819937905475307687757720035194400984974706096531890690972831223870905005449927285319994787141353910926356280045026787339422160294095032720726427529898373095746760762561135523271489373228110615004050684198946529360280547019022873149193457556708687197457197417522708437314148380347739065996501239639356995532747465393912277881930662065341899770960380937027077832104825318871769417440462056758134547608830699905248126010907818212172783892023113317303185081631584692469388395389544299208370419270260061066373939716158718614294406368351459614953562740099131766448650739992543652028522154938182589638584128186534859296251217452332752934171941953377891130071256802876963591005175085789090926318342405755167490131560892648668367473327385792780430392482115813552358604420784386582607955681944628258059806859228745385201079943275914981257177562162477322986443445549516967058757242647445748652060560528861887381386466636343015479858904942047583892651749692941456285020926281619250528205312455362553507149524587410571622847489852386030679119599400799173633981066344433474225549849958004638018028499995694677387166043534171342319547613178812448140340929015480842251106123022208604399254592228852846833518913405992364725358621601040572112706877675795988746794084692791283876952902787077621207412430921305451381342431445789342370406827924041829745564772367317594828069681278922564474614870479359736223285800001337957669868524973577863618585917995634254649115644129373362086411694597299064813567142723391261910723410506880039368720103037430815134033569350211497677015946481319105597499282953417866074286423029539666088451987943482873623506042995358485144993916823145794036514226495667165292285678039256930092862617719409495863579902429139141217546702960665561774293295377365302399082843410090747157733204561576447903327417874461340472606512304462695224569451596333528665767762949649721854223346509291902827814811212089168794280151523370894571101543988833340227233795367151295274525782834824259674367621503084340668772223546438328041069490344005230248246660563893337014335942559136119117406698499206529838573969715126010070320256307906094064159865003740241810706218322319824397884480802587040499100571856463199506853414976948416275284188919324551244583132510962315741322998238256251017279079136206155876427986025355511538740122554461605818115825397357401190491695420648414143414625231373984086716702138370282765263852370417569586784369193941565408875030919932537601305031966109306131134215511202791329643281584358156824024483841340845819451517709801589392158530665998352448019222793097479920335548576410471730484402012186782201162532353387636235550261741009560152161299485180199598815867047209096813310130541090654086660412230420057329606527281428518694390178783827693481554818191828476381079675411738028282390325718090562019319242262376844594636574429790238103607111107486872240115137294834573635051488745155111218055170629981644756375329291389944589047229633511187428240585956743099556223815006635005584260507617435310737100497863799089814122680931465743304025701450428500753942975389513847399125736995446740388648246814228017308139112640411986640938580148609624374443058879405862057214519674899356515075585883122320416376250364216626958650155245869704426783287204784363519519656180981056182167876107509073321459585213936296794994515956967610702121095589992020439264460243506396729498388405894699974810808038584528731307838424592117416804457728627917853828408881022883356075170083858369485385244987210020507879267264074300837165546876221959432164331349437924140723192966213343072560874185712625497167591764256265651490338487204165499749972893982102007961387384224980532030246210747791304430772921295818925402031005273830844502110705597567125285198515547683709419460587076315673375053046692274856774892578648045612236728386836264644519164315338310423613100609757211955496577851945900372797086180863065839692243406962343859721149083255803494611021465563819705386154435210021093161911175736495885433430391019791290968865182659799874379360499992436826790855645881383680172286765109928370006431047478207244888810048165505875353212915533045448542670223405217988308042309350929452465096530077575351449521587336860205591218241459686322632668594545079566827585292674126593656810442801252823680640969353195554710269939289998232307826888585529197552892306074016817006519080906055458838008472702140463440240214646616048332190679941649855751598288929481001895361978966021400060484382401529122698828163901667198194145275855429820528197657785072127728282417663509570405555419548288051634917046267903385975020557032778634318932336919459592517374412628475329573823571033630133322326319764410458443884924167591562859556540115812616093031802135530166766667356749205014717049771502718995234708970509309448071105070556875163105812033852768470388782406207005421875845946756153518788370645905429488072649971825890104118856447100265181969741484678433237086856152051847957532164588121293101192281499419826853489306322712334839669274232974412986813138566775471015793042752276052572544291804585719832795240973972781682352754165518249297377451774443501369095325161376925093366834567033773242373865949638197199184070526443023493588520953293378104568106313109194912438747704754940808119724628456882444994177305206011767214471672354966307642631944732763269441081829479443027177699410990401302768847825219507030157953228863854728592709935462060451100805804410070120233881716418802488205217918460046898067697191375378776731281365117949447301675798561225703763996333605587226264691205361625702591913451420500623125575040813063161001984109919436320716028872589923090209401930362330636604386605186672495568922865407899336626304625318665503166909285431862164285077173308381748510441022054889950925851520004691836753994482543660461271035322844415430011579683682813572755488812381463951543613557975361546998223992382311479669598632136413313206292791672797033074008038327869944000525513952740447296664445501830400206154407839388390763402433048243997128121333009958578922561671520293569723457098105907222292705251002762998293628474920283921623989425854987068718935623817030839646123678242013932913359463169248831503047767899845957114983691861835086153233234705731961625378421553585543950187972551675242917752629101874191931683084519192413978085595735711097078490650865417932485904319077359982321325647827726046738052462743955493381436572118132117469285841569560100812681229088196488468554068355263254404319217846592652941881435532035574198922724215455053732459184061216319876013462768614143515307857658486135851754823169805284701567111599771601412816513884283683928652031281119179692640701899151093643762575206729836320909998770729844741857181290956156739193155176515114456497163814292530754445724553689381803617208324169395433469463660083537302974131292838371547067253671495327530377453572101337223082132550040226116703809371145623937711135663275893393207170346969479186681289682618374862125605701415796521395513770750307405243549059698782415755202738135592539183279879321749089118761990879429399697807418901386073110884243192930553370671573062604721238150356218877868246229028294347058334170952287293432297381250511072806611443711566163705349674917191481980398942211239906995335493714920254920839581993598375808414799145105446967107356584390274144909566477937207863694792079528764567324405825610714994056000442873919911482503731081949096298746517283377448798346987504635490115473851121863742974828192412636271669611314366741555512409488685994912366691751983243186912350630582773382686805372541934818166742912777367837845766491270929855258349049112916328504621351019333214954078619913980753352103075557178049285658034671866833617717454223641756226109217020623944055657312118465523887710805422208635819607933719638851337195853350097853607160933976509448082823499785449103613258574764622689577005486531324059374832609638686817135809798615300117602786149977903607796294460139223824632469065902435658008189678545624793044806273037153655585610376438161966282792030213163388211925133530506466054472875913896654106229871284190390807044447077232033855147947960568253041039896479862260642257812142692654276588784467602710114576613135616407768261287500303601416175795238860603149622051689724712959982813016161273990419102384460463696674013763945347693169732435655308442562723755409820136677387170611106048493870249473659981039961158762153376842591616528483882090119846897918762292249551757653722012900000129048213224578196413734375833566635905385928431254461350415202777410745198588458770487086645347478314976507942033070396534998380186550964635462299963308018844098642195843291197388497259447736598658563250739940535789823805944252775097969620013666407787793532068996442086249747256798714519708700694598971817230581615112336753189731164357184395366900016661920918557378009731871454825977837943155681675006218790336364490715890359677130681151094744466159349767895763175585382576758090625646213259091002752288293302322556862438217742870167269850892295512639261876595007770735089983408731778976025669359590501751959150845238382847173220772485906177997873634746648967468643639334616797864181098776332014343366515387269638439895861353507977804113601252898681951473180333883276031053379308951904843550833666144062192635588286870358888797985166554713425966099489803506220579575010155425960198366232540385061176845857579660663700211202068584777691899934349588861866718141179553755738251025793813353361046631516749078314385869719052404888399886245662241981103866504161010003969562041128974653248806269676401352608268639072202506224066532454256618055629944448954961739372539538701635180865556750594060151680907127988584193847439544060647286295782654913045144717309304415267278718061196370258739318612027107165476916718085732378357943408527217359648669092488522874061039245703150191426589249158877762343024478528869782754723860537273009613795471402072903738570975398613157357032448911835428474016757412322136103108504029939689823286032280370314173041040359793535890115771999950276307012280635897695299305576918377289854412189049337160739844373033097721399556511068231279967039793282561913291365553848473090459605579204776983056711880108714060172817413440613869337419879236442837861422276177082032698310601395257891188174366960936641971774873349095948289496569907729841180356782632573616385195110000784785846545905538983178545264042665621182501310651979157005561816877123104962567567308161724500203859112741136864676211978684415720736640681219649637838970598630584120329836287083957741134223338314999536846168161466998050872403210938973123207884235835173308563712405475966948912980333973639503568286965378583224217045518217070525056656715131697228897695337284799672968004380778209772889364869054585037873217195120102822395179381281885856596086610979221009848805105525312327675345698406313683885928611102991777429501142559971557677003276110429849696850698512747563070459241433336904581000224817734884480967662725093144304066138866043508128373487760251030422396494001119185229286987922712126435147594395640700761617748236032711248058972717554202044533204058081982207382031293171444372566051929146928268676424556821157447929880016350069123398435481019680156099439022792918261242483441753378655936501402649254248316207879136677912251929864761043570049658998848944139343680121898408047718380320685874135594255746285989638072025183762478499168491495852717132904438258564672347491032737489805327212546672432408011959191982830493140362053196161913744765306450212145242648737235592313454907625045458933583165009638955736914257693775751499500630731306981569782306237541704741587327633924643146326429084914170570011870814586012576896333567378065003023702526098483003901183482815050769777042404867783961000931605949933611000636620245805661981620308958204581907031372697098490394953800933061601572118005216492716766329016584464449319684665537172554082505529648196970774565197073132767072150027479000804131040820031823254459191392062950371453337138978299390084968148143006461658108891490993567041807593401620803829043493057423127987152206614660530774735711541507417325155803382090448339989619220509267803517692244043647371297704744526164456606175935649712604795361047217244523382356404151288424561390150465400688937593481733276359743669091158914809346553232102756703891524339023504323056322873821890834531076540975022527030055204628261800608711948519726077420024306250698635468447151563192752244972924233144186143940245914059042250345750167588880794970479010991512429358859542430599764323159467552586830679220835118222580250805408619886484100617299574494135070944417360574005129386604978526206431997057554868038504680027267189201649869140080031948486431069631324189486936561743388952167041735647392199099811618569231669348252840646639884213742864907116230796721768861840550213269036238808382686328601301106212758466326660466673661751582376653853367773983237510485123586637672018640418710325351242947698437058381624950144653783569811991267816346796021728391404513276235420615956932124601265245470625021966004742272174411479517186750225299512117436901152875763261536154621580797465625414066475866393838747080230083410075826290001438117951332070952514668122273293037842119192263314709872919991558721837047660741292361516396403788991948724427682293513740571193792500517897401789677342267927194428941787404041310227356559036312328099464606562470902450091307158182545828604302528219919035720333497600776553064185628296892955306102679444860329306416404826364222583664493474599810485184844205634502039770188167073915633029432493724135176279212327020316899958028136480097756687253338825777615059017876523511067156979849272458749157714338933986947048470427721242061434855318380003264060557971624006104567565058411952830581284217317864012639117630681080322825027585157422319085048276349062687568078885394798222658656148936691843501045525933532128656644786564859092754903616237556519086784659366334414149201725487766960351194290875837654228445991157539907728603254872499776985774710345685880601558534534020197058781747055601380448877995248202411310427347079420928624809884909377724243781220277653467411307483354739946035410333111816404106272128086343209817492280575687321281799261708930012415176981897196477083535508305202221913900102450546404158782925566930296371493090765374253030023170120168410577288122996085208278249191622347825415061532338292812813890887778831677576118897634093894892280114098030686430307231723019932679798361687811943996570399876583256712105576964691759330009985681615823735542343677754445450959551643513782226819441729631455709582674612853043339285788893362568259408147170666889439298392196022456619059247015756235613876907142645748722379944447379721631390189080049813379667585551641244564329377694725357097755538241747643412310874318891186955879465279859200536983147227156286058135629641019108443805160815352932484209791060613472345214911571405495299128715946157037535295648747142182561075977434804049073629652811415110236636770285263635148410445419376549024463739960031707770817128005948711666332172867151103348190837129950111674991296982351679061320537124621614477646850979835107879653819385357339663744421941090387655618829162075460432595180190721241994200932125916989583677427721731891754436696393514777436905792593430376072748828372855188902262160234304001753838719245617378541952998253708204289759529713539860181892147248195751508472278723530835815627219797858228849288399067233622026305703751845430077217420900724324146062671738250832594455364453364573711175834276642293390126830068203461170894514689265613146128199121446298853645726379003007574868934538466549774060794789275886566012852676125697625968293179473794516091287053079144649789319009534878972557329754964365399872648261749253926452339046911498442334954322253530337900938808278123505659887243736294485243018762231373537041992620490172134277200532055557681025125228605922793762420429864586430183676274514737438364479818948938587850934641981981906891539078659602722310883464048336232152621313819327082561989747542210964143247122229171511722131758117422580613900828830689067512692270769228001682794670070232411709522427554928035235810788733695094119519416775591675573390732206067609242113954267780824377438727777147446938746341670022008930726207963555767842187114830724240907146427704102467171264512548190441859974509756982330274875278786207433234408741894409300642836240674241667096009532237750372487966552477430593681057733019451295368468736146167879559423499450095104119151185077445345117237809659864200365963411767812475826230495105546964890535690458687534713835990543435180557987011684091047151237369683718072090096804340918919050849564039813210125040502077482510556925831163480349375343273130916475706956795865620667253287348472248936234921454689987311627786003126939146230248464006312573621534190557602955868451717468106093024228476349582422856183289931025045562525530975546674413969110931219921793543651766792693311941032966335027099857014379923416120012271264934154990358180475189332470373718854231073060804753389457392614222415296724350194585888845452831894771844143828529972237583325792406735063843524890382972345684555525145401530934973752650318281786188181472636068984930405822799126752815790405128799351598043853063451610866958905140054176494716745923180722920928583804425977826774712985681533896545348861882612761499636022297388924088359868030488457452815978942762999847752749266273600221435210422690639716252999708134340018524105465568729615522942291014497469809529927413714030604937839603987603658151105749387775849132825078006113918029222964118923427287726008780405482891508282679228430576954200880564467472575112971667019176438055097732552927580026963645546535278121196669652944483422736820499279282109155492039228137115526924544273514425531846517258917670814372986854333024660086252578311411218280252584124146461252400473876610518573390271544545029250235680053686110635690263777387196824229912179247285156795081675505726917414538470914331157496071687280714772382017918110894921606580006125227075561436157439470758449798331586158887026340721839218609880746812531284379119018281924528174535897070507709455578663204163281772695389806223376908674617826308662237975949510081045210070478270346847444886372270144263696766470122417760470259536384239557005799290053172024697448094477285741922050250147401275535074522749892101832082545004916687074698225702854128126509568674473442336102948603564660052076330632650188920816372718692902109516372888685486316833897915590545003073980302209254384912558414727596421262638823452107316123253373175336396536258520445724261356074318490547724056882812635173700019362695715887625266284120550674682144797165372530367933376020051039570622872650619698106171183501756778063631528244451562056106784458344388777798533695054222232309338851575349642118436710945353660035277232894644371427843476826909336789073185679090490684665690972952542852504061190523826776422610124259149290688199617839818322217186734866990179145964687052699787165124639181642449623256833368092704983902773604504418783135232623972929360859245717591330082756529288347993874464253401134238449305840103155642754755973039674632697525095467927548477314116210306932435345487716194266889717071329938479121974931769607153369524980427387833615629617525501239905226303708890415077878881881590826448949070514330512746161479825121299950159831672555250435265196507115035968972618527819276893168505986292843091300578089305289011456397770039897451832207138564323053163281704243692275520487173886353631612796517499551209052544157798757754625234039179262995458114981947168379803619758309693242979907604901953242774306711354041200021381918062659778664428123721703685707368095497678208301216045010290444924853048109616567098887562073455998497002135344959138961225383552119454484733628328886459963512542426142206077427843502164642629898041155324165313362378157568214750891968712124815606712311932329452188843838702876487601126581403995853688555453735697920362532345692849508067066983209252481038217483645356554154852288410846586263432332599338976191208628185751487803258152127131518701267023927265508438746669226067192310704887599295903691630481054982600064708752203063979219777585782146569949978511146968367723198255222169953104729378186949756409174624658744725613903692132288283787102386690113643642980905487953822006436890575633780041308974381452794938605310184746958118405172500552859551772247883949286869658878150032107490039126639024430761800887367430459051155416475951606392713181254594004007235279282004500601969642221983909866275667591424021622345791887157475313006304346789645186393270708553485408306788113790455461091767518751422159084083855565353419020708235970036391069092443647806593942533882090573752540900248641916076439421054746317284830955399379699462460121621571757933593240467271384656082749657966542391552918368526328742013256275476621279450778785698914435584907810981664141852478441046513491139808081353213764780739668239874275670093334144117084127315159843712819680115495426183606115405732454616946774673113897256158279885777695245390622420130632525472915535652209022589522022580855905236648226261957115551502689074817625279976179613102993737083487916125128836474679767919814972426202485208620339976835560021123826563377880701665092151710999936108182408012756642286839393917383495743540482835266425746161753488614923250309069684177558555732364106444199378554890958118858139810234551730628582143107369543926865992618765710353926912706371358221083485905992306110707698473721683553146402385768371271411400828758030485149597443165284705043894527309587545024073311785274395803882802771899498265144468803205078815392571447942570507624555166132321251954201576517085972569837906773275778192384294625870360305878779170260552231496083331140856279528031729891354890550668942441333243413063945345553292753817876758344954432514619457413891805562938443123748060217903649807382008592374123453456625906244808580334521921240355819937472921829454203977177353355664463823193320994478735107251467758994522363836571400074006312350903406447928113248847401849067632023419840832593148290725495499347209839516267916672422439967006702055269406141219480088384437966834491453915764881543075524249415246096009567185736298584009451960520579080534245720035158889830927189966841720589714291089790763083486210991686305262863972695948576597296802726675720494960745133569371006103127024086898183108823749716800737819061876335310301409717323518506416944847639578791338280298120805340075415262065459188422639845691305133935931777155844892424106242373959514086589659559020255633425468411149664688157011379500060084993748732228476014076286892767194417368238090267372507333848241606118341843554282085710516622467988136404167648908514730388516936495060384266965842218852763207494914293617570078674248624147828224814619403349313102401128670071775304957895262665824423932051539609931834944047967368593740179387120273613614165806830997774512770499362292052917859769156200144914853778073555524640775129630729276534420402341019150123048609547330845231323597012149958389869631367562688104317803585573910179778486959388222245765740494519626987763796165602072716255460149870408059833258756670825189957933123722207466763621347237851906035568515770193747253575839116930536297067752753087988059714949171599079191659918893948140331791951679129592904634019430468715123968415726043690910299783777001851857724490830061230276914546722791441681028801362649280085185052349362654757040019346338154679830892795430451053585932020546619517205174627325089614464159393893593846977807817865726664756767804219671551011941321834415165590482329736483946414275630209349978730515913443677607592042839995329075322513126458383401347074975816477907536192818991057056384521724855631655352864155360003505014269725623081595801675735267439776418980691226810733293248715522469258428145014393583083109668371161612412640305614490565645318784724106111950466643682563724427235220653658354527480694325286189188934680696323618828786480185065653105615533473300156679247870112270763919281865689545333400295183514613039040701148975439815880143644239806911596726417003712284683245167767486115310651389805829493807723540753300837128741808031900953155170273383918420316693842155139320031655612419500332221323823250704677190741324871208941168642188762696524808991006726676340943058628004599182882525082313918358699682977720269028874268701680802866730361816080752114582792644651016899535606180972804315292619157889314289764598838027967121145175757381926385721143363513042427840342914806598084515653085263221085553234628248138754233644163218550450965686442195904717504392972291099885059576604218227016887524933339826870249410534011234108571104134513347426797088331014900790848488649410074126828405037530301136977504532268741174844123442453193712269258305596627674175319678598717016599834328337945618509016156295817575947223990049682709073734075609718407059040487149033806160581900402774414857261579250605780775537854798630764787573331696817390960184225710801691867738017344213665747239913430363549189382494150716392543345634224059354562767480561910736571747341302548079275003208075744313461008496288190044803059087255476240474700393153854107489213750504881463237786847611663839557858877773109922079564273515470738129473624662563994005081667899943319420222734965879337912274874844175701690926624145695067952768712094722724718254706052886447360688402515422628776207738850130240609700480641661355890590346405783506591332242980737978046845357389873623880607606788414093061087049443286322502266946246559913993039280531427608378590965565084718265209585883599070154453693221598131863598911810351607185790513778480425140979814184257504973997642168188855848901468902780557287014499563550846076646879553527967796489987669273533970258422855485321217923330460513851860941750329348485457664594335598924952013211208763354208340408372639290385188862870705084650698851521568188967677821140397773173399023660876966224431455544072342296556601223749519021928997907005511767957131807369129919327247796846209145049253973928651720151975467317422362843024935117055123878593914162942895614586925586828923078110023862632185444560252413292583659897237656558743767783084600094204191547924215764862815294735029945640024033470220414615624769981881186095525072713486200273361866890973944435393380982926785383186922922179845588641307419818117776307677475868930308888629009272053591034163433079266217176975318528186960235160563183861609734747746164489120662809918903391474068758503995054131223872348177992803734654387687117835662482010021449921419007645987096992258061314225688563539731259780000522389190762791797769062962564657359485920075850360227192242278687832358634713044644436390168409604620342173190622969004941875762090739264541910678418719047512286751810446343527262595604168890214524282092290800750025939826568884702487136042545083000786641837322526917671517581150328161007538961806958124348369118565531887214183592097591995226934979920265906725462014063910435305553413971329066593546523746833300555227651428385239263585065843899496391075385119197551094927414906404896909439984495363524153951039752354918613779405806425690960571940580480331748132691192470587895076860608896684583441487064458811468128734093975972681602002392100577718168316183377949031974738353078910779794464567654322647207890741048801991958629090652359404404971416794376216283685319973133335052213096430549702505347889629481998667830479453097325714509857047460629487775846336530183403129810778845867025841220315002747013769646262039351632028151860211729254143000753371239420932202232951657317582060341922854581599950752475342196524030541960658742759616364959923719425078350593279259740602177669963106539188190718429338575067358530349583469401536558945222924812206791919805063438596222956235421542278719726943624709120600577283896147779131044151598602739084382336303447593888994944917536899438016376693175129636865389004280325675521603945660153116510112492544313977808978226028991634834620270262389045583483568299426295543678140034741305628724093515064162875334004745454769379674746203275361039462609259974090223988425243469390360302306012047844192660465859346233749140282711882175521136883636236576290307157071969862472113757705283153391118581432331185214432431220736362178464468190760198037878088273819095506466123371226831919193664473307019099199543606799849004626658041978574213270036143389987746581251075259818021427363572355652999489357691436255205043263742198596713220510099615117156949699574210000198483888507905806132374095848535501507876844416200699658830778510335677045121890508010179432407396775819137360151876341492337248907038446758637188526002583728317741657340088922769731746359863149688047734770116242929393249060537025602745226846282564469843905963065932519447497710673725448597746825957236154010276099660109110986957418542003385374245161507670466048115858227986955684382052991186549368088915807080379906743026332718583364391437481617888730138572208305533657770161691130996623356018035899210378581093631667196624001475154265461977857285132057517803583108871906159035022930837367719061292081260218212495621667173141046373227717589661603084844544129700200993922761172213446642529023488484492826075574683894862268497840945188207598082531374942625764150872301935393131124321912047774889365320208959419028156237865826790918302972329108877075017421240091811894096313167810318851160637918402436979190612491519401678080445419083757503229427275640634406978223201359749218123273628994358340140762795921739805982449613945672279125592031275535019542089448253496640968559224401709097665630117021266317757295434838434355035498647092668684403337738851167575176870813789949084716039557015959184561090708811546922640145811736268344516179836387529654571834244617597333626049921349228551571258817034173240890553724012990466266681651330202563563393764696895622835495415444479126115260277463661922741095051924060205232810765323262968761256874430822361403807283130577019783351816814700540064430051207813260633253266539012683518328236379658283878326006871926205685367145380041583845966659883047510587633678931842677361634462846069943946577198828085215217822140792110125394468351760285161283997569352004528587461396493680003761987364100186701104284311334632707482393436218204141429907604199401070334534307212782802060255763209227911554031622067256847230611556799535792762156375350278151822524772470259091520913503283239901999294260171244707600980556793700165471985258402472154828151907385120326015923294789185483613190098150965912386884433122490976117044208227013889835530893117582131542550984522366924616859510822810503839945681218376009968475630822180126928816130165304173037819654703590338090823633979558007700335505578741563278152776962745482463479919397801631795033801337096987353682842883376146642775621350335068579939309695108925176567660403178366922881671037914215606619491115474046627592761378298583902058740749755005839462602179859266294162193045030873669510290753192310347795572485569934471067683262927669355220685296570052294880498048375686149389493995511851103456088308375390662512944468835729196197420404061647265580978464708216361347279092548216741103348569864387700355013051123653388910467310843651837314636472884492494440125022484000827146854667799447033621204474011059751000302156462201638779298931089683300110763398415673867978498205460470002905230317068996289961158739954553609363192366694758754316091489789013112689303970882416479441841991116056507244822564437917118803900145869210422955927585377914874189860075117418722722758202541529462537654635638543520963762373235403676078107925679690750100402622454458919400003608347517168152759522549473078525016246115252797106303135856119616625950677274943572739947935532629033452140710258702253179014740614412121637904943014795971528898759436419903000790783299480178756185118178106093981334931465823361004324491760304411815557873483247534892648743095801168400447090112642825654088260862691418281184514318641785311938680065682858080806908955110638417417809854217380744418275217357538700941521324971732606984082004473747712300984838872387438946046291420358595640085535469311846360053158972714193966587500158969536896621749111364873461281952528363367206148491022509311447058781228685363459488121588595641512787696442750290866192866572392128438045346155217413163721305596866797400017080233866161959198781312136415728148017195138257035569144638260530115286312616008075460116837361726728575962830091103812251795402986164917983871796981226359739312107683175760478926322707073316958375884795355831764951062095293596376032011210341572168419133105137717991294278937233501530019388110885921681385256983945944564151930404632613446372186377321636626073276465731572036485430271316089355498295777910910878736514059197550300752715465467304629620958426071140733774893067408781857511374564145094750317140757163011783782000170528032745926369068708295106436379058191647450725924808810354413577030396395961918794392789744354044132859501240129990440019630707761281062314435691592398078438222227125407926906489261521077747701662334636449175554257516640657266108819030301487226626706257179749949287698952623610366927725451273244812598288799121642500377027084342025699136019997031839669678912156191167475830582650742671780759549013937269428258339690508262559402060847572630874078009847213902576251775795036592621195385606294028162565981726726965432424633080727345384622303113912373771290268771867387703303043912704585125175982859567785305841282806817266521268842673115608221738782306045776147369115680889899324191610132787718093023444645548167229822289970279775369771336712750690875849862621611679898145025722115523802682906240882426216994203421498341459388309002638845196715025345560419840604240167466246200012487464088741108200832703760771528373490260289067052628720551036636336185645607411104733395325753290364666518713427322907693416991843854299459626015363293158096316933350147549152350447608153532288228170681884172148743110003433487601377556479408598457910286242586943435835614417288496545128197294293561879102842700878435701788812254300735507997181951491641367110518866045587775221314651899891169341471278302589219877701346748972163675944313435755367087038437424800034185824585416672700634044726647368882420198860949623163916450742613012644278406956367177012299062234900537904415016937081840744226533532338399329017202016714104158776911396521391700072246789422557863716009171628411936229020678894387114245841191161260994763416499522570180423102285316882394935000410710813698232677649698898073297078107419934725603560014505922584122177812263862744337175871879097593931284108997240465046957701744718912463016779825252062787299967854627834230948171268104018074779639559512104795401131529348585361671594699271590597301317677094177920401610231562186106069636238473332238819198830935652697696832199167086456094248797106103662979292577512815666282747937539697885326988455578278036758891943195850888688051404632771663545249533937009329572878900428247336342533490730040726760915680913499149605842126376892906625456515409227455012248537807752806039358211346939320583259848073752677693651984396749403766859390860344127432619818377648793390754780860399873228111487815912995708039876891620330974900023312149281941612886800354032480845842728263878619488611687182359048138898273761773716438189134211402713795657805400564891444180825138230839205731567889108303896105448112141430500013801097852333972998679948641786938303443935226467196415209870500143372287314707265954318028274816078645781214958923932335319755014798942545435564910551467741424851488380867748266690014451412019993601603736901459221824763362564201850064399068019130539578456158387036147411738472275594496749951859572990565599755079598095823411880732991589697723921304885484307696310544746042783404065231389621484600406858686743943627143894272542237545677046090336193047661237398940836244493282235527015160524377135494663792485115974432764987391934548719107800125208114949463061353084923114569177692643764764525927643864263657236809627975246150819779442429913990249153842390311918131055233209154754428420165602478266758463434921925704617748384357684812372222571800263574523865756153973175667782327133573071179950117625421272555133927438903266971784430657749611792579879966116916129456731097465017089749570932776821934765500717856576789121081359229885218467104351576562039647237520525877337800923425887952594701403894569699264369831890279433787268389692072065313294052067832937277048292356688604060845027250768961289817390188690975810468033157313662215800194648118964105695128367513225502312877066190073293024294022166110667703415719033945334913791869251581401051161692026500172724554031821736799685615120800471430793908398073039826501469061966252243204514325039966419315724574275972887385172241575654498211830450564126571755077304404920832991323795803140182321448447453955856503775738954046232802598047435687620500018438375419514514248270706166509143309504542078726471476909494320704376522252056537756617578887415997890391563255403258318041540514963515633564211570842250942333975914860762288325517113167808307287905709317332067656949725207243869923788167625865774819240065715257666287580205253369816522717247764080195582037901312224416388158006332742672073124457601148852888869012666114157956840547870101531848571756791986389606897405859788176334617066915313141974272155221670839638018447586604709978477691907271178499149845424999908450878715800014752111002464864256201830340490889964657258493309769949429939513260831885855916984952965534099326073301066856850641777308839293895861530787411536242857788308525121246049829180137364021828427732080678616668683491511825336253792040721863251929673102278561431335963799248436992635397438963382002818259192734021835236388599270481073514561881051954578343811605613261774289333564211378887132470980897990343343850538147190872831791580617640724389763281364445726284524738915134088285568127118554909873319683967794508096258026984822923450420067982836706274790994525356109530182359641418372598825752717440520248598135949551374511366359220899757294253474039410799183574981902705160760644474527498250853500001715635462856095287937483982236672638645028032020694748024857079820496226196114600020492732507847037545999674716198922273766000050991847516293206521654812791762087712514032791324873148615874053628424429272805437732992908963367492920269215272533577365482205171226936472188383114572255704269507399367927081476556685351023574333994945791990300448526338426137087228726631525826930064154056012408079820897727629155417153460522535318179222831732020327034849726490671304780184369065679213767448721734225415357726620476388359276522694878593718455335354086846743500554220355466920541138099881916312880472186338900581844949822763648861875418816465235945313940234207788202365841826673545350442657316984407150491021622426804005314797895937011382463771548098338725538927275231824028508446592066926985126265337791570729403998290431039173148091159111625860422011859354609190993717369297566650674359805550428537604198241460245655612568208573230562672074785158640881841610429580376126363886198240993036725670715835248755282107265268857321937498907396570944678349110931769175959496738836452596986966823868531168997741925283577031067429721293616338266232848596111097454663989912209842096394077954222686869398628897929156953720111684487098601440391292854982515666741810957431425346904516806604270789585465932236497493023399469318398490300199183702961828794033556040743928963083553257646855710661440011486482964918131003505721156230525761033947554249499310708293600354659035905415047831019652322399581516560077520451459615243448360351655686507695879509005141861659002053585462043318981673822153957259028402434073079114178559063378553321042198281568683732834609510551857388573426262604304692728547501542254117046387853003091473632101549768612673525261161772019193721579494616737339411625456819239489428936826494779105663293722374363666848355730608451122849644324731861107657021186404092966039611342128853111551437488562166085650605593345287039641247222332882819535610906915414688522003689688746487776591824952334888358444249106116289353054199025688728830383979196418760834954545048754193494030309852285710935060337842477346411589405673422109188285113900379446443507522503484632572330180479997100602957320148794880818458557522107480366737270033205136573184164495150229196077776348505426855817150426820120936639827619790536338720403070431314135283676731706328646881102657185539302027597814130573453494894336623451403657035784083096345341607362634872870866413738505389400679187409908241258234192992193694599390891180174301662303645030940571248591024858228354390423049446936378899651962030632253969764163334304373913743424025434413138191005962299631644484746412888832934995653339192717434493462731196847262986195315019326968043194581398305720899121142270962855605062613652477059535883704773879216545151512113486338011291737102595348704237529805590524294571153388316452185552371992807642406536791004970948311682873866007266241362237448899133821540928363279503999114903261733719443981303046146542564336182420576108558714129390093703494126899597962781457134487309703821510072487295116277457023112809639202403413680673630840448265388486796992929906834956634957533273720179731530043159949469384275557595935814971475681520455094126731284495149335341647950298188563826470342344197010939271238534183744126804800096301161261247396324103665931052755441800419592056137157509419952220772187740010541840392597479374248109108532256470108150272635392223465507768753240580557587180437216197201824122714649461718516774531060853681095011865336347943598168020761268770093788384504556711532678522867626990978143179994403629365997650478349020748393314895799474869071544816584714768353793882633110093416002499666002961754498100496369729879507457919857266611392259069427968671332350855037649941277173245275074609466070305758192751743613721699118132505064206832006653720855999837623941848938762189891411999964754027303426285693847771498973008066850324442075705856670867745367655415013363001481262459849415273386079616775049901291246915175492308945596146418507409419957120877251602959053415054808502295517103873870858494116716840384492027019919123406608032912196207895877161439854212485484523072689845522347304752111213944211467655352451326425439570582898795828049480336779296186586996419788347373242151255502686860407854375124561967158922138824931446569396670695293269377674014495908870564007828073440162446461026347718290083301922170028041370313108910651312397983619184692864899036924254605832683791606855137722795429480632807655937949831874572196950883627514946720129871009035098968285545851269299621779570608643306964313401390175216625896569168148901748906082809956677596135814534281306836812076220569475227099677506542952422925976496504975594068926029934591531555296000896892681730265902804710506101672001872221749569499534184127666589182766940025531595968031716432150368873809194546012880950106182494944128486783910141123252362510968460190244210173701227872461162569602759189001536692847026132109208983510693877263446709444321686850036451138440958456114900845070662378525536783983212458181377416067233631020485101355779737007930835848708090503735902781033752129749780290427540380974272788864623116583841628181772870743822979101989746394629629407906622581487461557517266861842938838008905992445722175076122336894198049614701557761238869686836695098580886528782223095544476585080541961368680450606017639221163623230082678944444737240469312990982805920971761035542433658032403120016395872209440153579426130328278855027103641611623138705185015722054343004038854664029618302700417520878208245439573080732512403129895347208793349538281827316059735341725017587208759997101213711060572339458160070715556539900568542613932739521604359156388070938683960227889750471844204900620808677923738622335701880798893109777431660410670000647814595124897285221970576379358917706435448545803564623389776719581094798790736402846320167474876665278356149705582122432040893381523912409851378551872860853258919094322590466122383860923337342345958644178984326233905232604800614862004210253759975360184556812713426231851878325281666518874569378332458572940488391768432061328572534591028182701992847297981151188722442709303148200322052525143989267855893612572709189146113834141936318970086166375246340445907468254067979198876967320470982112029517531100923140695489061643735042813412015177949407411762930156796037146576345672930937553694931529652469585357643162803320661013218841303385227907874395298387709064308142612818264150252426141053380445449675761894255017240190811359413142468359342632411605805695170192205981498437869836363114423342330650827425780757090411937166796415422865799975121516341104749281895791367814431946445862380070003233201197124280164060876772684285662539819014797212258132747341999607815629129884895360372326480631676300245687528606125726326469439815396481249636683177541056376681039594056504441207875340326003889525718728663801310085067987580716656566742895621946651602336703348439199565881567839738971992912586480074447024898153656244324048982200834360557085515959594901902943938072070601777261355161062787496179211359749060794202239171484311936942533325527809578648561749919520272492388754708359759093794206739633275678483937891357301515821448403412367951366992153527728237704284947756237660567500474319959039826986230882088527628716402662212448574518632858060799221605921478565230744055503147756141591245038304354390690631516544523693744827865886443377581359044720963238807239400406419220222855183361213255653023426209025338017254302282324846524736199138496601199427441217487295840384485590503186510024736130487541378401721041242493354016744915777133751081252241872285715156787839161254866450502485042459398936015292463474959850793741865609351541979793274498444839178019503836835523513317327568961068858521123793662957322829090746382744436344279720555010927442171424610701214207518647175510385553978558840123042137199621539210762525677316543958559565322908409620891357589182923490599938587499827109098131946847344413143318851108247067057269582244815590251091235295178292266856063972486828327492616461488006180753267004710627788616656417732394036451097203300082026151485726493889735218969382271896952092027136781775300686747101861582059929176602412916040078945119111118576340221018998832279547277283311656879035003132263339379286021950561667229719069965844731997705327167429368903837115994744436421083955763313605128236590871467408521105390697760653057959872240583995604722343172959231460605593802407860492054580336904375595867318624361903621763603502448031532757552786535879840211445851370189250340831472739731255742886281871196946764659578790612119118606539650576596651448641247004655207637438573256684917660430720787453047094281171888319058681910443931677746538446188865175615075814518513567314102379323496279961568235849761391570730794388538502267366326023874432287824129194523919839537080540017933264963163795601395570235231233678696348850177832970435095553836978653573933541911266263612870378545273696805264546151375854672484791559397653243770156900742585912598334021011567939164866922206683465328572424797543186766962861102004748194005961168979108153037273091287736502843972676640963459325149375054198467045876950542915388450564021858634674345381658803745530540580743302148729598738473505470420749399073947849938560517734105218848977187724985478497522482657000992652416292717371859367416398330028237620386002426295034221920055084485148318946417217197842676397804566900962015849042146271380393488201571030432807543253387112929828913046489685168776232007170781159542324103064668327759920057907562429282080012334484562841279056859686669346544542109743000951954009639154808179981992893526760273176978431318040859856810147235517836872302242850498025684806616657602749384489257883521530714762687416509614762554469686785091761233915164399914151820038866145368482427050480964034750580719338338146255370983325549437161943398068026565581832164908873067433494914857950966541808321829234176549708877985384479565747250378904806987113296620137598639947495752444071066919648498028169395968966488791435734791694733973119311168894295079795303279359381950392853376141720566615478729626607963769506050311088774473657934266786514542163806857643853932047481720128914057970084615459390632483071027706763990657093586822638673559491008781976434675069669421133603631655272950091823404265257275710617236509219580244077126482861481318080865719531340770453012214419806554766132082355686840833781025905685854878047196570066559202477429067654252136137254268510352304002112122913984191205454125302489272240628960696712702269536817002867499268855459071052964217300136182074145536885513999526572392956439697928522028855226534837748663470167110970970809551212884015912732849788332751864863295095522104231653091328933537271607871568825941972311666773856105365132933527951985066922252624794816664794902257951757279765463478592904262860958475259151624185300899625884290239522134747152274967911375923166480397523472772268576383593220495919586349983126862946644952832332426059261341934694984570024271043394120433514835612093098843867115947499004933971146037412836111561353479173022330316855338394781574826076314174051437228176249379603479416957469522316840285105388575294662566431033348390716269529303586730690494665739064435636862775416966919754940107986398914743714004272693680134259411641431611045479447214431130450081930825183354279367124088204670259747028097184514909536899287201828564658559490360011074469071596653597559463294742226842381316623357347986881404726082559611703648549753643616622175853297903106200928566084807514846153416666003652801332517190056760991372040521978907419491361371074769726767509578614459597605579985783479649144831823363083795101018179572271532612954476672693597172445545845857560040192356870507886020881239652791593326916542261274850973121867194019793733726947516166929591763707006159249718265335319391348416918918079461926461475867409521947610922955905949038773862673025964566805741228628130720160662116008131757446606775449649413800262652190719984198162454728359766396910139606571936048873915833119421804315588884350729533186515375866626407853519340889220802357981457818901062038347066157654377241010819851778628943288372354061382965741544990573186502686237503650840139026692872574430405165760203336194320203575912110043686767978125989677952069026517964158116890628253257249867795697300465800958871572499206095839561545204996198103265030554769269586759805074029351496295078170727919452604816699024815096391576968663272266563932365490064746022368944984873192426710880012811629243006883741664201197553266869973318199700016482129334406452135988244522390178627245186506824602467426278304568911858271701640065576750223088948938086953649644628878576340913803403261740711497701438799387759881207287169985711394102455270519354958827250439867698944960486002590798026662777960554048614220041798448362810801778423746376601929978826575354919771239966461482548864893568721820896410818831385088754566557482262371143662256798572030380861792777548625228290393680150160353272095827931569653054645546248061133615394877106426377950966962441849385613742632513789468625691754706396302986361860325715464033834007999732148660476191469825486563503984142211446960877669270587642252487059990609642626064792205665080618635052531569779110768039205830556080160910787256919282412552190689753206639976804220819349893824581869100555969202015125780850048865851820957247479143909053541081113051535339117717733743031666180578061381120414949610020787524819787515955179662461840273808370490724663743074759547435164277691593301201180954874644101648001619169489389141640731133269405173319726881386434946253392500460568209018389048526224475267970995048904208027442473168622061443014914907835500692853971288916954604638031240956947013480259360699309116623673044224502171842681759579310737016211752477387400837226178184418960809295076900651645313797852126022575372843947349958904297630407070144369693052530337275476122831005987564349423565182114433550596620949522482965326230150685903346183036835902436237406235726476726252116090202912102248737998894561937397902354743342892625875889197249314598536768159238543301551437073416720933708625924653839971894923224659585275820114857071728017508476512356148922280110973721905616599487039748802623099073061997120226701709695334639287232957383753645206479492403344450458004762958412281120842987003609729443826238402304939277558876960069605234436033323120265236762812432839393879492461031460859878110247687908863624750577884353183801872005781248489171128328328543939319715355576144917555083814178565718755276323583345580647769907110670429198652217233354476086760840201820047435203206272259822356930547619583208720266999383481304234209696858971340340012476674368440218217437601422822965123954999019444595578258958244697125960048434414518024965310999749348210814019799836843327133927517222312678010774889084137413239010557799809099576326590811165638616175401322676275876716355689908621410154915436738717766743104438763750970797445524933981235231766267729399799990938427577088767519619328161441256483575960309876187396638345237929663878940486134048936192556290471441782720919497803783859762851598974538873269431394967770282477796601948188491296959899121694459657824794192396276139561214688634859339534301732102587036738640302209396310980058276807145042247112529093389306140125859606596886122567227980957937517038319171459045870830248511857505216495351313150415410088741290862745226650023781802124739959572261773888779596338530861661555967362985221077590920703237642140621304397245576905193023019013784135583843189545127526079287333205827248903427188625006055771566403626281031163324784939565511300859990777435529892103168153466838060927939499361979971361094232071670584382334035410963307393311680399441251186812824162076468193538691836800143498628811066904712521460484267901009013479120129908943494861022056669206605748430688656345386498176270649370368424165122927381263809842023997531830235473479317809305859566709495607734158729268961985219744486819861870151401219329458548844950646114038842335042919752834364266410782762368786321055799187666559467223494290757462059757788857848635951359356572319536867003932779617202870109607589317364597032982475421931089559390087714923355198640506529926088514944936010411175297919966551685474930166420542878616670126652631735766993121100594188857067474754076294011868592617176984148140358654911842212552919260691124392812346735165207080884901913004237083992698050515254370318505072464475260278706052505290771784740688076834387910885259896872337668359007386414804801937838983096064674106041762690745218923921715992425451651147762990598596330828834205459688827706026505999925809988681166462989359250653275778710950835284145644636882774696448335928027488646413810275006470924857349987359511505077168050022110477461979749319244934030953714003788291331818638623037349938982343927832919542795147726121272472681903347534281321347512317293183936311920081134583574499238042423063909609098081267050140711846377547420331152010250546437773410038276460603753878474596974805168525206479983169320825260184359507440962359425167477183669887921227814202236708521948900408560240593279243758149983586955400933159682499752698160785294593006816636305490939912677834959625097839427752088505183136420049741001523767022225643799181427248066809160747275448583384072518546462937337800133115315446398750074027851265748627736125122632581963709942835775957734832605309783147778638830555270112947586553204162105497801256911783897984883726002863845321943089831384243996887936373321943825763666251602102735298461447642921164256645988791489015894411735984771562524096540250452044601622103042700672041323808905913782363479468985147985677104235499807019801022971798996295657403992204206322450787206659555671564702690307326150036194058098760947112516967936504575723829813009617368471960549522450624706288436615864738940672259790758219869369727752696696517898832175493760068201448200966207232363795095326651581513782929548832544721695061642245185898127157416703568879438680916194362157480357474836881234101246605748603429684576888358770123934161135410505202504876069366224567566221775197954713943669318458614009297004947857690985220810940499349077778973772665673573540880293887242238151633252564608742644870844357660563250817735383826804857586329912230325181222107422588232756416150697801450570508946359167128258638676996480690659625874855895091310414786586519080128317679450324226544461663040129499450554827937643067984420405126927022478492249700905754831561101935624446620907622689215201071787094814031983889376178433944015406170559422613005808621978446895344836750909790094135406635030979343186333471475896559953185467373178726682529076604546318827629083403860886574165300038599279139423607356069411098686694598762921542265540605250292380714953036793632856376907293932558245383179368210706910528219827724733098500440674676991718944515682468180258936112327590083882081174325621529157449758665723050457363585115083778601925397294254073066958714299630854967008291451549291018631090576490640042200133570577498851346714824405901010710430674853724651470592617739442742532699784447138493742562865723232642263726985705118854977095067238381660200689966245900806531544887983260170351161759630212232079389155794663124623405392165874674594214525037087694232493896348405305715651421954788732220634120058510108096999437971850689102752995317503225816209964078149140638497858833746900713651752662640875571384225325903086510230489604284843154385094799193947462042110041884427630937063161448785338599184573390581184581108668063117325252164093047147153458577697752071103900290048484772476158470078123680730847995231272547125428464371199896011219136730101176967786306179855627428265279420535458483417975581345701117699287268238379403072465400978778936892574565759694243524985698382724923418341177184127060604163260372218975627608128217799114838336762443034610215086888972021118390290278593384558138915515803212293120275242686768353028021363494494286802784049129380715403888726708258853386212360730193018255954653105975732323621310208861298254196207794122535305653168536582412881099664337624275150036382462983290121920432914693044953068321818684783557394287179267719797822892548030010795162473449061191007579183158723699129595751022253025839292408035727292115392838559452663246903788949355996809603089314367773048612762956156888033026253801305364568396752361159149329181938109463498567005876060565151027335349192415600339552018076762525785552884944902043489266496963047490574353473490622235398529189632770452909269036339908047015868546894750521399512843678969779712580487549033419749044224981531459585488180081808499411389737140023440623964405439709307357572541402463749390224571160888554272266626618555006454538314580256905066191061215791223430640962623259979851428502019669627033236949427176611771758908994650008048738471565247867360351870022807168234099324727712569136664839342299696453890699533161161842707916346663794943956097429588230314305199748496021469158062069796530382888934370172249111740732462400691518232329001892615311147618344891609110710285371005515546541139119308531464169862436721920345827119294238120407396012664136556360275053982605175374446099461713116585097261044055528063188796680017142133763976451606312517073940261273648541134336728652065737943819831856343759190417307264367703023406536189202480904901185321802037600510423414391953758335228189620484573611651577834338598046615907013645110150959007354398592913025396222659383378395030435352359162263554923165159394427724450794281086604380852575174724462031972255934306951092920952203304513100346497323054125186604571222992678258695351231453322370892600875993890796042541810416973314073946801298087077696657318412844530718364068509432302587818943226138886999515979133760286427091116397872209406986088899524479722124112795384506522934414503487682441695375136793302755818504407147112404199666093070267170673884346255037038338771292753620979392102207611148910202553938174055419860031859030312239162843090550983253559743737603868699113227495693631508478482343440717790342853884382461923110466380607788921277185576844642873999127760300253539189670896195738867979826300162978966225297884481389823924372741786016876955537677761522662066668807122447986005870041892887413174608002529560421190693772046634663220947747000550117113651503362337062123236016570574346626658885498834233314105123333878854239622923052412177784420501951169473141076119267584529620125614555457002075180939108556954392145683592019991937159176100601703474953033651523521973336874614512917486265309291090558728407090236903048939883342951189490269184945398483187937325179986962400799488703425581012022382697239658131834339772501938575641379506883558383991287392084552280721858128396512514688474778538503563761662970163317606288239533802681655408898940442154040847733658885152957185282269095738253796379031608369060464384493044688166309608870978070353661775973933541388891555293986639414692365211808728119044148678629938566945142599218705892333915182799870964834945270743360705831776327194243694624874463243833718174962023883081427635751890783071613827453313663659373068937037318415515566287628849130364645357787535954192373988230505652905613232113666970248785553353587786074870623411030995881281298560975254936876947579713469838734387964479896862760712747356266073454090446682365626609380318798525191602905253814238684361500808973623297723675136273860441841348476193704978613355614914508318164898551168361662649840017292193724671065386157998626587102434286840195403298497173713290184016325185400245483137194879204179784133619742351851636722067271495991781740169470082662086847550813840688141648573346736572637832433526727654945902894367341966750770548217604335383553217794099123454494173485800553111415255859678427586177167924274156012548974971065092790018231865919837228269399234446846879937871675818841240045867802891361583061444175931353604149091986369787743022357227312748110554511698557753435657287172306121944686172797048376513707015531784872834286449933972602099264947502564683002215178100361034119076985658494335400718531508243445203285140698401808192386058337890281012001229050672205265470821613604579406056910128444658668488850928548538766787619943103013426224820121110247590244783946275267907282014859981339236727254699015463710999414286061646379157722602674105185026201107069598512423379274506597029856326727915078584731109495265683388116009989216664445283207533163766734388425969165317866353022555882867042144912833031205908894489440776889363252018571753295206729337626621802717074915364211086718092751984538096892755946110077958084595774628475223489239513990022966252082569057220390576311047846914615614603725212457213920652639170770654827639695513795442227381968573006131453873845706121304918726869306007226813183336669417892388422652470530910857568636372056600654023389814352841755042039850623789050927126517339307013334187267268734438027022580272641506691293188998212099805828378804396115257831903961259770150367662635685294165046830513915408400793632277501057421853175333053002563209248065779045668682498249647797511949280071985136281036470539925393478994706164529173829694661277345329613365589869236659831220940017826136703753598770288847328096083387337784966370191434366946925602373303602895303216012083745745590650772501703965631804583794893252974334889819942124578746371132939792068365794522667682606900119241514279777035932760662579742378466664163710059876433538686227797355815180968409287200149472589609446621007659180010589196853017887793270344123893053311774048732379028844443649341599655689912205619395157637740926695610206296025102844155269828676109230686820991258381735443895362746332307560388786216456344618564867962630410846717731754630366463849307074157505455569904492742236726902850547175641141331797441160742691699350559369625698688093865580838672609355785211908752400112753239749493751048322730455273135521552793176900076196211551869072138583992625413523138921485083623803868654729880042092568694282140533584667663538282817863935537001461103103127254607632282763638380432385323970880796650444164258153841841818040281059322523509824859980041675393680119728541271682873350412077794024992882810318177160694306029240213268628104724915887259145184480996153946795960412224570636234124847276295731148266755124015807434020504884378734020674943817220490146961032895295438432048954183275837795757592112175674731324950353844049306981262126967007031724321240942509207502312365232102604829227185450600644287588450631247300103335377314052459315516691057222210501216573650449482098483029833874743988367788077814478544069419032819588164920999519731939726536155751341930860440109108977109081672121070416078436894044146228697050441558766270231098693968367973326761925450339506180575872040907232628111667536420802215732808063870318154100448423861991511716171523141022338683333319115642813611108899367934416761325567024604586156444025104444178372795466100813401365677831496336476404651703049353378698661296835098163390239215005591858729069904807304065551375360992748320799179257808714763203516550506666848180094311217367051371439660279666378121109217978965982969184354205680511498865699215254480119610791998888774895607255226530980997958768298072250833141374514683442012375824951488883968082055971768705975299057270535437988640417028862364955827976943272211913961162127909363841872056486938394642745014979216457481854135405112040659670459805619459064741926518578324425946791513861164631304155960834367504660491926523352320156202320661353116748962837753467521136519190712755152525065595813872572624883583940992250621135085406110389371717190243874371723025776739567237222739061408630939764917615859215447637879029399922298006934975298686311470169288467818104301095721599239662026883496090636537552443733032733310864251762559347746226263853563711230036638409469793278787544388559843033412885488236076579145574483624677980281940352366959123269975217978966118159132520768777087487996773231433639359699490393848380555270012247781939184794586768753449345051345115897991325129792531985037362410249116655555853755516410726250821187490814606657557723440238338433907050686200654415790867106726377883797001946686897137479157550651495699119929541106904555647867513866118180666878941134462850853623056496229988670243788404030201911315852777154993045287341864539561233305637343858214680424454671870319595220744946214911432883928621811364397185023003489785993739141303311121531806757711332118101302222462822667229876209249651100834718584080980345310243962134548058204210768846159275291530960384054398323073966188212111920841931445797702065640832233460110034222976547318025981830413687888358905759325927962252942986038909262138568895617771812313014919842560719655523011576182804038000203994313945164003635526295361495063361169556347880077468135735268864290840140762829285897960787357457909681129422591670967108663687046121861637101619909418334540810742336794397278244211416722629941009666886318039693118345664513567336091762769655600695798940589619516949717610164003833004626276719913669218765746694733703932158930654556138394738544089173980678457291467164084446308969054458883668820714243200497782384181743815394483916940260593708976499778219500663383733796337127499419635066671348370107900924501533299089704781778340713504225801572893955238709874526667577364353822978136424238804542896098076913364639259398511434451849970743815734080353240260019928814950997934591301485271892861634489326458182883957780740221065702214422642332699627470213996255002651278057455054957926181618486080824138305663443516164242345777584795671001559931527575589354770328650767871937690178579329229940785602818441689337110192742017161164055902129841877617047805866246780907539108299752843650111322642123811006887663318639016306216220340930598590748270154088779910056169310635813156164664346363553470700132893529194816126138134987939159345551051129198629089868300117583885114316107465738599980373609162389477352006513054778828321693486756901879741931602179194349317513338633261394773133603182162276584431704336933999548735419373776253215963781673391928978030480386152765980969899015595256006457783651621285030937404616198466428399098781212283651784854573728035458082118363327786243566312519213523699668568968847989848494985876757881716517035976067330275621321843864923912069652713393825607297452034924661140564623526710248578389827429708307569841106129523331232200011187260271532814503805155746894989892259085433187756818629300811760975756209793388534914744663892884896168035580961924232935576642243951576442087982278234418804778425210713904789954349480166677307106593282238211893262649336348072290753437903126738049507616465308693081435354640511051884349155679392365392562745171620272302603193694066263743641704718874706600020970878218104335579710970884963148018691897923348698590580454551480319556190911567786798675201074514007847401499778172115073189884203419904700802454196582816738797521198626719476913545963368066404680878689162692326292137846926689484034091805013980613597540618780851555312780717010985413813708262171453257022407059275202225583870206456051220441185482142987469040309598165799783497588000755602756596532584717104393551498646460718037917694543944929008100233610503998437938418118258468266521772466036539532875420826125532237504566866620426875690318648824743250015274976334305182964697043927870986313377774233680858360695575443654920278061354980104217327568882432195743740751914716605669626286542582686629714123262032511535361468682625222817811639497723579245605465129390060359394711220262528659485275633693915450586538377706876981452533695413901945449547182367247698729352065605081557906385468330764845739969707626661562294823059051933443256727027167875993466492207233847613368122464904711329775841302809438122527854901524783861974404201967940190511837452043151155921201971184393282118139904287386313388195828013386631910717714622640554581550024666186330069892375934173924362114952379321422623553611354025238245365075296339373856527584712207031959194009883945045995627480637819850464315831012012074825723878750395687214683412874363181641280880346731122148289774658353791016834411894803209933715647346914583209654766396400046317447700368020167068089446403958094278756658902819337045959005661489823703248494485822973019268094548828819352136426522644104059514816219053653469808835706159712335497920822910405818365154452187420191352176697480807082183622664123868900063248014813447066882557580945641696434166674251476009702374775224288549609481593391211108264071709095267990985494271187902273227689461524661210725486793222065917413554147883447255982575659727422674510277219195359911725009968858718810073676642640278554182956337731381465368580717359692587547020507462955183220421045989998380976205816606247327459805175088305371574450277239427031807410032186967293131716141374718974784281392690558026073284425938710210794210602302287275164105659361239296941735097808241780232638327823002473537568101554117526760771381177637583740360924620321267190494408247206720336950175057903227747427685146162363670135548355940965857067925903929342648186061290027567232592900400146156555068597274218233095756319746741421369888212662622436280102808477327098821487314699272816954381599941211814570434528388296723453051017747314880022184884928914181700555686704415876121266942301831974102220015548958380371586809417187603788772934882053834939578844339181494786545006858556775950421755039485923683393375992389060149923582087761745525329565039898685024283239475813236721859774544849827919097225001018329812792489488704956944695357526251693712315583396860425123820834687838159271838005752626407590747391389775237470803737550780943449674718475735203228752273169357786954155333201400445901822479387721403285147133626202822067437665477406756074812686877670716801376079651071300544250709566975865488143860512275384651869385768049365934209132960158743789537318664954240531815846211325734137216896768973561551242432811051903002413419687580734349318798850986454720684527915853691967634688310229908293925850129549857611428023610207120130384465474249960400654194568799026590922577040061320982045031629055479292310711211595150879860421468388866788324477789476008538967490034607588075124545760464230312050817063569028701677955009479218328018522418609275600009070591182085309960659170035848419126524611368248371001953897957601489092276542905972387761455080849051017253420765640627227002187411289028891322292834615687681128743176498410281544634812726279019642287687552567884506034853672286980990542553266473787425632852258867169666827929705098776316448359148046049596354425385025440954789583781336427626363119204891105912735996578988162153108338667474641678083879943433120738584081143608344521997717744651117233297973004378397450783717109970883956268464460795335347410838420861635996914595142908334857074701132560994342768231205658563638969275470477496290210944219472059506768856201385961097177757682261361725619404358176341020841142833900196844787536969665313412416264478579974530020481185347069040514599234920217374579283275736897933222771237470077868041757178347714980210338014434679863689135096739675258363999742512658926860056616460037264975099373062989378247500295134014189925833258857754286555891239932196770900995270352162082738148913003191121170948351143036353477230967534337877567001355653689768007622781485476081258450945678969961565475376396491413815736513853976962029867020956150428338810234586578950183345684530562200354798381004297144072105433596769521007495610504065459783382129808628187349433031109783429010709385907940015533024180198152292263875671916960123930968392525216615654003694199776307959800693356036447384449721838977991461696351588289917869443358378429175474889669045360132913926684219668754074685991646398701108984869612046121354315736698915724130705048341767435514996840653007392233221275576066846621538712945002531352980373585197853270889791939215095273986820368602337548334374052747713546374346442509387780130030838574697296405175716564328093602230121193850075046209513446712031072573233002284960936871654648997095221419243398341393622486843495595450345277373158004905486895254244235474290953349878702852221855969916999326486895146083756338594862379795829034277510091284146496745371010934644172277430336074703402579911274873463727955167388213432158505744263344969706505695197823248081343969502801234052713828534853759239092764995813658761041022468474203395542278190831380289185548064975082124770456742053771639133078123177978017271210988047636459468533402359282898619334679844809193966319200721538269246453165491190114920039661613180307041986939938520664990194653331244206513783383020936835865992948568845758366865710875078909375199028326891951891199876092223818387808495804180209780460501437887536088529830523211041095917145805301892334185950791779753836631666325994883107440505738742954082442599460367576739745442190976388275781324294599943608159708265045274539261499495081976546303780320004844735547700423650547469651312567257295070367456243478332888979871117741469363228324135044691839113403995673545110225346399263913445553182831210425917233109076055999589784337071390617929671383242506719301943373263575993048563478346201997526074421902409481523575520549432826953654473885403211172622810752863612119614666038064193612098360637748180422373017823492617388650083504910822401230639935826621705110070561748161113912848367018407586648911667563464152982820566264959517299541471382054279999568540641705636803046566877834355064626925519285108142795739844008162299174832135011022370800007802687871823834015966552152201131840254636570294448045494200635855751569755232691834241332786880391100830744767217182450324070042613617241588179900723881428156393727387858171203186837346643849432547431630129647052053387142253136354544650235672369436837926245511366869956100234619247319033852009645010268412101794334411615252079014591319025113357829060344934302851589422480047529067258992921811980095289937232233670171409708984747961790967817499059242004412193802100579971228973236249646621808075151584970490722319894934303180128563833258594514947992070662163491126243736289761467059449527985096908946976687014604107087095770937540944826106805066699001951262655693536044901050282508376923627910767810888039694695715272189148288928633337552094776347082624886701420479283629930378478086089785395043431082125102192900681890003382174546599525083188498815629806316248742892017234945749445365412090719534389841169892160950068507576330373287009283666234458013496552159503658549527413302792031587707668441743210868444102908786581905154357674670736326143396173399543220231333431625341167127599479247707884907032277636330493177713924589713987036008834156933881532557147459274509644992501213378036564295144574161007155886054934825782709207405037303662070960964485032120905677252061612785228892039923545136059090041731905439737122569777783663265112278352317488680804159713158860725463178324704988962635635181942506627098103254211151198683516912916686239083595094289214016362820516442185307326643597094709361788515032961134886874388354333612515940408688931638057603758355710653741039405303170973535569812054343258294703765257800348826172654853470022856689492067111985912289082800973894525505538544086271343314655518053086623673078515979793449483175711289058238536751465425359222722324544189339089444270291274842282451337357964499623011048039372265652849790053140054982147799848829657265113272244601887932530177753878815205475239697538052672458752434944042445288376216538834508993355860015487026571038476317332743507250751028006694643423348880693494414217611251526816608223046812704828771157948325030534801871149616406054922668270880104596286179352118332888889570698211973328269140115323017556865602173501459749329034609271484802827449946721277783133804677574795805345346249109194162531550367445914778704529537162378570002180166859789229033450420928867210407698295388888522161479955877541912972403305025356847494748696834050754995536827993812787593707397392371726592601076139195730270901016977930048068711671850644450900138895141979154718815615920395686056501806158153283949385029759435284428004580938875753193764587568186050611720309036093251884650795799170964049144140917004669418233652339509952675404545220496650317072877009647566421796381295690676163946722717919143844047410701836650328586995670706855620437228111248166417109766160665495611293670487576609297302473837460937725820180780454004662305665876808006715727127081930743174981055296829762752649440116570398726925293880052935457659245360622210461619218280399545153607858222357092064430470699564176890856383745624550912577657104778402504622210693572010339378446680414452234379031097708869832894685428140511067309788975420889056735243735192072253838974208689325810230542769028434703830063336127618353499608817758909237215493885691702872514874323060988200543363114916999121902779875040253176522959943517184356566518026401756438080764777772179778925143713584264776342674181300690408767876100825724349674127473411982968673137342445651516031708519920835026900200008937771314373776508468713847380542509888152929002215669655619316943341494153452395171748013360862266869396316390026444194478391749642969303911278626111646891357363782016318636790924020345920866226528110590854827651416552090875412385183826344270022937834925257477310414853160765358175442427848207607990518362726164568467418251445973042372621049037790416652978466062665825163335027129631835374908035270279606430590191368601646748867533596939633847067536891008767265304301562843600323062600119259113232808110745836091058318135076649097910500824820182659010953481578029560836058202418136099558327769232723541771319180412184806639615399720110510742486474425739278880357935383628923373669783353380813343367808236854971957534165480203123122904974824632976940257489890300642936443958798909262571668212004883961187181462661715838554729507777757179622666860186175635550682275906990232215644639751886263116290430054579675630572508949842887048529751594117264418655199031648046699891740467830753020424212559261153110396784618140828202050020136577555765742535922437882974019841159996821074409119586130038291690061969789651394384524293346533716666578952563067215967827143481050472164948856774001409201154518947076171588014536552073224152203944188739900419245089866433056049937827213112848385158531805144685412417262410916478176915205217202150577037907112974720568937792205483910624887807913095244780615398195030033731307945592018074517361092600997757188017707090156684250785987250974561984221163510570439183366419437317928422396699333735945099294338394535542572327414728980700023375713272846681947488206718744348930580084721302319402094837486527244151193461753656822687288700402465591119395828269869198456008628917745370808282260326991037877876465258206911651769231905546011783190949197508651227196408815728737485578955196290579259102780279050306390460971692063845613129512239558029346494517036247287370072160717409610501133436736543887191651610515357726799590780478031763752451741693352353869486434550479018674867625427848803465305505927793010273551399827906826680510363366108962572975005562779651077159653133686100140308106405379369129985957772654053589000587548557143430750694894826953182655782590964291815025714092737437855501939220052587959474671430982856723110763971531654170427093940817060347171691024834924028561625703492913446627244809204566020229202325899684000902851825812408683752844688948529560160260378392020181469678572880132955874815340465919436544424287141602221761396324728712202385446804216531150314342954987043944193745116786240804023755660082499760858525267544298661662063104709950767644942868551931722973725510978055801391782302094820867056556058935164572604033783048506204828090797319048937429274196413249624546945258608950119428724158927952910227399890981100820881217797214380764450183828180256262826857961445636892520999861053585045318926011269536328770940027210518474112164224538885545423269998662078889141306043528725731743573497740544431832997824679805685721043691548295899012783345243761255794603010195109363377750726979172038665571542545106366776735979327489487399324857669215116883262894882901516453387679870556631317799215441980211105741995825836734580424409741819452862263812870623117671894523971179849498653234288438669006399947943657072758307023337369945991952557474199328187839596394457172018360163121334627985016489301480324540584168289760927177531546579852361889547625739386898531613184753812866986046667328795944868598401904244210552499889301939482093050270287664775196675238053070181345213604495385076866184197890271538396323873077699346977439829544952537606799481720416894119038661122392730245002863268951714377090946190744425075934601553712968981827592055928298688066997585595812427465975793790142736152588285586116837458400095035543834705988734795023979119369047324302151205400906668832198161685490410258838446173065627518350413593191419718954452026167984420141775076038616508187653503586479330152105963447154611275006268473941506854716677119773491869412009585090968153482699132736177347329602395581760969920495707704023360504838820307278530953143718397730215738582860912364875916323337245456645083753026476643127194094014165559140844697777104638598367749302857016701109945603639983377677938478435855690812513938439228695381791387450603865766385702204822726917658398421579155761674077442483342061377330436820928344263219001616624339830832834856478135446682367769920018809171818766168156199950236822657022749213558967967001128484204955444639789035767044051346655099030727318885405674289635748203408640524930468689586321255013159377438100690022864940267045142087757585480008646846945551432624368416097999070747773727001523445018424219526920582041428810887507667161172170871856473653322221417055579163523166355872588978387214288330565610402930669675337877999932738380116754031371456268217632348259633956490898892076569023852555426377700963016609788189797111885174898248587674794224558234732478719380478818383346465219016870512813480179790705446257198627027119955080874724598393397517540319940000614671195234935424961382783617758732438438297622368429109820502357266257607802427728930800169411481744745872912760402330005384638728764220932794098512303169409249618258361514426092201954903020679705823449328900234185154646998128761609087132814851989386098829318131965981018243811125177177184291614671043987484388469079210959169426656901683974006657881084308649857158987344489821284321150139748942592333821836670990970267428341891611394605484468166720217462587631965524649863598751567238741777303881828877443099779715392882468027852243259912537410090940088708590670279911808344709624373650619318847612194134768210257088597117861565958264136609158591081602180924095885140486327138891521976876260025353526319120238647127482644375688637866331948511553837614185997690832321189803325388659620942390576636655508994616171891757906679415250949950689401876545658767763976798791672467621832672360163423322715208204771552471921672170841242866942339063508521939857370005493299843934429266694474693303065982006206458763449732716007580933665422852045762899754384904991540983557886163697906857158852978824225130344472108896385600960708995236138206108742079052545542338598887910555431183865208361601597388575328643046671667821533117186302993618928240482964345060379826141304529162306803727769188265907350965537802004100981005834976739245713736716147828496995624984491491131079370731212833581643251081634721512095703387242641312226992959199419789726447109801874040417386030551578981041147677904886899299769167579710656004202786383912427590213449336251027389092728796210221752218831192220846819248762214763881457980870600172742936736395207500181836541833592703616827699718080792781844991297516913985873161785901537949019892943374013864514825434799625328146551893140306658833978245131965333248245408318893641575851123436278539537392734911470417486695837634252854483686839280279172996577049266253660445510354678004180795047016648021797394229663332955659072514454835512802167256089949430919034062649718935462467376524207874982650263057732873421256359522979615033935755095811726350856018419876476632113941261357967049485759670459383550169367430676004269894948182619642047377126132948849038609447470609399971657155051556084373062922232530084659184363907435515246952550590967286607829335799977406205601247355145564271166273471837832584514439983901533530524479571937486846702629050901927785136646061977700257750453793704991294530382786572524850067348344000504791364940614681870820784591840492328957583786146027708057926563611341134702520833226814695805234489031971614730807239231214546902172103128020863170847040542252776132447278335888427136924202387949437898166013649594955622840605177703737667438720769864672295468031764100028781469401929017999005545788657349884922311705792664876321074993877725759949745142768723373572033165811996673771957218171657020824085791061117480113342538117128300768525078871381871634941656080564878957491063660100007023427554962730441868992409380621381365806693847502973722214801964934779665341749666049780232278561155529327063828759631323123565811805508763449059233009802877256898405062505516773760168533683267459683168438969548017382016472787970534005960737470685657042650727829084332510268306519832419427751121788846901054830728143359680248526721144062504109017779102917572203459487551112223815963434933064070365041262170118916085975486000691691998804445691469707196451405816280779737403144396035676630503379162890402536510941717440987855867886765461480419951785569648169609806953073264683507642020146292088367410671708509288065169752020603634573109841558708508999046953689381949231821192514693091924275461550568141772790462625176539656512936541640892951583989699352123690491648576773386211323577670014365981765146198647859423786996614505069150453637730173907569887269209883269442529658570655218438698657558197160714489595882219198002293879843030553124648968557872076103831626457288078432453259703140097786577479851256216488918309825219528020369037256595134946542838115875308226775449613881441052896456423270352430750630916281665363259776713637587825716007392968320115642399982643772270794268202038793436072458066709929441889344812802811057340333794683549007466164614145614997157701320223598301662144439955839951842561092196428157389542373730539020283814720500569349682393635652456208111647846010179358774384991276377792938805427154953437199176156218106070610142993445004886231750216926522735065656067759660506965572481336119426537865104659504171496689759718217070046660749753184904683407345161495236682067740459095379147343362819999714998963573793924722414464845953495735206680315813408312506362280150897372901134490154989026989996424137300410233748414565923787280314313276148734831034364770101183847841692080701895608020071517628250054167986390359294869190009756348629762968505265673494309816585784116017209096330611799863263603016652402944536080191535181505497656091358717525806857223569618695145218757502478497568663567569651632856008832374650840643518863729867255378811239318371257632684380958774184218355026634990950336105734395714761113998441155133321178810295431930180062480512368786296401346435326801778229652575605676138456950531774344051327746006067908225564117320807978670800117039565169523647752104537877742582170065761636138219124793019570341542904271738020955326057300269944760057510967782087717289695581661962135027740668408784177470797232472154857112588173851955498017987149452717930436747369756886854525483817620890542375066652858768882965584658794459048246809033769811539109374411258549601556790635512903037561043652700114932986773777406075496175232039267904701542546146448924447644145244676173054171883725775087799745086020346355317571669072015768621596801049621743734793786709914963642177575254035242590527154639899061204619132502868949454058053410733264935266433473391915246816471502874261213023730564369597853334698866970256364655968977966896271611927972039326761584565089575975547403833866749502534195440393535459624674730367352538776106653344838635112075606940473023802087367799733691373270605607669720622892781642856941624806372629845141731773338659792849343262567482772787005788474473823680998717628098483520627037357203650410418986480279211181764162017006780266218233481580768465200927062093762870328799796974771820062016000873702292043514963486340494566405965372624874159273330156759242901582013234127518002840351363833420058338957673064585505901759277816150597229842204840247676118362058553777572564462827017057685208420510455430743196925275361226285920400525943562645503941513267377877666362918542172608222661694940250084900129148519878874621974622903673677612306300419694326425323078689408649478929569612100239311492996012484468085502918307062276289286558980094019244237815976353453321723876294142451283514804435338513123354810610374703028781243612629094602766746625128405402089131751869704766758483453748120222496948392246096558808480652744708302124586318929999476272278478150702638731316891601473905169070274802171712492183899077241907833247703935260039829392398495481090899665668346782042501072680243233347235293844057900787138833815009557972921957350738856830911545954701947562983353743619782932121102689601622625001508590572589549314452339957343984988499211264965849179817639492729456095474195067604339399929228689513332117086333678444287538364178817134820442006545787930406115499031672817194431135542643758870717385992195200755020442996761043594840406925593075153104206349279385643794990971120082101641578035988113648623706166909206204282764597980835576339184346832523261691604462674821560562675595177962214569990806437547448252295842194975284679419957431418470625721109008068439861182238260352050372108651426668545482727467525810028772885072283802369942544943615603157706023451146017285613195091791864486871505464203466895067173774952269524654974122047594082286125673512524090739106134555506956449983074985532790303943364303404966504451258522943806629919387724365325516764425758292897137076928438321606845343068788862225639274736365410947697306751901055267807777518743760052576315935374898581325535396035353222395445696177018695279052580095982114306301773571291145596016146695365397654495305631424295674499159626954870103446015091144287814497192861873443633156805795149862618521460763110523898646546163158847059563941415559502178446876063876314522242940400090197201998507945862414995490271138200057914327449014043013639317999514395931220210360217629627282154177656578433521154219665729716260608984534488657666024050388320335360994994121272522360507167557181678941418613033455240431170787079735312398763463579385136184467271660241529806714688543286697666319950330740927937044742412055529634357363766797675872868318113684688584537925493039836869241237846752303758085164042372085989765902755708825393423575334412471581483395687540071134076295267796488642651884140212507035037197569284723258725041930849965697227400685298089219586424996413969105154277236833942967992759579003107133403795043399503135998922892540303242681363917886684402462886796443136547410518695539995908997028982386144350675026649654620619156521525812355396186507774081394785758728966749106066962462954911853087169327450023217062186525129262059362331129983319264189953454638822962393510361184469972280869672639863702461360200851639221895307186596185400050110299854972727321786688111284292772553623782469481217343632425754449178630162531201402358037669231571193352874015855077797242277316329324517198898295832415598486768268156366563367967154491553653652031901180765132674070227282544981244588496521892256804464588335064466059746597113410385100300084779316198826970121070336648825180856450000665717345263677671672536067286703758385329534249709156264446807652344175161591316906091338838641335218108858722660558224921001719613831781649634645483674885321615324270825374653831398562997037780787891454418409521505269035823424978241757639039669885024535953795288450410730929852905029221008617876881309612382681956599564478111300279365324020112313368120431511184416513490771673372053404926232556462412616225962078213047042670806329275285320826167514854862878153008267521252957350680292698062157103587513435507602448347956568848030251295426964673921243938398895265011025348736991501958273634438173288408885427916689801873442555706545401710273763486581340945679027494086243730505117457195677168703614854934732879734754185328666940624403859725940222421430856769286182376499509348122378621966798592184975756141525699484758073907384914841621559526308684656723720827100657495954158888327601219689342867276270812568860208319615936139804672221734437475895813395211011769807162155946890568550349233682848820442299019677391926995290566759744876367793596534662414423625639499952971132166540521782511459651155516347160316787393630325347104520774444439856645465876260563078534899584828800853640535597311061812499451969538087234058643596798427618346992299800523611811662954648433198838604627490696804129371378561975883636765874076004312072825811197184813034927553293670047200277277206164944119480317320232365419618533131870062361667372283433456728799839138922140155451864983377890730054715081790738969797392714152159959944071254966169228981437934495933726703679234841475857228722199224749297850605630315361278063418024974333296167015649778481175995865710775851081036787836158172173237888611410584612987962997593261985823214687179248525246915079053585879214777648737539552412110749306510890602258978880907955607203755802821631834987796316448330489127574108230851865329566395109465760619889346242116198544574967132390932806984157185118340442281565843443140901702856754153654784574543962546842185463108493072628683882739797943543264073918771424581144416906113501032587813289769841659613677889854573668375727782461699174273300633340168262348442256984474135988719982795929017730664985979260498242268789412561167644664402283860888518155739799604769099677399056028722590826116340913785606498314982977268698132425887861495950650602989146464341554583866868269105213220802365323874246539090113262827151231521556626450364046374141781653899579014353774284434829172849785449741185365754092979356763338058019683502956997496806123274439971877254384477461078302989354211746517071707126839808202751014049178028020948965001719793054314094930605703749440775434120876205353400952119671685972148761131127318312363937695471683901011658254430331767008380201638430860754976442383901306154964681458458678707295203702288598720269150785514994491762782099307904401811705884914100928198845598955626054087542565654175492215941633167598022761758723439553519149780141528712628500636615604175465892042461541729770617459075318743100050277840180915209202922980057446088768808576405074489376477496424020547860718280969328805057245471312305056581897502137085125654208800064607260956348150260486947873797958840909385475148696989264537110990765303131023143602669430777819473152201100603373610635641243675972145923994151270732339086931956223719560352049332546229652789096597248487669548357142985865738987476233305025088970547382620963444414710868424538197541805698500113432446310183666304441562704374066335547966800194306313708878229665201390869213798737512804886928634358438279344762703043197434102401161037509202014218609588863014002949992746079895990814239877362527158858697176208598038235910397114616434641262706464611657981419123149043856010907415948378066692874970351519361057225987827438451075711924531009077227800240844163897981346308956242960959392576606876755466897474491598894144108000760963762045333230775498200144110605744487718535538672185634140375590632984112126991626678902189678568579195344132402308409852251749909554539332912223971061298604280586579844609167907113306054705247599262194122257141705056770695677536504193463871507872004107804657107986371348187027785885426377196626940184802029591863351374766868507647057239383842676160768391300321840078407031299538832768184239981955408344664045384095238199732949925430587289468473798414362651723884847832411085552508979848384772456871168391360854122745329731705433481491927611641144654428428474566560402981444919923437482071253405543806389999505982553970524663857176149260050146271126657864218419338152717460479568338405690098900893249705390096560668451192113009025481341000735068510595107562630385662688120301316900749987994656423859965847891922560165932246268511452744435022300470538616902693433823472688678219156463828389670427127236633257186429314581777809554158314653201634743955744313589388862598821315918357747645393941143024533523962242747954629026975916803551117943496569331463919735008684453920736706489721902787442090575690273324334082922185496823221106976326093375846683196569900691378724845583029014588047247943955105590895228404141736541787349729447496709292595308121896815525796600611949269417343586619805856126567174131150736013731537766399171033405874820405185883297417634083397422975329134634564390554758682446954236987795821540509621857607015638388008892722505879023296149723633776851316272858660439129775620185318246550431550030019909681804320186852479118574319499054402368243189160349800098780531858419469818874420511989226842255356076699729903381559168949553588449145392270780456347210582179394059037371057761236426271395979664044783423153249221768037341283630822935421259432501438877233530159300780514725962396064825339579334138297161278307394191095531528007621509906792464895970057815920226881967983619224388735064969307137698292659433394555433482444387266449145899411359631718900890706387951419332193077402286439687960868142594643266846068747407162297105520168590374080612690683170180278059332927865836491240665415350489918437766481589868861090519844516901462540818231312338983820372346815741374305107083431102051211136859098428112950896537306866013975439446415983031485807796271830467916130348367786425753960458054945557252288706479025717384294334575870962186141667566377180048487760398140236329639950794468366419140250454269192403678192339528941184635925881036927777800302743087407849902635040761325359601281104094472032727554166992063032238426742305655438756991282981070142661405805165127030889414718166246860684552866444263864503829027105253213932278282728160791921593628626919295830316261733564259640397726412340487250796563245047264891683335555742842795018511912958128864545150255214595448186100850471962731835476194101710249900975250064625930246594739574768758019961048820245586321741335466788330916604421649835114198475989919771889759176060300256289765844740487266812278594336800568168804178257606530717115312065124770701969481928144708399920581360885839141101944561563479444461351308102406554999308763969909995674173298942677701179895315003033942436716444596079302102122780767919532386043926313233830410591908539237541071706439969079769685725033625698853455396552382548532594101855605033569588492094893497708418794812579715107160677114155853365867922702351212638628067947221061168845137079046945526482695533964995269606769298553785019437192475880537037208549919794118661361986422832696517047692222028800340328761619295684006452648378591343294231940698544896609907037103167142974999793714175653283720146235137679600424814610964102117594468522577862269758995175433988653720736324754293161546511899009580482722362986547730792860977859526147840401568412971165167864027103153647621593162691866926256275055691149068951142726494165587789863601677451692689660522504345546669180028039992397293745785418480508854175828462418277753548333645092748354121435230683294346797105491807343938979118896139945811845499722736346367704620730666560861370475796903745908958276973653119816190211700545472110004264137895414851620865107047790021337319603537717034638855977117038987686060452491749982159259564112199631141086205227493253461049101693796654084708571537379555832027987102100716517704772038542275790040408325467855928180618369572077911663904710711186538976150475846697960826426300308897674750977803712701319029678958870718925911167371233097737826614157621578964569319753490968096392879355086774547165065469132603126635794651567050860862708171975900419622816478313391974595663167340816588310677075107711955389485373347642700878008526370113968122119287671695361697166908988726106758856218988731425936879396268705918870856237709385872194179511267317027431376139182179273669455396440946796563125263027957274397321649808266943897123160497963060724571442666195049059006856579544841037804525126486860577417250481480137575344768800569936503288750409133491422679353250705054458581112182888546978829890188817961380922254033827530690977053509060174060953602748565877230077699944994550211594965010287823974216398727671107606795067289533177222385558608413066616896304422046750999276899611678492423998888281025129138187588085138800066259618027094844140470983351215364821869008876913941203447310035236688459758607201945458393321741474705930706298635620413964809288563530232936397265631638180696625324812968436543151799597577783076584140089805876242211704327194600135188000842321908308758621823819719787385907995244229235884802710876174974328733743864351990824923871394002875959830413946973728180059750724327647473062571247269564668972038459927723941531550003643889027920328152273374799865062499351744527205149391727959351713225436668826817607730010884998897108509361726578853273406267289151114254625873507203686652704547917599600306990406064719694023247667906494273437674891291224835419141790636477050034296622744678300337312385249555067282925978752996063118159381884275631648188566746426043764375743646781551907328523174463496113295862690905141715544911133269878374620442493344858220740062384233758974919378959505811780910335729412019636241411711612976966540691968910561412995762591489037856158462935791450320383652543448785231063172005869611698514015208919237915923455864649611738418171711665791062589182845900375611562633689279816578035809033409870972777674983276032693662470510316580613417298463397482868167802870662385154827418035845878931571031039562768008149900562339823367430879727158925751085514843190478540523041916921449978129374857029894518346998063538920737182365843880452696373728878359753585822627634739008814585824320368477848506177963775775384456819802908093224175236106749887705566929802352174746550809050187995774342678065107028392173388274840935875451634581674514751943204397234554511117643730563969410819888751082518099775445588661453508815244899287140339000705809505969635209585191733703405439735778100041782550168073021100646974420965616354821814749030729382938976453014988648969091604248802077152330265238917352187331012439181559107664639287016002792011335656317359828801682691969105303613883336089236105629060003869471408646825757614643140809798872762562219838469582872416222101148811172352888477961886219838978535553459063733378748961998641810152365265933153844366083508835850891257772945870084895561306557597375144961547411278757610143626934823294627533223524865564208343922679283114395112888330760030341979067419596195997981931881355031682322504146893179730773594887292473795582422594369144545116891908689393241422723075435073121371436875686872456508473706541837349869174253881290832865524059327008461515619678350956697134131320111351349315472107372423739597438575810758896526763410911504496673942915000248209500211572717028425152164792317743917570712311407583396785565449779599424077095631456348792709225180000599162900849997481532076607440257518728286945490984926258170488050682983637612097229481551414395815417655681242145409816729944410662293981987007336791589897013534484859523860424697393216329820119934361546971015516886325928920899574743390659679096716023569647077040816081053332842973552706062048940903153547529271667104732567246358093057378608430894947151384626570824595801797503685491177279559536356081450227055918595850414381959866446995564431129193996826010766152494305264453162695276385780847455363040671971981410026620051199395688902731381601841131097650769255046770376842177694165512509511647461170346323597580342739214429278757774391762987913175987500573389157952482293334568556718297969529748331524902032482030357615173416465492571722673376299958222989736480853116932485727322154192975565738375974990604379893971604429426815026992049005194229496986912390843039269014158184495341537064221483170608368173398294438510182877442901011381694564218318373740707079329700859050233040372476632763073929416981949380644144104138012261753623947494941693706569481233896458868325869848136834832423043760712493678405327483082467322767199924652828927984953650691475984672544018100859689637481966542130817122986843069571461343261403556433896197537636106836296747400727794473455013855743628745049323648725884719824579220906736177499358588190067522359213076380567023420422181622657275946507945394388816828133097458945903976259674348029726018970059497634312248094944053217407563757037102921124949415407579354252599059411024737053595935418819389729598349987297395669486348221778259197500509106873886073866881159712442621133009879571972078066730452135183587460645177448940699325001729413280063630408035206445133948319447735122769459551450517351630218973204910563817677666911335013993409897868050273225570000455244580283497131643869005102273844017003874446180655727077494372111876886114935713153919785215736510371469562452709328206637789091002938386610358789670162363183537969210031507824644339690452713798928740435264959655347733139828703712842206760853112812856286277836885892232422096738764724678974196759741237725546300491441697363855873644401078396403405006049711473181545084884692988439896079592993724512173416855905046860117233138911604533440400250467941298730836152132451639278658413703731156750201987900074020841565437678815440002045768259615332249252472212999917605887513355517806662473547259507952512203062869168200287998083575558477248994926636744286659092327033970771161462445898840621289168928340910124569934776369345695912186824780102329483918848873310645670442406043870589370606701647595023970485646337986781699187967766158834096769787210375922903642649215080679554278429088374920613057720116619381327242393679621963312758307189873002617470255413684616433286260015574733639573970200991569676972006340761378463223160004358818957616985661085058987711344907332945142818547078545874655160901608788841021709260758660999519401575250412328902715103220580758733352225778196142172918962006600777683469450676743442608682374598850353103486223516085302093292567106637215751243428205258365673069777369290534197275966499904151925155003409389705801466724956660477571205779633423404782308315184514301536217883572955236551047458576600932617194675969781106092332379381208587189505054937598043502823821550391223592994033620984487652145590352093660132029023799330922362163907328377808856976013680740847134422320322979812782957343463429050040174940006274044098004004843645040297009317348871979768227769789568731639450051607707861854834013698952366118534536219779375247371299146154416825067708634059190216318456596806712561153922386367627557153526282480807865698455288013936450395467174042712144536420267214036628132769103892768904616432839594399048732462611671505138977439988560339186313602315275961555552409931008870540112121670719029075645334608253758647324493269605594690852522057221740465252263250583541413542658851370941750691298385486431117359182993602212239850588854426956649685298344624017996466950942868646433649895039791677454708689716810992175242455401412331871814439538222200722338554480295730268722381126972806145269361438898388913020036061244106198566449467631537561931008060884320027902878470238563597367757686011099343111092000258747173942027630174270286708100026796994775515374131998916496258390955919888195254632326501681548715801449056105475823497217406764292729883860351679609683989970569665466516527217276518477574521834247117390587785498735731486378511397108777055628741872812981851801053576675792764366379422008467306597352364618580591912774411751167333881609247704718166957626762255566845156130656765720536724850781503863763956009580113179924998829599265928070624774888318836215327037149614870761969120345772853003750061081547538809812954889251529139679626706072309725654036644570145924427432380285066776458288813230933862845620758975236333218713397627458267485288912779646527272629108132413664618210493927040231319700107660558381612578244484527217120876880115952798351437939321081921654164735162106629376965073841548379363096555976445012769126340494366464006628662601391575924560379666880197427864513847908826027763585592538308664568060783858234205647803579406069947636664894061234342394542398748420458465995340574518851330106622830526980431304164115149646162840334046087074005145668721326172367698257362052273637725422504562635909869056393910192686538555629244636953815948490705303646278168754117687036419119763535463117125444207264861608620098850574051287440391375333929279577770962075172312815077478967348465742918652999703208039097266734585230095338319253501750584599900269537387212988160387718617084994332918141403589558028715472586780593014319764265886305559137499346600744303616245332357933634532485052249434231219715465648932539321231761442319145871441410366088366288399021224527082474662594223224602623381862059299333523080136390366742873357542447531127639580780111482919351364910710275759497937794937494285085835119736943253833968655250086788334895075375983802067966322840772073209343972505291018817458661108505366467308142593710765278418208547483752047114725466190633389256184775237633898019175121281235696216490579434279395811301892265760470418935568237910511210998844527663917997328694207205834041921598084505520479481292068877816663319893695935621444673055917278368056607483401261511286873802559515011724794265614429250174906809482462816594633908950959139218664732065454885308257719376898997296610377952874079322053370733644038222090488702288598188675104128327168964367786536902117793629703380202197595949426148218100163553491032373525670837546972165387948016692111012461239558230931198218815988473392551048009831597123243705050767424828515123097856474197998088550962897216362884267253794539802305850950516980558974734541825798559557179805149171546291776759686446038389867626465576165003317797783811557402964916391729927120715889571585104933923939851616380231832139211854200323098965406444596600427066689950369336551153574447408294561526755590989020156481009105929701341375370896292865693912450264918590078578768978904115965360756493266441657626317184179262307417724564902308253059648746874441176054757340365703622505302198146269960314312958406154814136998884211959792912672388218696334286491448853491918115401286532111712661125633679837698952554095976266021964553481815787900891852838450441070843509825636948038689474717967161339620652197408868787375524461447081459661296531775863584982511219345357588935430577997243753772371425762589727274528436624744233573547682237945170651105401506294200100584761129025650574862367989563341632763952000159770137910056980474073131463344908753871260273436673707514051856930188907547132285563403363159962488197119695861783553609126738462759021462624453092862831698315756150643087397312800933321577859850623906624365285157847473680515690540868372648788460304533762217238039338031947123302797571097387231776475656763214029404949740538269534225253852078882854098563154674810617525506040642419827301872420902749757482585253048893396728605666134677427235098481722657348872827581009353582153434896553500868063930335759880987408704482458875657459673804897508359417280456902566355858931689635146472551068053870748226053039261846629054075381881490512137969929831104564202190635377645420609146271494160046875006849662976062889645398081482368496842577667102422803363216433059697919153516602411478800274218168561998018827619168788376053581105803905008615016426867785156258119369427980548537073821839585675040268253017123802734957729578949145630994772486928645261756314227984279085230582999441870335253869942886436787157246080773756775655257715559975466257081168524408120211624412034351299856860603160832864243539347172136851181303903639432108069367932781701926880297787086906130857290802781367871448325539386430175693057551142300343038736487838363726699540695987718348247124969057320156457209079715316671199973387704974816314998270949318950939110331382761017315718164923625864636635919511480853736431187422900941180703605326919509430243732831608252286547232782484998344960877755061863836460709980803203203920862739761348956179250335234827258168485725606156695543144301923291248919092090011999043805795534680210025465401083513038767275317595193750380261770151448240076287066751405414864299738224714415891128111618164113680327549939178711546847506945451975164006658218083408803000913127818338132588344362730793993557916084430319488329677544312874423789143062158057676443968016053066362501379344941082424968438531172882290781229763036230859270519600671414247058345759859625846825373908837392368969619225537137705701141114749813616650482745001251958859311288780104907718096697901993082597205050680839774819862139196587830103722939749840912317363025108549117073559857692954060414475391618919737750465618629383880757585002696999958902974920767520598907412387923465682751659218771645343512888806386388103111643487804586386983630278805005609899167333393410581814770084982688056096246835450634006484612547381821031873742823942441553916459183955335619272899370192694284845552809744418384935795939612159883196536421262933802302003819588343713479355624449471274332245283628929924775264881210585979356341038550214421371120720062341699333455142309325269452034549728174357377345113108953968341272100812500328705462181769912355957822664265287065804247063325422846230121810793206656239614212932959990238723005592751001718361972713329995997540503012549270321682307016155277594298540421450796582213365264437024291894114703316895248211682779944811378121985558628045508816652837609229671541529673692298477887703533617506552707504058973873533015228621699341511809060396822394137274855484668855236794256353014826212556975069669318925743859415374409843599162023264410242765951887228987168207024504168657502411786184253041613430750855036801708209515754055529561323601505531674105714152053435266073050014850165087470150404748653522069197867689575809166707058005140472581952562895365746383475940343809622602240391839307757885194612650953110003774953970210472083726294731374123460617414247290164578372044192889890941954341671550683536069989301521705910495907177517884504049299092722128622872490962352138141469497323453144111271971196315758379419351000185464769699992989663522070229525961255120713356821311020338488918507671713013787120601551683027176840635954484340852845394970995258939972486459565167188797983867933589877897432659129249023055080529695937396936156014574004632372883241181490970583801035720153447986215569800152871015439318847417589764605915969513625380724920411415695605970778943226951545788881040569408767412676310160965363166236229506577724052751088043898926206742446446208999435394589143146297102648107407435159086064109053184727604085654706831585643529950214569423267157462249456147603506634699207517337732963136748757736143135036917682912094198873729762333075305578984959898974165437364846124819942935303150990319786986830955442278675991088528221633083052450876648186317746270973265973919988326181766156564429354327671219507868739297484288135307832209955316535610647402582802939937800717094139947830909749341829244923705421972857247716052851607402352155873408691494141074810851243791714184303499281795062241262539603271859577069301363665920969178701005972377522862587017597462424115196646387985619732542132024917657822855737500890651699040820691622955486051851047579226620905020976409216101876234416390135719720333099658199375942184125007589876139716365519689047231219210311107371333696885569496211874189238105893832764061986378523289551838546752752326052301761279608085535380958367606658500088663874268161145046557527864106518154148097608339442170660929338025426699125568313548079801622605204232673765511793666454773878414963397404655806836685365344058259041346031570582227401783352876742097604179078329237929405010985767477495581568365662733998045662468185352148832480175714813792205433121459985761226846181612038407094153392443946246093640311165025446976189111436978745302275575788026179063020860784808690902463561179671734669907303132528053376836257442120506313224326737147987128770249029991372194814385047844757555896178870459336963726380529208613548543243376016923903587132286121563212342481919190118554244988208562121431776412099916048267556334231308532936322289775160899312366923888712996962957271712793445198094470004635980985078732497532165512729948366504632453247258960103875020832769006491197797344204252519361594907098756607829207042995451241847347608348430302665688800411283359449054468849474542061333563114531599533219188506113934345461826250517417547436772675195327016768625218288037180093072293157575160649058243167057503548161877461675297673069338536305016214325130041671405912764746532407054363831508964153182408934505890775193188034143277775290407758651178481691728382932384274241336238864522546842263609124255748584610075638798978439994065648086397108728719027404051234526645291760024476364726582555189096949787767120245001079132101873905644945523443138562811050792976805996363600407368338685369559128397551411549202753267028251151432399000080620721192407259557164377412733137203380522898984129184775219250618181117709369300906936126925510484116196952257945860287748053393969242543052402023966922603567717105013396544829391347518342449479194870001854505411420001184178981563087338156863625892638918777199094857441623914330079714670854265103854498156285463853805293081133858917035222107138522966364220506234077121484936226086771592616708841884038104639369494395509898773851074065755360353269480385921761002831232434488469536521322168423625631166574180640585695722766032036609401643707751938460849569319150003929059947390214559018315436592945341825496201518339292411017111442534173742068540322222513725198908034269466204009330685037144804875976055791478531318747171507611081635972588648692472296481033175047068524157073730378886371315274274100887784760819119076628324712433423024951299680833738764655361823668757017308936878757889857128700838819692699239577159959930334803276334491583714226874771591116951750239778112776003657317807143983136147923648365774658979792875270806867814096953203678848262165513242332671393992773757647384554928146724137382604203543420239842054774561317483087827113553368500954739419375561359137527306377567968758226482303141973151719132974796646101530016400987587347726177893218189104681000995189559491394269257965762877325349653189736699386764424115342690833793033054094131647635341723391638850020794719643421503193754432684729498081263549528811301323171006655306002661888967525670320196431117082157390327380588373948202982569494130885581167825126211895383702130223399057518041910041573255606160551663051897709764750684413742631013072193160439291330811604701072219287950603572468402172954084073064492194790187177806532743138064715000938477252660860639784405360746150247724116815985379325736506519366581393550678724845584786973348522014971214982093742144974675473353333691281728461365225211491130398172759776248818866395701224535532144695272701017594899174231030021314617761329708253112063181260441991356489878595240575461373664600415355362169062006465115767497361682834270809085313806892952544080999258519433295195021611199004415345047110917214953921230183960546555452173478453219772118116324155955705102574839316807602227713545921940889724212807395630133276628863776347417098739984449293760332114156592845604274632072021841346350878588879499443323546578108477529084925222750854629154190957110879665758990917350174577227856070470324644732900393676072934553539573492605502450175644439730084352319509729751646584964309769098338634433688103787720468851000406193734117782992372048993346269003743423761580965823802905621598806266394296779393288794164268004748416667063435965226255226929180175659290235532869750450054539037811324081777960397579004640230225481005743133125705185728357459526273215192097943583088399367240027930829626828275240916557232431961658642304034557132370608464990012959758457580156311996627150119660145131836074187600172097703861752496887842769277707416714109822518323222690248399108632984372592738890392345622693957251343684042360794115173684403098830485552826390305080051536228342608003683150060172554238832230938735829072000366379560172751613608923753974105046573401755662690490084131602568728530993004281741615987309138105371025072902225884464422920062958504621311216199389053539350409078114792627896627660212134298617608546824931074507990275886899713657236947935387280484177821556509344617729052301163556904955041002613742365170770385986336970055941326622883089529581294520053143346023610375796989700357604658927750509961076752930566508619597115273996816235097220227531920555982221675296474589609197677888003233177524809726849708813084842628282445158695993051332313670426795959929065283308622480027808985628629425248800008672372208339149995477877439739530685873801451458910354427605087999651462155877174796177354510838255861382168198532911985567186369869008919865653687239150970001483613612082955224646780494621312487739110667024886227250073048088721921422016631463345390488840127409705354259287510377475988564764460508809216007363598463256251123775201093626588983241938784265491042384772965087748702994464157157015741728179604464596635676107842403550320551559170653497970757372074815858930003338569757100621563248993937884075908715348493358864016466080605957572356306361127595941990273603154227155195034032634026689885653756025048003347222518979461780826367627465846804283950542143787977632390184506539815702516343994352837971743000509245906908281408705429903166522226453785293798179138751032542102341180131310442757443458994692022849557741162633971502838679474858737349210825332571760557709750066527389734852250888433718909427100881583926243225645873123366981993170103012488536604213371680811017388790125496981852202266146912713067447441330930764801762414091991618901433905141204668097908872871665636168848251777852420786750333177359978894107106846536291921469221592524997839413415644369807532914970679566518755813314584843731038807372252861360922993797959652926969637680663569811339575427818901341360598960377215267539918835534971182136746829305188771672606874698271585335515057601324449830105246877591823843092336724010701409241680160602661380265257992451067433205936899231031687893857657665358204076281323211216958061648211207300928506023595445439459873612962887204103089277176301849643154075354175776677657712330809789758190911834149453564282458361609255604596134137864022184047775051395205502436026410271054716374961850868204459194737790058389031787475836400470552939243402928494805947830468684252104990069465619183683874711152460374782263736227628330314427486141173528478719186722727716853952279040102954939847735263057068450616690588913609868065855912897607811679475115212231452999717920741744670789556133001137388658929563050515848567034969868522599745212649168969958575603520904097222711955897449991250485398290081722437518887986095256052785391338089243262697261266815102554879279407963293273663980136792403183058810217834126297208446994644969698362118885318846225326592110002163174532903579582445321015511204068294547691652699343765506289956056498255185960033461653266316523511238267839406713954888746701271149185387656446199376679618016642150179029258840682302922272945167853313033153992904888514626232160428454146604045156746214678890320903452745637363381614672815517508006948849653904270657023237838056296086240283255509756190416906161837379934355950231874025736988030732335491104682300554803122477339065196574982699529062801251340777011504967856487770234659165169024071370794088524379311362431097809975694401225968472941884623381646663480897235434668727018114719164173860136668444499707706722057356525432367813924820430602082286389812168094986400219841896004745060191744530181411941696157894473421796089300886167992093030929477874358409780245688614199950421932650481706251987570285782388118036074357601376334872701739694264141615052628658804056200675480972385031751784524504845688624328183437396117073890798087021001832434754654897670939431978086260009275185532979174460337077650021604822144314222357896533878066401279196034233340054866076013780961314860311744900794595444010527054528701235384314057592456698799866030725532882213614920368137045184354870830836250462296617699120574993544594782496483906649051172225393646231455328523924444847184020716025111024133361698579910906144365383282152554942937680550533242207505315469758671326964826587811280635613130509682986350972593730705826789239922948477254014034566133965877431485793243955349923702912915659655676803012176552446954968390900409712688611686688940857211038501017122939006799320993622979713864314566570742885536043903977651129089718242415148901689750501026311882271636355872286543618451326810536375904983088964957228135000411658501942813331902443917064688158693723559067804788146520910239781458156480895385007879385146346338418365089168345616611821025211584088317866384619811368092708232396600728789991388327799550685573523442076437983245280992283182205375369079492692223938448314292315934702127971963770369165682246917034241977903899188074739287715454118551391797725380462513075495360468843893591840330089024171601737735243407763357871465942742959156844645369294928031831199791154667287787084599960183219374686239048791690980985112934649704634676979237258580880866604983732299971091265520378804360346185877739723946622542317782549766289262118886201856774998355090439643479246088301669393149701273926007901314268830609709833234801535891057596767883498016272849944268479547388343452354437349578580336891814988915824564697175454666254139937370785291876335159492567019502950836506269934566531583708772083136030552416591099031813951112640772545141851146822231915347622433095896640296087043154690106624113640209590963034661483321675731652368761943652781206453694466539799089136905697929137694605303051367797101950527402899110138055938247368869943446726920760334480265919806251872844232782095910371155109598753959331180421985777209635254020736596384541768852686721009440456926358795374628431286223311310985694395522505434846879571571503314770666348345127519447042448968157122027190799297557698234340706484076344792809664945002258882335257413057484893329817962306492779404060825353482808016090804177567337613755531598310091447623669724022749206753972298673338928396528347158057300115462468252988415397444258626314972389954993672737050143698133283064508582712562115315815332461366700695556918841554527923624559468502873907923406467319720386708051441867909555366815385102206655105040393287342266245392706904835564759309308687229603986711539054441424159672007049682471233963882264121652018562109910188142082114849600901085582986886335912493441205376976780717317380466387879130027711842928730767569294221863605300918047883848430212530364656725043015647061844317021402090961771165323961551368966468820498764646256619689396445382941807614236140930445752352055213679736661664496099071505377830672608654653015102083179366752178581461316611502209824537468049050601978490058982600417176176402872727218415797241966860347524872402190945472523256368775751377881831637477892290388776647219970965173494689627370987762077028946973225240749690862341286732141738429965555627372042901970137261108170568995560274588491920712493478475365383314744406578468134439963515707796524834347234676968520594235271574451663196164893294607362591712145260318907336810046175408196389512149435729398242097151905295350860476503712013157145178880454430718206435277208753657653441992940054692837577061897428047590944204732904882454225357014455093131935778896280619931751743390097109866278460999449726175156865710362662474328219513389113017597680583085867509878073764099944453249457539947559988508696542164521184070680876495042922736485861405117274740059456456090873445623289938638417852423332119446914033220530900022764660915970396555631909779365820151348464168470878379892936636425628552234867386585498937305192445700101848016437402410161646098015949762003287206774961814633959133517398158122155530855301024849076817238354514598443346656089077972642380319556808944532340827171214062366132526701760190228164240480471901454981339308532526595092616871275013243479188034809961871545681955230799826028549423584848159019841970276820044766286256819417613031215335216127454067637554365337835113485682185675688749781584151855668729075063806476455873104543755859253121472271627665952144337373774810119051027379650134867158579312328033918631146218365347610675771043136356659706991173857813627308400972923188095829940617448929950842111250507609241352394573318178579458538276305828044810748580137428185821925099671973941175379779625027174603317710870538273344168232906242398286933187727831525444907209939733059663752812072559667332019350028452489519999320726393383781626593386891114506888364065707801656620664061889275671272878522870928424888457318252235625451898422124950209978111289699397490854797800411755012833067091490069463325457748716688203452357342467028716720081658505287023303591245071969773765188718596343177186332023572308675727914998101485187699945648917534433758793682028966249248834180838398778835499202278123598831904346129734599041073765142070791932092368999210971377115269233046030815069063776733330226571259631315199320414997085171372379996840323313679735833628559121878650232691358308158727889482475444316830554818558349623321861006371599695858892907679576419917879612071609220831796306606973488044880560144401643173634788192288130988094197356287954384942679547140830307421794134848887396603013492259844640890075595294876383635846786788923907755424066153625412441891565903694396554920098151688990084658026733123212114693788550695558475191726535395441326064076926442620837302574523784864245549453714364934414117117636701923904198704230719679463914996854671973213471759881844806840775449335642540351379869482498772012178379262861989848763180415129604850462745173070730920604941748009174649469397372879690087153613358405875505580444538819225336132824113081622249239498239441523832370941638661358704645705726107374234464538040455083404346304547235272054975136594953843244971003671294262351840986251941316465304349911113921144379511934546058178478943283461995013919680179329079830060750296702026333523951449092813474193376457135863379286438174083714616091844545632086608600520988027230621086293219346915298432364189411381581395769297101583392769875365137769999255331152943418350452439345350768524620919348687833430662711633598715062675621414323059811478493268695640641974011292624920433368776503801580491432278152730320957289882972631547908674726934212645939807905136638251156989325054254383551151756117528152720533169150697748172230219708630910919544762879129373739459447927909192705186072559796595238728426748641767055854546656074258427800852543395231292387514408817813834006917774539885081917009253512142849045344483521544249231245311436749179627760921607275084241778970201419962230740632565300286521730697960193122819033506464088648573595092030340000071768022753440509395167221081906195283053418927161306183560317111017852777409618267262108341821883949911778204013390979199231101303675511706517794873464476189095478078184819941182748930089819217594838713171020318332672460474714809195213065974998429757241368458624059175211209317075522560799360119554855522276238877293179340385169209045800850415004052288290272986369539979037261875156233017569695811559083893355643705634056630632302056372351842803554268763371922144949522687904875779587677176528402235713684947659202856926228362505080267638993003738505291495686800431096409145302506034114225829281326286128461062446999053480155539310248051478924523241718408428500757468205226137457904321075811876814670313370752003050573639185194047475495814339147146742340420722238050098193337553915076851889018892241200011673045487376576580772205516816150707564563082078323635808410172036304772226037059519505049761921589177701145760675057195670176441813856516679200871345874686965223086471654233682060380953217849405759151768493462915944555869494749127363304026222441951153230122878165862961253750711416320309326666612423427504713561100488328615464769783957728515732687258716034722814296227888162516366421570122966715037073690555589654002430124238653614378177633209105520220330105785864838493004875843557620403826872934305228933777704595736969096842119147320593349571328363300298015122873813724383031066372025913465417689696172843698402556459633560930176377010723965771963109264306562654000274185038755713959252574697206277904660858555371546845596204143625498257335032090626401577724508989327265555929150016404916775752433016320921962524961762424330701107784747532780865156454716247724417173968696564935187438253613379390794691357598099605180838255771669861262506915770352506886018853399356867594041061466407518057342565745933799549148829261825281342276490627547474003963281352647144703010232888393721132770885902254822437536338155157460155212073678321198041875719443959412171099974866920721346592918994157988783921594154187703300184589859520002711148130529824207809905660714367228409841353781967482974499397814425186482444488601234897483615008727702278053577524676373443537703098387065200035336601518465880762695934897805382357558560714023345711091408891261399010418356588652026527579603655013916202855801254383270938372336419393400467761269408110568164030214982418013067977093935932405349733057357228753323490126557241943271774553036021576387509695738012061175076439732089486097072821213824970864324804914975634650733529129235307250988015897282988774255685489577645486166829249129093273547930505880904628868162592448448785580410345258473794665221984214861065090678673614057182416646191455256526062295532016607053410135798581720155363995175569863575590628082368531921900922592932191985181025119782781740441394106274506288286475204566946298156452722456944265206289287249424370450854606406234167632363018137237946670797822211535608003097037302835867306168042333251372772080245864862390379665786003725874814737116761163578981356590025386719225460305643172741706120200446024005461447380297417840974206954322703342931316163494499332152720932131173400182518594540663067361566817766490159831167924585711096599301285518538917876003848862904853692806028654900755914505717889152776650726122110004076968759304641869035502034567845384615076903369124300507175738439584304578721362132543880627155813547673282515505727018840606344358063444089494544505271445847761116244185105057448871198128419520549753539653082826116929835963747834546071129603659060648673786688067331487145128655454405986729523401790213760435882534255467889884286629284578419077696241667019976676348534113377351928309122218957831739541615062787420791109467695317255105602725997339279376327112449566004995943474684162703065407846773993913077237899023312425060117754015929894733326266716277453226624988315102111294120543697615237066727011315828419740071404406676245737540240491150393073718074402765984209112595588799593226892755546639291891502843557346527136155396657451697228741651980886825396580126588750040606378831597798847127001969528514867308259030971230439044087174474732215056006326977256195466309623481977632028836917426407609145962837847708502969932585194854801628818532021194419201548977759284138799475359088038593096624281100326689546113139063798979804617822814866197829196022243510519855187451826342679376792438842064372105811743472221635165468018198602258335755570503777453717147596117365427497716348760628114343224382623986820080115119124702159370990833660660840603218514870794136779609898740006096560866357840493240650823236786293363958125488126176919574537521177952911673233881286245001265963068619963968925023096779685064955184076339870705472621705008813614407292413775154966038584333940079064967311249300031803127543855986513289489105919570913578234969362875643691710413752808013365313766458081357956360919280282596099894035937738991190297782386798135044957880001183163993643988426257805556154438819044408404872907530741013134413508358380676097252405776924691632319244320748885843881373031317007596035789055267400057221367137693279419472816972507495585523112935799849145170827223172505137323394538600586711259391045009620525171252779162724300669667342758133052399149789815324031842225472327515755790644011932659762189044874194700893478689337796521531456362787429253812281772535972393965553354732169667800366919270206352716161730072157346454371488116837339081556361098382122992401608058986804308561594862051947360962860363900725536403890724834928771213706499775387729146330264536937336274090982762616494708193889652448109855951000661214255126231664926563244434238174860341961480438239790996645039665205125288181291805806123453620767570091834601642424398830947033597535042776179416069579450117248557603161625556399465476071175194972495201757430673842681160018552531786838528991085209786604121963599871198940539566856635861996425807571332095913395235712952786886654081201088136902259419027556181752471726246936920722138254955905388977895409365526368222878026269958755138704330302382203742073509082725499162840881800968896302856115907017366407990146352289020273407035013633021956577428952405193563285937802511563300888279752523944692044196742819496896509909980687272890097931399615228935412126488797961447400920255233159451487884445627673179865087242396265737142275194427885979421497922360499391059488061089035130423197892185395093823498086788536217498432097669808961946318959792890823417329089808664034397164507145470009822470352453545070593038335930898391442790914469156524285192799725043748278997851699945065136270299214893027766444136953908158832409934293271674994114879465543838564229532219040495233810791838785887611636116482410041271461632752887504128407951816619979318302518788111456855288549508516505205320682490071013257397972440787258629276707138231614508199555171283421358767814386955805627161472946559657190381719669304097566545784636216695975542487711825405351130401166534536686905547145070275712591485137140958835027415800562111279900236986015237146829481075645213721057332750336548167566740526171484977105076529272393405583040658956518596614374601311897769054004169588556293018006430409245375719999687352266676506356740334137788245707217041133182881328069124874071560204135583107462321629119060045585281318767587968779096910441784199887662709302390361426898265613211810601900379584177180364371569935667321758336558350026280865365058359340639707921572913103229843500615915798137324915306759429220087229076808319043531240552381793481176848272628577317343875341445244115480397757709766701603811778272287968706365592860943404381060553078375862924304287662579307259788459210176064912233743654795421560306204383240791115707247828586545915516055699521887717335788162984272449679187561767459472865156145440764544793294520315104084942512725404585045393611002728322037033674388118194176165369988548803369206021388851593249892949889176191328225470355103825241347147794816188681319637053818219236108010645941271913567746978699748954529642674938671790222423631100379674985499954273267719605390708369223439556282472196061194802278549570857599278142968258441573590815964654042654385538449049053212830615890255280778928150709864066754229656160151071587591517057278825428256033354576850949517300000472575927919528124628863988286914110523475979942443919762483844246524578146715093947990721080068047442720801058844205177056981245023773252931350512435726334176834645816081262280773855816492925498997256551104177700101666123681733087585608725232709862613483641240054763819860149215463886357670908780705744806621449589777731578334730986044991392266371459949693543989088089992204547003094915279451650268224052599853281534685000700403048934119472631198182647426184245300864562795188643617936032168351829826092919871728929299958550293302806970057443001274447033904742407020873905999591901281312907733520629638593968117214341232540992746088984631495244590002074061141848731903422348344397788635312713058119620509752028460161671755043270862834311288979252140018980479912789866853395921915877675331753536936928728910516073564230029738322824992650833058286876702425901604481923647263448008234543673501292100857533838634078205376612881542832132711908526447773435116318067272845488426931775248276271514338025221031457624179247450609762478360635188619205503746519086085090333275982772362225957402628909917480898883370182749586207146684452331046042539077280716702656028369085308075145326695751142597693702575956873603033065201015492133076780702932789586252158392681936658169215390305812516472448829618340594633663345213943012552896585057682384845198969914112060091878483835191022187698131045264598476548774360995719841390782958023070863980515244443718403866029360055006346571867683517418882983237170933274704379369086285783876982349828917772089621942274923150964280241238628886705757926120540551305828879815493487906935611135289212039382885280503480584652624642573127502418976181744237792645509310917193203749892186904075410938184276783457374349566841553889514606875856119596468001351156136712673986949711533414066386512960133372006091659068528015978138561303764106669851303084767473241269813897506118656255972753606244254926349079960771538346187866175435481957692753014835148814548285145721938470507777192294336375295791321917693567981025381300197429247884524055072352716949839089648739717254773692762004663552667238135798617799866149780965524490937460044314824573668926783979449105672729098692516347278121233412939127863080186437698680949483307546090660699398572580757371586678671470596556492212233751992911301161406712633043878719954649232574150710549706071898188197158304481914024629336663698120113020537393269085639906086450731879616267187239731303839810642133352121752231090640084577168219342325310149575095278149912771067672789272015409875886589808050123269685011463790995270972403395406513100273099585711379403237390735536469522206356186533904689112052401761381009265778125521688926859563384584188811032976213672587529390621352943287754634468098443335886110010608161176724059317688729844372764834219928354145667728570212406224011826277091129473388428048032748933629423185200175046248130551990405141527631864545071273489017897061537394809950983589982224728652776283627088619146286690661139975498723218843822215127268109208618455016472156920668030008353184137176999478694857575058502194151504692173593236638919779501713722878709845427607661003213245490482976424283606512678184933996667197935281285335585868949434326313995322371765044345737893494365776553857457161929653526596175298606439013989766965117250180247720120521406579496841824727228802576868665559583300375558205474996164457728823768457705540658733323479912132270524783033967544398465806523908189552121471140617912159621696144739743612577306423181929609030823210973154266858329791091302264990644250037697752673965035935545104270528031206099649332602279799434401040139122611491711534300193530698283632584509387529545246392552813245827404847644714231164422527349764159727292621380393570783927357998861781072791653718206457297238794628596976830710010138822785740078296484430525683720088165999527496588498886516883932489980590148444806864347401689054157252285435613473412267768163690177256838129692035180144290096439602692489242533490512583073497273004088679583691250422775886972468718215762136665629886918022310432036592729664653989993493061808451906463936010673663599859399169533376714282264565028819395214812959709865591239083569564938669286466189577946886772230449220217883096611661308917042672619419390520412125820074971368456160374175190352262106062965865793543260435240056547156152731780204658578870960870583645445703415340540551052779674968000622055557580084190747093942670326235794534897539804679240452397825604305063197907471508490877833451465887248495320370535660431660196766552895989531525091611243694805217125734859580061675499986331912176793036120049288490885115259541216158393367102158027773992131011699585036188087456133913179287078461776865415941623064279072800374746909678835017665684659306717041759651324394017789134195897686173766677049474127313449837348496325181677663221570450807423356626896479951771051703990924190542019675804282777719173411131593068794478731611962018071858198084099775089809442080103705108253010705577118663907246214374048379476393084445311992564293918104080169099668337468837711158398110787106813088947291885228282262874791302224458671562970608877081761524982050342840441652730438028992094301379207075391976876209376722129893558101524312886893551421030618015220288266128116546156045128921797928747297632679036630686555006392235355446220318857799217463941908183253564862101484773409878926532177928861264520159697295085532193115106871589260880198405662362214008374325268675505393110497937237317416686515604924673215556339061518673985864601663961505753644451563593449122027902002088757902681687065113740152868290276569125456001985248462103289968880748849674292975246450262350790909860224165592604162998178340324857466129251755523776659161798841579416338193662288338644895922897410963238364216681860373944694166609923100734950514596351823340580425181955540297655608671069870303920709419890419465669559357281653721566364108965633676842395519278080454514932322328599907979042514056858438872402575250369168023836969016387647258253018909309192930641956651962377735388356014483387542724212915589342344023775837612339849570854338438252244503454016404235236404957493888283901031732310510024046260145489207657980219052910284585846288859122470754173601958517338690016306157929458371490045793511053105928621016746253098690914272196142952305609429330309458369693367134523505527834014353581767923068274067379851626541647516219290887707629387469231790502297878784135108170553973327646608950791000809001872722586698480754785605274297388432078470720893446013879268308705389546842158811534805828522682775250194845423652147720295638054890423136587272131761081853341362596828355612608934361291848176310025216133270438793832645720061698282370741189523185892293006678954990722095351783538590831904322785076043640144818588562462146569780879096206886792961251528860090730888802516096183100966690455123788123222894977455050719455981834171434851887990292946340261038914885736315532800121057652746458114663417327980117258136053951431956388781247931787519385201255044016161202770554550435245022290526123012810708914130635700572504085468692384981889346459789740867723334446163908761468604457212518755749894055958861828654332507922934169478934077046465794549150774590071900000668854960032788354709445425226862713794110074409885450667110258293180326475580345112032680292705011306394511300072310182772898890935974858375634163839377591142576410677268980178359553824112653586498805842758876401910278385428299456348945649992649523904605502130762192965779044613997119305142606973471057699872066220343829155329090489794689461843918626891514685098914994036176282837807393919499864313178333723833971492508835944230336681143305188334389280538345255023879741184642089578265410555795381360575010746490618576021872693571618964890500468381558101804144989919906333204513395978933333211619099760203281714534967231454223533509450684556252343613961839709703073869507349757515217555588388601740168982559165015105839201030469859984295714719776965392976276845787117903604081748941390251947528505219312494226238621600389633115825935968022988497572145913369529459592319820629092629378393588363411933559719979089659989455747432606021789528397434597401884230952072382868316681147881873689650700812369279588116396003796313663666722516837759505644996298909559605194169172442532249199788669908499676694642128065377967941925887529113621423985604773711264887399085009890787076791104219172308850928802547315572248581434752693483524188589559850131777279792595001790076659268540457209689636787299998491643223606653740311139606858090158035436940723744583368905304179800529111800585626204073048216417786160723202685246046249038048104569330961566587751241650388393498016409362669298101487496290200058243708167515116547235000683751247868784897901702873352107495832521331909056800134223065625065615154863184954861452522092030927536246762536809154100855035334649811619175765974988166756856949175914788070036974427362288432477264320737001113599139434561389125181040292828693728143446814250158254150791114775376538851573340083335965605611738861922653801669981993567414344258436313903727139505116192585995453514086255415675665220975882536544395720386508503532304610926501425217965102411987084497502706885717779668487593304099871630096682277075211450229414668030738729798310131236824167977382261369920130133897848941124240891717345920992862742801476426221580345183382573101409888950266643824729457013088322265232177905849826970510319209016432584161126096733175116092725537977329606451683158093115358313311192381730834159201365303027192820425294801135431963952373363921394156982545681961753261751676305463315318521785966803804288352934315009831007150469904101774673323792632499182226594807655966339515039323595737692671850916243569280094281332153409153169377606019254564488767023679841827344902218039418348066236437140562371538000504474712060307905213519516971696255210278846294895783597658913268459042520519872345881875498951147260193437223325285062165224813515769246554648568797991143458327160521899189246256392347768383926083006878592496543301562569216767175371367330245408475237160319110266497282598335591657773073602021870064295772500846786313202691430557588004630372523314385006833195249154051416236782683349999827556967190248345873163343016879728843851766495134298618667812379245604666024513478154553696126973186574283884033893743401516698789187531021609534056021907319196107930489446416427318026256941119512230366139114197263187638663237210960201796757484605045393618000356699503441786877993454543705909963070031305465888404734222207885931837802022646779881869351690430207941329695129681129012976656677720194713272973406631557886879578780277660093105203093120585115805469991351215276120100658812656446734375172690889478021405180386910318589428954855041205754471201623186952602681170290497026182979672176445971267709131238416629933621330562794081835223993600009335044487410721416841192448207836448995885339029547047630632539247695955596181294120276356575440212701998512185825650509810249607116667912251743066529720307221231786882800945677263978966337180572163022123948708580057379593627486335037956335414280536497078348375563076322529519319898087890112899260425794052830135250049147296044687796340726648128144821510477862992835343064416938505382307356592389874476523912184238536832063481911920617338695741569597998869649317778662983044103695952042033986490359201076458494168202656080712837738532782275869730333074859539088132288132388399398492931693290611912139974636261882322271449796840363942029757603473319137004876504346874606252757848919073634811043081855817823010105444753786942538842563995680220042523214077191571801703188359513480935636335110932690527219797958408195917735369297733590794070593552051082012405860452254146649681961992296995020704429918445970470425758607384446691733165849623363854459929868388783082498624048024703085629051149887698753218410670968336471479771337153831073537235985305500708017349583430840826901842806990682113585219689107725385014400296386719460703536163630064241475383855950571601151476228719786779013051585275381254029480493320064839665776403033158674768294983750439852358062403839483000519181585608001545709648545401669173753771422050382925098038572206263643807937188459460619949702380467733775204124359504957780057840535830461831536881856875095901847339092461991388246752876883640123197058036443970069496343734125091643655306913944073284179819426732362882500213587243710968007421191847293162087498443648483258392562035512382714409833866941539234526464662504473280615233951837418553785742998881836272120159812119602294829361657740798295578916809792357557306117991081914754608288923235486054206450123503939049728235008016995170477148461427685176677082944534318175354690266382393252779328797410781352227307091503996560005056649334220574556491014960975888022306273133357495654386531224139182730347819290425322343920286096098826821944517152973538964219839405806584291466358723350639748806460671702463580676531279513574248246628044435109548633719685375547122861994728050501648573142129342831129297114272085569465600465634004404353390635133833335491309789261719475019041943432878047175898429685381575782284719914050737154916382078130887735490774395485927077681158294790401077751231315084986797688991517046509885162535560646156126444421305832428927274218116767165652724312444749774296071923334029378900481608946476988791849312379579620961312340912055625020147820218170524038213370186458536226342835874527150785541921837171608296867500409961875672412823281315017655560930736558158163506701589511872025390168159156187335442909866786134561329781582209022796685346373846614945983974448999967770283333397681706541249949316719003911355875932293808430016357414692069521507233221686208388529129533295121842414513118336481117527757464258122728635006539297488394490802228437830319642813530487650337531756454630399490867261288680930326574520747273824624176667403948716165400883666907278154573316803970246073775971528981631395935075110199963238125459316022249445199593116871608286593042441415556116085117694050262995723586873369008293505271575866288380737004689355231799194214413300024720194658266489956446822994817552631345851278137351960670815212143414349283405544385039079716259850258438466990961559900065229094078448460630090075302520207551505796843301757794724722337008285135643278524716107003126845384089110212795511675149617792253910576226904301192539103435464984988178836720884386333420150522350377491935141627936838871375219813943780108426017665531739521664497098322765475730281891816317398486640813011812032455670113515674336916116219454593053353878218104178922364860561598616524460787647281166284145742378011953944360098100497624633127941720985231994046141869502511978350093674670392307381790945221774919837939689584938396609600320843473713897950826258287430679364796884473508182961284921050035681992157003952780991926692564640321351804102215629408241930633249443595234764489725902037454568294368790596555456460819296769043344695582189411874924705378023517170681525740542701982533759355025686226815179349009969550415056307192983536809270163793771098526843614251655634128216134756134790953600174428399814881421020510900035887220203191165595793583377099676023278588241422290364074876469222016255365843867803372799729761076375391752441307023043659626821210048859128253551890636645367298032099791099980045115021365492217385082186930419241467505052587478204519319948923681894205373749804032220163147699644717223709735942457369190486446661335055152883676762575562839819294545043293168650537771009372782579481116718013234966088941058505352762159999557314547647097896488878262436537748247770750534403961561617171475655828228556614203707738132460247846274002130984513790589551220899508000714489628795111568576796994897686858331683291757945128518459707183807631679336799874659383097577273323751192304036929744515874427546685842605773488888611743801200980338377854903431500639900745245746528636371851844278205766997708736155849338826315152512026896231178709280847380498797831480096290372016504365998455167588310416183736394818031103927491342161521982946704225303687977630729871826957732842766057771618039153425391894136778922049563365937547374754197355856174698946525032563444147751016256731604982714417689177355913359433237593277064953474136763870731475459499387594003437975812250167804797737877879931305719680266009686851041217213698010927969407118397686964811276627083064385920200786579556624221049445374169282763762347965000235474784904856424643809191405889976931071782035051049477174332198544980402253016347863751809692476419159959093684049450640077492361922189087385264083973030184112066798620216050692316457660803921222104933770253493837431914229415495714331755967598218019726688518712791435365719793293829141008850061631505926316934832096945641816969880572524541417531029396410158429667953312590195693888869408713044459542192340176829975621490479717216588714930547458835425348496884533697565015225488714700089379071571456031813257770171331471518465728658131992902729966237527183457865536359655685171631125841405622169964115811430507996226662797308814624840206761304793581748098173892527703612138279867347599728607844618875310167890614833257445076068091445228487811350774051944988819345113480250194284238082697781124893536758205859469995410932400847503037500829799692192065445202758706012405483662523088428348684502259067893131414602631906658993140005999270707219264189722895782380141993621251770590957793208614968940482766587603142246738663694459719365892340425540823540240232916692142066218312189329717865820906753223055394528084970878463143874315588851009577744577577736718509415484891053122078209740329131197667896401371097867676696135711649539511008276956145439454955903145773979808335366029603525542119492091686528683265761422118413196026314490098929923143542803179430923565003993613417284244566984701136954045750889422302473143509064950840139531230680375402522985077335634588130289228172954729033279792595583051747578997155814696824098483960354252795300595531609576554257091611794777870741331383511484610823087768026001465418822649043939793008132860870604629613650055586566638274422121394901409879513259605509136168700709751726137975386220198381399081311709769138640451353029615195180874595080148688321358869732648550252247262099228959887692092544779972330724929486074639510034302940772656988131398604218437825948896642224996416342298726450531156355934596516208452007496992045416424067607745733474996542939335090260922832846150608491470013470472860976210238809985834732286173086541313980730980097487598646533027410394347738057644580080013173614397577896420247597163478481063964310050488919741344255728996854411992091271496678704377702952637968085600460978729592707166243768841143146193693492990005485154042320947979262361170562756844477585425084785938220519889275531069330255219802146818906811648114147935996200222663201028563972257191045480813674424329373470747483974108656312550285559209059796593796634294861975292302036909358505671182958127537985178066358673170490646177085599928317284109718264825767592815506547376248664801741655801498302604198497231134289798661437222693338451380436519921501647120561241384292877772875610650481321154746732264405372241464438898717112437074453291589303892359700250397808769133705985190980470244504929268894625231614084576742381992837976668323508355049637254096282193857080278036957561662277897672568028871731880802752954643738730857585414212039272489424499734094070245843127142818252055033942132031495486249486318335604410938848912022657227436412445789586178813438213576755852752372805961626276687323659257143576040228461352459017730544525125654123346166565334922715671585367332364039757969774481164030101979996216729271022715947222842174965346000167604003987127643293654929665377165369356723887153752662165078795712229061409730642702286265487022302800947795808224007843405262189799716655969582071428455261873639130242308081268608564039875724885128787399432576165922068797371954654787433881576437755849074426400635596214814465046396917453871653268682059995970546833444231481903062330434137253098213365415023982222677842723714222168656284874879858255121840050217502613799584277792710199418401637047393555208307458464563316327412814788973301485866415863554057801229347053769213322016169920203725355560965006850555469131032117906644406226245762601282355090328802055585342958256695683660284646837585465195063672880701206707984351076353079994569462932046791711787641551649376440429348248897503588056778681744112185285458932053883697272695416861006807846040499196693743001061101360016526265919917904692573203259122933488366024296350220977219397429435124388222121147532890917277362354387988946923870064891100665244259722530648689961293302047236802719101018279346940917997046532928396444685704991148391038377942440595100598780588386656373580281375235017749078534114922779053876789975538677245523704095289075101399586209680223563536905341999388556676223427211200980339958495644809708952258953991252595500970466824543713136341171606224235224994108575266356899176293823591941771934438815584994556084237293219169243598003822081311896359102368720746789500861416549548487970376968103345695744905046100143892007556138902349024194424688817987576780164455163087012836770132397254596305439189008613816058125004284053711789860460043453930887110501005114263726796244786663136468842360249037860163581859980118673679232733106751700899824213157980008291364330418098916022801091206525014505759118450354763136236563189533919972874069918762683246818689527369835685464905609089443675065227635990956573699515835426228087641524947826290977033752671349376625976940720458429981211192562629033981621842399953824908624356312008834251402506446950713682314012754194036225352866594251835213818892051123224039912100280096676039740623201834156518357079010344310129082013971676548547205252214932417866550799807375628987316989645747063051994132194417648199345136104750959966045671188440098895254037328895350812900069355191948705481284565481633184768694893029523790308190128526066871637630759508918260608862015268504729966057959585865364198181318818545127582535224574915137860366907710178472124799228043311126789520006451585218345962960849122879003122477968091684521977194946580065162450241258762177690300181701272082311247624101536695621455161923734653427505909839269670809235250747129073784501264461428819126662583987236663166693353028824117198539292156035556100153745298882260121748802644878492240556261963137276038515480772419114431019134737651840504916919794788162837050205288412387749359862239672287064141653734244984609657216080757857682208522304666073324934862097355779721778014926709871909670082362246051781291913648274604287031224387995408522904885508520874781341435263172160867586426514899253507176883379293994692495733072637810877731586432097125616889329380729537719207419759922267021138180049562142862145760423155311010770639997335463363320186536190891294763309283356345203357525264130475982597420577787558703533747121136066074426029290152935144475432570796108397425832280039055586619222291874386727791768390196469493728171423785010409679131340498584056090612486385383650200116421946540080313149919773876389876085630191716575817430744274832246917096697186944419267761715103186634443606485343811333445289835574154963814185807251347877893697095905353972362444065538638080914051963666192630835545925906079042897485218357251686595923307368012573554514342419824970228942208601489128420691899482070593883612033714878430882051797255949280280457751040810029434546549780324050319432554006071158086162501283943001865168428697331792830728991935124447988756152277332977184684073135978089647379228034607108241735783124740255391417999599940320041466777457825178351510863327909256037819597840198609585713124385926382894415913911419893062247404295002671954807143269258159897159769778447223824398600044963632293695635881345653321490981097175601131238937749991049937708922710050684031693109207082122083338619057448514298750130997601963312871048888153582078156099471944862855968798619772611842480251631788419352949416539082642529005442153850397861114650900433223745566151597230238272977675225335702604234401063871831237571152828477445487396174399618407892397260857628752183729080778661675547651563233268345322825137578135245273133553980954241953724034985610811742889751278299365318588711626101935778503719275992839102467388956887056107094590539376150559934861740523056638765406472982114893840032620148017501267841483047160574645196426107110970945712783316124755486388420154977200923023019301282669128950953244760459843881885576113634337853779846619142858054786721547925011355092782005888559550931337484636905268869005517796123031932292967557618474523601098797960035974327112541773561013968482475600999515979751512396848833227198207520412107038350552393447067252497519211704033034551397293780479591649217233990833178828206281715177363644482011399723673909165310670342483712998446375309527694066075774844985423394150748524121750413737993013620224578166121125865458160280664611049760782700615413611309558356493890088565255607392532254508300015460652901525091919670326675414418721106319078075074914969403032201167220948061412351371838956897034293675323122881563609910674562039968978606433744679093069589175806242611558098747371827001675560987296292181855863365424155196369175646948473475615766938790393540063160850290462978421145911640032656536773266277049811006531902519066734081591843605797921931569247298373351807136494325110962992216036929289074093503633297523748192959556551986095379642555180052380640007023410430660570746196600116819497860665976977809066125160792325806042557505148211127623265498741986137726191700311546993607402229031989896708053718195058447115492235192443244538355006591834853648286464369490527585881849526042350083606236225182897705253552953054964422939244026970294072861924589600075021429415182661155229825684417794919508554428918056582815368138685510346897493068215785128353599102442756515953828577315985623652066555853402912558376449828416987896977123122226607883985988449731117186807702182288115611295730245915584454609611966086323158503774241252402079840855558381181862559187536103429540586439618664337452340704150578586071297498371308656002874980466031174488990340090325036493841506589534426454832457653490368182701213988106450309680362613449852172641718599311470689933517696718017473618568711830813787894526731103654170572401291396816000528863945050029774073944938364610540402257645752570382998677153866800907385118715738269136459616229390166321848265014584014857858444584723866235389961270565004605202251379285242525179002300102812592969013944227028671337342690663199363724755952105499996795868236987213380465308758626150358597945040510555151887591466197264599719620770842226650821993822228710459122751960534551416993432235773255409181919433585466902633722582352955505172126195751874947459885164331240470044881006725914635885867866053540842535231831276751082138727947888413761830850967008051137182366850645503615228401286160872851063624037842694328996328389690056690653772030068495595246917355040195852002754469492608817448654848607677245841899952226519598682027010134406973818611285738369624321861837806392550171418281400945143560587047600575376810471806921043114409725719081825358936666845604358950720060288355312252868167379732457461229480277605662711853583699905215446667470616872094338282316978844767625284648768199276401167433254934744697622738791426993125147798339925501802259428847551795691418493145552763736953896558700288744531602544878601852462265483806789600552351044548343435000607978047248503670232941612615937036676128755110211660419572776688511654768152003217567300191723457629590353232750487949705497583995703837560633925725259504388619553435745138081438137850123199538998225723646634322885596727206606838265356263250108155694202655424304646291197783504122477079952944534907428159551681845430313182407813903332701777778529026353276436720985889222874022081812381198787188604012009434779047385651159023595173382439902650644065167310082094054796889902039291107809039531255013157462002463260403981152207922075017579299717072153345380024574642966797908923500726084383442228936328297655076842855685933695288954005296785378730396208757018050175738396717546097264871858873326565767943480344657546448957092170900064109055821954869392133512564195680928896625718334450041400880750467236040803962768312825939990588385868058925001771670536155908376835607389337168486432786703812341857653689596928374514787850914169671890991881963688863097290047191210121601337624623907819245863396122139556364587856144200005783310402616444542776086458154433166095106541612134049003670141872386603972556635999794263734649114985002306313181826537575946930904089087511690882907441893268661800862745515269062785522434354894341507649322812260687457922350538340789261811816645815651638837640832860453845070794391059703853509732861875242049554410558257142222786598422319543781660324444848000667858620655885586433639811348611463903128713866714516880111451656024414135502192219966089757809628813578079450479801626180301099401235475896399647535332811591869773653343994641216588534002510666358411045528816682591802545680226028260296565360540324781891867183511928393600817587251263502348175273676140786055097614681074496482489227698883360419432298563270543861466307825084259074225449716695498732495872365562051678555908363507915780871125327293220013755645391362853625139757198410022321551001490534786570793676244544477660864811782365407977268121854617682079106161877206248108341000805139862267052859431019317195830781339245985361008580152427712182283398626258405303915138230363132032283477018319037988809676176989892161705893168852463258417102178541899689554565925583015095649829767723975373978395564280552166084292063935471686905677080089491594792986367502534303716178096886142096664063988009720009999213739335718706912543302846997677184105833142312969353114643452984955813122604786394007647136016561767728108753221085726654876373690140654823875727338945779170537257900303066712837496062331128601969557982965556105525896218770178405380476659813645307961856140086554944903536984420477720576882697515992692444497105855859909810267925131990711901258383351261047581484711238531370311548451763295108533273234576896028258479481338544702232076983906513142287255805546364991153792124387374402338002147443942998397508810247842947958617432168057139865383136773941574250956950505369068947130502939503115820701005559091365673634598027439257293196264910138177359080086195373636993742694643052494383454124842888466804504435650706507114331231519676021618781778969475315358888507546417435303377515864053236876359568151705809066159431977484806926453163371945089366520876156627012903034799546780909155134585826409738559976891768377822538142931422694327428854948409670411051803494608722162477375868196609286883906421367543142504121885809058208774735741023231344360168992581483453846827962381614397254771004711848026699171644505072516350995498367063864243781469325443075230739380566052168294076484892381974189308414385344269890009852459612738685650201320883914101142321371837205752695649403410150473080867968145700082178992769826046220133526299795583739142010452381960509554631461399398583996741878077254422633374704961319819032247516961923946260887041304364162293118278311912683693242304566063843161071929631989149058302962914943862162573410560572533866200128555533402310812128363160358798785501983572057208696018915067395109049728951815327311717870309592868423253007102640020464767201778613061100203404869868553294784022174841803586180255770785421684739729690842989363696632084104957645878096276882643356600691954128590271712400772677510508141090861106543112187003299373382082555676491362380659277890051771527576703560455213972363319061074261865394941953103751480012207789820081348912370202651037911438009707366614962095825068492566317174983369211606150923956567448555720877407110330922893413195111750354748512592434996352184541337574322482075398093703365745365329314541779550341175581642919596951908376620639822373884561601162646640906377819305470942154850465630705291079337629938498153749308125558299406918664540472067146611282006477100250701125815593715559955164245507077760272194132236531678163026669640457685078808776986723971370907844978839122677561416974926259810019081971062064050332247583205198784602236831585511716730085521847278127622588279131013532360278711093910191925931219469019256374305230497373212242758268516237199485409312660356939783332162174127901161286057044895311907060051932334042659003761349929826340703811389080396910178218052411412445855027181408142768740382058732381312605673473765576152891443403467530429519500485889135458435273647592496679463440640704539964854657224576999654430283338080809170933887035452117141582368482176368424691795786524825929346410501810021805593540901210535507521826505703508752162470917700687496477139212002860735264421999328199269256188930156947811623044510982370544051764605429250423655484120371701411279572840402300439709174868445643042957686039030104089637540299505741422937191524456670061936180554814923577844374223551712809689595342433149277662427473576716642714867482117850791649209333328012682726966912981032794542994083877245600303619721638341761372141608679023511083050216067775155074446260823549083202799337598165295199948662572469093672559107270413326579426683365588327510837717836833985398885371560401945459302359187254191136480238874327466707361953387598449279258644374962832212187470798495041650260537993961986432047333082076821779803424370552668654887419161199690935043635619460967364307343403384615018445053066554432964464511346317957339977027864963491401138634131896149276292655052251445309565097384169279424183826603497562943036572284054558108187355838249357565326086771814877609656398023905959393059577842962528023697025451488671049975272669723119637011556721915261263452882026677790927736743039179852265550603099199497773599182940867895709009856532534413299896617485493660501100845377639674001960903303906171606862713875013008956833315493081220527046847449713866084828099720974137022717053322481268149175572647896334241521313328796045163219991731300550976117269581186316576208520609068350904278323583397732495160180310023645506441825591747565706058678370398071265375355656431923488393378284526975095824661599332885301912369494221422565608786730709585480183574880926517049314994138083773603932465242483113649599444321857467323422486567798508617457561816439135217452208322270860908044195548248073265636993902622165989614651461582557561347572213471771634838771508968710832574366175076194477885095294478923756526825847005264330411174938183087610162274212837748894765080038818883584445877366701155368977066155619633879443673363875075425392129272091939725378738162814158278384691123896618077390642900050963659297512503875792244410099567611592420527624522463613035570344435492632323436673447166843650716367453423093951290726301864829882351102084781466704783782947081507704429493300863439691346817909069544782041262224047795385214309799820396796142276921060754056626454932740384104770767359408176102784103507181818045346885557418370029543165873229660809358190315310121425957996684693406854282087600669805200043040178975210807899836443135179197425359023891393898044597266108217007104011907055280754925547638318740064742509043489485865356475415289216706490938466218902085236422511551117191576754489802450396549300554258015121940200948014189624173019406128666257892240372087473140217118102003773149855009729803887509458951058554307960060429802034491308936590724903706677314617263403781121418521065299677336917472719628631932514074690794839844157286765684591517109611625401339444283261821569576106856212986563605814139906148575899627153356791268608900177967251305668322964835065197718866297493303839644141210134533613381048396042287061505245863311769514690521721699235704204810820358801842468810636751746991425641879663059169007909691780255757020283082223678630393918047208285215011515339340859022187197230452305093664146022241777881833649768926877121466714347583732841970473224148318009150716011304778575389395634786598286226215841548222584998549879783697826150684357021998153049838909273631648792825711913561834872699831450188171944260420017862157769347613885653739709375406605568396711702977191671581520726654556262213587992972534974174650587030476356059378584794853181863715134438106184943378230339741667696172863278437905435469144243391216711384705989144386805614157477955224893533914854578470504726558849040241733534400845198893363180526869590602652721231315215490258334261871947147799585792388923478833523084093500071177659050763929225259795416392694879520039783552963061003364789662653785466472506274291483869636627960062485355562029696758325509826617586195160212635819067376545938926069294597449795933361669411412292374157195790226344453028392809359803177683532412514780271304327247724476048230810522471392049630562491481602144192796393528590148373245640597941378580533313163688128350182228484463733568939315536835931218656470027982922816099267689097371882910453405460794655038893046656098582487432980145996082940837701768117787193958340330738952947892960748051017639873213553743462649129618857603732491676082985276820054478992212122019191363151753552679339167404132954815491314972902275399308434789919818295032474157872486046263734585007133844433966621421854440193834590915621036912566437169598645541290250319139416252737804548123632329785389991476539457972920840692369682607341133569852460484168187329148405246199334126130407786099537201904040951997731202392680881420999443532567443601449496206797718867935047248911133548809317826284793391918063183271809712242442294451450229813744423658877677700254139239512297936626762086777887714340888846995166951815574170665032539174042954297254296254136304514212186252401322523165687309693508149699714113405548261248098577232091047543201187909065207294957079090711617622116145583129443308743292233516785337293468890067739987079599246940487120692329115804243290691481552403948670867933878726655341415133446881293960711193265813310617746634060894546040326461876995102057852251944478744419686144522560256121037001068154884560459960457625916081184868917629108598213887270931557630430662614656405804050765412676929553687695329256347212759626519128817286571817176774995061557144892365199968494901699367875513166986731559851039338527921229078231275642779709374503624863937248845072630992499037251607032923793504223496422335980446431186218812812828888374132183692226019477725043753621414255969132001236522357440108453139000749997969053079835746908109746431740033594197691584716507693782606937101756507426051914620741670391310412343805434443447117864165932691685536156011036199465829445866392489965839634495874422479501211595367273573196004697143774676249720111730876877016085916496172937176985219446776739342022270336907594941925151295736017300196980992574877232828670479514214293274471298473002550797919022994528669235076288628428716333651497520461046676676946093455093936698746134776156447588696736213031857643164855670210321434797911095837549134974519460728879961219922840832799066581777881826185109985211013658508929059468133169672763666675771208033658847891735185684295705869932202079095425655115413007222359769964023366922914672077762068519254950611989776673880057186147720462192614208590751732377811476969193702388302087242186814208534821683896717392690353785036866760739063730695818039157071583397921542314317952957010667826708915621111687535693993853157695794878884170971890566518409314030635769069909675891159614961906768726721434488405785428638231972288069259673469978337441418960802999018772389573446295575516170014989434225863375746800190090163656392237577662160858753775174230295590959085050527966952301758176415340497116052277427349941503075337855526728821466553842551374576264459265228588904410309224229685171643601332796102671730175875674411173491208567028365416164561622923908112058863381710344565412025726919247705454030525059943043250859948036515776465518937523990430095044300094981971902668002681990146704459106187357924667493398711738723613453214936353162242930819709684078419648453555061667902252087132870544977243111876384259304614273519168876418327082023274416482779506194575607648908713750795431092772247407507677786775854276701103940982092626725034345876028098024744645173862847299080379596943822413097874474888300572449287838759201012280892997612218328309458041802734145851549264168015731895126535152694794216961396736660578794517733807010746694231838357296783398338413040008162127576803350887276481532501285551104805030496295086953493450000648461885330124220021565144278902040962952101649155319137320764308197379339107716372674103867175639301243726176107127193440462008723183820575616792712833229397652086684982226778635461761678527166844561496091906043201817775632347116154023881346648966543990632228094343596526902793846206393291875098323492176603765220272835502254289920795265009059044807921593070226158681897285286024776485160687726927035667175681351268495902384694807772227684130653667602535624185069669779015439977202046252331827018564484032102409213363842994877238669653775260441355855640360097530505957090481137843875287151583782591588802573800099202374202045687790448877418611988986872677404441847588114971068258870127443906405483796181198170571077654656347164057405120369473576317011548208414785045383422423198131394403971964752451764901008270324383325084034765410317952744150450312220954236101440146519357907415432759119184171472056639268129094388720670555154145854444452903230641056561084560213346845575535886038242626334396408701221522705159163628265806863827547217473683382023160883973025111512246288213894293466607394314242231138573342465121731344915879736811959960102514209900076484313103882841727818657099846044734181162838661855828475711646846807553657194951222728948324868116740495439751921665474250387949705735643006524980997423659996321078691058556754220876831219209855768236956895710802169252820289176883852409140261639026384371484305097906865429746551125489980097472832598121518980749666364923909752636304804039423607786695486476773021496732525573813119001231703005686910729208653846678429787452943702575069247858365572051149605110843634431718188121988973950468442865795718039533051298993798341766934836395033740783762529238391171656761527710579405032092933417905244242849766599704850968718962391440822405013144742041420736233798291508128569520077505124949653646263095356439058903917067729299298787786942207760319348034881235508207063544372087556566543258329308388875662963661531653434569329772974527509826522853235802345130746505471024196592326539888344964604580649053630814930266276574128421366801592596644172317377986719874710576700026667798796811543019014071776635095087996505899504308033148088355375298135747029597918585167984998004456578390568057047888390555104472461774176922158485021752046876874559946983015962754721514055946382810066418426355714513981898540608921632343174110965999340436156461894629835939272045931192163824790027847057510852287449666492836298244090570890132545172120983703508248048055470071213308768356779872587028665102961437761721495044601559204966390818979945056884404748531840055901171939298190012325111826007759271162847456492202849420355731731814472390905396602853482315962526480808556587956869198485245519864392824381687439222043230739170517266858236991487124382215520571907388784194432100803528363052879564325181932185112560335089448964836712440327522607658426980231087878364700790594701025796892770780305350793793315880322216759266969142864167476555891177130474952330728354420514514040155112462903747292093128310579063700794922016466268729456824873961041200909569002294219397198072380082471864505534352592461512323776965182568568555905061943913681033503420868112208690789862568680149139553903717138576354924408778252545386596034961894288911036542298156970599572750047215371293490967196735454043702242936329693110071760880896711348940749238879716392005664082678921326509407273262272655241845766543592470019648952845918151013042229560053250327704272685464746241946514222441042191843664071609172217697883305787049780512324532233756732127499026424415969470754391330901713018466573829172941525559103378419565729666357319665786804367102313855426924273241414258507829723524889601970053285469873691753430824325756203607726449971420805036343861796778794154956068491315808182889190762804862653186576789216629469994332469964131019301236372288994919614115644195172398562385419377027717841758216136508622760363456312725022420743872623156785158750730078085095065345756242451169016718619054853938285709604895400510945813799667006543445722188943953151990334365902478182322248350869252431152269462059919470908464248969308452762694922054967276248385790110287602505042066676170350766782590126262195976724568291650274417220510433421851856633444573443340463821324615869271540506545461793774948312538302600812460349661038528760080653161916514007818644400721147373741912014154321751857001257496371806437486719638228426552916036945995000062425339831881445920178483498597537949159690761782276757499251812036969143122240722292702976616234352117695999128648950744768108578768458079882220170631305830817944391477856990503008694897329535575060761759403760429630782903498539354384481258077865323644371375244180012218175483496536385724651232036121496466977127539810245150998068842896331118860605572807980575969240801587748817176793698553422408045148920376147791981200849159044312981095772743182849702684885559631682427567583032177922855278072341901958772764150580397517700794569303174846591504459141807287831332808738930538219753455681124273140064575043620127287806980759427862984249300526924276134535188708926061131077633056626383732773340310664809012314966150855303962694453475237008540635806165426151716312952122101887693283101703439928558735119852208053261205749519318286929017333986524007585231918586439289952714636468578801682107517733254179808239728089190924792922279626454739664184979607294764242844635747464727852680004742846298834193709859420129181895706874438071289354938881940474261590698033459840141725348677939774167203607290954280877194773577717037709919560197422911691346410200549360680053243220888360374727135900198417158465595002487311148077557469565757147453787862681593992294242112545476029760010318510209145480971048369870530311594968339084828624737626876412772026754564990280541251081786539932101627759124962876876570916520308451836905172046777582458374635256365241194289891861946790199232957426255862970704814693052889001564379588493343701981582588149623190998958643392503689591578187285058361209400544785987880028330845953138683194992194157704157452757816186596170735250155745538336706720949513905829969192017087980548373897695292892719130482336819758077037952249411132435602740832609697970683957109031303492314376187242442730612497080941907555480677729149178353343653156973912773112752529033491055845409392809608417907207312754357557836189017421318703746502296013494017765041806734303891339841080243735762771450055104268620441003110463653987613174455641962619734772796084190272809056777944057639222144557885838798362004451184161455385721386955624838853360494236283024100290395252062842213482267827619282811028556654544949350254432809049723418095883096936984753753618433252897533436205088228689854590548206675615391227139459013878282589239495331957056621209531013747091929253929042000649786255734936379132547182592061995543116538761970441607725634628015612455570719783898196701242647837897193949261927260373062071920404792688189770444642692780695025774629067003522278183268433482483140473838449366069189223429381576366588390034714714568197770147999435109211734235154794503741258813611798502342029934329307076597717945940089896454862410749902258527851706356111298637913720173000846052371021067065533022407338424592827974711800499923904935983534861024964633201786377294626446459060290335358572609619011456776575544983246654388158857156384998573112372063443526882000497403509073026339926900664996366355878461298355698838659231372173698627975275666021222124109667336439998504505647713020686150656094200422689419290090306795831014464716816620966741536053660180478434102669976035733472130511189824201617030905443940540833047670707308062076827449221257728960020150313711407361872227849780680044567089901990517267294408607831614001783954774221288480714094338654969682606184680594416232357629504555934990468754249472650514769811202840598561782939642002773292661929977608210355898581117928238294622629046177967114297201615123568933967781214552055915927524079242666720394098522474692608745386941941705790290049438685180404788818165759383972475819452046984585212891856897338900171866583389862413537758662710577598120133189131096659160608732261868971561333195947647771348764722339413677275053354417291236705821520674601333492215815944196044560871149174608047093623594689008306217371511000506235906189756903087174207289633444355622997734496385348949650545685768057984414302169280815455581381613167087641548898224679261641297852035607408909042921684568675495807774313607811161896980505202805719045222962441850286369002262767280556494991405128704683046302995386599576712164152201040886860166300863572351625201155649686623637931838546567836664601835330234999032872546824170678539713776721903780134331813089448055362450531859068435673393389589531830482613939819099858591475793158971883075088877495638797652584972309753441199571152502039759824357868428797558808002612113671633882431900939507204841881464579873545234005975200327940514862983178954067691491025595430985672632684033768227169799958319997816769556531827076709883367588912071276956571369587649853957153330869203090311808094918432985709372045945432844684929927030893182263741651475054417167554532550002740207971150425121046419548871658870690394951907696035790047602921225878257267731300954220796879598061699862543021434506211158137580095094867350445978267009780694177629921512401269465420033165619164888281929326658294183605555772662766131581208500029141440886171819850687659920656900293923149349066437399085153107489027072538567492545773164597156436390984472768530488579720601107455360933396532468435374465090526523684229197675084803156077644601764011391241798727057120078797440039568849453452584894538416717009682652932110933236570596882226890902674290817404123933543126568925438278013804119845448045847749272518743312663872252535317780262140192247475935869778449690559782515348581679556063933816912399062466080965379197812004060083031763288500002812471197709124970930755869972999029524981626720335059686680356724213115973142484743001417654418290515659706752006559663170179003650234919631310019763200556922412296778901533412684079943140448765209433376658759896559211279608675709197117506365959037941973225564527147567703318011845834291940512889188410165039550311828861482581734548281117752959938025157973702737808326650963200114568559743990493631289186847303531204052320198558931336052925796221833938517545357762163743665144315457681286620904359795992223304855196613973199856904175891266440504429387463585572181458315622841742472743649568966418038476735327832856622740588160204085493510627070458815455866371382029619831193366488509012316248969982198742404914922817521842483967248070562559139225717282674246164223391290500776311887058582420320270740485572629844745984271375960164621498688387487528679487143757543729966275755872215320099155922480780082039458194587331940752708945149507319143665121485451570570131092039739745499354549328947799953647644125950018455560455743053859804084712814272243710901636721579597129257553822783214625278483217609228808957501779202026549644675181204252489629254802267720271902280158643289999767217000150928383200132115775224557774956643656338067783420227795184822846620824335129341312497357880947513257134473869787488466680019974360505705044428754286187609493727428508414993767398514534309746891833200572259424477109525822144853406849366336411933292142553056785303522095346546713313904691173238389912121813737930643304968678058657945877390314618300671080294850734973861417425081772841465392539509700591221054043473921450837086290203682341756219027831324990656228777226789850624345549060540909470549811483792274795494542757902610653398722427524961160788541353418997869674901837256112102938771924686751312842161482148020742406385771801414168432442492835314020676450017738125393160162652312329850072787177513877903727452479716307618125456770004766363369699826025749570138596507132788712658202691606229126731546350914648465170719026553385557977726783323229319291047294495745849972166534123055884264956203778504341327439163428481867942645923930109228781244240129835267331230862739840125459268799817159953760976001266966367193698273842058461275334715942894623014137980942041139965503402287199153362065585625972016681222765182187915271359234417094058532645599394646128662887160659842822271216264860970917722010910263768641044203253763185280737365525142128041538566814072000665079988306425976146474751501891614579960402272014427273224779276698225083762422592041372892841333411023673470289037902321340703349921327637367778344919947552632573891806757351475461633647071085621108911111837852023676612507377076347910321703473231076542518290261574095953376059541060459578352163735667267669056489044200750626335138390310337013604075015478238531435100090909037658528892341840226002957930990588812045383204265455334517877852384725746849547103931711731586205361517571936093257858970113649053938353284577402579199482836536325639775128997501055799071661167908222857607400589604543590209763370373274081171895534750406442320615561661231334233864801899603325218476171421023853968092699697298706753165449185896584490134881269763837495803567028802697206471943339278646927586041592373000229835072232298676083275179111472251227446456365711445659995362847063254584196039693539264751159804777261867822297889874276947148834828562762849217911111868471167893587792271367587183164090765782919158414926758780538204342702895246170433172421926770272083237298115628065945670416437163047825055899830286860236377476239912388790040787879385524222326657591008371267603565382183769460911523610430411854638268892766548069768307835182906230757372008597102097715905831480470493414033600305872556748906226749057763992229912827727840585751418957570977457001804198032922967126073176805765561786776471909785501472258968471221158953291931668691376288738094786023261354054429819112933747965737753553477479838350833920248449378396881900990191060400339384874111110454129988780338940552726698745849132203807336936291713236222406239694649049692002137249763822280247811770513529678356040418647177352451264804502358911734936105598495248897014940156423087136199234489223039581309397955753471806258559119613930296591577738526195928981121602420831406264230940340793588379607672419134074555909843361667832197137376508112180718763232144982853606331707102696489510682092943777418020625722808108804538398218150343611068660512746720680990860715079013742104747306737995253601622376186285242281381357196922989683537319431133323056796509809152031471421555374560572621863289407931344133515468017482004923288788634240375372923219968778512263120095703660027440393634621386761082286198500559579701828927453060699308767770123393211786182818858752582658756585119565063354029978189365315131456878549465489006716024100576448543171368281710933373597475245362865257710243502745322508068209476703908750986978933969985073493837522567056230787944387786045183866246688423549171443571036813359843876810810379858420091224810265555860660040031506094969575244448307586555464783587276645133776578740336321550267140021590409770379617623132061826340428297820125700406496233294960412972352409046318073785452642212516492839423917499721016632715235568617417424384306010973339624532996305363414849327296180536519188999089557772992284170192469119636414443732709337798467368283607853067683176712280935803933233738889367420071297741936453855936414818483884363888834878692363150074287713807021497931592482638314964280999054323861305597636065205464717974237242068710648128209028449386798780016751346360296335069470360331020506384843238861569178146410017943667540561070103294946164822823190618723332841250951465196412505989509704354522956921938216814309245480018406357583837092787030036457189592846771677195781161229900517929973208344555689954560172222348996958281748149316484896233802127416266871057577940116935969988712759752530638837575127937889231365062318157673162158249576337881274134231461119927664656026375020487740316529111478272376554850600068958420336191461795785800186318192623337056949835211624995150568270614640492931490592207421156016567658183594840080753066758700280425131582492760480843237848819393147008408312551088342098420027347073447185516397211618077457612587789976716030896142708854168293972932734870132617026128961129934672636868500587418482962597923683226103228730433208713382654890472926581761881967031014395037830139246548534806603236392015835805950772555404927680801192732514710186190508678224830574843889903007449978496498949215519312531156087384407648707898184402103636835449460984633096578503869255526179461352749045018971217724979940103303001337711869639961565713077668371535219480008824236822729397570765961832663904364315865135160205707228862603184287953360267725471639568879888488802875576205931066979618888282216987066556384118982588143542033689183584223550693545003232925251322223449651819696422467321774040818938267709428749265865406180175285945006213527769228987785656895730168788920770994226198793386762701935270849089475163621508095921185267172873335639037570367108479183232836305928990657033837369959990680084351256783676320516550049426096602917587241556906276372573045555026429812961011542736953208623354461354737796818637620222595370631523195925494712662228966096038147851308102823097926401048655423046987760187664678692730449926821911700297656139720497276689446553762865698941507309575359099040724436567009892981094765567232780109797931565009959175380404882793960630368070011216530414073237925521429312710914313599837778979532020079932520894505494525836465940239987585135958047671650032832989879492042101635149960188931121751641457728452157105439726443547079104080144577496238042545461731399583390986192922215530530952305497017195764406616651682001390398850543247260483428204107150473528254635359011399488391495539614090746198095972087232067495774436954619686212496425485793897365625230076914112623071922289407710179713900438420033372353150980297859808348873706503294424237352521482768832980956234919498333776798435790022458214173099127209711086484948858646673060037938439940454804802075011612056933000689836140873518416225898108864249291692623142491963297028684269292462243023172614238182335395284189338616539020888705686072485746568792735929339317659657507196368035655075916474429370107015343548872831861553414029830408819256038954316338370638538010244864956670971788205130222993321522469895952579419742918224241529266060842205391882874514009249065896739103807945643145631689317013426133632553241229178499261038401776497957937507184517737369320287507126201776909953322171196158711265103413919233378302064699334485393111559618140488603179497836882305423900825210391876243173423002141190825318405006028805089002114027377503616793248174246788616695098228616542378360633553313760220915601374540995855039972478899448834825627732914733094533103538785932168845793398613312726378686620195485890999255504708381292964039788820256758353530437088613558696312694810906872063844404704776115797583192388831167383093386981531725645727771204248605385475241430697528417711676131068951210516572800948731894151808319385388172050481060641902399305140566441790639435435996140854816768235563835787558897618968132250239908898316934864185430937680182537446600771811584529759208353068091731514467705672998672971214828231008860459369913852024498115958749895102410275719785472426695636518243604578761238496007694150537432938295889314507171105414430202582860453230569919329607018622730059916522741409520228219032561885977315860616906288895787875691456212267204242169793277829736143244338728811107756808825713520017478002118973179110774757004629115857557332211493963868918696892475899844120236041179984186414630011493173552708979354386047532675411236982159371671786157754972110517534238925616980388482563506862913527059196764367577747590389430480336374560219918546452230840921240031196963468916273682223579712917420919876387965691756292070557537611571023092908367128372397516416334511485958451802535216087975739490219012673691322010395143475469604634290108862940838281285100676430598263578762805542523678122639917002824649230338030497101819218271809628308491090097655147369930843720093035562278038587240987088457727994078975708686099926376616154480110007560849509381536255535813926190426479301722917833547911922984795400815419802775263572930531349165696802208042405439591584975995478425533676899659693429220294206088455536094240743053883894361350306259066529212907868798884360153718024604410085327430024904368401408951133947560689902424681653769285426811316863418340089448244061961265873246120775497713732189835032160747942682777073487890600556375495595238406841230661199919996819287015458923320843134290304004661079789603530772595804779556716320066261984818536451765541454081161405872738805638565100949511656657478842198296758396675056249382568937513708815697401121505377731094883459664236135754226223876611977922911249243830570021782277565092260628456695534663674731162756633020725237929136705332205280213940569435145561067077221604403669642758039351213919379995882600324189805785198571284017957672463773660533611094387685020808209164601307908779398431376936335786954864169292047779674868846558523105021038172947048163826776251773117433442983861838469349973704914063041826655871400579950441127903383900863838373645383848366289199954673391792495866815153874522093805847936954060196223119528025378150449117775794934180607713240992817848095538274235170871975653941415816057483996054209049951797813886980341672689275203028121010553166965363992187104775103522134072171918844548651479359334819965267568859330135822985892310809994044355379902161656714875487835127950546789580848419359884201921746966190579198175533788081590438708012500066155184765503971033201859773358529347385840989482982859913476848268638021065256690412202895071771676771203707913281701650911909502961808871574517190144705762545099978249526036291579105170313571707743911183700161315587150388699173967592847141495021011125099709199928004324087844961445111571878048921406146939201491211224302322807053116448543577918217605364484126461106809064889723494248185647558426186734495864105367905135718560340366509160176671571714383076665118218969084951662744231987594043493704242460314111220322531345265269757107630003708590826259901228295096449029466107707727538561343507149156753325235017526916124809081516142057052127248303345874066704093880927565266402478668140455373782440685548320691168412383976904496290809606450894792847602570587190734984603570104013534007129457427778619382660102700736349659928707864843754225117751101628579647787162944669615174745691905662411490789760996846924347004393493445035065591526826045049514987683573765707199699316940715019102430322370074284066682651729150214964595651159913882937629539969068929209457581022482247780111987263887181221538579296754043954337563710844560115166047598482921944482201385512290905499310323092163926893980911499191314500779555506147917809642060035370840612191512700894258717459432202527425914567431279962998202843286755257430851178616905305443027622655363362940774220314084551463987846769124185917858616834557810729717399203325897303667634852727596632046834984344705367489378103689634287377232148899143256509304253238708679784461425801616917295994511857432821979593572297348807087717446132171072533901749008117903248240043295116037251653224239471602538636239926847682602490407666778410747344863402723898163965440734478010947490329812549003644643079167701634216246182540240967426484535221584814850440163650089940994344875258976416399636367559977600873702946016137343944233678711934627478496943903875800501596538504911763459396778484608513929169724368996359542064672595578297529287055020068983882285611870479780279153537521435907456216183381456639258605440775895426250570185991385122916424202112165056095517496758413556482448427170746561716472884525968720755618900684846515515344793806410063088161515089216798423584124898575747820985795879640161355670281896662832632101670269847775389002903922010984665345774403427824120709099343417445254827626780228951336833306805686050889315918264144939017473826394408525973398620921886674234297437456728933709918527957351870070808890008403778073015510636134733330070455391090640271594161899106064652074101589380844339116227686504150002193575607990722879798442695548376924797016331081431914698512603863505358406865667804015016936373635660905993908922341681690095121381785732664557912623959487167256550270392254005310134858809366321478996170266006867977545626144579717127872753110637186290643628637683692015949961593825456557355793435615718338557980328689452171827018650907619045992055903449467530417428253945804637716660255171422324116279112459980846302026124606698351912400718788163074775652000989862865326481421924546918318868105650780801582271199659006091370831524869819295244956440811682300863897988256640299167755943380792836466159781419761951871403697404526017531091264653798720091222272526756451526496562384386202135012101916685613488324486950945406890288220581560995507462202923091740563809066323630471680262955886144798140571220836589862588467944913717108363159638276118524139171158897172500582236579445805865812985552647218338278914500879215806412885461869470777018112166582316388163899342399875869990924366381282513116326559681541590820645024814047436240142114819456301653490361302863522578147147166803622628361795441663062729376969591237045708203358995117090066139070362589170012344718588407764765353203239104779515133777523111457364467655666930850579713209776362265150303964349637200605157859145280933874054497901122586466063878597255165940967072457410416721918461774351993485019283049003879107423602007735902963578820044466718045784007400277538364653833538745728758172747729049182708212070853646959348450483257721686174173856738811864835100444040241789149548819976512286155972339715889658116501429478001725101649497322426204799180021698755873053165019370471753376807619049231934572759655551690419782992068381775764496287130955881135730779794791502755906852491859484023705523885361316835138319531729713966096647060094158818756072544872065370612540749432508541682618957275558892306666717543901872818300335508675622279981395873724176820993496457707204534546519304754664075558700181573340408201079050887995862700265773692945724931299702440492351317147850874715057744011430640097252862513487616212918862174345741846853411158438508745662539059092609673864859280844077655885834457638281570611655718170520969863765326036426223388262267565160140261730376859379235897826481666908769095738594454648328267261381250186737094796431667483707373995367897430735544050736223880419806820300326535845878685702286966071860818125940672869970959582658401670070072508586756147851926191122703576880056094098857901891135279225962120249838871682884785756264487263026804650070088462161023976529809971796123776129925672730899018371497920175128572828062093995586616139321050914352174920136232092698871434246975974736866792989952798578435163054910559274335628650184715830815261623172678283634512011806105838179863921033369696299608176289105235830665613332561308334182970509412819489332366968427951616135267369404768168295206093101587098916369912474590128355346761307845822588559408732984295650890263541470254192095453048667331995058802137543104145699938480842782532084116232827386853231470755328641204621785901780412180493183698109184129749503504243487168266893450040775637562614166399309408497162094256091370306752899932630239550838421888841294627369795295733279607316029735319987722621122921078401671360899418881189086851727960668606828746094428947935255495568993595077827364597544715978874562546278880053733725885480260469497466910514769455719437872789082886468074497552549756333202226816861463091046013523666512802702404146413680142036570699423257550518514900036894691633726085759609656842025079712455368253083712914485794481137681304934146288240025807607151994933317328778076442629416988043872008650951908570221307180725508469768428956818301473639738348666554443291743516319148095816746235620995964679920604433910486625362920296478805874840013918608942457224553760647308078350954301270029658908757455665830185724915953734938951011333765992398399818222275121048602871008759428842985507215179319974010317992704937437197619925401644936749902956764016108605177863984726259423266371799748956139838282883726449963490246775276086665079917814878598023008764973397663752420876675585088732161404003891527659041519232131399465122362352204301418565586315380458330240331265784543064632734546086246381951297680373349977163459393972366651558491663698302810909633151236759549207719662782819896738776137131001541019429914878629837170779528643960832915834909741101295463815965755347060865023341893171601577960777150112862903337066400989225338783077831267625965467030801166187812424704989537336022236982439186269503789407789386504372316780725464691162358964090143089114126960168519356067353414654179041627593652634718612521744641506516478284872061217316779470353737940543408352182712279132739277020265645148984335427729899147282357689365886425415783491672237881772055252223217441955938820845424002401948026203460974440984715653442404168493328422794473875997873742080722290791809329910173970980029901456082744132646419523373804407757963128152333698364447637075189034200176901116413867029051546897633873447729185521322230482481865741101190898152052588459776664761330575377845657896555735649398276806357830153417950788506502119532472449435904171065784594051371616563750263059177886207962134441378617528180313017623183260661704900680142152759506863438412327133055049084717220951911986090075199857889358187692319906358025071073567293336040506187425803265277603764570651696861159675774498271177208402517366414888094825403402755490822246417093208134828066458206412111654004169085780740568567645976144553842862895621291947858220779592143969949214909714801237553412285408907222036692641620757626407461943412069735271781112562515132425757119689247682673824064890324799581626416449618893917838440290266823884459767412681511723777538249205080479388460174831173649873602946730604248297957940358437257301900466529389436910869089472818694129211805191374606061757613333254162575467129107818441900374544126966423851255820012585433291103567431082423093829408355835136169813225067063180205500718024770312259339670809876693850235915830552137621007470684755222366382621628691830578493465809470006680333314479024881943736193718273802269700824466191617025898800129443907011749625309255614235507070952829505797878605066450284609255111390969208854445633052453866924700819097384558534580208598240409316991333213049286042386552720672236987622322392889937660152808418251297942020304449736811815247573184529140888428574812932780819417752312703406164349968855874577695792495370514003900133746548905765787009560276909993133522543971147884927963462057938877717803244722295902460595756609587301246502001837527320319382957920519974239415910808183069418740112220594063859048396196209840040479997384504869437939916431985036710692806701747169031924505410734285207578531850720424915869735147034350327285738834429023921490276324750389655612193776383451851150107837152527012191761156152750920013969184439244487822671759699651595045799020638171562170391141785705008911746004009071547321436716171649701397820500330088342267775325263579663469989934680307813029261459738996618736168176815699891874078397827528333509264076570794580052170978646313214773778094941456953055265244145365894980539172871961997404987019089966832659442636652487988789184010280372236734473370902728178561016520104535705989006669450477920208952904087171255932558580221649278413318060743845564317108873403431341407894886740161056724651236317218223757249825150227042848172344033013717007641066607353152093868030834801580859222215253329449813339813165190428123523003389643741322923466651763846718744780967290360858533314645437519807623270052104793825624319069125870915470254998037648015184929220292822603228306939384798006042512857714829269994862847711314920267392001714228879632793864737791301182968769106597808657602870108309015032799176907194984688869980848457225186821889830248002976171817843632187538623356331160456577769606197159848104303318537557185362397501772948092231465248477664265176480787981252312297350058825574428301461641429705230879482136287628836476892266467783131040200832935023807434516218773879783083041095924060663128043100214311916099132185871308847550583539694229144556983095004483378446488623612032260258820025274225696026874461128125907089235921573127139804430446748845262738602839154012068454006369264503519031189512904893082408112220420512626518621165438985426835147425694281052838856783651861499992824641267737035266451253678568769958295652013320918681738790689723618363878761530977094006368903768003792288698885821356050614523032883313770873045819353992197778281180332462961894933151389447394717839181251767551261603496137425823342123979906779863011285604443096313839619991555190914412318986887169062234856672450390501944528060771032702964365827043594516253817346469877775794267416863203035215202870619813529893325966276305299158361268237393773253478170219085109394556697969038075329251849354072219015248193573365843410419146472545172237198606751551321501314135872079145093161400867277226327607430821966673328387832814357135246119139196935253489668075571940280317955861072958826224125454566680672782303289064939217744672150342700880670515037915429334378223726816991514544378463015323381492134155262389703695804607788831592412903744236246728873079003182281512239330793963338487908487911930341634706626639889563542003213392022545928447507490085245422720285815261156905134840591639319980333280415481851691375420421617387422408905185564672255674309858618527836116092196970043014266875480183278339953331697237289778988518717999302999134173572115514704481416108364329217072862258436472719691187008120746289004101069248860047194947888570775726652413281492228533314995144119113520973219125845009860992869766145022507366528395402365947265960528878010966893410005162937492168339725213923300386780743672979194101439572677799208601564455542461943595177482823706168877244753497609847203089430807004246105740295256044650837401562210337547946707941995087778757939449961397196285825628524560724834793233905022507599737592349002858892418921359989287884041296619268875554557238432703452346073140220043427492191422699616277708115736005681684301438162851014399332828540465579922867378832484629533785116847187936904420530990666480149294417832189642316638526242229791229883159321414607951166041827429925794797599804488035726101924689808555860773974612565065976622508505441336328474278397766138259764489763222084601184268096060475470008662417474306796120365546224273449472209703073018519590823461628387645203329316787503695624106254638943435772436333911636217307311686192267052854941313325298621697146772523847001396172475267975037960194936822853287590980257923717418631226794178469062822576960303095330591580613203698730835462851073846188976948688718599865297365506195176827981141790045832681684817615689925714143061084283425686388802317114200619902543504919022547046644786401534220368819859185992759047109809537269585887182354687514644905094753183438669684493782563891688035132852272543602147203100525781919167641862007411039475967365153888899244154776660602537733508499140031642787828568057371769671793986345352820908921601290050618316703881327121227579329464461331276321844281014240211751066364077168013007653963558797718899324552960070384347855971626167773969222787327357186155770259168054916122121346866526140180644295710968033012811423688819127101465134753394658023236025900789900984790002150908878390584802134344123638084140742914601262968297505262090085168496021588386777584049840103417640696531214207606109308175898452782159776969369537497485318684984859934227243644092117778470718165853151243519624857623242150635389607437241856850757904709673231766748726061745188392444227620966595964685881931558781302759252131938462671202360298842098860082561739771580261004758571861788743351364140009127470873775852947330626466587483355831679502058916395972849214200333546537992594499810899012759697272652388890517597783037128736455387313104477709955674248665904836219862245814815203857775621266012813276415283211034797376324462753578743275167870077113173947012314475688763635172345166840677971711486803450210470390612748248876404022364559695401071184359312169524100242130955497117009229025417346614188962882373069925094511854842913038613422041327497705103060517988799881174060711835526190767666668163338662449721423021724294172234310625750112366670184502855393387716613298835540979716813563887105033881465675652198039470169419161330506163991692394508716316380383654365708757800607656077663780614057269113651610947584321495989234211320223811542396445657304985769637770135280834688493305917331320857274722072982438697179787292688871637425366364739912298740989837555174536662751507627459320591445880963847763571157706370447321801083476359039875516769545136645006238476556456830924717881206648741583409551812181667343115078572619466943619216744128869756990738380576011289430818386395221486277586389163225926867746038033968466644763058552790426562824168485726304593270980561096237192657384584370254989014826108851516676859760652823718596639555184081390524030721630458633080263832540120626556463287039911254339469536021817564732187872664727377930582555025602839628282680462722264793309027178503614636205804505477549203024092794337211531224843240931001560680800739341115696544954091745416664978829440454767820446322372757934549210494275990168345687997246328721668660076635653464010374702866437042060749175053405189709320453452236282169295747684581979209125076654906202030817517208422757904892752730799026166179821583520601883928779761004912610471230658090889388872637796136850159348757234035612839954585374339888071859914877299718122722214322515997888879754562220961397476926819137765687285862380276975702921384298593431988849992723290122204203610140097074105001796481487494591630022189817806595671254272327243573120058998383294565374724983989991107591157015581118484407132717661310127222545422131445039342250794984260456348522515173744551905578713929412193192093878580842156499410779366803469259399007105831583461223136102762091364950950026079072970852130573807122935619293759859707885972496919364682848010628835799476084699841377676443088527098988023553464552475295293274756059046227465981347623697742331045604127168592083944746539824635897499069621720081046210879616548722517488533624077091252718575783769146516684987162536582749764365222424757114163118906976580592116754882415069953735372506704401087983429465668748049692874333035119657417018839473377848326357083297392750101410719837346280745459997625391413523054080511419289645918841193497738736166757082483478079901527601471375481034473442600633136061739605710947602233891538472328875393764739485698666171582923708602452551088581817241342338495459062484317181364377199150514268921031731358377254843090199201972527472296016708116112371936803144918128104004605592996848892746263597589129898629982544536796614561406624008190216698961922545072665903728283320499657307604597476154746903193486697797502776521469343689868891400074100269493611789802037449591887232638349677469411399859592475920862455679262189162437224586358052441303362665583466838149144089895482547450920580178961665742029456160261632580135096209039429898362384021208936483907563486076531620108624741482754002336836364782680927907328221496405030478837610203420002307517634845502675353616017626798209032349412828845083064010117457695625908862098126789184711890483624924953940389881478343483369328595733710204943447338967163541053347471325536267521301570609511675707864049484337292576844643107821428760889907733878720393688053858718824486835256171089655656965558267438235269552334782305329593691311413738519670304648702492465158990467831183613001051301721647340323811864348550730220802497152003832476236510305721233086627081493846675960346640907956584278245171584951398023847529118681568203878103735215730832288339051063619231731283224125263198014679879070729118244134990652847184756300575428361960082541926182862867188116539316062229163192287909505734460024862640694037571679739589747181992017740787791127182637698937055233513496191662872060312184276034957732156746369198314822370414004900206722200889649186156309135202663746749603868974202503679222870596058104326101094453032554527733694710376049391444798652294046444557942556070076058532586126884102687678329955076281121096855981751811810419711331047045025364391704509706451110513461860027417972616733528464483991805390628879393237582921048274100021803640741071582164229817256057741607624108244661342708413531145140306579809013397475567914310255438662685539322240413974509629239699978503960154577016139783952421556037814838637349276724657675587908598171651842563696251679883974063615797668107597318082817630835022684905275476949297547689811407532939256893796951294123697665298662627663499877424400731221531473527085603538314640284515536404778679155574885890243143736324477844000541662137673677874594781240691192616781506684078794670750823690812898306337791209877765621054039818057687220039016683933188467886787475543639138351680955046693382343812264608652424387660727104943270635184821216623888386586199038806184681947619328302790046766606845729603998686881914169894504453324166729002207050542818999537402839646576060477562424925701477626049785160075583348905270365670230777433972712896276817969381542145602712956922251081801086846368375167862488934259602374381089954578273007038000033741187166188259304499374183595958844958529774253261534580915947558670942413024796658607791207116160899820657143505494909039819756259010796118658529854591623980759114759608854507061160771533675832433740263528301163396522927469290971906070330978262956514147316273735909663798073330967949412432942879641057103758246116540135278224670453612583374488366251952188761155537940182367702404503253442094372720292381034212690556490976593785660992438289302395539076126450288434118260303533145015937103652814351186532718295022994651675913111395158054849925316152480363788784188997880949070927366974650582153571887550161170085868242798320684794634084020903048375642368697072017269723619888612875334000119446524484614849035822145163491070891252141163745273869361227111078646817194281847433473351213475938489176892129489803244565953147999480482689593393258605413939252748329501573130650664393524624986916346903274309417334112602253069912354865813104901246141000156818476552737838745996254599487239036791411110071773833749377609381201452084822995926416415367640594412246853586979908656167096501476969314558323072437142088106315906486609569726854548814703237869993534483925853190030701676468483081902704888411572448870512523884135254350537347032744274441780437554032921992923396454774738815576041546928247212880865484257967652092010370583990707159244200687794286878432272363671297525240289631983633823976948699614952670849689063957137196664686913345386806315318016103365998611271330563090827317396182853836165842137990915056508596296294921393912064218401144372587170155326681483437035911179174007065392147531987087123801660666189687114201936399265258727971741374802165229623263174528614331219153526328496981283671395640159313683163756624876553326505845706670524631862168558464721916217320223808500164221570772952157027108754616750492395547473098528555002377025625203569581157228131167468264252600496872883177683135154134148572658513775313737210509413506343792419546414205187514192065765015068984172410443325886168634826744669844056244749029114197803530189488086930419284014645669141866711493246921657869163938630252786247751053503444746060215254248417423080132014614919166754139426220197707206687776073334609079530166169060138405778746291310459898904154770330545907379774432089979006645036727400983819112517004537949244728749033059542931857301905831912827652348070261868568683991214581933953586118193766385703263788419647486252621892163982777897777919441148585047864677814957791249293448198098172029087156446236345431199731656222464183023120786826405556638140997481075893378365873191217800093936667676682579447306754024627780345313968967008991371755840643907596387174532060783874407768596279492395884328441564906946983844328339333248176251539222693175838239804957134785539972348344628732346097675722633444807770416647126210583593217632460584457150967486902915553266041233175767151636447327480462453773145948733143480470525936306412109727594254379362210500059703461305534296695613362388882162793554281939396578562744863246053737105060899840835592112249232384358823682292441085310919461313512847907502768267583177330114908854482894779475855156888934400093502448046008118839602155523656357509348279504374200906179570199864405238149419541234620152237596099954438031401025601218889712340581202238352513950260709048715973208251708358192810612719720195816012111819734125057770371788236629703948179062374388247026295974903020191631768091160359827323773022217208743291968777674356149154889249753133147962851929927636473862000917748392954550579221752267959558531892982965141108752338778313552180964803435906786902276681159472797519434119968172220008395025233831883947019853974170638751771824785391259860699991114075961476216722802941065284861089047198695450494284251204240848777307048351619855469228789252568614146044728431955003751418488158749523567840479800551895026093348272558647249620783927907837636547448497767021192230973805476048542832522627268210745824488065198984378234156988478332593726439909377534607403456169006744936191924044790424060078055610770845209012703098614692395155502422029644450433787484024747626707661637360206123529191170500245159719591672209356178870713866994745421521591194524191989860325726466920625394025702596113284140824756898507320133832219228343499920520244839950659196822439634482044692241845200774228818351292065704226533566249587263673657017542771652867630351718099071230842921395158101485615291019212127974769918564538508604853142566176850235797600204819460543346872714089150548031962362250063694276754634948713362230670133052846312257301816531629813293305641241856380251273919618243508102026075121931998871830113066522002023442206501026533476558027915353194312705375315293103114417246524807534377748972987553951845588119783800941124371083930039749660739316762408196593733539128335441725110759641053636228356457195104364387966463515211643549883078394745498747227677415142439034982587247173284583946730501325498773450555727941784940496616254360668456866892707317140507466284477398597880965398584610030093805506314429344600969659197065506391144553388702848806281320558333135581928302897335927319234331510521839137230673235835916817620823187106453486748665178827413748485281972248287518987228748556414084619785050057573146614919702888396152171650760954909955270302977186485171340700824379595463993000287209166283385987515176166443127333079116163377335054338519226787430067816432415916671019325191203299753345834415339558240655486043303341601064313595539006611052790279050233784009841002765232735659734569044823477440255647474411906118676777848245311268123465933034627226504808435726756032627378015740949152698819436604789597083171506793148912756379957518382967362750689483418616788160834118229802189308120037210443963070977991575992914257220065533400211199798840536991835319810610932951823350386049857097685041909124016767053702600088814684467463449066646255753360276736242696288099488537954586510065816552065097917781382263265433957676299373791061831639994553994624096215802036704122645696580195945182651953105708600077147016479541098594001612773766933630981094643195041897110339834926819357591741176763832644286809083881058848851761723837135654079500045873538222823777341249635458459740306826877131562362305631279761154818429556029867883647442216061351946461590224363762790735509342448877741380128455349238400932931523258764306981188552882685464036584393246687968827904013211040712735328058297820023015602761403346283182846321403889263736237389604381543090219248941682670697087270344408802387004607360697038101124977860076230513192824545743905183387441316247537872764219881195620861896824547679723585881910192589382955778152559423750508113537386205460666905559341481548195222607519347562742619280323239329298865569607173430069760390505006261870624514854157788392322276250537048272458618445465710222711488783458364981709932684101618330027034149847171285685377295698711742121605057047639388034653127165491508360479939008457744244480920495787738517912277119930106153985383650629154276165101244249545660231684518827564256807874039962378749510891192172972525785728036021954624022977732746054174132204217491774648489694090733716536243353880836121500692537649826102566215947929473787811709599013755575356959737367303806261477150810890235190541046870590534341524330767152812689294296521435493165578134893062085431464313667235784100827225856707019377925822834176908046476020261189541094545795136879606694078227322482046307811389664127200846290104663514232019039961064851701059129259031026343616493790394911155766359831413764979675956646631607358403082213168812206124422685519358029317530677073347714272058246756757411160910799102350824318901280810840100897093444097118704348722059349483836895644794680299935760958910823527802124665400720721394925624557835208494933742964072463594327561013481343129695982824328205334963254899169645468960303740069837043716440407560184784660730791427632638947052903811758183136764877778073027137942268509549884204900337620519191534888743646603188319063973076456935748476784892014702722983483122905064411664754357747729003783825312304927874364576828113730355746730337583401438273514879462745991160811570474827291727920910960295640663056883378811263731423262681287917168153908011418726458508447340851138030172651136548371320626902365130434189987565545613251600065220417025566287543108802168299493752870414964269436917503687837106567830531079960349769999034395904016047038023973610577944600579818155254075671033102441398509451539616508294129061690541279457324041636318865351787214039793165636205295416028997415264106124930849202608068301494420168236377625354704272413737827447575094638163383924560214318462352223110010075107630420496906440458658875353319645770804466385903009765769250470166292153304303300795862273867408755905037921912138131634896497781375410027643346676269311289807823368490590899107903745885090901700332095226014674444739000881371100165549981915092839213106483214235118106092644239765473888704862767053423726607841166414342161011173754953937468871290448221167514039427629671717329396008226534559357584126075148785773815781951018327211617108773349581222926459440918289570127738196237148748710594132264233675659875862146854707993156700868052988687919262757384677151629923238656765806349153666111200303899291270391858026740551218821094379705830106517567444004792733544522722884790144071899607439240238462498761069152041316883407692953644594955018922016621877715901010811324301505933655015884974054065922805967550153846779724816561985632692853116191138704278054693278810478722220886991002155620178435205310299598356482928102144125316792394825167478397210976322306029622538984252175233742768131965173319138780174760383702869319764906112163145983218874951129159410203809320792542642823611575867672261154453986400866655433704244307300104855270651216435044440678571368987330831310946250629679430867247462909626402679681243553320677406158891409163709681477931044591889238681772185275130408899678659133627633853553084220338255149846282966317432275865358386945236245342394013537378829138005119079987982458728727319397774987288320203357466568622900049918466943384641859418649276620147763110320921078519788632564659380697572345132871163896866571191012653278828566166356530068958636135264258260173916443601427736302207726371031027837984851964599265724657635061602391876935295767510795335830544858848184497153819630684309875685366365153676096630754800638685491877033982400097231930235609028198339361358595853717023767220543822872018091891327753423102844385850494537660373876097767600799898607065001210088449915838691574701591177050396942241006172633761486153450001366261505180513023623942088585347466148253977279429537645333757268447210234940013717799650710009048423959793724325708217724036194865478536892277136882777685492914204000642403855758711755410685107842410816155960993811504019952158062456641508990272408852759420959039859499735869919998811841449471335082705983272251780455621052701385385782304982036509335017813300922445634744396996783583891419059336144484886533892886239997966571237091514401829975971079564431735450149909997547324702534218152212063397107166655250687459128603952900268505790296438921606395081436388366856038087616603020460396262923502048669350706857857484963382060099903425996471410061986549219015116566517178996243413746201304620462813689519403532609091717646553590564898775770220001573542082059007902385860458344076412596852871134333188685525571992152848857976022013218260202652644501624505740314740665708927875714939680729061048342878365881759127455930954860878095684386681225780436358302818573930477468125436959997477238456758098181051791927953361656066143833283070574928399119218019852201017525937136120727731246990729791692670116743106048901938916601420419059996274533172441876392933215893411204979112218373309883121595867088340657714545727506800004265706535182460468693717668288443178615656641531897989357887118037209798645646112982456361075182738223943275964694666216011461178941406444828749245738277938843122930800114474211262341496841846596780664490922568558987375833796119057565830280669668668867273890868751907328419183451715091824228102687856655550545638221831987012573692575678495709561950869640247051404401340937160214865573102571835927270957827886757838151009118839252626149431527821573668970816295217056104778019101132961467290705055353531127404892145541508732343273928103815671655049492383669198590230287358735337033966571663979558235805065383452839953100508217817492137215710741121633388270512913072194905390526280232462205867070000678921978182511590815520811127228671134182140990872915759052776760203183521606955851324925645793955556658184881460174209170632197829190856499916041608249708676275766547333057990776836042386360393738172338030309577813280722508588728970396986125105026085975172181672557783216908761585516784412862230617994510078222123528155692282083031156912304350688455071391129910569666965882245627149119257557833787856558142231617216437856761828370677005802971155040570477068468813101037595696311697421736252596710856717386167417352667249619607731670279629432886742638310868006859968068144934256693512076437877065312147102577964835753487773389745462592817109436042095868991222062854897620308533200887842948332235163561306420052126360468600739566785196715515599683486466088459907619060605563257606129749603460099771536739950794024123995069293097791707137063112638507907750239910877620616476978732786983810166334769536431952612217183204475224608370739035485410376423182371828229483405918156233334055794625594133696749236153963893610687461515112262315969280046255037464275188247985844468998281386184400489555682092934810814290739746439317896892190018393323018615769004398350169668705248441539868492768284437032397748811669762052893484545625347381076360995619883373283645785890143228044978452691236526490867701260165100045526251919303944591038087600645745158664259595593048289709632978337064121147750217410227115472309721735302123838474344017890872225382008647618153671157413411984192239308649856301536206819367241800575148550019893020774872408525440687327987164308256831091775821928135825182272763905153874737107917011770324195203342205691451061858093361976478407139646821931532524044710742601362568409394136224694993703185589028473666289721607360411870773376893045914233165744703975647011768936926680484745601017011026219997989864768651769451918340406414373117252059587672488584271708039928703005659482193612034963023074835004709608433305927384159968702645423012095170094372141328512454423337471755074558954538132070174002375692618175611228797129111137993004138365357730984606069586345265591525379669636875642748710834589465054607674236116645141653194689954196946492559406470619545218259440798737162620792460695599579848737644079223818344704084898851025109924139388353111672350551326722089578221363198445162762559811363820335788402462661843635419829255735840745320986636301054470003618350020518595452167462619435076535269939063935310776738224424493060628062875855057740541992602895467484601883080839189710350956407068083008312562612817706369193056629501370816955464619405886278345823450486551289365937210772069172492214149275569807479440330869893133006584928599158640486473755899990861565699800141393160793776568601863746576893946892190663770058101445174778001316767364101218526551378597032126084184906830245429373301954173927229794513334674469640862105978039871360902999452413038851579834742352662929533868710265627945001726228480215879038383230554404138359268677102775668292504501994030271440168242595943155196311253276049679831486222256630423332335516512188138129016447021581142664767309661742442585313029132647833004172033075313054706761212573977533553902068060103212688168382517879547640287047239737919461559228575184428554937511338248212716164385134220551632713206360259615077369184200839158505059603863715441925123973941190738444543317314977658899846816221315908491330453472811981712424517427272238509200571872984710110465478895347918677654630088059029575644199942609297597958998792887782919829314719481637007834820570359544013994396002009351694225191623033865164458221175013732800435860109122287431500481218442545555731592212810408719731498447836143516374075157605679744459886749985782896787734688809952789998829361569990748490135990003393441386650341478771249878042376417118547535135714354442041530902766398871338539711957633231707179915463156259807396057447036358780615984333732790977435464257034555564855658263332973618145371082215196875895522283746457874820638016092785956373892703485832333176122314019957403164329529366730980176363671642166318835603368287103857567454412059996065243388526824330036008981864118360773607740923744828205233964822163055014412184539933616408494439662027452447621639954714730397142571901214368280560998575112154613848305428436999036318533202912061010609865932729085365489750365280238083988412167921660971958726917069495231803454917663524547347583433631991120224203812507793232500319621929430700085712480613457090417298034897763850724192817685773444484283410738148292974513548418285502071534500493499538541363568100513064683956795844364515696107639939720998292260653707211681593496184029774103976391791889649003264327330847080165519160056758776507696024893406728520823978474447145982228770062662298417667455908275218019812818959950025685492146925844284763577945381896377300654135622061080207005727470395821758548555553159222095786906083242622712016281409521314398465570817880597977123773442707744604205434419630987216964263633382018492816234101209112202684723944170945787359344944780617445915196910422166450963336356935758886262261168223455632499781147483625537056430937269886746564256265050248687718857221680794223640688130543378801081377815807847574954450362287667181236078210391694065971600609014524345600704090987356202148181191618947977271473931830786170516975864535876042736796846654047019130267845017520967782472810475722054916192309883712672793178040195481427281271127272426380530614700650088555109767950636263626584601931399033538810190398178002737833567091846268303850473497800323844037591578411096979891775155505943461262246186085888259730645523230062807531181701925103388931037681514884617403086694250883846164359872342231683107001214434545901410121238351209699220596301541303712975506080792338400577090425840481555639559546395391258777706039838137505270079538225128289893653879662177861252224342930871469329257340847731437943853249066531201391330592316480131278671627005072244716492814219815093562660232902025418006712666612040973941135500963586528576621571508249004648740331700966130836007564462060084421129942904765441728212804744185180317554013249844660776938598447058120863150044145182225718439521092284098655070666627599424280081872877780225621789774844919038814576805341776083286188413295708541370836287903731479703781027418321621176696042320535582761782743793649990253633422136913199681967550181070114140170110306385262792137438919363454509056164909607730789019193237044929340904628140944834577811136083236588883331484755985078390890188131363519685022924195407922365003112862295888252882869207567443627994862486249277109434177302832039994729503595098486059941901019148477080477258769744285520322175583182194702785614039659310460250546370228460832593329295307960925491528515980393830778287752532732107456094998832354660102178386860993847653147166555936669134843272792093447317764253293080671730058193942272131057761881704738350403508973950071664376427627428132092708931366475528192285453241198929385624800022053646931895126432848703727186747909700316121310233376592003864283458422529248684836236535192114915252620869868731037364298534234046777758684358927225462447929025579823425414775291087356870484970202180188259196278501579668251260922318573054605157598580581893060022245536412454295633591730776568473076137429654260926531539836415523158818050031432068542994887725743350796113792483898016595955205639609346356782162903026360163187081262675531743362066064314801664530955689683275448958158954348337628495897263884062345247197550857131319133660726601889040416394362745262445693335672420237693947778203791718880199860079883431858110683586905702853430117475984674474110468267187122510415483359045153613098335099436587194923280164218910346934764142410096083483860149729201202467974935045293417713901972344597511352968845158517906526820854635890613714241813304827943317408425380724535897344402128429772471917648071576417290817859240936263901744561620598948558402419018708226776991764783548773828787262707623295618380031381842907626095152233700412507254458743562909791709401432210755440418319899714561591378892644787821134876706964978589915429688661723572737720982291390934377446619993922724710336353163509118509601510089990527759539418983884420013837608856713002810242757510026551094025582244409139535431194420035541473471113490190424310302315194414775643946849890551905672464516411624896897541282313978109609563203155818975573257445231587777928775102133552106968395605052181087909068378992158156257258418824262362899487258656647526325042979370761020978282371905170453660368245805496678346594849597059896600235178563076781298930565579337077890388110642236824522289417257405050611002828229455098056210633808830773652077671216140960917382988570735007713070105511099864697719473859740508252446483082661216799954953782286959735188825098848130260005564006952858914739112631738990031295724591899061055893668340827069788391306066173548801253003418987164171558222861155347121556275298248150587356400253801718705812338147073116433241126902633029495375951855721628081020899778798559319600554830866812366880692438553172291186845262062168117477244409175135669691935143881617403898150200247667159850396835572265538406626281505155867634723037539980458642130326826425784960712520124438473445936791013378958778925756584063428727870958463111084229385594193911229140077635608309449508790726700181688398046613315916339292145531292794329325127837178252011276926601747273935626236935802609168475375305466486607733654884259255049397661451171752651830634191168019531210994902435633466314290311983013577454829004880925703075387857258993227479034986228866181726942304841749398594658342129224126113886397423278368146225045325050008646481667035207442222324973058437980316447679858477570048365918654781144113497555170214774791064337912921410546839393655992988235332177270111736994711334128348415994340241088820712083556776016751715647219286394645420347518855138777946747855836349224979889458626236796057038679131822380807428778983846302892391399642122674195839946163672526114303501668506870218915315450550483033275325945759977149759081776036388032293384091834811922588698537356525333577107462956427030242621432827152534209962568311927277187062491116759838265530983936267016531635385436206279375436510444422051023982444995179207589616316234913933754439437776895782456798160855988837095745250063055442287609018949379360899313079846312717146593037316921406326732270175912466941897359029773594562452610644994415596578960481778911472638293096717223583593109749273980843639460251487527962046551352496033068681699165728204201352475380585672949559527462252109767913829730731832472289541721602567303764265122568206639702693346214807161209697867110253233253905480285904859121211423972031490361375312942257484076949052285347915701223240715632466549515866298766667410813995121280045764318786556116670680704568989028255946249280769101007987117614660081545462687407396509121475492674965912048357631432192651017010748497212631263479211066901040378019347461238855661061969810795080368780169052737117119625668965903889473525413946804892403441443601114744248218743155677699843857372269180925088514539801807684675754952704691580383357988000127812359942903049465418923089100150358130568203241242482646661622699819103064970237143362446253657267257971908475679753193975479595189189119626020436930057599736334575435798618558183448735885155397449868305365435109587070621174798747019922628758232752598234242750637414777503056251732229991342819139234957841036556662057202490096913753911601556079054807546918542297788183950657912959650562268492536844577426602859755593007442287538173972403290871522458368413966064830725288714696663338485367439516022083284077797501065307429677459032521640042206886527368092252033652847142008923783392597940622634331007051668705028138976368031750499725435254289521565287239881613232092240207393310953994156538560264376006174625810379654264069335560487294881287150145320376859837740872560204664963344558952912957488001403781479945968371959393643069378567279704848344460108286707521823618505499755290422842552808237912085400426940911361462750591950980100531674454365577025777647472968995844218674083625759058256014708862002368265316709571901884400296754079584030562744118333706035256226632470796442234317041615381186492478089404733065049460100824320016992165676282426239686015816072495811269009185083522904546560647728502681266270679819560175898395052584380415825339814399258725050343486573497476839166961727004086073584106428409729623545456515924846811977315505851933075646026484869858010769116993210108409153734589591920875774274547457137974025788114570923567061313349650268153908313346918258714136054040831655858047693468850407823607549848779742644256173121906618570741783331835612316952090662904292924394750962648875077199784890770277535415573657777338644070964239535909834312873621009027567327506629525175266265462948776931032373255217997811920005810946041542644096669212580366001959296022092679373280669584644026569611985940007017223124944854181176520977028681921280490483679836179885261435006399289436645803984007888902303456633825489313949297564793360109740857865909675380358470620538470960887878506781545695571950602057121593472261458306857176056941687165889135847039178114286400822350939852591783684845109859647333285971608526813612578448133770476098079136675757721801246899648624152462507071487897001482651720416040394210008752834532198348230129906791072918227123393254397685719858723461790742384836780551121162921458662992732870469944865556611489118798918998079571292765205458931080641473915397402193658237558448276376036343237859556023951877046209053643854894211637734024827683214191379445727989570217479885174874094008028376073936711952953804307494224244521593291167162107733589837668095368762083803186093371641959102046413794805377792059921670463186607608649388207554104797653205776511424439187568914666027488952054038110890478389944679915840109122725855139771361605859357559792954432925849236637151114860993949664371899613825821811663173056948536709764512318738949576267572284122312541819542469895851247588466912216524435762730308169652474667836478786474038624489079506611475304154447039800506886074526749061605121152040622456263108388137371789635457506932802956872367425899640482108652780656327187393811968290982210642688924980429097463800283093553858221864376091408791846577579227339667634343443509787120555033865075968533971751304123863948635087763566640206662898346590117455841696100187725724797222390809819834078173321496899572905207938152754010775524436863589338014796726654348148275213658706694728413529083764190340637292849505281808034249712810888581906909658915759333482360128380696207058124104551443101641317503952332316986182059561469012398940543953898519489682233601377461263956950120006649342524659370677075617846753598160765470393582090313629068613257242229860780166368498863338881273223951194198749342286383054226960602839919348990252250905843794821432768813963522903333456668983285404634207765989585549472791437821809310946821363169440291858535982984766392849766251295576576163340561855928715909633976975496841998842501835799749113055012973090495667462943739296448894660823597908142085701997557309060644715340492429026491396012534199379328188202124852044501612215854444895410207816761703908753193207963712225507458346379509866639811119784203880351633181679757325813891515045771952058606201560902804188500893618905550114078742014115086506040172483778325224800375724911096090337272204832312095702886276536976851329328396715371920272699857480348395824055877366117913768224083116231326575673079253924374298370334719074174290579684019622860198358542856578691924145731393440845450841871028349758430258569296406779928063955052857591343976573707759757012920126456134687343850931673560452576604261627803970209589929024827276036594782063478309902530109367113850829772887467035049120865752586389745384321998163195032181931406705728224784611913308290687307973447977899842997889726817295052594035086575832615850341732410975468885491256380943205154015800037309663895347188257925183350222306278933765884545622787488036910328997386326443429905362762903207413199692304244412678454368095177725566658022262967930132841524341919216211544044430942806017103763151448179784287285691826743602226110584463019635845765581274153347340565893804631057530395087086595726269846322494705610296313112245367717120846346379936506729940876841612980101720568586493435164731766750911927891596009383319053725608686833951119494607341473609071340209051079776496576492001751043502470948878781553007154388158147681855508875094819124616627092255323574052975927453727057142738907172782102327794329264047092931851452004718489308152219760987722809992109650895039140508970250032340366183266510891325056766397312497301912450963060160716139986708356368703004428054659425546650524488362605169650402000110903399553471129830537785185623488964344001015397622697331802462519457302471701637507507961515290742865005242397277560618497813610916553860472711379530308125509940127534678303459509558927705971465869140492732112657891739813043426277977997967010327078331736864748833084149217623259904911332211897035611988433534971322028121745985014777404217155177343059301484351887846391997055998336509323203053724508724485491307573736011563160838613395370174447551968975636019239285019690142300838646340559955353522057956148353755522429015918747406384059075323493852239099147858626995823662000402744790137932994679126214994416908089910737618886518498832109500871831905708984221498770691660488360977200735901626695702261181942805990608619897209732066966788961752994791707224628238169914015272061686744157276937868793519111021442164991950082721958038434348793375762913049805509593322932706041641598340916497233349796154754670114337925931567918156113669962466908736556693726227010211427572676548977822830137377413244157915800699073274467733549875134618297275884343800452921754199295679639060979572002461922378245645078022948150584995835153116478028176461915478968385477385485152109367118748472902841742841859348836231782727103798617884239977411652327487298318845714371656367037035551230160082254684680848802374265310670492252858403450940253905015368904948025681031052941397590140667642171734018518188770209472063429763439814165587860009865207115150238534862430846485319386835804664448923065427904667564887652422966543358922614180342906194459875016614098247839536847780718734090350991247572672709643864102725570463747557579847943020006029919597271030721610163313229090757280880664648275862825291155379160474569118613034185646711895949438150308614229804783478771981082646771003127559619136448914399653793939840637516518145551154925632231520030017218347578412423844704909975797150666811626730150140831362639631957531053302197790279496975828810046180827660292585010988704389331040294997002680492295543274483445278885700774412299282683667994909653119335141258129229461562718361540712053818799221121677066041828770244087960697405757353174982058680362310649996707042590203161943822686647866443784128054722344423968628543230335154476285285097601921075917047770246711308105388966641206344150484314844225010653212749637339085722749924955602795323072862483470424656416511191307502927472330980295617594288243078656955984943074213555698497034005026331071719640002182536783949993326744848385577463189919787332561902027382769634585066568954897953450298385444169791806596273787594305656305327601202926678273519178276037714190126595086932028394297324904892547465081710517474756971014838910869748370396970905946254246254345455190621367550762956721183198950350446061958855315296227583246949044962229613340689217990096245308522551702045463331011163900094967531269868379893027343878619809058754752941974019749300487383213927701985813077257895094328757070531570962727695725083238370597420145133221178734051446978022371101336741324918966704013666233103211308552921287355201545551470149557251661722524505177583210664949607946262152790332225488143527726577143324875306451745085158595451976632524577938746068296653938355144218793080060843097551252083430590413768008726002775389902256905511332517759310072524252096602692341557895984293306310141018761726736830174106225320034712471352501119345999060050132278511129183792583456128077987240510563760041809098346943111424956739883949657883969482336153479425993486592068964037906998525180487294191487953334860115710853054175397915719127729036594676889476213323039566683605354488343594890281139177904934467799788202468013312249038231525956462460659297666771262348181804868744109373228451113988998081179901975637183987916690031394701145853568280913783676492797763042559594751120926653343829227337826734407149676006097680847839032935479205227122366682284159602092767969671838945663355938010910595146292881012896605733302166813201203717586892988563374499441275402413382934595808555906973691472150470738039580187875909636166304828275774921717132737783271736611121438086268271524935578379063623504402914970655851322753542237877098198408787046172310151621903816109814440344427779758095330051906145446752274004046847984148901642952450520518307678489824514307905340862217395020722210304545109707999087601336601312692254475516148874108405496419277286338253109102030983241709181550291644191648548972058855611513963952924000946024176117217478619873889825054157921358836455415564321843726636993451044230747825978840135998756569391125598957319924531726736685510287116741089453470111269087810539359439487927713132178577743062748721534738185023729450179640725001863095012033024091633924299853789066739040004572536417145557318112538409007598887649125011656008065187717219445811448633994671741737878665446164789210416410861783362971503475786054938766774520448881641890423628017741977493049155982086648776578637005375068234793197484713838833185159452739837863214505852405341647751740956351310928657780260640592340260754430917142325096385175381648418101106806276069008277702876314170204249610810635226277742608006546771919639635717834170975131547878919612904861962727531023953097116892451701338100964797648452754536415867494721647453490602883794790149482614642645669127720459860144709068814256065376623586607860775051728624513312920155459250595902487399170774472331831037482040521263113889386649461291798355811938144258507190245365609591148918157160392894918179660911862781071946818678881285542957082328247621490300848201504861260046347403893335656991936315888192406494437273491743617134507701490419052563991585828681727617941107095293486677218179459230718492126037538654361648608625214401533991225851149754815585254815665747301151030291790372783619374824985368754360036700951214436419149876513035757481192908244239559521326442738114409145836376890356208312104994482548786192132984110970139001269016451364043049780658057637597800441775840896561564092357714681035476412160074080963401641583554002992116418508163317396985583391069055036694626670260708567867242507197903405435541208888906817928890970227896020370149371152252326858584950673262054190474703923609673080009721841470413711744332934452129957519451077634391550376314044189842172341729405152123991170390401264921733941574535851334657348674328695869352700543104353776098647695296812713923229121288355624676702532884784977615498738085384725418672612909936768074190577223584098126184343205633175114261474950523659165369567931853348706869770545385956769702343937975929334105809210141969780183524511555514233369486896168280246993329453981015577959471199616553687384739883924756131544648527984780260315881895630905446807061043320753554356142565015398084428117388946308806937744413279034505539743030821943886002849533637059649479267114123259001717904311124049623085682307936585385633737528111997288416819201316319843095969558365943122322566181752688470619718127282486780805142737421365038701231648781676647154143961929069362468214838268626601019127225304002021092162342572665277774866298504167312740674411502011590341079600796879397866949570880705308818549965457593404926421318796449650986228681376477116058933466942854887204405715993571748877472789535467796745620009163188162744494032777098522902179190856468245090195838328646450976755325811431790058948603664251276350029646534492049430208842079104785167701966358918370783318948442711753575347716043343594327237754548945083662143039352146257395745579215283461879017033270901228587570336194207684641683469345153457256009316340758418921182542231297711073707175065084874108899813830775760562474346420705808076566808122623081588638295990331756022285179948015667804592329472040159086251980185400872772322685671789045620806152804445845406739826700545608338880122946834755099668538282805305083296923177766077175243327187260818351242445593379020271149463274458239053910320899683095828891527869723583562616486400170355017277698274279353562593856971974047040737693327833716370899568874088015839006907139755363005737369323665058168706855985527941813025221558476341381395875480473667705172903485135605058506235689026073859009614308415954320561140153964764920437423910865719181771754488041421463464157286738568113709073090996057409842053536547238009047163014495760179992602259887609879237891300832283375221719915746046399340432405596784147668324368942413779988076687772882908308858565524496868873545603319659504074289551425254346782649898819683598420110586134158511194242910562130600661143989524194163463506667309839973712898779072973890254066003072193066335914605131208662295163558635077809872042872095552012648477959184106059764702742720044655064311717879898390384057495172012094741462393000407809041461363993576302049337362098567675297403765151320716633484153570092160753678791273596138371041437289117939573626817736074759631392766557468789205520510730824122296919705980760189650440696531076854198209975168487427438887290128322889467784722950442024670111956860187293982009149144226642359819621381822465256346600654834729603147942448436013457621990284540482204690239242838551815340507746839461760150603595673259225942113224691040749703453994608155737082706307487725532310986269984339448228536391634268056236563407461943276612396640630241407744697633066319518269273404525227068630914353181337079392207329678144132302241035231511792024597437401605132447413046269964569147449907393740644108901435832632561063755042136913693442402301308081877117319348752038680520443775932900830445457560310033845478512539966283183987128191121919634424355239814405629314978483692368268687392146432540263240256241159093756349667083517916411101691794390177019198362648047807886986083236800601714863132918131814456657234966260736114418563666517717425937006738031079009078823170694084919034445402420078101433701824126847867223214089766261576636713483229521154136361734732471634890122192481649380190657083822669125802358298788641581195739530797993581891129311112654558395657371709817227629704301814227155134311556235755772966184307575465985121537953067755729395296580886044953555840008855032312219313179741393569671865027396927891398733889214207123230188362012975054205790620667247259874642498984784040434440274469607601112397029501230897094837386980246209631236593758270652827544881830840127610382993251390674093096453750997874493947879509104675349079525643785490334610546906945406109294453458310806159413058596629168672034365321433161395976288647007151519617769690187654099299914257153661643650106286720513892935414768383501888918979873823898972665940926212644409295166450884494295009887335729431072310049346614873065958435776706957391651047760917023746700775704311554699341694111949416021843957065530497511772049153655325404711794284012956820367566403075700906222748695157622620255633190527108020446840677161987533309701894920085891687355983036833450764951190609188112913970823095811722867329410395215773205323576422707483389563755852128814053307036751064582003952037493026845907772848029970745888261874183351012769449040701137933426392837246756050694547457192789558190140763553783277872692158033771923262132356820605959501468886215582728064753441364641387240401328991809752891492150137696354171622193207080266424124779770865677768170778101469617378002055477116027940565915834815397062028219330523851989620171728548704724286718888074315355769170987849811478595558369589988613807639788486616302649563334850294488803076233129324671629458216948900092952107643707467127002800398978000169870171552320025335163113874848599943549510279365076384072290579808663830374219726476372878290351330547399488623679217893858266148816041978504933802974878861032408744447575659967300812762538635133973652365124549966130659034406333876512285838797010930150020513406141923609690798635407975286773219086950286076306705539685588252811059155179883993080779190175905676033911638870399093611273368133762973087038250054226720371168357730923826035586801945343220925622562428031227958409806700804876099020522515626444201906338720018209498484368849087206219930569433088039697069553890329693212494914587282960849762967847894813944041920260849965057014313841634421384223986558044088179502899038929518018062415277102622121219039148992047215540079634920375835402624938070975914208318632015158937729653376819157800115677334488196998149511210491873753498064646048730835144490024130816751765955595533283621884560990595049266143698974648345878772026806908345214567091691696078492153725338391555016495698226440950312346486193573637717702024132927748304726540009558574142299903543770600959917976610550614741994939153184587355759837568196509307900742195963117632481390044314070893445896730426907954512821306604124542259423876605513548150322957185437604264410923848357488537073541358301972842045362171198854624587066412332640319018927684526280853296297178957718322462378878954486399395613969891826792927296410204831085453224475717466337915742421670228642556095985818530401548044513704723171757760449683568025140674512270870706848120073645283591296119576993715597598877159954798841553390460183066403618591497821169749586441057194883228671244944336684605508172237229442943279850121721993846998837132297539908178979863876532318975983064788449269845147646274840315128548445034951027955420733015954226765918650401874827025212813022827112554866969791518767105061147287840288818854349735595608320423491198813899725676172526156096587014679696149660240233106916079158809010328926556062866622501497461084223991819002879007882397689110604421485442177658989654935115447253144997940896324961338276874764602105982964771595874313419855376795442133003044775222467330296476807600380326726252587724605667364392650719769732254166598649680463255801154376563999178873009621568410747629927342767666034417942998439572205250353795055791658175752621171884548853983734526813137549757877731232120387433832086494630091270717831981551373916074462719525629937462138956383337568183389176797535936074580860225600626921902661861508260368319681106285216668932030067211443878102695873689479115599295638287296521161385522028557496528138928820678490102118484376826851983785255890313820197332338820147483778381643775618679635039679105547110869344847629915976241049313098850894156402427148957420016595936927348790044917710844401679906824295515902831925368552189330229967217446516289608661740623826563516469578879744162244876032140708806628272275994495543813221481131097429009108235947199399543753729076232123764526631469932265202072098312116227936852670573936449161728751852489721170908196865733754745420953302263923672114206698530250523370857183311525976259379924839242241728837772237051350203748000614553251285442933624735440548052783787756505009243932945200819969565513607108815435323149680164909304393002932310802973468715733219465569382552885443367980658449437897761456075793636734129127736311739326903452579026111146997367862084197781454960493562728558842826390285309983807128770955006997591780783619025785205549678589405106161685204396847410594323530963128715545063587545904747003579606249184990458085881708274302059404758519550581505966026323564503397929557124919825816543438969943577573197289881176271794999134116183973014428847801730251488845880963505787695113438117858769659109767062784586322191075194813277359223519187086148805571272134158123130924957013696632376998137378254912683092922567200284477467596393504956167311864556848841936568278045507844860319286924976677714859420848471676568552726980588778471801884058178501326713356248362622225281291069183063276512280572267052413397494549202968391600217104504378786110381267591132041703527924336735658931615900192890344594633199515833218800986129368128439638247818887898871262571055660187196911017190034518654154130558553811054373208197255789411083209972894691328243151772525325440990722513720334398838818119971528866044855500917808140276315473420024694968968863200109507333545387784782990796277077342833341285331259536953097467806981595670641654060331272440671312733483067124619554726053044797893053721408696957011302898106599798310214168976009173946089277556563150962202817575860173059752921255454733442004788785805868811851185374236703425121428697250095630033714725367694949248299915086901515159290510574438603043808214444422655248736942534140705663725683802327944474111909639202637538506971286070026458962177136654445063565304076764763743370967104839148972228607934455584135984734455416814097789585946823797285411508134756747660863862742175786346645672353280524516405370131247528395687947332777438262376070774820704946974011728543609686135129906103303999116466080187828627138390300243849676338248305142291551116745575280637664105549475169296046351142626569888230541030790593605269890112348097294981086701791151581284492778162783986385391017329226855529045343164775881490405765595011495517442227683500662471736149734147736063668166463817107332044179330775483044693818444608258694174003037147022437477990678732334923405841625724160577756503533318063228844734227252735830959091574283831318546466644428099729669243619821295410861135179504460149856437037233138316480479515724159626215107153366395227300386922733914851195654229936310023920614047721690156525300804646045191001873065977398074297158214777063770864480683743458633977093595067864942741447306201123081169119442618884152630621223420610215768523470862457942731248378520379723709679159819521169099477851271321678797777387499745516554756837608235763262201411804245164245280166204444844202300963713354358021827755087612908655594449171677613345168907136263560257229339998407456079263334047587956056317731828491742529971113420577368840930474526935378905798503985700696481103059345406878063702221053603451170051188430624692125835328543684453834742178962408603655966349908688850004682925462450009239210118410179870763595588951712537835726361635932180396147195046059977883539827443857855604162221752931889981107898839326309119010492781174971297040445699552230230921914535331140684440726054126332433766400328215719407022928078602968450835992468744782490989468860096132119383706984782792273196021448150264327004286555558480948761166982143135020309421747659275184427283355157905603582056069423362479423042639056998008194939399410431087101996379920750569383458420026518964039087535867519421244710173533603154507501009792162645328035261863704201141291693614789803756603251892853244002310013562839916050842016223764415098294825142737459975973701835085654007359340515758249586874968044992672396337732469180957929317819843518688761958462636800449831581633477737435797098046259499860764576434947782099611835761510321212031011660154925949065818069341579943370888631423757551414454551714875096006354805789352885734993162685386387353773719023057575078494856783521953106384845356672572429393913675624366120938107524273009509851117302654237923034269831853872370295799817948549896541718546998338938234569321732566409664476865815733989726000509632575622546124896020202341647917137640393320190476205984029361661462971927144044965879374439098229549737723893095049844047993778237548989803399635092237328411883054857383331564106123617740883581679128943200234216780807858355528556820461361553057407628659968949116053693804728252189029145813617522711682106155602065225742211038271769328806480395390162788781798644097729090992170953035395414510085629871131560615382473671941539115725448654012183866470221448214452729836132496489624031208592230399491167151757061156232371141762150211257681634456544957894515016265937857338957671928600431304071658546196874546002386646041349907774915335174388637922603677571896394570212364121500799849680806160352593461100765605302227698626035610725305640586246609114281483201002415344103528183115630632712174261574266203180541848768239147955618870405428299006257503538185244338495492337455764644417466780840445664083395758190166618036330070413563280068424855355818696487802573524890809731870060948491365661920487653801812346067023544857411414473048630920134393922906907689789456325966605829602894142483073555883738483976810603222386911868441356085687079436752127814366649936857699853038313597323566659673150769057685434721021015260434826732370838501883893072065761470051884930176622320258942523482767352918460323740867204112687081317879398584117854506286275517295541160522060075677436918143730025129094010919706696057715630881379997954772814919366670350995788109415355513321529611075607834139103465790975359670942327289844858939453644384650176295533934948137445141185226877502576021952525673009027658099712978522837991124076326590259867806398736920293761634434916963412806743052306863016156325209622597692707555030390387470859774440189671687121396244368532116346030115679645769585646940012099926044580326410097742187332338843053592072478304594119980112042053152943486943519323211248130063763226239919244473582881438106999869903820535743802756667560176280349072578689746113861386800436377863688407237593859423184591199127580156645505417230121503231186980056368181474728739287070881191370049717840717732601193346259531949177664883329029308649339473599743040208031898622918998704990990174705635590365922876141973306657821243772226276963608301260204005924192506611826376750926951246580227365797922086609481371455447064804756533896721669813268221807688100689216201740525772657002040216422682279622004183180209429364038202538383940554452935026581613853060892755224894824207888355872057054884784580968633126334588777723566455531208699816327646603420694930527238727390418720953645492644431252898113208599872208523321486280315452047140408257243028774277313366324077592760477254206528898672899360025172319269690028170710024728430010784803875814368436690950583399098206543490607441801079733594312966758400262015858391330580982809154176418933261791031483525058057198776274931423527812653741197518470879808412523784605642317224837362119098858407190201719845865945463745130402955646218201989229756011342830382613461282085999788865641534939879295262541821272830584992315513321934929227177811709531538605895339105791315831554185572862567018724132259392002936124506554515190849733206319887932493810546762127058083223516567300436351002118264419156390343934107731199760786772244386863679523211852336153511614082676629179940884927674025629524628703593577592814892155806839652063558627844354496605581580850051955067896997476064199326078032526895451807630384770822155267793697497288902306522576443922187148687666388706229060262231310982483147690299063759228782823575455183028053370765436131270266431880272813824714735684219784661619639564472481079465838954682499724341379218196008007922099192744543609757423109895548281580709416468183023723283614725406282947334379231481157867716269937464425205001366926633047979255315321468775865884603966946868130336893367060802374140331417265112575330821508259321084757305281570801121172096262338921500857848730883119650934496078775830994542566261065339077931267523695334567234881635093642320280858041918518224427846989785464742890817823626822887543983536981093911324668142555170602814041560504038993198056589691835904053032616036605481370200839825462732245681500506584412754660981654725439247370174759318352968343466619614113849970735809749411821014914203325366281342476268909968659960003486685631389848486083599396981523787513471985866332637261972035319475695313330159211906791512951287322202426813553321418600278084243441808966825996245356102171148287744967858569741604057738295015503073245445694803803916746610079622432874319196086894187459703732589719546947423497025568369237291830024312649596857107423333296796889748000388772435329098798650660338506774931587972358244441674231221742417428890859735220264906597727208854894238381442638053624880512040201758087832657891840074947324818027329800560376948581025231592090774032102751502338957353549883112492711036332041947340386583920134087846785244604116441864957781590687777472602990352762762606352838220962815539213038742603062294635858908226441269081660013648473173112528537252944624516088110952263788885276931155439371125391716334294904073161173122652125527710140039159171627214159199282832096487505655711092052162760198066796461286667391052158138364425764107639472212600871689792124396280032514883648657728305284796247757885036448593347261106547935868768770627300935026459536251071356769478238160107918949558448212577942048451737137321663340205938021867870257839635509730775222223758037420230789529870965088202590505763058750752681837615299827654212169886376933100034613729206547386098625493061546849824812294882779226956378632558597036499732221338705006747963752199114571667908550100078574306192841464609401894232617634984355989957116319162580947581467007884970446572040016920809956758401863513214351609413322261470862388789166982412517311538754494808106022602038906960857858836783327471520989238465186854484975697138878665551965977397174013317677481882833126732711455860627028109295752387544539519635158008634318129133125332222866374512787084636138514382920841143435099438529345551113018676029960307679598700404872595608926914425248215258480373383380874917690570313967356801501679969840771872557742622511798838951994737479385145009802892012641916226426391633208814255113706892641160950063880432815229889929889179832503306484263867747307793640263842953033817651063787782982689320291840872906487774019621211697463893297265445639261586984309266850516098957273914156107058334544175988215212360474698878485020403532372418857476244978392349623634224368971570205195848811037300835059276793389092167584165474119210106567121856637940614302376439066259174818021488051249125898158495748155258612358763368103485075677737872810502610172128728307113184481463689790222326190384026196470854721086494896648288597953139790471305585268232591088813924882467574470712543811062417840602788038788064677285540211579530192111579787991079510827137518459298782895926601465575744586835079698359815309450493002420406116590684584684003417571566279811927050720939700154155606774502944552575058436850931212257949183612543326606962136214009501108544388427689129817480368305076856886779377550089014656391558959371071784094240600061775175332058658660723686491041231633151871855087783083974806646315526192798304336917950611498968211729081326211345372992746126774396882532299030149580530829165709112893837097350786399532180226142543127298036105802561210553357698884724852454834749356333916368780597145315097046850085078768327534926834875728161747370678041326842719339618725852587387005517973360845182685630812862089525462854961115593004702761778157048330043772812531116822730489339502700011473247059696481649911864505626474290220271742864002798088040107329532708459851677756029281980332983312556501414328433070076354367074958549601037151648294897330895907198068103843278601467224897884821079676556660017431461023158808781411647942961791464250745682613133505162006334144116623049762899785315022301074707806259451209811953291829911533598690068777896134201885099004399151659288887964353919154146220856399475398729324939634300587237729582851321190228316312074558086033717857690570908609561723604656129747503195824165136951429523756103947559928334682175396461419077971318443968682292077989958892699477080265699446436697128337688775017162303287775235032864167358723451613905731004206369891833512195256931144371203378531411235892928321125494117255947766790568413971864532271968036507924991280121054073931885376653433484882711666096200172433970555719684574545923732545672167171329364087822123410642457441480254810666065664300454721355334113683936387505308539708416871818925079147673138770687834387522787664472886401118300960996190372416597740594612068910617831467516699356927204954990748033672206257387607097646359598729478627616359756158326554985193068153878087218790632607466705865829394781366164560039128406099840135065598743581789840484506622161559483287195966790670505061769402222454726415562722250403300604656081079254518955176572852738536560346871865745802126333358783523777123004807087591821381197029519475183554176917552682983128238531235278565034849575411429332033554610781980633770344727797311795236866972118731817800235051612908716695760406298257858984706458203301838037290691519370580417244263710232155809115426480566109448194635230969859996150527228287802743630765766788555078265421169341876712472949939014767228130022159599349273342150510438931597482750099263403811904272874956462204674642273945038163971138414007763089801885982070685357994529851593778821929717835751621880782302770192395280522068383992521457688492043417605699978258139827408299111221642170115829681337222442634287224955124979988158432956745379786636962863903652818629029059890965080371780730211479278114626675439420243711893912383076652911302952685146531335381801281751942065011159633891209004633952372276058883016222680986292815366823440015663505404393574368530106526969365337705795504422151164465765276298774060090760422846288295181309271510110620380195242206442609096499275733985406720832046525746934113753789620052670782426235861203185178361529665072085587008052096668250175163216624263948437539193087908332909593017837883287509036011616518275131849780375374529987092767460394427934890245467646433524375780651394151089849280633170152433162938295537582781929354503535882038393708703204609412496761649822744370949372287697374630868318404506162387858011999728075286797156236096484174542246237155772003513355871322126312935530728260735989048612775612501887469609121895318249169204172673428622271529886162016738509623645009359785501422189886211608867072438136135441432709173636211043819546060841514560982559410475875896064492672053350946459024016517776661583341166107388243163395489802214510237680495571866318197607463270892134669677856871178346705928882687659159790323591845270259542143439396311600659376214493204574439180308698954745457766144880850353072014899829656708289139239786937532922347279569342275759720857756082553365143106644049115874726819823916463946304941955425989146573416397874618800918496676451004729874278149017536586492981173119432399982120537138326644470646469571385017474385959304565745926316359647583200022277589327825831850705491628237439441373535909217437965831542334324795545517281577300333168699512485656534141437596366207280351083331665165347890664818908317372900085447634678827475412999135244423797097149520845117635209514965400645772703197716971757715019666305579839983053010519287064962908131747353115691446046629739152393444851759430414534758688982361734522310065276659439234034119913734351294383545758287102308268235333714329151841127084806807407968421622247457262373408352850572455179381876487675757855795924882571264345519378939181861248743623953806645362400043895148999910291517658745719481198965264876722194675559601779404588118956857909881737185300824286739435630424638067635479541588306746815155777077671549516682441976469677021185555441965283967912502314461499072335771820697293264000029416707156173254295076911754704494812181317180929243242720417251932568875198900891087953875004663983258567765502563134950746114363784206525463366140559124499720965271503590812768969284357153064498876994802683951863737672234139899470107421683950426813166692475289782595218071906699943871149053785781160475603620698440113811479421237758238396410858689184854633950411111098832167436861307502318900720739713904891200183198144272911995281169908459777063464841224055913337777691478102256867702017342340900599432244346583249986988422564326707469980178171876120141032606110056722360149963459753555313511036126532554931349843375900813346458457925409664993387858804499669039278210347665611627667586119525038578463312244975431249260284183723060128914587147782280580553975566521731858683056936264591028682584232739706602470975709826127136269883531512353076562004284528536466802146121657176604968838811542188225853712377999828892255004628523739743176225079388260711982027673489061391252888072283831442812772512371422599562804565127857022283077898894296399651404024947279456887016462053637669430973874304967170675253396301949254289146366715840632603145601783949708599316021946129970133404519659943543768694156189830561034261803564188852832971902908159966994778059647343521611227864171836344904932594982236262497044733612814841638628095922817969805949233072238329184889107798063177028339876064717543277469216512114266456050840424299856924805855199718419445623955570720522759172639032350673802964512031350358939306825114983232729976967356785840261828969458086631600793541773601704296721624132199895130028733924676219449063855469734051623513618226193002681185652786577792399155834737302105325966011079770093646823917273275175479040231331820971807889784562769866238116205446562700308852960512839535681741665766569862040171955559587038999814260614076504080809841193643500878270318285296569906967478995521162138196401500487623025325987900475755332306522995647717701234663113345977414821246129012299021500272845041418040303168063899809196336556078467258009743301736731313851713694750174304838625768525689524053921944574290665069513798347797706404751890274429907548171976855804936717280083404532320547652707172192844414381381191388447084042428790326565667101160739789782388391129664446948560420911425166648353809263808817624918890881431966269995542199381669007310592935835340661352334550942059425377294459233777737488394180367108049302218012611900833157496061017458596909336441193224425592200406404417953935450884699161807881532188174566631440380120176471328334205571563631348053036916611457432677863971273251762946521484239907753166978636926996100637867110663046110208009244521946015567509344300911498583210839397389427493220162438639014850789490174522795078627214388116366923204247263111104893335071620135576652267517427859397720298036868028440475502538838503245659025629471956172585535396291705225309077962747325186677833516045349833206393518992760473573424297836740655300931581513409440604155867561213755151332688364962575522545955748002444219099649090427287249036410092371838532220260094591552008572796648814315561186306819646179236131620709182388223866833926200000892669365415815308821271191269067763679209291784802237664045740014576658845435255096692221354454170364495498841591752090709433353962748443308063952311350658640721640064668920728437392751832704849175661253718273309772161988328320336856404632142642526741127862325098855640408084605617544864855041469646744518676493056460407471944798239557234613470261444376814252788795918557366943987058982241704746986145916876496030613735240238864470953973623790973200622156605200986154804777115036301763492760434060408935363635927271879907557516593812648338265487467496918256622175259274860944268689371496871165088650503938066188755724455546028860334393125532562927905302088657715832582515892787655141877175977923855839452734894109253816394701787221131569847988766656930533766336518227209014364327706948931165532431512224283058792301922815101888390320914554013011572712892739402456014581630909399716130367020261922575495406811308555010179363515566635335062301861173344072090325002537964120311710441507103120534503849281760331388295261219474815977770669254504212985419218126118376906602419054300910585452628191702651070222390239764221370366098621728254385717396847167385567288392772941746075945436570848565902427797675997137348032824724744382393052939441580208615820985363155763606697522595880300777174408484025083629600497927300361374273324346848072742771852160919464235263834822783284850230767197526612529905610255015993997793441068612114220024542455856772942731530820341461233412309269836520621611832534814537807607032065355936523379375307086008618840951439225878784863052917590252251665793874031904757991511729541034909403707339210618047944452798016066423015775568433929519386453139282274727855574318580442088465694967505311561393726956668855837410196982323110687727322910571466819103532893673417011438880217455394062216458121785160309796994949104832438834481726452305634757328988184594084224017897923738186222924292937330581885161091449085681693207325376392240472699170824755036630121887427189582572931588022057205385622992481907847412190458794588493796797251918485957312221758985667684507281380153025889273598986716310100628522128029353513006151980582495334437138930975559610029936406265120779645590200939898453669786582435564393469088701907205626152811057351248477422325166084175249926207026587124031304147520416785039710379793430056350873551688753197953023996224948929996857115105511112378020059863361142922219443463344062603010160977049983570300745954179664754589699913779614255570083193720552148323607405497830195464642507552781263433674462733544451324100859170757987933547297803194255881622530478147115850733049173755262838124168876185489360459487402434816748042402943399412107935099572017518800843373438564487928194828586169933911170164951108522434375009973424892417686455089233546166426362512833114357872033388539327041493239745406442593852477803437074738591912084399123343582289167390816775793298717941611098927415737942710416637691027808811252244365241896217420844022149863257940437230110104884065454302905433706274930676988985329672371830496278140673945642874027542574189307178689666881937153556319064883064915180958407475820655182191923515067350049074922058484041227163138418051247520607176725909243495018086762181527826252666231788640321030242012991982040449595782466568438257365357731511115990731314518798769659707353271434143309902773597090484533911835885120454298696033012442280443298686989706074097006292622633672713231364835461259068057681906273639672928470328924471867263991401917723148604629989566270145370947773029145549972321868744390198164891452283781342655114479192592885467550769298583002465304509238882721426268984378973566797293665806208496348127453887624339239296121865294556338786682982740083126854950787883933472726805355364316492785786899535654270519712876658177329359065049758998169716023932741548977159110568495711861699443106144692234894390161533578337824605393941855332906275529243778658660135957913748239597767020052092156880340004822290598287754950351260539487231387055987077049569975708592201386229849026454949857188631263857506473936424665202187849909121566394975655334725757968013633618916603055479322807438024499105182406052721654581964116616808117737890586868878840011399928334950332515603844973792488573528525944696725347426964933518315257284510180870367213282979122040576860976931570213424622315326491407603981141524268070041135796995348048359935199035187769380002871787649239386612050666535553233519809847737106506703604291366226375171106513978374625690521523315868146292315517202413559823351353836055685317726615732263387714545828961947112496438806079358597757532410353751172464774874920265464902845383992875294007401231593163330420884008645805479349261440657343398344761402253832944990834163094151639709958029051471862976165057337689848323122186661190259329541316200841424784574120296672564140056710476964656599018530244559632516740036952793230671514327211452731677676214283282404180661806649487901403555791933509224035427812721035462705696580766542830409798827475351092960745925972498442741952845217143289795145786941928506547198730562707209405995300402026597967773389066107426065524954055676587381244099051593352907168169811041203900164220845500096981529371729262603658303025384154512618941954742953104669411806644985683973952192783044561073870500451184352462281895395241018709123773847165964384567072938792111442372686180852967054215286222151888382916254099974839690864471204673628246249195287860932165389327050384427846759069149204003980668152331782415238503510652749885165753255554391573975698494116180832596937412036270515067390205981029601904140230737513325556727031709618790805563569254885254088209021260998043326111138847885338393407667220688480069622595357827251693772880580212192036024359449096493054894601949795814569499663082894488444697694573238987296836705454365780922455589447472408036083687443209526076937669007654035784487204320461560673850419306853687294018212079777097751663315134370551383101056689816167773498532523147476511370945570366824963078558576929559161446250195948322490535230778300063760049615079077723291657323484204448308289411363988161895303602555312991303449428421217171482060541961670202188241530577635592676794975313616122403122524419029537603627181389804948601776295330301070014422105472946063865836489236194806138786172753469669658779160018859068403062043189621908115822653379956031970036400844481073150937456229793045785463195233046478794793449728358994937638302503165877080355387324790553331144951815143589415111679745272835934806508412127471277399946162698834604518266547759198999056003841601983220788175282844727135254890568320855185023110636496383764855305393667501646459785030910108395872997884984224267821603437081696334505054622718900159058384518095926019490513191688497047991327356950697914278079019013465349846409345230721086937789775577019510743374531064143120311028012075977638010979838357915506130846357971468354084543336750910213167895239106242915745174876480247843636121047470677677582532413041430577703638012318335864603824650435752299557487596267143726692678149213793809779142473542257397419709211054660191194542337324976137430106699190163266980387168801288546953915506419224772157762801186786255036849938091297693804796919212685305947965194881656465201715798205604371319665797950370692756520941911877246675057491803931496421691309920133227019722213942540958430798015337174807320446527541931030903068960742506642473098883674516291358198915048668793473830174864665837077769834414161518508146800760704835908494513277015634808409247696391179963755313209738163667908429130843326788618244259517139218075063204155297229219126663200560237168327853763197847242802885699001508246531593324200697975364327811976769123917045384418811895027362925677108409475160456556724747938823528697491946470768102159126750579181828510108493232168502735077950115830097238247788118864050136690371360859770585963665467690812914531668192228515739906306382401840325426140633981627980611403017510525227388372072251000290101854282779938373466687495133326190349059060649408665310835511785364683385167715937907693150502257827688806029671067648033191859753527745328083972165706216391068005991617768756439719512886666707167452586698427643738391056583392960131006572534290708587447845685102050811127981673405312205023492678194373816328711953617515629384397792550530229966705113208996141265822584419803686274448313059907536559481634951080625436395456004199354142612535117357789123471144680018925322433734216728730691066534993547717512461617833919345532191537495525859442058537604170764014642762243884077302597130225514289323024936374557456070671133110097316491585179373892861173519893350833514868765264234255345139131446448165676683640627979393160010234550233360460748093611032681945921324494914213036262638610395754856555953125295026095794263565423119211228258110091969973203462678346616954192719259124966387298379632747711594721468513892289580118550442618229877621681489701779811546473732117859150295971939544113483595653183315801855734141159677983180801953165046003473212031816123501949413509125534138566187393865718996779949574970281768253531988144397588500668409684733998276621228676971313628189998649027039623062112944139726040943210957959997634324786647126035432680541704039370145192675726034823531868909368500171355251398097345799673269347167604837485913973245008167770056041054671398595852704611572648623568226555156412768381695107748096337182004721704978863071080106804116658501481016284751516979823366778369470012024508991983030798591598568131319489746916387693360056749790893902071871830314593889642081339036396002692951697077468323474510160801903531146135389787649712604849933114955249656821414090579208871217855831786998389856678220553163670773612697813992465092230022287563202457601296150876986844861729709089331868080585685244124881968500669198077391030535248569647860502485095689426268594786692682618734964375374148515258917412127443929300221987498412914135777158206310338470893431336407061266888145148760464245077483624441165498687495806248514513424225831327560665594427688818425832950616257454874610500469628646112111646872458101839044909380156107870888810037713097490464754236653439302029376684105882715454592283383868955416671150259277002700983323602458847056154125990133697965505479284019881340430177650516379618346664848719631869020956574424795750654321460096107744689294008717712898842999466764293267839141607491424183033980340658833625496915490254789923493383008999570036223398989937146813965188292327720845786921379292151261705092430915693040558426864725488988892074612487826420515255136403799748037227243784252118634615321127391667330530150965508611220549674019046868215716707748442776570401607329009944478503273230909816405091621121346264159563860574461337104996208229452402090781386486520623835406864270633105858358333710733495623413109448641472022481416787568159874756211269304296150896785501215971702844741380680220478926522430415488745889020202757762979275741670462559307753946483708256758920587631997959283709549291479046015794205910886909154609707255612191153430273895935567020851592071000490641120556267231848127584469278562884370381438143767106548756428579025506708966979756721954910811292050549952121999149404653537195118465559176247398937055518529355110988695659271393420497715671072336525767069333624039790840215117960144345342479392850107974795844549384594427690916222355046231184610391800607735764515735138215249272445549442856504958585634725385522582973246477167208788276809213542864147071941657810228811908093879736465604855694161919507994275775459922655016386866377473655688108078834087020658487245098349463558795752262305417319717746025425521065708502872428177659522855250457689648064336257533567828556072733658375440737135676309219573830649052992599066083599466119820375486553743206653614502099784013053171096370404190768099484093328571241508618036655594772036531184571850948440036192706367670269678484305448215934725095619401400769560903351769164933572242777134574040439060041478211249362682644956770916187194621386948634792263126358473660891388426501325407941408255717857657241165809585191355747864461286090944055429307142501101317733967580955389870740325508781648130687264919255229461927145760239527952641216979420901225609749020386149072997109622397302800424635689881190675228157301751642356641575700359530026090387776502031445572900305594176787370301548651711001547813209846751453714060304694236875530872825989815155554134084249438852716277154042712397188693911213147471395069023576652622119515972264308959316293929512074818336016505360168364124238718305798083835671181600750235537365758711572245851864227028497922247595242140618483857097558471014428607687799420114693127340023877408966749829681593995992346567828052638303190332208146073298647242800325690039314493236738514443090483728484115169236442888166080482442051677332965053998848261480130589978787197462230287979546958163002352758446117324528449853032339514153512316051319812575103847470494906042682597384630328246027633959087483803378040389236895893523170379747205234369838232003262363068586275104406588675928984539978649550692980199574454826193616723580289650211719856803855003042316807040377611264037152674059647180709490909554323793547462001766751163486917977782823443475868079432526440416566785540259075179686780497246463016699264264995529036739710904928737323825324658144480189525982813090998269269990246866157369619451547077948122076517864980818679722569028259984534796619891961349610181049192188805086389178812222391450145748315980165631360741901279774661350054553738712772926141110647617248302171708780331232674099260837136231430602607122011716310098015450662693222777651512583921290386873053474135973866286151829172760516262493152506934317390472139523910341308235437184639889345630296465958215434577617631731119270573713700952146152256621621870092658337798775373692668447053151667366264923908826395285951012042887287842049526848413220361242855067069601726943775711139052636977523442716898252403864657843571066369613901867603609682551623564967489600032466106910791860311648301927101536691942517203974228424694287686077271429044002617006246561522124192552627397565614239231652615232844254792546967629182010442620534476915304210457836225190333927247815178209680443332635339431028068835590301961707978004644855299390710821155312695964109130516887410583319668394189442739356886714152989722206907718023083318095698306740838901751188316053833665436495214822112942208276039538977373739972197479834753183268556697142563623489020537759306528821984002855929190506850293103961366898749727870041634713672645100504348603625080354168361199275925391581961951812119918740603931693019731633369847576380940156294211735775923881745095655433355264284213386829087231207699339379793935206588368047328898609272889154372107772488629381905663468655227971716789783429662224015104623647735101996939332057531438634671201419747425816333583771352244613788535100214349542122978138024950761034380008121262089653793517455323607782184598002158171353391265079171780186484593061341539729362480385024080169177794350554971704560978440010890483100255850165266074449209617483165773906557743850048189270931688864124931049688739056842066401730712001660174195883984544460933506861785368242522525331086361181200505138406751995540951019663971018983958614240669496096006148653414914392074763036500420975758915313793183916514128577200868623806632743971882801287683480028433442726919561802907376060067275166041095239197693708117543112598871142358919875440646927299157043708145281035094674624983296229628512164281179008730363384305362094731473361493530544531448918748009886798817668005669325869571683686227938953062437010677776060776934098792751755661684449731260370782051533025112430093017319026014779318873506993941600269205761555489310559392925200271270134272937578411379556253206240069070986152583895796309996394072827255325007761495924753775078637591230150779114289677732559506749562428641535680539537304685268611377657769125971797922700925796962781847661398610148320720057031923283871956389512221365362687877406405564732867000208518902722139549988702938817425647350905170451331725219909183439422443061734189308183368283702756889303916490210172131540179693232273653807016294813908860488409246162273454173462599502961871413471400408724703084167023571595511168988961495844716236897940318466268328779339478083309967454947194342016370470961071657117761474741252362798095741191376984007647487495867828623600932282077387316412986767144946427451306102281091921840825353106838600120457607232412957844766786977392222762816338412104544069401235276471804959067003071603651675018323334975069503116083105347689051082393225855630121590004473193054220076245315306807913022648056804774158731519927833287492192857132384668363517694748364619292460688155462798470165692173697354947172872970472760838197249394649170481521316778443520306074041093347803127558079326047047638790890521120466404630236637968669838393396823133481400337419170972437034632070410750985724203663280970124673920525774421799105216699028545288458602548064427323756095952057802100127866611753247559797456782455947399799380646027702044039307328425560082026912719428841178025354963844278866659940615353319171372184334806111285265660766473521143246145453043496553225867346541401169537095299824164920785247013537749016849805352956487193064019042622679642275151796475331757209561240910800247704533108384732025772394579229363562881698412344633625293807916841040523489233951888500695175116632646743381961326640226286185133189992174750688395815480040581964052393559813620118324906282209124002590816141397015206383605022837723881358466999225232162555742576272378447597141270300729431558180919742442845026053521450373527072067209251623017254153040617098377137186574067778159072176136418205987135718396397403197450576029193128116335596313965888455828179855819854447037731343176381204404976577577097427931021770156468665785204579778027252055283182264415284287639161197828779097263809798814049128588281001664913250316821582554440129651003720533077588037624163045921384164467593400138667022872916454287535784654472401184197029546527677545862301913966705859839373611204681787970796925653957735554164960399563784919313704787422909069890850805781477519095795526047657631697832638666623656214424795578971607164170572468636879707920192678619714122882150454816146033590382048600785570824731894085838433067801525250818071634249819542404404200819816236800516847499669570245855488209693765671947514251539557642963794520542434075250397236514985165259929994931910353258811866217108770761387851786483259997297932351936206479868818456093185919231470307948879884426701612627642323206077895612753544255000222571376922261794602082949837431472593006546027351219256831646404853710810980973753814501724752486719282559053629621548588145097517959732434311530588592919650427895814253430888304532494125400019855762258172520019493806017738770427980771191832616872274295130583338326533894551778395395205764289445838607234730810794872162985734980440122949211095158013676085574365604355988644931783961036878047177667712047449688075605790644820360824832411315205976084875197107040235655667431365398242330330486999569221190738662009353049296203410755014308790303776604504144082040069472636972409644744231567551320474592096913115489404857248022611945946702334048418154701769301214361820994333016472751313775056772005022061145832096632705775248973240307312029464903584024936658554016671190276190103637810933829723084648675805534215763192645710837171688304778344651537374680823977595674198933645994016585511297804060773872007833353002309812600458966922920166640987190300545911206381760651900235260310057925615285933914471302255190443930368233292340117518043230979144332369289838719771674571616784029993820609073610797059660339397817209425939572599905165185704159500306783943407920317934948300275385157118952061906778909335010681971481272054417248844649285688229059488968756244549974614984416679582490980382379622612556320683627169549465134654591539613500484463296141802959461359874988513389947329983399971310554425100482287792686223148108706911105155412270297982067680907940814851430649256606670615994366606471760061942941512744650206505027811828268792006633935470286231239337451123958148290759822995700054794203127457309512899024300013879900103776674506666224946770572176968450062341858402895070764949546926623937150516413475876125726847250675757710876074716611431134309444202975893656082866126801042929519817816487098887208874481040814351748376032698616982704517673540931575164549304457306366546712169520022266870222825512109524380229653747681903999287283052448515210523662448286501056504881012712996346546873598549187000931058788408306541009173861546836139060803403684806131337002591358357382396757025291006304668552097543219659683550319299275924369398718466027784227056545692495510121284733474158709766298910706791694412040887085317522147080773641034648524213539155103511707081078788557763136691598082640022673054009177482351800273346862874567022784334953268402221045313333304891761833295622245457082126338931326214184089387499026288632721697881609964704519264711206251928331168027803556570384022984867215400615745931355221119955744900401292641138466852241771436865349286678707389891702361828506356619386086116712319726264411766032093680157413461273455431038491699979129270609683643675345616574080120283438942361394496293412567825916711079630194034627211587058107343821979851980959097905135132814418102410463867088961662710039155162019008914078863920860717314276000491612200091592397791513121111243494355366425712595868827381401469474515515411169219246181256416974995283260828979357428900300266181323059860129829995544546251037163497672937853445171036783469191559926667888441203337036827670257790696863862806168161475002374466149526797331657559579050384977927018721876283877650808832071223492169257794717175221890052597791379158575850827212359948721733254782652702577994835056167385848821263636992289576837904352873968944873017753694834685929084099258568875699896164854575170043762503383953351840302437672877904147533403660542286936313556436909382006489360707839316391446384909147795370934109484782717306400029853589687237457883484244605136371145328462238011189728328543367244630539851775266834943938256264759578805915691311391178721703676323129693982233765765753907245850274501905196831203761668361016702230681131413669495859782145770700135045998189307869741749261533242924196318144797817690225846767629414755954365231529396742549510768457683686629007420192505584323016386945899065641945277381856718998499459487359349631044938563900717730881721470571127174607078447466517196152670500754927983918057362729089184418865854025419675326459686772225607379854281466046909232475176183596669638706151473761953852928615496907214721256229446283684931692222558282494470148746210961258401013591855420698984550690227499509706110036731015117420618983101072416317098721067230868302655777454896411755555833174192647557034629750345725136670928313744509091864054487205534609930348495957652131163708303713748716709112675493076196937760595126295531169483963421008755946509376174439440529576806341489637449827327811329700338748885997917212689430363902303297430098824481415209126946387553018279404316926947059280221185047205724535758597133215017244284561226882968974476554415217418133439374182094248253870060730402195868479596984021829320202513100196342948911641541665767193948028247611210640761951840867472923071057583265675334546774810369716137479209783611834473384809588927591272860477703984868200121895232986593048016692666282466915467130709687853530566347929518489469139929098546117583973969872013957915315209696359672368575795422530912955402880252718984215605169481812483141961673730087845315478319516566395537919340752036621979174933568318634662807349524059044093936833858399192780004699844490980041901714566077435900145226979983649902811645060701308134372829511604167488968183556187047871951551070053571112328815388210835883854785476811672446997123792703373942047380760918076959327315504765933083393395519435801935112773424704712782058910617810453179593660610488899892495575058216119476003534358121292680564791845967660085858024116593350516318074470289488169493248130978249141531480008826897356491951465461857225498831793280889738877434430664427216076952884943831931042739796479832901835630655260688389980683819420867277616378761729532322633328409806532153802075497484470480825074331319565281976635927374474317087132810238187261169671932827732528717014214663035085718650775718085389142337341641342060571820693633086125170334670494574507910717412606163762428379964984682664468277571319611329498809769330620047545571805061776451066473351222334320341932037223128349255549799319787332991746927131739452281642438724747404208782630932949926966109394686578272337805670842478415591298872644478096392112466907331928258864517420279017301216570858788570078851192339176739104987882073798959225532488225401274600978352838739098846553173808646201776820526022112434488619879742677582439787184408243830066506571527681505633191311411018614305322176217870595448557977555796889118146148696719621120073491504405428915252364722597911759865939664379651825626035928764896067177601672099777566476590665046634750215492759499557113215978745536460619877174036147853295721989101390801560730829879517596189626400179256859044467521436837962541563827563116125420072414255766717673112458342594493638567866674894869756299122077899317127371968789011633284081456122194615633395128459832921590792359384200752032061642735680165598700730181746717217756630209669678835334070599750682229521069968483367212386621828245756564195544999722098163912514656988642500333791610931722134176771125351121432699486222160571455295929355754135393790738614098707872461012766899328294981932212852220081267731656920547151051759713482087922856108565326334749690991060136258862008122855999518882615014795236822159237593384135143662590654740793310817806688817523386138313699410764898110060505006851749087096241527089373090044358028592640392211606420172377303036358271296385549308151614056952987437450109754778055217768210868191365814676081418202200192500326471749718870879437142430190157328901817399686056967171429486685910762557633466827639519985293176953850013369556871462333853011099585078429694451949971447058543064503514302386336940466852736292483628699218191445705163796175570386381396478950226190340501387096728753523734992023324776884940520652780042007936012822260271109667387910032023185129056493240008079959099315827897132728576203081314397872858557864663386415966475874866396320380427048931843567007264056928073793039931267015252440791507205698232954370635745466949396352601938845811350012826729106047476054397421968360780274246583353607212409262275833225022432475904291901008516573782855509772449875257397499474672031845466026403792268703347444038800959112889993988416479183375705955110750807447842135314245797210873262574339874332785873020932524482004354606484780324443023146061105223401029739537959822286101017186366007970166429238285293659049000381058127413891237608776063732123128955690045440171104189276319614670695343023425992328592718983289368574847971019299367290390797619594211440615661206916579999117091771231471802154181615208860857129582814390419309774489840518230340981547019404659283773768173755319896754264809138447084984530281685364915037568335936141715802118771574072003951402691822770734389586729535087943167159705663787768039736351396648672504505041977059047691283369194394949637932028881562210170013859364090906538541120678272195094371877190487391054187697551676542313832569640408105182903125668314041490907087265268322167008861663651211677544953881906420691804632029973955875066592773434976525749578615721307863546775534787093365141615880429129825349929231431825060864254235400237278781470768345246772546769417395368636229177256746907917705085766026612258103310317163792505084525403767009937837275270798801317264960019194291675508235340633771970268644204481758827754557678046215634563778944391703113288491630268230152291238168932805094584988849748785476284956608796933129260628406269887320934798038907145218953098666161061686930490337137563416218029134944065024097833630523536688505875173719500803678188737255671348554212716990673704700788640837977780632956869542777727763652945574793484773137444083271516927823964543920381873914535548102263795691440835577829704549462751487722908474126653899888449982449506220400261471199253876691461474318512298278928672132212223437462387013055942129968259169401259887896038436089785041079095226603058320579984321729515205850557840238372417244769035566788110019233192944248783108664640201486058906465046042405786332445608596130438277750001333933815330436045213357608593119902575011928654166051376459737043539282952189777346823674281246301198387163376619624255830738712946436392893749434520470951238735088320009536447026318317197504425374226391529656198771180191551153142567145031765518281630190017324284023167689271593795007417651545463023910963568675105305387970779926783870263428552009556480838752066531693282458702754547119483693974634303639359427478083827378191412917859395610381198914619417794307485276624982845929183905497382910378409876477599458595773732261903100377861757836136663472629205437889828387325761999413898732628535280069180046845644581133053451021104917301068802694959875785099204895288966083150011471138911111021164215772269671377602742226513142310757304685918408469172951607855848833814046282544226629348066336542969585474631862000645515873648063148885619170334488977965891298223066652269703717783973220525561335342309058305731202761102304517118936540698682344729538152452610007202918798403242133884433921534810897617278086806408090467240186473245917031899768062926206103418165890965285876924228689004502561158088030566728548393388978974025373349381334312990978749098136450216191693484759805677984228035036155038185488043558605611799226284042359011990592920512263922343049326588048325885920193580332196876363405112851552990150949139558621231248935429015489742858057469073324669839148493121415112809589777496589583282341313836713511340373085971060497666563313210807090962008805499396960098996928436096734205648467142485679536949910382147319423692878962106899251470634425946577919035216969601494057559404250114224421212918097959844799419809673871710789275087050363139038866580192355482256441431375597487039718425209747658264931992578111910255329843893979332383247398564419309627927562458302600728556695446237468974882584285139911926765250988126540392934600030935905233026168261628995507441659375891419092039413422416048283898502338674229859970616059273598258667637708740745577836192648804378795147823259146520661772324331096775897320779802534661503488525409895721753856870546400785474245531147198771334803457436355984399529943838077976055391106949012918982704671667181605138205995360894920441062483191336943450392035492977437904262913395428089707062635964492257705280178472464124457835358402553291329389719069812672395844518525640168445018164004628494247734070208809622508540413172348360291369572555048658011105769776178971840203038594707846147883591835769101584663012233490110419130726202540705777096079740919662048943410791060077792418888978101702681535238305017718633898658970005386586471573240791370319811142332155115074247817314242029154801916061439097333703687770269302288597860897579291801024697473710876913279825387633849601327807312142907347884968570553526196877465687662246203565600112565056946528095381652652097461436917426941723981426233033068290363512129421012434488735507779607331196656123881808586620609264718917209398509370003379090560515892875607000313264096511854250427255404061436427669460477673776190702853016965682311671020001127744126043031457624748695745368412233071375668021167788128270800028899832361163026242054945937880027213270439682094492600655155404806762266909860431576123455132108809080765752618773224486488394568614674236755013620416035320403667525240585165643848614452473290484035178448750141796993123203012127694940117222927104388021945252487821768040073775607427108506165857763794560792718512379572339647230635275329504365566690016269007428803324337728882461362057677569667278344557084481359662721156270825703562445923767444832512486597431519408850422751239989583472276569115466283608262802154977261626084621384046992783604729831962112924886072645114850741987611130608579113230226935986129446714430089026238817149467526768873703345537643801552384634110548804312613454370626198772489653709933611160007171395045087568971800708501882545546865469633475143316962237537942814467432684466560353287378770508573453046044827114165010383451535001604841193175068533316548123612804806370921010358972556563304931648101973195631799175435513831761871366466946322094909410055313310461624147315492139028153631503663668545670970501979614983728629531272777510696672860428231468384822155931956781104389666270577622816612130116298067001822778192646499943741706612203552529424076307584808200706263817617071691306424839832069258507832486616439338888634803804112628197837530835217961359632710311291768362027382290655336762856421084972121251828410230584392084955982713182820004653556876947874407449252114826645095210943656356131408979386526440904214720125938196014001219886886812656167953352116767769897291671726858644633634021254410598006313368260687220989923824380465340103611766020796827612512525800448679830694611837331820662426103413381572381191222662637002913517551942742257357579242215255883660820936976337003419843458269711324561545306874603718989939557211418432521658532070911438160983464219201754343345866093352282986296529474948704098967456082044001514478589954570179924851003600723316317102394752382937180565145451678802923901658365277819394213298925696772194246988735755015600721535774006862181049473110586351876475756223400004114335310496663761433219015038969897862181525040679852426419267842373808199066962442546371995203298317951224271309547745241250941642456131093195807751006728032868504544644657918979088474385312286537892307060333561280315423987738572600674356628722788648681578075290850439474840260885521091161201662555521596319593553845980401730463370378839421949493636838104431095660635227800562131513142028507429744556158657881606563025547122237447478468802007896748575756997511596381537843253304027788117455996041338035182956871994167058210354869046612740447481622739153613143443052124901136435746081347142444930725898457907081007347655522304510049320028608582594804438035696080592964454423283465911258434693474649735765732048560946491671514121535633062298879674098113647873751009580190063266446490279316775456678833941760027342583896242243670513436860912111605188062031500551989715400304153529109799096354654272515275570758324145120841673412264166717822435158274372895295292814650032079439372901001556025005601907776105342849047805455312884847866331909705441697627189190063865784372862520336016455204887097895407414682185185311593777766533178594689873178198846524045112133560348521459908667618512280498926638919274788634292288993263731454221074276154064526102807508132218131016803915924630959358561762282774312019672320975082713266721337342539760629900702345335490411221624691582638583959757343705315787516147814839398530057132838137035662595164356375221005472658597325951469278683750617820020788957218002340344163009361749491924001342288707701199661513558704421854264373188864558753974575378982312084833533874248090349027895283829719818770080097579521100133977378332876634184417048142429359239008708077335251069943546698385267192652536492057839877233406129113645422283462080737273943410517476393677647840378783818287650654761753268946001714938684574482708398533035773517626101324188497072322744650704438516655422852074348873372901675337693104638097950034055366785610691254796573281167408513969550390643969561507022431949936355698618082108368513892652831456407554934105460949316432711005611558325045410137162377600559905631179967386722785422077355767857551430001494333583289730092651522498446648811045296897075790913045349749126119298049791690960382356770386349052411687732335371241820781868623501264715796405066607526284059280325651634385144212507426907334161385517558971576165312803709353182456699924659113165428836296585835902898242778983305507272253095976439753699628782499906365586129050204164225318598536123259640568665415673924337043269558825479287130070535568055305657090926588615188830131766911853283911138582555107765929310067935697107579205434944115433650698653576501166345930988314989448221718080937912483559509096871567345654799558650308280904607975485688631810380376551841377720736312303197368129874876415155573886737196624678402368215899551287342202703229824411217680431543754423104187864202900799818160384103021802079553712087183720254162437325410364390261817546390986633491734653552037786438643907800194443737245081345173897013088665488123545661452605019841311291804886440134291313546624899556104921718583444612337003598554284528623894555848723962823242993987921157535204360083981991816171528567168225197833836178002736280557710029160886504493540391874123818966543815692541219516889366056198245789702625280104169419097103479644111498858635854677633795782543189116124309533767542211449119642792144915893197613975795679521888206704105216856389061431470081520351414287269662275950465614312937130928437106928095783255476661086947296585503426883489242306522252527915985340956247142883251126797269505142922393194643846520066652203451191402741743358421242070941351777606600631870434714151219425179141248591889059985666177249131592238918237026334502019427572319873907578107679611609167601443028297652382193353569167922334183503986364877266651290752411946807397716996800686934358022700600908157524997916827985538393278630826742693652489536177735678340881162408089762368918281346117363530278973416120783956640017533582466319870357348168444541911835153814045696118776941878069827964716701313288774693503546091529105965292409490469807163832671936595588930083386176748325877681323736775831996052963166995978010269332510845646386374641093158284527229745579438674631960111247634790980256045943226933709349199756573413213445905746402252956972983891113152472312866413422498994476724563431678948145518732835058274615878916901621207336086341997259102184898582497267799052903242620123530160582140593255345432440128230138038416004626236804066057528576898668416748898290772957970809471827746743706025349202479010216184428016277591961206191663378052444178091653780345174715182362416597358383867787901051621031660688369923729451386567832978616363552658388560045099702914437927032459408730172269967562302927425060213014202597822975936490699920339315623651603478782319160650990281206298310560903675364601552513150623439982468684800588850946817547756488928833098046169533664822593504161438873841291103120376671683391925716057626501565063822037383622418615754422972127656086588161618785140224946996545321374963440221258677426607109154506546735303464250503555725064586744208436766265293057379418326889427571036858361520240317650831905479813663441335926365391964564379681495192974987389213255653519298268748860708479977583150192404069423125609550176806037842971189827239323333860098719929896264173031200170281334193563215493189349561652410455917539290802815872595338099233563291958826713463864746627308011203386378144216381208932341068884265629348234817519015791232025703652220779557116834021455163876667661808982878503272204335988164298880081851389727050975571733526762158412536130845750709620785722147114655028801102093954388133838881000236879377797665028564347648498576165565454825969340112860733497472623346713175504778724138929921464497024999199811070076227785453214512161550747640146073154108552056016485869712718961441275605685449289130259789525792039111070093192608734361794144959565110049655211402595732264551498673124487816895557518238304943141605268684651728796139545751923049771367027452172678761660918319736110694285894324935379253756586745704509076518088639264346806979749221904389194944901217554156250132050962458435986025255694790544771637724280107065245611787853631260649234582510427399313738200183413533577240827342628230322340096128122718728984978966409674788270032133709331300864398353514368924293978097839648735231421994589083235753430121843770807098222434210411453163492858757997421912418877151408482667616232345792942188975132418317434813674561732773722815522955857386733581872573461744280256991621997937925676678222470804945637163160696932059602070292925538936982868436706978309822590656965007535018992385660577487495632613884237301478756635508913329340671673795145251189402467106361787421425825204262999849804338973209137635509685731229421712284921798075497405455098579255453270649867497194494658731505879063433086269434503363011833789257784692417278748654780748336629601951722808400535340466693053716120661027851930964434779835000239063137789058008464264843404293145432871192744408035094720442770236742217605323278481413183203869405352709370987302478959658855603569688739348914646384180474832314245297526800195146283872422657637503467004496942932586240089616274447704317984867265484609796067005617579823880102382283275769934276357968552736195793075942469037060876729445441067816377040339824035421626232448979594253723698328124972221101223036843628847363142622146506835202658832664137088985778114058757904504938835856377500952519835852578402968992472074256466305628104780140532151294466933049334182888673693700828883328964244416819851922264467231048419830207426622012415219824409210955763675438423202988337843834443049886743644626018462637395359502353863170003933835346221184167142650723868481659670926547734900294315105711729860640702127945860968993058418748537313529627701390024535620664753249449772697680434584538885624290586152010913531696043941187162166325891314349129710586014826525775989664662715347224350721620031450939877809503958601926758646298678337793822143725191751375627549061066738358452573494240480474714620806947743413402017011706835087005830523251808422952592724178793697730590950931317977474963146394650036759688952086630731997102722258154108478742303662560277360450291825893759338432550241134858188952189155201821249621436006972516003257674063407598139374507555399836523649844894077676860449362106660874177271345640108472064712597931588089764086609125177691382512798645533978404959442054654912305540572265006677508499404408463213414421707267606183814127690063811068641948498326382426408282162527607004580406710962104683117448455339709202154956271429427985844294860237661897826184568097145903874312807209643303578930951502275573791684865749285694470650463291377339272317215490851668190193770226162199742109924350232195918459504546181060244335455545701975608973241069018654482643045218097905763271300680811122649690132852537811619182203673730097956151264874922875763749066932165071755999966782806091115761021237520187729213828834492605583928325833591111214558269369443203285114022906437911750867208912104627441656466724261366111565875559360724703383015942575092506115774005484211505070252233880309808805939791118967623083949849705551331230859965038743087097183751898687132927685494591157058958031206436291354261941887009846441266636866447436659726799376599452143463553111655171524304461221305937534292626271682735446794676072779474334288662152425440500793892439476628512846386987028915044423756343227008497090854302429265079060531628303331255369727125665624601032396550270139321502954516718411262681783803832907768801540200095974103113533759924995976019233489277874200175285950816845812197044775373324948630974984680785859121708459321186585965675329198665701688883388419125699553207959902915357366817671761483516914118427187309741111069236392693711210233350191257650896029619108433485873277963922905571647075562518064914194049932505211835356005939559120785988572852015909321019310302923857701418132284497500172260014557056124787316631757229736361335326682050916972816427596136290759828933806098461797161455611539704018904814500314892392203877092306589973223601976759945176115237197646582158432657871729693410474761690923285502199868434564370932003150828958795263213507909831374737532258698387318651779865835549006110337303120069737513239578233569044329225347800033871727663664465897560526554039533658649985800169299206290935615481450810809356107326281255726137087634006666197333125973874443788703677572238831690388740220687357110563648473987207534187163458107906829786157780825891619319042384836139133535720596171418031385370900473274877277287437554244367988163967045586978847045379790757218075571380443214941881650662463026886569608833776239818983852197543519318912060818455560624234857408274887836353985955558050517792569252885378371254851902792217723682532409720729725508701745275179345642939317996594739551830221253319102497802499630650903735460471672554654650817565284075728293802078954837088507188085772501681573558941914380902577188159502469157614100869625313929460154400264556539404156216731393684615203403907473391659634326940784258051894354887041390171875087339115954300053457610912427569238537980274811399564417505893002898347848327485208830054793305858265188767982576098089484383662005982933515960833254928451880190849228671995619032284745324102402594687298126446453571162514104926556564822346978330962749196784054642460589950010501365717641028749081747126024510455824227529945030341039586217955049179782397136560114866781764115626926959966406420986770157664825276527125067407653172597587608368890005253175586207872208209196254477288791772343246253728026382001281014717406487474156928442170871425437616277513697385647297225644841221506150211393120704166124756217153009341020877761665199379478876078079051867123255830173967586347106953464145177358301280784327618903955179990628334884427908867638860561627406563834089073035124134875026707130777861304536927724513695546764618518153350929217115334374741428803756667103430297406547911236103246468593318830468388930828331786606157701479187649145892522039857757432851830298557344311158525790541677266330382337076463017411292229938692532415489204307985805847095414512404134730361548828621912031980612220384555370922027580600427900906264542893208775667844410121640974963435922140218705460414534313368851348333249151024834994392826504667164902265166918994747979665292117048948203778562114071453075438243681087553785318320080755628460635564146624912217074427170591879728940661143968016049894487683396613969501323268468292606845700474230528223707769705857315779685407692768176103730505159684921156701484446551554484780523571393782527697666386692469014964204596572729873461917046918672112154069722946316579105491875647079549196062715005931386731061371642070987710155587457956630082831849611716314123601261573201608176028477565435739287037883242487848929618559496505734597059693167206127727871591676988933388643876100181706129000571593683740564721848781635630355209970788180224899575552517116183724851709454914907545855169380501514979898603678044306460835660979004625918641744656678570509740540117630523059886681538292815417985534171771883180197260449316322804239146073419341023048723523250299941047569337091703652080724573690843173319580825050667645610143852810714007916805244337353026842912592927642927090315612715166346042698945627291083180758873820660979288337254096215906486892213643601950611137916003518776926494914122345401152627885873601812218996443259371507182488110715009529434193467167738984294979456948326152871298742731397898651401163487511904062173384657120232714877924595608746406974725884386133997328071638831596920936193150233092373746793606645452271066229265739843468375039066088820208790006357490999471588511170718677318777597470708176959662044307823792721848138898396743648628047773423986445791411430512413075048967671013646296904432492418430899876213004409018510814781801398905882836208425545157521602125716472699418725268374666395848070810975003068616039559049106077955572505890631460152684349310527681844069311019097937393879504566940685559454273222383577261301189639485831345419403143802750764487972027996642291973899671960324959818112213412565004539494975112062618620178893557518320822459154329719440780045354499109812235087379839950986058900298497289953652485289253512261594596937828604647242569083828159565449447832633380101344274497081950919476169157640953621020292382800245121197402366550743478700718883496202062593804682116798727061837110250535572034577804652315960370855613148301748335537473562517833410562305754460021397644118863274401364360308174691980906896571179127148022098860894789464874691109536582137657886121088001256032853615433770797572644537827719796078447130866399820899345341430650917400633516825915605090125188475355508650661886797517391778899521424740408993003323309172851728253443191844286927751277961518650128446563243222348824708767821082017121766927955504101254027709883744418649846103565858220779100648957233839382622633022245988895628733242944442142625995980397230135407128685213827292813411438179705601251489142110358923082733477594075970655133451530331666164722453089027861953710587559578757739771788484294447381765565705000570992049227099305894126743304625114171024321189352038542514086355166533137002303833656191841348546691957692585798702894180937954001800971795899665215211003179959283134461013673174987926329331563287195505962150113109380607087752257250221938440439597668745681268276969865327591003481394717487714649711936122214624188251004180159153294912626317704762964369690315420373899531916796553587165727979152098977064822983214017124780896165325932205828970544922376378278644585727566401668496765387338120140694906931142097813486618845282593326074657038853130959018832231617327070095141977131759132642057371535710820477771879222890409041833679988501209669870199106148302920147868640576407978705544543526811350301631754268160855808952954828736979563556871446407846799350558183180983426669987291399456778674429225754602337486627022978640408988621234738775286811202175082992900893655551967812543812257622525043480108557990181928706731779529907184026301335968253342008145172986592901935773368927450768682908628704854070381982769349627758400058747695891177045332956181530025688773058281979845404797788694745072078594911505578612988927875314138915048801961164091337927225048083830088212655776381223068085020810018574438839465863503615076113250241236050558181891868440831936241271765846506208611187785639211871777687447546683610152463616274841555495509689548838094076830592007668418791330830802779895989988012120022579936807566686785070476453870108214989809205306560570324207405764328737109099319471761771818867173108516726982200784683772183126403465135331301593358700139702791595303931922511503848643998994643149975009277395727825787447514077620541237733970512862906920133641252849028359395764651794673034033926096844465089419499996702179938411892563565518734806098673603042442694901711767723955495330043005121555576868814756602518894603643942056293814600518473769627524953508419664923407461064426220252303227217307951401759456367954036768519837078170898427380424010982230847855004539257847185903865376720362557988554272951489598335858708342344350994599869912283964088415862900968012380095899621515486901818304776398007601855999751532915445497990783207430672134241820444245424443050994505080992091869353439372541506022977112130566894721717803499410061921759137907875475776616953773353176087289638444905774400590044536054576634523051368018327968087934153807355789584757368785514813389422393361923090254850684640326761150621272026684354582975743252682608437133793732821541984641178757268940753904847239054571095362313292760399023003088085355008723104837920248780209194023818794206129889011404990691084871182746894867638362299495650901731216498677345858757275284154774687749675504659473736328251077495560150493678400876547533721838800642593439302370120802774563582967287398961756713412389011678429802893985470773014599993416255381284021011937101528430912183538673673600952320753623564453728863937286739121183388492791839596058649960308374737052760748594943822824084450226140083782292121038792388819939179206672757213027698318708147525347517930124536023100809540089274547051008693900019080153263024721798236309057786341970516620484140951866354188630198885534932179885509286647180894294564406185330613463459748095855351669024039215536831210037070558010784150609187563675475258628984514648272429691834191370812615246769101095493427106031598832791163116433740630929260882970902391836580641741522428539622965457129396569525962041727352817821811232123093449301766246306518025706472947648401771813394129415204028198927761873220442006955989761047750182807964634809788362134548576487935184970553667582642539697105307539345782051446056464928421480847910369526203248326121060151468707831554671960376889589557608472008589205934413515707596604536468110476663608837760880116414096232480772208581976514121801098190223610212872468936013377615546225199329960774488712381807565128051385492941772797945624682441672482076556985902655176194578455987308894911688412000123628769357891010696202125266156992234287641256160179738161781920191991170569537482921457430604460393066343013970410895917905376611584663982791991454967000397570194843656725290936633797409911714412150691471531272751689261477684190412441323697307032208748361158976292395326663537565987384476966918960670171147479529068788834941262467279577436036775153462791955439461511400109305687761187500877510547795509296539187533559896618461106182547411286072885133811951810747934627023457110047128491307528200974393940636643493522354923398498016280645686670874099042405598291115662428585658545402681774961910556317134985384773412186040525377739944726410780257912308515019831134362994804437247109102944731041708094086113619824134774133789450732858358967717439007774955706519667205084935072794636819895137509840132089151357064364087432582499727572634409554885457124223797816257018163263170717154399964852343167227556428664173829519808036763868587382026380179740274850536602941848643836040793138807068154079321274258125732943506216806020645539382884831387857035436586215928123222052780075756508711000909672210807473796764292704701084658932166299732064773219899695976598147865339653399230138267388082224446680804054891445688934614831681655598577055392067499706861733041263682983679326033080502953327555896609776318109620904399303596128403949825157594935923445595478150381378012289608806235854851729232662276400916323068962211929627347986072824170398733414336142660575528774498118345654223762656126830564642484550844944120391503494976480310481792296990320121482070771090867431016612907818387996331170496056775677288059041970449681969679823069400279095140855772230752514592806876540191146713802148257320141213569568630304504097814691309878994464311741133848917088402379081726165900227808661016504286507029483870361637203214943062897790976037961738037940072700689440352783759610232843199121188685995337597693179810247377376770376425064461955976352693797339950718657789567640264778526902326147372526829622525641418349308409467159561252076974530582246175286282678563257056699881008970232652641841439094350904127767269867418031680959540424777263155039847992057654189333707965809336057396138322672735464865906073546500424442687786495252523617279701635423522440681729941020531696748223080455004842108354174034435466207541539460612933603167878995038644111287385758982715679957244256699165729229293384801079813844374416874899907161052545848648352690794619421834001469489110941090387906048972211455826926296822373994190676956624143159948208563606510794845041614628985461724360936668528323558001905036094961271380306614625528250234261107995847797414952234211329005915639538979727367417448842656743067931744218864120057414322579084415851600070006557558657315574720397834726169602176264793088063923943242762882181676228905779138890214658107803841016238410056188193451461453054583022725456048281619882175723181295477281217579440316453373617312942622154380953249883808623124528283243787626410988995726664253387508518983142604869989480278970663747413556965141060297477771543857407847460790774211903472265484147924756423873532176084541991568220671536082311369347817481232913641439865050699047208522292265134682920505278189707065686895416955702421396564957163501401094471849065352059827639712132796993901570168145916663086639065751861714792249754594747130534667894953063397504431578496412949063327145634745984413870808741847753818647121340190136329443120185211122146747530188276751610628946822885668545531762081535215047347948535769920963628361340570689671411662180683150345900609040502901258035916237892984621771416736598349841849399333569744216725332544818712337839246448824007192914758629361878111546486743607148384426102673861769765897869637955806611556318616751152068331535570983062939483699111429292194156185919247270039778743853040201610792111505887880047303310228285641932368105518136142044513480473929476747533205215060572718587691353317541144715150075306671178906984468070385964812576236144595206773438696655405751991756196541528889478346459556226527012732437243711211147923303832315860562409924785585163479020070508883603477957986201400765169351738461543298080696504225035232874601877537257060687372714472854702205991123450051455034246561323657925093163223785841324828516705756454519156139166084511505032572997013166242146771664499508102701318820302579454585723525017311804374015047826749489270081256852258368045943084848796088134247637591864751232852016222827685316657414632615438982160248375629231545128966444428658961362829122469481401672214773015727347008612995204230059226768619542283378845501624032647230432583505615286037375306009211080974103661348771097387975866218798203012647388010386252899965250716458296721803892679073818850889837677364648187747228977805881095667926446360248922316540809552735876223727934728160361254297415481797800797083616153539390643769299285605486017729330405972167378542965853923385937894836965422123369224707164739007887389428300245826971558024527440763870372656924208011962111757412794072670104048263507017056907666910043603696490204111861324365944880112452370801258683060108070020945105103633589878373026302007995403631505294050263948322777272441507969372067156648824241896061373092711931414152992036874388290144098471841438281514003478353435627789523547971538660167387269535679578131568748753552756262900393771455957143431546649512947215994239542911537601711720145426737949159575303702158729544743579420231204666068469441098016401279344225884286948153890412805541027166492059423909327948244093983633880618024880418150574939282651085935902017887834481627311881594416959711245337290143097519556611580326378663884190474225175109919793903066844173692431860824972356019311111622550389257051554439745094760635465101162686320668884645236668425180138562389245716232532082544266389230011745230041265702062591046490420284978042841630103232768497857839544549587410169073477198314865620041669710898484653641171603099491252834665490939434891376865458714781331736783123127088862843837104825660792535510056903521670132399779997183760697328939638944578030059432048931405454091420922976717385032756970537877751803136968525844891837354510046044362084026160645058674653583959754731518133135806289002379823256048438200486708316955001030433238853242150710079038010262565828053753115946285237598205928288475353871430125721854475609962180678817618863044265542913733275262668030871833892222928770115176554446922316545738400585052049914918525805715220354124950090686396297603436520361734427424921296797098749552287728352685909192651462829503428533800071747029521051698452433735932656054203287522288610228299569897576066346228160648643717995253342630273298433170954082621851604410658609420491479430991068336083625390327692552056359882213797138796833556398814691115742163144104988502447119897961677819106149172020162131423009775287597246183806760214531318684354548467007036892723310425986107435248192564809763646965277930024157337797281704793810167381108874665836360643410047062379716090257416144579364466785373213501301005418461842199699694822749018548005536180690785874146319921755486470687535911947415158133838487100249290572806629780178695427996832987044215621712551890187485966115250813673809802523921170109668766484833304246544252755836088554856987370709355055816401709942926681355905497663950684567673194385758694094275414357241593270983881979668935351252538289633962729723010637493524136245113547312345619988710239683968955763819319678346896799472768408368955219087693272984453901642318810257695368277682311249411095770181292286732256214316990961605479947385196060693743992533914362200740791385124128982335233599716035550124922882393801349235014193759306147773670064645616075372354417173259374245561080035726644750999461354138928509660714733123170758913969306750421196842262147588626713950362258618527951409435423429918752453548231941198563205291599250719509894001841231998814403437211095115373653964652679241035754549785918708540085935579457108942522259073263789713886514447810766822127209557892898645699410329524947216135688802074070468522531633076268482477083198658990321489484543956730453463768999292979989938437408095379034768784941733673379170167505650229501450105089117792796518047823646381355321463060592004981548958219316847656400356194171546156162182552811458211387771004443250069650518768788375177973060383387534693767997650247008323556967102754234448813930327939327830544946217018704343284447049794679974630978037119699433163492485752529195730036422971756593895658958666201903722078927965645501247547153149501108976954699109745539571603306056365248882784823368083497460346008152077011452251140765972426058153457491353546869897013644399087435003822184150185483046223726254441764095880380601544431568810115439797323406568090346348668894983460220926755212228875257991358451849200459744714537625362213849320103138795339101026461137004826611025498126903880187362185169348253434555116329893309221032555889945308574459231681654095779246072822598936354509595573925011740489452313208170455365312812375792361670866797948632791964214561718136022334895451089760053984122882119687090368398507393976871257985233273955279888251882523373139937223717930373528802439900710228634612098612190311113900814217203190169458307716204188562340517459130706805908363274688826305808274592923336591412521954073962127159557547284693961721538615287258043063562016120347783547112363046770788192528054646744969120494594682953757109017521833132780589823022696679390526307873744607776391166028801150659007851397047276578390878335264936586519974917172903602888065044205131580666754284719921511389357558184774449298875275180416140835342934322201660787610069414781737457400130402334618096479980464748566839023956206356421527103478462207889883308109231426400383099123838013326669496801247625970036421633528193997464442070441379463181256002571725736276271522116048380651885891393098414201372228205881440517064667712364109892488209340772399534842280932036187466401963323544791740660656260520652517359216330889216101137794535625080627943514575295820531927236876398323489945604237367132869874153784277267545838965162527115249109555970544269242924590949237839835024474829159072047593930794909963192596854582888790659181510868503087023030902442463766942090987300723159277146656488025173052745646192216978126284096781041929783484542672887407571111901665408213192574105279389363853411226953520477494139521209921469483443979001057866183828710318938518557484455303443624643494383963816712105413057816073910846739042035405353920206401226973645209677107381439626929262462512682982687528063963490936024472889419397188812279267287070673842368133829148143622828870043112744392832738878088878735943462800370430741221706932630032180383371887104643578528280572700469605800734688330714877883559301292781723208157385533866293010509356154847303682567517756314820999239439433464804331682236217153380202789488937761067952418554760656970157337177478263069120031547523049466957193430379989127747640428402649687898797389086390295060474147715833330550069987160188173091259910777300206618008797016335275085368259518914445163268020243456793432940061548886102158206132961954901824676044380397372423609045234301787511883248644897026995880447362953762527831695002723060699070835551096343166837020523149211855444662484384988364175909290110556453848734499888162938192907055780977820604358672971194676041729139444290598369761358069612932878410292974965061746365773384670564905030584422332345059945617815417049730904915233964903792029561779376622297051729357473877148213891108159697442729304739167102502033981793919755894031280427587232001339179469135545145614752732133279623159619076295952464124666649009149800076718320960375088950095587702756547433241769067439377236799823823483351991942638978393395291301149510970747177179609035938396950520383724409388488841284971693913652303075221693419678721586352259462240506487566830674707043463735665437515312331415197399597468000218001647582143127040067555335894731625994463966140461923896345975219206422410968587100876179450394048392825869812155620444519288962537700420859204510404351945202562401168484127650284261557306527837292660434373781508969302298752461543426955275000368755266168093958105300973814781151965357511003570855709942393676474195364378761290781177464656038675915642739608334990118778075617715347988254356285188259706297240858883541479387427007102659492622431113789999672193700148774591344420777013978154605241699070429698451762503795929777786062768029183288797326534212052371616983013387973523443627062012453116955377874445698573855438282513279373385256227401380155668169388701706848504894668007025812860625826988640004560381693941776182743709361779517946680071024408421686429464975693814290046521882585714343477303407184828330343265939143639065758879498238662935994162371098624867102271683680480441714474721989127642771477442949834060452337827155972915016841814612260590616233281219291789098277923340918918470192697705849988076101187209461030927177746409423255564835048537706846475640005602859657698212316718391502547154815779410829126493950274332629881199546475200492782732794784358696209921204572250601948954344412278789878373375510393683452612005361382577780661489845922100376167209563230369368843336434140319075757023272966078127671558117032822869048303673718441030035854180163731268674396067110199527485732417036698689417916239708611611684703743990281390620076581739773885464102747390644219457788635685091309562256472219539633590693910648765714779945875595609598696407982741126811217340659660878379982864695726766094490336368891542435876919739285465936460508425307202140545831429496853019654293614088010421015416198621326676908771956468077857795586613066640421246393800150888208579754882628723928319941975424701267926134239426347173034975440502434495087847893413996912625158064282438252668563108916912546196639093165706267427955423744466272396604922040557848532958072914764177544872835448040412536836001050841182582364612018693824203735807453554462266244087499721576536850695889409963915205833548790243170226921026624974727407585685893898982540483501573242844424995271526395773998512789022133657131869257538894317220806249353848782065289427743096099737011860186943140610155030259532067729744911821869036771875973799665367606677369858619844952342494048048001125573719840854933595818307895476448421040673883891208204401718580650888131297155601002366811895052107516641359531832738827055773858392895655831452040676617419986345245489295848323599491458272125499467301567692822334402126726184843035166387384668296607117421314964421743080754960657868726950368621837200637793050349551938768309558477931486508794525717465379654609679739303469830700334915638655086250567519615838428630282207051142982491828336818667189796457683611925613257123586546517241207461483683490526166585877613546303523720716460898220350616254117961493558373075991957956205138441502545164355741342423223080339280644885868424112411581551252313846880180788883519590174991500856126086434687191714990130821563971591372138152195884866912726477515853447593972723854350819040196010990162030969275172579123565240837100582238698603294536935531542073787118133037969401569780229399873478584048001635076190082681006282007652511167439580694516121979419776370998291116910284745278904507884876442706893698987819611710154026735720638385405125280260005806978457552613285514131789237506579667905148864710309499052453460447474314265494998720719638572384703347515465272157916886826716583959216575848135856388735088970670584846443262190157375326453150896700649704969172422976729300922173694165746935222591085511568177705488473513089382241001370585040053510595732188440041708015136814206101551145006575014598410013926399972105219383629267155806777832733524638277994416795878993384371908733143020357088852003140190384939679167050012987234081974034666040125743482589129287943409821695031102157084982103691763733647722938308056302753180565852639451877525473892618363628597079306357974100920823415303749734001315442807607618225022233106844007162273177364797128640913736908368817847967151807429123246877036937067928525518992532243933046721484796110853889343776590092510889347265861109416033897374775145927327951966851864363382902405657087635270338083579044334621277233361187959295128563877497318814268586254274057112077777440597852296080194131829670524044857639367427673246669741836686638654176715894944251700071452654010925081718386629423525250979780308156276885043302153504031239924548308282157224588441907442864666094117006345970910922621780892793454691772021959422844260340713768636393424593508781419286530631197981850870221777877614197618970281411673850128410061721982841997735354802709831487477904017724912362935459134723275462560265430117839170751133408257141759977254196226039722386306886687754628667443201448750182202501286881530852067242393739279224392642107505196440196688454799665714518104751675712518420851923338920223229089156933240049498276490463398219375503721686235744551097671808798901354588286206476618258369284037577834999861266311527682975198306990707817641730534695865131770554792826003403287821839629479323307467917482412391968582010403904307028031541319593610929542814750131917473332730751873181609690859892016246083890404493064800755948490477662349689582338991945435867529365197857906988529684662504996587176657665656837880144290387070262719533597807528674211710163882870051547656010907792495228108913691761818426126425968895146713917701643609752212526090841633086319881941077831821659880206720411791156713874380942374686113673234106377726377599141392796023192613350290482185807754140139026044808433988019391842047305019074510579346771078950961402113895817945447220551922368480773332890828475890858564202471901787188029741152411417154503856773308223822626607209526661574872231867593397602608475142695336568694204617025037814933051867246809382492232394476535977567071737230482777276305623192083747520271226123985054278764843280860269644030504267161060847931683280071221890509423525389803289270098815895986613531362394303806186946482500178385813299596714161753411596212025355151496647556821420458601307890082033634786098654208271353152343267857693473498076490112549459949567017256082650861586189506404253297777826327506068626814578224316019737978706679274002293384396248483889742668613022520950451937889352867256187434485152694933865952929667595229268603946849579741338629282769581207766476426338471972916159977387044682964723545869656572697576540224872831349180657980330414610246389550072263688961318058317497876176211609575271740438267659613447676779591334101755000680972733097646123230248652170016291807785790014783108401245760529535447041254459494227170356315208458902951913241929224118116893336610764312184049826931426970779637193543482841764713376398603800941507902628931009447843430203843486818357409333431891498994139690688669479212530054096934586601057567557502622687998683306561239646767191466110402672010808058423074298354604746651998878768549598357700537839959668652258709302887735099503907138224626048680327477261978579138701142300708131944361480758991228753127291095316382116502856605482552364170865286938438619207304944618893321592473906344717181350981600007348335493856289929830670062989917189507995942137268200765964285772287640522069625304113092803963806310464165623804248749259351516334388803337658905877152616109724839702312922208187456412835412335433873056079733156585105111952220797546635671144514957103411467593894218986542806881860394078012681336950946906007403886646168263868257718867926740664167697799588379984151287204977458183054345573309380853560342912015715671273230712711848277121473976297291135834343271783381371392837551052685589345300801560240182405358486226285735690653145958116687347972507312794077945530378387534301385667246933557195133692267475394986958887889695965683563843294657244509314501412366914854063915406716922987889070519462367358152109143586426098852136074452815534746148512063842501123391651363556456151409876075987516198636192335729704201660308239770877323204083960391181274003958990192926748747681308923471045491989763505622528035169464930287272384841494129656230059817586586284707692922509859805831285543482166692553112461516128935124726860817246050596897518529206388895948162258111018285110765320823860586448071450031809540961669056160332224629628113980286455062955901098487114906354170117231050776208682215923398536988169102911641175420229838891984377983869120906864091526641517749690431620752889514403692906587822049670089231026462473028283280402565999160308493288776222413560202958949485306609161420999700123640908902163229665277345630721463758327148995965998179446812903893295160598340744523341302712277067238579087065409099259651841328188564339767726520551550264131350083901423990727036173936985057746431848358084055235132551849403575153052195553949140235011170758711633495892729003345396185809078660652874016302196797377658254084672721042434257499615429674674345667197777249475722202080197792214971577862200465430363123601758566833772485820737956088867289312909190860949822913554893060694960276500932574962864012095600486614025903993203808338700705243728905071063926221392092062848605939010395834362209985423712453573077816258639677142845816876479963110574071637784195699691925043797668417419621986133398571458932107198738387550913141884163886691553764099034055100497355474030578505493779165073600601457544107012336333515072939180098878407669591328385500968264765731049321748731957162477464787301171453743386802357292098126111850740138942192424106598432088552119638148343346456562828369276038848507820644451579079965334468623414650881146391930407805661254778117744164182409256811977817832147079442638486361554433493843511073758498272379420117593399871659624524570730227038616826908119801240993971361809906609873123235397747128021245893175500489899390835850523544760715270922965703341293524766782160772244630084896617420195729923991779600849229965519937458280692668429165480370141240106386549417545869388808677180500329073805206101097269889431730862232726225009290711374148099653313702873223856577397610041031036728503541520896601815724288976965364788029749445127756881767364566097662923359540167744618293844815589858402543301341745745900523956133118408926713683196706997538759474094372915552279882705023402050741220468816074827237393398123412427753376712678139073411408807294057554976337117630155159647998462794291463698147228599695338409565758844673272400272835409990585433003683532541314890439102542441828655528619886787920736328743126233230091404446008540289202988443086721868872879298208098228988753157902584913554625462339547647459265756902250848328243191694908602929412457337482030971883869827632560554162198862550329428621812504687322592008629044915339946749726307879335607688865825609105906793767254523421611315361101231101231723411306109067759290212442812880598892838577695571862401698254423407167105597220055332447204728021698625690081132504184673298829238708991844955193366590129963629543846418319937096950696172917159925772237538165966718887774858006182337360423038198905290434268451762447880079460121326400820085242674426450564774687921190868636717600990555249556939723558773767114920523482580369808893913867679056439697979786525734195413691386166280081815328420269859898971706655483745084292952526742443501733828583944628817681742813862388457142073117396030808552098741282362130854036339690090749281044640017998570677815778211714529891993349635472098272846188039763378656609120131929116971875193396031602363673518307907841365106865738907469078943234165838661589049145402832940221647209341887700672868209378264529369900407951049732958029910767535923663068973591712883222822940567543865010704294046809996855303441335655501443284341533281691329787184451008562166820034933131545858976105756707721999302902089228182711950176687764072802550890471254813139628644272407634591812527005567788558004555673667788729831566273036216333205380316723801238405645321868508432725699140875710704314411014795079274282752582229945239505045831386326745019334480791347992971882979589627340123872720392589144569761102299162846515940536451743225802062294655786488618468918583193794054176776009959137102195524941799313782715431615995941341863460640446598091195113251691995867631391481412481542292995487603160980847905686946578548265337812319967471741086927538910700463352882697535301057080725227502673920353119542934167159378772430215451869228500233544111394161591152152469951472856220766784488843800993094157230099999784927775592549082770268193188874138028437929032629964577456945128721691056515612187612776797037548014144693952062015450012763479048770781276291958303326694534923523299260587959458452057227012986143250021384003848486004927476122316688319259053233571623732358217717180378882330665352577451653171679493765939482886220968431322938435946904997965240857068485927470818001011030322370309866954104761061153814691722917489490146183232697706223199751976829909616191995953966051307032007716453337872894848531572295513623894426041570789180916081760969859436917855574941262383055571615150650175995613212627959867050512341806687132878140531140742216957305693724367294065311964065381879268001229764987807119657488047380633854354168401777856002230628185113312385037435461342349677598325516456486614491239228420353844585257463478751574675748444741999838442207200388437770394643845515421409611771453922216997860813706694829037070892390789201960738713679488544950027580018346629432857727362340258757563228040623910511505892247884196516713680461309143209790345347292558964806018136276781532519516520443068798363982362435312392085280023205847127398189136569578245960369136825050017047777765867076793140241225488922859025972702546740258130528299358482899051404734371973980412225812087185951539212905481617033137583161576649525123367112191174472349622046571987023854299290534128259475952416532742712324952482411560061592232434085759032291084240922759037903430717585497851187288439423385266550297853972745706384612897311080339925682385092900599642683296909406093242845518794650039456023542896753925714387500273893241419990945199019192436815283140328104042577617428705687672475593398639128488727529059020816208267387766629746616586663017383386795155034925289289037459840840509545302364060402730470488003083721124316446630561916031537251899673747127057042004315288552033969315832011462103950367473665190973429543851818454949728847993967680134611289833608124062715243879357108842490808235709848836450508763652109361928060135475058017510660691103225698196123203895916085824437347881556659359555649599828277633199400064160606454074654695727429455501708641660115230324732957599935285421133599479570915907567060486796324879926618367854928406582839381353441301107616142477149143039046596617510851087133927382678519275899351329078464436203253616479638619090385441033831998680364539433170654654760013620661682772639066860240456420848773750040965575812570704609882452864881145214197182879311421166766706125152674177960527076705434594007583124659923695475247210773348760449302449552929722620273496722861139051819171776692682546903617325683519089597015694495882417389653001185423797951740558720329495267267702280665702283185585695861690994061100051987561193841883735193125104650785626439956082786383490845828519659888772782208081503442518147798399632762291567912695895155494646872308027943084703734810891001175782482017077799151502708753197908496706254839791301339436075415754647784507856896216166616055109971516214244254107080389151016484280790412965854577955888724081577624201527686608067099718709398833621791642005840847282818470017232843164394770140877614842520634356161828792632877400799834358103121951534129628533922273264403391094180567664663159340247656520157142926814264690545380916459231829450014220415838434602557944612352477500859240346501019665201144528671809215222217683682140534060652082566817269910827393690967561248966125058020177039245841248489310334366043934553021158406256578554183180846936571157053879193675255756429224458742039750204810792774921852497654014466636871893766177846712300985417045203691458068797116408953158450206757646402728264283743084672364340777661082543632685628696086900985102540173926984777163917074267389665128359073249391984349395449201950144775779742559007195417402772888108084499036600587101294551063452651160023746669566334418986298739522596779838356358876869937223252381291981197382112465039989825730059950002839496230791774702675870343947992845077765398075254342560194826792083774188539544529592990239335862067544484301255078238614106532041901401397102894296993672116327343336625887051092156372801188722523322225846234492734265099284264683700067126072132873522445516863281246291794652124005025189358525526311532245917174794519384269434578188627134747703422656306214539904161355838306732681501371309146745974551469870929440221237871454850352067078554008521812310417061914994306095373419363003292699898036204914871162099040879000164565960147490644673918243577496044921105175279618412385068899125240719694316398179843156817649551299072877990472895141749290326319280594222029454706539574967527561242861747874181514917273512824625781357439104074584690322995683419781122102509223723459237178417421012425666517798300991664839711719939381556668132329996593222005585031514670309323304117787678971592014864391853987298304437656020519010383752807035718218047175157004848176549824650892298983702854496448694186129796935287877040111091457829876308154838429749599450389702567784020541678996929684524968977849606656158599467621141706608735774829306686814965335477257628940179213577235316523415432294687273441346977138681899872350016270117688804393546909896948587199415026205445026194128293270098341063742932813676334553348500319947367959749920649488750319366409135963005470191379846691656035210530451576834903979677321561741622783456432491726332653241201375978838384174671059971024936996737917038020909178237099923332792612901216237610865671180962665088933466227637965483802398356450270052986601142294721035739377031323687941673913197924340934377361456923001071796078342266418942110590381838583220876922264879131598151199142011862528557865037185974778126175263666704349778332832963193010687064748302184305203396163664796789407902648249156704191928027580195836912061034146706484664311080004988097138875313594566382457198296354199750952554444873681218311746663190154219971870557083861601501666313426823707167759221807726210335123135940136684287651968008280982536810593158962865069042187286137785730297933878806503309299254267518005951289333825478464854454882270841235820156775252773262239334385205771413293236232694117071177132686421848386442201593963765934279146205351250666701042173798943474570962021551834413954120309797480091821873775290991095206599755234337985363598902053148831237563785469464276095723209722633321426414123548197216236015509884772041572940007392796453403076116621984323422313930811258965101229787324126465024399169098754395398239039743173141154379406545810359268280951807819049192115050742464212092989279268298728055540011523421832060947089175894155234909727930685715562085756883804978269733549203160468267013293914479083778141281177188711654886992078592460353466419267766682665418438200601866431930717460290318502940697256579328156180817222071304820251486836939645792621336303650469762487663895446614904522287766356281589259804537821202692658395700081414468396330644829007274943557104595940264230753844638960225572983329622679531494725807275143601155258996282308508492474098118250892787094045021118100522902295721224425502710876735601588025922539566773134326234809018868950064362270061869870565162829644660402949749073802475637958126499409886804477751040863828431977552065463226738601449962745108845476953683313316992919295357835797621673791993823596332771551570567444142422865074288743195870251685554582916866583117024378484027186204283152357902549474313639013905424727107841411330627651343377646803585151715076782355278608100983350169215078001841773855028656802236988823626470149355362469093981111286611622568532925309575921740926208853795860571523679079405956772246469985943939865100333680687217102784056149173024882462339723757934433864289762866769799266141748433333923119096319950294389950269271624413455071029413634123358711475711663197778812850295425025613683254261250371013673309445886574276705252553262028362968676831843521503077671787883948453001650644453547192193065966225112775557014950501840881107501178239341206972797300603063963233669860654792829431471020852660260453506490799635293070937279825795373853557225415345070988787596174580333274990079799370667071079948871477517447181491091689835950866888086555720603316092764473401012761116838622508522703126272557805200848799474453259623061114836671097115225574216519097021748526493833509237495200044821890965538907376048379012655545892610025256834086837288044052783651519469912263591261295336609402824878116951040042263372125837921286556105932934417286559100344566108455716341319106115258956059828070005458443653085090809895294498297900452548110185959611839772288208533314009405816574890647627434517795948296070250150309802988183589375291497239287688972264137586690864179080551433379597076271077951074354638305228166413585709065703415468671007232367758216401488520498154171145449311979457878103486718333977294319075719536904291364624410067273300521702418386807102769078348023903456290349605907022316134010689150677664950705278282691352454640156507781648118034276904293827390370388464192072243188775135928752258458310535454488619618151570333938444597235552248995366112708061583516144842309609133513813758371317854290897354244649249772701150139279111416088323912266501930715073245658887880874495120360061140078518849706781711941326626896084386629103058241661016539068325466726403514936872079122060157241237313119726789341191824421509387781722581805476801526083920273019617429942597288063129233316088767939926542304417012722314623336252242301375596005867837790833128678077348681019422738251519449154395057487172034334097333363494515409512441760110165286407994789636907799673994359759604400410825226666105558623196175456007170065854565575415375340553502330770526262438901271605473821305278599893249460717328079966214303221076786636485198267101720531255020732933441446618945742477277557521225855588522842308700301502810499994152196736951621100620373077691240370250343194876815724737228711154514085547748148638812974108625651031765195156948202169777486896337664054891875816842159847568263608233858842114323011816482658192608284806064091443377716465830215773391862760194425016252232258745243500409867661657754357255766580172848802378400694384692242087953930686731974513212793772744346706929811468312450369663512515826591051899458042803922601129353845153780722579007652795688227053516949361900360605124228844123628780312829901041283790196172215207259313806686838477584773004288994178606301106720757508415543052369126397431173988229023763796843916614525827236450509939588184814545094780419237214770698099975298968087364281098394955415318598036829665427445382029485878086432872761314498355714036144300714880879398604336176823331938581741849509338454974444125160717729475511459728160103393126578026081950127951906363624779913066686246499793062620181272396518770885356095207241351114666694048936564803607313955850961758529000496726016850785503254765906526187243443841773371728986189024325221472984543427069083632460102881978496625474720773579066868302866642248950671689413908871905375631748346766947388991195642742565653823249104915953889912834198678627318264262178007006395215410337082251254770795133901245895441369631910245053857163954200211186701906587485048218388583066671719335691352609181404478313416603355646089752751526318069934461037254606308254638282306734872168153985461392323446588093886887423517068275122796937788259814538962024190873222268312099002020636393505276286191770454977970234599576524478051940973470241364440582310996460775914581631240352162191109048629574436624518997283714839204942935141210294165996417386220873851201216096351439230812064933568920790977463864197312715806434153047338680936936671052256775197657034790977543186877006266896077418756804152337568250120103847055639137848933713541895832421302947557694381126893853760496616469294933812532074437366742518995843901921827706112283583062140671615282341829713962269104535925425071674076311054755738065142358043560545886969125451207391219794636558144548085525014884901994842465384731985583787463695987558142971066790187651756943396468296367007279955351086776788388347255977296758526314346965349704771539019200462634285702975270120825331788837397392984303983871491323995684830451319794878927663300283021622075069685607447435984356663358536668839645220239489789919013764185164321961619521969249649385906503000352641563615017074744882163897889055285913552421955411351140871202352964497513403129274990775789712366884400903551821481518714396300961502439431302178211232856102254618161749694135942034279751366307991514633502292638439713374913646436096834652288791749041805144426511007672827647855914221957018176512779213978038873274737830346178449643496793262802358847687983899413681237571812263244611667160321757303660699798466302615971862408431184033670061038944166110378111853540905789277149774016563606125160491142274215201025975483449775264190025593293138111663688592356896230303753465383212576556892697585348616863615254913398996611351068388646283314745681443183652875336889130345441085110483125092529787286207879289211029394477379523678719183244018625809374418179916366363297189078035279019506626089919136270050226151958920911031950757363606335974109049807758823472259315293843755679786456864468704709762762432180198943763839843721383411373151684346300856909366972019044438069258673056996267045206675689219022973433607898363693773284644520869174845136538410483325977163276833727316033316149820048227991051931185392137706916008814200323691430272749171933782213072683330459620487068314926886184698201606718474584880603823823376475130946034461788188630515646140360128422902951275244365276079178707676387577193016860890099022221371678004174892613744279685579295873270144392532611265917505025467913840017923827609768116050358908444298219281637543174013236222137017045951446793372306242171444205259341010074708784938364800716288006873112244253464411900017018877673469634942809333954841291497185762938028869920614798914015960847592258698971391371807741477313838985472351528910266350335326882655689704172227630190594570058964052296887829650111175039104365089645106948649800503581324458823864675958539588652097651501863991726862044496564970171622601489657746289445604997091148663422587330485111212612389757821839001215582876029467102536537516553759205933164425013244076905033649354343873232595048349570664088222609171775746101748227933565595852159777573375365421142585494058900218534665617219838828290636495471764476928064088897064326552144933437254554332308264977527818168118447051321510935595853276035905995153222660117201639123098665395201476414286350011117406406356475235155771231255842169197176338335262748199357779687774965652927586201734879724788127105659421128741262410407633661117661359672166187064095786377668909369427387683235851752684111580267365443417781008223478967250111092435696862392159640690880595566195441404228775151452382891266296982836002085292741439571013976634087377636202992351269966309921863491907297936868679934479822166983828370553663187905256713596869785168078588870606790422756867019914927550226165268180846542271686095203478946763669575416571955213819056308830850486951490737150946608792605311759197289187875998654528436299230186461689396534060692609911806745336877072718347696168884880492523912904501338459946145189060673193927750827728092621898690541320262038879631496314778623421538366348876896441069353789452310561276753019748431081621285356047820426854664857911168816810984353647372424065848908725865710675478139209278353459079035822712633866349633199284360623262990009194456877913700744142671140400034079690550629752300284016468835145690843300729668550074699132210397172246702313420161826936319113345857516569802112297291346740620313141753503225865257912520851645472213735308169572085127050159732798707341160808608259133342841508452942025497576708367335385243341333330628262832218947369806712893362511794041070189038022609774868878093999363628951079728022177616182686878602386053446288950074525820371114264552556075563801676775278602448068462979383231536580433455166790313228724615166474461984375440546557002189039802859259886157144095043253911651564120589050838145497112347114377525820619779308718469446037374820562885780830464765987164614230621850360835982741803979164292763098849297500149255625866967154729475181942571076900062500595941339328729620058579980276331476439373703908315378145071267194004714302095766269671311900165085773166369625831442321267446113404487056638527800233798942354523543190041837790572815304166439213190848117596322044995613014159065283471392830388385952940934272360999469696521860290493994081878755252637120630296709009615360022432245594465135900255777912376160650620118723393349000127751563845204916150703275310298398238330932765339076694946254169586251342247856388384664800137897897662131190452341869339804214028338605632290845836621261222920171391057995013234019174877091348689759335936571696057472978538215762113443430832113845088074863246701515767807329242914769344330280103983660779385940727555727100506614542486530297871245330411728999006651445477350632330517175452084189886598554910214774847905822602482279259031734344982070782008263542566480894581933408594336891580506528995338658352022113442298773952051327449540592940465101094054597355952249738278492898360878746679707422287611026268537169843678390177653580633908029097836250409797081371911299216287283697245524782043598310656884818347774533151789633323902942704229955669179048538698305753225960408501889284759732652120739995464629558753974333555594751894856527387854506407485898674887909140461261040520839774046757863559612120854815697226954161622358373557210757233231948935788254203743093021208454053284159840543567242646590393028563424370708068087530583828029929185257595023111417375349232475764525413126714412382051368896627116857652088763293575227441010807333547145553450348182502343446999886156224532797395717330779893107253855961994117205535596440320561302813763221050106147433350512950194887962141971086157584888691442039602822878235035792456667673227319994575877842653893547333014681412907996917328629334202807122887098666049569350919965735362027244207714925048908283546982545851901055469307942770292677766164516797248440497286340361551641109595113572982369173960688844286680536467187753578673319727729762570567178123479587598867090853565441339187784251243486590803625588913419397547186388897484104881491692049300956584914499517633160427444272547733900488780333262608545319189284427840215066188398608767040809233491181804501292860538544210349362251858825281327851999855950888629014667893852589581515905489704196921490821778265622417477334957727110844927780039631159368912402989884897002531552065371421364895950377125243953828888656652318691302405629939094076487024296891945271989550546628660841179161061809287143359798440612309631617427440614904045354523427317772273327156641481929730730544308570749661525265280711202803357916845034858264505334860260647556687726117627428180125036574986375185250193182347486355022154756519375383318105023128016945878663259887561467953374538894780698473910216995496689918096043639849361131448804020984256008321196933935447882846271860023962978620080091234859453994384152297058687130468634535110347547641505697232301948980141212344150830894301164099900292786573174996771940890747086692815807084899929686221607537353220827310903544118511422015558239382154719449652762156162438942693742508961728932540033394989642831534233596640725983702867512793665928705713531661780428223743727788689797295112285251916032370662133165222762554433255207077341007809343347633628573330518705133663977250543549149088305060983646299126703008199747681907950505674151376169168080673121818759703530381808330065699236409545805931053333845390084360204444084362071407036288210555389219020247412149405019007853538160607959278350329976031130338304181487122116916176792736197629422566606933904343488441097844400798558581174078200599998849523539681222676318135207735310318646071172538585787963733345584827444583948506399989151180394978090889717402602891716534790614852272500070332122721648495870044062427300028614184597777336184599191036860713822756008986444875159445512768608377509565084322160608053140772934601873188117184936363885714974972398210861092814979840458307780586753421465937680129012389555985246749984042628691814033641899435735823624231747265278504902261975091693642939443376499495861017605270287476407318977419153470956449358333905640245364092812781692325636331277360040880938708691017171507565602445743474989913452928176535956435931452186577311009787828180415245960620532683535463385781120978889043003976985544654649317301437917099835617150344794785821624596010207691935733714362142650628325454045732184090966163916713735990033211555737637414876661226796588720160623218732068472710431957222888686064085134309064021956326204203102400763887076575552696977346286257027646654426716901753213300147270424212983719229971130849448021015967464265127310939449156508455851718279023870380032940291628603678993926567843362642685538152774605833473479848110837420246788378682300325801598374196685826714439823903503212734193545953226411947878407761654468663603855543283387804356744035246122222901087083633121401405510171166899774161242326420287850073158774321167160737320041253215526814003365045744557383533800574215746649806020240971281195562887225337930494650152228328167201897409501292237498630946624893528576133400378902727170089506747085508244052065208404852264710808349448764136852562715970350471044709973952946846547611935426960908529099588163837260492576461290925631469376598725230946839070666197232392590650676349914054026759031334336244345120221659272807858839703413308561503895208622158405800022022256388739468513600653568161705306262939453387976495907449664649467062613912714017309034000442778997688289429125659009252458613444924128160937650471934438722242106490251448966311687712826176074133320678749068834501142237474559119938831421037962605888803146298338286035386357808007887185296201720072062570252385237222855896575627532551705237644756468834245292556872544202695207147050305356181921691044986570735396065200475080185414752926490172300382050134693690181963056721526434679469871573009782122914045031276890074594933355980018046829551079762382483717591720765161857747506788103340413080667516842029701163002426855459042461105566331082735194985931797663508711483722136089329687577869444347330340153640914036306769042613746951975755315676455293233859351063317430086256175738923241150279844321587397934892145262081532917846615011568091978656435352224059749223691847879896543652038186382536117378843473315830287769911391020230512726541069485276422027012394664700085508056838555010804999381815194458559578612325475516972319014048923591626957852788304586005513739490530054523166881138281387862108747061051204608982178815978290788181085554670299287042967212916233817182700338937682271091242425461971225370133032242893224464202473245363851138747451170406767868450090716019835573827837591449651284781210174578562270174254748216490097219738568183820257159128285394070027575898895128139821401427156278812223753469729600106376742204882519827453687434740837187415562396738416781412649796035955530377209915235617755790550102052086610135053539355181249842161400182087024718097029376259090750713838366420176955031683600321551995018854364145938973408322149526532433748425893719987197598783821181274431979078742315663113615674016286319195763975730956892393705595457318392046556931304220449289400793255195732102064524378462009219838315445227371089117396904114587976490237012425703491411116009253906498461213726766378050215148861160988275494804516502071113686383066874315778588021611713624152123664558237107522020124037648688709166299058350254020070377297878624144002456975680739454126136886334997363086515018683133174927828017859417495451966473213074152582987632915240259609087599852032421162091761983975509097571307881709166378876972980712154352173560435972298480279046872121836820913950965686277640766271135926945335399457549526229869614609187767656757111210229504230952866884200319712379150188876797258906444071561776738727289163218062095153024502657335893114808699290654622641125196072789722088217916132592429536131332241151630739259415500089787164391080618896252239565419496142445161420826043556830180878294925777887243672153272580319449226243907693456220444166986283628667252430829187907861952531744208033266030081928038214935690994538359933944403732440413257814300981898248667518054547387997867847676353638001568131446939829555554391873194501784998856806179158584909968157413434928879201522214933954127106903127937307945225429873794575752791668868382162581728494835175573817912304872131744387107087059690211230503311595348928721306816736731772699481226050987131756590806940293659308205871899676839766437234083098140483035861284349461278511210346124713647213286144855188094328983085421271693818917061998764748818706042715687760314586743231831733314912301088140137693259539635802303055225140704203209266518927930981719627153207852275344304114560699839125572068160365733597149632735755967019091605327761523581515396315344629859915132304826684036541870785106675113575040283476204588385337817726335053692219635009612489714801986425625556868790378605588350662429520856626360287174211268370498557799513025385038542878005011093884515248732800887317455899287598853986518130400857277192715854775048424612314978191329516879273168305780597219114166088332138919625818764654243207711079113292868016306011309086373465575372853919661124433685913687705369273734076465583241411722965115685428532652695701905585376150806351615010445464210674483122679802934539168531044483198735319836873077547272394000180069492143946030471539872003508435166356449131871166264500461431067741027889735123719901575485218814116188711428289163111059262584722409255070208732220222305861493377219619647242224751940515073413302400239979972799804864092627083296241668523039092589813538097725703927876115239708868961205680024563548022568909042558831958173322769572721599437808170514880161240542114619263317016258168668634622335875383017325294355982074310161496063850853861427813742289129712734957182229755019785839929577601388325924943617477152075364920111486734080170158623877178809333417954435301641952771985108202391220731315364153361871600764883229232021244383235135369857627971540176008979701658782095092730281428916388143717596338786554329908601992363388503471094022578012745785217609951563490202269044926598372837788976328015486883713618043135830949122527438951079625027810908779805952806701359073261532723863097463130473745237710022366772697524988504340399173379291501077588793995843243252244271630997299036401591624330604642633875039697512139377525705621146273915184233466661576309854029091202062474945080042332578421060078736176195653482184757605663012548310003558390778849933823068610889563569989089179060116356280699376897906765931677513319308195395941799267514087163754845000842760275003702223042657380816663167999820570947415879610974036029082693036913458849647543361196871970814223263782409179482187464559129436419991126767534361178101985813938969048166699636441506710071671198463914336791774247380881244083441521242865609080566941147595054827790877837670691613105600913268406583848282609225421025888225825897600126274330139494850162090691643354597286261883045781241883538626513424027601198502892218357309741902292188072482637779808816155151343002395810304248022224765476998250420431269427370980878421015021869254513941834661772714609130199244894425477464947198559740346388539665590595648681589797695346541177620072651136128414449599127623800102558266748930677710363080718110911691685600084543208324498433580330836334192238698637364296453435512423250939873968264304214212280152416692194170300492440521549977758460726205061848044046774807539511629795242635985143892955378780859709436236162858218041115393631690831260710244755723196394294546823391950566344880118728275264145809853228326810409301053731421118882010180647368310090508102385356315085653368115446195164108610672957908228473930591726809171503649605969671026624447351946881386530986253160321032444482370283026549473667129922149128766549160292686581667571522012053208847534081015355055070830482981660869807431540455752129630311580951780274779941289499292862352275017294976559322271349609938067452555428855280354850543167839818689348187662951316023287525919121083423674512956879499054534961940031781544383188943714245977751601938397461135172748497463309224569786907395067141916697399145544648289823198275393903124393921450257472117920000017554226897652620686848296763821795186656930213795544646305823702423225784122665747508623019688272158450282037251409410024052160055688349020430203461696308171640791582774037282450155350023077024078363728206447182631726544323904077202040152815664693810749007281770490071886970989349106749950668665593120351747039703698314866824011745852971758692434770017894461678125080434695911192040952735021613633374748218215586582972340867778242259758908602998759979340162955911564796161742812681297214300124193683113618929808649991320141106962920927096004622044471923890816910914699010060475618484263020885819613075099240090464637569438981093681773818717468292450341709050762875954112637374431365038460202287356286088174320700891046498996117260668318334015170603479828939424614347957632597380492468265984885918817389677899655327667651039479792105483057038227394804551412084379555738172697157595775003727930451453196139963868088334386890127199630786956826472091516674904761384865451040951578765334360532776700683744285477288128854672920919130932279158732973073056658901371081341779356766883995317509889064309527870999793498547286440770018442053744204797898846592291588780148927835896777280842499234494242303286247186377050135548412020128118093507459017191904016160466050542123766675100667068318189591843652705208066804353408476491315363845779289665220423312074239020096169079666362847886017224140173188759112146856059817831013419015723524412244960276388628476731795130896906710890352101883746723251519035712482340509060189767095285267950286740302009253935730984033324767355088993550398418809000514245191157412121083640077335444975538513184627467319755883917404761047784593176110836185167168120865552351270312755685923953509667513327598821067073527901295732646394738826192696645939346165766198929857752233588065460217465053548767857470412657595098199968687789549176762514445752481423104914325074727419315249158713501774967079043934493051186870076778597126639046697446877603018466413646064920398866893904973953577579390355974669081051224396850739009867150035041473578115513991545727465513283963241798222868182533142687758153578868714096888651652313394682068142100259911449273966005019741166404977943647448242350450166524297579371829964735420809650555769542410639651634789272802622163952125176784826434648846063281030484097239747998413731735290236308328213897256888537238539099790178577556627487199688732578832997127041679487326170147564964334294336995399534933633030214180734601439139442808464010933206998592036011729932191427839798636034114876308036668808105746900478800750788108308245484013270711727520124639307419479102289593370079416422887341578923204577496197345988802022852099041081203748734129006467261386155648794908145552875922263596222682547779742964551132544163447916418952420746779990999184899229159349095785253530758406489186713440610223279471104996994675923341643948891376584948171802707073407039342089995077303847894671819605223718021612018213803723747709082974879971867817923402458096376022095767312693187426359197132614505589623166709552912255887896631581716567262778634843324416167197390921883460142443985444372241817800065480073200027556645146269204392181607493615289025681942369590654186572978452096355829317892578354584769748628997181509198114615504766852466837949945432335850749672569388319651675628233243654894557640661551664581015645667182151530218804600901256755612637487445720097074461392051380463088786723602588990330715387336174619393979993977328068804406229956495550132243013558742076389042027133790722467766689813111785255940708214609854280078483946249946271089723795462820504697233797830219945876257669905697522241778573787070698087484533385460523677071587871460923804881009818326696287983987027644047376141392939098039011788730549997444102313744087840681509657149633031457210150947993929121451079500756425135928507126602681594768445480144994255003767135802589418880361110020370102735789770089037951753956238187253926629030597694974142398501889159447391606598842486315952396823709170024183543869986646036760276215632549466877713154034446704186497370243907659151584304278794246874667062928637844867506344065773751214594623494110816405552893203982468417714778611887675278280411933850812770887736913004083361703595175391970497977091675955658713262599913546437343433948666532212284415098712328672442161274866656447805098345025651655129052602001364312322864236747697938118255750707316998115304828286973423962852926778605445839986655375743681573642543039178720122093377999904630545821759839507165077743489049427750689515643345839509795239822827493649488320445585644882876406263368365789134789388239756928224024344741276913095846980950116129216957515131924738773697420143621185432276849420310830710170600469243984845901048171064809944906909481331007507425180370302828278402578071492389387473981309546698284758645138429295100105911409005724139104317152284426252663233783621758743194419183550458802138167483243410832497374792652199639221234115624349348329104353452944849378831122031938061964642416096444553037555774767503041177549716877882958032031547000685097132127353833898947461037121529286132807136673866074970030182527173028294536094146164334665737392493654726351245276545155353831798513109501063034813882098845467841872710220578076899310678824093560892091548639629929500682118912454667054256877290999147467195677430118675271984901809126471919166591328281369973728614501399600999655316613375958907797564497717158447635349476288073330634473442557159553295928853329018550966910601696470032777445859499910888913267376185496872624077325928652451348339813865087759327716176920739133319857978526477419846475605810484503265103994616517996486107671350832057354854637312000124494211995701615104466274251289008908155568859316959035285010228433247663362572830184603869601657912161917169849399598831871911780690169828681059892899583044113129151457186483453209853817898016535711659196780472248628813550046084470698818422987748164663535004662058842829559860413943788218268638506635103492653419698712210450845201868780322818221916690198658321509158618115585306962479142104612919787448849549348826465014670432535867565027116610754100427602651394613493867847059769920241579955078566037596062853556194078624654299306142266688711603537624727889793592653436075514173988066540308803848837437251548472699510575429321379889740203537475802599038345379203366004832014518034892908017541897167582389585591912527766860334577000194872289639072410213591232661076175152964548651490880799079577603976717922566296849731905919766836222568166242805535434324396353934985852293041718632937027076439090949429649845354639073677509337468838469198325012644334370440341756181891938503055037754666008552152769349475702527014996861488551158692878777060414006740607304355277173916157747297818275315062993706068248930526318465778553449280429943267145312414029755311033895706383854710346745409736237222336260660068057028427159147109335898316847716779234124563172435170222614016102483835551768840983269162224033194416347796693268812526357066667134932055802503026045779035485280549348964151581427868928030414597864007492485017574749799825444108446221380583498398915878876861135958779184387488908031017869272639451261203436944168553947820696271272182597079754840836369415446272666778989218599374741117801428482726292216374695861019311680498073680272753309864003017327771219351460719181904652833071555635736168481307455491192220294915998271752243266545913329164947342125670053854213264486266965148051807568698411465587522065295632149969026813465600130163917823279735230348632683400562793007558974771334494477162123960602779928092871386994947796679068325777361311170828231449633840571889830691827490967087462798392825372051223178374961503836647598410941317164340152880145023385636047017055175087493488651420171857724803082125925546707954574547519712114582201619854856556286140471020128429418326705315655238424997451017092027418611827949390344907415984438976545969856585968705879427283999916523011677118297592883842899393770328423309097521377533616645583609799209483168225081859550425399771906145686286811286399982017054764745948152336236920287572037159503884000588929636763964977397791626216654631365918993716520704982580820221807748943014702669288075408961353623768760401775310475593549854286369679559312651354779394677301413069738563138264975522363362307661854365774293542444562205839862976741419213489081084629964149239895571002207354788527425464509738744365475727837006666627419570677656714536173690171562437707930266203792945386814975464971182187230569608174735683498245738481238372481188023618405712718174084510592288366281456123822999898867390243484985815010539530745290611359539455942161142439184344506974419183004110754444518457526659005382088525870342858939252002908307835948519129424204730625013776636577508235765970017291733614391681384745297031331388853704128435137639917354564485034617816913297710343912117715258768405359894376082088146149631751109913510483828663353312005777714997524372146424030839791548393354074746638355547408722273117549092122742307068935198171287086189945152126023495627584726608934425640866087509149153113301296668967714261156013262753196164286152014453112914653256814374515133503322854095802293004315491607251150638189454545867660689433257955638534587819330732360464576278127331092018735222530253370886194084171126064097846219557215643004903647608971486617004670327036511555693535692620125497106934119188074322767835097223231764874506111933564249078100740288902373828211100682318060528851785298666911486923617744456221582216507074297059479001422127645083402260579077883773716903434509460288268658651462556811266436784750845559437310200445824916217415809457893303663380687622113914185725723703064139408974726519310921065359010153344285416253614988747614541729128554248261394116702594583425351713688345820695537701989717028335618453404323286405451660819477171716733916109956315757622112885972888997589239991595800742374869156207271230795422257556939914512571476787411611744253081697538109270304709890492616740257276918464623281750715782920877917803411498017894152693676250852954042559774612019131453968086227124710333350765261541037337170978279941289905969347594942562010872401058468237318999909697631203994859054905277286998815788194625956096447581052488679135023329694158038311378873438320108262465896660716643477447652105696607280031937737008837353514356190396110768532447913580868554960329974641241473803828970517088881343521185190683484974090194897932333007196799954451056861508143213443493189891435871211840448276463303638133986999492807874396233073428729870088285476271979367790804647846540025232906520666980862327479909627151183572368863525934885960578415812631437227581833322063282408448826308988759586425360499523853713769766792650679322173097832086916413862422027711654237165515806507614696497079437166103745956015772798797538100342538387864650340293285001191969647674917563594428908879457804488715307549879306413313990399856353012100639537818681175852582939250009223082901889603674686344864715347333132908111425553260201108771538167024744556122418420463325553417244747292339555812090118913523462804271364784172787799162989058255804332346867751200645060923580559213900074700059815287093548946082824586208785346208607139597565046025308992030415888115312010732128729206225648738272296393619435340025559729813702589956445280868302267901543675383846069913151151144308379287471060552317571377677572752246325719507959892905388537240698306011165570145458672790798937810653123471263016313154386592890611972464152993964582453917101391629304328220520981221351462349042600439261475329284060241055127885181103000545844560920865390513906198028740993418854352176608726161303160357521213956706588903447394198814013463079705832273878073370259150616884036980308630146252199880498428879716990176858153712235360491437825282027845674238931881072432513868453752107440252429432574541420793418090848458673630174899453529315100330448250854064992365606118364155675644162635986017207205042978999581509680049417169918839202063734280675122159880093190946853773799969309190487258770018434097059832177777002932296426306013754395249075155557812286235529038820651714153585912889961233332404125468677231461395778001552186996470535565955042278933957551357466005507316795529290708621626993265772720782534628719673530011288597248398535738975700352365750205163941138599503892855351112806073598638346731743575947470428055657256624808347274368217321500769874724423348341554211996928016196036530188020782094894593517363486808336020498822414331351354384906185933177486303751281690600609972193585061300399166001934606513179571761682085036106617999050396580571244563738407906944898750617366748258376748232239489281068600978824797855477714374520531056297797813414627133830788846357892140824564365605434047411398558425986266667196953468915510580316923148159118786271228715462334616256473396621585795820690693642931193925583962637092235472527566766933152073534111986848623127020624016440918047006096562675372996679439109169196166217002036871524530642298252221884375362852663638511695856674195991485141041179811672826924380404910640552326210229224471907443409908203248264211360608172865349602200186673149220908551082687305932252034562745869810242845656495392890532558818861398276740764799418098907073420790890697224516121033062342493688958628502630828181587334487752630937373121353766330749586883212916584118044147210206105389507019303698613772909303613016835436768476009144607041275517040918519814305847001945307750044433822100073993573629708454972590815353935838032045739523411094124305460518654019798726926697119385878040158433463780574511636646996217544944366547488585763321963296082508782084766622290757526089730466970203431265079749102822276578341183549618554432291939752177923742968049203006306208249120640063853957684377161174894457440417391722143975616780288753290122808775956311499568081712144415175909985035443291369092025629218271171063053521553987603875686803924220709644007634817630712148944102411966777838589689782678404972929943959890295266010698680475595377978076429872859883857283493176879264499223754345050244361742112629925338846276469879069145899588070652339670073234837910959685463101469720841177547422744339669451508125011477136152736376407997056521725143705761542885551926942898292856666897275931400059004750229488272549309540662002611719875920180397505682673480747078073158183283304874769522913158987477129527995510985523293255128815376241085902079882420875001897346203980408695299608959121517936546560877852371644135936276143426972202283331464256320437460668125860698145710335227016414669104674514833039816381487839081022968132122454681340292549097983121742548791084827867757439245397990459493175209235786486920971095014579192051458554068214136325263365397603554863704427760729951240466878222439898481225595436043766847976214052413074644868280447446259664591544835739692661618405291311904715820067041194896842883641463346156962924343123570385447476815368622782037657461601768476931178568644187761635816644716918689935923876793102700219484290406828631150049290403487370111661005605415006024464783183341358826988260331262088512802913426437482016515208349036608445847374988790929017242558083977423343896756433757943911949310565796298987434036003732715200698163802968821833623596158535612620322871644829528566528103875649508623531356513643832701803392653212916011954429526402552489772480293651054381854572275283450914140547378541055038860877593362347940696682571962121201511897234961141358895574414290621566728336456557805749288700823926100188684484654028775499208639652486109146639883429862696742704218206803864225496343263439838812992102530280527776231950712574619860398480173852782245604858029661464750203507818837169988394026172169162623002245785942161174248620761783301763953113912119037256465126979843377862878806424727696912234736526625463965234864422550381703631600125251499460480301489479032394521333205702270057818909056116770050731169260391835542055096922401567170769481635110930933011495692253788729911491505834885156931427568758530703661510268889009313850369545853878338426642928257905762377672559437880039929013498185143806475182016735766761594552898147873732442591475130474534013488228512386158594544479490295695428645588476114215429936961632288044334889338959462428657977555305827401741245890463549209299838047017659244842837379186578300521182730449823194990503428700308680580401240055257555516335977228335731825743586709049284370262499020176359905240990018863314414919687461322339374650797985522578359659569354710577481587247678831914658137292771956063717606575532694314035667928780474884804652708846084339383097853094534680329431969284532214451742733829219686673716886567971644234532261524308044991731013610771555596744769221017988403298265286245678203529598924024557688134431834489286908971744251134014323977077503701601975298214599728141738431545349612307758979794623257902796533642469910671196551436539472921241989132417215497387937955566894872959009946442496615430175297850001693902340611424422107491764594310597872192440142065952866026588058605165804638798408703214066774929409789319941775633858791142043125475763744367284171375639736979062543790066687844165089713323220383974249087092525745409333220629097256403315441084958138524784136451163266263191152551354047029025700347605789438774901415549751455128358810549660416115885067203685014283916464402298023442294099093025097058595544851002989348261868546945166706593089235078712827488475537666650415512571249763312322751560368098927609440814258759877534739267834041761141226465113000486386335114545556884137544277814035016724321033655086148960814341234381330089154143904053810555616949696670595681718456168788677224889549607478309600868297972746468494001364520687772515300090088533878353251092681643865371924818534059483984692099219680883566058368756379271362559648597657404110364470059181623007637895370390734769746994607117753970444358145062370756148511662280277687624055634385008702925015126713422729464011352839758703402051456568665095054239815557709317302631480681556180795854437062990080797610071966617756536256956480679516927470500192099876029123935611284805660885725732909352732153916130157502276646123135990747953371791244956949917056729938709907292012744674250245161491283866817543263408462907386080847625762504127004253172662280195703212876261883489767614310202717827795400074325802475449374209157685537250287455624571770631356552505645023265048562555756345590570413368250247728564951540735518010961406356982355635570290832489977531539479847196802533604824983594339102476479092740494530385053241897555821324738683696806912214426443414965556525893490346158225268537896620240798701382167288276976672346319828767071495156935202013704260629507012565679254305741078279580856189560108043729353962137887790589689711914334522388892032700178953937242059259038409904562268981291229083758445962038059964690251662447454858263596486001383712515927175700060747248724161833198790328611221852983709225414067615165881260268608890101229116112005673105730605720548901523782312749731741979068549194843890004837451948050175333891365372731743974707447852111775844445413782190946745519633194423244059558463861170480510453426311108060696656280858094164434007446768500417756328056288055631329624964182414047922946481854049779877195095840527206902591077930983685816746855585934747056664422766101543792622577136877263524475903432829748056731226183248852818563704735715471414319646164811313834539057022658540718348848639612496311628810111903380933278231852567337658866953652471612347380164459097176871787897044776516337436743561045236633170597218496435660843520965432825130265630045630427450562530698792539277488632610059338148758069381010605858723821190188957997859061201992132249756108664785347084606957615566298258396315848139736495943588379087497979160135768203638867127906997517936859766357398342942571261458693730209665439022789859310620267135487028595716629972472756822264672083684688117593438210789865230657423040191997296850082189557631566978796099186555106988193439246285093045382768671417829595536788858279821796640051761201912396327532941814688983712391273996125600073091652572637867486648256549470891190892525985705723700449242087470445765536232407421427946455641582853520850003456727085401575878369960250985602732821706829118619605371444868305946083056342529082901234442476835758951994724025998353045492818161799228111833880830967840252904070310556289027948302317036482509362442733320062918017269555054101224062636699016912768992190682949730890101044910330348305143496894039423106749204517763607152164506515408130561151680759433128851174389920477305873802906963401226525009258547825386197423659261096702191878115738703175127331380759893046234986079086171241600255169793649627934047192381729345310153114655927968209805289130673129585607966187679643165481928149893370763946986872123495913043494649779158393241854023457671255737686232315674595160723281112526716632390041017825610345383639331311561823701828502789768992951649001489225603386071897404870604768154071597460126266389185888698394969948007338248630133947497273715782779888466502470550504082617717181010508603862296452355860496874540553519342576955587210435037350573578764341864301874387984237824961851612557736822915988206891705060585869434078642651503684039931525993200796561501133908568810401518885325026982181455043216689664763641571018393676292108213644841886764404497357969078398701765410331455622682248752467902953804440589961299086293935946354302548626420693102575794204066961780855484364965152135518451273271661636930175003999684275035590585023468682394228753543546855021920791609659669616782134011036811385593484700540255599561738688054347729718921767843521560914379652523638079691851579507963477768936960247084719349284764119756776986911489572160588487639463182391261281916423203093129773872918217900800903428187573704194541179941032820380823511018995918526597912275601733401606221286925193421660993101227603694885908271035902411929112862876150452576828791648695722171477466808845019984354327318234149548493323760175965864265559911427190108259119254679522366377998834310389682842506522273831779555691640758337096384686845679826050367691907153128886797901520655793889780539697453185765660020947306476550905594902690965646585860895892317277057097073594869941656323584465376128115462495599933017105124609003122915821562095758510085584972517569654426308487995890051911545561225200149007680509193182899291116894674536643928635114766684795446480229909972338883005584568094104237351511774360412318314106316241922060256813887764635279859995355108070480471288205686549880360790482171227739590419977275303477403613612923438007266158147965414541767057001831056436284023940372513255776536212874436342030400958020093856069766914891904088423093847255766215737478573277505549550719955193782610903143939715854743857962616595438634938917731951249662554744712766797613681489322516698469964769302721328942584654904224549032597001763218947865345136451307148042279508991204536189159666869598999074556803096446751639082840042006118899619615865871679576610319802315233081172112954329054275239238936256699383099761274924961935893511042623768444604418133494545358854733415524000646994127131250404463282569138783992872791992659677649639499626145236446871993023137124397871096436129378739080709891470973061198917306240831411931629986336400292211288927717680272924888525737971924182515552599004884102437379022386067269788912806327219411125631363098943879994295414310364505545082886762864121242501799773128498259572818084769757451458351185961971091700382954065455435525004671917628997606001343725464002914554580256246864504800840933800762833982341667689336030001867797438164977144639646899775671376156672559204850146817170456764365796288027589227230770997122497154208966670738763826140932705780533541996952556029887545559922944812854945619806935856243276841193952240055848164038021539705213321566173527994538625183487201931057931008384011025908455878786287669689101576092385173484623303072533445514093295938926623509986387976010023991167622750453338348149911406426622441377388446622851183289919512626027318699295432660574117792502347111557580023014412026498402572405372636384708638916628338767852665258035473002315871674435294002626999245287380289726272277457948506248526195334315334638770069724734770139145806322572028385711637006751877299020596721329175585560839531980408312364328071175503091962387044076015878403922709137464311293065861893515592034964755664008975296423993327048596078041715849674042410896604878134466616817399297084478006681428013951174388669358796168507012474133864988965173226833120586057661991972811584145126070052534979146751160252850644951550865792862921527676710941724208866830872766462421315896579502901514129021467530636698327200824507381065212064241897226035252599382545721989895921903839696159943102917776628572442397182618498182838275910419243488204644833348608201242462625287949840571493050785447131655607886050459910902839347364205914692460631674943249396252274647304188923655016789925254256845118272918088712539284455925487090181379354399067208466162028142871033533638776740328745667474249660659095477788652014407735855580480105621417136655363902938604847888685859412879323849842662240933107377707423629399749071084222549128958963943856646320800916652340513390055879239239098242629331768432467577884858890700611923099209973964549943086975630441707265324212459238662191001207987589014183011712589291019221159205262698473597897873652706641344989064734396703055507453334953587743831178824102707771869316822807388778054887445696033733118280078726879135542047427438751732530129366556943040827856835258201344173234435148871857707187606621040877618743003167552455465051214759093602140113937426006250972416435833884988921498846571086922437083033004848382850598274618457329880405109153554935015004145843904388221192466066264161820462736620751258467048095570012178270530988698275642284089940449358066755271497405808798103604292938475580041165997244414059288875321985185056491924232569429812869737865550043807677497987849828563564696654334370801129200020964162187170294642727870671196328455153984568935471031704669643302274278859515695004741540488027161770815899487143525783520302776059040505523404807209950382628422450755293703968558010253991114428011454300027767125077031265398945739596832378779897841231858243170910606762815518581085709439576496142028002405481815144859626886105450914783508159551815825451980931782394091099551221377550256125144832734580042332068757070329936427050805559378306818453231643374825503687009868038236971342768652595444087529151544136066815105927153335681187600924805270620722713960370577733733420213469774789296263954642657270103831821644084273906794105887504949082645734467549459542207652562172601821396634095548991954784365419467630220737660986770275691904991626599824122818844044470094096821475494250112472064759445841896842850260082885141691888340825823915586485347640920239472286230484877882631730434885261767929312992777894398625159205482465273652144057346958581298937859913625065147846259705720742111323875786297348567848861577662952929394162033020932423710667227139533296929420088112376092750859973050251095935039290706523958272778214757743017851026854077406178140429961135455161083340742330849763785275000235546743099060081468526282202514370023537307012340242281143745084207373300920494435624228613501859191831733361798312492501167109082224007248245361219147239537111178155163096643096961251910859526911148408652607061019931157339106380138318039625483853634228112593267949969905905148623967024241863434567383284170007548898904916094260026149339336097819308192248364645702993166191230030882691617321895098977467885870896110334048672483647635237362643484198542007796239963113570017524803990905705905141233880464681412341430159488613755607870970276994813218676285240380834559778616314155011443746522819513343664224519876261214596864621686258288516274961189762382491960548879704200997875022178386511514354452800272661074302713310640491329405677730310141201607503714012295199013572630440711714044920071889871567902579670688576560664429073647707555946875573986757269164563247088278380142913375962500773714886992513080777459686783620498203695451962726728010495862440060095170323147764137691205131125162779106780138905514735118656692757696342684273900310309327876611044786802636522810210164817522208391718865741035045482572014093590810595015570263744997809205152559016679742254616473398189042964680931795389320846795815777284387129311478376684398493613389859266897683901449773976162449990478955162569370096976737472599539087625311725714485401433265955240086666015091064230033683823800873801765444272521850912118582375190452297121083843376982450052425844793824571743738936791644862541724111061920201198902032384804338452967564351453871647071096815636570030982950237012661687795762980624967303740074185487158482561366921734082351728028892666829839958286767545233898598428405963477739088751732469297491726662116990063280571373924998131096751915167290115641417784484726781645369616643165625550407001910318569984814268762067190815523927289020037061669500716530853634659666885773982949194958489069129701864541337713433926579485210699282263623193222673097879659867268208487778839588872087223732154141005328394937278048545147684235297983606554001860818749519220756168191441880407048303609464422001070500478725145517421375050066363922062804356653765891318495880997708550855425153398595118733114093506836026866914629814911559139506400284906808385776033884496149217783940918546323987158594172259261149575479691070589938436400418578935172715409254482035411216363131558029762122801391912918053445017477318729098346100473900381225952424941350443512134479567167026429521089190973621162973423387900774166628534637715340483667527464031795008684782397284059989112904258881285502391447733585456522341160342199847761467517819592803557097222916491536225102983655340232164014335670213199997367862687910079807891579849720485052553515612819112122646167879643800679535827612624487413178589646536239726703681322510297259928318437506065022306920995046231951422610456182719203886482077188150124544841200906094179853554040115030060501329064050267797428239310099112258561772750505998730482979064591452912186289531029946369897080544061605500683399473304245068096413574481516151410269874158789061099130539709652354991396885138712934771283275527035738179527977522132307210436179062264724793732386221866845600839593440794735118267654387991827429366004294752660123562994473312866368603909699713689167639069695394199580464384782753968894340413155690471241703203343392904104616526416668490716160158610310584158001946180400165826593636954509008137267746106115663419584793173110026723766328576611008090738771207053509107202628497963710852463537563729092813393797553114763913976608445926126066483733539290087043303214027352867281552231858705022434813544239094480502460021349569865274235590728151555390343688046694648207550394962160337423412445743277633544702310886994997503836572621540327590503450476881025473160193443030090844262050159507476192619404326092858345143096870816773888801728348378828083549858051279129075616721876648834918034575410782005001309544959800023196669720987542536639005022703802582756997832331098901017685797971312689257523976192177118340941418492537623226155203427731780798614355923438067160702479621998647996068965274457965503544073940652942012976564207237856708388628553687929315812658913948444629671080307295933706147561437583220275155932250041087872301588542366832098167782760133835834673325046605004953548842384404189046249181041724386421846498010642509890381109336691711261042312419578094486562626543210797258989332578501719994252936184330903777203122658145376008693071500920979517889756114208597127546980325451180940696874728336206256644350971094942285542872667270884904190187701421128392509948737419911530844773852778906578976696575483429161226572444847755528741372959057038918898226580920785979755872722283671793458119370766851483428623918716820744384938029835281547596778367541722021190143220767288435395342807757422938139090359574471855658478589326104113521936240363423686534077760328302353565664895510298672873818174313955717423070911198994671130115774308098893763826188824104824938662620586194962441416215408610430549736229783365658501273949459788180751682330842797133971534255482128438915361160149828015466434426281548585709380102269424334001934867870061505296243703113418962695866778164276566361761778244131664585200367748106778746166843013678381588343442341432563445507564733497250047961302000833732009815097153008273864890631092298393748326979024708736072633734464661617309860347680441525419501928684779779791168366125526512629991677610766116251767471540526189337172481156313836382395245472367909612593468283006342134415214888110190425371880926376072744535229224562333739461347381833193000045991800010105415454241168094500837651262272990867436768231076396064927329869662545013158922613959436040475447536343697915387307017429819141733339451193480875092929973817594082961245981491437511273451182871648396588526801531462740055918764708955717905682066363350040647721888395868716759321996048889713960609609672264319871540833119864571267961582884233135039351264592801422150599695106330279880395800110265387470583877393498648768367586681663971386789950535102027301475613367100688999798863243075686455711227417497763001341844660256760644993220769434467175700142642633799480001131131198266522567991914759710514310775914325734718749620775347814078501729185925248095510015410645742615915762548334264963759635300852320910415445587066980933807518281341818148283500881577393399404605623196438833866128791192536952388322178100330218838140279990093769949449335487053819880893632598446742777913159080408512040254169373503214441206499137276203544146758242058803618836869152752995552876529672954604904584598493271238037151597131427123428582780820779495821843396142282208756226640122395363756577265210570420935458120248370240037509662241478133680266479403390016304120532086482310423414773039016689873242801751256389983499972059272391844510630647940076889499630763242841482449009174297482912165457622399027401379802827181175949756373752076223678509977362112344826305566272407419831937066723664934169837843055686311184034059980419483122459341911814911348249281854389195653131124593810763533690952837528086344166097142426095742046150453691082994849665736581997207644386295359067777331174346119526836590264924747921742229914449610974333182942520003792292447940049675780844431145631445338450519546851114166118273201620882686497650872280287653661671066587774324475793393169789322821128562633282160726993638407470662818620776154747618880032592688511431333959568918274545248747505122169046365708699512553812241948554808888423159222092421902348513343725946409568349066483144700456681933620108448059747985884381604603212910352873283869988685214262229622104230636779951047751131111336893035667427269238543864505182532266543960897695261208267180079740160705122761656374964633975783327736899962505301463208092674011785703136368538425263305480789405726108316943827952200984423851657846318108528442734908711960723427287208160271863038531126484435648193965952030989998556399528557523795739829128301997561268800518038020407519610410653073676767672462330911767755685575857442090697420896252509335139868859597741965643660268560936347822822604019220222361656323203329292924250763126985155128808313958434349380719559700033074173600918283578468344324303213486637087150505595363805947043182606135454257476041636846791402762335074899821076292990036062624981033734100335861233956003818537258257189786720620104116674962617403808979929086538269758513234097195538772863875921716146311549263918121334443453349912299806615509644405139515430267581783030244251641139855659178169641067159170021277855095265438366626730269068986217878243131868952755907292046448388092762934176029419763007947928754742157141161715893546230384562882441892970023216390185286453065180490118253529325938818050648768123784101404087931386120129046396374520178259262050345195364411132807035756062360992687997643330330229562019126949634542609387739148492483286370042632514889625397997169988833571031942349064306813350006480029271227671500505140169806529935390126936493626592075060566154092303683794381903235915436955456041429461401452869593162007791218639858769998807248150000276803469281888313074516284231150737863033239217310883379768863133005022700283864321162323616280395987772017295038957409900842823719377079014195385752080089888874585660596035093802346322849047009107028589166784492557328754982005493409487218053389653593191045079325439446340766091962834222254043214779064171510948201865565492813060180682703773125640565182350366512057166858641169561063893566247944087132165486371549079440324791419161767344658662020764067891773323587441246059316783862032758164792533532889612364066438608389240256944915254583157371270768745057626434672426314194103292434038589432364973755557416742253674206421570368155351360746630005727835113282786104984938848680525607939209813649356275515326885779870867734678724331581589432978372655676557031014321186293206240934462428338960781822251749628700013213995728553984777616214427776026488967666596831610573673078747280407955708142436885716232687672927234890292741952853244030858543778317522541433750449729685275251211896675473006468904724873499899004903556859503854803881187170916094338160539818698318053359666201604607656663996434325884677710993925829630188037280297588559288596505175416506740623990024295434387754716414728443650300037431662411024635472693973359200948947733437464622093166286556898543060523745171132603619498232851451676729232271746893157294802206309703034286694167932417455660589621616096222318015347143455504328583444452922231543595726360379743055026491254473756649192661654432389023264024483574685889761715114226505863472491469432459578875409493128949177199893185971264207518354023426994538623023365934932763741971821861533314678201491616078378764296005945242945861219251425015154456547235610097129511212348799750782188959137932556332475658471435778180835624647521921182767747754307808579849502972331662892904318775066915468181741205732361081046963839787709970774697161628242974955545718977283769812890059689543775474830018707804732022274926547041775379778535892027944809881137217224626292216422550479714397458136321275494308879682530145787109391082387743580665149989309127332412123474317521160133879865793722816591407282075721201297139716050857086420054740132398591418240749668378954888250596375528046664542305346343009240294630298715449115921273396190243633744821294082946158952372893445928338646268596473669397663538138830615449051777324560137666213595773441187849417796003109668045483161866917076758550071084277526959522263439354579659623005470503655713552828411775768079289153328161429245773386246627287915966116400774144672474970427726982162197919601894573149375967272313686937930216425986772359628156492856714246359207020249239811142601059709508750344817033102121444688689208349289412478968914514420876316604201163668378566230009386875994136369961553523331052883662332044385725852717133953145725097955174928451145565810969171075327301545666680039934930769391569076359134241917379323074032563231362744476540628188193944924585153035279742567144836705445780133843623596421205305877992297258410940660274538252283411827254551490725152403773660995740941072982984367599725314293289366723944714989982909704747369690275623870117971415922745184397590292787217869020261875766694258156823118325467862222069837968218768222738201134223124132966657832554374943571446119636777965366769885112650200801192583411519673555214936818223606740374586259772282227476900828731978318539194485007755672621033114386153711782428829943541032744687375242420356247878619380966570364988206463738986195494369795985933360403107236180258003493648438183563740958714870922531157268725087283950765906365366132158330561136164477745389363430418173164026782427343896437725344784802819172114334778820977138872432406297019887155776267600312205131514861509649627783443123009091152494868167453359045632345373135303444919819083460353037727793390214503118511854658101399834209387148778381809274924495290779212741008939296171242948435006470930037147866922647761182332015504318816583110765313654543549037594670373092611178499498719589266776148327994075631151421398839142781243700326914914266133982078366710156977481904697524768493890286714676857289930455621151771043741987912098509380799118874045973312764629998411572382537872130530927317258468696294025249759301974774985693107089602196728759168832013133443201566093938968047722471258207740026472607671591299446018940522503820914401818960279690106972473799804417116030129767947943518507739941139194033192254189030763575715347151893920892700910928151747289431056679531064942380663432548231778382164064354683879925160151678206194278017697130075200178993404763620146338752924318935029925761489173237294898836287593231624574814784934967619364838372218773407596222180344710054214375332975562002497626679477305977555381074892090401752100017536661879229988651030872156115603578230468392373472222403860242126081138726298094810719731799516314741173024260415645516593337275091827003398457189491213540844272462729605629736191981090623286857801659924938083005878488368779582722142894571928259529180269318410973079581721510251622328785376644551344195514120695395676641552857318518328689225840667015869219426192219099819098915409774324192078000297914842610021536719273922644218966772969029231653900454579275224823649185160358841084629335953289736730302737460199074141183751356807739737414393364370518637444335644948134451423906246564632779630425763469038473634199509882420279526377097026612743232937216035491687262195273219431080691512999377030130566716049489707687562134437275916047567553767083060354098788903723980161567414616572125369244482051572985993926486770755506225688345937130554615034118782262313919771496986585486163683537074437468277640104424628502560732559888072756365219782089066452873140899296812627730051028269087731626279901384962556063432313412881206246113762940897710775588906735292782593609047044473562547479252124641553619246610045050340479149664717805404842344020444532780199915715036776844231702896929654928141482100672294972209663209894265618721827599667231967490064895157058433952420807526429929930010240727048536497802677308005966760356092268208976664687674636736833711947254765925893725998765753650206990654074865586331505448742016653793256566493283334059715152152618745695316369593070654293091864557999073140912545348948047499219424338540579090199084650951375741901834280566061260583319948179327692644065661004480049039957452244867798133308234025313918947449213641909722826834405325964961438771150962079491372352543405001774849976580152050638800773726529043229902221346820225302238856864724534637338777971388467395865719634213922798066022663101025519206771603732111806671306583866200023893117468797771722529789072825587162541577791260469036020894255441329316483326947498980727032593125133022754537267027786602419075712428840191052650093194115554787380412322113678227503707279437290740091744328352081292453273647811078058330221439021880633283657710976361535114103716031772544292924712267382502230512839516809005945569978138717527297165823279409340231363893767792551020671463885006718796666937171614313241086848597605463225571299318657638851177492181163141503293210418440560850057941321880224172218231861426976749507523710802746464185681700486023442045743999561545340188687174239471667982187008515676926894703712078525736531153930817443495764928215408661324555115179005474078677507509926771493771625848271564548127157434347628393605679881122069183186913291528678990826390972514461963757614226510860002045732022607319396591451433523744753157954220797398371744580098701695216416250483369941118117442954892878722328364772432300113325882571079440464276512471972842804048505255878382086855054512795694919345218306410032878993923943109022299884845787199835506184166475152054157924284312037030987399105225363230374540347577681048274859571901734767701055037584314259039225035330687676914139300449503133302787719649866222677010974344844465492354146996568770487743081475389876167047010139977006638623592553652430502208087652100027251978972398115348990232624268816206766545246708768297867622969068927814702934335225051985078950483166975761531528198924781736556479690561201136770944147680746059344660358987831152501152025186155378309331549779023079155476828712499087139148376570054585087100537403140457261695453943171576227473169598681633317281049487643220302206471954234382836238318739340105690513320342200368378054269090236093856276667199619205578430383088215537167361312152350051016192947350484123915094759651434371359062851327237506698921843516886352824327351644891101261071791673441257736741330035540296096510953290497146933972256619343267948350363606486937750049963040906525098864934855171175095233829993067302945673163912400259362127026781969317691072160796335044759879524999359679597911975177692322272317416126094798475666038770864042186935485175191958234152549749687300319393518823861016995030876124079818573072830265541468056419616218855304353993195803206529794042193712781629091894976482154740431548546589500998322134282989651294388940974361490595519081614834107785937982065227409828268753745478806589073338456934834500682152136576185738348611075423690794702092792898735408851094980542459972879850318864415483680409377092031055602126685380717655325092734394965340164244854334488355700046525939900057906100605918258317828612347076200955441470437701019967561724395327782894311854952541015204936232692253619793458746374542341984442638327787411469605784067182036713589959046515898926006729146767329674258404622717455433893102144573975464210748580451267732312307531471184139553833634588776010455528361975262071739706731565056484088849274649831353181451348602959100020253453225713916692550021860502653005555526432347872365846424385693566300169096823352600320073927079736234576105181626250848339931557197686986836797122581111242136187442558246090330509911775320441145856976426121694788552223925813873721943753029315874776192936503924099636828349100110431662116624555525950425932891017049769273869280724467324193965532764655169940929959523110924873647288324326996876415277334472678789856130398167004578426535513218871202428490439877682467722180562468540889695864840627745676383741513714924755168707501887449195965114555253488240233050588552796025465838193056331835632362500604389349286727057348528282897722665228703505027352622544954995764292350917907897739352628861409444644017128069504934680849155933515324636579609684024434725887616148530684309992921971779447972245775614080123358803262588789075593448896899796772878258682339824099451895623704982676800854066807640980558097706679908396609896953403191353511409614414367226728559412892296752918534794531752249499812761102915435947842045941079034587595855460144255490746571896388345619867147777283783009630302814409753158040462332300318840941796359373824466737207338379886798382973713844626277786629389136385923939287733514818066837773855096980884212039193595500735851825598740752673533763276281876904787614976026450767140778591490504450349445061365839635205920701874903857305007508723475116377786900778746110847719678692470555103166369371023939851675201196996375900604286254742969732380610875403690321457715886619490093142417048462105209017379142072121326081813379271094703506922082286669516976246176972967305082581486045488297035448267591058973160212639861565253051665693776025669066457984095860172047446579578707184908287108510859113139704406347143612912910916122901526175270469958956365647128955360405885531520849711427980884951244247754507539780580631842004537496539524889584198828147818569262419520780654943660939546736792098509290678927597540388971415136530652855422277529145624642915077113893062441134769859200045671904046505487546752089586279035349898099816202969669508141549177040840120569953684144975587376651850381833027333369888186866978266485435182853983636276100553231216043415274347908857347629458461289418162337610953319969684014662941824226906765567684915841687293212537801985054025128603673238170513398154005067795652126222367555653419612784471221557496943017534301642789758081135838080958956530351649583632416935198850826200551980647443996966389030124603952480258583770295986009694992512184731899944981603288700259841579178762393376191781285007649541760958007234759771184443048560062368242841401174965323232182044134014971802275081844473292229502426297399713495155612815443963136259942875898427546326480841634489868131465438658929770906035280134792054223345991337847382297495135773134834706258748839208516917016578098137925629762460228360728993741347397564717991516005808088992257630961821974463472379957607961655369277240641871496696397255926260326151099739622105730275281877380634330082124372351008399504758313341321981145370455166003957449097258059505812506336127185428792152493835098661062062777127395395962395807033138073890863357712354380518321168210629469155112262998326925984851832622195942043651315218025548090474954528304338981596285681089728543341182644572233460780853838764212579131547610882739397502972909442393885473017388069216955229695765668136385705883105203979063201256343139771865294621707537481272568099474996606062448897531437227758369557468688239811699341356909469919616812646922208635625977675150758645598165336260676435320695531132048832297337499742656233806462745455661942256924415172169400033805309490459415827906823369146147193229816250405857941198640935180559186204949669101067667123578823864009311410444461799522017446530527752660460909252727843461785539975981345217034858148674977954108481360732424931694868563949771592934476257585155004098283312362121049042422063035396955064441484969691808460776747021028807999322542466067113446000713458004947526662258589505266226351203349700770609397978281256329801333088517236097138185392867456907490947060551580877271803230953092137329602447391648471857843225180794116104351148549198413190975576009484712300162677094683914468599571994300095969189175663551127095521582072519825982432137274856435011869721071156559746608268558431000666945263718838717699431179658098889916786854000397450970996090068899856036882173334490646908579148827003820672338051728773784143000971300891082340701469734006092707020097199361210241309769870499871311168696888904637584543192529491993174085665738183389607738782053405556158736618612368097427867229466747399055011780369777139193040422016565650485543063130894448046004383118641326981305282879947962781343951356541861676581176329311497886824746249975391787959346309467061734429803204649192439333519882901043860862023753206418227528473740760963832568324144144013847911973990351839314181072816146082921544152774361032798106869214201281346015660553871259173660170179799872243199174663935734839539453752682656739894881559482117760747028401626708647411192068689778276945997207447348101188220371638889658003703591040765050919910727888930527727312958183116550703042689946888375703230710402398714235609269696466247191999139006517262596487378873628726204754388254577922392907802646310151623309102247506212419867907185597403961226587782346394059109431098476710731118105226705270795688144893405349623943784192064444583679579884461011063839231870896654177861327593359074925389635107425456378178591282143510264348097758205549023359244325183736326430744602809607791826279650810927033197739496059747121691333336031734928197553355267708218022549879785332370135089516330933865347879478577490448125145683878519985108077624738165852145201071620158467336823999144534459167727321794417477352885132009753172490399514553222946935032677339748333933220737208563366189149508363255736838294631918206285786379582760241161650149148214619497732167336195981319716692673238154399677194552066037775950688742091506147154799760443333301168171501806114026141322403679847648420247397337628352992761758566734885951406386478411480860885858427295429680004683755882037102733523048910073436284390381269230834769769626164004808508812892310626645707886503749963988956401928804138391871332095654784305985683345306477569478817917696797775507323131097176299865867147666299184835701811586978971777780733681315197269077731544947608547347229660511845069234681169586295610173416419088976569629580584972385589307617850376551504270465412359894654749669620646217986158636104573743702895944521893464153649350618276125509622657734487575479624440245681066610578043754153606943715496150988150635351155507669422228181348056086755241606701782081334658546417772917008001613378950151167780089572087277282280356190839867115078679142036481307860621074188747794091170712888243891638053620862546194658014176975307839848193760171897772249181469849059531597058776668283810743228777300065388209951877393506361459750642714821311175509634886876309680802195316551546488735650672912193340972284833157859369008241507900700478142525719230157546343079476983999336526174908172527134862841851081681190278001915413893309353201887429912633851840997605363858259359404444351500276610506638792424575098448517118921908671606878209802466911676761008135242425246027998613133002532872139286816614806429437105286059822693294913439122177996746962672973278834250519375618508119105694983002833991107928557932007235710272433198062912000339883627521373953364325708869896807809053297643038632543162286125927874604612279563570617619816776689988795316652814041674874520331025425253795023844581698057571854641618398012005378356423900624482666524220176199206552837794873016937521895664799506142647684560877736581583263422199442582734827343763246803077770629390944617040799712803830765964731333416695954135790742898714695967040886322585863977170743160910201752200341621009791588181015789935416979412528398674594381408155046406677166047153894222065891926004121976359333318622308123453534351714961825446178875468285870835149190147419855211951921625130622225762232339794129746933982132570446400065133023822546265144805780185907080700203008673121650391756738284665131749441869631426302680868578427331497197812158225699780081370186862752000188480688125694228536861203371684525188815263533938468629786247362357481446222464941637516740022007458361260579269768713414789113024869781047761882494555892339579428557279881960820768816651770596752205833530106049543230121733110569370912545515888800434292636827763995011936167243196803792450641324331894328076742295379674824193275389944098447703915992507687394314581341337145391399311145206571006892468913280524980068536902102624414725378167777097223469496249274410293416274937436717978521775407456685977835061644016395386088159282110155811249296807764969780940859529681225801105062844526621825608754296016800004227872106828856325258190664780798043537301215823940670322232428528125342162530134523071344764187682906777552755597704476419300555507270555542328271449702584606707820951361298633513894299734394075630297903584867824099535841353755044327286319795066968004597093765444447556377781214861342279684661921240301806563054054890206557799744851798120117912482581340138854386098926859076936624775850082242224827702758302366635015300768868383803620301649266186260147679833277088983902578912631174991424493865449572930671667518237673822188371694550185838605751391919847214651437717961845659788468596113608202036857605577996500057174994005694174194617971800901918926787015032353552880097690387364563494102529527403489800064582390501191350076740304388136968764429235340853107415141015709775587861631033953780613951342049649691051845360945871297278454318897607124546413716169246746119818285870311122257815960596315235616133117028418798763736664685835779396235012290310770281116031658636767068930845994632929046535072686859619880371710688757362308425177999651604818359426648934823647115429424262070728835727156201375121818081527469047391992391853846317613046474580064287005716938193286540464509173387205713419637009497524861038267864864456203337452389209603240117271764772086093425001397759545841418373617290804005995440299197257313913038717896327623745973285449733870079587446453225038646599662951544757395876204518904303923487844198050821475682603070215720776693923119076885074669940735348251486824186062470030341939866157587374737331133124864641587486576293607933159716072420767625971129863455362048763799351915882314911905451051616430363228248724794398951173660264788686033314342880313043923314980295490327415832788853043600813515176714933457419424973505016559922791159534388277364957321961778423933222741138166944497461245237510489417504516714754350807003022571531340064751927972169291109883149644573288688656746686929500345994100485919349245472206513627985021805155726147202549138584588016740950069018583401540129302258852334534249906182472189245204916330098364752067884755305137798219711865254082641434744810284425827260892120554593168430366805172772229492881412214885895014749988419230807514830297096613930732787362381057253603033515585565314954466574425988084668898387491529240951719515590526757407703218514328715541413532160786673750117168517657568516114056447543812171181552077744921245690253209200538410969980016200416368979324830293233052550331227573316580374123637881281243525013042282733598790294051367009205995137544802978591313053539525466384972394920281363899334937812652432006767518158370256540836878215418551588196641011154183163589721197438798616297895709746218019550159083906507682467990499337533120587779491080788231609488781960059148654984670430899806947090940859492063517723247621743517211606842228219868409216322471323380043382290520226957157301576193027461107031585942502689017291339501252365235786447319541081752922907969204086599487340986250151387154207802608204299834541588502463890580927875019658158859176930377150507692716564538867934652069140479268920806873424951286844639816965644870961904752315164630378309083766063039488405909952614023735272978556185563874799556428441195650011376352761264753398731358613333637599601127696994574717193955285845707477817410967569106549565572358828309538209514896546674305289717258223762085822043082506181650901542607161687373154567802235595932930010692033210142894191852068583468916709965169206399828052935779724156342060546595420525545101355656728122771306049147994626999320738663419677305202446815875010355354748880620516350936513897176057361301221761291634303720014748857049390676458367391566430471966814472173096307306867198365790220458734055226733404780787710310360318015130674260017563393869818084105086658212975615456356031959045766994606594157441343953136285591006768563027137740519336720917121808187286324298561034646620187968809693598740001766782739273114525775590409138036169811098492183646542313109366713044078691905554781184943274657273011274089366548436699462270143641871250706721981812929096745838932051216033241092888674282092067484664553327069205655458964635619078266630076112920257796191444158554376872213491208801137104811067147832217220674470172667286170967508793894131688061998907779220041003832849614452072111875250376911587418188931849081750993018308269849242725817148557426295523049028068685277686715832095355096266798939600617557957476303712000684558753809622303269482162322174692899677984383769297744458334057329703432009813149933978886459664909496351185465058675363294183036302751607871193760695663895259088070507359269614166709316589799607227066250882682699536332669958576266138841099737465901773193851785554814647745494197438784792997057409601456096590195415972368648305867355234291613810095839238161953371031971400788862262607421026178740094028617395136337370036889958367828333682659665450574083561493733517174706859809969532184638899804232143407451177778213516644610467502464674506531824379498755418683201538003959223904340090035057464885270071383260684943052601424323283544812930801854162274650653710647485188610250041526817803128839368816878136710004167775473242169373849454149025602821218204027428266470892827712347557109933584275458806672931139149759032349894987057379710023991470078840454932557792424227824598553565265455041781592355701111612747996537058972273075289050219521974481835027537678080694027569054596457015812804207655361372291137312393988800734601735595446817362745357845792715856047314682738234135076985267876887148530318980271636002908017266640430927367612114878592547748282719296533135457775245753263924759880696201243891521551169155245883040442007418427441654249415347780250154755134744445290341075046400291724401283603226995305838257808684470478557528101337313906909126802021410908154079774260777616952163168287044981739200777786350432513692618558089272488279084689283360581191604399967877163948474974198311218938232762602646971531920687728889286917854668590442978401863221695286245287785437804208308851891385486116374209859545881903162727963353672833187330670086074591584864111416868290059013609566742847224001070024543531052181644127995172027531059855908748539845291048562003795101735195911617731742059797652134962362774624079090462758450507417832290826933370982426333713997962728174763006610075945571266315246744636076630754210586642617611982114399298720080093337118625985182162311555982428281639058235551344565065080858151190230015586111942073185989578353513515865098744829126602317743100694079652328900410908411194515142967215214813251009424153584632022840012686371461225873043516493015531905346321626751727857349014629207451856777212528202642765941871974988569500881608671347829282214395088814624460938481084538598446534075968322982645062263296691528316241145966460171917185275498560794586838474263627335250016633077163157156528168838252332861444155819602829260089703959487540363487243007814823879818982855779915983689662932154868634128317957682663420415059270920498199453926853413770836302971526398693402244910144499352110676789014598027324313808452272351989333647305806030815978232717168846415945357721788316251327991176644587091116097091581879781932389742353686681568024221736792393511767866246173042596229572886585423534669090704668762124157895476425429998294762822365074404124086441995355271457329294844491062792037943989149810939937055820802819118421544013855803080079094288675799595599669347936702969793732946667731882772483560342410472718277379477011084415491433595616277244771374272843491260230069069996089505021627361833357103485346627161031997035207825170484617422290845735450783055247660264432870377410835089241053870838650379878778140976208101381941304302773894945315645595094952473986287466499470873031111164276322657067836682826270499733274238584196011408505238251479520053937883621933712327060061683726581227601943735438489641682648304859463484179158806007196364632447278195843529602375870454759662885383850734818529159277235736115609573694626909504798617981390251660313769724434290974434061140108298432150342884765880195045300900595029391453177825417539084607647877139154837164412073331314370794216273159805153380094105751615018597431183899893329892249732644198466136931146651247157680820581939718297775970045623336591335642445640830833820712442048708761053596457376781509674995856914211704445236613263299019957016726538439490910936163544705599423712695593549936056124257088001667242757349474385793300595741631176681600731968201923230994879643837130082250561906310020347864348771684975363759124142994207624460361220512493463874606230084733477882112905449145844066393641268686007150011571512897272378808502788508294020333214521902474880094245479685582784140109801173151641684050269263879116516147860592228151461547170441099799428861840099136462148670727601365803249752567531127527001161768846646997963605324373217725940800460386537074952511956663806585681941103983692102221090347955212604147576663786868865741760029051851690899295548529707975905420252571686656048627388083569191085094597592894876880910366730260543534735377450981863108287371168983196206185117267614179557996611128687268691523732441191163259876986222852320352598262642327312749493898115599981887364517107992966642430656027862991983985223935976176275174805179227090133785842236999512077215097558101931760695825219466718866528264759610117608451518640677956402257114495366493567802180583562977284792081483801992154873386995287068850957594476632633544466363028590493942426335765501280845434395272915446006356341565324628842086233887403790138648205035980680570077119939031332560451118574146992828978376842068484365283676256455735489632653009650707239495567399488350161562227782988764456516726290671415625112279292756758845525934767812075800061604582545101546384909911238339401524638646708516199960865198709908300052050491303647550520784076597954296882770840021402450434228426335502267262186314183186558179534482341767468966631834641892902168837514407357992080667682856201588387382220752406211134015343771852129819499997879338570106846713879300523363653138213704138665771080477415866396851471759832355540972601469493114168846395386630043028469714202978255730334013850629614200424864491056903893746488888650936899573614715957390265066234568008402418561445448459681218903423372884547973265732657431780377758891189856129494068192968791990628313617732413594256889481442861469839259356598847146489450736670633933903968735575685940429112311065953321591830790363045158948718948413411478451345238290469018378407342755803742850683701181266305965246494207632295878645908693964486291005462621847233297732407545403859939865898439836592004917379503536401260919718374310366399871610051690816951703423575447414994203923632483337214978556303913284440322176386048244226679609805257709460008048632196203212969623612159950079776262691404300202438968788494878551201108695968078603592895268112033990082226001402212158199091459345836457927163598301401418795526822243425827260135978142907799138077937490482848401642142012269857235899504822886743804282730556277453246621348673357846061550386630560781933333714773993833023509232002953413535193113173122018479841914982714730747199940424488001931810899386228540772400499478014299784466245935209208297478789123863729094029932770333767242379098951725825477996294403839356903376216046117427014562913007506543598191683452185501002914277898874433806797488395098312326675305393155369854285452139445514570082883078396558347085681873697846714795466391310281261790595821334651861557318443248779047200892719324712015059209224725632716005860517003566623895420049898808960424950961994619620430022758298988970000983708927493215862559835370463834539333529181155430602329546456533011750086319204447770375890574967493466963651006784191071944234868843119533107858153603716760245415152615567142358770218753398974107521806082229142486809840015173584564361114660410648159975182401480902357404384807040021683041585219913385175803710857424932623338085760430412562498138397089151680698103996566731972048864756573430820966398026634560437623109429884146575955634420634096644920322472017839177643408069732008360389248151898395565596352260978543412377152973780026748256927747028705218397976026004546822207743866057007032931966919818115598632543738887455924522842097063989604396666002094793849565088690916064217256392419298858671391696326159173898880215163660881181429277190407218992910109374798447065063459796933906898934917586005114208594693627416925695712390640513441338900031512316351886630941017836740106962696034543893367762160360395448922146204847892493793120076160726112361070927220565168947904325014076246173914917211934588735711427255520295771135154517103888134752485921796068766867692472801203188242984054130596480934797497144574658911057012944014103578997759766304061705591490659996153685301005270668006019789143953482938679812409332288064522251165816430083788893789015297017530495572559817465945277557508355374183209035295774876327392476479407482651821366731063744243441900255139086804097066288983902224241477709870269145876929170817996983409661243686493596816599234857333982505390822916112865026609799629875592830629984549659493890577986115491688282709906974447383271458231106779256231140825319735690714387382254666520553093322520325726892512470293394240476817244649708822607862303220057772173458999476875650201789235160732556975836328731664204723166494425911185456103823770193883569483812470984712626268648351935814163192185442840545213798355340980578411096854728881548718539883645400711346780230039448204933479243365114104528271104819176264546237107780972089770189140624968214888606463860162875625707738340294319610607778924258373025059401445645560398995514870318380040100020439864874217665527277575421855490750154066881933241097752948747195239037919184562604979010918084280532961284372282033166434080229215712200627271105209521704893445368416883551571097528187601461828415629869681153865793014036276880439483724082457707948835929393841403482907530041558082517416546217448227258050791755777428746774772410609233296417314308806363627000329319890587451690771999488331292963448718129921017575319499329817675099737241324338814215098815566145511342952926569953117952181256633083114034036017798189596294660597052417420308919793955747737813886777859814560855980652042136520226848236367479165145411843640747637892638838639128440294113446232929051489624652614998968356015999477524111645310580853760275600885855014495631868138599197109888474556087508402916995949653331914193860141291296676493610316774211452756548195971777659710584489286507281633408387045578522607648058177325051331030849841419715714224855309788121921231046897919725970317301727983919177114357332997777957145551744792733973592808341073109511893944207768752900046569993325293133125764315573097488923893962033795040245767636225784145225165140905238897876255299316283639267875238047348775903284084203372357307724737436639016370355079505376703501327106286319918934420582115701730752916357715327017949905565857068325120229098825575056282637617769240911183424216715497850192176468562511713346174712305687956826968421228895072877165672779679987755629808954979708786473758799210098109102874510815218836511112214522772797146306885203702527171369929446810487189969186169600506630367544652140331185006712250219035355138053713964687509558376660047810396404997715506480517653368193044160086797989277132475546747925259066960242796115216541135940133447561080960206833474489683919934661516411903502593476501000727158261086191609707778386463929006588206453349035667746232958803264040047317522805294362862352318575509624202571813162553732023165639716833137680768791148537267233462324963183075271424850951401387113137270546745208443200385147561787799375338846217975324088495966664851822558545463025931902201952391405414011149283600945410762019010897171469433818523826023141992392687806569041026319557749439960792914650947195734208732468129819055502430564103574958335477718606531951839541965710970432863838591502618508398467710813175394912693298887770959649757061917690525859591029385362967092922440851059406930689152458149991405551264198573764570912636870408779478748279550976235023989600066940642428876707331845938557352423553609507283178868365862291264719865156680915448950811705064579320512845653835384296641943329350484686720913170861538883184244099159908197345911073792207262573332336366930789316681682718197728728968430362008669350511051596431334086115509136082371009260352798308038328119087692237131073062653227227919895110554604508618812588615658147605027360505182461579540725974193660712070927625791445406899390467298831249672257174275433850317880361469427227478187646744390582473349813572653183227548741746624022856565263536110159773111224174020599842110305917134910506058409096249881718358916734428688448818400555455387169943702194251758477247011146395829352081821626011293207931917214187166555964428981011832238371925819102916131126360160443245435114074888591145227963585506167129186266553375076146712794915066236306225397441054034679781655405372658063732753509505186791741588127216066876399386774393067354334455970532870170368758403170378284233710249460743236111176982894214417521483628545041563734463995835543078834656933248124142853286995182164502486866096622500654263427372032821395272585762888595016421951447406950978337957036172315672886710526030853289219182968431865883857413384130504184162302208944290825632028078491757698842764584069619149535788961291433159202960017043901829833663087960289101369286773532821909753617541263524770127095399289423302125858415886784047234879131822185998357334308605543819891138193922384998040605224135067162787136158164565927718712048490751649962138513690094473492053318860326449935967994366923055922771811933799588626150842228491458236372874814163769931480615170718249575826589045036681111083781053167805222177388986386037026991312175009284518341592414017085274939674739214153858776725685423448235901767494079478744507865832525585740974719612770868128582431829078837168049757667260751237803215785754635089871215572582047951645325743494997455299606297025322686980329964976104020831222970401423319649883816709774936896022897916462926073171587395365915236727145383837678976726668885286611773863930077180068920460029430802922912619813657230763878797136139540192989291552420929569036242537394199063205767984898199826943109734327433032362679721479329135968711858064542932925593888686822701459832802254881483973809228706265500979535692549937214475618854183095592942942506746295595289572319784009277102463440080561334918471291755047181560829088799768723424260227382613484195940318878617389352637587298586050444111889590182916285924506033679660551460256993982699882089304304212258387610372846301308525252705416022190556826583818557160628758899684561201072445345601560285588962858267256971846684423620789134895383834084620495677637353842419302538086730314879962744060751047132222323400908422474396086194243025485271818212169466876365347957615187936424508271567533099235414108102016293364931296545557131281539637066796681181169320593943080196554590386481754900331214151184319445137937712722091556425561695425728196465207167485062751373779857847209585691657278003622965353815476598253904422544849297123179407581116536823610705722294731117072676856674994566321282142516848970742185824575247736220115950636728027299277212526921416857842094409876883066288590740417237575235306276864773973355894302162220692499363265658288548703546173421474560309030039917884824783783136720275958088738980954569202975265684729187714065886806797989374539124850546226850215075907250658525687374057967363034853863202194686236483501778072951229444281818065094041608398656524779741927156514185753725756848266715759155998868537468555085605057258677634897116627287237842295738261911290180429289311949773442150936624770302087229704742265359877685089745661232212094159036919374717658988513770789661245091484331912827886753710082442639879166923599366205423311907456303126223234097741628130669346407908912659739280984104049083923860501272914123271527903818304800688656560019307602871788450823989844160047002660317249849699454037438290273814431041345249112075077244020123890725531264785945549003645446268941596828107909576923406914866810852712587351759124468581645290367682266333093365151277512176468133014046428622999388273145980646543683815027205327047169773709535234474608416631136826115758026808262235007933602243194747446769559025569265104522595130949071657511380772605372911065254556189878096196259973122922992056240968281681134031966135341634567345423303646863980758250329790774845629321130080763191043213303489021709263350073293029657669607341766034001049398370109482554551213808811647786921513446718835875875498571309501974737046375704599689826550365726352084252708871743029041687194447264102255534725480714278245393358949421221444945680029246164738706752653989495932654957463200645609862101562352638098207238276971112680747125877512808773795166376391250944794379912972080977171322126954066439594067812927125685475194628890234902894467458708555564985965214848663292238766506845399933767416901046350394403117451578164943687708118077233487287055615550758197983963481350837771666366205606651075781739323455226498774410355627641582310528047155697273710719317632228664964074813297127665428553722921111398919565939558929765919707971203443801339195051620446778617775495847679213226451803518313089478979894070390773326693475014373594878168744003236292510885256935453929690332983795797718697860655720297836006984356246962614878516466170210915382282029518236264039314477922386781922247733471842591799381411304072465836078115636850319133940737080259776618826660770144718167273595291326351647970722276421173211409350818364588743575343885748386830754600036274085537388640679350069774185836087586988832909356177748180546971879674895248751234462890587355538770201958702878414361939198819874706108263284512101315654144133419566422138526068789045205063313922503793060163265963971124193954963318439293984972231424427791386010149010650799251976162579945875150334189781890295700095387465076696674674845597313144142705578233462077459381639586328159140504069979750039649086429409982166639427609248495740994658614822182028229477029392291551953243911363825511449722595378573493945464989420330764929325562074017282431596730962733390185555257539528761690375612326994335488924071071493646467202345055269226973923478448755843841446395650107691460217580228789094433396923849804977366253879816527061589798338696361193721768238133168151924086694204112459535085386637912536157638830638055176377575733654564910220412924157852033307452784134872126288604418379158737716637824867974218836912932423590258916704372238074845462584591838096440788879148275460780150994731563731473721152562504640243590268441544279526116989623794689196861522707144835527582636988771493866519921271485226121981991611117222142331032784523132453582831129467882814487489103252621716961537405532509279018325144590037423766332841429441603534760660507185092876824643781274188607906611552647644632053966906243743865332319436491062107994408368224491284185909028107999929052560840089869672747155232427104794266296907762236205407251345641544897963522681701119366223574567136101407201216614435846934966800227551242504601386753079566195126580353154328903470290857638062783334726010634463298588615217946398307882316173995586697948872879539123703270551383527139687373625983059188536381636373165749189002042723753022667653822599923158166162127870609960948350353418477085508917308526386499636322741958203512081291899674447360669225744453817409082960844176578685174980549855023197928907693488687195875450969514561255064890116229700744775905189884791548503195271468368796619202225076300287540116587585395852459999439022741249832790887494817944009511894190325476418428179885501694206259158487737745180811117161207417851312671929013371346331744230030192026713858067771141343326066466165364598757222379336353852076421694833464095971221564895466168921912614633069223551052426471597978776220757682664536649149517059984057283067675591869061694384324053400141734534855848242824905467004814671886213885874509656540302545660278713126752948645424087559427785903044927828357254755995608993165769235366593280931705652401387793409341614865738609205855440441847974088454961477669862600670551086236328236004235022590923777938634268460317930137919231660947542155636475285250791847794922208171217912251289197016421093885947761312786381893634964378892130049999714391005479648084468786059355670790394130203500352294018826014126442100855633560843388651587088479642060998731611250970206035540261258604748580560935683071610095066713942701182717704052999481441285159116064791932580258443796119037620577148611003724062470815471904518799700616968882458264205805034351911848719305615593437495598950130987837309703476790712297737227734511454426366937259962292505693877972300707940562081554995383433598419683865908435416599135219894784169236632422660342364629980969981874888385627183849120408860178566474945478146391499212142351082978213233318661770024378038461210951683109296991991300880159645472230406388607398636263753914083528214962240837102302954655093752785182621130382007014428078188258590081792271678911370766765953077631813423559566658902131298871013248774190867084218913319818501477428000326352104512618696279002608989356071644801924091658255916242206049291604621192745366066421194230441431928273837049305965273423367326125571166973351436561946918135781691377823879701956188249174522257204867077252081100154766715931989533921077611522506890637089391170057542714561722480054907761854898385706990437580113747151556000774613267341556181724236680134975769375598192481528301871441707731717076163249900972527917833178578956382436870933606245665265175677248263243078940850409562571449740365402375452131707889168857693850188568165827964950645174779747607486030893046410920145600398259011741457089114286662451663015114753851716583709130507124831565969876197080173592131000779618254273220437226527274347492016485393405645925953903824487239748135781070972802944643871127296890246999631487777992899267428899816608225775749724114720729951802385213418736414904356118728585042066357197242347814281671542280139115595384762586986492161655657321750644926301555091589290380621891769441723111080667483400812601449933607832275344523145646240097980029938046346533974236747147755139950879111048277420901071654082332198346719029884386565477375487920460874911080575591873131371916654718016457831073505259813604198858152002054181090170183618275486742018254923900825645755128594868682032553950679243534321692204530689492405988450586041525778984252722287610923341589233846608964942479410939616070216960963886961921077564097309180022032013563431373609575920589422452189356110546899807437832337113879129982210116854557437058769370391960165682928486849633444046954145726645754095909982517201195149315187317616811471849007362520343984847257227571247283113332688651728822502490529491416558668924191420703111664558163195861646938021668066074028177398906235345921990767963651866092117979612137319801054724711271630181719183097948078510655810522314646666828424645061145231850031096648212041765805502353791221189775637711256901708754973243453146890280277583907814861576253193903134994197226837204170732355104507910623197624770378985418940735256914518516980812709376253123228809976526734791672170093702789392749058342678489912338122124146962192732691225806895764701244730933024511851876992801766174953773206560140345458225215427619130817741458667536371823676285018800140971565727485194841507699933148465566841243638265704268339935015103385074707461914444500192262234460567534896220599045172976724902083001097033621887258413572568502268642545174318592626591782192654572673639182784973484947992424554280993353423252037314405406510486004079826364560505210877409438634399813078374452223048157503771914519512528271631273783611881177262852125030743776918343874851839818970078878583539534833784229945116975463018548234931046664305903200879757776866731982903934056333591531272529966899606834651581584011411129181379783863668280353543003469251267381340467767897858485776574580940189265602504275639162141662156508446980568630863335475009539593089657128712227152826305775191864681618523858995481483520565904545429440385247770085477208552509275517271256717045361171921009470117140894349473769738877017053288078111061158721922647201024275296945649952159502066502830377229882640523233585897330716075951035980338869356933802377053917149050197105390910776355302910477004064110470260776631395392199334762822624050011586710224630805013105465929013751877272515760647929865196484900659619435006726244564793508839543903761494297972120825729485847835513878335786962412443895103174893446646539424562508387194338302637116719325753262911320801825404243598831602322619573737625133277862498999693405849013414906364332009139471788556305804510340079588089620842935583356555650009628377255346749718324279123676120774557775025895421969169230408079632083320101074161878346179750813171761107934994483372810508209155238568641786976286993807906042414033688863882983416439433658855341682076207181970187771405007101435975526486080518274264721052838471252231306719123607071466131864242210714544298178906174586151861961424840388372574894861571237669047252852244673375873877518924880629178623367979486624290073694822642008527606929321535488348660262774335789414841839470783635088196443170758204702002639857290439946362561733330993160032237385591171447994397655058659930107994297820167502501561044698050653000239417342460851647806694206717569637547326132341079353485729177740055827052543888758953427061822145519530327434879330773282289825812069702120913390994725991757823681528875434903187311304807107347308578301246114035492857631450635476457686942139041812794732700902342510282000336877259517667682569359293190476325579015819562380497845863656548913633766401609883584313870765635277644735575167164817240094487819603822269266355836666186750758757817097411941623646937921574524933598457500507330204686557856179551121210215021032024173843735432391309361219798597372541320523283581024829430672025293023707388929859992276979273920203602197211334045731610981395811655998747827788476046569341309381294872801055454910158896374745680866533883620068926625839464129060896532491079365560544564753969131422400344946512428928967144671846138042581533482566873368725582367033626648093990509486005673088219286750885985448833226545086103474147654409257255028881976981979142965213915541194183909272062296812127476034925505187439300229163059701385824518015233607294148631759766178364963001630577177549639968019360596892142415833251591397130341719714285867767968013784818940641325929909651772469043225210913687771405385822097958141878677278807954016497087644214669337288645517361029003659056083416667733436715096591495439638092076672909757994043572033342997683192376705088946939209120046575365935280348812350700414259428207181061673248268697411329863604124717363208655900196259262455183335803765158233182586227217777446336411300734986964575650595301207316542595476458609068435506119282925872692277571353900869002153185873924782040185059661034428485275667892725551571127983954534522265166769621623186763353670161684462911160892712302467740424273094631020583138737375952380571231935684819106849123222069255438123191270445592721778149866434102511516544751344424344747340288781604881278388583874497763879406322128958850126166238420075679673426917648625491658433642642111839444613154327095421343903940473392325993675239045896410844208591348427986192358879544847577340990867862485436053365563186794184994205252854255223245488412981117701563224490787211150827336959242160166834327689574649707206138515722044135999964034861027924587332458217018783117182958062555973087401723158184567100378336024447799959338607219239925158362557385674038882618919420484579239977076293353323897868717851754186262784870670640146927825203726407652554849847905180812132753992758501416980599698400426033366541319696033500556999034652010991510533709339075151175415472754386061772362972966430540229599321745678073664885607293080428210423791356946856621424343881672182292620710324020190345618912252141336419947087910607875640007186950899926805307695151024125394164987412083240116476703479373550078672608343371056145465641616268397609375475024695543814556938275447281279897223022505446131052071160131903948517322659898215859213220781471616567650481886068435342299288707753580159672200971389612170323163183555851376966201424598313954273557566203218837869400060536260057565056563673699861746323512177546364065878320376441141967076562425037439020527485883531634297540571091155025462862311517160333492178765309111680626098015855727421936240970308160590359323397176161598130099804384209985565248942530886845307059285780839437627098603100342552358434500774052840087041707999993988715483972838586451281653455560449011064878640516498372538476416178945861535148649196702497768635271057074890674969351041142713799977028531910859208669351743392110636098877235091655118149695732140185292691808469665128672034779377399462457539651808956631848464566723605241203927065047053101662097537169357795681152686503862269661284462754553801315553307799665573139640937256194205433290128737422130121829959634558443697162647587641949728806672364769399799314929071664193631535825076973440678226086859721744540472736660892539382719879028088374397368375142184997968140988745020089107978676892875205743861717002780180730762623909503537716752601573875148936490008133763479705315309389117892826005241143092626221099805405932960595179882940916063676323702170133551370786236304462615438559635527312051755190582016239165510161343111875270257481747397586612459984514885786782275001424012134764131734077715681311169574988010345120669074787470716681046071180488934461122385196223850376185519033574844840874849533583058865059934449455133195327671761881007625232428273032161219338155948486907882148547536873755031285447076365780330328635477920129051386546536961696802304393890816631267799862629106276132328385912455867675244625935640328524654801990530715087789766743983883838854181821926873709889963293664615050982143547293963449645718800174579480085201564555892163169549806328950879817912750481935512430591715932093899008427971756230582005125654296967899054571589817972206488831545558209997071162880399748846960287883199017883720888081387563284874324303626751410825297063731384839182328766255447687053018489937717952257036440704800240097874773763858034092751403887059086467665187050902357240058587482742466873248308313401792549798316852760570504749502977983285549699573094336983620900994750064411667846619859207689814316466974471709476643147999578295216461011623969768476537906832203830844700731388418748263392495352410408177475879510369265026651775180686694073494564961725813692857047054025387703542337116801687522392187145281988034616092745516907470761590760030485916082478335920938407963738085518592791257839667703758551955477781604840446381852582475515341358391758124600389049099366914100792038486228807101902233227228377716955306138428393614330958497166334541727121153052470840935588627115958832354962325693833430853024825212129387178987009006134263929771387997082615361939461620054987834025576438999091605727147735833676298381753961082995534976347748000626749854905595704386711445833253716157629670080703328226337757333712494237542331372292395076455202567702667815270943051800272724840550269437558481959678531572467537803087412597105103928358677926294848406299605124197570613362317297439442491842661412673080063666662176726886805166378292498712786656028725284916450158665155500394179401397544139575056152565522172731926987376834406396102749463743125105982356872065578573150494450372107142602531937409674203349002166686244984076554292448431821242851501229535208866629427305136152100176568066945786667768762316715041825693705901714039137539971092247979728604780730762775971959263971644426585592003801703921508359145472137044597292250623938300982051285334323609094099939252023126197625705111176645276718624285106857145542853081247250873679451535942921043694886344971463490531100867052790603119098277501563209620755514286830565244614632143725305388683041157471804210798638093312760907573404084124247106986738732558322858184743427664247799187474535286461370222714278906525300675708015377952345694014252015154292021079251652493017734973009146210739099217821168694553668627028698007065790826767157938830754946289063668178414804756289899447500099046302199637203601284655606037949789279216027836690764936573898435297279761647445003508879190665717758413261531524996984776538138651339251275398316800591805907768475349721061048386491403734350166155893378511987785924400469217866030701060937188784876066633659318099139140821419951467725670950618714594737307481203631094423769870408205966451078408372439663427843759552097666663163791313518784490794623283213004076425215421637605138616267384787879622623399334354146033239771151130253461295496197603391455422588738626631810988217340308026453434071319060853326078606805658679632595340756574721751255078490875218439280836791555130982263797373183670965966657009963730186251979578942093945109372246564690348697689811424772358880309741916744556880851313340712600686841946977882637089892976760811363660552651068969338029098130007930847330547659033858031314653963970782472830551527696922608544915511305907889248167013587262060645974156400926991801246832088106694479722520615017736509335571089422653896728488052894734160885925746735032042877209486374212093010637527814518832246245794544047006327823982425937026057471622370775674836233109634075174227133992705716290712107073276813633401725222870097024713990699113740480145867832849077977279838200102525346091589151012370961025401421276491428727837309242900710450776500121413843495730325936839035589226069469914845650955683005082412013440028031264963770576810735707247196225848211705615557778612423414356268615280176881306771955204470799073590303537375314850941827612865350339268262370185428149900484719073447717705806245086785550507836944072548831104267903224841729676979744538221642255579732879778308801165353295945510089141424388514675907410921338643836002975763749648745820042875605386562716771198470530611682371061880151539838305258901057364467585865162392422443895892394997256256107982269389105042768885380814479238936895251508105227880491609815153952305023031177647767256393274591547245207079791174080630008652200043643925457949252473180991185514170494210126683397117421417317630998205977507847531571205099440767733188130474183145446987682783401641256605826454699164229761381687883847832420108998695832126494862791475272750049901220680301144510685657057092499512925847894757011070638295558085528027458833371577560094932740608531995400099596034988207262690050983890082649186579285485240205919294231821666072362065793359196757113321315383962028443180825901994190394744865251885372384165801771824551049605115243488802545856594412908702251105290677081243998639927878461326106034232437085685908548650474904374159642201524180856332645359306594536988825815821037860916877450247040466358833428852679116242620847661788930267317044612159471094784143622314415301350784339483275601005929982147165482748168572037837600687184710527327053877483032725082728753145663887608099498364498794495281028788035956661478544997840507809737949838420230753323909212462378172399695757253837045759724266679194989278736770982024193177637696098704085404209235828388752765847538843569506301642602150689746139239699213018995281738781226721915355148575307011207046446084423689841670199128547612094882113871459708104032176981885809793561502424307862273699820547383696912120011323790788670814547331905066793978495766147170413037161551493795807925913771283434235065070291163022596454238851235370476805242838976978947532150873435786473745819230155605083214067238580265950872314383786529197190593461591559797351601331409360513194950401200488343372697649213857074335200322930499383957695958382346788662369208450728696386350424750529045721118755945983029985731191626796325025346830549802487275766768097989534032713143453401275265448010336706786019631088300653625384111813434554560222611953935596694521681823198778421261209132799982374383796804488716019309797187258406091964774581248007605547018520095776180860998334108350305536068967911452262992873022526764646166024423936325625880013432519651969810286306763500339479655924421772669420075989232838333856329714580879037070116677283890980000052723690077079283630292294868527978678716052953364725658277098409865101673447239370634160695761401025081800722037066827242810113359605932337399647120553874089265321924928190672284658814498841136964054653758410420173799425816654314302011087887668759729774923204650189421647353514174166689599294451752819624040683996429326028766854754530095066701029610009566279121023537303884425867190380866211309686849504187522994926954422110815875839685250183790282528659783529766220073862985845803461255826983552933662959079671265473044049090003813147465412739294134943898999022848054310466440946725558239963802275065593700625031318090377933910740772632901260276820372155739190648192570507036303656736164980485157388276906627030938971313306433189574035199443248422722832443486513147699703860008869562952458652583885628104349334418351009048556955004504482544814160879459556945460099476383593301259346969183548505562745459500928706988770773533868568707289385465423067470708234286913782413094962434435893077114808040425100549640727645449243211833015085255585875109262578043021891826396364282727660192827793591216636901158893302448995547612745525951747749390312033864455267284458072394098934531366831379353512828037813760760906215259377229506596605917462047123385505337031982251214852573340936575410588689259004273139858881867237574120463219024817944433615515648260123945082133772777579224976464168894648427272651266503007671643873863818346160926492084660166336179103295465155592936717620730144023022756268770221919600740591762526151443229479519142346859896013346407105842410661011517240359093682430125283304405200995324247139809459931507115892323189261151072813725365516162800923162394601893383475448832179851155622552283952752056125310345531636367087284640945304141706652433129017341638304514242544219637238133233322453240263536246121045726221918651451545163525425674589276264523729198731121042325892887182975831375884875251564719571497152056967705357343556067251703036915967146665431141521167472107090520364219694488102828493912555639894190560628893273610386985222870009759806889568368812347741770674114249808187020220134933986143220213065733402828296080080854401357674291642352810166219061417604878825928533949900917930428661986266753128122622084822776181905425184913565856308184843790538331082193667932652417008337223613952112220587180414967909435909337496620836023518890074362216921960664580303602110209846232222876405330089883070977559916660856940582269775625256687543365610285434682690196012009319354925168677951953372428460751212519614077650611700541252510421634570641751471184869418348118799663214268535038569307920762368306165866433557558029814218700891693027046474969563349198297891750654754044520232105994686978282441587838659938264472522610095978942737847225677942684722951741719591036818840643203228373937875588923937313217369620089590766326561486681164858865312083669144637961346719625627530680338305018739566940117947046007129694835449400957452280084343812847676406163820688811345931431971175284062828955447398665561472394996683143546162583028658283118858369958436239784800268389702029773858361570864454340412405730547638597322391221870720250316477382159232349865259580498741144642369702328092438726765820622163272243709701537586341167801869461222364517721331130066378943027772415100643121174206182510093124934859428343123935234866615946819207191371829432365841356890142541447221763117794762833941236474025972092138553495964297357752788085125660793060502467796510471167392141519927921077658841195005503567922043804329362124705635329894669493160363795299584251146912471828451178546955596431332237684665829658060323934293168473709212687851208977890560578602580361066282371640249183400193738231646298835349140122022017358430083741588025936279531258442862354003050093751767436787510926367733895611441178685834270422654665398133411045106131878207475117551103175420230535047755669272970261346716694701895691648120392949297152461305493032959556717176994675757559622716740333560999576263742423801808377571565840445953713359071420580705443909087741256260048047652019021502019803877296737647655745041447879809194599409525889391498366643890309134121766799476891302129348383311529205993596281760532300100426748880232080471336798204618341665834271222084746008312644159003633642309428383701113497712904900764377319212679275074418202123273803128942943065441029967896924875365218185686268169612628135549174780221353524976820035249988674573455681407157257799948888909756733729385720041509048162200564419879708673668486723253432498081252162089438256757595775415823886127269722656713431105655621858966587820212722486679074070989774535501572059514478488016356209876475740517175727324784617570289700231388494818900398809325362305498889329418381522227576986901383977683786873661816323157577563936965303000694814843491322863073812874997672382075255617884937019029413029050190434863222259847871691585310649139230585570197305669644993370026129816752399496075997771388966261695780861534897337948778228205174501960287986568793658957625464974098388491275176722032918167006879980485035228952001037517681865406160644121013984353405587188328175935867017736534413083510620524166723139858823817316650851737247017910049861396723928358534600400591340727237864690592345623022526261666823581233626964391546337417597165181168855798384676349660811738901910252121722452448468971294227463610561411933077564525988158188274758226196278526845248619285911660264335933729674027173484386306716721453059445880867096957946341940642822337745764831672639814290475026028192252807286337340256385415175974276780352186595452102987208928557722672171030311455711275459349813795360475670276999215483690774202319472613178761118668653280674146370423375329768815192371226163724886768233372255804674145422089906182581449984164690731770459168670925727931283326456427539188734927581160005894052171904763461185564548276080705674914716178356092382123672167785125490408100395073712296220275082682183390472297219843171454646537351039111918226340363795826434116929907554482586886808988854719411887671455745065438018292195516441636603071193406938467478124729533849749911533841632713651349481425609960999847863956938700888463533085906272283226409423636074514850269272136528591859061609302293693107036708507988065809844405704666898884189779526296246628779935191078996467268619230615725959422800970249083869729763112775313907358883490662822912950673331116857825365664742074871214105602199321896622696215116867752848656588550967668352311496564987423962573239461201351386249244968403904930054287257176122218112253517344886690013256714329431446833868178028489025343218383251799901191329390060930795171409881621774794155750767343314669197546524397101933881053556564990411090072792445372013103678346156890153427047833974593808600658316345857177565638189985452706519641016204003680144165806970243435332960608026382152418614829113312105569961774987411047362912122806921847990404772060231099157752162132029567780436473423057011415586112360289916641022800589003440526947998891949010356071262166716470329357419599490429978421470730037563844516068342273921466858095939064769343356195535433315437119058964836954232696296735072047203624488283420103001982691022247252171881521150819995540570374202668104613885166746551930239166347002074507801228816254722322566844915242285119159517995924611519729746558578660948675022478695720647532943865472288777230390513186409998408428545066559254717847060038987730586196838261430255305856097462907232142104709005976953525080059445531234768489093882252776938669308142973900605936306660048439056594978675989014069568175394691082314973514139663999063515271182030812266149219265244984556151749229702656342138101749582811221228778450693103922817289666657362283449859437127590466302481634282203316242353176885882627178250316708246155486138093942167078479487364336173456381412254513847674837391842563340418846376313730435918413044988979947372894563266574803471382661096557252441814329898086717388347962734658119782741896358346023034400401926678861890590756879610043759729270697235721579089309534102863294698777702857965743434717001374181668145836836575747048419029508125955141725077512726785593087124606122402708193821602521374613709510223542833240478564594790459933694640679202862287957446775719339966998174754553458299762301658825156969617839009034272761436669038034452910884361297367724056076192726911876215206685129728928942083777526494973213073308457483141335506850976699236147962033595482115928889100948829787874872801661238518083751713372821913906229790386947871924352022972584044028851855443392766133900004570928076745732275280913986423008754050689888041090743918124326807867233908742264225094813616341693537754214117046640492298886667950930035278096204084253161351283321004820308416506239232351398949230721258909001072400363838387104566988637188869435246800673961367878676640260475281050172590909023160034428905464982917851035861060410649763417290055574485565958354884193540752475227885957245659354892724615132922279915308795253603974568482515878198345542853481638039556040420112200318925160960007768763117654440305298280278236015107277240947286120918395917541665311621992450359950868462662494140184941061037524294133795274905561698815214816045959791473882363452859943722941938945278312746216554484365854930246640871964897035728003333617081153105995266781097833802874803403064889918733714085885075360891319046514349334888089451348064573278604614571674567237479581555363410778564720625099002949399245373523877217000174233540801658138115262280035160339612726864401908480914934602829948010749896736740457176289241220642454768047857000241251513947285976626617889383437189678687660476288653489646014065795349015315857915361648240114691829212100678115779741974342858304660702750625211458180055578732601292028998845165809340101229375502321168996920088587245464821967082903925496396537813838112117231252071806156349244786856037090683584421400882288908375545790534378361093865356949694962657477664489402655343236004276208592992480198929286914959755548404948058449931896558143635451057632791201568792494849569786865327305332032263326200826037314639657784097366985080598217875191919025418115389342242805156450547709051406506327891334781139508696528146665018225215841632251644570122842375938207170694649910135651438776595411873137915390863599821201731125728765812980338390821674621345818215290197846065799298708951142716727421500909823149909369388542550819472280479366969618476881483342180637731931725990857114749886406765097462906182751643065546403353496011206269557370105762216747801694710288295611277795057729113147178786619888463434154837435066128851409391137464706411404336014421986843630636513835891076863564090513951062805703217608210196958974130550740517931964356439276856342214759171985393911681347871934500585760058402140643356041542656436313248673678722844174359754783718900214210980527758889377214613463602031474607438930091777407696896814704422121078102820451079861846316563840397988710464034708747348651858327784420955661823545922596851165554439517950356476954253750515168807536952196454465579231183696164683421195727372686478846129855536191864088881330218095020305704978567109750349848173242290648992723097958377671010094316110266238302939708214383429931765051688134549566268338054300721813173410792646228189623318746680966780301167161517030589971433862499539444225661636183075400740108491090081721019565185520234844525499486203959899354660988731142865458565074080095947387217184704225418536083641237877209827546735658725588631875762278775909190388177825221552921734005841337185467961799328832325625279898919706653285470533774856573241126369489124789531865273432943773567110307529614669254542531628386303885361333946627504921334617222642922177471840221669640777437746627082365389870739352825080931580859998900402297882351888851797127484384530961554156236537939355439388278194678615040285279702378886699011228323606959767967252383412668408619469206108071422161565590424894505786345209558966079950056905135920919403662094453454409306783659834913685549871716980667528994553899356112547271042699425411136152767838516777882294423833192885255969663193829023286316863252991744608611437833285476280883183081662064138091485618088778729561070503071309730156711964115410466107583352892266097931663964841653853149052913407384597108544468551649626801100966440527180617198057565932878028680963132424205022737565505507282434373557915517257602212403375832438036195971763005372999220823671959507323984656874135370955192731001717324799604478658387584988458757589813793449939815783523700397687197462652426511628155696421735096392299751549186739774720125729249853881100616189214383283076202520523416833634714898066064713455723435168463327750389329337366294544379195828279446869822656137184323537218305937843782066151907571108831832856622878838963996939792563997789636869407271724363006569285398252928017506834164070128210856299862565591978739730136103331971928362452161531292163969643406240788174602437998433123616297409819359467384587610068819516352798546091050078199909086552993427140211457113990071390963125620381456905712728562318788839335278712691999390443551681965900371138264904952620265755651871358146077906795727804841212842500513691489285486055638626202654301367789614871163096326377119130958312299961085147124473961098177816095812197221066835741467433454867535326389224250530219819600023982749940916074617163305662002313313285177559388225708653587656920612998422887640327702662686395743415948454916871012612766300093560492755858415689363566698203188990255241163589634337605958108761919162546464398055871871214218557683889942382096448581355850855679590910954240823285488053780104860594987186884828797872597036673952534861772205507060855908284724362961856769997583201419406241195690973356924996801062984816506491388647620566837703759389374978713523359417656013531690637222110738202660057705349292966058597407848967612462786441900905647483025470593648764798253790631397059091747864444662779793707359204986640700171813095038459450016597216328567190121346570611663618256217790289626949101606357803993820542744640384622154552686158954548670123311891336218378828593608851367839011128531747743110915994764970698038984415568273136738415802043549410669758321481334996569546199329590387463634786171298369590719909653158384312143771778345934491336482402106698740523735165406729254845020190226567721195571725959724577387820856498848460089259037236257482723205888492026827159063235622050782706825304367497242034098603386676235918872614402737634096006497701371453425488188297432183568784594213781187270358632219033510668267747211937037962824878782894234169821228278491884160764963246968188232813103991011299957780426294939660308262199772237674309697708782134525017730670660408770537778943916436293250543450200374874002575657918250549132929533658004957186560899023364826233463616517396910322982387394456224982297020141939079709563472520704971878675014676213571996656393758254061518913421044190559271685491633025169930593370380526557026931937895990059707830622157899426383843577302228970375516660805492579980424096373834693555716446434753695932155305171693590240949744352354995309813560074775252818320699431983300831725664794691493300425234291342107142477455549206405305982016969049205869159327510094922861091401110205477134767006475742607639489011471500017087618732768119306047161143965164699391370421313507561778055091472829734878917127317485088038576743561857467887255992884773412773458863250865903559973247270669760531666643953227621496514709918219895512276552772128293314768851499020695887687931403904212422250522931138210607700093758569235494000639591416486651732717805622341999961367537043723457875804082304959937626926752168140600009746982663879797919980207948458310215711118499424398347469335497286695816685554598445476161027003390296581273884739944616270921067781797331594280811926363210549405233277189197291567591474454728202177030928767870468604160607379864361827820453581904416435970719323684092245509774194827984737646786041979259244179650482840897598113819047547201216739791095185157379875578662463288850728856912888132595234924896486047875358657881441655390069689918611008715107362711297653167884002094335009025358678001186463814196613721234557717036187658569002365707509851955381437718187362797203272910467585192815070679402126007982524949411134011586420826757904888125560234524627617370101105592507219049690938132373194145996694031750623220542267027256490910196198335330651339467430067698603106035255878447302599931615290079773727461981615703389588598393887817183566999111959169684684962092526972897962579502569886580456951997069935339231259179519404243724637301082447878437826917644384633939326419574166991698250029555707484256940224282378649273809655466844059761706235098983954325264095801105333517627901548600305793643955072146990589732000691928243204949815923294222495247957968898082666599831355957185767139613978119064280422185328241104324516322543112678962131565438197786523336505794774856847792103001166774855770335029930404785414233147098478350976948637814002146946329763949186139081781058997126288601951922013323694775631307704303858764726260777399095685321808816192588372461763378221041654049646449021473197674774926769003929651226253189138937244043993027316242289743064056594713772641536869975682358939549340411407633327493787660572679389423459859898471011446870868867364297512525199138764651088046853125151270783701920546428133698185378989139817922005749941228487179781732165730053914865101870266270536655666032749018086612326754137802776932986975783764982940857987470208329864577667819536866145743717942370496846960570801403273124598614788297482873084233125991844118187573300240469609931996894088349258602959195126857093542013688916976037642025776630623357417215960731011252841484586260624222011400196954491071085899387799269260047695388634489840628226326894238347194754132288780772295382111407023038319632818672676512414003786048779500691219177293053880282803237971103563598974351142551471465991564102556900116221625047459953726955141790114726775847400684749972678717544925463859037677118097880879694897346170366582742558041111772655754149007405242630148660988404365846905952349917048408968354764946339685548694142139451167899658796709447255611400029699948988599534771988427749971426819140361470588749682757904979476124757330229254315949546912231698782617365559906830790556348561071170489233165238174519755525316840628594434893830179647674078731429057020569364075173430785107978962760832665545484953653620605729876851442644187890578460708874128016241790005609379823170143014550426953130318891883093798696931641001623439686710526108038364642371564279345984952599790786834356475508759957900610734388518174767551843873521226277172321047015698617462745975143978180745446369363798475818395027987204007678482482322772434909554850409104027572083438094583024826375715015912889701080874326272456477164276704580801274251390735609039330594952853749281451615070554477269519792899375427142038266579029099350728538124877274611861251933926207626877143109170798239462506419403515544373550912017590965238475385124553119481863523199738478989384206768830883431770324657696468566799731149978470272836993630768189612785787092757429019746954065084493717954427277835316118803128308412713658881984570199300394696056379426624435027418061818230389051718714433432162317389318015550182883888922557964210571754485040295254075368557248511152154443512150992053761580182690770338200437062904213468274690500399795775815379843615250791865447193204487758187386355865219157615663568043849445022658548938659760025046335806523695252907157145397566616003356436773682054929748046442603488048152876148995294585162158691014044266785831275018516999757479259960296809371234735179548053298969427421170856698275345340171706994644068500097955483681364264086621665648806507445397618122159296519160126715785262859002983163455516240986338941139708808843932808078517719263955060411203821022033410710334217397760894729492377516924590213707099568968657355205315269094677722060172672762881568987103641440774960150306284906255994178382931906955087396248910984881174781339842487420425660377602203104646396375762343804909954872276857604680468911695219324099403012186670195877580662283926788835963174101154916919972434904577091109936742321111541828647393472454859603621131892364711278508865251014813779866749384084919717341198128061144772496020891546107991587888590851341724184219202634427824905081578489807883349900191598286346733863775543065770691898472275037845985600797237654970030980698357985211175855591767054756853309218784249155193708202566859023069173102442017200769413522128859303355030251534714378095093900726847429926924673443844021207823725998708548259914213821115456754322814794390044112515224987668858227649733716987406969637271644370525032601370221447391423647856363749358865864511892894546118427419935248227385033216631846714382524341069829835287505741627732441189659302991121282082069352062737051491901647562563932747839773760274465425135771690728486243120203778523577638161010727184417347430160357118942310191996645637614119210715516537649153770344280721089830464378086237616678685580512772025764098105586462980102017848114034459408322960770479460669802039981202622553451286711934053782820785798351477857018959677550951490535300233540651699065654023829999698265884551493397559888173737702179236286612192092846793970650624131920550369626494690218856994377085639090019165691516462540643442691573565853877684850158423559306481881230217211776585063779051994130281726618415081979964376008363465587326921794509147078896788736479082479071539552374502280149606734995029669939023631887567106921406627900893441202452345766213095451828297597610440763466329162008898760299768100836226710461877139369240571107871251040946114270570411396637735994752322087742904032861249120890473980570899369483424819544473437343994857811093033585165897469309697350169764170487527967795819983037050637354917431595499153128264800255762731556056305033578905614227179798891478045074285496132976610881588177389268588876304340699616155400588819441949167484245969620281552677194265068520750652575191844484225852470091778270684580406914933338283666417806798760817445601175321575567110993781285635383392811874036876864891531075213385504045637713023665734671303830938920397067573261135849038650401094123831956328486743621064341262846082828015011360153058565342905685117611367806921884157984850485370396730992395908470368202952853672315128363870343121316622744724446033911956827473297972005624023612715613850102061200594428316131447461414208664737464266921642861962994086574747508043041407372655937357651415701793325197112455134750430794209685142955811391104978224482398471064448608667491935763327237280595593627342002839872754691373250663754414900581899070506698453300542004575876480170870847309478368806250479903428933612991526947983933732355767884599617648369674491995964666101014630055229100459559190596033566570534334738680367310039390800304502202510864737895703007002308795884083391466453234998842250601171002437403302383656442157841604179097061881781665860239086446178622022266021860465398350558293967453461004254996671586444539651283889636230444694636159129719156060106368643639428283127309329233347015933150366486539191193156666869555881101047647130893237996581330730191015904193384190023053752582330602692545885541959901106221484922490183091581851772479595611810025957593546038846467489480048232602231511447503570694294350344925330131938777825332661972573704523741329757032367117048449776710688356266880691460808923478933545141777784191421656140998218484763180134980304655954848230118725603970515721123009277209228039660965369780020304353444538561827760011864615617471917781249376104036095593412507882808970599787720676415059837874885500555860208787739832748452082268581933723704110912025285378507369605926866866145338755108189425175671120989285239802622851364350832395494154471234365237678925224498530627031095793200187384716660060020875318970494986222982355488037348125184684723947041845362770736872069526438458366732997980101402293258490666622329040582787920821591686150809312722567195964767296827068949297604769723920178189600902428313655932481337444487506954750940229904024031817694547533358073400995396660756158886556436936542331939264795003634383667205730759542095712170402774290602626385662309944210427959434354646376718914358414272686294595119344878993586288584179845067482512291773909645357746086653676105663162358906491934168588842530473070653236799346717377334751924558133105460950833931734238070744037253858024450133409918106706650217348866114392193139177040406306459837415510591408192479185044833022568543244820208576696012628450012877660953424771362483838569392190556761118753838211734770102650542467501183647137213760611873665328232436900433055757145341120710154908025063252520064461887723190621506401250860429091970386789315478251041826463239798962198108521265125124958733023455633759805560455077828516141461415610851169004346342433140607068861419550748632018840357270734964308241652773993574348378994578461029642666458829453700664990516975971798925289271290616209917812424438449895084459277448446142915528355067033571442478146440244689269490373917526629808338966303053026903634319431622478104302561906841701128288784973385457273925135672339083499992338033191472917595055054774538458382005446681944416055680429819612776549128631477530953308784690674753178285388585244799050269995300301035035411537447826478109470679846667774163468772157240207122003463296243130714965806959413419987634219140740859658517361153132782333235093805180158299747085142402052359776408324672828164538862896636681706449555613968909902947508189005595294702190347639278075101115018242950556441927034540949946870469000343140417631720655765125625219218514936353170215557793423318580896308368297516457301802216928274294725438138079790976952708401681150526393925679484689309946261275474977560315123828722246841461118457238098054303364171307593025833234047436575969749212615073037880667610927668246644201881058078452549665507766827164435678451601884551795974051980191961015816326590908162347487507858981197680060708295455412127292309781545078712384886011547007418649741362105170136782127399018826002645927137498643407608905801914220065747620479039399882070422857084020979878845016370577130685993194069015805208632412876195603303070523843405296876317924939253079290254405167517536543697681799667837560009150246724792100314261592180838983004678137676279680544959442399859225489329338959435260504672218001659009728154928269638050143346299349952517869705027320456568004765317643438354937627315153062796073512344498993816177853783892758346342827148626488498482037903205312709752067372349098975617444213189693475053293408218256750201578178622230834355544280421029747345144134688380260618341714531593192135865087443842483593534819526444302954753388823029642908994746885450755191114360984594483842763129966366939301143631173035213351365542728028438251989918112119469959631760901592934504075092400392272937732116908775529022168273411191642983470246293202802367492884831353716618409322018014211198578295264909293670634109932552562663587501297831999546624774254808209265904740748038657091146531334874267121582371046939562670652107109246220205719047065321155382794950454121164979398041166202769992416106895669679987895294253262271485410283756307128558686514060179643211342402356030756907881738739331450107206770953062618656329287078218687798080778859973280216105260812011748401857151809206859738282088496028428342595048270402403124490343266758007119362401813174353099600882765200212543280159299168679847379743538749694508688449216049668207296603098739110453082265327064744887078954288917223147040090209318709179249929844171826907208142791261968150583428587645318756843430273118592896766948970878838846807179524605289897841892923901353959441872183523660879558915437547340885816497425539065887236859774338914180305389719286091779050992542830151635635866772187080356899843993695273833206285467648124636162020098800848795158714993278763913590168161395413555806044720787506324304061437158142138172755157776960018206724780884211053914487306863509496256411130824525040620487872036087570796565292630270281235591527920118414652866949479411427558415214500831354617592544003731527723735280944508547302344951624046244153308467280788281153385219826227976282237739151983718519633528422139564573591395881774434551317599345349304387711402792679061238704215517254730789567074058870092926347747468785508255850334681475918055920698023545973156161948042366321407832265660238599063556687740899394790298299755962529084249448230361750108705126831490834596217761063221610846335503852698513257582605454294115321592442587943431535771574326086640425048835976601926704291227724665522466512909840967260094553180543029651040915016548440894451253761379921558553095875518783319338486586346982705776525066013481402221319024002121687505543837459580789275079427812767106045251406558529155141893846076839569120195970831984629614704899880876163044161140033031065462324000290057001148361301636422358897400385058152059968328745360956022485411426434487460448564461675772419354768156179589884029771698020361350906365504413036989006522089969566288494203344135469337423299379263573119931474524607237965403186113148232200829235914995885864262639921457883078025952470253482569078528198419373119425505372087018028367125935747140131765803504864672510992653483805511410560501807688258539045115864587799313478070978868163011120965865159956808008639911948944700795682559304461026633191701175727805418406788080596084813671832392438777153785436585156610347352165358455289707620678509735491084170335529089212534801496211643528416299245130768524305763776036364891074111695475915451003331047186176358501380889555235200555549631015179334797587854629172862919678692411012520973077911051627946201624290761660430739291306243477946840474185573850718160228099445190611403953410014025872736510189107070130818697363584917438234043148276431420144123963472276788038395960827460296657631674326972622278601383311824096589786929687156553884750955456545746280523426255837820420982127502578388470535738917502068417508163338403992649376093700339623431200254974504038491861182626927806960789062957443274041777826800647938167790916360543179489981526803429507918323747555928711702957611663616263520075899517432752920714826487286794936284474419584616797327707425704482100187716642032981205908498014810048825565856372716527245987260491844354259305205148164364002495896982120194457027120681923550970601462138177881377373052911011946491565385092404599417778564812007435530238589714837238960591246270404072684547629708132205337813352241366248111693214176909032516877390524452715131583591144592577756760841895178521057893541693395518277312775241342511030481992890003596917421130360687169459305522565179554013917268122775143596056817599738550926264598767905375436902055551656688254218164581526516172771187758103214930589315956421734637478572974853942059032143065644503874885227478099262471036857211103331360087181584154662138141731273625415602835115871076672785398255174222446047773956771431295198939391715606796420225205375535497559210398503233435739630260115137119301782564128961642890805866772050193689115228358649662665024879848301918133289346072296715773643430701335721304089076062392872213191090652132384946339099218960186415401929194119434446642172957391345257243483761038476898119533195199380523895675921738024133677466593756255348681683165473925575651550302907986056971157552190739461649359088906291756484710359780881832342715995448874596058747077124258565895020682852351146280324471694379073603320019149867435153373479372443419271268656631459218372240794481399479107173435024173539930857747168009081241871277707708141284526050514450804266750743264751663989082940082606622705640301590601537496718562067855487922609301626179993998257814415443202347567562646389664824258381611360675292347250003296805355566320813883178738968291578250677537366435548619851566886773144726045166493603172738888634597821096640363861723280833036553266737979755781435430775992286788047729310866139201816028810218561431734001729851469106935140901960218081685245878884985623276086667521055270953401496364065865095169943458754496640744624189682810846773246911768484230192216904842857279303531212438816884751286156893263469051109402726289307022862594387067651896798034442092777472483401807434201988587253930622140912464025091986572456641469701986339422511632789777138692426483807046306695560837515661681104695744451669239935064526049877094147318861708404615812154616151997326286993397011703676614750986140249102554535485734412066829855431272639979202726204044104916989136081991714907011113200765670402986045087985954203915727809954619456675962062660650865678023412269814360212520145527167221239677149864305064075585929032546182498033368498732181636752460686271041330612784373699037691471811902601169526715741072768780912524745395019454703131342082832075022648627166076061483191729847274943668750777781323707387321443975818206220749373725288224908630713526359687095766269574304228665432135464339390649934521368853858417836745713919789191447318798105695664861931857180479588568791355428449839686667711595498102425333483342292222762078980726200615753352327133903767182437135154680543596999617735737103770773878877139131835128428022616519293480368701726943066853211677315726045197513863248588881341658987478619212347634397563956828063679554955504476423803763824249811347483876203473512350542913964631980286512767238950377421348385690429250127219026657898960011780174097861254422468101683974836422400756834695212921703321462698420193851389961795855970330920837311121925182225904024314199300464833261317695794726591553794768901426231070963143223130103711585362089271041517571307916445168918161692954218718983047412521911993152762200457370849024278679675259508809476060839740345346513744326580651314880464977656416587893082628472383574153894182950688460490724552141171868756764018905482440060924428424069658820274918316851489687377198082390427048130840822330096837168638889909749750545700365821708123765623152354835949828122728300716112228160370959814186985117745664046282872051960418140579312650297153240614377948998056992103733909322909884876531643030402834895137849496309049877987685821690257886832266079760439677570574334275779811112115249865974907093353484028338492911545244011441414700691908327905297139628921064079313507776629943840125084370747009789957768527766373444914854062919849358151107606162482760327461332087075445183089327395500896877053038308713680362165158738951693770984500206388030058278085314611193962290524262255042735336988747948599739673858502949100105444300127505335859761029918645394416722403991775126357689333163366788871528394866372652383868490931590423778969706756933359027660124617764770064171191234978334682657878414846917877903793111940381478889838555176844536540104438310014373421423339645199805654899943725325834346158657174807826872471195844661525855320408065925090204442292186846158149027211428328150956021595961269954859030480664458338975503241461078447312425086171177837598255732574463602739129095476484868716785029538347766330913970424266151482377128151340406346250726896157872316725302598951262921155330801664570786594477718244806607357294551640134179772936752893699039662472040878621147416109951364703015602676685365870045054961507264247414731663862399078182912980506933913258047973031584667334738040985902160347650567933411697296152400542585956387883947133008840653446606085017289371214552149304662565797421797325959770425508100838306172875191725046539869197891132372295674073403016554903916748239505303052821128261501590152306315210666773067016756511063189871641241478743536692416374412297082666193624399592876414103268401567463255784826917327962298648543373360836826034981439771373369802994365708637318078854257913517537759434896209179857752304278182934929952166175868181516474887132603742072259751701733176522097858153131132275421437651652870822969747260249679547723526600236790376080730772268417469494634390900094674648278078431818881883353025239686173126640651068507667004978599436015912306022144391028026114532967807703047133324474196376228535001398482762523066784127581086557342567317877398570972162313689045961947684064459347296476333429013984428199356923593584062516566441749748794977732577137579645425265293045460067785879270454064322717856791765674525168391728581351226937110146455480529504820495096111907472750532453327705956030389076873814417115640151232438198958165742454827257527415367727787846052486219471939904731759034091901376783411760877048500860730091133558110121142072834151966177028521309008324391869022954224304903572723481089984889848207041822317757352931794316259635220569546446854484555475373411740911787839924223190745324119690675785287129455062811605682570719551028329489354202218185547280619254939119297191373823136313926205032601575871144738789244695416122335670285777985613769544649081289050872969389308183031523355436784763706708803049536409649749977571677595119340396166654404728439067543134689630795820172060431707454134399026831289317420635022220449496083706948814594562813070208177470558595574834134630624353187489628969126052490586363557361784228665193882822991282095855775007077116795744182917183773118435083141755802938130733745761765593959694262332952791178328766050373106546175221518608089073469654089385226868689488609812691887576932844460488597924673109461649336792775393452470364885378794161660286660533253335834070302833071112858795814526084904950184961516077577376027199707801626987752482517387084271401864478427665090574091629908473844518544161019305117268183898215644050910919421501115680205593892363219252655423536074383401685804035560961480181701201980889776770672402339983641181506355222162001581483877534135260331714092176993382594529447796672306110984970658074555987996285986941282820579740771312862667559018087998570135520781913795708903623575057650980431809875251471117474413002919381979278635725821002871768143319824526892518680560811784332214034031889184401950773455325455772500556555129579988712815658097916705187562808063462090670141662816533068093769823848188923269171505557576624790616052432110813013739985300793219148480673801685904007794907453533128410548596592139628147015270591446704457789139409228904647414461732698452966741928234336621152562175431327422849163952348283813667869817682438543437077035892059592864176913340033142805527219052756062396527071689018587871241459299419813946526120743448846044377258860743323285730586466080945634869108691859530434613910318921316169009413985558852846756129589444637011510637774068476034818995313738563563581063366043467085340833162088581411284281032769185276364804663101582511942473313407522801026675820442168031640581319634769707399921427422793876378597634958956743981175115538296961556395168048844326278053835120069891137660018146296596841274458035960891292597824111825285546878690567512082385772581698207052488917274907488501016946021404757671939250352057167771426259691773018688072407119076679013853034682973958341511066678563541579396273297450128708459348176253563692475218971209356755437275046806009201961104091310705353434242426935393874919868722473935697135199217053704171384131885995735990624149392545077679246731369185049091118897866805641353368472800207530095590419065908399569019931584900032322644441543955749223846158825820448196149030552747914765491030581502717259904883423964671490731860024678184925643847114504417702578602303790816963500341583895597615463171409891350924818981640986280357310717874857679295839191346232045026683716978263455551786254984585051890030681204991528534337148560063842272596492301437628797201742193952451047461566443530053115497079086419401073615164684724740464221123095773159287683260812673279501933470653903968029880835007631734761211105002830877143187254329729046456757310200864520002523604407119114079870937986714079469626055259842888103659750532667483580693698416601824401418877154527665425112978164195191427606119481212049260910885557500958577078066354790978860229622892910704520668362790115464520749642462788866077289692740968800785549315588540428232995722576617150582605681184844121005193770214737897642709634371736245494364664576282974757436733728239873726772827756482227958931450939404275590521717408577028511083197973811901024543413948382246490887655717054095592775976698733761034018357892735360855592834859147055593986398971545293520895170956986773049986605277702875324920907326394294597697492159655493067889311203022395193537829855763662647514938785869633279441963907902981096658838495634608362655840261869027442613810964155620676414501989962108088048679089620069747042341319733521782133825298603863830452562860427861479124447621524258859926008439365051409890978462799568317511803817513178019155015076883710102477485619406642595934902440409071981164388453484724209693686666103178169482701188674023300213907985608551574158345537437488009634668526376948252939701733996841336405856839822081017156853431481571149745648395214179812851564924868648559815966088825270391910915894846780715680533467144942200238410393733461919151995965046527617840759839724845494510794114912628160295432705492645271545358165611438430027673077876901985459563603048132637392745412459059124443939030099701644052670383705887374076401081860739568432141361006901807907909074975538167571946633973412124137462982710171048708250260554256928854186614963630338972013923743098558208960419480299726779832789973981537884514190630406241846639156400070267297385639342223114845509789122569629516557459648323863834508827634058962918710638004697532791430440438106773314301863365543956153166789457862422487619770142116287274695184148637614864431799435015834998671683599090894218716540999365814575983390543870182980221962186902486853184243559179463906673415285981544500175725041165235870794312510475554216783320713805314857024421261698015721192939393761599360074170417400021164068977697134444731873232634665783506338816056459177499255239553883038913813632096655079722732454351893220610103137560695892947475647724994094308760736491008576096737810911304164443655130601915133894136759328826123832084218848299781063019380604405980751644341950416222817004395182938083514168151616978652113738724358765456084768289125228680526175152299950527300955818978684539239376029967560049240012458834574129724111767793505568730061320594141712831313818245939570746756854867079353935815595928871003627132151807249561315027167366009463905692242097270222429059997878392289142141425535735673165425465988258923586058848333609520854794933067220758168600382509437497765017761248007209185118777096232314487025527235278381445949789804017572638781589141994170478294047418715714375468478224198739132038702309577433615589409248495197351658410827677008011080280322640053972288265227724874131949122366821790388012473551994347088954159217478350429164659444943361683038191010478890526323733446305270689159357838196162545655178244013121420573788040182560439470213949408981696683184099597569704188446537169843768307904801435808780856130430523918577479659324670640645749985316451951559857631479212645205083299937713296183334644464305038186185893902184409271941020969330516567853768867987595351313678951453354409682711262641101980952347030919444207742450920102164093679511214313888115672947573017218867581608132080960779193713628469122870084732640636881468741212702700089383622102537972607617857044551086977766505618266369443044819112910377210551523128346429858180827889961180886964951464216781597852607383524933831383098123903838042574099568906498545048274162028969793085102361703746276375883632736543602809396933426058938514892421116344516174847463564151754808807702419603335580689532751015245976691709267657893537327171539285000402885519827694147556152621116326378621868415500713568032953616306351936039268842628070515117550602736785106770036493305029467489558898005717432867624603009219541478437551985281315863942944696535209159998461163436823247902963559510409320308926974405487899668556784930950302609633889274521968016212766932378557520454636195963760615345586469962318016710914173450042767992368775083779719000171464156587665207438452822662040778839577108715351417007435382235123384614381573587500817199859443436840942412853434331893208422255411630294453574613899918200359883508128641707651814353168941300624796313731137052275726200982265777987343051436284461975847482730857578157016735227726618086997514283639650380378703397590966046833951297851050461534328659688055426784035235756768880168982301795072981335622181183177342849584028020890763019001268178196058343321265720725376329729304481145378137253551707507283493680852535088106608903423447176847195190567897386661773016169228886884580126078437546582415831367013942529186951690137572019170354355491720957176717665254018662196511780110416099445093997170558011803001519188478141570431132928512990148219561923210231574133670618794847353152474126501626365167360463561233954566857132503621309778568352520411308590566947634692242644084022824742208015575374644812734951898318342364150406892564443250838519015228923886368141164686671256025690292871437259481745134038607535218888053614561805336994159872924502710173349731705098195457650203290523909866740174766580542765320199539284475140106253737371802166268930072076815920363075273162844683291180532680056066416426569432206885559179564144043720600264065158510749392186090246309487363387369487421869386230827456097601993352443594904624796089957831102085181318840774371960613796412022938052044283274185228518345217396115915153445711018691075146804954373884913068471066212813342297805536655902869982462369400580843884212886755075536019328146875258795055686488459045374336728650311333208577051837838102471714899289101283968671320311021179772140907104862218803850716479225735157548203906987498309464126534301268607048783936661051142390150147728732136962206786934067350626958738800379882548193713267898618719485348484105558425177896717568768910843133682716837709148879444906849600953054024008110506648465084219563577973128393125459282522561590166866301654228517698788244501035676873938633541517731455027749678594480199550699629933963815484892676205212026264832190233644365142032815412776486628062106935470806220858165794773315505864014559496137329946172048933375723019214087147830943697979212420268792989010897647739289673571700048185646935103359465380902772509615435192459034985609803148307188878681714249933311786337358962718876500607354266372882177582830286742675581175373405603085672700684102186101277717207007064771700660926472011003504190629822981876465807552638976421149910977944415307916336112934888022391801339327916843476608608051622744096063642719594372340877545460459037078033558252229592850955693679861336765553348906695282366619668901957147756301725072861972280662698383112432323485553193778356408164676709932516074156760070238508323828134266635536302753300954476612766460986387596443145125382346859531699689706385843974608691476427766565762642055729844931003749466150469230779919377275106029136769595916877242769738469480746004949612778868317682783085438931316729769704596219457797023647507134549650107592849322337581378905506858900686451524445528943335220170862315015760968434263875980661112543413807670757580035822287669964938142555106037981374712766014105689788380951603403300728103319237042074710527551618996490074118114653303702164794850787601598400187148835697470223305147961839944007989960598291447645042348924309905880157705465388469856669580378525917200266659896606295062059255826618586413989362446054459831816595834666958814936300382813506912275869560315287243021032381168888371983264548345531197285028780645190622770242235210167706348542388665658303284946233746149499907990197809271959409881176419296938133215614253328535760826991613292117828566722228289704704109062825388630577961432617837368975860801547841050568470593463106456126025090311158737777050353671063866282140710089201352943073292532809586252930767188735668349731775677864096403882433146406835634128760028828780883970780931198409220633464894979348681203070572427596158496902380790596850507195420339843251330735361828575080836768391720328479403938608782721127640683895744010898674465342868145578141675398654430549371446278611019090264621815757319158105280093300644090537358253923992328650443572105759157612645094424815317731264196876334079193248923534886724885456316227808967504202234221553453882024557617381577545971592831972783893768786998255625168861616100132891832362515390711498390009553509308719345061286412144827465523661128139755664912155235112882816482584400928597199715067623030667109881366199531082970135873738261064886623783748423688996011978752349752758504999705479705324864522480356353662691673390567504663441856195337353510535901153064605134501745627198075407387474735412793365727067472841297596935354502764122077458158327580368994347612571916369708828633176876818899983069315073092049402915698713996848693349845947827185070555011710769545612555604917028209923339943357805327601379161504104766430795223842320977578792771379286910540895522337056647422481936351028984574891946694040567396698039271654974533063225919004217933977465071051463769790950080775144096743501125856599720869074289794713684811141633040225654936076238110861076929586089332603312520097941516316817558282504814643442459596305781971663953737665768203826174407103763205088384953086332248700652173569633655026024823752772183489008480161137075141941842687829714476871924138746421186044151839577454720848556682465046820013616138081263150054824144546442337071350708706788352253323547591919567910099712493508775291825771959622796666495571425315912353783825373011746317424601054968029263081348328476065759091026248141919570496216838532511647185830777044394504880060946617180954524635919357674638572587117786012990833097314572392302673756544081140465927129320025125202527893663303749254636593502195367112027280285225364420228421051069479316036900007353694578006089576918124054048410255091794518864485649863380217459134555785752771298038354917469046416782940048535327045053739670736320114645998104699795202339130923012574445282678696724743328618551813122004526954408340693093338920950005805185469184232456937796281317966386403349897112449695726153796506580962069661170072069096147787719834390158688902722484783057187904279005915422332221342880889678987049712869737529160669578639368498514385386829501304473491312603406527471455327828136569648915658229891145206308470792202769534508511993523932875247768503075912148966931371206040918125611183033200460085183877376231437829801240376294971621651190535959488724351284301422173270478379951363215751673984609340201924047713815574500038324831241410902081576509291426336159112638799943751898400150033175709595333552721293104791867341185086155762602785090236288871230147377601891325501769104640243963221540540895790794536392681997109859317372421756888270203271994088045624256848583597241968884433616623832032784747869207423203870369541869945984900505587845043570880824245135511709340835816754860082342382104959139000710110502501948599850652944180848462962643232537928108997434495342922515011665547616527566221909542781355385777501082582877741376893930005358180842787072392872980638192192360785182462254051116340088798968711113130693421304187308818725711522154866997784670859942485275195195678377441504910375921170759974507364745629140599675106005169478339240126728196440976025290168868319405365609770379952910673734569703182274539744290165601175441061124740921151668817203751332220554506519411317671320066557574803079443289585541938008351367276893138763998892520007082530999962750633805872931371806008877326203604019333070108546605264613411314106278827523452184493241321811410720304464576884515966497262751033526992508949823620525144828420695630274606016646615757999842924976226803817853794405637492011573560967228825382921998656567934327513575474883189379951047450827885718417524975479785106134143438173487461847635542893314814182052715798330746479664461830922068743189923238387919876543582871221369224548932622003201098183597714637801435071261178197941415150406586951183401843538311868244827357194644815279396368220445827767160178244965507367701944686012965142734386963164063122420295551712131418615886442248323927673235063978214985920176691063504055989220412870155683384568923821659896436694491697921770605116856084123553254887567290234801610031057777602309861385485841497928662896167951787196218092994898716360075616342926912351055611481050196168499121255032828614747085964705120478023740456232932643427763367667155170295144829941047695470117697545609716099365936939487097978767011649544400392923436453302559153915247793661365359003305928266334337538375568252603180096804706696491778864668347520628154103972232200256577047792959712062426494227942595860361043788471576672080826681474047319323324716671763399675953177137312704223950022631857605897125209467003871925030983285485628093101097434559669666863358083223851810715648519498979195102303540235484033696176985758599380944743608316875842018592338347839665712048633729997260489641447656250937925567130268617978112750935868477161035141960023487227532477004849295478257086760949283130576050499144014227100264416474501261886002721426433148250773600326434707589298074261622449705333036577770085689146323109085908122708878981973433290610663369156923879167136920707382541687028174751554509606828114261586040766532409426132567068501832301631964354209438215380548797413320158589766595663898732953652404156564410293044156576132693127716190406850951731308947676519632932193470038953267868347609270406181699159755088513254630494985830591128940892734445510849852783010118352150023743592359497680771065007220920068178673809793549036882427689360906844637298108564984649000352281421181234593826024679125229071153453022171870524783949895084874644747165092940328838396304002236789756663883474800944651054536830370791415361788001818795708987882009997055830646395363014481771835300852595867563113455729995385933222908223567739477196583270795175202986912032326495700614130353182372379259504736723370310983139256621813421747149862450988558292255984967405180087935634182918135942950592547793620215457205676589573760228772930443893309819099785867839019825924312424077159962078077494326070812967337758777735574539974159500420691011139088615251603422358228395834603690558752739240156635946220009613787092452124894704212735203004203803893006808452783035424723882131409472627456906823975662305767971574987238086816734414244636268946136606742356191141422841270179593092866262484495842279734902869763732347586307272073456421463384009180518555317085930125801221611857048099950298565369065069581555932415166298519478451471681606720188035460828954921321848187469938102368171016009596733390119518337921478164025997941137899062576001502022545270514531944542238735771013043480190436550832384159033792943391631859535630143525724643506570707055917046695523504153295209977438551924258992843723183274736619560759240439599529252167120886082226180403979095725233790963517421072172778456651644228794300820984015339752518187488326569373854840565757254441737791852473442486627029768326691898199635064743432062019803644733148957243195043391881503011500338698915970846373511375286967388190736087248604213872313645138150177465717772282470541596407010993229607003116220920161468460689775174996894738640687675699198453312009798544147222565125591897091730118300549454270188701136828536598028279919921018007049795581215524517284476648539413532571082896603100578208123799986278631075947393709412600966311466120636826486452154053215117765147697222006720237737061675015254491615422088833988314698013629594063121235191189022307259287056507511784873777087941099507981113371025044694695779860411314768946449025040473546426807819690254410392778319373704904567804140890449927031997410335689581612045819809397188191687780630907052207655189876459755262020982222048489874990548440446355851322002599710961268623077591848522717012851315582141856997456684000161704736505401335274923039831198007462235926577005260003207320874907282679618416262002402795041130915827199172170626180307931250902068088557016600257027432816947346490265786915224108379060577507764355143463325139585514024695589933943519581474553164688862407961094789435558528953345874984319884180363835476501980925905042460250746797600020911631730530672079578679155669690823496022890990003733976479695324164513534618400407597496131951948106075123401013470302171145663035808056444472522833157268192501107714574629653154731528794175770535198274048483363488926587130692488351732243495092703453707344803808003926627485201856866783221636440149553545441832537617911523404288734727691511502842416606117397705175064732389510897380337038133716107089990662790300778643630316520815825600983343471791271400645262626416262211105125870552088677793046440300953530140103775766564576786126927725625210176699772002410990037339113800135076072259271593226801118127576447629094534766294135322909131261997758713626350236910806973376768953522093346801220448110348694902079588011497420284891392276549386852384100365419770923254673909225341807666594471573008074756361610217025216640533071191356536053202771058489890559231873673239851006242030852619835886203286000438522193789481109873524328233895779359144800167574322654264922522387829169187908413957724707778017673495789545203204314538298692935028724405102324083928293413096768544190556855137683289777934716823698225845900351578746141780573480231187426377261152262072507196178755650817942871260876267532431254209982956656468455660941798177112554777965407674916213556806525073767224297139316323770392291060635225163631596718963724591177961281015220642772976101096257724616945509171432025487233073596204220888072092373147818230601206923081893263476450508180123967632359327894187157199701912927887077040808289869570723837137196559331776789293015451467377469158964970434189866042295296793125316207513428558947727370623703346737217678063894226498382107374150626052846603330453950146933733786387533538360179386075798874911230842579098176911677889648745711561260747532996546249425285184326078408079003566052236328278051406389160196771069053720421622477646621030223459170999512336955098352331720406281886404764814209565244147995552646437868934475557953549387336183102767317021920479793785253416142551479586271527917178100499377929808149891899384181115648779676358856588087872070453535279936911305518077399502481443012029373759775129187769134905190529617998623018968706249409092308300894785580389599379271388651759238746313267813276271771313655603365782738009964425591345113196577336790439450449473553001983917075288948349932637260170019467582372857012116160715837500115353327363086468462360147628340368005136780877976008082970432941816134141522338427355446046842149779103373752709768332557637071527687414796406990665383736172008260497943234333985057356761458552175800631906733749129843965321530313907867762480801350979117993987537580551867219996574368930300192483552430968312268766383307581804500884352398035470437280971710779733714845826547336956758051741850747012424140222481372401932805232565870911187996470741758433087283354539547038904551319849980049156031201367833801587625805253363196869030332196512044677140933691240272465611895802723256257636739001502647548888462630635318794302726542439035705380437472530555737204521272200571753554791580211387979175192886158752317199798613047147483920566876299497432743677973334803215522357891554947411396870110844736897893961164591497536056890866090978232551481749378334572766420724548642324272654355182727241248988928597530699945735533492737999126352241466544493768537245074540185628838595601000749943184873264037282947176767270091458563784236067175902555864077788369558748532701905840435680198604873656045874453996010023592474785905213123973476316664449807854998370193848220608962388315013536921210647780349908679760029086157878329596124304709104426158924103983096582890290458882375060114097679328313543343217047258569645740563390792758951536109098314556858465465948929685072500025462185717876259242340324444584257842944007743854200821566601850576481334954660952974893688164156893764606419457026641317600303852393738167553817186756163263430238359475123547983743214849129805722312547205717646079622160535594099172693626024845812163047299835304450669912020434395676218714461988567047280305994138709449677845314233950277631005496394349583505332700462262799362252153808248696376564252345832235705626614994108240651589338707120086798152397287196525795589905318013670029219690000556882927579059524068393124309226262197303776492032451403620743781436702106984250272554124373471102482265378808656136955476700616083822587739297186562507541629805923446535954936293482634217407349344143344082872218561505014041099153219375902853164920691232293307159638046342556135935929732965508001444659743818902592523875727641759711089602715808032888717131901043613744549638239509255845958675613429080644485412506577371560797570039507757833424360599204081063429795441517683829738470419487820780418300950156450083269144053904881364263954818053665537877228538194384453611346481280209394727975009669940030024763833871948557870064168604892033473823316124675849020481683123801309355065561962726829818762069900771228986433292383871187640078179055302619572840384739168516992966109439484141493468108320156262154271209758257445267774327094817425768566603600230318613952062342945360461510050067934160649952760194960262769760632535444562479323109810864604895830118435424128796369948733117292400096580608846019257984314613100306310856248258716126900149366693622354847432346110432072789391737939520859465360860379254938688969940531304975601157934342160459417208849245075346012655166798355035330885405128537517363366687091690506873565445890273045411415415738211285583846144232985128451194457939412203851315665781540404639084560647280697764498757916876984061365337331452473288228060301079591565436825028946805982134112033654045329673008531042936799335473201039386416261049956010558164473999156010412410291183619968844462457011997772596497880639000665623897564212304227091063163414391588955086205495486856315711685835454039103981058208921069824966316054705973336087352584811165866153352059427924874016787223330716572726163075670049785750563944561933015057298893567755804207794400993571496678155330907838162650916039025032000827139613013078873487946788765075892410213787657538911249323816464887786378863529425575166166082001089866596581044888717705769055402287478441281362314422319669005252925112296863489151762934796639140644272173837848985872995486402731765718299781835426447539029884837493019692780973005060809142933356879252920286728986932941993652668517469620491453940552475258357264352518995081181931772156645000686647969450992768119641547573963608365570358665478399283030212019744810168546143382733942879605509632281943917201250321144066815284430550229035444193089741388642361197279116739234645052824282114462341870947876428113799244422051644814798383372342099683055865862080449036933881903875368931719593978423326413027573079095541771670062082470776042375153675503781823928411368214524024996313728367787101568587036136477115789048520605656751048561569744966384562227736773188718839292417630340921278931548706447382925273308665355844514933185106209029079219574831038754993843400372174402266983210661081228751593355365488339809535021506522047619037389354209430870697833701927902054090737635179355866860451856686497655044676333066331932448737264390137883610108467754447039691341712260781133252348626180287752313981466715854280310961441741743594788912663605591357249531172157527693182432010436457422471922378129358413663596850446093603170338913949666901671588915888633746429138164721047036299387577829473388673178976399916929892452909879528626512090841843055898135053884009629537343527749299540989015681126149851981896948123834122928092456274590837968916591706529558252481987729340467605092794319869609423417877747028662689283520270997065473640600364128348508890117897247091062179336225191739642622157576743972227153262515700343389804194539588853059402493236026995172112615083908803888877847991562635262429165473508586501251427951168949350935984244557697259347119651436356451045349986758075671741504782368215857904784316004062891963744214057051438064801959187056543318467455505566596128559373104146414325202431042550659519376003426516129986300787544042843340541118449230553436528227080350898287604299096543957361389836399704114195641377589633643724103232423733828245921561315637630288678729291860222368311233051805615978679148739391494834940117609353679934615453018731531867229944572570098062240152812636449632892289398979593073599333762972079442015968534512466930250876726107127398846418289980491081610897538962027769579574159167026801229211181182268169272649207914681424459831573584398047915686176325326507975560615020042836304807133272614961408358234002630343126364848537651986975047364782518271174206034070379745892502357417148631381697357085389566130117805409989126159791629982503386783094813738119609900136088510551340913054354727559869842601731081794576238603915898118028191251104328174023866608806269373424790517377025562877237206334113880705441218409277421105556093407657985988572373860589171687764278072430695913213252627520079205697519245556159328685800583655632023761691206775760865318250286129445173483237631765491359609342019399392727816417447732453776876359444767365593042199266230136111794919133903168202614507322001612160557251551257624000644309885375422132654746545327371371607059506220886439438656669360236719572071254254311278817746343859538102472497032017451461221438147563981084012059587119565051882684988677451694219135208662698718032042342634389137731436396246378733078749506361901864402293513701669891264820947151794529862246767586975671130399289755933329250291969768826442936053761838983426161515860002611819418931950326428385717896959668127995382747835554125694292888021207793014720960133421350661040151290370406307365367512511283309951237015457372799387063328247804915368846944191331368544992590935316727563217382691121648474561609119714836762243477218672576595304140149646598289890652092296816175679595220810464401177698128002425655965363948483493571868889507432879253844412090213482183902989048254386294580088432611590049927260557623220356547970567404848631705195053023328543023131026244957700659251693978912693885392526195510549050979665994570302645688737698879553711842930429927093727367157978033031856303471564653632167232552770565211087576450868763633756117320029331809191903359524964549848120068703146186146452306072254456951420130322415005496220113833355872874871050587872018857429861924856491547551099381975746913555042805898484031547228690937632531443894244898762415569911983595349321293828111490434939207633348843161306821995734113388022484144266574275133764194857200087260258051344033635313645420260931596978262674163478781954614966572264588211273895883386737120123043285970040574428117712434041198362462537476013138596341578511559971587797530243949771681670449047965846482282525919824010972774185574780601522561937696772287147993569628548590428506088002985698079980360967010843747143923355596542563386507231070513410690343393639252671743817586111656227640375234843580713190383413956144015418496652386596688514967428389487096307049018858141992380346292845256909371791108615367906473296200963488464337790146892815690885944957293420864323251450300696113733144692060836754495003737866944138797364332625029243875173454050296228607242997772027469307142990623634934931476943396671282503073097011080154234337424658720629424503684018012332862734978860536658835041349524055946868881307541063438513419267310298305272057865707219153750666731109884966730915468051308488237164219047770842609887721285264014018770362643079288602355244096681945935581675007376510322548494757213465672025036289121445496258918004382788218650370681348174405584158607816848834953518334517304107103729738161893691542707677859955142144065083613296255028008361237597370392123540678959756405435610812607640083105131417050007870685043531753442964330661489914052368612895421311229297886902384258313520641879219422571665632468113604785183057709609634965160068023661043918010207605278226077861143023373746507524703198637514667368122058818510768203394117623389704237025575592585441663376522474361939278230875550882365705534565025448684953273499778825838124088722011742216388982583322147056690130825570946244282119969756955443410817615016289981398658673762633818187282448902077014872783157720618118961475884547007311024621992914625923926225347267804836019868026085190952588809793009650638235195571497579406991294557657233205133698339112055383055946787511066881489421016167926393729846429198998813156352432093639232650507951744011696067011729892452091287074544677217903028042268361351034553987282003158692630762050684809766214093926952166763356096240997742772571047098586753970312687977775070934339386722920857879607948833797661742336042486998250570439450482243002056385579390122426534107432429085096849282039712884530986294537842598313446754739962665261673782150991510889938536785528402896892908586359855483947741103833601155403973287698334690819014307430877643319983122833715862795810711845556723078842610453916799375604838509801809119234201053100025385837937813205891535976542180272070900496435918495686499170653576084208693373702573005239958575997533031825902345601432992374738468970102602518411009737177895760041901427698031828249992654110735725898915937685251349916849966321491493350935931087480913665739649218547493056938725339559583131230902392708694079882078722280872362844530645508728858029480517155123277055793311229024546060640448894346585106391886824872515324781107587408501599594623711570788077205675334933750242848807564969191134364892460562187222368147173783039992967752103425340093932532259975598718610933149691492744108569536477671712659710895235190759693849148926868906839909182351222528312513671931027620601495844512056263160778674318247562884976782385412472211989178609923084984111117899230968999027069185052981962427725889350808029847230237331382089575061233356427381303327241492196866434816202500661988431782103216424833278941195858443834028843815743780343090838120814214081019138570786982814854601843391553821169137383409426215291938683807548014157360156244865279819280653966515458711924312616333588199376041554871473328012070286018188572212821203045624215044275300347217375565672842714566003584613751899560649948715999575571947944957979780456230374069813365234391157754577781722290011094014759030578444641196993498345360904792373503664001496880187619268091960704944109988964561669677263929485919355847574236468738549156663241812928044071763632288527874767753626680199376024786391100607862986485270139647474581118605521827622239905098182342793700235244938877209763715590203195247548267016399275350096320453168599133022951990783389550604789647458134704606454352157488133222006340310364583765961180344010381090597207830752223156871645438444118905670308266735986972172351592283981610055018684256789610947603544100134270607578847869790977605380931220058234342893967703734215822898487848864782883774062978214701715983672475438664030028172803116488966503240059913007937466040670811057384599813840569928951468014755221550896680070859842635557522649297354209003021702404380723135990809770295603309246864167093188014922426776987537216784922844108252616697807268000309073427021769020948212029218428745797160238197835745777548111388822991795970514884821198156705787891989059754408828207754318966316368969438156377604276590068140881027972506837432524116145831056308919139137358636529155547146096365673899936305487668079842291476061244049282521305012441928588919699737973171804673396832934546791794247707857878826218036458378457303273835741630409713220283925556528007285933931840218431583256904864858077190941276387539205484105438241596614399994394338424227213994901808828412958348993037782591829692904087258349908951700304709510852144098295719757063628597752488899546173463805489640807485319463827630473090461156324263386845135802226990783383896954329839371099306060735545400547197625412472527611476967225602685340513134057274168982638904725053389850021826855625931703803923302431609229667955060320093657580349194060576517623915041383827877636758042407090392193336879118294310192099151277175168027817906896683136541355067074891744963590726025542625188857745433835676205463200906777729749220516663338496096659715486032831215895442345936481479439483172932745993195341222956445278383692300175624309651279625965152737045436542559547634559705684357688456371720083673984106942937634513718977121707787879369842129510332916805764135110236304136124178277233236415821434498422953251286007905646649650894836859226048321353824168745133185920410748660620029968371999589477863559310510321572704148600660214649741283280664926706681172344042952405534390504896151053230665067744323770211947089141047698491049604793991952875352301639381612382616656645997932066309873785137597913347574706948887047718601500245557848174966607082111286758709750158228990793681974810280308115299964709848055298618080990183245007055177754314519858985037415658587801019330613025997162387015194367325035719228445417035071543100828534645775681018572603787623494958775595810259209328862851278568879211925937006194957681072471730966462403212692774655539777878474679772765447529940666798288713268840800048054109174122882346849908477832490045902151632574667662052876586238137620504587676096605388188589643265698297357268442042696127368457437273815296414165339218512856592959908606871866054589091157245428992485688993755578562243231118216912505064814870081952451721939851235097686299440998091102664052191860336704648170656700646437142480226218517334373439174968972857567707029752395432016973571181187789930621357561063550285949921835116606276201614977186301773514282972843651127951866535564488759060998343171455725776572667680800865082262785134934637807154669594352690304734230866066042290146346857770911433462354741950426246359686771649900590192990790750567664780508830168831011796430048501831458189616763444902455869423138247503255875111562718987318751231719692749809264106239077002721500971802141803351144777639964791676392920903705545077654508269138273682319666290247823096860757481841614978078368597664792366192378039325408336434257219516946085899809026094690004569125639416395614345611561749088286621187265356313887032341180412882489066397163240018831376447040773430517809429189953481664430138833417862327006910031108183854144926548131402370693631319395523989493180081043931871351038484204694898379809925940551588914137332183442410891533718146817266739269180153007748225894156068239363678227807652953251448253184654690867838831486145425136243051762629616939415878357211473905289668504465134937655112331463313161281627820775818619837276494061647930448519176473247010482201471672483986534706155569370906348507943621934149501265925779918821694321898997154054744775557631954580602598197487454517122764590930949445151873935911078120436928081997906450253574450524322943899033136975982441417552245432887347910795679799435180864737172039593786740946097667346694046851242041921466397608120263279459549533147863364271145087632645516711495826664993602553954946027229269434702944322681712163322465325321454325258741429963299044381830869775107102855499218319505131933268285618913477185320694563196274996855101295610906038528178545574630777777668171233240245955739762335268512471878444142816587713455321052872941392245668398240721896925200943417670047358607480571971609353928545813272174218276127674342687399881653230516865165262841465115691743357827430478861766758525913898715389248517732012537650699778098131972100602575623780022562304026779767097977496257885307707851557221853579362356763159279483859339594043775774854837073301944727107793953797221143611083848501240136367170107155557436321469779002778765917737371772035564138861786433312719870008006675444539699696366740357338996748410892591794969190383907910259282499304560112750138438302861949742593313002417556457298201594303681263878570266838828079374450028265717293290712247080533927983920162612176170338626341758418447457337027206592955954984233207384788285331553658510042926934751047153301717308110645461123208442567897981306213775413700366252099987350201737440774925608891106189789575653442407869483154043186958827825029711530731914497809212436428061130513349215895567438241591153046942557707458350178117680252745072356474560999068089542045187464103082237173439267915221629287494913338304018962465234654213793160042281507323318486982072333074862433622935746530999969751761442248916468465159853864225676991756596478097001365656377550786969219440751728910169683320266162569129696474469298557558847059877889991465568085721147391211423130856639826123518979571854372390912873984172490913756389480969015640091798336902024956652856915470334121219548787194109666777344992167300204872147704137814885980161267487231608531258034949354992979099233745571285637609749691447056143273768194170145518048499695495170498074251047929169075159579563449992073173142483034312068143246826685073010800451137654905440569980749245129972024567203987550008602759024471977918997457085327380340843386773484532403884602260532653648018877878019657627957709835187023957183924163665017107544710925285358297588618886192567278764974942963212028039786806370585876010587501812791059880141933612534527855358711594945264995572905275206080943018109407502784794718767681588441587045452930347439696300528043422439403735102750867433886880009776652341377754439992939573162164697420148792671833608287146779001749341512681393208940206608750184269648537212413736659909846540007254044778450273594462990686184777207151562538223311898486135829296105272536370291620959123560165239911510354771867617881569361914472964047866625181504690864620629319112400753056824114303302019835232259174891180413297746206408985515392851992836508286059387114330870029038107714810949353758703007793445302044317273642516362921602732842756847657363078202386205872148642083859370832094025277360371052548710813605227294152746490836143249689442936454071585670244836548646322074487152583174217332346679179373292027400163427795316847660524460785529656708299659059235397670109297364095570522951068898026608173547508054891965524605364095445360014758045103138691762736404710676022262823321135857989511299197795418731384059462675630743818339272491972445368514523920263938581395996489688778450883373111258849603177290195140306026617283490918150745106810657477224808891418337155810762820573252169030981291190585807766982491262331876358821194947492816904966769619994801579090429046730526402455095454123054542493205785196089424166144948020281812525999306481257948452912186364996825320371024810677595417606246074895593533273770256237744760586198139285524379238748150365844221642236081563469723032331736897948951283722366053573255020055415247713958290171213838983034186839132049083056616819662975082764749937583337037805024912693040043942096545293588833754696061493788806698128768968773744116754137414232677415941774789273275054590713030269189964626108332227175204984319273750400296335895761751744157728990778786505677538513850887805373619507273890455321242289178610349640923722558645310293282918811222427845930863814574573520096804594916735332230311234169426316886839274276030855659267310724141588698133630548568431734629340616433185761748347983398900340963184071186211125096709430948480561454545599004469074743097975012876572882013719292885023831082172221096975543279410827770330177284801428076641125836020182700618648267630840977408195052586800115898999798437815151567091688676038802924593131072264271643285469843268577938294830255434246505860299543251150695822004891624946398803390834935451096740045641185497046893471430343819256466819481776914687999486205137500837393311329437731078464865220682290771100507568622087330695314479113105369980410428453949149475207055292807911793136121544129457860246964508324672543570964659651406711148202663156350714276210438886119210648883948790057703210484230599960098990680810905615639098145458477352928012671558661167537295272066715124230679050600037002473939432060350977710395365549652125646237802030103052738783246640309958441132654662568029493736500572626915650928581365252681631621869657155601465707610983492507399207316262260824971609747957798316478426303562198304300669979465510437579574694810885594940418441826697568551936083886199509727663107827844549049442813827989334117800074511783761574961992078963392425880625180852760001504792768888056552316081477734274806669231204187414837840793451857390858923517760997845173675449462595367241361763787344911575447574708050457354863523064119276062283755278944262453554139902808961169394504983237352886478809603038872047387449227104636846438789787515536739081923268521913459613971063698101912173585197876577460776104291279525404763322080130046741089570322257517941528677719992382243721571054116641467355563774009045354998274438503283882311359871970130182081300310214660086812574187263951132479724256014258018299820024040728677383866439766245975948661468082033970828716013987416804596141442363810897339543374911934632336159007745078666459761125916440490827752952864817937854058713266162683165093478356893665636078594297699237140281544223457798238339913802188163619288224559160032941084944666432015140424444476988069596651745625096250372780946718683642185852241799003487923399574982728435326142893318186743491375236503499541052244070537063952619937831671224975855791110901824789670446098174751862210709150768821488645438604012920911994878878905381193135498699317382832135026785432383989923261189371525314950230876984226202745481034271868570892244790129993915206375955024971735305055926565476121236832382500525425111571230096889084136791792356047700437134345708142415963112026213467358181046665256394576539495387042203135974097067214992734877872712031869270197509679009647951248818495010309902824879874960956090174699320335753304736504794108680720218708128206447387621823652144119716537905011893586349796614263058278249679913950145086900085464228544628179827990040829662709350911505554450577364532580096907109982297161663039392785719205026738007765895205124769985447466669280884639925177906448645094777098757292390871234178341457419550251450233105411266819574181544520782036077160003970952631182562346400240638362703819182683300738880574374075169621237850465445699268705106659421930956092845861929190088379790099415776107858533421972742298128504162397459319361082128768707406039509101241607964880767000762845773044228909884394949700847647727088189492490966865679435743329937302925801105101040941565512828582816318912337420058017071141539965126826960036733712046034749628960869172139772092114628789613265744691817898803036761077318338615943949935353480237943365688165000601771133343909853076649751394350407999500589329603373067957780945601726196881386025582829235733130590429093330142298894338147189347622336730408270801769393407357552946577290946642069398813736205475373337290434794065618722003165076139861999245876924002102178815747214999629523121355372490934920875718749107793356074059758675889318453773332784711471554269030228943228055870350733996206879701005372917530015291607638040955287629214493223355887997439709040442430770083681301104710293733237367612060797274340491755418076612899387438164938657504521433511697572325316548383255551578742747925071275187395242235674733629422823879981493720366176084564433511856462636982307114880305593428094000512182315187255878321980626040270571522391321999940560280255764688112840301631440440609495624135894129633197430977825954327315758837757412002183322606858671534390023031232836876654946948904952309384325670381548411246990080669355149134375396234466230536789963200967551206796163957233948243669520479504159328677889990386572297410064258347229282707620483370312936983808075836049127077682974518400418372000922096525321976790399378386863483262175069989075829899260965144505930821392490158358659266580703288858540906863007031566014357041299369969025561777515581642366143218173731752118545964164176983402177459024176495155149926464081061918792171821224061283237686199655321235293931996031412398347678131993118888456717497024285768347018837060492683449735310378461582377938581962488961660356192588476323420495502400763224784212659658707799441633508139606955325659946139290959611001207397980365911103291372831623670173584653873727107173432838253136171855528324695563114766372907485993162532655945640222610949508788210278443295226323071419725862081461540817521249291974482327311137134696497863474113485082352191237518061745650441005832772858983700323348818071906392945115412507907403832214808502045940905515791131545967823621371589316626739581208375518455849402282826649481859691528536401376112746531917697917222118946236968394533653631272291780851205016431417687524345338541953211005713794214990648635124773818059863520197797653942990741762369140960089121248458056785030766207750376435242001472125707866109287112431115181090883946135909823312856316322966840431724657987502697987442263347223717433822442091550550006343821121720244849549071477144607897034034379934045548811466088121460621389410297179174700856379038751349240034930359855308118645901507796282269686315318798371026938893939529489264785182956789449018151766231416753732798262025683140773300749863465366699686737597572815600268162286152771854156710641703766103934725835246935567279728166935378275943324844842964439123004891315980134951031400117162116692829477447236530631825778874979502604623188611013532368905812399142956363844797331428435179988792503515249449737019215027557863873431776393182924473990026085832953311946728721374362440748121311683225188230534323256213161306323906130968211009195808031464012914163371601012785404884064980834812608297474371287831752444938415111761664323752009562952952230233419437540205750635756873106079665760945947543272329962449824185364428412312087512694356461326925041163970885252649062460461896791893807490250419329964117991155268959881032035646707890963574970129596260503571472988987182580091468585362545567787847767396389335559385411771413111989958885756244465597079124941862327421838720351738267906418451757450062732163429254951723572098149482720403587046772440050318397857150399450191813905356490242523155579435123528376008167688182639064919796454765486265822796164167748566957141459822604266712827795423466403222393400131773088107414286706789898494145537409292627024404683336284072359827247397709985536948414356320465644684575186886481082944021825039345070693269946475404117663121448708312155184073256983149838675791259190381383282448525454112532610588954819052614868369123116553781738087472813185033939827576864690406270671064155833325464606776259015167110833868560084205554590818335649055390694001181433029701098900496601882165367214993390510780565051202736557896740430208010955351802990287870516717003371490929931924290144426810636251518743352545341265568199737736843541244998142705853178712816502777553067147686287744986107845887159553667691471842290666178925264319269952170670047138579923272539808093575997285418098328762163617725254626487444619107049295248171785961043032796368986502124944367763640137793393747292180726727880340026358736616858478130770835565198680143088072428337099197064399492751572436142032703411809843248735690421150258697648882404652499867983349772450314518816257347109795072333921322309474327720075507531895737149742849115629010340890218076520105154000967818034224726189535835895239888981475765340024572057623079041947562289576739958493164898241266480550202748606390277125753027073844030798114544872671688116364334404796049050758531336060692137381066865439494960687732778904576033313677386168308704336671614930363372223722158403374169368067412313026305944765043095081222036521474617982437079024129856470130863704976203983079841124274663512776340015237983070704301757570653278302956516781510994231119883957514629513860393819636311519446748024760909618152175532211472931926009340334052168286173024759488749370209778104345125623516270281629965732955397883148073325983775153491897731434878171335508855659635466358166875404609334781113792294808275614667452575679222209775973061823935485383267943178264951959037865432775521888567688371952872760839527133471327543843231763890946327748349743224718879288570317990829211932361852307357371247104220990971059999666573157151646199805845828685316601285691813415425357415883926717205162583346981249434782901473427696575822046167067329462912526177621650536467974113210501121089609424888098510579620510911970847499484892433336467803928446954891984803433738368953459470579721882632584904024895569281360608229085516625463956161130174951973519600703691466209392780520033132737004600388982332900250409581849575927544802203419126498451434608644561293727330183720367895114478182134334498705249303188270938738683277072560731858650568004596882819698266648593999478892190368013665937558444807070806629888979679779804810673176766814777908318959914767958172991365144490969918019285129134461464698328221177072500533392017797784620182610150425443945577614811961338492236772175184854526770210452526361663655689294017032138547392129676523473817346697089567599404699597015300265810789694075256820664178204393470376401426313951517581606144252768076174940591764278533575258411601660515346113771844995189676271827274730470797523792620828848920178699476068771662251045479793404125294709701954045756590023386899614291804348122278296904413748786241892770590727779159903665296290860673720021078132928897534929224036783972998670789882932068944817103569072921096435503870285040294950788650041972457456906356311913152813409386199650852992781736796482679465388288539939522223186294312162551883031352839549574386865865497462050469332656429363552940578210968566314742421450119923690676020788869905550964936041880063891315089598112025420955575638215502276070839240333936935278834513736623328288046335051350585953725031600495302949116904396948540216972512635824735458550103219495978497934140779202141684927802512052333718696507447224724186871424770383317152808250435986325636362455944843269232135743351386333525072747226804310565502947762371245674820919932743817367539625520977115572698022146470695170816452912438463403326047098182261949031474385308438275298719168001392961863907116301323001811929767237583038226279605205383931734121856872854139261977802168146733586149896785284769827381545233566462659702673648264248818532259460134435820375663912319413963713207498460671855487826077643215095235315123159091534410807857114097889958137490436853457728760782985902386267403507288373559926133809017876175548393923723889710209316332981627839154168466501389037825576325496071223051656729404942921298174023586936728575527408019107307545842637715351516095671563632843900715223025606032017647470577785234366757035891300765205922156843366459831441173136603600997346564355037458244695405715742141235064361764371987362767911757639419261309137730099918448878873785322953522115592114107463852083932532123766352581155610757509822719835063256178053750047601916873547896523474131613204498351014272970137806387624620247963947397518746153306567178092618273611278959632237365512509386106726363709604542897716115862718828998139670577545291260250251650858302722516323295062220158038419896459273789955973734499296442460418808754662114301205690194318566623931260141910543369501377327774003267267046004502337349281569192922722949987989888524464949613483556951719888418213285736762281602144724282130056949618023303188287295733309881444374021884975743441005871775390723887263924121315085322518978675891189765737132716064768738079266679218523229035999279572502751586849761309792457191075949930733287949728294862730271215354513243081394470195096351549575255817979967435721822767352956162260186239600456840763591736244397598250272948973319763572676740122104416718947461527192554458659110029384409237877988512698557676091482970617920236059670310362919453758469041203479757352038466557028274144860892982785497500407307141254732712452888430958284942203052353075019428500499285734985435413820060369761882199144531620108315514923179165907248799908453931475302045244113513949265714893787816676326787242449057400541102250916487524213852830482030656398507529844251735350324199629893188582361793626173052903164212436683763936113485144691710824975172688414655320115911773456346071658538764784809335854842245306487596297610026833235042695013412227881225022701718148448667549986573391319680557557760604692475948604563672908192404595563238127546823467249067669747349251861592811737605878115653974788017503919470802262387874413948965570376603800793482611447900898561771733722961220608293255264145138227255758045718839117961879033770792846900706822133407553305005388378525068688543589360858838195496374971634864414830826613699741731852110531298747720429722178935485420535381263520070385790875896005064042755631420105428656597206608652992219637107674086740994806739481352811663229740404644296370767916939359219364880290927854261478967354296189835028523025701599671681122483920244522814977647349486749327213347015932624418034668619247332138323012268142192650946289854132882633471642322312521025683063300412962907147282361984734505553274229816427741131086168958943530761792334236144102685774043069502040352321574116184292629143125629871101708992875029305380073284741208893824079318921022966988755686026111284094868541068709882750423270373233189153689549195422415146365022468891381646696876284571647697881073522499957381816052088415048457206265236682347590597219779078355651738645643297517916225011735340434760215261007845541714436407454009186125316902609087290712504158467044967329611327760659065848043347004064423345183558421476150802717040129002353847176122043223726142254242685765280582439306385642271916452174430123047341881101406269502099962153813119824386632002443917702255639069893003998579818944139140743916794167663577424842347400060376383607651257894442484557660558929861880431515335361371374782133925788596127240525417208140525752008503309392041339985468410695755232029058551159983865631650577887773007608350506894652165723757770736622070074821044977691788013710700681549320515258774464317429014420903940841540833553123720215817635443039699967193913220566713702810090741418592020918749628853030732289402977498948856490260865059557756466021246731453985144761294728501241448112510610981504192578377521925035405590172284609834858382906990129657408760594734520146446122771553468603014419853919165077361879513667997968855949244915768934638320779635617139897814357251858245701257692549226245380269535759414764552261073098113446302359739668669622350547685103502969607549120608317448636986086166887627056283520334397891621052348811775979473617060207838761158679304976975288250397750182051442428566912729917364431438907066831530295634903012554764972607388911993048890991622619546444033779812801061498115389728481405890429864904821051295329309659275145553104931908694023244673707665331098095601073766642613899744150436082079283608046941552695520424780047907014967696931383234241395847660088522147078944917214420770808687264418996637812799282372944035095659984778899471542972606108078211248738404210378875634471023291432494638372865948623697243491220256967008989154945440855571561232243558045094005994187643189429002232201678659705963776728998693312364598856590759720190046263156813373187768085204795468484845759575441438585738549248700837450072904125832393687029632050513680063560960626444509202491378963889600649563244229609855124513275083200408110767349642073170222483293619136340039223642420580598521812988876087814141663059012299076115517780964546807350000534587714027531719406877862583121224095321869619596804746758836953044469238737990373095798704140043435429648041283914081352095350759769903821680567931043339990057069710936545038771802074300858497496345737306430897813010866930920352690259994144280701775167188444957254161956758906211227259163039168248876680980981587828642400348600107995688778064001436596270709698803746325729193919963946851136354666979214637214143299605499349237911506048797002583885930668509481045929012730731562477938865866209676527917546302472351427562070105863890599575829180056899535630195267952668416819990822365992211964640561388291508303134806522000403383490230258710241236706712737275593671587151907864235462116185391553815760467550637356430578461390275719162718615653024601073123188839679015160697252714351770826757511774729456110622590091209379103521037945719397382441467291301482421128052775989774341617258677953580576195438039615393230804468171332369444450941129907369175876161686285888782264574151280137216686535808857533655364385262226992011063628764596638095646220021591305497554273757839588324285180086587180310393486928952047308866892811618947208910896506576683136020815329817423303425662015862703852028144738220971905554692302829272432415378836333471569806498591997368537307779383710506615905992114821913716447597669034165468210825368506669478837645469501499304383372958566943145923441885806873979561089719476809023205382831214605247954111142898632384096740522667102679178752493163384916080308000227301973753911860905251889323756787454339460668063575562940665448670465238934149297896485137953398161595455966274585697272988347161886092371197626756445318193639546342504165844393407551280441360409103835453893590384183555712762128441473901017872351746337755073201843991121829833002166593446408708084746620882272660705943332742152036600263173176311868962644908036249292893935741385778455956654126200391962221253039393840809731458174243744990580160620363128773574705350468319324734241363838648637261481104089756889314627779444496385444019794497344031832881813887811606164423467816306007878543489677359163825786303726486904117558182859927294412218821147255217264557979332079743670107722846864630346085552622968488634376353352562643654795781203551915915252948966847423569205042110472148110459344503431582964997388739905760523571877660220480657056828438712045522337697849096572929055952487325945615921242361445926427433693846460589742798057190030330243727341249916152693683052562373322594661058096251509781088579291296309150127193579658106781515996228308600133675276128635765104844794678946866893409388036292630566316035001896927460118384945090835967753901066797175229880121314558059218170524542291694672995605463948802356382354314166470395180704526000194933857486466030676155214412143585968351779393391642079944066920288949771848113922690369948823527366361200807381925052375196424351482824705004799794470252766967931454384963029881512107612696750820866259785188071369721006687018574660950295693404761874623721123433014296182451107315563774072007257318570685345832931017665144801662419798400375373784096485566876700354655634016843285249147324338755435370321345725305265741657113100878132273998613360490106987552101836004342582914681513623747112028960038373364936491655902583367919838458633274986264145342096715371332367441826532318024167555504403136917785613237161065987617220406334516266097787741550939480578286588386446301806430392732533532693040604965809408860778518031799460294710932398237566124463953339706376461552552181886480781605313278864976902554369268521502472276633621832860629843685950006983206861129253358448632320046476429949552846652800367312080446647679293609848632939407951062046482166080194157609969895913431116892681110874991885281965958357955625290164560866361597524427748850015674774374607429651108567202944612446336197884632848269742564522729551959117452316780243147901848497689445841973592296804912529310026306677917929099780690109195413319066732751008741312543783237663228907612366533942853321555717218233897018399368588241116911057287285170885721573329064379584937638482562690363813603155734240123632859032041820833678056120433917509741722194297416377281770295491961226024518117967808465980439916033152757041164509969302699459174120157594249779322506354098746322828939623562260086673679943045794225643130505295018277548511081908824190064750410800314421250412058976022637296074355918242478805677132487247710585063762144152692247299388289183503503626366650365093808084900116781634648874369048313050373726239502072586466669223139745752842913961794406221310190370909037484594942886128770269512428704717058505672067670114861728889539277899614081784815047843230608529259961974479957822277596544000135964405343829908748177298486358693134101231457108079444944298851296676086950017605343993866915069847294136100967622768591936165193810389134781944104232126443768579093049334444209892680218426027021192948687608138961606118079076693427120858735202974754722930001927555127038498215875036938830937645668067975551347968220022163155983388855158223562443815404026160583503238989633368424209229145854211281375523641654892613929499766298195531410763619370167045349185830672019934875850934428428450780925008608747429386484164131237658961909010231275769361880346832923222310983884188581769122759178974930797393018941727547843184355377592502543570156552678885569762264965944915773866287530139418658845589128949375760576124382312282057900618869967187093023044916821252321985485227684353300550139440478662302109698764257909545527129345324757960722484826868002672020588702441287156765737744556487567357812194990388808917260594770213691858023238702467501937593646783075734877562491064143813826140799409735870068201766885938483247426039022668009747979317789640958034828463217786294870159824181716089621270411155880317597960399363168269565479851561138957940554771882450751240855916790214615143096058717210068528862937639902483611009625295275443398382484443645800006044545831140044015014560887839115633223783989441151916403101104049753191935454104881019517840827402774686785015393911812559690910595279876943720088084940222163263270214722956579016231673444445150908536560761777675179098695504131551954454220093871415246710106590181244872684289789794489774147369198010384320694306480248690473635183742301071834852752627029254791664465153748422475737399111305024262985100139895946199790877971832001054027627465215856192152127964734186537998050124798621555277225816553851379759538689232628347608729534484301958605307462381527888034458251764415049093794815155636253855984121815255452057245363981608126769093165653762921366686616059776711861029260505436944344580798750134069058860813298394354430599660378817941453928603154054095103241876909244992738498478552738917275253545389206606488865825023520132498612881930366868001821149814864195252009165850824588713318197421601426737484241194104634175477922324387605426100460021588351090001701313406241364899598375559055245656922794937631452138838731176530644030999750637790932630702871388754587270838580828454683899429170858126183172090713354461703054963400148041286756015481281768591111074306242297626540740878206349933314793155733234871475057930568893006435785176601860490541314747295877631852236672720659832404221040238313861416119708592296284311017309593137912237579368001718909397490292953659841831449557946992771564174905620996695553611831081474940184861195735908642679028071262691373653861104491984371806838624393188716758394382507089602029349377904730330894878126161964405521349591877856756428541672657777839149715333591285562022585835221481498517442561636508870920510301152232254538467173576066897048413748020134994531724566056266792420309367086004510046005273490112354367402829227065109761970293094461868503691839995933669019380921826673768142211950656828183179402146937613967319386452180628022046874914556818195163617083516829819713652100907038635552122770116730502857170497722036666252872305760997111761301422567983570433412248836657288155953401575602945832751555911034570155875762148752350715263968255275057000626013402172774240923452887363696186341767643583524987531264255664773121000693121422749355034392334937857594772396823721403689283304318886341465350552107632771176362007649958577233575187331451528729576380163126089178521950355383617558893729794165198297492344083465643835163017440463738346835721260687574198214400997971268573096237845657790873797165781206042644474031048605387387939278023079851861510392193330593334104640653456041411467521954592181549244359525289134404930356905093140707377360296191033774687361231933999727257069942008535991641836453686016168554258704255925008757482276414657232448980931486012679280247386527091269551796852851745961833452046891831845165813883355985289859382542845047907142748127845266529298743175426703070968897069909209958862508469828200802111175572492382061660494146058629703567748975266323139054653175235320114033449708141952117115208255194393468381111374503616103769698865210178803362220579161238496716175853542762017500946641052685090300901771688291503706575935166601262910692598398494641000810560243268527007557484088526069117376128215230783176846671829293070514436089491513396184724053157278295238452207721675983062457992847820645954269357387026357208817001281340841894366083726093458703660437013622767057215780658795733364166005818138138854333520189342942630483132227277296981479626292393907937612466322397394103467001080943612889692379353805380905256880771839340998846199975530271768100005224666163329994980338217898241415416309875081587324660644107699698105848166260873576596250020305327211079855492242940558995150669719239814838594647791874180993582867804712811017030571300821580257559465906498766516614618964350892663917545784625825303153985938659325276541360534714865464820410896438117818082969374736884044380412193852344185228674255606991871883777313923092118985415711817257872138918933466732917285576499599577755353080825717051414711806069013075571962155739401899382060385058926109758873160629904369796040770421869457838745403395981759478869117782248009332434715133181886290675127248754363515424031842980432788752385379537678910303073177899114334629586598780438935252111949068297647233331071852283782417664720915193135219209271890065941061129338985918275420710873445741359637708352839132162334143855179379222035178072297158547796091674296607592025707147336023465728153301173385318854214397440580174642065231608958022316623429005148537174908992618702778199259240332466556144103709214781947257447760860851129102803722910997135447247150933074460243164035546098721191563435758520310581788210757881866219412568747722285088999206100769615133508999466185298252980082889232590280544672749174767098409277433926896138690618843055497725452514559024717968602440869369544656352656266508627048642470219037354079258886606603351367118466463493478859190029379954956958387775129950606399463534785625775049428687851533491982926811978003971844672937962031878496712991862135707158293953382946804351858890451876187692781398079946140895048788883067916132430455623971602514599563340538462712027824464191421282517476226701974168233731565896062461989317184627010724861349390248021562668972434326437526269992330577098712920155380809654248759700375536955901518367577076269045766791094544744687800047084854049985635068177044072382199740695382662194093254734868663206720855320882219320020996053790377317795496460245793560550492667050798196152688375346499723475869212950477299841823165376071673830211369253327377500422193767694820870125378520621407418989573379755398890031127990333310484998434755007111693114064878843052616100069402083522388540196721530414738321383736578065558900968494473005541210557286874902115515248906336349047530936830493094221558948052548001211206569005253554835774262707539523289151970570306990760190818242893791672448074635194670102450815374984772408091483783518368046382791737100848078348368964861395724167068180950401863958229919760065221409719324620440542207743329857711625592089019003730591309024847464533843371026679798340958746622893535381940981724130144722786288486953514429156622741047974083812219838321589144514523175263656416621890516454408047428315010404735445694395488621336488167105865797353785482744798019620005105245131939907505738300309973086966790383279345103256360147345987427735540265477813139759778536144369352860985881779846735581805160549336043215478860985367903354772874177641177404679766162083631122696096134052219218882324013963742298610699322954968426939290471419443101953812172329230340493543134165594664907498766754610612287380399462991494699497899680589991264297564708609753319204866755833794552495258118779732376229265639563055675571986832392055801103466433180151988345228585864922062434662832151924243992582510757086379095449632824248344065086607788385346247444265607897328928449947772403934254632837016600669354788150394457829891095592979518503672177321812226982603323359183233874164661642029879530003499788654226859437085952265217359438025425339745624076556035998641921033866484157442745642309938230959925325979080499677253883906966467807681461011998534492316066983577000481055090248245457113624337409982211807060604332514771897806523512566653897675041761684040774038507452301625783085922190366625192995626742172403372330433764630113172824774701026898102033615418722410808527841832977387145543371104087291133745631405635210360119995883903424420786788302158482181709492254111696515658802493857356766935779494200398458036804672317268245142607622909603571805594262962380567892615300803105032064215522062303003907955520661367091689647150493428406201393682477589599256264956227972686040178606769948453948346013180307568447776753539271850349801509784593646136929902558980581700240164998824476837262507240345111796886593044592214225745123852703583630031040685165496617096463056485981454972556025111066017905059507862424992746123293059158844075340930498765990017937672592614344213251659587012135273217879276850824329236291797710186597439272523062032330877383595971084941610473195635404406773940659289926335267639808927596949330719997261509061678728633582998725193742138209942983593748571913872411406838418417917506631544923154978216542248665283014423267741769545641532480138501636551639472300119601936289280219426618068788177045537542085283818837818988097897882656073642606037598139397361083438040076987945630923421754495544313437221304479377943687760143670466341784193557608971962332313378413089478650662462540371065316718428312009463732272134819393379961824505930981498300109525044246151250000869752117352248317098442869539333221606861828930432487828647444098232335506304604378119918936380103203546064021211506214635418941639924871927208020816664755667944376256107199950896460253427791874173760488768724074901635367171268993853992134585759257674370113014669267854045223150152564669006594582646729552677991357107250415232612458971945451848928271252222886254346631143996873569351109526501079266727376783207811716419085430490128601538157616387468141528455745141118035772116710706169551695685320919392347389680938673193704713725033821514471993547935410591388610243679041300354721317433302436136006450490840793700889175863613009183080564711230380297685376313575815601823699063985184670858287597636866618755299120667140923625547605261046303449421701069921201266465742376276383376496743430885686625787158966585611946468766646615035984567869616109953173276721114112398744680681683443954839734755834345420153676881293651958685148556511687648207400638682149912558942192186289929336528101695785943049713154967969013688003702338796912472039079906257811462673918979265043538217466559014730204077490084446549788998681944783923666650735973236991438771098592476963279644956609805721537029180443270733332822449751970754172438772678243931447108816737720505823369735875587903579629767136102555125230204786859561609073981658501290351960953939539202070328029346609846729760495992018658622638736598863224003537833181267158213763927788549087046326159597920043505148294200793282610441056067075974702254029117390178408866177173016740897668020916074004139888654892806854484410985510001100544462350763977308244557582604681620147809094361641224363118439046345501149978687539269183024134368691827954937439985989925154762524773889924222569415813202195656344410439587234904903261288569118414314411420542001472706473984903801797880769269944007879724586626758617709882556632786447409171531873999101394849046604575754102878986980108289402782850047476107328051699568548855912771550738286301928403865173597596139571930746497472764758682679655047493138970276856187581719997191376770133702919216076123649460512416416880368515182715356625038733520736979398602893928016806364995611456487770546446486131222652557200673687725687854901644560984075592334536972926282277368777395163218703547515507098338454797741791400688806032585943461283296104936771935986472273305902077881031028471009257865206270194111822436830031918822724812976646839243595655327540012922933715889404206452001556624252834151319816933139159384148471742931218652744372004118704036999830408113390800016292888828835278938469135197697784845915258609352597246721391214605545902060207407041273992590533391799458914347199742579460234962156904939337114833981205528002924458697109484638040605652091755509841018761964094438789053787383721173681517441703030342746217032476863818286342695893201193002986749782403714577594152203879167495142644150063279045590270324599670090227288960420007057593741378127765513645462249708605958047496177345647526921896549604301045268560270761673142205781660950220055374272307252067942595215110260120051221189174999509246960067856199846336442379475798276256364992247503238672734503712984890219424132251934899908308993878364781370002888135750584042698365685041046356515333787093497371356089609049951915602338275411021723453532841075668088946865837880137845291790982423017923732798403504794243606075287103374717473949220626989270544471321647052162767214249815298181801069813630334107443575258830115624808373696208152966686828425938612748797137761344379461988205190900909081444948907010759017366815391197586287183628018892531529681526696872612577200135132273993940651476407318805437706203921725092589267273198718567077898944269445758051511801450407179449784360848461666168430227084813834952670187067786655505999171000379768898395335237968315052443326611780089192276894602088793518990328717199906021521554541003599065104190510276568490406598400006783263356588287078749156864395561965038832246077120439290513499789504657346375038417212331474997282962185555741810276326832373622827162272701827206723753018959822762732387640674652798071665232850748240859662395529815063238146712653321408823616278368383416498351508721114056153797389188548956651686551438566441094341794564017363983967629789552639247399640832071949715194521936848298686111883430347337807921905429392418671877352104845768404134029497259352862138918925518230955690781648748116502153404920871352597678449719941433734475714053649615176255700012672910971852305285038371830946969772417816540174628490771850898887711225866009509928295927245340786822088109331272160331830514077404935241389828662228097404868806548650812659218464317990942763819207694892855613396816475470516091401899679358107499468319204574163193441133970054084744886919349319803512184311849587764384421639406849666445927371265700524641153577926512137876785604523025933061221267579968789884784120493211722291086293973600147191955744278050430605281760611130815138746784781192276359372458965340525152471094101955087822227303817735809204730775853660614463657738795637126989013006543621240541509532237361454226776380840474633600366586597476525402907337755857159797529773721867407965581511483475336380845321464592823638325056200945231290097442673322479362116401818509279198145685189406112992000055260160369035573848117379047956028136669842688360536901535147148994022072787177687235326779046234525809771344467390728632536633575709766494415072536275138987579025437684715947750400176962117966355302985540677875194281249278838591306363497210376878660442763926010246626724163619391107125316443819351015052994118179410426548622593756606233148763930191363050034893414884871443987068210276862212438179833371773809016317067043436538547158424029983802045156981587515702706848756317095358114892207784167467751835590678651321940752857902191442268198559370985282858650764995373173887625018971845764135079938923496127014822959097293775493658916313805274873144166757506173862711857256561552154245662723707518584885698921842857096433319376032562961456163540990143251345861397534298791850934537047051371758640306976576544435287721095864148201346261351824229759465483694311010804034138970273711424481517678846598708600111399799936113944782140976475930582238201243606026637870679036370853281273940152035354921585283903114549598262751471118219062830643893420209881844562148612680235309466007673913229556624549078280602960543540018756644190391224010058355582933495310520464455622489930295972860987245330296590365843057861341505897660211459916933784081570464595295864455955369227123128889053368467276749390088351450190140836004449441184389566787692679682159578483124537943048392903683901103408976821975477224160310376987668261401969010593679725759452141140139020462812928768524328122154626047999185162229238545594247539183716667696112055734059024744722231837681633857833883386917750028263321619444184177414255657292702212176352318145261149722022562545906970420278030498913713019639249029816349522640574773448572285149342997365923182460205015010189506812838866813003015900439218079559833565124023745910849366798937251679062886999749370710344999250500250411180282963791346839184503773580176952931809275974046835434348527079561631828344252019938955166155960925584652417800213813175251658564976018892870226131150377844856446954112292889362775501836668848656425155897367979624514830591572381782973384662714002016260498103623751707263018613263273341322557178499917577922276866675946684106583644719023832969595140162608644565507440181094684896302693133032775945998581740719493031681001941893296337943608837796514550467977447113746815570639939985229960858751660313012263093932611020163625262915059138686954534837418324983930806969692505450076521224162693856823578435431395425566655003851800130760077113521065334261990283908890938183602105696179183639141135658650284383226337956345196673563803788957196294231595977727018897593595930899702389018161617976812772627902955061247924797989517517200610676938308143981238541821782484783377714486892034882231573210300580330424474775003535902829808150753827266353829750031746413953802068549433569493039442968006056980777442098768495565309598970101863582136031723897824571239369942720557225728872009409018983405545776936458725005511344076876326374531964344929728372792902271710632256775256832416880132964166732229701865888909686186815876770485816819080294869873762622017745826628530195382020662471436675278621680781603073533190035173936957609370384084384296229338410044918465520308244447736947394270390978712181863837109869007989212774238760801695235056826277386395936683629757001461315270366351731922281267268765407041586155758621579130970935420954618032094894951288548651351017782002339709799477210487603710176486150208742476538511478550501076647557667553430207757693597755572056655222484166911997561138089263670766608899841745500266263200904326196988691354129127983914130279590276343621406291111048526101491754397484278017973095225982818366074263467236741586144111833938353859596702808661926736015226666571998221015513631769510760740316948343579022788326801587435649313906817864853916854242235710878207838898918398135293189082589598846517417398091815181759850079193720462333748145065622693158826680882759477231613488316039190488920234543541885389341283960410666228753130642530169472424793647635637656081978523180632022259047800472235792857685229549757480045509224874184466021699590888401117803444522168588507116509695463569582122011035022093963022271283046970666498321448464356419479169077420807692849987422042463244511118553772071820233545712869136326845240915952795612019173140066245809690564564700023536426803007914404271818001896578367450830783259361422794638723845015101353001886061850811117156745801139713099375576948508423921695125663351713932050085370514347035317588208504861797816880420405253565041433051508075047849087523625160133511927864340210565740169722413669389650846604354251369970186952331600405834900185795372863217823384047252205586898526180876736724661977667565864351550406556831900556383491025573909871827823379414623319769745217835429565288806146542257565511981620492935197279073869847446208428299479274205807299757911478518699133417794365630430508792522019867284808226318885813067711284413271789069219770010283808671462994304212560971567368274869980903416695140569129089382685263193620883871950700405074166969698128196405271468216971203776027977292450663641137164038287015445048076671721931201426112740998046963566872866485887426423106398255020943287600783693964097585621945237007267751865607924719806976348060258224841433671833580301185848216632596513849916425839217305375325004022437881940123717293833845125031283377743520369434340207174925639126428215800941796412502852007188685904895652370054842893656493037526982511507802589462758953755509988720654101164251587329654535210187219215990824841705323011720557664226992238757795604951294410711962002174821184150363560254068843065733537866936224577759998859096154304069815659004194062169158777074726362705072160024745455048605272897387736190097312055396987486818727830573462834983285521405115877318501196706040809385878444342401711991839516100013497268231576611452830033296871979024493516125043720321459020509429379732259167274193798099647902367619238170808610399973347049458574415792700924489553562981136317616946939444989612537772542174511453672176609682327736346730006270674669380186812709039824308697069722303073240049930066958540512099868639163006676441738220497755001888442250075862350984833476694813816393821551236052042844480832357087038574074199882667046999260645440030114966606371115097396544749407901805352734928219178473150801504720313394659150484288903728862774767375678944402195956769268863096914276714117609087406539515710047021563997560980345945868700585086844756696771185680860805601784795537681497689724358799858706218660554385307364159953138350381513209014527420010079495844673996717257520831616723321202227424901485597154441410733085275693871797041910194576295095596440613903062205332247535100265234394596215613246433551866458780559633109393076799248173744625203258430011684536270184384293925388038041595207724448133115818728318115211479726800710693526645127556602254511414011503058651465088129606998902398258450047523609572848808692773778749677931065895128964609275225785010299514778080713659467717207481490978441743200172155616484677085989107630103080419951227452918017692089925465455126204284140335218043949433906003529641276326859521352791635585137592970469983291477399319046675014475440660307777145703315504003327653607876931152576548539562155105430085677695360039164561157013755901491416005746214122659535900082784820341554905367468074408975919249594301425274617397689628981789393108382813418615475837479471445597061237423590990848867302830612920286850494326564805288098664741891938366016146773318487649627837379785967979119604994015783943287645696072648477701084188327486915191324019155981280095053260058652060881134151218354270282095548516734006529411083046296505632316225730566204600521874732427957798893097829766289577792392443110326426185925082005657000592642417909948292373404175827204220347667911086473224303213964882742107503269756786231763926460100097876191475429049395844439288681643572004729096440011223946352227197742870717939979402300447331220284950612677356231212248815372296169823852966628538281197779655318355524850992489309682797225786433756634464641795101495669437765163715341682368642536466242083184697748986281281359998981264270050475866890659804652094597137762335769742105660107255422774492373163504701954448412935491856617624558441197533504608111024991001939625357879924127228189780292933992121853164266415300711093879354615785767698378066501444671228927659917093029907002042217628461653172098259264864822365259611254958403785626600903549549214474442598666477859887218628161524755795450274584963057573527960593008593869036392349518200039621559000587026146020948164077026444205170999304892050957658305612724830405499034066868345807345176216291511786008911792934084802224348938807873965527637056881908841011955395235105675104466397109458136876506233215094667723283365488717579723481817674879219959044242845655385667174129595469182667761922562236247144444597042668329157321196958605399691693534322987660679192762006890699253899271705050934344803123063380558449832987154564754926913736487873619143433076488365958577236093230948316848032651851778498373931524516067065229761496441751631658025422531629807572667189835007717108353791166605081766850116555426248903832475853733661125137372511028765289916206083952886761533401318567750974114282128701301903736653162212845485626389582792987543246281524620449306584019061540644184976456305534613416813825290264195333227559854315365165587907857411941435948027865230122809307773650596700472724912034094486719573690175497203762048597345396859020766685968046765136556157693456036674027851753956689657698235034861060512879987529106626241462096976934094889041584999385251701940763270349171805759595345763643473944815118181158199721289498643393851992070802768065951382345427347710526462899507571485270302907256108606630046057215201763986085528318358821636406351334729315209867157158950265158904183939005651428032907594843610958026697643674600876679675212659818844535226974001995991150956917837091154099035697276865422255479046866370510275986565245040534914295172546588564210107721926668796382768540168941917383135184775485394546313111676565341915202478233162552175394760747435034125451663139268043077432573189492621380221450013432361128226058434423087665452615289165073327295460679923136306530947696548684468578996746986394939875563726312696789160863848222821630379462784138189148783923606350829561346609511699938937870367518240612019341918624488349736626309164204950023871201587589524559265542983182807942980635480809901243194994645265056726876538873573366815974260410564992334120889882220034600441862470606444859750038490045725200432827197994584998896341623240313996078279329304893640489773294148802317258129238521257883457741638043217566078088229755320599640291839769300393865245427620179513581216629966605256044393634007866205357728002701278660421182914482810198891197563208905228638557152049411838443646289084335971839679448529893112873977465517312606116301924832714518402933264790173834800202127917190104055501548057683020316929540766020309949238372115153809717597603950169025121998568435514466692297507516330609411618759817982321279126759788815289143378064503507055544403477427773578444851577392785690414653782939824951850687086618958620088346627493292803574943448737112959612265787686033206736905712673135894521911532880792650187081078274573513938592251151276173568935512504362507422176490427867346889764893333978463914572334401895578392432246463387256958133698678542276872529703566381223362545470854723835049213665413075137236440069419951067244750436182647504055581172621758359460501077819096661826978289545212729569863005631593558039249678354576788030672859525859461732844199375201714282005727512010904083914157005870634960001991055474934948175930992174643838102490051747116689647678899122233549606763109670682080645461004402635743347921361648253014789931311611657371801211714631604441813721465406247930925708051177030165810202262955944871499764105807906988541204254959812835034419155141867729846861870937476395033839525552133120465406482979631008494707461141025281154807526394969433458672104480597207724502281005150413459386214607399004524302827454087239510806201200936320378604636611906641810280579220538032047933029370580248115639659026587340064392979445970351775266995302915853932943334327151645882028666189790880799998758161763192621249310449465511885545318812258806290188667367280522615323620661322594922270737646224836079478458928022394327249089750202971822299158271071681221186954407870075864157156616731383054531822665298463690335143229640349695278156182217356595767035042562955538338237359258186857935212152313842653932214790185452457643744801644527322499748978266728117932449435530234862719184672091259318056490090226530833994900042759140538318156954493392647963220313601305017497289191923472028628846620937710646726219743325146265970948416930378601387918089061045151589892161297159797138533918875328375136085430693109266061755297685792668107812351621112228693289430936174218485494205540685443015742788351278305603842044837134949418139284128809719619600441472177663592779919092195911633860281628115882543484183339837989424247883403725744348527831921975885638571425710769393462322803542359117644538352463707506421123814598585075588549345082791934167146123570986761325296115089587791143826289444195733022730124195871218303029095974951567709081481381841783282697286290419946183236825359246923124646281763987691244648503460426430400079623795816774793448382946309331140433381151831039842610098150906826112020701355758855181338524498805319733261213619833435222416400259131414560113237385890932341804027048351758816293958452526334729728612133354870728277513173140890527683860211967537047580430934602630958621036071121180729426493471278180094338319973200794349256460804184727227222711183715021696081840157840163429067263784292408252495814131842958514666094037950898549575119397494516761054521049002744080816572921077033313532409684740537548399353905837727200783708879370135105168881035738991780953611342339670171789974336209881843546252006115471203393611476709512651943048994171389231577437165131725053049716815443458662306215077269180434433155577757081399822929722264803777970087878621841093250704929113946181780039899436912706673384998498987822218178402855284862479897550990296511619905748599664310295714503991939768451964535272691442374788674436394163439805302318785472317189261949394782089559702774516665556772079205416582256278893958885677528278653798567451114627299539471737624534940810987380643706408114100825962859424565483458548236705697676459605391594682530317348591035444325750581741974321434390712884812847158225453367251919635181943537894846376742976569928679481999423926051401177664115443609562979580476223406745707682109346372177374744784154651838499193874140383951533057124939319712965298439261745765248850724760244699338304139535469632326751711431544267348210261971014616014404502290186663237739062585434670473723714669126491175624279155153819656986769862257962662426325545449260856042485199734950625733866294089368573405447918380861916462757129213823015689243395683346783703344100664476741550914411301944631362476319682762420152775660592926144522858340819091939488499670017706754864797834094344693437369664705600719406089763014565500659984873040508952193260994763949870822452737707388699745974027787092704614089002755635584149137873605486692977967857782381139303665576404995446811761489622022682385254097968980210067373725331490582073437446029353842436437216458596742994764188175639628213039026573159052869035157741808164487555726068047236255677263524837231213286159433177092120611431545244931181570779852061419191329765020534984265552173520104432319395476944027120321734457550918908931360443007312048700709162631869435829309005220943428866966253530766412967972715815266670461169629800149845008964536171066854861494641417139585185754390803363076666141760418592346808556530523856359869480128276357756340413872607624340078956981954153767612380597383120439892609564182638722976295397543502495748332330229981367028862567559951107070764569027935644533414208865272520178812081906018356412155325915692515309963799929534936271552812273057875077277215905387521005584008644355853160163695529556287717418123086883208079972185574207334081253470456142831466528529533114693741662273002149868679456340280550331467766144133053337708658582089498326707336971077072625987317566705337179294773732018894021714981290631885269307814704838374452832290483447616034823160549308967776750888080024768242537331288504408650592278936296128982725883274772942758518271889806827142439788628480240966358946695218442740169978245557900548833382582892205623752073755566515691307062189250611244688884624450336464748636296403488925361829230165581948886983172644609931363123673113701411850236293337798607853564390888763249615737205555600690715504774929521863802355697473876109161010665874444345772392659627881869474807134675198757115568341854345998689232268950419029323281014525241899763122874658436424306095242466446389450688327362684472903549342555502713265416028873086993786162117365755725997410035709894783581657933658042332233714521658501571585080315251663549160411292163318852931442199159541788533936448931420981583431399282066923409724089857265314698509695692475046809314045838818126363498887617176849906594204949450516722338293262125297729707498525406396986411347559968697694030927750642063301312474619164408014010163455802984955088276925276960825971183195030262507708870179495209499031657504494996047824542562555881579937397672180411320468667286182655770101424437166391773929201514014187110752348678627140977179834995449971953116211528156635487164055943977588920643788128133958399481500404920881573653171500284122614066330300113502402020221469326475581114588931456727958722009100765689345484608911849724477515767309107992724920680960480198181879328520154120486338896419243125317885615066734851339426530547775569432234398409742415208049872731295562435007318488523034756254034296929670116647544224476913752775430274380795065592222445639344504100957796266035753553405842710405612298499697448502009803363801573887066212685132474874114812593050863029752187522244898057593448920912256574798995142294943442663450290568278711051940750957594332767465444951884021283304654319457216855520207765322846493143052384140862237009681456113513542417594529475428467380410861623075497781212296845343787703324068472445594146540787683552965416509979595516244138438552215109660352734853495859363220910659031266674078307059621202716693998990867787486360228077522670369365362665213268393366870323304943050219858492017423727756594235405629096810124975555062000394852999500894752136500619497119164529405919391422513534172161245597645448408090849038150544934011562643653112442663633895101518078699004227825559858360306196099314848160041340658539754017649566455189965343068808576749549883275265733817911537767462638920054491084988970303391053561789148982139750476836604022102385425029524011826306962383382041299592717536369303647150972654335641771874405024549397316984448204868104017310948061608205953547272895393265410030832249332568790991312854151038083401570662747437645041542432496854759089977279165793173015235851497607748250795083066927466782681635260108648172425228419023920318419648444729631803337003972581955735431199865325583903504151750061070720413736960987021562046292613619499336696542227046804824039704451816371616520929385141068495592827498520696131481397956311069013494520566388953752125836521396326983001471426927522678548716747276081323422738037737178789448620567596753209610195369574029570106071574979968132776959381080339516384019380304152362771364122972772874687469553896820617683347034782370974990185303659576582483017853999345541822592616291507265471449121328379571027495165099259357131039721767258233843377105353401982222244225778830441512211696432496159902750233943315541090849599161455292963917079376863170700435867817628375887664488087237539844439295237365371072062785173644333691616454137221035326091395902295097210368983453195118099327745264276863339176503783986600835641256900451380852525474021540411736958385001377357850555528678864842906810171062077904560051978270415611610532185397424524673921627048381337354741472943827328322937572390252912928893954258202373123829407479654353028558103598715532854099470629923988438688006708494173612416591851843299854736746223012834309090004133340935070399210089675951466869198606149973611721076059957624559965592225802220812136474548164398979309189501410058233416859069673748698849497717747319341448701965314963899945830843001584071455766178658403772735668408187333404663572623052338491025313578677842337887954816951174508649574144489383131874607544125132872719023265577404960928302677621388311700921850987421300116002145723533751796838395394545213036196898996972425311399068908908353433124557997175304740858823401683847147059639047004710471179881678502609171810103766789289093944898069558454346034429701907231229642234820133202682496801548818135958248439852827168410572140570928137460045393109740024122307566760540766770972797571256874580461038964867563063189986661548688001066880916165557560323667159968919552667811134944180806755956798293073311957034880174179896849621905196397625223877693842934004016580033130064148384124147979188075612680604838756283061531396534242961462795524444231740719069217246311085621732308486392760490055520794443354248751967173672985456902373836160974337803649646917328212441067519942137177642026210421950272989827571306357404690763003977407821719124368757557211837286621839694430894272869989300860085051227973501468777107084557219451605635339670389011269475375404639815892089895899124424304228185408192471289753509640784115076999398574691452834261563583512290679979018031780619612558059392887175651014423389478198445168569602462145876398463171388661395566375827273400868292039800858480133455687018661341935462541062647161004768031404567301973256009465228250472374972399384062984195803722557533621484978993011054269371989297587575390877585923109533050843363428627849953742549195504592636156306515508713126841074045520791452745162801728934691201210068471322057288540855029328647070226847068816796908562230785561055504641511594248905321983751559951132618525008946477880507692358672336087284027887736051947131897902284467869149544315281057621526517122497702473995245021743763698805998451412032295178365428434255269212865825629717587861910724609255490470613831231288229913971958514166986115395509694674374714943058412595336419254088957724801575150372503026058707260827943234699828808900565042795126934136053799738141218032184757462159890353418698347525418135253940504145172380343592573460216296790190636381961283556811281856614684008505362786128683620914731919979042379120524299109311869852262880337261292133324739084836369160206574734912931599826297557413039721049398310071303746469316421564433965425386573385236504560013666513028137870639587165972803137108933237308863920144599565204859668696582812048695088587829484080964278340110384466836466373564385119802406824401912924937571821181968659491849552941675911810111259351255459569755939615222249094842186741882414546769310706543168901661023367035122559242952744961803102916081240002096428147994863507200057181725452809975797124445130511349137139038359700068943518828403952402283647788575290760999071612271046493308755366020452855802155630184413361089772190560016394174225100502772083751309259055169596963349062860228745862079277962194423982025907651265245515693531236943788991869353768324601634486504391785392974625452140039263862043422025597289599826022151744209470742873645149372071342601141525716272859685831032012443194610642983280857945531268018921381858472398458818872066851857092160403350390635698806359707431241093595946698685676558854516154957702558715291211208537737748299799643071412882434427826770142506454235905671031211198611325269355211443725794404602677529843643328571652350817768932952097547274346700817443796934799994081727636191719995337797620024782190519348858868081022767874737759290416058750407684743177429512673079143468783187361237771108910850567127986908196526454276023806453144741548799088418009409206487133282219022957948785664647318769371181752916329793326823478915320235529467973523540198073413025673042668103087496691811255401112767252471000999981668374257557952220304036512689236136084009681731523731002120922751544184832611280573991684388108110930414362481715735751103790113171110163009906683687359679475239690331757658177150432109291902563708222224680994275586581538739367380563603403887810095596583805155101746980680857031786924879295408633782298149703869454963028105920755100105386642377630021233650763735004049955796179216821126695730874742089130237764285093128655438553634026145117957844705186595514442287538181944995753807724190435062433013996467188914282258085277153625615723414024391004096455021583962753934582166376556664364490449994408411458833360132577133556438313417534308244020364188534974023406830734560097368807296618778908785979401947815808261970649083761828480772138372384417471115250617204259903764987504843911722348916879890641215796901753848396573216524231346587470430286024178870133646498314714868519780895106433808391536664405076993150168835475700307730860365372874917472137427480639809391170956007303414366177869310243656105817727736583201700417548204730499181769545803432324286643769699921692453092981812441770516954132192166499767586148641914013546438633360482063276077542045359249016910319559214063254223277364015583229691462185664470568755757260246816956588723631732312318123702442338395996985111967273675098690973324879773843174176376490784947512557840982327727194691178579078603196164166232743262624580911038642126410761855677361691750471570083663494227085446448099369379462743132458289145990434544455202431108715806978382346892839359732686012149551405739939637183538296784911480624275342986686813845479388343854696590070238253195673257496255451273090736867947606531169563760211945070855373305723680963069487176188899066581630548971776219047740463616165866332219083271481573601113828294655979577332241607110892143531331736521453703866304826527934028206902315913535378139950824021382779712009607758606299570920318801027001630972907377282253797096478040743783987274513363436794640536178920342224473359145421738484898712316118942024837283642720656053658630894298577889968451269347319445593920608179030324572367332565441201799493376640308260421471340786020479561723668390153987332616637065770818799438590867228350544011155419898519204803993304693825151051036786946368030919423998625868576419991014071760207673256502655572091073449314588191417337534762368309513478808945010228682822656573220422195659369171725608411619480414941551225728115957334834244253273657929373719103573690361881100364306613424769830368128965232062884754159629719247454010732262928899786997558933056704074194033022893801012756713810731200421277426161491693146251256584216621991986928569467766673362901883016623712748790722121668275168691210759551102744730384219498720203595539443805683716113134295351202817951472479769278738533532706627618561797500742787281288017474864081896286667995378304441138149706326896995288214988662753113578879576893956930751166993823154900083135285640239741833787681714225337065404887968246439438630348896515485994845041086423632759677393469038870784350251547988422075166196406402792758424202924692643031036728991037698927954359282838483124582061784584039743374785154269086103917120369720566246123085596182328013512894488030491897516791841972844642275101360518133574657907708544648872162024861848942764568972166341267660892828877993318876629748296349289923460238536005045355654664297673251948843110723409179550335908417893141219440338709405808449454117473024459730520004704531880405099551226887797466122523444914734741199848381981305472271097266753586973225774573901061344279882335839683820783549532725705066454736473361667186860070343799132305088657117071789176094334036716062427819113654194641641843441851243557834388419213058652938811743153002631751343680776623392032272658425036148336327221956624837093128248995510930828613538441698067863571163846527741179816720292591412529082203047967297516495217264601815225819232311451202873140664515302440568422838089184433460424340092960990117096394671877644763434127557328791737000745670657715126113558865223411726072464902023444474293382580975772646534699321811047081316460483262191054023256444546713102046374709437918857110294749084094903825494784468142533296289121054013659146301654211306770459213052749906922976752185621190935505974968131670512763207567900594283565090026075483970054057641006512172035235957626200438116490301309552683389070426399093061926035794974098845478167383598134236296300942324270150297408804041706402781153366151867229466691367103710391768150362408338335744424676570720079690039749629272655785646287474409705175189965981454454906367045469257792834443478327236821152502257124560466646287603283979541405037935220793008742143273741212767842059798856348847925912128622949037768883491645297752264070766107705720579315525749894963817273080211313217036831007244201100186456639388750629607801521652292415601649770674913695988863308149270849778975097705510470982908677862949499643430847372165084478588233931453022480407318592691790421563129561238057105521780805384501585354356772678720082872898126456831069182407696334346992463020374802879867067349927844708892942607554710592587257532618975499023369283369064057567302185113129549741020555111722492823927905063904367800359127755600381949527084672758126511470298542931445897579258731289919371300621867796144101814662540695104816103505523498323933157222694671441198704666646007549788872000942834381474625007466326092284424621109890113534291444668477749230971495808008885168274738337633764978672138291491087204504025357677607055947255851869150829411705623507384387043245064746364462741647048771049339868741402265199297099100884822008622379754583013887062960238724889823795052127581921388770572931077259887228980064586329191518896703622576511885711102003886486149900222835426408135181180148884459068795249212308644700478299769133939143964472433150525064157121448215975373787386945550931715772067808189654536206047795120391806212948015387191228229252479430252676211799349520766641934226003111075542768842573733980504666880587249666224614548028465534701397683961914669157081967135596944728873759483489967883199702892378883185905283930572736200545690333584815178659568597366397568308488078601139945460082400589550941350053154054123511246025905145314633675353128376983495654005074777057077817220072302571777074069235379802066336180737364519327471307976571770002396881316372385473669971627408919673419399969053802392843834554736852539896526996172805713631995469964340951852321916931373116903259283279061219973534354308434423904104936007559380538001184098985597578496324767180702751852478369340792585443448505453100938654234949025367469938074572094400748937957535252326838259217239322507809296197738369610242975219509274034902398764470177558019670099527281582517396570701830842683690943613148606982479314877904896545224591419205583028019259460292572705222784070954765238819307929407236149743039798120324470841384791487826956274970354446889696338002799157464951224929057236267517781280094024497782660750644576203298606153491840810575313078576337533205527578183144099968235526805145882061727823164175122072508723523777058320745423250058730710306228773914199819184413012480951944001215525805251312414051203793623714421486933087029980469662636564975194816628791718646632555638554672450932128726564772175956940011223572957915770318718334409187828853032286759554258999978643692639089191428842873061404348569659785276926882487791398377147330209835032511134329283611576692096425220842977472615926214048154984577205609966754032507209427951095448080872234331472744422225414789383271752983986243388715380618045527854304280208566238343295841660833837937485585031437167854532487101528361561396469073571364194492355988711251210439513828713284387104936893990006785754225966163731512504163170690963627337594337414703749779814675204676743382391248301203543445971086139697411477582437991347478504659800998769861997418822390284968095815261238503478727672538987476674795576744718283320947380090218805380135280846832353192998841837203003745604624406585364270176239499465594738842420001541549503876599097372487998129862135726896076635997369389387266150167073544511494128524815847585406301262274271307215862490048629482628719926162419692125082800036633508021567340454877928002303646113132153182960720801975757085629514883785962174290820192117656821518079024153937468308193364285928799581771624454665999352631931655946530550293229767412378867192354118912441384572169868519608457317857525085437802017878992790663987207718187241608811194841295848848445113993883843363226363602442559737225093987457765664626191280935373193140700821292166559308774367170296238369584733100444797350450850230324120318806463211499927034218761883590944436669854957933643717230159042996872556777568833997927354157086486375786749304479162607416997393040057375059264655864531348881909886085016381017169690969485290652714576393909779048725772613302330591595898044376731342908766409404280030227139547557521794299120083991574499919375957637734860616672538400473809637795873999061792178087354286996735555717698378665719689429942545072450734726408679383352663899814975423562917667267342949121818026348068440451819168356412364783276170395614240816855929934192311909508360058978261446019785541848633401997088758465007339110577832862636710143747782811325620674790830328951397444804286048133567377152575788654233172854328340420061087338618583849272877942829416227573958771212724394054914239306930517436839012224042719115129540795755355939224656233756501891223341653408918252137787746674164488524528728333230896772041524055945277964781271152492965300202656912604758936099352348311603273295845396232078433337624376951145607444823874895467002670227007926947856449664540972971108570338590974962523114161117648664841098716659098498185163845119292231941797588714892950200090728531796373325129321230514852193625617211657302088437130304730040520646173275348673875710016731269378275632266117464093825621318649826467026992026784812790749661060067902769600464743068372027514599339720183783389832788632809361946602904685767570097229899394264197756285062719171516211451608329023095038264572303639955345864248715834734051466428096264114384994626275908529578275304831977081498837336380107476852863903841782141848338500826744481895124292836046505548869373606218090969580378046177449879095586569214950885177871777035257589028986789856032992628262348830082176196250432205884728583156679750955185131357524519867958652503468159118488230019907386563889330742811810107933698941533956751383816576072293369624111193264095491817679678216288130044198650645373726517134621413648337505546654114210303370098026763814900206358005959575449182525539903685622314632653998130487279211371177413245536877995389424823460676809611566528485849383034169219265722908099525508487509747625952706582855061163609472112803461034336810749068319058056716917938464125391442123730623650404198193656183777541093261694255505869339326525659722471576091368601766159272436971525767754920813396636531807099720245258396052262604620118606579708896995741364063988881291344427712076581239505670778936262015844690689828626710647136092709282448949547105905648635473016098727772538011146322519574155264909555477407444577385171136884132196253563232237880682168462793066430673372157071172222457605934206293739990949268064279711593813115934520441187074396375763423005542770513428933870650696458103998057640916581595763540378383164129372226769024407383302444119019937026936729751048058511036168348531737015751827737886827774980842721013087518163040390699940640813671434905174817090234407764848862314572857524185586099088951091045204508133710175329125243271076177501708288120907452396960327662166736379406522561693672746132474170503406971097644418046315891129459671256825479926722413051296923683787192451161616392300911157722969710918654000168912033212757631668927082794559732666987553308577941145047565351732003328752837590699462830024717602496898180676992761961299044706511213076504558014432949662198352300991990097987770737222682128944005456412764504812592076550394650544823924252884303890938767924271132666894226467389181666692385670969567194191106490517493581319336845213032319106126371065681124818694892164800560541097122313604198174579840931871934877518043548641683580753663336313713816021711739640604656005366666965068147913583769133266673895242886344772594512563879263549851400074096219497357234401236065678701886112405220355163510808522970195797818823818393372818614608547560038219507197425515462001503162560554945872728272623093502830856109124755516806526156453959036944188025218019188314199026885979187285755836549327168077154524408602271293828510310753602113755014126718133334347385509033746719482627050343386185068590744065633299404434431206048893221033714365653838703620239513786304560344713993643110196668569650819282501574547760371894300735970763932149529072626185579217094163034078538528988862406029905984604067513910767814035446571622362607936675713389520820686654012811750071779111283240006974028372228229467178186540283319315729120712586774659319365663704430420572172224090232493693043860084457106530314863436693907132654329104531768382848755452465262690739489796629932308730836470318528151256140485012557320582118862439034592446682432512958411240230524534699821109715282296724881412496593878175707832998303318976381633887974958298664375443934669056050164927308704415174072888754088920083060561836419315353214651169339039461225786711677412490247766174079990806780486400491507308177923462210078115362135585164517522751059940792443328339843841081141660847396678026569703867500200397475506449697132844708333922771907234297341905112504835686729384264459689763546898130867301518800932402378104348173334191790953865688393923681819813777092357536473373737197704372920814083753200089927968816374363706572027245400233769598847429215016333293108790335241928608648624097666700523718627234492812293122046905882744197025472026369579578842927645422770121817286070901258060046845080289849552339370580643604694644353914021833385497140765560489900112323117230572864728239178365931066393848175119005749660697692328909389328631749525851852448786537710441595777580165854392933581325450959354428034311069373317391912850995167732394274340699140015765538361254864275694809419949504679778104925322609510821082010774201134130420078107958942941507283624935678761576375873737961963059409833217189495830879468714364020634688536221179162124274399970047909502608230652206863687280316416826374822705513622759330980649194050761736868210419465938688465982302456598598202275803064915476924238048589413312883738477959311039022599065665026648046626016869166960421024481378268195787295341256904119020969189965031701066478302795675801074511098512131721094814197556698339696442854426728922785113024165822384572717061625103259597237242304409259572168645653705112449141504829163158953043876542848831902733612946002567121972583740340123691792623753403697327187118645115328625398242979035930176718820580346621125953302569850803045328554343930582591838460607399309905685209231137898389535799069031386293726846407796392282204732025406395029439847957075890826241980993071719633083200745380911116268910387565183437708746084793253965460148910631098305075289667273916575493980232632484003660850609976723749122244901651380373650233390871778672399223377302097956728562833951414917071038160995702010447787327441074050935720526987909386752580450872396925910455513878052355770383805434994482989374173636528475253804035903662079332171362076250443025141527453486844361212590580348881661879732711513382666824868629471074456077707560965423987916444643921129868753221534862038466072055118696559673419036630755292117167976598689046822422383376753087552697816578848965409921513014384402224395917260802752401324919756668436044555787497029940890921657552069137511302963398462028069896206433242496273425110253090672181711965079873406737086715413188719286528309100378548863907467985918107377167318543269430048513021990178341254654173180098120177505468058387421243263086553979720326189172071358410602849188510126230891365477454787358053827091154304653951431063212214208281130406725144598315619848282021996547719397153158426467205239391957201708467537558373092876564427846847879851972333875506047672970217660947709441464993070828007804768774959008418970847581187251342398001299524571883661300449058375997508359973183988341066289866344139418641828343980682644097897289890287942250191489822313110144609727834721630584350912505158524045709256882727037962896461152445408429241300337851833703934142253710191460030376441331100197384286559830809872235141261624967282607870895801840018359641345487539376319392591305895572443567194065622010219373958257377547009325180572799966021762598157087494681871538192047170689734098107175683484008450674265465792373797521773363324641745232793194633506798390935887025203587569208049228937447778190610289556766354821580673122109988092743601080478569252806353365646537976146994707523662529085221630946436323163728910668936325899668708222824304757377032109319285264970382694646698070911801489161812059327336973462894259348057169123403365649624970262524391382431044467666312105366593386640068407630890828138414387077306266996614124019359065890645835297719391260286485606073826937979939560865171691164494417392769015909798397849866506001799693060665347505699166795531672690801974678212310104823859116919623974464032715709002994487879023518169334367984192180073899613533759966990836560564716006177513293358052970196130829756139427965980550916101590791738689936610032756086492298359937611315796814091121560339659166420058611373878157131533264817630819062007183568139655610087550014662499423939131486978518647085823325606844218915400170265133469650998704199001323619045586375862574182466113278365193091493535604155296636669509639007017169603144852890165750508001973445055924348095218159193784820863931371428115302921867869414731489693329459893200576798114307757879491172708721783060853873689985273390008166374998600261375489908670816417638255213557735099269364472837915595613402172031819373421638753346731979129870069248192862714970174583487411458732754297571857693233874231946171948018950527521127850200226143563680403316938470707998919394060409955616952626505950232332032358852123450299496780450202980131664316629281014644922221605304530548006803918363176923954611930903940736136116784008264611592467489762027199000738557090218356220475406283089424153240237865625078259991021699798031031755260454464540227260911835973540791559460804850524713580626277989428505207193169228087915190117837712596586396545111495647092917708013728961842882787088488309971803071966905080692883742876091153520715158434264665397523313956718035016764840811117292274873713942573594168651901802158350747177121501767099172853628128783294367798342921134833741655321190097630234158272220847555701463779169232480006403055909178163876597834138904542370439448915316094220405696166777379875455715678776278389209939104366427363453603187741289551519087253160026469824301992641258069562808211280356121028669620553604190074034601299507448996034391582868192360087372763868303820728394764559675340865868312930024176800175688007066593768861399688247807284568144389903047226862671785527309956236816497422938593111207564163002226834198460792519527329679303342850999912700454298140140999658076528574108932567112762031124227060097934178381195522213887827076281742291610327134948080648216083736167854334436980466342832245804029380940943723111786743104180487350863295375009801536434400294498154810372468123764864767697189627101046394556605723810496035067917423536199162803987431201049367399795961867815847674386777721486218473612270928137829177002516938896044880882918025599811678817361039185220237264206349881914771375641703328624987332289748573172296572266592819191528921719145980534773109692511746026282726681516562159906997851175891603723685295628511321124163847146270475497270309790109173953241122184243469167153471716952639502413554087311414152491284754515709266000188398502603507571437717543966549640096105324259548388843479194647713171164619946716262299344892493959495868827534921367295764601153071746516921296430714725998447899951923877521103272657392790988550709688951531489564917280946358672632573666328879024197781167847779334481313013137156362369932315509033289353881687576585299053955887081996175086782812522600255713754600816772346598547386055576373354002077908770641061971118571682982813297957254095321957265279061704157439501147725751295613147776732955498514149618313738781480364356961298583182041695338487296911815537017957452325339288222468608342810967120332891322485245849797504309096919642847711719091979093787574777880310517659754408511956307798242361000167066316085682093594315072501141902450077346783530440165212134784563662950290098785718697251852944222393576830762900323670966276536250948352450383925091487790249069134901666211493818871452253154063728412676578313549140779252316350569975781203150335891005031901276703189961944754186799802658554452968203872287917159067561148764124472306222951096179629114326762676732466612268280589856279390565437454690925296042934554504378114994929720536878457802457404238637742020556761411570737405841770141749778462989046059942597368634356912478623460785373210483041248071697424576212841004025267773014665586131634836205274147626771000370186338855285492290753833282558056024785948103920773706695059699933770811479829193265749968987616848709590321003594537533515691893412303428094138013222310254918133739648744922798275362064581017625619910409032749456558863960153921382176616100175097821022495754659103965355951612803632657416842349900019603495302447850292628775240022340805377757188104367678182456081946627789227998075841642867881905380037679721945882079201662281732311095273093812247859518542155307443685395418304890785461080515965290111259584501852481453502720355556342752463794981468329104757781838141516654628731794898152337654559680007951523578743425585973675283163243914568505091963873386039791793178904622724776102523237823460954330018743028598459865047482180115282720451729446917098132319700260920012493264463869581899801531162079051419333593144427767880162307242880134891095106985942057532480696764654935251156221137225760525550868458196421041519613405044223721822866079062294808056809516384157535342453308690548457374310746484120419760434405577988830219789121875844912292366772922073410269539398065377467447556957555628960008973698107619910418343120484792615403721303650768579166644860471641053305467974029855021586849372029710322760424508180611277631937386317164640374602759821488921227395370332217825542792253905095625572183865629372634481562306763173220756113587793545961729126333950007130723641593947474413957336653394556556330841178784886879266226897198061730746726517317640553360917147418551779580467232307868434996520354370609169077110333634908751793824613270045124141784402945786910165496449578148977659112871848594468218581599176055271347145911914930073449391693074355881298903083265312612113637971646289647057485237808059402203843849091453564052196665313660644356651890982603122808148866621968167067731630569264653161555572396927939880907863796166634318940848217257879895271628731395266362375753062692202091695461663789774961407366977617449176263091716196056236381228080700058150377055669543791469446336502228035221868604477874206977478084601171730270583852619174102917437248734321946860538387858085301865477430704476963481886503408086219011350437366042554079965208591858338075350677541835610511919301700680728741651034426459412313269055771475048403501319334334495938793045494029896094411547920616445040097591458117614685209240189488382666434248032609271561637014843216109573999061990749453845840249571811394014787519025497040509219865809514599038720209494255453858578790063660808070187740727642054779631615571085228651817809026742053559220890634136085344089845021216942237108879670428421355916451232604558238571443102891868237187029032929846555630931905578775766844247784343389620050080061863945720807809930424934458204522281612262856976782936507035806702259386190441829136692310333827629729841974100732624694965514961061739310204906633253013507978341997772236492431251204871072365084206441949156623650067544929348706755332448875297622927429693477976945770457487530537885699039598293671434045619096896929525283484717640965021833422850095563560648296546600331291799548497285120915142495128156461097108611645276044464442983455262647644128109915948529044783492185468403151265523927356409645700925141377773901491530170626307052242832161422403374372107867894480006967019149571087414685253966865136201263677445112277855145601756287247193450564346749788342982830644856597731764553101344126521306755196797445446396457302896795309708791583139767879755431796711238564832345418528395269894242706979020327199682458207319377716188542455771997799818875693411012026818599355805697970349377988190251909943769186146868321256532285401111959980545288538508087498460481873883670479065329686654273444625723211660290427353048076562561926391846324513472905900146960904050146230265306375831731238991498989568293399505865342530237811226040540485175572253378099325706116406451258257926030592266271430926165049699944819139983509999953460968656120135008337502869007371198522355270304537190421428675104934622898583951368021304772618267203753190931836358400656990169289456908881215056793249508020722031855963564657534340441662239167150687908168869934018989813274941190037488966967841387859869811798441578105764529649834012233371749038724937640214552137134883571911214762952159827516556255578450063190539751574938740225967814846025535589771976932172607394566652919628401189586580578712902656342369840972281206671050241167329400590638416340906644950050049877131158587243736383883298137154142578029113229146737696531841854330510602290427318200518147307538093305278061101389137913804689781966946097825505709205670085347309209209515422044094867862157885526399160928661106798352521501321083343063711325943863073415620448160973670806229395425630741876474833137771968937069098519756859473554995763097512027823451405104002350860743724513387670143888536089906631290188026615109477481977442864297736036402227755793650704267299355546286679671602643072207898996045066283295032290201122681565890744083657574092336329021450061743441041579499691791748078984741456495078433854225656356483019802265491080532172287410532795415664382210836927979074671872178482765937347624487562845901070384834050986200053566477937360577661697311151571181516273221515207782515889081917109242267164433220174911197707293434384762956252665833147106774131629881921729476297851753825810979948508070707207342963447596933233621349249289149982751922234062609055283673428833213252465237793854913562017689211092887889143651871510127600114553166902164702620119192831130018003539583432110354645993250976436289419295182590901806664938128749089349821310894401006238204368461724657333245536029060940320768163418403645370179621083703758081208401618826918185618339031543785868392174566048831344599177207793161194190826780171910299580013769361019429409034909307930139905956368010029687578449715034973607363362283583851980047001997001097643491594321016484622313752514855617583665240397821090059810020604028582123878191517517730229449577619796270960845361576934139467969848078779465264317312918792842220854982559031021996715056746758358708092733839160280641807201334809862932209922501356153415491815270155825118794667546791237150111522180492268392033594926705604068860784021376607375463715690083537557372540580283032710151772008963898271435574184189040330174949138624369721331635165507431843673019486077005055382656033662526851818388599834013012148268252773705499401322779554335767733787618762646858689678533596155691099315708940986597863048461064387573172444671481425787271516184806641543266994546996119303998410749633790961371123647565952530625584344703274518722569569523093207477165324161645788512739717086118352131501040438563425731763075397164869865465798454427342078469169193471997745719535268648675549771755158786080200102429774389486286438573903451700021193423835693626164442836079753378234162962278157780901622723331781533386178636804675553926562073058488100926629097934657551634472557748227216555399497968833910164238897174331950806412212925897541470544655614988836123158413018073666320214821631423158599741961894372240409947205258323993932805812955042762497529711191096359168081987484288583010921385183922874082526633041050944708757243188129461192787150796132448562295314039188476943096235946943739858383652082870174377066700027715153471174633240032717932436930533885216772965247385956488914303999524491933160877389550273150282378118570748169032162264243098504793307294656977619523975262810058897936775545820666641792920813175363144169085374162722900661407000068867706858669223226646821597492685279238574174515488544070682756788105836077985523342295105885125908924310072668673133004759877199145124241197633884637187777135280152780726287238017513476979899683191663324753324932372109484465299454204808108565236686473800757447800403277891986566160172695647022312747069818696118800786924404041826067079414466448406630363207057530665355297000904114035981683132218462240039988541345269447523997461156034413951569480402173073609808379390379911963526711206042682268327667475997008648098003952949171385941390391551790136921086903319145463396678669023021141937256602434501459774956669456170027379610137366491137729687916884164443301184222236094490535552826947117246959382790519831821612421111829451103375779950277473769874420156973433047554553646678552702813201291437131440085400114438605032033709833026710528428636582880943502133305690319896024915449049650794716194252710889681815241887075189204392766784054613528702806011378928305298335799643269430618877212820444143853929556984401055333664119113607675168658484044369982554723693188414543693248991596031543619577131116323310806980226099161560936321670925700151567824682068902416737835861766977518169958418618986459988053512805525009812596682657666976579156298845125110511357593345191437576857900121029302061846453465359389105572160203710540043487562813861200918372500289044198213590070173935420319007089047235243704779966094404921393664246700344964113096530250173487420629319930552860557718936870144915554433523739892687884163058729827090517817479633111507105225910748111862153310902935418044595035516785624245632603136163706866715959777918228396157825547125948183317160010769977761538997704288585547889910780358951629969479365435052353238702574687483265488406139264053732958282654147937635130862438389726445124209300355560550733674868097521418488653554348814620474272602747317196687190676731544417731567988667945366968887244251090592449133523377794948503474998241215520395929863068331879526231136285827299413073442378901807966735170690845289434085427464193509998424992960628795307572271355545784284364570459580705815739584332235881425794743880535299988966047496417018330280407405695710561173259623469616424496533033824268758713341055355835874802052540115658132877647753657527793136767137438277939488362693756859734987732806154479616791059055582426076370125373405281039247525739519757471791348897043058924326952486803481492202347622833495532020890866659301625080099015912087373252544272208425830469122263529471597457370169208188454878155286092446020589091485812821901330444818644188242305581560371303891355991914350848031026863274833532137194502622068521017070619438716896814457324849771561349315738464446004233753587764810116448339138855581912891731856389141504579050737869216959334429332853935978124550401853061095344663758296100175823758952219155986862162788552985954638468129965007730080701138567595037678516015229133106921535938145603534699026608445809390718344441404655338398245091660201855385735845642691693127358136976828995543476411083471015859318483324784248523282892927690254028283542479351787817592680723717207866446771741744253961072537157662872744679767621521687016929109088503637445174991677373746059377203643223912920544865442222658455314949533456408086347502724632004269606111394348289077449682627152246685468179626169530652526718587661445432209646098053734803147478626269538201613353556505823008284450970471478783429179706591981350310614400882399452126692617363696308396467071620215314490175879455659457432697220832269017158816599680410249515265676246400280978809332540576029869987293703612910272188257937375285217814848609145682260007700340070383958097980818288989756759683471845507928842176121360661581671395214326657976093816599461606767444425451949831417970485279423569723002243383507668565012915905034369804322112538187876125128956487963792723547992260103090555662905031695850766180406629462678050000229022276782956891357498135286154087383084548364991814253084956228668149386224704822716065336955558328780981652873643447069421160703918223202973649328819254987136337799228978622445947696191022765164562974287424800333572108154071930985581150572792888410642736424159347894155399281801535338909935461140114596475574209900883239352090129229605221191831296982520186312856014150184597595632677076562506360732498239549840006482582416847870857893162288250751421257095702922985647935053366218404428118153751321135873373618288303070459019030729519390193785156242760082652608097533089826989080084120247007323746813017532024477621827620545647192898489406804399131300527518096654827065084895563275891532055594541086083073328894023789269947860499174525331910743479390763612548794259965179280225125026334753080678320637942852789379367941178875512576640149585898438296907789565899484324249472855875223575134514212774552162378900336694338902977525229442827332583053650093234237015684596665338464907114976576951403193981691517174559112628688718359832962396608581835240877233061927415427471261164770884550553714877800313206982904476338209259857521142359737455731901677396120197993653549840044140071599274002253050091954204159658139283821149482880371377324726294517479172698609882862408876309948700819827029690988369245690969649498910605299335026134632583563197035389688414965343312811250281300425987201784028550234543808124373976043133358773975937723977325425824590943226555965901440283799585963136912220549667020723810735809842561678240669921752065585481965525414314930478308535818252392891818023074754095704133041733773025587990198682554426704211046518640860137172198757886334980195926357611701209621496735118847318716353822936165477635721779268615481266428347269911520404580197586107198638220247785281874607348700685954827857526692216233153271148873774620364192376612991001440614028133306220882933433277337132516615276833632831755078194943876891828223535657152396730768408856168935151740984111539126225165269063189662145158722837539353348630842348808757643822746033085718416597767357492108565503091925130390680724728052423466974302181015970000805861878334515731564664976966977322829132299610852471873176838460764359227065888741072645459161513304746268089767421562053227518459269753207752617513824259513679408802681000169601026850606211909759696816670971150936555133338911295627830547503951325409610458087263547724068955138068964889965764433395658637823180924981986439660366290796619183120201683726697827086036845733753717241056629001381171037152224415529399546124563435558963366773187622881324292005248807187734897260138200229301793987003046894297931332823727451316335436609553134023164313835242546300304546805154306480891106786485448074534402107803709345322280532649455616230907895917060255335365201227315809048371884294152295802002142064103212307718857806242523298576325199935158757806337109370943379042952138851386665676689817113332181511295109819748017589325563985970581240918198267463807256543295930112334788424567828081494167606730212328321891312710016195692388817608336515779162744291890913069040456023074020077519842778699842377600724805821754379395559304212553615723245430006427359788549966505849916805650609987916300830483392391496274186520743375655939213826733488862305492739875713923443342149335808764987220035489860083382048152726847214607153563369026247854799042597502784362829341384685222459914437579887920685018399414541327653343449235706635171478454730194089527019673567804135861783838860953925747137818334157140759125685427010626781802677449261706997475851727582621178669178081252752679957827887432471838573962182393531310723510487171753381141389643986709958678851662985108879070826373615112724528215196104747524016667906114168349683740914876619047607124396531140075833932454704444312759862188974041038426696179921161327759485174654466475610152822014427433173227323640976621486144181918729989922429863673590805898094664006122022123951904171062995405471044754303198107732514500230058894988887077240886150788727250928561217845601476786685288783927374792651895635159382015637987024887164341269106421895379036950060922413379607619748239774101465162415085507123410151881797276149587108198956903866176852068835746532865958491896146013438177849720272800391133285206670684963280286261008536267991997149046566664651169111915986852487828627176050613746394656726317413133373548237985489446627071746853528124890168913928399799397380591275231107406063174692237107223868066954787988196017548636007388190796958524284431635169339841310341703743546800030749119198982513053469043544986840684379535668080267952136336481471112896639931199428570796903305590056739391182152702081468077409510444333254332443989608686310033807311298040743091862969676645030702558381687042029529033235917831665985392683984147486842715943593517527373393458424612736959529237505685421828096152978526152885388412096260861281346764493764237929239891523265041017141173517534274686489031062656537458572480066038088337222079879367067873587206462895788512097306070416978337914890533644620251284992173985634783238574704320820520177631717131441705625648322410963905099133600183185100523266836681650931181766773723977020039440415589407883391860738057336035343746829368697832810026831285835357879076439282109278142842091401559221638130754434666460650120472278551388822879312041575272727633153467459725419805782571635486203694850473973979922747895093821853240364311943382315054784641373007426075165368149041166694389496908384301056869197381415799667418921693654317267741831859131283288856282261166002498559580831111863247068518356625982816216830364042245766494151348183872647829867103425294786243962423635831414437515636171038953390152662030551496371285312513518145842392381006427257222427906232014014128296312900844868897998418774599101938749996634579620974068266098425092711048417463337733794859249784638737267300555036765890969991358376943225412799328471583370979004486817537212952952055769523725763940980221072266699958143196476116764682227973057261738751883436012535078726165720709753229597595101407528167050137318765941121933577243990709710316545471911727279666321090566252890322926484225151795260901590046224691778302825065229894786566936554009098872243110860737918473376631887490361876178790291682828497999275028557885005779695778778219824557302503822993238318924184804321322901206093136476565680350315436301528231540660095580433487423651381523617581007806819418986464229414262323392311943788085199189455749730180977002500344019164379805457136750122409768087641865493062029868009096241024624133524454421325210629434668608756243843817602221553448857545704976806314918683582020107244899246367833993022920866057399004624642861403477698512593617303913073127631084316025085873304046644211900261149442606454938146432709325057657263661764430819039955384111085506927511905096843759863356222100499402999566601834042749611670004054451481579763453516922964008838279985939249065628400756236525234451737769940704053977817546290174868139258890569072763991676300070460968796256523828569820442046316597234850670643779523493165220410356153983985261646097101114075300918595137753499803712818761276272122792530968490766019576354190897483125591872461204402939055216594135600763699648485787175202015957065065156181755875394659490541060002531372987237592746612979633334045509038574021264088748320198744592536873076413697956231436638106637860509808640711073930778898509168592083458125364569550442779051802344357321336794372794814323423120648875633141914611411775088707931897368805678865176439463305430431798847967495859155450437004923017417874984314070455440680640112908581623427949187635510626223350560511656443423948960996492998974003641143011115366934623660746330910119064332263050765951019648304794004846939199400379195946743059285822187032433821881963933867375110000494767826084943744946416254609435062265474863674651390018487126859448432745119751006893361996334451334899437494769604523828577583771341952944199460838737912881873279569374391219651486177141712935666461274410749047423214574638632219955909171577450830484626630378978395371902271184445405731189559074587776316124309822707777355768708292861169424343103337404743336531599121437943171936513907662164299266593984721125162767091152601033445576137987121540565392490307247813632204314106943164508994788811525513082023118844575579903695515512255388334713021968303642803234818533188703149557354908337975877035672603636153782776164036548010245308807518732953782456775850582454649588818290755845241429030666689445340931297820585379348735635441532342156159656131407735837665068767804485365625160125728762311757513831037289682888365269723806997587253450414891749809318142665618535729486038952470592914059839158159137500294034783957592197537059795061615174393015859777744086380164861464394352993970748558379646313971500202101384412545191359556373046446802980209522131039433386361845960396366579455293224369874409714787270002543774348469590370090513179697713355540129213135477323448355119627307041937868108165894646568856551455538111462856334580229750824766156698778734920500381410533094891913499719697363952288172290745669096802824685559026188613575729747283253562378091336198076475208286530964212036351622891205269328364259738390288708401434686249621486288498453582177522175510527269311837972912166861582037654999585635047662277350489691828265442898377505236221871234818600716775978860481653767841000249502991470005799945600429641124134580522168262226388757797860502149872945392887307963403456171110655160273817996430292499606215550644305301334687638109062454853273547963666134522833207609114894402280357143963562987947291349749868431599601685218088336013880548677647089540173018931541090559789921373428395082946723559010120016742971943082567217007739216015172376156738857534385929394534020347074756791542584202410579566258844457885287287633621583863133417306347737601081726523024140145293337196439800131555832757497425928559164558588126412136351465955829598694887252885714336074404330567429979082009182988386558857532511620183559367065558508043852230746462262159108044777473842701778877875365114860878240610741281092865460830081156018675599571637540496873177662626817842884712795722767791091320346772874753659258830399398210618338896621646873445526349386456392664143128403107926520196802669443403050151187251481630673853298383543314691159672179423069548929823517531453466226293908144102167636473975594366938904051899991682290847238639608876379479470398907749305966657283023394169726119346551465690822205624741282448542782170100091549993543788691751192888231156382710635598104453206030494741894809479691865131022079044497714195723381100194080743199425794201570625658488914649440547910008913698242972627406903738622072062443594800016007179372653420984492834495153100540820381609645883975972968521731146513383335224294139617445922180944797487248922644425473270352377307935171932160236122159392025863682627027555399084227577070435859121083798806600426483450753385942120325412554609362368386076597773869305273975032253656412356243952112980541572392209809719844028029519314662823913611491948362168401188854018976538416218878168990816750931595926625158889714911735770111860471123732916177340010777120742946083608484127384115009765052184835409750550865527313954112438312462576203529473292794458058213270358499357060963795736124188186350211415779517665821409864404265006982280710651904615566463349213970182792084140267732149471744819373289704823400005166725654824922808318866699911715357062220772706676275841073858208479020361621465719075765363698082507439174577077209629767663390635708780171241555084791797543148781740791724694035827237594420377671113493506361452802939395207000917031004365370777636779457211042785651138278944407654989723193215687261943704291293313141435379397207211190942339110877807453280197622080692088607505708620267769883529193830852179209188348769853893817210071913675104512615671084048239713369560885209181579111493926647967202161476738042040967645187107867169123140989281519795277123500171208351004020303116655688298229497012490893459478755532252521485618910704815188682240822290090530965718532938735405458444666224722491578216686433739277480079015789228997091376568483460183215382598215771371553278586837980829091594198525748109662514327988714745930718144117841000007489067332056126440615833502046561857757217651698262033480350475886092373383393773962146359946081858399411384320060846167933900773725744626957561528702862648861882958035886772626309677834866887491669889148724123023292786031907573476415977394571767155632640873380382287718387211790045947899238484759999025737952881436004460341116800716884799430934417589757149080220609432612546615327825655716827351242518785105125310280587190610203689409383759454454950261728098248227863789088766677302697319185933748648818283929491124494249898234614402444611055589533793067254523303811477773383677883821783361630295558813864063625367559113075071339337226854849257373982174757528530680758546561709672203095322646018154925566761083804489263449942517364932347938524772424505305242882509769612250638908752659556025932506754581641094114426149978168060764588102424636440889795054364273951725102308203911817995303743490849482493844612962315699202248951212671830669116603628596615391858395184319649346900457992550264450721656889541609432694665523301672197432630388066152944679530873475013489104172506340663967144545211417427443162757156538825058932407052927879928317958659086123784436668536934379893189546206573976968683095490455156691360346273063517022132155272979327833945301723709112000942697044779993270890085146951897938676039967889085840948375667669533058864602600146703364738454247965821488782881904612364414840729487468591979737960164740649283938124444483191521156425912142110858664978095313951245782731466380793327445263945912193370596458563774812970400875042218719880476261035526539820499239823163834105581549108289877048803625661289392620561545678500121528211536536057047922043717808528179546273836663640179023832133875818954300281784052264154919743054609705751096749615408377707460036929431924228526814892958709784398789085970993664714967394642448999432984328028024341173860104817660315535164980620467288095380981127243135337649454645106861683765303364364962044068887344814680643693035862528893229217552219342167683811834905855312112079828334331956320340844101774838916478373696524335549012949786739810261671165134186565519471765859048600513975008148545980396714476221914246624521360268315789951672853935077833225551257858794984908290421192934314120816552165982388730968216293829429810368437310705364012346724099928523966219750555630499577501147025556818257719197609016827640827842161019475821474404252185465212913977372959911048860429585487188660070706714214493608373336533467984858239091216794941535946573777870280893710412693390928686255558243363560520082562817007078897867449948693598198913520748698639623804000347905191931439978232919707850954718129420976792276292407402333707092824825021665270100234488373097360993223771132628811340108824629287866847299071862770741639709191501985425216754978367929515168029649905230097018844409755698553908793717309363420177029296315920190522196570807168238763497295940928422774547265772015692619595525106712373873181426535503365833087145623665309898956834736215525094881091502583829938336181900940654055527897004751318208397187678813892726972333749211894579132996818936694606458304329394411787986802850334302614270565115869839748053577555665272232694977287880173033847236157098695671767386448896331977618763876613510256580789773740357249962711319371860219698852350566706248731606728130514539204330954405564669544398602683916674362172765991810172636239319623759000710402325964125328646365058692029175629679623640361710043768452120982764525319627091958389095401135446668436202096132192361879304159166946940055511202675742196144976996780554936512980799264477650833276200519186798673595320855712144633559647570054951757848827079721275136690308401029138441952610568523750249495834960479630930798990612346470820098457740406369781338436053454306095136171850155386170542004460635918262327069720541662537829625461093508247283914609668305733576136389688086697643434733927352475478492443834101709351114776779018979247040790926398216319831558793799494134272689392293486208004477469797552498978892679262228948167656347638528784776882457211308665440575794473500515804930916749583413439864027416472675016313917364087952644369963162036169774005976612634918392309502548921259415813263084940579357751011831034695407466211796251268674197207853474424276737702238429365258334986135583237613384388445259146231617969249317844540698987397430960432868089735414678416661189548788630679459769335740228454577229309191598708387789838963928901474866529605799111719780486680000934384394030026243293284058315390422749826826624766947029891691936567601669738970051029803467899965349614149231118967223693056851244853763122130123769311062787153774179938959637744876141853671281052548466698745379375183178494793499649236771507217032911042610614486803540735605048951931661978652124923049567782445154153355376708656495698785796597175077960434440767447065556464901034714631910721231721346546255737181463667101650788613346551684466399652239322013769573266789554903626420094585842554138051744354039877736112775573323849512134533527406833067934797284561960252225640977047085707958660545386698448229093840617873681000925426009093237652356011854974701158414899817928242677287755851779145239382031014821817347441116337743160346985123405063765080675333214592417118378904756374561514465519821090793465317727584531382432212759647038014300924727744703668013375046970604953356689615951338269727652693010893837449161555643611201603808237197130270169714475210963062955533028018078868730249651602092910054761704794577919487568420458119389867874004762520854213839758601777155818947016933793010986585957782046266841683770481141413131167330217600012174158413341863808543761099763117001852816297598910451784784269134071579789836092112398364969445381682598099638225893035661983689854359770206049542022936382348004388255850030861061108660147702509870063213243385717694112814645119090975606108999104375263518040145242036841785421796841675656422479109023809202257238524090789010992538579886400347333298997124127248017227737575215254654470912371833136193865882478980674097982373593203744981238588966927645355635161848400243772074269335651719509249919588445674693309415105979153080864633024379621894472922616010907671551145480243228767848367415768922336272517803697270401920927374773884578721313031290113366058180691730276344318238611549801898346106415192234849058177563625811518511472865110431750355257853387610353460816328211555032098016520291385180060110023860614486071110827922273474262864123018856195829348641093997102668359883470488960489426969521195221221652764264955235842971686746946847970574555538885481646220897309742008701696890274402701716842153419085611949513000936044621539588762689438070825363617538143803615821245611192539133019460994497971590176864058852854066900862438574629021026610420012622709256580146509795249774788557827630906712832502429842097135193942508408169187720398058934056619546075806713188250003156425472796410242553157976816739373848850676665524078822527632622100477694439370702320361709159098581124525846579444734442648268862742709662252503413470363495142373604971879261331058226318309361634151385605115562388487063195929835557150365349270043933746136435845966123135454276774742976702485578415039169925530987361208593011932188567360320146476989763873809839714706041093928684417772666346013571164804725855398489994825911137368104614228384922588684100590185894032550429385684732745253084717189371512653800321317923652065765637529761938577788411763435422197706795920064018489989158885371543836625896970168475277792288278722515832829735043533605218174147031863906564420067662516102334916445288246387847068037136584910227963085010244770509406013617452480549123508309570708540424280457165689304269186753832877932935369823049945722188254858393716202440869108716731027993689537708923537179693159538178125220357013162615650749813813205464529739316063089789689604157412962681815977457636388933918993470830157451618261552101216515772234074357428173383767083271868249576309801593024115890687401723269829168533524419841460197676353312575420441692928751519556381412900084202007256512401793053767022836591219523685237576421481780006661539266261124600312212257102212379482857952776098709020902042402573280689995097195253350659598886205915418840587834884995053800067560111299506148964121743469905282705969189564195622828924812296413256284353382856765211725846924272223599814199385268248606115911190216074463357567087226081069955680812274879485442154552418362887331765317713125461282876670197287870558031743003005670327063282571267314534266859352772974206855629675857867350619212972396314271996237811370428125033600521284170985668731282819360041731300470758665403828358090777893238892424145362177765566727040501918073800725286686458245281049273110305884833774225063818554371692168315050521870100439211446922962676771966000865875816272448247195736223028552371223550941473333870206000376316919211129897868641588392842020675408774303415511448081153382859111372334443192064515669492778076537803511880297237522919905915187927713584658928068218122615295152896157383342199232446969415315798636554617508869396438529784806589767939324015921169809391343317739383429497008774178058945069890766429316202793940586639327178277272114088192221629305671855452869201476430992949904906021314819372183285753936067855137566681255739654335943882203915727462663886749435953777697158906181690499085403567203389262843273152979480379412548020608073564125297258404071935690151923813283169854399602042820155281355162615461349860755013789939952983923421701114385717971488444360883795577818328239242544210075702901438710124255352249926816338476518615416185277279727728254609249182530453585638603197612813680615382787382426259675915224828988060266953307275142131731953951144739927551479313434706796644731535606698864202267888468995893202704225542110061086372974715307345333426295455129328868733461073956073842937408826899277276971063424694882677194094693546383457049991470518593139249308925593840760384839369673177201778265982080267141057997298389735841842984694613408405645789398068958735117004729675125869480879445047101579943163203517279757206118307499145328337381885665790804820577320183855623283385254406521533698158586957718740281046439281081114596380576540954935081634998524128784354593658389342467033345815416495600814878195672179280823520185596036851298230484790399679255953258240643887840134280746779913392003240613977326580187156964277001800990290204820931188760571703241278017510924825623541458987669668764853165257604394404117217249319468907553357324935911140031357199089473198694281154356696679917710494231175725800201425133358436754663628797363102369705562378707950264524141892175193373137304279641955706409696100201439582165362550515926156987796690367540035560887134986263867361888055229147941941436214107630129884525798743504301446229030375922396939046038906750400456207402583658709738559618593772354447880794230620428095746481964166803215178950863597435524353288104977389361778755031811731774073522023063498208871789894181688133134347657633566811612156042330483342355219892581113929785807958157645232666418673410590931816390601091497880503078499477401762248822877702354007023680669602995668184523253888762816312094540781840721067843940419399371058679909931683074634481642260299614887964806056371942692190005148053348298482445726447479148190361911401872856708490750443439000450118888140036661852710352001666219907857793383546576948144772503203323082390042246247374073423867591663207992697209739695563098869062497864877560761141527047446442758804876634415588313306406117786452311487649092733338759805955861857552320443837751476492833158641319450133552087327392649156121834224147658758371255169227617470632449008141820150676377923883305141631305827274484345422467634923059952718445903764894220789552419937041882698055597053852814128434684430582250006643872193153555572569923053358170180081549891185231604107947061257294919755855697076172047644682124000393572275715501776212999789175902531688693985679034637672405203951562076157219668186473322434980756536384998151386771415267194763129012963342947953374825092572838355665005766353703091660127474164250423324561593110086132171095912432865685738389319813485782906755197997910653547218124366078124793799798625164437385066623378848020898863484555742838053566898436608871383717943327986852967423064810875447512634040733256015967042143314243207483694996920853996316877978459483093620694939473766624965125304897030512306735386663242359817510571306067053377583652430345100460097942528745545744436516974206556895601637175988487934225601504254254924917679739878336850440752996664527798204235019308914037681246291326878435368514496152533225279159100824185522858828488808200559895262748571839043601455182649026757630550346657930237942370998656565065857720454583224749179429145693743077901296298369180269831648069359418153533862922306745418519574852390120741002826760905001756279980891178997541417731879112038351108728908960587856823438532379511886658461614730012489537064681980863186253917123596851062243090344221736202718959159376343944208264032200928404271846904622935750411329275635059477720122370850943131200867567729210392041676744879940113535965091746366648908274349033551150345145344853379907216353564665997460172353681914572617950181600243571501519146531720606813166402663921384577470756518348308457959098079946972163941085417609640674252855096444538859985150546295626482372253811763726409488378142472647010071422553631121104747357957306576645359320764412822856818195491310395021557539929377065823236148148639501276769862731200008137974556156616839622541645628564535790573844394199703986215379472004532826961504949630997522346383641494086700757913050098945380011911311366080475571966589446467668854897015907018213969806015731841676812357622694635481772736097811538985057538922052115070543244564732920274059722569659272398537401688913314552702583091542914067195017141776677458390091100001374396008400407527396906175883752859158650242008473038726398449334152370939031593925557336613226335678365158579285701423471131679805567255156108019025706361421816259242193639062229936958147163911447352614791278707399113491284728321230535906783928889713943928507130551921021089150912831795865391776028470178758341160010473624808494191856756758528838412593352179510128129052026579474492341209232799571766195814981763256323468718159316512784134325377788633676915016098400829708964160627551040381695526263025448288709424579687411768320880915481669863522726368814626475340280797062975109786719897555841984311281251273264421587031661396053568358082932267264504083473807709420075945442881502340550424470974760375433042069971535582047747369540097885281076681638078643606219753087263484866777514091589939589780755321484003239137482535685353155607133120460359902075161442548053675314199315170737370969439148799773466465949124723175750606703493384561746607385973143962975798118134562019494016695108077272765351174246052892172502104768564580151602793520333116833011027909176199579596770272482184445889999398303973030649114127431137250018716793917203524675429851749642567571115556472196738578082667145011312577349082333022520909349126991654057569342146732269144895684232020535158502633772643188149347197607090177021354208483507233777384726420754909623875054446450014784648794186649054654857458905057497398562394135794861468342763137287961201690915309587789325908530250919899631492254179931418005521852025947420388783809616136589356005304214059713851358522135516371058926895033460757857342159778370897142052125250977464067502840739100217225992023260385932271157241410975410974382781508701267087435408646009697978368418390499250144248258055039465430689662946460343243227089176084691621486326892286900296542185856641013253400135741097016042519382038163491533069065757405433538306026717012455243169457511674130345093916285506292938102364559788250151848105045312825801857647046557415910220962865967298673260247775713442221953157793234491170565558068049358567725579392812361204580817015775040533772371120254077116278301112853524396825940216918279724020252502268270609447999384050204227453893391565992143871160610717488561564072549556310503306240952534681163580595122120439015416290775891326595118263514731924949464625863741955084693200860408109033360980312055007277732548356277181826752953820415577816859321000122782559444384684266134024096080605962248611274137613287084770609212989759574430910777591492554734943661200251713768543249048935502702068981946676420867861559764753817151550664539962090426249749730283774877162858020156671526703847664738297742357896386689939071347572852774207897808067966204444353822493491314409789080461949789282429862104953011083051855971644556891357519132071450136541147049102810301013930207904347543054176255742822248730058670346579540571386876953391157537874467011499587647720020445195903857135057247892664803466089640025538725917419114146405273179139856709237984535078646405312511793218982542971757745013851379859042389493563942309591391717920616175305185294935755259609966203015988598075189511775235450208035702077564918955579637177966696504379147106789141916508671858620645363966385763861498514807338432590001185528735450334722288495625223765297417123252585424579301204016303163106386375151739138694191851755772010344133139225623441328786388104854468967760255615371700485260813243727256869430498612217825642259486901235265606923944032586669026777193456066875013039063653129696122598645680318857885353152327498770740264130369442275954937412063278577578141642138517412805856748154314075382292201751522232544062004819850936558425053756144902675446063850639201827364982578895424047916974684447100562783496714386149369172837823570331681339043151692649470280940138927666822715674962977962473275071118953946488262775606093850706083188260482562008500008982281856376004382936779718741753238158032963765438655533252054857003110823288356621855764515233052554605811791516241214571454630994371681751639656490324404135344375638708510602535872163985148879806062919707841466688994215608129114980446905831126121087993513612478333981086270414789864082897278359568672544018690546376188440845219033291421543165199134940056559480473870694650395320880579710395114397561491445140633275315624761682404732378664779969137648246911672961425446756789001094105169877949046358049696602744785972546390424829919722193508057087322603472568050645338628064433541678802503889924180372963108744284967245040620568032986793108831918791666913057896906350086392331236254588635177431866354339159992702064917823345793958243124738076343537250686586439693226009149691885793614099996430292485116942966649123201530488621541945680589713818088333276328547685807885036275372937120577228077953705972770921323184965957852644915183986370071881464490951626346232086753024677289160426720189815560772060565957923544803397086825602445735050277348719458348786897214203606769176949037970434301832363136041377431717739891281543791033980478241135518626565612817607000293760890668720648433919511267576897957759191248402296506094486032732953742513935472102493874849395892885744241403222567803321085213595842479894546642650413225530676114676388310629822923413140494129168498001760358544338682480904046107008520584738985777252263740873717033187559715102743773494157374107351166614153015660305515363265852900682541701677937104434520572826670714603065461912581588346302909713999701034558715468111316504222686932350010239935872314574448109573461913267637076814083520494949306543340427072832108456678981450688641591978079062216803275037443600244279325193068578144749657873621244916754216570801104625270402858363104212601055635072983918632731419855878392585045139283570733691013852345520431709618606570183203194149099496663940780470698448832180302727907541213006567582440285278590605543146159383145579290677847235881883258925389944092121342340231785897946686053322165413952174350781833874624194562559989377067278780092538519805493905837969986087519366222538405338250527862596695444829902479614644919298249886046872876839327111007122134401276685510854405268889923002393626438455708545905286310199763412317330900052745323129146298694953684680059734439604564868781720337897834268559684712354732932666123248332076027764717666384163052330445691307271501223007928008386971922065800775511208857283590429155411786980658167093791740873168082807825236360667441364871461341247019278715876102817463024455549269015172763797664012531891111632371707227305706848719383237162825233829272184958272956808890411914257662897169764550911984909977518579284554276867229399845261422261064937033031188400408124534724908317370066137460140390158355074297610857651920377561014270015774284531707670793651202278239872648701921954846921275246725501508436162460152912869337177945687550544737008590618037601835560280108873870086854640353160509296512725627556927566724896792824375618397413671670135013239974788460708118213163659040812733151591134334267177909700463345497480583874435589885986202326784629718433859693049838865120574060824518128018220325871610698715579706487962193145672798564905580399094271533512024005879117450625031353660185167163550310189010199393864874228113242037504396717340403359600289710456951558341379824306771482956441552125763557769230603724517995041694835380353983196846876033678608223391302914629744844825866988355202056116834258833908287743117332643733259517776662885487942173947428770559493958746507977633954462476935812283208133847658749469607704589952358440683102801273874083162197342301309855670036451192690778146379857646487372097881154565588634245190882295242952612874164369756652213316945032728007178618320227853126144368803045973799191020569110305872482421190404259351560961755873129632989754665273816378484994647922648031879734686983232165617094860649363411550450251184633601723531331936179135679489703943114678898531261599713133489689178523700506444040518764664196476924471036481659978621326209381892138309693598836740467800886835848414984319617061730486834192233291626333617027848324183718386940915521417162992011219939285022309407343713629711033405285828012746206467646196916163027210882415876283012044045034683735827937559147364814890573229795825029671822768047196456189795909171066951517323780239278486080630129914979174051557355855310490699664983404369588796704389246050471737293314547932928939777715976031239429234501901703606310310504887867453464255441425918547845396961627462398860969580479127843091524380670513054075401011511690790110984153960035744195521561942266289590640961844189432558933679426429971161481886645957210275972538512198464457593597793828844414033627544816970066827910307365114121317640724093477710555073943417752870245375471019342738526021770938746539446228563494276367194233630687635946504674872596619959298724467748039635423020007819014827706883270477235843660826331700869168002756151466078062182196311986406484233685363736933167394654719860304221569486821092992268593941233777119380182285288991438111690333647881947283363131814024229268451912322614484209260903161407137030917716733128734017631382310072459025631229752195507016901352509303354841771729198920813445194834818159277039186808354105411437528993845260346778849785090951286615144097534066527859685653378932177491896642220261852403922148786402921588438368689464944146003121201416654386052041747181512203510555646734483494530772295612711227499086959377687871778533575346646717427662030827842639383355223247517969414530021543182092046023940623895764397152010480173063716186151543411372982677328710087271468706644723565434363818392248258284716838333546826738446958376507851283635341212032825471725692985831107283467565096418376237758747591490002442233718123955577356856574443806133260682221949438072466529563062187172682762137264565404875332054567920719053654054289310378047382881291649368604911340645761230923226316725854892892212838992411437110973666261456917444138186930778217256088750508700700417018585021501695578895770405200301285103468121108083336925668236816995105811979710462200531476863969960918781848028902589369375526812315235215277881223899673416396440083192094359755089721266475194119191346636777887048012970736357047995505247915981879865054978082788947582486636360451251463800035711224817925755240810479219176480034290239307462510550944922762258134648329877092736528818518004999258749978468182636243257193592214247691971916918360610196612040029490861310098812074204561056658000333083664402723233345335694376388323247511710175383087379951842599148406909437191078503539654330798101746926886430996117709002070239708105266357393491487705225919920960971362186818995321414116721860091860634842919020217062132498104755719296663787149853024916933270269817415858118876169596884121045289528240784516041867769491347146989600651886693725742618825223416575268929351541121848700288162579904798870554564405559125272260910773418467973296178342644071837232660566983604026330908862291849974671155759947542136709581913735813947531543138700889375820638737254996424096405776393225477633235364355473569018183773118056243698920964848614831909001346461061000468093700755520737646610013210945978929828036794132663604008622099349690684433174222097798716091266626358521843545452001676970231725738045066609777021374858894313652747847270342836701874967669257334219658146782684129233587100085525186727806084010744071824043574813651615447050287215962227778230677353871742718628032114231588032865826068029332226886953482409627118128195751643585922586723535645881458951995530735050819731449149185105361947816559153509309988120584919741392805708204588625003483262148052086106181086714702969778296165526354735543108208424599827553966213258266483403438097044269681905213384393760459219134552658962151358562713594893115905348972121704491420209818240617808522524344652530705050059303834305642334796276196194685315056787631721303939495325227691893771837061667464685470117883477074671416223653664336831937974377629671084712444349235858110886197229394466521408100475183135075540341477859911560546321537718916644168812022127863774179017184097796913449723099314825215374630296677820559648273770360545595016585633787731365707242430555228759009685846856411727003383322776499487692422367997857026112132701531195684345244754632391731867426640942130801203952419695339811228223646473550597430468354174860904941403163266066042635608003510086153782867697465793160736684044907049969346993886060539249071276155895949280858083776485650948175932806287546999733016641772345241070302036671348328451849332238830170478910297124540082014775153256827693364506292139323402220986832298001824969730831070751693195913244166149283511357994831748586232958552845769936163321983269505739140459471204437564653228803306995287589875601067180078972515058120441692200019074038987278458663476596500548677381162994187722247679436951900252171050517681375621820766909617349893084570902166200475423472121452918742572270151365517800131094335337586377305630072910284993683931909274567671208038759134486295379577948759978687541664468413152570133903693701199864666390025023240430838436741004963183267245169698236824126707793381322150544658061238988457524077512547769598619333359295110125445965901705465249932936648117140306812990301201426708386615050918894049717430320897792741222704358076886412674618561419095889289954227492643202829445031279581539403487962094743349667861906373157310491952700131520953692916126187744561974888172103621452047536472187313933136633313088839158685753393642549390687976806173829362933119599901100679790504261875894824357755782602191060113570663049274611749415198399724709794102469931243741874238538228831030826290668025490029430305031483065275629176819100935107280631385428996468334510869261534251445474143394076222130142066060468739202238337168990066077597120318579947843188107523274358630332997411283865763333957544541350869434908372374647032331301755021685523968790073344305393912831604710325379530247965134536387994578027566432255289133002451792980402343219846282295588468483168154332810283851654557600586227330847975758020028864751241519474426168652368439526204305245129266579310836316596534537071416211140881033379783914923912834741069616481205591970802103466838176557493947447008374653087652887940226263107253476321227071593293663666290012484025410199364449664902227533013004997874087052434679599210672618280285279070648507172866631945866486923729839570677667008056532389463345432340040463202637318947684883005620390300569400759814749393223794087133366087468304631938011381896794502094057134649718449534414633492301945608191804117908676041472160116310361395088634905197351460314406223107484017141823230268102303177189860596397861218821040912257553987465223389659323354184178478574237309903643234454737086010489333656656599711961845210111214159550571198922522344279327003452953436320620640157077477111448522693032956271393250015235349494048687242402841322469021566589625557808712130369898942760450741564518097688660111491394249971558353768980578707729640818400188616366949030417624514022840319166187572445728678809415668221129827577429109318460873921357747559479952728427155613567464226335842063739689216108692483946183302864738971519014055909032717194325811868478348511890641790197618607454439333589009914838040901485061011452810921510223354242871702243387083822214086367721076088252384191270908975216487234972132206922243490115887577141978498682551040327803598320011612782339884007788148392231090960032289646613427527786773668055731205810327687773062106605101306200527082416643987462686632780385253059913558120057569349970241729749984281094978916542953868813622700909516859682185980920035739373532735219699839534060563700284734537192488806264695719751800308393032036947331831924371957269179581678745704835790792593766065015154016716909187163619580471937132884975306725202844448885364950278476525445519068103492119076803513484940170088376969618954122019667381190329053699212571640784863779397567439834686255243042299938689440002675408162205674646547378462157856806050885767825831051871429964420154967164835386364106291462941426556485230408105603953259564317391601553951960703418583832381923804544708058061775265845357613885411193858798404916373379388501915615472322576851985248369963510374430478377917694333915274898642779065713393296474023921051429594731828475978040827876095985558158587672838606322510710743298130306140876847479407819742625666674718221933981197158149648167470965088015455969467126370705446979029040688804400564036436262978437416928342301192616428720659218582887467296568412938514345791862868350224304025542809250854460359966604439391923379017893222120705117078021955400705744329037101755867857669616826069503736586107986060821373522690805639798617540192296145396156426410919564216423830284498549079575032703678220433046079976267377484374628595329325764776633499577088278375321782073361939852244795810754174300743484121279703687877945783808227137386585845216462047230048494125073438947582529473828305843659772706075593124807602777792547510853018414394463031820975452536187272675214411110312837873847692799425086573409545811404603921553488485646521384813324386487999262617162741633993161710726813046904012657284660666897719860534637586152499448825354672988641053051860870910223313644816468056956227565752506553001501059949382314867263830352149708784037050178939926669942310679155564702678797307546706518394833797270522849304891298610338753577556029260929759306578262877739051463988750023297690151457548721617507924811317607569930291992582827537133808893100660282288531404243538959827484264075108526424754660702116015318588615177820279810042477296230715465729722209777573847059337650573477077602830013350081505879848178839589352514168076475622099957987044909326989148952312839948224149635417984844405977149101121092362380531794864287924634906977075141258672512408062918663328087743279341706766462526223821038715472317082652916260435643446454209428431342987939405602243476761527793487175387579565743615402755461760661935761380896967266160567062497281242088492863489279540956907349131120049783785875575160466301869021220823282108962549756870840171906215263355623259255145730431026032301776790767994429022493106947237387709425378241791587655680773967739245352812968012499006627758214916446987277682935813095361590527683636350625368875874418009325038386066874842579177796830481222458481548591795283885118279394514366800850595621268662380099697999312044571703190163781498497973145018505786363389775228420764530480261512629255347026189530501418266975503940470239100280144304248375828198703515867973407054881487749910042413158355656873749321523269568856725605050795216722816378156612931237387643826615259374486099673393228627493066844921166003516036843661240774050650714942549374813100862026562368551786922326026975809745845814762289469165356512380815266301270704475752430024746997339798127041023910909305624771127484114636619204197782748952401070155455801436925043816751404171818880987902590923832524029206892734029382286084639964433220965848023741775911541057715178993015052161004433866615086472017021441567505818359013186391723256676023305558311713872441266721349478724281151887223796119095667803394630059217865389367832029999460831830595024476162250425199371565786857500003019041552578995287077026693594651275262824180207472134264369108164097140766384118023031398827390432668846846341319416407328287254888014660853398081494928136336809931848147177246229567206365604341671497856751020738312812068529817031089315664517082813790095313631458179940117491923667646420019814351547248401342817154019381760164841622699652625375474062297833308471610858121981191666202151367444429406275313379263214211265637484883168854612875063999548783891424613395639761420941700511035481657285460482234425367952000629964948760439028958565225681309148188877812940198593006217945481308157292382297997841493101103394263258444266518596192657294344871451333055061674956482946896300307282514746985014561048657715477321638583835025184646864487307784926399135346281422335965353483173129278518121741430671864529655964616523211828961366710742598340416370757362961150651568564835421106855884094051431126440813553993547845557667457993348042443030058822664519893452058382668884766325793550592680084432972638037948146914651311144117706635629025134336388076358625330393629619247192884257828925896400392064372364518157455815671199862680417011807147218224056888666039029960585856817483795232184895463241938888906036953676080757553736475275551412366268595396886358129829892162654603978126791904760145460978400516202175012821048980054419677087900123279451942411007099308810645254846899495152887659019392765975525588519837893070690144200399214725663935036537994303754997211951372721196168232384293714354520270373604038936422854254017840001806266023175737840436305047711964013052199131691301635711674727259283023126793721727894676376177719435988815733402723294099613341760314724067115811644288032234827442403173127080996754386520041443520892119920755953469956698469286402723429089193108720853561763450162900450237619877849305616820060136177629001456199019515492145828944686521014752671663237725085381403419853914844143172889483518384041553741595572615730782210216262701369781488832402305322337356313555085740830542153435767879755050661336445299149725472710778957932564695375714958418082533897636128484327310893833075505213672245263673287724522486793685996952434393805083154869111231951916053874288658126731175062044611189162864242433854273836352168022407017132000130423762196648393138069740301416164491841936248814462075810809839168379934918636322358601567335035477427211702270924373607021509850200910495412507972541215508754485150137143334406606262911206673853346994093568426471260055949204838549163870392971295326209102284933932321016991335133047160495261662699941220055167289494569387258987434490362529098508829355967063243456494843277157681071971733088911667494437938906284464618414761131382138168346342813677804700958689088362122320467521632837685502967534677180507878763528320424841846839588711439692251753564470648247228976327609903627908018940549509907982443443242928002518413568955150343102876374115537139823173487452336781541316743720826054293802494654542316206788261968378618885983232547426704604494615972796327100390409386055859902153449980206346205355003322411598152541577958579376197759586877168962947277592155995644804443910848877333175500634441559712590204622262023212796497125518222535953169278403967362222513105756295900095656259011697752083417117791190099260773845815960559781099284876707966192000288521395629934420228297555964019516890691356927088458499405821218808730782181917031363779028368194679956419281299827302204977782504337902221420306340749338655341097097852111018500276088325375824392779375226797677968121710980465503829210629119247028810889533775235469461094038230595551983041608324535540118211023483931064245832971387143023768982082163430693025556301974441548959656785378711768111751878312898077470823861781139521859549181836273792358373708755692936078334548118943861239943164849524903572417823917443446010595431161335144664365022126732147486152384455969435862757752441179512264121408182473014579330403015621332041512855714561564245886557228049881710699595001326332908768268970952829496001546463649635587084436375683531587140858586677782729234265792435042903793418367352580316434848403233082720316146772608347168988168959435034944722094350583913558580465603157383414554763763460254718014740211414862753274050731066072657270988313730280909029663804342555591621836048158570328572129386900320123176105695714088000245034137807098493370522470414443178835538995024898698352966413213808493372202050088262947113991251565762298637493619568023401268600216283607955800420933281679772295739633950815457689916011585346355124263065517114199429904709631223112900612404632415191911385856298274390437066921270968075837270799636002384849623316791692208480789174645374309808196303130045123673983964205929673611144469583135704841636551312790551383111989355065566454049009321919425869486613258037536957353249536681074577439659957535663770532188222055694646860080414976876613981271834778304470314404824772775127418212862978134521601175339898247130567574784369864785066151929314281272151425902026285545136765112750505384209009118732069301630877192729479167199304825294249606319778290802365989661295845559669919625708526656348706945274263157946127052075403730396221167217164716652206421861156970162010162734298436764532032395955327243647859304226867888499730612226120166181621767649585775879872513496477706534748136606048041906793489176662018556642443299843670738019392810868908715697291017589790448415165774324467841569852926806584058563046775764331575117834276218971991011917707013500793354019786341165623941584945021144548001411942048898051379902904724611343579866332528023337545121343884736023203930981919733562763397082589199794785273088770655249291999173125679215423414550237692278169183598262562314378164880094543905605189890382778707016251801799247597699611704766536161962526764687509938841337345614272240008454030163628293806013423469130037545075640673445211506175051171168278663342564754886936945942732767669145127020090617366052487810204202046425033501142801934704619146705029236560951432943277519860173962536375920479700988476703495892426902842994484259403927241442354808598116375192319642409029889949451177872750212636010627035754240403689104274886314437993994921542831170048485876043466001048151178827718672130935128268056982443946727518159310216092389318918606759183824931566530626010765719395884479605452246525902140096873704705833626394494749282700592729632268870938580289894867177005936283191607343119427264127152646042013881448849924054585920871039180557580965891417991133261340025216386121833985288857908785747243147090208589204290783913261601774254327631672262030549498622065126797638579407760132461452764337081161795227526664925057329480573750358842957614186098509717594418129763811415632325517392237502773201239168864492586213371883489708527012607214133787407843215343153340869729251827987334117406888380357673359546256082997898238378951949420739972567438329184569182003260926771364386990686260949324952952673273229480852737206915868874383023414616202777352200758348956286932661103539168694723715109589400958244278816251741331095072391720417524907727048601728214493563986910401247039447376377580463547524885178793260474212651333816321757875140139393378291587999716722459490516637883228770981086262100932854596670171580474898167565143866009389606277987421719303068441436825637797995394323097825045983816860818062393280645830904166597291112549009960613508081784546584820024985998794544604038870474315779214118283758247333498541480080495975039917594159393730916613627619212498821589823855546661666579778566925958623742735787495254506597082945651818000084492081639612438386046096096517542947245609348630442540526481470198984864091130926066973257556195284719562458009345802966282313118100438546736616785572639825574376585797975592892524837000011907186986827497271821518554676294490470772300994261134652656149334515071003795177980728173908717055490864422526474356707147456360139085593201086170929455324318331877170494209529032699084983973610631824136191375750745530583576620695548428288863351026191592221377824703871225779326886170999839641408603342770548194338216522769817518524572926381955817548621815711619669050841040939880236767998966064959849634660055662610086268611963793152244309489414893346561355794811634976678972891501264587478176658019576252849136559689776886576059493175604457421941643295981235310868116652976463258288096115308890484931660365477057831818569024425171346686086044255414099620003351294126808458886374230157607850596198760174142679513375002972877249230775974505647394045237444682215028750119872646144366966013105877415684915544688389141578243043232819221036242326737318109552446129111600223446556224497070125895876522656710930709959506533617131183189699468351212184490528058251570420570631640452159069627923530192913329573381319041658345708933664711241606978597252591759649832013168690001027332491238563012315053811197321110526965054002928632324808232137985225437933607395474759878234305610099834666333849312340493108886600243802243582202283660061862375077749903726765250243043484940100514960830736120730624462485276320432381322435261241074779794927105773881318795538303793899386029956191221588593598168633051921468855557458168505373732144062235770251708773410675110678812858181854742944102969186493137575697774532036179032284741321129420319308554619054661892382823834562851892655544293237524729487863626982917711887258573294655404497531234248919836875902410961753135213700057786495998914811698411104938737566080219436026942508277493961321019145015272940155035606443471312406822368059636226406270356094691532498041369299106600297625134629966990238336010697644385345388246858893160815234722908107304510172972461146703053632932029948997476131284877790293803434846157357748428270733995467210762687112234267441714525501014129367353849582513399392340224930552071220612512989233856634592037148491808283255637301192001836540846481091094967085356622939614519643850103751271334728361914361765275934907327950675686580563869688872271307536370523593099812461525811279038594111431102457860362293261904371237467737350132345799880729060978555365305955589971126473512302411317104290842307231252145356759244918027790011392546740599121210605544339285935471453559565274805444922598952712892112544909251331302202422037651866796553245317594327116567727181582115882481568804938141784962084561818919643234524466882312212567012315664510510198781732965785775544115907206586724597944733353852226142978725905562866448880629943690852641772063520352847146199222836583112435231591668075769002908728134656338619400148837599448670385191806672212990645981049139318820345308367086869091438985251479050467685804941138544449834308340435337801299748701987714067718865272201797818330029272503246688123417257515279479348589748238020219593209720867647225654310309443981159029297253370505040440287087317789104296489266660936830252473458393805498226305738581335435241624038967698067156231788932197400751320009172619461635923091233644038392386250530837280655789657066109350403443767159221417855411641476004639268375355936188493344664364214129887058884451009808260000871999024759677661121873130026946372741248824003919993178515179383243894144760629932906424759421908540502072950971907895487549164014452647508899731531782930465749504160668893068293532665969265583184709833679076186586532717575707169124568082759106457148888606882630547711698854191210699505425286083655180240529757599099072278610415112025636257984070570500448802747774808890491080061723822141415115769698897320308800513411586153214471715517515955459778890828654408070025370453014317386575506474123942846302252351362553030952979888049703774105541293614267943536972714586619116908167420486217603202367291640513921882289787520179501295869836892115411125699935923502935482093135035638483566738938580482060780644385616874360603738335008858077498570035633596705195005245161403648133466756865959311948432154016691976525749397442267847471386721611281128236876722524858591838466939068252648895136222848784832238255066521433949757009917275502411959679347076926271515059108566600914906735031092980083541597646288580560742181711815324339886205595098264337468551288991777146377891396565635230849509089343897045561839548272052510991453692311082199936319857735001906454052702960748177402384717424826225929832855687687515195597832744068930583587349887829138586504014662209660923153193080378179815921920588809450575110688718292468289295284229904266140940429398587126546019407748590926731617760731315676025376938918508599728040469218968369262083784679449912528388051971684454974151643458138276170049673433838712618677086971365863235095409191654475435426713304966237557529445586952317762297967673497638398846333129331753089475898024778896989832924657372164824614138484005818847852320350775878649757589649656578519048065046651388596205477966559183829760079715151802689656504812094140529023985336958527705897929958271089194069526231806995651621467347617010026749159806276297518063657954842923429160399347057733222351430643011209905324706947970601387118571522703303375647375184253515455606534483514982345495199470999298596790605471779984899713901037310406957572611720686516920928029553526378400905427304095887187827114487240513531305926045669907753059159007672637118704636693303085899120401945424738089473201753318986283575204296587088715548000599708714138943060647438349132743766583000706452722383396405502706761009974656395193193109284116187822930569551680106123955321862405737024812407789032077291304005606026621032786873717745646509699952569780351203300660176601765804327001007774603358098220847625812131445306913219555700140333183830956426171510042168403919876818921645302313496299277336059349893281690733842664085172150052650048649556609338058624187165569686212582291453228318395842342379371834359549183976104314336701349609535311161213082224339326436024648612824006499736620748336492174854434645337854768138967594584021533614050386018527378270695853939889133164458271874048100852876242094863969108039236674493356879827248842336684118164320132747196956307760792004965027824570670502042064925721674758198484078048270071500358238296133855726373815163603951346607653830669214087915224413111290130055201048930762725365022839061929611272979924622637028231382335958825679191858033926872440271326941336052425311007528855702251247473524216402989712031522384478897634727330407533518789245862471424142661709181460615005897179072979301301506389198695601454903689540850745469188189814673535219952502208024886682317336803658103831018326344895549101304092082597771970906647507349483554116529229756687504879758325978280176138601767057448250852703346127165651639927929201375749408469148928536037283817204952724447010392794716906857242565676345916522719027442543296181144235385724637386810086118605317126774744041975299285005143047632612823763311291722116670720068130015163725324474299484879681086960181786116263542627319711396976605893510931051695486152049432282873798749229132319189849357126034921190305616733842356204833183871891190076985407731137827664926346404069174406130225095166217359655502812303804586501110815738378977180453739400509171333282961533230407314889569909514437043700617180026766169757444920832967392493990668078626405920174479208132619480466311693433978309268135584515435123021014886678750550716862595717499551685904898874282346033913852615525495570374216482695095646591628189043322369378697960770996083883149964256402562049556430483961917547274317398995597817140277471830569798344417417041323060923646491927725052108190120610208764359703301036897393577484107988241886936153469360624196044131870934400745386252545296012481514839448974857342631650028436560984745450243995968614839315302037603080002245761640932964706465513965314603813385339378189879980280622758726605574448520692344966368011445165229739875878000871485518060441771503293619877910491791849905493996374113476598268800263013273890795869146730622234934200155043384525834852391846607960668459354114851823160568404043874826796262490312319787360787955601689984989664762972786092428409951484438439679650121483367667910528394289737045428560875696915817952589204319661743447851311470016617049635346276668454785146917788478136317519919268808041163038707100942695400451317168022799927306405947583792427741674002017529160094195887818165741807781196640047965663153550166454335308078720533038506028786073962435103200551208403986392525175089277306416937365731564315994175527347357704363522575349436858075254514083071471184930682722388574858479502743024433740640456945051971478796207436877183508886671170401871163708458732262798506009642706374981349809494660309760314584212700894593480773517548655607161346563582686735455089837273188845121106549263900712686869797867462064024354793754034164529553752456425556933248526765472642395013291748019132941417731456957927654156125224740563554786005844910680495134095104114110679139224482242916018037252884116109555406867146869007918186067399157459688595234015886853280977488963251234813771420824161003720691905358868491087629022568221678019215232952940355379122777067194080177554111862219777427326007269446469842781831306924278147272710883652528491299787048542401121178683535459571203624356495893199514219062118301895877240849619943910966200408305885590498167061979628971067123052396261923904927201993381774417428550167587597809542780396190467561869898985915794775817485044898085637180741657120384693736781128553723901939772562913168001743459023973773934809535004360277392290278959196920223979827768937823217823145557606969714676169771840011835058513297804648615627359024878844700635481506209984355818323056763508800495649248431174420133096579858566326192253359710859126611055231315406674918451894296051374405769331967352012890279360015189502876508656393203538473974254010279559416215199607340507230516711955685849620627246056637854802545131476580641629798770342324079748841682669841876744215657716358804923936034603449805596139318457935154961526203324098268550566580544276911601555590303111755704562544250405602472755708279810040747967132251602078684958640799622209318066941295262422447161227898606612121031073714342307729269740182291954719280422888688142178915150206419743298354957976745144107703002937305897682875749272227006872920061088591180118507436665735442491684214803691385858090799029951877690288268688100591822683285298405381287599816137821320869880811518371007935036961057747805446212912891459232914160127188971439612792273318704091262070348847678766078928067728917888168739449726451488537333026556430829595159333603280570744543477057835395272865990543775900777971284691991796009043585070906810594990509651105879120530773243560418138937923229671898863910780452376207031245693662230061404028772492848614017292193513927804304328067916293000369178227255892873820625468896186168932201641644249776699912124073711973691268840173248192235369792206993240209215104746437360959386237446790661943038376395646588473332597175606787055964526645546482852192909065353565217809379800252206460264904854158397249245836554713000580090560513278124803975038377579295524493051363569069615663354897254120345590351595083032416097883023444773645861876079443690402076528174037211421308718910855562768984237143565599667275811788644858411902125960313048844735535039728796448240317563857382607630480458787443557042851447771656696398280540421493368234550840293626285325142146807907007828703779535334373356499729433233330876923621009879294624697230028062021953753161312815979501305909037212629976229179345303681435183406863126500315286612943178371175837062461029796364672365174493426552430299723866118948915246644243962070414620159507042866559373472131027897247306235695357153399625662087066797496597493435426379852198227856943527237663562942853699602920741546414674936401894416108998451588200342690241411721322968849385712186383264750712524308739871969505887850549211456451314294739581553819121385255277459935627763462475695557856201577243137035991635340811571933192564653128385719205017303043335908394066254473691785189791512108540540298348068298475771789951427128903928299429579234941979860368118009968097143839559549189012381828668543538657948277437036781961335255943337991475279353184642807442345066266903048117899681957852353168395116113355089530531662284211484096969605907987090741016448262582594804058449759133072621361953044958166642226387913058470652626694372278221674888192028129096065923803831312955891802956202592008755394192555773980170013969100791536277677671922781456771467834669154185219553914873849372610464755045707708382485358064604518271247258980152115537028443875618822771035680179322745254256539774408309950898393974251373470498436666768958276184915401050002986912668522424583498840888993922407800699626137754682977710306700098603048915976952696836959775861368488193422570255193770133126187294831859930821267069521394987067395124933226441537491713254570298815578741717930906106549803835249730852064334974872673379282608875490091685344952679352373533940369351602016382142126021611036530934125782266503616790330299651349727204187614310236391858155417461070957769037416724473833631585551722153142229891732545289756928970821598846865190903605941698539839314955520718760140740417858248529405340691556557564298220530833238770336127200349503292511971302389250225398022668388036186131563729408935581092364372631871925776275732596154004403847747591874833052331481945139040344774706862460809203431288721838687923518948466646001178265110067884930617557732404238790882393514630410614091002058496507407190321597745102204234549207194217155824196193338673840643471893385256012882420417548426720400643262323364811940706800075881457836718270636184626251618233044814548562672121316154740948171458671874671083289443526393003587938136502692952125252951391449177699194592994578377678384015903660573725002265461874346189240370735995313690666001291425197257345960290953576611177711386116834750400837909868186893927592165083836493424556078929304281184281630878343529892802995084857923961813559727598029152101666838683315475767283194985786942931858791015246205422031006431790088525788670949959626201854346005637413179941596502344259708121468006769024665248570819977455347758803298822402738198426082536319840703581965794174019800188218137380303531139639086250217679275425521774864287938883192870741416817248326227773229334200448302909198050245642573101263199725813396081075659705343260004718701262558319695969772234596843608871854571976610881721935683771100698722982123239972622054884817105414061361831225711510624882491556620853463065456472765367169256031081346857976447937477663761819584766793247404134080407385226364268537079266128564509039229267172634825618152529377422690200787905255340494618149040718788059705470175698809922486789008204091071417784698020156424613008429024888876547986030011011628657426361370434133628606838869425639055720858953223707008502411285466805051410789338664051414677078104175395734546965126730315326276776855155802975490248732551833062435136492123873105744485073597165121844936819532326237958159432984078859852800343682961415567420237732883400103196090048241479793843567610186761619218049078104377815897200369426939243411482532825582929226552467056592384221167146022174725450504334076636522938582463895521747208555890316743304572931632133477423965858045792206259888607163173832303082785880151171314760994917926174018105546167569932185600025256435685277135510685456679165003684289128176120270752349492057761760513874631224970713610518146222355121635473864955140188359697845401118959882657188533900940934055640108974850863594494214883330069666714893922801139604546742478815116420899770791882165497636441914337737611752787160117061811797060107079345284567023693611288896576799607072652694911810470013659847842492811367093958038314429735795700260229766534969799580088844519592736611341722755135673087176610843678840942062580840315185491774708273613554373656575806876712896180789536641233088193192946947270480969944611230731618993315340065716330916754748109575196213313863399435136402492547053980355252888490213994536536741955166492566004599536271144648683699251974877788820668492966536097869990214346552050223339954404901884486714147217711113119389338218784549888450225993897382050632477850091327468016301695252029490608053120618532164143916862676115362840822160820319315929180849848712247316143001295978720094509621919547205734346008387572163810639431615144050054903048541515747235037932459596098567977391263728655504372849266974268823713094712824654878065156891487732667757287689273476503408867983799211493735119362277184194442837495880851277540868973963700971838237880011302577653215784600796532044720919416707941680119639792350825227160214112531180168125236695325466097094770086941454920988473850834276849106468011929178864208285049951301015278457632920800304191194199451984129152589879881113398190372537886065424087135240505478498426883342919352732633419074033723191476924001449140119887986925138710603062491021171793827957716861066982500455195112481086992789481857480952449390777236226647573466943512005188988978396721523770972472717085455279157214398338153344907702637963754904224975843437291183123195103517500544614505237142837515879770487861102517302161675280889418099038272727149840215055691645789600095451991472858920960824876060211892655727019961963869261389904808904452507339552878136476689477401632919580064783512812223981263046287954701056307914401377870312260217217561841415495423583950432649658886872135645725699103927537260430625931527162351264186622784212233243043788443820483723489967515883278451760554941364337453520377296697855220405113395586234721340380703995840012984552312600961855713341135542940576020329581498101659103654007415008950137212103681497165864008165949022548122190686599400647589961426428497493120595818068376483595705936001664127986047856472552275088475945980347452269477871810509490855123221853583574811056730921750952092148634470560726839166215459840715288600291246258023216886852757161009821739814946901914530788429774734819653249574134146324512455206700266524753811310048994697787091278318212182918084989828875130762849063506776053417009129550272885946815831123442729931129624731439323124295801983101781960026658471604313834142967275545528071359205169510314933292962808847860266887179287573352914178936680023121035588919517482053452305600215035374923084178074528727627113800282531065839478965540980423990444248043374319851526530778800757570456522775142263861964754275975657995600016251542645109489581203350546501396298132763569189065422459408415674738756911494558309121968977364626687049221982760463651798413092717861678997560432345110591423691875302203464326958845732940071145382516462664573775149613797538859079574550034493244728419269255754872464522950598833894988571020806732579020504541054930341104807322890767293061808851912183124024202631815247803319595546646342492494916226654701644247944772438148021535733344476490813287690459784404246283372826578744990141274954802080267580463460779308752850996412089426706004118828049743990645694288178568472080161270363436059913816643138079085574298094499949371851292750517568852982431592379203711702711778669971135111537636142496499114711351222470026158542218296217798372104894960366769188157105389703260994256469754454636934205613608435615166197345350321828045137799765453594224939552084119985491221949909286880068346630356863736740084921784661792167157803710079138174272797736604307284571952384577986861669231652746160383215303919844516399434474553097040355959547793615442609913444438048216099379312011636331219175209879681667618278117673108970802165109536200014869110699272535010791598476330761790350773767737049038827995206483384456698202031063067485237325766106755335736588248494235145741470288970721054715230959096530379850998213760137744440356620747525458558689547785758837617600864505795004251077691499228273830393100510280787309370227306035423660943511554427417137263109517077906290068974851050028164215415666966226713606649693917948439599475515999302252675656315927878568418455719936762535281735508285614156260193480731907247508619843109653075865466084380780677737966184342024696466257808689818751404728225040430154212785913219699425353061394561308625248680847216906962378287154348420266850686356998464701811907860906759087475375285672232712247842150141171251935088259929087931125056274297205717266101769399385594086256021638119638243980095301969995518790866911267603132656701913768812201645748855793934395413915676558321285723206958808434225213776126829574627850861925485189836746175125406893541744266451635049102303880704061759573784646710374688697943256427018239927292099687967402987149729907854760448591475547667993387525851099996573424044461976516306502601391507369759555598315857680621976220793093723646607414760794541999816120770784777121214611184744548564538364282434847999037678075221890863165134028354795332188678413880907315162987111165761180638776588101206406664752532174403080225158790161697599956716589692474318935164022810965431219713563636611463888140386976503673658765984542798834403046890518533757957216411354567113143771648919611570395968831079711222692920424277172933669214381020617054832433737089522355500627051346972514086236632590060071517347873071308326446283648439464349218115787900703766457983916591939048625544631127819437058241967273800647709769633355978752187043453136957300392628176753242916421271026126509383029413733498870530899228290587244259201133386591042358497161171703962992516642659150230687807830451468317678550215189450639292071010793879817639302764084693973189121831110812268501995264033873892021079392058198332724071986933267657680184965221668957282453749829490718861285266225944537111269753158352163249665606450143198008691903987772920992942879995782643153263043066332972323343334187884242429875368650366843311271473348521496130119870075075780897783833402612740052204685005286334333126510614347084529558276405690322755485637968535739210880307667681597282590294758142697389873016090779364418368586195866135151450138141912669622723093240671587417682517502636834487435985008394147086575998153822885749512134386779443826281583207886428906062072450365426648385548350034032669903621492133558471386006401920104187229738848686562721102922130075053711624370357291091291893006047515589007091578952860680329748135608849006634723594444078578881136758359630036796177487140997781185001170348972586084526285843269611365028115185012138384751502830190421502925800810499424351004095671620674034554432369147669283458239274603472356370297399246012900822490989972247296382844115997989888649316796157881506906419120632150019440328016091438388347328474858225605075272776776120647868721531781102285316615825076367215073646693293538926002561139864798006228820140120165883266302188031173904068764186321340550107561631759215092172005726415390731708950150949308515696551600681873193543627061591127075813224713534467271021874387155739081454647385444525590454785773457645291323020668404854239329111151804586613951519079463087294556251185336153064166875766730278993514072522059581436943244325943259636687678696990805086768794654218806183557160600726322863769635302104013451285169689474926947083937801142289233197822645659103516415836118234447457011157668682853307766184209813069922965680136106792173811764588223269774922413863065845125109040454056156020832120522633850562393774244188891591724584970562331208745910333514254196726170848065014387101047855139390915205171107617549596694802831919383175686032346896342179404212591399315255480828348340947849884388165429686613126511047853756303480301863859015545381689372522604075596105241493786346349140807591848990087162670914576086738198091640627867652618095751742506449120150812766585019187188402554801455674895275754581159071088535828615767464599218433019161475321719930767898091478234496347153025470696974688505793773065274246873104955123406756785243054603705435300577092201115706089316647155453136223140264383267151439793823508671009561712500000907086810966384688280948597604992222612499281133511027949878790671096485622900156168465290864301663559501006790233634347952768046680299786102642236352007459523652043898751616461890367538746055185417824058382454487789586245474846786098931094273126118815292535553177409993506966986988555489005890334438972007937704290633175904461683143116221957818929760000711800734946333392424191422361031014425370952693578441102785283954485378143831531181391615354098166591434623336973743298034173804906705834821481127696807005358721216681324885967648077615562279348641153080685245913224273240626807705462161697348941467252737710020308964679151426632743390180284249518220473670381908274178255091118292928420862743539312002469298166762945490400334670496875446641465925285582740926063072582165244114591431064078968579287784858896543024650959824729644149253950374945139207888145120623467373288116855161388004340090196670580215483733788094610460190652074914837059927105289037896326536544134848210975916176491202300442640700549255499866472136775689225806359770685449041529781245217499068105853231123952465435688882639148716543187086136053936608213986677872079521072709898415582830696880469610308839626764918287023113993915490406154880080302044365012496720725968377743205761300808246758324754523388280385316276447011429758791354899621515537291204567399247155278856444452133478746788051279256182505031867170530810726925555087156989109397473260753759273803890041851024885733416111830492224232354572547488654386164602772914141768846425380214230441373359778108546037807322287178509679682069724084393476562250423670107112601092920885837670846744433011560210743316153520119096906901329132336127271402738974239329818830835956868843060999617309497564303282368897200232430420984593079320991124801206497943378019213118090110573111133055188865573072653223272665047390802307438488593510952421946434360840013440293885693762733751211361308235202931751608982435710154076677486855624517179746572790553590080641426113416096848255005415358906831396368178387798370489850901915551263431808595580189483566550509930442161456382725549928145560895973771337643920290340088828406144761221372755665740673020967278374727009700405475450372287510619507993035351867745662664339656837533032700998841918730955888062318648923307135578945581050452017282723006179740084390712854407997912519163344083458239264782089067487242275854358258963235823027226030409001285852000019871951641198468208660264270678326346592326983749736700656037437679193811542770339980012250101940288266356843650006767729583555623834312830200648755281416604707139287717037708077250533159389984553375859398618577853785849593278781364436374558538861977463106415045369807532797949095439780098107364587568869843175323555982309645718338201080812703386879698194365455490251352123102052292452440562415121719468513651837356513708038470428141859672744045732453379442030755716663912061743539088639093961790002918430139731652641450939584734142122286593140986485532584765401876071672843599908295731228672418574149322036057590531038053865892653304796985327798166808550800434570755047194818019690291459860340159661806682607164176038751819706401925826719478386022633904340120151881807271660647501526407024444148622311879987246464792905039455484055492683789162739036577392568095589609332321907238945598905344952919289156448163079059903734561596035383238724408404792556275951361710648742346687029850256700657141098820130841092520928998938584572279839070711104471082361192871393639675627452086473119110836377046966937218593084301245047558234044100459257661305983101063891995320094596911466562661267476694186298826337673183787738475257325526093334589716187036274160200227280653074679206604664979293756414372644037030943042630810923707141357860353106494050698123723714032136154432019780813837760220564329165610018817075616585481963465307516586636609403237506615029619692176064724007532133069075845767426324427707285761997492688111933764543275549858412418133689066070173308399957560730993319541784565472257938119585804274544014183748365829213337474003297284267490440123444529212631619525015021254680770748694684084209757228040761111505558000875502901556417901940130901862096886318664065890723226539823990744887792047745022934636255893769580495227126824666033662067598639698450473615770697407702617903348160746799977637174917686288674111782929109148981316726316886971867924571024046685189365837972863811043015232852512448838427647929071926061177051282695642448867355672654404672732782692027059673595899440493353802743754023567408504908848296752192596179219638108171782006507958758709859970405926885337698072273547373498982999986707723894325221033662096963206486799867950058937513720005037644901511398500276859504094940190077520494935286748993911247316221734497583423384942245906609133897683831885238642166024390749858367735323883293847052184369528621842924353148603139908495519483332371630064601135832681753391882348633136417657442911800245478148828335116903819996543114442091171054425901877181486805407281450998152019645531792919884500755063684960671761002438141741192510167684594272883057233867568584492093409997382277360631458413524454870663670550808050174723962633020064675087032913353252289720639142841281453585130393134774907307845208480011330135615377200993957919706712415696615053309708517064974988194277623145242013215439851424344046712152804552417614135607567364957123274366130674636465492612740467047100318715797223983476192907794515428719011449119738102218511903098171322852598784820287613287261278396098568898417686201863033286012952189283001738705405130638041073027662744702633976360373879997476780544004388371828595812983468846850659619415541398918947120701618882018788665847728599175730661676071513090566507985076394968537468783390392701260950317003110615304024448862694979263739332965796661669418284994288029812918276839777630213387320683282774190871666224142501387150454673735333710626142401778589794104680668668982964273676677041283953543612547057524276977769460982142489769324095304541342017075663160329511836070845455149333605319754631892114453148293590497714701193496542228110425906676094736091657851461380400789822759650213539730203305616806829840201326397996727904133630080162948939246304029285313898828359670081670149503518683007399870107332729434185353914673246221508275379119874523060231411683650423973610591617054068207945364910540173985331516375506353794485084922559167164491982500409970446467687388465257192828815324155822290104768033705872466735208309665959399858089259732909522277575446501524249766192903431660566824039414883893540713539506972402327368631344278139505799317825631610367026407097665630620534795147318680325910665126522439707389662299179484134199777834094819396351140338159183741793833420780812690175530746433871519684101670591241829911656650513378985010559661881244574331638494075409969294189604932461734536284528055314236879886190143678176218748584892731622916802511940940791413473504980678353917303625674721035484498216703197525254462770377623015949086587093820471638934088045105588893716617129848354131726665423755608793751900730634520289285298408222769066575893447684074609657409204291038885121163152279915875539811667990637719757884187956868330274746443161960721945592314120972705727119027257429225809104278974700105123541468970022524153236147183178480427929876020056238337931343742087732885519889211264027422218183668233879319501910185253445524406245407056494294743731816829686079564934875336446971393027100547751949755887090716396759166647619182698954967959349365814112253197477506839692980539484629024388896446515504087644784153313016893409303707087967398804245509634174571787294710715222105483664853695607013283196509214054834754386231007292085863485008793523789616606385583933155690975631676745454959205872521075896026654560441272864934024822411252841274093583258139152045869962260953012846581118083855352420628345427933568913978456589101358773258257972437953443760893044388398945895227212312201838369448508514545294570238628890970434184132483961097961006434515557798255428007410181010220105213571595935844422311006759719969883355884877476619092239099240247038015586476110577047664917011549710214284215149491227924523470521995431966131279057296084199824918630290143785043373154195047977570647481054202996485810294780514475149645271210871881789863092031827919817592861938545195351142438908734022071652767933282547096660927085895956767917499626117631167156826469367745430381513816880949111575734739963236175776682312037104655145285495206068824767566593464723041512409146829658441479523893449714500348057262950895721730496084723437684773504992623684586075485738029973459535252583674065881906193926946615332641574325845893087685837979697233209273618304945338419263391873669068297027645038921992183235596784653772355224905214416627394117026792471479652119776743790134062667987699358415951912187819659944410254882456026171326888436409036356764211543059939871131506968027879917931139953994508931197510133450445954914845022934750070638671710796593065057999702665286978503023589591132731658124664802397139007233393167787255502994415574194100263858733929853518404191932065240603393827377194487101269751709437649373503270248804148759780162924483188419686137013012401777463149743365676125374743196472021997175542184262524364487421762486609758315243402253790033884185162872200409702540739775958322656506633555187173726285050000353188487455599366375603648039507018631009332646330788503810179659833134227840850265392998701802876519927851049497207791096120183554025558324561970721551833394896291675823057029639485073456845469335615873183546044463839561146576210212088677499429228995632344601507905716857512106426320865910120925296925597354367518473331706890345940200289071942650849913011300257203898922195650505654634678503669370295506188500023637245316524191366580160947497433682222262376983668749084830026601566640583087634198215289975310455885975551983131110073469482276022591534238669193266470441449105973610182822392440146629558290415750264614776177462545218205492849008111011701213550120298020754293497604250578286411254103409852370902068494809126480170937983271543885944965932201545402637128289440883880010918977759888852702556452027839587775850184726214642175767709853614113366977609594970265555514921266847347538382902878495826075810182008739380294699142826187997473938488997850344967121080391823474247840471991519066529100158426603648666713758736587064124554322688259393563116728703533919862962280109175553303999543363508754421935136215563424796188498431005373523509347534861891995008235280280988161013275679156063031900572270383073232306610727333682284688966095243934547222683784874830227477088296328612684960230122474571749484632204702992432094380271972381159167259876514098502518972790863650716321036295853024384895062043118521410845157177014037561991148029768336932620925504248447639016678618594784784085865132899460953332085542514751081440904254969417936560349710038456087095974892635285390659725949535802260628409110838591142173856709519681407282886845205932864076860238919072821814064946094869495543819983095935999105949335902383407079405519509059835387590790501431123053706538143313990713243817487114829192117916504784181468653273261225388297590189380827622135252787516148911013263316972288626737568723840279011484076499049213479944004216148257362836033790812353468049376540759101606131942926674081128787248972777915689764123419799554368114159171870958142716233728983973019518626714054954149532573191316707926445366069006740625678944501276807490111637049457493618933954449758621302168595732031503212599566367283306010599717182720029410741029219677596517734729135525207573435396847406315194614066777425407799142900519249002242523031555165588562075717293852105823667715024235669991901899036151463044931424350144979024040292419134839413353521201383483508544817627436443475837160922645925224833993386338594702002802355804876046073061386666119876380554901664971161054576889360102034541778731287226212611291411601718939712506234272676491881253035642141992247969767026586887102439449978173811166593133670716301607120507215342946019563398379879146856638483673727090611705661490940252796258436223918832754266888423038194887562343016801141497268775317181133338165863408031278528471164126979366925657023637816975131384117668873102919904469940583931875057431383016600275856617700724948593261310963249069785680161953560338857376199383677872669579335204266996590971929236333309258909123192779656661767001451706660471420430285567484396376312704963288313886128184949930746137246448657214899114338228129577233158590325720946601700705127268982049316516338408811576794778392843211655317547909094233974780750983180164723066101934722969662298341457113754467367294109643694792871645443370568382631134556945991354965870802496993859457783669731761592493323593182059370477754143452070593718863350325742469584922072562364148480398377088601338707349914255229447685208972713845445413808381944648286112055515621440758302881157201229722773074603333532432753477557157318512705105806665539759152720889244508204818941365680743282445550293494725541232139813719770251769076795514110586241556678183072005543159017117824021468554596812199854268839533331243165467306277563865351031075628969654883503069788638401256182522866625321707511149326829024422332388671465059814911891305646102331381776060314284148877120049890938324901693129021119537620825734806505550882100773934460223883682269697852635229058109178114361090377666411567567816946830300371889753132409003593582596003585333967325509735494168503953165223282128210007849042614635044769679144901512358555781477103344616578148357336012398185279099417223633638311946412186503331890671640472197884162623866623370589754566098619302023934187691771649810291485672934069944853538175143209531138103254316811725323159670279140023662069624653416353219049465997694297366793289798767332249234324380662120179698209134278162341739828821225947766516537087729310974191533147511548269145485478085137220449003334251695871974603324949660285043789623299202476987711892956440245549341897365616939913167256991581463180569294916962009960694378951551675558198335763350195519955715576904933545183860121101097326248725014470897574765135312859521830640224290202819087731227629194335674706127802400249906171104844579079656724723407759969753710894764989706269919437799018907109883631361346382883355243476581361142920601217776109386851986845467810731970475775114727873160464198808505007472558454155570221913384955008024429403823453912006081768799768278123264012380150646494099808614634951287099485524139728241085395727780455159716377754567825324889520625882054141452392817363957444610156841461936895709876472862633010672048359374293307906419035738289755763486961644317157433774997978635923154394700846086737524240059149988465499400259391861973653354240073161819002929354867791589833095099956246082087266192227011082185216626495854079261319258585623271983639177848565273734013317710106492198079987637311921295429489479469573836146065088501730370774119186233088893556484501639172578816464023693629521103597631219755901032231129221990108346833271223566738814398913252140550706951148886804352968504766813541505029201799585436838826272858196673704600506696545962489658790990573580203148990734613441924641429642097102579618840419784630506603581957482382336375186246312139648312090866260559197865222436153032698358932944989167475766723450762582614148467108090072462796599566215454147552417632913344932169929603010845078465722725845273775927589092046701417315759258953753350853298292489421242764001366644217443010612667819341783504568028614525993701702610502852346682599804721209301055008252130827719791365316339805734167204639067129126584822850157679269434959194266669137270490185204457003956713778517245737027284235890620282285560087603736900425949616690321187956639064691369870992299466445961872664353137144788492957461031841102248190827107354707483307668700971121775311407694696665764113334852373178918677504553476162219966098156861518907636686276314655734733597158174362608338495960767665553510768296754968499181316058144723472330868249182665000680755597872207688845998867420619675915253926268433939040176972996417179526853028337928960669741575718320063517347451965941299345188443962592749358754726739727226952368083499916183761455456162342544435005853812921886005461697324624876864539018608816365750277301058975912052703718257425442570362343998101275168279680052042747857840235653676192756638354542969974515243272945924645098706383049660844226847875554743203027150723481953853784454145189495642407459573107373181695291493463131442107662899362888221063121925151627315154689415390259102845584535343481706804786795109019243244779529270066241681234284480340504469172274125563328228720740817509113129681099729354272770647581790219678615247759188169734885843722296041235555782328524226808069639126134609608798902704931161497931662427854517942391530307379872051008452971099519225432312654622077933065305345695075672731448384923940696799731933837447299055133520622899977029397638796380237584076796814924764828589502090604977184357679060605230132257295501260784153955926805445189136269877757077477371626711091949373205993105412621110102619387497232068344759422604664897994033308273750758641981478664530216720436323656608800978974740668686078428340412615147038401288580510676912078271365212495519167501072884819205222208544799243001317296304012031025558266027268572746933259510604988087308238901663282254580939193440957211877872910502250642347746907672265983154543049560760647874645775028411006333518832374630670501186439369981911696549093240803273050859361849906304296545996910114223049335488472463385939673202195175419475004208699017435914059277695480815139955441234160030118299148346787872570773346608590061788777897647407858585206718762809568425968613704185191104546995987032239597853475634396289885825354405553966129673660611322828917473316009048451051901102049568487619712958473385397546343425806415603636375288361619794710337156460622994905439961758573359992342740821875427728704154580803478407197248722660745486484040783399507497532976056598575793007695572062205523797120172367783129187691136162985199045837354429873573902894123332349725911894498077650068027542021559839566202680261525112616859890004313960021840681414577359749323084786178892955880151919554497655339780529104157603106954076589084375148078390308665510401183276988821867499077473295488534193423670747983276000392040239691878097647062749165480347524940784377520543277894793502278644074981686250765976785284435185807740361339950093495713675973855187979503073572282544076727766323307961407650585204922051440677103942684350954528873564498041859199513789990609801259788144077451917337930188317642659182434379499954491918111390666349716774685257680586775992132868264609817537331969693411925458716280435123885526650507252961903083274041463602198307839231749234597254862245511715756837765408590824664321833397890491024574157727184895808260516379131666141157122724345301974859237788157071122387148578920863832385077170259949743726778451978453607158838147147044382123737789715785596464191202507923834774561523128968518819890522722135733549827750114514495190651122336419740215227668022709724821751320138072355651573395081897890822767417633048951367165255029320068860606939261667143952195445763356004326886537472800206643956606109130996166223262870913556917707111841984395823923605891065864201076325131148788047851390142060635798844112184010307962389111552195105121445144815998080206306556695473404068248557286254338014078804621081886861812422613117126780615377163778369178915634653147638400318560651630149080052931584412283903742144528500190576171583268873594084584827436513253760668286835142996398683682915361069301925051624346397519419507477624432500655902800468537372200642547717622096258747557498762772555908506503333857070425197684442788422754989782746336422336172344406242529819314500815308796089203741547253449823784812867106159400068402726246413315628678390517704072788764314467798150554530192648605572972902809427260926647535222800741409840347808615054091398638948676962841154796996639591836417744936893436024549673034149192359858624615294012574673616282852412248347847813520544230343963490632868946482893475746878469451903063938135646302450873343831859742021193724562838204643080274598254409695158793835951802297871639778096465753144401695933814038581930701803663401835427236333007570363355546898649026067747350876036984607627847734154750895377932087296166036117734214206364810601234935585559535316058862318674985123095656971681928488004884993430353130827540979024450962653052310176860513203518274898399779642448047791157918696365500553366984992422831146794060945878366108415685804438115203314276691869552687606935226532755381865578529709386315708354308796029416378996560653138011337200602030177249145223116078585123000663395909985940859568768489829927136628467949402591123239180689390224392573735383357956691610232156082107344539523244160659023928792464399562224067649058188227821310234707380380545941460342347977495854847290124594468396496698652623519787432351759500275071283725294886325058016118988959210298787539948480945637224248452629816218441350721093093287540863300761689880391774961635366240817752009685667320578186780906472836291680604847631899472145563115301952885728138060328066149894862607703573465111040720651188260796758299031252215548983089208431142171225088711726197333473680099535107632478972671211658988335469911062355082752751468203952427513088805736097060966099493337213891972887234655007544712100811024393355429608269771675991564100481102210710357417669423225217733110508310352126209339188098062548350492414117318635297550397611436290528495351774754302847923066815865885725191546845521610037105697761551711516838045487865048986284074898052602639573062779660966712493971028560851967671805898015163009155740404391028517699982737417139531017948870656340667986806707281280024232689131201540647348368293775252439582775108133945385620075569149967884884523284362787578660201780882209468315741832767632101645795247899236651918207590612896304909736133024580772034861950834105834855218903978129645287702833628029355217005568198391619899645690132715377574775874259562594266109841247474077672283050897800251039615264051752644585402414749881925464010531279636754714465030813398360985988238455141509233352638765310035288251866560389067051870314977541741365044459729392479748037085763872169708693620710433925578085557497189032181404048572577167217006611195851282590880374317342229189053754359844805709019251219471066256942681607988372553410836978377268398104581256111891350389151938360151570873694348289579306920672279671602726156544022530859493861806200650778791986871597545235272995982238491440098202018573197666424468075978729205122370492288363186559680994868131951268420995881264291188765124297268698156723563767088145501348464903376963171621307263070074179304478804192739341884361203855024815382289556675205460417134590995600583103319984327439382550470097232251960486292679885537806349456172019945203588187141461496718836021513899890287338243947830650979815421059674336306710765985469710417720881896089455614193378580269075654342073843916221931268569076725662566806371798589819285542395326434983572675498716259462642798878129056581831916713057116656149234605007438809337805813603117149619573031071595675864427548527259424260920173931666495524067257914617866477610508289247951889629976513184125097095782081791105308722833221100100623435212933946475657174336459465400480107585714421062926701203977822844717498314249206778794879844069495736830476925075832931337968002572171130574133335278343710855303258627508187367518715254337829296082800975429537407540669129136566861994299303679521892111596817488331205053195484348816545124859864251542525056779692427814447373081874694813148343359115137524445089731069722781345797934370781464825040948849979943455667784630437337414963625856147784299977409731415591964863321069986339575905934141775636205589217292088154798768881823569390014924800062638777445084549005252500801594840942641951362137404595478332715465293502162749269211853777453119344151312179996948014260691931325223459815946903522712175229628782893045577669860711139163444107240777058871406107287349668679691745592709274798826396060228981541218257952711999380642809994151274207957241418817469923422982935193503549924263130089407709592423661719707409520463208062656811938172856528342161239153024316467571321550863023449148492301435841961187943441090949103917815581820271110095055947808536825500653789577903226232107434128191604702405676640235284106591064263871112798994003413383720570116971921740512257828830749190737587137886716027283059787622361877182502156287014958606521422086717162407352910349957256393043994611968031758142419392469848301693574979568318606147710471866379700249125491747131572999314568580243403288921905165366336758403890953079780142060286949478452441473335500122880274684846067923787019480301901627219861037887431701710284082377874138795563727727971320042902184619281669552633176467404177618956003797148061649272226446427805829818351923945863798273569977115144394925293224549636986591430342306538324586315251555842412633840178173833753420643212432689972481680997355910386720852071732073768626467114163474382524323501608613211439958131045647050273110562775563890722765296943449475688145623572420839710852867947812014779435665967454681837220175114010898880854129045413443069512071560133353461704297807064238256125487756711933744437490028659331007955315885804753277470124661887532261299523434612993829214622515369933245856284756037781182991080355741105247160659998313866095881192677703634116411742802865253438091085345048525841851018424858929127748147402667393345965498315165906176886022933417947097631818193427134125732458533250388015801126515132726257494974083187047968886746875864351063984693414362972269992135511735708592703968064154801107908347526369996124893235907251312755040898034039332544153345777239569943254880496389563238013242414722359572038594757205742070096044858203118516790119473960550800616522639336779115695820244310836545631687033876973571103955235282644724407860631307969151270413711357722200234300386459633561958819479569914285548163781896794839138554375437548897244749209648810275104703189459074595161637414994312363947276054778271640404636873659887009251057372678446417328596530001050961960936731998956587231113493315492913094182893280057513934045005305674823546560831669709699229444057266823513155957850232568690322936180567975402307311998309065399653152756915027794582955575748172280032735435544302351181815371263204274522122266314831244249819073723584636962496040913308667256345740309872010164771709997539705427515206145259247435171685583358592264343574745704327582490898312781844115285954337990171648074268264230547634655568783523886898713556285901468011007814319022264551210619295685615169853103468415330598188602641860325815802083872312936860459821645614520395659138005851428313743481793569295480905274566903621550506542633878900257730275137335782072001966009724548948073161721206695905600541165808033516424768621487174198623771256613747045289881591914269381588107815620100833431838535486816807950277701046628400778375415708770716369699120087035345358586269429545515917573224346165144019896318093693995389091181150962726670139886120640520185139203714057752260738267099640278318639114911417006287218728743421336450193624247003663779686210611942464694476443080226158134638343826479410615393505529911698920104735521492301987849249263459838188538859285720982050216296494662712174370197830507626832202644048024156457772092784685686095232138011065111398802063630621695937912771568313577476325276289274194808844685512968202912154481187306072597604878316153460809899642293647315575272569843513425862088192039988636708167753011615247947696551648598252360756763276435378203634670377036788812651333898425242092726963302638095459045683940879543078023351849559607552666211712811862987956662049690152167648092471914278580928498591522410423297501855175415030191045204945632978733269018025932013268127497511744425864627247320302244120591156048387574041727961422015563888955383995599880822024489267622556033567571362292450690521620512089574500000858101828122275500270713914670848178757050202337526276080090907245015465916564170028969564397340858004694640785581443050605614871710159933977915753828845761421184657078599882691209938935279345395190978407792295749410779196665543866534652412067238348050459107771398424538968687056036748497764079869911071318920622059709597308997471652735870049157261920962028703873816073706608496701577180392233049724728142950532803990071146147874029507757662352278648612538203602598184945446036778865754755938597676174672284447116886917686548050000687057589073284212586997262761608031286740456579879628702764345139283374768460111893862646402386847018970758044473828082309592059008693401052996399336779680412195920631000132567758113784656448100839268377361096851597112429420332111442388894775597221885279461052832393369093247650777654257538223392836519367221194833463319001192272043053673716339938499319886145315113250731529779201970028472922051528741350294808080770489136546464804337284486041629052872799804639601844775364484988530156684322527302103436818153694285929155324202934778918933163987160538923359314978492507228137244303770766080885368912276958743054757909423418448790787499809612767349642738578392549703766415180716075639226353243731509735852851868623459286462923896914477430490554972088825014218921655721745764859366930761878119482252008577602580017000610638014433848729452848917715093901535184891952996337573548827324384431989871591476645712090045650855658097423301044366487647727268863592879715886210333229872680910488789650471108899271851527481106840300234360975401858779949516380095155448963321665522503567917354740470800305862410903775640064548551383679820682627671054598670765730775140626930939333404388112111636094552957305651517662365452340216075509981384848592950797353287086852617733000736239915327191113270179976400557937903653735201831544009944535302008177461787772329850460732889166797237649199701806175851291442808869177771775071913206881338620443861913366759052362739033013282937810213095009431593661031665791225342063315298197134470973579992035308880810940294431985365588224683649505519632286510558405823426618844106288356481611621371087377427009366001030797115312107510744284071329986982771312545465957497056067180590116440658512864392207573166028015660956089861756510722296631352987803300715179740790009408403251578444340062718523139637403434967136792465169369019543808615828667418059559934239042546761600519164624435437039682360995779791778530437382150473917016195700747258974262312148285112884020567327365696134671668911605631171789753584760481389083309098464772947488299344156811193757368890521992637262626544421339219350322970411128215818017852382319212177311583554275161065356524124790735391141441833631886446780835327577200670596203113470626033535161182044702109419968167592736564830898371292577520710453246024301141323790859878128223490247461615835942756370580587931652135149249933552610941290094690318252187002621194988583239222304133281261184914198929525896738055126563483634929339064022115637090839559943481554997578714871974209626806405105582708938588226520666675018411838136024642730335013945429807528884409105380567101157146066630319750711148336787570378508286973943147289150276799075010118683032748667204213484192131652790501566302216417052761886602168316227960744276641944260324803465525491678925266679493580266716789954171795359232673937944951673112315471242367907182792478097895057980219793189922432844671761293004933327236847363383413481091764361996424696277380773290392329919836143746449306482116349225940854695871522440312085527809606483453936479338164801471929701965569745664657959934311406547122974040947635172559292939498149192298245585139286565162738009398481238329079490289522306168384095769022991145152043458942828461885736981641704523290093209156496160605874582732391088075281660020748416030701734582661863379625142074209554652177988844329600094274860403653762581457848041549433526425102480605104548572482089026925415795227334500914536518258155615054445819103181581142705473037103848446843167080013577707101998294393739641445669352312696506568148397807052863306001129676622580389695777577100916490818500397622589419967465585154368257100288387531086286413089101994713399778084942087133951577400684395142906737646805834721712770395125820228417287960517207218115104245074397885985152719063758744591494687003533583547503530763864383132306369304551740882976756574765658037260956102680117114147712265398054982397865274320638808553802391128091068334194487352366542667727476340147687854947597377503973920384015987078283390911976532919319587566262959221290556205517607763601307342499835045706815986158284071230035258446739078111565784346505871705117290191641198471580871101962957541691928712530971314788087176817249315655074904096975222135413640836241098249759693551079507820436261716109373501470508511151714328025021608090190642066959008713620243106779233549137100887972605382432693816130159172461275159188781703037707894513447187586644352820379082536101935379635953246572562192977179068909085277074061420517530421975130858949537779978426404092596929196102799902982568086956763258037077560424254030863425095429794483469620838141717110715438672044031803105669232844601818197363882088389088672723950713804288189520810471384272909393696732548541945715635390630782865159832874344153058736187528539280515597855396096299949276686449346339840525946023628938717699982873120030872573574657068737783596454944838600000631789034928333180705406824111665327202428481377630209498550797597927685934859496090371756625133267381132646455377195673123107434605473525512692083795634327329330546181813413194482001480271179397722875939553555044612911862897353146209547122271058633441191549745793597591320080420841154581288422215761333806602472822808916390294155956595822460239578243123629738904243959127051806313035322582812383894135264812550893185531276901740881868286397879221733396484487824441077081096575456043273735203763821308520907775275923605828066267513802921524157973732289944765261021510017401995237918574816933436569365308878094592507024077375792941169853485022432594097698443052026433733036956894315453166034046982885225453565487931128668283915212513045592526801178438148522292513750277189231215606594554620590273618061033317513553250250920539099420658533751145959941184313875932732012719587443301532565734364621730632423231940220685905484164848076774844408606666260677932797078229511683874230936818555618426956950039146365826103156187075369094141657324344417217655919616029332383398712146678415086055048801953083842063037750056062545552492866718591217615468791077751715189650211871470997248072479880641628495334204682675633357616636693125282853144055608256061620291894113632394318759063281204339836926673638229104278347210159202226215649209924603142455508549982883606199465838090067170902366967506242983977887021317037650749286778897603693954997363593925288338865099071750569777664165055680512023657045758539136137190170464910224511152428037973824793689870609027058345510415537676737499809948026476541594628961727123083406101378427814862875192543978117103100166557983662518797108341957770319281912812621618348346324954999181389923004569167693182943013757379553021114318530281245398150518828069065438463328615808202208693283646609084561613575906638894522318633210887447606339807397986735577641828649056519286757419757786535807391492447660691917761385493386639162751515745967320399284327888180827245539645022160206156243523725461361086941724849961005606352873888092573921048536542506727639792128501232179158981519862060057308018831730771440008870764573468281973179982067943413926339279706977984798305261354347839285626893782396273576799643568851139058255517163983072913610356406948536781343754130452346316694838375998504005779738179184383382968567979394292137163934284421743787050342940841590269112007690768249809838145659007451100970907385366598773645433819617082510889771067139515123867691732986416301015732721654815862503550443435572263359386805910366237316301519340098865984327844112495624766669217425473047130430126327767416789872919953559528767331466045325225829124573115499211661625627840892994954866394390948378535561008378307598341184792191320659081414426568440320443177906244025289482304876894964012575841375753083105537287424863404445385929890346164720248254242313785881153481427172112441682258340425941115391982955313952378534530717286575556052059279125628436413234376359047827960034340465538983674452999302860694464147848953439304769751373222822984427391093645443245639259495610555434736335804449778874667753155207515142697050676168452187017963633316302879713783008194210930335942414594824540758020056353648337607702541039082173763202441026085403380333532834497902558492302620741468181068378035110062155883535701855084063529677437240386279589422847740518212891951388467432927155043680811328610107562744940562738355304855738142036811740728438643728065233438282669455056317058309177491491466441839703361893004113891826573818082688463634643354154239620029695759145576458150633334163799569464185804450166284632218038944286434883068869864430793146115931780183900486687234821345029595336902465237766210011290045259890185759371339410972985285702821780331518642955936720493044088637813667053972920414621516057815080150638077351640934030365757040477403703191030484574924981137473888992184885426143754959897249395591714455521728006903711998709091570578747428371577406011157274396146207818725957043839204599687740156412976487269386784373760992021991661286189542654114251220297763436998892080040321579420649984050966981520082012456954249586847104333074888233755946970376086168902738680890298621473197375650944182908476341438757330292997127518386056916836975586424212801108874754317663869752012328977747379172611234255664905802553594740149522092507474339665036375914944904769254469567814013582786487739857965513708649850941102492068551477493242824023891611070288185457412619764886725489083850888007668012975035981733686134247804389487193066741669390818939717001426963215186463515680571032913053537553910197245888142870683900344748348806630228928250102417483999639796349652418719520967960001928629836983342384900478178357264955219652660824001498053883294198676903479299729817551614610890508397386392789841527319559090908966511045728380568678582367741076032289487888318943525552914301171512427079072860902916642169999141454727276127806844955383330549869652379681436304741929073762798835660159594483425949932111097207452758928869338593209240570739849472798061615916573182550160158528348005737492465163077274719554653272966445267250529069844670436933773951262055058818278566081370653236013278941582924229462408582959420859446850264976131769420357794822786482527924083592719529618529141169731961241838841641201841931165835463705144849809768175648468325606648233840595843985124346581675008381555402740498316524959488381928930808467437719797075987688020046801723801566571809541063513813370426036156047286955768908338092552066043952825592533727425192744630481994735166772402603815809481792452768944057993443981946503385188715980667188535339061408073776465890067224268741086270847979218696220235818252631594807323244434606942468178334664379443801259589320709346900163836370246737757175269291600080719686968959089517941268055689116017919683940749182485728267756915282327247773208631720539156969966769506913880416608490318252820954730291558360141923282994708534569441413107491691031305110517427869154320365373241252697579168715013664807331582126494814865639290661810439598457174294076283218663162883078423443688320517258621057437993000774701907015113250511477098468708148894377603085171018140988980808709584023703583306464529313087392750820913393132712598150828831842223537164543425801581302411306602662185911825018049367702915684158415889896038794973645619832913856440146404246759898598123747870347508645244249624650976339486815667720341602458492365039968417835331361613233769869456740161311126119668842770667933908676893629362421703115725311055488449376969676402283711492963386234800384100264460472069475509247550021563725896564963599812673254342569408819180500815213957674366619560031565136132748898203213405632288447021460471676508641507826341440563881481890781275995003684793220405210874525582294968420826838562956844271072403522517587508291228784666355708618945712401657373408337420725393393296834577179514046249029483843749969889693149104213076575229695775922489091156052455731422647026968915430270421952814581625772901261332450762522969793226284455960224177279634650206766763949941888082749143805731590564488324454505567561789738654290037474152924052000811796514838597655923698168912220200720646392295455126761862404555630602353023298735046909818418057113210065292565276442471054295831911852230795899708680235447415847974141795797798306708076480551472213914229884469875347791987019751343584678878189092437093428363925654699125689841578637851788148012131301374742302838976171123730981240746450315999376847953090162122296454987089849389872517939717579428656255824410679558293765814261810412934462372738190760780099957014689414932104224145860602070004841499349925816768686412611173999507996697331779276048153078358218251372035315204536620156590638729323126169082265317574238448507952226339217426957505466916524356953317585244385799331559246463519086915131831749858874618057120423530226397958050690978943745444036634894618802126790756346563513821536585350124205026856625306007345809729936581977084709909396882606038874984374652836279159963427545226621604593610820199546867219898997095130465411426173537328069661829761265271946080201827882291168516195372292495739070130309994590733719843197823600186643985228430325086795403756891407610619284513910002064934169641013939059133785166385193219586154120064792558240830260156480274409581151560160524818648621025024522666390488770613144850201709463385960522115570421101855786804985123152831822988698644079182721668218045704273409005125695040625847497263830426850467579594232304611025142430685343511944423823597817272324122556926069215925249791065935523058797997908741616387628906472237050222265129124217693844860632070759854203565071872577671297368641865546742103012868747154396676401693419469119740138161115349356529838238386861452141902123617635465347261843994661317774850022050256673443951386276906825304787453151561896505695467510042065133118927306236153817356086860501809593507080211217848546741246439788309216376147162320183608040559376018515310003131558695111483304500276697891974960017576227293682173382240577508501361545327252925821600390992726961946283938034933009764314344804772455344946570254951222458742356032149856556261636007116215213134958803905246185792544581152084787088785621283561958630532806287727693347616058089714097881360589653449536291582120766329429720255471415100361088117916337890522510594850603475898670014790127573370141805082492915789972570325543972693734598750733263165357230844655928444418157684752785777014118263272207461100712884432907000659989793376641065069346375541750974510358079888307908872856538386174448457910438026564057905951621996290495900632212322957141751011821241496457686901078682758075657822466869662863207224633859186394315595691789102001483532786966328390874932565333336080761336744376532618881699107396431184459180785243867579138162697744627219568143247720515863046933692183032661628987060472202645042162947881727832198417279459707854914984839901597842085332632124095546273745040659967712374001005249646147944074808114315902614416281304163005922730252096867150355174804002254762038267649883582401165787438845997955753737753208144447951515632341291403049594052237598717691381726093030045273003119630789524564268016483601463289520736920260977370861903922830839268683802738602020774786472688439725171132751808269842599946292679098636338481144963144080272065088896739399927256202450688499789761074607048800742741188477787942925735609916411284175059102525693489577982030595636818988654656836643535190966044869926546233244656823974479794621854701185762646832342270334489553562042239547595837319455532494297674119551453107212978613704551650815646587070096509301233797505327420516496868518794663161553090264391107827017880284261352988324338391995663039396126487527895792087316030835665447632676698930273103880800085601852405258235918597755735211939243845965391713604670226961751802322795972932813314998140052376201765464559113877906669882065835990771648455208096507169580014375128338800840554829513933717068656500825661779175685577179333841356358004125594209123435721924984110368009192072438666714536553063864944134086458760844792259559450800472363935242759382960345298362140011757988602008117482536572049774225679396706592537656479383766944261943396969179384204216772143429199744036586492177278980985791607758139103922703757690036454252198375232757289656824509031938887651943184411041536646166816765474216509941336149248808202208993939571236912135680129350050447809431292812728314309924157196239882150223358696617812013962287464493737323177586054932874056209135528710563497214849982780089919583387328110205850735633922817139727505324608209607479027388218885526095939996715654011635580397904057466962734758313936929671977531468652170583435957827118262976622804621628230881691111379217997663275157299006239810280415888069508329985957114329928967979292370562341855853448397617775247107240576867213064185051218492988234674768651421566322930375614976765856634851214421212944175322611390777315374568481851063729163188357481385496491288008880080216219600878582328174105008672263266176296008465916237085053298485579909494352106474392609973935697660101999430265679619732126741068260562604643141665607606684311214671432254741934603578433867048614200966197273432241850433257476596414533402042809883193188934404053039263425242877928890626975564347593327091273721693018993077408959283973148284968613118617991536704624925837907149312495372563421859252579062245201634827274622135526555332895389342925442183974274017164294452343400369779940521823657708838169723105284199486778888520714240013052626860843924770599805454481933977522655209702482041847597582457589662857127674041935282372130443935607962314806545874598105813588333943186785314248381418285265699900401502963526272559270149063357375514046124654782357683744993560976077114824779675953141716170022708991697053407793324668111105602915960065341624596543614385493124388090090413301115173936988593649499373005776963947529204985262399815535694197727804099317404754140407585658411598724969455859558825395936015405838646185398771743348255300739402907833371114822960421789335721121769995017009434688421783665810805020698816654470550211528945275193942466299922715276630081512772878360099638307579323599547686715544474934232558481513142374803173454334195742968498815376603793120270952935721593641808091731438278388200911952056956479469077050559635794958537914868343353032934651122053421896088444857839750908063814777336790514429105264470761840674892507023899812158931947958464073089408980673104902886139173054823248673028006563875767885613636495613067703007885374517429885394834497756139456015032332032963333520796557994374764988885286361972593091125952062925320085039478519254028980757718634358933119624981256641415111427854203658567615421274448986239993968671876640431608187509751580762263630845987410736536574379349776222401151307410392917331047866799927729033426127801862597310152682406376068665818254476631380032057600728767876206319040725472504109910823581101775457862005703340984167796021657148250735578043155208292199211569296721625220204865367700207657510552182930956081651892488988289201009259467591999869043403360858313094359098359851050852591004373041035571787094834279230764772752996943740478368025134437063362159468893248745452487776101935489565875688737516904433363651052371196139855926920048030384576160000171675602596357520146868352012671477177847114329958382801019220039726218399292449576326454909931666373807528807989146912019136705274875889395325147541144414318391499035462323186039977162340085845111785992867847002673639762235072917947975364745542496052692467328466685703198468069045597860989645814014342865581889349828625277491949944813702294752919424215028554585000452150318277523831579827712331142694488914151202671509712704352178599402672877975938861144697168359167714800118490268475415773805671620189137818393214804622818965200282317728828762160962485248935614722469209643477488132601995635263210169437900638015154799078656701230798113528436264106270890282911713726293261527904674949968601477294179716111387556355757413474506908615018314500568283483188546209311272108333544778959910718635986767400299831732472428523333086862537755181051339090610577828818664488108726402922004562748283858958883232002158094456853963681169164302329187855838188203199782518296129361753609059314374865245696314706509341623598554873852033323806289792792236231876204301752368112337701854644377857797938975990158385175098913225660064711873525036104838636406570317476740764346352912899282492331631758318325379308454299286864905081442770578304154630869461727890921796166542286963616210255262791692653936174051482147502704951000475850395067914188258729059885601597688827218050035235301356859909676774654010890399137279747238562346507691615840341458182463910958101244623454442365368525349696073814935151470396720968108426627869229459688477627276316561463014618725732486217668614059380711828374213551274605106669197430755929967399391735090918520043171194022291904352568824658289115736722351519513741120853260302277884156125333549908836533006514159997349423030541158278241809961197438737520157794341645882928778200972709821917429414002615400670238491568059837201814830722431308780217757888554168694212542855772481163644101055341908189745048774226649735348447880445648640780637263703194682150119649143623517634735243213888996971335045560845114910668985625535266403036111146056891027263402473677023583656389087605039786541499842566702311439425872421791155103999058572731415754182572064359484161233167246890623855496603984025267194883657644227076444779800989806217819535238153760925145879688402363144426551949145946768157247769718353824426610325973038518467347464987703039462615983778412634271466547415638753996215421329031610774165675509393255705930094979557753802399709761833030524058456410769010399298392787096121197977821399329707895335495036958655282054719882597833554937224894170733087926011651288649518480948795348424794477221136058371972468824613491653783463611818157962023111175370279585123839357311991144806008608123718900069734812510328427365490445013975920639219170362669302259776090710584992445375375117417430255747284590929572481304729271381862552835805500749064391382562461773294234803605057402290224155259543292051271775492604250957531658029293721325117663473766188836834239424725130338040651489899061571887726086056899470872557082973742865645978908061771100358282767360191338167354008435880611901052718157130675282084012841587574909630278002206444105554416014573093496923570755483028965329460719758315686554366454541128564567279731119818492934972121859363562372912269164478644810146399832260253868365800623714729036921715472667773816052783841633935124721425363402078575525329061099106899782183039779396840368399803372928940615889348682423573181988766549133013449525490831301680192787466135171368483345692557849312368385419583220824088278073420025919807613180361144334239955101615185324822469932281470451341048708440170911599217128984949694728628686673276762700063503521238971037743934391225775976495154872344916198742468129846290995894459257526872514498047738426850020545457809817706961600787555736192490137080807950256798855110091582135229281094155436305286665749261184512471619545597643124548154995127719858867560247634397529628730650461720686615045514812271617378280668494288433704982258391788091389425605001678849804586336984697223299441511423981827136737075564588325541295224289235490004157855847933689818683495859688648364992923592851695991919237458664999272621929290302862522733937868582087845699769957098957721699342409657635821136902793538638298328115126896508474803717314553063560294215600185501655968805372686594822747184053100837501920699005318072458275902933512684124812470013415281190410905443523951127664114694292727550090709594621716271559857035033427519158493913572435616987331451345838238325623942808198776368317952793181961262500394608278148088983282837879574831704389689976012375779463029129761672592714722195406997083384299170922299256230227447848855457358438658241820529978142312948081327109871541106841418181114355306544351472178135799009245917546805118234145926152526512117151644761267314433563057932747697750887514199385014443243941676389040078592692167089207032749277232778111987954774968128128257954847621339685753348108472747540450107000944593441613153970582000560247507675781923341384379495401114533190585291422627588591438063000225973093273013519029883188429854319731861781975436273675298010387675185853820812831904046155265933507499193832766591245692107370353238702287103585225603162559845697765034343896449011502035475897489596748724671795344869788296132708485353995697487096195839114375813150454447202392295940018744078484246822405747622595178362055803521278249218581438287717858839125014554985729891717878654249191801752089753967956399410083528731157290980830224254356195104676051148078533855186998789847532633847460386737879757626621867602285910209442813961341425983421055737678795809950845072871429724018165815659549213295799072292169005501089503462636832997640065925776788004084727748894519468383752098891560321510978821999122158477387583644838386129664172437736357612040776865615132126610032018589003460811146004823100296813115157044112600251483694162971971226234312505938370294589309728197153999587621711823008352624193416341058579057579601921553828524606674505901272434983323057568514457753265544334387512994939323510835571795839656873900825006832242494427680460216816922659476622813404479302368758268491089231757767441761926064620321626018430854098048912832895185841119229582518336160812919593863350663362412121996051255888018228441294057918304763584005424879140574788065054396391197746027788073877930609156662788739196892792255238954764822286935611433640808500020103432876388987911882162967502470691180790896164665076481792784074538263204838326741598838065150086293846748082429550818303275614341967040786132551212025583694979430304738376217802834103906962783693934667149225870509916075787034217306395320988172483542853131855036948934922538783100458766620744546168661760672399071965437097862763822467827343396422072239526016626203588038148528705780895684294749219201740422984326497439102726832414336473901858731406934594371102153771714297456976324612740635450809539669481561595780352632846840229473427357267099497818355280979329755598311721234212758631566890780323738493966593845781450724257304989821494999332648384220283601871375079746646828588268327024451146744827727914836906591995508131343802147220371154954973558419883792711476547960660970341768800207319224477631767141829677172370849183953103468468358657255271639991377830557983176717953085952339091404860156465700588868841121599117285482086288039621198016804341365870266972188269123519762224632371490084793294019606513885273483267355703205719802159264584855342425268867548586258094958141177468807609941034575503420560366145488548284844085314035818189523215705334853124899082158839233851661297175158234865921479036573993317043787403180228881433956170207503362113964788711217230874264419276753453842445991538518146074150569160249251168182104293852641413337251245207914613447519136766212875003635420951674748646835613071159943240033490150989696183029626569757064533668775674190753583439842237827058520064821214413180257288219506921964995546912701442363771054751883055821870888323664615554767699809025463869379084521669131386613817932955283403208191009377587636682905876013772012364496778008875555916590966048999881681599023807431170116204553220232191914298440258624351339531041363812097282280316924519367711166643390564620117513443345752363490448934807639771741629005579261715346809939202172431799775037033866661813219209692645612069291528294153526897677711869313145014872239775338393113450879792962670848030494038681562229916312771234257071013115517211666949226413213759156448768646155362939612372685839083036155487894413993192180400705097749171083758572347868870335258721885706039519752065168160656857119409837693701968857558457717495308598872249507011921276160941347849744623888824470703310534504906622895458930576541794101309204568913724892290202331423193600655878048041076508815310836809717371394643367041001191259383575041402303814712923632338934948121553791774898146565421495626749207931096799789203649855839649077129809779143473572139969861408149585982686477377109068286759570121569814545253826249619237993743833840340362222854391501356817118059420639759048358165766852816466010671731680726018326887395840234182296072590510525884879945885742430620037011035053605048214783725959313901932181802933138576817261805011760646244773363499135181719476250135817418547650182090686197113278274221028825180725400270875615549630312852945710576875431134899538964929317668195874823163890937172737672886411203891534270503052436683945201842793006261857939239146903864213892646544218778114102717414573940103247388644134678569951722960324324278962887384762664969071332971904844436315515558736322776288961896769969191896219100073033661631142784339502690729155268468476011028247260676981307781478692929072711417788772913189791702893680928685611423462618751091019430377373428969382956174180842145003356292901631218836098952188873302880824506665436608981819669690279344446993417735570031272430172807342685163067521560922812888917088048779653031850729908632969230801169315271441151711989752035485186803750722429770948315272375512536035573463387781770487406150342993644505910322972667999648528767640535020648258825346947204314501045361296022643412023162543732121691529260312210889654802697823050991656745653023602142724402740482233294945681632749329845372218628912400891035444194463424488982151827009785777531856467367974922375246856895518931048897633253752136004621259337325246224953056801273050225540326411306145940181012156229607635920660251624431384578729403880166339723197209556332076743312788349839037519729788510860263475284673468278768097669705134701359719779017279336848361149966834688892194178903188178067372387487015433384400264187020930651220564651090188156696040836023746988237353712986451207655930770065725211047837079041628828945128177305435649494904442378239847969780096619120416123106726056969768193913028757507676934272453775094501446000273050730798490872477664432393133691848195046004202126164893883301703856221609197300728536709215049997794484786344332953935933738993033233762759617654497182652368053950751654535164290949375128723666316281630741957484832245438268971202437136296639187533466670660204036682751918768724817010088561559617989438890960084181716703426400659415218555164751878555008039469213658731443007025983902899068686839136896483577344088392975617949687603470204681776774706500312223037375970487352078186972218852150956016854967754743323203037784139871915549821658036464089453267030297663577404928871751423533227650307899051743955568613606598943932243987144114966114057451813299140579341137806957066659441530299430565169131546604672141939323292224017337786137379000850442214384878234889972846798425366145772917535326839979329147158490244065248186516238731585055323259139862878004502574160297333804474910380662137797515914808715365598402931185439401615180836584976606133379353059214542922442237948495159890223844793718777520703349427168344089731504108334759226573375776541224459405493818570904470422250732784005294824292641946494911361932167230191437408551778251239696872361757290282426362167604605728819584776732064896588505778184184123468336473317972661557848148464059160055674660239928376525891337809908588577386729931045176431216707536233943984754403519954081297074748213559809906111785021270476858377081794644784228013588757504947662153344279227299673126126543503698115192380536542778323366495988282157251257454890443513210695978933158090269986512156671664608924329168892895610321085754970391900081988353217762470989484140217139369308463481921914859510795891994902294906410099335609888237310835193970352940695875447643026595400648196534061030417504869828924784246577537428951493447933684366866757536892915517438055125266486747409617266011514733352016406385184481565848024878223717873647380301186226592345305172379619004053701569493885724842909524382345413847185907797256000009515792471424405873230294097734464684177300547053172855784713732594684850127238530223837226639506484888825821447004511935961918371504782407229765584517519254293867499754801205845484572346981235779209380536303599626836202451199145107302227384784916541488287494609695362355082398876530325826596960610386234833728073347286662827128329594449668648879115314343667787182867228202575746999067047424227991218163151414242076607952649869428032994351021693530696055385821474104385614949989123760012975395415898292538807788657012141258340318360266203530473618152397041744905613395708142326570779710807726220304725788074990065927839781495374219233955110031942049717540062375500947659120556195454951340323671901465499675058464039950501540329432121027004134456320469816678067587169862547546730407010606348421121377876999447500667028045248649252132007644695732653545433486774491908026090285900985903853052312259980291213977127038442507996616901597206691074817067981516346704680402206323438210466563093861204311315991496660820171402942053697912163632014051334118127523702579008867071433863194457652168185192675372102901504991175959888786636464634775732660547317638203463975138519784918339942718900206539831185970006086387940132891632293429240967622362962593787009541886679452932837283614257355981447928128235153484845603594994057761540072592094463770154497625104411125244724174542290805675675590131302384469261595024858058652859462198476307863978298877053270685289386703472897272209084835680169088626261155258687988775098550819129457032296100592249962967634029411045817675116154692283632612494024539184595217919695051784213902577564543696484097798871888169334615814133658193923646592267234305533366149836263605636785781069316854469031478044257985048586616987189907087866143593788148101617254335335619541034632643734066839608514941709389520370576891692540648254111402050862387294898055170794777612549285643250394162819229480929408817294766098078125428323462064194262406898126365611199204360149187976882264869541479718544387145782696286116557198527110166052424975858227870531186175816924048548220519381330833022060687179385957990479723610724427527637994689108509801629814311820146126879977869256468179178463227048769228678605324241367310431178998601323109653814305385650131516744695602171623398777432782215524039026243769271029440660037468566072244508520733166782480320392617674337002132155379059667286572120923643153622228399420596221920446160209774744883222306590690303046925010281313264557234646930215939645822622196018449481629272699187770964894298936063051904717273850712798831081472098137111114960962696313896175992728937694690211811984530167782513262730089355786953927747468353507883175304289254254249282187596625445943946070287846846840765448322184396574470866230985975895892261696399580904745376514155151183320897819151946074172941196930123844064016579621148547774283141670444008122374237202323176071758666913902375461179811362227276239659150003749375134957215570523137021451037740930416842004773928171014273131654339450215252237431592715439372189075482939690907088345922370015964571400325494866926768325859231208466834903033758377252853253046691308875238083974266109033793702631676396111552460078061515575550857200012037843068316292659531819044914979054783955334204790690512226216037557755940517183487636979039068412701749336819374445353446618568636384953613265148346276214849180483981851219484913334370523147690591634202397757242980501292693821413304343374600289046311665906665398901402631126438537884020787645996175121451617923436543769123614759099232839673247713671288443219494653675681869260048205948450747560229389189065483411824219044148045135474731243343550986253879456785260366800510555287835789286298553020291248685112941271156608266648481297322759528221343650225282312271802409079857128153953201190041402756787085235028562450816165646087823160920734172391081728580825639464248650182613115422898608530458064517088307120999115330505565253080755824488655762266471641716285785548914971528601800817832581820219069970815135576029458193265963780349340841024479727020703672649339667387070326918759263780424322961863051363826524467858907090606020104360291711608709350537754738477658585512609854289601289104995901088843088611058658120347350265815913636034493085550711748748028093248774517784613299188817353071442678056296514058940931660440299616356733332817008005459690485351566725976829882544229821853867059896492418187596743933526578115670605105676458784590171321539330713547039725262681482683894303496548158592764783211141575380089171298207249364699088788108943157426294153638423091302152237832631099999030620704365923494978532464171638015145127782101059979043388808399303425737904769616400753367444495070460613460299061790468636106445909390728402308503312684524250492875377418532602175864547011849378696854206927521419415310461158744294227771021011903050171632304890771827934282314475129913702167843995491345092994625049216265262893783474430551921769484274448043229213943438902271367663612166403129946976593920786268834486231278256160485394766775087550068146464656172209723748440374214264906593099321520792025018705663538846004427365691783151592775923813446434946315282715012730485073289624159192655996318562409216682856457820683242470283532531923733270101846817362155238719474669278342064313174808140268485583132216520652475860177311172513104071830329002612109265277405569962566449172986847051386805793543589605241968018773926928001674605367646527309345287512648967829630790537387374839516400577519681593863507611883274193839873747086999165155420987597765666661919332577634167403183308411153974035989268936823644465949314314370755539101880861674971846283074897969578598940344971309060780427105090375646629647135055089750921942272158823684953947323939837052790844804264908934773615557595233362867165467594101126171611657360496584586599332349389314955190695127319166015657934835837646405441293823233176171514284887095884919614388881108648737212080647452127550752714665829903993404728034672894087044983730471141617007143686802312090528618155189217384798335754613324569635807863947118407121173387936837496038078488308097918334843586044953507291329294396332904189261551810034251452861446797894531611761569407680048187201151363015892808053777295410311896595083206566869691481840091461078955880846145445161531452063072322282693697663913447912602723430252155505484203934024577376835011184676252089440507439990433861914291178159801685128607678713341495168983403606087904906168232164665235780837607325322014528165026297154724637818258093282788413570924561078846295850195958856338265604324792670872626423608617876223761526800042073224359226318441969887393262342933769263118130116367546611010563482520230559167976372933895851242898136418908796985461499408436422265952058424919276450313030596539066132666524280450949757406517602114335914808132365374640332648241255281003269219003524316373236540253137058922673911512848828061514198728548180780015004912018520712780180317578086817019283092819497075305297622923649119709501252785516101464485933660969044443403897851970196631008014234281662434560868907753536665342702498440555997459632798852664898933028794194699786232972100821048845257395154079186700357847114518541668772100596761210287963058751478565035173310842587522515495891579184343601538901905262900948301397840554939048778521787905207750022148382628358335301457682544815904710401174702775251603285217464951896995426283757942090261180498752838276077987099007095974480292801119297121737308136874897024403626141118038715136161598819484443834950872224289063867049599863339887601867488755016359969277885887508417955877267022004766008973870632312121082980209067632453741126338233342327274727051189973772313884286824369923742577837226750874955315322189497081428075400666976002548443882186679936847475838883878996241429411946155293502647614348281615706794587268857778726770144976598974979799954418982154459811928297098160942635212680996287686316809389490842930157506467115601116009141592958534298471518366412080256561720384128623565952086233047887254275395380454635471127060247502546567294710538645822829240428561297656068255664472258211057991270137296515097672353815633894628671762868459934748025548396742514591878666757745459488741822450561968366749095206982973830111018786943769203545138811324879721312400222485931801587091616898061300929175274205096658359600514507626891987379023726788758614985068836062197592250333593018390783059245382627472537721129753486956929761412598241365362830736312306237491050351228582636066970302578507262607964360604671542685283314920837298925613316663894046135123916460677781603114627504663708429201347242959884611317624422291529589802591726597685387738009350669183590611882379860304522914941044027254453627576562024752141574385282720782335902775531148081900651135017648150403152303483177520605263826888199874903533029214650620780590764155272991883923837366169363160661471079229386312498729039801971223233436287970184264459375432235877900405135321938634114544488422761633359022400953231387857367659412406967746875332654277833562673717048228915348213578585126759586402229105347920925510334224717759957109768745721954347726253980421536785436256299251732648923033588220495137550023968147996031161803028110465826001387604781931325331090428334926657404129821321674063234275768247232773777615154317958878413460196537868660585047065360230999747868191664831909139573680318789521427327673294449578339863669670917833919702459684689190667615157127775668426112716087802771082050985139559820325729904494078271336261600557706340878808764656514057289171823164779303054559644073487515326055435723810503312141392644980963908216087692316218951053302565494265494709846569344552835349247026101783626973084124487133301062666957741799229357838366652048763747559923867821061638773767131573245775622420131515866331049442613190508980882234596171475568862061862762112973782102534973967126755968927125959717550760507289041656790977672457934957755401569863250160677593400088479739188113513344623205650959487131778935810698941653582163123870889765038874287609191636317212345639871968300257591069646427132952761927737633240160228098699162002593900810725170736212842762678867959994433193531741476912779223385414786588972539342250990644782429397794700132858435487634417763361478831620751882998364279833230280245445836348260092640839055179384770993368267316779067933968172017104229871411526940268875585209077691579625494551709453772441224393682391538063539971412413505417577779318858534755917029000526235650807965946523886997918527724837820254907731984498880051228768783355227931628126615077794312798803060861039819014064955924946624351727308061029090085729400610041350180466254126146261064915181602787292156203291737486963218174486498467431322690345509427888251534950218533668450096739786812276722397474376352941722085696370902505656846777559738087109448125210656441339040441226189116885801256556984102747428449060745166661300390200668987548794423664980779404112489492769985651642962868844248615518814317560774701064328236192285786137292283872249675971731226009963154759665642622954483102480745411585957498271285301152692057163222925975096668698610390543129662284675517203079080032816048948837732524364370080328263539145214992903599943456447701238282816915737509342217850033086419220486375264033512541719068986147215709320703222807414906766048896669080514942455270641924451516582987768066444540138493262095544832274613056232043126994063679261085142508564234657877624481439529521379476786399503960111798373093041279935806026922297997222166625013083130419046312088423505081186825636058292739110243234220312289431289926375314554625085995881535910757860420961508400902819581651255817000018142470924657155907691565863738080133498367318779706641898659885029508964174036220682191488890535299739556239392568840389993995787973889155337731251286516724506842443463517904925193707608406907783492195428829851269725305872251354129535423409133936754295178716749669489637436699504834876130938324206835192142442645675039438163739105178275089053042620552021876599667370656877387347111437386024679190663205109923199299978929631249824086819049711391693983622563772043018210846281277095512306180905462029152551551602430452167412503643752058521261734288255891277854629907842371151975671890115446863658647172206912231497978376792464516446721819127968197945569676838051801916750823003143501261535526204599739663952073436253744838489849520490030604677661390216746196332951561244264235275789428757154851075246942786341918738232461760982199288325894599169226811845587936348098272302241695140837176318982440174617535928682462207318067608111102956494152343325291662582991630952659415997086507081309775017494108836774187692812005903354581201787929593087312512382054994571463639808251543914199708268810718475888903626967093910784216628421830685733989172755528207650899168087467416915383146675651463722473427274535661350266543382584530359679658989834160216883519771669597033463412982701032353625557838800222255953593444017459790021462129848964425088069985615819246674705645611733286714133454389887262808634914354273873683665568342707654201021696863612543517805028863181723045757223989820546558301821611439399691896050131719897661214640061534590358842329364972062111947657528761836270234121674675373704085868333563623495789745009613684000268075914480466976438217128189019818956055623869030516607591415903488271045623857546684290273113192361160049548285104541185768570653713558714286362730656293410443483682801025013371494935801484348593730620866022517760402733951392108157247757255432904738447722690347103223969156494451077490382900830757186110198788373147134499915245681910143872172868694041670983312167386454579163139185864492017825433748752444592547984514817453649601511085896505232079075127628354197566461398629594383345717164795589885366156441095416272239703128849444476449158348908400779918500713533226167176468601032869538738153657624690573362776358651004752620069262323961273714859416666257700063804455681402152131764836620597840997319105798298117966438286631803255826469082638862586878897562134105401882176070254385872386245216011340020334387762745430632784175493672414745033512595866983154114828240090940900290027114454021009117249719676233605099140104034663847176338196187808761396858886032182773318079976825209012955661385036703142223168763263119078799308458648971899043716249508379141456554483188418740811734119468771432588902157662799188712336271451851536831388301969819805833447557814822713615796591625688673141271264118584051546303065530722951154507122807729049262741396333418677535028242594880810731868906631579541598243468337259787638389281537915403818123411147780499127759320206486121827211535588324752323072834944561280934120649852943985721399959027333990781382166586160805062252072916083348343151502533181428756820639257819094628315321846967212316939533482232100635153072646909841535822916458371124489280198484735380547056771756621602494611876049161796684799336732813350104803158339726916922878592272698180959404486303600087115890798267558136545252054550164336405935423617091323668850069566938408761610668240036184427762328523406478880610983409960661354351643739431615085830782199755317368828684871797667671080211591302740929261491035881036039050896880654409650517328989961941980337651585314193032340379218324615623482969465965385046516853692344119792880468015499471151017764981938792668931080966709859814333692125183383827807598231195407149365811593348544627777836834226839364939774942613824243971938427788504341834098470376943104051909412794371481111993293462502828993532303051247982802410557986979810600785242992877975578376766958116127020559659131087520271236051625662770775558855912142662690216156167169511897569185051863888750146450928049898014870820266272112470989649712633044996708967916181468994245285931739163293652676752652841549080546934411281249045626523718351076627189881737233801250168976036785212334621257147774865263764576579140853729622728608626724671692219604843382982429044517859614710550551559397410441434512511983653533260962203066269380880316743929020206251836172348043159243774852413391585636086667501547017652186736529047679331557284258108297560472298915493435136229415755562639280489761555140653630603147042172962271275576539646282470628113822467376644945152369311831799191496468728315411556172188384964623474075448373901998930610997341956060011115778628659189908227623024306282054922947912274261734427025391732775807890754135744908079050280277723901028812476064684396353697374086704269440383945944344026792274633117536257709691316075003791774795109597029786076036673693135984459271398876310548696157650104999877763060220912720096737673852044010326349332659376884764498561108583299483684440296955939904621421183903701225500639455080406699602033314705664562104445538733770705844700822889149499401705718465585315623774577417300755482823740572335329328016438531471758127014874721934911344210876056252080516234919321677992319207431543836548359482568982883275404271174394527335362265313509267237020248313687969010183343107977007297744586282767401939156744938294714910444099755469455676293370427340002413333994042869094973544370526807966421651051765374603674540785677625916050259914423543108922456377121779267260616768966368323499149142073766868560019598090134790911842795600037961500310897943907175816461017207714281857264300517151814314705756401902151194355867902499081266720043796576791057084064704047145697996866193858498487131955848763039130640239037138492710208021000365079237210548724855289051191724880867966828704039615381214699158627039081281661039638546715207537533962094878247808576790648055272293003918406957877740277454401995154426113211000903834617771524122834594021355264685580098348234796157315234385652814877596324249902240411818809564440336747008974879856745357583884644286053630410868566856621186507158771622044154967355375637338206855298123115887423542357600926643543211158263903862057131018157391981581491405647835270330122344899950918015003765321325054822396571128060693083812557100988883437768248174394556427768629106579445645255280072646664359606709238637087199818161920310147058550839815847426088932337331725794166589775155148983156696876639270336496720456213799951588257246519897324177227387429544424913317817066994461266596587200362183143228118029801817582142625180277831896379505491567307256559707792411013766851242446501297991725878047508525477628469625740101573178770849387088146917897062219277807610745982782977402681679538768293352109389921792093072322643511703714713599314094698176743401294031264409050420782945122274054910239022315806121526681701893592793567767319878593420937330507905711969743222849588417537027734212921128413011104803775160449611406159497227934584015204437997680273629663285223069555211397090548706591917822719091358202857494656702448576342625259723441759449687772220584217824180457681894245172259227450520492996957966610204014403140641715853059537813961989257639642426423354045828948351095718768344714674794443714198111832767798640317283880671230534513557966131663903243099689075757772425733138545891835390569150205106434113817858480367713197146043071790448932821075923288890046563132431834042296367623593663595586257601446807401126736255022018691961270623011790763242150951965949192886246117702450716950575392560445833894167256642329693820241920132701411516033083495557657882675118822001645322298311046033796302740535907824913848065403516091066204747826767899943942023753387248652561210537371420380231269104853967515635095462548129891358848607242593109973654202617549114855759535897819667573041828903052184217353013190586528213791825350245142332127894489928091278321273370272102209570976337756341483434224028480016893731851269528746696450944885050663827561549950771395440533298456306019509096486007431564855050740476847604848852008794089632006130063176183884766574072382008758847806695579569942101493672164320232580996735525019094734689246460822406156276956844792336709938313194323976930429891169052331134375697526092755909891484162518526287934751514765539304145715159691372880388010129389684230671920971779545164401272480348080951121644882104447432770734771489402577920905394134415490801973301910833856340228651305919538355372115681016891657004197659514134055218223628762349508185690845737872140530610396233285750281331223598604901027407462173393096790351166061125950765862878492074513416897877166553813276765535423959847650461527239978577595899978542832330583823035173590227327890888403767611565020102156638336249145220299975663820414610887680302675534822432153159057191928534363365869810961301032425222997910661175905690979965646989788936241815109941053778546889086061159007421352266096129504981833337506207405745748447382287663481904534674052390012009742496367684310559086330767064062040014191219053127165261520374928050237482590339077955440718066043503173856157277681128399880942267274723333563001475318349637155545135934557321217454841406739432554435081312279265220344025551622732727200277753614415899573077734675383768680212152626724284924310856293037370185395728312104203058498187872846113868126704240169886046136768952210797186296901712131358806249582239920997875122997928671915563426915323210942645451763542024223040354662168372948607062924513642887197153382966890792630138071615027890236308223211171303056310439586693312583977160623647649719006376310352210164064618515471776655327334725168098048357088752176570062277028518507600259106545266981603170790074689037379133055104114426683202052669144098683914182058604606102677083624854284521749502322522580922721440585538017637314689865849182193217244062503332111403163061173059950714862816055034005558399126867183953531486772328574332632140710874338102213140137008709663672164779136685385652594645944153388338899981078472044383042383537545380163905229078200835087358802643727489880336429560448839367290069360764339297362554358851532382686408488862555975246706100554079479642826569430813327436453999677014994302126982072299076863896872659675380419068110522418955460812890818075208971389786637402113792211703361998999006436899734030725777359671974452111849201153074943914359207925147968009106232084442301343212213844332378765796224246061846500646354965631642084512080964225917386444002059316953034810072809340728656341065925702378344264404081060272437686843410527453306909711279317524386919455187081582261399079918500884438446484833033718044880782622689020607520753866695224396737708657146246652789415200739101886884133868391567387307153148265614621251185056070656286084512123027956949928656941131764003659609953705285300086425628634819073029359744859956534607394833502081493726713788385479215790148876701505024679361379537489819487209223196422477120693836539449238261057465351866260417866832059305506959682963112077524715010669376957274389973843590504300588337896888054793430775671656719562710068782399594377708584194089051416165440372256072106421754897412017510334643120229581964547028982192391272633561536151942091241627580564162197599034616195523739487388435702953068714681840378836807565467498810606212831914945390058325942475243533169019968724174935575683895542781400702767202773819783279479840106206078234007356100738516687010776980372484394539741128552406261453547697227606777914843192188064751391846200136668756040832753744778451465483171047971026475642107269198769619679222776870261569368584447056495555958965092744787097861643986443867503862364871105055719052078025945281454799113450147773614341025632452035769911718692677482077133760601657854707829756963031014068950457289167950936604542685782155469979346741136766611108748855799002040502309197849804347537278294249591979345354023819865537509486507031745049017427970822901599407905769981108442004907962768897743970792662720929051459104575968981883213482003596580655004196050944089353499351257024164915215239015783108533929104371850305914979265608689031508692508816281920007351140661954074012284227808449965824120260360319757027607558604218183412723570839023505966427934620457437268805479828342142291258429859099159529949914179790317702169975756913390757981992532663584121864843216558155494725217929775763906583984574633480128884536965141347811925556399305750882552454007333879466657341009938046654795984029367891059532838180068002959940709447871403590654858367734122614590571462924458163392867339496542768439405675772994911421498277628765006066546206224319461983114522686133288010668522070339296338193766581436988580998644466556643841155242108943688736088745051237836868296826243442733034740430658904002109935472147880506240728338910575884679786250379475693420762682644705880120099924267346092135931948170484258069356141817702889418226836559055301749158456406137408621464837770098613312539640134837404134110587068995807112710116720296626897350547012982936936232713897628775179991808300932846580399933302292895088083372040919251513821910406431376300280299161085222003952022449638324908826502869902664238653492688925823519546260090431713632495061428455317444431714380992703269462814344274580007841614177294665156553958951012141806369072084696963106982339216766980346260331498171123418259573616628733505534809201245705166040019449242064992083885023852827241063567751527711477227999153286084145215238425647820065747441900876558986280245519195621514794126659067768310117766332475041929735570257227555933469316060117684852766691635291860456379829418417088343136031902363276891666487782170029528086016323249278750473165034150592277581701527988766398149581487956896150451440350211293402550917447258137943234096559744868026456901600400803849856475459506074773259475621507355517579336495395703506805180504774366720476688731467624421788394131799522443247810652659856672569354707687774822688195739044098704824959088531829128204640811623066692604851120644278426601233292628027476948968574716929529302580471211476757544328881487177084092424390126602506233896987578624514521882810318420175112134381139924353686989484530880433913923032869074112442260186377258478329960284519747355112132197345780348081026757006839857305983003897524800753469401081978727723648032512032744807789848809240927819705392917727443146304868318691473891037389174879303601808665872387033028053636262369629568599865425202542840566146497656935601617274383294181638729095922269364737878565089968288445222662638318650384403512284819622325953081595369188927671300927950056008465078533426625750544642948381734105752650928080068389893419899660104768087114209328034284788960677410366098467654535845775710999920791262437156984503925606195259095208559574813036494113590563845248388451261987887992679520305990537184290829794064933978944252392265833182992826080521146771854224553021056308263887372803676227764151660872992321964047838928975164997417830876132643135174340818288442866035993534370803350782381611455917557611903501514423258058844957168214275114584036152284587164055607113211825516910759795752976438154446491361164564657910097126013006582822844011063944043439007953549401206342125208036349491783192145321556301363171809652541645464584763630766431948030871368986544244445878164007106713846132902422667697311815819740233749877603861708653846191107731078450619372308195186263241615420565266321581697571491785113529094791106679713502404458835861222763865339847480209098411469326572329612764514256056990792030169629164081406983095446886465490150941827651957561865676526949644368642140274200297666462434212827827650376110448064407310260792273537848101684852080543750586351582461458915888338181283168233684006559125546956515766102913294372336627966551603640928290025673116385395790573158865690721019818637149975095234266549420980781358688902748801433577980170454215424454187557748157836719523783169500796440192914024201882593722772374187578287962012776605072102337899936471214388303600782430528607171907178647448737985322729827349749501153406245899914050693199030735187253357646179115173315247149087085095225158407734539846651845052449285309755345188091918199132334142280663049964368837441451767643028782709106916953720393259030214884433170752668484116715061395480423077605531547147889108371094001184787203253250922633494971722183411360704804898269631225688038586055117803315005163293893248967252060257093108560209237457692763319557440723284618627188078161651103941624657357978877748129881482200561702999520491542436496825106234583731839240727702076763011546147773670595447369888735994749232659622143073915629173838675014921205827548826256661198396260883341546259972539477452968358904743333003555121912536217663530500542926062980701279496720757161483446754774487177492041767153079905490027411693200719860376061105959927292202142202751844130683980004714259992781295129318535026533797390419089173531085075017097030383125236765361741220712391463882513076508634362876685069464348385600818020895218481135158349679668175140159436415329801696098530100705609973015966992132737447101634720189713286647892426602269527729256963169967469533797032441099189917877007523604340466308349175175253636943123690280506068860548413878199526706093013135160590924612633160647003635398578736525257559713840806561085504834057328054490558883208249622368051642236011102722556435124148230882558946623529211225194913916283385854867901702656573987194381752330664084983108668848950791055388607564027559508217625416620236589567705660616322155442066411868268278496782614379692578824378532030441459937111952951216043818935722069213584640068293414199057150234733162423297235775494884859502852202912665498508471611134053634875924867490568946236118657131503187941169317544894094387646756258584079271612513275459936583018196809180307724718231442144402784133631283774178844230572787537441862236648436625847756427781538941140698165857245621209859282284268724155311721410946726709972491847567360034902726707268130890911143949864552234705162516462165054254935855188664079669751139996641968637776917445234467194899169507701483470779077475495641268688878212358195439198236774140787198984134178743028777596831520203179747720531095140091105349830440737325109971512340322152799905687559633919712970495097365913709897029843926114532137578109084828443045224024300257949457032234063081318693863850288706525858338795495942140332139469601297603074343271843313195278178386832980265606343753104846071623430589640474227633641079006384179923277988450223425692126722791321452602655308801870454896302164598706743893948403700291046808710861273709287204170963639911159964637501068161486081461011996307347879835626065417294468188928569670763919083804685192531198784584719360928767805575565867504433530783216853004841188519109159329950616995269187168275702937064672608364865115368582059059199972529070702684528937510634975604864349216326504587511322886349754178674486445533450532334412817693295545998150192194489315491571449764515686577742344815069776893687016640925963837635753727324292806535169281708361663595088374786467205731887998738465736179438872990539546863212246193114910401711262802758844006218379858102774496953199002875920795364048973015009456616143654422038980156679431855016705943254162692335659052235218946734236469972179559225519203151765062276292043781961553891499431827686011527576216686723392579488428486339981499153250691864412758214005080659920425593543549095918370473218875117286966068754082177582118232248605076337004374875615316640445058290700384581709205776549405768926989506032708393989888279780118988747087747705360539258367324760537569906792775546781376018397780007345789063017750040564240949520153848926648804140490083253977607667443314574996445731714237610332951130205141040845359319248585038619089915573137585161015970469842426977664639095817238538353022522738210062628644786589448346638542455245243868416854381357708323317048868407532713235087370364177397071058907120770734345667012971218913918768567117043415021945281571133314263879062527849188867103324138267773406913585745272252698230524503274871413683988100729026220887184586813218582959227205128542937547052106940338432472384512454438719496333800681040917914304972015124851999399131291607685588244136559516814092036084629477407869850228891959365887576665062726431540053639528187830283391885076307066251408612160164024737239703052541002829436957923289687547374474210747928952122077609331638718016874049734888859730603120462596610497235710925670413901208996233989663606908980179951972876574919330089362105543808666608056847355016193334543741200149982496262045470212614738459124478528184720289564575790055970780687452287860058265310038434980856107192354032576494149069507242165252861563159378431499273191520897448705020490015224761345463910488473896417144781826783104388913661224923741889291989861389329891062207002990562584787063261331110312044444280831432143813540232048611790106041863193923941375370993371599295929457163220732101687120190221453790811458773351770647828426589102677337270860766349550118928892604621502489594108352319083123474511543539708189572909705333707110465803859958582198997827065162727258439288676483313630873569543183185818681852184251931253552663937269950698093225295037452336596427794470732864019929672693641432512254430519443999209499584140514751080076778207336664902659326808673096900104472607429849689028746729257440661003083436459435093450203166373000419582864045287620041770709395175311479252971534304638354215036726361917800958318963875068018454484119276041957911747415989186589462033682493001460523955887599950896297483911380549886131990109850952691720071098325879906500740152386676692032694230912498894125016018964042557121609598012813204888005365747513981627017805849943368550601125812929169975718990588359798374370847125608694249774344233221713847175211093039402176553463308110471764933785025813156788035107205676840109172532171285474669237933067268886349537039917820029966100178308358080903505565957580369129929690285380334707561654552212291687332244105575918520204140036113399781297230317753317525415133269262277949847691040343901528624310072437297450932359230401404265282320395843168333285733574357436885894500255911912311833604018709174398885185876214696605354062530996243836878535479333853049900695696679778411453667066018542400237540028119751554239244039460736438339504277067426337246737820557150308786040646710289459051294104047470104418240257900430154639770937427232631291256092353513524994055072584798678869473000907120976628732935877575652732687697103124407672218674754981335943194977378584426988116532518863815476317381411430896001852961502797388772162001782656207587866113121615597365771813450956711263685824779904563646365446453759683736423593913277058078952384256083950778920105088478668135050051381448484605440646481061630814184142859188616648263477873938870751507658305684464686636429326555287849697176684031051492162439083275419986530281367072723657549604089366543932642248817532333087679503334803665464284817228727930218448359482545246754721709953306121806609778064715722746602355212652466951575831713237864499639569539838921252090789600252992514919523662193922381574719676459116523063601565573858985850909854989945465465624324493192084580036813751262364941122963025443281590663489375039572007967277065388908552028489828648345017163082441619969253139264048740324290799191585376959710710625962617545661446513160561190823008092464823889716413367648407804353253188146480147799948375066748507257489303825074871412946538969897639395811938299959276833594900715147546614196981666667588930077391173982084417781039568903007218505519768440103588715443958042198498115290378121029335299079416377583239685990159584909427491926434120532634174188475385077850662045672159928081741258862497047289980079673566377798385548784573132711290041076765473433496709746685431232393586878307127319787419910866773756014797245905216810311533085294553245145432861862836167551950027466365420705807425472606540320641027208424899713293473558508257248161564969492526056145442485143501493254498709729778511725842022282460673844290370067034228689729410296717973529781291445563640123142753016797051815617732544141045444195676634197560676979966789916659203864712745722109987711587793563310552425577651855328734804695348640553316898858404175154369228921434542170985079297276878789522845250533729634659899041080453755951464841177868367865505436847668997542830190364131983774799919002094470126801379238570773055443185382837891043438492592197793814907837622162210449539749232254528054022001950512248978530075967480072599020981780585833191793028856144806026519082229465002411350049071791906482018813432366836502418318124368725527339946168813204780089955795547930043143242942037156560483073935794290956213866001217625219470982615735176249320491139755079052560931840755567034933795239438120079779096887803425376458541946800434128506684027344069057847251955725282089695820560915961867291836121216373307199739131938952188296462494847301203558797242588449402994360917898176111091018744814968335577253583648244100140350673671024938013505014067119694754816366171475828031023616626724820823539675556417744692010329625419614270518481087787114906188538816134567540420668172251692982709808249323934983998659382552053656511038601159411137563084301089725845031058544310979085772270180695211201794595787058134552403104157690380610164584186070697531850026231832791541417356274999268833893081839438885752088811887260238801791589503745512439717245593905625985893111071634380375718310338006426437664366690684409304037767466942397168336532270733849284025506944345983176204154784949001897865740926209295135393331059115633146841695143767050789600186309812808667160818358552865750698764095857841442224211098479356194090633543299880763337839277818490693487533224987972555485129777752789884752672784410905639288147271793505368151789719220834953421289051200831936713702413202693362053056500513062416159834785130586572183593367938614128060574768119468938044213767557479503420137219103539580141396949308453276904421815911815632981154393156621496063362738693480654497182717391619596005707817154677410256535057584629072065085662647097821716935075213885846172206002248856526245374523880844302374154033034079585830299940481481988878291844041588904626144546855583246029492893759081376500274508996850432766997105235605577218668424229768435303940087778759770772274867557818527522033318762934871911456748618197994886867792456245556093259782277456446820808859816703475741117160374743081613089609866687910434180280382932445851933331567770704484048677731904925683773772888748117927916880112294414701589793299262588070208697129183148972836681258601727936597038704556963717679239089905640310565845215845697807283122184585115585834256288794871058939772113100383639423252793081804069814873678766120531642543089582010597091942358947146001801280035287648637715688918723686503970196157673568073583561195528779235674196460881191174183659902385682302056781382187392186682363664988637159212824241396575012227952536550230951208945815289486262270312342783040122034422730425549896107789170481651818046272533153324922131555807259134304941376141898621791865983977944161825255198674173661302557742112927378302586463436684944145420252484742896246164661787367579212574515085411103423524291791600285946655357848048066732864309906568032960294208525315502261280950083690079067057644236295857349199772802035919675915320599657026482180730255857477244291804347541011172149674797119741197543294481045635054912295202637285576073968862727999858542636527545970564703075834204471950849513121413060294792016197499787317164548469682079961561578180687654781400910903608327055862362874025195489710664559671327893462144180039571970115385709974589545956290110857317670337229150502646870582383917211417098788532594105727485565101353857115571371670474388518624009844476660804816743437283470902592282315751726998235969518892992559784728762395276527548810661017450218838859944613417573739538068459589907532625622626121570648799582094137620058200534055891818522316847945606682634352334896328066576244946069914075808101415863064832958890354822120691597956690093828099713740902279360232149051604569741007952196954053349640218550527931847937366918982321976907297552384733408537578123875056356937358211553293016811786639821350437901198969056912203192195404794413223020184897768640624373592293119778744190591794439937450560267998429717355516938852482445080862434511441053708359614899774877793819702238777275911878365857600102475594391694974308211487977251342018693710144821062937958774383084647342714749151793711074617604941944419760408511891979691693166092719280814836216780756755301842568416655679618286053679559280618559650660453733913848746331243055248809507907858936682358006941460107681554096046339456303600074170679032014159212169445781427828387110437382614641112965027641074991255742812893959977662994684396243965411763185583857476531473739184765197500432295176722424318216359919866514877639549012519663339007970554657790496090045605856749410082024624052362972804262185192325669648097727543621270528453061653606920752461960254718624748759587124832254114660034730269994255612887307228164441017449572379897025598862666582890044219293280879081613751770462227740497736600915940854517714415298412735404892292822839069965051168473881188321503882088041168073532834716017897333039720991215022612829154198757518045851358078961927948346534492648599964270837755715133976468416321502770023896045066136819677219351308320531416564285763013738593897632414908183715598143837765346499984329507867965300505574374705141173148222817405744987648498743742204158067190280347126166009249161484491592614956499245360037110717766941438669945563139167009378849429155824460852291228819971896947461010862883892715857492797198386850807442849918541604246531093532757665734510272074064207514978010751036743189857037770477388245203558737172613702762437415575273724399061389693142921759155989259825703330660053609426721125267586282261135695725205158241402752761621362868948598272761995414140616741921839824082425380649360262046824667168523984265808913468122905190430492997161825654025046648818647628949009620770265401304076285505082225288921301935509879743847357310867968138119809209231919467017773042195051374836757914960200375352329857576991526207672225641552401102526389828139992886405578979586942440841356244536684429565851168330605147473345117257132728062721815208435040523055489678744296461576670256400328631669551994371664201809159558848487589906311384961122601798063428910603837481111540571324519677978093798486699793736059279498833022703312616004297499866503010630739250744577748601096715085356105888723973760233749420992051524648710525631009717899423211894995678893944056901753737821274185423019811914421818885354951799432420124837163800547334176708386859515299942706574928854832978346300351346298803071795817032426549581118161568595828455267115978151339846211298278032081677822096617794913593487224709718017815577640964926149083188137303709618889133466542787899955542601500337835964140680273293974302976118403029651447284118698659074667616007542260791097464787081006901215251233548950798865917558581881226263266595683656804276332658897949489031143444702474394799283801901831725874670888436461617325364710591229666509365144715670079576043528231878997501123604554677787577912061437583566978465176966341971981604254077758499956410163456934189071446751384715031503606611451425864986823503089972013484876236279076993719572892571595237398938163372940103700705227967471159083664748852678781571956609209547305579682874884986645212782620097783464870344459474643354291418717073645439885984204426691778214538097605874875135111485490976537025448822291936216080267042547910803753698591681694339662220491831320303013075963858664715489616639099139191637729394049681100904731869330492566341058154830426544648860433743419728958778934911195748640927872469392688131710575252928991884072876528430049477014441250981379053520030460645343927720882720703089532430257603783755231566964367102783134695009623885641051376527460998944141214432855873785968401315378820452065734565724897253027140367152180517493431872294188316459411421037148807871365067415322027702210057087240027748432854247911508690521868893833229913620848619266352063038857907900428349871696655819092053268390226870691067054944696225570864025284007216084525740161773503607496227720299057151822913242177148279635163191616387687924634771687211294107942969438353343649757214764572679393860329467528490817012981010799855951102727995189277514126485983246531902996596123963273830155663411516782827479533376239002180807344730672511691433252108968888184153870448345889985653348273548270120505972146230914394179185492066551346822825719711244508885064416695682687460588106475908382891249583048877159705557871621870956816420451420195533867373001800506459267880241513541035236396613841192758171467505700982235637256103884557712743179653439459450839651309103359078347797618017766637653214034871413944551816092373082940435420534154891940534940164723978529608048000466372469183115128367622974901713443409987403058698135816351157232331799541332587476076462986010500657098690013880157915652392839177424987689648650451573218090200578938257764347670082268838861489883467791890231329620593714255387477010645672331167754143829813928862043540060812936928383222605722461760556172562974462010881407455247266299643571186213690896929817643824570788692023712672385568050690211485325381045686561453459798265663026647324168346116505868625735028228249949198276587205562729834078463848966621083376913792391873869636143085378769117452118865751633443141895342303958037959672497390316526474412401475730459867729637913514481099372647661530856447120360091366988002935332703898274731181805552081869827016628361531970045192770070713296127223803939126737489666904931397322354604722865701005502862958945818064943850223854268166970760610923583257496210172161687911087779775929596741618604446826090762238172957966513781753258310691144419695929878119616602316003265052676084274911183137762192567666732199217637720563626724576219976507917952423060332112504254822642990652036212669790494626037565116280070640134338376684338157492327184823576088485758077654471482685216407574996257891197860614689597806798927556082219172906892526437938358309983715816230805337549503537761083948398827556806919385831866070739579302278435891890134549385560005805692410311440756675196097152243643815125275483413960886471934620574741654401704140122521965916702297537491516895501079095657169294652836940130718958900325344179425880986978855220642749826927522458919257033460989811537106131426672179860434079852574890332617208005503687993714895745771589506683444687295755516669661516862939332992152103989456999130987084587276137622426272969917343443524550332745191126336408514506849467231850672247857487710698754420916148032203567651584726729874351185070851937408920343635985399036460223492818134915935197606761402919307394016018654834120708358050999772979480307522045267445469792642458009483352030997624284942924924652752688644040735351089779406986814463323501967797207175204348402757727058320385421444413401493124293415265834265097558707124491030245147485183599297135606032823282463891909721891998597201254565164075735953970487781417727978530095332088977635968950247865128114513048860410171920195290578086576085091523975246304242262836539346701220603152348959643187374086393714028679030793672748755204430456561999797478868555573815578818749459990251567689422033142555426424357062233059603689431308277560013830362669103028751182233793875864613038199540370202185690880963719684260773364752827869758047588709947468710223553902430954675595097149363397046185736215982468206524066265777564624654359847429613353277257568246989107649754614344311396897428059145013432748791285547677252885192500113354753352412749034240662138242960006688164836260372291770465797693179638537068952794116887961268195040673742490630668681967866498302064357325422794463172517821202346675098669613063205507349261958183049151781235373447781188423022369590746346703723401454860859438660820511122964632562989497959525439203918774336666060335326057012083773832384780414821629870956063645829845701082976498033557395320734633231614949136788667847786627402683022699846855326383435964951707872116910972617268558710962312922892119401680466331281018260412903506291160225293984180756868043271068248857054183894693454504242309857250886341402366095334333292409634601270337597475606056343041037010608717414947464828031657962211150190069532090450188571884133048685828427609930593420965789895805962230217996708199711654241084163384460267622489053824815356819517475804123891518901327869798004115013903974318718370184077626060256841983650924184759087204833448292469107700505547821220371033820270374975641759289497899439204084545166332707343848199484276544711889195181546185306382732792129692529206885137222534879211544786692466974547559093212790251901503067016946946164028093723181974210036036387666630672468852000607192887031099395893270728800214138715725773186739613958873931382609792214584485009148011932365223676139074479245654483828492429707293692108041786485735084337362049351492454716802904410952194764870138472957444762941444050963055296548840627556036743248966932648873466541013476308290243569464208822488025249444502353303106819692986717144400041099562180192846300466134080482832211136069809562880877637790843721534934962055929770398120409272366948168909425596477091196832024797611705546869227826567246135001134144433220000024710339270110959197085683308689610673640024077740581591568655273201270853069652330045901527929653718033471206953472448908850195192533392524426674427105244820548017647586157603564233532527139407966682497212958280799848732380680656599070663941470622886307688576265047581649008961418255751358374506411696390129196710635787824809499845426490526869723894318000315079273458536772794556896165219888595245511653951057592749776736570667818467610951902188937441156838838031842070017503272298753158317803576027195617015239074888093309708026997229301600525554078391762779660905935368385164699507045057476919968179123107061118505747499697875695785541570380776334251630794188510631011761460402306771168885223618509580684414612391702454424305946320578235552009454049803809368129822044731068109994464931015116978597524377699130246850873577570629013391280358547823599555433647564586894298758243447850871556413988005497845062714830646601574504571707207459199439235240934627127484039322672616538762433500665035563803915047868127902261811913035006387265808228577812390821237414501439554630420019657109726232205269642933115628649038124824037360402083481538994314954194848212317269074587247848448944130457694800824403605694591117304405847500417386250630893983479865991587277125680614037073497245081694289839853270827199158449106157066670562347452010540618828128995800504653747137523757969760871240234298003566091196580997317298335742258302240871720230565273356304488678999172928046273361168095578067769085388999428309966759260380099585175385512306410609840551828791328493894659698999071687368380694943227298592016735716912370486157068227389949644676376193571084513081902070033969112425941692037938113488246478560551629917852576490294143789397212466601645018638863544122347096257573143452205979531845851826568444915362104969825087427783394088697224794998962247402896752133605304484129188468048822264652156231385748532646025860516003395222831927718496914045309877490508529365694469583315387723809338724150151503842550331465112734736988914997364074842706867484993751165852555147042486642102573974605656756770565365917784317370054701032114775869241442149275732597610043487562284347934591530095824128663160258761930972408035397360150333949811219937430559608764865220561151190350985714491195735310949163193552166599918341451439655568035353009026023559085236866111715231051402681003503959525042368630089215387383618719958373365139182503164745906164573079651062662824739340422156900575961017563067030657847074217279445015093300503850551696372019719685770061073913437524976532214732463901900437093052852792973803346961468407895653242501347030559359620494678193867158212104186111990260573133397096755957937081457797576915425070799605448810403115701453080687912632027357279685129392914321249568002684692640350000729102059949567633405285497437495179536918302204757611871742646507270734507198099473454400838219491045889455161137329097936191113333079537703330873705918304226394150652701687999234264157410396878187344481017112609093170492911058099431891905594450238839272237563185294997369867410590213311205867745345369696441036464222472165560963897740422334247401872016441062879105938783468804245896081874149993952603805172508466115316006990536847771277695712401864810293337181737719324726079602482680547414314675552566017649294352435917036585342239693700503731203629656986956054880844689207288609506724364067563254463597960884053214193216461992984511188738581830874326129219957196347929327765339781771301082860420288494854947025885605880508747104125761689437260210028374406556937149427163520969474821200892495541934813897835936792791118023518926838342700134528218949195858100185656628031564965751300046958178630998393761007903298913073970475754735695271616803430164336796930227310879932143056649948788862619902704802808563539849165600006615079311925866379645274444596033362499721970995177021615853292358254747125284956090647257808162981722433490349035103988410857621003681689220149363405432251863046198791600470209063983285654160899576021008227416326780888600598369713503612598076270267563831879292267295862736076076437882376501436123364766734988285707892049843727720002414843320920432428495127609194054482634092851819521197838527000088073522347870716163859566031008186416563123088718093363200873450318463617510490556659186456887438002529231523812095931525217456077670323375395245408186975028018448390684993605528728877203746251798495748229261583150825422415812031418602687485194726177400386513653857196273035242352862137648800292435104061775727669003262622668212398992685120540702646612585769759155104690237768581737528575852809711875002863054807748964771443233403014871168470724540891904095873366263237347904821031853697487360316995400856295831407599218955244982292664491024877982036583325336930162020735786298839198619288161084601881706368447268621111975649290022257042285591371993281478118510790311364561916254733141438317684168263428768853987606462292652694387094350201201356390695792799516221915457747604973150017905239855902145645211709734589325171676346139160569255279933567738265735625902101493112088650762551329765082245446457851081321865722185614286056844923337498767950415449682045715397056106343431653096589433440190492686728106808851890224549855568566487664549547724252573410099799542555957703017457395671007368491444981531662732802409670891296650156251005116602873169121717913778084108385368196411450263353119699756494053951806847450081194329691545391119349908206638066396364702103891988982469838954665312876711141659854434553925115541714273103430477970081656991757249580795998502661192826750530526914482284680773900113161862444887298922570222846723941550004429594611413157153151284771306106354893767630958851675023772486504392834256018021129453451258103049085561136742343853281254070148509632096804483138641377315288233049581809707185645178717804808956230556208888085638444823241365179227624556540851203513121516891023009591221719413066993124174581119341045064087849531301833126559093536884155640384527408870834145614819083878953321740310275532533625425271544360401695566762007481268928053416400869926015955641568477741754481322919999802276556625524184679471442311241999332980125004442394271322628710853195312135338624673951476480595199033012186726600841393506210559306013173727275950968560835992491754783817666459043721389939610377092252591114812055903832030588674914174833111444500823730644882017343815984781710170112736295235713845172677252872550283999509442000313397276237513178792428835132415685509481267396888003241859054268392505146246826774824903894722805478189682515684471585251497848268756749414960466449202079461489988735185509249304007173379064431113712897110117634322637603772891068277453854955768220932367828975188661247124020293600527859232564477324470781869503201410898669708364978732110536451239760508817034737632213202859825929865736018475747878477168992596476649335789808260109720190379525442304596715250158290992434113468657215026799180464778746332952926501491892815610242985250034419884304574206984587650121048753720974693959807638525569608366594448563341188083715906912529913896298580029291764279142326462343801357396374343494932152936559671437266227488342505506602116537604045655488902465140784741221461795361359176802921649508667633967652197779244544886851440181681989497757617197500985929993534205143641791955990133744630302193416164432086256290271449473285910165879248683620068869779393001078256506491842275395847014201690831306155056283017166074985188365119621397822350533359763448196503169326829631681093773137211811551871632139942249069727692184331741429992175901348943971922896654035158773877613486010419112402089601017325828950992078960713554363085914539358201131684812741990359452473730793360310327109951312239788329719514477355305547644492479160278390320935213266319566264327675614467509574546596200918082021621915998908993362054018043017332624680315443197412909483595631707290044632073513570302823073361161307327347953534166571516752838326003807860426031271988965578525774105094975782462877664264724972528499359388079293862722741302007138928802956935738839734015448195671428095364187748103061160459953068965426934494358328956378708345640747698792653998813973583514290046559232651235998802653975066205792835721522320585980648736789303199538747176190107574493352315854254830203371931262230787785693470312364085347125264676180106481249510106319670054357298593643616796604727683253991464806928720866645226904811749640189256270100584206065434989312805694427433433548696047509561765802961828798603136309885159494507055513190003833977089005936911066157007248530701093061231907686983127983603514813572495221608307812401669121174303504755937994579083101581027970875780840773551538935314455239742912031865956289356721673689687317751244390033273047996868369515543747469295441377621627546726144243375283401264263851690160127489759819762358031058968200964990378913757740744822379189128691310626034245767561981392571543528835023189150365627092566877453539589277329945715583202191531097278256676551160022278769712489689054127335247200379920363983718580437670366828228520387509691612716623579205032284832451412324596936923487628750149654642014876619397475992026332195728629922121833205359001828778366853881542983227355102766198334100387349961592893007434665767935104470576548909971019182357262627971203435516011110943914821699527136795309200014362914812407604064641673666095425643943262298362858382757119102840470912155329258052530296745442523464423882445695100182138124564737626184956035084288188385693351044840573209693708526980415241137023741828876019074599582187523306589822760982075839977465634637566179589919500870905431360315540273381778417526820428926326234138874239454528545275415990287002944412332856477189111937247848583761669084873054694132547157051331298914039889749430003846533351843089402975227621766024354065254463319000901714094677100219801233710942896300520777135145932875221874295035070935291121468383696365027240733612390791196238782842287691583885359601842839528714115150534181456460859029851130881102990426031492688119863485916225929128576135905340928265611506551646598935189842680446383517933053873481281547246196816474712176576230414731185779733140373884734941072068650285992858288567484162675800549329916356102018425590888363026366210073848184781308166956281082241043385869297969933064374111121866082059934487300662161068197181702963071021878829065611236426083896162214846156222461168880550820945524630279769076359424913297276654926386073950766775136248883046031046538177803440475007575960591675934579387263145041894571882169133992836817245922524375674856761820239457402018116973210707999220932324219849212014036746093785104075506348248100945697001504561243077856234750488676869382428827930027707488860737376221038303255285308309996953373704838759738524019606773077604135618970199654708438025198896086344475193173295619800372094316596868415631328930924037497697611291738460876295592131298844450239777155021234176646235450462071825502533298267424877049502809975609849439955969776689398099117260240087113666694746873746692515710068726411316661953026368031460116392826537128972910931631858674172421722960212859768089608661412026004479505391758630900247980249131375474684345077799237599011838187869662492246322111449730405559565293625691565226716700190314503160749484934242982973551458156892147303844524351808953559030382833681695324546288940912197581249551200264124718043577900638075722367604242688367805977410610940267532802671994823512080383794915612600625689969296530253248225038265322842299691437393386184752532563736599564034456485913443448157183120276215208873966051514720635269037618933448058187928767849395470646215838407764003075837623872609961730736479197721631908606270069434012209153538003229366748674606724901991464341575165358525801191172564310043592318090571138179766910507900685368074141716876091027826067431160537318402438989213827526538727370496551717712193458500895249015214540224525669180420514498137611185235733819364825875036003421846686956517549453664264414924488113914796313465741058060615671965339919232432536873103688588322457320661262423804507150400752786163037095977814774821339798937046392577409291170646116542396403875312168076573677586009563070671713022079111228848807533973451780883332879301741175749600389704101629923167769703181900106350401667508671592703928329705858065320475536316286852189643926293586644565498702892135227639147607646027679665730401260153385175835790846125014326991289235509521270817685404751289232617982914966877277874261818342264565360462750667436581336297244530310258544735405623208216290622400085997768283856181521812562072590301488389854131564055598664252532465777704338439908656747188237341064280679861177724590821351223619754837692587555732040975779124175536185391936351221486935575344367430006170896995731198043967013247621453463145334704106848098700872352360274825763443678002357931934905254136576219349190645818103837013499235722524088633898636695908121705180128260219365253330284055004046917553669123405639598521349062833871211312064837092964141574187499275971468253067483117082425973212796047444402752013566258572369866615370982007048672030188474641800851200059300600911332131931794266288412832275188264300537446251019516989839175710301639673359929505701408900681459963398723014945430752409641303523853528235559172764826497106927509129489105872804173038897830348773839530345654742007067827643168086802395700260110807667381487523976502031370750571808953725858542424704941113298864551443074027239156439359707704673325977077586186217591962577518060894203040196665686750383007854993359517598750021283388524868355655491009074153479496264036391465043748084172035942199520879137439817489789092277151008617396753288726659276958972249044355151201644155474451804280398660434793257075017235741196917072571237086320998625561727988053843021749872272212035004255649863984509249673535932155684931438952739805357613249577962968957480286611231632537685477151109126708051538231359607246115208643041460891164811038008444307218684881391047775503371995681310580989816479926082353453676145784167691812459047955273129790059025218742457632932955301079378191009915277502470124989690016797783842625433547453877760123000148289425630058746878899625552275248379396535216107351632837776857515365679881696652276415470641496771248425678036399791685913006387277964326842831733690976327711928347091771632117189427353396598126904355276760907115270150232052828297937548290808435354916873987624741414425782263054805994653267321817679682882501251309856275390649412805933247834722697869168773037377170087375123050721950462173672153339692264653609733710882029639198308987104575471045289663009948118715471419056788758872551094620296316575403074677573066140130919289577881497582411262471024027838467111616330728084751861196880902921054421293363867187009146584580736977132368270497823969488504075115902909857254297947248503024452699029711947684948183594080403846547903557573500428869958081063701310352684112308561165258185297440301159944772203713185736345764056656228741269961819057315000824844755060158925739619388404269898514739608672923709125764265754460251792761125822995373356544342128417586725872713964100097738450203768948270301916961888242927293445122923278684996144638787370251750891289619108003471867738187035097153237763552217563863669107367630962375494722175284732545718962673499629656557059707858207041565215407338408447453770818712929568152182848308666358505032644626476514833405953941275011600283286126786357391267470276971049864073358799492216799809735702520557654181842219444068591027151960330616367008241568966446191754477044509740642058703888548546557058112772750080116536944886660644799441912166358081223159835543518552780175506702732767468914258750615435678620750878821565956330085103591754848638896474478274620171636960564287113626366717291966059788435910412334191011650522919230892005483398569259100258293636603184722067613775379917706175881011269023046419359288348826695353979242422739334740688877230322982769659169989105591907466756816665891572050833286441294960204656797023709165413053857302800550087492699627750174861239046757161770117058870430324154464450407713234343618711619356943544309202049869491295330460907293122944314937591426447794347834408773812026675766679153491413726856723171038970027739192087961189662126188824355468804869056199659765497978958080521938070418131530392272515130155119932540819746000065788913547510922491280425112592246899466474840590295983560775983423690849004336768806604209486195973082294917781522918862648840636585519221108454978932176840255255987757980134258434329362715615184184275588568301938304741225946204145732715421213175178845237319037321309164842210091239519924487145619656528088002531219172023986875742701784182301872786814885960352611528294019177318495006898255646976453340123164119988270895889054113752999161282514212744786564878558695558596536651015929996409140753383358866309423226968534000496057841806140625975868371190537422369311379490752752791668076563582929483743537319748725377186751266234313048306352745681525174875526850106780514254377159067380689447422431482657969085236426275420833790854908112081626677381115275716099338015181895133756658599869438280711838760635451438847615756356341967351517852647201552901137294385517934739911944351965390506207597092109545574734785048900182227998229726807641750624556480423978426134505582263673592772396514769468926055468169748648459013155848763085771828696437935473556283150024371795793385493615520955303576724133425555358625034886079389861930340025194101379359894901334630037689144605161544279375167764437336735850877288716924642053284097556204894048647341061721328866210798576301054078595207389110543754772865523755966079320429849756081618164398402131086938709486802014227993782900609730612444687895195327555863217634395550961351839275290415327831104239884753844409166210798027763252587085272705712828499930796497767004168732196017368366173989609209718490157916876050055956106147830576971715325509166838302896701183123418567889627299028179205570154456010492035898150806936110661797230881903298534433924800766156779925357979030069290705610419985432579890555333368401020510537670223684611585528481083042323922499569674030959251661390703107516408716582789069769100343424946262123332428583164388021250920066943738937142578805887581218155830640663722459058688595911288212427343727660023103601844734401243299172498943917760941767544944796391287423733297692708987848042851588455208629924158288831594196534291542736103001390000252277811278440968947012922895083180652615409500736781494564534160427759402095519617132219224146014850907831961075074307992767825596012917615641273687874085980176941370656953509682455498682588060576260237038862899184023373539771806103616950153553056264534064680601042078059202318136612464749378729835579934384771000279386521127888282341003891242147354368726269919790473968397227731738143571231366806969786780031802479837874495470070457265155025117411300677746946997209993678313534613408475437386317716514508541367172499015383986365271068121532245484587868160912835542517028380453158093298438906830651925437527156124648810954368234426289423328454070065540259563057697819413531632539806558894416270452470293686188100424815046836526180810205944337005079971695155227003331568330741074122407731230242519338886612781599301078124745507811896413481025008011085622775797752664518162350946782199345639892297258943102605584201117393738397096124777578076676878884802732736989024346337833178805069999867398229541809829620369912040528316258813630362672431707399375384422852267041812334144799766725117094300996792517979228734488976435815536347858427370868236978589224308675217160704889804524112235295495042566422959959560719659571726748719010126146400578055986402894721600265595089118041777258118872222107813351295568191088265397350838833189848766549767016849166465901626396029310042349056004213862603816830602429726826827684488371123527943689430549556523338161491552714035623046770502750079571132671307709412268086984135802388356092416171460766838073946428074975734447602192362640224515345770902074066489634711006335687176071406945104825894117132852607533308544011190682615772029269334205984785356280665364692096225099163274164821374445655790797497450672674324611407325548716577935089063139888952024309490234386974223140981356499286041504653504194839631612192066226416646909795956071348822459209161386345334219053912593562520371046312361430421574254306715838323430193009386962973591684380961867709446601674099587064990472349474479169661109104337221825784428813701329342142465633657359090165783310742909904363853948710032563612762383798936241325333115780945228389935823325444652257838014737002189353462401096018630476817673310804149215112485198745126103672329131006631121723536785745481441633220040801330657820703619833766748581648064691795057937461934255719638078722598938853747909405562110570342453884399967428681280739561094518098537951010474513373339572214144590198851329259950671286641333156459979464863134041949528987504974084762592924911297062550431984103326051129704714312418815047851109728250556567429401040756924979322046214261185396023599684866718880758248084989763182693326147497739211558946541801220642526884093984022469748490590404567232790550978619817370061823259195855187538865637201109237205097195907114717508647361951048210272218363052926582376705821768185102544997417943779211849846672149215742465338599398669566717269076280956289906201236612956418994421032807679475449880519025015103076495854722865567696087642403784061531667875625791202093296198611813921536834538806193880893547008784893419175876622683224155363876514810429162565021315876657365376741109030511370672007799038654853977490143782552673672404285591773094999101420847097095140264529220838502731214808711775014648409415945161357561448601535826474870187908309236574496696386593356396833521494561500795017869669642235057483940524747730514450930769772781227559112824839356942075997353946211546893133303424673101174357501228550132158067541733784700452148316208236941848627621482798648988440193672335105756999019359852953084075985794293181412633931121986657418117806087167424268712851455594824847300891734218063897514019578502674464411080127410010323219639433863519294779261927690945868026291570931691559375699884241062781764622565506920713486795623177015086198501839370996400018647275459617707962790051847226732240550495113162298691556317479494244292431280125281834384614010822155193292204697354226398738017521024687268024463833447273226100887720762682932794767415625363608382891186518101096415422939458000583086084214812917958483530537209908965390941775084653672649694238737292137688157946395621390853832490542950591950541405546755635470660072242688988606127037654901156760398615559604519491734446181887547457327305126415234979308513104836685940776281065770389299564574826823367592922901560303167210843180806033829791009023768688747308287337615528524439519933932734036615934092387056979892784497507585114263503116432115961854846068203786627498022175206983628739538904549051250403781177177509798813475953661217423799808692292398250611368671543779521037973073112451303203173905878435620697200125260909127945159137767651993103480620093711751933977094117920748656347855716061245485244793807859087371160311520041825428312601733312460303853361140614056434768700516600689546981910906871993583730671814628892791906048959426237676558319517693660140187349382185970588633797421004468430894565502428941997909458118115696909143909299765989231355667895300860622858569720150527588452663127608900519909119624721939484377656345968529948432447877910485839009748956301598495625249093973607674127790330499350805095104103797305391848286577631031245547719492875490872619159613365007049100004295430138507023422383294404728989791785626822940040524595376076947755890958592019196314620302724985212156219686185963739688222030995146655616908659661237952442421615173246977774816200401600429073672235785500857831039586041122583866086051538927418430730405210762599633080524032265703052332535449096770677049361137532545792824334293059337015513267154042801138411315876709393930813089871471800817143307057174272227369018251838419734104561743784385331266187622056266658243653962829928508624919112020326000928770427637044850652479849848612070471093009775921513669549326913789871597514449444384725808223585192326553364783433411450848609509507427252888725145884450561309931628689421336546398003855344938857578584919905547509835990831947179378041474953984464568785459761915439562754930758815683483979026491723204218859449779596175929230565982566028447755760182239275575025360629983288057708670658841562645136945091442393470755020197465915889468314943022662342771382543493028656687628266815388951195026242573243256761826563993975032716433674833532092216848761647888145917933667206981412428022332296180792226423681339133854926581567786848783113269407177983215881572592882146228379501171406067107685927349988512749714543147112911919776798779957864505437393067229724081160378127451554598218436039552594475246036223855041671660586970570353778675677991163280924183576807074296881496279291263626289976857952519826772032931975710765689848794218381507312540574450127894433550615099154596444179030129668201320426827319512350053619157947646095594208952731377213698978541439916350017298538622935713172558516314868329453373635459646251271369637014946690858600550251931952927592470623281089028069754266048768051192657266399940807742517674418674014923598619204615258131787936325380686667236751491846863022864071665238598744219098142471633812660422361307126232856620014249672919347266677177852902606859722573939593925256442920752122370526211200387734729453391281477699216431622735328955050967821877611946882615174932541051849266499571070336001497957931971671695095112692132815242200668948915552781085203466499003074328052636911603579341385662276335928039390842959144157814722440150766269043702243076794503883260728984047450668121828926521321652620161588496077433438374016744771394826683282587208169178648809657183717445260013295933936464756689370192985881531209329497871915857375324504781637526347582643216136071351359156263709936532943080638014163676778324473157235280620144829797250988716159504706703302098791527579338394129039327025069255140025835446786605880700770091957244082589207386104586138512999363539195802907320806283840797512687474792091528973543337111055267357242728524216115681026232064304106765864951828165542893935932412302190598863767964734234948827512693845707632541950494823481088726797078156399849484100723648725319983309209197236384245745371407426934611291094933553247857222643915955133921014794732175364508188750548222863278932998084564675550443366756975937401129400672784132477581519758496327496789510695506325233223494658905083167824041020204817950961740116516819124089070812922644607065635343956962916944346156101632208748139254306322609083431802265201278630271506339507228855085639656248566326713886921151708468731725951274206475343206556899257917144334102070566920911114960362858376779249159624589563596552307643804774253808553266314187681298797455496928445708520463994894943080668674051422983633406816435977273823834197071955608059254355775512225617913578924507357525349643741829203295406408639863446943747239842490482598075046931586991451060628572310672485762485748398217197794020954501310581012459869179285224477320653612339161499758606702810019258013536457579679636333456161673441946932910153054404118106955449971924277354378281751941960703923907192032399404911560151363533058395051522628393692076737980081617365917630990124985288067984587946042515889941352991950982066673333366459724691536250983789893984267159154085278982892536092251608203783776500276250609278602802641208671434136396314875040002949224775165373352112738426067957209332823139302476576360739582670283075164481188533547145447438637038641156780142686272208923556717167382111685272931205117584958058369147635107024137953739672435366053935066928731986386037286651928948525630886534338112844953822835859845164945120846426214415893453979190793205708791218565541705077718352790557509135363022830692670747920773668365807566551737451879228633345505500771529314723703594276483700218345469751159484284307421110644715115673425829905868448011184073852490832512485150477058860493884459843576604421057834536651808131274711643205160743735911290025863226260419257152737088848868646388033570051400348992899043112798093023982225281934662941464051294465359830119161050872351140772955212583336366295327083750691868563464197210688070336777107799304389760486407383056370180905026958609009317956169829170280130086491954519706456029091534500795484432805931756160028603222177976179416169236347724759225520840100641282900204137610538788870492830304784648794635273096430228269316115747992604614289940082273265548251654371734124813925586854911358681855853728704074570127452371001597090189418522357995410195517420392673426616673110495680609824076414966279015989231121243937121689198295459249743707229420921015222099147977427133870231822336018500969875142807808846213695247746845194564267036011426335681896042520131163011293443778872593484935089153209957479728520233032695332396263667402075150551910541673143364474991811535292383064518796317619679617715453163296972504809810444848120327105626733612360619084811652459277919391056648232173415992058454037819152350204538189874068157250779424244568606707702042298682395502694216607966115651455154922930895294905728673435560463396192143528602804137974326728844766793628909411876000191923335197235859676112667071647986105460279733992971709619926314458010146601258507805052578531352985349951574252253031651349673468086509537075378193917088213076335904019912695442999094943999953041995166926189751471518498060732547855248357938872733173065743301939444404104187518021794058526235544548976154171109072646102470996959661225840217714757188486459885964134654859622682540373622954663517949921904544189040943873884095544674734043409700428544926070988034076645079569507972151342324761145662558512545731504837327757815175481772310392452145120579272358747239392410662221862807193091134365993526558787618125324052250983432209030058366708736099445831770270264869264046383514105000230822962115219921492106801276013736868408274658753626394181006529140751592438323163303233663358515295345534788271566783049550496911977365765583066703226091982643241390140795294179194052126850872725811390105004417717110195957152147229120076142784683042576546234268472154347602582424391369515866514026885757539629714569225071933215398642795477019699840046752484636497341729533939779590690817286836169471164213583952135069853861097034063975054025750124422562708726256125561203482900147485971079612721177257735174687300779284789869241846951853372604799578765050278152015505429582130756014063245716609058719440088824761983171013661036111030622618627825404041746209240974155020734885180989164652413619462230084338091796843366206103206014553313380617189838189771945571881245037007480785787969434651957784081236105857413773931972855969461307598543431781921117664700705848489516035093362349363663333239897654684390948061280141114598192965444835773914394656188554219026161184496281921076177343449288320475983916356921412890884511874758464196736387583603993768123344378049674048918887237893752938477969272830525108946990617373525728077098519978507489778061065401579425000143396676804112675024577359504426347243651704020187156676679411941871433529459617707241669900015168161671596160501131098030352261382498572791734160928473104957960844348777313657661911414462205649440426845298275888240033281470402201266074401663540942003735946579966283370555954051632466822749596737938146223275554937406113208867254501682902316582119962823376730158659567264281464629917260510703716219942613605680916001168838415117311668000583509323314639834161046759590962103477490245914530584728651005450416121581993780872380455659915501998165068494483807003145420265712319645435450674194979530589614208101719034244179130699708647491594023366291368097581746825689829746996857943418367760886097945522803367465402332621314007697652677566671327385917699884737548882371705895342232497643488203629130101040943030212567961168340316265900481842782236349186458292929049306671876127962997787204569906160989201189537024876886531670820321809543087085125206919034017342332531719794259100527194773262564530703549882254298221068363388688519150174222464770128306983036437408557114516114185693142320201692521664083299796034934305069390587484745901469184185118515002504306589480677089063463812771112145229581529328351448837517467708135971450407462350421512330749309418570981590098576536032524083814821846316624442504976407028994760458721667537835194745176205646829010268044486235029574590941178599252441301779459374024649903900732991013328834178620189765254130385291225148432801065607896859250958515428956408274109494185751470486098011787005732752362548369210721154998336652084142839882401686861194649015721176581307875517897133118506386976764602314658162582095586761611798439835597715782750275746394315715509219196047459430109915070820378976211820587359197986760736736673549128368535315661664422415269745674101793264683635245455313719886247714579258966763248255847786759415325728290654705574592812755038914600895584724304383364566369515439828188670421014428496747952931744349826056300459123408067984218785737738964951950856742334242274360714020813851790201508799227390621004182642862820286791426230639270742110835187795044212454776341222427378326375759131198834961076157587876464425897876869200813816922595415509034791692296761885510335802460071503995659972985548302987979370054494913324948947989489058308538356350388912183477040113146615105242773789146807063888838626977642094918602815010222857374785407833065802034403756827088754472911157028473300061098146864659835240229898340416292603403819717873434173602047409845641297518003951636748612252830699797163595613833381303635412118104102581995809102931789085163833252686977004950826621188092246138036671103732811041740366591072296209941443055273432227092945674004701573862356611602918594024945865623827840723989067704924431248264070212490598780704014096583016014530023130503359910140118825277027024696694690676256613101668978454189823865897442942969951683331600341176293021379929512000146217944360101969409722143218323046820022240033242147173783231021416543813077835242381461089295679745799113280503709844923069897537262310609881735574503658239042655114623429929518897883680324402377268543098540548270922723558108029190978024217857652557408711948858152276759514404783844486277658428861810174399116486714940970277221203951664248442647635530317682217248131131541378175487147702868480301007037010384271275821741653016204436305964722260796898701946876203257157505914991959790251660577429369856344501870733647930234379581979785144172609566320283097301716255498926431607898912297113977860943247127486986850170886430652990917248067986272051386716566250787030187564883980156499103448575495367263049193726322392354126828773384040786069845152157817315031122768045067843025839896281646031579978723279908774802164535839192908777505081543248885889995950855233161768369622473571575538323164109009448242394740580218082897160597501865777712001500974036509670220253114124325141372076192822054964307026047408059701318644321247161102772918924952850978755614328511424458939699484572267352522062288277841526994370952185047101371718598556670704270998928061759318012115127616247438579295114547905515981669076887194758208519773515069464192641360468463494117625536608270058048505592495656802597220703814028715212675650755822910179565450623552081621102300374447971983479048880967822692741970124333726712645608000435862168236154625390084752480304734449662869207451632185453419077564589234289494634273789840848243189337684306423111021697047958009467687350495140085134519352234797598566540979575845511245415507849967482344228337027843035396455259105836957468488492901275974616771383641533346656260209513106194409109715008487820904439243812023660777392677871151769959077383951774410566173161962128510582529822542768585124890160734386945035376842371536237722152847753555656908310400591127628606778774999067735616853560911280850164692731504364889421939792349259612123395928015425547443018162297542464982052781307142780536482611082192855547214290424584046385906941233509277489372956240241391490437388880927889309184755000820351617762534331950655674844465335169941327581619351241972235346252048251283321387286978071391814113984654428027360480081966137457615246880243498734586170396919601212803144201994192421864507974906097268552763310305469547050453110041099538344238551510753034293285837646174581314036358296389084057385461196247985645567340028983651962853248695229692586471986274792920883623391726504235825359104716356034396601744294746242498840132659627007377858457964751710874288351376162284873533475256167647866584618144865600624798191636737473806897131181656282170735029878206485230001559175139775662403529630263787329535938894462301807139329042315650295044175117942643380793399239382192871114848512985608965796153773720513955571522009168218847071126642633489312947932973233125864169625563721489468356359073604435881110016296661384777200925066806266115285200167848106734789618019579727811791653894478214709538698374565556418791208160562331966947155450869912827119919377204477226382510459174296122419756754204963145099572057292336266114298111330010954516621556211092896393494544555325341120503234448235299065757961752794844472873837500380858327609459923818682623878235381445598538265424221600685788883795036143655657614731668457579428596860986787995215059608799014874553569183088661584739791318059588703650461629707107298230240293167861017715145581931769012886045259458119752944904627673027561369515905813087486706167806768074101861272303707811068967610892307668560574432520934074756068276584570845199580941755840668076659069209326746345445530202766155608535391321291608580244323199142412099887221369653811348550117339845458416542724187388624732808000510434419634136727879178479385470704423839843414050843187643574510461943600820561027236585756694968060157554776258652560469747962171106210569723330796418489445437578938885364598864428912083703962378301161768873994370923113891618531994877889575760450406790099810528508124626340720170822968142547452446353226764556384019137369779010245058699139546872858165927040075807394243480729826730242462287583734085611829532955760512341256081913952797728642802194878983106798937198858919581746606459872527699775128448405312760981208692171386737207562193212533132279479593475946726659874263568818708373973519356790855424217347331307037411600456682117850884551995169065769844119252134382903613979509489871893217959974853479908927413705201373796076282138353912383909688772167799733676666065388533249959532140130880962428575219063049210743095694200191852934872872651724026654954435643395403979557873495673130778734993739519581877440263447375427681307958101755472527369218549531453787462013363245780871595905196774887996718029309306833322692384296521335742817230236638811971147905678999981108555451627856184763694555502624191557402050203259324302761369334594663969183063786519493512109838307152716070669513893786979697708944419488379493846650960396150501646592124725808734058234250629356859966773452015391418413417410918083751643262129718338650223050555015625213131492052593747666716451492392058312983993916542066117377293408209647677732160367496356144353297097565983960008920033866524281492531942122547421212809384329704914997646355003618863273931512282740894662968234402759979564465985978779241977089112445916102232820136047412297025560187674383292915706343159911356941956048329959600850785091593823045474775992781619942379492086596789114213148612773648007103360807649900643245079137064884854859049956390964328965868918467226194895589860151774368571040311158887787111941063949234347583354212000950695373132263566614967208622024126392420037301580606984504111581293822208626813770341921622161614725102003608689075687530803993599654009450398298653486973867208595956564277282427805240330758870825371528388638815642465988514952040436030908819440623259149690261529159492186148223993669561293284726409577340555737540534349485013314067593359174954310007046180654488519462437134127192166440415833698083782596246516500078738461271478974689243745388649324888820183895850501821626038688372852305126802175580332877561311699740753830273302580648089137827833043455230611825275301842522447869110386481980188811419569105372388029170648494920880427763290749109760499750857390150186677250769913306183720134533769634545453547437899753773824724078554120523135237076311444237183895320055318388138864337783445419964920857850753846880076854290604309919500930173383688599860853026234073803206829575075067305159661108904638044921259208893745553481953615674830094730057299158169393244902335101685557108176591770549732165797728800073700353084084637967648924091125772923830586724526904033665065527957164687439859858921398362983018587349561963815493373365680988560388346963504958250279884113897971498620038282412668818215596428419080524617569844760634685573770864189070886127975978430548113689043130487913230070019660851711817631919670116212159464531741694280045067495568528264023443048402676622793302326247144484906193015583281837753826938596604474064104835856567298493491021933809601285518834048651578629479695406979497814231166265784697839803756791559682017859980322291217606678623454912622110561792528587783389949319451231371007671841322093210965425629941039100613622393800082684773510742010161471888256527389589028795342972414022129358227108656462569923743538579863420117819459783710347876862245206040233830210997091172839809968945248971434405286042623177579682472811352540680053925972127080125001114120938250087904442674679631879056321507663373114980268154003182691623764354144576696962411665887873826393701291336193507403967600331408771035650638967889108780298939260808722578158322192576319060921365571681186416013430932740476288559174655075917297176811010838675716278226706848046577247017202230047237610312323508644146539945276360277673663070882046036573105109755464933181450885388088875283330601232804389508580037045644533802532380027509764628756359154064885276812892618134706407325038040630259644493261855205028919131135429274116955478621904876174039816535686171928501686698685785326385099334112716287123608300906446683371475571978089685818779613100704557979856469584754268220728184516163704528952429979640730068636641257284532342843605121859641201759239801267472859555242474846482098615316920728689158356470206553984121016083115316356553692450362519833757813606900106977005743434987862984359615694856650342486294043574869298958027551085612887056480309974000716662103637788066141173865066262674885449436999266312970439120716744631799375814623705049372642493105762613944401932225099809043572124987846060941643265145805732283974456658469000452738426913492550729424670186520530095090980839019182134364387338824055869401900875522321466990186968066522025375890931897520600476612784180460171344389269037766516182230282916345216511786909377924517543247696448875561081873929903356236695419279928705736196499926633444188940071433531659004471707240890598507395121060636058171088685884729296754209025977672758165993698521256434571239261585448076418163862204921810178402105293239501428973317584193939260322162807255407305487774785448810352802337704532187918749296835593503133021965174334118816012833692653184178322330243171079999881291404554376015628198776287574880002631074648084206283099472709185639886010843755935126547065682826974257591992879449617680476298914755944094612597698150313879566051475762745838836459689508292977095812749002787493269479523360960510547189056982529677984931666620115865762334329364060068321457045071461951810872559172610829253497700387754416329273665355763973888847029480490462973132915922347374931720902385974912816564064237471888616258630656433749457147344478448032967480962334900973327991638906999379108652061363364633259334629157899139476774173240858194756682538326199765580377679932511346310758745699363220738112220767487551175213246806799158737173110646062478567945047723899640467204124572187942718804445886357138946278457967099795891785224880837051161088302767840583589282763889048577093304065403455223980456458617677710572784829767652473148424460362895399822872308160027340991235542685606408668202729754015800679480052819732620806213830828240085889806530606581805648492515569953587574368211436454908543886608638897080218459816291110791296978890933092403770482177903991264550502852561204406843291984357468655492632831571622983908457002878950005075155312747024851432297443066899651137357425082479804182718046941269353126824528649166608569134593955072298761060048413487439364561706622671364508069906505265452899610868999101623169835207250546751800416758467121755920614724145750905676651448450711507945934878397643582592736026158600813749018218488200287581523403086676877973152118053867046909253598431882746769942197697351600697812127430984350702950522734710843971859027645528663849347445668591915477988916660703817306444813509474551076460797974501556437659589487129831035409989070943614208279242536451912597546620726994719340380989306773192107546980195973592033626453745063105291922210328641824994014727177488521582873741761960619686434479277080487278262946634628019444046814109497613013062860940469696438802043132353058678268229813775757085810112042195455559792826571851735175135941312708636990328266388538773631953979700542324161307132051954247975010087810140826744128480324750119703553237868283412631786549741480874822632999461114703381469283244384060000183233887479216521175377784780787868482647820304690558228455435592745326854482038129334447783930225885792883115982127605833194964868700214624903439012136400068243475537824336594256930687525236302944259826153024569727329875216437482930642686315566331475556621832096617173643011422917107353560431789998448368687790972242693999089498092975154995315026257979618015932662538745433466736457213130431129014611289585460639346889068824319644219125597161239306535151007069661014957310866613207899102371929880790154920309604629505278535861635973060787330563950496750183160875240703675979389601524864709955822929670782155532604465448190747782133303659919907569850645481446610408141712184925731816495809470017642024652561549684270163272251331054848383699413438700763787992317174939654214339234845289989270887072531417167852434737976387415577980033500698911331827193286035949979229402646590790487599761888475787718580990752294521930411105307859357842793432738608691536858454182948934585242143722263504053276343162297024024584913764966673153652886668382120518989603303930778234775244744879309398370242754934641045987386335840177543613807626239715867180438381480939564531360484964086837316501593319858304295734129504006722532983831240349345152354082833601291469351294870852485543228014291139216912958426070044655860714384813149560615751723970720909738264954438213499401598196608978519763572247082383443297786044379716262711398025591358187258721375309518597505920609659252968351305732147927771818599531833884786612752890810960320243369891848154812917857044726993934066198879808852161211508405566080623264625895026357936621603326904857706953035514915561975891211384282988753064132188821845959960973954809837191833376497712197977012252636917398657265112148406277306251843414603096955489801061831002517482560951191044699493543112916119904460895980453166778163206111369127224106716905594710417901897239774681669146143816435291895255858747467798114894373447252677589882027016464113461912445678872316478191289666983411526923409789969805175784260896569782764897820639890119607499633065243180007670794624327132075771098671119010026249766296717653434356238388005201998042779019391635262332111105204513546301432649043508989847409256320472568824987719508946229245111290629888496418884830597712457636956351083763768336531264075014675070773066680683463334058316632696409842563246118119284363861449099472124857318685722467993755661293070793236693280337537594156136293397375650268398993240166819819380903570360472356935286842943858298978369580090698759778313554042420366758218623664555464055949249345822563004932776269795997840768670383268382463826645730030880047509304674710208792146828220252334759760804982460340767940432083065823746737359039870902021173625242057839132402218922770250113846515639168760720248174185687844169947304933507464084522950496330760508964068429426711899469553515444751366654440420662764783181189909488267112474263835833554977615674169657051434230873297158417693089694727197845502795789343599509232075963782750340966511554163649576743542476002172546322709316928065897998029743267712309411210439120434826105339693506908177401602720189004598360860805379814403791023143546234823108971068247419146167295623020355588279848191535159480389256235760202034008641945942859528081636767650666704093045824932828090817852089915665555815304365866376989787312451091466776459126847027503689232922179479696602102452772026156389281325248146930778769438002399484474277560931777102537353341429923995296402067383280682007316792804026691799917516072338042281177094907331843163691438578034369990556464455121881190126865959955524993848879710642487524494354897938153361177043008533045480033986727974746682674937232062030675424235876750362304526967588178454875546394442880197652009281480210539447660916704323113795463254658057551978714689260706367099479763454204438148889887743005573256403575052930270709543940558904141701545100430252311186648281426515715036362362483947176297170715954093020229282827429292784475194972357805226386579262710956807818381475224506115451429526990773212943614243896489574772296459155627626646908692597225980579446281536385909477329860488079513801879553658403824225518685152271697726200821949287289809999117987642051748033985017080838799533796731012700054759846124573832821196726257903951238237765618755134806948086257787503476301412947925962154715101585896803172682745075972156133790915381314291563158416117283642572818343945960474639610613182839009673003466736796468942501680675531735050411094442511403158425270215368916339578674301974280999652501461719317029329529310765519684449642880860394051858299809735903867937691277481685066540162819851392034610085328512185505478619618660742126492840299164839557666595893983140526549742850248304586367089116055116681983234239075865884220202379213543425027759864222641334899313740167926696765295816122393774396938000135526155708306277053128181719094401223427962553971253806560832108146462447529670254444658462085563409698835762517525819270709736180387837236258779516993916038318670245417372970895006293167300736160251984808254799962461198299535056403799516958522838477884690706705256474042323075693074356937385903372066499417702263560852252587534014055749734618212559193971891518647958763307627270560048581398868830953566901480935597949301260263038306626213666849468099149545598442536240565211409326526479769622547046148150530351236266718283340812233327548865671197332791402671210419715723269505529436372861409202535254438213553688109320042903629464266700279830182093295084259797846134707111403439864344957712075095652163155873749770638549009747000391786671754238022007411158745170844120342495703652244464388379749884543003312829282577181350870325562165554665936317893516967391853671714705030078973577632518414500125604029846608547180500465729852977961750085377697688470574207122035793886904179830224942104998999379362401577959718619256864350651432386740225770546111913551820228139514800102161532452587714914144541144861052334991102255847667489108699014610979346336299496250192990489031978351149195499026433389627182529423698416334455763451458283205797013494864230792556853914507034806812014840196045599167195760985115808156632397287781875555456977923638350673926106010080247453975130268504171223241161229472936542323943007480192881368001457345851684481492634112667920493275860067519798971151011808226659215872394836226342604876145045391653793733478952238198586911036329064016891278944536664270171161334823434638917928079355969362570084564586771997810106208047945255949762017193006468079500470385884468450138423877313902764181167674078998034577924341057749231061991781697750283555765242009025014856705264058023588611768798876398743676561657547119988936076169075247992863658446324979086496718998390406911477962394458975647859977664216021764707893145966623568425612156001095713894590688618753106081446279187367900301272692048256186274853840714092259977501048741862167575486616701871257446846387255245041233942739043846212028202229581466645376536055505963167751683812311421601756666198675990809177808751591315986359589353370313188170917492247634843844200091109643522811036662148446038017107290694137142952943367922465745484803951752435598579238695525570226593830925573969929373626960395876321803073138526780184422596561212532548915634688028706316863053451941899022576738063444768166100111749652242145827891372667189239358081752523163340604426778187609134759749859440915192977584175912452201484178335390900957681857553001907472018909024334391331173206047976841050175710446072986634183516984761246443261717801815029860518697270652883661155091393822653987574402457666582223120218995100856231231017760255889143503279012533461954118567316992403572647864120759868836919624584426126265137538108076063755311682913673224184871825309219560767162336618374323485910580766579515111966566054110534093170625854369254822302492940607909168771693378738339051857185876978326352047554980175310391954026703587899264349247136131395494389081681160322861390009289325152471176118737688222557287536862654755908924166617408762503927578618518005701382342136983066219785632864682272435182523916419922143585924233508420936014949544072220940183159193259108921295173300002332918301441434990181534840790559447482740168964390960615071955636524078048635170173661247785726879570833713013843875610192934493656229326225581541734515867068757046346261754172766144584138454533653498007965231460398056995039608372833580590947375391069130059173451497972221202587012922235925127810576200291713900467290789277517310648045675197981231456415822937789292814349143597599861039182284486860473448090423696990999068553985655121603717163913724773016630382265170057572618179295725286737234639680258625669161496535862212453055489749923460405237785455157252137116272375837686467642498576215982041022712103732047631020599954460625112178266486708702979832244530892870160984862426682969121744875212705546441952771347819253985880953447896091042386207729153403573601487956178665904630441416172088457697070583277993950349902509111275217284705693059091932040226829436110366648449896837828253178751958402418424274270481667983545387643079081359888722116620915794391652912868741360127652442651940136312779343979341617559372996039375532398404195349684675867203183116786778372917157634047347839347381588304966590589453268877012995338543529183613970798991268989945919821125704595632625202297025400125260733817110237036625884452222119226682617923319322118743530549775007120514432170034477043876392716233051294862779105425325618451993116391514795901867597618717991861203325733954104309862726788676239711376419155315980640160587573480326727308337899810877123131168972656928585800422742389752819096798186380551106331990286765036571443978106298054293481553026914513957475290335510880744370005735891372492926272101182407033074328899599718054471509521072384610161087028991084937359808465746427437935703807303771046576446190952171260726505169840032835388298252318605575387741861406894281810678616998019530083604958677846829253392980023837446167525846156427371203687439416432692625630356366721727192961557669318209177257604061236933603724043460626731683610571613241910474599958085142469371291625795138596079401443206796628071802084307583942505137476017917345248836006408280337219492118205685777244654863999801344359500251671630416130422352021778248789315502320790851224961446420899990087987702350827390738799925912309334666712638163971753703521115882795470812755509334300851913960451244333181959280943676689673257387786586139707888222614347226950593348557040030064101027367789288070904132993123845074242220367202316820165812392035804775919758425387554578556349900423665682712685779349966341435523490860356376812520798606623029567844597734617026042830121349848853745697019044017352197281341088128771265210605873987317430072779675745400134117803190069591064122807711390696027841838658020443226904105187253579477276918166912485653328126924979713063086768360595735053261038477973000414712655117512491074385623962366390676214617369580485759163885670554764878941497159001561517507340002150302763428495553994349995408706857423520160075060562388946853090283470284685163404045198812844624558970875803244952176704611087516735646281232488510195347690579832064086470687949290721980084085913593616277721717494891752400138430634184840254890734105029439240607565898230344372127173460378351679236247173686524185541161698241136597166377326212005726548361375503674421849924874012890349828075812394912850429538842127872601805515354311500327606326042411933492130439616384677499251092698537750856461648586879262806215774504522014140367876161798832545759707751490715644781298754621982911037812551111325254058060321650389329527123149293502294751452052843590192146592107428216320894243522010533181702074537893533790459451799034064430242727732568975215075682995195004578183681221762091407442101510687014463111673834476020332005660581037225637598301638170428616771558334912612965581037168485205269317073451268364576856747340475100259827179236253543448591191269257628701009529813517593788044642862869077165801301993838646988313286857470606282065418034948751420772805167646971506673958688977813959255981824629597215968339275324024905171073603738501003209374846170982635276546208634126390793064151989975227312549301270371871456321058171656008677040872315343325719185024212044541649492758529592559410587569466548877451047719089040915230243136618661845113412190871262660924619826492651704088229039147771641273707924961318993724890610182628441599064376306806797470163719914250455911797343208964003838143915990920664318610857944947338368131262434236890744562516785114602681099157138604455303494052246573109451101859504843645202365265950482380785056437232280725424563398435969203407932456856489136499876673212755113136151827680760431672452503772190347868770690082361074117771167506257006933767234171381119472600471422694020086561219826516894414730239389734583607618079891121034245716651327648373097120634901066094471584674565047570692087735334519286738534116749087818953742158100929490335421496162189476592168852835269220450333003862189933369806989474077775621236365962781158761023460484050039710421878851060810749889497764184547142471961814914464303191116218994522980339521065113915690132145570635106229365140250266429745497344605043479687924868021461631485444777448523818209664328448843945148340982943392101964157498946582012222544839214740830692651621649961004606321212648207407588962743508554555675823570718935909615809906301005309504239007954070280395772572173272530419321325419034335990853180845385293034306476922570329939639170326107321684061866749097389402460176672074996283319189697611110586485014611330815119363578743314036095696066971819939716501442255889723847051494438735473844438293561693040954043691409836582113575131201748701508018619565583543373880379066533487629085720253662401854444466071901259532097925300089169401728267213328464846935879893068940169627422292119865927596310084444208977397077392544236089404257567753188669627549429643915229410147635875165006957110256770107506943549698610523363206775295710779579847902532150523199177432815988400582571178147107556596180834292379649996437351239728058224543760136229608940987985442812252750644526062063790947698275291442192834019019914718434005923380855682531160508638458781367330281926614955472371916000577571511532810834011756538510383370418269714539295252048329496467363211252141056134490097365553615991180223109744988557853516824476162962912304012392368848888588520834893787914431942395127906888423272087062437698343525066206684630138987438924372236831049932750612191023481282714182411847395837478931365285017791137164561390833348517216959476510623058733313223883202703806059571724127272482198276602792476686320273275091445835009129678994877440120719731366278602610414501840174437345184693769185201434367014924795879309027613357807307545181610845353685168160003527063917852168133968895960739538459596794432153719218546270532560979489677098900070575456828975564308530430146442065999137026675918210452336948428626336640995205191803466894121893636892319557910173848202726489174428730032772913258892737221210533061354381287582661049566521134735418341345542951419799095292995040686115641114663157253446898600805874131546011210890437506134191983815640669739981174020583707685742514453808281133180454495369764929485583448755456221802368360029875467362860740168602223118260547544517377777253558016709544096353469330963998806612334314884754275181531251229647598615813079536140578717296292002357213189854546063899365323766499694633322054608771129530943288494415878943487090678021454666355040330861087710615023174871870156737707019139298149897845890423588754048338559590907188567416045356782115783933979420928603472155982473106588769439353902306803936676747614376502207869376820055772320087214226777852380285194145048503137468800259973802341019859612455491173004220554705940908843018544853367828152076598735973124103193359114832309364309458896419317147576762969832585400025554817927390527497059966805867061838474437307088860194253252916054420222378399350502063800782576069962484582172925881899782362971349819637851325599509412999797044191270905656444125866532019993623123255415519110957844835014405831823919527389717507494771923586279353148972533869029626057599061249263880071627712901091881784342265545626470453470889346063207787065044095019005016092530272378059694068336506046730354394032986237971687739309587869150449076198623100541061758906150500776250057136750791328187635184174095980214467244588464528482147279056903638272626053763556792768323047589523404731201753540761058838884037290246359307536871711236388797648977293554333966260753607947434824856373946066428546501128560504000341590674485272949722213678649567897294954665334898383229551885029541740614610005380855347475364292846874771030895079673222367664820136510582043328258957602858758470549762485926642720496102235195865048148588312978875632858793244775823224028645924780615703518530883072649018895127482763113733519728722194271144072407186887237368658257319538022159157166274102876467560841962122233472566767831476613852557891123772827429150153977285280200165361544681715829201561442244552228749098604093157293354914244478051640516050313518742829560015957327145508870847935701097568939556979868756152168337434737961241224635660220180938791954090358550116921572873209433760897774338461848903578723705602507465895921945353488536677340106619091397698102825770937559303695456877047943935837966482901689619206667576009984613328065216364662178336091229613986906599980805421541876851010220042632706489318701918317254920671741973566637213506819508264145001671983620451250943096985554734010613797979265537617978026020881978410032609199320493634142658333585580728941551947408705000701471733516451894213675665195271929406753214473200823700347563726587313340598137195517101557010373117054363601041984838255571298027401529161645447589731307830467969085775038429306445729530573543599788140964214777353997687428331294801287390643223497354059233977269827286555344168338424035301913646554008975042068961176212824606777955707846979415956350164984520144746470501068471263891892470233753978273047461141274929813000684560802648948752699673492874225204524332658488658669621965827216318804957465707132511079129515640682850736881761490722236122807412975981817532705217934306623798827015340410972612970887997373538335980351082556677560156928629838899550019722980700704036923113571773523206686126955512999447828532066326427680248297058562490006741508402756207509677820648956078659714788733233378282861201192817771456434590354442896812278880228925622620943534589918249802041378536422646801299671663129973333164984233340042937293932339115180530303427616219726617117666700213109889606850678228119091891167684635237075211659349415311765813876035554239662441638006501020902143282866943354226646171687985705842697618616919606846554722255918822943946642383235908512296220304169396637863472517293871360486787813049097162616366832041521313548832792624487511957248365127316927773673368466777414750221798623347998906585295285444297344698421023269505962218544200916816282408880380638184182668642527216492979995615680605459102384878622164133823521712257841556886458775285318710299192054031081473473452757802471081846905485348853541421107846209556914086180710611771038987270258879983597559211949672546913933273827949909064407805947601662305042975027491079895607819248604404552457041829260142991804563491414155778372553912984374616078831909019690527999772873319646363437668685497444941561462754144338405082127449695426020633733526586997298590668633003668728632169280876564888783694644667294564155616371355435260427534871987642979263403393361295835549754599734476362643305879844793983371876351044930028720636816543532641715930283071865687806531461979850863674822890958961731223672691223158955907696234832232565857831721044965357042409869955630347336688134882469109075227465679237607004488635421869268779739182746220356967054932528083234423743214278863233684078031027011575701195805057724662436785009707488388322073606826973741218050891938646488780840480978307451410840811286681211074387662867816076654546012131338144471294816913688896874845462010345381676093645900572414825017251998145848291198312689962205704715735489865308309939785998451282462505611390590765584275350625531659020701015812991985142036129070512624257276013045222923927412517464179718734262705414069401840624943525656574128535917462310341258237557618140742306150056655305517741777395947160844559877387893545846248477082122156804965615665839822110561220189964011207838385323442175095413751050691453142099604325370583268412784070441929013480712691889753508713358752000192018850045388770814164799129595320446467735299364406326213909161231121523839116807957186990966435810489075211693373961849286311138466330153412347159475766957138530601606666471813156292536553781171594925316627393951356595716768447874378968202700724481947972195215116452686908874792905534564204768919998487993592440755963229465152022660245318329418885054973160811059549449286003972628088091886422922327149485450681512152548398826132034763188594183816031421762602418140323603294315578412148860071961672762443009310512365319928081099589306525374824397043885024335974203185977706413490050409798581848084131807533100331481617742561413545732345859984226840321935614571565099047984679195439193602419291331165807632488713095404389827606512263247609677391968426538756069004864693690518684596587409820779514663905885140476705087249101361703730963892174029517549187109927823997610341261398004158497370055512515499549774291265442551849791250338000221549869255707491629783588764426431424026089011758955628064984243361860532912667302782238830459717780918112363669281262457673834015142861648107242800766500032524132646859545458135898137029545910254542035764265553533191589920823203283156517498131459885344030395017658502302581972744882197395470035487065237121791962305695093671030568554389869835418209721266327927541977282158436721646976913589073364438495488060804206223063818414843213646920884768774593147716491482325712441332884101030689332641024092187451768866378166935742403682210725160572654265417110493104314660796253459846034821332804757545792064616797586751657022765496387205728244917502891432508033985308803695558114836609311033625957696374251567113053010655105606093521342621575712278712173685585892037328885998958282532364865604540318364563527829857539838253374453134109854000085759407955564234920872356642214687807920829836258547899735237749850526546465097732955471859666021137323717138995201476721479656464056777861587063931211016767607996302853954991747479677685007890739452269808124649774563843396520461930632544383074063490341724986986244250247913944236193473534682898743273298717763615384377223627519435951871080957132039867304466182129762440085973755455849962203943853451742737853975468295420350005186022820174156326079737999427449983267880321398827662810904138986626621640581473393273452041553947355536333685173124174014693627766770501353554579398780970307499973557738824705547064690193490887919191716313583778828317034304120123754157568303190495744080024502189595304415299099364876019135731936670869766670758754461414992408640693588225376933310352186593787866578250699487411998061145988952952111845198672959887788860866119384089127917069881604150427797608740911998131741942907669438963398270758755292735603719614557755789155061766813759471530959050945818507641770763964723733114887043019945392464009425529176697817300902531285021835488096688983652715554673838991826372941984218731366983747471471859638708244232818786892779420412208524400487825204714947980640960496118900590563442974532563982417517174915320570250500191815601926101397019671310131094116270884687364754158811424822332849512805425385301463231872556210757339184826630120675483249548828851194621423610617555567055124189934495606375995332987621290279175956143242254951734842735509394789640627429394697808206352973199955769550325092531696841322367522368747751308124356396969904911615307469577467149191577382143146762491565938265292158917016649300219476226589232677145982245714367491454198821565573970723894492466141788307802971778387045421297126479806572708330520052565109163324876804573335024598572360308070810674723385470951785310164876457937657220091209137290328522245797950675893349846669576138005483785084491332975713367407922209981083240672269019734098794512896696188098233956148202137344231827488150038143365144070173926776319908709224959566206999694127453661421743185907785460842559840938447255401517706577600965529878247660828337443163031463242686791852651702022808001723835730560440794206402525581727366430173014267485428975904556519203166800479468492752952075167689139277167608760439665908545262444816275230569283489473282370029323434933972321952197681523163289058103192544881729972664844423681318750525557338921611275382425318571809161773606244641151208043778824473177779664775521240086162673648381474373142710409914733132060886266972642771308719820055058046228219709623764437908233281689408806932083903020101182387613437608350630138560456024714816025017385945297174401043517985854750374119953068889585675841819006557695503992947598374862804602884471380280823568591078671350138172419433736834212829057550350389811151576899938794578891402547845487350099524933157840683196747704090434687097258334380167478038751104664717920082713104096322347589479209317462206146625165034487532219895599171854346364939477348589309413084957207864149276334608929862002081317814779583294268566504158206818434055001650589241447364377950048677429309650634998846315180857484872879005329165630382415141107355528875945425775779796583947335505680814826364808182656537874261789108450848471495098348180803072498741093905944643189992774792405963814527683104654412898683641721453111171661012066631548807684102023109830253385632278522915894043942734477950908487431232232907020475543329238939260492268562110877199942046858740774539644725746719397888467221365457958506529799064615544221564421421569201858332181220187185219309626379375160370800232871101903653973138871056259675843822712105711392784675824857894048311815894612359246345643958077528339322547949649432721944591413470223175240014178714268218728975876418493575783244301689654477811841225021125798773333816344161773139001549418565779106052727961560945235039905693488897138317822186238547979144062441533063114905870185022671497663070739535729975088848240061450473127199499729047389900029660189893627202535434625190041252705839612035382309339479562270766984220724436792574577919016524272455422433092294259989292251865692195976216249323848511184032606481619401919342037846146025026698010909290701006137436453991354785423085553876081031764608511444204963995628822655090800588797549445749500018419466312645438828809289486754159180512451944653264776844142230252101290705695329354759391784696978602288709586829746499049302172803236851935427806104057047009125452221454005404880556643875868313102224288992871010961493267488657443870874169554788710881605146477335435150129424022504610190970047406774565763777835015056099545083823874223976589716970669316785468836065907601323526175731814415273718722818141874473344542058877497375272284483386188943894658496975626663360462421529882794277086160172232651934359714630370067891906695738867893906682350280494891779001379975256558758056397010028114073828972244763643650251272583697408069552773987486072973032328761099938238590166560660122621112697039392976842333149752037765430726738182897890485655640732143257077621202374559648831437705668251714988895102411036082197304058939557216597962984307138806660242922147938545116452232008556850867887509922950591861402059665149469499978891565356745299658656590472340660894483485200892170919164390410528016115495612240657737579377212734835693446554279168775768736495863774682718511049043364385968058905804151997773231130186944482015959422829244368010037422269103164778629789114308229930873661244238248198154589254370904430943924084583826750818750841538347797374021707566334362284870736572108126379771889340612599837174067686305302186845245216942432435416049142556094414274789435893927482290804285045961228084113042723646850095360643003041740278283926942899369099235680261755943948959932707251332759289506006018854931103520898133140624700684319974275838572687573770440347557313924119621613478588731465825475309934222551752719783757076093121787099280210193064138992226729134916101234699721132746146258737306464702638248299553765264301338100272481127178175705557868882073737903791387064818035498057526203544066564597045411061251064841381096587785226119675545225115615557984790321860756014489767035733454861213184822774245810920284961210032514441802883469338120697140681378429873945647115136975432159141071919023287363805758562130399467132993262198633970601120644421970951825796958107218716525803640121591694499454629874792943512474895097724855682333185594671316361544104954694923932378970721397340446723332220782423287692133927355921819897889309003939425221994657057907624430588116291113940867381659179278501656126335415871539081338269430769717029063944314175635344471289829970758512599463377345836034696425433043063141548042807669449659620531307750698290794041054774022438622952386652374641669934922712200377464784604862625151974957981004044359386548774777213572653510136260622878568884442226753636032416373049441630295709792808608711760264666559007074012771302325267372374906581018253720730125315415244669188663514971954586012483037284200593584173562623068398571576578276539280619359135197519256419363831730177794905058184400938786737486883149343461596912326097087638784755935715170535769924606327882526577071764798316753438724040043239237058858684483593796864886361821819168503110184404054822788422662660217505467568763035170458742847580334240934128636511742968298418489845482075360611334853574963147122804413207309084176953628724774128304571492956527976973005333782360242236989396562169661194546357888897448411150126081836709224812430981177268240657562274556540826891152640561212133429138653912209473495469155625695194494093326914512688844791393569684091638631484676177291310739449051595275779002840736400846725314941455882731671911265199870287402836710805447182348972484796386624082195286209926582955646921279586967295165941533422115719937075417777942274247156996063221210914813325761131128389371416289590859763987994556842760903256734107674418572406342617025653869539204341649123187008315558110472974820486087794271732010627096259146797455443210102286895435083066929205281123209984565566055249495977411636473171141156871113165205545755947868288216170997278850219252657572292204560178837895025297827795624216393970386903310981344947171208823596399897525332599940102904554410021704952135691507934326645540938643228443376687673032688836047985421314827711517287924787982747156083047950984586734838680265175019160533042927149377612605116507939775791460970857254864867130987756641261550659423396059404132216520802806794408999066899843233859499444653921930279303010512488497239711652207284507478489677196235720242829468851246774548037670196955704914066962795714757628616353147547391283674678023739451340048723895669385382431957231939875631193971563322259041953745291480278666678200503557916977485073844701944078886024822227918766954332934677711193638390691571620839580708571314758253721693589678957023458903084621743301113299849880266338932629085266119837058433464658814168624497029239045610841271530999048419291176418105082079741189256508236866635136945340772733985865036551273058897177114570932457100798132190481177838434251270796720256316464183187726676337697256775418447449474170835539709027224170037718862895679393877249030853208233779320047992714519849313334124975759751850785899463112455551542420939688445446077696789627230812722771011893784992097738430848052002954985630245486393933698026353378813601132045393951527963526537544178207558898209474884225986594169744034094686681324222971644325770692415901397625826133342534234277774265089602004926717524312054888168063647656431137290184336900616091739533355852006105153987861291004819147350712874066900445641870171648343853429973320557058688174464237810735102247514628648721438749550671742455144762648976297299169915824200026224392728537844883392580836057502375091990449157715317150272649398597577998345203679436988397438886958341061956727839639244837005140787806055963930168067285859452536968301363352872526103614889787717378136793558373870267124753931462376263380845772669531502393266659016352657556071778596395821912947066933464193252431496591667228654752654838102081135003963485227157152308713427202985157225127602754336361620251524721185752367374874104006356723163184998318618169587237029389606579684976527791930237303867999848949638057507650851194474373342855848902147078753508320610395761937139736735736680522989305111541715734147209407448895354481636054333980496742483099305786526795583738519901910326408626561370946284001783636276395917308725886093225709629875195028847287135968359685224903378932330059126486533254350993039671063830131708620477021366054895324059805144048420049407581830030493223821870404928298894563760210595263677585908806323197443582788743715608871353840561297639661160506542510163529120979506093223212132614572188559904251760501759891186639337290409046571902837791482411949939524300670735941549350338054478628723810661530521363742232950846364329733497124521703430869293240899346892305161340053273882402469631869047323056144015805559620217683555673501280074347369755939869218026530478693234537450203712328697223523685719458682188075581802110553392419748937755964685109942122213271364119157640699319354192379967505729992341865289198320414950968995974824263343357063610262857416236760210435721698416618819072031948445849925955243139558755071102057386621627664282545648474336326458205695832656984483574221551696117981211614915832928279735052073274540304283335278741978179655931268417007290087238131721194085185984743467892661418220908933413458515157437428216476414588281638321198925117841322419507775696657630940585612720862807471941780705604009074382970586004433684034449494357273235311755543647172860697913769299155861668184448636494850982671898688627078340789764929727598266772505110376060546084822421449531598650325532596958321381153149015277095728881599224971591960443525444804408512058319072452263315553525904823153757925914558491944816036086258158104632871469908341912664890450023433562525513241195327619971009132391656004997927386175074965594562907764202418651058771856892988112985816842018323684239738576443268541173990903987947855062931538312022755638347416811327761890621142085935589468954778956077041182701093229210168296766932756793193982505864750986690764472370296760658981604732085331081605599095718254165148151612146590760564929097182430637605335454490600438527523503947214117685372334111355749823576054543973820609987429619019941603736650104723151252590786488242682539016398824164386233839937381780358072881883935902982246442197949287609520039875451066423848784169356579866927512837991239019617280531226577900810001881863158961754060295725041956728039836501518526934445984030388213130147566517469752329841979134807797076255748696651358670600351420844263537314865364036483284860053125051944688306701182176743759749748879770119711540322282184461392129351092835464584717737792836113169288033218654091533852635726243207943648551794844247325330693677921510939448869232446680260490561087419445123738924920005815500208864906541070772001988743558413441209492874315721419998518655347686127224900073478943160816355625493794976580390192811255071493978062456315563598542310987772141941039704679639267302903935212630094486944186735260565832827883688934441926064548914772927820431203843887180145242736109842483374233910089704699429028160686934616601898499922632707483808766239366461276023661919260362623848840550990207362211753988064130459687796636800172773379691507896772626212362374015732749200146499958047088753495119571943093319155537805329309895731890462252690766689253025000129635440700532679505243838999045093021027645144948743078481447427937187225090035502441063528769731645428467704147620506135822426430570261644609383015254867285166636216523869134237812280979155354687142241460032785374975427475729531619733099967409368965006804331111807759612435851666981173205437653715346517843669729058008188432951479446003753036005252458077845677704452265965302827094579650527085168928953195958856154523430686979520091903645222881970243502905521871261039093811149103707369701199392012337558139973313311686774423124133228162468054983970693556411558978622904628228924223722617204629593498774229836292334395482610815207953035764527895945916601331016967330076382883898573457424419018046948869890814771954520055920245798449596033651564405308400483130230594985651937238491408067621415226105474641707563299926263539145802454818925558619827065216288543233020499252670764670494366349382708404800716539264253627631196345588945985081332695098806087654187341289471380358308910552275396732586794858211941262446681939470165257464275161569671881412735539742422572319222159152905735929408589205753427136644087721279176071934196418841999293101384615626039517908603687458777583386925577306381247225947413130948973625401861330036855224180437375079707103230139682164126886549065301094040932987174871607260809704496474167083670101939311541675612880050439178065640314298402794082572227450755289505790129007003617999771744748422132681578734065860850419223982614957468210416524631271739828096801869364418203367629410916733841089477430306729234650934273267554177541661842461625576172608615180883629084302820371487026374477773172491709678178941781475021971210761041308206993509608527088134349152304948382456424282457779409502779277339926457582796155723622678971490529261922729418269993580235518215393021461034812026253099780791986370513233656676526097921245986856599656814515440402418243547438460967237792345864700547026054954088337526631377603203513752421042142233952424396593921563758683579907123332647364112841422130260587009351442809760872690343837966991539127878394152876479021297385177165385627929454078127624655751977527660672987940753319815663907735112488775882090321714865565349783569537266630344400079900091983625798171879514394314157825486097953623874082932528232910169992242192306252023284147403744991982069026927980662640331823746083647382256233890830632466885681909135655513935502039828471786314481966984069381747001238180537689808597576635293266997965742935338603775289396470027850987387066782151408771992776897408561965293129017299682028828003969525810421573011260742430526783743660153562999524492929996761065848991581178781568688490716129260741278332695312269251084592986474611256372577987997097892939736471819277729177229159052232567015864125413144703637896034514704375575946252320242597690431838195603622223487514438235335070506855884459146240803391616715194959717927514534358411557209765900416626902061332285938791336398498446113856091599823167770543395239638583900993659023380087048254677205072783409780996926310564175632375340180454627134684419334921212593580006558629840300323615519431868009543643304889156198950026505041954597042161597392705040333153617284149355846616554640361953630490110399104776301696263708922945171833654395089662166760173271711576880836803234853189355296277954982088252929463621449225233934109739595060868810292610945928408079016579811140035218429347163374812281009776658756022160478010684591263076347679282158152870574468313259517716878333388657155174448297991328019997305933029488449631970840710735096884846303539888946622819490469688026746908669876732783668072098377683558967219269159238660122007458189247095865213690274098444134550286832890225833945780887623127813975213880975563966725736442931162261515976950876668588761072975546464681398121021354573168185932487315996224962519734115019049057042809046707013735963811196093377237252384920405003996173183245674621006401875113438460007201236904430559262810346098822876516013956509753185081516992229479931969921019335040593201550866028898170390217333204591858293416360704555146856149162062260383049395479843553707512920614928020620834455164122519815346329355046700111810819171187932088802690280612402742218333875763006488761878234504294747072686278547926971000411303846006261554357913206624569675315612813362448982162505289001204931269971063372024545061181526455356246009439815541576107874628538332014304369362123339465756212568171709610746432355846355835284888123167670440892099041027364905914199211248992549432690988999687069962913510646768038793089127258137087632999798282947059142909771688302525460062551732162378325634831134790892995528353615678284222518850318744700454421663145376102102202968330060294080077247019839424670901845148382275600893212066533888917537230189354423388124419641437860991702903492583039145905811459001372563394402916310278902823527782784277816074322149796795799525115320247405458618514446185455049562725502713991505511821751323428503215347162105288756684424040433190802505936728590879336612408767541905098504421778047480519661791161173451332262151976601563909725760901243498076835371651372132106094526510976320104123142875212732824241282839629949151246946847513644687565906664689366438534690836661270836311088805209366533300750341956731462509932929328407494209805449921568804288029337051416338734357075217164363193311705357238046884593433687682022135009336134720896868340728636772924341928657775677538813419819082518030488289846505282097812195243569004249908602515735599158253076978351719586046439476862764025992241232013256956696288325065382170370131678105167228597868487608503151939580715143924602205655750845865957388941786951805342038755484488524109147775473654437261668625003269441217391844928216831334570918040747845448178706122881262396424850484742418880755024304071010598425768881570294792059838102388119394433737833931989110114550416083628792515347078982094605073960680697486320988101835267221645830180140289377985572336343709021834807966579515945700810348333592904563230945131073703261539741960653093949491933118240944269241477526242672327548948346826119832509942955717179261398065503947615476501361329410919612804677762590313242503576148730894997348114409168828830276387050912301685963438372672852178358510671836134729496260858296533127093867266295672407415696242928613344568030898561504633683959909554014793883148324786627230439900546056001867292617368166303253115817599531395453434445783691547721614731686056229884123320681289497619108993524162653944848742715337340112055820115242006791457961835023222812893673976191909480454305015102945660688532885683765620260387351571783744994626995058774671132591311507662346938498918694187793346250489452844436158127107696275946436692194743572867863952277326341119856309981158015232219561152816668171924702111155767209936793601550100713753805804332010912892443808517159486978037426368557426344496366867654374058931947227836608033621374993862790187579938012026682968035305729812735740693746769783770158451044542028439784482042649089557736515281756545464906248038287562203021535153144544325689366177338911280740544369877694196291358121772280900314140119799049505727111610169803196175062389143994978060233505975840746787142974628001326582927686102241681208895392290093604281782352557806480712830319695029224166249965341845513818608105704966102479645457227777174643739168670718001667174130480061398683739163376029241100841354817552003947336056776571623198737399733362455145163323455557233596779048974259517185800709003184480280039192385119533683777393206202402271191009433458026347934687428500528019531882217174133121959443721962573436675529108068719824248512856127778184537133848032403397400690447738919376109047737834749562000749281488945234892124873091505903605189325261503997291825568179798714879367248124574771060105378038089171534410824417538524517512500909312214074584600377859432577445526581938015626194265602339503988027417333267155801257067931721151819165585740029608609563024190237770967723977769865853848877193000733050270835632096143599031372180185740218962164124393145418630366097009464254525349380288929558692469762763167131952772347115231080055482883812049677618851412071129909667707400134909187763238581289898487827572188542636717294989460882216623031680992079668282235388560575897567902870883825629609610649799623347397326852518008585951969474598937286779878771774055703186557532605138256940048383428838712478070473441989670205966721098862891482730758663421216630747500093353575824358701425826269099289828909854578907720102617733088609432215980730270975950240120446117453838658152706692706760297472414380464774394486869071735324201279494477862905140923704818954903573844806929760327258609422743420333939455294094890102141922483677623457319450471696560443825755126116104773907267717588638381983178390085447331803944375806369868359409198934666993433600248121650508030332220217989258784463907475221088659182270854182863369838368508728741798494297491562186650413229732986698035542738659252365359961729144052513092584792110965107974162120293876414016185640636700691759685222652955964267205791570375195741307893508797975131231815581638487105972493847556927405019432438152962194742410898574148916063758508816687999654702627526873089283307162676942878950595033008286223182817306116566065934608607853930190346804030023476976441323285907851518854276917729095592548253359782934314081344708071068769250397396927259683890339362854556929593272987229825410538829547951669392931794103889938551313274716641385157387130740065404052987063788524303285846987140127236450721363976253595093927367316345844475957521268612437570060177119616309957163934901745618615547905958943214912905671202717089307859287317818793979796780680964623273007357111892657698726890961535310156919941501672951974007451777046720249951039146871515397340592175037262601861790083909511651981678160265359469823054033233439536207521144141850319209835588373621170376294309322292345571537913926691576356688058011008538969926625070838903642132069260530785420528829711550584523146682672112538160181563085754576554216156952353828423987115456107574795249297987187714113107461340279507292217146298017095186968622156945620186066945740360148687996716876852008226709771289039046885119949422570762635526516432770355820829825284898026959884103837893922785226539969320688141145402396249513555826634463686513847214378677344558746639113686118800143898552915588437362686716540033587720292896811903569923915587862357946787982519060260588498136680072498111414244601722961541615495330573860279546831176300608517176527211313600838265631303924472773064780014557536307634476680547981763085531840187362944267193264028169115043099251067678857502507384975939830992880549924401961646832474244449896147259049019399054773196561854587457293987926990272697005642195982316781657266512988853247390634460964298070159659869689112157841199020339007121741436827887462035189193492335847903932672564152694624559323906425372843551750416407535935358748410859492247332395206904002677925393784073987900924097371219809630582214521246360004822292804877790262681523346347921245271945139367230641843119691790964851618815874053822902884128353277973776636863236387800558311593192833280357999553063406617469746695447401969416987026099569704152808844574478374563176236849883281383812817765044588426642074781303541753079184739199882452240700773325605835648607190159507094785814903273856241744504688024701943843264630087867146717391780681381180349616399399285663227796620236778366945392427699699363085209485443056798763978009520369735201571825120758295048922475528738663259236801772400991299575020210818636924555035759840995605599097277745526156895035998405819362726610478411433550977541609630833076244468449002135436779649017389546145523475126215236257648689426762537331847716495767380355060340191105155614775095493192340832538724486294109217299929622244941617913890081208225249941842477600888329701070423059728578881753364584225536715636292016081271200636495458122196995275046905158355356019009151302221206892987213714284206936352843702266503168532862219202808918769543838329126306329313519362585475072429723557837956382646475151332693061761708329950440642452521565116860001640962099209261761133128054105975926562421841094081067079504869747935487601037742331659168087495778122515759333975393307954163429980718269496153301469723338492929183599664106373720001777975566456105206296624094606830972652053188435157824664518867099880990179263411317675446003630928414477920754026183604410075667917748544714660966049873709320072929352349037541947054826908733729489818568506202444633224202797378186546564802570816903329793984053276063127282076336471163946881750431849585378800245336209288312428953962853903740514847934461300149024724140061564070136575550965551481238026309827348156452710349419341188658691326781054197582570882738930095003995309421787271222039613038334000735232904793934013745449029825177478706088382055038269637506100983572213944364996520237078476346559048899086363082160458597965148455699560720094478306784582916282149727809653755608368789657839594537356762566046877144443774799474347799140022937280178857853404881567869391432472807591201111930597873084745940389571535371538117256284843081997101031269176112254149068260824991008067649146267191900090170538753332623465431467567452464223184149578998450008078877985563579995700111049805207325226186013210574203538525889697355364463120832391386270754907927514629107896088952709617500259769022351407837221844615808644446776586779614598930768488301421669546017460805756392864539640786981652191193267661415812476993577228090280218857983586676906381608919941537514023452160193590944749817188175006936604925197864572211547788788232778148098319451800428089862895494631987220711863413359933681144133638625142836283303086116617402886860497571835923856735488078491322269323953949003751748974564939984427517975496842676436207941383875288957492669403322494716812201412518910693848166988406818728828512861700088775806132549359002849435711016173929283210051298247948059693093050522183958602418336754402405421808242349729118066463515986815821860315427572688468689081468157436956656404722859541928785425121376524530157921852618532601581378362972683753232356461882144799310558056720113144244196446591580702500811287877694118023917268578842183626629633998314900906851014928309095889178022694088609076667307267953282316205282930705631789013469525658658810201466537698376254806851359550864954955328690762438960737296088661087996964313274750329772716891477353401599864268846196624919391711234964171427431499761939844552714224584720134266179126665173978033753573786978518852670392468009816166186321084917872621396607793288851801936775006586651988910476722958871520417261667085739362738926831473623411242054307808306462464550959950136105492705246802543300228645035137538262166487760997130998561408514926851978018770295406853506321971202596261436548024794647238477273209569871626824923805149128522737770744745027975067239539873839268130873441285039876329497338532422997845225597426387084834393056940547417207405301329020759427963331011724993519035659655421966367741579155779797580579518096211252333497724706684802362671537881799945832475163806229371133905564852848522546244184763414035474699532809194125609088608303960076424727351324780568878223894345705037971001917548070661085784283310431137660009486081414127155437565418266570838725845746438524035504566086793646396785100363377431372586521293693269210282303815808800625217928870545525415351037441111742962905858733164091371359961026079790315720470548990793335952401033887728011818648322455356802433881584122144517276086796682031016271810909674445634145977838796554602412089480408890215542203241732118440147874231669225719740806477011378444625462031997500214208696507091926929582889644812093983842759108912364019595440090047025564987941707622623763098123135853764259077409756658791789424505443423433182510388774745688952180333695479708802354657638726863310203065146924680343767510243547310252052152813815859242997004036462297856465290176285287544783017471167046266951096255582197437926920951848439979140575595780290471698122196707419627370466966269570963153677854976971994442083990830706190406694597101045736206116892279764967256152421167246694180461268805951796326504716365507727656139352003499547174272897149074431087989447838859759229357230808435955228159342864700179703016042305579755330523390410666001136828964432417290166191262241971444230000348526237394416586716970482163207333782139269753413084881658537360653685840330617249336476885780104952423813094143045782019597765967966453788718967266521774564826633423002498699124548650051923061586030500002311073187346892849399474292628222043509181321229201460930864907492903499657448036149917778194100124842573639637095875993547048490172583633310753935014296495052109397876784379317153354931435113786395230221082478905097913123835848472215978922950970073619771243743011243943040496968648521108697984520432799253316540397814524458925206502039058618570208440998351629023498586349942548163179843178698683613395243688664275136742911555010450345708665584477407054393328776568377116212391277110960680086709473030326656995845695424246338632158733519599589883936667546693868243012772774207694359335496434117637111295624807236774945364379763673158387804442491729728587284588908889352924041991113227939888880792325733726522506215589261459937168303321810720633873792856009111631903490709974610109378457286489202285618112946800218284836104194142357727166574969437302431743902621949713648216519776228157672527679711292366294807422657699086465553072379745720279484810823968296131326166165841947347676350434880979190414287087921604534636473686370846592863085080034317854163787378860508226947827753331360231602826922908813852186781045094755502105401117769665985144057207798791513490657737047134136531532005548679341822178926350998325612963488240100800035640740338325605645582760633602178617295232287948428835381557874083853514608125181622818418830120027868830440699782517090058758713351554256767034472504880071883903243984016692565970236964762551856076111432056801105816806324430660165939539402048154078197334941313423685370055526914115255894341185609748660075222712940235221139931167556776050738863934255655694178534005379948104600397919175421196265584678352965685984415257652158716351025609442803960352151396033933249376293493466101397782430843392805487088236130034104063233599106678859257816568453610541004939646894982189804485649525025493997232193810055665363846566410383561302149480709703122516554519029437822517865349130239400973274824268930610268576492834659332509540633387598724829333261254025560213136361186624816263120915168366729837253727868083264406543720776203592819654282687169853635535866448422866649297867990645343263895315767371669200941416806257838692252076101461430196113296467456524659727753266617613241809540750393661390201657703828141432383994765938295804467703123508851037122279302698774552603720961415791519533555775868882245901419546810619741531194345485703587555028078645796922376934078730651408422636153640990670393601543237410161621975619387722261778252566292025814344229104526630780952121005327711323753598072270489155860432125519713993008842294583361061238403115973037069959419501947638194813580470715898870901054382037652528543415484650513472496033474105175541238982458059936853101500232440123073228691785443636967724445823053321121459848723559376780954543629879766829420679888340756220102970918989584823280824031345102315809866577685670555075900206972897932382548308995352434752243742198868043208171171811290498429501799998661172097712558466342712682684271741114055564108138383313829266145993300217617117088380234604601499783279938726086310912552445734826369616005519436117128698105532668945846444885261766939902988865586555188113927387039035316906862192100666407701380942094129714114246249637231601746582827379040128217263408242614481569922036095858221566629113743795984356676189260444796762158920532296053275515711624228583083785372995535305709572715044071394193311870724113773682571271929745876350435886317122678397432714623950965768973921441562767175519992745170374809430543643570449427395251403927548404727354420233424271254375940390884900515047961823777312918047642529259751424736328389115793188594140756689401376356589165796276545570984475487957645871805222245487515447135867428696160265216434148050125278926515578507045920436413509543161725671812140204933765907330729319748286621777077079325752965906151155956283530754628382158713523877918750752447166890366390642142172301486354624840497384359589895694201520183425467840974341431058748503561304071349225200080229386407397426570794574082986541520377767625226151236078839756234292985933894049402014978969729658655078883350637799362749824439352706334266205631511576548815649421725111431068964541667084644453457165154055394910704362384047816791810664474016817942673939386738036608084876842889078751182984323116911400834558671622129634836927760828284364975020314186830567770250495577341802940454572878732559907157641146433638219519409673680270998428459042165733092047516619188338091756227151712002789572560059870691073371004421577023895912474956880296250190860457651779366637472478752279568971995720046417375307846381809135663856677323949620024810013794260856456060308297789349011110145154580060605187486947260768892795310966760773723140183511243661860107055583779523541566222245313429814450580419961211589702579696612402168130848619894382146513064773797070092190048781811975441520725385880903846513938994355659627557478864307851156795833203211662543742172448187145905172055109196015180130454423301946450982583547685029238303679034895880646470385288826666064187304597454298527616075626657528486798165444785710432831796763005930985930109062948269181736654261317842371507726258952111311626220083963652493254234430756951499950586133148507040786357419065054465740151207380303116384741386872408029072789815873291116963509847307317203891020409884425325959358544668957136319403890643274252164139520682343465345285348271336952525738497612969231217983302240951842605697804999175874390089677163969293696862162767182229327622470353166565425416527333250914615465302880222143759187939188718728381488310059116352157989554675062701145860486695010077906177467449514758201451275535734138053026732110220390191000371262159686024300458959044225797892328846309288431216162871931243559642796069470870922997194775051810104234309593533856698457512006968803909898842246136957429753700779606396766811720059069366257386159267830484280860568995052692339051255321619535777617775393565913372690350351507936018986276740454619488864276855688595027206605845373715444900336401938206783290715171341811881939443184741385940220381362473647758820858949400111057951058004855820816548132104404726042098192413059337485612493029550422675075645739892038433167066483485574948414372746458777480032206056705819948464617738412138835459433057639730271076410707535226370660920246379874873266635341042950186512845091643742421879922981001173112301284367652240378601578005343866260117301040843899139517308401806959426408390634213889644058718650537114930086372829153421142847164874615501207047874165601695391495709353414846128445738247504007086828576848598701044525580092747812124407350732957732894231797054337923804712038357141503376672609874856007203512089399680835733405550237963540528315291172064544190900952344550322886344766291788895182353449400365995776910604905318814032736162778740060847090554559269555473117916511080110125947432212913120293603981475177945658375131278077134805849904421225573068117019737864521391974241920015296596969008587349209261696417392080281369222669991608979592580541863858801380263268945667820025522648792802071117980159777240583738452098267864251687515104336610664089222058524208459235663723382436427991087972594659026143695829797119839795629854665384615150747313257792245728560757740919650005503803882820294650079471849037770340127211013342529345678966905338132441851515466868813529929412323092501323413925357010596318168923968069856243903290609620268331802054612051912244932189056726132603297498099639777775567217335897496443229370290830086795837921704916044041986096635721922157608371416612141734524477535175775835553735029385060972681792895512613180178049622969546317364139734046595172809204996094577002887239904353581258030426929123798944421516138134842727085676326018741660869193592958325060809834192428438436080657012973218715340381755110426138221717224867618789815707286447605017415025587941569569579377617808317368019125285652204339559616370417245514513401050132075139023601631464319659666370259453196267802324332409550319965179436435226973008650263672372342121437932752083078942164585962575165605292739777233404998623000750769930908432704483740596086730366244785150582292827648390082821004870317780825479782976193920808400016881505607340481537258262680096722210341167936204483001982431274143681267657725981719511724533055388940944678331299976270128534599141048173148781653654910652209532284166717951553841057244094431448761865606904728531840810466971975431626685169969770340223549196453707609365173332915531004988777051480663935249776877843767541068051434077752521344941774114413541363047558002134064769943447063006258509634918407334632805294602559376379769816205584096359222154723017300617594134598507253304561902297473913127843935524640349790530393980359771234813369648025682975004752372585587848095206335366713767380627990932617845710201781137493822601104259688276350545879246668927873793660119642736732792869108991095814735197273644522107262590606278846665192378317364345453329756994213211110804383850686160009146828447481140016875371300618443064839568523710378125382570684866141178433521332632511395840867826084337801308556360212386195787178345928305140035736576637723812079323555063038898935352988905310836434913829408071054847583255065993456033704024237740636162859183825072956317399854606618141827035213952516338734481845776916846573975651818064201205772449758372400905039182671211153508566633352008713112985877658012602638630127592759675196370913990361705839200573146590050476083842789356542163360699400088428811780842381846612801420577459697469385351660912065711941536020410976325685494741887292228768950908501787150531671256039892766171998096614830139797343274532323021687914609281398276411272233917116677046602908185399885997002388433667091050175422740417604328888714325687028621740595211515867464298977719798252300331270478583610479292062671620289569157372285338764372667915204893580950492729163941617344453099285807480075053597048900416063319890765657436276887563298184059319469227381197303497573176642596667298107791929596305764641931888161759261002585046524692579389104575660675513964469526196037441317192051175784821797037690146299084136698543089704365395646864240090822371752449839204437017855837938761986119424340451922854202370111901892755141686955351403855008081068049709301523221992049077864918023957192333780133797881804721759312460843904913110961245053709767820829758952136635114660365580159872377981905875792684753439776826305298575189806442442762903481852654356758896197237425184656253240368771766317283205974021269653843478235702744133478161472620210790135078345238549354599322978239421831532871796297070035268973784193183344831341032566903129943140168418482152647088382650996335131971392668645695639173945215412869295746438238444889208483979822671857666194550338231074626519572643077422380844558544582807583408220499840341932398035617142356015851659847113503335403355761494077594347275254818270426185286655780411018195295754425330717926474426319877942721754491178753969149898211440661802964587244388304158444924820728194368469566751640993737933959985436533792538777651017461888104631905266424085060373092582661784147999014404255445175496819074479105717953076583451255756224495769955811782653722884736040676407804084002920666882123275287500140800162349393063052195229763642501250621681952491674531075797050407829040141211738303529260081323274401040847899671510483699883765139742780983893949232604055587885769489777337548756359693373005482598228899264921645960466409042453551704012315013038511650449288628738291355753275936272347297063080015287645137010942400334812013838564501605177825318026121640154539585677205624114324406388611032619917074204449585749354653636750270781358606417842211349853227093257126297219702890134381589174198485030904109630995099259118149472319010397466082739579929691935883010969749861149940609475456005664985145960994529122183400129508349628452275784356681477050398604485025307821493420102532835110926398563465523608685561090399005216010999345793171469492071097501809954824127159441155539654981421316701533893525514930646975938316135366920120316547338374496403603958381320381904866146197976392397523889765901181826739269064652250181557173224550804428423704587478998635490745708745345238859177135664066761257509914396143454190487785284150119307143426762339447074800215617694535528718197425992040825567086392103817464513282658338231733169781733442701517479072995337197615568776988655717067963206044105799313528393478745273026038359296954934772498556534826816429235153816510397090942270003304143105183911568029571061611299645134017675239557705387965968813616604669193417319059092469892281069093940371981058875020617093323386332249913399706302963091381387692369615246101390517009944567713675105632407375105414094335544106807078156538319800289487542321703098112768835908880137379475987139439387957002880903370848849596185794893026580327688287611287743336693721298270457134981143137678761689737830544846639889098229487145759506546459396002652639782051539171087367345371824493038176542537995817253519041767307516028493123843569551618752266387170237045924953222546039471087262222112503215965621098923976882119017716380397009165644096779226491872509078588717487108271782952898460052937772844077248558473235246051269149925242259322096190448481799360695644557623706118973749943275016330547949469221432038632198634036951766007770901480948596924522106981159348709522966673439377244740645336797440980464703826378078490346054671619856819018948219686610103038332709493074895785273307160158797773432147242829624862547640651625541014298242807564215256463223345005869456589208497545215174052718389292864237775894002169715585193059409499193962807624502572687859091962250877535522769875772739427968555489851423383505320402039435296467806912205282218873849764715082581422631795546739920237114739536252271561996228087397919158345314794617536037937650444772764485490503472798314411644896312854306321863148656230476193048027933082003740035649117968056708026307951790451521111668168418331170664506395878409137592333059796322516509340687532443694422040277641721318163776324418524762007985536580699510911210070757201827903056841544420429045580677164314984810595442641462487600504069999851874968045588849170868526616063365794090838809892084825853464746097289436263780143967882906557044789207255217671895899321880845985732470801588188080916470929552453394955334976772139404528986758577624769562511023134241781719567001883588567464736440963381833974966555794480015990013990152684967875475116468929308662448312310400059754052978012476047483003920948018598080319812431673500040977320724081035159257597788648370807435340403616319486199747949693071940593931754480325889558596707006889881092007377099941398817389939890024524356864844310962100296086899461262025338176933416151048788854370296861007289610242104559675951442207966110695366795953817831771150611526506706465633483553840081237682374232562950155395840099669945060347485777124850415480831170014535614375427816642588377119698817708406435200201328418988418814218171081995247561950214967430451646560717559090090638668654875197434594934055371512327449954534587567859625221645828119133078571402333720440191777978070603053281609991087234640176075738143500447235675291438080772806507640651539099518450356506215073738092057181392571625678270016518299002436628724497441517583833251236881774740729373997988138009062893549435765194114526416660267748241685425250328205232254330012321575647618259517656906928698963868817179752836660092008890473745696902572970438617945043074255483638678164677785790853438331374618414940486884583883323902899655706335805073909559486425288484375259640252722160158286695206342542486805847293719087834509094829424096019987324138846878576555269117800742566346761348338561321807669464872183896303861238815581657481845603870130036697749753946260726221715589329440830845715823615968667430081130161529634304783581584106610243221737443656999737873129001884421270421252980421342644365506973465361396923932938836456430099420660186519193576561420806523545590545454613201289224064489844875181632605159186945955685304027441190172730431131508000694471420229948862854155863899372648611569536395225499503370291937740405592047472677094689885258433041035179394296251589462118043142505008781913843211619880598780882371744118770423073458632595789431474155747280434468457869640238019501691076722097120793328965258860949356856505698743604924921857955994644646551945769521493469902139658434547853493719453314671844390890953005001424936917507489688169836495733709970840114227959799836159662541115876909578834391676800325777186989956224805265989654814139588022938224625379529598292612859800938742769436973884874788496738067478518885625663491302951131771326378150045506039348098736854611259897241036357761179129460171379151621904334168278716712424129635186942866573293787450135419396663319991856265618517004649263908691439002935798613583808071699369796362341972859668465870407693773034036680724551750457810885766509945969559613238299382158585798070969452180462174009323816423897541220289906025245308463141307053622799156338023705688944572879422043689781749323162486896392155097830546606338729594859622438580918364049880126399710569716450059937418676045920394213685107433077485022248319945883333567206240775998122664718559963821173800647323831124982418353789710285807652285909363754215312463856379298130102181934864744311587397880765302613666396729983696521708058283311199181525471483748913536259201975324144738857529010194360337012767134820749620555790156451170000675852439694662565270936076849155241570619276931303069767976566162862731737425092742382406178519393682973801189061687758775835075193227406122767336415502933212228013332767503521807130456395945439756486088927117433004214321581415745079906521553702615916963001159556281373113667010873959540865222871734208922846348693558484809772870968173891969231695147261227764659471934920702304099925292816620621201365807120639413558220670610563705213442317500106878414303742754731890601591611415957430484349309078286587861742681763497104567080430642086307897874135958116306617035767814043281996343207450776099275134585497055375086641126684426787484940299302108921413917025845672553181074614455403070273246592579168106874145731601658016025683415678156522314026343690194704226960357485266382067340878417627569739900383388979895408941422170904588980149782018217717950694308363039871914929640795541878429888438963794147822459481565090318717890037663827828107327852256203688254827180450996605870248588167346675705246349290820807535430493327574958875606703120732674757488793172322807630282545615349616453346708773159601915560528005722715122234196978314598570194607931908688430473227345165225727086048325919761241340795614824524425647342323588205558104409571196517155191321138170151039696509095588571452399193144130524377306818526558962749626905706511238171506188195405460700659864404192916556674575051428088747731146246635784593187541412451006910056835715390801414414220653815996707348556626676844870590507660741702736949725671222508834069300835393598223571464368904864600639381556815752534312553907728083543765132070535903936595979771985627240173488514201319699598034520518518820993009478832953761849250294332271699263562288825109111062840706882747601179714081604040640589721762440237021505526921526693740250081967858370037368765911237413932894546633744792943280813031824055197970305197363268141771152103713211026245670644499855813168031923090488218278831522449696497159208754085296849714942115898733615670245014461515737997285310113839789058182181566766008320706851292690378421198470253946013300824038952971417342298840841063181366731816140528120332395033613893377064076148175819955354120107108161921835387447253061699964180140156369543691519043327197508391620539907618192452360528275983757760740167403554576977358669505034838267752169938063694695880013894690058784190887852677123795103555161106651472701737857907303343285403936366628134887431695443658572271970275687422086317199754227434515672236109549389442725339195243357829621209538603495089949513717884126212339526686446914847160006076109263143176649207702390455412775123415749229608410039970517221898574854778754599827265802111091562486198288749543236805930689996389658774665273557111801376866800243999588760396913331788375894858164424970317631439592254756992057210349978705490448294779022276364161727648257724811416771475686240233991521872734184038108863171217257536431313239681396819879191986784402387081041326590257060423683736756783635670639733460754158962860707266120653994678194055214713420194539090932357933815897749706156747504996256194145627868573172130716542669688904849355110301482829994400345606978896617396071277720597386240647390343856199092208149555146703799075027383453901124793434581528186969210223320088698549342549016687295145329960424205936891988634764409827418555903712663417495140396648939198629331962403345486161927100363521191709494474267769781025252534805199778786424056500198620828469341940597041771550398274615034087920005190870947525896184110370561059086659514120503011532309965091079226040783648650263778263421254389684632320686880683457162581664835136651347874469544424795674897489268387023236145603307555848580219106739515159038466825422387705998665257925116897229469934938710905193713487828014073829523899137563948644133346114052160886579725068202497788324978795596955112351599977459784561847141955624302397638804880847468946056388482283493182895253342742978786839761893370795805898166586272324301154571424197062062545204234449931316872035444372311681895682074487761498082683273326285019096872680894238460869296757166782835253690751985227955443099680590416157405061075198840553972466296881999256137950539641513738679980744903807524433659276434781920072925256643200539361783485948412983467824983520152527642850425146203761346956066904196516127410180394190782740930661061676110730889808046159968222025586145508918216171745925654809162662133850328600404927770080574281177450349500307327667832089000419318392651655898728190155456860740998303201190255569044394066885430608557326973345423416011910128241399136778581616913882425396337108059530189673050369275875020981564050121050673147826651401473670131986458292592059398915697811584388556970197493326947110247039818663865108984517767994511663405737472476610863162507163826121145430732468755242372328494780376380265954834418365317746238362089700589518338602374034201391859969387596770202808672833866832675971800392511340586939314426139233341959239295352991766764512812226478850237629002665140832146933511627585465341617184276464388096049499232985677687364610027245407643869427219580867884958854281760108988241136554862301249567436637966269837039931728896291968607365465171310460524312727142732047540284606548073177420957494702210988989073817170031254663358929408479179209055263547688491167214933113966986872082626425377312022927386080819359872264629623073193117724462147907937760341677767039617693788068257017932396531871588043652096575291627801954630816757760865410434193870297420615030938655591089425571330842891445146802142551278173003118758548689309326420307129114338286377405976496221375296402033061987337979591339769467654071855744818310869903674225291611415521532509553482067785446438074374987992805720973178654186791530345148797444910010825993433650077720481425588154389283715778702362478644076894658271002252194163073572491987296505232987135536268328511138591799028708523399792295458256448983863413553994481757204176315887646416590288804399750710686774900422691653413070512154807884617454884593785288026431196446046711814657820008737687279633206170161349081330332461587615125254387112618033384592187448936509579417105609332418580094652965039061627696652810287653926937246178668151040886922144205110395863638472624619454671178044506128046330658884621136615326846837131150064621508505586584700537077386352745771776088675470384327480378242312390505920772334911030959550808595599748007439482675380224127186055602069545846408025905903348707776193121734685640235111898683395835148277928746151140942938008643665382283656850301612374551495966677591232553401633946594266827797121297156190593603904632567989969131935366394969569870431829493582328856062942002783575640752982660742327077344041017162375068620872250837213601275630144045052771855749913964829070003962889726636128895808682485023291369167883452376337884694195465121625626978480278133779032302306298868302424731892214421535578340973433818925517426212589039016446730405375071798198703264000051490329502971470570157305519290215663131466258007972040969700184106806512666421333258764588239918267348507078931487577890126745775296773914152926854461786468762739790972445959406485403281870733542738290377491518623576410555813045076239395254091704946207793125971060677804704959134169849684577077208077533664402056172289557014445762269973093402543685043549537007745539008539006323605383419157984376236401038867683552197461972543018422051844471971717235521407706574466993241516786824215863552259741392381694781230114363968000755420091329386141911572937321736246056620499829847566928159185158874761412668086287645882753117745060171800340107126552298427032281776633775576279600191497645970247774474149546850922919392598710642305734002641199050882166274218581481236907877772586316181387860747452355529472795730245216136602427193158520986945584309849085692735108443513097102220507339002319029627711643993634913740467010505438024318099643916626400915926583515883516422124151879617834635882686627827062387377610023241599598963788116649274986468443230717028712192281651072899298804004758401793307829162873729793874554853473295325594848296576056394731302693829215168800596919059858640528002923163548829816826815161916630490040542160357611762825488801525011926896083231707638319026886722351911706548742380633022916902274153704507943915385374505752639107478340382930065077494240891517297607495273703391982798816883332772924910637722323039389829527347567982038503859483651083747800111485579444463130692504637993812255743745085940268067745324969413313606146673226311952012147465600220125466036109099637102137981710321087304538853062818997736940411273727879440389573264910480779870792287633781784601589219443962523872066624816656791043256050178105261775206857061237310479082265618118963476900734019381817599698155421996809839708367979342623153626763049860297664643356807865362644652360336433569081772067633148915706062586127571469000443155490152009307498252826451760829951153292697928621139898160558234367718961570147478126440942891374298359300525924640533237032554005038397897922142390992214870735417464969893638636787735302954493430995704181219933451619718519014497011294866936289835316880367170016300000231268737569677268803876084986952666590925882918638551340883726719907533408685113995023414284253102025979226226041719728617315432348132432254319763352218856757712230545170207363563249856199787514535022622070242926687907894418325576535702093933658103495856046190905554141350954678974469093235494094412765615911479568438959930362552554154016896080061998974195633417728534622862869870472627692109425623540027474046725959272644217330852421497883593862199749278728631636473426338175251396129027939358271541454945869829784190794506904446777740659294442158255795194274981622614645764626480976993988295859936734883078663018333778080848790595675528880076860631211672801868039117422048736406220895999155049653037206906207778325019851013901525541476573794832716068949736403120389956590369180251269791137082056684165146333544767257282582502623692129283848217896414101116713333220724885068864008578074969590789766722729163799304125063551176752284265917726635792409999424012662712152076639494793226258488385997354551895977594411860323733246223967669080969734209209710544150749447918065617453941320780361583368843726001942138062703128518633069208006309950260697556057946381086011206431702891849521319929219677362789659620456742116801045728341237538932313482798201833214717010547111219875406256799205384709913904968785068362718261311109190188824666229132425816432111143793873597361822069744164847368872102716218146718503560949293142861045583336471852272420005522628430448955966722847725410178898977356817751126647956230244513435422500908384348004488872826312737610073070833807257996717786809338294930943443185400158656986113931638721662937008170138634840821507910648329798125563796800163340488122103260125029583534805841817651381519848442859313735976106091638140558266493552407075989369733066343788382943549455370768206233116994126560492578377534577071501920879139700377873024471550867185792338691831994303626407741783303959207361317758125838996132026902724472655723623785093551596333832653057999106920853593199482549388728537349341623999676488067204154266022311827224004826642581454790732295534621478418408369514941106242506485086827048993688293651314419478467404737877265845758529808781801019832515264641581095116962189287413023594301688445394558939834803660153485959628733640556488915793623716673249836069244139860666303866980647817183272185418905012947645762025112509303538526805735289502988299929549869933853658938470813461488792549736064786256471571400139264010505794663838907367505877616153668768209348649603843385912417930301102590632659802958117529537596816980810463759837752408480836421459155012004296965269176709711510908411410265467251248834413040999413157009687484396604405533403050962508815610368714773595255034356622101086828298645236855290636540214214889347123992681443574076867405208230258583417791524184410035754474561765157574357143536295608368856915967999352027062208336267710376278863271483784102603008849136156274140920294294487094503577496945919398016864633121105435005054472693211117344879547315118568717355457288532455276855144168936308540292088724697041711960604428054655261984092516319487293634251453970371579122008595653398612259339310143404666394278871969444460870148461559564607718293611002909054850317067407443911841244262794339620511942815960988601716975489995879158398972778545129635909062111254499781824740815463699471599736101934727704644976807073612735498688236747530450517617520826641846448540173734647367621759556647058912518938214344104508908189352143634527026174008217188171372623918260640923333814474640709666837499507557044339983832923894311286216960388404962550468759738041975990663890006295843333405938615256317845388693018389756853780826048701307108768958996060383516451268773709952838034424903274674032227878183804785679814077427039708626629146338595695020564581575616099412878947036126699556137466430229245570008894577977653607425720326854740464780360918500326276781798554957234174251234767038025454566930280815388820299346349061013140870269927058169482485925136671782586929835875715559096627356560957560962772358204957542316095915173365103847557621090232272972932010713492047793397218527642722349595090300982922259791690978018955357771174670282647169029246243346012869856580186936817464681400381907600779951357905568577309716474790511424503459596902061207775425074783976785256802189122271045114837980800142340791677949380179627044018934135346146759776128564676481510589923625416855775641424192961327334416572197221787898737185831968688344321164508352923727903861296889957864302698877949774176845220650675588649852762891058116891007383613601963955921331017030626150249633673969663559545417410381895018873006863058928687297468618427214305953278659659401305944105839604274843201639270768002730850341169162183278799810732197482311598143861575366363173887824400650182020888101704557775132183789277029469676727735532694815820841167148564808818241390233211600935979690301559032480757861445790411029333762374188856877427957519009502078760911932385321990522658381573947792564963260404345411086235983324372086374535684374735158220788697253910003576424717563777402070607274448222743980590063964288345034039121366682365248804464916240456422398643668361000675672196730276733882714738024117645735954822304337152051184707966578135255769899700377070445491362307119935209610012972589284674719860869701566962629980332883445522574261745411869795200955485938385481875850193931812450437566648375563104442738245486416669248195922370989502318866504877589841855393608676935258589916741694591049118673687890178313200685618301219372737977168581771749482321423474029797415780202702922223615786731741343445235686157652555167342777671012380386553292723240728628132914972400275732001841177981429247182732795831541230597051060490734462110237343537021183588686422874216366030684115787186246520199223160832536823844169581513462936190748029665101493008223874978054561690251646212403885660888125456144385791286987634938104910557646961055501102056824651259671598687676186302462022296335522806346986871444269716019533844406661670293608896460611944609510365137683076259560031434253249117504193932519441769707820464125564098223007600342631962699340913133502223461725777656549290980368127727412837485599627709092685468792366263064966683287745057687399678174589598338177937968448841241659763303143241441310686293803372717033761695433813148496636553325263040012908967566978734675658306166370209864284369251857151412942861012516139413866553538671060358588024175011296292721043815223203072036600519181752137843711977285628731458882802447800006131204494450534408522893549490978414776731009094410419081241429041123565276180472529537280273700477629613776465904179526894911459867848797275302236881473989857287001530156654085003730542098328906209149455617238547450216883547832321650344115383656195485134370333609302982442628259914020053131118584205575933892452365556542058992471194961658723726133873996256230258698577432439112886095083502690618731047501116211913645421577868356252627816934256792420036534688051123052294346629087296382131990584986671911271182109091145699746311281240033533282500826198416717929835979491461749945296915594222048487919825962901163977048813641336886956044483593373618237227555129987041672786977849827090269676938272256733119598520561559681710293085270351912900182663034418141299686687839385782973276005186496992513779834604954786694049452040727256391003634940585234819236718492786865516938755891325421992148834115598014853890116673508233756052557125424216686060513635709437348108275438319915102182098516127435190339812054551055841564418456897416551672997060405297048076045193280106957386022267465904477162437995696561747431822467523885500408530840647148578169670486709193956662461448003474599372903517291208284132766770469929263052073153237426636860622345175564175250615574050140009663428416595231113186506722551897702646269287492158487154250841030359869025838131847255667792891738166372962162952194022470902502885793997123086345998093356709390993503267393012501351778667233973876466669350566322440669176658233436562162208424512781452410816466936252022778583704125836303539190436397339235863858005149767773102705959975494608111536088883619230368120725641891269704220251142382320577290316369300322216938245892950696704804824656264390314946169077499467117992178698466357722450434912722201849393956137759847203538255991617459863889148421147925389813433194520802071875732911712034407679405243459113215370082502724589447586301082680780812706014003908838472572795576880826758714648195770996163345045090898359391796879064016793633271028254609704135101757569553828702641286544055541966192828804302234817136684090008337559520810287070697266413113999892624095765477678477693312773355155669242861238827920662878080167033001925601298226614985343251331435816068777189139114598863426665632794552686081903135544352647076046364019061358530816601547414396225699530504193738286415030087985468899183353190936972532192344169682448221449706176176179609406040985460667983988194265074379026226877587710234926002192760526494862110861456708071286185203140998962168963246538250865563032092680243291490866758595555554016098984795116830072393100293368660136277819792235161001612767908376952002128182830662179869189995090225162524148128246583132730990641124016576684111797261902327526217642460963979665690871511078341734924998263348561994275263344365573523581093756328776123608721257167223467329211792639993689592281357189815666876899517555556690521514698646695443788481193914004617733567168368041853495164257576097160525219697966835606106331580566665220573246951616660500249061309973586742416781814056942452233926879141818550231270198644946748186979325187401853536546412887958627740909633127536862894130408529665856441396086615319129168302603169966454386841199741120689948369061001952371935956570872281277226337429705340019897911349088542925147816342299827021583126848472627076397251554798800256037816689544942058842065967500361875937989616619458020360528217041268119152170416948249484281537241259426063682061064053831154268384319526774871418496129069647931402871817605379517346814657597458648611524779111484853422414021171820929236078473904750405813895227432371805716894441152444011853359673242999411364271397052831272574435521346171002113414276062236035275545602626264881295116643699788934683678526651191304387341071107500539497132447318177572808726691431372428295136845440470250753577766875956747414041020291269591501173028631246775733635208306405606471681724973401663223370431703503550433972675149250592989933099820477284331051700465142248082872349694803880071795905577696991428668502330812508739476316566307190561676967226371576233276993856520443332188194177166201826894613897611068433678063956853578893842394527187658344830159479643570376987973451636469887611067630592180640325568526001978255479984612164044319221966476151048014151024865514629456507292542842727780004696355804659909431851301992967728022295622573655928924258349938781246656359350097363870876972366384894317567280279779469409367248794194031157509910813162982681841731872034757862697476471946063782128310192863919094319903772638799841280978225494726581473413203430103573132034341884467021532453960974568038683822726565239597741349665864515230904651826689041145967929329695249040299989539112030002469003105122430424520265394700398829163949422726704300582045938903478664336339997237381713139842120873866721872620060542257475719771266823270468019198019588375149440225241009268437314631736081511560449445963344375361866295156502109941365451609931754642340871658708515409806026296974583140064263392924333575859127205170623523431551578498951199786675958409940287482040019651161871298135251466750589471528331444624403212394501503801575601679558780520436850143937175549775930296606321362386898622272624253398489593214498027217433671840015914433339774974241001494754889799135443874999673658238015195070396334968335383768941514677685638107545107160704185034763172028405943606264737546573958347674593537233551128037283400394344915822467183517437040307383580949195528362482183184074855326147804406638871531090042897966516014952636844428190599858545597908271851558538272620257167625341677948209297542736741939690078279062547186862997617042334114050513678712625578042273867366493799226626971086175877603870626685934058091030640095961491931566842520531348556966517811835555486310401274926986073452524142171015945738162817569349644559664281942379924337540731260063138916937730791843132717797115886535765623127123203778196500733984140487845252963443622363819364710755334124613340196500184470453005717859942872958207731091761270836397728229440732304250821566231097321327838010904650528745244666215289118336440786189368968493133875674723240043589277028549190729149564378894585823488672888627511605991864564669304602091767599163018746455274091826248965951541418391999431631193709198355038408785266252850263607738676609520331637005808395173297394337970255869302404340978375401600568769286295056178723848105343152837486566236879302764492639313274701260457931367414825225646710501339467712253346513376270837658949251642556623045533304520195899698631914247160587203963001262200537213900970219788639748112183858948769781597304382084837202197805415874494303763356333664894738335238067724883360837409620015008797964567033879018667139002256498189782668744550090780789091507108701125795761591965610798977913364255623858819608167094594278542722247220157615299089019490990084682372929379472597906391295981412443387074378354238120218479809900240404226944389484586797074052404773495703186286108175832281579655390013015796955639646644619039455342639287601355417397868808220603123443351168373592263909555644161816661101612603174541402343063901894367919814951609961226059213071949537149670388062363139938917635820885672835869475992054310443415637843688161515998269911578075732011481697014328962762420062123247976527324448886777169379474872493369544458680501018295857748351888162729950525909014152406218091478227995649586968661631439519141832236359470331700774171983088656581810115332935376414823260477518494487197310923720986514764842642301517753450308234729652709050850005670514727398201401760296830215764101283477543116062351831684930969192532159714312575361338241634019955423942113099688370254008890095745908693001112858858785162540428773185164754001366927853539601218376783642257480634395313428699024876708346656251496279300951654121880578018022301188434528740660038099984180038119079988670305720048187032467094839987705281948837657531327582382635132768757525956216904110274894776445852499651134514174255244555028408869323128047317968723798073483197283380593018856674963028091445416150288720002580330492196852880442794556804976248154018810800847103912692085374984883073084681511040885898799051051915740784417083176172417432267131070176488267191965063402740242211660434988138482731338943835971722126493410397085577554844047142980487432644876537783324290168505457784027125436670176362999943083416185806572961896407566312347274573365966666151322010518695448731564287086492275497609490216673134944460061488581590872344688757372938861673466813994168047110694250108868975606921103192329463363633309126053719962123452565768987106985571199173156639592138621306051657427552736509786063059093303443420047839591809887941240656097228499487843326613041411296579553319795949385777340783481692449349374704601557479959855117843446144486655652275921030151499199284153775597737666496321990367634289987744027547774946061915683671134939505638768314714853668258498708035810993218069531097696152906373862932561997188523052573869885890767756788565175329398694760523869922599602735460329849556279747627448698588414562420826283779092529950030770380377220571176237136874090063519019828181049186274214926661470373390563174389927302318998957275075915209167492807571788354327280644300065235447590416795192884486566021848871168639195842741032645521953245225802996185062319108207127008246109467048451250134063265275056108091783895840358196334597870894520604870468263879068822198520756868740795092867993357670966579541959324011749442879765296907991589236315370212458823559350529254971643860105689428167289572968426174791952448926834161487818363166884294641182746274595188967964187414001999698708143104566651103161551696677075445778579220279268661921955715264972594604779274369856339406432564103169547304347976359739636493801525094550398078413035386499357547996301846521110381071185741939099965315936214128930747488073171408356979654166979342380275862997403233534553992517812879582381536318619212349769014095851187750280698606074568556530523975159360581968616687305674303632903138369003777474050629846315522232141460921797844914812821587152514085837847736844492174675851996542155520444417258181764366903190847483338960374975387022825809274210926608822111636296893950182887844344092182696468817169716063003962553325441308108041380990259606596220221087733244791553221732535315379225900181493904179491424600120140217686501339242972185040900373242001993017423957326830338682066290701009453640549076684272333444657195363671298402866934664847899562300937913803796788006086341514414189738952162047050354907756764343702909005252978531408061280963973547394035291031104861074478020336552678792611833812970569800364488108143671866467838342886608743633475954204915668004692766077160152758478174348225040880203527561564796876338034997179712992716495245541973937674583542464915896246858116686144195486943826055011491071026258842716115828512534662304452178886259321853285151264105765786042284625388419969256170982703889569047009038232882307024350951969504408214405808426100557037543972457917634274898159891772240953079659191098161452837589502221977709785896149226816789388888779982654885012076381068109321089942950125544189460127527570436012475193796869343350201518770779190540207612189576710271589391459198540993570398358471053236475547806805886397510493432511360937898769720257861051773437977250121138895241317123813723424595228957815978673800902237810241947208310278001330800846993297273430984671754412204469240599693212524097988808347454469197544089432535828390696983353739230182996753459862795914783756209354518041973838995151595318233860194246747898944855139556296680968204255332910722284687133991656984511708138197620607215604919927554228583282075004501607329089597796917202090383234384444608683785101863197287802384443626598216056564283122840661916108702114377935154997998337014996369298641064221685953530622290778594443587900830453572828280146423381248697713318455545975832889915823539744517077664781351829762334566594829793831353713103995329036354282468492158806421982894541589662242703248428285542428062718739829430506956857901748232521452685229878501330522553811832833040452660374541051337711060463366390558360340727043531419662919183654644652882260459399136923508586411112250109147121695926456973260533237020322172719421923564814251330202179548762890351871073963073204443160761723666947566278900064046073816335079533829621864438865986974940986927708145239513853645547094498865127463329829215285857642413491154111868268658039817936392843436181769612909480277469429623076058249082361174863866560628132298716130188890233768943430321315548097625254533865773670240447616869458727062751559614017271124700688824290381281696447701097404421867456582708966708592016597704144203045546741198437675476459762025228282324949828625963891509816081138176608563720432684337612894900741659205456878451891540901198379149545722719319749700957466460959497909434311802019090734332140028819008901326727557531070658229238140303867905942387491857682015230530352119041966925509575598654143959132615511190638918085066187960721628454276454708355476697265408895561319232199903425463952202937493304214846801991046042420999051713898817834778926831228409536040491189594467926670080595083725126373095317713880362290867695401167734334651043962732721347802998451116930752448286381983396287766774018404242875822446900497804775386011347246377415456458702018509575632921167806850067431665668576299149560508058388851263312368405842232141699066060170582693605640710542355326987544519497933593260180216653667776718489024849890461782113295538172052551835227960085997604389592358104430249711876110339175177793305788679784257413413731171258509223938338229105936633788619371534206204005977176150839652788148165699629476940043763623586217261288964385270466450943471761680895846847853150450093093608876973960657407020836552559891976822770753066557426345294401555221451320316605441646920584453201317365770425491863084534672384354220815449531726574832533335532374096414982390427589639646860209330994231252560556588872805066047343478614098490433226201812105714173669361109035132669869488526387763339553003729369901031834374638803237294811659026403802711057970112755775744657088108405868653490431128974151177975187415632322299659059158382249534077488347445225253448598031904946778864247127994899775975479813136127667627923196340100310427032711172065800370399450177829762536451721939963551467705906730734616778246704477208081874701975062832088390263201887295505992150466777259147916570003885666433830266492846344233133381436951578071504045685264246876240675626036219700036107140699738118537259948723308880483594004286927862131665692897742960248780818030221853685551100570624933390766673994977019980419742274605342071681905564119168492604872365203450548049743020347543773538029825814011520313012964776132114715823962523856317254192530854819829512539211209755428524501406785312020764031967476952507187071201467306609983466053966598667202704121163629695143067339406203446400461792173751226513564841599951042601757710694626637695293467666538800093463112907484693296105739426854735995647578069271849342875094333456119627479085285647450397800182962996800144929202910082230753363562583185497249900731867456466139013893052833216618138848442011281871760377595238345830054631191081965399885858415690339022493811373961307369875753715743372770935023107569992274420916309844764280053171945190998847890201023449536896690524165274831848273103373898915717955608379758901131554394440147270701374609504590971998383801954134481472431198885762598389873857742283482573383934278284297972510359603172247769468004438064607173480763348635042852570044571239505159619083392158803979933585763035034305285288276051265274049115614508626026151254518595558598949321539869364471692387258584728416142478853511545421398279906941090910032732501339789616517154871788812043914790783403990829067885088231123230049068914176436393265909643055414579416881548449895995266181768297545486130542014113243762550705421725494203812636037802559297947981444500579355900291931659057639973747092857752423622230138356263261594357897742090231866442268297814175763268178839734123626175509932980716253679069906777543856947051084080212872497039051940086433466115109049931603017376743398883454163003187000261611126501649728504904952040044508983760096157003080049089482967854924235476499472170508346060071728338364900313961385593717702113132443378820331067759236404785344500754462661168017551805833551729041248871576136263574670198961672738739600575726759175987212179565113366673520490831438674258117025658425034566788820070099978126459218226284300999580876892653241933752780219044061534143700013019619442975224787295052069837555909857323878877442037626214487822530194683925896826134189265656277122074627541603126627197399537755836389592109527437569716314467896306695722788907279309870589293349995954267798857172528660927143670285517789620915964518778525296164711119403794486979037827609842186857379869721325345349218594336547378134984028834507919619167164382475570115544656363992723949069650711625351107396679049992376677603103317758677057578193680776293925802091455580762730297484433199766997107626852342692021887039506419183682504918939637285312872643989505146876822711000385164446422099991958780798331979511378159079040269836063253111047484027174439110641533717394361450124294956850890380611567926219554996166851364634474350353575077995018981042391416409422965652446316847050701061278409367340240207562689770235712112946689240722619261271844220875775756684456955079407837232479510654928729325891990851875775661521930390589352234542067470493275904592705312201106877988451762002222579064304647191001792092398602657802424729089284187613675761138398993779618939010325755848579074285017543145488639186840999670632550735094377205138449449671425108478918771587395064373769627317434949118007189284427088419401080327858756714119441129599039677726437292047155874178983117535785469643139784771632130928549925905315314262429062585375236553006345405357729596097748913009937207739645714332166309837197337534604187289186649345528371913685291712390678106926114732617195983332650440928475128880013403993798753083637150407933390466966861838654624597243279327081393298911143959444836811779918644832534755867538751648668305913318741528105748867750784629445479152883643351461882476476309700290613057339270536712182891243851386122916697432370115038848677103950167324900320969719704655015896164534220584747158051866053910637204560576620271877739649986079933241901374984331333563082017866303023531429500588657735135646799323720024110596242810426927751026541266368252807730057012720689140606856857313663854061316483518486916696654605837275723548702502868421296000789011785336537704449955954816062544254884437159819979361707077118974455855020428286308844766348061925290665230180925302713019083538260962965176334807044176487492009573784587704705732472541581377815574071379020918098728764418514266048237112597468485736596945290577253949025131676813975994950266956253817106659360050835350906229772987837549439576607041423965133908399767937539225820779043430864105588532519665034587181593233715063493292076342960180554373797955350290218323258975794567628921304003679450858119505944005408179289091035813403764422434136924285709921491255459298912462935312826818965685482156007275964464019615682129078835401854571732278328458388994695758576022704857172129904577116337071767106446651955802073117217854984581658900318800333630329913490896133573572098417107702251833915339419638937652055233865444803319566832561206001439824045858253334841602453518077230025381218381529350801692651498267452434233759130847991457923579041741695713979893638549808184198971474455405018465784246446473422122770809724708722715025434998236255172033685334444449066434260130888645334193754254152803677238194950898771862298355118578268758099042574179741267482597579656757982673513384605222325883874406862634577842794651565084316787666928969331837105870312942560186860837361754292970681876409591156319865883449912677966562781816793398560319217360645419272102800811098097850009513839945253022777650774483866147118569752079967344421017307319278330498336928781997121432804650929360344688298744597945367214652323168381364416002651634306854953445683109931906991385394798066657695592013853943739881961014593991135096781468036964219963543446777874203945786863184439503298018463347231029715027706033488200166108659329706454620031004086071135617911405564102844617396115500602231396728207805729163246184056645490934529967831995582386874201663038606062489306503022243106578959240960329028214156800540626448234014716761724424958411617017631204158545938695018411240767412135417670173858317597638980071273061585835390893294952655877157440758566595258265438988711838367402493268368307711734740285913661066988104661772793672039574521075328920296948772020056258193400796325034165539764420437310318894292842039191000349404061794655419716670363688702331209795298968542652500011686405124101736022398816255689353158251056385234161006225561188213013527453680794366306768297989104950553262062418781393405046186349423058764916740982359393962297450611421852491915732660669545672671274886467156865532962560066307279973067614612964550891893626488075331423419880586111477714418107202974704822569218606336315060429535304212764367123864714590767071497986739477296280351712582746509851159362505294301469386300374863202017044638009058135439711298150768246683458442050333711964534068258656646022466464143605400208664121397464853270783702647886510410759105144515420906165212555631944656365201909233827577075788961037517282004685984075980427684705313904421616315643108318307569009037723506753942930476644250674903585928693632154587350830002854779703157162263744326015921628461385032613584881334581349652915618284942399773297239909136736825403580958288783334259519665404931818781331292364537382158417836884832125528446742403301213746966541249392201777928691963237847542207660635307851312388418936210748197226555424160345883653184018233918447593239837464171008968676734911227158356245090759851795942617518245078885709252705228933411583434736686301602851216108486977182554486588057703339810709396727013625564491367575146670439402001088665096755133293105818499833363972787158196465850921038872563050589035038939246799416613797540619302050627492725987185675610946098399855810052604917578435030664785675326483872608493278754779335615051300105021578316297976128002457021136546738242847952604776193446975096531352646149920114125525613933415926256536834157130896179463204640562772457180787824770921784716197243892301136566369708090136341205743963289502814501977742483401872654484298157814424869458251419601544460615815237831206223565255378037305670186156488581687382476994336425939515956313090183937064780138887492683031623906766508537020989198396672528550730072346131175956180113248961623480570750189214043970133465576486068183388674728736347203290301067977732002544780569294615788333715749561365331978219588211798469580903513507995738729247483682412908877307895543534708975993906960219258031929218612846815675098340122242339846034154955989158270232525745592912937740519863414736275831847435131516254642221958239769200808905837466291908212784301376275578032385598414155233855660063122253448973363531032805438299770783892228928074060248618033753342363101505204608759194157770127684866634684190081940713110852140050066084774104676981005566470567496788536085288995797658323430442637046192068552814514136571221634904565665760913660045523610174028770009317081960154530493101039932602893834652654137510088141771244239274899827230709960151629155964761987480241809881000920590653972685166902082981827274054834955118074351627905449747511299188477802109860459488299489924949047252177175042791702618654262346626931091222187737318389368005696379006874150799444696906155681379174836716880689282771846350646157707698694626083744073018104573913876120571955684707295377872669428034167911905503200421563011414842468732738225384624467416146048934544461863246726199511818104009438861364417842065296596948455752261118852763080294814347348388331468815683309076993379488797114376492022960109523250943713355065239108175628336594954528271777235560893482238882985478443293540366489612168619528719824423006715394315896546543848407802387023194456841655847921122018023044121448569692050064615979243932159123304846399878930915564372074493846717232728425282025237448933810524292539996523644661038448059753351590482250085947324797951442766061329075098012636620152088696929875671990817508148175405942530875664522419902686283266216596131280849613167857118718296161286228491139941579158675946589466817993986778300921091469723560132088944393072741319166684562600081571203860561106979078060195974492421497771295981426927541628746094828388077084941458989491032655769518718415414652730874230415309328342019121479766083629825621973072153550477770359119812303389843991880611650195087229676574393332053714296269608965775433540535263605541000273879615231870785147587411554847108019976477383184522454083796183961609462493286135225727486233897360289811411401400559546344129611811858933237389346551870789195038990134278980422430089838299272062850674869621896491987234733245393809480613031479842646962193255782765137834497821464738206541621492219124231073653516490871699722037384261818870585361872704505566456427523289089040614507659989305641625936859676413770803369898204021526850271301310486284456766334527444876114359578327338064798452465110883454746456932697544591560218582781254213434258765287813257877527451275870335838236020413327378584308971337123669674039621493307027255388517168149734493747331840530310040726995678468237463680205828527672317514949423780671197068832605133508959189848119298220221076221543944315114026115500362627101610226731060859443049148643173173170996882046761731656031772802673599375884978273525633854963034784810716007817331642161229125505587616038734684161689017369995624355324669163024836020085347319305817256746777859650727381871360176648882632824693339846249151046591642188298275058201999094536936552980323326959042355688270861551677956909548465734057302437583484225074376432910843063732222005969427788136897577893950605803331253327553050431377290376084371942279533137824595273038193981558070224835799895446102799103847656213839600408396322708353146272384888689965075539041326466778801365234868279386192399475236713582490926229128983058401477032220560077455297867801512586045059882449691917438561407103653838618096204922095993142679003346892920103432083257064983180004931004019624789972222667858494284036896152758826402666281680823028686287447262138018801574655067175212535168489009069238225283785975965349586170003205764010834632101349095627491523167873850657374377772324993110534161361293524546947024930351048989531739141539921297437825075970337592296064350065841816731279289244124709339319903263284386672036544900232488168586494859763173391347224686033701471632345684187049443145151386341639724365647317528747942990565664319809774544348511357972788013944424704078942136946475564330328197030501750189548236589581130964564793398904060933454056873221370614117432887376864660035061985487692646908472123243697272241866237837262991856282183246616187321949423592733687130064276396775872086386315829555081450631488131863062194902985918578550486182354388749759122343176580252367163538095225959158238757977758663211796988571818122314110175400301800039221746568740601853445095667867595302732722480764037657998592327244859738417745533660525494890153882248049083903612929446902112518163118373780836404022672850142257928162555577078382021661548426355646531864934809711429820169105853924785172681690908183590145561932482899189356947830988609038386934257483153012076296359273169260071432257047711633454370466356325998121090505183385579019494101720456584978238844057740126442427173656661958869331215268404947288821039233621438481364052285004429446882850641192312112903191935851863441251830819423049870064779067116966736086920045782805184351132286316575636777597865456497444283566294834869843919043563112542635575947323166605708239380176722830395465775892554436775437982067550567474656407636279810995144618900192090499153579224684299004842830096814700858555716324414640048328458479300146357201618589773412710170275275823389089312919720774033560021522363449201655659657432091741681216411870831210166748703517649861391608743179456250582519839359801141629204958137126265652209641047500684671996412529597901358841961855422429196584791899271285634040815152370307253581047924613017230176199128219861451717714969072168418796177404468190209372308230656029821154630832212308202376065600862948376140573606155952405184861760060993711227156442147927415098797217539139966899025847664420759643648398968969403089914282067591456600610610873667252328265273653943680851151629957430840614162931709352931482106948970962937287303972433748134468909141361803650145207449114097164269126887528031012388077870245344278472723604155200460648278660727420608658081685975818762749439891147738456521983022704012457814289992179350326102625723190973277918479628522234558803715481063401607582915488017666283448884012920756361740221827648671669335372277378544610259772028882142132985422830958285375587677710344913783512522874682172579505441376247124675775274788951635004045543277325752131629922897651439789431368406169123319178928018198088389595666700600156382162802640926917269725377156985211471463137148702799870929492451508607234732676979840141343520256712352201137051324303141359445099182834345479844104898103354731018300928980527124655367932394792589716903273284475093098417042888916136085854945374143779484768338957164553277777126539918248281217320743314291321839682933269224074439631151188424064026717573199374063256864848334400401334982771099951679495441045953517409220452080769288423752069497007730359453497566820787686519118580106670600065529675918313358416095939858814379948537118556222685634370465731494563140655451414700162429715219718364413760256392991531108948671975860373940912288722372930874944624502307115289452248933119681048690872776520869322764120034415782150827162100443614530336373173552598798672041014234198079697039408237579436444725982521908755538487842764867588103452792890114865988218932739501297826684062726555020043401227486984668550575807918855041244928692783582944775571469027499966085548754832897712476085790303214391877677006511410685009370448412444008055487872600262454234083260798376567320804671008447912440318062958012505676365027841208145167769342174229851122594861670114602932255092710056189292064248093060609772267857509348453292486858192911830581311919006527013136628725662558045010444937417563429430887824160751599448957670974755933251453861281746089082792548553015876222925226335998241397061701460471490852002143346217611777937784917386453621753784484212769758385386813337251634400356097268507617037575203113555191817089762293614204729623463472152912531656573426919271818712571595258665251821241146484884123860255715391751117738182436675348190124588045448675042914137676171996096098762291805815521752442654720932209482361541085317421857783666794256079350782428876384694432991509417980220180900634431610513683277215427612059989419420667739643533443298717485659356581872000192100394106368258742593622323008015838307762593447709547875328068303961153734536417287293115283119991937889614449309944001745779754218942779701591080034429647633119394887945702246354184780919238691327682205325444997496862884340418458462650323889818549164192339350785759377676577003441100138621820828271708325641285300932763209090926896896603140322578238756430180241954739650807298391855206801743162463710045553377467071581314026979482166235375105844174570035898627708838825255731070464160192747467022508952537304505391677030668482598942342438936346655253524832772343660003229968119953567124805160228622802232167895106112732891021990378884166038247083912450755663541563491341994395572494673404405246828182281650420984828350669226629396195080780239763990333808106589043002229262228293008959162932126320105579744525079243246718138513537147816706245162073484844930318198170010589167952452026317825305938802446509483699764501879461814549119200031289165440374968082362359128179425789486767498454053851449505103655146370262348122684980423185210387234378427141133842534520260970124795456752381380065615183805765853981503333393391636535575035524014811141383879181330262869730854910530634956612532471022737988261120107408806341825029258285766972931319063178830548107804075999342582193738398003138135257454161476965035057879303164709447189891511999406895770116241254402418209702045933911703636452184571246855463272653783105527566989482354524552379796788781932555671497027895240116110116683043676076240939987973310353422591981530286982343032908632045781980566042407926183518008938328464128809352161721248224394243933328799729345132677769560578603998160998214899843586315826692213333417718625526072596406052765134108427208321725225462270433571661232697528907851013964057268445861239796830587155928123250275205375177543556517296289301632940418830094673525409068872346512558987039404084160854735979370708218015288269383594672586012283660538578628295743208557118325538401532081006461741699769836105165697784153952465964034957586673414094931826678857967025632866383160804207963166901066630738274129847138839417774256714820405823858344383350385630058238268557044343546353897906814841353498928372669646497809729316057297412477991408529592878499738053436583111127656764206832223516951697876890123525673865077602754744540851332578340422387174511148386545658983010548656559306196082351967589153080966553069773098197445174660453594039586457418055718397051030395999458071460210142820329522664107729247056556436056745517981534976780260003929183632464320617406487181669728729435369337848064095883787410215100350616500782430720290023113048720799802017154262265154541160572567469624841074850085257970325932519097376344326706166093938973142085274480714341581009721156628961409935285332048490058142666127584560528290995920996760416243629270717131319809896260475877759394063310669013314947036339795178525404680424047538280135366396608688965963840415821371490762292776389327880744726719247334928365629818936114518125713138124161633458973319456805781257246028533126317726126046045712283388131808609378686789905264770764364951103827012199786019910413767851688663010888219486930333851658879257279484245097951498716496649264231929354350050460097568673913677545327533062686698736145676904624547426050887488790729545313018405595266955410974794773396925295905316233556115633642480710042575165506132510487989856943289689044216743246429931178693459685489447209559453217964801667226078168560579182278514490310621453776501776298094366584376328055819751794774243714484166313952694411302373082173066108560970016317762083995511873950242515959730035874074758746717019759777131218513074739209015876617257294543742955001410511639796264433917537454966606035781647521984995612547206740008228909395283524667973200538550352709003268902717333732813138858878614559755178414909686149867433408113475806355824818070185477046825721647417097879340458958452869732370290228238420254771407537729400831633185166894020672231157293743434836189255720217002597040996528719069022140714038069693443557704248171503608821477204142331171281226682458981462250234540568662480370872548427301888186498451923071565750390830653855480471346575518570078311499107270779546330789887652134587940274934265466926727248635514621944181171742008312621550588837281358330522885750480114323029962708179118418804050753173521653632315257640321711324963958635858555709019525628321048350619769565099760365558201992878432240077950717010255661486271106679977560408968624720358221592757274060983250082740098078273049828626572943467951370401531821274883993931165593913358715773224393195747560656029098328827998262240993187252632256341441912914060736890173884775384287639698821566824002857595371988229045559059627132424118870589951891826352801571997475893868407138974109204748211920850086538172389395109144055484473256517695759408273715246812111718325092162067372046197736582619282230908068079412902026471894862697684715039439256208087868320496906530464689153427905602916294165764827704584357203630422920872206335862028160490692173105867740312621819431496256045838762446953307748871503325752909274398659768411234061286570712547277577673259141534333776191236638605675131422664034724086931152924498897827233984967781564260454203994517708717014027527389691837379088726268121361446094653993044926857889003021031970672784061908038206449001668588670123295362288418388842826167001226097481147454661964705574086559925023724981701001329368464971343651720075215564684850133674303305614879764783725654901320024848313499000842290397523202641309106357024871890840815533239940596455002769223962977828455867873677439029606175147486704282192120810113879900064729646800620946959365699612894780760414786211893458361940500876624253182683934038742131503990598923337858842738753576713956094852073939592742100782671913012781995593455187988982301252614256341125815279986380727337619320210876289969541063319754517760544407222693620972030275277781469336759542331280891185157138084500905971430979990299142965305065328920068939342879369185031387511416959654195189316940723904375872810167032358497095799479617153259834654434149939077025873041274017514461578034439535117784088538877904279757808064829210617904198442522671534860290803873467823962917450021990198286015024281795406818991573919702880592018275363749774815584873049814422725749123566638557576042002648116341514962540568031812600715963496077992348424626159657883596488928610470598576039731540989634298725890113060734735973746519523445657341969761296887216787696773353722276879879581146229104620047584230450270522450420287670669283029968268831881164515621101990916678510501814405715911703093657855371358277033503594399611750821597433599223052715184937907673638448534368183869419154217978604659301815975901750351150192497749923143705721535297328741957714798307357878915307639539899908802158409972729355852947711042083673491097632516866480924502273846458677464660308464616203222020688364606969018741194583173894059508156668570381158887803541588847181467000627054653309441160166139670176919027856312959196493635016305965100488364380171348547305324357889694181581733706433859455886820411081311807161617506749752167820809140833781694252931996655356086793594666667260626287453986029052303971293817876893675280306124625524318222165533199323289281251497009476529166505968095133380368837818522505052451765128820920483536357027262146794295222479637767985461101041651972835691509378830059205136728862908126272785018763518560958758128512897526398447485606571783673671080208226137017413046341757506499910887092195435297802118450887478505901074269043528663087854964388148375273676491966809642335691900833006870505085689343183521246682220156662489614294563457900877577043501128127550826271364731852898013182415998617370078002267470331433114124555942613070988925584434856199364120297558907191457042441823708872879000865975385066734919932617972484585845266399700643105845872522145095332747132459262745268587731724593898221536822524805405989326124066043657440563000871104873042804199346042001249765573059811697282437837260791103133012202107657686465586172553948492998108106092976442196992448454966632393864080680959180670064951626327297811393660054887768715238423421545397587775351624403332485193037090888850540732331794332060240192054914134281964960077793906564416352504431536255843036672462912269302021313746067920682655779184863433152245866246696142583275233281090710086534715952463906873088127144747926361067084033039559106567835473264764725288034129193388171228458969516605849276744038140924650747117155121502337368701747779505070617109373588174039513364544523570991141179432478445715604841063898621766576190694825236068760878668037595799829153168315474547758547632301956862163160953714591174083331571592707634141701536708731159832551493076266026052824203042622733615773543404859889601513579816075160788807883972396819810982303645066745463206423346901490158336503791681541263623132389670915855751324741541431213578743628959317365713800959092347920336109459206936632440036140409295602033102136833444599357439220069722075910040036964486922356332053960642792191715072603285497375871422834953807660871112720861711339874519141588881363702540587882022569709493958183794022584458915741976228515765616044226934873560590655588109975975879101338675076403640721988618371371717938540254658130397020313411367592903583472620281670714998971555557283442019210519497625616092163436402108893854594017664379931285332860779203619451503766776373102477173118059346009944569152261330808946954530604221948545246058732391580983585838715441074500500564743303457571719526321179722693279996021858598215886279150777616886380356887344599506846274350411728181757986412327575119598021697784185189193480575238082218697082203703521051136848985607496849673986163517454751568221869754693247005563477632017508729506376324502733191781764816258875032726570802115894874552267330226641032950564351990662985841509759358862324114023275483313295151766022397434208731823176370336673244801744703099974657320385756716696487434072494518015054892294833737502109172590825097627598524527334809889741255724543648363212767726569910817072975446767062880681908352681268296818045183054880001482667811842012492604839954458999793636459065879122362552562097874355073836911498818323331614231000346829196700224047057011378495009257750415192245804108907092350104082126544418345473117621828203213301124989687947376196401742881666081203771561772798968880842066957407367585365347525285060473707543237940233875671701122180637545831758024889014074966260110235742940865821373396878490320144872559312299060559617163153344444556986853815063643945242517844294844074151254877707597497574853503261449736918346101747980993965734576462384675172363350496303720498133599074944252489319025861695180860755011069782479290147251631116128937518221175486892676113680855502044937064645752397568543241851773182170940925169587511475165063590715321243590093242516804884139898252350804950908454898785988934278155098196374918854559750222073853311811256491482477935079883443229958027821675539677820050090412988289526357962236591300956954287050953742277672732552783049465825929582464599711360038993763833763358172882363862746547661729360302593394817799936173704711227025671584653299173449809960436809647671560933257493216487977447071095089994885812109371316965019232670025616162400212894949805215626477447763057203414985025137009821277131509024447317412596829104127952368527683887278325232252529624466534124252117128956633720101595812718645808947178889403891008771870908012158934392733876798546911225243538337095514022609005667871942309259597110586254730190592971961877494413475628638468354792648546486899494430814930289230175698960192410635907909215930161729481709665932059918944485236678317082485715711140150695430075901561351823922227113594546652473116963488359456810635507814066880147301143871827943311745364535377285112730840007255947934599273646120808805342905943701368095437725406167180892780675219710422488237922923545610152428960435529534334471076149907747540491718186127315117898942321319059927365725597536640863431485440749972242871258449130133823868803616906063395912372114466176518369001565540119713293014936474534396196574351275518250307983261900710086732984561611454763900944200762291725299965344868469594307909666666401883992123788116945263778680184470632014364281513842450927984191888989803756285912853694693886662757741613583495767593515425690168392753651843527562525294640252840909739592330538195372580010949225242055544097279784692578133327161916707100160186190950025375674468476392344600836188617018045879451402890303517872814624342826507320344926455937324409788587147327925838908038352582853699542271131385884918921741442868759893935915811969578172613741219442862811152564882854986222620439582154713240441416444803235938598302173043140725074078993335244419979287795727194208763104574290598048704188872298736285873915559380793694035608793726468442171398899789036215965213396601723534220481711317837328826980626382020112828531077419470791709808482700864300896233169672987185497101465326031790777817946401139294192940041298988136137213181011578021390701765011428861365153247289919635629194012033818954502804238229606146967966164047086411113310694279885173618161312328439745685788928633818652837300854386605052933276181541191297009067572670494847132783208203945485226445004430429713110923262919537330574277517481220996700652791199329413498936181915228523213600121767129548862105690915037338594725870796560740124916436947895683082175551267922672987488585496904022992646761129865559105689606628959481436594685910344396378977052492016934262405160220488361322597335270133143157726591089160114129187208175034214209145268734801783590797542034058967636828962301009501105085490814379363095843150895511315144634547245184525896242440155224998279359995499968460846491056564117031317685853923730147859750605263952424200041145505247767396629981176156752795772702172783651643854078658234242673210237413243781055089616281359877056208240026295316561123475651944686671216041714548542005515506357216511804055936425407832377597592263842217719463379622750193536010267121504348421809504061167797795959941839179848038796049842325636195445177962664076794306310888254596432173732543440100859183388750605644063414607090447253741768623865663208724134039971836210881442376852881995850195464470013261244092247062585741243779867247249914362032658324352749577402686517681700102636007273099127493453291253807419159185757328648570704344554673423476742448229808145309767358925721432165048131612913560589052220112040224856499008629717860701632793788970926667562209725164215573826125172457160994082437437790534962458525518385084759528239011339091624625475929966586504065687490192759254612039103093065588494185953509059824707125506117342054858236904759515399136670110490891205177137215861496438936555636102570090228686348056209137195114818423825432771332140579625990809852930911611139629998970073922240436605458848741080814694776904661218364810659252490613593393011627309568937667550007721473124194843922867614725155046375005418884923044454005223676182029781396236016511459852959540107139492781895111454086348640679437837903027223557313411712318654376976462050436891018756254386739032219131695635072450308205973528482946228559346120032356173086440180698918428920692289606440939430308490675214833683399999967876760918407012758041374165611051791504008106336672890458197387909333702084527698376727886506234133469196455328572292896649025643657884581903124308305100277017692488737126986053922410962584224395270346855055115869859475590709425800145618126401645968081506278401885037911921717193548962691580680920102823772550523567509654253004177592279290315192674433683417447807996716964167621558551964747723702544931980436736864925677159879757955728188397466743100148767525053012579675626317622096163022294457459855368782580755268030565893396457239243802833073284058674885041578753542910722726546934635010162390146326867106464970361986527391665074001974850336065746028746729744991083244032740491625453188253505237598578555232333682599257009088847069592122753175942241637239138013708794777085088915635125454811124966713635174688195727676977436147762499691573124844897974110867270026753258483433380600923792500219924321042518349597927112788110439466265972789880581011935163454400117330776607807229353472154184980700726712568699096132592987811676643560491941769147195733640181795100068423948075625477906620840625259970452321800430053280608675349505593904577313513494467026842675971179933354150473516659301718487654199686210196376142235573093854850619474116690289664682347503901916561771359388823546032004957148171310100431264081953889541174914419422054399730413757903852733966573067798212907088459030071828063889734602872546761214761484041495636416677718585301566241502076301265166159430310701464197569210530655991411414484811579660602705395359925025937074707089908833056681554779995487683899508362697289038330522854087171504703833561271297276069404253089717892893033807758399440567135936285009556570831404720040180316599050599562566100749700382320877569781923342362990759596722959782836119078018347389810131792103898047724230977688374302444717075555908448512378567777052619429572717384977459537127999204219258804452398047206368664500163375514123322402090065567547405311049791806093753513130357555433478370065959157698724761213939715136930652374132299148892203191978556850160783269430598332759720628707308674709853588673354411300970631696474937906151472791708648253302760456825887178228756505910422619200128455276892230187622286949128130960040202602983882122156058291629812311683708648160352518162654876086930306668482855956491347760109351795255296728903980597941567524905861360456440249297747886524632012333417757877848610504115323903149051406824448549733374870952008218264264408883833625562597986129535450997899089339594379520372798999813408423219897735889828812002819215851892662412199707321229220105549308965549019893778055550358819991288495393546067171620464496399363081374425225905536281698056681158998601728591913725216024314699832693520777721025452180351516349014451556231812418582650805412921424329983244035141145781572646069263564553269939046971507291172806368407317782207978999817704685239531133617653718933491716937651481923349281650227404232286138064717845209660580059402019944871046893796502578693825327926243337212240064355326342902241412062944028852297816247814635073405762888530797945392726295319143162132169143836582241221599742421998207689637444490402166669776522994540324063985970238670492389962496875973612460695241901095538955091707436602337070705655054029328405314486159115084647635783395998709671182634233037505948752094508985841258253998862079705874682400084640953477212882772422014021098107752662611353084101984526719213617626604462621872655309972607204266932628660064214632307524051442834551004388080664580112634991126589290684074791703566291675542164370407658509091314259941312293049883957301210313375179997723143575364857606607970480240246132762003268299053798876308528439512330384088374198742081297122189583602474037697395092046099129222474570657697384166752675584890260023461400830728173590252186472336505589905820281288825784198624691803287476964084936696769613544553455261036156829207395955882285933490431917177498524278219304281340794607017387729970741018663362278212362252442719348817025250963229370256608468839675729050819914470046797537431016612663659550818499718998021311196118421172545005108985103202344115717913127351407761400104933398098335114571374016331870110603852537015658625806082692458072726394219862096343437050758536654090438146859515929772901392167152134002701812792936017989403076054454227182462518631352610610191799932682689105605809503929248682732972808925238637082802314150073896382730356693123519009699208914739801923756402219423234924071601061812754503321119813263887011226647187553004517976271694820882733568174095676225562940298930490393210921856617194914287516812690962944452431825325839424709559294584250195473326076758961908559432831291630192449556877697577376048714783519839263005657936979024057360376951808297485087669734277729428452508097603392932771164748053724332699080676177063906798518544081784774885326280300128138818655923832002438370833899758880218317963138621979287705578005427584932685701357385371931602261577711645348160172548383303174922655751865374008927795663246163655941280269066903880382856359347216713011221704642477252997792442848263931353512990060234148140261257553879820771622881734049813834109990256980030630761767237582305328060774035015993423821388364281880135447504813995480436257930971214336034724959340639295883037594450602807897473415942260798075403748917731914435725579571369057891129068107633480422426632801807219510464101091564209123063282825114121048662331981170845590488106976631686776529977963759787946426908702502900448107966134812516051618497475353222485841097480096885957003572137047357234297057481608270773516565138757218962983167739249695044674912696743886928827630612659202972024043570700690985588446432997074652159823630930811770039435104434450744895434624719043875670663044671452498848797876552092442185872686647986520416193441966662110246273038485451453227974241167961450567373281549370140255166140620703461590245857223279948340457867478242574314800875525602605810565447455391160328072684880046444874963152048751101570201439425609209013314448900543729628304253591616914620280037903840588421255953866725601422454264967512768921137299018969562713126380669034160229058912232172659510080277464043307567049921137287606309264714466732316652279890231019497457044247260124713691499948189352788331843323204973598237284282662774647102439850948932897089351228841994575855592579054755831292341677188930343789656390526292929762584043596002235599160680341580844961091302716345699263948460692476111956608647037861665178557488091934059030137186257452733088138759844840333767979044614019002652376077162696480972990559390186935567385956964288606339050230013508302970827950165029367976667538142896481336908983824388632926311685859880023572019911965253609842567788268781462543241385577433979929206145604112273101846081801283415280477033039256364471914310975201951004162739240207411335281127181715455924812985848675299215594234141277430077091138576882731481616056800948106760188031428412847660588528635915333828246883813331576412105555023208117227338392709466659344291799469854008257694634443241620080170877810664883494757979578630574192815048229737783625521354678257347619433958426259407747183978605177289861153124852959862498439617477249921642089748852803328728754376741828531579363862245329410727292032921475461325213645351363637051723126189120551946580607103287075810424780324591009176515518757141033494771411924843905739939513371829045482679736877547019643689850861865558396101798078455751703866151717401929910654987943429992338692725166667953887819384443236953505970491577207981473420790577561981368944108864716672732223926358969828272471298775657465448149125754112563978034478151499086015351526425918748351781351095917551787548010568595086856465855148615954295395872028963752510246299157871988007577294731987553036003489836482200816351301117137577954415767978410312782976811735573869906520866877648839762913530246855043680682590217776355424795016986192288170291200949882720383533419030680470103834882564087817103759061194982194636743710317656751616241274043052546064006515328133634310151820498808786686304266644514654847466409622637294142164084893169363388980418898798116113174311638046131690491871618558113243436554437567263201306808109661066593529252377999743251918337797068255307051216388725943933167679639071478614156964480725746178301256796491236735527739976636491456522202910400095726697322076959913061949204348086163096967380395033917388178052493701264699803126494590562946253630806245039461358571001724695285064511110510910548074128078433183016522397364412149595290105965656746219325393723427794625459700613845899343656106845867832802781512150724431481686775523132159215425917370372869071848917665539508167831500785406625287800075719387835128194132428894780541088754579477459084342233727008664506191391773790816708012014228411390536595393971451403120980539856833022312138242074653749751936591571316738420502319863093829739879312346412685180511585630557734352558919390870354484290277444362123646091076515423327700252267712590709756727291736313757946227548818556719414677117018684022849148294179433506070407432832069421437067581707462210320092375726410654009109974821483847819405715962711619150785913956366154708604570805952299177730525259604506621386849734752678053987426182268114383294126781703263029923037031692495811823482633623058647641725170026941999015513527993905896479622996538403987351470685877042062417875139340932976570017085993546458349340592156729464871126282773290786039728933321250383050036154966563173809916695995094435847461277644175284274998596483519625185309007285057263109885966299731091229759921138173194526946116186244153338636215263755708271814692680587127747220404811265211620074999536197606324250864289950727277774403134532463984026481619046755564613760815337663310084809912504575002574549024240687663342910896109220785010716792270787500322164466479574952754236743730764032190197486034098323185224862525731368879863628873867490633197784531190377518124501176168252623959136137439936907208457827507635034607094218620192182467190770364634396789863317056772476999587740597411645830730787395991891913838347853094939148062528232498769746665266252715660320200797306758736354519051041865274547894162077568102409769392861417491109068759124397415585335044596535752617636669675399443938619689006111847001865300905047438885187942884190129816239535745440785761731699162089311153830492884713529123176212939914671574003634642447397203417386912666903657845891860759146080382420809307291309757833812479540032729200308014065804764268371056175941687687192877329594843804866384868924925053685560090007512146424251563913861937412174912261605089821516812391531293482569490343850844447239307918013142568372881907056402041404162015926997697309744093704487352490425664537983931921950568341822528932511971146232420720868856713803115279196234147072890598123199780480343695570866001663152829351880179059230241888297256735899063721252104872717620816657742638853970012743899911499586539686543394266508259461844509331949911355963030610809733937007224017749354703053318826688123965899965251819191025049792787127249036536561827744824704894619660929894306594294496150572885013739554258569225654326835247756810470068967389950831627104084647634524130222993323736331747050641430541439048304150372901524838633505486863303856306708142407078137952861375711471000552380920753753223779704769804191726023348566750083458326606609939026922830062131935624469254012646336186324817053721259386620774489931146572484508213298680718116840307920977171134270988804249618022061100262705681886315590492862865111451477248565144290825159022950782263634684989093147529134610771928807880348283368712099315818490272475690459714023037215740810170325168119935253556137808041923153969503129546136372768044022243063809773058449359755151168840849650628120172657439745436227692746628858740264215178356792960096723878986995127012017243149292835112621007612871916331434163097096310004579687810422636619211663306189828166055073184875093656288687199720855904840939224524440432787119549796642202690301480862589657326479565571646345834276614050490070112150384138596947008138471703749931657353280374197636614078384066439720443277771515384123649614668453351251505583100986231769285410037731468709122607281526395624119506980499746143861129758114917115597286985282374102432464595234204188488890338355356918172766062495163418405433664842738608508049211478368074067442088620737779310250714321359553809375057103073795356155641064453914261116150491525968211133487210912820202392914284521775525621754962033346147228472705000390813361033265187928700615512230350404515085058036375086313821088158922532491372930008368465085086277221062882152703008968133813502154145346199731738491394886278533256869066217769995920001361087433532153374996927220299249605831832094612281493666334658517783407363897877205742880856975963771583036395370311618891772610320124427999264187350234964552485919191370927819964237355555358326322234700784812035065666417056178204791993459080362977182780902396625876411472117370319387363955247738818534079501399628366996556268146831234206233867438293132376260779115785899668333387491679273138460660993980019837780965155469668005981731393977212284411034406817014848182964595716194532206021372094990187137579658602267923442665821273832003180729438111315884115348290357476480422844598864175121561447494409592241561510483688127424694893574783939606089654403071357655927465567768841769767277309661612203272902873460003669800366053616603672706657437553657331961742799705512048474300866506505820600308848614642067168030723322841165861013929908679759975878052621756320318815399773967265212095908270104642880741219874309068341567162542397964686634877274178278896205095677910341774579804822536466719123107249686855058747690637449678786659616884986365953276853307425209875180114525847332019113040440502676536221247554085147700048304905014201704870151876937096515062105372177507516219118660304573015792523267398258075433483049809969350542503657305172392325013750072391503193593578259105176151460228582158297812262361624266292953728239653590072481328280483736858944223666187526564200124691634930004002306133881176165194141400553768570030515195662014160029671654307953092687553862248800593751475331034781918393083798407840568227474940022002983279877441087565880014114548495441571891325836066236758811835128995483680289900259109374239951224755910876911319035777244046701520136042931272615824534618514686987127978929367228134816450957015477318243918192698656696752285794997308445086959055634320064449492531015202417229997635084584410925136837458891050953238520114310512996203051371955625638224654146059757944034067929346119328847007243569084329684503119154992656690617043077303139195058662934469813995643429611121539073841208615758738915236036558162222858113850809633881865942979279056067674720823764808210760007663630196160988434875577262049367078651844719233291738658428809881064143927383645467325086258005707382123638522852216909326033046198696283034790106078580398790715869264377407491831657070078858311676427309982362394178855034717771852779192497173759209791077082280102647865978154672361039431473112210166769360781378061730672800194759643312436404036292602418213917413281995781556462115282319120414121754679242121467241316551862012615443932238565403942151311815284927362899832803434035343612325018136754796334744322291637531150342844517764964605022294677571948269843410333727870409502589217311781216312411384528237385165070554323953825654904586623949227846369022504793915030964288094978501412557159109154849373612904611395098055231759402008568028152982711482920766270111272384516951389201713342621378236479665124648463016740737258544118359972445979986778598873001308063856645446685643287569417565045062348547287956674136750919148786946553580406747150350075740888137757254190579201687605664439048909463112220177655849301619206536242643534643099647010874976219180751170909940159430087462340952726672453582732906134396676841361341006092412557969770517667092883632681506144905628733733680403258287897164975174070196497692288325794891954447403072595818145160700549400077788969651935746106400594885426895743516116933191120557498165409621320253546540362937197985891499329438263348563304485850624749329012381483004138859509001577820401903964266203656975804611865872802124226628566779061264918292049126430947486360795481400135996459910045262286338714201867384448961139619494442564765056059613778832275065941659166116134847720202763167830105738541931072613627989559651447749291055451052410194659645806193118411385009724633217778047234051971693024030075419223055899381849334975106056493564993701524025275785470161747996541161601868884572272122996641718037318012869551756149956267716549340755052466053797791245316208610990750670471103401556591685084742657576044401048365316660528192894158501639372035519842702625747665442756839830190905750651434466617343434340615975935741745339311637611608404060300269851182961977012292299283044749844691516891441350690508705797340110423068583413521859370752392005617982158110390945398737779715237367102800024608285564471450750737225954226676003360118698379656827967814913314022987630438426011486918396861523703170845197853745646019577421390502564026059284632314985834253017488982436525520320597967487620203360468432184407327113968674283878976678470443217614248310683219791313084135850072331265261456829322092362628832661380742258595249094249106103755719253135121595594377401019128064947918278932515578783559209930313204568849338932200216091396449630880646572761823733871345489031066753742082363413490523194660484233323077096145843770678991579380298745086086508586160124228622380277057392593929837177613834299588494615030895339724376458235629616713306670713441411436054508200162325041731137661588113607442618013748953959874932602782049796329383788451261767499030216894719523761607149201868279846842488851571249962803259762787801938265899465550589896177311582839737837378454700222688044186746105820946721660559109043342691740425884448019365000287370742611869887951069153183945385140260782363575442495200338210899125508026694341813370753338011710417123133548039777330318598975496165157652886981270491194954079580953012874863976537954451928946685476298761245812296018881152607733856490430993759276343150163245669488131468272536123680793855233810492481602443051554022462389091867569356135623603713238982080766184802665485220155931801129582422184005016041451207015937498891256776998262987265017687571829241642554496398994538711444131086082133653652864722022959723004206067813531161902891616785821130848710109173977427731477190057618274824675036113662538548097283199727372772566285132039112088380360252271313918914444826441073437062356797902385285432360027100905369078440893518711694058078156704973752740919328347569168560641779422625818308255561077259334745597846445594299786766810885127026925088750998317584197157097128484435896072451439861267492600457449967520106195967760479574174907004046803207635747202140372006527676827364349223708062847698140067336735526034095619578428727251320258098793839253158343568304401592547407212484155170718385494417534725276333973559319616146701691820181502871599426128639625503714465861093751035238623044444753759162305952854129833911704080527419059819512012654158499942407627616569714866947739090334803844472478061998273264524748559765118730618825610192076446232688337620514685644816971613551799582392768758703562544172338565232807517980007142479303510227410820753987481242883951339755598372673375073419410906491607006820626658320355394930894515376496111157099416597767271840365726255254412304332194012932345215972931630191959108573386282960252016114413536998274094696927631515056078753708784789642045164814664825088446954235292868022668622135683629841017593439460799506637228234212909595699219564641238299968964556659541079843944215706575298854329182606981778155560390223671120355019768806244476091270370389811587955700898285433843538925791339546344295804334050199320268609528654581208631031926052470227851992327571855478906256124132267826616845726621212383125390891326350034611977418799163273509347743789407984338738290379143045212445228963166170804849192130951048272789335275545775463505929869021224075413362022813613614930865426452325404951219145426619741172544801335195391047704345134244702860737148172012523053626486199925070612347286249486341203111789046667957581930019414561798063711122897536343572318572282217949119488975227648757255665883504649294316358415716724991713434675215332540645348594242414908446268879638156396481113331606896054274244525949606220961739902928928012729788345261800945529607480390452856029916921534257157999457551668946909821255525813546850644859725211206277356841779697546524882283219490263366299742159811085291906319645488667317771399515637978228682762350258043997103617975079118584189335627484247021525188782628239949935080643334356664147893258396488669841563761634710515772278507384966872670665405167445504800538655588173998674969285318089639579761708123799744572351168657259837429748206895050671424705234561344423197993002597695173012664080947760916523246943448168037580537522849682058919005920914752703140423793169244422658247309994107793586507702901004312856489638292297333232619755106802299723110215559082595453350584928594454098598589450712358851890095018216358263666830609619640882474125379853363125888096808198249691709903701573845532327426454918325261041509699151487888260305006680940644954005367031623504182846654087662458109692169439570056368950634085380349312368070111582020223333599311197641050277788164280748993881530128558342764713421460884603969782760585794002420210081536739483536533894038945265860209670542176438184309775490636353016239432641204403887994341008219461250367056630132202759998677346921202087321267098227595454072936706289156024033506709331839929695912023139411252779495505958578684617156838274283673596916154374330685621128645745444162499657283326096939785278026636317722422482721597932338952815836889963279093986167388826992127628494883391587528821049345487503698785288379378346678287760902025440611165326666977913322128383380832773450701673585562999477738267778238033523756187671021160367361092127134607569512036864596492095410066711432469836079455108518037625556279773517718593154353821491340756598014394207611554780100492587748142564330996861688939027655205367029209146586522278186149754890951097531662262574044237766501834365056113703555043365211338285845233722117187698927531995875937557461837354324662201957473832067530018674106601973848362107768157822665679044434949661749941067721122461569459169465259722765211715153462406347440475908053979006180945653750665952659095685124230392503247660084563859824950557238515955524279794051206736964683728220873537490339441429686240198613757337547353357214265956841578694949964904416657848921902005313599954448047666736720329674079740495828186051473830227421991729528977769123324561796982178690571153953468440006083515513374867339785248411281202727526527242383212188079000790036953675947801365492567417034867359076634376052452555262848244947809891396925229232687261561475014281708528678061311714527349937184965959900592807930741069497878256119654786438256729206033045450992091652572345608259458032343857125434279612358223947873750835278875069135241597087326869725328678611132782032803999659749045900602431161197821588439345652818860888263386818336590498046495532597833452353355109720952190413960628993326983486786618513786239995368362748969793438001337508619612403683993936306094126341638482306461036331965473597062424521279855133345235359761600183092875856510193167163927993310110383246959175937123125332660924432896871712956992616700054704662791315823695870038998552203303789570048893234130384624022867488287074368819171277633784358901115586248253604972717547960466736242995646744693401298332492062515563862099701847562531019366608938830517082033029055947135756362457262119110658717563466605583667695875921052287759107788995387008727843757607376312316561026366215583996895245581827932959260756105353556670766203698524856055252964478434756306699532945303291100159466004983042758358302097604526541558746216677153172864485674148541647973624352647229173080869898417400192938596377020797405793555434706936156549668593127128880663742125174180436545898745865124383123148397546135937602989817689447306616549904641815649134777414998254102412066495518939985593707552746158911180490983302100387088840637413774401911657256213989367753067281528404586247808690731265529512367509607678455528020992250939662384039584632309991580623488549998938945446908122145630757970305852657917166284515023468099990903397240742287611195110918748304229599376456292291116835004449916848007968550974193511877818324962471923057461026663816393298341689092944503142489653707202025202527499429234891814485396411936447190406500847765472918674170805452588446650212733736396462505667825728314033959691037533863289982303692030862972092026241747705784892428707199772557796602101491356221916610614314268161545805785761226412261767111829678981069802788098924894856142302071693782756612950094499399584102440019945377156719681034399801362736456897556387433341519643174226879412145136171024078172739487750837005138679751364883676168088581953523401432628686983473984031986891742413524009967111697410809766400475578357917796272548030310106618924480494379987999430972389891324939263056884307465258451036678322357567693330740800236686414226737887055254187609680398789374758697805942982871414830579762161449711792989437433139813698494024158348967428266436870957892885981800763117792143023553554419002547513741744381383888234205480852517878890873825144249138139168900076277722587272175759300675710235602218101873613937280588715322101989159363510303720529193361557439977980779133404753374434732624372535557860985349681275020224244791085131616913523972615614050038206398534007704469313660405224510186553246202380934619394644626390331590065121078744276588347404735967361840231842378086810832525868997816052039909700400445421899672770958745422286765540151251740267926120849048151070544852983559459497689728276924574240258964881626172882845194460508640962991720047689399398178298984075057039104631996138033620628640502215057527777201497320569940638415408997464503784443180596734797263798153177097616852723495875105865504341563309228323891814144172180098510651211660716901934114691978513680227736930135610590539114007636378601193893758945627624608799237243939145464894859691292836504454912671749828336680533123270219748406595833188448505488444006215572290537036374354659444503616956466236644800886672845407270482274144707117686578325450124402527663494084623268959269440710379707527282146487352634097538432300454529667611846055530803990505219796539960585523216502163915384222097511512331504414556036330023631901056223952378545893539474493934748255344102039760605354934788788295262541924503578977995284152665745585755537044180270235833410888963314306499730741291608938804574078933543176625974728756336611597797663855456004738711004217781105494066764668107532473149964538739925770608968081428352258591052197889382414307453718862995889920710030480966569008827607183194676554779196502225468577776574483484895357334177918315531382439855360219897906386000611066928601658686281568595132118312489043444871384420807085257951814627966829717637029187407171150418622032784368042784113723916162496638617154395319560513432778140692888793014816452006149285620388261987651937271783882085572657672216904848842109021123168686911223258419081650389321810829360305440713325690398907481723128494782273820375229489108574953115991910271780717990844869274814610462964050270071541380840995614169018630367429504266530086215378496531106342984642741385154658511247521523272560600948319631275147046137806946653069831725960527720378648114936986983982265193867378937795040597767579853498596068071504150535836080385771042169460776563896487141064831046290637314590809085935299977545633946777045110150901204149094348126580339437695810088407658200315777672939502261306153964970022324383008304282130468742990491332780946504130531267056083267228502136058784892235551168479197309324510764284799931022583446996128750333342395424427088348625200496380557515807678278372374093607854459994542503413359048268571226341195203342990993801043273398973460465594524927766983738833583546139278220905579470541633445031825823898836329453401790122113114344504349200939042991529906143605171024791280715674546523223254327608963814844681725641941768387863824027330275018339761566628716727258513121874801220074545398326157973688304117148309617060683591017650558740438437854861457748618238501848892912023149053616771679811129512363851352480374315550339790502131611787062387595246313090371061360260040900719703325022192508137188403437574196557904352220399332713145554323325892618883214904575806632791860552243017834231314514554985582640698720080077960451382125626120291902988434826056957239212209388092784170257790072653802044903248369686852040593314308450570333711231687016276451442873790183304086861128330557216244693640503138113756132611356181253215222462807617899657307763091631101961497155687492483031934905545033338665483539794795827711834786279950287628065587807667433705544317350726496853070463927496511761823680096261960178873318601056444577951947811981301671117390397370269865035579323655990357619662389405697082854619515787426098640061485239727683765754495872875896506141370534123710458864557929954267106705322391630518567950868197523548349775847661244862239613096476450309997350701939980488055244258320902898021602168595795393334415768849039389322500902847775666885441046658214016961354671307484922904955314405034425595372710070187434255202330833748823209920736255231538678587538360482975726336268818319484806526469808783540842972532559840074334379848490483069183414291894050515362782854134245816304069011415083163383739589908207199639950308300337186245932941260256829567308652798637797815359061919443831004017984460530642221916736310883550647229331410764600493599014289942622306039164478756029109004402959975065095273326624586960885254583153680734068002076668499026433477678949034318714950581138776101632398718552957104378827711231471280003521381084852349625489397397207403839620286933560081988231045049767208211744805541654834972399257569529968617132618750233784184097197699153090554504634814726009610193108643391895529224281073425723763148100563803400703965313700087995841660661226795589311371888041762284127480815926471096580578115484492270220592254896418938459319707039086900016272762902248923797793202004709711360503076404344085024993388228349825189427679346166060740994062694458958106077057641293052164066121348047821418629783924291088953600367067341241663779035423726479394818854393538549746031708543590361953199839176508250672210366412786529319050727547268452395517341735261068693693914139604226821515085500195719681709489406698966421234442691043635461984630690031724755382193234634032590562398155191932216501913258664068346506916044110702924856435534424314677932930681331314261222151553660627497964019921058042387261787013074897886108181165125176046615113877083638940166989894444362131000456173491695983708506534174839006561247122534399307921320780200329224712401727093603496007974171953248710028903059529574915110478370571724265689292080088566083411200342779384685315530694094019512364352682017720946256391803429026413156787934694042485480530517283434957772619565706341708279954665400872470673578563594275350712612912200937937550770871526548358781750533017380903575669497828741136490971089867354847113082021009521306851709814101293709834807543255461097716466507101528349703646165050916775082477372793455083436516144526417419791686210339445081328682206006736209822099463936969181844636833698097707300612664044596738008469659666336203942687490399894621140576435576145220087772566305237557331790040585353398103100298173288699274516253813529950513762913409401761883512794289732344748826714839955071430191094719674700944462622568021988088394484139621882285942255209618229649003489299540900880670762887889596602626735824119479723893064628141375017098292039402625103691720838825332155882592255315256998882340172365117204601836606779132749014512941889835542349061885104928156967489335055736333754875842552857208929214091105691752295529887175405592449081175913573269913651153415919966941299402647228048224555717031969387861251031881916220254123131561645852663709796555648031677379232668468826568462339083711217672655975936889194141978676017697159316885857949334503768381397380913841988550267430039182351130012775327834870962611627473994721844897348276448208136389708902927320395565280676862525334807165610399058638805409211884340921752947573096413654887527341840150813569945230003382592467249054331665937887456697077967393592888626722091488827023005045730050934574371099814993222702526316525287806198183321502138229612303965895807501714427634568502455075188326791843189490290039996535585693515714605616674300255426456683105874740869849600203859478292271002954286379855100209499102413166154132251800254656741570297233647764837570953925799276096110405015726140107963192469287339763646809100359616034155244462872846797754271685375382703005786093235976600657320646174075258785957395571239893044188816214645576066682124940998940744510190338303179629639905108212463944374500346963026169933482615155791047222679529341819030561830467747573879716933355262864325584272307836912829364286510640480044495154570961813026313476893905550088287084959754391690696819567638436174146488758247645909069568269595406165444972030671417065504052689526594330302473117593975387132946631908198090534325060997658770823875102726522341186529388498365186733303823744533674770504091503182529234345180459324997967776863117569670295516769643005098646783800267816701409003378179102463826807535716574204284577831513259569224309719133989238582220589412298653164560067353237057454589290140621414570171645759828243589945433652515285735022249751340816537283980500858008827642337743012611584701209928014331781795705870606403048230419932037486814540546266836225246772051493748692800500407064601385474453569359634926772928542849149879825795396605408548089766658052678965305686967602399047893834974867033414709977730982418945186918384449118647432586256309895949461629266787087026627491359952746760236186051885052732197890477794246165509577432312833231606221256675941158097524999861742874946150248763989794335551244395712152760776316550556705572983790116646904179700328058968051973505042312677635156914890200537457707678812392982093236892472342184220338421635379834716005584921650844085047164192134058690829468678895032724775117287430767981926950119593538156905209107038654531736432063692714707516145750361320494267254287660455317213676301791091432625733078180030612856705839519177983527763269484691642279220112051281575372682747790514427269349252125079517827820960435150394124749113929619636369876732635657977857885562014276753925221034598615825101290012657023952126020690448411638507070899851482662969716020319551446002342409700148690209260610461159240793620310477482011817160862069556449268929705485234110703939864244354047512153477134020282644082832449579721624580314974686233432422197914549805438242557409921636832285814076155749784673083043967465670024270254932034361311824314041659468719215068954623758280911966955534084963435119639747791908035941947989955286053016866009908092625794987386865296127263758549824638487635662058135490195764478948261151737578603017847520901949370663774404355575335210591845702204524326577688628476298508721822275141268833159665446261388137891330443537514089615205578720776800723428640270023585161192467083011541428096172887942651714480082706533438492734639470989680621858734241333822774140008791946692255565532189920289487989849783264706132719027750310224307253960180625105217601881408437515426717246302630517821242733696721306327029295115528576636403584677752973657575621554400313112200401460191727948127924996060766495375941925222366580780415269136901233559090474910090672087270928748597549012150416110948217681114093984639664103809807945878812311475128754957747412136091645878189453687332271392743360519836460283091390068211349332467842872902822259309492002000795394363698918351379912709909519287453242755862677936584595473993919445236230928302485087013318244404936760709016384928434835789986136514815189368981339484193468134268131746576943145342672074793240349762301354789849447163003917743129900878611170719660046782035609472227322698854175767248382970508840827943826296159848405453639101971651289684544874663465371806399496114078712511580394627024991467935602375560996369481637468868884812129605798980698110505751075762680978878760333714037840027940165834397494506161067462850523532567727507097445451479335512261012869888655296854003030752809853783069416773344540744175912122081151860337858046577671441928483898474657477278818262317014673975790827065258357808339118280191441039803596972533723456182480462048319056965021413040698233304037063021606890551506819028820323868944246511745791289612594079412115799724417684092585833910686772699187884589401578416998862809191510806332404097825455425234395262345379549763380828780368421637241744139255162970634406750504985584298447684947868267469277742126714849115868233975794456151276880802699834484403218540877242351972856794704661247470341526870741457748388352400987210304323593426570162889003038503802482901714170273375036997302889698296846916483402110613461031648024395494115045088052519335080026340382812824537569169650728655499425178173211821559829914940618708405161720064678633785127132226768516227863145213018797901724358596103829196764937630235527862863046438349041831241542731454930306788533195450181626780663300922535948954891020092357980222108237733618508392593918285637523592567402616906618607014701431081798682339511807920260521323882891905694044931132903343698500410803656261555322892765331374012241617693330121414698534112885992803614877091230974525917697673699959553194427289061163593824200279721212641192566455084965979033640484396543487113836765700798423005159879311565572689099241341007337122652966811823092162546629924849528991295905663704835527003128680750049807053627606315291487011476766305476779856947130287352132074773032564418213046621210518085571090972960208883589842726897590783455377687209073554448582921655853807258099877515082671394661563506380654455212374708848226170041948313081395334904167453568928043240323632861698568240406514553635383125857022999744203575941859419313175322344609445859793632449267602886583008839291400099630020539679341052772265127268388702506390272371251584728374428735276621436392339094748096085715158406798756367637896178721736644287508971607256715174873918010475507200821107291269322323866098396626996602979264219273332328725955718273538658579908441334981267189138978029261530875627675121322232742568750202482231217557997173058488649638758135005933303904579542101598033931025304094610618266979087547487345094597134549988213111172121183528828452367958996339669437747156048804876737344310948101700396772649392118330359784489529855018363324525520559086196876510112057830259334397754230036508295363778393331810614244929681534636013464886971831145440785554245485558307197562323505997538668307552297242112602762852483960217807398553816414786448960104984416155330203704347585545800814423493610324400731230593126240509749847553205741069579449898384435046505489284118023936376504160846318981573510149057936174456136143786935036202661490288057277973963787122192601166156096236025079342715887741219254288777373033591275122702960135210514162794197972247991597861357269428680033242507984208506723965668152397482452745413855418995678491146997769452167411242636825488680522248646103688795137156270072142936195636710225399407993390800646326364206867211980828613099547999899338094880710688807491960450097115098075052989322759096005093389729006474564439108084314877737348077348770224133755423502833426612744289576388891855012050408655442803972158240023281901861276486393749317654233271149986235098939351679374175456257722220980073847473097597090029722478457058881665077030712414310233944020206964987595753065565079188442877076754725096681443585145422905795000789400594680813758340874856073685527091281190458090726822387615932716910908195926975548195685743098464370288164868191024404786771224007462322645879803526015693127025891091646115980531877772907099261602657918330082284284952700232091420658762979607027836363318653937818506350323520917698600483326663350538738052606314420147364916039904214416419186442307321184018123712340180148875758964288717604298138654907130682817178379435848210272663593885715219562632274376450832914667332732346945004588626726444728238582844210106422256173141073954759725134535912565753409473404089787541329087041826668076985448466339852945925320426213007818883769411235374815727154938189308335527012116616152340104882285310970818301340699329235366117673992338024757506891898389396610485738802086178799634595185033237818474815081757615307403531799947954468391213411537553854730823870608977256714911168547694044557266270443812275569764561873018999188382279076617406701454339832798433218603101326962906059353867350437239222146144302173145016304545467634806120798675339611084779265974506614683126292681346185393726743781054707451817677070803091489062849740004078876533117604396023490334378261785194359730195736321632459850504980783004643964004599926184552324274765809435998582671383684028695832731883917047914708498203452809539571830218095479276868682003542591313340672251118495132456286790526137139163729170587993775538419612041634035841439718172278170404964848492330890693972713812662983601703658831059966073751048252668046815320835413019790515052694272998833271898208878801820821472480045584489192723206404437061730202727263426346406701873199514016866126643683800338895400261739663267229549323132783218144173084149711364423793491573981673031955490741054726449941342088895305827645202746717220882922308023008858660759421249678840617755634649625273511928263865151333957384091807739285971431170665222601539142161107146808272493480012613325247998370392314014573171174993489989855347980197812943092033324906044246230431508890044242783770709455642757242323732893122990501780081681429914922192059738056946185074785657941597719676601528026157357877696424001305292672425594761981802378202606784206195940849952457225217609292742729296094701632928246373869394304736662661069651111259281802550014998000061354252515416960928622716390058332353451111800090421432543669787521765540863459672936292357618356577988780070034870147122177910661552951127360422392493471884641624400230210901799206187209724874781367459751232297455815086542184514220533539719234701268258483455988008166834614589028454841769148436610108243388999678287629743528965215219168604327665327113131725560328721389236028180185896827834022928770505467962761830134370977987092964703730616842592380065396108689546804808811483970709969906036061001661494887554473753894838750596149485707934025217239103458061887127898209644327141517001014974475145498781175177422550227779527984431850888627684100105238525282330026512157213645681435941918515209162916351392671533483110225448341652679887131773636496313857928386118534318604136243669102569977762896468593640926424995493257402652778434317676152951107873891241759763024560143781623709780034164777567322634783800278254362231525901861197801179667351442355395135488257873597783367721523263811920799458707187910973846302108776276895256614337173260890732447478745990252637777287699771964045288331429837801889485287935758383274391677479448730705235840510953518787425450384439502605664372288620795185121267165661047105333253961720369475995131862035875079675783344935885639864571992740434190619540488535899523075664517974815549374730451484376672156146163732361421891538481452189229775712701633172494154528251015521474185997107398059795558007099124228880541221689927990891899435832432028359286648722824693414964637663069147735589682387318863353395765156826751851607891651788903218019856673319326468894034558820353698612952075030118492449173389507941757864903634762559847466328150925989977715549824981653995947587896080360165294970901396837756014544316616617400994416711764504218293505810476529425175408717638955475621542505181245470616513356554617253004631461465171429615832169932294586166980444603981042083613446479248749383277224402510954274871496481621079215644919913872583391529259210259059749746100786060917088746506047892832380769599285327696675418095103532888122477220833097644236938464314676727847987989117431197728522610869622897596324903932678524387347584515105788659357091180521862972964151148752027767528202364846483714386283787954378504517133808939841546219852405640131811957599419848000774353147693412970253806646755818184763239903840216034724558573727770934247473850764239598460502121959799508475489715755529277332529890111317602131767021844719562786953201630826644033875073085500922756402970791120310002266407136884265522404689134640200226448461027615169268162881600990128806007541223477192390227460496044525888603592763279522034677908381257274205809211349174747011708522395961367232744963272764067763994248751474891326786166067224878861249373095748019961969371548556497693355048058167594826791978588362224766255689804669804141649639065164261406020691397364682841574556431135427375310399897544972022724587673439853209786579969822834893151551437685743673685707303522368975079481742524506078208182727374134728903163964289851075806917112741273944616602497431342358321186135876554164220848494667167484554388242157061791313781897208583003260757341369667117310983873415774050856926615042177222591193545672460099214009831384838438539519403494000765198812191839402308022323858921392505409181376152670997553499732852313604356517716974750392978696413871372721933825045995506076647970568139761410471418507367733168126089481972651418445457265086720909131807938271741050217598780041003514138552471979118779897897821142879594434963257883143654978135484920943381235837013338464275121097266417742562846128464322346275855846737865793111013493922542686211773634243103595628091206489009193944067394614069575255451778963315451523252057269600518384262089191331221574566620873914705008544508121011102508141194721485409042903525342774294810101692171401331900229012098468360212460876601825820647335898308310962436104184910447559127369001468165526831512946056081636642023198360451500963486647949774768424475769193306152028455038918530992412000813208376502344661709544633280518735534883383838199897367957642623560771716392341711689636752910749814071575616141063902310867413710561296819257350877212653505881508476185607672207905102578029573877076754019376831182266780583990375343994282194298657769945389000177979552143879386318870809476664490077585954615661999179240866681957906442577217360439863502162666675529883152732234031766588998226447268263077223986384165880408467294635643794609405812347122293076864534004554541378305893846266555141361485065065815988475111546852588092563689328007508089221259447139678446533293677200390966265228669607554113855814003210852478620385585408079677808300119048401317475242332024712793946179717809948320575272406920149498196033196315400478923748590872158557300656655165582635280748474118491192123737526558321483859853292613053971763540066302038731787740579986569673766802645343935508126871704449914108515262655029127202334449133250844972136025563125785998386591740713829647101232879515736728380154267258683359142396965898831501748871926615425329070728128977314522423998759349381332775400117687733048541894515893081010501675935607556092817227079059585067843021664618390525710147357672206497955316484225459146495299323614058765470670486400892518788782974783275131945431748958597586495321311467823013077137459122384018840650515839459089839875690716629730121480341875644640152993519224378072779047692703476786815831836058061407274830177771930625547831832566338801073504392397878306769210028298752422527726185864161326024839327249948270261943917310316309775690714223896713314362972980075335499056649640087086356817813383651319486895847009938417343080510642165335100786572821807687347781937856236713942403073634321213620615571077169513058117456361698891907820033175818390529319363386901344597516528170419942436872972633682116858031422460426577512652051846046925639018965461712539703491434336945690103859729032694142569619991772408957085568256810582513519270020309002237994652806346207993269345326579162325466504179091206809907840857456212707936829308818295150286660280348465953111153104776018308987190526138948714350825906883599431141532684055363452373257202925894474069485550851985169316083683284196304514312802058569161277178079534247860762893860104697126959586456793727643757173308566093608019297818204030892275544921931277577481021371573132379755498799089978185356730285190013901975499520574754790813508255352517990191457557426793347576665554714380375982445600887636591709165448713044686125238732867191513701484808628444101501646958071026759719308188756748199621510733886411031261266365868346867372640544057100561338196180079536900506008482962216414120292543360413757467884063015614120470531936332954946906696147694183674974032040998918994750260280288270576741926071986101680333624977525661428028809128998002256549563997484830180439278517580824044386017433834156864276019369210092649445238370153863547266876484007720135637180632047547039534084448489610915797707892715734373458198054193583915748528967204451916083115870968741721243245973151526481551179462932151439205195214009427174301117710709549909444078739096140923845878991025150065549603571452276341267555001273137781857564066772842521602894720019427866854477843480496816665202849187025781770622593983283871802641524637612492241315148000070999693276303852735887241223777312604692676989318266062953409118454262769075474602264054873439327649144413535598345661494960864075143913968175505228875601968879304571698365597637650349496825321680981685089621661415203687176516134593052030044532311984489325390379470176013277327848261645224311000169563035811659586228547583859186204770009662031665003403463294052898006371169621942675075873333062912007387853816524493493104562534899395800461063102955926403781123372067247365717787416062506047474787256842907455981375054565327649230185651439153319895566532296571788561812592424846030750858905428245663024133334341258547944795867491224698140199140023522444692762340127550997787339258824016255133213895138956358725155055846043075402115977260606877237932636200418667303993063026729829599459302237298588269160685235057056610755308801531979992311662837240072391060485087886700955394042135909472215712509437477305033652207697228272709397933506435128568647501839374016352223201492311940113383234560001340151316507554394862481021845912863802778399061405865799770676081818855629166579900830542528164709540449997149989800549358495765706869702032768305272414299408413865076549513861961323542075853637326034606264648485423833587099086693574566142029664210477130392106614640354924094028463780798626854440698076049221436163730625855500394374641191031166585988227840029688335125206184824174442895333509755155741477416842671995814216377562451223829921595036763886159566909041299885808483045617311067666914125808131711750114509258858546668511834707514199569138160878515508856188832612375841638517129450750611855975222964010547771592753277091093057670790219673784997017337807080399283012517942498676550534778814905716527446482334757595458317768217553033173930033450696300398653318545030553363717329838329265590057092723104879226391637640223354914510681824531644014870866722643465607533552410897981316063894646556408528662815163647413700469415304449087142372263150844916759380751520470215508998658277609033931893647154707083895491850705693818093674670192643679994747287826118507336340612963835659387602235301386573721407428822962889604784827922547985220874884829549199715204695220045356448679307055022151585092386396932027232571891554617791991884087082256561696320576454788636192890360936515614438199960267243792448976889605972082049270257641237081755220857980903585370497195123668887363349520575341024928952976725141176379245037853954590499053989569095719182611529412540073238435993964539828724862103513330588653397419897867829990936879919421075379528841996527171928662174509435486485407768802676605070001122428115333114319861041393766461490917677054588920205484977658318980008522711294306541375356368598475274716726252714687290368925391031972413067212664746935908496839507061518846539622163348845413622336989248210084999099222353595791927688777747767312210886433912714672154910244238340840949250715675300177412922199814899258970007176460067650285284661564040110496588552002238108792142492279098178667536627422681950280483552351716181645252213466571075364826399051976087093227011637529730746428746061772357111166732546925332829702593576247939930588870181605970408726933870394801684442606838419929563953435381556835198549101359941504142110705883625433119085462646452717210183169022167873620438896000426921011761508202165622184578651382860479941256392685200362711488606635617632960321822079485885634127599051305138941418650939804209989265207916511679172128628605958069088076901157574368443890419995516166694113091218486774143066603610414440098357762116421117148210030009664491597596681964489677617840002418292148798998071149576553372864650830125083399422902282725384232577767064884830739669087651964050043399571959077940152193692552526283288535222899034491914603440481872351156501192490944981860110774487951268149202507315733389709185477323304142395909831758181935324617033440027342032745560774727276644391841445500188964916223652621399145330541960854874109534188790422005273411568885118509787253880473791154590708220759339847211220931539643681825597218407879875948038893581196000375014824867932647964019353054953896167346420516723400888027836996067359285146354959499014998313342663642565487390024143786622641705690583892907587480528242986903195087618421138435759449945268477364781516524049317906833566730933796716752236813886777063527221464252817919336676476045084837390326058055266205976685522740771687952286570622856485893042469123787363145714062809620581413339377798270413471646103507512861970196255374831243243396803624522057837280115648988940251202562368501973848274030584440306420687116595342502114644185579435393003657677851227382283767737747542201599433990960454624002394135614316613026582557371065611277360373438711292291407658568765439323648129070893490812872946258424454981701450246511625566184320708510338488195117499638964739927569309676976848268472730388325750977685732686962924850494027684183239067097375730004195589993263930535542506846391844496906964103786316205677796347114989708821423938151827356101128637262593925043983966488089706045463035116729669789624999332157857595507905130258534639170654391446125263767203876620733165711067300187625492195041778909550767429837369316849637255403062285433744621600277308982084440827347721585474975113942328378245735836500629060627504408434675998171207729888359701715996830849175022317447906069284469793528029895347989494803795317608246422354752434501135772766231407148393507485244873691568508920233347305232926686032967469846408379431426977698770224837364899311082150682639613096586810193871022789010119641966502121144110912558704827959203523612040916627765374335572513124757109750145544292714925619862608127450432110820322911441772481078567849394051423178352400064055407164076336302792367476213729429808795552072072759752861079646562816043583750264992359609630832260596192497092073445579176986161335579385357981577155414485110046898905116384492754727137442643132376342983625474062787952260386260827682540442184455274090594573956159446356965948023911267580060385044281200024250472967767772528706115471347540733355320428929290457819079869341140940104062947852807920497414795802476287235211428017432002935880360846674639182535284135551031179139169536907293078999991018305233523742549339413920587730651447502701231923773617573850669580176602973307966393603716532035465842636271717765517501796172727803136088102066690985039139780591542372080641030792554821055495655410569874406319872255379942876260054668776830128869986861124976613524659597231004583779147421096062896285145717813440016586295886178728554411637956775395215626467191212040809211081200204718245896310099475531660264301381477149720106428448277999275146206818049862438179636649888753252738172318568002215687393270548008708910055692430133051488058399458754096346750582996032485151690366092090714094847868135034787102064450397279918791510469251860861673433292194908435700358732076686635408505113124096261409170070978010214367209820929453539468073075229006900246944893041240439797731145358271810420151265865055627921919616570375393457508352079084839786005862022862828588287118202006190540915506363382066092737970138030296975996683707651789172531949778024758605972763579677905466035811160458210197240031246652490877811583663767140480196993274319317639082737129945312720985405382524990361006605549130547788868977047348530798976948100794912716168740812325771729820171424587602217880602525389515035234123682666184615315528906404311997504670874842892144798443863694250294475161968335136817614910403441993064762867719998579298212314999213171443484225110612620117445377993950178302566373589387679047254754037965026780057561129287320923450269479752600469500210553330990642067656312254378716360672436835974364067797686334849052633968712485052726703101493225468656305823358171028430001623923661346899486771759639988693309452042348306063284865306809923601321832272922640189879249451662867160685263247266402719501957578206264974506050818094521550629847586423735535301102066501504529705176975501544159250941518955821345409323862648875276311182170828960529816604018432463798907370901053068859895322707667645278987265790420871447911697248999985251897188936669011755048538431959833469990653788337960762427349786190518537413977059748270479590892025855987993209514001554480202183477568671667729153589723578945881589381474153673427100089208981284071976500563871271649884047246985467507399172140163473482997098174298081085029359621148870605080639671500577019400669680010566013924484892553984630351997085232735247563837406435775003880803168035087933813719968767236707947738550150550580999498462015689615740227469554522731766410751842584496765444617309699407355339086640711380268395396602772108319828228782175982682830682623575116341789057902534435699369129428919298704853876464604643928925030870163945574352774749038969367910739399691389240126860574343354003736706068342652067374274812178031156245056715729909963371178443222559032271835371698653247548561400327869248291148560187139085948232279571859819462956217573972568510180587106996537394162188498761806786841743864918024821139754192675333037642886076302847426442999039669156499068003352361490726116403435409939129956051119861002470224092681455411988187802512590261322132658786545099125488654348679179922935039230127612897690812784775603431842817597279328351526403987244362303045242947868477566831426639425552239440873439042365857325165754054929803598765344375230114241737857254770433809945706787849313342718776341102145456720508731204240800304174153472191720284334153892481211301595055163077827937943173312389661179058266689609456148447157001605939954712403778120347080330388603335734884426335551633317643191804125389045644457647979029972421312912803253719578562268851029194069471015874977743755495656433335814246943403194375596103697188142238312971184476620560528668629688347752402373241852064334603951344027168980270259845878341943372077091993510260058628198954280172012470850301869472268999873877820508746002947309963216145735383542028229565645884511384656069815728453115034925382081591616616855130625279750663896391888112868492920838260103452307406268610502084129901298781600101671870097448586370964707228681613654712139790534624292438412689502311283974392929179307111045891804912613925324578180659731855854502029899115915358137664870714650329806212714460876218877003019436940852962066521940935146413822597536552794183071845901809852166082080355425568307792115652213844253015547820106299893955583423848558243200734069829089433720327563449668338615898617682477581263635400079829483383428098746814625812955597420670895312160843581669545229682012080561958012198539811690680067730778840917176897042375906755232706052327677367452353707253331293066743534481696972601139121942547895721822660285381950160393645070075556932531819076282237041064460051455348357972646554507186732854958717752800227458386027957365117668474906381654419240457138372067772659542486795112423263897854620092766266358809900680104328093201923490166772153793106125465897181567645215093944367967491358430029407058835963315960390565853366497033838505660956265068959853071731315801357684199762140596308375386953085680001931705246039194338667601072402199873152726253167827178650029837013821483193878611498366679215251475883342797834493278240432647042108987262846352803595325065792474567527665034794239912898739670475897873055599307919469736210744979792629022224904352617210159268392729037698471368223439597364994307499239616567064865931614112495877406101214262727816001175139061041152480104859810030398850599611626903477067459849980600073396498076643984137085421943453068375476183403887754654927586353572219810457574444197096784914565314619438957209621287235597488475966719952436397964287194188728461218959473916152178294470811507717190290428140199947431476849315220133931887167197234951564763877058363255778928739675913942416711348911395192188093508264024479141894956918955394171542482041779481014585262927533001677136137859904695422233666943571667117416672681648694591207895438320413142587590113101633623604924921407959249490120216153256218713236686667556864802473672118783520901131413781674826824550188772353477509008986390773656625983010778562153631715306769532566301292679120789806244382761755015725608929240637419844828366397120659776295496996590406795414435962336768114501187090823786881089938821888616775202806880089040102903024646881891261568342780440852186788581452044092777538595316933105171703346252448264207129588471740068514451664534421153642695500349583683126004778217146517542677151538829522566608046985957390373018997453793669753144107119189478840998320042151112073290589589249145816352602177212912602584815405370002554520413150128773706052647639775639969936275684769307488917183960625767784906874783940476369706547745002742948450833278624781050644613450138069371628985801938026228246160545637894453930425544491576207862516589605581548143311047859321393630161551921494036827980148195063988082821020590439370139898425640829870676150934329946604369925485518928753966145115916568606563208421572402078745600308034257514417710998936170165290825750733592508987356431936243099490860788046581599677630997112205037672981195471438843341001974312135308725401603165651740615059982459000933434309884842961575333404401327281418884710737142769178071054858628785900666522940141591751860247966930081634830020539286376640920046734399648898183318730608829981473125702015321607954982439785745685080843585761966617958165139336283646494284729758067482676281428599557218138887038877480915795179498129713149433764278228466000687990866873473368128477139379964462595203103346476340980328713371129298015131202477519037475823795841199848721959344085004756223859713097211193281840107279233443738559659463988259266777309000675517994131267791661900372975437040406059262928278302813196986968414426886330354655081021743968282229672743406457889488669376655414799279625983281621462871778270335540510104190965549659154303424435113806415292131370333717376728888899769009730474302787704118764842493690003014988971318197695981074589304919345805449555087212650416132598581331781434952260580753976872461735418751085482744610962930938574065534651135788190762657638092307534887736496118395797498138284963908431663751042740889331923628806317079296925272949324573836356036921595207433642840536710012995832949714221163393056829370653164209212263244977957558410628669932954822923841230814571683333844932445920248071274276252669466733779283224265304807178879047126315487420194971515956177777149255055440740040843080469373871108823678966709005008883004959743693873239513518839291962886758231182780929205487123064886461393102214798288456942833849794417791224975673791174436728391734093215105939154030937874978608359656016839191097283945337221850147470251240437682341682744699506724437551317603521488923843203554506979503461495932804599563329583497615142734125237034289598505765342114315795388045644367305057571745103983404483511817151116985186960427191983571795037795914068409826232319916988711260661225897663533690280216076858508100493635631528532342702224970920258106327740643328129897063351623078322900772844445698353825072015218377326447538685135990342744476337193143203817389806077945372722729968139868504886401732733077238114256446151959996166685279692434575595071646007493910523147226167143413227469901519536490130252815029686118582919507932295883606009154284257843016447588075424776171934287396084990330199421651450422401985879968253017197080222782483894716270474531987331398271524097081288435093389426810334054421338236191271210567195970591915437164803709893547314175474861866046232670554343592138639673837054822240245111135325586654468667952205039128890253959464412328899713354532043322722691612545812224877874035033630196697806401283860872754461118447490383698495282909912136221201338388922237396882626871243368938933062298970457207430787046530267662063068678507579098631250169807244619490548541907539815215497830157225166448233436933459066061319077382543478846668631351240530695849675342895105398139143837936460373630823800719461659661124916768425305461329070737820042096274108693346530697128228160951371961645116684904961960753657605401087099464990104334567619925579688397712462305985609748800994566342820429116670271106048160019336539298268108106013435773065001600121831489254382446405371682022579648157318092491600928988308616329577747134341577520001025662557711248018298916261096427105726038752256004433727815185262342602787335737253473411144819454437137417190620394013405901404975249450137849823401031544223702124873118651940253912888563687584126471846956043241224186199723369828199722995999522055966152873471065817843664456607003374259865427022598273031298822289330936177834207837637026148176049013757592590696861796903745111938342205019398838149217146367912629004529591406533647365070319186615897553046376403404625100713215978457926658683078066566507415373587864542072929944637837333018733376111762674385523165757478157139049347783052784360645804254930689489195445512596261636145269976834572663251088308023070744233537424777775063831154611721615106451450482946897666971277676898132370622117212069376043009320579034234350450552449207887605153435131909405963002949692385705670970875108274697423808333398347883001387757197997350386292730904022677960660024322501226221494181164935244988203660698961269195084787692604052330192968332920682321429349652426086653151647163618568427564445088221089002939618958619916484426205667220829232559067183259984064792627156293531359339271794486744528976317810445070671135493538203945123332752110552616713851386752303707890972657153333053927831614412639340917137931122502209148803948375096134945150331662019681011113182919468624931633766787312102601352307576841559174060086194140297388660523097010865451630285161130580961996139249489927874512521645344012275859930638145286925015256223000755032149070483235476927199213528169431039956890241582920477257289414267162574537768794145944654179057842398585043325030930614732328522709523559140022028084997693295185289175526055886703811755948295709520728344578431745453744920702754636828751534662687892378512072894167799662081992261758352758582946938544083455219243902716465532973011902102591134805598055780145910753198976051826536167492523751215355046228890980595799604537258596959523691559973291140090032965295024147571523627400387946601800264480135087962381661332957441521867108878525022734936974793513446389394392586043771931226263056027935467272664632793372805397679988203699384429358017300403439647439567742023222732853835267147773560234074620072097509864786099831549020639192457318102028259484463818664457459762692663668671902957154578213211676401965730584534588572210631214962831261433207726682076368449539834958269746667348849255227957742989028302071264059553027319644528434688495187108582616656336332206442150169360402087027263646466398965370906495266699800618308561094190952829513577416615960001903169908883080350157847392334667147917879509447640543615002958994382879510505010487818368679524299175069757632161819127296414451882595544409878128689332919115277822340388331571869361515842174560229991594516449979341966516734654376726120735574784150389038462213574821483982941353351698290483981807760866176812505257851263771364388460026687523980053274960506375055334000585655395752854684256071868852093930445298056578245135743658055588257506682210095323589572312741519566432555822365111540271144815886299785431857383570031557370750870888290121520411805909893848479319712567772216647996077569752621798680693008483394871830350943900945721441634441202446533027651305052339770753348475672989203872187266953533862968243718386693810814157795920403241904350286589325143105036152011119325420999789225844838956694800937919859493702597523554857232137426857232775957678360866082814955131734854898463140751139712937417697627948376795962379886713313180740988392295883545161027440579417101032024206533324218173246228882335156187495550108350507420623735649872088770597951648527068386980481545178338869301861648512436972116164765313732467359675249545648841171249463496715598104384474623544154023978185008832146368044424492312811889097014482676241543055260517313418612677781118593499347769228384778511789770354682093075308272054098876973661149507074785228589719931087922670309185406280047526275049088982161843581901140533444436924067496600545962423063468612276447391833065353780361939636519113147278392564007016458090633897223269565765867515783523140900932907516669108881687866278239240661355380031980479921038658181155915003984542427207845435007748400529134101369396661668120206287757390595474977402657258105380574547897804851992112187947272686689039153329785798707257045430617317546453744035120998247376885989680519566689920292278184462167187045732343250607927776368260652618024439058269398425335092940324938109190029584942079751317912561107484387610412637462251458708889244798978653476086569826759006123927936765734801724509436725874252686873938113727693916336616279133664735287911077932365460303680287984306498066156115955996834184773082909914097661826644307085295537531900432312178977652527502356073216200220691995369361625860180218652722817366023818665851141101091737457130747757639289813811672620428589372562934816327540333513180536388362592207279995930031130000865221662580386660100780597434666759149915508452709570859638590233892976102719548003787374942132399457254353662921130150410439353851448129650153780502538654597850039259576178887387927781143146912765413310473317945248557345161523228095209806221443640825941031639092258505765100661302821785355831010545003116266839636248004695608560184131850045816641594038054002964051568013991345200723087866475426094361770616973348113576909094524242958145041553646833888497514979602735016555125109094363968667810566077722612234380284833508191187406868565217818452378681468770766300010045085237908019461800136530294817403908055641204280639032581848602817929818247392239586711792402969341730336682920999940289075384525619545961583116602988122136461812806985420407599474322997742212782102340264515033333570481144513575166262589575505349858808350363123117153018636616495552987444542905564036422674941982319567663273810190677695803375843303171507215067599230238435534824129930866179165429528290581217918922014150716740439331271523189550321015384119748581561717117287331584027593838753869149317961832706741334005985461078676009954426045108791229352464231065406248914799214307366855936204376277778279598358959966745182842198032232680584114910467114861614564976530014928753916868877365354145562158174537061994403767746274264078721872488246352946007498441157051546401057913178411847810521488121423367342414289209190146928634444753663795878395952642922339591627369076735509278188865668711492175114944494412469746597583547589911858944104357261806690167214835258418424068345246201373128019051410283870364565747702760510042177007755544926496900165064415609827541832406987674899925957327216232431701981825445836261964247832327054934198619123069305877100164242018295099592850835958719764385499236053424833152886741036293955919881814643095562594464417855209786008424119131048126660379146472057211129834693659072410104290247437430983842392780641096390079814045222063098726028781764550860681416307891601484555629415433417601875008876916100926989086508941515175547397465999038544649630481474273710634318946556228703576560617767068631390497683893698244745765676698429352935701930313570227431447251911166222949626555041833932397972088140025740719722766848196001662310147514364390920974852867568382184149446956463761170113432365895230104116905503742337037459413666113723160771844763586204777998471610312706212364501653324813824053317862251024095178194117655999531891973253184342765151335322612808677843072519724185236631273019102192147561791942016723974415007388425141717342479210051936990713699569815969996232806447712914075175650133891311828625927730806322578047348945321555990341907530385172255819654579571475176839386719452880710418289939447346528222076361971183658094436204037951876736188429065941783780417797922113522940993511175455142242527909014645048370529191849405837958757641817090538461145401305601209461444153239852839996130245841239528092699632633252033998436282429346396384765086352098574514563662875134641112354992179167436710853973475874557751556405248546292729527529553520944853648204703351278181678516538945067195377697096269794861427872947440229251710148983075058496036940971688365511190242672094364025422051048051188516562455697283361081809052422161194824132922543694603353629093149341378077130723274001234827949176933105820276034061627879651083732516706425524170250398367230539895541444734827602390051067407288038748735163712382461666489522987664846318298843550801592222063883222588703818221785100652917002376941821446112599574328585136791737297068296089543226707979281663926626153535387185019831514517216240378416819580037949031903282503435640583958240496405335994853467345767865264029759202133332260780603744726984799587350229668453616675556651256040724401607692323492932489802575038807246919498924700836602644752758167455628319899172684287786636931962930501286798820564837945360823480432052437996118000043752646394051356584532217379084215948724714986747010710973801554823153843952438054017229943723926156737102704840239491904067826018476454402874304898128043249889671464303575465263739699275692676801400696419450028506105067999772642740626950267759447609947602601044127413989730154674445449136750531944322087905396907688588578837836620736192680622899094977211178697332798607765719802139155625785058834882492874379466374432922697666594942017471242237327237017947448626141289064140894359771762197153882806874859888326135579291088313587834634124056404331458109809218634300489395275640210367621533853610989602447834027835945482413668030994451950871182351723150421415622060905184293012222232260972044134340256010985056877935527978313327154661536562508284820958217338839810161045833627678336492541912045781589523555514324560943995865714234794923305015028023490752765362991347543560275169777076655595116989365213053847966748581073841233108352311693411891924933507665069811489689549737543141223182125742206592077506946506848488126848100396271515716071276990250102700188369936325538165723716781269859598567896743153295951085489539457738527543721623601980531047369954356691197043734306226505274879953964750927969239205438958276505308729820995372398375657960384349555852783271011163163276900356381548924238613314233306523860058738143159975501667488043994439172764195865076116564382128822803145322592467478787217930092411034085442856617296234567184963206939638030403931117198302294268946607486381690495913289532818586335969516796014835842227863145165004480202115780586909885726160680646732260077870320716815778166831166848029350017441675015163815177116540407121021059452816216930791021120589254769104273193528645091907245850153897130722869693494763130585386878701094031921006088244012919812465244015033986577154757067697324388779853870357665286560645329529731072687467017991785387250234120488266766072740998891455699090766823150909949842246882138120419211895756935460722152737864334438105845859868456597251996096239511826330539324528452233743877736514322686845348653192156574975986973038313678064346042800450808389636240924061869173732246487037659883727459522145742990358416272084631908274856662988594336714605369097758189557452782182548955959076732905201781997868951054015906202936485132278144255734338852805529481101665125978434634332999932468488821727408092860856113830423835840375132836418600851487731212246909345458680025973832029280712401940251442425568762467268159819906294805025743698675102298864771878976146992073427089124613506720817269805331594800771176410301923350096483226572610734736424183137158117762484694110067400206764831587541371279650774447835358715968112613060425902650124442148151539932767920920874952489433183764861740066038292043387569774698827453145368049995508768982747946579312567160907043618668074262393769270885498158181112809608446463974633203934152200559533845669467667931596610818967506300943552774118764644522645045757973646658807383004582331668164175639662574065797904444815525592800880617755912429352066964557086765979229108608456518063144423924030761505985605703482575599740361764766060982389997383888762241361772404881885400063068027912858465128823127315051069042407935414323028648270447379763587069306351650514699941467426235971862465487344476746093257889689435752900136227215637322110734066347969813683730834766950024614209720599494869254058862640351383820454045908017534949079846125094583145721390364549536464454185886806777144414340172509413522468442321278058628229933036085261744506955639089294587042316668009123974743904579071695447187665902120675435723910194234728373367284910985467458710519425381033029151214881637501275563273492785337079037888887429398970354718274406547537797293521281877230596461489313482432321443019027837238500175647310277864322536351628887795756364421734746520228781887474207851648911925672922046524804698963484494257941948688879786138719158536284610280195283733431154562341719124457076469297428219125977257130029643653556653663387892706462011530688044442514001510206109898874709405546893176375045540313712819408463994705718667181526583752637255467297371829532183951529331130369766938710248344778886723367396090009172316452302661320845916806484383578739401018531091512517028678900379261305031612932145378452227562673644576275058814279964424911244449580185800969693899163959997553023323889452272986857830723846694395857734159122061696576387697080754789235212175219398130737335377312915371651810092137492474916710664203990681212043949772281382467101431108198024926157770002368247580257205012832235525685999142895967471104360958612005051179361644038287094797519083101245800257430846435091705070630329837710670866070875880981561628522365761681239439738400924154581213255657150838885032343384785919758603852059589561299685444345076645826550681722115544718533657115884083619638096253051356350755747821690320907513858462966067880306969157829916641922730158416149292822827958710715694815695599106965259786386274314117005275505848493526793811669120405483136045295405150913830807107243276465440218032629457980580750328821249782902559975648167091081338555542752178788263154631214526953108575994593425746925229718364016813487396102059141064122856912870741484165498804359845604847012257218104862721343590090373607009999739244175112993930371271596939974091035995947313456733470459299954390150950908116117486003948038046151524363746773834626737888485752794339871967921745100017526623294143084419358680585127828285227578459056518732288927669277316398881891248942397992625435308005360302412538923685479154816234640360921383534914008569508361892147025255111027188793386023751516717706366743633507224316437157322460180660242534487986689623688406295356244443657359133290526191893902049534051262619846763664910988049681810324632757835065372471105201924110476341942037237450179444526841416486616032446732356836671616776548454315526977285122269753750005639900422783003592450213862775331221605696748526314037206035544797670782120136703195443437223663620548721374073446265483686952839618503275510205428725428561623164182705336961696332275724477859574777083039147467532651734121942877418684997427544554768161068553822657680959740071492361633907834478614408481201354572742333970914396168748482201570388353943954995676890422567198381075391987781079944449275017292491478664272226392745917689297959051719174749276531720637587268587847846097851288761009197424247467629551790167316593940972823053195306626123481791298189840670836153570792004358080847270479336983313580637739117557385282873600991319288130687846285255924110752153901269827601343410292077592602304714466481289814598555150880944375233306746035140817672393214774602920092361897313962474410026585103866868293672099841845328762987657382887224390548936061005552170439473568432539133245489040555665364492220595159989816170143201492311058003030065849739287738999847970045774707550790113994459690888078693958436922338319836147213326060028475110161981451424496815636411178762784158861764101737871481832939250876422257914179915520491658817491791921440091024560565702687311487972168644772555968941127972178014520191492715437307489705559471346665900201199448232685794994416394077897447181945195124125363462709764717168886804229361572778576106563669619103819213201533866467620509778134329519227376915458382859655789851734589504506441784234579172017677199549574785830419535450368740705268024009737028273224747486142884381516582564556627927306966628516971195613772124466019661745346445820446615916805967859280234727752932655052784458201159227442376566111012877994559294439092993656623011092296391212580057946459678758197992957681717710093238397929569428689475815458613655004723048504983123716511651740780936018819082839059939328198171477192817911140244514515551096594962526940859971852874289567559194142379061648513421885480431413341904442956425838123573804954783398465249484508028903107046890374723932131565643379983462954078851824109322233784796486747776937153490041044745240875491822726343839339395868133529377674367585922590701473375570425425450931083521555650776244357172111516658398458003118731532321722322083141375300201602916050577877179635007958448058724213854234601166612969457965548689245379273018715055088257674297510801066961061851364812565137073247871174551965388123727384063073706750272625839653194619081557090183237345534495928159197043607853449141288317356704208710710444802611153247414635729357357182862360407192426613198838658525435675942381010142560941566569531127050860211704444241677778513268156638247905206951187673575582646556835915068385294582521839653309022432891063760818253140398370899347193073216826565504333408870065522672673932640544035426142646342626881321739843970536144269617263582759094533273149170052484652300160553713420715021220138335172647040067973244504583584962589356056482629059626267132434575674907202195724154880667543032333657535205691326612429212565832016006016182166788776350142818076200655360062548434220276217041544836297522434883556983117438367053555031911962041866410446914375112739186674015814786206216021891248039024039157222593346968149762592354762003574082804617188086891594657667165126502327336702909936663622555723650551636236858800589023243203897139354364041379643754412580726323647936147087518868574585832932405701810911446906467523558988488398954120744028949192719710259502100585201737354169871268411502359183414687360246013075154375990043007327268158160236247476057527308517111096053534254861512579653355837192953674500164042522362324370108691330780052125518601078817106511612109130538677846485156374091601349145266446866307010983020574399331089043472789425135717224682559702689207142719925589944863654427739289125020706417221672341506695588271032984485106656978872827351254708272151229564745529131604580515974789124156771979237525904094701156967219470763342779548739814274775032341281195692967399800511853328471747958548623010654277123976073687552025682586755740411080734453614030662367843906066351003469955147870115121921087877355324598098973731897890882973652663746685174329706000112620660833777384688431485962625603503382100416341023486712021214664023523400323699735192780407583378638023031165893888011517134285459564338012200790099890361834390441143123978126061097931738026957028792696712847668602084214715408127557115407930628007832955141311287299147452669949640662942108885490545014909492847140160573890650135207454391926189396190100816701458199641883222006437320234931133734354373101476942725572165270325899220789606844410019729568940992900607481310127029073623013541381847606165794300007564685313723656590886198949825498353502817821905128341966587308027580185823190602097738675733807795351462546606412814715088417901970482226112663925432294949489326970487745806150810755960814579015706507347974605946607447456621199444516586487295477167723183466394974771644581604509872884408486406644333139253051935144151318033353400157251663249760257508595949475261975065912351389774370507237617893698469135013431578978957144406625157591451807059490287440301192264991995756955880760762251538166570561758468987025367732622689837238542903569223858969955331747426827772182251127473156783957940713596883593602289080700989079948486368262107576897107465027852859043312386428503868779434684180926724810698360163373556670101335938360151657886803078165079314006224047622372673193917023197509225196136282077832187311749862860575688354678100512766601509609331884975123058314162984113012979960565598639369454258094425375996455455331864604481630709845558261657914060541714580821475783647877872906996692690868838270025402096904586642924294606445277288284211976537060577447914547224498742901648405588177184517036708040316608500786182789708696332697021833820170187329101345342064421362422938393346970538482047959006033246934721984766864792974731561198818859282338957946941344732693832840784554977567157932984552256128908296933431956682892465996547856762897646653424281516883231215153984791208239855224283642512355096050722658655542227327402571282254020824972187986563550435283084387442470353381743381956308839674098534752741822830858464884608768347802839243747886083470463911355576281879889117377333225817377898891905225886904017563684427987953274498996424378078961062034686374940204427259199485985653944276706411450059845271872423887359019052915276540068730704290019118843267413304246042128620972535351272206886748127503058332840450199133689353863794522467531669177625675658228151197462419129849895810999631908092265759336826206211374832861032529239117914714400479765656325429378812718776142714491038837292100578975469137927326255895646929852560302738999274224491780316210455984700183309159627313138698611510771407802839087024908704138089034471072480613840862347708767380324109672142913194529559438280250888252728158568320923594160199148294167676333530271086611282897467104094646372219109457995936215830173908781541524941697108776287172184524948365729711630482502174655773267036335531164189437826306013543068399435662747996034875488359933756786879908457853137386167991757041112365347211203141340958340189849912094099925554770172889926213152686587968770882114663987425753308551653995833043425679979109335285546051161324746973303096274129773863839756842948767352418775236564549809159241495388269209111999052409705314781150715658208110272469129215539691699766895097104925460872644270448719487663520747548266605280148835052427867887073852084015118645804467814456652089862064347811216158494080479289512852629646323651015976868820723315161253970270302278470897734606389840040619704855577496685300970110783305159144302684701712390621004587499630545913737668618141524814767892920040821671198559543148293267818585082420500835754799373387120351032609262926860607484544954973057215947095013378500310999282714841514590923514346748424723441159084187850830435062035978553166303224868117626093612009599940760419610837309284337972618132722812021733300870028577554609177322609305367406925900313557101974595215222941740683688901832279921525705448524763306863292128037816842181014548735765774984454267773544298557167976132110091773408269735449121954838117121267000136399928878684786888123259341309249880261615515669043735896307912437829014120783152638662059387737613283134713895854069251203247438542050934686137695488598802399619223687154779548577211536109635229429748907626011742967464518570421077533297892381818896423644025143836937954217806280887012236925772724539832023511606186185768726990138999687432097072677327048702996786806718575692505334919589519398259596470215094131834364708885972062780820544392894406894317082375279171231844757023171717189934529041699413967118122656023955205000613963268113491517386684538865414267707767683717267899306195638972502284032262861854210602874657712574176665076996044118466039670725477625459399669549682610154394975424479983930409624988409338058063623379979016139834229347162004136242628422239057021721123312379942554961414741994208743361009919022450608274803035568308136726951654397394180522071726641650703198408192458484730111061498808806510676748736764484659127157478359054926233892407742439463728675366412805990183713364957128122983116627419843786268501188556434630248008110679715289671027538687603207776293247896446025208497633288577272424828246491155891906385200917487517510597151861263118398343061563804993565066166577900781912651188587064092468046946422382528365502360152421868750118963926214373989499020157921419549454284715095808171144319069785664644172125115680097765494164117699661685418093580818044843889913825319548199189830707152560339180055073446487691943071614759490728144874333843555644946232213929829985441730278496946354730721108254349567435523854827550852441793067111991070521604931363036630438135319574885862492650189184877363893821889886598727247884689509718745653047868338129940213815917448033950368275702604011200474094087576828272659356521516405393211535010415621179508939992156988150095821271551762081233016935977858108692227908119814731744516914210429988773245014210197940023639909805179721228600580511282113529362112749821145987290278167501380623241235229793115029465529455178416911801645935432222454094953328617536240742430327340688716779278027242556157535023342893578961083986959341589714469842055763792870021173964590709993471376857103575072244169270399546792084946875007955508209535639519084943560863088819991382827566779535385881685253076434294811844366534692093970142834292295918295293915270347690629083079381188004796866847679508215369884205738916094116194602248660976378489322511972679779747927340876041284007416943329846549895324857975403873787827870662060022678367052794221142226849784281358442020171069420054986167073040413680497760770061929930845758083349180359356475594565774826352987693543835768074564840758096703339169669031090462551485606830990614046234828058451886237275861856248603147444319552396599140534164964857151423086005219867434026238610699556637362561696432921662301802205000747897698789837977696745802068519889027794774633468350832062019014251093383270755568759392217838797900962004327058201537555489670673831281041103818077927049277449078528395898068984578238173192174098795054672407398752290776802592552805385046450717706344393737077026985391821226082763474952850090308185995773471872348979176600746155354970000808305806018078029885440617460022735929740256324446347537503608430317826950976634846120935671942862942135309400554719434127628673445926649112941721934769787161419348269713167244560528564412376220228399149986550970652438111701188302810356433345123271259975973821559720725658741684639590572614657500876428112883843341098433844451644004457506543846475855045125286542086030556199934442997166999303782397210095643547227636150418554869960459837200766197401241164839520108184722106296537510553358007562362532270989769466578857695682988765973263000323955557551715846472943432901495302978567901743539521427875466769256139348908465547278012100158802396739081003818071574640803559851041052424558675809692172539747398978560156548519751197540266625644251174217294129833900666609571108710363037263988285439402236907342474976800776921102825129222431621793142449817128792519827284360975875258197359670824144294672385860561374789436870755765867701313407749391677234199470770348924131569934650324289114861456090856827577229570976297719822928107926993104820660665406621091811707541404952591755612554176937932993008877426341531691703901040540961754001429951676124334656815634156585187900752449810696555294228556045014296690077111564956423831532970245407131751498460738638566860196507809448642051085317988546625871110769259758962949014314367805112660241746136334181253308513179925480906930731078367858764436375206684077410001479786872260369761687523702746707506114286356641774786130228673973237806016838658319031095211366491589940805064492674422256262513937028617460893154104404780391882378426126642322832926419577804748417479855131927175020194164672210654674075701153282394107660919949191369981695167169184268449387228782917322084646084988936942446206094396854370466017574511327038900600009621422716936560303169125152379188584524212161904738053890904885892021342262486351729309720686675744305301963382758528406452901334836365071141377190839903493002762965775099290747702287974005835979934538599165813060471987168033848817824745422564191495884978804065311226561599769938886993120473939865674200490652726481370041764986680075546341658655439575027227503386826623878548130491414118314868285532934579973514185342795745154271179911757512262150391120393563330165331482874988190888437338585079947645033851187047965322763936490695385091088175150696703366037148660809576452918853811446612710712602652361550161412427715285888822930611123667174750266996119289448215349673930259721621547884135488915722255188164465322935646308987024739580430967893818358789198934779628813830628058995015894571255514162043700898932745827089619736984288565231673581610361411269899818662343990080495653270679226618824907730440217861719534998003027214677798156897743200529265653126767963318363158053422194766164652718371554072070099690119420546201849900862056519853087391598916177269522636235675936959322201337079366693464882154774471658470332562153239918492068273000309194323927042377800850520507140787814253182301530131223816181399525212758208636474407820174647576971443472907398891460108372410845900133141655596427671094365965619500993988429322151898928871198278863854422543064791792334266719957349293236150415194975643327202070183367204171069185033290619495359623404565802473453087663620475312380517934474705349053041750985479540511971250393752439011664643174991253858933735573110618879087388988537606617052377616604086307166126922365257251251362544480182081809520279450691838386463423472214732670275520794020478390839060008233783672348927852985039781883535250281394414082300845409531931734335293687845744547097329574513001712084560393323830938784422094233273076983550005735073864974800991631275556173151013024490191284746956048638172671139336823286569363624179237410355308913164276066296978553693988367584285543014727459180941874776940214228757284708330266055083748755171276567496335482185028233434388531394794865459636895469987369566852519436900429663977254561906077381394295895033488013977789275779491443368745053669816162236341478165064418509869695874622160569594217512551418317814106169099526573239167673925063373755833169450124589137523230627097039812443501423561856342026722781499324216118315742352697370716904537029877366004958035755588299815362291038201459717795099147640773020663726194960780472522045819037780168853605035268218402416402326799504271716487955954071034266687017852019407327772665321404065435381568688114558096117165529741476478495147547213774472847080694466357663306910048864053777773356038646723292036107143472708905797571314806829732268253844189075616745517168542716015614448000572491796204267942486007018304438068742300295954684717631083089347918898708313672247725077955041884224252299717584558432820833434812854184965731336614027629230871148220042391666158339525281554310309790755491398740804814835841921970466477414290814701412254671654803399476621510168913826750668070069856639671208304505207044881507419943845304676529646943744493037381617668053196993567900020392289401001937051019209963437475831053589360298420103964540103654618441682446332042583459608441204959275516301391197015556909709870868892301547759875280394226108751957100762204395489816264718810876723870638727199007431619878025121158200541162609388435029772457326456716530548348363692648738836164662815204824033170248375944398127833201542106526805282153495004356683518020690581642402259907534071577838144054972278849718042222576207317531103115924125996530944875409622737293271366766934694026688146695970983974639326550027410932499106055046499566775581443770836092505748883004758312185124309637046974532476889890972534748073482745301059730479040900295426127717286958089372644940247511998784151328245234761442719618730481278415599239895810948453172584911406499434547153691115518075874528108013194945558898710970570920425630519595259598317415621197724121130380772174654460768881497253501037640453254312787075175900287791332414295540014063786016298503546313215781782229837864128870823536009856158377394707323588201840796165989792100021891993388568165265958447727437912633489864786589657789400707423500821591612760812274317115394465177404877576733475090559326741981858917657071407370643182076038276481599173237051152795576355231525104794357883870321369370089154670093903918589884960064130774034478307357277438592904074480257902996675801278188808204569655417563745148479242525017346308630570005297077276887362972711958662513187230528397050651121297950907455546837645078691606269615109627384598749676347115274520522627047985292115592545716368462763166044562364965178878034623141884114504378790079593039431128088648084025742069111226799518906135269158605191992285047281509037108219091431758811076369336866870640896271167901547442030034977218115273435170814507031246499591905937095996116196121478657909527397738076367356069115791358521662186970148701668048924135751267581328540415325335022133297137249344177199601672416215065944849677262145730463760706570860635175384502201307218938571392818864208562566916097848757685062746305531630663612991573305609127617538624546620321092768232957742495912617580572953555313641567922496349379285040142415559482995900017354792021796973144892679528709356840960189386231720589601664325522006977524389769857491957404418492570431510208141477813403171921604821493735350987175939829576240750779943964929160718872767835982804553540504622784784279249238540331443860708396644374156761703415260520214998149367435711719961999614335933972749403985951677141527268162848789372198671541751131030143107685744871877195968660892170595575616726656851654477040162829887902202053164108118518428223897465362266652456411875851773065593226732325275617923771081033179672689834901761308101347430377530392725472869400017953471130514228000762445886640126401116705647261654967189922945643276628645195995902354356503225885763788812727334393209206694859140754590029700990014474933013890972517686625433582118770480334188851267811183879595276528159130864903652206442574927640149335384576297967464872941693815176911504120205987832502128563146983893242297119637380247894320771462798493890475741173593853222601533991535713063898192941931915959657985273181054914024854399775968697179336798911740990851474324722866214875583242683097558518132908992191357627541824359773528046692680970635429628051069907804346094789371946689928361169948969507268611733870335986698542192520634248602700427697555508037861802460303411313789725951875944665336279074410587235948728971532350425745726675788478417398412701550510345179575235841890858250912153640884673219566092211861901096240719497423854223225341764520945847335470112400594936271751830833770218628023542218740851114861683490935142348022108148002752997389778155114735856314082959226010026199695901819043989351748565368994654131809483768671562598305730515519897396963562799466153618215739228035320740578657723029013848767712956766126621115150705101347761575991269305093853177325806798444224968132603453769669683563128626862875957380050816532953810041851428185218461738815337337552213918832857773748877091292778589839462203804099149213425603044038021496494405182718737424157498406291206882238731198126947091390597683126505960562913078148487849079277149315577037764410865103527935620403618121515030442100077297932244002958522415708098097810352785536849472823792425599247711668668843754405140587473723576297005332606354183556452820692448654482687147306943095583414205491254939823378606751609826562966705184878059938157258950043208968505303818464518554102274649000471915981571753583264098420999032154608100261565211287948546548891339251115609238488939334493034286632366828950105983673499785735098171199102085939852921046520112045952131562159206686105657319682414247346121507068878547192569836588722011220624554115749608843865874062023054092218426878063727037570842756625409194616470516994253098669174209535167983500088106939866065907009812622974930551493402261481518035218957617975370986743531226588024129421911710691615560386477289069650242074359468460769434593225843205551543645659619186188808635247136001332578888421408989763704556861696900648023475296507297563264211029739941798626224792126653045519290261400374821134395926475328323142915322576782289718320283366585268814396901000189996985775001882237828949284925984860927026561361099110921995617692739606099428803948699758659839412762999043865731563460051886536913803586096549131440407090630068114146655515732648925009041522764079250828379919624501669211829547903278789716478095140878786585978733731452396298890724071077678071609204232145969628939020577578205353530073717756171432268644708525731019619044147809912311764774335904396669641943484998093152959455779755318667909789604192445178430926166071360062931990056915038178594399686990115551041990153115472509781808007110815835493895950707932126257319355865657765654942618026251403718689273800055139093413902113350367305874798082745151689533206410846899532435059307312052489580851002985227842257770548104786938197353311533182296706223759382532182689503503998295729434295375978390672859216858174080729612149945384904667907923475123439445562877017804191045235661518595786948972373447748296383878034345925225829609065447487836684130240074258224798753116423393883638280120758245755662762017539011258145033976597307257925832035108712191920480969675249752071293601684071665290203884823258130249502256968964918384624402113511799135130390988447908208109428395429652134035759266878136063273464633762093174543796074094339009105863061299026924536998428556570023285553136673912108926652538836788152959133861221626845622282486407079254316640321043523984811117784358478678727819972705816118188471310085783168470011975211395289099741331526069993225956916045293284029261431700669548899871033318477093759219015299244589720639685901633885879693003166948315884483470980497970988329220887844391515856066544633619366876924872865923031688411318122605554710108151097727133274937683922718661540410841802557144806532843715164653947338074965283636703918902497294310752495998397802813970221636781607264206511775753272182535300836779995363884264207797620724283386086906671571181368770120120899047772097413466873790093940420435780990380438593165371066156694885471187975219962469952572677586852756926760171098121774889883566851356113839250664039334210241507594707241808106602532209258751556448677186611676562323465692769293769820278266863850739159718614999437606039497451030596789904727100518574525557870976749124847287560742628803366368617247920930185862715651646616853827058706169437116295908372871474713035191549531281810389314936291656617654782745489236611305025133240119731470794304660505125129131436478926940769509347632316586696565899874037704394650991162966572356637934554806675365662763520713921832691286039053728867018901170999885400665684971572135370668723930203659549025782455996629228555765232003632339603799417127721075148650008287877692836684941187755697531213383952147282863468502049372605630129530200779134752763055611015180859412402044568293256120097965198892807180916362502579612788900143409499025736985789337888237043905355123443728603744000739199207150777211213301789545460400874525840682760556071344175365678869641688653115340881942894923384943483337627258291928824369402961756424678028221639698908959532194631373052129030057834531123245077558839089204761688801813172012308411210101441087899335579409023486393520566534786298325189468273949495782823928226407107443900828654364882995352462190658040869303567064016669452738028063047922147346163216272988263184572794314598089079642596575957309748659985046017119051624861226261380459181148090866759058603458260796242482357513651978908692507545224830327024621559325940051222705919930848499251298123174834960647211755044918073713285944457012944258442167278539516135703807912868956635057377615021622285761839716423238448182731042333291531232465149866677547486424178564051557545727931887297736330862491853836709571182291666903354625877084377981846798893064992859082796049823471912923279195146934193219330205517899421506948535871220030801761485928428969944801373271435177000074539379169118608578707966268050065570308971848049588041036403677220542558420921449891170322308724909832691896317833541769951977593683510182990779904499753683643578522749288635773592714504089093624773402429013668090693082131652993713427431537588962869017440402605126625068582967698899944537583776837978755938431372297048065977956837372948968924421683194707667462842580931048019940562057895290329884661428184593439472872129490744632973955176127957066024505655338165034705658604328587459401507654614096260245510147780985779466857777019112132341009008901723131539385238942295707265043361804186917035686976844587759292690130471884609088701632134838358925594847039320851810730979461269392550014020850149633103217205862722032305979262526618843160180975901105626609140162651942581997197302011523594424126323395328208032461222684026403077484643968185407428304295845650125946796275557959904716638274541558860452866289351511760207396798312390009572661699649044388064358459157795230830657443269154517101345760369581871408929732502998219692581758554518448949182356979304297837446652953068077374543819576938503070607401826888444629498095401990545539562514874304651275619970827092707488416314967259350254984057996388376382521164185593713164337987551288717827505615218597257234843360171904000661979554332103180705535257975306002304001821499879014409033935570513831036924093642618130927363428133393950888884192679584652419084832112414469960878530962235223962932213595614680935771442717356520891822582336539697466033164045169777027473060463446141484279301570574601677965564916042164297088132075578914151572433851015528366870850929519753077069714964821296577689244744773003255970996573868123575669298503185494854975385085207553534972474265876004629338552252570243745696559058865972631869028784619100333058942668749324194916127955149886401432877900971992950543449041454498705803070695131437620660601967074118545406247157553785004513098339170331299198873648362014211211613800481801703709527737334538126512746066402802600476078836752010625299542041218975392300663970223238651185461963068295502210110645865579765391819956690970490392979538518723080143519911766505851756181264869208600744813742772786487527526480906486996565064892954078536361368493647254624529585608076628438768693136590881964293133769101054490042122854197826350484338428855435216709432416080623002740045390988715755260206149810600886306830822347688010816846467145995803118985728518996662974416697136040594188416968468639804742172343298558425686204499347755447696961192647140216437669990397046536059311021425570995665197524108510099527997519052026125212227426737725713272951668105772657451338567097391348594447899412451677635637475352868743220446175490818375791737649834544708766996629721162297844386968383907087984764348243359129212724162256509878266050530605280306005490890610688204429763342804651015262954413373981062830206772839953861470988198285931205781136628123381278841132079698340230867584004137044907545179795843750160805032041913327523259223327201983831840916520177315780963455541015025554670573714526816099058400462586177133147184794629482927145386385830544296398552247918909994138299740387425300794555897477640236265286810624866940738175690153960762475776107403624349100226193820039607819228093218519735436338463415057104936080924831466434704391695951421733100498543837648406768916967026330193706604566512743691417435148109339370468492951547866932909615270289499960491211364156079417074044938400671612391350109169445321402782529298276037201006859126367820904559010606302395033872540309057151787778350268928689811941383695113108493734278393580173483476820920955476479403157023157822961928294769748198667965340211468397571611974555962752809726301649920329230394907334310656108691499982754342777624785819371250730556493378665858458034041096222549522814790059858737827266259745738999256551594433595241189285188514592423570404060657225940548243797345608726918124720867343725649798714691814587620612032770113325691273829826432745095160947871397525298240845563202101218699517227595528598683113585852077618182256489203930599270322380106373511973239902854464782668113033936312875314744714556259950751386365325488036664789556277085583850000349741413229373745668608739853324274272851237860913112549454064754126962419447867699241849037865061239535401934005051709648358405542860772933686647446004294777248696294004507130334491173895501937335001404030712612951231980335820358301161979308360991237065290509399834793347299852067565486985375069202674863759661035591294921536047533952967353349893788902809882332222620309709413599376596791089029378904390524809598986382979614283111531449018400136710197124009023736031540073922471643301228284901606462275349670109386653663092587004830316335765432159464631802527869031858322545334637761014887452521710469004534627750539024938438675392853381872720581820059876074531188045673843542849629731269565724478797384941937517374622400756777117338108208870273635801281113129189258272172761670110253042472659617435398009301376006054311544047647893244003005176169889061023413541936950779214089618255942046491740162937701168476274967639276313224112787695155499233386388258234599557858838449692547262189202522753731950642747390586744520594113359391055055692262315099652178873501999025194289057835083292996115818398416784116362180487754453603956273440457584702479898228829304908075209790164375438597260388323130397528988271295046677924117522956872478155434339667383623507876006717279654844115994201402212161408703218913943228434965290341009145469892228140092693735285263912544081601097847026814575248314516225022403156525367022236474681097782330994276426761121423778517913364317562431807038030860214310546338504663326461621177419182694779430636428640520829779390226741313355246090129001261161145189098748584567705821667299259447824411363389119670021407884878532502641145733129909474685223704654089870511517194726015997792871031037450133369905780607036739350450580351722679006059172386765310756691764487080597032017009976498696152236296616098151146488836353711564698739542444401811741885780210840112823960259920744495119898212817830910895774064168765893000025494233580453871372410078476667917859022838358325407434714894655775115021811651299201497950328817553434935840615074035765456029805206088928953509353008167045930882027132982477889556373560327045149099883111309352786006901201705910796106625208602779624055198631769225291029411634980059028573520278549379552754886470293617304294905364947039800506871612606899234299585766535239618454113533764726614853025244231900891602412396799582776430361264772160362637243091569784412952229474200294605938968122565409728487148158539736295874612191378169153827128298518803691792600974825462727197999497518445399243974001490995373954858893317241046345205864546214043337093847535196261385566911205092927776779297912407951048677802667805929246979368565567022052022200707639825433978228895430546597453534270424975245339980228296858948360346206272109631943758571275497336701845833298619066939987778132560114235888731332186586312361858134436244491550373975492571922629504243767084219124058826972191245917003989833467012346034764246808407610832241022522756093467887859695603134514070019916101237927686930734420520719010110381645934044901671630294180302832585412898354086404495970241150819416558697392953920370432289603370871472416982245639448678662084228546235766879966624725731967613232897864083510225148468735733239329616072827567368705339114492246921924504502410903391273693052400130362461021395741289522769767010154332393936288368666216502656687484258334917589744503548096731338417932736647752422356116135443482271996750319889517178458546935591916402321376025663200758080611112197087748822615545432571389005467472363918013584520412900279062027455002080002920824579110044437452245582397672724156371276130022812086566750154700092337735834975866438580069100689228844382556757769308702306834180885399639515170469723419358439820487802501062024272634119583000007448952006344788736230776396187198055350448614382939707722778066004172718261776824728000345900211027110853470093853890969086703224479392603133267733544851640075720051602732862901665990275021644569407724249955913894594526649964842240358073071651682136077662691817984264959670123632849853970454983045298341406293261523911830819238980626667191223739311042151766632624196719505097889502266869730027946997102361520730286771853143490776846600483572231147477220783185925484199273981090285968070249605577184613221681804915006119575737905408715120107673239965284398994804270408288245195931631286933727133847869495662784345877553086239576324748545704325277162196735485831531799458461002689997260441794800592698354085912419799291949064629842793928503573806523232200559729180942967258078432314713027125184694499416719458409975503268940479871225979149672348070401349134893137664559369583883801705218347608431538430631712825014340433681003899203732751183617930805961376606414551833663606646780612526313896532788897913722397371002947173998951533874471807432553914705303017120359017742975260487519963424554674641427959816232192711696165959825937030448099417840834105822809197327817833221603486801122695986685200041109585713588186600371840382206011948158070401491769088122996784669126654952989469376262414254054597999125216882520433860599532479537600501226405340773583933742043996728435210962880563486258420632090317359520558760478485975150462098210747743969078190039421548901507976376768191505989308313030037731245431559170776615837907002371867154716923633531688076485316968757264033039715098789980058344676236587650453488810710978673572765559207827073733835901933462241430860665610460143428591220944077032776412152964185871029017499723490188049082490622491914628879010365689624504396931409036831220576442530148414636843546221209732605533303076324322795716010951895253157786671805619143588430889780707914651797922220929363218796918307979946725592312178588395315061847972756327176163603912782060318456869133019566950989705706717204717618558798044002288847308345874602095145714392988588472557487181182503019033833783384433230475636013950387764868891632745507402708873426021255429736734060394547091013463088687000187572350927242386179633435482391643351469741358708247203206654229682180038896840101801960684398488764838883219328683949232098916492117429165941454157609321164312137705095760728484953732887563993665475533563523830153790301300658552976750441262512575748241227113688630479671937178562124925769470504900561550732007882666190648055635028095720354165331827742670512124850281305910277661903291866789069325088435004355991431432927610993611595053631660510345556396973290225480018281009186676762405313267756370433538596900340551702205401799293631984658593298850233121425426244531025344538408462073857591617539157698137525267954740455601455107083544413057936377572449147335300070542409471821419029204877508951879530787249423635184473676911613505067237364100502226303278254359822318153297668740765805425434790744199368283138305243597135199571688090851678884096913670794139534666216267638610876542718124439890966076209788171768038610988013491749494013356857134776445142666159377377540575702905902511368701092492405991290855110904306805853890903456909964508984125115340560874258055303458142448118137632786401097457627487368595372670072039743053827290763614925791618456003749116205441282797625711275240282686044134091491070228536085931623528521598530004736484865695283557931028298929789288485257990871817209020873507968095994246646921657899833023455173365271206333996418035316917587049435512373540752279456828424758857999683063329675326517598139862736904867601490921650112378658216995364038153836986176167663558893018116250994092390624654388890008421575656596285002601084020614586614834991715252545671901200699333080803814598762671569612653412164790149646782548192320280134287890706507075966102309081716955727707995730742482231398450941328644215918556085936471883394618679862556484680648365944076435799944166819824261515206962938656711412910366215044706332486924271064091741503251281926091976731010962506196335961623643021653565447083558089528996079546522686334589547863882469935945854205588800800442192404148455435697281273675348797909499620561747397542866434282515406528222261818255403093897134001649815065222049304984830274412766309456708316713270263278151816481047053885467232561088199634708983675613135874715608745403415476676180713169958390960386925520392597335531545861449289854620458651770616188768565844401693486093714618124853354974388851089091098916803402015995275121690408129816220789965659725481598670533533250511555056858944355027902649478578990358290104279422231451114147445042686711678662407892512706103695593993578821467656999899539043345578046775830747088793006145996814610078267377473816337627020530248901680494460313525296809611535281175952419376886563144514661332460135496644075637409950245621087562566215142482660391903571883539836670283936721565063473191707277289426321652813560656188741780284021731009278277334663020840163554662372810285023816021275129134945915496998386961063620282559280987931048077009704582800788033246198833817285919111726547809226658136147581277409396387393322923317651842810447593429017957888545964228775432727869418043499216102487526203974660937084881460046659341134705226630091081049809814412021610041181851674662072348824445261590529068552007079849741314342423538862123203597826886190225332624726099447617954268772530635294487954015373589096362849277077217390162043032911917407388173067317899460937686240575244303792403287629883589371043354342088148980942257680282870736312637306306489973370708435236138158164599740597278832802427909954114319969870841117889328572760436479737646587399726683567777487163061703308329774417437560027456708465822403541830319177718255922602362656060816664876782997411683347707276160745416550355183778293836591784337504687230095028469137655346191931321186734458346104723307676449884240934632352393471199618792451158784959944465596077765222234020092034441942902149198575509983959665337076336241587440520330394085421452267391287876493012409899210330076943773476724861269496005786843719097509461165084149564541148241159636107885455582340370405406725869894858580641635453247557017751921409509635363000803084322477198607763367124598453755566257762558237539288095308168720923361353382166382681075390534741989668248946173866727685331793665622415193584695350479247820876532871481339738826986002941145484243021367911094905427550498487529736822817648872953969336107600118736234481173593602260554266993324637754138729074632309714989851662095721395544984376352981088074949422262490017185867453275352270481834816347642207265361749405587229140659841951147492972891873734802659568368319255513056401799993413606736431656269075483041870175412311168384229969620593228450217052759988931097816151460568491595815205328126164360585613212276975854847800631228813644389092893622514636655339206580271686074759568072166417095155776757986506721983374269440530303830936820283702836246966132747787582470888724944004449539522205529412709046030472343750641613179156157860459508139547358382659853749598106340756601553169463753085365144869924665634794593380187711824437026888645109198611859688876915382759113182203698367959767038614377541842062241630586963927201246436299507753617005338995839659962449248516130591223845203807145296694593434772780400501709026687646334436649003345300038188629579581508147172278126852893566887166254941453986759307639599379913550333965376866598842525326218205034436659062091065194986485931045617658762868885198189770738053543951911066554499551405984666909205643688223620031912741392364099439557513885417481602065192216318498261368160553617132122664805702958095815347483419691494236003698306093051555725129380514966026168497021822268672096555163270927009689854291032062323281323462638557168136195222965566166941344614405543710245785961046147910207383995010062301889682295362625275051451067212279824625325292374500738087652965952700831972596351816290524312958431708757393984888141693794566357160947274226507548532067280249251284201784787761201807853727381395726204052917882616012917575022891309884671673371934683311717304107300485777153873611911302174508234511549483697486724142568158203846266802821899908818764220270504549383552392622568712443473307314376490717151715452438136588673547953186583778445683847794309734099466458784589401580688219323445087399696722240713940651172133419225850610366136612762659111378298305262026177776567975392069882588534506617281701835867905170067302322811524473932279001811384732790933897433420060496956797321733677208982818066256218144884679757757197437214683589933633250692706653899230007002928156676006481203582275780300266096611490072864216865756042540621160941677125344531369681232790278475129560982404978120951851352773011297429203605938860636464749522769425295109488807233675468705825450245638927898460146926615217825757895647231194309355207336349575063417753907788637469586120528890162687537758961463319419801708603473511803006074561166835412945302749399522381439697893118033442756198712574156710893932030146837700859691764665412514004940518067921500836677897927002772956636114555819686234280196955265121293612644747329107985239708208502652244055177485847995984502612403746824953542432402911985608749271747754829695256876363053307835117111016722314199881610344052183094398177619609912364666330066653506212685709861730494780253335905354415179971266755616758925940111478914410418698269466387305647789838148860245387128279479545363837371463730936223380487379729164533257440157731245036904838124161416006936302413018153765390367184773588784626875464439013579834803463778135425225078888813441286322371640419305970583250949601073785439437649460821655379804581463201205092558044307089434520506477546973974041488977143297228059258237418464553023656832047620715796740471640819495850807541039331719571682157110523919679146793464400142950124146378201349538357762671566017646295041035401350852010454875442061261081304965706654608284617739067181732406331815132033499841150027852460949187498274169036130304899489421242961860762225879693471256206642019854074357565609231674411827663422033954074117546650975945603227969347613345338613460741601180322107652082923404421870079723541268774697399173711576295011448393344096496699527972707595871390705739464437862028973839551109698781328722142055292327005771961241323906511888406197084120358104146099952548410260415396142470089612323766326742186829916201643103121435980835753798901887411724717096342044744946916231682008002596311547070731666018078520027389466896668807792713460035053311044822089519595898324229091589770895054634752936275680316925597162575774180216574401324091978534070461271740845912866910224003312667185854179966695475948579155961981448156060746536081334475300363951906094638361178109231380199774957091929962314372006745701744409483573458820375331495606052003761354055748977738818539566796340310848050523660384947236927476070044431935574984306219980554377493312362578336026356567701570279262187276270980148233806660886532328106997341533324426500460999690143307916639586857562830466760831373226999735058193214166358988505359735807212755800469506234315024197676377797878560449587935645443177944571252166585179978511191530330214153032903711674066845197665757085650406290208263886701942260112703269182757467401614173884639149929461912682681214327871303915426863790174043290580700663389238512778331100918403478518147247232294974774749520969183809200328797315344755879801862562462352020774273950387964467326928402994459129307931877849197034834466369298835360092479869709137604641070290384247059471462564842109158450856679701567045279008662481159562410317815724816217533820962412453536658396931495236906171387915793868959089588399330041515790241266369261132616415616074724691467221054232854460210778621238979220437366340778548830798667114987287367721891203618796669350694292672503484686454383655181599187690117160846493865356771629470507634371798178829545889379615236339011212843726144515753067582844092970742077078692518026846821110680609180701667881826580344279127788187893163604018266108520016792570088614956149596173583732396034883935095192163812333305675752785485378067862077533873684748500108738550373221572788708273292460957757445048715052677946833619270289051412414468555331016570186277788017460031304308535183521894800170551606305412076898294911659407388191607322564495680051228194759246803811966733247518948146474399373153749243369362339922916901193829855556464728720284587685832586996548164456036969013934090806092894406010137577999398111093030159955376566840768017480190585607761396032645766087806799240906929891544205208256026829409868794623227081507628879410169598502447720071551852190065114300792076543169336713111080442606127687064584363374058161303469377989507301784000821897128875408172660231065413862053018455364272370332504031361803211300000515534546819799845594188181335084380551426422627283538099349353650044240106611502364820572653042643581413377076951093492040524774434687719343996340522906813443240083597297236440450403771258670616283005203969198433998001852258686476531643976223941634626233725287612344169944647803331413523437969082682644716042531748914431743624997518558902462806199211422172350412612432647684368178102112663949748727619945179851908770775752988639633969165630445033968950563517978007922680011675290953591246261369893537878404330611051939801743246887436286435902430820844856275058928662181824414143079801670923161352511393967684875563041761314040972237749410852271337297572550866744665377994416211690289343570881010450442357829705195124212993209597747440811881002206058418897178053492051408798202839609626669403413297213179351127801019364241938622064463657247524424429162013829450177611560788414603461427796777902024259297856204585277538765416335148019088849372019773049379937954169976458896411935359688870768748222085161377606003970065188385974182211213333874761609088670449181020453677281058436947901956569115616240916347429303046370822418900262509927520235421756420208862691214778866753883098706221855423631265615503435487133281557767242741364885025407858560697074065522121641022408717632758820208315833644314767471022542678829197855941110416934729867193515687789013547415461312939813031093196911787913590163004455449339319352559599379353250056581381775441417664230757364338853183934898425181343888366303810902157912599950842509325471045547088926481240214063754297871869787622648735459433154911932871424780781256335739642387798726305329647180608009763874908221820287097931288893095079124000121639318828223455504460127339834522969244864289229138439317198803070625477681914328836796425337810136880706812699411985260714017734968098184806193965850353073102523122837954969293290808637416779380274775052551698280818446408383153856300846954718293431237330009699220295257449869173059247359528764470702397829388444648250763820226129653776708041986084911414473572253748480636769321941993881271221406186431987417138600294591435446441076733478683005143022541017292343513009642834851145071842498550851411125015363470054772796939625910045765891454564207790586185237653243923703532372796835397216528318580927907250633174930811025479791844689919071629527465367131584552405122752563544212364030626204114111793620141866363688786523690331545499943783540946693837592038524191619262629328917179576468798386408267204374760549145196449712951523647716353341988522703842560868479643591887648723722440617869420644123038352051475131904873701646796204037618113705830609755147923801483410773929302842303549681728019481678471461654419699775472071350269820306311744188310191994637887622059794025250957574895739883195059353589920373917994704946156687823411429447500314321430923115618635868216953868069698002340168836981412092088308879518807371986050523360785325170568512342533574037422266105120722692624586685033581135316004056244953225139584102630408820515833757070878853487166253200276103734972602688550385888433780239633646411647858790032622969394548155062511371983579707842215602363664374736470892708055982633967458448086306522684089254364366429517551104203365775469370845665901502806167613605606438662246907304992608191117976909709040078598510872178865007761774856273990920875606438621089341941004601915272215544766268719378070207700708076153020954301126132604727659834437439486778701823718490010876741196989459466751095826630233152233070516831060712725472350721436087717227163641832120876498079469275604095008346912187485608348431268887373261272086255481233326241823995217600816597453627129329993541597943052315580105271032601571378805366693640055090287253277998268879806868784014535304324088335137970272753349064914481798693016250760767662165432831578446138099522017773060304569471927830302992953631137952403368651274048001857170300337054485558872008092554583420402930441940664737711495487814363673054478867913377689837262054972257363732069171352313045475609303519140101073220574867713292950047626951841289156543487148808715936256271137699778505146770249798758071496237227315632233030949564442567502607745280001274712075910264089573042470041906194108859889672418851986592553609038802179151577869096217213953955108791404666133491405979817545413297340516184585065302799662187401646955805664159752086667141941873267909066798003014123548609269412328734468979694272509145034572957376494838020033459888760496245567043688443980025185777049328161816941749068537841053872095651243145732564752797118633407157588539361670709239133111761591431266497988796004272345898629752039358013361810992806014028246093588963693393372885894264561803227156100879138082731672272273340049622573733320724041256073054518791883864915104130353343309888913580860563189117150369354623837899679224798506826651909930730354845029862670236714688316978227856943323860121380661608010808162423402449774396763884457522421839488956340551115350883347394337495821652740121325049737664821041654492111413639339588246597998913713718691587948952742476679739821940755802828771073138273761130887939414182100752438787952923109129513059236716727435183236850787496121228816358142695693396489152956796311533316064781526588498088572877536948458999077758906551819928396035521127809863134174808472337539231367180608936141457485862334792098373205637907813230855591139244759006657614461699636037944920853861989406799783970266638989492958345957464861619646021395148263858593866619648534434961374121532270665429034265914170037139809566433832743705531746231771169269328763084434349517013853541458144759336396768955413642045142200736680177242827654892930933068455021296080441489643596314183889425672871521750298685520666160140091545993563178310984801640456299130899824338807015212756339012443838669900832456347454210687822456273959933080814176842505947177823200539473897034077821994603137441030000205223834330067342926609067803432051009153727263615164252554212957605714608092247444754619922295708305602053625043411169910065184885111226453099477461739904033143181376263347657378108068302743114540788904005528169167739927821835980870329102786596853636332927915834655512955419753388493051878441442437938225265212830677718948467682913357870546796013733370342364855284941351653327577810851591576067254717855457358716876462680174676496714931616688591231589523052496416658491292078553597163613698671020474099115886843855875586343787342581544575248447311164450535474515459951405908190513004682404216585376291601474966531314349669265643746403897566345281357484277170559893972086402402523349845729894642653065900391854971040051367246052984048059021374399037913944484666407034142965245197168875163008736776675790678939293719196894726132041980032906796942624460948836430053930208229095995089462762712490316368641969123631020670731669370120472553462027026917867556216974595254700001307006487659051690125924518177945731997573631923311367076271384218849339324349503163490052791142117345783922642910030751062487682180420219170767031765166627045036374173248661635090743002531867835133035967241023194052421673527568662911249491174573309553315361419400693346334030257899203563931892532977499426574254907437738134145278059141033833372219570266119177449938781192351774928160767529752650633928781233741219347476044416656163672824385191303209258339724943862579761816892118194040773807799935944774845110502365459410905428604735284229550419328022618228061531871569082111723717571809129230379279593362915987809189541828674641527342124638658467223999313337473855049591924248323730877026178693151728217162727104800866915894051599258879978148913518595807165989664804878804653216591489042150255262429543546055856230023571660680954072378998530575862135074482409878573920683260567552873575421390931117148546717044396954360510426179107740228673710237753088603027404252034750758624473163893812511889619685997696552200949635365870460643385311612511377742723470425934681743915350232299601305842609285764994200785820124910439986002411155163301461996577627848014716364301754855043760534540304150082679534150773663015128042502675848080979775695137481502138768900696409046403438364354936021674518665144589707385717600467654805444844744701782417810115011406197404135344036717950090776493648960791183029679328230758809190280983604916612755112698574983761346120374454394586135332402350321478668720530801024815986076904868020603881028901157437498480940691857049988501259001337663805311493548322750613839362679269154542500209996114145793408687311706095239114524716502229576403464149873371316716173984597987548858839885136922618989286238237383066479295683558868505925920026073734659014634557169514339964323934829610980573916237651713513422982975483068435825253995359358355625178843448660177285338791849237573716906119310884201109098560265923873391294601251431158400671796804411364467671962058042917450824322538828775702947726032154975577659059737754358734815063193363275247972191700581731522212468763168153548639476875513219988575230939274816456890804619778019173456760674057652451676542800680486321427919359514499888579632097656452841945853904488649105196897688302403103733730719467597929190055593800086073918120458965304769439975191080929674642961257638336920135500374155735207560034711645969761502514580698803420427095113570443661075490996479390604117472345582986513899441710826374198698979697646130529093104113921407879696650193479318659533699169665151398821599820457845993644875940168218489667185809201125198670343076644811461554846474795423122861598940485005526854352880583125655493095118328380435841633910158509016305018360043043489145662270280453967004601048893500329800507498850596789943144723291740066400251770563554037982130551178790411347201478633870128927223945098313358871527118646194559166004243872300777976536241052661935753258516748037384570434974981277590428109960803737751108276529939826187627421870954539804180793598089351442235479556808462157781462739708429890988177375921871418471237524346534969606030223619639961406046390293332093837507032919006448550974239421907372779979390847230648101877328256320624086351069320392784284221978783983217538923900061501279817824599759948693011445642975790992672330185147710152211393425008683848750188995175281052003634580278433400869661383786816421722665913976580946099063897142589222813566137792639921546041397707207997654457872118236503517625291330889017329472445125701809138103450732289604522967241354716189340585486808289812943375452164673496877648979745266109418952697447850013609317839591915908165650511567640580598399144903744947509473848785549621023400672098504585132898342476858025983711014369790586944163698315989207894401646334696834556898554370923409648563269882793811943446338379206663320727296607096722755185021566678095267437796331867853166023567486569556403956382215586461172494997041131501738813514758004408273181689107114546612800158704271493802210706700536725736775407692722582062335166756228542017797987809050436519544529518571015291141052289413905186630641655694439537966804303157323061304784646105683179802922151701675189687971940032184368018175720042748905631687186623037593175670287406419791628601340503956157741700867581265294309178936858386575424355212642742076395872002503668299228825332996358646304123329974702543143612517472874059680024441526378928243907447609693632262610200271647641690863353537439687868547920705312078986203889554504574584078395004752132788211958050431085320904711389905591635825985771234888578593162707392331955841670900523132791357843461926931139266588304042751108761760823898765576868101032310221752517586228176547388002682291047924677339183503809027766691017036593854541476422873633015228760461241852747363486695424612912062422563250351064100636487246555320270805988050836153588384338987936106036066263891316497196697701034777985605786746065988546048848594741968086746019188774891449607362173493526983279585571462517982107947911218155196059451970948181002143511939349928217356750147081844568481641776554318160050711057186645116036925408548523560221460071876520188510269038066092218451761350182032682418383810238273864373584436110165260722804804275142484677205241222239163596144130412683330252252750012968797903470497938727394062129605753322696255546699239588128744493723370719618979984776397889680721446787001255658305823001890385097662752344769227098334497406399515663311066359459803093133391655925554283339514872378246663129847888653312102149878752092024182115283084413337275487131383273890339862975166269219510478654156058880182160980879481821985683226012571165176764954496971036019131323690620166756368811232717156535179808463830027760671871443470449851706518481199633498312121477263535416465560674010890758787072562021580314288964479194899061653163110675144679946787693545793415575275276418015499601679308694808468960565690614670809699331410449158444165511074335328037074512132965070621006599238439437675321113712585832172791500603969084170210415586731654999543364495913257030570038091435658875086794220600258282440838429845769005214999165015844268297720879872259497173873060843587857159800763314393277907884556534781891491553056570189408551970629660694470778190698644250187564131903676525975468083421574483025202695823752739757012323281015933038997117218049462623350563122675949440697613651778964082611056382120777535308448633357108169698287416165446981970219018441454045120227868088989524006068109671515433667479298182991242966801912580669690195189539001896075014522507417069019325357661787759490674300452809449746612692889799651521469389006962855804721316841056387767447146932303089369123912084567420224301036912233972084623868368311849641348482924484409364678683437047624300732063471354552712045413641293721883037600683180269058597470902105165834104497478828661064045795773744618281123503683827841150886329572858391688545588762054394724609257791828883265460312379386101200170956791971638669572395546008282681259799981251528159843022387409941661221946703872391143142112492078630625283201051236891437684589976569831713107935250332599210437301252886594833171099774969883244217076710051816906739870798209959516772394898195168233007608368147548539559096506208535086364761506830340015876540870750878237413095706955790179912728121023371168073417251737099948119334464812232081412480581810233172122768021817732346464478002560931835075520843346588617497285458676911600186759930829400598363330795302400150568031016426351707049504948975296497193924682115576468704354114241261736201554643627327810774087490955730668804622320962787142255029254970179615519753975822344447637649975205069739915491180583736475782009202330435332581450078332442578931846947082453160736860171951768781924566348534836603928491979854220002365111211425247008546956191661623526781896555385280009210229536491498198529342792427185003596761465900842566462566070097698597058347898784564027903452497251319356205886840087872980464984067796353957925969730063893196456609259158560936398426984066117049272826364254094876161810535314374142320037958053579389126618165277142400635558382051788530302408167582380200679086043791184497559276541238013147898721660083786583569094109318288549972425906575714640880941659053272310112468276904709774964921007391330565295530256232376874150418088098347900806712565785822879406825541382030029396928137151138801968122834623684616168910900425128096050478065720518255494789663772655041557862987395752077417260632374164653496114035358425813398976128608538607797409222732081249925013087988919556743739191336637766648949085040215578763773674926885764884216897651591506160887699179488156615165135797394286331583943011098225379661927840805419684965749985772464759838903315849759232546923720540952823916761341924748295881743591015432814589298640772270690852271529334113767362681739712936605559711889554845116212852751201334090176528417604854347200809325649891464192856253873929894490597648815757085047536114598836489711862837860961307925313772737244331725753846099636442358146204547269187768564435559165969673041601048025399131573879946394081152335789174329919905330065644712668739317468726709120055898901047778880470371833373762897569227375466086429248252363873567310834589336955468122050769834080625957848516446566095387351480531250504480596520455055981004371625467828437603780110908199529123699934704062283058066708685287823617214863189300747063569072830803767980463603398037591327573023538649592571565447535459569328692737316124237527027321948524660997195942972279053342211971124670973335510334617802086050151667791938581273778726555431996955083710788496047743822202892775081060507320439043911230367332328651000871285881848798803313060482140466378843339477314276270969115709084998369298040342220641842242765615366439867065539445540437243022625294506816622390252410094110393915737627593700692946659383676445303742545126923455359456539729706287909880149306850793817077455021266526934039070871582326776366908615580041430891553557210494410331070773227797222696042436504410704988713904578691527313736425744228092460438119141483645101328402190394373771586770815915725943671920479358291574400093424124736149388181190620185800770430695251016870270495169209597961457494210887553332602495705390239600770488027599186858052833283670541695621783683906288694025518213791392002063399548231586142168212954074789293103494006577541322552502380972930444056026647244908270036202144026262107406287150071489608193507888205004169903493219963663493403977654466881506436697124994677705248423369611799718969491811494578080954095472926645816881559192867485323190176142666767591389881400848209287851494897781214229340858045175795774335240753816473802527352692678493477836405519112522262237700366976411365323200544386212847862222902901132589963751762759293301787222585980969367068671225856680754037660837642665190247029956896262773352924281479928043112564562603114174176351109287468858311435805586523713472416957728529466943064853513452503079796982395298706318191062017823973356137927435722974677542090090156029571940263337761408404523956747716057568333437568100021403751599593214102941970740994256165513234326877066122843741873994131841570990512757721483209930327435286981522755755347966635341113539810873491579805364154752937985346640537722219116661920743268113179004586825601664519222529842996084512605242589402159841808183686112360697304396486017733240391196498093756996310303749935413075346025345632879255964803594678775707553965344322067736091367218154498536473846130075554098327901829450547604230290543321996917661226686943827846426178608432011725757984923262204046787011956447043824692246829967897879388653413244518503516917089505796171803011767055903687489146991439201582173706123518378853017823345090020239811212206883186204119834438903122170471837039004582429854499073755347407636934051700306797646502430755501358369934556491596093213552784008967749510436234785204113477522157072327445048907367257566516488777844077516288958590181143114059355269409727580978066712125293746857565119725501205551727889351696661364459928573109854036586480683530810198767437237390325243066341030529256167311145607738567637612387848279528330038127345895969320179267659348073877075705910918257482177127733659521643352584268229855437366586826281516283648667420467777867110096015705051777506003273236984817473754848698386767919036495506992880772235983905440160126077752841307369401843567461689919329665032854270796152027716334694565691907738957469269942773176798393761462049932721957031779611872135682323699675491345098538994542864551281196177764530653724935966391210519414056902693278868875674408605632222221128759360040089477281020032820572631972865431378291324448171691538865541464647974262544062803525188046544680090359127506947609477303118671946766427596350771680785900278336708818380554191578728029741943277235163575121239622018343744592245635369285729876304337588152221272017723594834639504980119016186361537169567163679501189297261301486409751804261130930372825828222976419493206930113439977554725618973774769384106135634663429079220295278282472398332138611212213383124237929467114238346419497146067545570725397289621902950402014380754666494355439361411096945625034951941777275431597076326567669624411473533877680868645526357860517219488174888144614116296037086526947497748612982582337505497028200799039679172061456779436972727359464582559791210425065788457180066457583905012819842888043410631066587704870337630674374863566304604462692302234210478626312650172212110117152244941339520416830974248159256833105214659252010599262342811109499995442923350131651195238331020696362046834258425418406078455469261582731633789447683570457060868533028073190545551367250489825590430686264206456061546883346601502753893927806645936248427287081290761246732131174466376048792187427355156508939437718528974354426911475880001695415479681417757924617508316386724588012623096978024186460828507278073108737168687088431047387021003430699872529455655226553811135363212341836154647648500108724481272934278695541159480297371371257323552540824197755012323323815129224571288133925945544993966497630499806001735254018866225958271278313358416335558278514934745547373960338571016478340145366935186262317896742543130617190091167740594872559694200705500336500582840027041814455320149031985169994281880188910314530541986595329879953303374610777106208853813570487222378425422993943372703614051738211357431636602887167504235561699510786522484598996828607127320423006662292890954728510773509705552663118635763655020025039193805996692127824442955044651665845705018849697152850027874766007691051031637140077463555540143776340635268036479412018704053485576635891825349766285151591187611330167991720258031569744922838570617580571531088116859215112888097032337446923465474897979166150024543313371302794969080135871773521788772493953805764379436876993207845113619739930586609020754566999929191604175070288249924923339751557265694790807030507373925503380058299439945145605315545561376922266882641088280103195485136474499025762121215813103609598862933510869430023464715997522318591222609739241300149750285285191084863355167676970754051069484829216712554609804519837072767255755406060745721864907572517240424541701971542751640171627787348637889765075770450872843648116304615848594678403112226899863083092911079542860300019538630997778050097641961803276746140474916760600334982994589830416292013095527202103135853284068218808153067963609437712352094519712351139370240766066153337923600394234349147731299490015862300678650494612851613000772673683972733304556792958056052881271556820298581298188619342308526600611457513165994544373940096129360825020106878838984160647956359150116328035926857606790581234974397231758747233810433259414178598781272551076802646284869243298411362872778300251528893136384654078847062904102142351253480794835611174809161083164989458404991278749877707543420423481925496200588999686673743389917151057968407581280129062165115447449071199380108350836970338024780504589701829957434166303508736074138206709998086640896648569531710055959613752323003903685358334791036072815967211328353609530351598953029200763820992510330385888427606041131886888862463291476592438586173790590474320129794346851416612694311619860122866536197682275454872325311469821323539224410518611178678753687795580779556487436530493867407816203955216388386715590911763593925527356485370284017305041788203668789874595188875807823833336996871413871519152783242419913375000316195890916643047712159026748800800925767376945246023937291406427635267773391195850100493298137068659030371219577705407238962680428083789974862467001566074490687191313533307203251729879799983028282308499439675700291344155637572070770084595975620774883082392685468974907321104507193210157263000803407278475967930947316729879330853192875610608387505944608316728611926359304573538692994042891885507419385991224238139395468427326968879476071677008042688228344829789845014810385193087325912382102400885411953089488970941955665870024149258618575837122942703345386035433477079288346276066293820621895784229335462344031006747735186273522875384439295454276943727310962557688777449891596601838854344313827045770686051606711670451618761402146876902963043591342014921800234070220127611030812344129871269314154847275831686248015305240645796690337451868906471570764092671482443977808928623690965231236659773888671380712012877282999417151641382504201060209984410354643955157536058566377381243881694755294256895758678401903096854208926654683746692245548321510803873661154825027463156991664387112994785616569573029015268487593419143923322941237894228351342088601024706455848036838048492808459510832505840249726014017777401903964088919839966299798606783133087094473836325684708164988196617810626067592204517662034275924325429256291525013581580546792197327840819142526984829646355372188807842467683944739397547428987514890941549383316074412676417989906422213414124754857817707541740573063911235446433429479666841958293865825479436209251013068216937082304378439097218921163473184584818703077599659625446984388137906947578837425686098765646721387203241685798424159309768979658746841422863624335081679778585130654869471979195064339904747508897095116118835977618485942914081075164821549021595527778569937842168305632993473601354106781863935123401785545293107358133081710763181456335248905696165354998522706760586165104216005584127462417460815907050870322098430634381205467117181925770398614923805228113018811551768579828148309864434066795756862022954048302213891270213919471314280753826411998469407345631553707633252868026496489579266580543043200393728305317544405108558092399281369331622973464345909505901913547936131283510975084423334716554784730318416837712658237310460582902813446361704304871560560414997874976565343786105410914999647762171404703296853731083779116179818240748481691907818377076924781185538175619745113405611047732702351613135963105227072530481359272275015078281353317273182737727674926033303026651328572133474444503415150593682859066427215153903591291753160436664941698442417141348117131562221568754057710768401934636615636303038811540788106526229145467772572681100166442087949057896647615461056489882668022220954976035892723311790519645336597958904132547136382749082982765321512708114076296891782190961652756822508107549701656435761102637509238493939588305613927147375369875257188947851815913263547556914346004442396115845783843595773278490842513964289971776946105690095435943698956482224233478319557629240869296799234630964382875216479274716225464924864751417582921044095016619092498949817229892370337275426383892122973828959181065833264937236306350369859434746767180791811515323424058585113720326814293675818339388523619700785207138748011674921436853699776262820358861996025382230849118782790322328212699062657343534724091254445185589551208723021961836831564016239161673415889527315008074706695111628319441873984158123024870246047437072815049722425907527016174723100166647347266747696359857926235673541564986986716448376975132638430873160540324121934606215663164026502527291518517204652352652363070056890772927314788072719329981387319955987137793207864952194086090887195517566136362201661340037162537995299387156860838843373805153882858040441399686036690699441215367852570324369427341133169561286944865115826755706164965418078955529212313880920140533689271264525529951948082879849828114554312956096198938342544115521415302982284262089068075036605822872047162852879455038387424329680383394638511697522855922894343952831034901483356258492711057417804993828734912717883358470440843429855369565079241389672099468531598879948937963065427424636890476778131610709162687393146545193987004902655955435803735361368334350312981044673421823049909786689373099158615269846693087245840152107770812423203934065806162963971589973326831266833930809650274558086359846732475191442424640277140799624848081289235542001064941547647010401475311336501538285732430544313233667799095183055543450721131701523632177079234813641908876299421062730143840799146539221958201353106789960867682023139919556578226170122405409041844829009044194328694135126525019303987915091332768600344771858863375904075177488743325583441297005060178728989535542301146124140379145199302172945562592874171172747471143203488394145105773194268514108980762483183960406467858271295846704044482829418264946958392265078764912273976555579197331156701580828093979882339150733718919231009751083301043652804737719851823313100217832889770119140923031939539937326749168808155054562428085446954741502630182944128355060317230020211844691010262057497251104862840234384323219223540334955376760366829039666972716491882723793745860197438480884032096082411617994027067315011040731531623257175261336119305050573012582945221149345010122924468555562280487642276608983929278924953715781083128971825628986766512301135510636137249443914213794811771356704453080542659234441447262292640345705855839213130829545771337009668352210259143002423386798948211332415797169040782257012170223372171014532375964384910169664675083846024578513360920668672082314401070098885462888581067585978246777409599225757921821939745314077925163674067221166159526433881774647393274885958793534689445577960451866707797117506600230322955009358363907140353519801375527642835181916711196380094728582029764730388891177038324823611512395688048258990399306666475673697684566068158295461461386023135573214472257185489562473932379582153938944002800627660418756030973727134342534408691653352979245130169438166448095172971132295350033912814009223046679411254519301222085369543970282651282987668139418006829660169868044025610662102705042018176311725493983844744720132589416561688085180072777236879744886804975883697486283965135103101084871017838132876012088429264410446714639932455876966590854234960872413746773287593117067560217979269038809555298243342781695519816762508261662998729212149519040183731506048533922063758445277872712467402880465593221779929782253060214953452923846882218156655347378993391002974452447848057635188719775768299653740282641077901953325327684728108984012777425529682582546134826963797022004855183999697530601093110876154040493062455213417877190695594594687539328256485518463874763213199060340018733620513505717385748893605139202464954967537443568038916919060852962175693771807229037966560180645050463715444486687098700844047684691278625136965038396083105439528227519670002019133443098097003948941106991035946085182290466792110644971846349156703873916335785375592652525211853459597843477816147569558310771526978105527498635393142042152233880450606897166805911239510664552377159703445825113411986677266180427155709224867012849711604548135207364826492706734127738232082348980984672432619007865771998750083123255040674787300445030022039066706973975167343103552628422762970844618956995371757303039852246830261756713832285574336155438844893705335091787985547696086126387098723386248911677354070567261531887012345095140842894998818311487275791953432266570716780066102169208946772938043831470261900978146647131361465669299657042623781291036818074736455385148619599728912275634180739201935440237826430911341872066796965124057290729880773851352460301034748304164627587610210329307320674594454845111351983918903322953789149599927272881236179712970514363470859802364591656547512467195599529210386942067880993750301086280053651005258536558763156310776206495410431311978090496190793012574470572300858029619125110254514452448385154291264183085378165475826257097800158227346506105584454473768196560078214044268772991355327289701937784350890715143323956962857173004451429294949216552569148418946474550142040082680136826358312173602227186716766123311410369303429417134299395854064841921521838809764931256924073049437058677723563047224262288301254180253647923157040205447447326055050652855580727273488644007378445114542907341270144158508556329921967199426768711956487302968391411658019658529534830915139050277576278805711400983145181048059334046932908196843870130133898441104512077381030916225444991563702756496534486742925975336037529542486480642313298344542108361228142619106386108831480352003260010091532516199799442139842375593269280462409164063178228249531813974619764763822627325972702226546095408007407372421492867335085623965767884852376458584920120745663955389461114572267526262068359948197851562705191863503125412495483217848543893660912081094511578754804203398798124123722282780493482470389094000958490748084283854192618500975989029071582128615153259474073446326218807191870517419628453464446232855915264162920589255274257692131634030369009120282555345842390954510463738604713139986726198640554128983601899743599239023065666365049984070216969418742944961110365456029847479757525059724820325155489646750543592900900594551607624207132668127356742625584616697945686187972750140846690216739427846918537201836607258122077101550840087659900192219041400671114309958378009058369114128321424322802047675307363813157997588623173798922294402805557198841457546035383178691369474409972534758379406219633150416626241550207533906305382758263405319582583917190739307964423680199542760144014433774326236225960208584682212780858406250165632547388708744865285296349966074633437535679587159888024932031296601162552150502857740876621176378589353878395165664573489536144479932901757353726052204690482332517552634898309417505085520481727207690557819721086146709410514074103165145909539775963999400079870725331518426988372397052797842234812508908495708722069815599458149517634089710224303141298426309114851397865900750290060972869476895131663287519915977331663667101722653920427952020119786865830032889518200404296294060717788914238677022407544058332911788119736050029805737111943968359266001989109414075795679580867153235314324291589173072796194971037760112112823255634293175525801571941179957382581185259560248855561635378462418394396434728065249581596198091843433569725938858920259791103200434654311475945835178996648162769931776332401139080628686891977389688876677091112687505078934440725334113001703588239591850394270406684987623741469915410662094304916950608122091923612144271454860573633609143146043242408322240362948934728218086587730880005823344429584156719827063660750775902160654588925824243803059440517107585300347136977606131575522102202805608381604307399915313241880145022163809631204576413941677317725577562948335160580537207038133096767008773568522501150421868657871384417041075013963531648629145248816186007037914707957825586266460741674033074315011063193444869919072359347425831443933455911461640390543447581580271777461894393878383605269188928901986166608868858730816994902883088967789799091339556070574516475939339318430609762175264672093761630306494728135950543183734275399512494246022847476461678944044238774366200495571162192184496909623566274274609400986439067391006716078022577608574411936806173435361294156812318580669286647916570469799024289872777633819243043942009958112180121086691891059602608617510003681126472001026288778045340290222172982965256193000261341394449688174391329276052575735908871353577496549636863209269161322159212324448187382656001056877232833300488814341316988579775809571897207674456911150797421736081817857624189587739392462308455458755016401205946924383821022960250619328468293785805355605543931753609025655678189945555295598127886567308140553889025043718690270324876904895970180911110991038924820613090452011245435799135756926914538491501054708643489103921771272221362947676145568793041854015878645789512759371262952607520987654497604042846971223685996406905115994509829780101995910319933295930890948995497715410159340667849985186172143632139856957879491378552100412654866638882668816061825341334281256581042335029733721175571471102958128064409679343619083502130178674258009594343284535906172797271782873422825802557292038623178062725757313202909809538988772453472644880373162326093119492224195458306444814840270693607988243821627501993058439629604585151542778932703348983291755833686494489758398078214961561468285947555366216575833320564076482546266123187934388629946785298665320702550467730153864551635286870586209505116968546763922979415330922682616596511605644734452643624115747519616448336746671877015416650394255663590646444233242239468311369670030854200774310832032937324430777385153219212674865714626013586229942025426523375069166790154612123591712119572470350351875660688545325984996872016367950341473280363216007865379654845901596494361561223713454128751606269247103341452497142175766503570988720831632929157322115109466848454226882150644678957765402825955877007047350651223875691686983921797746626655408610470045169569127440244448495907383023881213518149994403793409798876721810324461875705092042089076570500838158979042960311315134798452439706980643768785961268299900511802037915246660856669776449804650590517491419111609961817526528113562639173762785704418954919344552910440936090206098117611912383875593941264967233660286691903791334951122738746138791915042525492439144400140033321191803243749935030999009613721027027251328314228398782752699198893309486520872760540597762623920558535516079131187541038551216230617271365984623409398110122738087621882846343356454016859516896068701410402455917851876291108089060893913331403788736405032502169131544131250823228321141366960397068460872127057243567754430510323984093659711944438360168832324869090951230214766528805649226904374638361007975822880635421901480857411638768708214438560450600017992910485660835684641397916638267039157843163521689177984215598342846425600363799737256951352747832065588359932674237722020233881407428730461607767515389484824085474619967148244989178255984178151520323979834477642937859323504592453999730279667047905459353402119423450680430768380452917045731190171906080013388583086179325273820753099214939364451892360250800526509610039085465527844316595090629348911884658406395176285673293475778359306685189017631069712011530325432414060409268914120864436421737417447823725716718773169753172241924075546122914764633789144895222903649610055947693738614022861604746931209328453490831294374249946061550267615652369146117702032870354296668869197074785796241480072319013512972370106424313270959366787920160371663240137919725016178746431100467161295172473755809111525394557916351801345731699118456387303565740896269631703676844370270666165068856032762674213829208460259046702563666048041203220478851586606531578203707079297275816680973263647479986710327757062241627692040908135027375053487409062895062716337334108039931705662862018258525746958593030205443262390904727428222571206209367162527622477708318182917290628741707828400979925665862898621057096879208734557134586576657260805204192474127079723964137258203166538242287951084171310045985362642027292525603052016295353065465962482044835577736873552870299853842529902720396018680294087075357988433553745530534274761413604107661394478631112566453976309525649731253355666158128049948642163211928201718030446298544674784347633343234042154933489369040929071465302682863225847689368867776937565854974880450226197912937730941663205189198006291399706529709951316706677757047846426204289675834420394632626527833809695681012531739424729122465578480037158907308493142582721186501827629865486809481277694291682706484818660799491941756930898054617494761634265387844779524427242667592480031023446628819664970674519271852386855042298610391963580651027262335456235516281748228243781411333243151689968784345039616666568293369530327222992035389812504072300540814555903066881687465010017472790613099413890814944277573444828915194965099380928599019772911535448256175916153045295954400602237151617043591634467768663094816075411836787465878254475590810548967891163730570086750655593935602617114675933399093685088160762045760426409115199630307281638958047282388913263199758463131597775767420008138165353567970479839848554367194480965202399528579397731405953391256700111676104244090165378391735762590377980832915809582602361842758523208941914024719168919596995680874936104934149262283450220528800025779770777422964066465780856803375001664080337172898136023111834194734503233720779459446810386198783386775051595452429237392005551399111761034694026790719782302277541654945380635740479012320647091558085997772029685459475726676215981469587178037323075527505625114838523291175006692412839432683343948359037471482048093576947207686639248823062280661047558041678749063822944892909209246696592048350454608972959523366456711798176429579865988438703792536468168428513414713383227068610015861227271723656105069711439241930544978222556172864850868057473847281184714081857506463973644083490655439129375441158131989445082394692921246884702958714889897393977707029841275600886894793321124207277180551967520400396718445078363026229767856403075415579678159652951153634576503540757565616916271128365318900240104621924971170844434747321654254626153250057861630959068332006198111033786238336041978788526281700740598563958124111170415749856822264299986734839138292345191452028715349954579685044964672602572494481720123715977736593517750791449358196055158369590179581267908252326528793881901481620714765903638834545532727463310119795003508316889552035763300584598535812986738992247942467631076240678651218049614643442700059288736064311781443872975490635765078077531536043972446811482637622156556248238637754342529181603865588268866314893148139104993624301431281746766313766706472146964665072325803538088237491166368201260089988632638134049881376851119136423617391939759383832926007173613393260477433946909301822914617019322259715048073935176467664238592169201668163901396562916051588039016918861230721025497865502331104797671733518831680894108001181253851178560829566330015372311409777561342707730067383987535067359074570975312516301311597842544555257181921045682531759243628950736411081972674054508566702590425993813777618846067935360533139475465367084226361708947423049278192333639210840061122679946819423540495273242124263523580609966874147325250851768985860079126796548967447280263131604383812045843461783990258888610390174328773051698235472929734361420683513401608693773282174029765632163083497674998241033261748616417053829877621829852485270691834753650650012236092022806722712235522892046136178320028373111907317903500082829324317612705383501776275070768085003400855444004444236324102886612621969464637837975814137769030641944457729193055857525920362180554258271898303885241847941497121973448551281532963349941397510522077618160893776130405045852636589022897442962169769347055811804004694882462766345949709523687631117238385522229026073388947881630190866145036449270764574067733890090850030021139944744930309460992466725245604854656420202200378444754772248176527835804296274925966437012001947740581518515004831740888240852968957191998466515237424887877022289410738619693780496168397741540972840496895559851438629833149151401508945711042750998476141992227852316456614073805933147340205499086070141132608500286085116251147327969457742800229418141209926158649390471494312573988508415657574650649988439670066183182928228677183150405028267979809268711588690658051689596164441108691804866981327624763435044978656139004972391176653636899421440667981394459660479528965040168620847835424069366976846222239623586271327870948255734219308139670605174748638542065565972771061285184591932802795067149146834112462386371850962043317138950695930481576484308415004677015182785812516683601068307503836826404756844179613611356353173461517271722433400489107229983624092863122850549165275736523876047845973207291019556674536159698738461011205648823536113061536564815400408962607728320711720753093267695165426598696919178717434466582155609535273043577780643441813527227954896252878868471037586489976887420566149988167322341719305553505068286308830323374473236340193720199788059910236032772334200860403789718566561006706328673092117794824445844650087718088783025765462201781244206123264163314726663056239510537954983231956311200818245327015921855598746111508923236004712310524762220121134358128652654236362594326832641370117368894723642999383582142497153519772353880252564456754911300786647150894680057785905237843531685175112207894600759377183073497736964807178307753177388154691909941500995185399239602170109468780810162020806033095065844498696268029245868904521057207731489020883963790796387955729058374811075241763469286286802099286435395906877720287639567083032387450795878224826751161262198050117327544123366825690552246453694260164153624377322382592877072747039136031406710716697609835174264580453230982589316601802399445243819605787884642539016855472377436111889397395409778648386692382281010453559819352262445017813400207597233259897785721875201438472707639826326810895842124913272009789123712718145821545030237177294323433957576163346701514357406113984699998371209917361341237331812823080996356904216421394408575711697772141266951774464857136231927091410254396827083917532790005435033199493544221757092251095334790108765472784957270465263651789731400113082506415897024061318083744965488788621017549705286632836897168415485337249276001868654429166442289697452845405990229085113924129817288511795250325072843065512573924574239471303444219282364749544106466436396308347438126377073293589668266505688850745866807045959763637444297773092823255657467093196909653651816758483394110489321408798849168510261611728834172960763738218220550381295621595194000311058480882131430597090281937288927366246375096628244586947515781951250281448848091087067312635983054360663431767632025711291056455052365698568294011968651439063009835416305393941660870982169117076934799015824182990584488395215725552792923300072736880074903901660462877283136198909846296442399086884712159799011231633731637178162764220346259934849890219687914735413446320037147155660764360312449570744506138231570259942372065882196239082214296198756669924373244738418010306426798633354395636655758510680636197351016193363779656154346507224608374641713004221800191564372391618763595224453291683656742562475826577025747801751777241010293632795268538231514398725814775255348576653649716314143603630533596794590875504239099798152193277557096181093192804951799901743973479267527020928313291586688441969407794932534355231535529590328564364716718874265006985958952104965228795341848957235892896324590971602332436448182446728982692875414729810504701910646211858461326302308818467983653571182815747747081794775490874805227544795445797097836396156905755939846929081407142323966350477957233015373350473120790389935000596980458114593669460180298423021400183194010293650839890384896405955668186291769401180958169714989273656330553868803545492008234419663234952118382826526264857446087323741802194668038336141077800780707192495446732304362237930332668809954081872043212029929168724346767886095111491532131427153990004323059546952137518694294129441908150230725759259548600760347743638317540784885714552374023730492421860285360299289718034930629241577956360673201262649723208493465438903639332825221834440157572295113934603468826042974596707326298969417628397710640918460899001516961135971212786330139423223011962035614948345117637899757557134738503541556859638487391964447501710167159645635188131343291046491037614535025803401621157525827957864934550484514926602938289025810664412292777109455046516797288795498358327432751168034950402449300459100328079860613660847849574711260131310451403840521833263189572269288479951097163687962130073164331880032625683475995956621500660482557145179657105873839696646803412765215851339522135959198035299605826943393515878394310847614578053195413029603016697781325286451351056193183128480027199367018050136066875880745215956794764142549212659918348626920456353471820261653344144498699669464425453147468366242110024485677222457952734453181542431086857463653088218901263609151402002337268275436808459202610175385083229768742262316129298241773538668000266673571139802090486033730764206521054183514967114253483710874401526378385243431761686570739235614341854312220482885688102495348463973577418636750048043449212336568995664363022838209261919869303428878282634913142704146868885250592926259841252088879900538455797126936099643046832697040612471540468568195339925376546273756308578925063196738196479719563265556791681670375129476049600976381351622237957921706371964071834437646963243254986795598838767111881711660715680721317687842696837956077768225052440644471926531446140923714615452722219486870892145860911971710493084343751699651841333078796294888805241416170907687185294802087096098418770485208688369403199589053282904537435645658848992585819008698297431675091062318427787107549626856654275785471269493867194083615711848236277586866103701293403061494717580873667335640469562902902294025517117531389404476485284936184847045449112086013783710859441128333924627506224856329312474565090386606544294620316861655797790972926730970338883983314963357232346037993358839989279870987765746429994241504925209986714534668735289889841170592921901323786427008449629739189426727590120607448470353412306339754620747638848837761469918267564413164774246291125736745451067184563671075984580593528282733872161939913953774185918581097417136563656701358140932375103171998412642029718735066296088861335209017958717544294683461416114066285995478781392869908780975175660638668323807238497354210983197026336397121895315337853678768874499883149812741033885235503863201398820515444602022932472833677191007965669974473119389536743060015957110734364653078709888276949112303347551286666793440301053188044416854295892714305100682180303841198485586838976889327464525916422562157805871665891615167152448739168828590412605057646108237638104393484791372674863284987742952620376606752874158568763680118175072158497237849635258907007048707437913421013226790911114693709277104285452447801099791383685689160927413875156147186697270514990415128027902725578168378879944505482687822791877700084597931654515152737700544672221521624668312156961941959099603953218159670898057960505121975434568853080073672370175765417540194552139820659362086432541664653771111762292861896915602186447358256235689245839195192289264605188035273716000160988214810564627142322820882440735239908184598829319367709023719307998885011169009456921432692644559215930769797093278585848611592426438654039135756265587039977422147100112169349328855103373562658501074932471985488991409257796372437250396604912267447757410603475304723678344163802842574218949813392965248119334485427743876491330531040383446038402787831372364082421105141591197683133247081772241361689023869319104515108905418164531044043948723841287330059438353597137228169298248611827462436686706301207967258935243577256153724933101153312360094900932775744775438662291030811629347716647404671298654206141550113295700883608086125120371734325635271256736256439027812804983060611412078516438913456012751554977785639948278105804519149698470356785308100610452472631293752055659152870840784097087367568724590605943080104979948361553800988923746924564129782760651363863133122222114449017681818280068087547012325545077873156108184437673808466209245209437837115254260516455060519442676297047970564866003445092261199626029364865758117170576680820428835691076689777752388344030784986859387245266840081042996979354318886604861397972372358951934724603039204645541585510855997649331906232095170469652791347104408471138281288053621941023691141245532047679509275724768489918883041812304673541122991416512209579810540660716127943338611472211727329762528211094100435656218188645205694152019214891870794691331225759461652355335397570092031129665529647795136721800039788560345692451345656105655618711798422857525044729926446032550922973403342518509567581595153473961220658838480652263473180667613739598280480299291674979988931768152637014499724819485174961138630864627991982918299805915514963500078055342517025507925636986261978192255344072709423239320254003018850381365716768139740008117900288719921482666976570398763803921502306708264590080430875848559555751933912825259128337380738816875631433711014404201297981526920087119089602259831869585611407702801369606878956785940334312696645793898345920921738173974431929706510012344291981012484549217152818442688052577539115550085716788480635868825075938526798529423135007321725051742450383929471635150212050188582859855277629631734879176906229809815503452306312477686691768664682091818139699741562459006849174240971493408448747523335720818543621559211591744448067628541944305195093134902384661144957128347016755697393371690738840583567182821645646825126596551731462359804331147600577608453935891020280052729708317777824775526098577772936043406806761950324298360740994259561200151373759517353911020861144487498179846429882132258997726306606616628997547023065473602927444511502737699257912716902370323896633586027939394013663389233622154142979227046090023610716365980955931964935940632297004922065491770166385187518717956735287777612635499852388124669345320052560021882591371804468749730197217369491912081583150676766498066152983177127080883687523814136198295342469240057689427316880081224757514479944935039835844529445449170354658881770075302939588815970542956215688326291100746149310887054669119894851691893932775982553196568467679436677511904312558916934263395928081449617701001930712112350543540351405899215150854966462278689098432413927862024297071736421967325339828033239498653658826201469118607929572822879546917879778938849364330370627681303209723638252610697248891138912337644072222933175212948287492163216909179919801384575460937502678827311407682920066443730496618665484276791243151411467793147614524343405939833623856513570583359344929257696446985624912755288217799456923615992967713517002926736765084016295515456992993473205131543593763395759755931067090088997583000875211919703793256411283618299184106839907719251546096536801164053403166442095933233834082964896524103392358573390527097510315616451412180932727399421786323608885330892608278895853593642005786722905002905442328789128763899270716841825339527518946920724467813194889881518708118189047006770116494394087980617695961581352996354495756595077755028973550370866170669019976136102974789913471172187098036893558143708576804162029206210066318300744543351748766571974582541552207060990913427952980469216376775607310997320787979509748400399350384818064316660483638917646436465532864634360260952374895399540857936071308595745954099081794617876722137340751846534086654926400787047326779511804079743002069983351840052933157150955848121533984006757247725204106993479984574421490446800509984586447927891057047458872342484692413085649530013797391145630969087692489649482585546224070360174188567174640453432539786856006106133013155196507294060238790950116412576406518208549989689340220272771740337656883044878393558920319267282917103314792544321883504778897826934812783312651777570999681060238273686947521951068800496441791095650794555522602819248443519231999202592187890522541688078113189817005531404017370044821753241773065750917710208597920950804554698151961706311945498382680105426628313977081290232955187279215681202726598313215011537082247292659155813249773329903266735535281963411658734584333366574791930850788826323157984421582924188463319466387974071904754789171629857993077682316265188294085362124231525640771223188740910227019878022403185225727665182016109550602687595648476926884198659558223546590462981921385055241453355370254578566192242530407031880965296496487677057953554293875861726362742717382471423213691908825833856690374580479517157466460933633230860082463042443073058895187640132390132823146053625038490953993145911570189864475056044407937576427903429503856047974312965181025514313680366688820385756266537986520915376761896471469728263491867285428932066510820104518099343591975311368951621762022585747899539631368092904582504547822479604297558358962799082466708130885303926292502563921645263418806335404777022737470162152551010236163705390272535040393255080408606453079716545244166495163267812062407245903393612946783827077303373539118803269983392203220501856708869756355357920427363085394063245830010935522092842846466762309697087582241320381022669114964281446613358719652484721534431459523077554628445840500412637393302549633622004624720604747850438405796911217556716590649311942118177720471118153675939559138910330990493810679417399068969989535343250384490043354835963217229191705757533607093108521481225838359264877838763501638926826709609660975693042325921383164275690236275311254212775943635642138927380650876261076174963300159756286797789482062062272905425064841132102321034876628780649330325909612395018562309746389064384012131702164530062225716942588342154963858186044104273787268402648889889864244652014236388660553426405246224793436031646383429450025756476697205991182301425735968311039008944182831851456910282844457707180282255198454292390138310857651840663679751492712907449851983740355546263350084240516599847776473459466980431658465669719897757003899332545241170465930560365663615951881485441290704787673545594768469527964037236658935089075059683693638513978293597929099466630183176135815103148836720454787026574907422163123145714177150872275365089353966016219707439710598672879689397792824665776296462016510307088955545080595360679645237882965484992938490497455944206666103244026001762949655834797306785010835659089097243425585133769514149639608007435801611810459413431071798462911139685836250408305346636895415600400806941388257596356562103488274733989021987855682926423069387714858606388056108393306107709914084150179920489128696564372567281441524451938469042774309024878980694833301574837414441540837998893627567850462509629590786624670292521015854641708932526581897590507279903380587151606096642875885216067816769647572050681804813215280629662032965995207835257651134829766040471223510785190115605450578033002900089584974979479244838952600139078604244926110661278900069858149931173691058945110436323087722590336507568927483165878329514165506487014344779838822799351804288221396899403082305895836339936160649936910698255142791435496917963478364747396972643196928051451213760169170409212649828400599506023502459884212827653519115711043759527966355819362396133038578553213714027973015293046406481760774630811624661802153451257130511662189359051016281072268747967923901927042453594607521952195361380976191371159161184228123704651525344836562837950877444949788474034337156873729651763829066058675438047087588814566475583954976682964550855977545976184313488809739789792990062052235261213702308948731441463018590852479332687562787941576352050628888128491506051594975333637646423377126371155891517843919680889305573275456113425482443274978995095794943577798008553232254419211144109146064404614659844741642075145892994779090021754541491350320297014278173092277241056539094619997088809671546102511058925860022857191837902643813962357349891841633619478223011002942882922753281892608480710768844358469149078323368967094814068975520758201280973728208101674228585809069043219442800610020543351419364016372210721310615600294610007270017034722268131477623947383563896427124809437113461665606527785242296427443212351539875738751383704699879689363857431385084002361091060870078035700856728766060353137287897859821348782876567155399336206034903939166977685097159607751340367618036971113241804639388941420653683222375810973349089536250379572184877986705602251883052196665336757285983479445137687240143949254553193344407983191930640263367832333146046478288741508971802183793976923242511379185571108675325480479858228674491086833425901562247166988613754718505196779327032742664107419307665684934879502118284011204761047027998411417118193973544698725010426574715098857448377096432431470312984436574343870016976304673734904886467906933079909597373643808155971239761007041691616207245061211882377315360632643635613648372721392604343058484533684834944386676284801113588384401987467125498466724995908262153438804441033576550914448917941530307105206304604009580287912805836638971231634542371317609226364434733797365646211240616585701089569725477007823234805991828535483196043207195254886588627304527360640035528454761835102146749649740612033611380729543821791908150667105027511841334716415341263456984616012002966487621917502422561848187108105351541744486035992415432364162413502709880166551462836799627417959265921249576979497120691035772561883902415291219952868927122891064558612181549976739628062628344784714059845695500597440994274857157720264005378268655857621604221489382804194760049954959260929601339352542917118385980633774445296398193118914363383966839027285023413517633258048880316586356486455220466203878378808502162411904728380707295901208467228467971234255704194050019674185129301622537196986805482998481598060774928570611246991433410601031873872080787513560731065293544214411429910184804892059529266971331850912042501494622175944496285694187394449248505253053078443746046087888216931012233038159425258628364287422860654550636909946110801815928576383454930063153336553296292231606267978431519969166699994566008978300968144773344182114502441105846628954679228458170264347218481978857549352691800166884321458835804185433223593344830560975323000048574920416014117192037472957420272205905502472221278835958404239358231241923989124965765374323626662573655577922458595181444088252274867499472957685933107749549774833562570235170916990979867230877566639956533504509278107937723222195803033094593918491293379595542165886200198448277974118056767644002977744086044235996367497153380995967012109969972139149742690263096381658575461043261584999026121284052198158825477612471749168601384242985275048519727670376690477986604255322846349407995679831632721118582630564522560723222203820455059105853477643663033267518281411148161776972576742488343899335278678901846063659531259471372095709823867561282884847334527213955922566455089689355475009106895646263094164766411954160543948463369553136207120535216151563756433721852650551417745148106938375993168990326574599157804644101671934029520111444482580054779593324111345241093456419287901926981131093836330501470030673438082467443368907390704063310759514151452788763310660614898530923511733469872996987163944123398788897531885366822536901116251540741941170340055227271763834514507558626250132233176102180792238109237132945874859422821022512212585418493165085131737407184077174146904049208904604192741546587187776185133897809150139578471271479690566073609382342070781999567109560619410987614787668849714222973609162188356516861863128545143821649987566150733818865787485151378124877327994399675468789734362479684566580568470585017866841882347151227907927543577655694792857120724749061084424258901791577097865726646705930798421463182434862240950445740925789490509452267874567920074570570982281662114742543590059430341497134694723419075704951214270079990715444952952724841967190685688045343150618156597288253464325138331304398151373569402576830270324348100482308962809322849513639649358315219414074332031890434942701053408657836503594796375326144931143974648579513197890130699902735998918024931389905953818305149947205995801301405701563434586282024319996567130667704718331493563734235685496180611724275454343788296423759558188317201759855989873973155221422651999714365640053187550157005516774377580347065501217472628353504376697794377811083828171308876543266167965432755584836166796408334292652220269661064145370780769476025331142806634802654367770570036768016795089449324640564889917568121258865753838408798154928099416808775077466119871410751376390845475892991241193313755199093037028144327284776413890676210964110160450881710719931765657941112531958075160149203561783518352323107967146476489316398099847572625036687078058036880701759890464458184738803425300554263414097951927414540131623045339250468135013904319623864714186185957468584833303352419948109617611749509123554728204419904726220522012757905464345394342729451946632214029787629439913395178946229674058577868667410580746589289816904274651902434191894441459693897799595748324365683314463892507314380419799317558970981263801703217265942010500157919217756238581631148468067058138583333199308752846730232049735385024283987680486589270342979917739339529055478916201385309077343862497856794152106951723937755036685583497858326428851177730366748131125175848159631450864485338704812491781885174545594778857269242106720103646854066047918574878249341290100186136049873183048863811828105513427820876047413254890348601166318542280069869603710878884563695701816434160554332433117960635206464038019230000678922919755053593652848857477762076235140398929152614826567936684466714150412741357305228325303953808809317831652220891925078865197794492387234332914640263966101563467523138403888171390795612416028410326850095505195145845971743795815084456573158251745346802202156272148425195313353351060532436246686461524573967509435949661662159890232129486074028691817062332281073144746842001915340390469512277991125565595355870387485877934804184130703409869860156318145918679113086716630323627350019652772995759123140188683673095073669122689185573462414161875860611570967769732366448171128154788472935519937394802034253432636095318757409685619956821291925346235450927735988455770785466625918986818854256865229532536094615211419222962523295444083575472961449697948190368512624367748949906563802295359051911033383789579227246625190110483675937324468218286386642042021156182273192139809391642531690928488374751486583217099857978433703395445391317430341065597545213430920318663413131271029404421556625651733880289997750622756996604938483968966976957254419647432467913397570231371000118311179224154922342293316862026141419568735643607143850756070467874360037277576864789247687389606787748015313200799541271888429476060496611215523103114728865885167699157646192132243103756878724617050336584456304723961853596068713945460123203131124794691305568051812416149068889756111933845735000265180103791912906753124570297567200410849024048913200372407447837957556200120214135571400523186298390448364520840759911447793051590290786930957739644854726133225541713620466345025819127477880850029891883622054887695123815835644120181246729882181336569927414040604354287400903215762175493896050207378828322888149497101424970238691553068404722128393721091204263629996441188071139400836213420418927806315248446447489979289810132615746323826059141937773938559188505147539642197232859022152203485146946038416678539381086526352254373331830247022002295239110483995178533969470217380001770523966708758803386371260993300276559838497623647831192849815493825731829690705295344128539048885821907389823011417351701290451627974196523160263346141238830307638517601501333018231569942962715521883774622482840851430007096768906760740472200475274767742111539274222224575624794108573296404135087589252192906817442786282205889359528782246674497389595510764733621566954659999506920689276186542670525130414134294129804329702210836598400210494160138929439783438195161816780695417280988802791344850654278943311827482636342588488964143399256151756288575798526112241086795998597081009328010284155702615311835770019807135919394899581220299539163719551953381189236491137866375467603019111494335668699493422309436364662109775690350482542863625943730608507823887808975704437316654295265614253690454925995625616355268576281153893450028260189260313221777931161232116621246358331458163177483284190223478595218759660424092822186962714125615724520906921295074425897359916149446797855200002891423344570595020736288091677622473114300008040700879242588763154963393483467583777435434742497167824388382667475020066758043148118717998276927521933716686339973151017471184084432586884326826456798708203162665618382193090113217181131656421750345721469131722617876842901357132091743596203257212292893915944950650072956107406619281599490397883314710593119096782136445716764355145640722642265541041076803576609618876780480182122847929443817012705917142954379206626080753599421456723860100891719683030720563554614022946041226778929988020510390666780527792698062272969522172891995247801842685655697379351909832093402944142435107345234919549382570289862469329974984398604788205674592704520331007199031568261103704855866201290703003208367408696961595787092806341884964295164434773281239708891771744730948385255081194309833567590619932516305538483735161249767137041986916184365514268182766048159460912392119345034808993761161407633949576539304645404188532372815405233371914343864846314589266109569839179346075191967057435988468787985882449162689637765371828229256045139723334851224524478069703981280904406799848831801528334464517121847312314817663720236799875879764392832337952773893403757269107953669521225357129642538332481587787536748599183153486636202849670236323205424019685699689092639754788925814511771824646073108392071547110265059293975078236661699449496732981541220479949992149669388562953338078088926279914298838919488713806108210404162049048583878239134413902873438742212439040032656484774948111739428827530329115715801762425149565753750916397981206599175279604306832126459948137580360173204948619529592726235709185911364727112641862366288173927923789010796593622435152199148173243707833008897440213199567372047117996998334360063105189217526181743824744067372135755773118821432483456611311067496183219025425157799945008074720601950748316907883655591238747085072678235865155802724221417158451867605758738144914659240038333957857539906599328568568427003844546587443874368201069247406701320810497079046124019133268907634752203358500999291956851724125072537572537576527931294392137663959976719082717238675853295598712319821350426385771943834255804693016543070431787536143962219973800285169872588083747003919731349535831776252863710684430293543414188522700091589311222237960920357460870303652197814517398732764951329818248913742336412901293296529040236428426208631381979484745100562747338200383254279789516873253270036559504353129291483099585170337156183753102873882698178309523783238183946151835365892348507751703245577356027303627013690578005308337947564555470247467996604474890901775874708477685157428229015427530161773767448376916627522157778994008753279038759113778569552267850134169365014362504051815057065095945742561343353874279630033315664278814290512569931440896982631698436418105256224729517340268353099339013399786556774277010405792097103098744219197425888422898788787736877446696158946467645939078299190332387150565137588935856219579548822876657516593524570640178100331815282350167870218523936997009389786506791542655048477707998791600393068730815301117657106694310462474628312928899837933354430188800000707331983818526588586641234807745712755741817543953674233307875967580293100364110711525575245296080662451514170801453912993826805349505042118420609637582318775538725937818418403396149060792111169482658351698143025264323606233613744843590508659101262208028261595303435173412819183203931250618971376715489180994338252382857929507777874222434399463315191503162089535715352687776583384313981263414931980716112505687255009660122136617477592231947785872245049346290916073912219961288115415959886959524674781168568135012887581718272853332438140311236875211941588439006305956157886179559494090074248193762101214651509806711346507229327988944165143129030894252597846110305261954744571036452066923449990061254329604180366806440495623426862872960075252093302309979055656708497705363704547020338987506412212445148523327309391588102155776076670672485834846961744429927885941519102399349715794227804483366381859286154261627389116691920935582547480820388448409974446433874597210975053362408423541054431755285491803250303478308480132605028569743450213038907468007863550614169272615298941285860374300409720461257051300940170687172921700173817132286085278780384184982338787470507043298093815402911343914818339456803003319763208662705976872653916036119630922681871908746592289255631899881238168309189025128325925148290132550254512578458153688892555686904552537733083530393703425573304887750462289734976714349798671914210643158793318842112247814696374536206493867546557383330394889243652712888983099104905081786698923465662669561288803897346447211944988711621266642941049930331281936411935198697422293643656119548205752359874434738142056506712421301819533964207831097686484088297162713972607405066616193195412331917009569501511649321849648861813923087466240544315272333490292853420324572692436451521395621467737355419297876916807008249765855110903249840313213519337770733172699549470715430591442625044975388816690482669921647874783195275687080027652870822059537396840301009418336245896284943861386908800687601706888369880799963218153950609698436447763794945150237541251057749769392695886836047359818534611478259480893750414008976834401962200748910832346334004408671041046310468450392987972523946722310342613628457324687573868806303557113101615026347618834046396745170039353623447586504713511325223747121721552236291841089699517140506321620593270227436862749887301856447242949987697972466588192148434960237491409419776177637151406548372157551627368972916687830203922253061875905132130870080263432364251722315453425930681506277665207898711824515928892780143017710793941910961179045464257621631220960056702659586694195676599875484434856579601169568888737259086325714525136272596670787209790047942070409402516458139058555851664404745565566466828884112022079596710390356777428411924903569755721580825720805372650848205886535451655996692361544815373755638517061231857570599825967841761964444599956888900065834209405090432831385255433398200369507083141656310219592018561759632413300015711019440852080541506658956423545749778777012584485198414203006733932943502293729346702940097439329368837846810043100358999950441223725476647050154925441975676670813374945517930520544157569695132667678172842191675121516149191393377694006770383179130456683983993547952747241474862354130575534100240078985126663393440362190100822415527211657813335880205366361351087578763860783660284177329585285291844303229995418211735526398738706918448233875960751490770351805161305570978843604656645508871592233504035284190941338522950678247523282439595173013491795530719982697713450656163183940454991371442067531703920244366988186127359372564009293515664807294057173258637389958063727011665898303099311604304235026428118467165556325077931659812397792818544112972766671744449993295714065648389485507684685564672246740576836813814251135528709194201779900738685286794128088716595727888799248677884257777408552159874767682272723124504863561748137524972180147405119904777203664585388861128702018204617976897219982808943381700737560333740682823784178851981300966944128660239869348297083391563876346383292323050664936003150434154532957649303869824421711552383035655697272037646663360863895052887610706546855175729433783688284734657659954609372909806992621055111316686394170559464327022757294198505486819716019973114972060558833514748033405660141925336797026325121285149349077220040166332118739452370035870961346613127994369131700841964913709520327190838792682855622373774076406395624093319287574984431212663612062772332349708451485980383598619336808612177107609966798662333295719530733599514355467528315155336549132346490439510200272933108575664191582461076728313201982232175804212947744316977490662726532172733094518551620411565740865496252728885050784807894991417136612525773549221587554831600270069865896149428045590544806367172384075321187115801134426526939055205697089183603816566275513534941593888008979113222248224399204812982381151159103946637325076043387721880295241047502572005293925662547928583197221756682137619947554565260919396565188468555171835821433160387109331738074088492915706660056172712454040338935030839344545022900770978133846107757096574128746162550146350088974713650262839275265660848357891351815840132663786391300391173289230505344558854227488304910747960755053228491310173854370060588230408829451311013529918722354402131735243580439320399221193522933730872100386518859336464770026604636450818426414842193501878981529215015970601112104374062260833776445452423220218973641671529245041559380984647082876807275901757703742900931254615207818590844772170925729271211251902708433314977303706893481337472665345705829848319900305815032211022701822607260271551451131490603237244469341438545653356664277112064901386470076925709088856953650313852824922658406226421766543792917290836178704320428343312152024689845041344509860327292087707482082502472105634389643164271641053567685810590588888394585562597234752523230423301333658129869966245493929904894231462058531176253769636816470197340574742398451503673205285516431590027177554944192550230309153067330018539494169743074099951090090536579831117962903667514535335441296921214536613629074769646971850027146142552479786464125101325524852858817301223509773593779868816530264681900229305953228993670479211842493805609169948343177326409950680558307444143327556291235448781800299259653606351439768355710993335142151525843160850311803440992011577882961970839434990453386585173827340709607007064902559109052431771845572372188894730254639522056970262069511794860603448057661732679135943693965420160072629975174577813381123010727718368572889183327908345838805849860069864833915589218566082367056637889935825779148913394686922557111958973743915668693953628463656891498265892188362651888062266869575742082994918332653434617850540829910555331053944981869003049592107836300662687933963724534828023536048605520634849122652749385958377827719000033179352363260508217683939634489768432134757644928644601293614340656736922914146622110377079489995154184817033025021320113788988346762952578693368707142009650831123914360842139498265428465783758047907002049143444121645514133234905553457124780366436335313103533105420504611079641204538283251384300608518444855423717323245161394048663023807416447983357478870031759962946098861781187007081613698319292549524563990689117241381559507602534658480750864232470408668915953842408994108861226116826418124360887735947083496618237919321376633116820667489491527325583207498532499807244312051518870780409422860311434642522547873506178327801597493518803053116950393636373519175645936483959667824440576421471805344279897231387045529754379597377882921208639220502066673243605783862122884695061959783250900096055513405075859670125631003347413399206725259298542084670253941009685546596237434494390598265049220219974425567030213221127263490933278435071355039078957215433919556093798933601895363942266760244895156973283897370686084494375144175639668099483912175476913923126986629466441875124869996099000499693662051783341234902639541824893800124592377830649237876489096715981507303010053907922572599748080163202542310895810425353637537905457010793548329276335449399276888929120681208293153462585880355948115904719031869487336290203876291523793942639211304652853499019574515614967915434661755364952179305133213593247089748632473047090613184917380231581519218162650806532412815998463968813040883717623044342338741235514004630865446701548674104116116757398026740826812125062488003226511479985041234604828789403520791366675160118630002576351893522732991989674964847478657943352755175356098275895520144294343849900894761401523962524700257946596868661446073397598498812834790382441507982586128928076995329528046322013004777333787470203352655964271600475913990830115552985959372378489044710242630778752150512605075480000443547722979194771087240789867935298016480650371473554396538105230356982946215519514696511544344847554592409507200785382753622653442194735621130323002060031073002851313353544256696034948727385854285056253032760597918454562887698444637040853985029413689717673418997513720524828553766371404490021158972698653134862750925252957301777534974361559093661184405154383328863438044138437688039168965509852940906755568919604320954697742912979146514657039411510815978243921704033917368529570982084425895513664026073946794105568251093257494069287382159449907757072701900923348508751138054446202463878185009830817009406066032513741919110035071608789686063931767832949181758087976394872817713737811216764566492702210139187521228191908781890664709484337607268725793225121191480412578387333238906618246319600917146668183574428550686510094579417427319398611173435015760441449672538705521561248743261588687101031221104818040367340499739065881786449625504190678983278024438120662827440304427041408201732286941058214090371238331096486777321278710707771412246240679036303773287475817832960993306526565544178779911576211914052170117442350446680263287669286424044356569618799023737654410168052657575083171775512214090003984539946256953083778915429906619454652005258312726868615913935391268766515330282278277085668836830218499973355018794902819982968206268178140848070703033404565035930714001679822521820264195361088193914009737877741122621462348420135357252956494515705942581101049486440932220498112765664915305366166666787886472796033610058266147015978454626801979352867486899169916170402253532387610496946512385875413746901640290630171999810992234702251105875094332105786890610761002180266343553539761894431037123012471980754000159562114489292793420953389352295034029716031697690030071374934621785362098479927964977539794352569592089058049841424344906380462348545905300526377056283596927396335166731454178669578668791746922553886924290449866842421510440049586974137569294310228143403163253741913939140355838380378899858999893904713103870885460467765938603685584742259502569616776414034043991000537887302161919754212932259259472542134023399509543352709902137585439932004303583663900001801039003132978357895680131173115253752793416107354760784240918157776650562173982698485430617123266401130122515965943859914920031701370691128778601006742353615727241175531298265932382376846727185102298432530738107863289602037503719125746229183983899783902659269507049938100202233673208697083154802268541642935102976463169378903827620722092071933091993291253990018828058975824620521072968534322999671874009002247041097769453624418678268036271845762050975242618974790919672172145913196973357491578874427289882496830771048025763194668135550670843012768677000938122156249282830601414873921481154368446145671148213860974463760455710523953707306970132707857737162029339761371008543725568796601627155430798022409609890362210979440314411603962005664041294936620155498801092535495177502285207749190397526967569761373836845020146858560790441934360324941404251616232651100688107874715091660505260674467466181526479916752039570880316813999257378197664439689115955742205455134284514645665246395917563385602206843486698108068469325714910409736490206634174825760119079908666026407790694851690256065648158553521453391573225316157989521105688135177115509629811988629876780219906918138208066751944947069392415171157450748855653861294874607455970136298053364764714165783987631585728661828793372089732879198365012111422940102590310736581997524701761110132513685425809210314889992515656360195101408154349852976975269333303910200526127698230255769602951685030255191066748314775376108265335135571171320998030490871217233230710155411655670840479919363025326353398937307938446446485822357698632728671441792047397972449132644341929613393738224690542174667021105911813803562626935733978764626781989479576363673494498324309825244294868644133919983161814331901920418038708683596883578087749069812956999361373213646775797278782635892487559157945205959257859239881923518897420752159523502831588770203171299559014881030727874187377769388735800508602345636433006264670958095051583408228378425649831045111139321342448217602393656971481965687551156616733791463855951915212913238452237410396259318347892163940380339948576855003712654910087423993821661307558540111077215651303151630292113601483595556962544137799171390853007903666565757334131096206162006565858835792199734092656837548981902050464236187789946371561492586267444880548723571069483126032573441400419543288625082850760549725918572652686368223687506635535378614298567365584955799353829909584327317945882053023016848031267326949235677333327290953212409972897456079962361997267051322158191714759545534152751261808906991148427421359031768355376538800301441941051567578580530787256346372547737545713299350329496983368208577554546889773467299364400829626783289177230644502901457797196163157248425000201946035932180147499527904857519206927735222239622213217165988526163228685911871521807824996295216388689346459425315290432950719334941809780419618572599134208463210919378896894042142798401751948570659931498386886924594653087690195445252295170168027453620438765916073787686446335786692052552425907521658461443941060126430078451130657118506518420038567605136739600323994780028539518606009186180305841171846858989393164064820360346660801466249515742549492912068681606295028301677010774359706923084749772019944625835982773059079522571297618857038732048935678809140663197464444398030912743390188734392637157330771025324404117570117755033891233692837692646868378590779350016260097812094916895512522012123173476824366079787382154809364497493251548814408940104770328390168244594218664312716206671666014346084559868557946795752159409757072565780248788141518513314691348166357826508980562459388993982570138439951874933360250894978331285081271887857625212016811222591292671594960698398950750626494193149818750593003212805574672697943495059237057269885775230175436330036226527794547052626038856073324951788548219000153531690537050929111110901875899828804040877833281410274892420454810912979146546642877063407020527877176019828221837016198354562149311192003930093418398155013701807415029568848053658719285561817187162002564611516933830154412417541190234990885774198167958086258990236855071122477955344060349632636334312689687201063148320083331096682477119292110552531839720045306849179592818194559732979511148771534648964815114004237980407119796478194567883905253607158432715263761792053142500907131258676790816677753585178082424302772992320128101555570042430904095862064409778721037179166839420868917925816296928647489216237060369517780201313687655879667854264528284866693394257557747240057949945242369534280153064307585602428070530339962831331832090638778907281172821362571162380364240697631942930075379810429548553462858085984281539138286271172113080890423888183077309690774256468274447278671454707279224170653305133322548947551819079623479952743300562056825196985960479280678044095441828734938136762297749221224775476388185373613848158748933787685159592719132486213417646416832532928666627266533512906645195790766383412285591740456191058670567888100599437932708554392098283972963293784011277219398007607090906208813866629151635112270940049514995342675887131134506305416239309093259097614011785422289696326039749031555390405750366209798834337470246684956470525059674400359386102874300003201866206891228392984550995754655766574102707200918183444809583569068692069080175712599501572976901069100863748156083962897166762857803441112045300097186846576036245250246295616370880984758019318745644099695387804805146211561878939228030489419707388540771810217177564200575304996206797123611488549272864468173423421275878809072349922419444010265705315459789536715330984090313740824595520587832969985941037850068176397199798763563819534179521026356107486624534516288246192547929118979872107813644002468565797600650723913604652292303634534564006730934834015959673331594478938412688615014719207921993487990619296127452517631719245099922864732624366977893969078915285971495385081016129881505702862258762428510640378222690184406119059710200272208064553881881626404734148998261139842007736426596250462014830664162403510681738703793093709273478362437162064098885525546267138950856772528115600347217166692059976100677752031010667045440501656431673214387496434713517396012886166483177782660364604126953669762594683798229956819458999544149891174553880912346117448779679483834699900101434517141504513041490236323565504977771229941602914885725087686884523393838123179662662126360640435607057266663512178321122004082534623572577030496522754842208202716806287731713763220974117578182029278081148742873296619495356136553551918940955058531340803476969873574864149076432856993773959865348358281791101758724438640724954325798861359135564116632764262041296123101672948775338884765074299450551467872431727523941986202456005987273061359743826971404715421113892390788537010386957610291963599896522258798186902259989749022200784398961890028020288976066155542796230021610719738827972769539127915959137738318798765326783566320121918729723444689627584951732114286696953637313173409003809856566564290843243118408747116390970196592587226871900329408836881841435738157007590435723251662747049761996435908154267861434128454246971418071451539244444873537801970188103255560787487914570755031341169903177363017911328302982481331788147599833586933414913672772602540884160105519814687493774904223533097390348661965316031972029789677562582592340168457401090809069740633543305697942312905204824259450140663715335854887464887578081539619606373808210346810840400980914916571814866107388245108930801838350197376088657526026753449900712966671587600638339748808653165576533448777697725304036617762208431592247148390766906505410461007086114392961603678860111542711408478253715879168034571474964377354811684885909066176428885778094410675540172494082923090549369502440304763532515327097047283792125508287923369118240420663193107544884198094106183902999422262887000493291012935283954558452395099553027400026361202884086473913023028990985686950476884254514300011364723426654613194523808795385411289857963656594120105739955309259032975599507681897740926331045731592740014097598151025534537484213589862373110986950411765983679758422042885524852696737079067684696086839874285312238434928458759156952423633291273728283163483600247926984917369081068537316376846858818448453271743144768177883444378291915715409816562934887587879090138197987676811252250994834173865057240735327735316718547258655497834541477945979158896644008699800635424883500656618227093720797184803274484667850314436485780571773062530611096454454164800843935938594299651588691012036345680798821170505061507140529250509464956322227023375458492696161953999632305354949137330930606763654757824782502039558636099865000067219551698073821076458084011299995334096756745656948956974756921074394170540152199351264153699061322734439601454175540989310014519031558990510013143854363297403334777050648044920356618186352367049786747673168378021032580977455450188900470169144382671299950994692764677477445356884132042686500160260700425419047878739040278287241120995715761767156537605798419342068636942069760687827601872288822991746478904834866247181100116725139947571903950141163725112737650901830046262640267512006462923636520428501282579340480669485025764771204977609357440252227597011573983645574425770239916906157106478476113803179804231395771672430877807536277205829004582441653369090901989668959831026426651187687651594400419630021636212006287331118165480861437105343960511433387681752568826006988861473995195454150153733633213042359300328821692904273610342508591316721899955914493595761561867357009424616764424264284974329686915846063888936333044594642842457637470072328806633493483862328820568647466438318408952295189951137849734094383460427755842245523189337686167669799881531775223714853439279055165790635660158643014344138901252690119999117172774017986123266419191027024881651648457375626937197803987974336158761211040903709494680274342836089622257709528300740508923394091709652887430464854958010686291030795971410599374529263081262503840336089288931075474576022850307486102360045562437224171372794882229462107259744394428366200734151698805258853195335395359881103862855322813611166193235148092567872930450163574029151828416027465996228196475861316724588328354721546211574675466333417380606499761404177888585840968659405110741314746174719061391237018419041600748007812337684404630339143354489047995615146857487417699156248740839844509028734538679957921764679568331541293521223324299620251473878014912812674651426921473179897671356346012336801546415712878029399166177004724952564271639499478126624812837593936872534183247745984168155373140095400126726899672615372467448121349934175088849911803604944189656683697796899365060562730515228095002005718270476496233778838945262970880458979718538229587300772601365991501877717888247338731459388966972762257929312399548486722658253919121463493333217169921005636309594615399129552176134398320636086142431356705158436310549732447840182066685224781609586092007061827711139218224663454733048808237615466581793572293569268856314219883357276771284075002748943307805612000527647544466543916949054731644084215305741964546528840266414607458223396828446037873989175908798760076202458753787963391728619585842159188774064879093800871137385070728331746276519298160487776485573876069811321119174635228523647516181199092540282684285655519090207280155627584589048564393538542272292313096372490266934914780199575316405798372138226872378887114162231127520264186882866544453028411027941498448855274028448745517097365530886733961085166429710498464871680859504131054618501357632509755156383398237658736878021561427026100218355150445285061251784434233112183233258108985933755890073681792654008072525447607988058448899134025943871819843583920885415760574506165194661026410044247633732434953935300098857526768804919143756477148702897020813440268368252418013227832279173350548776182533015147618570268773986863190503900181282282954372257939437669581319557603346823741533405275847491257148723362262269294108650549906328141284540050080578585241674603912151001359783057686832903403002657285426756496877614958744804760956618235661500304362674622091891967836053166524196307085170727517594580035929795479053097572789486920657590172282757815494356563161893327604833055025330496616672833483443245264922556494403338921977732833985672028136051682477771521597404079870898293959591774514789042158583083688659503030058635044944335281123782190886430930104245962027960231973593405904077804647217448123809200944552364129087318918571715234981966407598539529485540998704901763153867357304448822375151427162306480655316628257750254742875542913692840107574943240585614870842252284218384846022796436422967080911748299820297097654568544851586951196001038484516179198826617477039568085496686001659681732697585008019204670038682611913722536194223963888911855397920703812148601348736425856044350342195153041275611794940207589712058302070214481331926249855112998000577204474624482909686222951906340854466685667584607113572354623252196255091610188258231298265485758990926724595409487748057572180505998618902756229563425075777543021787651378846173719574470890663586224951967183597346297401507075838342307027758043644306840191117558033842384580200306206246018042561966027938924471711607391889473519569649185035551459461872499771923574565694533950771321396238128071166595664947746119599598532344495603412970079347827999694319828387244041539084726692906586906207899225385624832844232629530613752445798849325763441724827420853273002518791678948286326529438782867700561012732108118579139560602886643510472158433326583179086387995200570630556872620849110445537800677241916561595321228589403155314643823801506895972189142168117130722289848863179872107871258758491931459155921201513286096835855651792325959707096013495057551198779921018308739288885798977949679577502150284119421076791497198844499739401630707775575219948164987907634270244536501152606579898232786503052992084490852614194321732356461256752277708884121169302832183239270060842585115679964902320920015571531780978511972801077641209250071472697739798205033889107419855017352264047232191261580481233763233221359932842088865272427577662843220495777073179849662305573784194266706175478845876402591216682091352490092129597486247873111957960211890980820705530501074884038845249932792421587812630679687069213682339794037432595078979712716956520739770601267608745888766751917166232979170261341922878067282412782253754445957500344324564491592452985789552139369568477978833444161433719979120819476645937069276616631219470494675646618368254071936840401258976203190035244045973757429929868382085214341210036846243745179370317879916997749829070852657805644048758400740139271280304721143535558342841780023713400436330364478644766344514227605221942022559937135965123053181623310813240728786540492511556815607447976453954810388289077483315337298115167110893678599600412133942908160838435843027921225745109638813325168709155221616346619982655309151293513717532690686496490468307296290912774995857449351330039010052471629078878882219325857663483451897871312089985013796007115687244833566860893168201515988965738297125162125287161269265878205653642151985007087411392727147875384307357874538742279375024292163882616412069549960246944035279310095742947980295363126793460094437171424628409109627451337478864874061628638025287735854977501977945589703744736981464824218035517557491684954358499932620490675077814072621827659479946929985668906600676775019652527215616760468732351135561893692991134387968973869052648285095791641147966428698569060451700887546592071920429054064199494428936714771573463486016924846044241678106165140772762868060325516893612504730204457432951654839022756245427385414312585732235440593972671493955484497428508125738560380968191836977057988282853485232346895922353450658683953213851174111610516915025689784312976087511007454309682340767861000517668348516008248771046519440830909905674933028408692198213381051919470585569479724559207951667587955869865449028467465771674339658258115853012862632480395144038630660090490992476541404688631135903905103344459506323932254832026574771044609505216686350263746401188774831907664743782179635929565044253692854509990133316947185066036385605731297004161413796846596029185393018734311464616419466455123146574827665004584522337368895509375654066037902073131047464771202365487998865187426772781826905698274612818998538687685983506667186407411189315192826345765331445406414026444012912313278043197057296935161162339224521894925448279008340213841631108828480174330744377676707274862284978291874389470233173020235101094374490397213206075983442571804893932705590429230904032000374211492506024936048087243700812232962240256505431684140486380170765983227877552060584488628999590939412448889311369847385423413565037087960415836564127212674961346423090028965498813948548441159292847548159715222755509603454408672376159779985192521193726937710325387739397721668577380631220278789931965566122232805241696767336493570429090581083782836962802895684212319588828366361295119302816495256943874443750898445332082422089239269701927168845226148680698210943260877418687951386859197696844293902302265247931341770391321697709416596668402543720263943806379686339524666804881773976009185703398566048180977087625028686151566941569535313596419493687223868252091697615027890580029523950568741157218929560046077738590283038113506708059458210311611193663351560858380514056650451839380469480322941746084064187694819349915227175653582988673276832020742990991264795806801704467996747108945867587768788031980388285803189404734923922606195632159681485189831818671982963680232017393512157899257405892682604064678401406158962609338905017399915180786687213193345829214231587105265435189304266783334689368949945112604906779887567914653087203975362319101291619201630614501428672438191274655403001450074783151571256329162635106859317797600073278189655555472805274356511914816708630109438175959736530919562841653306033392584767142889327890050702611910058179833909938543472270037256217283951040094471524255838291915868658988535437281585575265095395980564209150068622551824535374372966656125570689291169861215709565027942725660767901903551626347784722588403969744848796664184001343217166795861975633072664737763970410064714579822017853734890335570053852349728123904080492028271893380656940238847662105188351960293519661553249705749101598672836908502562385281042302612862908177229853129192379856509277398462200494768859679300154830135962588134869947662994457075073679103753302473371939036535923745405614549014833292475140422181601910357156227212071022312590074294709313233816599562291224779038592805261436441654367685875729525416895158693186718131916673115963142098883284293524108506425470259270394886368988171628948839317492296982466505886074217303513808415749391446593634192343760660004597608331154685679696383793022862967594384446433208356910690489144709661726724908557292638340940561638695900429251994891971662584553573694456157747041530449555493679499340914489036647843410890457183283651563512651258740248484407670970405773926070797528038956498514909395314803731853443641200105875500802633643238702933572142840205705887218554918041441847357799644364123286776058838953410681703232304627869735968315887113381579358782836545944649309419281587663496521648555066570885253074216554466792858245147918436189805527434098397908328568369743586320520233977001118972109314875188837131368439093353830138861401182989675938573237204132419826657457949057067002400402774340028047820612769386409242747621639617750363170981868704402318616474042077802799512680633950904439587004408274455993614554634502510903141595310214207656369538018709685526316067946487867225977883280446943231956835213905009676112574295203966754166965721978783318804933756339661356452368999350066556749872449310908759184395390046616512275951617343946944935552910165307983727308578003389487974148056187477530117632321477562564275779201516605913432531257895245410778324539404072719713534896639670614622561861364530140632921043120187080030781886214742083090816199852725081043918479172037810707066934294984555721850459298280780840172986039604220511273947153403277311705023872201113237022684735038129622769609802524337134687212691439422235989496328500146939778421004378055524904540798402706582570669192679543890390241629718246327809945818185241700885484562740639722400969308753477644524123471988705183784587342902277180079114541556181252817985833308761294617185219471691185899147675354638363780323321001272511279853455214646908604949839707287612293096093389767494696749374214094854602854594549128773547055196184813144282833706032419864140820571930055948775299559198716624266683981204796117711628185599264626079926396560319500465065342007464158497034912923102246084560129035150859657154730717935070664244888374152022027814954836816857840858653207781177566633195334474761367566290852906945566317148766368821915453058193191975237711002823293745517580587954272553595476201185267931573488698831686136186746607765691394557881559202356654073378587471948413434637631472687207935369972089484765263263440800748183448688456311863721345213006555502740478977276615434110756443005427767036775505281299296217588337964719085208284923065510576367757206393860245660266195360957362777406626186476999329729308339463931388389362878757273454901027005486849239446836584424694737402215218245994553349635871563390462117043006601612856550670897832763899115376009740297930698715364973262998199225689262794886143806983219697016631104783793061148799086324655255078859930988366707125288053587457396457882569198962407140874991465341618474520390655544784120781260291495960629531056169371361690131825686702681478590709247387618686746681972061245594797791687697379360997127887247490723038887710136113075929947221026031138235512696495430959551304790819192207545702145920563220292344441880949717508500118096007250805277747978147479537375325546641065736764769059123821316778627952421329190892013535520072740738855797481144952133705414053018878754800746984724272536853578103919377385162826079037203847718459975012301542121863170745169041692708645271231650204134696939798202929891262053654190337535444937399646965097708578328051896360196615446021153369007586018866096078697562556857778955480684919047384177366666608896622273451113514436212718620208476951470484353177547847301850305776265156605433893975386702408795317422184159583523625689207885993134331732020292715812943999500469874696133547736232328810377316747258077141018527485510627883530113288970243456200304420576388998660134598236626989187329468708818118460301139900018633587861789500005425989263542911961278219387597558955827238782441274558310978337866651070660893956124964879907006720408735313642960463230024239524759430303715938232136313631196030485444205666233271784616425178385434213802133034471549975509059705457408641031963451956685845424514081457382938452027287982062218099122763842173754454106047500685168912236792143561232185828675163546509489020951300070554470891068928872571422506033004655436350490010689460682565749381254648037067685369573148152902844394357119592619307651733049918639915681353396615678201228876241175238584214986317765518959723532760945888575283032403867830527629784948329432527906103839601128499513743944080922777339546699486204432456643665235069370458588819976096050302893288609580851892739353301128698382660982503671554668783665380768092606264685103882953371206539115532447227321096795150820771292595953354571026682233543753240907353715672065504317479358812914286908927480331944915456212983905125436551891122525286375741199543407553419716789939543050321215341007757428096880549505243964841727515752073440486883245744242994303387336059746699043390686721657614334072075563068469146579438530032921534023141960645514134787380082766953581330906712313036297148415919424147767363991466969461860961404197326421350214958319579964621433857264328115774605544175124993763837521459443596872946490479916721433812219655591327904413959003941424675710049400692266860524334741869780302040718479120511396537039080058821126843753569009153601017592909447203264423252602789620315508080978944531447022548093494372256439253822157638929111463318991803637209492411110789083463597844984356133343867968610401653464311718514098017868483350176636481067683068895739209264704316603156143668195569255341394349377498097778690803067844343029760591456458570254060014707560458938065673193640786798304493364945384870432002731110226384291961174694425728026768203580748084068867199537170740169009485448354964228995482221480838184777643335912637141648756051809210556397105173091332219295501893804439468364518788267166701134785085768232580184993067975279309374712392173767861937303602786833821127650458764206756864642953038833726970064073309619725943377930282243978282896862329309165469435544512620446818782365634507608532496237421668253545611485302949589263855464842824366143931324991464574339919673092526270290560646392325870117746998575085631832012472153579975106872618385049664258510240408478752275952447077843125982158677500700108453104466825386524153998876589914927827915895957910280741208609479910569302762123859051801806644446077292946050269199006062164570902522130196286015755999546558115521624195765331022273860819079299159548436410315389704471124229269785538485465681781036658106801165246963370871575115377156285035509865472788956332751016160544949659866418933827965975848503949954848722943100719435701810039683100917429931553589554199469582772750910383984072067426595640226148770681384462907402958402129081164513963630389173963792130184776093290367350473733116114164654357434321426995470284748121292426761259916825030979923613293900289562631566178745325278752008738600029363812644109955027292187505379959279607746825197201179386545254546067899384391486790414195259130463746408469759997746110407898966540988962186602507913345138369213129023719329513595749867512749384598856247289038727450585695469162170817860158913847241612813551347331724544613805081988053732704612166795324327956492091241534830689954024260568732022929516865085943296150227731555528736887125965039464759618765911615429127417520569382119714180904442877312624633549949288588587373688875746397362839815496433257666660654933877214201292576268812312075456828321099387883471746173234113313155088453456506642512972467144010051012123834262045908265782356244327975564210011276099326518723996752733088563509790267955487785418741483212345497451802006933169900783834770825387842158953723216360357400926609901681360251119024769339204644597226178838363953428042587770375743494505839697700228003553837660092035153872677162034377152872743851122623957762702042110585276675514872755698352119363402450287143094831746699200591487493571510283041291313252178678684487157426609959702361590051275636236224178293096766547516269498246961871751934181265337307270175990680697424460911447673346196071726419593383164029206061794908052588020775451232019211844411830317647934537252911478678084823881908979226860989315741664608082769834647968186204168750933048731980138532215065612593739386573277174398085573403607179448790074144572264624515082251069405193120734166643300770334076481646798219226413364643039337084731530445645447012985409382403022992096326067392109724124000841332959987923556223223001173167610928003320150576148487018350682724285485565456668778428111129045595868256200053897510558005104926933546678899303808653476354054467751341728981961218630895545841697510678509378446732395566780028209765152960472580432784574447773661638741881148302651601329095060223708378680341666251995154245876859381352335426625371823515138605232669254575788548363064815455328864905564142515031589921946998676314391038986122277527098086935431345659935839462377946105154126103023493237079604593647961265690943020542515390170645192014280210573811380185407176648295351005518005209312914975305089956724844223250629419688553528520258496855790709812008314443800775125596408764393566100747575320014712363810276979217300428462173175456402326275326867290565771067452777120961018341293880373786845627802649301074417954869268937613799944860375325150105886139148824485422534267441692397548695992454480743143768727812370589625404974339426711222887672451805067995213651604272118907432990820519098769552179912338195663642732118970268315548061907641730802925101334539435630462181089901238243024858271667437362371226240653824473613296612836365310763502446064926617271976649655279501633365507049438636455763300982897205504153839686858646193809394099835505867228217029234906151996054826943547201817218976117891567085380737186755431105531593259979781387652116570871903163884894882481337048569798795661189603882626526250148290295090335469764046102933217171197745686021401246509616165791326741092113527656905437595736678593086145468584059498887245293826219056779295853819126549730942395497752018217198016036874893361768887378521147317552613875692380246803204131878418216752608755691005318153721068610229448867184826581473150120820469404434456829211155176422080209913234709324582983501414723008433564961975396390384312933263839988059424664010112917531760951487523135618785413101944700349518694266627934146606020385251093544640551101262196959037216143683295994215189067861279676131650272355462603452703831951822188707082578735963745226975302876970390635942955434764379046917753842206645765993310490296730104717976651777693958084184746658341997254834986859082428199728881692040920353542529299283971347539135410455758837128622764038288665465903337465563236730834169144834408878759557843750917547768098980082897991623392254804684440757522021413424774217665516409471782107717707197081139468048074421363378020679400623609177347142203442492343647579549265859716254750549274863985148907450661475707904394852951321653716049966585679915801608006976755608395555728142273601427539809428555848795434167078086203938486174289952740215053897542572361389471093912150349105942064935374253167055679025980878891158770357758655693796580868843397134298292819327721990950354190144787306256035494248519131940115715485631643396587578409739347513975291592741216708691091517049921154383149636100017978537325860216019102936439204335449575927644286477198300650939002284586704712265640520604074312904109080168694795773695770109166912781425768946684733830696668881535519890441419128077742736189503497277607656304876806080159414197660490963609870478778983298350853798728673034249488386225416356381799505829706523709752905431884443523286747168751367941327154290288929110315360488362063384924140800151732463457721849610642238085789965335338150141199162438274958992263581039267631410638659898445795218216069346978481372314020595362934828014266479876025926100774894270466339720793521258704564796379481436777548999834531095240100588754902434915293306775442589220086576458530281939407249102781744517951482944816827340063249463343602852532999423279481838907830921729858257839237654871862110398255062946539304770612341526876543726666129950104715972532220122512114538667604095514068764932463449445336546592209138889349071750098284783098352184439349125842877049425107152244000681596738165710126804618668454091253228199536433758119976878577063233200833817638233484045410869034883895374666256987438888892427293948230746246198546669789977490507561314808488259686741301986648800199484924768292171989631113900981191587415244122298299082180724731027032163546876379418414642078144654736688276004561017236742083406717895203218641599472857110280186230797757089721841316622643743054947493705835576788475597028215103683224548736261549322587834380206270407192607135055973975571532283549620836292463756745656144852449368457300451109320119565110435404630565599836405320537983479725963117002397230590920823729119647256751975915412466949957714436871563824575504104612374940820200561491522356192773843917666927196585872676961343583552598555044135221492850075847654176810321741259604921419909162140985599948809418084106655261013516289531916921576989706751184412406259218256460648483860457612030466143171848378108778198570664753276759033816229671009770934936675469571138015353044103514235520541037744810123317364719351389593803197926333193645054425924989256677324269423758020657378616567956978288059615454425897434061709441349391453801245227360326534547110321627428172660604813006144017155203378431537381183766395022573460966803696212700229295498646519541981476366560840204995056767730356633244301155507505637742243221603470778968772880803816541671880059431085541572209835054527924176091180993882034072354489410341000876529520052741389695479257295166958765129162768115351830008013228758022325153891761615410648785743329583565249082197313174185099313798011398940253277698155946158297844836281235484366147507371499962344574577559927283139620525741402874540602021458586543860878681110661205048183785051741980494121659642378671897042834810684591358758211701080370717824709872049826522007022813165762570875015388097641254350992641371685405785096249734520067158443375541361558918699080565213202795378640151376389608891957166458508993090036364262986359286029959709756237142565534737495742822966771820515147970660451400973695676092908102682739133120723411537405490033457524546969819045403721275984366248182733856041756108582263954275153360400392436822241730766031305029257810616341460043135737343829288416751346050674880470370519423084553330431525532521103616257053681392945516790499945094099285488254777562548534667899242915955811836822981442363149590914189706105513086016348098205364131984057830039234467001846047390424542978902560603166621686391294095368273892353140438906416249749675726283488596803025867999345853748046788505239251264249095947830043273211771760860475772185161558777280387866435414560334730008481821713162157891598630470452925457323131475214593075801256504439752457865669984239324852440208901927723746932068643830668664323462299757072246844845996883753885164068301102816783030128354413207528719543491103541651057666823239396664439384275972486985551737626799498717609515445880178269765719331090951975359700414416530005628425603194875264677567501595129429087063408353649487491234053476589654790582356614786012921180566758800057723583857243999277830501535449590471144805134322209380713578748932935493245846504324083303831737168819098155668673296056931503321689463582932842252774507537963171420227760086199605376282731190140678103112573019690041323383028264530751571585733031390673568510783764188237145963459317595131111852397433279556507706301101164597583469940804179266016220503576332654353688051507553158872513179859730388149215823445866647443017417503378618363312581684802617716816161371594083664482641424082059537898892264615159245688638577993507671825804608264859025228177610535933111711603880996713027986792003979577652373472416790792718629844232178485736665358283956633801688155402156725831308779845476143795412221306242947054591474507790811846950934480614769900208832170465956869386560119327597219506734462591274804311738401188499423843631379020406147309663166327647975510734273525893783315961478746473238429005827063644727251871681618823315475215990018915248650353469082632754211881119782795608983688494851043610410306544974454599841671442489410715949809017566285247355777015006788533528481625620062925735248228573048065487915591089472176962217887340368646148867217443222912312922297030093400745290166900007932147924288965472187660062997916254307386207702474895247472145470951280816718903331772194352785544176330091350564653814238257445142185076105462067253102693507807498471042743019795539706045296389483039962623056111753187176780431772576482505340664587499048979176150916545011780478956365530983107034960816435658269575097832286869393873501861753899131488608949156334182523647410100977025140353025318242711284031678186250897131470002345159160062901713167362559672981853758622533625647634322332751880144378641735238515989142462903684000979780293664485247252919124610599578094649985184423648853031398476423788095293789487817246459194428902903728567083447910772268044491720717443217620767966745462123246344397853906172515875259294709255560109446229594161025546328325510499478391126740400193689922915210629403527641875612475467949078221476378431574628298411779886901503973617391263365308094141277747952009971328099876104231846352847895915365638252093183440552287122257195508407815534415349128907982013166341289706151820473920224743654949052110746898582811630962768644845171940977529035342250167136071914063547112173866852577927213549567163381483999261549154591608219806293493503513339038040488135569487636388579444576289721214673055561881747038146950404974731717020478685518913566413873180733295036861443257375219513351937236675832767833607870279763941565948774830762837708250440629714687281622312724414176998705650901023245142952057689719337227470566578013897826219582968088756404518926874922032974762053601223304594978747502083598159159703731686744570028943998037927677865078977912253495048040758790928624901583985456080675118510619052158083962371810292614213894832746445477221148571619655591390199526157389776818465556330878436851309818505320767507166885143573513930991807996260028950609549358758416106585348177268700385512503015442020190896773848682362792181228388056097108542499291666134267972647030828801865953549951606459285797765454078035497780910523200028900439336499999938259269981902550580466107465472088527951130057961965435704592315675971134461344391716907679944949788558107171645140017246736573806085462995244873647575871943430064701340621197919264048435697351981800524238015065973523589649671448455874532080780466695559149804274947258290351786037318121510015544640117469031649222944394984411251283539500907390896596105067289458167002308329640238585773202150008385903114607394089636414013969510628959645447734247665567576866586127599999960443638433811479140162837493409700514676982620024139115601548145344794632892448620345811890362335629707447289680990481430809381442710969753678082796691400701450743579255997784279767531828863779639360317539481695847890324445558928124024240205831886518323424365403605379664498878510937050050313984360983264433310442421800490002720269952900919384923142529180992370820737739129923149512796037787064189005390924281225786915041544590340335534127775487970177756759633132154473468550246564294820865698838937455826367415388497727709821660510694824749622157749393579388732328134617089283094251341167558344953384209572074851304359825537035092078513724448649476146688819227647580297029862981897943829374462345084482074015853036572005517228923582292052663054165684286644768322599371069462850647902868017265478250778759373366111809053715960905716638370362985050028645962611899814830882002986811624171052408049835266485439106687667249785632387249379445241407551525801866124321028910415667802675477396590229035185647889865059373238682537408700197368521383359434527473617967131873324938292813474789347829568649184883183223444747483894243846405600071206683038643744342316661140847809424423424608597263351064982194241906334319744597536539823366402146886807623329962318688254801296657822686615150425541661670919833279121360082167165149296016503225794361324720543389715358608537298008057375483906709903167168102473566438882553432318554355838859138472275777209701286482594468985037739081811222860325968728872134812972636271039328681897216622643237266650054493696670508853522812959850923153646464148664494421161694923176669228573866145426188636570441420246164948001744248567977913761004967381615434884449313586515907208813759154330256507467134731851135277849389903123384786752366960265725854882926134115613427580499868060493873187540490138866251672105923742339258343337958748913164503998587317808052313614820230044200385194551852247636817745605369516673426495782904829372564748034869072854156790876848524000277564351110812877117487129120183886013181637279834172804000196588573181565843420789254711548290226955745620782331905243226993564003613685660934704152388721918851526303576403183141612973930544406105267924012041532196459797154872418248076081766074802191244366636336388438454049108858971857452657103885340305466303794829507985920318172033196252600257465222648995041557698377069133145819646828735451579580512266131651075394638693221587845982581427501415038696043693785597292634130615860715357533633205994808401812948821311111726623937391348698136419146596770873381785631075850585983395650930266980307967222848426736041868419929424951140888556899048069594374302909744599300642334690144065939646612640213609812459092822555922040513972277140237467967010413534473924246905858132042514975884920606563633679608108448935687725282934428349002840083005136744850383710919993504350664952835495255545979466943823440561558919899352354049613386540095924890201831631072282789665362776551403741312898459584302457048479848608981928756647557507580819674620941792120470956090985943649749250176656811752434994318949128592267070433009992241073987403732895732840677848925877658309437573489732564069173651373723978216503119153426860043549030821565666536260105717697988025943764483314861917301457861132426341025060869070865773071416896254766369346029230569612570399421568694382870687806814239299454108387797445727371422278110318145117474862616252852556498574057574596655885446428916978894838854945824914476512453845934646263482391624323812898740301813123707055760650661468064045032807804192137928378688650696310709107499759397647993003560588626074128432261290713781377205223975177355621850567320680172516533158644827070511402215281926399662987959178356082329201739170448750874320677117855507863128841727582486326216808781059283441442477580024049549305826554611128928349579428829536651540986122679693288787285770571350042793947954450517374663186326482197443959055689482858221347677257021385232210449475753931705751266655496014626798094243794066234042462875344718513983171911063829214314930666497258969383745022559556292083066359708250825500548969385378674202497633930970565481240331711119924587236596831009878709056841816018652170402597326579410408386141823042673869289868727923656655118189636561167925226018816410389539509721070790437720171566929549491976136069824023993153879202590021927167170089063631520640841979519461786616297515767780190095769595409582076030195629998912632391237933420385635282468518487668049974288609637279879563972765062287694075105103454926738172335293086147114112847741663755956050145613960501774745897782361023667719650956105136165592527547779843554977959419758012282883492652786526261225680610727606064214953786014953230805689811609705172890591485964156910003524855428208582835753907541618221544963178595702157550806123703407633517067684957920147527336470806034853301104035869641964637706654041092994329984776024536343984425801166875092536835307411763614027453227044752769260780032202915682315866957476939536041570679851072225205154125274142298609599720704467011617306033407873019455174425908469643801130244215872870545357540760717975359515231642185031575244860864982837310277369920370835499125391810581621813184095026442027231243410096747462146480698571658268329903291561930290172202947159941501382646476326102573983101576439833417881798732846269548141605281826823718550266873504485237464545258477842587976900993192259114612661975537651871188492669220148678851498668331723776195405195469433905206440368515637667952628763123191527659901260162579050576385802943984876747090566656431987620336405214251892484424026927796025609147704422748634549845676858317647124060178554670765298436801767517868409398909497635511944041692571466166651292668478106354281893123672485906334353595036737973950211130914566733544335909636242478633604435399167245238003976332802422574388012791365381370095955769191668229494013365919257590516661512917274948280094941101891280141468085598310812486791462260595799882849981772463306635414645236868425848927464841940524364628563895584285760322130599441679622976424066328612021414241925513943717450759667430172210371731459128260536561282065002625542869547858126526103156792665746455682723373420377854140688381082858381785788945462473627519515942657205666194773473056224733845815543752068479128258281685555151468129126809367490584563736198564672170951018641119709041728268256853677402043478886720542913672841805150383198794243011172449767167583881345968666230290874446719739634135851975553688218228129561416946257845393848368256332640000188197401744649373225574603338336960697283502319969632531664650870612507366225317175648434773746011905724466202503282786402678913826525371303749700200141388668526254978361675890047491918601115493685164841791958959065591594380608335280000471699134032170604446105727859191971022887832500792184420732678967846225788955574333876777159228820943494110694398743154401752092249556371946728678730349228483667911772253155807816900513202737540224754801503584991695399500513793662105742017714801630199360241699533176616131466959661758123456126170507290707967344466175176677989224705201263606304983558188999702822233279782093807488122016514603864165283256875128165044510478941559114356709499018341676040654382902618125508846094409019527460111982262480395425035982075375238182866346244408779825337298446476567315425573787335466498126279534054809066756892812671689385732861020628819492064173962372779352148129048217589770466892159060506622695500309952730625576245490189123870396182788494527512322951415517665280088426381881170875967810844538448976403429512018387377361122795185691447276977574203417051144895208719974550513660644803024054287661755297271267956769094201173721618027992112209104446628266956771422973194875977677004890247728241203925147080316585125611599784716081334507847761059964700619117353852399753780525351479482470442136951158845811272432595242031316738740486911080448295647418125164111316520850656909815137652756698102864044561853574090398998182053126799017016609282564882652474455299757188524830243886445629912396045045822147818049091708052896428907722234090093724934605934063854858975283617274971539141794084926572217455959019943321809741078101689501972542285692307310278558066621765676594259423125823386269522508535499431618769090764567259189515816869718557349789993498567968993742714213194360394918032554968767962263074913942551190719260456718381540590309208393970898265409633498153720623307016983201082735884111417937767007517489245604743093535453253029681109250338693982485830560003799221343045360895972701876832563286664703332675952320319446768945669859750203281729921889181969535920463823272957789749797548387095721380866707690278786656457459880397463494200704834422860866457875157668752739099435340095576433235138930149254139811450830481031096930739498061240930339231594484263841899397313146447110295487637081912974900132282239265779425538245945139786312716025225728666605556970634214839500327782308520950852264530745661145865122341641958585675527100130039547750431757944162417972515153993485468347234441042729068473674847111820223776800972528227285253346680261013996144474197723532715832032130088054954297467156748373804762529134235882736428883510271689891390142716974809207920137163971665632702285012770404714026773347528952160975022684283752329085605208957554026713722662169296446706200252205639834293785712644351396928756418517395460696138947512077826140831608163851583871034509756984849363772773972970129692714896658362965195955541462707788275042600177973247227773821008716773001516201632939772600542641068979442524709970752577869363895641664339373891956489470286062960604829823400852547134809674320867700885926983200605807306412572629360886105724185619524844617653633605977843561624971840138874722178406174341560045407283854962878927489369113150641542955004770749833977126942714039482559817795336355536522679127424660014996601413217192579474122755329378671047449578383409116780484898499841781876437573958977655144190120712436157827298712048854055487735172533181441807503828035027990777815193647369018528090197984684281863795987399546508585142208114612600464218579895273071456450548935699365874894372286916619140100888523267210078719149864570149554988834141439853353648743752183741328805783013867106270866390617914073972475935210516656897022770319591199268035586205832333592713843306597576888458303787728282668863613830896978098145223293678546594648468764757049749564916793115455574047292226295716099348828883993724075574845579651807782762237255698937804184948302120120150094984046847785955402547614779629167993894503228528288162459288651792270318189187360948239974629758701204437588589671813746852452729913559498005025559881819658613035763859064322511718434524575612383482101642831317658537502369613592233145481166694393696529420651483007989354543879545812262031108094881508131207677258396964045786146574862306949311330552221874050327052948515967121786112184431498957688005015229017195470808174574424287632332891235500064025124121878555683249842448369974748729917952130206270379395064622811484231319910070591591923800563687609400957607416895326769974786302439618269608925149657040991466827896766171885912428126511404831180489293667465774245209470641223129577347347958923231710171061598010955841292575399323920824479491632990498273184720223895425594266182778448616018691125767557302204047142566064208679936447988973236279921565176006469254178320959032235764950719554223600176676353410649523243846105354835470996273500732538030262798640863192875605142091559170369913396396851000017913009525274022534333395526687243638682651497106031174976099622996387435529155156717043313437075341950508273729853162080970780165160570958077847705360231490267280124398590726638113955689573081777495316795260967540871928365075123217051213947891121008077310744305294224561221016593837978110194945250590855557984440147173172044269545040851967574873832216049109927882974797569535952818138300872973722368259797955996471457768291242437925934422438566977644227033261422638054080958820759056296385871136714992056532645048770060719802102571424830507290972225522286830156792889563801784279829177213705393879808187049459449975370412590073811704644912770583715697269197372470940055822631736702614666144040576128614447480524089914498666989363753259260629298020536038865473186229100696857939028293280865442714301358194656335614224230129566371047755283244045896916635949432523483222151774815765448330128513870547913388361128640633695429120092089847006763523979748524948947935243541579966760188558734406917683193263163341870646320987811209966931418981026945769881752528720514965623802247309514702189732272874766013672070074027818745858332703104013813457374099756023524271396158169921883253754906639370075885274115068562362677056180606600520691406170864461026082078403882730891263655299120406802443830308583872409692032499310947726620427333289920411497178026358417586541945166829078620637545941132751541028253266527818730298643238943155378897588317829781609838189621919214877168071910124176043634268205922557383225306451390570055267033404618076164577293379434786631637485273224903591973231672047567637327699793422610539577956347472015522372194504093303025342898130901502107615928941175800363530609452349809385931761839633912899702498318484615591473093990031763294543765828275632970265297869086102079862007237892169707881552714929195964117321833196440690419095537328339319783892933678143265717831688558546745172872980642157600027215462798593104670472259591227585524513735844430064291466523343999228211126069784038170706737263730601610400006660338475586985687781362674786368910644791326422573442074208116312199693016232281567431431134606414406241510657836029563012391297429811976164138038647772236416300648189010221185030022886652169811612889943662368569796231251410777163648508288155871595221125367161561066636671022852795436619866123007690724881300586591409371510348412746258886353800110712874602825661148780663992519988978754981677628598979904788601380466351868734563109843868252004682835463632648075296832120318340869380325704832952930618343248739094287196249735748258715662142387439187153193982607399326213923055985120451233605634221142417233398114950041314856133889022606124263674810339468977434823232193499542761432065596060756094408283516169108004949077549536638302600908060854275697732032842750819163344312267688733227824196760234579936393171760145388405175703083365890503246597387707295678776979393371348691866255875605127892467112028275061345742775250503781999242912316866123680324382001961467480554971279214653340194396292784637725007572065141041197343107921032996373142329296010604478185424527424645362022381018344594593927085829944680453016662563561733911976204798132544954530845650383409636396611424349742693969065098747274700534102263210226503055412382114148156087131541555011799858202985195085787187083006825738136113217275625397357697754647887889172191330279210234793467494604288956361733725060874768502032233563022724597227294756985586679634540743156707914400885043325251800260557316023085522713429423637614184066016694887591703209943036028260416684894388615551946784131159304177913207437295565435480766079070444614220347189091250445850686313098542791931952425569117382739003821854971083133962944985381682884040235336538430449524301655917224586282700398413275325973941475518282566642602085259864562906647115120391562366779867508235550422366414391305093455525762970856159702090071999771147627645285217628322072885324135540796318123707682527450384516814123433793173220988752913152210205436405520089053292805907317190298296976053140455202856780908309508750689758424481492001566474453380391026315687408341906224208240585021928412721760748987891147826663631182726700709651924075249894260326059368727436812075592633983032801804105459423505252519398611400448506571039516138292137727997242155183102517679940013676528518726303687427144206304158513296296573281196317018529709346182039557464500742067941071210813704513612216332470887169106243906539939930559312133635138746283011377896906871625699187117180562120254075994059936150173618029572365742202269381927541192218958605560113801615190092130667257549838195093240069284629518638142251633256457902202468467797189438699251635127511884563952569204449205762677668103087595908295150642794902103289032414144173611610262226426503200414703717268220561048608898890429312821095828466304999956833456754266309418544523070154378113284356193023937038918713910644613605411363338868520176732779229944787074485101988416839859970843757380391806975677305095194325025739075840081338605276072948289125925710926656034406803539496930379730110173888954252137073974463523282756002030675821761405244991821136446926126370015894911127036107588026014597523175093520275425952517096916557569252690349220227710242339517727046146854191442842260317414435058678169056687389363565863577055370273282334839742732085121918443218474483167982517061676701128940785238190459594433891041386130300215242377237515895901624888446317959650080726531608285156746976384800587021338811265890738966122993942234342538432345941506249538971143669133022973347441358355492530703679379675533748737573708482976907632943690885914995033269712798571258039653996093596691830418622775521905967422301913542370857606538201036093558965375144494630376797154053594907796970618906477415671518881390455808694640373313399975622409606589136349691889434220324834396220056034471348064228213442453722245350556452185263084942157689272595742334879680234515863235966403240626762008635446446080459535530232081210066864323404475794375957203413597835566777915282595606352961384814695231151858111299439233032471630695923665463521039891029236431689591206754444505835797406640189251334906074940699549268526008001462667531768401689967604309726811795157646803753502548367610058473396707408346877522561339498412133071683993750467360894863327778915049256159085229431642384359861889679128084831129533887334430151961006130749794717638363907255754237942151520267939535293739513620628035110820611601485445647698359807363450970954097138658332790536997244270490340433024005726315580601147120694517350081139582383564141171935135904424346622359422441542059140240610752145812330619183816890163464967780182856145287073717488122588088222750728709415371139103693247518187492125291792887582976760416166393497493691410924771496527255157076600617265048335183337689668549836301539374978966445249720944462484323210705112377342051287746752369302741646216821525215864507033490130264401879911137546986680937532027391293210294239876537150213771311492863910200035184140942298221895109582732894894939791556294555444198980986970804297312718507618480801257922881268166927350869032467094371164097100187907268680722707101691225293389511655125274947520586123469144636933194459550028009772876436604805330717465780159351696317112184987753182697495309556097230497803870453355254495945523388286123131625808607719344986850078681048197728315194522130139987292677307162324571719942648711540476031513109239946827696573232347956871362435360241929088054392537721404659988262024123859197005017768467568657515504140247581890042037132681964350040742458357512069658156021898201246929793789330234468308318432138112587279908305979818862547584122134480873705433008988406046006449841543319981836096062610498245139418171597079028956761853104272468610740860741399334248797663279459551897925051471965461808693809198847046313335371699406065170348555201369779202793735913215934363565982066441316721874233791925268087434030328655416201978578040967656435982570501110746696235873811092756111703542081316945347282628732281067091014983874342946047485622777575627201548821095470407338014714568475388732296056544273421480496948735800828439554296736471785069237744057498414443131671332180270574092639036721276838354703386918771709568326165032719027690453778682630605647420586318753170691215693131536021978503053723614014438432892141236520823790724088980995708806337049735005005489666367934510473207370625660369420697909591120250397637508557029390098556752545964855575018363238702812824670549165445402952651192635794093851857894421309826815674216069551140079325829447434483026075977559845536406983259147944954080777318492540029990863750602097418010061544914307737712941095485093021933060398635024416818855535249076214911358196189150535651831420115836424010067626142613731697024060343619623293861663240155100252828027690845988319057992715485323535781446092641632992186401180741782135565060689026103050267641584575796020446624042963632846543004571330617623447942107636402327015170105587328258299893245534952024449690057472109330743853957718244314421583631907490026482995459497471855817376931784096666859031134815604387280966434101546832418984187224136466543847212371639675364192700930375058507893331057164218954087568661931714200027116262695393343063414472700010426706253332371847380186430909782398796519997753801248326579553360716041029760578186541310859452370274937390495963319172009568825871394545902359629105128147238403093202427130825377124375442284695850197302644763461105157031607657853408439929753849226881988031707606987287940497116175433237473207094537690173414243324203132658123097061103767006961529981620228901054451824767436899027185031378635706062808449099654212012459617718949279916795833535244633461588059025231118286326053692452669470745711499804749644648002499586251759146308550308619226938930361361469444263995644054855009892046488322456444632809939685469626651387508408457097463969693150281301617090229365716836166306134465989130770186668633438753334473302067475454516166483156961476663715627740914207599133502330932847709369037885180805744440790867855229135735448071732327219118154352588567252500042246200053210844875979754116398011007001557198329359914698260018023024197860386061576432417560756298651707795630083845446814759252041901411045800841872465657514478217867512720705772568979896130192941061905254469106883717474735654465012348672670438871408570652526654642907866887185726303572115737470326795679294866085043176822589082839509436626807523395143162633170719933022937194594832600629870854604753930775827873672262250698165764589542201180669586826743114474072028374693987587296094789462100177064256736240529635091111803625311312488260909881389123426529045188628483813899791061809476153433347956308796421335285152279966493000361925382564504071705321697986223757138531223523160817371345895953627730647164580329333077743183045668008923718489750879804351138296557644842086536476399194801675121011571103778283356736141168376512444669743671212173360064131255364343420516216233405512199406936179670343692712275767105869852102969205451063760812447061628567602464073781886644274399193170645194128231713195843023533065211990943246958065204184141771720686268603358553510390826259108440382588599290372978281450544436269157568409520553494804701492097502846926446315639250049881953501970808078656488983252161564960196221549856816934227872197679592506398630018446903394925508002724646127830636427846658395760996101239368856609122879641928054409429967985759137451005782719274152069748165199060280546625026218140589649952673962459746637770712147107324738018508412650608380628735545900917281861010453399353454761185238859820308896130642460868982987746687898533722939329860484877325394569706158802725207439745537758101503510788905911465881388606405270848006251251380375086422675524546877360128204837258408443851893894743935339121165044246552890756727120565748800679973636813524419542228908073828098673264564097528380922563642230480293679388953631875014011315431900942991884884809931835218715977330997047991710318205891305605481815615274026087903877887549578867809070046235332508145422527648774058732176893053252268022429633866878297844401415734465195694667056120064265017060266696973134775051278650913326015309085144315226741657930077398569003820211078289128863460634303751651620275029979984107698026181765738382504984677337950459421054635877742278130241346456230148072065016448574748243219870902483380718019582237614295650592390593778422116123704418799273741438375921910522867302434787234183106653551318773236269404581266578388567615947890191601250928640842556829407470650492904177757534484556626826696459712648802129744987086932679623235724775911395842601899906206936231175508400224173572447909214034752322579891416742674734391874744403819760485923395935447507970140883412862954431743499947030755102594211820375749752314239160147952328272498638180743639229298570539116942834425100393055660962090205812618313194088220461559887534083039561082215085208560573558212303208541832199433494469874734773435341908392572992100351462351948647264638304925842355360727406696745604040130206574094377202001212994648037125061328091712991451880365973100080440106579992389474233473165029577690227387869016731097416221882183749909537846514158999813931545433498539183606209545616078783440343519177657125969512986276299434038423205682754257124083833106852277727838794823315303688779609292163459582822658695374755263032600013818927986510382021728136835450413938824443573255460262225700137325377500563430675770246630731545200774346304282869643218322532142929223868591418407364147766913686332350962233294111147474021038381676280364199854604920037278481727166875941152511708959464562857043434205809728136868302242222006378308008652619706612993566120396460512810804575493510879052690147381370039760817967914115641565345908278659280827189323819490107818376057477777380650946784742593991269170691988302679049603260277047002303928255063951695813964452856275122458107743356416348419825234984105961427380823176709478523501857104645543014219568251641586577746417422483130093437367343141255971678274459630499340104587084362265759833775751415241162658803058139161088030672656302724806526426932383760670437015563130026879951341836296982626319711797039043906819192301475448523987704777214127186240708797440863477375671871679832079011073613025203720776311192573362273921348578529460568221697266130568807811663694795591394204892330000906337843020176751655584072609149209786581272619407128213349909779628412203050098399471221407256201453719823069590032549522187104164772018891183321637049646686716875110300996759151894359266965716605260042885642026290682046874348601707825442690393553264225582184116085479974369380723642180660944013223260304030275911068059304950234565865593684535337351404840832089037117379435406763440271953738217835620966196539826506970857300160828224254168175514641406803145322416095319148368333269761872884844303495413502366824401576084029373938805491555823051743320734254009795493706698185449449356349734786892811957440939596921219100314838040395611283605071113591175216790813133659557957995501633805324758762860807914760911932869458727123210657124074611172128162631282119463435519428182203112595675489562576802257167788129306236438215473173516551847421072243935326110560907951942203684868720534192978733584716698837232945601801091924006745204256098147563398081345433922971857662154785071587772343140846320941164268206128206531415061764123883404286312423726471300699934175769644820960589063145507758736440653062694714535740363179630713699439836101970758703012160134976875878129684288906788465113423560305612042394145191184160197871890270019932072215295204989415991166441191470090863346440555202370558135246880526572964767015506430723323625695939116621819319079842858421439490358637700879406343525889485556128770963094582786295356957945179701645372160174261190959588724210700756448186647313783617527474187586708045047124226452674856954294641641220039371954974478990830225801173828580117907231381124954127494150373065088121516140765515109456661703398780469288252295806130070785290304888450883316644116119853143869257914356890045409217029412125750778757774346158644889680336976768095010988411428202880781937356763889347336742595116834021401454046973152913757862358966555995597022928479923993613502672699294022995379071195099784931531524772199702065067448027039479814749196855105413563800855605750856939371019694190497981074950180925384369600817721339452067833176897411522754894148267211119709646578809222051722177511320057721427074337392791029551398431673649721488671429788543257326261530725665878661128879495517328000252067488643692180725685172593640874639978419792230813617992885381275675032016044020095399380544767339497645778983871764760622294516897433351368822176254437271537485207276740293044872944528666822055171466054972571412934867783761592566271533875253876999560811418350475768007585714442549747363739731326865137953752110640637120933132651955588141533877094261987294708963290962940088817515882540501061771159582046768180305607065372045249884130478108196211493999155827451311730903861738911425558746514593247632288881466924955389476625135605580573229640588144943884067294463945563981450296682754855927656119579469776502969955194667927552574749010418635577933342167889998519171688222078346786684385957961286449209423260031315911526901012517944392920248326706458686172012153184994767265862371313502794790460970546685616697901713889093778401713733686983975688461015001054931657939675637424439789291443959694895981274307641878375660743096465246654163734025397004846898575178968952331636767766759517614650323524532121297687374081339408909916017616645354566701044894059486259530038686927423852345135834721214899720679285130422995154278905325027673057656981586865907661070834747421612293665315672580253970205789876044865484137653567847272490017575814753198791446515831621949122220286971712748064453223782815983850383276845218168954987875661333529822082593776533882130336505321110374319881883470634869859434720392459096465198200797533154030007818760219753484462896256852926408412613205410911277657911251284009243639928821765618662376766878884578444663781627162038738261458165446475512745701661233672304177163724587785102361497426371579644942330134959729388119728859192647205648013171233177046598780853280575413056483646537443419582899994666249037353279020576899100460616965846117642898708310152692330689338592904647886244273487513586029776581049482654042359533005252403934888520538244174125591985215875354327788449405552343107040388969858665651739571126548738345882491823416320437113220171553426020523734362246044676641179231948594041630249530221555490399888566267225022244446579961865109369535118469090164234635751732761005657856160473081409118904100545206146857741913631872900722446764065997341538071207248618455772788643551132539350749001637081014433555806135502805511666152843825551312188987944051888221766165896541080584245144693373282639134159339280121123388442857894265731418252288527754430915289844010228855522883226605673006582724980776243596043340914926077533744912460894071231704653559920176879395136967530361949245561863673933553754003082751874125960695817602955369714123135247229520516484965828286383881045717295998820647768807976889984707107073830446340636472296530854751311190268411416546126957485687245406868027460453639470020172355475895033794044360037889951472586377675604217483683597351258598809573885985841082694759888020130475983767445949824608564986239637960864236218065082352727972136492384995156067719344272755262264779043003128705607118109917977703439445225264980492274426730955235014717543018126471905842334981579928673869307802131408055090395749243661036230826089081870399245847071839979458778639681964792778643083458074748424771563687566920971449095300121929579544948834940672928531809189043745315361583443643552883073968303613985888303082387991857759607611960463325385980891244171610326293974954117414358844903129642669309815748198080603531045470993056797957667076057351934554529529526131266418093520797072865016392741951609430167361717852905591318314324826200147326417307417910705308885916629841772726495005396316861786491506613065814802557150229104585508940073677832760230048304568445414212299356369529706787987796992498247572712222248166180845692248381283056213416398956455048952804956605000775893068465477779682950221527927157702926446641963342582323617236725802630487207031798260196566691029961851029428928669893960538363081133844274545327351949762939036731401655637888973370102464330792767408469455585802473020224033128268987177676324045054349718951673485065854908800099309972799923694399106157548533843058251946251048065512849668721228545320097250842219174365999181119997073628205410132759770809976779770666529423114507208177882305829627096021955864299424233750466742463951289070218811658574029929467143224352764211638021435970128183767499997139251280889292075978170526355099483208019740213431518408838693844052281037264108001456262053202647552228676257813182770249624853801160389950770863161805719018399874060677030616181136935939352861085677289131087311302673670852921741302556617415516525244340935467236427198691917658770073285125072595364635603052385384007927828341092727690972360550108554076276530571843812822478678702632213306049449636356667255356505693617947367217135650314848194397757858141064248677159238582076531565875363682488951770529606541229142528229315502480865332390803405056339311445456801670079995041423165574522229264869408184680467747717449895058859091874457815954683166654643914396777030161427030748384274172291241023819072636737358256677585212541937093643898846537453398738242223937795441500534579373607773182666367224047289043335230614640698547647017028444415956940470162930343813380253298911841981696040411291388402483358972256135617204272423153784313895997921516268904618129675438072253795871039810859250685887800606665984300645607476175592740558232153395056361719156395614221495656437815086941327606087623180449167658242860369426440124952575141569335511383835772591474290963322373905803862340193810565696293171447065799520844010359080230712923121821666083920838949335191116434535603124117603614655243789180257497914668746335812235568369943837611704332263269869033410810616419785504254295957825377491179791296896890487918589215369940362085125618853872574101287475953598757803144302127946837284420417234034702241092478573640463707736960022129462040326009101781622208643096203130012963051665620361061030044090489455038178360047528979518197927707407285084214153467728534796725601762292742026186271432015528590298506267880765189690680547993405100375927620676250229621454658594302345673323214357254223842122383832059760881806697414497825850294761483050676214668486333690526725553184251091041183318533444984771841602786882878655493234865201946162763896275820507933108891038575826687816115196425207225159436280524346085243549562971650585762312014888882305735734619119967305720235045546264061436241534444152778297946094102797819455578956519713290529276368854951791624338568046242865750654382726440782053314259191203035325078125619615102982658368560389162540805035410406586058639296809251908998834400973682716323591787749526751163946884423736516692763031280467654127881141637042685243984821868007671127647146557971723490537370802918087898915792776082939323494507279448424984472782034826646781627955676774681019004528829984195599073712046541301094948248906667375184576543368069128858460132926915126657400342925793300220564093275208661574985411956038169963683737529429842556834845664893609976664378060976185275638342202939374037102899514033395478598813544446979276312413744961325779635893013677088276873946506058011044803613210951697397532508006316539505409233888201073216397527068583511562019120104620440703670391004050141231346352314335259786519872421766223385241256311257193299880632763858036995845434425427896725521271956277906258327634850393780637806739320089196087390893920251957193902388985915444040947916061134892851424704562713085990906018773988660776605254425857968760447449882417342308996833740611001014049295513898311285305225567980828533806281181251309694567944922574153337918872702238652131153983335990402581114060523248781086007424514574673876691811513590126545285149714570262707445220752465499618961252384509968860211584617647767709648114554631360198313187001240000235560116339651090223983850203741017856063381772264538185218365690231217582924938685563597944762334842203818921142715730455170484035707103674653148716511563703591001800243896809752705014321477852054667328684322614669787933113997863118859924378707185261702367848286011358589658914042032109885951229956522287476051033083200747746010664672598514209488400502809276976365195646349444937451926023341441695935398165291620776891157219263038620934685498171020747687855525991374415997724433004970024672326297254952464357720218280677193161353800074276382526637374344395479281430069961829762733100429055349779821130171390606596626490154139504799185841009928669832835750880743288028537988839868928859957694039415690268997461135650456353192750156887959784858595337678207396470067978556358599227476966623945369399020405582756861870149474731095184692814001835562253598371519100238595423889253494433184679557182123799061918543721619265979216940750946908358576090917516407362166800402447385130447833287287631476970997628131707585501356813967593432077357895929602108409449672526781307827103874096184380693702839733752170766606344130415352784834561640476638897354884679960838546069762877128573748374681755747295241094294291943281849008595239726619923858652656518660907961454404152333123250943031300226008494112742311454602761373286148945603822814574750370433002194010431378748931985257258264461738708743732248761950658142480452040088711476386459646099958800100784194040467421702497103608278526955609702572693851418676301543374470074401378442554435738272234626986360430876082883516633267105063097325357954156117038363051914792300366780397075218527574682355040556456359483236875815038123295604184875276334096851258559916158947683170679974008970571299797458703898905361608488072392866273955387506841226609143910272049008192499957355574594833138404432593704056086974338371496950919916947039816950114329309066697679646161761424935146402939374922319977548385727399919564855255962125229317641331283285860599284997426222502043865846461175507572711429098893560232816209074086713395248176796577204834944469115972090396796892325592396162692599390480655307915845828897584692987955691528216520199613163891792410466285039595758156668394643779729873693295273626856762173133910795740760799051282453014537765206590201170473429679580341329373986004934224395556003284487935903533163601035074011258889041822689931848483907651456698775331130191072576181447588068148269799284618833845068130700718231684895243660666596100299517850819426492009524068929545972753719867468944811119116565259162478712185230444141745680969956195655827043129404134865629751558569436109801552260694048111361220768211852252458096212596576004399828482344277586782292468822806138437475064887078442196281282988433199592536301224625633033263951915802379700503707084191241206524371136570700422413668625194354633001499858790816120980131413598266434656066858821987152987017246251383114962123830385126985447259579406609777576972266369877108450114818963865651752634098356121803423421239705694816299447087048026529801496803415324814810511586167765337675052218903694245229390846902489249318383879911980224565715026556512596651323771143950480903786252080777443348955976121130291772131292236291437055816835443898376209645319030557167905437551922084195607540773716023972737178085827146470330109580044283959064785418857659715607554973069002333571308839578368773897252811460016460846618031618643277589685459802942533001906421533268943274100253264843570556456547578236286454312836001494446971822878460665919175443040366605835870511823129865675406283673236043049223254319838761527674377108752893776853822540507264208715186339911793485554251255985942214267733224158022264644076803470896742269040593895356288240922359747328749790781522989101656939722035357523282464776003251714562088503781191142086914442766217844797631472390321675102905661628939327435776371085021125910081862697896584722616558321302568133678076357314066120535954818354754208282613605868670499564528909986516308892101803828974306348776185414396661779042942496442697095960735393539453448750141452764124018428153367568595170910785917975682075078001166540038646047874527756287860433187056374768641533614203394178822156384705210028797524239905302471854037332179985707269727051792841397389570128608016331027930582038715933946097062605001905676622460645997206901999724819294548875033064901640301151524504766897092768926730033116930226199193236011486343764928097202398394146189688074632616692857207906031713943252275442587635116214453906490832160725438624941300120985393993121612562516463815320997854255737564113314602834294244471451907052650801480631963690112201198833172542825366567743450974721189804992514228420355553732364049069748220641578663568815246722745323067529178246746045940102872888151598109867271129115751653134278035390864495882162745772597008564778729720106840285065947720069703143250619136541146396448243378560195573310711063893248606427166606878513327857950475534273893066799185279413511757706041534542139611847037529027317129500780007654198241660305328348530831319976155891602430160830654790261554841444713820561115397878276868434772165009550454167485072594315142865801958579746150659785122788649244906282680024021666161236325415819507046380864261055038606479673451302502784950598226810000261525560133485491467708355566468789834374557475554098565334774792360820790754029109783105076013846536318492253862776050407265942175685379737328973548981494162468891774074541052401904808942190956674929102629339122354178440913753820025707833543131487366152811863750287010769623237622683645244652053873459730250584870878314927458900606738566645599124240750452498433906802957179364347437943114376471446006884303704917578975464403650129627928298171671285903620486582125636549700945223683734671112090628526605807650048902669272192875782086291461815304460505000251585292615882889032426440492319692186516425302525289315910850432595338785134222251845311416389921018014291980385870273619937750857929160247302383851605564184754400628486980071407000653520227063929926371417106072931865226523112078758942892063694344367126676844725150723617864633677853009353822378139114677450989262933636385842014411089776062945934415341728463476753611037130805029360770544325890665961483926792784382418512509591364674905745313913943409749245243749753117563977195841032007708263812943120577266726773072267055240133637701613462605432422236475009966962539668957388489839620957771739781424659718107271252023232277157785072165442820308859431954368454118493597855713890879889026328249111486348155996022774050317597873253336092280825514093147330803848676622282644557721350219919780362185530177046040499117617223502335790414336515975195539706721763151992327042525508481558666100217605663590953460891666147961438603139697274354733575752503713306312795234030559729652220755775681460882358651331873262565226189539750209303519673937069459703053742365289492061831820491393664267897821925934571955196471667493873965324388952672857781937167298877934459144485086786896836828371949354263416143415592834297789933318322930042474715820893572255440663097714876662794374936682784801152220372324010823886654710571256672199577673873135902342695436081417876697765013661724082995243479597732933885013835539166564479587254395295485133804145628509078051094968620579285795984570917878685360147705975249262607826284579681282109191293900581479494873536853976441654240818483977038177413643773445270428663656316048646768607798816310122200634753354222313715072155755011348789970677353106944067004252818081631956007363122940215409293731226170539905559063473577536727173768828016375012492033897643810533036580102471319585643053282784509551510833531057492116920019824674544035287739879459229104961258096801435415052236234643785797535713468732749697006198926807329526630860121910261964286587281177498919342805596890928565007012141899048053486437385347305176674614791783513422265997008804101941765785569488569037915527719068205153834879799932733836276533322220679365837857406172413872615300505178294740081243358777355942890792249389591663225428184271276889517316145619656076212921371615562677924869152751863834883991767076927196212958929354182993688187384668685183286417918384933102968173990079211894795530770134636010240173059035652294819639605299576443771672647586910759586551467605794184655241796314740491141880577210147290311361694102897157475536383554409588944482959907994533463286251388230288684341437723097427559630550008190228815792286529000549789160655618750061489224450110794734388533937689128357660312064048126743021832863685456333100177787200648234975876462927081170731557754793587388759345357675436027900435955076000298376862109784446766087747789746156807967523313066048900864085314734947346268977605745225158735441677123315225047537241158676790992824419185062755769660750398916401243553023184651836336362220991688586846762724237868770172607378645780439586758874965166597480342653909814413027979259069569882042794036583673037916796488362320714539588376415100292710290046499409947175071874393921265267375079092246670272236103472419836640071948536091740776231714766922656744705990272457045526677101105626918342121408141032414892856455606482268250701163796287779878216957138542055474491147923899193950333700447692102715901525761895913498265568787367782241060235300486279427881127724454146054572089556044692661433871240012234416689450027274352103100153618124997687094368769932232547686858595283352944068836818554197125529410118568931751070763547030413698917357774241926270290107385339239053773085559723783982444067706225218035671214867123290764991185924722078142398851196119131809978970065074077001056263190911727986184658522334386900278181811308643160687467774698598687928184449027321149541656687234838573162429965910389197783687295470454414264259662071067376915213632736363787546172401371735330146189615125914721349502927462154414401564094405680186326470910553970966816642591303782135391631652149672165170935141142414387842460319254535860598352360253197282352059983486436047998121251892517845196646409709368525169058319261071886621417975775604374717192794668174351353682940685781799996647737410784266603141269547304639826105400593458323253633257510426767707156167194895804159890743954614472317208373356036150408913492148687452762569561722341839105931841405964335206979389670630307900363217298276767408687918380915968063214366764950382278936138477234455205428454583483517205940872996757143598629716126936460367010564901626893557014497753676873400462751665758634908958927046591679868609761471832748733375833791220476510951638988617863081539299433207926017397882694103102944614786531411450521442793904630260492777657049785382937759837387198102725316624939990206615939332019653514226455049865341312630865521067543986679182670913373678171004948989018597271268452632129519863694513772948350109184012554356591999585508637716568585383379909267976233270525166922230279755689142843113438936647442332988802071318277893273223199749881494531678049997515191459950730782072456899743744307316770386747278769470458555729691648505115058898524480730465315404761158266146415373445700898285948246184850751546521724161819464662237967047669950635457439707119986875021700707565146635698514708405411495811422498052222107543769373186058513991336199455297417231702496976933869515052833754575598522655357799066447552103082654057869277626598385287014599454793689925104283654514053589191683626038252691162792239410351986785947194392263525795533883483690308724926643302244018301015078582359178738600651758791070239510991402971002504149521404321777406194267175408840850262441120916724463539103167842710782775671239062113260834921350566236908910035165626234103377053876308943407180869000117661712558543692396069959794946288245488802255678733445896296576515723357854411947587146890111689421154991072070556794339271507943543915473577423118381874788984969194437403041976005457811000713978462092877836028772621582301677221382146383869110143170419256725278911760089968975481753234557345366812364936402968180271887118265555897447137780216602061728410612591146776408638142997799883765253044077252153205593472545984055715443533039213009470812268377958018637470637677598869800490197448084316944500381841947940127993147357685247259109046715782983515315455316644994670299056831063305062237832027385404377063877426436335521155405153749766442681266463763338761299640425124454429776265639581318629437994342565598447739948034194761588901625987626896087077807796625909693308255003100180093684261698288669864157358887099034790407149435060963830038593015557700436007823001246423805818505773257445781136175293680400180697619173087361541985950042457214933095144969087248441697880750237207499793683703226943486714109999570511715496579070133620251556715676063505806388767576048488539176136069306573623049891503226617657580493135578083829834749331648815098278499073461927162218723220686170986738236039152793542723466208778360793921848174873877607883122215698075791920811798901266137854715556309114231387639189665484025996598340318907164042786987779742473540501402977129254890650291317038681104597263672829564020350320466513049083347990428118359848823864517890574284455234510437265391959576358018750589290892758518636419497013406661933388584621229169896617852159595491443700351536679046544071413445989487848946948430824482468086151379910431012165373597464157068801329644751283366877043803802677762493326413248854847809998399134842596002852533987206137198926396053370193103753530162027649592008389532839444131393534703008143925224799108753573650593779934992371463077199948671271542811032765483522896833155689221576975150703209691166734628724612401633814840771848009225462478319759602647855768850361119240397072215336670818828329940189760300795844043858847179236606327715565325716572512408277772321403160760670528174012333654283063357056557993769093011926930582384839679665811033474626692254360208725638466592056722672605404386314642191085931923865954198268099851397630392732091660946880609382462456986854989763253729667071418966028558004333146498482963561982978096227532019348979989162023463098648069225942061874356832293464564930313780445310853161434376511847333342398450742232411970686541714263961819738082178061049872478373179655761869649970232400744276895195172702281476431051755968069569586804964334912872349274569424879854017385379498375071297503985237191945374495364390511939176565825142553555385873442422342052034054497200542657906034927878297075517880423265907315457523105711158144424915294894647924673776850185322921682166912797333274503498016955572208727435801787068319909773250132206405348454995222953900444724784196507424323082318944726934084630167282824208990717700928266914484578570586605277519872129428142309465962697917229782360878295713010200048310686670893134983850762044758900591965530556630763081980348350774302188452515086827573523781335713328749839161368697042109719502859342196667100119175855956414758723441167848876535749812200450674433010021734102435348273670261102142598781936331491967423437293727479120022133400503507076714544532950460748997144298426011443487094840914159910022309383780593682693925532912524966444916481341014517889169387323263410552620013912946817388636999102496289197971070813921490263634270508265008759139063316242291346635806808803843374826864612026540134152110887677567108223918709419191572727468805023940707357047038982287925493839170863292677790182845340040010082993183568084623844980657108837451783767209854456929717366362267163889911130932466567741552611214625328747370602720121925070488825315520228234388705010058510275661376283472585787888899455949134108011026782875375685539932025905649638189610556498052533051632231614936744499626064111015867535071828292669944600452629935641073027352502993086541066644133963842374001546381934828888755443895095712363766312124512283547606268315174429373411032809098044217451924951376425801988733457601660769096509635999921442267794028912381709720754161466523980236491188224593648736009399561493847550978962618459931399449710914498141707917056422891208308788209814602854981362001969079120018235066772565967255580530012353456941792676810820202973810778376032392474324864174574417406093213458559021106727944090720114541279023424345148245703194072136134632215352796888308156100835723439497616699839109158677629806851667143754338140319019400127298503987435346848025767533378295005142403959990858720998726966876138407442413335898272677168745164631419426323769011925695563707526182133953956504410504303922195357600491155154455712106082007655179203336627229368293275587732294390304447979151943183865349520130159217514225904676964984269730620016800339883443367709341999798510002134678883427934582652678429516965879706182460428045000185877319290706947688555047977017840528365693422748560488749019851299166939608362644349783508821576969314769454208017324401263313139589059206937785526376563364800600266752454441641032531904572898260147683104957494421548713870149821115703382823357432103007184509593286490760591486991697043071742642221867068694145857307610484358607799752548783678557278847743801832667796318188712584861045681335171005995322976786028018042546263074090232179016339167738238446935037424729921243384836760615478574163223698729106521574922392017161094662768020080210680094973185801745032384351467846444133112732277417242358763474679972827356474760182760931160520699571937692290412159222559799485672905415403353338883764805250439562148992814801915884947566421430006474644707102762561412860662329496878745238004994285399138637769055309224144581426192664060545888311091802667482581913966222343066050185022504820302149635572978404577159583116982463072308274432433305141060375454474296872920736249972528485531944587835537490557568875866112150059352610939477920067930913327513682888559965611505312110636248787373081187804947194154994099111952134925071017307546628342325147884116289736732268304908490669340003262049829483677252310291637370142975201910498351593831116487256132220204721365536136024165377897507762363649459866459175037271883880013657348479104016587847695860303642435430946696027399490737393086171383805355623929991604667527811868799497847219896476060156294869158796137260033614244749669334575138863403992487241460316520981950183885813410024896402803944916737898222267067066872924226030852359521774294447065004367497586295795962441951144212643088626931926300007609263398998138430766768554575992152529766608986349973797206088493833475271041696923078671137489906584947508877759605586574207718786404511822137356405260279029963415933065815223762283483595809041412511517693023156351496140458586979616588614168040829400458661161063468808233293441297737617397824132434998494996499787533571394966518646904414724886344539766458174415230823259122839686130734344031336126465054337943948702495100037942151654734754194440089062755250200913373884457113547478408762856037882124145267732294102956601766046296047082734408729764413800297374217216142929554488859855236507940435732937604522933124071762063790562464819380850647443972020542728927999544553554822795137306250848504740667230823507941092576441512001851552427227504195272359631285567558370516092485961654293081282164595834263454772326149068543387188927997689895268749106844377680550528022628549724298859470573075234646415163862390586138930226758610407380327816123502618266054603172747408097225569968162844434941443202020055511769303350141428610350660711947622199246193225753749468398448715007549112839360879707495017491272026318134709861163504183000110237015295685815151213048543600381426409753629292214276523066072361411202539697096594084868761824469427370068313154490042012581666223710987573619643349417276894817757307691582780083327214600905038608502995635129169791594128773320356241438446621161906790313728359753296531520827796437449703800358606189458204952969089027588474331512141685207330800391175156330691526961024382407125734083195603131488089017052011720770650700488236697687358395806012141511469171071635542497918982516297943461117547292244353296187093901122270093400883180945837676748757862430049177204366239874911329967717505059286366017941323486103364668412764377569030290431168954215930503598829588358063985516610057598532497948656645300957860489173423071085129772625403939946706563361486937260526352752491152294228456859895540416482935177316582866370127921118689013673821762584355654430847498935279974343620614886497387891871258985991531728521805942810069319038922385150785494672276546668991407709605152381249743712910134818704269820480934460103716320093028603900404249303891308850152341173935377096514105404517887144477452173456024854841697307530200407481036856582612221657535992133566183860131185461482748205585786503632811187362320479617066451272790368754186019952645896871572627767052756340737672021066561145652932156472413897528067532861576878937871919896084079001237958706580672862803509714267345106475310819843831672764253474411903836498824794527782144264662280162080317492589754595014657139342597653933156363941856054201358661671416377243005237358215391229355753408544963967252894591866222920769423849505830044199696719218064166774056117800217210213570425669934619311253179301762676279471982729402020583932577281440651339698649225931176811591696859361239464286263201805024009456851468380061359658342382723853322887228508910341692380592421400401064345626942839488716964611602652763997795251903993477332738366977164704902475126990355875114193933400508516786137738613091029463981643167932543127414477423998393487703590758281675256028501250906909062809946011931484480566076820199889214531064232236200218009907948303581642853699348558176385875831913849325517395895824326440063628943661871517067728466210244634401658398144955188966439767798081604668087835524611131861173069330447539834805723210224027269840563738778846537729152480755621073685053905181754716841335793505753275798175911660974409487599549524061092389102284908453026982212422035076363183874283979024788110253731312207224741221218736637825973177851689436917325565974437464168934797802989416409552897062354451760840314272991389757855543320912749664265177076394748201757797036758968498683122147549563074939886270068849557263120014145204445373086335611603283118965403552565353682110679334314669033422197347757779547542787483032664462530493641054597132160824435543430671147956147779264764553212449124784010900471224234448226923467873585789822814107155140923784839549658758146146504618945354994551935756291961631958620382471531512900385328313055625683364527845887291584164363501724977873075596070112958199647916586397764797793186612111383637690976233732651374188690499844810958517092039839945304927339330382848709453154821492045280387852716588588918619060690478503134040432917994492913245763758910023139835495293167622173911913551668335440933100165061887702599721421761172563194123435491887346173306358428040386924668613303694264679268962196050666230533781473592723914527199407932696096965331987045008644395846922482564748909698915841901716462881606837025278455583209144165010131245480633633418690835352991631617764505786420854955175216241983913874301039958989348739339353535853257837560635053549485026930006478725132378630616779310280334742266090764161958678918083748744286287510787142819594780327208257365348081746599094504124834552684995140754194788850031017927423952003134543191744277422226979293017901344066855077360930167291175500751589373192135456900323499481418711955500880638208907309038146662208761723830867228821096543497835387072576105074686825214724645966334609142305742311517323042648036580265683012990146626731558418184648649416169116132863517952622922877799632843982969761206535426983826273140091852842900071010124464607572652855234610168128553973562179271219274527270914576452469137984621902084177149999731602179649030034727412559137764962104712419598395420730990323777019510249856363092664407951590545033825277478318580800202845484629711055153153830890953945341923294628968881827075029205089046688326143422885492266030011485587028072259002654749614804739343921464451913791495462466902310861975414371864580399743097359993444259070471953469356554790520567128353780524797989308163341601864795333072193388894027165773251495836027161041899065872728315994028527736191549818913612682272441542689671349093192500047301547435741275280654724115642345421136096113757538404973197567447594477622833995053271565218088587926731792081241354926237616496634701849609618491215433819182145745560691753054649744697538836291009491004788193057927165096086034653961040680114214904437973341491142909464223971026856596714258393622649201532767614846637334357676302869878672748290558678891123426354333992007635513560264224404579234106957759022339098813754462881422930925202862667855451390423466569871883582038403079655899752939239588372578094601774126357442789747661574473407179224590387007007959026012469239390751548471692248578988728289202890614533019452412149677327719496862329017477594470191307134916221380586347097217976505009025029452671923660517879316725731859009583910469052944447899419228262386925176384615167285575274208703685732319400139045911159341612346145420007385133810493108811816427814110680790514681416594172163801750280446428706440172891630579439738903107168412549572402086270767042037218187313157748651533157108262153739084292454002998619522807165915694716239360979638508411379094044628504851159486877545637513580180173360583314893989464277656198901157369623676191894021847471700088937253737591840962760967373628310716356978176752025740797907777788078472594876137926692356503232764780745332200267488220692989439547511064601175131934907500507021337831470619178140903498919111750063012189205951993227919503746059986408137539079445534705184604556293363824200647798705878354235279675334293489565176312403902318715710667994031755476845659532982954304414205539857087517487942732423382193338708400360279017682954021481004136408908227296086189612574150315385320220491778948374528116659360161575632391399486327463987926697820753205234777345861195487349980264139023501629903188845405831524755800766470616820056214343210407148979379915391996716968947040345913037628013708448664962719551372661458135292098980608939267144739987337494714768897092215230614634716152096115854474276363060473301074423788416526908195962975241178794855313583660549348267707673555175132769248467987452802566055373934995284051821125177074844462716060512018614309467689884322820563694453517348420902624850175689976764151517916879087012087191276255811216269581901655264085780373873730495292060422340270344078996937524465259061293011321595491716714385102447662751487812246131983680146593945247315188059889006532884884076599718438723962687463999379216147217870118008197942933074967471493079022418538729469849633530609551065792337599439728858764467826709640295112239186110105171913494761702760380436046373009723439125455905829806761086706280234294252814058385756960097365149448604391539698439402818789856509020285820857007638999816010474328376031484448778249940663654980284292481975749359274800353911163599156934946365593774019432420918319881825649649037449739318127239789253878727484150417017861475164364520272875127337351478652004849295178954631051488182907419393055511948776691291345361564124663647558144626095265475200242557392068992834515455919351192291045696559524673317983521943602079042681814260997666736141601889428876452412834240647018177124870358499336453168357376448091916413098275867226035460076943924740769574790982263232619938729796574305468953283747590542179355866859700249202657973018502874279973253605374640348532523396025746514970306721525231020981318872834480289788455531292762787627131814157957817747261953668962345780432392051135074419682481880003827427901654875891017555275308892901564858479499767837832904120079799943247254210960224277905289552815774400335360936138015062490912846308402872748920348759152124965404165246447810882859823977015014443449898739634115430192646423389214181766594819850616838001732636053519459107800750614965547747246969894732801135234418832779704132437732082400516064160593911567555681495384380687449224350884428373283984603958472109187484506174034142632252935142444220959754287870352925567762980477190629460920721261230591512164020302406476571878329240899391199397706075159761385651993281554567260403113378778539407369555222495505000651984299309952393692969975322000630420986348175262793390038286857405432870493469311451586371246566007117535656772283702635251442719143599325638840413442988035854754507109206923567444133252147068544777356582457418753215230121528095155559589632064539526645548120853863217550497199788216314924931502680137661271956308714909136387624714508708716393835124627034093592698016011827503353185684260136438337419725472599990546059117176259647260137659485320433989063137854864603253100002613397616671668716777664379476260181847145081566983450764627885134126983816799160648777782975996309154306766151836155119987714210758141690528190109685292276989160431690640158342236379694888984318333533290228842590808027311204361141570552972328968979894508378735449523820088426667835243078020555725709175998972958775877229493617244746631109993640483555058107005765636170526204719154226965363636876171543421404426870835844166842846756652514219395678711537823927177822057166282195281371816282718645538995692992317650058441003713087004287698623514467956873426053648473360138723278658425544807664517564905806319036526480624522409794295161177860595394103436445565708277690885939949751283858681413841852428400575654570978342958630916869201618473008816205349747879128029262903812122440680756418888780828773494673036589811018265401472889801522808923230881103236332304155070497988746759412607615608253827879335711230099711926698427099562787145208296926253414349503733060574499566879363670101006094476985458728534837932317555529763529934693308809067296132650051711838830091135347835044778402800727740127148587251183270158886167927470937275681964732977910364558018388289990133031616716364043572233694383550978452716748153759150985349374805916287660700505138421846739947070308228637924851950720557450587546694255879279881611005816563528300846544176723503436828549220389705367267420328975264203690233788671624652124640231608203782147419034080064492622401648438269592332832304249635204380496079008863227965953342007925198961669592532445415723302415913391963116124666450107792485052080625606052303658774501015020154295429181079147322453135835167630341578274415853746985672162298191773388813806280267993951914504334749065140492528390405810904527748917518103721149253850542376743644358480821876658592989552078289341514166512508845380391062773049167742459598411907069171141125131626798423455618031010258717132967429626290133389535211808862811652239975255464780927367989862676523161164576063526349431004834544768205851363506725545896940318070796088966733162316832090392875175069320201499639588895334991841574794305835143808891193689462324171383699459962135897286923210100907302804534883831175825192369715254085780082992485438181301720399530727293036868801109324303349561412956980236052951326938657756827621402547685637319307772211264970466599330320692744858739747915176440472372295104156057931524725655053480882656453631733782011587791108411684214594779918929497002506127926836928439284822811239339451420691807002627800990208465569822639680663624255171053008383872915901645385798889281727285775106016135981460665396590150203095670129826525327875867931217203254843650187457720365271062807058590666079671582213787386503857530767214714576487419869380913651239305210033535898681295231284391744791222805861362786088009080675096842601100895156272721200340621083107599446019611297090805006299300117839927073624454281266408240511499653925186895517528952680849058399675666427724516011462445359354550187882095590638351544538566856058757639275491976649586604494107769658411331605662535334416729136818143178527330987916069537251790555209225974697196161498478216578237892857212652274583756556607475401689175259321215989373412321627563202834698954018225526359501690452838941480545198228735181643255535892032302838745760555808226757055736461331295574549426707554139591234605876937768504755420196581895525624592787071273878221976284414214375263993676112969209039376528585516336648194592624427425734494975302791295182783209777435089139187034981115051793670222010946727962779738821913212418849938016446508839778459077218882952593717162260808662672057095244945604132026141258442291976184881040011214240387859324540067237763503229519124575502702835473037137924847881102793705458192999390832254577521905862323649868419146328740292309240091085136510716112648177572011388929542329463594449358113527606403137402072311625644517117585500074931308854771435178585828831607181556625337951411469120298061402360554733211594367033035681927406122614744214945453285474324285093646753041325539169587563160289421520495962407899036683364198586725933673046881465905840758809080519455206852944726586766488379181739354669101413343104577423641831683612554251444031296016196073858675784328724719081112991187770828508781128543252888455193526183132705238561421380728205486565935331368339513153832300736175605457182167168875399467507983153130798804450572429971580577470064087600926263881661755618571976449199647995376181546585834770997339552366811538053426353963015784926547332765354806433378890507252111988927437535616828710404069103541277327611236577984966034464996606082518391057421605509976308151347082886540618930933094480335189782807187416775610797560311657883177531724868343833017930988434390638618625979373317782779472579468973751495116153814942610529479448138584303057344434088391594418880975780190581075098458107454979542375122847327310637942558756587884454033706894072007335457873112509920160599443892012813629361270481432910060028851606877175681044360141328498488225644465808773235974399539790308386488687629927193631649098035547857108886033453297002747427167716137602248795444256232378367209859125474717129432851825334142165535384541912715189332759209979675175071119435367971487938534500408268130783770982870173805333792438725162874962436595784542725446256256463406088377586655170132265162302069067934238890750470089747290904443171092666481805153713239246136505782793875578585010205322998248569553838853462343029416297393698327299648618438089970974732964082332159850281921038083608486922992255015430392363197068840642274397482840259260921160231165378258129576834509845666726024091874205067295859554779777336296146998584053031610134627001623347600715247180796360567933969496549121298758596025008808584247664390505071953186455599263636589155846265319518630281242432764801847847292525791882319829904695037030424313254309566042575867768657729122483451472601251576097737691729136628560700987165555364272927746619361283734148644788821719183154113608560125095312296238330722652167574947566058315773199370627908846063016843179425756559816817128601036092717587556086128996596403118679679482846674024870039877878914566277084860371080281942476352001556358631040048480969181340227921819506244498593843632254670099561600243189118777979605864047942254706644573053061815333053299796965903909674388886524333626150339873916321381928332250271282445783136829457141237912038740740025345824536980898255703329866309451252976636190491158257651967414848906969683307459054876282369454456524849170289452418574568873510635958292076840934149766362489563532008525305823178309131085447726039523777280811329948287705990324191523630349281709909285032605872212412961678840948621222498590653702055237048452227386718119200839752823396128476420781682936132186136506607826522603574494862168717444745853333850182837781202659234506283900941941880544469596164040312456130771798435967229353637957734673028172889178172520703453912472569688404049757890706597319108639922069469518535011933511640329941505802862224821840087380311081389718959143502927958089225902464996549905237524446697913881227311253747914102542909577775461904599554129646795078811711273694565794276395200674673565450803839258746920736661745573200138098948359395590619078984914715916195039576298277501909922301093485508194490401505467401644765771354991387644904410883210576579201072092003918347987824777620538399539331701542729092721109560985101555121787010429717276581980694482595346817707299741042097265339949824095933186151450788288680215921902783438389192854733855771959522792543420056925319255164391522666455202657746159175152374727819344766763262443429987916093308311683942494766891240592419280019267552030287856086767136094445578452790543493786081692883657778910936100910957566791047315868122454887475849285647541692554896632524348079413322215949368501213612370200284696982473776474967111210091463476373286628179638840333342399696460101351386785771550171717210787037261830721386815545205453819785090199165710265251772428049097432031437091295895202111624494833371494153732982364450856857782839315919780212607302716186241237556253424364977922129782143770592328233041484038056549889930506688453695672196205784208433131500670377289286615006295690290634768722568411424133216846394846518349701543726954524781944433743323661560072881489773536667870075600651676385710478476689319686691541956072618497610666069817811995262610047176122817471830513729933784966889054523265542783180890770987168508010662431753832631296865036136214647605897540433845649617423289045053101203610279266604396027892770041668096463699498559587251692715955441928074098666445231047145689570119379990075992321493918163214389162738546169516056970304494218080353553559283948544042180498877170144811932958358353374751661927543669139762246109419101379945081209472539766247481663514187244746441201991997268850136876196870704325492586184245143787979515162702912077502430947064514249041057173323574938620600345988599520644718628108147268854986036193719937753456485931142999893640063737731645991715680841860912838058736355412535569259831051840540956379160620566949047644611785896830760865978572291292761550832776462796152647270267598274739186808962816342606447492843607253000074964445656002897488196491986135095346943416080771440305552456375522099103657392559294660457952112097828638051142886503562417157578195541717851330075070441791426259901538685086902154001018316666839801947872595345633944568824814980907511561099197158909450705732458743711644370275339667626043677328201939697194181926716769766703250112567902767184483223078918373914371959380377763111159354635720767894099252971334467472652911287441072909724899729133778729493334992978913116091593548761552560837537193449245399469571410843855772767076045213510161757515064817710252742119552897044187309573529116156355357608918036789378352253164116597056250083606595134371818224497405154502554623561895301953134839124367561137162084190382137234835914761763068765831266674986154597926312998916233182178257793921574243696490951289929921168826264204385697973049689763619057610885304111427747784057443422907860908132192670519277915853994849892839472386554050780962189876370075906035229236345511707305590600712576313499045635541445679486284693753580034838590422468396328096581048778959683785939908906807077968094771115150014112390282566335712176762848013826426443953138556909977594951512462398165448713134319898391098796578204542409293274820064409762480807225483066542875518785719153852637707165990366765940309360737727111937867653327724152563113417025662259482079579656819409239518282860131478442085836137376496129259207655264734798481942792576305783224699002312634340374740310952367510824298970821784190085980672117133738989894324746627170630241619710214883155106103570033305272577624528509548255579004308293440520712120116367881264058019238575421224538226553703315688879833367441977277886544452178962356416083055646922312505362916320906478755257169393538468848614026267041452949877004927853694742967527475785569794176188671586793985000182559520385003106428695636438894960139172160569306812186896005954889808017023379781834301262278914353382132890998132634900695772502173366639190871327230485842241831437858099081005195643954748024741265625288221105302857013227870462179421883121489575579591072438567548487495962004187663310901698109288369777933378645807296274597852608291130161523964218846040079593479100953170518721597926879139497542596909818913600548655896664179020451082110385421473841413219322312288656640996761823975373771676361843755119042225373459084684011837395147624216358010902916704047738429794214206413161200742917537378294807926549673181110067434134952974073262846475215734737053633151168396723697457257788775028075437164918686593630830192565471927125285205504881895319911160755804977199980887956144661407487577535526002456295438269336479343541681385358500029427462916101900571468250032063628597490954790169936392879185200404763683001186224400818487545508965081610137359315548255610475234395559792746759560785635731927904247956698793141021439228503569019795644974172358141222298334875247956288896324879377504558818234674043174576720193916928708404879018802105237169561986168594850320630797354977876455200438870466723401300379392572618971756555350173294779415478845313636794193266081367246756786753839662094067468681495917607305135561305897492707373598402370745792554807967776634498412607974118569623280044464286492324227110360158611261922364171066950464285023174298487142987975027007176059846179131596427183192071870730699370871524181427776589216743219499823994110162252685866122025773345572305651705157086353177394320240988407099557785602282467432387122920167794062852351596626427597478110217577186008871953517759431772536081863290343631887545967109220003658496158858665567742283965474748925391657559241246667486068980335997672747032163623195030477237537833894793178331071262638056402416709321163683977640410869331344863574296837239992418512589074666784798182142372046495326440264547815535632978024558195998399370019437289746066046713494326420653210193564103839714603401589114472879849754391126712068960168452949034715851296364585902756351712192311198925235848179692932208234055077831388795572609276339127136682431442596884785122275428247144793565975190971299667326184684520643546866989647834708083353287306450946187057571424156854552134620039242486846546671694824038605289572795024969134596863310452546880692766847640677896884057480071770848992733189642717553456909019512169920855530771525957313575362917141571931393197530614372079578413218263666283751415135160614693877264298730952843677877025492317528315239518372367624053910797149981998135664327812339918598401176700951516650708490384150682326578430171731159005118132349791157620598416348069072344133579579167219771992288355673198580052365642692922863448460527186536956057101201890794798211978905531377945696243641088856386254617140359194639787440210853278684183912915713751333456645042172301336247065839200031558078436308893261807422428096876017905975024326038882111845488511823397992615185157326506490772290851558256399027105255442327526482008297484554932556540566113997415258880828234227478501451405806832383673051823847809406236918922502990228313682170482680594795353526828361659230957540492201307063302623070547330076198409378656515658061881343190414765695312786706427815445418975529676606084791903752664026080455729904383345118266183837585090868184095046542783805430616067929265621466900586914308406348293954659748706831118472146135476113217534222731975100382531783054222051925903582494327066745315984258340369923589689012620510745747989609828131942292282591399200455816904781242882606481486951145955676567974363119616670497829943245645239166843853195697989094374092085998415901722907172255503023311981819738880496744772674199669466485062054733167925978624346172107122018997047912213531754873490660382231229643439823151154818008054284028515087758715377743719693118111453168050152162154302884201964579232505343809547610073628662798708225492886466032696003997108659436387462951097381254508216557463980906749147599723572479428681823319821334680808362578255341038435670651130131056496705136724399908707771985146969409716230988541402067022014144798662560172311922417916369196502907836665559732730611197805519285850093063464931115543791855131967088973816791014658086835034007584417074335344012126274476563967846782069326365853985357751426244648684742095119332017414601795031272887264322788968870918950980992284449852622856301762673469890580625376164540156443226429914035704454600044074555631075157363608011175097912391619270337944345297420139302017155636690303211563666102539171211992869157896317150682676198927207299447627903272045518342866444736671451090610251706315985096267636684892358864828051346445548672261428061532225195280782254939932644443591273870077538608166591413343374011721853598205439107348787499272954484832912747562504827186168140856465684029745392783498426709774078692718703685694000687893342925106154722314761694080575212039143170746825320537665273291158172491452542839567920826219271741125008128615103111509741274376498561448756141985270886823800655809696683004523519094806606975160827928977477046749701450167751290741655808324953631691081919973015259455226473149398503963967442403021541429979014136534438074503138983187812458904590078282160043807142772786837977610438091152531687736189018325440904797366082968361556618739693648009224940214796556675948749638424034805396168120282322518042077578326097861880789883404016548229182469981496935596005427284990787312318424673540989694859030338992339677921121865329754018365274419383179147436342706044159031319548717865138124237680793787874367897453964775290026030057436654064021074298972587226677588236252948357994366708226547008013328617414439943289625047272366360124464485221541261480183033431581523026142705621036115402200020237527641078042947587278826918458765819656759006073090704802194742925055669366171135943673030736475550263502975755561646059454588643240292520946290476288406266677352184784395392424252595036773098697734731187517901085554473919656004435753620591908483690523086752649249286885945947263018475425279560605066398035637033207705710695740559183177973651908203258980023499342195662883253611106529542902613363309312213191610533742665509659947679261732636915662377509795262006408739748683807681735817752913589289744280531860538363974781410713650713891978275229797760698378061843826243814760737868560088682499138463002270477604831894871438553785042179650873133817002830930051002866679427977600841706815911251864437789610358033733188220617633000503404667962972999149598891147093964130436703267571654511330897962200274410653309378233893316612759992636798549369352861150776089968648477429051425003207169368890616369299048185401204714037411476769503039703913514807731495780932776875667659441295004758215884749055853473961103857712651769697977994740504863209109914992772893315641096269355809401113093116480723854162614081815110827324204937245385302756085612442316041120319803034596351351832566061872441864395341841616209757764644869749065675839396084468035001629579805503854014497326502402676960941764955216338794759589698260339478556913190421125343882345309436726403895251306065951604994426367824140724185204621417592302097182032674130402367519793199118786117297230052238854678363988502900745456164279351497839414069335021705373738785787246093337313751484878196909796422632940947239283007674714585222141921239384537813720573777321256474349875392931743755501644229016231412196066708256779045093332546363489626655490405585049183520939569509417748933197031757223415382115798005717452998372177345914851610690986387370296154309300178058483563657799092962949363303309878166671202211307271764631154351672367522153846607410295873129572437238884056536597241918702743584841179550534292154415641668712585560826732582132303771076868369996118801704038478245232953198297739519963317254984273734303252768517657417650061315009697355309296189686243281610695517268314510667970422436157217886341408247311780271782217675001158152697298775661086393823338263359408027669127402288821973064713882151997225998206997437254319022105040015047059204538612977748539741533931615584511927054846595743880818323195957126491146658084187463510048779582237682596579458425651649934380006434589180268182522983796975819528281135877154132329280056301612118594215427224298929825421851401540151656713225880647635065191781584649739689875225747747573018592223809611485329234949513667684382815886329998865127000053219558606416542436629678506539525321273186352521373792614046788286481348616832575289190314193975932565571914920022438842654025620997734643440094385051344447924300763105537344371783316192083560721285801902752232874294240709165102237570226279593917662563994702452568612900114374140682121431838760579872414929739969788920238297224342217207871610062454774829891024682558570801565350674521539658620566380117023689974750679442911642166342691822012843907595208313433832343215716912158285492058120019073711680338299297725894751929448048905731251341878734853060999210754179806816674605741364605919904284758262573399220452184056086591019775036477609767513510889610510490861709763278861796783404157095037650666097101191704221400739099739127146182016492663996076101355526295261267115747579285006734335483588366002346000804217924914692653383526749573334771917337538867491624211235218320638067046143227018627660947731504583459335630236489448974991427904213584027489017352830001904742169309276127087370781387437957050731329352915543467349294566640730404525135544563061428923007561386995577352129645909409852409710981812705833108770212112004759914519395382152127574944743602561910096568394653949883296975150311165430398975149363283155037006239382530612910968202888288687696923896322223083105955070582282564931479703259454800030601482663790859554457143726237501539453179832993832725196491845867794661247461655864814612206129744340082605621246752264263266384880601211666745566072918286548851022621371768929694352247654970982046643626559672208357112209063951472527926688271637431388386844745017263863354446547426082343427370684550583867811962603168621235923012032270797028531587199569766869241049922651547243104394477678756375423541112275557548483303976339341571090627441568854393719032462439045097362395688582322694932707357584835703118896949025599689581083436536016338865961111808055919265773618588435074118883562028202284345485735534226260776517389030242067995156789840625700300379480979639298062899167702583882826110261419731052079867309400537856346071313419559491278535661236276587431877311503093966181346437087701036638417913175475297202294292530613623580220697126017863972755802110876440670887317819037393919323763276052963037025628006193713806769545888814757875254841237303428232470624353437128368435903388569490833093691685835616650256446034282282127332396822128548932076429197168294158282592640081805964226557491052581773193867751134038978110908757505526348552354583701602393274658049018054005704021678167394448171251645019681046239175866473271157260589126406798392195893119037915885478526068316614059485023401469689427461814665926160253160258743062814548585791119785726098791702931908279337390997824544893790869878834945951915232129451398378165513254791492132255818524650508021908006839695044412959562347576637649680146205492818151857558502252952475447817469557306957595488064515368811986420612226095316548865999972027362382453139544721344333866811678679481487214617121997240562027453820180013511323786268354710398383511099298025755283245274953730651237130697773963150875930980825670263189027002051180046585607969431596089671232598592178903362905382289743070806465880877652569350492326887108549803414837613716556330315821908786828613769380041143792961480332867473435776478581674192991095167286028488938131392207403408666241785177285592838416432733207614476410655909623431396411857339219892559388833768552455589466855251698779072148683418587508930783575539370682859623444750278205918182427773952717672285528757640857056314219603796191856658401291876055132253794176768774741270133800573424217735259702806147391836253482322747309317795166760972485220035971133160889406124223770920814617517065851244906532575909090143529876505719054192035046683277879336269949524114911841279552412962788338522666382457037141507563794472480144576819425007835016481581082369293141167848921727885308202872177055802153993681446853621670026578849997579260362105682730701075243456837537784753594501839977881235004095490957605266290340903856385129710223418693556684588826721753768509837794950077492628905380214944800942201128915478695005942016913896907005761423035201885604564393330377236370810861036894558945259796681421331671770799748925153576237502849728065025778548557386870135343872994632503004030054556793099336914438499524455901932999396151572174707114215595225074265641818196706110552393587898665739743313816764517086415287406731023833839773561713179311076756581194670619736405240000661571023064928709267087771703023829381860393875511121538149166669963737213681265240339363374863841341648545816478856800620300907007690015594129863265327724050496804601607684924344515387615211027104575061952434570747685489841019983291270696032718061017884600268378731647979310655942155938639812211029283853851060484755632328061003191242335061923916758674347220668895042749661163751723513341315586426250550817238893937416107955615102021926966826944502645493731787934822961063052639396476385181341411405963162938525550856511156563692501895575286623332122182191537800041185819404573059626127198465828375174892705842053131927157306557837145113497342996741422484261539509297248453633098555517560642252962409810194359591973251178803679343382751033209415993435039468037386407254295362666252156400568754591375145067061091188771361250534571826876702629966266571122668893964368825455061375019527446633037644944958676329567077465800277867306119469431834283180305184394694108235770060187357908822779701229655526502065750073941415090518905916044822424378469118912880237822596956443501969004622353690193335113583601590965402665323009087344355785991918138946291802827701849566005790599608145693161368180187213527744987795493579155061437094769019119079578151914548135302026946475854375018913956089896178230387259043304311008870547746305649124495920707008021711325157277095136741849612208358180673507293352623441160897672477591798216147063845870272984415433324866126675675437286962513108691560081994068775734731416250429918357185606206363476549875077148204149416612736935116113681989970429271632595666701981999669927452233780537663343046455176860925797893524292846221665833740773728362362781227687506945223156229003596214351844634331972184571178264631817242694768777505228081678997943080822152219112146349335838846883659377997072825252588415670277762317834053122568084676894834730863594875997090690580329393483619775918980927382527732493398258535757161223915177632855371160809690972589872799553679778030182169175146814234704664837560089980570372297610537930456607857394779786783598058307531437489463042409681986775175966288465552766849284876889149750005562171887848088681150441247069384835315101140570185934032763992039905698158914801674014481632040367921487085469374693592647938085503847924678775836306716415634622485600094423079718169319540613352600123139964214292240798253496042359871016472458442796516124938057706724678410487743752705994009232411478496923075317296748547928048114577053913124812804279729951593667966830925804300812725828261579944273565389660768482769744629058215335980022167632207856953580560648504913176590671502769539085690111261226455391452671077661934118344144945214742547940331797142023135382345909298960446049250703391059756821457798497015101372062236293745552798837915386314213449400781377637958748096358540703654834766960720117884916315020797723217286671563035312499434525228044232876237480882506973000136519271322816427083215009076271151275002460677253904755172782051048704685810034801437721219209729287032262666420368403435263479839052322714573026125052630369999591079537398722703809420918574096369769819748455854608653111198284906695746313138742005056732157372765284965132962317231027846140593029997988754929196589963568835703448931988653732139151023319545564868120714563146148541932726369036979873829738741095372739339425822493348090828847111610945115927287555220336721694841561129404421889167940517451805316370303914732095219013773973301772098705942812282720135560722157703314932312515397295741114377559379505546301340354629499517784176930965444850195172361043040541603467132556992568749971546252253207016072691161345098970974260168526326543743035253895575485236054865954174970541606730510133351779597801930688030535601183244799040958977135355698568471526767528235719487372315284843559911597112380610346938813717154804848007252816104987616058245905400106277406544787854064717483833613607126830691416275827501921254142038554817383029454188824953216898801067063124699543213832231829043681549702107687385394635113783742313163362484742231027515922290362794101175670772809782689420862126745083995764413417194583115883787995348541480150462327487833538805116182019397230541586671660109370684836269127710250091259189707457274273118814507813790337016936536323181598788883752468403806780260876360477921705973835831405115595534573052483671945942408232488860536232688184998988631406380355988691355790116027204909546544669605994637603900017544252875743784585066690188731487299029197942866211723798879902040340856935903453835318195507700502416365860121154729257452560553983537665696964488673890986442778173263245205526736591006253603785095234427344578570591420025608214477607737309029013818413115215254819520223093221218087619399089942748287785624388490049488431803834700989417422297228974713294895158982701927778290662611174658382849968159527011323007001826708286390730900325851826386776389951543764727674117517794415306196528979889168155619659389987606825387336565645894184907152840376115588196892593327811030643523520349525692197499875270871313070360979921268564545102674399078011194662619650473157794741471630264083952649597741693244601962116072230042783657857129829401592070999323608257862057364033129521128130742955673351383425904389914642853633960928652313391045265174023797541638486533749877905208757429052157463804976211440590781969039043630007499277129322623102241725054207015646857953456876132034880198242308302606963849092504667173915822051202899421774259831133121821517819011419022078931133231771490110548221487847255421110958794101488599708755162326244898914928223047263498446022499378904601948215145170688133943426155721431127827580021299855146443690225447223226946439402077058808185926930683996393819550040563464855408657754021430803583225758084778578321984911972136561502925961608411999193563891798987048950708395790877375586830030696321355693671364447849605320274636012165466951661770650153683944286995016432671837262158676425098704884422654466242500836658524964633362361661907741852300563516040064128686759008738741847752945054042500469514852710760925690497393783310590593406559500719242905698727805794124488108452090193270650220892435337502767635900247309118532552649838433286137368849729751763258418178328504595628248297266970377026868456934229591516461101283078454046662906852379371747992431658964896568469356275947965481879876285542367072562948559112778076311804837722052913640337176609821124142883327832015000779116214381891536556758704406784069899224937970635442911995659170556028986903316700201723998001549831568406390563112445690946375383854888531218122173508730569322614889492598539406787115013044649367371896694760533327459820866854829547018557070158945290622924926128714905190554669808935012798645376497844134179900283548871924055130143905214778021272884393578983210191670336419601589435962947117690236972463034208059613175635789273376104836800499956241340412016227488200568193635880500976538157858069049417271494982098494694757749483670053661147878927349132760476687630360134983889935215330995130724820255951590682823173419838003674153496491770771539531514316156231962127515574995086264780069178604515222673197823552795995418269163067096020411809202439549639425982946185982375889790543299717242574975585490407502303496671292798063173482900798918689329752216022350446632631609606510054536606642363103829224497789527523331492102220946692014815708003178931315106846417942703765804533281354964015253296600737970498130157110999161736948485432711163787803904035873934414989487131254330093605204919689674098198116598183418733799252770095656386137174257207152002130326561226355912268978924156068177677611371912982291728056947989979884453438760296526663070057106310424094026587578331630818823828458347631279818533777743813810591977856871910917223961465985073601594959528785340149183536799571356326690993334032354813890185611880873480039272828640316635128418710054608953812791390601261302083844500631580463012316818744056926552866075939871420277751925612540431234167832214408257426173269645120715538248301868383189640965886125931610089951182467310686930285669263116718685354448249186329055617524288595406202487452599009404828181615835773873749170246202967487173092518764640302930221340565405307946156908935946162173565284898805270487840270130639520250853946183031572786122656107345766934606039061740918313604047999351035860172262948383459233282234978004929535685031709498182195581522381772124774433284269356824245884174947049421601874283803627297027810288214929296332332034606185071785100336362945801136870846211338083984652769653466138979305434500406587915213214913190865791540989647094881797798465710382196017930461449110803520425272773232813167841706089664424763423706802710992097354973528579367342797811200479989800835546433524541880132338202915120733271181877531958583777630344930473993730593461212917591324874012731494677487315740082532559998519478172129616738348286564731008838269225352996962998101428073332223311149294259086708952963120929530096446360286380000697053293364968702035341372186292554105888848039303601316428515399592584642200738531665193106354668507392575893653259547412879971829581856453317860393118606265196350735216453874067929620181214977195267326048727076730268200626614291405994871495857122632064652630076816673299065072228830108459905738577571695086287473719278601460530336801698585024527270880030941907008653747797347188357164914639909646878301085914601766758706633724210699025928375256812393418163035750909138872120839320755350654206719150414340509919383086795787691639198739427592925348277736621543855290671798622568382334819465183027972897702884156090422531498223469439523400230975781349766917978087384489423886795101342560770117470256513208454103993075454622847281995348585918663663377663049487331713496266251262948159145303115295043651138851712554434656348591209932386208238911025923915106753473979627418452197247656596973023031254300073898682431370576240102874739623858366758656738393834721964435424155329128983794613980988355644803480187771474083594861177416538428706661737325527884743104415836544261828792376070976526968250053782673672764774176688775286398776750570030055543161841654672997517963260736757906022907189234136410325664992769532549488782198618465218873124593536064695609561062098948002442034020293624430052735077467185809733152217804394240198971012122843980735374312409537698448454169170179543985405796844765144211220954310136112466423454739716725874696965927766874162222296702247580574982981031021989271557370975131516657299267224502250179763363911416880743697306400008626698169603872565702786426188140160793079132086021018801287805831214136810335645459166068965598343853012285687879532162872989650679299623473717596392499382103407980920273132075716513012953683618308265126945163678136564439044822385213821987384961036616363243860788517831052931211495949354187414696520363541736788422659017590134262080459409106917863793570055416502070458142678852763242883524123772131058964229634932146242008461293636524681194543420208090751103988415909070858464511698501381826225268251155018994455616740784089710124701622734235518653901007496785154755010959456099337890874224520774417448038485603020283659835361990758981848919719055897485136261393917919008139903762238926006075363567516928457474068565062356762369476546850824689947517586283463786162167220796003837291854105667490146667502101728416620806141516461469794456870754541294197905780591884791441286614321842592771239854880605379489806899872873255487295947430578363653392232468180169642236702918846603602088529866056644973937743063540205021494714689526883859086175430427108158484405414570737308407165544850790890356622656019030414634041205634878405932228956698786619743940354032693913572118289357605308022059275465969990450304035732633533539279352455971078860399569781559968800502178603034609068631175607977614156799149102768017555346142097350932291315614225527946082457989877746767003149121201763908910040893504523044348505124239158873460562350781404392663906658848334206275924592657316029505234971480047604888701201154096676556217316498242833908820350855578949737898567559387425672254248791382244426980459134163881496646102625279805720564714154357994673255705992816303804756357445941959409207879597312277452635268089954437170549736841984247847924071389307742558224832826619681457878830009465674403099354653103232172823808587625963187181514205439458574178039855903325715376798944311758327283025155129096860353384233010807881507050879339765671169101749051905408811255070210937612338394939480112782146701836136463563992622134621027078821944527156700075668021235067125367077831387165385870379024812826506160872107702882886046595886215683966502511951031544945496394673850528009357435583114683235733334706469360674242759964658157590139866712331266595769095699654063080103796044908319479656547311667971922576355755005003919741906461681149327487014165679449275304242372543549095896559112121070936770802276798723974612224094084413040510087264414805224345694842156995067261517321237902501474839721753502743637145762022763065405966420751896169085403695617814884384779919437362519917423792519749695767430842897737090960601848647782201853174047641110420784485858873779788046181656308939459766183631935528466654186556571571655427266697156294758179068732596123949515539302003312562128348423992442388299950769921394398506792499176030810155574942328919235064968758694754886231617062370539479548849991164271161687818521810993985324105627263392564757383225481326028455601691342734548828928077460404827351149455824932245476565687123912690208550048824666999362016323964650295853662499302061118302964678772984038791536753558234783187000709446492489987196634617787573660191990643752131470534704764277511938747158272000921088200724584134026580384011315959997774269276935440198620315884481854546244265293789841724997960356335277317857935309676025102406728496728804438390381805629383706865800133347831938828913598980133736432733037416193438633990515072114340900082494385524054940148930422088140166742599323133244127661553684109352677835739928102733399283517334781225003071956890254987836126243446754866537002014367376640852299843595033728710225995831722453540414227274549549076311312415693078785646283042388650436766696827493541630198654273214701296611418651978192012242178952787174410958438006874636094601047534359135951789591024205280151488918051777735342927051932228442644375305390746964083030406144021176398018483579221809440785350257691764605318529334436534578023784585525002951621442101788923949242518530105430378446794334248943739684141937100879883268014217904626935637438723340749222608894787750955586330177989508736986234371037551936935792538704331448974284414510881360483093361723643989329687957364103270373219245493665372450277403836548811805801024500657465956468260998365134273964598822369004818598432858435732123497061757617783788601462545008947257213525752644361638772910167937416748571519860526137438613948734509674671883359117838545943292964269935493759226109475841960198366695363002126976576623934710659900630159518134459767296073200875788349458383560129580766726976705362170422181242443984721924841080093491420395459724458962140051507837679961695961612663560043993053041145860309373397612661067832530942342338361189602371870611207272132257370461344422924236778951545710393117894278186341123480192770414537332657867008715353090614019393341487573108186878661249775609516819559596794697265557099440715036176248834868425653304816533954470593122260749278595593387262098468449436581477116584679369444903180399707285115862653976159228925655370424930893528798387701492713750110844556650997956794621783240761230124586108008122687239901151672474047848738566108238091233690652469822699675876958145057466252994156146625288971241398624822767260300574491081098497108797098976347641961589962482641083470300350136617797877980081737208168337189600270204067335726128019520681760791200942230191646776215611780882274885767525806314630982208475685732889218305287473117534844935775531221699104839042912558033934495034061631983609647788679413442264621862946420114972147966112719625652999196619686814609902280092723641975835267446728753617051144098245746348082418140236991305968077992268614967605681966873244721626753821121725436366075134039578929394495282944245507459434466407248983616211662428543185299734364222281258717137665538524825667155581237539202757987610107252130404346962597998693195704532090357515485626875467388310719473031575718562108101658184420668919935493635242820984150710087516300910750726515474421371966222088682058096017302271970901609649022894641821475914418045114298639641859569770783915627960848456732017640851579177042005164937646197020027856884489547317440162126918491547045607936626642815750378254123065149291135554658929159364429653340982173268887412613129557044060163684869779798694650657281722492935084084444796686793636940016684559955747657276726576797089716458894744578786103933890911106441482980772050005860988384810623751159019071790451292142511763904107637424069364465506284964773283740128386112839483317036502928065461225727027577813063443707514054709057511157859595820624864807240015175373358634646296278246839971472614435350681787578252598401755127620842745525404126512429686925365684696760490491944147976313311176754777111678837139909384204846457256038260347290113596534159230510261975378507704209761843582352541342252181586065156057712631892761562855905466125880541643297261349697833638649088456004718850956499128983009917710934894501098712825049589886328867503312096280518228582439419782561607250883401377603537753122182241588227324282499558983691802970300019983007245076570273407646538326368450730652860457362114589527925502457253162565704008314223554916711011526759815412855870991641001574952928321013012956824085391077939090542413911727820849999503018425071206626367901153062532687529224077083750026657090297473281693436624304092955453868269786488313704373221180713032503918152331399781267913714418478782826076861884965243758503695406141674613074230406181005007264730545786598850204976128625275265060950316292641260489933542648909764499942326378999329573685829332552095402989836004767339043662209011383403781037482172951581345839782264660216823331179017292354987699066916371650833917461252511530744402777251136070165165248291375754578486126540823050794169187739023736856750083668946587014195697674434534782479839906819188233321737181974711733481826085455308251254584417433936249147254970086758445981740379104759972819849127099212955201721483409534122783627540984425130514730156362204847758778094128874836619719916914350714326301990337383536659622011792756745582010419017171541524413693800119326980991367071896949038182202392567520503137057498360733614675110878691951458110126727941705775057948457574857985547763241523276031951870347553455827328825849344592103961507987061709443701138095923580982012708674132081040659081707047341420254769735956109094906014529952658481215815110456770858327556371998532977335292112770696065324517493396619978660210897014963134182580930925442923069055005505249612606303638096389463581990754938660029993793719197547980049204300952839061477816297480669611527161325102303609017215903368670940025699646086364747178840423786202887352624071145470082948921004768486825340753679175172827362539238646663300179981090415070837463238043736606151111190460412213020919609845260744515038644852807775781651799739904690408653003784502123467544449532977569608869353763527429222452107316251904844786249812737334776507210896814910889307625969610262472737624615903430321949465037053962328437808465897834770459104803734495539441299283673432964921263613827541197203958557142851406910615155892046915261939046405638474023320203897080988157005453041215765986285063468088572169116038722423639552047015003526807189754645909192348356110214782165634373627665932786599855054198515410841190613612798477218337551500932012331783049004019930939990907945207614412354622142173604741410060633555026398594697367069965582873272651434823032170189941058944780575938717757980489961947610448568870407772038616060702417353522931469565724344221047721463688514487905780667395221426687609243159403196151013609798482295358770199717531935521200624752903789538350401244152911709816347949578531504981980023764944909364456066707198186467051653015492263417266891412284252028608516886914860656953134338840983932851184167912921148703728943382807625924561622205693879785646977080803951223863244099676377117025648555445448121393160330923420871575456513792408929731692251417275797098486598399181241297505858612650304537660335945933867735082986302149422946020486158542941052915462331925528188649559426050106028326166502170270063111658509675085631903198263952278552528137204077662510944005952006722835348641934217667582249899047802584291651886640996299455798740894995027610208089786380542587673884018430719846746709490763408348016419539778493316360756670880996741588020205273272081985769896585731576556636742134005788366127158938883542868274157770567682317501067059289849882579086262530760893143580966589747305287051838063462907037978959808677520838919258569978268025759179139622124620614638818692905051608644402425749944692114864684436612893483786577705184637114390226573091142817528940845969459504890400110562302143234206843782043829546177631261439867944974088928082184173391033078861060557863410578649360172740261677483645347371871117276750205428303499901315557818036170416576893635030024817122956111484745582504761383807272735514717705844210145051191552800967209835956414255987521309420989787301768694614299566923177585304126668394139723390416484575173935176271823986271876514199189412953735997459381266397098221614683575272225882696135465038775888080380039753255780832708836409144159556173608004205603435783120251671407042938213399603795715412553549387171529398069843022975814064471142260170848135411841308897702254090634035928498047210789040876710563670052860800787548590970103471325927524117610755635115181136899055442064475974029659961676008043267537077497606379764727138811733780599011014508668708950679283077730890794663158860861461265272495012523391794636098770003515985318863204106822687889743212760198197946032976737004591190934204776310461978930972578929070322833852375639412061324960837956039249933100132707074218771430438175713004728778963220546509267533503865473551676655616668648291139059149006371311378117474261193374027218099767106534759279055887142203425110078726862430119393657795883719823653375862568203396185970388604133839145409756453190515396860757940930871042790442466697970420648503818397738583377321052164253015402947331472086511492689514560793393726301525915447716066266901408609292246842162114663781489638864267344555429282828540982403409630764000839093445989051715743655860819447545498155092618455820304203491466800433852040228049640235083285601676555864607858759651096623986274182388896192816484633483255989684607354112836003989815304978783069792435871247580847585999264716070914860406745112072395004912140669574056123017883203342050500652758780774989627158878344384242359967014606579595546611488410831492123774087672486950435170229748852074194546303602520882570637583086432741413203990429628200942563837560204762282852257858097142435078055653567721836665132995631735214027846711152153597066141710255187975366082063770027804495607462312026956046031820876115936040062781705457950937346766765932809282227108425035123912688355711597709508953301892318076254789048840824164622375673358683165340360925623232070893388826319027688357263835820349965589858013512049788061289215599073843497077979486992498608823862748906481708687123422400365250872010593464957289505702413817985556648563520926166305549435724994604587497749023510435454182747024404785834825613890815907005574156740677342552955847186942762297551846695922207357636392302752541992626719934382022251048865694364547429979486137647215279485942982353873931822278640102690012642701701124090538856171513520904707678583602644306769462653067293435127085075550013021248261879918067837519600271101533372330914838916518776295522184274838725616775352677422200841206545634492842937481049579796372541364691497343436614349825619447018346730899526803010613230330174301657570708429342573507017336751390684504013082437515879758277802283874189633266142594499299474680127022669020236636144765558772669665800043672218486016332520982586017174489804589313583133695793734643150614437802530413166075136476289565262557535322811192841464256230255278546121634068877949775220660202921718000225550707701745465946809962923066738571944780067461476614531368566015935573429058450754089328417180444121874115586790394890446098478997227313110243352123901629959356712725951196641539625950921741093417551572716482101340229277260303356991962230737592039269336822497251230619415476435995868482796026555807534541306792026043362405535153077186780522113039970660966673969177195818981248539929337900837840483865041058165565655079185589472146099550046226513657381152027769829184953064507796178678316263893716082530021817066569748721392145136445838060751917920197648798443745097448453524079455880698920020461666989201739137747253436896227975005401672517019679446191952531275209436441589538755536383965228387711926592681187512280758142289669991221468884223310598587655842457211314409829787074896706139206669087894224514874576898927673612495528580486322996986526642201391273678450199685149980418297555647788005047737892033995336115349241105998442793292675925979248218352038424461202213184233072414363227259462692003155113202244349293549151129631512095431554226659894938228727200764211827052655694342491730653073883191776717831253342167664542575576509689237153266925389350803154887233617576546687335520284823945849242614627854679364497167853618410349916062464628776219314881545081133349483039194131113791971193889224923558218047991351352747216162109796863219565770768443319576838461066051153372064389293823375020614784525871399176761377310050057954196014752076814804751839996201589995754135761018234735449616448681217657889630378937225535853354439888809738604822520153982796808729780416682986916728945838253330593571257350940402656050401219308394877525342365249949446909260654956469305764406591430252784658086749453036734156264255471468187811013293735559205226981394407394558152305308300891708969387768874005400103231035788503055461257031856721287781985146100986816203963278876280477903785301201624168471291481734371945303284385507455213673139736916342140947639343502749162443708970060628690996072431932860939103167576067432388077013210377156777217140462398190204302962806280002059731448851174962139466061190158362188153363825257034678604111609503056334661922017627761125875017615988478971178740999593671619118158702472707990049007619537865603830294178894816010717692650710357655692074207694869543357520450176079566344514722956693902038364889301009145236804974293838421669996686318511650633062900284033338289205990614049340356133182353044900597861367109268342721370356758902801864330922133649517501603496009985733840786175688266927116338481688990185004852951548019244897880400807782613054687938875538633843266369952590617083163771466898930914014985293460257222023313272417233653627697592243538046249374304446194890851392874559412026713123463612027993397993514411231857922462417508935789416392572070647880855105010899022625557116270683755868485766289054124774043427495562239417979904188491799079776313494301121581347159082782212062859728770472495605200388429869393982125644173263401180876972834893116200673302375043281397951896722432190663241776459802686815114215337437755927699985650347080967224209080367065550672603393761867044150280333021701228319284301477745122455397804546024110743059528809095021126844534114701984389876702451442215144926888918420571932967892978277626910863030182389371878604055092787915765113313411283341613364154266736494467871605339205105100893524024588882736938375655254371791330404164678403256301229270434719464325104961465809983543804051147905471405559904529465654827508167454370304795854104541752775145638320718096170699201475535975680686068855932166622877172244304694407886177751538582792873235312131517771319535663384578525440785911316162969469925827988736362574175788202340845988462072411056017185527166472101647793563558224888852255102414052985899721276476901211697601988401643347466296337615836636885622533952154335922061286585992997719297786964361485670739850689149593812008646473396645691721658592374794400169775855441981193723706440151181349890618234821768541955602242670779730241570981057558891771812014969160856040671221654560638288593211483014786402414381838180111568347555556912636259239942669526652813985689028183563369113440583529944083629281896240617238038534395851957162560178030955984095756215618093711747478380578838919476572192800969825948951148282231199500324641677999948067692130987051189113576768121815848150249221939180063783639592470518227481077478117472833289837114668962717578407459310875138554184080768606986845686322512963685049607691898272429234117818965584341505294970922892723394979243110220929299987379114623635066839947272856935624613529685107295383288341555336568500214101053372210008571487886387962667260865682844154107306927181919552756992578931098237114892797686022590809774954931448083817219875962825417802876302283519496913932487822763022692919312937482084873140715884795143864929549473004230422147420069884575779337732425843955560665566672617053296232132263953600669784068198956569374743076780595762918368086205028869461490873323193656621212100197136030709443281353902491147991282946030185370788740408059827564962989723277097208699775038541222370526507005786606508115527538667475528903672141952587150598321577557704284550732787996690188258995763628113003592976948757924432160411471676200288693983193943588720597780560363323612634817363155688802015566512282135438208868509113377759210392217065242875694379138598267766245691615633727607823387162267214703012338343825319118856053796144062710158335959222583494050342650297591948578187210868128580161981916435046999380210083416601991724716806880139252857697876398110112679721713387097543714507932546737431855555771249899756889385327687339317534761135363831230809143330518578364277773211640960437943483664832966275889455055903226132260748757712773607966018693943915924861220538242654210729886714175504771029781954801004454332332710796550598062974441655507820981339206923214087333274539662917772454514080958553784560520000157201542799156502625020522338267588647474213819223768045783258712221045935200484317419728099480196805262468095424484510574305371653206970879439080261342790711242115124122638299887726375020968630832264459875619179772354991949359269124720664268668700494809187037778741355467613883709990962298339414929645184496916131234375404701700474190794044414777853938517251807381450924732879716109815022834512405986125875267462567217131455897415011137538983378925399334153526193465382154701765835070475753365269454548267456174910743002899065753070291401711034634995629679777562323298554490120483922676188123565586637122342959263107494559766410581212177561308230102177000557595964575483088582157076844402976379037806562857289381539959111202554435634177502980575382415414478004509535077674066449908199458109731287812883617171787345659161663075291644866069803849593537325990781973122338359643807276713612940827589235773774627098926479807244887492629420566305511790684292536105496792123524994865534359923842469503234752022566417720307739994023914789179537623400159481472814068171524983090968955542306573580335100504458352353804819859542589716669333743707985029490195946043182525824980131424988792408039145746594880444854772503077505368843390913890770329687785766962998711903117320267018961031814692971123228571498694563466083298886258699540823258945904440628982919286590167832181186161099366721595080204981728971702256380102966190199776590840492855351787949353440104128827569920210472415038339939339722635107679807402474458679177057210298589256776303732231124985421839442807928852201982736836532930248477406139766009361183802594840858280186656170101371708725773507381119831869625827698201135085852588796787085047610402897261126673131016266584255164326289320820837894295379842107264866123479484669208890617654585099169884050912102147206523743458328775138425931865620488815510446446754856406518194674715877187472343048449605891552260432965695820828190621235617301626650330061164522649387661948913370339460728592264396216340866906260044524475562262227697654129943338166792923537611565742613592760236945270303446211447464328663208998671413991103536709228945234754636757865442104747235672963068729108525242429500553499603099015914921093829568637095433180961219902878042717130630089034444197603418403801375432972397640754534038044089499915008867871433756249769419875821646515151408320256165317449226508185173273344837411899142740216463344133152454409790137145148296469887452131490685370458888076949274487404241119888222826741881243553862436616106227460528622585767805946550011752491205810478754968842809437220141471712722101320373442215631608446908775690803405467577809765084823709634530131768220966630310922277946425006295315398708749380485594517910067683972067066066741886463470798186265687532975274815623374117701943214995305013626463051481592131777028784541207694131119133195972076413288332528867717904344368021798917755663747044442188803057078362013547856344138300767625306235943425727639523156010593662213237329343567532625357762345947572150347017745273354578350017005417800963823880749529594544888582737629718797452090645421013764123967717254217104203717069464317050389364871366287552137817939025585802980525368683501431575603949254271777302107052064285669066874565118375179621471970941475087763832952435035966689365652106235449113235560364801197648916660812786187700535817726799470486609505164713780319071231903412239672394434381048377006806430343871250923728700856427757413467282173289364898101914532218838303511971962926116659854816207187140679871844390161533116919666771076473027743345162101716434607857649109500688077128758096351607040821800966495936791070188708057475864249456568266357163371089281161116314021062225927548266007055075658356959101830766482816908834532517848308238823869605550798831751987883337988340326819122675238575426747171196277565107645363022192618823583338381394366947124501024706913309997674130392115006443662649866099281946260394950660789825331710989215332810937293295893947345450123373489189299207655076456856307555352365729101970285989167910803842069627266697482133409458083430066005253574754772285980511722738912229491300101319213589021357193035876251984222722831097184621597093773225898359900289698535754772779068969421442857745167928755748035762814718345536647084863248124720577892949036713448742286633640623737735019045678634389790630369124221057569611257117251269254965579021060567633748411041930151711555999314223950509637994274511142863343661435258736034111755337457432644381755701087967544849776642117616256581342946417167966717131157707499603860374161410755021342963475925164497858835860305688630928477391132995898267258563571313411768751458751812269979082376290692657992117200720691063974515954988156559199813110584993224785594852764188276146346086031913124043393117716253682493798120431799167134770456154881997893804670610926322480248733120163734997214529396645710539272261047678591576985618218637282058870894677718316698724783780469468373925966202268305781748833289010286002514327902302293955126056665621179413399819008141384603403959572743664980333249761771341192317722569898604691715548399064227408808149190290341056991839007512060696444454033991130764699830776743719668663351429870687010374212857363107209700527514862853414280059615217999799255402984323458155090626785522869101353810906872528301496937325366379697619433119563108431151919253434453293365703024271963544252849599124589577878058456570635938992878653538453975153096486759538670331000014498298757545827493867942486461028382654375726531309116342602388122089531834506567026646658201459300117211362337150687396568671142267142576149906310745698157079476225887841848052563591716983832287066648823220664811591799898973975327946511083031801596919246170272153465272603959366726687319538928710149033023056738751540723600096114208776052111996251596642801487454165870920235699980750410789469866345559522914639840283663058558540361443372572707263360677225867343263946968109080500973111398546987391368827407011833692858965505202811725108269467307998890043726069255156333795706132580245905472581922127555066721196294148050387610642337881355246417436044023605199874547904388653857834345004361535079967188345818760833888575261001896725651890044367346295673400072425763327926600292688963801496970572221427362964671534566420341205522488959829209640814684639761281733624881482664045567612513804512502456553678579421219752513554520900002781848461367148624430164804535011971216952175884511679790144805613146212001596933005168541556772357660606410123288439545094080548327655964336370362285778098042715330997750428912354256850232280252878827129846547143586461414931450399388099259567221675362275462415527905196588433088525018330067164614591474617692526014336969575327444025469431182023226066008926642729307905627747721664160567501192463710939842081997203246996702757198931892534608155509595718174209957173438907382761111806842425086235169232763305344377565118857974917367388595529137437214233510422703018856926390318576496870829939700527486519768759029599610967989904091367135908758629925643284533823295867919815267618956857142354462650855058623710812712608901838179195580607385799333814521472698638658737265571850812347713030694492398928126406653307810533970366839713437218689340537469003496454155557250415293700247446732801377774899264433468028709990862672044754507873206267270288234313710209670860251293055642951530885678308664527518951302326510997038089112832898888815636102822050542185764541264393378962916355566301085493758952183091264213765157653638759619405932957488029812969377564573756167168680437207666495209374026024364085303639362094138082507636757967011882096961840371036889277122094213592359871822568644054792740018986681305719945317744284132374256606132915301904682531898765286143374997878311969984059969719938237261752796432466511013106490280952103236953468567537552823210825679700366409806447217121144947902205825871673745202264618886345653012824999002524404075495060700855650384508505573553106846469799283802915600099663418392477850291019616846769100852372570395374174075746669465995632929110694778824974055409999099875531521117510433756539836422716030070481516722093998921107328260829827389222081235480810080685930613736273286491724999241590648672615125378382498762388731475127244072941130977500371500021831272751639565605251051970905563466290317533182499035798768602583029109284433751169620048027961595528483202962377827430352306983134744790331160615658590059264614308134744326360788583117610635778050745678987897445616576748448682772115426888599469083433760464390812624312765750479347583223504470099582581449597550545155901773342500770622409766253775914439140943332776020347009995759179811391601373574407999709628809171138611727640648477040630471905346176189114623089836106277223593736273766815898596184675238388547576367915804626480918714813870738944992459864295390511453055788787299069689547981938051849707874290272321955566598114850846631086347542934050792135836524811149124000461330379774956657755424657835788181362877223902850998683804745319310886804400737802975666206934484464360943821177814934671082877485483194235614008924135436931149442733326669514433655388573545805003141459849039918532575362332862633896231934462019599978895410976443165621882840964532655945870149982959895216542909947308442562339627668717080755471372699772109459364425420418726361115944622513631495366716884073685244135739312205472954753471669021873556831836332915504963212668275449919463606462800370949892912951664627517035729335117298986623816850202309168096395650461344181395612757742690239940291905353968532776043743972006623986001961689175965377764753325078690725822857135759164973827675764979499834824226551773683381819100271932373016263599133833887423004914146822593618194962283152702552096094235534097063470289583029863400541745056951597479938844939644994487287968932570820499866569503385895986430673443494178512527994380785804691040599825895863710377238418339326698279848353423540243138595995802040632473574083001355335921705560473077909347868328581879055824784675276238898998896585697364445596422359445466483208330261050896967802587670806013890781192673474042352379284784173304491262911043468094692955671814595795047468392669592396935730892270839874130925594373530400429426238219244328121444068536182175775612832327969050377526738722445886573687649621417331857326453115630410647161203051202278457383915756574788288290839194549058343367723736815765928065716471742774290138463127233154863824901652256740945147617889613211026385699236660432076413150511193937180668240967974349212800219089251422658292783161931138878683385184838273272739021712781648991839725443325433473325266012787907266771867425141847044631525749475278975737514195450312832564881496112578807899846071035059646666210461610883478208539270271782342580571665903092978749908179761054705732341123664848127076372028871116141255242925366010532343841339453853374478272629433240743364234141766344729584852648748577952120796921045696561475343875724565851785013499666527559666614824006758911663504388074452456846434953587280754348377852809941529515960619311934635413422106010950788913473586936204507606705570529186662819597659181191770090820058935276791597789892007209705377425860004813053905915700539571490588162248613667106112389635494844378600251976849185654038075263388022919861997324713233261812975677801884272056099567325613394983860346558487772202682417020455744430016807613843316188298784698391778772281664660742737488932056175496449979145875662136730467111992291522260131272763555509489124859699529720068177212040180503829991535806315939034291277309361949750115657579034913601600970962217780026890711704647011772288631798162151814811183939963437881132710786362496169045599751702383965478404413035394962602881931261038850379664710278999562834236395339070527459815505407960319156695564451742053361998160884356598827137555676682025836761705983704996720411778160300385660482377162128018349908297142021702431528329537316990066317342188563692067563316090634639928067359512819864360995294433705156763066907509416269192427382307250890896542010244219634288544058380075966806153320031708539852479324407526491731446081012150860030285880077667277470620172875612879663200575239318270423545801867992112108975992753630541728677367080604343090151174428652579628195980868538786195412396878488284064993663557081117364960725935125328510564000897625642899174946720148811308790594977059920678831256084881417434901346056094155315648861534479592426871155599706792290170541299433855184099887963182423743238713252396759357619979863755022342161519589047994759072421575545909813360148853179019409261728532328110931917303844177503676518895469462510248790055829856041294927917838022485680986297438031179255682333408884430879252164399393944240915435244520372619369196024351768876350412225319423451076630451738149083150657544998279775722592174689478480130621571373949961199767033809056606476408971690384807473505472161213926236644511977338097932512184153873840859601123612538801165402794566717710424132152461062009189538730634367525965091198522812902630640469025047925261101066046888179114732134798938752849236496232999672731633719842289784454757456613205734695178838592171446098202692667578253130604153031181096558030118507109643070056947625447096138171822423831965028755421896218021626357693931944704512181330918119965909265053918950122576665098452395742713000030718163139239678983720203219211730380030361934735673281504783658410694214997096620681141498681605982607503871082831458011400718199794518931984515751878292516450462926047704308382480680239001647451549361061757068286302542220854505925359281679792775583328135606049399555315324664702533397828657372397580745150305966604365821750461356495416609506805163411946384067636338072326140545437227048249946862415761992074475759787303356949584223399929460990646227277989257168782275916912335690181838738053277021459252418533103635689531245207514641016037232150315745093088815998439800759115542885263418408287062679747464791268376386214353439409597814596608922207518625351514134599225229663778705881703658096122421238995269783854778362861838605940560084963312482944260040133440592213587337039443915665888317557544762641505393989015484580787606125497242864458821922077493010992176709549166996875339477139341549615872913037958353768466518723364217819652159961745928394464826101553348213666943121517949412375139203816072355833305944467010849461254930188885415195667814021520709608253317583988685058399737159782219412593422678229977524504111732367007413256456146243317131171557819438407097455676344237782036074573871831126171611864560948525837009946372603959128080483165726857789506797473413603000892725126294073934500735532442190781582974410094286593023291476533590834140255291335422365634282290981259478602283443154647402839659235167532543893723675056620695318204145778325909568539179169467698787357877349896434947401973118852742217749881405049624925305117189080475439032550556601476957015423522654119520399510001953226462999919397035085714240209286273238901200540092169552733423147608403330263040541848900009433365205608457388978183763858613888634972766996745429238205533421988164608585434610490554739549677351448251312414373447298336242510809879241671762152258444029214127041879508150894397966252553938273122429685767413546028474133206103032617309701625087243943426676868638057560430715459943439964021034608852936399797865070739875928526897229160489673829148099964786998018971459361489796440639310784238852470442737455678121708115043806024568123160607501429388583544555266493023359522479059609485376737361268137022345751808956445509022902047558604012567238660088274975835016970374205038466215610593413305803716152311240173055091218193292867740573966974485083060632662561782005932024199414428750657339459029297171124509858015529613273711326363989910588775187572414911975267103803840464394814379843241219356926892095565084922756185409341278496562432822088570282796759469677981356247686991196134156342661549001158794372051612301705155172487506957436828678006086693411168735936723025263444936810095909971266455800874972385694331094139706716949580924107909560647707609691926776649047875573212853234883427922542102421791529926987123332713759024687990999349319542921481965047242745003907493775266667383753331232752295253743576975015513786625735021470396356788541444468215614833063249097136982313138866651752583797281270232733994563561286210475411535332335248574283888667196843293277114414970667214044925216003228492619233615673260657432441267385040481769331103730765030455425709421373554119124847880955721236628097051713742143394823534212899682620210822589190305092195939741130430274810848019356159620325599863269997528995336297822987390833847044063870213686993965598797834300449331427456146784132848369572572760004793504920915687963523828075793101935049625946311529950912124779898902423002846301356318847830626305014619439772852569321782431386126519187237192172990111162787443463443417539670668427769088136010929705699256267782167292608411232143288070287411335438074327994884512268404238316431663226097050754158901900513149766453979443905425444795895640083381564654164701139834559360644755913666219515054009256456451160544863405325307739146268304688560932109476438348162757308389406743782842655058370675412925573278992649883823499732269469590402544945301975116590156501406109908752635086705518427737987319789151332348434257647080217811149185958942392964305260735215434739900040494494849973949848275935304285988485099234896425883516647022488768877965855273300737641073759420465239869190723417058122392481969035166502737727626501595143948314892064956484857955822414889811402907555176877544737159605872382707963700320774505715792027619560932846597142774244158757289344534768515415274130051660913965173655745841821994192696985409468401742070746484657548162050978320113462525286685510163953059603131508005860309323008002936583656698856352452093586618445161435642114255222474711281686933077104284543266341610183809046149356580958263170702305209021529240093058819778193326991080964070778080815722842053789926314254959961479487918654723516782146739742818597440396059631212941722053127347818350111931773157632027293236499981648311354999012806379568921867373271202099698637592582757159828542081526904131018169143494810843818897695909333743360692769876396006837441092261051104101584897855278258222544331042335077468091598395749983444314947028387664353766247641084099692414334310352152779807066611424647934489480871825995601469423540053095541844671833180783681606402988936580556472884947051379640170163500812650958944049819269572901465932746143578384050577823151839041405386429218067714644384269020218225269393413529485874926513727917031049997346110195781987371494343540854158942710190024878584368014097060081351628241520543134098241562089729575633297454005257533577657377697247008948166696112523193951519059615879512600268219363951456763157898064406407200224761799836441566763077359054598609979501535595926127170185951641411986280543213217247387062702109224615894011106971303902921269629241893097136339874239070891635272995337677685670832508232678794816543286309595883766490643749196411325853778363598021914721222871780622345946348750043387806001601718416012696384339561533228941807336750462309714675591170034586720943894319670241876142338417027692807964080473847742178202402788206355244125798125941085599936391411776883649152687362170445886092129435028346612355999157737808842645440684872172850589547790238786675091557117914147372085732841997567091312716850428576188350079106314768376020289852645266658128806799508613152946746021512866717194292398149667548216990719551758452154011243408770687235793736211391168339368594652725729234429107177146234146055575654606072460150519577450717924302885783051901229253461327530237749417718567504804706042859342362060015586897774426480186091285576146069842464088807848257931137641286403789625591483493028501307527550008215345151879887067545912527040144168401268035133597565634677996780026224084477974733317443457842689507082481603308354561843899893616296802783330951135699978225630491869842368931707883854617501984427594833935475574643308191227653393748284162067610632373779082687828452917559935991014317588422064012999043565335498925022324744481392459638037041971546037956400120935637410501319651702462187312058746099544626143363746450135807726537748906510662407023998886897189045193152623406865633037777623679531773749905088127146894970708196394081448181796403007021881437895658884831920410947821564058268933214090887099643623651352803561710868384606198044082735113009378317805420202914809138545291935040119753926123578517198499119139964079302310345844161860513421225557960925762529911595749763514144009206106382233480919397158073740437010373141356427060212991088117244520244308247347074287496514507023673684952440301684883447888083250710943432215645041930248738941133240881286980174482832810382799123943221362863928739933232897599981518872306446496777218139429161451223288980466027161945908708084379142239776727308769366412114995478947760144201336747748530608747240704635218906061031051228937453215297739724394638888917487808147349496962065752149276029169331639686818164064798190700423604084278160833307631517707059022026298958341041936960242625561337361342141176600194572190630292295760983229829497661256439095161694809698350641358901758528057746730845403626216946936619704201865386620567855516333838224352610891857974342665113674016263682975633793964515170689282734539122593300263224583345607587764109345966527946004053482472364911736320166223203749442429162572324568123311120882554882661333175620384063702179141970474671385425964051065147858820733137690463484349623791155164189684059394306436936519414143391379514609779409100918784349663449861793551774258665939916449098940540086231959013316346392878661600037948531732066765049730331503053694743335465154593941543691754601419297534768156252869750750013793128407595249031263197981967738369025474489194230670088541537571712511062684886784166176564048907349472082180281832578743562697542677589879553364872458237654812584022046029302708633101125170320792822623849192866581763108090877011350230008193994228707380677274368186715880778698825314679192759347359750860127999949788835136015557791060656143131434534986633164555324658620129844601730770893129945185541521846757419192102552067476820294157556660030607490541761308324963400015364329250824567587381507945325800404910090832643117262085712876992370775203398099065556559293926542039085434541713980103690597518185474460358060198313314761297300473966067064270235476213275848216012207810992592211549931768899160278156987575729725972081213043121172651640347057915728930964032690440509637945716737833705345785777233420788963627251804602931933158852857086319966296637077271372528062502450007525453856546145880160219395393379226105214266219674628713269375695944292511520311890433103231808075161218110746506754924522068220644340476934290470724685361408240229122647689462583038000783819320386903714631705995449835013781215467566475885154313554518828033353074822302629953149370666547083502822649063760901273328959999471439099684860645316417265759997273771068762758389173772659798496725702628697935951231204949882579871969267840652354960995866152546514710197135138478101816690947391593332549523368936607273106733124254346101902165085662096892923941149569252771734425965975617163780952161939127054676556264954361941012246217755477484647005994427945504085213261056782788393327461018310674779442005123838307074909011279916744576594003938740364141827730510062454512932277964723842391421774835491530649886167006601567336805355496815215725787616696146511484192080718955763119929999475259524936579465491388474455848514611006236702603005415639728982180671939033180632270685531156157495813546146205140990353240531277627053199401863113585899191338011399886988826398768928434253772499749250496567660973968875340327410788317048546045717410111314475985254638782862352876021381724746246763932581191043743685908829645907696013016261973099180591209851447211371265123373223276238103386104591150829398029646550781072238822993398069536243080065474315091214860276435510743223983682387032525929681315665261134803449014390132992509031139109093384065987418827036512283075371248806923720648572056681744836345377310555549929644417494296506189573361561587572503105667399285903047507605089977559055365388838137994375987627356048708956614657570088126667329316265793249928597130247311016844749339879158626433206439497537147532685764616047749803872143601118837354333057710700881712536791283822755682391413744457536597564561314629877321971651489471643913024123667795415356412126190508525635459201164838428888928274308264557774283141488511897565953983020011094817774577908803024062645466285427478314725890691471080745444579017377440623106077268021298810950961143515738468277768628962486885466132486489469791098880322958574900672511441595554842749292598210893833586127828292305874298600547405504633503642839825694853642155565582519941340078731366125634402083391547433215257687972485828504028026674458708677361525249938174096202385881698332963435448365129206684849634042752914976631392942510749447889452303372753376339890703783370517266376301083988435980538563955090695785405161769421966466417621506772084246942655019911548934704640866593113699596742332519502634071889263896841839149256927448948684495071886798254028566412739873570428696693341411509590230185866321743166939549642623537729699512347837148833579812111646749230742663564442124112818606827159084790847251725383501020331269195848942770891989409189241320473559315089631381180818115315715191115878527385888759052611571773492708067895503479663323883630004563055864837275537019536313111189436389233075242657377156693951893694683986836746460334395340250530864458841600467124570838544934249819541732681443294290657434832240066192668492284482286037575828821005715070508458944772280600411490958038131638328564282302468049545666844398829333690783041962870649815807981127544693119920531010141928521419456289643681142882776108410696487089604923662852939383490555029546550163153110644248732104310521340649815101560617108895190138319412837188588102832384926307532403324800487865634666216229307892141093744471170947266485326414725906079559798482022877987305946882200769849443647852241786973488474626134725252832379346391809520454660080280731257568865182716085572482179861196416596897908632284587283839098809880338178699848261497563045940648260777748808999243080969046178975705911722901644378689839495865300148113085804124513150313545629080055704785442405410199229716386961218971400837133169584672647225861414333270448370115976087649440097492178607513629918275336633053388552003670292122045410515275738906364161383454294140580488311944932380410681083683029800743292817250264033273267853145371489760009523433417570045231666325316176301083859830388255940008832326283638057677508366143946543178589203777089922584656094950728717107127438824224632270928178978799898266506487623239635746094686354537936671364927705071749318563914976468094215210244065210229300647756356128206831413628004663102187886295027718608372671612488553340009812068082464143151025329973731064086271171680371041689686525149613958456603450937536402376912969948281892896693605024827784653031389516372620340387063227442957753223285242140699988523442626810948414521304012758345820661360139586529693170586234507468947979219285505252754034951381504436698335109038647952212341466360838569830829876833248213361185416706154675336888541895437332291548396879439766456983442201286749758798280702289368430866286390878702313232976050424658784343088832792312536677227151037000697459340336731396411643196306730625082783119356218205998159120227247279858383311288797102300633774597023874970397005920938875523048992367226207864783804568266653532261544934336143427732222756316361231427601294534864957100480137925428490424408903826700139426076781491098296668940384761521797608555145212889348170796049939883842629684991488029571716266498256937204004540740837452301876348204315328670583633638464137611160741370146283700031423956554665055652821635116783740933251191044060380085924930984880488712136169743532296862675151711718829929844508207788194805225648379001335534285754192447318241743328588077225067541925331215680527792171084945691609852057768004105761672718522426023912909399052100075936188562145398985005026140897068890486399023589810230988041710880943179352127882385755595623972699735272952289693094588409615108750632202278444422869815213597397128110219471841583868787753952699717818111492720322349287130881629450370523365176566031566054893198044344283831345788775838335894705997794663260091921073465165567220624492115417640492311754181108039377500258165479981254973136423276888901807317947859776497425168325560180463553372420710961321737771463172187922629782224214950697717751181080812645109747009028452907538290348807368897096830964572999871843267587007673700918022271430905592799042725391187298727316181744743769995451112546680183719985322856118744860065064551379003581461906811135929792120313991016775679461225421182161864658059763336879375246099190726315062682847432381977622694718728421109624476701453522757294847126044387303253133332988817463297963084506264205370804467682222764729529423811216556026349612215202646557373363520437394337944514036115874122443926176676749014594819322312870680122776458316466350418769907926772002815084846414913789985696849846507828511656520601129525218249609608219542505456844399316055640075084946983360251825108129435916860544976687160809348768423644957221577861260769540164651166031250384227062413209870140822928530411598976203683954357913537633927702223908680148366865230360587808789634059540522004193262398395104455604923224304370637316591922199926986610229951931388237661543005917168639146097278604328349095146875115795643984086988757469300816016583108792188774779657886898738403647212042160524750625532076862473134387135938041855682357265343509207064151261803702757349534165307997760907630145353882848071448044895195499938548102752163635810301720630378282299310711995928357412291101324422872656163843331616407126352507263237367232979175928276077440746478362333189023090192652818667125522161034021268663664413301655830860762657475381494575550449621427886541678115581887142062380245870066392265696787163251978923415105813826867424593835040720459253650639825451734784165041539079870229599862097371567638649779915674386671745504451768602510806876946908725369369597206862349904465687153179423732846083824125163407719756841852603110914068786312154118981250357198023660672362365811420332241995047749350270618866100894300234056841785155680274186818157407238251000392769388416464834216342273320148637056785009771340144995093202965968983151533717337043293419038320945717266866041767829160827996271967995552628650123413247408722866898837308970401661635994438066557462613786216809387088806042495464083824378559265670282955579689696392501016819306150196180894069357640282825019068461995865098371302852525975217571547577073092390384988122346950587211107203361748610384690376471328436830236721428362989732650795954438691794487829045987588181820748953790804334247143822201229365285185761749871015416131005100870819774967927739225000058857598441300665546489835205743019266185874001782286632481223108716529757363543919739583952690829446648340986837176548295427041866571626630659538938054536546933810039591643856723780785846562531410851113083388748649359185440138288795669754648198528047015790679416827319753151810569139267958132539395460974962874928894749414100210660542945436065113663008231395225395494308694347024617159072764902153399748157692892713370854084896327629532435700470058759635246598944589180297685300357238824812668928426203667568845616525969763217900029835673074940933266388121819871832945157710609452383770747944575404069795417397628478011412070223013744112370787471365152094518019267802262297484013516149500514367433365302515141299534637480757695684467496239917125664085161853960341098163098966424853819943141935359351075351707056597181671675050092309126101015153186697476772312290424694952947836198630158872436373144715172358122205797056865332281027094469072796829803136150003364440357364389425041365456487357316370632472222193152208312440783895810994432588127382950602674704816427384395123060460053677590673147821746856241591675372028040566202847794725124253020545608871038949287616353681892155879647541424085979006880265212264775649215606713183089436624995566354422650199052258978209745677050595886172572121507003791800274391705124040944056479466567672883640963797365852914828544430948484994910257691137961175932354946124463616045163094491133566261631738455685296836888681152572696337925686526896993141657654085373604538204447298316637789585035618524079912488169002813073353926088005951618134228561024146204804193648329624755300965644786837896332515308147995041625223034350023287850379223737405311062414866352617812979374236453246363410072062462559297004439030718911973103415794143635645163360063422464525162334534693612536591079291245831339036955735745606360144427458429398966647535142662483644924500009567314582115410284952661213996562952019286637209143102763452653504431360973329023625832754985983707053602134434360499614302876804646379032975942578314731109454917771889924177725388598265844644633110317124694662926004115662653005221845630217748280978925157102290022169912771411456202723406434914042751295211096852875853249601771118144794556665309165646210500726696818005728539206876423236189458010350458526660088623001421750227553146740928455601189419006078046203372314433292567369441730847212126715498071001182061622670417826753485282510470779624816811207586642463797364641280565881894614247473175879852161838301163632210000698031523585124304855481817004526153382113408300891657578191118266527574152820641198454150398251851199056477958320146339839933729388498462571787849158592121086971458320104767071043647461603811850309313402284207235860939267403860136972357892986512692867063907891907479863298420382455752056435039740695424116001282234351711600674728633260143216037069600682155007140511387042801556486758091558515099409198857974007988980479554627767885617391625595902171748040407148355087894436011312475720636921397339126600433926798188350293733711268620565439937708754490394725542801868651310791267890637074445741005299934787194177907229407814910152767682716550753254187637528347175706338054001938707411567762351899694261959592954226223898979124173347011227427866840265067585431864469383241019382831291681210150652179095800358831936690101480276723931541912788885677768530893295309978574857788223351265273215790638850823059619258701917131552088370853168746708537833279553942702143082677861918261273486492812688499752131990527106482812313649081330654013405281477479968178313082661472202014876728330861888005229788279209912591689119415000024455944317650096709799548140733155429147450941271434266021226834713845217459932923895372888058619234265738318928101749249641869392453104833427416994008516672067936950094337979609325890446312358529644299555442009914141572870054410085805561826413384170118315235525330845820968818647112291342850503926033644095225643912838924939862729481362933896711469944810819386441362471705356500645359782068123473852932507948819430662706167863564545113814823398677739999939967227507575926964341212255708303487637461133202187530546988831378830107987688881307778229891719574145953790837499017088863139963319903644024402144624501234821838646494622920901345244243990059905898477686415813251028709724646414810012050241383110079408786341714320315056284206457612045046278449982426070051849255364795016900814443432116665075775379000193122640674504080614304931874159955966571597474098097329020230013534510630860514276575471864010833753320529106484440350431273655486046835812877471018236452464843392862239262896639380731066680515728618675708523149621556852529939340441089003630918251453978944854469756824196410956422782024827146386890380718849122011130717645634973979563053434569448493891780630450928318437864363055049188433179858618314120280312736193993795440458322180161646854787632815202684658422760902953116947392933298555744063536209255848370038858155123750994599006449967658518112369211744123883422655004355723881725110264456840811997418485527173404076518532991835401812771827856435653782871180271366067079579663149505462495750362607834957783495551179019310707886199086665189289835797005493074313633970047007419096548257143009632035607639337853336248561351762777074507697896268262744763653039933924812570912777123541672592874335892817376023357564821519370470412425974442558857059489803263170937866704716121199861952846044710221152457366763627224799533772383182133974600890471371257773336423066124230733874778911016769124545034617010464280295857953096747183651922089649833632175279901086184367081465593033251857383519570693655001011389048007933033959247873808506109229398115185095658596909277962764015853295835867745752154258433706087281281507496361757604348755312991927187931280906753540447268412249447631206036480755604306738885888457069733131113417017800264471982267374064223996769648505762657294969657614069492534887150348740483793077084263984369886865398451468012963338918720144035423282470385932112608947292241678320909236031624822073567792502673986138533253281795402433357773058480566272853544685991442102987629691012408170005476545412285381989636434435922817948410771880949339570882062784789417522151469110448772164245955455222002575884910300023865312177023709060397302851090807310632429627639176838231751199288085449427838487866493328152644393831577051943480086558540673644327277846874733342240868190319070562128906002567400920597553422296241042007912086834906499553683987109821801984665512527264698334373304637613006309357960569609653701165120942099138044459288979418853931023408034306292199976111633230362441851406725930766571528927168923133825535458728955423895323034185675053088919206504717584320125788686049821268539600709626071332675850652511324765797654625277487548680207104085596831462441297168772474750862676814764079694208608392401817636152255782167190048998970123996127972451314386609890718699535491216822499853049995840115541415922205727646478938178961944914666019314007533930091438903566792815524780786491663851145081690574823229793418057700045162647876120465129978698572216374904466504364682191339977327816241186784343199462384093668852111053953933231973935321713855204435134501956226655501509576947950393953752536419874017808249506843223121199001412078405732650825514319779959731889116363571622581539302494400787584193971342082702070349706057882176105719190918800951249809174126372471520702214195070020140335054517665805188328560660876535972974781571255372936357535767231423826136239881525874700368814485880246979532560743450443601346639041718491729893120760393762293663412082280103961775568183018307469002643943962988840822632714005161101497626703289653455628872887568359125811311399382868949295021383297774957765360209128189694232189523204185036165981834834619096556493032283722148068718075294910705889983962028069220766132309134880109485711681766440384014831576367395973814497778479978917904503713739398490829667682157422571454218023321936801335564173229747145722828255459051783997065199875898998219474097615202097924824155008556886228263675598920977402424570028149658030718361512639730253455822685031131770394250314801879465749699367368903727088035234908990151153910190542767994646021267599602863570823254143632990211957595292127262307714827671516679146833526590407762693611170023656111527664018438728858964077140849101191376482153376187572913936491971803177794500027104306313842671582509065417902630581246106194377855758444997119571297551382288335176832375320400837843459900712664352224530192611341915114487250725250225825067844376875388343135652189196742174582169129941369784889072369542434975520709592564032972817877357532125360519299969498395143946503252277936584981442785685287388323956459874045412927953949453784711059260853536693436363315242708761803834057528308581736369032388644931500862755766251689482854951290664364747007418819801321920295889876801390078620948001065912109891823340736503483344243400487617989011631480236791489568572699317678953876100483988010683636339000261154636239443472785081711590861509095209796971144731461745958046144271047449515989168302452004694018574543209380832786137730233633063327973384355679527529030581706758326764320849973902170457394673910186379807033763569048706399247151260976136626652965735047253203825807821845329271663321592824414383847421205147787751470555359743388355785789607653367311758111437937103741970123741266915301311402988405267387604886019584771557939110692304910891937963087469095160175053253154195209211796376454891615568307289402762229112360659478556791331651371570165079117338340550351312464322222848102074202574119192551815275086037221370264063081770907036107015618011823579199531816026073973700005406228027167646166571844504237137121657859671929643806338983285871896422934031859685101756923926022231493053369815454316746972119726980117284760723366222723288892352398664033520808569258168150661970806809941816527962495994625552885775041123588430104792210563975403964174617563734863422104289054608095545913743686113133311287660942976876812406478048693322835882929442746209130450788394751513825343496686012076842923522777154000363976926198595856266311842312194194684986333525485865686049278557209410028329063942684877809385213239594813082374108886389701649558157754453262172797825242772828787754642173732078425722806937289378574088588594047938064223583413396889009222924471432892219048887597820050920135737983579293521486633295556581340708114476601458597342787364781338763293246033649022367380113574312725499981696036741411365461933103909075630366716231631247099631933281396441234245198655330021372926973080995254741076864948334249751412346698165053294286596743987525369016769151634008894741721819534243642744594364225637339644684129582054835112789125473627207449725373662338536807939562946038064654714631886165078197622414664426502249465571402604491068710568694078918369052914240393014175905628646169873177147302717083924640370614551701133450009996632908367265545534237087751203242674875472598274352185554996671164569673690312369315330045282478671026775196106107669854767894263409443434987546386822669121420677659230252040206448392486895081257271278466622668979423516514172049448030652173883460550798730925223283047363562172352897238492137270148574202107131589481269114337428084833196365446804046846872989768582222022773185471355477598825465484262069940094088698055150653424258061888234444225964055815575729951497036880372155718101222855862806203000527967001054031694199510621972067777970071577567203123814079826938392815632360053501248327003688579402044927837650925887595547439862336585324164754171252461282705394352334311483488290845731149791795106697856656601586498585819660018940179946222687072018672106679990211901215230057649971001047819322710813271297075666736417248586457814248858763798790393583649115992505328171928055855158977434560252748056936001171811824693257654502880269829653880800585023418523002215016695120204505981664653471885556617480290840931221636422864920031673049623022550406316107048398775872809495987479597458992892468894550886397011239929845784434146072371026834306285536532175106844151120380055373512303927843336103954542021663383460010427559721197635449274340868159602490586214023388161028994185446878560783201590385033878156360745720176272942351413528541721997477704134105710705237622307365074319941185346214906145375024158499269264994496127310749223990866620081938177190731607826968060140803861881948456149316840429763728028380978556115587546911748319108432914384780576272065260301096567769986590760655406545940124142947271272029105854934192280907321337131600172439621391374487159569780167538889815604907975090353669739988937196158314802783781632676707316165270653027670786249818472840244036232027445807755213341114036082327743483101695943692617134937589809096168245882708884638939105362014283476469324657026273586103434769328718741386762315606235954868869012722146267106401489551220103321159437571422510835198724178858882355102284732288908349376492763796664899393754963276097387253546292939380815750565757868293199362673091658759764001836359721119718883545387206162935740520102440311186870591640063090576651870633263910172329752446757936188392866797863234817914519788510492428697424764823940021898040758102382355824572100326275485547179874208278021132472568630832616430587812910542877475453592804379420310833145258351256426126874525888051626686274724115995045532381371319854217392765283205150457549182681874464903862894607551686706019950187098766930111085895783931002054401104994165672654188391943684265264611377644638954695517689549168420918857756883239432225071281092538012487484720416040143521762163183464332901762636252687776538189257769700153960360124017639001564376659649229098354539853080113025243866949012850293741881488037948152311865355464632456142782760024713852664021096769603617835984399998463233458205249086435446342778083720253720123505388148750322921884794288806866389928600816242992040706235668353350796765916066531843174192527448553346632583341210982535840557006381110155109402923819505461849606356736835321928230933208197348542580908785934773817866184985240769639021923999605029070717465216240560626829956442629118796438801477636963908924593649541324847364027680450298473526529694617611814570650895999765108111068978506834611080066043236468330336419755437452456289283432326329066469865038843453387529582234404748448284231690079369439494654247033387118153276175669219056279042325569024062139443263110072166440556193224323444693702996971656290812400708128582411313004090633352663236747771812416462828165713831615548809175985153973162279022679634321842205246897683466193668871550797492595641809232873380813323217458502131172624996870744433482065558536509908396187254700660889207047339964751520757485182136621243770004687152934793954342967467656446380690013859583396321650138036318348898181547838977876131414184969239753757717255187609572935898420724101331130217952542322090314995388580652178580897954546357098603823151405121749113535160998474380620408953412576474331715696187865628956914090711712309501928559414086791141043158484629219591970139400603193063533966685284714265117656885341669001157434459251098492549900907885243253709476181943242304063802941969893700075352921536582309320544753051887924395402337653408590444168343891712552118788968846214463090258666435767191623582914522106672375572835652883237322770761637737263828045537825639456918282349560714022790835193375328381461751239311000946179168341426493408220778029669004766786566672624329565189417836794918403929940984371445504742733609549127795701685178763535578026063118231638450343438260524825941596548975281377392721128263678274900871282694933262377286441726772910834498493031015704969780238483364884196971207068954686321780224345912367030097250281443602462772939014057304193174009675120099865417850167503437111469985162754114738016201947025910163375591587805266238653030377594450728826230932871881230289410055424815029610862673950810987485252449688254947794484116824035984315428224554541608951052460301520698905361938907301260843048137248594932322121129995992949891397667071475233026382907094687763246082759791818603630277691517851097901075072212024482264267785648656538957078776009090169825773366422991208305030742471127258068686939908129792925974948378209542126557987023452087120809394588168158325274157897310184860239246460961817079724170757155358677696708885302536010402000685096669808320709213726267045075623300331503741006257972941937925950889754764742289630905793530101678487834220620908809978936193276456028068796055044751785056722902021635341634189170147922024872539441472797559870289282486075766299840476650177617132014100636737696412682628964316891473463368499860401601618901732838952367758525739399770437047452530867979142346853819641352220004295817751473684109206665046060516322416689959536541234483633237088555325161152553142670666341540459177075243274641599133179783606635347277137447589493444046092061933466726707880762493106122767839389156433739956165164846875218020273080760126395952959681332463885922459330089487631976725435355997606647260747478748165667223621214898743785183588640155644375802004561508803832803154077520173047912933430556582477913070169833705750980006706687749637036021374446440330074169871416649394313067343505266557437722786051279587615267343757099536873789841238029978327790289105245064439018448653891014735410533535134572655675066949184467630838036936817220038944105040933488548892500164444684111947542469564137709356657974697929048311685378825566458888019624897928145649327551191951993288082884220330646699551172629071479188748973014131132721079861461825919632457390630319176053809581100785427014801911159341041434403540367113686846175270730219564744352219047093892390958423582368475797661611395992067778241679011821379672212943152466362875743462427381320390207018344740239825024653946030646036892031884618367473550532755600374192507540660166324155744160479189178773970650648756997853896506825112091588862032665547132559439381438896802890371046317945653540694974427283027407045721128896687523524167880813633245285113409821765971114742816076161534927995158805795886731182804201825353603212063473747318539048531738954902740438975603440440156549423517260895067090780409574355298970251089885966948535017752910333665413447428403185607256998808680352383214058917183794412470939616209535811629175919247320840185892377705964095594355199174597251513110875704310215249541011605732651556645749652513486993951294861513691197257179554810502359085185764460103438717522180278246285581181936208981363371367250809985989962203863881502320071059968719072994058097482606596721072072974436983407291003869732067903081940260249053732022673671204395780189554783510174069294438147074112930583066309289275546858139762260745785494897698162953014167398199323116612327148206515716454198555028197456954871137859916377922540095155616427696546632174008020062378324449379353223446201451335988276131159504799321252605232722306765110733938977175169529978525470002962899532111503890198960168040241362879401954234404673958991255675893586614019941163379382454000247361422023045437236051312505170575619131871099572970792883427631301191722169863324426302332546526648286931441327657656535204068874419808690116210402323141748317944972311041661723974027902251030658111064434199995735196966506726451710124535740030250101310435961799201809086411763417226933260598196108648184662821102357014803939030632565523582144928462670316044688485477239532690949046304353182448526096603742413296795917218016624862261777201769831664706930871648030525852276057677677464724894345671121097615941274333373420801292214966360252998259352354326470027161202454649130556270761450059204900097862655283610266844678887273871930085003038036970130455472258934338467337741027480297515294226804240166570138607904076938955213396361747017181258924810512691056587419641531007085596707687455115116592522844910909355739213158577391878451326276858503649457638426371242462517551617275744554741867135663654451992939275644398427597034721221354642269020120278856137281541191500468524473666033614576513956900504535433570505750593677640019851502300254566113552854476142710532146406113544982426559643139410755257690590670418012639845074106441098033676374232797859435974258168565864538322400471144847703694758405166435616298382662159394835931625661045736753902311752316102390471021134205677038693420410866806953263728393641529991766785775306083546751291287337195467235208017369206865462531435451053722297820037301553219035130255890333407328330243761457746687965462951941235804155806309302293596536585846373752526330004042009588094457248087788152780410812715420638494604266257860984749665529480372195772971509701439910285516279771997322157754848650641054366843193732951986904234438491272837323678035272035831138624478134667846449491211918145210090975726796184285968853757686564965470862072164571617473439617688202631229152329655303661651208089621776293220958121642579009028747237691733416974329448914893261828143764526460023414240079330674332563479764304591525639421012598565640467801426546036803080810189836471297015397530229014906932625310249448681132989341284483846106838578487681664562821788991627670990228158244750812077753949434335081461536313865652636271847303552185069232450811849847806685547592895981645816857609521769577641074640307693052329536451833430479320145324227818205353338645500819618558072548486228261246025518481466572762831718823785193696988111412340469148266040874817533754978845012855690033863276520735744740628699759962324756820560910120838021406190014437600348072258354764617277428650126434582189873707896701214614898118103707096317384072251488093512795894780422005150461165665119337378777935740007320722713037590694026664518880214820227552876124828295499375120364130738515036677581751587312791218514345143949229770426524937472969705832151531963244507353399216091205814249722336798245761887776588970151879415646570216257108583032023476386061996378626438156814869679630203922028782768023086980506893523988305603066411161307546590853829974506422956148231402983388106047589937969914547814360896193806862649020184580801704706459647642738101638334659334409629621676520024097703014344888038521183037867629477441875897223480104136022240303987813351021857696139146682129163258485733363015279986994685193652892151657829651647288968067118602771732123432034599657662767970476838405929471744806915746185631890521440754299745758543090000944482665876164830164843775929327973598735037628304751683834568367910574053600716676618210064077865794327163696104625185446184689087066420488831492768532355976121669517285131680182332838822505076332459179392672096833322144906212864913801692705183349236801845357560510792910386566968814261977749655649204060060691012358776020904955881888278774272174848926205005406611252359998713418751831459411175354473937631616720870345717962556634731873576892484942940987174687517154948701548154694472523260410967078522170938305132301496515778239672778038160725438813127158705028430841332066868748601987805824954618659954038700432577562723065945164528264230811325237392772429248716747292263338569085479715450231422045275338792053876204061510781530373952376400911178254493435813318207635633462201157872571892084682976346854216632925470985376142652802510116598176023220530058327772169379572703591813018637024585729912321197024042653051735124854959702468020979903093550990160046355893875275150209579264918893901993366892536703780396423359230247526521183989150566125655768553105381546263883005438621687601420901431591448116819783100852692800104816846295737297185904372137492626448415444557080719620083725045619083455524262359159452570860776456346397127698739647081878376310493807845369440614307713625583342558015740568833693923906655626127626045038048767852693069716328368723169377754917044595574437014672037157805397511771567365322220834778958767056784276639302760195655869322896839049453107541097007471250300160488348367304495978251186019814229441556415277377907177070190657989584992624622318190582912905237305127288550729036301021971857246014126600830478265344922966580360104198460108398467444993822059233926441802048117344334693729038827900041543183203102414346766454112109765367980051895309855195025336152823107047386195257708272411333238233635328015235359432602746537150771328458239791987948428426746809828292015043750959247673990755726795263292893966689171443632261336744448885775128280716662571474994174211309061967992343079095195554330134472866934207280057514763568566395585097642704076311685820225925793392293386690809596281511185681413535947739945370878318374425135069792499437525209558518856190029084974150168175784467484151299294380544490783922231414038161098319831245192866342569786863554774499847040450020205175539689596903259102848594693210218264964889755408647857737453261669553015217096203929817002167256683340094500009956036802429741119373747456183414681047623146257722593496761392653989639771565711451015130868442168363780385249550084685108125008821981978010631024042414434446529226436439970455175300045609387944294500810582317128457620660063001262626048280962644302485814984754590967760524944418802852160845898961516655726333829613224001379550867507733607093083501589019681725668947032164558305068151374628639652083160914950208752764483956260202205879816874741618477908942328810408147383008369516918505796771025931848733996702580326776956910484514659637353180981347033282942745680969146561361023349415135288993137052171826079017351843153158815784728273891935091683054746938079202854366004500644920365600968549035569820104396168631388343792826329743048510744303708722556679903673409273993385921087559639152976932201969365253994098057098559783306245073158972924804230246672436745563358965629098970521361993099360610580024829323597890249509739028685626691001927107512056482745261328928478997178415614786971287784238514184110863721991207506839561917586436316031373456941861885526571138823889520883960637873978504802407260533287748994488870994563442335850111110314352111999969504217434041766518601034325765746881393337027869583978105590411440559000932283402843155538784960652473545806950856991001509671290315025172186778404742029672614206887766963882885424948578654672009912227700966198134305635423588175028589199400918783964177588522285972181222701445010425763045634270050621892839079922842002751492308103145943942384432527852408104495482839641208469653759577873450989861752893418830038012836759492726602714957588174632016980478051910219111384384321417747832847684342804756440215289473571132732483342353044831182177615489501863429704072692405983450260294607645819529861450187580142277675185103115638530474364826317405718297735412636578178562477250137816984515825234454470904370493066815742280174422769340586472198737108562629776609409250189045646962227521663547887004815947052269034925577628409458383750989954598196417417665325325177320630421196115991806866220853935722075370301902548488860320287833992813899037821269016578131967898096611158296637215865176340358818980391181190189945215625128688109834227331915741243458913294879104110439455522275301543535828190202010185238413638250594062543748158313774728520413476170352880270072000578608192486986855447165265956591569876819348502365380998743785373030942554575712297486433525721918238008165701958945948651454579485785761212894131413945240428436866349366148632249736578573325951176188685632008503313864198547874954198073953642717992709775292761709992820335893799003286804890670411504889196533957638225172645330008569527242035103086466187904352271296816438123504463749996001469420497281346891186340105531156524556976119789653895701221206894406747091849866808469398956540968834528449778459337631886601686928032955668174565010894220366424170054381729758240479925920286876987127096205973970245760212768861629153055579263747009697958636131832893141078107628977964472321090214291488844613521131367516236031037672995639933691634194716059567122970794937424623764546437455001199414108791035536679670253306825587201710112629792563238213175356082640538167707656800523828715661628030686521835328831804750524194259581085637390561450908419393923708225031032810804823110842474835251086228230064917928487241912060476548735399676837141369195285526162249503686705919987204250611805363919833013725132357533020914425678842091609744469705522183896293540442854503568331476891324161951180964268771075942742570089641152650051262309461146319097940689483861984722360221451487032420904365555798388121947939170355459330803708288970212274274860604722591231731449713598201445026548810486140643129352689629647490726902096992924817449056843045415015086323657264278949834216378270670855430073328394210491769656798129895431160444780052839199984245954095821864824792810632626992723843148542257696695664967970248079014522272424064335222281077592334356293580310126348250440519913750117545886264847119854343875655799207440469357082258890353221069164461590817427404231707377015249420780040632486570020304386433180158045387954589337885615105754550105116120934408970029572790652112444352283213822175740099480605048478779789228366938820692924864830352341835914328837655289489802997571048280776470112332824890827854993589382096219131029212707708172540167156690823438211103088805277980969509694770227914379724871336851517081022167330509000560946658177454206024102784780831293361692432612193670118077072477690503032765416067501959425597630421208417362046443298072079386644824457264145941382696216436484509239914401617603290422757774369441709452685337400935138028763453999265722759260859023477519474880196846176784540725657802821583206258799919010687395546728695356944822384175666367628783144353680907654289031617247420237378526852953335840271212155328123376349128644468308590122721517158004171580097399655822225078894730741389207623720254137956215034831059931215702929773538538403647100484828264076889382280039319259965038981898113481436754472571072003237105868847813015856249952504817816462406193603660427301888522846883043166793629082570297753310409052068570967192483477657199652408393106136253665374300243271340422726043156754358454416533995041822706365576437022623643175746235411067797512709258747000428007725599213568255434013380505027560976630700744645300885927830114381488608045990048842652666415413279163616329262124187580730084610462307262588373934047836267060375873711827476781460491012859559045017467475099138552769795223720637661680159174257047375961421605476601636474511504827006250563103765785752774441455721330370657030936616822988432108973680559950572488909620596201042107552470487713433537788860467222626499194417892844234373447279851027946353638645504778813061687846076429039603504521675652274369141649978183649640449050847964702980220003934566302482093462725291065122063157856944196498135075132055222840656018223230952612867299731410875658650652643347732985987066079693261347602206790623132379146342570273444194370305057770831604990884433404209784914206550512528584831915827209304387021795536723066797618497822695118453241723668509793842468927310380365044066787541270422365227962547932040429213138890838595802328887848847041478417839899575187725913732361193211807121268801945713176065765743312526529195156514429750716406704086758645466148556238994411262087607913452140755813462660375259234231386291575042397751128789663998594237748782572732154212580413493377841609629607645593225073839606517403040538624024285410902853468457968172709864013205316703366453864989010725210117372628445680207669463641095319955563461273928252868525192566423219816826302861908930604793903457203141938210149730663347949995881080492403729949602589318655870641162887713059635240994474892743410410615942760386338701470576590905657307537915963914056922146124784797868190218941463792278734161519396535190236718535851280061570783494691112917173220807037117992810759518179516200263669408280716835048116962211946268017306545228405364682431366611933043903825034157661954208811448544924658737940286976666219764989580025528580370479694955212136519136284150232851285608557196399398178444737953363711977168401553367655623235656949852740899748508813168254234015517132583855149992519486531303186959191256266074614355610383927304009935497809210088248233251951867991818163271374141739217281352443268227360018286690853752545626522516764945124334064780635629192769022577266903857623909917526254332772336277960576712791124323614678841059178297827913308656786275574173167675554498156204779765938579199701317118517748087406287744462041202436558333422356686558530766415191056747334906533972624128283569420837220313487019828498609619425787010432680210530794090894736758893097251020651690851575488803288599228994187245072219006136668521936757148245021091323920181601786918596762939185426133948635738690651789429337195200187711143152980836584631978706920316563228630127049814070652270793023613356895766441490564342501133904674582605309882724567485563627786847299679722064908386487527783229612925044525714191777128363811184448122384507411742568879532035123039794602395796220697827361851890648633132885397675866628792804363696560618355253154805445235365357056776520759334819366947268014296909512309109337838454185901428840454612315174640638697261171165014402986256527213150791919588815777599175114486975669704245615787818680261773706700607695000469150277967381467817630599508221325691842146693069745933260598841718294934545365686801992405312835860958147686045228949669234905657789412939750424120934686575076253979227321826688259548814971998531176059462781746462349942743580398947631329449209239775437131834181687242664612191084654127811437274552541494046804485515772402040362585342334263674567206920259300411929260115510265164231415184565720436729400154616251497524684203030247575195518110887509914726136795333380263572031985014874652902010827746975229929377235258076748737492424034544853460312976116519467831446817368356119545183273323698621333362868394747753257802950286380397609378943480292106847394973167326732104306050788447196900280684817446271133555822006754649545818320171049178828336751323232638815342751589758195397957193056830559317492308710312363394750686409594018145865224565659193852652225520773770914506713490435717678205588836851500518181892113211867403843059797364026156892962021684786568367903505699293624478313196180646317088973378451112358972693329164925953056968053466458684079649253400584592845125491837121722953537830688534805895283161230767788402208595882177801061220565954694423739821886534533148180215289906908092013043056256067002340406341644726257067759014899451966427952056030496190166526036201501534307750326399965254273357502150131291095733397260237720989746552963571358879161460932803075400044304877482884304143770646652966392854961860801549422993758390731560930876997886675144424002709775068734277942479159644087293419267417812446234989471643284315089977724490154229356039854999949609238725832181957383023778663596796139559449719811440976630650694703667958089856153035853666244417716971564761671890308470638648548482336097480666636181471759251113903958002380796730575872632622843899096726218077255749495008257651317751645562913393662174319719487733813887145553818049853496686374196369657428064849048087975647756978615269034220938220729167199197394057210049251310512526421271399686950979426433000156015953596809785388517404019939587690510966076104261738037926368817267170502707496073301327191401534545482135554895122664335237048893502131698814221068525810563850180687523275926018068570803753482355636170501861066233129098137632934081965676249759204835145225434674738042114404172619201942416552324107934123836857012737235293253204025621436440210232555525143083790180907420213808248368166597524666453675321770644963339409922880151585762490151807116867828809954247153877712384567543922328135942245066614145189310781620624620995865135209316835278590851532084686219602390144947143989985697820489278691830796416750764962301193798385767707871509445393329305934891859736784103460213253497688217226599573410382884759120408523800676413670695779413544617736774975968346329283081700393323994760641870243101936640802550869835287415356392434732513371493471671649458278184724853751577752683317182713611141294538228641472136190033750578252628026887076563030250867455781206725917544470098435663189095813626460385795885965210910718955057134123601937829564978177807028197663888575696008317493375174342471617419106793910383379013146567474052367285837397195235838300319421414754556575916441445472422191862726500264826750501882046560048466156509467084876640288076196690379797054947630092112507737971403332389821579767555667300710140753998581890212891848913628344088350049886089945318144076869848983885414687932258285128452705188817485039124140983238902708502675386979711033872847005368819062326893410113470352864923084684904826125389544778039291083396666385745269898602277006839037059042448238055506075430956100657653780550576343163403688798352039807106806676995113400182719364610468048368810696712437521205475051830935245479815847380479332025353288137455130420584105468786619374412785811358695108721355685400801839079084944214318455395854720186836545777086538376714746249698153342271884684660832250216351707675889445058465403354805243756985682840473243369228393294078655944953108588837617636081482694365492891097208182911883659741241920435751726858197719247175947960669430358282970090493424963310559901536931717782132238151345111524284392577296357900453558998390489915953746780334606175890200709515357340238369406374897252725840123005980442145785967602757878833811099182930850281781091213261771661332909631849791293416850010454439477280006481508046122896215726448389648720501057109434462695923231105629772803346056870281731886735400870724480708479792304861761133481770318253508753372989906635696661422466276264608422225051587545843169447548248696370940650197634615999108293931844334922065227066334491420063101898757988615116245616881954573322089714746726822107095311276712473140222893353685290529858435940223349283705567884581830016506907728760284711259976558723114376424901882348381364813500113031427279318126116084968007337666980133817863416271752799207751651628598518105951822300163844332527964304219630904854432233336740098960481391496381501439310982272090796927650799739290569412519131835479145235042030548433802032589845645674767099420863761142351084533553176466523945824509680580906503272423153485811615642662439927861636024781173972720884099100914783891105680429241076251118515510586529820312381295651971533362435096056887092390631631160393445621874428043393808704740348305587771601185129408268545192034875009647383912744388809065549428083748758382174568286252185945269814499929482684367985939912289173334907622237646990569813905958813238076014786616234317419301310845170842034099088880708673993682990057308969895580285957320108067931429184792840357921256176584112760954623737633932058133663974577581443698067735958953984448479273393983669832777354257221104954122444259067959428797706290555919767819880364291586266611661936684110195447037482359351836493903028286133877592954909118236252291982915686724109033470099551751951396545620639404842871387005273906956703331448638496372549746892003510232863756240307809373178196975130402975926918516356026797675421061764048218650228966921794690657206836450297777518587082193467963839771831197940539139676998105528669397559453804243259647548106808587809223224941750033084279197975953850237262733215559108774770589827922087287828605430121232324118882347139738103253982247802240804243155800495101346423005938486462203492635172617069295888536619725506261215121592406761316725425992587304339447108403653122793885778899333845035469458654124576055400363891745133802900742578630083875460027955801146188233061730203295772548086010035408811688720049008711037326347967013965587646314959105015233371078987896156603783545816509617017989259017332775222800743432798816078025235619578100196301671711943936879035642228663586286276692675279224280663662733746094810357691050230568737815518572661293355281136318807172077636257391540269761574354517938087282038568589927775101008894112883555376466761811667483603516881131402278705907951938228486082948871717550874416180250638067872221909170704925658071991220951823194083873416080032180648757699820964078437151074954085856918056099676499708051844746159851089624425397733847476812414049445949012287731418211110224059317462820643343782064747353774191589792994847920558172076646177777648080007300403797553636777627440284356363070950966436926422109078048364766466557778934729848827286457256343705330899004515423712561780428411611274080760435468660124328954030675239842842479068140126165407904353369905152643081999875799642689188865200726424496849712247669505274947178606023272729884930087387232544223349888068965484336751905897277220255731234793741836106072277317617784069682737088014466864273716537477459387194906182954754832975524815540926993500132692889134040543505053261447796098752003358272376074559211054431690669725220359193445745844381203076481195966162194366528938685747636601282704357031653084128985604536084203042078890950611610085981520942423796073281304355883513195921385605712403237857098829950750280225844503595139529014776279008251381168487458976545826679924315763517227924353258810257053864616467191672024907121250298770590166185529308896708692753847195493865529129010486992578596777035595734297951648846869150927882318114253230976641359367932594854427280831073261772821347423723165581395589833619442364739501524421410918860034348761529337798319837296543888829327118091179545684645620426917966870063321065325350445804252884699877024278995713342708296998346721518608688940097613144706920950317998905716540513949699760986211784697227056217411982193823607954301719577591581293001980193761217363705220988524885336828420552627048639941498874999607419217607620302553044670962293182328135191800671362450419892812021719348091960690307536342707475040975054577628403818940191567274547566529868183760616268374243681685356160930050592904865106582101195564094009795085567687747627882766622936040947717431982328833752370056387342027397937682190342465864303526708079690803867237927486551086853019870413422518956309807245209381937817290435083931094266439752968661672751880071369500846623556138532717361126117466005504812071547614479767106972485763332019154656411110443940457004992267034444663541315938556869040955354532227479294153860439652743826918763489318706357769649595959321365953145018787052690698440155218918379457108594681885694068586132010993123985870913576181625951727296658673757489278444209386332785061238604828215853290814254957125710967363818081500339148926438911662332160974216871779947853502590162901331154982324756931545663750654711328125449741204041405867113222485642150928837637909235356352838039914609863754106619020584762414815378493774812309897501844844877820631684151451593009359709683824013238646343432211302845974452241163797900950528129323684169314513406848239964006486779348193250140517163255591268448454973711084816962258255336479541223978887481403079892179308000425765351832173963027231938145559829400470901005483242607747643749407804023240951937357566380314019165271966058152848359059257528456052425552276540421607839158586180701614074624208651643970504457723426781902029424380223868981202826686448470011506488211002584728434162064355630112139786151405179269650784711107858523103566960206091088097213058630286203534751255042585773202552823873199059274569575296797834738194554487506861557664652008202195459138066579860291699857166086807245786496044810238662905188077514247782898702488122504869545262575188199857664323914040243135385569636677963698383088187535859587972254866362408872679007706449243298349972134651895639907575123829026423137546315169582622599310799851244658482962864124743400014598902730039160495491848045169375078117919318532858356281717034279932862768377948890483195821657034410620236085150113890970133401240244056072424349263314638686391542611430675756123375681668317253270141554894357298214714729758859579251256563934785892222290957725287494954321525518199104865931730493800172992884175340166591986460487993123490959340322700412186678229742407186656715702632463397867043678709803465982775899529743289035797471860557907841093432002771591258895511551096438016672576395953942084686779010912650078123407381222915652647928602754445097419180293974076183333090209818247480769786353787417186929735336692622268886576118624524235824036642001820499684394097469375163804076084519641699191785180372392019570866443199025881986979166935198977943457307828784946855301207083530625463218502767717562687564503012760178825864562787606213744373860070481965804035063292237973746800861243938694046367995921673740303132775900604426742058307593768317413179576780602750675455162458419186034099254602037879135794252170258421593509976428576260026549303682657825574635657537700430064117000009019849854861563958827692078051414615320109419762249124874677586343061889738825369370328263969069244331531673460237952997526770407030671727670591843453483609493729764373730516320345436046362260852750193357866360773024138558554378170759975326758769074066412914282221856085706597103305467477801584582092667478857943411804427369783906604313377646157703587897877646512231204799917912188495402210746775566437860373601682024868297547138363460906268069879294917808871047875679150634685982689428720716987832730348252773309828425696851050797637063490115772932466535084137217042540773002763481049037226698538464526146661709539964646291232853804489841448689073832723352422618074312032221461876616955266645427964725927300606454330351605611577793275959585148251354148626349601202006488432548218652761019004671270773236977132622484323616973443490333839388349731216253259024304538483088072265270667227498762846677487267274327373878243116487033027176806954748824189244556236848995803159958827709514543725466389922579958743893448906482980165348698057479881051510612766187399068848187870816602198862129532148029575612797004367697037536902156768849047176498936097068449529657814285545753939155110298229014833628874582753984206320851172073818522780230393066591878272215395994690236243643595932861347648655009788151959980477303261269174410947846430646538694100732376915416981890549787211792737388413932701281739680765263180213003444475811993042384153438160061271295106309216779988065907513800387273130706693498360542235676963198037332178063108610339135510282486211214338241814017235209653216045045610903204643115856193827001166405591431726589011476777323458393363792051228164783154493582728844590329882225639978497772104012036734612332777100027254863202340855542429529991918313432553762014515055507863561495841065111804813361721499958306967249311857627247689915630503176489780583007437395639864160333955146555372650345231726382227934935315913218648016580460957923087972936663173037685916428065692021710261232955165643657406052573503465409938822378850731882629880676044606904680740091288218594873630952237336598687684405709238091388967139695610299073520891143338104137386594676254316901142454593594897375106681507094040356269676189999549056388900368056950825074369970998480175443624421885318836752735083152259189759575189036101480861811307410907803223347071963532589908261745493878306432703833655492276700928996290186531059827888190809383084023998250861035566316442742026423824653173451602577586997501668910655224367210077226376157588271744459184985459344710288741244925986619804516952311220171407642501622348966320835918982898719509397757419062021498910330520027674660575969035238152763011313318655303129941591950124102992635339590061787390924477351206814766477648355131377462389023215427107562241595653928236224003226422248447912366341538418237982146431220980941237950237439980356654458262287758093315026545731855049091191410866005636845619283553616597014957477668794443720587103032659016359573480105099664696636117026018856316272803856087342403331951329575740788175040931958056058951026760672013638880670762024396304207653812896948790170693247060161022899484541212148271491150889669921040161983812745306449163894268129454351311351065043451385322775450356348921707195942194392293209539523738619755222485245788557592152457936004459405555881793404833192408146103361424282544283537079421062721355154696438820901697709756011531385621756095777064875681418480787286910818507955905158961178988347513754677447843409112836391806342676141675986312419827075074974105837390076119787642056934491868741638007628565054674883548690514908342457350767048926982669438052355789494171007163594911027891092180728199432691590758715793736482722485841946718046239628179625510588841777295691509495414170009206070699234945947243921116987475486016897364211582039558811147896397929194934137932646478211952777897112001908889747604786038567063197434710333398671612799677437243094118286367991369878405172585980528649022839269357241063584270971113677634416965737890845641296410973968040247666084501501678489999863778998975910415581319088696550995353052551681679579500449913699528834514105410758416636143459951136988525318600857761719974481011374125490668973852148520291911325738262943567500895435054993758159525532566897372789615936046019384899303375209038949120634583079959944691899755809465390349577322418962577661711430476427410333922565436321843180817164519989306989670813865576702106278519451611111641231870354853674217316807262883638391771113738566374063987617575420348313769994182083985753315525495741771066874835602403009165937906072918594022052466051401613357105353497380114304891577954691632712882944268312819217278474071982275703216622178024747572402979882149300465116638622144029267721920857261632461568641965650822852016548562310756741914234270745702354447351524207333410919291892612046054348221467032962581030470728486694637196137762909750546643584270130197586097813624720426363934854871104048438944414389394247287476370583301689765268436095357444749787763495775667634298256129597619624457754241423422126340212949584847484547291028467854671701401893630638640825832937366785040529586844694038919907752107821023567687982385184549767207905393012896315227326788981217814331036764308441344684840263293739577131948550919895383938644553696938325122751995966454539180505605628015718851878799625853505037965905237351229291553792577803480822888104551755024095979333738567023476913271760652072665424703974232905815632891819239491923541980669882236142314506397244570558463858305906984483817587458388705230693846468148494050307472704426352517338901133026631224762834121262766026686672712397628011905208385447275481671106285889493328671208020189178211225103470690105321304773682641457999995294556079874650102287937488445907758960691465330265666251779113072172820113970313514704315492990856962917187939961254384182394089108740635719089580225052796645304280081123865466652831533230997739715116610690888998048808153582788569899762947160750190302284924276604775388015130576967111362399952062658981500990956781095778383935259581554637995018823240054409569129452985289092243102551470930144554050176546211880403266042096990465054166917619816476956529729105143670404212755547473081032462863300356405805247751251894114244310792944458335086011854495699546378719611067279689958177949146275811457273785352240070397600040458713682868651837135591118248288831395617797218032324925733767298332611730405238511604633132424896634308586101029841788341075456386005753465984069666144264989299167414425400233051432078517551140099846025240477382655856510969499072380192509641963291805737206339047935262222765389326889133979975104719918787318666617995978600834018152242560551483785812881671162944406081415501989919967695973207315119702775264983569494951701086551516792818825772107721201236630720466855894961282406969794089667242383242088377434996186075062550712748276244577315008153593332695657528518503751806171834753521417189020851874606900568277995863097428728966242402329853575905434142829860734826835376786907809101341527926540853479241622197423705310782909695962860879549888587508318641463378761580083176201317128510259530695350026372005325067715327033939889820683258694868488402009595860432825337296570302514249268306819007007535343181950703878533837766240940045186517568476256794053714254093466917893582512579771417359257081870402900542939716066499041769349872729050084437579484055268277433446361756586235211044311578991289435068853607901392081477465647733356374272389718331970744326671755055547087872068705282940678807509918260799256535952986845802530557381486065418236308942494139918651468019377607364990185787672928303467337245868836521837160248764986204996786410903801596419832722928289147847649294492764771953334223827396677023020470202804301251447262134231255169929289423575367169891387827446144190975615266126496922457086060493933360623327995435035732680354053313945476598806901610436807649772170676704252775418793679968149650936283022145197950027630650816454011565519966033541170092496411563056361962972492038636706961845380182601938415702585269011518302021506536848504509631699545072952686486176432362963646779278533157483015611957426141349398414489939204348633411602138580485147535156154313521892432931889836325726253663871894913817310660513136367290193645452242188557838127701326703990516580374283301380909640521219878449341254544679211351737600754649869970649227376612492223086659399529767548282742444978482879991537902697098979570334737836256009578356962017562353434693388534975362842917479819382054060249758680992868767546684638500932390541038188541957283849411879215169007114163019979759759776116057616170547114826090294964393776909154915525306882218470329406079497196489341613674800911715850127681512288451913786077241627843458227191809062335449880569111833182476004148666480080533505250415706776510526238722456835703695780325120864357979283538759148695178504054203953530094681638043353437586621040401748268211935307075472323153280694441177237827570524905679627599091269380753769501841773382298103029909045189439936305679368223618763297426941364168369779328586011722469761637775445560535132062167892351846798247219849770440105845247129418790692056335389034973523637508160708644594694779088077626242388367204606598325459919810695967465598931551935534418009669405426160902478568432927078982978876406319382726854057210972032035203393903616841290361474947480334284599600606683314217185779624529957048293608557109249231253664623170013750891657978961039248926681919784822065964707450790523153919912616997023904087074475373979968827669837254820558751991022444737547043526778506175520720226989733734665134784900721988551306372990805069062936498731857377770542988267221787997284256798350953686597406022405954211439191657565759343711100941812514785346610991699330247846266430182259519736866906647769779209867988594768435523210005394035574955711145802411663298850272280053277268331232783674742446127080508019130417005269545426630026874924730343501536617692229040689098969234623733641387472701612789313802449977632289023780013280845249621376437412550719131726824586189665085080457079201682245964850354855894095051902659636849696063243476569483991392691176864366928625336379687942216475763633790273663037728869019788496380072114060617582354655689795939119973882605998996828898055968282708134228657951378576819815381691997816259746310413546276957825999906284076629512765569660641251383448347443939645925986361276793606860682905760347582197847650387907626634541894206573290749343041811525423846391594265081749060074831662494528811548656265482699159149612219594394397845081802040046546992205648731681858013620297804304473037964115495313787436268158002563053410778953315083425186711643962149914809584647313017350691408893815103003432501353862549305040053994324743394811161104463925155093895357258484879998415827359208956821570110567616455728873835833699564434222165431019526295192361257757564005774953169781417637030336693706137997883742757353605493720250475779626895842402552374161719309951190851729172114213189137626296739997063183680123760624289557007274048402682561325929255318066626143892578622234138435660149712807922855723877618925464476133720876439400090611465411422267221608208782689898400514740319112483877685420989073337369379232549938451898859744386835838582032870234963125061700104419226161917863505539480523413986054329752097584092404125139333371038881969491746980510603688769767749358420172680004134003640416520860451483727019395290870303319517201794521629817722470725298201446550319187111021358303243905374567336077555422023166473281848757458136458326256529839751573769455966115385462109024563159188249566042528905983543663050188181305008998139236136373293380331472483584961136115863699733635500961336924354415513268247128512657229691266026915814176525276675226071867161804619375382919663304965458036358068907487639212189768388234448450978111189872720064067215129174957480146156280057312628473127651304090062252427037728045544898203453658444218763044833083516198904360102657502832136240741344503165517470239049149240495057255203233816805388323846578841830125715696251166201771867183523922278414742746316810927367303126943270479598115122953011908183104244596036384261269394326502489117875390536062493718652124239012480784290474868295998848762686446559062046233578965944834957317757999896187237438220910691318806552876210646426361425620302486516055819795702593859839032842987354395912923253466417106176667516517858239435538541432448160453217010825732015324282138761757377180104000502442910259014217232929784232678164077517190089751049421308635206998542771768333228716424936774199358507142247395022263592216402783871613249542729725637435698620475978849489465248976486785392221422139852093300290521379272060817406524090923347580284348300183377377684704822376525081325635139800072972536622354145309360467816866406341984851043212921144459883540129421667846350912588382424443061015242306806297178299500660188219106619522663539731646424023333354152393519368760303699555329645784744660173409046634875553332793560455501727340923954606134999549839670783589038858222770809440532966482666799857381860029867761861123580389292018509839331262286958472504241416737099788802216938926191294219844113645244227667168248538768965266530702591870882916181644190061137420861682311104163537030406727509726809260767838868429712261227734934275595312785763232333912850912823941008680238119957517565527279458413755264676577559008137720786101257953573235596441451909524463523141012893110575786214608819901673765212635114343141714911236077089253718435986041694061462281286717236350653633087664019180214857004575532272241144653089482008712962583022292900782278016382875564238451251554734005813103419251808830738950666635077235943851011420512445016443477925859052449857123385450320929292151052982445116454035559949760270140412183282013840090980351453020055397131295146936750501076576502259107037419968996056232923928961845627207095644149984338460329595708403552101763409163012200598071350758305343121460587340175350579866261163844581030823518166776984792789114276292042457420630915966037450487598212775290483974693392811819643937872171275748946354505673278285679272731845486238863808978865270945203619722657310880935974095730426268875406362405994590373268592291494480412813250552175873234080405353467186294922725560755448896610150986176225326907145132609794701767051961883342571154135008857140616624042803682606100816749120688399344866694265224762534301189160907219660223123294482261217112197411456786316101536837213973142293413354767719661551773672499836428536344324256672812499960838844014764177445851700670298721706595663682382099932970850031772128382037080769491606132703163565696552107378430255378994285464261494842960055689091307194508495358997687928986500841637209455286614635568311873520778033139271285160408496894392521535491052026170661345998643661648526339370357958550337126827320658421609762856271546271409450501059483313576902540570757845711054571241397444087033851451720591118102255503058563633147713884360973259291673283249418197139950590758992505918246140484293916444250945283787070119062359465894007726316704179248464262958471432584273825680569245183464319035144513495864569726274421541470044606826617832054315478015712598872168408160135039838454013975688356697965589708770932792270167035867108750168107530241428749482423527984034252295452408368259518094568920537156600885180104283436467488158503164769975072946524565639392439617224918345880328607347110463276893021338581986687290224131407868644406530425944465483590304525294055297747581708729262439443806228720114833264780672865652303365468469565971990796740147479007825411929585144849679236848261829114966309641490550489360068864304967125872771390110367738623441426609660737162716888850663209039263305494173846932937610004899774818121192231405901333621501490654559165908499302369509974222400766386125971149967194020177661960797153417656194830865260750124911046021401209674292879044673005804208839682485131527087501104217255814256689409192376162955201943927313188062756889338023877174559298967087562926901448820415441567039763759024859371061246780734145517093414282259197668630581912635635071108165329573990744613647597886082801000752962159021788789608442852747102466237514403097886508252682047721172093662133665069669194226205724734919859784585681499344585672001454257103532605678945244234437004302827571317205313028318150773355816379753285895638871095873818360647210736712273198482832122947288433167571478946180278088257188775603274266323313488690334980699529574517170657290233121742060372728534583263977673487135462030817144654828413963202905665196127908976912566091361552849028172581106521027915009502887745685725194726591940489552371459067425498504315686871525013019953636054574483208147938930014654953616462750012900280293453919163713422822430139607453231725454557424294173056224150043892063438064988396209782968023228422566273296036586576819246417192058711573846929578079180809391920016222120137580799434582205051727336186416616453718549055176226605815862737826951883691887524203815671766548848970507298516646638980488984143576826197477674929919358286311414684546328609286323785478340558430209321537160296109068710317838834717745529809591283243788408592977850908359778271285040800337917562072968605380465082173404468453941415578879010076568709685850504858314008546906260619929928009439561531133711734362332883187787458030032152176019740434467413461960254153639178425857564840804636659900862274887999937562500154422002863253416517541908111616909889380100154736824064019443325958032305143601499503426995104650883315816631951079049585128564682838328692389813798327171742418945936622905145047900040632573209486993865600240242267173367337590691969541072244442634820629127132461693732064048352946130621428825476917323948177965644934405561866808366164143663341870245624247442533944150956075003861046526378889761615620264647850390709083497427133633255092509607548509890945591672485929931384377405553392536111995579130158954843964794639789054744863990366924854856116094407623140565105762027985116566195570048362995416267247771625621561991290099757777988551840672307014822908461068796278836522664270876913987386482401904541306424495368925855305144599159083089610751869926468526170933206828161868631625868798998884054179021954927527787506896163399690463618325115005350538606671727426287744890086007088447689513652639372914909733297569435183532193445467536434988307378225921728078513367503773670633780938564259056970711211926074626553585822143610077915740626564180824037522224105365405261079459845206437800891508205268005470126241376613567865751611547758773616498784585116152150843269556773317599080328964121223173001790541534644669379266789235577352590985626421679067469943998087482513908728899319006325910658041123515169859049265345317618941902219857972526617786246820124987980249600359010336477155807885952270193003559103972635287367948171790812180845418713642503494080705569773889415561113277556477722962691649114409391666010986967296776678855556657652901412635767871965035480196592443780040469275623541051858456466296160830802703058745502619150904467728253442806772148032119653011950213929475392668243753459659509286135511808807768926961673228399073493496101004009640528586525053096557762542409547388310348651869361921101675075570165309754737167970747321739053674292850153296114694544175083412202913207586462572988805629601143878854996435125852506331953108151241003627324251875244828749876658714012656930464680080610309529947389602281943562996640369528480516478968512823205887020935022254211639967403129544283281250226146005333109849700082202285163375120923191934600893760266818354908996101795398058130796500425265719387108587162176768042454155778894194040321906297661761921530397413378371310926555181312229476853748644842154698600269139213765537138898486710888380040034036144916818989493014189574537635350295747153785419258668846271974669024010041346472794694346579569657766505246614072080110140134103957780694033373696757473020512655460165839978182943809190896691942779837867384566511213780166530807287116891985125259173899729799797543705769977506301628339430829570859117276899766428290782944965219945976864321909131130512040214570675549233275211755756638950651507860204959573942436850331839689387935392046550421349311282790973406011435090107155599130241732121743114451288020216816671459851474671061882922462273454275428811870048607310750780550845946227965300474950937095393655489023705098136407402845685099349711630056061563277221200479470831630540067617894645146129393069041380605979592367757286148476840443017367172578763510875403948130808938076619500205655419839297226854825082862774898872919859273562424852070862367292973954981588296506689818782746908242635118451872405676263164543518085072100718460661298082532134031817865007394869753327201776933931472423377305369561845086885173251237749172990017514145973167044903467093634228892304735281671306335241198904931410165969996010178477545083431231473023967662134359312770471245351282119113960025759376933519809127922746372338690279158941263027172070146423885146471152142542176563441764070928164447416662778398878393566454203459020250271354484733624262574579382623330991924188385246701836891101500120078451917318866842490064278036757498242362763958322832888472740231712649861034621791362892163973558321781207780039005142561511067461315014888585975318624366662873190483900530864019263547329588451198311746150327957920383805113213837864904506362398666325710835581398960448204618077452839552057838780131580442091953759407676721561864188682615300081021557870701256982001477279993261538620969238022017755140736748558084340344024071826617246566315247793588531868455169900048610818571946787011181536999179822952763232687580158960600307729273242690561481580403257322608359144771380806299771213577187713055100393252464200065449018702713659677735337349218235365138647991471600828560049694955328227325852369915865089881525490835502814421151659090769722580229681865531892527776646211386274912650458463133388406681220278188042394454356157610167201474168211953820607392474784599947900234210549980944960169593970347976061788631596075614551175943282801979693326809167409377370717216613522441356064913528606412587192643314001449269581154703625530748520439610662779164374772295218426399795476388387284285907562830005287315546280454457794941136472016664634937860857985216909597417212845693047140231974926917121458713813500574740483904447027767880910991457513389582356599374020901676984564640002295874655620876682846884020141860662984489203507416817939828594487831444394722918815388933583377560872534038235199133872940340625036003948765490654970299245686971905171810985557120445203994053599295240141774255730032933918951170466864300532860213412006050607492126403728457109129619117202943466188240364239478402426942551807358024210966707581873355142866547289839419106329875853844157071793022543536113407025309031042073972852247278423385660672323015246478571123190569832941970636746749144070671573849503616213005206414433748455758250083686275331668345260813827797301778676317258095322596028445072941480605172728579515734463605721951625470653191915651986669960452046631706382920718469242643123316343461956239325721514082446535847093659225937708487650733114863574297940006992396101985409805605168706791622635806477648548648968681724364753996256450014531715442412272273349528739101276756448667483683212818898167354691777050717502947676339436609854321522046994568363982155966848948240064072857697800710152562006636687445587001038507475755305297942970386825174892315412897693518818058901170114758756206588701109423924613523103997666610369864535635247613864984731479685992621361927389372533952840164303127006607494536089272886598423093524758097664205620344261853649930973207290681867854618118570472938949094052906564556619442150381392242528606829018954482016948195265983269545776103916416376626572735606165717462356386049760218205913755556450428949755654595150744852051498410555437021419927374887461370314811191938452541099037321113749458117115045429188453654615521728866287693271119128889610941306811279700174364388085617341369986387735706083688095384944970668884627573544380731494713224753154439370855658133322778494522811103392788270608037664864785212123879997497261666106512845021050815364666911341643709544400058905148858214528109427811129306001364176216787461045384034127741618723822486757830259290093643318033782345554593181006790373540604744509129789371499236171627890094747104275675370462235074591364414392078640810907696543864259801005364535342391819238724151969529922326343753840348741380104578337951805736921730893096740524399740564692439585541948338191368876393562096500680194226032085998480404731012723075131609632063692052760588333944390398465203399732195587285891977043282155493601634328623903810645316601369033943686168168129254867144284783622641697480585306962366478720737445707664209832960895254886242020682412566050043200132126512134266771131473195217275195505535864532940156104174095877062658548147490986458425202285237637129608445558117439987999896685640059929588645472115600537667156825335297275041979249229971799303099685152246096330344821525540920550791583522484762102978134846296512735129576470983540766833877895636432085991315958963866661202569234694550974031396721821002031095271780646410331790039932843374546429330990949263773574799887027630784278758157473665342602800663477681182220194652949079760374262510399809596169232864244836025927738319122094411981915609431822083082390490265847008366265437902319678529952862672843827293697340836016037955571916689340059774892004258594579869400751746325271818289507637488447176159914741318405647753331244687013522672889163852156820046712400339740969851687869288463257576609758825662175824431263277855530916935003193331028818804624273849841398039162156408687446132418109822546784793656063706848575496402195094983466571318447041248488629939742019885836848181354110261815646255767717253830399620149533394492920894647290609313077803581523070535604086180603901776138204090885849455329525823440207025976447477809825648431942649741844055898544192779138542279166329976559794488324700925408973427448303500316978438133744514270949366047103741227436905589295088486368325149830943148560418945533023322192966422088899531079389563224392441889628103423279649458236993288635242106470977925153332366657834071023789728747945725915152691124610180081644595628826448740501040004612767349345141302872003910500849235755282517265282705983636530198033111359425875486254475265997476924184037801604860385691491278032876060265406115915626841404131927568715889435754587880995187264190073986000993267592335518549520157537990907341193127176939815281705731458294657463508196754054290488064512334867832128204633078277875879794558658905540833117997969266311278074736768724581070163377941247088329221048977293288872518778824131223742967649408161403054296254208361781039137810533398851998362504772949535671326908958669829568457111449166582871249019716032448552414706653564399544740078953793566134757587223553898516932980154709742802904016864072385804373298800463169856770888480863746836873221441171712019043851532004923548328338192960290506651711473316847593322896767425581890805100077050676657425208447266116307727464140342770458606930800388666872665235697412418839873467740396031729985696778885322966787783362115627720623782504894257311734484869536485809636480254875440142088381100496044743799996347819963617108213203685286244010183015864941626035248183651525552805163420391084099272897863493479497831642873026540713828301736643179867476199161361157286875587608450163643592637346068007171165327341314630937554789011578277479213347607522643816316411099632851709770044835038106070043890285846922300399637775218358833425729051990105359425672712582805192265424954025350820503090558608231617801114037013791751026409108396902284470451049868048867528521003888381769799953766510820870257592706585930500214609505369719062864976014326474646933284374895220677719720243727611233715989808353687417980062802351889401954857988573395779137364014928043019974223680838496178270211096940185538289610576668192487200489980370756547399945479262088401160631582436802644703705490386428415277848134591307468065948889786244366654720892408151364675748017950837213152771309583017230883867307283852390346026039927719377150379067144017084724065307950546407749278601886663267682873467186666434614572243949792198188980818511524789373467677543452048656803889101216921918133111987939233330067313604140041093791637659177706388159173861942470653058281966762210563318201163285118384596697163272403359947252163323429823030822116874154639874530797293264305542132026638336031106097555558676490435186741860405650343736411175037149826175146745833321926286265393823473599352385805294031577249313068360657587493899904593409006680669637793190433745079459289122751483929192457266289288527359901979416686287223810345233288556560366135080644857862294379841759727096167972636704019124863161393744345226528983665201473500528300446808957782396158608547909486512895556591818416285896527349899995839517813163572092231400470662814720187884643297676513875168259108881635294551462328213459262799189481848793770879110300532711808877409780275011789695477717081514286734270165256868744137422280171197840417142736286065073836195583020164121656914990276589642378191610471287359842203378546976004215865827600279210863980272647676122472276100976865510825159048978092790125234033861454548800606272193443206763845662355975968996057001806247533595533371090917862995427244843983809660690278406460946981052688412070024151659667704607925781123563939941107828967379301500707822954791820019778302335973395784047713617003512194053912689439203921080213700589346545839074882281739620698208261381183766738141344960487863970649244215419677293053668044963801896056290753487523832781560916712715211834393375264864616264130776254504895967761322595900592575122380407337868253720385333120065647981091208518330126417752043459355265379056862582378738778135468792138679295469886207127855801810298330216102871700457877578121072290527713452518886290277230827521141704508135165695889355221832719676002293412716083666082847303980567106411791001013216681188068413838011397616035329984490083774333794532223187634844636262410981916484289801618902972936233658987863341520574830971404926055792320495073890572978475798575269702180280407820700362298897698725941756427458740587070159635495555524773171099437665057865029920962354810836305375880726916742517169091884951332156810676276331204498620821355737810643700227634880077664191868677416343704616642701393490570583946843095688708745392148111366084793435195682367767128556096351991903815977209270283858933610726382331901284175717061364540140718427064783734671670406196487833185385151657952290970532855883820378075806223710411446885916019922253671198974344972854717438746601282628161406852410841925828249995203942403021345575077713713718615309980615762283277714768432801534962797258926156906571726860126452967366189580707045626852154066485526124454177842319112086630387626677983280697429721964808667353369060995950847688157529896541578863317798962217761489966227448931438317731613098221713848468639843846641080379155142082370859784610253603307419638952718151886980045652124502460877442284055086388301040146434998834192020738910242710714537368194349528891056857164121067762980465755063244137954424867800258396407166494237731538374828093921418757906449506298349673910458519289446931898576737364098342231570590305388110885068618660651592524671727065711879497252483248138082548705291237511418054554216682145499634986677072399379272420360671533974362254330177356309791667847941399812945094455894789645057769729876665504931639335081223237745775508989695897672241880712525353376395806015165705173733646047047109893967700477430016853179610467082769216019437761558485978299133912965149650554896152265814160422430917943439609633066989241962032839013961385113205730639166326970856358816211124194605406233287275762218805346384053447245639628686997818176864879559616941658452340969557081954853925988672424577595225205216639290262316664592363490997775104635957721505219306256280619933374334476091470627404733090332967425807259401525996974362589243710081111917858780365036868647980943492281369564479540328822791530646785472883013396195384044712816627205717940139141252582306037434844175988777457118368121718700985994956321514280039373400123341929095996123658616831703253309135487100540424714075770787171694496207120271942628984870437552009582271390989973583710174771475475641889420842840259192767964704748145192253196623418437225905810139936784023796368293270071377252309327819038573521499605137884186026096474986959476356193308804957264003421111430425539166329538494966409998236442958009205653048705268270106454025458357577678552903112435939647957306300320612482732003187027979517034401492507847496146166395691857898962494688224575267303883859229760763858335742799950111113896528112949522497524676100086992585527711848398956701591440822155043285029367757495875073573506009297687593742427522498389538620541369425669791838627019024140268077697143677825378727913569190272329017748078893225652877000406804401527953951661595841676716641691677141332389103476073057163548884455043894895466713986985466746777801090862978478850611931197204030575842377942665203694158488103529709231597410483767457138883909273931450686647756589821229910633934796480757301384475728549757834974251152464803215064024482512903142175234294573644090412443419425009883721863621246491543641501743450653491391863497745340978722505438735368439348744839591721384970737543684858033776397903783547446501762765286610434131394958730635315041386684013483018977678659905705337624458103831655785815312941905527124573220224645129857414324501299131477136739089878432150339663341865151003398016602434179026527841685007773133197589237315570382801431867979380416277445206068603303388333016475274675634408099699007410933443934560432937125751713945487480085754087809872794270555146941751999800471436713704488108900076838592951205563559600356804406818339579218950020170652190996522404029034722631988885867046386248317171853961828498512720065388404527705457650611533845026269934047226703949111266907335662851464116225816328095330159166709860782329008076969778610610909720596209185175751346149740395453100513850570230861100375076023550280017526497532014282223522355941597177729313332161174041105244525523423108193840230308796529780915640822339215536462154183627593156942155955038791064412137713724907145036971505227389409903774632743406671280146583788209366481550901250149827562082288322011158678221392462325739076955273763445991412086128100660823652509621836601402181042997363868030716355300867543987563360628738050756877401535920932930308706065011872179093687643632512970224938257466435996588799826767857294069036954877716432092350041362647494178599561640326195120806452025348205952758690888614944845331090416691461378784613136540984692924782676487808097860534039755738352089451263423010425928326347725377152045555683438370459418541411821866596941301644139113409382672798851222302507706013769355990303609275893690836350650818148674322329280321671907005534544710305080914834503654727774280333168856826155788294045869021031432864198326831007574628953448898789640132384866159877649908266121386346976237686724228731893906158430403570040319016836269840037857705549206604190910595344473511801316900707594863617765946739056193155456292721769575587825012490977181221837709190320923566831218984791221787205154516674022228593326456244161454159442364745697518971381896536552451633092789394583536111497180444642076886292541818399136387936799642414047769429082372006396870403185834487252023415362737860285530471216055247267016574190337859070234572013004404117971305368735781738994448042998370468788477949609716461348358924278474389686583364202595675410526312067511846114536049714384895359432978823266612898802891091758313076067559682349366177507554002714261914399673781041543353972603989688596959995715971698299959971999556378700331593824313456419161308377002947600610727729870582831094815592047980797647389633805982749282029310731357342780586219437194517581488144589327755850233656078085366517924905271635989544475281485386606393936576678674191575927998376324776340736250692975534104888189693462171787110387521797738398764953159790983044433582031703004901016541860730876947313562839227280659416755320267851863742196555408800145047382399242466571511279816675875997761236206663177983499504052603070819598005594331071901000778483857851352583610385808440822034991118206117619309776418050767737213978938362158287652234851511874425517962342207808590866636511031788544682135997627388299961162682523613326421027930540228053615113075404755795607513337940009140282058331793558319812459837968765492277010923820125116859377196203455697048198934224791885072594854164725917241006145042797253145210738868801554141678236803186882272854613734960726341430181533579412945637659471393153082992563682332442961823866578350538840715903403675000738516808086570206828548879754965020054798047684181035881543773815065260802420645758497031183403369151342630410230862958240446384926007049781162220263092775323390104406568691281768726155125085410617035701459985148356784018914109932294633790842992399949410989916235632636149929212842382646656808130417277674286220068115484075189504562190737338150217722421065143595784343869197026171402311427798306345982015214208645271797947424474016723104636832218649305798014700868891230995679409000551635235303027081740118248101000912745198329971497956090805941329562677846423808648311433113423420056224101436245781709902123230751546804634440724174807159991025157072655731912491523672079044008051851875355489784815429478105771457667067365132380992582936002134626497673731179568073135558355343576074065960651496344979055339849225969388941225955743979443020902713158428609854449323605854351141231891792305924714154447882374281355927138311549134166755404916426585308040654390946336092276906421308482598821333077916465652377768749848090159239957842700780271911246292156831563795807168863554788860119310898148100877929673427963539656169718122112814185175663395187610628079296628817677589405977636669190954589912742223547431431650930432918287687044311733756117889508898293686701606609974799484762885817593747383133716334277589370149561070596125920583754657909635137321604457231037711862150377956789583366618654092605626203179738467644087348870717194141685765100631362219976002183479709097198084473160894860012593215318362667188233732310728363315083769355628862249843652855297998048311943808896764330485072941806100700556628397769036396489172620523484087925199796851494449905313630172585985238772790481314870243567725001399294124856166444505379304408291433580468061883440931794164128912498056391163082730730566655793152226964547405699263773719708102454390056555397362178404043962065124363903830324350112323324991476872595155925710033308163258769997947301934015555839317302767329287867553339759263110448250577808021781360411504000767658438046151692721841044335046628949598093410550514002066078632388204476751881580785453122003066962593667905275979183563811106706240558426866570551863915734466221182573573519990182877806588576738800220275838819640117027879065764792138939216558827437822900984972954653702047129372284827320740939048062802460358734998845784892331515964835708349650449718661282312845575151047741484023205649562367464382132803752546959947846272866197583839923698737994706482700705064484011857694673382280773813885637624785910685207929343929223642500099764151215438070881004696788533443178439426680168678367667839937695888080422630998875028838043381201490076778479666604564739649911997226739135573879589119145042860551983323799169449851837940879260020276117827783229937286250650217779605770916019763889485183342597595653813231718040242346237554128991815217722455937515320806776176885265242215147607784580779418878691063071660621385149651271959344176795501629761417209956757750542051576341828559663096193141791677674207014043693872818293178783947314097404847856362944651426359522959115783895635363713085112989924316091708976013903765821651518021465871699129375415299449664719634806597990064467836947160494182178459913251197209531816157066376970021075753953942375429053581829304027819628431057326180220706276194006155768349483448516824648809737312382716737242350030766503874771650740342326559620887477514636958036330715869794561436664307643416522723221215844458545287196486217462018876709359467341546923281825003582107745213752340566321348908590125091541408726227369257204168776964275455850815493928428036723294741634061819082472761689348304163011562994932427566368415756470490725951497809427931325982890583188820300659354705802192333500568307200067364425986161942145088708644234340669432452868350002280190999714134432960498249401238108119439366228022711475843943708580873725891705285540550379450028856446921309043140570408260122259396010177908687929480327592897508205825026844160593363169330426890922679647696372309184817186451694870125811367401464118233682193028208721489885343073902790390438612509076602291407108160253696585241468580192013403177893048514546869138910756885913214155253042957541874975415998669160188026706474120983631084944279883164027985178694034038207002237347981428648640616400143412075002331692173421613027659230374906267314564607281980053503088927557388861656370754779298576533294367048775197187779082792394089122794062486625002537198883347346481623368179760011866363711260101620189336870624786425501639527557046494941440602064814656695474129624091487381309138800438588429452409611053439570618915923628072810886674502990465757977962360562824119708341536170885688597303000574703943318987995985442174965232921988248617056112488794214061982697160989909426253263422173897345928472172831648843184031103715558843365869273044203958896932615236126842583776261915774013676844078895529014648203399450629964255570618580496211998765957254005733835685149163390269256331170255865367916936076552189603607118920271410956506277473668538327340989913946589550832882553354285732141850005203769549326949827899393986089783060008618342611134896430865270281746187787239625456488974199694065665632868067820031823418759658865114155815118551070649260020007196521660179766007078516124803974530662821407855943838219334747844297943353698076250363949308713855254295236638647894400672812376518856464433618855402932678408115306447383740789133856148327596883137478202507894032410148797845199300511386191711440675708762570100873459387774924441666411734622239637024840430673430663398291622264848659369883010158456087382995671922181707468340053532849177325475332691196940402724230671496917794198856474966151644516463209154188550281207115517267013855573000728681886319329653721282178187932417948421372075253766525079229236117656245833196763915474863799034903486884679557294393387971302094025774146843977088977275540493767491026268144421881511416309403752619919501025691578166151941466235888849322187222758310175815070527098047782985876158004415038197809033453360057294917271203593325952132935106518281835536210012308907596281880171502088982691543977863697089699975443573181187645355731481772899441318863025728368756354706378728516346164607331215182547455304630297488418343547518146920099431129597251235360954215897409080705135982278391388194992794047483416353432385966848522383780944333777305216732620024160705212990619490756394386486057017300795552551105335718224088058612903640263155227233274155295400410130155794621156844248608141459338005224823816320032554274846284058788410454796656031372791413874601367059072863050537889019985805678078733093496713796913265734432410680772986950338514272979004582883635337677509503845154255574268698361005572002402846796701805684259554697268122056648988462032443356819979969860558512532745441648119900286616589481589453036557725287288070907319619730377723365484190810468418725422375889577802509499068219374926752594224130155297666290034326674620176613745395803230868701369896510468812952784940811161323800573468436951513713798825292165875190864633867347175650080907488621577124384106533802470693843781607566449727746182516660202339998584082687238340308601499779265164920413772710316051476045092206307065546308217235279071069511508576407232735854397301838242681272599220843028942523724728779146629063057724628491372360613832762564468357743167575183010526245922454216411468952917377743504292401369490141633150356706061964221705034053139091650770124822063176415152671467274360520105746965071519541003642565511003044000424951875780658989918163790342003002838510063861131108056928769242821243092547465262320343250362626512703165002775122144356904808286365276521477087714079972940232199325004804746248170994069911617845863062277829155457535275739207408455141213761396444295077192028949335621686272689975669718015047753232074156075490731755784837327909715429906971396209907008974873926599269652585643621378227872487191145032460394199975999121200494760586521250090122685447761816344647126535017028412457399969272965449079476460005280562078943454014674925117211172952884324119342814137707430614432521886115811621639128549254020524985212022695779275198148173788209729345915328637212186709141855126897325597223803870235946549473583478283817928194791286477820764328017698427825216453240957912769607009087958573431808475206074834734007660315893929238630050838397813880924694922690685674264386841885937661617631077082743866185768268984276685596729766376582292798902689865424725489761592445218332885923917670989908694992356341934630563113439597011306789586799396097787199205686109384847960223004004517680935080325546708798993805347778000366960502725636306722354984040288002041750438783345376367154419109656881345518535058025929828438161691388697058788530195693593416036055678047463974099376422821327113918494637245584083875246590416272267068592942095952467473055271838420172299910843078030440637495687656686926955998338780484277343813723870341400594679411634582999566627233227216745637142463649013575977630965843757018064701651068571314865848695628849464924708119636487388279143137440880955260309831253361547252892606758638023912368123961110464132737893810419275820107797655085681529647630515587334428076588817572069109036595115824551362705931953307326498792474128998290636146527247129939028409470419044180994187255500489549896605170701772149493512396180284327189229585604351690271669844569770464312172071106356049282555402397749927649803426485170997041351785418865832905924262620988573050094443640180646286286125723693566362349392091997137532626944393725728799507940966070447297460248324976098959790558624475565285962276592361146254861125370974027484314827023987099484546358730421682263063910189500793121207182404719656888484429280838497018028089448056914532045833334183012061614723348334956296903145569054748258449140389843977133311690340131105264018883166637909735143538971652227771190098326093413762931237892773552088852415785752011086483450531686811228533087668568244915508397202658661611343919224618789675058406177693415226321789498522745576394055955710704970138817065068434093351101536576544236747383572338746341753918511982890411107663200208060588379292686846898900084814223316400780315928524036092086567941847125194187120002239600180678833736544802445505260172680457104793747263540057630071134797834499728905612973428085214000034841711843884282855033375262985304137591577368319522740635730666532423162298682576495859428987608576581158309818039930293515778559483303508786732281512765997663434446790856416495472376732122688868415953934281980044047327472430477042468585705162486149988469889782689389242538962006392715718945030805358037302186761526886313964345864749313561722738888862722181438753333669077136144261766963586768570900815042878437087812870687456077457977710981742350701748020223707041514333408428452213802362229424051119900787056375199167309498817847194500586858464606494031574584366762476049215827570446464560758481605109513869457948028887622591576250942519740921565161063482158091330376597278745415781997631706927145013198489820955079639477595047879340008020400058373583419934760850447891564003719796150778236166039090046748464167626179123769033517407607930765076242647601833134163643433614183362032693789983065413940360970722518179834250069222360429356128407874790268463694244906646146017395959909066557009200587861314886611515270326483120196681321185227566348699447112249551492762875041253256697768814785824097421088103137341748452959329786305414654656008137691518103635969006064555584396653605805795092070510227468228945644504480251485125458750904649656313490134360012194724622137791281459040415306874302469150367543465420677095192067338720644438350694033528519993887547550771408640436309740517868545945871377096441534183861414140111639140232412933803084743945725671594639843697998746219843556223895119357368510370795006249194804595822918003350641636792752689324726700069885070209940155768613171722431348125577160992414932560426864981089304661477632646898052049793475903611289702823605433616694108137747145079015113671956890880176848252671684874051044997730752301204091475321930288086058793678164005914857201471952709803016460403198395017680305568447479368011596644369903566892730551172596349884433941473915138196720375302837114169520580337873262035547585358467102838136823537158806010040277125718797876515022280685076893396976649908944691279465645756010737459624793802967364285543949689432696603668205492810453343480408879167471320599926046403082350438365853921739954933549272417651947030561860600087793215688497278705393624061230444186997426781713509609877021004787706657072875874534110847520728956409362990998038951451985218697359739619661963629258889315993712503263161926960694597008467393028624837526881063423848202305661660514575657479875035421739470072820766376739838338689605066793201275241172265406846468912870203754256300450797285689633138533724322914731392211722348588332543150611594131970941012775874779337467382079241345290914028458221164836937040403392110850559156597756464606390377773187387611763500793996971389355286738090779865172925082087750165593734223960588887186010501418626865337273608033717050955600402516815060409823167023123765139855246208652567403089371637238995198940503799387136859815612139122472185343659341441082484739024903348370886938052760766039510396905711944898721253770394301671887252083136393444846475120829598736613263838506444498981368176154369481353683752782765613520183661482674657358855662320467521517783641537377882731704137359540102664848882789900270840026035727738989201111609927957956779754092893387180766723269392611485020669498840992041852406119364272372698404935110305632504277410037760995810084848594553231130908938173232991083174637654776871334283057829862818914171245430213618017995519808940761650323151478090963027063196987071466717912155915870331198437480981117788118479146218101606745800020842201507247125394563355738471187402515934504214386990761936349550523106674674808160031903302538125611975708068131110980769830784871432789572049137830841517359432088570377728507624184435978129604635441223278329239980352210589178426473407485494623613440891057166823664902700149958160420006634447316582635336656159794040785208454056505640845586603653758205262674763316854766543423145858647381242950901342963714671065390359885182815378934454782033969818404174913293789334242540639808032866309048657343648200330924175426221748538785630715172839556494664192655243101910870652757335238064017877913758978082349337227530160961558287954386982705312102380599877328091030105765835431104690349688990702919130884931264420157766841121405107629368887330538004350106296697953108281096508538560401097304772083709238824128005015513371965649654510601649317532514614260003707963233727567703843794169448982324819410176808529532147966780544804464074452396543468603522143683514565829310480570097595216643437312683338250724706331462734675746330488711375868038872726576098012799133848732009748407354874908547087735594549577701553569525589945645986008778296075586222691552866559316753285321828740934198915880891943535778563791359052724248783012155612728527920065592159750096205691593179628023701674854311400559027842745800861270490208152438940943915614379617681198484657731766224956036081862555771956881764313449407093602442591162524979604428271968042469084921330099133969716201563156512737043718131265329177818856024965888220343226313016119880916435604864500257364054004434941615444296429219382390301723062680217917048220078556168066214213813176860887133462483221156225462205167077559674731202540542449703668885308444122041294052075388720780861149581733116512307860423898262330696286433931287031052060285945523707864724415505404326124676253367370565068952988224257318812815106001349940290785903115863729989379229168772933948183986309265008406374698902349666333565017067968902782683052784620993860092459662402407477346746956979034061399619962228703119414958873268393911029994322400873620284530642510307963300282938504201397552597811262591493853576488965385433681853976945434430966407107457818208113713330471814182320197352734143631341644925802754951298822442377088495209852544764315232577285752171081362234585206060288432287998714430925502376702479649666295132810342163611719023267517420607856734510863520984051858038580453583626573180916686459641373871981868059034590931927637662337426336380686548129026239258896842763606393648700480085923653959110854124964283499491312468594913230940557670674064946696101451146451289405248851218632260992849488747254645379473518051927088714377492235649957052253544431606091415490633758846051946632838516974489820502681524551349234133102397527356329457544734529553536567825504203285215856074530935948109622258527275878310700622035364276836940614915540271174076210343155368254909113400088577729206654226688724504500350200279726384184272104619671978732328012638601975316484713458284315469127009835683657097022709408850215971304807616699609800505902371691094970055122183870109174199453310418265803108151886163472019113508334638052899156281609759962346858409951149437563273385492515280037197484978467022275241838473100864953665853797699045134431467944323663494650681470693976791721945032992678669215329910945408779138135117346247051680986658488497906043035497306909755015414287539522889263568787206273916935635623168650386605978212993637961723382978138719676715038619869546303665475318216885072514707029368970639332316032092266112909485116475911641530033147112042922095772492801024968661279702127079511613329023926602314194366699208604352648411887153908497141542417112409344357527329060224802706755712352975385895826834402640655571364548152661311622705782160813169094524108123661804935207973276894204347379801909610637588418238763426132304232861685807459522344416440539658651162610755482843779678458380946210743451368567468163362133522011867929602221349188209840430582637164919271989311264361824733972479209617224627164518255231388817036677701155454976567254211523368964738371352020622480522973002528171191875109564830825392751372267338848736786827727414048250758483824697095595870376601274726263225000583994767989062208533877747368406968120620489920645735469631529699704267446974111844263448223374393871636856538867075605619638796899641737109467938934697370422041876080299172868089139545659227565179860370060554359077314400244530601792871585290214801530973051669663926282712025845090196138695716423638076436202207816222619179840705295448911370743445237862061635337976919609095472025243639511489951978049039137776547698160078157885784004247044525035875790993507567648325283802492076115992596592530348566601097877655031659117526236364588408432370387370636339797280578980453683469565677472500813749948496106708556314962824543854327191701581624951539343601905204323048142079353553836104397267604549970936635699223785826884553831393719855955883661349460322461092070274357591207348416497908839063981485155590659097220909848099366902348397161775917584226425369056805147389161283848249427805003743077407880340246304448896092740140239890806209316221723176365704234305974027239400784885129253989988478389767628723613250702222701779939831639833364509226306718095197368276276220067898915491863823701357700691380305882887476722132236378879400634057676971321013950373812637580955990341305707655148238260390532518444639341386173537732191167906637951351688985615878748175805654415784751700061387058382893134886677606813219464698040350872646452691552566958753662149702660388791212382128470265233880316817006051089240116441894012308361752300001437123315548857409102181464482659570696975530338177648029532166049348434916516638170644077324370043408564526013454018785602833587081366465360811537454695932221357672334455590243316150134797892154282341401865187294594591606217920377566015788039471187694701132774881654042323557900033629063207839531934686965826046365184110907581211478712423384990151798355296788752361398740117536541332133097093292399849652851475588685817490166954454823254224289481146082259396500891645209871190472083719444857386815335023272126639954628863688799389474894052813862657497822985798935954541954917858886886049560881042169007982847781849140284760606655579463413125093785402547314413313005764792617422561143402268054726700422001180045904943242655676462749325151447882075263644904481556602966038560814063434427842402859127376034659179808692595299151141808782681454655760311351671951659362602054038896298472294897918009260113551792946762739968006210069338276076038003546329959745225461041466259534847197891837838998048240097644298052482510117265367243035152665041328016503050358802132985434928402225348449240287391044073233112591587674536768903168661017022179742851071867241857017788658117116391426067181328643398337072591681279576344718466894912264877769098502537963743811071581413451295171800866654981060352149562339323067707227586252133730462197620849129314742105532998989292817080560746450276749470851350367457714704466894808615774427075890513925925673072792979324468092004549526865188232258956729591405227474345391894863637313632473971512994515220425486937752086332907475755805217152361720487720084908672847476130155251719827157741369115363686206505060278514588845160167454660286181758474355233253688424607191978108308171853101655089304974861657485457992488366738979288145618249071034217566905829428551025819830041036790386226978268996838851879011379079593753526618367553071777958657856758687823362180903926788691060847845627638176285330639400928545148604211219484948907102606549166994029756170898464039968934262818593463037516732838749914021877184021040129370063667724830854727523481504314219065113059077433358924488648200987610075226410511269713821251110919950643478454176891730585173012566622338330667199503586383379987449087714304772187023109719715064578987781104245286964478768670396333590877469354028544196211803570156933711703469587625679594443070998000537473938063146783918198263576801134175647319666624350770408768409962045680353138060959104934928561895101898193911084974650196079855488823564231827474484614975886510171737159062411898635811520818154591217770706794658536815058545029268389415329383958386701436960086302899041642565747997478995852219542372558018714628115303384949079182613409066136390313543542141870215261062139545394502739552317896941086031988158378352719176224781702648669777964625180602191865315437903583069697837034106982683092088944627775253385702360156156414229138681473710452585229042249712551471417528541017473363019051560855669740572416320115584342008735580818808197775543051831466524243707883091618366073381091025178668647442362624134636962631399645048111373072770638612477290028755366575299215820560495673447977090449111599101101875759485795507069915582568257659115169574696392410568958762900573754917850781410873855521053495359206643997234748080410593120758325409199271988929203735291581658526568307388896714944388026117890897560327193337145928034417496178203968472341056731766676928911718518005657580972709085820212083499357675882416252999902268705889647590843400067406019530018851316001326673508202990805334596808716685179105867614287016644478762427984357790665985638441308680061722711326317728902334882517558887903751018147779390552449175488943980832978835683400832844486596303746889835683364050873133539743014486584142108775302875738290300863646955859640180685846838197578534957608488838147748139537429303472273531708433676430137957174631430177491628210459769110374025744775652659750533585227436967402224769329366408290681776849436189455548657090242321821784781148269566750478575408684018063524394031760735635531264788813689686216553524492389695044226528313628697758266417803406157386453484032155286687683153186986465327804497729497868487366262762718460269019178264424840889900252298502086981814130235551311467174580781035281818105632258045332226055329485217154019788754613635229083494866289317417190681574752481300026464295635747435835494781749846945686952669947815404506488051260315291281048104904926962443011789270997131838273517190926152048212369542516351548201543219931128990633301988841396328984879163211960317714927974046183075269977022217318302282302003025198823023957282441098618986472138581977834273981463017200662111300100346086012328523881105702959220542769427497709107906380733013792034141019849848533903160439973868977965081893121195125249417185989604310136109545212714700916595698164665878097779899401502933970754366668522700744759514125480734724377853711409194996164162906636419070092051053243299716881847383044615033583087617862673511799638800848542927966091211367604045476882009723136929254085847559078401815627530093481560787332616010859642228499795373117431339251629573235396169554236655598425200129975276307959954042966429354735416768669445002997602766800037546486713817274479205484830675322439147941298518922070150620627785943509560085709326255381055502146930166784685699086313601908447461295384657538141210881776238882637819454275230913141793352819421334246338667128159643003286741545533645191130842702942999751279020527972774336047877032895196216694184041377268552576662941381925079021470400270615398506531772559928030245780084336947344973659047796518786904125894196593572217500706884673645692590982493265159863474370043447295576172421720729877617212429258211370167922095203166787844644753715416064825873040136744642173972771381763457265069069737141117014054862808458126509642587684108595775818120170563054479267807751919332729202644372848177778028455879470061319327915207220245430741607069511676250315273232056464925353394891167796411343241629532494932094625935524930847872743442668069858857367466015643548808457936265744054984503313387310429420242802851059368113069957415326655464247911027615453083241319834028539001126498160982200236440861908889506210263556757758599079042009681646345520320023105165325986930620172010073817518355343507479025330333829849533951195176308600424624331542412241182548618220631155969195293634941671447993459005071984620709524672603480695020903781218072000342731711835716606965647826552789293599759513714308997219826321825002284042127270733149716094185159193984244601957089931254767683555502550376332335446742334151110393470002757669456455203473784170225197222581895554472465595311873675760199019797250177791181724238361610442947554769069724350853400185060458224058183280081548883960418142242641019210281189749216954101085504913524104564620523282581972835781380387158429874247275622993692131693502832044132965719943643724242747138447954321862217594053172235090536276568136679399230974034507004413870862247440442424787776242763936748320579653284370925300840004026428301014347385076487504486956989728158195090810654434557224214595966862393026747319482875098680329032235947497174971024112841009188363925312462128792305214076972727197141746045690570244132152421600978661242035897494295435679116859947688655297287834263875011614817640655416108201648078555987308076229852664575327384831084471915603505921728652109059079804690854287472257735563518174103202349688247531511188715400720649687508203779905660789891599104136922408553617841840249736519516912805515080478157066047639080359129939432855178418778497905204386818866358073703317365255699935216712479364820595962584638772070795275963338167820277187577188988524133282693369047294164778045667221284386202063286891723109389048420522195496031275149599158294751127989058038758962757658620025182709458011870595759807574033947597932444738559190326630229845814981464819816810866471027036529942864478492934661623017049886723642661556855210564779827785812450233717168127512128779308020026493695317445445802468168106628179891748837400749953293672524805335350697300731756262851921688294588468449009734584586932440282780139435960287532757636009916555891605397316150242583951648338877148035950085343755865995207241478755672339036271394849090597306802019618648818307980799030941701012168059815373663887779987608941059394637986445335215940950672865398099320107580488305664566444412430457595226231523741655441887789560609188053344769698547957174175105415590755664801165928552636322610704216217745242082747765529986704195277095580785589140823768842400615497310582697029543806530895687904213891296641642012175972839711345446953740720690970110043489970402234819797439305124602389343718807133848400278056078411918706542325779769641755110676894723613061909288555197977971300913934241593219002035698605854716943822376426261207190039741704824869241487742126381185615628637763110467699386158757829580363515557717367522224882789649051861179332695921444182559893826788295665628146694793882384651654122929618885978275274977716440855963519266693300875300735803348117870418402912527303097620646340100845939357641898107571236727705311467779274305779005537106143637145242448205507838383491008916061171433618132092563101989673960786622707635629791997199695918747992874201404173428313247074379953543675529766816358426640550755280845366334061906485714732974420393572784492504135652957216431001470258967203495065703774274991572839936058512630184835642829256651239953754748222881205661172775904170693642931430736621941462634484342696445640501437108781795834561981368912626223479594312797186496074969750128848019887023755157812314285146887098084364625569128048164181440964180892516655569639566148470465090136187365829182954969256854122881043087174715501286024080850464767401854966624041429438521049926523007448166000396018486130746806413365940604420528050326831866680420516104846987812278764251738077843196864735706249432938602573656954624442265916760878212327411817933505552172131238355063755660916669837249197678905244609604678499269665463807472608911904794003594038881252494592436045667331226513243752798041232877076823895115328007949169254344956002070687718982222218056604656625861921557082324240139928796484216336869858187746937292391022330041948894176510753356186374254884589192571710392132561090291309269688970649644940514441899439044718261426913168755272237634604326931793255279177804196835192311912574626887723607312017461838882127461814451276493873308764983818014264537216304678552362526671596003760591468974817638067231229333980996574765817814982628709342136094167022823458798736485702903463590901033540591657132505563420544736875416139813697873134299945290248820548395393755241524952333454081707955933644877221113242784605695174598069449578074932568475245078074940450037085349600350267764531429230834041599800505729806415775284207420844364814671855593342698772186184351364766938117504375382236193204356808837804136152651661277822833484252800317314888066381756690521310509986680678042081046276823731876188083490180331913974121900587059858950526494076198759445196713643374331851184869707089012968355502824437149263568466359522384035550225610968966146503054554977918648624616629434357794482852637320007110389043635520372931260316725129464436315863482474516800894648753548437774506562786164280587463107029105940753619083840748955491803543371252989465209815662785541314266468035495199631070460909752520707314979294246614412196394243772613653792435760529612159558772512923510853583449853392685566709872567975716286274378961676368714265864755360410713185912038130769639887418638690985327264349143682620881616079281901239571124243121556300486750540208550129019630049438105853990412398690940893620510331517531662144551849550094927981411660522212114391515164735324707056964176972223400127021390830294952550384201966645712263822339474544036881552138507282138516807093604729749437693873473800150262521404031955574755554355845474331380824255011644280157527655358524464239926746113647858390347635556252435031524429580566311517075631678675147336631121267734830759895526499373993454585225852044284653212516929950173084419823642730645598400991929714571269311297583422620153829023663986696120881791526787283010914989355412290361333538807217232341730321211796159374315255946235001257489396433743500294536176192471661518303987379207539701200691739257920357467988628634472396396044211551093195667297796978029409755034336861780323849403524365769631188165065167322017657463421522764477725243763289066934459676065547657824095386149113122534944969968217611996446374016401490683401009886067167391384391661401182553580361340774075350871930469054665785040076828807972395091019757064374424228878275875618862874002266908757164397547573608118150993365803296601106843875542989980972344470309966403341979506829567060117428937328459350679777320517957858102481074827844064839896158115655937158432511595743196240134579033829128503773572978802134036772707469888200399969613510794945131372830952159151462965849585636847557319980828823444498386335280198751814764784686903529189556201537591656993918372551125447097768618630858920123827596689915119081378811205488057999720382934395044054386373554813171255116353524247461520904133704846645047360033555462348794526720165165846569242143090177976355682000650987467013744214938206732937745816353817486622117949557649938548845833523925062613064903715408045429804236603695280702040097139094942778873512896254876624285282003892426154230921059912756852424243692384485655860180831662374484718779737424091055057089470158512974281978510242514002741098206216736798829278612359585176156457914825336160446896103271308258247505933047640339224732333565015266964962163334163429481759688732783401546054297452860359057305218999263804934364223762563170548017620606804024544516544777142888093725820714776173551343738228070525777830703908126747722921832024492949409498623497722914584778223432232305327557471938035430990665244016440833604719446917589611593564557745584694417798142938731163005281802941171127190343670496189100303395537118804089502201731831236694053087143613950393312055642078394161224418303267970948721855759615490800509027655771304075231827043090394620582577243397981686069586218287108844629011890718365228490191495686897575549227537908801840732237337793186234034388450121836905172755243787683017015979366524892275493928609823213366070902341214795991052898947360059574845875300035216006045955280881434672879572077650992341105247918338366551023740690950753282824040133013781150768433986774212320884473580937585453795649383184033865912364252790608367488404591884266993879995888030346681007277221465584822167086956381413284414707480973843692595342420814942718396724852602954072952270288002277900319591513351170427926597834927746103271898237692159785065448291436803275907679279654711399673432147551357927585834533924898583328375804046408874790451848614593039453246450442651451710675368399207645470316617149307209110652825186390850064416830907413967507076678500790757444521645588429590303039768768227506418025005423708831135578216306650082590946100684950772812108649765655328447009695416558870512379930760989200247162312111736800069419439399997668400372172006936467894837737613044514799324461972983819656740320297578996060829604199960260845134053863322292820936335934215745572707057916225463718765319360794924055815091261088563403686681922157921342264030259266560770381949707495222858091624113799723702752728691043906410899885871744516716571496935631074811108512655285575080889372447548610857997233815267507157534749262628355254463040099091614041725832453761821629345514188524125688295746494064507057473470821341646743144617479652332053168761256581356664879632062395775139242212075890352045475703810504657798767663420983335288414620359897794313767987641509632468869690956739339482474644458886411385876426482284042106697510747369537283105729676655167133442836710593676087346934390444918710187102156110074728433172258905713975240746678415562112647364015463240816473387670997285726053776217536584418396261198241736622554034201391279748694329686674082691750973015508257094183807108500443683676940193861873064049210419485696964757156014499362254267269128587935681726805589276684980190784889851560262755182431658084131323357095862889878141298039416184107667098107166330369166709661774982640317717875340462095953944761240192311473381755489575986935943042307088454311422114224978733977749401050486795051953212042003682442667362945263799392247464972534945424971039587582757684725837600116199877031828613394419536463237764211586378650561896146064194302099039095089156547626910524312359300708563598718377198666506303383604470267976700889528661481073254479354221510556356107487652856478612095208296260044635882416628137219257851023669045034997481701681977100391334943977340482669397916881142745364625406480291309618757156351037125931044751170938340264615947633398809997378364902033518934019367001323221780773148755300513786682806151961433226221355720005469472330262179793560957230924028444461469359922899072411096122235829002591805716261969125939384609916559228903195301503055216130532411197315190200467228544161980306643024855975137693341443662399123392055625280332095678079941658471931061649340339217935639150053833036363613008876664741311943373518595685929588056943960980681736801161861752056754190512265439315441509293531222017651795794143292177069977433581766993341507931807139258292888007904257910146845634865445109825059853100247521198175486771592131921224843931414901616830534578018218236523013334051322075766583714551180062731925088783441532187842209073814608210925422980503072599095297155945651734748118098861667095407841498169440642566976133073091267843312705619762838588597014066239053139672562918889967629987416187348012085003317895870589406495133149800057397445944112717056602647204547604797431616500746774637211314547379525026388369162015253655324397961876837293070820180936913170631175580966945499002070236573592503599759914518243564508491076698057633659927641510051256742774300287115475425281501760729445885111860462291097673988112855572005202073504250012521573748179014015986853853845362648121439301740775122808322547143749504325306796022973089352329490919598198452551689924629860047243840752273639828935330519544133859158891081405825328199209956657548721918099088374541377967334725939816328721563035125073577121574177078444740262428660309219877730116001806305239225608540580513441754443272022088396297678244713314808015329453023811920781702066733157754665394634747071226810610480841518949755606147912271991854226437822068806523453066838037528886973718748538200284551648181416607665931907204299383293663661541810889413420627997534831469549060835774360455068416167104330897204477434170929252312986792570803446451557860720521769434234784028918045762892891586858914897248183056317974235256590418493430664065087502364236653308717219879402907010084746860935688187775412408301876012515863415741586012557518789751515552556182565821027876743524380316336401542197337491217541989454904169723624459797343442802874737816438281347129892500535065729605810590776183841144827540746580883058320026425314657578710906081563519031195240170893631469372116517946324650626284516074806528390319296956200746973263093547739746942608160685333941972229101581005661270639837034191929489597726948885626992568796589796287146692684803323340541096466197559372933151381217597893010626742105408367283486563267942269710556259174016961847195425155758062413500026641485222747500427055065824429475797090247052441823708185222178293738459836329907615693900538030171992534480887009523042690923436700632907306203902624438854635396564181963156726795342314903869922256878519406447354833251684531878977273135262281228195933657340453054516052346358116179085979699050329469612730029112990353990820850454103353408775398876869882630545490752729129381602401632695130805691726507841969715944770216275181808253947681030644760099434824048258798970084270454140232620133607151504433058576342801020566738722906167068081425130250787186399059636448303676305994469771500589874888121088892794740399697443618094398334287761810694892693161337437694148771913370112062510860971061355403610314386555369349534549302062691279496403909532163037310405615466885093020184061028143912304074131262856298502425479678808601476586120897535138427374933100483911698052588227638335430702183769393821703109923630405279389133077290917728705985572359193708030098532568246612401230849897102459580321495430808247583531674583282488654427761810342930535333959484708262354773624055082886308723582298891123602338897414122857601683283745545223005797845871851795317043610534845742453111021177496090708365679135878988976634476516506000060309697462205399448005138753344357103690219608760613007923836404546898255257582626883037724520548704974090834017549715047424041818194981357809774827127087270506155956837164627359713398404126340175967809171075700065097253003662073692214607614869398347128157025400606565522425601229035163394900447928749848805414118443452114300561596305089948639005582974654782680560808898915301468468009980568459875708151896882564987766618644587347227845967006416789199450645309320073829828027406134212026912521322844859703067048374133512662522553167608520359032578810467694943894237422193143123161006304412273101083544018002842791683976019693438201477635046914313002003958126555104835525381650584871035491068228123201634313868011552501347710730596084513209549784963810475195111833460103118821236024967007275228052486213419512686493378123082294936797475333356515106362561395152685021141719212144661698372546366773235742461633358860985573800871586883523562927388927244334694653312583343083946045997468420741408945098242213098948149070455181782869521267913478540068312594428435100672947386861533072343636346248171665435267188783925235694218737949172344026574588941621568496604079238587952014110742909561833399966879226763321319883338002499511416285523076291829961954042157710304215326026290402657058051273146586484167783064774943063064530676475609389348584592791439430062335330830007794075891864373736086380125780775526005592512534256568181201237039983372380047697273972991491715687632413412296245268437672887649779019410993285049499066274008729569608424581858117293163567761969330634980352490670948916521294997332115712841147110731365492707478596237191198851173587672633719213115084892374243160534859135429918610549510495055328439125341443421831515197219797417075196079900447092801872146159075785349993011127168674835674900209966786187975533818343688902309968580609112780601714186361265556419760496685106354898309700017955189022008460850263669959512138998321933516039273282052113010574755318755808973145868722013263255735067642177561501934690042636911574339845775579354184370722804186304407063130584755924207193741290622012952135814622018971880043046328326192826693988815973481424895528277297561163296423001124912579741182203327810633346833936627581083701021219605968592083184905448432141456726738367388237066038456358959108519420820929510087212595512221164701384570266927747575100254890020709414999353871867467642100756227129133256741235721400671220461490703330444336429871928123899541044625393334456733588141582448927388605308684708317771617139480713342939074925913043075931893270383675142671940729493281354540665809813010379365832598297203482760010151815245114703833397724151947373162951695828313806846898879900803600968541553458594208331554895480905156970268881727147780927692974484168354093204396595431699119324056966549370408335997970795912274537597012195175908535423594388514571701449671884400603213317839595721262695061105372463307530625939430838613922789791175018796851223563459416368621955133152378499278264160145104121740722832397426116999595581477362619335324662427220930770401246250228886426918185770993837383914264704431244833400068622559647437813891622570407055055097321523656280952751151679565194742954320999093346477459939134589126302449047951723769603598754952626588548399979853774820633793007295711275331865560423514803094050565935042881919571687279372474330358925094354904313400447270677242908830851195722245088713194305775061313932384184689088370220478097498783230638400839795769423612013197022864614970466957410844216785108221609797569629113320024257484413294696985918622675497312381847348969706745784617649125574258795773437345379264930020755374952377994368858478524033975217466986448252689904009115524300875993077142814739813866770088163827598418364922704059659892830004800096383374930522887896587910366203362258842579308640396374908259173430490353030826533971147495932956260849841794136846112576078494527958527278293973550151122998423431178645931455588481304312403470459153131855371080082665194860822159442952777365678274976246909852172546995244031217560126572726946880876086453365496898128467314610426899224707672362645338241878568263144561234786430842181194071063379147354406321433314460880146098628072176906228553853619848487381004269368788479783748777413580973630326783407493400810363291419805161398688406148015608363379711505877515004043511297170567501619902177115373975457086794042117374029574944437943052100850138229418360890427021229173539900594757767872044818159468466215918160009761812603740045715710071367825837988532347024929235986513464400011651479544271455306211487566385440656534706772938436386802165917915258276669842592844676353946883678512553218136737634153345564148562395072336585838645579886175952418451921036169109322785594885578425905919773685313196146447605208265018401503349836867504202279191632781181661203228391761769533718526991510076834425303390823230816403051104397004885063526211159884730017907289995475187228390135267583078508047290149354507548177887891721046490215890668870033653660432567545919207714705794418468682708011669557749048220480665279212421205974583948269883991569965206068961911957518099566549459703460538094895202320079788306741807935915887440919064422236713933293776068079122403471905202603207571392582693526975456260212570253759750934935612399747353959968899489954566768668378601862732421637201534666239085545490817318892019764510494254127418838761663296045347192695399392610875571307230119558277161321272137867530364967274922763570817264193982512260625960514751600018114833009672880315560313771883703133764142385680138681127607029477006733048305085469756637480362937398409337614254249133227373951825033673155596502996940851472672767994615963178033350031493806016251643116774237752458331112601324375135818739270847745381815360178243819107463979315951303772375828298358626335934118469278658688600630954777223507243537279501786176056739873976659692314657106010213555266025953312838240015281129532092623847247175229040188334898189086545876505862042157476862075425763540936630391576424001373884102566858401326210025164823046026512025398363460789637696851352458502862134733631503961086060896054074547554234843489676175209628212109073796533893449446179240478108595733654843179364985417991952567680923904042196104319559987738223774544651327030194334018446039763177213157182226333258141870967001123897118688947541502802859686119011954607689553677259328352859175773656320400162185081304261844468932961711605131868645270698104654124758004478025445022007500049427170137033869165767499819761391903624218555029343593326147813310866550360784209554463233135732137071879385607114953206071820841207121768420193414012706276895110947392050509808838774538229511197641280412289000921461583037978990524441439101721017617221583936481307457430840791606249744303040333613565420799439043115406955941194159740883356721767903033887392555898143527524097539525739842582942615747230729306609158422532566884504384290101330999837338104672722751139785784301737219762195642118489826731509284752851721818131888045030903249675791145659759442502490967115427368934135725035262886997846019950912061449701428637176640679037258786242556233569787931582923055110255729941072412080064546194852197923517907610820629715530208266075163568685339458799003873607882811036884279730423130205744844099708320828135849867535981655724840158338370999775081689479604906902549837129862682253802742076723537017897279133108848241062286533948549982920528537307200900382935934174518583688900544402628079086451080854605903823528049750544783762819000695388199324575750124262732819214775901208872882732980377056056026350286998520453930481192638677902061754064579189256977137175817594999691265928636712440016544467264693042465164166601380826927375770979368405073712994708183036484852212217273352334159813555380188515034709567988627641401837012602523763783386238721310701636641425462061075628125509995213806579185403882580855349943671757203234425126908652546812378110388072208554139371983585603413114014459386254234491663625899318266809925920363648794789288291100660304904479470679153534849018057332956233910309200051665157236100229487297273145448148654156617057069025878846586609992034973086742385462183949322585069056916171444164783831628144396149326684225531255602969202696488145790439952635109329633882572218825733090021160945737804087622696049840622271756718479231904163374847632450115075317211084759760026143985727190967760901254767508462111948817029311172779179645630007922813237700991279908582295662929098251185046190369931678782460713938227030634501928170892708233832587946564983017880297646545291069571357633218981983024113875022626076808661195080366682184497261882991642987961170255484342998322341586529375150177692116198392960069126756895129239909460275520472203146599208835137635265093341138917295352787604700559391641087417032341139170776509599666694780730668074067986195670375945557637037444487193485804588956514172856149463242534115964145644157684113155742977038315860206145838798133343083660226316990314811058347961886166269632101918259150709134979565616579276049555355683889144162864753596399806217411177595618118289946582535068949704128002992033665746906433418813220908350554661381043014382926626859516189829032621437134508067895540358867006272224199760377228904197362458884853138152568814840958617760191470830263599174045137461241452710557148093266145239122909178929860666677515114719190277562578807439693340166714485591408012674821503372115907507546475858809084334953647639532198016962643329262120651375899962001733961897360565577844688631821146669696089081147263397293683504885288178630402245359144459194552931692924607848354841704797496423786938553468013319868734546116893636525671794031339445438920778293758354626849586430595107264699797512279430969535849536734294122851113947093656341227788527426552056129033226104163120615245144547963201872604383341613776116266461033611760329029772182024193034846148409048817436396231084154650797451800073860978702884120099346097175957561297893045577591023503501393533197710873084901479177019604894084275797735474016459987019569698721523440759236704372498764418066808022368514090966346972069860571352744808404927763901506687417942424793879148382961297854063328032652239494042389137453907547072571686703692628957960473869215441122195687114073218471857948644623435717307562080843212496296234399298919819895836679326148728576421506763759802530829025901767498789564099764708540539092976753981722041912108013073567665754866854325925474424871408929162668884529121167325970404684244544817637051053990508477076933882847584258305210254947154503687126157760509788933606138028005554217308068558548133161105034316003984839596026248199095372733987230754437863162554683103013936411468480389387512773587235401151155783351125443505060939723042048226879741080189993668834838723893176162712179919614398298198204051400190628493717140734827808467120892528309297410252062280491970565751177720717379611647231424068236786823757021278014828645580004050897980612352759253723700270842201965559302252447438406701730018140635121607052077150445483583157506376879689891525404751679248489400476780219763868149929459792108657381716061927040336171415179610984695953921894762321173033615670689111224159218840296643458279196772164539968113049490304551542090611432014250814362728578345515310098728936968325305528727940285615360225421051324260652144376307752665514608351438518247521590855318735621665475010536232364631827606040605299387122358399879358009631034079917322340604983938051335816767163418132116951422489781221720199275376176208175358494621289655218392676916391565124183911469357203051857622074496960279434809815924389428348726429362523347019617945276449444284745086915849025159361620579322775043316572454286021624694030143715621342723370871242473846263878217055653671952655415024647632841370976595895776556158615976331544206356947586720117279944085850152055351433550361215461040127656425262448880880314461888777745204091756757065290949352094335322606431623403338249993726301691746070140749485975796006950596873460182283184525702535956675060450989823598436172332264019599997376403978054987373546106363806044756241892506010086438165008351589917565555116336968732851937587530577109628766283880466270904197755424775974174364840268787950152362109117789415989374172936222571146664146523651652063929824449990732350014797339828810499037200528959930115848583839172090878041415194454009964622111128584726310406635028158110247755050726697659482315103326777778114027239906385058003125546113415266173443529891388358919352769522768904100551783055253747352194408395768350978741042192853494611940312229612702058223107039575037154969549238248544187356906693519216980918713322130734090273716471777084758453616718625437046621892872295040758599147690475246238629552309926267390603246592462620744965422121679888690103366360522795931296494026351477552481260746422796656289187497058142421283625356305762530180208769706067827525157181855295803182364978552035830087186241093356699368881150364706650969209799475042524669896057623897524450576382272621332764211302042962571081167139000526626486072400435752392424090718728474236444988333848724324922321968989091921271243967743579932373002448620713834802817322455602820437526558571372643037116565428081051469250835169613176063149395376956438624833350014683492917196060108167253257997990728321848743054262288970751383050348280717777573887261191268931133172405254294229575250364029854922725623202387298282313736115249496820476857384406646430541154185903400499637121981354447507623647243222465484732061768605050839138281726892441387253934897125314434598022899480724173485980130024796275395356534936274528646755115411210132281418872093536100493399575132857624238041234220623143978506134581202818791593608504807291267544976516355012095522952218758553854287774052933468060356537735967746846390163255633021846612355969476806117137756009948161927060841190474841469776280614674223045943753222302525641039785575656938285873550369337894466819896856045536724368280600390849057337123093649569106853220273533785580458397484923326538367431072890050626344305546490520614575546815482107226355273086613494909810374335388015970891170506390403385382748523360976268725865233238137626578691088538269567084846096174315689513189650225694274837916612785368305311746483336849798681864959960920145444745331003911672564495431803382621074928936234679798161315414700959557414428642927426814655423701650330887602004598098948357152625917901858019706835870681890973040418328971374559352642342553530967406068999487390448043380265289904411813291499315061716001288020841994116685705073560496407863060299911579969687105072535885540356172171318903082841168880825023329226125542029997678719101644348087785110188013363669162268923593323951505567034541088224002555474716174852670522723207185836345237518881527942912042473678004828928191744112268000333625117633531855395601470567774197585964086392588259611557592193505818107940479793746457466906433703445284304323791452733660885269477469445638882813577273464557778877104042900305062504754774508065814529186087266727451218134388326039470319236815321868730590771483165655082689069022105581289930218769974393473879524595461508158500240163623531531671869981443223394653194378904885541407276832980711648694367548028530319725894851450086359796398812254301250540414422888437036662662119839775723979619144331732225186982051009894647677433985244489356837777571966385395738009612739691100665125676752797021970435915835444543936383854111510529550196998147495843736328409702658813593259829624429536712625895411267542863847689142711227339456473591270513694441195820742051433951780937554138625940671072425301587746907715635592504835877788527428835691140010801610978522331393724008389063630768559352677101918088998706685652521370136996064178526797852047201064189507910817319460079739098062925875931609706676168800085478092038360030847204966814640718145617085497345529086620893355994450503445149689599038393322371691477831937721988928590923431523191393156095676377217731559749976500048257404798440371664272386255812896954146882361507704110840822254434040112430259872831169217352687295614780502516873733997437322322592140561092572367023015041659641895884935639699984219306567394445213466934078407855555504090607500678508630840368391078574265444995209646242786567790147015943594764084408975355491882540485499411328936713634869221794134670149153350205694972798973678647823325865741421959345448201080256735528714126300534258314497160904118025132933756690936620823450744108007348101486266639786671466291813499138222818107674139171274961416192035490031535853904763853499463376799645535925024701047394599676617256243489189843561671267807690259348496956283923233841720293292213460434660401836798635855843903506083066510458712947938498192385420165584124464601257739843404395713832184912435271764308204473322945528047380259692164001148027403487411545082607327244710421641594096340245029421692039545829430519759578198539754236146897644486456223359466877645174793192247434854433057095233340372617383404601587698868856555751774390669513797114990566843976800068124339879592240287821322321464135719915992210382716360063173778799745839949968850517854060662591335676675286628203279068311896603204082681476847514425188961173624577956647313674047539535663786280759980135581973901685178559747518799864537458685006337096377335265779034993842319010942553128890347949448536445201737889020746062268885786486498529165752715501289862541318535655523886202435883247567467979157264142569398164270135151678191216932119395314871524301374644206293728262863788371610030789960496223703859347571711238765447293865450444559899119426409483022120313571438407245598969492630978096825797902476522584400898044831640899687460772243197723927418536827497429255346265060650482890082173979039660169458594245706466396815652391377455712668440556037486695474155231496404555089949834475514775201247252270609195457733300349712930810993613117292853790091808091533974497734706998284412637992939084281965648037016608858798929651091025869955049007308975604596550120329461503476759637156276023919415069239735024393151877878297786002075356217536434483407367217270410221745615447922296694273953611018393830057750730126678899624926392904189838181376982976272556483024259209469147866029533314214420690362432970404863865710225831469772606713039351300672525066727740066966950866727487517916672739255966448648772950810471175674678418305967447487461310613170720567279708787620513420347707584602100860458644840652942171256212111570426018887901554311042445788453424266888374023079772275346246449874883904825261937304366123675476025985259392607666067237280554287570216611747644265127761844975446242241026011456976116015824009513528706666519046093439489392893406466614901470761593863545332873077190282771204052248055874654522284910476141195899622562107788166305317977918596386458776737954186649107333536561805735496734535089042655200896288693797384157232467751566043150732050294883287127870860749016484466528241907732016398018478276756306615491110752259661942970025909512323085636120451189226515088059874545980066024103552580639633203429190325018695963684492435086610009151912991176389125467854732578923583028457753244889483938961821701946606551630297848308347371578485839837615380329797820835012902282417257119211075093420281373269248207955058053942797306917972046116893561951040359318167081907475900521028302518580015430431629813851815107896043020356534712484882021275293092696331191565889591314501858165017794692659673188564754823012427683709525938303314146227794436839462110891190679100767190682941238708513739121999004633355799116814422225793251593551924202648510783886658280376907482687923039267828066048531394684714434692775241421248525433554696689617257305457138306159354541607235626687832436556732976147820792156550828586071450134894961415969014129311932258213506319378011348881888798059345545449951651907778546246708203123825151318642997144647200017564515262199335527770107383580586496822873556405357887621751300437836269405423850027048804194367734517401142887094152616215736490290888899189683506952969328516817823072871239597798604767182964958410634278520929162259576156542586768011530333078036922173637551721405290730492506071625217656686790140497372120001676734270504470820799289859182209056974804532882397934181211529413517348893435660132223365461456439830160492092847642029770734832515487498937920555084464478999133963197278776447716010371049557992480197350098612751063112924115762258022835971274191570682658447584208854960539666808021265165142336164626346337675606387844908126427194084607663423998503534446615470963389068871033129592824934518248740579692026569399577396148968549883188320601622126303866788015029656048287023946578286828907448474401675498408583395497201983332344959785803243182693113439956714620758380944883298610850114039659637224421623782114153423335376861643891933781356651375032844034425711231838250579165179754244007325692719289244599146650196367273522137571308467135885892311510899508701824067077092717596015968094789860907716848997996642645441266242027588129902272779437154999026905749653938530204522613346592174634076582938581459251600174383886192653907674401905331599768360659092676089668193578114301518115143754475909308998400097347127102505641410927177787177939324308828083165042474479160034340134352295286541877863430735292873632787786622382471953820664273383117513961423701694721818943095208389207763627267251847050191665917610211971318006615607643317276697080010164096388217380354278890059527025697443207628475104799386019905492735879731150550998220123366439797204757972815848493910668121835183895149063738505181435694304152406438040861627376556882861068613870228561283208863428797236941766978111172892031474667753868426702715923920550776355004499647247958592832256573590609292505771341052848623351241821048925008617447324702023323379106719582302049627844299559950864739537891493109666714413193544532472285562314389972449429884934971237885029433380860538640872021414505792355954987086782189731683125400646302284691444051084691271637234400152571469492905324343592168921508703423836656486072051391908488944412441288502227737648064189815683746190457410621928919076665071048473592496524799565293657278797529551016587571638294499755831986376013408587092067288910219438489709092471411873230874125276001815088381932862141573247606979714499344446472755545538283969566971352865385665069638835349832475420611339431469609119342404127027780451266369088158044069528450838225966350399298554863358314238736660856870819888910441176648126763737753665242045404297400178773614458086206930201507600968379100698764477240344347321317836430907997252101015697407268620200200175118919821470814869877053544276863893361938508485013036246643096871302453005243158523772620552364400140517733895601132989304809581641878542618197085765118108431140820492808336141971330472425226579027023147029562980205116996002870586825296509232868005918745793157648330749567608141298358331083433266576721025548036875036137150825198536320806164872968508363534841253746547238468190292147329722056240136807199899081943687288455414128501064530779189906166842284053457661110752600814510648279453424029217454998682405486685225537467557970095568923111959122480629018159203654054165763316276195405038038156302715676562878577775376662306998265099458541059403627219317569835677647814718477742051650491658613062540058450549656508429624762648802168527591825927828192573231439950234172406545740194161185344408328367842746787571324683807901338139833017735586774072081932737728819606094096607921758189035664504237244879751230987299280153159181769297348189118088680275280183955979767578784785433626460996446210437109996030140676340362079009487558074262599872906024542023774397005087219233206680983533114651776276386730115869959273530111718045178379194297492323701223285316442978479851303278960056520802513549797443477711854249915448836941375016634684605355461809123314656809417465335158642294055425278008420050638066007979582493208537928687435676210118991917733104852683493822532894206589949120533046904605752605790858930949599186077838192789686452267337645317375971962582048519268751320953215915690045198394056406370355259929486910624873604767037040483772177513376280254133205678660908525470534836469411927162191380035971284624502525917286410416855761720833515433266972201477095641569386500073232498985465704466403923377788978643684291965491640275032747866386679930483079346211722251595890565211081482134535319093610741580403365390533422106446355340666379665693571351593668129094714003022312861100548241034476729732699555177193022473720706991244263881445586708808114360654169215875990703973262614133978770843095795155261783760506301116658206739231210732227943717277657827419950836782924383069555871516613460614141087696358783411503934194094794997142866454337800900576055729069104481013653684599464110654775352479639992457413151292569538465591128088274406539349785738735716057553157046189652599249943578627203212073162454627799289223837999366365410682351825002157910512370899831010432699807007256091180010673661213572781974787756510955584337593991011531725469709551828170336544969610447299816243491538110918178297117998803055374638360918683743333040657359586794786123973512161073922802497044773747485771336464695801694958445502026385606674649158442908536276628755441596183341279303452042834240544849461510997315330512131814993393209153254359784835375815607234461526922065656996601914660269251018721468988858667069252848133374647787178496474575031551493902714356446032759137929697944626748958882560282672424513361004932840457922873445766780151138369374374123893267037361120268058392930708662411138803384555981784700384298751411321425291092782509822681502342276815309270009007301159371448046336343055964622676816591155268055622674864788991998006044279605795744023993675844232261359118289860455907905508299111228938100657507702937463903646032648526528352805383919827614542848790550564075616033167104572996827960739333248648922748295543665257073366249547589591020656606040824090052332223922144928126942663553772903335774634920695762781368229621720482301004414342311572536725972499185906944716112611743214188247218207340510943134353750884756088410573575375645234922413771841265221017738961300570927670927974030297558545053345177754790708525828796901145066453119869092611216531671483691132776206567729040149864667473845045460715468214137191209124599343561892264863671210690391264474017558272800181983393906350335323025635383489535766649505487531494072287224350301951728805184065857726739930071320761584569329917431723818058837688978879462027993477964549225324157349509861579793500739438753816320858127714707492224338495758230393559550850171824540458004059705094372969687290349953570229144067429582411143170137777088754596412349762636024374534469938669549218540348030736091931276521424611649652450359468692914983029787028307939642570294382481536818004855089262482362774409934599095841027236149670652377900220048107383174328267011411259204574578117825512099101314648682675379213442581687468527741817145769493732450001644670867708484683554557388170128718366828647639673691345049693402953818311118498523162342186443240748332860606664274274188555890485169645558264658969138298346447356435540416521164470756029601819833708153958894017958855763708510368308581517314648712370086940273834843883881599435682123339410981563782751386842856325374478340676037255272376822105898810794222947434113788686031901114650120806141385169808358266673483068579803238754491718330381131350757258234623497122330287248311683932859108703620148883660447377939116397059265923997782936773040303220601354045563996580373086532599583187776466498158755028976884084493816683257120784176692890699312034851571562467864024056225416661583506208644130677927675232821773553127734203750447527141133876221463568338139992164776280181128806784401312958726580281827717333665063195260092993112935138247498558037267800011065602816205469111427701301473409106412212352004523043200444142941629414269950736999758745959063674135782770277350984135272732560074913329194945973726337938322574861810786734480414176938933919817504971833473246077889267512019485547582712717323731833432870512602540824919793072108847055385364874048006019404580324258669384817802996796901089690278330712338460052605284638660959052301046331023433794490894133804036458822088211147727637282132365460899738589430944886509304104613245593813047071633662374362315261523163833965697683063561985565539033970835495194673899903524310254934590283565333537844838531003319360878812695870894816211138263335776794773682835011661892622013253682926481872285662078905649701118008968363958572503386832909830734978132398626668830106897907701186279340038763595387869016766180717150083857634591272865625235280728406332209123095312992561766670631122005927318915392455453887463604489370033057363587189176632723518053978090614798678252753195909634120188028293865151453949181812852245132619249256928059453760947615324470849975734628017635328075751551923874643294759981003983605194002714853259211123694583245161414167269362585890680991320298758675035879960846079700926666176775911250988796162731487982573689900271138036164436011425173930672056864050397036201915272732774203085563699705282086724990336992258009151649246180915952506491063907618824410030821079658988798349944392537552566732562529876457267218339078333309162345061578384845580650570284384657734456680760196275964371191643697752697135728248203789073266078649638363083730246566065153923013801677218402219918897586619555276819860608687241422671869952096572806639571941026304103720587487081464537429826551015658959225381754676403128770026766712109672364708026978739033846152823007561937567137385201395281320811619055728735391124998521065692690441186014824715575390112315143546600691430708491879244128466625784391970338364739092595795808565561758278474381976900705935471747895776903278807512213365614040329403940150986448681142969255770368849484985785375289340473134654476473568373647541653881535149940464172838157726906507550709968173746731736159771562713773754977374046838437792748095083743221127128202213759403148709412215291874644724184454681307039863979567765479840186112042456255136554689461650679625697519388797507116941193630588088975454510286175013945094923871226094523096726411569942662071962348260725997255848373336103344063851108443244674549993290135323402081150038913805326036023377855937802739302378921774995163296840754513330897852792536399149179427391584518531006224305693622402955620905279677343016515273156119532249352578204673434032480594152182012701913957504988506445248250355570807423857065074194367391909353387180564153078720585750314492931408315060555221396570900271599206746257277970773230505573913324217348603805188604463873290604278647423084558179264389733522656800420464983698013196584567679095032118023491976063944169341845317923303506744882752591895716482022084084183545892759018032718317114902118469726354155926489903758434806709801104900068747083584878506035023617947148715288746264154551368365656357004135041284675893003340676230907197055908149434229869815813267524252643701653569162174099849184716600883726374912113899031256356180456682534939493519928060786626091395657872618841624097075303086769711348647179678118071590721416256512893293451732426713459886114454739678894841482899646928403366651206569816765661172771064389397412581870047704856708559726370954781656607243368985552352399235077834504746301307082999172978411373302500055690757841923663513370505880449137644427392495410262655338434746270983978541146131930263979342198248772233253662400607758651861664659749043795864618988791756630898695263366734809960735997734482872973072192994309028434070375254966265742450948232007322600431704330011546104671247923253112464220945451844229687117487953459858744569698026904136030508650573120025874577161254921169575911802548713841943763333645859358341847532021288200417081237396314592015729245572773119628325263880258216997343620389354609347941539375397969741918405202841915946910527900663183740475437938742264044154304338570096698377289314222678873023981432586508907763835651743598021931535706137715435543955997828836087305491054074149391877432895284431645909540830542643462687723951846899919970980821926858130544625107772943502724197150069087807357034532718503027198957705059397202742152205181596401143219974948853968868405737110993753026322223651404235176195039507926761397284746467875596888705413938593707618065907669407044128636356834694385292665823187614632084839921600406391543994150232876421959873510595072771588337313208250463990842057827378768866645489596077263118131314992718055021628048105324497139449281395133578810751174716483451885006133816390324531764479458897906858164623079423175292450900973969852504436734317257904393474157336503174747111306402225851571949392464824959979841794895086815715550676713473533138031726534954845737207148134693051826869666077641280780935274594302994834116851616441024873025942152380131919537970158375075564859775731332243537220462993775031040353178992324650157459481182847925040853780276671189309789508249656394677247537551361256099472696344138465201365945293691116762974888922728634812966848052733877496849019806689757232059633000908374028375537417035102273521084961993143523301494916834163701938322020146390460643832375990946699844779244898491711225800807926528488304683690431155232733689722883697145138711032483977623553714509628409994426408157844861891854630805466430395507130267872268215746040512495656235331697667036152128969330200539997623841357749872935418453140170474187990903715269774850234223485120066836645810337539485835425135950676536266628103178612645644104230154993606065677156528349863357057497200928384979128286641598468775733203225209240793447531451339499159012255323662298960878845954573688861145867800855911673540404109242340599045760675854325071247862531187498265186323145206435917966574404782419028560251379631693158841630374969141486283923164253919635587073444240288302357950010841351333952136448031184677973125930580694947634215623603298953807011745874612611745655637966327219580430800940897119710539845404730746146776340207739726822925891518492333387342365237031867083155377615989029511794475673700658521863603744251860322528578938410495914516956888306838511426743436412523460718282985547882934863438242589742649939235141278719688058991010797757488875941238650419381953608472955035079871741988816998334674778276693218696272834632284050942702398225892869993385881779845368522937501281788958730514940274895555763968169350370171187619240577038707005163258293448537361185243144955187088235667274132748750866438827360247459996208769404604057566008459159452618167959032081503724633630798363920751278563799782974244705673912045543100711177249490248630824528985799784668827542268197016072650570900579719966181567561759692762451612729112760379325616955261430311580163168867549438695195089540169151116291081410254235617043526857256269147452681527154596338319451821762384389206559663604456530578555631432430679381610599221003839805937905596825979540927603127579115651553207625061872027744597351855877712342020062154401400718265216512407346587739902064842813081403942976282660039807533632931033202321657605459094071314677592389295183342036239311638502513509866134980546602514451761360990574672822450578492077004921298711936084381216822984304595785209996437723446889406327767839417611276677254315229451806482586400267631415606634170978029850021672207025883362177275490314321955302951949049321856150782674152650850227548822762910232648724203826499296047732925144668918311354226928260177655606546568535548807602702580933037516706132088201651318173334515249930859973374338329265272202332882921633984609504175849210621078211128466462008045781670084335052041822120331019234372472919673565733120371722922652829883342490901805516790575060416661966946551088808227398178105584059756738516988503683634467150521591360308764039534365884688706758618142694457107904339460695362954986712970576150181492588505391697580327057866782767530598413211489677976004561634612163145657527026495208418596789041861318670249326411443000110604857942445847622828107932611683167482509358536354282693184549585719489778195321248094497063021966277716245874109977128797988444035759991988474479232525888896886001050346731901258150151551577034324963715855735523035588404754883020815142478958862335279592910281961768608203214645089153139635339938564816922039052674858636228415133959478612903979541097892830623859278076348647775119499104271025358106353488964383006610556870998660301649450718489403681771468592313664515245616625995387176159969821453967046298173479841106081084376633650475661728193297130425411768117078210191495225307442524899637488373395135912543558338199411881016294728521410594858642007711995852499034129598365786815580744723290278460151522110358232196716487014040139853161736854248745728261583004384019036673407329998391287045385881813846665766242225386600536312750088561256483362880164284529828767299341025302157064526410785525702045873480644402750767563244705860283536227126500737772804859315313610153536437766722320768411351426708489472326782030054494764545681856709910338836913804275200152296728669145615249500582900412402614188227631497240638735777240723639183862534666203216326474779877992606524310021639449268898457108702100544869217326879292878494460958246331508443487286644212841626124853203583695291002816990675013363050807058386807515349140972533360331586353009351324576901732910613415654220253576385237900297866657924027643324290328411004670077275427088493529605986991408710876483647821296899429876171666400121546637342714227019660160307330499910965515781947759618814780215345542485928310356314771785410398223388887348561605923842527896272331395460456071458586623391835812446677179346534017137330457197642970575529606644476018795310477303651201024725619758287113213519056446329563500632146581721121111072638312026364348315458960087705867355420059988231721061015822001609049464565437416249119529715866883163372750914570236142054255078805224863019254795840124112204939904137827834377057743682442314857537926636687611914989404784110189869447958697277871016142272042500540234148773434300033829671873518190149080996741118072459857820093550509097396639359783614108473848055149518414096835700670461725689009334741219613178279262260199808355062800678191961216802075777152336344686880446465046488773141754604624119352506536952330662670371504057135307883263904621374897684061594816012209111833082269345154391721155848434308372703359941270837428604795412476344594455479870404624826388781747080440893843719610775094216817686401562511330040543214702774180184717575247953739019114270226875973562585378870138523379817303851769893952856736186604552335149576650076048542458621165713040833682641091767135551529710329441549543639706595333032472420428758729277037341492639955217505478623292233699075952033887744528662936276939843487029998443217628415620053782852869787838113155137198251627064838721489373139397092518325155943619345754689125661054952639231830632769052021121162082463709902676793050029050748439661522810284757224817038066716402387652164108061072096345119265777369135638151189001044881333196458442947171738818955279288924777765277397284287593628323272866692885274818588711874901425771853316748251045516404395839151318987667791689347152192348256145131842104929460803743502529094453053631263879056106365926496728522933349120415032069391340549415889474676673172418469095261394557350994650095111389191225323922298132299456744266258380927876414244027224207876266934444677867900488146286950176370248661949904926302548158004515851155654377974413692109350298514704505357818557656728826776387493592780979085963044733838772070697014424945143353177720667802954541889698755609213700901957639899908660490106715988630241633304122135564492295892275176684113525670078435733230322276095940841092306207274572841722908306199271671881338098175272000575752461300343410116646080023902452479064728198294492450841098940512421130006442408713216748794098831425935128753423063644234357849481887738983381080605283210520618709823245867134238320412792320301818294882809894961234171570085129150822259091941278476846299215384741627471416281684452241866264206378505060938266061324389495483762969407944438472769086218084888788342821397394274245399453975468229468419956824112860946748089259427531725421002272239665257094068358288866036729517843442169786129823641829758199252490984836989642082343504261924557271267890265904259962259640554166810830646949142496484789669206486214714847174674507391087777267247564371166518181506154913010986714484020306614970534391028076932290576623036110750457805078512945718723955455632197249396152258795688126047404446067468387656379487068159880197997616092195859670873926058994111735891337328175081377134878497680089915945840297879215973512142559906227189674373970409093062486961832654207985337330608037150180914494215184328445709379496159805079648777018243113656567300587039427642866985227754481072625288441277339781805408011374304388738403983849847898263654995688909321129071223016316402009554760765421646035200661720716803983088124804555599196665365114645216429138364163787820171223211025231166553002231193013794617905011742842521236099651711548198237654221410407680682847708568477794032766674662797831476001846170221823426725057490825086316077855731606622296090064253890107947315572240173870255641313978143518061875928122157535293793686047129379079047755463384461967369535460303866185465306197165120987216025102184835596839231495881661784683566923696011648066079094561176236161471794179427000113509694848250090677640049432517825190071728106257498338454937254243453701357941478565692589245947499890251435437310771242006102029995307005020039974436186739120402651299142179221581274491672637839045051341956421972416639040640376624111555788894278004128853277790280935185140839727016299060003534050048643545192086241046545665094662076192284439052837638728969546734108881162655179340932050427657295018416702769370218816256870726356897652468191376061431897721817677640618316800575957989454834667110436672329848385225867095103375711081252696729503671264972571402033441920631656386244148462451594035366397552880944934077056857070325886212675241165007500876814666585563460707752758063306694726719150913783466496606359092829868882635640221460405294708384337267072686282229634140972993898624319957829510323442957510202067786517193667471455949877630014398580812119807775966263511065334464453553271574966781419605031853746506637585815128694800672622041895213646482838607276893023815632752191308893921234570380661472471756778059812687157519374333624213400737647762344085993296277575102587636749371165342423567153146954756176847410981793552864806719865509048837772737358039232817252577288273357191847674927255067409817681626879921086468112401722499543306922829772122164631964564015639988010381647737617747956997045598345563134187278905033005384581814650704999915494760147200866351440342662124983739811845583070336459089194032048225472401254129219769965614164398221876412315884852320985687443166352992324460252043416534936505580332957082413940202465354289049745043587057214588215803937120898738544307384246350683362791323682081915014822725910068096677887123724052882317307069057932799848459859618449089844653612641300429358425598476433658370215895927493150350043491679911897812921843010823111031382957990548022763099547900618040956250448708828778099413831902486058024706773585770060634275694002563183020932369153372384312416252212485630499836176277693520398823644320237526696948977678574148194065473680401435151346085956401612313927524714385652156035653489873864613178997133206303926899133252447060402748651418341357965684833852325722120055809012506417816613128339456803306700467898392981993064280171897437682955379337402484705919071680981422540142519734251828504114243646390239817054158640017934459146942321174306186205128057680317708583397021045078669299443283562489480046210963555981442644625190347805181852391244704549455310730047499478231237789354534411918548315313773447605360012651333259849111257311452561393939088765942189289447163723313853600765742138967408790986894623902717749508295501209435330429978254319787681766736445583601249711541645229251833123484651405755843091121927793023066150938239326674109103369956576637147956241275968903124345041830019424711065398828762969212308308589563676163030760358267555115350009345710883371105314683375628759194522362962994738839124020026611378148923382082428441807311660410799805112791906453793183355098566197528255807250012105972796222409141836644608918703586366939156307438795107181520943123085444728017918894200269695479037645298431731287799080978137088999277525599115623888105664407016690682488014239383955768277377998503945520980213929402165898276361489561068102974861348294014697735819315725385102655165453450443495450310167537033267882046962405901042926082719719283405634682155086437293886862851934088687893105952051917535251005626900650198272151557159636448876495532845314959940120458839759232488446278833380886103497059993628970417293107625108288621195747670121059293237309037133008939407941257771875175238782671570797105447740048990120658734793798174103278010277734148617920390956945382155220358096575988841914858341611080173189951451474925434865355992235001970241649279239632617001082116478682368884998674701003434107143292443344521975256918546356432760712554871908910745488566942797864857313399975051132735975062844622486369682261108553433644635049606790309270958730619323685226413455124476668248434033027355800915839744627364968263898652380678565984718699204601498306065665568891789539343036765884282942705259832188796391070161524509378037758298500391309475194045488652311643462805557888373670393908384166075830718885117933344195200931597994378597130681299295561818107069385955189282778027348135199509928033938862667545807741942703641455305958265008643856413889112343013945662046342057878322284392771198417738372472609860645900299716275581377839825973265321431231939530054346370005133156236651666747240172945663740092705389834276075614409485729855193550549431565001092851642382108811845626770845287918812857128406580940955104474935886681271771788616466465977399159079523260144755317687301415080530096783531443688909982758064590943200024946537243617227838723221348532850922298408692809464319423641545522681148771164126994440237870411869424582167771752943240530526558909391250143960448054657022081948800187619777441727846284102823073016768241222957354736255966209808914850056207510550067836299597265418807684134479184805979834427329254390020859747147927808560830974908599101289121476550344578190825951304422978207981171136592804359993926438504467479608343598876915488186417719330089236291292850341579304541327719214937890421590190558018005671822215569984304035488678927931231337585194006166816303556047660158351728632783053035714769242691587537781768474806817089563742641253245659158791020808243195626073176695222583906870652974723652858241693552288961994982725624103902687742717054932973125083646308834938733303986890608311711977514075594377403811348364427560860264238213536235642899454077629290669801419360950326841218339926122129930314922265808313737633915152326668349893233768504568299405150802163642261410553318163925185035009365520063610256693862956008416259220541919207299282882890280052951993412820701550943791241615305010831391251593530737638741008045030716732406838318288560323236881582845120384577460213660363734224149494216211043570376896477677307680176293071530175235955547538632416833940343546993616007850554812806145962927426024925232206923806890436408699741503097618394322983145767344596867065144494628422677221937207734254571388584534202010351118867675326003289914887522394010705003078555778440105898625870884441161668997858010432588169205924420531201278613877971322035931022169479852087456234236414532835958600471344537556510202378282002079704194875071939050436544127570282492212343213130511502864007799961064647461370850827891041892532103402838187467309729338335598144260802665235057116844431758259687978968293419142157017965512404929444792440388741321946550164350098334773708564039513361838892891397532889754199853647148964099241012579382882243657833881401053416362522564905964845667775776659314502437324354533210603300745007389421825715824791129324796153096382619864609580724022181503494335754014396763185021677762834206794577406237252089610597141906455250683470873552093078978721385514699537321159028507719001052709745008128364467337918729427794314427303064810640466411007709936652775844862787837502372364741020179792394111642735802601041267269403460676761618218387734055011964654351877855319861618719306886669240569178541955213314997195506512057214030354180403000523968948011828941077110114714375470582291897279470303864401293880967325164275253998309857778260382726652804193874027784609447310756920225856797957780235757120470722978220655069323743578148744389411199472606590920983156898094888252474213116574139534410785794851324077821213491515610287414202657543103286490494491953207510057883474891150639365267803844747323235980938859066182435183166398895273349015741821163971809963945986559714592968190817157049499909118321433187230269589894696686985596594257219979787219121286864108164343591084036620718733331639407248060204810337978022244497592660546883925580439626601571835926357115988949207200030575654594848089186543944815511779096047540260877574771889513653439470650376497519148067907897416488963851975884983890372413725825459031583067314361922675754538899920181114920106261412804499675472615762585180003200032622135911527019939578948337957188099625943704686945645089173420638312506462369179472019435808513379212502769595326392322767467270055335083095837469399832160017664513235235279818307338381093901432814350617901817736995988854574349024438412355355569842855284872469882912721186307221362796155319628733559035449779956126233138204214187219107632185396362987638679125538742551950184190099524467215987408802539811505611483611529183300554658667037315659003320011950945984880733966437399168103641228810709614387464352847264188063934722796422054130501610114403201305295463235595131916417958895941119969086504939788787472240736072318516891916877659431755540133449765084502268536620215998940160233966951268329152351368193140247011629141054137641773997381740545638420157842812433196980172116630673052556796658576864755188262050684335244604630630197783035221688215417206102710081521383982409597692445780198000729746983827701052387733473542796288003631953277042885861431492162688796235017152414992538906856973184601315685530207511369360978627605379460240451164940823113088769583453858978135292694436928285710343242164380746369790612253418525056626864973985055557303098077165526011497266831377011530959390421433424243257379906148282723773580360376427314224362124188104325916785596498685404357391347383691571782286578120484369868101296938748142829405722978994583829614051978944776154929057670004610825241999670212859661684648489648075975012649796665077948227308787867079238532611684202669030235697698791330136820670618099288770559529514827118190349898570058554124869539467953734855770795156699101477733101338096181044641830106396300785787160556032898101222770354956489047228234382976874793028160148047560112981214186550892496685297298583998800701542160046605154980695980946567996068559601799089122355410734974243069915515667164231232699402200792169253758971470102423627338539363901172356402056373806811046494375896375504532396819523347688076689140434721110256049708867815783540701183329549096666183585327230392318936730330302951929940444604184174445899827747616262277677501052869781195842286269214948995473213098106570996638962898479319113563508414823100435349586164012893463069411042738673571955836751045505689620534937004597567691395944146026881266126045196841824442955465694076851366415258339292354945091485558118214564890736360466887210617206599217170158979363825046707984177617608380677718609428165962122680052437093075018239903191231412685725795265283041034901768196484435707441394329643210693252164442660377369006830412845444973686365827167643128287066845035198653102943890969942624186043285615597131138473033518973316577805971175469300110421169418912019661571977447510547728672753078882771685747585945482928723887120540754170067271192323812845893285274326848141912208737875220166750212712307174464394383809577265846093593379644027722504730914991078613956932680586443901528635975858452067300741318277741603793798861560167096047575286821938637630490371544282551564677718058591384272236101543525488272341950193812421875918542847252989766284521448961427483644824972396996802279822886807129072713593328608975323232572909085424910376268736170685408817717312641770042809349353939395338210084517917423562744430161236120403119168530456117133486970644881163274939099674240132712394730708405130651440645412111511968528932059351782167650820991995532843092070386175793797775189175063275159608827992622599488440193659492217346143370367059979950929600181407301800307521362130840979689512697994279179750979385796392268288676688060991308212662536367105444337885850708363582993320800684990195504181574533232803457507805983272616928090882693827622086245972295807091418375215782710744930638356715077454341243763249101648030285880197191908772666083960875073129608812000778487271542059241690193040339230098385736228974721280731602596410615191514600364655686292614970408244374453865660036019619923863805723935730023394544519635782489401730952788017336594866821187790375404827579215503079121353518063448276160663787799465977463939506480875818450287613288165141173857865971639767125138128933316503522279329184124062513246977878376405377243646098133089863424753991293309293377969086796175083675987440174389286764025110395926911921812875884801009192287877402450040540222474323337239395530450696789459502301982598786292356741109588799840864373963350546580681249620899234351105873545987913891911842932892249610569713541234806907703547482735642224894207173263198180851403112683031798600090586231461197563441304709509674157563881765175915563450853260749822520249052455059903120356430291003808915413465025095538083820021878661084034581327113832212180282276080761991254676096375258447784823910495024393004440121275294321319151972511628153803366093365833271763836003011856586409502393235061482401348558109478169857939691085005728369065732027278441036305903824434460237581514977488875291184539406908258013181874899755619959605857556477656942585823490732140703726701944089501609438228935992290029310804059645453148342220617067733184383634328501851174465952648459786042139254831424362822513803960793478494875389073866079242855348015716936946670617760862262863429536731783573273097785160294339511177417468291943883802178199915656371839105820277634925418178755820999135365956513386881842824263447591275348668723604503153851298172139807942113751145251052686241710620048658032341545296848639383950008325386290567472191328822076395801327332308392067556558855767302907744468375027870579187680990925489137784953576855301147869126083368465740737497656709497460424423953486151019554561606822148086899306236231748058626514899923171178821195096335166736114935201757233186482021974745534278617838623251352495575489296601541095188717567836196269898568378809591464704313107368714588155311258824016054155615852568770235253744855769175964787026252225197352886012901998822889376617776691614795283972078895625960481343941026026492472190820885702254311735184608903935159041520920998365529217129090332916188240611245472673323985426186198808713250542030173334867992392181096148984526833415615215126897496750080826313805153835736406969618703807202113126900565529738018261688771712513371708463631350609079199590508255949938378717029419759526312702085267347871951210613955626123679432678928908846962351186180358432331702135887184293506030893930002849604564736369546186231517414569521945183209623278977900712195619478024474080154982292380078609889886932339195160004720503801850046060474826677357334135042398982830067264853140140048814713583779163718808653957056128141850294681182263795898940272435793000548281529046184080430965143840175759805154061348697351879607349943897403621159816568166387759022015933039257839064021234282169959015646168979436772303081462025459793225551191785431718716599865338292365847155135230692566414600595677509455308046665751096842052020007084993245692489840580446345508030986255781111554266192866046311078051350533365917482315135546199402548182648496708942214038450900147797244507690846063967957270717163739604331404174964038800439958587632363429598956159069544726113098098116534264431927329261659447569283389058185522479711327856892904176800432625735783487999874689259654631675649696879582090077648469174802157301541744138695076395462088666531757038271999060970064250262677076933951212254327844706559838174596455258667821743295601760603405210804494443915908949404974541691163836347836563983666837143255066871693041271123206722155690119877548244459353978224401916429238835881634887826038832967653054136259045523757072674681518474811423114458702452397462672787894299776678662922807724696900822247680753649135604522548271838800701814734714319747552220320036619335931101433716211181082776664249220390339221951953851768957571643318643202694366830833824482688931481740100959749490788567821590913468710221393532354345200408110878738787970817562402662867719261065261933898104864724014700528851471037234143067628646048482761619344757608903661426180614726781485880635121011570827175044653796789630681730198461168131660813392567344431998562839164819417823117142489354117880267364421499107084789303892545067855272908697051251079689787179561111590951484185974696662504571830159959976441426663973463562830660692226517309946485513775683314891114775747469306298507849723475482411762479296834895128829550395166207818563154877907297006853150025916673592382506460906305235260306839421521401090443033773852943506161387824711773071729107812883605881613699926541552425927409661696854213542930261193722209787967465765150548326722835665827448677934475638549592202483375888068770188920479437525528784665315720274676807613682141571552501453725599219966924469661796613458516889398607107799131535268562037989459961399191803921762127311542790748107749712846184817500918721108155835908901807859793372809239998550215702813584883154843421313228445207456202877603329893966744766412153543236030445657566574880503336724599875316347636664649154604878666881134791119896032745603447899359312397216896705551812118463484950531392802127587653287746792685094946964169509316854303162725157000684588460507845142232090539939504394391143782496958481097945387848803152622718872476556646853892903824690992684768036698559399124659679495971448284583571901830439392054430143846077338112641505991067055301912001701892904499167539229562664513145094760910134697173362803768054023703995024217684998090684558157771513200568600052713192563824737599705764362001277685752566485081147060617797433957746311122772894949881623898683470815255335707387765527816098501652099979564024692431888711725546461878927532440367092907040303638450551601761346848587703806657736212312409216732421265707805306293557063338263241076944013277022366563396310804613940105236763381529782001872583356748134527449633226720699109113235027648436393524504364110629004494784422220108691906862829277061521719560870720450780838446094251579244426674650672389114095023868081650575352778877746351244946626393122256822071101249250390911977053389064813292817422251029818346880264362878346360236114318490774912950992321290585884350817603136873637288237908163414059787965481788373604333888213420572394445171640910354094961994277751946436849642382759399624447175298814561520040020733048476416460331426999965473427610549411489381281175925107303552263918300728824201480956443530277650868188170922571007741417731886231723319778354655149561463037619471507582423898182838771531625087706504133362405852562748499833934854282777543579647070411688823565687256969686243608431802246682206685737174460490298936124058801971492731022051922943561572559663714353464036556029912947779371437154438394038615230260193482063167572683523654231769937871586699023583918239684804963945419452800322489867873559239251994023335210646896630428505472128561213516353836677704837858098551434726504970367525083492679619774272533077826120514695677505688431051996534744474260772925552892201312026128148124024845171971762158957216106245354358256120302174903424999378266019327453955946872369298928903396766755871828837662797238341456589124658021227391801598268281726182048684856206491659168910985255574343271820954020574378823458773121268522565380567256203972204322574414803335955021873433771981783683735231326767755468003370785100287850587825838425829519073833777994815410455536695631255713148497221312149434825386386841381246679845676251663446123388019986266437864848782074733464582612327735228752969789606655042240727604038589199644537201746755850587647351905452776467957082361332830205003323920688106825119774402340922818305109964502476382143566250570347370064474310576736230702876070689099564210194484189016137091621876658300475698582102840313242491546329675144613138142604101945354376419658664563409471443986160899563595655030818520638400409120123941113164514672143749372491007147862833323123028769042938983844858923790418791251354431554585976450576176284694591954503147906944682803512389288828140008321935223520746836018682028255058842599146479715028235255541282286713492413859511277762125265121588858792500260090349193634138052547838388849961768563114535995101877430810963774675325174585337380640475154306486524119799026522702577511481841807774814098242631585912109536002873414741961412938538435720277949533640557441273380118893999366352468845186650977663749543628018572485721583374531814476051430581911267244781305521745806346097062624637417543756800582457551055193517259796834584498093100037323355884004875054854286229741283362236794427434747032454992232679343667575048497639910188049232260231056166693802876866040529985833687972567855672229991691893805834048419911150418666758958409101485711770394009411591750906089264787110926867790859928405033125931969696850751827011500603549902778698557469343197597868293513641655400343897010562252554501904293380816379740263932831822315091149815932091931573619835416055033184683208975716934637188517992854390712721172902074686813673477743149819745592421026147038627202032488930980060622550319966139909153537747571119658976106619111931850399903508831430125623898070681328103674675461306549119626935175448303303002220378813718663641724720923115285728882602109209099003134627880600514690014565286640406101093575980556468431134597218693287551120071435382361095033279740647072083838563566762248530287893267805678711007345286698459934445741996084959558010029113606232780104157846995966978194520866977401378253307690776758472780886014581831019763218838983038919774978411556341167232889846671381723179253814104505528359293084809166051260143992308800183573177274243548853468196809494770397060933630871796755011944429141559367374990663331140375909420612246067431477155330757647227660035798786367676214401833702474128734932940924911047983985339072311387614676669584396436282192231896025889795929691892012120135666497193985160829431907999650579884157261603727001776734048117914731940335909753368284974971031215799229142046916246676171832608702085866264714489255167047972949879743821331738945460462096645860971349076348075489023235779060285273670711683227537317073677760071116247106035460108299764797813180456961261773136699137502117816162806831667486198933190718182965169118124995233973619654994742531824093197529418362434694524683681177789013384629428804947160260458900777810639007649040096768990505856606232874777631723239791847853627554428550070583573252360042187409689389062788865536389529102634436376728275962582276280593835212055872795188116788903218809550690526999643552761514066820862337563137764404005087933825070078997625358976161845375764690974038006239286936597392357813747542227708412416257097763728701261408704208359575145991992599544418273918962350845622032436108842097264615674305279742530480111325637869754260303949312122829204159431757153875040860904666062156580153781162657292597086102261179317574211971211404055294646468082617327189496575984858122994679430058075586053739923668588551940597870735316495889051978865798692412391026713004975711929183396001713397129774483934291165611900175985731834109568367594280154853132859132985046675698513443998147646920856641471264631923693350573912620120701055718924389984740595532874719600699997368138255777434888787480890370587403828556697555103195409526647917546802428330451925707916923090428450260924603738577992613861255586437222804124699858227687492085189116462241274303450185761491158566101052249884379003282222692240810443687821658067826848529626732753587147386072908952726907549621887594836698181314396027275014343339653727332624260150792835656034335600502410676166394172832418158405182889590913353044425185508322392559349074253916230854375798223467285697714234858919983232855003972574947770804838535194862101772830234490002902485815743550565020568980801077120789435543199602526192023905779763694285082058705150524640337873926520977761826955668883247622018772552888881527441669167172481363801768352939860642376630524218864545999304245255757782271098763971564811746765732803530421556975474775921853850702731005012312582059225880340826337757012918960211956122770584628708356986583520261065734387976224399296267454752950164477666457342575669022442508000412781002140134454971262348342840234570960848208031573466001937822895150360853555162014175049358958778253079972544688149446926708911821278965596791116425333141761543821795418825814918200129171843485561879976276163041140042540717059137184409511704963525587729554272870962074278260088163253689148880188963553813546552444037858898047051411830549362408122855419532353220298428172151206354309575237656398103760032186718987044849056934483853091779900690747737375344838302115876284198097458859821415612219263188090744057651456147264977766213767625782462506525963946948593424493981156118641015441105597797679562832140616636309343199804680454964828111725878398293729751127328060868156749967436855835131149802836618361350516037838112352917756640330628619970196315648148158676079705071224897420623309190871411216038388886460334196745232866363525621921071509726115186005267426478238961088212903051647574292752114227301993689548774202687594709555794012664141722183929620839576550534934280690041385755308997670645862469092332308733152968860721172941485197995573992118752114704110423625541175490997370756262452001233031581154183011666335168340037261247082605167998228882670740887916503267082738519874797188025197839985923506072771845467685999763172147539443839496788534745752414248480644764128423724009664649735749049374811498484842638350518365157612293044630074485629226194562956063938373737330853404107907452812163990837040801188804364773988922213753135490775324192186074344224355785386912269447608897507570274705827622009493142976570552989624562106457074090529486661840774728130619015715876164046943605942397954691084329345372820773548322803665916874178175116990704722199443462868412641651430190873891763473599037013539282390948306596762327394539115862902510947151086865431191922280601214622832618819439044254953537427806954174939059895571566597835315901220299454795999826309685360246318777307856895076993331425636579479277504612018270049260605662260945087724295124480208433821300648726223041145428352664326575660898331496530807480831148697705387564515876785131395820155977682580290817765387102378492804012429135849073389102235616423514690962559925781109321524077538224379259570662296921556535980146462366836294469443080952491367138076156797736548995818531234303579062400070383380452476527142671860722963514242324297270850359729906858034308152110543826359975804043314487378354704324508552435753651994501474411056430347644058768670897580444874507428974615321678146520778623977845903316758146388656554719477538011015862906825298658769870116591358901281836168693786134808548238417776401048149142594285513245495173109655399345100626323205736223217577573494602108311309477589229979472212129744400348847715385191713909193999135236949417182576275761970067246418897562662317992689344769173867524373367815813801410949244670756649499726922173530022766494653086036989316182599930432936794422733560700595897035274040969658171063537949431291703529550661169350037725097496977829020916483458664163409301872563475717121923708620686280130557372994501960430599415511566943146200047472020777077314421905041500953718938092244737201456840789188001359274446763400184810803814627875934779880571594102800373986577048612034037084593485399514780587565469456148477633108999888970375361411681090810122193144595780624903433972098691378690478510344635499169481983676877379797214484132845417855848473327826009639611530517675238006770138936116852765504702545527052406966528594550600276454792032266053884790801266145042433916093539069118912158413798442728869334428977384390376393194172660277988079635825982032474443432440176236168489532530599709635702806164950083569236219399235826544370972677805971398562580762843399763154483111160213880233364841196327315408482492579068985561337684334443403337463029500221057454448954101032785349214610170444818608365460796218749114177921986973950689183979365575659436483908779778168405051074766334190943167686764583486596327027116350003062629772369961305639822141340643339155672006002952472379427316619587968635465156998137847667112607409715285469300015235435621087817474421376978304019964515560462111867116073018233701623454186212104289604050723378579008895413796584508780294699262679784054172742222348419088444194713275159561778415673287606309505038331498940462809840088399453389143776388497003754762537299547033648951265594927704001855225988244102753541334831610484667867298067619301746276904186423635213652744878090588502337224157614495833183766268999787624512569359426893622771552570044819269643377421773126120608028131638291945427622793619007294935578231330964523138156116612964183817416750062894705796237892427934195064443557029438662624229233152204078889391311731482377251205045058993665607167263169352249220499643213473424246103618761876692242389397599063101572445604861314902008629150288590998037478508443472533977491941151810980298193196040043517903051306774187601184388423949802722305670992087488601091869181622601001938691624938093651523132751915094139315485781085917597149575501082953854977446190034566182520548030989349795855487038668165061727185150969692817240508707142761276579135771618217730108158740346818898148503067347793051448402619188046591635156110460191572469176745256493663325780829114793442794108990688768133203045744458775908909366924454172454402096665871687032763959207594887422698913652613984897829115089919640449441500283321637381119640823992093353465458115956907324257552518994839929853577881793984119317313399377197616356033997543816411095453783663499511203510995276488885643211714049201596614385574630836614047283830888707101786167725818856617547904200660816244047712541039087053597046307135116732771053209145558402833689230183945673904178301548116574288661824171248585279009468055657869163838775645895736195474512291036406282138320319917323669633409004974440000471852705566845297401270781109922549058069447914715408846642316888934571032493907749915099162175913647071487633622027151640584401096217657006239803997796264522021218737094030180706965723665502995391198564159499869915279062000776795353163335055767939893676686084316969447367498027859412888523995980568809563539140900782445130924286265768589517371868216316030617815842557658659937819605833666515370497137842164168096101830567339393555920406728588903691690638037573857301699388727567977286223182877486666733972384853717061013543401133342704135850190979277127072196136642845145693153745489481415371652600888055996761638926379327261762054832418261438590773909330579378429488740477751922127392966337440192453920227307288560777351567090546728300535328192669974115813446710003528500732786869285369933268639972886572585729687303397711422090015351390556758723575530192322248056508897707983834645741962152466520668005275183608771319924751327536266263646733170083980423267694377514246064932090818964151105537643815497652101792263861174267237575952929891829327230450067304089684050753010337370834681714541659522953165539797796313778413977819217610608798614276038689767507870722474170067180777490079971849956695216020065939715710318089350658419498831825648365665458435994746063546183671511599825074676669029676054101734515350936097382039743454172746089378651396987318506790014225801247224312584106518071761278848935785897634417473673086243334817574760993430460395182887785747450235453119502473920647744455098710137650072634101093459917385035572707310829015416386768789704005687954269606758449389823169844723930403907482020631326718593686526793117720116439324582537330956447423415419033552303190996632597581587720335834656361899738040265453045087567727712578838264689029147900970217243109923560022638789240486839132111547399813432281364303434039217315459341639898993429452424783611951426851172023276645530710388412185818634882466691344818885434824461956583610359617828754357043790079417000468369581620902407723026770460092323978631987196848593848010282907326878149022565418488530653060309881752630452195809608844799491888374942853720034681102640949653768589245368566777112301128923627083905460994848334256406740158055841220993865024743679092165235167590511499360284896173906374379288867499489776409516536334396166722999894469020255387325759357309782662542521849802053513507461016444734008916533887044573834856062450261835027719187720865128687045022239836454829026947833243388721212840758309695890437452618366247525011462625645613251138275430393024934014279915699262872522561611451738118532667063827342303950860437750146915965193495280484485365874769887405417877670856756441927639987747088854232371079457761462187954925730170890315375997472803881923192803959704520831989415678656251508012063736650584794486764352240924917990818642277743264770529991733740609454135958886710715390428842847399122328215824339350175124963589190266049064559724613925290050072488061222832443209507107631481895376946915386295068806659658345828380435263576215576194113124673676941420575879896541031959896128008704147868953641222621968743541705647400976652024931590212931754584376555913258071952322843461626528311603204283078206532281226897161662774443901156733034338440840626933974004593902470774861850192599732514782200361248461286803585228715387048696578516415595087218746122779369256683472539494773122400608600395895961007027160547460630919103432079498453247834769619961308512207901173103235574503393182646121472845577311537001481783611556048928465082407915147410971080213196871491040888993222228387631215473746637674173528484144515338845235693964242969698402192294369313878143003086070605203271280140015586314782147037162560054943341602036517032870391743786091845630225157404300699896116227044919729147316458312584294465621997157187561143254465362219945508077642973621117762848654057282917069760377187746430695284250736690412286647613603379841075604883423739515200623112162072671101119019356416527432541297515754437806896962830498408292696638164052746303226284609111752312451790182073601514638271298170701134008190697616360527076036383453611923360988840664108049733577687146443476876770656510103215578532163600385435953151548358553243437417022341146420993807725835271250908843545662019420416320790455388652931701373456937015886606348657355380788531966155925522048090812998279094369145672854020581778795837063978044117481827437761047166817138822909547460006254334156839631137747555005046624951770746269504906930300673967977551655025202771229911445734223592647137525407390102795950134726288443361235655986586869141116055465396184544564272374019671078857928699751984663824192687573799362757804914311660160000046144231829910205559522125825938293696808804991110503974759731635339953748860378177398062571863816732352038023158971715826500699653650545728903880589043034897372114192135381529160632493489891669453747224838855403758627994368199784520602999914071748399191921270776292310202239255057221079438343751072396493293811076223467827926295810552404986068944112502926934918079412638667556149440878970470460539217086272324859708293664346734625415720410267552665522577977207177182558961142389679016137496286946718515707107122341532360911080985548719196795084557057651558491865865618110057801717348986129230412699904871771710188080059577000755053453182372282376795020281014848723868499947061595075053341120429582917092912005327604504538462639327168535981478963944744916358869774706588839212804434070008373508469281348788192299482635871659093977699810557137373819847369322963843127984812831720946347691649992180337883054387634198709402695884209594409659048238532536524893050867345351899095388387963543671628425210399063695688980462013082548491952170570175352526247490365009687385572381210910961988996260731290589044903925426842249434384692961380888742227170905420670881525565374100790516853848487188523104800700603813359811157622977322973702973838866549415177045438866165596792002335076151125102278118262383460609010540526783992736729322925233285021574531915965158340639876481857845581717833616171440302560070633504860227074063250026014809544768929329894415406449937082021342493897616032881042542307669472773491914270611251515861565928374233754771693892839143079746205329152104814316010420504400443790629719188017907655621608221744068184941051309332885071464319119092378589268423628577140008526743866732982474816666920524866683326030724743477460591541939127950952649005559359932206031404076425684217564882008195015234294089148242058814673746245870286454574632785534878925545712893270294130139970988534561126320906606413956055150275994215835021605447946178597887672159320596196569083663964208738856881098119528792983147359048632278779559416048590751639064487619402607267437444266270475955027550832015597488866853829276017768388735798017240180729075866892891754741432796565535742058706208671158783836707788553225356028867311954171269336983521759796114993553772939278129082735006359970845243421144783776105174100521617287263182221658775227132371427498739893676301037541646043711593205987819357189464375146333442670697926843102011413089429868334333530232487350771083759287169099959959558986223855719332097788966494299048818284359333458332106202451998646697178375117620988194278329492612264925794570464048101283374286842891721007322113119456646524204494241809337804583210452482484499400745304266954169126873050957337832767811932960749849044941742530798555249521696963556146801295937780394292395072850262256218462578483798492857995747819551835653391639555790954713432692143423756351646036255032408158374476591785865135289843553572272042109298181520406182594219742988164751719054258758943051289046003931916993488194344375396178862270997675784732807731332506274497558625125521591397955610441119623881503843735187218331074897138434740219301069334455436793649977978021369320894391161261101657437272679733209269637123432679686267175780691641206545786430545398433955380892818113334489484709653496362560803478750972389515476619914817647259791411626776664429077148267266365953173870802838332684510609362668418235684793894429137104386983788635037599298736755427733349189200416309778594526565426104729271119959475842238588579294430569768297176580215528165253539312706012609544055616420644930507677514532721253448176711580866750279656486204260422661429677081397431943604228953880085489830088634459011634757984448313368830575193405381488906542539330908987841296517980491854214926094492098839515321072785757327205700646210786926407003353919875476981700906335539908499210865967886413085478719380005142768242587117400366250791107543028335399654202855305781825410376627937362797947891467507101865920623146629686541502364363834822540670252571280225969068245263695054410053101300302192758349965473121851777572965638576218250125782953705990219667045798874783810769445332559529003446675106495380688516456418397391090070109310509958368877831078332506744800688461306913741882908100078345493726565085444753681038842680099766195692286679200158084048571931384977949580098231390187627569975328622040681569132077231865165476060975719659558906106921904814096829688491617374732199966941420729391494118796729201971203436755617211719401124756349056490440619976546318691179137354642905701234050700889334906873023380710859540023828021516156575232537801900094579771107395209247969462241132158940280079819232188737345460940574903951816449655467368522878771439026960874729674398056885791042737810118567676046497039855741655945697402415893475790869588367801228875282092437136307955175136286720547774574797606420947210638014443651786016191146555438025972978472690503818507808681401463613310884889958960405670973653741615950796666890802300038093075429830660072780693821903333747438039813696030922892276094040055489495144748159229125282431971580628915802722720413720881012181669172839899296667666075973159943333482282372471925364138654113814940347897789074343637367288210836599766229744585346376720784048194114246899232074961850767925852418308668924630647195253025698311133111358739069847478669502422190226596095177165745904319398784708971322012185721834227507535499697953431326265371691808984246198300855486108638383989200182215630622424890262717248907355830603127931060356271224151121401608038096064719718460120201454265357825083572562568771271409303521018051582233967190545967302433383401363309799620025080197838659728388122450603667107779348364081158520983415166163996252349094278391826397841917711779751288239697975207363012247929318771516744786276296928378743216625197591453308577195431186254298074616607347932295535830614896381455062855137402967368518270449164432066806755832718334248265811378098451354638198473269902181174996234662070714516926239090134451831957888717300661086709931668783662756711724210521818381453133772282509185592131946036397367173277213082192549799114835836183452678194016149712903751635432212756393575591715990313916221206658533568822766229163414106137592644883240656955818294744693554519503120637118150323213616668175293557932724054446162010510613592917945680440687489821710929719501018159941784689739157105275715437275079838660512875365479235379822434079065216610434004824694098439919422984520184536793842402157270170157291827860583846989425896701413907049439373062040596658395252648688315263596713167153336424839971394996055777196893024429095581161528756541396380472971881419500875709291829219919213881310253873265094938133395890752144078819071983710322943547740574583004992784823948195325456440923407003262622332277095326803148038841512345308382580033470924628623990656154221669400044160142680640388766201246213961723668732129014959113783840030474162798020640611873844337667885727339037825958427628919927763876666394634639816117929404273583084750755437007415879139613392546797401399063152486860312210747741649022658302092097896023318742585815062527771266150533011073545582145770079954697788007320857144838289465353878148328248316328681945727616501983203114949870396799383961514028210636991661845909527696953078098684908114850985119818205221595368793937364014274432293755127646342425889663763707682728952999106894260600969482193322059080184913519695372513199333803691412327109520255773333105867939338360348166295528157106967536536779440666452044596200700314656906874806865098390479612776982977420122799842206625644710918843744966193270900584835638346898929179785694101049635601570627759739287986595768950640645100501953459249113631563497182414224709597354608394858535261030458642636174647280119687722865875718104012061798612318248260917871686137249687482954430588575928602384567352505485944768428305076725200918169637230274376648866906043436568506365491345389695768891827773299646190134135336205795879890658722303772996354628783550896799512138136248006793922957529905082617890747569406525547675523717507171840013051334877166309474419118649463687562047330331543567189026057134487058237072465212371212276611931062754343316546387546042573587440127288845238942621681230317718158386139266946569713031304875344987549742362722082599275005172539297172617899224864159833183752819993711672003077169458972766052226135547999339909865853094069597311105510135484220643886408246211419518337172610117618138517033886193506130010479735001251957206514595248772973210059374152588131538886134806242703336003468380276989939507103068105694456973523337749423103701996269899592628576398227547275766129874150740398881798565623100567069198852366177398154559818046362145951575240688775004624277451781047581748297244078793087679668832004615811055679007927983528208290700638958838557368672908584420649001659157054163567343721048652748937764858995522384634587957092608480396694111749661609584058124107490793313051996095845066533485262810416015425339354622416876847089767895489071461699789642385862255985749816167160170673050894999958497909990388706559386266708599685206742279137002202834871709993221456211145916963020543806508558952048804061422034622139071958929305466909497955484433138592923678730916443267885853063334619126881663535849997765135493342944218955583184556063596340909854867746617010606242975578844852296541221789327471028241138409211817993331466152404081832294133389361925729101314834438999163652573614022048669086006281578758682345855031098973618446946871918950027140854046278970013182585161773490201271452701771329180198190483954630274849159181039788690925519179624911257531914344190262465274786776391664932567030544148130661326570446912915105952952518567044134451450107054283322372436727831729165033634027533852512348969203108609722989439835261837762086360552541584549272683931287386575618888351157478694683785563246351012268047230417721483338254376143908890281831103084705320431509758442947852702999177809527364328342132433581396479626424379488112676065242744984378611039670522050612183580695577235793960264399372870414262777625552678873157998231252599460596528280382485159637315545777648210459919293830228503168152067963298902321323265712654857108375662075086943131892921121937380598407912012096626944638670775234669229807644874911314043596819280118481915289251210987263294104514638368577839182834415845190062290412952554804362971007889170296465022765618522886851785587097316657177960159407367857522567307936817863605206561208262717038089374612367883796953199642042372941821089019459742591854685946654944619274847151956859708663011588202280010919493729474727801972724450457140429385331436620541458389076388785200675885203364033259911873574442520810354418809275698307922082275552327418225608088030523704763725304411211195003167491314362263311597143338932410552911134774332370570887300362592583756207455552261078717294911586707852246892988429759254024875241281200761543171794682928282793870592175248471072365577756088451826612696918233606369286166903936341682358406376004302539414984682518006030403586356741520287601557426857975275280409459629163758645479800025515857610490057275082017577885896579882368663791113533613378951611708540469459757245919806978105912987008311413186276944121478913041512653339079989180740950399142588475149851473908550243988833223152386339030575988479863146401576150092725249669327125467026469375850629457645024420847124352885948116729021776126686357040643913868189670672096403736055007771000101677149038420800479870007826820708901359590669776267198680198230355632904638786423516664454923730035570424555566838943083639073744104870577985970453108315006563628158612881482422849574375124772505534888346227429522493664971341458029647539522169977625242436523418350816348137996745037103397465804945612873621328154758490005429611042696996456111030111285202143552449417328119095127211485785296038435767760017542328087545096422791324105109084920496077362564687760515874699164761285782583818543051576366473897443569383754449100423927339501939965884995193527698404967343394047646546159567245732884766924436317552790456519426169756197349541458076576231345550829884914145699060413274583558554050564366501181773444522866426262122456661322725592185652457034658456649972383546529918465382177230820867646771864867461125457286050713222047653714270776303384445266954038860730530971692518250233459227717466884342187068660482904810038393848680758283552183656908324290488608465441086079038006160360493838384196619370139337869009888038815794156414054047061133537286554807172627918005271462911810478578772749696888245437329687485580430545977377098268207290690555158416942162068523100227808100176478851896472318080946266729030749253638757308707199517573130424300317559264591419162377591770261397600728255074646790559986739487982696424478571284520837407303105448858955779129832367715231283633812871366932413859302474482105484273127228974940620984748101956836202584297858433675928896790464073973366110383027006385401831787915295251839343276311095847892066575018507099802832688963471666300424417434071548172724686287444824527074272023659475822791200705099263444306072124553970655589377386931296274141919438894061927702714589190860978891657221816243435324752047102681269282593039674508807708730138832857266107329612498074909807983743427140068159423058320540870874359075321838904604797304601053960123008029443997556438653924633541277031332328722160819894756629215621570142591951987178189254992137074180752568712207344839060887878073741211934963482597489049391785896957285414964232334478282329982754932315494023387827713655523697194604160465051424098706170455237029926167966041282217340221688087771313284856797699856662793142685933970474596714700610753835320913155002026706787692303256896927917547052794211354867612678811925599366975546872401311734567667684092919548363080177260393019914646422391956420852482058891511080644985408533191537856285569773908151439062716818533391449371415892028895658629026196042471740408725310302388141139948777659299183565012263399513037632921431498499560314896455659881439911029672787868682343484410987562845466043769544827072541842709883087400631706013182357339434040945282469167213079721174115973361010585474395848994522531783516403547639202319624552592182950263441065526442431573122743284278143146560560508351662699685159420863295853667591851933869752495928081439727144824811169552479499740773016288998725556440312966410540671114144951995523707038296092285968091116115699638508967967887325109508584931229053424512918611919870737433219393781199943756513448211083202628536231091796129660642774001917671977701217744996172922810416606542327574243222699375479958755913853605523212880223583590338113812381581345420369359871532487984019974706104751283122804170062280992865205003354298224595088558931898972316816957007407083154845643694475083568021259587046216296731068051000602241123897139883190568723331514884234813906058868764255203612208641839686856956841200875937781115383226523284546323562028821887794271931596762850590372209460851981491913891499629481557004254927756535347681732444619442263869965153208104580385896797570761996820216951762980282860184710563653103101073175137875130273735452591949951306288517964304946383915333274075192218328574310290600030580388825841257741658800655530159904061829289657248918484887846802059789135335667638510935501060884755279098761744910442728139161937136660732955262372688933667840759164251159316831319067683530149012808223285854073963682754196353952995987642223109732617252526075829390366038458057156556220784817574127544886025517812204823539988015001908450530155656006238067386811336142056610249977186859888519727124189022436464978029536361308229953494233124894778067063897951867019274289272365909704221835011704379538333314593661803663014436745741774812035541520673500071669493223005488884875025947086313140924194182777509079026621799913665340875132016317427878749627083308317734781591549643059768203206723339051716590899835156487601020370946596928299986952379138827715334150972378711071223023363018777514089047981199630941450853635616824571219949424610522828550136540624229245203743861187180507580716734462506763545490875149345581429138369882024573170401794496272287763932008051299668659997411225767297464651108777496384927774962387119151570656664159544667781962156905101404054523310632022292895061194778042282791759053457835421205348297989393629594588239745597818468324610750849173349459534076296139491419305878647812362315030254737689905466150260057814289854784476517428361010955017078610780806822712716580555578501486722046662353112729650965486525040086686770635744950985219612717566663276868960863077270838281441801117885418930033660170006120011610029602398604686640007178622631657507794977955406138715041301903683244342237510642573682995841496525766421515131779882334428253122548938900207957449845753912215017572055943844934818399424227900808456040510468553254655811064052707403385338020121968358335398847628896280627248004532179500400273240307670988569548678455377343205179787348065800608012110554225348937358289770896522345847786546679319805604442343507228192620728100983656603812659491190411167017497878733684503952262557243139226855030022396236943961622763348942613976122418417741008835366729165192207161543949534413947698421371709029951364577921398114860535243081396403028755818808355444088401360370562790227431391656667003779157447203952270091109291640667237374031350345979763831508221107370931084058085663232189049861359670053509896297195269123714900396782944763129044003043410845185130620587216690166343328262596139268782325825890775947813133012190371624220730135931289664212340185968311001100997072572793536060735974788031329238637753917853046957007131330667297445061528911998839086125016247553644745008716648463512363929814975879870535924660040284931242762167275490249179419830157063500676085680114746307612125353882962272936648447931807264348548304182447678969635803785412029939142348681171187552051365512513222356988444663156700643787918443499915780409046262639032957040952666415585218255216351757642326226267774364471003877532566949450036405447779993773970579637486512881083905704831237383855034656089048371287738942598858269912140416553929326931482705622054396955290911136645980494426465232536326618535006716908117874487660910512538872937472085941666077123229682154887222425659515830738246693363898423800776767410145302298349235759271554174109461070639229959325020458733215542942900480652671756055834608760440724543405951846984838305643895628942230546400437819749010369666592857629933747937103180150247639858041740565984490196209047275207906570648957351837310249068177476391806743085830412979579733575463260002797310645727391882425033300879930125477342305814140529507951711462195264462897651454704373854218648224049483541443892679397898241779884812294926747434303805040099370087168687621424044274459305039134254092425731558037092924014391652213718779381276999252539276556708580138364187856363586758031125145081771805841398895695248237035168323494263686950546218107404537834910629956022134969662181004521749869632253823439081826536239986968819066260598915532274009479093081498520989937653874372861009199004656761097281131109044777082219775816700235241753899199204014425973404102708711013966561669797215069857649117598045553848448648289964580024855359980751999063368486521228508987358839518507256109573194918186988339132067232231038394823268389056619584194110493643847846185151141221880632563299620662085037142895305381746321753314579592603089571689442883708534470722810999169464394524000827891831886136417049698935560479973081293125225515919429485358868202855810837169086033471996286754891373226715145919956088086198122205284583509923686467872545912019808015750822154509187135722741383402382529884508196200871369556636306184943107427709394355357843575272539286854568935858788743356622744318308699130889877782644344237162861524845722758081234645127199264352363156391473958359898412284712714038621978546020788966263563883771943547764390872329513594179657187959826305184453467913136753010756916837284642058320982532857589568520196303829270456473805526185443680999708092536903875802608197568005921087734970131470850150658830126711431072597637908740734049948166607929432627872106753884304494117131429408386370624393162245870572695877778112302732275819209954541277095513866261338762407643594212914073377748526226648379763111130116341690842200111004953878613377005298494121279156918183611821885110225626510984637397120672429257029725870542080952309506619604425252645029011123325983461317095361449507831151872833983225115996895609828838719683802136106721466970254688139836807965282837174241572781029929130599180901455837636828683552641127541895605555394753742925729041008413724689377313194419059718690827233760032141431458809871652345423194888245288831674200009188884358236318582387272122042604769027543787799108559737527039697221192881891488725493786379945289619859611456439732180023747688270018808414894123663765578138636131985996031783422352595039570557781999576318594749765780393147339870272900119683115088218103257192170145310429365919293524964221248030773339776877537199622487512149442568643488791166819910093863570789214671133026208215591886760647929478177424746943926084179537227270625821576447180805478771528297225626965855842441059664672472957435782174468624180765276204934657400538463024506142313813181186951479031143659837192059660330549550547485434356456522643297517845426422639243274177658801347464790359679853079524234425646212056602174452926726605678524817656406621391079717665163839232505215851943288152333299624259463409568295448418969651730288659242267816963253007674833836944313237605681047232580280209344211853321806283153171314889323123434825891006672493837633545707919220002173712213465205271490645067627270346442972927013384011844065805979618147390308417504547150684394577397129452456892127091559441995307773261205254246298460129199947838724165970747930807076199205959799368880922748407721494271043402978729555706106082615130258563267013767384644210876087839070967032290883062170675356256559931166330277016244784695675381765778961647794432892541364903960037660537205113768027045723147865445817758441573930324147501387933198678862116814650184398841356855019296778155772415444368684601183012975007243359615645430067440121156670852745568343411067769791436083007303351664547708057765095052470126464153947928241158145686014864978559206794593124378968524324869874707916064867464764871271140325651266147725969945812110062510399115834309937718035065867431806959052915650866291150891799169000076834441202724099119026591827757528960166283190817244314688554531385081630327833301432452405105840384715452424566639296990474006184306448910027260092336997340924824670401239640788346631373732703132621909675372438193873424411152247920047468482616597754845320600150683126969545877684788370348212689542798116862443325021592944449488779700129645598529947468135527351638464317545341799022107556430516299239334535032158585053918704150278878448588663313655186628614331044821815901122132810935277643137265046697043144814757380200607729962663455658803459294003401940834274168702801466728872799131185948150393251287321019206462630664014009614863782865511352689784079883071405923715662088472866014662590435085084570421136140392994345156519949469246334873701979578031765430570267654691966433274227877944371255739229886276226552680663894889029005008127873084245563745156011324574045154833398328442961501446402807114423762698407566196252540854179242706448292336906808608397704375400800940518833144257218875166202577129057618805237519402300741074485750730302473164498748713110422872887646149339261401816646281294570200287462294523510446195798235476058034762415207840700488602052742499983125020294439038555927845341916063087836797210335127730565339469782560683424887264053688746643963799589843743516998647124620310834052367086376270154775629882929959959555142582739856685913747386300210883731617791687564888504195122016081689664627914919437916081334746826120113639268435338037092383055045195806160641867150401894231439507519094834339547200332983235521881595208483672600136617768862716036610221318840833798398565890447538313368113624819237404816325075158014853662773480777420009613839306786140202726783088366179276497655337051127836473828737678378963351324560625115873190990060762961386513985256059419933693500307248627783456493924683754017309580188518946300671310829535457286362960489905142447039070508054574027139791817814858959717630991219288473121475874068281124422809608538948078469019926547732444292316861462169060361621382851675887456456258477010891877974258160174280792821356635986109972959253007798774482015190289388516647927286103150669885050111200114760063330964246208141018195236408293542630674369928657349421613778866558386630026290307447687277297412665471683618819984757611934167933074285167951177064082777732794539122324570840548236856765494846508922359572680771347294029125347773048512950493291136798591675467965205879134908970150416268955675789716439395683559015063587664127042320192934794191988385665969618455136631542257005398139709395187651901909696221136330861509641043043144559312416925896050967550953578948048157441199033198929814323627743651259281272078138262762467048174235249304092696961510395274567210443265989090389652941758873716741035928469343209925549134094464902433710441283035533594892469319213056834505160251554950902829053668838382623340765630921910112039319243820149912780223110942789292895374685101810634839891496740655799082083263932336535027152472666291408645092471153336274896642384328094155903932066837923536858306955063746143990523069208544817080775614301310733365078516461614346400772252029577736173721609925359323600318182765919958292312524203550732194296126348300528531637164908516928793635168839701922529133267719652894859836292306297756188339800189934169081893126184958302993831458519062051918187244228512103834183613451951854508826544609453001253650920823571084429170964236917334701304181655555224214749472592577435990056318051370301186870707089338468922955763456006861152539167952662835700857623127649585400565234183442568845055181797423408560720907919623763854078614351774235221524036288902271823042077298522384805336516736727710974284685794092104659729014710813104136089674573083595846697858665020652623619181619221265155709998906746660981713718046200369768609260019839597394372439079863295938451952210033999732049950325963640057240659827531381559861739958151783010463013018758352229429103630484850223983889087191703912304975030173334137266717928075413699770478850326758490797381915491440213843782158313972923034501388317762771614905965262177537912780598149672975704096339349891491903839214539502727000649180992544127005011524361743660210161121276465056932654787186547106848715344529868637338132816834758345516490902777907031643975165179455552703254700902378570748626800130702814947414879154909499017346591437957020553903777532396871562386514962195421024422327362942598781537284782171050430466499709963707364008804898116299875921407061997532363956709987657899460891416413287411103697674977699486472506451280262630829393695752403866220678905978630732794122626626669811139327156151712430720192963685023064600422857119259652915584846011068021605165503427644457144167524589605794865646891700622093141683942251295819547490295295178325374618128942914914659374108452312655136703625500680949558945038273352702884006340118942101710637323687301401766604469874108733807355112294931449696987175821181105310155563588135990454333464337723441882941380730636353640636405575394475255508033405707442644489101381822457426616576667380392353333340795607533634931611477148131356678042313827172637163245733023699460359586039350220392766060559079563438820328532084109039946597805022246399455758424990942926202801806104352858423706206472734897231231083986210305048969152877471036746736783292702911124673115151617958550500500530097413029904168508603789276304947245869511952228111182361078996478947887935159044366644268526176007097215879620246249222399656979570269748681958185344276989078063378120766484565270247194608889639383239204352958523240141835476569592530352337969668500760699652540967287307507217800999274939674981114412340407777179312993797900213045083106460751649738775980736996779173201202084520178224494383484555004989406613380687731344735024477433624823103967521470235458290532369279938312556703701894255367695539832421161270538193056575064418424509025525944523739630763928752457023718944929204242155265038056796272840296858953259790436396295014606679937089670692425766993335625917535461347455453087771195409780326721554724947692151151002356538795479251913889813701659271115379773158603868376629431287763210215022722443234681034478762160686944054109710371433318435215094450077411117078010590337912260142094229276439855190252018299772264484017691490861890937491393541090009264491324241263990812830280550431662333605198154483382024475771669502517498665670683906795722628746682646992300135554709038450616142718492439124402867245684301431574306596339538101656070088991113921876991750675914429578160270286728520310578237953069333292886117238059191336176072252402742572495850962407828936824697841473841620639747716755290902239461959566643320961729570343192072195470134500168239630194154026974680738123296618700241091313163927290413585737946621709817224066453113417185628835799234915904073054904617783372182863579869513791491991337511746080896892636850132192009124954100656367083321808688275395610771940062847318595181094323053710146524410707056573067443875096917440780772073943512147239288299563751935433123721168404850541075767239584162165905316820310934946159086500956432979285189658683986644449986967143378763425581170469146420018269998577785866801160100705796905116156953053438852499940985568767398682393475597690746407605022065936046163303505756425578614658623364888088641099949932462697560636974449314541735523777443239268287087013979333796992616815853118953480227583511239307411744940737637919055710204247146779376947884468496558633506572924076750765497623310828458844418945493201358805340636325062638046138824811244722935862738510694258994500740981146504849674460168239474682240202712470156227107908354512955993727381279613633579333815182323604560134828727805442938916578606707333333261286353790190921616022191212646360382321220101975970933557389354001783973284526642745533098255375524726820066806613256473243669757804815733659431884912491413663028007476085722974367657957195188720525654539137385551554863690449663981563453903627073829338176150956060327959600830012774778649244169854887850696018065533275830857154461828391095084212446312817862381656799688739451444728964546728361467546467744654049371609834708744399725391174493194080279066272485782511554280602531403740144080269861748699480831337728606915975102248029273117919778541132365123343783970641995299022253338371825339416559152445148362538579134949854685809457659243797322836492738407190158408800805734895196202984812322682839083244225413069443685256995606098032729689814661137568154355333753075795405208434482103079920581136914160965142208697125150145104009278560063826654540851324228354706975875136708579669470724897672105947514255904939752038695382887755756993232731473810381134737449377316975122250295575724044971939503290144284989639221543495047569497410483663348007575648924297480192107306970359253360416029539543504019797100300523539887155349699321095597540233665857763784012729781024398903048760456192596435410811331825030894207350999848252494357473828905024456326329544041286197508281412605037322802449793024426750203832662209685873391686056574766346645667968363188122267122620081766056993314851547744069362692508080951102729771748314127134509685310804267220064071342342758937117747345242158737237391850950184909684123679189294108726764433853745856980416531252120848294689750307274856414942517342635099592446164929562519940748302232136277357793515790653577706328300312826232669117274827967161962144675948409656984428406980170627963430412713065580746328840178604802928111398815288726678403430536952512553695185049119582600521428424124567253737673248433974051949892080075521534680681565032390822644916477474402471719508484498639416028676525582882938087336876704228000970722067860986138034045640174019871136050912083797447754453837749420096400775495272691423029217145416983063446994495155156523737703975703778221899888956216506867154031910283036374127872180369652052957003961924823609603921144144219566346869447698443111545095340269478421840749689549817935233900683314999972526918688365986115418945803872028536042184302598550260502419477103694726324251258409009907806814619433935930117534684259288137493893157366103782233602381963945998621065146958381551692839568167129750149114992092610765986343772512325227513456450320261700485675335117463310501044124882604619959981182885268975329270857469310858290526355529763666835929425145423617764601238697033919666037106878943759057985706708560104213111615739818218384669917675000249397503476241909677054486735555531569797061641731277725153495552872769455694343847199014033844042279320285038629625760042191662674189166660236255338541614836224247999306858259569296262454536465007159685161899845795514021514810591797167403061254949560293590184947271984978708394334344197669878213774779043504517246187875310826465532325345860788207892282524531639346226787464318095590922573139839468911722790283800750576140809719859819096229283218358252791948768930693911242054163098845674624499285216781241239228837304580643545653864810706095620800689455364280869304956926501881203109014656097330603708027059130347839924079921491185133336372751525606267519119361425006761957514434176362502275380978343969759838486093100489414205353143402085464368751208893071571758944678333715912031139105284486112848526635061092298239550205180367884207093446009150808418236788555313758368308500437984344991387093256191122841733818583455770411705291231353199171211004488931660038573655381521298847941539773210487954298356074423093202920306594297854550465256467515905051954424895478708156265160826332427661530129069768269517434834589379752239505991652440507144110957144092841588930267900640058528757258974711530109181530524126922317229999114569257423279983726822052308388000308856740288083389276957359075996614537431270852848474730868898797227438244631262868674534328883050947490720352978315053413394019700424525322166156968000330446018019725074498591794183810994504854821053297235330580995322901285685404213933879714796323273181308973754360437103790563238826200615441375519141819107420689049512401591894186146090932779725486964661511447145024454965852185408147669691626647117023483713799378378107893451964385885150120147958764189513631559177913863771595132544313940899198652391014132058227186993589103920782033043499312711434828889118534651499479206540703395263356229393955077814011645485364052278711577334583811350164093729078146381532540081500310339742540702699588965950391977842757616346260517467826422825043704021915610845229029375920351404519038291879404470257253575636013099371276893054464864100102495159611006672231501861336451644852537624023174652417865932430755065086264097455002876175143903839309655815245200247080099268176252442055865922831509017411513583176993861947276822849727789426297946629668207671877412440884561390340225960253474229315022332680337679010170188066665391285940397025783825702767624787305664387470550009826701742268101879133742336508189463322766936007350768747790905903922485960066460801301901459203860855534134478716756757878184913892348318566130451735625967713734439098139116676547954549086085259739156174515295616719853245881039562496125541876450987803548247432064034174900073554624557079449041901343174143114050135740263067938919398267572160858878131203431019378764392501673188738240494387106675968925068941328277647138911145326021769584098584057561760891898951667364315534031815586576541291834183017307051854504284851248661066927045052974182351984289157357932438480521316532284801753561712122651828458941632371569701952836052981466742299657404764903113728697558929561168853129307175113865880880738851999310031938121023796476883774191669975058389769371049779020255546598465858097028090047100942938154590643576050776576552434653126954414212806473966009235442608943373537609661272783406551515434353858330567635653999809277903876647333060207751646847048278591843069470023271838918337849968155264010651563853173615097009604590507935382155024183603408487326454890492844636305452296237478561835512861569854180870521614071009483617140435218933227446421825020498370903431583540034382681952300886130366934981607439569989183454618936951799921503737159203411840295467111115953859331455069890551242835923513906023336514720177597135458810794945376216312249049218573083672047994994345857896335894778075380466353579567821250277948857127199562792411472069626288617224355226128961033518066047055797378744185833168243351175586699463316049187525718570155103337468989381941908439006622698361689590999007297164260757683211389294216040378271445161168207440924804880236347849774367913075144095696187896880550572701540609054811282215582728373484402326354076233992401133649686299881303759663339487196857232242827212731069546505277159463794967731946834269538551517130280290728605702054788349188427063822865216804103303531624495400451041282479212300184071240038681458331012976313827325976803825050531722085235152882175520320822356534255669315410329884459438814026102725532140457457005465441732338074657812592669410886012630805373172814729155962414843911288779373735794295848881272846084144193457932997155037449884026070720440675444359845223200712169020479908328071621777194124073392699858200436615107161337151229064684031877869925251177145144267699609079900390315179813174737022760856541767381208682274266203113602488334645188897076330489438481422854054765439332775888345192719373983560643621939503368975775518888512120881518803513621580338967369610744341188578266394899762652289561292365403349266342165366031343879483842947737605761530936802049164681963476970732676120603024788086348388048274034410681587635784961111209408828430147921093573999807237874812233271380361639696435085805395993269683458926893750783380216847672615426620760345156866397157546701456818334823818335305962308230105915265732436395449785992105218631883523144105349522491617341150155096885857612789250057701239175928900676917452827347300795464642931735933455454114669682178170112299724744933270016752419493308718794274114755691549901533996482332418689806132895367195817387985163609893380242856075780618563335069843201534692953388864642168735770067269081814014956136401239579866186315603901820002781754163220384992054053890550536357358024080153553057152543569533186520091404807000342144227824222047654825030414882719737236654690081208185396854604148325545408832181889214873885232866650703967169376248949834566057807769559563379604796902978535490783083184150153317130778363746576949236102106422361494183472169791020331337535303268340242096751325682787771615090932007036760187969783139828468307910476167052480298320233834082629690709721146672826316511222060080204807627204394453839844966108130314053262213203090836537777769792590749720562898723278932557370487398687519577252185313370686577297311144088743508663117914551985307546932598002586477687885958551657990344651907500815655996664315446986427880578921793655209945524826674740843495510439052980007263914505571244386750799332990858595824729811999763091583243157442258010601868659957658629991250480942441624698379046862239480284038485346981297102532707919523094304564745396685104246382221712028680822662229181468553798415822169769770216548842301911383372707231725603472367887137699160034004650082042766150826316311890380778534584202097069371568326789263955586515576428526331456638710886900859132990617416250367879578440737112540124445707791413648848591902774728147503076956983108593729363878035112981671061802428778646408201202347552109492328184669695173214268225879102085772387705311421107833247470048653139232110288849320549710519733164648407658852343192476919470344822197674221999613341116671342657669749833032568387089776274136297185376837131297957809954780430839552504087610321731494510205023581798333569977671644252574785938210202202679957136697491301984067954805083234743147342841453186771908084799097073838982593572215274400401652876936603062052309664809752937275663406242022495950970760164210788596164189393833309239420754231734654887229645157466312125235693805954732983774890804688249440250553710449603767633509217719983681494907981234275512685330209116305544615150773458913598384892610496710765640976556407607545653280306112510907273432403325449926788170850197003577566494795988141504753391811900883850952415392679544219746926143097544124733764802220125827794692326968181575922647619346422482870883474130585990611756829997689266162351737675370630164715410472477169753441713481706176904943350646260039953621799854762798409574586244546782328934348882961160638522541699346024881853586475583440994431220249608996070865687857327188412894301732334499821849861923665896639644017931933215554067774870869765223419691945550067430619999694829046164013536522186912470286751393744481400875999917568126708107279683202717121568586611612945044135318915709989044499420404985964009252719889671835399503982581774778358760526596571702046426422670546229520829225964926494479463406212335329338307369757402811994725545753112630613878808709919739832403365298635003351128178487314097856364715403020158922935020462415022924524370889117835745354871846666353580789620904860676839446980292667529242791312900442581428859189821524093952995550612093896128722739446036898813046105224159078215032484109780939201333796467808139707299058963655162929543243681109262915279295629257538479120936022233041691352696981864177841405444099732236171787754105201882556133066795487503583929541588975556927764897425732710396467950127849480655774777939082613366697097850705807273502835726721853265865035221638925055360214990096313807975834964574117005351486387110381058110368749253372279714816129925054485270627076896626772637300143111983686727730832682641732746357171899188460379759413510552357050801182087923300676784296508911616220788816179188495202742804103909667721103182552712059210266759341167614013413017542976335853893391778565273685332319231435688644579957081857858349560555108188652473023286285127664327974653725529773982142967399263498314975982658967500747411375238525166943522027595058717365462871544508669633641809511198580980379321469257316995915249986386529698569497732262860453718534216910622892541397498246034895316334198764666885767621830240235438612462527483200695788229860253266018493626908793370658958150083115372341613961480700812635072485986948286865879701995529324304768796918535089849600013887545595075125149988515399021909916987781735455875372211496988600447124393009138059356381033361634382251141995362480246592346715283120261498747993575675353189058006805687705973646347266352961741430529034810034842797625644716332651571908940680256522048166692185742031876627197946589870563409995952487130482601142537584792944420038356549652272754433413464211187581901366726587235344893826171589558510001242018158662013428257375714124691778888478042364299485230675093703897815789167516817246885581922499403265141237102174414529068875129860688150416772213583513588292668032241949165750082446905302500895977897388851300489435172415628067406929216224340509803348460660978975094941716118046570173089986519652205193635530781895032888751938481674808282486332191150728567166494060615132227493298190795968772349270128376232220717406479506294652272234671683156954603454577155079642959308596535288502608296217810735569807519703119850858685144040786433701690851446547889684621547379159713085552676392211103115569242399727355888761742398507171241743253045526048132115587838286309798381201972886153942008619553490475754398746433200492458114837087262751946622575874281989813791780484100424345345042564150856161173739491076298208992545093420092563862107883612210985983894708034867060303363060002351891632357857802664998263688156319208953134313263878522541968672478036816187347801838013542635499710352444643754845203788981063609841455526754434362477028606475811538330915439866252565014411553618684888381951575883836318681894595785087652752303374185488049946817543299735748964585057823998135236268361260797006632791400874093556836245557176919648696604477324750584598294644979139896435106821322932447368000044339529588768668710046720261180904159966840153681764486669100171243355378559113975667206737099858208900100198399955059664310547276439813460225807594881893449516997263890605412825785346646492180340545291851650531738363488807913891495838958637519264884785135787790481303419962995722804655361584558172488513247123384407716777223500835767007180880453817772302946377248290258091838061700132226069711719474115412740051078628239748801060866354215840824863722058528900734244111294910440847759405895879097351080732430405030283208615261537443024920437929489147098835498698498705600277525350122018063419493062748520590373550897777005475401410321961558833656092129908380532290925103864788466232204167072382790964658622227853185398904103350779059269900351870297279785976151506872874374092724750799953364393931469642521966424208551372698067394594698500554790040306697415461607187989276412931180352950038798956937310448574351152180973806776540688876376702553406858372674211069128463440244769120803204391481371362741514467510761987687594047189397903580590702828770069206784638066544678274062596153465856452727494799531504463633019224104006509087652265083578036014399206378798999662528302738216587164798029203976128748146760086080530176158862434864854377012990880927356654267624966877065170521259070486091333367007147974211938901262904635595278121360278393570412282227484632976991324796308082172734696073084494849187109279800028739367943244959873612420405734837679145411597650602709186056712959393645980672467080688448754074804782289662466931662524334077150867474762692043044712970101790393435002159937155902240032904976596323935493924737240188940583123293238191062207590567940376681522871905098450926388359909188066941609881476074313616695379795420402715303990637018594879618821204901286638224141780699246485923175862190283377764270485636291615453721263791458457376977864784839212467572631416012593154553353290272134520369811521984928073893396936773246671444921856165622007693976428365931428250262974097513409440164342545319321279525407782382635399812706694981985401889515618074879776515096824181433785726202480172399275034121730748500559986696162164259599671335759439225723332635322603304105211549911678607591167496058226339708268468333059058643436466127986036456553328119067595535436626828478233983989105144606276555751970905683517116222160009472697754520047545194747348816776612932273759711326974573392507429705437499722755960268337602767088505597108311571000291957884268993280630371789573991953753604944380590667273927397664621549699558968271733162218018567464740389563242301642685689582000957094932091711056526887049250949011748704431971819829020583486135265813804658222048905971817267459017546235426053931374036603875363814196091104483491540215602675033362062831601019756093278627752251970488967916655167365158253267419118058505784968396101827007895979381658958684830708408557049697873832626373443092453735345725875909913189270932229803482137762962304952983426100720284887636536106846616755039083627074988331378972566790783683125241811275668566813094960877439401724076705233209477286673361441313852671004527689305882857273062647792439044505449827498935434554768718017289400890506868400196661394360726110268935114780577036899416290547122611672615648833660980324600133138272554894042776916020556806518158842899783211018864341004633685652701745310173015337469672314941237025094129566386494274429238805116783601920164799842481625837466822939437652051453818913988030506625566322512035476061543048726119611843329396611476500772597119909146211301594326694224326799665665357806913785802474869391017711460865515342610459980705484467447902508110803378299964042336273603997339913227844180789392185981745488733740928992066511680849022382135844245962433028022991056889281616972906021595624285060974374851706871730034656254506378012210212049977109792635521947237826200315473159997027626387114422005217670933766071308316921812469659267387175357237585781830261916625556947289967774713264136002396475562761120723320437164677405191177955750599660872797189879884528191522918672832373364198726846184181153014090661485646045921760352475783356127633078580763167421573871977277287939974517591386077408532307890491814111506793947294887830848145603290299655709804475503123415603542069068056577493086729548410903350634605481848826609724530170499862297640388485975289425078458937441479499500768950750650512738926123857587644676735014535919236489227439553271845610178336782498880305539866160773017090410861680189726574129415615918309514956106808923709283466184280409450367555954213501034663359321466197614435202406148410833207731641484188957621656850402281356033295371037198500894692641437336404044619041302984309594630836099529779523808263530999850537157558885627400530125971694309886773747762095742486536276957898395229183437777273190019185272823569757736331942546291151428698743084716710125298472307489362723788772791106203103032190686097125304613071685879648967725213847903071941172723255326388677026369008175281147566379805077681906901146149620030051731331728549552113929399096063120502331480381466490880810084265728128843823949348393365915024440447068695474694594967701523970673269346050398215782341167203235870306223065086885939379789310586505347055909803800795870450934490542810051599332189548723990638720809538207868476073489598062226676033798647188407481942801429827878984330052304298665297625986417095213308983010666634795980035390556778439216445200898600159049734445332941557694498876202188789869975700430926357633621175870377379930029797724707716813533831108507143969921465999739866031184402014930474168170940011402839823789571904098157583402946081900796083593652733557155494608668300136274795211046522809837282259692352736549112824984319257589461505331955919567632692645729202537620087888642446185376382165984471073207466118212443044533857770943877264467666950705592495529154033799557973802829219110814937333200380001510897286265893977571357876239634546450210204461355761032715125963878221660885715445863910625726232072881868525237125303367583457489088886797471624726423652760264887080234426253450286970636303839048952384947169668883720078813893945151879507640417365679530409835319903368912330655972172496962967619484307185629448273120464630893966128708262850675696970870230357757686062034303263557543175150513825375627091634601272432452073365922155520179733906726320605638726690301969439767783320345424932121935461526166016386994341157821389745084978452611588454108362666252238778523506405293820674762573800100915253343468017999388810394344242510521699412170596583445112397790779223418316203784852969278324846587908253667283443721659978817914329638431420977571999809723600397161526096641081539310548966331457273840980392481564433893425454983663430348774576964616512813399402546234636703498782696391973246883384028188969262870269026164955219248257975345979107094125715789591332425276926691713592269676259935193391031396302641389098883728298264768246115408620290968936244246920255947046624458394924985097703525888245499268188006468386324994528815749277141253071492905328995012927147427826776479300312040569787254679907312353394113583947586119725758856074857849992636029399030348402090371787406406389290368615706001574208378247950845160848175720432872392791056512616903584946295046248109563502469181054718463177234109181509778403004344524363237900379840137295857632761944797931530668154962691885198729377353133974144750533998623026710896348408312382049011921319583863470276480229840717470393288259379519531884710058002470062267630722913632127513058316978597629298357855138770490405797504808456296661486062303772868693030475271781114413841767880075553306154155156691042563944451239298380643051997577949077695998049000252216463819011653311729910433975598558283754031527095072360776748569964952037645899360709382734383561184475562722072817702698471289171291589281233355300998853514160141867641830819506124398500181205937847921355934483317473381509001523955051511789345912258410253098954671592641030901121326640584951840193400023542947463399734416844339875413562542685585686403386330965541711671668517834446344130275132727729221180982271206536461035129891222599659900336860232886992637932338144550905550306433209620688264980243046034091372255403334869995177883330123284663909053986030784215062888827171615190083346458839389950393294617997908873369356731387858929462654132503358133818685149853314792068293362876475190979197635713568405377883582867464014766503700275375934554952189657940953748600837846606770120825629065485403645037261655817385069499055958103813902339305975405332299737140654065343567256161007635223030185699158215882556022019406648358043714383106100943144716385730617784365014746826340003354678222131927138477255588771789573143721122993153771959110894279824369269431646854702599630778271403748446369226717731422246051455872510353926655642739274091621966651533058664946941235374584754014649719011984540955823116230944210860981894349198758802883381144627066052439783146314275915141595444130020961601436871637780822254409432420468396545854537797676332908855412458079204743858334068644577587659706526713562063290820180783723647095933273255863101796992153457890679923739423764563518259366931553288430221330593534629089267007945649992715415752914929293579581213068168369066819707753330919728000650475249438600570517386824225957733854803070791157380732519723019287281742036462145612559449707131134067928758178817339493897167474596208578249294243153912319029774912892623100273984210255431177553990793855974444314565869379107884747137979270566181234199571594388275432741115318585430777620460234070615720120545466426724240066327613893176908371075081084460799533182246763870110275645159271774683439348682842987161517684760495674322598160183704879859846765053593185964773646798522933005625027210123462242045536710867766042634781674652074836860892761729943780724514709988720758233770945824569091385296880889815620915195525713813629294547318535121143309874829048395415217219936988743398023844829563565807233927716259091904161163406233104417902975426958706579231854092172647815434097801983521022166507229075631263331107606806071550882921116834553005836303893436106363855559030560555286722014637356388793233754213765256877418931465791451193408833558692433230441525739653723916409069008259349252010628794612371043323848211361682484677403445564753411756909236269482750324130252065707689660866080761643215314188262209981898078451963452697351567125183099816983865168156362146689724352017960587862186284919938476869334486550416072150511328749255541813396013156944135600697744229137400927839449048000905718670297584867163437929107929016153185614027990197684836515279941607107268044135472503414105292000571878828908305959256284564765590995964829446889946877558725803041152316899142712252420504274928579651566375911927159766635327700242738944498863065108835315223349275579618106839245044059719080539460572275579230480984552871143628111455006192549366332097223311688042668002836410069073511802132409208314042733076378904437595959083222483847231773078586136058981176851820059738578506302437737999265565502735228887968963530101186733332309283828504302137336750482788113477722584978201807831696646075395743045026487185115955329468359840094204116979449452805442519067503660161271280267836864286804807111259087844189303529210012882978796480045992559156781879611391994365932748068836665724463027301111158479954418067679464720843799298941396985799249554674238902333338587828610681563314107638701797667434431960143682535578176107103145795009862708156698993341733777738088887470254424742968790918192524715094515713071543504812646290965912743698382139605481710621380145080093992308971803436808878572191858111510636898880081151600083201160437117079145446331125416695483868570510626167683066471524847675946425077482348998333752546352696858174773369660244498286415791408447968895924756428419827539376752052687241054815975663392010966803550955704147803969585489793685809731092788985806752475222141272965215385943152422593838520249728064552692917119886712248670831148116757612433116199552395381437267651596211167168362646445544404235507368285027520293790151409949846341452834081689766342282733439943329573667049296939251744707559404539703838706737991928339372117118256126979149145542958966263409163652661975822283735972391024666297086065564965065001841168373006884910876805961249471901579634797479908504542807210225434761778467386077348614652948612108195505082334232325845586282376085052227728127675920459678003132510859335913683344533840903779209239107016610779236496345193541346096757905573711490159556662063167258804213525264441631190311136444192275662602075448805315399241280554736026855807441992517868630741996150418532056266619046049583231817249129448794816845815466182201265410633527993170194586625736667905574908511813221641162995237657837069640166862370945127347960794210879938894364149255983462556706151115565203093542881720514362047685599589277347391554236092315366914676387984854729071610996223327604013967288656349293051727333077919798914010444204706422401278652151094420168417083035519005162555770665469574393091834062783654200850175173585044458549890618317921905390999477242007503915499308359791544754764046166306744180087319645069249990695223147103579517369952965571069528991135665166083154878352498948011271777565285032089096158332158881854057227945845305653477162159194861995084041535125271990532498965310474806029730139241595433488213422514187279444948399328415282430039879993714826343777204790318579871169040166252360819905708026202043886224547701219526460849807899748295784485162649873926898596755114749747064263065186777401909127774886912396598683556962963389521672074524482598101005839339978317252298468409730028253121180764420054959931974286482475441682085215697146494041983582953574191311398829980141120177063952072630309562692457692154737524471373261304221973375472517926762723603316352875035860513308356893822384554439544624173737171247988048052735754807204217078911842463947730915924198884049614666342573483576616702197447428051120860231136424238468822094066530222205022578425632441558852477985987545479759155601511440826385010685559881541000403303788483951591693169727499797477077735729265110312844067009498134135473334270228966766262291455062934950499154734501199737302175276019455395984377796839919604253887065186705604337270032509508631032231369951026363803268355923123955480392517439632732299824512564881415237302943330482539395690273746490486613744261156416997045522180489520305967499954893413248521804067504299221548273830298586438749576049299298105045267510495153171492386873441942028226376830526512085796471941861903275407577765316677541147714278785758780233554277977756678783834788577152425740155763383990373055541492686844320516162720951265340607994600275354060138017110281105156402426393288977477145791982088460790987695127739227195674537709565476316064014417158364606101772993682178250809355009703207766959113095909157378968089087740233444222219629335912711005861860519413084882486761446339634114539414792489105576446478574621738407429637306178554497384857565503677813591593367115238038781218046393236316393584045903888919794821004577856025622105081180028760668152546413810333722502918367887907137120451336659164697997999962661918543836217766108843120528984378001115806830612058288915817324855483397601985083650675203118905953180410043149750165511432533749998127349388354063455572959522503663440172587282284884397616623128181691017189186571439670443440993187984725546549118457048933587092753258111763074247183064967915472961387994723323336949783841582605788680535942627580553246873825252907803754798791799870034386421087012215984495233874410071535759835915743126927752093951176752671720123608530404886173266771425399967531202833365138742766421561192322839529042557582644659034060771274944272304777892748753283142579838851298429286032055030468861707449275349056097772824847233070547692014336266379160398211274067802937426272882956448896905999321324086357391250734234068084123244758376863893704157038417224088471225726924102976488286433534103449595612416920838039630305394686868170154187077516478343235005038181327300163335338729269576291785496039550840580762716915195265300230640715305565056347981859074294130247614945940927786903322351774718744268160491353480729035147267570931797291820007105461043621357959231724238223164349874629219153065780242584517240466380752583579473522249709834846145656441786004104475049381075487374804027873725126800354574998217364259721470515016174169403464469587432386402579948018841349115711626689178118245286988950747780330894619802669283501807025969166457939041651992326592649582674970488317042314072350165748582107578660553310704795097443727532906877335077255187125166345297243594422257847463620279300213724765447093711612407315790580322043022474815051262551071087817350473737489382832936864464355992952654339115974614266118785139643527956621101016917041833414799648688363746745695280418378020476274492625317193561695253960564085785112282263017944596515438377608917673919365764943715112212986499876843250085303829090815511489921739310292179592826559821907780613039089755888555246830688017731071296378219227392390340406205724961838637989870901531070451539852992460395864109403617681464711582887576225780529805169007358453063695430921033393646863262513903837226171937344046627912301575820217650988767088820699471015575356155409020599291740884134234240853297175231072904048683048549160471544416725586587904528084652559240399910650326411388987882099098745958511867375737173744759261130354689467113672374415282665569330508285259931421252560152954545565170665873360412894250968922055814640948060009737825133810533285535788271030617317883759355161999120650548498472620394412296596068457852427913101967108583456446350922885684408675963774372954131075664547314059689280425122605524182950311829661403950735203485541925716002818335316458287223486426656338336210378818598515042604130488252860774353563732888461811044036490575483673723352237147711755567716341712100701295344885614612547602297369353159871865184989697982033981692848158657707332716841139860092277251334007884802531891807660574707595683440860295995168126190145232480053825565967598846608492439357026347491486346629527051947463176456659251628523211565631161063994886838338301214976466733484809926663716957335489797101753506427336087332778836723680148915891810375607119523780474101958335877497579095358878344150905257393944392755712535931048401029371141256592203656224789550355580608390171496902989416446028651526734768428001218122135962375678245431385543542152488413268886881163400159513752267701120070481434409332531062959664282988547260701738548870002917607369662243232748016406450986485990895755473108198918306946805192510035204328890960316356915481697353841330468451170027371780557592713604266684952788239439146344496107105682905519692994882378307019729246278291255846195415942474314087845388905077311735844352835015835243321225974009595124050768050243477050506918705936906713908712957204558017818892618327506443383177397925489740692466145660672154703094773766174097574685184282834728796926044335474032595877065713584952642173960476944793703521218967477085151780133778012349576312344033226192706822203244534121043379699991846250608107168960989913823953762569733925552984359328354449215155751918266376743767466854238764401338770441172965505298500393317319047307831662872715470928325178478957789693694190580832874863865543214988891151399778629794335783179254321392861788858112851751055365907778206113568442565227114460264828039894404167301694689181473217390382087522593672891215003314927738585975823978107584433351220305051347449937048536447803886840719884956340419378065894699237809642330696510647516666508077359756144955661168214217511345845109586198523542593636886507141732630713211708207090605214287371197761760126437874847388415053722468834159277917328869134551494602478943636490339308711083788611352864993549349964988518351243331492362052574880982929591996109215544991012981942697313067924282013524206717179679191597910342911841869913663970190922023204229374740878417045900639001566469195037414784620659174782045789373122206943195334347004607715424585710928306865996476373878473143329365531197136824632525181460041964758423318658297750056019943265664996398352824072481700331549340965287480015125853379723119129502634936699271695422201991827108575016989333907226062374283063944064205279028742598016501602683287806182396194727321168879537415439891884341684407764582285632037833465913631603280372745564042887655452565633500629015910946147459165435100123840255564979414456894144196232497425899308570639652765249482845184158175940232773988561035946267299386279808894866373191990049152214405374313252822325630459368235236543497184498409718471390561246316445144605014400717473329772645211821812445577842928584125041428149770628334204833495538186069640091559292716040472989568716811285273480651280496082669333434522923700314603416416008723776270883471415808605757358536113545714094375259088587842260952808943026921004380214840227396292193772152523376942423014771277354724817328905062183315104147605813063708473512633827884706042498471266358147777838554672721203846371032901132007537123250062466658664436764833273614818960419866091374460418737434438396181700749596261558184639318763912132208365946780095393586536270439326615562395992682200239859076160557812858359736336291919510640460755515276537144762366012347648833953363526803293370594406540525374608964093186792216364543941106404379980432272490041304959180751226958951688919021187409311165417530235538291645673708363088029186093579661742824911011762054991856423899111271642632006247000245972930323479893890180147091261632255931306976399247131178339163622201185425480792605171791176813536011081212537351112265312236169374540792096778058593609821994881865758238646572128628677009117722762458985662544535470748502617025495945396670055044956006144538916628040152506425812194298316449960094982058774890807613986637809430084369325897279268410042859326869310299797097515138451842208346185231635223440811111805387012626674509667293507353174625185004797742273699084144131036502271532063683582787247767554529405816548055859624220658240226629113813187284560514752635672092082087211994762135531220763321911141757348257258208712080818412077408368858135045148351655262422922423815920204050454517579039989547065768777106999319268901142416304249276963305492278701330676315161925519343547108605963547871180314683828517215996192709167691062242507774471024387098349274076639219862914042425218545197636207959942004071164146374947627905714075677108276025701039268229746446041244744260619274422793957703736817802508019579773961473322677394882877663949312782966304990397142504899933032485704539586517192607862759182828779836828022967393234081612432684293903038082433880798748924382652244393586293562872996822106683549686580506197175741336271546489402169719786093996631141713535994717737494881747852981634798845921139701674808019147608078394217267475046062587821008399415340170601438041866229699826461691906308092412324902796490112675370270566939365336078581193717547237366513249432136101740065021218246433252286806964710796300664897603949315500193335884871406193032838679309159609096420269810540791928245248320514940636184340807371149899915320751577884855854510340056659894866326069737732201687981779244246295883807063051159665430584818076992393790015623799944783343259172888462659823743650034437645807852667623398147558035695193301606417671038737417620380304327686762431577680457633212362954247206810757621785353916438685776317247679139739500227775083777261971458958479238501787785084211975254278977161376990359113372288121087921140109611130168798399730006802847818439399539647222463398210854968624363159543658163139424731507596773670151677349675744600246250990004808071011601374934445274926155467618084221063744483220074534781671625235015031435880747426407116885668662850759543387726382913657830942084417331186795648182679142912051701484979948452381471419786855532068627959620609820773091583640073587820593651740217496611368099273391858676616022279233349151163605773704087947494298941893153157230761966953413651631781737044232656297953074811600174893888874116960127176404775008458858133336133524384657342217847766811313661817323832202945627509684706555202885186005147421216534183937177592162180672833298205102921604158221759822948902365590666458335994375605078029252763688484907307426917916794987670051588945092214205296460281517172954414899984980674604441985391200586808938001483874785786859718094115614097913661508350935223640392233925913231796691389251451030216581263025368380133852955332496168648561650196452981438851832268461118642928887105251243090541869800598671973370650854320230251879709543492578260803009149843802811165875821155419440825670780243895833941713594648372726755254021056585707251856121838705564450403484681448044274666641920240957472971353536687627805768272897337008242083583170823111303030910933240638621827599518779751184961203347157877246651269131948210602737677668060699116359142634483110540219377283599005628623762965845656517956763069985766878795902694787418100431813346245876045002036234849989150790601745095761927514357782427158733372792964904761191933127010936523565628293776568349024664150436837699618830994160382362838498201098863027465698766437559943646564606801550598055182914739800997342555503013308234425798611454174268451620309221024294565997839100017105388676772012449735661606770827060652470743227697432857593941915567251975506153211677845835847392060603839327835749951228486406761372553984236736140896143177778546685869396645959316206126714324152438265843464308267378085895194938157218639147253678274448033628169935768501316997065103840446640969232399472268860023744655299280976384072716589840973817962606075874826973003256883596784807876066352847421149112042966047558151824531692942555387614139388552271947727532702805869944404693068501686728687168157289928530993400938014983761471433538855372046005061120436729617869457162623342581525756326497719637607500467625476520090211134601959846094272550151218324589056591770574306692322084892734730699017433455649835770940900285386769567292443140782429640461518455049566967181123630326548471872437425260144657240415220311962366978224127132201588235408378088592952471528612202455749900345353729697502813085909742138180386531235806529234425832064306307191798711979141837409445479788700634413776918025295346128094797338660952658632453858395109799294736005076788678606513171632352968688549961975650204481101949680682016927836210480013373827535906655612249258251663421902439365270239685220787356492366461533471518711445403999774781368505773597800753457957489595590675843541145525206792330089437756283776328131412000063619075904985145488986047959206501726706657793771889290749343068568996434542886082873903442588291732397589091768761613300575911205906035717525809531848051722268417706750835533105139105443855804107763566713536700401978437999540339984199061605276771835782340872314792945829508941591150051120058633821621659107936791949520651162765851163147960713977701641308760367566539910211152808679106478794866324226394376717559158256164748623426825358177750102255214908624395343842019880054400444545343093564346760800135308251028925434463030807466884986287164407745203409714602909112159422670234882367287879383273359271306548845587782059235420235007764809251018176534068010722182447504191296494899472063932199701636245598658229985997653561411013942610915577400611616978022081728779792318026984396449457405609128703510997531335859254678811906341574220488977103654780920164756726212627142821243651630433974583788300658514226923913046692523195585227515870258444600927813760718088517133772779358105632913378159413848304734572101063469362518769837822107926493097036333449715971656993766669598447227696291218461070669396721775765258658666245657605405289742757603286533288517014426656768432514719387295776628114589400844492097564809335760912391624956442546197176761507482346407977865402599376219247171946276121610986180370440654930836599801493821539020082662540811166610280983831400781890255684453268088721247638595445983158497204164251336728094638465893619489497535371036032857019283905834996020805407582731801273183131229479231401709829563985002832269016651066961879741805316501633946237916456146926558702544226691365430015789863504626077040503198587092837694414678411442187629256969126009389949918152019279371196781510729238414643278588000237066088363718036568274815283886810596044091229208034414961028237200172352338089925110235411286819805594828822392879013326206646507567775670964167860005628641056473990877932052369815163876936784679552539428215588275910965675486918368192761162373425296138555770766248213152084551554707101351766682158491286542957500877873803459929416931833187314086775667934285632984893552441307204898959597024125476913953497414813084305718219519203183452036262449794562940295958238377613835398357906852513283607486390422515365398789490390944273153335175870365621633102010855662641200917633027650548105220585331523553298392591918131283738970481774801931461192007492948734513605953728900338038236015758773111841514749873325086079505938090530650902121782245178484193756732763424650913031992491883761639532960891366806959987373442192289406888582681752783358722894694277521516598033754295406668734820646283107644674952905943893162395749060685530509481354688210095039398601691938723205333299432916258898167380545579337732888793241316397104626246776322631823055591132524662047342635006479364620170927468262639220712881002059384989207501572693619808068320894237292785880755339328159551630212798877943484278139133613342244805079937497099261542818009349634278088821502411150343075331376107641606889806215320767224533269509743728652775305262459561381009817861542120950424539308383891811197550197889067110808479280663501318384482437160942781287259694056092847768404762526287050826017918992544083993526179926228633325059406883721369213708762121939034613410591089608491836334640772560718003355303804875050006840942552307255145983427387212495049323707069072166729384085142974443221012035159675057362309476414759140036012684725357422945232480616760339360387168432293874838801609450458538677202330091408203836680900449352599194223571971725132072487110714287623931726901944700419185974546463242017170750318194127432572982762631634811285351602808514698456158760407817752054654735393856494536223726687108662248029199220838725613256061259500081771697473791136459304193073868770641898883494872619287878690091423012739492485011066048618297091532383715919894616342639720519810059140200970502087708952328588993305186715002630187453965976602983591822940060246590337661473148700640942801174553197530914034230172722502116722334440531248259141223387227637850764250785526190025155498686649899998240066201110738349202103952973552540098511502214844964664335669607687027828048225202612849455551883054162322246459100671829164570979651916005958503749580336469262438912224675016042051049231564186344731748268710536680762573293694470565674834477497218409958548646893240232452678172189738444708426846640699911752766440115875766263800314509278819013327109955194575672514010951837283942814606045150023155053060204860133914703350790900165712089593580778784538760502515568317517526492030189551776578998464593127936879952644539073699950907642614175303685180323864270238225902961681296881809826589902475411954133671988204718976904920751834174982798861002861840817675552865643662230632630916242334889919716992384209519907200215915341121230604651032025581752439462180151975009919270066040568485474640153389807448379501309184854428642036575514761451000092905722604155244936275033810663601580808568919992278543496020013453063449241128470098325606443498970928462683564294959071776920164401972904929915778914671429100971235627292742956046567274812915150432047126453058289052690953339397020314500641710223280952254074884264281163646321905478788586689665533131869059662332983442237699598813282791601920211152401341356686588650395352879566247688036825486779244725269593420235175998288741342513242206437543589359226668726936191882509855091084382674983810497505545156955820763253853750651561149993704947342996503358182801815154126224412502308178011479482967211465627759654605639757649343025199341212706797258752501278421249656718290448679908046608097214514875043170352263858447864121951218718707751120801620425526834117881517958398601403668677770010726842009891239227294252733433627287354064158756710503035832375496110406816943039664219663463474292358235577788134186205894262132875172607751656729614953554524081534329949457878220342604507408816320985836963655585570959419000649087553776351320650035882353537246437409880280093706513027634264051571605285335559351066830953140368803691995806813315358290123841685402806796230558376334350417907845829533433960318857391569104752116029454397629515587467383264722938556199715969446607610620349472819706748507495562798758741500520942708402983175697743628075456507470488124387089954973396187964353955249870669954339797301102841652264372344578480985705794716322643709668649757109290528851050214474106719963989278943924975658656943154069886974981051720603936530665375988848505866521963983650831014706383167361491926113519144851304775235606258155906769480907007957030637731575594311199911728304870526961683941504756670767621535294224161763956791157249616863896211067853736375629691079276191494930735499997523348193594324481993157260624988640571473102194368824327925421018707112865069617097423303115943028882436447367358949093377555903409300987012407098171389215409350818309224104146880331849527138167083115019659977662018322560980274249382862928519530184197205187333607741934041040320914125159168537907547704958956523965203348992269808402311589440557028882455437135243801231331444172724785078418991158184941089729511640572487342251372231395653915221649196548781132902831229034544492364995423494808963858489940487199400390457960438601596578695300576759528611313864208168604996591813653480069306880944103365160620501633921664774983966901072664584613940958177911602115274068484242621718742454674577049321225759659077514854726422707060738518090782718069351241111048899761679939969211938449872238152177483160262289422042564548794656878012687945236018176804168180363232609517531776685638602546005296956174667202353691549397193384656042825359952553181364179752203555499671300171399919359694131560770059042046255028678462927470955271371889102039173877592296467645540837088761328138613580905504301357814905734604195359228529682764048393089532758506676557119275931632250550965566984657955083286062557690326591861883561351411199311955401824625385822974726924794256870139475038355352070524301015174209539481688226765676634775310390633898078348240338323974492484725696472897205722291164856935311455267786315254790853455479620445740562465114497791353623828068717744509955530393076507018153321483091810309670020959708577761290517882767933918346421661479538492713024827464174125987923570022694209501684275193623656847108334744522923411086600580412536405243063660035294175606211609416845776601659758303572345202696092079962360774447411564210993483517925015192293532762762065464047804391532745787022906249808764031496733083449226587162076907196636527485252571235574762284240470227784631341724251643956880175219254433373661507138271234381994072834112612179839375096379651850703485648927407241104308009857299672921211743213272638158038057648652804579330975988962515788494930483602224596059586774283640523245919045654994934946467154412537740077278141040779809017834070106034229487627425690253591478485260120440292044882749996871527742079710272664450250974786807264770034258295288443411147381900844047357860358793716282463146978369364915877594036671712114025148116369494727331706223939666879072967587989421308078389582554374397549395350084416018676193435320915560481375897065571308716975130405679720910844992607680293542154299761555516232412993151757814770783330779129009280042887684380517536328193555592959609222355878701930236268716889928314001313041675398331159480333497125246181611351678039949193869376637962000849625743956931797897568986993963241597959679424796295205847253434539412443611915718546945279643762315620163076245531834475784445566583795439917751014490907332542328771882304749657631943567047285712935266640583129759517243642524151841604852919102019699436858381922678479426660886857825720641089107713548934118610842106675390922080967029077392302596462222392366923382377013462197562101764102478065374250823855168005591640083287269920070045727341297416903053359227795773576077094613986391018832834414961902811566954210627536239308665495808003427904766547487847625096805217083998729360502962105475719977132779820109155082992601555512187927941475020424900292857858086714032707243719835092079209922548028538814943440760602236715987049450528426125144310587950369803828272036554403489385366625403786519337252107580847570503121283811715469314889356987195490951177364645096722872880284913594066583261534098532118962153289153199975471496415763419783682044101462776451162342626697656938478993547269531622778999786023653809953081840005681083270181963476143239892035189817960967060702823519673856231479043465970448700535312881965558908370352815972378068675128013908840565402420838567296487573393466468620695556786086781486189493693367477819165108547137324770969367615376703796971268831846668149853239401064361850120238285250095704192338548412613030107781228017899617942123986671830875956307733249079823437136796542682116711603510481633715205622833220003815946822903925352267743149446970305365737350214243473757844448861615003945920046493777102302658387189873308369788640128006327480332759973824844156523657679172488099281524936294837064936627937717484181741599633805654146489527692443259638537064348318359444797826143032830544543344532628278027112808509959678224715945702770307671053538147068339310803658239516622809685745499160589504862816951824561415466998103466900820062615997734274290983255393047931743648354916262213550119259144712096406302739112747320767268178731533138317648997465798279424185805820425152151831346870085673383559989278951894919684084308871768396057353452495466624324399556683415455652541427796121682305181132883418399558722440290176816771216590842693773807774442842865202048995812203065654006084820143479480209920232513765572835159619268765923574330535684433435702638020879199766607514689741598766277701949847363064620844325786481888450920066549687430175129636457794708644428374785983738614978287321216822117344914707757286792257638617215130711393843369982983448173603834922528460675571228639801931825685154102427881240993008040134019500619502888581360787403054974117950548784926869810147570384946041890161828412271646584672186252918153636523941630478585795200281304421463618937574416816672369241321810420199467325758682337456810576577338046399129879239243402054200581693575296020877427580995233375571150600382758534015480602381545102625972759136841443919306300624063504229320364352262204530557920910453696026022106628510847989833317255888776473739829061763867905003300242891962017877104733120388683541269675881542350343211896059501173920950391973338115487688774962159192323370415056974876522572037913976865542503989218679718844295215564298837491192337771709863798734962858701381450331710803526944461842856475899255567722107424669836322910334154054546430242308258686127791083925032785972899050851229995339542193017555058063195966363897318156768146587180657082389112622183551387224704991372744765734778128531056425853784197924798588850608954702958837027345366552168579204148224184007056662603485188083937202792923589512838816630337337454051432474168625372022538062391158843471813325702011161223088923566582618589756233545766183941806686807647069422314745869839232320689319830685635002566861865270759950005788356504488449561597238114189461068274431290323926491001104281092201907882100599813434103286578099671317105284928312020802446747860964010615991416435023920315371932142632747765792659511084364405529461126904584690262639811390159593104724177455937981577222950338569569077243854600086706076551745196898240520515380169066667878403290807782047653322458613181392791804416314200244149247995962458340292288142007897774610702684134918368636450808794720564984424111361405510482995411006753757878286551041706623514858296978136026853620889736179700753790051115756553481615543116872634968771102095002762783893493545130302707522001161113676096786461476776421719721434190893018534305288558753450315724036457246934527914289690591779503328484749049471165457836181491704508045229764466150820295534458063789552204061870151598177351304997271471176378585698273656532539389786549485298884433984798027317879059378785892160792955118380972466366116481953141822145871964458733599517598207835440263753541288901774645495412313990289229289944283479199790203761880493021653853744313906911337527780254273149649273670108114667741407399973872165915104586171270908677213694905882497502119100120462598494582747132705677068193163227286342827973302619630273751668887986984114325432447548089386648557007727388203864430374700056311995009152433889486842151356395884297928581297544705710389883980680995950020857145261723967058582683563559585150254251853670765677048745724587977970482644965329388254680361661955794781534275595642489191441615419947107963468759332203821920788887702681211506583297591687365931817816613248880365285403389998066084376905176128197051183106129913800467413480076129476001567227751088472168160373821595089725784191052096147449486569120738224055102500410153725930927803542462861827854004964320041626425936618137373602812992505030070643501658835751897084017502611795105387907010207099567553557695770280056151468243409272204279950808586090750594407336256345458072002206558839359774175150510536452432849192196048378899906429556643287888939992975782769322547218177461636397236430273499790217421502382558521277891027300821126350298012961907299965754116720725605849904062786194883646530852637429004232968491417095767743403889721287282863631811491321545835901914003048110340941557613678108344992870019035047675294540427751060707526786436663232456233898513877199156114703949159221209782867096080876355075450005834546726916619838511024592068696149289579654661490009423741464448906315628249142394972406749535121925051307699150768601511426417455660893605941520201083769915618809231535024859757406964596656476615751190567611481560204057644481579831101903823517345808540631668213794865564543283368313640394403610633093749590736471715742647757181353389228553199248965696895329243477881342300271992475027547318023980807612915478934268354601092449361047192131508216750545692247079096402942092071505766649591710514137078249323394833947277434282088413267386448088121883426725423069303943231120084613348464069364610069729827242733565027587840944484598731034771676420143732630377545672911354976553258217722004681507693921138309358459953478124368466023361102398535874457868532846136784215324026880932293153986956053811152560426089376159248214729057605816434332049675014682355314250256289893216323630115810900847639714637907795398065285009502370101549512972843535830440036465294204747096098055125173796698503208401750818759638342166004337017825406417237236824357071441826414342971138946579574073916159624635297073135553980565501035498739716414222904545007517357272126208206252492999460869533445985718729281019866741659075365261510058341632306438879674745628866705878693275243753879688885545687865166943406911373638623448999749608845267961076171642756374152659943769026060167767645569600649373382777543180657688253069620608120219457568845465156680060031104913712907371941887039166400456371125368728535349004377351685826000257252251575031326387622880414210480494497035856231396318049568006811529444530624546075028026161429421671716849972450877703133370094222509747450055687127894931687172059781105416943228318177573339294265457346909008226591943076800470658238207591814956391062247456519100543088688315690799140145993953668858959182109384914519333891921891079946361214900627412735009029893926238814467353483055613567319231353877734021785737366390093707051857049033109009961318493614179758848543301332639181221349846462702932413545056247723018383232970719154822127040649734168652368651771511981494329468670879883640228727044059513955040417010017034066127131486918969731271492901203202241219685600275978915748240316486180993788672206229253864642150718269807142200613132635964319217018783709113296641788748460112465409122144930849167654474743319766495839621725301066073080086788398423334602710822485333577849637709315702254742582449748880884618646884032082468328061880852516792182371485661639627533228172604098690306915039785348011426822828748080459830241762886986247864055810275320743304118706770446800361803394233526914941587446599730399325643931832932610368146380675247900753303616089478079474642412337320004072672209829989468171228005296093131175238734680694059175223778115567717176967464352281045548602387287557194498992054356285636085080237621358467819813964406144787452582378746887353770917831345814189507164534203439629117450438826872782564745504024261970155150965368533763302807219174344469800499543555803234737426110612104926200942544388913739007872179854847659949829648711114639848339804886397925204166216580692277618316092759892789855345326424285066894105064431101922949226335707865029339664347620238703704529758582282869419814808970167551250673866521216642155115684076140462661539304916496303606909529914237877000221417747742122483376905246110572204408376935400857653776368504179339059353778404925320995175154793051664542145244070793494214030975861912368119060858407293357563421057421275564756179890494815178742991228679615478853430510749657825214582182079730548069112088691784366016575558692632024512321456712939250470855675327847372067696678924403351677989286582200865876551707270431125289558438358148315614675374839248719111542328383391144448684204391132651277238135761461617538663199300083132907581739539020720685776874625023884100672444126727276011851937409079267579017754325815779433320307331990947437687066172085615666120988879348039777623298434510832787325731383367498659228877577499043495378572850960550449376305987015086237093315272101477895416759878693080672843468364847919761927051337883304757601734211909333179688214654794721292208535132156437451412184996024454483952860487258100511069421067699971891016574548491096324856843214415974496881029853333264041671839216221732715604538258828499428855504081172202131174375614652959232224743315059919466338765164502102235429717733121090689489328849799617467651456639641398931648391234773966883706904781040053196394737058732140050794009612137243638436100578738431094198133190799094199591985568447218146732553906148950097516724188798595849883846221695308489759852485327914734515877414669436972931780916647213677826388941291914039637126867955649099112703733540812031233813128557442253662098788243551425837713026734907244038271397527192959276411197699246795943459777799905727539342604381843645294687158093907830879437966386161325925146743116159486726750760254862668814446727273592595204906109193304661771557591664919156912053042939281307382960464064677644155421666349740369706215123333236526920442145313679451438764591707382503884965590905763442778241106654030946098250335092986872020504604637610352799469354390302003391691132076920097643859852962075904296907552326902529905446555356207534862273284411077134383553185289575608099744588215675108470062186180909172972833261592631811563405799402910812090814330559772383200402625126533689058948931041071216942540303544382400734478044440363299114555172716498282498213354285434065116889246793252127729133019053103397224356450020665576971052852779201858644708503923691793659275359874358238639567538570126149763483675323453453501558182289609672417630566845915998763533868198154634349278000872220117097791102135376066463961655087279086122369356162651634119011085183436779510790349743292603663284244135293745124724428065275726592134565666209491726919309598453401621734544452204645167472216080254350222022776996671766945787809694798597202810025506855496863948433314801770202140142140104061036554882468730771015848346233908702962019705866167990215057164725279815366332861248431656728884454006360463021150383583035956077322171230954839402548648106970591722591094514119597868643813971114778119411763972558100020037601336722839513529740784252971379424068141148746819714622866727902452895146371488868323736065734328055603869301324505893267663308157555401910069399987977574331597609956712079897647544804103230175240094077904998693411074059149617652722365797433460006391431260862649736759803730859493196382552320829042884912198175287225948020817990014407123949802739125223269814274850722350965184892006512273798633036513213287967702594884356191678583651236785523860453795847654107334294652075602426470825594677446954818108115677272489214589769899079648839358088245846648116253803717047548335660694234577752420689139576261860717707595277214682194487872187389746576789312653571516526382472598355677837868621449681500004283182391756494398058378693859748939425631210504766491522319065958403655565952425895005083999165377929293615230605266253494531962809657855918200075976722091145218110023039934386333839748275299786972707328573063726231462803657636842943249682810395883019463113462068874865836683747413259172881002320613706823057531793688763349092762380917320865507312764401015492489272106164136804344063811212904456570065756529925222421785269485081901276627837808257091820256921718068582655558969876876495074621032271766518565189182706173474875479038799810799070344464999537186428417937538669438141032434430121421895374707126034542636766026800918384316433135207066433205206049057736258315273045404339425116684866937889252733151950180976226727698418925327979016119303176071850634002173783611697299992737844894193150104283007627684793757808170326306024270880741150956098435310274889502769155080087451473679533894274529737312753022070545937152611623256401827679230577009785491959891059026730565559838225948499815109059778975490476992609536191019492277156663166246399003949433191225709689000094504551426164615587201714105987083970589140943554322041406522496130147471018937598381823251726387971559950768545888793635275762724319013017959433599100536263005437816785944181024553007952016703336716235844061075391917493664757803038571120358022863341481892681776180721618419104221653809058792554673231392978820620129845331508175826753602510245720079767324535591289902764004254568780327727873967511795273870948575300686005115254749654211228512791877237883721451853291519441481878002880959339968799646722510705676279174783052496512038780295076938658674492739009228094731289226594602486803254423820842622855277302496792950884408874118850506685162274077286328365256522758512780716452294428413972920995781972739859589292407021246675855659131135509595363936455359485302548404361348424880806833087158996065052826922923548499410390620955237909382469059962989792356320869437933419559670165097560366021111887300837508613559119151739915598139290926891772480580132703612932768705485115658042027307695430947876746778581593128130653796481955982136271292459133983207220835005489340930585188942080894721292099824635243337968000375963428098652501695327227940431517355361102649373675175945369510143032139939739016397184360796048105195479160276664819515762877833391331065029310024973084427635248712718108660284858779893795305103094724312174283436141779512822251537238603818913307744954525448302564180042971327643494748461941924458189758877337832916532331013741872636873835465088803734420042061536572416522553837623717982819472129738028560351669957071412579157458048020517052453952474057465403521501407172533302540049953939912674931899027443838774578152342002654619618549960874385534729821478131114643858084242446070968313426105867402204913632787215991227504108165754938779826083298941782348274699708956916379341896720834297948182688877562442400957343573928765608563237487082695832167001156044826376602757051718431065578406196341600234136808073951528217506533884747659840130001481120460814530823749210637426011839670294818549892127751245819954988999533964456215541928087341654942497666238316346647585655201235073561644672169567531144362828895506886206331157995523805572939052584096168794234400693160709977604469297511645089643624011537847945088161602399079923212684708106381232580818944578782854654449647843159481821759494940928719900139150015660271487573405177217084485473833528616355252997403909137311304134492304377154104663996791666546835980342702742439032623220331479627190186601192110138747775064534236762995697252061258904151956217208602384295777806692258050731895558102809293343093900360008759011861907503871460365494306057169969384031567427895295879951727671560900993626986143979999271268299143485581788242453739096876450392055951341809291424656062338211731626811276959029417217033282706769989707805996151495163525025918014461998240198862053150015243702094735883027421612880791854255555681911511783261831132440092289084495746141704524261632093809885401847340647038807929657787214538792110497735463033184432969596390080046134316402529914839629465323481431568673246959118372498376364143107455509147011927391017440055030082410934458433999507567446147043381059591815534201462399955481345028006036916568914147378134839139444263031210769383382854569020966921170182098914984936485187748385296385598100679474711808929923243943573395336380529471148688020275613905274609116636930811305288684977361130399784375619794817712063004032598753061311239515830767170126177101362701124762577201803913135952710022547137139154721656380824290607385980307074325878345874664151189728058919674944316200319548973010707132006530769903756405986644003603187502445821431733434264244268822346031698572444910871140494981170691485525569401787977737264058558914917815669377865956686309380798400288998535148837858869206285849967021904397091480893621976956140876273470970314504850608663827821359469252369925017312835881708416224699193689171429424469937278531950176152833165482256092437051846473900730382997285182437599975975949298510716927006754284589718367042694978020330422162518109607085516591559108976376707482798759263284614176358223494692433639908621664824455284377061507702292142298061597179281831732609715631437392647113028897873089073315620679278716428267763616901136706382777818669925764419043438693055401692357399742549495225726600250426138900899531695419994407528466542895694108993998830192908465064921723288888067510130166167273801775448180194846036934054231508270275416643860979452686629836972348865677781485099192839183798167036662036788991445686349803166155725890661551388767580791278532593468247893401135180641435791042006126374325125507778480290211361609268625099242831129877767412482106957309193625407209384899472258472326020520067060811555479317418859825861227323226445421847476248769880066974893081426863383509206854753887932103325380539761876338956986616522116720321786929754542150813704409129610600984817007034490313006538465386236074083968251297596081555270981743597700106114756320019743546173072288990611205770704243854712601009196287333603576329333025512997282646863860101771397756731220310638809612717245039185376912992778990527026752804529635886233800080724400475755162433821476992269981920524872363636118066202513889308408241650639653634575182643276134141358225653023182214342605102032845369165010790504378173695585020390810796662475386256522979327832305912319289126981875114772915217790032139928014118907479387082496866954933658920888300291086647147727038694679570908842144387213837451720249572569904776501709031093556832539205230570814979757122718994438857289678434067599895359405475311318223437343508144872324510624939633210655176279490597671460989236679903298088454375705425496398068813253028018505272437457392565813527759697084920389553596086059155124761969862452007747311216266650687959847171104242335378151358979017052325217803045852458055378892924237940148639983771592680557887046581697472900073221672370791737693929882093659761426861340075820082291173909410378187391828387853336369705023756597917479212920133583995495080665003638714201492797841014107141757274589180197687688339136999377117864737194256073769828400664459607727511773705043450298736766561077076254438984357792781629086335488622408595074877690900176070380714709081445674054165884032632881812844242188985991428010479154247750825894335593886898772402897154563989189910067765250211380937138641811215880163439220043498438449609041178313147153097470620757463411999320266636863807865512143033542756617312888876796638101943655847203938211899155659558037441681950565938501798109895860792394991431097228200117633042003015688626460070409609430997380948935241155970472615186535498358890234623281062768463965351556937198478009281091087224854008130735388195181653648928174557257090012630415454744419867102370415954708588097379796290023599389602088161466759693659148568285326096298784849233507685866465855058639948043110277123126430260587323121358076648484222214400765271171325359050440897835574477172880412723802561467408192406255672907854153048240273673573697308406690825756223079929325776688950192872114055586743863043553924943072315371488537316104965708421395726455469384887558905717973266347564333900203810758692322264764839875418174884297777502303827054008435114218167987133972682043156373207074139784719727051088889552159021659037357677981043587970941466016114765371009012479833946518016121445893237512818964121848485463293665296621872427800538205578794370564858703684411102849676588649121025589183251675034866675650355369406098215128992050150490325244403133388694636710104744960743212527353774329359956988319207196876330031051969096489970414537641756138294261893470543623367707872594210607071170673209923301350467233469531806766392418138329803678819740153380841325952193659972979735284417839952130018700909735033470743667591655518700777646505823281932490466911651635904438013670799916123276135180005934372648044162117904093007157914226643110007292683273675203291364747647572232811673229325883786477101268883697033405206980936584995059569454877677241827108380242867582689834655527535876382893390423072722324522953374321866309092794689671878719375671506469908599623602523711292512088899207163896979933602025453035413076573301038661607499724259817628705386716294214799310089792233423914226151792190589514616599411210918456821352560833186699032672051301033882675084883147075047073548162998187332708302864900238140889955934565208696388862117758024028463819704174935173670682484651332653778857888505524817685870703550588061449534849928677190864289378050485294910590836917008123736577764271651633009961504019857589230171069180199840559570699116362956572492618705703389777164486088436310503724077065950824250057151154621424842278461042303206422663284536346490134965299554303707061529378472960578734469471800645881033862634262552404667435576517281444706201484735734914366994472602932695287368237950480231699875993995563553609360543496190216018777921968869747105519357732859856208733665926174750545208171421823506277341722801927238529649016097948796212364017161948066645373533693984914001586027247467113971747338003144970403886660804841893737080950388130998420380646036970985157752096554986980518900366269888066046822870971862455418992905945306750175736025723659033112559965601753307176272595420479988353535164381776640165662274421380226789149369110326107751540440032778949130094392414049121749928276914011860783513166645861571805515195479965295201822266710590502546401472577622525513574525866725613813197344451978871006658524470196431133920341283360439636917961930308016782272716916170988385524650814784926710200687653349051974397620504573447340119528879891046709366419284386503009561419883853047377424737965456687800306811301767323404716539600946168500010438164392633123995168272165602475256614948493549269301001748385297965791833402570262903240893137536112364823552259057427143702796788292319513161857669295247773119158743097898311015031197026443842672820899451661089777737789030459630099763997546695145998419270751550570077023745292749530662658272228873809183560587290344354712195165365467852518502338723715950808945723543422503082217555148342790202068131810138467723077403095131055189210510146424981322212387815587173817348733765959740857414100628415825481779666868187877242733606278907982182841899900807042565311709966928866333852510113011344267875691994243249433517668103339246165619590935908126471837352899041465122337536458448649878290162152315514401307536596046219444202987093103448982264277463418259961242109658307123848453034761383995024991986203787484042426970667796333595361136179787311672959189932621186287089815958451937296473483138426798400257977228758388050598913404804928225661463894491038821102394295041988277145567220377613384360325785037450191351987314486343901246453782607987964622347596009568912847748425004436350244229258771366337023322383857833271239966076908683981624073954970733899858969150751106152697510097074924614535607993656913279555510414348774328627934007796670988578317585879700165133670412846293508112545256819595735925531800891240499849030408674554101389925691755883820140978350477438714761784417097960014170402413486457850660529730161306068988197289680745416098389025105868236262007501730456587527295004158277993189816413860579776960384654941067312746267364744838787871144716804364444040104369720135054427737219708787188074950812105892338128165847490083399656034309061716413091544799957630127961473413367731979576817654956037325845501865180541262428107593948597200928911998646737467975606038298696426387396554574691660203985394213334647265600306229153922309828753694398975639864215694827449340436247330009700567109041028219081945541663471263515828151512650991978260582588597740010853426391628037137712173443946555243629673924814911702650786847204041079361916693621449491990754764936487661403222690045677855127362819456542867312118962881831717667128069466953470792441604099447761084963427038084010042626525903714680903089256390931737154983156831327838804435040745708233951139669969203443692716535315919464431042743446814801717227574233321424747632043610725358627968223032174986052515882852295242983150072666775973240706933998703473395335937855613578931262504772084751249569915535265306502022563396861247691818901412866536369091533267393785954649454018137480013500972151011002812538049081197240067035920695793883001130460168088873142718986067003979357679598858920643924762701131549195865933916828506656348574312499355395176608645286349549783922437651485216476683623976421832059268078410458910603780000963283756054183287911449183767764675034306931785683035683019350742695988514433668509425596006015266530603650314172813643874620822680029498261143669614212624126057878943423534104282669489663901184039561949735038223334183596381874877985667554046907000112733296675272306070895451769647563382019629782099206389928536488867587708336590042267592636675830406831191823751266400078671029609210846232007301847732842520693757289182646676333567068893071167077703493523439503012202215934105593531571134292441343021637600818381505896472348037728336841663538229668294231489731511402760956394619774243693065028844098132082746725953052992790768964592546378237121940738168669103640040556258481897149344626656585991815738682620053709039142047126276504858188826378739780439827714928458224990518990875431868160120599378180098591550954585587427329782447887373756574398856357685492396663758974287997125569565859631456468940842723971454389317706026971747681159262459996336677641877408020001328934586471881168385289962454723764897800846948271265613595198123164765584317507562403698876270279463203947651453930456086296629258770364071133603623171546418275849257252504211794270977802096749866417187458267324550572196621746782323121038193034904436208955228015650174455036013291396171240427035775196818325632133059865015007571823073256969857245458328447507602684627606532841359883757602017061869474056810475101003722866689282487310289850113326480161464796697488793560766499728040722759576767417448166312022601451805209622142451744298708616231994131205915818013596773023625337890843624892084748517871410189002764982146422805656297080614923811607105586550834505459954969558564911333066049730855399501740696144027808798834046874764939364691601563704175165029580885030719942022198540338263927963579291279898325540421010724532419311498761546506964813150124718467019022933965461038333150729542090057974326838041322488273742379445613974309474142241274314326007767511848567542951670101329802634870773720270443206495145680347672890069336329304164620541632806320403796860078195602171972502594397313337985208618066429470468092668706996062295448087733783197169512358556932541740810109438906345941898178982020851608536354484002756733193080598120743691482598764844828859337701621212240100279659262099626335357906474787145430191884205187455026606573339375647493974258218353442225018869021211895073997014528839292950102452505250695325754154362657552021780788037205162739845543935044945183761603617190995250408027879955902164976333337886889310864987788886338872692030969563168799999372499947598494152887614856908994554333285335328840976881210270691950139596589153402272064204324257602673318865762186754277973729398746077660728742105560150516719130243915075988835770949129095728544151391685525668283107601988836640093832648377559275857754593748012960158015293626705288190869410129242364645924528851756304722252004859441371304435015307079961541473160255575255276405353362468751934548129922176310289248097229162810258307362350020016512397644061027635337720998263983828982128552089856789262986775432968717781889596491401236737233625218406950703509431345504579922601065854811721037849390619769204069333696971174197459468204062358682369924112257624009872208324169894957304812888209898837893168022145082202924852198032043374597425746365659905333455678671701438665985561718150788304878792066911448400774620923338377027179506041617299390744792608583034577611684275472682983239428050669733116557975482026116393624118278676394002834675176801708465405234309550399183176936174708649967678857819945401327511221142205349393581844664346313587753711649364000313188739442904464265274735408392430400584878294030731290761152221530107658225190750164291972818614383391795903153602888776443689544700352613392506083810035507061199144233960724083565534811192190035071816029521296569426606956097646110662252490329627805786887394687187547261051148067154777192656595434264291084779434573948480008648742118396364477018309894916305276574736619518159754552575746281993236742314669763521268954123000086747624427614629454967354394436891116636183725809251387930666108564057867552219619029896620116876100229308765017748338864721411196380711945533999078926981765643141750147191126145990543462332680235712781202003702899447880925004744722194743677436366121616198978547757491730364184421258651278359212445534256000250998274145423517929871299838322371669060971436522026083505277638399655301446336668948059029554609587014638536720622361695492574100277537847536142341544022057713859509841221419914063319818410266733147459827693687207643378988688898069196411925126978125807129635894603140685386921299135539916364779861774714741079193289943398288323128275657380115138512836313865107039939390016674438254198821221258979332840780354865474300748648914182954272625911896261799636180655737737684243792364643443488171303548762056433631418587739860086256751481582294353829576124614026436083373724452543860647012374409743628603704214820274255921224032641185083188969575220555074825408430511956937078372462992211964756632811565812948939443822433381349276663238445116372747656498378473488673726478919374277861408141530568586238212081075329955704733756947444680200343209821532948387998760002477987472072700791076002203397975339956374335564658022921711631365187819243314759346461748067619884941055409659498155783870142262843095370223669166337745776070716547104259699848335107934768132293659233465733004568196708645988509503812803756638821156665566557574361742866252825094210240274680584822930401245039738468345523515659241639744834509588226978536820809608119022021982171113298392627535911185282290792709088189429805991181210877333648520796889565173225382307477094595916804666081734797444650709616124565208089229240864277535108966805911204503964805510596154284927203361234145723053827723342225879623139283604007618517979603324858966197834335331089912167354072635063671316612888038824618680771949490198694274004464223050163893893865645886779367893189367788059760883067102781792904367115012058681865724169617498844622169282217090846233560276154054494209773596119247618240292236408924969482087604187740130719948025695708441448067126177532819696934519290620708189880124411455301026882940452148677957110297323099264525029184529545449874443686170272668783394319246770870126146652191668164076367323036363352200463965068151246634569840914769133371465388342064527768410040709152494732602043197696340330459621205219728258722504000575849231225074730443999745473100938381091977498785224228389521361346413949245761095480468548335935054312731320880385305581072718066538449653496948134010745154967601615715361700497061459738678217798102857528444988319127847511912708968293774391890562407277734964927528838005769318301686384655703353113272211699173076085522733438827687745199622283428406864424590671338891214960341641882354665405599440137179345642469944875887308050540403819543414870983177911321540410191707392861701478623222449823198173016640242101492501809241677240780684327333852697545575899288713089931470620235716381556055298361561934729501649053791492096688867936511141039779703454447827102989935100279694172929783185758250127443161912582873988169633242665251236355029442342380448820816526605798124329640601162959431101090319085778042441445158966219310904466956244953920498920243836514026746840679967163808260527885495653898280201549557799407674968376623842577248911908987658175041390322075961062026791681930446875254708818863356863877873235162092582813955328076469941780888626839296830486838907779354164909169779142287160607273514331560843205051157126070148368790304012715065401340740945021878444653967006036612791979199525464768148568936885571519338577461826627669301962847589135066362893646169952433846998750835043612094597452263288195068870818639120529918505004349579121839747309997690745407764094167176812267764825260198204050243266738390620250620586995610298417817164488327765638876435949803243227119278880679707942060994013680259792215404061910931883129397079980818972040983960494623394857871115195811625190664999588919291409024780677880433408651258296645144092085815759522113460544400985645464702590046230313201981777775774421305385068823958221465157317089412337772337174769135285218094477929699990618640540455243037039386708603235850846603000764745008559299296926833508505345338609059029445930992114399574776571042519197416861648766958619588447278283481617398084459782437814079264529091005309238090091674028974721309945422974351166847044398267950460392708989274112627381680453314472242189192456027817747735905265988653398437328132443114794321488966187747414098946615990007707617730938990731421960497493608515260867598353409321659054402244999544280081445050597659266252750202841333005530251726017672511718340039246152923884412263194557357408560449806539420416595352891659171762764362708927185393879444849146105374563375001659988160587446813835308293518758240907334508076598655542651363709008013945187540425697519757902374936129985564139446784500770813550576927219138415360737239865020681190877599203321217336519591857254613008887670880190588589556319048445697704351713317223026069407297691374612810195650750345516876817113200694689169557365659936575611006826946912952576467003154833839953592505105841897619597479295954284684937938543947161322264346832799611542897917506224523675148776679768827010398806648102509501331889731790227328552952604024074694442587296754716360428094023472536065292359381808547614277449919296982172266175342376904380421114824983717136598955258315520728479374631645754309593007591248477166384771689941376395194426532632271166347010062393512653683460450398034603121627057658810639491649751171367578159206585872062862975583407765510466149624662164426305360365925629192007319695459196457709748954551308207170747982625314766849408320799462758611127335190905082444691618085526526162547088426410440403669419577624094677834002283684772598271759819105566651686036284860422658634899526974249967348981610872039683986820343902168886987487583196200318690936251256012394875962680859288051790677009990052227797250568003178071425279750588183078850611756876384591817779031855661468087051746337129320058041230073896177822749923154107901554875913115632442670334826590672757492238423167428311098535556843704548599077474269953517320408374814810434621074739601586619463280763803273708481973207653006441414822843934206266754956225615195319753568922611790554868551932513582726131255726158669173860280688346695671811048842906786689617909418429482413272550778270801094090364380741230148719811230123424007968616231263532116284630110373666058407801763000949350318567428552437584089764269325310776860565303966010174778970346994960688728068115924095207107219088211074787576019950709217013673991487163859454505864395957635118785799505153351809455116819874585130738941348491976826257878342560148651725842425161042102118282213365856181748073706814220507048585480846384359011872311049182913047468573541132659134965744922734707002214952796429822359820957053516918266360261594386643730653478247367709913619969300604481019147115439909763970554995405196868050202718981232283581906625385892976452509103802223649197729308820288210513745931058512152232996763233226493836218242366809741818159537933056497650201600592578818397927286064828469118736042244313786659591320131452502069091920615087122804948605297376891353628503113999911597209087992789821502576044095746080480620222549776289782680337391880807178810040646475936717591087190188518217810164640197950445788458343596652633028674118392147031717203639019412017297897313845456374950754003765480459721229838999422553207146156232338063112542388365965012890970934909077879403250209727081897333305867688667857648100505482448984245218509456512877622898828954283276010782374217025326273167691798224037938862915614141775867649257072572348181704298224713587807993141941174550429046018687225940824177470623988904677293369221508926277540726786924380181939742227629638885191581255251332759566387472648438663115304594725071822190761055482434936955867699715796392638906776700649480558560808299044082698957059654078387281886278650507735531644927040430451602957697695436675266163488019476365381270422817561927932463067380653094072722792712965440146052316323288873961049284094132778605425484954081837793788172962213710433827045747590479906446490373944929840388582605436955686228685286448711094872062912353621215002489349714462762627114402386121163407273505327633760968392798210251426627690438143517991481081276075398843975432646796665322725673001725280129286142100247372607827752301151974168411363323825574392386303891916422014353794107013293961419836519944457236584964155293456097747026987510130785388371831431531948382182552457737229281959013011333433130245966836396842304536763777214050840625349497006293340727640545125102960090220551567590598056579933974925747003002870716947061806378307574140974717703578345072123788786727094541990194914175862842408906713818384041534255115244325018423430028502998091976182758931383721045979641219194831705400783222487322791152735333802743898150087931960036093183359988799109303031887960757201949646028221767111576662490385112181465267096278854364992388309017229752710569433916649875997424759235990068859561264912148666568535322923861453468449910980069518436550624593196819186578259494246789370220928846941520012767258209267274852870526082379025207925137562626205651968981110533597058660760369235480867439318681982666412199558016727657502745334535208528087344534231412437582964436435495872438031737262709330020065055531318623790950632397874869348548146869960833514562701368408590507112728439748346806653827592665888795428318487376890812747003987970544106185946302354271159909664589911119432784381334386641833537855839825907107933668074457486253990936495933002886942063776263753970898848211474779354297419666520173260067836895111172450736380877409271165324349135292548870762740661579029528438235592783718010902474194127069608582528529418084404721446677394751258731942449729723556767628664200374809985377927971329796164830434615992165035745248687290958570281970730661037599290154541444061379952988597540911239364499560039534851894748868325126619474037214120850973364699453319753594029328499460954218806403264385930488702177602299384823965273044676578841691249372690147516995011928944499095481266351287972466090733089915242219039849190420084233630980014369844914754082725222125858056683639103309300061065555421062833250804693751508020163384738635224057032811837309472679542373193154190020223671573036345537006843006952991228193428622557101879783755955725046928842606326615363489996395960403728584296866839539284971156371721470961110478470239844776501518486748415859705523037746958889817495962862410368058530982009901059098250800593983968754991224681615736571146915314203250027388500542128453732725061935995516353841978875922605927741380802625641308821474464114917299491819646355661725682154121154217881095464501582539412644388622623055292116492252981396706906532590332962394937842523557738700896198006077645038572353703148015552877901034019654114733464416696241232103072047513450867919150878995960785843161686298413835734743568995983005105553345939864709968417024446995542961674275951335556222780212567786107317383563426002968923032571461733503665005144000149767396739017914393977635100742202502689519135688468041483138043908132428810442658419696822588642374583491498183391495944619454727935434140498367243777531156482928333998895470152832688619446684705799233016489576428687974372958256029945221862723853377198234493220223569944330235476123770043052136801683150176601954614680935972981542790988183644426444180738843320482740023137633945095081153239462661969394028309147821766643822690956668556703580296548402264577361816084511665535554512531990151012933699265280481552789208648739508704340865407829043152932639750047495391678860437225933337733782515315392762399387173813926135251693844675309541293021618365015525123637582594960663224994204428680626182729034393745600876599113697264874802023227031581283886077022166582945128324620500486525355602793100990216175990958631412082430623254731220019757113855042007007798076910442106523239111210659036621273700756447421333609975068145463808570228126687373817261860244919392063226489823794204304010325713921905275967902291134661735587436926467531284090795258927431589853128061137908041636320376327011712035818720594022314444161867733572004153933173395398775916176121885036944986316889392008461907391698815772600693931723303435118277263667187684919814273103113966595764800194403602793978539632049560859406599316391621714762306068835351143480984345333837462684039700133764086944135107098868508709707043081311223507186588355281922951619450304764677889565851603042882850804261703838229613791173527395845293767873732335067593451103690322025501405580689586732267660008871061441137591487816246661813932989815622594434320524658187852669805581243068146080183319382631606352410239004007856768793429031103391947274173413160188743368374932754141738782512652008875802039911529037064951905458202624310903729280183423619636279958459209729980949940179905496214922477058925270152354901050263683235431454156393313828687835840273443899060208241711712566651788319019806633268144350273464091293764174296645996500810738793086975880531683238725382159205359148056292541557561779098940189407775612788019698290028189554793753595877053212877386494051648552283494510239647296969946227366941073396492349939386905183823294464322494927273088393721282505550543238691952701659753171587175224779204114759309949350590439932895589241573833357598189124252005302511271967077220541018764954990065785786218941363488080910770631409991136753787016035939095188582634903492224441269951017439966453987148028498084332778977242970120170402724239655297217513637217930597369531877509129471066924317426682273314608535191442688693975249700183350685174515656786062198286217699837978287189783112417815700267084244999922451604914285743337143580122932161449916908854642112664460136904393698159649053513141563026262467133462625238809414746195996270269990771838066613407183324533119118850357351431733806186742590058856259181770010143047058361894218772490244311301929829559429148162961706621079093570238713305981687969957080441610186946280432285869983217598445765604131127851641715109341677780855682478883055300518141315748292679192048809440259917194362200719819036701721980202888137262873882521747732724556888935525563249672374361529839069773775491343810455109676781238256564676171219758357171130691140579898521646460658339261499367695206337702473753590227543630639962945320227331370091882419306036829718051641485093300243019782755199102030751640779328373638913847500047336973555991718800711756447357411236046680251339257168128753135077403990012008214645875080843732363338155035733443903565310863924378195675774435786122513253917705227072125213041933840222159461735685198273448850124297044818273518088032999508340842326719590809674534399221169010322572902519285184876363734454640372230763656278767910641803668579489962334559455637754245311641740177631121866828721577247007642363870153132636409122119773191425121218918085699989999568626886107126887703195979454089836485175856726506319595033506732142387677003365005620220740667510101834721488578590993294395165173244267465423419806617323018343007249665176881715728376378462717125464967626551119465518377328001108543868223170152468200525754155238705704789133070440625118386556963969713906457194049711062733663617767286522194515215727185115985741528791929353175702293653179332207856286966523383614929938640699069499330681548489281041184961058188138637422870847122820173097196809409257818001762516740756710336873285915610447863657505596053346677886383040030355614874544791914991765575798775563918395816454080458746966371142214735013371682606404898343022853795119416352544974676592467516080942082947913881606930086834052843441232269624628337659190421938494005855175843216481047067219327148612728889528749076236555032083882610203516702046366430580787268122428557394142632932361420232376756715556341821944053724344472674678140481253734400919450774794527606205496400724392337053787858278232635559393011619847931846747019964480388135248355393138104518695269262159483555468368882501431547194407655925053541938730721747898664099622974405510751516531581491067563792107336688733194139517365534161508720363346777921342075689579877590125778847883618628697490398016113972195092047590220364365652583132392360340852059292864844398902741307527954501569468015569852994532571716176973893357705009870155647549512955527577052695455397932180217244509325987388769830088146202701557760067020328164348679109665735496660728033692751518635782456287924137660973655417731290139163651579910636197327808177269588101589468963484688148691511911916682939395761084103936413996151898908488943475170080739861659651777126308486193113936287756052841161878341423354422897636162959038456506444061727826868818541195519505867339820124188994033041577163852232371150736977875250936617171683431384043846072245400320726549470166993610944193726003042935897308558132341527707711259980714450568176895588144211948398571244376718006543875402054660676864282611503289969894811234484124315094145524670819161613549477152290500615470775025435107970636122799040349381497284479769823922504680652856276627939825477354433897996455947504272679394126457199661593038110552087895767777795317975100946929625801320176066439462084501048684583557381070523987057255914386946016312534744751501183139426383547838194810679611597888751546168226914708352164711702777658944244917171313398295246764584771913044154610512926304732756601053855196787204940468354161688792632841105078461781135525205594151319860607346116073419171754969632630846417553778167840922840135774046355144632176379178933719740356700002407008237971890690118727825495202440699723376925546806105687994022104777330575686400522095557050171919598951511361323616936533827714392272435511458040128412334303105224360221789250296756613204149303279713680474402826252066029995627972646550950980457792032359478702605610625129762841104333533865927137033547536984980902941415479477977494605180125615152482683220060514873627996220540497804941985193039630111919947750927943216646270041796724511024376011368719545051175896667861750089579299244196927833595698207809684726973460116268142751655354227569399871177644421724709506491708046900378237933679254250491580917203076684324850648701243505691570131966028659101675557760505589471120668658410687833835819801263319285863598098247540523792592042130228525151870112606238442891489008458108220980074156531816529184357288193346104680438352033264897035609666844696750849930183848901680505873547374412478772918116006924665164828854231710410613029780818481204406285260282288915403678164405871302766023479344469694571535162225309349643213012908319242293037338068301908278581287424329842998218880238562316603860191808439831061983178164375557429286513756784521881897299154971143700934732002955381589391811727137651982471445572432329881454893879553152813906168410402238972373917266551419586134308215730113959879769048810465141398419531308149595225785700618975791391445446136761075189440380224242421727355797744421261812469259237794402704404003991995814875990704839154176279124972725003324770387652495002133188834827202903943880242078087771490131034179585053885626926561744034631488101810517102175486626628531162233959915911721018354560527947493653292641564214427182479773685313448902153673293895542536482178410230894541742753459589323018800686432574508904613025257248678091703751592941407758483849952418922406886690160795523093752128961838443456303516981955221576836745456263554695859025387238602660486280231231259159470942578559936117067766664082202557050879346598472153437631067486170894856613271545177154018042936877687326783061810532929620334507209746915386312491499138486359925658568399931854639662986933587075640557243516727488709076036184870260281219783319059944716159291189776176093798252280401549613864236420356625295148135720484243989220631146071720824968104639361980474807320535790207083678566716433839130185431445110903547367611643700551747824721089184294963748703072169149018152575853251317938058502288618456111187363150413480325918757539276730969738832622458968072222729604581839029708688462165441001925315638076550103883154153871193090304980839052633530682129721361007667038815469138323439620647374125294977280177997930870376853070945528624035322520280152998962292634738716628664431993275590915521645035237769598562195338991869740708290731657408977302057571883119145854598355606867015090044153091745802043462298664690055502169561922436230678484485815271550956295386257265781581223840821456321594743065830919489555258017015832033743999394032229971028116404974830856027857925093981050293677913260398997634728987757669581109304667017214347463170294844820818566358852611598735958426341994978319884373093918680511278294436217830079036098151366617870506829356768298947841707279252073835722040544693952921342466619639830787316668568881946295375383008287773461721811873038708166555189076211860785874278381976336265336949183844419800274390522877064068414989841332735810504245404091816536603144163232411006118447201120209610158456941413588009627371740574450076202703945672756003228713673214266096785260778907760135348658812925952056344617615579965764834060996472555018974494805791251708185313366991818222392297217806985578578680796428368138597045962495503999858780410699044506621875140435063847554606068593726429217828955246946923104815522786587698543031025816310567780050966135642766296489183170098979250144451706233281371280692998383704039856587378756072642725102768810160171769281074424717827274028136884445340755773953381642073916299225972836578573031288937747296214779492632127923052460119277926977173696861234243558973722193547026242888831811592598863665640045021491181214921283021979924273310471782472187138549461487608273402184506112772862982699823945476596102776089290002702436613939739545008096150727890291506940691478951574450357130958334082079761332625856143111982555496532816488833042642230039085155195633670093311806058087465171839389119519151588216662044974080371491235429085165313457864191657551441835697746607690192488185080578551320143082612148656114005757241284658341166698759359921575852091237060807331629423447020972455945239857477254545197516180418531864107367854076270799672707343399819256027034059991903454840664006341840197912308391462924023723997032855411972564749714883941174760167094518582104952488125890137038301055997649569181872135231861121246528375553106608095092848601871257347618342603689133625643437284714645602632272719007035269099602138621371700151956668932754693784703552749584776267794105510106444355967932528792436233602886719213243646781671880965833674315405705719317425473004121986276049116905341477855026335030556375511744236362553931029929166894547938633119558460321919060713338284626982987649456368087349172999694242602634066728104654896629979621322133285003246290926522659564111986239996289121883460247881798356482051700054655163936632878117285840153558935508566203850397674210499801757628748238588602627813130458819652974768430762192002319305824521049486144565895413363272628261507207433027259814277570041625669172186119854216208436174494072298284838810375442530788369494902002968536757096072330493564513584683401205383200412657417118031128273538134076553762035384078751277338142554292160728483998366279782285931924678015601542517837767008032463152686099547056072261368376867377008054452771553340557152284423156102963471454530632256659177273218449816104103783336536110385280967665497669164922515751683446309526169695650601611820392907847677358631445657415110998391791487911773742845602213489274763280034713621388398215918614402215364587963398070416310052275061452188077767564010672189913037472534105572457387568850913014887518991823233556315218027022067634749123450077096374647002396468941826039043007368246113398908649583255089974559627036511203896466027930029772293438831365792280457544706607860248875866232097435455813267745666700830885434005554725674153584386993016184050292285795201418184908685825550862113862089251440083851450689364987981686645080128158111873043340238089633036692868035640112269622854982264201959754923931463290795567973056492479693275735077118967495086497828929898825805050594834418824381174903901204886101104787218125829612994896140494842886405121634544468616135154045397777945868373683637182626509566367368642571572258824384150611633706186680777863215908854889173108647491987184828599911598975190396872280933162006889826576134060431685949688022407463999014788478849660610282144659620308643473970441198256163420280052724490046371058924487420169129292411026612912467600183009885639617595862905263209018428005800750384932683823005521492069583386245861727285568704336927543122126989718959021486617784460003694879317125071358758615447171895941489431400425463173223449600596073647148752107753208342049941506818052914703571684525949213010152584187731481630700233401142638401265651230110373212547439110282006836133798268261628601754871417285151645007638792213962825049733011629332187340204435448221680921116715919323238663200244151136101991586416783855922353142877837244211101336239625748401813628956707076971086252277823335658352442882404564162520402952866581335409381338535512476905882797166407382449503606692235762811209828236338679627781361401999124947412435499453283367006613783155708253636326856220838928253039705365207251748693235199879378439292105227836462532104534797234426524081445865265091333629945212197083731824590269329328903966518773811730438553812126281353941220326561901468826750801767239499993123603956904096215127423098387922583473081951215494206213343781355283380849882905490437985071932746774952122206272230092483763460996045150994783131710150193598204476104859753326783460427349986492711297294168952141102531261798251954177813911259713164210944165525369525427595118310430207272922039543693631362375554005324377475573824128551837137854447527956552967329864334957314619852299161071364290252856376601441216911960960373426434301117206639020811705787641161389051494776678835908100540583632872202875849482447347942854098508813967020407515368389505523478046241399995332263993410623157978163052015633128071169824748198506093510309964955138065449494008546225087903021102937978593679177861050706964458344626504664647721917352509264025455794572223332848258559118541220208099744769394880851196583991758482909905346275250181439677005073434080776143576717889511567052029555140823771572962992694580127667826196559813773749718895688268119337039937270354788300357842977082384361175521987161910432739404285508870840679013538821346140752253571582872347328814750425680992125632501046203487827931122092142076366018178169900989246696640600290471194020249543207786343033775354856917405160256661936379892828085661486881391660787600247797000665840048684528669525158317459210177677362247827718647515077729861714829081906109403326820908458033436044247425964675421513679594812483408862452985488951344064929729990730265461047129704930153276437953821899602500998610122359472426348440519417888295216608548043349434340105317231232024240017934339522886671081359398928185872997361205374421857741842446527457675566536563474769309632882930531927541393992346240209237734678252876499286567233398836384999403395689832243174063258189307686396079999386420146544950479191821066717365896721595995820916825227784534529489085497968948132799937458875598556500720255233686996784122564924716602754634561500673813909218216150149508436472358872170573035866632590129135100220394926548093844512929955416024302805309759706397903475055990880317976316836272856645349860590884888382078725779513673031924569539905315685835348513453662557483589937664975981157515277273153607751444547308407594910590042486238656473690420747832920100025229412890439115164153819936189920644137535459340833546582047998554036070988207447256379376740456040730773287773435224104951112123498094789660925417894695121606816113201051301799417708021109464077394709765477768170972436365339798017909087793932215707770186819942564672242574809129577271933061134592091348697330477622645263508340735092381985436757434222973437701136545548974746285411946548770234457358777797956117990223663986325950021374835465246279159967165679065763985433214457117033063111080194946091421911193072293588038377394995787175778806134580422954119533685658359198992584725374420101290535597048580117001285887346595172197403421029450094728001904367236484879499072096201446804308032779811482853706523988302024255309807294791886614224412542202010255491908469148684770989128692839693012714271605824074177691392479439257655364891727421644287939563510710521995239885935543005632700532673366152889100179990323904860603040073349282890153126162303555534037814322410853971863637588015004820402888836301966263226581457823187865050707228917667590195918672281021896258840426322106838317274312109298126954508455958151612432459893588448342441061517269100116241020052774544938046530347580999509473488423493367729594441561664498452330520838931495403703932989711999557905175895989161244150845975149257228363862608214684919768533347989470491904793778434152636494888467525395573925589500335321291550929820359904254194885513085383512775240519151278423431420686142666440952884186423810740708103515733738166329062678907479346492902675998260604721267496240657608131271597993669664135843700286751911481175029005742394415606651491676227795223799336937776776921395766459266588312694396622789479053034592488490280486488050841035036966760151864475842739178360065789146572577502845001969471064052870870072371733957055739703668638279631225050719388394267904758301077021592787001542454685734210440878706902781368416692731026786288025741081109564707927760007099362834849273155824303141651762141186540851368800598543042269911240772727957492480322310546049535095970226404154057306235815542363952367008482949441128401489526902514320206243127644939403901687884591325973768209815590331979145716808228005052661604681565723011247723782573802482258660907858736937074265808503646964334036253015629978083905603474159377992467351330419039957396805091205937119839098741254167906159585275392009834305917939302627738988086682855405572416837007361674760566210860933806104297313194763941083324003403509332333565613729789842840503505110450037013948201482127895646876662550502928768088604098597117473374884575833763597865135897082875512139244827997050384936083446370378121197376300886435533838186646735319348083146160707023749049761053249119897276245190124933883356449470497171675226350611772876351525892226032934261030161158137082771181903358501857032123127241309399600333533223415093139269178276209746542509041217317160022794737977631457177757542431278240827023570619403564621638130247976119266213410068357270943466009182740601429427700120405357568777732632004297090953704705850151720807600944810189244014537571173548884342193390177075762180128649818766185245681487879485791312593207882241559883759940207551075821505937428516319911432556469146315559060001520410003786876554153876562480001956493056320654788437007310117225583452613441766518669909124662741605145396208239557077280387448980365314853655077331701112950471818619213195833496549419553018779761628483070668111576048454323004512472174467567212608823239020020601041872001812612860380435228436540616827647365700394955743157232887490473711944323658059546044458013019579525955664351776094487820528162483554959870912815596133623285184239082219006171691071961753331671773437681716999050748326273390776639219429329122160445554973736265669188073814834559960205319990802962618260372549507363918549562965644738533582333182651844952063455381470270540658904338801402622179674263659357405725429487453228586011894289953220353894461944235760595954183847392309061490211881903757567413499567640812896893565299143971911209428686608421265392622516086291784032246778393624692789185315178772167872379576074491670925551682494845234487291587893058418196024149941830290890065353012080912242922534572401013864551680281756819080049165411161773772522515541198373609931554338275932006889320280860693407695177629372645610591557319538142924262314387766141800029393749283972352747195507044140471283796084467089427603715218417301140791965609027045669256245709022736676443265701380935451141401835372023590118371662979111763695617169079011790610949341300137420047470225171796745990165564254478406816468625025964662796941566111413222299248361294943855665263432199494433993676747950107915822401575014835813235696058620454461074305578535501834833981845958236775293400015692846956789592670616704491779528659866079541957656888260176022741527893767834611810598956178932868751406280970570913693748161942856425698324389571763186629872169333421918407395572142472112290382005753139171208950106045223272758644967078732214863015530445082940343701538814644919669547270004317555352736134844756088216636006642038187332797570058339778496389643481872614130900570508296691456315515622802705969224887022168256243643970697445941240212471795777105605573773166230032634004313099136428120642725726075591703918189388078120689278602587993793732346064417390496559704226139224092571119874377485862012470980933312817722790776686032147189423455242256690024796240100320313668724054392580009734065016526389927155581974711844763567797211971164530006881429221183039446822550717727710210248095289578512003861820290882927152368698896112700137565706887174596584159136832024645835442731098939314603330814173353606040595973085761942246995898198421204248362091300020708015129899521101404185916635878420170669350775110863478255237298355061819249749218313776893083238659054726146680345088028345510379529769158999344452172860093265730641013274536575029501071658885481735123433109068850691567605514522615001462768292701536108380475283702328088960285315878917170188244492496443662263574748574739251903058705017788441636883449769180694772383850390078819174765691101751634140586509405143644423145565927185715864785591687285851541068777351154746202934679845274245532762701797570242000531204299816414607119473353035120186429433392229093610359039142003669266274384210943244198333680034024406926089279019085451532330731320948656539897576941039944171484787693419833076557066894420671126815067541468256491467244651785574013429770015837569344928237090235741072652551385067726662891296632101225261514505749414980240000319098949889518025467708600099457239373119786071176186622935656105403286178003893986313204592241566357715955982175455304362275790523064971488909008109283733192098997579125939492860375153546901546429385103317558394582570973816240124935447336419562943362059834267168360764249632405089509259566745853292714873345370249210327209964054801548494546422483718139274007540904904782247006528511234985258716685798558783622620724875112616018787138284357373142682549364617142309835906739336238005057608564176739040964984287203350577208342532253500562331640854896356857862398637909086956771517202447667761836586665639047733334174911351642516315998918784636597343956008228609436116204011735045892878680493106350020346512406480508211732239302451191038129037732113556438374064359128995475143257937595978921488068602644589592966894128694251611565598987718474957984805235135814960568105750604738946385421920939570260244509373638546121040944602707982312021278460978008870892910388849507289705823783426405136430510552335765526251029349508286477929222362258714173538061338490037069796764203410189657577941697891805780085710946717830918670263598036457679565280686533246889619449191204982503885530513662422834412116786904731855314486985843647420233350907326982939435110868048155833675272252789004438398704446980501079233700821392056912522565017748736974139963746897171730427209491279884877873877206716101299999684666701594638020378712359804997053795480794230660807609156146426690736968238254147446542037726519700587885289182797045637331762994217550277946077553603964151023293673592862392237831687664297094661568879976444814718350699156138040633133475047068285048617616932635421248099161809622908419623816274729899682977272308280976063312421401555484637019191514127622678007451679267480582200635293415589702999789289977570424732318915148624226448259367824238078225861918938803897894497254314096192669711253070377123084889035417748492231629437794780574440471806674092590879286682286864045947971850769095607041361002668260330962198720789868130896211517308867454162293148544716009248802148003532014894169333971807150179101258770711425611525440896626033637807142479563678554943272167189936345938203866766978723463631260894967273444078951098845373780313166032162514005908423836546264542935720618908932012191793547593969170213733944747075965182838105628336911959303533704046837760585421646554555168744635864506081835707877289075644889673667888017803028556065588203827389969370603065993541236144372966640647070658512639470287268467509469757640368997276403524850123033024875672718440353904146464142820623367431753682354246903468470646704416966653833958511206825662608231602479397831275473218521708290623218190175601553923438266219684734092769549146517759395730563128816307641030080045131382088142959132620234473006177351493063506850381312261625220011078689372035030593994649360071582313015608970626334951815983681256769915626870245296790502548544597547804860118667452160450044158910510934699143884069951050817933527146176915066259221691949068371894164761336207471389424677240007763049769751435136759570145300709584606208782858482523208418366301324585894836598025116215836036157100342756789699647897844980578609145852829884396711978524279805734632657931977390599204084149891708908012211743692716974189041751153154379463249220072961951858663613498882633407528460598309780459148532478090184882887312751984495568691293197688407772268492819574626618536780749791823252031772310195118380676614272348262430925412355838199069078112621076015616153491928321477329924707108305006248383786314451582097035908564159453936606108029751053376518240468565252089191100441230311049742965410365861078017252958652758121893445307843841633339094809414210773321396781099369990800842520939306248611472421716174963677780879491067937701513140982372228512468664520713264151066618169155379488559068745027629754607062660990539177147311942090128743232924530029849825531368222854927490902758793913650260418874092752947643126596613527762144586901016950524824191511139202027237745678071584542223150018200476955198957903383160182012376906745720610505875278251765552548911005398509079942581587275302290993820234563722612000613899530443708320819162427079980824456228345446072332042579349709132591801747012508867668894458804285045880645534416728743498465173935962219329186197205496310705603309883673047355054770965005277927976075785245774981046698429285503222038592349087406809600946557398100605225608854403260187099234913777160354090893612403774532270066666076147747579536851923032026421698163079388961805523622058306190514048666807946073400353058864181873691907284637420432624405160370325354838442252429835768792039378812045368917846329983986535238995370614999487986305681825462402317758838978640395611263263164558960623825168919858650693691279543968388926535389784046137676271520502102783740547751350204866307135337494859876593287664112194787203908068587964807025937605407700663510203095897569838751261870189123234141019822861074317783515975610389526049402891738613153246544187097514973747078978483753258152732071209325713828559727930558710097010767488481566688781839663777093323942744790802113544733041555046251111584444011152297956993147985697482739263277715986928933244024809551960381408937355054940009360362434373355351140012458250544301713199458849728301043820665305168294063508755108891406167498798896022169697622672485382127344289931730414076249099431789357845727670163905840918741612546261712434807808218006878620739811955888629438438017364481600247752414864664131701176293627015941139355490106052709481468974519755160568415863079087715932654919182088292250221522933395741153096257861661806637513843135646924987811121253059814574015952833187551067666881598465496822132728972394920690146617055589690225918504807252168080099212790669147603269430601424569595562695826149590035034847118846325971446372165653954053340672323758075323555829988234003817704122546433075906873578126976857752861019472443971746485662453453958790875497370984997317131206903865506490953257757180762303987763906046059806417822867981397160043262465524190041796728982724227121059024708922575315538069141008559948203046316389305333835823201348986366387752810958124807832955728709517754299057762919635236105201616947494528667249968059839042815380503800005534231869594086760529633116385622355811299903189721077064451752924372974058485273750834701344271278392558859568280679393197681790048944064257101135965943742303071888928356695098524283793515432603232210516671840046839227676090466993485501675497899288300389039865713869551279537495013089821296118234000284306574039895610468256889655151459679238893988692858390138266206825726962621652656787822191918353744442801080048829634997167420661759358538566074094412882425718741970681793764082382168814841734943727682905321590028171428673099558317933869688002556603063656055624851840269679076058694751024572265972758773557466355192920732200655458409450147212684809641497668441533798480186108045203442774960627230667092532518226286169696040754387095932323268131831433095269925003317455228767131699755393731127223625776258521542035440351331293054818844406449547801767581421508268478628685179708190612325078666484172963054308232999175730567780741376129412829880333415477616085281668787619467082149983203254182950843442387342273850264691275839797470317967431072546932292675015269824346486292123404576462726274954737930350517926725049755503942744118465897419455799572881767194847214720668683003529905023578446588116551939522710798976209392946291166101112334045083867752977170992220159042365792343604037581296292314992734388001081406083460965452222281231011576001883053294848648413181842556511289589653594009527189084564976345179351167503335257565564034755162531514283551987389686156343244311985697868725613640956271307076921755048035494945027524224154668085808653684368650314198519379498244998552156419971847582678162400837029708616290428208436473786803162050728365869195433816131836493751889313035448536619287451357355854399270722862067077975480420157184579395463578208178993099092572049106956299878702634556970589076411135131924034739684267352362675688529643186303898900160758819600071069180833032309822795491172841150653608863132515553329022826612971972373535000440062310781444754049357879103007911881410585047004480461669074246637375232349430866271334372797250467448004767705836483907864480633596115031061962161676609885762889777693458389159272978579623841342729035426516456774434775727436600274978484504110851015542117903711484061315424769045657530775416519459256576851459454191603806384627017714488736262696346055115738812382835139385315907834662161009174014412360874902709824088048425906023581253026426055318559002490653803368686639548781900048458756263565606848514612656796452681870688391239534931446246613007751415302566559275353165342041452468247245007791585877345306598310470689900940848900690052084739052043059429041640891851681300745179617002259088733571567800986337021800004844945071785298263908339274258106403152379897148057158294271598253165175766499607664155638641196767618440095071405849743600205496194667176992596935357147641968224639973648695493575851914023207349577836872418591539065601758523710713590115722174775084888287138445513393040541039151838097021186993534104781189276826271723414654604086334577334082769897630366889999604824325938017491549729750634014774909688524152471295063746584376861274683793601416869235524936549371288387179068671550952670357286786371084391243014931935372739434248899017727227826876599342195057936895720060034118171645354635565938352447744535681808984712047816024091118440430324023677165753457148109310531443958765217459624783649330565703189809687616077399214300305826379485433300293364570190604836256931932043110979927889113866697213622913547631440799880632678019150991077913876208900455084215363740255193888785537772696337618162978801162436422923733014056569345258492484995140936843711632153165706705172915436942773725441902731215824988778174859305005198565641788424636530663201140042985158825003900534029698463025811030075938051835526041215644974861616188177087778701420106730727511135522313843849481200590566371790845757429713117405481489626138980125846609429221821279911561236527592923279966766384644139373876511479379133961204581932193660718521038526472582017440648330905899408404619680354622339602216767013870650591545381154026324089896040454161454737987291625570042727894783866921028921874522536110317268443575027426258956588869609262095117052224016862280775480189139416763649013536264214120078330812043908472908590090742536175034488973666182166801129802227185631008091416555493352010604263265151822724148330090413104232117987327707604399754003873789552440063776883519345451491517864995449025653087408891453160964698860369477492940987077768948202187610717910558278887827191339298730195813993023616624365804115889762273559080543817307624835017149658778041252794950906663200056612248730341898727654204931516200743946722816269881719018246197301068013091153641698983474991442985140756548775772054357726736189419041033725724892551058164614661478528928995665457169343141054827055097959824575058987138344685702755616139573780602699045760882343800504440118854531746734683680146907114857332395863740274283931314863444363557539717976384384154062304416732475226812039844232846083301054360618744127768226246811339056158368133954242698787254585631989836267981067254765611223577846808194250385589196358158810627569593904626339982648283130760016769469476222610547691986338466778563220730829285853906892064856286182006572627860704067817537943327189320554768713354305890262193314958631481263014845396276864893690545466556068328960738908478949639296798381824050802174379959830031122008483115298928818003867873908789675529284923562461902151471566901060797144430909038870887944887592169041616663113444419895745957901267039439293265382886483875386451492545783515422320559412067504224953808569829875660371063671125635318898670818015354114082850910985235947199039714761446105982585037621526597514782231046585587800480559944136588852042476239059638028987587894053942043613653558802023145699161058941284590347475878613357365829234802329621801686882898025630309328953594140713559188778290957882798473550372250374415560422326507396343924080098318983691814650229429235131009288286527739222537096454478247572705595154695710672746304519463111409041829436578202439642050434430000111998209260149920904571063707060535473376643211351324407355569825175425134205920265008184579364084086877579481024966025328068528537354545258954054915647540918044492380297814701394260707978604173506623630107956478322624869723161076151554562709001452876510842850724168652489501221049528744374700989306720118776985888748449601836372424073000856806203196656819104164124985154762879211042501190695461400358796457737289062146960427201644925648161248567004432602126820928867113365981421593501907979346611953242285434556364740949569642630623554899461882385802843892337318920554835732992408332616494818159329820571612781285373981740726698132210511200248232027341233620662504995663575993147183122187234870885961892104433580232270235843067343315341158800126235739680662328313933218312466972943221386771504239277849742500088157029912885770572719696276591302902185765373895591203240804422362633099106137594321057526848126345784237680253261084087020103432186520300543006239104936838965389904686268916694006693846997952155852175994406750304705848744994148989583260239290191443854067590577781318934536390256115560509650794116303395214704251237731213360716413322834047990072806211336546869811608140084655418819083164520512110164910769768094932330693665702581231711978994941698304573680246996438795109612410020772951276404706883592592902399954829981877194651591447201134909143336058977512991452005539209620304168808554094495421053886802509956525591814934568008599057080633590324381090695705023163341445378996381200673159448052309580760860244458566015223239291392824466982058523414700610824608452790391480606614095796278404018148662528772832389402002869037278353182321574671603816403373440092787587547598034569826336042019984502800677050407167705464742517428546424929962272811443941184468882001589193911458362794959759765677228573210282984004445885153533737883674945675032043799740061840120529072985933449065923018622952337055185309920145435741490939234363665851413825413047391803668708092174388452163621673604124254493686393852525165810748074101637951851093105049623289843581327311477532268590781927126358913117628754834691268921060830166451930829972314477273829311953393124514509003277321750193117780418386797103262938608747921014596029767988810944031782589420982035371130143196653296161740649382120880265035410058889235784109721651621399373477903531778742671930152830520149563701820346195742575212749315402166262378062678574811298544164154765203073641054291492433203491891913359213858028227386021772689231145938989767504206381194874751443481379258417563785640959105847628701709837228088606252909550521728658888275928542387913518631443056112237055592180244665375892395776041450316122536568019732228861220808007614104090193448715859619249672700192144405908452142395740183847060941095327512595851362752143277558912661543464161450041992511024253617569432587043572186792671320186138041741358665418246188039537665088092374860245897494974615293727972333368775170373188685850768615365905261561908881793974125417414885290648075124571163408678473055338312935192649117916847093267567632033516443908640971794374543261801299069637632649139427658599079722882004502085454054420256899587806321973196681832582023971606355335201664902953388495599938194228897415989155246742138488818816380775441599763576656137574137287048851094624994106841636328149420524774268269237315556496443576815362508063674240183204257319163390564005910983994350422345272750295648174134867446981266276441664183713423956859038334685738640306296539187111993385156766342979923080557885832299214395973266736857574600312970207514451127433663250521797028732938696146224655350982033792520388677681051348284154177662797759693941816724990211404172912916466139607135749193940537778993304848255676077495849598591220951889388304700558745415516506895652829295737022269768676193118725011683640106207628221245825936440428498020270508914981660569223638895886350900523281751247296072023509173615502526584279954400195799751203519477615690307005812325322758299887013666367623592601170922288338330316547652206834150116250561590939968668183956315118544176134126905029819701080136503568964850594999768124742124035560701851175457759628969456098993124576425928772924643632464086475884517001746424232463917127093264112964814154496823011829530872865579125116069879516307353887735754293517220270171071739553516144830581910522705818298028318464012665939784218905692805363347651370340618091808102715626241977705187127339128879478690563856313029381779055171327125961202983750033045790239805540002276188973730414523166521336760239582183357289832291001197288207993452740989479830500796607109529385459335295007904251504213847393529724320605702143505896604187920168192298313298103118120464400472971607209320187408889346598280624206394154786078700183033703939642694687447114256546075787912188105768258602640898629314756657913694930254545531993966230841784046885983300005551497092530353746070227320278228737906439078015109356935535006566548437473289967707565145522047214318414333420621149746625528234215212364354526099680528376833785601370834215130959904516295392546068250296710103986975588274746978579451690202408065441738023951842637332959474804680483785911677480647846768967851992575904117942090046637256411737647338959081821601807352325708333882171387306381820527316713227401656513711930048248572468031769870545142301839949328535630410576424971705366964235506036049904652489485300151957451670048049376618779612694369332709074301967657785448157064203393452990126427605675818983789111545647033147274964677327810964924095427901354300513861536700414219272060691394796485134235486707539017860317794178366803729935019030881593155236243239906699463763416345806384607661705711620584291551028369291481419722077407117219936559796965384672488195828426584125120823940741458370465800852497391123809810924008333297126000458755459410339694410814620004020052198636319295898927763928598822205013468894606098681569594335655683397558136673138004808648838140638044657056116553520201614461372958258908253137361752074607042556131635241727635960415691665920513115498955942613218065423574418032354193553904799406838760145864543659131869536485569163216266797179002799126542968529535631852525797168005186341655308945041267284610705105989402760751484808109382001819143062104808380150190928216151693880163183191960704193919868892877697379383797920583589004043199992969372617995970304936533014485441513503772847822992479345955213437898851389648763517267660863927956177310448659678762413446474300557589778265575544752990441870268196279863738600868841412778673701536004590248968686840713879187015950087340363936903522143353453263091800327274188911627369321248812304690459875516855596081073891848972934837007424770366523619263624556542750293866285219676116959459167107596375191720242116957360920937645999651787043088429089326002573943565702830074499491761760736086233952594879291351081270170752169526832962749768756054007798003672735802176025971195148944650294449017662073530228414285336955484718266632567855882777193466659166286930696289752952301132918813002888270201497942370754632292215622335131722050296787873955234434631996267061015836337931112553465231809886897254779325014869730643196602603502441210254092214143839824086231312376155551569570328600914152632011965673541298286160131309326525061848488819549490551898869901728288153198196967526255935394273674600436004775958989901662811003955058813321055950820965245976691376400878707485643306617349635960743920015100922915105699120310512839233598991918145338599423842434203107210899245344546337843131886828696272838074603617405544390592948181525133335344775508689009018793879180606828562760317840548961279442386744076473788830784819545292175224409854122684863390300780628058319292661449663386506589874846883026775137973154228274936794977406198366974244508976558284274861157511460077317989904421662551865022234458024728163529076330354075966619485870852085844571893968766650604140022335796814064251494461839210661685103368309168961800995714898932268734972159622547109064322424779042305074384804311733533758457575292386112257023194713379831593655618945658959780475294992229908150741683058104884775916808389180156747540280102813673585404309938851566473020385495013114811794366749567702791175230104609533396931269158987244149762244965135325300907365936464341801422091281261590836898923193561720666839372054006847244945124141412895517716586551039699081722927985298860283572133946909962441159222826015477851095801432781253749656589477833338500958926849602378255884459401575192167665808879574504017743103221626769529383983366385252747320453960195704903682825751362087756981226246018880120439945155549951152974296600139899848770224527754452662383751254218235090757183603700096456053571712757793638492147270637014855260698199009398078992776190344101835337778693350339836391569218653345919906429385512715053954244814194635328667121431904134592734593655186713928454848204300571783087936621329273194376881284879883868608849108678294593340492473975383032445068249707013827574487298249868983731715728970378637316073921624968643315299962617280719471729217518670975141476726212672120052887298420827505106221970753918239538572914550456398109485732335872325193796639021151772677290030548345757747725334235911171641141789227873562101187613529964478458865405284133732027826351869012992473056737684765837795181288673720656002168245920181088659648060870266325767722393773694249230827003536413816563452725485192530339801846163370168938210591374554344457060482468445333373655981832652858679759146088602507464786703388058018421797423178017845722154807358061413628306465275504379466508037235298226928290107458392220483612615715809164929113471184362072946589815316320819717393147131472138728298722351247313747111938342212644436134942129408923616446946634616705287509038852752619701593452413875727684211076711409848174051231090773009913737419225557627129139499773008309568849048501329920078141509183930879383491084075811327906067675872234868758170239517014809140463227952245790988863697962006048010954227218359059122700424029543400675391176263536619106916263956231121621884317162365751620877891958608664896564875171657066710509941421748785463416155979114686416056174751708034772281645812223199217586376930687630185734708788405993412053200876283526977404261964094560809788391965938652429392625579879754680583328620224933103045742808610699609245719142629328046741112202635589863364024030367997402180516190710573060913326192113679376579367612230917345584956552134628643384975174480786999224951729197721663601407127351584160844388809240375595868360629650346504330082228743731641033239282003814541296126647527181762716312310893604233626682386730904748871340148440604302446147914191965544896184670419545028673801831053214931351406020424246244999970026662706228780122398051005878367077814005819802187918779959017489409703755768782788242668994591060362590720217410695523742265960530164772036319113887936395779849738259913376248112276185807591785050696479533749504545112804727425052991757216912082924873072244262473837454590633134621871677820163487612885951541699945528917487047191316540193314104580670679708599189751924014884588486202594118871334402102640120476939465676787312778566706556849014302986062635907298798691009040969007447112568023172909086477761437091379514977927861717880422885550105594448098232286062075754689614240150053487572987942162362301086789771597030810249387932511168690230115817638075684082203577451573797415174847979950530529104999281915964766372570674408602264097361593735710082107527319949425765959734913962173262064737872577194761825516597831529921591596494245542150166535190340791015602264633356496258486553851916436343511010599319179672902819874262608298309681905440374744032498304617825264865349586984312324921554707074619731389234348660053186059292326887409986753770711978578496705397332827475809926005824915740353563416161176227233069409612750816633781057366522913441546348840595686891444148027867140085128756137218438178679629151060366461669987336291239755441798765265448139872307510724688400080432106392351682626202493030743236946106098423439794349424062171886004669803746604034661636476517189186716713125580402444609153609531675149465333695887030059949772183079348864898892883297036773638021432811080882165150460388967886724719391060076539537710063884030158668950421261636410850716885787364879101861105256665935446279490408533596754631073935984514376487189471125831359742324726665749977408639221838575926258746325342911997691571874612864181112209452596570495207208469145086026405579680247964333933425805794012351819279471592408888157571543489061424152539847731046427352988110053020315138208156792822022545946607064366702522114852970311960966219732286265404242000497392102276252094113664853431742488330236907014619023547472897137562198896841940266905395197553816805595061032249904515481038683190461710960901614794096792201228388529325340979862568015416124773010987098810145549276534129448018602753008408809022361678041221065202698421429824806389053315870253460598636861493499203626529450379094339228056755509528451190769686453881184447133611167313963135538000821351067396445500796150157515820961530241507576953487464671727294583842537488327578934755072024461847157187245379840447323401933429363801710829101994300165159473965838005422709121586515304852898179805581753851002292234812751990318213382810463776862250846386087256036708011556326743223355081250087411113913806796336908052644366816023914844024380342837795062157641997601586622966630079335444131105316707460896156646316774074676850470532919312190240259365859198502856055563249754103040486310372719930735536666009051794396730609161633466049426258906796790803512390561484505210461856052298190453224203467220491587943904956092955824592428907646412688497166013052245953082681193782830649474028143369610236612008540879707037344302408339734616950276344557308574395361842391011845505553642576357603238646498255202638049696501299190042634524916061114752916142710120270142760293747693736277668127565973772673543523400821438040422281791665465162245187240887361107453867392712413561278113594093524670651508184874785938127103704078083305057826320622300206824936863967205945261835904825949760224991593941432805700328004852151434947056607931984443851839579748740585586964736155114063658904664604899862649062930662460581309907059137176494720514413409080624743342200156583381454669346991908559179831330353474507762565506003995076849114279590587182664642768354645985465959717538065503848666624255967277596993098799616648963789805136411720464169540131297020221285552053008176042170789137544630348431475231813781264273452355068868925657959743779700447477529267725817144705476979914480548404669712488511335584346039615958112972524951809881986733313083918395572426461781512716002429066369580484960642447289452798500484127472705318000324063672125038475206044721711313648896208163600357635731458801849393503448156320109327516984482998123210696257897783883500250089286114075053456825103450858476585510514485039216812865343701435772859082788196715416815442627407024611976904085998612223029929126431773501319966904495446915496239323872056597067385555297389848797011724443911516786397322833873683274257845781480663702265660067380594146687842431792072202787833450063198306576650369170258274653386192690117879281407072503183018267755621975691364330966991882963041226207344427580602122334945219056324373772738781548552638501124357800825079963837403245358287403579914752001003684067563676386198348325765951059989798643217605069909640296458832928010213440007331686833177737745659266460894382992940100762395825554507750150411926481446756246531289899895249410785811909975324349261991562224609588542000060142736075167589458910051488660758347478572074482500488925414386399042874724413405920676038938141968362967495423915347246810913471192379963532534850954374474806121155079788927768194101079148793524200171910103754813042195094408343162769997378605987402079144830385957046948322807586148435750064201548280614648896038456577050468522168979482615626307358512575234924086608076224278934559162513355648637644279136213029089802725107630453422198161749639690543478527882763889774591720111496585724485287658876835928334672170525780601220901972899067966874607164314313487341139744976051735988373971742784555904701325811338080159202949711253799416861755218300154641182370825030239126239251978742973334232938209754282999982938541711958276370450412953519298243578392876354060731196765192668022524117781075193558505497875378866350352920590854328372015408594916882090241231499181655707795447849596831552000159354839255845355885397019759403536210916462142769321100982493288698611457228494574704498071998827995311244456800693890766933777945137537913950670702392815100581163134041444453507192725154975833728896911781687880375149024419211995045673982749540778238760970599247644934420114069913742282878993410341613107394628024289816345188820715865975791731331733990084099373580176183681531730015958997526412326915536497486614248833544393689253787183445731689356935499138998800856460182988058812391169303276763728612398970946118513561632675422185785549667401376926834068762444054764351441012092955190548610377225167404009963769774300259135437224226365312613752293184588678702063466666465414158388354849396224083890344340515681127565473966051893605447172834452183183624391107756343695791797144154427094522645753844304308571408482107556941468871969021212196151674221351505497740351657206718566578796401186115845410295043660641785703479373758198243426669498222649371267323596550352970265341720471019473398395432987139683606182894274803675527886862326635223452834428036578375807047011854092567109559094961654779735901117684584329345660388054581308703417608771676428634722530172529407506744736109353050217483572301842571286832618755963693480888809432324589429395874559873062709526396623728127752576342412350774573931630932135090541757398015722641954389305041788892818914231523224783629697450992614346192211095774265442067511513184307344136037499890379813418407956903821443013670222193938268675960180301704614655503410251044377394182638543430807648248632129527770444881039653311995274902516200323159596445342522290059243109286895317319039170813208583046259840705146428358996364169682237574140846765870362343293886208774476197998454154810300593859868691737790420837337609460047325290116482530279407939558447564867995671297900192421740855462943577792094112055818125211820106938557330633514894716580676679027388965057713182987937022763763776905958064506529971150331349818959756620570180993222586436506316685522864228609008217289424767892955075527601124699962196185870389707173718223484772952611246135915161683385815403360146848688453374178852319775273816723184291283719294724060293047575762076011344601794844240728615260600441237967948503288357744800697680220665778862687810695964443372413633962741383008748008760860568962442948788833503360628142919525189420444729510035121951238157727650691772856066103680802448341801175634038766788207797786437437344134467035535250318870652926166720932406239127169112295016125908817513350867544045202295495629307823541503885129300360174001716797099777622738258737486280995843373986391054575846127890506571284010340382747650948690001784241659249183376896335186539721964812600822735475001943002978179774706592094539749890955861426876243248010254237509379003474789356722301688658261754128397659094741065042107964944327530275351142548254250775828817685979385429967852520331405312735680008570207672795598960024876242038528768891443861740971736276203364110969127361173981066547490045626411070982368101381390675486688406264514408576428685458120208884434839965103917503830855714098959001365776696254630342203104460737862258784223827348208167157797744534400511116920181423345233782147568857410668695448112545893051915780549995126811403754678636793085587402826618992173980159214611118741921197280212101506533412791751830613514282930258429580659345600733813566213394294494909243567862766645051714681827113446061463837209928864501861427521754263547224378349652918956613530697607325784186735336179396322196525940969461429872042644647209218187062130648557213620132423036673862142902712487740103887927028019858496486035921756823792400052203282989295266430199485753141414932335727876403205578694244479765315796578812821493757637200597868218037744231286927523489367170690047381688703087842077659355569090575496048545421684660191662301163944180094877266894075789693234806116825181032859097165079331790373864655714548641287538935871287039554090765061102947692743784351592295298482950963355369575254961088523874135517846237981196646039515414033551320328902667113097413497804879060675021139363775608827823753273301485165121232219354251035937447935427110752146250731527832231941271087814401050246090968713261839869469520249040268870609391155518497795629516750249792232830605206583480187885414114275080150233204104237665550388004548552573812571821859019964188283499087693676927896036768338650744478963470391960751121671517623844631252659090609394891198277173944713302100597013751409831326872684617375416539966360460966630005904515487900701656372311152683192088304184779939762000088137692132402212232428322215763947653860442505400920669176842382488269291383800656058545972705158628776335323731667968736033562075591913000167117163627459628107765071105871951939293771151449579451061548129571464180324512362706325658052222390294904140938645002915146148688534263083809988442377664009748084998793317962321537542183182710562195750588831200972937324162530402146890773425140748717388067865750851286711498117299397389739626668604455823005995482168549251757174345742284161263875161592018291449003968147637197543506100945138460479765319359958818023680207414373649040661932636070579542426351713902798122545525045565002930805588615719019766289810129203985332775769707647880177635395843165443979961832490258298468745348091112263666478319151802456004658154537291399358215481518389866187689527588476777020311127619296650565483081762581023802644694208509095173412564832643460830724985066078814958758407589879332224365696579736921685977474297309541928660203090024655339308140114560632919964879278290513619278963043843801042635796001465168160760782773576525307287984431746758308416858677668349195821690005517415326210101475727322342547244845162145113883103964365891319105450079343555120663343140186943034538337897806956975483147547704277381976392457473061034433949492357977952810935388280206530657339213738974153560595134578877647166092048314903426604019848679522936023575038923706713042934459293418742016311308609816978173738314500988721595679626033899596890560805841092948531113442727000334422009417889950308354566584325278567249481167016065143205339310902850794442541602144755804097454706494916192565529780632322389921662516059648520734970498019216537453845440880114597706751547903260462268176160526830060555480652611083223948137205213999133035498231079404815025940887731077387567442538380289135477244289890494790805991268180099926481478118440067369012309827971197581968776773600903560020675098607116125746200720930472723155325581364732986415068748856511566899364059471539111380709145778691325306123397346710259895714834395341505777605522481661483717233193112583173803100009706883286516003325949489211523962753135684815044129261204302381986039014865005891228160000729834175180955854319461900995388337711438999883564387969453543109716826540230418156709514901681555872546911105931509688186353893384226097948116768517514347579426579501308511878991585224103699145027116435172542905944035846625897019164409794934139248510759367637558963032845550385020967984635345609914184194399002637338325045781986839075225936776041419828709793064968228993714871892268678897834368879044720833137832989876040408985826349810165471433449994509242572496385273532681973948093924503022008021319845386556766933046683769595585629616039526873115982462394299234224267428215365849391247067486609679051748616164749825057761872604609976585275965855983082193115649927092958843561464926533088824016329090966788856273251673957426818206338910297141493672619570827931173658566594551197105146005036851618550176633023630313160701031055176156726981373148164578537243986378430914336092415799375258979741178880533909992784832410477470103389739392124494028780623486123089087484640274038066982817917924756870933215970102877414804011407384976754341341274614523495635913351960531301646445812024569133838586802827706845766003540963386921970974671466035090886612817733896300380958332698566105214718355651676975258860553114634817106640473505115532570643407614557470287263693781541188924370286980021900165876642881080680228827252292881037367599065072216966991772246186128714191658760720227306775973392152165411341314790132837326001084852051109443134714577337487485102466774561106497667054328404633870828927499266392651502269859835286699558916139994860767474659433809349728801721565000603368022807049073098164020209862102579608872527686734712296714644267361070649863965190984764284756902604147382769132196711749659462641340977231911745034547087223739692422624389869746116043345982972925038216100193362007454568339410346656366848859772735274942214925102283798362844673222089326413952152512052239235465003018740248981302865550461355889529487701583205633881392652782807042325665252994410704788771459885024549941656457334156196255401683436325636145853931175620638518019017863364845703155687089032252837214184151156629568305292509494661642962418130903277739193777788366606732629183956352806038799692421312789513438283784986196363417481622927805364416178291868241903991037813222226869126405492730521916922514126436686319912785817787475046118066309658904948398094774322497947904759791606689439970611640452724530147601413458308674669513352649507105038782008057517826774013036589115968607658944003378033693129047311405763678945525108375517886219886442384880249420530802497155360979299139497886120373967171031061170245135280545559370402586442849709147707623962586423143633639872274091009756249357587503646959530140246021935034125564982813582194617590509698168541312458244604629362061639870324176000975322415656737735454088361815508278886614951754093818176360951775741597357629106181430203200588202386129734743016215563119806820913805937751949006091666327126983282623884069177510892619387159890771117069161924316269409791806197100478804356001962817597942368828641642435594631228881544240951542774584234140742164716534295530342476475513100316972224551657008380062626920315336223816091090557958721110278929601263694191244367216315013248430625983364268580627216546897875035814414971694015606358989475343988474947179218018995743189918533865849419480209030082381219926490248905550849134999436490454881551601814017919896474480500139509979605839512375678369049448355963880689869610971472925377828606455518678841978233492013331285863032096999937380084147781661103791314908536532531535987745558165464266528129311285555093964668945668705289138784502093790246389672354086798497006819197816478120183102156276551339420529587822193098514258928790901755358069930184870279887578749443540217363242789860767895124127429282056085691234110424997301416902120698101537195089476346405719951418888644328285688555345968976866512789639022342281532082782977857722790683794166030812774505582471155073214715347126951687932471378617612073403784831342556094048291733131679494088882710903978856023193634786759381950751290416963342301235781727814735881276553286284540307833495406587072027285102068614866040521383655794434968019731148412420339269732045942669248379382622361626009051615341167741101046297141827380699367472542154337153063617492040747899053524071612584844497992176089828607161494194029670317759095127713019217233491069122940082982827329642395765965521149965213650659781023777569672617125326137532048296557506855463825836744675491174336991262305285002334815924498486913963276379388125352071774692226017260059190387317343950437123230633687537671550398035967048293674531678001205954759546614705768780617894407325377134105320147153557211316998391732820429868576101503521238965895914376760170992581098456652715895732706496803142925315169075291964331410022859002985214322632709692044645471554963037591536149504967066255965197964113670537112536029357071988570123812675866026950598935161129261824270761184330430403778245740633592096852517684016699136899289910579754970213533525931342568936329665549380455919244255091044162420395099605596188548185973065310809152881455296316766390129329470932342625316912630866950217569904574539075589010066813801003697557404800641878173886805976666054763652999085450517693370174514589055724962063555771423439295129259412270628307535044193416114011816025086634379552166887275946447447415022536239864540476656231377249903125380929910726133627567777850803175457320439247134103633396004023291253266364916610598522229221396955415171145176851853699137794703737620383199213530631533842636354138679181718087422154150061026461493365356288482590787353390348011147622123528968830476678899932532997401428299476107912736583340607422833945671203025822061117748992350249597020288291711625157668872071274144312485725290164521304497422948153058051499139205383593882639502811796381764907894076750597209382222455687405303382932356966064997235920078930532990027828294333074685790095450961184885291138536466826660498263047990333820651903327245458469259609554062209751663501618748795041158251877858221715208671144920983313081976077197778397652795816160726466980835638742531649247822999132209006694173013953358918691100817908598793339012284190047014696850235463414628116527439860187080673381542417011241262181058026159624234277821937094551233657805073564294205602084903619618867892319674615260674796007608835676440719401380026006645648668307601670937347438991962480512849626517186879233544299485310263943976501811683435538368378476598969352046803299122895129724915621629645185674018123576902044372575440515330964919398081878690560666028725498317231093706415261876946610342233107853299409106749609678094033155058748309260101711104129152221522311205119443385300794911607365096862051748068562890291614860063268336434356600495283024378590040607176179938847723709007740569005941575309374199716392273796119176401988352061981310434314031655052465863649743633767217513460403006468145406973243803250315404467384486961806351759319341564527165670566292972954645429173602762092117121090712324804798474629016261518010791976753159975816130737354251206177712272654890556041024555861325101818580927218775776123285042028026227939452856184449210522021565793587353663739421383344685471040543668050273786594513028453004335073336677316419546670672561929127755633117490400098915638678721164817628636262181304813640813385917899863369661056589341619971716071566350700397722712298415870525313214946530703806657042823449405667371844057627471995882462860147003181800245563726836744569088501825742970604808825045226838479368767650681392895854248097308402512803138782268709088162647753884545863995181494604384893507701397022988070501012058150288239218219426778957328963716266792041659962649402254198188926701041228753874376285129272395608757449441313122326715387060599964188561630421208586138969347447224124822720240300960073489468624643964447402180948027749565704135086989644841167682025729585321331632054217996614450398267800962450431831704860882311621167472405093819682415231248718750873895483849999783579717699541765738770492518302602345005800291239070680719615276414644412239088114824699244841865627260332892637905010698943400250502179096082792375163006199706483267470362972929800019508712802896416232889301116706752284475584210001532173790457894991530450204501733876879314850295086054754912308911827316134467271531626054194558559038312143000825029837645925308598504452915714516261156708329593946793020939703946284294217597562057175090177995253194628386236871644252243480287137765171357303887605613177140245032149327593873811300311907303552917996851179919276435281158095437759729048572210607880737619027449790084002766649141373932195031559513310802827429001749402032530261421984738147911615095176417611633607628258193277265952850976991163385110580961111154436062089858666672819315699650402792800739592646587313793500302357565261475186818882628949557575483381639792266120261135691487475651656934604049948238218663494315627248210494682690964414007070645074240237683992361033723733332512401778753860924533576358687155997883975444452045115087977963862943055870669389673197917766994841956775308998221904396676433447718823369079365373567390265145651970690085001970394507338296696688121239363317325473315457885623133831784972090819792960499331452936985479899843802323987949086589056820990570217229367813176181265286730252380784029664792286849076784424807267008573747518408700024861306388552704351215930580556728046245565390641645084648885048507205170267108968375171174488884634522985288367116687217779301540394759846742382191425859802330321285865702082109638568209756740862986669309639563127511459408788197263414664059898858434457441677672458429520508119972079924269945581403915473537797487854408934802501794210370480086305456870607324938813112685359713422031065830617111302029053537095836219216286522458420624310250117838289047601294664411330721475509406279171591920759541840311254009082373665717869409708718372674449193742326221751157049502668392664292267396506982477090554412739298721996482619497512620755801773943512000938768241888800805358216996021849188736276485790254623037527814663813183976145696368897751293458292181761351441094007633177722752365225410171944621378716773158574307423851799433518912747729998287892411572019527246201987649943222628327202549606673919518007237532929865331453255393229770457967419671818683998791962858775588378866085246764553410513520037712347062311737097312407964251191801980946415333857333246697463015853016870316592286633988124725524218069176805028832101669270020005828077172897978220471490649696365843132475748907982230067092306502420792489472460221724323586892203366594174359084624187454093651419034862783943679668496150238896146789340024991228636339307605891682062370708820732738891868564230412455890843380153472145933845404859807899502504268636402174314050186932783401979758095516693739816680604930045032965654825388849851980368892114710317937355084676002295883213512967456328531942025314517059648911264674498638951341985719077786017770154755348782130253732271477179610966585860608438713809733334881465613438831274863980942290246857480110130823210856750376742836498812677912276744583193078450017985596878004648823761182919762140071884682485949369957400369040245473526170533235402722541557621229377407458239621573274912628108270203967600125720577395993779189842035634828579976151702204750238328837722123476146189201629430298418457124179157470628218676397795138090980175822102668848059416145402021801489365980907020963663121059538739035429347721795654086867918316040869137590003777991051395944685602865458444370517516602111022573461175188689505695645705332029213331389334098450257189523353969888781940840076843860760866858807760675851633867237846038931121017674693929872794063463977917611643650900859686524122188988694298102731683234145228803247569681508754427499919962977222788245192424633846522565623707239892336306556253235194945348118889027576016805845182090589681253509084917954738602166982508813225032196995903031545011394334454648254459772834277131309622422207447671492758437531336951302599867635804966702980305778673124727432086992326169652047520711454670368580288583560200037465678340630854434440891445237582778215184552147647424022986616569535940375223221865772400424533238790967870307812916664783866103596488671511062410743607066185055991828792272503580173450579915890958020314559800765413502109403972269752832748423439815174879470198622985690772295490057249421286059000039900976814067498406356530889416855130141422705038841462649429107735696265277801156833046687516463298204407942543017133027191354702386697611210634034895966877132152614666780658665295159183503395693949194107330258309426714926237811344304129489148201946977886110614281140933888946352351794341007477113413535211803451097440338217697752524439517878677729760939356848106210396543829120097992955036493711149513548477935155504548015155218151950384689426579552932953686558174523389482641667094119026549607283156903464805424302778924919167956332169120661131294364369115149628285374950877837101884314182854803605329366037436579779985652793960709805994407629027003562374812815062004424307278156158256464378961724888237012372383375203660340562170638381415752915908936711407744466882302969507682868115214687912553411311205494122490541010035817013604611879065523524344756589984648358006965886523029140622486054995850290328994930796779085668297957597231866678225656281006575736094997841378618547933797944248671806998362596946175142038254638431620274137609420116715223094122040206792655252781175315575877953284987732360068157628161509821548053243175017049106379334895072981437270419409945998883807907025062071693547622829065323910601135139113057251374235277408895828975626926049333839338859526339159731349181773315500341785607475490634149000019710102200039317849693539636404034825474482736218242846627412909618221414791443424689835697965198974575743733251188693605256308762606025765596488361384459071069061761964001868286596185180577711116355860770526017476329906947552368178264215424169809823727015866771375174205452472840247689950213597754860727401827259827457519018714179658156698826839603635034105416513571213564979918675501694314942987750193108319634418634726163289574507513082998397071310511002811753259166083931006356421517080737083799199022324880830151940021753224154042755188498481566118265959193948011641066402368910681025112144908245476317519556186044612489345970717017230741439847852456509935769398549879464417942699424224440428873201249950607854563461138521015537045790397070645926521594278276971046924981470065151758012386595668544522396287180304016165643324812001993215842258190616221666860371926266978587831961841798212606625028735760876781344879960750505050635153200205907617892904672370264977263599957421551339740062552903074331946073561064629234406348823988865139267764077743966463879231075184465439140354382111848786440157776342647990045767589920734688463823324652774399030447511926500467475627025008063234655969973435586451393606324933548236024315181289308218413006588775974851639466951433845524352380574149706938760526888932622425802026439294669363804935117588733961630109601287737189220916948635239324693190145242673049704451603504244266310639681919965987887812222135953480417897051350724703109493145280064999322368395200387300338362630459131859390796912315662627388369732599622997116482615288057641072109465179439947133872736943083280328157546307325825381710709480446231180448037693477068977344221773860896913319216140669995487601583849883289924216817323244066157004207823392324504410676284145513344264179385155437406114052813650647960773714982270077810428792633364457896533776299352668754337123568208730680196376612621480583497419818060858410169726200056392050338256267411735799941622682198114795335221115194116083601684201944006259959488988760471254971869191825804666576750129297902916016356875300802749445047764981265714830031384493303770342734003445519633828717295874231495249308815701243888526659355031852834151015629120627432265653818060058854712357625990198592054023965046749447760213726483922156828872858626051899748586998150984518690111608492504131992930898636737382161071776883137554405772948737841036268480791274032369526575967545314879372685372639060613765067752214473762009141640480530530009199043855129026942033153412783023151368505849426580008512952006852149671079295541784378372940213590482711827253567119596247803351640607319064517813139233512366375497909177097963199796944607767799117200488651360280771159416090338943283179204779977064513263572291764002421986868350948942355298386143832339750177424121593771648702652011031094750388503344314010115363583877169409422353587784526939148385220059967268345815135116210735218226661735601783861517362197292301897791024554679471688062756423141339993828165300218705145497957734811702142251035639878349851721707621249509525794755147892128403764602441373757077378607902139862478707281901616210577990048128471925946179260561558269314022919403212859001506200255868573329528335693643863234334876277861722586458965478203821134796884009068004797719790599774298234558724926740515895280810329954584518948771125264573692022872989600881817432917906503265214127780408874040942728065674801366875173480471619596927096553161239228700349743695195435008885608219320912310614605537501184508926813580872055745176960191930943337371079383792560425112018347964842990473786011716572953074574492275609752884782300689534918308478922932218839034658351124874982161609898520193137912851202387812651845721630314171533829146803674462035097213644041019231553860026916118605693297190504212791965389046096042950434902742169686823976025286295997618908012809414320642715380099391497594981517650981896429776962635132919748226811276716575811306933159674497365600770940357835484783496636106934196576128753532350226242764226775390679643071263015969589866854414718444341007601732966302144199811256675420901341742944184329927813771169244949451345174487048046506263171797831374415200477376287432703933677944074389093358796842962536661603745896318280202525265277785537322389734631569815916552192694440911367376720802666690142886155042322811609816937211031635443246429545023595297061400206346025858291062900127427048559834915781089332499075693746454014935528956768928105594215021426318196825146573381722271608745444576893148108606060195607093865010345686249132123365577455425930621871687518122959136100599427155107942220645124006311526433094090009230255175573317448832590470662309201190327367476639900436162447999579699963522869752351585786253060565171580645678729109736351362551931252265739419181501307185425483173263247922532137249278346022475091972623393376293303821288341580977002538368282449009014498671268116258499633617445821185813175566970523737510879499917345962010319518215513914270586682379302694494193985484245472879017157788460195271577804752943343900544284224909701299506097167717512091057434021742681473771718749275541240733441343681109534141948844578844910431835599690287865464591492805731262501809005116234846673038521834805162578717460888790308032684878933288794192243175908309303125279139057734699921303386082641222809889868264421962614054512252761118936571287469666119526326411405908877948331852401331038684824271281874651667299558490497755125117351219465813109676114855285113029554787168190289095803221521334634165930894708024236969569538358235453717284654238035931270529415391631740356001436587745132680288228099925770547630949663683856071493957912257667257441524575282283468928473548118645211311041199779378709181372431895247808188147385775837304080671233032638973045137427584095728780785892349373904514204913528938382381498913570501427202205747310547153150716601223965613249075302732089978332599211640290916178525540299644677060082216385263122967887646382767683524586332003877990238678915846446018673918191936223861801812621342133269000473868346395335041277564828469902937046708240902047478032734043618450228041986983833945212150203261111041012115001886755015613032180202125575593597067408895011655055610466991961783612664921750653806255610055000607943389217730603807360249443045884896230547414364763333411183996631964307922329680847794388924114877045160276156713592365211103608230228927533682011679803632468576714216740566023163612663552395780792292540687197888543500614742957837735545592698652054390260243644817813417809734507059667979025720747389707798347291127747078852106378208229015526498858611269753304704508970352134447608209988069414714815984911210413791038483419559437538110928810683221027320095813590250629537240413948005711332054105834662493448310037597583685213727270291787491800409062836184131789002120201274871571328205042838627945986617549605595733319614766991170833413940445862069226869977723445284923371405448018747912053678410047050660507820066108755119139611061613494048671451672393850825263346547148887323163229579106851949730355036999026402851668643210883236710080116033452164769679575477163678604212312960737253418102550196242222957354195793318948507666654553504965200110882885401731852824702153014006002899160767960207008863946025821795245471050868128228473345401850564560754926391359827745307851104294008604421184928656072253404179880688498153053297216669276188906157244325783759468400381595723417988181431719723394037720373216615407727896806618042462020844043544674895237539602513724315923464084036995992020521435023004860075629867608241470608466844708978289563141999255884889995754614254537800533721212715274206358768219729700049342771760080756386421527505034488983104658513497749236340477418220574172119496851322228750907159576230149394305961599445815643425411836951251248977873691807449775842233881178686381782762948656049156336753119698486933371980908577635351309370563004644794691315094948295509640549893959979007020126963830933745141556128668376137136920401417944183686627738612452291721223786895482177385671639514827954345982507513356032669356694132501312953378283249414616609854215387495744942559511992073354146414983390143416287754538375334342775617972096026509636872244476078840478565701246035991685811349719506525328120322066264668747674516346646837841561652592973807292800824437410336952784255295931694460575223440493997612572059680195553192080153367501765287265872031389397237686242137778046214706493102589934544385073493352370640986393443771695523306535130286090219008228719727204471441874689949963412641655740658823011769747315218041561807320278551906671946771213291053446451340144131765537600364526024949756408713654653082383657680328913511531580038081108966449093612179180451594728640556795751333695751798535484408615191454944437310547936859820521944940639910730161037486818469783771524778354346994176737640553767654737456844566260375279396514982119860549337699425556989413615300675199327888649212388528284542987722318939137777923086296618170533042459126133190301940302028126678267957759653191263975707124993250406387774489837880444765365017087341833739062023956677129044868420656653901934759351231899075176746514898062588436484141667163227896458168306632508355134186896286273767899749621394771211576149587849816372049338356422527999023531833948419383154522562305322271286331828609133073626261186102357874258064909131731647598822658906980239468238346097935601635764733253409694220358890045222333435767512550565843180063985157646494339381743847125176983997994419819351421091824673924977130858343548815227315652612427558098813173388796068149921530472263169194467862982740321777906059121340128063991818986508172632719302453144739558160637649635915735946937569207819539134966266593280678567286895173337515946101354804568744927365059768785272222845248918677032735580010650483882424283885331883713831202208239010812454113274147954612685896135150046654739138145905596355167830637921173576388185271061979823005380122439637426014557633398034916240580588040693345175511392704649378472910332070341521360316239772173630339623128371968580607987254904422895964166710830283446630190766835852149706717425625906576393646410113442863879575533266855085520939322116031755801299188028323117467370955931930168032110692073555159341470204310541560899032096008816871633813392581223413118735727623271491573442027478245170219972816964995110057782574341509618320423376434593320839956591433434767788355649367943962832505256023810140496344801919346609942687040724156180125117414194471468863278863470520198716814528410712848671086973873890110258707166541425215276220862728301184877733490457111079063548573944375566249755087146694653781172301299079693462158551481956389582987906394474337442892775575322969791438578834517523659718970287177710968794075562111996094061836300844978030368581335345114426503697684330064195889503362030698574247511134138231309214196622506331944709063790742224844439933886837759071031903264847564921552235628682703186948341936952954994121942424093500768881103511314387841299274584957302562231707476326366646357604248420365150622282023660185116188492576837451778971942866213402367184523954257967684219284804107813167079874849209726624796591807494599183137337107607496221004476298573654478646306489763825969159983960934113790218705372776693727767404075519383280089738393997008538102845482608382781969200612226437585775673371897240345730874361312867247462179437075888649827465843982443086303901004767179019257046311283364558200872600146153577128095519836036420619677527218756095122461578203703025529185100726664361942739680702608428170184727336766740177923032798304575503189535808528900471732029786243171363891285450393249392542621897970720869347435760870123798277589121595625271836732119811619939749434285878448694400093272522647650374726956955886174836439161681467500482389975558257487421975331025204574229121738388774534255574877293484811316824156465910772549959968577188406840185198123301622217015011028747845024069505888414960295221955664021608106565390646785196801156524556985418489515551787223533162410454044130670882003194739884566888927699265027342022034328829726938195333962721492598621418691106507519014618619389127956494923290158331706433324631205573432442374834161875309127567063189126037339087618739168453872705621728874788535312260864424625686752946496270556450489655023161690459478418191889345553733778993666948163658645566778803544447649011203600224742585565330879056669055397690415588645746826536153243298630611007737315832450401317881997855631943407825067639362036004289247587700616924640929307504882097199301273656201893583266311796982277066118553587937282372774877123528788038161727879633791607014605722515624492185554272768325056210527610996878584979212080678955892862359099678444689680207793179861656750524897969536818531254504509657363599132147369451424905216983157521715326683661860511506378594853221034906137912504599320808716862552069981409084279638118653943994558678674530857599893622997977744121479531158982167599338196129339043289861227725799994345422961443086945077869790644893675290451604477571911138065658695232330180922662941886123654632581222944029357279247657545864254852507709202165160365475123879281592873506509595373947881699345817871219245756782733751720096955628881221382217129074199948415389791491516931234237902336732408644498488365213201406661281056438828177630249599821596192036197140668667235242207746167061003118163691198265580155891085275077077167932105872356793136126162442205421846645177942560937480087847669905225227545372227718578608045953591669254803675038463552526144231357025511837920275946217844717000179069100364184850954908870416264708377709812221560105986895460618831510328281691238142715158078895858873075262584464067261781181286947208656357695508382621616475737643231444578495117875845079176801078031694109029641316994597655849280024597051379854938283638604892199104353199190129775751399265713801905515955831177979436662882995088704138085737134662963400305750782721531449049666565094485826522660845293250141289398508231335913845448965692767874040298339202833251446112475181401461575003199444796131551695737309297399912352111826609826112552107844766129292342345954708605117511890148074430925915395628729977695409852489478617662304536765939560194999958165867802924691108911893450765159087958095663514855434040596694625551108897647678627032716726055752456900897842423288695912292597333776866331066525741265767590045904897695116004763998567068259479201754002064782491666699278005404889673084315862521115300641104310713597348720608465626166863443330043850913409459917146440130162860779827817040877162752802832700930908990964181805841205026666164436798246368373865447945214253710619867581585891165542123699874046905073649400659253752231751563417881463099002816627376543571070561275979737332108820682632327099858326949061142213398237648792679375330645178149234333771091728355747627673547745039847483971951436437327321297271647162914567101790748419696445960929225548421920182146217938873480055893916351658097152882081466641942742153053614796284118372559916663287288076838711861194092277472406520196118412247420699122264126604846250402794918308274628817170544149472874401636600790039721757572282402098906163841486619099664385156240756414039066253390642645590560533230085055450288451645197486107105065864176852649534099634179551592246061884674241459125284419435660860630087366616973225538923873500763272264014122250792425585236386717653541566082406644284663795935767088397078910042089508726732176424972432866067186782475006987750486378785515393699708115366418988799652398875870170224910970227809632505584599123580992607039183410552693432016492807549026008415552871264497752381975444767258720272721185560397023407762613874222739315159764985174842719920569264822418005264402503397032380655920545259606676563491581205875291556508338396569431264494945214533862278854890024546113130211270702082308613689777324246301346098395078457385295587945489697219228877822678343327523495096779231527934573733068758676890740916043880082804710202515668814863270996177883391234862619691955858761155420409752002246728219727959347268654848771258983793621650780055540778897237712781683857923179444291368016004148024771823725702360217944062680233419646499357432291610788564809239213384060840573615278554593582647241566387231550823077939142187400904520299527376207476808827616720406431406209644153231714580113143117144249760717374686502098412212918970847313391067990684104643913730509362883914999822899285168077299872435413879583575128309692222762783924072894825423993987151588642566047800160782951156991118305699412885954211148478838234800460494248990066840292650630511877379977663272525544840732469981732766959418775682270780048624119093932416732599356757311871513744402296586176106943288595701724314371850506200343415455515916823249355117830336061428884133920754407851567771425260975279114878946469725095412796699939645868170055598110329503799966186714928913405447369126108509448367683399808709461679191962461395011696570723109714495176009027288655167315671165524988635157157520933272239544434541869764734985099783641977187145485945112162040960777832555635587499378451089837219301165911861647452847126433022870543917424636837275181046112294388809418390426236658634366941415564153500015484368154041717784446397493924625806295529757782187890765413190530032119952913334321413931387243468738698993065061505596216418707633924367244889722559732796083957094705521644898766416514567059399876368897425955612763484820942214844005328516257565895275743576184713492873223253354135427435521308760903769654087599175795442861196754105573475882956727599507948354300144910591552734156241396117411268636583000683051635350705146801218595700332245138172266400852257898603191713926233255731696585192257806659057138850808183808157793367744720221691100427163320351332139917358690627139238571948351089404638024056662891872472749089998998928141120093487721623458129691514985641715674151937481233915370598015922686975063118260323781806862008268019919746187268968149428413171950244411991515019056744304178267830692612587919939025180988988176448048675914416983338964184229068336594482790907410976940805846003828811692518464388417795905229943846894611716172006361931882773021855411007977597307048226457803715513709505883216935483389887912963328003244115217929754513236962657705471260910493451129215061026787666623663868937698854450211029866276660384576743689428280729612746968812895288116055886000974987254190351198522715911993221793146668355453696929603447452110831081822731692384646150227042424760340168693376701199427763549121783129207490338286152424190042487576342748044145765059547762645724483429428000186199649252158640686504641265089333262941990280755642238642295323347899832147827881789677999433922559443047030552253979100284603738038751948991619993515068187146457843405106412580671719536694329157411165301155220050564232958658028583175838199694310364744714661195770110464509308477452939288134070624827120688079746469097462377510603696709039275151247021788125363897183888919828389325511051646786497815408060460705828505647409374186156339911558825107792322435881933838074034815293924461193687047363840141278107850754602469386976806593669444003343801338963899524625351254877003755555269422861004140110253330254491458699762456603110084840827851748558118581238865367792839573182022924147135861307755949015502810771169873490336166632608134606123219546699332437476294626054373850203989093831630816167347977159456495869338936967561880979151063299272272545818522723454642517914231313872483279088328470665569924186979912363261649671048455120411660439596463389370180548870219028271828812360531561739595335384286622618189852625086093168287445921142573452895036742369143235214347968693559776347804057834662643935855681004244253915764572614017453929674741769841503603582647856405986673019213486879238255046744643677114260608818437985233607976914177874533320274799493909839597672073397611919039504193744044505728094006877562418245227436398992257760624389529187465997858035634049249964783516534092098313658623393332656118444487024723512965503988904849471003515700642513782980947767301232109044613514248501134960549998114301243636694816690428169295320742823216709485001019982174446371165783638037186961660904381451631933530916579063819501055907667495020232649224847902289326043689985347890243715521908463085978449852754463006597687973743106705698612258065715838140837495161083401918855572318835759910806655733231149202417824500448373729649127259273430844060064913691625175891100503597462521268981926805568850036900405445016284381185528602005719014497797727458238020133011933445058325347285385881131968144613395451402390807686865802303418519607233383822373635386561934883948554859642419005791320827706287559242098314160223871313306481883694513965745041295642021331096478467930201114951028299410202313523305208589811939456787897497201987062940942536882995773544698556756910347419192249921622272926362324060313302420722043450218074987126646857274713329565278968615595181632765218303381903304248250830711330074889735527039925150908921954882474968898712664264709659611904478526874008130768121878034564791350127201995921527303710878387148396139574177282402033245852297827943717694104574253027139681391335255809182210688763355536735358463629632903731981811688398969749137670217165751610541660076567007598754421557062311080111470718480258374479467730702965905806231001537122593392891455141624589281191223881392148625503371328073209959366035965657458377736121245754209029072739849411542353814939788027256177690041761230540463010204894622945091214929952695614894974595876300582540271764511897793787590441981618993269934830033832885774941814883458463603830657682146631398300318283068547673658052538219968447881083083562865078585392219697407276725450913768282777400736997275599425311770872803124942936325008715580092370186143662549990746297090397549564083197419570777240835927109714656532309392773123855343522329365525064555105074960342074307007517016798729011982710393900967013219537653402166001949956798718531164316853824608481965678316542797675993397537685530925380711615258709788683113524209268730232259724842608534708822541879882679329850260132683646502049598567315689198849889530615122747449033967276501433682135388434190146120701094833413042642150021202697997734922671235651144680881077463239661946749497889146577141652146405632152815472553322203686484453822755506773540937272879237789597541007019466391737853400945407657895631948817629137292698106685895463420001839767009919448461920530516161047818359193647242588913199917436216644755288675151869537360795301702189122161227366914703084202337617128903086348017147963249282004636963472242689043721154908534947612729422764090289076724918224270243835921795225769565761014276243319027621986327720776945954812920782145708278893873424551693305413798737994288878051419699521016938810464306443448396669972885669473437679150328146939749821625536606286482316556043814564622891391140052431827146807861955576620674956480574106113515865983568476941608638055739974886650079161584486804827319708076180304453358912484994803264237498209895208603127369977209070921203699978925911559682160689040390225365816862330041424334210159207269570115376735600656418158476736763424390040221163804019557253968045255845120925004293179585025147775610218111043641141076404309905877969708166432384984516324123785667570699734454395431132846458944478913421638476047588023808801670342941752089646645788150859050274940831306623927184162421435507066418725800182784886414706262683875688232189572028600316476264001518997941631956796745315865296800599239379872491863434923050113261433495482331158022410656462687940836285619027183750099431185573151135554893824311702827632543355741428380327384426276003483893097903506881553806408299985815965304625955509820099997066717737521404547398475463237479273165578078143577889517286433744607042544810138771423385286584555864063802203842957204507906210691921483234386282576918334755922418480855016739871457293060814386470915154467772734916535449675409410459659727119607049671320386255311835256738103377657162683045795106474218311131821989544054460211158963443499455949331929492057701047482995656828301491825061111472389426322055991056320416600507268787743099686445414796449536377702413474820715343882378641817054645273069306664251933629401140565174737132655460241874279960144442956294525156395319503092978165736261388479295713759728775463375764674099195871113148854143320908754517525676639770317941122432436727111865277703475490593549633581346814855562301566592320090897780847774515460953812635309547356814412336306939217401081560550410649213632080136722664719124042163581326700435622764788743320353932428943537093182375839694549821763508068485432738817785109080900719426618958556377675364482247151064410969812284610244617001877922408204385414374062029269178194196253838363077340952112990727553908399370213953577991275368751184067844271320902394471415544938603074182366353712508101090161002229336634066768375325842145240492728379130986590960050663001538088192428017773017440794922339897729755915635366919570234479694089534365174631970181105709982602419719102298603865319289994764977911348531019005940607889833450611749920169462788300257445842215563625088687878979204571649482197950307204838685993706787558612484271539108601689573289395411971857640330525565240192350455879147523453755511752576456438164977983542145503771220517123876812909103095538354219422345902469721176640876145036309171169273356460623565846360162713543752041365981152668247729180186505330996217356464713741606450387048522181729141402255698059479659349392589483644292460660522042395486034183917217587475948956980547152005990619928310699184856721495279937513818257243835429340295310803156331724397454312235336786137277562218569309696781441870095327326561018774353029462504073521429689226597790702145926335802744172428949087050765919962637317204403677364234612650262206718162690878116770304213595366294610210406323286947796819585065489112146187653692926713649405296331387484337658489655861908439777859020252088242057894919899668999035450680732051370467216175703627818651610867941501959344168538368894872841214629588754600115356936348903231896191053499095182378866218284248467205380675239957720491537615133070890166325555696564621997095150367012110310137839783246401561957855641714258209533366117319669806750031978920001235646418341481072819957197520098207973476945767272654477786558949917172772050803549520451758228788194923431417907970649282262986326721711784535805512843483868554638727929501245280842075984282203160697661062626893768454383656831002995864715583931605803374878258439702221102706505013757342417604674926722677010586958316908847483146325451190685771503103405592782429769836522245770754644624865293201480767679456681456649964050041314794329705134850614489444745595358563626082418675220091555484580927376503642653078248840614168990140296841705737804004785009092951783658834086283369149349914208300001464841172606931487365679080542510166490020093631976822940031287504155656851812869188678909764331512619472705829362595080808289560117697824615763197804024032490062310222662517719381566958513458461768642963221752768875617410636112140501237716113930645247765945339985748445670654529587919789900159910269400603548136117370550744274768794273335922314614130823509693641992841085320305382919216351927509784643194548667635614805355669887527256147370198968169489944709400731127034030303763851082514917914200720988959054669496799055155671232113424238721999092058698293720477623549000941451394397717162808609940133377509602066332169423223203976132872479413655671056889581998782845432163911118970242850534017107280531994368579198236473318417478026237254375692116267819356633645350221460162820895405820951345340268416352364142477485875110228268608712923656323957450150419081335455337023446843731222600820891255907619036096519669771763854227460884650845939132138553501533413869552570708109908453770431039629616599832647885453419931873307892034712618104641660021225478095950239015803701514494410386717579838736718329137269280437012977294799677245392285464039176571287017922777432305116429832429078859044295918167731116189510765815182419823962622936583811936625081855632588929924345941004679119872497339904369744840924356837585444452832608339207618611587694650661801236120111882202455207038963146092458683602669893073161611984430295487001505728680882310731581979830583979009680771001247969048699077907005818007720174272724521360348475156280623692849820817314781933376599595637733501614966821836102330096439385351312612383859416027154558013910062818185680305834648116424151183103552285471885867725154542327595528329946249805450991487039279478513333564160831076182721638795477748121231074100966255677187978888464966511874215426065149499133389309203409605120923878276188590550730758649255971284919573610235182186169092854554387281251571539441954618617846873689845250525033824598103562010155357986541909950385901177414490571687261112930843956262430822923059286769331654873708668579270561360408782343199434661196464873376602092448363973241476895811486594851917036362889686426203887370880925290461992070566466248664999495744042311300143912745251555931502028150603760785727590885240467941090546804350209350107312068112785149323091973935805884692792025886936927767140676710071363638953572878400810049499880534219035546489980961304285281816344488423664904861414721516562539568979713765859918504357688393807039739445415608190586696406504931175629372873226736169436589373829984851712019935004210685548406118195200192223503726824330563597058084044274114538242683979048622272694291258123858690550435011321994018092854008340918345002289383569691634904362077919828798828644099781895724096920552178367551323749027876002030592817062315267340399522962073267995098958417670511474365834627898121823404554168536872204672677778334313548457850845315298209473654443383995481284779609301134995879996105896241210787962897490413396693829526197955875090243263792453643977199771636079442949619463847391844795127117705319474362322994311944590064738125723048978374580597316081230921731409785667711757511969346313383699753509717783226088365616676065938242124746181616341494549356885646709488793265889104992963126392790061829161167034030732862502755766192621192145781726727608481233458331408534854524608109573078680011291003312869579629696161484604756511831399075358741075222054954172238714018898174582783095591979789302606462731227530995327075676423844500988979209287253499328545625420664817737623123035351748819579666434091871118716107119041321614612057474862957514607358797472509988886980294351469578456594748529351780670616471206716034254087767974847546544167631642287311720107787900144225393084558626257370907540525514556850589053516604558845629814147826903582081246495397329554931008075279872096189407411601325929307323966912146585401902854611059962888084573917394416568154437538218182325574104310032703955291678680769771217921661794046081624629689056425458574381419237596250987413524976049734899025551229262978586438732874330683134530426204238706248353008123926076501597411734573074729346605795089187524202857617422373140624371989125159379986503448942553593594201440115826102910167127911558903857320756141659076378843160806353533013359029576900103580389797399703861855897786978530807664544490945023269236717694262524198069333699903370264533550816129148672480702236599930134967348232898796562175692323569617326389072584625180139118859317549703820961220299540073625945056291226226393930689955153192307358213141345463972532441007020092944537599750302703536098387884162387800745912016156777022001820492404626133801063186162390229717535788923198781129966797546822966767093622053329854917792022071625881898484314678099979099294966629378261433623461100124276369119242979961719842135875792803422787339609049520438076455631868826645591771936713838279209887189318825657434687456569724241530998920942948261424879250900886774651348862735696635656225277624867691061666593041920915007805242076944647486458650278455951945819617831028334748943863952109119859671673186851034634990326837682305289600203371244102245193539534754349740292804310761149352583667065332299732217280469847817235587445902072885979091523206961642729040067953363210240196155588893262570418981777407164595963104284336384698442281404249017510799941152266238777799878629862988933203968987334763999312158149661887317472645207294583676545548727238862155312864022559719738223291110928971511721839751616738023063786874328482566841483442152355107080163812104109774285092455698859126003696786337032193608694802464964041826157501646513855057664893608472681168738999981172574404044359749719977582040669162264698419828444852219792045495281456610443209926675367585931305001664668584643554985363899756234209450746063174637055127511986851629685015819647381652075143084280657594878067152939031658389536242753123651297255133098465982538305773428394397438307852247846518649060734220499129605559703466468215624149797148329254850019176725539967212825056713605140484536423668516446432887177771240377684986491167524031298053304357190529076646435196713404660772566851825520963208527282411819511073312693941789676063598297810525752261230105745815198050351588517896329138803374136020163226313542503197114439895694278928951054178257478219359727132920215575119750700381164061515957327545676887370919337808978437213513961812581633158051905117008838518661329743668862208906905244784464204993815783151868473208706018665849793960141360766679664140962091719858161211099921079841782092292567917527535984854686466478697123106291732845451647769148523235585796206952598405540208079720932719117866250368818879992664060742073442043833539010818068044599563672323273200001280063634814236447173927991988326360341681713882953323869847350829963040940988527362517750781308489320114065188860053024055894937339930547757440825553842769240942781832665137736146447697408512996021538875223171401978862971461868577450116018664329782432099217837939340849822281326521795228260056463155987372752823878996965842144731974106122414724710279406847859718302379810915628883505120243634526698661115148245773545875472053793709176793984674984886840079896613231252955259812978942901795013559503556011161999069204705569748093418422097055943199365577915067219458899631376458548059637895481406437666277199715738275876397727325479618716349645364813593094063736964533296780008143001379122253569455499236124834582883828373633527903785598282278196145549314872199735866229678870492371114962942688977073226686809637388768088734294858341212797843135967194786965713855214920746402233297174519953865932438168390348315659791407320142424611739036918043712583745676331106929017448965660893913663150952714608722802091444671578668352325112745719564475333032828202563475453320141433316826433935841298306687590665820172659225717075921706335291996685105698303961342431035042574172239398381224234263064999972242312363440913028570805957955261879337825546497905210524431887095628297092018499141760594041033549489525630320084216642898217905120245636426779140718994145686075207113622551384419396865137997889538815861383862167873410060820309716688210302376285880047826332630902486394614737099785722114229088267570451459290559490653313707610439125536011919914317998161683690144326640937239524374338658345669486041837163341656857704772949481795896713270953621014674688754847952118376167841932551462258207562800142070851296339942004792439294123134894220312422059147510639836257475270736211687376551448522470746246163278464221126307662102034233729935100937763583651844580140248123495701264155146340282077461720944485695052728801769967438374176706063175348396859478427050951541682256396948378651205485079137666952044483692315856643638872961792126194840065625301429426258016535377724423572619971715340452015838459385672136109860472901866623776335273353904058672683633872011779692202782538316512360361788082466539605237013459886994691593720000226022331633119755281185559830638635391224715678245445852337598228476379132108033234961333047529287966064584682755547835181626996745232413069832892216258375163217108011773790803110714790530108932126486934699412232946506699961132809539760459778123328068025722060430160135785090521259401590938835648461711944293484305282999689815013458165744018996155580351412905300436964523426293158923640814826005461292105819668925324911258242219536250319963614643948370560158109196135636354528814524631245495018163191953054825760913069869936843945426320967732526061432315436418849389925556455100300438621664386913007781822196780402189546611039925403471489814169234986216258368615767205700250558885458620553575078859318205890051307132418290749577928403381436239914996450592984742954007344952562349051839327466094376071269537099594849599450196799383599935897518838190998884441504511760905269725299630887465323130345557036773655987570332660546712295999180464540569415667958642687164263203306229323006318831409292274245359359052595781520708829392622661530650906122086328602552995427643421904662960558705648233674567494164220771909489269303005350303473839769888540232570082576838834684217947545028919345277432254490227141987863786245132844287283823317692141950196722320069057148370350806235384672768025683479587440279907001192119169405999105574746249515036053151622651081112554467071724966673041890656815366130806645296179106413679511613399904786578504158887982705853372494675816569512078073218295058657352727242237544015685003848464169865900057986895932986750940378540278336867466557376913262866318235720822144317063135881161329843116903630861196059582239779344081910136882327255027814271775007891330844943463330186310817890161937987430517586899766029386015114748856755021162492925773829398671066284972692032945748672665861477222075332537729927395292985870918201988874851227600970100133200423817806134319221271177490775430453701932927937798301124391270807196898785170711759441742621291111253757330864964183471713180708943103743760923948412278770099465050815988350487829663681539353164164311176910465937776178609441985126077064999772304485286738857665521735407432910683604086783506058973097786242723791576811879172021868969330781879821387082525245926983345228121279343242845826424884994310644266503518538729451993955020716238747788971805490482994623703504042353996883681957869038061566221715178617454046493475553365711459823389245822621169956194434329372986921892065634995428633849940872253264989999556478608292150041579347313094637224868482518076331821672333797697164188681221311891085750143201954487719203599338868523238722179133567659686799461835053087009716882960464057411295319652310630899495559342714616548302596899891419018372499077997670748118851292475516097289984294604925304930826928172446308833171312883112598912949326741725712243599560135169245955985626827738517539883025607948906597062468408936464434228606565031375247771234576705150809928362184534028949023276731778199265061896585304574026476820694089748359985053906905028742741782781028270846433915194248812050150481774457682879618891022141580916997944938831140602507367160770464858988039487437546531834372483716528861028847462758330949558011896117403299286679523309858852939151712369523508176868103707161514344684019483691424791013839950401698807579996339233351215865887685979273532451729005659779796942319963551570184267666444336207825326058547311390278751294943473836454998686252186427006746115536061342759795930050806932659282648023875027402759760039716650047446544344892655896856119806389651188351662928725905864384773852177290380691780778313124090400358720721733620770430548500418218072445380115278812196513918673886359936567227466054291587443980686217618313062618472929091188886137908450352020118478789579505658439142576751799247899536838946309731898618401586396216456931983786818521613608245888233231711472146164574298259542542610169069873252731686391894771802347407587349601938997137184557436894929126860700772639713342250401743245488785107603779099681576151331742173311333774514362200782857235310790204935086173858779264238262623032635614613442811359356281175199778097704561259869970554887988729468698027613726348966676009383369012218742186606365094483159796622084638178848036946275148366278177360833034367335892608254942125069876925903771813203514465159916691910633584120348748763875580943294012708161906548135960772087106277409867222090499645486058154182125839465974767405869240749866476208683324248815152645666791642031113013213547365503353978430226977947769655619353575752612249524750661193758906808707720136979713943689016141494254543116645625497117937558261390409275545118367121426230806577859130330119582410681106801411906466306285904244446282472465652272786873898725079089459203284672493307837647404770282987424147170462920114376132795386721746837308453312487949762713762699644203632129042552900344419668074913339867512245767325436021399158982700070216096488667307064290737481151373062390388532426635771687279462938799139754652832871040143400551092407632750264423336656010563463917924028770503563477441309683493003240653316449982624589414259766104667448018897025760017552105152048022345781431910977649002907924668152299246337161948523708093474632947104165118816990510331372735881343813438817230555051050274280566272934958282305674606678230703946111664896974678914691882868646366367442700356260346132438379178139475718517797632696944291005159334434210337268089788740639296968913670512370945969485033308815010633691150942237678472453769424554085476608679511514981108698961759774815793470754109341684991352337829527410142420011278445017215540379361101283710785803349615105907282865780527239099065399311102968225478890589017897542027460323027378270391552982976378189062789652454120636852802677472895499290825812742482422776607843894420937572415610628436193296548646004700921506082854405682560370989360358007196440351607075586114933934898652779606584504417460373744799607494876542964357514787224950493983039872505991124160006909291386609468438975534950306187030208564607968405708533624675420606170456657580213215084852658067483744622776892640956260808305423326531866934629147277864138657502829946221758535558227294785220051285373854450039191627121465438724033929327105949678280327679118488111723789575539436530414869176474477700169081508788887821063175246236826145001520859649725122094147922030676293812841006825697679974954633057430477128401900358061220319809786698266506276950460757190860809187400729175533949376335688500839772055062690321118584782789249183733303138780166049996984819398213816858454674799124901944503201680441604834674618938048028194000320351715870658867221510867524799149222025591364357047671798581117266131798803856986219633090670948205411135916587644385217728192141474866945456534447924918157552362596583334546557280178028709409109352943245789344952817222400887767954099456009792690770864334580108170821794567117221346414737729017144304272737651004531293083750759191658474295772704049389770331006255723368909599500629450396065503964742344558741102640854459810721929372766094926821952317359574041964119927510091302187720019173538516749824930786647418147666235695639250499781323216139010925703584760740930845079749006859663237959412825366920517146782987027589946475781953404261668036956812113636930998485755442718522308373560448455635419033227261112240709191537560086122239532761229567097723532689895335313050043973926090101584764030070334165855869019855770184995196104124423231947484188309678883030892851253898157318096252027685950774007476162991737179278567830026667000871318406867919421629638369414366653406559689476819484839218013983991494153031470215353912726985879346163798765687598265509973817711135182108828476524204385728616235141096352655563878841352347052582643932302648828220646409005241277639337744208309369748239297527900547181372976415964486999851033382945948677927692279946479323916657323458640827194537522738279530900528552525537579873897785111712102137181121148739771853152895200410206613049287883092792032513199804726608652418617710967516512065955339068252364187769179589395824028199790008611145227401782818808610815210975097532087894819534476149542639504404461316779425772030433718305173128360698196401241638793684128196903686508163844400479129184465976769511666003642888535923851468179312974213428980124775202574465031104068070233454112290945012795081980453947106895439314816516360512406329995616309034674800836570978094600163480531700674436363687513106244604242432556458741934444379497703044122352495381227167672692836425547145035873972128686310617559298341604241584525166777057607446177352938003320835678350592475578496820290675940076017539124735883059850968750424168774095870568047803805334564960496650879573024543591017413180042918727868806436954950535708366855328432771702983887287772058289983699413024578098755057082472311164784942229813589431208589908662351642500682755392809894376608662490004336246695137857310147432869479783427250584034465685189139189700137965459405338788108589467158583703590296989600149132234562016448094210911390444957663889639102423219661339330256282166256911354895224585791373841960965235844228447780539577012315361117551123047860978163496161898863113322859276787626355811311313017656925782732488738116865264945449939541816414726254767734055955141407279091127699140294774052504864187698715363129201063940472000340490115704752972716967132172033465251527283962299808353861345461220574782468145740265264558100521691151628510999605943183641168607300807181534430536335013190130432090625872640577727051719062839125609736839720271766253629052333491638019581633009651402547186041394691448956698389996730204322019767531952367821675265309048209748489939394452221525878216895688806718036312244835637995743817028563696363381140624264626901462489345516214297834974728202340457336977018693081927581268605827364355138631260406294599669055916430023105046816815725694283063550399990647508816546225297987771658945032799924731545640031118989609354444576627127752304581619306181276441965728776602320131012712813574560004893782716305037005191330078162069856723483133258281956266672742562941095247128460055394482953250657389809177668202198254909025563501097543368199529433555405971980359439644475159842976580002398821360905362471020597253511297083378044650329552465305872200275208438691719885108712165820359164460939384775951340126064490195787975916807168522435889741513002433383419835482471162732447667215112484416180897281965824483359734577321631224105544189119432686209033656234769157350642741552281912224831235497975425450080641839591409771724957911598531265337209434585551892685242023106492915554631468366835564449130324086292648972680026032320009186402871412648490387984909969464236716667715085792545279671861200066062411074090074045035248705440662843950816817528744086255266391475345052403747510136416801944750438516399010970215863515914632089574029125222793418623840467903712259646431395987699781712645973104805715666111888673124163696142841866694473247887347387567094318313582289862851826618183890233523497633705248530934554218222239523549863594040712180470056053881727505074631059878051840088891588066457961487580173980524697571988912024621842971627002957461311687589732667025735518102004247817947389333435393147325752720681192842384419374697763556304790784443763294304553746985467617660765490416754147047936242603552531962596100441563456882412201120149454343761212423942387348272724378026479071481194654315479761560043875907428097940870728118898539483717637314003641308164232166279299297458229818059327243282920753868793112611466216534104845006689805198074873960430685839594427682168734432644723656173605612537419429063702769821649878981659467918956028502282540728617889076947059143655100824165587393009135500166672035360379122847753689091914099697525334293285568650951503440844210346000426055498721553667496904567475649866945895112688717187359337839986413247922880793916618216620411521597180870482566072867557408165655567023138672195319272301614880483742649655430004664471485135389427791627624635426404239505558124311240516786650437782091647978295130408597408044946495468956294854000614965306867499977253229569342101404033854488391405317568343389962031166868107882301796304763461504534645130779887027664575780878757130966082444684652019312553046143403260826204457187221068043870461216903040403856888026992598878163523427370890121667846287979965658293789880035241695679914313561641733356202704532280274828960662420227413230135266215103066381220672038710961624008382277012135563701649844897658663953888390874288684900396666146890697312420220791377841926434596875404074034586159963033951833518662158739050166377458982552636656865710247272246215712513189419992439064388625350487386827764771847097609284341252050672759469595323809305797198372205836827983661420663109340220731152997192122237551871329280350225257419657905488130991481658010180082397308892878537786462840335021689889437930051713904506594326297501495332007120601074897321904764577756127771427900465095601373211705025609564068267386249508974449155698277111952296846730081628203843121612363039453150505982956709867069877785392081954373177970304915962406531725144995760875243066678655153794178060171870663210299032606200974295632654176600725064324472067294283606681802124945164216319609698349379049137016485454469561247608220524995579346433823660341413985865847532900241463423557046035174897277432607426288863239932365373972947216031477009083161037591808712070927245108328454562697910683566537642384318997968015420294892116998797737566501648633358881614756873933072605476556252076617704503630978979838400580615985807290775595188441048550871039183030402779547874938688539247384840439593786336912337765251863898031756006554729134947497709436152805884443887711969392834954738031767713610195969607794964461717861650930332510948545813638272833739649946332867885353467910894899362396483464166995890972366904738560503497115889202662085334977966629453570555182623108609880667458318516100984459032337917690802501994128670113927566473232920814365907244111728492218533655472078978414173860819989975911151179458836371117506061495162393266547719210515890254105995554136210000501159203728207996484972039549619502542961031342253327631093025021280209958233111355281709181964655632645983275208750774516338732295120216091433136331737468210978429967765141366459760450989321659018463996870857733008421027208152102653422728246867066188443010732868484395623527397054443894105572016253129745765843129529180410681389595689648426910463197395724228286341105179918504117186568634650784908033839360879034911519781896196038970987335934943748752671140590346385594134910839416382371676258345583724439642224444011745925358356245993731725454001062135838127566516203078678851681920980355258712042338372400093997400084542508490975812013878881238471528221582921053081524009924765017350489712122822293065088928728823381836329992954921811566600261592456988517592694775220542078089867253267113094691668264311185320250693504096356500313221920165515851806043950482826900196427096477281914776478007022981092928746627091931360061499778330181881084963008042805661583776951625757883490074740597749590020870268539836818377671765572539932577343516248317029030508045012916237982649843551204371580123997160939675405442618418605392766833456803748000148674354349851039429565904475714400253231660110862103297566175417451276016527942590776120309952934987036209856310114650907673137446949664285952452944196372043168970543251496570570728169277487842443602677628072682837298567788893493230991048483986985522539809390059319070746534207896726298306940416903741459331062558811170748915199439318407696097725853677724496177947439502634704469169729630919626778778948747757533952795810873676807796983801927928036627808881951888884665028198670418491497527490560557576401775521776972539511353322640127765636527677367143370751508024361827117041153376771640923629980464001671053723748340594892938607178342149815269478937709613487479404100577265949558514444014512248492952984113516508770716540764721983258048232266975245572582894814649707387526671007728402764435234525534857298634145362950472460269867678893598090399518713099763397236285105347424492983420276931412410113760891395143997486702374152745233527209550186261319116395986656392965598817859254357009736011627440411742023993003744987507068883897501379922606585653182155105324854727219128971004700971978651008665681616334321293184455269730066135206319897463122267803240515569367265087378239936363492465978274258269477223182448381439203892157695844727524152997538852053139592184415318843024929134030675278463007242806250823369222724724473710585588003091475259825665371125612656579749537930417471462711669556488466182546015407926721059503230518137015665637181110721967748292370309226404115642605731329932690463402202893377211598998263465885006218924166116781198126140856733783865978930912655797954893043008505371815531214044912379501692199356051277888857361611312516530773037221431556143156710424478395125141816336789324982383905658066103703342944634850757244177302182113879566821348771240577255514897467047604065761283799154344122262435394304583407752541666332516826398834512651108419925450900403755708394080984684529257553714588187818278605880561146219756025927209194490191147430541318923473835956525699153635381859624282107951667830208610030227394375759166466250184716199992438429603055876228045508894360087943412678673704464202410467366953360762843514781925878724194475634476508437213088945300025675271544953935014019444356113667414671597999986099345083934613853482864209905519114426064813908645483767090989591334777813402934583128536161962796635332834437834870471513235445019784190560565748664436828187364305934651540086470620665163280338533994931780315264896603657499193815750490029597283609568951200084344259440418128099785661119447060179270218669960116898341076959403567928030908654383264160103132517022322322943345891128693575528634236534236618589527587443443933954236565635192627927264937253598684384931307314162971757321147475301914429647124040484333758397230440551876658287013323502610468821609228066234697461181888430785043852883858913540547669420960706410461644231329976068677511984918873392018562910124284489787723431267902690765616235274081905448695772205691078510063627033421279617001391103477015174599160585993047066752026431058915423388802320486274800521475313751245252975156623943111546755276291000249956804518120553415840575742254386755074743507484311112427674554455268458770497115087097290498888539557971151323754354621455891141870590868335543384695949195750283735675480184808578677485676251114141925299263138889667205666129373937604104425357145181187342895857181438164937377403009599046471525446631479524476515587749986023925785057637741790163278363841698491400265734759021775407479647807015429891920815334483979077737779996673464543727657252770807337520310216361090035458398652153761087537336495940142948079790706613432534600337626232405779709109059080930819845959551666309610988159460401377910575562591787246848502273092191923949197329278647681292622459452051665173373165297795802100804089639616926474546572386373716682318176223271757996760236025272666678904968537988212136179824811528759143212539667334239169669011412185698919995252938518763993763258868270001582923480366389627491448710744813581821287215484651841629651982013638848976746996885331696736941957380262651086497096857621818998982581918493358057567941229554873775512792696526007065196331937680163896765939390862906559194380591533742753882370743679058077424536622993365551738808347016702943832103238257464908412527853091905379277491858786921285454829009438969539910081307268369348562617546606976523057885125998973784937387823797054333220920000506081762857303902598562453228084733275100311089395134142487677526941974759544794914693009472074428546417146114761978234530852148639402708654599733472734059075658723720368224558118970532908009390194024778831777152384720340517852145237886643719046336831072772355009318992961088949782763907872013611785396051446772216378137495494894583077733929445871129319388258152158162338292528476601746671210462211310173158161240821211082321036839804903237075226890717367095745164113036694565370418703155230123708784119826296749845822294735394505978848534513743101911282002427974957846776936848048630119883183702060189886945899135445271714713200824853380900160325713096108802173214369089492314957129166535765781655326232666230995393945036185669732617435436348056101369721308070698136909633973076015994227037085820905097392738412311185944268007488755373589236392260680290913004769576928362349378206161556189054252999675018515364730810673274304484027553812569677893283553200870634491744668256398628800078403613129660170582074985998764447935084002926386501389781297105879255202928281742911101913755465354036021933376075414047481606087190427627113877948801157522085714462134029729007363671903388567208992051181775165220891212906670021276132892403942670950619994894532493356860701264290008709013841770649467643863207356465472817092627455333085396295164669443846379338614527252315248002405938859301618978796744543335343621066965625279746714897594550945876831852863756717497790005555353986345133536640624561341435031945092730579697814478702422251959057871478865582063295156113817431612047667933353957657292873784212183622284737156750353718520922707697405561361995279088106767508338118987738447340036882027476862593854561474700541298944691643953037147488010296744024311703962068613439597596059448657490310943677467777086061056641379845222647988786305593141881918188730693104864805192150059494441015551092198792005178011400461991897793633399554614841325971033555596785639025328207390139580618542302579968413689599149228872890040103341718830972889722104765738421637263687590566414147356997426221178904734016844790196049122437480725856656096506129672465660451156312339167574816096050509639377465216825237300984190193672562967124504226619070754057724335846997648428492349239729530862311421946327262499012614477420054588287237521033822445359726882833957565151642935756746059381267631395878875445531175602027775098797354029369126591396231915258350421869371345130261428416411138584163252084870187871268572814685299057399704658763697807312878430887155817313228328786761195089705430374062554802795768696946844199604008617571017871601683202004195036091427538113528871339198291905927620813891586671178038889321563426056672951332525235333669427183741542592936424317805230510074220875497378887045470805553033162455716002456429877393749431483419302340557977858374430884723152318207261819926368665739551077460376835730195197363301957428032914171513686930882497401174938414653548650177620925056803502046141794948153631208591232725453728694841830221004689671226654897381845665534770933863798460629186767333435665400672827946789054540303560766255427457918670630791158666550211291828212273605036729502322378019707495918633823305536978743554590844477320031165776435120888212955868185393869361268924636232043134406446919981769049990725224966029808060864210351949539844672942562067153204749624145434350299041257412556666594888786350106954940506081295582835507642529344696033459579178273703328153573202106645800730732358014332106523588045428095938655810665875326794131937109285889882617422382004658098911634436714240964110813455792399004421286575567357632286129458075415316606484688667132465907967081229858100573323975763389224850945240523680715438090303396883922038546307579826127973803443269804845857295629467276634273289322791950579095538787495700944775756008229904639042473333004121593002876127255159254858154153643012620995377012646142722327078589405153304578666276040526198236015125972491077110662720390103116649996071519177432402033253276296916885273235274404899349774201663452306956943331030617552777700291867674634510553057461715200431352539380046384585918659631392897982650700746691855756603623774563811042538302058903386526844030720716447389734273080827161360190620225698351050554900525305480655119092705386915961371491689221762410280035143128133107448079396577266221586753654411843225253980277672986002178797335285579180973104409686538927057238964946804839642745462438890453122903961270059045732193508229402414511252108204740464328711096136884054348496653969054009052829692592147868067898801391192521538500320113967533217547820832674890547277559286970831704428766875683469805882581072545270818456228149280704640754683958491105138031793233863128127751473374823790258989458527467841222544110378499731239523639866321909467942280435670863969288968864136156434476616938997030601667494207417831662195244081210094641401124176339216803717155872166074508946047571599366489108565133258716836817819438007388379049405873841680698397089162217186997470702962597837920456081042340526202399149675409404614279474280052885525821864778193784658197273016068404136235668533155994652683372329667958623162261117112827116116164266984064070754304111342154263650435301381695550370245559984655814641527784447335588151491114007157445372307561421953939342103962104227853282420344995149651107830823487086774285785158823819893283942595442240424052604019757293133973524650541554865723050266161650359182803625955924550082056250449559822008514010494657844549898591532806438032332662595971578536348185647727542576478037540253661930781629489540741292069479398962558754251935124554720315462057485959841742933833495298518352655899375720241744745289637872423661483531465055505522069383630860164974396751879421723977290724515490933160751276193606862872036599757320249286852477579048988173302051200298368887854884320921464436343991546509316922244825568086219194668665774531536426662519612067952187927801455487966192442890311708881300363369942234992157839996916540288394913633348350631893634041562791607490754899391197588686415248982107548176143244469698963010444446321832643694847244389227690101731568113238551402755663415091350412177455973667023059888508669951200262019525568267284269474341534830870922954030042729266626997940876896885464776991370765475963687656145988824567098917874606406346057890851410839381673321759843568959719910434225619668504720393896756919847156916942657169330443724653794867326648430410228128118998094937788347906053738167487561504879448770248866363583326494642571429102695451797141522163908323451153262288699391294880976431407444497570009544183071724355940588893704939265802118467137638340417809622869715598967045203453548673825915392858791433764640931184923724235357922171850448974341587055279032550159517387407290605155456941153746679098720691028673508901792359687221728161873416161875135214102782466269042740694098398717526986580674971672115709173840809352210808165156056884848949050107499224414536454425225220383204721715511990493493395550047718952576391750545108776577399657074707588300788350154895712612331828367440714413606994040771899942289617534523126911862684817527339009604521187049740874318386048548267719935666391617593873845919016082110372537569536891099181558218322662722636793431325306434084030856098662852531111069324607593596224463530683021668970314826940665519740826811384532681699555838330546008426937559820493657819503753034731960589073416832880180826128058743079781562333783141712489538747217234768975190998223748886785907862043015206493234201958018101996654464253684597559247574454948280535067719544951148363690904305770752429244261003078566312044273542263306846117826534441172992839984385722811119924081095277611497472468529993782434281286781025700409373765557716066996794302915750043047568630790120540787234974484578508056406396938849943994491366610541829624474056237180719072259032314949312919781261426550198660981318797716726963939521905311511656469691821034227015769115039982873278098604869298172495864632474020557520850880130225152312373119807972248625739001421789811603541944713894154816885815363401561944882918510721339115709383156467739194221226341128058270700274220097600624525813029128160182882732042526357858843031685461795887046444464970253169854529124241655507102038896952706331374145955827579594200512217225805339553680033826772855696556583801308011359258439460698669431177204444806918316955358109552382494292383888945575147398050513153874593979622306588178660122291356570105986489507149730907580229122599520699639705118267386922062795091954460020596045807053717423244216972224918683161024080499773935114445211930827442620078404690970980473546447197987226780514661032574549708122662186771142462830773372008798244783885007311236799033678472510189679747284124969049461728205327877835823810495425640334773704318414172004051329889897335625395863382684420147838128085484148263627349890569850256714439349004886960139211692540840949183298503096516221216378752294654855123023699471972828994804934660183139484439789341011520778833430286133400651612819975170382024739041043522579573798482968038246550353078723770015716131284549701817108800648669897027372531747217456291573169498340930574924022332377178505262538173448033931725141697585771642522104440948534416308731727408047906626212682681516725140719401515513900740819858548186089016023663597741012755966293553074259728501832993280693953203129786078299286129555143989226359226610037124841020564771343210453862447570256452474456589259566868070998613273268496666498404263897543884874735892526667644627758048841109293729951039718429449834786123407486141903136474863239332482212407027586809738044839149921621715220877773033471902819906639465735639097803215667566592403750522852371181046195455287499102068693029881701463656637282899555290017634103079698844522354409877619698635812251310035999735209132278480625941385312696571467111093803407745691925698900326877370891719613645410602356383689935280947665195208261055689451125518384248920651299556935217826523210699046184294660364760012556716142447955593958774462157424929657459691039054994451015820138422579991366926540614484833064666778786742076250465375702165172307780021200972039672587151009965686454204464384579969023562119853301439789929448170965479866975188947343527570628952527278155183722340381377665212728762955988609090119259566229459839530844437010910840989963737877321227484931700950740600497924011557970074193625183066964406562099904470370693598179241641777726403858550871374230685286001271371581234098404527176281189079619435047980264153041792287911397794417453508049383687115480173715512879033285735612279494532057426703676326190584806019546068146179445648516620891125677399568290789881829944003845489148474924059202770622995998965349446662522419476654758926751570467767505956030840767987776013859228040489205127666623813597040168710397900154532363232835934638278842589732000768907970804939506936157471022980842045780165274471623284187208895061153460955614720701387535322466055269994551273225904854605153895743961834950857862901714321559291847066565837594367139513048447883991065852137900642244289871428283712722923486209407106199991863341310052276130670128263144618777770740940147404951161703057430382009425748175950274493465683486944724840012460053868259749230022764950701592686830000924275163253041731519981322442330868332715086869299579977377499691974688178063262700947896134356687873240938939193643992692050304113002943961567994458317505855179134247351576870290292436648477847539611369990783261829806049677088328353779422136214291036211926251600834415089295115009844453027645214810393421387635930679260980155095880599321360911732218151899095823177212183917739656771804252343357847946986212053917440088619148512248582901113239881178817983926895581888791367153268901294205679680232269852610779342173535039616744126370793333035714406197295664837921037398118553027318142435139697277923755408926964240325941420544929332904482321350466814264070991017533520229408285762550978666340001022184929457524457419843476618732762814323265474557096011425385989633843664521581123107443121604073805324762386348057903343172616198416381835166247877812056486798030390954549488648534870805250966659520702805373212456287366798466227927020744635566860198362118831986269123684421324153547599934368184968332329599974922169741230509040375823254327568908158021753504542446411508965583111139898218307177066273139955353470770261231073150064860822080211540304892162860288094549748368790975664087370481492520387620746113877784174349448249463151456249027367315127126460306596210651424587593427383631830338186749822640213970540322451946436107492923147305013703420179488515850547901943324867375839014822704064501074139964603774233999381859532951751976816363168889910115195096643814375415343280193571564968157833544283823574326840225214013440869824089955173300194108969006063514532019916677130643323540571789936341859185453302733337522236166236744964383298978245179945526036196440191924408799964437507892107860585855583496910054780645171510336736255156431649592569005564791138908353095672922639078825939880071462214781640662002040776210525252245239696562050557378056963768667416155739334656678718627192610419515786163210313884394940668835837554924776080421566918073655472925312036614628787728183016805615087179175788391829965054914324493265593902357067042028589009535799318380001921871051266093080409770560053140615173255679594445151765914034818838646394337316313960777059460573927238961507269565190348763570762574877498581993572138265444317661997149021667781883481326715615312741749185142286101508406534397220524891233956200682705018536942415834860689861009972047920976469036097541218588107743486112795722674456066784612072318226694913049891825567145917616377777187954417504206635174756213073135801910324315207285187294962494006329239969316296250229062233004423207691788990758128924395973521705045224488894605311073959690636365033592344874059163977074280591160807082742310034319796312159373174111299067737651440421117610532214161755821539778835852936253065878955677910225647883779286933238741205348944008942623222971529286101297254333861870545226445109732707595151866150924333627491932154712731292755969437520249820503160093809368597932345096813264235562707979802150359425848741931721814067330374458915345257615371380974057111455685236891477788857415043594908434636887120952571940007585842753394451342115889506303178773589135373434447870139976334675895056057649684773365203376098487480073037827993992937777652590215716678931705761027561415915800424981057311253491776672366570382165364594626794831853105329712873520484417526976342444027827783164828806494568105724604488614573108426629808469954318498053323689552984124549605506935515352990699284613138952465889848163279118469951225722793638961333899112384268881069974275494074403403735374662864600246183244447827007742071582266565330302183696162342733117528270641915391047717044005608611970457212613093037024806115155708522434242626334095782013197330658605989395076541499992009473186007383488619495199045885429601558742933846655173893643138007952789286010159436904007921944929801265256328351366781003580097082806453577618870045977203294625014072962615675004944388652289345721036618938834201347510040818783340440137871540757609296092344947169441335169251592932320160208302633815080409410340294569965733666336486572514180860481003468088333957741000452862210816633051201719873728316933451503934939338337339976473907489094977663427687100910546837625075803659682455094018952277255379726269663183284097079190117022718633923908690261857322412478835160012899442104822655588588078377484927758645720603518387857733879330079734397935800106745357315810198195977937821432625581679935746764064514148602352524682094574068151762058411972290498795043092496985058190085117288841226211742507002589823349013405999041772642093113010168008362325718159003254897110022918540590699033022759764515957123485251493041226694160785929422119450016669156035354258587414811864206930041476402150326517958903593880238383761589961003911259105944135835352782850257259459905725889446488913285167310359234260019023533933568709871806602864780024980493241557335416524092115589917460436722018173818222146063223860648648925971989406704160630276018918828106638593917090549899215978504449798701937796567844964874675204850110639868488872904134211939247010401300324470412050442709830371408225134348838751357309876528097575862862640463428360137256622658534994790861533533687002984743000359694149384672835373013085428373886413728532228788422102993150559273805593136899402771397759358095339464418322566920274600379158716734059555513612923950331673501057894959664605435658297502351416613481759593908251340031909133064181735095451450593903037512852512189675756420580174461196130286179247996330402340337427874894688017088873011747154195940279048861225962620243916005134272159465376733003165722707102792754240866585005770873588657865164567068391503849062751713287772206432911608173238899935352078820712553332443421423845498481003604247362894599842391957621575737777116175696162241209330297479443791510805043346253272102632239704806908134080195995381594564978972467447389579773470975996871374283779906832437791178927457334122834261536727325692773007418840962100344639839605837036850484557067193566561016497367233243307733483557748486899912486140694772902124225666936768847929989578502980850850784939363311846788342315731668406774742354905182150086146117854961472196368102073507943916691139955087724552622860053441881002428910240958420649516125655712332157845542246970856843318070513704946196010996579783311602032041525069987541027946793228371598668631597462807389691523145426503744425133713056622667514964095029990640491982651549911021649274412047383881841466329569061949656082058674111738063768070353140492553006908140881631688305945994782978478243650359283648223452826346877167804477263256271620595923641385461714838681366278956236187493004045767355805434345064749089130330213366711596040795092650522247635374905390270656682960780264846356403535882209163141743390263038650962680033352173149603971985953068934511922607631207624590607231890088571459224289632435172370654179544338582268866458139000109975929004434146329624307063751034962405273808677502684580474726218294427519950351574727552700122362107308397541501969453257732673414909239477299577019011773236706160104428129630206240796588800195124037390405586612015075921888127720097583795172927994818175821151090126209672927744651888382890031590819107123703760341677291660110130770461632772210358614095495741147057752506984484924933470694409595688695151132241149495062158140448998634776259864929105895719694725786212979345512525046957584858737570389037466410828389573441077045598661666050415910190938903736077891146032776421459365043994531264638667412919654036155385550487293653858419419391710187269846313115172449867453563650607346825919117620750642441547902613300017499590863731400352587079234258361795739124230746832517680312955864702220540438636676767690145905876648178840850672538142260578457564210437496593835860121596618941944698899270661273348773732252388359316175740436860576757299024273767339174846867883999994295193902205838832286469878366441340294398677819779286743378564081882112703978186421946198075692269533683093019216557428166090185920304556717961879576065041984278471978808873447148064497970922127205797309347276908690223654021504832422467657420988881857512664618717094747229133866101781473757941943784907816324364705143666743578698003395009199089949776926383878619807274477708679620724053769486047394756599063990536955532206273631372960582247972814803549102843091981227466242729063260689560508775328081220160614796422029801406437403958724595085283424904019562944156924612288915091637334333399377739225920706543780874828630271104793866217757985185877154345008251211055361327290805769700615033898579480258088385239722097314520112362026609517011139115536497569735822704825728287782747446013161287221943001368546254822434856870716729350296448751176183728632538538002862293947467737671618768907897426835873442446848939882009413875772738481516100819610728949879530652275474952042873459465567375131704248166862364507032458081076297903116491687469566494048276725410455364129742491262085933369040664427196806405840813547482564189144287909029583293523482704814468981534996057684719213079021477323171529969390726031564847987097206065141850679439025134764935381183313913355593624682417828555855708110569787608995296733291577991753966028117662860884440699933142984166513773718238284244855749340369258988746751187224944778908613434588079997615404814137244482627318281443119587171970020421590977243982753280040217254504007354448419807674047796491021296171046614921935203398490937995570175313771393774021208404947232368502268998795053418265927640032177448769793720204270823108460206167434788307733134670912605769399161711907428551450299547120470702016881579098540860592853907498603975450975394163715633230833656303581106858129269714586253462497423686937395298524360160003393248422937013404211442676618734308793810603678060395748269316149056573017740079353423453260248348483115188846808936519236813011827362883090903536293220779435003764983844044789975043547295311159779709485131407314033714851960807491947404457583258079975443556104554691593609663178848532871543600607853502711330010882822620813102704051168988692814965699302950925769434848485314386279174512138100135390848537311704107663761236692628200506728239129770301786681640199930344585019381305607522052043472530496875641485536878248780492415917478935665551398429028893395955994545341910653614186131253179104887741179779431544649381327383451578912938026805511546325998188946390209736972431630529842219674330388364108870340165807112629737795640285500152982028726172180125547965437418588681223824812668722307555360950911032196413353090862639999843700955454601438880061151888198162659187247378990829322008023725566709733903557954993493511280223645685159087713979933859243134224936596134457767090893353531047823840159277573565346227038740276556430241751945559907337474560667537613520099070388101148768638086827558859749311750821311787530162000645051347310218107999300898677406300922944882614704090370572384371612704276872624062021751760769557820872026108253928890911454056554170698360283318574229648701590757190014118547979006232435935577236534631790834788916934219466687646995865159131946256538297551977188052352176281235327700887547904765382489430193160416047966279258601391607001900639299770499161293671515723658712988384674274018524384031727138402474680669849585413026838066220043952254186826960056229587753667497585898583581117674743417020674522088132194471235740227795555514441034295391134110817240866206790293545593568050454876505771708875012455613609359531220993298034803329544443251583283480338382817025630522778752068597040841271018910749042020265624724364569106838315029050864595245837814776816204459958403549956539472453993576753947778732840478367068892426400549067796212911206894447392940558294021656358576347502562278957917475534253940096840003898410185901183503491045643076685730981409233808601206494278354038568334985846214784622981868724022609226253336913974430700008039657229375786103884421692546481300161458109198577019714806729175576852201402948344394927128386445951063682055122195250531319018208388878697780054097972207112332965714551230885652424871236684797234669460482856162466499229116387787100127780080595790723867957987796650861838672934608004211951690797403121233850592244097698254046247550472358356675063565346285266817250560591599741291481814128806373233364901610907408952926959149436846040615953797062875825888231962709480931842337656646447100156566780147792237253637603452010583418835864875126706568658105254435624419656558184627403469307382172132035883917617282448513179804324549335814623194267814132813094642971895422512947036767001650024519730599653717981557697383948367892260240144866466202254199993513799087432811331749603203311318279236603142064437128422436257522929740446394028752753955920722444619949665258079655963518075333153800854809391436865662398323984886310179351633019878232933356896794862274514739851359246559431518018722869739843791232135588383066067776601327609388177116495462771564779285618952938309767266286256124637114653753269893780441993198491794960253442771525078836044960987133496468826748783700392132049935859996568730751028993161935442510325537989900399220477789060493838450890311762602792677395012670873406107380621944312933579958770630797249185708461041355660604203074577461194022628268424005066273317082538738364864284793792959529444528665288940614703102338163560472975581452680420339058435056613635932814184869451380888280801025145906553137699554349483221121800717547874817840762534818225590259310361892703453881233554175700753748156538510115680222546815498675288107698817743000441292136319404065603558713899775617818208026045025865398763392817756715838609318687320214346909197734799793730823519601120199808430309836130524742266888164719875873605921090428523592555366997004466355978574629624675390986110226832285294777243846893577767761777616412624099211138852019993184497929217627006934024135580285029831836908883021455006503097049823391307032679274887132946279806468935223052898021468671816240005908150664242875506926399133801686211004319765553065769180433117619923090678545220600537805807559017236578368617324797999340222618221230861439507187813394665218688084035335351928212906756851876054319595092503342179327428616939350905255860457683868220898093110099787417526890915479829187888564261579429709790793851715497312603804220875433417806953993469400646166686059826349820562428089083189725727443133386256742126713783359499078980045280583358183386453531829706559621929694706761884797082393469886051598300223610895256538512513750708255160073374434243007094909956636352064430023478286986770800034791902169461152678549878679873301927920857133316219545943561214326142152744347573306517801427528168878756478505642587343989394856708327416950292415176588436363103161962741179361095130998199023521810138829464290657173645995081314798928574664087952356653755383005404375653144580831897281503703495862330309184484017867534861983858478651110292812569896324811723398019898531287554264829371311527031793330176992671798194220622141697431066301009940277827572710027106612917904476205958347405519487232860606618628329378257157908748372258416705472938247326827356275681617403105205291691249828252282174112115005093132678174739167216673915901429040753700809920668840703101966451076215956096737357355961926621214465231860063565280605148784961696309871033015770098407807534244686758167040227177381367218279305329735079551521928455555117270216002162883086532097763767416042416444075359347905370531544261532643441023297206840110190509396666306867676270541965643188854636938836353913327271728114776831497420720143671892075889450931725963106006288663639429294317714393122422824564399952442350280034520281770052578474347373401329307986403758564363012748898443381359096431754883224797147148088293518498009514607584859808036607075355691845689340918809761532677328071711902256969995466791541177943995678266795904600405771208145797252950691330183219535753452005672674973980571594355786945360329196476854877135636229724149198956016616989539909722024803985325966067236459273093365281026375241124994508635446481785692117917408313005038577324024031202135125394411932046566849298564275581278038514657494076311962305260221198219244220809048177674669107757611327403388651940922896577424116675253385688252517877429469541040790845771518719920874236727090556676067423306499631158858585342467179087255091145792821557256789548596909932391230888041467134019990912919070293054754734807470412521626646694168545372681285847700795500882281686170896937891751703933555104916736258717838750006721869028627022796769221475082526906536752430714787052239047170212555725759825499550259404931760848858209371473096233680393565367266238297431255113089904718871167003764232611148123067559471392396128369344754740706167188823592483452373620028206606874243504932545088424462313052670172522325800445664987430720606710815592471086159337946243655226395536679018948404164729196880785780409595768011590559918185008412810428966052157587130155166414919029248371863389335131758780554211531175032557458235063473547832996392242389452296871504106899117841738266412976454344137837831971379209000474381614591250226240899697189155810484479098582881974587828405969566532405010366405590324144299955225833220280739701266501467992135983197306222918378460570462482268729604067605748598435677485739116443479220058450901816011062578052754463843363342380336416826543450104947439836122298604578721639353165169810353902747669043772625241075622687126223517768725250168379476009600477489991774574794522105474930971477041505862615908467045270198860294733721170029496749965228025058587616295241042454087964169571385402106030572044934137644871167746952878131835357672892437524471096918190672757979073094471349223763307045477481063982601826630357878576189398844136348323421897416328430842383929495210667337653467741162459527323091191612833186667811175603178331607561635402753906666771769118302548711653695971918242017321340756394659889882259660138527362639766874614984861066213549522694922460825714297096678094458429224209456201798418821380866132130330936739114787451114497706232203616068268544228346683055743680382296023612040470488011583379670888414989266481797773027963720477809558395148772862381537874629699547311389201032096838653354135430448772523718671415579391703268286301053603620580227760000915769738963239920573748048028815027378504766968243485088523941850929571725019109262616710886694543312966484910672311893103443958067406013186619986799288604985193884008509126031569785846313204696149246402273119648555806370468346852210994559987832079668867164121955354794309706577030148322281010034849284743179657187543425975309764917001103414160243706719003890618648596300998124091659947819428227753927232748203742759609239992084104832498175623425126009747713603587982938645848643156487873423753267237380554186526720591438344674847922620535456102893506436316160036168466346477832671462661462967630659545377184636530710207980933391283274786449060365093992816001176697226234035509071162904730513362297163583122196146159916607082132845841027469397597318324433201509634727102104487880393451223597602213479247881219268176500068973058325514439795683620107288077602255952259549434404202000730708253037205383465522550428330937730811142592341067741613743196548670541606837181388609625612630690756806719469734127002392626582434104861874667471508830459304279204656240616099742922638046260124555999177437229598321316800685641820485750469692959208715569578649303714474783314331094397134470894584599705777468600150247336868448915774858779326885889607016063109364148669753901508054220577897349645382859721517811191945150009003869368912272231839750373918337590576542783471623889167028135219312518615840068585719428475358080591278264088552011913213728966366273634515149534505594799734556673814451788248259957027987602915979246902330352658655191884820369058949069317999155509887192992365971070643605297115739826163002301865587154317933252739723090569592572257842193874849239466370353456155132387091893358389110512323283849718746340236329901768193684895391134286191261543594694740347557757549114296806959654119786015459689109125452309091160193431768569902460634029317436915122702946820645824155714599127009993890967213314429590073121046857232378249949791077982502325936615198180850231016252592256437061489740094729878993736433739253623406719305777465395918183793924680878379847941134106604157194374569696672258016836051317674206105682685745706488863786183047860700477293274717572777329068452674705265327409558799153283147582057260797636451965880669308270390087950698419993238757617091135150699373235028510543970752450171709785481040335650350215709540874738799829228291395806400353155306575032632299033902824559660610839553197882588187760328255237732590070779040987122306619350457998273093240498651956556697193895328541127213479636865897588403568288989413230103010045377144136620848538495856564487672403542901558821240829548625256241463880219801572201344045883263702590786320803028508620294983967673245699913771274766887402305541703633892915301979877122352796678075451769316609036614649647789117076179943747008845393946990089159789368554798358343111151326603177248842596556557793383273215622505846517156577083075068678687745357673910331489069974716450436143917879806186964798101855358355125174459612184404348061043037538289820763793021718752331850562664888071315190983085531674620738723299610123266861664422066404017724344372783446736909112663646988629791302581014713517393295608208206786097782450731958595473489601709924713988183168038529380991014266465197806738717293350603545499882224914158339824109840195158547256055079581974189531489751216499514321953849685466901441580243358123289831680007508766331630809295553454663284077271252194038349530964172927852732805527445645665165557267804393354959427888689848849900915404763836468720314794446535239535155838365468684358551090574167299834554936779158891883885264322553315662244495784536758190019729424003863078680850309341905213439549716465479691019508494040207330497545826466935135028046879569842529248287608019112078813891776017204098665854377755448451134122110292628278575192210904812781843866026944052130485463649564990172808358303834378607250044654412260895571449155076415809596699593617327548286392951971243908853491566713751647071455015659615938644270233766879158303789232049082452075600400541601949594744781561364393822613907599069683359788332395149784825418620031364879244416685344778062651146187942701209267322668130836029753422192516179797930191072198997298808992444656251359862719511812545809184019509777569418676801579305795107155352218944619185299969526830530916731014194672486328032139306360383376864007886000951176380545855976600321723973924213109908219434878160641472663837578636000269121512748208617489844795757084003568761675679373290602479794913123347578857332346113581461660906380924235275867095771468027606428797409274602137201063960439463581496494037828478625792469667245046357196246555682887023519183999219602973662681273636119978649963456979867343380150726173702726227139760404795666630286863423384762491117640858408289444362461337831672291333955968494066879606959167414059973977894441846674257039973207719320047077776224998673716381550634734808080812525530501966044324892579232727258959304236459694235834961818416532628702151551748969709902196298190102097418714459814471397459276268871352065758957454253036815987349303540201700238170271786105113994481599989389305647031873347240869765634718406684685484442440139093214773874638894775683972591914371182141085773006798676074428254609093135305612604955748399142024112618849104424283608849911345895168778752318272873216946714177852531835312406882494512734081072573745873541785918567566755178765579027390028130951743431574201573877427290591596031514687981936388388434042485908302168568915039763090723717979345668289364669604866333525533274385397087227751607797566952080896538702133166693452054952887143431858170971158760040867382622021133282477463204238670730009260291462115270891960271199879467263693075825569453636849276629626247129197515823171631936825552976050019980975820151112800407007834865317160716173811581491553403202354337160032431950940215577367437080646263001612838532766172173439544212721038195499813800760849377359880632297320808698340133476537406737765336846903003540880664936451036681824724847324314375496822822001727457603017464600503230592025470460015934072715063471028644371816652184567532157479990893293780692606176326960462895594457474182893647687957376342695438350604971030476978266303908375372266761693075374793790698108352929678362581905079852263178635333436683866185579576469111720575159197381855781516241465461073791354915898597087934924619157840545054406344353904231484738561081799601398952873050709341278576788597267791894903943591310746763814652832090230475570486388665002869120458045712798063288339443971245801075805059143903342097409452866402597889946315551348604977967465776802151666334843337436666506395430663973678551701619462296224973447787455565072871736731640410246920645079929405165924945287129683194582585419594769954178351774944837391908812764443295610827301635894774419177156769823641511516350884502167674580153966977350078541891628526530351845659312308040642513957114138909324262949998857177002621753643396900534351263541461665809562438132541279770607327698412334391242787453330926158572623715185807265397023480688756038674600543459035173537730383911216761500128109043392377733562325132175996518194977527147839791035284112497712217292793909360086648302826904316862520486050275505316961470047396471256193386173531685546700068697699571573055936397434186266445210161716095192596597034606689895253487977704780688904416134352073043084293292915496349364753476422991526190493166765869991415405138736294635241742351511432399726771207917812199344584997206278246895622409786891019464437925891850879151621339735544516773289185765061751298173978733612416504474269665671820753032621665733475990048092950433858417078707760487884678082311715928840793324499326491590965298370061799882810018634315814580587500719803885865868356615914507651750645257881441466580320329331323600656759530537253577593105853448811669401947112744916183215433459386466862715548781845566927004698653558426654425515366933661367242352337248022244500660544194089149111708438182634388272337548181323925929931748606564590854820918779369940139602718732013347319588221531894344982600060833696869588944121846005434878421451415773094608222994892433211605128575540658435291242727220457305086215706920185937933480652948109508627538597357981037975705687398076463775408908180309065284228623007824422421446179900063385293119878672528669876289400023274271221061866853835836531425698517101321627646545162306717627587150633845676797167571979257439040992154815641726594633481659952224449052106292030719849122654158995509270508594165034456863530146161306822729683026504240224970572249529492868929518364271276462224843117053807869997391973431049902626289324843304407767966109059914029436152157317429748536178495945610778729633305666366344375683299226292577677868743070568327524617697022011052831358416760666649737244514337492874088325303889450704889371316195649076591119222701885552670010168171552633487686146182011317209689708623537247314513378620626667410131257313474084631011486941692943360736654089622725846667668553849806473047017641599662335392740956525345358317917631544410932504828188088750302671238760963905346371790159805382632012092060751381332217581610865861963749199301057792351217265815260905299620254594659907642872098925982230145457165891731558073110744980161079223300141370848374744572895883505732004004265434091651356741837918729603160145145047885956854187701131187307643396833295650569725455367907418603408070698900906493763978597624569798037600119899674668539091688630381845133782882914653701029730624614053185542280241060373290027702034120075244902256896106701081945172946500147412170188446310608377243662200884504868294809176742782294476837635489279080028909998109169404853570751447369146617788279347968492001253929687701701759607033102584270416025346830762534929357404682041640262238394392382876404503337232312927747745715629109858358330576194075024002748744879682248894268602619255782731261574691569839405756070988094109718569372848599712783543788792075460993996083901112221006375902732139802323899833627979410673021215746284940640082158425659404953195727086249812585416432696268763190562756962497143393073393617372047694172821869166802413181565981533569907236606652559488396528566821518533166151480714387846368674565212523671020599425120550573683875640466162036297971026110478057353695554478373031197214309842391391465190100922500353595491693103032452606020243009595952809061663601310440904471865033516017571949723664628324020912186666458000993046090726979149555523389838907007937062220637586544097800067711109712916577955097424309611078361544491381347770027385983200574628327430136622197262759251573671902088394324360775035520076527394258345194121257662798596300370626954582843999029403456814985579578970049485202916696293019744007441796201500806492043684617545303329910780226678767429441967090167027579300053130907579402677042942137980988251072346103354138051078860424869637075522414856476649873409908800078582300982814007310319487425905652694572262765927824360437337270048205910420803719809147827643824155204344307083579531519785700778319094259709863743067250019408640258928333455792310750718062369092238694230454974273906960974186931372341309726955806007037800406192033532560834390771454326035010516864311201397561440453761951664333534900224447465657025872022023074584465998077025364268818896662224436315475627959204133411791315257962545017477759824727283253367207917414363500361757747711060016250681148201936492341868622481460699247782256004403453429095468740492698881566984389442746160020105463326705555182961414424549293300209092969764587437862938184426190026454078535112363019192396635009286326536180997298570802158342297776316110682253212779717696990681222853618875140054873578597794964950584618564655290670699399493766207605417326815892305661390360691945225696918491800578702673730737881688494216525598761385888987662136004098714638387696944682524476588156852107997923975663200205082110865281907495435542995960691995469266118130917958299191457990260161834326495526473871920718890414531638177556276879871604457786199698812826246795698930269027334173107642385936616237006325877859614957294492381661054408691985717121128405696083484621447134629765188858729572147337069500532436194168141580106570114755516193835033928496561610505118487521078205732891974810588616901367829656477872454740720104213088445014900422498738109722123577356808825322874659862378988713766396606548625667180646111362130477998129418445117072522495929095797735384477967119527785345144517483790917290210510211064927753050095360991253467707708280545530675480180221998121104557077509705101641754892369471990930048205463693401424602552180226675143488069280234152684379611548987834008351614674261334648002067169233798259478802749754339500782048370133254834498370402110989249537334563410209649968296361802014797139296085232713206019780797561334086678535639342852836822537804841428324923136290729168481128356366790917968581924098587692605340438200634620013507091568211189059114157962904118724139940851740750237112347645072118531203917451375941039459772352268183855783239256071763816076390880315923010693784441328859536314330724934115650095407702098495252386103769137501619646254053543183794013581505802239533165422744194893731577171092760537655192635754855030068165303073493289021154978087225014410273757754536243369119907941312400443625916584689353926210957722363496276187036395418039600449144610340916944543871309378796036618542019862294769983768703946380126023898353391069577226663558576852089599015159292077744158016961686846374857201577112142271313219919036529837020328588134976893770912612927104551922081038704295468029835685033278920872500406285440533345869885515830000670761615447043338597693416034635663760229688744989609149129070739699992351882157997367299881512356174595480047419071619768135829974064016500254197382878713719550694436421817483588155491403435955974300684968513369593008616364807136556861807804927614545255761949536271070331616902797186352040549510930013551353709779628623293650757483117339891087366989877893321362693972944922198411962410526021292718630961076528364454094256506755755696845092775074797977714207309980263068885174986794389220579211809407802185298980714936481122527596739422634730600823435598310172218863918676202865057966000025420090402651798108451835515616966109113780859685309775105888894387219894729447453343921042722775376017364919440949489675311968977515165751105495684201659154947420019449046048126438773229621400135754517926800455378124346896910964310976401414709943721280288196791900511891579366189933639606876088548637233748861770561384939011053447440954567949106420727825813809162441380585824264061147899608537480213327897747850920243297519703887414600735917633472590717629583456141973531445745092478988600836381052896335576849777327905380774573171311149202607701080534155995435606601296728953316760891558261757738042083490917822845201811919300570182171437180609489805320823329940117707871371109230472257146051226686999365026578184095619956591872027347976542042402791585039497902481083828929208742681221629287846155106858643231602049888874131458033221849163507539150397499141830478833250879277131912864233937798272779298202006053563612460413961564126309070266691958381099658552763727831862672928248183862527595973668569600274782956759257303045420447905965096257490774655646323333857887057447612378525315382380412628514962662229170160543785919563686212056791243559208503381571874946606783396495581439172861306657030952370665380156610623592284925005858963644111371368502349060195966799285319988694044338873533175139632992460818709562807579684954124226976484256298122369047287188836785612919919532804130394018334616558843364365098685432394390313389853949273503802352346758848509318141241055151254731803600456353949514686273852489747204361988044325428822966996255396078430842425780380556920374387942849706566960754808670503840383478295684849424068541535501002971848639853776847212728956516469636176937271036692871670087835522945334527346859396747837431693640149152897946383494189158653278308839475542661499306593518168307635724909826705903473461617202052425155619984300553411799985427445799451204739924493504668450238899141415154220775412913861345756700368965957760091598077011547467719858723887537519309403862808431205557785040192889611763506126909773015746330920372013346815419865235755354872359771168117406939636625661160288261663354706091148638811922387056163927504405926244842063845297906276526016164408450824069107430732823794116547441795969174065319245648045428216514992041637705071880956206246023068500163261937112128991816409755386274216110579328298691037242779388085490901597981917041399141809293308346111692001380198340375812945140286697775894639799093427446823414981251833426713028692429684558657955759238446170311725875736469181615148632010240808163996627942500136031432167099370688247074719776859524901436681740825669863362152156979177153300048291513493678154380505318380856078159127657839305925870675697137775610166823392794798074630892534939316872632736091140801266960846783483170557037141567873737375154476090003423133958227670843754801271367963767156960355023292314437741998777254935689682005722415497104065678825361004100273548229916172636949669600185100919486644740279576861167969562674964510668551206943381461088302040866635001630819339935729801445309939168769751297568024089824149879732975444521173082067170864326454442172103234430253526924309608372035285984323176179448880627420677401211154907958542831129510002376213398358534945486247073028475817062107532344724581846200914386164533171083929063110613761694434995845212604876442170845077580672950738464896161826171773973573026733492931353447011659305281108055778844856734495229988491477884551543631848823127872565167303653277201639097179859198664916014102807721715176663480762497885565695952409935992530283492715612374569397087736995001034470983055065946043023717074331353052660968399969708161571715209916780915862745755674061042168185004633663251053551588502328640978484924296001219072074879792817673224278652569294138724267367250683652032594262444589388856354573503621041440025452308161624359378587787378589624292479419116271708111759392705177537396912056246211571787496834562406813298294636868410039607878538834402279515318708590504083519633493585278780184573836464513621576915539205157105426495549253140144290683553553104182021803563935263052032602754378151042708413079591870768588572933960650206202827391161310661327897387793401664110036070286448420207352704596744411115746974580091956578081370346222399524609202440578483190536724912092883952752277284101437382972566298481495853994457632956806209446449053980342260855667317621008930829444976949386930223431793086814103263662068786456185156868606086596579380881981306706628238516530354150458089352931272234319798403101533798840560917791508271694861735821700521741322551950037039446599589641280761298825554813326913914128839251895132165850381924517856352476849243550300314874606534885921554902532857126140113419443115563154326120356536433810449636863049083640936643163830267249850394268224405584378071060489031528072660312108803056930538911418611231400771013617306085852638628434837921832253889111526764048622236444818814668761673659973976386820090534096399712303119591115631338467817752419154494532933668679159816527654341512276291717019361573495804830285178391415563892319761901092026453761345449295377877091240854806274269941509756034459266035466364280379266390300102103958037236873205658529426949402467993978237931126370177202124431131078582890575936816494076031810142540675631302636486173456045549718728838576107212749150265582897556043918541711807365828060881261038111031835861633877483264353330675688356293380324628560217532983460822630588297111528707530387301796775635536022481744801181433420850056241883422862952879773503309795983280523357692024459356511841994018214934643006354736874284582805768887008814667820499744216480960332041048120605206396786613388448367478738098616482677627758283703808478101529839804426523321196331750142814956211042551950361216083339552475496094695585854397547746054891548035741736218680679589680304288195233658275823225531425311437403566311276819101378669191901236471115867144257268627546246495221220237296959176704870479581684079178695317380177430434317938392125876271309406889122253693916272233777050715254045472407757170363709820656627150805605340223745476280081569532938603576617370630946584256961501044998022692659152072873908894450640539619625879557648609326277465227564102386700614747492148093102110973448817215323998938931981404859003292932411339690875222354652605612433559928243037355130697529133310269307502165193770927679574316899167030399153899080474355145512356017667495819844584626063503777231357068992388616645490333087692089538424940473624869411809443286175610307744474589588833590539341878677878783655994804220484151230158098238892649618400923576635381749235679405800996896020603867635133597318706187767876803158429350714028045534791517067420272868391262739879719420628129929236152369222422524287428060943150631857760978606769768953215644760855731587555988745560174334702012172049781192702678439052493705905216043826175885745173699898968997923932673282543539267696755364728546776319991423061056793690290226502197529064015338941979379132997645897016028856044238423512594949962065129124251129551030726470757844216240131480400998892389361458272696541837873537792437751238018162139789111332762328788325765717492696101309645111945003527973365219260041269701963807150657396305181470692967874561316815288562294364799890130862388380695106188873239252441264723464881126950248571092504227985032032767545842988892014699473237404049732161228096068136537957366988492690288572000485606607803413861211424119562257393245204468506650697135705359240195739640603730581316698238585359693001444260016283743903919228233499406395036411464158372518778790858756557054344287006869641215276399321823969033562463076315370770161583224346511682544829957268257555885403494885261354174063585695319201062944047498352880516848377523615828247436769336694989480162491889102643060401637810130030291412567445984175182872680931118344943633416917677614088282106097739258211058774226574932788389360190488184150150065273378362949039470235347666348357934335409010035826196324640604846837471815810980935032591535866742710436481089842752449845253137370833531268702853502688808387069374445082055763977673129476112271830458072079010816316012209455933643771872122025448957111482783014155725579813109248511324118655642910654187993406374257528648565910235162584713747265706572387962498036220997549962921573862576970336779948062548349231685052669144568505134674329307548487319424888738789148027564274320040947380834510810599185891865360040277385990228276153533404215742493879225452473867528948952601686593796748499993549435631597788094758889691112936163369958585718220291417085606015502971214902236828885822293842705443871917817018812528342086777635944369309680907954842492857134262790942399805485678834676016730862465356929479378459453892793335376227176149607892414903419841025867070194506291954467299884895290250653922574030579086401836036077700094358773942903994026194167513730314657201912835924616186244985215691389810985621041872003569563962003742255833475654773993826917718437920783056474108819200291612538554540485426703930881652537528440607518937087057738957518964116895873685859969290500131537907447087181743797252528293489248484704497017124069652568213920623642142813501313109836228832316315255253848710962020283892386457346620966422181975022895406507942629885917519943245486541671811316825221727517371447752560893518380558217089539218507871980088257142154842935618312572617222885243730688160830849302428060497100279711910607781974435364091599872507294731726896753193070168408758573482635360817767236616614649371664146899183887787703847572313271164041193211919067311912639233672954110575314412142759103113903922438660359696755891637207876620058139483124988917876402063470004559663870017186817390837757061289459988655131666898883420036358541807160164280844787301475213067826968308360069644804882329850913278610107195670764975899148184399796524507919878766981404974052567135363019587140133758584537854378998918095706473341327355527751564126535235819076153094069478194773813378115957588606943539199051764745022248121055728648213884019638669654024705657357795914905245939913586670903103578624264598574910446212027529855711413165876977516335109265264542102637874850890182069055476865275430285882741520683142641593303138195695811175651119425778385323769429508598175976737549061725931978134446035476432178269928101117965583671479272496143520828299583530409904428501434679117682976651064767005712659563449633087885428282106309094509402867908169550113239090786489586539578470202304612753717972154416027890882182963462864406646125347607701070031101629667210077244568978631820594052686931484932859309760143190193145326352797145686271407297289066458998663290198579559884114987998773734191331096244901084124738319600076240307911800742600389174173639569309610498310938173687419556310814606571006422886996105396611803392057198048062225735015865419855250991467439371871405766640186539725435588322808589795575585998010756243046039900782675101300136398890790981194111549749445465223668836743148189717302213249128809549725923604739504254339304841780657489188051769663613451140642298012067313386070071016792917001932705873974477843139325200862794537386263208469055110549903397249517175560025125559813232960645375425407190400339715428204655237344901224491321855283784566594378086614677215286972900620093151915248151460037317196660267109799898792711333992560435126063359105647867446279574545339740023361280180890470181469712781488346463631130074116642070191770444044827876433304283471065612903960703337591149077883197337791494997548276889376633736369002090360207446187335342643025822777946339476887761330901285382253615698380165146487870488489864772324368836045054061746123605075481513758119360873579053329840685511980240900520795298101350631887246704928791049925874723421549208935090721378959022280755492248264556686018140043457927667303254499669714518580823441601245472352478983390187574662690461787375437993731284862750580728272249334905681398358847150306465573560596061774118803834768060307596777160711839222239738331025222072120969547384826190539072511249954952903710832812334244191027228988165104880213531604651228623743005430218369674047633784779604913975200998103862110153452594597850000847563026191304911024573608480359254720318883221311252011577306746583299959273319670832871185985383629322120123914438989927571914756165762971951161049444931209258378825471523005078136218683485525134670626244162837706219826108781560165825759048976239170852923559234087968368547832389529347146138783811149029108855360618069494188030072260768096885801517367807485168531901934772171177826821869511032196270560147298730932438722144065863084874012132077741013899730886545599190634360757052352357399910065118764102198918522465407675061877730362715985718917500983114295046500256738559820160816532176628505390188444520200747759326978460469368328706759619728888984933559888204698834936374070202379735259189759742107708836985255322064703841436327376952913381161626688286816391746267807582540272989160607967334731294972802619126839186491299870155415418255172444557503641629963239784219417269378467801533817016395023797888192028933482525139011377387182478844710334128931435561053186753655966993282078488946467596392175824689624563714951868036722705252130992395469727375103355578564180876003857790535954893977009576602575289964486896188479626037058411424152120847277001718674921059710230737815205325744544111906729458788446679471287554671290978853961296791859787794500995971996965846929718035204573471674664680732055590142338981552718930386560393570148525032718491235585200984311138532603709769239224557480461593086599933532015223843600720239237729802861566334642752947937847431380098685927510301334469651982392071101267669491639377804885102593973853537071471457657146581935454532307400725324794125611372789078964275697534478080965593619003157087078811900768959021589185625591468373280128734739465905555243654685776598624031106564925356976376270598803495438322371310417041685371724899254975639657896438290143914565868499725964384035139793291104250628870103948651489586359847129405190169488741240187505857631343286768370086458012423232713590711810849004593437818418051086185738819793432398632749790189984313688973604231800651301070545876364296755185808348857165382281982690265086033286486372645911714169417232642630204258736395309180508674170807514148367791141227424588205334137575863965464520267613222029164893340118097881257462527576582910066891421814846321979110926730340549930942427223122810772652890152344636879307993410067653955402658702185495781850483823441916948019660540497326783456731368529220797808586937551068307489403953002522669794396896071470765376794417297998560020963540528309215166372798205828678825582949071417758561453859602525948118225026187449725542320996988731656092232461147950409209982830595868183063925405817348282753601220897821825673396254275006473298042118261673798428615950360332290869015764971535862846279847980986855747326429674473114759402670921145864226481155548725737420283043579860552800912136955578286031682645871148716791055730469583414525656032342532239373518004973755281615351926336221567378812527244088317510877918843468848821363634971244740134278035902308176780895944602375650886180287779788586023353241614853504208020191387770437749557964615132072439131077370958421560325452697931978754198566032661778636984989290914675844268547920523603470686654976412982633127567719220948866620498127405196424207314091842680148765557801089972934662456045943450575861118622777181034284622014066065275845934144720562822136440697837722130696978797474188207524652302427230895511612450441669681703214807674844155405837175745734519585215149871430702759906958695286723857936089349554143655163741698637263017836303637664892461529763335517937966402071756924890168140345151679085854603975900936029340997274283372797777660884306399986735721588100274079143058303440176190313500537853865282023256870182082850648557735629602504424411521241129069477397356840317524195491802216139617673376020304701323920941538924247541115304930428355015406384098017163490652597707377596270950616827362139072122685690634803136993361579682589161329002541536490246625170605594639586238788907297657658475751137194597166627695399989005058601073507651259168326124143701413996898262086308780321360318152806875603029759459340286053292768915219543197771476443122007852466685082418046209617237011105475179727721553750031366175759183642319554955326084971313776298267751526587920674342298314978597017814306599511273524995624315735387011535327297957687125149161395906168352991228804958024868282889568196374608412348401573588695807963119559943954982829141749044230045464014318910691384759206338283792939479546373817301388431142829346743902049086210698085059111399050980593956879333920922190016118299775740386057069019436025152214519933695569866939220042677408632145952911229143112033791194716777239280087645043318712811065101933558725568783499141556392364921550380022170056210677732010660227016422666570080458811230777429926159061105063212814910054500431855418398402869529181732645614142892373610308149130885137049372876544616960920572289166563807726405055015382036813261980652057107743143905263830250152285511742405327535962056786961407929274526560897764284324135181648079689547139317301014898636911043435317118806341446280947315548980775246449560254123275931168664528209515068699528019484970260374780389351426419414507330586613339982204985729043110280051041034575224426692885963352687634060879783596477274214716831415317497880886659585718920650985739743721619852565325422815739209888048092358514284152487322342073819131514558415361876511257759308476163049703905737958636327994437273490383548931500950323954509656532000314961053031760498084221812571679727756060212886293732819540587840783818507201863699048304337915390100206241145218864360545350392324492482980846842501389912253138278141465182752094843155859639951432718846157704029956643076218552710898382610059695858137815730418470277738330786611181995361099216445289150079016520681808811260963813381463440038286229986241659172305339319304572437344218227227982500984680225161340326009905857977172803965235623817490845543657030291282055402392029398190019543258847694285320400112808320609110398001163882411695555134786467895413403764995509853171679355905491661157925103407410609473412336541209590776517130133164742393465838921740204692339374944307778497695502232974481264416484018843595188847152011409845446313002106149218116821976828430346968626253277602155245223793782085187364583924383481282742310829803797783020366498791157084878264258782596272801510266687384745870170449915802104234317866393261807204637228875431572694810348403297162121423039712637373468139406093146708678508544232285212871136776870496512001460140446822200494332462166470367753129717992614865518210848185283700746477612662698944317149174831387018806015920635616046759270145702226468550778060920410959093770758809936366845323991159123113155241410949000102529823250471349413569126489880274843884881717528708965872861225316530204485505227581929064603135982058441568722348796595472437438090884213978038030258554407533998254729930123466174298351147044322585935320229271194178633588415338186458144860680463157903725805153643221122117270132648739666907363994441707352644061822395398620368775112519592814339181418001318476567717809308826538138352718615428695865836766665118608695848866895388569260153930373544774890484023005367208375517879301981460985006275755628039828226121102700927303390437436539039161863847695637682411763090472593724503418359669570503739637143012366970589937852703470979328095810286747757807389826991507503625101215582642684997811519762382302354741763258738044207442356277912732320758695121102140398152535367359476157677859993318487610919541477823272128172869052253978826675189257633126260271457810453500698283537234444588928627990642302357226811406949342267914142819852035203432958975567711916404589596204289590390342289282973202722314197828789689670554279490013702455513618313232057763443424858004736213172960989753314873966643058304734960617083005212000574519162405075324236105125775517224129329013032871220394898726697981631105397241800491454370616908138020719512479585258539823047513272230514604190681593761771334066139227281225408678506571670248218381952481624656565477280886114395803869930806523216371960280864852325302095151943934291611331761455510419548656889314625220334204664153432194204660115929824350553319592503492486702422661293293286245423621994046157586923967363131066438661238680593059691402970196601154270099765642267467050767153562437382281585785047500809100599015428785330341733747083754852343463514670768010376728158333643235121440624221819124194670900842734974955198973718408723460806963641902404085296347843866428992490656776324143863247217688673786088567424129689105190789766447038617173486098200229612036420906207767713051223943372472789808027719277309182754815530578363485469998585155653812025288964121787763053512548400851645376477781775704192616931010551333261105791177081443348774900267358246880334397358346544670092770466949061543900892340912273456714252435850062102919992142012539829881217682079482581149458358247235871452532305067368022828431742520640770703845573246597905826587717450460543272470569400775531936261562808885803167475375395938105360756846960408047954930327482868334884012955940328070151956216118319916455937039423363689265195735466201686558653677396536209713858516217120899689067698197547934828106784891170438978967906814529007629315869057715975504127463108424428040787893347730150905359361807723453654840269553164422364805666761236403785860075541960290498796566548151507369937556798787251232905586554377741394241998896797381084531962665526708834281503948029438482869343240479473574992265995541013692407239482673467669225509994245718090935436476480054191168090876144186369183072048124396593851340408603544371358245746136264018872156724017266628182076211715862381522579991266107018863057866443476938893741458148169381771270832546411815746030429646441226623252024512213674089189275273223710592457768858792763448365670936437626250847806578003281043531044849023371611971618265310218379591468210545173632657346695992625358251872163593047970177580088609453764961162593256790980394009477964566256875999779159485590659258824070128198203011219486517320406394343208575427344962267638513272870971148914703882216745748766677504603876246513267484108522068144909183831431468942563874401383334504988340745837643149255456919868702886622805337565330754855785081448941526827253932527366323912857590272122533960867052189787883925100817926628370382378348216539363655591194613549913503841596893880627691140389502858406725913944405149693634755835946515463373000959073420372546149800212096100991009801430180157598352209244141357603825144693912214716802343811616383393149815038287028346093430551355857557517285758061617762957263450729922890353218895727176619567657165886669401081812739509232545444605229718761827953861827175008035452795744721472066886680839844526946585686936764240705563763956290208155362965728411751892367751777232350847176349206995878119042927021852141704424852052615378934376669138964679200275968711168006895560624773491005533531496406942299504469643011595698358637465044298549859254895450128033384083446473270842042235303211790365214005533313061846714332400908659485106661937037541856072122983317981784984844467333398427418295504127481409892369070888126357860311507062769050447139077946252633353966064240042327261678418573456145177717459825864714561579380676256539077545318591775873069411801298675800617863802315543970035102540311114268037058791397681475880902579088401080472302540237755763982383211946066940365582702245753118707955660049329871626862860187561275726390827579802560340350749322772792259240366136402781594511203070069567386860539298483947096639555530837883463009286484808221628107803205081051707957566888380294400314529925829498757471516744707045216609701240445114752612357704207369601676291999073065384997408979877843882877073850511794482503749983600404014589280647580591046859646715519425128338993063424296681007420167832504287281510926849716297291276454962078980542917937871914370065109551827891220279304218165530511116216291497349420561405337202548341830622390706255573577314598938505921208818249353564823055382813709316382027873768842005895473572531258881176820570241793510121215940339509245850943047052104461194204519308501384421469206907420382751818222088320108027173145509828724061447206434648790311504232487194008131382169260371055389372574521171658725789242455226825519802624406602981539347001650867028671468939065393043007228535713468537847431861549876464726001038212985988804799619339724084875331885472539836592587220594502208606873265698350182891718189514035666120328929866432771384926468499637995910539451511744487270161925254176133885638043099061621286460335779310462210323121841820825708699657304024151851112092708778813698261143555275355938985928202625268375904476498385708190464655128656209561638741610795070340485649656694924986256413602770886889393374710915007189067863503831333645395122823544272736373746064803985396206771449303649729617361548337985670070975915643482203947241840223448449779963927306478697753047517822504438432201470611654526304484110689701734213404889662905118314959096204287102260293985288091970228645277177141097924418732929615941150231529159425435541501875056178033348078990960597918120607569125129758772655001094017110547978434356990630647737051423185841517107250964283909940722427355669576283355846838583409416702758763317840345722282574086897999713027481835659272227364631805568589453804355447968246086778067656397153236965674056242253421430281388133374803049249816263131025166275114072579571951088368137389268818023859507823463719969858829760390594073785331742881792387092676658505237620265995063748940632620480594137525201140867323743971346377077468897425750371354546322863418835909988981921558568664957154288979745232486789405339939979736776455595554485436084934614521809208623648800496379771180980333514547706636464470352716193449576301807603886536010657765122780025878648656998827159935630094805354492314106531455251873643609856414558873323264583271688083463130920452365629165360356190292092154589208887011977539105763092255569373998457658112133702086621796962344353403116633363997540331268669813321410848131863407785812840610940814069422931957413574559847185008249698228788539911686008144095925028360477311964177677644934601278164187311323196184841047685839780790815157473944691114718286990015503254430347008731758135444329819091096341878851833188261128600445793725282606905345218403378749768516249310921771649556757987314830645259550737209170945701398318709361718879685244458300991500737039715310158634385290091509388650823384755520323725227727899026672342470939327950749693250198808405635096226945814370751920381564362282666204899713403660247114423717880793317670672076579826318316979661644591069567174759292235170762269459969293461483445257083848640437127052092973857910613645238772771064163095535449630927681890678085910248637287144167672952691830013094303284511038520469920257079516621864914370490590765015887559830981297781704247917210220181581498392807066950716520401288698950414828030751072587290553501344638279805330977140554644565954293311284313332113767454113508893865494250171347584021614893789415066170136051927329972916750988628293132303061442026406658368992682442440002548097219326769672624165045266251887608026846335637048008109668896969347663863948984847027976182621380280071464849584603865616703434202537656173910129745510716782593242554034508150191986234893983022688644207879104550130589122419155439029910144105098413253265322789104509584023313335064195842994200035363294720750586908927481889553172871295904636476271869935193144558699272640467122222822015555230982174981115357184731564826498677890625328902496788219954701549459713137553314483054702711724124714140502942280725660224419676094809266058411253884489277187966779832790312458559932671280853385723096568435243921117136996855239174522903254717480895668874274468233593527863900114008288582617748959664672540278259584391441544550797561704986618350368524166310186135100249334604158965318176109435648864445782483520506448780588828806522292164796019420606469332963076174070553722030580077726450478983856952448090146977355346950463745561056005035789682218683485406070738603431455642183918602154902146828377819327112680957824957471459422427186877160642501529736374044629557566434760053803084514570994275097771088931849084553705390743764472981440278760576577290041826928665025140882125931936831112625751817627130019332192023480457172135302274115101152673999073920369559776700506609550565937547963927278093984087071428996523256207978183439731518757394714608329085027224963733367524928039299134748739618908815337251264953163826158884988325660124236935394822819325904255429332150169556536733091914977866643628502386624437581687922624376838924593905174623394341534500367268685298593971192200059912249898758449619167759303990096574931702155330628462377024940912885062991733762560925639625393142332844054556909338707939312799887002898656589814654441796229924307525665410964806108012031052090240066385211710028382156043386067043577742507587070187788352577883467859162150404896081829582286801321562792329066637519348786517584940984950700243781985153255492316417373998873433091316747005909215279157514688520499883624125665030978169812629634257037944754987710679764377803938303960834284232978842525146355716361551174446539897682015735229046391333903749761265669665368387828109375432328816856955330625894174329273112841699899626672038568422990480900798003316546605500360915758378941280259982024809717874038197788144825635512693853823221103815377016070912961248635682585430880095111425558219632717581512832549873490093692757320710159462944883989246397619349167920599884004191874557380370309898673693049885284191934138824064819034501763672790251847163977177860639601084982803845277137748950314698946331625327516223400456855776807688781179852494228147850746625133855575723767130485292408592584375770824721871919145530949482570456864531322004102304261160170977039480956741111838042624255671409439217001637793099868249350298582011681702102709499134462131901269833424610732397882021414348796381735411463275021539989019123575709129446108240821335466541074247194831461552081615767652083216309526174955383220735169072426836461491542099617616199291178487684984633208197496007386802007031695443844890138367915272832637440654777730441587487007660248588638706814699259764841687044740396247467984521765914674390713208553898455596823748035234259465347789341217863555293007251258649327219330690769685846426796363771981542264266956834661781370170673727621095851314952416909406162868667090691641697548179625847091760103294454440341945262127297730800439911396437449304391893119590301215934558591346859877844438925784761090808156637293637390361484857759783457016016666205397896922634419471719130197085200914619964105710431350020767312159579983094567761219494929612941994699102403376503229158701569901219329232651032853417465335535992878349085252741007538764541134840335816729821555388795723970036657956743998072085254193691229773323192276530689280522819324462762565588464055219948260078704514086402070968470133381143000092406556254657881028617220264698183459866906745930538449535574200097179103194597410997960678694928913379722667386306108623342534422770735873911655352224491352645265440109985784839291116410532289139592589834149332749199473216741887687290777288964511251475151385685641296274223486298873794211310141817730467971577253420503570548421793165571473553599230896300120745822335496035646426435510204945468517858000711640608535169112316185855475415830843234144838453274270767172678128648941489848099921328432898671369633725108723780770823379077219069278185761704059645590839589220124703587998828422476074331264316464149973933503872903090240799617478671487810889127367760570852974309712698123027753224289488990869757594231775266986993997254284666612879297995475178029218633836822872105641111966998705718862075349739377286713125519935047409272253246599114318260470008111673761286171331696586552239746299298956013326166375027342294699426146694561953236240581144591908669853757915282580519018759689382327273186578517411704243730906785227893064188190034433988288789987374383988818626733918059687939620810534352326533951072254738871343834187384172933045324177665510338094364504672618965337327978085549132239771617779939427508768815542306863789347610714863710691819005856965117079444888969741695473655793165445530980209163894440267947769834931854221552898833606243509637953572267875610909576555956959825340078561284496212825881173873608773807306802102859387408733289714344369915999070955172434656671090427962092876786455069214114121533226004562548432851808070613185437967955775695106301135751515691654059989503871775331130449617989324875432819937862286330961927834068122378421796637955086612674803151298260682310389361001821623832322543960974702119744709758761101934821925355856795265654064473911971867698182480422079135862552105548626909028720516785321455022198281792247106074747556867511680955380684359163108754871898024247670699897516579533212088570773451011105532037780855508537272099817607695645688287631521354208487124009213512402966394530803471156029389677261748785371075899154785769326977529705989760694214102321978488451333853726259825117107337671957871653624742935161663470362499358182852296124106042973737842593458778682547430343628145482237200269586207651510156179582865217018919389637912370785773607851128480925190764231858747596130727121859070195080029439463598483456201667557799744673626863793573007239393337081785013680003444815002949411194491860300691164426488402922017157663733045630718102230807824095343186470278848267266578344044844459342786971272504224454658718543404830205855315168653615288701350722387946666254003241407842478413541058733964017552995340427524788353326036767357467543837177432916517903413684635795325904312360905768029901593073506962687783971936228110315129108035268232761713265348875077939728889331750143372312423350421492627511289055204581865503775697929798024133855142266178260664147430940656255756020817223447899159658667532467369670185753325580509152072379467387593706496302769403354610938672633135898029816051151098947121196630804196701961063786749381990005848486737862783458998720998471757560667920742600799331127891974391544198840458321338630066827248940800604320686598096602386003520409445567513576047253082832989745238831163737709329010408595794939668823026775741298383813669088436973684932652722843114133790578210784916584889017046712141799216109422709050925518536925999503268671866571714187893177950837187320200145170603669882040023994665564413458100516681224406738630100548454660860544912288407995320195712170933388807242838784281765302239631289450158895429808398413439171638483076335110387162231936227146229868116681020817691769577871858123843030621204699570472930117501564868799733970749083434146654178436253598044154521053040864888450973871939140490299354795521534576764535119291128374778980993567310612625793362591593424296458610742194947288254210678229971659392798291139395601188635578802023479219582158849843907875530254319479033752948244763996351580443080765753597683005503139981143624650514226983509350301043182236474953475430741653706804193477659149080804992831801652761800375555057338935609136083017482064547497515327625627519201736963712527589178593406171421922990275619334260069811236107626909376082287776497881052647774059476203596683213125574064963421212193068244817420252141335223280093802390542380667372785387515013637872260267307029151655513326417485386236719993498019351966511432897371701857838917749234599586906669806921118540661505003417662250359985618990660080235798627391663899048602780546846068643084683756352542302186440875045380333025561436247606253679467692281158431471884048919623575160179340326730220917334588417754309464019171444253197057138535801687949153844831355733665526909766663480581825512715494775770073078552581944655560918217237478364119810837023963925963771469829210953088418948921556513332231493100713673239135394799082004850225992288799075634341360554214069599439999154941898449109778092031543764067418022425004700736393915152724700929212793699568378782343302041020493221432867920308052603169098569819012799571162874657225789165173119593796983747287572075533319765076381283457441873935560085257024105416212270692414915114761909848378394716860813294731430869674192435688598561070802664133554570210871282885413491430916358433194067286644631459216924083115070951553107713753571409120280797554731375879065865870666727644261227398243068346497857674922508232453670130791803315019020104917035029016859630371929915009026562959961081041712792456619530601068918857659841421973034948424998718468845732502369970007424379288543747672133740519489532443447969997236030407064714303515463183133259176927249767992803214367473828111487118421510637283643879395619626790128758936652680496077697845094085403732608581789906317161617645535514215811233065369953589352938837867495520673383830817989974693229062120943290202293406979343325883144164809792794522990833606973774723732297794027547919006197823562927578949692526509912358838123531624492599035665478500032001710887632131739524112661758731525095895088517117534602728596327141849927810046686835365021991263166569373924681254149562407956951616389824171234221389785570364409599451377166805886777736847050229130366488130185020757552464585377549117764258842929083939776422755751504627841761909778080822487742706470649743824690705480214460921878565211163405780530755523793829583934111013196514792955792828882385660064353981364212550778886642807409345589649024272933443907356116000231005372409886416592926348464544330969157164546959434060646603265630335065904267965375292652153918289402934482608531488349238768718764690867882773951351193267184152745484288243296647311266305613385720945087416244402869704963127666247774250875226050708281391857816945719916892613483255510037223586771172970846740703702246739395709524636210736380245376679644133654612396934443161576097583168114949204615973051569910960521711832611940633851994846516800313712380932126444718401607161868783442056151592924333677940672772545294044873942230679242957355599017259396301560299880741806436441915560658229048007153558832755384986860708467969767836339020088269708852897196632585688689264519593123708206972575643758121623902636272898153707610808911875671697836273053510806261897712301023214990239233345337421016548278034348455340448654225389708949242356510489396287998971825531491226398988446234522189546652198183575133129050432615918285797496637457089581983321749415541035592501887101627281217175900428487154820327221965041961628856806667541771136991433461109544802279352785601442196215051196482272282415761458713408119947085840316526089994995028865121766553789021594418812719030056807415872637766408530317461232281792799786607973290544763904318092314610863724826417404673411188282161994541644488091533434889917798040921194178482372284773771687515402056808753731011122379098187831976355760157567784245494204868309439699906126776211014154288178635503684691432565576238204978498312369434296782045849485452025909894069306299027228707881574236208465030378106656853483069065390821176211912112928830854487709666051943077410100411076108487590002307903983149590776553957885950709677085270750738766452319845188457537982753330368249611663768102475926756951074500864557278187275183939871471787564662246161585893244739415089146779589297561464274608167403277635894907356047581734233891693215917842744023426088967485599260256830512699473298594382656566662280621440933052581520916254321693017465214022368227227317056096139291213018993320910104322969110365211439880052115680251805747416172533344093017903998218733912290646976036617474688844004808081896342808019677530449981674214995350579511080515150374704085016286626161659005423147003815377160057930410476517484789860257165757560129038509139724555414483995051704073122998352740407726323201656514789083111680433070585040839189899956558534426563630572749884638132138943067200312107502983222893301712910081784305561300084463012432258228830833204433586407812247359375407134938971136806286313246130199001267931432460960557701319063374985754066494299459150508693529113619660275373780069456583806939881022573751231706382724224735128698292363573330602571104159669784009139014607566355550351131263754258098310757791333383213450829000147651689923104078894635638259811054056671774453908084721138105274621992616635950836700312266480031633706118646532067963079176635022382095705152756916568211041056469661065159266936937073474233959074730739947060331341393328880632082266691591051337599270544718535979116167261166471521247175433096692173977038824336667493575729397330344606472717241294503270003370415146383771846713860360197719154414106226972247881620349710794064804974665860240067464821479273406942564549654885820809049257046701487510735873092738502236703693137459216672697605778056344306348808631243270435224495893038157974150682976368585522843341878548545384016170131068157319433248163713005908485352770493954944651438345612995919057887721118538285026783834148337167699327604005892400537186515041579226396710027927171171468666665645391033548806031585562445600213475636986629972637104950786112389851022384654356676880063010926848807965212751305928326826274392967743674030205397459575698000884803216311581467881008951194573853666615012532456465041501304972021216250203811460705497765032021571748837728040378511224240537432705740616804519831945859766272382296185476398832900530172031682534479368700427941883700305976550997739619347452893471999617298178516753242388317337376911166028074284053628684939217664808913619270355845562761768411703082618806605230075549471631498095544905038535704978030118243344793342143155687101773345215832028992089552823512856217559917099473741741333380122517229292429230925705650303831920718442839408609795045027354680827474719341634013149888442262150468111544481157367706763626380411819056085500312490749845224860586015065840714223307334525071153844398081716951423771012113134531182834415602484312170184547642783253141365211271280749190971902678197703909559033199005783930996228563678554701382238825114367413402661125878414198839085633005104687722957340420769809359719581397489057683902852375768454753764060737979254350925830890804206505200035152148114995238228280645050903148875474607460923003611324070179371112096121964239958700767511003708189247072394618264362325168263823239451831568580779055834929902369374008240714404204494981270023726862828007127411030671593235000128959552750377948280730792465694452395845842951007526241867392947177413202089769447580260075549708608359788906748236684321604816473760900293963312823634401801347267425857732616699463161215593762311000464299579474085047609062950087615064164190479547902167480708479981130524994899410204516430095503133409233699730572425588350108492240008551445128482771421017043088412444160671402241555112525997432061982918761630700102597682570819899031638496425142973168618755934930724957285479219837727343844119789320720382234757797847598151886159255196017945943121322370410647992309084887405868485573250829548494890372370087294144783612270792987262578243623458866393734352810391677069362474112198111780791846240389549030105077777052281009523192655964421420336972741086089483800697841528475450248139034114169463838514464529005264664985680175808371931748704280743873403007629911815712895816321722758578048249784920329846967370156878060428079189582971648267833061318192373045870157686371495845782709412936836238029193505346392910145848570263332779551963705403078314363300557600477618730355646858692438798614284973971587792138536298193413964227704420436176060058164317552853675146568851766811261481673410986360220938570113061101412379928893899666932498374518180203294826568376641386038062417154756269046758563607379341614407209095285085821580710223132973159134691637735620454516224486628226968663466945841994609355154442973894762287969407935730143136928652647584928128573846888900131409869694361528177387616887862412753006439594917181012494179729244678094077718174053132864816066512043992965279475997059699937482780336340248616100184353084600167183567180628544036212901567071824277463723974218401763571193191464326151675872759239376418710265770000720628986917748978436049538450976539074104897710828974172554643573926390042076387055391483807285441681430940803653339256456914068512610486268099143625513450678536134731499459208298441795331531250956126741093369489616518466898115358384624578444874545532702088438694697294137946652199575565500633096009795529346852675142696146056925013864396037307145393515018114741268698350513216658022467753585901102458516355330574373111847425621986683714961411374095914695175166753115072126263188054605769697189732188560564802142814959124145608964678553188116640939750162689172261750632826055519671094767719296200510206785761381770558479295565270615595428988619436336762752738376473332233187179776196532431552659090091968256543368462187360344103646822267238372148849605644444062572222766777418667888364232865635324164353819280899544362236675654855053657413337824967677106497307100756038217053291195101377820734291687028701438363747436887191958214444288117351845207989972360184694420301190569571529104761360576290316900837244951885766570797215678097988617460101062202377681459863743344477566551368788234182824504545841107101138036510710045056564518016987094671861810940732377872501215783042804353643114030507552600095211455760698183453825682081932641215613218519839391643736390733369173005373836728569110562969250247293381899335413788672050704973373989682911145750045863738543224265337076900893216084967864849928243431476044231264539253998728870661078058147631417134058041507408791874862984408510383729142432149432465665280203821811764614351250331659267931377829501102632093987976973966916440769644299143441906674907190824426395195740787490893991896379500492584483344655856199373072265405408299924242629774094703962186815612057222802571617259210612163898735723760451604951250377090893752930448853989910621853913705539787205909721411998824834014598685592229646835392843244515070308422109697643991312966806735660585792959965164409204681510151479297926342251138316379624502505799363844932034089185090694151282080830665575910381236851326957318192083859252890146289076198985391134988142938306543078129067943159933873860200762965641135203394479854855224334962101962299357038961170516095347322402321553334102172330675339266199305792454004111815840053861027118248057139615751674608682046812468488189795867272258124450411336378153371042505114640132895228150728752098583475029756028633614266727675641378064843033183956801562218815568107939389937220878213045973776895742266019233985701819738327936412849388477859457930105499899653231114065126014933100528358811347536960948363932312244386403385252415225472604163939028649094106588462447180276693934237230231399183362813075082811992973809966984003232250362185285696123066949096136951472346426968022706857313743288797190643794198594580690586708731478586897593963464185228985863910069739598813526472510082958794167625917992241536548880461804646632126421247096877814905830177090177977578297740155837091290269877045534705205462625693273462404072209093893714626874639621386384330570839021993688749973750079660761324257890599395967244715335598258279202794047265532961714363291064375132826057526870570400467224428859573638769185101211473631241202750860367941059161624942158285941059112069365620335646377035040900402416303646844642562086636102351383745064024741221728443720671073892211935820728176346418595592296935852460432481086658615460378633622153048285181664946351071727226432259068313211051467904233225649165589824360425228003778849487902341970730750111204462629408704046043467369650566093451121661855655545417829316808837995186313649933908894881932893611854440175761619252820722628200643233079082439626716093932440385331201577324267876772027703204837259773404699355412100035552690957310740886717847219020104141651907760815226703999175473109300167584545954471175337140552817838610725574145761285179074123914197576732518496495856005628992055309674619528161120303408978296298288162610891392202181471881983121979780434271009715752707274661377068162830589456925409151976402072702577502533504993045310100939414768463043465743072855901688392987937301263697740062705854895695916022051200376846323671472484221698023385953967644211920230669009708015448451013824163114302304897840634180544123623682850092687844048361736236560349601193796800197710170484831344305718911453292379227564174184887498236853241746713952235236668253549643751062829500282874859417547519514817154559139259086397031643139541732568891762572276482260428540228045395089360040323484911153156794039838322555710857449969769588461804342977291865352890118450487274745047856850548532297251570723437650935856689316539750737737863404937259117488140664251949747543847259673063676438759347196443988031026187341005324129196763202481178875061231153812507421141320421977620514938237796943183254526071313363544110327637447644102444990491473856861129265824184848044773945723478184259383607621850130433192794800361436933517680565530876286192185066181387300472875128594241911755150762729838266208414972239584688313692638716497145987880524806731175565623629339756541601494330352238321562461141781039448021425146499386490006284900014168286908506004001273475871696487846071898309989147564840245590984268341973187111193500273901009044632019915026653307687166070579335803523750852120666564509120272356978687019672044548872045748692441556597995125390860915350322229526943521599556743726114220823967053347220974036409574249231975236587217964711637672055032397768142856148396331454470435040023930792749751374799178515274267876647787068668541889177855619752529294161957506196609840207793415391626667394001910267301196632599454382732444298913826708218609167693117195843652955427126943994956415545645379624649282796188438883625637860317267470750279827952648782470982589028360797737560579311412715814870913542722440771236903470587826549773644062021150058958701833967662500413023380465009688532600553191569907410446751941654592211535855603062656018777364748394197257270233494979422077509661319879663661281063832148253284735340697186824029297090919743069873190843582658621070712782440790688928103654351281234491291570632670388115456625395664530026177874884284539918037119592080334177711686922727476025156536075174709673544200409478894411738304029676137522381116974343260938747695669734029042822969567053025971566873519946338536510594519592420345710350386828727481910256021642504310553527799881137863178246465154442006101116068930024439012924308300897474009451616047600981858391730862159907046057132601939544685716306394094797653391658379799007955288378691303692141072151800988818564068732925039272728723280877194162669760559514701051794966334469523669524267197493079502635055482308322764809897424694281892084218559377473877590211638090207726847587686041899709492662577257462055410075289341414950563151310175993181868702811331429303666785194874870142712863446765023603346239467374396896615372909739972704214335445957053989530707880704889630936135926208936824873359509991556785890812942756967423806034941450057686194497783361589971685372119862318177354651915599502628734101751711316978817439666246596959878724109782628570792704015621880050717974433447208400007216114976375396623054159530932168887673144375836819955503122172114747410285968679460201473208275659988070086020520769916218877990165092877613709743664957456166313653605327201009610091770586415085075374942816805856237917613025289317661323647370077814295068797951208009256475382661062557480261035021478306946279092537838677079298563895812925210007148433276635944423658456344145420758154292313160538979899483584575862686099923697430752955404959237965770414782175554066258562696441267467635906231620228667719493112303777800649365334651110069542161362947775341617153020591273941690407076600713051992491415956454349028625982024462763476500785619755373155529404180205098508644293692289666650358469681136526933801882247726277651593324927731301738786996072682623273877914326404394884670664275913480927284437495519570606831355264245987771213267573053941861468993379658968168947699846123301539600999749789405755437671572037143468875028990893512681733809268521652544504376151675678392218238889190799944618795447849683675398719587469861769518550443860338579206923211776991022402320651276266222129680220939838779383519515974231151131751528930160130814211016932314174777756947355989527743093943923299984934309346910555921251924238927694415336276633772099345209373447010980123092368464334235849793237138150850904251236980818745729463540090513732840931487025440368643242527746804235700900626528911609609024367072438172955049148936531135439861941312697578387083704016233604173723963249940163990262693940526376898151229405890789990505605522590018287761904639612951290635691622363561218106554863864961029914749929945236262072271094325432321365024950167486356727869542758494980262582907959047876056832854307887638617235390674903490101057047814884424981798128789114337277758586166589272235034732732311769407610864371549359359730560858976958769195880856311805546854963273700830756429736648976665757277305432738046243353566361897178570477720930394673808893212778342032428514561699880863627890046918012677404201990100749839491595016349820152738462483939148238023598175718348249462214443789466384562713912296995053230424447209568126515348260784993552645135077109377298259551043705814178824860920194102577955890972901882539787296442715048747537032947635584106874742593501267199994777495455179900571402350389144720446410754587163246547412103241785605992657003660959723253961683701423928801024598115903217206028501967754308903097369929146314510483613730485114417557908753702788420326871490698085168728343415643022927791953841252168834723700208718990270992839222548664318585721106891726144307565189011903317082506276397035217748734893826729560832656911292762240473660315659623650988633444152257115862350457059420946491644891296271025262841179769791054989551619253334090680401448621242114839855585648758320584099142821023300021532261278327292302742677181623239101783971808030525492737976174466520543394222736441600136823067046500432786028903994469752150034544885698239971133665134789525648033442485823676826447256406796523772062853169846142100969708658026868828751978100540171676303620127356343758075066444296320071679127920635678771497374446469647896991724187773879836538726176010341173028169119625070681539361394522423338051339109934015774755416549888252724482405494103761437181405919046634694838577239873286283127734833658829148091237295209289624930989758389562862558073983341259916755134951277208779495993877762590068128577334548689218461864287643808919954868661432383814724188194918383484994432923001396714054092404600093046745854985606357848247152012577327449123815136706731358708288985200197697522537442926917267623779834342317116234894790946834808078563718771711507353585551209022967540777210854486134394676870305478762303535174373836384897252705534231142796115597175506907219159192686520917465529227867868758466329987779654769612243762193773560255269274162931481124066945730761372236304339740501081956035490257849337805977151560191716939384314091727326989407320118225661555201869223517808268714181385715738943605208912506229098843058906036783256016494797349349424952849838264329569981896504703528381910247025062154189134956574675193376346821797256424574922078896721499920715558946396046256266259390874355645516970375612902677368569754690989038487103066932985934540140380895631739191267199855217771732205186685216205577343667828022477121645855481350694041392289369654932759424681692072064685323022520190204440556647292082972225925594197694827149739330653924437992513601078973378019208823036990175478350210262746445559125312462407423681950138409273150922547184853086500447072073082447521357808582057676311238132159585572810415763253436586559336998295120894617377460621190072081829190947447204817563954370324609909673097715700002437768343682552818539048319387543713477911094456958198808262587447785731430584455284707700910365592863794040160721126938479633360684488444987473865650960844944523352392710185921746872912377460883612955872159120217596203192194809304469699224563687164618249379069693356991391009399194574985093362569764280292694853218680011216625110344300048850174291949016529755279746314611756661722132171534257085933920003365938488703483264585509123018774489327686440720417558732947474194832783665556314363871356861711993615310867182643821969245588126740170066742905653780920479331367694785629989898127351335149113758256308136872883640874117545781353782698222195097119486858881850949275651959641339612369140582804627198308270343812147142715727778054441527218164898249309810279460060584882586066970770941128155529366979622931548616455937784540770096583706072781508557943605154379183029524494877518958715693438673862129256558540636284253447500451912530452661647973407130175304861633351957614530224289216558906613572454993171563285324766729570162715657738897586424849701111473625739916733360667258521764145588813292659753866707206834641561423931062256402652063947857224450240637789359839075431290270972659202815971070289577872435105244391354013522701613596188420933298037149613379425047698287416363587539497560046309666232278968453586828291330244115594887924740729876103069067681962755596061349141408766863575558519857578414142508103827123803192437188236300437408165949015693652769952385105185963619196847234767225504661100197155553600910568725460425406805001342193289422252692990427159313801587318009016547315237039573297708502225563447910459979865975137339569069785231711773685788137518053353901394589027359737854999687633974232706189642007992372856085583151637350080783743597276126407327145208814116960101028711580077336879594170929053009771683166221106751976278528315494541359422186669000998344200181285799522644864041319832647253669878098888585547856822551863707479908456338361401622548693309007818364759326849232192876199764639522860184529137957010015558649117371842504848363229381174321957724483899562955163425630950714240957244674378140274915880688225837053411046450869962355550400178980063519066547766518757938838103419056998259337084317436156198484576247472090196385998941887112577932998659726991776671896023666614803786387624287592068554792757530285442329989329815467817938818880233146982492399008442198979414238171988005019216447521254850212866355036461001617997501933428899278200148008207423638851367880218543906058321429371801632686316949269364525579325417098975949310171268990740827097026239924113053255533149335614693865611204951570747475660972542106452518341473071607300636062174039619596828024786901924364162757563461149324780928388060078330389809791477014855480271681215061592115215990410816405805375655638415090655310401880768194926875264489091724200734384481276523604797742412923992949492559826374310864019246067485446386692943640712273094320842355293819676046730195794547458756183911180473982355931746033364261105772483053249388871941655589894062632028993150438536966819438262469036091955870446887189387427254874027872709182666808932873061409803950905471906188248920494563362925371460683181734188302159356132775172997177213849610257113028385716553409921228515535458631029455464633270803079786415340603855668267535902535467734200125940044055004140318313392365760786079759463745841667893789156370509633488055560519491177162946575219621363704564615732778755655141231996590187100847949337318170019918763661583424211774046500535340888164072011407657147984645178628737705941727340080101509258424661409199414858985094688654567752858924068511655954032829499421021683690547854433568674437681302267727204760609803278016474011203837325233939689450034746114316372158339445106752407460654178244015464049506390887359361887963620656390561021881334969456846440380064142775072450185364021449800917414491330639981807633104759712919396601584765097757515853739823037466013034630547166970926519215746106464634676512922986050650991138051716205683702909801050334670328493374546939703677072326713580006023505118606703476613824000465983838808380775844571260319158627889399392672631006883898005790196621955639853328969820881269945325939586731081931462903721109480859935893357181037298099109673044776164874435590578328008293237255112477020474825720363145200412620212353865712627641353158452847002059939799514993921128108318694073728641729734483829298513488509485985070718244513970724752541093148604074871289139980644332704183270202353292755471185890292340338552032300446214235326710583006272912439830288271463903198581748716151674356946748348881540386029114207838463570412278545054631630576147118177740923813639880160346410502141867687045318808826453996112744253421493977952082765743070382519949117929452310552645196469851656376785822212532454218524206201438228294906158417719708678458617974150063882837291424440448353310995612299700093705061680020697181943953941681530884149203208298985796755703012804609109979409402588721700646358251835521257427040217228357638806981225336785648906474300088832405767121087826253331758734295410224695978329345014007019179085225829448134477677905713239667313980231761535318753456419960512482763340533165940845570418699384233686335907846086670751916410652488439253784766057540714571502432919691439225945488846835385586694136683570920015066364868511250903704727354801673075839332090807650677226135024482476208017586584047682028178509336274317693538683250494942191932537405427853579796606739101991535685472976017087828943006132001163523237162601793620696594724363655106144310351638388561721071480466465195218069720167834434115136058977987485123297899937983709323995198708281785389727312092856487955465469660984007067484692095912108760213301418317721173815859233861357148926474404505072315507083658236741125162822107710195083175614416849545806010745868261653616961995119871867755181310245845649933473083423250810914708291452965349585445963368057609226973415927630852155105981857775743522386106871581733855609433619316970900837014156051420655303258719194196237352970948853902338805514385513168971048717026867315975148240987198289902329948979127553111859403206534482133819605225304267107842879455954744473550483328294062020878882900768034443756016861523804309313380539292303002657010299140808505247343903659124284148031740444542210854980611626781718955156668055481638249020954130723722126785367748808758100286475885223017814772754751651501201426661930044485369055133078359500759871281056223062981161996481795976458188340730843490791887048141065821726908876794406893579436659896999241091192153233294034724460280951053901200690305318621637663556714561149327796668701728864739146524356284415511688269527648520663948556635749142977539765266316910636282031617221222432168238202348973110936770501713532855225820155378429827725613738469191790220146384993041550795496285184353711943361249204841221087724693694673027901114819593887839093093051885214712994277173807976281363458342403236571355157860450873496510839565037807564850155295958459942506302056511134499480102896883836360835482983322224785133949613145442062413730715742238663382224789422659816471663750493518366560917600132971696290530763623865290984580417699088660139841745081239682034558529602448845058903418329766097152629531612773841069454815172511030395675305939284253667563283410027648949585051254032593904163330648741942372373710489742795786901939950160822645526312520909609485980413921085939284841261281865348186986530157091318838532934149348010253286642644944243212318668492279934547542539965262464940055541522383171961596907821054391500988826057659832457451584297102587021266479496607294911092880848319713030747808379683113479262314915162177110860268422501932833840960338616432216612200620494871105942505397461831271859342002653518881636338487280464624118510768465457913675835761330762528431767196916814862574645622716354202291126897742593761918411314641318852420120643690714941571576512826915947058067994335569160624578422052187376369043894649852294760791975525007929702392338225728931618581846615452079600257276879136239345363925526978537929318373772247715683419726200175728260924664561639958477437351039412897740993665418148092973857264174536052522159824702271521672766162618558763069217449054731699323813104779789608792416866940789618889166159951989212032736130563004595022887503599253019951955516792159351166418055151745961969865359072209843185384401125703837182368770123531475332970385608380181724449876945398199012246073554692954200464451773528931858857321671425821568904054278790858941052463210923343380724439122322428660808482965466676799940406213355602306860867641690192065412735791352496058728027804930310440310486095878670042297027727525481450719969180195603380937436466026774357732250426325419403088963871590207367801917265088056238708300473198172601915121389161630709000579736276080445030608079882390946875473139712006687657751235508828119008261009045204260557105556413344718338817096179508295220384424625105953072434644837032133778520042160943926051433734952652792320495759514857208212821476613196582999057696896434509160980506835646399137488973181656054319331589052651521874718467014598441459671020934765633199554780292235125898962625040394720265698025100531003742164373010685212015926462976487279034611750434095359690166408068955302836871473929039108590610690946988865041746311161192064185745878125860257302357178029014860079844915572763539435286951941883583145919406287873475475440603193074785523029800714848929749674735453251120081720317703765525352986306543415464799880142746787258815320355996860658313338125467302940176197786291213505990104740265695431337396260580915201303873779540142626709142627193291491225442036731451637850705762307837209664045718144297942393584981930297604881826598522836742891454358107930077599073684083573724192908567572428771146456243445203598788084080883963567429255050967438167069329806302224597002927853993140735567588326373036055396206333795906843409581626404145055848298197767073463776630031310495779405434233919017912480407003041794760734247596998200446619356302437881487583194270119360239271043153265408374602063890761933043330986151069419794977884498786633031524946399090944015554890079569988433264857042674068455506044959328128118995108177206798159876001960893479709070390703776832060158312673403640768633761539953134375455337189610785447016062987388481213730044245899675688708300745021304102282914029175125226792477703356404877526298709072333294370320129808161476445839826647055364864366832716039444564510348468852418086049299055944613793340851656317756346059336801825322444344564912420740775142928761580305950284258865241672874705964381596025905945605021971520631221039989753797911909686568494123067194811408009964818308799780249938652258403774827784130631091256422959960393428978304452280569239619340547427427728300763089352676238495540429206410606311159107849742549693917264281182119716248057391835108238369035244841429157007955430858394458615008780639429353787904205231311241766595601187555169709762872374180600220829945464704025125359415003697990664186691470520526438876191048117900042762008896024416239258384958916602670888702158267233880914451814018983409119037373625973824236663732672135237268371183528174078384186514681185191174074895202541286373661552875162244674863772886431174378626962362353063846830937856156046215423769032983323898408973732250322184909165710077050777128625740800377681353600351562042664123679545018045548949145757141425278707657814290515623075669365071245761282777715585973209810652457857000687299822562780389069031718906267749842241026695128934395997156081318811845446523557837428892047960211248158642342683404645010233340229692462400501554389129093449397396891034058356160568162773808035606832737207531341023817993730872819152513347133731597635837759038733812677203800636525398358783925785861032189969959265448379504657469654313140240037078553169174162167466337137995889173683318900644966894497484962393427733368571175913279715859772612588588990970085344205606754359455790155720951700728322486509743058857434232892542368955196429450424904173557681109427239717127402164565733331949954764425997124691208547720785243122509947690602628307818907394027300176538730801898669877867362270589612701365136862806445873842923618821254763662573359850318544532496331349367656564832144098286147568365655112274071328249723215014246825313923344915385078537687525915565424907056822967436268101532057256746902041631436630870567533036847136400796006218051008420220386088047449220656862584353526279990395220297254281379338892062578590972357192479614527111952781456267989570576353098129359498715045453929197710232257713609458584514432403476712526665599243225477963966305572261399865872747446439645244602194654129572373949520969327945848172119718779259274318966842323486116215915074566532436793455588517524494353043270819446765510399282159177871435803293975580053919795467109047085876097471109299422417615204788006451431579003403759376956006901994744256945285003478109037432689054858057874995541491421466367100557032602905107431181544556964695510016385042117777533131195008598035556550268979648356170149514396748903938064865828800993470686552328220003725908354437958676535181015595020994414846292554487697802299849726703653555035952701680103148061159879761558723745573198182070912112021434651466880482046326460069277375223982089667259599076738251038115843897981924598380981493883567574877455325512578099308985777690610567272514531783192107871133254614261015141416291100114710355514542357080328653508473018671720046310321823560630324436471323444156410601840840385384255489134155231059374199595925750854480638544052890894087030874335000100999422680607682505065341645362889151666360508260458300847283669163313988181301738453063820976380904910965552511804212145739582170547847640570540932954339099883604303037855244635175603636908355152112437260937737673325244510226707297186385037436718867884718520608125052873181933364047869002566272437617342809263572950631367435412596198473751697002427694559527070738431202833232991873949629951963299256992124119422310488825018333328386563336484295979626037553320223999734509405517439473830033444076038289645715659975936396075882081176450317763105351826923999626009225971220283806874653817021545171404870207211089968071327157532881819004765683006892360721820359116844253899458279715517341196071762074151948657239419457566756749579215854058163034193782302861854267811225260386217715138385252459803112879336772853076613385646968975683349893423746312038147000917865301719015039602117842667744124889095688892594056184868344484313281351924670241458557316435745726347265556703521990852127340506184653461878759802948253508125821476575655366644961696524701288111860181634926815445336880399805463206174411815053539536067501584459835621291571430401512900536836153911944856526749976125251206990193307708075681299844035001955503134076121070776676395286168546762691572369600985696287425735064383747866271369834027876770678542134615135241155027950018135060006319900586529030064820501781843410328072351044334727529892411240607438374841093961056527521071123381977848495306447029789479497724604238764836409719741606998618537995959394743012045476863900482556937094932743705226497931344548421171811038838943926607214195292652409011116505253449778548216478011211702085849139348525160671850046772311347676662770448835689250326237508183854734187459185155323987525554478630970480614858537512885652680086406309444164415757867172477520981383139567082461387242494243675597615383950885179374822449643641677362933290196533912668740038349639937265288037582246317466936187040397238060769781806527865245513938203020101296123366065891095821333948954886834942387242437173063284535371447318175216879072327902014133826076188203427014722042790068616552921073762779612389519126499064224863301096017468150958391101547556254289929580026550851173860324495450480049959236855436944794398907906821282345769072972328103707612537790464347189857100430343655911769158299009715311548538571823861983174646116405092462123118152514132216559571482076231811506764266204748387088581099653814228979332706590505320607058912609788976100453541811369841091232054715738641818637576317615479061160035588060377532372116485299153993622655729491111352310813915543853024967688735976698706694299356778977866148198747240348536883147909909285881126430696632443179315654282383484430449427108277027195665063673693672566042821298531168312406983346942616343555637392883131684263300941606987244699846777763737266137358423174703079007830507251158973599238519775166330883352384856382449987891337499714098739229662186974288359418556815233984648293159917099418808122926213856542311887519541521132760621080155237388850723400709298281964432528097440635414504312768047493999317723940701857415386956675070856603235023761312939751723134074627000932011422051807066910658427250508009413076654858001265553351985530548202840388070760484629990954608704845552789058875786426398487800732137915520862427414633257544161624971868443055098831693916007692622612389940434575779185080775490065921490767311356402319433498872653140882316774180631552534878101519319638420196051315117541670297865847744448611380709088141234885994927963178589236782766633976048717686409763955872994223220447010410540550659658814873538605257109932405439561312635567018300818479169074358772096260768204991520103059662310325486506848258686138513246929694135735953659268005859758479209099167200816954473696670000383984997034112133815597562035981306551353181942256935686235543290799823877190428281693215578342522400803683436356880481389277456201622546738956314544756741174068895423986982374538816072331311815847132588670303746856225392986793333814095783372290765127224436099998133770557792407306462543886361732750928538192023066264109021534647333037262810388126838646414082986737341533578194314432840772081619600475688864905952962269108953852191349195625646674736812832582852850559501142021191730892474640937214347693716410070324271202250910044313476099538010845811293469915036818785370583107759529922740133418448830844207754460766150191396474360143196881691594202437494997845354305925242692000356957584491974733297350510192722368855301758198750129226120001134157242107269785343023678854934367349229953125752697116605398982946031996193140413793496008278893258867419934045406662528670020265442063425416515274973573758085712522797007834249311161987051593278666070192834451051134109065036865566759783400759626661124724158436464352467166982363101265594098762373110382594810450595469982278686448332681981041958308863192485387461909251924930640466014320442736820265200416167508194096892933016087618387221342679591876366903695930873267510683975194481326989674169394119424100940266140710487927624176799109768189362936863018620017402597512988900459593982086058933656093089765773858713622238273341422767897522055459641049754978357020550061856446892070585997727864488119858408259044425209940213295251458498090452708202881321960551988396961712404203075894435382169071168284781409117925587530470596666989545995735903846397592908349581284554725451767725032458635738411970980455790365889440295609055178499795453676218644918851425657343954165400478927790730820473960170740908898828442270543508406899003628947954642500550777608844577591671410735645123036249419635490571665961395639113635584889592641374585958615432186565133687104707737249247465203751896455708968110223367288080738954081279678913868537510006336012959329620832823833548466918174848731588429949833734913551948716166236468122692354676913409396101106446663764604641509579500008591354673967992586611079202578021685492589090778125750113689016689841973146206843792210163172738123547549002380961176311200118469434885494229058157984123774308467667887818331049162435925640621316889846697166923322998568713555407993182055304842982314233632761619234486146397438786932356869589980291756844673278894658876843739674596947178393217757347095040152436186996752251808651220711423461430611727029275069126070437223394444561039787936167734131111695829841637724105158890138088980332153450814358233323418719313235037684436478319389979764612681243291691391260077780065165866083016113223245859074499210211855514973906037378508650372441570040279096089637125141450195583313815320571321944181970952761368576715526609104661757257035252828065294825213075757310595910527348566122705761217871453923038955481485253618898072841489384292695556282198709632691286599165993055079306858454264112492692073086521064351246099792055556143538624870002518283311380282544960965542639024574725384403813656231670351099365662659156652790956058721862347369986637739273518899761603696608606324424336229228506031410469989160171198111847182902595135789096475479244686577013874541790561728457922966600264374677084448045266091677511538295221639709903826791270155905027445583720253178660441866762288703544153096333485262339110809329726097768380986230251714198840551349412744229356802857395017168413765038459747501570171632789218033805246654828209799553302207982446314207760356751557478965653214599090243852557071137959977067595744701207841818828790325822059210262247130801193511476994794091228633533895996126852052123391231821547918846582468556989490234733090348087889049270481084619295229619398140308386176466346240736974198281472922833091719279920332923977077047458972004737018948922469229033197937291297018578758928562012067011355406084794260135390240865559064000438823381522998802892092484738745288583386412722540236002745785164722626533095112887740800975391555487578743618711146586728304899659214450058646171964321114444082762644827605309078041613135018861381204491151947037654819855259450965624769111426570655988760895298087911281661452900908185929836890506353069111290264948265574290158792275625464787706164508781589134080987893050713248668036566844238146454623297801493647185282639749237025562281126643624085012136473562846053407896202323228659511997989330916040150350791580011388642549791540395079895038126432029100802500277350644470866548910828825756099521510880280679892391667514999624296432115328191500081858533034950227851657454118481758221632206337165974265433242682778508342378056624090322709084732479458454929174420033876953260563362731143588547101687075670267037991444857073580121632698751393284262103178966218505496629729765844686374592853608044350375486818784520775281869198373823484527717890502813363995188641732458640123228380691424127321154876066406344770618882383848267239619493926091004728411333301189736769645577867364679243766731357790140737023334976051702445345442655232964798628843744499127969314710255121766677861459223327181103799625501825328668017270652001411316402974912312719077238695197680098527363498107359086312363909407003430233016822405557045910397008480264408086687540023019988533152159289061176783535563814067354345321404898466366917170265996475145386091509892277183792271912112822094176829626149084446381644198645498683017724646268399183741759426393586965397908107378661873810092076765136868377318647833934524864572675620428640526924526634813877925197920747149584078752059632970210121223904015089987795268608353314897225698980065072582696013045111564618851778494876984513036165094029339604159509233391979079683249610113574957115278185150377480913528431446486101962560147557889689660352182255370633557561711157377724661570835514846254651392993397287607048844860496123902778145376921835269233377694354939348215050156263183458532999028780279271183602090182621836446908183651011988379839447591924904876215625935688648906677299500538771287292117165721523161495230660473593779636324807397733863370987711006216468267921143035154570780250802001107168608932161669115018780301013374621441852264134189805861889919184232384564287852436334970663267311040032921068570194751920664644281748316053522724459058170237135290375753312221448762708666122759128020112738280430611377455523703669042771226359259308044097675262710542424999698100678470911747144848633266455236284558857406552020854094610568922166498371847791776527553044127699924824974665905120861884964106202609179920353544345594559307464199141701136527716355279535385607573154031317662893429163975019701934787602348863608058475145117865280587028821791519614682459678653152361372753007696345324940841348488586312369571369719156278277050298715559638560381919456106968032084510472949146745720112642400526498170398746949097889997062852460679022536095728816729926367610960976706669939618801291025917710951334040781381700781342705349600725821699337478779211204344978296111796963003114452955418178453924683562299293733851162142253778988805215637640706018300879806575493883885924712788305894429576663087310012991561057668326436305006558619017802552093691044323824614951365273771544792947889434111787319122866660020494722899362470286050623340197288449748588911596175955108923867225116608522629405608847369533928577992648188754128265800828800039058162652143282719067022172092742741398745343998591758482225760565079260979799676068190971225437017560093017280334604430388108467571476089364967875971120197289804101312492617743116933395794939454710460849814156612111991178749297200447858389273395668337401080927048412319297497155862747293327470008588391653640480937497972921754795542940986682468924998104426329750972905703593796654491442481275435096720072993074204277822392457426707161236792234611953567647668348289515402227917356136371162817574676780929110278327783447222193883780464850460400248818156008714385665400242693345902515253432241181240086446700482475110810832098119716657081836164646642004328436098440152692103776876712555882376556948427249396312520595289567970003097489527584731640935322185133724216105282559852743633619516859365647269911688700982539294089102709973425004509190608354824032826081441324978858808941924963953528644055842715215945499583110732234172371970482249630885989317537914571102038508976548090581480888125212723588000351945829805694269866272193161152496642279378262648461416355899037804691898884431550163924465093289880608396550717931377138878080691382211809814851463179796126227279961237817991664671733562383883023667707782224455526679570971604908796486596315725462339658229576635520656591002638004242495276758634840177689440306338584058325033922254824501540811075999424404644682637859108341422700517309457215040060234837660223323628195477006302275329158191137964756517585624980686210729380112160497819875402809182501129116542228964067566452030552656185715488110166141378254572905124899620398691205963240895996948053717258738295412259919850039259384685320607864506217589656920154233342396445698562969027734657457194193073655457818941880244544327994626193753698671897755480372514744233048553947507858216945517638826216689792977319945170908360973711293544929556628146099381573470479460901226040060655459216600248117402848919721440563942957065147102524312192839636880420117748526381234892731546033633990158230641822977082702404368239874889603070360988299588783641607829536104618765099961271297097720967492680903010633703191265087514333670756659426230579799599464037027702856241944003517541477427682651166103477326103912946554641806670696142140495192357379156911938834923897706227298760177048902659890984242934552413348244911033505694907655325965501568051406143225063052977265105898588796707565564619780252349778690475435306002125062782725202920430808737362640335515521991495118900014412287690976273583318880452085439567590053080434394018158196111226790133154804462830717232640831167530777039898461836726644743452107454893768289674550924200865342401671189679318491270573349138993828345563923270491873717540822705246538294378543370908241727086986525674008738386430985269656595857533360967109469892469343290896117442642176623741832877739133666413539166535510711486303424606547389701372773467134858495224796013508728423702531572711996275458162835604159007488341103295771835854439761764979926081268775809354172282269434705192801390455401451857173751748861974131838191639515526364922516031472547909120598480319030994711680652745363049072414798753653176183573359491739997497944367138926036187102162026309687880532676804852938352180110059663229204032620735027261233079525591714572832505884622750668427263009190464494854575123426345507616338378559106308814259922863484612450469543319603029397527827106114939531503789231613960142918880314559616436494375769139782776400454474418042170760654021426277098134504151999857330208403861383274734929232182145974034146736935580734231491211199445892226253650821035409074068246923063302207557465672181968151755212161167623431919830680614076050095413728466344962892694139917414443043282557240375288615503730417516041139428100701881652259580449039821664989791473189752634555803316940485717424181966326991822995579558224107696923334736336689840920567358702910181171719589972397023032181648747443197601273538530147291887973822356195952448741212774549533154527440568404763468646443280795137428083681273701182129273631397285852834978431701667359204702191863404666704988733927025131159667075625330784376526847168506115396602504049945277001120028602349100469042979152718700019740196012601781814491008372996567080851977946487503920581951214416896257556686171021044434734340907551235065639018205026438393689825046096815207011452542973878838534928553067548245924569634312253324347377379502144985829803673191981400187561261372941828446053511505709710227393796626417185337732537408976898546305470399084110937149661333294632026692663174983917493213985557508525620623380860916423829076564444520101618635270954055341315633836286921877753196764192067252904179475691981318066468926612890608906049078858284618860608547689649402900602987729705921125962742029910202144457964130619856773038399082344069608537595345347869715216369205532590353724448936012603867460870399784430083204943588974765839543077368569162973860562398467790675738031518135757126881758770621172630462282565433466605892680257949199034021963968687523877986943940121199942683960498834574241344272047412817802013649708986816080941305150936781147360390531091484220583572167567214179350282725055493760958963793108557328496889482964896301553089877322764101575121172261797208628770525446418063856172993522376473813380227665455312153041890903860183019067440824740196319593623249379553891903703883887362565112929295462567468297049634081577215241264304306403117639520293151681495408324554487541873286585774180432295787145647130519723188266211391370963372505108680272890129751545229547346867472845632914501917493652876363152648847901266738987715855874311523116965948258404898659444363730221860388182863874236277525189463232475920588611273773381303880201326854010741493245798510178999301098840840461383408106843859637639245913686509381408528049219359035180071533581926623417644090239252207190287162851141302895717975154885299733399970976160403222301175526113407117998334662301294629838543598047161603232889653694138353573290800426350212849057690647783322960910970736479204148137722321853867517147662926590809438936258174167394631162615429679999765888906644948594372732867695276709301987274161701287509879163482363099213395655451776076198740855687816056148483733945675815568858954480064391567048111581913786688417187413089363126077373507794069020404825423359415684333331531956589588816211173735134058495476043754659672640265022431666591076299971627065662265347876497758597748524767760595422772411544824534910278913544705657616807881426898990872806580305344067652782577089119145953834841415822506555850831776370189398248055566075998334543072735208335583242980470769124186835036545757012911273717309722216244273520508819627277344367649950646296597383004332572466532299994040851473347458904479176714280517736174539742504291118482716781561961606711266775826309144915096737970906636659152838877212676931899009473598429857667263834265472158550170999016814221306432505665471290166007717475581089585180336868418131928444050402633793334712066101305568577647280338107440894967367486011053375707806420054922526433935622132445121268118483268839403227130086344841454802689492566810486761298859740165549573893760914872734877458288681838074546068072363523446726622646361305565296505948758811946961689853759629201219037635870066647272542387020934598581594313558761280659435737790310993881801383087581114004171473789988462747353294128657867412552187895370175642107798619793872170263286859609926360546946946231838624782584234856062192395723175495520787607920327775620899252082617900390669263019249263712509272428888361292968319254025240018147037780054903027844629808283390335571560346237745828906014647499680820536085740398402913537920605124645644180760013791698807821733024056786589008752580492449513393013882084238670224613510955370875407782729248205671512739732640267143101735313612813352512691945288611100969171512322761675932554234896986643526908140894410683430375007331365085905181178440511932951298431798220725406818648019325141462497862816255567634923023205710146050617624513226283456195736635808806857103899345886252117160559099007523986058003378916798125449839972349794766145413961215625803560846321868868529390868943743457130623330643388758219099928744910476808715405856935932330987322503951402292749518744365008830432459137476587588113080582733292300512320958916552241869382800656306192965949464635826872880890894420019156062165005833635465237358706625100622093913508391673604622198681941706800762465511943121545649701114923580603558747120416601280146518784342822509523142861785761160751255573309600856634098680119668793927955821877666505784045684320580822369593489715432532511762535268604040608032037922590751855479402112055846149102182677290761170473998860451628827575810977917599071816267059686844713278996931106332691025208964201217837920660384685010887262119804048846829997029798150857824899811698728176273875295999545017506017311128427849231299632873289653147666053823725134636385512282434609393308795176437944949334320295440320255130476924026725696368194700928518560612573298175196424851398404600607684093163813189958153443057515918812050377237340683233942169749363977420978746138337772227578856860960766007381494699617691514593787058836484937394550246305303330900849876414245520762245848278100047235403032761075845288380041852143275755714048861850712628467787455580029385918140971327108107195095440243236853160895483821311526583801961991222867856838073119947966077071445567632770855963356450996891610106063563012359484567773872553666709994279685687119933099064778360506196400424480350011723787444613980539004163356645036511408018408333524071664684082002895141960578411643686117128148280085748061134763161108507846334100870649843250512070957989909615812588111235334502150209267112202851964444822477081045561651116562856814951587437954367449052839621383792510245305034504138361146462194373115130407622913639241905056160614730161658077063365568067238523875494918263099559984276008660263557863020189744365629268672494388299716304545657446538720134439111530000861651409598668874613555977111837185603665498107065827509818068571093923091491897790883062553319230166672038093709089209050168961449476922878561257176154994802101683749802401119354914843409622253835720022833908990049978372433440652253082944751822496608723947636099920940745202955678830541992300566520575273547006606155213764734497823663247982765198440798849811253324989723250589578411459462666584925744344831892676942763901149429374780814400989290750655732068205282621867600722851630766514950564403025534950186295399387647931116748940930905084775100602106144273684404550226298207635938276812880937726642719463200240981414553709424309908157388902281674194134115977331701077287997525829322058089803759824724412462380081888527960579796672354079524310865876987555671590565852660543762867377340399343049213526464811475571260633549912966150550699016631549031089920240096808619753440343533938609953562237429849338772006987645638071321288602497340149524454196677073703649770033986717066069126267743817990391265336651367906615966375840879001105860623133502955075700572597043360593560662088851959531205655290048759067783008812377853721234785343977154690704660297054632800867297955178945647284515391531651930808391391376693127689801192497744483790584415395091233607356420931316161537589556347025715776397792911278320558592513044312815635954544035554007571700574130870203268879345589498441010568168343192497755019678222691389679456298344444598562159652612842280339613074394153621377629418347325382770637912268961916973755873429468338755640093032282624940490419017149136992408232077853107495977514837428545750598485913294363734752711540747177587436909457033793210058853117697716370889375057568444350225263526093658541322094788563584113463730746344706848369028668108654484644736269786082241409887477081255527881623901246187006793886334678502402183467316893297801296917379150677387161757353056269999405976974869152650770475252335276884572429905394058036666518473005221712861836551375060479533131747603242842237558678112392385845133680504040800277083344576031691191409668723472537344058917439172796504581276228558614227329710545152171499192316280380989370418274944871205851831657400156414527510399971212372369607207678822875830563506089701180352896553333604725748217667579908660473856356540955516568787765366359301028248164496468318430259580937515388214078720742868745863525176195497704172924429792711563441617508871565520332016778423087737926421687624838341544617910582575076404095198963713203120622212177407312460461876952972964742923190680429326299955458833073420576796632864261037243085665353549619494217375927272905622752751787557672918746248592639748336200290674233536565007545912911056019054077177128098338359261397940998373056490750701219621314590025302175852131017708964860923409674139076511936196586460118181780701618963357153903225379562204247347442557132012944812921129117357276978502453446063706076297521928652981805187835016435856630956177854182136872123745818006676195840096951886482436466170765281964796184284228350190805775313568055647847885504692127367155729921500173743245564604419670513327150641552908383607640861073443757201148882174358666262516343748894793797606703255093099438316233555357506095816038375049175661372324433922738458121211079106609178228716266103045012131501333792697517214494196972972773220972079063740898894944347606273707405804466355052673486247224884417132167769433756829853677081357712428845952634257762292931676056250570680293023316331317306013071356967468450546690235718849595496355811391686864662450634508100148556499951809322539203288665913913801434399712200179187500648797679490512961881019625897482533759264886153638064671909376130523213925863178275703383334383280682034160946399604649165672403198240658883526506919800463424780679968858106439580406917322777557694371881317288208267651860551727349920187046677628991761409274893416949755359057290977789354537901469680254191319610893604149135120746203950767426880038759700586974529653125391949907831856109390196935556127560286484213551408843839583960098614291834814020542120369458830428422704701673522978676192327384718007412372419048382911665107232128528929770196482793072453526423151702719947741883897356639154653827305952428687371021120634375608766073500348039486756821354531595416741827790550429262083650446988609353112788237035430794501532428916846449134126321065207458354437434601165131593463403245468358891864371143331902166349002684597665251135752016975503318083940202073422546049375114891833218643165859423370758134055746791104622766390106648977505696743835501622948581848000424803710971976786956114159744270742056713567360378289314208972648850249538350025467240918015189018512882095019040898529098659647378692587139079323569876631650271068937045088324361857683467178827463046781097018554115885473123433867723678912770622146084073259849401910327181032328770437932380487948112261610226948973504414946334914189274244440154115125962894568926495101401066174848690919560637925809803857593006009000009786318139805958057414494173743691300894065798713863680705595420525810757384187907124707965761689787820871752070739370876048241805592372095179720762192612124930687169326911419448701297340064796297364620539225945633918342216566559565952499088239820324114195400681874807812683060057375177375061140962870464712903241065400800189599233451917227901667740489147246480024677605243168648311039297380038653801129663340822936772152831706777687535177778551664917505297145076687100075363347780547304923863480011121370825972916555796656679160575382827485109888563270472446551912654859092636978937725037029011331904893383963795069004212548284192351465414496357554931822901854563765116411334704859282527436800332496892229840624551315980610970066423531404292399274230746063466829327509184141434794287572922504639601802012799633306963970510395032338156963941403602772411870854951231567191422992387591212315534525404367468509418180434438637447243347394090251513910043571847303046146449102523026009933702548136495148200276321869567019823475831647900885334533219245708062167029227044996064740992689549105056862721456633691585797046310209702224134088032248603169914303594150387697295556553894309066692720460612043416385875219484311859221934984217123720210243012847848385079219499883900460247001750675733094804470899993276713054334086664809173790249799954275628129820150993333531967550287509150857936409978692590681694109055935964195985565816510037719280073414239044540124008458820630433287946048133435034442613204688189264596666115804390679562407701875096387753563069211748071453123155030990498252815828153661924456305075215059503329342672907027060662199212733928788332792282707334177721865978438079383974216712001815118048494718863528859716986458449891344794400522278177305199228739043550635611745126316956982543875653656554269193848456080841809197045017148053621139026013407267090920769544219032067510762988853041990135235820717961256695280900733699537299219584563064471863840088188051138125903951714388645798410368222711923468323888371632251598561280404072694781539229210667981256788923308618883417904888148341840897815871229656022147605789049580641997667686991752140103380635457988887546687512073089679176631924884581276340756342359899415503893406585834613154655532163501580781058515825834727227738400507613428059983141667811767389679970505128750364839759740281456597224719692563108871700464859895666576397663142641226966316977822136342882600665785568080042365353037409235273598763991936452665777488781190982073804605158694115401954015904491504808837204156230224963198726626369904059663222495647258755884270698938769935863394197916104579867512007678314212605968098764482463831784157979824351472095401924249960563140925227797629831770958525605843402065612920252333637039090299197095155141800434484355353068232270080550173712664871077113060951233380490689414153107793620767520054598964480878699870672650591457860768979945393057413587843161720733773878804291581314843634750808859658260559920062006330383845710842906661196422594642778771870571681224309278468517715729223732742727570058022437424266804219127162935430187453259826533399786198422973653494132311349459354945300558937881515167103947393446684245536724752148303079184564171849629486455334151301704945795255475374599347885913101567509497076479272585868902208063813811930551560849504070731926464758802193853374477366348747927791173838939216927320630990730844866716923870714007622284067994007407991983623087141144873148297967161725634308347808133868513546454001580481373380526504583424574447853161766898597976541850122247300766984017829643810765153965042477534588256051489005526114017811309298115373418260292942252123052255686363798754235850712266155215704679046594052204658815201003739145936958040696713232083222332307162573348238677689100043328743674362424774675313738409092776287652507154609323465671777198925530208792305369403963641829728431853211193204209579014853106866911032006542975019324162027621511669776455885031419798715885641804070759328035665357279771039080645499861555069438470538297407900922020391933036983774287821922300377786295835749878635321137499045365837568635512338209585992754264570881183011434780311612781424392025357834892710126523358665079854861583435952514631380110921794432406819591486641445190053821596315601993246604058495085718603962272901109799287253065411076307464812104467280928789940845166338249601078999173513987051552720132520557193662419806341901528081337274862074850041262946729065443198814912439231138083352784045582447952435511160432648332452906840249223482851192140044252675148791703292851838870684624129479429684699085196921094084832402567096858972590400938039746858969418061803039311946183679829957421167153055361905556171908996880428905639518987223188486368748676905358044497525667266991339131241817113977487246058138214244850477454868142309099732512303478283841390070993725027586387242992733928238058625280006661700580128399476354937647771032185072955544524245268256068784787274582891277561580702239389510784978291456503582691184452353235371601155750781765114542902086079510343581396175244078877032347655546176665768987557976094799806641991202219031783086280461916016684486205645402796149120386027750729528883372659232476329404247827538571084381119778821515208052373046308927162854664006154530293823671579778963342000294881690196628760495091376505750539469186067802116492581916477938304914140310417709211342908760610891235700607558320628677368607380928480915030839533122233598134312410372090787039946775615325038339591209365723869899433900941756742706360110888841702539107363698829734928123682646904868967448334003826798118836987708718998619148986567376397153410465301461512655838730270675733004345085898106381568961958289152534022495383358662660442309187141610153016201959884324657997039430201119368085481612571083841622680141242725474198500718395798281806141360576704750384479473302829182739379145454746869476265630073216333641581109117491919766103285559641166374725141074421283814529435751377994327752058206066018588298263616441984920444499097790821871887205825392814372562408681330551764414334396270902020055944984080978048680250319259155970052263115442934318786047049518524284873825073328941472652194441999526611059510223740564749169744754245843942994324835951829167591139163268114683730397248302671617165734484713634063621565530240096055009751170128787044718367944394494083938861008678127333342933550744511292710516394648215971853453159371842980746168712152804523928631876289174648444386624346510213623763527394555800341724275528379959890477590350469955047720600596690765064727666340700028754994445074977951279103976521498601139342026507056450321970177527084219256567384517546838880417101730899492066564687632751293496422965283426783323790299582376566876787458907359584302269028521786109761818180977279690123519559532506225181548378684937173657163242117985479317172475501185852043022404759678208175324268651130644005087748339094912720013002960019694679851490466532688205686719433843152385310715089485183543599672052386510697394767997842935801994849224419097945974127272886680074346801786423464960935585675277760138188646426829988975028839269912394551081933729867108268506015417112854923761633121557414362466283077283990669638292121927545014772818737457617880810586909379037136962827848114902289467296151600829733803873513105713944994142818467593169158980480475966264726737623034225445671388729990908113360669396795861333548651374433871093898428175451791761286665036473825565129411490518605365853593725778112016656175945074526914989767240412768644667576190662124840737033924176926914137685103875209003922733392671169781266523299623968253305520199938714662594059616012677692628897455549921644994209057848289254178572794393763645911244033275983848501314411088737920707574503607064467024544062073590872326386831772877304838773946762706336039540553264569849767978972176782370848800814128948267942947462484616540664946979943109235920136790566570170915646867014806131382568496437450378594596134275275676111193102491318857313104044645391970509311666459758849560057220230984735007443247856617236797541483866298827251246849653214654298651671190519543085582348780702829743740194767948707892284145283938996251344471653308952224773097410396856654227749715854021187161369343833702922004999958247740207381996306054440272071156973109177023437883697978032256449968346358199707210585120610731680998820278841460516863835086504125800291118284000702579769321880547676815504648985537536897483345488860917894268064504306954059763378953821314300803175134917861203438773684580023931094432550354220158462300163432693888658374337282369288991616826929406771667337381784805355880346155811682622184008184197681890157604670803592800235848685518651162793552718987078221316357744678777844762588365241970455238757684401675747084061839450066618267937930150664705234146413846874375382528452260265114785282221539699746549578445489919544550404825297884481810341712836311667290079679560680533667968185313411517512430229283342147270273083932336931504772511164190807047998655817309283442688275797785044047158818855089393120969492681648832501372902596039630318387768262949316557528382377910353893910163470428928382715317524685169725827932330205479821011098962267294757012159417858905062015640575576660467847123203539541806333579674556375308662036173984280020889126431505368845998679558959440082383735505842631867781899153029056982981176811014407590152834632445149103294800625050839999747716041435663677884426591851748286427469782751154238250850545824348269974011079462085181283938760497031218674029257754642906334407951710855403310770369022196316901456586044067949259671831058658425141247998471138609326188420829507521079025801115463226406106123100660392047014804343632745365686428914704750115952944138027468757077527941374749923059219480226023479810847494256178921175453217292919401889854994564127115126413449100323007480803670190405061757152231714825511380875588805886485112954170481403300503321218119468096088634473542454783920047170153530366363093778914583390409506494228534906032752635115062233980370022263406717935782036836014286338324478041050880842073199875223375798942388815911709970856417551967255208600771486733522105633810697696803155621179429795706301503127810120801112535516804046398422980865641319154360457263711801766353192255097357081756367994963010917149355332101026179002278742284990615654543435698097460816213867930682166469967442428225696430869958526795425070096354410476054029095991322375286933783658260742756042144995821684387882625186177896350629114895432678005579879841314802272398097931557917028218458825143074616850150181832667721116560480757264279504827227737821421914753204962708910536339826214160066630524754133746681587223195156589109025575793544782988832422761524306942510838524164767463928541320064941138484412352268165268856363854291875025181301327903359980679635096025021579796115207047881057319254694181398750238098482187064444662623526382244160029939511715544272334526349860398124750500164112828085430944298848097299221661109668624358611523494875588427381654734712656755771461673980151451959229935460803359529006092417743353553162222973680218772370308871342709318290949863757804287034574879638992961702231883154883041100636809658815206185977882176626954308399021903445586808347854328912360401330907455420579091916281381033952776515101740026117375007118915300002203870685164573033323370257247139409681792414129098642578068142008693407292820175110967211712456292494844107375956704257765206460587388549738816351681238240777069694520023942672739694866929138686500785107094009083816582520841114437919272784604137459761792357675102104525993062149221502566788398579937804763236811145086241450509041753425573121463871626218958552151478260126744447077726812137660040185589215042369154465416843840117147167245607705237186065036286088804734117451192879020159942062033530836416331230407466708027922917988615542705731846727757913616982826897547611279815390783507723669134268601846017791738546049244853621556278924880973196984798133223742036058695401366034043318382475530219200885167463745908425484111831393165663220639423332431856384355753826274169022777848425407548279526784471768596916541140538367760627303973587315691682373329324855830060937945393887276893944957776072379777193881083886583183448151525881652135917311699971474019765707489589544140457903446441443142360841517253319334229026528586624236180865566989423615353274417675629690157122017560917150957045771499675068789425170114296954338959401354444413440141419753751852582012168929412061099867026513529254217565283330991719443489420560561967036092223251580122788025149067468408354439123902984420526440910967435060716891027259293573598130060739173701188634236664442249745400032301464543920204338155956104898168464979915800966772115520995084777450934530341041579085551436920449433593743880552602556993167791222010353383118385189721068507166065263331449873276258622326809683093701847624923391305101948753451488758944883747217843866974389634930344594791828226570158228851510081915422096394135624437594951997851821128248807037987219823948954782688264573076576982426828644955035575534906472229304685755206471422609231323387821391420660310710856494664597859549062600945403506718845672584580282826534026759903374947313011123109963931083081993366908217634799353356102892291506455888987057900021177499750124018912413357569033203992016936086041245484812224511759362045902096398354358363322229643901324391100533228545194742773349794401821682222170359604855401941352006793242244885077592310358096966361038908408538297379646341111878897698090854822286588948193871127856540301223848203389889658368809882102683918833201008601642200701167237415896136405191056069242171670623657727738542658038307004537362519638829799226105932599678285050086835315603752955250289173934149735983632178861537621213422487871909739195578265050401371766757647365868704023870374057256983033837233775512671865229304131506169432703830635795157841844589487120714511633216448609651411676196739802830235165626339880618975524612194028012579552924867035351238892375080104724754787933636939224995247003237219204860135471866079704049387318149383483081820098255315671388928818520885370558028931212364061485323221972405654844915829245705246091987297323608695682488411367274619741563452634035010525109743924520648060454008967462566344098343968248919993508781547041346170065504711149908852866083302020197019281435621297255235198737514889751454873222325975921984463913394134287361597752587803159620094973188855058160624020213344763516404270408711511897804174952205507261637199419347794401204607096313845219497041161797454222022845275167025246297327125115194349285180703645796807556633815264728154528590220455777719118003601966393720563704543026991543574438762794552244855179341128390542466521369721484866500685245356284599294682910999048066318388125725236261081899783611992697920815481307855913899184886262301456622451684239190863225155607283967197930559205885725335273290588434865037948893564817565857431823486959101753905041590144008916874623419598696211717084245402682352847999688772077192686567475036087316025607629041019285795207029271725705347044086841671684496461683213059339228909218211851423140129389991152964698647921627966117406981222987199419025141354935635683593933888148083163213629328212477945668841863571490398453887665693907875818693332511827037226283302800857325341071097910263648518081423516609213749376331239807488559716109643324542515510679892673876654160628773235303310806183723001724942215391051301065426099283456628583944881928745160386615881375140570135558641078433748535766408965592913054954233941060770121266746268763024071714085344438694535672671180167923935360674023804753074167432915136914326022211931037485624280406810038700841588821266980541376318719086382577032559891032862699100895930234128014419383758236544165198044069349191926572191070673562744777567277112469316024458702538364583522848887093388356268866291108449728572999763992961709205284898308093805071687306481425788906423136796988021773275113197576901267746227796284867283588614073217374957784308764723373633497920627109715338538037639271437164997717425809511097455991937583085481223569706670566408558656136938519027197179254622728401060928789860562552008955983916825164084980655740910988503202096139751370906912475607281677321980423927348941221183368299469573440003397469996436199826633273941469594201153779880544726075175011140658247952373163678059807301449347848108891959568829642448245541756665550773487637658894256654556946397627512801294298157394104824497178841676529324669590201124629390591052492562080251301804200340994179048327629068884882163946485595353547702257042206014105756173276587122143505674821347652024877670451874422634456524549526773932659943778368407360382889659995617181976123420751086567716689752568862069540506975808371515167823155095933944595643765906540937808066637154016902393486988474073847754541432195726424431451844910871923023249083726047937041427084519302252121590694839336465912738773519204193510406567725105686137168110562252181850432415011625469238908992247293879002549593273815417195881395041763053161640074978940816616820252344241978534118223073063153295878982952676406050764334528566738008509626126670750980765843140337358364321746377953426717001873867825001449001170824607969496995874547640535350846526055892463085002899248549139361994705530264497616142752495868821240930503893087095564628053406406913573860748668387920018654834509448325650987686612092878689396854440166790013333376005943930319838447821168760141307123988652146926433945011840375849424782633615235281079427745612101654060685753194690601279541294357695502447552793408470699917350172111485283525581982684098495355059686685087176214431242224264614364108469088832583063308430439972925447602809854117133605491552688879127484553706726353544860906777142742237876288226328064060577438970739275808366193782456488707311630723506531181285624135062121196336877453846524671826774877536495408535313297936783174182162759786595514218806957073010921749989633109079573197293648366608728079993797293320323777307400461144344682027693156872741546303287453021223944989132133048642211425621910927895480446598069085686865343226858143821949154548861102622489253391133779254650993654780407884846759264202170582210395377548109285161715338434346451892793798922656479604560936676873373621322928935946363741052632666762200443085640811462876664992499919062649145136749264841297981533106751169239715677610956487930965024643236984228044002830258481202140163917015045716811911814286579552254483894313649381256324893368981041646716913445545014145199679677234117232422024218231753952622091709557008971221156914519960607270107126587345572986110918720115900252297374192443680115763078601856045876802867952196206568266838540260305762852837849388321876276840085841671373449771934933725318523373984530642345249567216878124514696578725989909600909437912937015193037563502013102257435598724438303048209089041733434361748822682216261377284787356400734905945723104325262009420691512218666834906842351135294390301241488803553659420932383806703361215612247983039189979292149738628636073072560466437652479089017436556803099108312740338321433130822447645000929749672417045885655653799273521704221172402090104459518501334231506404806257377894794423151035737193291187283708408539102778060096006569609954787228377757604231323793718675947014112439586071547954493605137686095345867107637524247524374671801677871948969989228757313503751509924989934684502772930906701935514069958168863298789388649643377489766772939486570852211973405336690165204291696036553032338696079012564195822738809531849667320064046711127085110631074595372392991533201176971238980524921197242202896814639429935200616535586948509420662921184183617385266795900328605250399921376994087740648257674577030380311906947000569671674084148130888243613324220097741281835150084754437001017484844810745934378317157227222756467041606836843854980290925270398970523829863590889760025804247714702944933912626579922136374343562547332371402559073781193210947474483571131663096637882823264375834232920456884767394810936766437887373006648648843267594577944083935682377898021777991363655829902424648911982331479755751408562551085054616245386805143652883502107608409993514553115613813266567433495473836246205252477027979502157111681721884862126947754729862646215536115270623010848092292296100251005937088075268835058507960329238835627000862847422479354258334868285569625407432916234463902336233568400173660034005739797292935817292477660344659745725778983252802819490539001394388468052519284085776970854346643156271652952344696195048787353995248941157895265160219534547842614389343550638187179998493961461100480246738184823248136064218917947153949046701546618736928502091222643255535202126697764855077640613103934891670906720832032362480711046552163677853680724084258377685591223020555798530007461537740646328529903867880789973721355347993539310056600700034141895920146161461692824746897478420595921401180986769635954117143473367547888006979592943373339921822420160518183263142172854371703126779197460581796614958740657680788617406322767932208878972432836718033743004056846697853311911985824084341172627303845392801467327995246911474950651626739699463556169832850944745924741575912095923987753051045755145052947479876768296597914692481238250059273271078059850935051489572954507172670021681281100221239447298554733860941278537360361513327963265912747896134028148037228911639020504976951159200321904767877819309933903602501910661691319091143396146308515704124143745099153204619868994114005699308391672473184427843578992501626955575190406444282183518174429378181430649093471819043319306588108093401277046674471993886779143190766505882055877527789706729293287766303960291987507746027558039553497948032203390123422082532177770045395251641102846849590772914180900126494302119095799888255648081226769053465835733924449094082218383929701903235850965829489697253453275580799396102259790883087438923028411631270287811978640259783241458130137267360985822096604792867971030870533459160429386737008255880705128310992898973459306118995367434173795085918244525515944413548637985217813148184794881031730521880647619341339334451760930854822678202597117894005016171813428511414376873523840541582921161323604093912760885407807662416460517552070197911812794551744243929466805911351925359321633643389259742566558276397644921615494784142358164596881639925924903614789244569206545381132533552903934291337213023721815886358443211944817714083308084115431541855882628148362511208217294235758078824703345182837209129178706307872976132807829168001181363812504932731110006193938061591216713203244977186787920865447347519633240315923209255888601779574810875461789343205209723634605246189824425609536794580098281972794410396191936413486886551252940045921263149924014172574967302623733827081969345382940362054741092787536815184154127022225045723695941278553217538843112101195821865361610567189751831672794088390037854542518820502184530762558673686886545534779954941418353839842411822060790599559399152351655134535029063953113585698697575126128926564124743117964287089860281421697601245903392250997092241620383419887426761424464529380746441582149012496282904834653953199459645540091107482057524776474176304925628050131528558160663439499462203164196606940688068958958857871453986597388990339270725738897206509279440047950926233585181895305242607163002034508067992332701370673069130038815518212746974673890501921220161782888745625829232968459283500981848936120342243419601501865185653341749638033794329372815816834853885520091744874158040877063275145043196697668795612739681044422362753446488222770883946818405456721588189083744828580653645020433533340919325947935168849475461915765204064086224977129497365531912234081829333107573555011083112082356827775609157231947796560525285281565916834930084082055492174452951812578362519512607223830617542476521625069593936026836398467307305872109758312737410908472932013291424757390195326390193716831605390888898459487590637965781865539201119869644507797711942287382047607338333709222082202212277158037945698477619526365371744165279972357430148895280664201379108891088963354337237782937786436063516458662420253039992345389635843550979291231678620138680169915115879478891942118624160360980332818970394096766178860563466172571276180864147249658202633002415749983712987163819621104852362654325438233839503982618592589485948708086526446891129547040501529050443891670269147946194891528513731833765889528407065440505241008382688361988536427884248820117512833587423199398297252763762239999320819503755317754209854860201895865386152944327414279669427671747550147975782209847365186501186469129753227822732754666943058180488830458077673387246608397313252388158032616965493037020535250930565577874393204532201581327246655366539006769475303210230653615939030628810684419445166434792380766821510494574855573900679243975016345096723806407764235177503039326842019835905418887642690990959965915546818048059870252757914283321394091350331624852507906882054851130540002565602062032121574441435303520613135243156854685168492576655609916137614582491532563315573381676421124593353712777879963255736002419894113565518858316358827197308491170008920503557557997366692992616845831703241154133868372957182597936693386288565615091156677445554182955909268759567711795731571543905600273756462950444038658690930308909194187604393143691624681582012995692768137655775777533411843475416992295046621340779091944772504884696808134415293193000031555601914282479633283775602071720736578108864729287023496479343268688010615955608029068859265996111036954065632801572113591057068779851861924438491367973318664549388379305002668976105405005652980882301644918680912586008439911590708850549739112771897557112095179418823639093521623556231464617484978294101122310799437370248405413591781943448951143783786924984844775407366018801420223235243137060419509598283329460009698466329198817174955277151595886518906610621032732405573285650469834392155911739754677219836948185581896377712681390139121010893839314468111154038740722064940953516096700218870901889141667997959257486900745047756370988460997634017592378276200107568115438220031430916928924299286888646059947889830191097989083979820109408334462188428796223206157435005419731649524507507664313391204416872120717253579458118660826490956857290753007949218245601188537415461662323229819364095047017125019287127865479814900110970159640376604701180402540875952670393867868831223697456010314971300017618878577648978099759508446277211822344832400025208839838909743571886948129737358267775086405383782475379323985311945856940380981763224060785993164660568299909806227461072178875712699386666730601414262233321738994369902263725250122747247152668412904569709967668616294929134374266947646115339391158228533978219307361387537251718815387786472868222888507014269522403619401863444575349084983745307110283691704881918292107227808155193087191912987152778190966011203531063799588761834398379530639654215284378654072154540296476156350737981968286308916550014005440766574349243543759610239024043405278009303083506555200986466062072917656627754892689929986374043863557100307993621902903489825133445423350815883915567998501142380666508347212903135930166606403308018503499998388597642275080427719373115881537855357418961001321498294125531612036020836337819078003627228430205478960121632201511713556585615711388600172261508832065508054446374124825835092265938133365981704726147408401933676876467897160306740717191821004267210465136646720517679256721706391008046934899369527191298599175454622673652537943832931397453238936938972720922127210293227377983905362589232608116447568464618725476825371572179183045126104350206288791985662654324668419345597339248176606347080636420719432793020250599302104591704738394862409518891576310868847397782840117377796221942105067504610206181345201695456540275238548146046482556229784230471605267036755292787399609914115900807878644219990918045174098501195203619327260759337541913787601333244119885013090540194189889915272843041159365794254041661717186193009186488397585668219798234217970325337639787151432851629702355137528899539953456745694569330995262609979752649010622639504402471477640685266078320790133575198258712579226211512378459723730057403073092139837047335732073166667147388056795717102855150625655216347597369235163599098322267212243592895972827997555471516386805347614881137192717804216245326832816044809882330975048817448565605533349225880187509883364686565145891788606914697213703148686030107082815066314964125266786715509606594098265735281528594335108705592622840220233258515564615780136417939157030247414224193533642749997336261296906769895118299174727092963608019480525266688397676406608902480040740867088272018972294388386603991454326683866492970200338835771895396702589693579744139280762840875451278087950854939636864999956619006000270895443402445212482981546159807329823844801171102952602665251066087249165763249565909391101971124392114499729060876118954973985382651862068775327221283690198306059805143595591287317492120336156018157648851443958571282455075180478647094224915946627752687587363704602145808238775064239630367608781377724210430008314325565313327750271108196647107750672140334998700573522051560270294211068690761890574413016163326251009567015336377549182931253046038244775608695810005373738998577113318905099998411204947986616488830251325084105404596835598743505022916288431598718017256447340929109300086648783699068634287416172561173251529344557645150185904644702562993391691825762848912219221294720878894831109904627046783209774171858366584287050424483521610076325936818727665515006406194556104596530191878055635186343840015881282246546949553804044736026202116910035385784188661309713795432119098753698403138990729929018997150430103449598676959523632284313867460187931143434125074346527182072669708326237953021505001219186876946292116629206661425967085366002749868884926274906296855023828802929694965777517188780438757514308631585035701140950786633434884611883191979846029526797083813684887006731437414971442923688437162132688487736501858350565031480417100308255408898717895880431137112639462453800309398102561091682571245555905327385123284592350648953068307328910711123189441159029599975466332778497406143818437503471877478784924935586465087616975334089382006813572751300620355105545363258878408580181165540949824164151092903275850865199327350513025591739607786344148980023083919245977879163580422389367056666524016313135632715975976226471139669434252479071116989835581213956632242992846451460051207868306292749645989393504882912171315671687134197811807177920327909660276834742695303589846921663407201924508224699173639708482829225869005611518318282896884294103053767565006437404422079911130137144998228809460308534373013501819304581395911496582572714240516592121202336201077301181760110121041508394276507726652036939569828967973410212668933183103888392120422408638945888080767780592486896131659703902948773427666535546621521716988817108708197633130360955634833531134162972395160340612127279108693101446746759200693867850396625365202545073101321852202949641587806584975302877386541287705621728066776534759634719562123338236184254166454396659667794403425257461172881964404970350148737438884080737210611901706793555787374518160977436850185591432491851003258930027156864119548716426837872392053263636446717890610678997767572522695408051834961915862836041625524749811835234242346649833416208485670921471244430353794685258726516855669702904667265753202743663463139924188139284134766689256669509336375996730728657947456653133675521696471331711411364003850169348376351846676830608747681226267912247486709993025452388088051416367388900625437313283535656262622826317328472798206902866418255461916864001573214991141332161406791832985914389617669988595161111509881319466817786338094922219286048258269831520884923047890901818309611061378856934112578400226169204263728145702779982764885390514328814491835021796699803783655215442781261640584993305402364918035378720980649353170069535941041971850875360585155208421737080848581738583702562555311167547952999046018456526030517001741622142160173654938780508676415111597123215528042740202531551621206422092075621420813174688834067557119156747106415980844427565039100682498443703685002742022702782769881878052761065803279708262062786424808619492121438409493625467982639491620472547890893523083006103898995863754400352137861067329298937916945468626847219406885202222545636853172398836055547293356791623971277258746246116555759853546471674600958574929422151883479749116726734354882223894282225090000171523804684422327447592139158781544518403454219491648938374328345585857949204365067366175281007907493207091609151498487468377811797388946217452241589457226878744111704711061469546410903400632647366784075104173594807545080947611785024405350642320053160183245848604578294659619379063670588585736664571814740412828967207735069982374566595887304881317474079417791008232792784451968813801896928912779746294345315548753090851720148635360675866422524369640028388951671641123822348282040367747458637159988054911375327424543390706260148010801760128719363232948307572641037811820129033481446677360678996088856700990117372614284828030296631759940021419062071266203727229807680304770591613337803891568675470646153272896027942660703289470709028749335175799263545347272620056794186077096599886858358773965079434473977587029319619857949849081206922086721967883152745115021638325101410546397190325087459146415701903603358741973998080423413600173275185634363064295235499084604230996760458609620161759037963471954562563310915260467618671375917198456033230844859674109356334920143906455895353204173497798552106820705514424284526754474874392929943176999552390423962509524753669236526006675503412404709267938599263021164978202823013419502384254330039304126637155074152000268722537554445471338272855862969268205531023460793490640879452137345366099732794071779212604316790712722597661798667462208107122552589469797775978964366898186952265067108332388604242076958600980877157405750444961772814780785258112089926880973092035502722103139286269090910826870076838503938722991106411400835365484035006120307514212815850757934219218141151686263595730993643770082271617390674768030341007321978066117051422751756338320007912182906379964273377834677182883445413990182610931527065842434094914834406451368627526133496504353966219785106592511575132164125090153235321204284907285590947825155996391342440629663980411086064017851079012319426761444946906742072239798175157259318347785274452863413539857701405251683861306139753731065593825969248044890690691238108231991655235593592861760447208120775286834791404269336590894243896968622051116851831297803991819746256583334808419388581125913805143859571646157855113910092379799599891110297474182454204929300656260157911249377543290241642275019854290070860837882546303232057120516691441351561934955604496237533013186804139994688613817856759470747613443818675896214931685321783020611933235415565872000298557122073370757654036074584450891727071868138489380912332842207662364842843512885910080527603027592647004857407851330348126630192405394505621968866059662547080016457168935749811895854097967599631993534889361660431583678396605095931845226979182261839756574804224861504772406516164484609944819581266342668816438728499565140815546573243584292795710738690658441119684339399572174416749747434809432308384556748915668950820718065335649090146215878796337239676083658207241103400832006271862326004678081077273768890512449490004293565707988265375157067261949035540692903283073967167233320170822530642421367410694657015955745107386520662719186590702010128587456019958644536653137119582198052189809218234723165930181811255779047184292636032615979754570514595656208475921033580272623809893400168585772746460405423804125526609692017838158817583584252128998949281906967269693828576600330217217670792106335699434163863867148693330185929540242497833406956828646171184909168067922901226950250413332469874227209029117327410001945840625889653028892220892861906727642836233627267931079452850236911540534679541495332866796607411305556569444110857238559216184374769215984527308539253260238605839411398620510537492748674514806095904759355582075124418128365966746783421294510903837121886152851590172274265730146208481009847795148074473769217378714546536124841677838044499199070385911902539293963227103597810990720241649203577163579658589949710107048109454545845314243831452107541280087423355747207503609635323925328928774911290606745008693568917118190002386773952896272619244964005976923697849543359103736496028642692742715889402637092901993599593437765129215560615425701954386604573077035811951137598850963654090061954675048821813360206088778388915358731584416624318882039217000814278085912179435045137639299713845265248161014473316301724087919389569496162375154212912586094422536299547131981804249201383446544282067747036200496013825767207739183045086997262127828381284472120289082146827037646828228043100325173019199941774205458366124589123591533268217724423156712125037012073456804243754143666817705431378382655900715427334177701437253522549675847262408322914591589738222954912056903292147600625895513110490483594521564004951780892817527773941214864446927467505680731163981125550230819096572910528346578351090580163401990931838275995090204703887043024975985508840013414919841769845857755818211149393733361213428671124074258502856330850202822628958980683327029066885258609093968237522943676814353953008324691420194985084765934871224644113734915462117082697238851672567310162415944397151131583022574271719110867417068183117404920525265709167773372087100371166247708203898192103254796355556898154356646868760933346293399785221032359617703153893065347625772035391219257131671035773850726764932194310362887805826922506016638029153402867903157143391332584822565919631452901312679375331595456461738365821430219667153705792624921907951292853854559192259817512455431116662318042701776488675316588703560306484171726917369760212021987311696162564677339700344421557371649289581876782195213461142521837542096565316739499735301096924077748341697008247359026840245215595365987461191025941518070253497574604697979061694298458607252861882148709874152365566670282176351385016485714702099680348477025170814954200928886817125273289790138342289570598489991128656783461035036102887933070598681053525262365801501653054147421223005997803262033121261603763115640833065455980147599462388935353732464099535846239919167184159857074389748258717966611989701992608531359645479678572355152760484003693766055773032831396745945107779562671484191684618984742744252472188231640636767252035904225833951835119673995699223473559988534608110917762568787179389868171194058353353127229762518030717666029835712614778738271918863882348145890491710261220718316217873545481495117848528480880102450358597685190113138606315642093017746631477066412431361616261016705554829993570885927162935661211353634920886106525073012947602364999956966425563296796649957378415812039450908263343274143221550344323490550633889054912634799095488016319599741506016774414520862418222712135533867289548851008049690941472191856893489291029776699503408799717161255323870055708248593705186402177074244087706741865980675599417013326889240380712530354620088555475793104365416864946320431714050093860857308985851062688771423291310748880877027320007569291233242314520972087849891869241756476104378999524154175503656480164900232763750291385178847301841594610304760956542869048246714590712680948501791794969748923206284538084344716583241093948996164324336648897129237552843163782226991556797817873428599692982418711530271786208168267535700166779029788144439555334962771148811010456160033433295805784111931762042526150285539360656544373047728444900091411843782408580510275662740075580216574733737597127599779202012542342160422511278779740749986367966677028410978731767464757258987858346575044468778233430023930871747050619279194115611344941781093846038012050287386413384296785522740268159563254075097876012240926044918611062827868984150420947770271535446172704097355629391010263910343274896344578347483586862241698112855992636144824094632924047690250825562624916994324222170956510423116753057256220706005308351669015121420596129475704691393232117327172557231098558500186562598203529573766172981886574844833238115563115217481664321406309763627477353418549093676179982249477342708290242829931571486314752911766999784394284913938571387801033023376258644532164795935471036850896516579266152011771740777031905950125306640004131706823675051264389797123192009178344746884772766754115560768772005924701526767601506493830906905093029403347357324431281391324545940087019644484100787094820112628313499045556818928557777673855516933647087705229777998065058837776277228835875861586327859401433014517840171792872321196271876790941529606921254545091227861851668441865154711489577079464767066288526736502765303059024361677841916576270586563757931150704103367845815874810064854373183012132199189314117635683513997664991257919574405589749955442279370697355813545734772556042593410343952009467667657069870634516547086617152187397036802855614364197572326283341396414529393122353186202280134478544224575728307494389244365799064595149147308536316432773099964956004761035212131203305253838171676926275738878273967451050077649350151344184596299286314591473895459569916207449573058551905005229515567310820535174139938129621938036425807812319798216795289219214646692693759607125680635882571437282127029912207033962836291470156049049938504800097013525158901175496484611549464151079152481301193232454758501551657300611491245440981549136191272884064324866165172866600900959477941020546083871202274173863070676063442657721620426020848766618330318270739860123276758541467805632702486302923939886575032780678799933470861870870585089137003425496632688883308253765012528768911676089962400925691089260337250912762041613974882027533769845148794992416564682140816366113841947080206833587995860785833281663375316441032110563463390179997786184358284572204285742023990887706045072354794680658057761274215066327262110380174403860674410960443055262182592649425378636343463956767564134501755459098106383371883772463316440635160998755021016994096724949029635930782877008655094307494725320506667941994514671152982482659964840398686046845130356606939548122559044243592837403940819195199325481822264134538637609957445614328847109060838998362464642753695783697314751566927008898429739769961246074787351375706821324355882306804207747563064750861943992674573767408143865295522149410741562164655055565184826505805510421948619212416567759906413972049779942578969254426668056488199677670455470788415873366604059082878655933004932928751315311614450723031000787565949614530566228155308863595503064030163924310225035986465171625985852338136171880615186495741922587612017413756638611570857537587782163372896008480698509650585310289402352886347142935358453426506203489131340208131658598951254756908410313417175995143998884322470301643344136377832417184867004647348892902608701607336011032825043025592829485630745979720267135784811556410596629141652015917676894278329836518392001515201952458848261827185752835674815583483376461354357588395850574785013037688526620996572318497852199900627711561795750068773508964405288946503759883815839317825343272613096530379988327613795115776861148590146689189191435981157074871262010524914866110539423554516435910347152778542157318147783235367697022107245229126947184672629748252821752188611044487734612234677975615591245916724843294550595124686883326947982829008731576995017494809916390340073355624676661452384364112230191790096905371132722947638822610017174707196144755488818682691132494777146965471812636148308405717510983856776056278678562211310256464086519454217402376201639224292092799566718866027068327951648733210686008663170605113266096054379710094006534462623577149890119838956402372544523930925380039696900829425961264073191940601059010944629332719412987556464563662876150935391230476120832727568970187016074042260133029449749086662248054211286101943874152385384258052594742335110607104094167736766324030000072558135701092003304393656300016766243681342702955884937188115215725145832827258658751921933422106509517159359168676333428669768811357265072650650100345557229208501238340755935978649332141550681478688282515123393740718229731897120520451422517147382718358276241434665280606066461805918389667689914995162759824666597097799627171911569573451323076224960544233124048508343368036737009765324138911509781625761787700189622519288957155258609633020849246555475205119493586986152979208317475840498851992750522798936042156029636020725696185446314666606923960519750974627748386522343046668000161750959441765787648331341623552722929242485728070397333338056880623416534575415861635456323630795296897144978465113949168086088697394974484168800726843470570318202020108308535787313836600916271551266796727571760780175779659337395018541629306491216057853292282284626199055652312506442664928041573727992143453460865777960784636784577738425803178332565221291120339826236423583328834318419159640819004564741409293562453222072938006851419806802365005606459971545242787699396625235087587379864686409833915426615769359430434288916297085540803675339595890194497471013112373804530513600075661809127725414058565253099978652726481513770695163527774702017863582910981478189684083257948227531354278405358700697657122441265330287295512691456407994108117674556456155417853288918595704008112276950509146073824948055063653182571579827871678026953210951140703425630506734889954990930854219124332566630567280149714558766279454371767802739023977772400994451226285733709241298858923293574681373740602320642660637443539157336292376062854503455472910138937218079031470794285012802449643608722574018466880186183230073019670118906257877217914858378366648232930080534922516362728336960383345598693545525708544225914752961196508932742633211195830601124323887559882905350540023316852100922165231051957824999593827338830720879847102265736393797558267442526644686202140743029289598073601098912161890893403158258177820339328478891897448185715214833759715725224881718864276699295474046368019309507531832143472418728677586599616605717602611688731689799779413948065081881443158334970359752143871449164650701328949352089320981882905251068028399242288558836254731707079867904070492292323675992902186421425470826126217890639249719329875510236652686868464180575355857622132083685664808702566908493104000474613411440065921488952602077551200587009924258081654300570161548900927578599019152022372462099849302540661337693846483116940380060599863424010012877888242025916035816900599585737859814204055128488712624025609218583350730020394734684025265538628561748572017228510266100331683845518132142526251233720551556607763283171168503123657546374289380263046648495988569722781934799630142110274802072437566737146967820680472066021027988136795738748019402216459022091251907587962698298223668453154071204189526506712373925522947211334776352965350355165158407169589797890124500513808300617008160524465359528271762196669598570371518627890736878046876783875729789489004197003083876019760971998948967138925350072485168321335780626974049636071648538902220870317024777901263968662016007797986994238424825763639887718877979300485028203061374549069447186687883723962791027577055796223241258125086976899954678064636282901820187006968951509448658810294255762966576564799116172521342175066053069346992031852200394604738328713303545414987830911453463765615801838076755279972556649090015026437839704619061978956101878964775522519963132744858679112778661069592349133322599736044342163331218949017281998816642983792465072733573984412484966348011958992855215238001199903115042074816039623690500984286773525293858410339128395355588078432916023499785660074350056617772028510360951090810805853773769408804164272027345365656074361056585004791411569823198783164082764604863340042041058780154542747089413926654790847320651533180814798215083518214954033076874154024659121950075842546301670266987567079361510454360820120630583139288424705779148754950868201697444323634142264970268032470575050112408181390785166507632398252374494679797819955393970348801714157103750819895545131952430500548981812063989915962134336427575064731394238297148224022782880348937423657480068534912888545284651859235458366151453648074202445682449421518635159950623031780147868845401119826344874648625888646137370520420462565107446860009617240850031031270684579456088675170481776286357011305893929297159660790000884594291730634011863097894153584120569931564694077909687058055286772263593927588482341999374942793386101051341948359804966629261780081326062121096679671558250505424882095448147167049857215524161389214788474972588945877737762396351278625133295949617434487654437554453226854947516234460730555180880003000841091765336267654577024066610782460221182534866587809496783990634224406635521158682963888357777015917624000667668811895865738398429435564190399259702027542207638782559189751922082516706962659107625546624948436581920173200376765098289649504827379735601232425796542904355192672409970535539243122969549279227067816913742833053496620893452136351033220619128310974439899400775738868193253531996708497318351492124496580608434447822415462079867259197326855445129736551955134665584103467274593742466692384510672014771505648359958043738208370011110264344900222582142468747692414678484502486309958375174923700648889252888707063863489839314590515703956898460534299972460926070851069086208395599539899776372834639284531815998246901114691638687489548169384989754542271479049257874314441853326517115210129581668576577655520470942134133497268225539675526935118728568497514066548627259198212914959462866328366122651767320999152103282320907058398909123438479539001569888329425701321494569524026541580562146540814058284875673574855429317785042364937936385325197205563569773552464611291524972560926133063157895935935093318489486055011548678799674084671935092725778240332657099071130922557634225435070407993826759783210691493253823467891309381961764436775800861986716039372644658529034093577416000665211869191439305612373405077499240279672974775882181140782191969549618662368339420468221817850984259077197679730250615267784448136071709988723356979206927818362416457197106900484031293012879073556413675250595001716806932997601176640785784228317832962432651204458103774012781312762395040500948766944650090446869610015585439078953544185614837810987229011747061161714579579343013557081053728979790931750578446119456798909451757339304457291404891266219796335035261732312195669623128562755659608806234399430492508483896009063443498759994969177427146047564521118671575803915517848498698457766626835341621103322711276151806308962921134702294707298796150901737922158324553661168249301644345667053644573200020351556779428318165744866599798101320192786828605963664409605171266038261120568009977852120291862342729994063223931254102586759549888719354058327286610784131410777833625859394054147432467631316590740443463831845448828480735846786039597533164967384172441395066711784380705192131856603353387146261551906262473980609073003826923243578328411776844977528345793603630391994452805076706850940341040522768081983480069004974301281806974391214080145362152233798358164272281313253030599692641411993822753629026636013413338846720984105898125880672898993804911846134347810193627069765736959737970010964616490143383849024415384318947986492108064928164887229963248422673027967676760203702965597547710878344980107914536770166375239036383389070170331903825565944973515638198493568635724361032954619986572610965349260219103132215358456374394040960572460799904250758041160530733701398785626510917134503856718291084551262292614149727058756794468024178053306599432559720705185004760834410692098031275671110853284939848963483017963296922280141315351510664268221316239007829049421321806433382091556822243125938420589348636156826677680486889165619906705053160868953546649079626257824672458982946065431642450037352030861621136598621245758736311987543564178501870146498057811495622950971305504558917425718176894891996817592404923470607072898934027041083845485509154279791368171362609319765001070316126863594530985487611549494487793728428326916701822223102744006207265943840087947120535325114430375548045879489495589318308561360486570164738365601160895682285978768636749280811424297104540489736711498672167071109045641681888036621212551294989983087122143394752517714831797169828506931677134296974229391897920946419874452721097447665645548012946750130416480890645434434290167154841567124817586834855480563815658839648234827132075492619685428960683794403682218404530618339233165174085194281628702117070643081924819667530598204656598228628293130147535173166082520216484297262916831875547444500435808237242805978308979743725650659497070309254754400575281981017219735215231835543077672139939825428149570462790302722602533316029870990680078559758335800658228865619020247825796236734140473061883733798432458565285115887568863383481037837082134110380253352195994746884707805222637335931880777809445671955583968266453784602480333646704778816613533855419097670574916187348868493505946487200754546408905818813569674069222743063347079144708398066150681410928855493041016139023716947232951704639842855457796925187316651131286236273456281632020265875727885041738796956153788360113377717846182611417380586948325309630529066111378171422769384699116518366483426520353120309723751939175679029384711898270713132487335269358875544860375461228761428006178051335340632019278056643509823601727147108453017126350571903517171477608027004142153039711803603329429417518613521720508981453936650485283287685083347972677211652665099870507271238742844480679231756551278182368556004812816004266730546014481173165952495416090783342356289813354008642333133072384397877627174358280908802340432265967716857360687021326720443821912092178357066097995885908028930740566881251888229605077656365953760230009685544746679067000131748022406592558151259645705067197328488090848190430334738511019086233520459646832699152818078290473278497301903892814030147224125219894315863446760373487921229146409412554870819424500667025527227999567210467624931211181741564811283829551733186435583993277718678063875638250626551191236308287173710109134024973912283371409756794221555545173440774231887434101025852996725747930681300789644338030946198478200902133348879808385703696076144126529674360284975277047860934553944229442017429303040238540453853616374349548371017776034041078781454916786847323915026934421831263965569298934297763582755999122376922856146784984688274134879956001624707098631685748370647384034011445420088591315984159416808812428422732337799468611394231669881371522037363572953948809275728683556689107000105639487224527046008666152117966260465575626466253657833677623910926814270717251729247793188894196941429802290730463502917820464973470444007991238479060412891753484843891674057108881962088347806079876571639953444435754792239399768528561637039375653443250624227222309293651217856140782329965561259283123229030892339431937072329642415718494463050890345502892318687738154318930397579822155912525994982906241270525499058493985742859599719168248381605007280315859698176252527704735201913304755063182490936550666261572629779812342284010637543018132476416218081090743233189495327455868408421459858802557825069954028967516075912745341883658491963621415348554996910061252124014349963362116530086466459198600080589650950999395692923718452746774399292061630252272911597243340346543056753177452668848399138341593081998197607691527817402925447835737916863594269243032628148862566504458104392376971548964793741667993133911248157337884603301064322657899310913615545650538713290645861048672887554644956468064863301262174867763461736759050543725923158654784664725068890054405525722926031430448225482348515054181578724839167353693278925710842295703227722255358284970163693766863989667581512897154501948779446692496626486055961194511960313953255179306275067072041070862612159955003852865823094472225649662978070438766554504103228269644224832105010478619735805904899588326660600175962559945168786311141443873136701673393722624432224300622886355708668367622250856202863543652380798633453660239425007760468549371579991650646880578886176291025847213041807621148402738327323967079305925495451099476206710021986414934221053352401192893311574048502304425958064510825018020993333868503728378304357906091793484517477254265160667525208313850343598770563730999830770074816175791012899585629594842773884543173241913497910635291192241543213157377265334814846951559519264613030371011432865944360396551114004279588605532078117944425462236299792819128172532951169574793123495130457132085672387480831696894379654667251446265078922572736570456948626078694141671217212868423569298947986960968198291140867401981421297013548443755844033218020521898236639216319379936426032754189529764037686586966796423527423397175271974308324180707057365170973130903079528102939664555667861333372610182159925806251796438050307167716477928463776933851783016901194970041400101086896507658538493410717557397018919157913132894827287994930286969988708279095989556987592810440690524626388070638457948904781824423528542764408332174977006228317089844921591513817549095695754778896457751502081604737768171108874610821339169132072066691117354903114023783385485679675727445869678448747086705318329216936650129877266930868029722358109122805343325235310728578590285604083253278051860558262055422281808299807316484790627351246322553712386339016478858672442716302019155617773270196328163675803276445744695349327731721149100156729664421686576688030745724757299704303448381799897525640535853153310615123324069948890601402787800599514201030010058861245470186095409037955705532299847939316566482782820065311151737482163451753755807839362998828506420917908959440174655452812735273893420111247560781016183242686589273691578890339048889723758418115486330386231215005718971838122203368602605527309641376594028442956077936173255893510791047889538682264655431413725573281444358500959567540240261273095880531872263678677444061301709129968425209885750507532239671172514574578432289967922142357148784102012877389259834933238403789722112450497473501974449322178489636147778327875345763972248322135480881822877489509148716241899529087845351388001963521286478685592276546242268529630535328475272889380383941728361093905325927624168562533360014501158341114635635893483398924270585317689004168763688224633867592373613619159049750804223489153638460346436793303765892807986314980630999630464498468383082210525765657396960929174022763576187961411318990268287954139344193646895526449472279525656948243976155442043178059649981454759465557518627024258946418947599751157591665554789991808576169990170115785745566375285540853782210347231781903415833252624553409898637507161366954458310856688707311268197977939560891411760509998787488743245037335819699659751875983950163403908536765021582551502864961112071398553314571411530379352801747320945449782441283063414190617982855424854878744097233754016844183477007370720364763962398765862095153444576584581197938460506564845009804046616892864132903887384912807586243232524853677188829952199108479169985936678375596244378090211890034432516823736838012980970436931883525944746315784365156609233653693947190276332577053407802934279822384778245556349772188099318375223957188223226866567524158052532204958809823755297488726477364085653589072750382997263367400329822914708353633265584482057606041499341220299428092784458076604207400387609254706419322355871057360509752258935945521533589053230163471212034271595897521072556336337563480719982395855866508180608306753593405408687583557248354253810028844879945583856653226979979393972423986280010311851937496719996959655805795155509193453509603528801576097125967423793117203334273695645691406226497571576437638724782366546375807050627892742283324221018303776938000083696351752781205228439285669189533292084908262813447587759012921204837725482359943396779386263087106911041420729513638579494603140976174297598510191121568729656854557701168314447854138713477700628450396166532772639747923671554351636205956309917510816324967721165430697160326797778102334635893444706865045158700550607881864707332032142871911294143500895809770006057828539458461810250379364896682164803362848022759516997991876645261894839543056612420879463047656607335172791582842031504635526909286427165197286063951440070823486178845590114754675250508967810886385470423262536453868887906460043836558126674770118777321483133060634520154534560462523138832058227506885234245443989012821151605777163220781991493407165265390957902561761493260268224874060605040804051354820405845393080188690309958308633525253380327672142378986726738930954214882992218167432870516264055271135410561227719972686982043653361257104436989142573934066075814657474730034542853793213690381859434259749102583051702840988311186122569657831676232209921224733777248712572061041186431988069619781379124477177871939318930620158539506721531786066384251453517942239878064206146063364239874988057150062903779445180426646759922776427312105315736548848714830761482018170714454999727889633731754252361648133988422807599556740995371785995023676060862349003666676422813778147548898712167278357871764274561420213816524698144135955634725948769015692234784181764648131809599478558401575353991732146376594451531949409726644141590231202851695963095474481334190918482104581838493614156620644204059106067361294246890236819419807167248494145714407328159728782250421879660940947828944878016305159934984234086801505142626407959935270880808905172226169809540867406434636522877301242298450224705544101674124365497546398563237205203391990583665768908506703044062536350919191659203907167867925344698504080025825936061328756139131844799281086373304833346416699199603827600575614095489674377026850680433139292207789399945600931935122573498365475116465162780105725946282282043504967884992384753519669121415618508617829073553291399472358758728414251004087277943845984651491924203209922484446796362995283954384032230225637864804563286053057371570919497928802271619118174210923724290305872976314318619394644521446035552889126398435403110871428066497568383610132721254553378910908960909223434858137604238687355889599127401226145301572518318898489295129143827097119569982784588549355471092333738336534435638387421466817326616120319618444266838100257950797112721930329515424453434633012449129813088911725696336960973586268909467973439600002109252367086498631231937178722226294654480159941090347637897542942658861733761061141661217884614767444215278137249174088398496595220787424086993705756054217580973073766867866521889837119744178566051423355202972791043718844960228886892370523102233259649919974696129925758428095859245362771860868059831903593723172919028123894165573246860332494275155763093801701510057551365126924191567429700031451272320910621636190350517108217629870542059975595063952426814842962639977570952065301007866678358192250791561978449227445727452156727566918876489312719869780042729474421167813554511838485093845451374288658862038223725079984918425140207998414668748690323853287776292391273965518300884961125019608407721959379973227140095820407902692726682320067059705401121114956974159772980941784014984654867126020493844070851178590225476559200687508912717875145915134109972048856820476847102607448504199130092297938714584065847736168339172698609731156260760666636452088375751703505835518597004679854401900707682161022067820226263581948544074481320917875354556977390324082749382977306525836629191054774199443358373076479999842541639325938949817436608171860436598179347017049640503060363665270088596767566480774068552648556662326373782015266565073017845535740058151831333049563425596069525308717045362196216471289158032051248221837458686405302558180900164792225980816766380017900962790459955347200107803404735311198988645187237306486762553051696843319609281865354707229865128947984488435499758413213373164407028199347056578574421415705386837031752201704626708171545976468093395047547754498397245091190863015266075722235797516223077577205235727989627120797194395880631687356979306133187170608334127170214457250141082942190189753942641228952820770229272493870182474826462330445533870975974593340694026622401286440049933663914940063698902317357688696211750196374882080221954803287261013054001787449572166853619257279763615521706911624008262431722381682363747182159656570010187647906053519475763411542921722606018305755683621533159022229248141059077767074105557700842249107991793267234791681983660852039531046403296946588408585215540885195116589848047328731655270530966630249212698080844648627227089228628805512005744651581315015077312330643988335206124817897430912738313669474841523286586517961932583498330886041893199694859503478970457026007627371167340999392990464986808126451354127516483534417546860385454120058783277933439283841244731498767239496955319404528445909129091722957183769717729021943831601214998262798529518282035221513471615341405659513809334496584496088150261528965087798943850911755705404424164493402570154779033930641437952979112155440601576486869012730470056764127746750302005349402242172987362701238571087867910443013218098940023312077045298489664095746277195640301326340591812184621423359192601249162593631003892980938717821239051472823685222067403274152717194659212927361800794158319121513824567426832498704937253270345371609161385580100623423773720039210895611587304012725234010440916640709404596330100242915047149531227154155873465005594058301908623802905168340971941951550339665057876930444946511283102408947331723830780006187740518280347824816543440359878381855971006601592912262090248132895918210228283323660011829348163013384052068674951367124528437381161409194917859441846749319690451317580697747198931099998831980711916438881997116425253777136159781896766328265209279895515063898719021926054365435576859648611889203964466516716595448052403551951486434745266027029549406408736684670515764470265294002550235291182579785362766872581683172451022300372564387357733813343634755696876517447346253208646061065693347090179897302629701322626659984429551658418660407559359679062774957365623067434376816537031030487105513182358215086648810642421023695947577025654780117688644509159777005991693390642050127500997389217552587066089439633409975029614794817036567870341472504433975007260482203320175190507045004295291414261373208127811179194032480737997573310616212983488916695169863142356114056937962006883568923390760996991939033319241427508378499895675621349994329185284235456962094759557484837383376597239014042215535410693114985830201273554237718528670926489955858195672366871355235220659762591928067940095791787681275259349415065644230330187060538850619416116336422714803745988684002684950910154787090016804703517709791013989960817883598218398910001742226023316831237063383811900940369185730988996018361789923424761895257305055169229025157451637189107842842910011770668003514653658748326356376555448273282959841907168473629308473254900999616666477829781914515992599594443716854089263239503939223812664223383983587682974915220592475162086243141411345307819672395717173663867670320829633493702094413731821473872226975834933344030870864737096568187646719146077828983351090956439391114612526488369807420715157009012819963045864839853259858610436413411720798048584262846809187362445692698182456155349696954960215747266320768274364878129374652072541938628951230919057068293013825620907698937680491185934867110149117105962482253116427040417006229515418000614979842104475847467684050057471990614724980246436724060473845371049953331434255476589413855745303493802881781613694917339957752986387789245757956745185779154238460086604690240905361506120131211251438553994404397432213693121130706625952010941910749130092702684736804107357061822546204701036283887106910367951226447641533122784473740606882723329532644359254838650604448140897100068470242910993641620162345942000637333563689191300901775790744073259963921913633543654230711530233137939461438176775959925367572997156432358712438360958436821685824831674349039456797687756694592036783619764717795250608727476696418177603341045223353652366838826826195826409623931587740091647730129804483805937374247446438057506570602166712363273679109659031241942033384419005308201737811411627187539035418089605786200066370770313338860252730070053631021517339404737660197574298215839153742580235366130196790748908366997414157586564167327067019859461262700353553333695988899871238338928697420263221078568208208387803451820790949131773818776236343700990905473430704360695352613458775231472690765277531495299685693222404774535601301719375431834723043213077406065067496644264472494199234883716234539564013352450655062456154754399972970076093290559780425648577179748363867459817891759172535876685638420160848234254878119873597111611734062305020212911303121900106236418165101822410937359941049898731573713488030552154744420376247624863797156517385102338083368228104962084324825386454088761414644382074996971963388435023690978915782881712161266613094034186760495890942984185996716641207329729993586003897922798342238275574178203152137150659832228108847228173049488598688823213765285322436135682712705303903321162456981318145224578235351507815018691018309295849431258954197625177327167841175051355910321370330930416095238269420115827947340585407571529989416566375793282449442020363016295142660349630029191210464122565547681302482290869993403257220600743083498984261066010100016148573950723674843624022423691566961428972522537619217895220531874642485793626357639582461480298174897874632678794664232323280235270946135895973977586488848064191311678380298558200750760420572772777731589907310375346520671108824841299501047314551379910760183271360087684370890549599313959682445196182685844218506550833121235113353088170417543797230269437710317004865180417773936887808755740557465639628563005067699090535920587601699750272114936122364773301140358878850561562650707168398934509632141642536784136526642093110323429572235052014953955855525269570954802563824185897678385277612036806836255727403009387566122117090491440959648249454438403199285444770764957516758417856694496120974891556893480943244681438453961322395276786304753982383256039100677228264937199694420075146171352286576195131639996323159874422768714872385052934361589261544290111484187342798868650188104419991841702274327120718744344750049475543425279450998038213031653853691018043338314089772053393249036670116355786825388008477127067354041454402296111402438855249756118125297127675526966326655120945580905528352419382242040218102226773015213733662165317837307933517603515524430544701753631382160297500957404201503089536643665408224294201700294973865053526672395327011317413659063268522081529957454371681437689893633238939418919541698152674431887178622387498672620314645636410180891301061916868491241686715126581957825941985697790709853728390452352571107908707526623419552038729818652580885423122334232774437047084810579417394768600956659091621202109425983649245189566378109660756747087324922769131906253359444201388932721996413462482107525926628670598016489744027727356026309962020783090572794866292905877778318016304647797170979082259677432386745848939549817943435308051665266187422831099868835359524866988251699592050359495742775931922723032450843492576744795008787603591580128000920511824744469905084549855071375926178387938694521964657249932591239327224415598524867954886382064643038308409955453459023049622188820614975830073286135850034673462215664026242004776167333869116841439960176497002817745588493726119192600656858531733569040255831318904978410862489805717930846716451128735773191498897303111324888315628356864233965298029152767042767448884083501793800793352271814688979992289216156029654160877846895705732259160162854016908436886318066840822792401455180551989800611447764762386581350322748686513957977714731153494265564504926926332265466626737814112608196164603117905566763457075167489740409811751169595371791967363516026225589135099562115101227222028767499205151931170032641768398374840482299900812998829964902309491499873243475479995459546896046168614753599460357811579296486431914992176600871672785431001063769999021657742239733010435382794296675372010337160213193527732663723399358105042479062484686547810661182420552795252014323217748400614281924165376589550863162000917042689374492732209572749179791853096007334678601697239629391388092219797905427455820640395677049965004565040555685920368720357225563752415128015417938147201065659435583370128500583571668648589896031650106711430974340191704798841896256965772884023372505265778513449792022149527259047151325615263817498041309457045901241107265830108173614323484664217327187217852010805654370073062979715744171568591861450379652771368873482615450649968223394995735041129026966323666486670555798332197566038636950730938928608968085121668923951690287854236947830029944027999975934437344965710217200340674565669859017399841560312629234861449242363234180279256732972450530107443365741532040916165783370062700300015105912798671978970650783904209063930737307455744317281530313196321383829128453128852679217481786381246670379801361499727492988887221857870640422883802446475338895759222805164301102576103138253123415301562661608327994895196339448225715513516777779940257453689559028438295305855452967385971943360556612318811535116198270641214758302341212684309474389636698789702408176524889280140660748369541674863200244698235542638608200573348960691065876876514018910556969457360585353870973623219211909336733012304181822179158176532044598026430024611829949049117326038040393162736492339560622612151403831262614126329048236463964934957927102202825487147583719378422006273217878851671967982341617881479062487834031584124501087507548224049670841216071711148253426091221301362643852255083739394243908154864992527804496192449271114699822290446559669627008096794863936781426322422474495403644853657075606372008343035466906575577734868394141456247230103531803404890681598888734187558646922400040613576805405264494239279750425425694172726362763965422241728191434895335259212810539608983572734601358372154205176721915082828425407111228835272766684399748889127158248080914782108794602677889499513991161882017268514260703435051002006658488246658993301634391697095085849879967135843209432954385521320878851292871931692369848573122326857889560804503013838836564171302575703831569083616796076598244661546562324568260682160547886456133249470681359113454271573374077979304537318169993753625892320997458784104329668409424383249654438997562737046521955342673411446194988764700670484208857125366912004809008504502402236832940398102335014452070488603152420273506633006894825116933282011528767893805389730710631037779355176459619842703358926182515518121252410477265285428437882925338625639013598371598480380214975363945764903245507013478706284792607320202602324773281427724962769829869527527479207841965694179284556148767217801858122395318859558228882494497731888411563832130099156240436916682564311593388160205239641120685716599966786955501743155117854177697907140335011675041633036490057559221419406717932229346665394685568994259442613136100916660911714103786246559634084521670580525444954929211720132297399884475980667164267367074735709112989908873707756872963667865302780522598119159573510418216798587363515685711424253023282222837091433124795698196426044069538759333809201940114230897655578088525038017843416637313212753016914352915122249432220189542523628623341797094021117089808791592919383594441131909095015605654328836862145327527881040559989933718805955997173364763019214521231860045702454566695942892723535609746568762705042213338906060512588867658706895697070736089361141445758710485821855681002368748525545147739540082137296429694867506438565769889958399985318001359501739936344772126217517939126123055849704118416255071626723337894586291003865541568110152654990109098280490001993348438096106344516595199250303926580867610401397879853181195549954959026061281530962788398831445933294089027042981113154510059373187624759395437911993673238260691075040187528912296412066895052762225883516104698992058268998492831239201669368834258825125237715539428357661325413129677014946513236593101335975072675607073962418160954093628857816498782944400646486996914804892417101890654016838103762007379636029181253790387624981965641873089817939100524387526335652057057579875397272109256675816324493216089058505644636322238482030855891912737231227702773110339621390040189219466532678622966495345296151706242879263389915027205966796626171795425432491088403251452421225449565842960272775144275571686230066275411630749576559183190846936534685081672973713064493956885551798064507474077987263857196267208288531428683681534174620421945520453851030001339609336929582763404791629876050677345082070742848543578881290146470607289439868408978320834372061715823882716276362161852764340037724356568753830056808004995910182246503155708103648686671673307153097980813480846179075352766909456757636102046090015922141005335469183036804670173982054486922322865126182403358971098013035833092239783032151378617364656363918754608947732353596147221139185055696226243409933957960006383894795876059752463981212922874869958802080822379862086782746558135737361379405364682224619361787217328244347081116370477932546649360176872332458047056506687276111369967005075937282356866107695615393793712092068653720049455036560671357378909673032123123704271939079335380049774881853750653020049675557861595384308640447270454806119329775657675439471668679116626859107232309459274160465304720055589432040334830070825619797095276436967862476583133299452126876075779125562739418072656114865868899295137549901327202431071206303018145586861931241353852933499444229104734509953705772260933518102599403845539447364497668845906158055348781134209983420972470651788150571696526542560474061543028347010958843123480596570840471165594581548571214186689331108233201100107444180991951979956885611667980300327499187802938912134660784347368847865983047944404079865352523440549211090290962819711647773590602195921272728886973687921467382281309142938766838837298012617381017368923628834701627589944352090150528643992136943048780366583769958604014762306476846434916343433574770474206462570031918038693552666775708568271789366376130196649622606170643033661602373702455665688378059212967380491402611847696335832506603517485094630662393276350007777339912054838634505529041829387758697158602043168033976617123505289029730482740364122156939256257751275870122105440886056720714321136911035629071976116218482379690676461063570100234640737341556718319903165556303986791598261681238602194906250820637887379529693946045319217935060523302984257175467980645206424483528728749666031952657205744726924540445362807598327098294128996344845122074802295470115663605574851899540507540773404839096431851538076832083383235720972613265007319194607842690501870337769094494509045813570157324482484393096749498759361936616591178467282091813651643535046642851344367993034719179211491825549746441643058650686149260031411629678333290278460795908353047732064113871751556703616667081575846421408998326400575557916529537113280712223325129974680633676209155964667818254209018521547181253488353903928399214915127843413336076446117085511443953072294545943132787163339212993238436888274584950468085265823013729225977152369660096844747109030123195124351610757650020487910355603524646709516147065164836290008451751855505476899083439553368974055753676268505167722674315454900690683721384222675395279773425369229504072500176948565902376984311517540772242124806015405201908164190689715216007572619368801522336675165079605814799714780422718411254403261029153401446136585385106153982121264800602277446895438550992531139767885848003409633340442650654217638985011006967070172985726435451884399563827581639801126616666734109416267881441000266438674542814322475586982729241821158285274917957613068735674048475087080144016997075473230616994949777296793834003647148511896039237835570522432560534260111070782534796206812422209006190651190056179800270253323363101536870729240546863846793808846928480137246650276124592901591381244071628093122610333646097883176987674004059137083717183404558877542989629117006491430924627573295209027658132423189610972684812648137314201456367436735787304795460491626588212723454599794133302232896484965028228184661718657320777495502278455601679342512973586327277066580633430178625361548297709986375285313618410656794150864167968680682507551695111631135946037291337276309536108080129083371964614154630349116511061592487189527263688710198889324270969053619323047255864803700989341799422334625700266885295313492106541686356554842500214276905952999961464664796495265815696987231244001224816489915156808526094437562449041274330675668401320139124392676967093559869530279802277438076772786950487331476039612323991534086614189734818403495792828285987448346764280523605082405149463640423101259030208993556686789276313760942310185001402642878350237773784452845352347310892732009895650359675880713568151120788487950627752747980441963043541248710851210297187562198167469103618199991772022328809865430485370434240872122734081027081605396098650244556464113637600213673480186853520864631627484669371266080872278259882666757389250523404726496004659708573789420208980531037828060555416941282234934912955982630495783673319223325630907519764650301105915030284426937267756204898351540589995594494260573499760191040438331165185370087036280334375660000691901608535052080409222538628280640363760916491617488536676197275984544987685878188127731571116190131663315152479766462484654215293304722970067379868860300844736828049565319715643378769034282209944253188191582572170695381565531141216747199953659674393835956178909900071749278484903684891942094784256838261880242858683195072087167949388653143242970353286082501314610179208324817901675009613563163131564868453074954884287352744475711018664067868403664999417342992676796727353102776015972449611567729617814127658464017048679557366227010520259866198066286905195124173460843528636129764205275312085175148291902152176496003708474685810473884904663804261668171220197274221146420968317000436026339944506792430184738670589127275252899859379718667162017651325975892763488857972337705123229175847922097112345776580926960364235148138483802626368227526338956286640223232928409845113988679446725610516736374269235552327245767064550129063142821079954292890748717324637231770507628426232763959420435845189271753392767433329106067093760702458249601715194052634421620452573776194224761229276367662703474206765549153339256982842742979368940729430075077084186906394757623078141936995106775205351534305055617431639366007692983378032069683340299798845233214928887236645302752205044234613550044517839131001364068592216836316494389561261801960721687300180663961077171993978535817918595379863896453693731605891227996862903102153378689388353718528927989791248179464846664700862518431384821714689873168070509776275540929585647167580238738323696721084877282731622044440700769293669482524923746014883065342583521539872031382936551903436837521150485705376301197895019110580737735529484624636039868361106566045916567731601940935477657066354457496603931796428556286555925868747026204555122500753363287108283558212191637223727268308476413532727018092636665735115506542211005717554628735952218632106298466750926787881985483833455195912122026449209127924182876371713533723524798541514586295285783564027360097578108101585732456645753200448397960345701579696058055555163853016519157531639823314258451991207343395657141561943883313097926819480112637116154269165776801764713128996933134342466169653254907587562997962371522938648411549944366945397123513381458559162508623763856483809856323662412484456030983216737350162148408928679398881277800739435505337762444704679545268939330140277328337087632130458137580679842782068965088430597717972648083407620422894605975470534011800829647357818247628651099929840958151645637568980162529924188155789132623920589852584454595159582965702567594631692345171721852781231148716810825309599880210463982236076702810721440198400137113202279482443359880488356804074961205527055316068782646655050789531255899592128846786785296049781031007131052171564395084269903327707278511477768607890245351256313091941981179396943988753354785363802826089560531056800104912739976297451898477000198125023746730149371477599325740446376948863537450255357389977120860165116403502310091885267031845865983559264452262608089328755708809143442437791017562914591398461659193424482506456316308389888797659939957827322460597990931970397970669489413910275313754351979991072625317277552628417937073941082070886540099701104726841382110731560413284319450299621471521564548688163396638326504376041366470438627398265781749601365159580930951704169566725454078382560442598360136543996121483867764392283946753978539904466993344350921249605816129637250670286212598191854486204799655967407402348065437214433799008757106636480631953818062730328893952846781602749487953667924494809009387953147102746266823329693598691249508171984431782124613031992866518687576587268213038142639251624400986254522827968698337500092921490086589370153798260198311465780996772605683218367263669283090601034052698491102172619469428244859000786873008331842543454749534234901139371103798833885425124044329421609363359814901268299185930187473455711787539837809063568841249466421246230243907151236957591873621238670201648861730929854175601904438317142696664221734051029599182369807535284617940371576861473477388032150279075807683453143999492269719969630626842433377403572985283618476897674119630062577324433245172688268850554069392120158876135514281681341450126846105322694681558504763945861536096521359541156023244716600566836267269178120674183060930604172256536691176677906881213973690200535642686191694181585611639854381137989704383176442466483270819709684057768862707808683134136975858735978125575211477899842953616789814419228500948601763196860725970204148519933255071479627594265622084634987634056284726524498016716774494968165301863150260474772858079402051132030062491129020958714199087654225144858515287914172345443901373940457929604249753053857422608869714957099191303418848251164941376282226347763998601755844070859031527371206301980236861848899190000030302257850988557351697621680903560071634780892201197546525341931680858884228523794838832887101276835439320221232638126546660581158066955746594648702748963696005005916674926414849673697852747811726984197420201558948581728289654453081348868717727928588745525864176678231414385694990342000905980359512286464958235597486589440304068377848784980157729473807802649442175288723224859957606312951742887071070472859174611877999691306349561869111009529313190120373361927375521905875161215962920053913295748247509876677341157748101256567465860478706601949807588412261194794567288544576265877305613623121158635434585469568176830496821866156824455498955262221467887453878040391907519948248417468951563216076844379602386260212072265277735758110965307285958097272518272246070942019091010293254298218819685143102824030864430649674115172126097213052980713491140517980363561646668140468914312697510920946353697789954020781388407452108256460261111108768266384983992244039902596493413462953313820808172129893102001882747264581436078283567585286871222537826632615702059930439646288460657019809139456314821333296157353481332756641184612732658214678817013989456407360527276995034471445349676502536318925830793583569304826533541231570271262208146538022623670659483025525225884586195813189100967014589956625743527629434469352563662083880650669364596910595128865047961157465707116063287836163269757273433002765646488495963455661485636336454337266624863370367525664907164910910116104762419884915901405583583912056560208083550273772774697863790624990154818540020800276110520562210909347369990228247717352558817629033896841131855056922851689880463282660693627122517026152846465587789911289108037928683877524673844913453751250508070835060887631185164618196535716841367907583609960140185342209501192318590896370994351442699031194115737538441906569528724590785828395885733453354730514286647939352541473588778802179805461596061088391054310880965799780563469999789718448591810931671942440749032438425746529950544149223019814257619314295395856511531190054793227855430055913508517435904726618926519966111229427355396973421702942825029677817337692397124151828571626691964829000121779436147276240889327220169858014443606181389391078006234256939343848315490129631289353159186989258057612635835460601729887437384514493690142610912572863038382617925486327837806153383460285751295678981616785440300694932206396357000842794179809178089929438732797671682831778355122907957499099688427575723360176814746340569468750972246571289350271782920833857852573843201731600752985537338316300381818029753561267949721895267306720324750378549458717657678171472311276006239592807588199245747781078238920857137717045378446649418035941046678892776208056378399344792060461658612173187628582699922429127597376561487030473806306228146569780242454649472210857459348044172886928018272274433239058493364463445983395329533202465351562516341821706312926946343866925858603973122075234077727411752529469884299426134312267516948234857250211997773647765712888178451987714779133101228202882514521296506974223419042630703841020783195715010131545652558844359599131089690728550142015231251209621938649127029282057719431933749251831104816392990181352832155687513147571725128834785477554751823282966176962949148606290467197997120931868014693970261190525829337300957882052433695819530645046911497900998403910566803132678038533556115039346346940584633446195300909023782098938078327333468678649795078826495696465930575099192232258049401769686308428405650231310102316148216818042419849846293501643753236092587977852625333947323940081080565018378670647968484153035595202799752768000240192043839421822328931144622464175923123328394912793169672295559306164625167882101132595518459847143828158103149838903730537400887245541147672782531177245017407648644208548994815931265457445658400545972966337834869227377142147088568360507078395445059186320342548591432623932266753883130911861025971553127878705044809794134490929275358468060619640058323214536776830777518240307174571404298884449709591061365562193621339802310221007965048194638144697193191538961750422103726891229108724683339334324208965927632956693774975768920326515503806349048981169448680657127922436316057013843954035767799948492682935045592283085629746079490959613790241849458008579386593526863639925242596980271235267231364764306348534162687014072256289243928402929528117579253220568304719661090941389292119884673761543832967779079307751900883340682284146027472104286512213835264188842134825624675335084000366440163493110290623497760227876415673369662840775210501478487331768796783234489910230475025456026600103624453052753025528307916271077877843642544922565954338893977924408181306060249738477649101276880657747969933121186210556010324254391557103037002157550614733090917116302702080076727893412287251531021638120149159880567774579489448212975960397055159295614888188791336155624872296069866088163910626670341928128940140997666315182582921539952476215264200371762620758500918179421045484044940937827678847244726898947647401944885121346409006558493667183067240048916157900691288991094070634453190039606929477092423022085863925685529693765216592023215166095370486344671843484993329866246749311928308460521456335379908622933899409508910554434817562287861375849534531277930137186957496986793107740602489921245383925566223607897306029730722993916206204837189536653082878014618616844860262955159143798018394512458101561660468578498532253280913484408898793462297082992415525241905158347029589477052736517633119647157703761541652784832248383786639072664549699757198535674686402243087417159659289002169718498530684506888117412227544512039551036905688317853669946841320124336675624452247852868242095136008597149485918754312623719096924473526751262751123194131526055796097835581188928617847256508460583384384902284084554390006127798104532155018639578360085279433772156217573133718785600996311663186860973094323647523926103933303787398980835974380432031913580379980135179683777782001668576847357307138389273209517677653639571583934272237536626671782855772721967811377389605318697895413937150566415735263036975900338059348895098001310548765051013766210990900407484428192658317966156988253462331919520864744822036810711261459273119190780943983567452662138906043431187438482280316469860598578489792041329410130089029649946632974469506891760352810815185621420798760756574326091359761415352839862834397682846837658927762270139811911847802323799832930030266318734853385360226490883517679797088524685986672505905549908479485527292942012845292495557881472932990805727896097823309629316336068177298462835525813346745334569875661021722229609627005871170198493327564699287098442638657945440343602366066397480982448114977080232494506709856855105531342595412411062364572412490347492256602257569234114325297729876196678306711473233080427392644099638540069895263808613337870891707667566233588363330132932431624645999305352373351948700336807251961709484845859097877028701397355380656627138679596097070536415973912704480845862805729136919268328752769219387840659050664309588919342110162709256529122415159267070903431501138667892200533932412662309427161805965741620418265399109381105235217754096476960676610905632089218808922755312094913211264960730034265355097478751937064835076980133901299440576344088039807575746264256040474209328626900723003780849256750843712122507251086759378160809090255050307873617876253169155410555484385944595832139233448099027758776482604661553657854179742139261163105471956865928436055388262236897007956219561399029699025792774465795192677525201970682972673590835203588440174449507602737235574789879732239388218894506224011084581716881554019228675971202615130921928950194831171857605639442923131020984974241610851107641928973125991240917541081587047818804833746784992924762155834034602728307380339317798835767050016391169262636752583124574790883212753403253100959668843043669770006518412346709353627830223585207992625540453591041935126003256416577524967240814426531887643270352596044029858675458143198445494536806653977411829093763657482523009538972191893622379070166525223803399544493877048330361863259588412074127422912998134709047506179197125615036426321123618848159379669938107229087694838750364776241069969950868992084058063509474133707748130359204301387958121250025555715838104470365073844703353395730170423514361992157808054462265120513465050261534080370856019557936561074377467939390943813516066524764620325626615707444715195927552512102401202921974728405642628279100137451152055187542191246399846748490257018315377073478207070566292942532835526525791381541760392640517323427417534893966831123602084943190234779024629137753426091309398571770241341307403707586968721308176601813809042291840134882734079179498472512050766345460826405210274055938393767917070567346828282874463543770979169464424438273607136759962679672218016134718490491408542608796003176813817001700001735906352271459585293479529879795965333656809860082679074669744634503884172065256613459986896814702356977142637920304264107469357868187576043100070603668962945567885856760092030294348352138344116623355701775307718330774475990852865915352741761448950580246713157939107840780428430588211964817582023200815583234061113452356620558115251352973359617267541983312046861982903515022226697640848972251293888059149246006244688536101882474540903887578673388316998761102416702007289158170204215425259055560039150899857828659811624076933832147804975120574073184193474131849449351270534210873947769307294167637651161491356834460394984971010175230433515859397143247248922568967784149729497382575852214453157717606515695535359858696616343540902643672750547237807256130324430909786282161892436930495696262519091862982317010254739940258345035069478335628695308865723808177628467259591059447808266431835062825084342401302887702990375438088407752966526656663614128651564398669797466780815724153123645201076279310473772217263612156325840770786011429521180376955507691801487968049933917063347683160497401410051989102786205625790059658479197090802312247830419134535504085611867009145726084223556735035899589957399662628986416699110086525381932647113031082601019442372619358668991825351579599367886542404244475000691640032065808543265308087658852683061467506838011617166247757014496426833795143727937006002917273943093889644564056243409026908672291322561968851382388548794948200287765817576120423401432086449179257108708269822916369785328743247233611475360967148970088031460009450096158434808824691182907634153392347357228539498827262417715131366116199728581001348439168045256890797164765124998057829833732373488661821548302776132995757003539178002699099821115854374691957131690116472915247510610831610783730396622082851262129155514148325741354923535770779159077201590926984260901035909411850894919734446686813430300040473766730594297752095729167715059087325891848234728802233002710877005853657490205405296878551346100646589439845620106651073571599921974138750274436584435651831982644764966614598104358441942442708856325920989137402761272359448950529844516623320231281045229219157863674820913506606773119760876852566858274409894602611198665865108242419956859197215536336329245833409178983577660667294878825676324783400173769803260738829929241719904905089455968526506459758655316894802618625855536271179669630709146391218919876380913833222636603705286312812037601883632518610324952256417639863675271855130435301985323605891599591920290269684292293259338715245755462440958053264621350475319880937716849324385460853954655214719022034556483498240452079901117304337830543847856784535222168998158111187628549169138018696572208853142913878302483434787393503649361678595773376128355090544995590978985399549121180185911082736278239195418776229779210331355706374400519619533569362738210962559166164860842617890343432630270629556291361360605796894835778225479788884914217265660134079188204294716275344761273530871862778624238481763917937604305678048264086154180165582289852673737841602573448992884700410987732030167405494306534481913170121475421127768792150194766326996043807701612182299752579871695637185627858300969743486335403109536785544993859170240332671065297924041453338042854515594183957837964911387852853275917356209882775303785634188981949490637696164468631161935587821073677661734537689963161055959726903497909099623826528280712455792042460480254916638506131637431413709576821641429534939138453088817493315343274805264097292232637930570590707873431829123353399910346469989140763635072339099943220847849103664929772256418261383816468325253235623849527937160382900581082205958683889625300499234579921470939583975326274389220977668605158470675608797289202966223440772096547658804363495531629568230783707435840108095917432204090519594686165215460159256927513036057855140228365048328515342399455261052828730941131449746220375836457112207710399905229192384987475869600063345223695123500020020627845963378203405776353025970360704173496896587039415548460623332198428229540993977906926001188954901517202994159752153210857054602767437042836958669030375859124364756407605110812444481692447136381456278858593745893695590825178385765822318755668576118935451174896355291394532923581475019527149399800829767378521526334487859882392766081971106428074587203370814009968986824702129354455801693031741207494995979414954257652502498341664478323106383822726879234733238416096391118567202611000845100148123690690344783830974054521143586691674471185435683737950742234345358816873379243324547941720369912169920915162270290703106552711449228225243945631889069750041504672438082076392301986621558410809537893208823523227621172172377092335422179880494521113102716263555854214980389944655390338841963485641255707275636385440878315024971559377160177445038508150616428074707562418320870239274125819308420696455878264249572458022218985821055500000638296296024590981313813129735857132722149286560262609397158592284043250690380193640624859952311657925173968103778538152851764429880673755817429384552673401199437114190352714215228876023399804614413073700165058617273700003756233420151192579798744886034799302869725349296585601349976259637262311109261360114511781634975037136710025857511831411472859127389309730071406791233220268887561398899282786165500331646752412130047863417472474258046572059935343574883937979022900314364249637220652112862909360065772618367561584637666153764486323988405074413822036790788973448877339640302698996530903525108451262341218191371016011885385229419118594074313271615558832636527052922835156609615610100379531398260937909188981425961687308450540256157890605126252476748978360398593142988266153920160190242931432214865118785704680880898747381053230537871897898174496320334820344127183311855194760472616565775063278852600453687552114994015801626855697044445931648276725342563847739492454055701637609967477073479698133906195955771282875154692555540547478050636599636799736315398547722513898340372480907821495906663877350255551219456080754712659849537719749394349897735968008356544480114591426452225170845903792142983540064553739385380181507029803115161256616175851343543601746994626403476043095383455430959823710615602104403243466788078947314323822460509619830455004083985467356092294155990675643569030616912340747631370785242566877394914065999917161532914596207859868075528253527997426206212930266904462828065504235589575723616500197692521018495808249563718802354893287214497493108827595505153142578620783834598061205055316823318928634353222128091309830699345414726756977585106560781337601688647661162201309371881145678102314415594382208164734582574651191771715983369454099550955887891225222241269985422851360867441314959897396743265675064601641634460117741966726691746267186085770225961232420176476493954886402485124772023082237103102789828385670118905904171832211694486988956978242492929481392503115328016440739872273181411191498107809522294020607143434618785862670646769156871144255256737968672079434968946992990954324878475298559709570314794655784724229931483735834918572843124487695729598100348650354364784624306007573649070059666824702497392473538503448957784289753364000910357877600724609229014681312588308590541660633008314603461200773293547570078945012925461111927757939001076416643514206139049074469646461533920355869858748219258790766481753586013961423656521796396253470103388035364306392749051562616808044824272614132234860011419948284049236212428025045896257495186207808536671419749352907878502622338493007584417205444898525617030302956338143981416566512310171642909344279539040667364503505183864230722659441049380302313296862862306847038683792530672232510063937090068283208070992636916968228108709816852362052743324785682241998135591031494480590197809329628654776113651201292719461905412291939892394597654272058998858382725069745832205102820365796926734006741776971874986795005525135199113508749066022698099049652314815737448608960661783050755018374796621474097407464884768284383486021937919861491719793112294067405892381559461888545503059009031182906464751193225409311568394554574348085756084636252700245247626243994106313586459856282367892998901234174174785819199290083180833326288023270141419280728410003465487434391028751713349602054970154915996011274985383733075478733052236986544025285993513093978714689401661296688962214333590428482932261252670967185364022427172582720550163315419354915060312244280819385514270535730441080541438791453478716792764788538734368187393879338236206745582939712363046028626353020472839480093644443035110177259024234689106802360042940728465607818142118631936448697170381027740377314466546754380244934424141856110846742495495186603617414896591976284544238413878830144036502382589657999653704962819811811216773710939181453127147105206190353245749864322198968747678747780269999160777908051090139906500384665861342897633883137398145587848379363564676447921275905871208564930863808170496154866154237822855524157091267063324531040187614294475233260104527973496720594358825710116623541348584685156647992865720239408392266574705288578154895994954605364618941863914813816219948994706953389021475773128203624209407845909758535685680966280467574985596007512132194914834362078416698086200627732921943724643267771103951376024241655683153644640326501236168437695543893270239964293141185779570274990119651317196947160907113289232197866625932103650639172474665047605411825314661281790662615230705554760031821603554284053958839054099853666926482135427630979057128011570465503272910161789033722432356920422611380222489433901101901650686249933995455535011675131324958630969953448606686047798935854987292246078181928357826453254520114361717138882211792418312635571224817181412071894860761300996338426929371483602209883146829837138459615668726234839003580835797188460846883920444491046511810572173127132179804287129374467861774048535986412148397524718038453118242521205581626947529478786149651825059237996345823070368553900955447192962017218149446591763094384953859955841822612618721796850705171573361781291556203862765692585415867786284017316681547463231000037852929650461507900997426383660912468670301973877556846628356162973656246643845341328136837514462511659712895656696666320805861755075206792578861911839815605406081180458138129775119324994966265244497671247549380038000047050220140267386250336617859377643347601331872965362529007856155424377752583265614245856825647285043203396361675191986926268291145329511555125460786000690128163266207869954978069291926874272746955527197520049062667248944534678824909680393916333490529466963557983165248398691719984935099304146726284155506077922114800762213602690995625374203768086597309883684930713723914373283575802041783461320036106101280816494942702686238542140732327939370785909890201124405093313281868970633220097023357797215945379085065318265035146758124566477283730586484771131063818799013304259038091401849007732373667062717678171794157505213540712188468483916493317470507376006340809754288329684898784917490083503906901203304972434826752908727389623112245670739260834642616074994677093780794187760442342961894810648271393941298902555596708579967175457450880088237799652332161266919762099664246719908565160781944380123861000290077965598535052263120806973793568911859372646283692125776892506590233990681421037141579209543509713568306562352436223437570000359351602193987141255578618381834157871181843382454404205147764463906484802428815701155642319638774830651889966349329835326226442145356780889130167843547070742418317958562759416930418352411411010269058616037093192903303010336821673106836597323111050417270228660970095386393444085631979458909543972647972192019108436595569978329039958945517482576835204843734373101194924625529973072506347159176480945686849193153804167632721777954333285016885789915809673056822099272270949432209226382926301880453067911208516432335151301422793613682778448892605548199453370257304764238628468423042385751092239749586387649723963469023794136875169713446598623528455774837068038842866699202608877226254650223726641316323625704494933361737798666703770438940578598462741046154223003648140736659247977222735762484612849205805678581076851747173269767619420348048124826439461342656407163337706155386211040015586263306689334175887998523070306559477551637980256141246358019135120487281037718580498940497682879704620220211303749680963945784106433650468782420191904716677774126119293072664568719800243104812201425621332752800007973880626717162225386367096820511911948501207761376751794477303989318383885875330288290237888978443495371482266276428321576419206987796779209294466671912836368651706738364423623843071350353189091495548658049775844692095776488436453537655149705177914947077530495516609129896347991272057276233456269690331711027819632461640339832186444676520892188241628468287099998404276904547007612831138187464292556350810393539705687493830209290948215516284720376153495186000963323843721289984947632370293091083691273609137693143876269899583045785504091777912627868641482199630716304589772911370770677774744265915199282814188836713230347467768090752691408879394428506025396878424057742611171806564625959418229309795494438118205101011837031902486279357707880482686310349538071253929944975269283625468891079028791523217516720279910035476128491609947274828077807953975048710881424109356406183928898155201574216966716817139733740793459821449515631082268320994211128670336632167143647000862294179125579444601032744179259735360161380512669261412009208680176901357929595802139321581151502195776289440331388956705971016568263224950199885401489858533839014503641100820508559671123795773173067266279689321481490857059061562137092081042348243129187405856250315368576815319947212258117660327889812803584207956260691003150901512777265152978105945660497220158642124484783516820700488396429338117317068145564957741919450606230126657265484239810527453594108026177760279284620997525098990548846435866160045055293614143117374778996294551250850714426387822353131323190872165604231416725718682284037784368223350089477449413055356445559059081083486246808154490007250873147392812672400854764537478669665836748815378913764398994596583874694208200048209269983347001578519596812887951552959801425591891743049096161165990412349230589623343734746282640261734865496540248056120245991207308303543408283231108934225840354339357745460883571588503000531441414515583797772393812098486548249040018269164317773056630204728748869146743844413803575633299204335798309505601982877074243343334366708460227611790555038554769427279904549224095960176538390582428467475332338207880846765738187413943148793142224631999959960695690839894753998185719005352621705523440818352023798500124381993999917408106907351144263260279449240322388871464553336701812817753248062102090106571776547254291440344111040560740231859930834056749158906232640309549041269465839089093687916913650170275006734087913913340026338563580584492489078005151120950651964110833952943009879818615486997850477817166099596801945947833959163862410470544732935165533358457614011482938333535825592269865662763840978002850261137838594375725783986343222442162917229159998153739102598309274795197656257618753953522277884899996513447781598732991246953411065201952037139578903993321982997494173843788689471857053392091330172473194278268028572784067876399940083494710976716860528235574782981762808966837110619852677841909361562633965496966302217225429450760391591514030601107851601507243630970283076922250879711540159162099775577938588785338475244930282866925883460027041838530638233340406790186860522469790734705871793630836205807732109527964231582061965690319152262748190642949349959781165480142954167695285023313979794710430180245192909482402526005977659209762392567001188689102166823602844005320263153401859044575253335912606246650032969012802151213784754872134993201198900444234813752166144707054685976862658480238606322942710430425895549732828292141264057307719957655716217620978785550830853278604568658115868701025937883326030635050577285972293960667368087498342568629982846061585269692756322801701033448601310068604989074556126455243391318040072047066381937022463269757856253208537009960068486569535560523686448157160874829836150663932580252650353619541714618357010799423578509367764789846023468828380752042331882362187197913971331351988734948175652409169093314014492535399383146266625680892453251619943964389363020923741398350466276702073573501811990267139530508604869230792939121107548627735953163001727750843316265850459383087533393941582213933687225547516185626636448285536150380976514986063791072725297004273979997398883974639062086691465293221694544175371796158574060253351048614264972074650990839604960020153513490828876374344717456497333301485414770702416831859976215432927296343064542253979196196936141330553965363742376286353611587356768925783242636203754361272046138063753594656695825741501262747615702248319712248621326813425520155675655406311527181405480139492669513930225799623140608403822290695688434584468513366595047309812706039952930851892740033371119466779914204207395086115628455255342527150320895514822311956771894730642675208428946508414123397061011575655409541990972212050690226140811916757182191620632393817371802515853919277850966019142262132389759130095953831766918676620902672047672105749486570649126857665738145955381074474118526909740912610206609684040435694616414826607931843881136513596926537433063033647367809737084071001244619998717711079555556695670267568263240909937687304167786382466934962835241102942889865135253175962653375543136769231823027748549015326364327428262930937508039127879820805785845449107968066448084885759509345628712541074266479989351370715264947090429061221293743989239805660859253156665297900707127566520615380154853310936335051416812145843206015606427860697619239961645423684906335061533564178326956246149297938098740020965065988166711226511236276616675059714345978609476705115141952892604718903095562107292603931543228325176924798595187720128159364689493973182262745394314477099039722002375352662028823994517208873014100207838382885090618086443434343270756843936793727220569849927705271299168657934821710467966491113840630319041965234668339291837061027900484395312014204197585517370926596667897073508310506434331498779257589182636165246288850841362101448793164602114661580527367110118239768039582850266586518986619526640452022654633671001958541369431560775100798016502397426781089285744568422352163937651048347128255278235127166815644167563427381143027739474116115623625335220866444559889629822646650379117969193617781658780620519333687527666738897205630297667984895822592286949161355031729946295081491598234577823663947995267155935246797986413211109773644013515849795573818206610447989437191415871425660332048005874793679701830525599124361213808105239004812187024136662757847900230804119292998866204455875483372538229490290131744679110973956204066116400747614523991338653911215392986171153177324933531198268590076839963692878831919771652680048929487637491808467467671681863330674723173522188473480039662928408162261637027868922029012641640768041477306132276790974003176974004905928269871004560403434873984080544748149305251923886555946539850313305005856217085482089753747841202792358456117487016088375728445133038392512732859288611019451604624822154941845140181696103169452613681738807084269537327193733296501068923541913299612975355979762937671072434288955612424931655948821263367071834282798180802118585316322345605486206380716158736059489090527959157266167136409491254381056862333016813885963531918517093964078940987847314084380757424014420382990289551600412335650265672438292777252493482611299987567111041452086444843437505265434072312551646936925703597629385358357032474864980846234645320885656071198533182348197523519549996562704876380661962689916102105122122628698640021483299419033300221073069862800287249773189788150738058852584701211149748243835542286210599824559444253101984180933254175636976145488004548451862582035041294512442460067398377891355353412331304161643232660272968451674281434641971975226074956081583094009436029545630176067848571195083090199396642235205176417934726979113684241635269983063078894423098525007279143341579769870991380585922264429050889589583318673448994811158923821513065846701003620688884239389417792777526229206752148291276453056828881204394359266037706130130534364672504109397978442186675940262378414414703463771595719969897075103823644976295985942977696578065783768673291502930889669650479193101404664696014903195142743308796151404211075604490887739943288600028628160888676908754146657209112552051127647016548225256136265196196866904293119124563482627339842665803973871454366280093675759978043461636972439353371289430976923702110644456414398303793683430334144373347028121508456685224540501407087557380182876880123556142023293366483689197295946211790545769578549480754452595872017346148246854159978948916861661409914376341670178194220817757623356679047446137277516054238101745091354456085676719639184747273986915513609970903706079114097772743989165717169395828678650552957849771840044544202038639489943400686969832958439035522875755426396893163761981415210189205338851180775747959239336214036401584385869670939090818686174026340561483098003518374965083952756971625639326970813574249056665567716948916011832573602875486274763078726669682916164986472753701698474155248373523242986687775560416407631092474959887794162405235690834448090496442113667439530506084254793389039809442676698309242372682437320278078477134766141318451849773703413974135970705372332235975075435569765085780528799739546348784264899837081373645665104671660620604248677964593916571558695770401459842137300417847923689973866282844635665092501258805461003941622035281904484412923849360733743477196339940031672035556627909905969237752268354804336361267750086848920405064424069100406822554188872800620867355395714214132575937096315801970210813525592475147795838211129804289206039253071470691709406779091787767315129010274684562898329129546303010764281467985359321969908443824115400094139849817025194056326585970549104257837534436873931389845734661767923100697667970450353288265793709049683209190764484732573186745778856181813616800424029048974784264445340601401806529400526714072474825705708302434518920512741794390427430572576596504417649728597687468942998531248068257432060443513930831779178900818803381297184676706307177965671472717514854222353220916562658344539773553528347871564039814395754475855887684617262387379841553512960603192358461467993301543282869367231500490198200360195011561997701695040577502376640555236231626485907064471734706654103105836690976520063737530527327639657971424679186722233322704814688430166298059978482737723357509785296466468689617031588275108980988043336127132509700486375695446235418834718750944220928548641468171505101959841607353529965952604612585581394865535281045758129509743480722393396343355546818030800065130403938687087605600751757487703348202639834776831828406725664578916913172293288484874083390943302527786602453585041011364604196810924834171975166049936089034243929989606656446463352909091681641849272941593366681970299176773938687299917303222888537311951069904384244440451737287285393837579586529423277025018403362631332456000777633056962296645442970580382713289901089736525927812627128322922885526400979153668475224503785416431419080102834711816647812555301129189869249809133698893953202149988492247119085177342009245982066111421377074055177067890548262886770920179266557247873844171477457957344948910276376801023342863543723047481034628009239393643802461801955520484252899513215075363420170048402399085729251033919240173024529399484196916625305006122996157914132914766177958904161286760377421043510949027374659394705015560489629392721251401671097243294427096405193112578702495061686961692182416782255152700438179164502065089434084680478601439000912751053174352712277973346764115898275670668698819635853684506919642563734697844176280817715194783955415346156297482287887556975003507407773299103407930810394066809521704479210165194414015655765989680493875837726092370058869271583049383778630474198391443202152712140137192155928614299469793731647654652906042764441949497491028082399652284479318680746928416411039911439041745045111754187533550097899181583664764325958829867588209367591437796536124152785347045022547883034737564845014985850431580170054443415793139267060114359083585730656031363110340550452869847990353929394944821512181225162124314708147683610146864166636530367850079153891348021492578213430508980752567762509298617416554495892319270552581707997477305812412329564781353572604644245123450515427539309164678113584345937397867291347394441242946212769196752878743682893963466218200429145908095574610364976096633029814437087498629979731227035487577518538367400198271715973596747368466685891781318810713976922025194993780134691894409424076669546202349812512964043424915904723786443191078329298354380864155300044560369038153837445739895289936352799512879420052461795409829530290039058347979125616707492664951476787162102600215301777233912221007859146041995292555497368009488484085565778889282082238923605186395502866070006839109190460588393119491602398427724036566974390744174259800447941880777628111560745464301507900958017163620663002376676554206612779401409061391877975440159146174751323248475759798751709416932885871408357073645727137063590943564259196479144563063605822983401602139351196933529989041444282309165127917667769319121939563637255800097091608257714250764198344596146180820962167392917031855080481500560876369522154500993858327778916335359164561174357404983959764804139059849700267999535581723072479950623467435100120915030718703053046486359014126026632761013755411329849326959609625656870859712699773277880698229243617779148102032646699122177764614781177201545117458189684559247010603264443084893087784661080938379908095718459471060911951239195674972467533542586735150910370081081542582507243000826569008065931566825632242109328918436443032209507296292573800799852211147995820469481060207646792167834290569972464108615755197400710737033423907992194920646964684585235831415476092294748500421828622754446752256576935940892586471698606418043715193465953562088407674044277340357148032479412290882543312501168004915822032505197538470860362881342607030655691059432131223208828452753844653343766447985224223590053945282691267394227548171103475823238992694296908887263466088450899284053590457374975863786007718062936096465078628457343479052328605643488204589499035141473918838961810714299243127520700970800858475025057254954461006398227426412597760066716269619730667302671146860606192589136125906599242950287806361677013569222628226004920173115726327029446555732324035691828459501116442054275604046985781537020380515052394359572075347573897262488199992568880403756610173711327107582974765293888843933791769716550241201819121827562805085067794203947705884094655471320242949896960823518060768413687119149583971948087092623646116601426982640236709165895729595206723942193597892592339885591834772589403465259677266289406248546731621708104812663370437900685708929260417522417809555726843315245959319551734294182063815543371873386466060207678359956960228218028942246635668864862737424577932277265369280100254413868471838151798405547489899742739527782594057372889529666399418936370799405123628125318880133547852805088897959164433409755082065866630995394829580789830707565969066757503860671888639745517536293162828533920827177675911701799488527359706269667351009479935779530355096581519913715199850097206925032539977967555051816529939834950396125251473490778743686569661130728055661095319014431387531042100731279689652144652938381311638111647732278802641754310541139495717272087099672688236384432894591448214316380859038311689459905616176823287299597232551762607879917243283278657078000463354591936017790986212661575197342997510492172426001887547359870691778109093019977729207189706217987145238352659773103407132534382525508229801382800793860401656529740886809162461746736644570315500050893443297613901572333075598577795553320562716039411918733373089877012865982812209393806993635021235469295181297397932867351794616071280725486701872404774487659896477133556067517920353667583445088979854745985394841908025839279685943109451395657956410112964691865867660431853747782644920724238908069979827905253579363214608932212236676124564125446459567511610557814751299868440163544726052059345249885514542919208013291194429714055036571687466570560411041756852740294755897038620343423064286282196623299635803103899224168716591876017671062825363186190587394983146547483037064601347546589675229828316614126074999487457227779836202196300263418417494762072729603947757803754856406755751848114757222448748864381964094223712927468914589313659456781085507212938465838586608616556342209119538236249206656127071943917658723983319110112550309168637334797226713438194495892770590465173579287380334546675760518101080605807496522030624529085698505083460962096050265997787667519217254961036307043809556411202161573429386250670194800110527106740926502749861433294377558212580318222494950347292399629448927383732146769503879460340281808740882081355833302761942075455744011990614799402361825326183429668675921806958718268220200249660367307478367162406043618796113984213552524149745456046204806820943999500580638359653964749701062894061612719062099038305937203589243186684002516118989387292360530793240966465235884532123962172080845406387186324554178057114372689199983131219578022412926640627884979822295838125793763276804921923221714678169322016353891600707509167556102297159272938174017604454279675515456761379508632222116373957570861394282719837598088550278281110302966655706341404457254054329450244697769817368374469613461578101303671772905717759528750148160866372305946399862053986646619450242048344486116179482055857312631646839145794852224096091830507479596366413158041701881433908150398843708452721683666809628471565668579313541219813485207485052779182344052022966518472482453188433793031933269899264185446343068243915135051355364256370974798753976906778128602046696256698514951802879544838188542160902514551610854762681831401047534264967507488116297142568834656501368294410946943531089093193110171986596060913095345244518379398541288210998106164131461955311624163142006341954299782529553850506407159861259678128965221877554513472220392013141627805247917022922254681209599879040400222420967203366550680451760754779814731417493070676694186035669103078088422328842304613308876955504644043556958253159123147566851610554120855078864820876680527399442667425332769552883195423007269252838908458208450251374365273124963126116092497938244259058079560586554752656601759531977470747587591045141722393429259538011510941264125420660613515080872894671210206706553040626402414949108005825604207639995805216301347120249757089568969943791466087849679869059791347558722522912516673046961831932372575786944956046128034386523218671758725841564726648529027661127509665287616156979060530520118348853412298123567892535103500145563279999684925183222672453369556351287021433981853864370480755499555558529442812016935996706695335922683664234214972737989112507201158460837338408847903436369798638063264637653112807650890005775731625914807312207255723131846928171712243509012525113743633330673904303783095182529621654997704184195149143838142106975703343195215328467148163036971861885295264852159286931728762525246664900358928463076009465890847165675318381771398333740443518083667155174891315523828261514687036171716153265572954255541814837076600263037475326674712500458894499598288609021319301594532490380828366440565811433358803054956259812573200396163010233507764197733486508285868574519486883221113019780698563525015689750157960377341755405239358106709315843136430976334062148795098119482605159022934611639541744125072365061444753716641122869714245717043964811307313808939099103834477430867333963636785447297132906216448998448680052159699994612333240770258543838102328321757557356374295225840867493957975930252008052947583934196542925532063654501001892345677244527358133748606245853455571752988537053740304809000604726893245850139644500450479163702744707487973837921895110781695235480217592278341756423548579314258960843641541496168175773484410364144509989095651138696913477764994220966210740392054244453115357960856141283544634047109636154399694300074220134506750532051769844433098673745273607884457477571110188073134106062223461271611613267775771630556573177550104115172275838472794737204386070491865388000072212779059404431146006335582380422691696304623078995444693795392399916421967003797554593258190668308024769656263550752466494773492686991232489837494169732030591005904014403005647938880158681294113031326397953591266191628073238626960138247215369139119791509331112643017822448930870818489214280125917234134394080864200421242334008366969680302443197214798616409879410884191330255349725476111837245576170952062587620762973615487723593167660981657270284046793656981187120179884457467061218467864986570592996577762674461058906837274086609756462985742763180926165528854451729167616266682842575902221273294272944030519067160732695531471666324401731232368262872653363301247817616100874639268407774903550716940492839185111328058100595701461837373713278692517529302776035929108411841056126078314505775815415328287702064904003096510110992169621560230348377779534256110038236733497875694781367559302702596561853419319783546346521140254620801592135155002587118707976745078476740566552828243613107923942027940266876451079032497830120926010038854965446207686616940666907001227357824479497450308831858733862735999294845757829721339628896478550203965159456382532820908382960428753485503403649021984684738359917373859206602492648836795719233267495942537397842325740353272081112298960121633262792731278902120768239288798195440081683616412558265981223433211975311896478643791144422499012271899165629213996396618293461193866424871189784183058130059901559248245714796629926917711237798314995090843713496916622523846492242720789567748988222096092111336483535546901229553341403138618069503621062374045116394357281631742452983501084562965653148127068480461220885296888376607631943720999500430278859804333651195093754798608950307381763641637480055046412639156981523190408379298136745862547013590773487698595312559285870833938364204233390390471863670338192278638811972576459392636778755637280716132134195734011318120045807079273090729254866570079966798394383461319444785701580697380134369053448927147408535662130166581488374147238911759557938108862115374862057287494943642580417057756131385571397618116252864306417705232519304299811022429588108259654856519639091219522778023218966721197446395876148688105845138780972722301638103001146884197616104027656419427972055025412142416448639850056337210493978224325433433464632755387178955193210838144433333846780804823871726914075587945670851229049519359576731389721515655863092338826345038299396994490468427921490415927746693291596847257066240522114809062749345463899568608854644391371385263706556556083519674220469871219889218540930617670747068895253639984376603182049507566517970514982524299748461476397620869426828269182374026649725941697520471248675543230276535541529895748364936390732287907202940728527321257629295984198968940168446341570483994808325664112339893001452723377890351887680152094530259581699067357396569331601744811722422937813196900468912492521847886114683801054475335636749647638365543253577050229965547529145652245329317585053253770137001515464249303120103384266713815807933983622971504740322479442704644900401722944313686686297859427154984808942784631828082398376523825145732063289916140542788243702644304068361020746812823178894155821299062258126614574656350830452907065223323058483857216215884483898291949508955657813931742323518642071654174701701934479303571153947954647569451607989598481368827649280833593340227749057569453227023960112433203736309941324791377244148176709822539482765136285250910511510319711203109945357339016146004298725086451812794974755715402969703181471899839626955351620084981405384982410088574911600961563265378994524122695092959326355792237228044886137906676972626493800040428559421116026555164080774506284411883144455975551253263668613109352974821764658720893220951006518298056076423672116263421371970589408868513333722816963498325824016790092025816978549596641907944348165439647941476940221753256986766608498494589968357154874617342288520237854637597904006473609474906982701582917684505686724890019182750402641173931467679468693754928359538574935385170516690887096954190703561595933144269529731954083305408242198714737086964966680834681392224207200288633088151027532881465510970119265345818403604696605504162959102526306281995303694931726098080551085682961288703243944976804804725822966113781191696169896151266053415693818739473964681156190509431348492611203650309945572399803792060287250283155851075170658695868347031691595990963079921197438106805829685375295012492875976023027917106679311129668693294383940005154645183870819456907448234247536382622687452219843386266747423766067590452430670925323811831936767178388723597204730166138956705472592339269643280314328388199783645382335396723871614442507696311733687427927974152673053984277314226477157953821986723696539494894504564934182825785368121688388831882803356714453584058669078798778171534239672318401560326313189608231929483838005664471461262857694554731860052117499507499149852277681891497825525845835505925355785814849062496542146602562300393112950453711094233131287564605172646355606380467822116931093127913533188895132054314113242072716995865142209321414538530033347651446518525399906180358597756283868139047170449524149986702348660056518198698915423040415230537574614891489278881428363631833745088920138488849032336877101539596735365462881467522715792764837063495927197292181415528034814615900205637677882891394532476356149828406659710120670857241129078721605187701327486768025173065112838919865247837940626164396662130989786303374265928997085733745052107456860078312936892471262018730500873603329313591434002621277454305752807202258733667353639689352181702714158632343613771338428440428286391210170174593507562697316522553114828529446196521428531233196207290187045441314356197828339322411691781292847988510070481501200417027291167783727726366769137579438847144154981385215836586860678104424246771984056378830370699615097348385248551652603713382764126935761241137652017853581317278340468657910405281671507819872876790274430844275699089245440416724555181897613533019400332309194026423661197601629845722549410517314889278955267624235241437597816083129772571304513099916131936899745156986436492655742360782346872112873963275875183555292051145543028471961075519277533759814117598024785356861979639647380228239602954393535724828887158674624232440173501775974363913670302841154247917567146428137528861591832310845959323741509709951929902160425393895757836506387022052246032135529963097639444261328034260499889371628319167870245891752111671701439725648718848162430224744761694934551066726346563256092942072158814084424793082114963500026429981577730781286797102693528911360159675266631255465519071834429280972135997227186152991123751082394416674357024785449786775469879579551634036096266248505039502258230760940618944341736401487643225611874449148213444742078040950583056935294683171892335600655972103376373154770398181176360887897228984042705052359481899679809861724247121471323190154700609141955461724470541718696860554965173077589612790496623067228120698742319839952788408715389077846964661250176353023391622622962777455163997542532481736697018474060248130507630522562470265459993362628680318411713520816578367267319856289247249891630288206049734303508247969885710932724696392081190655723020880782897069965802904292151347419604571462727918024043255088829403414555537430669341839042827921311327243342313083443685565091900576301426123436903871592214571152222628369937740295972247079234615003490617772008818065053096187052383650017751609598830316498343651128721390924852512822793424638560725443533537796277532072628312262920559383134364088619338661269997739741211570307889226259836073451876523852879540369378907958500677860210792514317413040875322036631376890678496118253517759109355381957894399129108981799275653592744988662922455180540675729656229526121661127408879713416550416340571539990134869152388120597818001767761279953002686433707076844000448510464203149783474282581468278085918655506026203227024282660196090574944714819503146967266993595360564846461870515276509684685767088171070320144680726991312272323974714646154261550750182526943731292687225147013791201878986846839638867068621360603980298415859432017664628381259221464949789804298864293527276443885692607911751308248240040733641314732365675072194071897695827674439171025729574168972389838755450744564128151035786808322453546854788499632613541850924599105516542836901835886700089708339813700224205166870465679852163610291948496654288474668930686586055000613559328473296526182161232170847071312035650731363328778717377622024243539520259194526537832462687855672037695833293064051985405214377015617505311277571256670776071913395148612038893310813735072764057641774937391456571356984624206531312602505352557312566706317903076051470598653513666850523340770241350705265015454845519678610587089556598791764163820028364993351229446149139101602148069525898404528556618825865369051279078058985669115229920518606336078447474222076956168371278815372331052233491748535913826967430505071692917668361700049462346218706341878039345972662365979749489978175233424067590042829854912055460000979813446777233240707370658090764332785045248008672780385780102992783608676371262680385717176442665882143188736248258357511677588552590462443619534608230689070354691654224356045092779129634119796895187413278412054343201172477751694841610917586313123001840923327611206940378582343294865558577239744214479401669989055623785008359452796140845409962575096604731432811128060675999137368568345282505614544771608799698157779256550165990365354389294977341492087875855282735080317747287485664854772859638304574101267497330855424026076382878201541406956661320663748033532850177650944875924436463365358684429975267092759270502857002469086287250114957654102914366870484516050093988607373039999733394493549767580194424885569243223929940855007447779850405122081275992934684569616082616037049832763227281064427733012791409116915227251120129634684649929636304852461812033119266224362254177509360418031594644245545843364922022731029059605071066914307962552520216952426511740304963539230425095475401157571392710574892178525045624445873373815553326291395667513156480723628998366181824908753033264711585470680217799284526903018914183437184235985604012048084958550747763842115607213235597761366515161879098331869330723883376471029275232922614675324578889090650504992011168051952560714919120724740752158074623716228895880226703374131063978372740842722233327507910877008194273197184290186705557410784070637064412486306968542085646063287953964834017668866367400808627651499762764434046984832032162242595271221455035037625243247731237482786103655780988523301492718105376807112949428425672360649003306703892968534581023384967804785025700399825518357438116926814409611294597414958301899151386632473598921565573811660113243352933455218025195836292373505278119483370478599325135540918450207982976709657385429370048021064707164649916839949822141048295057784947577543797664116934945538853857338697545129232804428776904751644235006454031832896025910448319147709408550222717389459304837013947070872358126696815586057831650417691695817595871702786739994868961363452141724852507132170382451086889763524698098678617830826377450355117710965267244055684382115394002285224101987264257526851746274837513885781265670880334416123212246606824709850022817158249561398346730019224375769668053324698354933867343155826729582367817237990536776135947366879400741601289710694130559238972932937246409904369385849061441101552794897489827804270365546854265369618943754672177974572618147726135403428299875824720918426629550913425345278704252449963845129221524864761405247842146205680997114843018987935311084664769581541735327837635477631891463960913330384633913666552028583380567561217149688984127965150708601301607655417637310576328161342474783847001630854093072348907346761310509226578929571022533460060383175811675777824449307098581242137163833379064455534007035440497206111392949515305591572083801148386658714780087831023286170160067339722303408007810533309508875982644700339695822196897752433162148228339969887937460748587042304066081518569673635227711869746110684533173815778152188216875015766733562205934983909066698289535597412441590930284988646188742765990380043528184551553305746993406004873651395430188476675037257171308761212627526572392679108440724927461998088835196140184387953716403999467413755600788609940463159517657640318959141456053810549877457560623346415508989321749194622589680276043688090519008604912802631220822374845405394347852791663393181380252895007322302458811584030851687481517408921716107195496583241952188867252211048800137961244949624029517619638530040448285575834805033434818793135732001376734561874688057532034895553426088112176251995913506963261574011358077041894572129745701470500200784161346839098512780409301037202703112177383979399950808899824005525972337296291817535783839259611190339472922431455951909689812160901531131763775115737570211825463753275517078932093828718781907348482408727825172979807566083296148407803452923958230700709009015202502254591610460571881220382600316976040319274689893098893094622055783922989112351442911800122037391762053406488582665334581622541675246426956520171022362535134968009910315864288511897607545287416052630261308494535824175709609237680513924776858795602642686783481693452270609777113456672583662733436009469238866254435992324379271414858546943791323427276034308214768376666595251069041342676045629250236712859811645714551769605286661574919215755030430877256001477312404800699450998165844602365168962138660364010948872082388820166320937778778975745981125149543475705713444613739806658411197129454114196310608312550838458027805287850563840426673357307433775779028999255916155052328013404459257056833092805861978331245508785686115922756667736891068172675935135413664036401017782177801424141466012281699378142761210657988867473445379304234941032810939099172517300494012917092744921380978848459510681250252962886174379434793722644290263565674337996902461432043607613844878355637933485951985422962977601801092015295864710321095846409641822716194988762584732321898996639237294705029033192908786838534995248499010125624000789094759566459486456172532343474581388283051411711237950665349571211667318634647235976730756758078057649652327361344828613689190538682492507814797061311573324653084753713871773145873812349406913085159593976244459823911944558209365545862575130899264514488152105313710746648662100404522933631195324437823716858797572152587137256214971634313555189806160767239251189790996448910036300271799871623846579730535728914142660759639224165630991594362104853549753606704960854757388073664053720282999345385567465926540352763135587565157355305173304975933770542559487015615465356119259560964215404982721917782075804449969877586332856290985208043486933499936933624761060428549323496116574873790439718259995648179878016496056735441725338500824415559415493752037037493180701726997427377933787655873417077095797164150077495876570883212311966578061598761735847518829384630467258819063212995451256618424511424894385201128038046816098455747564943932231782217417794586191438863663251892322044169030788203505636908886307679890780301095942097107723493052242297442074299269909739799743772475758275214403115169769108303734483398736127025968961901697771198973134520111376288027971102295836362232526076359407545105139944540736663429598729128821764594094747681314559968355004852350202573456646930734315654214133064630866622810075494742210311454606823277185257298792199291083377133022076666332925892085518109406465921052994539167757083085400616167099805858946987527662345260475048688037877750328146605370793514783182906323381148693763113150334980593821995568524169727522194042213875899892250217186979986534786861054426771295808377264308978225504377996552720175923895370491215089461730405363762066806616784203245048128917864498548902980232999189165026691387824579601062594203146751927951489121962664866400390188124031935360144012997176460657307161716881610416280343434615938616120220677729578753766541312699279366319309316479601945379683245865285617324214210208241349679859181259205606741667664803323413250246199438394081360828582063695423555975738244612742655698811735787264774085038636744021399685486125827339520796336036866733661045506245561257562033758615249310478275345184972174814295428835246775680597077474483336164614908540466430462597180410742132831673612446394336144102079852605112651018351720286267559966262148026948147316699109093234900959785484866569086472586320618995170419227570612820686885010404303945830615420116911971061700642517581728476606167720042437135232220466305738852123550178259213987261360248869948857595160094142923422832652300922229500144697153699314909845842576534301475297117158181593355100421654267088981380291846427283352927082322730728467191547289223910253021089293377302677276927789072140228043622723931279691301593440016025955718112007807463690501430149071938291520073134771274083374436799577338461598472279956140346857260818589268456749104886411956466436380165421636408980669913112092995077606002638528937390476077176416443673649038829256538701065759929483886728862383311597596630119746953224618700948356782227964508650022722490522607292581488383387098498206687419138022596486570202166718758220485588316070388185686534999066976459440156261966154463700888542411047776559844588786328384867626832747277456008120866391607447870179405863618879570399159547675103517857571089573055590590681426062418078117742188773803773697345754243786435257063497170078017769000935971198580111096537557543107334391574576637827372567227938319264566825279154413475729637651688710871717813031351134232439797407012372110937933759575828342123565503393192188217570320809828927013658131645890654369829986137352730507914400233604660902708531900419088034823755464940151175752333525281442291929191817186352580950789588969783070007495366253334015322412435990563378243692483627943203521944637109554384858678174943414447946085587400792217383275525014268444390910973184979622769272422300006636837942574160056761372154777747373218795660276886927737453024235140681586519313164742763851765373631246347241031178467040682305014807488768771479470188010999453981783853895333430013833332647077190535168792836171178802772031945391489917453724181477089536570501358298894155864311084386747563614779661087941982661968142621864047125066499469141888778191940096720666004924155380645864803907871968630080078864448142791364861887362758983424178597035366172246125341084858892486943042726164136998399833009552530514847131875087376496567655332946145378826411244518320121797265160784611787156835305404807424837793392592718199916083507391153640662296332368975233334705731725976672210003014518445881266056609847487290450682880808704148020897069836086108085681738499697627201688081442488243432241379763536486443566559183040354447690951799678518933580066267181451247737413546380279912286063021841338159444693490893870338387918864105378048527041320484507916188353958138653507448352474002189173306901266490170502916424273693786932806778118554794412771250842183796339585702024668760796625549864880150076176966768533946612496549463192171144980261907715011021127659117948245201598401683183389551043118420317746977183782059600448559812550922996234804781309950112371481826975589146112700907449428898084233466779298765795808351800400580465628583661220762052212718162321879244476739340450723184078677277989349194514203390064113456770671319566252386992243820055823250176778136008824134743441073123028562973361219387207123821031199529482759994867726117659748714084653283081386774502957980890536180924324726381865338294639376231897175491491908381529292245013139287049333091921742875586707553841624755545986005470329682509221098451441509636597258657430823094905951235634279350979922708078391992343080954610638162401319528397987579195961376736402307325047251191688384716613603265728651055981786827821120073297883419720137254426338414829585434399662074636606858937735789484010089103780021668683921467733419725278209433100999706083404548031701398945941910283865745138228052441796372189053225374191732256438170434503443846714139150367774352641634503629725158677640344745803081565874097447657286757408662364959989092294736804881518316386954297164860067337232689864326176735199313664302373312483772985172300674597737877914989306785765035348317529930236397233344782569738782671159161736665811024751313050183935517273175601299815061594052837531624623167334529004723392146696998490035447084095149472478137368006748942107347345656135649281327819786058149407448403221481308144347767805543330769536928724141099635299927366781901366350240602662073095861941441530240940124593634809061991650089753000344090136365986186630664966967546351589242514433010266599093390739163475707141355386847729065406765794367468428368294252683770463172995775706478190831145184478177597370132165469556604924817385002959344405475487339486264036535802653573142453910886122100142106535009458118052177705353922770833747477920125713714007480377512147756034128517705501659795536980918439824678194537982299127996042590433944694027233925679027692555774195177786053069814551770083235827024708814412570697045697028493488005363592521865577986146031398803251153984679802813374918132512377894668241359800434415716540141627076315501860091997417496209235889818964402041030369054414006926735792575668914077028914637600122894739675608390440714746215264745205664260968089277222450803560858533701472616773081084179627882795888215480420444657546320634755549457455529159876269625075843326790538457615509221666211339206566629560687145025456509323647869976344198714634330203778503011716125829500849326077337859066327710027149477623756221902436216878224701457719564932825714879658037912835437073102450007508619828368317559877044217145732760715031464503023484361739244089756013218184542817254120860017501918515157633408300345501696297106712184499199177929528519232023129499557511729257373908546145412715928238081486930454269252983630582235247511655004070328570543464235470298976839240314224432999336854525741143843481436824438777634957926092642234876027420377111752163092045141929956902928965666927936327355614257658313659055686055910276191555304154629661525351243269887115434079427909307388739530200096437103424009305084931255257409395237392365432887212109947224215634177306728578095718755231438297412603218232919994793311687935422932148940866795901102992539676015395929583941782565626835265327805148223274975436448469722879978736134937176267656741937456457648553591098132699967306689020104900809820550543987334992120048994407682240973754663484600869163507066128517365761865039375954889236664213122385819927239685555388962759179266935285479143722468689576178220225486018860106095806835954105137621504983692521347591010540945150232301725835745467922001600575305855702709252583197436192640527846662028889028864238650306919247114559421744262440636615713273514328979844382630777700113238876556115569923433067247984898317013376964329230721736585034325413766066044525968375939633211851069861684928394936290520750778367316666735403656809919971799619545200162223595382252082443287715337450142862185118011087863716148081438691937686784935079173239747275480848345650686378766888543174161236292196574109932645140267382178932049965370620552492153537354156982984344220033722099855102339203989788744313082286366058898934834427759324722534220098838396431441440966318395662205550204000411062731011705625633783427687461747394811528089644059024705506479367512984904572223783887145790942219000209208112836714596534998388030284362881427868147462660056196328976143944714266479066676828490884655401201453992605258664138507233949317659231305891502380701647216649390903255169971782943349490144745191442723707450143328322825483521992431225940580727685176766078421800938692304022165754556897719420431575311666597448791899706029788489541645468205284356775430155663278798564556452633024321687779103533933940951119335581134886646717020985824244670410470885792976799314973292038665761764333083185225738979716992826189422206838887253860706057465406079232890208113659051729410252397049068359097289019847839585774724867673605885919142245362108238721201942073632376952851314818392787789131512552637001901643392077327608017911367812191878458955704144626508085800572795803965354145445779536473498476370166865562039189195271007265747172283985314165183839283280324735271854784560611181083762978651986368326232579774222658034184004175308253998756097387187697163513276053161690186197447525984435074806461541636718216561866747366895500577212172231716329456948024303396138212637827663112329490602738160739458007308054261208997236931533467604177819616130986490535146515706388802280545419726427654557594744131260392601144840509121459676976717083233546149209326967389253620058519348386734271037725490206578774919914815738764071334351860557345969356725220201337731785474105997942408779530791708669759366666900798019702761930107223675391461457610884448727109691002040343417571952541246173811875357734568512719372719516749505830631975508901442190701739919628068116793900294779895752871318718375631329342294832131850550498441312512103407188135693059649322487721602737490360075743293306019334162608234367415593032721118800844911715086218837346687157902515048022017455367986725616521992153479796614576623975585256384904321792194594933149446345467041970341956531579396956384868422292825358714254946247812839344823644407390490025416566325871736164625773405889892518805313749216033382955398613299810647181101522296117375270558399249743597869791281506614922130976931502893504914473763863024877802895138438570991463190734611918187481197838501005167628294720410249294837344241245065465225860641905213937115261515070165617203658807476266215557808009968929216401886513833777362965451536274360209445454160850224257396058070372301274498830659837668072923440245007149722208612400095543898514007164518099461333144582732055761217167449661980156538232365372896679879424353148095402471927542162613083014018873089090289305582171532933855805017897487073603752073404916184910627140569628829773317920909098981938934121543888979319441114265261120290862958179238527837535198362618013829716351052863813322295560784200412916219933140692665381828142989726406036955130189429285929052645584714860096458779729571596927080875470625805480929461385123487338233236196732985198044644113393979563588494409864295614694009314883154831476590823920597592836570981102362812105797200178189734922401308244513581481414497997165450360684214716272303193669990429995888018095872551325387247545149962868178790457968868419185215263344893179799662225036668673615002591078298251303261995905306004640088244518990310163616324432793748354265569976404815227801843421063651820208364672952748485814149185831508100136224127544952348138665134895234639008869008872538075446056043080640149667200457908675429704137569983915116520890363793438898277739059058903579256376623613800058096537688207096190297324732579731487938772899649348965039351238037541932314871566460388514184755334344864071609465808719244288271892424232798410481424783243536047315939550028305683935458666349838495234451192833891909085289846797652891826751861601072475596190861075326004431319148171016418591736530744657542310503140398232105860089761125984135469134406707070947503805483391323665565814287593991052554718386409124705476187275289933685102328448000260481613533057206099407103790552312050802293443437851761034971171145571533465420074437044752570177355271475839079919682367861320903574675242664338538134629596973762612624411553733234293651757167455399758634874760425737559943517777940151746269733879962606001696459309673487254266520231852671722341868255439951767060000519310895965330244785324950027545450129381783955760873814785869288018727399068333686063334855287088990916725520019711231420045228177217963185951394930070669360493044097196214221907675718864839432748767120069706098730500320837896155467373088301221384948578585306977050756403615539166169168011332052068976374808400888368846275918747994322148944581222783063956975449362902387714958251781284738301669483318398203460748002904111167742616407014970424365514003000669897295333713437839864081528099593202851256983115496773970451429419222142407815112999777340442412870913053777229253977208967511366500678930967707402630346441530001455827273568590431831700776310751899914644150666803161960808835879727490290124447659531964796036479642573753172959586724891306320741987254985590016803296717701138413147113355621310932507196240962929211101818811512357992273877830528367453810506245606117339160819557127870732253334166866230699003428988321638354905135854014735599469978112713909862164991161556384158565302314042911125055787024271855735774445526091962476075459649000099188326300597725504053559268709772887273516624860944006676078110297034485760458581841379424828436420933696604219778054584906580568811933660709196836268301020316201712937873841686842262683301778321883747584671785444701412026776198366941888662991401077902508523052795997150628383737562913937304148911252606542208602279789493483271325684666159162104459397505632322428408121636814877288613370809656091817519858997344650380370485723103575070977552127586015255908993855007355131857220247238310705123945528154521419324916226976677616036263686279204811362803016020779416519521422764022690668081960419895709529256015041424811613311434512349179550970318398924982238036784598931844175079810600937783817470159778633135128211671281323648385403932097214393275198807461704429888175983232638608142476928286802671585413011066366671953217453551655426483490704962698502725492208092537230099317404440035136965259572523166453001708855821817381400098517248849368113023947024986904279406000352557863739523718643848806313350237239087918100940321963247727050491817406257271794652485553025009228559810820100115926095098325820467322925468518659515314526019518145333934397320257682852143344703771462288771245146897017628642447122385806520327188996600945590983722581102179984410537892693955847320566916572170726069368129170989641523432647376575686867896723930840194920418665395237483402637649231344437102268949724496281753944552960742966707744599301500891988275441183184914806334418788901809662800001792858823867108080119411753991881636873637176789922807583975390004142462983539233268244565431014023921816021328350697065470576474079240371210839274913106773378189846405952225080783677268672816385227895656697461574496128581522006860111116622199344914953598370582575907973248248198617425159219757817315301525518954818873691084515194343329981552471313701605817961071502662393327111764016922024905346893337536536002059843280228549183352188519182556513282968812002362048835081897817864200083006783952278262855451346120899784093036595322910494487808586411296436256788872725686917559379985268201444380012534431658314437787981390399491639739824850407365948289875511471653908589987328335411830848319144270981272580106933765310491451128480804465063510669992339123310945478039789268899027976191467587043810616592943961427948916683630447380647484763157214905408595546802554862838877953014204586726281311493491336264478800528284636366719480337050669185061082005227940536409864172776226370898629143654324861273528847557604712797954435400902105993133494470138111755093414490637886114311156342331015850088959904968051088163715844606270495042013375233036956581843846333979046248541287895336171052182547581889423431884520085928234657344519038298559038623167358683607210019050868736915334741849318996426460195125746574852026831655373402898033444165240445040163035878386231482166829167732241681966124894007292672366574279042082208117980973581893661258040787494304728746528982976987538920587762006428043571286110283792976111795157602140878344389024568571806783468895360384511622616248313808852302396432726318508960796804076307773482335800108800686843833203354266111102560110258283962981616804692394282019656199451966531229120825175424348479757231782983410517871904044658447167459718527457480626618831648171387674379545503285581527817223835564677247398888479270917187001702396240523472085824615396992727821974043510364487681342934929449786404551547141601266329882291931359638058237650925516421880853848836199485206560489892194753600600931210872890329350957559498762661933143788152430355061137334940710309490278278635349451179091055385036699430160228155727626618133715956214290140872573434068834691920172661845961048788827062024020080665039194714994381195411643604838258989448387446083839129885972341575227889772632191480219306578957687725593492774323070690099592765600519924433693271391641880725720031487846707211893588337303077960556103248392612952150643551314331817080528669859174899563693918182896885856025241662806215546694726478144936704238437369941183524146715302923763951556736057196820443683984687663456962492309764906211589746344075374448859137640097480419294549097479957120268356188329131017553846919937298066693016079412833148704513276136111777503948997203670406725279429124247045639711164966147960592579087847421663501864957512766460453357191207806220313500659844852644436102087380201578525088561187300841249946686601666489656634319739253308697052063142014666658952901725312840838089302895775634932452843027961648742169888033310971772469733337146833894693521633862590441577883372061104156326341420722811791359259144474964486685010674171312088874608819098834960913966390802578577232494626591104551473987273765151830371148316557865522236798642519518198608481802583466803576414040395770812116860047063345778864025311086337924043159333353693884455950331196858345489275980010216502531373421365214088520394577761138002627954077072854163515593191803799762307988441073045263590113979082695938157215143697689191815255814284203427767602886541072694490067425079653150382125433110243350253568840328777450125348330105023633585151207261530827626459430092166616662357613280562409373582910838764853915787714938609544380779298544736716710407214257321341215124317044111036234836434311733837067503252694838579549590891697138549863314718099740155972862469390471150525502421850736535816962091233309847760931911155619644049653934546020842400411436785184956825504945874803489565546526789269086365468710003433773753365693441817344773987243362873436951667478406848942532892440521925521973273442469259712101844188443827096379522622587278630985723135880748468676257973623633144230182923646632631908303688971828666928410206267178721128194184835793966881570697414449048962182532379097352186387124942388499066582670629066461732085374116181866209750026053164709940429338626859285484724558697575756060140318244640441447475308848682935675720357798695451936736049457072382442187823500339424511282998832910526120295548361451757467654770783125629783932662629979414712101120342283279186269031376345329831556280305355024140090848398224570025366937667070583169641205532143227237896603945032379128986714070292521849711938102765411671034764029096201967955203973286079019867058945910647234314572183054044363691927498108760484428251958043435052839932598717215163803089658340834155953748333294264016467504310223178731426135271537559298306818599742828832979753790615804331032965118999994381505644157735359438804886957545949408663779698810964200370438244993070258722314265906672673290040380185678646521878400710181871851036363696837704840076508818091808496866831046168110138500064711883951222376869595587114375142397612374299178383505409413603643111770472305020338215152659351932259085248410188197556096678477687363588664556998715105459342749090953565214597783738238339730801021111366658296449485300411261222491328974918181373544535657078298987649497703335436890581348794102439870961263311398365501062769474969215143742203169970637703103154035368792311185113150247548664668784158958548317203355835267003147407836087338519866545386656198889693021300062764543167720618743658882645013374028163462102825063513818713415594489872919082041581312068082475459213513344296290343618309482978885931253582368875719755338915029738395643110342539998598145400106222630801599873990635435108382609122865205504762996426285551794779840560390923075660066045342527740710855158522801281734190073793454651160844765549001906840850793539769868547003044131938136810773541985109130176501454313019519605804297256438147940779037697278366659198103509542897457102525105811439565870949219084602519699889650604165035556007128093237694980162114427672700845853767470388089856605817421141510463384957558280658076093340556594188928782673565444976488217827615430416227961864212114040489568251525409860699223006521443397290476944290969304288677059678164599472169169797011584884886713951065221007877216857591841747418455800755215715305746802977773312310150580838359279895049926231822967577716057287689993771916829263168321152125001211038105298940463958894310439126252603933321998991784713025340122492084609439894287043413917258228228961802090787210555196017433207473087522160203517756307265770537915423467080538946856803725631469113372688820462392387910298061096104434487228065800951601045970283948446197146297418414033273841147084647441980729642920561902291137322229613042158559223038546339826006411975462661725558305896603782248271027689031409064459370356699303268178566549557114324356870472445592948548883787593830058930907495213749036109967304117483280311050430732159910257289884856839356060805456055693732931060876656498966390905279353541984707110393642628496528210614160437357268238035907084856285478504506062546223462570109711969267949667020158924786020415990950882119828451679251855813134903960948710817288624143065835022469081584328932792992181415732400518606994373573803724060264269516693000125179813666134097682031431909129571100898883650991488363865716697810248030928483056779244124569703861732925531097220411179110155180367223119578962333859353721172949133183487170759887120200762738467976156241413527340757116740759312646056908596407930583547174689067050553901927236432542503406958349764303256132477679749899535799182538397050204149822911759221674772026005103284690058275715982582832010495590826746826762791103909473658554584485111896330246092891994119908450083898464139491792083783798834933701355445367922959646831681796462309528233497288120894710261256866864871133482115235144393363376698386100054660386004657228383590770683521462252156496018032694916654146803145743065810531674188433883459843226116847077266813523612296059515626559172061277521913441835436512083740893353942791198625815497983509909636512132650107150330851907371927799448831357635463253461745459805404430662843464826429410540240484658210942528318646574464413713578433738142555880827942633935545369084364712725100233440664432321039616558170867543559568610666010481687013016440304516825628186320829374914637432104536292691811120164423379354498033050362195015794139142373994768061349088594953814694268273427011890636386505758838575097453779542967286324185725006953945079487837524853832359841498679232865592407621871052187042997767304566502788194785478951546783179831857861373360614472507800032247691593090464583518399711988682478714843605294352144101091374091220561078863380924336685317889712035163496606149454699971096147495119799487558190192567991678115352457660242375958326620526237936490605364956733488723196243241359448806332900479093844023815922133751496982762425751499597455226647704702102347115122578302488497023581443582419415023220670730831886968768392374624359369895769567117923679060335523145832817927216033371055117536868256189505692828666771501339620906245291402245582689588119268177812536257589510781840691602371746204189783664189304382158586775405741319626401684404338597130794076949193989675961559739447218246117507963665528098957955510466768665900403704993036783818463799872364238336353239264145369574810119275796586245607349122526936225331328196610300726801690043695955305522822098269123922004691721362472827852777716400461239384271155785521284938336263976747894808236209081113909677407500129107135416995312734272064647031247044447564058177778935392947467723594926334853076222874895470580334705616223517246346409353376641043622162025882603228170883241963072957700270769993511698858693735963609298874491895600270004271714998034119395062288355969090561261399327582962098730241498032895270703337486795871430357015052502938272141357867151631409986771987608050838327790931923826263516544881418203572787840341941934475826169645056334619369752941462204355063317049993671122280561212670106688100472642786690851805094839601533273202160046127486677657585934433170553509883671682077564810084074365043783958688028868635275044338184750260144777393304269284024000707939278677194657709308847715313875504218163030269927673838976901946899315786181635478581818590917398812514658529348268735857159568162142142403879146201649885309831610019010082218232776977247443051179027297639194192571445589057721036041186123777058667750624972245920461129406825201566250624238410683351786741469175217455843828662170244735015348802293000382155656006383124062225269745969146785576830099617317177012065885471766051038824368852006793240110142968913878896014712235159144135506538657784561777377479749384654351598139783409638156933331136101145217549732851730004167625319564213489200831948295192693904453966857557897845533408167093790711827189618355666154862044677650690886743274602880699134381929589934562585194430391978768817983233245930648448942211525404253686352414580778188964104990078132589508601234038571731836676405977946394464430251665902802774692988540753730578226128048420596722891149004855298222250808948004540170652679613593964159331351494002261664951659471627291120981428997545063882272678202238377588390852498428290291141508784134077431325301983401864176394859198483075907841017556721369752226727350928028354514333998330746326194229321426406987878766949923774118826819653669045205165638566565411109264333456124075223847534466453216576318123020799499326238796143902288489993752075812067354355213522162584222687123874680591291799446772672946354226671923028744954941525621145084850932656888688545528568189727882520199588418980806112549438546754435885864624419428655255248092910195038835488603276645354812315579012663407795019765618199987055640361459443487564823575554619599629396534953678862876968974599298942184581211147272459133055782359198358837110250755839531622088373006521349001286740080541265849895281773284001721613470630935831848930667735598699464224442426170729613272491733227373567401868152853755016852023149951802432458780093329400764846812387531284671544884269859291422358007036320402145930578345680714234463379849099990386427592718778324116120872259100789738202386071057545195003294293476711282323193634572486061045493177565128175018606618302241220657995610233568931280963206427683607496879447540203016657956258618829955054241678515340636308148116708580449791222464207055135778299618289659918664300909950724264241100265081987369653392702854905500504096845606220694073566664840416881027861684990145352114920209674637016104121555866460152887973412530884195355695429051261937683097932848905026161043039293131782593787102595029065707568249920767106573628042850139867439061593090257839585338181195293017602660853445372181925667457510905040969505723990290872900252161295711599711249071725342052365426035425067139883881045017220991942961187721529024311311816114872304775291978080151443537608027137906330552565484845026594370317257216617079156893774344881389838402827711286994167763231121927779880943313789583039330643466674773452870127476625957861218468458431448667137659916091666020988239429823478969711775380998751035096913257298400240629352003882070394231000560419878010224012990488713074999852460086492891747651757005009833977320650124473719024133041492159827438641163550687933474241426516108677805430227673692279024262445887871268700372551581569105838735726131461186151647062329367820082362288607653379233946863552252953949228880584511116047751778531345434739025654638118421720373186770672590866157115715567233108825233215633864552791980266626127225729495935746865639291331776633816765039404445144942069360465644709007702806792954537610526218106362158380934894260752256617744590612377120113158239834539080615448145964508157805907108004805065773243920563578991558768284103712270491576804460611435476393676110123408794493760414558408899987737164643150396518994373642063061259347518211849059734810599354439128479113832858813333566613700066904301023882654923120637743785009674972204760343328066186009832924763491175152936290681969908889336676809922291723348121214334231244342727082786485360667532086706987546647656953861101947413233959523844468064835590651481799499247948402409612908926223309461400896603195156778843513157606067339237014783215791014900073804634504958373358986183739915814183575566527729375150114829660647493540331617010891071826908990570232007588740526691115250043287655040819017071675464449587673566799961512368047552182579469538561955512639147594255565046133299193638668741626821325784252294531223074711784445329009620615473605823655761863982464048358510503585428148121169776823115515536346212146525574311143017359450349345361979686621409996838507443941721938874741376383052079879287070268755621313238071325524365678309020500261695602143978224795782004784579939832803086175554074335618275133204354523614729915702493369304672844240165640446813338458078748275617225655332559534883569253557062361278157083353164454661696436727887791863594608026251898018571845283787924306407320904458915405507051518425689867258517850987062139582053434265427403535510372842897766616120597503024425257686191011529785782851679234137083982143769279248562323573055241962314404145532380241415843691528729889399652207567107083042369464873665487681062048742406069381361920698242438888338280126095154302142789253072746970445140324500182827079115408036921948989438870431122048219140218075856643872140844169609859730639830678420104604327494062206241289565473680806851813310102579673050959153711611223626815591021464542005438661145777502866078310959688252435400270367369008148224998057959774543152399861566986750180069032804339773983437382524923045881821610037525369443439388041481543292261797103923892234089529155714007662530529013124983027680541927546142361948253179996606504591003341046417322775040919391752862436877533069609937413919414399487733291156335077681751911516330318013927246088381446074085075956582975936739980076618972404498737078378429979368697576089631505280738402337282417940674829458108768382987651112621177782228916435533854608460506622312125401076532409073534197440138013654776967887666121976086260839610428224099978163420621648821225557111059982708092402365277882693291662337485893687865817072849311911814550449920296437690872316942052046937892640868118530012949653360717926509348745404340278476216755814779012428585527020628959919307312826117756737886558704284505558877967449919065780791155819996479567567018688363169001685301154559838145235979732133293887944922390207473872960339420390978576782367083373970731580711276893763753038289125019834654196209500306681803227472008660660916282851644956003877812458043192533132353581225314069812735965946499048496648741757606178454460406657137910037380154315498211412901743362543179960813772758768707451152724802517542540108409907192284327731455778877322589708664922952866466828744247746041804565483241225611417695057366030050751813973293632000690971282474005102582795977317474875833560556675723978473848282344685344163288480812906859131231563688933252550628882745999752727439378758426990199068337328616445385176941090841328964617296356995729298009382483399411316735757632314755486248765582769202777156167165201308666005215035066700552051363185169428953528245644138842639379769784951656569044030560065620052321430458232548094386762491356267743629352609982268658941201841886402533588490839651455176285711080158167239705792583107664872521880682847472488981975670000534668536669050112399970475511594317275444350074743577130915709782049889071535086742292937473419970979371634717338017143462099965889571031741769845389566413587317027882338410570908165037335103351457459273764338932655640227249927885390580342275381492628428804233833527513671403524495093255907593979432712159375400353403935066218615765503437918294149944767515123626029147067558966670053170366135185784831020449053610124169208763711937796024317923005085780083320447434257331119022562644606427579226714750607900215661380391794109732225017653900167133248546027662186351439394548606248946041971080298961655569173685356222598321333527096324726981427690522237273262392173642537260482865819844233772242331128290604489076108375361343706191768269611307206235904422019228762923378811035121523399521333186567066425415897535347245605766315986281551089855512333056959412171578134355520272413857832936286127847559290846461065169845715341563355149729351854250804760312871609057051415727812944136557394717966250302653653504591902615761541462463567818138620835002662336929165506320036581788396681930167722812799266226793790386616202217820323139214396992753874274689471103534856000136236598779088105672219036331019462084546105015045030560540478034998761859816962524923438692709559665132783917261982793689898684851125967687699549005150241621054832732086351397536229527624028257420121647423296265943330056376888179171518315270862633533703529049296383956332454894415656888889875620990461783661300469431393198475306989643467449122610766088429854857241909243011747249991743960635961266470470690614543850493959641478123457368901917943864673129354294781283520836767877401251628506025538168273050260211731344371910761061191082695412678634014551538855569181422386029316335064617199596114903299477540960305001908255063146395503658596684135241061883247388056568345133603988201522527361062816043087922010431604936179239761883561596421990363354472627868573402010423967030658690883974489914934571177317620475574669410961941086718032281760671063117829572256393666296476238549282078666516019391283136422346805190736864815095902880000740080924362449249767793130795467092053913158833997286313751126313727154005981765047680314631800446997616981201694268666073929560934488845184503480235497790656946489271830077516320542897373997761802196714906465267659531124471082284840348147264738793732294878492703018402415359678450570993675640006428112965359317410117382985513854306279704795704546520546173566800915315394470995591402488824294549179843669586918695725871253098801833506954249910956099234920749548831994867035709804002046142242881828827948736380645007519221826643077579189874728275471128017756510782505436702042243464590804918475539765079484866876778244755388282671517748665483016391630441151275289219007066948208765940833656595934906184151462819439860837749469891906376496415822725175175463518090332107454327024571098621001664420249985498384464136232779032371932801392383034425194998618081049327990848833848158278984712402804108670912335904335497192401267785265290100598302848777027804416175757021408219324723493461339365595488831704983344895125366592011556864539238323760460574991163397186479645658446876509157318480105375381168701250371539534566168131429376227900539361850848156634445592428331780729378782139850785290091622895129446908851314151020204949728509072344778777413034914315600717280237745879198693670310456107518267767932226873940455492348580959835298422199627812010617660431191659055792880341231713584662887273692944645045739854770040915382632628070057067026265941230834662714550346144897888510594451567623107322918916176945297949634761837873534533600465806293466259979517876965135020624793618395844226866177471102511930166739948214878176840901268772885702288292316236441042802304489832944467432918732278185519830277423528520535789549086359434117564963169252016977351943884275605420665751301553527361092673413240819598185554856959294091561591415211635809644713077708172214424393880109646694670165563707786989062988968362190187680612897625303927164841199154642468656899817040242884639130526549923491909384316579291687392792564101999878288153437844055110374915901057474623544586195650292395049433091075213039505302287112611231943669636614306327258544278200715889662185201659610708383134908294410754870216288357034084353310654209331252153237995151496888276735849790655493353010956378320769683110272597163612686706460313759664147151616095603067727117057677525512301728861486340967475870547719878770894514242612636960737524277907898472418151932751986813475497386641335867853655196666691384076374704056123674692507359970880253147492947860622692281634695023984557954726084399590592200196915423425573238349274476265262294348625416245323129766365677808490218030720555353274094487656178953634903624951826124976637363939192919320643573453857445435446203492538182714842168439216799937140224933456883579367723821329355041839663417732911789294526671062591525433596889643785373398077751807382045092491631457448863256980625545677650365615969083883738988833726337256239913368477389049521368131842084404679777135229551062526905371359065010346890112317233116743336947696775179142206701510579370773586759527601785587202278251579976849308782154805222028770465603408314829710854291798012608048344554707180035822841690429211518453201326240745952456213259681512199423633804340485045815267287718848780395977111048884934043027041507773804473965646544345037669946009576658618472721021546695743278691971584191192802271257931286602942998176486392205681065759338246496995541857878078186812108572223209974522576528880086540945389974847247333770784866783218147231210698704992316136890524093210324631124848095209785093020094050230834251520731615883728538225684522350088728056701262668890189519697058913840925859475435821749488815545036340198665456923925763758402506928481007013890688341459580074244855832400174014263167845423326204595529145160794148088394980696420686732781529211630154126994113755058382383690824892830090936577325378071038046454202159103075440850979466282626027899123934477501374215399217871369998970102163141526219427280749339220687608012502709281520229756105152123086906552852810259603081766577014586184304012891584070220867416722214318781665364890309640626869395094631756599789732881214842272089472515226123112273923592996227205057105219419628160094809551020476589022901498883823244907800176279126959421852312241263990136264506725440132148180201595609333241338671028171934166498741332264001698718148719442428833988237330954295780971516264933008459686454482538793994092916799152956354598058560912581338933488465599900511164881971847100055186250902584271901015929758503361076845035788965029152044723054587629142253456574881165600369432674730354286343357295069219628449516448237773493919030531135660544208682876480851318332032923058138774747215821331447530049867275521902081322421277720092043587013329632178979339772513204265169989347128098930097769463944332831831970556855825983827796912077884751422558646565595411308666297862627677363417216944657683736636809016961373522803430066593869188569988616383246734901490904991558508255307028969285483315265514546051285369167198778048268262773000159289975100131963992804436563532271504335149819510075571186603136378563312498075126358393550843352816639457721198228450050377123728116174788987786616878858079416589580567563069156752969087358438170318095753222476968280233496890062735419144973727970840692654781018684263825563167784844649947065948219466631110875749048769681259925610843717698356795821067889758140013691462645349321097832308690653495962444831489020805662252734605834721542974022150967058143260977382385296926208510869640343402358664533207485705865029457506262308578653432198698726662834814637649287998095263084365104597739597418629851271825342469081348179043031809856078426466689563853859504839963096127107598366554406895599692147668556417456845910746217224812187238003601187563677754024767232550027363632668790986901956348322597377674424363371942760268495310457267665318513476031222950746704147073520845012026355155333462948436103408752339075852668261063151950410471450893741086194024032038736851418901163659061251128594251701162291754122350158276313140099853192191926358423887099119078850625412914429108573870441422749623087695610727695125945334334223002762174064807163060121926096109455672757767754517011005611161271269833914832424957880360298329779716479678809645795483593771778519407104120715831501138040305713734155923399941450605082933738630803138089950851416269187295340347465562615954814620743115346183306247670274926397466741613641144811509649346046423786462918978435549773076728939312476652750899452254772875300728253356272245593705456512265869524431122340349789379205683414488460870981889630250302020963556260363867828134511731746822713343838875457504827905203267669321010158606134053580519588969366392611447024643685095863861861268699509221062641715262916927024252213002645213327135594908657707130873640709985398262433788303845131623211411026100528841204348271520350211318664455921443937964946520334341184971888686598142154265177868600968842393077374797291557742957006484286037708238066774986389406734900250078672661762408936625983387021176825175170680616512540117814912912839330862059249766156298744313136879455033920409038141320658015928260753129634760064052188904162385154907076144245521932378263225972788163783017853002831863792678675352696268061030107128323717056974063517536521821659498809337882806578069733717413770167142838436138204524226234611868835001779982003264530965906345756594441252796291849098928353354776815815557513116127035354510464034468802997446509522329466086814151863618181268205139358610675336850808418094933238586271045302631817720040778720937303741085342183843911651117089696878513250739131261775142983047058585122648563455171951923983624365088418041599581421223667798101832703958604833652400070494220390929994273877002995305092158928776168764686610847785091367476120684326824381562922708520229663316039176166903360540127373066379852562225668174577779001136456458459999197921780353439275328779607185233925841541425238572791631910545850949338841574571427485114872295886503747583602111975225786408477537860163624920545130263235146447516242262808590678114042584295272107970461937509258610292281520967832483546670116584650761615721750361757499241412319305987998778372472001719991011448488436500305806821116140247382440663980340383120433852904262490442165821546935192478372270533837591624698796473391347774528461815012218357074911962126425008548755467069726785126159202849654863329177008135220630273499287933207680892095204972782435033805296861697274074885350813776442459121535881526279324263184305907551875478019116497270111518453380833959879048885403697830646716146573689589159638164391039098371007581315362325183832695222035703512630058841157775959408289305480075693709674478838075872420240127275202964477210982342345035698155463782833370138724664184829084211934192502381608291267575885846419020224209672289747750233625233970490286457272705577903787106598312219037829334922403953506907826508693562004037097963824600831450228204179767581764627314261463233796314826045689624040391580976847691574701776012320490171489277570574981916605008611346849472946960568893530570803932142572296908081683066385804092699486774672286205976081621288054121586822642588131832676230210198848931482856859315320120912528359053112329532645295186790199005265422839980925049111210589304061065198706934237683602631081959704327745555494720495352470756517901261299067631792131860741689032179887652634264327248957672628976136940504710975713636962401677449940099277829141087208933577456109265672639370462417742356250943699802870965866966661969258258081479914888011467820503083565308089002578781025346225093014200340387456076128377824539854513151413459325549252963645078190368624060716258159151830507608736605844938335258168619140597982739725492816349305618999117748049542446859689786122773295446477420855652161815909269413690381110729891475982526411651250148835614566201286919771410645398904649172275955211253798970207774148000643500648727937765810431074915707782391070458432026439745909786137448428022272061387591943577649450856751318726203641011178211221513180262001005435971519588467648807917188223266001360787042691680858058757261906801071437521499017328149643670510543774776298429511635677106110081379229226400358053678915768656147146836478893939323687796746658806447573426935976137744726109012062343978185516624497606642702925231757666974743440856260383566876014639714494295725200372295602205811078774405696453945991039541344380121014356097393829124727143096340706351535666582810870971406003356466219313042861025085875585225935720006565756975700756865344297516170616264333064182509990608290734024484279301245638062112539972913246989746295835171807990451463396477306491846103863066490486775997373478604258355113444604223956520542680577064977253489053365295943359841142259169013640065127422454511733144636597792753070157531081323119474953975735752899714020709536664606395027180052625140552570284293648501148744475337072708138605931389792482053863075723113570204220557971342672499080357609458773606830479457161821747676678700824840321052037742965643784691522699928359489847778617737958745806445406897509689037789764358915068220350152027427089742587010450924362825702261405685046583006773242483190532209654955228031328589354887460907711402285297843080104961208028867806685704083082380368002612918614753953096501987250761879816863371627510721208013869447929717136981047737968742691772525243004520832390883696226628866111692043877019344090198768314381388902433350506501692527012168336539470899120035328264929119449980523154993243109026089761191968350528723817998161922927889569165849571221353875877900603884080360687384616462859802342997049760727830742980071452546930218580396383746497405019496741565195396376999286249375467586019333235091180816206584168713650142576796742314456945825490672417946214863297301564433503605953240930839925191105990450778051360739055126615380836127386546347706357432299166967188316757701898943664336802501686804372233050251037191085224054455899070326661005784502081215349391329951853796310273584742793784861504473542145814259772440186473673271333150642036821539081670268566723343390560908774863209658133846078831865496519540720637864242722075042744361845782666969288215072864317577338772986937197880979596989904152914081630705364553818529713305956516611489860106015649175959785570970176583649749416690211245774609922494799478494211275044953144641260508092665677173912697141051711381301444589653214430453364958821715784833725764209554669863205409944513962028261671410715489980856324922961917327635762331781202762329528975562650088024932317039737290766080587316323870111117783857103051265139758020164035462321559628369479169614418189952791487181433877365094042702893361368349386626126683115612630969400620391880943317924202661268014173138911110841117175970983912964707864692474959210011302756980318264046511807851031093387165751733719207902845680672152295671311235646583682276451775687362339068606386462017039998690122229361981872449151266167888782184923412221579658260313914783123786144576563347616418378748393223864551338899147148711089741617515125621823808513989105739991450951377476449509094179923367224027381017822273832062073157734268186625272425019967703152861197126530948227904374540017181233049014225478458913252814209470273900251418025923948806043870883420516808651933487514649459161761420813064723670878981123844764853346892726735678880601449952975779812027661153787075925177019705595358215688846819538094902062431332115070575771963522350663200598667867453884797756180345444509514805569123798300903271552831831657707119978994414674849457250466595567791243241563550911088471625000428827589453052988691350761970942484258782391270259238578431929407120390088321724049142509822882255403508124383135306602289538565251772010319145679975016226925941129767424154772140593877488973703602268875279127788320800566905433699148049318279897122748308715117200738772394850311771851441770444189193793105572121043893575503922083563186089742784734425940381387133825413386466992458801343049387252617619785985209504095272181021154134932531824126822626675269266881518896939434119060741169673836037503535505886792492867323158447492485186545931512579992418135018471174648933128814563289676016902882653209048244496060396987942526633722451689604710156424832076113221562277776837202493495361806668605907279686913142348105115672086740160405947987175911995097061315409800496820872565783606754223568549077941900778565651227775432295935615063362560034199665910138720211074257548352383127600167453301708101030893477446893091260042154021538904441518567059454227917874579006096688081343366757222185436150720898721418263068148284781970391075428676969361569111698341795430704657022701727125479905919603589039966726574324321963552972721529838262831889572794155713408758952373839879721919537741939027088227260981759179387064660108398210190387875780253578096333142929710951385044802821910524758348949864975935906902565147091860530280154800501340211373198991209617804405455598943015610062616349071614846281795267921890433507705126727155257579985116438919533496952899215437662683168008370747828450813433539065983929953446568096233166527034068284013276796271923379380313435656948983525082950231914917345533183783262088364298590474125129387306846693340489430351413510323203324229571126243100888711368840286557861570339222010642225874669598768750414010249196369001097663437715003341490402282399252465639329517739944865715760293632722006431891357035456135624748220399623287170134442953381366449519386612793542246422991118744987536478159960312869971058124740707852189748082899215514973298672527618995892792673712016290162657588999012411711217485855919999389373724815081133055623791695142723442488147784289486405671028581127874550664836349816571634312904087020202699357689371684986869790163579830385248542701069929819079733194945248730928007397500616401943814889708999973843508094511411664618352019443353681210978018411367956411899617360273153537326088687066683938951372817386201864617589782976779635916755834517521326965266976304387820877295769181343507381484758601911895116719015471224672614340362826981120295327491978959433783514487841489911219446721239210368426014854090622671622490925765671087489201815415537740960518467578974831368252967807322776896668887825293419892387642443648560836604933479055102444895259373979996252604354075741035922233355387237283913277881668293877786489434501456799496320471992794060463932878127099493437185155805713672235860042272919523741797932384246113064256194890906362856996942975901394880836326706701627832936483117912936331592597531221144046902874982445640211788159844708763337748376131770200219527000474850000940572816199821611818310614895031004826035978334842258290033633015400753339413592793266753500258416390982750143860322028591371489196815928465058102534134585277909409263613927795325708959136846174215131720150352326140188600061058804616235802861984675286495230012267980323231782064020934557329437709617396586995069057131287882087696092489301207823135123650578570552970542702917855313280005021620857630055880261618702382706112667746687735508110372374623183251063458144532914595431284818600959586963598605453387583801302023842011737744216876491866743677327177370898894879041440061764876698523055236193488370936222252519195887262855552293909688956190594263855804992797509562290143552727027571561651334398403964985058412625612341895822046524602581963866622522052409465641566104979850759057362713838521061899682382417889044271437064786169236907015290844962291444106364128289498692307689414412900052744296077340774200931126430303098569566566825924995221282132753142138312499869824707874130974470656091647685360287054233394154584712263304503224822800898440583858040943440320908649653629172736258291919635045433975126393215232649541949422705836543507151535930129987088932041194427304600872748909568714701724506297154889270799646301676962179704100263462988991866841450067413211615359883647936863372052334358129808669963885748668035427790182997847195104098637153185519795688007353501026442165960076718470967249642764118781522836078315208602481552248121367399643778353264555462340255432107978716720043751608494017062492437191790856796904785786391968708424320312028278223872565314683839803936993737139643409834993699631307431845212644957778576075883486915988535767056474962602894484761868203368798919983481244528410998609354854310092826752966162745851229059922816650074347288043438341923001912454688877342116748147807888610918755237571821385608833702990441811482906241667249391466755198886309073492792451895291371000133188031290815211760528890507944562610190169392087370417915131533455541680429435240141919385499175341715128556973091543011682584778452533869274059115587863062235856665210683881766348215055721598210057426494723408801145747608107909734359216726169666249454313521506788720450923588965098666851159654829726501531480359859166522067984784766031261296261440540524852184557011244344535404099498190495077760680829392325205369472311483894029991734769294496392719992303695079267618698303839457757718368379780660455230738473645008551758665393590513711124998520584259935044035452600862342556330028385346260001800376076341207925333782216272520564103001090601358268381250027819280663413609944236842744005890471456822763916690382943644893940254068405348497557526966065292565371344747348628961367171832947885921709508467129568133028182503672254398112377431900304389087065702508615734217785454908011126177515448030988767545699135782178195604421617964735286219156098397459190086562372892156152425833291650359286659509099265281989663269241721765940761019450330985836019292120228865954227063847346453849259575928391182037416989712486218074710397831183615099747213477307737977327691844417923464706340264572058319993359339439451291645217873649193011633910884915639200346677913200391582514287467607134736486549780448127221063120132895115793077784150337982124103179017127977976782718403600846667928441405730932849986832363262402105927455659021046691631613982238603524237702186912016844306969467745669142562259334606645152090748869495314530188587400451791209605207817928603818298542282320198231261325012405855378848581948378991171901852515403708374721604961466870083752376457000512061678871718179673547662849742741865281209498325065939931932742281457075393647271888787564544021669168993208076974561928758453477047156461140401729195562567674496140323235388494239789133469090242749315155514918110314977030490192989063572427819946446532939116028549209239931518733765731160360085464978196601759161476397785151586205963932858589041551313386387885422488786459415279249891830256715151628585959420676282081254902421693950683169766302892505782601997176259710038177915129581087370249461145251055321006266275929283499452800317345563312308091362402433212373778863410768873715144357602631998321016844677857817147422063594474830684463038395808263283343374890631948216119009895516157928380822737434348458690705251295755728475725575406615936448519033609996678887929776749192989607171447749187782280453038648627881384730211138383299963571331464846305029427880190764429887212174506548965440599434555985804865864135309559498989581363808530770792602361235777655388304571227851558772807380385665394434844710457447051846133808261985799031433237311942111426894269239415854311549262877082255596648960287693951323981430308543333647577693593729842735359846095596916089625740541905236583122093666868321510265989435223914153122261406439292867607994973214935608297616042972903321317366525833393812704747013878374519785287690688941869783019002282172225266358539343427433631498874770424155933189093781860933652493288071261237874517457273926631770448685987615785953595855158371701753091248864545617526723711973783918595909649396951932729062769949696635788605736859446158885235623521199173755307601276541106368967683251281788754507436601981586700850500577377222669914806478718501896090294481969937452227050353426083255580149970628112670317833591260989033824742289184924588395592958176662585635893180332991436381092994197927100106973029900761415100843967488026014890742748049728415311395476778932675272680117995753761473774800580064689709906677695838767471105410541063760472448581065664398059216485748576252655328827932652781697805523840832449281599143698650982002797820556781133013624764414599739250172450820285543571154597822472509781939112400834618745565923814477059898695985473799645760445588062424812245731786324517018512699682820252650056670378795943754634017280486738529629074679534061336771942774650303485554189117876391238424304708948582983820153281871663854565774370543741952772746867859550015013036139075528649681052747196075207624648279654173044059777227150331546972185261100053540664796532759677159940359135562736797316788639844011409999812878885714686971117998045389533020689195847739275750096517381042512849966036577572054313708488315633085874976544665279621021420399271306192104808169000463487370409622670759664526380171092817839678779035529933011881138338295550680057981411351151048770025806172453681146236763880219519477351290513234682098090458667451890764724389713951496185850195656865946408948156234559952839157260424728252679711803576368483266200777507506834122191601711132619969951708553922193741792725778993284781288703446593793560190171160489192405695410120083817390630609087138755707452930433486131802259627993284598485880766865133882124692279337375778120014642693024125616752688422913693245062851588216720299573385753510219056531081291959602705778502295642595068760939294705823495452671994402505145969810754890534162747650238468566226643500321800508555780311708788291714217974508480770659032665462440360972695464028766668535061981596497323026940978899645351580431645256274779776135035496487508521278140786009793679134967661415052019694620057077211329554838352434968269417415117307385223235684247073250858712578913790555310076520556529735009053055784655253226522531939967620096971090975810859479183494703479015520599336486106767522601840572898297515492740879766084397057546188873320676093303673516330215467322309502542019148380630865691417169690033872434476826647569719768993225663551631051044094634273545323525763686597341198931390271046015800246176251142004777294109444821861691650120657372711883375088116336529662167837079688626774903439472624812379186146903629188853794090713771897413722881819956150167584347013695169862866793560999086275494485890950500903333852610089184920366130269209850269496776590684955552138394779068639741213222328308196732711910407621462151017818424836194131705638347298959827511999194953471002839560528319940005285937888910911313133837300601203207124587214069978548098191542535051202013374161737222932448846667825308425972954439873262794721483841750560169961907349766245403742159968523932079339321195656319427427353297872758024377041662015108083267577606972084362341103215416866108927485114997685339991179744974425592246207488104886690378809944919168174517311697671193779739300965468661856671464310338678568870701928086828877056437184966280835307085671634940372870791064186458463764133295748833296905604837254064108714570031743268737683482127817255279982053259790229286513227664716729211278071649568704872427086135608195884079551349092803670248464331560412711164224723736702987604837314558312363560933781531921980659962644353118319662802651742018022710602760959345367554428525739246288245767100691603212752840655467882839927721219007524087837998529010409806363526088439701061089013519750162108775639698385016643543553022354494632599430387712260901270833390159016499940417453783511011850766197208267512577891779414394552144138252826481911588023487236316372368063678887827265298269100052373363298849057427043866160698455094855995839901632310890723582801049027261696843642887528322765569532352592775394138338089186862607221790777846392576247776616795636053403703641692476708497576815417557689879484213355885361397613856858419129816181467599495814291850613810146442313525574420805466411999056990239568340905948156769587359233768164646604021160047781284107772187354381144366106693044514250926162587491215750202091041315206759072760409078126642719380326882458488238377520084890521950191777783108798176875294712276385069247694855681039721524433810816274188682101403493698772380650611245395741351001105434172254055488963175736540541552744454566612886966884374175481399682876430509651542319483871993684722396781010862798373015780961890449170201164295748898198902276977169865048903847193120799534295882306020781367993908298775546506543680047515605607666109353061383725928953446084468941918277795031186589763194457047348586934563024217171338837733443627691392498676265354093203997615227136819903077488867426782150017828699701503670027456319683051599944559175114095771142991895504176770886173841319814196914774233197361657005026180175150770253405420706394677478239741577118420616471599429069343271863325978579258721191627505067542958001477296520853658855862302094973651140476413874772848553067639274376708201654802996129027578718226780855816691945301469297202819078061806830325457082162025975710934632271808059893621452083267630943725920676299532140176905387135905252605415150083871569927752737634865198993970196702467993118676574794001589522826861632080982757694814607483333078009013642920312341484689604596761552569680518669886889843691058806832997920083155788770257692297823107228605446201306110075742461482280557956240048238902550161443882669122148942202880817779534631536067967176126330284414438022974588455085603203435535512970599143342929462672629220344611573808620061017140889260210722822000941926468870109846355763914152017331271703262093535798536872768045416968732820915724972583804307652423989158034309163631933607198593225901791721450640772408446858905142764934474265039918137315463677705086491224482292249066062876961129186418948952705654775875584685146771172697897197176516007449423929709358100025882548971338820994977098253405289988847513278252617045768353324757213476644012269840024027859566425573578643320972819716963146361344446455373413656107884885412263676579153761226726084673864220022742053812993243224967491283025365653538113223601174753851255201834438537469617990844229442973753142336725642645994424990286680994899975213013150728351728704443000952395704761759061489905229014178973834808205528799818779473098139937902751825023578471497060697446048432693218091985398452416346893568060538758022165809205440424688369872836599114505144032606481305758670764613882836712005277341652578401781946140531980918113780870072330812875151859653519667141772388463950295290711241296451865722811263335147932291009945689375890236301747643408998060474274358970062603370512213744565487021335063707262659956303761565350094080870234816936428297712932372550291366426110701446073384176512518615244098420050357734995719237083022593251318727368938213688322263211568616095585600954232572076881408864307538494883704930502448820734095749552994858678569602278213373388336758669840525834828967567547177591757148650003254487321978221444271410119745508085044044017997884944742286166914160511079946693226018085935610690719551259178102657023957884388217297642484006068510553834338286587023392415613534764624384591435735374140278411355407072753477295497915974244756435642115537078122758827986879700679045847264628685974887104216697407310927122246580042200151977489099316720368485843431974236883299416047552688883513217603467869346602208978171971489041743586951181383955415435532799876776570291154356172294845974222021887448418057035271358463485336914915122205209239708167019685950364661532595388498339039961719850178051382271672040107075105887703480536826711755524028223839686395721273428630215080738925033070345352437289200589479781076242419476290121254300918359834249511432331384746699441621721757183670485994369326778579405407825892688234749510332878877528399298483373699157180926985145730913677592974058080340617468408106360709991929163670493036659233732432824240427449142139475146630667274831249446574074952528869183449703768155411938014185071128880112121885612275019923651824548539445657636202375228898459425977802343341369105674818380304644389493460300169110701482172225019759092460796848367109621735398724686172752866306366893456951516591072015109083021853146793695002746645685343528099041786916170441553338159755898590680330143110315807651464531777016610621793336239448363440780339154488203321716064338919562122993975382230146163144818288205763436645734773917498206926574480287932198044261980407111111412963024413358621739205402990999720689272482119947218274979654893486251725903602758143646369900286160281352270205475729189361750727819714194384540545993559419034292503141628736245540334000861349682630908943861798439515666306020527183557924289928449009247116523158494261168429028191025690135807735718303711664281866520350590631521662576528025394509003454552679055250100980747216585389792625067103045364551289594902876254678673257713138169010766936376758618858991850795718880316011374284684973714179342822325996927615834978899171442077061463362209867298140741579843580357522608438393838768566938532446754791476299053170756799800771009716468589649708908405418737834970918610197266113826760867822502478676920584608319279357431470303773002221297558298312488818780281546902403560306391744066437788426376377718815403240210656125940076539899598532967208176739753198633346030524330128168008897315524196897233561891034955891778420307991048101715801255123336983387942754039395072696940082240329931517550890955318837546794967745955321962565665663438818111718558649609065188568468623947098706087068959852832237130659132669491604006354310367805113014248801112863268377261000756269227158270739279795239889775025759107001337600452701380031481546121434079399591346334405988932420492320511613297788484033981919285976228498518910929006252487643639048400968650377640108087143823341721429456420764269289102142319669238221409141575658390925913136975444823423647947480586458231525079571073754844619692700502650381037223369401146915838886320464321851944325816720688197481307272561352582281953913406768152618594801159115016720738814840104811452252947243983280733228417065861686469934494458238859082634757628058833301243368158328579125545301542883515131736639902785995682153322966244840576231580459527205724533412319148011740249902791175577825314425610935881783350002643015588351383043658030886667437656949345645170511996816726160760064360933191344817222273164643626233427748854851596750144565888611671695518538152526663749933331324886483382919240706482548183864451092996930767368874765707847058113283018814234576997457436463147291272260398508989268255274892389507516627582759348872751269065657412747681715516275593727340752472588414699457968346553718831728292656955968608117392369765522396656867461280901745406848511575898683238937780110162773467799951280598666739651713066538183588648730476677344612539850646181924895917759418354819284260924257130921633906589411231339373072974516020373183105324009030709927446566501295436567829209201891539664382490811221800456553032167787749679771459289549269638401086383384054989592828591109072816853591900290372988235798452539485946756052853415670978051278516467122817267582125348227754580749071897624510180872643478696064199860928538405715801055313142599137108559499503457526955015137512873762664456384366708976048658840077076881749919575332479969730208385197653211627065877330326813301523261793232629435151864312650996904014987683184030847291597624671021751027611959822206839312250487871997640217715099860038301439029513889945607969263278017336694604408669608624937289951175774894390878167780407704869660113732717967500470223684314648766076322763064917257900273170184120777439944510985645969072839652906751619069403954971327683947092687227821884307908450286757906153669917360933101671214553261148586628898364038706120664862206388882904498001174798724157488863103111830840012944588365257823334800759978613246144743019018305909677878034483432065534028148538236283660268786747521120209381950381966771748821215694919802913354748954374939474135579712625032510120632294747753525822537389117089415684902532316733534718716913597586306306760325857409729794050551349839202212896803743713598042845569669349071535127566539217860148594679356708651836319291275903495367765797313412514503843298624933059489882345613534539319355385838556884231413765034164001876519280518345233348349370297674934091736776153641738103824567159620083141316161123464748711836460332323425502345302156342993168123438448633368748246519687645415124892727829705934871115385366523479661910811901894107656510595251674906042919598206479072271729458527088287716193841870872657676573365801258819952342871221806491092330274263166122305093935015139216139738116516081656318709625933257689043201623661886421807223974040747437298220375869719632861615798612737814989399392680235229702331416379987857536565556965168560725883718274968525633606196747766539107709510410558041706503363986370257623700582033373211947758641928531281011381603847838376652173862410732396555678785959263584033612345842305936499129209486447524777724073672413892256152714337885167892965220139556721169368569181385380294985101292551984574022331555605697331832241298196097658340623137196413850043908913066239457777070255980275194150849656448530345234811804214531891346690433296667003484466961721544573771959474270969163226816021753792691396740969718220584401136805152785850791512894106795576593903625098733881112029940154025345204776843685325300825870100194847693479204915225504603529819328071642709748680019728167203936311289429895261537499618784072340415349233236743306863286463807423774051314994884412448183796980921634922226268997344658413945196716865484178431444317054396548158422062852007820953684656148064440470116959076605425782040277054575654521061919698674782672170182523913243913052820370947233216120979811531311365630527732894408054729521138714366972806618705750138356790195765679775808788489663702968499038055532740349674335564529035778735382654260986585088250893270384291083843721284319102273702428428444554074970398336405659876716291381255707285093259658863865265030452610901313157729806521659230172073102687063867403758698545136980135272221952325395347217058909342917212254096163540374886556643513484479342829219686965828284599813739004749297530561870319390251418635387230983433370814911719809753407388215130519621553182339866606155237682769243172912327133205645842443074409782946705819287047398131388050272271839594147123743879855745048153710482272528578893306270937312119143881904138473173477707631989244390501369342711547644758024397842233315892604861051554078020964697013865638933578371638114779851273721882205558846710571215441898737162276592852734933775697587863685966680065574783062812246231168138507988179313151254611361833511931791085469527059437784935904830674176790535434928893780012697853602698218169878963922400185684596700371561025548162484228445979286891741877338533993058417154541566249681105465375937761158386234160300356996608184172193965437208515226589783266386490694676097547444225867013282146719289622121896581829295449419301321072048819874954044565169785014452933538726994634384430078489199761490022858810970111440046043691024812442243434053973478739204200394157617096152004517776373977319048035445427028251743132022086277674707113672230216087744507335565620443681459337247742716138847958711172971277877129729154803248167312302778484364588790732148959867095667671868984609512710499505617482883670751005797273625504803475456688434501080780790861637561790176121950535164214144745390151261381384242253120865146812241713082608860609954078580500708719157983625900378631973780531204705447503766913311364533495829670954119167953367044854339429966595681989478425734848023476366268046081286160365469033414767004350620668108292443317015771161851092092022207083211530199622820811670633009322364513771964256209051002338318869150734924163591277345825755560191808721416174410974377809930743956765448283461723483705761078019015980190150306969220470075017599690607048024344558508657024750932863214850412621806916443269724570536011543839642087528251999158479396326905449479987811580933770826368131930264160335473836437360804958803947565368466845255154583532143628559257456804019439230281389558200092252463707312785041875230458534302765506676354034956227551697916076735515317706503922171172646826544767223994258237687759360355117399236573994452302974874219264011004473886220437405992194491619133433778700318375222816638588396860626734330153784035057552506826993352587050138398474952250223568911987537874727533803268364474666707335402897984519810228774678652135173377429476280886258824408418235308848746965109337892420775633807533494948208584188405131121574142493985118517838608976661201123121696180378848598795843279054808969395430730831345934606674348404481064044068884227367990452920880768658650775795785841599104052559728972776212610506136725356252237176618581475790079340386571655145415626767602345923728975623732058922059854861677940550488625017095998695529519434802921032865934472961085382340283391780445822329259110247708235378481674248841554298407194076498703236661612269999839213096554491786107720920220634644916330909163725379237009379816998282676409763481275471788968897865674500623129012937861623011575836070085290931918097944699133179714153105309358993026748520526426952917431216318036865079874705391110608683762931758436282599936887094839160374171750471709921757225541829671325460096517826258354856906507926339681648575089982163402263730090723317165448484808168408988285408168709726388067492890170178930489627109314147439784965960016495249054824450987337299129124428796362408196839803109775409072767595130048093431564284364209634128188734765776772720370364458029778207917907378442360909045763567990655642933830437425032429947954701413404732967079918409296768440268236527927935497050560456936536300746884631911213726965227581129731158036238681119315480752669698455692178141749636931326251369404192747732397498233888280033032432270986576082549622152937707890124666402028253001655683917687025112902935107714143065133912633937578655368049830665381352380378672737206049358062754106931914882128650467528906338221481144353775103211238862389929488981280802339335379841696299175253798400085063451259993041596523298326749111973675959241340355293069863112856590398080700636999981391497261493087019063507066865400744607653218099013651568726565240391107839388855840570900579284530209199258968248304695501718149873411328090545855743296023398509807008767534408137376435607686918562372110016492967332219516200675284757291772133599013204731596393040340263137604465775434346926560358666953556944935584289701620705584896299894749835100301840473733619804100987217109619724492708585774609289639512026515074329589445690289482927913107052571706414896921567625533617454944463804826926920018206277089636599581981048263245163386553807060091101689007563959562557267041731248895524761625206639331868355420730526276675303266255456209287864717518868636957794591951530774079554837093704079670995910570386541146524620853616270964199081845989994398337303763610324882212452616998440296269924602751579483965124810881044324853455251820256600160357459745105196617925573388717822350055027022884144318381639791761813670872205037338317219596018771232596041370869014857253412627716492199277581354160258394463006236712838889115584950967821565835794828410765092867712643289799275108844878868610096371886118166287105476151140449426539880294617514947399193645336427313329396894007047456824207432520352307018012296152955362935605164826669612400781347044630000909136765910021957804929580404738881352226261608273440964870823427132509699467137534182208372948282509356046530669718796072579907414993357655256873803048347397454372510399501386522328726304375829519325959951199705538896218202836707503064291978560292158757526365645713394244361114627681416449388246379989647772364224993714380014693255231751076173365038999996580576133496244334586938665180411115150566872717289751455527090991043443036171961563957165185639990327630472643536750062184770309147073868736796949808513140402893291491466423864284638484910900543392726113967129458126719753679313813845856287281943527784800198446830581462828619012409860040802305819073368715263330909991233702465572442641394445845884566527129192707889028404405518496821956439724103640049605446510123153061432553971989012627052916939831981827613367441708279174858698448371009625867894343155502981722288239350751273088048120670621548027780097813647715886723445010940265123167650539111184353780585255218075023825237170525198702042258998450365620525076047465221544198101144392707815180299941074357193095903257113238018068647973998906763282503327673779984850147529710511897165818220067174077674925681775084465947212711168779848470411291335865233370824707398680288175403521264226535180057802367669209447908460365993548152037658253232893677589708367928632754820823459473435770132904719549624036210048810416968902127290905989025667305103073135918429804722652640794946730995006939080070552404374163552381105682990150100237335076850248392917974416020439894712837714442529258715453484244861771876053602772220296726017897358370431909658977107467487502315087923097039314361223858176025323942451607813034350510452410434642659140055485095874830650813575628137397977382754350650996739429442973211979225622344944221752176006039241446796462535328637907889829516562583154748428984993835810697704310932811847045635512414783179385691433432168813719448566985998509391546386962243841227031114808353063445341204637033042569264923519254725677755741733480907206448320341390298107280072395748799776982460566822246247941707557611194355435440462965045772101177811299846505146587336407533470446270468520021980114194238290005569831878436800599502787275820738622405349195921263089518137963392956163821609332278047110206796656685891606698259737732342477059588666112966881749153285838550515222420840566012498230551284146468819679892992696749771627320087129496681168431907493924812870644600708539229645644755341342925300171009478651168929686579913898983431001925532337930493048553063313580951684548365143000600542513405840923994987761278553511651264347108304397282345688173288344264786430207452107587504099042694111299209585474693237007319136786171833381429721335080961145250180919601971591200668674313042269392386060686651560893492964366140715305678465242397552139618437776546464149571942354853556904689413239671041043864045492466229529931989093579595146075463424021687615715947321243230011175539679427071002889659564581144760660723797763355158704737054747780768763721745850594057252977874946179253393378517865592703363704911911989963770675159971608224062559021771023992261978242900983266289864399279135225018828248082056741590648928601905722629686965851860968142618873752962558479943388676315088744162974042373581587591241836813927353320625765982802080253877164286508124525520135813367069444905890249118104465469047099068259580559929056369582082535481808152250753479323984110043719592762762998086344987356027597188646186571085380831076680645199216696688482115678826595638482277288157703755720795148663828857378150819551248527071779657097121457974259093138193851038644598533963599010994895264306398176907998325981928792412929432515937730341316418060749789913127578535529067510249044433017601034800422290917708552619926809639985574642715126510927639001183698464967929519119300132948561622343420463417646146910081603218443675452047383722177751540326408033481515586294500624247485976782332679866527033170016413630565135928894294709136255438688379476200686294576037349495722529761364122130170129369794643377015453122067901948963890707743344876856006398433081374938707731954786936745878443581564896364076577338519614847368872458980823965263724764936885918622399592016259327360663772777766892635255687255797868292363783039502392807189399140068200108826626822867623093219452162150561285906010251592219912480920580408971912995841340342349248153366718452397476422117293662735660058897234372094952560975225136608332903927158474080804841564096873129223366178310432023594270859341832343170763780675261759110809696901972842679745877539199514147486813463227360251153856821570534820627757738085889240736780998180976680634747132961298633699860044883062960328122006205201784018787325658087017324677491897599762439510420940136012969704620386536804185339370619096136382377798464039065719056185773171066005033446431230778149661672795590690340932762262290028933165696513506955800048470343985024526863969628647714687240583928748185093404366779413938345656524616395362662678401730888052664575024539614173631674594980127678187315581855127876144757276257184925618094352503559104359229616992796847376222362943944431109109577906909264437136422108893135151327458535433007164716231279017060689274856517155278937066150861299563923807250389701901340335563107459634228288985206988560287530055159604271923505281447147295330121597099785858356377574190222021714598130706836415565351037904175491948563829229013478058171608988061811537887410807426506396266233512956716973448768362608370433957037971218199845059036075600105131257535939511749384820122818338425486289061870563271674584770787251780393198741794345886616378224574100601181271087622490422373044961078841822106423986077217106507504657062926947317261022439139040387476565235265621018660460220266985609195593990438989401701432000821929075151783362023863251260863863083001029239449304714877481188504646088250125396398916066263645335276603797604557882563758899946076456240539320389456037104527826707671352213531577232003503458628302054153813483660536205599328419655049486877805182963612678698337351057077995596261144296942525994883616797630847802096970386305961200782419002888503132150010375175007836479996989132297534368810105171050243722345490428408010869968633162535001438558267460326358890181239604819308640248168960875705322328968237068665406722390566402028355831737327630206460176978574944002250453093336293538043284104423029963773069239951043073088352749158335677291751184511574263286356714406736914898568377439964971748167986474740547985241868705560245866338731680999050976480505590761963759215084600305043169696551852313311572906787294080605325209954100020242005005162518964456045072445685318092702309971293637906978572733601486460341669738360436691073202466635564601078726809153317685663954452983656115635057785637702447371747745374161728282834459884758391942937631673742057051034232022026667537626700085160571846187947671871312207278511288335662191166281490759634218502392504678377048713618290999734074098341607698362034571323896170494198896762993648043651375108835595936014734575046835715885621188699865756819841426841367883472256153871367746252793877387429149500744799840282314199229579284154242610216364033740782863704826777265403245795289640459973950107585914203009871378290047183476434695956886138048701016756762697282543274394538103352469440122093287697216825861339205210217140649214786296293382128699474163101778264768193625513955246436833402965222733045486276789554873822891752008700080686817911130713319277010269773174211801403896171046474728470666459750404269520176432905881402324822919687696744416893076479386030013479095138646861325111241049404453586480980566125272753076169542529154765563544945208753052054294795258170070949183486861448817459344526664461136713575347124424355428223608145026401868540886363094807779960480722641599763134281365404047081367220229019845841086988641133022746878713273355004443347724984376404510976390345030364237358516422279209236834853469825856768150347753565888335946013603178575204644107398111415756944058375805012603381489204889647318256847357712158329942740907188060629433648154892784071710476784249902013830657905588459068502022779728005087082771609976648916211959703733829064234238235707655623226702480577115292012123746304252945392385561526700545090611975854286475653804326123241982098357149545529611098811231797849425469844279233957519706354815985631476154087468552027372055971482747715065707777086176696028800448523973669479581192517165060599258692096815075866910099553565271049119154015188833751526877903491668008027809759484433111311056691785532794848588404979577872006164817818627116471982561785662371401040584767571166583642182927202383639195653378868878989537541592563284325908740927960868901658717545399054498319526075415952446379393328575203826950143179065994890164012443989132758567554619696926381356032421872169751102561296658757248576124014615296747651805374237611851932187883680082050292767697673099030269302146671482300985670963114384992954439879148557821664678440950325936905310694072692615674494932498946484963122748872680938704964470861754479151085282324400244184631006054284089159913017811272634095424517582617360573069168860699839591384815505931697110582059422905149815373597405646891805766939797795773693220962531070415547493470272489632215608962756823065897309402764291773757394541918590465980414565941296059637407959224119354142955994733191537987677611108644562641269098871898473173029638610429363138102056715995928505028505437488897750022040546924137047235534612648720973029840971374728721992913282486005517220709626664514242703281013582059410398427095859418593573709868921972631258143462757912140210341005242145928044021817753500677965030078184944886091781013684560327014127943377365004538841739012617011389206683804457310330591168987586793181591250203568459791768489158066019386808206929715600402774057313367775672294277813120410302567055849173008958682129573069354180256874728907474849069779850979943262678200658353181287674019928919986721804641733152559236795026022669966521743105082833946806360962131817686067063131808774900878287700562255922162184141385138982966663307489882680545000710326261548366864652271833574627849331101968351106040397404311812054058964992214464917620246148763824858421435358024575345198090249295179211075973702725847081066207933576888197144012081369105877310406549119817907304591673596166646052057492256353458857036847677070129594172547373730653337799003711161654365058624593944121787880000513703412286873840898994789274938922179483375027145822457677298859291674467063812301521130746489520415366630372809898489584003921829600936553715171113350005934483587766516298262582642504841479004090424376868889037206783416398988358730071466516397345880882013482013259307901882756615015742566250738067393871308039421549365526140012005084082364415878270125374276057225219766579290913423348322934992619551403814802429554237913034049259338859844895199201847802840513149940397345407508546081696256416508352845493729194863914520823800851366958974667737156790151778154839846598344091148516232570003840641634270222310095023933011771659576620835079872379038275940739637212463081188586058148625537083922309031215964684550487404741622516424460043440550655273006868901579286302831552865470386653876100397218614696101867436986975353227587330636534230916355500819381298000464193618405749953270420839957146628126703974524582832966148055421783015754127656185560484193583179177131443300036222546056583943899215320130174150318403231350163894097002704519458773374322333573624808923658476005971703921266442501729436342990982694822967066484495301648500376459981524015954736767881748135970000915904336504950871851081290287133468320476090715106297092811052315379831350117085466929954976501863623109975902380456733463288198054985936431872224313570508171395049081997650217517034057421172488804292640745562004089607365174882817178186526301655618741928381477904293516364340798967973009760316839054181580999230381300617120105569311540877244648507401171823234849997915740427230847235410099773978503519898753109994023602638221653947347429608726396671365165567999190439279962355407799359296923318909272240894121282275324669596035427596152885671300593881579038322688794201516515584876167703816274756659893448058448984477534545667655671073249494233031151389702541053590130708514897989960667112692988579228053970288401334554123023390663938652844570374429557489915175475099958812216930856201460652531247133795081636371094936917920348740098691220208483092353903658248941412557255164223878065348913906884932700796712627209099374937943927167643892652535661415659898613433194817574642482251516671193502819384768015924987844199612588513315678650386168789569055077979207989947301138364610513138286789772482874875606618156412399500770192395013808614686483660371334466676348243295884642564379106903867774493067649863113287985305376841310258498389763281600894776751667095159971851260963868411624611531793380161780068004652486161330500361871117399376291586475926227600801406447907199084341599925017187731909072673974030708215106229954931196153113324697527831085749907959605562884682597439452328384363928220283021732803816678477629923741124537819034141855420329711999678099647138105422433024242163173628730556642581442799685975565071878830092934560581734396032843800581825938255403994833444570671410700080092199062054582482369573175838298627456644774154068872237218398904476694294145119286338776126041456837373841641021768574472992488525674093260055270861640687164690741873335232490385390484783050343271009440045257475883349422465277702037605316297193908920097770113402031705721430811529001052771422778805552561506697508408750703675261495762966456809753486984252016929470302401453211045155094579540724015567073087223635717591485396449057237739297343140410348227511591936849073522302199856682929424580715733819141889136020156287096686850009314279929633253629197487017255901038613940951331737808477028560310813266195815032378247326009749379574466836526914793687308340121333511287672836070522555947837060363483958152590842042468596974173650779807126647152563276893275139597366992592355663666300834268739868302955991493983309995877778910845507698835307999437318455098169207055902931666042535597487656095425146726708802786045967955909331832607412238462256367578738297829258201334898585506938700214011746448260814192467306273642608934651056021853833419835172678527882211039486099212882689826075981532210032301774690720429789557159015778233832408722383464168055689370599514004425276246676979967451443564870915412882491137794138237130117044117959930438566502475784370539035921067713011382164593836316821076810258165890478294251695889665822597820536867694801158810306657884764176037713233366760668846463778296127948629186739815197526091582288481208976855814281861683292515206884785308228553845165101042101276363501961151636416060893678131342754639132572052159915349649328524550245765332923178446423029435075223706469949004465561947944558965022857636675124837311892773614775796352326433026804475528331608574898543313765210530887528229900739606078243484906334738349268585170774353658396268127543238171211776152720346598322115467212065740269889098819745458345447011953755017508809734302924819362206908345908971844393393878566379210636563745940794346437835916473425676942243974310994382910703584483786608995942812448547396947523964462585463499489183013767803106559074574951204002879047951400145112824213773394111438155481445068575503506912405683323978943598491527896865418349169780423627699995710335730147184986497756282048035532868567193684188170793231635078759752546366578068220148336651789630694605636716352939775030945994420971673982605511214594509778937453997102865460158981571758466530841874945958908260001004153857341192597414269748539610669471354724428377500655534635926446079713831707592523157056163395051278608407042457564768185609513776471927591325181343991555747434463382360134178939628585436702930265882745506610122417189416397427972701729911670500776893760645304019350598903099443481524473020304472516925148578111071745481588529053931537205199889789378311222969493576298873926585524624786930287375515213136195423862201835072060745164423155580571238545736324563567389094403070336798974836361387978310001590502517513693745477753192213061186168490392327344053810844677099730476223457633824353254398368328425944450467308716460843574670071117979607183127039466345588270070037431015792023487745487089122714258118400381783095158347107363942488912987793567688863895300630675807948975949037230286649644504268114403288903222335844793815981843158948720057757189486485276206179988247607359529279521493350406537372205835771400565505274957201171231654323349178243074530093913609956389246696722873207481870366776763225312341623946309078239171917263045514671247134789141265065160022274257389504384586387281986857336433586558311760836769579499974433822021053943293452170368619163892548632250661969319064336950836044487787024171575152071996996138253051888730996900110055854295043654598614492777366524904754629588691398648880465437842008874884251745265425318432708805791765631308465393377586982487983540977240541928909984758229360575374463735170228231134149589103466070219440116825254909442362448776979337504738812946799803737885794543504843669426545884566516057208685734365132820507214119620555351660343510868051873739992306687574017754762069156547001828700961083501941418663071342082426245034561237522680805386476999096286839338119913379248566291884533854335905044588266862535513845724197095135280656070490247577273712834232861304279494024210820942686260535980520031154075451784305290535318777918303349320693100145792802876845098802087847636234754104027099318405526692770960417750676949729095906652440654557862834532686527318275341202432058772854432902596695178577067561872490683240855599485986272485382699965328519290157246353399788833431836189877510970818035387834765020640978842853981062755482794459913782615454172622442569698972639126709403300780068003909307049116124559273211918700650220545910785129499564272063810963213023131066104872830213929930940516589348103627761295367105747436896083738226925621079438374580886722464842530451173851438569420809314863685141254566062530178403927371782921756174902611033837171254912309917559502871303367354372490436999866531484662152556668575364978387587915716583768676082908955271788956092482548002772384771841420053202492838645292867404071818714668772744278236155401381532129022295520173368023720297847403162866997951415620714277617499445325439410749576299095358274875801175620819826484619274205223873286516684043892509395567508363676806256998487673820286348402030255171168434431764413178086474346499794526311316702414366463455429001818987644329967469403255155103581937821942609180931481401606141743662093302426339859294248278310563284999718898127751899538956959271441760759447665072574039090104744827906162966791531601944230647887833984202101836405150328912561014613396798129423991886625286428946459246696321246838778059433761425177007669212369409470805924683167509551095039275392997870255393005149276633556654175316030474347540565397716725765793555781079602655495186883472108294294346960605218661032215110667095493706456196814382590033272633694869922923083889855627656020627808243297294697121396964767978727591443687946339860375376866791324762526118061897005972505112557798091452860656491037047381532286413306194708595537411079522812437960999571337625641720214659015286479314475734364134201442160830326896003119850315048262356673508184736898871338879923603581163164359830535105363861528944070746250778262028626310968780405556738799775893096458485783353485836337960750145854419634644225469950060649402587902771901620791821897419958932959877157989557454383577115924023508578728787251088454927138937394178063380126324916309495443502938003207537247516767547715579169017099354799797561637649227741472841174420157940085938094583093894819090129042591567230038492830117851609954970183386917821967008222646009520569705827078841298683201014345249959350763759182161868088986986995183077186969955460683809661443069430904859154789080963278601827875063844246660911694288907255582434555716205100661692950564610575132170922921347254902407778467379446106682739394632857470859739302098068738277621466115770378247680170803376108427393847975229922497394971933455599984727611652657778528068169061458600916811323083103772677727398495316736298855521216513229462450515932397545327666165345910674807463607565418521021862582848901708015295213761913429566476882249824843097387417915716466802059270487171785280508951780200581305662699727497306181824935720217948908520651609621414415250621637083754991119581279991093811954666247400006200460603736962194625172729279882920981849228826183941405278654133393885902645038753746392636506923537237933589477196976235574181178562979950784421504918103169220022508679013928176876753025557350776294174687180683331834360083829875252114705783391535360429658434217426900051686434703725921940517524968538084728552209119735783098984879637634309058597998141721280067212990490973573662707526098571383936647471710718372115392010677222626000938512752858144315048580483945663744030152672935206867369235894420693234700141759449676895551335343129458167220421086831694829864770001104802186706467445843586019559163226999828379736868027155190742688002924743804394458592295447689859160752810270816309887084496075165889034399911725993328459441352614854779037966915713874332558087325568095343900852276443026919491844751919901743266742357020213358328855660393826847884105894175033513712610381960375474083629482237199242962646139609977583317353013485671346784312677628254279196588019931597607970720619004115792319015389910213425368880256772223742510772348506823758609200118411698075266465711183788499628836997942048341846786772832082462202623938103135928809499568039459216389665369310661445240439128772031755932653037835300948095810067660503629704846268515978671894514238418219172679754928487906970801823149889640129034751013180907255217764409193393047937475482184072723912347744939266572890588942547693591006459373284969544101555051616148517792084420079550898390915946191241106202186505923291279026032042481271269988944420784561297321368401941220421253495563131760098962070424067662079596592432848210584160075038452193566493651089244251149528070320770334967258694550181449431383156152694592886653422962189274829708288205025565766972971230858135068231700854092195453059976855284383180409249107996552236943529952125324118400515598089616415768036719960671226859804748351029489349698960255600856781625430205208936798236423701750923883661461434435730240216922103609673618506956101789789005882712870233648750346714249801101075793434222272625428574546613589655283612821250219665215284044855078043691866236345226938694935153520318740880962001973760139276238003209328244761221716531039441209457771773798507464681649278942297514087918881318089005067589455348608401982255230535212633323670980493231353480841992982621991748600284829707786519588358145209945655950680329429267770505111526640876725321740377210112663467857022540041785057524130160176911338642437663532433614314360290499575370278194760593135029258050034352039078242101249929981057618362646386639404562699965244331348334856227391972466015488949100590812138756588439136417943426375076550261161025482616546505517656393828715248687489541813921550768524828856409478787268198776096750919551878117036014261183271135111371650134017496071476311884833986127442737642716425773149540360093504154762573333827029893605637017638951542278118961230783586118239679661068659214667997450704011157527466332640653510900120063600308130254624872650374719757368161120381884942612600198154334571413860066207879027661752183054300347864153539218791074951008580116468950666057215958373772947205856470701884083324506417209656979922755912551221292821196270679009098542512037222111028331718300075689070774141523525667625162665131659303216930314130505468670556114254457689367998766632328140082097566403144960817214682707064898397789156463305908627392163486048077986989787415211331625605378893545603188648168724538124932755284267434298072457105287224029804561238663812128427881132704947055089094355474659645835728128998490925456279841665298307363295320399698013666953390061328310763628474642241385989143155159550490455083991046507877271540470864979778845003372271286345691562275017312567063731229569349177233301332520842518036349666972068495061858618035636846568523441673871149161082002280211868291847531376136872627151037226028608743898728121257071112838005295940059976918331309362877883668291346740997826239598752027778208885144680753117037241266485051697352657866637568283497572322660428667799727938920170148631989211774437725855897690119209179424792166956640383358648249755232895279703445968383909205148942148079425175865339580335753343284379673727862053903623349787587567406657307152566958371724037475723442235497126913223106939090320027758705815175235119613801532774531620401636362015390229881612400246865874758023139638010360512459370963522159273324909264090838981322640622156357320662630345004223328969330245756701025521020178520855322912093506811643126799924279136645126977956024274065796324702679893890148349085891924090302343256713668316308145624712152752292757405891421357033807355609125540923009548049184245037430456238640432764577449454614297165974466975773383304262184641093983684001851183561765855857889785605545260747442174123665427058078929060664660280691212149966886242101078064148302543975912953411842723941001036458230902166694001463970350326233123813192181000165222904712451821030496346619906226442338748322576576832876383430329791835780734982734681106297500113943285775236024684739175476771979656252399709513304783186005865861477093363700064783671595881494249281826001297453229095372039521969447961447991691842658863241720173616778755921773657249471048788577235745335436046016472710094697175121101472246875051130042932204906065779301378255127284530240816607794447494162464799221020779045266605932968884377558769691577234891769789038358483406325311346498141091223826284979004362186224762417433871096803586151646256770871330356749693443495154755891556982333364576606585722430951079148320869434646321363267219733849284622151647267622529436184502469448586560856392999737262446097049923811348853253518476418056804523472549077553873781895315908907886311627563545159342858961193601565246720335805824822602314156477949803982831748634770936344846542295779704759851747356414378977532549742581328847365221476816002986073048176929787173631182596507558734920753503790970173915702435821676239402463476780981666167632574288307762578475497099043837412104957121547988610277976668999751531052662183085487393705789429581006065616067730381855889539431697419060460053832218296843530494799256068184315108392660856811728994519902042632857066393924473279252962307572881728529962849915022802750802983524466457603170691888115037522395221617021845620421104346811841025777918040156952867560622358091492736026528778281822551102658088795829320166082854801035527689106819441292506150017750440694688166434020612677428889947508307413352533658559128454758837715487226115698931983388711076930581518051630089077148794756956315451145846746363969175638745526501522880471136967147577601239451709496394323260660729185530761896818202898600955952420750276893143492485398583005384278335805111657387974063957694718710784636151693377981653444519221451080458219762682909924423059267851078703760039245451453935561639712098187860646675845623605592203868906002352193874282684627473370774006272780132637480543231624610420774411183027840690270524854837663138331332686330311708830544333416300297559774119726712602718270945269751723418385434786705195220226318662714493818129683825542691484142130584136094537511150243421827503132386076010738333280913172608577924301236333001155064003899590043944093350466793623210711687949913779209503451462557895870420020317782522485204271793877412265003313120963643371116634196069663623442547377417787977880588966576150001089865040353094675152770034798295565425448599724021740360872020538537487068023282323926521358230327303472302420931721534860851394793573911955240730213202372804329596253771231171119890135287383779575974037429818595133143461657567755867798991313918411254666834211871196460425065017185949257481994548741021438758605034302187147124781166534295089917404632399433300751668258057777260883225564802705092115190143896672776126984072670340835441854377217024825662132678968840409027310062227776476999311357176493545730189252108311721150830007778146871932724971560895922325489749143658422354706163522338874172695786389800277645697225480391025723565297283315749379960371863687977109620339114790935437205278512508640963816100795373427978225515166541804900083454736059277121774367939156551044611669187138302135521197417073937846282527273070111371279277153641885622637257943966949385866432061785005929543020584766837661211888002458435652979086359089154081555781372368975054136077203052037023182510530001955686722828880174576023909817902726952752074727386949288511795596680028513050187114608545583476573355383074127345192242921625478213539071596756260776759248813397622331448887770453044670237834466124155018455395131827430185013751110561312494137449153111975230291964670815829193700829780937685513221563122331916787338081760582145108198215273551531018061162217391052365693672272528195603342628733825587596180084631587600572311096061415086425479552023735560009419369403910429517273644393073077454057282017017787512601316886029693679028911024650456766596544866680503004729099533347619932567505716740382763578775010750207451612111864566894947411303632522179261448667269261892735390633934399378930880468396783713379215914464395047551388502330233770333192972514311657307027648254767156825869158935136660419030739538145046014179424420759654691241299153232996757213585838557048526182663229208834618729342734580553204665521038770773675754761201289589221641253918022165599008271136901570509901118335502085614653008014380480674419570335732510552126899681458805665577942668554207103235577382379110134039169427874739826799080762176336081025987644019089482614127387988439224900990246376345767899484423994581177201272266634556307621936545791785991783356454684446628288535321330942167299438208154715719625437164991644078668199200571609078351110208757805763316961499913918385696497951236162413130047691993379395461309837438703103399311369625009124281697217853031423798869048476340796440099741127474527729040451803022909387234357520319594168871325851493850502934939895775926178675286803676856635990049637492339742071732046650680132998424767339495898315181276222328241532151850676670400445646211009544768111693081328102151481567781997986787439604654720871124839820724255381052353076785086004155633369891859374420725602277000300377535427717937330493297608463187364004153392405932439526789983492960321669814462305114035972702555480863725430167887577180808972090314011512597068443635167973736747631149414732322305026014472675723920522675154632777931299160820814886950953215524172472838982004750822675553764887945464105490786094050739647113722478199636114255859634193678104572135899497571565614747316423028756593565799297523780387415931046078888517733454016058892999582653756393082997257414500870444856741113702687975920550186135886909213639607520736211334116820092379885404483755383207935440029095572507401250634379090824313751744313021792357903834272356342736798306261152286329727277379419282013180385879021116456335791231325140814945154082554495921824088096434864055695540405620995022840226938798616097699273190597499543350463838800213213921849835710766225696538886598084345807112939763192434211854402270255592464618577758976642708107200288377755438823363715906718790021673304932606201787876940196673254800474985313653399388520028673707475797076443541720063146381693084995408134714928235629039711752372655327465915587992760402425840754884203998884501804455186777073948166243693173896223279199214723892434013310932769238680824514349112746991525064523780105380856321017809113858030139987696338730449195034057937371453779610958125484802232664139932120145450605878788775022009176924463005435289432650902159978903163705887197276172195265138836357264393578062727595031664329420430758358065121315663803384578938437257129920833742441319542539533174681273081928564298451271929512957073354480953597902152383685288090946740763299683022888128657422619114698393914704052700711685858473182271563289652782280224808127361468324016787315325113321516852333758575519468472127361878559611852700604843153118981836103367575260056504042582733715446864502536605921616259112623743488886273296631606223386861881035408602910197078928729227932743097561149787710180582389051960337212910857686219255262887538616807128833605920197834400482849144123628011338615206516408891816657646403261174416686849493311211333686466243840329086689513642325235226654666478375964975913391635442113676823263559325303253624076564123516904274853164222683645849249872812163548351010877012687405924999272857009994754658046823793479350727440849182811317083120561632009088003650687037760502531353950339825735901955064366535483372792766590978438008284395966960786333090079242710808480534135761249653214770579518735165541258950505133424847211952794117985092554877017886304888866343500521367064083681964792675626900275003080780663063407758568171798714880341999551125842728632264421751269566550080344198556419129949981106273657837395636612379868233429700645231456752805761796503572826352363701075865127918672976274359692303631399509854046358806345798393869485058253179409163040588657321907293655704683531143351960463433629890961014204264209873551784778166786681780592107697070094947501851571195809000180841287265040294315645115928308787139177057829907125662379071566827802733428376926418210761463228325967365242745293786113892233811751288717919899844433378100546592856015007424290671925032366840583826574539231831964957649765165460557266263132479827719815393018195238504349138914742697894493633379396979295094328711027414126908345056137796801621185048549812918643284095638061297959103082730932671456273130562059328575207085868284130501684542393784657198136092830981654654780568645214114972155522384265473262618343100234671895862387509511074558426196935435471568966479205477397985878272093077954016225737871633356109536168034086119129390352290475216581394046609649530479852766059377172915296391529476303504884858740241670193274501176202928724338526862802881664203474739642672618357169665410194899602645593933555864557867508939700596336605259369583980654229468468509751647411616435843460692488442412021320532526224148133447387357094289048988693796553114467789962642714827653131097774158697055207266148865762851611863275998459075062836338279380713415043832510537015157225204165843606516163510250660503584921149054157391630912688119293236509851353625197164184075324915183852234429214985947600501425432194285830918997523829008560979319968567112431855019961106517255726552237360156530582796675103061962374671078634277696572527671180957322394258097731165897426497217104133307459576117676711632448342948738371322094207595000717949466139029761262315010132665950854174876050040244666141058838262488116350347488693218015703391232242787159453615261934998436808346560433798189465126514509149645281392492403392598055882063188507598151641713474368282318501660348610406171939591400389650056852591238304108373835702206830867986256480829224379937388867497324585988796772675686690141903316790193925731103460971910831111781936648655253856372777531284563062913603788852632350648242259180831767384357230212333319974351087063566554432359765055143732157089904873346255624128129236760116225718452405935023283998378572730679646441304951814416191204702196048463003849608249995971372427352424336819389732666593573450876889572054015279337985934722452014545188310096816147681361752663046635867891877124848640989227439969622899448584208870850868360578274589887635160899575031693833049949138649246303024242636971234110500239221944717043892031381851988707304048829943332844153682598580303432773177313922140242405790759651990827325669678920709843508346526550992341277406739945728327162043380624167675515021956141557211183789284022670796327770066661245596068628471603469904856411176721225937427046472318007582246779908833982317004198701225905328600617798396811045780578770564487592065696380159653601616876343954369547961768619692411509679056125657635693123574024813228784774927362340677586421616865777711663871445940643511602433074210756351684981113321139962475195612093374666774797801748233182672056313029075285599666557378923884822509153089132170623664413490118046293642491840518429125071260236432697963771473595769844310009253941724249377517564106756026134105161083297273230264524910369819607784565263760105912545315604672915442931907944474395440599770136023107254806291118095996702219051268021837609976344586970099846017108186078682411120449446173540479734841832485458387971089233915803887865537246944219220863692721197850990115133075515891311856803498026678243411193647603846405695664827499938351642353320425672079060255335158690669964645182913332961149896815145701989778955909979400797161793213896430765764645034748946798512565585125060330036365405252222028592359458390108260002187265035356735304117517103590041286167364365803194774064359384677325862989109794020325684894648003277373852558142857236413735955602445270433656338029575039241456945597849518107079867514028532900420270468141134473919245259019066018437457511020329934630508527939640246016246362998357975796313371710877739771164125531748364581160279002975330284225741037876526952980626973780366233315186583567305377545756791865419676838394062442261089382169915049592584473255158342005037038807481592209814251715355558138899306453606101904689890643336224720699785187116951914870527171333563758281631233286191310016673998490044949491207607472000612887223568521084829856454923362591509217606663508390684821835381085611553798930262341332025346975033446042413814572641843481581711644760103174624346690705574585058440540077450116119285210779096929042699063742789070151976356325299607671129240673881381899393549842891994741654586366818249672346137369631576362664994167575860534107692872564095431029370480607300337779132325450821881873608755516549869522210829377367075456202089716930730713316752605770499065812724855396859902406834929512246319140264275092911557038934088930292967013725092026096174488099709586939746603024345717618933905490988862180205896147329198585864305216768417501364695143875161121250151902135698741049322892349030903291296000564899031698601264912145491981601984728109527078482271727901245425612045825527433416410786737216596335401390312392401747843735572124891415808356780279799314634430320031871349083213732799762890764947415311281152131964421127568486416481611145893964805528991556151898826327957842913792049309407563786188124325096568389633314412500110602473805074320807754396641622666283288273008894474193872430792679845349879420366380572801286704496476359798056782131715569868929414811413314695687891247251504035711349852380474124637338896223620301142438393855377995274736982015999255621297120190268371235599894116740898638709724557143372390623945111199024730625885496274042841868195559276925140507391602426603358027663293363143189121070894042949354214964201638656108196936071178500095665214940407276338657903338270974572749766542156751277966697708692552506917496918868915494805488190533029116237804931721924729340756441040326477493270364998398055863756024283153639994266698935697810746343856140145446587681150576014417675111606091691449872529534123379260531149438504036220845848638982272193424562032013617637336784908394447288648686528552279169759252623878378307650023302614486660165863763035241086929102708185758847532501915624603271425193359714726394087725596948865442760895732661437410344016693144358115959350119663771944361782495943848501203253812723923397983461243021733134124790781181780878114875352472410292591070240662108054145585430237056952376905360981059200663086851129346154315990111492994359719025119591067613234571753675724135388429011528289747229445874046939637419056738959453745023717929846354866033285986515909998222477086798629096771106815509484952598415688116227017953472454192999565650844908587864110200567146719961947125959700227901104746042863273521103985896675299385049218462370418415850470926889670559942958387696118813492753015100690106139074144268589485763617086493517493693048979104130903216805119136233959714577909781651156043629384157631449827981805625033811429953160028675300986085079319136850179495877674946745811193966170772493255843515780730890549896349563589467218994672008066574786877438622125771358105068666209199507329155503045963875755155769794280822304562781865255063455948351163412055615648414430390011557961082216716486524071134082530220648184565255444179917467473147234308076912646196177763729118040671491701257941614087977962929419695705852586990240216147708245513506619427111217141140881221131394547360663751684811190533589692528985218919376683779243034347591996354423546888745970193453232307066640504069450803353344056257253431533531474094082871309417260093354359831737551366147685972613105286337020357740739325695786919355391832410939792813383875603237250535697474487660879541056954105056766915217641129749377438620384293893335416756724358265580244805739631297477727440111980803916386793235249031439228495451678679157652443923654729525069290202083896022929126051352672476782673746646233435749976780268915947033978079620545875069337032289140304858396528980692145966028582557966206167186733576289246725203274368031985512601013749404315416763986712727374543671736493058231148671706045791509665877638719873542970179942604338273619804211078973630560984009741828223450268609474844142158848873976247995340591912734336378190738793824597666186706945507368624864924353746505596049051497347053199345323737270559794643971904934749503693793026420784013740654957712377898459020136238320780422732945375151294892659513169558130941541947232502737890080307244453885026886503990828245250087017652445284422289369773444877024312033471096783983605504811983425679676826260530088108133243894918113871433565300964701678432035134249155102346862075475044085587318716154831853340499805997610568161619601724085243274019494295321091028218807339455259845527886362914232135888717691533613971452831527330013554936048073833574738241460622844375656944142827007753475910289207678554525707031916522667942985795064546540570936067496636248598724029488824883483959126855775637700736883875239631440017352113996922438631380878579131644809700904110925063408362292408358342361238799031453681092729863513588040362700288620575019036359604340145159134991060614101206160859731978931604041328728121667453731872432414578447867024085160020070127547379375982231956540026882721931500278782226205332381026513506222673413878733571430148628453336835936591576025399458822042992209905791660484213453879488245613075542007456923191768763848245424181339996434855814369413819512450121017345959873094529459197938681467094176546791993253370796394151730176784213489603790200692981344357504513640762086562334840751292260713852083550294440814599016932658780839212395515696548567065595367893706259333825950283657650354981974336854417234986231641617665249654160419026470257343515967888098293791483950478077550695566862890925063155591025364659853667757438939570181058694432425305013979874277286740754295367997430416416508597821307439386773397242925039257053144118379280135525905776364602085366326517218065968869566178801814723955902459449250619752676471413549477044693180263038936179998271091230931976298097977965420121342933155423580379796728960413703947607228017331293940634758902411900302916348681067194376673897130909902454823232329964054651373036308333817987255908782257430499576574495407656161105833586486148675088957873286940990937337899386045653917973507147551769581453171949377820578259928693097872617510115581469091405922781186815629175405494032972407777261501900317213886947508663013503015930672079974941332516676298025343840370126430376765447586560302707556436163790391876286567679124896253626733237777389901277828452094322892513212272075156727303494213166520003421526008509689336575880372480227982641928499131718907893242632499756559207425017477319299131443448927950334248853702993206886957126688832396431639369217896939442493857454086562636951448694836748163720466382057933827015867471258730162578927293319658657038208989344051429578314855526886339887562241152330074065573169772201735299045218802044894411559819661140852057966154169306964009421471115565992936114079063651525415432723312140499074865431286260852201214839061928752831973835218214093932438337832083698956081630831786830012130885136807091047876528178173634445081586537154082456914241833921927747255111562941761171361684469229078181854217316284862205640932561201399513376139758199853751942398881361655030285091622708086653715084168007190771166344747302081542964980107590503936860561963181579801571633794499313647977433519746542169372189362242718568282982166982896243794209202164607934723899025321356230385007797134770401878965202245309348463122995339472586562047702981275048683775750795054499497959316973198807867801341727200649366720902014252536682876473305115249257523228241554035817027404073499865957456522122182944820375850358253353435985237639582095348189456811248876604492164912637028340144467012699975730125014900255247082088666887078587350962727279231808413563973651116558907640339783710779004652427234449508927685702160260716798421458967153605755536581869709060013728084622603542109627719860077959705541338790011556359581315875783986093011531811630040610547670523366601604459176476663177814372342525660518137021994498125055391823744568130018299609228841003681614642101944042618420662342440469835612540108840733650560365380246935192650497034197033734243406743917963313681234383903048276652487253205095347947016009445839055170185828413436125491832937732625129437891279620045302306045786571078132605501274434883440273826914377867915463054248059355861446417648793580077734859189061846441300366679073841101062168892378300567276956011493233990021538011248972303139265596667418394564933137388720856958256177965468130159215650407039412780488933771400573223597237568743685531897639509272917812557772978896202457157842439157518659647549199770702666372958058175100311399306177985034969021532202384050852852782268528924065383637663471341114786539303237961030754664499682163849778082301263981604210126912520029702866003095474999617274966439840616267826284774833708709716839600984717736689293972352640865532476947419340817817337140989881521605403489863388349295542969643430465379442970178770950317184592947569514576193843661303306917426482714602537858040833953061543256278315665206573877063431882291034881495000910396803913898615659680071564638804633358684042962983750799338531454779074754166891807094405530386073150276271248055027861433675053708711558470428657141035043681698255497430720258180681231797762758161590560099191202724112981393512986392857267141154514899049495132759804335651588881306084952876264248029409906537370383861138933325326150855634214166008189309261860403958414146311478531562806280705520387937877233261632735167836657326951685593661323997974654583316950452464269165626686773607677041849332110735747774522503708442100975045237526109080849188484441004992632552103692922025912583200073096406383598799066147589733513422964397108873952573615001347020852508767846033370680146614053480641096349365866397460870015204917811507449832197414220505407804205628555910777063806000469466091087899033396711168937120780628561044461974049971782342338781029163807435898849743442079559762768166373068133720571271845863535119154502665588995612263216601095526139919992226919325382670089815523939467634507838360020045442436373515482083758060603774734013743948199329549822907208041445706831680707909459060134953131811348667219897385431989380211860703923601553874391393318902088634763764305958713231681545717146220214525482002980188924933014316430574221689699946178881614480671024960118148351800913685353864797279509436908396308166968355854401030652743085449691961723487726684007952431765303173851010265492395537056806763872475454769577505384437184894155459997654287756999662379336214587969040502020961776628162072163618590139208787598765434023631852835985519151612950735748839225381011844452631066553660781551490693782091718564118118483079540797668713406292469459175445940745679773951698069111801595742874485776618549080210469096531263233682677439298234508512560561986131125493745677927419760505645341071798721822089379008394554499866801963733323078053064778439335013955450680013562202541228717617382899830518553760933581584586143471091155568086476058178810957013437139722054945832370570866094698551037058285978398146628838005222214027316708708949701015603545293488678241470926541282646758599338593594533841400646221041997672275586881135567626885671837127781873253776102440086416012587059763913494632142146788162779318183122799301142092595597482568440511285325310146957684924742649430652019146808632002679217692147243836455417537624209576528419295441067029877059964269004550664131789680026917446559784013387703905956733764071135048110808283192260630801681371586251703448553682334155084405780562400280131972303566750601455839923309165294617180442515085188739408230413638457682100779655850716064432579277365871102021325936894480520234626101462522519372571719598187115045968674993468946997273680255480956957981125732784254911453634263014915614264035006040695933522063868280743957599849545562381886222776979906012574132517471203576758439293940813069823760823447935857021724378557671602614456456553022669738062740860762128004445715663164433615255996952500304549699450176924461682813723674164303605465397871786857747197746811051397140149565859442975535219057468997813190904045407291627775181859886225695988741938980558521980823628854220179765202288679502872128393091885895469834703102452912575142104636107622118812662661209726802413698356337181456265712036765792373714463771076644687935999011601316710134877613711046171465196395905658683747142459802735910923698571360518150146240071220045892676635665403265796748209233698258834571444945462662770705211477644229972028786903395371246968481604157397910899416354403468471830096553152583601722028115296587268007204816996597545382385206693768912238191978290635165777233174328842175857195028441010695285486003474485836427977210951743943703348722214885811048258253083796858703230220851445844775880033908316515732865505566721698620475006821834188838596117937778543939990635478279821699973485569490403689019994300857136268494964690045129989118671663056721539252537548687696839959478287113394966548543115087187020458251849954725705165829801165838307028376981142384173351578071243709571443603653023261218569189053436457322338689163995719321332143183483639312268372167022155271505906624506540524561430634062466537244093543225718110642318887850028206786212414066327294856432082887185653832644495329312402850749493248242635010858449420716547439004136047300174346507443985264569421944294614135272039486235625298865910105543387476647296886211328717331872593057979922165275566008935267561286086236886251305933438316800705669003382225222530921128901990805581216007576971765729407290824732140064222678160166875334003795199192873473878053200071631816992552829010527898080393266477202849829846408238992917830793507638122863146853529211841834853219628180500362318310857383062069071509859831375335881228404813509466274155381594137589331920079427100889593437163439859229261518246886098932927823183600286147225884292612059468947323920708706011516653764364788267365828044258542725528807462924432060522944556667576643727358284849228603256590148189474385312955384232647051590334265033804668660208200097975954627975115266172700793057900463660527012299553659837416331526218600939961987537582072966517943647043956995827214115555506114351071830440934346794517914836252875542590685576878879036644831551535285089726935185703985552520227216280101367849050905244842068670935530112757343485916059973922400824594264456423852535092585486209989621350849289603428677425302739089737478810214242333833459771953339840956270251925913732052160391031351767587617981532896975485448526791683883215804541658567370335267755497682392660214708344969625009224497244942136575604511554745640414519293553229562660104199490257266130439615000794753234613132397732008121061757927002468015126120884026823179467663032301434912531676447934721321580974771116029413959346204563327562010355220531738328934284559552488170513148533797426536115327715577750332440296775046506670513571457081977812737337111744704830775155769197009554054444013872838466824519614635421600223616852705758665489104610372009698484174071752603282506060408328832215220932371517338425111182539561025959976003190442710740770524334606097899900224742158401743949914817998046535021245753292312151889357449128426785306081824727448814063686369376176925119598454102020805435840911930248758367731998044946782469080708606566807474271487913915072136987073267344586048398251758715541274823611516348151286046134394582641940579653325755466385041884449636420124569727853343656604841612881674713837258893327850769661574401214455212116163482889306430652766202764364588686524655075402173256765430857687639351905502924313707479009705695675089154032660702456266595028385017062864618279988463950676852270749385965814321856857439305050613921503633687957634231991300054490687974602219631283487566962504761776609544330832080770186320605351417590674951668159721326810597586550804468544376694841759396119099523079586345250963668167247253501916632956188554843768814776207645381915384137916574147724666058205163476097457326410630846806553694720349839131770655421983680798371881048143995831489781983029762351960852532960380044445944300163942074741524008238803342865148120224681493351672488197552409903489215679523116851629538448542410292279600712878085978672218380888499964787978745716805152331195271055408276159189175561047063514791287622722287390706972733228485822860800664988458543969805025578951985510508788565771699550894725576994735528539701141718904746348538924446865023840479134200971113719845496487983644797060280075083612918941018732529680027923518407284418619990727777076312394700232011751219564166184018981084695541656584487725055294230972995328341390882137463448162267982511606103347454704347990819939238335252853742933518214749566379201328096263494277397160898924051776232888054920583546260761034865760946946918155087746246620989415663751218601336412933073846702388220978173762444692876407368706704951439016363063389972345685041842406309706193798481664168262748949161081007662538031910738201686807409437288170919810548830119742617485862080752105816675135244357253477179853674794206608676867488737076193082336640457531956038146213777170619530796913647080811953542521756729636601172948356761928084940076137748157260870308803276237408470928605064917245733443234843505080510447734251673709792783013495499002722150300688591302027084397004833170094919543898542024491890934799678878912517964403851130145863758851629126880664309282751171344762046349037919371706332626937322242558280696940107162854758013115302575705185439746095279790917590152960117899704509631558004308400212362804559390772012988918473778518675988425461797252014730250925155310488736983460246908392437052703547466258016649780430228376486329477955568666203640578582530029192956937413985178692192450387462890909160202527991599167917915460063559761724666436281348073459348204327664938971399931483734529574375455826859443818786789872752896500206180685267921584196842868212693008790824798231199226732419095905948601739056723435697722424375367628746243043943616839158971371092703068699547072624350138699242043760788805852665504623655575652108945470730548698417039530968088740890333329904390292569139617678089849767156714592546865574768661663927266415394677648378655420618635589950710335800289751870421038738890960711545239072444007640636420626963619373266840649880184404145014581599578217858783300222955660760835696562943613911717786573402374851667196912067831641116688896559450321243465272241022897133022177129760046799534129121179564509027366801582172330418968154492977795326790048617470600252867622722658770901218218617725290956104503978717896192210984748739161744096690544937471178733729577782960933229230633399286689676076105200081240914102991591565227746724349015377247487352099962752512398567945579216136171451638596491379845508977384514655262357784520768757168208845010287699197136015511261727814489186889562391259384786651531777679792343653800350646481054421954514503010149064378699186933842168830346161119309873352950011994249718145653684418764391989320963781906077756499913068082966445737703187975813694050486644608004174360618746566463237667472967100870749887904785187295738979527552379373182246067213211215353698034060662361897405984313926983092502374847270834920043965829388677952594758780520098409695108875006003211497914429264328839116587083155488264760322090979389185163608774825781865647493541884490590095169760155563446680454633271328571823426977954656714213422251460603471631888537761053333897256340539155476944733961897724295802535774541157002624324426808146391611477172021428209934704529332600569793494417686859987938988003792495274208862547363818819030362894884024225825683924843932900994126432605013150191204821021400153939034083726245252845889062103579948033129601391625989129687199198894520841734585610549922662928577236336898628273388614073769949312918791796613362863909487665560968911427768485714780466372976044785841984562436157144292480807590403576825144911831259599650968337498012307041695390597457866410543614010697828952758112808986766542259206466145288772517905654918822934205547437247159160576120799132448245390278055982418684945148299313399283891213107181149764600052966207495923056576490241547467309967669202676820014830453648027016077987652106568954981347379053076284648967542363089731857828967683322956554016676473923266887523063368959198262770802489773197853702319934275058510919911288232543052025935669997310219671118313609200734111366329629799832692554261543565378611585101947037747488328418464370952567454030789896105372453285032543007675557359786548261949185428354410946021577964559311905130966614262096648299279993501300275174649994413531245136695710978623234772884900541414406114618699605723982399594040919897632959825199575540228735106802439118810232585300462936171127267181556848447555828705608663450684827173783502423477753778181952107067135182296053312722053178472719581926684021845975236462349981430900976701082355270544216596823706043089213449470269831407496332040641165422567389035197209226930111175209369636748443613703718131950270618880018919685932278660596565522946132629994781763470590694259804726122080029034998567174554926106020544545379085179993254553932225609948174003642039275267501268686904617837335831744993230090761388627434694900066696617647331453022675982865605299084496329343090369376395229909943623274288637299406306238261989486760573792669550450002346537908956013094957097373566967405399059643753927783964687112574166649491602208623226864343454024761004259702954585143681347689943659953959363383499412427107013480954907719403626221896893699339624807962462097403305962681444716441307570259325346044659169168689083628199812998440187426368044870129808622525492852543403325618407959870855971569792213301724088297238236938244190451191036331084209512223165510295522046166948866693169426432424360982021332221200570705095423460840531041304026571880067905930165063287911714441271892200518664281469853563064399656535886337856159276583924142414005897977831675006978810307280938624325942279870363130747708421832632468244183588761253164152891671871619829372615184407834300044719223066392157008946819373609403841164524002599823203110205701994142476560093413808377526912124315562316150685954625261889393628383319081036772740676212008548480522030250660313160553086018157565616238975370031724551327675681700098045995193735537537865424732016002413326878387219644867507812761221582266324401635459366635456138030365264375293719824426945701158917102169402221176128404385262332114317534193619636900800856991098868638523426955592304045275512268913354051633082378290175531290590706968221905056388118896771614287251833729361111934463522501574886513572876093981611834634884009987397762228374203201821416319871711782485726798548769888593524025376430611876396477124286864150917515543069598105656684592309554718769537150303901495064212547121079306452218827939169003171891124318831848033440295083843127501174999303207397422015800551071206269415695926166928323504012806199321029158948579209926544454703578430313198279802283197396036456255035906655404261550413544519767733584022043411029055804495727831904518218944036076845646049558459582082775947354839915828457866183033651501744794003725986801493988379046604301610890676659196621347124545451100984710154004212716105893537375564136204633376575281544933790283751924712410678018019604180172219088013831776293593405357400699288518238332390969743900804462268861007010773756765035374981094244537764633720804332542202739375165865063872830285891467910338780721277370611302195163468009639153215652733138817194245866417450475073828138323911883364314264619943351737177948604266811712560555340451241151002524047854824695741743670484287493736883775845288968629807379771003521865922142844035108187461050362336218758945494988218799321583433153414815543603614763102213482647013549431247580664421587104349916287870196219423461472086387952769778705411187580508455943289963156185821015462745109045038202503454770428774208600371779662549214555334752603931319118632803386735989346934509972491264224795105669727268324299053669440209754772759407632131777901978453403625203047137743429099758519469741847336200718022688353687983801996947781935593076563938013422652935535336746260210291525052711450722267110744176322534274299918683127038644464254084726613804567004349650420163918108187773204038033613234686310323864318888542614897709408495013370710755010037774571722282698126136006794701168005098884926788770585005682061023757348441275130277322083781684008055553172713893772184026060930727068754585929342204558829988714935237001040217100594882573561297272891609630352723963890443861115346539812275741466468301471980324036731355678371142627278631326439838435220987630871614305674600295507346127748123588809878378489148159153473049823769174197693970874603110168147193723030796564526826213025182845854797879946561159456775969663659394684626784116071381292092458638934326331804076114699463688942502355645923624057404019840349854732590846519078674362902773385760545652782757020636205498348426056947294216194393136260548260369164423428048350595176903373272112719839510900105971342048898807697197257439629633896014539447200967055124775770438905785681967143008800812575584584162175207409949738152020535247366164710325541136173002185948029189995178875245363981519267691520351390100326924865761697267124326254166658594080660647225752947264009705965027016094184875470659891532555369905065653084061524980706983328404983051711405066690375957369669681159831328192300815240106204871890675692018075148870766386199890885430122654196139389966541541260145463764745308497821773989954331715821277589665869048306463565695691301145717409663857924997115257985145219474908358983913594866794857217971432882014111770878007560741846757534604671753407167708367578613665688670394207385464980240576950927236655752617742686679691821982273490369933247836250013948910107879143753866225247638865091078073734774738868225144042112103433345207773454071426198652949352350744462985193184775960700380199696605639126231118127100154642252190785677095343991763688731265012295830473855509877539018472276300133889253753390316624643571583547617612466969376157813452566896411084653003744536131141315621702301899828242896406085250844166033619301348218379075498419620885310144391225860252296641840869243973200069695977072751166632627030350017191937250508054934270390810639446522516211849287437342262756793501493602719976541883683592085457111673297271261284793252856933563807660608087917099608520552692975294836082112864513000662931618086107172070846326509505463851621211942097249534882653604008772677977342512766610715490312128854217902239464677889658523856735328253684528602658313176659484515562092724746900566611291439894069480989327521690362513587662236059971347350244284748867954614017172655175473437824859096814873462656225506794300914624965893353551104749349640568179849293730004039346541296211625061033065592062347621869146773597930697101120818589459053983438659151341725705943634141423233915985664542882516768277102312256091726577408025453472269984075558672230833129081748441390619074169836350733780085488657656257606197649399249409558650664568404857091038167439431833959011061405216668147771666147682226479894028916603116722904641420370045262539606124433577227188169563700708413071742853509740691606520710461211919466625942011877231447101622939674433116074620034494914450594399722979581989026034307808871904561375197091010975907304091838304914621825563335584241098963136512083078151294203590578570158404848538684756278472608565718663486187193370651849243998411044584176641322803405778608127016704205400682417019254265446487278679986892991329856409028276073340659456681792604294292680620126904063400054196419463180214455009590701600331137153811785164238610834346140026892927024636787356699726390886619996640115132686675381596834214612065407083908358410178076162542433821531376013633530719796410273634186263360043786328080155794189568772267573720603436236251454553424211627244317409216871969855213504364101971823297914931000811375511290819740175905515283300778717603031464500645665531785099792287360393083500689057125413791747946621289909999917301385119763159369522468060459648384352763033821443742861211206341734066560879221323548725128342052503015272448930120411596915540379705662577426144673217482465137476165580278514457965626900557155626160005079017953572354799198948549453399872337438978108544818848396280933358625268641604429932014489029917049598367923904816566562392546969365155328094251160252054158714545708440673718534108147329956499529225668183562542647722840314555507871789737732488162358642331948501594722108694247210144184780129643718274126619557416992894264897747265704001797851072486526362013931491733673353049238105389545299199186973001139860118464325277930906418398844287102102539344207653060442279391677245193621672791988069516051590990241705849069644838513826008421835427382524987115292569868772429196188725583998360451411115759372070142906809101580887900978873642274410303750352263018290677104137294167898330234104755519613779279157071658685200037177525640427312367968138838262136930494688618548105439780891080873358457356597422154376444920623916284581393359925004973369212284587890956916881804574569624923356855220212083789010070705224946849536766698567506050870191326872980172432969481218785657028834949056008336046819874426226076394250749902211206751803285826564229025968231499737941842558515024715806272549467503344512953504123146565724266337232635144521016325712255440864932241925965925339470774606899846026035158541877791242867154610436071897514977147322104333690720109378018984011360112366655889472897595348487109313275963010375226158862367500651197891980716791829924837381522379146480032033982736330239965753090799529877873827789949161923946799796652480162998681192298013919543270970437144890579561283794282327297568725934581766953447690299120064705992402709308304791797244780678222530637025808475720010818695119631302845289966126696167380489665340915753714252516996861630583825107602237835110895506985173093811089325241879959772302922303600274565604261394137801725001159622163430664331462169938321431534729406519390839314384690612046245327576951882361091024258613999705034025017592793006830561364488839349780872690083245252375329819018652309584983851848456208834919729938702765001820324544902232052164630190826934763958621116687933558375898463115455299472055266837595619639025551150826034162268326303577582385616418316415938483600219942644134677213822371125284522684351502253294550885650581719849409082062992910642385456291988753159395617960914352321774401798349800385802384261885123961158062399815640296114251707134910034133623306550957527675944257409546105443131408216701152588099184914789357306461401246907377303804708509251027897507190421676038755158265367654667981569576406827154916391956328632387568221406789085476396959993180690434002736095961803439740910064290995932047885875666429806255267483938208770151475174426873623128028648389203728359777921901331618015329152595272547801012523201635577792207141288085876639706670154799071492436902373419662243822065087117212085966063288625396464607129956968625724235114412549138353550080832807855835222800882687900763646010420795296476372715170192024113048657365540874288739981107260156896429428024498280885961710173768713676099910078480957725540587203776333609103471384469605528654732830834064864102569903257401232936493494960425058369058616877475468771685286772420189210075714614143378733634438185105014333306631561387164207863448063125992114698128185091224124845519356243393609393491023697195604885020839258758382097500117282865498824512896791842467566511571102528914073621259944182099193783597346006382458769018958865033012443920275960584694415859787679860332522350984867188188173438423774715771191865332079340710713581821568644627411756788347345038015595978686948750919970139393396289102988555745804974069325089535649276702391452351741698458830374086461167657320914013718711282641967482014585609966933831250371812291426091444113755178978483071033356548813198041702440415573450987915251862591695135332127059313554367350235632138142247493614320182501224879696370786486553276931193118342578999456881163926333120508481071777748790557067998919424843682697446273000530586758566075454637772364760653014727167221065226036930902081931434855343678275409850791905412657584035756593200693304252562826152355401273055140079836860524657247048795660735821445655264430299484391662205641696647044966086935851971884797161780462456313449935911210762099087689091324930151428333223027455015388712853881832816572660485486448109705620920662227064090976893219534965961084581725588337670615181651297869317161210758869845218437366210540847058935468265118958944475443278097895500278515072766827177556260921672407047155573805723187696148544595625438865347049315095270282774843203355421456642058785114198450580979749119755467638496549902577455077334754581498177177087891170987814519778501659596467072991671856720789876224862830759076111886251191381674928125035882928495665565916063825570201271097109363809948444034247454461822336456664815386551468118554866489383938478900191506634562095605198771294055673910651743727948059334912200159264542587589706933829301415768837057809640705287496796496140391420087890738075186272540859274453987142948224560503267366986595001534172573441527479202346723654998396011748333773840102054723529922571504897527364079549225649114546733231390489293127986371609613236477008325485776390334242476151084573885799614943095962044413296645927525771959993533720644906666248054334412672132394270277986952809839068190218789371732797180389895226657050141684094276067827299493965492861429737556277058642516866506436404370754741890704693012891098404623769962877157325161965372669154371270383564868196327557427850726058533654021036184148135372430634273804243817746862911282441338651921195581558660781481443781374015293395750414714541820073569179589301052386327720451179042634730908977078361065552460794990102970943131044890832996136714022844051504506071815280204434024872627155727282852508080469047342095084231562261629423838934239442737954361541938025879491726591188874726904482489225641869040927600793931602499157077446963351060586251974449696008551590862889084908596316981455015940663475476842821885565599898751405041411718160368893567914756032940927913544678441602645278377344398554841077659923603068934872939897722861787958194904331417914630597122673687395287895571746414719965829378424266093941598143292486287748684519632325986936883180939877936101357691564157379039691505104120396150077468212843807927486729648807965584519144509001139256738253621111479576466785518071215532038059206506482404400240308359452842458239487565362053882723641998866990812014554943321409205024009583253565031719340918390087910952994958318690700512727014203189311565229427432419131844450059669054115042378091907365738164479247508825279660936603256720721410335727400571311426041252572501950832457669005200292279937723341761152979954673277772012383643315855349341717126167442439863916941476375435634296005380155801384769702471910773705785252279463259012602826145155468682140735637152413491763568698581746855046339366222182794629670466485745420358190595351816810555520747195467630622017794716511032120513428910005404723346290183379921887615211284324134737145313139831747904074551797598991491584044890997108594905084594301501351594532203957016169080654574142919257725964133145661050780927422469183578198524828003160584402407511814352734766365948582047439848712628209751159797348865072144334602874736546142654037858172291888350014371258309149650160878700590791761683652577623494397355288329673118316929041889427086237513843258987263023451015591679682055068116132453151844097972217696373678710016463635243193127823657907919173417962696237360785774406391545755288230024114173879121074255575860372865476539580467675201364238828491162779750946080450677118347306720135819608264113140280216535756115451858947804310934164140968696976529810218077254630279686874641878998420962403430558216530409634725413089511440233086947054564815827721336168565234979825477323204180351478204975507814464841982858764950268743862757312818033357737098123737876306835262359530304379403682158429237356464181198907414402159726206421327564679021866624614570061401815471391562245598848971736528801825831439141016306891834247227604660121359330069110324454472355177608740156063792190149512665575558508565146864910180083489051190260383799724059616795381844560658304140163582879404399044247467281872373648239203308311427801352767324468772257168239777904735301375229209378677511598343970845619810515280766312131424305123887535110082466322081458618718559299662969240495332153596426528511961435459559897598031282351455068384790620231241335084822559060461419781313323313286203102261574678011471462988252143203153925263663435786999768126242651410886915188892067975774443209016094249885765807459568109960901067270518965157064893056621739619402581113516816047191284737394905740460132045186773046090729544154187063534935324398454845144039993239409729170444003217964296832071772283011841802748510651086593956461302887723797145905698689494357423122803239051740691700370445889947741456039516661198321480768268550759226157611239300139911176931120233191024803319712269021396555006075691297512121170501917106318976732287173499461567879119789076140569559891958449190864129193023528490590577959217392888569505241256248184428725521831732564721753618059711056715817343672585376365555958308572409012871188388176155985095438031449894266287776651912829796179898470982724719241251758320308043144144715929629967974628963485672773777328192231236897990137592158544796766655613901371328653366012741721922584062349530234071957854814387416480853109629843786532884678458323116413342295224119149561560797551311765840884849048585375315322640022357360455527909659716058164602299381938714290068182553378404211574910911222846848722133753949642382482885556438169819128828072091530465146212508719925627348296321304749928476417353013195422629968634637348366690690672066241156049533137061389958300927561225593414370413106060645598021506336097205952334260241672743206158584664891666328009977099146266828157110978296810566641313795326318380418225789721336731586771915002612151069270563022539359965281894252244706890359004643129326564605458903812237730113112289244887874525433497447322013783092680375698156037416059078377515221605559182148478899593028640520448318980012929388173551863967861922105198077778080701633691943814112852476464951463238330354385055847017261257739298695401514381507581535562552161304650973515931806262037564020112300332758610953336900392772066368138957423508081308394745614600053878586308114449090801349980453661672174508937913661123919550112823420549121676116835099141618814587967963569113657941488976238073771130383637154533266705924693892875883161983118162760177577745182693565987615595916634098381540307248364137653568438644765613704451146936311706355547233589106613215622100294539990419012375467421050108211569250242276214394267021117539436129401213145863662925630868874145637094698146630493916344313953951733631606797196473237518699809623648361148184987441885126307600599160242921371659733792008678562434312625195477209372155664527150503277291697976698258970838639241615098635233080221745468364309898753168338061496842358435339292568920070886427214621570348821779661431294855738639108707848235845451897394890266043878224019191076020644933922232384514470710655624742366185724469560828632037772705397443632894994943920151986689747957243972149144961917235549534287829051882415332457358964374863945106112288897898150382684650621213592263300852909798016833854540740729883854348990549815618748549889650080357843517530239510581962107065058217585984323708870468111979249760820851195744719866634415352543262052980549471782622403059547375535943296688680606943909154997199503591353154046285502573146588897615559813657456730546188920235887773188333418384988181648927146490226699010291328761410420068646183405187851079278000834676178026580544297405304158444084555965496473927460789893716511632597003681671715366729498317059725993988732232579271235919320528709941331788076434556336521131260767004216972175816420270934488064207451146159881441182048879350235838203136883468893918939564193555701555277877962626686215064234289472994451547694535808892835059039117149248712168787308444930805967129992543187198932901475128026799088639791580833080252738317379227412359555196385601662996612370283827528640103799483614888467627925407971817796210973358449311372363357929578233665991592776151381837646067302914790206914926111352055626825565364527505797541316332920076661312040052163123492600860553402757939948916342581270508656887544805015856768618941039003323491563404973039137978606180950793835656982015258142046368002483522698756655615673513432547784733673785917529752066616227034712650612640671432001888857541119567273424115499016910631091146824620517526268104419620178950891670847482846606800791525721544807070724393109467853239926709699927359879412772376557090446136952735383759871552570713516948577670702441686224101566417125756040834881922755185156036199625787535974700141563473649523929041169007975196338761089473634249025508240580823535558239581201365253208015952188948832939455042884023561376897238148409017306201581513470632326203439502250210675487660894462183267008163794924696421554247028271284818745147548081654280608205384290665406929059003741740033521632065225714383190852462559755361105134571392937316738934491830133068059374024772116865104880109430860170023135617750721704477481184590097448775066217157210061218586513631577063347871558058644255252727228420501050038020742155213069118051980920617524516944444070687595841126931768489708484143538449886811014204065902575766365083025100228185554220320939514141373034150501172425465766620576762482871357898897796562085070888131143181813888646399157147915165507241150308089893219320291113368590909303832443041655504079570910679660043047938338165647493258443580953909540600429718339716859999724330010770849691066794613977423451226629112087604238095198559322553770591706993649894615917919732912056670321083102512539241282501035504377319407931712386470462770100341074128621085774417401666410131185886304344327957010142575395969782902097531443344680808283438231635652193702256862638206791531319330716668314159595637547547087210677768777091370899549615551759269337932800240985319636897001485050157125196833133355041194150797648807143778182871665474569913118701177809460424258064276839331897493508406217721804065738913301944096242774051895256475768030222125574311116213708811936214409594878904267361836262961025231580048428774988334147943744763632689101607235829930456620440086190197695980115940615026679130025537042545783646641897564279822152426298470264917600704606896188134266507215438025000422240160327739488082170414728396447146901460272169186893164332449537543182364282092208882963761020816160831198356296869197665215475377312878224732143265834329951535379627843833601507469855468759418350286399510661090311453627199655246532167875011770013102260935897259699628327316532553889501218465544744506887944248724447245009564244201369128715712996701090723286082546282254214302197386541178126260744632610315141789366129345789864703976287331091889635352857967041117344663153038337874207760883340186818026040521800084849993491613252956615182339014659630130635798766955930659522994722139514762556453183893713926804140828030796650954198292203393416345630478515300257540790967088422934826920557354289502146847357972689104625998159032941503865115697976069470097840169694791874856942178029049237026487345825248295505272739836588083220540584301224966197048927145320449188384129799136999887932030348827188471103754169633571062508289467244136371646372095854858736962570962319306775562589746441505292679065267255909778410405130975045836429350343282099778599239084207059422071976007752873889434173173199815605763122120714979983311877951771550509700487160961484669003974903625321758895052476926065431855060609567733537985323605764137431501074920642508371091055164655522044563299834853663128638882964819749182916950128436361367967532906643531965217677471202397443241563418923955593849644878845458617592222550072698822406827807200343205812845708418960298671102368805281113589957073386754538143891194362729408086655871042221415390877521078617366385201261123154988790192062481109331186494644677398929012450274450020903642651594768642952542899038294406395536898697469311650189628946745219295119685876362851662764184575179310211039662807746739884400262089679183151017476952747442232288242412356517051871120345985563363360009591224473529491976500326811895483409291898263122610347764567721969308265892114682779785923218015452069543711830584051300486644256251559091930266523680614492489938857782331666585298944076752564084963759593740491943159488675466661858017459030507165154139663482627243397259249968476180176321854253361005239888034777286722932769569302977660725849547680398395400204144447885282999741728874645516632978832552111933357718535784769042684482291479645924623007710520585180331018678091257782986511272113143387262947075851275445344346143150701497872958238242388224826589308414934523027492032965456445861133236153156857751061951014000195232171533253289283620080503418791065670211756276938531431040595358800767968514360472453406423056658197063074392134995052869472385087537598023312764362563245620239291099301168230463036779490327859894163219241529744666644778198966165819414219386833881036355877863768168260013400318276918451724416241149351562587508991031222795091849126123612903609739811529089082756393780982212752392816759287446332319134103265353863752908706107797634176680729755903341767975986129943419221084039986264112906478937986747849490512624746090259878149764336411453116334630824894688071434470480834331008529703117167074203666614515846705163258282117013720096586011672595538050166244715445262493276931338363195939081719725003703115641142224596207005550810332693939321010653787221193420443962809748347123791580090136194771956195247924639971113959963769678271911873238115881496674762352373692730268678583352766960808164307004764078481982212697180538899450355891662510631768587634637995280799914316512859039292596586562837118004274146849104860382448438485898697772027354645458153013274375910453238175956665835834959842788899450187858679091134161156867248587145086341102182086948811479170983245288326203065821768445528086161060077145475926524592216397734265358875608488748774308654998334934556883792310788249488662300084703694611787919315738704026665767969665537934798030525600500687978807489806046028786369653413142421145351412014372283805394519248529080871055951178070978747309732391944647137339149579446919348977257420228862356763537328300574873032342366130235818664076271180003139591315214873563785585795465864777499046060253585756779802215616754834123098168622359959164835833346628756584847897670113166082786857749719300543719384612251616505723853885878917032857202950905971872198827230575206543783131782629009022215750828800581604540644126345289123081832734882787680523823829332470818947881629461307409724534291634233496225416616488923147496599339271691889645731004199280333526543024074233914787655882965676740326834641681304375978785634947145475600188078734615523117508977287394750698703897966698326535777901484140657256111322485987917929857083671183433803146445163419382125210774813872974811680442698842232989181442550664879671034632773222259375803953207162287842801697377582049906989715826598254841872614649753169318829706450533704625718412367567494463783875109317587198469015074897154750651079256020246631444149621031719644095726706257338214597975157970520649814998383820491153831437648686224840420848854018408593060134002563489231977681935233687718112493329635017945827822687537714420317364687043943941531080895759715761362787779287096736767578566324040118543911336498408792395101072823553847357285185595713675019305917096581985783631705092483809783324856785905837728508133156591082014332181578008097690635126773112694477686965109429071665333608817692849866664185208370860086868049570400622464695682661745007400195037366481710571690009395347116993747536966622962052683456288507562522444862380767807240758989554492747216193283517360123772309489187073606023424798750992870311990177007655774428979573144469584202175816794090171583367589880709553079323477139872846763911561916078853851335689320099119144450174672492955726263176138058652065323419287172986299710793166550484922681366211535555868016988123954043194607888055053790601536000696519985735285541288150476492055788404144226106289235891970446435741153529215600297248407348439691330709153913689373728337017921738701067401983939700214272081244995544795853462737765565595644356840767222476236435617400674915677876238387794486322156232076452880244818075229519165005170801912323092927984021204390599377585104186046533975471349609174812082907330450759230762935372068701991722468013072973018537407572282105081193831938073701587685151875300518899464857105361640993630865023517919364239761022815070925509555447080091648054665438476444491049192829987473171729353670368232330291456594637098828213433936836577807520836444285599180537586951896769577525480084109277980995889524466204753358501260386520352780823253541328707786098804105248340678808280125915854180626596016268084058872627385005925384507451382343163255096249267378656448463159521567745083333991029461871945212870763605886711272227816095436728265391586558681424562960137644182374924601589925457221998741646341936577450241709848575401047932870328694943808553660618785010428504277132013998331982174023050331230578324432059000516961560817053115501371550021913824940831466281518665702708545626252304400547694134688699450477649767073012314515663619205715182402847178761990156329875232089403323685639606321391126608054531259094324063510341120600640318142497303591016673295497069486587976153667405730744718073049264653448344550977784384992184135541042818259926764177241765983653145733392130297977937859776382595937506908034232518428783473525004940862659177653482598997909975361844736138318827047728118791367195559897278473058987575836356754322250100017678574529398533436987391074512988527084133996326383564511834261021478861235010969638973357991666929597116427062212313179051297424081745968486694334931464717061979214209699945124721554426883157366662072875261914508951491521401643808267182022075342975124300390579121361364964533065341083592468768789359598128922693563167081168995678535063664908399898651209301461888348923507255276590551358362846256305705352519474308898754534612937783770873060548847493262835687164694060707491673972664918851483135312404824363752855450285552210974682995983711147163616071706112813931788008406910276175022819957953102310683472323767871896393605968725497185578695726891539647110214612463955956429230282877685905323213231895573875222469660437664468268717675953723486932236858807931441847258512943941029878972892959245117613009183766499458141660559167963597543961820457898576419866918818544288507346951748582313396356231529398693432811499430140919018612645528115102046964604928509566710642148142898362221062693578778517487893946225059375664759995291538869192720380999854221532682647862803831174479391870136451877749631826491121954264207258320401672756136350357660427757713669308164155184568767953915155972040103237753741364274714723777158737093165472703977356168811477744304305087864940962995528383352619561971825071124542770959352646324547674397198646496980676755354518774145964628430410521758111936733440773893066624324525374380010174794023769446569714920450173174614212138726697929072043159579221692804610163740353366756438331744992430500136881326828308035562279276140261519845054106990957091062806102793685511893241240009169539689881027762390312936194778012125261027951078848685470013504896645646067654730641434613876539844002018744485965490112081553889432065569275147227078776956069587322342942011246134046126662979708398012120568265442582643513185797606678071309278379646348899119429468759781328309442638032509528142601263020682075107192271980540079331304343170637911068696655132928657597436923001519416042290885649171307464406641759090994689326099880381960485947101408223184764479357586825835049570375715210590106618297769782894827902347961975910319522090285829687361056682580934733918838295160579153606110216412269324210665721398886880410968000226259615516486039537875294367548979993489399808797667497079308715894736012014858526642468710900883429615012347086649238866979029155063815831358389336348582189115323543844338058701944027060543300074531581034794209766145859676919551686235697158458252013675811419800478187617439777280171210933530814428604110366970571179255021003063181303181926631445755258248843391614905096742649650071731323964617682927035921190969963985421231686164411056305699116149793009164978505464554031057214886465647116006206704584423617873904624104532940068333072310905881887585369574998513423919187856132633344765031757711372278889869227138818494437976613228842683765980834284309589191564287785108814819145138164460193551789405042967783967804460112321393438416473541591038256340038777276602562120919877167993711374516594344405434722934823293546453763753245694856238241008198507069050330811577494913333927918496352679291756881956450878817520870647825152798588261654238051287277422290371363781736478721244406229969878961679036947029481940185878610552266161660947114469494876214318112949921469558358042214824112576450433193990636894456739564127678561359663817538381197755549234953673729101263980726466623741475905798751395113109094886575741512177448585545663215596416933146439733437050782618501572023926966981476556524210612444684123056446087717461929714731325139862084269725661497862198881538839382385299388784759396667274821055563114597492601809997897828220762825933800770964991868843393326858337756796265670002415799076778695761033500099898082561258114203896298435855592826666068321498339860252331118913323216099245273233075626556493357795046399758766112103599696251860769024030061170621032971513619468244063636799205195605890673897303568378989302731219052170674149115756386322967241956831932908922699516960094558388475347225753550005533494009092771164721715218321395172761590964500351046925689718373775466318636319182666444066274012682639506682364525611975054039530065944594496515953603158017941695249578759569604164872855267597902571379971939884875304566645051672968000841356517174929460038127666446209976403145271878149863081907304597972782943163267479613447087196252948354614734087661518384298039691325071355112173978462867111686659868649335039918439219431525187502950323233345941179300430173181247461619554994667437101994722912664674262874399464826647946962466235917797370969568616117818573699663660372293862939134295297795076509955733493903482073403409196726806437867834455220930962993684334138830851010957588151370804523439014241323457352876371936793599637589906423695915874575287286754839156227896233605636966870802827158199194692747666838281242251716097797044024269467856429393275795731934884202268570450408035057418413899299464529697468019684373655678808633389553349968068810007474335157357570660977047984098979766812486702664606567131042180184540944292768615935475088619910751918436201803942883738241390874597513627820282338593062167757908710443402445560463111167377849696655157068769221038331837779591085761306095700827525211568193182414323237907266787077275656879657184659876636937028363709877803699340983693973192982249848919394675967159207273607461378062451081302555079440535574514557753564205387216363405934309511134814401142727874151902638619268893377425469450050410662117310950498828805938189909119554919064877985913223983923234313472591300711342099327421096301337867360931323830988710838148062980117894979886760547567729818987885292942045429204270365892919863370260210349241243844195673952044381473379870222874394734913354908819840445077704880848192709886362390424191996318829868093287039743553532525471396050337410457648305094020591455105129040857831593282647953290156121374397614646400776991116415546189406021726315063027365882564506821726562658849912463770491416217120505255272323680328510622259120323793183871706408589105198458771719509266561156585289600739106448889476477014258191181347033513742853087341768934554685143668453105021558047074914956572210949439412111280140156199254979698638743404759372013129259618823101459661815645600053797690631150551180687486762020627201338355845670609216102330157669071487102651241747706360858353570315390990591137718746244752938744782683109354554570917278892067566540655525438396731201590981041620931572164072389517624799384754757547462465942355006025336118257414932684485460011462672797752289878832462163930463010875625689982509949017745537357593571975135978701629537349296144865463811174945565094148877286391915813659860773195566739315401251995057181493771197912487842527532092370607434474634393852601690114876640052083397104236289749245376459154164020327278257533045996209130313673113486646681684544040936179111121896906787976480317314843389434412477018580590935311388306747332809457452421570975071419927763172132421030736018013312863433983805025675812029780887849431920125847327645816477459251581402173360936754277320159724452822725189319865287006132493885094438723991330246281054882349389092019839324763802992678337738829398014297774006725087808802741008676029374168563050345773698400746633332131361775488254392782257226228980673290259417136178096656682966471114076760891359546949483122625939535175441107566200368136868929387346740586563108031028508091743830384830288739503552161656729535409688884734716018735606850995563333310563908023007909948222421025272402552613283493629944461465270644958209551535354520802971739648702442124147501394171621765823287752493637319158208027952248919639229306598724417395418370832947253452835127160918917023004820881777842598329170091594256634837467542430699114977308614186411277924913894832859822988734048541594025153377667308683351806586090291064179187037735095380959929427742949034846017561036049035583798013090744479641896127029422822425358148441723629050094770189562885663255349128037870600649916414878501383108503176645346092078927910389435162849744062309023505972849194949749822978397501806939183330090033693632295082589817450577651779686018905466921661036144326450791410560025483735328153790452448514226285538257695327466412099469583821208665559520811405024632295478496611068013024242346616684249205016671351031685652485171307625802692332804179705320688865855265079350342884374365978029013829143852124129103338214109362765488596904427293159721259067821857819547250842806530325428222693605162459028170954457267494199235055272755779668150466895115228759953245737767577172376277931688417875906098242338447669269040440987589421995248786389852603021598265010401937324869061821500495200211588137846232367645788445347511241488669659117049847534452233465260023902010539464404852537171266971243920903415535710626347559339149083497525921056091312357658530518818536259078945473605289538801787593094473129725604370372218918820635316491077041508151887380582590242820147136174418944775311169844428379173953523720068870220935114606983763626004344800387506233367507798426630651733995077697734242782924431375286697146156382278276899347224467882320909860419965486533416438353352459447539711142176516619378854636556694076301733044508180897843585017665779722653463677710014428608922851332361000975831056166781583700499661638570482240594241061268517053776165080975064264290062053371719294529187939473098682635846440740412068833223179823387945216099397041492207359654432075415235133064292582590590435381470545129763649060718624584146923121555523624584141771474999916531436921439662856293101900307628836207016358907041945919015441147396854395227772180403639281372149197068363282575644129996573319811899326055287537560603561578056285303106265867728440412349461795126104808759644259245470202961355439853317576916081471001077125494197571280015070785466405384710523591470785148126261834842658952412581154704049865167253720202003741914979741470070008207497845479036667199998962790035351388556186275928329385735271687813618327758596065191068924027224557823243671713071990485221151660620652022344750609283648756304833401284769772173908171824098416301032653515838858590936768579549531543425136503779963642657279445433810350232956471703626428389162191220042827307950936855913427260140674228866247163617234924998980629130294730564045035169433330568340792413660270744895982212166377533661162155803889450243648449598871693776091976507983815864038975102445976116490994818237302884093846733258034794452220220158665190686058600155353916970416120591834879640774388052732577968493110231977303747277631285701626898584187302008950919831064528921590095629850742915983027723530160443859415837641860015695912680179729627540545217948435287192005156911675081308879434880283116184717977055943341567423367061378916524018245218359627699642733736362216105873537940034710503136438729046395242533031870405521203168296385882754692475296661389505464800664421348937181458020715532365124373865023182557163699202240896269095192697578342237740150520867040623233758764826401153543919475480144026301024582165938092470735905283248979759062227734297831499136038927037582088033305876116780094528642949966568061708310712549396308648535106704448360508984296826464663011093064167129276883733723409081216317231245706056258141092260182116912921325688892139164177841252422589325788553169299583665350990890385611719469186349095078301475723762252217357336562098255320996972262342867736194982422857311371202095215865395921121862418746691811129345578346437044837188891560342624127631643826254159219877876459921386343635179971816474686587492822661269931319288406923749748818507430879608003145322846838552147927615429136282347776613561421640416043842075892175938465722896987849023312128901440913848586168662876271028242849745681416811269515976547807236387772142898735810773205692408950927449526875282951998189981330329669940107230801326965194529835525672499919401788611584784848766423752719432045932073505216315425700658170701681237978413964862735404938371294506120516502499927864849480126935947174604175024395101166338722433877160124424521621703810210613212005602759379241856250894622933489546467126386619733352274358314884492102491133547572959954520268949169158318229444337078529142789521483970526102663727082015945379190325070050332582440322577672167812337337749805698247656739239546800391597501795807719199641882327911541583238867129576583821976652311300063617012160168286510674956970038980428209364901926051496831080506925913489803572178449277963634770628340830708023170264220655305741396594776081604995005849536931710693813102143618707004484812155022083332719200743389123079234080873459555322858316048675130313674061980648935545617706447521723809687527473770153313092149365941293878558140115154534744731192850138139798024607058438306035717512536261259519361024028182754754448026817485922085440941763246812884191125405576332464433740720333297699314593800027445836843052476023917993066175475870018852746006835470840943708861615723246663863639288904771433540996594467558048853442202979042665676006597913283362126185272148927105279654320852456770645007317525279389264673288891585226580601244357061232288866710438619810686633968314638548048351408513240694973679833828052589291109943516997336227460380382064894004098603649328153335976556194654223014234134628255607564005377357674494868700472921449749950978166740590934817863373824020445470925913673783122920649662965756667541723499367050479528567788514235209454340499951002304761507932776000372893004814021968745114598672466543337524347020762703182810391535451285613454345260468619359719901345073203694642363884041952685699821982473260441496819532573533229295788067492684095168858028168222269085208874051798393808033262254061124556840930593126793901320849667702495544525200654662620449730319688880978273880558471950692985420923081937374433386852442720319213416676070693935123606463655005031350916703654116352109846969737887185580961768934343995429563625303378324549354666909774405517065524589411551634766539628430270387346503750906271368617499094186932154026688541330473148599273438413978567572696643396283582216454361455530583290261658348284390457817145388041113990046209652824200999763830783566458141740518827727067583412728006811970895932405209684962491581458570305268542244913756975961264879176159277595163458777934162849220933614737930898555224885758074157463741113001017659426163269495090050941298347891964192321087761417665842504890153338627702494489632333602421862128142771908432533848983770043665210174730923385185725585362968620960984444022912984848471625623217582562986894202074967729719086598524437280459038511698637313594337175784298753185147188904007090342347577427270918930436413664187797760647453774495187219550106250143964073783860870482442715010791398761468527414547205876265206773165447509104166401762919817839361633583083212963319635031004297153954072340873164087116311293064267565336849461186081384039224979635928603765223764990101938436776298288488125729063174860315591354626911742987266206572898255544816655849710575551293631667858394392978740394550223090261533403104960720217586953718272160583139175711349666937612430770349603869153233622236519968868164728497712428170655195549920944956967650787872465068771993671813351834151333945267709285021107639608803776592038285120309124692363575319001586730296271663665990242050547091631339304828448927205721660520615400829110918823101474407696269802366630766492291282787982876653369266232239585576595251565238407040810611747728385124604073821108084069785025460502259319346431786352539827888820090783762816243704888156008696884074238344880511196426603878810448098617697283981839041210563382417838891428709407394220141265905533424861651677761963572932510830554967638090494217174940052212453584215492562298723018621645546511896249662890670691510670710187594956442088028539167518690747376118062860737580687797152339983963912650883001364529100213165073084491655971211987756946723959416067429981951500438754488715171085758471790467378297557666165598564267016414376999561270142781625424018817239979196114443961699551899735175085927684211177887436701503769669803835197308099969603854842053139622788179676323049382926565740939871938159416339499509977478302932847353545653805479964907720207093221527444480936156539319111512619080295033952754809171324843549959875580757174959091449510799507889640722119704926639117969332899764815559369371438943134744964764898831265818618364622714311014414757203068760096311871019115552883962077666735752538428053585573913777151485531338014688891274393871177645217291425328172044166847452563223864434675060547310850045561803392594684785806896406733284752478319077926715474887850322711232306303795622061907574228405961609182784772367085053981582489788254124916335020416764471290102980127514748147643358926571672378594298994187676598450132507405813836322329163951391375821063748207774514655519726815387511724120577907489230726328673782022732533847967348913421431306971043936279594241612266076022677762594583254234659686307957708674437262750484712726772205198387338152120563421156050743463727066678738490709516616626674770577696608203188051237576136778689332362414200177348871451559354250278004724164832005265747171820530780836612879858837262596462593959032935153467907606431998838106606071196133968928745731456575743032065298812678404776927882212375659807531844777669103187425777507679407751183047819724692559982293560134256555368954986527028703897180936967796249661531571721870483774072987228944924941362682306914718440700425720101067351223612271970021451467186890070009466824280880665976210807413232371578962009751366312540792869076946160344360089860487523861691353461629386518084347455942310851425078761781443144994482820757504374296579046038355640255317198218754818944307014856034655528081733132445463455846762274094037769061195570770909226256749514058697090420414318885010389756670200839638689511689747446319845372028618199137586173446588454312036751152916415293931227524633299167073565121736007720454906144906820306851702928935497194299453388561268517107225064316801701600616888462925859231406102599221265937290565119559590591784871724809339173539095274823940621131879961418502162063396599721476634118857575259401727259867325158632001669471584633320409001111673474774246300961688011535250289915245260307596632650379315372596013136800370343815668104877071394611287737840531779711604973777999706339762469259107350280918752071621438324385548259041928647682249042398201366005105354305376633934877425987115800282445258010337439604499526059302990604533252964986696594167710109109580783044934867445126226747770103314172886440824072050374070136786569201215413166566313843510641960836502546150949578612190319803072397227698414161939664311962840778265781647017344055976120190159929420304807442306120471012646683748626720973001137149818420176869745026359150401552016937662131154882111354918871459948107992314658000052295206388989082951150888538935913565924534691410053290010125735423703945875308001538042635531933820017501610882016451461553953417534136815216734220596345052269373661575190431730841844626741261191923740064238042107193432289725401966123287704125215816003310549359514483812427414812318530497653605760085175058290792214284017927582608281762282788498963293449051673825881098599902979606353147906271707456470741319368739353114661259344397351128130669191381648077130260435094278697948682860694989663479597342111751045451401322979342376673561734351358044072053595428741290781747875267074401371627185634593819663258067420611704671875939117537959480316373456898393620818474006299856567170572865414588561043016006843211975958171401074272265288434382446394433618302213049337267742128851573803387411156872872982229148948526370438566957110135954688596839366757575969573282175818010819133256823928624701445882037712614787944921928285709321114027171901581342916595892040026530589488203650280192874586145778206469275255304848186036293047854020066616959845875974303891655525896121639710642293371218477103735505671555715503695449578763107813551951298034233860070161545788121450705868481438579153370678292537567041396159703472468772131806503787449933636043697901533469715109245730590453183955489605234329571658709118145508680226106082869006961013979512869808485293933876328793751532130496647756036069857337008260479196393413068054018198871548391051550619410971694252946893024961018785995614891514270228055375283946466524297459665227517698895459251678213761336538665858201024985165255208710870978620914083823298760947020626771604117881289319082220180376332504152391693015547674506672430811734552749049994396586087317883021529367304417389894003307591747264100837598808223852480700080406478191594825984009674521508496047778592079664267004774786127425523288279380319664879705747765009613084186886059038178801098214386295897416262678141346188900517050171594302540709138877748737017016896828653252102797571350956277815099973580713617917465648876140481393184570494420286734309615012379083160418571535218419621072148572159442599271589364559287979675999945286780659577532241567988204413074823850969232602242521997596195438528412301082304844974251478221659720216382848681409562247688397599300804419119956289866052125481170339570286547890858560361703336852404897003583612282813859680999409012354014372145200167865672672492341075515089184127822068150767508486852803304695299961567081295595470940197161414397957516196156353356697590178375763697897882645746073711332434801376271353669078695752942458563012757632019328890887644109903516028975636515111741994377741353422964058924680946439674942492171699417386908273969659709831184611696372030583631520208479678266055343259359244178997438865386665299235903233632730628927924173050604585423773440942708007137403470929199121313499499498574332698539835806592367924727824270389890488927534373172754408095472009055421553897034602844962150262242767481799937298561863596208419520548225986126852404267443239925892790541259303443421703802024842970065227594552161314120918292395856424667368058380020490882057334026683342912940208348159247080429232194730343789397833299763798034829261474511332903671522381866725159539085041957685288351513439743216898259750912582870326620923567397273767180165147845414695262329193246951738144182396167295386530988369386622461785436743096759332313576126391738854584559170568243788537572522029851705700216485869998743564936394646247005702492929531763326773662568550833554733196531529810931436118190973520361581846670740443857194657324229058294184717029612408663144870928212997495740251457671669365506046998664732670729831028244806278103201788386407837408856212334988346471876378428371930609972006371485027028321213941551031580235222951326519389133720751345547874365649744649957216002425315584446300443859119113236269748939716284772385486394559158505610166992048655221521023863122370894481883652163997592559688812757870176234831159311141381590052144094408785467428820231528135100736019528538772087122690696493175001923858833436637189487847241195281910323103945549951408661136657293505918902913649949182145032418669842573908715536358654802761904114398825905579724620140373083126173188112296691979489196538657675223996801446394939763068997819954008644012946715515398275501906121601438595012234421386087624501764244968108776911631065816019460438212674714029784790580309152555253013433856074729079107617590173210352287942628044439641791248071346679454879497637594694019019372835759645897659866083108705785115555982018885329623902148508609703530266429387477909145709470855076958026756059275778165217917634680444055489992982769584048635099739686852299080181798412467649143280319844454092538867728818343385846676378159163674222628220300820079069521760367959604158655977794883353767760283336239382327751803941972836719047402195747430342248155462188835091162152816685860310247369237725907272483211604015830174265755537117185497204399109776191770488826584731192694500044202782507320125623418729133090614196157944910497964901621868843644389725004399270693066456541142240406835388894948965425144235879501133164095417487102969459833764841410421278518311515790685971495448812730918572795306066853710628678738796852291025124864234391829298324514146557908810395440537570465366011953849296628975698222839432635383102997372297506363382568703479414407953511703005896538593521302578845504817944280423241324657325711395658184397194285949023612976932408642586236053066594354229121268218931412803639249854135316482465112040900330377317724735067989738211940715300602143359605124069273989617761760750656550470926228446023027791549602597820903302112666233645568710510765572365896363903050831286774659337131204215653525046983781344035316437053188159712740156228378320847348909293635534865001231025509833617977040338078099616875903543816401500389539375841374711768831032994458856372737708355274652537386189253737438938466616123547599902121124640278373108319148410663235986859683051388955117326977089243911744025837913653816495051180695820431109946986904046493296728899648464416140314794512414406465698993464384925431242710823907270356477828507657011741150603970392894643187492262936132927979541670076354527137392090672889896425769854037040146176217691916647365803403217966427744774395429525816342352190573255096713321731599094569809760355256328807144375812381728284898293111918885349138194630932225030782710781379466846158309728401286921770749346256662748654295713157256407854594846949510885053528575170859658349574397209225882957089757986603794103925006158164398450091504604974607710393738527473192697421332093566723528968824671943323536323579996034187032808621242524384507393147505656686688117988578194419759741519530862262357022066984906720821006427848879173972722713740625258474164742741791931936542582085621052501600272867899375369797828816374163759661717320799030567025165436153066085261384911505879034468752224002548578713503763568212813070913658335385555086667509584609831648687157244859420413810105068755419503717799771301098588789107010849193901722714645663997115837747971338248719906668052731097320183078872796177621863569306472722232019528765408538317989409114696715036361729698092511341361778168229024263479960049913270188364541311365837754836696014536574093560118839226821803612010576817783299344428426329334179508981279384828622718226287478184557097478917492720082568286509608178905909817268311524390204372217262169744414411772191175961339373242665189522566819349263752303352063293658261958633302919020008591027586579382850147084936685244349528125166096334571705478996769100656913752449813743793074791463960100707936667421060114748544156912744134570463477271792350828925876077188999417962889402296827314151645676970175072638853970617131902700394961559686258301977316687155702782780673876930140467373778371121599751355998234479903881914590762976982191923883121499465773417794235338961414196930551464018209768005100269943754988323964630582335878556182960803790992901787415898448382223289563796482493821833591488157554206228573400084353146268665716125725524408590197109039538101065508460788546999031529470411090584566283595504406882044941127230820155544758806859801545800847479973508604227471175266734883697629161804369880699158251421869962411704011623591691406159594876090724015402736046218658346113907349210704013777727835824422933363169100548574460689067660730481307155308903290644603462671514364513487810324907051845624050450980237479689710965517866308105027952561300821034954695909350381683460589426515465741899712742573967028225462441229229392178138155368596569338714447267876274721691898312938033279443217233240277964433508692179015181279886027960419621484953561794355053171543226340947892359652430464996771161664299749812254508359471187633395775845856839456387354796504229045313895524996013909525560782833773177132532091796537095826170243999485011453045633164931148528621638712293886317450093438099424393591857550535039578032673387585281890185810547897709101038619263676022937519231987456801474356458736656369452397172489457988019916672997358884527894028181802210001932712373288056802261294670692528656113679338841693333075061899421852802675488173806969400602948209816027596916543020972522960314932629533794383385232074755422757577367991136686971523023632231623187655080801373810473752498536758472556493499958893848210044469946004499955667177042188872309552842875757221303662703160967533099345561331922721718619551007685120375104339796175655603069046681480131096710855201917491622386889331359832414657905704821886150275109704368785275699540660730479374484226598365122815726262354062969040795471982744026084645141593774086583368631120270258259473377888981370013287103768114424125579320244805075865563934195343900648959359053326569732880416221386717503867350307761878910822218632654241326207091798288479460841791591482206360730314402799667873308677743535495581649264674053316511967430775770996016272427163367056951282855204179335328658222318743533626258678037995246729586141154698979451262499606340743761184473122826812225477749867979487949429855074950847929164080846012790264011209041620167308727748782618234277271310219476885755206938737090326414454857650067712820762944186179308916528701360643392142773393358297373703097235525801897489092420371127309211777209609919485994683260544704945620186272646716767477108851871712690607697587085976456374387265995061650004957584223349363676651477360371923814392075027712843316365746226527033342445670636966597976583395118405121147478749485987502755443968543127660611436837191323939027691530526393235788097961286483277086509701381356634509381434651036831383171291947358452984705612633905332179162740883746499631125316566307882561249394589341310508492434946808250924390019792737479087012633739179767787761881806944789900077381221786481646453577191358386001069572596341956896375772400267260565895466186476252294297701016974550592827781168388389709451063316549924845281896611834982300987245279443843160716680846096056812714098090812571932098076996632822565050378410885846130437208375490054978955809602747004793944192559100711102257425503937194363464611068833654962680490861590706819028128947777844151106121535397289445588605774269283852098026194921799330820301297149240038812895625405596194488706813172002133279104792032586416393789422639002559103663309859252393736926611056636301511117479031014701654571415119653355313233366226025444174363805330955037262515758622082480503278612318403941097392281615306480986277239475024313003665192150522623574478801501832221854165096851835412235996435294257729060422370784155938332785618187322046689858719446204202001836678629326710197650827299050908791917095061666404270423425729142436487712713135682571025109926526534161446076828977045700152087049715994114031931356480861508375181074805601265755480550137820350809118324897553615120453163845628559955539165342295997390955352033304828482846894402172048317323192732618776832956472249252009180454373050971037873408321322961055122380505311264553880136594062510747103512293144660747378573539269085049316082500888427273991558331906062597397827246997522575619934680324266787268318333616454957600983349792561936607419065296054905051846783722609960941641402566636390131034814216967235827532282352104091572214077974713294558878739991408052435128266370210245936780624806814001697948013707646618659069843028598427981617079039565769517238279176369296521481529843370813912295217831127643482521017955184324588541618333301302222984212217453425859269501066004070811299110669582738026879714186021273402408120099780408055668972265964022112892139998087251449737392429016270286648727903170555052147770206614431313241678396624713845237094147241295455070710005805327962468498369053145711794137809919889371568117782676922985652184058087705971871524844217559590489555616708941436708127504413174325703509527938350794721196604893953041876431606218401415583985857928719243292830580640111886939143085019942487494253917897235741214550204091411415201213336709720723198717467444828355584732587997017292524678815077167649812654573498187771759955007137008686131013050554616824784219580597957665694362070514303905708448079184911235250713275347861352294397505415616975042481757172709080017473939626949268130476159151573811294363478247200286073431715155296583055144743415331209574697769674587982611848475675344250310903040007898362230508155877147289251480972747021928430296517421025858738576005716494960496219440148842914720268345480007706111639068595034767749773145999996076872866006077039170284555933185737527917030957035462880291752232038092770301958843811506660652342240448327255192932328754739565901838081240892762696801361683210343761437513143600652033578012040628877120099926149175609482917738902512499654745826887848175096073536281340813011635766600400952832471393579987468454902358110461966883126249746797496963306647174444488672954966561875998239904662386569063632529663932527096220143117177647386442330982883383437930882231554352039046487687627657651285440655270592783712580457143211219266149793493076373995065203926651231999942867467095230120017557001734037217393864791939319835499798087173957802975519763401732316182984622828286204758714465669042867740093201145309057305204637577858687574863183356709022017772127898214222718447018839126169671291343956400160318506536468868172617660645928167914386577283910967182462434690541888946594679796566207050987815937545137472130815685674015962834432137913560297245316622306568967109575175327456705760149378202758220225480999815126607403797864973901376357158676978439529843575474813436517360876092371447714577026050571214011420403682582982623076658389599440249526381718581348849687265657977750324138619057134098528273849231488315179054411581235797917411796401902387871705642493578146761425460027399844620105512218742502346841708024547013220517997415846781323481933267089924796988385500063422588979105358414264923815669771730659846975999043247163291274589506648950663002866222496098863352413994390918054790260947453111034083611984687058332256588823555642856940361749860351724045408489376196222930572840934085990661186164674244022021811178079356155355418472524939124320014263701986358218358733100464520638298066176639625202387238634308345809426075993483864462279462087606716953296827643755031438945435759477418138601904281242319500411295268247403711991779807049220006554245041408444368675305554012048905659054654691908261554291281752945145604889850950548782088959866106428096456845060909484667672827730054563007381182473755393368022744872211914494276024000372577063729222852710159842614049448544263771358932472742806790077095229241022374518637789609939241285592885499590972803995739786925055001200580763093914288741919321425981150880846871427162058790429981044059780760781222750369897596387261020483918675305063854699023968658338991923420786725506142958839232676381151053926725294625998391989903019170932803264061111727845478926613513764754984716032464780804545610107385801392481577436178443568476158933284929277794764332785305909295289358395428233702086411059514278287742943834729012230387215357250290654822367791645259842982624788613888377611334597565622154365232137486330155555106231429488108603687447519925632467749539326644492689456863640770364678802297729191250943799777962653271200520923407608675622852921005951438057419907957357913796686417627715551291013758214766237252297384745550373876926260245410447778434826709002224135223422284805609597275715808335262817034451564863101378744835820533581360852762590050954808035133791905082491428484194323703104111244967965832195252960730448826559227133535215531115287585626758551759554123850549192948081554273434510760459135772228171671337280743798034946243578226532386040915766329031662647769447618553973737010072968610069349080770139752382353242969528282121975199212041475867639720186371651148795385753318518241521140201398328012597383784848742221912871776580362214203484153865272310113353666066394065509018932114417712366746624221425321414362918144077678485106339596314511053160822945460111648745483614142614771810331483601448721001367945754046256957419591168311098551580388720269883665935588041634150197033950956130283771057856910078177406569427257378054514023348188212246425407679364337904461402827439960806138004197769217674402434199879086359181366779398405056173914262589085918715817643381583464798411580830423448167533637740758211782204604427836694197593865087907301497310589540995314907644785157008505307098552176224313530242533918465184361437448240919998237138672259507982074874236133697238069017295544707276472988110021119721351015349794270936921556672227135133688069518280076879687987885784813018093161827337395156289237446975444207779466183810878905953809911958367393715035244419303707975440017888429660459836493709249317789089163908186459861910994843864567980552445884311296291903835237843828488683194816423039625906638902231627922566958025519019164474581737275581849124632542376071571811252112537969499712901402329504145689232307768286507776230571273413950519230977584656304377405915168181249176849861611480944573266844744151917234620291940115179287349668335950139423324466247622299199339016881747484156602439361374313701064287519344323439785470268845223382541698780551697069712671749038122298876296816796940151182608746194469486274993196520153229336918881082373637335592680372308695953274992116091461591575630499461565936004199290304571866329866283554396044388626504927026318545114471914968530522959848787233133339108206271360411735138105732663002332808794280228526112786835652298722865558755534461790366863419930164473400923775922565855746045123407919242826595942713482205755096273316818932997898234878047402960413610681174608033625493452110306411889186263972822599861389232542704863471695819757862000565049834120304087648831325551275079445297236390060201258430790905487929951590119038258162748367555481473410590697401773484426758664308068847457582795620455943092169909592120753840502555304593155956881660493885982138841951578052836974689213044989275970172996723966374229054509013915914935178620757659599138123970757938830973017568643725568905208479533557723941410517579368803557611367079601501598553552431693216988072648388521596295058407342289558862699115789150599732069051487430416383683246489421072781948592836006551089906106130354235116453783912648054687248629424873885450121813071912163506019304499342563455879787315976208826151163159413303075555952092197553407287028776600046303552781262928943078279066150872283939110463302921651681599138417343951662770574651486962088508346598698730207988856232778114327433942336615545954094739213319301530272436374870039880017440943760193218813717119759823612637580643115462708450873308979257265464049183261486446733147735287314350315829954261992732201873154835666958586516780565993928036628866505651149861256169045788230273066345883243662580876065320636327885988931555774020733236113991770120054360541484553770986877955303510216870207270356911328848125217201537711619216400751504179791533848571078801175327216135127737397941901675255845654697088531862526134760066520611443691192873599517177079273245422267360898161706690947432446344669910671089230681224399186337602425134475773218559139256407457246058006330851816283623957083394087655917682381442250045247907357520087582698742541177689276570958548108358809926590255757193611729766994657714249924725702543969507919598735915736880079164579885622140098284226216640482598785656580206253349275926001628522877262188429984091611972376928449523780096086078974591626939867108385647195721370749589273034361367964365485701437150390697495611453509039310005695462190315582181835091070693489600622526961188980722900784732809288766420649277767768206145583430244969873568524809275530293032675629841809625330013451889734170382038297697167165745153121002867501659127641026716814184821275876547805420639409414772342967680372358323509467724574211026430506901039741193561907162097843329916441240283686886514763874083654470914182508672267327372802125094399124558704313978059325496330676238530807006582491042012230586961717640045834929530826458048517382523036160127484111997800955665972477641998930320966406843974309113559052172578692381881692990694270439624527072875758237011858721122001984085593136195743552026635360099948097085404773144928094717693777604095275354145758002416282797893394219094338228817828720404121485349227313669545631209777908020319867192573300064583755588681661625460617114452962192290879058926819533003235477009612107972609113399772500786383204292637709109468917532134269569916484184639319596947166435246353136493914318565068179998064610769258824899634897926211339913265402463657205146965631237804138090873112317987416963546080151792117802727743901336274139387791374757221393741989528892860408743141979395203315274956003437484147620530125710892727068062824466065990781836718929381778190826449674651753742145754955056558364941667199034627393503412713913711144396974066357062157674082206050646625763088338105231156819120298153563293301178295807537487847301672107286346670289797941247820762906760755054185437080937110473468589728600301238863996697766618713935794677950947353379604459498184162954883359322034652333980248993170931060658312203441804992563002905720539159527455957134769928885240097137981738753806687360892511360477799238304126706088890335485288612613193138501191764371550015970429764464831145727874830918184215009845435762468889435818246851176085299796602106335384665443168401166731894096254363995437780244177026170003602966720672100954745593755831475829155584753203649104019035499838533372834371574561841491084472526579431726146467010665969212527014250149598165816014198482999956262738308388231774364381341415188926925413238524585299742193833700008311004764245366971816134460804090166579747146912299680224273071868859722480642055888182264016349693642931336922381406744778295142662609578596116648176511883993287346677389789579586235440508967084310226288030016632463815977302434831476715678626624417855422643836188002706377820665700819787972251180070619014713742780987283276321146032631146061962327319756418354108950892914120611241307023747169148564604967730004961753813992787495782569186128479295715920421957029051861825418580035294006348918005177253760272662494262781676208158892050652726417083746636477117227050389790794060504439440971006078907136435396257874121654158261025727049890554810104403349068145468160822863454113804693226562528447969111525558141453762855775952333228063046868873618295495655793331864709236939167723296048146883748253625530817234237169691362224730613333527651681155913013282838985437148061341869063667544912752159867436557779472387422565387343950943584606432167503885702952261433416492062154044351980794055736343769127769672411940775574312778525300767670964805033449888608000654020560527753597202313935981735242791088968395053143834048313392987501452724046902750178725352963026519400076865709256112844392056772491768260389816765644702237596854806507326384604392576052899632700877807963898352223776616154759569309265068224218799975532227282443173255095579123517069969630733536393449419727375858026000412989732892253877457096282288566604565270976206111152771506174302515896466538833268354873542010543741615222022453307252507167602522669735707583677549650483029677486454824331042410657737922698676770162032936207236003976324404493820839062251250293888448627251236881787221919046075838473986323385518121153810508192310368637466169069030361101849266089076144687321074086942373279718076908981430136466753245612801925890874250646615100648991453045979197312781413055822705113457853524096514287492239467497306166152080586113250797297628487286369637683009173721126942747857108311547911088036231685259493756677567297339915151808284214284126176880224343528287039238421832414644741899319093813178774724380313937173609716756706642860559339988101590633659861017783386927687183086394085495223341341993952198794513412579758266970687351457107844621685509957601746962692469961287851438440052910064150533214126302033251427465649942511031537267021980237239479534370973486952458407850397780336448395156408736701207335921424135652438469891985719382664519431297597570431094417897243198047553493391233680903798977850254571702601670476979730373571085224825637979493770846438536408812863361952485897515659060891091292765954979587955128153964083280439073485295162948635004329684400119922785394352215935016677937397620124686050255263540150278978035420855613641223880078344391017187405517821781320599707973685603203596612393721935529981273056702808732271225474535367307645998207117897706453965882533781765859585204401547034699127499430202079057198553412450310370433437353444105416062237071721564621889444551515845331440514791122524751802965729105580291822662722762450739470951283542793954253148952183609138759312934662792849041809367778891184551180229800152146339049894889510726341472746110359089525190956121645984561780884904158403927358085782307007652531781155050678443894416669913658818025023740643348100985559519608723023812158019873712469351404785781038752660691801100072524137562443210625314154857657298239104075230503071604632217744795041074310339463264262547882115875215549742319064268581439297597477864384279570393479539604775281282815167822800002295092492038177577969921575825428195013614665407815081096349744177540800225702089714396299043523495472653427350012354275589340686058134516640685751314789317437663005710693161297713116492791152099972085765311213833461697541174070268355794008364892831642544328968655900023494689259882393164339643430584613897991622558257766953981758763312240982388746069257433269694531266811219657592284782536932934202172986903016350199264900298197043455218507373605223482008954525378418353486956734369857304616886016670529107806153527886407026878840604215165918510809330240825928468358242256645964947972237611543752919747055204587929509931296569423494756957663475868507633697338182882379086807226091216893695447607464162267375475222802649199944493433271110607292740834342118041534667001314736852337523100700577827040555934526851008376701327760381870861077018335910854561075905794597350489916289707260223313299804172643122819365781915036299605758898086713171883188515284564569142476299402972076321745599930334656901831604344618522323796230519726255751948612667891598465495660304661255763343265549024298886942206673369307900329005821169986404029588020187611706416070001436534548346606539089030434679416788071761139925144836699581924546121882777166038687171196481977803028849277640335062296811203924565013498748351571004970014943712045415409503291361923575434708427157905181238530259492541737046752201260075548686546199911570344130083662186880697273677673062483414440307744159656686471751090112097572684820637904250674302569332621755770211947436377519109260097789477630306679370519104408573299625208731572135866446333495073938067257228313261324728151288857648254760946068160839755669563030363185980274378265317476847012994723132677206497178814846347995169390062990478940873204331823038869082588577326952249567924116060403863767188038606919131732321518090767573794015240371997687562815454633627165905956356071477987046674761938621449780696036561728401139161249996173115335701480043483738121927004485415327364057159988670278090013834362004679285256714498423898905365899748443541447034798461190444983131411502731503818886468733470609768945997051249564696631828258242305987820185622943923548938060980275205626693555768778054430499160958182731716762312527111425973837773359700141193186649560019265664651880529199655846328151145228056994389826827333138436991050012533701878948349113694399414682908227890151372808217972080170249188573401130304417421237082090693065896584489751742974998650475067496518945153906460727877232093062685313155957248849660322043529698698991582911519711785458674163894953939078962355897167401973641940663421153360187033028634965705143494987892624900502979810411582243500400838322028401066926555329932280413752761473461797109239502282753224442768471323300986876930139115263907700028084132735163415692001215595052594367847833161769144749167132875917849163019232180538530040967968725004530060051848654099259247026078446109905972249745500645826526884479521880607649848221066821704988816606226575344197722019884656160395391384082072523824385109202775022708911741008730526002096854716633627604999430752780197455643853161608895485965917700355244630233833415807530790680671400682265309963696816235118475993528640227069516570523647039155210857128297682007835573815992727824892613702620156090596763809810778512454787450248847731729826225920430375468129034459920895657674349699986083898742134542541425027623265745307074328915668462283638955963451336067489138864694316379626118476337044177901003387842380548664332739939380767601877880827461958503562305330488953649405784381535038677298184066843625984029654653268238646573933934522591146288749027297877414219315275767730573338460812866877303587330543030042753366648459279691355248871529112916635852178132642795119758362877553368325238294783090805751816067379515102643491386005086024689136812863835326029235846037884455997079519588731424674054119619863947910916565983153101641152586429502416052165985704963335517983381278793087002273057748334990559365883221930703083333761513470384891146217539702436745001974346195641376343471925239380038312551766796402155831519937402505813102844624645861388964994078861386324140318186254091459646635142692460857561193307317093733627354096634976009507569506103439723391557877142173899886184925588276888288974551167481099610830904675366826021152253909632663853754357338535647036184890455395686020615691946471410704339024426955808015535033350694051125669405620106364526030814189176817566857356108867411054831072719525187367793563634467032547658622975043203810652027332994734376419076304538931684648840867879030290125553410542782984003890005173643694703676451052746940134805162579767740442644334839907124690484063637686578480216959008041449266460053151217874687775906551670793533552649329225290302273817471739044312942003016781955817145254086957778403552803762194408015486599512883383737107431747873289824347160553341920179851779661788606796982329384835007657529200727497325651566492428792760960547269657634041596425754771066667726186875242084280014490580050583719078603828491334151754751815656915574190978826515338685005707850116982010531398624417676476998774486427850904504138263931997872402267796531399806589141211738273394391925729571549740263104592531029075617695812689754398530365109542001060103118141688581945979832737767941130368838269747015049422181042181291431331921263014971522654301043691271977467744863496498046309091895021902780200593844267623197865716228335391791613698830978809656196274492851264582709107697088529514984808637975011285456212130858222908006640965067371587798089758801890284747653961922749600557543126631011580746814322401092723804855868827877251049066733112521205453200477563836840599503774070960811726761088478933128525196800278245260202300052027433503071615280717647948977844088109239873428341298815696795819235429136862360210765528364385852593698655439163848069625063584072691175527325756352389363512319950526834217724033556945470279859817236825735608251520392081214987103528338884763193952299184660129135376298757802306559770501443422736213781387177677833956888374068303653219429545599275667843190605077142476047051374991828594113939490543065367935557160746091125905038907325560279141037498639838511331921662349262482388241929219281781848605734580550682431730281116454944288401619820952891614610363185874154681259164223727392269605603938574342958361607569978990611274900182521730883747926247584583532926196621165806634584833647249337856337575490451427493647745108925372842972479214449162487448101172505120821693281854336495907921130504293024755901334203759378698754600611525909916467947970650449158111655782947320594058380212261043147122456369452222431757255543055148717290589584735932626747885669262252779435761274882430796607543982762115779338506129599379785352430353660107566272242362999410773695964652063464573629394471060085567760656532860122523610439084507235275950798758378396106604826351938465743718884458038120027691617681159541055104866128414760577733733450642440076825939794669333174475102890382409666025089923501891037567064663372438113002624720351293921251575606723857153342547315044984757336521259524500925908030844031578019484809561255398924140929147161360886719515287200457831681082299514156173104013503987310035963615764934028770026531557804862767936673001474330862361844110364738467463762499089442852618716358792763481533605654179149583899961229164542679022463777269601396920165350847733555515878282095348684666142965482433637560245851167227491433184206587098735335099702902750303822276155491970367915656143134376277689386411153636405669264522378022817821533117932347001388907288594021692522165548228490945140314384263242792427409463428296801234526223370989641919907611353982323573391080042464768337364303906650986987715220478176899784674041775772311794937067287194703678848043088227759419566626652547989764245604242328629622991586591012813710782258002623613962581116389462379614601835442079063701547675942984236073352924247454995993194234743281220437824165580925188421664321212217633552870247232330038166910459084551180830497014264707295168445299826821503359385916850386791624640355110370393263368511794971193579134267487127749797676672740685859658032040666361987981768084960133194980511312236898711693461604503335458878645778912933031851440623052256421902715434738580250891675831517463125080967379887046339621707333798805415110697789163516296244831273491604926236429541617789323248433177846701576339848241082764019618882391331677557500357781957043255414525168522375255734828335827848707260730119850265265890699624503614349261182743777970374942620463284682560632527782716619357025467583460679380550358232766406577813633880389251043879367755677595371075408052526952513749171832689155982338608431192611587655456358163851605195465391202465156711776783663351783669326912686778993031000154775422545996260619774054331768884022840461133034422578619743140869010951683637505255953364587298729462908292535707843804332268242313806334541455512327060936739047373106287115201974516898311530399155520018369642704801650897803465815060740154957833155209082516625104169549103396982905260929563335765417771862535571631869525219840616755218672076514268799647845741944391283135399183849522976943242350200270770296397954663645476257292733769644920119130510393533481476486364732964094392229292063521882251184704749505458544958838492132740471259241869409190411418792754415785561692412668710869912400340122898467800295336647485121017804311237137438778323310023704817358455348375351327331844584183748276969258348228407148137715756236621249046847355546050846627761437744163187298747576318596695386749514078045363025435036704971739141857607506325576203697405173170193505458569296927664055617274415607205108256243785691853906518208774225550259711512433988642861005571772522022770507662935818552419204622837481870729192367977275899428104622047441282944317558093441774705757750116610300858691100634853856027117651099661027886765524055289895199829961348250391820615245193642265446955765120114979476459532661567976337091817660424283975809777357622030324779085920490945232816932882010219414285296893010885304573082436521047255491802881981891272433682490199381907819545425511145641321889420493265305054327715194706599025406412665095649362650755050576950355503641930987818287847083368262190453504859296304113743382655746349359063072618736688267052381207608870012891237013734075583970017020946059053865565710163806024348723702833579111487348886171933892283157287760437040758764650480501030995067954658913738765550948445679446354214626559228023273683383089218300027701316437820177312061997244027569603504501634792628493984921883467587038094327151841846851362778599872826999322039853196499527542686200474324073594421258314961684993730650262478089134710981429563026323648748735928208340000559547752883120855881325480722804973991466312420030403992951172089762379028709592064077165804458270592900330516428166547037475509127029702125435089996606325490030561909581882457753120016220604938645943092334339261583682928104634297573186733709374498780909408289344665886465823445792096604259266257275234914332912547447121293071800459889150936794277404448136887238930848859201946231772275812713980698702075406176703286581086517164695993532640193029065016707913290913337947248241720124163960769734667491521562490675997569092398656156324118643082450058387271144912557486582974491482261473877471866719707941903198267204017486698321488457648713184321951837984799739265354741491845198421148271732065367313468830506469919130981165744386445556059259861537753975354463329726573970818650834464530245004723799881066714037394323819986246647766862198413632544767424818073134110129652326963215914424149437057447441487544285943970713628055572648147693761096438405998465707846458435674115401626867858288443194155967293423137106005267952053174384894348314522515311811081023996883324985749539822833110428630247605761264762598932705294867241093366914313243226274762958136742843251488814123901395481967640977561579964055078136079558339347717380199343802651359444920577385163493585631078402789636879808351036660004588769942355493761894179075568721359883638586005104751486028224251643149507284822791265569712588041773348830005663315087937449194152443014598803927602842005681913511027792893530188735066778986570554278943700141937566751562864821083164316203068921367354381136169630778389494450016527375159546469817900044156420695907679358082610695088843310288107080259937239927282629177816289376320214219750846845973044853113375784211127828397681917028929187568577675215580170621301620553562906997229337488867993060043017112656983917329130505354665213491375208571076838510825278840708474354677070032437601576597750980023252152135760898461990663416179815007502018032583968691709220806114395729172520869065608907258933595814193866612374861281907268919090227975693698960241171612488528851398577157999125832963304593329308036971783418330720459709398952915621085743328009037291840213222484406060643564647648235989875017934007436742316341529201392599178874018207079702805770289045771921828803348600725250575235484167891513442139405522987102295013495402039799894935983850433912796324283182763169623693942482163240621384633537358551157555505254212241442449105546212489569891653818103770225984174629441298578565674718624645497352588130787710004931234000602281762092928337847284122614154646521599705958941001407668025318601194541239461822534272499652243149198529174499846741335471807518580747685475884963859990002831664070621076244954274535489262691566344889792599640288133917938652981388675139558092588927598938589659886411933310872103738314406765577879734119571799922511456651810269623652855295206330116278941666210609176538139025939714741042675949403521828417786109768312194251302904510204656933663897625947652225118009822432225446298093089048280876614437940875458074799586661172507621024605792866469750754793074584475514908649628146889996539075373704259089906061748996869395269380705773258792506192817947301716080674620281686110995343898571680058763750092591013414471189262908760572993549301810138065762755508285621932136146523490326756550509685764778639621095206224923190891820057673002189438004288610785132822685077444021064884873081711844313184244609557580040935787437499546469913357429890499516522081985255128670797173780486196460061415256182606744270068751084776363871432427484352533026939624068999542138793790598001801868367222507705180554836365684415073611718522393852753330284965387838462071396154990861112362069180234937871848734049712805038039095489938076317875441971402729074991892164616853669555839651221909377973115645368836390790451369140917353252055826125299550264826232077340327372425746799423436047597738309843558859804205913862956725053903832211786866917639861464048059095246372577231217137850947347479829795579203850561256539708335519468817507085859908312357127200946282655622989235654691195004475073245741246284503067169869635165524398868385473055965214146159071026754949477707098218149359129829013008461086824013734611564298309202595161136459794774044561776965853250928783695954494898787513839339781663872595963560108561019882540105854994545967509457224471380961143571431464544457627239396582088270336894561533441547459564530610788440849204617275021096426592511093369179037351380362191310568508819934170197130323758989435492997895194681934953513658578827579137368730550052365084235112589784943023382588420982030462287874545295759938990344189177677634885505272890970192007932245514716063525532513327404469725738057511660496529225744714581289089375669996721718204218208963079298406162957568492956425003231113307145292965549565761066353439845358641725147435559778171783775940907784052707217343837805132430765831695608043260456474594681526907229746537386643869919367783459116539637467638047509199512881465009451958189264735369382252357401779257824645292937269728181137318754918608993497025730018090055524638053971000821162403992291596539869591739940314618014176505863269264800557519768167137275919554963234693525020579363146243755087040851418178731643687324546626580267227700878011024382567920307133852505720594617100531938884162150771771910609991671722696887302882537732092561782950070323019459846129048619313430444452096331987598079389794020067832881068111129934889016009277896636131858387074932332179655183798864248537520003603737975947322380276456411782324328943263074436492064428776365258724888495322326199799204070759248443694123367977389156974142706165385429856498373365954940602872455081608695374045610901345565558236918100342974175910945864852509682238888525113973844998999549106000777367075538826077425973583227466979656119326172467329964950558586917715981476605390750129886933368183625757940802579007046939810192919691028564464471375875494866744405562014951448298918719720514254350409593277057147300776995824054045901130020540132482469604169705843574018297584060542378158794895227356224324932768089231767444092283472999244028097980854548871384812669424356556639425754399972463711071328781302397037884659843524390858499363797336903842307198506902566137057584389388819888134864265323987221521498562072153876906948685901337985083686655207485549276778863823411782213479907396152363234500937991177219475129557293419628229830143750272013962257439801754173972310300408665945723554353319137321268244253158942818310510134344562260939359499904400117782554728688619398311793065744369678967270503361798574495276554190094314331870693369002250866798376759980201563438472893712627423243091876331091130813109827516536409709984480957052815043114512346165716262757147834064379668406752101934162042914986163848661491792299979777712931378288755560424149089148741443067973912111208950386364860212789147233103297679811747492632213749319429231067853149806746428236239286648408902178865528466660453325469212868592517493156748765634628438623108194281459207348946010782222040217228855050371294292122522277070652442644839538112306538322508567890157743580545764654294023641127253650815330711605259822370070832446703815817670295949255858377110086758502546328022370777060556124411082896630972684738496272860013962874886182105522441964270738894258850289775592749098698973028443921412820437172065908937770470977450837660664821227776003864658829695797083071298601595228144807458408891432531745815978475383567397298771111352801603323721898817999052747133238771519871882791073334171530182034446248279286631048032890695181952477229748236026104678914446246800891422003036368268594698157292813011239050549560192586941031048955833417892571554744784164113497622258784602207412881302532005566389521125244510543538194095888946507363967526231333879575723259573516850220647188240449674513159762009485661153240120243003690154547233867093703072690860225873527325554575831793221514800174911896201590298560394284026721510094868430222521147081306638482678996486660403525011390448194000751922998347164899470026085386537798178071881479261650713622017915754549748206726996993583602423615472830754368865463119809537338809788239387848623189659642015779331452164727096328621845769541264474528355412798367669413118268798542039377763088915632371912613315576320837586452263312096969114851785941671353964535912479429450005675384193431160518901703495520614389867136838172418976447776475979497265528693820734083796733177515339054204681096959196011333700354930057760752376714148224549067861895051902895269087948332460995644178332609596392915816469951830080221216695171276819511450129573495619270786682230700348735909315783161511524441932731145816329731871784122169943890290844266990025314617915045148690316113769763614437919162479374850654419793385185849187150922220335275075975322299297931242522281832964026920579245615725675096322382014569357656713240494295896809647332926194463310854634881175226659057511666782298476831399024645098974658338619979955238466419067358164161292468572525890692879353109654257746403971520158847915763714951558267129035253448922315928433963218498541514977418548699474253979267254692538330227511789792189178426869446730663031653371280771062862827441578367284563876199741715877798993651829003751322223810749469129468282551880413509382662907219069026948782644761608148122486720478717137558832942051080966947674226930316114419741381850144015943884498078183499386842618603207384184375997402212515232970640228733625466771639216264210062050955496997002837841829616542054676591019270273307566990665009371690278494535389034325641812314169144292370840616028353918688795467425673795569401815817885874477761607197590308455218277562627850748025352822942999682137039366032001367604865683416303842861247260116367722764795996578382332634399893736223138575088013440018693642304687045067716210401334997814379653347005956793887147815572317489788247887123087122424453562588091980308793855696285386322535209249624409853418970639028312257682675943771266800750004025977348610238742472349609914004759494963970057255557731218746670130178506612532629729307608086175084374298667534567179685570002032988353981264116409864558999068397456067536541791841236063906914976210302448363693839550242293551010953813384830319341707322673198897752190251450358410104477950529709547293354518014733318745270782309270736319588113112608507590718812135765241891285426195739783222999463135802810736840567331349694037250548111610701692652390887335811067406230440498850999899001571211780748272995800893107021808872081304896774643332482913571766075005495012523745871603547160011856574045519404222693323171979242063708901632101143056681495689152630420322992104496525777056007207625743397358008065768613832156089710073688138793278256665851158266602808840131845676250162932778693727232033909329241806145868151637859979801348938423871132685287216169250419250869623935800342512342108332017218429073513639114274379278336109450419794185325232631290998516654282620649253486882113080268049308438282754159417845468612477748334784412783750728089768791956006085352746063048504517168385831064608527231840410008389812529031257116267402151364061206881889711807155304078822874599957954779212398402508779305627068780952370334397628689659513010884967968215681888842594589658093512680669664183331501605227259769985854718510022252919140138425164051328591096238877640570198083323591981874424530620515768523963185815331874799432023533499225196162684811975114622709740658467190221234119768652970436560465432549378835008956387464015888867515195129301827801024572767434865870591856242209154143705486681491181136912898799316440934320019337351580665560744884769311714786060576397317254609684484518860805100600983450302974684021045570715303768059909783133456268850760097010955334725447046287556167191324277325040804497165382837801634118267586362677132959637657090806787492914787346083320156607177106396254570444542654786594632493429029951189032202764438290929750846299131450634989160702500726063529026300887717043897145309719685781897213868319294059213770421071222967990201427974670991851779889826817892882349776071317826947307252767980367493574584256360637724166360472390281322677784275048474069381742605894207860687988366405522549139137730387925561395889473621561088065874202329816554825455468146958787768112045571884170675339583574291972342738554934598856785381646958321592668389913876223595203745962457363973684557824994012014490087193910708763796808606157797098078421974844192821167314399073384266398538272347288207447367134986879677056070185851019269802772167239932786281045924226330347614712414169872173712331084758799330298941641157174882226066386402071036852063260094088641054160554100759357228334668285984457147683816357861853651369956257704450692107797391031413634994282189991764607637304450808002795240612096290552517112780163719675762957819308104356229163594133314964663390551248129390274356123391098701413245260234237315090277630914681609098020315367943369113127433818177394512973613563832892814173044915541942866527331488910115216682972064289943784023998390715470785195885671898899091814713328065491344429868788703310561851687183321970028945544950925737436445228650105221810443501502514124256615649656414244223366239478033302326650849359773395972839130223474494969780301335304870116192426589582036223650668085705643783588903137893586069819266095503167638907697162126372506572069493025721627870382102227243953015129808086506683457333140115643889296341650231030949579860835282072340661204997793292109513821263312994473093673951736940052775434306534228633682866282603256409068887385404661072634119097410962139998846724183301285827087251337065397108058478103958781740031928385211126389430284820987498701342465085959631004154560456870047366573998674860519650908539159867386947582150978377686205023807079316848871786224573099753606359499272778315196706276411317372041011480715669795717619145016670505995247790342992478947642609106316442727818256207840532875449054489401245619121276124888080395127243054328893918392233155811972651197843793933422520319685799413393307876551156677286272703925210882481931451277472852801466234240228966695648156248083012662345944753150758139878258915539017900766757465477183679005317279188418950918433300655880088503345021787087024270206678720634083471403175460308673623402179914929079792701812499341573636166161001210307627971158250039582630876706478053688390951467867815638722087346866696950085785172381999259982153619545958323897366981920944960039091958141552857796914275104896984794470710686664308895807010242590598614523113709773268239024129433379949297683024072245053527289122315166147080941406172807157075508530068293880222904904390089927358540058771037371066936975601016359172536664787432933990961873684782821191749910679138023860720875445835358663140600716908527150836414008379887138379996783763491449006989286253172754094843422417440939458446867177951260170661473704307901779555449044130393742510098772892220262481997301579710946744202645598824688653398753110075579561513278408884431256697253781628040051213752028588795703198117780542582409252175941255303596766808918313647729729698177110173799272625577407860268045611465105633255473127659818176815667353042240236038084268028836936175634784112845880458295614760560072802220447956952311227337546520050796971111400861228463022883120639565796573744490854900383450619678134470249763908076384162198063968583261541659919163293674780590738764515446201806849722473826359688602181397294778248606815080277598484909198703206886654031671826435758065463166993822987017972947072359341381432602597098063508499655241009225148454845077393690235643638921383978601038702507267798918303719331267108838355366143489793132199244699605428344142506271015139095521947056479911457572026568708663326980337884468782436619300127104931904548730438743596283967313697358982428127355345800144381848321562209579839503126084186402386796693452093871427098509020860815836304954735335327543150672285718388186566737360587074044042443817937163695661138839171065225898869710979049562858713053683281571995337278083036331385265573028566730352939592307880318694029376312759948627222159059210381803039771319661872194827758931289309970352364900748668867765171021814475146359130396690147942376765621556126878673011722833909779055899970626581937277553093924580761819291674630621039019720884814384286240149332144260223558977402828215937485590282089853614601971681304631716450066300387214039712691905973845785400442705342868667429902419629671715059597054113437633969105115798710959822017044126179036517347213917913989916706007083000188231026064347397179545663342849331462844447480201794039937568730315920934459212935449191002998639667525249234263117228009972582348442764607781262468033744812750347918146354313416762829621157482213541001861707144034841469558203232012458298012681488717255909530036170352167423698554209515043669277477233067703670499450924430065072260093585020559017946065350178221360769674268894110439616379930196843605618433810983996175594577954391484226339457386226085975922387805941528128043538037059102221477324880846760292543733495335835742648805904307542619070384733176517348265907695394387386119581172270514502148877021666902871889462411460385585418679489847230710974397552289471848823333743861594654649920326727671392311641878557623217910056486225565856168486607822411821711649395487437286362911380080368978641063524073912666538831807487369118427755540677880022285780170276499587847464071783965980673881180822642953420355227919340207391233050998287096559628595014751125693558278758293425504040214270974891386223926806147629940471142852652455718278023788553085249838651205664024113270148104769935837009371482999206711399425759902880519984767491625460910961344490366518691661488360663652975724741116560018674531070014950758591210122512359987884009286375341636534425457204473583211185567443093572879570978863502193870951764876685112896901611805351895831910084230040129517025134511754616833895952274989684927861216646208839585376860826250212038138359517276728583480179364483738011487197860348330701865545122674766924637976363607593037707759249719289726500308481286125073283763922114913377865371667445260449068237823656995276709637835174668853623826306571739109293576148434207180437167969593538230907470852460667140886172233890638933706194193348852290253145431215124691628871068531555366237223720613206283217958721954270429250643409759478496110769389873770489751579200949422717264837714611231718320813442074865681540244762066451069476654463583695789817095325583672013567366088327746980006928270126729763179381310395624582113709416312244917827688829533035995659859850241714460850670102786863104872667048241506159648755823617657858228839607516723667609586434997913096635299329150576969526031911423658475845696133560326026160603746812561314120487372122653919901953382794033380558715887258448099718209262400366983105789220134367470558024911558486768255245874575401227508836348704788777628964490405317984488363546964439874022715409704673380506857796711217831984921551995955139551399509048126005881600410921091902136874766745269333979515385349108954266013254748125932600060512518020705546278427226458818565657106409324047770835171160370247916822285838110211503177328678744596910423312414632203681091334840552341060077534769465583229721408764816483963400234598978519589642253103016740312417388317891502692375308286672148219968451613250271760018832433277790112954856467741834987658885216495995946577860004978057253041818442505793825518828795080656729388293619378946046465221414778144118177263186863292802759350093950352144162007265656845136383952179120654941758089180948398908521693186818755472762851082671713666307100217677956698494065392840481464339230937595108506116621394845304845833834130985565569442898144926645174006647381001347544599386319837145953567206496804404935520131496695235766646859325287075967580810957278695265271101085767014512465712317975526062305851329325614174886867166036562992723718406622987813462465155500925670218684388635475918974094723786564953781147966531612100189152945575668651067805570404714347619137419994551099359637241909704943806156578400115835292177398408168731306904516171894347088297731061845140885952864366145317535451776527724877653174553498605734704175407757966596173435433891929134105733827275273660749039658851186585124134597862828729609321284877991096196829395067233368769820464730326207532557842053557698301983203144463151079644817621394683098776283128117696969951782289354316746659242634285371215827375904956931835448153862325240653088771980775434853552372077482261828098728909569678471733874968012965470571559359652025713325573067747428512769832004171169691233489192976373602714506612916294560817141381395406885846760146533792899993355726704619832723852819644320179738313510547165560169370183830326675822933360456051292628822455417979281153483110404077884262795090237540262713979173155287012365297834762581587433486231011505798503027703488014444109843529648686809158119235360173942206212747635314255695315664408572189723075947774608552376011793300893862370921888279459072266820042797571437633371001272347261937209039861954623995796689684492132073630693010542808625165351333166221072202418348661838955176189981273745661753520546241535999989281823448165627501080748203104398963737002513790350717685925074822177698902120068235453801408714230719375385502686166295276855746192164293329875233298110453623955719963231783255390856531027670672099954471824373844371729873943195717099129884426134516562457093234831963577104042996174449955410245276794502070806206246805411737030096060918790358370058405478293973976651913441658488178953461733183668378778353101510008629737038622917784049303165435797622113474457438822136448423814829685756070056460689887952120828880721694812036125663037615686355598788811886938884184059423514586063442875141708131152141358921557309548729854010610620029262514325901674055343258015029896426167774005503194088423111800831316883923116991063724076405548936375251351523045320406667482172606051351947509807235537021867063007596410996409912998761352074204186868582885674906279346555524080637741934896049423531669373942809007612022814626215168465700497684717485418367383775033578059846348975244134643994314331476526176175761062115946198510583256645743166706882875927948536165874268662830838422516368118347235346010698764639264130591390292960389322991485457013112892254161694051272923860284329463835394514419570436531804258475376268548719147303892477945841777460962542368994512216083025390944090312231075846311032650696610568452795011767599523320257161788686483291132977673553534357868495902445952247162549301767339150226022197911537125769555486072344854362070689082441019872498012003026473839138692220860663209664736576380802825761419308228082316917667491867763613298412892186840410793324840030230691859745084346691074114271618652488492024445344037938943704345597585243945732132796618547506911175554515925819666609655165519285946469430390831409495866027655002779419059618877908541721426417127866338997484552039327733865566981856176004988610124586394712626160181294803045978611395101773417099657731824104245226510446002657775328820481439862920064941641847499873505200064412213530033876915210463150395013741404460327559538694424871741310090395589500423038150500328725780924139975480314808750600244900851882688065705870979928544266597786552040892796763382367018028720882310067932777369741751801578629136249126378597172091769082415049551682315206608712229171841273646117232836987833797907385081736137989221681002399067908221079813209350359918691487087311348789837799291911432823133250486084207489789417280797889094799498351729977964945068260350782307104793310632477668214651576539170715910844691476155031073906291839875635420754747525197978795289826631958429747622566871828911823586271209767040073915764968660644529785210841885790534911175347251040195371925289763284035498977222263539647165996839882243225683984942919999197030676801464163229567227001806781878487469048211454107749149188438296761983448793078355034527060586461354825689692309896504660254729894114531279327439232228167144987088826430842939206028795139514248726879527469336586593587438091846080921228646569988932083161576505438043498775706008873556745654081183199473821952898809336989542790976375032559288622533237387727079141621302976691799236009934112638939542037882602330556796927989559764664509842088350815486822635460280276069670502796708720786916938151726715384295019158938793842688347280361653954735745165566269732822545453456251604403594108633527184228754629600004077225917902551590256861513015134785908546460432768258327208773973047723349051184731489218002988148092205709256047274383429058863124671755477924505923956926243376169420261163728440367877539574902399696662776485062948791711813350168003476613748656316543057570437032808065847834182048375288975603151486644698184055724976771389184711044363810700929144396380353865838218007620622867166095234916521751279138341736833027505567338701048425783394248307763371216989206223232812657640405718002014436175138587365286004120498713060291489668154052707751009755954741754142739618066989925941260319059960791278827151159496156108898859358666026551357162546997543958945782989405992688445016515089563036251955602562612884542206409449248880032255464111179519816174188426459809625545139408526962597235748616276889821240024616122356798445083762175086250366140652724929496204496942695128633149585871345383510744120690860523225465102101477468650005973774339198332337318669480387737422984115381274690473956322812128609971551540175721579773876469802197261597840532271255076615498855912934918684289921655019138766012921611192526650658069276887096727889432932722315123853071627613745074097019314154160536700964937893287126390751062006382372134807248126930972163698371035980128962745629829598003925155912245610029898179133980216184454706810729717208238840563504605616072091510182571623311176200186488453811256911239075425481285744672638228598792936591133148797204909886972984667863025279432053630801015789417579389743686934506671917269727674297842759850285954591895313571107332431163029995444958016213676498968520315436768802037365172738339066771768455501749123475996474628393712449184633919658561077144031263335819411162966975107195083951332686922711374892684122396457803152900813169377798524622045895715009717594661408586186553760135909538715668970825812983974387351669015489441048277787642064175741380943558786478902265737857834483440938309686653122151327788906518162709124547358823016773188356110633029127117371378154847041821012306956495052866435700068300637842023026265907665048987363309387203420687305832879311596376504519029913008236403709041371003220730291298868727514849233519031873471682243028593403176840724834087899146595948669979732277598487738319504657220558757395004756854198137580684204430620974140889249043318190894519869556711683596693839226284414107499848809365254699131428563768851730957600402798194716023024394389018589052330573716830280329970541313425911949806437600475558617336424691729339487868758592281881990300513952061753722548509694652608647681153392021052867301285154280195133155444255420563018024562269310739880725208610078473230675314737815913930230318310136569592522515397349040438493663319608692083574785920631159653224960345176273862984032471703133143384103019374372794014316949726344330538454430128996007551041852327322044207935688377923304402033522255879390956494114016081916312510043163057260821929277083397057642043193714069425759064471033717475239584833452778703073721226682056669087513177749024735280496629052416111569702597650251294979846594489613692945958468429748023285274527917708881558631113332836034780296340078916537514165815642938359763086452021203910355332782342508629578022517800157793341540002939925770418624198863752986833571245157433716991719434744789248515228124505290574676831861591342825629040896776586972048270612471634852722432850243871375935629706993627914754391875810485463056850468726491214931965678362456109495843281962785819701376107448979036618022275786134122177802832290049600028698455676430129089043151377971343200889982250231198234911872492473532548183701805134830368669158462564679402378279811489172999706267240429288948767508616827564531472234109410284693196152554186032669534756770944591780954787370368302522929518925629584469726819416453221142693911832374366111664453303142325132639433547864528037696688782909708629794114675747913916378033006071766122084662115217537830924583738118314374705251071066894852572677203634308560972096021827268465909352750219213171009202840734725461993971201772667716231757304554832264562354367628118334144118661043787505394966389589539445528737341179081166732117133881700562929001075977887109100848935543930004113209816909395013074337891604508209977393759215830971069351947317027088142667318938885578978031993348186509650449403076092148103972274269134258933615687546552458156680518169721003369260101179315356178200714551857851384928300412270774739971556194012735479128325665812116462815588434020858562133293685889328000037498062831261567335273030684081157348369552951254539453998146840597362148218334111343622295004326064836493833484485279121289752139965135649231688293160403044276866688895607849692505721910760520105882565509155491509780854255407533895456388152479849650437093480954801295640076123601670826536793591906439807159649026365592555996719281556149007095564921197143355179050292969991886269294957682298939994958461003250886217417192790164757225449651321679364251279032136521790690931091060903293787954559730286041278605456369165034052183897090362631982895939783295675679915928631167159585114886145781674868432414632708636281170868562031394711062721014609335383287814151111427995820013698838794540197359311967621825502204076599452510107182899523478595537428277719216157923817822808930618212568841413898767262947562966804164562184969981738069647058981902832841130833882863252025343323000242200697035302980127628874098642869381316579406698030112065735740964471895485597532722374167508032007500285653561308619138205761012044793070512729218149796475316113550503737689849632028598175981257425507234213732118220145595747614814325058840259651120731110172387429094250718850501593129909834231717615060917215882283440487513175951220715389912773925561836276548128009137474676635597409584981691665263102874983777461414140575833198300443896962707477536503950680064768683005897059117203740914936170834858349350432301155459063766338294084671776497820083184087688490671846997448845282518065118741034522665010559161693532810025551056675970641640338321976298362772044794382967120875795879830707422663736584482165304429774792222090925462579207189217325155436199556073037323528003052096080398715519950227703340380127092893435764205824442288136692679232243468654342006191644553169941061661900100119496966070708502208046114408639577910401542597298161118854044503838587635113992658878849744650863072267860145732955541397053344221174940829318636374376064896642883726068455574202960142779259248644985735943197259731193856685650928750734934193377369019590638989582412980230936334275617648245183943192810816773269971139086170662710510579979200527777871681645460891857537173169036786030523742470280333212966603436205406934109477564649672556310224608879482601432336999991707180892894068995134597511167376084600880039021747468854999221347356701074176674226702458050943470228947056224983606694503675656700268077424376796029194130978184422225422507787497975292799361594408551665688930688938592175099666585569098134127910347494149352810339006435453227435227365756781469626710129493325827043844937174025927863618625210631000202890858995623683414601427163977298805286459933237134586335414032008207294852984132239756310780647388924175034043224751720966656422901177329851594415023315302946607018824128666701884523728915595332885126662539630854848835964402967813635865762676113393853803942451336412955809268280133652050561687061996574187772394841546985624179135646737827754167253375931638795306485867138019496773958615363989819581453144705851618723703752885085789936019463568512642905385304408326238570191727966412194547383048171715043486939572127457399966396052020495119223639632606329468519769658156657753094600228811102293699290417075178278890816460606207416763065662054101771241070662629040609121113438763852718723341613662445250348566692613590738958623253366860550045809625710608007995211857996523792171036431179966406804156726051820392673275081023394068247558417566305836462448657089074203403733060525728186718626066182341054418021271489276084748113046528284424936579728883109373685243863782706997384735838077039417629607284946688316028806631869316952201897581058539454934709095421356898430744524437240543023048597544240723915201782177882385350865703535434881714929408020143660918131771656887093211731402000011962888335127919244047895631965753580705120925691258141182640063663257641703804336045297193837182614287950778071541641317152167110644291456920577714243748533274991200673884692088778190939202823854213050919421551522631148652509863203629446445680286685245288330740083847222794729964446719685331026881422886108377873566097917903728344298757067510849065987012379956532480334181293194784345629454918017841627080907957149791282179507626765608157843586594947740213672131201773728152269255124353968806044138799017438651506060564702789531318037988980358252918769965965509934223538383913151780528849540159095639286023292351378468117939808920255411830825905493748071705269365735747627463093151700863213871503266151045722464148076858298270852712669111546946579773142137181815413425000139174947955835135378387141718206775014111483731577784735530022852326275460109727917576098947313405786356548723630862646627927844826041565653423945741108375112219523697695876596151426892249411166192851759391564279726162964740497669141513133615361905350417677422210443745873029189238866084295678250948544149684547842643677904624456905034970902006010381314468485235329903426464788222959581171075896561471627902014954627002337112061492703456694435851356884587894863271114229598230369122119131061822923324632912769384536423446344059725332611140582117278902949709688553641070708199165869750558643152048702521050231964978729211367172605679515814010872590345445642115357052215542019741271325370664270910904756350438801455656785445469626556599091835265583188705084835770348381002334534644117664732857696554614032592776602548958516358640289037046900909712176610065478417717021401685839872317349764136728973607824822978147574954325676537233770655493886449636999533732655390415490780689025542806088857945703888034705628315554000919430576390979381512457297075356720681740659742184387766032884625650963642278757525606858367905618778931555152562436870826841585856010659543061209625382891813577635336021103880145797191520616725171790669532138899663062357372203191791772083651172239231818076231189673335585915958241221221459567093151053697248109404654210230410927034084485646907504178877754408836313439540371600269924344752128872480476062156579477029721610351465280061758805722019498629440342027239101722860274727330173837208377372044364309334640974590323451502743304445838986389597851587258659525800418885223677637776103947222525590769779880556535964548263603782729799445436451612770933996062384775297505476473115276354434651078661617799109993536867635829242092882140692430197241586590639353220076609510366632512255189652575429582667620199594735163196328775186302843123274798200530428041885574663936099162484614876763900466045706209642133381802010192424378595122617124563646789186653113890413211123745602112373679866570375927634172055580294016708554789648077898823577500021253480216727939508565117965341252290963481737255919233243678309688258357345880194676810860044778900004399021778044436687633602469473839920562453390779155886967430350142741443560456362141733811242588503553192096380099781488004274590221216245376105781530049956908366329709017775916879501221469799756566914355198648055410961460233953399446670258935972217017286522880333349646966978110257637614931374238573854712485444162448344590550996990747518012440791282063476747914835506805125379918456118632185491762726698888132469304160819578994023536825052674581991774659733563336800473441449953014508595241418053725864587952739298494145624815614907197572002014142676068516163029207541759080487137578246144780348817726635820122617949368161371754248313938374892699373056319864177634487932071816761197135676205419030949737967357869651586638861194678824631029568117973501299589448435158075769391017686996681282740734677297611492344395971655961381698342098973510817409314054697123899543994789951919990728853931377799020234866250966550708018069518358955627772595850093627396871053213878348149206117834650949386326853828725116041414572230378196569342884601472756499889189378558118955223688215389858776347778764736756753672813832605367903595747503561080384955016972405945001450157495846347245349423381916841107645599589004133211061485088855249980812172409774708769449799737718640291921037846591747899698075857731959091449737607018490384464596028950195301740292601238837343969991636635310618429572219437569719779489543744824593678248091978057333316832135897052164529173311554923186300267469862153099406424004624323925148585125190881067717147062910505016866923095248944963461895753058609827482815864975972420958327654207060646201065492188473293401947466426589880667587280507514443604906236926904741589712951226683953441042989434127055353194889648649049978959904850818424219491929656231810652427281974445151971390461664249494535511696217649826640297258521383687934125630174963295912788022594266090725318269279134672769666430701055425564936174577947768957025761107536822390835557643833800388417868817900081472752746285064354924130649531022404660104293868359138281772733603521365485031960832856444235800415503611454723227718852006181648153984493784437623673513644118168467448214258031538776380222722575802584564743121474858731670067298079991809185647687149623988383497180631770539766559170993258320765634588282579550852718966939335642629135136081138995934493195567353956155795855167353504733401406309647257350239825336819789980779048558061187602258199279740492979498446157510119643074602856216444298063347064262582881041475198424263231012641423244698759953431786826500213853263018962195403766074367085491542657556590992782532576771762847084946856825574993159136958644866352623575480587208237491170288021548141076275850490778289564511252359970626334537558911049476497089546432178250814043258470312955616376549893728938650307537283702245307718478982482716570329095640800896526829748277906443017790572154708354200197810466059607241899595467198483978310191016492468764761919383681893982207660372083745315003372674001301454820314049269666893976481754822265355324127225707911014963480508006773475148530475672291972954734538741349046777702320039864162909006646378624647047797054771899158061265362731122490714246066085013996710642219804625886741674830824064447376673852390009252997236756945338874128429149045069894165156994351933484772815831832986785040045639492922601136491324393987946451389693368298577625768032583259321873400935125698569939680356635623518622081929435735667149338080156350853637985752675160044422561671144988648199115983754121808725527564445082873075255229327866902757535445245776019716964877462354198326086179843055597994287466320395461118181393755841289979833370060072241066196951963952793410273480453882178218393122931665282511272520242670649453880110888234229439169371805653333410746113684380719727617283491119678681794869002761890205829263002284023199468386167461144304334197952083201668250237035968147875814087026316101694543737651120250805603471958404052973014026749735979737297331833823739948825209167729463032230234043958356183718753714175854451418993440371719605325616068643364678597681248840044926943812717817113902965297368583617757772021874739414857937010416826838252468569672303842381195836749912240435763842498295742605671917418642115201405255421997928957381963493246850303821362907111954789226400285933951646581198172204870783547931753941382055056644104638371121245202870697385826318725681668211313790082522440929009040463368766810499259922963415564804576513349651529372752055644959311409673961140135764373104489584905843335883930116857235882719991384035805995481886477665832841697036638948032307662580296719413390381792186081276437639228602845127141807318026016684245490884137648690830740040316663025738312867361918348131321049391240990164840614333878916956396210042672357661105628428682932886508437317494344566915847755711037280688945407807083898520313859902579333239489048165298076154379641592680858348662175102070279343905477398109209302122652490511410751819762639321568038017194527408198374522176604525415993687119586219130535558280267699763059487562419926998015936015186271769023681216107855000412054505331870144454207241037378676092517613413004300873548052350442454887577196986811323924235598462746335505787384933679858553779945705376546035395503785814169006570069306397676319203410610309500972473370038266640297459340723325525114962002867641225619002639890044735132694307627614588040233022364433211093317868737249095259841602889048193615407028833320650415573059956638621389011269717424233353913479333013422908508934251688974969651132446377219048912921179844295610066070721784678077495767230243401742748758252531433952480690499164022262908689437399389828447517616764410288593760721420909148373464570728692601647986071206238357667284012725828622121421587639777357386136567907389592548743310884218162133290054141816936729023586869316877098768683201937079631617029899286962054449902461691855754577096854180654646178596257352308415717059625654017247251649818697281818602129865182226746998368818580349998412648959866881582929620414248717150426141975366312252525377567864062855766718458302516759804825798181388824142600320723270835181302773370784403124747339606905061632486419345269709985247833005477711457089081017777374061899091285490661227909571379944637627632046941309020027304962541526859302941252684284056740405346974510253583608593040523668814292274386521142154037095745301607726573087171161707644827681757077521002141086478062380896724329167941079434255248367046200057168892696694325454445114455700163987738407183757561001857936589234416594816706200253417818821005226577548179848966900229356520196662874543328406647636871104889932069998822275386625062150480664433808095776809704090557268277155705729035357544891471389987120577576727521312511649133338395350402742662772954741024152358791936571631012114695033013339167685883316458276907861531139592200490199351855908451147242096890073874499872973595102773398912465918280142923767386158758449379347367697181151235061415602631365317574947024367628627477212412794002413028215692817754085306038837729150500862199917903715597809743822253062630007585582984545587350729849262048354462808526709449563946611627160334832140491378823769973890634709186906339045730658953463970931669203723577450326458406321685403728014760425280531543630999559609962241760491611619963657174036987330866542694209046441367296081471201503427657607690595865229043821675704967793920597591126871159306057647840068256917635272017549518905617416978299555499367376816457269823309418198598775257224969911131464255862060081006195346214753343869843808171274737412078049006533187371224952651410553061003846617597866795861579180875411544881028703636442256179044785634266364682287469145808590039610459506481881865279749049757855450669796957955843035232921468387084927137997319158046214551608179053129417455853510318635750183959573301692754774722054462143447749066679813716873984369069756438589860707712513159961375126885405895226915123037331168932061430347455812376451267127104553687582112365804724810710588276044890550330292033600077872907279739958333998764190270312719273422954991877402299014709073246616570012650799216503722421872530066469090163309864577058689706240932801616916032132603266531952565734954633369436179408998622368807107576093019669668461011096451825894081773105158660828706104425181850632053245294482575674401300009541918163390273330356150408107025485403308974912600941753044171068463439841809407967415029815787780215786445096778647789807492053642579824431111904865164745507905900173631222839037348830596496394659907812033760048871010963875316155279640724851435991364772824068093409351083417932218164441180592921314413610301170145796745621609380905809873742738591569290307880406020828712001522277048367046442130531488810697969135347431642926241338685282967139864073912034721816712819871229679349378508724864920421030206799230412715306173141760891723908227252999129541245131235973079480409957616430879498697999721609473866244765328762628809444242340960088438828786296984532777388492181404260710835471670062603532884435509760656108532139216094559111211569667892278913401164524022075881378708197458807820537634972089444497736891330748685242220845892245799064713540831319206668100573165733940686799236036601177348913261977413916306476726083312702959977073912977593373774105030592480445009777963180707047284291376736541651438039637763465740814583361096914350041076897446615324871223572174458356837690037039842352618569189262545671757431294024762373338926891818920045650958385587533600920001642039135445905314192105280078438865917801847083854883203127997360206396724803396989107818770917347706150432374700840015140659109746957847436209105919544268039232597118116355146237412198601230583303729978952966925854223724738963831250675136097015136074610821029483458502115210882350921757804591086691489488921351639221477807285216026872330423747161662560695411570109265278539231646806535571319768242087795787008841438169368726967924059825744873845198461728303596154573433581304748455107858040027755631564487441205578999815135171612687742720515306927375412875185274056798383820861730322810840751957419763125351290340242901668943892710564556171750280774654954492740837509519550975016844273752074827945534350030220201867085848012518956771610040787699748706313011281684464558639697310286283083215235805436423177645207825570460510379537986739072525737043993085503728996328096752340915959401881212960553478396439888124356077844247212509498373209306108311936100422979717247436924241199945549216839341158747717531832628081084809957118921703725902207251869648090417808687691945205897251254339061980408681694232036213768926006779591625069139857227253861911337023083452103317536529273861195596487695106351063943610109107746551664942170369776314010036561760667444198866934702630713939401576148526561850420448420022659671063608577279465701609111399719066990339184924287056694471306315626528106672940456582000341647305127286694782080523170645600228132579937141484685056421030762838423994504617972829414005384933984907964585770722175051088895450434693644639727923869446047596771461853459766855153577831339456146414462742278598562056774268843983808390911078200680158369420740620753011687080879316830438648595871635313394313657782901630498391810880661926890040789540172288203576782165775941007443339097698424951370540010596461881464097653574151865139196816326235891074688633823702286379322190581582762341561441288269410948212545145781736455323481062445150382845815186109085308826734710621408059739985056325042959957434822106534778152486209670363044861738691518789011748920059448478524032295567804834921249506644052489849417089393172079021136130168425714210048409163779324778973880775447868023605646357734313557571462299700806564036867505313851770541821278937752341518747786655956778832093493681034057403302600281445011186224444002478406828302370674381933059889399263732159379755529664388144062858400300642201394017516869260651618314472498182540256054700474165945487419872300299982612403184696456417887262387273511290116870412358114401407420575505103823999490103785507667425010381115432319264478747683634461138121351157121205254057049974194755424291480959025721523808242617506145027961392825776589750685377020800300534264331796568787027094583995092045070234110284424160573733378058944624468425255562394676907677243251393670421878416298669636970452302620238096638983643284536662519593152187193584734660927964557884482706224549157884694454153389726763328160880618120582766371803683475301502912916068494601985241288686081749756231152498430801487653852454877276389100965448503829210430158084733102797051881689437759059629556877462864222032598442728392953533695132013886631457638202974355863452111896807131001347520006940242332820450071411966966046643932989643982273335285894381949900400977937465819785585416684561662293902523609582694061812692786097487027142478254184550814228905651947457475665320652797079961771891493334574370678367548837690983985869749178197453729057944006399300346169645211464743498324101540313228090532833934396467366132016244580655409609045167101652165405292569054123152858437560039124365896158911592314024036834487175517093221639563987746644120062466257765221031049290651424339092278938480839462416220173644828601585863563697305124136635851419850331862761387539184638365175536586687105619014915085346346969246318186811773721413837775781314839802288282603338661621829424539901957016136889668158632968551938141358580432148546293850412588836143898462855060101920302693350027266555578306646583991714734255991192244978612965960185402498622776015724400443309976943244426959563056198755199448359042578265478621085040279137234363916397695099377969850040369694562376571826690834748631203280074435869700593155146611130941626322413824540438875553226512326930442038116915689612917415546549891123722931533246489085260700863381102169312884697755458437241812359193334496395086509020817690886213472266681089798988503136365845233274485895917601575702179131555762682577126136229616783286393324617769074511265941083592755281552143042396168614949289533853502454432614065710565217449607734266652603416147474498976869935629317542083500090944167944628971591614437657184876681875453868598956065588082687419482210873093723086751633132105420538158268560021916935001517953491707749578643169391675336118097413258050520202581854473505019644465394333322142341566592450075333288446492462816117910229079366741378484953978318463355329129013605317658339914116451826815700350926753177359592239480239266883687441976883050992416605299680979956430963044858485250949074423496737013835397477705900947404981658520313459207592082054804150243993495325651669923177413233521718143399338813667303850670675096121387702807195782578824690619376863507891876354477172945003695925564775604819132652769507651061290644247965765707702596276542715270724713278807467326943809804133130672316013104312386674478493075744650363551929875538501422027152250720068937873707047297580855734312729897580111677173051457974246976230900427853729660645185463900060276940820677509094948558724224232447167123982152317482665346069165566449717483047100045627715302000965808519050575389131901607940373479680614284280970358184825129026704396362042209510428511162450745085773927246728039321403166732678875261274071824437964234149978945935948786166308947859048585923940552153352378352686917100918657840447280495806214996284376586756353465469066046802394204099355769962927635388041416611059831900713667913183768151040608616546033108538414122201196411663211876031145183453757612705293444354568539224342755360549824907269705502731423930696360176142047761511613017117236813860563219479071842007221736790569740176646441968204550869795502210687096726608539638568848426717685282599189215726529476351208122372775323967113568343014335823103414998830673131079251021675636663350481266915578739688846413709984369304584554999920106351565723363066020687551907787996021631705725572306085065338492069677806891256108698204946626870230750005238707149633879075826700707760891723892409958964551320330421336771353102636706259086163233449560645524677154324492980586045877986998438352562925283159067859076381936236875718158889211173958105319896191145829425359723744335506293205047526947606061816101962082275514270248639221447883487771839464057477801886905893128296920686170566050304011177003882772823930580866437163813252880430481708455819414438393869637725617619218157234692156660329391769840286533520257369902726066510544118657673991738141667340090068750361329403335033310203490178310263685572741767573892823485203235856124296759036687696681192198859475604928339848851973472021110134051410248775674225961435211771802404233874930245815068018438679349127881045257528033039863198329008203110931600485423519811374125075038849838181513134391976953898111884448882926247326744862985823191473943496793282720862827256748747590403645437373568684495293524903354588416446540697774259266365195061505949051583663310285299986611625196344301398187400161870515195889605369535191287451202358829834626742409956230469129310827398071528471815458357338931433596016891875195942785327689796156176008122891164806723743852676496712909240341623652981445018489226454311782875736053088998153054690855643524465998077404054314227954100260126486158557962241259722189731428923492345746038144254965533572617169429924536840778437660940614097186044643071424161629028975240510682480259995450610025182778660972188971339744738277055863636888009756059626504452192208376807567987745556963967250518360158461985802155490846726400902582240177532046893772374564326736589494785188440151313594379832399646770535015284617785475330919184183142414676552289742980637760482972650181395193229960086880613777875302923112444795974152506177760619538886370792636853823444609565102162237804798870338501290002323308838056270977610228319882988317444171708550942306692840377404849685782462737189553709213708821821363763622292521044915335274533662385704680429370149729208327365210702111474186547543093127756848281057475038861710759211017596655145815517804657938093989610997939134913978913506389273293705704334738916018173097330241536963125196718278366839036809770429327233769424468485153202623971472048604867830004325132007262360322901190449033194343551185390589732014721573530534160378394526862746606161708432922050409756132504815412295661126937990561393338514617338152647229397468419456660885443160673365698323030284077984264572504189282149494260304459981065360575002195726563052361658419609023815187923335942023578525832341609413507373432201580519824517389605364218618148482236391444579394591056577239711279987838591305905026452544237149971737922829289909723536819525115636865401171484609448265760174253110647666434451532859313138677994276581376721602093427069323151425261746617636290748330907542108886259816806537413321364430207403316070321869195769233421800160411010336537966599798354585845986737498937265847844447874883144059809933893235055652541728839381235242701092375996685917589149024771244114372235198730278518451784391921451262610851722505004924326754239837185816797328864354848688851991962630985044109711377733123919274013581733247191496086557293450276684284486681028946163545280000707280985555856279414048050049768482106487727018424486772343622168444597718117410289848790140046732116389927792470304049228994833800722038898291315149530905200152610138687586242887657638334733268904917078980534120159855078312543923350300922644018742633691443598022022811790983556829033005408173554385858151484784848188394037940598397829217705767916671545297862081652535132363134357513889589645201150649425876371785258242111189770872933196434201781146839098576739406200433106589461357706063468423712618205691805599054887843333107255712284466747998548724733390127119683150923912487981639816524107791251575772485434922090109502655952696133979919248611865924480211456256465898149683880839575418629820098743620488883317652749393707720176320252142966938314436804955079196494782151809024349538216711372875843603870979177823398479561260282433029440445237710331160869007144547357477286526392268867345262410675639341527721737862848784403329518619356392433848798730012407010097101496724871160680376059144270708248569652295720001550536991715736008626181162545655163729987850414131120343606608691979852564886996619950107234624261683037943402463268172173582146209366068671315196755151274359550598389529143067139684645778985678999185784899067836307276705005702110223807098378109741912621235764078141184555918826318844788929796375709947532476563478457573064675621686921055114936450713739837534869053090870082172400180572838913215809925042341534469614160006909029493025388555088657228895171828246108762260669694285170451979076403456342990751636865263510348011998500732239587148309439925914659543481294400701373832386745100121676968458292151997293750657482159377721731883806337947468599004223808377105981490355658684240360052077471163290625461015442424583760946946347799855231276166244205905186751554562903065294856189110033467060462134045931103228090234863807603652028289626302436494617208535543719850442792456749714778631279748293166818023357448251457173561160519332261394944265444266902576454637922148077206261163947056091610854133737708490362393748569794699989406818520400829157298375366225079113639651565761428896581079602346428146579973475355927396100693917478042760114002480455962221788971756287342679305246903358605166890050771206840863210451917614615358656830128413809287974256534164639692172480180390641067147609728172514897230479030067513526182868585733254481722922706086095439182233904067899380751546596876940575123321767243036433347072216842911825851387856958987748749136116658621700761776975758586163969847047168267930021917648739745035863871261389386930218499946652667703740176950931254882321046124500601914056310991084264245293161414165737922917300482496862157089090340467341423186410141287589751840315464320714614082339656103842503004419273624174663010180907457891166283334629875276475870981973608083255682332149279124658046717665855768918865322193231924086256502644101354014463285371505408968696126082754122979522165852766343868389625097854166396842338054919285730591068666637723745510682414340675031523061453281460684156778778293924637776398011953202022962174104199760234026711854724062284615805573563077009187942444831857457903325130265035201659400939015521506073683619425660950848181944164579143084176210777633891116638697688551671690803468688258181250015025784666589233488342855770565858228195698124557035528530800411700839987670621795851412259402441077140401398821762261841848660236199093211641843190147516473235847055152260538268388118829857672550955477512091285433028158192334304235190007676682546966174610513564469238827710632001539730157028073156763745097734744235184802992753761791629861618923206324210474497143868279902890136462815342464555469873042695910405143197748430056999653549689045517327808236647244133419157261287606057823374906325718915141924760119979087417389216608739803798536997590368030243963788032236515711950977695432216406596993219020009744291954901957340387684981828070123599520148785247666555761212994378157483610132298094563701604245302740920625224089909548944291034206114200477916436118272580416942529803127972418983142502197356733293846663888602447086675765716745787578518246293256027089729095377847699854110047955544256113161374284636698419192530220475100071943461867404425722989268922171919922467691073781271198646883010475948559319640824024846595563369646980123099271094996773770239786017342497765494457164944351680500197302202665801535887676540726754791051240837899041580921477899980613257715125794555500353670615211398991673381634182493983835441382948112620317187201215433897368529154501967652663741409977506985370027852860586847841368099785195744704914294054222672885326625765007046055376643008402949185873106097671908270785456525329823627577334825320859664388682299735476337689400510152406710409564992500151929364405645387223509728852566083469778367856840668674507008481518664154766029490519182944281978074636477378083730052446124970476247827122714716162420833337090095446376770641901014814712244807970817211942634450357601986648294925427845535624907073742838094045549658554493091455136611918681495765426619556596464662429648044865781029560267338946318947688449513412961532253536441873170694672029201235629852589446111494729403852588822016039385787597713526471112639269953600159595390589514056510576802963942001125514961177171300392034866764855467487227868540412928158062992611319843608157955483397364858414256027812096327178642467412167673906189583622114833257429034256921989403309284888651530678735560608665182303761649981642210213195185370159854402808050357857770151130838625348581216990960000284953067620475138055842820498246631044327560610709071771712909951005575025493454752659321951217123600980189343492367240585944093646970989825172846329888297957887777908285166603189599804001314448884639270740583034138293937036448725196200692145670599858828360250796540891811863108518818314626593858055289458754654465042604564173155438373564966772562443588983238694623152979988831723431174860437841999325804013635377465288894946086485637520745170278397353146356661146620034533432382900681964329419564553166726167522326018825128118044592881096304310436516222357709275740923885315331948184630555344896359740701365694935536281184729342621206874689653476587591726126742142374053146270584940217590210976351329312701444978104349780609494894375753506825189192764249867613254609583712177963771288241765377760969122308693008317784165643742588966243551859179106527201499079708650288813023746174334848934724319420921687728535830296688356625840551246488384417965124898324004771781404943117862561701387021006461952265408928472312374367363407060659069847291194905554733605210705377659304233518942682736819895492796859475074512907165901480821790506441908444932021641450185297374926154212039126733960038996217131965940183873281786151386076705796467741776096309208795546143458706334097500522974903957501928769466176191883863795390769679998611086825080962917769175787366223487788890873717405811172553618695591794058707027100579612649456141686352404378916677772247506126031558053663575380838479583024676092995307970254304676762479706961390064714903981217807806752820795448463838135808101073548807212197692828136281622236964866027563885501593240843475931217407745152633537629514298341363233874564253338368376512174723132073369805890291474898943472055072868272539674024719275162006052634512189633686834917255096434086187413051067059230776773073204106512646357537913072237016814777412860529199829019723462851680777343538493590586644801269091241440866056853108279802641284353747596706726048532756633733335288924779436579904482524703947039015534088225899430752576407797688307448104939123370045037977557907662153207347947586700300410848256716343441121097210704573878993609712357451459412530236669627743431413176509772276304548144647138264863970708632645075213131836289246337286122033395965088560221984228312160706524624297475885461529658974082748215779280139456208799525177840973912677934815551785818012531117183770646729136003308095215520715911078551868956147832436447813260228685880594579446061793452880683056972276910280610074872758017686670611213368161650936398568066802498591071450290608076792799917260768201094186563957672667236155798765747202565203451424285756993368523576549821784009609349005760060891911837857156758190885330264113831124073802362950809183482099534255610537521812130386164287255069576251544586060309734503065305519454875038785069542450281047290179719515994656603321269832991336742333198541701069566118314297946095104193924981018220675738652723520914189990223621821592422445973995698921454403586190590953805582424441179718683877056033350947701247000119500566673753046250291979506521572925965766946420040182257228147956440392713002719008106987083331646247662487931201548908817343905123877512264321213366684273020810097639442389633556989208694640152155151575615433968998395152051980411575244273093472724357234968953209995896984735759836725550921558619240085021278647079667057775106029199746667091509158605826348755501537274531733852052504267367236292386111046500137540049681402314418377603547791042703443916679682357152021079550574692017899241014977822021971038488343224799366525977753088883599686334302941948602688144856970022593512354527491027459988574827553281520415377285027066874411806827117276355141974044628653622164006138784713097196445687522142361905203450832244851067797603585064911730920323863159097226198473102816061545428565250261699640517662950479809014082948471643456451604260562833931217082151166550617603051883575907764494107865264014698502467945138854891235072230833495508580922719078525729192941068764357250697673814635604315969851225084243357558048829721694528786801293751869352379779015792757235453869297535437893632007753405394206329167684660227214760946354206995129341357635749924328138874388422791944066890056059694994468529158607874165876017689242399714028167755595287771685540667712855120238061129330701717805894088237052100379414753755943806011322384587010365019924182328859487985915913792126233934362613960595552366499577377059492720491808892630779527214541641703607391144881312357819376642858732913176924868143657291428106834790224854859437328332696239521570147385954595373297066069947193237894981114193068070326475388461192377257981814426672238426746307375181692447732875158409348987365937002468839985993493134654944682897977873810302476837420748170807497929047826244606808419924843822755559403102552235635837717027841767668921124509780092151402044689370730237304394006852211584214975050639955342608442169193947298913544340069849166685229588644308372415663995992816749385497790897875045819381915470757453942266394362974819423766461398876506195099362208274776484689627465305087334240068002342745619556611263455429057132455307970729698824629797445289218279955742047549494526690622640751163024604842714701734385319975743253151820186383964767468891548169153270144202659308995376572650712988365971204543535400708601816107613253016699491103552013870022626301503551166459064960498068721453999926576874236981990093639429182200704217069495563812415833140278161576920683731850432666983765160098693489548552396696770179215034683043112527281729982167951040622681256789580133053334887063080025253493637951869967856657734313684028236712424038078904444747601118798354763807702052432118926827101502879422478721346694050547283633688056037341495155420530196596175490160586215068158511507803414859297452632094547439901464298620010348965597725071373364376765075198385174321750016768569751169784737540808305750155865348317050428119939364151323986981739174098230310652652284221882489529151215417469464573294605986037571371610076853520303041592245951210262813975591918894708145395443604226102044727609294692072292565178224960171760542624152801675707626751818904454829417387592856250607811028329293754149022164054747962336540633031180340176348119762412287779543061166120014674637104094059963206009321507251539646011965407180123326826176228520574155634683128070731247405141386130996777666235113453146730876261298716876414312292648180765250632866335083503425717992342988028483828281457254775264002471957551289384165223179008881632855737025708457011660560937457646425694271748723636911933498576762152344899246029844201782406374275761475005418965916563330144298943768893862043116053737573550649689235631875352490676563281276327198366725507490690707546389064178272349826103756992855143468627887266544565680779929029081097869218847751187863333123451810072498570054578933967348182140475504712551721602534170815239427037079741166321519878226411495699367267329469217175865258148417325367771272924737525243950133865047591179670436993472483139232510937439991684362899168907202619063361381796133357051195620720257883082928636537972284432609069619935047261451711085299521092234137115565794419011147237012100879277246850382968319864563590570718296429896837175717282247636414697370246735522431993387066962894771061149809799899758472132770820069434205963968552701606223417509140674670524112978080591225976883192750367907195450365550579173800200129455395151224883461127333155908221615510746018505437536270377677574904110798807931655789456011149951729707576557709276736836489499385856113443176262369638842604956984390329992165915390483992245350655950929081673852123612402282869462943533974432586757455177296294717882616533341784865811518391320538383336285644078709401155327301070777028418089846798805490872841481474458537171727530046332238076244149276543630235129716166738587370946444118291635790060603156598448141193332955638031334923618131654624736801986384877012590846738933235527049787966828168509805751085398952684021210657146138325164978837572332546184347432326100857482929532638550117468149634112904121127465969729078996359692145668983190107639529557730003693218177394252842952896533240076148229863198588269936099325847628466313345758378120689360506959553702508377525110961388999606820688999410573287472037614188600729848572619949965326355709521356596473265875877431592140131834536127207171246599634726665973032436561744225691348330794377841292960003887714463821105326299637095834322969682639510453854784478895525979903878975136069648219015174220518325063250279081043033567901785330812990094443659055156528684354164838265739535331126118116585718990598594587118141745564110960102512120382961229400243568250207483889994486141339986168277078682194641267860443902368465297734175768363104980558469412943389374374419746946307223211845178340225168961885873083638298437011860824790101773293185896747736084315086179812604113170368655927542179158337112992504943520237207124287934789386375443638600424261410134183679995767880141443423625950187636923330016628270107514962756022137306150340636790347495333547939313995424121175120289454584727556134670572743893581371913371005595073146706838388014518616266913212482532746958848428774460535706667305397729794368098708104365037366495204714444810742217112056854956877059628189782836145660210758572272505634557077467816090729182584668044117449240553768826936865940636898204203067703455538305455963133508290923486402314860902392887665728066304190714675576182923396062216487909814123514866827020332068200279274924081886247418437075151313201448237367149295839110892057092723873806429785808633426061099229796617691594139956534254730913609606207522259066985342797894469060534790182285009130570924842189005491487466439399324907719990717454561640185819288143242332512761541178863377571198752175626320012114670623511992922386957814618072540509374519066897809018102303186824024059937044300584675453545046951013491664830676624896709597349275874105236858804503722456088261224859874233231355386100182192954349170748917105687685586034049950113433498479925866477141715479976237257473399950680873825771435933973910967622358602380001303410691716670766412525833488766648639191951356719822934698282210200384835361913531173831155079825686957858013428021265480813762700167389651174311799935895427662340890106925473324256952438411275687210619337108441795296313495280595128294742652650330898721402144766084145922086842691464527104036295767590705716525220055355042036118053520048782548993855508866131965254341273258903951119407159290375520599410797099470977397556049838130973028725066002114020004570497052296745973065140337640088654347194719487215335950465630269833690745864483441407054163686694313091222874403404940897518198315312890100847155622952095405435374735551794118628350483772173672383796408941765780996841740127887806400736365966698757423917274465205080727069701813436761646730522546923777112163184501023095021184753553197183288079102803332849656861126486755058272604534442335340261008472237499872173381710043018029496013194411404876220674015470134479188635557594854086634382157974168958466680258139279178594901750855203327310366261348721282724248981316843521216624422630555417671382809799958379901725522051447184933187179835825308542437259938377592565502654653433801326345497575969094644014516571723104354161144682911188852367829160724232996035353777772724490410025683233552741555452994809204136842595840469788547941440459161793403623243574159755274882641793902165546296208087956571360050501736967155095290790157530628362022668026793200501882731424261829986837805957947988109119061475625941611160798404473224598505692714829853868933926505867659318352807656170462920536910151649263035479938276710565314131720195537142077459914646157307444920341886995244909489634316954763230389128395840895504210912093889461504830350593258757306523571666065919824629593367334094003333162394286784741286382993383988441210133518743282487544475425489016631802548295005459918550075604691905350185779946703535980811564284182780889687095895709287181504249098960953171948293140243847751586916023908765141087030913035978121432646628608829708634846948761112880188694168429750967325894869129133400919920417927828127369577803131657917127338112250860257888804202239921522238332209478769332134298691860093761787292346347982930021326641528212588327118072114840788167733310567574675964364822604173179768558774230238261129248975982142631982289671709341804030929222449490828246951458695062749008536303490255252458794729490970751487351070808856269806806768607977536728324628490129246459134349568867821440867552037278054945493740859262630354487382962190378591107334788268758370027217159660361919356479162615087890892573401229724940759611423472474081289834595775739233643485983919700774920967248994236968495487826653257026039461902068838232574582381450302280753406432964071077464527625765218870529021269695347152778967552059048210874140693000283804670311275980492066874021419186132108145701846896235555035205028700665394067283238103085222044033209332136847628682312082776737758509893511652459707120517246295270432941210630317097086114093318457129224742665004926738831012839871956289291458315850618268418680007701369642413232411609297212730495751947293208616718029601830319254457256280684871252615355652487028009681630293720987375471227323622070337603232538430745176345645059911401936584749759460828629121199198242076337986132461070173832134350826947872860084372729550201296353573488135888889838795507814031673905885576586778812027819555467595784582343479307196093745224165234344379240784052098103475141410943149772429522120220233068737733765023009003546000453270414451138370129165830382266899686311674617838733226410164928923368823784950737491516486858349183374853640694376898445996214315967330658666089935823769157897879705805786443686056725357773434927995701406291394975236789086994442225646721304954205036233042954133900108995722405687350608637024168334192086487322040404534782048130116378428648253227750328264342412544347485455371670576568340398743109569241956811766689836806062559878472805258280135992800103333807796858745187714464054309261043692678926188674292851885135026588748929848611964517094186368188996918455400362005825159697225234942231992045640258659851391724671697689482384593962599679585557527679706775780327765923497153333023029082606235379395463603802635173992417985079615631228751953277314273041894207713445245821722704921652828826628455223682607237147750593521676884801932040531402391163690297368556996288561084138256811728656461274212633800501817765043187844465535362032881864217280135868647297967576686952933353583514280259914875398878321280061861474802871366893289751090844616719530587864593223534929818420033086742026986583151137122494234163738828872990117526766310003299969462702369303442942358992135996854197261429745104555693155303208870930822727876203190834415276576144473481561591955379965222686525978726917722069194625284334335225231354189213678702552301471106030807658158418065679281121051822826050819906420641556941772346731447234998877573849706564180960111657018868725958257912753841473800978610631416413499442569189369360751962891895408402501984574069297764909606586289237884673436632476342791561335546053001381756380275990035828367720776785405838917385882282610241031247158347640421301621106554275450227315834096615146402247761766324982297804960692689165627971545367667859165199137131982122589245030306372097561321821255125737033428839917693223049285358795668441593346841590642453682703057506295834496495848630480888725481488473600323309348460016169622965689360173664074998552829336327212463102807791333486985206599638924951114919578933591238674835408002644474550997514091564163689838435218136490774510614069488768704896106191577733783232050427190493862593647887467613655041078765518130028915834510011954604723906021397727516205894450628133067386760099818274244476980839404377762880092424159819452814597734774657849915257512231722589552480555394267786695448112968230318749545423844898926638115042175381733517621633783585022947268754891305931872080282004366139159426350428496449421170585270028924033815021148810374287507799430737417930726147001931039361360914436287052606772425939452888743361538136282986621386354371056225522498657607611363759590569197121190925946000325029489168524523702039763246432820354367865322310207555023003295886785888580072618901755278156030724086104758791147784457731371155707845638371850910364266239937858241397194212499534666745787564992461372663644555999432683586945177944248990708741787700577724415125182262690261982380263078577472775042885575744451691893731459683215388810375554398276806092262888102397401000257158534310469811334622885932480575957696000557001888917605536305049575866183503316090645616001740297617660616907921744679859259974973420764638185311648656067760033569416822744361831813135208893870736529735012824634272022719617954259578319717087239718047853507864587007346195159285297057039997668779440182605413330943526864996555092337082300190329149221857075235166929577923582246653985334753007929439617065695501339426947172991384221814522634818295139319072984812755819478014239455275516842003586575942928149593325071761434348866756639510775483053049265377721568088046647838287402322745533277662183393165453706260684378488573757099345235218188215791046128369231318753536646661896735923612677575855398315929274797482672774646248550578653447075204882005592917893521066481705864343865790912406983200244646874786265667047101269903432262953552975829597715442311809369678402601722621380897007922761539125669420568463969889331732279006778439404255360770514240356086531446544060920972228844109681351795698592298934373378264113454547687164019181929305504049364922770422667770531561205810015324994800877636422017079410476337079671033593564957963222135695589061691295232205008420747283396106237237258923930311685019330465735269816418147633961201255662658665612828742779376385969613869678345265582822698535827593602315589491462932786455374627154351428787281552109816548304672860037171896091495718891446968786728325214535853556174853880407191166193779348359723436217095222398038927160705909124548403248456175153561800605744388144321798855933329763632216550485151739952606476973118391220276417431993792601922490568447598508853896322379613454693993519685526498592975326683441246628196085050099646709471624169696104668167041096744979844916437321280282082908227572590504456999161622683946339919388194136060549627300786775860911479685351484886977796223390660867558284663089469481097592812767192659240074297814545536678835645940900766169096632169627365063661918353265809932270599537794103886106127927354564530710910715157332285355841025766279707616674444897143403156511114196049234686945148103801657146401747482492667851468699355353742648796028522000224251696940591181094248549076578495627413239713867591707461155418020359894592316395038609793024141654953204456605316386949158231028204866519394104469920232219598557198478416322963494140483035641199569373395370570001365015318698413420186987885000883496957302598569837108048930740851734853653940687553194969786217754412220938958338485886326574941504604171023489448478991819863508828202431794314259578420297587667535592076141671200352455269922515855639099650175267486473359882896482524484554575694897282663781582449502208019026461770855695349592845566505719085099582986175985660764052321871654648327343460576998006337903751590809345099927326920286978525914321860113590401665003637432075432029476090084026895086136357523045721945477764142451583960826067084796171172392687780665887683435204118829385968520543877587915256694617872550436471958673715006717865919777207786394088406245101118664471417883713425548066564368020228654503555359380839579311817254404704356521022403778402398937117084481150267542949366899021510336852913963234309127612428841373672478851018363874139381483354738259940353731646709563206421484091143910435222551120034680619230940351478721459560971192205637265043259843657488721126955978214466176371511879536363789111023195716649114777499246245696799161832455069949726210454418768925775181190637286283393783238338373478249512887514544605704239737843412438247446756002328829002916146552967042342002193199378719535083958573177230437102376320461114512923736239676586450756495652971430266366821388540191330277011858370067137290983279483513240833731730907625602632801479832091439994468188130460226132162211505618986869414849943052274190322577712830416911499742317696864121098009570063406941167139416362617109576800121258089013499606121109392546690939375931807373871509025588880225503875876779900039262416778467691774094917257806215813064552617390635077862332054840480536104290418185989338233993745994674311734483190356126916022195110783483689490852336904128339084436303007633852174551461512754775385661398417869364293302099742012956934953002865367695615447810880890788908445930564044444826589199518776872929881762723864826972113471824188181560780993825965246030262155223620271147191411724163653220953064715653298105380193258765453994634183625153592927815747133647725568371342916522295589947173788426627205085401666722872479252328726359240458513130646608265740723404939527636335051299158629661922558375539827094558449002837368617126913127606068543952263684406340894738274764079986722221764373103589096834802222158941806730562137675016942633555156988415207228352930069525933978386781424258132036855071278272623468964585267487825907841457451285938242711389235772394846504009240685774284400611988125576565643273804487210162072618863326079110408909681156114273113774142134518108215218245717340071585667342126916240059055256772543104478587930947619294165439132641913881742724206870161227747095981566885033553112022449010433785521728710499708479535623464165127571206338382462204271396936318310075603826449729829332058597459150849089721555153820905443648989104459753985608231131445976354389640328483146801895167945105048128005019791072251876122377380118610457714417577247317777145454027548227157102237810215836329269182395389331736905986655412862882567602363499897187919931685881196699647229313237931238815147157880588780400314136310833437121460403026213548631341217046857678812643575716315720117703601428776217786115196437766083365226240056757274070887333123564256461995360616013341702753109579515221145545666464095313714784839740711558991573171078436873866468847497376362154504170361636860686995942461193261584229952785973354141068319665754997821192666545134734636442053946629193943320445920025350530951979843873190639752842611552339559560129943905541434921785839754518907063623528096179666466923498318340173344409493279750967488078512232252364946520780810299420606367398294341090433721412301959736676968725998901428118049514940065249256770910050810801231386423142760437596307574314918546862490808259758267774141526502626316538215418323838545960269935178358706725154236855081879343707569492521197017256379171572375016261915030502522054874930085520173726309998949264231622629954028101553367465713786227084381314176113489336455199568032776483419586015061038771268871973364627472256924226193271876174311003352379294918145011386424115259548969402525577094210234514305666888109722148029077519410770082825083817577412076810497977948850467401390122395216814539362466951925314300567417111988443095509261215297253569406748711517205562856033283083758763458059256734214604725736972417406993273909840102441842235541614986488476515016057780891639911019370282767288162370512192662697386422299839951343293131257768958213127996009552482471907014541562092806099971213911401416543400836491508081532713550429372473394737160817013386308818332690103387408535355346796521668558248397972411279682299233908367622235562083270091297099432300694280605374273502397568962565427929949700093144041401483916278597273599534591389109052182482241786210103319722404729901482080443950359615047177995844091805460669498152774341977083796136359341437353412734034533506105497668663668447508799263603873922736541092906879008624058706268559041734211955488423442347859004931869033869720753491115126706627973186806904250500190544743816657126985723643658230186123344461618409685826274797364976933116720515923038313844346036562507356577503129453443974149157227697196175137057466617283562545939226739866020651620916053730491066625049428398818359704825694603522939853215126922864356043642320039088653332608454279563467505772691119322047623584768124670349936817395471108169376456069599321327582317973512082729744178280782539986570486655385287290080558742010572739901102170613429407935736319785345553792662601756427023563641771988279756356101496422180734724151974832359628670457074681141507397520166615435615457054354642926603854597281464522067074794572076913029497616897465543857791843884361866712744318334797264352221628417787992402187394607332557557583254023955592145975792690255360316498851919510538242559718437614642308565979818332016634717971517010790056697327483532224208355282476850574487338826959824677340612081284676475958253919489248200178306457014532516593998042306938643192227537231130176057437706551810343921521604764336507786760575273101963141580674517661869955841574225985888163541675939713232401294707933393052126383226872977022823816751223297208396709514887416202009674637811094433649709678959955010347617467833661939010488238935269008750950179763524564880752766890528266169491139427166775856575164823423489190640234849751885266993614581251753322074008219315235069617979127316760385696902115735052205176596938811342876861981406652942335503422503474107473772683540861723452882775168151650672306808496474812279211695036666112565956531232064764616112798734609512220750284812211069531817616923189099437797139789069079573343575650395689234127739563777982094393508594274319654688560575543928335905541099353370912319882158470468812184570621030766242559622908115467502551276415113524485869476015938539634338552140308957312800915887407967841471829397037470365924831556040382215648944155146466357235756592883506460494225190207481181762786841874857273105419819727808547564288600869126337973067019181952543111516034885812110341130808588846235649721278433016335766127602653401427220120396742372403476040272392725890457939751637298978478610668191667454760287291157336687586358982617230141588430745197830526569995595987649667043294559153835064962388495624628097271078343292099093147405779755406237278766548596935705185744624968585872637266825534119896962078072076679582052054166088056102642967567911292969126575236281037491711725252196793196758105860797832846564778117633021420036923754619417630587068918903834081863202324850139871929335540002904901640720690662936300225531908832402464280527485142598910348889351380864247030214459025408568340055431907057146642561855440688811241916145858435596184491878488181657626561388309612930260890324388186949081161145326701403858509368381283241583601127617996992998754887646320580525668677238767621120520760646556336320432744517936523192857766992332034651575614184132156226197338674618532493181090231772890226076338537841045420022957568458952315620762062845360095416920800723919199588459062353123231139328181598611629629764308989250287760565020835394558294616268696830886704171849539792217973361221020033462107545713945553638894024963082212384379718399707690255494085536936792001137162732073361406859509741750924087823686030183947259691293336353390842623384695580162028945497458651810965172992584342470726519301636626768684909133334109446532970606198155219441649550772874799837376998834627441961336021050229274874823414737488256684163830216012150865318021428841800976720670848350148423641773488948433783125709515320602334088637656367402557243064224484434572460797819884307345361040957763848629016694374650732590114221368984674891495444844194535556956787797801355616966171930674154990166878490927968462270657476902092677890164670123346469647588363929221655140100726983284006930049371044032347051937426997147761347901641881720072805056708837114652321319748407734673930359085916453910683290193365979562766279273189906606554798433093155064349631685935475111918006036290449663830641742287586862119535188404533826045471819189333238701176425674361971340370323276300395794848287861584300888533499488209812576787042584757014816188604763736301488705451685158567049577133970024121174557958114709979445245559547181458440454373521551218154992455149415735374910610487725096046654521003064361881848373062921428641862435284461071797041726963360928415919073664749827745588701193344401897112718744059811819808084720661060160770442246017541766669925496874473297303149596656420223008232682167545438272231272565378953808013317120285082656940946323787452732432998861568074517964293781835868665818593464826261256427345147342445313613817219929892776218276307045121880256185730161050553585506315673175721177731761354194016649234511978722030565165409701354118223985505275506339000481085526664776660350989008417389760267542047688936559793667708332924557691699692979988692887470513921772076097943142954744000453075249662477458663397935171269725757529879403555044222595440707623875954121153931031478670990514398137271876627067941920729639931438963441467118547971480781660033365276802998705026684402005925414453746641301917761574159936504878285405990469590790826099615704504156389414595850367271967935731856793069938666730097311056998605489622774151050631471885328474514287606561943018278201916703370849417147383919563927499543108521306353733681769453880857465300759808203361849844096190222592843427141992888921343498310594715749473226663118502356094476635168252199625082033014128840558428083650279859618554206854015215108569400139360943910952819333874653330438791360081772104110457798640534581358877660690611167708558769398471375696555647034239057628191630933009966026198741847552107883835696762528098441168462820998869096791520037406097596280478341980279288897527983283783423281256741388015112190566586584497338073791781409335993710157302959332559995125909892749563411739269822241156770669268528727918130033963045125627109109110415649398689224849675820770789650283004863006109190855723854096339302162367126348638664572706312118354674896406086476677957458799348546679080256199803962284411909514525461030251797292133319466490397495123858735741895794995716129652314885619387262837714733460528512332700770124232910822706201658160896928337846420634108774181339745787607320327835514537184832134967088875369866360985854261782377021153834931714737620898478733393345353882693110299176739523308450669932188231250959268289657783898521078807390879394019246800800254773926837035879635537541223936546204066844829548127489700038197124925178882656604972730627509490247819277686569869074298735729881676104681510470465332456237366299775474203773601121353191536049508599996481490640331352129685849187955392745867417045884490471059345195545116748370539253411217751786305028160949056956747729544875983609435396980145093744544428878090035095462595880930027497104711890942871722585730650150337854179390404117576105103648225463334771337724100354326506451980793286797308971733774775115634204269015677546113390975596592914730194300135618555291171622856413595284264324144319496262772728825215902329850118311914422187565278267521611130077209882385531739267018183892486051143074193699197995083063343794832111277808113417968990155580693214122541661385051039143642705413717369743470174788251722650751343931682951298587857832093085800544254217620764442510248348621005712790114266206093835313829021193235260944155906963380600295720845519184781974939637206874001043869634226263417446596146648849027410459196304937326713859338953344868763304923623916527699069886580923838876651420823977161044772237491266633753303489525611434972068440184744738891457068398276712035596035320285070853951119160313432251153893664353009320799605117481366536822234200919012767230238785274418557408257202690911893056016738587950035398366488539961692495889890046151292175755047389638163074231868647435941592841369923663932314585301663541251817250100480066543704080206062435550989019774728244974771070813132008161866030757102273895329655340442487463036759373987946780808435687420415216534001864326351699183706906435517706177845466309851822584075400890663241749568964224820636980361038960548198437220368748608585254801812285870635124148364094251497193406899393346714854333945988301621832952151365353169213360274071413027486005210120211115552720499193449122860695848879978223642648599482022268801900755654414655672801321303793964754986956310862778289650402530722036047198141384738281400490962086264089825132792175527368278560413671050712097181927594286428090475779370364562943932526993538247307494387840652490050864197609458860632433534600647983383718669430828709149537872766101999206028330062037540279578927311367291104385532041397056446573212017917436397793660716442661831494277566956446478363337389420947006142224097433198086800763709291973053056582158238399783499570567085877897661462359995176581328620276771712146112933955982066449979277565561700192899690947869765397194980129203243031082914117467251583776427168409441008199307432495943696992980291480488211760720396477451922065895002342768155179776833236824812584367479918316691512754770332830056824749804218594864233610022566470584568041046527624692947435069555529078921095722353891450500559139647864675336171805254833891111855230328971608338254369783800338516045352252668719695879719192864357409215360459301408748015016811366494908106129135886839675043579247434429529545384793773356682249857780719137552366572712549481273904985526450080182461660210365035258497444372124897228698871748761669046946257923098723833084971546951325670132321359441857309862042960620370731963038857681438791642220665146721982373433205299578806539009038172527514810650804698952263805708049255041403141198416907782130268082015555191519630025558774374053975831370323993601715661343773982211086380323099516592066029565464580963843143344110713315779064896792789710066048845760953752384124616854541375177423477879465298287755026038760403215572335003751227813004605208016974076889761557576993934712964264450948909958099803307458204825492559623483420145039925374497197856234028331418517045202591367885905852860525194374886621484355083008943015981694543641768548016216516133608525163533584662761573718423399075204669428486917938020914370190477409259862376087352366986109817405867484782785924028420410471913361587658492027221045317757495181010849511407751020786545918675480653893306897527228319895939503529366804004427828605791705592193845432828814316299054768726486241489445516683213675951632955018191343313223079940177762179633146211963039307962839992097379534027835919907395533057235605905733169582743673890930829354091355074671225272340796895504522837210455940441485840947850218211265345985621612756053621476013963358937982867633163148160972286515983626683967868586819319338693703870190903633166032015067197581998203130245037281535626350103690675968199259307744320909181295473245862071330069715629887664216207420998029467740805005101519999023388248466932230644820984854388545786104947090685885437858066197036618333219822598257779568601667640097205737146482073693913584370883066939321523336016022101408344866124175691183326661376140885441892262307534421853245337727692850267004957301014066908309301828492242137554997525813947960053447281425787237433267401630501398577059617435926566971303747782390537105590371008917189436733625554114995382732037256382534371452379383206689129821446195490759146576819233125077615150788129819462742094333503957387215777898518006928971678739204099830663046881873782342422470984900546401635808774616865326657576949884952164751353588924957609484163822216434597637014914733010323303216929906968281787227497631552083438682567170382244840278473280647589536886807470431250953936143636743390596791419028383638027267123620239703078835374316046071666829114186080996434109848724919620506983682794344213983175399841195759010449008066887633139173578849919780085994134452322160998940265013061282203816004206585717692243562876248125654590247673247544291015982073375431858880478229454733342458095402720060248560795516269130958477276613054149139761597844985080856000233389639279362786139624683169427971883759164498470712423128561453626238941282450738958557179080227853415040449573165941488564565631476080129102641928914846731379685907751520731894590429820717493889550708400919557022496251984964324281068484684277659197336586474077199626905532762445050921190566575113271647389282940955826545645536296711284511111392788988461681802666565674334309276774130061089522204182057102673286230254989500029746778027894882837329573626346677164835793761810465177224738684577690908894418226478824569422795052810559558604429803695288507063325810540686380631235333528534576797924742956271801415755589635956841068412981657714882264980992929101663208711247893762054058478127882108976939186377654464952008308887883369939598101139974110550556469663197057079121525742804757886301703566244179540584708631027450175070188690495094450557532942830706196717244394240790939066912946433647246267726716797299753109211317827222026531809927970369989911408011924908589947444308566971079116581743498861424797273589592118479092261037863219293826329558140662465794851576458077813962608989679910381067345307508263955236228130661170166143912174798792533319945479769393299203727194058670596564732348142802144100813297998156019608301181218869219122364150702971949017678711669742840650007518660260871933987557365633301114271788038741742183714007424347344091911685074463682597516363345830883058059453414319133387232061986362993263160613595727383518826199463699651950897798961861667613249198572694294819043236127955677448782100051155037048847986451785182998859591310691625659882975112726397710262544331431783992964417269598498041614762052659496094824582861570339623744281006648259572203152106759044979222895261271697396287337838278536238824901004595226043487489522634221869595688801178335185745128663716924078595418533555938976146767625787684388309451653646277027288945598110832302927468610392286756012195564471194633098269312459527442056448532364890187566169853311073706585966411274846593767774957370923537271316488488943261126116482719377414903692842946440767715464846369038703605532484891963892786794968737396421907927890664138112114187913895026963013808430914975418078190930830537481703959239303453488201200679079790175773504197664552833495453772338376261196660157372285393216006779678421979013385980279291333962781705218647110053655449777392979607767313979148297308983592073991519679608277533859092406955666381401869815820850704213121791118145050097805937508495273364871660348189128580993914973486097626268659214837904783127883227518855189468512450912597472434875389433114740303652785374582425408681129455965343142021364460621058300096313313841411914390456178060852994668851057497734540291460121683743950275854691444701915897650851446726618937471115207145452833608532658492053857595431797836252025828426889256148791403042221274296588978237485233075937585774040775239754509655058268479123384431015347988317385546269012259685739603224092138926154901776253723357383372907350573902629760570847747508667374082200021879908030054413320032482604279886616249865473469408639318148302667733414203845200605365900556966990994177102125591672160265809302912990718695085955867557757929652558729023765245626296943896212440947267589255416966169328303983033585332631730559973811968382233772218754296537428636670042013535280041480361961989492596540166622774130187472328085496790880261534728168340496724329825135326494565035754312534331861773595830565110129803882975637876578352097104637903498774475153080214464850894774138047588455320281020396826244926080816028633653833851635857714036231326132580221080858993682025536307501209710482023626601885423523339063968039700359260823527229398099662615201748429863242158461506885395116366940419944074448382901190923824192477440063871804064752532861924613747537996361471175942197895083397569468651855499275811955163603851463974774912090644750791445943687266222848309381639052442800523038976436151616839766997818739557247923815964011423444291124233754425888043218796657123535778746976115755577961514558383451289062132329843912719838060166908019705841461410584001063076086648225317656210847109836681144102602664731957736642481395096095167768063666454890245699141390608505322991961572214072192720279493952848482171098959819761445704731166638342407894779594278477555628535941079398933723546492346724240230814780627394478203920222198512814018909173591922152863098347310920763282175550518726932229516425306320368348767429842124709001835613285913277170856210493489647334669284497158568272917924260349109934202190387707961863972501715556966758012643174692953460246321035101979357776233116687494211706410051921504677979286210139417078476238547848492698309478855973693205697276874565879542962344649991117840455943246645601632946926252230810531577652617272619325752722994694824849416903212638538101716751613627399248680933580638982199303401168736885355742977387165265681571654864211061660544761390800608876001980051743295935402457053911829979116176789525205650369759016087925460128924175719724705073312619370235559003484481922782537315371484345734304781807198116394228754154143462240952925091045075845861159002760434049220885456444327718494370813497594903636000124131567317966825003216906481197780853778307316103685187912205078343569946594157427899962930545387143476426722739314343510490415818185151733875343582550394263907140604356133122560020959884574499791579910861595164664499843696247031732355456377759947657739786022806291932739511896356731736927558029547913764008203884258990883467052569195825382850751650381722788244194348160772419714998100617082855424003006874363522965627591029411329357707927980942293395829603733097906177085992128559480141027143839748194441584826542565177530946994272349936359336046834159747966645778531061417882806801828464928277550107451604587360982353880539232063570377608255103532522287648381674407559895784662987662842589455482920679841910350506028424625585256955833218283461873607266699028008579032952118015958612992702215608562803372098925683344427854995489927749233811798725851746427883289409726201106389118750439826560649665326855405380077281321598916382492422638875959001641678842333616868054362565630576499527369749232544451087577811759120339981751607320495168313856257996805880318204090344861967517051402310562359791726787361308521639834432955281739953696837829203374777331284755520448510050131316851938212333764214403102035858657299212405312583372595437852250414843931695882344781279256290686281157489780616130094952643375068902093960027854160212368386037880433306322293283608541217420118002593877010498977471254619141431944551663187174734375049158013086667019232206396913146099749982821378073885892755758988077350590902722717005310116611821387060766549530252273746271182268768844185607738129690011829313448597826553801425026701380307643510777018681151580384255598665145953727827227595693488161842983960058936530059076028520497242366359258375489887764900823517354736938741096849092852715160723100198060587365267487268819023044107563232341073295378527338463340984171696675348764800641435379767509443703904180821246418254395376716132355341043668657857645097231050264833877238799210236765365041526947209007842005336601621314932395923696634080913356880745774311114945545072574925063580670900757861666723866949149735150625965815209392129842780923720490426416828400042416565040571187505366487849967681569074658237992541348545153932922997348389147674548983044344681304224500320251070555259731983770448567738676525951719984779453552430242907939197503285143471049631256269728208058056522090865330446566223710687701285890789591858012122721607773473907052269034812453656320719727240882818162954298660166448529623717430246827226180656181502207795279012116842894283228399402387259307548124843895368190249341167813803355580515906078944146800112816632283112967919504091435779366528983006729912412627725311819755354233304502380266406587722121863710261127498942699502879957783789248560703097612029544719457982711699492037506047267188628732133909938182809743193734361219125488282903789920407002451686836992216637053406037643854213787523522305889764712481468570000057467779986368643818967845640742034777423202184317189846464220094016811466861226170061598138171584294325398148579646707574767190054999320678878314292704554493469096678837828228187414987805443447276197903006335080347756876374082660119561786717680740135985716887133462844193524140269481391913006978709788088580329717301435128598557972609843097234589081877457863059251444842640082883567375093657607990107556332174861614387056985355485111537640618206616130310706711924806168315799483027237547135044977340344663226772782318338889011413885457912359397093379934582910643928985712899065655547860809776769760036845746104936233393120675473184778579742830490908049538546172955054241515366140632692491241433806439653660071575319749117131172668998231380407544843468065135223882529311530139591122147028091780261233243733298159014851072699292073471193717809275404302896725716263816808689200383697046661912848546024088035058439630366411015311524237721722181893310872983622818547788272754264639659377684258306939149269839505278914399850539384477173999199698151921765877614124515495982633002395546835661649961405347366257949708367720595931562236032668043435516440687279586389493597485635422705782120657707935711818762060803383563697298948965117087381893760682755165527153452306250982044653086410562752066420097913888735840005779536331815997140753403063283179915147336868591263668963626227561413559169074979272669295367323530959010758250783892721129220469593031918068814597918546806907231778972879180067775504612080367620734334917233077749844456000284481660451183388944995374869335857634313478581453741997775558039150281451546216626464954519156837514027209195716599749868684191114031918820099209408528593443155044592968689366613120780876295961331202259156193375451560978225642225259378873120262737041844149435412857212266310623471330535653490042809758112833740085172814543005804919917493660633979224384887520363769219651522543156494287876939868444476128078752889724363236402024034735016072198781570143925681225494610325339071136426711090245974019980736912655096415387461633821898875772551510849974567133788552592288599651481666467796130797803171245833903279283576000248839189681706796751235470493498166696042270589848126652647821425964088472528101776022395611800422088531228496351002984567299655315275810901610852475848128844665134065088357028400877828602624776143752846664115028629243756744153985913107876768620812368657305080507483970633600440005448536888190971222220719447392837732673108093079040217738315175016571827066419956913353474081768918996252265682428391780531285769166745894603084957558274482464980890847609313326739983311887519542150220722393143300027305038143697568543505136842196047249230440491934942774906795422856653456305983572965519222040051774396770148133271955685502414600735574595107270275163394935125791535807752587315803664281894374747906455979973540484450277968568965777185084808019878717390613323283677141515613837468739911701762109208058910179050181057444156846835367546571776827217689358339050747550348902734827227273038375465901455297000089789301608821345167295888337353918552083823411781386407942026008436178220209960279537784700154873870601547258123826485024249460952561351065698519613479751746052190200282899667770924993060024268018061336146694889578681060743038943910828294714327628242882433329445581260268403951511592674957441619924136956030606872723399044420848865507858359578838356300861912996810058975012499027232287871375730644019680221857949011847516046237084446457286878334040033349908493394484914247372464733781811921432442992817139200172778776546721969959449595217743742207015826896067700866312350137172978928494919679408254659236944502616632335213151170925076712885277757842431451610020255633564326128085380272671470158792599175733062227216423530751978458368353760427575882051475690160789404979128398750898323848646823350653194836899648030995994675947154265358894354259881801135444291045706023420808023982867633566483277263062165339314864666233746911618364778432828619128825080019549440996525051080596752017272116608340967211512534054257421084354874577594788448320661615360430320279473018649382352210528357001631936331690235972420950500852942126162896465273943373282388789158228841927271924532108344162083281914097320170209446860204374540043225176780225805584563758755353103577090814722591923663776635330552310597770122433839407860600458896537875411607636080592034821140604395009697502606605284560936235520564090913706590955819386187667229700999420013775050150202559987018853900191298041315822221730358378383542030399611861733089671172851378013850589664681695153706654994084541144265180724152995472848932429983319888821434155128492554528517493452832382768070759056353405757619039750967129332464380328430466428024664034011813125753776281619002544785523198912961095670868641727457006317954626797977359424018595477421295935629076058161258732610935141580025446792890029032642635739896920961662120028784039562361803926554007758045888032995939378103124690755119355692029643814828660311508034938918498797799223040997608844779174032036653173741857290493439349525322197775450232401356274219990972439414147040569572673141997644162910930011064372120253077938262050987864579221622117434096464618597315087397178341340919281031177040844869571282233253488415215035768717243747236658218449080818349852857652629016178397563530411649519914215366915516481341021263598303899531800762715161700841489940677227236715342517013386418882781302386447232833513975372126017129111020958510776574775380539953432399074967182449806876000500494876286071921252780147372242375475921400914786663848052896703352361896109246718304452827376500709382143056531596899758640451261030650563333647443209874081259121502330570244458771141614483326020809823507233993933379468298958253100821951140470976353113777081431674012831136070179130824430333062882985729271111284449779798067481533633621766488310414304273908812594888848211495150317212709512308361492767013427856498777589736387631949672384880135941738639165723881834630805032335381034013314052651069287916597464736275885152346154620140049196398607576029818151458054022410911755816971007561383566761619818124322662667694971806857799745226621290767286726228520656264132767913019978269720142321563515819763190795592176012436246934071989370222213888605783225773259149612212522070350990756839410855633674657801111643990420597261421157341864802533380656412668644141381998324622534201825070163678350367067185566365243266092355003735312804647287940928647403143138295231306230379956608952129294933217826122700420889637919456129038511166159625305454803439877660292249182805090020726565036460597992518273266356941915676071942714582299439628887147152920266359821780434729286786344428592871974603868489536577026366416350987152925006025532100485716277517823754930581417159239523854729434134384962470399844703335247295083620166661634544049122025887097116429435611490107598929760182267072823753730033661485245309433406847556586409183072692833224230671195627995336559296893653541664301409938947264478275703767336309620804231000494159361143721109150097876620699514001163958823643949388543165525416959386641089491856300529677231799406641912732761812750384906436216183611516269523730622910435236951294855432004581167765425930104325165913833449273725793498834065233085528054328096059748252917048894562557350874075319225348802936336550460302084480521452954644933585435034910920179805322907966511262824606770649060383949371096703699437373001446173716725199613830928067373483051327886400447371974524083917328640008415045678622185264918719795407153046220391543265974525227770947112803514740024187279652216874820699639701238472378304595435898565056553333559582323850094967296672100602954398610578783950777067292762039090148192063663332542855874461408063606353878062202927956092975591806415335320975260361655375937694356172405203980500434136780838535062006152879186426578557948251717718635378387179125752121463938355536363867275961687029796143968549643241415061337505996219712528830450733759191097997855743033202706114484219961461514662052868932659844768924965626731529916389128015795438775798433912558560473485738208598545910632442662775709368228483789542637124722767699445547672130256755497994106483915579374362300312665437916271742328507948738550931489530984174792050595220220508326390526915652694487404200036104034121191624432640282334084493064048458685353436808370647868019827498348510901771162375191798176222854833597893949822730991856323483820749719903198794834053169404208119797391675023910643881924504492597477333135394096654087210496472352006207834037516340473771370329854550551574448976323707599210677613338796165323447216543895436279109129228505293779188662660098622925271438163900937550484777118687692852519747369398065086135657867506488993706616461507233150642573009008472284044188460809574314921704910906215088847141337805668794542450622043620905477281948698247861286875140100476524830963016555312653676615821213708343062310445957705334609377859689611041759602789257038224276881731699146767581881338727634014871585818466154299540404264615642346236363351281085889281441077898635567013413445361813287584738679657976201948158661108822761959162868662961263576457084767076157666496953710032062821324510404708890256808022455891726572523282694211847917032882001753487281647559016048824840802491656836177122035102226519902715216154979151914829411426866591297932462137581976678080787805860303165499753933781460371820601770014674801683463203894194896079640818220683300489753765558436680656840187471640669143542498364218263278764324205347398307830574960849524352512787193269577925788602133806396781218804828437268298459567431796472178585982986108477065352978938904535236706464400893838983731107430304578738414330488445033993083823838606692165540308538174747305483565358227327192482172800868498065798753079487871425522617027825176930392203537998958257798852795962531375779040039355660703633739866412877039697457309440510682660730285759097458993959297896091864942836223981805699291580155120657178741672606810778396652532963190935598292661748730608686188290568727178402237743529357410844883548234513764361631938826511872866201398126971420447404135373111675897112080985977223794203066478945767427987666456356938194483273233951663934612902925896958719203344028020486496267731974883523960161678386523046943674290299366557825919916286263526197249595767117126289228185375466154856488774596554553313120834341325381548919993497446652482096976503352583433478351614058819026198181336905683446901775763877318461355125867941969927698704587207325567701598360040465265649098806415214906725540486569359877809582140459524978221877166919874744822108927119789807255532141835429842989227985938154979559353669339922387065837954886207830105076251734052474892023243484194722993939888308294649898599570517952370914432510381202058938170471063635202869596556285616793048413515535123981156296673241133347421007072024567447811081301551521073260206622861173411808774498177023106278370773367876695640967252223725517137302474029652699896975050030459443557114599138449001356598363028567691472939904009369443914851618012778721816764627632488555979499568390142439446658365828823065475313823826049436342963380835507313150202590056737004355355479754669123364407045813889732237042693552663819883052382058961002091127358328417366128718356419972596433693017516251973482690722832559560645097682767726416963649170344947686563119032984366917983838084119717345348797695176673281222955635997396468757106364825041395741676267045425122202083802794618447659451178324553536133124599094983962025115048419415476199868078853410676086179004375049756129107204507322203402418369887829443035188567873186584027160511609037440154517304698904238606121568961428213169986517919839459524673004977003823795380808960634369887434880602860743398577248297343777989335924143456290632564519085666363474447834017443865332309026004465021238609723267508717221495923885407996738115597073914080937409080111104052207390407143865333793103390920619820283243253642811019444774746632987818468694813230640412525859057269365994282441088431583801622119884634266269237267374183530947882874983491551310259463536697141428652932696292764337503208682023855154736403182663078558316555075573404380434088035973840154186647383276308878901244985271327911579181715544462938307273369474650301956774297811428544706588284041392455110864080719643925349682945599267317871200530157199621036306888029888273622849052228634275113213653158610333229640025197886822654111164025309337319195281777067936194458922207834276789213903632231729242696978970938765908623399055699809135125106034919487266973279077881264234766169875957612688336551426052099140469554751245787863433491249413033349210630190967195190397322343276274290815249197713221495583208392874924470650025336212856740899778549324997482037711511360456615249845900506488994215162987332714357499668877353904384343515419803365908635804262874668657098408408704384204975725531511922207474809472910261225800466209261284194817775680990125387814021601204173737431794701330916826307250641025713997237993246311159300481300703574873994047067326252154116955441460178304389263926934425326744680261693664761269807360007762638054557754946632593085802372225743501717467352579644922101267163444222677714798826193935617134052043896565201497499897674847066790864948104164035560552638082211521090099323346634360057950238232054431903983713365554691510517422068261193519748436648973580813984776140149279862154536366117426686480964670092223398022389524327792351991038756110748856220096081454375446086841929835420288638143529298045304613113898467889815314752783641490018085263473620794859436645803194343287688092114869897047362538828259131211662878653390428775055859205744471849749152056124512691427231413186105463884022350074546138465914128918802876633203105434294682484760353367850763306317866835856663807625659983825699847885923847724063344354853252701879391814537483100471542969588274297909761085057376684141667368421303071166301961590762563164232514700608493575744869358665937099629859489457898421125012667547232356477055753003246060385146184298874334046896042742856651912690988308949700875689558654623072993961146964082349344337410302549180531993007089422529410578268327310893403430169051456212371757103887694307439616957081543760839164972750932589208459683667506308080741138111408907520053857966568126771750678499843019416974970013433802072927432767048421998222483914310725617937201967842449591854564129903135361674404725328450246538335598094177718156622564224394336994387310190523591901448677142717113506562243912792487111117250435323435030512431562060427354455984464740631524336062015149042818719353203422096629855737126677576367396903234760168226922988731710932762865169762548840653565426651419766189200357454284439306919029937619523660480349211432751205157060615970577397823203374679835337068772482861006100574439149948095904946297993495645996014428550887638778229048432973859135343891622403376063849097509802301938547771909300894732983356792758843964802735398024810971469661273263164173572272077295534623789876957065505952979499612034657932199037053615995671236193750989643958316815065214470569915155444154920929016683795674722481346903096634439015350881528420082494820625192028782895784903368595431951373748549948620817622495724675778994408065410148423354306063892821284146569536635696107487598101572853694865898880779635291165082573208871537613080607525255679999799660970353370533836773487293702055753201085804369065495354073213055184442440257124339013389704414229491453473393656632742399110910040199560596552992498227709964465724890173302392688960891881709582742824855966971371641065269623110672728795889959884111889463332912525487586718446040150485432170208936123365278310740348121557811457702818435123185381873361755445629337489420776638967143225691516970232189742281891657542748387276095542157165126026679999887968158555680316342856357298971431126621249508131152039994014401601068164503392944900514660045513498791048643223565369794570610641266802361007611863702698929620758150886040276134453193862923872907303764407756943363761158271175671495886550321255143966747545470425425359512016680404925854953827000008611459531509214184209632241524910618991843094132919097738406926228295124409277470064665291921440850380508892066409512423535589097928228338169655470227812833611306326724420321618793886603609461672652141323168379598491037078032042628373166627793103537461541397826486922531354719140479101670962870972252477568504718072549837950943426309594890877240017187247929167748388278869301584658631462318342625684146667624384223895024723977469762981696706751595757338265521130596756201803666653161011704137717012051191431339281215794463640729188340851283777318659280003524092573374514000926597154537396278059961703513627913192534643812697046638446890145272197778742066122385768172860256122629628630978364780524590635329531082870102599841518012708625316060269265417459807572332144951525334818669465289753344379927329802155234416654293378622669084385725504864287323238027992119610128961583162289846222190825236370870513900955703397415113799836799315961420953873777931518350998781961314129660012251315190016295252770693626196107603350885245238721105064589051469721082655973981546414827630099562105145603683272180168065054054715033227369779282774856997753844888938412987811575245547314889253683162972257989009633052946765361346008249364675399924106078904286010419342796120175240586378501025025884429774490324151657408254582138958091900045228365120631406547880899186825881544254645721815948550379338148556636687737988194540018334127855605674169292926156989244405936015526726751582873042766829746189036268539999080264181675790236904620673928597685676890771297301467736173225934838856856276646942810338409066376020624817510324283056725666342668789431174823970579056566581108148853793422343316784628303229380188409875789488401894413088169360358379883797299637597689286905016201679146295039484156166487139136068369631349543580978613466125099873578514360978222863654154360040439518656901371846495240975760093616235240858729023237027389021914833488108562910274324472731389544972873200174288910149243775689554953352133738673378726852039115996113366189281451317160303142824679350388870490265956265069700503461533446230394789666425451494225989708902235383296666847880389282664555823374385235826855134806355164838366464633724782607272975154450343510952948810166564461805326326253426830566584191349940336016093901842091109879672289386111932076706495630284986249628626637498555995602418682779038537701185502597395136898119569885665683712595172161085782329239407509077336743115509570251397758802044448098098772950596165791719975248822981214919605229884733719727883290296389076854440808992603963158921894987333306224216887737055035408576943668565428770843723151225060723261237782466556238623181272712427321420259175461675358973356596094214604449309578474635026448903091230168009759653254014934521637755377014951191470237316510507123224514008867386309545907836626267173728323946564092061193114859522374134805491958006860753591430486827856562632580191312220955785911658765841511798051376040360608017937080017083597708584659839737660930733868157983429508992989619333210876856225682805774821460755195367533324489001930708458072453655148258438544181104129877607514418471148834740245213092649201891398891013565683751227684587637949542175095332863850926365763841634938458762761493265331737216513493258237662980177013685208366274191055270394738294378326622989187931860781280106880952050472595231927036514409582562108843437518006642711954646498389688792829534350782838451877554727832181561146396086569201455506383345475725493373360346664507307826868071101963410249456199179421625047945471530422152688975228980074721928076952211003612052946163018775683393645423284469393472077296131809805214690163816572534953887772357962360108843337268581682773554119496430671256021646170776325293545260401738422019389617291969605424222179525722421106194706845520972228834244481092858408686945389262650119636683311999282831336289004275159278820301725874891652070279469257105360126116507894397120563104639965512408814132893510084671133540119717913802374450751705197412040107429149986088593807349485510847080450561318084038756513244537493211724435105759900344434937592668895629154958797369696866318466061557759274609483237668994647046793891443693943456984699113274657362995178358069119556898345923084993618781081797767950602067926993996799093034319060307737122129626459793477675396913563625370959822846434867484563740117723806374743181341600142518935759795493531199325252008700708279360794912174701661597255730592997727592601897381829518192126046261751932207426951839198349158555287355775694013586391297948226355699893660404936605426231407915181189700209987560505656694154107484461846506661183860856176694519652879746759076211081629520376393753653060077947774855004146542920974775557922555752443053995558102624715485964716160932830972277209200323258078490196176152447365557857562855545636484390620392935208512916301781108703151835173439892657941793851601360275737634951720605102795419109953476018014050322744902237823481845673273943043264069009646917602099179466020169835403249941497339905950014771532878793824654049787942187707696514643096585310839455251664673073178600948989685618765044561732127599668978538380504827024766872089678060281154355995773937358290967166671424756876073295691596481300157664832436964003099422320562586726421564294457416271789420746322366930740354990816356761685346169707508497168828886911463526460304965630484039429278870599207052180792040776621466290060879322071408353612123944827151421098358927367562427067625339537589045078524702777540422368470237536777722191602011112743642916486142243804310791940766848110036738551534551039604172617289186683856937544905917575632630322713381823938316114648560599120026573065538848241290053852724648467291400039232359445997102096554691332324959971282679264982469558929501990382053189239823937822147681796319472026946711252242709341181061864470480243412293878238599910392782488981496974553655976967218699711240575871827197398051020349232977870682915570372204788378843150538238543830846836370797866182346960331840730681572542939703833945214066861687885227808494137669819582653639678071726473246636611101338546144347815113023278418688378795677358945108108020403062647450505006269275608093901462108056943071167726434097775823249169922204774139876472089778402372680158515488650474033046913570845050690726901695819379547031732171838154719406008894018665751554242309442302492831533301027063098661849030725585843218493281106050237393334331891092120747466461080971714931352840685864988766548321810211794857833906635806085384735179855465026723536339920067419242152039544066115863226012276015908373613547668359297823837334214190024003318369712563395967964340927377152068758607670963701557235907354441886668749441431052631682118503089918151126792795684891708825671051044238816265936246814194018305030083002724484678843607014673557207926839270444636518877341682433574701268774430884543050414127862802475588403381554456460011312482887194436992865882476969085746266117098933769125508040466992116021857481189259745561657382604431144113720702835136243960025409839238237335567097506648523893181543465200576292252153241469402485975240053763508400518410381507846128173697633709171129041245667244755446881877808358810653920096505091205921468699851591388525645829145254834991518212871079513030919014046060188412093689996217115311598654271065614805483257614904340076395317718038764789180168842292297293959104001397985935378822021674830304971803482285529819076526246821393856141113051353838123356829393158730155030636434334670409951707364257856069995423708687434035259565742421051976875351257250167519598803210387810963802219303370514747586442041925925081523548177261683333505427026193607519438690080264468471399465334486514237663330615576389702393292209176960844949390573140758930309334771386588232627104713201193028750304200463911488084992551210802155353117070105163313494602582315906409537134105352938363940150611837698843582115056303910179938683885586010032839095573718916295539978325408768843482692991515768227371192459914158433877244684930807115166264224452263637391373590830486118002474373314226808256760400904725897193327205306171998260927657314545550163124063676107267500484914803996317275610061215464244159221316218027817435315952663411322375104281353424662425131181183345295735815889931840735168055711550720538506879381722159230063394802541553344367886797693378363979953305438276787240459928646695335580398401112113296453372455837129359933007131854259479584268958963062711441999282368487819372962572269811378310921523746033164731381165015157834649967355404430845509127908814387236675570525810468022484552869696099761626446378403055084718203896014426120730603838871597027464992502266378466018869306763460423449346849426686981328193808086229806813260813460366012034813194487677381740724469726449048517483283734171986773320289193409279105687423269993710063714730633639813329481450480878854261631398180423504856199192214687207514254473783182167006333069445100686635130354073444981065343179716770484508483051905027519236413283916455513430210388671452625600103755796787995577675559108273426568811241055664961059581596756373655654826102950979446891484085919246264818179444082417506380790438499819605595637186931434280050212438812078798122622285152416286357584845651825916268889468504172719100880508525990561884248832167807417683438239272631911809478982393940534273618224371156961316806282710968715845706243006906080590163425137160536872409390958745995293184589494393574103771086401636824488253513015084761714868821296210866234742550319487928494466516750605865036204991261645478999254513070570146295465912318101735250782362953485270803022406089256292686328551666000474800883475525681673015833626121378094375359173142027725507649962865226342433649544936755804124969775063335324908399987656998441201336216590235420616024672316185352399900782093669681121289652968602603263251775337181012957234032757904728116558647191915117745364865771989270183237248247010989042170458245176456813519727503454876804216000508698725297259737024356579769377281895718260378209129573525787683942925868667058326119221933293978305420687691497473357040836083100638763325934669880734751950388799544405713315143189908265033084970912559752567758801583233561897209072461149164886077455296568451695260420780862345914886749641547584487892770482751794205517510833308164877268090741908924565265441763150014805657296781907579166606930288538419522149874765336761874115005882991515462147099650227576247841946901069525677828039940511698739903180962989338742693136325133011007788795518532307311985589134703610621963645524051547815858165751812636691879606787008030874270135683306588782219418961208735093956742094777931319188561284154308477760315020012198087791247908589806231627579635423502411119691478720378467352576128892811093907261855924010425020681662171208368557587024014319137040846443273607494630658390265312916772780421350373503330178358384768559648797363013860081659209173954139069408068127320130313938589911380209232489684025057261794563893165688117635458119412342197697153752129186635089937636962875154406579706344880982322244056100365626263776767568994188748326429008061624686015372369243884888826138427716359632286322232891632563461589302214445554508925098291241522302091247377558548485631649112124753424594147513753657443971530472197016980054292710733382622135268661273195456052955967863056334654687826654262741573648735009670298501198902381461937407006485860128559874518971302829567835401817846307903481897030350584576404355955871224857657128943492775472010983813151101355427220298360550146562214511955736424940439567524133382019339376662566559869823172637315837452759808172345756640407866766075738170527040934010494765378273942744245492171629356312727145465813881113624996421667602773261833066370193589942327385540746824459834611940168227644196336871706446923971883144780777632828434011651177185295073648232127195464398604830703344807972614458627956464703698079398219492868616536235662382921100863319970996778318922235582309340361136676854034103806154104845799599941829328597371413891215586364258916637061577358225723379822268463647042928858533680570900422203912379718955741080168125185738636805563640030787111721332225803039414726433617328859681738765952004861580558121333525327407630437109764578594181802502134090046866719351678510390326087111645292600453070967775607811027806360844881685742412719824336945454143290078541586477259131379910912345001762737329338402281663243766982026419949660791851197088408166407230774991431115002831964647902710008776103566495869943116532662643346076124498221721984509805120187792667164296955798052123950221976810105041203042092122652963926559095358693424300949929592009290309755900380365087846206209400490709092424551977787833562014027665696231763953522380223252235592908959141668235939765085583067262350299642484899740422440046721312457567404113224379682316614040220799581256501156157896594520383054912305439063588932573685836655366304444161606391264808178009070935185801120132364706576968280793797587623706120489349973484657583563569302155620054518177974916957374159015182682456665613302153362324625201688375557458721070332876111757262644747921177767650286942516656390249346248451284754794902180883971134187574569851503263446373138274012390816873074254226100832674415730738655117508892274520075367054543842127649435778984841996658409754945949764420730570962921602564900774626180493896646360138933591654041103569316363206941263881393379294228162073354753745515815241212612091123786551708450591939300494601555654068887067248275156632767387045169771454128325607012990920410541371440486617832428601496870028473558946806778448953924276123183363505754046561060171933808518498502216178643440924672972937028549440021509027300349230243366983696491028238129897265112155160149890973136402257812240482278070295568551212856387421563105608448760205763584279188359863420781385690804930374741095327698055182718675342897420562317703603652636763928751034283040654325743193814233622000581299540702191334653769937227276145263977323791775619220922440523857905314075109510385473301573893855712139296649018926818115606861905604419638518876309982158055167510385705483965183968636671546326132784718111566071761956497077210658321503201387747953877391690589569030540870193084767865400919777263257311664671095172334650429348476597208002235503339253664528913761197692955444560536512736700298579661502927249638237089263679956084078702675341645255250271051267263624507407567440625479035041583358253327258344986929967290760579616934771944166240279435472716552817706035285260715473931284745570002628743103331100914440451374859036808810099089758323837966257493982441519700987602401810739481117339277414729615345677724920693665998962465127703424846575469467014732690194985048207221338724428379427611595961541284221209867331495787263022772192914085716847315841764543348731854447569660949523597324561820517978039295825884892960867306670001824447608715817485182561535123053571564655091991432192063403489817108103973440689495368048770077565217566309611769144896337040076251558326334008374907705969113391444792055373576378514172343008681498778708927152542590710066320887767178008415092966985077098954778218494450802603614798700742461307196595585283710531510932633604198129730357905243945443984583078099935779270394396555934930275628632992555569961545039689452566368995868365182471058934309226252159381241671744155568359915426053104265456250574970815280277247040691034831756419166804368767383294101351563358882159250383672330079864317783889731838527939929247545710259079362755624586204748978798721806241464414829133078167359850226560271008370034021848505866775973651864446926386118147888139265716819316999242293680629817146577765369854729224325205831882419570795989665477064332547535393159183360225634566173032226738679766011762605569865067378410023666505510777624403823816014723070220788397986950621124083967198180395523573700334484475491213440730246395782341651035301759012327034001559055470627193454357691361102438436083895861369704090677749389025387486153669700736334171544135444631121064100232205725312826707357531669735459059871962473902984087017702117821772297917097969347596449627031232367948928889363805306025348789342334005754092858477624489534384074480127997643930019838256253812677555346611402822580209940129021411468518750143173226588693260674170708994224769991761245602894668757661600122627132645199529614539374363577274029850938341565849847583758783187372137804522210397567944363412638672973425104720483882471442055330080703243559647561497594161045274824659649826516058363163760550048509822808549527204664628738521235875524925049066703112548012586710738653925811451235079746676874313333414208646184860583035837830031674891908339921854086329745728065972970960561182107183551620810331040323565377000862675339871658518610147356560242961018262089454367448019037664243592076588968542636669496290155405598835630422477437301478765748895347143169682748070581495179780822022464360181986346014806370472299804974569676684577708551601414702865641280924175003658834082733404681380949140842858681753859760523293883061864618460536661602549951098358568436016838003558893808706406322236887536599937456272930849039560536789066176537579257491562712970561161824318398066276272743000052122498262544807681148716684340472613293533963356580676015598432903632827203610378048139074639941564838400114169421003636078756728477185792419051759377183159866624999326001871923501646521934649565680172270408712530258833312113833877165448065109580294721772598492727168283931332170913168524900964501598174625430084284890382927069096324378478508059139958769546302757959956145160438743550305100054157618691839349869210086764387896595612587625103082559019446491260008851125265212719703952757157188126507911288222551439524248052840754239216367276999160216540448671962864420748788140012708591237524284641942508697526664971372549298927836663642560479576242250558180979777913676142988523834576564916375287790270728828715107379424799038827139237993308903690421578392647001818550858466532714518790153715655815628399909698369200404397911790551693131478497533255243740916650304165506920669075435397267787831357315819546874538767195963494630938169384109829062466189628172163857000955040329496536429921636943287391984637105423913026809995914790540253574131087012907924335179313747415309094088388661387938834792320745746324753497706725399756226942541959480932467658832271349130264124492702236028004597485788918388906888434457929594800066315782521265376699285392005333260016138764953840519093457199093562594217733800914698352465258064507893305935455488305731475344605320077173462466403821583567216673589278604968381353060977337448161054667768382511046270749274211514304506371837935549040859081557451940291982833248423216467563829444703429192249027410178666724343238440291490512665493230839130171858979750751457406169344900803944587172326867096051577506199748742645182607552375042068451491374857425850534162611616814215156218095810514773644485460521808738576485389795490052726780658989192674333580798821567482869214584229072863864917652316072192882253375459047764164535015059504789005577029478646998581170934409321483573765689150650057265745214930838147221272920261844826904201591551927876834888108452378452850693282195881159688143111504826455571113989030364856965886767999563717906331441704040362403748430221770785190933967945525678876106293952482741622531749923925176065738899405110840955818419365182807165853098156460421705317627485897270022680812269759544551740606792721827731867759235003283721543492654556730568326400880567679378421434768511607046055019572361500215958863535644533644410791752491542666120008882765633640193507167537060786521679361595976995221572579543165191402555134657944798807288352582676291228023359653477862770491293545668715619449770196847728746604949266750441477553102818808248451540821310454699335237676449368856141091750347151187480795688786920697717715327366032414388015706593939036880408189748040856069193549834833221499219668241704371335591324264985274352003687844659989116783863562142788085632050682746024513575081239642138755226109774013083523447113744428882947453628394970361334896826732272181953712232628031546850722873661107682839613048555876008736485539407314834510276602359013187715490769067448980282606525421339492803789298691195838446624718868079869385275191803579254460283816678302099450567941790488210438721406377065881317781233457518796326459808232250143468244482182382909773505174979272894270662413720058808394132827743703719845687426869703550671753632117113143831833433916013354729023290815141268714946818124340744707327722335955416415379458912900902840399217440135547375814044039874521059232971127434495100581465919051166550907121269428675595009408618729473329026135533530123435123577420879093184222868018165488934747796114771726870481350419070940023527433581752601673017485628115598683681283644774915024547814397481650503946944246808663456513144487199782251835179701281754830791077985085361827824075613000717792195433150688089270730874488777329772640006216576933877532499925574323706991664457533158040140456446190547095374438011701559809805487796772956830040372947948995769727817564967190871543701822750847051909737064429721953850640883319238635735559743224367218460718027195802331095001232376341668727634520850510211317498374179540435014822142591334719958287345663191415105327792870166080275274646122177657456045578019360225279993088382083544070115766798217383328446307742916475784633092812798155136569493674419911980943982388001670044363708823437789995325767724704839970374309849096961265964858053588229798056884845514886365203053734975918837989347170742772326339736845200169815022118300417059483241205993889923632729877365220018639849847903598922763200809987036045209026507996396615812313693102511902477274642510204231667558143714353298948073120502909494171360790757662331780532147792715308927981743490664923423335882164492064709439797819012038108467698081544946435085681165826045587669786075094008557307367949694382238252742455075158676046029702231449714935297586921820169513481134871987024913842170068113551310548929076869361583618610801066672454643666898554691536753259181937507006526970724806714001747371356144522323973816907314918716633150209352134159756316992632934099690001895762992659418711165701988703663982382673957774907409402981583849210179203369111251870761583162491209111428289730589057974542126250112911948414455203487033378646483271597794642744976706035939313945894024777331912328698281111873190336246233341412795445418564208297862543581075430986845416869353411936690436389906075517599537221354075834790354381795923059516273458550662124182433389385020238826874141560046109156431121820609286234437879469131217180544167538193900999601533490154481791564270347928749795122037006315839072402109631010998396365779167535761070428164104897746026536706169907948788565713351233598599880783063990501596122874030650772477569092638104628704714826626001531716550346817761011621793602018889920153184553359958074681146392581633037043683809548216530009593424411058913711908628413913244479157193338846175271236070999901551769398820578530714947099990360090541135384127467765880860956940583198566334015961045965164878745779951220460580940092404532444760453831169499866654403631151692287058223223294146960662946673180848546074076678939826019265711436293004436727505996711408429959541447862732381471043421516949246637119903070526916872067972766004741686361445970391668243791616859727339042339053838132773731012211232195867058134111052082828418774859978943875763989161948737609322348379980769890355119032308021857004745254323493952071552901137860802467667993863596769084984022950867369252030019070451218862124332746624225156056069578973857618968238146509916479538596467217158610404657455552712349362900201525832394478093576903816073771143825226351634337669942309452038449268226824507086252291897681082731184377311651592574012472514336996739989015963867309143829000531007944313812953706490181005386312865741133341271403606059770825750930409251430960718949208924751995021672370264532174758945795946698634467327050665673899138749199625728852995626164111598553882293759882430117573065369542347284655501913093636837917564031190265374387170246157583505264926370507987022758220428300216527094332112153310805187091455926450741204537825144826521839960339251846932736412025762705751892495138639602782881042448649259416373747665103349551916714672367757571788970556896249793626208352575432044962605304242708061021125243326978049188696466112198819549681849008886209546059086650700221503937095963480984752721039652299624747396513431629324781557104050369906827128681959341273365131109115214476081481909416968813643588215566368596872084426556097035442581635680895616768295249585221629890766605226584270732116919194547663727659035260708264615487519789107747240702764722361825459612047147508604446429903274105670767781494855666603305800044344000320965218469231770760039655652610861559438073488248884402190828777821841604093707856460645753027421845122551369411994056912947494587242127459172792795935314029182135458115675987804389790969962685872403151093835782457792849047227074076100657779296226450556627596808652617440091137716839520816599588545826157273981133497927385529771847027156868267509797340035556673031783327097627595865674604884961408598270789825153138238811113494362274162379074516328754245284315587777668908752173967917871602274476403052316997454134631498406579997411270150108287533431756496264459090854264349657560084036239583426918848754942354602918329199290565168762457102347705139605624271417653903223244085077087714380222959007005523905910006088137596439645506534333254844625340914218100530426121397878010220881537267210949056495212331784292349047239941098707895988985171450242258493158678066072150362473874919148285537390606292760372549203021068445520032156398864912765394452580744779194253163860332586582927330255989536268962857003721818911393855924172225522551203560082479511408520550953963959907768241281638690936855443070718421958641115140443104151756162447435699490757030501864566160938173180626752744641496844807165582346805768371258234980475759687086916008430217474861998340347640562076832377994023819184227550250522463468849960369838955703341843219000267394287398432030565824974193056307974427437701058768982001351869125444356991648692700577872737528105111665777689291986723224107817394116637205292244180968015525835024008315654712818184273409195060641215036287812854483778433949811992856471380590421875113279327801798072468590178246648964173604979160887415219777994549317806873637243420562016739561740238266877440067013012348463066385206159784763088385782256131908802623222452450267630797599586946611815822609208757435483807960431926203821623996104097885712456081883902773098603430053066246609494717295861416970458986325228150253554106828565902434952702652493429296082263660990976051252770757575899877347380525432387977164512640767804987592989553005292024680386714880225890975028932651579868666514244543664983570001775465801251804405055882839789546257125640372843569752608054701854809154548408087765339337212640691691426607357668490165404393538354098019902274795364196736875273812905341821565739720710224012857527367391077695534601662678349099520218983722556919601897713361018164568080789822772834773016087621123117818470729654147459588532541782596719462179229906370028651062758475108431001186183067991311607203227452929781851208723395102482031316931879926114994876428197815234226699150478600698779309708562984323761567893170105770950676110336835328827900258107735921361302572527172083614958689086436977568465317010821882508239978759033004307352477235799026458257456365204700207249117163971380438930109139595912723068385026948626184849387912853563088446203215597704488872389200021772376312152420134376503491794501256270428921606775454817744277658793747434495616554748498914542601341053152120490243342501266666220374223097631272188809922617349194761800339804223572594021106940082627958899652986190878765654388012803736955654304593094482555591665944613868237597820534031884038406384871131213993003705061088864464207521395449053386769007052671016129308519027617552581134247966527926929022827150632555922855883855005311858619501838441023096345462187828264282974579687367600443746457915835901519629722957085498853922445128295555550910840152999063978427307197687252749042050472598940799080987603146175506284373685022280301692890580306467394563587575924195198210895156179587368431977907673855452988876853565919219815530994787616899135363964426409472817244798644834676135184139793872163297328618310781120733602261110888140707792725144773515008576433502296159152143723059790713637752115962268097785498132742694616723477569309447759227768639031698652368006360524299960042712472645418161639378012993926785793253440442499050477861561164726625980285591631950948797498162132448905335082179209884658956437175084708987504212278599695813140599436512112889523187164405447866164748537650923689740209393873959356235489534763223338576355450597540436406860375427640217269021469559476972856947360785603478058321946028597068368276128939628556848732971433591682815119210958046525550084488784646726468431501634510289022370468031849939499619552106207916636654340072234221142369170676860884874785650714448653109633522573571274243991479266338282438451742600576557649007537673294040817635752757734419909248506695045783055387442597756223384370721794989824930291006314236585017466060771737787233752177898488105447618545868271325896426497794208169088794991800652375215743801689102866788418919674145428455221661653075603247455771542431595110894148469788585493367814842786381649177918086316318938171154202063499644564120088597963134685375497707657014652567321483751261449485103196766629386943646923368344065035783464170525739270788147017068174063563883310154208486934578630078852946064099638758454306231573820192532613519700156633846381909301543120336896559866104049474356455915863993741039804527229343730770653020438208913682876533841296220957855633823265751582710574657045341742469074813630976178230727528877917221422629200107693156168845252990389434800165963229847735601539665971008598367909895455267811413823323311372979583338799322926797317257931134350097053077905714758239669891784272115765105087534537554305791939097969648216917280354931890509570058830595912968550125734757108934386512048359690798249606518073177940049384874298487349836377769480837724008490252446216626113328033661302981092651917065510192012343259202934670181738999432052841598078298037664094028061668416461418056112485235129259748293892071997840109156500088026412383459296455036416350653548204630230865304489351399937614166401812155226523272293458979831317784628693159575245837623859998017237444357087553150353384518406444881835426949116548548072790250809866480824920630436596669623267952611542960461018948600029823853826969162868751078529371113351280904784686605200562926766755645342836785421091120642098968273156654881875874584223717651748906783788096420557083180341614090901486195596100004849479628945109715544333044505390730154074878383053304607282185050787025932668012502358018801368551576753931949372942967708132222097229541411660025295694363883158726691083844055563468159404101243872340501667753125945032956087015079188186890887532247058178989055407301195220959479197038069852944209222092048474874621570862212534027439435996720509286011278992546826814405373779385930188470759954661211140906337271411767181002658627150655353368297460395604344877897506296261485829781706505766023376178330499516705178790378488115930543681204897600630099333833230461169859684906461843893923906046553296579748362003464808469726720032176925835880289422140548926714577404842731307636442242958410383238781447207344590077437833628611368332942356764762248317799560159292748386123873182207630214844851234195930827915854215496656644235666128697773304669649065718757152066185550975700030932755056830388850119907261966738604144745226587856177536057034635844240641322209767614026774322904717538037766268115764429288414115752148460015230693727993397292138601663805616188639265021471957956114535983498934501442973927579815912828969719099127649579108228855878757780652547776104142410993619834513219615319539533313264268359926841887795512193853547929950407634157358597096428254593917672776773426452707474542201945836263344627239462148543353687714469792458934548713199328488046051708074571178264854013079172310423997796832757368593377385969374102784689658359302902720156597645630419057990481970385965681385523368583704423824557510598111037801832387855311120192898439637271421334316397786854206408241650149252063883972688709615222775269253597998017247087656126472466792574644253551222905663496861743335757563719926110495912830506574329673997594607004959437729801712576192639605191114309079575779893817481964764446873815006820319512147141449507980468293508942160532899596672762977712887080629367195623302008706228281140182574037901554487123707119185227220503205801602390871700033756745380792172878709829193473829466744149392462222029117818178179198667532889267087641282334685957901175966559580534218138017639618161833978631467408012505354626462080091267213802626906094128636901680315107298139056557789905507051742956705466519671569611110168698950306104664497306061261796237312867092325255678357813153110484415634708077244750614002380915320787857343625123690474979528399194078628397503017406990325955420913716865401990769003688867775948204370196910185431727591154935133769865832092498693139721596660660516257486017110471718702803643584784909742469421859524989732533142906219042236353646728008911586069409330457903074758734203943578544233848185689313470898621433215546143944231195058814383084904756030436894230978637138555659036320139820181615574109175482722739438039853748948999028743061748453887604833002646071755077138850268993416247905644384211214900340700212791250210930179330739034236351865447044812742453495930353173982036024055003173105037419007992428660886139395804487619818273053398973868402999176676128887651358540293404149770536406170540356655517302754745616789692044028055570183543360053357607566962077450466041086413868771122281097893273498255888099349584835405173927108279134066411030358406238241074733601501134811957166312860418632572288688046853029094379174712213892504659215302923396481401306685306218915547868461751939473565896852011935623645057563773040487416277725055587744881478965120075721711686673502102004678310494221286220740505839081712406158607949102334607088455125267606450940859155880929707099064168959643219563583618371470079128798922409101487624443347735651516742198628225573251461445513936313559769243307643112259022872732443258628344685224643221579407345955958108983439075209349237944268305903108447411409317356699473462806700084812734103920161022525913145889751956909690266730566601902366000531586297781131136791960758040975738984707147488261365464071737546835844237135078614794614395685077231992710082207801982613514966889742449584591410461567476661204948795065758823661411829233459391119067670909288980488119214875107879105336412298052489652783948738202643858956032275180519216032767857332907383495387852458728926288601114407110544865291563463422576450825748638561903922889287198872391254255018281612132275500113733565613887696076858484560241031909622028751563631558774550056823275670957345739249457209285268472589400947116398831309414382748138737740154079509316088604358567539811827597763184575345370241204668585691584169376132983408762400738613792543840955474776630353760366944810100410232318501103093113292589009396926208516822674661342073205665416937691201367672435550148436409277108728001950990582200441315165984721203886324611291059557181785095894873510860111312152922009715447890291006493549486745768239551146922963767002505582362014622657519796653180990670248542626199421749833860526336396258763514643570891933097848464273633364808714157087363893818293241725635047356469419897208468350808206766359490712030537204230871002540432492739129601761287988712069090679028637488514710588070933507519556821111964115101268288677481387282779120387560139847470993623793869826993078868784759424968660367449619878195381171684029706971649586398340821519413759765040495318130213403748853945432110006944292447451289038643302313494057625076257857469551380914479576739291605472856883148479397369156674781643723923787208320703841554124284450422196932645489398200622423777269886370905755968082790644183484780241643507002140908808145324946333211552171410099350764664338540047047651684932064873836019732312247242193445746180335086745955751134497759687677676071012554691008641086674862002985242510382392524243421346303484208626591232734475459655619426804511733372858087325977882889443333543027603595864362643353909990496843651668836385191507634782221000034223136377427747755614698534462947544596892979881269803010295282326186614787627592094142340338928958137058241152876963841448475757635391693277939656516053503550389444878813978269527026350752893606218584901927758849616778204719407064667023869466014491563748621089407705420642564205459491342510105172639767544361113436009522249520202379509684544443804680229572396476999014291814801630168699572466615596768824584854262523212181224163233263150941516778779656281720182897080516819808562237907038124137002900645533487343037408876662313321302158448539476735708289715458715332967361389042937849310286826189783381614581552164447811114592425741298965500925399086617813002530350869331138209925006867327282903434637737064263828544764906350483037794826215908960761656949117759889882059853868957662701050540404411150354616462990813806841600501224706787106663633742276253903670229017175822802418085433536762562781310680922698658613563256679763431369044846675007450488373173598915982492508056395105430602174410706225520840505783405931135877261702485614569915747226041805753566081236009522139312634798343726670039620098263910579850203651759295222302856474959741518728885064322329750175492065299398120164330535726659911572669647537159081263565872217941613042418932539443767120954071381668276736276391654048730916093002386192612504392607226373653033374746946067874079496967881934901118448225057750328956774469237767400416677338673595578056306530342470983062387959891188630763126039944628459435476731757987392312255934525332093462365737607620945809106942327610668833984396713724311689234347190593251933827715904122265156581580614432134808318420367765184407145223919052457620476412416307227818784450190120491948081382677207769696953751912478382149694855673160218692289381773755283097932899476047516015523144580730418718790588169280315157468934583761238595193490847258018654048669565356345544195768746600344853847694301000152906874503773571493914457678176618470094037234615693613004188072098755710291335149664483987306156872905758991145190584717692280671863769437191571785950252976034891337253273192940240016558978976296966097014699037164313483035213812800087041591670276941997396434828264265300043409511629873434580962828746286888265745529349386353142177805523097230940565953128819731080568615218645655900905530552704538345733582981677929558234580145545897351606566184620453165682611044870707420617704957021898162941250035064077946783521056064346911348898872420267204556870306739723809513710788125745941591555290242440439005431937233373503091071321835555880452081429230468966818762222030570369733026193582860540630078416550341851236991825680211655247224510569003490499677049146238417670944053512157933542536235309546561412598713503719648935550185338054492278390038060512205368374082895561688110465445125805294482493895080045749726515781660585825421826182873924230106182449405501007008533236454246635317323572540163591935423750419203252731219272746835207239974825226659128281376035343957159565974951774406829770555353462288898363402159454724987442312348440127513594500583018309973282281405543934894713136084511261906406157469315349567901486360176504499916474958819346132631551868743292216857858435720644498560725750041494097746096643897690457776775519460952152018416202689980683212914382220830870064119694333842429434296210059990863260677673468327721710197324772123838809657133443328600456045871488160970134327891548571851206916567631377204527396191233532461099995200486531053919127084215750058338691840986505092878263816103201091660816305578477299895456350201489921607967298968038420696909426903581937155023764310103024130720958585294458910698574720457065744792630452899798243511675728235223613741289034273503395701780735956890009537186610455333006204366511574940458082259174955558882957813670764246844965145467985091825530723040581237429917427555878434960583962424560077036086359686584340378836935574872382717201408686007469328932929389289116610101518181018993950712646447035014323217501236906814388190596230601771815210517832084942918474666592279671883480825519924638246405854650865728645707008977652424456405544070264102246419339799218362799428068426808887150027024934577863564526497938395454225921139597919550001681306955944220197885042828125571782069629690658966376451245384405697362981032435023567034530231564361299659389328609372141785293087739124091633626511657767111887263711742738320629104434805055731993050299839323552058981260062214590060433509435309572137935562647698679095079562302460788748338440289115221699174424537523502821930608223023721732071545181159859415845628220968754571435605321944219158600538884212635078002150507704075082815988033473383006206215396776845704556821306716096059872293423746110201922605889060183211809373941788958984411202414804135978322477657390542913152079288639398486902377752747332399262801315198294283949976183304847818331142289580725119818160016734982736526241958540701866903075566861814069452757723966712203095748646321866546458662576730850410390016450028400356922792990827930373366935712185077925697843353630249149574058450996448239428266792062904553380301971573467496112642865967518477544610175497983798887330069798641153480714538986868586534205624897507849487637984247729603222612980319380096487547613232742552089886657921118881318617271312950963954439660779014009612826276515106054224480160669704457409788606818101887616000137411970934524773123188819278840080672830519924668032554763762163724993014995414964199106602450995431889247262021522128159021492867738399679039814183417091125582956517486930527785033044115144714030197472519080012412717622927832659087023457229394036666874838164159057613572838423176335887143550848719354947147314805458384453613413800412952120321274031481598961804313117687849292185880709168142837087622538447412453578552574682513187565157406841982324950923925340394918080187959686497024365161023044242633245377394778553065113535061433373016178359545366209014408106879867491389446311082647846139330214494956291210563485964659787057084819999843185254229633184335934002548700482991646146427908287524591567865924361985794468678376118335275682266317175953888980104787783046119646345535898225679563186022025744227365450531003548067916666823131656264346989119733663950315730763771786811226083462126176647808978158830427372587665795984964962689151755462805906847485716714448676466670009094202410891489805454188050813240570158806413751916861990154842786706365023624160099013667165966353504227858224461762049056327831047743601666619249433558306440304831260254825861262332865670867182383118793640139790770684318266037644064572356580435095494379881806250333192772047115884804336242038447441065912188295454157960567375466427505894345077033048543080326931380051852510132279637553790598019558998070520003948403641196196703243670387543960149510432694753700889875490595089270122321274653757242092565511893321841967594686416071270012027900285541177274711905436081123967136852292399429162151134749450113236838092670490711921369950497661486985902504524650552350271472184355991517380661427240297984471076217274150446145731087825724262864174169300549152626771214176744419713123295339162604442598495365864361790763737003121286424006267254915064743584688263078559442090219939120779317423539607117895076491651672741498600953209028514548830707747248298476884401302858533667532907053491576904438110110310615021221086658052001119787374073295964432009640687291999440859158611008479901474726901841026329348102858716479447848352887718555694618338946184216357690420771079456982377779259279436978143331716538193579085313019037303643988421920803548886542770564058537108897056973725094329543502068433606144630398737845831476192869066848948768284807032925704811019206573843323186440387914906996964195116362946536014902873664633248056143887565157021081426268847535349052457151949027233681668341192770512262585948028513372466678931960976462957754971333293840554819919492093525553436132947925482452084752568285784872942363285445340926537967213805793534473000278129428049031600121455588792113376260382719650967196947723913434918609327236877643790713627552375417742455039823115257827631408275303422645187614714519068353057479660228637492952768708382782879344820046437462733134880687574966182768187618925503476295283380108085218473073541735332064670210583276882841790558069038778848844575755344602394152540258983472890277208989510429811745085429012311796616903107375275356200801947262402216826772931959496877840702495893275249121039616223249163452381553387690099414319362831061085605875121317882376184788074750053246808589972508913577355513922935578105689509302137325296637893206919236121216701967920886633584473666380770196415252422349612382271718243502067285025781550872310611050362057831929207613447021475372192054756593963891688970563836173029590935961814373243605167923096750303760525851632172106768927452203640545917355472603911545666772033281775963393192786788324865112699511826589874587500047753676385305174847785694521247602165155041551120541777843935324894512611296777124936590925203451806077350772823447581349362279491583962198163552166024662481117754541597682604135069939780914476911835283371640268143138262141901702914108009782649778173360923059533766050859336920654089776135845394629710124566650821427054376808593965310897346836496896593167926105215595963973822246400503272291816815867492254906381981570241362525869334651284016093051578629534130777027855144303973389361561795793574568906372958362048711010073539576141024310781555937679995113237908950469707320155245158693909430751609192417576198572659441683997443299810464247972089728662774005049822894482501219938976517261323799324030347058834793014403833338822426127629074512612614409363879891813287051512900095134265201886228654389717052366316433438257849344905042620582505106962065215712803554908591491224703546908899282280355294262472746380113983531945329853971756275543264845724709229480111605822089579697094167004991179915610381766673296559262085002523976990305525104972750838741379536394690597182880703605673034891153390597836738267791508859328694873356198781017490286823797491977944026818966034630964591092811558539634944291106796362532285222038835986370805394541396811029466023708481471677811252612222480790474402893376378037925933339043174600307606901640212779158397691395308738333003152060304994776738687801651897707260704352055710802020813901748810783704884328452106950626105841141175523261935737007402553971682305849367886132016247673615087996465497348487352835480411833765872773404654914085235265105859621553938823160708731377226816340729926940283442454724915769257482668377195193104819720743919232760742058160290126486393639216552607208063609208901665887875511353191804562028015420912944449110945314890656443532862317606146680102115691229695067493540276952653456936123464158914975505704059965813559254131709945163935058372326464397166337780956271263308203770086623478974076662294662306672064091460634358910740283289357142673843184522347917277953246388207914737913237239740841623339757520867468053858720626986499062133972760171174401726780892319750305200644981730660408346183655999567892222093197276256132588481394687517230257682215878102943185137498828325432550671127028107848034333967947559195187449630209381601699973514020831018870299026644168242630164190490558416349557761032380615444743395217675365950322024461755003205165657052375484723246144392110442968760490016417048022403586833521119483605656494654051496194826738510952196995342232719202626360123478576059338334340554440516973277259437518742791719477338564984935132934347926748641128890855218886271846021358812238676976982656938056990577663674801851479462443289722557762975337128748379910531654247511331008421622307600870605334283968800224767097153098809916688223259723820533560927727969863022269619010199810055659175487362950850169467643903439160424237229692092887592071937378451753669206942504864328745393993038767933295449687296798051260593695450176341711306719132356416023132475179472662623463570225507574081297384932904159732200398850660914087211287337086436242420579228729903088312514789823685700728849836375680200697244258262474846909127326253475000241005861685589894422594263215963501908673188207961738572090260012961627390845299087521097209535268527711428565653549226322142790181129463818179500677734694161046819069119705710599005497210370381052036150956113778152726213886086863096617144925299529485226965883078237078460823420622201947193391940960369656196707296921899482586818111062734313329366819719043846397499953668230488546885043904369180714582842408777622827484521986265197849940940218874043689450932935067963067612095431226269531990033001444982078035807479767420296384405371445236519656876122901255145139666369222653412409037011785882218216078888238380406601640355156267474594492874419022499745119029516441860360165189265083264638487632723029350760212361237461111811193323216293873402259822421385785072217376118299444037118532752288690126253584523035725637289601048892242740508508526461305058230143241444395349478443560323571900805442346409380230061201621196480848762178984485743220886490570924974726103714813333819357771001040141461019838944519546060140754299365149036385650271096896846898900686421950216952057730921482989632587613113417343684871280814340666489193224399493038818726374481914466909240989066210104500364410203465461754006434530574445036757821392974685717771917464406914049027030451262423114274487384436262988767443552874277302539614802550432233622270504296141994777478846547903151781358348450134861095531373013816083506771978882806644678942665201590939332392989600986631217790945815255256513240144179367067546046476400712583812037118453658054410451493971816679415295170519551711892894594763538195506372715222311295648471289225771085605551543759652702817575045977450610822553371609173903522895778849866761946954863646150356551582570537247218763388784222246128815764728589269890382588864061064702738761810926786572528441639158595423024589036758706402591616580776925006482710450131804325167080580496643573935950783212552679174633530821851924197789705097168057059642436424832839599804644404084435133608574125618640499294946874147631337029038738288437011053134511148720760631228406499101838567242407977393287154505395008462983668792860024569271579376302999460791242994372838927983498253467335660947142720002837697691269266724260529404305209405076628555287159670866839781063490135022598349037037498114416041344212319585209182593788733225405653435468130373614377178334367998636064721660882613063837337595931154585887169734661237449638932091133531945386691535163759564908007511483192394075572926288397335017110235010727313538277044061057303532745217962919399120717363256953085905092126703740155999530629193507944023348211850900464829712461788493737356425702958918203569553498493553136041355565059622197882445030292083021709361414803551650089460137531591429920447270022940822478002399242811410604540116098665959218826783178526926081619535786282506461875539661231376631562275004842993667430155060308167793477115005425222503784086933152029657735340818915885145213863890247866649344980311447728662847505741019571982507608531817225602306448900740652545054052745618178260939088648954429901751519793418467749584896269881163784065479531446741022685385309460133623344882273939113111049141475921566162663141992079134890145254832023909602029086830777077964897150349182754943130258612379574611046373252410605538909500849862181866612505250560668669835910518098867829080517554711887265516002348080015232055813003434860129131272374220426490869723823565728088716250548339292855412572603494658769654222300944840927157306043616284091317990988651545735127084780862700387854401357217674082845375911445176226650925652820045478461616435166020397525227149344701540727787359057275913882661746541323736140230821698207873909970920436642795034937971343296533081184256331525417216771328234385700882898518241394644582581508171664857594327356258803484620572641255033045331768998820170796726241357705741734965002670594854567664026148244633162634460123447313303199491275719804992908569226820362001483318491329590743424994232084287185110811497697823434627594005466535309589829704169885421413207561502316805766573916845998387258519464582565000351068856965917256929814076908650600045986337847324605049979372370912209070072700509130005852235537668905505013321163514325839670585520523878406295226359591193349425631897586008323351075763061136096684492717706825020311245815679758216566916647328866525197446697180413342462333117480008895130427962279313146706377918816885353421073854666190826528504866767197276080390382137209635581996456763564711870948892894802084106732419646126029240994394891586722762140323124473182654237109943833213137866383562391500445872335015290783803411214653592076437481189015434491533155625120446991831606420923752742731253811647998696408627835350274695228702700174341867270946464912687612422005892118755837016260634887278004587614192158161118040528939462130373651288672038977510469082030239594345653213264660151999196864980855840845779101437393936956847749008888702207684019156257546703088156874414399891055278588934796787178282729871295497624602146443785554373770844912558403342258490639513613300462703035681595729037151896806166984832229113746588043922587334580258058248689886309402161473275051917407392586404819581802073069981385122302927971932732674734757121735778130088847061185297893814328585960212731037390341115363461886526830512928389381600957580587817283136696810063434479804908661025421389017903104936190538522817232760127570830080958801411682024180887904610856201445301951341834146085905638486253330842672816697076906578916440478133709706363405478723819802808989517836341140496044368827752611309705270390207705352506027345800082737600775627902245796063776066249488120496120585256207670352260076449631128768554367458887586257547740550146404145191327781455193483425442245146869691072220404587557982067521576377971725697164961021003956602094078121267837814471615087928119508047549104317568454952666288466178715902502036373126895465704547861881546224754392826175921507446575655001293827783014017132675182109466891331580582174087773774117765506634523229142338341275667494486582166567551488442344815847220308052502321534154425761890135045938493162159741155554195431398798931806080455889967810619584717566624279919355850735009128539144738070292015138095995083098030723035932277517726158013927232732868194295696902452148701619600091303221592388789398054842848834180849367698857158558427018777008314369902091756670773005995166703481784781758732295969999457378538620762682822848934607762906729133638940311813410414572066448557988391650193931720145343502807164017036135394370678137137733436666992307487765821792692130214309227035861985926122772297993119530897451636075908301616836517434697306430807844848112002766953485532951934021736724079727448074562379423932743160549701034114525984021313290962125732102701439008938709585928743102547921592846821061974374492453941175283769106092934991787168660590006407501024789162809827331596500061012901203141107080609508689313014798813277011993091927825367248841270732843906394014767090809822419135443517157118725147371606799661389303401984206622832223111587741546604035634073252276307963143248070610599786256900472443440590921548680135106480597216413223428929154672516828279679321180559230464667671001587996918935692538685359883812491475959623211744616766915102671087462813491408009010622716866719406273320225894115357620377471786895323719905174025853779682428692972382284125945896108071307373377025351396261223246726485118857878884909976402296968963711042676537616194483223119742460297921539428596173543962238743180873121034840766527343057453296306778128423742252770770389583624267501416532696682639145323161147923442047025684164128270621420814493024230405505942745166801818301429152333352961907177010972569107994989855830891014599000878700112032205167009913111639554675518792385927484093444817112028520202150368629346086861933849802833568826265844661515313728894530518226228105540289346020483935853405456410867735170742380832771369895988621307577874905078293686208054432484147335737280738272568258660715712815529839462573381896729751135176720332519829288068472580680254246681495359257186627453055736504661687127670632947629505575605237087376556199786537990772259251536654046097241525654662837396563430937990021335625682533831432874663427811026086772497645019533122265070508246046590733718708221697991000969412328992560003969822812042329482084139064595159691257089675120157912014226044916103475817189405429136859647074628818619407426627925876587062599797279523520145514249057390621958397417333118921092621197106440622458977509141287980951674741992321283852782354413499886312733987353976042059071712415313803944151694695141230341789186221803879791769302110966775748394668705668497638812585236335419884093582284260482590871320989472045402088821990366417093363152770556384262158898293342307329625237588816337298511203068213540673290496469499479476514772931382171136291033538012091195265317314649379533253085981561685920457157045425884032473467121743944379476193574681795494301091635857559653795342371567401135919008687410050218140937075715777555364005271236779267412771929056843396415902391209433162036066082865439708384604949083925278122775187412557524155944254966226152181907588594938729341841668738889724272676444212835450266796115494677256743778505489616472314152751267828850660953283813603916090304081139915423273543441859443048042290851328620713113623306756428493262813397887374584350142415628353575537030610828360004286206951921216181358671184324609776548272406729743824894614163616586107429867158648187441763932308105543395132097372941541317179712690951451318279554580191950977973379333642614227254333243726375737637732397211215868571020145974661331094752922156122654891965965460679109610157444176973862737732774360673972645096628191100885111871700340023303658598050750455569310432904776927502123729224690602602899377285058125838529106025362335287102657160158993719046091041128103499198738979955773029370369810618539504600588407059109531407351456695304684959677275704320606361476531543664587253737761306406068202842224851036950014796487713679436790186386572163282556507225702956392106364192149044927689580735579433999094601263577930945440402743120457162050975275113503901540683420632818065236200376646638220656772734292147087590151251708177199230387918703536796277025980026997702186107767481554624276684691758632051515241173519678702351711034698654406649221531491373153466797149672085082272459694254577407590640445728130452757742114260342660136704714669900501599878006080693777125336138443589611193827263018154586340584266370963375947539094756956358391864099017923915290750188162293683956803440507157420002111206029210675051006647799454915389437632837289575119006653173945241296190784370408169643268635707280790378195408265007514385444628295605848086775617973168900927171752357811321851738921588314996180649262365229388563080790532766303586671632186417166145114008355605530095512995902413952275044525677037214278513702885685292714246301744636122004447741585768414100989642994818271040820168989112662614751597930854759940600155667096514705208692285358490847742965832798942905937212564858306625638305745875699048113175043817720477007390342947488214316185310299525115138309244435940888832820436314123392615386872275089624904602488078776948413992311747477198850031567265034944003461049479132405142390439418813264318424628675776942735526238261868514193826481093174614728388407974697740303920068750559648075605996791729867601444205789376934919807539670952407144938527672598445804852350534787496053548313746152164554272182468896733548253597319228827226884893041243466326263530855263913945775010464417012812782886356653225953153094131154420014946464346340192926768679494234886730615833961534847105588858937297789343005539147788903952083075018880151867196105091790924376386806454718773449563292378227281911815983013239305612561121301424697679436985709184432376529273527613878926724140320025815803007786207319416015227588264892162518725611937456660061827339844854796522571741214420169142202351127278933752489126718356725294554778042294063605787718542540737199041696622308650785589033439954125270140387539916842393677531710751136555443614953532294706819396021771798105995350384223862742344575070178469472120428020518329250989725616516610320234693659315873249766302340104666534713297972853597402340482595218035308472434504406579189770497937606404018361381356837611960760027576140335691957873688051761601787617252757891973416741449525550819791871414748279062951932528697101676079254332105323685952616518139768404910982333329033926340381320294064030503256437118870350971195583397405045481953637571128711049606306162788116437086635542321368842846551299474724779230131767188806475298697677782891285050986719410656626119647032535988492762863892621597174338524000876192744131754160902786265735786717502458752051410880211363441780231088548267270825255764650208032290177096912183314755032377105516526452421715778192298163872499333005160474549510558598954614269030081350539071455569451685946434920070454095672379183648362710337352801684011024624885575692680792391007445292159826434684022193584161949472588514458999417743926760032898067064549715570245961738001878141913499755474425658990063823620062765262173050469357577097265675116247198756013260279492357951100956299157814746365660321571041538503178718795655323470347058143831742175695987298615489941468957875916154316598562190590996895242160019729600466938985568359281249493917743038555838677223459180864101579337819269495273093638181304498729610792587830283490147791113760529024145030831105617546037687235280502075440116883786208061648711688890194258783261763350899058158281994181485614933249662355768899390805831894797069228353919571367490607876969975762304949251821187577142284080476444705005633813525678624022363208615654814699609043509672435939903612053508448829543166881164746654250051820546177055896728211420800201886437232526023438008045921852200313445913276940592112718380262282503795188663467715916385195138378897913039256310189864209877582295515785229019500467053937107020287302135932847941844970253355903834571818568386826361077809391730163068790163039018491475801422733474325287972358742338612268587693684165718810740079521256568583942316153972817073913255132541218846252725304491764169393303491232871601232388595565265913077736914992778090679867573135257852014813262151930029897548295975568058440488027839617604784562065532804018884509753462720965487174412881456809066575899539274818308089031548143526641751604849690169167771720159906906018464223090451235718812960650771450483151098514275855078589007104163751990995140340521061644943597696368956374460463971225927793236610506325059238686711649571592057959515264555052289291142793133966702551567358224474463377253483426565815620095811524802308364094677287060784965966052451242065889852674286298274728174033692340553815406525483268487944575134796350687530882125510814918922468219183290103253370300080176149563474738379151425336421191187762926735655868193334319543056226484256268186586022063818474359401543688641722355258662113255911058056682136697854794180105617595308399851104908573743828728904410192965902069464960725981544395698221402391363633928289004376245584395290312612243658601615006042575692003633911490618468777346582971697735595953352328259402794834819877012566842165685806405264504953938728723861881829114576541696485366356972211983294722525983335962088457533396513678830051068122478822035208956854280576751733898741526274763784118040509283921616090196085355115823896069360252756856648976955952332929206511100895819324956391288948491047386825602048182256012456150052141659519571360555963382446002280989517369754578892091587847273952802820834694101525039880093482263414697882463168514869368863820405556060178591728384429404043284350770226124569555274879699959292686971574331895093533604868576846767467758648635217322399506461372114367228748244047233053210261867891408676111396481568904372835780638006428200319011404150985388418061478945859671357594032108097579500245814247683030517338847522459673277275941766782957777160319738991615129433993804371512003286930428153033763535279294251304234151181403505942656637903032465130621629272114649693070707808388990172067077683354419025368349892209673386671647406769684939346288423432773816285467059884278226573704505941038195016976077649035062974958404344052529216596179198793097175413464603665421002366024675249282973612427088775904080835331206726388979747018721245228021113050428303322812473773132847626234042208053976577577372130803242618613307605931403725731551170445026464560957705897547203247518417197311948652589707675816468859583807043930445412322294493397647432352944590280144020224325360081700271365333858917371357770256951088469501465036041740334970058451534280089358799189833146662010022232122736972157731773825969869418091525219600745459782570742230677848183553107624586247879253481049325709954269858532742829381343768588087679464858079162076624787981074506465275147537110944336239863303027087831366302057290608794702119823109329293964468334672141685801040193885348945910636062471150225534977870713289486815168596431016993659559384500515592006369040846570465912399564224939960120662355017706079835584679335813777869922297402953775404902326137593012901045442066767436335194228783483042237512980922665637704834610754871864949626555521260346636393242534636275341108344905789628548674320991415141373543023562552567302269218679335465094936607788605507614511845518124140211822115951935402239995726993771444671199664406524602551771767654003291862307153593294714134559184776734375667360210299664598287528931526286764026085305363247962149273127382163948321481021727108157474338741986496517833847287274326051752124280470070402570462679549921472473424480738502333841527695581446295891000317790411757370289079723618333926665367450560508940249933095268646698452230668092963610403746901138714240864323791139151275212987601849859719454826756418122090724041350451262182495415556370145686552041370993990712550288059484456936609487483019288591899361945303139560265636773425062653112877708752985989910174200953712839583311044338616089387807602246620407032575472204780543198658876894272517559665111966427838687820975738478097675070149266937098899728327842273613109000397469123669632884751171651797807933687360052597665112795414150989071582935258783240550257502352639855928655000919327022617768768294411105304913188977122969824422607868297219917495292948881363621176805375903104400422273468855842384052157559527097389577486275714384619906015214644924719757205371879007451879159677528077127949379018128170846998261037501331545864762590364111422494129640709536037096757725097374188755685306253034565354086328156007430424621969889068272810398110262522748680152801928803004520833367756492005689551540406641927954926324474710706122784969579521287582856616258378504961346082259629367739604499122899334417893949466720368929253277110850856071635546457402833121249445409100546837141598128339862932835787062051528956933033263194372815496039151730846135830001702494359327243228591947937117616260309951702119299294283370761566241647999639828374524925220711528620150161445710922249861872897816048071887963321438105315821757825959358603876103701454015546537861402681454980076939813189050219618962490236577898170954790787539081971191549551672933449312883392580354827655913792402540193850411816834476652131137986326253663110584064133151449190011893911967805915953840377347176963328060898286088662065350298165863561901626073171630309433028693414313393114163169113654084000360728701538072912724998828372247325590760136761480810377133713421537785035624027999877207694571600367888820373655766310182810626279600006804623997399391539622839517805033557675693141388553472312236076410180757752340263337460809404322650765851287581786974846147599582362029440207596593384486034703581274999875288960901129011591204422487202693239350528786181737195330654985258335976811238103497950193090196999626368371251531086933916917287679828031786908256514494456152352193598651154653449710390405220017701843585324514837323663220083852370199090910065600143009398630066434890890731596931199239985817127803700281930326140131452631556410790891276431028212561067462375730456055011683410226503915991672280875619808963235015906367661925215046532371255487139311818538105156544672992814677444138397815022905543798822558217719124675160897061400433635853822551979374447353356380977586953717219977327874816467476488927346905281605329997230333112626483137588770086420277797540253802998291578078795776872120037232362945968111089097439640218438144558979735768241539943129630133261544479995460426341052676789744100559861905592607880974667315127162765427278272698424049870442501479573119516470550765026799102801223062932697896984011345055018055743229397695859522625320585272537376958497129985953136005909810312898552800823487053502402097925928303369002294058116734052843393287191924041839004092912074000391651569414473144630926333429050055986199465238772963061834676713542089163712585876431143090445937652738185952590862954596229512111744886034057487375492937638883967651353816202021385677856683523082949644021036483655371306226927442009050702092518475433658384134017864173824654095763462078570452205503782460860651997306060928890418300536314110565871682614147791630562048602842767725696365473258233313553504009181137657520261828725070040203509051238233825186299538064018859957942540522721801767250209196110340576095308237847041258267076977335110808025280333759390821522893119672432296031747679450448870940316486583709929826275442056068392183177390043115943745178131097337250880046176508961221979520278950545637354603948930079839213908311321286393836054990651931947979346110941478105046228048212919222274398508624640672884825338595336367552530114726959627271808651102450288123678301318630980956164911157594923524808223613620852492033023859287701174280013861453577090745545064429831561377773586160167205900741777162843052780350773243588683495758058537359686872623598993032179160719617072246334543559267376035598774194204778777288757319212008520239481863041600538648273553798920557728631267657085333065705461260495081735271841725907020802138755521994221473533807620838352418143018280830652330529364479299249262736751168188476919889537178811554301394088382149688746894776247710939151180324986490445000484358628426343495223083751427900378831326668606976379124895312482071975087737856147360764247552162032270716511266885912526762020488510548779021111885212623113553683527558857395106414877072946062689654506484642512601169072755129722133752354992736098943939134350732799287469152559537886733875996270007714145691660880709698615006602363522352283325573109836857938502980158442577181356666410850647692150092804570018313400823784150907344577301316483453980428502860577012086045081302741026186572244323971681145562821050180258086083231955592307590920384366978074312664558130201640408337548067221799398774432393950936094662820890305220845580017216192067480556823494769074424836645574776730718494474827644860188663618916640837456777057450908704806592345081239957716140363028504016728579202131662797726709438162868036431322957713042040937350714904247261181337671887896435448431341131463377021470465363585586706316980381518881401469366759928284513041724876578473111107748763185358380100581926807218862984766887142391969934886525329354328849244665044403100022000988055577661699588234008187923503182258887394743514001627793368962834547191185910649867190045221830612955764536798359766689995683248742866519672874997240349256772079813154070176765517964788443407286308948726844631099056164442046762197614165013288058247684311311115224195183949893052598901340692019447844550599768323332086053724864955258501797013949941384368404522177776543439984630524155477693191216607534511386159406300494951091810032095323659293226540357180427683515978240074707822559310974437996434828168609560704086385062820701238298315905618182006522720167455753926078653043832821258851688382542509452288161295650518518232443345514229259966766368959791633860593269760134469146254105296603034217313547277799053243997024429249676508951468757240152903566148875711843018668148767621763875642275831570047945794893824512183112245573956947904440214255318734998581429460223739613025813404969249348730921603300934535003370253364169691465391678721730944918617749280904239664541466605204333611537541729383103498031172314808069558136442552596053120501166836428680381348347835059806457855121379003875358027621242983361034599643539787788158939601530690482814250448105631267639163864034214784568460292419365974609429056605990650332534263490047627777057465078071123112513598122852061187069879524379549672260346391505588021861859072398404305427229813925605790681908833112387412998253867131679216419704123958855755819399867842666664621435269630949977367094122631165884351876982181776538049758144620713267369651271702469700644793263023880908159113320097887408238677561644374028329769157900294029297621581148603471811513444825699812355747132376744906497915823930805525827199639881714475027523417701396827213391594741117785741828672902377373806802892923018034009368776643727412956514896350871847949531848325189181072657825201713850031084032475008448140670392694409968211221108053324011780172095993402189583101878269648516160839827553278843065639909835741637013322581474654410675598096961115757865457157667329245172545662453981047900171248009794888697550433520738430502879452441032219670452134035406086407303339045422644940297132567804374364984514636488696272600569476202533449645992059047807032331103267610362278193432981074413175742860210375984875697377745029402724225637189570632509712913194439456130878819127272433210871350431282552248821676306077236475968406940320999018956300023848691610002943049361502532475029492358824047680214355721594200410015742877547705609337501112084476742565680264689381995037179926114877871305064013811766069471548506654218803664249976446352075172242418729132088722816170779073098144664716163526537380150303165878492391025608648702901757315025328587969278583470725034903217283831195730434971713493134034728909522277913561664022042841223069852555356660715145506571419833310366867508402781635778067783733651878480870687656184933909351699835741392195848376497535491529344963966683849437574953798290775995242962707596620718405779913214286098755034100329620334984983137998368043429655527968731723714663271530785503253830886555811782047081624049266931394932905441745685979934488311982071631011436076457301638852249782280196197251449096275865288765226362119738552383840292417996736760851455155239456414447766643979021575651890697445957780824985559325976948160502469423134035225717680782358821167222649440328109067851487801717204808227177363076990511597360299831929651704903195371273877406095222315002889784422565174808333323174581757822130017513566715200128762560045471217784653729263345653717177385211639115348843601325997162976986981554943605139728178353153614760625935049407398946862696301798867121425481711656810774509565473294491934560682505347602116603066397751029705276409620229532547633604863906834931276676564209314352826789853649831893503840485196653372712419893259757726157412567494496506997912370685500213498750103581893464502305966234432717294569618427134301039394136830640726382592552674301036814243906303683137629942719331249483550561426690014999436890721211430353377843596145014517560469681497404790085549527709513580238791594023938903583999009355164452530865485944371395810533944462649218409014162982275543610611269205216012619837216235287642087917068223320252195616872948092424782931542126275129802058967496419441640817260187346785324314752197080894956038811660208001173973275586673269539910111739743655923754236360189000643482943384725336551749504906535001108594809954160225481340379890623087465887909985702347887350480807340267763942762451209835310492138015867731813677677474492939903576699719966429077088582044326732870276797009391850727400447134815309049009475922297049274825501314676528498407621869859576838337336981182028336628026764308922866639275093411784073824944975683547466522558717609195103638470947330668933181270786267548964521801702442691063409424343332355474899171612095555029306397995190134568779142896881359101090786821509204761954077672415951517736739559781241354852366478748076655206203663500006162418707705998637488204484902250945422422153127176930790538155637040409140832842453573324245614613412839083703875023283894720298949536431281729546683808459034017251258708314731966607206515340677347296599804406702332604783146235379295548606350405248815399483277825723716074980454577073678239628355813601639741978712630945399177094851189888812751051134030273230142065267023077851706909595690150711005871349463571374887514586499374286339359616917557273138524821547418961070723163214306114160787796640250941966137608356035856844580459901909347340310072263671419218793291297273748179728666608444388055581618451002873811146275548678263001021715912361255645429324457338077914457167920857375351975216354207595457140431196122607326748584990874404778299721955089113836144224503175670157551460219364011710276453017754342600605203519552407185956013110398491788833813619445678202724277936051473786824037070850963315320602396539796598558708146000386688380794333321870688521537566039444132503208458483928494097897900958554201384421283761296435228528134061287416358295400500339328446142129307159314724141659318317733584055274663046475403263695268729383629760936677559104553932039121036072382389562733746070027019232471887257628495443928137450660786902923072044018417674871732774659186786008040286373813918108769627740030235958263018008862700760142470110312714082618109646788216544387587244070278320587133030734891344303178494569301304337135766622528174792813410240043062204836158887454372881003679366766445728835664408319832461567743835348723598375728231733438056810839276624203850469745908836911264189043885692636695476253043276382114046750150320349712689144935856196109409042488172046527273227729173075664503793562676928170114561881500025452207740437127395633045658816602634036319531082099012731537589459410598734169010554238219411004386351097880660768301214942270641651833427673196850923140843523501188804761037274146069036349523472578992760003114542879215968714798524758395653733575622017385817780372252926385034595106812182648608579596140202746812644806306550889471882891296230964674307136008624233227719479957982243709282476742960514207728061964665540362618191135219797693355590410819096886782015225580574910941101141970426371461374874195170569306333317018128472684549884778776888382967057407048419284738620026580635417483610203291061075096898693523622396035111179894597638258388614312488116730321846155852054690286152116481703527240722254283008895726380962610388634800860187693717269634046808744094119987752583067784608459429663676671407073798300211412845008180934085685637133954128275280014592020659654113506149848640116072416795625107261750734189327921932815036870497884900348399910562830294366656859001815465232755605654292591197699664981900882382601994053959332269663106974514424066761796070468740278844060542495187238825087466585661349391346652385958108990004511949222256892454971593984921721979945450124076788352270009381319089515826929276251217688120648527760014018230455763777044220765564953607263073070730795897134703376606170573723763544755079229194456151832203940164384775541793967842654957752717215519815253939389108628092147572888591873919767916741857077865328808827189442364979255987975749471615573102270199437708574653661290180542853798800749891734621501557357944720175773482740223133334460597203256063899693554793444482795823719672881143594472028266581125931886139167435611713965075866809924657167957714669063054650330550172189785893330405536949706968725498676874357841109754476072340629590333936773442405965612411718264527323191209079137555402928801082911364106388367788910617333428969397689715819451495501191452460754449494950260597793180649211246258872422740573190357423563962758456158030339292051996362423539786830738937660813241627453243462029182441693613207970595403726391460850560989880740476813591845269777235125175212406502119398417209725788787602287538721742284624094639756650035603456302950852233898500361191899924479692471408716551706767180908130495357866886825577738291344186729520928015449347704736346171963527235467624098187864301914108951470020240081509778155175947635234113753664781181758692200386704222283820350097182419968042055191215374438684976176126146854484617948509368709418868254575452064444680478690145290354322094915191064022795262659432654462407490709995466985756620612514943040531383966004975127566869055441242049036571241263391931906705796987852224210677438427953726788041947491230207767238148738725940765882441396898719444929506288182492318888330985187345780543592671896887187348035619537090183360608311503301029397868247738325463647928441740763268745386027271763332649966060861867173708461588892351160782048679308178333566106283744348053976362567207824597690890230276615807171486818580984016502221680750224589486422662960310465900556757556626297090576226976129618534287072357679087960563082206066318247782153620495255017767896025151894352828939204982695817829634667235158145219508629672006409494520108788985486362974209927317447510291931036751937137711293484620019831080581192747554839722219562600191815636620681865668948828588237030851346280188718786928248007056471281340299600075043379470830054072876305946899249089845553931389006118466397552337773634159386978017108444357714319431150055418588477644016927408240567491918670983122918340957452378399446805058853307724007695014206468299776960552174949774781280471362306398841074036090770218725548932353676977778947167731877110432496432106057731733028022980630102441767733113762101142004038729560985974646980509761415647284728785867980704165813035645774042009544964711876913267520467449151995009192913805330664269710500748868854323079552082967564982632972801540899439470317468045000052940654571064304042479149972185604429676108515123018340286211350390553545752810780294995861225860144515746657863700629504195765317402316489349642844521769204198724084729068874835647309985330934211483277200811084115559931919683442973849699861757234464875256484060364011299804736563517463839838012549045047515058315314117594854483519434250056930994165717039852247538256668654063464748515612540130881786393798385965239416286942795707775195853241990491076969414737539967099085407478418190709451119884848140114593659923153570665275680306954196267187414978201768069317960006950942563695776760817399425731533723556877314845818405137574365767326857609528228655450621219400808154524609306403692981857069812890942160177191019981520427381818614314312568710315609564900532942746541901067917675839874659279243354563722980150196295680011113200141171039719042034828826324497093307524131914416093236454719132612907256852660733731068618358035054034219608332244558016819094675425421816987467671573438147012183170679054145249997944975125575196366106937212965054728986246776727256969169301784611128913524659101298060783148157192179483282153638412791792577612139814735814128436670012205900315858274822947404447747637997794705541600085757529739584015418444753524764394854830433218684197502558184387513989195959161199015832854415532073470431894258957876200307777494266198158822427886001608439461062920208465062701203461730247213595431872541066778899601183105760312676685030806924088866267355561440522271860345743775840464232392913446092984447451396997303922020025194189619862461724098294790561915157268121289315724037722332283623332854508073767529445583552853391328430646305822613345631745231972380806908905069947686982724393193450702146798604445107847048786800434948939446328877663192595438483922696939776596615271210053401077023861699153829300316050979752709932983810952895753876999909799075304525319529434180322659424272506076888632535256292834684653544077006417946418703787941222104426600551326259114411899053414013166652948097142687516236112442443936720634301532172602858009620533736624301633273445599639477567009229184744867866516613202699044881186528809908968190222672374997409507844380230108145313390616724291879443777982474076420036854950327878960447009962858142349978782795633784526100920200397026137570222695296580189284341605110621025359430590824049677827388762810042638103325957310472861140029169085574083447542873285268357023470422559492878169216290705936592133380547374173253953759359573964821941593679120961412049053478924451802696247491599943878426733672157660765953196058202995943285414144355523825749141060583030400844788165241639995770870951187892552441828805712458316379984769399319419034951216060278673292506549921123427227524999589410395471537234575095953649044681574853922488962207594342317220414084912409342534454323141924102101662997235631730836105820856430883508958405429021986270656136431567773966818975321590115958372749001930571080963354548216287021576382304496698546619042648109837467232141954309597914766017640187815353184487751736754352352277124047797990181520141854082782445232548438825422223176013790398524404563068436963766254925868273101306061558142842450240740780397040164349958286819747374760578742713710391764777993975702848625627477919062862526283871724256715030304598772334610732439551906281437115778412811163080234611293209825160938353611713289005397438167267627384034297824079089859092148501669313438611761084181875260032942966808406644044171776417868537421090926411830809829779528357642629717487232418264643266188302482613400132795786864346988293481764220273489435827608628734793463493975561222388005915164888732956182691062980258627291230830993959470865218195183124620109254289085197299537705164736146833163755734912265073744067399880694194522239095975102932777357995403101515493655234609990011550501931319304223307365741801669501552304587273258195832607158993739178876718541745249847477280849645479969341093964174347152336782689938136420392658900228045614941465522646068194520422555563800732676114987360312042477724026481550318658922809427959353680678529250235830652947481557115382016776535134697085453305738673496427432187092694292961225946091674924407238914127602444898610599971316211484361968892721339672250155993718066458698316287221382341622812867382291745278503955511338791185404336682684182886198014971714424793926113562973126793219604848643878345691944958768446137245258094832288013440649691150186013254341207019396492948138524374714830347295429490755947677031093594286870106272148551570213588645902677835905176027281806357003901786963930835578498902382634520679690309463382024997027141713585080079946040637630461705622689024621811377960126985713294799698805441111837383744123928755832051959652910320582503804643853981670818890263153805555108241004655621102323372674098531789297971376985327309952861554605612513841225574525594310450094205679529868747874957610988720234245728297213732840981710419580413179166424141125076306864439183693781525175540246398725307740508102457863208820619808894283655237374353626434783401891415576906494315354294453645360000946253453517717009779215299921199769956066005791644696010264452700066720181152535019852805509745226377252034346882819405956502624580447078674724452937837073340651345080357186577030976812908585274489920528478393857888555734498627875003592273002406049265265525867762443840997523975895765804216658255049382617127698854346776704854145283533690056403258159542747981749478377158183227085341131010997592569861047688655769803120665523730410161401598934171149683557311388844251206832164807608953920231266643980430309934626446389510780226233922361528208732289631531959930274034625126368515437765935726352633757346392142705546604330811896904698626900498196880630023352841093421042013025488557695349353884541952157378610102552892566787046175233701698815223333286688863248996617567347854531241928085630008189760821662874887300245568502150562897709511154483149941923811589622056639826991374684766593009376585399862672936069882412817488314876329049731079587597202024451950269504535050872562154365903325356275973278583373484720346274108442185480620677176545228993867698112029617567558035176986001777638798131180537991011709438639924387131833718213561385913508446993853853400807636128257882056360812617780720052828443148017571259861043102170100594190802129204006995641329116782180022479289537017706855053399690599254474683864774654089891210543573702181479058595657734261164351195781608406166153261274453264568983359307523556943321673367584203749442810521261323014201951019008339477250388759410229982203055276130444275116605261347700831631420655194170330803282761664769566987896093702848544140301753034221523002301272856610504491885407477497084438491579089038563490174015356188833396678324396113847464812967690395382194788961623885512509942598921870585766364908379794507062928623959413239257353869051150304495524378876862976676819004914008901563214167392953865504354588209310118194906899401999929408191659076950949663989506088641245575315403105524380745516909247442484515150408882628601200666944561867279790659969612646361846508928905107929833974103575558392236729177634776476681898158822725553913881139072379091945626009108733572544484245415052302312441670770815675107153613374862093367018030552036465050880402884859011827311204711802092774311458086941466214168713956178229539298874818522552927234406404198067863154213129275514323494929667870603992543790660141664541668490304793561264051983699124365554552138045709844990351940932328286071559991282737747067766895272273938164499833843567676305429803250147049262914914960528639568239814106680328376089369623832206199815779829841632676338790472316715089445914633837947184132082710550497448530714862192482775781743252574421148082745222383573438383471036051383373385691486210527405709846415234787515452963929606241597692880430357907046734923439880407217210230672233311093216954790647930697653411114180302044663300126682693305104313424471504146315770934048367845849358282082389306922313732733235601700443233617565498899043837384687160732644683117762663924445697212681726721595922255095790804151201789815747029847737461458962903806685132770020986991119923203426061208757464565792750968244217777369500170362494108408859603071956041456883573687492483370847796139341125708355557191444065107099244772467560928365766730538257031633696094239964443807888177187812528180783101085114436678309425580890655071974318536445764435971192145138943554197959613773999290785505220433817830017134230845056280115754350251597425233400029935593456232810063060002056594262114306402940359146451953379795892880182093989912118317989419479379191997501872438490521662116672460090540174746676456677122292724200657802580209296287493610557916444238492308345136217558735438763281067315237058014802642701539999799011165309605613122045183836109869776595689529726454395275227599190166917076672635646507952533463641104983833152135841940600324630664569056544672292660608338871410994532413442908059937302132001836454725024030930514894511212862609021787817811046551015942028767761033204971917480168937047920416168916829234434608886955359623408065943424961751168521998585280260051698793362769138922343519266358364710331895684859538176994908922921698656662562083636818487503354619054579021781889629160712689801469146879829849686312810428208278524138838613896456532339206031671320131297660905440441747032784418345860554649082301780377995527869309411758497369876163418417448063020490903624596934260831093405404953491080562836359295807318674903731654989608456564304198638823156813848240890642291233092738366153250455345077637302615060886547016648566161394722618450004961042670949830608975370698206104101387629830270518356129343417206899528912798592592537031213230735923240422223838991436003580759527907756766155043162722590559087972693100184275617134788117635038983855905007408851132033930202343308314908393148545561023559573700639833846363300912407224589494929301444645447057393808863377843637193124711360838623966642805889982685234192220428173197988678425940844020193712004279851461705784903374637536892992545694542274414890533978995107111239321715713006524141604064100413144574407537863159020524766019073219815870531124920320451091187409445671134754446212697485911458589145803988186327129261368026627352134836756075622295612783412357343999024572092731679956774888170994264316359437002570163819691834319600789804875593715263999139286373395685874142800156713886595608172167683252499085637356226068249610775801437822550586123841072419074103348814468782246354392681051582329579694724976630454472670276476346155121241522351766152665140339035198483123454113138473037940642033430325140245783956355438313541650914022568976190160788123047361723314584595322270198684560119042875586180480995470295249235616164137498267521550048681982423188913183738363682657742524635064126343445680811714814606268038843177538221734594133643970178676237277262814234045249728716121996996900126164161567990212064156881142181342429495153682152125170906962593786974785169126862980095810683579906684038018472592502578825324385634439720608863179824326277828462672242699762632344444030354411772297135489594218920857982335268762765798808744908523061443470233183245056461269629871351778523751842318537727457314293811600629776547629032702737817571024683549555667668975675138232499231845930613869421070429801132427247466659350385372340580280258424347413948944649711143506731576507591855535495201212381787828766554186058121942318945499710776653075565540247108422281138000140600061113411646093383483071525949296602380999138846512958964221620991624615310325050843494656519850984820981124713673175261537996310658391013936635839255236966309538972909403783571413743620044788648722728295345236985982293197647024131367639473984551952352307632058414456877256785117911395078357150071035554150844668594819582932835667380148928837416594552701686982467885883328999881824807597045820932408483057469175654399149030814296621427358208076746258346490932728529073640623215340849344303265733615452503161096041022943514577342001132637521198270939073260653651094564863234164896001905894113112435819366201129081323494328326145071492963897990421074703654830916527303353785322540779980322358626710700171405606283051597666750944668215167906203541558411548748672813543423820693156264048005464262102816233513771486964754115293330537000419946680351564861260613570321079691510984199709152766375802940121683968939947385355501929336693889699446626745563068726333242406380906987840247005724875244258528560642632194241844169965464747767813744510076313021930217016397499680390928485706185954998487776888990375116276277339259584202927594294580255949539049020011715933573211869128922961507971705120760958480177659164487116094694982930190175145634437941673836680116523553020056314333624490506038802515863565286797364832856126560763537108852554761007620863447773543498707794988964019735383005868999150287544429089243043005867719288452280629546353560549301166129188146429257304205126710425771485178349737841383363013582046356506892192950695754830848967058597102455124188382583884478700635274583693929170445663207036616458132567444719550061688743810316135060742172687910801585229437272855947775579890379779143581927769287857386105606454247251431762765103628895245978094983167638195390782598688978279687723534766964653536436576554129565738051419533779687155777788957952036001249524961122527350803617769390250774623382276430581904765364555375471040100589689614987362446786318166520660621071101182835942485959688154221609391253526586076372859561610929151049074550363097366437715214974741250966877040984391366737709780656984902796529479143528654900600765731155010243865058240521825650375392698201496102273902764658787870202978781309429657883730256624583695726093392618307517646388261303707168201388876846612571407743402558254219848817414191689987863449752543072677772946624407257810496147714457625236213054896891987061532484167332348438038178068600680881171407751451211373167648201262118663793616428256983864616599508930371554379519921855529640145767908194448675515992446975360950278190228397323151490677227010418934401654852760018254456884727518326553920343285140607174217368255027107238932340711502569683304119527716391076595303325191663069514983361904107827421471750130973495859712509170560783669964248724241861703312201410515254099723954130139280776909573756521463298657323252437775372274408288535296002714370117723593027095214579105948033066758411406599699657663999232269476415956898840781972873868512096004645357912720599241079592417140796815894765965199625228813080279106572697841744632508883584927654233819017162233140564004327030251321355139974319798920460518651135657929565561799235633313840241609893203314401450041122230433953468904423473983937055325177941670606711755934162973295371826037666068544970514420098621291561055446647992479441455140467820310736950567179742223359237957929611087018266881717745505454444575995116898540318692102546051320804433743987525689726868922958927729746139435863208543075873357595687806416316350436455260089553578684638656093630418326450875939227829688016486263041941219402261213899673406034787256682897024444841376319640859972846611410514674531738347317576074854032632385894735865725842337976345164884720180131778037786353560936171380363217439854356427846605619189863044431913900532032677606767876491946174416085022964633064483053354655884619198993424867880735741203283261372431511832102589035473838656256764146059940418506864210319007636353591130083747297078292567400029193204773411711264734669512140287899051239562289080948011834561492460766091689172980045000133823952572799229975813610895992592266775294209464008941962381933222989684880143580810379385208768060819962003878336984018267252965608535639890878301358190249959109172139368156448159475113886037361153361982633786114085162588083888320843648447942165716385775254980962885479028933095866127852602752497512609079324147141516384292893445057333470337942763075658586990154930152928145506517783770482222933639883991710192290032405448044782432551071936786830913186733183251157690259805686846268531913540842699334192653282102343991917371896504439028714905430236607078175447440974603849166728525532152754006057720877946745363769850134246691687513502279632299793075451938998641288181632323433358817222730160964699255886340327273343145291119742228674323167568721756309161363618491146935874428942115835265570287889179255386195030153866043446442619448513366870251184508922898015227827521615904439910369982371887483759204972751414461597917739394497077363588900336230627956885586625710744862994300921174236989383428402881895720706973628097617764164277085985934760758817398609376764373118415743734755311113452814340000913664583259653674014791598065828520507418155093049500500122328543807129194332348774724459021851858561356001918241875576624710182276987506190109111073906071527920020123427514449449137688000439086532922250697842750459946035281241211878855195907460474244319491455128381111218995873306436867533906502999068940982097125864422634059603384355868461683520105887534436495146520933921444512216615452562556426828849345480638072023080568655539473393626578836444116169084495586789045131009411804974481322925643409648712084775746247475459809364580181600294012278466848558167490665676950520711469375930113115997640929331861358671562496666559288592242651521079906863749558533312597295792983714947611911853746649304002342602568693802229774125666034779142794131892902192317398487651492074084883671491465546343331314047951959992485595771201284285112544152380745788540166550011850649353042793490096663872290674041898823138688655289167812331376972334173954428171532452868648428564544234016769982461573975766000389426614947000161953643073680225304225907324540408442140386326976824341617942715599262984689177242154611040539979475055926303644040671284861153927032383194286045326145118239055287984469126119230502274305807750088255251796514029687054503651086911772764241768294598030474119754007374160408414778424245443297192857919465749335534440708634870000664193784066624161747583261274009509753515233124224094309978040296062015122796578817052970798280316483818222598574786439500583320854511405787262056390015994361301314935922717485945533118630486569924663799373616628714112754526209014232342550313158975560295552443469825292553971268463003187323151306504512924784825328710042869198651027500090166423348526573684216214560788633539365234991271629614223824782747380550780416526175168821695296070830020741335551666113793408057337470589325247175349140174429325226657317625267932534624526876572392429445708471056333613004177474056039268374498309166218285974958543209121000961650117897969774094076338966982321526425907947576687046848414435374044552978126114847695047235605568875783039744425083057206083544193040177600783502423614807847707779062172439259054674699185171721386640203144674831182077596205721475103097234399531120729471188153954754069629907447066431488302170850854097000438484279191449042868361137549560491418771525442766971488037516128344031325553785847652324134966612330066441975271234869580725861076238140690415066294651275699028647446850349321780621481898087240203953383609451895100918772305849235013176987877236789829847373190315862147887596492376085989685107879128274690579428998079137257165033177233105772102584994633160743576226601711882459608247432072102685003984807716192109283351873362320674790252167742521729967212540926696133474994343479518298079354274516587127808122790961010488866673102382253968107079156544701021010692411925421876904495730512741353434499407391370531496047013570326221619964178583492944132535675079472354077365762929533125457006373123161675447682188189823594155163188406125213809624081315713852665352493759893561487408384625454573568835170506828082922552970149223424909925565889923787135805462692290297919251465144192423755095114897720127608538631528856687370415159242226713335870489646392492122906850527788490872941785690818568500502643764351165551048596926793321207552606264040544023084931906657890263458269301602964083765635105840144168261068325038172127269984703739517425564900244363813488507861846869496601068449070188123358298927904304295099937785318068720133499487703297855372829119717230470252454057574216928986053685631665588665393259321824038929886266572792071368578565424278305835453369157298860336115153743921485209374178881547683120662220118166676964737298344751069977073439684124989779348445979732556680211631812525862756296380139578140667760264596791132908546275043066409716228484409755994521006598538082366572185986925470102776992165407984108422966907918222244906865520409925117142503745797891675580348959032433083178308280773736567747913476288881662685480673830302099480568413548982640574390980933330208794081033587682397672879725409153739668270480286969391149183929079786464253966970390979986239355209870584010868794795446671766520881992418291046972589030188829517272941765365978634281279977875240682071218177161106703428857543441650632027279418365982461492018983201816165509962313073586505693996184300473894993499174120508140558267527563647157534725774990570992000791325346088633690830207533196182792774296780923205221910946331543039116557712020997863984215251336695641432127741166215421352809780866273972401984191021492093013016973448855162763281653783908586305519544242080001886153094796763312233296845313498507260125147753832104992246859385321008072668566504475037562111161287852115949555246525231886214845497522585365537003048259604373000155264557458566149549644864864035377505221536718729939382454308700597017903524164533074887980502256812124144408447502507327064077651734885110577003945282481853639330273925340015902090290256655908967505828406603149319201664583004772108979035022988971412513239690492864546110886642629600981376350938241224133820213658737191216443387487516200198732373990015466653580961258862621451469481258275279559248931024173397831119357024761906140371877151992472677945144203263549661640272500418828132059952204342234166001271797371472092320174529569925473430000763966328066714616606768964697722678019545319174298425649681664359239954143063947831667631253846629158089538879952303851694406481736654699952706466218358212399126949452734929610523376438925173943229528816239416034476864777760598011555968438950813218463775266545916082327416561491086131140566817757695757581647656102105568376477480074568908756203863180963987228702089632171565084106711283332446119788813293619904765525436647057030763355840583855619821470856921798143963587427898536262267602565295334428083240321524433876808193575914141867671307442037474258135472299816733951437348185691675408601230938535629274752630836885096534276186584074307596220585950385820565897069110123538526014703207791638529873735403174407092011584381913699014794760148579580513220020930137212450821222295618291246482798916565292911598504298988410620136692590738273046031110697371407212828155347883427605570509053789542129829691591037544991921943390774487884430578751564892563713785558354640812374854283625577754696393756786191951316571920445180461109196172130873324835533019360109225455639364063228217574472586391499992204122688538016800847513609906960271486397501430482772287653947438081815509522493293454473254441769969558896577335725845634349401091687847634279942310868012837947999067534188591232895672004663975557245663297726213420982298085195950168743098692580542365446472331742544371383647803557564455345039646378688153227296501785234048090460219924125266973696510715333054287378190557551419856424614227959367575254668627115724096826696753668793155218659240405140528765350523707675984695557902517931289161478302247658865935665493489374380810370573715654290108064920849106529610552961688565670376504980019408717550699507139390155926562519801442152418968946692791538917130356090953929393722588306514094338219926215141472741403725414726087304074517500607299746735246628413965188201339670291232975009067215477269343953298706284782142767437181815278482714118453804950243486442593982172319411640432266891038885567685842941172793483402888367002521706161088513138456984883646372652410103780787415219918085528096429288921757175654473344602285411203465104022091654513883565398358037732148837043411297741762198113522074973461637233560115783265272120810069259663396136849421392698993428738425536314235634523950436254711904736592952259020198426379230474972232545163693188836698558388210184353789131322505189006640185049604207061503314917413554668294683183706290211881789880966532920826433274810641802099344480161168948123218988634892300285433669866255994583455793560611820134547655548449395395202397951395981693212833127929955915144875368991368032995882904232810196000161696720519189987173851004402565219823417951563949310222602204631037067377726670800924834905595618361761924181725792325534319587415942347968851481806691347256356939574397353386525419855190357924777223035825226800375850665842624369061090477446455983980158221671361515341369372066159238656999406061309614439000292764343902439280051458396649610114902483206293123479085146564087586149254236832308512779110098717326393602124000641739365783164837560600314994283777764499450072037836591127683733158228664872612171343431037737200747671463288394327858278489151274854310835791268445000266299738859797680461035900193744220142663814540965836982203569157641199479675241744018628373873682155895112504562475726754960584341959650067652144566619973088698067165965200609084745231593510665558346504102040906306095642569259666809487899788718717309841206679290538546004260042487157989603288887224982322733885868260888625753083730229681657371761557944326487004129857090887540182500163512511848111744809999504240279864502443365059872648060876555634140517629194865364068978592882558427483140862621678230234162670792284008725140096255319156734609834595717902929725999836015912956321219785684356719918658720190494045950261595527464310101017945844948017883751898270425924140442000233531002202941211822291040811749774131685399604105089190734060515326261895247976027686453807021552897269556582292698343939204650456411023165360397603718001581929949718447907429215352524639967470424051429123202069604682213801574467106466365503864511233407987698444032088858934235820598173938662228108813746304744671176365854380223395437007674373221916757733747684739692604625827431909887877816203020319999797922845018969203760947162790766635193846519472113701453065587122052438186148594030480811737087177280952837073410302125031737947241087046384197692918156105905860434551664221038089277088706867985985839950357158952943655089238357345608058640718299307814145150770061605312482862852816001929095127280460657775517470631039157958481669855662578451958699749742028002908178153584742121066689824691413437204910229649283235540900917882036093212846470649488667763328039216508092921398009268477836383994666621819871021016960149634523845565716850921491264183605117090578763895817180306008400200455766004028806763921397748032921754012991881590113374225943674303808701827364867324423959574238879762390965890857375325512015662887784748846103370730456117687085235054384302394562885014423231102339081201443890810802096083163768000541666976621915366348512413081382459135590006283734174257783139569308135420737938539839867099117976810972794875305897790439643553124495973650942975220085731496333126971507537233637890554011691652081302496078034706019068175055081383965813596570079193991316003142905772242484531517902970411870593480681349399504729852279789301268671377532427409789401423502709377684061439356826754304033983986334877270050265951690495169686987921978793301522880402442246775500927986201472755597063464964512988122360613926814159576252118500963112136866756688038937082158852291381545228604621848969620336459167116658699866158575929796516458030629573806852859479019123472112942246045872866107650456853568290744921822776913167785882006340410409758392705007965087378121078172238842760252807722108568692000908866646524479357185681884275462320233883148357483847436961869663996557848890149786092790570327714694553400973459237729607722605717046346034000603919253820169889660359304517274853327315826270513141195045696959635845499184351488704252485003007864487048410587096024778284029156543999857678571411894187312985405638793391167925736965173279889567317429454059109590010289958558157662625970564682066711117763784499974499198039993047453167903393234384304237396884129254028348342257429244775471784781386294055318987123863826990071681892107972849671927214173427099767073153371144180949848509561400179136764446241554794172060596754294634145759420490976763635094277880122389811359559677413214660559784588760445553957706943766401156249962580680022734620604034242330339171070191226853337814865945901338643064527562912592072386152829081315250098773207671248397802347899445668810690879873740222979813394563716213468528083099511682877926897224100110196005747040060865115201458754898844533397812553452650555808730249151682264172915275917524511782154482799025611046503646968076348636121248431275960289829491937537218297766421936022829019194980742743647125831304244692511344751629615416124013393558590791903533575603158303916887230851832915450045473446565131283132702994241133864162803059705773947775156879693283853413439804777031938059893294913819298651745604040008606005901328099386256274246172038732014584638625159553472377845629977370729238683873507516146383923695756971345876194395032285886529867554036199886539263319434160014405532064624193574198745327813225143547823444626648275758748155521847741596560603363147621164279828914696891305463568667643336797439265283939204342699144965901354299382447490984933354326508084351576672839120818063566087793043012641257330852645089235150104411430892368187812182340822286178029195508703694265427174823310936780616422138305990918219370426589871739432089839827186426984876004762372124439176993129783165749495021455666825567520361881180977198713319411098244105360406468462968840071674128214234843948939945765290907265939756835259200819007183318628094702682414407026212511289970879546004642169111429706077927655181197032059636286106970481682726425414554324325354520677871156025181070730075112143735743234337886989143953857610545810770787493663337468980897823873935642696553884860086912188883617226810351528298446984349989593299778529027599055804433310121692825357822079256865764009507976322874267378667370310603860432368016242791835971688616165006920031646443785276381513542662201690268596856186978536489661696322583471973834734401205902724058525042000834564039521091397565514890131129454812419009106105122904399384168809076381708802550845485423652325123877531579524688871566016986473907535591929230633054539204934681389747050404759642549736395072701683561214367888509057005327663960770333380439031362835800450208727600960639930837124957087366788619641118946015193675594953154290963140330645014290099701374628182224440928386605819607574057392816893330402387450462917162269016148469544985194216895281787540993891348446819918009620342253191135399870432833861979325988420371274822455016036519891267161394261361758010041252521330304426742332299658873034286125002616356042311493080763374481442402298404688403056574968963287698281344712353877808453338341083819694925092082499630846839789939490140098382904425192140497469414791977822182304117424345703747861602289813190413205754052883059279656568975418873932603699439114782093277792831379913811627451186028929667450590851826692675314736521702395972720603711331862777639633483127648805302079030140872427281292376534109607471846298509134090338820778252399234032678714975029963067971574486816734735564283033740408570609118238003484664971247228260090070048462601111622754394571261921754166033847376013127595789995612514943168970100799849096840943614487706248563351040528678688587071389084093572845823133219469793949384192603677630266601109764444447202668266085975996426077052997531606740702366373418400971731881988959107830622520358088174902290383096960248097559301254861761895221193012333979615337360741825332787639229388602695654425949759906681904742826574898301451471627335989539208318654051077408419851388983104784709171543343029101613088079420488121443182751542283193955926644564454347508873352828398663710661852776563182522951593961022100301557697127358639533408381163586088750061040805119911189564182222033654870762256424828302258288911700351924012404854028721156473177837340129461338586004323075317622254940923475795072565520315475868043011748039763775967282451996779448039380989470572307878472131749721477633895388547340237226759010503071106491688061351207505323790805511807483259980337478836097736886755334041297598565466136358078987662152042776814434653919670193459576754295233973081872106868481885664150809231868924554104163435964717798776752989960594468881217413961023402500857191974452258853539292097901449497014271398328450503230106255294060621494060022571193629944081522158456865667345239728836598591254573091807289085017074692970666324646111991232405749392893685162712166686915043376502970507732279535714688791071996051570459754150939139803745506432894372021150656089150706892416486721179247622054102473224290132034000376860599737605149875778103350684731760929035662577970341524045783854208238833422034534469544740034783079393610445700630441646995330502067310700867059892911280245277884649203195973991894142295786826504526422674824221576251736233200203274713911203137429218228281713201778711796245395811509616242764691574622503675677242119283995578516665204081666150796627315832457505118337389959611358749335287392446986841856879639429854295697630152585786350369340998964461914626501205936752360220373847615129429595350145880538825475413726538433309182814763895843273938549959364286655706755541767688154501954657871067377188046771718302419147796400473395288482107769581260555875940001632349031502690776550441507580969468484745692613888389387684005110953249317026566414712518184901241095282464426854162191471433547333054268568541283049692469790479786439238470070749486771971613813765442617481345323408597888639579552409543018490671203009308512368773091080919690308917783998556325808509259137841811306131181378370430515431042849966317497366689859638148677331369656800516432953886394738507328625652605023958862150554643192273783899560921353663492485684372413076244957083121785464132978465364145287526108186365318085575072433857697911082904498763352755095337188359654187696639881270704701541451005160945782660316322297405098019599655084361686937726299341827307346732696637747392889534095774938056067231547550465331976244391503484349600445405896335041001199462710164154822676465341484980298260526375237917973126037554383363074560389776661426554135322774624357346428178722780071148451204839000076384456787018326033446882041353098576336799803456306899858040339020905529935193189462304979483521130497972340136011129355218876821423739116902948610710135443723703155718538857817888694225404546336381602139571016696751713491321408141965356821922533032297092496149408322087316157256257496421380750213095727933844472030118171382965638255279175495094434406324373014886542070164917246540496483560765589788871847812658928458377197169948807689845494551387734659633156220724683423581284419216101535236223550634811473609186912647083663615101442079587679311358177252693326161820935680369839945538127981080995482201852393961909980397942713210090933385707829763940363594430594282137868152038973955880006955698866869590248547882021900122089265611892488991623202302094690375248969802276650220707516532695688548277582964027019774599513232795700863982730418030127985981544842032438637105614765807840860256273201840343930750174271672742644575226208186479722410242133470965969374864428301324821804085674554946470114203894346240806119288017671904151176042753518519164101163600821246231815788853118464849104756547070654102941531029818771028118586556067943112630595447698540055634022247469485532146602636352667873172135977605201914757897547774328498466516738188196848037000787290084623923555320472608645312530674646093641404519767782327733374754000171370018216924268698192725586550007363276314679031537790822965331518018784247106617149479798696333890317336929082017380176758917305065733750172159497797119992306962275409645137716527989289548185353324724982727697000580517393307483320496218559361012860479981507239485883470077452239082873689011817464573029710574966972160449919453861505324124467802031885473990943239347826639290964149693739172646832551110846164819517263547487036259573903707784373773667220444946126912464134992588541226983146518712896072504521710181847247817198133851773951010260461505717425289446233147216461920956594542586560324914359428763029284755557537691911688508659432861593606178997483136616758478869946948690165771390952615124539405210551078351082385247812578311112359487524601443341023055494895883364258148158464471916060243461278432164947752755626342136681870606118584388101964743424949985241945400574356892160971231854618491180078093475108976135246753728286177443408410010847264123285036416183970288478705270415795158887295722453015715508810551697907036889260611179982455790355994739433684752147564501736965194469628205297513814810851977593938205700718497164268079010377437578378665102964348531531127157667610959610691680881092292932622111929672732222390968354719541617364885667501256651930760883923242939610716813224508454977116056215880520503521156565261811620867056410875575185633172045267315231147263973044122413007286120379701928392067498358750391810249369926529272437869732528918755395154361791053330003799883000885992532533489621577260826449635306457256072105641158070604008333735668116451789227982485816839545451504585144005256982267882583113712528504040723417008164952875315918770281154081093098455390783769519309717937839696365339342512941472637419879937789380422931261624175620818938881188707295663624366938945323856671907801549713539261402849811654323175738989524772817644468293926837519320794499371645667505450125641151750657186199310084845959352930744824598646331746567822541748954672505576123770173560426429028140750214536060296311636059546759126019914436712662356004703782947930085193266899679667286882261308882815649224098530230851896394097796224375398440726601641595252097938354574823457210915288316391091028419422010812897971124231640749513529517244888376821356792679199681230152482125650321461813992823982724756314816487050428338787552273019561217527230306857248382763100046321032781188606297702920520294415035222469497854024412735376609285199416285245957045073058529001407514828781502172962837123294514275796453731895663650480676064890405423467982347349622591853465442190652342120564975348790708782724497880147744652400220880372812550063196364623934979723225020957886704386275517523904239298994796210415718150679919166192604359095505091604216066414629094907934160911689984902993438378163871788148402513853811916713123000192414976152061796581295213306941734282689920130972029860628846915824593730309875356657172633255720175491926972211152806242211166853811910152529701491680382038872361712868088519118202155698819009046271276282596668713384523728853364183905143672214785979066731324328034063226624909489738794077732978172067140377672577305058886211993328309954460685609059215101324702439120281979285427315324642002802764908065309025131305914730290679429892114079175999601854609230066600486022254375648588328586171528879165048139262260123668450465223335625717190076014968911961251778242164992077030682322776315662433662060035740721301348262360740870732987403909395155470103760278949459695723074810663158757425955728695498301093247291115437477137486939786569027467767303664850832624033524788710296205658229858368193646893160904135493159383802292899618057905294643141229687922620211743572201026535651374949991527345728264853286006947538219152535217846442699190299949879978430923757081742470218497876149097366967959781058996764162787755170201568381167856359753464432291790360277575159142777585426342921308157869320918889351720576267068833427951335054287020974438081662724606498866545678846857439932930688233858273674677674161079187477747109671293870378773506317453902079273399692245402731367024538924298852936855927346297144748049627939433286038026749694486495031380348854730883522266957460469023212427524225032445261203548819327819359090869378308257378618068605521753465919959189077444798153820991038830893713237209844983763700767240832782046642572687421875922365979900642837257602464014268492310157039432293646684961221944639031486264008360380448478694917733677850846937502422379774992281274681835112665307599309107109260049036906293346248393453622152222113279694396903640596701613774191522920518380137474830351809214497347713260934777128412121268924716018574116737930733255263248383738858048385117415597723403559110829892313411629755073996693063348286261830303966367464160105352702053423689898852452363621236457836469859828227946588054660681664546776088985851467123358427250778380726830472864149412652948890019113622203334765676754629443183274308327556247281272604408436953578659271946911686962254712072172743262544202473820213834790125235114978322509388423516199414389804613138933518458778999316000831273722559386114985745856482528315218573157615580465856447951264367630135590025787759981304096383118840925874090584687443658323969362935176150334360595451521126399812081407791380320777642490150625273614153376286486375876686050558200090680084761127868679888685575338656252745933955906850462965920472947782874249965235315689984205473846508260421913788029005919116370707368662162587293067921771470681935821400408362123206188843804039114658810144871515637946248129242171837538592273251965932427359986711417629116564300575638484684092097225194112198347735554937798938648237271146505909355028271838333803572338271899630678905482345273979682413156975055578653663230932912499063730014472486673683810946928061585791869632273550833449776203565857045522930677811963850642504719362487669839384936596859186998794299449322245749072805388676170266458455861213660570872243569147477450234521711507652946522064988047337909772588438050812085373183733917402333849997547781743764238089003034859192170869066605864649943125349126873533935826104456513667265335006209635326836331277820892565991691569771560760746615578263198302926839945791197665398397698779296007897226849863421580261471134760793958127601837319475247035966950851984242788051308545415212577111717575634808472509587058031466349702366162045887019277925565147171981103318687986974848396266706791349045404790217406328811725198492745456907634514024211803293024333129532825138006308553135351142154590340239894575602057830334343942991296627473254985835955545847066439710575773373778440509743259011353202060351687424421959602062619191188007311561074100345453016497666530842461262770070638533356524162880750361516820433169780814041618388763593354299540238082868948603853361692925571566067940035816635087519213939259630160348560781792521213091120836892945271387104690173415747344728008344791140792750058996643223849554041920446987058360655058396686135853830361883098714380617789109370258589784526179438536865776150255015303747180137869212418583084565299736456616958568572470977717792008413067194941893923562858563952596688756414331757882647385044269925024117150829092633833234544177454576059826736783142229888857329679956235478620161979383702265649869843119185743915771822046097515739327477349932086909833695491105372105565312592692917936637333624797685594977051324190435997377119280332079711264605175712982752686599516097431705450901602256765723240090386621506502120660200179842121153060952604451778674339665246796192318468097515323438794835928844146709470720123035432287188766735084977232757509200952523587712847565008508290443246724334650920294413293952854893454792039398919068704321597121967075957105171746437844025135008472938342780934027613648773120188282645550497609950716417199251285500838332816292941751183833564861239232476644271722895098187821493980422097216439795456755061875499638912810596345978056551994752510709223700956840108031608870972588197302256884620816478540741346233966733089021189760062189129085842717716455780686234351412182449165233262436049680573105104202164281768276679585290096912986783884802803259472305511394651453733626184623203770520258187472859314647894707090910028656549210083235509493081132483387927765387176535475165945387144552678778237820146439246813981346939002733907081053219153042862362255954716835879141122387863059547808262716214455244708544544362241188687273665469213851458561573713319133824575777747976823924100132730565143083988867739272417891768706211107918851845734082855926972394808212980905181131877151306457206079981944920576332641653110246621511203015694808986309272799120323551787477636964961467155928165696762675100518609527589592735771838008768895172798438421453339636190745162358327912401240233282121894618396792980959684872905476613388762122630423430515178166876425526965030914544128641972464360818622105531624083503894855832925276333603573457167093629099591750490938822207275763024550848801188524728133873746691273217945345265502774340823873560701110648293117553948005125068778566450058211206171905726150830258232329697731810836811976478100953590409148859179051850913345493807990745871544879637802019740891908384781874701037139199068607577399090589997337821117373429627732457197658874918214648562507495975323332093037864573664516488170209401050505017567520662141697542351967222108688855132100221184591389458855227599848751419228681651529031263274573779673823387763882471759134047842490596294693439528168579344171268086405825978482725632465459234032711591225929849384792985545280335133483434879426292996751370448692786937905103447109902925288657313056273297023990267799537714720574325832143518265943372890441820537042440553318257689297967932504886099445993642186292182138683103954796600343844863772010604797634765854298288801519049474416764085877204345960767469892981601913838096679672907361360274012894693390471887510678322635677531076818810763610310808205005792644306810982339915812219857337698328872306717788733104287599199227399230619100693224870987366387895449816589533978874429579708386202803402389882620111219580259201447574618645161294379644460137891690277365228092884802308005764675370702953820143607766722829392047520952356745894477353224885484477283560171870638849453208334564138655026348177429394685294535073967840275275270052385939963059953469105118537754754923448526862750653104697442972443913788372143183542763407902829179650643392415839516638670445451509211038808660732982597775282448546298159200123443440992108615897354258351286719354009736939118700041124232449314145205620634806425724992162277837054188929320770929066608407635223137839419650342314270409174477734530627703832054489242882243366018563564615407426069557961962922116904516020285429521497092166184786003770831992826810584901602415533343144963927883347927320058821843353845330876419396894800142065291570546157521906273737103980992554281259211233809801705657452413171159652615153763773895333110382326544958023105560020967769204620189302752898794663917952120966153674060419536250767410765839955311210045369024542059754191001468741407637254740622416012143509867750536779597943476009361023758995783563156882236190770039644999894011379965909308012603133372036909383237270495065247046577410222341090195748211317336366705087382430087316482079160850166299399755687905730875043302851179151778085380995655796844161013416762409872690251877224223948902632134921107638442992113426858252225927858395432853796877314858419148010953216379824706277307797761190598449205593327919540735420032746165367715810084512584354647690113827479721433909181506227449573193515430155739138473590780032504684711267125120638024691426508556040040407692883838047072938526367155378073072473862067194069875074769962215389607335169576560981643956556167280888801212437267796248401957580704571711521825717009317017759930052299505268856017660028649848348541477328431680061954563518741463280353614179366500809646254243825021400767526517100092264589477838297589403868858358805085017309912956865097091439013379446038904420733089460910330437973662508601033117002098027146584807645482681791034083835137012673408327793826430495497540191314695264209255118236630329119533676315086941039548653927299815973664720623391760893193070919833999174078630325902033466013283953630811305421162687980877042876513564194415316101064748434295884298622924979375579370770580639325278775102182134600224656358697233009796268077991447488353907792258058142780444584610899552130354346606219430398681578423598346110826717773929642665862596643278942001063541048462667239703901615205126217686539426075920283506663782426789146280829476309219727850463972173683685386515721812038039949792193911476437808626382680155092451078496447039061075559533295649353260084063730138355458799569581080262228899296286965559465565611399145700370799712756978345750419081507715252268671992876181863816347300626054092383720115612772764671817321319496758706710774195248364873220864465417038439920944905793299871659776721023550024965164451964257700679874536857447816926770916478018842902744908888762726300130305120352757681086822330954880408253027493977981346148468246704089022002084303572355986286033383249803464119828224055778589984709274578304592317870912566332565981246060672895933919979068987875182248833256527413508488672776230267911327662953344921872226852533148254268938070610572355695710544041477030773678306730129063989191479472290365213902678707825927049722718321648556153981251228563090787666208207575270157687238237644603271024299234198443739983182525779942275229129987496780998691870551433462345983740922496240802488096127970482507078448959109723325217796275144865266429503949892952354112409850329534469836403102315629019992607983726490537917798016253972071621063820755144352807848305101107383268125419974619261831003732824763523016986846023186486819376582678445649320708238327440442197415345255370307111855074304218782176231709161977761285833543308853304167094330030442228334010307258186613522617839621040234624463592006164849093116498325622021846520900944276192267625861715456528391307916447679474216121424989801857764075819189869948465119513772018510971735376128524365787261209878772254488716302582026662082386145049895830183630624180612027076067296256898158027256750740362536723382993141948445926918235935259485774801565732992852805452181185741020355091643278898731282375343158950170317253906535497990903899211435628634187302004415268364684671097087114798267716436299476489834426659355885025004928451004922858341594779335272417035368639302591222058517886394749289314691063396733855446644348799819255355743319518335101159268994464461814438149288330215833259583379819862670771536715724456102589500066039728238874716925754458632463518101257596240756831460308215473525571479973172053319355351183951402716772305812348988213311624518356972672803531974279275174929679339094714147375036017522890128623570870229648636347712942841472003243965137562091485368481850001350271463471008867773751007639127544459188098871651318043665996532473065628864811427773050684260893984228505003343298108266808722883463951098271180340057274556308088013930784178358277977633150821717860888716118764916257408850037451235812333510014361980164192398708556186300537437599354374881511827073868859073013593511026250247805746095470904733552037310726944526096296329689722728247184225555561994119269802012698410283806161607114541236051281451550898504010580718757475711589992545956487306192249681518230278641498605814126687098864262832895045810460282647391675381205369723845012756799519402616041277165483241695073005787511429920854948763334933545420364535060361588065915535153156870166485447759432492693437059556263553548193929284054236892208286802156334512061714667896663596921747950454429206444050378939003102119512478577006789432140965624492874118963382425145372870014718930191995262029134399289643863328454644413016328826391039484322531383522655630783390932101718694962874595761258833901945211655465776493276951489714825931900837095250293026281386793884878259845328997563813325042322128696095356765374095936758280886192309921399959674846749793333790774808670657568652181865561614050108338218122947936531870350816217038343221252195962109232547316449629168160628777215129688351057954987811878004352831126995272803936477479450258130227457426208132497079181158810066318517716572701067039811746103213674159506698344631210721640792787551747125363548599259467923276047606715887840740998573660591449439438796347914391190603176400867971251158311437805469718235450396626537092171865673902745718044649212880091792584125786396283699118237658733072777999169359023201222637160729179087671075734041323011279447804427594116332762045854754960148439970542164976556874138300597409475433560880602952349464173770560262922512707320110238697888618018140596687412495037326022060456632867933482969807995725218098614832070462866688415166061798269216251143657487376444960830049943989880654028708428883425807983653069321635120623108345956830052773409729226044957192350503360316289699151718712294053771015936054334267909067160578542497868178527703081117189052912602100318175384235892634731216837645823331859178058794283990319417074744433184105923530863508600902688392184801199676507952425314767709196126177216785346824844096970300555795524619011873957613496388216678023335601393033057638135926662645820588659368488891846458994575460080900212299994961150448943396652007919709332047332359388108545340000550547564487325933904948050452882743579200551450571612778407743395029249833346200919896956360627266205391719331580068585654667470768359104259946080090998277165233049686866937776405287357347808252682505003937766075739674608112449415764041497257092692856995770034048742889574702748380757278445991350071213150916050629131857995729586241306393258094133631919974725672859571867936872932484909387278387975510001908776925909703668431579290859921283960240195687871919934143489766845965124331682009023072716950783478471755551092307100849117767828312135684460436232452421530646547848803704102667929703613137779368375877500721953665910710031545069498727392371772442330218434977330627623041617636150646833761300921797071759992414949836148962619774920194951070229871718229289611600954257403377721815559748615943749808395826242144078464672958650023478144801252933911505574703953411622614259456502394383507022275833761532526377227748495725439457384609166765819774876393604260772674616616450455126417141697070061980841987784652110601331956691276986058496422388676302733600221493846609645666612943570323913363585330076463929857500453491423347429874579717992174293071542892760772462258380323132909131311735314110559238799132301754115586313762680561931842111352675119789600505357711474788435137585515640948689336287434224445693658217109268199364760946304267042832925588032884816191676436550428531678760562576432065881707387299121938010420643124112080134925317888812457959629282016553025905017200407320931151801736758546510867548886517188263320262348326586556543266419675370613066337996947734560544176596030330289530708039679363630847266196474196425468711238439581551429669874932132292759781998981139471276860358225499231108654210262538471901420331388738126890044731013668156328723678736509759748954207659980023329385603721871408727772470986115735756460900086052947805742095197569730630560833188884493773676068298983049864332891477923825872601306460724665890000632262953972208590190418756113367011945099042020962197095153730533107169802210503839689906485425440633461286111217942913181346567075132788153808570549013375875945091533360417144220554386432181298656690565391004359715239772917954074465364998689882070194163254191733804801049597376808706325406277000096725145888074144321586801085379335468198170645355866051368682449054568980154227411786066005407975479862505110841424719828257620726254248500488331558371548007550766503238015429351968681142396936363505372792118197043547370483978158529821525401284599519094392751006416528325634495307809805384462830846863744719710785123465152453213378555268237753585764553366741155800834294256131688960832652859438460734353189062716582252931591303161827428439330329485930521743111881481192750569504543189714202354985162272909272550849404713339910767170112257054895994097412669724675277480258816172015402291665114367550149207089347516076406267233787996730545337818720055573209750629074588717539121851441821186043990900974781539906848469479548052527875958484644638159089386562448564484440689083266057194615032542376407354573366247021259936785316625840594715490982637474677843723644395224885555585545827845153503267847658954190713263305431808339209005886256200287880045058437202402383319598752989294692244020510031863148024401227619481400053156674106472593957473068079931989597415913022035301586881729686958071305316553105116416532037343029609020560620418633501087390335651088671312062533903879712806792532210759990843271461689733761583649848263810889782040365393360161817284687751163905780245701309490042941483110780188526905838692963415372682813080832700552918503099163224963463130298351825133639417866580124926004576594166566663062907001428421506281111844307484834028572530954408141415407582053475364487196283094164192182504533943226569639709045090259248743074997266823765607529775166707627745631924178163590807538623194315352519540607220060938894892995412648355992464566699744557144330381328756299724221717753711710389598013432172804432132622075784418856722496065396567071325682963914506307073793369236450678120516520667795738245508295429195278044543423265941258896219398035238314369782413139744144360153369746891906831903734766920973837466234811496551100790509179883937568107386454830640939987524849177609010767170790235708130273286116956994682142537527790930662154059981299643584373190781540760932560771851990342601411251417808989971108305034738461804546844974597512909579227660772389417624776085318281989321897855135486282205204029912114343398347397203010376170590209544083280726280819697113958945756610589922379545233994116064782449307838372601370021894897656799943026480150931284096198931254841909172435994751131580170240115243524787685658370154427241977766873991343209608300048917540544049414871873354119693046087949643080040864865242955895290032041849726014913689813075914937460995102899264742210687981834497025313050014038875535604988403135404841888785651005672323289347901733125538087186090979230175937204447857857482986441229838548461642626302422777177491460132377008298943202629304069632582505096093365402429170607225737408528103360125089939753637442743656032229722218222608494007447333717162063840814092326473561341802086788595828922849408527744770148526900510760338818311679546223208585021804712190489538661253566409604923413782356738718231566848352095670273216762353107543593498956166610797618777961492680009053399754988870024729681251675657744095402863973023752731257682835922442022747179033289104683995187571917425169722123566702411938774102416834910042412040217667381413638019868772530734835140632553351527921284525502387435368289027063772592068839929792107361989636449016410831525376120935982388301690760999322210972903785702368910900671575646044824681037119700284742553715807642051008044110720544903669513206625972987491005243930459709240842279150836842000412594555858099455530300945113317241394660275878407928702383044730718741329032727624170965670553160607738171557514010940082670229541439352691510118915326447395900788449318963685091701442428019007656535029648597248851257574186954371537341951803603423184075910422360413116079692623494605863753010660953901551582289611669520457433878926113841339064053540718851558123385575895807120847825653463015120577869152419342058086196837818101002209974551299126052620219719390344778273590135130928089320175411344763843721075213645519466802067448462973228001308983119206170621497078526131431798081424963370845279629850024647844274433867986015645359772104655381292673589495768628010095126224366658925275408982802172712356348879734528911605549719369882178918848214323110242962053995098359022537989114024162253122115044447816432374841101420426813198339857522425863114463306665268711313660638068217422635307235777752857752411316616420619845307208479884623876562114390586982323892962862117412007661874877007785435586648952552528894474969271786239352300222924448906554844863683717352708545794478970164239933947744203079427656388528069499718123780641284717247777903841553960592998416909647995125563634961888436330199721790361108595970493488482334187904894151546732402645056557278093336756163529321024738031810052799327066358253762558516232098463014924426839125100296848141197640767924478331134194696211718365696420195894105976670809596052346238009794171221077701502027929864095650291086674027278523803591243836537718839463579428613658572372363482560634843214488072413023670538095707758662948374277499511923641524776936741066976038373250669809064801976816298848732728644560200679581471486658622200693422646774879771692652631160322808086932298518774451607698271642588665323565366820651260005344975705269895388281844001556744475353361183963241001432042514900752154051340002729962643835191978080373347693774634876771671507101531258906979987297861769444744390818617282502224051988719325011374364668634556989502693872129099818297549725328809224111864437959792345423235143748714945142049723583740619183799588322227688224993218437369914133753377665942017724549977484108851480490848044270495275001162444960921586147934627601991679978099069185718046000686440337335604936681446126959225678480448417357054608670419840966647518732770256842157100509279565338223434395959327764659660669056913309065593877916577972458643100408572703396814155939716803852856237467096168839879860142512256828477215714929677430419876312171027053522428540086256820234890531160455048064236554624834611648492735732230611303336229715181269429910609753851103586326912323177628282564417784958254174397863610145080347137960732663975615757349379439881912350073301416331677858915200129626710997215221956072417713210073204924553262664061791513949611543680920236431243575019856206790691519623437889359891651847810361783907870479622688708525498584558480602566562737493369038471560816582557710808284015180782251718930506627007459787980700286047063996703531491932820610372502421005880779108466670105813706340021438736452414232476073202147329487549803008726330746039604407975083460363726176568759418947952330894654383183068737011769618243696098560032308898558695619648566569050600514945114408209972194889031056434242231370543642125003965829639307803585435554854170791913658881093261157714130573827117406826240528384618645574079609171596810605081362867806423192032824784555449355989806735724935753594414036275433550984634063228689319513385740961038811263122177932894953386299467025385470337155340485248941070578803842883693033447995120983599292580627941426631745129325233791965109570840150515578103637287858533676060123012471654873747346155369621886161795690592415475668555470116191366206586850296079483664116479778348238686897695524897538419830570136424676960034681584544772355787100338703415694580255196621505533269470102240944127094906607197869948693302338468919629251648460151462642857802462710256762333421318096557027346640842434732782781310918585274878967674039293339482323181501863988369983873904545987646737456473936640902593303938829982086448167680530793394690980189721808444027942473295730784579600520940424150790326591085949064527562811239798740409465164164774917199045776835872147772642663381006586952105836902250231486381557879217950405862487237120401246285747273169952572880890748470460827086292574037062954980695811417248776958553185840212435307537386888489155776035456791680279683838777746584035827173228930102251602419596351450133708124974874974966341323476178749054243762015514622302923861410932861481228794569005520248590940277815184094095629744859370206409648065518869935676240290999154320878490439311257124734184779648083088759170834952859726783142546222481934865652941346530293692170577700245388800815728429478134428128994802719550792995421527626576318659022177781874114923699832380690880195506895690838379124886619236864085260623933136915553658755258533448768261132427773061368335335826476310712825080224191852973075383763572080394947773652015879056678287317097718905626760497963087876113897763933427825964403085513392957359498358053449703516191694060914532158883327212652550037541391768600208124827050432631883861692277296090319336059386706810633227806342693841178685467601939502921808984678276510769656999670573528182446485045446093921523058840586992353378947563400680615615540498759168410676446381558379092201934490884311809883216882714585438318259868850561991111013675141751386802623267772152266561718740297304719260575701493298734161291756603359764030116575819888074979155842888616724794169507180569156699047233715515294054470605292459411141848876407488512090967370678281592350812811427262326403044365287466558756758803497238069796940776408883483539030162082430871189379044599867558946897428016423670888989393094112147737834427053131442714461797897687161756178746090837266051526911069732137316127118875788688817455458794768597594854740660715582390122901763263024989470679453184357779621177544771897827863580355636863027339870779293322715847318304831367615486957682590187139609385067875245020871288094249992725641951687609990793045528987418543828486418603178018976420622412212668027032279110940771202681536729988176929717853961841297648238546030428553226325147623058797339950299568088657588699176350738930309634451398857387748888379939132188427890768350701802684119512633631454012875735358097269777905505726504512233712041228518590855621798531109324538664977434500990481155909411010793079674732440764970641438372072993512346405132176819792602305464759647964280528479457074116860046652621442967319392603759337086660356060516761536332931184427312937860366745288338936002376757626928354438618970497001216942023132029844743026959779189652271788100969365570214555185830324840021886506900992472336533777670079142701942779648468852486306716320769903168280132612725334360657474084870904946364302722411925513122820626178231730916609705884071695114087577542975180028988004701007139121603510698668306925015714215153325110423694167918125815902429778175175861921238869472170503313562433331939583596498380677928615629729107744256822861176225859133008097558343264780535660780745943494817888232782740082243032355619602717599407706683962424558463141287309477143046240504553792111957866262179134072524695026622661292083027721769610376900289007261248770667492528926623421792670055197528633432176670471608254438458297359107782382375697334926651610039695376804598060605839257529294849897891623467010800147644149482541952752445598753500910329147002992741954178546195829812656588147531097327199134643779980823199022448402328601447840158416380341089652289582497453824783192859481882285479186934896654996810956560301776226781880938544997664420570427019883278300457785885393779480792526103633253929669698754598808106350060838955782890011023809035348186817251720118648286673367114699850369635447777941474944494583649063812316976394204041943094831980347967603129358991127247813459725412801836789211598872523383529800148520297255641414615396603451686407759585938651152012952588277063642528785881896520864219944321579176879551690585290710911912291072602106010544961505073854653379418415337440256442188369806317279967237494105044788816075257592417586610856662227282853980751027910986022604696687729590340083583408123371415944296962524242229607398229228038028552643440205998436967937969823039182848669603091079271197231478285475249649262997248929922171539406792612791783562456822949837901714840226927668298307174280429439428189847841110210272523719431579160209237474739152450080532688248203348159581869319118301531443335987255072747587188038233218986789519775836232775767029456752409224663797108356545133689118891669477931852078782930436087804348884276754293806897728736377265540551147186389759614298180028017975659866080179446492379346273983539754805352534206992925091286737703489416565389090057104592791323620502981711436744695906631759137568782068514536988921556240816439479483612470018673950709170652773431703770099750262260791835231484385240664090871299473606030488391481579095798373352204570243564874346125084524092146458750824681423193677540851198456811757628894945781249578354962707402661019033176723312845925469573313375554274260892871265394538654717948239762000894955471455549623758113359509470987267516319240490190658633877776666810469133045579543459018581729618723383206151142433584177749965427396188052674914385103174169058927818846795900143624054762397358695346194297395482880765505915618234088623224481714099685374929950039127871058016911815568478503056474281843687284106483962207573245923377095854706929090003052318863615769619588374231398499854249565716171719566906656065505095865059754073936242696041901316949227226482676245529272480979275320110902077116254171713522667815705782713381906564201634676567925954422139423640689531080000303240089128746585829238836095276924682525008264938649116703403314904695525033736506014686096566479014654218360778262084848917140654964397130978975519827748545073138813079439113038376766149715046538703571535663524310416960630197988735419022546636908785484508614658101913343896411512547267289626716459769751520436879421897988929240133556792395017269167688383971860339209269689528071020145844556462694935332261040933514474976278403749075596384689466172893723140480337966866503511171444870252230086426720759681653897309822870070399823552363410853509420087224260370684421385957261465546086037336183592016949816532319168657682326524564422863474318287241470595771550300574572204004708210286225919027379873845199927049588652010754413344137232664937290220895263846837154955381487363401705448476946953317133906537573479027869027390958479629745392352762907410921762849241070555367441655431184308638757760143662744019515935959947608021278849721758262342739631187571060665913170891512466574402777040939282601216174072211618705675592148044256661164130757517394855541763864382543102341773550197835122485080949623458708575622942755911369619468731696229451371319831745270767701215172126842642257267405855059042292894954427905551631194303789454004942091424500357177486029839144961590071556970818469941243762874531361051184088508803583978929036183926131638621748371328613341022695171907618512263994545685106830048809204192672706945539595471444045523126692047935825803342341166202055050105012862500203528606395122928027706950263594088054993739745979890229496347438028704832978507625034268262654318833527284525220813563632963363458370664935501770610092206294152353346021872095918990051567025764637125841716516293326175361275166163433101721423559910389559279026537334667541706300922101073191228571123783050242270341202634533493125851018177752830812316675990735578368280724737591979612850726702350965099620690942197604345861968598858023092819158760251592345802945419495247429030362027150905183711301165455903000283223336773647487125479910016449512257146239963435077361120006350194671747876547481967916455039556595914463581926522368825222400190340899730619189221069593825440637751043537006643969747561902058338443546226165708851272889445209413258237323735218723020337301642269298383553220379920786071028877630335091832415870046053506234022550552794165325271756272019575034246566296696587063226551763632450079078070172313470676608577545640711552338957260589011551681191390157350873396485760539847337632798783319966411491619039030886171601533290032380457065784059742131114176425795800094777352520546101992090410690800280385853453915484022592106888104778900260480744399878548835656040604253508113656529450726627217114550816468959908900034676585618941314285179000204675398180584795459503063678078055472395187833473169217170272335735072593723333617828489304468414421305775903931065604069627253622754195867108235594225804503686767136854458587129438163849076040036138218781504494048797681309515810084737960601824219600189227891860682487154801188014381349488945045546971000440855275670977800212188188976842833561482762959231104686214824212462089111919290309628178011942808446712210827290011740855762222364188384087460518836286294548700433834566324728913114197541979434831914685734727681648028220619814813020433166416070863370595257792167158563951216899262218144344629504495357799909001308615470583739695766884039628454731757030190297443557252774277692961416684808048174200867676977424556894326639099797829848459403936531189814365246972739329784929849196954369612271897157360355724458840021040853698589430776069091225601704755988439508490633332878657138837496241816669782083083605608592915998516731298228558281987332816459675543854844603312630875081209355544409980470980883364862072219129263036172926951190164156274857272464997953340808114014119340866338885858256938064685958645571597159931150795894182533996014419487899080609986073003572515460161516342981529843648378739655203531307627976906368595659464400630978112127087884755004190730376342812748386615610464112400203523030506332835677233286272599319103173892184091320552081086907599736450372695140895515484334191634296360205569192798126244547885511011331513311367727452357022602592158543531735247678955198547262023221518893002425417371959629689514162035441168216921810779516576443991412484981533066294713238783562235873726588193511719483108032544674622541595764976625722972599909365967590075580063108255137481355818988395234500772563255764725219102321498951728558050646654828904518398463317417328701398331579270240900179205303868898836499836591269310873228787104562675095008470597803820609815608360986269583988709293644531863064726241789395988570376579543435614234716218874977686051872297993565545247819356728280044962084248585176675596802567463608526993323025942126532799311649263734643139430573702008246128649774444029486593588442391801139035822212889705699582439728865976593314742664784315877395561714135403912903088954448082894668542119339013053388201949634218927948605211943408675808136532582678363188099320189942662431974524442142838502645022186359561281083615735708329446392848220795452546731412672404128648510590261726381825087224597224736352074611538583621531257469462875436708808023969778920279765858553272836010572243044222791492785199845228348223287484394582065869331182732662365311356322582600185381489081235827407044124899851169804049965634208542483066539451499529461314151926521842165072158065555488211079642415669005464968571654704440902339646569386320234827137787952596934771252612488356217279883334969666383035131704332809853622725571274881426738282652417399830636604503338256360114296766008280338147803169681624498915206466059072193174836843628498606610636436236439587770701296126778038989918609044551126166839553091912669270675773915343059207770347657160432999825298737391312252015449783149164937553211422213019280461753639015938268736313676897694592075785938597145324004688731765358140511322767992789373649395041659284018749125169467111712997151085633105839805961820800320040081309786294139062253298226344809005260912240213734793243956258193609307165830331689725229754704163715065369817624747761111607510945964277138857506236492085150005642961958107912403507493987460365168455771445760372922368300775327855126295458825423715227554338527886991054357368700612489913072588658665798953302661034399716536708088663952970097872546738300218554768573863321437055056135400677048744862076267059086699787310647306032426020294290417139817825482996616085734230478716533469603839072357005980966785261758090928478253262485461136424254377172727370309568251070211150824248613723886456491486052462388484954131110097916803436814456547559717978710709569340141291676962769999128323128976533021574436704865258227650941498517367426649535788758538518239786489305479554984915860390023822819917364883448044005954756955332451941037959861058279072055258286017371342999760328065326029274969499802020610680845985579433649601144958221401151482766987239970715424611758316706046144265074889608916969849873879366171778054797166776206425696141036294649175566570113965324029846012768359112184632037170794791184889141859637647143020881369279705017556684487470782216154720105235767393697945743135362846952468840232891884945739979949119090418589542121006363232394812893115293670896133722984754207732198757754272158317451000881878980940311662878803489766538048761713468741749669063377319876772010247466469824161302661414637977290346978051534611151045971414500192366719812220761581326350917102996041831749993134260487153487549047555933478468391655201712618506180965582310440785237613700737877676382217301474447852784046950504920360284593660517964639501270121127695195735197570042334910230491906275827337935264841129800922420571844788984126853475286713427490966424733311284269028639115756670213351709944655984039823608741029650956927456833715271816357079913003662341870685569324419241429245388771429651710196936947068437536022663957926188521968272364878472339920445695054710596205299901733207928840510403673290018455897125627468911468115300763399149098715771064313334635682245874103435013565078458673673314265633407276602410027655759432990842279418254590770422022886452857386539967979140658730096582830194786510918324160254430066367431581954528311940177427994116348539109128888389178351046986617812178088717285781251271556871205835868937327204669464149010111449208754773154847819078266989437264504773786571536612283738018760450095318827299552156224299983340240829570151616386414372974542489795335020798761333210019884978743262380217962193669480035735484401668206774875640343496198769115574665193285384267721538165562872680552711708142649149777831004203780692679939383528703333312374964525126098821166914607488089031309241056309494759870322675940399719767788756126143831932302367600941213783648409790584643997462693294387482016855403445689615648134301991579363417311165707380682354129258524774420537522070584735183394542845496909478285898126238636282779599586647485441303353523284905120765041140589632374108539418632894274766169167137722140581626450027009090972649131905420432593885681462472053325559632188624378040484026480555045782416704262352355143245858612391509226550700043027019807640033037035823885236305714631019489393565284946908231931362725226201178481460772996113717641482169387882358379698985382591080285271462159928266765435570287868079287254769044968739557864031671462128344975571319379052626224247833966763249793534565879370824033588961296595407683157058556164102307826468249667819279938665060630698561230815856036569637698842634549631473626421147812241342977791670398247226612381537876187077591690449906558931370231083347387161718212973871127592928540375040312942975112083256144214154793277038083268796971498654980092447681790571706344183994886538498871674019449554957765956433075253627067579546472799768437384948793982076702390889365875600109101149971843130394537250572893940352870806164356371513027828953198831815840799746739332790164171097470504351947069401169986454417152163455696778074050814997471413951608021517885404555241357458342989083770966278006475392248080512152345839930134314808681925877917324351259580057009476519799335573625979132853670782791869323383060836234304238959626512734708223693684753022789291122939438153531842808596502590264863765053561497290895405249775254478769097289244922624863223506400234715739151429357508699949402695237487755096602757942908291014538382704671706251146467062393047647975097685636866403514405314457653742337939539137508050757140371996687378199367816653328845836139690927951736483269370511215666918200796433993885075907201839923935658098754727317375026050734052875885922818936081309028890395469735439600318226938728122931806095977194990373105091614007710995878492626985409461693000768301142189469254485175480945846842529123017157376395587863404470136250785125445617835274851819092963204545061910551545421762136589345227122524220722184407241061066495454923976587356964139878526810011694254172142171607513245739410543216207664143021304919058437247430253086238407330894785349369441882131429455127775766863835944517721592871061002404960936123670012423500738767741702805774615655659700566713045374867661634833626896317680671914741230257855278816215189866748844633023409302814127705351087291787837018922241779471656262229485306946140469908788579352051041233525116841865975674043782336241710246771773508253477657175970097548619527132826111793306875493481364900349769333786560088130782482291715858859915767897503260346169507925389217243228921944691260308695255193184034827945837552310104886740349607076559199630825553620765837099098398431295517020952186757965431894444378295005372944866713440345562490698317952608179157426340394762153397813766293377608442882080821796712051843881878437325008437894474007759544538892017793166674394086792266668724572980715496410953562062895215216008878309126206182995984276474924725210535674750017394604694213373618074345622589786735244726118156578400697012843455462280534256594769032425880095779082435923335959680003098770415306008850660555379565891374494619710344711347147026536131028933238608129891212304474697574484810134536908984141804226598146027174423679244623217269976215441822031120614938106193792449258612875380028388680706527999358300078555739207236027791922373780922549217252640833628343107354937621691821174979360889344236451103676543715426740269810519819832219922861676696755083077682637435181264883679530413841895425931177866929879222156059306792360978839684453533978597625565378873437944178547467040215182076220830961799440623831409672509346089562488133056363434148759669332652386694969513226928391503336972227534056352223097387043575484446034731541387933968797457571691048672517066743376441514292874824438584406089352362419049388946249881718958684034028304376247230997773620019570139737762137209300584799311448286754115756034864518348972616642792294546218339034098669849251608514924395701468200021296171143388938699377870444454656207161175756213298957011175830110148001601828314702667533961274068250833000227139218623163541813055789310249877897502634133465033226647206497816183560293050635265295290824944519173978783393515246983040285729172344551497789548677521212088365138875837649376917638177305479007980707684857031322035634694478420565858160732812099507919830437696757828549742289283247535385290555984312949626577504067710890580739572430474788959918160618182520221099726766306786761843562011083343141356874418942340880369179299876127002495695341675580330836005349489552399268314859164029579796322552676148731162450533190909023414715058976336228774852598486277669554079877016629882271831657468519594247805183953382975605499177497987544265796556908813291602823733848504657288676382532429309395130443623330592792497563113842586345616966965409673380017822066957689701818050040135097128021510343695608431082075601548291144428083421790082915161563049384835883887166459393444305959116855221268684495860266138763591599459681900540317360683045146683350707073810886597508495564686616195063401673411601960369174397209976378559102383474752112251294035430035992532446460528513360892358389023634688215774443310437306401941829044497587478799695052604051766290258822192099419897328999402515818063808060597644318056233699921386612944592687851790774053069333157574108826132273242334688196219155576055812653839669993272284167071461474850401110676393667371960207675040646174442635493397993736717108682194714183646068841437266729349117301284440577268478326369237994705177287743290136753883453832972189282240638063344390543219601453632113911201379073367739129484679438097457387634839038134064223944929224491899261280948952760522283665275036813859239209569520058519955702370947012818469303267475829319798605591361971791321715586961251610096831773457127684673574953720022177592259142669039040320697087745557257054162156492247711904063357185765165840842302608825079268251658815727166965057561474348682694325952796284764807617140372702855817364567851882330361698799637937280222614417923178946562556566384104816931178460326095759602295457069003479957323732712672863601612070789443433425950256592028362639783644272225488589994028446650928842088503334265961350450098548060544864364559292788867697312642794806515063710612882744067455095056360373636810053830524791840455054740087758662075705078324280798805807577249818281680877641699445812237254713059073411060600583200555400558084271307567399466506797950361207787201876496811526638564844688442853832025901179595411502244421328093927568493699310983404727230902524440905471303976526308267115963366521527545868144454114900508249417097190335436033710233314803424418835153263622153516543498636077287142938273020008104569829417587926621478304133137322029029100090831542828082783374529180712221990544571622578249412567248067480706869711619648103856533009097491792576707415429926759109393486049868089062541657078116061688161961202047824058490714765901110982626615462606680106883751822848674091557874002788128485572351369206764287263510095348279656756082351848950159171859821879123588510903089633448372124519792601181440298815802137345025055916714791710575451032814681690881701295887984540417485353354048021728746761593965659689644322099729517698151612564999525634254439667509746364163946953916223376830272979436603342299681244287068196886220723836510228017137495776237106516191866258691021626015022579732402961180030322515696361104588542226351364875413606736745234925919353029798994396824633637343256194997024379717708330427400697748522902910043796281000161062347936461202298465667105939639906466746136882303339234821214415643401904820416444467826493848835899364384826780245381437478692441071979834802345529077371300727004379663932563994440638061926700134127156782218490079911987537252168023115320518204745925429722646928713494637307539906168516975488103947360389738526338000672053234341418090669952970980929522347979968988926486149600027935737951738421186899762125491630558960223585499819662243532960979410042460948658631453703712028898711304126531260461607524611091035543425376256732709681961359739813168211652475077220415199602990136767175942771965607577576705913008328855107644653884329844364744026819785093633415944621554176741771341333091639826519168099226963917740205869912018869497129571840249757808556740368754208030847154763237469894742004939967776695844610884092344653466725934498729203002190567816578099087537962486284486672831540766557593416100127016933615119612944218156161947994532317405723334773153835698548587244749258044262730008524884995976582504652942048974620714740291304070606370495486119011414372383113364786676493519807079556590750885353052868404619303329969998681555651531482552100425440676882510732351906655345882234972066455464617489435976450259471337380841149112589612515125650112034988661455848643515314380638617209230577411528803218909438561041408392859053489770832835408998605357012835116469735351662325949912942267491547724802090115432363818259980593191818732852635022159048815851676737233411504096995803910682384117059629938788117557473663939860757562514958813532479105732572675426321703350841152744271202674419019072135745245498054369679425092251670061865014765667671015172613532024963468544007604385849529352881496191550904261175795249320828954849223637737460112831120287308268055398850078666519562247497806962300793560253780882249969023030121817005687276788094339574875090665028816224815859072887185325058854110995596030344431617417493826482787595885309445905090951298609524812821325500613274154859946267639880578199280266545960089398306079807323476804254575241659370778656020461559349280620399129043440666259597060090786355519113417408709469767270593156386028206786906301777133260106165872828167388769728827831976349430799313370205651284496382627031416686507596998802379821902343037803732668409774839661075623609455150490726032569013569977864664522073413472344809675680542408795582127965719702926134774843114893999646282259196249750179606036608302966840668704693138211201410445168367782977991046620922402189373039667237306120086914392779397264803696121904438765344928593575992212966081041446204182625791057032404048022143016187284571444928253951057271879588390823508058467849580647098833670216018100633341231073422203556913108549246441285197731379129305660656800966266909820444261326839018234989762996398076061954892321746898817517552581591441461621579971741704593836879325389278824594574126186253316781215295149813516349046783472255092419641356463201111770149122676922915088852663484518986699871704138629902012630239295565065688412013252328503511885622094278930661659970197080302686643009053658509594100288617572178543454199957438074164297635975356735871261310592772395784656276053163546140213771067041272595087512550746952897259447356140749588870722888759814815803536961404965349544524710263943702132090778145789239704981052681277009479892474635203184466942058074901813715821185549716130289888797180789588583782884688694260815985121496430245263117149637450951686919385154506854312837578685392971385637537544379398196588479850402710763974354676570294467592769380895867491217155697557024199325911710108855395215751166984887598302538996269630770845586579545168139934852053033833935933606780254292787115205762656847531127355247228379369831841430614454730916072145093311979398433874816200344219262250674988223258256495509362850392295931459318619912825261443819205448816225821300657230727318119488829004584109450818480628073515536129764174376507656232938077530548812397683452073761049974604909799004129711481492569683995218565588741283630280024136862281099976516927635218961995950055759901900284134852528551724526306192751968950636964866092786225560574475865145706159660260781088361880244704984308300119295015836846621152592696943636848757687493748205066652675451658702238460746651204913716648760573034241481764189395530082044747423498274144206311841257071199942220286785086102558044988482968171252482888868710204857258169406153148301320240120170973522422221548163498649157204441612565264910501794535906907695898718993677468129180356079109238310103546559659934469542943441738138732571361707761534754305814508832495242955893340351121827795779266294985618243396609089283661427447329131527553125838624690603135673452394829391537112284701770063648984713853075044291397441341107846910540498482586421472864598692340068163536645158499582528375157882937395934276113705685433627016247764357134901505051543257038215075264819495469713480014249604114774846543432141458871034185757878107205475064550700303351901654998693738947940106016947384936020781739325018704939232056496598393260270014482373649474052649195315827334068971801116501202367398002741702973295142618863641748168471781201469254679721443315228382370537960842681630471958397556800961432456985270684597865893971977668150609244192075737146537639007262595729608032142045765226619172716120489804532490611905717888207052139974949166767129537174827447562453899138779287712655710738490701719596998325894535079831024762170524464295496468456004991077761667295704154342644198592775506468232199259068244475943519268727627705979260937316002093045487784005503571879420011363633264871018654921474817577060355797814673524493216949388303980731350861462118126791110377126495162808956364770353861132198555008288237549329040167935746715082257588857850964369012411356274352418438597832014550397976138789911993937203484406074166706528243963535671708397370555834465420305216931416135286531803120639058245514032401385779591047904189743780951977395071361636651656867301839636313977073343865746883104439264652677770756378556697113828134864517737949862102621582141872469857110260629313583372075855920015166167375956032603472171981278741362016158050046553371979228739335908588519844951193979778848045449680592662370515131584402011455815838543055680955229574983373172201607259368943797855448867231131924571550638859369352708915869171676133105990076795642443805747194676319422187836954518617511489959953977672713106692471841304224184251893470967878935398432555558325185315680456789803104933625159676129954302054579755006128117451350138161135829330025914858514104216191835329932884448248604446161864390626083447733867040680447367107713906748688133843639356594923627344070075146819695246719730419134673647975988503186644452780328267628532831972827203842419716203713171778959105220498164272491528388959099177605753171743339847698190163392917501134945599538900179931718917394612361994235058901398966455693430329600066022015813324411600657263011614688643782149859579566120962258875944792344788605822996807196821960891508371171352757419851609946100455187689065481220181642932794596825769446722338942404273709124682178016337009110737735562130117211342956870751360158054576590449451232608684484467836412131077797617722323118278118167354411145673591129875077925500582920320432971651669188465327921057625634319679731150303873011575549279900871527029328937648168615076813299380162756744820501705419817229781596385448456348618537683803554737814177706276319562800437430650398983199299452150453046785587953302156364836285490389897003783991828665295525464622077624041346539917477279301295694506865745923676437170454014461869147610885184080453626815220858682692114787874179111101191536005779265954847164221362359464101159980929515292366637969082411257902856074106691370993777782017333180508051420013337923428295933086302740417499106221689064998364216459631500849941577337699859090307222322117033729534951635912866211520687724485659309861746195349144213591293597883972820801091641317081709491290410151746970525725230305380852743759787474179287242670469936560460140989740527425476484963196034562033955862032343937443402551882080571693910617114324485771911105314493055472780718047342489465807652800210424121608611615150614285646380457182863938586701801975762930652847794781913965462336128153140973563915787331048629247247139530882534231239901766877199466000254503853083169801414353316769235499722203052689982418590846426009041623729517827976633210146294299741646777493443980420429783889535329572664152078969446606435962145238433135355586585918471218717735590170813195296377787081040329218172702541622862719607762683168475600155920623933057552912781531949171544200049086898801426727105876062196119055272332659441670143040991666822901095909863182517561366444115393861589696262342849665229347539383283183691359391322595187157261219056772126421739006588894383877776321008663515675891155790974928220085871356153463218918881130543173418747703014173712112120931326965132424530029247711798218096075868080017333924271225457039292614334101039168185614253313828018962181131994124538750752631868724166231006591517584093027725096579888495008014865064734762797959645095011602143978567165512519894386295308427094182012839910984451579385787132037214402379530427798224918297302315893685574298065942067931863736503867471262382162643067808844534531391625746768576564314225246687420062704427492844760964000100513050174903626744838650975173066498034268480184773236853218227200464928253905141063339964304248756890919632269791491818516746833083390707968793113135839751191117890398812684336491813326112863450364606846059976388143911424250432766800495611786646302513245513560062998762359733031095437924699459493129269486524243849522547043248284802860281922522084975415190088734200214951441107033024594939331949616034559844160288326607337734563499084551955131495781671088539217308673090992717526250030684757297745814297339606237847206838711350960790976783501901574679700463927339844221187271485906721604232895705120000741755917607175500026626127998527521850599788401585916284622543839123509590948424102905668997548793282805542807928786461612276614040002020414084445830940436309427329559399081077438559623366818516631067821948406490378637418753041039498916340931505469518689960892465357869938938471513081461870955956628427206252974748097694754949149356441692591680727520066658933051266694885494873720327971121226633220254453437885961187115436197960104378201056513029602744701374695402360131431354920227261248518631934592865993697635878137716870155205132965403496478888754095132015094323405091953054445021187445033370926570534574130718108179815092972086272801246103289352636961596908243473592056866822969711131409866590184388861154754600350326026350961760070802621560262527987589513622912800396584363159615891365694185738760462269055893266050985024521580045392294597722607165411259067126706782975909650080975167567209002474360092471131036798721929048752948626814296651145446771306327532190796739120426178978896941679600342036259872296806249718642781069049094758853262207030234165406000136739868534386849011337516857112300551357239432643423508679076856127540487515549708726965040385805540299896793829465448468402706202906316931621930832191553868756651074644752161072891594853555925712078584594401985450538970727795596260241210107055940154848494947426178098121091235977332680295875892283666360183100220345995401198512178311920897847715532468029748058197283857239100152807591251038057631118985925270386850534197789169423046342308999857498266782539164878881878861125093914947620199342086283782446871845189648535465137664368551031576974423609091690628631195982637561616885338421451122019719701389059022542452009510752983781357377087710174780755686182997276281506754049840874093621631498703544389908810021426314131525290809121584690926285298097886579824056807651739640123620602196862816508289747261739161611922573499164412655758393667391082311270034982008842385459139349459690968742988667460204276306184655554368168817640718312974336469262338076787772084193845151862878974359921837191843734031684245966960908379277915051536482300439384840605883458300913542638402123160516035927068937770689164547282392003883949238681310164010992764811061662358950374235489563956581790049900697925816409080345670320884575331070755303271113057934597315943976242461783035230017156003000844293959456511603590532608494521562850073978353733236859829473119763256321782345472792173917503864884991869318797659980534793216137118726418200434014885819633701471542612127196061308337565691986399982551100525768483304007304798245393578774310908826210262596304569162068151125185916352918044783400631394174926964402377252065099884081806922244007765307999947444471030810025919855172399980913423498757609066256597059096596611536450989395059255749207496691543003794889205354080927216642141341704409177005282661728477482511647935335481536890352124817935638384014434108133188086268911685134106117924639743314351993945017354933475368236393002685248017505434205261570466891332290844536499476437572945171933546839292943443834296243670026791774530815011760134614059610771604411232863271288449985952145562714708303748808098929219787122680164518811668283197350499269260216144270435053168978910898789265751875308047802268992318487591717112592344313581842135022415488460573410661044556673102751822760014590049348836938382145220385824770010393349240275982349347187129425466118687137394899688441431405319390100452153489405523848556376910019092934012760377570696702292329249118793321309892256042729028902686715974514414027635874387681071372374856889923747228639786825994407773868696925377232021712061550091832335803276165773067486119911705663227152125725627103166801491340841130037661604857776278358102524549736026168106856150369426166095956015421337733816861516920674842745171999824087859059416039522123195428635924932721385291042151283708097269221656924931543190203376595293300287181233268848090997518173312035991069403926609796834759307836316467753239481999054419727248394376347842121805703318501584888653853730810553674585182151062307420507506320330683790628522236321749858544449138132954705501096728491668434812751185020446604289663438496219498469750531810701479930678869699912545079911916941692843526220251362259603651093726436573798340473695690363402694300824538137988415389115285730548370263202600754523055356747681753974428097319473808359034459080666890168874524915649816863220448004695395678479400481579262267661295735066948466252053426163517424661102623901561747063725319667381030102459206129908130066671699990457886925734129303944474418659975528637842397638363941728294755501165572605980570643892978217181576688863725681565072317222058322989459927970116956653366316958093689400144372053074784699312136290403002674181427466813620541220763620979382924591607618894637465297923593193356526805466896933132343876615552319499204350561090208777982413082529368313699445275489092490421042313364295640060629470597263213897246856231118828597654335943917709303424478589763967901900299861593276200992253661149100069258040806392880432657539958536249536961331669519560263209961347373514792443194983271348124971891337646107858821132167384343326974508559735407098217835430323089992408277152162452662922761188885772268015691652225152885387571991595635305856249366338266221023112603145081573643909108718885782304132394211510056606905357603675098507609786420674100013170807893870283670949044985233396725886384511506006027990408477409493643998366415048574361939814363119536126280163856876181889536588181141214067532962665306328249472720605009853981433562781993887443377926125105688323492870745555966205315053467091381883841173144413376656031551688560556563267223359906970301172372575856642405855204211359172431083870414964331120950079532091472751994679227788193318053206265862268992288432518119088664830242163307509690245063071707068379851024822199996594517041852318534665538601208027320985437848781318943207364947153301169556819132115474536451291234260505304526140919511901743078671826246408577461002134129581560276506569953407001921430982051567548939009922913638920202490128895289469977191209817336090465445647669132566639181215651574685117382338454989939506037832245400454748833055603233914313826425981604899209881952678121423823481588892393208543104053330945747786226265604083057053959078773456873047227550440241758804452961910342728435111989464773701895748812447748748897812825915519377934280412452396487451026103529194836730068303699706007347410058582431864008496721434238411082069289041632747123979078803843117280133819256878819408619347614359701737583579549911133889103883858690596048283667811491372965998390866377997224365332553311274406942070854244089945864895737247548142060971260395064567313267232136078280176315456956715031680315726411434438631014350767166316803799582916458527404917011034472040305437590183573223098932520472785245775700222681053591229156964386013113603738872118192329565738060786127577689973294219693274200502394593373867884790797504978551140737843736133074084067646669307250276407660833843812385412408450805839506381552699887568233152647233636734668303128831689694819014393395229713214604219590536262797212004528387049309067420545807174923103586468094886840702339728133174211282379923094902549255262679284677813738210025282468350299511581687834140625930006360127638521671688502191629731513481028937538360994199591239883537273316454930097138096424937961495963319314780141040850329961968454618361246986491234264782749448850023400920943282432554224611836567582851037188992534205105152432182802543665595833426710678539446158262568762894015292609487357229373345411343033131542611777073609908781578276487112968423853346297536201780962334862263351114792627111471072459518248330647470037292430110522030300934748705731617495626457200032013495707479281714231286855897605158275871543643711958740310487463831275657056741243110802415119352598011062209189568362904628634020084647911120231694923676915901933596335477345395624451140697660797419520458598267274349348000925847235874184200988992623350271957758824624303371424849248496385232035699982826998536761442221644168685909034497573855323136841134051216852591485115833056693170316388583623186869941174538693893346596985976715769249069801182389901463357473828161791659737765981116553516149734000942125875646111822257655600241567063738299380859205763377193019994930442729497507680796568856888341084021055691693259909192516359611969771768551035380264519687101840579269627235303627866502788223834724159768126457649613893443007302855969716260431639362685702465410493640420497496162173307352752614969932700069935818963442770658691979618317138443849438094526664651683982807355923997910911917179428812280483642529394788422670986042768029330231727926151627172697821041794390858847738944691587629945980184953803735080653908261767431046597453585446051688900566734541230528759894694516026740312979417052771200338619595641956647707278287062198465902943168420751625071254757025759809445170317293201383366329930424892196465654701473618762586519230407104453475383356741115823298570710289819565824153604133738624811409481698842577864211398239941763702067101674597924299880087966619639463876759668038885872345144993262351557166564798824545056127764583182816267575549454128486106098433873793767757249077785694023376046854452738872816702121723509541881507379829166327311505227843497365760409668639905635531450962288579975412622565405366168904480498030992043316398612694150447588874487013247986916045922592622103029711698035167019545603643517834385221021653391824376046012924824657829670641070124192006675726277980307143957939850329411284940672957430120443399429009439743092445337020877031308948747477424180021988224074575277168776713350413230401832011322206066759569031661122960753302362175452167214428386157779889593595807644987457731723858620164711330803869682114785781842573350091150235552364600855704743235409838647903977130256962206658678037932235479401514025009743132370085974287230225639647963651614489044497812728288738085385282773071998666304212898454224740657298469736926356156806783907121671865698808132154926589594469541163961887887390420061334515842402743698055795711286938438901234752378854511416980678200858763577660541801059189496947911940520442031876619338934855800154269339776898920425115066744875964064556022328377727203047182361436111593543914722304233142788520950739464548150715599401252508503423724824988535172744658155689122752396029511925738525571481814092859360467330013449766292948065231384205639276807883548047244063412482289669200255318136491815944374635556336162801591061020935023315809777013461547791527397694107048671688140893440919676040512142530310982997478926229968745877477160556890156999457445350373792894708147932172390201457116083938079370291762611844353438984515396261665906877677129218776151007945195247278555993914924857987189048884850859633323359437605975613809590587532315905072194962796620380782610717783957176688752111294434362080518003977767356256242906700918126193843809450944870399279463576750868714976199933529522186563427149461353929419238364678157870718318873797275165408058334227187638634562711055464054916440883046702264068130867504717231354032981778950163904509132824425376324498259732240652469115420190913681705006429411749692613086446910388326706643014519261294415754971707279089941892717736969362297793973960361288629943089161839450720417288556500423998514341943107216685700425559034469505345261313536155748071865130914216045122454936463142431575597852866497025395170629373390049051647436595454467448308577936741188902837181205058694159516819051271166881693186411533684756765948252127773050467920771374849160384590654610297451768523668234204035444882162602179467162133672275196585270426809709675255532528867410280490802774915691160975275330866923502846592968986441126825572349887633606118699846665396006501062126858401954861182509235170565453303936311083276245362874979552824932520346025617300250418949160700241679159799750001562834918263154307135957083300593163198630175805238259846927666795515850990378084545821702193607692686075321109781091472118111948987446933599705506388421474412177526279127697182628986634349220395388400005406378065156118957167647600105775676471090253150954534496586865206357503528451477343093136467454019450888284235618661290580121766839433160300363236940970872688728074784291235499612379507890563046701456660905547115527899654180364646713064128089485582960435979096687736887811939613036717884127605775474633676877466288570656835845273691243814603365716746932735708198053344133672006827496527379617224570444608882355144386103080791661146808068126464102754738525866852927684906459357806657437072022767921885026049285250878357589723534804564313141005759462670831784905195416322236970048394731169329852052221059732219265112003424828651887254835071471656998808835129371179364139084968542916815841440101507393752739483699919568343877512785126984851126802156784133497183678085092599571310037950418069035476886062580134525000407191479935626938816540484409514354597829076598058210621473030431998521949084534211194559545861556819129057748621232803330502097236858737929092065007420775876027109053118540438170082327985219952954327371730612382087866698101659678778224696859352914336269592565236250322175996795767176847083081538385931376723545414279307002879382475605725457947894418947479669701967070331535291597570792688893051860143163471258759945388982093921703919373516604969461127093287440919764642421662898273258686633767589629433655210674625831793674705521621661237119210753063002932138946551051845442958150618441541892482020781493173233029165856472591449085416982679779094755534755833953123520111629367477951414848781709595021429416650933012006191605792388598653802980822639270850684135370708698803102270766889697774927112638001997268175489139355339881543128606810860720364329846814075396151028949357081694090795612481495620350833547377118492560844527633838321618246292429967875672349497711397501715409624529632530534789543076073618723876260834513460384997679053000452608104639710181582481678518770215874470835449098251184601625941247339659281108524375508060102416500968024189159867566393673662435759831619519532014508612030500207008623440146008585268249965683784727336687258582976404620244518882672082825911916286838012549248090702714011840788944851413152814881792777081917693148202076493482625554667401079816960158398551804107260947942677727488545959171340407905460580370017922360439889175747339838947886144774499289602927129872888325595606256552849524203946121059908865245456950103994121923886905935567075152549604197209244209379605728937625394224878684170034287142326401957277348471085870387118356682107527905874528749517978537354844730493493651493391976135779703262306066727766812621783144544484595970992002020594969922669327941173398407361755360731192995350994667740170939737754929083157415936220530344114919477648775381000109192823031756197372214475910799093280312227093214937799579209486488388526698036666687451575549683641455706057487406535010548558009879239908727413771220199734410023345155379267543847646436370304561964274817644134786297774206742409514468283891386695309725552761572845361929933665750693587425049472872710814022545618802556613941988803478068081462131971494259032806776994381665820045022210037000234177001964005346584962455910267834897501038775303210010769421880100163726892778921581041878962445898251919318195574881761573693390897685550144989720535081886238188260659861946133424947385729223651756699397894383078601775147059136708625641149566950281481804508789836038051995053743459787121983876124991315144811560430488581654180114686768094544436363071566732145979698273057790890396918173775429391896941595343825758518773860808662338470010234931693672102314560461295854864857232593540701570364468889155368642701050367909397624063579167599662499306906761234949660533082119310037024381462967863122752531934111515431121334406538045059067147729455968438300172891799455020075321624448441766456820894652933468307008532886352083768138637464615658268155549298248865732407749352642805313266566496080509002635664076953545078815710177676026884731625311860661784417664901586396389288537945414428259795952286005965990829103847063836108032337988869033070406588706487777667869833893115983478496191341764345550425366053742379770424072624002216943470093119671156566540195285853736789930248005917691575914751438793694146356492658327954947660606000948570155531142904879083375465471207541607206743119279307101746338634404004832819220616792402786663483276144884144836325940033118028793727697185491222698431304585891925926688672030619145590688920053792993585702392358255153478205838958294024509933813818704692938921929448506492571594309778957596258579461724618376888902474647391330105960493830627670758435154766226171755117685397711475017575372688121124629790492328015759720734270538569238638904070783837936348033188293519835225267821764551541293480930521312047590432718026402914120783201715670126365692560445227536314620081674178797088831897903835387560259010886998200616644266793416883854167222348026274559842529075049132256622367327462619705723058339263759564637022995504085542902291832957903136522497528446697103879500000603891157107392016094269426948757119509710232904280147532380961859226731574314336128299050368868778972278362010816262362724638161659301703385313950313443978717320323202371118698904456969098816994830516978512468190128474075469735961841139399068680695170831837009139224455006179917330941185694257439832038449495284077517321340571978171552817158525546727589758968812070730229834449177401224801555225152178996887166318275294829886072797837189399623360927550944223871987922346950329553712279360434137715705129036159193201510413449957376095640690098914463761871188963405558602472696085819034371314802745774511343046582132449841829019052823087426529204961066477185337345279842488460862712098773997379106448361391129989526602754611713670693225533981201032909607671666355986632397109491059773858900932915381961673147984049256200803699970777970010922584983025103005768809697727622526440859603753228983026376209007900833234877045609581609352347522776342657124353550657921022858576792147751572826699492663752119850272261804238567696136674620504842217691757929593633442571354686197648885099009419833798572556668502463949695384498121287795686655144895447158159889263335402690448055411072140311028889669258472624290295402826263868764723882407120998244035256634717858437937999042252408799770900041518099690631665204393137722171928758846119500813489780599411354185510859721345585360536481525097267192446913719751388525422705474325870710586812480642170431333334332990091622857281353566876247470086883505062686503416118954273568936174862841137138585804071141986004335966551590840522538304937356542574869168248929831538625014040470068244590258573949222715746641677239685061188905120643814927402556039376604047180224956698938136598822602563584413520378098900897180264316322060348614904052881740180706803707243276877843302164880772335781665747265294788524615369048138435498018928200244381954216345355207753424748605635872647235629930758082169021914215838200737096660854964256978959091909167638894301143714473203926406338595816563817066583585125188373519192404062423422851777662072758089227861328409624684737055850684677575637107740028394368872093588261295420194082215268224905575292006523193502983465792948712659015038017783271869539778796963808448510305259899342842998451459147597168576403462522680978426255061441278247291658618316355974396237189069907609064815900261795457495977685852643820395569822793425403671079367973773211572483716412625523305149533716984083728327897500172413749274111306700422526416726953839535577784470459438198864649270664024615990088838995447617653402837495001556357720618398118066649898140028190317070966561815646032525705461938086241865052567456364328943835506285795204409153052759541811597093206984415548495776234214854371897231928268096206892460226094794833858254700784868443307340907138000736848293482265813755668897096110927073564240937006408218780589943963038225985677254760740611459077379164530296176341845899865913310475483046472517353221173191980429076531779398931296891429745192744726286448738899220631004457940091412174274230704790415479050425352188066574423301056027540498067173352800030280639739234102675384806696252846019095392348584549624571134488818230873096579428768142590955753498672273472824221369897602646382537296327757305180675028208938116652369243440957187542442765347010848211445428361651828135828243588256801003189388412138952026767094579517373566053629222411043055316452942051504633000962103023244389984346026146631630133146922561412993274366820278350990033079157526573296796808030313777714411959915897546446058393245525413142084734843495459727690230231152655319851270624444722385125454919289152598359473436436259586714287599593798789352018694525181138714735868641378090906853494680244508089063345255757938335660446971593041954028361447671752538929498588912092705813728983053806848518037279885099764940187263504162538800540720209547363418311280861824153463737151982981687713393874597225749131745158330411496433062210766206467318638232216780021741724853403567870129696245687045224717679196947394582817736256363731931534123968279572764820289732094425985301006789972320394141128433532867717184262008862190847460483756619387071192960104865558309782584759196499299238530548625638537787191741264975269594022526082255017526175916475349214587297951176089289568767463668186986539131331706608970364107607211906095394486995069709268903638955745811768604442795814652833190759852834850519305063803427109470835334698660697331382294142430220940624917082850817604181544988530615855419892455834931553419330073296802910565182022338577703580343750574802055460356458951674334254162295006953609265747806891349779704815833451593311562565770050485385204692046293003070819067134781458346192013980482231151049657401915196217686302305987697215495572032613218809529594948363152018080866970832119298633412069448618979890719719870820969327453304005480115603581767138299437097182565850823913571151515206971807166771226638843077172065657376312190562167351558615160236401166784309858632693858341140024006211110781619283704775523501714605120878317847004160589673124951970535669237901961683363750571060463820644959343291695948197157842939259525263931065746245876058248006582089412704211674617023658857596087535837315136119355403133728280179317506917658547665398110126523617598895352355846878311893633547980637768956497304881918477745330099674114581043540577879990039401103286002450195369310367036178307845912186418471544844782410287366961537405502307516198010190935368382771878535932563447931964380084140719525277799561997654935592031833905519750463701469237702451352245482771909275928406960229693246519135865032225979845401586841309220971019451194529962599344115889507120787886575695733357179937627476220827321084133640438938490986194913019831934794276054545469735329290845721704803156317096165195467638020851165572458894464364052736252684072681003357170473069144491554506732155550729124549326037839330676914704653129731197255296282381967256477675273119802584416498374255711848629988023332709889328751176723115479383335050009620231399981460728512723891466434569021077618999675550340992437070302673104388530923892064157107856581887029141694405192967020978570827871132907527534073815312469776655894358268527667190269256906228209900680648963479354860919387907054018099748995992394689980406760304630372576461813461306186633841639853168099569901557395441532080954155336906802624704774579894449393475891088309027281763687807224338813185320557584056856412709277187608498969714551323955614576533721171623301226331493728628326774013430701599587737610012131594835976527079084528262789244574864220071418715687355222304034189386990231559929211638826807307980541425026041233993497746301858583432029557167673188593133672323722485583025997187458222979029305911386064832216397013869912840646880524918884987952987786562504599440094369256516527865709489943354765163065913430269507874654257313242009801659845130717171024649024379390095862053214006232340911080301206896113786964476068688478688311096573310886037521467988393495043117135015116711310230275749158248463706695061378828645435339011431056929500329692055573735119771651124150737350942450100886322770295568450753480845761670287644190853586702625390601441832652180451617378118656606390892669522084673294307710642278272470623009119199039762591869389781884066537251916207528029340526682255937442378533090971424022297485692009329555047391631382202868375518083212867934779749123477325603411219003633809017166165721845394227141607799221229955273345972185892073616022656045508002060093353312633665241315741582909266537578810506313106567455816238267082754497065315923807949853005618624638723506455778647373106353114106289309390292490803210133591964782660620207311616293046188232002978709957079092801716584837258791039679608364288311354701035181203265219977778864462615555882030968578348449343193415761319016943668402928625326799329707808809177093187715389974790779146584486388478942700292765692246216499373408378086814793599572899958357042901126327297967168480288267068637222580577491830546144523775654648406066418840604341902209773826094086505762732951858708465783576100298407775429988575818385801609988123385953116871186386088345953417211541229209945051190818802943878350699400337117376617125438202392397436351563034004333380402984163755964106289897784462944645851471429114594603590379651908989426712628736938659748235789761025550339371414812708012385923940170168180510853098163860891709591347498990458092689763921573676563460829623399351796833895910060804609721443933842634613734889821361655337982509469147529509888762898449868741622036528823383661754372416567318235969336013738089976659040014211476566238676825744903035779437931628896866636527210695267717890156029447039894905372745847590921717013156532279003405595615590594713814764002709888269203141544906182271577198350453911946407862341681442094292150043003741515482925186784241128887422393873782186903086263243220428628096033068411081227022301655201151279631782262587393493761237806566254160643165181229832468201413622381011484425639620578751762501805059770780180105911211025431976740677632624373228412876793155946361410936391689761253948278978073281205048941396457875369592239001391171349828830435057714309364672180086127495258579564424810573501545127586106897393693562192455579607126658512978436355372984557065641141384555630328010214903256927769947886827463457997738074406603388241008912381388015078581857952695908726861233193498137220928193785569620245267737663596076177218809422095705718761361856146893048749155601504934613560763260745562152649694483726532408805282546297660949498960702795686867965163766691445916732384972156415604111162580924964190855634759748680318870867552505055678019898257832058964185313016623313246890506429182093051005063549428200027388699249618042362446779060035084647133550322613653171964526085482400344778854844075993915827536485557938057167809104796943864546923079062926474934482289750877313818661043152938128248176603255318757948900821885672470763256448994051360927118515252509746999897311413965539906482138499486512389038699200516124376981467514198603786306729617200028717918221741506012699692529006192640215492718657947408399892284077711371441058956043090305588884649159341649774651720992698935509255238531579642725593347193707566931607942125983807464372616103385397093429182083931841281910879571625253929555959733033137673803144385764908535839869876053090851880722067831409397810285251923462661536449599928830620242774860336405857580656064549431151099413122154434533970066829900399277906422497720332681447631940340262366309907235272018755998242126861994451880086170368139033788806734670747151496054575998687850595274123336334766178439503669298915849469501315056773577415959227726358789669667192704428878325497870062018557891292949160360852301194793946414272958443263641125286028302561604044711958573087268134975453924428260501770987408617270423437517844477719344522297617864042917761226764279332885085821600830163974545997972355037778224210805652560267274925774637618615606157669117586301759087788573898920057987747221557205493099276876156231891826586936505808490273789119972636079603765454743377245512128711581190142749591412410169411199056880751521735721022317851208214940808786794508812662010590294648749249806443492277058296998565430209888835861527810032861593554170854466235236116419495961216298703002356469102355965274832597278748906884550016055073023850475273243635293658293385475001398143378256252649045507110537871931032352477486164479550739514422599766150887538857880891763156341575930900654071288094468908106187832582439975792248465678216834167128287347527238737942526124609768372662560752446772039074632530807506744823875026078796529932392745761416338591071208616679930401351890238200198720259991323373395733187224262719020966664107308900208916830541244435761727565952120466976210377891336129316344481694567007114610428062724494005720170926797710293748531169497428815736697981914208951782108672488236878664026662703615042392662942681530669636577286999639867982881082912428502853548966468908571186824046234348184505891954207148129583118942459876238682802564692619906452033288024998486388660937814322043563256945828815479512803814283058166855612267096595672144981192493221756109702289053633846635287429041312819158377766020740491503398991811659438104414933745932175386082855085860454286216054991902654067210905766949745381936336997466314858902986475512438299573799895075943211105934355272380292632003635613217361479591913722097717755320870362265659065682422537244721694606106934217365997668231605240073148629009188269593180807834068113723261250236763306164604171140647313868456596978817430247509997707684181529632916091675706732327791266264878151269286320016849479181430221277823958093121755482082211241405301528394406904728887319030683745305038643729548463995970561057211604803327083427468802234365128307992225957159855949845874249247147694001165671049656402902590310394657877628187463438517742541503671022184309741905091472266225876152926723011079971975940974997236782429994623834961169409362223982936583504581076073375462478770983022286161683587608483466358451032717974402760207039718491687680466754089758459870311579359384075086657502331432918850013746983116266657528775275715439125979623091638367796686566257854647078320464707044038223391960997026559463205205665198485165775603317711923866896406522636133846840594576538753853247783688203578014015266133428374743922705095786193949089335427928067427999179959654806892931625352285417144414795542398205364558091264973049729260019376992260241725601466855679980056355969529598712220729654372926619974047614922663393733686586197556028218250657901045795934997884799495242935950422769098012935582040294317357216137760709384136707249305958258874625728417822928392906695711139027653661327748440743175312895947400386762303708301189195571887951233059468970377037746366410341622425221126452278614584019513748605434633189491128805560682647147050723387503975370146203357993709824711303110561722474658219716239783007908637452721869359193752702248434340543017684886995366940450674851027521519248881020149792904417522333624817759052163242966575354323444246411498437018417570835610089462839445703460047729440359353842632044647130814205308485430245400046227182616991518252772158909467746470487817092772688519686526328018923008487762531042495309970024873994570785202650354244910434950595692962736820552746214176252399127363803538363952223231003228535701650134559634216445551905266133857746602211529899404329173050134144362404772318962706665985769092091577654621860333111819059547811230419141216350002233403095809695999980036519054631679528516092332526402212626346262632963084508714982236781074973450493905724138063561597375380720247314972997128910467265907180686835600465197330397289398800996650074379255207029648883249901028035552173490025968027079497455964485898526081832153980680224860582812709311284636834298134074463589057823080392095523398568013666688054142033074357664343429484807280219294370417944224143933144098632345055024550193621483343109845077947517122084885111602225202461018675398949916963842680032438373932092973580748872137212434245393033028391257503025653578679656048356441689102871076015963132049203617852797422353574227120532397522695205197896066964342128245192898475238022604201043104529163098814226514442588070728929875825385904987860454725374581615153259934049060437895541160587970059045976701693109289304909216611252309797381585688123332740194440929293386628583695122891984282805475421844298973402786784608263735924964088915816808776867359435393554105620310571669934831103232968957116301513399371403731952288196514659091594263467943844274750871489801952527679501981882128724575684150898040436283293830959523270409565858922607143372738961542307592303259801788734900164694436206554886446321223024664245474250368358920673528887475624055497998777822656912760178012731185937574752291894924337738816966799226961620913009710851449762152706903235109879350390238864788262397431217415654459859283193001007955028246545719740563682988016815208194520940860101619673363176521739130624253679396807131389821395848239506278355852583936182350189997967223160258634264234737172509975921158508625893014573424795858661329149528194999348409875038363956565945987770962514524094361984612116846276411020639709146092118510110598313362190998001509214324377394998813519920395783987219567312578939403918473817931445824978786121008957186436412636470419307707128066976293873682658183482979506981694041872506406048528497931523446604213815115825361027665689404936233967770822397008322036950151359438150693654644863218831325201623876686248523001858633965572990430586747138419346289716132105471743806216155915167511540002270474365387573606732458901476104250971940645952248877728189574827100837688671151215346619627308538017561077702825414911114833834994627402500494034801058180614861360518720502305192504991201131045165337406195781032169578758633688380957840943445902225708672862770997852746783279435801557502861045997361083432205472436936713632388797711855450202388761151124579441869571086126080405965287251918556832174466407957257208339706748937310643706127881854008310830661755895080450392518160421920012574013394491060841817553599401148751134029733548483323927645625409899301230997403601171745663305508606518675055626766280754435363757881225460879063710040372576369238718337613736682675015335978168628259822122476433322943438838763527898735179673059837747448220983599279985494725158025365952349898478544306382138692930175653698837035525663961894447774983690507067739951851220764915678500766255895034958024571779940485863630208361493006611818693483155622747558673400191519375211440729029676595870416255206278608351507451179123464135162439606577365977330040554166163605584613095125249133048587851225480871968028027147405451252803905476103663986575239777224668455511716350642284634605304420549073230578006723246160280953106403584883717627037669423059322562720555237105446465663186573498479751285664490458575415391804492709406926096033814060443598198618408266563247745607953876871313747571337570679385491891257681871052019486779325377937311987966428488182134173580039567448624371216075507407387202118032160963699939986637403415214012016133472729631682624743957649528560483521047559205174362965620186295154212685486650091761580956399162809427201537986995345611604614314108982932057359393458103057543873573651161733950369574582390085621416434169234785786863029908044316260556312066295225610609609530870591944499682708310676921036931173214374202838025481045787096080599104184071187430336153759590541435272832574192931356519823640898446163056364918623335427343523291049917863331783492640980770934467197954194732524388586864012379015067585631415201844262584369162068897321586918645147441810526163463616773895047389395959602647572834501065022191691591180803169417544131451485633209057783012166703375070756840385459637218031108924327387793005664408220490891018114952887149373351493837753061973068567839413625404078591493719190310855916767480515337031771529675874016221933606663039468265155652057053650583140724351835707665104613882665427235734501308032618071818057944420979612355887927858174548904242100105353599563193425388813156613378695259830942579704127202025611577435558886661019324568890258606170508691849328242535452926497333034223924190254815385492436716532390344156276650744087881071454285481483400234033213130801180634435577344257480274143525047805342535855825075013003362880668609641996951942243163922050567581281510091267327203386997833491549975013491634215338338719398913830507946461795560778810211653142990012675600489780850131139020830900340794552449219780164274712898323026313765021176741572468425329657994310222987536837551937642652132735514613261420567772277376116980907128625813857826170579089470580683640589275939835826042687318719101077511184057415125463756378900665442399304279808964478472466268380451000531344271436360826365169487880664062884036037721513621913811111827426430853574618077071803146034933962356656603665033465275030365834883835369759241852479992025049902407216114804775437895645079403447468234881221154310277663244780098343122685987763466737908722311068722179792397219717112020886445928486860484664828009350768631447331029193212121931542242863965481367606708828184178440351012414964517117163564457623351823769514607665862562895692825821136632067576891120097072118523886572376161166024331077682405621560597015243116543252504252153132754026637313191811455535083658001388897384592912831781109693147909233472457251464316993338951817726987927503917884629855993247863044840120728068850910841618895650464494986999206187801859669094808594410842399732726656525867001882498242042006830598614701246307729449545099586293614993911320083674908741267192989600142419201828491535544117327061156209910090323884134054021751887459299979892546557548660159951042511364704193014485384558434742673113668159813616113199088269310790289269570063085462462351197872883493987015878766430314477490123826032869301043496198651513547126631851703067599600700544691614434892177704972927658471047449382920442997690130793388642445820677126839938009236676433616226916683756157488563142527211042876508980837429163534696782894220260797415465054597868552083286533164432235401126272984224665697700676901275452736514219608598404228185051729010383288653771157855968073866090451527169962371554613254095979851999163306344937946082673139364242140281441201766654185520281939890572640199542757010940199018754743121088106010725791563113500533343348492472345585626953374122875156893032742980512237657303090219007133462688289779863247321065931892568361590212699559344293934330382434929353568450870849227153458257063647273300162102309268992797234671251993558049809053353900771842999372942283404039565424229890240177560092123847573174558301502332586006358636079424281119814561490957759677513054041470824998819366952853008372431137155692582156135098795640232912276599320791669001307134084485235154866082227451206139496409324872393564083158325440084659152818014131790086290814911234750649724336265361704343439532396690919096770255765143691349308134334282740304208314884550917311203121610309945913774696333402515633167377016761279865095226665040720184688193054063649906210765869466644703929527523818569167198537533730880522501555469623869384010160847419213374900104881392450920091750062204887511454785311056367487388422124983186423455477658399919740130602348958663447216067701373828089215973492776542664052773327378410056506103805966371224986262727446763776675492706629197705457891263128564285646747510248919946152629027404890268302360110444190643204402110355913230681670521219171017982019372227556203391565325575142262672567725288782229564719372200433229364844728743063319591124358446796809968125863850210334941333819304062898230766834034083487062803274317473033964587237971840564536291057584184469955025063322494251116507205611860667121649075049743063964591735003718063955847624238663644093812782553233278695484070533603227178306120282232579099154955398887407278718146083080402692954790167010916917004132597477901081127558495087162634296662028910889152699201904547729725774803917591621173366640719047232637087784100703554726496841072237710502088596602968116819098259550403258478302033273003081283667930761669493292386466286612671789277671959004336697924283518407769831121324372736209156160122134802873270918170203243077460192982159762306739081460816383850474313848097164331328681850035996542323569928936481750650671247273584141741645257622527201588888051088011460514127759550403536252189828187822984456766420695724275730768640893604178289670623706254896294765938431687654334515861526138849340752113902169417411772629195984402776538984922794189741841644567822043188736015422442898484526672616119589056657914963349059436203703871443763428359241372190732904848417453721439620386683910098142438424216146296065663203595805085722017161480165623039613467028666524401629311167441652634539150753743687832815270216643875207456694603346443173589806277072037845056045133681242862053876716567654656249815235735029438800135545896019761806748037186992224387120617615239473501592586035870874759659464527162814451783469199459578809269027231038545108334516958023453710694958872234726571962791537559366281701255703292588731769857993841727926766158426650171624280497766687344552010032245422870281893283591509119905135670982493958451963906344138330618831098221538362629121186026664068409990347094462618030822280509111257847267848410381985486132510038055213765716737655321756271736435843209019682678596349810588197011602872801873707398456599802603291834229537739229988338481860138825597383113077214896693682477031028303181496490700629711581684457724498936031574699771958398361528880813034337870569666141728487396234028054284030797408849484887810395148412180639992513701122490304838401830660622173979688473293213855435533428401588223956872730308933245191864788441413811546297123402772979117613613266009776426661455868555068306178638261584075310697407910084894369166667101045402991562914829379242260436577505812986073738417778439753524252141665808041688175740379051360241302928808728968732469467312477553475833352958095089627487004642222885833799592042329394454756643943283327593533565809755127916106311361198332627019474848722522128962774021509226596059671165473216466021477953333128897580054944114623798591733727900355360460634793194435945943828399708684814571769868484694024211532687202207265668508032756691246242563363190536821335670458907594080899388619388682920900194584643985349638887037944278517924474159753965882534225927610962495201112797470927296511779271118929627189185866212753051955425573706990699998490777068732694217153286905944815990316342346328019531081178293784968033127109156516119354910467522521262172239566622029500157754423113014634690741642587536407240430914850107189488707519905365092471894585725812433136051787571763420917995309887020679479274930199185190049524944877997597701759871420275663117733849521382206909994598749861134579667367306168080915235311332101048584133900860581841654604417008733006088969630017074125549046772974349446766186152060257784493482733406445941026436507099451057586441315289979202787436499043206757603369468579924546997168055098608790132889473353914392329251384584149848460080754857303537028623456796324698230119807178707265348737533001407116019669374408618951702984824384958250310014641830721087905102849505698736940656352009143851002090089636079146854446220949767979067877554851002455948260188255608427349198285565633677802848533846806602702512942805426199349843798476391151584519164523383378374793454626371041964345386355047496406864300781732691355051101303252407158388865951668999153802375302458636640372878412116105300316972339959811232944854718644370085694606849566064961729154958481980940443919630936084668631747206829902884178337735709594037634975345401349319910741574094702987727137205156811239782514834304436248151143576231142188381103581121968444383988201056497621774905212984596884890407197176281486020804985530980452217764177140737481751898639029221236008580976154220869515942969418037848247881981369605449091266182733694556699092883552495766736849746535974693724845159791621070277252809429710496209405176265439507860387404061197395825461815353515195272567501818534885718032262565857591664346820237867555654362099706699200360034804182105960221914415051846823941421782039557112278851880349360315754167521828506669829080216545532256351897132564257864491146092655476900083769151783000288755339742929259758126383512250209987091148433419806996380010349944834692830548693356841811574155137800458045704402678590338899616622831083606041838753932417132085686840360215562686270866548235674064372976967133321577643185435990656380368881799746806610138812211989484718003011586802597938128664631020837583313811355931185272647598890300237689049509677036204420606537204706833660225146304303323354527925810148764148046706183024783215587425901585986665087785121686062130616152660973979114733388049969640618635649227960377830793029972360531834431017249806812449462640581447690944031392631269992572041945339991056306256880386500275677039435776416089635736386314848810071519827651142202130392590747980434136380295360081763151816713441809979590362977520512138991845847444143356625089180045498452652775795295777809101858050600369731590754450178933545413982338005744801607517770240455361812931250085639486549309686921360675465103393603058622430394997642356122117403300199882084027268459147924966024013345062794631808296748799742911697758076328867092153636175310675627380106070022393892058437177268746755805548508474681482487934756732054053300148732189776218672522185300125424797292384478358659548785983824276622041516446628800022084773872510835824960130867747883946372919830660577166485832561744566278573346356965438450035499252987540278390214966125798754538395311399034209479589073380889844707271971703237237507330415538489214805108490551469708204383140660762948232982389862269066409407242394867807103750473222433776057516980493692135154067278145980795065656187246797036615449358272384033832000654440790181639365355813305697068970865316626009220161590603125385052675339680530667976143604134189748823154173832677897194047573686451450213465377765645826439384861358449392733098464311249436506292669815897315707997751773501314428839185729127897403969118825161485474693908461076068330510963671769324740625061690293553963950337739944057445361667605307118259018523740540061320656859935690314649208335264985585312005684571466079785723668442292010611369710759891082123067529648290511049338941982963605954961751172155940384133325074848869179014034612027861701298600244037349297250574951055589436777745692724931416442870500185111121816276254984405035136569972835933868985034665056083038457678294545197626079216912875146664656450496285749664956122128741281493638445713198186012367554692441360439899604768250380036472970842387540540596546416559048917279864274102229581718937163890233631742995291290366805554175713015438947611491553198224484114835694400431472285288273923602342742629789826520801474506859844630534603928082794066874234691619803309937397260498361726312896261265883431412866191970809559391134526868150515541361887905011021208783942334085186349391028199365114810908021433443983157532340909789149340763731749770320381151161686184143006814733441621222892383137403425197505929683412690343008336236659232584068561693260843622167870956921617638566113467439734670235245778468532976935153974828994529603882139105399032817901128806434324620072233234766382347220758489114585747816874284816802871556118367000624092155613860925647637088130564823932396406600652730267494885969640847210053278086371679338263534279769808561789417711478083049110326940089731940449132195268569631749814733685267631528433184651777764138524544821793680384325200973123189968330002891794126950581619503707199452878803750262248518164416818218875917283335676042595102487779350135881761282553347594300210458052423962912028373104650393619965277111999320206448963601784881186320085948479295601239276625570874832735431422950746908783184414056114269537621879923783067459623821958180414037758646449677007430138955816071271601333184390115514034651193450587982867266217517431184781452546334206369568245979360935209037893457076194818966432201251951826165973427615253559300771520003761126843246363037960814816429914062753638885747050348824205328178008407972362148517800183365800102328926549947650981508670676717341940789620089910497224513094468218779608048524687813964553452623950997132315548633143887629034097545235815371372828513548654281652231496948037270226571055040488945999592548436087221866851195792641344380323963910062329430378403092908344172844867752632244094130820698956043296556359754690175797569642265210670752239329404468136663792903220194290903224592116652226827710560325284132001100561261591360235645480213746694559241894040414565009164366523704484584236458124456975029910304689958018887016384734466613414889254861764825046019834751802584910288168321177592707345371483788968393782224515651770762547855068511439880545260587063305674497393301067071364090204696146738637883816105475599851583498907850451902991050074374942285642443276569375672454004795890565692253598407278577523940255687767514460393246735777094885152207503202471568582304636730131033876621925188922021673406284902501810623181097745794633503200694522023113764106498885403180164848602608489457879640681666975132354045994925193246892635925149407758379786082738022394010456572056566614335596057771980384178571449012688861961960532787137478364438352410963162618616820388488675873983009527994857147657731006674415611040313280033842404779059747894887776985932336683390206935310948775773749588332760687030427479733848456391881557803110097775368735565015249782313506568225941440898796681013439976144923009081155193448988073031660702069117928373843301921100026208439371798230474516915870460152782732855375859924415651083191240737720952124196755723783497952218386436594553464541670690808195360074975597104819927114328017726629412876130018719900855161272289032071895522740693864933989738272707064325207663389217662483485249477446957055551484557999519827371236076307864185429472317757362957465989043150277200179152141335559504189979019854063814960966732379457289880311773281048361796195810221014917967668117516404240167949763436709234272302793587288917151361503962236940067734343039475469577179133362591258608210207764088447229085089066525200636777217060689046093904718770613848764684058210953625524103656712628337710080604334865210672583549395438956214500086069038419791887807929357192701512508178735860013722788619151772943112985671698785103462952474886505507747872716881649312121263540785377256713921218970952482017533909063043859187422614899304737317577660460884821792256708634761218958640836914296047369659135341846346484099280057724823787858412286149508681746684236154865487345683570663036340818065491255945123305049006432298623251699922037851661528926838160963893950279821789804270049539589384815963914540768696811491819925522309877155373178297936838430269141409687375186472690152559719396378241392055474673837947906814541877170253050938044283024869125274407839837065009989019997488530629725641907841560719023358034620571887651942755377918170240806007080684565253436627157589178921482226285741028134772187918276035059807055427852854441073756019654725376418748847223017507702248629708736204282643557461909927321947901401534609277690034363432468684920911504982088807006204651640136230611140765615387213797660459843515605197072444266558245626013797920394955455103684360539695417613762648980251624801449685956684284657757387003719815316953187154318426330122363610319307162266313304115753020266242276452273427585347587352815990703284319111053808576947183787479366823368899344756777451966138025816761974909799590422694299142916438232056350086791492863072278476151150763243997786507750588584407219857163720998709924746808509748046272970862055390571896954317824432814400284879721258018022805495263882343628119760662957944066448261395366722298977644930614693783111528581885866404149167824962722107718169969654836488570683057756538950587870975642045838779739866452587596893754933658499570344999686313043761718901898616166685030949324844026261884784407520497237548130867934282002676756046435413538036736106987062450370460613174927319332314706781730640368543981975155995605987834880155109936155212200295965837322998101211986558159100549577541588333510736605878386943498438706394723872134335221051401989585094562825030114652079795552556655197439870120418436439045327199749195014433712380168293248381191729814419255023911186080394123181913371945760342488890450865743444468342607716313795211830356315171211675858254004728449561436598537624763967256432811387860791085684099981220823316074234298764249358911086604722175987919240757778909825624623336118324352884929958353472165672408768550637111214344244421054030794456170515228692857188115850421824127156401187266036920081743136811806781416880172804896340877324876881234384464160640069616517559366065072415843896409732219664984506888650920951434037910866475268369623059232934718196888243498413151778013545797472274100900270834503207059308789344324410495036800491704737121167492670739706214774108274969964544621521885443924352139664482363149289761988498297083766814064493845910335646293303337253556402019548930846662232285906905076715092593819809136586068883057222888763402263221664216043749772284851036026515900683968293737099070154840546289251096182064959263233223837957834552128109220689643968048884205677936730488895582273958251100538940496595628612783501680880034397397684300511946491792622385359608046388462725006586393333915493798406179004693116584333506353573004427197761161820397562706548000347045593470205066107139291197077344038795707033653942907451040690590930916260151251836435327877993922601595921399450733017590308074262853070212371720244061359216411781219324579092780795494908268621793841594910685012242163125425744442844140429575664424837323737727416018344063729254893705880512787117594699276584412797083129212949950193432497984605934167508100853895371366095209484284905108695291887377834857282961198251611610466691535989440001584860623052428467514954927180741204724197439360997863319097559102317555057044374036100890615853978449542038235556160082434430874098235508368394795569086653101852062374363804813892291358767904508446146832865272390794827176684728062957762646834717224289088505052260560017166559329971183094214873290010492437486869006771960023349395939341888089053989171144470852267715252037571398054894506722151964136756253716411310027578082128235357554011425700207856866416070425379667140781114137505563512851742955271486359256555981219354738186704279322498920317153051868363146233891664986812849098718442550524711277757574696966529982103050211360233456075273560482097187914062989311217261702407263124783135522512811519566601779558457540870185968953945160078585747549205343250353061607499667099908865397272187658207691252889145576868774621455083115072287434740552275431210074549985698844970518535609838593056939371281168100632158739099818960130441620048032672392178292745013920369408683515891714809191237158609490080289181682555784429739062156791010437774160717680671733920275613939958274657484656647033199559880268078237030685070472937410311760004686511523504619416627677281305166004734983443724265922293853338356742237006666269842111279088090523539177034492321119206949641891474034819360863817872416248298661610951029892263096028964642138413549856552088763423369629892261796567899767465687242130344256961561811451096487825914670954902527443245706451632015154127022037986284457613481931053600613031867577882413299025996503739061447358581826782379797901617606328464062189875040017929811316275661580449840025296386477697700152259014544450487994736592426290276760058957986017208685785728950586385580657281212361243119492275476810429968669277285864575598185968231061611082078825074206961127066410039259942472374845136132252987933762427468381914741620331176679963941309232819499064112918146111008235328717454806728525418092433297067601292886245704463656306785247673556716070782414690040663339788760773743766092917902876234634781908887376539136038635091129227596865699718096000978590538473482509851123918542718410176542057782619452054987948413317581275146706671537637419478584555505685930527118008197022671041927590999407360280748577822339165715428549298162248623413250797028548648793992904937874252887269547734400145798768863992158086253743684265878088588252523596703637927163342761409662135163399286898247886272683481971574115833928941594968030373338675018735420501513901304232717964864961227055892726153183328861388935883508640480914543464906280777378436347743119232260854180230261819738592630014521537955057290464004904478464392175116764689921223814033502711316652261536546634165723290761308051032643066734832647048440482200318401630967483988531377293075522124569518116386893368923146654154325588020380746081020303608463703173246407534543943483829251122110644401044310323722694822132275899068266498096386889976078599220623023618480396333328748108645732533830706565323681604403386316030355538308085919252413951516981273752081448522184312099733160545166947773962667981470372047467886081828576600192542294609108560846255653086483321718649106218645294401541836378426073309270888268162726285374711746454787076158192986572602016344417380301043241874089269381571038316734010900708642994436884153408252121078339593474498325881760526906072928207563032934853298462960936117027710096228012882077275120400728176456804777346958918388458597254730259289921764476885498872516690971220908641935359532943930111383815887756810021979658143517040561969175931735691279338442877402734598646421180446552205734174238492491391086202126155722406395753133572903770783164750944222447043034027582424006803390242955589936000196021122820866087936924359085649724675398125298400137148966812787986167904660267426062493474478469085584962459141779452532672314197784995857843299551704511934079029106405885349316138737095583601130753092709904477341598230137461704965471443266884500655656388704921365497391980542695661264841549454069431268240612218642136924890492449223899024146949703176967463138825238543956662095830341791855951723970590395532684747700509271213683701977375812642718896073965667520944440881697781480554819850785056632473982203401006066063933915176073581955516242096651337335425002101041854376369618699065523273283172465668085474939685410274155477593928750833632588370318682601319859986727211465219178150004258579356479509988309494752629723944488545909362651370459932849552190740178042799535951939123374063800242097818364853577790221271313313246663378597531793573421947686581504825793315449013823535682453342036802733854193152195804223283953822544726907371687950069996703355842590876947377624805746800979071400455493709486009395198685000437238099756320055791211496942790519361091190524736808080469856179152043352569498254367228897434512710943827607148833136322167680144480281951890539873292933481939051761678477085028702610437157778874421560462397484725817068035938163291475123448160751195140204749107213519300226271824400975057916684729987680173582204333845695741881047540584127740401699489134490652641087075909515533078225626636719255195660582408466284270325028934731723478497717825308012670188393286461643008139924165849436184438378109199246998389947811152451008214530889114318995815426444152614179605536649497000003668377105321566689583638199133683594373044666803438436245505434189071537309533223507150268433846352051020956638853762321249576985776996274295559937214685378590450812709340251382184592257753069870586335703214333488846152930787297869411884757796239994207816475465312549327370702742221435001408017914989278366117059996236511175107021346456161048522460415597538906172036945281200402537169914940521154434872764493835610810591059543909951732604735722347616904405350498243113612271017022759450958399136574792658307629170460198991448736098856572737417781303554776697744328307151251247431748505965062963114393253933264260646510370018188844206734682707721909938480941126791778164356105697125553457740256946708431746943366462049350075786238478222935209547891383380798222719236997843217421318542942438903722384542024120815046705140199270173476304640856735361820003305734626211535171830667966267221305756276146095097307410473146489461955009059768290673091858074347767976875402880045425056203237178738107406139085792352320914880651866790195226469858084690583465747417302095288882811362803918016909410540043570192128246610394521759481176824229714744375619922293723296134527307064390915475292325229323539917714012560917148736517905636165180983001149627453520208362139043808809334507952059717928892791272670630508860477151190866296606150556614964684069832598480781208119318269878409716824311451865677941405531835871062353562695967388846863358620617231298216526404430592963705463516666678346657900483748920114443033445319658572206212620615956021359594721769122479952914574798393482479039298242405562840906095671809624952730123667711704385186646014611038852892770080993362231094367235739954775149783350048924532617993229385187674139299696517665914058346370154697460563768066357302193437920602255229210506357306070246374816628462771331151644242010311232390583959967619256952074938465831995194073661523192939822698777508557719306747292011226477259887618471525535034165708695620320464360415370084314304464102421117120518405358200993153335154078382416102993026156317018540887405861686000127820768524044648568019220348675036352170935055426339718523919435311990353604891593417175348872449977525914005891723146573714065787240728363208267034361653687635341293212224243474787414695458768453079526554007040928668560021512822698734648894348115315664037330825870816831643311176900770209657609258237473666040388222781665359955558098016082547595456188212925574537171391939761310967239935875652754656641616209343530805835269990188506105734245990821899694028923087515948563833302331279446499727964103780707278315062522054786608652920458371511306774670454593790450518202202125969009569756825088423554390520544991103979691533759462261112440825850800611838636930598884766508059756347296946211842220681411698747280254914049056385327012155390314313776373956394676212770448765123737662584882607529573128245899062933225891304551499732165191165638254665893918214689489451885440561907882834100236459523533299095795633341389155409763676107719810902194942112059860141279623552315350096738657741112856632717671189515996297160637542809148725775425593191342105158870454111201322806626034424360697263817773824388118421612613107341574228473441547414641698897247898511470470308213076841357975784396783892808738966119345781653361087677098009206530688305114811546689814042933221554093529899534136165750303749782306956475517574294839466480921882657398441122844743076481506984585988017009721385665284218569402055279534244675008255680859508027886621352349776165361107343947727416781642403544680555074300127385868136962268153379650594360047360264786535664296573351904460906146535357994075020752053451859503841985797282705345694561254877312188579702562493628433581067661469874223884836667525564193009758147253638275883713398289503936109153785663493714780519183233747451198232548970702679029660582368887439250638926627547311565120744472218105756461124436200593611445615026577766891437767753838932794727970145062337773006814362524490267104268881824563718350934965982519188969967166876497149144989235884498908698131733991915790624603672240053976835578784294584765591865574230068471509936779901555091184775660109754650179533893812329337040750669820746898268573829853738672431490194456425798333023285363190595838353326529189367242697441955404821724711970700940922675582958943646692727932616165259014112252919562292084309461176807148468713976038340641520864852577877315689871457557846249847262658288369694631222022044037518348166994999653734492387141595240878671992860068042363073533931725246375792421946021154401327079174624378639947946381009064734195942859272761473307324766011845015372556680694027670280336336968130405252592491147700759183295987548402893167027301240201325596378999888619020280489162017789724253241010131328877172253142360523113863877998456304925898857612672110631366441200181288233151324793661415322555082380270794024420989149469723579242834642365752240344572238324915607180099615741605328845158427392538893554309857556328300556755498282381395562503204541857229294110693748410230348255916623369737039812579313131759994309623557830099020220338730736667213316959031544762560554256180174126994637075117616336199180494795612332807417027311904541376338815794530387252609080042280015394489760224194496008826742580465065530464622091255017747257141916494287486653152261031474575447738465587979303636981496640884386610498832344643703451966792124715506388215084234001889525604043740883349040106433523921615233972323372862656115056486126339807581756984319630467832083179654634708967954475449198125069933841655571131747674580142527618816507801732822375072813235975698463909114685072418141177779996025342484557728256461600765484935530466444094127788515116703735634558684791953594584054881291608367122376987799694179952788982713140022718391871403437711972368241784560820629234992767648528018416306634067218255890028251840740838909440323850304789592313726979173830537395080915116387812031031054342358071222914167043766412004648214712740548118775380062887149560771780483255795602193061454514888723389800093640605356073880705845686427847036898014220154029304129655451198095223823100201532705700806110742373094183919909548441974633819368769069247257243293798337491499449374946495389239406934977835229951163384143266354211321714505528123996786617636481008986905838446860559372806335868322360628294085469556489889432827152996232097535272543254915701323753517056210251893213599894143100188748779397671371423738481143602038573725825393338373437376293802344137485999488423296584551535545074587684376833287677852152245676606885590033007479313186713033708014601591909600256512231838314393005960381496049803151288819282058789590184933891511267178433295954174748325972540598313044985184458549101878343018469571430237138240300552016147008549760671735369855632092222529928065558942094765789194829289788022923552894244343498018238315465901878096886158162101837045343354406222684342498380808845394927741784819972346978985097048856005160771381786992048148312536376728862203713123187268177835792861713363899885178254881225499109873545786862720162240304043309616790270785894212229229584603937004726597600161693176410224075896344410853782498621903405358187949485881324277991491864873518599019822025945009061816453740214376027340819026227899569730186154836367387461259303370052966102640625885273320015939011489987518695740298259685449976321967512007442657735985295235097876174793580386078918257968767528024627690225718370297007014493190318940214602703365066389724052677198628969622256191320538428629683107230477979767808203047284322150133331734927616337584459330718345890000318216606874453027323027557819809658577819392948245122932211741230717010291643305408854451034647502338691188798907790782828467633043872470432286015140816749184163072149312257371486789980721696081244090128382863712293480316049675803190048231949323196903261823096026403247169610702296856055124485390506160259383729525303000044849595396260934521573160658176457260064173884136248395414969120705768168396260863224954775678931598939565294745579703676330041464090449104662331333421185199233435148669636603556078114985994310365251680073930134514813801631434655027708798975810362657625071177028030579262083639360095660914822465813295405201844611547269295273550396090278415244081972505533224780655336480388773903492605658582372922563257495938451428994974071324138363894707630264180315819309218682771842369450337319759889873425417854542804425990593919262816601103725429186448285853052945177604881780566260183504105288021261217140831655697392829404920828450055758900319142515087293824328373076056409637585686748246702790009628275601841036512748350374310056720156399990094489503443603489849717501506299036181825860501588008313101497661366555723924390584340405448942608680746330321117985955614064790886419217778316897944707323877866575531258473083664446189155868730447079296386060537193611875144941196232938232266041467462593216172749431116150843004713893605790403669243013962256888943515244916739692800817258922495210210381550598864352109883039758113372990023262351287555652723812512324788631452183753183644490096854967269706762548893260156446006660414701551847171183206220236164102161735359711488594596568585223340382694867194835063054671960803139140934196526805539899030726204072293018882177757490874839319378081678573719510166383033404239173034338230361754533022770987473541378085130914560152504368200838586963544925734876483395645569922714194911644764522138095920047821926184535280980455375710309137479685109540546448619551018724867066056188021366046072054291127056006665345006995028607221113037537188812711073283562010593137714237746411208799492671265829402660300827424153566341112080335404950735358495610317249997337984457208653101689658184269655748354069594528755972265013164311461405993739590973769129174855677267405258556819888970239302528656074460904328069345483886460378826839348947920411306865092314087642254977205651456915861650352451136904773204470286945281431373105969508742018805962949513543771844902518262230399465589986064296319584434088798861483585916197003523080343596682546111893682023974959564933815032228795055231718873954421680012184660196188486202937035561246727211759900320227569164098087786356537597781251289306815661244051528487083658945134897853039881134981722243513370841325529872533459844723329605311180883694588125610898130733448638645890147417898358030412518049175053651098493725166863547767178692228166866863040393099374288026596449127751406678288019930236474435362145590704329686755169285422436214422718474199334810996230729451394941739711662406802071899557432114745462268764510466642509111845774776805887655486275086895344630590695264117773823185722714416036194206100253848036144409243935112153463081891565127382172725798320312508729565901267463414134939054194156435073707710252414003365389358347132189665051010128520129381497941909785954588602258939252233521381614208268154590759238790148261450919978825538238620908802452770437260551861535339016753555906158935917190519771755857772508369935468271083348690838216255698874877054314487892446981396344496936394756397107773265144116072251212475399008601870348408914937331616622282421881659252620406345723360374597057280931970932783029449342042493598353897616085776076614112169953788832868438435988714610604890246039610351061865142345706695022785631604098908442963990476756624193872709708786146595621382172490692153124577083601847269924714117723697124367574934506421402044663757629239246791305243625426570372450574467680997567662031186598592943546294564082086492698551958204663120504931565049779305468644003029880583985980178369424463176722774505466131078767332348602124933887266085547143119958974388603578093683860808263746064443631401149899152103126283266808953126707120426217039742322379584563210915488795522040609170155731157234336923419546769517607826823786334732316003825261164312584113116862022935323752736315807581556475041116398107939992004193179273181215627718288886230517098543856220498836091752885254800489661410489256615901230709413757796576186959091572726269981367673838737129179824578300275951041546824031493683143621312341836670160823532326443387011255012227902693653646174620053398390877078104000638757879094537177007509825059181557359287376679966486995665676609452451606442327060599927326258245010075103117916186562234520789396235015166594438473692386329482329005643619188104241799117160926984410258858008828945047138712077121989025394780798460037187372683096056646284620599316209907967409371149050548257474732665459252896416081057030607548717438215755852753128210498671489805689680577005120475527521049048377189900557365356356117557477622346588554329944094561017030769109334819788990124839341859965854874129570010793567389129514695148178668707241148318106015176522739858047717589852319893118818865413077509193956679021317521653497944747858080639021985864901580293163276990041568755124857392070986575155914369424631589582996789249461635246176437070301724191943876482935733665383394461832573696991560081449934858415912913449352328240880198602967257941661093842210652832261926822433182074589555293820175309125339357675067248056214277467202057469221797298747561819874906450245665846956788429633172621733224163253719412324003391396543803932524333358847514880070318405746813061104877690623675330008071580993313792646303647416242452464953599625265966358798418021395337706451928841640987490162434223292506380235847088116546886681916020849101854651148619622037720917885593265107434342827354127042361104004083182585393653914848736118277548752383155091893436666678331032686166182832353380250058663163467395257612526016888431565994274009499642891152796353500107337664004902542006447017189867621811982426615555927146434774100374375383413287922356267640941487789261386058462896536346931062008005405077857229792697062062182015128591385804083628769822222143493976566517701638365489786651407988362790383504718150452555340196835868455183012549608377820164213589343249801227932750282152661570935527882207475305006659343510038025665573256742173404050231753924318590713492128139602654237914445008709149641524848364512072574562311076424825655122866652574897657017090136688822751567156012373307789892815428483239481949692337661262192919348736267922167507463328844679400679112626896087322986925021983833862820012067215073544877747110147067420576639621713198517332070218710067988634257786542828897366968233278529612622844991261643466936495090554309161158223547191593719625889536819268179974878609520911533808334553903601213655853592297639035122882653050764904445133727716967578630592760495757814645846380233180173031121221884975016941878850092193001376386163366241375029895680102646471626935675127290229524156752189082850248446205015561884789769278801415063191016026606849609668855631106632091981749867525502423274984435272481570324969276291415301608002383068016014417382665639976733766501465795221362830566035172798932718383813658717674247428077234454351941374596478085081282525656593196846490413101517537498394611775788287925614731378911722756084913408430375817869553064372273987988989090809777794087658834299424876023036349858032600297627634034623759458789949665308103417931858934607300025941782746479915897287097877784383926688075032102861224932639443483545373510552481061188426042266446216750257590384723395156457397315485737136807041443580948803321234404579571696348180270984977478992223278223562684701625023640677865704983507920944763712622050320511196044828259926096337923737282052696900226947661519400458784061982850493242122540008093807026584686175196127393322354824094595919426628052915965234890724781652469256195745815729052110919407833082662612633938163212980890286726271655717323092365351211791043555829557987454149883358383179225576749355619001829566515653779934295264972660475208754344015880568515789160302197410505817225303395061473062603420975483601699597036625536803965403618951782068111225632193453879795624323606913158300338831933307921106043532221374369469023979801409286968731453624238328257710366257935659735709054725677580007807667111264910487915117143666739141434891414901081631115140593774566402214809921091096560877170353333813937079928233892745392268356174700061914140147841052877947316461602910203043195355656477449558324760667758728101109609019325597819669949220963610296775828908268551528201331036015387167653437242301835069409494337681518827458088753938583211648362665362518565345160824825170299168854828296409776710557916305307678908423635453413865773126501584833446193106579842927628530280605672809510879498326404209295413080592398127921080519145197134398753150415225678801650333595814710876518323999381302568556982254020221261567024447987291743162027592007174084215006585764228110112589515999736931843211661600840308108944916160846093704390221347862752810630183288011625582316939497788330186594682350160553687092579473234555289482556306132929232302963725448947344312340280618388604318726755485800195375321397669073144840076011389480951819439780480293321264182381784436151002380622534046067983161044033307125520003661259976620503369249112606978508538983528551858228913505328813200174056038920257494654633501135936426479864526234704577135183684508335655297500345872586308054956976229665338373262379812379998417074659797839128335555116314808355832755493731783347357279088312526939382703495660940194837284881976887758997781062419083602928875842918208351556113726620160014906793248967054696330633999147631193134244671205578643632348898315390490901768612247629174913911806986804627241973329964890595516070144108786096570534748495087725111054109363177004305504921445402763667297680846327514548656716197874713306065350340632491966492092231025249515432707568173363824532525453514539968759430783237300351355683489880648331603879285763540338075407989559552088536794861886840415935653392366098428677713417052469040162241278700424429430462100254698223991875970177222402187041531080379598884563388680226244878302930197284381769976667455283829334496737078926764106507628088938884066719375658372574308937119001713276476542118897947369333414169473989203703471364544909303612393881291289358392222997601573197868434826212981419431964648020823763437599403766328594920589530361627105866377106763494375388747045041839547087976336793221346046374207299252321319182927053297165210180995006591100518922715369881576845291421130458360640407751164746008627283314357171996980971681415247549736931610298164674523293461112714574653896516233593311956761856410916402001047692890541726084664663940916659916834790007484092323346131007647867342063329525979620814077906495788414370165875756084389484263748180977973428380051537359975720829305845695678789905469585793794468545861005657900980289530109010396840807357384274542410217608413704937225685564020129803980483478563660750664339735471617086687381142121709788285866291071952870436869520026379152078428341145508758390334397148186614753395544468137315434015668028784525569918636571303380755581534933735212464471326113580642140294081057148725651877137070622947985714601163527782002557526498981547873657666891199110370167554681719024596624029296003675641162177529646919493777795783491261117834679134362376314998341502372935536734259151380326041899808827135285609052725047792130296864820496131286650025130874283089835800622307980232064825743073625888911500590063581977970170582365887742649905259318470993816292420187984743801975541261717432373169389085718930944466375262558917659082429315725523222345502195401270236430831193147872398053312417894430478605840644758103478115985402563141817722578727902450805569214782706516189079098333296068043030463897018430612989903459075119457308514704363190228087576819968308022506108070067958424177380509797640748555050571596983224976415134198843440826438025940543187472208642911200305382810134448183382718109133716518995979397949376363468778779113629738164378917217987329141121088629956229936202588010962388299717049241215300852510327566765577921846978341477088043110604239715090891159296567901104700449103921833131802627819482455613687212504008113250522928026090706732767559675157395313810117389189600171672316706926744267424112333781637998990785918427067534626937311269499292257051895663417930564051593525232524076952276301206217289488019125797754509868968382940221213975567166269781533144637622320156630144250643398722469808334270475792426944535563388702635376293529120505712818508358051346546271382733094866842568389115031788699526796785640157020425953070520978523095530919349300515265243035091848065240142203977884081411025506195266236529531348036209435194506078728028509053241299689300789644660703705228778581515115196538528449748823739238701910907614382239954605349693699073076184090605041758831877782902738473206416720882252731971238347530424495738625244734353126243938584287339917584677550178098305421475170257846116307781111582899965627050454747451081744572433188991143806917609520015195749167860095995074768515499532610666854926738799950185247081741302117635458610262403306666498602347475907255223517100531180911080117828650297797423998107758694523479558188871578360240367155735299627792808680366492882193586426908320576568944498792464060882855349788032792119616730472741618850813856243086455959872435033994587542515941132423728685777712830540466322692146034831440186059952153687921918458162273262034098836308003221848366040073264867226373058083733229601138258433373296257748475454931124802993938470321659940596892255871227891341316266260919291839721332347220972022586206911842269492521663429929604493828991531699957860927358554948883182899513748972195459185594424828630911533426199818395072317408350846349939020206637626742079707153008354716318482158682409285009189142942420501070402198968250524539075841374589672399313257817278372182154037013005753366439792396771169250162988609094022148302029170160258821165875376988667890523418222734798185465765246936580102172061785900051494980162624528770893280791073452103072922643794896653314856330387402696088125973026543672498435696056907329158978612082299413258278882714651597269619472968146379453870752629543582272509558050708037631648675243161259916783491772833014342029608616349008499364234519716006359820301326418465546897135102349826177720646821106385296314399581165116123221608103157947058828353031037537322350660275271708056040881787092299563806657121947102174877844788097396763520692660223098488612652058186801053117912162879009725819240723682899045737605088636315590324846316190396098328143397307480265652960559047535198132569129504055490728660803033845951184471502386527923178830727870529166036429284678214645851577167754530306131537334575600675887693188656135932456151592480609143850390737601033257737300445352462539623392282987286945023741955552897498313293858926617205319427958552170429141325557465756010218471357971273234749503580576246826046691941885814053577317639707189841619796246591817395606603554658911888913071127665169113224321599249839329759424680576838350509196010378402147899768795549308101930901044435777600891676503220311910494503904824785275254784477374004386333733024870165290744389449639527781611603036588188185713439909776887044318854159226054734328566003965583866952641590296866194659616030939438396579724319033275461923988714963111192412864292574429635453775703293726836951656014281959087506608737110445506593977881935650622345016118090603067200087134474725146737278171244741593555261472046923980083082954559539661968434317140334238930236051250671768824739290188803114882156071061289762238724453850709531561119666509230893841081592559906531557633062241450847030901028392165176725800243169155067537369820945552042172304197337936392993419938223565792153704472323785742061069971393362015802522074245989389268510953224428026614679247936335071929023085581503871845956297013047561556846206649811982553895751127940251109837298075300609099190961891089656835100852325707852676026587227753722291548211856006310400965733485473302466879474376267663484662367347223641995878820338887645427051994295752752111913069615445621945982641511077705767283334723538572313423619164332952475432051683844754196154844794150513098572323969227388086271359668409216434767135424467282208361639217005372434299777444901049194487045107375816331944990248829916464632050231607766345755222503833691291338993512579916359463757917023170353341340712735601143358992635597772614687524067082615146535174139246390848822516428445630200888767324661602471596205394371401693283183696383052756399268383702883584254972669934992086061689123460498880135279441124497196986623718723770454743566935903103462375494664441588774185667364333448316146942049650185002372109484856941834255760371309316882582548396581894228295861754592119050086383075224437183863739708379659213466581346588635043717438901620911103292421306003083630009550062449143608400113500962406583309755160038394947893422654648302231063255612558275103759370832187524019749188454772031028790513978414971734369584648806474130221984797326119724660864628525486150043451238778538838980998146542916278293085714825009055791609319583801820884088223990416029941056195299766860764037947239161061005521655362979821345125158126323397972852767425878459334901991879952489170643895377446088555231560255181203150479142012644291510594685386063863793094173841146483107050743498338874807162604781200111125885766836261957446305281877652149512736210069882633686582463753504310594093046676266118064395772261406346618387276713267792388045039161127373113456389448713565736005138756078965866154565665339858291975025895610789673863345497093403198802863348090906895022533664679543170122161943908246545179817322550395554321607695274476265069958833965328642014371866901699443432080944966893352828493409549445387191909614393110027157006217693693236606055253049769643686778599110462982961060527033789958473266597038381426272087648220444054103448195929390133353868512569358227009795786522156843643061017039340378620784523004281107666785320505549935530256016667753211797979745164843142151408009221759931533988418122846313329836952943079909088772124062668927087785101926872736483075738195918090586527107629671404284303352991449380962252033355267888477931979667886005461642626121952302029577595321332149854276844355036383234744566617175742251948730234282696973284536061817149025669121272537733696972201256599981128745100501955825408062890332862248493050539235704870618284822505146634823732086701689944307834890357550695557868981885137575110010794105407532429839514157776453833848600844245619108958260201851480987055289537235208653895407652571801537809314637567524034208231506881968508372465537123491601786272283477054632995831288812697582935264283962195148927739778848509229551048843274499018566081956637508586973356545753666233420514964359028882342255418597688781392356337160532918782594620179026211223446838539868445711920591217783103426373216147206839892409114496676641845481767475712645614464202438368304002357658705831728261886084390898816611312016128851198407057247390975595180355907147994175850112894383617101375981581796815852719556314334662561187969621349389474561985629141703847787131600991263700429225850705148584974904785959359772314690514398328196654688445572986320715596945832475461829242830588904861879189829634616671755790609039085932845519449374624666364330788231624755195351389076182042091683648184508791980676027770566390570350478476323385794483538144008087382979837512214261607834951446536991825830837803866558045795919479871188600951120521129162176512671792219359676349059007673545652918101654729785233688457076357104269684597309986842758314233918811958826672167609181595212707038724261237018407149699474389183367551626736847438648680363749332775011547670233775880754555318128001549193988092079166591181176933904624637450782869281824348063962581573897547178962026568027486323215452008564621444603961604392263328708560997846732139171270041508727652404133806548199501203758242429075305649103613538367563547432920230091183722366644314400373571591969029615896603819193559527562205988096632500491158039007184251312555700168393440243889621179053953974551342740934678177445168040290814049036253391095399427159828877040849115975926083505920829270592360298126247328729600114010093443610235687235319151079887442357186369895930927848905928653450123612159612367008932544589808738396751512084018543128012829574378205077737347093279718477856393663541313069808529778279237100118506809416315291180175120318420094558548950191518982522279983045903485361626079646795826847891795252528471478579462729045514299394760104184504921388679188966997027198641240562402190822940456905447190491858566024554748934655141251266573735540481177081188792235018111416143428816517311020375844203818520739370748302205870453625674186293360817459577500679985220599336574385089101909265892608807840741963689327280966975232311634907073074347333555001727772822884561441202344014364467072101579556908605505450998027866311191886481366706931638734263687545128017895066796298843705411943499584840067944153763233319753187158895330018543310421006347236510689496465339269087051115111981058306699641023014140348229729617894481832070831146102575554540542599042881823852693035043903550405033725039151998203460652956298483375080078737842385736862181093877986868989014365173693051677267979211994332818343227691881661237511323324565559153445758133064280709877583518481747615159843557155223999642252272404561788918329679973094781526335239496658785676848796190640956165911132945780736277844510746358360516889336595863252510818964495116534638609272734233229755948398873390305323717121966340703825033015618765369272769780849898502615998558600839325444350348212372863764477470443289077008918055063154941525931387900436949384506019799403522099861253457768240933070233680914954139603502089845104838746007664698196886720912880603243453715203125117030283720506082054893316101785770626072439670995928418070763186385698684848123911376930471412659254100079789048074083943022393552107687856673111184821155237127822693717375449365324648637561992563351175130559261152151719991800355057645660161532124357111019532433619650988573584356431971822217698972798226021987382135179177233969311250525891663364747099673293027368058838666252506861384662438564906515223432880448424314980110900767988961955134923457200128874799014901667817007085525278765865809576405518012982499147053763568957815358032706380621785651360863664827285376576088983184511281160972647577768417224562574033705582509146111338528490115346978207093632700332709634376551826106481975960479456893871192852786946053443801035429879140496066534170858208067141911422762968943250861626499231151443510876998367510020183590241752002430688744486873551671657962147958102332591650807211880846859559689629434297347655158072140634721089307009859280888649061155788872113880014351235523622718759280657491543382253373573344285601310656424394965798685824599449405873175500755912461167514655302550644096200976214966991985041726300434633672917941433160715818900739452974944097974731349682122373186736760009682664048863608309702286217657901024473407533562566520425230383077876712989995247857289122921672922478779080245363524074249407103140023603552392742967542329698113503108815864379639973770254197837604210265877173637111178303550169840833973274574064375689027695189311747179949658491194405301339847097023460305640258264728703770532220377046610539309163297671633191706338570616443276610689253546376967364420633880810661321005031577039091812654893583349686202700004972966662584364811092299742005263506155744861367219482107177647352065657790620932689762351390542217728494480002117050758109033472574175832687997446168148765633557123070746958368135573341933376441034985358108705599695565285599084490169918503934288981386883268169072001887545038589761888473447694451163153236715531866129144490713858686297816898084062754444344125099199858292122880674574835477784023121608028068715201923659362736297817519984242600537507680367635829678781306319819937912058985778755944818017720568965063234646497719769176761900658902780946871744474700321678582000326589584022531377142856405987988905549438645173318514232319979745770545960022924701358547075434673561732857861456105883965323855662922890990048724977415975067713315256136374836907567555991340447595982660056614811605277579377202397832845501486233715437135769280674869594943337078970741536399630246471893196393640732463443326908543256236701535969860814249807244457929582059346733410241650934571933468710665741941636532665916855093261167855239743205137216792501756305163057956071806815963681391789117081527324630367568770622859364762040652897581462141549984125403890128918083361162452185895429647933146972800435403280949611265845017165763518707811837370190627349677024780428893395992907156934678945107453050957456055134221496495554254919508834521909792969790757629098651559036895978133810754188128790128397658778168866124223257402108719250746180104547560261266409801168328973487425384680685595066987796543137715898135507603178058435774523059083423611189181982439667117079016933774372488195637000738625863538181584479680647413314812376817156058874995418270895381779449405844964405133063298532885514709074142496887011786234039312429859778218804063651784560220666468171053993939379214810056012839068612244037311397971414586066892814296485865908781261661761400897498645904408887970044141595893217649367257694882175950106220606205145504429115396166907912488243032489379487692677374657612020096807422209821011580646350531538818301929697434298409825400707253304001519417258471374044885888495574995165341519920101575748808340751940829253912353358112638902236256781870919181727219810555189934291746948991270381523062012696400045928480409612689555621027976936410269641299687062462434335149052228754270014407179038937250786779777992756850043675482338439673543827633005928277651435882624108715141181101499579081093993166471463592056459490539625360529395418381988505222825795474735743273982821549050587462549033679167276246482680075686878730550566359257003760906681166322652470292215112875864279101831349012924315949621029359298847011821091852268845193629503379607617411587111893953757806058984924759840744440089982422450756853941434812419113616217627480730876458888024005255979093644765376530030788597681258607180189031816842362780918590822940981041964313508194675171662007928110204403930445554097484754585532143521775877955087919759388770046566357002921433962837972014546141634761320631032237983277071182132112930483525362119410242688892138208103499318530442997178389783670655949636993272610976140216552768026078497933391697196575754593443137853975660196822337047196082286418966586200435303153565395180851862839147035942500886826937683876008623391888941514637924212170160959165677763390143161508307725293633938496621286445539476798842198035592564210527603532337858207511764724255782390766070974241926713044958956155661801861229004991733028232988294154947651861550022309670038521392185704943172789924435660137052983093382526919565465317810493722199853619778114134404878291420695147635816418280330510005956148958255178798170213463404286862449798190289086584632600109831707285759115856910677743573037610943807532677851219240322949785084822925416047094318951609301773825057478006529652499636621608101281722185184147530525098436482186769652997501303860211209036637060313360186765730888184865520282682760055028511237941061960673708343131753817652737626499719871817231159406109731596288476548234810081362920545805232896491787379227358131183050103945015141937910358456980104327644502606161686725419081885653633122065031472753270395185773832561207147769045535999347459489586964769711695501797667740055602289784464434029481246734668226446304424756060908605715987261318033729437996495641391133278402846116150757362328690807941798641832670346714077342812233285791756027703180317964132378614030349215523927988584536286557249399352008045369876368738321706105094558301715832008505744767655679599723932965274102631041187515032201576960666224628294469504018699035174044312079628665859060469712363263860847607270632161448572563597234158980517955053375325744561491416807519382666571571993276770325984238429195304683689374260912170936211264478939026839232538806993110269948309231018479134362961393444815036658057904651206854541515627116888320153485568065688482265873964034611486685474556402883874193609408263998958896340814971000005613513763609836526599186387081510662737512311683695368022796842822199198458906657114204687821261617959829092891324570059045829095020416966027716567891572437174348358611686833956858363014198149733506117953315524906069322767508975647947962896040222926882709045254285477392256896936508308807521849493610074225841390108161255698646671717179855907881473070689523523039209463930742957945723219851332042394561332053045528409801799999886861389049502126990465566240762767042285529301610561591389889166040857224799920307613844960555791143003836951878875012590133413798672941335823736510937936073834576807496413277700283243064786653727407863749036276243315022102815274058876738834221391898356572360070411556512280653230208299617457300083900856727872058209467991257825025646638090375729218712991163988628985150529537838370617603934136984309531412224814479253715903131048019708327369698649509569182428800487173078308989216189154211873149996609904170992621770038377886377729449990771044041753619410742140020733358482561349666691310860601385340970248082409854960444290992979424530873748364890697484039737860204343607673872848313855285892065695122761789503864855762256165313589785756044834543001726893024790415158589170746775366204828116694313858052490400549068787510967377817928769523915213197254949371213856107730724054094868583104400427763428944231278939621035537923277809914655797294141307965568371549676343756646431845110811993810176404122581052132178581585860966678917514814701398176035255450669729543945458605893747152432097552363820090226155421785924493795961207163651559248239298029448584900482712181672883127450601076155440601474635489275973806188600849366103185688724300144677429729930271532773624884175085699281254481375964141694917936153162606775772549646310571234472131284351884430807191521874028238182816796064802848070441041080097705279717509814533030278159813589144583100993708672802608971417809698780448659998069669316519298182794484507616308292108732351589135293431114968021444974442618404474081797714771927240519919206860011258810351631054451641561754754338884456264787413174255371610284811455310565991220205619976978581556291446621426881280568818261462889458745688208043891375091502638359270057609323258584194466843613873278980518168190787859418352444776470735009588933674775035188056345069894629623303574342700242520739568684956554162193166712668104913452790826624225003615907675737561916886958838868091118555628882167362496229194175397659333954257350962084480197661358339230899393670079647569714856097431188006398486215589842702414081313723879120936013100839270688265268452915714838151097487827507964533408627026899786407487825947986117516974620528749532079184384360933902510805217642304291182618968176407330475187039819762754056904102771268174887565270296757252483818235923984806945032625526041917989537310114563740047440045793999193705170153313002712583668750286009072162151848668974923599529066928211390357697326413580341190733022674523110121282744945304188571557088363341555411638821447470923574193688091989897557998191818612850951014909860072753631909925211818483387294692226866988817769883604671468386713437327154159536873182933962490587031068455244008485973295587158805927772551302662337667511476886362790872579733757939815067963462274369594387242150014554957514954492807354585079364228178728709223283747546479344535289100221352586185575340554206382154197639159368764340064010049934505480225943148182968439084214488396474437819381209745674674948053951445258232650167581055762317549972065068473381226390270788400026498131493253433415793892199272743680950418619817672340766922353220821784938202239569063390115449582465653996887874291129625816619091232997924076755132900841161626469278588997172101776319320270137821676365338419039112342831048761120196358536759793036843199392021340976278135783402178687435990029965845810988096258329859496458135427698508429045870887937199564139190168875846269915176117024265788264956729150338540456918730309305282567487327207572678856572861279880144099437851380958084921836769940899534401293767909202989586735894387526462665091753908167537416664680269441414948569930714474563415080060282020145773514750919500923997134929376039591289869282466836256790111522233006744549816895882836018082015064651160667565496926936214477065590855332834788678480919227412114393588499682961302606387320642741561767823792642798751719251702582069996926039234244922979045135462821579136891899631610980196471890175780375036086860699329000807310229329088801874032452813639115841293962662878069734746415180891259127513598535276875819194060460553828684655349759073311115865604036076005301020992617937282325676635207233535335714110676675059324809025945951710172350119054988807587001467128790879817462653909933425788868720047408250977920931158029676854835611601138843219774649646864381055536787735956851794765565292872390137873358968107378686378106984252000290954814857955114129382592686210671857167180968779818954356613014417701547534124843455908138746827763030602975385960415981308950572694904109267403962732750915014959229340967042254757432667484804977959837294978139785682658929962241702872867087146459647944123648154534042134080864190814019236725205177954356495881455826488777273546101888140071437113410761769542437461958488114267326664845857768135879001318459798281895923808665555455127835041892044693043655311612487582900142153382572481074726340636265081969867445195550950191002047801976954290596607502082437635551891108065744141659163465685007366361164492467740090404812917211289055344486535045250996838574856281083393463802941288037270993328975643500635464524732676136318329081920969024537496255311967430371656196058232551606817638120643483687013342335284599120045320795841937543662753597912174203912016152036233489582058871562069886042301841883851670715764302372855449864783383779120699698010083963485360252964697485625594555434449367423775738473226682268821727135968065551933458942777704623792831130452962577932743412183638359640885231787378313711031417437895269876328619510495185060263435183235948677512669372536926089587325467258785879073556049914804876055229125705112385967021991751217107849451773033133117909621096031323929904131601172187084707071404059845373570384488439085804837182282554777196668584494193688652233480437983476515047894706414469000074680581773926643504787673130639355296199842852448822435648723031191505232410290681586068254358370633391871898606693167594850674053393840022783694804383274147950838509848319697005592832239842137787952650105269928428408185490494106064379390297987920179519000018908743263196876932417811029560165170881633373461384512210847759088828527990289876231644021489872453737371210620380246327599075917120742840386114313964348139088737748148791484761567464920431953869160564199051014261645513208027645994610934536892656752331251783826870509589100203492718725296205823236998445015377724339544558475720443535970186770121839162721796750770380772501861087058497971850331797322538812813398844850406377041803995758351890902542849268907687631634646101358204567657565394133438782412964681477002204938393000845768866275221495907181163917477340530068574657848912640230494240098397377570191094838883535185612793609991384081519371236495832432313352494654600842179255818833851907268408269812232933796326371447541568515151336601792361866213648106353935010215905296725375710008682793676477489752056429523331503470249629406681845455692729485016610276728122576733096288201338314659391259174118298851208322565680027230015423000197463915585050701134926956691357875057124924287258977289085465197303002856717988382895553287169597688474393422753111687773794768772017681655921954571185287144186408571493137819855717292193953519199607930107690709623571091377904476918731326102366029990765534385138294503294104925944648220417857497069507847390067616198112264812872596627016014183283545221370531674920752937262091572555317547046044889896604123070803881918392931674441648981773979141870058607324440388287976693608103710094336260366216311331769817806505020497195164102821592857601899802390766551206196978929710987095937365847210089719917731351789100224986427325911173376716564518890873345042517705631162746461474116083472672727618911252915152536136243527777859602962864381843645046711896170816520216878853297380055506979262379719481886856297568032000018288032283502266332608559866827692959390038633619740679128503970273290612155301627735312936851323305519365014151522416557181424855731407605336803497974614850770693883241811649548694428531129925132142082649721799869851469453952468034220500135667500929260880221690858146368315085846122599191401829424918779148368679734511975065090431362151866847075924408733799397506382076878274418642730987905486321764079383998587915268992018734626097395050654306612167861573005028095708060003818292234983577050146270050145866109900521343307991453649482297981322994344489048077781857101805186767519413264726938560080112819843009616456831757778080616148719112499725164141420574628732890214104305108090717932085560027255423038794458710307145254093682451744448311958014556141236328998486714213413427529440621428435660004276621858640449824235936838205332104672363068134996704919670249913803872080377733685486387500931356178068601773093000926759354265055698876749106044179589923883075226326546828607238026544489364121575361244531931300170098632396273043555092337499608183466369174957527144143995483941950422595032915318439057287718873457195843118105095318011004095850156697382226919043298335892847682419085073689689714122161675060623450065300170172457760841505159156742851078889519005164519931209377753769998123894074820082493230871487420087442912136089824256039956611747197156271843841299734544668554158051328021076517984964486072907706070765613069065400002146356425685924047920180522628877463487529725706000182659422070517959224195062683622781889046073848305259074018448530575595624585097967215567526906934440136592783964404996362178294570064687963051176395812040814170064704603066033234654148069115581468615277844644765702942026215415209261324635060854138655691994446136992545807713669876485365782128807193201984940303624130487700847470513536588479940209106188196367809622536084519736619298689380856665423353608076886915931786299172142777647678965722955999949390241534080767025353227343246997720033286922244168645138903235473843267231491815697805866223737872217153490433418425176438703017373340174299921504199258202185806632105026290814197454488002217124480971645112388061274101044266406565039333072048442865058906739348564029993849722036033405431649656085730329709566130181973615505920947613517047861872247849077533161287921308304410637460129563874870303064265089578461348328809258651636233439758399178998891358180189884987392575384612215445889056860454023591128760274759605718089611469362864487394718949694879900592009773428212095632032517698575342029473940830022008151296932021297649208863204158473010538948324936209540579376942315293019502851860219389448357845777261892963716840172825487614013072590266498814908570023633171288560107035416104583744734716143305856935212213760451403160451948176638884501402422179389679101756518065999012029513976419510876540478229386576397513618781149950821871090838630374503447073780826761008499972611364386972308096675834879368801623278612632223783997478943254998039632620582637978644725584479953207999134355260121502827690754862791890982162126914825357123407816559704572348541654810055092022362405614300071925422076831225159466861123823359519430301100252236999408152457545933593564767412997654356097382460418741844248873830413434723809894534999714038964109575886745150674003291325174216793230393319284675414763533352568649935394500149417126586961387367867618121298424803634793774822709471276283122495165333273656940390846632897491649656014161277579653329328682849712266584118986436775945294074612634856882304941427582529437799751011596066989328745849787332583165378481281456581549776061378536021825879762772331068703716989349207351006376985388344107340226491185368505685456670375830471644933720608887137757652134895072694105622634922492257584932946489324226763876477455560813639123064609216583844786191246450705833059711368632761242908177314270947161385810130458572102060989297903795176002741367609314934567596203138133362523055329854536343612377428669074316643788795421135495443049181790337028210887347238010850834822862422140826239989341338806724657890575016103515928624961451326344545157437964459552564670448460735815258045960300004457037758141376218420121204171935642569131417853852686552865128771009019500610643120035584965640306013413797767200606451913739898865745129089120613291342088379478873055585699498991804960899354049193689245047149251406433711870924202826613750119085664889420988635388510077936929639245221366017574790676644218693196789769945040122254832790854152334489088233987127140654776561727769786531354904329832896154938609621652892385056587011409160795767846662310932442381907081227628130282202023835372458947159937328882023936426830854920722727191924621083657253731722419915972102092114216099507396832701461783455217237006359869801131243595616561511052163515426050363061269553546507220764083466724506836572175463000303122207389368094623648493996595818793647832488789030751462454803314584944144403965876125035021747873883059759717998551276033733397437100464039360434746523525657286931258978825035536550502419928835162272814272110211772839809173415836019557960910011847971165896706068982955548071206922055228044584721251837857717007533874841725989256074528741133065773601273386467368481971179489283317423842615859696908968473847565230760442319339501395774046723383157045992537191054296933809276364960835590830145963482097802138961579709208571388273653841491549758803185187068282720888971544252336510298961404174828246445050388935784641307474312232181486083265752975121764549025545922041888200661905727743332779171406047279312399066456681439617548651995867602155162264730721298957694010717419279772250544275333556886566639849306841714648860441762496396117337739322443790380266634342774366520119639112457567285782809123894977068179386167646022171675269061806178689461329976047818505100499830110432315139943087880422217946747057715389843738915506655455127958851112457260710274474830543323668182306218539071040579401929252756927791284468413176413370935154682531444835865965101371565405708881718967748169786684397807349204878188306266785389498293403439220718469921488491206784693876136100837294797102921315959908333530883589237752121863974520401292264080931185686326338069628639739018613771577882687815926079268702226840649760423254694125765565173582378988826696582811839655765948063308304651848985217317874432212137787466604111064496846257056622766120623243701679252960143332854986639903199054007573035628783061889267011703636854744927665670265565569797962700934248085405440552167112854273495198306940221361032726741188441192360567203505362629321923637703107795509010703280003551251986401149542590900083322666906993177551488311624655830567391648064305055727424448566343275449249958038908847846001621814996654001309252024128425823529759514991536279013525930947811686204488202318537439310034405165440916457549911723425930129761910196147472473530611895578921081844963333556281993912849418412736988220133004154784056048852385965147375337142668558386837230127698721245110480876252455251085788921544170497702753760900415133113259272361749757027873450083619324157275905643599646079547759658208856487512967170726134489200915158099933761243177581246332075232381139661859157923506743179093962264117149758721991599095022103863073845841006730394532940403341122499858638024426478465207141631011147742028732847788829750259895672344368739376444334403127450654083263779407548059982112935338896174692389015229374033809608744878903982991026642883854373913366813412190199585301727917884890764237090075729706812634182857700382091772765653202642991546439343595857711644761293039506055338474355939449952468597543783745478278759410643338599475683880169044097771614202206120000257913320536616274828392951978092457314854234293711429618783779330423667664699137706468824539116757712209457697759948182100056987588779431855023386391421089287394410393702273790680480185932781095715266948389659686835407512740358584848075880755128736749352214459345047352965941135755621346054236273252387824349365815633264835554206041895781662890923542360327362393613490906190823984364509517030543974238055390912111023702273950870756702356000053443804764506719166114559972753157169698020460064482365127385638122021609070397465818609334586651542821626562515595984570088165171271012486975689421405027253040688033376565962711172423975945251390281991086173385859617433306645837660124410715045536681289957809997511294008858590032327809969990103045748337101207674134936432036204622974044547098756417250269886530403915701857173787137376853531984427687556487229999061708690002183110642852832812945819811710037043061944227321356982154643245125198593080481866555338122352442557216454503226362622533447017732002970077728841917431186157087601476967031714005571795120435177983947601254079341402085712278961023022369653020235705505094243357045609681890227744100928121365662979228252291888715205620233007866083532387658344115998561933529537398531982710487266520153877084531883765404525327045913530021723050494301005551689361627103750025562952392176542567165915880227448674766424310715266006258472527032855525695707411296420916634322194102968620962272871026196270886543839094897467294423109033217028929928490038915475405479548092285007140175173126403813794615199137518758296274083313819496015813241960960213046564694180199127690131810501658444910687160221554497955788138653243388248886501003327816742960658372993703445103638076770277259905464688595388759874257749335245021734975417332172261489420763096743490313504581894420212594827702892230611505212997420966270917504089046511017984043108469911606938356376858874571796638841089312917514299436601236837080983208471304397040379843701590548233140233980136555524586309734888928159220209555521905999804024378304160396284918129514130555479314282634796495771297681526434257228647633713982129430092530012640790655637628252149142163425661062323173764601959669553424341345291891950630652751039790501546992581354256789813997425234183792144304724343792720247735059386975419583952623689837622668506364978844972196568436310044417250759611721544123586913907664009493622839487958837831594221214228064927379574454894699759489495057851103999097278270634445184403191141912726859115144617453520071383533098462264545020618965421232428609904320619870204544743103809473758935375677875951246085763866330795427885875262593210912981022872295009814539223632011615003735143439070144576006692884548385901138896121503648889465043284070596057306159592021822882445029523867531413500194870448357320662951854259750815562528326947940702001935827656150434705224851505997961807982254601501599933805671859957618476051245855209462435960709302078823085472615864332150527431292968998357955131900553600380133560350290435321496399666071726604002535336357856209658263222083787910221765498480496478902298592293300143805043652565096509283647998411292827466121864018847379599561842805487409311963739681454068551577162602236417224542875666716118012537719472049897421562148419685186453469751523119535549420308806842016865450008297196925731415567643256255570807221683754624264997692501770834449052202309614747287137413293263177028108159566717926986638832148835653398983262447007098914542571405439614625929003381324880162726441277096406464597518676403817231037641168297588723719350612433560697260709302577246375201758872761486172653606307000461491281242263434291851169016348776119585017420427108021263059665351670193692188643079551324751101390492844496877028539584817121869499589135271158878231979906295954134684214635244841925184537977134129173892987063198649919446659741098310692944146756476352383753832507455943591393283543095194940966243673472591042488919412734575472192836531705471926673625012851040376390212788189491503051744631057534419188567433755998830144647714121298659328146249053229880422889392629858347649166470523544909362428995009261964596293168426149215858037140491317993754636255002628946277033945678180937603757773327145931995661200115959291441218278944977549563255365066562063849492781912185547994389808889334257643259231739655358963116948010016977484270229527141016506065208914478352499277334150663924495233385677358257210495059442993723216233757696687200321040132727877955889894382242928354509701719161054123543833866663214418158774520810522134076853020357114034785719819029363688344125489346273879385425087148844825750896615247744428397699537657919132145659858163005195796379941296332482392004449684297747823834323812215082000133079184741455731551858354614984835657343751594047874615255915345760473249547952145816016499637548619119261625640123922210542513498891489453130749586076781731784065391119756714486148917454881016013663655614515761450506641835163505710240829387429507931026488224094979396217012130014104279744683387763203306305510025565815546379991511969195828315995856711890877379963151533111858633931993933489479239900788631478773646480181389277402253681742328127069345169889763128488062833141392095679270711902695942851656852781655478239788762851382427355621836247134067969336960050223166387441981741708972320788078290799459609497926702413560959294929202245258148101449400436265287221859762544922666178938553613329432287909670219696462197395878212709649080863944941497970460144680806324787332509840715878498746195865178899936635946500580996078090572487826508475879293255406266885889117734309034024187824869731277825625114073230403706302636349678419167262592375698945624031907069468623738488987673795599739495655085143027800662133525875408070275326102519476258800898955975252720181114924692856710359952446024995334460679118295053100835680139935436314176815058616699713348461962038636916022168835107745883417589745348349575721626343098259569514214445755992481896276226453050442107819433219488992367036463841794318995937326495130349726790809412979782856048753842779030997564042994553172826755490420469104129650939781997729347852530504212145421893829753368359585011202000653949652227859857157342879586195035702624435399699990328828446315572761945271790179248695226679654876615195523577321474379059520979981233303815419857553332676921913244627628155707280841085210258164500128229013677734245358964568770459312013187319047602417999957907723194205063004392410543850602220784645051723152037773220196159422938664629211411056994129946348559304216252802529971320059504865981583771143126358420886872305081617199780922040182590109234851568751974473900421526851615807750134933099538495593052781313934551246679578917706909275677184807322188079488423564968198137986079421998393885980216291765163044640258370647484993056563414486499616967867096799868952744800133635420818261404633547981815542989773721857409344949660330130397223113357163721405440433387421089395180631336953720497914740303660233204309965285147866585308545724307249690274582476934712875489048066457070717853199256380719119668274026800903239605906341050045018558627476223928314726369754268881055540334103410194251077248336518611894725706886781347392245950706408545587218710949260744178539438152323073237265993213502561306288747780009958536583652803924499205450457194982371245490950773717570825379519594568772102851341324283020528151298935325439485874599504668556247195203131057474074549178406853180623091673965656962323292254677435355046437182514124702965644189999843575307184191449335277447333998680737545496123810208844643114766171411385551694370567094631002618602888653612788089959949261937979025882823448754785460049901551778523912779442872760931887400936458282291908909554559606048937833946255170818850475155765409017302942451022524865669368447309336190478584285158525172314068857879177078153621769091474859783353270947738989027141107052526826057608119973443974869912644070065934369949173670228462719992709265873472433816680611304541053023750250378196364012630939673435495413963454739962329680438559776841270811304789745143849251002726857891452253473788069163455754519071277934317478302649790217458425837203272128135131992139834957114318063039303707140889901056081672245687936342213171282769821972300681057861283566477334477144152877486404399527502758105487955899702073226181053995617188377533409301742684008047655965486691862124674288850091192515085215545313405207566915494862836256098728365330909070393106037613238115990963099287959459530506710175339024413517466530879002455774621818720916979735807478119800213032508052475298875379436780984889087142065919268180332823263198654881630329006475145460640633072843282735841992855426858581621959479726761153848067752534369958403793743136165174636540744600334316977568566934805278324783883229860880664918070719081586460296115608717754446079956989099837883802383110428428796871615723581864214084685727214094356887055226824604072021891515811528788365937418281201809527851225680001017066032321834475260057805891173790892616529176358919505434521565954600529399127544739789958871072773207438737976897152817898462368701438921205371062935833325767462886700864857992586348385021475638940414783709848205135274326489566207695442173280297672028643137050556085002502249664425899484286015090130164142303524373991981411323764049136887784027270512707156098912028896768677512120007799490398326574218365333439081715672029148928251026737100963589136974601214441321609791957666718365442949038688939782390506054900777049233347073669798302701209844813349542008446249864829489647940007576634551851552482973082308182200642372373767762020213019717207166533731210741400353136877528890929973550951113940490512525543256334077771692638862397512318214704886226988495700640138797804403954836264040006754464064253472732374863754033259807108383869690496132739838774345756535143968381559350278470253258476302921481824911316562408681902534643087207337466008194021155343372698768016712841601977652965668493014414121496730484295840437866947844022491681480676648736331465369649921043806089509575911630475597555136695412906195068610399287392195060321072422940449990778977471219492134661506604924697051428390999098761875223742120206534726551012928109903404920119243842443193789680729270928967462707913670171858203153536284932393260653297731589543952075979431671015444532040338213437300626753402986069154799675356743212046713969324784248935187436257139183347232255027244252016742344456652782408911121956946509719193562972288471223158011879238700614389623708655558473923254321476388256157152128180190275243192100026297532817583369176929207052650022071235592105635603269221527437845487411331949019955348237636508037953890937600672643139135721548884010049702164487973648674183304512364888330662718472324647733112153002499325914053880573166608912321050947287934673870823532761964569112541395222923777972776643598293728793975954236750268035403575509801353483236164408565872228272168485882706513050091622962550566731773770795960037588731257261589071202849606855215501722980580417721150965490493674056707535369844930756348379859723942406909087318149047683162729539014676051107488834015480135221417551707072598320501232850934805949055611880224135971464563124182289744625386010493544213477367091089644466980363765188887715393552453588491062335741385578502146766750256444616831089288900205447026509342493413459811931499003666393193167396906542107932541995447066374218972532597102310683271434627394283516511146377513551946759580046828641643269930781783911828170160179736817137007607396364045197164237278622697134292403036519020885033949670654377419033947073772682698806598858582751880152953967595698868728222482172413150106621222010321283876765329041042081714908746706724543783602784603921221296757025953086609923677879240845176822015652623096582939250003831481802553982869708193578756565551675794562389537188609773623373227463847778380022961253494538905969818017758337787528077622871903979634865087558284232480912809618801063883605492558221297024349120184663562839499181487765783835792241791988298010182228375198621109711303684982695636086887619413670656166819495465026710754029726252692249599671113428733723294382907626065595852533650564414078067572704127231903458904293336912654229395222342901951246527495429592779180175504479725485607495418545685831335147627708587286997047870963910907914013107585740825943416411759987184341739149354457143813287885882979508506339756733278206552674419526904867097764374764206640558949037387831793446917869618916979335535921645600571532797255098510937107019807538940352319884793587024502802598769925131838539997769324036110354402644852377765108214607484320472980567267633632130650478327623187445602077487576431931746702249040019460003429146118418759317349377297505006878675097642658855189723011440821591440165015685086255772091983116486778520137914551025618236844114418141667639630893228731507773161140856936422888188501827661300721971645219625953360701754374464990210501438871026025849598031327164957893702533856538290825664314447967542842023460425577624018154846216599338943434880232020992452841410572676553419768130244427116402845883388160239459159559065824548758672403810219433681517132064772323975107807405874570365395068733308967472159170297452724865654858909096055722692335464092287333637197647593438374919943476091944021517364931128876736153516328971635634973245205150796772212277488033752562314991034596556423294358974764353535926341640483523102892078872848044145394659420972970734986910482112194786280127409162091105995174933286213995886768545192539806142957980725502319794649350015177828245170224072043452184329509085344649855823140375100120182884416323025082394025712909669846802708341393246169316086224739001671919501832043508291356153590381417021642702879076547125254341214139678247176345944887178129645151765603221492285861711443701067442269077310732870705529430033791046691282226167568462746716506429313635624414523339270662725679818275607491033969083152557887933461530106870711184013186364247336163450366653377902786087932895851468297816832189703660149204597015137423625490694801240540487199921035677965576369318079208617064895856278684843192041119620186238357727010137384982942643407567877410871728320992416762471825710677778544759488850342474987575649513807323562395109845857246066626470720154301728067707499918001656805727332115217104975834126411474727157724278335212154306892083375109316661539560007156416706349735692609035387551492883058564465278234735156816473169848027283529943542712427066415605331376516378283683107152833406020491805380523554153602102441709731489223065931894869650789116480374924975561503614399435843651883972041027474863404651654132448041841643720929052444359125722885525003702974078596431067762895132905237989594031097525127991481003013187201788870980616626738343953185413721897581801898949914955458034173720228582703207195928117281100138320185218360115881356612153006994934713884318167593517763845230472719859428598878873886602802811229491882338426720877315111188880319075544982583483331981065849242571861844780060837176284509531986642073043040139147246272598049531915682731282260093410005863769040147264427842208143047381849544131562306732286549755100508561894184628663347945161353689874873670046821919977876355455975525471864088308434430041058786648820847821396385988642840466658037913933600180800887094335196467592048389054387722323679566572050609643422950967618433285494322259168084985235749121041635645835457558603887879331408709116298712863038599594281415036797100195531636893306422414328807883705665907839048320670407538683234214272399492427634268732216360711363500964007086697394360701900002034437117920598572577801720533723859971086788831192606569360361604391263135172391734625571047653611898455671857506334369039666700994541103553766720460601407672358573278039460953438534817947069347707828452730051716247593640182932341444027190194067024370488937954535977918316288270108029726740838414123188062281332620932972168397444413060098341031429983895357540267096913649377630430597293178034709063187828590994653894176782519025855284714766459763546263295076504379334714809574357656695262242432224124409949256503998053849080551507915309921320967282645586523983654951639239178830219359638456285038655601814175652730259076056469912338483142634972025109567700088698720469269593968045580289026852838694361982425814528719667827953628267079792149795180341394933045679324354737408366016087199720211148572335729266512151617123984064377471149972646427413740221324699601833496172852172570475172507606551621971615064106704192658784456722442040322362347381854045094232935120796300983443336826161883076298877556723670044027297230800588474109117893392003642436255910381206972779932297522146112410760794422728990014496731907176536694518550366002637331634668116790484727627393294319857868128064733692401494829367283375280521950706658383561495079188528046750589178712315834365902792185339918655809933462417429077342524933800874796923688879941467916579982663105988746084403361114507207522114632168894525185663046887566371612774030666686326478530662545242168281789572178282846476807995342569128506579843434626638450282522164015073168101341090369498472224654323049223564250970339498111586363750479946408485108652842813121180713201803075586720126094479729350738090086240153577807272067135305322664199158437434285230239209991170460406797929269930623745548418334321776875166023567325477236279052227760155041047364740325686279437645357006857712834962034274829277701908102506930531157056616139780955116161669963918878150794546779390198813155981295651794256724289356701905780484091138333591127820815155779268023500457510638488066812857965217965203190971418229133036476712054790123019744151544987299200643945484882315133439877666934747371763916825799160355690629253309738193699060011384420821307632527845845161821825850157499915751041493936436873843189328556103358202923060944838122509500850688374830846317283715774560155484057195693383944326381053293959642660638464804895152697582807435076925284485930457884483129240973594979693831220038726700512488865933497709375225438523840442073967219968260206477605830548959107184482241071693968179695524942585951963042794178131088035236530105583354729649991919975844197179591957635581724503212330405688485960286472709240856415920590395372409376196780748734918393206816466606174183378025336137683580327851717510783201474010666841717335738002959569499986064806782149854651917522248429937683210428501579841739452027119174815318353860276980593419236252384055784618443256150053893847217157531410350534152375699317520014543839612803695565761037428828146367250944352749866686046397767123643557032687224895635296104442822195086616947106101036353425043144984595481265455986968776326917365505791175571413801818430081603138398561770210672148585685327745541792956376184739500870409350972606679119072998776802917830484685428410751082724858189525465996248462797105980901392151699325803328717596036629515773609642365424972574530889704327614324125919946444102144825761394103558323398541028565272738780972428853607959997496035463914296129303770545092981164201442204976216628583551308523802817713381163408294957075838670293391941140118036863313099942461330851307937443831344235274186592562358783341261967519190864639462693837607384729536455742828403265822711276936242918750057399259109660998298512550211037134024751226429663194442450453318503457447986582227503674100555242748149970972737693562928671045440312564179007394054498505189819731651828342904799820243962958579906247865313197778610925638736139873794616044359412634186714781762392357711601499869324439160345270472661426996220789031034056991805340406487325986297060211679417055386818871753510218483461677064781051677795879742215612612331426987990645083285070771850921252225807849864671193749190887179934595329033565218235494322668236770257125113592963411194105708136894764544181983574680774131932183047835883240658512582208365252668742533837711604874880045979525829024980707632637901625178713068257711033647197649719118219333188104209532707050561191972018448955973616821208932114250179920984622796285331030452698960514551239099785380659361410943529388437827704773143363215355087078954274256833302375539570027631191394533546690167816531604996429327718644822992854910790597018130129503756485336684858853438947620023815426731599303086378202512366445601459472699548152654647485165759109619088414425609869300633676599020535203702336385047918069382392232538279940125343084191292777458501863545993979488198916708940195052567496517623570780768829304263508522167404976564300683832744458166048365506460029256051856436992614548619269430513081850721908520183658065979105657985771942855495322414811091303181947442076145800214770541725816841917371393094472508021297419506311217579103673221669262055380817614627393266327835482638254202613849027814149109637496288314975812542900202928254599669629977867176877044491777000712151786463578033169335319533393278596476361252767226721685020638793120292154436880087654409463669962191909809670426785014237167159899331059163334196317620747878057222107364783949588506347919933573061565155097803227107088644970558123185280403915900737737050162778417741313732712949889559786573657578659459430056217027880052968924585539768278454521095574757971733944012857388240840844748049790049205087191847241099840577645634459394409956027942206583705070294743603017719718898105260939897624766486454688367546827493269634866608319947228987816598135255308202927121170630990656916455561670761197179858141134932191510301019577828632904788807361378305095830640157174169514069819652295994753369942636380960545345334475142545370216909275831334499120377155642302269696250729846114461815807621330345919208797571601207761657406170483267958359003259377917214855457840247191196452169664218984458398007740741572817850691888848329212299416572602694650565395460454720286635483456333494143575894902004363867961030978143987841714962678396247211025615138575477181096816888866716208839164369739365554739930752440593581034996082388741732863056417284130183060587375173408962349817620930204781424180732609271719540267072096366906137009001527236430088611809346110301295333541493321512595072165737627779067081080072839489029084728934065140928643231760041789657376556163510396800091647938704385559143012265006575894683728004531323772874317126888024045434246379533133038024603269789904275407631150006619220852610079614216459010391810665342845552131725679671764817491012289893195655884854770233754667049963888731819826461038199584937556159864744670989408208450573857396553091827949719201511226708658125741796513415314509754793611577648035318419104378085572151224088148075705211597006733386042693821899531715961078767512615529582916639319225315433443009725392633249823642685610294117848926576690788699634207484515865376847511525882011498260966523344768239638379783079909418464933610788100530210982232452316399634776545060515530901846261530141362025704080320708193078406795243873618237627763666444004778703069491208783933237541876541453283746487623761424202134329932984934149515196328949344065505277914707239337534386752695361762291346984596880658807760069229341496068536411284200419358103536605277750618527345056475799422854502234054608973507160661491493197891769796553572689002710262162037762574878970353083206258056984175128965566158118342576569939696568418201446429390315496117149653175337816890100435924269003382642507527825057188708264807554263767280457054328808611265181657239972349356982324180853343869179643935610422430283556039820519641940355199776855926849134075458428631685639856325145791571252678272203208018282866680107163052763953059607859059185410402058331698376619987589466455944480713125529093331549602530706105708098578667791100263249781686069147832109967106663339597000436879876909340259963868211347223864138104475110221133566540105734286194136461811399078829572969918137967509723980997133562063465507136513046357659568322514255455137990155998415656121935295766812455672440199521272840333187013395471313977639488783157868512488388891601252439382538249545085086536526988309268791140081091307482539248661687092878578375844252811258019105866196266794338019119026040992209979795300168283328688856148841212073493723022259614089241159399034743449954561341150667776417697611276869837343674378947634843396350394989097598721738321586109538504397476799620029082156398294630871638734748444459512028155953819517614799467915165455457576168939855137003120036437221957377762875357315359747567806859508772014062363351653841125823432909464091539765135033575334775787751647295117687207439489997879881143466965856592023639922198790004008587696411324651159666498873271025914006012985899412440326523163249360208203866583982147845905499471425103206821112139077781475523187228409540180632213386769714704751209768260501681684064393906696718892380717407628905308036751313767404698207824736790924366217924570379806170125565276518537913066540927184687142801526813403578703390347535959726327194852314852577710124736213298489292036109890017330861843116865187339006599414388412737929190281163306628717016284050191447245149158336190856452408701640698273588308311818647862514717057493476145843552371173766929259381823427950686805012179380728437045338493470305014105522567534005188107147917716175185544603371958660940993388198767206656774653517640528671497088469339357899530491488606866386016647747877982623859591176475047865659067422898261624760309616567515901869163212780733727922459220530400225195617818821748101574989910610408024067918982643781670218587242349703937333387527508836435042385072060022353895312782351768978465444148854776624408181190749482083611026963382212611377874239814045643380971221699648409282094178570359150172979883483185075785971480310457058091877986822017129317231025408595553348232027034875252910930274397868168990679015971034253978971797843109475967454687295437407492788854077099588160275138239691335349705416764360324095404013979115386795230400255145220347046864321483519800417806703316358228061507307249311451683163679886055519168829241358773559747178210030804808389568516453096657499283003313758053157354601316215999175766859844800394940069075376443825307140820694219272439223781625196632784738548165891024020560715657921151169757761804422382675188149915547334623193492258520323412704982048675330612516007809704193461024809678432781639380516672645538823743014596902578878270133334283845403763952502270921672705722381359220008065190866584643483180197902358662356466945744459382714608017405464573158310893129787503602019826611302658427374580433033985078397870932461508662649425710154356142652694280479927411950998693579341569722596278447579241101046511556750219400346297971903599442443455310798662080218572335112022713241314701952950158322368561368234179241810959347749110646342812548052268472467821141979457486508901546078658976956412704945593784785949297560528502055207873942687249312436086991997877050541209906352737709465303336731178904757083211812386047519756816313967832513966519225497555510046284713304800434066850968300545728746202956042048560046496170390112979662773558685502542731949249383465111121642607263487587119263470125049895647416613629238229448865636432029185356683404185782522525012232598638670311062109639704090865508121317252192332366449321218995701543661937421537453726383531635312588089390245432894928640538786091830557689984224950787767321716054556986829993929634585702785930575584413682948334226742646518288865824582275114476349885171154913914308709861009335928967231251991890480855077441224133097751913798367513704161151799071861919338617365131154878834565278982919600078132317258485254233512718152719868304711879463448974333505283118274670531251808044069841817355296271056235563599437196631727070120136485490683099424937195638447056950032672538608379182641319890872898004979143372510970271505601517517898182493704658493830468286977899259377028299743167771022751872538053264843426792259410046466972726388669293156898347728227047799027187022988823189454594308691845394932301768748103280647585484166126596691243020156265717568298068318247656234423253162358562508309909075123912832846096508789703004465807028910863319478516923849496626758633270364400339721127290246784873700930629163460201448403909081461252818296317422142563758535107190738574054346696282108443251351189301568980977981075404813441233595070581226272453570445161079184044607467678307225212661392605659746731166656112880389257283949893591689571295121993181290414557347392925610930594754602937858445733724033147506176683054413707033799337764122528880818540479858405164666273742179250306153544620461882756940636485845056414302353549511715825450947081730267065803609955919461630490596537117936357550761090843636021889160899427943394264445989040945497799528953149938244867811101465609154230064545216573045961234902050418971980193618870019867139219430709748803521427154682200432862411674576151486832969397019797411032523825391729542588994060397978479735408271693065545902603984417566818291330832392985632167363643898969370243585638208847413539182541012308558275926876922801781221873787568732822780480982670273973008680149173136341444977360192403522566011952261876837750082334589165209455415883234852749931092434610739486472497418314143844623239446843179942599704778568990209789510099233291906389415456043245899929031292896440286383705624810380266125699472513376851789860113454297579771315243020363294737197227576119839026321276424749387112146685390519760284392788404292112434878653466058809213789949239158174411286978098225342967118701920367308501787973941031589045786075852375455056700253555472283302596817738244733140999839240849432998046514845981436988357538750263256231365008304103165089183720063448975907029199985733567771206981661234861750937129937484794882724532451044850668054483736513912844501625651670257094408071789226455830851524547744233940063040881713742703451049475799927516493521359691738960895858201972713139931294470859119153709752164997955092416147410806740803165797912584590522427721603155392647409080569974224368702353705536434341759836001258504121023024257358321377305584682411589015773255313773553058029961487385248798023690019977317938932113375636214615104193827493366013919558094340016164496696218120436506057466432119193172794466816914330166704078880985847140474474918213798480855257448636777825961842773780891053052381107793973630759540659774853781963004079768322242016841424053532846273576542232888866140339399129552847422241483916375495989754999110197074813236574390412091466019367735024422725002513490706715728814938591128640891146447591424050399395426604381767909505391300684683415674494003690320403856111394823579815858212391064197877621981344890442525032007846161378905820036230926124792477773449864382319368951902963282237996781190328136575452084257392512904806663032889737040453256527112631163235281019297131669379407213379543006941930975320656097620287415855461653441087283713361550544600380633531066094098016783188113069109231687084981040658326341929303914619602985417649201968089806679568047923533190051219217180125751093060507181763846021979567172841519819402184745919489674503051575162916850628509303093715238914080473539964190096464568541039799691789591625177294017565746639099739901842147626985251520964399718248519180419729181650468709947220886331356264021116469305359574419996476809266965523634343098893350994273747569985683228270022174871264128776629474071961410744315343542352108690068887122477909511281214065937904331605585840981814627096726196928888727547140704061657301213062670923716957107570738574598244722436667879205271412532685506947597137665045454714384185409877589618274858515494354152423953509468548040842998297140326094270836894864567880026583377037614470904153813122159078140015047777246934200139558741799162380933261771353579034076645267634898579137865777188783657375552977862176906075734781566778413036014183011864335261882568334283838690875899948268274093210841955592336901896513696838629154181538529940951416414275293082288584732647615266308547584605461327393852703742714795612100927616797883560984677709723241177007139923167249067198319015595447349601831702954132764612523978102008226877537256930526191849306417179091288469558082244896376652198782514746855301157058586289889349559877270743121327856951783556044681407181977749604597238629130098445330355400609895182290904781755606225078453970516213816386025456800217540554132694287525096408961131273074280710950255210678692892731542569380474594153952467755019241172290412993942310803858180735766672565613472199602856057857908096865674516956713516097526958148670402272497146218752589158102875781939010141328555818747683222705111440185671903108931469410805075391712179256486504520802343512777751534706902037377034711684936835023942016714799794989348458144507162155240610404814785775384135059891182729102298872582820940424638786067059168407117431455116510477967121562863383429262731702239607746606516839376352340697690528611532569655518754715871944800821550718590357741275922023137986004352596253239539032553705172039373971305670855387526575330745598638028749295978647919820618461185080135609305939053709129117554271303157378184855378612583486473350782946969571548280397653236639771940884241083935047266222828315077332849133207622401152057456107446993560771889979332832884116968823497451571514674798255611005416476143209668851851408026709581337703109741052649884686830159692632523468160005061786919923232430609608137969072377180320210360683851492886269263407149363785879096459647895360607318305792161627446557284816174667067026510362012364834551494640121582706384336841125595728240809100333814688053550846169986085373631567189426960547253456210600484298242862913712252104014361057369408439257493979523405954199263528135489995515490173776078717538670804723498492064150628695174271547422505164224677918430554505503021872290629643191643965904641804644494796623032300373506348323055273537446050773020569195901251326507750263516054916119864876599179100075565908429766425859062900546176902346240762329379670221499926892647777779452416882749226859810063577158311868404626423964859578891478837827085359595850054130006520163255935002565354471088777467943259819278519415041626665387515890047355565592385020752009244324705850500926998240394243155683700055652280129943715140007326847257592682098998085131577037726058593141038275247220507074155906473841958365771102542321009475295353866187099613775246073687767692399264454522238040521436626315954917017429099869785452001596943504452891707061086972225867136560706414660095345111593384898645491210299144481612300110837709136526085274345240647386757049687571115760274128696383038597736414838613582553397423790827236118664372068375808762592816440827598963800279175734813286297412081410389988465382193741872141902774401556380661420802116045302469567573250583610546575912482503400837590813157168623948543759558790172255703670293801176301757917875307654985745306112212789173763183234986307047428795722443982408387020194160917073935082339771868850811106906501716244777632002537512252728014356148586374309011839596100306432979892321740260458246699927614274824495305444807193451151473195115836133456720287204231346859823694284270148173634729914419593289076129695511550189800818498391348399035432942830021748082801016256537863995626417204404089038268062235437146202103848256633602543412629785361051185191856045233059548430891569480086183450696352064994728634720098534739513947506330741707203211069159122948833145661783543930383964441188037682840283325542349166441912921679573211281116968184345174560105507314606905366881686143766079977926574981419004866441976588881166734128530914653287693988182043376469686958854826434917396767325621627318883774552531034799701641814218698398323925594535585151941706948114786967175657911868285692605910023480420109050274304497953357533854590298441830175206555837293119268255745558952860391580754031762157048356656569651992837349674482778598445252148367002293844696225671861157558212670543711135544550442683220618601790840856164969817625563504029112398434590745860383900821001923557721684326507471953257188919681347953973696870509908701540148570412525764073990377247852660877065534125138692757693811839736556546780745950908293748927534800419399267761326641187522463570468905061486947954009229404319574398854656600014352817204760846206544788752368566457733148857969541336395104895114163317685909128682777462613131652644111727425738709076532400310111729627733951902241445328486390787216663035545565776217838616309644377562259835265470829845614901357225160750187491792969854368835968123963563475137238825413688745790205220671546905708171418978382283994066748109178314287651808471265670327001702948720117800680318143085507596452607221476987924608229842324043820166020989774469504757721268374957794369615731485026569707067771557221179708977441490924787505009313976604176608913352182623273194377436137834462619859495275562044151034071234346028261296540941337841023123325245279164061864466403378187627995509774291167006251699221601776613877995455964180297199818786599291406839319194640036122429943540513622031339232246515906468940074772102809645350652771283260986707941462343388629526939440426119231595131638586271118305078945469857610605356676239071513361301695139783376431173187823791650613130414906806479083249361143461534836331231915009595904677458928570195848922708729659963251637794102035782572955907382218375541745480197375781603192945057620888609801894603771054325483440749865269667509330791646284144447127702892954056115622664938961990088974526015147602704817479293047865592874689682988078056583550707518351946834668268431565484849670414796344318015147780443601805981075718983351557792781690749809495387048565138918892023627085778927968735116167667396042867616394601702982775457612390691281257291063367714119084447226748221154383405849544706937335961555263660410338730172068933010386929360247600002637683816272301648244110921556335927830456144267521661813779267768996927859777916806969643405028526756637988646913868571001367666456429246807600949030765917541628107074347848640435373533392296182867513991546781427219721377770826887863624755187373991186144352439066100278903043999087586403199581874287498585804864409706471367109650212946635802186639708305950750633308094246752831503523514617163802585317349062504487255714109142781317856946662534371937319871402371943931245849861178203320995782525569004529980978929658388597555289757082520876079284808984032789726666217047492869764703024111810978583724238221082929354872544624405032827764489563051027641780741810021722771454682028139850608924299104332597773243259518846314981909597568392660173999906775132667024861448483413139033225547292435793793199692469975167290715022167333848521732778655191695991481460609652642484736362172603610676626427117591703977236013395839515045262641904879427614984582686123428633324454628460361765991077018551706660280794540454784319836997304841016192110343401538800832905304199414543694098291828604943734297812757352502370983499635656862908441733927431255848694359319239923767660974913881470304539858949100844804698147741113543707804911706787063358712935816919204987339371125561396034843008243423451629959356779611901599231767050037587163330585981265497325636988998775590438037021385681441116455015626445025904060782857262648372527713734931975054724312425717112519447274554874061947773762827782045647050741078708930094919173592384572244055489521608325683350671287508303380791204871269094895957030465928590456728509988447562257433812302276563554151094187929736302352425905202534670922194580101468617722928527171941132412714355134812410210134531910953169907920249672282264847653285749630057543981930113540192253825428474403274328270908314149543073719599013103418484425855923476353428628557424599432837906148876619426200841165307225276861582557722382837787229511649420256778450675578351458307578709701130624607270757313741933390068597811105670099438008906315790732396641851737448585358970918570465199844897238344437149873163873816557456714999988985346030625118850895807346088306515630238807018986807136621705609705716322743356482677163538451835695599184518220765464703054398773348949671553438681852040250816324390202112369493486531582920770956548054242150214711725909185106292966593261651624230077868767747056049592979504710198975083593651344098875813087560279242048990168704946850635258359307786303865392226602335601333329361044592841930219627759819834456349989101004383865709524828999900421340119738204452413341729945456557273089418925762408532394349154655594869991309642605703754273936764811090639714183559258995078806279722632863774903065479822664183184693233167879287417100573312009967502844263627237415442910586858498981215991710826701931469006444681780493766957712872625822917345531620869953936993266997499583460940945022701153996000056201372012030025380463930977215346705250410455900475559855938321854382595517807487371555062753665867032767126073856727113022703169928745821277356776973349846186856584235922911534686433412892561303808814202648936147384993535424251964929180662691233853377141520073766638685193763635042845339969109909226856993133171809179638658395934660205723693564564318480532578848632589635399727355224353879956758027491758030696072702583905626960641590514041150512580482614522223555500290879937588701590770093959175097198263309275390513391813217709742464684241880571597409599012565774737369313558388412430494165045575280562250123549455447722205621168573497909516672266035847247195338759740118022078494446349822777018527330722877957100346351326916965364319664417626562693138434461073574426640213618352560086715994285912980085115936118908585304607713130340254478318639623544311467874933680531883290194142777267350064090262355256609186554784649880687013791270573406250034925552554179534888863122814698284854993408567766802038791750538233514969166331343257807502317612701032597184111354214653106414765742849209482875962711828750228071493232383131506743919396014930538027386120013460080762785732239646502249347848173388166993072038265506664075405400162061985551214399500515626073489374444617852222142835329058571406341898540897603461600195284234014280400861656289685742891918252747604658754417332975415821192909239854221431041055924974431741182552717533363800367115164390057384266237152140708475266293474542379434820418067388908441407242652391160562616635441602685075043068864702893277269057441885255860382967071771117385785518363802709624914740214588346425842281743495182768233184149827972663969684494506924779755596573818432219234990965836958167151288393440189949289393126533926844496030671827325639005861192154617888033912024552521054006333709986722892818252893858725424249373696398370661986335129734100594433489780857077674564857133964670457186267878112708559617703528797477692880680025801804337610610857473389881826092527291522083706893217469995494092302653089573874314089669627275764314080851395619487529836101119377859483709642306584811763564433009382468633841817192760765690943806149114427391149363946056142790499505395569075061105894896410476686610913191957239924261415320130378563242791131970904340814510000269591855362169945506560031224273931697346620322734840258686317743254244419053640150588600086993227994440262153397766592532860711834636822462275606665870307893398938905419858041123240790665876254092063943767557213570708326714502912462718748174029160994768756363622966147701261864740656035265680071666736413588257269267620660295585086139843624962795843140078268760182594411625654588268810082490547032977290093551283976255729163047843367331478932197383542283796762604338244987282380175822648830318467702977030920827223429979492271962544630071449810129472503223561990004493944736586941585909545304386780879239583755875064982081482889631285208786800915566645592028636575762190541885471641214651357223082058641841938600084727797004040382982920656512010876757937364658074103470175286248564828067007986856560561110310212666584293327230879007610427403258998301997715836412920383126129788420664725221032799844264779041287888909807533886555944132651399924150793207336491929118519465173790366707224177962759411181482816033354902169783802986137304875519813862081108443488768717589077338100576578541828692574682547360417061143206338357614830993205902871998386918602786132307026475187027866804714063272467796555402907243851341921782594199091064267801422957225304798930314074856639084384503942734033477131691664005818127943315532991785226562740806458112106243918783984988190772569411780952165826660711896987921200115272854900631236944975494058873887312148507559951769158933249172722022158800459730732251823778264465355787244893486014701322810633854831139950391818611457446866025369697654684391778646908028179456184101550690076468233046101878507614589569809036218759150256918238961829195020269591102774002632810980728902251361510104802643455963733473634081875243765138958335247045526544039958136070331356233888995567257774755793991707934732332313983467480183639032284194408338482174492632535049727484296823593534111298600346833215863020430706235601058946102472160503297002329680483435639691390375449344700127999831695236455722090920428739277849504426317001437210662858124487400764684765585690900050262363169535684529773592317054165846102666671062125093842590803355494379652080998064283132089928277535556317593438115342124817551510705495461405376213398081694974250106544823157777362729035577135299420465732372279273902957663012381477121427342362555752141511520165995135387920072077173131799039519676874060488181420650376683639250613600874950783996013796331380107047610607581288146797589721528451392783109120662651238402153357764081616962988447170456865933509021817690409804880158544439105969503379240631632298687903038476923078432067842204352958090364494559560197152718589879430128129893516897768976902081985085726152775854677669977814202696191828785746878059406632200453920364135445267152435928050985513271583720614445794102274479304214110300688736911843356096408664617825292216578359847189865841040202709289066349314110562967058061125421646989816033697887566778152516501462359268254952715603448518159011555847798927743013197681304075739707474043342774263595266768505483137082703770445311170830939161995976411194685890484047237029010712985217103018534219379845914786074300164924608481924426891244213609072303563249646974933825020882436662678877749661426280089034532854191482569007385404121095786907216102761060390268775515048858025644314470002328826869726534629329890265176753599639929739247371997107336487874747744100820724967654119872063049961875347678974869616224004379900116909171176538422618195091169776313655851554117576214269588441250362460618123934069202429158433414666698678373265391060291472876006716892693153201104521271331586045023726386573527820918078781791211278575365047474786938702653960251696125418683849840231166293268789370912264739334204569192004076134993752983837119748895001823878517527201650637643437971336322554170565124204369834613948755153998312660689631426580471918420525087008602898280310568276591919047089056420601395333730130409857032098964324511503309649701801776395341642412777542550918828261688921591206586243857652269094672141228634962877055343962586280555878560619384550224091044483125405019160604881373266559385586789962992070760251150545466884511218632921854236316638227997410743936138607240989236812728083047949489587585417991855403332486542186085863940874400925461233677118152431420405378812789733546551118488749372001416110255055862849960696363687982104981691677322448747513597148390705131189695761728793678064857538109073773671768656995848029566558882137380000949199160972291874964693616794166137604141788373996817340307750303167407777417207959328721448353029673093928657728038010942275691970700411248519861900269287222350432250483413666042385565627330608002980919690705282618732191781966117019811530729244857486749932346670249741806325960025632915889633058287191699574187235409660802194022856227065774968566123267770554040215467459705318533947818031312743080070030889515349117545557397788624916938172603408302615610503498031717068980598914925716676871915478938199372605462455186233412989766988355253228543545419933434879506720075872476644816940455012784896058588777460429197863914999745453270919127636917751653207794473031415056882747125220693496276077759573727194481643354512613101660586477083107487422975758037264559643781781701719748439241592966362961942866572815476466718905105785990128083779244486860229850872646097363592566904833871827565074354796670892034077258024383390043967686694525830147796507509829956860428492893490312874276494630500967245353294771770638801138112379291271107181553686655303410765958820660272859242026122808966148823987894897097091861568756563045792070476902528121832241586077469204887618918099207852611715696558590722863699489383903577088104071389785621562052085484499063277848758968264176236522369630972811357573184266616089508202930003448010730354626982339534094189484335909218559358777161952798890128521355673496787199464198125697008347490318450590524190857509548368840536012000534201003211352195216563780290093120777666888966770594092142866149072174951105815278675849459453151313924935578059360122342386065803822100082238860129267705741146739453680512427913972932309942567384136444103986133047464481974317884495198788057037137501695230986377094695932240952971735598984834618993043448198762664653027961759228594606614705272025439364518393741551803856607858743636371279869019982698289559882514970432887927324583988069856012733512980882586349738266698622303518639670135793173289771486673534930264124321199047231497788266156230690106108623008061412451905650061743523291502419078427716581656364978462839688790718432047009683504108301522706216559509214115461459422703137606751199022682634759085528558066178771162018439794584075695346038904678858082532999196450352923638974369970529763040604998273515443648135425667537398493048179567330712814850061584306751584349482565803686126465942587341583915672963419236368603932043513983781277147596816330483517921103137296178142345269945636208070544691407310385028181236501902340086320212876483682146528890120978550415429788898438093580087646835197619009131720639182304425770391001029220850788011388080838799505912908956956345490962622891350474834297945152802818580479949798379968409430234529383617117985525423516693707803216902402320068013375258315875548391255897399429298673808822256440473813705999845116164645507550676695975630446855874352486856743284287415730381096139595237408085395722446294437487067039446062816005104621766263973219506107633352402695127155658690116001896335280677859021638173298477943117010068488628913833255210859019816449284454631785841787251397993261665610881048252739194546496402534668683306930257470306112820993727057101596246870344939419685915260179543906243085692604077111469941772856253962614344934673844376053930072756348104942876974995231210611510040023737642919178610888779190560705254400111641671166661382551254840819728971777121338154096413667302584352672856310491804554070756676008739900090543355854249312857189556109672166590887410661067755994308816371290963690324468174353997145655398713502820942703131199843998331016125213049709791969967484491187114833445725234969754688965390675302588494100129868844072897763195052382134358225237633765934184910125742708517004481927891747930243949188556303711845932360094341355082614831448904231098286514987829642268318902542176665258813677357723817051611134585927142431647228449650215772530272871738184659061488602506980118368845745489858689300727819566874377579795290742769060597493383225657033003409253768070392287809810716250021962790246544280305804357506798438458389072143026383447573010777065596906622781102463681616246135508665219005230382014436799287929874021336236160480332908192854849759488057643422340982301192297442871816956750137327134039080213893077315907344259446332344467171812811644383657338936998087778114363323313880377961845587588434235127964929366019994453689080454945167572553784100977476005934867561198511768340381972483982174194407625633373385076342371520704920324209887674694096738522469753726010533658162855907911114823071002013812005061488883756930814367415203148644579016477922444359990604367282871851444168615042545311817518523647201395917130038096405906523117656796669496764619787844431437242025083043360425757275231567285875266434979086739804729040168054743365720881675027732944286110735598686389100188087527009115725638457752825453539788432659485127410095228226275353827701696917740105511059328146039479751510680301452204240030838535909345858477006207382204708605730079178165075194371934894819760610655499926206416086329267169627496306966587202428260794340023572993806220759921275430014565090056578226616551455566206316183776164982757423727572347112909447110278690421481790807812642121157435175123216977775110002220021024934327778045046115177841525840010550282199837454147075784791183680854029911248585619037336896746484252719527791954778672236029347460861006331566921208615986356027432544155655430402701024992556275984611613102267515230782299563650614125614626446481229749049989142604948255362261270176029730624010297237025676271396762034402937493378197891990008396917402890146690518286655036143905018295064313850361360006216042923488518141087326280792309179510750432539636308287500129673536789172033124476155696111090777346289209228247357602691361203827213718225421529144953450325010077337362484634090295059476214968539129167652916275091074269472496374595161406037306490409486363660228258256710112869263066557438771601756482162491757399530116790227222675090785841767214485703400568486446336072545560912272619617365270138651345121747688114337229405075317415575423766590976166093931488280598554767014815247916782940889694619576151180099545379481237402423751863480824380298341569550969995664724512579106799463697527269910666170500813627182666183222561585636297217201019118737804556187447247725098822056659078688543350000947826224327674858528093681415635033906735541744530773900251127466135401285724608396025716434401057408470070716877003406687047628996554411211840533180545544228395242651808581933660470359543079626850967797047888991779226572112756822936010899122936946592482368453500989170747650625363221271147454349271522244622364714155779825421616710873448321607727449289099818182443444964210467179436245620866730443244141684577046125554241536541762033731153514999884995962019052556790191496760084027681671366647170903592125072382344371922927421155496763958154842618958476413907010349427789964928900376938442174136213661578051475236849294877073381097631086118917854032281381987225241716496645211883295347101242519547079924518744115605513626396918798799579547778162964197086837393988455199992875912518742461527980472028550650955807568953194019810054271607265484458970946802325268196994502024426832716435322809718866842063852684519261110498992470620973214100083619771375331528985503977672298770274268980231442761691562661051908199938126108323828954934970887119634189128766048530050587913236336105720815570393463434352241648347713810789019366981503640467751872045273728344621357982188788284752380075152394600758182727140002186824990748174009738032924573276592700693292257805072002539917862787873091641887920139665778677323264678475631825579288071606219578139185453033057711061897388504684913807418658921873559563875335104954589647244063677625687055365050597071617932244187456745753832143694877099946934406001602020520861562684473214379360851538496103778639843835163220616175516496754619410606085730579903628061773773027219592676515251739018052585572579538280424784823092476993514634405755530509628379734063837065758789740439797576660945616954024916818139371542565136351677092167746360737865035989806029130472959913714987416077963025532516593429623884475596487830354588040578643615305406091069923425090688173216448828855903137869015651577063324361192344050518370050940384202960782880040813696386654060320888754498013420321988099803651429551222392924689639996689052227475350197377498057831499114872558969378046788309196108654176283061716488733178989956874116992736907929299487514763715924075011463063536486563337600722438433094711380379739037420352967965623121554853015893108768911702143261606581765002205948822988238298835654327876993919762017682724848406805136659542888837961446527716752534751339269335097695236982943387077899943126752702930806148054655439108367591448090911122345427486699551614938663022225708252770942986162554734948116410396949662754932860087722577292428771649966046456695158635308080052367901948931823515709958805763054300434897583527720396757695464915150234742567053071412866640789993095893616047358505211468106353705792856372806855699258141304611669787813455834770784101828519804929204812077576760248555251609687564973076700566175358959834915125895022548987478979648353531712615676230913845965047712141162433162705051314764901441907084067146508750543861516490421797881117767005334942676000542385563300405305741594877832411565676693231463825666492334980740604415713331773489620452222748431733694944849205741251995382736268439045601800068551906121733118961045522541000765308933031503391704401474632737511143652527767002622501153532648844886698621307242490388838631098500823468208066513620634116895539570887124144023430599288157436209401855668326941288972643426306720586945859765006290983144354820543043152739322165633453811163599415368522339304609256619467012727434263512203935632505916701650049061755694260456489019502479368169994709323097180583637700162289278840867834004601800382721313630945408061497426505663908970389197135209273344768658049623624470502198486584647193953723829274124410757896397031982657490049812522912273664064220516245647976644209620831806146861296576633546684064409287288274514955847498652103554731351981616749878335511028948553057082561190212695323902918203505673011661968522946393111598673607318670288903527308692923439254723598614529665131572961831518190129655766370574852032801862500799988295995030516248154166749236180093144675119823496470641013202244958055001888471434812756170253661870399087849189934075885890533161360192811082354144825268850207680894576624797253025645998945131883169096622228884553446218715439309942968843803255101801791577392828063281812616893871135303177469476337245809627963567384384557116946226334791418178678993231299688443394809053496976100927340277749433772809310202054015377687313095007246751232742375114692812899917252883977179646843036682378191907545435995361266700240754775191076163965600535723036014744541854178962654308880753324380303799853349845446299082022867092585759809079243151237465443700000644477575429809923017094072695027070429439654085907218246864963817380240551367323502825214666581521337363008222425960378009282157376955530797111314021829806205058938694908026206639754169165726193827000110573319600732831365462746869263156613084781554789764620432836848016129015893588367023221161831745926988158404211906041826641986051337174599583007333340554333022805250966626579454247514147108514619736828423820664815998284536323299136473913345544736515570101692291034551126114872588483455823208402593697532884654401549842708994723053646333716409438147253515675899732918841142390682059561369235543796104720343691677606714281667992876815833653980902235354070159525726555778375775883301064557416910900344151030661837283923077475747887972852900165143392429297198491922627203065718048006192492577994474473621912806489594977146127302026656508321852785925246764267633318953937988368711362383489715026466476683463196799358093166617044169267086200513674307228061957410623693731837953748739148049987668156088822871665762277653877258904084719256643089944999843943334153238340302331986252907332417592838140096278814979681217330446564064204065633867218348654753771214244676711035902006309011822202380279648464947790480191137647275484373458691701614446678630672181126157630404895682334773882243252893579590485373620068927190218995276913181001693397902394422724776490757841537416453493091897444976068149519005419270980147670478447999858588605690680693188252563368674695646826752211725934044386424802480550366526854115383895831390898917594644786570335744821798659045594644812434081338538301805663414043747534331189316873078091935984182783931847835804366235735822984251191640225527807308352749861126499321304710160209081830988759468976872313092292401851061877208500788607691787142546633580650128419947427862633576099266995444921380871232033981389805336219790088653346475378263688036519936748098011559721408807248638614823641754383095330919751450071547832694525559103780115718419377414629603942255014621976868019956204015062107354904107238238957876824457863590582099078877325559947267807758398609377171300842960958892852146462160733363016091847449527755303366994546030697352593549357411874224234676437393768165715847063254437388062745859163072956021649659686556552468957907893184689362549758793343169687818295258255819934361974937615866433381347080840922577882969507973688082396511835106548896255765495538285687681996416563255932924169153923485254519242390130723285352695301440607262470562940310687526928015636072395209570447975917823177893539656811693585456489311871706981811814231517829667846541812185849046824111637108242276228214460784639452916734695528821820876580176843814556374213335667120507708523744761942611841701383808505171502107525255480708606093758860043216451252576464961131047938806922640789648164005599733489445512342903021035414432348422417303120333991884048058799523893879225063875581114417234002402687748564942033777380210730806674991671781279664814006890574289809194437746674468865400736481236341331944543932009500111182644209098405606143316758164371563885793455496871066406328494733089334296951357870189050698048554401710403505446559518391629861112691787953407236932667751040514377083399104882084350564587230858050633122148721129530603849587574194023602505250250764525290848216522545932151839455192255184205756089807235527241305983084179189113091371187071407296717860213036875561808042988811925577524299162833514945557121916705672908330004814958323354433531508297239867988286256060337582083021519039465361045003776928860254671642518867331349939317747451096214051547204379064217360137135726807094226812017498431622409610013712505439639510114621986372441779101080313461878745857144716390608539223907722775277808557446750880400616551939401625902151905876608925435341749565090998489995581866767382971915181096522434587014203224199105648443070479550926110304703706370789742721031253901198405029495968327849289667252518977425336894264638705865665776480168369632151280323048542082944217548806445641331760186655265968236591098793021212188079666796652519583080837536519313046502851132746280266639734570876803085955067576271199649656425380908028793321705521237510303921317852932991821672861564814884420863116786818735407300023979928788079547397547057009182726205231315279213288519846177783154388440163050430752382113913852722157944002078079181363166001520825584696574371420020279547832406944691264357721284087327894589901492891597100516466338450649520301424148390221537344110309475530243739286767797006504701664695058632443518873212806702619512052503233676014268317373407880409735609500882136762987768482163927120771800565369763215377715610158511742391178552880135751660661125461123814981019347461356046428426083514382701626722778485324644078772141027536002901982766471193931289874695030980985130213852819325983319608857097176393577829529907151282362207233174545970877591589881170947446571272941802343294580310174122113224647216992662756192935338509219615500526976377092815362058052598527794941455278590554317436020474282739514744649747121064515085301652338531098366590767223976765713049006371471346617017346535727559962404307467015311661093767985481093189782709593597646610726672110342602268987567613065407519747580003917684110146403550354795893351204368235515186787532789473024226148087458702861804762877950997373962239673272484980027447544214303970495399376443002801865004868906927903715805112460078431717339373345971820911137823538054668329389874683521633771194799551286288299233609394845883606126897166228461138798293773323291341505870994724292228380873304064630677843985551859251901305143692338921199018770446977874685883935055955183519986133484034394021307632843398692415967507451381379539552830538451053942306383809321692395598655000284897570664344470836407507399567318927588784315864495523066933434531687197932237902561713672209308327500006110546687489314616446523757886449462283195136945464273549545922424673496322846888026230900916258969798431970312338304258680691289208242843980586598007750288593885608206652741424587469984753885109262712975717566183827463067540155713117818711281147970845639189462016072568045134764770914507536607047742228263529676493054884976657896082272292390847640040263897119913117491966565332467597886208043164224055022383169061986959612973944798825561948204210870944289485247998042662427590384766020615149446620748286805869510054559658044579107745642665340550599298115742372266356081282908356139209873783152686759551621144757174808963068159399577159011737465876713203404996595024216499501784363908036541785672934598599670759307329390416981572669482308803260367448788330440746700368576142003767082180339074319875538569363997847912368454241759747330942930734146289003883439598320937492336862160850875464510402201634664378063829927165458769243111344007234456894228281939918894435661566810551991364948090524191198105850625543887829507558673119934588654471690098728774174895379070768631431626144910263845798687714504344035498581946196871222386085419118920924636466626175072352319673578441350408758289611445883665124359735975335072384210663922451006212325068089785082534412695426923015390322680343254767423197690122304547542478057796838388002824442689148098862261239162151032568939515414446135835218020664128778987214951860757107462657975688675397342142932129595059550857188568816306720110807051842731774895710754298824320077915639109948619654102136950967740885216354565180708343143832430345021805067540841746264616627088399257342902977864213064483761523906983589054532130603309422081970220883846031634780044388732923667144336078147486306474881853037611991727810172004668961740898963376710440394065102437002180443819976225760360924383341448131969283729313936782438977489225398087078442846671253196203291217264962400938360538664247864044257980719744546804348476727764727604181815366127041621119013303875277334157762692359812392379188516389351359955353844801427294001263903424448926991807110702910352478372427462757706485238322439050291809717059884449724304449147155418024193139113708871576953965452145929334066461973118113208639233062452727788877586456198544904349186627460549907061681666264975024502606643005278931166074916905698886975171622074134890262432433132816220020308165631349697139256757500062234209403916480826284974944203805027846314319255384484035378618086171060011329535136512840020289976161942277078547557792698658939414198317517095338789988017340308542870505211048713326237130866085823410054213482523962579459068582773581241762548242895565039191389019521723014421209246221629285024894500542594602848243868587872470296681909358401248054628264975011823597298762825146127836478057887191543094495487806786325556353907484358631620021295061314839622590034222417506386727838082310929885968071791461680838518316429495985451436861366262398794039187384383897337200417697099014355664992891672945936966813811627028420085664432230844484212213158391862249798219461409059625618530079359743059773994362808422762357970865390343432543411694256964891575135505420768785790213200772476019635667943162731048337421752635583066333990075575851600252022261005070895196489584040714476130644156267353711337890692300513563982625627179300079673754091695948339148637757735864554003161261648731225410385188101354297855687280005987801161573972556202357671689743079008277438158278829979069435107947730343726310280326580062979827771096688951218216348689318043919242316627121692239402630218544082766276784978369906862926751501768774956273304145777566235903756836431710565640277167547893157996963897508237641021797524600703535585983600710923697101501905746851251901495870050234336880175266747193488462799434620217554973918780744747134160064620946219262227056151748088712086845611238797543969917418007534160850497835346028615461919636127291826858297626330699013622215243085065470229675590854041531337258464261485327575068450761189235998553652373348014039282385763816330092005301910843618623340767883613669326132548512851279630468570438412338449660586329777855588383864411245556928752757163656458358520538788346332199807630983787116834490911826321018067864177538114035334598717867187734161012622798326568761042598010728180152575793022737749036647245489193525270337826568321248726582025377079454565798706758288065033125180173679261704379833543018091839506960576053234304413251692382254156513414927069239672551464102757696875470670517608073865880909000251219103006562906202890702265118478032508655857411958894947310295290443121715646346752228126205558553325203166574434430642909132659350955257384514921838302662699249834789554010085971460204485440638868737658368390391875776295231768452796303713192410683630830614914441503192736738496207187583895151461799093775301307153668158286881469643688930317649314817534820313828659462824239647902452874657999326038093548192946653193331803547096026756911271643144317813122247939988502591606643568066353565545262528853061468212846689885135105660941435910743504809498411489832323722236490028512516573615095930543355831258392606601980660363929558274411049441167700585240286427259159321636039971750552781503269237865809922615951183041815297224254723170232297980884781582924780046707676710652002062859459903687092141854371054133825310899069590010631630003844978660225525996292233340970838561482210970624713262680186832308248630287521337365160494481659837070852358675006530807067517325101591414240706070077649503374511269837540649458434490934713800968145871719376904611253729380570505700628339909182753856598763515826149251228025633115669069126406372278055717888582496455951557234141143887260382653230953735286308814823744594851210568885424995131530029492314838121416153059928263103935552417382410604839323050991406478967527354679812720849322851571813305249130814300701478883523817340924187078838471829353777940237815460204679016380856715981288350213455825009800749246253187196526870904393736824999478969744645542381259087622260308159988451217012209104979478562877149872506016244563571336887370811275085761906169951760876660973920323943235101133516453412713064944863283084845836599135856965382349351239538707233750065485281555679279368100398737425217171778091097459831439941402945985679395049469684011741939608366954731966175565167373942978004928637471383864356804580084159855005409533835065039787991481559927123269107597058041944799317094738602480733671309119715002342940708286964957519299844417358155404061477838725690478518824779427789789906948685407891103871717835490682586597016372715531948625972664433689434032862835223274138475858432693153220401244886355908225030130969240720677761431742721840451137133895510842774508428911238705852613629020222173760785731148650336639500415821321490408001108786541735180891218209912027114288401410093751001276453891057588303009370196573049306706649757976415004807770334329305231896072347891422807926672474765098988608593061261853235015190598005749248053905985530615636269797529734728256984012362694851987343560557119751223050320668912151015035481439944579710529500150316404571181802182561173336194957663992791947021732311181963845854078531677699059899738621467447912049455584132933966619412986058968087007970791935500395899927012819171287401463221027085211009129252460311796305408971151762705753006297201473417067570297936284648517737470366833266196169186267903422765830264102452628564304845441523961404806089160615906708606778261429706985732917174689391629645505852551780486426333005522144865347785551556472033124039443097346689378869256218829745225280337525030964567080312807265134934739623319547162733004408183116519640405133790339559959327952319619897440910222388099076100752364424455289147847873147854344498081950291307226810747039342018518630284684925513484986801696575179014123903293964090864103671783233324660793239913854132897340939242792919264078034843588217526104119119043403588777358526167456667386404575696489426257299396039210841015613293356314517936250864877792086862779233803986556178831730203920524133292581454334451362519598102595533582807181445389080127426711557766557669885951627884033490278103833712334923011767716987329788717522207029587336974536808298054881508767315691166000928592691134078989327145027294323506113106822321702699250234131980310199823273822034439202650110060967007938753457183260771453058982455677876895498064834723811751812871818382025071030283582845231755772833871924156813398897766849342714492014659101985750427105905583384085337795714175223024560007511266640344322866041661951014118050067575736677154189763623631576777638962879539287982878633848534622472225475553243465287131546781893057695709637679789510275474556645564016650810360359976526994670850989678895252456213422745698669898325707439374433907968626605734280150581718787358596491513517726747878378848579165484036527820875787825168586742874597916987958467889667553195875878781617340884430732502285262922706811027293071593911969837255843742504647939235564417527117143183870193305314036518622825116252504412000147093320814389539358266571836199936811124794702324041897852713234611631765600910567451465328418619104407827261670231079961326368672501032196017022531317899489049198110571363128955988333742909336574888122468041753894858225907370033031628951617885735976250061600678660901668066882983254006942123482715665299900032688451811526345151804610113378791332185744070815433914336792142769474034816470508434907108014187316560053616506173562103767516261546689492900439653537301990481939035346372319750286541639666111298313291996676095770399705253378525287547907269320908311805801390232177654356952429608897945555713280561966456021036038001796230190049923691698368565750094104556969244551633541141825045032036827880983559301066628579954695290311391644191452196928102647401491468614337048760567340011814556840186812212620409717821812133379539674389598465220227532122024598185719307478730296507490111013475955608301017850346744616011983600516125519624839894116376121866363263600681304434036489308707426309196085381855640220090362888501477729877047626927340006447068798876684489262693463479749787790433940448482318975268434953816975090889870253933156966494809850441416992589238653615243425909559488269154947790106608263699449179839971230602378050484138761200917689647639483729138250038980567122789947144447984401438440143662605272989284840456910881893255252047801110865166332241895178112144218727078143698470069330727015090219462971655193263767554432697640403783873939947781971944180699207447063231668316538853680583768194210000043471937991956638467987153945569974390208324387455288758891409057291756916367061875164477475913067790744896775489410696522352297508948516433801397643806172403552611679749727422955332186543486060143689082781436228645099384204514902532294316406279898421515875440593475879087165219097510170944162283477856337032723151461745184083703519070185079117558012527723239467490509226747186071888922795305887799663153033560653416412128668864918916244878222391283091389166024157511531025142646528405551028885614561162593977687618148061382009073485389452038005870490648301449335207270840544463989456862868612086753938007526489963252588293060807690213142356409895246120075306248356455167353761404539916798635531189560345506136336958545060048328652881482721145161595245548444124219770868694014621249549177870959575601772318459280682267240444475037198817787246164589946901944071533425365141266603985247145442244790363987956269525004854990617459011196068270329729711385071948565433804699324648807318752785290759766713855933767962549511639609941634855311332945020925119194727661091072743254229599116981991931142078479895229316847344574331361461847958401159595953129500968373546639165641828655405988700734062889878333053096377859197426279899330855842586200880493943003932468873322670903148566685662508697762812597442596831670305460443032863028805196926898101935065037390022678033891855973431441770340650086185623137431336436384189876902983225463048596366230222953544552855560637498782219712534291058390554017534297085421463363521327818580794426069442655025638092587224100365415243458244129559314029646602864978314853482795684715975882549388927298139087658691428043818226692166117511199583563130972732298345020267541163018862682582897267357936595677540634290833774991052471060311358530824802281490156521717720604119502049994646012812657785542456652550322675288027884992562593026018524036710213803342903671715043913375942441381129224583285133577835338091323600615257109109740573927758648035503524418082112246363951095999142941618520982375478518289740468370945890666343713691324263506909578188045053105820754803704650267183199531676575628509372097548237168778946662194182798628433253018169281903976472975479092333432764943748782450609504641619102926185121048455507887303235013122854978474622307977726788011436559575881506476015202889757958158054312101550714008341179891771972959136612081170493649903581297506245165357164375798670178361966315804544009036629409942370602834665245437077127056832637369228603440884398181132256193075327036237092129373375868601360621798096811210226469736717037645649131663430754330743069924264239448306144219332433724489296630110323845190552005910633317493426827119991795088231342156539396870233959772513087949488238393687972313480842495376999161081457860286690978100898554956074673165152603622040020180598318281579696633396232628109996746960465691078140592806467674712676216390525147568635938330397013978908824464090382082075897824948446796881935214048580490176559249721454122142205436433951133043975484798974083050963919811242483765159428997092653825163893336892832894264831793548688350173848317460742890928709597274857162429325088732233347503525080470110246597034332650361189038272511276288236328511700332958701780678631390173815768110466782168915758971927486767599672175474969948492658278612233132374043310810160950892808897506394532475171807861588254413289503866558167287696060793250985010098377590046739364873224031987262799158084433355575817942024542225930540337253684711293802792115196605711152295139076565770468420699566874506573406999394053007640684581128737199024820826394265056793327285915144383693116934897934136339855306111141146162800534604331660466319775515335850823307542896223382820095363554177634829581770316076754056621573162005532781728804632963017667687779935269541361252647522112665082833663643210895634002817197411429283803717334819793875246711918660368629373246851187818975735272906531326288333358923222452994346506701170705751019570716583017140532417086130163469247819857076733454447112414589416270737247056732635816587207846259824360680735312756271001012562863243816769019811982453455646495298746209356811879145214793744109049179491621873854908832251363216038472879310845300701226962102659014550297902628879511583626142841311114121366923076644800492784725125470876023222178652032266052775701554656870442941552345557907629806384524003877825231652085029665489807352208737855458134495539166433337615957738806373901195587716163540299212011791449924873359308255800251004875030498805349094581439557471129984479877488165499766784075418949585931332497664503966658391775568620677090180086891044333429229933299677182038247837253516261678833401807291540774396427420039549645299634153257742613829347346405945768253271288441366064973796402294145323480732429277251630262964544270063105522785130046609483824173158111545936973280379741013093058511115961816463209938659850534917746516019922700793864343198226737168672726596317128168148797036482293503896849968265079674029587316678421535336650815259347773418822947468114742235331441461346969891183235767727939214713390439004881407852003623389318484724089030951448557239460645648765104116913137843103882779180536321836744788165382316548033020513974877148925857279791454404662534747614400770136561312163864599825717234429251348839664984217534753914980699960567091412044849671961260911078423534241106857655773687841805811403859364500175485078822813158113232229532517389356914225533015458235780900349841093094554973641831299138705299797034499642428008784499288451531910391871220114174189344673391167720080574940130191910682045264365424351589283827918761751094599332852546028164324395266686733006800955725190523826590083494658480206150286841473925542067298165366659292836035660635984370239808373804069535044052134047385048257385837625091236378930458509264165718494407357367452386253781815213038035824223866135302026087497895830505451499142802140250140639414017003691313638198330048283157147589680853440999486195313468356567865923667200183945670017586763758175035892995442201593960761353395934023617295366951105243905896323218589608364438491173297820968875686423628314347909475007005071066651139649641313378591328321345522080072672825853097041681801129842157135958734726955053320022279985843802914841003034533436375937776819714399402688804540619108904743434341887754306566716138225628862380950517338214058934500809753056386882695036155961777105729885969469745094980147963820049107947064852476093430102159071219464782057576332588760528229263175026777267481332841418209404580715266502633372980917029169930647918212248588486146724832881750106819016119949500344643570092946724983009578873218151721784590971338045174302744795839213014498318992075467556492565091606819183774177492466778412711889135433710812984853811342680707345061019814482616726636755953637915781501640631622129533707909490357910422749215330815180006097117563307068598509028100070943063909404793102745550750056867113159756041005721931551406270380664026602634754458756164380476553349068664771651387094189439832852309506381831815731625358980820796514150585039435659975730282622047213102099218471416942846293700787528319908397483216187421905712049795201695797876053853808329216467681878578226192732588147608144510944220596604624016670560702435325567402586374873412549545298740223176029547055554782448288683259807597730091197433913025340637206431155968399344853546067373472942649715406352270539711984687151353044762176408454793909003803971040591952818551813294093720437248381424814931991592644659124716363134467584322543261969581062520029298719172245884949800527469875446066943520871472500950142597131683787057426886100823607269244263713631670661271023266659867334056431894459253695097822228283750790353178442441966422748216385891329215223716520855350012798711226937932073853041491865175778333969586470820257478406609450314578544615439224101319130947875895074079706986529106604477016336566948906448539614523559465153573863363855462112074404783010789065284535931151428550340680036737877277866188566128975959130883414931817775685763196743708957354296200369151439296140180385402676201738063112250106664565023585639975242099819629043654495196022746468973887138861054002563856770134433128154901136473986089470459263678439900909065043237496391385553509934868401488652741950891435919253421447907804797468916320447536799654115046073186128653818464042588730945687129273714145334261277714161041550597818746126773972902854710252786151542209090836026239626982811215305262027736340235246738852247535087449330875047124466595889077266827660415660350728895328753544011214116889743648517514712678188134401585989930301199227483500186718434758418126317373245937008966186084441877494519415529721855261043740724323629151499796044943743315271594065623669106023824078574692352922256370292967184094338359019654094899684541619199660498029110211300646740639366475516015860577447406736755682670554732837017485149251255266577815453662890158383317123044566343108922528378538859859907928385133780301435204301609986796428130936303514304634950859697505687646614550499302786352966223693586035374093081716289583482369454337453157365897371116674780627349086722429990589499475551074894972085946766102083385179771826312161435349933881830329662659529547304845622294534599675911163987532023660240454569729030600689648108285340205774355526885856038867719951382411808632517721486892247853526010154559727896210428019437596645518025249880113747769002693733440088679144757447010159309458401118682768799843272882456451107271027811471264048939207063149358018558983028766787070077198097369659043979067101275583002027473659137903097413898097464060627360609811587951584664188964673771367605634148804316855558430787547006022143333688237549325421458201317514090104064550785451729350908754856974344282312375024237473027887218843582911142587794075079566539122930891783790848108778931517736585359541979304328991615910566102242716219474248496866383066148558603387853941583085849082287254759466188226084118358758759532451377097711573982192414229942039668623303871184739123498720562297052851672170014458343751405872456953207198057135934091171136822123503815460496767741402398499461192405604060371814457645949373862646475496891370030026247442750946198364664823645450186490335041540309711570562017543644365418053370009930520867417289900275079689411382851848368149891575897870590655133979396140407575611523675072865271061762398800995267935800107645552953015781806207874930918048752388430459103821787308822299842678509813835634058467902031392224846847351675275135311325594727030388697278861140769863337033857751339257551748369365987431144237940980645997402406392598216148131763780823566061040901834678819634303567814301599232407461755423129467425368644892610783567974285535716882125710355109462701094394643682474889820273743005241212479400429977941293291986212656193625584442041321885031693627757010775720614446443513619592461936646518499661734477419606283566347514431241824146027156339409242730034380730315050608805030085002128079029725335243796160585043468357219600671710674530670351287422786766730288308723998725656009503647822980089955806162095937401833842509622498486673590938304370019051246619798516019359257396601766127030078595521390361879498604673089965366870892531805728587737011634795114352708798904679628770383376618738158136492391693164937075168969928452343100173082416008511823379431716062367484037007750777888717331038156237350734961715706444185698348691212079282262671570937016623760404822696266740446296878998270169151298103643686410304021230021213262474303865729683958898114663171655106460039772542078955523201883677499939407388231244976438669961846226662818312968450978669378587530417440813851855258990890829953394561035607045125876574474669051897609021920617877742715410733760945354698334194758198159171583055323759609958458464436227285203108582864321332996205296323707800125525673227072122627158909252500377024770811071698325802712932813350805402935731144316853173931281542289986317076139331969637225894026777751291821842135472378602549978959760826823194331650238275626764937218457805183672513919379944025507563250433490071000581896590059005626324424464984359741796213788287643419992532218115225087106509878801067718399520545409946615181028345624779208525178600035550923785468868536628264132176915637284320541585766261257121142882206158693178589059740895742561952966044277061913786376678296704776044343793971668312879771561234716655222353585366699663931465983431372994445380314894871723146827432468294494376080812145909834483449468756255549918916846123259083123999487806160190485967767307867204274652685602710742087215086898557768378805533305221574004406848088120201955410573085720061941108874213224212815864979105402434681399268279643198804463880365626310548632304495643153694297642518957065075428613064851765154134941026788816836537286747750382348588254003392919275215932925021601344261933892523999640043696378072898310407472286199151175464923607492535703740992633555868139504515144600836736636713531772809293127678880681042585307660221352480433241703060187398241149492159170932001066687485874756453860761567369230974361708578816426183817448359346431235214573179590388423316549515770206943971045834309379279154789345726157953287708644747970893716481340472699222373491410223650859131477903470158096479446229385995506466204292010553148490450018828620199463609939277262786386874929514391638304427074415957968975005674681676440508955707940734531068631468616971447040731916652009367952159680257259919200972648397252677349296800437689106152587011655939097140763919110802988417136685363023098938169607455027282547689368789918908586499568689113593046616113278134275454707525411069002882276891007664753060015844988389671205639935387413201409016449922080198695925852469754734030635113408057712422930657443343179119453344641543473890480705712088036322293411221403671395166405664679059897205362921879607546317691565164368828157237577569303298537770923278665863485557668679979492826885389478375776766793090347862769936390974695105152894723621177481979849412257648546641700744836213412064111220300214935582757023399832760313518787297910973786372070065942538695711443712213244929284466062455960235204938871745714256621941954072955852652260475241547893534156754572947572147584563204477565249744593636324000540564197834736280976819815480984885780737839967618930447615521135682022757118775875246994248735123330172331022368010700801151806300198882563969332798678539456815437187655653109480101226112487897873469496860827705132671336961064602827121947498062500278242207701000167672723635034067316858550693553259603502316963157802555637841518321722556528040708647703927844758521613169396160172153062683438894754031870461481447641820549419609620142074860439614692419719406534722222247224009073284860971595224243690127227110988357063918880548710172965527606625503437252949262989599193317800544628400528243168512853557194437010048180635860820298703282139244273247571838472404958509070881411975644954533112635460125519343794460064337370611853579259374762870454516355686793302332747116493295751781436082468066608427665561798861902882516910168355617189958268130405442233683138654185393455481336378007424433833932157894003331624370501000778979552013546892424770151306708466655052602402805608359448645545075177596794230321573174925399187166174660068957485063729765978477789011078408667672265568598422895228299369664634608839911715369858834471267729142718040190044960728904639660178327627455004892369530680075134907927370302362923002640263550489218700397724878888922548537306580682166868439650949269515695059560033381251597066603485341002417741289049898077160341460609831425293868061240013017641936287623189947846644659165272356222927837466535710146769693047191260513355909014011831541806485652041930058445266953430279188191460661929650973064996218612558050165023683278133029843385871425697745704564007939861218788455046198594072644564808463355948516298382748346222920368050082487772429219932816932462492517078356578233898339856905145215166864192758507588692910120825374862518309843286469778022053668940407778147301984755810168683721842485837337449070829487273118075874640392022183592858122343810257731494910151850563968292844033336540510874879627152762637447605267038559462742295123264829544557586679380474825746892855501956806961157386196310367751566139798242355460411934274358674651738840467327320835297984156028983211355625250121833955321773972180541572578418006325520756882928843673759778148923417651265932383148643342541360024471133163675805347079948724045380220978566903337725216160884669767899827989670940695308565030846322521979267106905201454452919305122646565030915597278031642508453126267672119907059216559321387022994919940914815297332939982034606767905838536425071038437232238301779212304725071281852576278323826411613273090858420147162373942291023692333619938833161307483432726252365936404174076721713361572677586614114765605531342334505086126466369183970435850913144226296338976346767863819348675396305227653625277474901054424182223042152038771707468060183452065025201484686518281346415864621184535822640708490672198725490198083374942706332089688266681570960282363508277735552933051296908567584490038720258032224941391494705338720427408011739721930589531042328729629367715198012906327007936336748398774249172689420812749281824647511205717060282024681328217145114216103687680191285661044981529632828530267147786103223106644723940694833286702626077035461094112340220636652656492733358924133807672822559625377314548460913710961219133507358673607960087597915895728861687983534576522793446792306247827745465348234726937827193891753022606162463443558723556535334207219478250336632804426226622370042281192945076780125631040903582607865665542112840465347172290022094018462851529262408447268702162781121488442390746336478151507615453766826262479919076289791314855061072350794786990140053977561654135046105784566800585272372764125548762854452279108101310229734574939883528596211657107668733579369113880392466322751104003122835376915198154665606109510448132376811749800825184999512458357098964921312018184836994070294333995986218330364395812266369066728372919948109073811259619002550007278067733498913164348294486606804494680076810863699782452556470300278306435958386440032577028603808755885517313829881961477494593641740501328142088314859521467537259935896850977051220585413134024076022952586259234849412503696132562907995192456781940188248907080978948919914355103149786536159540868904845440388616381608016221296717471082196191186482035579056234327415869689697514209964682855243957386664163094309845037688054751503982115476680092343360286727187671561478551804757620590634942738416125541445994761457324414300877955577980829030939729853455914219147464386284084247561704385268713955027377691349265810341404160249602839953282653414035902129129390331668131601771524178155925385987254897581330434165829972867388355915734564618182264450541400481506988189748194951318616883433146615150985745596323584324987170319755292292571406158229583787198951400709114336745641652315334051661609709950952242481947654492275710194111147966249720913397355685382953522312219987854575535170179945040603676286285829892368047586372400097532432422508982222832440685045395845132254869549256471948897837363608060315509975043520591377312280958246470721068901765165836147900860426375204369226270589881924988418352540977755018905357595070926590314650575900042779793499743482212733124234135888351341470237379328381304257233357590165492717276376240195100050790733921252134332260103788983834729178484677202558514054855968074401875830610435250470381306179717084561638673710307378210346141069013625740719446543133798275131179988528215582087225276118304510621601377753698940247479590489618523845730678545439956714968825471749344955224803191804248605602248484039204616004413040112415328471675367387847313814638145378110830963916636854712025252187840211901109310260564786381881171810493073657115398511479160796875620808169676034923908927431386804342679004834368330301932625792603141787242775402325156164062312833592344809475155726532409406523521005627713122867321761443735082948508335525571898671105303919326165195316451385406201784085882131412421471940263115262859192582177858063625035255333792285214512785060287992891821887082335267603582849484365333036493205210134168290538492648358437694533209471611033777225487572416495333271770230695917284588720229845361776803193525880332588518763398037379375961474722288249756477896979178832893322257986354464330271006540567921118839655397179495628245719122798941379751384237511180712956509101337055773156676300658432495188722863077171519580273916471716906883902405260647716387392160107343017456257087362702136018846762066954575091835739209347374155748207596789840850335299355774317219979290908758744784963498414328563902323220016356673825433358387135569018850679309482610434063735985540021314254254243066866126913120615803389362418444418052674736360503292519358764996274899916910919296310503614019605102058327238750556371768869452402988203667947488982210477479925879116982092811154659942090997312010825798993776478486710416574637870310912769242181082943230836971699790927991334396520347777105486548175900038610820029160342254099766171336516027038026559712588717687957840247421531469363313707146761614747942300672623989454265789598767497141940597155021527307218552198378324996587739754536582914306140087699143104520817158871343384526159357746912905130906540621855069153226605542524628048697873024898491189749809503334034333680757610222382056262835112381614697124915176389951460118263852258478037887523974112355007319688227614941185344031265088747847587897271840260879610911368010186755536681975056111413005863558207864266003865930231148228432746225666596416061230434177120179317283225839609715040827980130810408181542562119614766752869511645611453026942907950817707712849040665993768706451936115853797298321579498764185304194025453796682230449333057071220757797951174716226090730942081825956193946339508178078524436097615205499263828826737978668276049647761776765665489912308041976796377343166856762378739001344625979584976158988950271965940801138245280165660746684933045582762957683503608440062548647232534643066226717513318586409143540030958276694577878401606693772862748206249281770700145626080958750748108773200532569693891033394923409738431727985072001893483039317047243733413354642396881603700590094578977265100435640451515040867120154490447320386829983231987974215797891575270633553993307410574472137183895838114376167415906414262743056770941318593765519643007304533664465200075716034906367209717624966329645650241415593801111690684003387946116471216498210643473046616200331710592679131115805988397396554628535208207765967636685493607473689488398883721254435787793169789012815574437592278971566944974633108380875755610158783458244055334855007084308907474776504421467654335520840968885006828732808004597006721284074408427536001696977636886446282499779260762786482321808042340689059631702007690813328287902918861323773949603719173127109770932927458751634883783794400583483772736354188975419305645002209579113395349341504389311672400614748522569046042489474929071461993634846177640442543377581513059888822852839630328555303850638936036000714392045801293253429946617160488129243758410930291982017651533814717601829649083320489220406390918399746398800747320074716671679511050558261703586297446573093403034798366585610809543207486375895467421265785774625456101190925623971420823410293068431997242510923633280626757551644022113044687703035718720142607795320878257017963309480627494691106733052605301117212411514113349203280302272274236041234909255750234406366131765451175983665608447928982207171284661620156434006820601996496137375884923087398320645330361181280001583373678206964441446396578145670866554813044708362011803199458133439318586712840363401489534065341948540143628618150801156667061395371417439128664742561368612517458451436949357834606218031791114980427987616291023654437386616038913459608483255807143373075439816218461610444048278764029666124203202238066505774318443952397966496536554275129629161551882968099051796738492935450280434192384972020072071200078854663856279092869942021041111551718925445779735162870672619627844254202366428492966728616772510838494377367327199895439020456879370085686497847665856390517560538972542016031170178088581481360341137547741169031085059961816711170364766256365539211456453253391992560634862815895703668230271131326030526512190322302694438497772439696318446274094967493193276942350052138544180669631012390398539226202122501423968944239570646067873178965382498075885845426162021531191325759231089966899379418182960914706793235512654001373687131882827515199039620169867516928429151874898074504568824811947541613589822710913729094974030714678870498726018401372932713739514918326199789445184102035608417837105908683671949508091164527629836423702861299091378058930905404434149666882455182767189945622895313700826683675757411325515612055193486332899113539450940601223590747994335466443224621853871550016754366889361157068868935385682313325388277730382784873607456223291124915909231261068773704688918394197553759710273429986819660372614740344555121648437985410040213240004269248965780457095712766720058776408090084799687603830341614242731286185673973389283996740420237712880008323333766991161933800229982202519079549233476330415694023883155397591213882144217432294289837249997528295270254300292221809325913992512136542178569416211117835236259121234055222687455867791442748691593342716068225064834445616884663254492073908562195194890936690678102843262619906468891527172425016645484675608617283148172588741356768590667131117752337428791077165054878750940281757572465894198428316391976610888890973669834214924827339453710038877797846592199899667833806617911923490857973644209776837754102355624538822349412720592674155075107280195514848195837673477453582550890481331133954324470478947134368597456901718114093034887816004591485170997922381365575352331997027841596504619330219104101703303587812271237047946101824021091915746055081317157077954485625398122500089990416108414065381386658807225376544489328090858749827136346175125587358740935738361994693240188723804866230117455294897479022963553450845587403519690086901856769837555174281680905967575395533610367709365290232736798513659613592166645518156747731800676709768376360957385018804253111906258077054033114589149323079073009356608291925490438801550317651971049707066541170590449600929219326454473969402168741062043676970011223441662294403205612148066255964904325703237741346985945621354796901634788024841512763247123581810734401844291859756341482457169031053366367466572304122787227320124923134641480031328532038836904486240621306524899950604648664861554576649886083113785120233439893707793606590108862389193639754333088566559239604609639759318654846695772322944126032157875521828072265099578972271373717608612837788673840119409529913650705718734505239986409779459814619240019534104280240203823054954427573622238840041524159759951944640249737551067446101595574043843671030879920890498896056375344126207914760720811650965538417875545020289853131828316706640844823048382208469606050078315542728579062775137157573523337546901797716076201165340846697467772342203294998658728665336637644842316546290719093614303801318547450587477417196809058427147796088257416448141867566187061887692907004240419347025236939096802200655189716527294866798043252750684047181210532058263111598127341006554935982307244035834326026359097455942227261994146253697216020300990909181575170145559616368615750017305949466333575857456071519841378967380449510684073746144714433449723642337962683143661222660444757461535881405144835664337827734047506166413354926839914508395252518232179776365120483124601190705173082222018787729477938364659854100665580923212897415119490029301032575044457481439767071923816805316534270285955288272432071382985000626110732424692538993968234371298066875100532652331826583343881483497948387510220991262155975226477066945428465661840844095335522634759670645494346804435744189408022538882435881390896753436642948467984170414395315198775139189374338756914234754272717842644026925935433428456940922032008386167728448052336577129816135381727180350335233459467355070269545480848961940444573239506885503729125781075005599476240695110679254300069559490906802495604705357468243505906605244320691441092024405426105609474237654481267838964960353240278140134165840878819836886005348775198438115296796589302765115682495947247010946149780505009083202062014189726183261644992553900963892824406228045017471162079358769328581307693647026877819369266506302631667867132581932260017949957046760841093724487449911092017058927229041985205219992688912287912921525785570956728051624671418349821557052281341870344806935302882899725896795675058270713227734499616631311871174894919272346399370219729754073323491799202663431363168914702972732587059568193347817429035924002107875242694462280216281118442699734119527460320623227403117386634493570773399636222357581229275753455772806444083739859350030724946796651848376697362213522636281476332101679842662166228536409689064067971142341698606726997852765189992753150007654206137847750572640862330928463054262630351250354747491461201979144830394440772317747791139292248573064939554953746987659490428605170578440600763182461460958306780513744363737795893953819677016243529479952851826369172853298828153627472592135650376468639308448472881985013004058474086331895657983319641223460800312732453285133601723469318872663732859885610002717632453414831467650399918633497516569341271542169214044898583145317681026449203771955136005655123068549572199633984694861227764424994651314762123896729304011185794119071879718539420752347054844735303149296908102193655548297810435376205334570479244451990375318661407487954001700877584334487460491259076178466663531487614911539273648535397774946442944747452186793559148315270416009718403401661728801837487313453223062088392324697312996803992938730727321972140132473651784690435837590630879582975859276954325822149227167800041173282913673479606337120050643581087859890567004455317497308780212953586954390746870002508850784184101712572711690812090186660181719772367835610896910988337757996257822301414243143424064238691178183023916856938529267134838202526871000203534501544609378381810010191616394125237244129583301688144323876440406529523824235269066919500507451546091910815042874342866901400703193183872704946699360262543963844536618574765332271351053746967698444627267265268467588224506609834623350729309486375649620522611864742944698542190815582156010192782145207681866646179266989948258810406870856679181283331201471704183491115325095695779941290205230980059891600163638129927942376154973616446488987740579302288601731276150956219144433773789534711910344301699499603281239807099318063070345341472598605291856864323488872044567327292910560280299221546387984384360543380752878475035451089753857029598692561167977995219383934578011372203999803425498941454793876120732212270799842734661009430196283480179680957495585413235646508196058274702018580822630707675905005156346527228662363698416845133072954595137322045379710605875007083576472937753143175098025271216248547924371470104675489046100795492771304771441739459087076022637900160448850905962157810058698152919476132452518091456564534515804308166411502063272131305969174859688548495787957182418326442997689528172569494330684971170671999843015551365115765268206365213370295795215038891102891992423876327103291416608951558054932407463821301695793912349083359406975291732310059875248853051639276739498308343854674411920568246335968467974978591550381621765848108859392397047527950208702992202105683963161269545956051293549477919666896587902221705667044744304583573263455247087671096360328366456093183236074003442642430557021931394903571616702046576101253201303052289324382520948550467325550689151913789844135646942502244355611670085156288365557400709722158234116129513023739969761156203961747238672724586734401389150313820508089585810460222383390894765080382568872920270117545322987420306082322895133815273796959925064192718891538473278089595863067172841275769581348746100418884663566485647588632113325220755532184670480549324054623389960144022075290076795818782957160145775202683627320563317804481265097288551244683365467441692494978387113247019982149201353508601635833509996656897473835840245064573514156546643177531355052209940607691159377402500615308666795329163370304464867113466771538862743054773864097255517255868003877328059222484475319474106642619464607827821212586747698654029493936409001523429362468118767002730259933561182666980683503753009943224538248113188147807770900807803006719564195162483434751637072532345416001482419537829246723204296164209744801657056378943001234323031014214351124916184538954874652257363628095805688253826174713518801958819275514191978533702153978526006015674891231283962039608559167898584564148526987862530073212708954750934804835624414146319775136003211639556932635427426347238517851085929598853526128995484554844642062694767658965269473102083637021105293347553905326829324631404976556627368353600993001927296656715243151821634326088093207398249635253805003418744958384431673234641738521862053556223001571015665468180501265740759808545568356816408959734942135902564931896552794019609555865782766206650849513896901693166907568963630462026763486499985783295776293338571510003487654667661140625698838960466841993447278360033247820902093235040130834504412820033702394231269036337669736504178607747720422393946067615319103106843262749794329834310479420326167367343543575788290753705868927575839329646902101776942295011559256055722170143380602724393604943836724275864874456250995565126128140710321406761601366627042938416713986949931377380798053752647446265842562642771252908175641729103571402721970976610795157769211902160795064217071113546247002057617167176299771788987129583252049953349129092983223043045914769815396748619036451640862025735739774380581333339261302694681971730195723791913202189793232172763272560105809868001457201786919271894223402918377757334196794630311210545219095035062866226534056622192032578065523328668473492848121195848907632078735873723978496053640285717419646911146711555292547582066033617914644623271414569434655672367258218632858194694104636715239187612436530277922101093017119674055294462627946356872798542924574943181274551990491294538196312515293293230712404134637909571925038564636253739313459990914519917646830531038798968194516272243842354420016971895928156269874947815453742249031797211384010832132034460516224316743757378647905850550827750169230935584783237786317446592803594607803541399104297220722193306768396051815029068239821700616569500064104734841050450274938373899295322359056211459955953201008250566213724439113565741302102611354962846338458999229527744951991770005488348954157695298448856435486808605876631392615373412156107771961511751322069376354272289707086758092836434859877077366437246332808567109108327177720674026941883374293319507749499794451208638417536085314111535875596914867794103415665041777036938717488112459160808005732639414560371721428668119143755457077421208211215763580854713266476031356110348594911259575691274352686201873997602142701032978758655520171314058340294164339765990506594836870224773466230468634803361531922660945819474077745757408164292012857556973339420964464052756834449101946187880606113549778204972658665738210685897840757405932190438804719632927000838446967409045377708767576039384043131101924297680758652233883239347228135129760291925704187960074993984044923838362740923135032657441701152441626234315390174231961062338004838284000700813931569085828360412321881967320473280629123056862684924359961779993814824925934314436580166178096533705922714223954050367855606337864524276379085674022663764380559779103226440213393491229797174090369083309220001554585033920521978446340598031328266907428305267384886007299972098302660282592079517186054142529104904157979563822281993960407527236543662514025979756325152160780301313083999846534824739669414248022188407627049236216654475995497918224016220732309845627926815736927255192944912088318964056427217632388646632145439368818893111819545899709322252628607706662128894632869753965759948052328932332098500827068205340290915397808241401570929853701430549373956921350167760369061968706163046753617838938795836319830544932818780024009778094942546512527467394655541504203914722766966687839986007174710343712575155032824765320272805603891407462206155704356907960485282878487364395573448948069697033474582784171686211283265701519413275239806755237363764593258755074021057833741723815756426552549255506826814154249994456996576009940733790075472692643813739428335421099939416350827226506055510503731934510210384546402005487627452338600978161696824408094056248154522398989776764663246549455156168819866649487647230356512574288029634244288461513639407125400162779444788015207089699361010879631179890100544698887524676678377455444017694909876786079955031891025364207221649558712773681073936757851862211633971864493114899884767405661005207037817704949624588700194403345496566591137199746878090212637301123314064699921935464975986693503449092728884224123862483531553339449061270643539241638704925852672719104495747505289270964440397401879584862079273944884023825140596747945548271666638901327160151719760378080788270245787347860605631691078151574709743455504079512688519366560477706699991171165710700070675621867123830373116338375974451690943483110504246424621364905154505927561796666846887751600630731737953288402546915621086382129913948617822777062533236958104525136056789838505377926342800236693363925503083560429812701074958952189340087889561178345097628761645909795717244241512756181648215541638523299439096741284279665675108962362930899296363048186965791859997582971431114474912345666108462719759265253965808824101483304436612745902459234454035510317488749901518957012549175956692345664287745628380818748542178252936347768287672192647099550210894516788795685273603158772576142728965146290024232677906120227795373242354136205717217967238415943771017770429537850221587920087574230223088779608654660393422546321218973321812119473172555558916499064413499348446346040621879441690769969812029589939931680723319452053390144782893653597545420359783948300319286575615497513100642746886715046123074387140960657773151592583398337282393400793821873533922445401881178738073808180161336561212867425590260559241024439503669134100379645143814575899449576161419782719165600184311724890939595219563459659466385676660804314373282627729494350497373959117946189368576118648201930096130193196266189308931647274605432958708207699200091657147261633564881784453201962416328781783660740301682341252036245336989291764338732529409518213871016291972972859202583950074605819244061623250540277384745706386344199177206967616158297330824639981356012412571273893906066863638982408379476114005837838234890513770522852699461121378733493670066449865049051270451097276880962971677533889018545647333031193749516707449998362523500607351565123603586015329765639681781180718184515030931474333253897776079518642873723922836573018852818174331638750668024073267389685371363473446749975975239586271083691208544527544356506386416986983135542992891000655706837993533876917957725234759237814099654363294702277242475713278352802911251756024518537874368169749520549753952681780451301265280366635730848970471690283276558619421752968332643436046151012133790496395901811130237696849200473025149439344657193838814376954182528974317028060849654837301766501785523048999823758977929090109134130040878961439958385485966207819750792092814260712272872047950343907238800251346882125420590038951842652551863442434802114699302484822089405269446311277183113465819196443499643818349022086211501176443225443542759826100548500990362525828022797539947635370580118559149165656880586968094993013114140016699559700028102453712314256671299979623095348265904643966225423686635278457092760087754002604037898249769157576968930101443488811975470252952133531250756220167665407721221037972741969417370571530973984499005450544869736831599138687348014369318276631975343896044975440591174253398369777460217226149831211116191249074446697412679963410278219257670211550544619360530823969221001530122336780027860036161713818873863194053660315120392005343606521615172425655819958924758157484870438736816776192027291887565610978386466978845386989771135339847577807521080204905579505871359769525972834521424222002084022360779590565485489779847748940134207703121695516544633155612107199666854992342012263306985120489649685448802990246027387927027865679415642431883178904217661754609715788597375605216347815222834511866665156154852233808806306828533319396086554747730799555656712165843128012319552719618249476787373576027904216976957088990794847744904783053194590525145960843494453233240446404466003604535989444559280014265002128220909174373550964211817232395559146326859208153308961898867150021234531587465612672564127600243713075482222161988951698158861899866020662659954025301694833205506783335411125271087248295306187481123733721786997283422952309419319601252138789349430570927937460594007674998661341747532473798663354639130033315107150653144917697443553852965886225915266823463866839377496366758093350868114488042398124967715613409968101381633719469725974754318610889998327157092054855971216265184611122461974091117835175351603415071537219049797472861322012727924270661829419663053569134560158771315539059897122284748520467316017759480975692894875047490606097526376008811040977995805820584963278662709055745597390245108147971757753365314119856601057712471258587614947615138763112184628773156235310659359812375203577398602624691348439689753992473553499759111688355930407786111709765373377024726300471485482208105110923526310560142485607386987758954212099361926592428167246040185583045548780101790047729785308889313939154456085984524910974127640091317988100038214618238134970299181539210209803687485139851467521650252335113530606272771683077216317761987206597350337886590313193603688713325971989631921017443074258231232993290233042685500971246127341056741519966788240034637663503739576383101879372571942507960614594111819375499458668025938880115133297780106143716254549790988108663962553113048138157035935093656253430497157159484268612176319058214932095894044685969713053803731879429598051246293703095647229223906540363970038013670657086328438875885543946516761367084603010959992377780482535305358372408676556999858583643584704003036070804413879027302205646272836159396298706187731680425403408829391755046633894927471359825185007601119334151529898478663838305376093895096115846589802666336990985489257600868560112839522323889744744874057166816720180508815675043955841822032928916679210112162713340016830036546743962832555528372980952574876656760551775371109193326010742522912622030421123671625102429385121557714243013796865926137899368339602704866769661413469971899706294571028524727978506686908113969316183770920837261165329334369514090470610874385878989364581230484653450315956564055663598424915564066277815810643559163967599576024186991872197639007453191604142053950199566480582983109299220305504439310901240163407663706114932932630185194600302790017884780802496260759460307405839931642879335731405989940491158682178473926558996797380854828183455361499476764537938221254540598364094869945200547009385910727669798101001134567258487443730415291598682367989822503320019815942954380699927269492651726701059185484297453913822899957244867750904819029079406828426542213100932808110962531486000555906000727570262803113277928231889407864313541272476165521467256891997646525666429200617269293303495874682180770724878863760440393227126336429001511914676824901139289141635797214022919216750541021953160128715374877772693195713036329687098052513762809027494207802377226395880971892188835101703876018163845589139376844526782192526503686662726593670196853350094851349510954777705498070476817075352638825216422606355161812916645853667860682007519475674698546912260169255572865616568097773944411731585306266504768538211762898093512966142341025145757910821590415656723250461226455298636551476179148256262069650504565707753636175294747996847658067823995176120073218395336629038625266430416453960829678773421199765571857490160182552978276742539833589920372692925132342358617059375745202929885696076168641306259630260259831929836807405094785918068026610011969873934671728722208717082069191480158957474944444078712871976218179478138238408748787873866840123400785536766303121429146944295113068389553833448533435946506708409707930748061759693928110325145321077789119731416952469887695508577951927213939617801784588394727995213482507877226433546604686511978256199309037581822081595005412598719084970326771289918728045339659869576501029014742358047454897490927626853798038962744009810103263190624446727680775603429897241654354140373341476321055921575853428271693481028552962287555697829001686998545166236796766289954867381146471223557587025864495475016827967000065810467538808012496477528003393620879416503226403506203783204120279105782816426306067875061082430674902607718426215162473805448664324790596494474497437698626145273447845585704848816886914085937307404241006539820933667409506849463899781712883546334074027423027214181229313826882332429076705385918712293803445400281964018447049876050085481752792795790005433651404029880781380885778518028958248332892755061681508246598490922605715523818146272854105281547127674509356320221001833910609849496758950188011042255280046662394931761281470967251298529500686564055945834100748475811849657382995812484983656981797345272412870939424349407795950748149355825263293364189985460673256164017561804493154023433455856874565035240743643735003709828438565495278103206059902919174373342908840588310148529226041231924072326375493228734292526051462147397633344406989009424224272787840407686718902676428084928409112644206889599340856059813385646534208942357115670735099600939824834082396594659983601818583738446917877357081735920801706670819832996943908209718444137207462241218722648576190096056558747968147574983151158716122781605603780325022446043207398543306012271690927556409507534465528360000696735339003810538150430753432491659243383085861017777409430951853174051408288500791631688075489002351905380891646289805422631900222330832660311520267201724432787291365542162788993110149311679871098984062883762096155329434682469796105338290341762731774867160397507428254326387715752641476547711485599748641980652693018656547826656368582994064717442183857354940118033771182698984909503080090992325761256312689610998902547533823169138751847049038571467106374961295639139437927446662312047407713886533083103542406001610268970542829564153691155102671833406543333308405906883128371603569101923038945586697356489742658164498341874244129696755376538082963979321414842300517789181390620242554581801782816565642127542076829761389004917455084478338269048927769650089643125141228940366762596189765661610722828085473282328199934988718852084271302682714052409477425208582064970438072892081909496926890024756227266570904291376535864529105427059900392730820353763444785346263702350501948885004553334657498917637099143173698157445596623963528967106243393935805867035985293424283445306148911624921263412513750435604549616241395915397872365437442351548953583793838919690067231992957099471736845102584819912068159861138953310264957651114938673702920329507788183292655148154637785226957495383098323792458577507130866323078963741990801926348052594440290353669221470442928215617630013151648167754066391837108874581848678133332983965767931999975260951311456662567952725922733889588248591980551113504975101852886406246646361445838054130433918572886314562077000909350696270707948193091100358131450639308754792469125473679725386807704274971749991898423600199227423355845332525636348020024231139934560206415859149324332180564657777158814394958730637227841310439322834541590527011670082722364072828591485458002793848746564189965833572850099983971309856974687841272309237027735258151006028710748616416925999867136357429214887944945873903065114925263570317227411567424242107342721412697933731105257020294346511528536275309717136895703673253946035202554961546400184487891673277524451901707805279308205870905099117083642500524641280560466142459159048461156469269257962866781324062262334145912934570079499000331914811250939074101208536092412726953061856434436257731782376052392492062730538615499849332589072256285140806383172485241085300762972184937404121566148260019009581117301697738101087410155740914026162168683177916081762762368181192861893849394006017402375075738914328350285131801627003692635638628528464744439942584387506360794454452968217861253189820913082135776125878642361226352133348570313091889949151754537236264658036321508759348056805058922243864998902148205306982621384459880307733318083202860955111042692981584275929512458521719166576397482466944022370795435699343019705809629520728395987370643416090002013180444678615854819560570053048056524743129926514194366717527469745824889548139157169240419668080769472623949017402425243169135812425936696485096943101122056112150628065366748094827573347699634598370492398791739471061637195238346305552307108387276356822741454847135437773384764549121038481511887357573162302310481489257360836069242838016208203479826455606982667922491179316750614831109108792927888556720596461045665750660215897075337433132260644103539332184595018886201790785309150142511089992973042544363635810067335006616367998141896293142367678716498110298962062477009886881313894849251099964957135008157731211818485328235557082964914551091743563467351981419786730664855466582680339882972576271855855047096641653368846539544925175629172047664713896325496458342275625856459718483572243683175332783206280024247636702118309410898576652980302870698354034827279331955109291837811895505789999475330564221796054668030293106496761961719241502514545105456065418097010784684457241132399320785349540793911604887004476032323166005809235621526111372825184886991286637129068709080894845347342758506255599119411182302818013880229985785611781444639789186684844830387771899963989458727308744773920496946421238653264440713969800312136890137441380193989370012987786100498276290068710867769732358774604184655443974305745816975468390139262648779318029677221827612841874753050894379784975908188632763711327100459691102280147894607442694851100876582373510680642596504351401313323649827795102397658614381553315143643118289102379814312621923178300351334487991483923764676080468996821285517881996185156853895208956964129067330506724805310723232401546969111987181342809327920784112246821673507283360471641628671137038391374871753236923214603524808243492114683966102265096320317707777029207473222090173730266732885454586721406021165248445123350251941391461809994435755122047302923596010793481119334772070742017903702665637758317556583537734918294132368898262896943738377239312891982333959635136041667376237059664292255899699344863831889228691301086999708267436553215472287104735023795577437301784391861854460228944339324829626795545059603471333509829989901505064264701296061275708635338879577523756280149847395270866809292388111526176721889555136924610997737192646430675275723846149599602411283406192740921681002955077903415154380064306144952268882525114493181262833799354419498988508284155664463898736937041281944606990607285497980235650566794024496694538451466478226265214568829057062310314179808063958905306984368123497843208754581934089408522119305703647308111404601607549921331554272901218584462610199464831635263592337464692496616003556513904893211078358646934450162846685646982327116042215354949234356127958084058255152550634919307452085931569001974656868321328575226859603218627926798399218650114904398121916214465743636746052345571093163025846137283904139604073780212266086147538684380368256707054137405350762613527709259629784388058271020590410565430620290490778129176174759316179286712807706937952227878910084921721616014318695415196476258615494798913142779019568992136007582768202078473277724270429128351314518985523846846496995438744700840717327414313961013551444061265945007011652880338802244163858684283730139653576422807225010135137428509521329695754295770936570145049572622094943023873534649851147798181162774734626280419758658796675329187774805059576633596065959314365777567696099468048510264903664187369669140991912707326594546484225867515491554517868312296531417682764426632764746071805031983835039445390158867555029838741119754991864533294597386895613275880544631132822372059167779144196060543867942182533677312464607981587400359709197492058883430704941240672446548810369499513275200945923052030042557985575076264015931270537241852083404026572894608174324295792828346234064845144710626751702121806904421418582484494019053256082154861467047925390426309243747274786435842655320816006296143193214375210123203866529673176089470207263857782826334011445553471901132529467413441445727566521643184878949284660117543074645268954358031047912261798176530886320096283477882432934538205232917639265346206376818270217965859866985455407430897726199231514613917561580571532461806999376020062177262109451093534781792289816449898848397317101673995256942597476356189414004564943919736864362949861097315356043426096191327604010353458856583731635006319680391911912358622503884174335752836301078387998685361788380861707284199836741062847061424126436910290410106098066461832536929652240409452794410955407202606567659457274528583438360730425731760205038597483492733269043261204246580509055739393887298027954774608425688012787375218209235057945915759055890856661460085153943054758524332280337764199109640350911048243585548652757088196731925301155426173500583757083233991289201245255196641220661054288540972399936932987963196868276368980764933312830618568441825181980503550731736637414009700661801065928543995468361713013575994325899689663689009013060308633962023230701503730972562090672065068069523500482236015122300567698202521198756473789291551587436304513034830524473949752231778475942338937141450925204077731765244617258008386592583370830675665483648287437233686972593244848705142622110957782171050825312770911545377228309401511864649958657309077149439084601261069323175582422961724126881659914705392895730259710583966630991574693891712038237900938988095808505208477113117983461589257745665666370463775927173134425220455361151375874710093856677555212157829531965062974202675877761590760436617650660893807183564323588813359791785425258669766367122167800720898126203189603661112611658377574609898099991256563378009211339117196718981175302463268690814474453135030834290567641243160791688665267943662505946154630124366132557878924135555055971446185343158497297886232967728684062291236455610715627855583880402818864652652373155441878207950187245951249246342975268650341449345049976667429061589360139535529697789126273789363175408577489745310926773211359050178553129896127404767538593041132934728765093205500782957549564348911935409904852226296728534137696253035976212767606963902851709156115382808804467949260733164920230367394060292319588705490213264648859353072800195387362216008813967817740213646814541659005593600605505268335152385780994348871646076355431896100461031238996804779770400395021559925439464679953703366285298918434426631230646997805316933025321157978960009742768770587263074188808474940067641245761675047883352624365397183850586363995784792281487734504965780701051442214130204678782456726039395652424523423872737629404072518936182797801827413207500333447569001302391657999725244139896891414879891206440558131841439910766388934243911520995457778592612508636537456030979403146837853026182093170264587388086151733174978769351005986795000578005399930376269052157470590535307933740826909631826338166227255964637163881648403595649503107711721211622324128055865687176876654953176672655870116977442587835940019956569584466831943755021136235133130011668939130960471934219275183849765537407958933889269890850040507652813245634055163007123655623292452444694287512848676014278546404506005891843168525451266848796567453461918958659332042264306753255957631572272257826501082084283716898890249339146581996698670049841650193842999707938166514235017744249571900926445960286279729949461157645233148476787893320228608044599729476310779785586774428047629048415867462028014645226815004030355371379039961720455421990048872888495169098686491031192360722296664267834132237405326769431642155149946668578259566368255847524931614577640688739073057524115888082925917292101130395089826511133473375869834618699192153142291065423546002322364476291019081690837527154556190216512668465646308431104574901549188532402590195740785386349819475407180328503466002541530660761594951392051949860330945542868425519018686256559339832643943454527650938068242859062981054842238657108701013269261596305351446640769535515482070249267842427043175852439533727229675872384466853726920017979524155482738580117884729593742739797502642752327704623718072868913457799630306516879134270846247712768676213098652923766902782441686580963118079705792804635848129112039938474070676311366299614420815016179145849763790722212466336631009091936614236663293000372466285754723079260390731941324675634244787026847845625896262773126382115672924613822840461479143351777410605764462946711394169844113305617108015633840222893369575785305483601115367589034700556743947603028268668663502373875018147178658035040649685881365805639607247878131222977384672426452262133949612104555511033020027175835358246713718181151711286232555797697607897364366687980952228389518737709773589650137165043590526292316342668720850654913857869824614957699994904343091623314847953517705676060514339605122603678188361845104896913217001613817177102599930546244295123778455187954168531392325621879908045190147301979394401756277832129624283094987877708807674887984241436039339571816932101125140553350909614103172128342806329310450737857510196464900736589480645444895739700043152018523374159180022965997400701170211036609533439525610906835923919439192100572872234591992388452832032913337783233883958156919551996409556094579297427372837861191314022428934805293044637371809623997266585149477286821825489314679620025858341397153798787872368493676003339273729916043316656394768475770422394850766976584371913469982421648001330503726382847707482444161168389933597855058708976781631474438811103305030194120480253839275131629796826377449987228301819876595221837601127205162575340835986349457903769965377623032814743315535608434876749902413443459908221312369935001941571761991564157947721722368542762910828428694343949999295749855060853801232349853957176866723330388680467208493137514868821434896787967642103090231437039276413438302514970580975205394960751938179464970635619986154976661091428903744731931081456974265050976799179345539901737360059130617807351415756291624351454416932447596340325514731550678524194174935652528870309207200885661953408015147774676365261352410198564640094651348578788601451553396189968500972832823650509914528190859163498887350171939145422152799158824701802513982476486490752576420376847393705704917731536245420607405401644729233516206438397951161463993316609142890360059412950144950563456656764250618379737445355757083753820605653466936645513985992116681590052610716228916272447612313038598856102903228655896570318884933787579122786075671127827920567939371502018809580327263593091899194727438270726690113458871607720164284976796931966206866123248576188510864976711759114078021127310769755816740497341690239806941795550468956036373396372823218179028100131756663495820724482891136658265424866328492869085176730843224443814381762524142805218532294504679137050290390792948055012268213473328521278907706803470807300064648582132149720394897602834011306667153452644755312265389101002551862778379266240076567146553489338957087902427856909840212651944052103677967208959810602868715741869381028305205281196860689348031517489565674484984292958821575357287366930272965786804082559333363735363346172139736669729799203816000831897000383279251539784944498394778651466128929239605338045904175117903658425802368664913664858701649864651032710410684439002047683045640690650075773137372886813527481678202206419072110195117369307715398453037364747699361626143250057180143541836797384897444336236789147601927344419895076759379799966734057882742761711768642074822729655198226782716999599235305898913841357563756200755517704031076778303763240261395762902772840943090075238537108850565451237574717176498315662302040003951074069889256878289166052109392094920847331475310453036726337485665380188803464789267895328009595043122115942758310286839301550498704299768780065806319900492923335126812629051263589996961008466393147948238940696567811709536712628962586032677091958120326227344106677611390939401391513758471862052023751465403615272710356382103363578989912849292839793523284733939805191259626903682238308681799114114626261127097283390360813229198028834926010653143202941107948161100658473320432075162911552690604205558029895320704415264454408344558908778207687480109957055699321321442220468426370634102279270309679694253602470852657700839000921103529128576198384331376994665070914534819580324126758105145483155667412278998727584563417666400163244233908456649299758422328913499289539070045516834662080594782065391956800171538574667785115544314692959399847422491836402682130807724556484231241505765150462662670979013494388554485381537996265156737793493055412548966731602239247010894591366417817750294530375154505414421384077444835659170360385792103620322588014380304808781194279989514886457243279185723826332545212304850964537689652670094207045568473555974512517333994696523847799952648097870490972149608376750136508900289423404016636364808253970188670192072567781801295289081876194567688346228399138173610989766564937830074672834312806932731165921156574240998288680819496791295200113114327141122040759012958657724927404521593021651979795262997623609787029109170386445825988731996535691749447846891105223446868088435570709925501185699196990708026734754250652060018480757117854995520775147555342302210780855479427307128468748585626130527296807687993374436434293875807804708862190563870253608619334469559568760943229504888272006745580798808279664048459564407707259584064378512127308070258236820075457190276662504591159161737097705638476701937943961128647195665435468806726052039233766194220309093587605958444438824147485944307999121223192906301227773336072538504167140626028674302178547878209925756984183677925414160387082813930233373122760697782251283949735784670498377752839717482923787474583507285408073772485889407102603086738269861595498554882311658999173187677278874651062351076437604769379106856329067120597434593687034762489671292029305737088983739883481421549067623354801730153323306374937855121619360577106908909383098922133458205929597634271025787667632121600939126215372525142156992335336314935747920231825496667968895819265329049479792212114972403236530648551870719451306385051128500174980660153277039662989596727158411244228748363381033491243134552069587869814364783252005460347963032689227198497795198695689820556759203237256842462414534096557619764608624271935662971088460057517565441201619743344783380220962542145766916605901694044921024320757735657611057235950786966886254060094789363111596867367638819317421297854569218760546320805722859815833550303448759576546196607926275462555824416068632081561541702068671630438436293715596318395899535207109254942577737780332489850156440852653303796231225842521823576391539874286030943568911021488108278154406405651700415510321111614398179188450041044823362953723136949726502150387315396527310105085388333180757936030583406814161819147581494690692450187734729329212089854370938019142985972137731195409179940092285564729630837074223117942754154530743384760440590545622272070446202574733257025147468142424406051816429712004846286091024481523437407161956238487171299972720025794447582964011547213350671939350491458668303986856111653436392560833788218186281495316744619163127662539917508745682559914439603024059229321326238012461441862404633237520911422606305634936840840641779046175638583184863024078692160459388507055777056785590932911355651366338560794621720283734783696514344514013225306146831811401381958937256816719256053142325978338767286190449157622269519325844144398100406785173010020946836158459487458915908144777639615297088267179996356324703648018359035927741449715598530825696088923623550394073502826541763441269292066728165241816939727860767713070239756319108234634507111164177113073532971172122669892945926523225409791093840668576731061743006371750695136602281109293846067783802859211361948902068125735853572674680451473491605096610741328865897821543741316370049114743993387148589515636074659571709366975229220623664552416585889880887742035894329230032343358971293618408281142424931484862337508698563084071022528249904176047725670975058811819249928714098538889850733570658434668680768799979171360972449025652915571491130721676465132695079658288598050593561685786994038540767006017193633538773217813142782883190337198821343859326327923449290427502588873161200554730095690914291563493716007685698631322207749555732117516924637549595237632316358402625171585788470073278227147110011890655896612615411470674908043174845222098086123629937045042400190433014912794375867856532377717245491757317072551267498802927028133492730052770748224963159401204213553045479800496031352703462531316277446339500262131837205512595390746197426994682363290250759061686700389193724855780021203050713194165041114620828219792232381485052412722643586284488376028920189990855034171055168999458035412420814586498295127939377333805053015372124199919399647244037226737664040576593852144268654109334329343866527499272750641557339109823854937549461604406757256727714131702595861332468494761960849651580622006365714922043918739293251994362876399513263651056889221405295605349349605118239910253234049272768808635691233564155528624420643363449569179770316276177617042719242166751115901107592255418939371363416196841107267219496435802520253628767471662280192238822974245584431121380218989232088952109542091925927369443984755051424714701916667209584678203367051463838082180441033513385115282072223565833391095758925346423466483155215080540381396794872355131101967295022818195720663441238953264975466717130192660913796091555156892597404526120137148041664417190938383814387040828285841339910341303728551016128240849346136493888527037522268731926069573310343203100108720429759897400715600943752178523167748218957525957266818677669261531422168743028392274893306859585606779827712931154013502084293004054653962586878829426267043619920926758571483766743939504498934499337617327876319568437846417699389019883342266145518795189553417468511437548640098545464879696981700195444035268028074462976097156480363832347791914053356281824013293682545460563612887862614454797176272910147503621757876487501065662664687295065414007898103944001232605230702619887654879989699778697197039651150966306057236229470370560110968749980276101790897526499014712964182429373121159470168612869328958909396929407191863132879502589826390956945836736609373633397742552935128291412835445860031207424528651933317390021130538868711027772795100772710365974003612245997668898730411320089263328959743107665887531692160177074072926139407562856641482693198025174326769680533412058268800018266627488732298184813485451351136134621196998294165676565109103355157324989113219701329866345193229992241691504311282011624914193103169136575685582219587328255109568805773449939323541589659942427675935997360883474554825188303687729985432159052293937863668836229255507425063632368902954368906997105133060342293219227121805168424774698969262114334908028963645704318731710475921102513190396910298156720796015657418809495499749056778135526080645837163730391395270114447739099436325790700661329592638090558160961770308244795210541990220467145743715096365995909632404072611180788165319754360596222583032623563981090368332846388923730727236331515024697119607084938025844153032558524004590634237339372289127336700380362511633638148919230034137708339445563528501768067555014836921562292300603220354307539627007962566041539367365820503549044490841359694916371413483795736655165710282868400585742228421455591995178222231740418608983870388760668938303288830684255424937958517759882778681330619978836717988444435534267848851369438251606708900046786208395048606898127563737774632339781795021961064441500245287564145294571307822905704788956909369972352129237388897352295354388474070790225794140943333973502379714383070367939767819288040180776645546995593864766302221758084611581506547003947560092407241827292927922314526005591296692122568830422670246252360436955176444185711156988553766581234573243912697161363184845528494428254463253830637877254650100460720795357952199316114274713674729091193640407933877285628046088660384715963553523531544964931420063880844737669847709939732787874937457012897645933821361833039876925773428753700687766659708958968652835795732195962701634640100919317112965512970148216808249723212795153223074962660335097934470712549282904688540121007552948223454537336204776000931711751988678061875328240911407004912479154533293134099727020487104603480856332366832356149298895138817180545899545089965098079011487257045207071004490296834587395849845944651756013940065988499873185911622731718140725671393390960016114953954864049482466183473049342249720781923406089363396254093949816607565463955334524362960512798564764271630636540350083424561801692202706229049909120376529398279289100410032748552066587681212495978562801430100711059536680300077153999827112853075723279141281219930146872102960302250519417080575287759282518274811423998656063607423843572418452188832000629985512680532657528225141281187516122766230924779120038788397019095946669198051611926721892707121526681082355596084192870670791937959403079127773433794337642439737125598100056376029206804221265238686698742305760598615720819945800877218891817784050211840850451486149208281365435196678082041696615525881279088270145580623049626106715009610208869957953824698438567909029504935587575814560715144998787621459055583630973582241327269982809332205767456826413776037019276189338564806456819209992242617338129347906461415912844724651773332112577529809984169013992932590512203303379163439570491769605034049452037118472471232432824652394404565640047956334076953581635572725544392322319046104831915577415371503984329250237135599659376502974290577123113894551263133062038076168550867710226614518397233579190832464566039118459747943807630047979197120387582674995758193921491332225493123353958240485937682046363299751637381116226209875821499696961972246511110707928966420811790176803445722116307173330472063720331207759453888661713931267825421484476365047464167318561913915360685741940446110862201940495978000748394561317527283830841324812398871387070286387827540272441127939649182520868073139814805505512260729661074072578860053187450751765506735847758986268315967369351668652558605537518718893407834812717181712814331484165884029461999407253529607368658947712359317296286177164118687335474818708468089289231465370773330373324874590914926709335608296568844541670635009260766037789721789212447907837009165828091880436937380390434369855748536793257429958739674995711173411531336900049482218014442809968702330349704558846145920088435550692835133160773663864073366854594907035666965724920313182009941564676148898124696738529750893046629251879136245103103884376438651254965783980550292921917794894500990191798157419454545972954367177698310526614044301786981039341003686704152356903671422809343981722602553411205168597279314536757658644318289392840631964846463381446005649267589417567267792184668016292717801939924489861416337579444065149931737439846871929419233868526144845649001914603270444117916770332036388368766414202612787386008254489055822219231705540312151208024082224569341408502868708992943654049138264545485199373376179281640732409411879109783985178665087306717536021459927261775989982218106450408030345546453751384666476140857820433770013205099470781072469670245884630034170391524548186215950648309725946103754244923396809572923369044243547239887389256096408265385620247392255426324782600658408791713365435114244337598560746042082883552189993016834640184710373147143121475748751087414375457568025824311079137304863837150397039578426019222082580237315124811776829888607466586651725264857394163385325886061313153161640108170766827259960134965780603554708959272949540664040604650108446881219625540062516339383287014043861262922066430668427122970001396369400614291240264288082002188508468447427500301969669707463559302138379573277879571527082865090862620765575340195838721874904823993761863957993084118191923072744807466854187465740926829225734016603103098361312308246393801346618556846623753749895618074704461730078100850975417609197759454460364828554810485673624601303868160545003077401563989285656465527651850513914903647952856711017821370978059896321089547847261043283155825501291545856671925600690697362195418081533527454452831197991145785562957788685272562596934443032891007491704115846095638956719173824814619798945189354199016656753316397277127925057113670300531334414523769325038683073054939372831141683093994479913159902305421912770601803734213719493161955859157716971188679382136106237437202451218719651707372106472973369586781284485346504875763025603811076254372467641544373177954714104043690313180924296447562362681474526120725974212153793552351846193830075210881652034261285910590307750999776910756743585167496213420450482373023457637731976280229387893082543240825089806464035436216312767462713793830895169904521618845938588192789896318139277687318882573657600746051831191867033076038729892058036136390199045048828709699645713253783615279005466094588317089751314128479229548718983803710114538908666221378047992653700647149838056340162455698436227338318214606142838056134498665338570993150289111729828351091379424299265674879272899818468983321454111573304357064496419964126005182151786231462156036114118523856462802145030482099547737800294168978235974555933637874695709750056048463798596674070359856597891029156515523804667132730191526584460255724752152705064144132983440912790278175929635145234517094551837076638778606371841371985374771838234401844864179239208138887665287501315759335653837235572244996106305277819269958406582998419207416056247376343608689939062676778164787657925795654925004267077847424646878242687689973320263979352251287964985900915540567239271459369105588291721385441373605562379276588075215537013902850006567809803460710076752720735156390323776550802623692933681749038495523391280028883360418429217979564412960488589001626312450589167787041117708803382351118463225542779000173903538521982633441647829463471151804901552666348879432486716950207071365730765361267056429051174784552438647950975109588345078672967207517039640747595034639379316483003085262468776812252724051579455946786939429514944791706089069454865958844902084328612042618011888727750083808950280055131000566163801827244478643876016225971958375690822990022922837770826119582755054958681815123060868065459251093478301998505632147586071957765719320596256954508072880037688777338013645375027294210413748845929193553334230291086783644528808706940158523053972433921835048644977879414633042619059450392938851743326291862971220124650907891429501145138609460060259239522529665508507354481374945469002936172296294587139678322871863038471679157890410636678694073883371061874408736886404179945238165255232576748628809514492829256380154691616025842195908163270793526162166016288384411577564179171302001435978552968608418915692942197423537431106358250558537863142593849050814428788686617338110794569557267148581983465500407312336496365572689710975697320809127701212066963099472960694610715821291080009046671500928914580401081974302181508527439922914899265779313635524926909971804743137396295652381310025426688554406657640886736694699287721428757360634453617794341637378434756183324849847117411074580505372594827254040332760571518073433979497207596230809149325967629042846078587805165129200143082959973658070115890614049612396971471259582037473543921039759020889706418083257357765880965146774041273970524684394505043339946263693160290179560999006785837892488620292386779751383536328011212957697191771029370199924173616090491947976225800188592163403176426095048895713003395023053172797596555771711317255714272290804066577915054501194445889065770375575203285056586380415258939011114133689971670191831364240317651400442368798580738337413013710821744922887096294025541597708744322180343319825479043723883996428638286332499464813834398225683178851491799858376726598581251402211864541174930012396806138440734416497295285841759795070250548426465906958718783867949896473783685728221687528809028548683369246844748514073531716626584806055490018909668532860737899251153366014601298932966427081501954970842041746943226342505273666109994283406885766887649226666785906216569575786158420127437485608932287095057557293111835253200909145134568524433689033702287156260841194547211413771575907579485486118971201629430729099793001524749250798288645187876891925858873206295032833535326458955187986841017380172309976298063130954472033917257663897549561694982146747304082357060883279514919857950988568927985852653516277622961307963042638581439261583246583187244421932322897807655827176804330133828267792268896506043770663306343563927839018375554763676707135270355711421075990415512450810861851538644548407234686881742718866847503190501841817288261437725204489117123992040928646954994053438066678600412812582934076485297234902376738738540290175457479080849226395973287463927696765885347483533480931844477350207607777885456242340318580957993377708597369477744264938050745408178201020757266650215160518376077751804378591234452021612790979651903435802312649527669408350306308720155605798886827294164599375812082732601559571297846860664188127963590579012722010302977249289274135220572641620685629188192434474763815724298323111571536033259649822554770193288490405148172096631558385820392589250897362103376907970879254609524954747630487482457190999948861919605632353024778637638952305598263804997697204548351953675717398758418579700119631742283221281060147720524364382556113044640762903221466084941005571794938130528700829652977069210395353206621441057120390108270877973134364622991238352593666438026708162285623017128403398601235565296660436075544273031164623047372605300448898086085343619152789433362808281721992740387527201423430609992092868379624123442970812436555205585454124524070559327221361912049234211875524610647503727009972921728082725109698229666009995823549628774755552278139278082443281958346184392670940581105895803966477284721033662235097426007004408767626536216177586441092739935218290318167389335864028867034233462011253762862704018541910057010947931378055964809464531462922874733000323785691006175289716918685340563942014123711027690407639318732528098025367016207868978412244391542552151232288811499079213328191659258020465808333958912721048223718731475919768745920648692953438774294932990541509770834936882638994400044516597866903645098793731599164437899159792133549074536860228486379607794037708654297417254770375673481474100462684317855574476274767333663254971722504613328542339576467217754932157483274590785788651654075457546623527732640036356078577336025765716243176875574009582269725579446714941352265399067729959741594955895404302621064149365809122596555555853322016720003755008971569374547349275337756023852386350375789461947605296938813860084929634776495789546512131658417643026846142014482846854795922227617156982497534716531353425376874782249154072134008693597718454392301882815646075738440904613449500422595108742607222877973568429649727494036511341790213034670826144357281098780767587076828369901942366480374927711556564735661535086308388172177383741121599372516556838335324302535730916144266329318500076848519620160515883924853484854003173099051184866276795800886416987113132080716971401998392594415774332115369564029811610710694957548285338676320205265279858766576385349655070609588471037262376760577815600088827466532323184141225419521578400406736135898788456473204381610767811861814104245404731904119634725969571032116199527418134851694447771210489981653544959453424796562035392675891243809069650606414655248198159367079051991721398192386407863518173020093220265265768251754404616779398740473289919226152069330519518194783441033327376116027860287836167895678087290554918273773692417844222881180118661827859667193590639384591198919925529664223824646065411661647011445857746399405060700406450961298054889936234839815928575174427295510045964243442395712637762807589936696041171827796038063136305971695068651143243068696969716881350507733604332353025122547754896846336252871618931011954900702538496806898670138785357013456374802544516757523982289737034742237994034816554457842839024398834213238911454659257650826446472175780826796083817133201377924870571917174579987403814678610726923763245051449818877127488405757704486032070057486116332130925178622715027165663196707964023535469882253821025719556986994476329073554736136213794852007247877209185538244184311758105650178550540662030419213824727550942352736486319248196722683632453387574466460040722503129363770214058039501298362448223438077141549545800235567467378706792406722974541956427467611866757726806575417285615192730386515731367205591610648197576927489522889154360977745028747956614102499849842171214831279777022193973941096479684076573684969255003815495181858351154217907365825615336431156351988864052772600102502550871509627682665588133195942938378455878344147885051090034787413247869546921600895226302166357114667645429153052037956083764521739634712725125588242630429981592229578979778457982351813102187338578435986444903851382344940480174316726078360600817539057233287651379547217020368820840373219958961770309893604682047040155830902650845970681138600905761866884571423940778334116049223476818714705438779504675181353457925782729103174742773357573472785422942292490694938717912322825839379805073735375513319665255675157207337729382229814517032200642296190918731268551138053746935436463983330431568625422965543370496291062039643645456651261797090941479053858370310305279604055636736386879297689457074174357134402953581780586606043721976894394722029195032382532652762172469091438791422386850416336310926348853199632122606306627046249120156067073479759414388134308056608741200163342664557831242719778645379487632691762712533748525791544832132696892952311933037299771830369812100429786640565271598826283365251435561162704758054564114297640786565658922237778182716746685143385560899637306359190664715692319584463585212766307721633187330801095377948679870116463298467232733116233428429331922764214118427666766134746604486468359175076214214115895558146027338352664768226793741472467489857274557101884266627093283341207848318380285283246767119971269683294385672184537121311369323898091422177119619008936827272056637979867032333900624767181789734907246383177381999645791856825092777844908401298802438913332716523924291737225111808716351682610649791593186189811442525585624776060929756475391364291317110025505789482272565561587029999203332164617570825207225457112170469809450118768665328412664002273514079296578085620709153058705054531121010899471462907915132569981923877670879090186479959458489447938119577467387803428912282375507234492826333097182881137149865500005275260362259268666671148656270598647891859725103521171941163251130108160946972001821191619326881609705706864447541127935678059851898117110481704035824368174335270202393655089669344975546720737110282907080115515947223887764584220626359698425521568418749804385410595104190214128709244907112584779573733576652129051155593041905626607312263783418126010713196581146813828960739708865066101675897413857766486071785953318330921378667033207799685735357269995093304157865946355301823493648244506510192258871003919862845910946812464386028230469527771417193164173977394776956179952440503203982629905864795405561898381214399160808784160700884414070539390976388368679948276747707798754224336554801075056992408927325248747721561701090920676958844431127535760934133263814400803342649622610097941441701634004321585879545673470837889214620220682073429289510092294741926539245989161341879690599746429485689032329879798802378977673093863420165982829139061798167851542802675294324231359030168241008721239698745135270201073277784347566062443435441885114745439304726376684480405249531661009707204628845889546902340281490325731320502329520436044690547414063406815286059637193010526433949496968627909706253903699384589776200600681993943303002989190640074126089489991893199893551052697178356676437628474670173255940961511468307599814786896809463136859263142548446364702768728546829876009556094985120616407291773556354651134590534667803495213697901024902756888098773716780021758407422891323153278194573926701950932299855285733096539350560916581401036085558872631820762757566532633896695516945453240591534107569189811027675569253806995000337452076362287165693102590025055998479529244020757821052106133282819542689627779482865767048430248670504946303467434122076965804431565495391358640040306091327040706624278298091177832020781850258313566113136341390832547561942783534856232084559113997960791538419037793381112961911852526243026572340831986608642944580188800785694044998377834075785574060682422496712504930895208833906838567309879065565288972447257624418127939425607863597870151124528395561617706317406930214415929042160177257023217977533944725468676002171595792899300659192926817043003635225590843307412971639173842595098004240639045417887262596129777849203507411472719294963176121689572028367194849252605428344120173893070418327015340059422065452468376743512491563949916075965612901486344782683861553829197993104007763713553226778237277586303370830009654969984690498793370633042920320105933689776565892888292696862106484848668617256521141406251814357855396324206027739396884795542211192029119504592996617715393805678573410558053767478879704579670411314508595491365026917409951316616111003943998249132535061383120128025387095954698819564069873626710917230912901263076369299006202648240305299365693878157060791746290877374045735134862836542558853974917040453182787648181019878239830859482094727950996244044088294263928937380744806975263576785311446006648275160537123319425544380424144588609624411926852708970172056762493421732012764276406275624505136516549779695723624503158091527207560373090826838170109788893105481233247745158226895803387800398858589727360690443255849716942514199002865429808451280263560308920159232782185376290167266031628423471738340911241880683290277016501712610325724521143955582378119130733167607749968321688128181353126259398476675769460609141845447304028226821495183873719230334027189012114827747913058726265585030860886452846366726085538470430448466705825864747041459431364772110919672078514425856170320747174758430480555495077130717108319718802725747272173514353163013057698653059404001013654948919531625483910084800999423328589689965817629626079406961246816711835979574711715634563133870447371297139286870646006165724414010063767314687040158625920597207009020018532521346375875320940231074379698573976198320664911674217286601891038721314984792298551993715472790035370593461347934267706407671643134217096565362974443222313872626508745430213464583892933644566257951998046425541593962498049977594147323446824451188461818711985873991943129453554573215040946166478794823001102959470566761727844319143743156566457935953082460003725865680271103848173254003860688924034000079866433185416938433409016160004785121198219179699942815090961768000977423301420895078221652026915623055824548695884283643912447400528047778701636778661386040064265476683958768357940468778466843621068104571420187479973284023181365815752212504255255157781120076041262837113456854510888050494540524351705905904090341805712474013046797518988364500463977643235422558510623620504543454581691273916407082678427461817782821075145632713222344355010671056652725642387245138245756226718050681421547198871305992973174081111978487810902121841933203272087941111695021686788157563732173084068251613766320687419086125233279629344944487439013311564011787991562263160902126337376564188378721694589077420349343618890789910796490566067404711937903104711359468381123586697289301938193135828048308458139696621635570453904077062640413354841158211593737029554906449424422690457276376424142839369510690103708097479598248887158036400146080551514928325398044532969796307405370873156368012018021913070782611101862076757376484411560017180117064782574800575198855510236801662674771327608112068747312162290751762307730888692583357494156688829317573912212828852711901593827544528030927948263973582762602841326814602037737167965891172008490209122193818058867640032561027977124841097669840743776347994784006292094836138397638222586179866881322272328438789957206457665312627095130748896142977114181529271407998505309112981130188852328736811827316379991229185290108028043852897600378180863633332850460399302839096808330237370316848987811531860175470831306086205611316843764384034391768488071747957064774000348294521415068596480357042120758949315982047294675065353303366064965437848059849968141330829781805033436143082914552047633278721077982494450421068367188601938911187909043707927171223515269332918289173640397853399170143158468520345543720686573954080791855921101444585189683809211005117731767950796223569876731253317236712569227001018581134627577448222464261423107032164970912733065046495175877007797811044984159115912438156405019430606216200695900002081775508518652895099690843830745409850832829932027172425019605662498100003393508469965669742220263379912152642496193328846386765800480218371455577089134877277516523650667611168438035915795421008242130392573292661485298279583608088799471157395480713978828834332070267185527606437399397566740127693618652916981507837976091700857474426483006068935213030736750906849375863319308834007508582717792933556710254312300277531498921618500352976650290302921693904541275639410152631928928175106038024350308116203077377036896928417322976998051678936117060894692842124678259382375744911188989705675122546269975786186322868366155499329571055883961473613898126836473641311802616719419498063557649250172765289630230159393739898362116722755215208349101931060730641033884588642146048430360556033799739314651972788057403682478754981953788019953529091149276659441966153014265316356815389334511638977304567588349728954415938755902862953330111203768215587048300604939689353221503914773882864990790882660908998139349562734734841942454314503189472596797778088308409977035288447205579094459989758528443499857286809630813748494519922155743289589097632983009054404099327220558808912622258818026782760761384216724412483638913786866865158616862697277066197988635643087657282042195666625390264533777828033914164238880350502599621483573926765262948705753324835947853504936107930829675096058948568700088436623323170792003076479390581465278072571590547258253839980475430908533169922519844252482543960852515858676764072054638051243994999400250936815114661142385648428087146122774246612353828210401526485792768312825474801581590469271447952078652007871910813767610729479949078583669195506550014382783913475625188758747423082543332341191446483610877407853623589818096980739090828356014661807991579357891831442184379631152186172548340850665295402007996209540567020631450255790614703140203440021310541966888100647775816240215302074390627046807314465834290499367520928306330945156436716971324658003069222015263608240381821033462245359085930513520963064820202825233877532332841892556330074086122437606614377846898774703198023781553041084121112513996101676475225441399089377132773328675225303048765756279377997526779198881231471542633524434844112934714996459161829292896879581218978395687790503145168634070098951680966559529602017736200726078593072098115386605388422247481952263881731355000494471772447392865554735882880622075468395146523900962115588982139535550605282091528756366949718276103790450559367454242877009202017198172841094356628980280648850666655746275857083070731998364099596248325740972785230381656536480429583908096554995755418155776942757558499990174808076553670042766596733977889552990440708706621244780993678311369909410158221945811155993893716416591748569916775338773071523082634678309729901827980420023392238797440177444975533357198336861280356599922427793148936772259381008009614225905572404616071592454121205400731712476081725611935917484366008467465841641161577092067196281764177576618608041882328796444768728217883999558235379947492642274475973361419042304985798515963014414280230657247432398251597113822915810582038207736634593269254011363270070453232647623614903716079903982469431220717472065984036667156565805759678957222166152904845628615733182409228463080095276601584087872297040770847319467757697079147167258201986192854506882073314508297140353251113084358514032485503151688047855256237396055897115688494193233921727005849731142230998037058954584078641716387442970765834156839562367719035413455177199011011274019683878321877959888558858575351252586763026093954819426564591665772344830605662155828576230195226028841812877521289233200095990133207434400934675294982491123274411590162402148207308118183187657709464989099190373703105232584325181833376989710639371035670608601250239328822497731638107047035711888507015230129192931348468977328346837570105551425597416555988029407090478153758197176328017264774882198086906485005282724008868387132488253641050977526796148236989330635743967767924125447852805053705014157835598167479258816395006383920721321560572006833514707027304750134938513483747626082643413147876716526355333613208320169669726394716464799332027514820175544361272375191688558583957675206964586054552561084085212086207155415705283231256230374066996932037485067603150463085199230981658932483303577665381874291284377849108666217379372758844799446403071024096225536191001345251442164657895250127858438833691935082470264578916071021206936029620466055175696446854161812781978711436501154999671497683932843662144729062902618523618632793493472279711437916710154109493134023134395400126976860824929979085165271795888144078905831215569188757802144554182228778948706045301761440986348415657322834862308526215853427574347136153708794675075320994263324075651185991841632278313016174469246302998733192632172715158029308544831439008690407635574141202011707971149787752053218204294492032564965418211633906067661759394483383904013153088828973578946400241002404037046948045294943493909330325117180866895274345934055582991119351038538010344953856769281702573669578814647834235642755056612804029934620940148849722465486000278021355617392259313705369193055443210489530351143179788318177995495925236852146314056527334878015417089897309760901275167697192875140131756287191617360704929915866026993647853712654862272665496683622973068484380390628150686582352623084021436799434244621199253170817795388006389238397077664100932002986546088245754326334717802059176670337278695074572464561391547482556490843672856431817010420329089439296363698477835884452318317464133815893827612429648721852848621810585690214175249535335783007359387283765264434793213468108373486460533748773883726824725678176593418667882932838530455016559030469912672039595330158382265827417526237468550712327519438385704642890982638470994120341187927527934119275259820520615879275104954788006642850578555885787611611337745074189980294382397449300723069353407635658947393279695451218454170980582577397534128974336970663584118467987723572179464784440800499606030368803672324889176467655360508385616053907428233211884315999721479647060474229795810712044798994736935570847668531438514015578625421662067936547084406433216908677766301647956015796290468129540972586705578550551833609032643943596868700678788221441518488827614638051807969629474903515449325647110914612929065869227070365490488734512960845324842711338533504260878766585065009611661917018845912936867978286272115649215295904818331138965221784412008473313403343087558759013161126910616865691772521691106245112595911635773745033056287580437272642992142601733129404008647245762770368127355451223517997262349716139256428253968859454816425564017042135429727362715061900598749972207730284855003353496557498005819870413176235022940433855721742216348994075815350892010394302399136530749522735665908360406377052236124770324061949368340260595519364071717584193359959538093880008963853306298415980417843065278046343624180245854140048146445903798893814667709803123592242592272607432960038703377145156188856989059426346630957954705547846248742086882135760219235881545097970623710400916882482646518269774142862109040805977471134329645757692843006452744281057097500712297370657065170561485320656708851632488863267616772254736200812794267645982507925714079039901945977090059854203538938828861938399176313845120791659433393545194294828544789501514368793709967910556638295363523914388189630274625328147604608043167372185647213709207540128790660733858096001110634625560740159555024971122728677380374616829398499056439382430118029573296412060205597325051263758472887479512430365189598468174796919605166860643751170872540234769413204771088590516155894403672384271860309285012505074868839605755029650968160277288549323350864263067124067313463340843690721917634374464443160292926079289099355201247599478568129036377001427084047749212689689586252692722288340671115071119369353144407470450341603637097320337590536619211353006604725783364077622010921091502138522625064512973004472705263077884261060327118072499282814468437125322842664804092418884224844311084317234568033586731630178135579145575732240410564795349795860050301296494158408809611790835689295525444862887157154042576351604600987185657901209645899469513281896323517272842635466504249242060353595950744185878455286005375846616122875441268279388357493421271250502899645602358203083272216366880320061233535309877412360170507735637138926146295490409053033665955062441986163357601632631602701853444049217961813106334748210907182922702647472961786281534602338964115728748414048577682446449560007528204906598214979730441238238671864063282201455102872631339435044491030692980063461385767580533382883404288643976680956556429879304503244193326558404080795474729097471362489408458274181599528297527040740768900682033592592513319722815592857406955494380353461689925465590042754068321142107198439016921934571485504805684598934286391377052248638958846675931126804531964942252356051640738618397096216866869618758063084509526820337972170234927917979702201123492669139516467397446571819603103439905913323506070414907022740932275802893756219606597972132599811620255969469484992227354508429470491118227964913936131048456259219284593763550245288964624703596425438674969827744432584941566734610160317691174729234218466444126991316888029975708221589955579440144101963545295248948008001441643313195901204351784513165740102230640366631999887297298081650655745966605481694422639255897935027645679906840224967684547383456896113710096871943480305355829095550278684978855701023802274113782779665007702872594283724452700095401268728444430007153657471120372828652192347130588246382960029628639642043693898985748804975833875537619734110991077696615460795129270443821428921646414610196521070584653344249414865162241567429181093525718247617112855720117558989475040168927221850151045220353260354350129689593943863107482710101255840603806652386682325296009233884088525095526379055638323674643519967055299045163380775085417715199370726027416929828694399440143506401566855771394425926816473970199273561765029535312105312635814815713992817640014133796435615761432906941173005727369287430358698887036879432060009805664708885395337271907492734288716651216885145191714530952381089848924595134848991866096837327414458039896824874619881828260559730890387149747957173650959484533354815756193181253545238513871375057071821087881987389571075412850572994495037572494712457033752459718833388269860724831192442622892760241214849254427263286493863066535361078834451965409413888407030959227042833702611861306684709595547819472121743646431014253778296995930368469305892298562167761160919624170278687436280020350528198882753239746967605264176927423353194864696552079986061855580233490836560647352865620874966224136754928623317709002672851198170831871794247591326511111909818113820452194114363912955958370476150653726481318561143312472061322848164606520292333624537568866150614323678608428161257983832655702937985970527563991456455527779451996866267546332661694672888634852859823294165017459764965335272814522940998659904884544179587279321238090921755697738694550932833968703695970164527963499545154303533303741904543021314371593335481105664967212431287311609552873738752404165626367097295407664583218202233929568260620364648648973997926876182580816125899958642320699573841374899811840310256102087380910486827638106454972623892651203790563826459192804753592863544047169908383805776039819542876628089237000914208332402137347245331540762863905868752256435015930657341527738959683049216653775139056575561458832791356317663132913926157361133710043486073379097649307556030546267453392884524533431896980251244245777349902121274693670507374823843833546678742343513324665937695927126081394911702006082756597594894786387745821605096083328488182886698772626554944256680281575348150928728894194925096274117088069937463713159653841611043617827281099456425062158223832525016247311614902158170356016828076553722059771013398302315759363713894073004406959977612991491799025106569550140705135312194396097789517876768522960012720229624835667948266738366860744791485374965476191811584911483031525205795530051919201159362561257047234384351893589067271507826333482467839742871910174868395731967262947428942701216856486330121844131713389042181168377395328535936193582758573875919203814444539622343450787489678002521152960948911665862085882013648479935208020882599365448455607052572960163018317966243599199909002054650481891553910001626372436319944035260013415029299761000988978628485621350535243051093700500965609670455142768824077656715312927961518783740902039443074265828364469828102864629541895556176259391079911961556147760015405024878342333370825634153445871138822204298818067645098197813108196236948943887990850978294484021686861200061116582722308295691772471939363525604852887564629470079894601197834894660465760842789706045651336905382358214494952154125386938811363971629764968610738261406293009407269980689821606164481176784773026442321366045239253030571397874824525427134053955179719397185366520885833060581690614895581796526218578013208468495182842651615408740101995573716111343808791398097772054383406792898590986984115430530780652972357310392156715257532404174754516202349099973657867414145031775333169182229271125293398675247670968434731446816173084892473999192788880292610291222196366075096595755941402363498072229231226520408613878646190168646733570461909190281099952736094973872184888831354428815858537913170085693780711081878571168882494506160828436295173398733304680988594293538430081893783574979647059438860506132941307982385588383883630138990585012427636841743658885901841143279629501197626758671018259898827754349880277722530064765166381556512389307484104639503988960722570320766840335381515551594163422746763493024851457840643828332982332817996760668136590204708396226121354697831944484919363406789280906583166834872066018219477081913987620768388812475053124233671360888294674867623538683199099760320263754092937877542600047349929704129234619604737510277187535993694015196108468562111379712064034345221735190961350889443760006255896788628889612468211235501922686228358731306417641077958573092972269037619213039873166163720589081796153053816089163385612112051116736477922242853160038657368808603594634173429305122214862540523507323717161725371334369802912372300574757029343533859544485690506968761393181124362136108923009310720992196304013039587133471213304132725298704187750996630065974267329874402049827409278007151577756787666146699252646559400662908793990298836573450003087911209762914438953790637501554809313523553926293772604058073278589187744719884106709999031819666478296869287652085579763197463255093150391942839678811878273398692844760195367982560362141013536268025452114089108280266442468277413738789325700926046316483812925245718597350725273936476367714522679080982582044716174730914744755049862811506554366421366826964768435728945282978456366243237732409200051568276044135462201083763130928609891038966816555607801650661236047483244074476795242569282114579635819680995213473181917550075872021573415027973214222144830890427822910207672437368002715568718059459027537894042913114116971191335597675082641796723302445658041115020386246481712767240574023828940132538456397908117615426129123967288107594155215632347859005145173756252058970886406266342947797452310841997688932425921289875614609672680177825464642865613156750650664120403293453205079390411082445794007300683048741856311108260583754682590295015144990360896024673062096715043484423286306040881633375761055957046871989532143503757359926170116979297646219913469000614862020042989349157888284862200337580350654410983685653258796034759154047195429658916405359925255645224413883511679927768030290415208920618519552633965384874327442141878067623476085319300044925863357273085554964284732446867561737520712937454364655075708376228302974158854035094348198462626192038591856380164919317179993994712579454318954291951270736818045376301380311828450184581346139774603290381294109213859307230882652687146794658787234987205556243945715658371893397046814377501305893696218223342246148968919719735999661490703635969757330289792465747661386219201950626160417702019118071190608944050059600552535569063506527023224095346302563004668659697833526195154140970516366679087768646880845060724050109110981558473131261691416557045445731314020160490356450961163122115730148845431225106194013090966254141365756817136371540979702900919715744491728962636128995931570557515408325427371580863991039041851627078924496554807145999011527227185921126254698986627485108672855080110932040371846385351997582906086488819773379746612926958603499072671440130775472933644682796027178633097112795422593019476448729295715229056548451422122412328632532072811197305836045234384528838798420023322157381148819402747623353355735913661215458164027513066481085235418173078095238672071431970728250884911637266334749798300932262183443996265973228603703413481269434262940835376505437679200504963122627698992021332061049513741802776727053289437603826515587393993329522193673688404249826778361826254495776211555870311442685778190175656572582583969731554633956390298797159511930463465156118920249810062488181570138780034150720657535270178850113669443342159578856564562997005137770579746541681360514671386484739710291699367945948017463019424538423128019202440612942007446652576003178516584756277750357894689844912090188409800910934296932980404102725128642576091868228350056959223135268508184761414164367749508042955029351789073481903105307796738322333650615638319353959680573251885687391951913638818786979707271469230654934760161639509389323065127428283622511143877961408817050773097371869482798163013867050278080177730508504851619922280282166009046493094788881058986039552895418212380641511923275386743994866553397870866258505166625061466484908991175677968697586637372205251012547868869994990669492448423924443400676408906600588897722646103734555076094912801011468241170703492212619494806372886650147926265868410080827456434337464376990620641093579549744986133985941493321095255676737262158845344469383001760547824524898315615407172803752495715914979426058474698781325531080775832486816690180028042117624337727475585706865233446824499850089734875562208167502597778714630750155930923522530189398602612110497881653209122922146781567951557790516491005008677677011551613764051974312303813273015568018118821554072093484142279126755495564242526646199571225954409335245113336933808776683596022755520109937129805401674040493335176788033601937798834759744964625304719475185167136837242414661963618969667530713176964543989764097374268155227086474162658323702014262799182233113216170090552864738486143680187688416888497912367797835397709537794232960367987032073149169101243486381231017290696437370456273229512522295750577872848629738972231808218363637465243553893141894255381019802978023790277526983821407397766132148985920466311945982620337960609615687725254434540492853981864825284857633374860385323181334961557468997628644156720497776194859025786637029735140126320512138365953035045854975362904088985254688940236126170928053394584260233454565327960496158702981260673419258341402201591238851784823154276907932384084824467488618241852499581901563786924614602220568582047038804752501198952931394231326593703535063884640315161708707386316189107314018253688928267363885139516237948963242211355571029271587561606792060444807446944480070316075519365294750758842264877530427819985510039311233944873279761458461383710183066667234490155250072068653395652028521401767114655598789715896551861938214971569668350454748655133511413492911605138252712039257533068637450316228952589554849919168310818985201685545502262629405672816609120422705858127606043876325441137412766101021629289927765716905477103895132958039010885296831965868402129924631467026435431055558031890371778889788588052898127393593794093549057357735668428115727836522439475606537963094093761568419952971241548364557738699926779863415436122150398020962255014580342365125045233910564747188449631087486614215971616166848565228068148612370876081232135887789391962544471597866806695736782752679782737922395164439655511815880002085465003325326692466096409733517969303002758262074888157045710900300845686854700971889310757157264229747184700462283010277877874919169138948242711927260654507702785810262315623884705436879375700344987525150531000215559193831560007483563505440599249130736107854006658525170472903978383023105749600309859868415767025994561437463910576109877837179769838706231075214090538164715575978424217165148192010520141814735711952187844467528902263983052679268816744945545633334123100252334017543131149946546697599026839903487933787867512084090682268139336276074306508526664888371651574728541654373408025215613472734767328552948004280293166638056893702540000084369063528331507692026811353241133814208761543532000331116240617339776918920960984607622973082810561469288883787172458227349993985584597403638389155926611729867491213584436737696478800662474319040473439137240623873947364656795035658940974592890267171547592040998287283314821185046407618166367394818022370070752524301492251891120328220653872685427709494282773749621177599696333790211084236382335372408120211578225086690922728585220520330641505352570590546347374327214924966870848551167067820372658497369020295449841738945671986700641334202452485960939839037299993195365249315311766960064524895153443488539133474243218192517361675119003838323305449460881235634620698150691308853520007061562620266602853902097397343407057315748820666333476390102441170725074700409228598491201392481406438861301965408963083059271321963216319796774647392946469013713965042626460033022325600144391150825471788987838471253193692924011258167986316713145174178034247795823473358452613753126684884685343099867320524507710978872193374231996102381184099986932540921014677539825094106454592829233578009870497286674135359706012986482849757876201427640964196249675950213588330191607277565819956946066506772771648172934542261039348085022943706690158256961233284469572840486260281435427630175072062850198561080750841517518008612212197785873329971849959136445521068732253300565371493560782597568483010324713790440324267162882555215765380444182017451630009882078690609791578531499617485322094188683609003324660057006162793943880539322616250231450591023751395219594347816711888502271689709235921282581535450399582105194137062498301128473450355075154385716996653535350419225096775754936120711340048951816258615874223282584847513529220770093907696915162145654971981977850566464722532880343610337635320036101115241263393301261333400497836977504747629700958392453127464482793436275703694605891183448927205556513817871156512331817674578641009781739350203325471413964289996406687935692918655123756694847838454711280564442450996632802264341583239803699112579155745765913794528423370543560791302637145548150707298062521596538708946046794727359033211425954325757346606023213615291235922741335096920361592721036041257805153104236878257153765015118799006842945216647174982318972559052546804841168514082814630730385930402930026382565387365144975508686098273032278895660415747155834549067481869609396695911536995640886274076060246661772005403403213173795339349606775681218583027846846796668914283230138051572953254717675297986328673770338900441854279496343066166340967794184040025347142328912509983884215677894892710070759121032432875003133329635860024744196968098770007325458076510033490768314841175077977971528266847650918390866922236686331425026343466020696162710852155395801808719502194853918143266840974555070327512727687770728103296223586424872678715657208600400530944097543584920223139557198689606318673169287654043495626463692818152304924903930335484717455245267834663456052189210002261401765085482717998252589975103318734099700912834283069256184750187046344718088609069124806444370664068410665886814783433491220482717478778252872184398423299371750762788218645279224037256515602597137794018805488853771704249051505792104398084560843638263592359779462875125197432300740968293271041594386251386367850867521632263621707202272172299828687795671722957505577451322998335500480430607119647834231712700083826515600925608222709295107542636283207759000898965798626205463507892987089298916768044405923501168838012541360810307312748530343758958462995307868354798766542717861949169364832662325494829612568465633607277698943182023122054180525016183188149319562789295979096540690613239085389954325482119315358861983213993550865200573955703541698376147688964567244712637405032891914754611593149616401989679539748787368059211232766280552153155033780200162489269504731914717307445775836734758020574390623996800996136546430163101390960353480593899843205853108737701318176993762714882177029000749319553095082736838135773082600252219331347739919041790681040432611754652955479768743982636261435932361137246646626830070400321564282041758726827368144556797091992154523036241218833337000380409907082905936577270200698929671855684904830443437261341548460985791715797573032535581487228274192443694145078248583469816427799000002218164863223336921766441623518905852899722896347799757327736649048725308653746490875274856070984514715878145606040691082254745171313234412582863018950268647960903686260237500987181038345501752526865661900199863699804992721610108762906179922407105497358071661795875602797874622398410533810969718389692550875580895033649160573118073929172109280182921012747448974378653943991968966319555714796352966470056846281475635503402175103236181085976965422411614406924646831243281154140158682042112980961054696714901149958901386270375496234230459958775765824474737793210023088702484025729489855018415067811038740011696427935709181296153397036801843711947515677640372520291852897714682011387522270709186842444750063684145709284705895338426988633450756621346042920605024739496837957713743605341701853687199645953864470510398080528266010529046372644872633293728016693183993734030704893680220644986703019454705143354457524468993408719756054960348859443056953547113547289538812756985968788704827454471249695989008955377965684517920627380836006411852751877107192506424563169915076023524160691474609796544940363020664492643216257242771240379208888328312103254246568942855403323524155699758468237748545854842459436830192982701775313239976243454392875594679561278553937977985958827510198989838086629491184670448541950950041141168410330190074008579241727484081673918543910257113167823036520920342033249301610926966948225955070658794185404454159315265985215567896058695329313477827051218519623778211121766231145450580904345333573391731884820532599510999643167693000179072882965901066310577957877368126894762066537344740316151419014583659473112803907040318778668380068558535192677285073039386556933822552591774243375973489545066747919656924535004676789527831579027311878054511144227096504055974908033632148591620844066154454465873333478424859107667857530967972268347416092228183829150522969890785418863297082204623381001622481651069686932488718649457303342161170083371877169709889807430321035382034250077774557910791615691590628598319788256506042368828821358642223585082177528326644654989316474475293444892027970368177437003388600714355993977436509353349347549090793771070316424048813298200928187413304141817059058604621478300814615975079469873331744421316537505856738388236638438378050490202218580411733340736487214670381473385840518774132908670002828930027424012736313387988256191965247632500002824228224077560810245226118367277566509515007966208654209917214615616316590715199840131631555135617067414567208629256123253663341438215261446284442035475201691458195193072590349011525912287513100560805024970161580293237392392486511259279009196737491661716088207229993511805964296779781775245906018936586235584788161196887433530925927520683172344279698344049983155864304275521589700569241175209447816882391846874628333808106053978228577042565921398065254397146553519516492840275368794687609056858007722284887936078773092318226300212219068028677313816978997619226140913878135904710139884747612281172109490088624156289201565026324399308238402095616063175259441553137325577209299348518278745745186280813310690261691799860426530678982216558450383434904146306658460767734243875533208025318842924355450784847166789613942004207862322153578441018783792176701601870939152581070831316676290842441115880346151398541638857056903204145767819855999901497111040602886486637169902903521684334747738852591775937131325376584872484244425488272661471464599016072620009709863465645687333418708178682386607994334906299984207532272443579659254406077152448522709659928746356399256843452680650376044601707953422481991710240789082068868699041068639676993650769543442647681381535149330847000277008862492992699568517855908225475583683328697421256121756194175150044293451147729885143411158355758905247768838031573473976503430097560815444755503750760258384607576790675933028623900953231786961863693307306627145948995472606316245042679287578471423775267254860638699621849358041595428380734030399509081977231378910547692789207806333831114705502185192507385203878989482832560748221095105863078928508622561966104312162114915190501432578087712987919137198583004293175061404160181796234433736719771152811303277521562359692834498749963454091286069652046076321056146072489479220903562548433793698742802392258411298454094090595168218266325469042984064728579736432029603817738864881568568020739754998263276461831261457400136565480139858407377887328768545970837206278857766394445471551705019911941813689054156162437823592380497992978141792969821005578723751797151543465009362294172974139957701098532928709040555991370240734745736116037939006291168326822818528021367760906222205460520083615953059541385413996997330376269012999130604685700666501562453798730360015893102804519353765211257006098311225855032727631608780329640428431544088143124817231538121849866006565366111033581032654973362808686329889025486588362667428316293580867120858128661915076848170630857794698017170983247366117150166851010833580294954162894277030768351328656289588979160830174458180504357265280267214706930217128094668775843199892267945351487341955335138596827562343255120234188001642668591387839093270019563269385699898318990508664098970454703687736347028970932521436573476316160282913983355163781829845463893513263996887591698489155404223993782794448267506472131231793753865512029398045843719731905479339008137965430643325862384124527580261367424433997421579677754459766656267601348240193189756787441069918513483666302215351524092236899403763955464568582848926102139658594822370786860115918899635362175908678873241537141152350339374072049272192199083276024431076853988880200106595743818503980120564606936330318336046555127201356897281197484662672206824285891902530408179035509778988692280154401698098982714119689941283950358696533091793781875524373501769501373871300727801351012824255066952249604821067583332852718501604595504232445426634360063260219842251446851293795742480261994615839809208075540695055579960626731829812717794405351630303530778818152892518721537509269935710376165075445877380581109328807460056861280383513722043388013070316424395506926250116680407643939155607669091280339441226825143175225963914155645322672342813003765272487279618601334939439853295920465696380157359641754220114977835615241029145714841258641561341703834600454750277065290352907251032378910589328301094251584028260707841546253702540669245573844612353531418453897473349909857068923299721034684388210031320605777326894774532626802607902120404296991518408611453614154234880265270153312775715127746110893057053838851682799295994176656232532761178381558141300433213359748544175198713384993951594635387414044745053333413488167702272385711305889043154524402650643532505799904943019747736993681847213157597062926702956835720292141074728027948700971079780421954471796858030434818870397657298042900686317504102176789244687505782271584291735105392010227362182433677476116000781403953137695528027569711194420591545025603796933072951634000027797721435669862409195348429548904381717956376335041873597390613940811553921268463647959147102953938549172154161974487331192980777007203408617329300044433870480588449882974353625747305429705716702021936321116067763515692258604364455214757822336799829043573447626677254802918084840049763810481929310576191292904382423967954767785508678416718971645588429121613831642598431704592255946019641155728756036556837034399628685080648936118990424091422518810615801713126178061214560137699839759205587132983932294286094596552856563878937684332831399871388951465630193478022176502789607759516810264657904689815192402295153436618283151846537913924677534165513166282996275973431319988772327537311537895903438846267857457047358875429890987407152921012236713410010119954903534299841814762589833517034837499326316978042387854070247414220157008377393889676795086207808604974549154484619077135446084119799539439390580184196657716601090226539951633238034080405160933900304512444816353517953219378944607663758616356685151935523001509975665832921767470730971601945856296153878079902471213190017382423404448145983277621255556965592839302851981432946523344914050806094015455192909090813846741125138000230251250082793231854922443259556559882757522001730810478145739935218456049916301655792656369697811596951117173374182138694621287513250257507154786655909285423945394335203027784639996517370997779623541250879408790834330369906694756459487295394512323448433715832525458631724076744815865724523545323803314543450485791349982675357551356943123735343065701517610341611386686645828484406145830001147338709106635735799442412057072062437832460150344900876926998600284196217347060159841917286934163491418298145541441815066459615241379837108732961576981166043543322747563169107944712850199351151957339775651542111389705643145187055404100510893756129294641681953721041727820364320984897147859777453028839882490087635063135272104016261299702777667916574086875605646930362220900397434706058764391312816468672452696200050320436686551566254150526726910311467954620055757729788204189341620324141392802723650456939418037237110149070926760545501295512375344296470263906397015427136022079819116134930448156447079575801372685263361495137615517093430830654960889334608476324448212717123863048268903182009363529067469916577817652204176096241322826172436882449762629448084911186570196453414545970335006512075127631582879187206654324725651204309573950774846439466840581873266964542671896907505195585408286942797509052991473878967901020491814296177812203978727860591259774747890121423933691051704728681165394678848705094655655817857570116980390118104922078003315480944425538002937708160560789741390678134502060227623775614743173367340324501009995470785161426777903980721476845942307361022232650888030518133536235707421520145550663540518678470689598757568550473141051735587727057720271707986598477082095134126523371827863300426171761945691448909969118063022123252059493039327991203685029735416917644425352013551530286577430872730186971233329940017730704288383212310319298916100106941761879564898141287213052287969580152815604282377198041375188248797636420889891472834361618337089475485487130590423559823887971574165761505327418451568960562921436705805964915187993853627501028025496940639520937632706920644033832393265699237558383645308709763491705997930426976810434878800369811619697093445632548564227159887642117044864561117071024127340295398408083756383838120538691772337639339217547116569177459104506926382850564461504268744379386136328677875250243906274231669266475264850072642784996098732392161352360627385803951016161304373516749692337941203580102937069591037315227646923895659925739768823859287873456399191078046632016617641772872432836009430754856742764846187381703794025038115224389802485418795305169475315189285318312441511333818114364645865021518240123006024739529762204910816609501622541850526178204126445357441938810644655013595416180351691039606194455495599008326435816608944821536449005845485301228081710084739878946537439185989975743615060220437356432064958775339096250871600087028048970683918506360882871739342000932733221567157628712444420439052524736271145867801119864556169611808654336686299881522360198003620726077244069509866256494326549250532105007209305365685623601396792919103532721012507756641195804354884077254252963703004626847170851954017582854085796287697813687227561410330140369199763253905152556822307592840319152508785857179373845609266917762569794457443676833159625270774419604415342253497498799218288507450677385600490889242899672335942313550176761211751461193984378836338253407038029466113265935568401761843932765937835020827146427150819572123934034978365608594271345740947540269916370766791021658525540501018892701102227202182041787935671439813035622262558522527960667924840192677147370444845436735403189277617603791584492965010073337181580179731966791517426465961317975595127006398169263498822767819429917628956497583706962573299586146399034473208119011053105017984869658641201085939412809376622226477580989532501612987195409690908640574842039812955615160695071672091798791082197192137086694801511245009218983520776615315221354723226724915558538787024181784735684453550169410000152597334114430003361753873120316024288754263286251574571488987630264046480771592729291243810026432624236872855768289648354515201950401522195182079325510455823316199573336118015294891011083668935434080922629268457962032368109395092646353677930814586205067768746903088518931565432927162013740349729045456222012823933214069646206810152470927409819171732638749660428190769932219823948551656972508086203428950859415658618920506556574643322745053034960939506376607171244748635869410531891271818188419045840368914411962634861131763592963801202294498019642286470495906848173014353407439555160121799330436929707962176468734483885065741398903127795336277246579480461127919711036265314199905112115017657059276684878271522402497415057946003821128893233835583127926248150914243257228183090204817429339977262668485411014488038235371031267513164060029398916315931690413355528122197295889819571826264602611158519078850315811607122203064480659054890323017937570175352432499749904495095252767482177863418104198138139148107727705690295975243567487698169014893912915640138584716609848293615528116058442448623303220448685842366351082627857774483692086500579894012154910326778878814172926309915097727122721017383448845341365498469725996880980304438379122259576784095784973621434107363713330251069084177127384345294251291451665357379380875180417008305599437989626316052839227456453099519557564144309887982030072437884284795791822632334159653230228293675115501289742394325643809402939670979287951090868642174067327559178193662716710441748980437477901768719412787048167660083567965686403949981616933651656182331968333450677530230623303527719052511066187654091259253485690565623424623067096120638637882309504645536134615316104822683839357158840543426523066157498002496265408844087235981662598782733820418342031371391101450936567708741518733672096680682757331727189671997968099860157383437175679677444330641360341910716854490422920789006288601874258706543823803161346283258321275269599626652316473187521984840728018836999197579779314559449151214292513319756464481273985691480618417463054497051752795332610758112546644987707917359807507079868342584184375578895403671132777028890922361554108406560505316093747842551051500230478013143171738806626989059234507500745214717138582410899495057498320911591418851275437044704255321206863571264190268426482636959262451965980006860369520403988446343977675571216480176338980387985077197093277803803199770581236201589047796285467014165125161802169313108556096040393343340550003267128640216916859546557954554936076851126907533958382351076799662090667499309866850566123696099256388704060129252343188514510821973185289135519405369778116496951873864980434825119620297111405285991945602248994777725223463587864159301129862301955761192438559949406192688259945197793998510631907569651659478935936027492472809125032772933020535222055835051538641228526806266737558810349321354652586449963052377828297618182641732281646410115987235616190786618317749282587850991059194084724369861091872946959538432354488149463919978550235277162034867029764177246484646387042993686654227020627884025125350333828073564035289133265025954043974119003928899232375999320244995916578307917463915506759539800462587783340469991367907198976789272199559832804892110266011923481451180440596365922831226574652931232422428532842807635788260873895889509880365230261595867959756395731054447508143577718450686046107607127787881945136423085400617140054250055042427650702624574293061873265665844688270404771494683460239703129533893788730573837189342941018570964415300644592674118309479810195410247400196097139179159315770447376294285422613411036364201613854340881581446677164553601159352382534203141312413087529225971499746349622817057249883292795235579200254301275753876024525937393488880471027564113655464441876721285034492172072384009372111162705406998757548169628920096304347469190580217458617604325868213020410226744888484131733750695137963228756703347374294646285092476458509897436832454910725732563422341081451091034725455623071132511231688925404151256887586868119866718282540611136707318965486935169361011034077728426873330683264098586080480983159792659623415170782057344504972625903574985874007119462154540534226137062728156231624854957142596420609543648488079114421179052498185347936982101479607917843270678088730496446770570111692345256265017954978114940841577670340445959796823407777883495371470067176287000474641996743340206565928730528177423496753409468500522397634421162553628534359021646113352752305702438323581354648763728933280442268376323646171429796552013143871699927280093353288255586315057924429395427178134024988734077940066362257143016738990636090145944026477668322237575375355877468083658347757176403286856886222794490529089361200951501121391591099098296768557268415599449017627041698251604976026103080652176287278215594169871795414471616586454460019635239191314055774884381985351670563247751068748525289107138453588530892041507314033520247289146058468120770626064272475536196596817732703432650617287194089562274692086311318955587455703602544857934172284996101203013094259257217767476853708053649893846401798635337319985404797970850859502779512189523284523569107065515070970691752635532481673306984595697676751755752933841865167159999565488192664887574123852416032214314323277012106291136291402419176960835304606871897527895396042100724158079229615038635661791081795555185188006650795613495556140747490963324933657818468599504239497745527081179629438767412119235210753688770365009006365099408670621975620164586912239304738792989961608711258197551588442432051056709266579503686994532459062436907196721007630381969701552512798276395780196566677650884159730870597570029091244594461849064303068818554056284332056188431098136727724091194842729308527377436026620844873831052195186386197455479795255715225007836293354874157710840950421503423349329107720881998546471979780909251157077664197953677691416012780880520049777634567678816380467248364765194680630144427393023034878482418628637019978553309244793306627577243108817003623209518816680134835147904775636621669341172661561252132319960914059576892426088439492632810794862931495785340475374112169178300260551443324624288197223923849672089774798740759433141219911443435138139004908777099298670263231079675943901585522675574157221214238038288563418755868440316608528841202954364902621037982169777957549770952969858024910811630232159154138318635029249002263414653554284594589319496795162991913118096700211226345920517532257023487523689380910297993454525915964292006287253866621745816994117019014008164551583158388459368668045131977590400422343810435436277504992579803751369135210524423302450838566356321565799202279264832162140790261920983596790624089680523887692025584985516651913938233700545589591077710847600763854865451441485411353598027610056448401992312710362372702459240955011545343077354061962977951561130274043760684837588032156597227679460802743384106675567201264287334617938221882374386704069970332346990942874535668570867926100819171022543518442609638352317766707144503652809321217929697716149767723728327449483435452342707146090855607055568402581746581676757083673238340304450334683479887172742481087457937300902922029190097089378869940203557048348240565219757450778113552541171044170442932371269836870223565525733377517444400017013775796233498485533715004336267034911742754582777809124028182487039876837986929921515452437742607760623833376091286781764033857453217301504419429530545536830490253003778543232136692478700833188380158689155988644219878418072420188222957012183137925108492456771763443272250392448994760360845311891114175538772884605702444765202412134783305259050726162870611000598098486407322689409719342000730721054774728138123680463780997119120053552121996570790600390460144545091271213687616737778187695817961053714057504847508421395966953438236560762013207665992890403431821923056667505220270527388329545397663252818616367262428381060695281884177494621240424285925598548660754019730380474258392457479405773095921512785008278315737649389055616076046849173373924202049183844051619217965019318950602196189269471486163621471777729037652066451345631028724499374445077891897003487463030058355596188396075035611926993623853003071619562594147497712504784130604998458672345617905730961593295749051692910350053537533648943344233595985361610584450596005498374442560800687549601531021684434495647175443008402420182305859967331493691686775565600597432709657289966829610246097241674225267559469297458193608619693849615076874932791494343367956250873219866918159298709924021576423834640624770680842587388612016756189212448519884831256852060277983024829222620847653327154254155820911675760260491694229794917967565160489016901094999560553210651099345408945903750150689132632338099365568949229703523460211433806123458693333464523373192243295986649150834910502349036691638095669962213392610107158365987953230408471035594628930405817461878415689657688948979897620362552576354125582654851860363367478385997014419448809944049227898547647911294259737911069715858071215294825557512424794450973910035150574608352126633001388033699683713944845677181980807939112169959817691196169124329004109012240267458707633736500924396964127808868808302928180487238719793211481749928815289566409120799711857985787575054750564645985494783512153578207634291148312340660770171339340428167868230658932945369463439465288766089392110315187366127934897737684528403576934006338333654968178498789005352436522671566166977786317787723990414189017331246495071524066146029095137157822319553732375760549882991080819218322842655320816360715497344990488437331612653565399973520944843193406251624787572680720167378491993823758984924757651079852759674924131215008660830354470709349381627382033273981882388999008469371862866783975774555233115077527294848313515271085388364306498806499710402846786691566980186257676944993827066866938845600064893848988522132076643769275738401983996749209297529243805026350185542255381212624299908454882862281950986163998167336773354437383164608203207733131738898815228949345846051641564561609576714077821220912032834195765006778554600116054178996026117003742533786844248563052978335786206391639562453672797457326515690068021314730028704271336444345936482512099681330475104796054412408024519373838203386735057115908110759691697419024186964997080752229467643579203533902602890751803561298067605696189692636360011842921286928840023800757549209534861850517771557506549597647189391304364691255281306432339195104783343780922990017447989643471729968434151864054879367934103160416475253332768189437272265400561287298423731177922265918365167336471769465707815464992462138782052048579197832833386920500942788501590619944590254492495453377323087920106749167339949423441403435097201008027884314485986349520101838974289786827259899191996141705858723677858329880384078837961117980725902205014478088849360055407792249141777410731516668140308801685866138029908633053938012685215106270310798396081236187690645927023721412200277847425954280495889674017994416987645417406689132411990100339721768181845996485249626836060717309348243258703706673650027540392072330926441577303467694431453663908182176776910601755987945126019273200965720387398591407011497038914076263325851041675373051270012441728194716035820065299562252227561360212937741224703378285646060108396589792632201845361323004366721299038494520718604251838340216040432193623325957777718067603256454380334535651317186397222408385914025276937697151172793969615355486447276429343008190104294465738751441356183708007129687130253404377614710229543879278094266811178451756934493888354519295310853308329067234139584370658406526572953060823789553387820821236445422573121829021168843896397166464912429791106298415622533716173208535321246063154266331508546900726301413556842923358333008689760767618274376264180310447592554408862484701571932857930321415815558768684951106653096439911046002616705741668720374326813100449138637362789203995095463773137459584022730469215408967245527002914505803260964906973289881722460943226671330494761236187875866471588238047369190459474048629313342557540899390725398560680403300408513045726560386680671752150824488672654563414246021158567991486464132842790986366555065966343119948485847160492745210097367567564481056922591869252635115711932533978597535542054233174101471336910637134712665093756986144048397871402489632133650379449313349907324347013406472714303148439384614052317255345029399437717159063818214435845185739403995747850466934042525800250742018426263252903156408701972739089855109999217938928904793328334766289408266443691014755498145154483340126079604243517007108259092023178288679442127900837731918931230206100851058376305700912084151647269241482446219214064483884802600833352811951251407078906988901685220198120974324270205243669430338081513519016142957103519425128498118143766872655212520881278566201061816300990125749602751795446468807505493729189048666053785993378158976244499948461047103777096808769734465827991908235032089631410962790978480749019780747924770566147408355320670449515029872429200587427381445131419613178329683828002221512569032365767302847516587049777913377662476480104082630498948227664208296611589677335800377331294629536234039907391863231998865498923551335757799383853806778519965446224932303449257821356277677813063127111953430691818721141463889178247352704148396882279848391754071712242764020143679402836734042682047744894812876802925419523507854336471288596926633598689397664798674934578039489957694112276789505054577447705641480721826440264804243703607621671565372553674288600691675846793213254497739009238713228944467285174373817479951325367528391962407462744613052703411887258610965888384362634056251316277518625156143621255039590186116185978259525947639947691856680443556605542886407019110822249009680576681858374179386619970865429838919385408350827293299314914562608887418467930633623623146841006130408131574000491524749683761871962712217952165913844431582950462561603660130100851666803829853102083218418853362174520861123796547353614007219586212078643969798678286753835883866124460732569784072206786964932183327863927171274419513934707294192557155942514613293920945116235598545680107456645266865025521753436032704215842712100792155113643430533146812708182748984565460201519131391757368927427854316923883368411397965739990644446771058464703662734001943085254221332811991664624921064156653709417169829054050742584840407436736201503548899253673332847262274367600479599409537351446000309298310945259334863738148063020813726877048262375899127939118392815004958067943706481548994434093813823666818686645239892557992630219133360986540809365380974871172066928099670792842964963560651806587487727161968835722236050365334364760602329955914530857657564033959450083125855063385860315818146613055779972328032540543865755294976274510001742418595803685018340876372193885507967975402828963911839510427868858287326459221190310746819787156132789158081988840390157010137461575432199075188950628889121559213842531904958942035402115755974873943171530940972204842310167534151747735423880268164557228149436972512980014165824967213580596943844015315962523418517199143839742534172498161319872895234978766214691083735162752234207232890931479519573740135399857060392416148699400462411605128168736707804312484742705676364980419647789291411151633136392566125474584335654553797302350492813612466000007123213546344881744153546282426384196245760549589588629254130738836020959965707463214619501242186250018067755402456907174922055160367308532400769878000956389027751188765036599774371983011251929388288073196696118044187058520792834454605402060127875934207871187524609368248554401774212264089131671393180481280777770242881894309482075199303040978606989769828509746010097674278924502157663483101084584840327543741968558626762624024414268477168227871274518375732903193495187390801770253472403070601437290825677625271200437386123279374766236579159869953910500032059434830096723441128357246608335828501024930439216901001039769698573122565066534924800595964049739886752017785719041833619622129037232708445256469313463866594849031479881707737564816884719141997216175060046633845605174585047755192680127363572925651058858688898527906914896081457152933686723661683693089549089367574772868673579896404709362571851655002330696499448002545155425406526084855184433843135887411080864600516917186902500601370422774525548320389466374467810169289948357877282859579828039854063781605419560644286795830748830466164861482920799611345557758276026964847652446992581908540238918973651345887151086290790574903627253291046317084560597270002547547771761152567153326758675427485869073823968361519785592455725586387345591266626408531342391881300264851677028326613386305733346452644741940856169578426204408165470744039296728191555749913127781757354642031699727812877041270766719241535105455192863155852440297610325684295834644468265596842251402629657991989884820943096123464838554322858120821901637409230751140776343588612879824625736963357749377564837574778373278107613074412664384381162939568543672176683763392217746203687010099607430562323993261624132169169805921652640543757148796997603518366050528221078312153799014614771005372617610909661685925444922420202884196223925371935220959312838631314220209906171420097736402167622199082674502903539055777710253335283432630015039025857691346356429510338589457522445524508996638118093908944149786973652658964229877507137336337370549515292592404852380167391507659420261631824055607065975385653709300278123952644157145657221389984471860091577650256928982895431437711484468286344472963766035737864025539947855437973804764274768967142183874273409758440428363695854143193179543594870719235754288892096477231844200266637051817976072917432524000379031699237461679490285049357379544950403889776546320519037282986513399351327197432373107572725952407429179193562508241686067907901740783684068315866669885627574684427508473478398153639772725718936669738843019774703135272381248323272485752837077783992511420407681933350713221732410305994469312693073983687498609365303257089421048322810154744718673419635868958797368457964600916684040295591533741204573547758410068594184692238336244527292931143001880437839236519464601585666372481034882273005442455941886083874812578588770956487774838273950048752320558539711837941152668993248552754933805449504818198160837946562597798507306258823500827196765175699196269598291393254986445602566180256804342049873179913611765280861581862048762802394614067526279546305861772810784441543285685912487843883431690405470598981277638736991816833531777994604481196231549185829733805945400260807331887082223733396956002348775525513068300825268054670664119452430711902150589869497712723498899595135562084484745577910010829213775249453290899180762742467388597896674747364792658301317483774378369799598976886818446728497212562115811137459288403405761141232435495058158084646458217394884457783915948369126742860037486874380146385704120686461275367639177358884736655109845674908847516073623587207288476688933416902195157662717202914248340315829743397021539909911377872605228719709860157149508971946879572593745721511655307870088964354916135398068164440065501811011948770898579477498224368326840592074816595202388948489188184924552903495551499244545490745846241707907144725505780287583954459145988095331413038444901252167746452421716297365225824656323221780191601984260766738019926521793522214171841328753929608074515018296415508271389512772121040353094124526091312164451096761964324721215600538529395893324858952458241678182089151679844469115181870380635808292201835742809342610427292500620389189603090164454980991296615696474598477726422140820265828188236931755584379730976486048997244455873748815822379210569545213630110560784284908344233816652116494168403415629105456365035554515116176143396215731076031904200705148938453516680774329053971365663720504350200821242354584285883801991183049463771048641845869460862958498992878607521706712553433599485103852703918291390959206283893133113744479102511916248150754874491115623444622007501891909757153316615689669760938563322698063406184055061818266923057996974422147493127290060231052096066277287676570602839478056113840335024534466083394646203659726688079610920300796419622893881869418382379976157316578712457788601587998111316013772968397380426663290044032677432632512642978507902936088212761447820174856631412252443169321413085137840639796724418930994628821734319685395317643589374264108946779536399490278785876803783267525623781654148946558804418835422565002176436677765675077839864625527882731010986472896844588117718985834858103298040400428408278297286255556864710740308668160883582441113201586171153770554218178594791231997537338753777147051013794759078878379790894260589033106798229855279352956831807614542779374515045713384001591172342170339309107436426032159124727876030807045809505141985401369693440146527872562194284687543091563628167653609755241866139429998783195042877813360894985374721772509345489091789816127513234199909011634504133546816784052073057178146685540111245674231185180904264076212502819657147559997507631204927369119511678776075063146686518050573789213133472504075674249748742069521213650161393573965042854422471882928789888622255884125467838258896378763870932432246065670210116014383259669503082600735365983121313752531345595449897063502380792190838892787775516306134136702721594897387713678854925163624248008942053207408870232092161743351267084755978475326312188461277771016717374013260093906029375341798801147532548521872605946882421293602864827220022868496171615080228306001137750309207686104800058230616013264818994731337393340196064429774906617600843007470837184973725224194498855970792161874739317411235541377548852930034567412808428758434207059942952910435495217368270436568767350151037797206156293807081798440191808256150433556835413743020306945829509722400687905214272897254199155174606782882969621032785717636774799427188235702533646657307678309872918393804190817463647641462516906588581208351928876913864636463572865623541676468097875793405043413325312021110194882666226832475801888527923785315839135883162566443972702075771869968753097495779289039723519324312390347228343691937242663200600996291857581675024774841925334426446414897734922797190352101015983321541165850349274743195567207390015002350746039284899397913264719585419575692784475976215411089886287551740094304531875693742220414180365747923194862232279321524187147107777419214329969266786005794442618498679279348437393074623147461561504210188215848737740323513249910026412563766573237495415357987617791567992603066437030025764996394767296394471317574961092231194775741468968575805897221136170294062522248114301709602292522703268701679266206156262175045192751250348142910793721439204999769323859283030626744589502858452118979983639066290365155699419367882583038203143137352629069575119362396109374571995202873724858476985997476689975314797274788178328922037160987884528411896327211919550081664614349984108636713042025680371696619983794449715915697258970723529925277563506106081538164851844196575734702224736714672457138190942847412176581552136121627241840209949475418368725471191191375938864456542286975947333391687483481495632164826920236226486390508068485598239585038866558347440335361362499645522654214893165095247250810705932645570336949379440962177092875750405553074653524226775824914349423812543862346373903474645070166365117682239320381150547442670719464009931006500370184508281729328675318583141920261671539634009655755984827255093554416245316679949257717425221949714668193732748588676361542230975347272793787931593140097057941379172204547742373925037994419997091678067658525133025506851538845531532356393880977809659073606471497402901145887629527455859865450287889749539217229004658957164762184671648419854769144507676541143258000923884674000973630451517823260630721209135604213112546395975367528918771121750951501419367340568072436481411962859146845205244754449997674197862216267214909630716378513882036893359385978879948287543003343452297119780721316536209963652990512085727993085995724863901168254916838443963070528006283736239732527883007668902201494629987584138184663107029911436777500430462927489059827476023738725946095384291911346528209540708183827075972432520867682586694359758926190071569219026118150097724890668767209485473802391031948574081421933190870270247505172474150870918278324685277448730698085275324836075575631699360167043262015121965873013651536012217551716568995090552532160159950367717374324163595092238915407927957627747864264382889001207797165569643996329329452546031035297677776730437513033243002950064411355076235431481911285251608412081987981350761583911890156283654460850104654189818575362849140842187048755568767263065646166018705089156191193409810576709734487030550126201494384313252606768446846795679895085436624953544388488815594168282612066000649492985723525024915127620944672027887635710849631150987010450546061813833205885548063115518688212805749162142038522205465752218284859656992265787522675183393444938589155895559684675813829188708531291629137723877671634511259036054001022758465195617820961148217774465784699955325145132668482052162814178149236470104298533672569752049979215964706513110797159435206078842991135474460066570414209088987925630097103984076666848186842044928251199013265234109434694746146515789440466383398135045374267665115402630737248159361601546543954585864113242287031957105550882688437723745137060798855527945453960633108782825253747433188035232352181515876679599484248666807199001459212351161341144583700030835822720040282830227445502310198146682976554136391519558320089382321744117299883258038176944371250578136529139576270411576058938326471121115190075401015207076132137201190195700211726576966064048038013317194427493847396079310468128096762967542702705540893526669119217455902782982532476246241278979519350516828554412941779423823834798561753393845344772693877732923322956890699565907210800060259055401758114344823717174278363054210617732810950696427589806241389025913816299376356667289208960784419966524555231440610467253394017030499436978201507169005136441659367842595809012697385163368183261158354351762271473188870430680359766482550952011149389381924144914987498158240737291323454398222846913477214654321086146529085866240145596335048125723571202785845150987345699262339361046133319983515430462733412518664569038653556171725256253104080826689333578481305420500063821309644750291232764747999388662781520470585599212735355402614787490146276962798771087572488525332206180631010569464909964849216172911955669974592934621782767914084658444070943920971318053726148451255480232820053229068601390168023677787863631184234220195329869826071606989911582692442244058929522049520893308556737011208415265268368173788479314625060336159136701146071104364597584054409581982062530135916719775519364429732658617437517815808836017027139547392052635108574769716412348207044947581346687451577630535731413337161848230512674929743390120019594698294792475415990837486688966633365246792579677990429971738351885749856903711754181929106703288287042691523398641913036222189680625737838393865423294029294022909058287688033324676805208398320447425691351318634746324244274611051812546174811684707334639295334520417281161518460653016068100402940712786247019871154542491131444634995929276225720981577755775375179348675367067787130601156839336402082394005101296634463057774797674746353756294969521638493592096913872654277826303588384233797823768356135484229121542452680358794021032143727367504253460848203882285951541449406035431824046090693162228272699022612420400549916869859531282485404615926480920794750840431185181515938404575332274354250796111737155631810623688096431373288889555638005425726286272131562186309754431427845525697800372232038463323841915006677684797670966699025601783644365667561381211738489349025674488432377229330671935912580826475735721890884279774024109821103967054775277975409262840043816328149610304805018838587859402772531155976591040540709073256854680443959796082472863000277818650025220813637816850090907082566497573464246082232293756701318322726734220647236098094511658268256035407816091637529371765301151403974523085083925549602677413055578791111077461697242813195984063827450853720313296818016110192889437168547164761403667813338566350927893422836167816098397928758205407986753534460953739494991897341686480131003698774970512106473772466978205468086103431935171264399702421469009185631994698299184974988492112469032950761243983018099452544496397846869735348890787297643501573229653412680766602237150680372732448123594523458974673160474873255296855427451210182339438594779811131366974115338211496041909490511604064163555084231306186542829562105867965881973673642548590710675573220139716115361672850310821343892851442843731054452536686529663694233498925690811664382810702944722376482817005729890700469360978716153901824555281569637167505069954457942835746299453803366089146099592785550099551220395104201586868927667642617042405726170283872673601370644526034588089358376147314647867705150037493140083840513209221396804473673853995650587387194885242469771417051933423680505708455051230922108469962926600091935295072919872208946374750397673152387410400166604376589648196478754817604380379688796408857752466235081451477659505883394410254390651400921342821498741630014847611089672611303075070327611830890104706909993995895643778452613570974404020677629355008112465344043614683732759329214322510947274211323496970880720743472409624816995393386039196743522942060978656733501721764295839284834549711826557969797746836633985488978999486596892926732620131828865741341713766244809744742652605543249661549259448932781980664692610781804252999712266422973253482371883325580628061804572178292314469472525969833148141542611810851086367738091962274315431866469655651911965735130326294187914394506529115971982154921476579172340862321467247295257928457092423686839772219467142773836685961536202183178851341040272213037721563102264447934517393366419424057347131564922667954682016382490470326059244482851006805713456383456178935667806617852877683546115828577716363558449263068008511730499101927800716090600130603980598400807829597835076870071950044158720451585907195020170937620706434809775316411070962446640166531416958130162159006881292947074327299957387269629881579359763383111312700189291577742264738063708988430597689839651456883460161166438602007293001279513013456346319151647232294881175011212932703997658087526498573329440360817481933725481920438712069282366846238983579637839767624497499281184116584818362375636364229320834173994170857791772892053380161174629680337094065096612291194637539225222946579248967417064824497907367957580515665655200160146136283285003928356316087209715110230180076840085156930591224069192201718089848861247990336539635832910256289676844982345969396613713392673279208464147581307297452658189127772553478456056611353296892917075549824721618732793133780177549672619652769624574209683261888508696004760366945670796956280020413727983753838586389231645220965768187683060716787825817969238780892852817081867827049296989929719522778263445681748794734198198876929134997180914228760514781365738862333681049192910366507106781527014020673074551812312344611103855451795649964653231679871036102148949060890540876706037787496662611431325763178900710838078908928595049757603400770971435964872165594492559637510202172483465167803380242008301113258456601911481499121608250489607117900381546047899085646931127868317262159512051417863532300437812575817742158681826262577366160798873808539383652312697431836641285750859105709605401679458754982695693645690346950831485440745734335613837097573915428832539186544877356031094193180689888775948799049501214564738930582069887460992872132737270949765687308964776946750589051712496662968701834380524675737608953722567038787222335155543197875616688837568721880316166884764217104908537875122604647068604290975152137673930136025336849098504187647791036104169023913051011143253287695119622048360231544153184061770699538099673434067843650406495033994448235427734567203061244734730533527831669496426707596602055860785367706547903166614902296636614134605502747034125124762544593663999090374523300306165098741475825054378935453616243621687805860062415602074443889652667399353443685400252519348455747105042887163621941266109215254437141224860030021658591487924725339547921894597353839624204456063048095096577159290113136267346920657276285854009380215802024524975852589137776930981170848687719532846644905449907660747432554196911662198509843513937110167783542354164291472121582015755980601991643500870542824899947393062324690280635602696648651080990660847300886872145773049467802544975558356986203715700034492413434679872080493156413648583836245479933827255067898200357240520212709211564066539215428069188045927426113393811988205872449973760086391578628546929312680358035152335472041554441047380292960832470362414839322692290318168752277337955998112325999123374544218834793662281169962569931339296020331774169165069549647760472850730203302155641822338811138154243038751275695841466903945173832761216157232089324414601960563127207475819738611019483285081034217806690707593857605024283130209281123391335985383298611707806614080612819029006395042958857403678195394761906293399777928507014365986435303872608111679072239935315918841369969101140444782057188913495422049615021047994225870116635576757313975124658667083462638905441070308726352676791941781539691303046411609839765608312252048461189742857317081784170229992437598673299016347054961674129045575578278773810038614913944544224450418356103290696042874182522668309244375987777155149913690612835160859664413154734025480216948008737657351145379814312900919204301852782712434906778272522858213436003035893011279815001828462069410864269326015863471821829524519649523633289064382058956152351853958894180520263956567884617769652209703558334116658805438517065878365167745488721497993820740796332945942728723968040535727667696156283033242298514086398794042959774686068855952925822156507156082300715686786984492446217874397249914691727691168609354125812890184934259978776667670437260789058523221592079042456678940078709492449087493398977865093334587029320512514625305357800610836219963626300133282516156486771727780316718313025967421098446109160701793466454825474492081116697765376405713652671491776239262373417049352727436393898820007735006473212138551614269793928199724335821001873968910660644487431206265811503927134376460473158913175971187689475339479716769042913549438013207365425355543327034182493628971809662101457721469929311835788829393704258379346796763528820252514210693704420403684325777475712671619947675444733018099041542952561971441350903224433329564457676887874130083691895050565280767548486336203072390822569783672118792677548188610064018496217913268738375181173672367605320331117721897368275047700810741928955206434638196803558295890127377750293709094581927314499442793706787025349428806977221922447636102616124680673111397706382891204263690323688692536771710005957592851476836939381728638044147494449052485166412298359324865170932183063138026315425846745991860234389650800500752016112760554823794497235927516950995431264078888876124682895263213578314323067940803172277910285456729524294979796761241246774056127083768546325194426491919228854315308642284172872249610986794014498671848265752941505004633741855259677892191234083918306681291630030839513505871645301107590670127281346502951653003384538007163011858103358968833674657372872968989502896665396873131064137617588961415365634960421979991188183376262376746468201043216164844756817407072226915944044920300141587792016200919497972784145476339306656194781058120303938410817861407521398862289788450615137851026039766844885113209475714934814172339314439804341974636747103499375969561212586503947313856754130837680437134938977493269664934695654144029982397475372569070145544805757215157126187905671733093162627212414871411716911563007913530585618431336943928395020678306416700162859135305328433179193710033820593258283407541777653578607359451832928728818012116337642723324932797305711097717711825498895428104743826273286299631061231774202434591032695250121241015294935117061567930818559270294683220492634618244168273832832468328991964822558419527927082504758957454575658759006768320099319652509132267563335565894584046292458983190881079050492859591260568012536611875041764282223846970327534872542842240833756247255136088914990546350171980964553614330215476125584066255870549086211601377079865067935229455743697740449334297129108866046246500961660588936236196188070871998749583915418676209393651716646148738997244104285195248320333819356657595115935885813375393148352544469076299150389778688838489827501419380312428614428479458240052522768915387757986815969020541296202099441850934741323419297436273169970847955927378720381941376615365652466061066020702731357662561291867503500144032769005591144820467617950747120804553159764565797736517559411298296934927825748443696151364516033828579839530971462429287314380453941647536408637933802805005126274191199563157850178348478507884115340526258790022118903250876229012538466703673443971166444313599691024813691616174466218189298803704475433196999162261283909025908691966091894437646156467106340387345327685600840764443464815994438202347756380205564901204000640528239042106604806264364974746654928161089441551256211173025120904911669967460496387594929166600768292837934774477984041943869245714190280229557786092722597486803861161968278996538740316614061264108709015997270511566326718618240853583453878071245630721651983703958039832121867042234216969259638490518267268492273253805448963943690334255490118080354792067030814679340465675921435195805414326787063110496188414658178450112621188098697701862854681449179568933205501761800739732140845193060183148357946697449185098976718992856971011062345026638873666189234932780624620290624506469450048619945084115948346946536309610714689040666575159145481788898020327026900569837429394723536134158628640968091001971736311953539968630107042119327603065720277147020474155044032755920086852451196190851893619524864542375771327840907903601111694930907017222695310642736113897491143416640783029959219875445053861182336213762550303108585956104453475066405227005089568150687420187997687723885869365154587816185219587322555707888482297810090913366987742409382742568956853646840004172073433862476968938473333791120036227792041203215647599130480304899290966672007266556054546814881853333703066650112333355235467553458963170756509656145260398951857345001771411011577727060372786790546001336944895835277605860691169904916330753805694588161629841917330064832357599989284451757589074177724288511102324058832501397131194601784709566393073022887944135278277098549249228731055975660089830544401279651561729269978789230406312855015509095269413326571923539075904620873594293745140534132747601982267769305836187554004226566793038371119263442763998558131230998055246273876150348325291684750183355447526193062162227702897542900137433147144063085022547943676365945900343412987734082156924936308465277272195432690232996273551998186901203855759111959440132536338164311919750904926202954419381262446969081571980140523436410199500750727577344827920888388210588107665816547765669781958916189964652910125949911510501312025637062069404509113065148098275643108453613499620129016077742402924566249466280585353724102483002362567426245729579054048439414495854751759845139495977890954181000189515608111502667640715044367545347217869145138994144656708121146763428433889043882509853215895607671995787020097707036699951232736978134690834182830507978814079886245278007904596430061868569579744522016736780294148006135045328049115041633581237321063544421430855813170309649664710347323354545149285179070189917492637184890104418462459443510128977210362369376217811501380988717648937927058508402691885454526591761871787831608934968739119195790110514632032921255755477240912881298160263346318687218874540726368145112357438694886275738185542109555495844389981722653085774481687527942024732572524929689532212588945254650204338901973376514459942581636189907854816377641830304343256280262221700110701883552013141318647129024042079600433750015296922925169448826644094157823146558353663375663944048652972499834073229318081456861210719466393287695841881600056682293531260658327034707967246860452683090604955732873607357129355313999451315120244096881512635637379582520759178442780213770960899652942878284335444959418354948849353469749739706385596618367497967907127578587910187835443295554590742299353595542669703184394853600172671993742331566447048833475290188414682385378226763330971179136139206387661836466533176881370792434948380370704290185643345537871701471221702020474616026955613319955829321787048673486531323445706407302170980758507464019736940654339624570419542741747296494223074373509442231384581147642988937678328395989926278350717800585110241547012519684052912764511087817713011388610418052314470619687488653383062850323229675687831648947762363659918979324753694524238826680095145881633316374838831800077178545816269234226337036840870138214761199536488451631621216264839941226988346767551375718772201438661402471070687820455042095550639135080786656155337138415361688325689687368800309268314663382771459399386607352254349599096947731905161965026565619928021802213272332997098322145290104614573920647725972314742781647915285469601692898410430353759640377080784747402979958737394407432837612949718244232487129732875037442368324743866800374919277541010603075014124979765712706525319046550004492374078549519757793338774492738072618078114912907521557999720965679885164636498778793976729934709436323683176638987033199440147357773756778671428876259121458401071794889917837934164795909199830255747290156604771074056216093284743835688440384472548749759894154029519562541827967041593518199655908613660742990865323011415601215025549708070545275176831968974520889288016845405652429773126880564104743765691381873047370219146642454383679938159099407350677335683367227787210319538452280979026975911553153879717153401669939293662385380681935463986726674514507427351384103759820732933552187693743752857963185857141747080062292937874020621230784545530088812283052582395012192543197450161480881531542084209935731559384466477416416906106744794793976588596745832682521383920326701807500252397273796634830048090923045799065820348478646949609640137498004473283112502759666862689968613378165949245722351672103743058970560590398329349670334776684403078585767185623529664951279964104640662953441904510122728083441485012279464758698736363343740089904278132495944414186813732291146859848572641762122412051849952025860425961061786361652560420701396985749668755104980313273452302527209380614605608321705100865286241798257073398441095071324431631848402459455289172737820593132822553274728903331573288574840887485986851112539564869099863735123378283810088221698871948140028876677355740699279584062193230849388828236868026136512704743467885160087539058368905635327673848755445332210872175874228194944079366399468551836199598877538203987982516169917170826419764880191312426358965054944831625682339603531981040846579228853672407366672951008433132179044905185427389115395230077025870567923358184039139803313150067501596746410537574727439127034331670045566776152009887053419942052317006288232101723637479610959637982959370403160685858484552631308192064289587979649828688116050118349400063600554366146595556594986571737025080248026314523208106627487306906854811990801956394999321960363747530337516753636561199377172379011511097738556547356105852321502356448192085922717482372711755134048424748577815599253110311462860094129972050801965544886788765280633517175484299448954700806155615858530701080021451940436705571583021359230684402866607585986150749726131539613198167315216655957142391185202894360432598598116650458709130029335327176021128946439510387355962688127331029613148924701490445896654671988803192765663933224611314959644788546232851454363510820161660549910027709563065780278939153749890924458290329619111633694982862516061276064995432096722290291477650586429767659221956958018680083694293199715556970746198544218965634622272027117519143829099921427492103546910335921410086516099004619538071273409480311304309668501102849619253553857622343097912018006746049527677506018063772628323832559413044573523607522184940138026591145215722422170798911593934642418325595814216909947821313970269090587668649946189655604352479025473926444541210433720568919785114289799197963310075671641573954018325676337746714407554634132998082146243404899047377311732168608154059100528874864500354284264577313467338483512285307205912923110932398327261741271329451008568393607592132364458086637861090046590755081337316301709592287568099795289601988345688079302122943224859038714413120847386598821961319536127994289863632221593584738751729986068630019728017568370156532360244562756886125354066761559877965928714933029067405775346946681346757847365490492519671083321018083369906325546563283994729590908556438527776424012870355585893233114300185806434081438549977975055163286980906696878538505684761900622648822160364508968229709079920808260628569068325153049318801408222778172636346022468237238305614573954792353542195012275747870055273055460806842527529903792294849951597738597453914469162939703682045326237044424595871256704817142451104501503712374209898900164159488206027539152191618148306029804725280543956357581053153008105546303585057999333359994988712228104783280822999720824864722043331997831571435890250251364543419226595222420435148214586779332552408277875208568913147917915839305266498484249276870658978431664184931225320580146390582650769974382828615260356926882448433568195171564719876418908498314839531860555373967026681369061865278981536445079148052146157730982119911594135194935600816850493948217827400874045080923118639194313766314702277761867142372422339518119682772695348376914622719338572992654924355892276837822749199480530100098939262297548343641605154292498735083698058408803553830637471461835013596702621937163231619781640851426831975484487539426629849001544099857343925450514775160678136473504477110469867340756209420289610110564455545868525509300473027369701317390829948340296977931141829043709172026192826479593873971437257839589138542775157301337111253508186784169618229304144057328326874586186844735917187272246249894533225948564092124438884557840011026058196051612837447653285761017255883322714923936873366574143152603919486863182695452871557927805958447620606979751020352443081841863305839216087328746796169601218804670547555018899244740049514928865475308235323471251264963441272865640467962034580026000978757883113996256310976774486312003221023670118329800315512668476259922291588033803495596617381684331387434911954732207619764062930035191756862591852040691072849659999865178090566377357391896311562034020361667448657667975193778035473844786323011924111098160324266105262307881758677074884528778228378675901253937286936057205746537537998236936572235790546589271438033461093675231701590920120145119800181805355353229600419507958590463459380871143259424802141829265411382310546386257821410907758353736682602329688566567050656899059278818079228589732189699624927798295765005476897863097793108960455303973326006964781676843710474761001275249780507067122430928252610237866126251377603027697793330765216529088482175354277600821608929314789475985175292845168487468704179883935956832609641182050964146454736418333814671706410492794369635409598019969690941397106224137250025640046763758631892026661281058888219671293056677722883270940355578552972749153019437740512309013385938741813880926487123314280011041716239728200438881663870092029266113957950743850340239729367564518787270383838208500581116709272689240641160797205014804131522214991083535523443192862101107985305179273072289108409787087278904784027246262616868542439357603254970687423192964985516317414156630080475823214848987254944137019822214133343048779349862764014257708167114816414144536152524989580837823308286084009894353138923870697537130363795182111938287263994167868773855976621197413181201475841213376449616485342505177961969991687338956115050420246346142889375454448879145453847202501850237598939495235741497107539774247056211008427214331853437331196321956485991424029724920245066858053234164306277507898737086486953668372445742837996023242539887092842995038160093482953430886129227693177540200822491115896351889535495904378336023523654183998334854544376894813840017348156060659931453648811084591560488175974178165575415919014054711182241115923695710098940812140183800980527546593726513114654741096774687620404136059913449406433576195548607579153443727949826074967549375871368114676225199983840833943596262285144605678651502570916298327289154641117244155835026899369764649070588380766910799174655873852758349178426827585035853747957907165391817744319121556979898862464694010536737971770826029596822417885540402894372717220577206102888287680186301871258508757694604471818485773382222430560841409260061620819650325606420668082558767649373706146187265847422449510057498659967585756082195392322080060032433729600053328343327370410326060357403325480210467091905143119216576017976151580581291456006832351383906359313068783909962064313903513126697801209057127275135276301809472314004261741154438664209778380945345795378461075276693082201396705593374552785957940590868799529215651008229745879760511985858368634325581869678803670124810498386354450571472714991430483221968775613596441733690007905238905278499308226485616787779512200487764693624814646418615994364378325403962751829416949123779296755398012841125540407448152330708053471940203916790779435546812774389105947913055099140689528488718466079063694941821790796888162773654252908098187119074904664025593435326293217661655925079453997883213627129450698477705856756533191701591235565239531306282558873226942025509515751594244498555599245513241991582228377431452847127303595203169551816229177260524956826224923208137668719397447906735551519445304048497284331769871104740955169534469320975223986790857690906935020269103299445672992019233414434096121311985473108662514475960954191262504588153882047507192453782222950382596306527421943867554647875038878101127138213350886065061786328410393196406272458940492428283619815535909121364128110354363582228419697039867325452274468632093157905517444694195329316406094699950673706720847931578522375998017825120078424138539070642790075523204497547294836729568424568526401948800291298084861917430487688388122473025214522890175136106685840527838321403875466551315140654267703069613542363353234862300274728950696608274502286672336543174854785320396712980157380047056254166812903330471897738079471734876215928876628074478746271856569108878750499896078972244472339997241581263612527647546709247009906124470822188692963747360171524191500215868808507237688137100421620113058155269725274121062031888741221857801094844843608497695814532646066904231672980318038841065584691779990670279615805007384093085597184998336126413251974400097880573969303395198240223192713165820103770309820593366267086138693835588896211621079388329439126150048069238552093064544927321599490405313108706729442750192205682966986932675358019812870675091419066571350042822662808362478257176021706226936636398680750000507357593870650083875857076001941929709821045340850480346207602450566752254553490186322152979283815453698122731225620578248465035510199076766818810433438226954898125163043102541258520496466553835405833737199296223650163529605048027979947757396723744411513393240438604882115530178914963021137380529841975194568999270415449971952339399692296511649613631753369465954648401079484155473679816014386202283846164799153967545387464646199680729599048181867299516708349906272488365528863211255589442691576191591775774059617346202992501140668775313190966369623970435097355802527869365538404134716880110926111617625281054951965781689794721342494369378554714849700823543341310714371924954983613482067581349743860289821267616883855701819157547155840138041657773064668349459628526871612417187395332108493393994449230293427301377432020958193054058245506994182486724668257372896142656691626523000020795069941931533254671118420211377596720252399144683238615623223466601992811279236626018148410164902914462639773601935074274707375723643095025791020758872272865104810328639786882181544554723893663458185108865112020092115468114117846602937943779485374475625898267854834343890959143207628856185065637887728191471508505889071664953931097950603005255485785212383806683719638998106581337332169335222712564286845717707642813241582807974602317996064087387234227511584816612596698044377178587047757892206038780596480109808945125977208289743886870330178414996823621561419192450644306770326037974123407849559175119458764850362558597193528691231486541452203800453064998212388726570120791475833083480245510160288562654347488826231484044074898101615921061324891587998804928375043948308608097862613381474267921886603922992077919240775413907813449489384061728118087898049096368576400351993107884059927242454734422072898194653347555088535282305209335011947231866167179600284325425100543187948577673811766254453269374510193014045551661911956012211276315227816071153052169283219193730199846561026441997987952142285773847367442487287185544974014880674278107335252237662772675984616014818805172976410936190612438964652127270628621270229763453383360779800620087372684111142115266741624173971395402987193839461444423160414111922459167532361703215579862212954323680098278938621807680357566087111556559751612863669241580738632298973515562674131417714590911665759688062744714650690538708334994747109769403031784107801176030649058886037314694721897729662763722305267340909297424592246457714379576239436639268617606675614104418358051972223613789247974579309485833222320096821016057671548665314629389858892242539883126946697237678734320092642083464729885190029102645029501410304146796308716838916625481050386065321866572286140164151979819368717896342983719532422576954142308185981469597600141059326982082037194872013278731818850276375433341303970234202731851770372757189877945168620447425405727371166903684477154229704069341828647255678259649643515834761321957208289660848892065461151325153835136348311377449098220068243669753750313595271454540453803786925925147262114963522256401155274533612290408570177660095036519449689972573403083453268779106972224085983150446761538365455877760885492912680893245331560966483480729050020676760772284324953655697999762299928087187385210436959980475508301632263985888015241808347896798600729994923349519361648333798192846468733434785028057764067461358815099353790957520635465555999015091155987372295420089706501456933523867289217249069137480806539765371714465804450623535407039697270637490090775803482585317781751533491634083787878598601997807557841280948447740018781393953448408181791611544057093396239622776544933064304087190204066694252787394037628085310748878792406149360833746629429375597118892392303423727358252296371116332660137845628614647365895219502944197171972398429851930851722096353422252931906020793351410893206848340441107885795131852410823519989841096708295122440675744270202835339768313703969341491145935584805167452487236191169004896668902706124110632617267345368665158464626321116007462314406869975868510176502012022223090797505128797280138941302903868201810201105023835092135266839502933038129998956276523548154002440211005810673729831262196951890273886585879901133980710191267423275453841968246332282013426840425035777192439596667172792185087596388686138605958229082925786073416061533711400263033661710049619088089378221676662992592449676274378446339802978676345283824702557810544256048555821560954164313478859157853764707647702293463762548803343242253711813974379924476988995172076530347326077632526660997261815004968407211642185569994728437348663176141535629435383739998993965054472671472333314008949563467848698289159305433440969048286576197718970017680743594320080109479501964833302995597113424683318096152868794008856862501773447524327659947061980832189817763775946296732135137537586266315499562818762641238312363724179824863912153165195882366345502681539259526060341347114735828368950513804179453065100282130970542593150478849419496298515697381087619953428989121583572320663904995002124444757454171177302086185606716974389257829487554011600474079402529778277844472024285888003883266499697688893848180237654064662760071836915721377322355006341451355069876188396838549267086078678358823245206220162543027305437287716388348967337226881916683305272685616088162569829635118318937515081444882021437344280994455092240791388437124611492938978262533138407447446902610915007803307270455743642234068957350609872122497420658330819515471872675433347744732998587690478622070962962387986766417128698498355005316373182425676512819283442717127421310933906799553426937082511098012226043284531384643995137676085827302611335385585531722962598775363090845944733329708189706815323817893485402085659863476534705992643664199401403899965844215543302633349147792984903904460046175375172303043246494571914439841975162192871828451448305006709149107042908095047893040259541966655349715209870826470597594365475270487186522469552839349216252555814142608382866539461338746905188594861043683960903502257531332184943578762026311489561803362862548276419945357659985985184677411452166366259097539285061093194439187380513572158825872192869712661002978679361882534502290663801000877920935314941079381487194361374957509667985491674915489845226043975982066536080682669519123948740983216600642938946338998701785434454637033615225309116635526810600470202399759721846076638570022789380800893907573268350975417879537674295561199902990711054365865807487350816208670788649303694255612757998443009815244589170311062181131204249046969314803507815446810353174949889673538560743675009636762252592817981784197743892180102693697653144029951387387990515281951123504472366683120709428395913909102123617410333175817574818576476784593314631105933037615625724583598600375951771214980265700750060241722284856368275737670613439514713738793587350653037218615806356915732497875909104336387800065503245065361666193942733711826380806607238201919030195584414059620093347917839384287675767937809218341962801008504268922972318409371387330767096595962277834497991037895525674427388371571586266382011195290833700902307201642020198238095369231896218833692786591363150258351375774445984592526741678072442326365972068777695852829598912226254661262133980780671999360794881561957406667162184601537042699560036251252108153755852806132790029920292012309110921635740127117809457529159575410823007001293530739081557568994730108808832780080401759397188953698229367323973664685482631167341831131218967176423685484435834062642406991884942237708800527080455302231603130965712421519798910997025657810101131451193622526978946978434487830640819199361993830538820566033837361894066421921711472818731336376717511856057534241443967684236642096070810091860056282000539410400002936687596771201197375962492412579296403801689975531429017113460291952190987816741705080839329340771865375197557320907995503380659500196723379279145359885820067132302516143193033000595826075872928130004334601213282660126475755224395169601945922122042995428487081801648817526592020260546200974397213414956528556892142787422452838504691801294277453564712393860990992632594050130363918513359183122380735517751446052609049903666961659978917693394700028873182356321875650102381933357904748401794284134595275578321580070275459392088448802842246390196483851356992713513534183912786142902037151439797698304431382566709882620002980802552584792665484309576308135485735451955638230003699123013683300838207899907514656048026971439629418151479767025081761176982697426478045504340248747726710383686551428627756637355903904519473181180001431241273767809646509434521711627017075695049071104923637517248093782977036557339699226370676811582487378505059183982556194522093807949843123383581608174101166591881274151718415438279099536321314043324019304634872350830068510065516641275993510113325334740933839960723366640127890164214718910698949257321075120941439125190997982755566671292482567619202446620753544108941706414545943032664103934640958965006379819429967359938826799372742710172458109393207689483367775040594854615676425304839933774278934675452413021207351571189170589936326530742002364129015894165175664304004338031154561585718110686844050891328903803789060930870244628010473275185004558857220864085305490244912183864947990217817105603254873745791739473450165454056345717487318602371204617544700971524341719225431028525503565418195429438024520852564842406000487154164318504472048074816638599496924122429925216006355832788539803266328511734136192319697495641512435634836871504645925801584012328158862978364481434144711785743190260466062773835639091220987004373478564555601809664759445871117675643899259860330905302024418434219679577407863684953122556989212830922054384161897025750097002469723378251924006715997973531515577363206295800498237529421364297011440334518037210758539791278166311161972735302802924323101934521828993747274157689089652811588939537892372627283835528801698013917314810691877762198754959435298730542241073426344584697084795593633959665930605064607494554673102604952176140165184870192122157005540510176372212678944305248726463892151534799450543681545225989793069404091915347534514064370516430920953592447405809064011569374464364451371622624617699189205576359933655903280345718633924894597736261702657783107652446005073346197865095131333089111639898933374996208025178640116799844070221828434689505237350780513061158069832992676057195651438236669229235678280622832990893231354206321739072175702358204218986760550582049344286114159745906135325828735492712063302746668423025681966131345152824048974232301913502125685614077088712451552085607623027979347672660993886294376886707444739448746638188825113311382476894238789290795799465742459567658287940056354517303073250696118396412256795832125807015577953988885165645712520157157875599963326165239675040045665531632448035807685509910782211500164283650768630038019144355349073683724741757355004188936186357989600434773842416440785815946521773738609445766470680342899287244542412434927888845632706216436993411655184901339203526610123141559014837482333467349735236702523803856688039855400309633963048900252284067380218943326894738984126338831861387340298332161668124412625152610406589088328562976526305152468376695301690387732094183359530419936136116079452116525635296201972619876010407438059928747871337062107846462843342963645310370963628604159679638988588925435411467741739515861491032568791711534758947075023079927503624910327897602207421637104373310821173985295959377435694079929044485394955326930421657249100208881069480523814179741638177849307731212988604018664104009503789695703398143798215265688703911155013312575139859479887091489510095866408026611875561911310191402353984766699376017090945454359422417634014937729514780797963379213117607492629220313481078296892772022308798277549447609357875613501902582775117769721678529189249582159334748064941911711784899606160889295964153129774570443743033986656848931429341700085011065101905595194138593703734779061254078434260601490214625277034659890671556581486694168710491980769481584833002413809810537292266269490466109876379604274112667255866286477514697920252403021863306547706362102387594095839296610302173750487830533640215423108036358295778373011345721751248251724695376319019524162526062270256099395651297556191322238751527337158867593921972572401264379451847963327959550018220415390050279443373496781216376741561699380855782820654474051876059657785497134405515008529895256573016456318812453650384699783563878488205157472676632290408312929248648225612881058145127664332673364132174154386913011012860779119249368661597105866569355754106831284013564036661624756821872836493456028379972034211213583213244989924051721544670360267279277957919312125688912920902140619507263307219759407635895823215884537153301210829963469512952787159024316779489792101973098045415624346662837667809229304756682216399085154514086329317583968333811835411746777982071292394831832769593718519871102455105597464991259654111570608522866522781305171965253150172642825019066540592236210753025035957889079750647637566292588431097655365136406258667985074718678078053660160925201029763040328585613802866020276091167507092163463307133344120041393231147537355300694370511798618127874527866094974413672019249028034577025164249085512692355052747034121888969719058237892861976287568323871244881332037723667917638154231397979448204735460942336980012370144643020073086188571194659766525380423574365471776621559293638991196698343304922541697547423771570460716616104424875548543199638381171600080178933865272840426440686936818039539653047690531236963267345762472827496187431232198802803470696344107545713642211529462142022201380591826800349508174630156492308484372205918530262845415501387547572995752223339297791447404006317809927837550111420547225619282610960981201281432391940312454505333584049818485310085725381513731540468007316617180977572894929308771034655663384703497907956456023255461791248296118170523066818025011051968773796327331184087764737758243330536473155373852832542971450385836814799671835628786058004361591498751574175542957154537917918378941596781370451630694732136702545599830797536493327691154418032700590413728578076046901219116669430030489693712095694642870950740766830918653355972755824707479106329306520382267041464727369002275175822555326126733789365771834619263392614496739576485211058680769986431602201745938500778092228112414000493697497467152721581220705849862964254073719730925609068482471003957719215750725090859820495582957934297912057301383206580695875102586927234546997332291647402317200789959211237176897598946191219880775725708868630977337874647231060097982909403721693824152841581306319335624832770065756858035078141269646893925628747574746722045017477778651208713888388099107097149318862686027535129674136177765791138625950518521020030653500362241979555019563322708523499547094307225224738015621771505841932763880082552256144050037506836412361303532861580303892329581667791707943770199696770538721677111522176576127849015663485603013705043105590393861038191470779164031284279784559215565545884341001944533763549295792728158787565632601650615411761931910221690578158046789127133495324863081241627514201938363689568146807076857804625897950584351208589746811537725924181711425159303278337419925541982218451555276908868538170958855200422999125243945671902457761687953245820926954971097186548147421601503299429303278699703965148198399414832379073585586060087119813188265433606436535398437712834826281467705280575566149245569741905617487483103243986361727903832851991480870030821527279380325283612695145677388014953602239424408161703491458904055268155277438999312125076542707768949037945278925115361108252725210194859835776489717190806317832849119242434988115903117754495376377187878261077653594427255270829483609165075114215075845946379270488757452807274046800657896011418758851497281159868288782261217740508672250747077040428605297898722878121630779217015267207545373605161906461254050283123808272010384101976846581384110280427845032442240164355657646961750248592073870043400174984018579084144872641946277667711010604815429498665900083261344316326287536604053098101756551141299308096162172645296502218251764122016539800018512930491548855366797266321582028074264037867637644860886697903735726880831287236474839048215757701611430544465952012760357092807114677546732050496323637116081368642553197795416524324423881663873636222346497097503713398405555559678861041545485591310216917054428844375389959253730802978503217877023737498655313045764942033072222673358921826269674370827864907575694217992530870146791741410497690812175152088951421593913478884532129798180794674063733704442483393666029619921664340033226853950539865024859068353976481733593923378871372797644169202301467126497306678410203897109943943306231674956915372564796636018986506746549822158745402031079021416211752389570499289296377926111702708372245983006289013823592979735389001818894909897960510276324755584845690607783503788114072091207273566594015904087448481893117882429869231540813516659540742084554629322880094672623031354139526041427817099490459878925727187810313025464110158722345135132208770778942600445840255262553992372282672240113698516472916957515726529725088971648302575721978136951342801320737974822771394783287462562200527458409177501783800339229745397909178475321188023867961755819553629231233893193490326708786433866128858210536961925205793111445360712167456729215891154362641546558391639944570325185390312024997823212349828873934759163655498848028814521889951268899079011814831947701755973217770333822709046431144960698848189944875575612293389477905347917642468773400695304829539134075059584561037765140852691606478450967826885487002704403334531982670689013518051303389162846719082950149807169560818600482533397224636866366522923911607434103975848633135827935868814430258537074373457406495689578589680356228173425402941415743373851484431470517642375014778002870614040925749102076349575491508071388599124128073964236404905625558049751911031392395321834485629403518509288723706236276487094416523214035753761408888995360974145523776959866567999351782376724369024656147019558407765419530432932694146039414256556351361753962927913960518335608651084930411090120553868752023058646201366475061886063761695285599904187777503127400439222040505356991290656699061762533453619294249391395731685213195617631428285247762872849460615512967649316760359238693036605089052145088781866120549416126381536936909828931262756545461791990102332869845246125721752670382557807239350080328598945931803330420353816364368522645532056542927181930529398010680574604156780772805985455356798514555729196213045645592687157235494141164625247972988489585031254804595638922430941557784573672048347929349362177871896484640394607663839625211188531122283762700140496756274553758805257738187652316044772876879065294998927201867834808360545064631713032308531111577299399715154439682919560447993922406219588074008122665055709289298931435675314541718769955530143276372544226851494972527585560056680264381429609472486683142587147839510681376988758636893999743574309588076532853889315740947340667687810449989192454103137975426784701789908549316566995794092570604832855435351985222201511030697081988484106038427614184636388567635513312994360236706218534140504856331235933295726939768204506299687143312641313990184430273418135934510116570260340447294312648920422943865971738326204809447309527426984672968817358613682501378132197538156286544070168208847736841217048709298370947801756672663821230969773042534104438054496025500047969598007320337684821601750843900723294564036239695443607387273320942513343406625858013490921332992655364231650273528790605425003993254540822717345615379360698507573460147668996680309611571469530160072840550419076542515589678362553984319077733462908440056100957251657555509262461762122363982396885696438383829042892744076050492116248198632435116717775195068857277429849996389751331073113840966830046151567888150949121290634101555180884753757687405957631358713078592094992703351881802120852173282656088933969617447835513963644465966815112034756884694193253514075375981419165595338460912931857462307643116640261575326011683322836594149573415112698431861442641178679149015088094969660386787821782922596374977901450887602083267106484896765186986999181741188017445643179038161063130839207301750152926219663311471274759888348845392294094497505212587463272246305867810448060075782234503286856134549616877775482573108870142122467462482954796192394239868486120465002979001146337625227075901680630905357066078396550249882553024935514460937505973044737989751052163372158539215178317837387037467534926313865034640585117604178927793348063715773163644829835451813915723917039556803274265524221424280392403370765127907542027936270557907096289197052081567903250049508574585283169837089557390556926974725024400199379529992328345254706005892692483824733235301598530462690637632352368557335745059818028714997420615123685445951648864327734583457405258299754880523943159206726515442420944733395475727623323024092320031265956188542794884646754914463172917075054174825992864332491025488274364621655927507156143805504888531589955893268279206503980621501371506705426084782183921804163265985394300019413603153818407230941685412755247120264658186005997691055833558044651642592257240093163803943449316528264309470779296419988874911723864839496668502410129564329933568761124112013028153502368268447342034390934420311482085722148318479748889619653816625421409546292743761446847393040123461930673280692437530065853022105245491451212428020074014391019245576336904385671380013283118561418763551355861507830086295587423690620107879798580134715081039630150683014349551317462333236268545339111880057216717338969597931070819428316180539340414377796773096875288626341777290539249687898403625192214427254024472033888751124583453522029985434890873795834794457592231731631427046082465504134830868795646028841625703418350964833610556025233089773587799481005040393142998580912423976645402565446427491325436211626804152136836500850605972156680010910720116973220182452894634760127947349649282957396612752646004976833725726542631626842822430856736025698290162314836916699949267842170570140417100044658744148513202492386208524816553948574350364795958648337550642189090323097072356470161927006998447134335382667204825318778635917434918506462754773185716327658085999125696705980794201322804988981274128393418692108847159001232131141367123021444853511250781514602177612462913008797634098173176753289695830181995586159895394449335993852226917982713489931486740150563990896276497359821134004874821305660370877310889145366877859780803339998388134911293244386113864455613503739655788901963191339780439480563531172145673971759565572502348045106701367491034211446258458018000646573044655157336791300288777975330658399959057748484403235051982752332772040291764216943385451579648933141999533567438101184431837657396547843573270221037954644148718337118678290393102017175903852675848184242080876995712963855726710804517102813451472800918395724940380714022420722067152337080268027411956006093763113020309441624464009796427191248862669150702733997100650341906275268372726405742222739230423587056486712934954550440178708548589207394570129085393423935799076358263379743574523936735165288254562092114993417640274682340616438585485719015792193644502563632427814642975922066608531891617004025847413814338539135854802206857165730986225069045869492614851467024595731853498403672160964143538527435895981506039658728253320398917336879629513187107049296814325030226274916559218907802196374313677383314551858147705400410650480314952287678441212478823242798186435094939092632805830227205596925032368198451239838173796474146518276667075957587143390353469675681060398488858087383298387832813593928177181483602771237705417364419193877038300986767590555655927720118216822040992939165114728323402690273607865566040169783751724315144627453097578724256346237734774176682731937054153852875189301630234827214530106751386611250194493397972020050971177203653639024228983182259377325329614123726040665603567566910960864764981887914088310197474618219954737908098879818799476838000269199300873694927138363091600805374463175951871801670538326470236765821614328671047597620418443434463862890332618391865742227677762011727220521296029222058581532180087595208351594912960524574994726513733925463832635258098955365066049399200687648222188234041579753602707793005210263804394817440979120334346581154998798306085378836905891501086092096769517651011901890134919441732220885332197436292818712034907994009509768246604324939344259536351428039331439928325753591930499685005967887265415020089623256029737958532175102653292404496176664741886468900004249876980682621925487606746351062156811533751585118698164355889467213991797655291447500871922652986321281377361131958934637377037010294701930307353520166391179973298248302529706442079440684800604880160559536784983288156664295503502244107729154153228701758938593066427631262634056330508552700438079400635613076516273402090278189428846789135206266425822637524414906099944313061004762370188805496992895602115503444557066840775133672816141220121060360497285783065735883775918828109920124959587370482653245013991012527787620666709092228131387647179725691703758754519803666105624264163270670830343849977627786777395525796143915876411855144517763775783750034681142518843937623645073889400206042361776718689751080750427950656058069894659489740264916536048668051786320638784624085509483107004675041232859917339740318186899975866755254820692361982755097179394629185076260716819681382227913037207379975830334392441754052435170118093454415814599374374339978800352535818895681851377182743170843074054951962431298345437607475420050318061103888120597978491671483825024126596221646970985104477506260036061029257743968754370027667873574373326743337270104812885300994503355309987205718568070232101544571470878989330384513002921454864635498294106999617269549838610193453555760711763636355009094180049693964056072253128231582335453181028606311908642760943717939366676665065970052933045786489953792813401147491322818076010305490632368299216133108850368553340471168591960593126755777914444626072192432846205942589003489789061513906534312987297526197389820304383051470249890600935701621246676847005857043715478772444411853059696015460139080778103119015696928281958877235576618839718605525270841861204059284351334939058129865132256694631924206506360335427718052284445673009118151854236500925294315867681333385277736773207637812023849563007453691411671254755126508579424649555291608110090205572513697164764611986995870477263370716287147764368361660347753268537066114017161715018910450854600169259388289083406708492541136224565483571013056900367292221728852218255077099109655850143998352110471221927993909329394450570616524182136113479256217870097676003714996914219781555478330241256656731777833985894473485600339941200295672276186892497936233382701422618065121503901166335448680847247402853916350795444556311962968417020610077070857614363050384774643709398979006940750515706644808769188222786368893270875726487229476901282688596304665082312219527309996512741963686644950089572994681345462939852280407423937572271153901623480382941986722995230642436365634587266885456088862453572325499945338862862088805272564926188862460008062403107866121262946953050926603995373761246963098769041012088946964042534729837483555579689372875521082784785509768651223419836775067645982775068822652660152131744536565575959442740863710092025922917543893433646663043651891758001830603540173994781324124477098955834600310405799078516176839729383332079277641621223025489601155810346541890440354763075981816839879740157114985143227886456982720554914297760998897987423965993154410410937413488912022923161838514790680595901704801500239351019056570933002861204175072704061171704174403135635047347715795461249140593764623993466472385185680638591491112342116058555364978535563454293251260113804238369140630483866745779299532637400783964816736742229708066270726399739042629334264864976496151026961605705730631125201777718044558862077454441507222786593854939137303783861566845329471182798246341289448390962445367435018761555797616115188559221139914367953897173974687757949373352404082160529566191197236044882588193657802704833716318646789767251833722564438883509596064256360379276729240158860249008412695643544215298229026753528639589778262135115161840915672882261718737936239365660758122714399397282567517255170588668915835874202495030473889938201701896201203123985927581553187672539961306706376386502563885123833533279832173371419495204084096115860001809263345709438976085891361814596513584410964386741745537305432460304369959970112487909311764252491266587269786082693790077863727949411645983082977697525370586707635053927803432215901979584004234135471920507102100453869990101158484034260064370487675654686472811606551118093862574564446121888021712622693622788559031723746463173804282027861007372271385128684698221221419868727678414495976288965433950888913293604900735226359663069110866755851802343734574491823045276167146910974565148633795022275897898133967618629608925475847797281305590292720996388570032701532120779212372930394845616533954342037624514166127268001036397615052847400795282164370164118147454818879168402128454320333370940525987849243950315114959163249910760247870463279430037897751131169619897030788176765949870879272998286069461986850034170480410855444393195086097677996972340033503717957351670185115728568538467941547594059644594077757769548671568269114245420804351811486042410179501318051490281700285592663506404966655347584502909607138734763344695697274891935758020699987045181702844555324494857538819100071970644843936749827957957954690157161128138074667286511340706569128002437398694164198040034744664311431338367997217748577733947069233259752374952211570541158759504378825029801580706540133650635164350231405811701470067284937923631099363705372185166897063983409357033613927836821923110764626148965652537695204892414431759190670560873796419531442345763849695613559861307847356917084360519280075004552146405224265042786465838379556786639728641483848098593458553923170773651658538678198008769500675276618264008260065738601560422625170841170563236839386438179344072155590883708399925035144808699215096200682407722422514790233824319821056488481813234907691671105031488519404957648681708010441352416617193599097981566626322818269206045564401101378307409619308592651174279833778669165590361861482441142718513574502012607099708569413279218269306037486527575005033716881503407837539006605700740024055307844405300556103686130378775197453758404204501236678523091500567681863505990586766934527967795146794599134276239155983159851617024405027398536653340547946091067871241419531308128151705644841100156961227446691540851161510596201523639374421381630423469651430498708731900821038085234089187395411624429072880587038353152259799251516968409704554103399223648157023360913641334072591493125511007714965111716134023829003914703894568897628448659917040903808062204183349288457479480918430232413816518914089937650156086738640354743376220786854305268566387059896862863289097191624004876671160568607185937251277395239544411179954639886500689706675963286116003258849898180508433837920001951302162294904701165055110548498956029139310426204820322109139775534001181646895388829240318964496685472687240935168584852452152363870355101209739796368193259400235061668526023318392998074116792197455525920017199836929057901551926507346710876599563258132297579594595451939366563437767434416533512380217914014540598478970562666704640509786723635563517167791523383690657593717965919006911493724737021463932353183287991079615870179909391378241645178353820764158924868082500155380365894709115145746036846628630331890803735783869971162985835969278954408923240145151687378390933014664274303254457228079601611847134647047410682678954240934279319732584519548705480531344850182405189314154025998627877013828208693747350203480391166845754237805837402854395283386572266064365843843122179361802283480762862171711976072899465442778743573171032938892119384221974471654495871711511283192538846943876076458885500485280599886526396305365126522977415827495937503863574382494444778408641471140976671634211592315690579389172512931599465136270668955116737357024992940992652867355511547452702476337038134045004528886946228107657388398853681336338679177100237788741181004061060649019014642238706808992975063310546012356068046190446436581117139761999340004214910628189066841655647739293044038417518929264167992207974788133925830698376075453622572124768239586336920820432125969442296649675288724130388221632351235644188227970448475260723330085962466773650301210071519014358668690838819795772640948570702319855709718258817260181038753779492231243759366356048005692935865197941275010369380201694634474026691244766126652286050069010928523372599150368960807342808316372258536745389215781190925867843504475952166796582459847513948453045406657183862670498545630916077175267471713031129930070299418712247919383167632701466118687737424009293138300286784476009809422959920854436910175558679863718085585493275664016240087608190306215823929367103314739793510623060262592328160060994734197717828506806356331184488896038705348723611497978167039147417034020625359537301237120694618149727606712590523796825189117995179190087181622370106651396549397213502686015198446202713576640323684123152853810107515131984173326628175442502824368969842887157528693975771276878971889487308431589682195501916191491428143423781605781970900024407062936069277601278766750734762005238603879840486200580926631541875594179518638745382100706165451843680337506833358026371946713680899457133920296463206797608201840431416697146269137791069890671634309030893400475694431902324117208155787218795844416823588707964313609728008876996423247001174058667856732605024799334056228162299035032101125239964735501330958417995654643348412844733100585717248862601753582260574071438488202114032840537678422953801710991521725653872893758733598592262044803203552257569892090768827997041281315374527523863118342072770072166824348529451100858766898428966465718167592115682263927107029223020641120485599827104206451115957819259839584567690857899934566839870192789841551723410723093809520540523876579367216005149327994527467446314045540938501798537051416201144331064339270838793499346039167973676897038407428245073662208811002268586646701418411333272949499085904660783991680352676320907544414622605185627194909989399585340142897628923254292760797374626115645061419904696372329900469261907029407492784012543612841358500624039178755488484899116504365568092893801941280551610338034172111836608392688039854511513714500106481878625381742832645751653755352530928168701450184320943287022164519006667024855483693705953042852733827848328636700949308036958792007348073168005971903047451147540518925631634764119950430057019294786491872401684407291586393259748710603868370386231230536318921605647100296528267696620658986417698845341850579063930917282459133347369593781032752652124667539706532818771571151865429022513771044075770411648866351166772569109059151185893510355217755939289896506143491371034795036085178300816954214138727254450951962358464284082666049221400616090640309446554343302908301964860980673639355395213187636464682297262393892136298202793317616304136929819738673193624267045406928247431743947158277531843434739449521464674769389001450993968395470030206689996535515039045770741662802793548974428473112953064125975203637947580363404028628978403418241007437920066485259180124456394055999440316613456727476936329955439857365835609834489295563599269453859145189071603880460179229742642485409368740534859187986071307159444207157644174809494497889133128666364549425173925506443304679175974702764484598115098105742992846820106092992326735861571019657149297348218604047098694213916473642925712049960122488329874130337310989042973315664419301310377800142202216280601879121841147390907350188894002491955572993478036729304095073728808993150576676900802505719506400407461355595614313925186602669215704523764883321699218400600511626182316720566699296031763736721103524656436804455306300150482620618561160243172973162440517367518786469951425262072749846167488392451369700378182340139912006355051315564734623853867035779845694363796450484498228116187049454854341203910233401146277840759803713404029374043066659413835898585009920559848638760400577299837121571634186924506448963115084829594445748964208994729011649606552481068095278948154503061415422115291420329605856651942226704991518581114455738972884710693680194103926754327040439074984055433175405905871587974790382996407345482186867683871000550080140663546562043275894869109366903893763358111683353800717908859267890732458532671898225932554326868522520806940248033773359197442074262289577279780386598787556357482360944500952238591399660884248717912657667583488584005793240178799989817607882724165147960950031619106815644396593167145275162537257072289005211799601721091885361562477596684247006043306659125323116528518896859444101449278147578313154032440412223395150392001817589491768689875631445010036453124965832305608243557188615296067651432649774941337703490211071994505456027521334792121358374652721482945170211570424630772988760062154124501940382720539666104512194755236673996604042756307269258660277598567078107901668594613441215930026059320705960335478420979892240110900316987923142301837276859612068821784780164486603813364471522536036316753344321512623477730790499563336433242219120287384948927541336238876502090405351293549901359704186691829659317658121891074096701073210136381671126976121815652492549074182026902578699635330440185000619498657433540665048936486910311485527915621972042919398391454694484801340880550452084892089222462270764624962261710560633321258048177810711137003749801095343719436759656872969757415036299865083874123066794108774376857725234837710822509780468165210278947741361051902929250237576573198134076502211980025810710210229707529091874434157147661002503955070879241569066913323162782038410740118538155044610763648747356770252489225674940385832950672963170113474289895245362425591145796844588983803808616744849751488881316017966173413599039827569820821872836815648289839286382294701623745667882361409572134805867105932330711310891278764561506941458911914453247937156076906523568637356130335196447447336379923789208088638900755171009281434497070515391689450906845180496253548825393182380884670353186698616974079671156831474802852309034415461517169082112847721316123647930557066135352120873542343182012282479593279706990583144496611994395055719801614167897013446686071903340131498431268199929095362992986681482674828472655130461604363583095940315508884430631636611147000051967316030971959909358699913081218990840185893014631501744143851043969338665094130748417357710125958573995875521403266836777208934345053030674798318123592138372020519567990509907303746850910228213213623983219615996630171557344648657010336360025118010323755853472606228222998679038680564559163290250163800854964673476843456720034582430138042305731467531077147151736031562776981646943436078275531987956015611204450332220304595418793497131698089742886127265536306672104259579165627178080760120105342242416324841622723160447856353310780796719119312460450265034339919426859717088249304313235425259413331582157445612902350144401696465456672779140841824851949910413278383458342414757983325414484963262250855832065654891905114252610640662491414247508672221151749938111121458457249034430061990903329931924229072235282675818176535790538705294510930077524044991962569896416663199283018478297631134773351886897074995149039904074836681636069820735580392907370070387112294552210652317276971702259963705454023394910602627000346775217992787823940416820224693193145096934195902815116209977814434692206451601429223560247468542698352898552560892145000416434227218978762695509294242415956125433552538001395139374563174534311137067713002345623309420809744172782047505891629632930128601645382812256363124459486617638536795811993713592412637108849638255710524722988222908711643488799695648672927187213268794379123925091619190489407240068707567292168967079043427938609853048460162449022712507546727983468159233166134805688850570122537339886348226423970353102004024439845651712327470027721093082874339308140997896873545292434837482342717308362965151320599396412962554782781559488516841526599960347410037871039610428863191895463381977435630443517593491196489286953230968765723609266581925020188852287709086793827665898782763420443759769639368309435000549121151219867644236563350637809760193017342238301295563060918725482043559449591344703977748659253949341552417035025130995444326494758236831963154472858609753744452542408635194188596019140802757752030884680987480669832908928773997002835617061611818814529444588967420686438173373879885334386723287631089575314178011395556089189232868187488243922709102121909100100774507885757945588026623307013553690399913597360488486830051325797892349078463159092027151758721081909967724163101301533985909453604982577192409916876315784260758608802624840672047533203545758432692813985753203861690124990043368174668763151074552352375177292774892249362933534805451694669859660353011433710094703865921126038660401229912117192311626845321214779610864334624057185389427340026401886716922961881508070837629269344258361556008912826311367021994054950151776144626413568188603986920249993758791281325368779508625102348143430432862201764019734588450914873936590952579422055872520479073060191995856336251010085831333603179214247178511854358427776221018383131715966478597331026121603340640765201210947155782773186084471625824802624053868517079953573651467045893417518805935594612709972564992046361539998022657455777095449732926872734134366144955407923835373962329783301977096723115909389375330644104801447541150555155719317470704284370618318782196608955465931821972732096030996852816905660651229287916672199356594176322032914637857167885898559951427716482807856056346960281557521916933517170761247137176003405939175521895767494218593292257821216640564296869946385614967295526697460302024019130564509118769011656571968899742072963012285760074704741329839104614826478554380849597224606870766056854494487852240797048728871119332419590702015180677345919552419109504621528968559540407176970171407283584721819907298541636948431242258147647519872138019306515772683535795752713280726330319173482299544732188145038926272547173923809526538526428965638287992608158919947536411890133261494565190897037824045187820198796288410847861540050671451789359095600050274804248695305289093262488036822961311705344615972484222728869494875178040940915559984937419426275676384955382420152708488944497327709971878952568511020218863107098565375803189779220801392779224472287864055442020247847257868698142973458305438793416313403061304243862991173223992454398651752359626831101853756140449840694310131921093503230115628109994026967222519842326445298190500353213774873958498154503641843348890991471368506601106174387706302395496940230838473856631497137287813677831007150469585287398323839636965211474822097096183811619017531010834058105568717928862234679809373681719104572246290047399819071222868114144248303505154465650054582267961434332732762834128726967649448946328401180069233986218777761831322244473491653311830049365925270563081565549134865475253312188578436938919567811603690548461259094110711000346569396506664282762744191877891534954663887740210204255132002074181943501853453054657147663917151186264445181860293079645780071303784366282005373541020841873239045507843296970417022448349064893484429130855748728648580137629638544540404609079941625328939932518028039039124279197824182660163240868973188193099196783585002871212251330969228095029150435745677618648022796343491704468821002373312119248736139577438827556066206900828353663782175585835563352631807079640108772525150450738244878056171983418426532648499498631578905239125846222474238279426138660209633912501352093371738665286836032298475988734811722865860516135831510596771140368260817646270162272405260799062997225039156508961692464845993974891332330665984460618570067929433059235494324266385370946231905048352333217730182207755282519081513973948981644976633030353537736602068356138999595605553216758078265763122834075544043073174942149941802915512709426445840283810117234027001900407730619169430534647443720878594812241548346315885155539669703825083877261386458897825364335604785017333040514388234844820932302035383872208274552351082975140273381463274651456432293406638165327185262348916884171362263793643450485027189613323073415408448867063479666930996903879379174329310365839171543013668860672690139684130403309818404954511888546837172183507346560713813584462184622965823526009314692437611971768335346490141796397169810183164249527034439979186667483628392263369861196471376009002514096884453486232629605111308997555657769092469313923028592305418846481246492069177487103746474220579175676171119237644020962092204140216182597471754130629010429018798931201099393327074550742516136096745346540339998797830008023777387691674009623182150080000967418487676332733422974118748001648172330397363353365005172984521097932547782068347778724320376946838815277124534578355263387968085104311775237360530476339099987874197938553617056674151460269495071901858202794690517491332192087190730227789185032024047619676818172997656686058717566543264341295448264171393633910177660449493627334161240667111925545750715149962792596159674635480094343732616503648109107101041753979586726060649509499798326603821211127651072127384039613871965554405568653318392312583870047179848945531703492897942172847001399749512040380850967234062604184493856443722217485597645116695974738539847706657997248349332760678929657840748417173337225972914981952346476662070269773045454566635198861802213719432323475221367525900890852571015054474624645612553165408114441790134651966123084746876788021539649143365187568365911690659762161601475858385204859903782195274935210178926188276706960839629022973262864546052628471368022231982180059267874187820428353629594051335353269208438637575122850789767825090159628335395754495041776657236816018016303182225392977251202509642801214521785766158450448557396431305462860918920584175174706601696240261452626199544230905309089222821484544640309167297732400942539756456975559667606308997935819474756544540702582381688012079474170233461044542260347940619882416669540564714155554264156951389498033798028228430449809474132599671471145030330671565016235272063868060584216813541623693118800181685966628328306290157744961840320228994277047635033216009156605494532889987346140943634716582550973767037877442270711243626514976100019558642883787101765141184522527513029185531988322058973362704644975253768822604233969024486780275630622137370615811759178722532017489965675558092196379048715753592343444050891323916856377675438771758161445183182094431089178729074600483818998736026735210100599647453262723609484412935838435866640126390154473946966936604963810001618642818935768612850608416845066047628451519657014768025691088177933836777770158199064980642578622486903930303356665963250541380728787661448432622029962234876527581465956099278455623383074862957901935043141379126688173670313298845819326215683671221368637841518550970259323654966476341637646239870546858792815887253249707870366604566734790893655732248893835545813637606909463908782784198490896624862040415998683199120689310921215496550505683016245659183514531194340882092345588949070802601576196236299420795777063845138019574918956165062322822495092518087201980278991801352987313233358203035704174486044433265620817589422753725535364702803133309767494495455765038141484710208101367695577990797319453066184824475105234747025421296330651814044101778482981410101692173172881879297491141745890860478600083789577176859145786146919045200380291682423780779121026483940376585140839988215280636293223471452847790298760452064102159450087479814348259304767513540158032295407792322545357027466741436821429135596245112647257229575937616404146659366935326207961830466166260747460277788793225836441630028836478149030597777421044617880773878469602705844155778598309765795178539623563483063201743421008243805588910632188082047278594398638574208501107612660189744256663695040587462473849304350542075856095578658714980179957597420302932488133406774898151057817419147501684218030002697633414772835034745549627991371199054812698567081502397833205957465040510688540555586801041924486673634380419533075618449333465042830051072598253574400154400032538306804823171178995559031355534645105709434303383953537603559189590222630457681572623313708530792913331050490071643779993275453405860465003242631119012035718746722414516552457023606560858565476540215076095104886636589708209734336146759824002396829018077234182862523672805023462820152119217208543620559688663715672934088830180473228220697632235900725923915570495199094917195673927794400322357524258635550068715602559099713088942299975044328571641428017883050595844925257031757585643310103721798015718407516700385149894725590927123778830607298928707630965914942904963761883872576568145285924798137248234728802746616722691805184849209727064220153086085299164245121077986943105070754182633339018039390510525398463780885239047689593129901268076948511238654349116589813111131719340009857582446023260519984461351421602432225536543718720816530219114129287665763317760821535120428979812390466897716732277233597519599933659614247608094158082513283348529084238774352234003753303658230268757748513007671775279126858091703751440950982936160931534988273843975252839512818987104315494088630233518284188144850745814876482630341124704903359850431478080982142528784529701071502928177857692055963184092066755708634681081307991840070663942001665400499259191167197083947461936453705893794152571923711289962381716763201667595041911906607005722725799068201971271561730047630133356311080747510585684476345611907286514624520868441454086268620918788258287152946387510819191617500464503237105518909838814211980630483895120307788031706988618070944014471275572683616807997047756155790268047683420324521790043201645697911048073335627310683495540048693628626815585861699824804148781466409145105330158553771312732933692792392270046151631570440037660271965570234189314156024760794123475138093265984797116244561704855217238913083525955409069029656918988658640240678126684412937341424461633832888311429455827088063921601046725537414902981902135113449059479270248572657877897360934699768942916811279379292750977888276136504925871608280813258784686623689935204621908828507479109828687663350312281434111786582886162947740664997718231920063571067826968176836995471128866857774917541660690444921168924070966417655505727023241742069655496225332979979253882025927662889102457596180690335437438256760187733683212512009249964124206683933868037602626656185979071260733643480077278807364184257327734744820144972626378736481618701625125649969090382638275437050001022258919421871935566321094162547838197546462976818661201914749937764166702815673975391360356269785822821297899148741205100943527960100440417334136290355648703794082428213098484850298204735923536903515249725787067627527768709501106646157572012834599776024974522311707746012905227279957270702551357582636399952232413431277179385816022870740992876941668024627368516155558700130725885204733142997736128965812607911436398434628352688621941933572407699858840602320390377090680896351141079565238241879598123606436129409063578725004393316039382276111830203425892561800633863675447708856244791822669058415157363218850872376084697394520536725142735494080584362205029957910738366581757246732326457799308718114837602440180979116093861628069597000722913124083212975707720081013359256787820678433219654644847867374431762191921750796313612388970015940716716049250622959782729400011941924871608075038470933591690922391078110293241209392743016009283322094551813291389668297684376322129893566875375617961465474838317983109085441192291579069551838792443152756994576779866564956585505900400333327977356787070218605898076892906783452737593218601589229427959992166744920293869568209776753351727818221841416732663977401879840499440899976862655035103661088861570658632425440782216056491003116020553899984295369550801736489171557446602040121478292483990455615486439455085634820475995295411211501379409431622427776664298321060599862096007189098939695252834886846585097063197437923728879762834863751425887870512947128670599990711084028155190627864611574644061804204245380369200303731214716064714707742552344618491305314606759224536319155160126955676816992785776534633247239656164132963573728959077165083640036563869961602393723603602344190489739543586456505441049663073262148516630624029977401592785963377169769577386688925323867380142295656593327029875071637961352277939792111880163263113722398879092790225680586529419740037651463515710512257538480552849646035704448206675479083451369397514161785486936839847425880169271384795297594424626334635952557379461017766756001025869934234918652069642868062762399515625980914491729407816455751514623730461895208542951450827141636925919962700151900261319862404012413186585380640984387931321664249147846573315180057428601288279930751138466830213766170431304270612684617479817627983243655291768820606538713955168512216497437846458475056744974526376992945713446195926569682593811924697745450491120620727512399449165005917231248472100810770167517900020134146771091641863576041678214071541311101466874211267094209276947781148811338118890476671732474583611235131393494628043945857500200729953714139557119177192541893780026557311423624536159839696016361515861021238433663011643655216112635097260582722677687615830300945495014857188299152931730375959176638252655087288419250517487226727016329845156218220366847275723902779295244320778978078197861314123161167323943063844261362414872281182421979931955862009752041217517727193341231063952194203496335199004529419530598357010094809706817180038373745294125974952207977049715215014117289004658379847673700508335860163462834205169535409202108014480702878150235211032982727676451817802909731580268175456950597904053634262396897273673840337238412097460393629294542352235678055200704368389195539754501253446823902369560477440235707943362307211498349059248798691606178320550673022913813441551688076890853877457478786146034885932615026466490040341395200983727351967338948646914669031613327481107100423672203125444215514348756175438447933076084290256989484576857913027713454002618151087808352963363151665107137963112710126577064837336054670068017307133922680490783453569962397293637607090177876583626489211139138287885810223382108315900867162852233939729449370711475932588230464912797882875544182867273735403273673764468808448008727506441115708844448186628971548075146604409939777170604663051117236202027882633231977832053054960220270413987081000215243483567862343189883859519591295579475946305150864944350223621709821372531460381400299879920500618189975948512987497783690445443292317508297651328360118680260015661557134661506007369554628860056080502862175604814824604418250899660482341821356646651299127723827073528288190073449917447825519740576156167238167883859879479651460279661199589381292913160970384555259159442198285122109080768500283254795223977124246262914013923816950448803446324595431612430238186429010399173126999204673773691116359643821524759655025333426587907027060668441460655980560216522179765331497004277909437902600051079698276255869782672507550140959369786431262424290884941201211490528692293081410340862937774474474599425813941512782284984313158078575319903050716414640534498773580331417859596027321543771919264643185727421930687194359217958010073495997148075105514254119161731326304031614150000929950020120791959241926854605410833537122136359044496636318582813131208639163841925182527248054416678726550687226116066079350418251226130596976331698145276269378921774191161188468537097210170219616273345648804705851307739379412433862785989887553179884713806522561973824077241364312863294353866508635098158861714064554398235077069197088320413549745042321808379312398684157431817968703988753741501740352368935248371309300606611260063771264327475110803404211178857610748970880601057770539647828713672913954906959023926348358495241183834818056205554563671468563278479648818807882528181785716383428919521074280408296891947007035008656477581881487964238753779271646407804946568263067085871719494239961175421333257806607407412015286843091500504924598029612247868197419650806544698875130445180654042042862473630623226089177621652194723948089176254651268027422598957484525774564792647238925510155339091547479964292949421621885098763995599569155136601583414595018000604781210418347851025584293255219210029450958004720741898432732997135145863886090307571760461899054804815682222440167301933038836189308293697692625275268479695370035203804889882212279913615546442704108669869511771443873598625293440318083969780302318581044748286269328716517639071286942560235244344086107139517998528015568839123641935435991848482578123592903920253189014134761648563387251115409937832470946550314894607734066671364155176245793925483828427237047196720083204009201673954007797240400282609380775878164702623871640301407075334258607361468000094258331048822521230600983877926758764437059183307559585894063124682888511334699848112712746594420512883758276955392945962448707533086630635714530130958745049414226297332182980463768760396883637559165249806757931071104165385186998270693151191888748782743257522945115752841109566676943615399777452697692855776137051014529086610116360733511822410143485696081213639156974427306416743670874266425234793414629898121177023751825790584138691919746313400594325781897207921864867421286488872029172210934023078019378165050568741972830801976417851260779368248266143293247594368888446187842354311481262620723825252931682587971669492952886351408751639216561883792857243016508779032446858849134934840119948658671383908981171605970396007438189051233453032859498179163661685552142780059872009261052361494671259195021897709075003771224044065263192273960431453331342822917952729252306874897623070726723865038822730451636486736073552018315661562591602000717805036077637231321674050440250168093294278212031115996669833871237174513355604423029020086274770865109487613320037703180689772186373150519967838760969669813433659036668070194501967613892284983026118332426330462151683846666725677817544982191824074041165012093818670150286319476285721188329676362755693939540642378027627424906899152890777326355377680957990338846754418098747682882483150719277075264375037284171560624862043699577920990699524035950207814955208099225125918305196105847922724482402954184539850599966391976819066868757593617706131279291250309148306183898842875745331022457106728423499754221013893557537070162582651688735956856552039737701130441547390895207833425441396720702848963221677673113802313828547988152187436856319877153206822731364162586008889369159885794014161875961752317761496813421751973576119168823086666917167894364060672208539691710114098220403699785285638491902027737766670564768116614641651033668366947230402220736403031028783837779891820524638231468504605225615247389064473329186132823993185583302640507442800943248219071986322597431879580561991742720779965500177980457319214430552508594930411170313531829085071583400851349951826637574489984764461439977162023530284003259032201783364180000879205161269867713870275929323451312860857348485993540708627418695095152668113098875474739646294779318509969029356851145390984630550798045705666462904401839640714206097361390514842234595150342890556838632542558252885642522251351670166185157282357925762539474504786620964829451450648700324554601605221932719575075452213821485373585008843489791044739681685336871122387259522248101350478321992440786215463440869918985930084197427174445479509292259126324305936099657263633900089802760232273449579991481388791361937902724059978765464066806108671673011491754032439951823543697953821434569495163035238213366869192117432762058634402189005836058207405381760846843081395019200812760328298455937318262625871003745082100840500181753125997891961990425031325606900910603440227848349233247529876492719711039586818394261941670802988364534849734717795691529334249288411739003371582307966619705952816385910575863012650805961795467512452197171338542767691553444095673687487240111684596714759981865510918508007025178649171968609328878322172221749501687949640653509969625311317502521922377233059954923478384542386413709471185193038204956194040797979485412322666547352863914692394942557320486863601078123566364189507536815924997036423869213982902378313650917666320723536101314962066520570439891246453070637235784372782778171162006074349536874682831433565120035867206577500221634018742780786544534449252949594091232451591345327477808144886908458343557933015774839241709539522218077442294586358232628832136153346602547860149757593855543630643346602095254543177193876189086112926700077892688845991778833293476196030980605738901284304591732629279222278810067806924021139409481822640632575020515140676922856524626901331797737643895443709500177759678899509086418855210924242103889167112258141956979396188989183827949369275342347270172826890340943683779966379982418211888436771866728894218526199210590874299821746729256676064268558314978272325847578330977677082344296321919368419141235417750120847834066797163074003153103716403052844612114460324975969200202302170702408997265561549823626040958520647660814100090311928098998999808718115024733028565206724262316774543787771681204741685626551300931216896958564249578539978869455267264693816591341965765739278157433798124038477840731080382574840820718687389871042223387855997628577822551436982436531845075193280886938877904759909671438953695301722140673903893951034216209074539591587228969322693310944016599456090753602996740236599474394672041515399898970297066421864398145244428090089206730897732706050044542298001327127556511637800296833970913833372112317571556988897154282138587542085221212341885571802872905749519436909543620950760062333248979769343018771514213536010408362566840450147769000218590402450483510806006073761829019449204249781064682155543517000545578507383822012437080798787385321829787819985604398720430161394317480811124838723047204247190116596773456997870702097131818745674721549637438351847742404984723287572087716900919159504688382024643132363113062716772666721213767687447302094207665124078461627723741511672637546201400973989444716622119493389972777521296519618136529983084790308489480208191047767210584364049010183666079378685855950955019686078688612545814129368924995611876115557619614774064495196948445913572844852266922978425062484381874641171284732928850723610975127381172873975240407269911728233592616085334243776792578420870510570851147434512041230734151319045122240654706502502020425687482635596027430960118247098107054123852076645167190404831238545599622638189102635139094453599823818560972313484513544961814715594174008123478107902216667454375618638619525256544864864641055612722923380392654466605572595314191856036240141080469686540433535250946077167248716528212522222126403070761676990873321624932590119645388568326588185319036029206953615354634607203370265847734305473029436536089050633979735156903049989004419080784179694977064509930998222484106769622403114684288536879900525065753705734128920642518686859764511474724443365568663993982163569024832596468417010110941007272835170685433676002216888997662963694332697423536364021826351566335927357835902090687221690630506622264472064646723510964989849758938426378048044100118115688564259615841140443887129805988338901283722990680924520904536163106540718917025406988087200463159206368460182453718824168862634904005221875551298078124911449685241861474745668344623504405617351808730079758486654745317135283010293815261148674024840306106816482812345499946952861858542136076748050995465296977141886649046017314352078350183827818743095221648642667387428336478505422070764450614927279165343046256334520823658516047283720171674248319111027344671057266593222323782948462043491070662622421496381040432799511568002496703063611477682944352444305512710202869551672273381407573555215158154962238509685907211851567043505801476106024954505125732302880990576271968576890512971239225691480361594182002566328194330307633077584531180690435087323055788781483824398212233359268718862162865108184600519498777070480008462355685543842749601284188219762865939814065121678653045812971528928756099584713992554314245195306903717781338162329745253113036634170639359966844202947584286584076072096190517263411682681617482492663199709603636244854251160571293469904462546657320177733400989574661623153892744852139691976642242509882449411346970841608807634342960369105884625343145501256595205575084979841371262309057704788789971749255128498115414142617732130240168693863892323448717138297149742713420964915043688849452265497418162249550668524745445454333320601956200736491269671633268573064686148544230767761039867491975367466941148809834194095429909524135892634965527326493673555451178784450210368418170184102543015977700272740598856289585209263567742159812331563822226387347171095178516709713891388865777646878458376964437624998213203289510349997688985128152501811228177296021621039379153138598611105120082389081233956972352312961633177876244897817469797585007816833295625555959761554565335033531512406385015890646647284847370257746131812408676829729369507459694932054127993827553671839809636414735436590738768244757248250321601138174105239630947576444018162685279590740730534908667950633689724863836372391101679938671978528114956547249216450552592571735812893099849344692191796500352446767751990703623356581628816974267733023543615914783430398478666728451820042918818867141778867161345851422104044278665637812366756154097422933931661753996005938462132822681851600554947835128568119133418305565812672082895398402086697662098972554590048900371766012172599986091853965663203363571360158696702499782024511744169620119579738328460755130030672119751675474282892571081935242819064798386796358145876620301905969838907310284446854822928133364061838943538327684090321291317610921430103410303562605264946562757839436086477654201298499386938300498281321293646643264885865823199863991079072995518962979546244919158719354515870696208310232374500496456644267416981214775456299353579646773485423921711947489216953833527243686532687079836157382613492807801630672806256443687455206239936291571439975592185562419064380360453708406734061086622436117548278915432424085199316404778483385280268472424468544625215437464018518294727686505951936146955107984669922440729759495711308604937573704932158700382358237766149301188217055689587413872125825929618491541608775745318138729905862944729918387459750164810780791767266324305008793621307660006171522137106891529364334500949376856205687619501126591502797601036595963570850275973639230253671989751137603049216227700617440795356808193445156360114055298577442114965269624697713355805599094744772196686430142128703316573259693788633998748946699619217173547562835595117568483250020938435808791677101615182520479574491362403895219710023482963610684430261826974210469839606375285020563825249913731207050988610712874864988043524886028549485340720828298203987881146383032949934031754648108805363272725358186309233646379096794936212895392039477024453515671753060429792278542195971882781292137129358330763741924268448673233731513259123153791582736555783784749723600070444502706389592700731030398367095233146208154248203829938098900102544060607737054576960461112599242455398959816421259892333494265223687317005777928298511623466499351702981556632168772115042086295278150679290877324249450595844562491875389204012458938047936678949769968132569322663669357442858011011472237160521438363714575881641601376217020106032968506028073319050159352379953207267239241901032224531253855352491977852459080916385827529544400801667714489314474166772285695471429504689346105445964702151519563669695523628012612001922353318472924684958311304397900338960135753457723052874666725882237762806993643584983997474571906161998816576030401934368567457569577640865945683989364191559337330490058222256297479715924914727127444776188750790585709783241171698817290577584697568196544170462436704250658716659075708856054855656256508605327390643385576411529866930758372744072814368637819893126498414632943259531897570973781596290942501892573397519145833298959480180466742774201712935644275982664114799586109466062076241542771618244775539366838513149242872120126912384546151799224092266434842309971420024795893264734300001860160845956267494307643041804814489236171994350986553938384414350945712833736140130695651720998815567355653422678831623570614160604633738168015815181771150954941917557044983631491318374070350323156823825807548587658069534142555525990426462051132454489050335329847945332780861070939903817807708216459387466936984358575843931136055455647483468790738219392537217061589944785203382439120073689162685050335914555093492848463087326707757961074045882990922225891879671012213953228075971407150544094585360775618167756298756989081207167553467282830953532020797365752726169742816238056366763851171756570787341731167954878324971926692229918618030968739198015026262023345395107840935097267095051749174527408331538313345142488131077608696418926215803974832632836326206372933202896665259618101700428869261086249573376710442325194509682821070973315520521847095689300902065300019427903572867998304623151727728285283854850381729019824836006626688030727969657356891104452408900082344859869418228792070698446661857416009154401093321986671513375403256631836814610305703599528182160272897955822436757968461475623861048727061253959709004266659016557728526394254788470250302736105702645447262697177055724565495505182392811425851675770315950860220973390407434564150312003027941501166219718560949910642116847593100939565984899766746449732345771439561751397007393014133367487828995544668486645470428908829814142788544187955034397092076978662189867095291393097863390272123672694390482797148190756937592538755036710552653300318086028675309711803473260342413257469582601498706413860629080108557426113925523849288553997453749830187744975477992215128421008642600383508180855610760139694166282281226307898171174589606007426722255516926029288567848478073393074572197534146634266546614675758335173525756059892078869624737196616946976416719041061483953169330413933526780373237019123588424634847962756652540520707122291496353281430987368300087982044509344369481467668377585567300026640939712674691280170062398122493949888650598962182328810864980272024761411919829914718303003119786591367323050276523397545834517864462280951628976570784035986677736886255255228734398399038421767361475730335138830165604248700623644584723257242176218827234100454061264330137437026156624239645259404554259288043369845840459803714152560326931715825550282097097973034202779578673179063017859118138608834377287025892948491591688685830493201837312003626624774518550417814157863924814952731500338943703209931690070269577144373194285019415471446399708281629131085039767830417331897010759415637928144872592379579141151900380719759902002637578568633011428718538867945672627057895795707142829991212904406361275593439577871472697198698181903267334590848581337840762537863892826145672604365186055434897736379070625716369044631226568024515622391639322936324941491218277173793992031740773056267728478768232334539208775762011719062064739897120946748754100673393151418769829641770897552426887739084608893202745303403610954794117836610604285281998633333884505068726912610220406499731992851799654765521401763751466984636794118459845206344576221415841902129461966710179837794915939099416571193710931662201814444871231549427937411802918267365926678613466442370327997292012762004217873980094496477384513493907107232270429937520283565227664003461922389000743299661959038938280046846551563443724154258518776016896138965668232331295013688175424852967633567552708207681781768850621529218754144879524634177103721876064267114980899900364974396600386831483883086021590531677236132209615804303452940131521920070402898740803608952857498347196088460004415898754928589287876277219169286661158109983673708357389141280883589898116154683887905241365684407013973620152040315128791344269901251975493875485889087696369586745524960128001332686174013232337652208019484625002589346193503912687467496615300775012879709743381810809376639093578320718864486690122848127371046350334785824154376572208843394568553614911000673286407520028050284255210987675131436914513475349209285631253542579039212209960873165278302323928979224487867695704907594098237004246145874646789133043595316189286446625145066005497029927028958636335927033133848580924504957925073992062435707845692213754632046988918232921433842187657484172663400001591512574446978205618869216178433357171933380158124908662130898887372392007527050774838385212156215267362355731883876486871943094033207864738891061923149447964776978494988416614856314706155751331830458996533950293700016101265852145495628232482820064429129844198432744190934437335116174514224882441926249381244525691731069630636658980387053995643656521566907953661514511167796710350102700694720433810195726753561295009079978157210552487126324931217223268093081253266863398913133404963764073847149694661863794423794937200243374583726204227560456829942299263369040962640853244630413683353183627226181099914084881791249896188020069869423226519251385587620092783411622603051612584331837767166182578314189172953059806794386975029090671432809988440660667394807100256383624042225567952376766517003510565578016998332669176948654405051757199027117581384303701746581049855007461988797752234033146381314822774082054666318005765396181894480300585235771177743488385935202760043352635952786236117995975725468262835654059967220344979967492377031584868670135813781540948612618126496225724635699913109067645920903403186373687843107479109819967185912317119626841076261985004652811385235701341359674138934901828230161922033626854373434771141513254986109564385614043323347300957222260273547193981870757087872357494963473943715791285859059288087558308825703354289766931700028926700249260276421079613077224641561252882044569772067112407665169212744320170552112566558347212044104440862960014010710352861933978328715068312822108497294045308097026856718335387451229616727889734980714384190838185894681710254992475338498951277057606234273075802375530627876925929322551076351462952967373679214603007547685325442651865259743392323787889995167406293447512242683116882694354847082986350217707681617741939801530098086982581387272847154126598393624020107191917677941086388327135014236398050838866436904957717997269468431691094481311330537307456446201785711417358948805550552329630798754526387650641708142914391105012227629559508979531244281763892554649591241792458651542432812480057423279419493188308406151437036993313013164324760525438148765819811531934403422240960129580808073687592812048403755724391460613164525707376570399952636663593718056055999444460582105284718945466101288326123606384958560782894324496326935315486157236568790032285206268906211437635518548593591588269450720644636623856484503476476317602744499842677399679835754680003348790547853233723733356618631412266653533869009010335520071264339754379027816287995943549649022387276301753789722035207005456036567318383188411809460089420535857241843967633854850820128027166552282400835623267939462123871120073822154895279677836568536704272515910736292159874617961646004490193085904421096866028159597253692944909863043784389055165960717161906870924334243442135020981753090638057995960581476466429859565354188088104899537702508920694933215787846278499514663088002319909878729825372825908964058386008505496297726739924367198321816210774282221353524485011869644205840167977968753082050540716863997244329811193551848419492216117657634712508349979568543578987009194077822588057915296830471027610622908113666072070645082106169811434766804790760951100195320196142547205624309599769052170872357515788906044973420407952584943012934864372157944965488949086626269548248407257181958001236331995868498738250709557160491971981139117068493321928835782341497263497972292805332452848837000661486457922710825948735574548830578628566576060800938850536493000962407223628550659185577338459319510275447680384904760565801374292122567594609807652856816008514342346037914329465855512041028499812826154966183561456440227992053045083693834230230281224303981053515342604312138491021556428907620505135205462398296716333029213766636869408290870656840015783570181628123253885914000330625052059027165935946940548432368163914927016087354399604781176462570924227036947715271902400616550751753853122982288369115388975720359388103242217791053717843928069350694342626794136723467555651611725134059965426655099507082658774367033045458853407580236026759627188985034019734831515028088028584635850916120630991503497945812584920931186009229284425395688204660268501564718899424892774030015820374892444513547084815385183814398060566600706273198610846889132867960155032668335941959323826583313065135490296687086916518336743957044505586777805942668717791957201260438759751175443349798101798181109583732358430368264666465913423012105019125170110264135576313839227744923966931573638785843714224042311799222305814369771774607450840458923323703775057693495628253166096968285085267642539568310645396988483262067924822401999030071133890675919093492566076811652379633964813024269473167091455859510260044439043192822538886958530483371899684511991747382726609320149468089960977919957063490518298091885475730274329289443343383346054591006486571338277743137067300420008397388403221687721330832018670431009577545613251070982549371146216772204590007813825355672521254603114129418738438544840478746486258637826043407954973189818790226538647923285421438452593668359669458673981438029605681266050653151714275927144819835978421701393210632251654427222412939221252685412029443032754597399515139559661869906169012741017032286178741195976497033567969676354327265721707150390409186348473616185657311909058407336401429163579517463437667189217439352086329383339752243056219463226297410041513085717600109390406681245955836315350505848325732720693833761541498538762067891787371684510210789293473360712532092695682924887533850849935160636917481072898278339735093156892820765676806118840485798572129234276435233072668840851841083002581014867825075558280980434506884306608602620306357169367559813621795316967124234387575295643096552482063712199049203753108356831386698377677903666992022258374225084960476335048544782311855121659246537393089812906172867338964260339723707330329704670865382115813770680661971219649583559568643310230907659936267178713990862227812784924793469695420189731293736012007553811823986488579814494468156652599670003758936228305744716196344187885534576837677398206819656534515304197674319065115652082945820255159567053193204407019407051572651615151742709018316704184850344949127601781030847177505606260907845354715936520146987715672888513609959779849049622846497917849393009169429192951533442286975140741473863297896558275737871093716413369927478136526349927860256796582484786264940129176645467616555521272136903504645181267647552741732692667646661128494208110802019810631040568115044310665243143880353473584999087032690759754486258663356376399191530758073829830562331141690896326856292794043756524635077892528731847184136529511761547673351828535094856939134492665441694787386348739897238487507996055386937105552264652931711454248676046706951387152262946648779783420714965600972521322335314773333347636562542853521940912417806466701087572698630480274930479820701576152067796516521268371905390836014099902053997478383535426082928875222062004969961957869138584973114571181371175012461984371163579733803149625365863433030581927330289394276028068530150259609120430834595018458048446156596458274230480561184086233344571159835071262251321062591126828080466910187747106615033582109513225437283812536814962108191486487068336725465829628229912568499982059005289304830656554234571237644904706413524914009870853822667071166964586685378884124051569563421587483468366884729910990506697284854170913912004135549431833662811457080337241533801009034745202828216694468963641260461139000581007220330225214639425570008756398384547071406981116659063325879069376273066241453154811718657535327809095559057693421290030613378783406561933003064234691287353651630663214881126067530580654302001676195866212820552893265800179175476608867748685464400016027714263321800290396448181260637910596319770460592272221688974679218189964520670189427528385648464642300797174381102045433564443706472718180539378992720158269840191603904374693764669297044922616660742665437772388080203482916922853513284339997307494822275691303775350929568176238172522197185092615419498944463573692485592732875097045394302584306619409326605240055633347173941754746787821246406809998457362132787486836376209140443610727799800258032868259679740352369348486152480218637837301871476082893596194244496544302012350626137820586729668582083602161651071913118636249979235772690687345165184324618484921637446649256598225041232206395291807812525350195788606617898501858655893626428038054696777029937024005593412364941575196216774283684230362134504642517855239871065658448531597929754445382562891970721035785285708467193091621096528671980537922479549801026595920579810631160976728075586445319860405489485728338984685541012369703037501351861979777330617192614811841589264582864630005240663089742210221834184857865784346823635347502908473860734473669170693144632588421196526313956677153024333614098826118874660534860686544836354672724969599629020483379788752449150429556624855883105351065585005595394669868333105135134645256884980317636694204596113784171803878600594384231290549814265615815059467385876506633793386996595066816248083447366106177643510891854813400047553107556294504451545472504702158938380716596396286706398259750069751026362644902521158239894108425668997094697182602437816907702278886811233170656926806265688350804872635197930539643547017497596055828712230542095619604917293815126023242699299564041245675562063995817254727437513492766611491623038432573156993415494061336487769400092204171967116403523215317104056767664516942019203280489821080220596349741998054436738820615655388566878152435527159089274223006104706598231247198838637050039803847983392484544896069703560002024064995218656339469938040097542603588897642627249654331815483712172216486484690181551131496458419448624163454736068756422431338700657556491984233983861055911730338717924095817235145432372954573031555451267417319588539383487563667843540219343272690570879995669647273944376855880629520181757915874022929163602990702324002032818960515607535589721702304722559090729595162370980318111022537323001479865805973330225278040255687685362882767774946181817995706232236654953944485404800631607817088351205659605577662845757842523644235623728860215840728345262111027308580593506159514759236782217548176986505366873663422731305635826202557382526804527041781915221834709773170922231587357007017536837976335992660543681992930599951099227939102297086390942343166727671705985894220285366946107771573749577568787396366272912597433509888592624316729732230727992287532705771986461543322869411458787082997215497455237181724533674334336655039765429058275766834977966521962046861176586279221645304252322887470042963650001271650391742324048328741834448208452007821687447793087250695955493432493947855692120494560821942558537645293076204869653156747737381244174465470120944643087743111851151848168186252356252536930190424438007906758963596689486965704676840846796549173330382114495056434502381907115717409739353146150740257229793980668981940815137003152627152311252180445867385426688871512743360632529534422352494956836731270052008952945271967280230377468935971664896036568974409962103282139880329334284757171507017938706718277360260422973719065579818017712637499621219664604228788879157323275217180530818056281229935558075445054269015123522180469922482697105458500200648094216110445685351406381141520027463280198056969198821282602976527656569290780097695922829047110838192533856114387316525261069730488922569417663548179151479894496766232954995555334231338087542090457994148799914378213286232605233078125752581987204613473399264994454957199541459100461654438398047080206780059298790442219981394736258436112158670480692590988329157411541243178676539165139925342171445273276950887368200868413468997025846710629316574515063556795337440238931725697378898149380168823226067910591976353382539214508959848622523835163009128716883005688353064941210003699870000278008871574647344453467282887301629308678045248560399424008374145940675405546130677879536467131174190441660082700929527234972371440996569562388763383548884451398467364829300405544047038840484894007893970446406463538470257302626046395994909457548141744359608320333801942935444169154918488065337088986612051464584591191834243646584435219346961826805775173667448794768520428362999475558984949414650831613154012293857476576992824181299612824213616126858297592556817375857874999883993897630663233868839477091186358867520528096585269079706995977577540393353529739193573573188839911327816782642854273235131190246323809200951939926787544601062730334517565788576329083376026332926643773166004050780495477649353263913669179477571702752864540451381524925683383569667804080737149874144474686848054002472663386523920986844169324476962905034014635857388523396946183018481471590544980192330822598688169613603671272730256911731810448009688084739382569394515739316638614865571771633723508593098693471944937860334874185546160476043875436645666194630263982929277307057107214200652360875130465882674735149399495246150009114223997827342971529064370347830452099439994433018206488497846404144097717068427078170152854381222106856563222278958396164225152642918232254617191886184853640763595491419892070823572268194982405201459980711026836947790185753626733958030062642736804573265624913683088538400200357210353897168700413135861646061266483394816805393434389066842254463277401540295059396695823606245599821242967882902076081639054691936311398194314620432828804467519803995649352049374762413773789901060990386277181309051387947349135293244014758114382661507963185309329053780625886808078559620811559956224915678599867242728473631626546063244827028869877481895237600890424746299153159915039737150761603090860118913916055270024485359558368679709730284401056450088034545613478084899270123709315781579863455533402025918076091647661944482410925976553924689577537696870363788718806835702128765349509225770808102707653076356248696118730582991634598682648757222294303224629943977971931039704283090104188426021451929567172970872222862825392359526402575735839938661845593040262530950168413172939826840802372996921490088087602700004596265716034853308233211180515225254816067731952985300880563222813937038811996777226225251017415394274456500217985996159132010979732769488013330709892502803337891750933606752196184744707702767445921489052016027031461984874868155776598415261517139834583456605660855943063030938208163380304610779024858360657341272226146956834488129272474893879912147591621816967939588497384778343054883197774614361864708341739991986407102358050784866763695390240114579613164306599046845009956292168056630510675917460466835202899621247097562892828321096954044936326668104869000021684457091640335989230099550084846005218061808649982544045966574582965169032774183067488183797363682986278406625403433974525158027507739684617916921865847936265357008897136230495473467116002621243057649850526395644695740329289356868819229487109379277514924481474947515497202013657539621823663283259800609383473595272576361107288786808896695359727373559551225988547387893981741522908859831637186473496131692669346179619291403804110177226848060581477818331192943369386800186680166938991849641466524558417569815008986652419361977108381809561633700978178293039813827892681007491021093809148899812983341007584893254867076767828182151857526803061661575288726124229805059318251215089663056622444217364727879837683195491329692827212857098018782763108701140398695639920030819979474224658461012202198303615309385418414575035227580411628142917430418136948158919518954297842963516915347833491847298013995105863298003017406893066414502278400610995812622406029973088943328596828798889547189192879935540061213830483936094116431616435950412030758304540321476461414566329430511337581403676369109128361156308338898136763338029261391567595110781816676541807830429946636529613687357294025680360174371131196893769511245627422716973349425985411382080170440702826464842035452705422494718435715681589956287469372537356230406394792084042405116646344181637439087693582583318371814227346079919302385791288504242003875082693490705164709646201336001939299451146497096954074115832464302542614979893519081188633135119941569830211255450623864982295649852192130112843655761171160207579821289526481019329877963628917998758877189330704181080890918344343391448863287225313875401580569124090392851604676362624540697732416940888452027220986177095004748452607302499757398473100159881324032870893765911454198094462386073814610235173257249033948704722199274205461088271527680146639784484881343386306648347980272138353150138588594736219032118992159042261379229688644456324890439659483784074521196157142460554214259422666568263740210665281489080862651643880877709036775027623982329550335739164582074947642063574563098347737016786525567241369642487620700717628284602985358590354708067403594813432711193285652507888619261574333602137623705133538968277267007645710295339309354500774630019987666608806488364325614900889134226279542226194826884054095549630264760834221911619595136252508541321770031268121833828443196262930962047636267525848385269697506899556571086997682825596663073656786745041398123256823423670083998175282672785794617069836336895486866306276838675509039348715578401653661433527844984635682652217460491513228713270213113672117372162363985016748034008528618163060180335331859303331505401893458477912553822144626211015684867733035667364971705358805422433623523338613049683168085192947490207575126240394721919245990589828163203421628981015863805540828228127121914855915329032766440191651669831037379838743400438515497311567713261735772913906855144796087449631603596123945309810641550853847816794662824015058138878612093486926906852611655896019320459818878422084295176453365445275109331207020533008209375557849794104830419590248808703581236903384884513556496158531141676593612690176985967040600491244909123057800532360940113070071138816490709048716809890619848428135480891908473870486367448541860784037468009807153431256488297282717743372639179983609572443554066698349125721285959553069094066563233307037935412860701034993508566276820523996450384045264511069821269599786281889419526729795084839705146142012606984504892947651597792136826670284960089248018703642256583937799520768165923659447474510585117887686416702774795777145206424347341495171357752414596411401534907023926394605164212152328851181986109367051539084528804725732975484561909996911730643796984609105799830142502185204968104780233211517637585543963715396368414340522551578245203242465666830252831861518731295950159176196894605294330274557465027776046610571828922111069042674766418657808540682750444149580681622001445534697241572965498549977136307620785846756987887677943579021190596028567469312889733560990939939037072112867483022863995606665383794188715179997849256303802207044948988968787113455110263074725377835469663071379987406888164918922466686634087679578749847825787813777588670395541955342548634148146176095865634540179043560198287100257715851353400973219331820060124376846688274162868738554156415151880790792381721253836352797555798687900110412390063489229209762863105600976849988882858562188862035371467350805956119089962833163840766799742992925533350110442281694845113857376841142356014416715234326892132840920984382070813947371314867018378735127275411682339634308989197034877198727886318918557101400843761179680628692793934698388352330379796164107422709048147863292821493166237111404514686319668848408903379895576805435357142613749064777406980678250772986795441296810889910241835906660912358560206659660275275076065774391964601792020525292582540701999792620444383662404284539838141799652841627116071473910876305597488791174858620152682233107804106426599010758794877007312611119781062241425396382630594189771419638317714829298475103666533926820897460781098840201255374975433305617632167352391361704415879971305783884179534651137556917474415211258188923849899589977245840916432106983552321314792032943857458988606581886204629256213755494210447378390416581739710514592692236284139421265950261687254179078609143303165202083075370636173458610268609878751429084072977890936174415694711278998611935135752060796034768727859311088298878186914061653758985975069270252927761609767094485737137967921605831584362588597639201212431473322426425546663152532419576772822667870977727422015354585337125540874369175971382369846279230957041351434795248325808660523475018483426153345767415503162399120498597731134916129955217139703724251348832448906345525634560120970498901461617436607105877897163388085922827043226780227157086600405881742186526095174830251440203184577936049071143254162116200251905226008990535235322571328452214102671966641967255251822792238780309388364127530760355096363193162077261522754948377798980113891358604471760028711322529259931051209550639327686493941948735195262642190621548591150983936097175994430061489708104609574511337821421646854518232504676089525073700692357530330167624291482755031351600910197801861169306807378794778749526106745146669829668757549860811403893559834345996150468081123415869743381808416852634413535687709153066098050337581915903881500222577440800493593686930288473465802850278818320560741749040609951127348196801133522344122514494842839818418912037865366168168451808190334125158866051882978859700715498380098744808398828017735222764578072209591242197986089905822580564231366353386753855185915920518234772261039240611216751746984315959696909152424378441335982865636295905311935534363466645747747831398735120569915290000049258208820533046467946486341678525040156818952452206230365325634243142054744227686683119915456606841714605755093096612760170903407445489816366558303687438748526697013626302420502137090023316429864733212243261779540233662159286670014177264763901988358865559348727685023963949385552519640751456059062579863975768945156262067309781837181739929507359138242261713340436141227045235170582083796620129256682385245664081452465663123984541216284032295677789931792861931874850465679824973454709915233656822741457698642352222591815116821929152401843837184786502672698550840484597697400759384894185973400071617976671885513373167446842385599452449428081766201901132446447120662673660102611065170350447492454758189178262793332307778753120187504187733781665874758977252081608463813228663699202168920939052932951928608340321024980418561129256942249890670822477049022548782452801558315743948246084370724566837215169781578334872811684453492145499220430888501948414119946094615853775112761177680027188658122123279253675789469870445077604941323640819094068036325322992491198453420674633646042040483226550658052652775596416469271782724056879821645753494853948457232281507226145081781409651716375106055258916656121031668030827033194473447917772821447133587906458170412461802357015523455101589334113028926208429507996903866537306830825570121587163742239412623861350067186019483697611862494528603585294983479275857786046491141287526286551165790464471066477272884258040023426900330501611122914377224841713796380096710179075213747163473854241740362259440588233528824971282032082949971869458071692892038905873743449884772938876468918999405013999318977437876624072897500871847844647213508608003258131824363969270334814327965554960433590248910193039346296996212432300401474251910296521017900630119238464790347080739048578905878440547987699265243261527129840332792737664492543008356407549578616395976237917113155385047560698615488583411938331723558670232409341910195462594970732440843643349223243114425008956120408764995860040993682882415443912175372870154701756841258137536886479505193991465809203949708300217616209818766001091883878679064757144249211930255057262499576164570908061659030970786543387129575013781711100752918232137109488449551308233094005031469957444187301593883591237302014019448346419906565276580045472081967437410765653932105119617691132831756714111572004438059752761977798293615508437994786287286761005984699461717819622389359960101839038155886051412542791950396903542491082993155915384901450952069687474027671558869302153105553947418643041455183788175443471070364701551590208359693615269315962552899956971840934387080012325001398236527326369342101897790102162138705523218401376807603586917444637239813411841405872011606351213172704817892554905729464951682765611954853753385593852084293581580383085738095889942929704090891570524049133149042070238005613191117190532866356580193560736811413240211082996638682107647098539609534468507453907072782758445020364819736991197975756784890462892597464654529089705161716364794482757383858504222798118611941805939129735877911955585202578200173698164845322914538116452873112401797509405432656403939820442410938898075260702654255967968077507008767005291860190384614193798933718342058926995698122508485609103252002975081627962013817508305263925644066384452860639350695986864398226117799708509169747973500088072974166663629529631675600251702909484570589589167335648830061159322608889301690391787859401895396350661686952499288225098352813227969768671150685620566708268395434960720211988875537217056516298859274688379050815301683582038948558829911565897113840553301271785777612495948942298455117206523051259857135157136105695272202370831457248743261866299240375805790627424878416945792612794347770037942505157470180150970391372820315519996016671102864342743633092908905005911656637681914536049613995053645347207091879665844276028483749594436682951240647919083516465053249473457676865892834555687460911703637409796368317311308495560593588253205785724209813694418686058243972956100226731978539502261654892736411160609882710582777162036947905657305537429029418495232793641258159480823833895278383747988403788872380148579064334256276454446644536956063443457452722115365688838817740235602338433653142365186955570297685798061857725920491029182417928793761355517365006044155230462980380789885862756038386216771179859547032465889371403702442168583297094647046448203352261073172446205276941960318719127453636558808094257368231476819942274212676461077224968870019932032673146995866148553930432221360092296384192157769981559742298939472803165784536577587473627094111579379314238171400577713938886734287861829371881399565752942724728365084554606880183624225844072008465173271860321432058002858511527162008849058704540697117502116236141011656309046751049882889753014985667522416107398354721334313550132368124068417560291428648269974176355731958460596995388853269072542644761417548445388464071470908595870660211870378276875283037917335426170356110622033297139599880555900574913503640645238478984640031738965228814265251854936960806276662915729363921344188648330656428136364488154889149420446782679958931627743065061856328892869949751287729426496946695268901907312191067422937238129402278582137691086201157942250677277365387896937672137458768869349858051857093485666119834231524697353996386029434735733149020411884617263550060799274865897164376463932733504209394068256190568053850188934298345918352236717634764869259023760164933510717159576963822991866882932660496007887311577525967668534480778894332239560684230266524837599523564692392436172490913687505314224189142664446477988857131058863411016384162135731732120243241745611579216003476331752679050292186302668706011641968118647327721697072451709973561981048885115654416467477879060167402852631023504864894835164082907465855557888343135762145602517847534329393855189907665320722872300509294648929375749880441513657199501221832077654286207087951753814252822877640965182704202476226197032572598649380864146498554484670561652842133783427488911106283634836056889020444394647497452671082381906869726659473069093319248132421292968430866668574977080949081409527324502414030813815513043932367058642000722436363172568395135901735703225231124502042663152010103602652771887986716798766753109755951279617923779240621400194103388937242168101844858934647527390009601462457178620911689440311487419318154712743829634661145007316997701591518138044958252843041445417213188592444572750732991983606302789876069137596537055852245230930397600799998909059630288737325450472205103326271319191258626176173979386946293370233392322641481817589924997834111255838302367831098172762612944673021935850197803863334819690442802238236631843237616979623968340357937428768107419215643980531962346349536847187751591433047092532185882223942046982016799212614774935152175061751556663938440992182676030416480384248239122723951226385285170586179471017397944828544329038720324345241316307490129186443393138978378999030972699590212613925637023462052312545262212076030765742441453291687563012678190448829033252963899419723605728075436232072394533180621965253987836314458776656543598916693007506537394636774873586444691128314581504303384265871905927155671576019264668515086014806488832895775743611554094464896079785178887846079958189749389449325223416418659358642978708201401303867790429301904264406121017336682848201009705098832035943500770087831759351123536584522468874490719985440569306898472677762101169708955135436662471974258580790193235019575637041634318862318703553277541628960992074070516194380491317528902766019041080275762294364834608475149808206274620485437006445796771772143261535300525901717129397719048262274002075531084006601207453744248820186454303529029924133158404958147561741008918629682838701128752680561736429857434275658776756358863455731144835200880471435077619686076801078296966339831258088143666447337447327393258974107061136521196420788740171547221081678308905417368071533084142765692711092058173867723540314140041031471516066363625646984612857197312443448640996968294669388019832139065636391412058606315841720422263802462163966467334223700177602908077687281611651555279246278416462377854160941690416234384451154556949763053091673966259691603343484645209507847933550132089621161869969606958095228230737263094185394424592361946420918914538166713763543835371308430751318404614253709114945735138305995799654944901750809383230210329170323176046483289799322308484596378203682931319880796563034181243802781333212461356457191009158782282687749929890840653446823609412431046094473273901941745147451915660030926813322984079911344285113054929610323916038928637327178711837360983934708081772955045887404093118525215872377754744960533312618366280962466601541251964267430493823292339993717076718440577663094231342178589335752669011706624550672430783568890380277415856550405832789855535735130200232583795888227173894278690094479989306218573733484852310936549883712655614120970569253170229279562093213744256242222047709812508845239286424531259349804538353664168095398612099335051077986526350238647908385256641925611659047522819500233273834984836149432018353610015520964150016489454733181466373524662591522729656994403267246934441191124713655255405024167111097367761870666038460288401559349988483868889743205283460578807005055209489506427128004120271920778128311061413296061926204611656461493269680810389944425342616855145138115193490556178269920361455091303904077254201542822884582403477751470744522314469450317563621536569822624765974794469419271347191913904982444160336026256643467906158785591214855548975078669652705673261465536017646483163960106185913221996006434135001412915704755136473682657787679464983062617423673767425013050336828138267993442392751706296319997480984013601760424493417441407816132610618833978594352812742719826075075836195256265166335023786687132218827030027225985389181515339515581686775412322680453722368668833357777237205842358531768378295139852886204105038696867671348245926979704623699825469573453412500802986114955324582773763207793684828474022733266109040546991829200945650541077417923285390585796745499574380620622309625151562452570151556039581462899294267540859531831905003586930933142640134688494503406641363828041066678919884574561517854479575014986016196324338163176992136434832879701811262587097401593041657492672429253059554109388471195114135762916093099593298080345517516350992551486729519698061012132902366479610365671878568495554696640740626314698790293274941722646287088219172247040408884449906732269235509430237916485606453486957475985465651659325466279160255104793646688599069021906781100964008408993665948820748615643063221600675440168141224352265347742658368025615630410030755409464437856777115688428911343262247403386281582473502701581885476110225392320891521570457615083870787135657217955983473318579871287356680174837509856783046086479276862988774784444693117282148303124568980230106164496543489561621274870682554254133066861827332284926637294084683178931202187288470402307893744892258267634589790513236968880417670417018053372902497714523436158722825050445342660462573178678689338958020571112063968272223669608857459765709432133186053125853737254714136590175135468923495773928037566877405674611747098752219804142316599170546896162802105345385716489010939383430436068326722007047475907955921305163252638514967594631631994290512258128835603096595497201304225336393350392883682629911685573498090162034319900636242133918902601661847578524820558197359674955662658496939786328966279345301699738784490567164103044086983411231761764011373647053258813095271140577922244038850450339656776931281649116808887194134115394063452304117511927692971429748618174979384393568248534713599071090125994156016878429986566127788952123907306351191451603100180835417724465657692727254740765018610742915269466844483651452497340498358477602788486208062902459276766761328297749258547969986114133825308240773146421817433993540500266636732003877347596728960532338754119031132684171282313048269018125771713779185324017501640144457934820117256669557331775094398250427660072303182437793327597136338802459739094994595719049381997464515361356431296927715143548141580184122866866318112789133539985821182573838617906839965889705480156916198915189789587745534534929009903226448794944585134981576129176843730963451472313262119188443794165755088199993864513308217509717551605125361936541588189327091631980202203057240663706596182324613403522055340678365434924637601704100866858444146668148225955695620570102256527585085215639561774668444249107645960212821605656353366628004794877454784624980958495361405067968186922455370022044122141741596798215022711241703837558676378267625425270302768042231564830368347490720254869544615420916213090249562138583168590507775342748372587736572414119078649219194147630702565800408431571818662707397493197479869621501753443274439850316293035634464967639757392135495811900516919510671941160460173390850058184024267983731792074987929305443797345989452691125100758097948146480803517826709252151406793885735488916903107974015625566858112564228526073007672886175850632629812621424952325912879961797782330875387533070317243457111743011564940880604418470019575694109020584045645736506389264543146765599406422792744696303892435094214509326673932410946842640889058043676642773882575062298620412295993139915925460545052893300430308871802227141527953754039142585630128632589412541577194311975532512087391092667662625400152497165298248115484748743505850305285456639090035584401544280000675456396675540638214781812941608684625617990600580174896349011816439945732630339063776471462475029820865988956605206525641916145116350971570431080578828673371942324226564588848356698448606630697945515917937833342949095911256576252439878682203031509750081973847340555486540830948196908219074812951765006002970049879758853757995299011902719813843862878562922624545787559187920020887442142919432791390595889793248562981895885661808047947954958390891905615652412215558179391984851658787879586938152752603546796993095455221415344761185300656780154718880507212222089297792705382354512765611104790990174493378662318030113331444477285107483068615209374762156280672659915526927265763553495539803286032461104182003162384783483395300881835494784571121756729811207378508241683752109541360960437670240111136049329241819188784603576766884255928880039280707116900612493612815947548338362745350057558671848069374181346737551207941421735405101228144080719213829044781467644803901768936373492403740060490021628743127843954863694497302741054526479201539817219541584802759270101191506058355197167766935615601889186667489092619348344027581582758286253825440384499738049146414657106317779418233546698156068017147990588419030101033036134890160255622621288029656496713790734453300550135574665371652828462969924766376405939591779631888919663095973132931474613632100041541329421687162271296648018901352293051238597790946392245806324083757201160169571704751509271414485599563800700288356690426542088202973839632349729645988794441966671146819813314222718306873804206132256394288976133425738908132904433017726668597562833861680041332022169388657951290228740267504714160087423833378610804932712099157593090097605871367890590025839221894109453328472509856430939627654925035093815227472168062630896396349790614440919442685267077758452725785674787739145874559913038794268954748447257132477395191042281052066372982843807480739765555657563561214964740431974453744320865253466127636498383451213590868018361386891144413033258862487588180671250119173064172215470520937782615516304977203487055783828030612471591715262454025047696778625432832385164750674459206594261934103128687423715639017912586204296277653619031716178457696452530632201993770366810643715385894789320907049444347744618768261647859673775529122448347363720453152988815452014267635795066879798410073929712800417908153158322165540349762555394962527515499195005242357976660841722366322380972716980421999910589646722168420006845731685447635303388386000691314111308038486197661534960154840411588000335009185834455998256424310857661602859435758771797636523735554048835941409636094791924218215427249113080541237990699269346177848226309770549311720734922546276677200392275252318437715780087472978264440828510454871276198995083919196179587038569881344759406431903028089400113822628979791988793239778869116159919138279707742064607212482244142679474890576939767488125664540912073737782118905651463164895563537909804787853342170346174254192011321057865323783791311094000545884842507402822523738019820325328649933199571533530156842346171672044632184016838813171052539886344297210379421252334976189238382407172050639190341735557812791282569999887451326200180372600476992345944795923191457794082664820159066594477105087965644781754664994502551780645227720942880755543942909415882880800207071959259519295145052892817872984522474274508374549973220227967044643585306710600914104550969224150334477825358750257910155040905695715589502922706009009307160962560177513315320899020535400874744598207972231453766466947069624735774626315201872316795205177032845238252266249842288898548844932561192271018020225964715698337805088387676126303694087046601635645516566106849905552852967301461938939633598849847310073726949938783237856051881395833663932534804595588597925987912440087205409188910593001067205050251912944449788032079217055105075899808459300618681566084319656927248269912759128204868313451722100417715224967009183706458854476881889767399079020461036809669854060614012898136167382671344777025138982635369126033646254988507139346596499992115624788937465853555090157094376083178125344351651796517898653010543852906479250680538896002136970568691329572595135868443032195994914598716108706746013674273953616171297102857018313384813173266356820980266636561858336008905980153753780489063364049429112878656781815486941888853999250560966207190548753029910124536646716924143895811967565922905033249940933002515772015443125435806399874803329506272413198235161791054943750443997090137797498832884980794368015501402142371549284999247079881771839286239249431484588162243477113797992800960312761775829640998866485077528784524109835408778830579116886972917812452747858646658512949315229789460910063395287736581590534800055998675389251291137583037238261381444705831719967111994309881138522492871318374256730341250608689556322036839292639303372577175549164953852028861199955003664184592812368516482218971912133745812392592603936345773112397352636795417280757206029332475454569995097261213844614861514734530629889510306588515071765971163504896136105461509812084327812692524774807238961228767000243645181230285760531810697237667751978901738996654200032485835167473246829451448899949430273458008168086142372835188809942885088084122486348761228693564072338605538802883423935539300878888515872741109234866043341940348763987012361996072727311814363968946725338351090968845073237227768475318997504559899593356697330764864309355761377448922163785840343411431435646999527727419098995322787368186306662499080451919857325928625885091269953374849202267085547567947338734786972073069253228559849268511896570634850118972276926564474862687760692768075948203287224959174468842409719138166977940504196051424182781167589615895331017104536001906416262326028411568053317051810974189971245589547516667514019044324409869619194793450364239300747790972159446099809441546447505992708035578744464865905044021796204944494755418700710806842582055572675324390268564222048136836997920755738024914844503486187119797661819965400039823077526647457325407746601036594915910683401813673351377074256989252255327754042845873399664149013127415085757831178761447816307734221282037419595834726230159586458034181902359210351023577774924994349214787808592122013144223487643602857136996984293878325682432808617661975850944172291847274180426167964058242942645050148363654961718357607743064609907992376441198595081353676701549476019280817599636121238523887268818956356850106284657827172503619006328518149295979772950789904810440099151599990699218686623817606736874314570551011831360551768548451729045481478445854303094455983657311720999830876814536534247951620923339264801413435497072425320769033097407023681920257094006229522844851353670113180986938048301241001317310802979722702902095002637179087854087523652966841365901415859355886800100355262692051526833233441742925685670719539191155743884143971248110399343813669042353946229519608274298545278240867108689678075704716060419129813427089187035609580292485342927206396599659484240123439907412214219662057659744296341599134181476504720275701041905639251355365852680816591990615457558510125340289667332100494035885182394885301018790528092186508367571047377397244540341560675377427003928462458162212093254668539706590167752654807738941856790795981527525265615540068783458906139029176205520968684791216319645806825865089496293776253619813752809538733556811004766213097668857854530067462744877139721291517007311515021787756973629713747976844809198445409851058040203130360388304862924861127393540929083602217688726178056480657155494563760034056460590838270792689152389588933550979635129893815548526520384737048383095668798769949087614717319660922186478005309739647775376049254856568681271920874303311157601564759647467081730617847751493327770790951889441854385641386262824150889885255984468021035774770628114305526699278826486293811760877640300729793034371410032885704088151766333308671766279055343233349394334781076158941041648167019785828377142170857376568209490720522025308924736058821150640268969075918402720929425310987712240265599885404801083924332451299255052289747145660855255079147748763204759230995352436733356830246511693862571873458760366589851393191125198943982116940016383152938496124645901278747887591465160297003594940335782622867173214639750109982817473847536541153434318504525202154260174788590003477837844749509981665580196421373901418264324982289886525139900094792080331747918635998715832768235508114749049310837001001851105772001708335329756060757943644526429342616283117138480314237094075781127915453734702971104194233155784922164198256039034573592439055538387592162432395524604921274963491253262435131043958280957348923596767892943730902357068323651622727121536722580555939225771585294517404991126519126928288861683510534725317103904184920289734944027738640671972421738739126134612722817322859883576158659939710437126608071003828984002503185040166740268027193022353762477306260846095030286934801945869012865366898339534038979920545948276717337838843997305756259971597637352517371163739208496734317382319413879118691487119484422993346819845997392046093545725722839270810218599187553927510716650676666189949365229529902742912865873885508914299214733900049902298349416909193819235104656619507089211146281756811597055414144430824119219271394315836304425194070214535672901498023115068142845796936280578209198883125141512611889920142205232140328072831970815660835609758666595841086561054854955979128582119516469033644551787860828814838169724957502332088535828596602560137199140229262835958274392964806548687826985802500114380756480496038500190029012080799795918334473191718322579740061448941061411649288710333296067435386118717729841072997694516378552461445299177032215582383407043951141036689636237529851744564524047910833179080830152352184845269511242939923705497009907365279201647093045754838251178562165683409495129522154455515105988627487874575299259936772679529412653478710529042835835229969026760633462907126690431295696684943252217791225805467352985714646863295798522359344844853119370314693945521210044179387447999667603871217160333116115389231319592077664234546526430004504635923303376832983440463942347154263043375977647289637108743568200054691185135693752980507143395777996520948688293405984388606352915796759522133385034746924108699120742691275770279580957877450495462403157318926619946152207409451602685929924479506090432954122223031432815654137683167262224818063618550076579875330349301091206788012617049129340523843328148360486292952983510991076685080826456797441817168474294124750819887022950217560970823057126560110766962965146108007064752600243298583494809622748893424343347207466626710951906126319592429149547023894377824454283244723090814945246886669066764063537398434940334901433187270038907287925869673613382036165189828384854144154657811329598198471340662059014219981112930495178499642886840206506174205034289999971641178330583032048874338077506041171429884105020561909503788574245026373965673747149612472183816761517119599558744401711170367312956719064649634518178540096677565917953124598019062919238915910924654096607530986952713017495194217616839609008263154148442913826834673752393653623060986799680947593431727914543880996447499443234707717731213291485445476468345881833479403436833875025115871909853127830962973277868056964855841306346178736788531774890660119434096518741989570665614333479284206945227881009012725259248146521474828439354691397936983242522702774069442289800851088676773357966975099068622770527735185439838239494800566932399703372827292856388772669570695274414893470341762223428577075693888433713235450134831310697461980412229572432244906288191911564091999945853442716588039923833653098773705111434399147291971433805791584450598991219397676337508449752505505033125996855461173235248816634753488418761681965736822250862416165554911097215016978259379022130693011224784260176831958924382179980228926977827354767446842480918434962996521564197450228632850595273859614749133049660046884249331347882804405290736009532040810746658889625243177009208088479054635248139126380750219696451956655568279240833152648926475198395152135102540189380237316736200401847031264181286024287012815348464133004518430477140884604308490563562008103233353743182154266106709159138813189498200872222351218251831256183526269016484194425180727538510209475900996496802375564297201288445078648586194548345832295549713623502301246723276122314663411930079645391476596114429112136633320026501159951383270601010478850748339748865002872499401156922653769095910663504429506247393112363210182447599879771922792370643351611915508715331495919907652671980133893110604358057131576282532614806543528781790682402551778848362592964284038868689792237584320032865213411660701460698429611925113694203696527969787458576015106730124589296256539519124695117562629266500368921178134525378934281844713513391098440117618828767346718154466210420779576148664143497085332143730535200101541863036795268965841126870836180018766773995174197053379959645210670355366089578695123440809223284924103878745098646797713126714757741418637311206989017941602334579321263316385705265259218121223662322241104645355024196986888814897711089294131948482652395842915042619999429779072181900268532992240620530013427343800467174837006251144264074475953931235874827003651558381216535600050662286332617186769150949538711511453663488969760834731151676488850591600734884175857985025952885746980227080493520069763843976890303595519595230664730144007941903418624688166442972480043648330390542217380447042951505430753597847669485793979581096064796715512264293773817651022184877602525836507238450112472896804668908173528970652108821953674629306808685956365847938389431837269786655341272665420923127647652523521136475948132057506516515706020520775001682398596020167371560794998432069845933068698903034333577933032958669441731046103351324515179209427141617585161329795320921535185881079182937051346226481863996428399119876633475894779432964291351084073594929798952350795600394015568431756041803793866110875449739784768850233097488247941101783521583247777533861496726437319133296582452038753690134191036293876295380873547640461506327069595429248291837228670455189889855365782222956318478771954001253515017860108242673703809415539770478244187805746874762389547916817119185538994931456139204727212578084856362234414712219030960277815780242089129310250599701090038860293999571981924549034938956223001508181275045653766675962589920347458939442907317522448482238394972520051886035044663111196227031559706725898299455573210252367250555976277485836813346416031578335456424373452632698308455650264838894917109323293659546945771763068970805758356274068490340402174758285958040139180042968000202652238705791413022818305506783090186471216290906849759718872454048857775160121954761302469484693792223372337804677084335145436536293510214554004763164313251569741089149855144242826305419824679809606934494647246374954545988209808691155324816349700075023032228049146238860359170820059017449645811193746390913611471303591106576643649671109757292680853418924129019592565794157783222345708830882611640994417998642973927751439448443795296574132390423106222876886674973336597252566084351340952806655959029446445330480132434390478126231160709585768855920309816115350760636419227322023380786139924634756795108180361710357328716085536471435160749543995739101838212379582285114894800471388103452164154417418453968202280469966767144154668212696840582750682350071103158502694943547302145617122683037820361799355201119399438547125449542378892957504616519245656531541891301912202897469037057815207722291204879315410235142683389220429674191733099693169069847310837690058112337392775621751238416985665063761026525696687556830517271026680291655534067065805226338595575715270235873339249889118276555149817492018983828493033059877639900314056540994260558977815827296832790105732987465290935620280024132564879097645652654756442759134481238557931752780315448256184991980371120060284918998163416111619061833744494444263441615126642145737115946446125193952579609527389730009052760503245358925025991847974929578788747157275813528163244693509262442000096943043100344931505922311693121584795256818339664153322239810237639300563563063422352608235841272307577617419142274915147132881445548436234257282723522561043799731112964515109868569149637634625653109784695870608759169373654204432171209329567565109507433520866070732349819500103417480128225589743224876733880950718248029750005522037612365344960702698113737154793185093370409770877825378051560535313107813015900143377681811680400104827297621409738317159193150635361190636303519414996646342373490145032008851104805016537004080619473071353327662062804817949345187125852759928008561681207784849880404434168480850217396508988106300704889458940020819799930793874650418122584139118604281881650277308324580490851132634926464304999767027140838702721650549236377266489623333347804220960093549975422310662043638303264200795663806115851338907752986209387158335604584074981050642647166942677375659349178149670802921933630424372582306170382266515558845643959675762054558853446738342574833524512553892705131447837438623280633555443132944145647108305189951608309482146018712137145050231033282726035247702567598557554125529403418206614744360248719366038299153253224923656750096922118387937456756943370474924226205595944981239664691347365795337516399594484986877506989089059448634324751623905199253699079677104753744021991292722964827841660382132156697353745433320397331652909074161346581668286378942801336007670787116792778049334424877406440088028604600509508931222777869750425185654682775811616858334983459780131676733765771718443402268306572467387386349624327671829174741685028548978171623537025881513759553336254244432269448511943938700231461169309887126336117089200192612952557080023723703222971106376889932925199721167569914969307203302603518025989891307317282342117677372959742643064254796961012521620855632353593660137951303330117098182869868815214487963022347164768791234737536436820391267528948006126904445189124055169054530641659380884807560861530430048255171170945420850505590823667507795275190901194500662096188236186699741968412640219649088292597826451839853836372035378646870794239858104928767207688308776410766738036070714772381660682026135532345640305616972424932042658037303831162615289967027186095763763554654565045913118426820267569153900122262677887564778857988491552468232507631502859927126529802924829216514437878944456683716966797193273142829747873669172316509657631883904914699802492324765163078644073098999795394358724545598251478009861860004471061544778347788689509446477869454511097580400814404340189114374679590673423430705665400006586943429696111844815378565806340624307570348993087879371563891836296757885962725805741360373837836935660153268233939810791076505464379128378739511712131889325025275391129096443390042694482055438693659776124954185797018040039561455735949580017613088396273359458490422312461629271631163197282886865199844724344056504313249425989454807787800304500768777829019431226913493192153198548411475709304120971437118256508915784407289365234908051725053276064269361852773312098584878117649735061019104866727616277697407575602823277920597606396675260974622950163326901036721577434347498971953356539028919218818596783188916050179205012190425253317248525991100021833746806713223140243174639890359637617486503208451293152864177876104083053122064627200758686074892151446166950094221366464633677585301349795239601212995898339401300686206210215591226083191611449586457843662092667964054236406693970475022137056965177212112957998167783196698828112164934475809839873570906211312148579741710138783759249064514021351561422244973968872608946939636191760512700535544798322432809505574817834968790131916120264698542957031689010545355296475199619298671855309262940661631010319406357197291067434088955443849119915401917682201523756224918677148377742792126800042564137356284696518044700718241743373065990528633296645292595141927767906985578219166069468571361779913913001610760965808715572111723011924359806888218784726588658981555341238938018402477138599778206213927782662096299616839765569138084415634684058899986878930410212868531850823341535720255201952887655694154624017116925866464388440198539972423411582560550950369235792806196629188875332565094111891600030595692168837996460336790148314776772957613447090336116461315852382522657805333609203568354755600413477986936348307563438644192862346212535725946098239067277538612118666883818624147341015749647467421521054231083073126849365076026079212255534468524262230434382885636720626084758048338804895593589738533146750346606483926458872125764576409248020383034158807336176707275932875606045623450603156412234468897497033460440163987456013571285729927277798431692335846900153610742746678133001556129184831795028101737207257009218854443645226261026971793688526543723805788528323296637593601509466729546518809285314317438740427926189839162981484241773866621641327852709145986809841715169141439300573656728585576775574134129559777868740722577301878229559310580346931382868713663837237230659510792522184398790573917436358896144997399428648341792822099361493890641190021525585192322985622177269113802944592567348219938874056553778909386617367085604642731085333760549930261612667374592266199091681798415643996413973062508033682747083371732836841409631789470136939264844753581378001942296600111640416422882178971316768954311985919861960628483201011587860851359988604075700496955175948527863996031619323977842402848958510722920422254965994340316103149822034177025359257990130724627193239698132238047553764464181530742673342985453956115983977676511631783739177695264032743810686498297939765646143239944476560903297936166847131217290757508590618934923533857106830881505790895097140988964536074413518880539412461630644849823322936056792793956577310751796197280406249816462867696895008241128085378527585997334144218160610727953386619046038536241041034782978796446941661721825243188299552508070214517200383723992274505277901740104499975342627626996297501982114831890483959946646119442037807380901042972498149346166733651693490773814801143457420371430414233605074671008254361065757628059756632469843356906291700932130602974510596074786998087811677981497342571105059344612698724464226453440623166279924404396628196195318829723717526579059735617746798933098150300523998959276881018811218474296555255383094361443967607238738673675416528049139277980058980920867645395790217527225519661933711230206437438738260956338898408247117048159585248078683299350182460421241721042870069995161349846915080353792179373432933197890621392836603853360619686168517421179549834424426047603398252598911778419299463626076157726102957144831827686636604956730200981698843088556935516058851706884141479617406582913093687629924849960407870751603529868914556457877364878805630674701099849086724775292874797454442578706731556595807126565498111345829338545990907110294128879058986058522404066518499442715686749400175376123367370269863336804976327221627305178956708106805944568888184233221573204078710805618241075590329991923281741561794597953037666602932726574250976627044008262183611503501170743851176065116591993682305245744893202123258549817299953174455800672317518642107907822854807880697865016358963794542907608477908782570682739611779798195943771508461739712591165564900195101973687198515003257978192718665970844720058933610039602643813858538146987998724367121177539156922766929042376140881174502466676363787355303006300942674055945192111942405545395180661761923955376401247928808532185714106739349310638625129510466408723195162314244025428878179215697954615293234527804291090349674900869538167585541708622029986417196201578866919691916005439757800957481625800227789158504755282162106616653683395431056115287283969284977189937641752388200971965142207907203696690654371917058005068249323300401419081734420877815364013484142192584407233023014428329014646511709313880278022628491321175202231375579643086661234419481492125873112898583096375985485038206156443763436943078367380257546110579287654721815670098145086177152907021335229587846929838961490561240901209171890176975194680440319968548997295157622255765120788170491308504072379482206921109554785279694537107094337870189166559452630035147269209916900002693054178357263911661666361509716956646791049069095787826767638299806584907824309166740120273814369074113338428389510169910076553595533580323606501229271650544930911200243839251438886207399188777176343346157578402534305740767178860268216023798498543666449527578627062317853173172712223087164779764898029940136224341522595416467710441360780367694308698835395359130053117097197964473775039148283097328194644919949336594612589461035947337833440482220810838899711844288161607618363550019400500190002010320326300457152538275422778338324543625758974534705599277915598978969461335639499381737460518837944161327535314269503513552372771829873890647591807604148433430349809252713394727225133527064598741164889638452153938720711538989128802422572857690184719964235281018008241069451394061745256047123031945087928599833298642968205375676540274551069964558716693274280009997671077733994077114473410117718301643195537786207971921846011635028362225245491343249091986171060770875978878274750765744763142201055746046313268453337181978426106602014072150538611879560960270495299337832445599743000684099643468953618940460122936148078282236753077486858820647509317858645363397994341619077871377792176449542918946942973427161520764620180032682534073523076483572674258624438285208393951775415371101215659864071105143886535268206868735401324676445548220359711067779067167483917095108904912056046712506636734955507274384128408351025688416485909385379543569921835149756176970428482393928232118461381167284245857672208844326121201564188950826258003107846518370809878353425568963558499820913052840201144116730413387436683934575323006292135064915674592864498138489746014749960980742422146412186264694539968896588725506096959028494692641269247389278495013589134183297750923114780005484735576397468164897087324873314663792341291410285127751998325464742692497765486443977992318921653054047941370898337456052390903507995199903101723003774042971389848511087620287381245768904862620529821352992858590894750858873436736129332301878065238172644170632377293635081279842392276391638962170688894919191117475575724547644549555305425297138692345718463853694309762326097583071681282043313645338349788542640990711937436109274445836638450386590285110295931231667500515888484510991868550677581438796577340334879965380143549598790398911448429476181237392483859400380434506211770448671645379413395569408066521077768410267964529892815197555006158542328662187920826012828821966784180859802979125692372404503123421597527065464808630258767015064574099851009168760163699374507231898301705574334504660687082647812190997485486342475387506643551060239233632785282954548278646482684036646659767805287626976759478767394661912189998743201032459537914748952860501048657899681105953962304719819524462092671156324435583547662455111001483339963757172097510651709712973911188503683898604658857262925872650686062575384467613909640506917676344670792126579148901692973413978587572688691963762570810234872127625492185953833799858235236340650554373910735293210543134880350079490267268490764811643768821375439737523885938274459715674720501777899027490446193121255110978098663760296154665029097876357570559867223182294790537983471024785834530466280200142125560682796896066516896502870147623297956557909480027008386685916669158486642494015471656170369456373383157803725110826027949525919075788375560769875664613410752907168970475808745391775154222663326016769719101622917577138965502831847223451633212189262834052624732580889173958999735459679365905569372200953576598727350891003896568268085254473963396106636165405241181439623808278685305958330520961185554941699916166439066964216910213369055341244528299864110887545754297372862581447122136731482763511009716776160785689721910197038107016193070270542635415047081466145991055292015310921468887023323544124326275550797943417880069289817535307749471617060755281502936821141344274703675374271096912592474643798775609673256406348384718045391132945197424130359512750505457950537308744910478639095844905638814144233347724061481332931761450820863400996833012533574607256176489140207120375305949883049547126315703411573603074213541914437854541406495005595554711316066213621853838855643142487981091968923291713342758442280515747901071007025820210896830509298528609139438747737330066759630724596758415667764751578623635339438392530600471086114613629044996592686060182934695560311659495094493954344852969474676908286330019684227801375038711742689853043974740815154267408000666958624653130246334402686398690894605909418940734028335452466178525161908496126553056799513341966765334982238132667771170221427205847654439956888056485824623528486722568764217056937491530670821466396249159715071320385637907784657879253805068773135911466102715314102745405700124511606931546673123414063545348557933380831084911798882753029919034339194984253035719664078763963937805797541433302503197986720092424700030741121763036154801152419570777197748055819113809840496365154385348569176141134930273573158318122207432259713017105182326280340803038305765414159485348020008052996103252895316685454525098461166739165482197514200849742900795234302510227559411116416230421106058244864874759182196771265897133404975414357873801542509682385928248950881954852905300334839726285694596780429267951065719109687440162495554813226198545303093754571486245128614469975253164009635336016001692555545214827774293754050886511467268230421451914685895714722715385938742847117371476948013050979911103310858619331195322930632891362098011259338701298282756603813011147199530390930955988946467153978468529877327440153431136010746171505835235557927687412391052330460484421434200251769711425028501478005189032737977958791748198393664516512294480301410000189743650859025450793554724201366980266899870007056400679298143656834841598633122414443762518503630343758389072336811247199731422805295735376188948107896225485414439990583333822963139230070838599347547928888055277605473141361039622231865055918138320868453337049051098219796216206904673855855206215796585859754232117335565999716126146649355952975289353994765911301446274964936747015243347735067868971611440761806067205114095196462537443380922830677617265354726440663541619011895392875290032678483864757508012193077087346192669905705569555015233781880938291043076799112723812588285445943473133909755598064424592256937646486886632650515892428875739746189469749892570767410539021064189702933265655630781290716731792222360281291140566071893797187147780774775164479236656727713425756960164336713529208085929802574386004991646351359567798776299909223415120124546031223999752826692237751181902546839255891308659847850345358195294153951753315031359421729972906454648983068889461810818306564119359346135410335817395753546684985620884485908274044925487974853720797684513976067453971884557172460078250989107172157810216093705918395473911921872066409463328276022216253928496506612927737179989207737961173666913083505566878135427798895821426370645316026397098335834834234574949388931038289563401717071297828002674356282692482817820404401713507599634653748929896597287796712414124790635712077886834258871131698756973217419071932399134986315110565340080798423114591329252447886222427968836694386865750478839767479974253618799549433108701576291317248715816909334370637140357919806555655453193985585085163277626953680557736713371102192116693368440134080159262757788917194736427354424411841783207596262633604595851156104755207489346585857372900263569023540322550300243872232437905326479684065343585326307301271220439648627595412010084812013915044045678764470667674598290630397940808716666773419316125758704679812695809333083962531442201414399432018914789108983037617178958742697215956051304674440435610060413774878960290335044809548010227496444863644825628659994531393462016776499590381910736816737707128018428543100355242132054312174320265963200785971983399742607680066497756630728943144661464762577401978251975600034138973907874810011472311240675691620840270717028805111494547668845805697279172758811654159589182111510056144150450485568515316445178755050834168343258411507418113083306345582172014570880707943799936172960109772403546956315268416437990927866054474984789680883736906904493010143036643560728417211204746760518292455609336529494194779270977461441096232286242590893492191230764109808750216833454160649000542561977694156075570638137723834905960830013653080032419097493861982016267335555982208497246963031652476869947631713423267130576973296369610238519227003303202056201036652335540853208240393191276458423799996150842558650539376797501082199415864267299406503349220849535585130759788953364386269621470085689754723220323134062033249434368467562533384756636808482359963707595355520621269035560573856770371609950661792704919232350421975513454072594405441132931001556460581754468110944714473849942378972157814586753304559793070096919397523985470456609609225660816078507157999053515498133633981422809361389844158022539239764961332259164663564074175844616817486410057692146968985714425401896163648330891953408525231738927244433323313412076423991854156518064827066322218483262875513584542442358726105605620983455193892132934784652087781949204650772922750909338236372154401883367134577271955328869820841006925214171886688070676035738548283007154278092483728123217283708156756126984040870893678625842784338283051989622330080654320919846966234103577502700552695479741084847679474317664104358549494899902759470225628956828819344324027694832869659718592914181399510878957917931395592490954470155412131424823539558898937211999195005529646623069222770060530441585181531687028034665771443511155238039902928772357611088866843413025613595726871895491127910663183836456547116055409484468976936125993547074625516484695591331723218454867050327253846953575306710179015390657334681094485226116814421361916783977475836175578047259696519462302294145399056378181583315641356704118298576964380067473773078212714493512226027156241467004279458418993896879472831515577357080797278936172896041675572600106053188007902732019416112771696873446199322278742501205145066194539339078188768263488956714244274408751197053561047306047936546684693123332053432079218498102999216364297969646852253818899456126503554440794864454410992331908641462655386381957648253876327575744144880143326160967280684459072689260112198184656381122160555809434487737173842756122939198838186196585659960837317688370054177558985140879353354738539865558710925365148923146219569996154691007548761599745719013989715480085581140374925590974022465628891115148164264736144704520524512386727262560603520265662976122665167416007554826230135683187462136263611148644346752207551594678842264325858187613764043815747406058142799510531492482671612749208747741721512729667297570908453895880969723098107331896570920197236466074799945613368021860275230132996306890851231544693445348971823710674835358759603200754179431681344871733245253363931584762343604883434811331573250101967386255748487205091822853013571236410673703967398600181893718293418908430047494288839214455529743447644227270648421599747091875041866372500292333679876479435263183551547119590480411891239852437941570946263111832880407747727750463289000550165614092555715574771857511307878275094874912935138005688729544801217735151896111298177515958536305373657558258165781186166156699950092863766501612357257133479018127811437832275159446581937318709841915061274235957302021417046660179459509189843999838360613953745146259220591109256486324628343146279876794381629077931750891014928692467348224122733816346956988750962796788821097368202084996785789696217767264568138020243663555342957958513434948987326987556953704884019415246687245876945694316070644291543353143968568244632482353451627240433722184232468137979142416899340316377201051879083475373933613654349257673653196633374857985295764206176617967178279554491867673495199326100294304174459393929619261751429462396625006538906139295077475159449264399661201123218975868805781502924859732788137124718101926758704669127938013471101235021587878602273843780381581897294192876023702434471404643424150781751332225540571006407898116841499477715601810618390187820030146532428037916823475285483912113367744577448949952390702212014354566079266042486239970652635012658046469687271748030391795323487696125233223542863138904252049212032268823365001112165286995235158562814903723824952011771584618179305987335871935156797375350052165767316051061309866099936084882348344681332533061033788997740746265843445467149396827303366410967606214828433945208449989429904267161837327405107585202919653829766543527566584927197039306551506423377978862574342404982109489012412316208627014943901568062577873644531964462632780304137534163554711861908994615512367145886914296186122171770063567702747795396956099230339094295719530418747115446237651408792425214174655143778588687791472716954275999886180872546022290456553098630855048894853201646762009723008692826034921351036367102909378666997484684384050737359470938505061635004099072722344733908212833739710788562800638378260652512104135644174326456186408104331265066151891452073032516507854961585619777212250164277485889780166250083031415284635419778022707001350527327222863773473426851101782988712311927100615188980518331690008589220429153572725486871727761629073052424880901445883271140864071801593315891292548396795417143978641124642719517199001831583765229615952229628624562196856357924167146039976036459461440336463181801937509681645133111237707566950962590815003581744392778435518435594600281643040258088819971750619017475237050800450365362030678843383187054576464924935629862910328984342725186839297940078901584324981700877319783245738291000892556895922191866949755030027170850846138886047724889966697365436251402988685337131273367485182673837613445391460959938276320879441850963113464659006057755758161015195393631682563583284590454267689370767837614210085054113853018705305297034924949697312759868906288558618884309765716000688786303468738870914064968838642728990920503036435586022670666977724773002983347490985675814868178759968030364471168291336747536269369528455635044897993442760845725144202915175567970632826122405163293197061226385851151469042295244208950141005009140726160019143684686935569800337828175608108323879368189746945314915429784191852446246452169503128198063372869842789613441290870481401482431644459976173748695039000375656481461619380567930005167453743122926242168499883882937418994504415506794403654874931714518412249179691496406939589288159927968135647893052254746561350590557585929343084274904683200141801428332449262485577151056908054627632463968737361380094411118148849267321402905630460178191462139924711696735416198876190267424964427646418212546848223691065388503429015228805246697059757138709106755311947690992537859834736433202028802144214275009163438674881643094090301821982455207366970007282636122045208164041240784070643134238477372695795243026119635850466177152735724324568901101093489128228636952988885974540732342674145608857445818407989814685733464580838351201081573750921118972946638461218028932409551033855975532167822963157543301568384887999577307598793707886892049941899689927305871839604572974474069687577538538783086825400274944104557146616996241194255089067892720112434726636392699329031524469409257461689067859947891571314846665827630599496158839462403964384368166831079210425320846228568797004454760476692472254755122771101495762497125982378026647551263899290585816602256633086921140430607922292523787877423563488714710919313073323439501404825975690658089976684431177318999017145554929524751305553184522066632608691094218400559053338890996984419689909329570554502670416045820468089222379740233907873757808509493257051508382189453150244048795728464623574828865600011730249652816450176401721614149648451857946077806149950623451934309395223198063039113734140311908652147729037320023448559532366584122011752247276240901749624600639725513153579113396869580303353353805205976613233770097145150661776238750801868435474898211680599101431228334533038252882621995526240210306006181064400804605085884613962981592632766778058753769972180155438176937682950033997537178989653014961332240381538795344303227487027197888699638233490681085062695805911357169442655764336968571977274221142765385399411521295117032834313791942245493767460753459111476848306028858078939947811172437042896218188666470083927637155392887835569708070605745796395673442320829334063232694952652548369052851545343351052288137781018203167986613936332774424366951624595062108994614659814212421579213369076339027555436057276630732984832904788532152439320490977264140557369845642269964170148034307823217035131859301400965327430391960336789105567568443308326108392735539169735532966402911308630731087214402294160143476577212002661640001079052220532108585988125425901619257370298326173495182053192769340350798627260459562174468461187792513345587877968323406977483250557786169462033385782160026391250718970365470961118551186167897300442230866297311970670704950199738415808576422809174087815195113824003705606063540727394597424252627454819988188957809173952844654563798086330140574117535757903003314414650531707433686263036293706044915605789582481810179955885715713396812019064757285713428394926074832156309790468677129141285530353565884221533804569338965679402146998807579739543187993008041839173072457636598597091438853605227692551265407572508295521252126371180193627296159049707303690730618787840201522437365072955918000301374628946394607279769858806987091848924491009654087590854750652527260831631244185744263895205802692665051425302040797552558136207639500788964669298903096221501877166472682009254743182632446724010881276104925934817959376974071550148130706377467568229616178510980784264123466407995149589794598119676460839594280220386345009603500443255131548970424074868915025758309680568251239169630948112861621034655023920187351634549498822097744251530800265318560456087512060279845761409815580335149001991746486838212455814504489947768215838087975305378117825128757358652482702380263171450347914807529601181435282489048074045126324722857102504366505768225007079142253290805311826870210488964973560184759927798609497590325884158244160532577360195567909576942834117743610816580364678801145948894545899613618776033737554531686735531738940804759827669361185129183265028359197255963503880483033770672573699029620791396038252887328548406022545325452378472387749904631122634724371565377886465822283168274417648537436336023038077386701523728158569819438891105774855233531392531715989956445104220613674861638013306063043971344483343513053384697994658297508261452243259198665039213785325549679087149590973853967222380911469057573021290484898493513469124173629561321547708088441791299277408935231831827104454451219454688609021592944956142716757588176505538875808032979962498463801774999328112932186873768808942487337525998650826016691530720601305290397053272352626930729191182876270051546280477015960341492982649871250789682306616381634968243767908444265676968302941036811444465677358638255311477426400915187983340878893507666818086546444496681924020927371519566862038595084288817717165842374871954625883971098599019537948020700634637938151093159408645775080082578090302953788618362853773778999528959109023752192263030254937463069967700098192268217269248809572061658709389872300299106703123863983320003258882643330334724015141299289904593412867127505972735736173470464112540074196565916619359320883346891138282819935084748195392950872341756262695264186380632911012702821099396681080178050026553478420820022072089849305385802866347727771831174313390189815193722402990974674130380325453233391581096387767846229261850464279597786485725084189389251354289259728295388173395760653270540580208249234196764944482981579954676080204726028967942096546855575411142658182715061486364561001064865668391272963842630830533211504749199006677558198022610951176479394650018680523142307538004603287954196881773642827043075458986477738350750455790548202585480919283327772872807064766783586559275475107433992825251663004104466004098002340688105174571049708860710466421493746406561744807315296261163002904766807361656629140380541195199484054451756267376722562826442845009958488793898723337030724728255677683052925759020065766099884476780815021987400791320629490583985687572603636118091850993969949031184883458345859354712261348034473447277971399588406972139733559347175840106527620372558060822770477247768098847906768948808053905134859326657708194312431135109620497309170515001455661963764034488518480943570824416734216856359295030464949696481698623457921551722432688333988635988577227682640781117819701518018437419176900585838741407860205299742408706114959860269528049852008949690598304787703134989478193553131634588393759539697581646961530113956469636646638760445802338071201166424935029760764191990414186994956775616379908193664858171411972922262178746559163139040301009349041435700039256207326171493445501635483226151325321838543976149449387311292809964127679412576226029002474365871491450006764468248092771189633168576383611623572887860265435796065381217396620757502807969996327677771307267713485915220276442763802979106242413200618353060646090541260045511558186528523466248050993128584118121158769738093439407081190063327312058514375042110982669466360667317570864171364327783540425101245962670369019424612508598966487980068524739708516630345261644186877190492061027661264725454730607952985313124736932401407390687643878919199868794933431089151740754538904450557256027884507418517757406111376100874239695260078875488532639370398312606201286389377775628884438035314249042627741470047471608646475251326596999906919103964291199653610280675634045667190013204865712402721714676469802051820556928430335785603891582390351644327236647156174608719257401800728581069560794148576893388232299475526089609036256057153750912648457342856834940148872255533830382793244309471718247389566005265469227742257057147706095317492078444626265974800598687537896505620042895528140649937049612595930339068562626701344040759859936712508088752621795293654195138112847688953268010313507165791048511594092041618883275463282097376122791311037829409107253576371134912469865881622701899008962340203916540801188469600058224045142007238292721070978988812633491904330588296677650173758121940443854175399367531521665583557821410963803327703727627141887021234349531986178567059964604803912058086066737910934081124135940517540509941537816666958107548958859337176121099238453832358724975312683606778560152271315377954838334097213785810452507285638590436616186449311300670531000987762391401112130724765472718504556263393792069315420647091684569554482049671482112388076457225107634915972904010158422623278307045832022450937950785808404056575355451886951867630540424589765986591623630115362974658001663959429565825319535824199235637357697399455506185830355157737068859739853938563523801835005487720909639871240035616801368395675655139643066129479897712150988510375366680055950403065926216059107797644052668069957745740569795873859114743048919706195554612018192464278856026510986535725108969119528102829744092876137783773521309273706960361881637011082271984361682728727419776906850403930267607172267965637144263262419480053662154890977610378784485834709737595211555366713875958360149669817160190385473126050756120912951275078340629176782941102353568923312853696422957105906431252479459698792869513512738712133236101598875510303229033584962691515220732189447704158571353786478277120700289273557741894220665941398182536676583496874227710093112175093999883225133331906850264266703758432969721329338804280566456876115210489083780610207262137324776745660629982784918331509501728031685657945755043045351171623776847834770196677165183196827031736482253086832446414110094579768881437212355137576407504386372945572911578437053927668975358416629423633999819792668947426315144062998264435879051711041508292378230154536341369762702361967118351015619332688758880127313362805661622997727025040075231706154822983721273692778916630201128831849279439358335571687448307669993396297446371319356298718717389267492572070002767437437367889159468620589932393264859837463980641078915953340821325446305434719882358584205462387336454253454065663791246727778675633088896149264901384787264361985429560606330239707459333371714003616095116795961637657035752916540185177581364337959938213421340978977719429426373192342275175534518334500380271060946786364366267515349241856385686802100773470272710610489430962030520525594058685429524336406091621599565939991175760738175292448654580496332041892629801304579691720913572465176580052907822843985052137409124055183815224231232871879944438880181078782908588485221130324075484639080804287324640790096456751206249157202855788622270457743901098665613364669807455997706833716997997886078558873929944744412525997656864642450411646197754823220035199048847807454054302405511703792382922034078307843433488024147024107076245936030605454309970834357212817937896845623119389034381255974080418403934074453677403660191095616865683373583864567858285905222700941332047298370380502502405525804757444664779591242275218613180239450373286413128217646693621118760414832878921981074393503206923951091843837657988713658781312647751861482129375188815502025783081433731650221900946424728820039531121826428978792415979465225574139618421023695138248928936329464835012859076759626336092767760412444326081015882023018365688743984393126570098723309865453600684206032838744433215748889002734483073690462589872956490554927359863142102555174004889342645039850671976727106788436158498883561930885495039352392341750578151608356513280045913035574440151209355678191590853169565448439542202444374954424300219617303972368988234057353077717999081668984613659689771880328489108574764822047680122426589034481266776776499581375124297606557332555081368895219401188817143919048587324103221416268543782780536614223814936245929883283888566095728813910292813362044022581355306173832044673255590861796971291155728921233232420560477286970973859051139283677028619415871875192155405548105605190560330850886511366975011151344478092595759559388420062287310478892413448904420713007227012642123660084381070490426286540233050561507025862909572553512213025846926758188472380903193224240146853238269972018336461119587764391296402204420493131137175695052245664056111587926261461967034251650585402842491126641788035136408402307234983713310350177967979985679851792144443751996991920217389113433597419687953174594099424679630329250225542493862889524274282173196708577213912537295611857003760024362639918235993716815383610410326658906570264907747031051626382481747667338116900971745514901619837444250889796935392516850742360789907743831622728973225023667090269262452054900445927418074165439503202121979466801713390360533630483369667489111232501958489481636462442637937761818499124624065445490228812155496132134003190661950577685895087631344528889858746324582612663894185584555162296504089150365054150852884392555907030534598725814886535667187921631453060128854773540243605993657958864895738851913305437632010795027608887190373286700649595754023534019181814399868104755551956880231691324241348624675864896975499554934206633106554716072243879471532251739583245471519338431840679564522773082842931107990329240096286279420995710552950609837892109078166610631194425858605609747142077086315484600841799544357333344250415336476759519305829014549459090585374177858927013258879249790333641315534781731505543301827503780329694087524115243404513361309194624806266057330331351266040341197288401392336034467979484677093878728967382218805877210620510315854788125779192508186930861234502893221022723355873540656013991433008508344317554484511723163043290904738315202621433205961427789045375929184471072058829957282069064379555338267537511332138623511812919189431930453253212430567717711703425247314761064884098374236811039834691523485453836617978468748156712510125269910030290049880170611380045123895168323862677413607707553092260463722382086448634655065678643388840601717577552670518451264747535400324830347167635496928418434133717554729869088001384249420793027106496804311312684648497884682333622092203420273851458269093205373090349139002271244630776095247181660938138720734150324687071709197218179188861861534071475127819945277082591022571698069284061553974771325306151949768619410215501322215106502739634329172719086972613775066438513832810365167865387249024980736218595631950793641585131208410932964388598033238923188195423152493188245621798011457587279530162388389719651529214332893139456170112952321178030395779905705337818893072812771737171433171590733466556161213642082946676167015477129704729391386676744338259724350925594003402258792490363443565409853960137286409617368028289351279352018524588558807982708011468231739291982596052410694715696976084608664266346434747855115673262939220134817116674610076880596049972389765992225515057095303493931939294989939264740864612863335556380063040139286131834705872173477389412912911338914065244622536273624963273923132480840303080733777975531440341271163275068062344004709550185172670009757744348709689633598124117621746751130622020579997408782958124821558684885838518001532783381902234943243869466878407186103233302096491516759954335076349110964896228610654091199815565820661113993120049092924670734264933409538078358693307312189628703003727880525887691304601534601970245987745463136128901267123983506830041698268431949110082748769989990710902666607075574051158543489244118624763644139710905131994615177183361706898524254095098269179083466409518876892877387651838949143017303676806780517850011494163448358503649268496735143864294996882629682038384400986815426701674941089742953237373014050473508704846261060201514714990829236009834565400041818106039381098976533417634569633040386123822321092023901499787103596796391925830016066330085999338998008987866857279458003783799892664117612748987694646303865358179987093047457324770514661552929688957313298262329341641049872207678593481428526489623641941547944986835297894109125439666155273622393413375845099108903353289061582973536457331970839085463785491179712853481710559500475588458691305700206601585447946349031598416184031730166678124055904239780587531021473180764793826859785626873990974611109411270949643611988619231926657422751377290149979344579930362670676534599689453659813132743422978686253213210481623618860605101390790200293151880836291043509034516608771567164608326860558744623599160698107725064999403976821511186322918324316956080692053736529619945192687539293897917227631464719583737012922742460833591631139192173465961548492107866662399041113911633473627142254262718232183272182012309559685566382729503365977737637733171424216817089027726441564894996403323237885644721201598792051889803546445026005115952555641056074486762980301608236047364986153768135039504660688390671604693721109733076282500568501031306011805515111287053956389865040000552832536456548414443011797999783074410358836644579101188406469135828308467054299569503914396283016153943877970088602114497925660213726572481697725522892572992430300072545604670420393533797209050822557620464430696945858465616193106972042298827346692182261770986447152451264723103071551311149399983782433165666042720262320160576270860432185949646102573712041870448759681462264924606245444803690545961136752323368228895856613113808126407140047145577322810648446650982183881241975885810761619710188789130566864187287993483434254039158916126112086105639981927673342785999085238624341043529420609393037962465827777800795604984679417997937170184043135150332143312328562710386051099428076469464870608076091366413415926313891948261036166963865977904084761199173780598914448562513615176790978824342041815895347456768290369153610443278418689157970026823491890789654826948751906515370067409042884265166047482729718481995628136745932992924293813393983392213494789695492532629647310746859288491819902742943411937464270552491350262171538415162753892627217933297226771798283830721062924999797872404161912905551472871074598964924687795010209334944308474429969247204136193732413318769033156916763172280792494806209079201199211705501966819193073284230285431426216968229121957332146830517512200393701662043436219767736145556635766491084617730795951651091992704945685903110399593232636449503487190766215822525944011815780500351542351074764618912626315116672646820686373578095895957797844097432277763344847813138627994595684495603693116936411353720635364480381013914101748672407055379991857498030594983023708672449423380581322743350334282907562158246282747589819939917361948503763274705344569774381191236339177248314898200989931038447765809456869809147613206073669367843237657678105010254160234838796540936992505085119005875164977503304496929635791384914915373900327791117488253559426683722556256727331771859203827677996102731930139158592271703040293751699614496197495776320315069166377190598898770838134292503214899514038276282679317806461151980502549789634581205788772504526876512561418925262033582274934577447034540157236608837951904817392816702679499972627068116028750364060797791909902847985825809560984481231094465730611182487702269749797115974461602924024567905740035659810188764321829708534886273453951534742858336412151299078857494602714072021168709906462967663918725014365834113189176197231679132968940418566578792311437039398657091051175650754697221904590774290649449641502175125430910030787886954039927675577478332146229693618580946364578861696554629128973488823670879927327622102465948098224030935199898910318381043925734841714616493571905660494296551488301673135635168229619905573432579677409822046118790943224580748389239772543461722550032610601751198696670677834199587159143970515088933069128227214049290330026036238477427221095504498081694000655351068338964288589091482448050247740415821646639289947230837647335473902612998644959727208136202759613173961595723024102499150066211149597148910293280406193636599034159075263062411394255867375054664146222387502958574282595930434528879556663069601463090942913640144432954477281544353367370107378776920054171410779598711357434766026203397849867995892114417772652149657099815446953834568986939314024284676466821364358380264338292208733057666657925895554232929853413644659986703114242838996172318552172064648893472017253093336361052589462041153956265577446575476907859360357097439384718449295928507222349676753811429757299600939015226099057458908600770230110289701041538400385514160188961798702595126871557611996220908249460640645407287225703862094148030444838577241912657367467623485275702750591093047487899034990465262277678997472404246320160394703685826488471348360346404223734312295749481895850270291845698699536538409731056737700343406418847834862398315788035057072232967962885003116905485975629850992056241627854045095566287213196659120008714031587582556961013712485878694312678580448204069892776711071725506950253981991186453752033961286589566286126873966230213358348421168683730188318035964294038641163708967159260211718868736061447449640067744262738701970570137587601538356628257840767944285009991361941968395209538481143731886049730025566575460710150396938439096989495663332070406790216622487436311780433035482850093737814994857804037097653055906523089428519257050229647357101607426226138171808418225424854813457427026536415954246933278787731192448401090706143256967018993039694266600509893136216161518899737053228184766457486589445291211548454849604828046681480705654564570935346258651447108405756600639759732703894799805193666132622240650925926800459389915930857238588012738512789969426702548025415343693426588580791772754238736198619335307892742889297918070626587157617587005635735803116167197725474273734359868179264725191656027782170050977287355977799046907051219023455481118531360754014141194727465612180841378824707225377287594161738115997241603901312002434759437986682625796208817610957030892412872713032762684655378853401257003002092776398931323367607643820981200790705523154490882824930325538149401697465478848939930061742850840038506873396338343426844409165942103868514641907304253586107715967744624019418046889885410200100921614951808291639309270823139260231251212584867226201398903952952587120591098678538547841068083029047373604375890712665145414257969525497507329336038558345252835858175265791756124114558206868298656275554307444986997942531447413590241402291039459256094010264463763230883779326900635268208330404681192299326196466234035898739197000429638459550125950584948319156154468306960978758789308512100171931030575686435742987360031468999816346130870272516348607354882014606410578362370830545765222994465501387371609445324479264877369204361719032198304263582316474857110141528827270026087486150650134936205127811953186013072880886879141205335161025097645372032648372591638244823679860498311882336466131471392754285196636909161950648798124981046164915516548179097177346790537851511927883979785709850458678678757014533837104647226404612563566231304731393981645662939773799535855343668887211607348374861588073890966196037112544567588000579723479811099554147999939259855316681337452776372967777504128117915079959455245586867745532122484236817422991054670745125930845128786135481369481673473691910865442675019432790412621364370229603559899274886412579999401051479682005041194233622432644876632359600762311262143705839700544733323467927069004651317417189984149088063510805429327659305231373737484557224188631574971958384629151976798848164473716375271410908384541180859822777685373414374097932161819650771670536116092735904204650026492294468712082982670583562594498861667005122106902846494461725840274914286476304386176038583941436793914478121268731874312202387848388156255574408829251453861835714128206398709789538105560048345039057365511415261942173093419298391892308093272100925239607012061196773054393502795710688493267674107595541472561377393107877917384410536184165030644082881998703785903204194106430265582056537685806553572676203438802883194510004168273625796155031351930403066187557099859323461450320087135794404099535910396208200141883544501250738999154775802189591877102288418203365668047613270128707751883539064218999029220262634408993907538172091817757435309232378673730890867723756606667756546411313403737144181851419327522813641091685176906874928043403989123346447393567660283548393084224877241381633240954308405783312944549008852581687575139506669541678945019230610727260539827464985309099416370100675744638618958580945119245141921308072561055220833705316910189751351230460981176123301208601884040812101944848956022034386656610340436408761273034516898747712318961319341371247541311407901700326472288140554845330613063068269471032245083605569196511892781083038661010792952154058614442350788457872007038398372350647575607294757725635381851368080891980506515508573433149708342027858489743749201548153049486605830536272475603622723873094975761744169688640473821916829814001606908476785686013996571515287654750072091563773395717099964515948690145357345172118070880569743522247011381592070767438687613483788798550577673207600629434529055154553111785198235516239421729186281297218536209524733451943963154074897459171465505804588056060150709546799182560224653086393634527855066793892084711624897346593243955129325032349620092057379234828748283376073562921928825838364500846997784556235123657652114410053913241817277230690558993014166071933524437977342955789576594571315320963406680207231271148857721201583323876806401492931297901004350176664668864043725541273106754409086006812495110676781641964688415587558866646226802928434376904470982501529396864476126906607743253068187262317175002201424123564109537967713587581985517610523234192446411248046910725368705872929599197354264838550495656840089526343790899578563399363076504167676598878453885324977429536396647402686712902688344288176031672532517049242948748754846362822249937239726287331889868620555755809064869573726308436882913269175121655049542333977449549015720406217884064307658775176668832527486791564243943873097542490692598793776538208483426685627358966321811499714648935411613716973724445462829219522013434167844593102767590463527836485504770458071940045841511861165775856752417904616713393059260824079736156452058891268710258565947599905220475219751222874574746515685329793662803073168353281265019770554848930956145276569154041685895948914716473285885005211464544222171711290034116769240149878631135343155155057584287396327098928268209010189684272902700276667908560040911671243674241587513952321038348887813406383355932330247497774402895514405702191757881309461613099760068452551148963335272401020501383278951049406344246706882078156666187715989213058940316522570831854583737888730741401381569085781885770909949037498273007518146749531529955402424487995973030691335874847742002113630604862052130596814944375199074677961202408407528557115485793837150559931767075467591453902294203038418185389305013324098691759909766896127277657200979724433315930639047704982696477992032453950000679025068492108012929261609295096987512306882001435395338254382866187727184629725644035280905919308574382623555925584472961136717362680169128768156115467344361153692367319137863356435393490588820327799586209795426101944933693054142208276487338908325628467543529001838291507047783028352670537766526617156215970790724233324955749735491318263976755091102519149308263602202759032407532080258909947485134778125089412924712692868925690255179212850113803057234522496605895754944266569419061915571678467032349535319131149294651727778086803016451069616724365601594272944531028785128107876485766894698915922851808466135432514253846065850970793015284775291572159077801373165154021053654584260953962072469319487978401308171029868762511680118692215095711863308223060739667788042638994002718713541722050907316572868251809930421020214137083605248741831804952854292332213492216466600567652879217438867339789064809104336168969023219605408416749344632654804669352299156761259972595423246191587615719955609899013161982782386269772573771139429934526980516535494048127047984180148914838160750189885098994343387987462206685982646429953790457772745576771049268511271174964253188082450513158364046210800268625041991016537354431951586383381417394200649032305623882837846669542155143906277763497528780723108600296702502209822069707036866973796881683507604200769385451130179901217346361765822569518912565777949360315516855458079135873783537123679038566614937094923562436128251577843680130039024731086475963808959428767424283546586355693240631684698513822433047126098596102760513811118698417015046141933710204874278162340704320831985069084888980902391540910561542776559205647302502505619028310733072109300244723540111687690828129062053627753783737630464120464361629952938913247441410375703957862873157617621547383642199576123268249419566726520240164311530994269394040287154737261992092575727401267949736513440027565803638308918631087500484701838800459188990864683164098009934622469976471883386832346998916478097340602262285443773835830733852469797278587539055956917789398174744649665932734823995616513633137578393698790474963302720895046168369409481936999350617942714672856272725684258931285653550378141014662471104939477312789546864509754543674153747621695947756377271236547594131308542380459103076262453012748377871526537823008042943009400885068364073976387731689163478462488273953403114398426939560835064835700887964334252996115040300870998215924515912284191716748092900090023271924526919947546596360561608480634719654867487488568749194136207328933284380431827650517517950559089900901510379025991401497164264859186667293781973627257143538641753234378094728778372104576103664595499523156692120346612285868124218871258099727707033036259538020062043834149522526105600119295021090362575773565993582221690034119775590821879879915261298072546164095095580380231715102835363581278142463012890538845450512227450325872028637650065179783171743732379176475714450798741807042083251330429173528714203292951302058036425481456007671637091441182652445491410038566911535854769859006965777142398063935786616166947362925681030163139880160552372178229680725220130715676869872947885683340386574256684191945498020944718008312912693574375292427124058666084337554370190481073033939850102812641313806141359735424293952374496253494636754553293608866046707058529231948114599825787972710483535818911457607204487269859048013956390767573349540838182771658403306820416075419827595464544773930803396575058734513097379389496546659342422918772018245369296613971840731168779764151358697118981887502787911931440918405037472791760208724499773784928049145829642797101811617183581204329028724777451367205461481254796750661840699254336865556649889071590812891606788023717522710124593894321667834156540170821479989730862845495330241223736990463140003263003157867391828041078405486406854774130370808736965409571497257552933475940771478068346221802791195849193569271764778091615384761462537238710089146937736423721659252556679664054329631252002278895419123773283832937581498692196931884038823437876469278247290928059265267912484850758107390656610472424178884338330302865939094610470136906603923962042459393181960281697873256384495245021082038479965340834675219448432292367300758134418549966387279813117943643906905192081506011501358852345817695384788552190732036586134880973102897540328180564096027122635811872211294273541065922486537102347140894414797900979887379398959425462317904633102132763054123247568040654809564741084369197629904843842235173610037812310482743467172662873986269157775469210022854689088494093989947287323361642386314918721724288617391956945225176918498499984052777478799678142573329898183186786400737587495497176682273838728067808703587351397050561820465336379938703826632057398505860979740305892800553195297714933555526204863615742059443848098545436447233668522269722237504043145937811631327410273396921093907242725994856792232341894738130342557438709000528699567374981513157472179870891705136466197002682180961009645982802309616772618800353009804390941000350835180806676711191454322337309971929412145795397977479153418492684273002944377112092987717415835630446346914320407529304065029598846956243149881922308016406650715870831903492350647637473594286093312325954646964023068972136397512377558044908211920828498839284823797696109484113917273601120753771417343816747726974098688137122747702073748166590662780239466335605912817908058856914086415514452200009247769666022740220617481798900587015898915699673307047363860765267676133685787950756821235479930295931768753241102244448081392623363697530856789205476069543308665561270588374567261455520217326071337127610387954878097551174129635119742563344983716949125628925528364688000190292760999950392711759870638687124819708603718218942939528625970197896387839199625797778544784872824796729853666465580229775654012569172152168155624831193434887511854212333876780124969723681976897092167127483182624820057556315347123808382049152187749262717357457861087296890340132605774470148380324924010917869475098861779998955973164703014647283678259874334185337707252993138631085713752554337901613595296418494274016501928950576461003011982736078385925044614710912009353296562662883468148694759378842141722272395453186317439322389581331218829974988603715115778326288561482019787949461985086310738610183980405244721220316490491206530699598534173559178029069053643852447640824474860623492909487377102386722018777900722172122040872754902491429403639117892138201624168021334471709138964142179013147862665874677537049296706251086397822290704870944850074564953288460698731151645885492302221864458848290788711382596774700077936354995870399073073046002414084760712788863451618090031617967002023044561519506605958469424841195150272815806214351527221010074865931971764307062644327834524650238311322046545933631295814090782213766679701406888156737670380873507058442047158590232311199554314958654098712998325873049143687861970251806018439615160785768196128122419994861532215960637898159836482538033650073249219097291712377071899963040693414914030290776283146981045368088866466028501218042513470808531693416076078694938580217758284291372187576270497072321815640130948914950957937794288080937225045300404457768617045470096500437289782008990585723426882710544188370657700933621151793385987967366165235787869469476648517024585246980950678421182728702216423828002166837077053123557062523519478183774171056405772058268922205633321987064856852292124925911291034558170027181116427909625637252287241445844670295249048430795342726372482898345086145889376750604824918996436354342611581892812142856821037039091593932064954092203193714694730546590530741420644399977923737939112195103669103088038392906723303876048946650970642499043086235069440567668862637804676720481189242087486624062289977660910110405740606554328722026396298761416021666775502692217626402099515693007410356367986148395076957063657682170411372426827976316015623154527885793030690653382774278556461854545681344734261053698131694260554479864094744201304792766176638342212911676802805341710534138403404974737142009124688377421104560339728190838037259908984408812808544730155762759434030873476736621727548709703666868570357531478178873022289170091808795280929423463462391839047677527257605419491694852455988743621617572134278126351432941120707060069993729217150354697818281564339752291983096158818364488862299665490674642221604628120346530548643175192970423364854376289586872967313368784745961186560235948115906582711436729993827354136387613302135294440090259303401583644720620497733822616489397125443874135565985465091624044121251902350669161378696508151664158645059687702144692762115256297111834136002954149718820804047331842014507520346005261769520454097725946176537893868017120530065751873743493562123928747344313966333247546655170499481976208033916843029869004548317678195392264202594942628858488035369107713369544990100285832985640596852202981393004278752285965399526018783756489573915301373065417544522589076443440774914235392386816614465421857875902551545786437018313276869699377612142305576795980838735846266929954094003676485008622028349375820660439502773724321146715568802069597219098675124136450136777474527404534781356698061000581236622548677528317060277436991189772088866891562421263423052647641822702435513219864944353513612065539150333798313771691388884491459188387849086176415002112758304476767345333463716875758646162362377676941561942589376014045390310753796943858150260012311476534635261014564679036626626781391226127529389364993014248383896388200949513568284768679097484274857795346883262942426371224732808918953923493315253160142825278807422777155959402330626693981941614784548455756967114029093846648153071873601826988414753599544217647116898012792707200154079877200555939358595899186825558935939737072480282992010186460718146716600492906782646381549993948484429136466902614584882870397383962152952668986723455327438107930914344481898090014885709017335648818919672539782685196584813741507590403725208370877960545555669927778187263695860485760251548793277736800466389680559248810604495585585666323276125210108824032344154201972356355683174288883216216457250849799907775252213296312673677357274343773201118499782224527024062839290258116492692418104860613839293264481594372320510511387529382467007604644280097743571374721724223432762723992510603758626157758679305087713494598450164057270176910095330570331872897334854813864068439676536820169646068355870476317405352815704212189755606733981917617598778388658853094094168984526279158403150698389714852893071628773182620360392947913653043976214601137628061285730627728350055627501110944529609178361815948698603027923314340786838730203287085018194492619726675404439099132038735179576009129518356144556594204677309351490919412191528411795920497631215837029646400701513966018484637246321550530167583322713147481456649307231621245358254115404657746141529435649366547902393376992694646618430217011000708203627974959671003673202771226661355121866051291062941914755835263553628136660408058791007463116011086221083614003693149171636073591699796174524881172562156184468382337179597456483610736856628984725592589923174787271835426726008676296637880931374342223076272499641818160003910489348087142436324394746236571277500096213412192102599045902376016704685123161469816880714380188456466568050658163121458336938797904238258536655329223654474868798425634402131963805033383378890122065364310095735642643744376878069953483957813931057709711771749796886481607617499442266828223828538383624169924708108334595818589069768877888687007285302368781405044161246343476625979284565721017488096095386247720960245739716456217803294081793500860879073824182048636347130096342418787919112083434014043541555455519728627697509306858614159353274960195101642098804771369128549885044427722290200950764598190527419957579801730170640972193112934210188192512655582200165274619879979498991518832069303113473298448240929895465071500177156582944002290318902574693743939805092786938313019433735385233003066478097800934909994214674767352490548775463611305450484632797768317146824565837400952587438028904709283487270902770059722833077925712648642261488372497607271964114135626770290525978753065166429831472848177811231848846733160558793972958281754215509833115541020152497071592599163321316629822345839159969199953112493431314093271356353098232080060066870462816565141698735974672554054974439437049621769815282552968059725242130254929824524378196121764039248666613866983882993647248021386464333871279601843198042344276333810667046929042883415974221337446115542729428152489355139762140146412213041356673318523949690341310066878036376131428566383402366840599492105102322740807395175901782445682988412372482297889031828104061073093226002298407218999734506910463085263829603165648402286332514985812540006200058708661460532877511094055307213745979435117407625187593405896221110084110904295668069086457890683220992824818862893476082742840640919282813536261205715849422827272067986947096769473297792919879884388213734805237412735629405580497086162031249898215042592912686671932912838470675747285357909505058369039838238408900076237181428348433992782856599494937846061066832636848858456341512103417589628273711329881337427528364400407411946419802108218666400305532765329447743231609977304117757493821305678933229380782473369533074631955584923017173079146788460668344600893269567719116498567323071629230063827117021382208049479143818148487773072148168586332676290753844759696557953607697384909269507567066464669013151476615733931391014821470468459344511005325272141763365768523935132297479169795127178464422000619621294890768415492052096474053660107836721997379300887693408844424199421659585180458683556101983641520945162439046081251154602758722895827187664537005987638766275877532636108220014124358599910787008390487532218743806028123721074520114768848515928491458411238058132403728880353066469886463070912726406914304014693499436035131030349077399809048742911019805207284693161532705829007299896148316486820495313512861106435601005931152412240849502549395123026741669164079422001540012760116780289109496195947040165912488858311673945332685716506491971689948511014113213733928691789825153885997298807590973837725536548557843349371375808288272982487051878688185871347473782933722920322672940296702800612843576400254268876480214585456185212909100620210453471739804137271237592727841599794980433148031378735257969352726407674694313652751125687499342294803596987897444075139472727396200833897666707775158962906759488698448397956127480371399978131962256974152194359554806453898259753105077241864344788274534449163905482704881713482349881447725877186848314926998534686233033158420131124172834309980148680750928223452080043612845809546969286932040312242629705807593942157127383778710701145205235254239209663710194744929460844911149444228661107825609316418945054353842290823755009463883166728666143871233332102393123359431003953416400597854278620330276937479766096003351658187360311534486249701656377049094547377993150195130525339221177406281894033613297792740553961691405143837481094102692505042678330052771586504585909986690589218330564756483815913053169917068899880246164872450270350801547652280463643027596913686021203922175088917413244638399714483112710560928651431355388851518714092202750335123356644217948397582878197749397601146471232547198451052255192092782329566635654835004887179667677689195864405070895861928898572430037223677283947817372649883496887492575616109080507991650173394087321408470135313673311437178006704935160403908548067943753462142971662743413732541173486676376140549668445136246092239866499295325395283693772065964463354889458249585848054215940636606252482212754230244086111929190851366118248809468803432063545344289555531657341775050148355322209198626255002018359481213559364010380613371408884725181713481315408772279614659791533688822938946390576141500226623282946571983101719213053784066836461791472461370565492386485806250231858268290445595371471224232026629399262831568910690400535075691594208811327132114535259777580092614952442842453357196703137354883781510160526571454333816893475652624523004105243919454256560882584168672997287160110943306499125549489758280756239873575031601082324072289668546182993280064415236364984776431822963004679224286963657287989576423308724275687083322697299319857970765311456872431999475259488276720966425984846977599694131433662850169221366627030945400432408313511803409059022629406585216285880649728077592542846335571765463981253057320613317836649921410005685259449948617179034914864210437664318042818759077925290494595584990713314961409757368114712133912976075003657160829641181999375485706527995206219297096116078749264634510960221451129736106581897758496963010427313659979786664526168921134869058033942260798895392166698708423741924616036457306941432749028148144910412641896945842141616656824528787733917616526841663874567849150851291745370169183239931088975135719922816627322837496579596272143599116948846162387978246057805574029798669993629016643478082321658768803811519875548292412831840757570029289952677769256373728421325519447293824134327892307588839523174389446857973692241538339481647632214923957830371013138681350566696527693993346236417270910765164497248566640582847676501389038040492519823716327603424998223215361479247397604876363975240726054772595047015011530223675396882755738973065459491531186566576731575889509567776553969529437603206015316082459581073484020876844357777528570094143350452549094917782123735267055738654382879760080909453848202199454944923839084249442937377937337494426433729995279659349388991431391951633925886237796599322485721066779413563323921900760560658551185640162156302592083749494303445828691814728573918882978071017553248980476850670433376092891520938507262075893670293271347550985004189001413873679945382047667084179226357277956761374188627159351274722587155254798224512614141426884447631208380460377299781111208063175794596650720304491269837386030049893784396154017120259364283632436289482959531814118311480792742948635972244368860940875456192990421459929842199716368342109963959915039076110255131422978026503854789542275757013099279110041537483450633974549153030615054989604419701655157165114746262380734055674953690969192548657242219013044974949909844896918816388203860157126600440954970009367784946704167109190211525101112187586155343566598159868875382969831239047850064691152733009340201621719967109652327790888455501449697170304453138762563362723812104189450641920426602565863613167675151420896068245289025160687053746975709999483650267466453049610211922548887925144909904146263406590376890306294536706817393070461269565627316687883351031884606444664512996510730835934431285149490132656863911344989980634579910142850713578939646931961425319356896767191134078935489907624055050402653060836206500852978343085625834048043082663909468108229760634331118344601862192503633728829699851604491621534552809778598940196109595947550376330891564049383421256041940862321970474939386100178624879281892828673792926539182064180851078152473760915755466628318741680507654956923593038178455912546481370746635036010037876563134541684994405740680951188600764115496253839741719767670021081993192227485467596898807414425908639739784051575846167163738249332999173084890632434627283836515509216848847994292898225515727148390662350662900900985702938440017230046653953142883404930483852862266533297014789884393723688685536782526961784547740882969822938586046139095958896772263421131812604323464234671702070836447837603430045957226909240545123905985554688661496015504252901375438091256500465997360344649010297344576302664326241823744027052288950474186049039380344750731904441276878946140482544667877381518126765741764155134843735955374281972291554924038534718011373023815811708925743564692490827234930404477586707156463522197782656445606873381717489283423954145147049579674624463795267417063698893420335336375834371939017059777209040448235694938152447559333210387787396459936087052264818368634298755780818423856766045429065422689285395190546881411391448118237309489752169959305175327303365272971856819265677890466917845491994180265524516985526404088757677325664681482233121578704476967049604598461336341510293495346182123988764126000027349441024655208173873510122826981907601365585313589489558849636026276467102045967385751545286731842112293622749106951431612101191879804777298563423838395979487475175393496991860179578617273035817579727817346613368853918050314991460134944917758298262989271833651405217652618803702951123442152212438321577670476358368769521638458263133603176465611283964572785356485125211390142438756252836326437616604633391718541109860747966308719282220638147997786481134682909488695805662330259186318264609656804968169092465504972870002929151753978842292287314237622625616997798432902187162973384727182966760845668744650441125625424560341304503313178695940360032419151317323238413105693724212696009195936297427420798425444211942880368394141761040960072389004157827710705213819543608845806557582355996537155779077700687004242214874877116601573676405256683930491547972454461116320498876372293983120370227165179932448950319697356726548659704968914012723640965152455155251237743434038771491575004768673139924083104649728787068689317195451078667184590681362618598970173562576995440661225006933542449825576204674822054282099587946283457189608872039600336629529897895433884859108660289250686971029939259357636966516518841338429224319691741083451199777756130152534452692344438267249295023954418411156536887560579324400877107974090198856946701377247795551163880801126284547620453046548615665744640524583645757166135322612903495330524225314310997560031601118965874551926449215469728861981680646893513585980358020451447716276800568772861214442066352498698863623203123968055605153802927716981617986862857075270064151400181505790103107680384857184604023617709593679067865383044538824815861813014305863511417376446731846010650170155546412531943901149456357417668811368244123094268706231270309339681285815239910661251316442473970143220794866843157442612154036658182388443466673341011542182970852414199449834180919108440090135552759505557460228391963515078928528732266338258742393623117038117199039631473786578790059059660808123876753899525201528459837407218468671189943980626829915861399426557590088787609484520015913763860576588581653989406106458150367295568927567798974998261817584957966389156797056918506907184793453846425516701616354799482945588797036482163229649088779830320297439777357635077593938427752563270446924209190048556827595311738749114705687875613986824949535079060828638497535352285506741219272850310052055686503593187600875347692561621877815235626624828249489150975163521648792260769308051889549421493965446326699137629901332467425519709025183173915810896860654804088276553133155773506594074253446151222701802738970762692794825293273315349362488115779613271171036601176656066017761332958609031297917627579420654963263294052629961784474343874660821612996422897505076917586917653183389862808319878530335526387715278341164450678538666551179966786957660647934383382262582293895791165903477439775621974278643612580148131196817749614473111418154289180984834329846790425310698837720167487593101977460699383174268782590100463324028629639423643868421584182241477873110410668631113634559719118840089087925451185725899838416898852705443078363535199764873858057615530814040856429972529171467439009165298210902197851764907851127202846898136938848137658053664927723718083759958809076623475891043354077031831396082959207839939260003592869690912697307995047359669538760583034221064540703206238406990500967377837591037553122740042859119846350874063571112516418212510526345202826371050547137679640697297512661794762438681274896014505006444445448004893103636592644748260294136938684792626858595324412986049883462425133895093008842231938124622191080377312046891976870289788121184692362897669280245789780877757264944750030194760725422405747994769352317674038745258348258130050330834160071241293239254849273199640362910879776530549838494033551525995728790956784146741698581024555504042249347014472543024111877495753066405249731883780224377954005072559881597614320879611686389780355797770755188347646048852052650804314495859136460923330777921219252294027453708769488237992163452200344541696752325146795594843586655618800847180773317932652463836175364703315885457172800989031450998637315040421608332603465686280761396396524997106762636951420394254976064105707497660008170287877814398056206627303900173144847537933824970256128319443846774214016920477078667383807543671456782683655456999189932719818334251337567579395252600939642774800283496560752836649420103566600943699611381487758710943611344508485642854682478924075794582921322924831240528665148514576839282841172551407392317339031423260467337461348427012395202083625262729299118466176958580845052809618166780669719910869009379781146853956835549587389043334302423186041143846833229985574808491323819491340454981368194934278001242186077450744506998502593355936730577885961873803826243807444435241097639515133742013156539536356285068188844078038106167021283836444242677552971520653167528565472852092716570833947597117488724103949119912481442651039800537506452007785498924290611973909106340684866682112223424071344903945140355638171646031749138851505737481472760419637242924171466297148497871238620123505072878602579221521640092593278714162662430938273278464936395402826504157638636956829166177092973014768311871674217650927663944180818923717120072351530883438476033081128759766622612100124664246607040346046173255836450228369278393560046684739122577601879195871992226830518990688787214940083696335550997400966083006183735348767505730361881563347900632695150222425638064547961648986590954708032135233048480930792990601618977843133079475318512799490073958538214665823416218810731922373058143846732791430607732734723313002717846287350229280688665534564713776034616753997784330911556475358047715815399398631363546283893898683645707993536241225004134411233368078212832241445646252659160093249359201486648173865505051887878972837625032749287344183111410578090539035560925403253256415962762903813090722216815897191709940211344453454049736079248393894113556876210544446409846195763607290838376693896035327471370021233676998265113948061208979837054618172678828548519883220082787499941566010999379612833222055288724678360857782636244472325275365511030695662312439395440505839385568917740021017418855035638254786701891414864069466528090777039778830873342780417252869721638662552964415291743207033116751592929573123380774219431677618289236503809707499990508046701667280466140409972704971484731141985284605271814177226943261982101398164835037965205096317699824427706178193657436161772324927555294442790096542713030207163448562320376895654308208171662976497122265356780179021654012891918702711611771492920369757033095577072839636062857998487180308971910510290293915798741528063955591546028011457279005472852797975554113178168288880977002206865013293887323693185907620051199235327419079992125678401269449885604056554603902080387552691117607451728732969869083226474058230009226502627846101749176120117484060724182646902126589037865749058654239791667695573490070508051744441269649078885159090011138379399049497419556588969352590465469947243053702315357097307424060225806208250968742858773825138628325757049042912459434973586657235377814837272849596514340840189880727871522784564522481475716974928665222879606056415673986101186390761251760798834120073913973452486878613609127775864252699657571233829673457035021067371207064801549828115860791971319510791320576845499356814626694660944531714005712369728116030033799232104226516530229611225665717286869819883044711732672778049144688726157435550726483482065819899871051727357213097323469243011660586507384260130431392916442609631007622142210406394737978431958282331861530648737817014443054861271482346383355035895379990672552572560008705295585336074095423194836161817965751884946514910972511561104508039350300702026783728749348217042213955320623064426593366376359347371934485990620862345466785353221188566171017290902312903363765078488563417369521772874499676783112011108147006328855971903469341918716507838316393206005170889904966210267890731132452764584826522277022224515082959632218330786685749359419556955548848336504046994867662999111891847790417359086512707057612070062974939685064896139319625417140457512168369850642409410040809678682064869808899074182515077477814960889047007292210776997824807468941417525823197070779795433683098537377560767495015578936762935601477045673618747250075895172298001247409035479492354991887306777757452243787586418518610260842311162865798341961282427302358488189825576102061962898903795704425464273540690338628570949803354391357497568863475974604502640761600557503982170233073882595518620819442324453272175871954774913631148936861264950760407312313497917279740851844385626323310611344265154676085255333090687855909036124901101225516347268342144224725703542673001668136219945382150503391721598231291240402539312698706258893574101771908910112269436738220066332335164887161789375309074390583887173045724902599801287018940366025544800241231235582328082508689205675860392673952433321731382300781266401640302673971498077888774072086369606723007708706568761442789054557751794268141858452886244164854168601439782878376252548209671091107970320108849776968931310536526941499343942528437683914020403109692793189264775087273796256409369946721401147012361265138628037224405762060709764927354370157142262937184553527096491228799257084870768291717681600347686307990087665036578365419591855101374792558825348471753180154383175582996194398147837708850214993810574308939372618946305680316948255551034236389027279625532249726548963848986045536530787542373124910010417112304785478498749427765586911639537502228363636213897382113461224540744133606687461387783717225304243182898825613555381603458040501895154914843075867855912464420225252332050530218929252678307628446730817755144802889248673471495422102792307462513562322297162877103391098575751122733136392260413543882440084722655542183841390047597539865842898550092825439136647763824238912020382679963600857888691673465319408292915569228502013586549523773324892753080451786884656254251557278116662045351057503275650965591410287342585704860833539930134498205672635883383319421144856084457161474670498648249525516048689640320653194068222170399612600947884156334688439679637220304940076660873046127685176399107319254184649898275101837109746378588299022583272197519056960180602234327209630866960202635585695400523966423234470224948762039248630004035552897760987592847941501627702664750769862192340546922695234357328647897456118082997552204302103499287820040487497077507715315980295851218313399457136017818244663688246690203659359467121443309569522757174270507636722499777733332807973195151683779451479246655480071644382537466917141780708907527325571519963681772025537084966096342778170718531966086585361731230390240551414672533998135223732125366031182582685413655124342729936169983155859804997231067581683500756558729343569073988273162243578234821296898523689895722880129695419486342895538899338935781574202314687968553033171384936515874212898413311774604214778892444617462839461707139324421140757413124261835281076562636068199213636363082573727178394278114706263828879902311561134743008867900196531321516200493857671576103289512492340041707368279988341471891461882039983340834975317300452451618534265415114172614283367646392054036396509020579427687208181850875517438798236079881640636410407543914516052845301640166946384204200152319571160493781512257967318867199995287075644010014291622292950373785992430238609066415246752754371618673257424465562556152074062215118918846690275807320450739731296810666726264515430008400466821680907152667228732743692738842927333039934793023803915420316267063566306361731096674545877444731668495482481283545359677469171493481525619466804912774585071461137358632048362307637048339170543229968455847430093839594019215054123838174802866627675739422298936345636184000577013305416313896116339198921338860335120402338043169538881359270682528566090643064756512102418329996316843727349474269007568388162785874940118370016422674504919538213667317835010713952807620361224441671924240721656639495014157731443186589638690926082030317832230679929637815099550753824231995225574582439528929046601227644857340323101336667841835405352966324624709514700704556207218651701499903458345368109221988426058510872985121712133284122558745119345759595524922207896457116821280496799833928840923089645566318029453118787686426463081066394673684204154043846046673120470125543123830685945672771406587594813414542789064994025626897099794439790709723867913063959366379302085506235315112620086708301358262506486606219488778347903497285796572489616142319597359182251670820940567813831051460438673089620265531180870729008148169474788993181593635220171374355420675228183263905188235339540672045145021097639328654161147664461786625812623286326617295387405540930353427925074846123940223035455863267145537876958673866746360660264170153076072200366758482259011209920980292758935463472518376095828248670162267381858160666474818543104694469866307685501469859035397854902442208717168820292371936462133498581236882919592525152673534717895332012021769308922513301742760518585027729658484725821366689170917251344544483864699361363825077822836653549662217754723595189435933337189871286798656723378946244499583408070806534916180353444756523225708711659690026348903626923260572175452619214573351743291143035351186123470909202916537264689147456300729046925441183625242730031526975543661435269614526276701848820600352182495580248284220767582261396660876011559731105316329067874510578410481612393242944740575190727817194355546341209981926877699079266784965068808318401520586091192792088236707628602628405734182578403750081591754816715382101227027007274785047496458189680219903726784600763804825497171908050148010595765280857486938586936597529188805920934169032492186116617716138118315302662831709771006665196067195551526742479928234834586381741027810687187324793603672116603489729352283177065192190534448241414312158723586664468559170482164170208832912862147668210991385344628876847593363700391288640704478098305999408343946213750813653597163707728720994582324058894502853925525644026330795670267527072662109588240825798491159644830616055833573842809347468038535526427206413550272823543086878611616048089123261898104588141677506065511308536314471696928041740055212954186595049042847933784754298671660278552617302077376173574870191811839358482221140112009205027675425988545649460438256531964080242112074057925940893013505622654693978126524410895480786517520919281163276400044782575984815090523733534896136886059760630744707520997129783993393820083183382366294107340187846636682228178168825125254581480287704297743738684734332383998571052492134513256838208282311866849773954735637603793380904711865206032776523712948173537839047967086410011032162965563460405220929418403236880423466271843484493442691879793349377181134176488861301279926190989736632230249429912063265851533929544505508508396796321809778420623518975155041489680798475955498715462679226739652598424892258031861987127449160127263062368991316743763543145819576195274280387581410496730707489340073690555244072277462988121342785463601460466557133343702971739666597153325667986948481704680365309161435808204463031463568324380492502742882383874760770498064510454102130171273342824944797327670144666729867557462738091753184829914649217713603697734466118184889082012500829802643841220399715919913595481339077794300200088229802322295606564985300500544294910976093028448586659405100742966057687078896893641504149510218756853710228077151632137912147615819947857602217643621210617459432948211249098470704844728513860724886661289356688821376244242293378468843529646780786665838900112258196465515767088175228807815544173488893085981831711601036358104191492141502380958365156416444066629801582504553550174858882263483731926823512969632539103261166934618805359323900291434140657052877625200649914377004757947190911072311681353616362148852916332235701836537949141974199612308300297348549339594789783981219908547229352932382067839289919616080846848368225512469543002997482325942030383483484848106717759422455009429393242945651346041341142390693233768584172989041119601597168043318181849834999085132821449442467250798103766540944320428803183623371505050821639685641537203666280400162643091255248384205232160154391632471466500006302025184506624462970362139431995534024811612147363486780909485837448213654647112390883589906277832003938840087755878105593643890592993826087298714725094989163245843868348695481824045692886868011974731368473062525973213581585560851246055325312514922889666205025938221610147406763532312257846984534985774632539189520979253200526317292558759070850873875266541944927291731033979428492817018362530892839877748736503939818650113262049725881918874128551743023271306082304177581353051836975326076125512733030155935920014158300287458034524296145817082818239831122487926401574544893664013927490143375541653543341535382238677259830110563412236839584298575440549116227770463596347300344333630575341532453014275093423251684466846905917824055164244568340599538788001868700191953867550758033750889393147952453552447177059831062308569129192165773216712467649142393254541520482139221334121100628227613961889891411600934983553734580648042353582729006618641233302401181028444051059313706113236213788499915193360613532302749345318586550974601689809108238173938541672870680755718607579823351568186701207130027727419669235376671284272754858331127889118053418788218502712019579224428406173734938349381309383769876933280131692003081513363702887277875919128278839447933479236026996521553944823476963758228391505330298882598068852678700344865869376801645061226801307087133012220100697421784510759251454928368514700483601458316024247196617462060992786616742966921959917790763884682482650940798527193780917170120335829754505647803451667041312830083518551402202012642646461749656211423122474496319813786969037088870912029776575763656892834192962274748187001794808929222130635484467904834287031594576245044876895376123610663520092188549034430318971715380203665264126771390552513966955727109735111566505359974362845652044365328918215690941735916431648664588284221429803053206182316932571812428007211199486095793596544811533245763663305880375722689378623515686533004847760445315736406733571525300059230481787448886797668996691969916179583446254576688774884727426945729235327052218613184810203771703069824522116911322396177046757918468904048963159244810489771520766086789180380806777808699136873694843796818787234567254319500758617757543099461612768890627530985612888241640568709934095289000944600998035879660050058644368657486369708648229522017089037455150179426347080656116639944857115451996912011287099646610799973922183830301661281858809133889016789427667644481692852730166440198936128108756671433347557594360597949310378170712069647157538263249541273384434138203672989458171011307285787624678173609790754224080187782270756067159524501381324089166653680913356356413447266823233123801138316986727589145156183302205683613289371644917301431019707088458873709146347611023031832330979195247262127834335616560522102861669000861245827087497971814512707488583238547788696692001927306823986565231589172162445896382201676838434757955102572814061979736253305518775506764933367802741787203002550208807017525408309340575523895472055865469566979061602461178066661602620483801720326475209683538807224098007778287578786718566638682729209744449894797492050278181375966114005525701508153243706768018484105556363406034586329592604017180136022025865355830194704172161994272636221131353254199488805522594943328629082816390356505671453887017636550911478105136780145597342660882182989595564669361102704456892162950394135225757593753563769068875146181737862183148394976824873406440122712452716282676031675718355602144123840789019314606839231638617140612542393120961309605787749652274818059217392383664461477002702479060901270434021292063323461283863652224575175868490026215827370752611452772109776240401946345412238351841825830185822381213158728647556828732719686884740150546176447978611990831843938273443551387400108456060617133385434397455787123126159629351734100383780651059697760104945118363464294671407646625145484262329439364276457766993033949823069544472291799513860347803814036941986236633089031203359069004151792851234964710428490307283666843746497194682484516019748841326411980821631035717530211441073837406387933616613341880631528031405638420100143813225013074377201554088427691528047311369900477502928225007066942081347915996224321367045207130419929712451693878759704683619527019548535926876026811499087481715161404765154611025936895273335216724075162803687307251965631273304798249515748008612667903145422543494062844552166962329778553465331175635200237665391782949462561460277335882310307819824506511013922456342256143369684303977502077520591098358848396902663459212496465275504496692089695051194001862253450495510060883907233787418328733065114704460492210005635853665069382824055870896714987949989617364675521473962095703744239667692656152227001585643130840278311756656812061732683000235947975256887544320783160825689882065676139262081560220256131738642299692291696556605470063190654555485662748034207155755656385354426254605514396161948397275194398640785485780418991763963598583689030340107205905546903839398874520870802934973427236359604640891995219961516350927037737563532543684875366347932707953118066112088460806629334933181769100477567238134110337140070883256162507836250149524962390810875155375521291056496946016646464510201938062561610436780159417608178724023118184163302416494440637000987663172378207782053660510847713010451945308412806392707302834759810902295135090748732447994141003259877231518539583156556050051656093472601192781530553077442740487944222160924075101982299395107645143635398063630294772087188415589577254965472809009336194409397117010960838052248651061523523619844697001006901295223167700210418985393708180123824493865612262065036302500597207264964462521185607390216518074555042415399854716114892910770875465470460426104025590047099076177198726675967472566827719785992663809279424109473913599103421464310594131050698559990408417105621259134097549732502387591284420395897702090277341870223542961482500966409303686428792418341977059215597073794463127313389998020552578494812682163463214590434022706698387828702848433778888165136728420897146707292001033927883127336146095978644511829650606110632257921212753642216847194948426447715829932785260096997331561619577924431054177144844053770009343369464972156801974424731894115996286659199554696333732697523327361795588717906640457219515864432730295048057728424927568432668582159839883039632154980051287224861807005948214674020539018935790434634470587828245643499423846574745416597197704498709067276218949298432618824835579287891932106225730166273810466013909150170683075504217810308633723367063483130255541908739602043264159785760657522249336652957255769012400923123495212083471702732159806446982754170220836496496146473420468290168783501634812259862992328525660376315943747790695669030669473841949736322354299889757711073817034394551377977512177661841371622562201790479539143883380763123747899066990694360697267652452034092377632094691380009952093938187867621017345913534468111712661330902032655937470316078736951795287733621694340417695535799016221523926519577268636986720326532632907950100792561952230588169739021387010041916297995540934630794147596299175885925711302379708280380204771918903296317432302875223616352163317736538314085584900110284782104285019346120508362696393678083625747796034708366408403016268908716439433051980213610770865286457904349892711330291159455411077049950472848372328236423264497625717705692497017706788449693091325061704107811575493507550330698851828492089955331221857165766390397991418074338878761327350949557482723146827546158197143332897492023056011503249685709681051321262346975096260733696345080124413289014688061487185625122736162783293024785086258347347929983593741101371192107328535023555353288587037786712805727936564334695813428827534273989876747068872055119674517875988789061876074925332796186962392880874066917884399390479948113147677702244622660187383901454716797063253956837594995102300129400595766002218403022602482201437292694575103214795824709124288246512097008470834059058334046550055633620610553308316247250958240129811812536630583639716710090060233830851247945723354262539041555027823436755018618780565706204741016877908967732090013348345888651452714139988205973860097528168304554216094534772702360767885273984206926474865171658830491981500358336270486811116773568899379078042510843448301903146297603063040555535406161260131823210940544445719269603815440092671021821504883961500794254749940006834716841397437342012390410977222954414701526841825420759426552651676192184081013841621438783653692582648184594277903153251882698586090033507722693488101470086244219718586450721598545055770300534076201996547422201994246441515648081587372732433647133628311473221985512041574226190990539063464381274437620582182663136032205678925859014035471525323947220529415528841423008082191050141394901485184133942489829572112108940712492955169859060847362785137458977464374597603190485300125607145183197146740348544597197353869696744245794509978544317456154360352315387543111871032989514662583150291419964678733872341743062113169552081026128251765856685993688577165467319882135921125666073487787249604916475973635913574533131434632278940697798636055976718136952768277027681924595650241273761664155048466426640165135343502923789237237949696031628998961392226465746359295068134118534143021281682514861518017170513401789527532148130744435826379607564446199161276884186988829444087108595296235547518223892639875800228655424414630078095583912825570721540568054493543268992558315038385844751786014186555426188612613852768319695938211598782364674012194603958479761174685412316298716339162288421985723337902566737614118172306781670836395479818418274610133782045688764511705366854532806815803450588672895851442807145356031663700607269565636734511850461876429417703452763493312196916675001298794605977133776100198361376419585383754544712102284467320356620124542295535442906466271774606331277047897814548692227259388354066188600926276486093568134901816906569547671092551504647608605128273814779016303763209554140391655888131789726930850764383117895064080444647370318239578371447364252488105767225115273736672107700521530984335618344878309078657634468529318174416985836611693438470385557539726916351383379971100865411893230887985446906678921250580186298296936654492693437484122702646912102499088301198482437287587124742969343801536424922831432242549038522017893585379949883140553809659149113913399067076637522431488647972350004719874513850048480685826668414447894546005057173328434391381639472921790432943882041411618699869810363120717857066741925051926324301908509016545450129493564080989517158980408201743169321983042740556115405255725801277922124226495429553909369112835596427046562773475846850642787775559400195327441338503132042492843560091437794819112605264523341066893174956176555842958667579798043884397769304451638770836802188778413962439248075544750202828296748783602251282590749977991048029116974521119416433438109901546980825117438924243773443066547640156389074510122781810126494780587813513296761057542493144462531750967295642986403949860250422698091417758028801124468666044769891915427938907089344691657490218414914118099863576335880875416338399673778418500046538720832944875762631953294097232115850139119167251375077843570207187572384992629021189601577791392682532984627055559230024234596809212249989813589499136909977428555296146882188735806487140330141045083046943917989880348022824730688269433419580000447945927685480111245934205940737663213359528442725759465517952809002314309339964271525896651162459585402632818958366176509056358185896881867912347113656320735221191727818081543539952688447390351372342915643171912790267908124097325522597504509145371921100675321840676143930870789227200028028982476412959942731323647290894680030975655545273005366232664666077960589010014499493646389859999680429313289086981945313566867389334720330664305016791329448394318145380940749296132385037232012416040809571983164043869827851296672249005100983567559732301050026581802599595311769083371232392236935499061972339466347529929658205632728980634421256969762982881759546502663780469972577638337798567298969634143213277614899365246509192607576999462090198565840503961866501084574288883095987356015586405071861334440383200919140436313063420927953149857903405227866154121319374109776541958708374327028685724170091240522599766527850645770855671681089632102429896502719426152298040848496972338059232448678440977532642313800005432264687907352408385881540664314019953289208733739047423791887761192339496303247389181197833474051022966241956726835720403829335977057983616888632709035341821716960255833439012975370356333374536835440482393015592720292967069860890096221069000773427719373663222010194444274411936843412937838172822811507519829072707303511347311062612425458388180210311604214467894930892770476576847760272323059884622862823103222372152724196243291866595561460874893346076120221669443539037952614170635645856665443059453113864625421253539438340814701568752625184641577986587337015838849405812597896484125296560758095183751982136103447624383455220294999281009770766903677183534806143010059396543835343178719176761397154908001713579909759372825189355708196055554416730525748068537167058647796051522522399778263761618237778495758756068179719779783783168208880644183228486358671840747719522418379671826410472963547385318829197413258478156362797026319235562923052860849792871782118856364006006195857157477780283044062632437660654757248556002960861528557353267850843193351959672494838657842052411694014807636447587096791336219401548605875956692344094035030655549771780395485037236632022661305260627112887785219656811696836224124243444441457703425453078661068968525620376271461606363568006197608483472990917279340838843675336020461005807228391444179787172831784627976693988031916039948235530493124054796202661460415068258689583197235604345897821761647976657145166694410491390712581020032876765118135252887998402866282326269024096140539346246743508302038913176633620112867073870788957851357028154829480073473957437190460087657808743911001020102168898121444407407254771033412804374457303737385866967580272492429230872135010424740516157506753990060079275839842919883630442104860283746315450353945202773539114111190194024702707501184485072871797891812211785315011324664069011721529540205961229377758210360043515229416861744426591166883981605777183733941343715266518116608716578135427022214969372013571732445088542130961168397536221293252609575828448183479851508391560645646187328557826878079569693365532922468135572516154856489471296654686050459005048256181321524266864690852758851771187682744551424866014569139433657486054395193818968447464229348637790663095543136653237995803956852543976064063647417635975410387730949863270524810728834989797020380660033533921649467817560837897290946433654886438660485247802571823074987463753766545863743216806473381419853302711752503378557697935851124517423862871472800636651196328204232728029091717568208705042276490098147506674811660548461033576678182357542422187400545888004804838385297321254058957859273563247045764690696186158492859582763418191551367340841462041133140458472140223378424987530297603135009234797383521336368376934746456172632099241988215238996646138454710727139398853170283593182711977579135493730487092542630499012230629404494419928399960072594869465665003163836396696002667780114076571302860796551553224562266063870638943215658355459988368987600332448920855254517465897782251669646121077293705286823959660662654791709703780115153932050097659658555156538113530993513229046061831575456101771088677664829862629490550904525401158515321906824597385235911698296046994868865487685149526288765609751837878085287998689794416194627146988541021323783207019968209648365560202805312925639328545974339723927424030737056419108014465344449346174547379934622591778453019104752510824736443665745952249370775687470127559595889350773087035185347494849206407315870326525367234328579137060511991465758856919953732723445050049646954379905208996969003397819341106762196274105669566411819029647892799727059573580600060377307876262111887626861312132082805194601142237236000200193928280069621504889780071004926131103788031066410817886105820282847679193083145439973900466643057274532214506559594639747390029160188414747365204471989355820531610826610988667953217964285959271137097897242961007635403274172475685340455407540991489497640195298282633001071791776251050162720653002177540105522999342377049905454855550065672959080351290463421034184284698843578998488899936548295701795788730681417880369374070969098933553844643981371572352313653542614794042407573225949942599129556713539566965842076997871175957092293454058713318944413009259019702490474438527750471545509990911807210625215816090897009197353964528688076841951857333896533432284175466938828270635766450105830503966129318234030458699667460464272756710830028787850773876185174719501909344989943370238192199339245556919728082802828257506958440996910840162207548528015220143365462755854521062337544361994697334002982348138492220441845307797377236047535344188795254667216598775167390176487807819627776715848495123974544010289166768275074544037697836197453786013389329296578510316680205748158087854630652294667724579453546786576861012352222782547803998140751455923247033325280624305957631200513790194140390205699695891730269132574476012401818273722534703612775352091217640293924081549690991474456673994765403446366731935062995081921592414844689360610889911491952875541653534712599828393553313700143247335434826511544877517048710476916315541855465403866800863890234388852607157261026208164733332281795229434071982448401644017113874501194419861765957593550312082964785384626830330968666419867113411115327751146818769986612969466759476995928422280972769245557191399625552417505042075998558580391705784303640146500200161705940804658797993085319201171477117265873930322013045538499672317762066569926958847249158666186353080177709905361777437139451942521967640101474627729264375506468541647257616925072641583135131602372330403219354812639052974428687250380224099134002126171985026902032817626972473788814806014445254373645219839843921738229769523621238250692421818179409864413543296362910939450320297739154022430200143141752306052704366032929076304488328498750510334998351191932277833030056330069161343597181351641886932635389063978907511071032073314849020561783635826830260874946801843901757890858667265333122900771958114142569019233836770858543909734542859028279551954547126491373425485324447382857022039387432580871488642498046711352129599964194952206366712082367266211236323564584692978770815359365814738549131117822291644310174321412728080437544073654707497968053931386611206490998491536262805266436948575088466819480244104258356853198167363489570088274901367347104093794137970954362111718541748263045865019448799773911169601959962377162962202415308804763194425245519793330124203158494829321644208416081306787726021918286889021055664352949675837809257580884432008479590651095770567658189156823788403164709889466869815143058279390627081497997735777183982687960540240157434685978016735734541211397130573993094149135335334550090068979105850273881930805117480667299543523335429333231855755098378477445548911936284462972046856762482355389937434654602206102229359206627512663730531641392388215105303505854775312452044138123971327484751642026165247908070201781675422603601413161377598185981345731856861460561276955463156934075328577913989215273492111493261665439343771062598008377494409941323246662096733433390257638411112934857856165827055661660638615950650681140298891845599121506048616541600498073635975275244273041539122379552713851706238711025744227573869624933316744780436360000065933707191544044548450309356631899658542101877674346749783821002235057760254936041423890161587419423529013607263630014410435190862043872202814788448702639753556083050546944328386845315114818121534448523789660979401360752167095612972266171691793373031067451538612295676182674420336070021120532108896428099528861079536083592925867601828753583709842719203885306481124241527952113291459337873148891964561257366174073249888911522108687955463754541931391675264643049264896357654608483729966482117527457350050366547706355768115870674774732061606081637135447514337724181517468114556348043654736351332338572991051204578376509782966801414132131153667511470954910033506739618449520285749720764957363742786782611640491668601984952483772434188549671250361496232167454883885583538884229869686405067909473744894647632928653978933232323781059633464679236882775713853317947265044356803320330722865154361074874108077378236048271648677663918039616046560616224779808601701788825399388725803508220790169580957550937216278117202736660741216331804096508014153634074419966170063863202435450036949422385022545163920585188394432914954313273044487643634873453932926486030772661623945644816667632604474982800127255430728706702909713100409993619836610112629530506541980289095167503562258876031339789539545602196370777038042046668839047563739845686739096737671014936095499568124191967000507457071298276681758049064402968836802158775943680785369987888260006351112520311590222236243183054513311307409790923459100384505610397770807797131160578956076100802490320381692806239954003493648038049007205107356139221345505074435638677235643285857938159294827620426266481918528478647009701675862125246962751268991425004391021756695238236993768717330580617048487891833994908701704642857639229292451613134793351819821513956033812651289448112942889193156601349490624837666315534149099215412465239947860674514226834762734791353928586517879491500930478800105993244300150356123910575137777804465893723196886891402879329050512755198237018574668423850982392864660707465263501042665143837493027569262788223039123448441731291644057192340748013110911962787641871707985375257385036172355354357886048126126249708334331755668212875113754304979858001234329679573998087751311047033778417591103810525537122128572314389706910760948402031646349694669125846649011692199840513695691782933047117137176485460950288539025053998159038717253496605841404160660426677315712414722561544596492006018840939107309773822773508219861591940700356582799142041911240008049397595603993127730286928768324963966760624192444349517007362945009506314602018869932375770137043021081767549135094193416653054467856195472963857980294544919174222913557527042035146572429668445880111232255474187793441938788865793044892190878778245475155361955059240507773708625733965287485230475553971750702876293553521534979213388931213927282507668671592088460135275394793189469259896710197764699163223926089335181389666499704194201940652937673639974683004814247012829811071379610954028537151642564597716117341442204667669059792219802301743021557856984704814586342439909654941909733470556787245330651456263445584200825540318168099451481782806667987115173824019828956147498907650939566996329194053147119870677906643802957855455313801445750572495325585271889096285408042842856240548991807936507644372750722606698117194902031273245810586581310462354156200717596470472527242943280798133354110214306852541813655013315446826705346052472202012193639466134125733622936903553372784504251911394946009270158624911459450563456302600463283651572290425251569822208997397968406639779738554346765273052698097246917076099066430213047650561864403177029490927424738938842553810496997746550434627170302287595291101980977950474623091580746131923599320066031833350286782202839776047717358655805426994776113056955533722608363279324595045942535073169006312750676663448854783700463773470929804301579201571724865516557828267996328013217231426508815924036063404437885468640978298345398443116214975862724371621834426023695945368197605767666952337523075226172762306003653702109885842686098500941003922847904951912724741755176986677014599553587402697733027192209001968771702966867463202179431350138871809167513102429773189219533852113769156225169123951171864034738992337878996688781842744693302007251192922953816389685611030478118755378529615085492877017676680861846322822132330388923658411415415916159226850191629184376054351681171659132963238558548307487210977632367754830838398798784622104955939944211218249364658701049467155089447774764883295802720979775751896595385896240593163354951450676023026716035447660794725145275321345845059280530266410733866867561842947974595820387416324597567738864188815797267399632195609587119175774075154571324811206041430149511086780017605669685993212379401781909050052989555453268468801025653819289323871632484102170819986165399050039780617442019949983723178690733531027638961222445157947638339269997558957383139201140422988696360005171732796856084342995505532033926124872735366735194738013715081344304554547770156847312143725915432893176288014963409497726937521019614893776804568944956550057624339217529058364850370912439751870802025711361829415685090852583720169399042688701709578102527367822084247147759772425544417343329450790606180703018917514379706840619064232223010685095930917065947956011815647344975232382960630817502166671513435092249463476755227370634542928553402348741444647111306955566577271774743028814232770644399457006868613246294453226202960188892405674900507137063603572798314595959454858127083498023088434372091760196677101564430318937665362745696180106246192577200242818149299319372138962319776751195682116063365576132459715374698256400070238970325140003689944436251668956985295859179701084756114090080927435484231255512228114483597255633433960633619495254758656811005693435845610669740270535376873070737453755746272787560306667453688006881940349208728012641541605533550733689682820137239822020552618435484746424302942161766025140686318666969118158121990251204636414514745677339094601319522768681336474478430882173442435675981689339298426380441599824903753405826580223593191561651793689617814929111358737647077566168387256032270994853718037064879395559300979369565455610620138593644063919595311701725688149910801520031630938530978422204366210519601778462333250896708731193983660307169334304208203369787608097003963608044953122482030874229962484656443880695462447817758883372842013632500749107954266029014165135679060510635474768657401715667010549249612203236284744786440354831073398401699848905435165595953484616666135101687390253328431335310080898676285692183450298982244718763016507311726312179516594997161562559989033536990563549707686227046060205852326212010955988300708026617848736732832158223049667385306888867584317756655122631860099346184753605253097967893840667911706407661979049294910198054263551469904725529099842260122905650659686583347668476221821687169382905336818938966176184402783750942121563094585487451229784124070986248394065954308793745076437026391945222725069658936937309901820638267378363968922857097317997450530365030350585500744528103645217144864180862441218301733921982316127872578222106695765249447015476949486583363658938816101261931376603884908310094071574002563288479662768397793301694880228990403239690938381795200923712034404537704397375524983284464689448873485911092293562832100734827919306783803183407114328032040057970320917677377061442677966994344532265084068754642245406781418445683243155554151103133132721539377630461293074081091384645950301624024048808596819161754191967479104980486900240261093310135342215826463425046152816022279583656765579333319955742885560167528623402663706398126074015783585877159706521332950579519165902405856352827605820916315153553576806892374368213771002255881056224561352966040624535928591145633660039831253411089135054510036762001826648180079826819456734849099024323161136490146212462754601901012930549138276612841518238621139650510277534353901644248193985979632099435011977171957474741912101578878084010693019571893130815843481846732579654799102149212128860966994939563533229612633051387839563587849597806702041331826024938485533796981165126918161907816885107022338210874303815940590486014497031513630676825971106791533988011959227452611722371540701051681702649384172849076263309517705200642067530002365245312426267529532848031920756753805132693877886261485138198604984480839511184156794178579000247893308134598889348500961784028024554913991150819519807748732047338557533795976962035856844706877712735065017599732592601900396469984484153519647807180130881288101691935010734771711357387723935408761929588983118371980633878117357831895671643151012321692681608940700592161644167485204197523300630237444224128899014522462536521354558699833781456666873739344503500749470154399161079833000707167928078944925007218369429011926504503506130093024263843085065124580880578906195612101473318765587519781428393067524559758885375468657365515776572582880487370322924271072020661040501038053805834685516790963503350885898091377274262909908997368218563968844517324293052549309852862568994349651915514860637966271642141966619257657550975128109718881305150758253589471572291687853873435716974138079302384898923644626596653971796297276987847588263192686496983042064414947882798826712506881491541573723836877626336046865953292741067855321507443548832785128515350451818500470901345129406545761521123602301605493119096584562892577641398817850301045708816579101318068370043326150944732397175986048018489686012787260778428540239798673222572069233632040137749168751432909468522107838286095343271795330581640763180070520289023717747119703953509782757621541743659305591450625968094352248706128572682621128914284222655089593918897642002433896618418275707962666318424463530396149024901249773549819004996967745402568031180132870423907404946524056651451936673165192365630173266811955994309855815550038276511129999015529934448439379673055166724800085847591508282044867459575045510855142755395031095037103878533058052169702592007773129793616571499173801754823576957375071681130433184392586680312664344827348089883193669160101399295933600757624150490779385504961215550351650688734313713341715702511989111837478571385803963771694355400122441202172474561303158961385770096253161754758713763965366773883396639666766479154661961808919016046996595805030692960490195788965801136461339383163807357202148826579615479091147542765935770616760552205930671728240328630757208270513164317013384295525296399650145575882222955504303059442462103242602085282758104148110781535324980018687056868071612419976233563020237066126087565652024265578920080637270684534824207038952943730867828576080092600385272690512416360664959100967815613706871546130024657640344780158389011600982142829750454611426017383271314402863859787634777047939339511028534751423548072541750111464595892329771160157185611665329392134838037142322844904480867028598937223900963668689275781886055714484524204000007425559824196773825274835531655377860682021488283576496100118943545308224456536447855355441115874206103063304891108397399612932934634815958611337419150188090126806162327805140564299502423717205534275093969782906931174579364198480758351717765375400215964844546912462500683616581545095189214883672048081204055679862426156003535303738987145430055870010571678193047638161525754544035636882081680730176097722831727176825866011185925949968658386029724689506583712398020603848926049219311822885456040980219584118564223239617689006081938768543519987916557582084463914383201715127670514730181413556147665560486601704697345133044779656645409452769487664542057338451065734154758889310017048469451991429111235761326949594002434112051117016750922870969321339328738452266588059724969598963351395695626074650137661486540384183174202901020151385086577051523841516718443718609434714926749064548703075858551958884994427200700344968035077080211210541365501302793205835512618447731052215591961363708634607752946893393418554728103238796399534484221004920403631371442452643304596307415622877325327050080225931526077877262322270636233211963897100258370361943057624383062502217089435609627455453567606652637376692615480645177250538079350093734793880527761359848820714222619540686967485016638179233924108712623749100761399702268272345684220130273270157460876923368172954272323553800635076800258673399961827521815526208941876382344907879729232162329571263557251469826493869814104294548189657694453457130883630702866613834552761325036957149660983933089377027700769924055282843739963523476214572142188783093895521996163036551268861249711394195639811875223188189310749726642965344535499463269070886091654024189089850283217330723157566679514934513006851404224954396517967121654120664586422243349744216323193009787654246129573470700107077581745283942509704007612209136916741416092784688491970114335931456858362441709603323828681344067660441768316171832267861810136470600453752844105151143433576740004912937214736612222200001346186943360673594827764828863574552875956694855253882754467511764877474763947515028563219109424434661151056322930168361435757651708317712442755651723599279396882881113071201856390289778193767423098104162671237862249806858609016306086066704121413032609430944835528390870303969773384285801335105329087679853668595229547327685913459974895948458186749116190181136037271322389583829034638834882844532206695116283560867708646739163429718433515515851374105782380625357999499011345522900943916916828044331430812153428280784647331420949678357789346876672322126483224193315485513773659493437388092113878799684050170917649873910751220278412919805495741714456210973525710105671424036987388335797092895979725757415610935068748284540091559083723514029724453725667764236303842421205484918539205942898573215852035933093698004737473220284508044854395130546007123714642724425206043647798075459124953177220617985670997964835312524165082107069790484264173886185409851888366808924042176028360661253747361434311751322175173734703638253715846457994472850558005279834987876721732657224422851610148990737412407006606088951338356224334750363342396731469861945430789179724154122991403644940067611951337391578897465036064416811003445690886083696553450893620631746226330006321195927660255542408050679737005340246408777509286220292813876876592009387670243687663335474240472066889315276527970886122508539483815317984628079108727598381625044024888325560935267733127678080031315933207051643692068432939456537730772105246146924909821386416531721420388871253363755987427258628291134898287507284229418824095724645874713203486318049620390692012986266971822810726022176646511621823130943000503239212222439829772379326564644681694806912557321188856539780854641791154356216763016149870288931646250233523919241443991796224777645277550681492433378438701295645146749566710513101346927395297956098161699543990519265613243591926790512451195648948148122072866772938889105945760941757761391717470840261970862568974756073996214533648731946557471683876225976524508692831972118280863628974373467002747167858842475664457103266760707177400533106720972993823153133215951212197708799906442290836224126457379980075435237713539566063281233368951264645212836153707028687123061912574589988840362868701805123218885976574372724796369491814888351819982819611121847481518394926630013425575361785636021961419879626451755263894305615412172394159754896388925874931783580556928213635027279731338998622606945693145142504312342241479964430985446474820360590089166662687625718729344468353521052545671852980349621320957767915234104876586187804694929092612078187124841022122533203150316942355723609094942383359204348707279538998306241074855926739968227150767398706333017140477867004706671980267933392131317706831615456539117365664791583062681274875656162209554071378536466137127378817536861252200944149998843052466779363554701219694603731342639014337489068751239613233122259809659204892887277527280309065906544566349871367521698448953964221584487128114042886028165974815070255027737090003708066471714553220124443949639015490919689818892015248945217456832049402480462233652423325515342651224665680575109060504248651689632999502640496574272005196659362814811721449723022676969235458255239474038491594939626319035624504636102977821256490246387718461449040972079097256437347048992060302615691740774773075895535447265907409234426568332515641840769853873254840548323963297918820118083859031948063714667088275453764107655538783280351711865804086234657617120980483609437265387014528162717105262311221796708862026862026513767506888211117646318822469487712834627901217964156758752442226473973712004110237726745276304617928800456720772646482594554825757230829109249984776478407747092239568659030196647075966778615504549161618020828415779963149415722583261374539351952406579076460216678317093498951545759137833041961987208149321590123831152805726198092937241752789636537083559695910681705428539719269534975696921946475998557184815552234880137012151812177025420654850260217919565194178733711086428933228132477965573349511683281235892579197525462062779415944869115623051287895731719373977121388681469355874674208584677431693666578372250480764869247341361701516738061838342653737443637535417459123633669612434820134200954604599911622622585563271610482628765677499291600897169535946147448382994532714891154683778248846778461468950432276662027453219573944806738304110848655144770540264915636470457735714642067639706047792418941946726595281755738587882898990375364646262645141323035361889468713721361758701041847455471117590107687927017498796997999985213698248414741925664189747509861041870915233923988425932595499056942766294060667209211685564747584082164283567690516998013854248470992453179674125931875408890942691832156541608458500782279309316380897078625448605736938077902102074095964757893312046547343455348545125239492174412656639155944916828165807305352479414654752404146046775235322163623893349601822468619590182213290210760506675774186790001770676788339876580722362224067963110657436451771969308926215895017727472493035066366018772984685814691228098486842462477275649218517383812211672564603697397315431839254118929412247084918828225515451832441716972162150428443772080619324849018338645737288433358622006386891203856675421008194960829121355885193680602694701188587002326954302189746381051956409409906864862107149889576461259537827280993961204546828498276207042513973376754364320673420421764651443177101510340616144613233687336936046851363372453239673435075501876762549870156794529204636116031526456382960584923750199888021842074094011573721302293507372184450735929619173809838337437778300226949383616429210572737951757537343639021227504861091731593706460022003216190400312678607694260552639570166200304735683048271123863344564150401287493632796253133181073830761176715190681370219706485195892152238181081881783511613783461485291655422361607991149080725643449105027191102816174126623536639678475723815074726205586990467232239259768456529942700699529009561228065461926563060709525310862639630834991513057342331790173125913249922308831703467808860864945199729579294042009277547649824711594824701380260971297808150135793257293906455360479097217930950681361689359992893126421154447887935387850239040514351144477728922057170036558110295705295609325106651892353165906605215748610225256161514036394565757585300064685379188711633549826140537089404643984786920984607876039039744922078443721237881288635452795305894682022683933872974468288347657135172630223186719133859940933324609522969104997860883942958816473382067824529294797496669376655493742525385079451095094244792715852812233539527829827200200978005278636084159718506913448705379082427421241080970798205906297316930408058442837188531830200762663807646840420305342812349442670613709403051800692188484585556328966454683310145540477267447821890139536526399265943058587661193035722922996957639431645263911355703234716964607499542782378489962181043198112284142248113134899815882926997804797794095743577203625851169140557169354462368912472540530258643500114245898472205805386548715920546708562673901479246240306089831923032821286616512967877825054029449615976717340231010508667945692569274205280706143990377094124197828167776137774329591827919236256212177289731387403251015489651859811847005705313945972858947012618875469616640669230402694194848558756868133628695187778012240853926605488727470389815969238030018349320132438615866970696935360829181398625160098225719026486942754588208302164605466027423452216384563693166207642065227015287007821629298459028657222239769790572521707786921515120989271583828551745380812714625923444759381019720172904444473156817938625097177255893470001441165430285575450559648605682851064861922862927609321564994840559346783808500332249069255413909519470580952777220065148195410678832413061535830393941304178208226590456993089451641951255609934736569548799399498640663154591060482997640285002062276455596834077967758142861258580203795479821301289865466383526282021598731534026804919178394039195974232702559776661376255058919932446590817420041544123802127223100554240982209049465942744967530718917149389805493647408440180378058721521999406948638929720470691576819036174408228532809146849455452879715635969031963491990631742915894761877020834562241218786045007345275196040245089118214706936028458243622400479697689375232058044155894939666999377323724150018777978903033452983466055153577631916324563992393562331300751427158302996108878508024561467057595904095608737717326386392718217314075321876644227311946518158039197792178978272847816139718788138043812971832241078622504530555223996273429644095692828006742777322781549331126289518409709887706138678760145723863954324582731851836283947254132870693518468241852294059971530915550578040853486132150835101519825913188323121071964124996699287025629031157146724328024115673965156072846123561063609239206700568872452821493335156576538460403477844921900584118409697081722334163161056339634318309147453394522283993070975715913136803586204987458114805950591423906782686036218581115608591899671972644764873033066992462749496305178152595878381332066486719919052636761613881927345844910211621972596731682217581239794946178260548765269047804450545197986061317704695036352213738941516119796209686653580391518088696261427021373135769377048406638859385903775701416331800166292408560644389594057655281603127943587097959682686315179231214441391878352912550607603563831189894648432466298656598155859103869872202151973563280917655618109322914825553600526310834758742576050601734230375318560192598899536781561785282427594017931506897338079609781909784703835691642789265609302802429015509136754079313797071284214058049730881313160722644403378463786564428650434242128951878606817787354531558450321937777999331860350060478585318306823504368447688450901661390837246174269952341401126816443964645465369241000883029483058523769087374419122568066353577665415232052629896666646100205338344448868485576470756439258003021370399915424880828199104808673146084591678926725652765913743122483656797382053037222488672712511429978549060810439787310808879033582602986708963816068831264315774881976603311983097946397427772492265954137794049588062566834691568020157309229089936447670123402913703196939430463584449871515438519999684408421254476599022405193986749262614439421664867680864825768810968417291077078116276494317296793344075001627908898137957450648784865425129235261333410366088678962797003239544194311641188392767221519088683706708363779312455846070874490204333462511213183705405336826408880428549146529809395064128057098794877443167372397791820331516625295702940635658826370858400978959129219671094936744483102500650353356011534512148705334986874617671742684931379924270763759704438021798265778798698390029079507699599151557226906668830531025386553351663787284791456413320017765829568050634390569646023987984938784438178294225643194672011219403969326073908309587124057240340149594542743788841753444696635848166572881649679674985462139159811662116812964361522234132257457605773554581092578936228532436173140859053350556965239573420233764393508717043092413509252835907396581319227124270007848557470289950208877112998678491129305145438717613379277190449268686165357046554906823782748176392820789120998952274716685739952255811792382842280109259073141404416254417752151497322597997778301010533104834487333351063601288484067730606423264227331908892198470488979146550471576545918441028215139178031646756737895551538482279740868542507712649185357887394724243256104929191817834275345064459302970255352207187845979618728996372948773971705084327159694628686346257244293091190399815408748450057481257977820374700280803298636287011198896083979522825019848826252925542565120145940747657999947651094989499507433673925818426357586945189175159047137935597690271005656521004138866387202467500714623102299927550971354605815081516351150568147611394151865851189674096419578495602794808096990177105314057850487416655597908209894917702044972824444177811364317193421455042619269965801289078244154010204526449274017464115852222005032422113533426704686724514000575898305283885998050632660094813712756367475793375503670783036653311666400475197996575451066295512122273787989658325334726210827114221844442273933673179826791930554280373239301895686487326372222331143647038221275563908519836043342346088526459010586793280026833089975828412543510995850147268253014943725323627671429012345618352495366528496615292102453380718869758888497232389871524973206689377506774023179964872616749669025450996187446630166677615668515524171477150262686977681885840473276049572428195058970236736256368445222378371971296842081487306982204053571702988063787031992112409476877812369690225767058657940286993074798568829013225959508829080003229229052908831113981650316243427695182478761285623156367891104515206150688093073498631212891042438318404420018230711063743358259914080147769198318386836033988321820252675636996544583105208657284255028767108339693767718205977205756863950828509495319644553863372801028564617464433911911015426549194107140149463441208118655494420638578167006361411222508056964522315790032494538943975841644154790898749571113525477692967484552479636702347102298047756204451947790433096088222024425735201544767644610474306699904269499710568471698250860915286854956579320700717382110439075636950369508210374113393378024657448567154600707594203787289199250725917374888310480105092728784962514617570746463787854878588552961846208786637721166304005577417802427955528600964281142222379028408140582329282838571761277170009870181840285736167935107700980898684318095806248599468622786783899910895434175044593537080278386436750287625372441853317887383247726007618310994049221843287386547170129517166737459455048758568917694867755268133305058927477598301784277436018458482623087730860996983074915670450161841671725593520684573215237886408864496373508451786316827574096302990653401872021183032684910319159448170402568965372655348129090904501982030391881289288900356713130453450323553325214240440333975454455021559437563490249139593217336337893202065417750233177366511592098067431720804475425045211998617522454762759519627971936586737054622425943562241606203053391316953305200244753769273959203175241237191536352468272742429036231513668419655334100376815271950925228052186361019231130304752993376626645123048181627271178228018117723833051944351103688034777077088290578053470739212717297877136354629072860328264229764123888776426523429865531336807303929675265164119707813143085311647306381656063160452564152298171125074502802512160627866276720700419814476448640968619316428350723177275867808313250080946767798141990538524606168084834015487666948407978593401374740893092811785948775375852636648579541504295984355081234020561936690898552676686312844106621586991562986304882530319184975992954307161637582461539372494716176823728210015855721375333426687776131467037269798289466882594127546935461447968698095346031146348405017801139115733913417667934646262515445230424146550421856461263986636185052851985699234692430131618221560226417688416411528975538241909739134706296739669040066975266601131574337219075115263085648143250274453321484223510648306361460642199886749974749010379848396247251109193008227707870752531792288144505859109069219533306908608921704128970626211858953192052393061429434418065565555979521297980992357694485196300245172929099328840833338514794613766524067878799171273136172712206012694951804961085329649066361962010222771174466370114050229592226592030194340215174275512076834669932660328422112850312619360608401714057420140635200735421188432637376211584846488421154651827133181138442750099646099126156374355535078562267324872868310902354304538642662013051765364670507625029683253504267579650561677045498168304249803668651403500508027738484877687347710301360385895466335478374904107174386024934189749810562387341666428225025634587866917218556099379496170221741133144028007662385522123589586961874970998833365984533415380127904770009562360580867775732126458318208718797831048689680922316111817626298867508196346541988441475901526257407732161949469265216442372894229979331502572266317849359027105563910162046672120911906394318053902461338047457694619194681733451257382449779454441555578326023126637722637787765423190989076574234970673164431528632786626709316463393745643353361871487323479166249269859888561455774845788202189579681117398950756820727933273830334812962770362684984262193809001467994029713751091826785408059635850215291766801687648385081528555269806210745720449299925939512275644832669470178498436729037629169046199983250998982762266339489554074101047622405720108705777148291202591896179441643504891765533931850749017064416623395331188902542952338994686355089307464769929743863577093137975492812685411017320254099835841023025203541845108267869228171539247046670173227602489002143008716945973812173041279670462362566105778197665893527452845671630739922240144503796242129503034707828028525621046116008975324112041802588598481760280444619034427751948810210216218564428641094006272096948411926302406424387069802717369190277956035675439337797098865285390939536855763291812124228543322638511744031557030934327332920489215899879889248303137860970912148875988066051705788103291456608915699764339174301035046367268163757317881204708172659116277628137762436149757837856120531085777529530699050812023226181995025819943082626280126923608349650998598041236119152014346395761362654457624830776549016435443257323099992897976660579574390856067416041501601576560474162237008561434291899334561203803090263567521683236975243378157470790221195226429902792681531485503249582554465789768487665627870532902462145294381251204453182984103371872861200740747514981194486859041722807863141613150591167362052136036389804003927308883752160735154608082669090821750927693166312260644931378775378129267798257602780987509182386723109847625517316089046974906064322717726894495901495994943745827725334554975518284113621350360768991398274219143342232446961739152968024121215725398467479401287722213583092342213684788115060874669237564765891287577692229432432327330799539472156363977524137945028540294319761355943776248486025081686010719704802878882189991709708560189864585597998238595099442817455437523559380877095284607430642332222612964133156700189996211622711519798168641690561773594646090422870369525322812213809117713098109354293077764682900546608237038748571180693913761342079234939543101847046311794109914918315827991818321381499025638045082293903138898051421264119994556806455898872856756699407530541390284280596750867656803977381235409736925990972645830917267271314896151826713540015132910265134082235137177472615611926110415250128492164176782195075740344133435216074701545646264781957517561031637121627473628402099084424431953774508780544856597439552610133007563511982133795156802261041042704300784417739040673557360926117958646280145118788585335703593220004057129984771111365232012249811747526427003852885756744769560042892215856783597987587611778031814806012571662927935821334456760891631298493814316375682202290018521676013102397599850095473405420262194511598926879103539739240440802654539564499335563763887011367216148943198911544361449514953276049155962801005771302337822989846196198357581023725859968285088910954342141186017656988975356959624938868111187412767934229237208479577929149851702806254302777465529711140029581970933757482207158461879054570221027555282598018390221724068175410436320740916757235136970317885881694531517768786434001814803234454598996893110333452543104270088117678183007245420309180067436652316076621073604525369525398386833326123111579545343116895850760748022687025464044327147180276245962967972710326322131235747305117693474448583352709364037970832689569590912435732229440842118683034720228695001922191024802710872573987091201669402075111062948256012786031259101466892520918698899751391826692198616318150113165715138796306760726676461795380513912350553683945856053524595533408491398915134857638067875398365395967377604793787853162275846485320475341100156869140803007392164299134010676962385046746153734925649754098238675242764370871575411453676481818610414883916748699733781631779372443206208130222166894222931955314790566819458264074008753085068625349829742108213078017568188204213633360715743814595428480509722894968927226846305377032880891935668750750981641048070160243464741449538007421443376327693084671042963638277931473540774715431832924422106179494958500320352198533391277178994519757867097955779045364505477523766976335847559061184053303811453255304595192649004352460131950331366679303685716545977571832875509203961665363167751970436042987623903503896976364329273318993637215166422781694804064399569652122656284126284330159728385736224489125951652575778638421980294784240681955953402561520002882164748784046986935493176727626279915810997594516911603974700641838947083602547198802535646558662567025196278912989502715846135074322949624564723100590395599883862014581591994195203205077419476136642007394014142012837126526502488925769493474163780839722688016273169463563089808519081361178866781421889404174844871404845387992526900275014120572381825074151847889147340554641425220048180825851751409771931964344863841054016137949066955336756224038232378505095077410303061765047763314154946849527976042849458896128133958255386262167754424539292046495632073303354634892877819707176356048257677448693087993536794918333689226830206290290194062574127707869212930608648917847973786174005425384137703009876825788061480446343084365533414739588802043438365202774163790313682906623257301135094693866424399648387382384706374165181556210983966003636431836384351345419594323607399885840514340625484537950722520057198992269772502240449733448131773249643743802361829779016036526524459271694660016145950772582649766928799959959917959844119471781621443674821432233917960167554036438983338296821631887587733476765181064304261663742149676049348227536071982510183272699536336712672371702986267963415517473975799985112134772315792895726203693619839506985527850160081051499420395731294778273729883896343942042214376232334970264046465537043797236089165030670095723243041387179970783532581723195394691976645183389444015297437919682250570982726590417065397397085792248093809283245501959627989056674433397105632167758097261563488800503574687017522611226114702396212512513132308719827901239640516075823910922457857906118770991970169402586286551154124642223774867701404544141931586038409520550083053063599200680906697400859465901655263201594929268695869538525693206406980213631616158719902971531827425111399939811868561967949655166673698228037979055461427474320021236976943454656611473168618434831032977042336601407278871468933939278216610433866486283119727449279215239777785202425047879983372848784424756885077877219029792860999163549817992961870027060169754428294637990153320434793553748250542215930662381782789126836501046178997296025034185478711528243514638390023640192157847935978171189343599847518125013954049261476992915583705436647161104117605256667739483106009176585042982753365249887394520263734243853168950228024344006258764676955380273310594717822326669394006143836017091240189183647399189939331946379912209918685248414232389575794041349540351724339187784019588797788689218243833637932573973031665548476480868090067720949275882637661555799337590209161230380466387187540571502660213923432175196343289489332746052962837460753538328517769311283991071324302141730854808309634937096361433673143738335847394003101419378389812313940420708912705513056939018827436351439411360474494597658607912814268379544287394180124842316477744892538365592270609321871986446884382873974921009519290920837603412968573344243343110469860399261487936544446626702788738303766038307522828554754156873438226293134255676920038114815419693683332697540140645265810837611983478560456738190083908441439692288128079854125630148840966373784754751641590783784094725225741545620493909295923526413559367688336154211309157467151048562960189659492735138466813249302308081891444392560185998373963403228041953092022466862700190067261968463763029048161332631806372305497603587295006460012501442502043962080347926239793366816628101117871660847637017141209155242645061755078996859080313490128288847687800815071730174578161983136448332486957860909920260567624472413312196518024951977080708530121503010475762477090794998216920452387749262298810504222501089517988220881313505365834402170756345275274539509495365373558368496834058062978463885198145672472126351977412512000285006489340248285890499699915920967453927065493702101850623604549466800290449442662227894096585228398789873206181057425438741973862241704196833849007454141247421938087692073576903184215639285192789234214540706837994029960700284444453199517249584655926616320268648206084170963071956045723788671473609690442837564662793682765005167457708098703177527050895759595235828378532501267821496071265942412741592783019040712303032196922442541698197941272588817383186362227395574860919508614959952592159614893344098987162744929218015354094456836563019695762821683566816429359851033431800330722984964107526880455778813287729786359494769123766901767515849474003516905518528320635786923309491299988864991895066564950299617643951842137317226113418337437803531816489022837679803161199160771810979770558993334527277212927203293568503904735387396028017183585404478603809934421953728017573159426033856119377711688259862288650745681447476352686829862861859593826282115234080117214227093962880863052445688823725535699774314392658420939758751188619027079741658904294641923263342848626822996120627080642952084795978520840072207250377643807543864062084025196618791959850829761185087263407710571559063574023141540177814957460557138214854545778905521748321811521044995456413527435401411416423889258316005299099755122603221294455239333261964285220210823262941254687904386233930866260372302987552188734253129782195458287702592480450788500384677859438864697067057417676643609165605776319852637884756031241416756728061084641637248526905491942871089028978511012068904105664241745856326474963639932242101413391369050752451510246220362179726140798766115840008526980550489249099366068120863451732373325111757542818301074704945240998993294768794343905615958317319469685318262054852511452354813535170492811806815335780058662339338975484865620721134945617453787441401816046595628997810797091349334563344651630340975120042346745638553923973626270498564201812210499098427650283778102443205704747947952511413719052068957612219643667381928741640272938181628672564617491867757651795897913436407714580689564361771770326565420437053349384229192667208721123466734694706837373553886502773101626728497374586703095239841712792279729357364807177545617785998454583535906576354190400303736584474320911045816985535201095129979876425569517660914412161953356570774989590584837681970771285711917331523909682908241135866274378754494029771200464281431633391622122848259906711291961821207874658799608888779154268640400503119688110304307352525646962689901377396585019238336961686663062646967395118874028698925675924156266261719862506725072063398013331892273641073178491276050132456125606460195594689212537753890742911073126199702598362095088054689802977045624294088983193701391759694016996984744184960478674856924063919336651467077856352461690728759425560900245965332848977570959205667158014093737081486524231383604675338727958661768273160447653383947106381216653180765762614727567977454205590068878842225758552111394211907689041117591557551961734343395418713318071516520380409599784981589672517366613467457092496355937115140503565097412378163343819848500324688599364459407923131977133835367511655756799075478378966687488009052547301890445967258732291889726189360286328090919516636263990139201192472670694027640053301919645034062835174091661598917149104500224841334757535077512531079296069625796128214491901036539126829440450675833996881006765745001661432386003061256088576014270497722331416308500525080034855377064180151028760871120237034184481806100882075034521102409001843886204536814299687747860437685322164513618365128122245324325941640961692863450893141721285062983393342173500735444707031891565633168584641648795454898686344362161047247090795035016583786718099673753438090885997197704989737708284524255927699916955529264469604026548157597920156692690309526480789517214536893536480885777085753227507043217826548883044394509314315274088233083646621434536164490304099460050967192980630595591976747835303651204050932319741792301818995559944116805832169307661876888459125726916293752556232444265659258318905250316119017891449406607780563245176780619528442551042932744344455692482884971363881474227476226093136624207496796980092877149876824158992152679857454302606584974481990022979373782910458500171430190141774387399884320448487054015722621832616559206072080119235001281027928524312172641785721798216233038598950588831302693033457188311635347822102282632576676376590606784610243478488683017903621326136375161468959253344901755771872807425307606223562619579767923209471233305135419936948571334698806703156059193232578289409424252385222104669802193300602966406900159880850512542069425368717285764892096591415447212890278688353117755599850367504762005643112121295550483219921164768680357866831043055874613543935534957409626481727366866976399885990606108048075818422324800304812837268452065706272523734961652809643422697539376551823529761075788414710362323477401664787468242108106541721700432665095172366224183618455274205511620736597685828429074744199332344440306530755838635988786914134955649693105318323819015661872228375489064802095298573684366471766871722904008456101785039402297799111386849359093700420061118478632866153646010651604404158164902117291031802492770985345712507522124281015618623790886518837048200511402236814020715601077881648841526152354620281383425214978451584257094640552011898551371977276085080881817322406230121172617470840511857480009251893407223362552843486779821594642237197145991796884463280864070026794462102782494310398236216111006971345232077344192133754592513230278120404166946278519745606047610495231032164378809790181054328411520032010433846354269900757920658758111392576845993429498964609059563108357204935723297171792433592286679731565253266577912723651933678420089020743259237654117793269886472390037137523706119420747129390120027592201087274591905589511590663925226771208434016142170754552246493964677438745236242349913215673980813886636592521073067912050105281195034627026665062888075683712016107661238788071439504128166789758641394918338606075743868766933568887852351540366435874022220482875040348030939908389981294705679761425046392546001679904069302233216073309466820838237619745131475870532228297927073159163671914494614516099875390205815937993367238945776574937085860723855668601143960350671652494634456675247000353920856258800649355566353401860400381923615861345174576691690904542767681037307608073697731672257632720532079071014453900872225380789437238078592744645417001274730139220813716858610430650452200737216966505257227521868329165060228965074378357788895829253767400482719957544742009386272621802351984478450779876684165595145563365451824832676415384799731093475206525643238716908513270686166689635164128797960803738500380805405521446428575537637746445643211904874873657941800940024867042591434450106460665849549093565726403224625057833497011682607616109533488882305038099400952391196750070083090995880870756034674492079093484129366759247619883759494264384336081564797301122497280461316911020196216669322635451169116208077938777529771197964290346841170959072984282136568440904656286399841585762836758887010731337671155477736599370777787347683401491256965608887921697225785095713468024009141941048090569391843361896352505802342904573308163034810131966387119831342272518397638228904565578288989608926648363066530870943597395608663331062744792372218363064601861825585103562936717884625492965478459764391553298989272893249323662204306187399219926737701080252243576632768522270838784873295091809897909658843870944724713021253355825320361515934644207907374291778984688231457983500789925015024116112871899901866368103316323016062139618227813193207329787599692357767161669261867031387976236619648004737054691799035962421785627524627210689908929390654915643811169736761255154891616985171802176537085541966724902917543005988742259872341599349676523856343601273670899037896698066029856932788313528661113296270149508155212520520997270428206755597375061379547148600333797117087561494632836887134581967145147781419828714834774569188297107043872794720729034949471157687062667773229141345251092482172510583626965862116210194051762463330628153904483165066849942583960231051357026249062769347580935997110987908346463220222309803502057921219501803973437999043756697397910455741838796261041973590575816501591528000330073009290688277748360978381897138257574189018853400789949907859045048739589449678694081245752474872352043908695418729729179304236066521850648132398038221225803801940214232792484464871554754701323923974862871720322752686958762467169088898808238091524066482052420206959661427551166640071300161995201178514954694389565071788744841076126219490269034456423531024196153419343060662846259298603415698637035701248604587273855685569061045207603125893065950129456077650949293549432369816199761827947781070364658222419081434290449632482753776333234250038984552927492233407794933542499991858241003600057416343866585394762313586459541584340961170408198203714496988089488058022904839129331791720627364977031013106924257903892321344990220930240530418912727715406471269657368064951139995338392419245958044640667890395346046222971328745585242377511245581615323941964437275253730660077452410915582772311456248454372737733519934259514718093048207794369725268364266839816429686992801137269094603726748533797374916501490849452212284129320407614600574200324335892164647284989049607405815969595290902222315713435443358875383842628240095957150322358225148277906265337718041341302308969645790606165168878361540743340535012908888577129970799168190128229968508194578095982761139766873660096604773021651600854156399887617839285531430592718989036643414174116266646399811600373634926114705072021207069575460319498709999594099625093693639892398198718411138571348932511668733493392356931490186606611730990534099902009394285015827027245744522120980087911016123449385138138653476015191885934272611345493504931577996537220936823638226712345458142155388555913395661160267722789614225332923382888877085207880131272103253180041762710144022409239122977481881744616524743599557707955670304062548798359902607519100832610852760422510404931413675895182887610913406535087544709785701093136958634519979954010823861406601677667876616997066623984171864516406088523636123945121573061480179057302112027903063558715565995011239398470305390968191917613913102588521099031824682777111014331969949082437953040076523094937765482318932577254062492506028012739011610678273452927815529008857798725851720155914964196787939274323822635269375188061535946185144200124841790966550286159709696694426220772370427169975019476268586170063728852906974995092633568179212949858279159667105764496608921548535444207379435242361189758571518308356430890335659413486923778838339182399020719092531557713153027526980550974942015905563668460410274433595883727729013898896244380137902955478689681871152610468827146638094206377065713000551776314300326321848165893416881029634306927447483718997847340921917898171181450136388946278613796041056526221673251425010568518788618172008489453885583232074501077849820334334573467465027872262904472841375036887023345040490085571005252214415867249400079779974952735914477531665409867607458407456720042311008665634872212398153541888878139014120063614720216338435420407103728969134826474314555777601742533910042436550722688598902224365946725062646957588031828606317848868649485960315067963537271926216664147204371038886391518650666837371558326283857359774211353927664391135647459401563123081236450767957155463824879888320536274311495338191053145284796433673986109008503249864941594748809647683343278839430030894897868346007948318583609530005343996669974328070595493051144487329612150279485040367812589186603126020305262773217853763861464839111579418774434117773347308966846601742493021511553787553551394920959542841541278137197489981889179682874237057667218684535978324825663784754548412869976921464771621580980744772048763550855597205227580407243742727499109061638683935043038444615890819658444844654081227686716847724496669526612907895714851781155045982336240596329139453981041897041370471001007964268348631014533387731757309708583314419018699697771669851631961394121001522068471627696114766466234247865535862351873696096771675353501165457462901133911301997773196901621930310652040927402709148972978020423154455554260931312116971221664119427813816016131219605528171778757199079463816223971563281668719088774791580496738163054970443567512127537065104100791395474728037176727680930504676304582807442354469369529511486460417443537052675331485761887575518434586530665783902560574202109633048901493069805384379389867791607417314179338790154892302772956432370736334000369925940629597550528966242474908502750980526392947561777837485202127934794802858411380285224725915021278321682558661824475435108741565025261773025510555233229785732442749235063982727586449025563177188808910131792822367759365288046718645983971368750056427433581351670544618179411777979472215180166074242069952292661492767199860629502660815570978818041426666529876169388820117028871933076279489981736569563313889031861478292500540461551380188642373728377812127280074334668996195352878599341901975098509312328502206366661718172002681028577291935668104358108388779555304961676109880207377688946658988800137235944813342708746491528407405476482772223015224972712724427677594040514706170874215946707829147488743264439626292202549773380985462102958915058566606470078854011600775040673401228149468215101921552269237575874140408634840389333072625858667247864498405485623339289483811180702138311164510622183576934801557480932737108933683678226875292674519097298899172633091151306114980942576629027152913333689096208626717661868800558147883469778581329691748272792243135401857017416051699365212081089116659447800983183616790425578579230458586574552447028661943493538745948378527675251546019488017080883511055728333378005490976092793808105785876127916835022879513891120610762923332394694152283536586988843023179476970072055918131705995513901381391008166993265536842507198036622047469893019526312269940507124891875582201076156180311680432741784811319508696221261181864181474299060363840049086793971962074652023666374533585839327376382157667390435284040995748329645927759403514830394305727047371083270462475985679823357364199123351147460306954706483416269094001297484047117103478862664432903782302719361451325700708386122395996443367275357880666592167865199510705409018889417816279267312246348174387472119010774285313739380437431936624651242970450372064969663191219050760910557109504909795358476376632907015027337759659632406738512447029274055347992893785849295199384567856679052352562038102644987892733973019783787834646378044764009191135409130901400615852504767516068361537946298607174879243178250263690065666506905499834577757037473833265916079433212373336056802278536938120889851698401834919834697192831282317096379903446701940806992530879740047387401301715412877098873570327584041587112432287277982962647968436670893876569219341099974084350571282995383739214211246619591602355125734479710920208509373734246445814969243715937039529534993835709557221117382197998928791694945501779124174515565056324752473795787434803866081039297776645417795252766256070766063538103968786600228422980079843408106601154926403409088097998011593853586058851521534102151874763645028199671424160949576210535445098060927863862566097112782361170924778178681009410641228949555811073759955892534569109423781686277572145843313406230902718014509352976511969295980052594557779091599372395120389875686580651065620482286197307129809884706970379076165186803755314642157027999592221605405833211056127511723561650889786497474834056100867436708899511981844487455289104369470713285347355496087559914898307895668478889125777556119567168624746386535365116400118045717889737562616653341715221622559717342373246077212011479986629110587372055591152914072054973668259982533841616927003168613167623774135213704028588703400769884432067933286143069915971585520741149771010718554125112005042174267916177692470220178088661496523250310827178065478915938451311427618206373218905051867684644326740367397518123369757278975308772812743373235676434103873361175464776944362644018891146569136303429433083823185815817648063528622985109112973474659181169483747240204727158648743713115243229705229342991036415824856229099963560657289476069104010938606918163545235438186312302629968389849983847179540133469213523802532604801517068559519027943395203277530062873012232789240465776954432565307602774771098443914017645711899736947872399709301243811209314045758753111272125022567287318724998492265145198255390476883966179425563562001798856972946332454843979321235532311997833010588575756915618635250075888878091474820953296930650705639268304332126539754420776772440045993513409621357130307669561151607302645515194589133259551121084654189677409033883059469535391948697652789290034849917894052357585141984003577380006321313908707288276928250083001265488269627250545043442696412797288062707551144507412692213359820547156877525494478664544172789589898216266294204458412893733523016654325461936518796813016573927092056419147657163055346062771042348891724206950887607514124151999700448329994475040376052020124504408634381854692892817245875744781609274249174203324470831352338423081596678504920187316267206839029147476200124263552378147497641841034123406040931115755446704517499989652922555976018478877644587777801093034884187616719798993490650216763405988482539512306644907539531146890419153531887281509067432124172922426430856824724465225612168303817881059197989434055910209284291124974220708768094818297587636348724643929911279897312898751590590613376372215732438017777929434122901055714864048402857302830635233404557402148029554000615951905343109931288994290781793450188545080416373821301679040926475637443628475838070584558025430344344864506780368787687795580403227956743357939061507794908082280842579079522058466115245474719229874999054233074733964692358130907174542083362676480475566502258247736869859580099344667804637496250113192628518136253337595834872272591725810255390351070921555337631533957794328212207395529734346983019453397884227737728791111932257768155962171461357043579084386679588696990559698418631667797232293773567076731750700005237049332665886049937440186388693653585426011671905879596824416491270917947331033990081262058866278477301072684599634071416862688563584826308564453685853300288184240584729156365687132570425564302008455433921546271856179549001250918322064179884354018837515549577181405949117722393116100565668600042903840022605941286569553028340162782608703444864486846920555469752182371775195192103071412370695485319159309411475524608942641794002180843001207810967466832277540253022960546066190152556372624605074207145796122965617875377447205517055785680122983613265412884294375562815864243161532507993270102568615343947858010974156860258581790385441168276097329955741922070069898532286262147946233682280392520484395928965992776048694318406190542324114006334134875325059823476006223095284223641450950834031244887650115838719281538949981685746669089243324976207153902027572156940289839583677762026615389822376660987141821490149101400944454547288929528917917062248954401119931363278271933874966393095362262982292130791046646861924945177393240836847634856861226303568939881943499621852413614069087010136369942377815301883359659769004195841495286036679946636144689333997905299956336901514103197578850891271701441670319872299089393007344831999757775203254932188329991548400590364475239754588165022017040063563902064181341332527999626372560614559819182043963125779652536970516890447265975166185194291999294243646860571109873289869975161416932106713239670394554443263161075872469323915386756719175343573382712987603470172929515565713954853676509950699890935311116088418372297952033009321288034387304578915849483149433920247777477591130361400693627933714148631664734522452685764735985024608519840106993511100275670771776392905857377648165335353347186711546346914372247620102318652749852677481805945297950054495007123650994340409798507927805769621677192663468883086168633572272665717341575138495571717965540888858927111644001138753313331868091139190038785504855366429106733437491797470017151842747577751380520454970398889622440779188158913056177563733352312523927357694981018655792054579095056801012236570025466767736021818854792014577378353746804576224673223229967166450692343815324179132657235220659842171259491925368286404694933445403829221906196434218472664742493056749264097840567035540198393439737372229965186865071399821294229999641045476099896889820254712876339990489307648911143947043087796491486428383103584444283904709865605202289022547689797225741773256275801371596842579169043800546290964230772526783367159047665461019661445426722386031170156349716054617624715698902361063235481096860656943404494991573784697208659810323230596303870940761388034362610583871352695073142591057710479717790466722905735372903798688551072689143097650830567074492997688058266527581023653580718751649434150701670584653279987982013717699646658963928450248646231389129497818439998525573735140531668878697001150260008806100963829308291237371418018692416990852731718033087553661919442350819339984370363001380135880394584197188688197119319533140307603692409071080427316506775936556675950999188213738167963501439530550754420091032846636873677092178902206881104231750113257736862483251280801123446615115744093079779195824439507056963969317998779603069321194013675391873258419004240521543440515615878816916660378763182674310174708145782034013514463335684348589924879862592965439633084077319578691199292418813727497510103154326577531316036256540705981267293902227833770367320834468510420214225235737613058215618599846812440781332526573367047407638789066535668018223536644086744963371160879517685709459749320481646816102794591317804974413028152689413541896921243063101126689042068458690600388715043123776166164519562123705612950021556387418434088677132554617603842704629230676270935186284444612738651344138886075542024810314704043725093355669294212984692504680863702056493304031015158316916800843100948907420036749168421687430642113661980197934793053125693733697812387117830242638093637132634064326110035323817551343154634558008962499718379464779649059857220135016794783894933401815362035396428819574927705527465449172224601100267593455158951592692397549741250817733278908371252388367223431432703827494649638558750632598080496372210882076992495867561274472287838787518052940576841707775975196734254216335696050515616009000099733703165247541414362909827907432534847780388776727633110770782728188244279641413988110691075193864771258173327875577508690636250910792037693184452964790192643596191047227570157655860747672267220723122580158382888120886295444224590180660626839531798519440529979748060967300052004223339809767235042051556148025412123431623455185406216514254412074719194322119661676858742561419781134242055298524954888393440796448934889549369006702167841402742944927612574421518327869503587345508483430337424681631016970883428160047050047829825831368171850441915568617135695776079424210326357119322090096565427279088322031675920949732719752321506794105674939036019805767111918515190198712333176817319779486791842989872567038916829737559696157122386459791974351907467461190841000082200976607775806127931667478985812528913781096981355351064844483442030925039323743188797069635830143225128710523640375576221327614148293212621964977185438241661726749596833769748848949919976562361007285822439862184273393781427896385176065892201109508960663853772377188433423219557724531190107452663466370725447831821038630909788675772425371861415670409892111957064598323079618389346499872362581670681216700356669077785942081411518596801646828915801936973238742101621954654732824783677890268347860453908160298773111551165226811692221000341704009361845469713782184432127538479371929168240329039794615879323544281437458011717824007997505305964699908872759284233093542675139946829802840603260298442740850050513312953882656435776306182312174802693536216849369224798948024050757471651587536408556914387995514067963158873897237318167233338083127863765416276238301139455686898256498408996340642608941808264309859319908330945117982159591129571155649060716675895421572897972163540872233758764652160402732862807502380132116222374056847961565453266011206670657069576325009351502460486764570222926937163575941664798090795047828791016046759176203621931498668406856333276641638065523975006611621943923967136710321932074209569004847270178650065147548240253376620364659804650685223051987441665696975262188863314247112426032842049693559227941998585170080614014067017200289965603983663947409137389288079047261696513374857868828144292176246733293203232503901111398165712744304776262270446166594593165461886813733739371381814130778576915310583408370125837834168105639016522708041646404448855660792148272840951066003075845235153046876359138202227867889462450005849689202154604457158215010646775943169558727057402971241921208357847903207965934143200929047688298337768420030235739558661924925302589268046167495819190185058464901998495916094751525698670974516529032815863585083581219025701995535907813316723676629650507838511400178614189741547694158261061134853575075479461704285119041621843778016481686694075620620383020519953084278087520094832463121939379157154496637125916062309264457523965687794187756956764362040053267712330895252690109535488161753063782388492975406560676676696325675445254770865075527912181033835357131036438190909737143170881748121462932376249320038219671708111444419018280480776481405204429136233632445382262888272408596994899985783932491946498626020432641633445558763211163810129991363593839863354392145548497300274894243238189654768951879935089449373878188580482112394912317023899681211452516224904894852598640363306244257191822000128757010897899806937770959991781281126402845331644276115043462757150972652376160380980478268588683491263312613577235428860406955860607392235267564546852908236326288623696325255666560299058184355755263125201836993484499378755323392786424420747703781506350695845184001737109503008220622733979325498787819362919507413166674496617499554583483116366821820201851751259439217825953880934555133366732382098560813732250103429280628757976739952623173586793974964433190050982356949354661419987343196628331553848227923817753534584541563572573548338182915984221072076425158887504809574477807851133426396585339956429183842679772528449557092132084475788490240985415360990046256600459672702114213232303988093423400169172433749858529864462056891934803416042573582346089641954095200455206077391167867725437240695506886952615514006146455791386242407990329567817425269086426420341880657752052930231154169301898761839253381166944609173429809286342227464914309512208075553674928722745960796391645344289311332391108360892656274215779512697567233165731020560993641223820066140113053462130631059449334637654528902072953569002960089558934281718858289427571994086831710569403675226260990052623515455830358324921270548667958905159743315649099578810840877515700255430768960482627349048652472625304913871570331144912364500369916637897664726893821800233897847373987747358429718923364396793501609894210416038275325292275442739834520553440824300122588936073042525582898271101503414039187998295733888213714219428523530734283370792685279166732790966481031654405777256021366529920650292580461615591170240621746164156365951825473095766732555765375850568832930755555785865586891480927393300127547857754048209100845849055722000593780653366225194085127081443463485551965666036966865174044358349597949454822053421076124681823532401479063080848932277547601167014702036974402967828978115658194307554038457909770878665275938625987686781137102419768119471753586951231450339044426230057396308926756202383695524987959401346374516316291098044464986172724278557666415579689637840270334728306886938714258876185917735901979145120865449480914227450223093748064382686566893657285248464776303093112235829533242711308764812515470945762979017846313705977621509252733384205903212721620379982369493854527636209336520999676784357262841822661075733723968482890352866980741312381821860036129296771985462303140374948624845044246990598662404820162935374670552828162383514167071409147513225782630656069072899397699469831135875583358360177107386943942983026352241488146707424211707954714541787903320383715133964580207332995350480185717065901315923329862999220097844555898530865980151029549553469830515699831034168600603652307203810122374750977296834685677477317965631605941214816385931837019220243105768810882295808580542690090423615957656333257817551861039219026377922024509952968195068628174227240917880442077624332634809983172122781691528204666590518272479201024525499244519421883624223716327297591000562968034733729261404069528761675524911863958232785650811258434231768392383383291578694079345924605219602856727121729646887413220932939956725390461294134081308074322947039829645117352382193110620259770053215458720411112823587497414008415514424519531775473133189467457257564381350898516634981736157442325073356038827155097014767530646891816168289781727468753280351447063586074407567123584460348361930130470584863294743975672987822439422574277120913904171533194716879170026844791346920204064499810514584182816161546977620970501668772669678680928535725848104011348335568905053453315383462170381378393499982291398838006026969790491299640275230654838215687728226030709570958876090137986079194749848122489371540564561507005983039670662778212733281947717575874788689753622053082270402128642083924031755164568883450176232826829077867606816834924061632846116145499392290238351194714072648944027025946456245626517968677389376674477639185803488835236940083494500121656773323498405924959422645812521270502643104087038011184025803381724278870336156575968673033001994221136802970589791199724314730477562554097859568127375817159206866311970554614447420299251348909336316044101616104039413641123559065618596045562546234961145454936781803494737297629625544437543640575741177914418595317937313280251176640466719938123880342243410646157367149573271169435892973582854630639122729381756655519277294773437252710027357818892140196312061261269613024226036244961259301271380758821078492513779828728768362051305075513532475745729396231739794800322066437267947875190168106224146907425705651938055287822438494882413537344695641367398892509194235700316606966405127391120879925315801159484603704986110592908453167670486681613127101686974561326671065616166868365898045210049957887071912803271182632280959002973435731919663986683595124153348589202642308710175940247900123355066222962169331784204485613311809677454198620749661191387273077109504890668823599797891789637306554676461577110766813464228180028725135504619926240383330791207869941747608750373372191883606733058297413612810343763026008499363245596397457122514791719534272883379831790557928606263904534172858616121827192630760479113401702409820410906590863714036634757253877858057645997683100462300560925756363536131140480123779733167458110234531076441365606039353260890439652999955506661259905752206621002832643662545608324611518851812876726737592522963479067776407299377775719269150707301817644380827717383459599805771947751756782259479535600402211465533507297145266421357125489526936069242261323658060599944859633870230519944076907800803608282423318403171318921368415727907547401201610359626477902859963119104068297814644973846990305682429522449493256910586935317566032214891638837960034650879889575257655389265918912580288763927852118510027634293556376516786383667605734758036079273402578727943953051621107410224325852103266154463917561222594344783432781723255766659219360738475614633352771335025415011115334035476477200784334190994735421832004399133957399212483826757077827595774592205967229668209281488161709445519133928058939942234568063991416957263596842130845420135673985092636763535125352677735629820969095281475583067316865230944839424764954614108758631146256273190858293979607695943402272487652571206235190634861292128428574430437109610409646239394029961471143224158185483580125554402094345759893340215422364577489902525663493537498207983674185651084582589674551495743753536094768446712347818488922550369121462284331088199702815412874107197286472466505829278239414950877085434353144208605187302861691317673424056680667714151444016526306975402315422629032484265945528219391212560945886729099053880527673121837519454202903907136804411276493872794767301531905526039035902678548079900422718118902992139209693772832032180080473785430762349390687960428258005140802778176085895622289556059913939328998110370662505041151613988581021118283166690368164880832548873738494699265740115245657639899745268266118942373299395067770976260823885794371220805409385628211258401247089492661972210980675274407091753050572603470058347374635505127497625697422317663587208145979265108564426108699096114276417587200821678166933268112754941413841551825273028102420799440747155229367857665842989603877538207191683245091348836446358727414629533929308223668676090821760228515933397004190397689570800885166173638615298399497060356962014648208592518575573412239984006797695795696325699785900112428933709478982694623383845653642690542209914782471608899658672732165982384092507189693756369350326010877418067873713310759432576461990360376317492970834512822011085860698458319734079681016561565400422306098117660172021446360677588969394667263741423194500147857704076734294448284029757838174539067453481078934649935872358918349134313662402517448013937998112276079259973200171835412193616987878421460384321902984307558550755377691745544604829695276645352440792076601601673173995078165984338549591527893016118260959972114247558405170005110486821157937263165637045136363790195354131225178265695247407224795091143705912310938978560499578961048713184413431147239430098531347321176646151989389822105697672838922211549896932885532180506221755544202121741662299997121461870144608553858069042368865408010283979045300188596454054130053893001578476278130281526747436239828876334444264241239957652562194051417073118035827189326730135729812942585076448928725411845042245100575127227087833401675327093983378946252376739428187253690707956203948772838661389844414531042054499653092598831319783515470972760277275991406905623308451098781771992994687662703934325155602752228565352366490516030623991927375306610906505658680099149130486610042213798321155123520575773246980087868562201262840867221387803812517856269770200093905184361404552008847366525402143529387707278468047941584761459521562096234084078617661401237124664787943104055627192950707306850242847051209513236588178135619259742278024152906219018126152810212270081413545956176370747393683858254153072914055822572074100072942281196240730390870706479618039840805114918463436969267022940638977907649248363333155283464895953861706929298752663595486864464410972232534916009634284432284619910864251251512790103097503548992980196904346553212167093780463481830822249134790405909843147287858381443602376617042315465771939147529855199921847964655954573961214265324902221700417083496955785627946017090363680829069932289698140939361279819463681157502824699675700108860214049475725367607603905738183945103758601376430470497398460243396212608596854132889068998325507955787435945151092512803132820311393076120740577515715618513300457384453783674751825147838304087384595931188283424959206333448945052492243098645394471417697794546561789271732885478792830916572407235559783066982757865126839273713848155833353660115271814344147239250807550243454840828829211523864125027618529858862402863317155896995763370804495227532716131104602070622963387582468866361717053279118744830118288543255133521674113252253174287844360609581179309831748589510052404206336673475935958031635077505604832232025552283140209052192229661622686115089540243023068608875486675543288955728438398276422306182722407735591224459396538902429313636354877359170458345068592749642291064495595818325126365195774565153995621181989362622218700093111011778690969656164356334975063619169781727580298268854905906377760435567622231965759999621013433914422788422454623254630309138215748837365573099099485316062772347241053288264819247042085167590291190676034540410656377728247227368043908169995438147171551778784356120751112558653826157512118782863924004240321516172348196378080245884714347069298194665794391109515300088896244921505856792719448870839384329411578321151402261164784920096771105110390515772813662292728584356606690815034803380538721148845770407919669483447040406812739347475199853825032631276012100731394975284980806977858232407724098399626061462234240097984552965265207630068247477219646062986050115485993805959249902803216818098801188989290000114080489536698176293027908502034962663747029319552805175029430601071170799219764034092042916749259771366203679057794088914769738465677367933040306949568364269015001136699357348065795710863720175408017070168559334001446488153221697190334641579109689236277213398680653966965384759055145024594546996092664902416282842636615158450700378118401457829958674101055239517046698688219778351455393956604715245032767206972568509236920343559229672855512667138383150987761678118219789947098006339322218576425390944436620683890053237375046805640158243715717100303038880863994955306861039346613407251103372690784005914114299788135267525034863980964899397179948427812461874407283964272117062377344234697652664620612961695743910764143797857638702479845847507771506835289945236029825931877072442552074482470862836653593237179746031874975319000280374766464168835376829820851780806064417428526338321766024444410580800258373059611911583742384843491488225114432664702043055422655975708853278142822031014446365257530970936222896719022459553552242729523089654004802414865644221729146787771114843966817339935066658678280439841615435959428384084728476458565332566879345789806971717267885021579580874537839330089761048637914370198467256542588059095620670319512986201332763893137439951813757719692239456732147062022600510465222248690905407876285522898287731128912636793803252970318281966283430501042661698690868800009002160780138109456815083457168788715713370023052888875921601670735382554849998229861643060763276977956232924424496705151418284853760639996452239323746891129116820097904471874426672138517561868106042846225983821323698221010640622619573690937951822644329980713127142450843802374136572740834018100447376142059428961351213112223108524567596100755807255683765387866691613590804362936722698337057909189697740654773942752683166376542808357814468990204905574678989279942256621705904959067624796923338880477319995681278546520621169827110080978454910228265768966954623540711027765341989525669722828541786364833759873474959310560326526591307058970791341889959171101065575999685744744359788780224831605714274966654257951832791148646602729650827861528123230323850202319491951546171956085156214485873368567598972780441590696857490785134722031407861791725070686808286007864696755698670729390698873464599961392762008576275113440833475508989652580192168584666791180376315161984172762536201403174560648652444502826396955582606140736063942935421342799835055184773825437558120860719820325466177044347881943595319733821271419321140341983642303879931217608536990399791551926726214101020218590942872844491843921692055639758765250224827584849311130448709866259636187599693627423238492584623601066258283978861740806694398038646245795917703226896963591086170544477578628488318738483710428026013489134449180195102752533716426801346773730592577151077697957721313364796331705638031070877442895658600296684308690253929958886973594564722755860404346755455927728838905451113906296572132971273209331316907362923483057523537983876585322867406293581157361828529995595430998364015004011023381240242792707901608431121172819805359778510107638729270597099577554642406899853293073712144674064409868360390426193149676271549919512712774291122292796038296056452638533162038012184079300444808479510819762186686418231033337954503830393500164758723929030202032953240471646412565744341430612131091615241948426525533085732692235927673787934339392731836636047223391167942435779926413698643503135295088716743870495041025776037711433382246605922100530754210540401711920197123173248531828460332856358166391870330628991957843061576075936235137113931158001500308220428205156324499638688735642519234683839645928844028265545489919385802035193714676945805428834461473881282869569108552764472364309949024396714298903121422619892961373541003137455517409232183228521424403610196273181329143289345520152290496726253762039200109896902388876083897914224007787133939365386206090079421855713258882040811457027024949684128343791170964058985990684497294095959908023196495134480015701164117245496018192379971555421741921027478186663981447323299673552959732251124760144722377496546732648162447275980468509496447738067949629571575449094806808783934650253266535632891505653023500756992975288232701377360877578427232311679679771310516503988004885184747118824520680668814228406882272249517174145515661079859908415912320056461464104804485812582541555769731428648204231182776304817033577237421550991450137724471679345313499190654688195464470122147169425608594061191350597995128111606871992851287630816222458207392203439994120510087855692397616902429511284601757133055595420540902707443640059399884961023726764789535700252878723167918052873270283331811849055240933233683716081022332492970147808932940309489765641241790013005683388689858789273134018496914786016867252722786686178732124124446254630017108652221068765188187687893270799073297746767776262151030823012814817027970155999846533104523250118715341481901587538852565160259592762339492529725591502128756361473528607823781219093797865505420912562305747407873652716781088947586667038267700690611136242347924912942435216432890286667211926298132026057075338891240327098229124065427866478564485553814391206779295195186955858513584232432943187345815761959719584295389660557860219081868919549001979432591227512055697004262524111090974614158068687504640262659965908932376683757990260339359401612745651187962584432040831178953380192981349370621377302329749524209839822150957264932208738920456302922374632095502548705062566629768803134072132977404361917904485413753325560319292290110712795510131147107274732753279656856972270204957633053203186840694319339575073241902766600550575059286248385170634777129717541334627326334240689224392047767438376561864330684473464986120448286130548446373411401236511451178271979988549697094023429696321131994072341269077597002635204090969477705600676728939867307991076140827362538065010380715129349637379428418667524516732315563090965402413926354152830119724201309840347638885892660725715023812136383267205823664474847017427785709931705525484895747411714467178483669580785278441745236427588537473701935263186982048093299465994425538328696822334391799415769537829531748070035944126918458437947392812969840917053384000656949359502802014310790796338427746817114710748994953813939281694202118014121774157438661623126697702477085815797058549705856885751533471709199041768422372245375958292890277865857527332041133056808481498276541812312647526538332012248137205266133046596737558901742284017451721285903577067918724503554101774695728023444985302491422839664566417079059691660653518833962831711079768830763849110546852218508822360553723627920892822306371769202410770992422095613101973132461040373051843175712399626193434316520710140484235498155835695820719888377597052662560649921757949686799421016626773746618677168334495274307682207053995099612269069791480144385992283244015445928259101334482646430419771482393462451656918097519809785455230288021486526365232178049857911990419119773130771978567990064398523970732343169400597550223990920432338349989512291011578613259158530721272457991519131699430297399041990948138575850337444549024397967782611447657662247377280463128345259378668775758280204382019001747382366158332701233692324179599040362697621570939811358946190923539854946864735136602306920849856831138225421017503117045551721582306222080257569805332551278013985669087406153270183111809330762896225325796796726211411187809378139127319149689928755202685245460447763744604758895292219919749620140424907491845695290047433622957816022467382593409447292675499205523169411493498252035527244897920851380970772446646926292318286986416641059295964045498707315282549333327827454276057066416626572120378941372068952738044888436514274568989812957281778127387027791569595138223780283876317130972603590619152030203835160201493762052610504423469172698895683051799526333047549397999323003130671522923366768749369001969004464756047663638339442646839226440409355980545700047208065240082387643479985771292870238654073438341495863990988086940739189820063440746542562086425923800651800476241733678202734953882641938851360527566775332336333603267371740885726607929990889276763816419467544765181878933409828170342913230332312175431306938958612474454218356143004043382754466609335984149517622880948232457290049424240696857965375495474481505405242608351641250999902776429631685881456751227714987765500856932886312731088643539366437764364883131032565377316622581949105542778914823075015620064844863663084522342008382458413335224898133033345969198983482853940044527454508625857437399193668785753027910455189614055637841650515413459645240216075109976703740630067550248523436144637492900381038218947297459110200807878942570789423667191456435063241043375003959306938175091698768099284586776251012961423719778090736721000614690876568263693969323944653380756054683266875319360408084211969027321563354752416136976723120756027677725374296302595433761370347561305778947979917141541318567928913931998170896210557714667277565205528542360635005952201212263924596263110310910760213702082157949101932794785290351049119544377102354623827148876492387066740685855240664237681389993656790928387507915324014963040376762725434843049431869618701172851667917578629828563794181930934534394978198509317147710055966562195811154973089626201436904727404153433262269954668163538580329338923383171218179536832714546637913759300321724113104813227117439170484481584888526592244099282390994726371225789209203132353572284910702291140226970008987013495101858059985870326492392801825080014921832444749974846421624821790896956540867033978928766034895644186703729703597932225340797300710355629419806574547161407620914029835964723772542723519627993067978757814403411029294967121822142597309718213410683671126472158872024985690717974221535441795000469055762703855101662953904045873137741126032033438870383576134337697724182819439420464241049412058925152109377846873397590375025804132070154899079800113349085882451756450858494632680952944500000854109415856321690377002306509383272076025849525318248908628715554406470616283551379387078667753695503364580217852587256434989715024667221169474802855882259274912873378659740158597300410431093779640367848690096440510507920569517914384636141658462708878436682372849603312755846363592708924397319873886383848673595329513998173064792972627562305574600850514524279462900184304340046251377575351832996785130405020878217881976733860205323825990690222193197970148128474564949293662469472139647366617075613735832846475919327975820310682725779444954768131392341575910123768591348996526152328679101260226122609861899456686314330865135334301541615159518739249359319260936208454172803353117445024980005343553877902617837418953819658486170832020520281164442908929963412114174035213747543561502176113748257293257749872436407960446914054618198006106784363380829217476098866369542064209759255073645777103510009649149864981345375594530952264311085313858272315964194281957503912890095328236539296942134710694480058178547223743689849655098459715460465643490024740240149751369748148899726822352180926572690819373479173182627891186309067375738034636742887236998760826587899483735602707996385610161426691200964883364630369627315863587400751822679085407314170410189836944363386910765551442331728545823133350381776644506534698105657735577330062717798713453803062414826436482497732268208568213395094056409549096957236027774307951403948457196898808351173074547696368194996475763289923534638765503013891489432865801572652320987187501746144288732528268109213227741991130591374659585758571636549001551168803354276455775384377240037574690083093805945712497952599319618646906085793365061455174780470884274044923917608618352801718776274306579363078333122458420524836906334164945293370057343565631373633415089133439304055277176560053290814679760587889621226812787594946454443389531826400341401040791488866677673709854393696597825288610178770401310281393242706618388617510086635012782350852525331198509256764131749587783073733092100572249134628004763495899427078536105249647802737586452921676104533068203314066021308785050146747765895297752491522210587686129558209345492985874037293179204543613638711022429351856060968682143064334980838178196613771097582305265583617808915059740895399853455039049451315586823194777701739585613227708249131957014197086533284692967692287995064923778926852412650021823908344598617444130949299206061130607013884800813096195924598616584336425472090443080341900806331940743547016702097003753560416167940909518750892162004805751375511206268554241928685681927915534626513604749165791451012063245501515260666458129416535971267588115112405288160756243210290758115851437355468706730109342586110930718001100677121211960412764965720475629860806080835810786994337532172507847644220207658907522968963707625370932565937109321775925569895808053181433027050865354949566970870235338363356455815251259245370986673395151352480114631056799275058124097908894398400863565752680173599334340787051960539746568947015446535749237714733281563316469659931693431503765675375327741186870480501963660925253946924599521776787578764849328691032352833836713686453273534214432418053127212681997016751873764748040374755815561519562416832047262073438730216631229350278205331389844721367011663354001249425848418446755884305745895167001343120314928367500828342757848103793144413806966610647610675388288136864813071271684809670393290601374255612252006140709849886374846530972829783170194004503180209754889751825419120223686134207727002013360002350447911901500030574358040245633588048564512016496155690377207519274172468758055462047443775883631134507430136618463393854566507668791762335575457581264018802734947876360104956296917573214527866313233596513810487634583268484357133363497569870160406445600520558361797795043864300568145668502993417501993476876611074261672707158455245386992972720285492540751082126400621782248550884872347164069638162596342507849916881651482080744617674182233445461944285491550551515671804249289997289019374640337910830451794310232996120624026489641989274606561726091631012919904779855084114614508396971921539487789811951567757318996338959724822689228117164558113554664559798695275784986283144677109310750434625475033291261945713099344868012948475199640194938326511939706934127701079836884189957649581914528782466228668457344952557212507214473328941030057577284562564573746013962898939378147287062439780934025913166645293865370331023720160101188680932592200473660308819414428245504930400900771373070677812954536927643583550580743459148917172318549958168981925969138129133157389215694763758157988148534600877544223978409518538638422586057333014884517967103807063602379936712667521169715880055536841036287576862525786277320029550133033233775152706870532039970419145964348606090312306308606717882184939820855210165506003262413726806709351136635419652154665636533871228719661892960615006054667784423653520203722102344838627713781080114566387376198220361294709696672667573300152987985080922705132141437024245788754404798732946605510314469660417921465995535122977099824125087003005382579129276261212457812778562870181462696674177289077912672243556806233547730019506237592133330410329271197570990240348505054771085307934813130286373723124633842023077326224890941826980902853548833724085830973374935328318456685237527068324670932030536069514647246987346033521714965119928293779068380911566546687778925825041438226686349914209650600731759601879504074243366647408717008309067957718255384853360280772890420086192306452805631692815622653544888339261043608087980271401764759593249985003387790486135216871670737190790688223236187301998054453268110872439209229544567627402943440799097061376655800088500233899693005013049635483303575516557248197985902219169511008224213781822679617581322269662140986063541016471982875578895312908906260486797823214231903304453351756839418454554660969794361201497935406046968454738167191532256195057701188717841190054968309552827710367168612935761149229681138414602610108293138519378281548815069327146040902267921292969349138577146684093287996644187617243584484317230581123314441885546235221963856004476632542056204380163224123784857752211365618878162398496428672196784526081869704859954114257154676362095248173757844340611317049038843834621311315057074471500624657941736111102275381149306588259117747397942651361856797046221819459067253462095140591600382550129783467087042916272692815404993178600073427260419750851133860507093415971841886280502656084179967175110297356741418387490062379028749050430818336935173799165335204034269935359149848013777178221470240141402592844847745511637823377004034645368214141194461379074200635357006658395794597630229484213504528236669052466290000430413962110383394119558173976313731500983460325252137482420163933321098393589082147921662111899617154457826409204430751325782368391411089033788087085248193588589494215237144772505875947863052598729438154646123667860664569399372695879085673206766842964375970745063583507230082511851291802827754525595134837513746850409151876168224498404630517399069536077284689942925156807201923230832401669905938363502606243004683499179144073858427233774318516115685122378868431717968799026918099019338132685292626677256063705142751044012320497028224093036360272533053803584793658428444273370424268760689778960577250319708646672064381856435806477949962742411274165177326166335461748596418645329378456199573733173192188600712883582744991461270174453932439849185170816373495194708311243432576925801138690766201372536816139284600496092123929015929175408383268442363276763127516533151174799418701181117535653063091579164297668383147384147456612494764024253084788872948781835718120395888063782640233310599649484865733300104595394426178598257060692009189598360672801473698467086982780786248290998379265643890394844599268078109387448952777145047170833575627141636600621575542430306861792357286090064411023897120611535521762763428443107440521006093971319108448266715396233650740231013193151498183648085490266054257120666334788249163057030239105161130754037061633448202490103353197990000725129981922604722743171472284928769814368299939345489223112101076902990042689570651650141262238981479451436978303679639737163486690258256104136161645018675755024621445807459400833284136887078394543003891587261867511842667801706537758378099651308106376366777291748549118879050585714609777551643779508650272025599014136235193823947870723189659849709479628930477614769605423100829880557646038547578416863330301879932883371798117621115554938737698073323188986353796785366442280540346508891432934068026778909764162384840907695949138377556173581874366856554761997424395122963218690343677935131524098775479873923995930434239009175948871398142335897866141811791697570993611525810133474009224528174559097047729705317426495059520464780403508037241342634667039901289805411790653141544426190527310654436430386846312258939743231413499724352694643999686099686112553005678702117442803133693650884187685552778702881213176535055096061840331282763216344698337049146514245058428293252147985720626091860922386184392506536950638512335496794124883604962588382282119656977489169126786638234241555517165835132936079616711538512544690209129698769461340262481228845629719165037299321974665216984313989970873060575046707461813290929591757147476893740448556119740286733033929109805515341255578775719695953107869567860182824386752530518977139313566778580658786469432211275640186293810239844379903389581162422078485358142907569958500990705387516235449845607359321860824664158257238913251213443277794308296313324495209560210100352568261389842011222019092531173303662498251062576546072471692695240352195506643952395575374780578467331022020700570912037668419665734467734308734758294231452359361566384516674322097393367833186633461841452614499445071886257834526356083454315634379005065190865779839174525357516124170789365698439168996922052556711003102097583261777037777040853452271135389006196434765892753769036310505736188326579790652939749825979487126577381015272810981689575166183574369486246392278619573225578609596389165314365406696032972990520985858310452013855650754395529899712440564606462846080613160957414210908640875041979988706379643719631437786227939720628385614426098673146503780672093111345320452360528821302759579660137405554641332407137110985582398017473269540199413995738373871374979665363307435148886624945389716971429655207577546183981570835254835042671922141992405929312234979536532163610207367443141383156067856017652668993793171087856008905161405155522943476566683502461388180401495044427878849133473057261430365074345331805901239882510830709632281211196997530766737799518772558371149872870185630600989580000605270574014624544244723723532823281099328960490427929930275782904940187851031771309900531052573914036224316464893341005641807931208286060745196133898767811653687483996421384650496127007370612709896408703758530880877765734817749180115112389672032034069779692419020951215895671548826559739138231318299211018090131415332117470425355598615158864489318083881267625554919058386442830523170535088019938539074275602990870407933629651932747399172465162757629519389692987169975434995011567103028917232352313241337872301681047589804208161316198057142649319643760577009467670271572538719769939626021570440708508282612392436318113031399385546045500812316004974765261957758007307492542716795292111274276372746591289357061715345892500130503006040710161539933383009342670306113555918982519277807876740810681428967729046310714258473861799079077902804212810298938363875163651385005586522529949054743104869966917597504263916234408248723352139263189082450460905538173512936144018682953827840490801109244365318903971167998423413093800309760090957449226842879623914207504936278286212081664606229692462640305043887206465337576285231959100248835003285084332106767654666381353287642794116388643908905440197455379270106712009900993829982725440345312977431734515274489137575732204474845110608944129707648925990683006916368797353173268027087631013586636744050144343081468004354117471107848740415615037330698630086055110668652417618013865041989101003047733056954742251565084559932200192602739370759044676941609363170426424766252249917865430929593271889619422649045316787523676085424514536642344569984782406173101071975481403764072099255490552852910237273399461102156688271648982476100068019962601649641276630721859421461634021783830362191543733111628877182701201156967563956731453198091866667385018274886755686049770222419354343455393688964030499685416677023671404839070996931528511760900251322243807382897307694231236876072927340911501353955938064845288789430574003418667798291568765099466232847024526165343728758009243892671076320593405451811642682490010275410569444034560039374284480711994227243199451321065002150068605532066787390259589918204530882427960864059694871022265423481733707456693532544395325297355382747908330590462839253848390330144556115852156939677727670959829919595591456550725358258957145643250725719207524121869311202260599692175122280423851798995362893600372063426490964247270375938856875399448005899307745470872276236994537186485693878911400979687423738854868249752172779641303360875820823289253383935818668009354901953309152302759015015335177342269847481347175851361299378203182876584492120686589884642402017702247213923964721765189661949690890341629392598454412853409493669919492696104825200528941640293516518258907202101573296898138938887770807001258971281820140984040457768528382367077239724037704752975918900824407570312836866881826631743325660097516323915291157608842658045870735665618284383223488733879891925130139848453619169399032508191749048038791546303765501303686098099555951452636680609303479831192960423015310525519509835117637849245194458669428397165416906408623964036644232279968087252372497025084020717762969561340483220153074631766669351247519484660120158906002378805443033482784583406753940811700065601027441530030978696046011399579098471657716285531368628578492673451985731226976255416914736066606297295407341470166103820695673585751731680500316362868078619608849562331546229723980885330354018031826357248304060014780060578785933574035847328713493384059378232716179070753391587592336803741369737175858343966043544531516888572238888123910746117684364105199096868280455449864147077022475455323623165506285770623549045903236265616257476440319614405924489323661475641833703368191596251086748878331880276882095895495469337937251309577205604186752930177730585696063168978258811158516744667881697031651883351271345597733172440807231154238865498620117605813579238215163249131423235851733488599742964496882711615968619166904383149746435035122716948695338407994891067216430316482345568863248469200832400135505093326536104864471875675550274491408722737535370343364545398528288590119688507268004575454610338353126466201085628441672108054554745331045316385249479165754865332197076858598552026122176711632776105670288529404101915915755252145439009745688897373844044228666411037332111847671443209929836802378721599914598796380345324146588976943511870082368340487612089139831130094717945963590682369486576196869450703597001470475747654899673615512230436636648004352659163302576055722071915881672591600372422082297491995160506026314696472567530724546349676149287934415178862714397342566980923455656056688695518055665595246785683820845273293326166811782470646726807696961755590581365282495072381491450804943505911177403245114214211386763533494715459142352597295475830035803297913190451848162097316215534441102588963721895743372500553767542709255945839265692688529596428622872323002136302368357576268931872028880094207523573374997376309910992850778815072278421449057472257303703030611459638998591490426910188571084719608978498408885027341035275194516611419723028189676157964374896544851288280884223630941661195416702577626773348076911628373229889522345632762341480351821423074807628124466987801183879534253121325413592623747659027828425564172859316949424870948184875763337736606077065678529765414996424588364733477092117737538114545401104235168192019310478231514262493951287497628492616961626404957140056366291076877536009582671583126413038277672217236368890582089451529311454927288315892975922489457750359231919558331500255242718017708899167325982912163848963538116576404892131768822005727217882718862644367355297667632737140062492763026586758728952205947670463927525131899093568247526319815203673933412207163374462243506492288275904500468037473960949030471595558782837364116852513022108047347876989730190636846483309092716071549768460388376198010712830581935478701570463127493490432047679974490243499213823861988757953866235942665078803769731546321368647783033454724919365821926139707077281130716393631983972806605876745957656289931944787512812317760468537041462677071369983454913612269329411262480162037983444383976461033305463742661306009304497406671530908033045610580249503629996458356577085979814887430119336037149630278254804563300011945954573505097288433627266056186599039803223861988084212248718061003338904217062521034400614739788956650169572420264112417184657114884830453322457115826478439464902445620749112916182566267808606305360761058675522750513368362426249237938060636878147210975964012785201641232946946470111910070033007450150513991004744757574893731407782307769587922967414340998473236407766407887924345740099407168853180571643762646544374776865699990023087113097481790632613544205559881858183305936609688496906259466245437589456204986080127516988409377759451674913365212899751390335166214104154005043447349873393422360732601384110854596981509156575686349312896419569890695982829335903308589073770900492519896731488198989995000593257625183303607548191121143423518893803947824753516564304502235425730823377744028474499432481659619586616207014497232816595093018779198440117946573761043563375796205724529487645336483450352045385505100113701856726110933341005429543811518777940851177690603897441618627013610314150080977743384748290753913790806600184108121193793828333919247818542873419147220564221998641314887521127009698747207970560083823213645763441078535218377571072243655873605763263791027999782660716486310073023357348775738110709487245659879912912618122369721973458717853682645199868008899301739319798273361709635779638371127952941204029174819232876227324848689658729690421113331987900369638039628149631327024515000429805253541050165301651081119287925887990453117886656642657291287198412086983087989566272762873646332285188435633132553858737870258942455715821374666939549102386053797972149760327990725116217191404802960752813338582407807539800718663892661408252435361187215220087389501906885348418260162087912483954979969573733336446147212306370126365952447127578548669492092264405553583140360359388531095979264103005674388116630480763515601440624842952989543736407226216622174464909368757575781172992291107574147820759954305494260643788304143245614333738392630499344601583549851722813365346444509437230984629116653608422751234201605914266059353363448457864846956187416105804797626371611057793059305513829994197290552225214906531999700699167883154947297649678122034815589818595433388662336284074242315480392856698283020341826981778022566080203243540372783358088887935387123944050324056231354194036067024091447398022975003693848899954475840829912367237323941991884924570884665574510331005970072946280123858128258612070735534361954917072805866434949894437922913525752761137362462789917277795300707313781741917060471199533709210289420509138189577130589686023813887157987435356210763350174135603180060420100725609353356417734334886762296213377104829776126115297050041142953953130854852533107458833523459018021569310190141267207381602093957258671996792129343588199446863750362368294228926088933973817147747021915845882634200963625345082554663048250051333565649065481634472964751740516763582735869973302673506372086437933426229096478391620809510629174862216823237660885488051122914794353610336811057674094775172811950861057507685788273804050575045862439590696902936654046495077725727218155350946620295586766977427796092373262014348029283071697798730271733969002311458288773659087447026255434829431129650304782714552839602667653903942597007420408184038781705814646834229786466012524552246603911194102071479359882363063532516469204439599418904852053013804542736832371920718246935419641748337218529693122800362856181603812638606891232641016341272078732777284990492166590622724276011639885466942815774533610491169178842159239975778642208235348238779567804085164085970911699117291531570064641510573651838419732317782044275420268705811231326643186874679159144349025103677896088923342746387493537469191487744248130633993092617921737814680330970640581808028296127696403580941729596621885333685809890060951640247050719868118956792598731220351972689106590174219853561860900529118606768796737788329503057485992714507572561829231285688088765393898100668148722151130086716000681565616705594899583904673338163242623598165713549725463518272083267195020179190369532176603974577963885510501500134040515109097382473348988866776500081805048275441763558877939266429181918747106686266706640453076264396894652647144611528947265780679269428174653285126823629695057114725796851561292507023820027746109534878533941506551630492978377698222437515810799661860536275257883196481866543356112923075761292961260493614228950843906898593320153600663865576882133263163853262820667863569865391763965092447143018768682514180200876608081537796938404010723896031676041458453699724498907699186133899038043560579539040896272698843705581866036744946455420917537064594371385351870891327547364380484604163710446097284301732907758704765563157662585542729137541489520300026572173611882780406964475227226266360666859932256301922506134812555407519384778746832144983682290200653072782644296057560059095335642096330456042647003812948563926736080360776895457506898667482116869297923108311381396809661847230015698283499564596320214207383470115213799856773743365809078454696053410281404687092849905798007123149195165516832017077532418015146703496283829278870511332001119712412920968598355816114422209217457871897476085006958044216377253628138342732814136482704669463980077066395626715315226086966075467667799156041382496461871317974181963387854002195216245601294007216491106545575785644169934556144852092519771872416837451437577677796377477270336382342964127345283616895098886535628940094465579363035569350361463643435176100814907055070905744751438242644602661279450262795718102082412652320314979835348538472417230574640449858435689729939908065322105201577742189248914175128111915626400068494953191792755638457132697083967548270586980332953426507947523290611307426652627871737453899257360634989440102767773616374787276149639952556906752276355661449124357443340335656650174554811029232851930681959065182858017807972451184365308306861854037606482449196308135181516950568834645847069590149207013963342867367738353680211392588408673004248983674197449175615914558015509298375345847715387224848604909048484151411218162872335668907073950799287615213749664009510080623593186001784117247657274456701928045028196765503341246976707530673115102941030451253232825984431852183405255571148134489996587856756840736266314056133109691925930433170466518444385242146536226830291253599714813043290113962813408674297136250487076595203877766779672865904879275190880600985864884835444614911592607471675625682247566902426261659064429350993812258278278730547198828227586686075162206643975333976333044564590773658499204156789913898152878149874404743183323805953192852594038813517336120528036330903763763285254477412212677640684627659688782021005610848232459789608476272526178827697370641605344232128475640542507510798215633188347661425445725173249638272973757044614427734151020508843587915833774258133782871895532682300286000278763297082776456124729824362971670027588471706641855746847508123278313649323790735984017105116267015464019565145793568440677790592456403458473767053382546916557659315408887374640871420049505294596411353904396833206187143826206883420815594304155669372946425614502537502679937729107114989423473782362219132929260335415797717583084083034271876953452684958062519846834186657869427832128535924457731094653066372387106899330147674962025894802700872735986302759723078190710569366113676052890280489942227555642435609338693452404009832691743405703684274479636949826814795620840434976117576441221054835345380363812814558092356860663990824072451724186086048029375388893740288536992531455917737195588055193333770599647637932557857616174643210889092729007271614479502806605896720361434108045513351357017196056988549809828700425338999023709887966576660791668910951655074640757788327271504013467762042974146703107072268817441585215924405165828697673958222614366073051615301527576559605148506204038948072178574167378596966288493499251339908188384456611479641544320615144442385344171287043381904418011323494558556340159680364374139848756073828099496625969399851428988948477290238467077542033816787924106224121628278408998942415427950646289504046257608792256297436653274098476336359593678646469229968460586693754593135324799535373563320968479598522396564143597526244770025427612451779375888496896707120585691422826194679143449742085889907827037720924898881506545137640443050074577694179977333787146362589941276704495946338773610373038568661122968953517801963992624346860229730077313146580358928168369336968940076520679929781720851484088351771388779095160699012036968279886963849529079637850966232259141614468212895215982890667980556455886616576695044068931148737026078350213097823482562351376363497737533910271199781672540490578212245506694418168831169293975768188373789828775893436820767944691418073956046696135770499603131040391718256494816119696607334105816997011553653832785107485675583432100871021653267952090164219413045216393719306047408348855882000580570190990285490608604437657041905896960445762066695035721694327773535888150422773843600254364718630319567646462030833023431010104163892818122384637969323323583881504186614476167810997363617719765993523946229086192686083146633172373458087028547299031123102933330843097471913097774790925419105781341839732921665435725805513492850327991087232538523830137874342105158762016247382375099574761630725291768514182414066876076742093345338264988636596942827926121631746971419939197279182944180655605149856064784011809074351274893576178391606186747646149458139277123113400103245060218192758427030924336703127346408296515353987798793020390033480756598496348832113908791430814540998164664652725886800100666465085998254004436126112654557995931230073226233167765953809900651588749823409035680925200130820616794140980760907671332389836916507868041962838343391069197643637090732327799483180466196875044544593636642092328614301413372875830015122048963009565304329982490564282384154204183838926585373947615645817643749220986620353355196003591841968606846824666917450775633929121374283645962766367624333595489251542754935851636647513207031951743069709963656121543801330838171271128950154434372851595086698644605761628519075257973669459671318642360048615490384262923681442932294975656997003131956417801262843014449903167773387214239964518907208446235622562703395110611686703899090686086650495792151482724972718600478621971393792807104048682174795956335462873774666976444195725607614812180721350491267319039157010489501583376013920344472132870295223514364663066774671513676266471510182176772387804144893075458572982470289271429516286597986534389359692080818169665732592241877933705811484428441537224845776032935403868786966508001458403608615501086351114150893648542628440645624048883890745120857751994055570882557014110036138108524996821796510177686183586713232712764426962777637260347754903709206137039793997607570523822007973410652697003211775568437604512072647135220493899887864988373678969310344298378477154189827562831813296389771378318191913242380822403028205744469333534858670850379461699710200345604847918361823542055259519259745904117951179783277624164171135512664147484343696836699576851338172994754028591874391215469096659982948831031330414524087839881805186916826050817856426835758936114430399802760497144797894857455515837402897560435978766986882466159478023787860224735132598319929905148558279105378454024427541762361229926065234621856625819558850530858200200687688593395118365443398486845074835091013121659463565186945000481229991059509802540209071236995786270367406293920614298817781234148494570277726651409216807953128027628038903298783415342891080959167533194228506297646505886700712305837407867820083007659628319431284636760371527097979608417571334860124555713461773533965961420513833884263121960302100146129106618978084902509925618801296734780606273597829866219608544131031193066382589054465525822301581469669712426851353879190628987015764051831597509968511856510492392025486738170470194607908079120039330699352802204500189745726468735368730113050623868767850011080975305302883358638986600011776919579093302001431923677689111523721842640571775863516191898337953687671588569452429556242523904093439089038301461086795963528375122609781496118127891141598985819654010656190259619230720679957854291433440461249166672795793474602894801569724583451240142153088827199416852095126273361148982676634598787058407495143004266736975066306630764029070534414765825347878007615820840431642751631957965730767743116275914640852794085256483037581937783707583934961653042390130567229612630295641680529951078112030212600350750440257745939912709309387414599646369358883281308198354961342223810233055754356946334421583981283666357586537388501547454072289946678177318898068646774591989954553403149051416407104411707432352517283425068668827474323023362455561621299363753802947741981493112656631649313888999441277143437211738262686714498128867106478209513743491981233618831796796481961186080108303413414905180215638104846397317787097078943328981416457194934346405219959178162434678640432761951782256885335903459810399255707491510899348140653534892172987541795712808436294801388449381841638255337001759280660481349282207473054786106123600675997972963499147328449924838399102027389470708383221543704804942094955271931582553840036971428212474614126396338545446920986686443262347885522369433900775269570194620860963618895737941126360668258169547839309077719528039659807450907939562816570648026153827078022261909380258778294694119071680452057620150993148319355636129438309082552246343160207429325428195850074041514279162409931146239456708045883838327674096134854148358186472474220875489194874344814850307239719387264262467652179094798701673686550688262263285971071568817814637338929810155703640864965412204933516021833003172664593357590372192164325568432275706102360548629153487287734932042514169119213485304764482677079601219222582200035645194801648664206828345636042877509585984416212214406233323267057881797607323955623146061900827505748607153425751691807690888365726043661590890638155436666085929580153452420535377335382444587600563308801314679225290860022884601603964697556674230988943669386349257482291596894953784758491719039332674356774462165261630861576689098390739760296369498080204544831787205888338010250710910968174441190383760175787936799820088516952182294134339599208648034463523148425882166397255528054406978705487949621651403938068479419230719737884833274366827261502220354195024230476419844978650694507608632581106212114323070938147101351783930741418984616951019550134987224712879161502821531736758883766825568095310902873315062006144824369528487790601172878627737772935772032606204235634957456173272472365350240094997147267918004741254231792989650490530812382297732553765342871822139050484616634577498808003649771437570466026588241149030815179234439183929284404386654872256154788823473687356926375255131662978066561109883653556507906973756160441873758953748276641722737729877679378089618206884394483345282717768085807255018698467698248814979599124323652556312363581846250512554075906445930037658369502652517397782821359374942715770510067035660217489625939929902442166847134714501186822724829310861104986646448272709955489516271904334965697343680049766074895102186745028002369713033869390518551604563473148826092758876556341063939022140765557789552838507214307163856111666227688459672591050159125896214132101445271412156549842253245297449639120298040923038936509903171135276248018872299758966196471614084559622792070429033570215947903595320474538718790113534617457789941699461116844766928177924858666451794741247815795747960324923969268054913590728917880085322231059104149910585910564325035218791587203848489892547432284190970761692687530622333538232361708055498867997902396581514016154998414062872545974577946145770777735114946730704913395816280720938621706336559087575666206769467644769461389619732256853120977459984043556007708310098247899853420772954066689384326374150832101649829673091333031636204621477836306922749345978767869803830137090046814757226461758428178902133346077330074054400182544341068955356225552084663096334008514918176002864881253990499001897440180639387729654356592333401303124281310072953229621477459956848278529929551104627897576586617688413418864969430083897939301956022674110745594597521413901936899112564048728842042405208213165652121676125465951686045708537820516020185780492322476242461075840420172994644382500216602327169393428898405091185662305160268348440353694442042602144471004981275780855404901843655481184850979060050192664246403457924281276653088240874849955967639895422042865232161637715361661562697500826047171244820868813431823665262816003303756474413835283390056320918021349116953166286164774836024614296569247976936819402802506277176708123551999744306552267496483760645749176623363807444955342671013680892552924310602153954240560458670726696674652848338755307492888530251108610698912885938377166130641739533832039097838803804773291737300592587802055121649870560728138572682909459766293498267173879952928664326592650311261398781713082426627099950262346618863006427662922373223632803659757926732795370247241897193435950012872270369455493500720229559323974627238979850842512978326998265538981423663319675723360620209565768175825885376647121056989570693280579050016460030899662297132340260580762161073754647833505128164167387569217015684456887146907489147056278080425855449117029051834447409833052789129536032482063171213873609469743266847728784818242911091837715074416510730826344118356386727497295862819103710444061944828040009194295131133168063672368244363924992525320789685990052718020448083321647935082431171272050760400788800511842227777185483904330264595380270671066209454667663592579010553544881441051925368352830596203526309139554323668522500273490714883089020391530617220416353517244745105436435161331433856746452427130229615393722668459456047556119451438428748246076027021775965805360450778083380770192042641126448119565622735528929139028657280422945621310773547996256842066576397041699130058455081325573245233631184009520860012430777432920974459381156189950149535704123039506170209914368264531294227336356293106819378828314661395964476556764937428064740868820084418699671812624913764829444275454438925524694117052217810484288506644403026099552397860262419254214262150424636825457408510023123500823085428052950500543024321385849045298130669563513545012942409541733055616948030109337659088356598967538309070401558557779551890082745263790941470808547919343152807436748235895333310642152773277608643185846680400020646496869877429869736592777871207339652904207724704548727902019726063911822548234149816521865266403766353484922332163023731238580962136871476545889901784038918160321518679076281604375688312864828652044291286476620406827702156394492674800231010872224606294711137588149738253948874853913719344595074911772060250405333556238328079134003080360187734912055463859066851769832671135567332739106746041602915029162922992864074077241425626981831094476992081930413627444729586811122613920852719965757639558631467360969135771897930429382079693042151016144849107419151985696739667155104831879380693392096740924578788953203478714929513800462699562590420374554473150346070422589634936691493960332112511452540884133101062302426629616239462723648367302258316406169070979895714569563846716610304781081899790275922660105345907332776007039279906128349911128537630494002252372773611227939667021346238196915004160568335144348980014072497745304194189745706676382671080935855404117650973295428852172636574407216559389212369355606568898396014903319079955299845555929879025600153401624646653738920149447951580219246864588890818746238900234676232922699245655941498277139064372014046713433875657410640404751761418366638200662887123853286684591313920080419346206367389319499865069552648860290677975907040196035089786738851052474331063576772741651351825434651755396105663927089661722299160131864869319104587884040561513098447814329228907330788555074642439567612446182052305885262510888946591711528894794409106029699562964558934794882370389807975181163888489137525236992434685678747327795472512606911598351584515833233602273177319502129722500859184925564805263604041682912967845690801805736962452583786971523933450933848286088619224643522646114952981772184456557556745199337881735865132016990861441449926908034956321372102831517872085049982024800810406094873364855445849599108175268114775274722351756740479166930679401039903560698227573098531305763127146309365642553299603349463451985765648480127841028106800838040557302780796835428916527428615905377422324666682537518995927726187913592874936034049557712864472577506020498403923109923631893347890960283942148410740551816718642187023096900533498322674166376655520489828114276355524165782124726107207357273715965990544114557907610591865142007229986335877900512724018423712483056977201648551408189226159058356923353228152828218523157112907408014122154806860322138784519761631617783981917277661545929421461579003665475867032907640310773821018130278246725527555795425441485032215184828443418303022011105219857027849051177389817810968723798870162783940166256736262146741503783896998233249408810770298820301662521809148670574099795655763202694430075610835214998033799169816346530584581541348796312688683832063662115747392044085902060796005649501683446168082842684188597216169264881427918116435032173170117171522205125768018492982748542305656079141425415403655731115402776070331319950877938437897664585926421349817364839541622320853156030482382550122306734765118398939750745153325584725325535654005268715780821529525214777323084950825758145467485789673470550433735174710317479309094793794898299371844217585985285569518199995715198966763656254550463508754620644831603765683689252537027610698387886222438278911286891601709384990247324382391782637239568394496470887091294089976137953995709531209343689253521620269758392527026403144719318305890370322198354633051837071877992404019098133900954044780590466108858725059841322380657171004220289759672190794102416344600456738897482488822706281339423823280650905423450417902170302558963357217201616126493996370813920535794497924319062924108953303929109150181722687072096774045494925191596234330994073036144247199697629559085794494966587950769070859628362316524475201796103712847981870297433847185506688110371727442060213986722313135379664368690017975556552725325611742580102166495489914076461824555165195633206650965675175970990435852612140216780325964929854173921366885187779062353763336824310400796137388810919129398846977018239448545528769970410064592112201782644474144942348738953025983366479777358786045986580127845627933162812936126825145320829454053629285186873371552570129536711852939003197920604026887978152361334210997108933074620626899291531245552405312361444141485244809254789907873112641450254960846746185695438375441367856863872511947347941165641183177132238528538636084484379628562444238969661127729180366271402331969508233843340407865433954610114268482450978614908865892039096306152718704452621895947065779007082213689397866192131821076729716172205359114174030844122020687694476563250043402731868056083796419773459088778124991691442277058930208172444822900049211380964534735702026297632558702889735096690971114004280033260907055256746298178040824290135437052559224046093403714741337285802198598777389944246452567756444272564106145572120849011874089673991529445394618677142871109225945161685413253829210585481346355321957535922137253713266066408477963271289807703979511178300313432455341656873166806706048624114335910463152899116084117234243261548479639227917246148745198411892931858488669240904052648689498131688623585576565989074305461791845545447388523106103047346810155549500323272521304743607990273766308531475169490821022438397089835373788750534513752189775015010518268621507725531345713142168621239805054957609045292790258178629934048758308253934259016262168341292205223218601951944114486183902773411400005007945248605410546301844678875422168612019293966486422329654854428165360188894728732850594474165808307156333123347248974096271260164467756444123240038090999691266654265117957236562060764948731643345439626403466521197004682088157760315057307296779234496174543622100790013062622965620049281968059690771289333062283103777047431011520307470977048427556899176314757300107432280232095190584193262719982455205769789612680480925956316621840353939206323235465903449727159737440052989173762710664294610710491937288843151851475835919414546789610473324788373095113801985587920084841933230776834113301141847760182726212583058834776934749914628356759570549037249951820044068400109255885494745614421234391738569722457628554271765545068934726479374365141542621318419897754603247221129584848065360595492106675664875387616024651452129465117859819966872456892241814829592364450284795112882973040198632735075608729616522111104190807933982039373875449377639563017792625863004194651624367823877639760302094444698470041591186668766697494283503566583394021540943952508405330559295081040834983985217910432117303438053250246172521702522699029745073169735557727448498371426501621588460456261845699873540370264087820522708284222852816756828238851072703031726315846600293531627407514566061788419061069675441022181492911985258627762856000252516545527618580400076352293431931728657151168264870854536879828451191590516144036715140091679075726909320661250535511936577519788740528830084789392265278110272652910173247538460108496939192652034584347392559356851963192372093785406460367398941046944646219269187335710107038680200950241959918764260596054331272031205683225859770776857885130470023301541567704492569110292754844891705602796863080986387005063218853212743862081898543961524417149519405774487939397013345581328881803430942357147839473222244852128652021276892514947067845544308679151944235204974417877710003409266198421560007372558444231885332207645555460985756062019496759171152430066033056114630698495181453873800625225194643564400535768665095452107730897181951535873182159498856543128027054379337763723011367420405680416892358421027410510279553337500013831513586774032580306173081942048604339722132543394843953988763426206275197010474290140072389940994696292503432569278042772512166924939087926595798874885752775469157841797515251956534511430150085719728115164993964779635888641102730000039324958291454373931032361814211282764113970013988240193368486434783089457294168634011738704749326556582307365526271696980792386951439718646052282774801853198869110630326852577066788785959263074251106488692821623464187956852620222393961399786912336809294595027057114357623217439469285418596841077347336341720962655167283481876069613056361337190238520052341048024156565236672277502535420529962140605307945595048052991009142882363348113494362459842325572404791859847436038347689756527259659162967955545634220970363922024904994315512353927704372983797097084473278772819210968532381774402516932753453958804500406680829032917792868404115471146240560502876949050546393885937712721760498025018825990036047290815172162194096159561474898042944197057677421911404553402991815677195995566379491943967955707591364498992002412826637856326994997711837328893082642319875323990087293466237057935040797345768244612383750789613600437295639975856083344281224670174524449501448066137176264853049128427064698649497002301733027639424192405845974414568932611952551905026317744206268666307863075186080006567909799622530491385199781821721043897692814400640678136663969733530614288291997672967055591102812717546044540515212749849287386689286810902212973232639890861660672638754330635424347505832005595002418043499123322849150893224178328531608484845570399247010616311731160936828253486049361905471457204906704066497262468851743425164238542684329820718308620027373350363981427394037802895141053214345829989529515109895546327151528436357911151489454858900748307292956400787797233158248119238562196780497340035469525640689644219672032811841872393065488834607249499510143314851720418024499902761413556253554111301794702307446845157075302585181379287126481662088571318454691448355272493121984152402957081705485303437150908279919836252006772866878081386809951783697552382902318255334766827903714183845625824779215405511346980608506401562801712874049436357094719959483886615831225432467106885819417709265999501927992151820374212474218194733351532156647773787606221526629053250179251221128033171687765592543446386631651183113191489419916281953632327972444568598523802932294926086979862326060226645616469493982086912415797277355765548636260147021850334115937419198142486018767457493773290910167859432948582159211411896920940007393788922645862942550870585994537166139741337956976685200153508219212881389663102327071053952953093333436708433627884793714782634725488141211724765880489162795357218238410950377947237483432623292402284026084452216617702530063028341491229240949445901103928914569210182989727992805572552244352472427045800984823358257456839836968862386149076322553152358669401870817691157827433667468621135071784614006896220177901135619059829846881866471758226716314174522889625985734576717710232892590282720198083125875323080563769965327974820840829659750306223652648075277971459049693873573536685542374125233512890387099352444294274954130618883716451007745378129565848537253638502542290806343271424367279426236380002685908351076110808834793969988241387450450130454089035658526779372000554911741416106526325893999295534483614479421712340125863460302511654018559043057151752159459403557084501349854985962772361874380783013506444225816408089239693829727511937072824590157169834371088298464256494970273208570482746512460484755549407642731373447837083731401466581802719624496428495819008925107878113827555657404915134127293685753251758619242774826081713968433970186441566552575655965468937936829185231736450723191399256303792086616443597284810381169330464422601815201991228157483241299814171881456025982947800373330083029177974970494108308803724511778889145620347052875805916825539221447144918360384928569800073034199845096540681527323980514885631230880363191761031318905255416238641463810198205668307786281502257483992942819104676253455826803581821455310406138796873954036729545267084798904710858987267252070530583275064885275486958820665234490221330581030254568447462291316035059085370172814797445990121370948282005864501217495746306307674249591120156354054266653561935735348826703015278150286909885219843299941442536947000795372644489763940684305852675893959439045830137485359348286451075156945614205739661222513000068567342827490220176313412824982438253719339126134849688035181339761719597047533008470037120119352841510756951684287894399864601426737773464439633837911024193277298295858567680359194662196945238224304612680488978721159609655991472089882277029363677148229955470764696852403996665119637787878289867249802709525050070939049583950425130409228579120666981556577865655811617010710877138267903036584140278229118041510685458614640808366710675157209109286193442555698329804852980175787707090460845958303588263190325300923794980445863454381582352545331955406588604912315013617383958490463030997073228246547368429611685081783223916519899080448862286457635153153830190928101132847127516169823089577725186709098079504299365455981659894254768302863109304787098804449775793459006179155086164785522753717380721557813737422647384426314379930137004843954656875027666698797093122785465829485295169752386027290604788108490427020633866391776182917047949658196765800114519405617090109491727705926634124928928230970638712367333827963206046376364632838290115966622277158531641948936531517561525986129620948293495365831742199133869911386013081188090439243841841912494317624413042633403367492143840424916158769474664435691648778064431119773019786578986881983895290027021181327172258756848951513012297958794369846755294322081968126581726652141827473932953870454891666770516985987786251642055498004899894667491241903040722914486882287767425712189073363930243313099392264385632929501595273894389764220917564048582772455329257696165617204674721165551846449804106989785154973204698774501394297507915106214773217858862294092666874046424962678160813863954720350191877721654205577583218416526765910590725767354310721970230188899622990269147839748783180607499231409565729798323973490895793339252351775823497971313800093287101577354385424396330348231567575216791676145083562544016704024145619268450455901361137648134226176712941388782618605082893563999268570160877924901139089978963058472681506410121490221448485998766415304643900651925675310043027401361063245869906802079871559527051517663480200785374803255321421206427082227477944017215133124250834525470662158625181378469193049438509819923454545974575602183094267198828368004249698371242763204381660487937398974944430333146842861532907498929375747665574229834160882413067010386137513996380648110134917522942550663589935268841932854657450764339919684088852193799217025376039744053361510449665882729457855009864683124462860679809105143967599081454978910911374599783522970446770067075502703897344757234039677440054100158107708517646701106895601628464346380892534473299483116332848997597686395095193909132621946910379123827216615475823644401153907739843992636452045848033412911062219143539059257450560747354315736207921347517317773181746558920720654110693669743893764717146948697487957887888308069743561429587474513357832424474306861384172360151354510996970269209560677188829803956099667300802314014048942658024700449122270067456229336673925693232304944813102734700932547061112816437707656693002102879594910526672979760232546456388676959783950446498966498993902228917609391355119419847196466925076114942096093918931563999416242945509344511964376690621155167312216492607746316259872801534367048698569089422622791830882309215635031882980165215251143211920273969734379170838194518205989613308324311587847038406050319300752147114848113853224419267535075514162491998209291085690172370936834984656242785716897094410555439464919116566744468513367126424717895644402192343283281897686993326860776322859652102171927491526580856599072404790406757990984496821699870350723809107263759038147657457094579952439340844887242574775221795825874260412854859585773179957041513094979591490361586348763496435527864656577867972756565120010850978338054636849290746380330782980874795399694006486904349959789942552979683557084919060589089130439686720390284403423042010911515632127351381605745844952042345383376266031607153395420270792419932116670924520860834617920427055823945822556089882043721169655530720252434720379951464674537317702046151173199903062540442345654749012078158014577384116447213398900287806052310139694836138126556061454483195061851068795531809643015952696036778035200045573982005042881613066711010356900080066101118229427475472043325340688679584206960181661695405294687558079427459695281163526983094020359382236351307486086592604389453569488971275596708418110720039297645274179422679768376586813630224007322590707108592430668458655782670397909458109126827809125159076836041714308168606036476603489291226272936864057284142508796372454104352365557544809982045138690483364415955353186599442164177467708578292768853295879761882272005510814862450606353547398240871169503198829322558662975761664422329185879948125158682331231229229523314697608200081040013292655655816679198085328810234554617272481873500243568258951980997164116838322717281624479068727530362734710288121913167582180895786414255785092999476844185454726441487353340644416711720035327832997443992464981171845517313229306823218538241162338774646726952746830191099008347025776903713661154475599582475964575791323335671802069939398206244667608925061997367185690328799007747195633726351110289514359298510402308483792006203837883595046784779758518031426094712885800342222408623350421816141960127712137523298607113005182397871201154414358570308818497187495823468950218997890420767920951465531378700104991526816970859803384884119340315078179784735445311909686378683434178416109560920341002168248709411187930979667490143646178902487229079718734745957594316342090623125147490883340055911172627032381593913145238996285959486929373430619957171955260592638509571468399464277191041851986377045083858331987892339170692536835893708821097765835827285583750130234490744546064566270013120728322852193500407252155480887095874189610417533405865581093224264261140240472121091829208434817656238609528680177205948233883737834636261367284797627897190647114140001772526124397991905749628972686231290450989524033928321181739830132220780038521034466873105846088241263723528227356527020847156385375520336157429918083995251065254411350870275315746530229236782854462864201103032280444159031467843536323015114280158807307917565158130310826289795282046443796462519790824596512376090736692989878346331948833254105362826057642165922676372397740196724138694479086825388548024959072242561515587009621375813790567278075283712955468534189620300320859434876224355271302587584680805508510036516472819700296757466409075129273840576246030400824035047179124648722480709268004623807094994497146326523185104103850729338122158145784862843968994371604223936993286566272168637078942832551143313047004764986974638734601473000390136330168450361745195045323207311086388423118105586093949270965079039526786956621284197487105356633357601265437751436941086001841629749875242855895114242200702413279604639677348545525235341809989070600967687893155661875888997681807166385531606087933075889434739632649517279642513989335967000035170689420267052822536678022765761160505582906258666470241030005706374935125303549436527908685791982373179920672159932848208588209445152318925370128418051230081424208393632010012409415610558010657444238938923912431294124023229079580712596864642900257203267919052327245767022247714196060997626574997485465489671385378949249007867408393336140631313013002336776358776600536453418095894023841582976339845850941038199936750913982197386542049887623209087670053603744697540639149424674419616078762108847068471337281844119082714382474496478823053874882251474119004687870995949900144942238131758502819524649091064774574376187578645372106316083555747798115090876879489488545701209121410396405066366603264804090665729061519495189765147204149478287830806888591164881474680088849258663724448044786751497139249987714053387915186216044539086639545412017164576396801874276235641638779251024901528023439958880457024305373044359474926993105705277694772826052971467118142996136095111110458143585539800931711593740515496478523661902746596313378456171224224346272882948269911535329850187820245210601958935645060403487571515378931461298581195707845294557875253217934996439990819986478549932655517880288523794630598458809091799533674564646105836579040207729386534823653390426942953959988316459264120128410005718154245670120934976241863043251239817733540114132624750251978763917174893064959078191485984296077834358642134969679100039079480162940005822957556567096718885753384632685509289122695904361996651251542428530979903166975102388314152969522525884054208252709192305070528329478826654179799786685219734716201534623194158185898163205230468556936375582720740045712990598978787339312686675453066058943765559364015618756181322025654598082106897329713379630448161707629156947973224837571796168982637451209538353160726209293750338478096589271924413226622091981538661138604142281335903507968719178454517464529730745032502721678112125111656755198529399231252906545711221879303953341846244413447276615641110183243278494723868113443394066325666618814720881075539848543436751821749821312786620374094943439669472227775479182870778214053505742622636304733649217076736470958832138372306428722867343313992565959257145853625896904378372763141585736308773642909780375188618616087987276974515949352779224381624771325318797374038930762765068736898704016298983505267459790110054792205869473810626445957676389679951471087392316176239561959145942875029909342862914376759662297060187930277851751634320638782552815514679097690233233574268870358256437724960876966200513423875452382761963814753561126276152219592459598433269199301062582305126917885743507470673530606457590588837062901827203834757831052287012067703850512836379968295908351328114882804246691337062630541399088096421777776401688541826941726724370085214719248905016867492883671192883806501462910949585454269225954221581862297926017076782020868960639865410849542512858930664875950367484516780859873700286330115588584928616712364140129091792617787045767572766858088964929610699462937201774479109248346436001579168534943373158374495208144785226356464122302439777975050905420001782732154084645851860972908853528265125250379059170839757704371315470792287571194253656383780322714625333416074950768547223918143970511111408871173308260614204492315410196380394697329178082466941446623544434370346014302391891435806124903881289182608692141514879914177989075563237408597290141404125043006940653696411765049774389316149541000872072360730353202949396123446105443413422076232617521709403659191492351097618726707653011189961584679602205112688264139518619658843353090853100346268755002073020879227349105771676702845238316374886762538568810869196427857700814908498482576406136734869216297653701807072847147427298649406226395052061291957189968914939027374406095204096447308031091929595072584456131224195077509462433029459668156537812334150842188667684571757882496858775845501622844212835186491684081289112466928694878592428324242393006481250611196968143421062579234357735362490885442442220015424544540736403919258672768637896338754783840743839133760554738645555589867261968488945658679292340033443720764345305111029527695827150023102023305008239234204135471375130882787587456757206351275893277433695877543453623425501180308019453340692084056319013038809413475226469594692151187158141678422512807142848794234136024924251417985830744127767998150740351033647117365141779582626919990528095596652480425550149499008008752408662015346828032848772809436067590025231819119756932332806241386612717793144078639953205206790749891854199525218903640571723316545462915672378938909467421752112853933157104464464346516814247013985308564571785463012348054820904278535418090356925369095694527836812316858432924767088223226260665300737025662032177778229585247019492628242166762260554938710469747084162011800242584232900092907618543506276014570970164024312882115015031767070804231620782013833655092818566705418553429284498475756205045870983470814715266524416137691263908539831812356843741379817224180698929857037757315517346859244724054815336605406916348822350527383375785626959663067378653057317537837955355285227874790968643380629563068435169659428891144165953875509706893561148560043037674285680135264635267165130376277464533878490154688578849867610117499937534516498027664772810426809867230194262130713391236647594222121956407838655543853751295175658593911079534250705796043120405920655160391529264935081755609176585201073178224681609020367346510753454572504118742344446108842773462131509961655337304424025109193626255060494890886751538732181587240672153801476049488096344508132264342805042766707676574164112223800674313498040605374838269258205312494596660378479937253437800680607012787169741451562707465705616434021057959336555393792265763560222816543909376417687994345114716969634405840163476911949606817640148866648149272230001706504753321967102758752373041236653328050293964023334339795246967638738234670194200502823074988336823893460613140073384977245608244890772383194847389519364374323178159951602538419035944663857503584482168972110117119855792614270238797419905376407740945852832879764773179445810644353064871089341874684090895625195377872458288447846629931602796225446283660015202303717251599995130030015086622415802831874245752568220827089813962288893715951734399189531428357255521236099193945362806828467229430180398886497728390624162288223968495767945304173665297942889549447532138595507367956888190563365140179067950926095143780765742202310950487799996738472635278293130804910271655431104829063500672427175891835813847472205002166538543734579581603222653083978828837611249391464307792521912305745452966881705635039839959864968776429712057766996910922682179646178906012278783232615424769794507508788803756864770425133026140414918928567774870312969983827993592045208942414236279068652951935447351968908915945573728747578712864350522449293938305654530213829926642691525492968888412539975841337878971872792903929401917449452769471415479266753799405272190098767938609098980847699426477798477179287848777374335852785695156290319945752784336993333434166917638636645699723050617386468774953174847152009862187397898043767985512351812624616175478077705818481792364118442286027419479703221820003760346770416487281354699104695957588043274402534275453829910214561717475562701866303924035547312991583082413986871475299641336801917892578289784405257564419751745163207482566235539394375502455754154508438070036570814154244616445715116433914451665820234272752837083268399828918043312476972534047063038823855762474045923235640505718991700961795183115272779885306385060392090078100320808986154143746557397747975097601690609096652513512948835610673087182765051518649894142710049716275819968383894715987124023633347024567705010808116621565332800574221711939269520861550929397567882637473586836545000667950573856070309201828664297386396419534044148485318124312777443361217224167064086601062513963975138330111868961643343132570616146234330932247326781989490767047800754250934111764654567622792050936091066479108492883457022678813411165448836326150822411873546628436823218831558034799672051838687520473469805040565199373540437393508517118464028781625939699079529791719845882440130396858900153186388542087241584098076424983879773184824440316005466707958303256170776295584502110930352188880536070865218148762186739478840519389675295909256569860954086934281813304366746911479866653579667351132174955430375660104688784619280745841253630325857373859859382353171422609607053194063194840227383582978554314673213194737064756883706748792712187384489897219186850238095326887233472623196210126094208449534782074484256924243006918857235954694648072545262106597749392896369886580152019141593195044129074611247072583540689167154268079143332395777494045092499378847762651609449817986666579618357407050911159224313274323736480676051797453257394264720681073235730732842212986362497140820193396832533314282830088656632742481466009924299974295876773917325868762718874594915537055422775832667388497333437679302229477251926650953488563048855213835660376018777012631719247216066361236178353793955374121056071014030305056305604724985211704822410230589246472054880967127078026539925830686273807325204775608472044331461549410481908069421227465377747368224284955446022448417320731236838574210635080311474629274806086761581472822577228485722944305574139163020991304875847003653318420181176209595293779983968925701824380118776096688780059468091969741107117275529002515835873055297865406359213119052277087532911184328288653618568142607787557351645947416884911540183930023658229154883509344898356688798618095863041362263156555075065630187590344002444718554412535509288077031147355310750748739097474295950494391748251517553274751827271817326494559876905976294986477457585711552247225793232895437653329269825528027301636316231675865207881263884247616910244614330776468263357698186198011081213913767935707204992899924803694041123754640023952874961351746397868545863276121092690045296787020029031555125625240919536438745169855381732900651356179597168503965067375471995674305941366895143900638897405970300823389559753607180566318263648451891472434939614821597963206359964996835929554680148282890199132860482530826729802338137186766382776295403839290223747938413992770203949303207504445886313068057597520438796374249110101935912383103954025538684093865168212398547320617629216205770280756880772488524822171213491298801799631403629463217850124872732418620181814249618376395360564908947405248628292306384536034669175698316674872505237646684252480015015421891681009539183697961343311677473611704628070637996154811509520561337612074853742892674487220634014831565535945826533254909654221611886897809486325244673231300106784234520425886208027767212873504012569428507450543360916950953693211139272010091131397683002650425005148692233026957567300512183580297474566660516607420791690250187309462552187562899618053876553477357734211294313379366534169870815529758108283947625676979154529982511540302157559500205690291365308993159748575141840834792748310969481558827853545361433700826696886521405635134507292813884511428083910602983151095998265251563389077584475353844045220111262973649515200113344886286851848916628692518036082419150944211797503350928074179757571677425942992011751784291929973434636540332535686343310962451449397769704399375259693799682054205037125828122184984732382383910527935784494663022140578930436292214587885893290310925111901069409546784277811411434221463314615204720058142181121089665221269532768853784790584596648266546007348247314572279134688306785052504367571956298114907240053125368023578789037132931546348757384829700131484009480335201321762672647877170978029282135383176506241613928139383968416096318085502100583798375916584523114267071717229708046030830593599470216270447562137784536993989575801072607178465153527749514138214102246134662595773130213234022594199584764017337727903575206616211917369368247949339090820338567697926052748796354406792522999797588465435066840299503004758491029667410203088862139277821838903888769741874640427040643260173239427047958611011576421277184873456701687952327488038744068746747512037295045874613545231813777212937334058981263181075062045313887365123373397515818556762500152168026383201021338590399968429793499527984083341950908849584454911288841403800332136546437707596936460495813808213036475162445968927890684193188687858668933904077217949268399445101804347822223271774094698365439381394836206081120921123394202501641397746681580355180762640484154200306479512360386730771473896739008321676363595088243790865020750821997399294589066755005584016233952911222956457391667646450699556008803037239753701280092357018306157167526833472799336490590105927180160761259917128863790607719281719240908196269538000738569494540702258771755261202392497685976578549707034933722921717798572966007279297860998648900774845398922189703888327142622199359436994890441072687318620698996457120976316239405380222172824556726198482641735165185626098438327543835685738503039089734487935051390901890586846717824434260639037805368400315466978701840698268632704083327698498734119508572386285306367671359047104963887479935406387925237790147673529422213015695847916097572519287321835682367230705790127633795238581092661289797302911734469335407854760852349080646865959559726117677038023501032848939305874369029058371641705529205549629402610759167859853487167505514657741031789965335959898365639350832555859924746397632049500724088115542312163410143976858145473823830749360714542779019625869380266687095071097034908980594743908892419617489573322480288619922543246051167139793290017556998296910908920373789786293709454231880885110953928369441768265337106536694523920043418895149641769213791801213695577360569135026352041841615390912146733648283795734159606328956013063292257315614617609381050216523626445007810281207141416308739800673692886919680958339626015309093464897142164093246820684438535053985998246450219091971782063031177729079421423909073223824191348182570270421706040003096850835289904893922651297162969364017501551329652339985279218993024911836052428391273167657160258360985173142886227341975239296854381673174055734888687026742156279853395261838455334676416563025974550096647687204604517128317709802997301696354769404749923387179892377254502053539808915506364994013610007282774582610087548654341011050984246414269902434253466241549626945380133076222421915123153004998129194598013146998915426946352039396642557677860102881371341304826900938213957624796191793510450507920361920867208550031478837620951759740164785491642452000580401176433348011266428074271936206742341200758558855604611996595061185333066025382284742581648239830584297709032981892315869726856618710674189853219552836032355455867517524124088738576374124453295518265884922955660530061517439795099256330434525026496718124652226820991816862590715555738376323429505684020138932026791667247352517345675366443916472754120098032709416679307654024577218330038397496848398787755541429041455372236398393888223841893556689220483889385897072834311112205451833358429809735947189780317890338929261143573119712402745005604972046747752618921029579094035706370073939073189352619784977472994865578143331307897591439236767990074666898920737395620697122551328373546019595855490005389672219573162839189982135854992613149371934537043611557884272176414379766474449272236214021384530347322459074436092239501391848590075441769500679388891402245486165414433552913586390393195820457957978374561617603951404401918760767064553787271677640790686781933790628174998892868651296121699011467456108852919956290974353991321187785051188287265313202154607087639956055637861618394872555251267349303010165582700509638933963588725702535841611044103746779675798160880063837468596459715779836572388921017324888451440764839547922985228044766114992268328197047868065142825256875059521090150508594491792554213219031747388916317990206677356528295806161938657308811656940488844126244458869370872409418995653864078634154617570394313140325822974850898665880580984705746190089003250519655476631241846885783464637871184443191769533374758794712979302202346374310724655700117201846116056573264756484683102226201960012935695713609117935192615027173128949100922781770041103973012034625298875056734907801632866008668550249493890077372486116613124199879474549169215221732093404519875460679650276011419409837921034733453854642975366155507088805991360533493615392866380398183798947107673930879457349445101226280334821755339322396483808369656314623652286773413015925231857442859439048098474885068013133035178891285730051079153789053917376932393431997547455525893570075959403722325409675380472474750970939758846496621714192186036665396878664259158037658704052179281746048813283320477257308770084451089359900431718401262485564530002826192660144497367593180692692201933804368120547272756259625191192857769380194303123455414282303988712737187692046425978184739311770371897953773626231408349636143812011118246216967755462624692387954399940531093159709776199846118867922777711323980891110795902083004362202631388071156392906060521202299281815964999552295982182950935076014566051407357721325663692746029542144059899339604659264945125825475591805013037572818244606884107403661573808822104514698613659379965438947814208004354133579389526416852732757298369363209481639771571354168750754824905280379996867456010168249798036889154316221431995689798197416249225288767941702829279885399603345094278246543539532110066843427210125130360135696002656462171297104242001873524036549032150473535470217289417934507595934773518669676568876505093521313819329027453154663676096623336022779910663918258795785601707484684264715984705914972427125410753251358291885424957901561773765510250520220140008636689732154862862931011387643729616511377977936917876573205507220404861684952466381929166248376095227700125891730841889651298837030639728751200210830546229435335083468168847814832885938535956293760042285564414000330773090376946703296302708603817306166602279295748181377395501965614801352992030971260287299488470938193240832559127124033924603673966453215638538103163834771172776858357469970620794738756021169105762392537808218125725711311438903007761360479909421255082493717042820496858192646738164432022758742816997913809857007997208499945936173374873854280374578229690120674967290846950436665590891882406185726648115078179373303556742229884474058954931220952907204798782079343198581624357057936679917739956592078614763480766389384933923042276931175095710394448207879746073439518287615302795329206821508366285587221641514878385933831465910615723156760271483847001083750815329492435520834758124299411459833060229283664332143291169573612774028094840212575416777376376338428691082471420111416875945381273355719978744225927913177482333791546312854141762693610979563810269298481908959891269540759584453865616842549048482058839328989021993371873765567174204958305387428353346827346426594605582742838167501579909567816267698897976157015755657191479246740577429650289716901706186435558116190201105806232199401862847620644342472951140227776504374255865581741916253480123815672552764466930848740206270600315788814105816146124803071129573239449499162917057274498302098548100115857697845734186146362368128094196700832973565994066347226486543309368533990518267767345439905110297239259595662687909624642356013297417578265769584217012980824104986670351199777690044249104246599612998741893808685696775783231588274301157183927912253694027595723430222732733279245297581139995842162038886311935465476967250252129452611372288287074842068521748197882479162047959895074798858867198722157734539161655080944567425630681353230084435639058270516451230980169190682758441647223377274516491832854242377461026674201486800372022670128766563651272739563119107277853702083296350513839883522199621463531528558279231772215794076293910368581514130454453462833127448887540606994024268356160449061785870100490631633473981551851910015456262985138924532877647382476504397235780841915809157310720829882789056385086244573702458146788569940159197180822117093972507450597836903736464034332447687767802274850154948564522768932156910630747807656735399542546593353593899516742027467987983347434380030584182424668029547048687004265377933281404829296621240855123375849932359101578718931892304876623907971986895058802638892080422577781181331541861659233018237828357899116244494015463276138428594808684975532669366396432261482835405955839829449906943731801405373989571764210826409180210668990955402930376033425971657681040687447618360037650320706242004585440001739243171981809358437570007279938468895579929528497440902774980564816071039642780934302202773131896867803482572614382609303766827690937192890412522112299763756503655823975247732395570213956150075144590452542657307219548847934014541481044661247329541823053669036981835793176108580349841316390427032285211352777457248070589631575246858721767248076904091230552532495179301592423920613314171313384048025136201755740205371305955081127511332949328452638403438407742449328349619453030264939459912715304268096995141308390751900266213430813897803908819943473894453250025907477084016486696896075317103556273433210996625312229294794407849666479069721578226076076345970924426272789117049216641298002776561068010277608413344884587505722939792505468245144509954375365510203647018414473125881244392486802168498001358062335995306253165643753350537164849315185635064432686563199200159268794957383057068631422614872342550194480823319021834374652370954365798778381749585756087128490172700637764642672044746096984300996388317531870176720805692712885967542192999467899445155557261867174809007243310647357928593542142873143337356521458103300450200663916478794742427115758884937633667842346717468568977897746312888832426263993140200436717501779104713946594814048209459772858410613789252449453314093739102986836403463258076153341968499974946286612540472633902202666002973423759744895476252248124674274367438400029391263688739400771599241749982094612496458883400942898449163247182698386936509374577288039376893443559080438183358459466086624866526477606933961714495379635698771486004932552844349557898779644122570440755765364973562044530562053637945767490939766919499635823225651174802737041742731352800990628435885496608109833253749118189456477715106130015122128316618481694926523680553167187875115683926558579792946930514214607877052886800554733790954318097730709847109823003564770920424272366172022447450173497766070722556019573699420358472591581675836547781347142209062135833160544917609728699731358637428283654582373924435868296097290808840369752605738151452643994605562005369810674399338635881654945965075574491367803557421711557157316917829950496300272181867573208005406336645891307364768801835243386646438070595856512369237942604645010659577760396149101374793446196992428657382924166679149660718679411424099814080745762000143052066460893398286155990330272506436510050885537852873948152038790248486112464685451927341179982947019813318803075213824258068324497027457114036869892572399157933987661180871371413498059797629789629111408924956815355824270823214855142848063168822218954607187560180917181205184154235231013010753364234610435637833861934944301947932185492075319285337990331022294309896762946028126302922801713277743788462775980362314278102436276319945425336519261045780605261740753492206170504695921241332589715973221731107444000998372812912521025145750061981243323445518787123010835040201758127677393430583243564926534933220471291771498001760092185866776900186540913953545740081808075698988872944780040807470652072462346995837169530246288874353298002118412600735411715544906846535861311649825487167330459348370398742234114096335175224435832100822682301199979723486321095225146529323777672623194465685646558652438130287144248713627930108999222594418116098733596986238630288177326686118514208791079326362910630248764946616763611228191788132243839972143572534673797746620614686065248415528945143319309547846683578973476715676259166890440089381501646784820290782647863923923804890703472596776406168508119859923654773401479709326382435051111404614227334672576592600214587559361839690512160385113385195726640630433647452278807495951606198840779247545055869386112085694509136152715097205302963285892078663042872800049865602154345938202044463401437506214714575392852960417567094811952513828949765388490504053182661239319595704047851593573972660466269811610135641966854374595577639479093015379701830655293500503426119696562059644251942268208589155595454942493824424687622053246110124626670124684700161163855386372446440251087317889788246662232765015203867324624017903891705350453213177498293280179470871746632493114502527481427729824495705936567904540360435516413689062501637214272565148725259704135485115574110437413462523098623559316520118957676822393983424515343959108980917264928961922300180907022302764940143471931843386858193907415645611463509180931198778676235228440518992456386523231470995423285860817882158316375804327737254514646090131227089731210361824501697252464100207705342446005540758537684798880746746164510119715688302336987292883877120043713769804301976168207813904371330226132954376116952462736296473499779130416016994040264157205606079584836877846297469535508879874588004027944065266409557846592490633898052668473116439210546010429084652215780483269104177395151702810868573062069540201259954667799260739864930864901819288690836891156428395844748626194040931607546461070652414918250473453251492285220626605182261349850485975759048105118711107288817403364381491681530482482372357578735430764028468534728821122172905405214057021563747580291546839383007409289025805417935554460996100037234436680205425962036060497520193102443185035837352787406095761971751259126298044345859136835988080719158985628088207738038070616134633026912110774970150831109853694763057485395453958641307403801906180490991172716301180233201305843249973692213108025737577058942407594694961018426163968222378857502803214782192442093158770071643659715569731755733543454179184446963468685147528142792872475853805811094410490485748624431594097114354117377822784842773409242575463930540377581137393995008645899125578281718314561731318738519103055391406128334652654278126818225699846980448153251230651528037489272350150091497562620689104358396265675100952235414254150318594206247954388174312454118006409923894459788682092500797939332791483796929330551218714814462595846865044105126609156040115128439191553690066069301536233391590262542972707798664710411752043906643777032248021729433586784747713046648622500216109772638758384168966518652296609209960917902123174624511755445992243667873324421082690833196565075723962302088246645233999033865286081724323867016771619911292921919919605408456032454181025473213904565562128889740788462407706445921151424026364374678594463077636488542091588441542246456620206410600084252574466141146766999228858034205736639948545214368306130886544310178584413663316286380050491323996898820327083172614449696391183713411803570856217156108805512546862917630649138403596620675046029293538617883652886271720197599999977225468778153887041192764456641618205691298401497681941188986146176640138760059230376263827509629126553559123824269471052222059097169330343056486443961951646523034278888561772481186472600941076204259427789995369742039045093649710501958420229314981520489008851112496648835996307908809067157209510708457044632319054599278753812933722034837655213951507600815263742940311605429406449928931833002670834795013831223171347276154348330724515457550831274743553522828610663741568137384772667685057641180646967058583520381490516315765442308368839062943089198765428339720289511820276349683317530472304001621147761136781063573684164620007844129591742806426809821731625408566303451540812068224719486853401499068469872079801578901989607744698831356359201638671456136083958726598017800851750253902637783233211173632258655935349675343655163970380690460370478965026264031864592566790841045954035667508151388083564971357717142048113763295524539776544046421122901417566727372481100046643620948784390335167769747249033641879008847560758493612661897557811964338098748254936215466163941612867902769283350856259253247331608896454739371334999050682313551672792800811748016590716064442887350893537360169734223810898098581793201596351492884956209142442580311833816596770957153385715538494102163049310430278265065012600232953033196442191793930986806943017961603306166721999793284045991443461041617151048698706758465226653661320297352820686567438201771747903532274968556023236094298923020717875854551516391839224147243938026552097257436674845004391956070012766683508715995211633503226399316619297334242677772004600665795971706085537701945162109410463969424628210677603368146879193965630461874940148238343041604291924198921628789239561299167621856888225992613953619234277478839798693689476794863749846612186766570677721579291810496841255106995081988337883323476892443734610254918158800255180435483905333848058024820535455952503452215164965036591674703652407517998920147147787993892298572971217981725642973636281098745267830710967011812442046344076661164234028586684827591491599941969582905232318232976004557900149959677815495610931813367644906168266622219392174384596148487611653635080636131564157590616039443708701120196571667119214607993451205977785768625829521195069688065050431866463955783313037645555265532956215551640552993355870793506696685775744315827652728952816232501375815868497040754779490035076228655521227551370791301314606205351808949297614660711081940422853877500167193184557572422786547149901023629452377642401115213443176319975206318381412086220934267290679624976793273847847191705267640535446286502178511159293206385421535295888066943325085570796619421796274785928489731437485405965195363037575384576227606804551801733032109829269241199412715940734157518189053630257511212193134798934889196582714009187080784922551723451880843818231989982488485922864219116257410005439887785818340579957894609552412130286624685279236513314354001990339874761100920795384635944887310389609323686159355106633498759798820614337204313668114866210298155703712315588613589432757311700074712975662863452257699214093088148771958194081025310102136939573181342317969848584228885339889895663859598520012375527784505236380496061138035137259499273310834757545362493527514715450512623260539092777472686372211970788908093377793631355081059878262073083211929210492763413155518727664652993869668680526686620884342223706164800038455553075935643952226556538786295377676157596273625609095082980254965041938424851646236405238864553856837501043789751053714198864446456719035805073200593332377112749215779446846824717836451940158250247594673072627258814826358420488365923286592629871250099584167656645718167518087866517439825346693940086232119648273150197779413835728419371049363789916263894543535593139162459899956963655917302840722465035872906823074157927098099406561618469606073227196475316204890104630993377136645468298293613743307864297874093887166939242355622748855975882138619780380173040010003423790923801981639677465722716313371729819562628179622710423862542284981414788457865138940198445794510594922551984726260035690532433911622022450825264679695586836520910256827487434031526208883901698764934821032221168491938669716262622809078187492835866143314994281706459036738167227483983250461425003781168083149217294620342754859069267872762202057903160782362066027850632366850321404253171206425343019308494512823754883842660976270957303538199681424176089018446462603724734181267205579440301636057475162885932802832931058203229225271832468974211865494010421395278684338059164906114968487808368814874180336859835391154542155210109193627281999536032930369205646205749847406976437404620400606254394679464862298827745747759027614662222794525087039681664283705995481524438581461822693005460591709098962097926804650578565300669157546610946146164349775101586814592276684843789605552993931567107462205487523547124797074508452277067008591472903813979775258880571143307681736778949888353769840696721917542478779076563315149897209588122174240606180609880483430103711961284436919089590365893168850022160839911211708646854231261934248690656789250125399726576641548178972144963227803418161088935599094523213762345319048392427211077212119226002681301517735884347623468610471411571027613268962021605688605745884210869119119435961601229640238490442336820718098509224720510885963258226916901865061799082344472521373526518423555940985836852822481813206438550768604871170429325973042265689120802180816614260658568953919280337697085379200819356222488700851358107136638751385857924990877222647593093684544628895166622868236052051618667777275211749176276539972713737088567100044905445448193900979004506090666702143276114130842498573902573415541303155842706815161336537606110128547127085476290259761263468386706672251881814165344619880311597346445233744385970453088002836415126448018551814592680717965151161807992238188138936531920827860363570481041819613537105644477486039881155978041107692239218846631218343570342654679652045267775863142787342372213786970788152951020332651887333439563878671491078966868250380000528089465332468266033229030196043807407057368304248411173612781515210795098589215515425988683086726898739626460244514254819343425538852675521193159795540837993243894316381780018444034334183332332858214354469533884044131903581045061246959248816849615888708488988403163842278473971596928591597859918436291125179643501794670412592157261742448161406134694238633712012759780037868071431876575225036279126219967641626167046931173132235353140058489947356092978368631748512835155390577457180687823270188103211094838452561404171536622270661712472094920751211236680797800362057499394486625908499436799376500174689869422661824538317191420116865109156239590128232871197078299948569455024221517674716959166636598694239675379444877684750637226300214431225372220021783305346230404817433480138965455227543540898720040563137589798275309932178685839222629827114013024906232890875554129548632117644893079950918657201263486231576229923285778795386371553596337381245149890449130860384133457215139744409391672582579687451604708174186163976151336441145694730220587186215304193659891319014448610945356033763878815408349798372189033047940649434486503200568935262539758589700348395751018397562800436846089952547098655559611416208738919024960556536644934065729890917144756221530180681126503114978156559619152385446249823087125145978898640759060551289520544974043334031938702099314939269102197558654759093841426600672849316658561742649833818931773524260821140491734239089188202586254810239985742328606647429993315755870021408566040173816940259883995547805354170257692130475306129953388879828347870124415604713004814475224951034889359036710537168673936475223664127984131381776295131465786487328695718989667955222631174913252406038179508636248157154875378223147894496560028152306184099593126713270215058229886369434969905026719703365550646467918692784162536398336388395739433303063177813364429268896565386473781047547082872472222871429352095888718770517213228305847799060808255436221196974922364072400750794215149170474740427578933524917795902628845941080180500825767320146175709927379186346345035378483548936297656403018760523827159923073157801804796506732974778195942294921623748558064218078865608754185957960439442378517940319027236522632332599940368555537208834019026758908445143683394002881566154489105919909846608180821339893478143226056859534760181718100942877793988029052190979176686218046520500625757565946447355993340200436768721798013025966258574501250731908797801549233246637783400918294112119166452516284325408616610242040103249210337060148480323823663966328712591202108673973285567942399004588674743160930929823061158904478246251562216754151963851914360588268740606760463221611437981326948918466957540168029010600865252166939513038842439906659905133187126671745290137797356010423008189686355347690693818636120218218695635717757794587428691101087687933195764525877957354784376209195906265855833767710788333768838530694783748344033579649605903836918320538230095915920210362946055622112977327979014451907442096485430958542648228103715152029898073951569380008973687634463022067121295328581196967312976868150139029026389252002765314841076962231423017539598616864547514746763391974075760059740949904881770921171107196392342250617205250628832857823788029498684125050544860683913819167302649633926236161277831417688612027883879995419379068754826715802290155012893513145671750372644582300218761607890321165949776457555907885173390818115139494900217784637214167531913681853708647511611814905646829231029525252867469118983741537523713874083730552720423507751232268427606184596364609369168693296369211561810742789372019853444155120222395572877405611548332709798005159503718427774178482541649615291236469353692341821978827838298326232003303138543335383112008574878585475820080078495134782721845343084980342652203249333243928880326750229799779298759757884703383068644784305832179574662833553139250586833778189253828820971814992445104927016211821691999596163292265014252086429698056946418323796190772937649773494330990636250087727676100367460046152491447500378097357858498841317905303362302483880058821994199247970526831127866136412920083736621407369365601966230047174997419683744323972472049181549375686725594571530592335585612147687773160307917841484946803947470689902604825297030518177770253138117345122883607339195011563342797750306318389034127505491634981048302918537813635747344893513093805263683863128412352047232382311147592794591750187997007583758588161720842156266716745533394347036144608407248097147365072100642458371852142753148804703104976833141839573065897277626708507504026888132964158558092032792279395974163073272163206736022681071007067302106905634362249502373431088718988244483588198222852069234090845105084606784026809540563048028841741381569883798280908759803692431376121023832269792348639897410963426867019246235406917887723589309898801545816070350270989816061325794429261631844279281617468430562413709270242649743835951065701124046031213503445102487673526549869356921122798479049814183263343797398637422151522958119591330401459239471778298509292392693882413114838970779253655732766368532813193948208860689559140927438893158731407501285746525581011179457964983004237813461172704250557756149311140442455882526498746409397652194137271645010826631100032604903591197410173900471361197440546720194562098687653575697704184853517111287315588013981165501913950063038181361312072052523245597690257688125959435937718056793988897157761620665670775324964248215853436700320544471135915067724700778704722906436270197929844851221339519880250632981518004160237106194829650871278085356810437138269276663469195424896580415404083039950786779838574462196354904359702721030197105678988729254054892976363878533148453154951272606706988900839729681458520763191326190457442120811348673231182613894844955422163860544178002942434889169611748564011786921155745420016240941631097056256958238627123631551381377449252885672568425608785378719192762859420318180613395421262177330963633352732223603496165868072494014348155174841592263878752577357401538480717716757723270688210162123768408457723216450390924550718909317362553063470480526220693467751396123559677236431319612784165167082682896951345867775225256938244591892379480229773984625987023842094691775793270239151989651406383555899028233636210746552958592127465870381217231169622341512792011067981346790236737326147381794759320788006984489681955427361885172412828809696421339078192043491189027047449905692283651275958482649406867466103310033220598918952456394297426613188294919228469613539921770735959220001756843029625147949172274267080258087800532544818374561753477430722773427817362822097465771309146571207361770333396239525122834382148676117486651757184042475467443950779092716602358342969640528914444433045446888105340623437513516933062242119445229113489962598642716438974113806075970832035762508446978041458863971479459514194580066421441909011015696428595939746865912563678793508480060606313868776830849902329322782284133403515428158944156141867173441396990429995702627741413269599759626181896706579459283147610564628384843446696353797092945870310357790188600342532040268847853848456803327846441462879498476130994272493319856733972677454234086296128441504881256937185479746119366448370070373001036204016973697098377521280030056641272847380924784058694113421193365761952969221355116903065465782637023540008649933640780542781342042133182526169016270547648415094249865683763815655624815846643706285609935757727780313479320565500697539322615828642174924154255849806333973198258797274238704340409883072475687125247064584838541252983691314704979974437017290549706661100982429374131148014672176515824402188709148809721046532571032770831893042176682092017209955361200495982510007971763542600109409287769384514540016243416039086638229245180627074776163973962482475716409885600785367440462750378246034311078828559963203204992252480670699877535314275712139799506326464953427455367869071572278255183342962330902142641005972924969202383144845271286351900924818102550214075568992206847766178380762996923189679803895438672604346579953544004223633409902392143222960317687759260710560642792795731751518942001261382568888792700398940500160175089442972219913257920066382558374507047557838134251181078645841541276490632712350807691311955572645755870221414329495305315845091252065605908390557222915146082321916953795613628383897561330289859235679356259312909026526176937680048900257463147778409872664730373713356530415096284060287079683687222643723204738181922826991142954665697205666190173667773165469673832755707017230317616498095564942877921001652932789861759462618234211292307810281207233109232124487843907485032490928703980232455151431497104142175841068746383732434778683819006665764680482972397320756794506298807917646628098392631331196341573544464387096662734039403961946732822241837939825036222684065064925378704883777714215171793041548173677329630730979585968835859847990508328747074973723116582149021592762412051408285018609056401451431992346703259078377466970007831794482827022323709333199063032446502336509432627586283838725347253180388655207571795763254644909650256859937941391043558210217577533826031831958911435145808958946125095870165829169211625620499205130688452141412031264557495365499904979585172112147296830281652141659304381243214589574586430733704599049405142959664559095507086525127507756200124603660905532977373590284780854511563410788077055762762016687002505935557253674789384280610694350172875262549557855292415584137897421910217263299880735759432269876403251043097150777575674997938295147356659573242482388615959915585194607934238799543315521595730982604866315858410852636345787894462790030397851985408739038675881953871455607731595009312754448094391117712449686917521180449205774802449950555079724937885665824291077136097350232271561950318052715431434391388267673495528928927453343416274700184862419393511133201240230223370439461949162355753553602417322027802338029819874594879516812752999109379538316546434796433967484881347865614958336366258757453831267814740082651128783021157901972842882299575584440089769748631424787478652399866130352711424411446256900160199611828850954081941627131090299855004901360975869070873295044208612993852576905850816562615237138645455705954863876383951324198866715045833713269571910251719560806435098109789418152327454579723347324206557102967654284825885958504499849180886849924098374933001800321724428665695828712439410507013222223838088111284153932184942080122950744357288437340144587220830086223020762364954732600824153731559523835476968642871870919324368885538966953900291295986350565958250769089824695166168778165300738055023915274115870346972184275552359111607747666514340842776446560051818758218694371818373545956139969636123308823473989066046519543328522520756506012402301419210064820795688725010155453583801128027949730594812303840721067008898211039361505842210342981893791671993067819717349449427175151175461649512117155269529040403534600019474950554901755844688781770712330678501519921316608503837865487338498831726494251958747274014172819925580604774564907703659820661640056429083911658098531065063841722760220751636424217456322404856747407628792151108361028599309491272172356886377711203191094668242496773094997202025610211712203834116607348572664245485045591288158286197114126532829960410950388996777022387604253486458244015357976789376586765930779938420455916675287711260589821793394830398585072737389955895917357721259467432032864153691676123057645013883059402531971165698997946378648191544731794317908603095232651655054358222395385511248243208768186626943602876700790572728184770136205883683754661340742501851363325480777182198139501674793173314265077725926776828382762930406621804509633175280902446101308702734453427945752623089907065565125000245475249462481960142285841357292368959609554610518007957833602528078668433391574456381426253112517051730557687917977899259422755163762459825951175488579297276789671598302576384288461122934136195973176809321588009966086995692582205383420311572304997688875495317797828065159405797173197310496094637002422772182182174875089162715105622329613156790886162333930843133989487785930073966919213957370309814973542448532266756700847548734725307781939867875928644735542244604924746199661770371849181444452636437322599399852411773268668182337464885836945481253109824582840621603517465783629683228522557169255977582328291398674361753290493580100265893455529347705043517717315137477264603424232031839070437553689039535474393230805995809173281801588518735019238034736424439179919300997174085441901429619945426249501560224381335455064778227157040337658885233989117419577728610409962944091476115727913357234060685869622300014527737487987105719827314205532121795030332688176896737703682140690138689057415361232322785799723701783673504692593303381700050443928947649337776081245553173327251820445824218379673514516951304475451341404090271268176131525265955587901623258026186393702478289357919458333420921187811052130291345293461565795088123400173281392738782776267879733052631778765212309940012001485511768943774809817056084780463461715716165877568411406074286012722638535917184328038978580402472617453899913819621345244687047763828862560645086764329967321351035195649788349265470491298643899644400489236722658898157824097087443582759536367130681903629182708943771727194317121633676506394652198208673708936119709016133377476457531739781656261135396861150899438034320327359016665168134860698806079410804790956526491100519497170485549749585463092777770108878129828302110421287011158744306882097971865370229915191109969920533292711739532225013875334852686797038752747867177574280260375078735303861266985951528708645137979275713387455496428015080848275427828381913313224592385125479500723631397479758127021592938708562452019251904999845373580641924920652648576727709009197213508221491672444246754470105557805413535052392692273874643901949940702575149903371394565219426421251023557524392153879308914371336612802239596759245356735856291336755229882824657701992998927174146010589292955017896842807733400536397241138407424593401183701077082080971134479454024439779769093296817375391389678714752614929927951339991341213011430164070783156400834756311676669608002322321643823502917311973846107973714817232135216022364252930438232466506796154275451229267066329506408868444451453834794517371672056928949713710296607751429472648379908506115498861763048628456544020359148609196248215124126574152708735470221112908353084240229543078028675525166180662238346155999216904285070577185964004983722447071173428636605194909743376381787831834796918355230006452956168787469957388182391981604770773060850720995182189750891757677006457558198257297400029908283442246433893256403604051303355767572221831826157639324764012458204203368669979556713355554533567065099653720142231354353503027146947148558337216044032279432090257179869919475590794506746500647521029271470093195807323139208942000580699525055339175470088589229656306492637106495862333462024455323779250181912381913850662499493454807937860581014605113738891324489254872929645441266002209261554909820079955094734643672129788006202276540666986132978774892779515579019023301484265116303413262784249504314449141177657950803808526617403350064940853616007836661996967720076067081984861116820474326971740374424467587164418916669408072663711807747681087180541435271812504699313237487161303624809211861358484802616569720638004998280695675170941598437506762202785578696424005169091494062554839220819267588904300237429688413292760812053376533836368807900711250092261872222355058208051848096356776640699254628045824343723725741756328473768598985482800386346871627538408670564032146465550585914217649044000680959989422600669178360889055466056450670796625601744248724302551298103309520244412599221725107058829216310631319803730549603711717499935150913041787146563105535909586133319504164059537709417224846992861101973718266302979438243472309463354192105988021775042845239154048412335743246668118241814318630805132721721491370229406218778804013457048750830007731284354061075109397544220488845940852019294926330413170475553805629448346528636586331797313095350133327164640292311331347028811443586281750435017116679394792875281063911554411626653931014106881391867137902560023712111494918865375881590569238474105263929550569809927282344291832134072288065148992662916340306982107895962300617565880330095085685548468749466703784075695062063339655115333746023333624482484551717527934364645281758921298317880351744892867527361986211574007101595425666088830248158923657367114527862536894639944682246621312802277457126803273104493245863268585548316237956697067176864803637925588973121083443586779809775163519262076905262810557061444336593716170627913821207179114426765691538484418891794596611440228837674039555864324080294381767114735292294092597361378144051995235546848019993057140276220012118908604902441973104517055744247274181109786375854692786269297060486482883943039519195527286325731157199601091490425598565263571394559421811442057477719973329354629220028550746181366437569255189713026493619293811392982707722297045777662220408269669537511990656103493131457265323378836457976356975909742709702513558790034666127175378705512458792200714483582334628327103721239531197552811905342235761004105492605969809038905780371344149491453626108987957758397282904695955855386107107485097624625772125754628123171480683240506861370409127601596520309734442634366142228688585327253658880078494721179319995523721902592821330585976643592488722527843534550112022056125249262930288850394852078424688839533141317589970032607678403096100825445950847955114340104700876940491496955224296892908555274220433146868058443849895488963430605695923512835612576792575525503376531204791835454622677109225798744032403367347821069722269563544330031440233628892372754138594921159527985475973690456752145060053906210132313982707470548611031563512871109968964400065460033588326353896524495179149039244797704221896605216394421311195165559900456998446397040943700274315139327721565707654841850027229537435041623461200425020873830755004143209681793870535763650801239188654855827753778257185876636734084468374074202024071519800818367959117424251824942617648394602515420625526854410199503795232858281909807796813706317078153354971580723614207300027121307271348632698540598326508095621030934433198794140551754224240459060348025535199720703412514742932332027801532868400246388316520069614178835440901265098838164748545909224966056234878512822531397655321172675643761998744361988635900431141699067577366493108877061665846456865043996796308454944217174442974799049738819040026137303888010132284544342315029902372443941151117484766948602170981531811961051582764012163498521247318375599523598842471544546495282331274594256141934901533532274472864369347890900229561493808116091233453033951744982265825707978763187577808234976558578426824228386111593501690397062594715953290060159227598026105273620233913751890002082258731925221353499725586036736821034926531462824253895241625611903988070016812950885236521107999212254757555980267533775404287593769601142462575932317919629115911319487074369864226322188514845706636576951707127104331454499590242879132763201221606755390721217563209918670178675276165148033645832520175762002026842295172348016742068789400221988931561672902012571475143179225138978744331928301744073350524267094219403247065634938808613949214201262532444925937584025646434118003625970102838983750566788990554365814367865506936345897070241625729593634574327747118173379550144653778752660459570216829458387606552591659551458394135458699422266512119161849611968199351929727899689548788176484664794990119880271153487451267502751708012866434800438236137238589126775313881090104862478200303373246354058658647470867777801867431619079422468834555498404345054848663496800793501017020553717862358263236297023496351024905735067605211470226893904071798177310788002602753345400839980703508523946820200143162818818645531327069987706864921144594923301951063858582343735764664819592769642793859433343693191926543845481824293296590145697252116581408807689992375279105946063361867132861125291282183964701228677888545033250898112917752586143480939365186950680758810259128934120453945537694617372781727932817449803618577242443196355000749719263293841529990595625739553135509001576221529828512224046337527119663553018886961231459817923908569645094685175939137650743502500078179581998814113109475284104170138547104172254584104662540113442956009787459363292374780316679059024349620820855437926118162605478745723954991113499710310484316545408891864860841795522571878507946733667777755396982888793138425488650687382072480781872544059752373093540128929798630087082341996124934720924531837571191122520695213625271037508895718303295339288753607175169462679370848209223096970109952652183461736132556535430789775389886140849441928211380912255634614009327328411936506778305119674827380401426964798120890047050000988932497780341921259698516814064194099547682992041408341588585905898348409923752193955917319072657229737637483156108592062762549647879649457121763606465190019884106432303638367741161258993446515102521887609601009894673468123414073597103504240035745043227362970300010326414572121762316104839686345831789920486489014687386926045827361296276662377638926868619830184041774304159658601027428192667630012351627321031638662863308808363560911154807846729039772520362817403334483414179807268842043566929863913504532387255998594096786459137661709891030683263874920649015752698039754870853896368641571016230900937476245177321039840783596034563917144965978417214593958135204335638270324943283228113973028702177723758955748643279012126572727365880342502689607244111924723913537941141861376348071950036422087794143847870055549908745042177300942759853892666818031241289742546567026203121017235128262246845267900351594381843068517815115154074451100346191066952214192285642851230767630923381492511742852047226466070556933213610689228103578983275230745759082793092177239548023243912648853131589486560202129172388277665015685494984528731694715167891777343492337937158365864663016683703598118204349400786363418983520731764182271459609671979043725074288021265737301587099418682640229460944438335682025218241554413830265312913858951017881891498414648500631084741287307084412076817811372955063213306699674115846252916185768071630477801561692198665129303420861382955152301554799853252978455784360668931939400547030499411083934234701830286000614092365240951864168335582129770842801942660914625635487308815024972530251444063360291589370049342763446386090863030571928534509624419703742162903737365999876389310366009545565608234554464311310473500405636468684170663414531620614222771324289671733961733826962709714087836042826670643619490523544919395383139346059724715591078506332236503501859468442103633834945085368807622598405532208828784781001596734356176334115028514989293122522547106113649839034819314523319942749126109933420745729571273420996401227879793281724785785361587576728615749003852298301046697785029338948291245492443935040080240748756277346290888487249099530365565203857865775890715842088636965603685382365021303441685681813211322984414633138465518823052586000461605047294538540600643444139341329349476351240184940503563015365865612740026120272067070176969459676256711915877831304806066720075748184866742642323448436924531316628932396391163541745355468724275354722366487832180776733762415805470990171825218379633689008130081419568323931368990950293555479988417170750068774269626481254776935827231721414689253574499307611710363420320068628121517923921680669050792441824523752770312831677772578431770194137955986417242829092045187774229011517540676998156725798257201787212876969461337958954676513943057065418330122063587096455935894668515212159858478238028286530079074733913550877836264339017778488345253927612111482056340331241511897580659999214174546055304654909108738609645480276089544517395378501523158497814251222519594578908513116104023589467176095389971703888486990876675930241142516314572133867918836484874363059451243452278359568447546355981352973042175490976490738513016544001074196441414901133578017582258722427182741498100656183152558364192003314879660636290084657580666111409544489332697022128651140160895578403118982325289050174590482339068115370035493734224729664806074447567085203063342570314642616578163303828522601233077322653675305200934487411585106861370746853950256305774294759647801343524910056650836489066765811281175149040779096171009006315690874619340833630569673583638256302095007420259449120732801775336639805993311995184155219552252342667734828981122113508297379498072575517938609258707908960507795803549857645604723658299306146835439861868755960524998500216990734390417978656185393001676126422617484052687981218117271983382494561428933007399547832158669695005807063847577243800640734126873472194945540507494474774045650782334765889107185591858889253282373435478371162924756335155778035486681181639717343298163468294389489382245043734310731389427264577347145863688262705564247713157316703523956982383980418053176174148152593422067114897606414623713590755278768103613433975347876617137264831939264060138118407005688084702971201979351279646554831299737218374505421003499981557277834123667009832751454876351660388201709540609737768859534929163363246713255555938967197761393230718283855790585039977757747822453730137419491429784289612893989570391987748492850903263019978172997584731312259917256841102048818367266195645790997981198538623268228891346480321768219850585049464628957011725076277809130821718424643069872917764850455285230983455357781149446883219680531725668791693850594960584229568041958537397636910104379307707519587135807615198239305669256917444232096375278191197451287763537445286159385534232020777578993271182293636486107882652385866851442140916087544299704603452108934221667029441335263948888252386327979822839844024210866836758436840354586319980621913557392017332764494801017774436753157870481904199455654396164834942925716973880528052567796339647602682119686504441922211621050031267630331576961069968661291428443267044237425293093712834808665330953565229754895375598009904737857874995721359382208026110226988765689807228551758290760182846265087277391123449506834610322388112115422877989698042568236111634226801597311580188309238583257628657144879695586343616289823827713258826346535647295470617828122409989487242074941329341794166692770416010735885804148773273586905753429083073088174155154452548305230588553661287183879357717413271322753142258405617279341044819782287139498219140744270563993735034734768645233607757709255339906539198571049415486894069640684444116639548398695917081196463664223018613612208153940289942647992965280583685968253462099673850407062814260850854177244002148127043748159194308973300951421279792010705725426127937326764763506707082935280645149769758912961042245114325045130557942770453535177443268214458032661788246286369791858441175304291298730535194060836570372788867795205085058240363168294533918400259356202009603639033235107967584131256684925645890746503084529508446096471698458459686236631412478237797731796534443444928322981556766783472413907341023432981322310545072084412829164374095042018348721526649234888915022627670677119279161589738436781344426463235013137663771593252865435924634195708928899483459067999017446450553397012543713923510672926565758837939117217224237936114083029740191960946769406241839747006053710308087609298218863245074864810280675352345454531765127941375507861031174824547331076506378184557426920185073747449511375033154717932414348682959469339624715974930747901289739347181008511396797043075461928510821350149678619022616002520319783901466115377236141136996873583859221967681013133820586539100259142889825948789346875595991068098008809318306459289172361199871024404418559034206098994095865957081544892544847998730424767068463679596070340670720480960792539607583795611711589423929708910003567292856252204620986263301457341307551579051146698530756826049222401303283529197105193786076014536291167513369095357019171299987677624358010609169901645510135169469978494712608664397194983908678423344895417232914559739855400646909218056079573358623262081914774212826538824455608683700097920742743193006623195991703062883739183441796274560811093381871235411865413223697058724080855263507648046107403184007114815684692046771966579112477923393172865689974669687932154904363452460705210227054179856656517079124701514551146527307866739745748979997931221787982229422194124980437340915649292282450599176281344529933796023541623476634788827607997385935667910424348546337885537710209690856154584180233523196143367782798546312406132884423113626969767518518612759594848615181131077381232365357433534423199472440390328839389320036960824046209427918691605035737077149923730041314280176753789031099743214429975600196081577102704876447766623975005099551996589960778745665662624283765044780900532508671040903567281361603467303946765355279852063464510356973608843633513343049975195230564635376691692318602253233297963504760653579508590375126419355873764786497320934985409746215902685800478800758571617704733555721531832961722363860665819194604471865151532261594075871289359898154407549455686737556199116976358796688749164783080386941535943381665345753879060677313380752205425817536949020538326614517072876150019914517143921431129605223830003742114412297856209403343166468657989372265768627628482715650160444959842243611425468718121714447276765705115742135954678522813507842853973059476188056335188805760721393451280333566638942237368528856678842616120984165171541283004144386632768290662625395753556156494021434556395739304315743716181713533114210756648735841645813305120048485094307120389307521454950465364665525977469522988248490124159620948117027356746302810512923731356845074604367285999461336234574168298272146033163897675868331726188497939727648088402826364030829363707226596884703038392245102970112363981082280738717740653029031394752655547620586195996419314020957402387313557761689882798491279775819316067967051124696074416753438953517835392906761629446445878755670614326514879538027755400141051990275486911631781190263059425308828525730799333213720973551926919779518037133926135120353575437604654157001284454571784920860621250353184844863615665918226209845486799579399824234142309964018368204150723413745540690156684587004994948761664199348037914463629054146729764242184001839698460054420395855769150269036380847124161557624616086644043415057475753839628353293323888668757108902342842585744690099466283792609114721236331200442084607576614495570614894444110787936590271588293614615459996036152381651182575843883763674917307824198593117090459099960451767471151758632813603297431362246473668364521785322059363165269858363964658344483712231801419108734042387852230951533280882872222498069180673063165776433047289681358041317988163153821735500307709519992473529191221947680203529016800121270547041577150744131686205848791819440405190490503554404941175878868618795079825119076379774385766672069661809807450594708996671772499949292129223625571153416041404544120242576718424482284527551768970977667816808005844796772788591238656474190851790135356047466266921028087911219237531792175239433814435833656664995982006720731815454207491093002645043013974365882188396952868073367387915859272338661161411923959017765099600648513671083899794062276819581168517005494147646927896030036652644465748196079176483028335892795116795156009411500920038118577661464781445904906610787217983305005391082318347174871569073948089550535310958096138183852457998828835640485256318167498146208350304523983092134409500599646858499625126579392407329855756510379477164927302521729157929130051153479381154684643260945904696813606548843234408288122174070832289760245828512696870654339530187822705115778671460099993710500850011595697778170110104961612938895427150707860111883672365273084655757414754260556668686458184478078119131617241560205635672737884003852371486408947758115184283036657683077102582269255995933349241955150438092140954552402487390195381152921014136523244157772107190489240746715117699829742165597980193471975335928075780866109510155552434628761167904293765401174542982490520177008853515080278380406645169801520139836500785366480428280325101766371702693380922201753208307292655506657584155801768799580249569723719316088152064327275018525373315104474627257594250061055871359069466367938875844999134594369810862018536826330189570248722498115684207073031045184750914271714142204553439023169592352878636373435426262458748385713254575577974882511279973543532682961386505343739258330398427818068841871087541252418297828113632698731764180230339139625816791040571299499776714981479489985735989998336205960102305657647123633064451192940958011593531986201884014129560425497744601959834292000010316380506653567452822808636346993781655432249509816657822809396537867998140671491677928727914853256876744502477397645745596373955984222786345872872796458716384192539665082448848608024448410106827220861166006389876355534494537184703148670517649459194681407487683757921378357044629686961952186021438590845465085247676067286967698582565530735849680627119395448135628880438935877595259297018299801349404708071435966751947018085683996091200122628787056216223516387566372489331363931108645871338464692538599960414676593550247826634480697044747562241017494559632349280876964337247652503832340268097823087160176762839740766441090399282748383078186561142453345266582471138814310234458020690562136264697052954915439253478764157550850934082824673473565717999275872036436097070080895734639902447753816893379594281678581997937591470311815135076505065791046883383811853673320761079099816601201404081339923412020736624023825648651538943446851235621185338134456322077555983425137738382707228642777202244475806895173654530784942024351691587336967518824559208309897465168456915077528180889875052870322721837028098292990475649376964478334342667669583197810470618778665003549833258245275573851382999213597427911345578316729647530864785462346291292389826385148791958514594459170229574378101407957742978736994966769149128204602546538127951490116844875478687073038356127933018102555025982208425494410893702017081797476599887456802181320058688562868135246429094487032210904268549494218178846708995609444948221583371507444032250833414501527335726866602801718743286310278272324917401789438120899849696442595130764408788165446131980722325656974824775535192786013501542910524031571105764930958699242177709456036918805206719824884796999009607718978960120746896335129930457383537508584739132538055595148703158141824936086300546927616083238838333630408129270119491634116362218788055103854546276291799248611739975714728764613097605348629374573733071750446140902539427925869283281542879368268216187756967244771510804298313208948556182612386030219815248752801373491337321094576646452873180663042290706003152928065433693317536641240461867830154209579993882489163939827612331173034843093654559817341686490810439691513472100721412258296429326203485195162117661790458750359268937353297418342892051471900847669169979377100945589348683065177966322395607821503638694093670313202760178848058107091658279531392985880925334539165140130756907016847627988164550192685403736140164811800063691282053481558649005998458722555938859228436510220166669438760735710159126209045823695383762707300814332468558183729057270954589793672677913971430137016482062071923866953881475786955400479546646098248133763099505727763947098362608286654025559486539968223962402585358332265795573300278043179676126651188821940891001263318821317833646707954233688915204949307520459477437363536641953390399788386270416079733896514742796900838321388333814495792562132150998933547951855116897097464886078566387488628916237249407948727665692852873093196260028324479589112875927874128693766916064851447185329732345062826371983193009542171578524805974150789127363911465784953061672236037857089479523103762133663414030730918904522115537544681741635853995814733979434915451499600110067431816394435914480070934928678192866421514007785175874439465431250263987468620540677653307652518589702865490300134706565247528591560064485458253529280574303201884729446014004910777603193427349560314396186182315546112899063904699096476440381751074881634519036439491675748505903676235612415542161814799605255998990141773189730475939730306686764778161153128281327033450374605071809054985431480175507903827451886507195801604932314696493420086406593175190284882060930059776964674671381860882279365590155101595582419812477433664037946121057136615681581418691310984328922459287250113588325172411698434925061085904559769931111757986853687038646675375187448975268802078118658834832201187489794257807187611384758113676188825287946376578613604634437981662550134044019827684276345405797248780170684499745098578260403314578835241630507228841161121553970904570824185987871067215970218696863634192252519324461176306076611620659140760462779511944598832515857488907427153394082338841632145969298099111013249874787130544735811691602018495219772951798420464520704311503536194646546424483800113987315418832024933008041286780723793663887842473561153617597478878638870009180329077485675908882938289974884615760794256121878614858870629243121492907572504617786989696918510526116865903841336893706305681350590882790070622782589872607766311985938103712260618066209514710964666491765886381239102502161422109516818683739405867108764418995466896215147094579395671743638886204419124012722863174022672968613633177517509921583079969271797352461896621765064074318082161206859579802822353513789097238772367788881789377337759961587387758203959867377724429688607508515956843362548741158588625623276299319362421005598272339314712762856957738697086882910237585875214688083640062730574114003599594185087002757133848284797350591709921781690358833591681318466751161754124718054969240610266611469964001550631497444104226383585503213963072670528152669111778159630549896874965342350963748795785554383211445525665001330679122064207815462532757974423665967781857863653957592400341269540164924944508493601449410903452985263757538661500234741164918973507290886483255018017443855463761521451121980438157267332917906520772337057477893915401732403908514953352442981270472433646473432643492360935269285457338069366474636664248008737151183796405290271312227156748468961333451848022546129180264984982530671318669327672596559773450298545072854600649513951478008686695459355355672482403830990034789752838822624489866556392459402119535047261920446636974635691719850528461650976647764508752692265778097501614692540179137995874330124071573691075266321248611896427762832177261647650231420016491054670776292739599557402121480369479447400446844578450014775853939307657513757836219602756761809133287047950083297735207262677923809361109374449007494591093997577446232474149192224670337424869031220561595276333069760368291552872206529370217167682020864816688629286279059689285474129672385524301190709866425557099311832804041762639396611392858903407349636284830247716687011982306891828025915345747624514897154360542829103420789693256354242255404825631110677820355364909865567753626374557787108550572880424164330946471919135373308735527235876562285454231604157109059291547595267617542438297588683656425265375283772021651582904697059897805274885069270146959223538724491191041419627733388052346871344021361193332685403670555291824427718965100284451003753535805473703322402456685783268959253323781558905709888430178624968369942436656070327144047791586580324834873254109163902588560590547824009048495722161233025622656477188509970964048974730820887442033889565353843989297181099293232565899717325307887245713662038405506060027604051613207910864021323854531155409299602257417621201501349850604652177631736864592754448468407186699437680959349108462332536777678004586808135269624198125075392402982149919333807761350703109934901101983125822965566762568434688250423214731841880029592747415863154551508225127709021018150974380955094072675131401147795304990053653072046380396256931141782283900427177545806669955674660273947275396981931417999967390324430986824626991607101422992127581091745749593895660366280137692292081141392985388057242878016798695146849635253544760461775048796836886093366465420994223882736218793325544173189106208875237242258938068238176710291291174345995352014453682148487251402815883896242300226250773567065744338867689504116136770626962625756373363057081781604538626373894251247467884911982879240614478519953712785285545162452433109259601910050984720806491349818207176107321969582509349963890747959336339204330057135281520612795015309136866825942331765100716866657974112985081681341452204296515999669933071470325026730302503761986686707428908901057461544606623101962520402864030084647756120005378353604563619778749600325154395989325844003808347516977344737697680828631765446637490468221728838156082702491282110250068642588886070161365425525826270976900874236199942997721695546661394469222763875903796286785442964920619779615962167612809856030162062025709888633564750557039387597469761092066478563644019341509605251410440951723943815185266270059891748623311029857164055467537524036808825900979974169481650958372445019531480421817898480974892314848112677306445317287926904958373420612034941128408531077690776668554356154272772042300858218048543824836564042741598307238402117396508567886262572027158753141529742864501792947144346551848482065526603475547069119213499853982811400991320777918882020271818911453678798845887936867001592553517796543679350281618622791988210306973327694847548060889108681493928233554939024218723653059769058344735049242171552063465091707356465500012320340811069233720876008994998680104948764084833658834336076015942377641891142715603561979679883515967426568454837016137354287773005360964016646918660998441530531020749020443836149549013020579830285048376379682889580104164043570627919717704284748285366349241343597610137641128494189117544242898984119187228464823532171334018324475811207445943880000218369701924389686939663585207705168749886049635308660274435822524391566299292962948732274333487602367076218272049905177562537035171421900248277128166169081721496749558916131995010845590318540520065719783229100223845394905119319492597528191624472892702766233844553415974802971382754417882247298706795376710202986182403928335523677885534917672964692707956241818744842238911582956569866694205621714698798616846228559714504449749053781057618668846327082326991147159390031642160058398239983200233549829517736814394823421133383495715274979120742352864492327859026882436265464053542936871113480587571756868222970838531886804325233747705463776378326176843296252939286416691470606279139194773553858026851227219718736024185623117673641338526973616739505774471690370837413267702149257415607059522071387891897896094425466447208728198459049425838811202374688272716523403319956055844854968839314424616913484907678998785979507254114655752229023589055596385848985738707612767048561572378172677416804163796429138005626010578108189486929696405188846808957990015972241391639123441210180156517740962748697529808659689420938989040381642283983840369008181277904295010905706843270996575560568740941129492403911439014797420053224446328893733291773815377792021627012203521897608128151562755267847830465927155839290116354157835612954740760239993241229017121911038425523859518891957169646892997636550461857150763107217392388373351591585589929742635117488758279175880245512443879057602266915025054910244347508205083812477851415633105350399008488258705796570521713613264977946547073433347174481818570373289191001742555245632176829296173931619611222859804297030766693051980715384457540880124781131422930299204903969008024868873288248136500067127995858450999177742704729089974536520212067716560062242157365513733279977038765972150459076116618514291302944890883075638810600838639951050483153017101086261023053639503675884385934637483621579743722445882595117085546195161469995366631640483965451468308509684232286403443304377273913752312113334976981346844888931204793129059445231689226685338959147791608782798451870037468063328348777187364866444076392914591508284625384003289327002245531392221799535529909027109629142896491677658202774098809193133080654979007512257477083902866448083407141624842366955944366756033587912685158299201838245831445096623647445994404017819681005364281680993551846081641932727680370731348307715518010636927609980137192956385502593217639922127495049861694116834654423080113279232245748328287857569935255316314745866012589550588773435635234759005883762762212480398685532348237106640092762464826602378335298084255875178540091478656687847913230243025172325738094936792375302832355994610390552808518165546993114776153054883404882488215940406055680470190214840997611308315575339024297417061475765813190752625516200585288856738786993023341597010400006879392685753649828633575261974945572173447638237924313647769181107335735723351310483874976745779639690096362753577160297263650570442392846068578935196239457517276842049292561630195760183707262068274888909029446169132787031742800710013488726282624548610596518438103350709767069160553640214271995748350097341762459960022424251203855976217699264897987116278762341165365580920988650118271312508897291181280092190217542260671590300661626214162655756315823681817342996354289094191533379001374594452634008312538524002811165227350594837428612222355874747227786520718245947127711678424054169544379290115522698263633999233662655556739975490143372684098479281524787311969455647242713645266304352880228328199312997073690416965387526270505095157251681612705600368109059495771320090037039779645791737944101774703589463024025476854146536283233499969857867403539138718086120131671357441539508209123483169369228060541887292545939933449942811898154149095637758944038238957413303159591284010115583655300038918205919052585794527075936311204617768656931285122619006914106609228711312453561036330808663820788265468681862700989890545690884627834664256588048404564891231952825330561611392207658524579025495566135378516161493974579389215389420195098164425087496452371936344437396380354780320535998628397914020003368643890357230927111138440124951361458843199203937148690980092456831505412162622327171069546778500543067915554226349581577897853777382247726795331481379216332970824450282729249127491246555600832588147734675366121874869504240369747510290657781236588967471697224563616863034652696204702598667056726703325309858014242066571794251838225072437831388886640463785289960745446684448733397324439858803299632995011650655402540562252113017419318209183443105900047703733464866997180383977685853989132260852450779548874625526546593307963941845453617434819750476709652983586558046792437703915462065517818202063286011357606537571485586076248734526514243226664281718363649062079411216018853819217510005742199019245553547512727368629357787620825632378236690206242501575251197415465404172448688870771095735193295979028015209451876803289447235763684838743156990687634492133472007051443702285408770728312006815538411386178310729286669934385602537213982679906198682734705810418360624624765414071174435271416388300310960578248215106889672631275866645428665343240984811202462831244500762462360256153473022219968008778419450491231021852656414147496484773760064878242086061135815347221125002122733019876418236579787704187165432753158401384732823811818127367149035645571800411824090373834468648128124542990690293200160457981252308202624196053303622050050833382839465329169922905266285847444890327549365221125627658551288357622212332534734941543807531155579390406656379585006931022644797242252108823996514233034478451397848154081323320309297294529235773208968175451234360902035734744001760145480153630064518823335899353297011055134373858738498456879785487719561757001642750460892344787886312910187714693125420913664075879485739163233264759818437385736683030159092357275676198666364408176369150304320486386701479951498055963713872211084847147901510308590316238225279072077618080384190458133317936421867394328162501808859456248637871410396101396998599621094104869702091383015400705528141584944827658401949535929341758665857899827537585025481373105160989120562941470002996302812492352291492655608686705526398395755367663574294607178040034588502547995210531644501687846328606752089274544408427030555851731859303391900923538345554134077195933258211955656830245745641649633597923754695598646594521497704783592582930870235109154242089511476989340410594288768289179139949551576964679654868021854927472439348854591400832821089778771923223712733885227352629144801280449817126186005838644091967852438422718500017334765999716928404096673546906566282752633942385694457563767486134886659379553940002806190956540092922508499575537089762613688594362657370117249707040972073139097848073862496930747036162870573882362842981512443278495413478694191697519418300598234974328144061602235523367054345013092678733458996823112490707819582457817371008320814418146427394838539431128436344484274175366178160992458432190850577841519665591339743406084534806904834118482260359842934929347279418052312367002107307562126307125927087791695235508135664978912706244090073375061535873327075446943302468018950773751074866249475212618713808460455116033707112037414142003639750980655076280920344966920970778502192287911528441101687964888201644809872096895553861659986188988376002754282435675013876682302476508812805029398841804651154414699750155787639522576776393999739959574044255876449377162684530061488208857800057974566532915500535699827658742490138920848099218783306710766706475831012006243155053086046264629580235430874527244510440846530924892831620338444404973939458962595199086124701897368023698607093798967749955109952181470689035715718724673462027350352763746241426639133156512824071122061754416978444069464854846040962494638248931427342497264365144138207434859870734088169827500713342116522809983282892917142784508863111453166822413960568560933716534372523360591314136043598383010734359685020640864838526578214387019791524195735980114293396344825785401396554886418047320644606751304328174525002297245299126928223330882874517263261000953434083671084466338811194013444495247974364712191420139131884591556603624736063703353238077058966238895893625467404207180134859402860962995742010348066930728193370678540533880014780007886363538591244678676854952896138671612955730664791041115733026859359835540881189890989453988426932718668453771533594699469267452997576156871870749495424124569149681893756856557889012691103479196613094322262039280520319165251792662118454641406530352311983558600952892525499238860572032138493475542747960594634420373430566701292211989597351399673898185059274580702919212685429072659408599187393282722846806305489532022169868825352399306111720451240605397412761437812030881521371210957527249057670975925402092370293732080681884364274213613295430081138733812655788250521874041632700705788972300561408024943538685031583639572239955516571389207138972133631451735529967482649192352161373580645484964322206267454819243065535249027134538702245917728994198732690832165667563452869991968710083075836804859472840822752539389232150574076453958440240375664831183544756263453605151335607155277776103835371637893867016375262550619096289694491488334245384002640515664873244144099129139220349777682989323922113544835706697862102766760359661727720103394459619594929063276401470558432965852230093371898449456845658328618368364950535571505636194606675198017379809294878658760921272363580131613938948159179905852397102221656827836616056885638093211640791991992167006288311562086056274038154376462748851869756640233451634630094387320313285727800551486907060379897625378822575392464902939386289552734846088024984224206791101528932931968364522221573793717065422408796567218445584329342884395026732169612819521010667959093448325272522799093563808595636489379569693180974307224379432411445544001373249514737271011478313806092930077540967700415895954545724506341578810413790772993042494811134460905262532114184301874117285321313822056765425226283780728968482694930022415111876341885876199810043568158780878204237084570012160492552020926958085586362533846437628954225034732375542701166647908839090144670549159904179803905739450982797851388976827730869753258394257864561856222592944367488999913932460632545240217088280965577978318002274635417263378108238054588528863636059441284693246519937112018391216642833037307443739808058789800987952717951705517503675548592067993469811993217884460167893010403613523338238010967902983300992355547603140073562902101068421307277271592134365369874515579205762364606598121483112776200532211530883825372379665264174179521686431599637308790920908862103256146344192258652143065509075944131826591258139438104917545238023352153838932077557995639936799433148605902022904575287277751913791515619270169819372049455191940856849444914232160332295981381981908892852549448997948823046811192628688513863640072440493704473352740478394309351830421180850277037648381365553023391893254503043804031919475931650137693670616585201246726560814569138810526853237973822781655527277416088783503636865536519519603984417824279967135445467880752266326914448625372470126673603242573923168141046332222240658428423843673863639900561419324680613384062871126216470762964455413850553313235545294178393892593920213998849153478618421189370739951779513058109431790306441182044409531300090222100573374789842610105170217408184964073906361723635021646593127110623240283772522358127077777750120863553325012182184392023521648884901507571986806685591617147320142815827868296316953219558769330642007723361934804513102498315541499377845877674307465651386026853520669272174503171871800318034027324926128667924994413938658091488939182690992032892472287897210520719219987512183788437506401601075866410482168300346253881472747790119682143059955920340749763776617787354172563196947493775192864436122485687824960896298417567100936669717218665622642268359869784246164327163946144184304715501932215748596724919057065677628817261071966067866646035468646878778923143320566554451493860375071252623111108591056787330206741436659966054261271449739724417704492984705822764417697191612203541294877165584567491349350547121097028767395116137623634271576249120605075036701596343092298081350105057834247257884223498919300778878632037018924023735874322518987198200343975071845730887666222020111237299761060890042817438715668047760779414442929267807778417003683965852729853947006729971853927047136273077922129100664244999423406044551778624420792570165472394571723230495780470354816182962113764351100306530189824292793861541112205284604378062741339344481180068298924741397216219308360879901419913829873615372223062203268247457300992564627525645819643418796154126238690361849721105156905456782449440599873437903894781198154036260863998981452918017304383626747784725145206298635737513951728493264725103758686937547826823029364027698775384067864653881950603802173456203786300633401221783142612230007937827345860499143031358770546453026802761690842334401446696443643504006567496739142787812127405002855943178391931408477624501099458601876981829153804691285354599280743912343461019058389280196553355678747252347453442127702408936459576031521871106195845464515099720621650314476756427812973052810741032395603964807352151648059756847249518578991479271998104605072683499262088123128171213734122353706677866187213518942358516637693487333724913383686902691948435146046996173690856594310612856162370317446927832921968813686684960517682297770516771202545690915882453133032159099362860068845007289406077799840227740680140185967125554871748341096050802117818739561434612836792198767605573593376308369638062770528200430328937889493986550004815644936265217526561002120026763007225014460847554654270205406098145269204445673096094700417982636280582641478695797900168889710953161514385763395462384575430136399790396953715446869142443023155382815728856943521913769681880084553399617552413523083985087116408324805551071704963207049556218651580071637134464538261510210590439630620365869424289357611863500492059317827817479604887070954379052021167898758889315895255577781939861757690890377094704286752900164274004166578551209194246774533976627205457166435585161045911883305962370360515683946188941833306593785451701649404878868747601839716979860900410895286178936526242464940519829965517112473539421566806533826043381728465527362697253832762112958659575442277667836311694719044360221489680867878272234019153049442883515557079793913383322072782823605972232749226707840843277146326293154890441672329928807512257742976995599437488217014483739431511717298531882836641569338658954630387911314223619327064287678865527258802650738866732076902369519497251562662589024471403236844986132170381261572681238355944305449316371848311917283042167941078797437847626812454325528887579704930034742897545796569186785207037532875480148431777934698831716636283505492537551206182252932445381587511998137139214984057875441439472910316782488873916398452351922935664418803630783440394727881106270480090731434632441762481727960897130386381907950329930130616347545358171862062205357376916961536344713327623986095197919110000705917907381326294126901846595343001366218067306208189469904700702029123692636494460651295987470685187141365439442881195513148034503701907942902233707536857248804767856907305466455536518965818478816027955224292029992846783628484654256863471560146761560801624289356342252869126004255131548216294866074631107312256028768446831448429593602962611735036059036505331451241183051148960310278807604056772928023145490008775354926165903839466739600282346091419283695285576615963829615984083062332515685428205207865728715864241195725287280900354646804184681122669289228037784800580696632735992427339888880041432262589205391426598572969393455273415237303087650694120497679236027005893715373247774233149456938168198813980718418588417474963624994456570786358722867796679245539185529626849554016122661971956529822420565776758493013283602541690599363998337989772872179527172592006202147459621491369521484340079894150589957014886689496414622513129811545100769407423232240161158517342228743785073110372133284642013626893433929728719461824459955350099246148459939343625752992035060453090469617002088122765438516232730016086012410582204910031127224356023793091611325583848183588603311727373888006839253323416255399804038378478633257104661059739435080626304722020158480651513415858404387671148816594343085558765264920314001415028369801595914863506351685555375135532335062305337435656412524217989824274176829777697535428162754738178645578371912769367704694803505259943379939198307570265219092354675029083788995246812192508051188271709393799560697681974976465630357761656032198142710313078026295160059061398712149379444884226842684614372061371859629320285086194569752961797761602565732218297617818439478524578093359609438942156044947605989027128941028183084594715847774244946876628373522521123971605999842024898721644940469883235596303051526931374624089977177187591511041566822711785301721890748321564465399594036297595636890008830393711264291889564411977400211069521609464685150979688823337419279091016389732082677200820267016943565189295287313232266141980107333006722954338892059386801358326541484076266250005206854292542996743772058809783463135258717953693916708028317525590477570229180015525494724870154412625845313977362137231012032291697989429218292942010420145372914372656053637660466490124113239503995471171975965367000341711067984703282922261635483333310837432109844355790097108935050641553006367928091296483380649560948379355679721003667120395556810938078081965586311574167811894012855731109705768041664296300980732226455541293373446745749565141884346682101085341676610086235483115827852331659653506113870567052283287641158266661965955611950108210460307554491329670079564463496287388256609653267387635729356354896160039830654067871542532687967366283642426429356695977884799419687919904092646433106862913910952912878477503717077060910190834362252079793178202799045821429559849771537671718269867695716356221359113629089923937264885348948042822292465297435077447635600716651440112280861255274231534117273585465694854006144401758878400165219934439111811076917086952710396172442759569109214357680077109413791318171368891028259916136656772415736183001472755638522532572073334762961840645215860211086469367364821926389431291012052492948803823288195482132985826010252756558976298784014369680536250734319062137918659226909897367269111579554850059997572606605576381324001136413470147017477656578655118361390189101331526927797704453887085134812946907055377341109836539190916003634878867828177417359440159735500565256613214247562854696901483403841471926909163191907921129078750103767413403168886267185946620682967671942533101571241477889299591104944461627443584449905721106236640543726551277505093058526632460357336263536813342454327083281446060554268495588402358998301170825825733479464941008929461856659842785748263872347796234657467470187406782025737587230570662489482402657716475561132848909502336413386233410394938582112393630367483004599840749544655879130997920702144014776095976301108852445097749124730516356761348617126102615279127524546556834969586137049758436475481925740308049074216284689123088182855478200916011808083393030865375664186449225272310157532034220450227137705683357176053078405918933104310864840942071212540924133192430282968683755961864636909736618343439674181325361384667363555298198954778557536712644413669091315163673278722134079262215244243461961952806404444105186551015603862193432977347567178207906637301352138361212050754362521203097359847381679237021677594486033656145166451879994657806467905581134331414848338438970287121546241952269685297901956030279161240418480467235450023705723191997005611033727713508859508708373778128397885416511691967104726031812662169000427883417761309584073177179252480856732319775862605188237834762692543818941879399898377208988529940517547749825614593503802602357903541369064386524151957646133112427814650588379117613076930342686958669185148525485847542187542445959642618968549467586557204432794656528420258446753180899546030935795419979347120309362957516282004652176912262530832909908915039964973961919644053945838404860505278513502085980082207951646716383106951315119713529241248190131389033561017081806128093530235295440384668957323160738192499006944372597408920219201924252061928331916993488815658777213854918611143420791463499348279194713610093180544329458627758996038979957820296806410145309039488844400613530339469765801207850099630628579862463315272476630861050713060231026504457297458140851541838557299062749582760039432395168814871924521393065028373976472642309104370278273020356746619154610784601615096439318439872505961554455324051630000661721668562760655789614681631079045202796318705252941441180930911432451510199593393219414873178622598125996787333959142223110063511474227621653490563619227646267813222776874921392610395923903567130172109565470976806506200100039598367239560834681587692976739425992897720826310169437913731282402106075871566461914751412472757397743693848564598751052544269603785265587321897020537764276969297554741393995601192046841395696805488303931865848660688652102573632033413652551547959912721071618884333291115143671903133750451818770517747604210147077244064408634824751932643141567877787201424229007854217093800361173900835533897745163610341044591248586043514174226190757688512492987237734423926248658037126344664709554697032337197672091825235734941001200381179533924608131509565852586742858853064936232594082886839355516870422183857582705055145794991706221947758961347206811184451627368156889616949731074946313308011239772639093544892502389235712188588238363088623302261573915820707320016971888243929605123444514974943773702938601509193682822186983145590364045701952864842881551613919970507422958882618928377265589970276364237258710961548285609935271728082372332704319547002774831358681514629580087272611753443091802806838428258285025861951148591137639951334930332361800918639666042109400045477729273557782406079495819341091213322595751193022188246466435405172662588502044871450049391497764718113936755374174031444624333822206852828741984427059699884609224228619805261301991164096801030526610275811766675266232317934761183720899657597535828165383591377577030690241235636193563191510916873855787365365535505503779630314606030084159379760456766974115881374181800541628794087885039311626848709588161208198158648382190924412018455835875579503724592909800619063190400410670896287188283320554847400852481794566729089705804967405416186464327886834083395872940017768278023440247642411913155048464794296444641197983546247958817005385926905013231402481478500808906844704640053104663252205102769893874201274671606463010110119044647501450924140685764165640224282847953753757039213026874511066124779818750120448087302966012094122971919461714201590307611235745010711343384815849840748689269371287005825655823343018741662519010333694365771353106492892056664878369026776815935602567149113971944173817483139894424924621438625594748128477876514535143780272333759583351144193756272950752128287190346642393816285316862953595561941893095881920585413713360154833892075695020339063972279457382047381324033359702145356152868734310682686941354059102471851692618178058399198327031190702832759810718708275319223889582582650443616203662123271506436592521720488472168880723564003845457068911216070345936927804599396621987605593453981426787743501365947752155079266328807180850092325907533451242940283775836274439792235631200488208746681452322906123671746365808952447675687763181589117987584453150900777858152235141208766207720686429633650132014368706367665032837906218893899304271678468609372110099001913741981674076458658385051100883175757434409616822963060956044152816712036625909942323552863582591956796131581653421273599002666578644780302356349434108428002382523539082202596484694555632846483904049173696105293319694470047332752754714701029297503779818854133214044339887777635405890811229808370145230764686313017634887130227857231488280740704535140148193640362058278111185689325501873865876719158995806010051962256524290635106991164992917464739957135421065109616486998241219926979606835633220173737783112709691919632987812998684803793108358538459672637493270647454932200506055568549400104896881632033976143197171579981472140672742943532260536495105851657014223455094773824235246767731620522825824979246164567448197370566916637781012451291836615479658056687903420146005333511678038019354923666540204692522865675390611294535566108197486729386877469816548550468984914428272654394712331779440810745814905520465320558550325564238040610468495674795253674263448189737271419400671927006285724994587216487091331908607275959335764696184495850783898281082489818117285097168844313946391306057446140179905645845755123430272871565255064759635301635977149229674594015942278588135889777267066720369511246498527240078043637552197906679392334150584030158726317427580173427995800392555824376430584418393915834161613035744022231674163463479948918555734617232575904495514151807473272891078758017839514720034788104994457380905351784015670878086901327170524034155905991751941708526757412754210710641908948496313471972958878270480790277033736668333987366002160823493364736231329392835284374189507211849609169350100298125612825846819998486254998660313033377332726735936416243185509350346708255470608022201854135074849397298247313504582961564007322735395803804637259501019054960089338551340034625196083210190373734125199568106171246697890883050479046863405050475429516089482816466069394755943766343256403478178916049527804895132272446593243947768500421279470682906451267289886348447025954638240693217126017751135815929845880683601593076037352877714260961149231851956784541234927787317740350422691961008557442536563671325423444937146493602615459220323103022287769922804149297279739169401591245607894701288602464132324771455514265922439656219009925860132839088192713722918160302774985961195707842444308195180837547411806585307721608442436559389445436485613316764255634341357077578798828025848211780749144335676142680380549364093377424688960144487498712456471527529185618997466324441810618150856814633976746483172167903597611892284534202651757526838592319197902647291040897051190262368855742141713842115131525615975398625633488166440370901613077416323034624914705208648508870409916389463022628245709670351902689671207508461428609946843151796618430328467862166253526017906851495690759969963633076952570385482184743455271528980301820811675510217971648339497419914963229635831626130213809644935784492874465432191935355957953271431212438576012888406100306018815623220408635816367715502224408110675486718509795790250450879250092874972252521885850359159636175803871913741287482498826093522911474926088546034534261824325883834246222156348954195339786875167953782996585850960142313105012886308032823070347048643988048193952442467839685597305785249159442840821485780815797259358629104289548532917864010491863134807676880719779611364125513697913557773048533396134615182906030506829410117367413139097818422432516911869931045773593034700581745813300542873387853480617437002887109396098829750157908416756708546648515578289984941723915861060086548444483206126449095824047740590123507088366648835933565734366772163037386561540992698263683838234057388684681840439456969721944974505041276565131743496493331725182679527069458985930256667764171774993037388239940972933053213345965106276171827111733892352523552158030982644211314922397111114143694763630939996049931328620497666926559195780808995624616882675719313366626382813931013460985605581355159522428010403539831676449426970023659889381688936012250596713746894718654249659252126712901828779261888141256062680297988085333770360487646434339682648992350409302002497414297105348598647195226855812367648248039821463081533242667626910264377773302493663805414647802881033102956139092287225158234273740076320250836318218927415186596755675086893826684914626364120034035685916931663628939846825365126793696491512668815927338330861641176191338959991649920691506643031019689255084667957680496214209030710671021670004596525268585481816068312464717442714086128932726498752723098878183011491996875840804376113076741551238354736632706423103087339488490565817027746784954647676663083400699787951703689849556687253115051538664239749509971256631616853590092877162912478950448463877998479847806610518196955959341683005075530797238865839220486447043487261770442581092733228776863038684971130782168386169396306188881549683346400044829609883970704579427536473465089490560482105390521192028030505098132969022904051861396909266382569014071614282645168514988304084230276606155177822594752924222340908375963108018867957388515236592532963006533615790661126801711910826891587395682041168801551432187612538828672964261154632116590848598920990881965251620630427684737676609563755496268501777132792571917554798032407186597176360222050176280310667864185221012965493048721308972144351055626892308549815044790023380025393169917839969599061550431569391410164129378744820321633890774756676657563158569867686621095321187822909438202868570057318783201667780786597353187944401882597128551134886575989467594465978116439688700026841903316864538492887064828377110760175709485483260656964012707473158810621854068103368649255736607092523699894885742237694321575609908898996754808329232177927814723609190049842200061139262420857632997250074919560534776340762406611864942587866531440172851553363230660820179371859203203895329672786644472971519036295980486091758196141137081658069208048212201335371125928755668367006637348219621306983934405525959058235742140052123740831596145148858749035849575303186209132024074480053907407233706425239565450967081594708777583194237894621541500723854827619183495973716433001166238302487941411691573655549778319442821852317175934694905794691528439388642751601595774456873111871734157824151447345785255230152322669571010956898238830212731393521093730351044372383817056667291942925844145068969895871490201851181942880412587367470970547519145532772267615967931904213001486175491925180105268049552406167550057890453972323812874257951970749269810525555771248734367194433527136788346476820472732830745000050567457044527981997689018491276295845063052850742581314060174951149751131826566540358316005343975656703807404650326620273197060062772483193037130311258685693571710025503992474696488208784224284669738735657683692326258663628157671139438096645395634025120609283447509953329966105664600587339587196972292341809988831925582737824803727389671876562656384799223302202054710010034127411941366293282974692663083755158022441563284363449545261980269023520921043156559571853902686110011074930197355517395766857950072080512543025013348802134658825585088209347267184850196225631963342909524725005099020187636338622509726984107717753491000821333483712873328222199866812522461984331630960784307258322678936299169641934169731015454412310844429023700591802385029211737642645759204573156782942344475819480906200495640805111177418616585868369454015405194663551299736855611380183716431474202618367269900046304129292669705920279535981329137574578794500778485924973041629545852475286658812233039771715583582229527594210249315644474164407494545902446690714373383445818318814144188516385281382920388145795297634243132642009790080298707858454618591509084093113665568387834248397247531278194120269117556653291925928127943391635267591956173803429774437255388086305964009226751196613602485066434096751497645048157771304182768749613189287199211189810459403195360907575420788121098101287013494290590127479316316945061572897441766823862758419668545992941561227384245990457987401671786229315381407440360053944763101913624667119375877044267817268784808176825701362361001098152604519857948010769952163895574589184422741944279045684979330029093550909931288316287922978222295095297451436232570793102683937896672965425046726556852512123614572936254412492524563187681026063216581179678147726726036249489306333296750038690314955622268948047587518046526175571710109667796563242634118072780762109581105135698980819902781654130791470985373248811986658784018346653787303514818414207076188682556296587156468092943175128078713211170214079666589383975462870612733233953160923768054362955654675930411246439491110486239688952857772489657815565990045040796956427033597759328510348409498372954230095732986266841488153246012184572844466429610129227049980280184283129383295875459998037361536076735968413674083756829223432203499199017939897303141622572770413666134722745226524905059481272227716532184635187727852523042124764200199114071021248188386131678987390970177449368713022080333312972817701445781246628805865327946650763865238648037435340284951965905414366932318311401146055395181004080632202502355399607707691975977400196955162618373552696622923109858266481413395126164746255093774705440581199665084130955709692374697911015375226907327962509418153783160255715497914370380826382380764328468284756528554677159891277776899531046751909317989272154293700173220010153244033692970386502181312105589475299300616326300689346319895366144904461847939389824940089692750859797917821246199385263750941479299061099033052986686791317868518602086123065936294444571236720742146610427989544675991356186045573197007466348490746997138111624762238439919074998951529489906381023834640460242890590078707490362741526593153224554340881045947108436089322339154064341764930600011214200066011077649236342969172945798341922881461386224651653464263411063021035990422625109757866915267102037168725989453943190371291146905664466592236764270921140845900176284166266073080681711210484309013424250917031232597536808905056196556174819194209063185768924952277108256092092698613573648476578118955964012714625807401921195980528334249127960662601360881588054866449007592361407045639735738258459841554358586752376502587117999613788973141145528998715089576332900726189982175943198327533347429797538529974269815643261914652821643403056876769065971393296958440946032168127944071461843865202716487255471353662355681476721739240695627262474643630703713340599902513518134850223955735318287711353029549072744939152746207441990940926743118551666207074270688229880439240718168984625630395514572624562499177805616715787451425732020007176970042317582920062104601797617814230577732914970934389757027983874432886727860045614226278559701813355321439064523404267450475828481382417986899044787457756875508793116759769785388013235311716007410600072296998611088869379416801502470131649483726038777515620366316585990640939579429308388426572684506747188044089051615030435269855512337807442687384626096415953603927484471132678628738459699266310909423989507753376610105485307686298787466990392322410284083737119954757745322710823675376369667270483238581802389003992956133122926592553155670211237878221245610676208672450782544077084708468086211576938968432083348770383957649604827819234353357068198127415814676892209959278218905314920213828348518304979103044162584560859716574832899402491401097623492006233218785222647962138554583854371552621455742140708952201796190528133682810853126404212536498768370844794918073634214622533863639184731331090317988078478940977438393342963180355829704969494138288046391622104919653715318286672808954549852247873791726810115707588012386791978903278511158267512339574205071489696611040627427423405651736147065727092504850814278405113836629926173526082884605276180944933128925354908662877048693179815151150954882166945380960863332343528034273748003490669609846042557686429529711390335725915638318130019225215808431608171440179270032987300024533557761404255357891125391967701158788816574830063063088775706588824638114497084388001180352233579534450054703684107333709118535485312461276183109202209424702341895315988689811125030234196206360022524453242129691089639415537565097312847481981651732630260264781760803570376910192593917140846476534052992810467315169870676008399349463449246435962383460894858833203541857396284711970568107072605726460381818402025877602458462525389866289467955547330985227310345594533825540322891702225633590246004241554064931989150461579750851418299844319754031781904347287504259130164730971781237707944711214535945304918480373167374617674581292983365089054685220857944225388780666898955511121172651826414875589201883295584902470670078503453391974916171685005102008687573577684967417118480864655456555895221885998780784821353834531204172532215470985452661745219250610771470464381499183404803050883805028948152986239999394654069125272210548869994996261918617655962338494797900478911599961484116622030948368971667590635081879347151660525405386984028815133741778107565512724566610170559840109700211808554330988709204955553177732057338945984505552499241976092714808609813877629996961097989336502302250448290225656107697861790111243488604982268943688884827951565847363276535746707982472732575277737301219160545702301119720652099131556337901978380398703784828154324170333627014765872568230297222651807742301148426015732837772943747940889787723196072888504520825636309899864380592463582832135446237814909555924293750623919149467712699596541774512789195781441179820726818444834257081734005062978981492107387130269898258184131378876392319352393240412459671427970034074742870376931819903552360057126736852529650253849142419695291196459898112764153776312274975121727674869624715279803334258358971342692490711855755888202798444967775450104104839897184348385769899842865792258542371195897514582381407725839360644319535177518239421890254954353431874147043182713509802534368631209371185064298765144924646075833435335454517813506827487155169842270562854585507166631136568899004666708268955505508965342385129872001460778466620537214416253537789139330397406555084529191690068577419784040596153590973445570570184683869439891986919187158655833549094087842462416194990637820832315084464408630965564142007959214954284452052141127842608807956463640098152687947282364237489312299676843602128911853073014482514400347844126433291679141428336364763044084896139523003696513958370242936373388315185283092955813658511279819507101160936561449220588828839635176778655119588583786817559197434342913137273531979955550677111442771526516739745928774559150232048123191313149146382529687965464313700690854159387356055333286415106819982314069798390643665030131822001111461774415227693766028718299012306818131195646424748448833301386472697905274470990560287416625359010530684875352925897937545704373562045711435608441415300702525640894984266536433100471039521369894053454283996140111479947415928772262450737634842281791374456612136159377073966001168804473916225493980672623616717800917011923792881001547398005203639334852455089271854573326003629683301295406115032118902939901543932042930254971628427164749277214952268711261324052826853181979000528411116543098959667147535581478258402676077680385909770270533407231880494869100463228197668490400452981540252295225012043565854609834529513023570637174458272988082454499305388638739900845446697550662589374429075350312961372663728836875957281900455382939786362718197610093699889589975128261574235787438820107012904786898325681598711021894534773469063256994336872283728622698623804682102829968625007442130517343845576975306490446568029351869263513450670123595938724685918886713895962299741729544200002273878277156636705108264884791098786678005884254997453124931877022788150074287990250698512597000949454348152824038807426868718281933679917016126128650311984882346147194901052249831697616646580743290239216833782840574363932995641074817520162299745517980413782842766046321811065932141801999764159680750831535635772272157603011028191078008625677683120285916816887371209080559715737053290676435117153176475013258036777471702744394778769235913848397468331248756840067845204923666941965516931971370515651518463418376356992262315567111176152830142789117413459014939492436291389317900959007862389406092204430483247477448215497571472409702737188294316880977098634872044268551022314719580972965692607975116430556319770536857856317513322348040213267984873571472365062877252316184798451616658986388837006881885558500407946052533753571412082346134755658482432507093788453489488679501807474912183903895706555276182338245674731282074872307943078448708811409734931205604235839383278372074224448956520306008839882872355310179662832632924518003544790526052330924470166858124895229984100552846762806897337726239498883698446950484668620815324333551829957831596040496290223157265201228897077615594006991911118188432120237198475554349343420579897470118672272427584773556388174346665249713160867138018408134116338925117388076430893314288090617128267760390833845105933071886842921995960119690206221187312840372642842758885646633587347703816903848911417062439771055512099198517974652343136960173559377874398118831473813831798962567331765253832140927744426038394960984831906706101321876846522882719470505884170888135428336857412532540538236818855418615222269393081951431654563307459780674803430768851377105161451069418213807919220914245048471166810105407911727125003761384023972054510969812580070356646575895575634986411904428227026712794101257752688022449082782997498895987628856742358831548420170894148791003726247911426470618702702464181615628687323572780575893959470887772069319549862424824331530374879914318879543176323032055294673086913410394912734063020961012478226572771934689469489887330591198199117583784108694048767901929022699662838916740047005316458929812390920419817426064194381859320180801002964082680913283548084297991163645695168393630684300551278983789926727075143768464760977871776019443592708529215292673143860282005147658460097476566210704689954560859659952723024644475169887429198684959490464578702521557007019566409767707327765627673052358499601343882900552354924049757097652258958198383104352802649920262357660369180131602358192375948173794945711721317461276663947561655869123860108733779690590998542032429375319648179631975670828496592751784886240843167926229954730923992631844251265818190540292309540024244560499488905793779169835704420997769343247594618344878072721542018511849813046000884201746066795384185552788870844843589539852823780633835232577953097688677119585662535507482972468919825181972883231762661309500586829173242590894698104633643649557791221647677809999424889674892851113695847930371879791141163095987379917074464179910867801266372795621111689712092584700886191911242011117839257426890907784473496230650373001999519299308141320721289031061756880478404708327184242427907811875421964299433427558835228408509555935200977906707188704690200374636389173152625549755026677704401775070766812639226003790219334325094891617666135954076524062124144281740405234577801562787375121521621038979557663047256141076544245407456880576543885809243704991378997331675215927885492766559529836855908321528913109943231280358770526083113232547434482920324015614451496300485779550733084305590077522799549170823935171972065757699728799432874817893445497808037777091030006351660635455155990139423921737106010267673094534936104447986179979132609483374404972248556112988219699218450751818429091014844938895314410939626091341794678245925038601421749134405546777917452177792997233407734506489882557394554573988273380412996088733168498291569528137162675877645031521491676124274716847076772087221442194119040619914993729759970186042326258953684915056946448057113720985752654299027766237052411174731882991522996827075057536222604474151197073854136326870019577673524196421777165049911997928058071468556866601359994976453831426131591454463957777338734068332587687278598101943364689656597513157689836253279620762021842555214032323801687090453101163586751030515793998011638160857034694373070302256670920140342589524259534460058789938277000112988910835790835259429958309311066567273448029534882721975132254237391487071268222970072625217114223787997519412727913247482599169058714114702042209017385844264703428219917006394439195674720010512916242096867401595115171526434841521942148126172919897318096500937687897860835727832507654930375494386121545733331733282501138971820794923094724354141896355726843587272525085230028062780247445679817932573963888297228431200302794885371741613678697747309958233198949662199463941294513112384469218735623767844423064525169672927428969411716946910705310134714716085307452208311181115738562586130879218180128461392364805788833316561158915223833370551445173870847034759671768324195593963426370982716891913875603916879090901282959186774561180326419186334947166602321881345147678955037093264989062697990788676301041123408849908273664351641981758391137827479778882244819257226601201231633427448147338084773074433768979117168542692133489286460297283251250723511805538658762455446615002064719644973949864800773211264908447933302879893948422201973996497635830828826768157024875444074330164517329559250978642536908675848766812914600532421528350992330271013268089301234158640674133026462963098312106814604614538243887087597166004104015740473919917655105192905588862376632261348573966593165962893374187338404925203790672828186640958422646427390969583738671110237563532710341972846042245415089988495987698055089167095937989559491191712103043646118570577186423753190622254696909078054374034931476914241676445040262024144392860227812593123203796891935846385168675377083763628705082458112386462471620538009123539985006983842148560621333243485845524062868097178858256392895696420991673449449479240103237833537918456946722763003236278577362445616210309116385885052503394303290730593702553598351371404845133064709729651715096598366738441331017388371290232900879921789884793460704864202746620802767296808038992533013247902825622462846033962403826495063544278959163557494453593535465224750618508706707643131245365637032413575510018200860020423483763289730066066741373798896682918478162688652573203947284006454300759469167473425986979632457287677681342706281083846558752520709625393196899947656406030394784897861477648544453644189363451746845407455433431678501251865660618919064255830648827066839097618665887833139405597868357187824006400813218483071684981125627800538829989175105139262316629682483279978064576714068304920197329790263335406118920474839716817826245299448385343692716483374344773635066869475354883285889115791051982959668996261395294596294359697424877528637672145642998739031710958315554503480257849889835555962345329658302254172100864881282742228375541739823814438510188455626676323081065724822290796903649678483629343615979870260832708001332205877492714879494949375514932038019494839538523973277657184257168809662114553880124244649712514345363268517476616343685120774463819799670447114836270657674594993826150323256381362308264854018769099513793473720165354761533287449792270383131313628726862501202902289943311888314892115821487196615962708145353034969864616587148175824998009145958592890848830642687223459573914600258005446427430310650612965082214467660196128956944894332151063349320957449509219450624987716124100155786094080599188242812439821710031159554897502600670029232954061608858749747118886950724583885384934554110000052788892531768184108141693204358365374273272209665509922982395040813322793132606134484683655037174074022118974556636449147056586396573055389343831829967323713537854822860318182811237894688448486421230270019772150286048748338066296046651098824312783225853250437791274523968823543519623614771053569130959836309997703192596717323803572788129247745663025720840086875730721314506886334229388174648071534307373758692511473839243549568150631411150253820726813559110269673001167954856814173172156062339729593229722490175642796515938783817385291146821521652768488789249409633472098010658267716081000719470734210822572184924312956352328508663507307731647521767048742741864979326239186813364394820056847647204617593438263205623826510932473136816618201056307107675243633976891427314187192812817043946344485312028830950001135334188507474140143205182886527153181049990025115851948648651506849235831007370778437577654090965763207036405202666706932573515893562560118630204453564379581019388742990743269868072420086861864452526603227885396998660170153126477177880504001437982307464003370585044632874210221881251268849379717170047143188217234627457864479711557339308683023959296546553537136340427024053789517135208230329304876129748379933948881918936903635649545995121158360632030974044632483202195428375907584258784680274254485149830446231747280960343968687851016648481679331022984844643953297382295795938545983504509130426486182638048450821880650558480785854213212570588105055923919025993533408500745866545580108219155407015006190945657023596199396635350495918377881392194518807047003043409357229989040157309304425721496269455827960928034401241700881778769358182144242938424357321225967147787079706146103744341146255861904838021963992727756876671057518051321601667374845200763431010664106792620582348652121671750894132601963869394488127982837340794502630830972773440478017287269703684594248995846961741616948485088967096160365009194544570077106115818884307775749160165326860559985999291332886658193340698233190353600151918419231871387739955916061041077357838648474733572917963515926497455689038409586610654338431410081069076487191201888412122676427372600110158776563372700955158318201568426161465512942433023919738836680902080723033810967211391976449190190083690471766381429444055926656347658732113075763504204276844318003502428484705635719527460915085207468902024983384686575751384671965261353447110029413310112730774516237631024291614499524018259523683416559696273669825288185929051595771974225195234588816974701160839138990067395615705737978615990849444274915475019715596626154001368355602596294709241446011762929038603908631748478289058286443578337281206113774367954783645380457924384064888581768079213230157171224964032133516789114140277722602317222802449566261266368572866784267747970382702384651331184103297222704643032555582561775996472931724091761493772827987009315615702164952473957611530230515277710523918873360934118877967609184807531517963412072393364618507754081411488451148449858201790930123251341454394524899007174226844438324631943624387474179153945769571006783031124414841402928583612849341285572947697353759317605914644771044828345058129743077530078181529482523290252939647765871871417673392253689000322737747891902668114795593112717426409997730980213602833781429600246955126569354549524385299626643211974840320036000142276851631311896012155182905145947964820395774673491300281278106977196491133705600431847909101317693200296935002671192956876756924401900069318181582463890425518247262888023112896475974485702266777114840510737723278427695177479141764374408972440911481966937628754729179292341192617602421494677917958615633259317789610714536989109532819064608302116466743788037020263855497196572625168600096454688966152544136225989560215354588396166913997169662108017606170376916272446228369795821313552697078943051272010390580697307687814237895823714706366821694943921194712226624718181148645297543520355906796635418284834298606658984354158808288295787483262856835640162152068161552736584251784042990383445106167725709305444952662665839733460143078575828389428719458713983799494041353947106754301837787683729576432365719312374166265389428734949523932380787023483204640459027426252290835134865915942318667070460821458654385410926839326918474719483883044881172415784019948286330903452404142261245275501626784238817614100712004435633215473215187508544536940457999709648310281603409942844389962436981496981066296278733105196929274670512539735824823872658311662759038309249190722336715122761715850582770035862251461281208562771903143834885224596448822551351804663843542648258655528516841575054592846347683193969382088103433349291043868765984809982519606091785528458225034943839013804575084852406491854571116882499681448414119232262964534577563427067380585075557087241197418034694832754709361947164368236289711372774932762032060054853527616237654909858826672439875736084968207390804660824346505680866250937968261304395799082814427111055071800183886391749378191535624622928641874537920621107490301016858733630153279652416215450639978788742692506719311176540345456523876239014230715240180247483441928427326776376368504666935385376122338402478660945738088487454136200739504995511154265049927977893282657086810290513120429628698620486775239908833937482056514906261690548278528909555150008429629866683556047378327246543927693617782293239091855954238512188968174924751038091170833266354366246548915264423719803326598122578194828800600659629938910596039026365640196805280181867478349573925292600138326144668050656292764879859011515339329316206402118337266860526165660860148111352199312668765159754923544775832328454067217670035792920107339253179710302020485769366560297088325650904623814302164149296703416573341661547825741152128682939863084660275933571586022984189034686943647326789789257617668088974470442114585467539430682887065862743408291615294793623220667356907138661829819826661615565350969726730868664742213926003481497466319659824041309077663411277223363091953186718625121470034300112050923018735292366187785315399973853894598784528977291356981187957568868541858340714230953585927236149140419409073318627593787135362572101401534296532995093652854431399357758888848999337601963405567243883683406379577223345552351451309826408947422302222234713793276799228008597438982373777408647182068985988589753913195975416980130956781683102924065833846149504640925164908762676856545590286264343570130598657581183138846427243486810898568999038360896490876346584847418458010094826810918283018106277630436922815224134047794765457112062882267510911795861396860173553147631437773130819329373894372147280732102664053295043493857838754075970140657588101170386405045819815576053264556753868970526952526784898309375897801895907849916209952265637247046345221988619511844477562717501800133927635774685844419657623392183097724005082229469094927448168508317538227717640592154006854141246107826349624451020140859199814854688866658901903501570516955700204253463056946149917956253729887781389159188496820475717960840181680056850149239463586659171509388084762800585532903295112502362209098615543831635497144430635753459707482563989530813554484781174321421213106354798529797123622726433883362354422707592908113557142525704160043413667109167887835413975312387009628887110111641037205005327625017687531975583802864678238946544579582825261327245298942674300537142069451794981893783339333041595028074273420405322209847266188352295716888214870081963445566015961210730121604403997437270533182382122201888112334163550801646167050425547457268869151579612053953219704983895081012824681181282958608581589736560166569737334156496725570007478443174199835088514379117884479450786324384766335753828827022743446800601112133357119957737207586502243807321148053286666507438113363307925199759160701787735566887753989069987801334343086017145345939814724100136897325648163367689281730536434067744171829509077123055290996352582344116207387173874561713287811156018428409803923977226417418395429801587855996122653844186471482427985179832283794650982495806555091236507856909169523908107565223548413732962558521098917605595778844323049867628708341241714962849906124067122364057681169179395038701562941088019202258181027552471744093662892036727579568677883166151777791445149946213607308864868186108641369235496258465572996311968768166479737733695336995928627524262454986129584770949220531345739348684116008475301488838414081389694835637036105382197574592169303336876003165859365730308448129609334892795718704996886185735111125350238273056419063449884209145289230414288020466737440666750756600405635792779133678573458880613483682468828601859294123136677333573154132724574969136284254660170529907354538933955440771620094654999218417878827476387766081487142695978084822318258854372431522391852002237075384576168295618891211784559361772685634236599109806713007809826186842941512167121188468227712433933033093260660168497152547763311400304804753048440696145503181981431837612796194105641784959954029067609089832892257276975428403107928549280608471830279320349905645368122307866180425738468985909729537136829165136461368741796601048837268940368502004841026181734283111787267913766093517305390836057451336025081716406903086720205488236886152054610473899552491933268297956284369539765363611315259775638608778453054268094577148117226013819067900586150036080977272232167850079810661494230049253299041410093912863054160518019845411130248289592841696748418573091452242089057024847800382884221210322570218506795068998319684900912735371811832813034176299905128261974187271329819033068114881350650871612433605957130885273282253030507824824998626042553430478225915416397425997978493413881828390473926118348770371309101251805879461576726165005443030098323577291013843906322545085135012124793679000874334041676580340274440477482236871970331223034624312108835203679753787623420045796794590425954483900738922233706725655489091258973039754403427185777574158626070481641485579454605247575205748624728761651689928289959193081851678818365275123354631869423169108870579765457767395331918727838391043065975417438545546395775329513292693595114583049814213712284986038597132299197201666327082402288755397474050184171190161943040851801479503293220799747154332133840560693749937499766223316997149421305078830483636864148388931792793149284089385239017763795972554755942488724615900743591047918449561673310384261569147782382508783132357480074035690736354615626393221605991432784054436432222207831694417431919039937703438609754895417573409071562745193420765591086541724187180625877724681893704784923573494950787204105837460479846417780391755327065267647670720547405959241121615475725208230525814369046069172489130684238857277667266890714608990952154818750478501392924988455587460953906671287279405428923360373981333606577967223989017124428226248185129475358934216984456025043407222619155840595122160138339369239234783817533053879051013160247435516844135037251422391545897510167287037616014532651112038354589028233608740204198694959766221467099308925996552520546829575848913885753153086771460509793166805668223382837802900888796729545647956150017440613027872580634696909601087096067492909201913820275234483923450740084117186573950840864080253820069083765098071473667719784103800139251122898304914416870276257826725715656328407794177156845401123097059959852008224716548986442917509220887604248652357472834491341859217027425276478497850100624199689509064651601866208582114639374262037106486082962023814656374799098386573203753875299138206263769068928988666774635477420444667617264300602954467856466192539832299966931031400567223342246354329347547213212161809696261936808532725202542925455553009473214590530034039286573977940253568445857858583618642927615099015323294902435833321914326891356224933652830580656006823931403422130204607969476744341269659456752622084183436749456886974635969377316465448981031413733290775371057561266938488438587471640305712303494405821571562492675152783764500593546482055743761543040827954462620101931897714139686137543544726453997028415101713921879449765505962571504809958680087227299965528681511051478752234553007831376856897684371038447055433903039291143655135298657239542723067468937467770113171915990830648772231482452728773684299062252753621525534686778027023619406191082386929892069614103955750728359411833683865634151022423357809410876512034414528267049728919266210685142749134036877233061416975181866096350881136962091231381387130354796755228297677743821906948374520304539036295101811008529267186872242285499721840251323736055265964663335129486757767214498683168649730926054998505406180019415386859708839576876353102075915151053952492839864348461124163426404494274761974888365306983247352843913482463618656221229131020700777986894269064754129203978250077400699347594786674857823502301745164963891494529466575199744877122515104504051627553955761089376704036294070351119386193164185301479187000786029172412716019323539583632416362386601390234249208141385499514503598697496172810943369349761766269566487091925015961527495983417527573790480261523245381993619324742161259329897304839534067848382858724792498458412496218576282623216942486000640233508720416966511883558270057736320560459454104020907844249415764832714486075134113853980061342070431909042364189842993227362757239154882070271263221991940406722864794024386652007783254711782121054396937315903005872270011121995728896588284013836109490590796792277788337871581427731831194029696776605660337036151425155891033565185147806318208063559410867307476483313470920247863645878630945661169686213331070996232126544863203613742508368854237510814486739780917488820340391584023145954671346887512031326712602622382631163846277206447144453948817651017560404794581888734158820831081464542978442090879927138072046433518648437513535756925362731063486152718756045117622793807726673921624046673254713262820032360210110407840159589149736665444771934211628109285475927155373579056306388166185687063231558546375408095762451578635029407572213388112078039017725604237822232284167498790354373747107469024533733203929687811517300198947055720117775382630196567404327648856948335668627321390838558418131903467119980197345413094827748172439350023918912094251434309797822815825799725203286816668686574388810854307553615851453089721791800772992220811574919450528351813566563839641948702385248455965178872965766530091300767078626520140786977558478815820527445632036217035717336532640965301657358972502398056731934851090971507469094453325421367643657457107143889275524068363834630004668197060205786171090456855638814183600944452711283329661801237009403346154919240006992437146296034718807818776871994396527387088117215584798638886227963816730224610414832117793328122086122205012713179536685558578167439043237902749851687950781688620826090328827409056639922469724641935573586727823574225058282993000006682167167287666027598743080200378828236473897317034484260227648585859782478637538984740342137184210679167025108987132380217591686624919092326633248313060615119890164166082989234734508939800650560806216967197296209388535962156848376996876764648882820224503118114302053695682702044883482752368796234527181753121293760183789460877798523098237914273520832690270704861632617638159680731294335662051053043161268583985905489425250591051058648508619948678116277904735930568989027545252220948691478918792091354302695104237971784010208631696453244955995961198323605566765765555472608451301046926520897507681066599330184672875900766426699218285779321271260875429085616239795887470780236655377738251650542309919434033564506088072894067167006389612090449341075480024374911932790580870860008756691443881818738166180106940834464724562758175272836173753033514757860474297667524754936265754896590219720081297918073572470180273844603856361655288135262921271813980758322625582873060446035676706712527529257989116539271811052202299993785781979806586499608315126571731958490695320404038103328747098717815741838348961145968573092921738732377103828953428691505143728126698897391514741877503471468923600155509071071427820648468687720011151443440071232370158420497734121095576460559587504438605276597385207869694590890864224380688563326068105184318335651701791659309237940576374385769810995629348831981903924994577845320793983157974500176440295263940320019112154525232375277741505465640017711284844464978524000278678440059206812462104704489537389255822166981641915232181877602178011123276398757167436104002281485273187461630898936698209008503476004928314292535506203573052513123728741487702136318750177404088435321554667753237623786804950475696184274828036411023713063392391912035199450933799318569857193021180919186906186432918427495590265825411464995146722778988357372432714073389185746604200835898050171842166500804204873818596889532689534073980007427052304973558571036164957969259479319816396706107644416321332210867585577740316541204416101946293150576082830509048469043616545867956547102264850690990990156055964000200388727015818731915829147250583109312439676518297541254846640744230163177062446154390048857318761346583973510759313906787458307071435072316414582709491064409141498046784766774997741189961022338997591708295530677404345719384046074312535360786424972115069161547308853221838824170185486784179112421119587908093339465518323541646216244324523995740034120493730500341170353871540640041092161575795075319470178735614981289175120906688129501503758050041388068177836417504828232889170861332506115834433374206464225814822690704099182016837408152699397936656230750040010767091553076460470212784434653081967113442174443596852689387318653426326504389537214990361834139324948103425778379087265572369418382341760005820322730429109823809286651852354159258654430553657866115198188193155203525638441105262702063184160938817160615079065604657790427529872197439499053891008760181810851627128179664965918581850143774240175422596092024077825209367034977816788402676249953778155610335260086502441654205515092145284473129193298413363259585812180135143199015052200409901170531034289175924574423630271377461383230182741277829799089781796209631925466098130673106850507539028803419607828125754049577737042945568325663288307937725870515998331596868580348261920635848619351634684053374997904829913481607939919491186329190985096135894334282557218281980167112565742311562306278838048639008177774712470486523904357218103091034463330408694438317117189539026607995896115666859055044667526483908452573672037903945337785096730414918783239346450118104701937827462575666335010129063232304782135373478968518266980914309664265907861708394699782157095400028456164743150831772421772885335423735517579739659630096288117873173389257853587407923371234683817910870004360229793941923458692858731908996305086495800306240413741417245248717567251328635560928955074736114863887318517651697130473082214477713110124139278755562242390049040525489171220436894802103221441835883226936389358623940319244758876496146316053929796536207395377439876514056425824657607023409469557881977343493988705797459630558697651003110489681979039981728283519778583575523822347539583452959495631319997477893710058655738192325590102657852139114500616126473669082126414905837883514177607108567531215570611770066772406278443426968423609410741332313830191975618025837176211480001197347319612365763368245132826842580376267993886793322596054386753214771264116802644610112863577575456093660449992735032065819341463726863747572833805665697901374068665192035712613240236608327024598780461276185697213994033854431724578846829409810923697245960350869443247719081803705926057966206931015946551565345967258900560204568324180163247759669284060904075570802767688243749284853512079574561093649636024511888839791981166880961500753302114039276840452532862763157327453752080400046608898495432247326204058456336714061149773782196410166938203699399496188325676853797529267483724771079391759431290535087653072155028263746778919433333400033825797847611633492688739931348749806629751028479856905273452870731699534217955368419274648917108965099577335277725928539812771606652458856951004784482315965465835770773594114781293606427260613973498061320800027229766058218504249547964683995163319714546613459409020476022632987300475921496731526800505489910645038210810225533678393712860055113638281920318166797637964314266489787404097399782521509671025651591615769783050021013311993017504238476517882078190422455108015503495813575795778943062460761310838470307656012278177010026629439334014088512743717372231781554771436877423728772016441802780853392833522964517370159386831446135733437591750879848931344344351594933633358709735698865368251781425398793046252875415277353963691642889154588147689876102648724889721921037118191300726698138386242672615993107624288106466118032361842367618693958015940790784341557268517101363702222673625264305615112419180029833559103639821072530160531311864385958240590756194074265361582310909531507267800913494933316120315444652557495793520577797410705253376598899229482377166226754165511430065971823052122272067856940590135738022962770682862109633557888979166460827439044856514087027266785006973163237891753671668942921629523970257598842925807007530946340056685874170530577416301884595671571495410343427405397691207868760751651938743209047085346235456719789743491635191941773610565142193198931629861914254716908045810393480750131593923369896033886617251234551426339285676763485446632077102948994579690279052139077610425703908173841370695456617653516222172432623623961523261682926526314045900444578481019520135482753850801494156318138791361283699377708544032176951664078644195667300600935715989793008131751873847534323980656241232252327378842886997754664547965381945166179792394761537922319210846561644604294052050888459854394777909374249654353637054487464890762838283227164462776250393630514275439551989357619711496958402802924779424203793998642130538075350104146975463170328551546639461318200999140835328111564601011313849343148663216334469985194705800592772733171351446258219416466071131538873150253904657138958233140739010102566830930930151851175740810211691326792478437543178610388637807008473273401720075401136529521106722430844101044605784825033792653908309245239099209463915947561117233592900190767043058591228699077130485645399425699373462660098279994744665308960686511732644909513262331653828326406074077393019973987025109408040592954071514292809742416572994750689999131976410355721104134015649933041203393900043664999425803647480139855323444152629779603872314918556817812664743283580679870300121794629541301504266178941743443288895294025676356500815853400453627166661905780775304805434378419117201559018226755894955572704901364235686583927404428638275247304445019132380491559620258737416878795769884301183217127075245496289972057700723894062909563055493652636076093721359341119159645765784539085837407241110816937148533954839091035607569421365450684839163661156210952332230486399305539783196912378579117620706446873591375895544648300306445447235937778952895679944144338801269583633981823877974809829382631849253496605711772396111392918884532900905485609931629821813371958912695970126931400534865953522158504742702003549114284212536946332561319104884427827798204852940927886296851805485616788094522357536198737520692792409873166215386194635386510255432701595956026593947056376643415438238498249864634355544492943915428009850465142602583660132960735044651987334072668830558310230845355494153298684280607540011391496667108257817399806743815056211827374226345183815184315725896772722240498591280425051290384508731775524979113531913018751067669660291085207175849180174976515297461013809282353191441302193626954311689744928483130939372133302102537322110122731987397805275159727253681766874746345755341976703401800076910554142925051260281944865942236348149766406925103294983771266834999796913164868844884636733025013220419581142035968182138294318976791379427213503187752522009637905656190033787929454146558164064223336736622172551443156734684799921049286813160348926040132335521036195944827309557648147860034964318028500972067202552863699873836775673620899415547893246643054972150060981189262001986937150661173212115857983103806815630872922730278735594904671492202764274413590750558584140214585634714573700581146550980411289065054922515712494166534734428525502324847775677838886011970208921458434399131093814862743240070900196544138925377773408571615934944324243995251446647588789849667370208870157169687447226941744282948511214937904931649573210169044828284807201674965304101073690168735348619074445634953111788357929344432304464004595292684522656666212084935694869048164801718878046524320028580979569899875102682571982607405727323307088894776560956786807851674115150037678642804535389777058656569384974787101831780406058684424511136815223999037270165346486707440104956107580247411797925527441332646169148036233586410143175181914393112484741241882015500252063432401542187341001692094761719874059418171368701872707327990243549471875154254381489523945313362937231868572383228639291970924322819643269259266660148903545437707533824999266456207659960175034542190065823889724728760336957419235272317579462801186984660408490051891903011003002278193501924050564187578578830618803050330215609644585281482131488493289738180101974284646602680484998626423448607899156976433377295338525558538743301855553558612664141365199776007313278315717272354505182498973234488448927660722795817679276420136412223977261395053157027479224439424504275325255013818191897330784476825409450161828924428333994775528839321920189704685039063590266304046898982028886869976968920338885453874608832452421498135518216312684262381369879658181200966232005575959776709871412819938328373482009277494647720760617108321348066074770022044159513710978376522933322457695996367653472024668597362524145649097995004450738644122842157256399195683480128104551126936923907543553166391262716781383978622087998586351839658657995081332490816894994061772914427120607710225853331510737277941643815042661389402743348625004514000279990730494155555649769419886803284998338839115126851943152636995020363300834100609382272031830685107388200527912894957255351710754802997445366212081213092541368983497030260119387499491238162649631926813700837207745842120385272971744795818028332591752507277870199621425475097779487730107256685885021139635343952015853857480554921026750586549563655968121473586603207487169881883719662777343945478725431754179031484997861191458557362971797512031677131778828522628687668797814836081449033620806426440491133129010575559059720377606374752428158034104422315772906994337018357394242751097281144196580228060801170538656705279259970595492873846122906540342338479040974541720742127606948156809003061025383697314767396431501280735416719614983660030869759327360142903492905619649315656201019097369890278302598428678831891532576552637369005004883653861773073044086631253766995850663760082575813192006641844011751984844774200198219742141197578431110388296861298603522156953893126686034430981560249647257586768712351927305615121610772436714550066569954637008456288737745423219681244088400738673033480283376651632602483397763561655983163913626139929480701751944948565631526328950365027864061322527602713933291278226205188229527843811259050578814120600945091326800360502320521928285405893393833048081927255153664943298083163346188069226916842442578383891716065025990460965722008662258972244072885919430033288716279140276520753222104659171222570569249001943834219563463425592477891277919156519824132977601040274191566987021637207491303863466452182440546924465281983851819540349091132068080261862261334868968862159791427670131588873192965347954063428902490707685777839805533366395670070270618381319826258091606039079635553953777081368229540532184868358412747895596202797602741591327835284768994713071660542056663463248483206153479447103069365370722882347589028169178341506863939033367047483381786163409155174097844180086836793853128229852404851385465924837339785912869532627079593017310041695033162792093226603113092765504195970605174333653119660976482677026638690757642879216028219574943202422609706144606716917828965659099082045303604035656648454008385180129235216117222725339374152615853845587005824364042875658404457504970567858400422075623252361620769279459533942309018024496743315867453260099196223808608905953884787517814138986774810642747779737014741717917920195545348117788854483554242996783710348427530678724935167622601560984618669915346949916050066656259719252457261560604273906555536879125722506546336818862214073372887534863967983204417501533156915027127232113463454069907053306884369932491997609571776108249743739995884973732714925364667530469471171304271119407311399506421486345317713212940201745154693572312866474140610499424044662552415284264646500955450632038204740386485570261703393548277940998844002852922718795029591170008043050713031141184284774461078003111880289821679451415248755449896321929624847817535630574385008761939217702797033001463323793072734044161873254564266186513943542815813388081079902242741170527899830597098578953981773150567375719623083974685696812037238261976010342817083590533998581184687761661270013540818314957389549414069679604364982869536337476401508751657544846590492552176422701417915313596614403493315516022327597191038310387002142916271533507844398667503648309564400318317237164694573356787733013829990154148422763644135783223797108973198942507588278113602182540686851628741358697047453463866149194072473730279546245186469222061337547235466991855214711140389196969163659609814899069905791359280204272452695193395911272552478310300187935084403256198011716202751924244705402434953539691985748551636472491130527380103458014563678993127910569696701674281980367588567896229321280582658315849560280606544600448577715808440765454804293420503206603285543462235106182240500233893263084166065996491803756332632177496734633997090590191005756969111483515165363092086901380055516860587106007446968040111352603289769193704419334335198693025878267422294088299564316035579354612476049662156135909056031477391587618526717986264054066622287425103160826922255521462874059900891222030154145677927846443503805676417160348064198256023995195345975278771178329034235966111487715507427618238289446988810426620579661039133755490402095833667812906070864577021212742385628673101265445795632819971391935100518103741870560646263502705222410742755518345297285010470008847004597130406409915179018131984478386306060592715044955192093594846112345620436232804359656164968118552442351536178860946701630770627179064963319318033561174022708224842111767361964595267956902954446425253540009137142695089873791104160718637261630261294601799840299403831175931226319161313387290930669695996981284940930981681098199087149098627632503348614160077537446176080709413248759453511004871730404745580648001572205178100861782175914470493898735179718623234676106722674509189641700099407240653276945412794331283035804513890245872375598970252094428108349579392711463249902565430955440801425461958593315041361104844253268640187460033081019735779865283874225737952415444971876587229940721428851364694498716895167435126360781376277932466872980644261027213315999043219527504385814727976608862092359020419461882496811190088065722085168628671828332630486782390979735330288559286952796805734413014294739741373848913153839555214011843274737504779157336668529853103550619256241063981829846398276388746329902881529275889865731809572436746458426013984903713211533583986013965528821680836332482845916080092505790642603007437030539503356676011036648803006442242940930667767751552041306597479512008380930031660133800034061250000444509833552677360941650526471762173031779349581475336577992984908022331282376116221655650843377977548103657886024467352601353135505044240874426402858218507164002496793556515243276560165802702467610068032573764021378695995834728072325356408758388674232337681875039030897824701580730065668202385119710046261781329822595023446042347888094731288688568702833095908351792577924009649951581547308718875472084551605246734344480049534115682074522166326333179480390890728767435630322006597569876709338547956412252311315135122260455070132811102842081751711366210112000656104866259814820418686587104771240526293761974522614971634500162293254518838070987332310180707972276868257595612590212755521916491093375304181616349392952300722803613009107311283610116718550087371408088522921342564046453126120145216984324682612106686560311502549504463097630966883767771331195670732728477802874133189371885302115308067381877802447846335919064310317405458975489304971184368081638749665320394749072829655434557920758545566725482417221169665336601149634130941535827093414233174211362152682363909989190822181948479293078716045089298624253728214648116885856215604314401489934760315528131950801756822566645772048443596136005627356836733886719338541111021497972473619035351999091613596658339247121349364057374299631926252028999351839860306686466196180936601206143681027605669278445883147207514050817009944884991054007391430782173436862758318848475912139439679098545491920419826959944087000758818516514902145376005869197928889669075297828328056148114914443144943676478841615294566747612471888040290822625881945273230890738679567268336149660611387497094073127659330132159685850111285561694314160045771533079936482266287622234131766609276826489484107172441917414981877048733365059364243569583855705081771064150426190865973554821644471042797931060337455699587085978034288073738573996684921945586470970073362627842220859292815563435869923289971019069710115870333325934971073759283300354755009315941337178289701371641783053886334163325322211152761832115747908887220095457096815149255851103404349059382356714506716660772208593125689501192585943766164266303386195768821258928110308162961676997548857007656114422001334457874889701514354536419282671752038659779130292545968234039160810872415261540583715737020210762004147506894523807853900264080036743298689303216636009248491041209314361746485469084951646359107414288489861098028633733413461583470023664527091369878375168934599509350374694745203928016695324585197759125860962090301349731961360458106982119415015946467332196892631146541713094687574360641062173475004294815858029295836965490922151020081098395358162916084491302779858181720548947504723270833970609778223936059445588097575078258250628339013787652543663876392542049592814955341137519691945794731540912483273604866045187797874937812412776192773166635060356434177829286242767760916631283764145851231377173289461374956588679393602352511467308903410640591925950346535433495319566757543659774969891864714034193008256968492734096607050186888163657507566347757132062644839164284391584412061112050524579559454792943095138197359799692842952046330630155184414569641377854001221446734907973261637840367000723887097253775227876097045177594278245758860982852259818953947970777955333733634729959959189693921466720418982344314139252168332330156872030963692703274192143496038153185216965353386859926100869275445207768614863109245627662942292321510105690887343575811177502039581376100100383887505089612722502275800331181324906662080613852711346161156746456330042526603709005599829792967269227596256988491916872037847784529488854760307366719616172219312894586478226669097270467387655226290588488688619174602966717078957200786658329815009558736512556056413460666426087257938347543721518669282338225805990270008699340170128086852360815481231791410889005870360487790407860490642343843848113964747962587387852224853109979748430272698180699767710549771114617929630772666771231117638803717478256219744273489413043166247335083886972531465016655302403214704613023868032195110948236381614331920865560744058504059921302170412535977449201819195269284821268577556546075120778050363766998684640149488507375549865228247301426757583332657258905160424398612237285117516367021970360809924503287086836940682517369846552423279415383071060811572194755952463312347136706245555039321665944447632953318409894700976589286665360692859500942562639434844750552402388697921764576929039112733537771357905158900903732164421986647568531806412469363007860054122630389347491852364953463201523740505068371487190117505646379156664223420037595577492258508402876261935946002425317599011412637096979307622279809552260361453594688214471402676925451682020457344531313049060491273787873387701786162549365335113791692727728019089209324371401217992270895056361363077696881708960651812951109698990086180407772418650206602794418721649651065533701939561158438901533768014932672588063815422527847075303901366196705373205024398511630959791919009682600196815317814635923586818614509548858823334242574706736960577024596585720374084031965289546494853492553598128553321057817983537231100421567309708019149385370494312510392884683297841454484550636110106581842963071139907858598812569609425522103898734173551273511238108002546168468090358041143413618251319404111255002354018028913650880238334097875554313598324873850461734406186019349065577243958374783536370576137957234571779489592282793744585207736547964615030895226593490279037335836144344521926831302415814213530320385710082012803105594490227144776029505765696058100164401528512419281535431371463006526011883329528410913616580567665496790958464435853220100524333109744630331866193646290823105469463388769507316685704443881692802914144111540018590232943004275015989114217910877594807727362740867676987795024981892509822964527394039384039205331230528692114158781305784989944843231280206909628134892157152946579019332662344448184357839910629649687596216148513547122500295197149473621593135225574888536939318566186681453628385453763263279620670597173470928437137325186624323430001343550202557066188606871307547197217999421327394121572746690982454714127742309518428483687255549366956114078522854666994737818693154926001685268178953988882414864515240332137117585739821357135367851310162733771189959382004537631304030948753898106503134467873519235785863423337592807713347092305995934623023898443286322624596756098079237008799093250095774033007282580661438142228329589932983558884506055266906548660358618990256381714997972521331852902557280532004718536254185830489086840802143816519807142330770266593509786358152917881009003328707539816981710002575161939337154903622207789331155329759933114449644788542358944892311168508604666198083742512828381304447123218321449368580402085848877949048514805628559506368930034997320842392950559883461465302959845088623505834164361631415316388256089985305642249363600931386551114722095639685490841870441309486247920043081046530665015197348181306775953649681218555601934267707891164808184033881136531564458826003652660710146085592164151405660253730429425781613096744511274881129157591562954832852775015603428497596074020210153637753925399403737241776200646687868079560771111087610702830825038358292960215235386059343039699705888855677821787859770945890656032470757662085569655233940816598584198163894978995966330140675586539795076361284966800445297775936837846585298196574844668662567300019050397674193162391131754832486391097152662035303202521596370605030608857575746875020966004655493763897296957025929985800111724970119748734432319110796746688425784288595497437359529623303000764788687990870228186508229871497934769424003088797811300633051915295929740254812310483231387427101558625415798547072388235082968246790374411433316832946937913296400268861214304755936815088256260664556255196664374099838023771325052017115590345591330690798127660024739953852458797339010109584960155281057050624543524751095415686690040577071350923317841447711261572500898655851637029211227762043654911687500152497908641072709989102236428595162909983472045722271474003832109777886685918892046434866090804667792629644696921279091622821132376882137232434414373949482235945616981787704964701624326647127662549145628342490075302067471960779783546872502303885811662028904121766130622994528885253416412413558492987601636277630259933390609745499965902838762184790044975941494118659251180708557128651588041291318836279833146733492910075569554489306652548733981296336917894398220255754012798105853364152637971791898030554288803046405825181420193167846278479499350141687965309937951068540889482943442598578064051297438894061854098566699983030200204629761104357431337019688693950196279806758794806050471583260333872140987457284419671414309223459146677136392824154154258072320078419342077644607317120857449303593430575480645304445376243160322646153245498177407206080470757333153495732071910259618985305875055405234179355451935716042469553876479683568941555822179761674953266242968617291938078939459334348059402682436174447762132415137846201345264604010315289297235587118483469715577070122324455643045706940302919111726769805107463263399168689273443733732665310998903761902965922856541136131961402017308104853671920279109464021044315294334687568163125643785504663794347043831244860995338812419896309468724334181734794239444921838597894064101102334685146603708963495322289644888624506758712498521480751697113979695687330657407077095642361512339758730071094588474711049808210759693484609630901541357973002868614208833980860910836294704745357842771828824814521322810975303608828854978454786504581708872160180137927590173428576417797752283097901585387273329416767291926828256447246695253183789701291973338640582520849084105732669558860267703916083900776901828019103962042976913354403392295449329970130711389158305032137608928825897398606814698453324918845572895942540096248457384739281197888681202470767079075544788460648210513361906785590777571839444380605107372916635831912516042972061270774478769231485707076904591153909370385624829497079347049060326866259854942992459334844070655662449782036200999416782675536664124783792102532511263843973464202542607885281742906224538966841787563196519206000123690116018777776401780817414225719420866237332337426537571620621169932668089192801749038897187307755441407095365870190846692644480246476062633191532117631242523428711799628742950868218025686259981080418829241027080431985270167246852688500382387118707801324266955109469941411328152842865531660919193899401983069181280595737727284033840143299699014534657423338005313081559523001004692439532585868834919946688474609707856550227506710129755614684371848075265487123154036069526046186068444447549794587690576309672063877271411999393799956901263234838641538923643469904004824954611954657321397743046643521897133356883049819632649487279858818540252866992664905339532300803824324361660801655401193969722287108359156881694241489884032492410025166781982422307572242216276611889666329688119540423340411565828071752256955796107644954817365170572599614532737120023953720243306162960043247562465281622735361308734935995628602356255376078300919528901867723823723270510979729590900197421735159434324274801623661873705303673595943383537920633009074091893887796515769493571020293321848988102423944333249136644170058103311758293870372320238395503578872698466120981331747687686354031915487525427265219120552012702875093665124950551535715846077381072141458247275673893131506472711115384843145826016697709122404503099763616660994386644065651264421938109688746344561291049308526000840506800255868746009232186402713908983569679882283939727424539204509318669584619734286813602810078691066526218618800019841251935396026837753657533332517662609830752220193396737163794819768091494158736652635925832448993427543272855598423676230714735716494977586650461962865371906710595374222126036101742651132236119149418625500457063191183486607556135204188985353353234117412292427143252849120915530137704544392774092723057547019240857448349952695069829266582055440204997326749292065463881236152577211711652559656273145615176613340918572683692933415186086708596257811340585813301561080694187957097967699545729109675636392596222154264229070243638428852794172339854296775318460563976640447496035803818311078085657082626186255391185487643494515031562629301369195873671616175621645349280988580302138641679559065107375289934029859770873676314783175246843667136007807546472895746254859969078462590146985318733760255869692750058504274441270803761513292464852649759426575325480692463376789686424892369654399896562478456910925249975443648140338724645013297294952439847794884246280913450453025383359828861113313464751731078016449021899381093811967654189720678709682567876156736505022294188111798309405829613980775161448010810053805321756503995107220852814642337868931071532089009266033060941839922202482836177853542842128723490907858277367897797038805741966020237816374294047223314805723339565572139713000017597708642045887385071129777701464570483178676485360876250297693687002679938361976849233581612517028426602778037299997365671755112161187471156234557725383980098821226445459551986789254558081211289228819131808917151697726179896490063493351837406983138833631986763475829623786676625091427715462949220237631616727781106693173593728869097711685884217421386858063161434416303627351124549098834026140923330197585434168572795854882556573056425344217555888279670448838274300269060109212947828667852534198291537203927901203716536350410381066340414088235518280582381684837600262923793178446158256798640966350177606249729024721633275685185045995961455760946535839231506111887617220827145598944053360546942279567012365758268544856617725512724681776980678537705364666158850311971806315286348403667703238158301009198241117569696209960636170149427187624900220799797226357407619682175297631970504884439110408559160332416351510829919060884139765587955829949525139263074807185886947725183225198591263814811394799841192586040605901438507023785060573799768104664389560870528355821198698287140960041851554462081797055831324559135610054567278855340912723697832961443008114058012914398419646522547746739617691997287801984760655583821254159228455452864908259244926716329633311468633762540136899706302219609931821758616171679324574843379067132614008698299399212661055098411601627771635830479828542701955609659943722409908261898977442628885709006750812476511216045690866620950763604101822864906729512410929493843207452485569453961196864651003857170456550693167266121222546207524178969309522415759089096433861033491299315688506462789857503990961878777188251658860000738732688617906035658619425738920988581572415704515806995010161020786850215003389077419044415663989632576938858105414883033976515786775210434197587105331444836218028448816138338980685646420350097425326470451483061232109972035738368354737842751271352217120967059692952402652967974848762054536099012835027810618741080491579979193815389531385690647173550066742644673071669973909373909964856009790168176744817719499198583670497780070318944377498691952198288897462581746361995299994707248484837964028925162585790598085424467403559021764575746569248068215744902904891444013734573271072796004513434914748583544362594046052791079453800425023479654994361971602912529308534461731882468241494977066624192021870681096648000657351228259267073777273417168213597436209936166414697718515407083271261531685831983855709503666752150819691626890767986377361966368957294900499572193854824645710347558698315325072688407736871534546704685512658314114282784750414628781583402187850095705557222697331430388589428261127425989257744718940489430938302137515888639637237683722469903141978924840227648502529430236997687707319156952258254843832393165352805086104369718858105040223708123746455235016306029565637638959448662550846541097472335452095456081590594400231714549931178005737718659174198867081661365047312527880805274071203501213668748000256586056140640456174274869987569054688589485885665254072820586244405145521393091272888763038538228043221621965627240258948658683492638921559461142100827906978443344548896045268890133222601698757260227859348344732639996304664693265752220513359872049318625064928342394528248448537857370948161299579452215172935596843462881244884664577091844352692293136386054551217242517349959340863538389299354636809921603968474458031768449502928794496101631245431957653910498425325783912868112396488824854386528210199757139241305441235695053627235822922444909467926880703330664789092756768308500554548643461276445111493067128821257649588152008696767532599479688584569767537205917122310565227525286709697846866783642117884708790284166099290252296234825986962723712747274139040699747535559009567753879794006992730072098121973036346302690510767072263491042160878285577906328826922283846388849742955994675691566290434801306135983929560540597367281647704197382686321330909007542119763480338753735792906860246522519023760017946798249974122049726410987583268400442985430533325155682801037040768748672235351856187719226672690540798011522337660412888596262314312049984135236236620219395650161099388306233269721730565603522104593556237244221509094116187814516179695010265853294268058677686906202026041081851715734451554743962016822556892732247614094161615305224105609746578136348091966292774307712763919104951241085889823983770892342632145801151216486804844228412921475520141690289283736449428349842620995589796897926119043023788844645964407995323729208825700043907693064277179637865144005004341108425779812081694976337763370714312444426638446366692578490559769888165093233476771564014480604232236225080659923742547461424631571023952354970172852782812913544161949906646642373395601586980629302947731902209224278292133440278331012155167810098585377747122378615868321814320939532859580370272532980900345405558699044843575230624240366787877807758526003889950347777698186954294814996218953977930210134922374423123866903526589778626030750240097743285565640346940498361219988102458917249910239315102827419413080151427156540806681139665619526141383075811780934886699878476271879877302318843121604187117280051284423557263378099352052038873972557053565131245164140688060315598383786714815386104939090498187635931180706204250311767992275902395603361621884514813866670140751445079616718381450894781485278908470569954008333607842094090073124174606140012326511687232271256461338113347785773767065950102092743720754516203716556316430145763504173317178030191855527863329686843810104777302742074241749835463816470524207673854255545819833657419852815307476186219679772509214118668902702357954164808551387393181420613565530389944914277692126878802443839879324955456060891143268402004838186743232506392032678613383776489068371484671372849871936156251440795821469636595064178228730838409402505407668897009602380455671200705744639370905171338765452498556244688989580676734979816974397330537038643932228728400107347568443528969830944278572021295179668680908103977316925724559163864398950445120811589686710870489708250854394656171865577987647240944140693280359616302926944288876982910811652090986188237044016523258220894927197389566415898729741540851809688729923708864727118874695086315727977309588137242334122573428748193997020256410038843126521093431128520070739856283007935507095763320589685916994002997932131403363390339952419111057864646084563714772431912768962838621912205522326184253889865045598222311280695694368442925044776588842678914999666942837852305783406176451191271068586624502675161220608932875059766096452536299334148183314326615005632858316859849097458578523105520140609966021987706533062154023109794079608018951766032868791175739314424903983046646252781493575489219918486776156587961319664933699239742010193623649947888071358120598330727455290474948383869194171047372094685050392661022429636053941175208280149697758879679182198550883231281095853999104751272654789938618117973235789429455427012670128593628362997418256714245984983658971516609434971144306740810595965781560404280256655775982993429570125590604239744688308792881283912842514940437644925268409421470807843656105195441205994424377774765271594089836816358753191043096806550125195428255012309137749076516455080711273465024041301020690350170208858365415947456652009023735481543617675698234769965958471560938726801939239480245160289448951575301107349560210400682294675333353567182595526873637197659299802734738598902012041218458185224383942076088007154150906591939585945408257559532373086199948283216611024483365845769056489429459908897226550605190688126772856718729386197638341619384980296076165784772787866640024808647161938292724014694948057865143459996557122588720178274565191457908852932087160539128047234814398694713852462831208813911419128392536483728632859969041989891609146906997651643584753974186909780420882911535774183409280945800524474191285281747660626814451963403376283888117379897294268959484150415154903404882110043239398843043192237579414990682667062037482847410036026218358041919868202254232466334916651193439960233246913671454026571300217126568323026652590393956374321942970703189243209359408327671613731566101642474403498029796349792841989702736411257792445103146673674840073880004672925011958071326755886315984866053977793363086386642699422550788204625286985038032335983899752007067389137508651336671006610539533822961207838936751460582656896777339437990966656926253137250109685460010888156373220986947185020947954164152096613444182767286154977131400031673384492467960605372023550385591323514280301529474374704088549909615808420656189424599480105761536365165966002512572690959892117501679190353089250835174852252965906599946343737908064160998157443640869292857320490467489256573972087283345491771438899574025586497903761736764465901663264179982943673728929480422359271327028657877485180262433070533851752631600977289166922515380671136637642940921318579693951806921508259665266327477016340540245405619306086132634987147833441052086354920931827188511354747916425441421571150605035088913093286343025680609106608997510350451902754048761034962663792371012651321242566880311005522584997463363657213503378638227291717611945789868964589026636430595790845638726784162869392429588907855440534625498747620308132238471400029630228279531825570441567230153623221490316233724709344835873049594802199620941880346516649232628590975478128217787668284759825677817774548193236507868876780374213568607241837131753676114123666117908805487585362824393662213237249842521146808701159759485447525394199976219160759913173906213521727531532055687818084964322514681946166463503840514613065938899860819466660397730026798833132956082569062650811240776898282921160602049023262090179011726028928726034770971250350002685761891802867163145668535764460330904007968024654335644123565699352462109667977354880929349111620239130077436908846670763571034955247543116312029985338140164706851809504682245989782270214494223926758664618340393072871033913392002748930107175700274912991479442865071422763561808945041506565453691582920042832230020521919307311677088911180658431222734133061086836307497272181011910704577945387451820249810705719892315804848970749496564985797331936567232881423387183727879452126345855096015273902417385329898612281678146780119089322965258778651938427503172075089379963912568021907720302833849410088327247217810949959666241239719186500071662108402905772838043054976429630232062682564761191638045900080259601817217288689019145173558636470432201615016090688214555784469935336516860960240550156975048634968870372365760684420778890404403524630117676823466423505908895345784839277085449073459176216280108045368315770551724588297071080749331850275803660576101805431077424333128411569659798852093053537332449719653245731425159140280268294111549027068595533595501889554535415003266821064037068021054657103463423672377617843523090230208048720641943956838253422953985966048261815273944625417722967577206713065768484274195261463843875141791375856910582826220876579947077846307145605351564262330879150619205695008689039896246041177359960123896347952608574110373084009173139715864774436506596026595994601599367957710379467092190573415825751738993078318185865264341078185900898543317349000797118111325519187995884471339896954144739263304902200876142169132445767344649666452581081521112089245162887634363043436596384723575729048222082472111489090828002524240346055948086854706643358581780133448919067843134041438154371686742660935696977251300771776309788640415538419032188788971660609935705974035745301145559216750024031679169489941706055585112361253890636083155264785895854459063133472181597217184033637065798118728454763985835209855325905523475318796436974953834624539861350051940093182999733122968946390950629372882506860076160984113183860501326043203557792446743845065639738850954392028055357575944443556346478523848235301633980094362161530105738685850518799020073948006639985512205150530926662637902426030975250672384549226961212709935868928351797455107616358020104013252057079704582299550407457025239059894916454130115908352554277931517080588084638909901390663441175623796807241272724769407571268277209313955330912826534214819965082692004099434254510641742930365874916694460660494858299748162522958280205201803129347053296419013087504764315625077899729007809972048540759380614009179886087607261455609631361774347213199078572704736186159723853242567766669339742426758068134643189944473276010377319396089006707916271223292059933728457407181810938926994105448898183408582776075502497637261307457585048174253945158051722235890789163434234626060703651896828794940566102100436948313448974483916214561976818061849293368162182910484298234900694343599637118346458897587990978986047500956434664944215340810246348690336476045020257770331560535541714576542098732436755180625379064671801558376889948336600047963351062630376131654456474964912240313473919434687039838652143567510837306025857810221825056120838523313233776939710925694538220897289091330526451539035616696523575945821856826968331857173256810173872760403068579160599431433069284177526095664541785626536037943211539201718390759390469193724475447159192829477676612455076344057821643808406349103068746379017791418558294096221050041667878018229562727415705321734556260889274760767564738794262034969280492796217489617796541384284852183040367730200003508908647159886098691839830728383319195281481546305796387329157391213568298751270402531621080122703546340363272396093742422769599513925204036300993590206809843249466129354675961001136431896537208309281307765953955934879382572110260111228962129017065017583921865421077814869797235395014781945115168529124111113882173280332896526567230563245518119244289169870867212167330741829835311665645563458490717644999485461877858276016889920297690878676012992671531070916443222692079458673330042703615452258404380905497132692647008721469036097444039378932787617360662740007889437561238639461132385878652571243879854853752043959361942640590285745681370528127677279549762328525389537193295346730424209924519292232715869513216866706963988717270518550087805995103526062010003116177994283508891942952461926357892992114948940529715703119718009407291774771448876443439656373151625172365567619083355599411851049851213839766812065986595312505937347886893861223967406879808511195237856673359777940750650006303229294630136555111651236970554731051789643427757736412202429839240429270047070877588429183204820002182870884386843588939291254319769987973004751158337563956191163997815352781356134440532198679605631308761873350544738860534207324483605126623025255315983438279928400650565988579951840613469248674667221164953881642491480853359290909592135227472351589081127355805803444165695455340776489183742304876362369174030863205231769468753696911419049115970040091156870328116037097734558701812120255624204339929275456945540458233133515489079919344770896020456982818966729108321942220471367698506797458427380326102010675503022287386297881477875077021673577007043932469578685359322701049235648722984588676308658192958752586706588012339001691976555404640397251843934440240759042089547326824418542798274190932092290225427346982407616053758367922620448338223285189136093003225198505850125200794840800429428258791086084098213363218995193565788995893576792654382020057671422375454063721588794995229059616242232294571972282443288129852866824284407302836058643509889293495400028562302657050850427858985905947640826735929147615923012921676502692217276546075760862642871930045504643455805816175251814223029971468647416050747065119551774048172824127267919253326705131310720477354078342886757887635291576409470892394447487399657689622078408464354408297981011450044208681857341363861973369827627712719308881315679572540693752346318092152103200676019071988799333952171428593387664932054883895600235712572178113467808854211003143897672958989481540285861705423002928157506912824557487023962990881383353621464207532668866272577363090102010870406583499332401237766451423897149463607056004755598609461014012911221401300114037013555036829622689968693143817654613410975989280327930422197750522214412557481029027225376320981621853579244249482929792876163120881499360787964236578672684339758895819039771160034000807385852945717387908746598332171199508727867735055732661747641947021145300661141541696015526031919917102144296691969450976952287885473048730029357734834102272834268675622515552556172723530225278070447883305716685776482960100253472025497557476967653332910408033568824704959482698346849096612900595876438184924265656861445859220058397153610964659542125103935896083324825786395675772650009160786382153139111625430757753804871657449905810680467157814045748720221061357408028521499615524233399291702893270189115503206512377138419489319335106203933677374893713774388305582314995429595112218533862438296979466217361499871927310629390477783934611700443599081720982225629067964708589897649758014475420208207976189176891744169990464157576736178437939671263370766548070145306088321394433654530053687219386713470536801132909342651659048095401656426902408014259982693189456601313301133216590104207468816388747578770298982412982962535821119914082675363579831557477873652176678619279454149148278304037441329412052692728262232188144302547740539451541367958763166114555605313398006953114184475770254981013268912862868425453998003211413989300044800283490900111729610236224816871282009404035823095553590505006865563490964495766239560209449273962448631052446126418098078159531129925377829076153746819737552963728845394382357710417655188994554745755339248534184739714951473343977069088914584071376859573829804957244016771642552991715311475574956132946676057796538678674676152806838404643999367807161366760192116456068924637895049952152425008356961768490562796169334783903970533043491690735186351156413358145138193271321903371102453372514192576087289051685473884314532293560121768425253673724935642874234188410712681965884150074582219600007111714052074140273298648152734742358497008573603784446030039559849735269939544184466889665069917555800275386647675581344433486410106505973105308519008264782179692587017991840760360275502391726821787239586190870073914837349864597760617669690892804974768097529480654381164597638790170712497641039533113239396937329735663353946439589975853305673444851603857927164560039296801707984078720265210101673531400532133944049132766715801148190938034742916295524638508546762481585590645887113522785252194245632867939449659896261756904532620327575807717594544194982754875361617701087979743979799004508832605486380107841496215422469683010389673909832678990817512397413159198476984250693602916279685653488862117930034837546705950440584735978112664774328938709514015209766698206460949734776690901060133507133978817758772222450219321649687296962888210335032835621340349838554996499978307865323105850013310395190704782562191936658949486620820401276581089214543146426949772387501268460941595326253923610634843843968949479957769959016712628291901773736912019913216624507496377477575943808656732449127530848598346520802239114561245784083819027801860521512354152592121916798780602278011275913464504746213036622343218909193660766975696096607990874033051162985886543299380818656813360206242919681160358326278891736082035687543114372954086902350055298513487554175132769907812628178960170246166088785115897667477294901886717574913178689221380579243829608562471194665211943922422310494009523333615423846757985169139199888401258314994329160748732540578645501711166955709541344163337384863046500013375954104684352941327660233417671154119128182684493715812962736719722341313810869934997926375425565239918125558148940123615396963649512019782315250974172015833329353688671538117251071710329738791381373836278384163635698035367528084412432785754545011880449766543697450250082770209395394830156644117622057021658296556223780499186608885885421524660216861171573535206576531627437077656726511953183857695977238757989591126095839638787478035054683075568295762019627564690644006654668317806017016559545870669491962137468023230131997367449515116744478113748596228565732232825080211638090482051146054658931938441802657312020221099055559511590370400603795438289763748651977899693586032773319073860813988700452628678410598517585132715233770327398395666563579985811556928934510663397781522252433401081718989299542955222650037869738413419192971883493752066298479417665810651884203081875611110386566849509022352454270874167201480441943775609380419575571640058998813137370140065685694732691463636749676541293540510413809538135300074615936825198965824234680455185719538892399566675821406712658112286042270836615139723943875636220379068148925354277737423709650521620085474681971671301191797639855944272233377208323116106560550096164497627018577869812299699516126856423884866410641126729366396539283242893762456203025727682736106605879863558737297925995349341701070816879719786791839804206312301060040799274102156915342922852751758559479304263752518348845964009478530249008606480605193793572331719571215054037848123209648762556076385240800615513300886563495386877737087355607006131193712140462002035003534631058606530120692179462746553009165336176856366982087447799130519954923714031895025151567244462427152728368798909418364499671928044576482469237122257585409605087123266386953857840511252551860809653641831521676831195477918112867966605338831101062607837436011332425967694615403459917507700094633256877696172828860082413887883718994984158489661464671052364442234535817814483950503313864466366078875866645602051153386096328770294725568764874761434404324086661914481064759629953381940318867093090071789776462007876446213101329092103450624239832893433352922166848510335322903507689643170624430597708154690365965910407165606221817183917643648018579633011621395038583752324934748737686028097211337332827365866692949888814791389222576162180148535467736786885050095186569508275910513059629757870104438349694537089120083391424302425938333266823151648478915253682230397546711365696622276093834147904029060216774193456232312335048264336981289021560619509455115405123082950317750118440851377530529839312445574133174057178387197339140738066125095688996197356887998984449218765380073540236055290249403352749501935163083654641569850904463316813562359547402317486748545527965266857174832638035745583086296990326655312613846679015879544569775374723057859113085828549578502422041883786512302404591970312973952602605843362958878924714626987294993699151280640434828783186301431104608905184330488713603985057756365716286243891386306000337244638264827430496325300157066100255734016325712340175798833272037902037018934364466230192276821071926701824792606897957818171740375735305813124991687845351808945749349115798342452469818623553076621928144076773822640563357251675540656575964238575703545446757463962992344525248139757657203441210857279206560223520935621205990843637925988749736616485015251763681228877834901104311173706977587563299239438381530886900296290235897827786959805383614181180678431837940270333186644339865598843070154018230020345667487992477606641815435210244117318788744966609292349264331294009354394814595251633488048364883173805677903775020090756207029821903929688772687620971050314651658999353237791405682494267279237192728043063324634206435133152400377210041837873384786917530299573036871068121056681224348841626578698798107880933327346448299406981575924399998553379242505711878130586805605849743298377629297959626455622253191940466054121017583187342826768794953777008278681740188971336354669136480064739249515931964223095756919292296576747234044845247114919159720374299279763758452071866734257096849032322991572674268207154906345106324115982546011561382198453537802109069218456355048518322266871647231732030373364978942374286186301863469443774872454564198308526155337736622268071201343149649146117822444087522097307029926621663224654218352926307194363163595226876699328432486338553123788024186567376367813230564348358406362454613984080469831903134452579543133031721595714294591937478229430009086998681730488964855332360896878491524021730283884039434813237694977328679793425667962499375667784681785620094456240678734168638642230916040845134956743826175989975736422887443871831877499238119417261762297390873137734608607410553680053355228731791964688739733600531098680671322387886153722341368083262449027252820583604888419376142260652481570740842906681384113147814032922917582549668037737077954857170013098189915403938863815741647505065457274584208555263273341089671795622999248767291147372423798985763434075786077552342465779015926115662212984538876897282435268304770662361227231584606918129515823326506488270372819871057373325475343601230736382162411560079966007790378311653859676627166339707922915331837818276109919600455592555964920491999476631894130655897911530727972035761115685622184235464149233766873752358562694690614859127865034316786715720425373286738089581847467183345044987234613593608572316029871393075442924075763853753850941726036970899466314234471517117635423737606239788519842702082314405211702050715677287449613566618425689497136973687049830399103478978423502422036293238522998427930409786603539338634799109905421331565219206455661374603537677966227670691643976350882941150229494884803053223247024526871643272275181720624923222042171020673640381833120463772805990026646492184630374711049399408401560967203921744139513093907162534496012320228184681952660467594078491552170125425051809769999899636457424914706439743389705210326971420329931727195553766710304533813566381034510289513986817609778420515750492819526442055501929182147910828701315286673153657335979236769775625868589807937802709134432953277089503658545363001246680531011832701602770956583976966883501427171991827961212618052738772656313596181130304961980003255082098985521991349868817433229182064796609629892389494241804337179097063417520613743011068650280474772521094462037955201082545658729709775278831147407973945624923428380192237690263481924333549019920321250298505183319866995500027898163243446385672454157290394180871421287922772142725537984070242869013200669853005241810684582709377772192324235293139379630727759964560136987074682693168306698449820457872739093031005559827394948430828871932261255217080996459908143514253890567632312624390252373088375607188667955089003228742414958244359000687039940896834682050008425287081449841616206872099975580659150458008882741272779695911611868045771516755866169616321478730075260108966280909469576260077139561444495745683368883047224087442789076900525785277747888013389759207618887992904661561958700466103553371352169186284172640459752686634611812065628250688061786050088409036604815462225521757027372017874194930124921618498466683944623889622894830495116694841222071805928839842567754048765943078136184159924773070709764942582580614933166716519446104712469415572670752403043253681768990126051125471136719306592686053170045097859504673360078764826044821511836579189576119597800273811507541124487113286972270777939903795334545663175971791526138175606787667250003513268500835941901340735834298369066926175050656878741734243700384558772819494504551349285715118139090520506544852405132908557879855723053589481158444890778559734151446349586138656831211630085250406195233940451469294842232386677161850436289173090255517904316936919157311841978225319710261079188895606143317209942891185572719992599060138384395964669890065449809401901269342979407896734567910915391303863724213386032958578615139019184856309187904705146513907075678885344001754447674398267948631678093330948218522040187200719898989388414099977048752545422463157766793382888602480079869392055804050143087682630909163632597816552908786558335881642224791857896174671239715278748693955253218843076294013495268116013396338176274471034113905936078297555526909823850266102316160963648745222064405131448776492614803626227658831487360140609897884013446178181514233186470701751510785280156432677485849301080627309252715233288658059881861744811925966684322898749912344401928556635286936130626948568172736635739452757998528681019476019482974079011838983845566908549407812646332013110016596847597869634368927828392709931422865643322122335345054354624738282317560492870589920236150846627271143678350369013357490512039265502043769317092577470082913267168772146163278069352356369725167604143626853911103498731220257461489725590668649842548787130025477410563366066929408980366780034155082095319077865150890260848762385622933694762311218528383947116105747158412567929153034926432691022519574430499712864975232016765654987917274814659916036483870738855272873541617620927304702578482756845385581534241207825217470147544314710423758284372025254009925000566894072906703224973522060708570108926139715620773211527124059198087589626749235869767803801766119434539082906554635575552483927434346717773882824951929058382576054258757226157617037752379105216187770189922768689134922054687359502062107900552062389552448691143644239725767491958432361278614861281140929469205230155645400101145664458686941548194260097937554151010279263272890495092174488389088996613673269905397766933980892170224569145944219763544100913150966310253937447671816295857593199212297109245580907333904206606076573964643453687158604397641053006330119679117615574936040128948395562647007066615949661372014958459846593753412342771922354375444665624815783242744910165907588469451002092959961331535954993439611014259884989923921750434198669348070688008681247273908548485594350274794118951291103849746395223928898818556889486775126503588992340788428907747094941420471914700630543964551786322210581647995329083938527943857541496762340519997240481142269019712340127086748768142377225217666941326070001946079023379712216210272097372233317304737285241490178935555278228669728815755414564170946223628072075114187048155837322233497021204728207593543576523624368213183299846035230207701653616091065794581767691117131332243121286486319344339330969396433724706025363202765961147607938807099705624137718557949676350545606271199612960210244373701271384079153964932029480012491896821024500491059994741113152795871898780051995243203865134074470369464920238319247994308106809665776990283859567775905122501704610327121095986558306765959169946200415687063327199053099725485501785162537709535981659446885608674739941699942504687636774617124925785999856461378965806997329338290439750812798022758607103995254268937203056002495810752659122658790490966001915652458585229648217073128519282029373043703837353124691871623688935279587125380410303507175942935272951274336054867250415488602942391239922762878013576289122181286730584172929373450471638702526456301281203734193265204357214246025836163975751922894492390339591000610168028240667971873879123392218134129970426428701109813851979789376428526615745661056320087587270000489947682183798520103397945999548584795796884235477178546147666909417639190396216133766775782998893316018335165771783291047432129259002555307280778767303784594272349849331761966114740199769581557004811778326016990407505375393324422396680219377498522819462728347494509207432171629956714347636873196263943256741377497826293556238079050928757922919243025098613554907135066079006951612675179551988063416492660925679124536677111542329056304065260434319773121419628196545301499059852628122852193259381447493878466892978157430805577341600646619807173613420643479515882630554237947144971357263816534559548467560939501995195902707912458414465836287766291606367958013504424256886483656876863108401035954096769946686047725189401454100734879681238421290334412476551101273792745430965002913922372374471010967742039021991590278010559830311120142706530539730663229189694581802421136463048040214268389780836548004483358064802439652469214221410329598237909536871240261787230207482461127967318583228172663856102841527226500878849062543947016196442677919954217047530781492609883640507187002316720509140437381346733216212610125641545839204186801123984752166288018189888124379131398963253193997959753123468058659524554665921329298957008120001802629009800599274333992059612460145321854363361763200383319462624149226462894582939972875379407455078865988042248332298892956672430005503185614386994371104607453949997443507717762479203404163739984160412527811795066350857037827319471375875615465964913697019423642217213668585260974753636577562108550372697846430813969749016767483092894909112896601141170405434176654733425742073405878669039277721850141864776543603341557045158430748558801417674884169354861282884383608980220809898681470865107355743155369477416744157983067191054212490226733004302797628329036588861102789449422348040902894598567605266329045322503999001326274021808783661306071786735745518139199845127208183057788928070546112835348023909321763053213375222343469531267862403326571051807574008320214861353777850515345581435080474865138379675694962912533425482288752257901351157258360945585213996892542107474554657837055699446934696616889707993915285159184340411214136504503762346493576020103581491249984383658987864230374254231747614032615973459366321400075420310812369275410535371351729728938111243739640987093044029848824958881091878706822476819543630848549438587675936769994614380522117827206540395017581570845041220786807264916861934617524011527754676415172294193972905626097090625560766393002441000789166220522098519730825689222759956525790405636238226011106749056032592674880873874693743160979950383644273674408953112242317223452968534394932962985574766887802991170774334648933273687424431990760710903248804330730183621126061220523135095818700468102762882769351487331289791006448359688720625122175838133813673960095505780501902841388322427524369852709925467250876709746184056629250746079318281253290506495823510804443104857395408050103578453929144442754260406647588158215321301575395221695917810467402788223633121275680623703711193951203625143680283769128075903444301186971316745121885065389788146622381632835902044413380358032489844188264564550697627247599883768425319587573314319567152014083287052276681220586683449578505772462736760515816553012283767059121520274757727723470278358630867965311091979210845528335154462784307508049500902109152841038361969851324880570867854017026828290446662063150887173759167043747807531500489055206074256238197925672773748166521582221330290730715224259870968915844803949593739203264673036216255284996521055881490077782379518678021416764693483264275924895536323482026313315536578096397733742271313420925913549465353156326263460124724587150061667122259331099610671859258482222806124803438205888955876346121434632653982589413599473537527588286461872703071135895926923710906745597707602922582257781520548088170356417416431638025175794758520384990378924175077822554384161703371215452111238235245338156435986588582511065795339051957350477365595193528881877851697684110292114812557053427644885708538735018789237379747614243769507931790811995020126949804613169068940803383614072341349870554917449662001816104063678141466382268967359526847877237823237606950850285844182015999461157831982738289924184334992313221070594570039600099515801945982394377228242982501849178292975370913619424776805180955976331462246226965443204045470597698141222801064152668624701442632305193247571629669411070048360796369362429388704501885411944746744669988893466193889326899333928159105698997352695354049514482748239371971604919386226638460723867861838504124700240238111981035885771482420390096785236689562002069111367108675729320074131036747367521360834591002104898020436151562204416472831042881164462173041913196611251590339422898493652537643587366071248396733695982897705178496346115944133428908952729600655259751239143726623509164964017610192718811456657959721184332193212022795324037957086495879228097556632250103254904757139382685092935697992317466620550011573805690602390838143104029381832111669972509770531970495461812315699410772068875076043082426494193892572793416356981768379166248305922120805673909472212162930973803754177533453665279078510860118728442484719236651133731927854971858221356798627602456424930694012829813229943275745112597335272484094720263436844904554761572625567938677287230136027931455438579049974342208968047694489150925849850010899724813580923267588402355118543283103270027384471397582396634940412654143127134187248751949698988961901757078530641017840813360518929417738352946806456458263720389221022243420552826786960651168198129595383968168769944448391448585666889015003642404183146380608240861353687373644747271713696720970445887423874082020653717193287576845425293040779941999076782231412282062431311076028281681706883491277530517635210971761837695134429384129506055597044922243021165136909169588830988846778300369579164025501595414832935207826884216882369539454936027912761272754653870671669704084609417540174393041906591497117918402485080948896259475111914553244625176718852061175012714570602930025009374974064838456382207876751400012834240600747556547420348085244004766348405064456702233292213548676332989057426748092994960467766001687680712488018927782848706681866356603826934563044338465402684092999290951903029544578599321934043700374801870101393532968589513699880764367575775374887222197183427076979705665584613968929277025421434575655237401342273315293724678282534107208241443632042068090704718989248202555464699306439726389773314743516831376056902216550617018614316227615210611951105917078884702728993604192993315324885830203779327876538468163730790956534467514522132325537178615287394955126066429465319142483908378584603290379697199086936463482688789919872769522561800463879965650777800671195513270683645335319582111821180521555722544013161047641314773781863942488886359573211709803307370326268514333517759163983469696206867154737190526830459310926345117295996552589392189220471004135039093254601307091006432640718577536794462052942651607235835774177430446607798159322757316073535605307226562315894243495670413793507963927469068324312774365210966715558025803399477615158334341031646126732271199405296558133614403714351556269493277022170607784407115222839998111590649239451312905024928722042042814584198104803745458443611653038107441059838132511476666717011619348474900707422532126462926891088489211184514843056196915039941973032566560472404010361492273379658814684352061006645145130437376822343076105860763365103313133771372160909054248294932250951988634459535677816605944243081860388996642621401943902027700039400174671840638820699276092700118865127596932124216438590700684487395771708542320274868051194132847965726615863498294434073892493324723798792790193356628555598322502830820433109809101946799273176804153829058792105735952892105274946202086127148654618822801756308695155114043044352656719660758469124101471281951932133797807613740316834560523292283408935574874046301334478815006474217138917947392917001853402886954245529067289100753666269679562849064077461966297691007181547941364767957056587419099553841968673985776317451613216599789553415649302020907110330646655176699899448309791576384099293182513861948078765468683978928986001825919081415244602991272386712054036791561893078090933798951362092607087388953969327701801720743666151497542106560973090648805604494748028453270040810044557635685173676805821765757286102021223423550424281504235991271733099214682205176311626970444182619267155638449411668697822469799250076973206729652182082338898669909321703374688028335814800173367934647940471977563564914858647583937553341697593248011339383000503979162723193758430465405990051929307053252012429533377477216377540156993839720461443239762888943390749821453736802509170899140871011348497022709435342909087580113100210647238288289247329866279102002129771756557543533686109672849199522593346320660156204342075885418584658676360391337892799444823542808557505083335235007497021626067075574660256749246718384499353208364748649552718349234800442827299751471647179706946952495322106831206216819889471310741938689453263015817152567255297393964984913033965704942462377301459439896930806790562733048867812620927855549128557640556679271572153775197306763966594133250631300589102025778883070588785442800776808880484952097546548709766083762355770945779292747991754953080612606187005013988533350078188469350207530760166905047781806245726427309657251337643961557383768669109160118385711286166932034565412069908484491388395950048977918211972677919469301303211252256866871365880824743593553948041356238374853682577049668322250132691920819539945658828247266037378806124085753246581201054714973903408794182209694262898719179093638744640991202675801492164200330156582717997606379991559386296621923263351240809254493022384862537352456441598071469521179984208853501956829656888634380351571138366005311672474079798375247022764932342600195284593596981974302599272671052793652223305070668229717782740302600148565484123349291292130456946629209642985945294208956422925357137274415309108791947625625386456921827247930898697591661807337861881999813279030345219195717606235164876819338082461097160119532397413711505367629845954357043971581471137023378971623775818235900924105663793389461011805858750695517731542396816376889568300479800068269335537808150156195315172374540684944327023956897922637996632157079820896097197345839068389319734803390304760476224608983501206216940650648653046058724376834410052345652010567779678483649424211105144937975085150888364947835444452001066354012801139134284993759012520026863320959275956731959327089897063234368155211629370097459067151480174270903905508083118392150428097015163999991447097405615582019765683387463449417122867380191635743841168654123565367198350570752637200846748951555172095914845206638532848737848308695602567891547751974848462462160671464505642425732628198442832601089395420453252284326297941115433659313774853029598450949788149312763634029951740482139858761220465935877111473008821923672753508060626628957371654551338048195207212138066941465554972529939774132644330236765674402352789956449719222241812233603428446614684521166913679939605325238926903415188486778111033675217818207400972289240980460105499782644399509119261200263296746377703790941091088127265487630200735930434674171132970919285299106719330536667039767412733665915006632243004603769824983820921924894392965250159407524699092360113483982183657648745556649647032562817002659824123207502261877509020599950640224002832307347243956323278805727378827627779550084446842857281286076451419116269810743892055390418276414431228307545577288703497830543016321586157146508864386623719421865644127901387782741245309747057240709014326538831705726185333909201371144837288064730502639183355927111249833301988490980442455101118826731464774296468530014045020174178691506093521999421938659089500275453037978170108621862894283033938210758198233678619928137052871459696668501581169593988611624724619820465167602514957549244273207856301473536722792720834509326300631690838867211364862380841035955728881295556804142373717501575200784717009351966617478355662219278543205037107505340721180422334457356710757857561634260665909850571283277338208302971558731393716549704444044309901583042405177438386306658632694540662868940201666306923585376001941014784962683912534267738736651950458533849320112418470020833848615592030910487943011437969375908995101493468922176329579473810077360470590764188132263204395708835293874567643233134987722478957390150237528048056468324645611806752311001907734407314220316467037751589746572184876853762473404475260339372680537597817274842071332863421406074068140965807675459293159278330850445747673772143634973127819557387407074509048615860657852899053810375438272678053661352872325406020129942558769323510157054284418789363185182295094570288375318984937071763802095154173828005737351729933907817975893964102001723412812189633532575374904357613616053597407099584883942154319774678589528481775021194435882089742730408809288118725688629010704292153651315392980431728874967515442762028906671055833723442928947113431856620313392128221191812765525587923411771620831288522928017269589111480816935329445591022398476673968597982362741445927919211914974169740052843142121265466749609313370388426316201871244782108048817880863726518536428355716736310387782135753328743232204940536469192557954179430265408493717504763503291562722248483894779172785343180799194788195279916664913465645098795942538381695591801545708854362996395953735982248186508304407091253020162401104319681573068573430114625652371550159660424205630085724476904346251773661155050448199549759766982623049286505284427438237634493951261495411521645470626760246932643786635741484982766322577498763908005070499479290390978192058693876853595858559672608110355939905513234156388281133462546990600611151341219106426955825920062535313251103928108793129186143285785554015297240472460035746682379977405656857587222525663686629084016205469682924660011465972093493932644599226968003600381927031728693884817979182111704986029202449279879244030352909453255047464189409576930560438052429962328866663115716203108275088477229378932541202862005809094620863985357564815643442896354051965164362377836463875529850573554533934500763499345976488769383037500387296328379509002292684955326255876017000634814801451420062674784629456911096182944105615559743157286920577370494161997820292152948369239045060439676039942765873908080996399854535805915189066638927323769723317033650469239588328910274095490291462322265198718557653458177070783418514456332855645693123759247555311657696657842900852717857115381924769473025511226770836905154274886517638661218462047334853816641449534203698544739651726633836439406341904921843221192432144219344337245612006002708878412755916037379897326574920880437156682179611788586047927890468373548976587034354676793440816398404989842293101764096306633960066776768383021521979340904879723805744248280035691647403621819286093713979671159249707849732539942623558533800533356400126962323968091260157191809052750417720153266170097600353725263026097632228542112450077559267837957353315786663180299466881990025309460992814154099848734578573218575692516262972016328837218153299204140979639627255869325260411668274754407925776869440440122930864514985302076861550698598699930036093428758961891352103536037741466030440339399862847366741332205653042456335918068417636142488784445809935397757635503781393635792979572593375882457494743975026290908310249301493587953776998671731831350309471853823974251673947600363957082334193667212525356826492207623628279827969176098203900693640568703624666796528439418893157180815183693668427991431875578632311524852881216456306017350565062010762333485236097782305395385920033865683662007094020683291763388726491433277902307769361139893121027512511241251721836766985486042395555168005404185850437863903504276684353522675554755023423664996234561781772903268787655761753043265749507491475320318326104922065621111345024716166240829221443656262842459982732805943386906269140238786230205069817609269548106243448963700815998061417003309929968639983309278947995766182107825743097328158333651262155229276455964324250873182623876236601588197188932025159492605408773463316100895990816950515884194356513737045344720963129665207144125853160333899479035867118201481990824939775967576278091947869150448813120101553408430377516133460508397877659074106111314756156844498295267839792569949643901770003067308910670647866526905807731661490068215800313268018464561837078004807096016493955215823337380604334948591424365680210801856882342372479636854123065136193305507331365940095638112017634873163012043905704112766656508337326125102092837609950102967858250853521280357561625914415410817138374538741632756485852965233694728226228062518435570260762970469582311571978050826803960149838170707054840783671261163860140543621891347133651133367267582619040387124561327995987406814682032738957028488015265090898871441396851410035683857943820755682519001055092846381767105481651036155867845453700489494465831211735993734761478298593614379011180846751077075499239707132303713566229630551615809405850434755933588758303699512523254465141042950768586217018579551433047173029630764418685965770505896382945057448524751263420730852744402538327488785163295481140039153521592203543201767954995420654055893191056038665581283971362949025573561991051483315686016602554011470813580043575089015657700235618892918841466057906309644718551502072040062416059172224320678734166730703021593810020172571791461652548301187179365681321826152168838052503697113319003430175248645308505826424357956689424292764786864565966281674584781350993816458818776982941027218362036921652514089962123935920309794179231820369635513782464349804385565723390807193675548897327575279193334155590469656601503617317272715467906629762599243278603643591458312567757955906147579619773815994466860533003584185427699545546280312697032988507511550367562736626579886347583575220304948240316164920666813675658240929296152631598370244825928184959842430630448150553614377208978133291155504000143983123664597553462904910316940438166060083182944517273955997290495748741880566750285182417933407043062604093222304902037967626092029293109773631485218046926286161664167157602552493923795790440639635117700486992100994783083906385797920528118992126978176855439411797308886185897530466220314259484157763906911325846293847373700410707701426525561091435226912211647377772516680485978015508570224700319646549960720997554444544656537565716800152976030499376780148500869438787289943150858988274991354909592248251049257119647423507836771579814812210655607662416784214300726310790524590763944260468787825250223288056020797255605158145096694071624885130727201443860455210602217508896872491056713766520227957490759598707510012395120609880598629131492982459006839334466535262251192091196674298834919178259125729426149335230442798095655379887032863280531401831309981210830286264344133441814770410356627789399985077516723871061965885691161646004882090314070496917472679584531759414154215153927841592672310980500350990767339286813981783825134604010971256573473590447554147270768645639472557257695304075113563599187244846780324885308011705974697894840332845107711916102696692528924316094189132984350160602995524790661284348606444125449857228524985943411999104354019931498551400065068165745657882320864556512300559909286914313885145050934662862897202603590930072633320000718497394011284310570011234428929227881317651174886126020038862779127658555931970701103195065802118850393086992286045485598413477023524107594855993173580565688328805421590498033435039070194616537200266504507046699433632473791675268325000165482522914538179448899475917231524179369973161471923260509895943768251935269355225970964654694712574332989790875447199628561833506372610483650293354336797870050549197531814431044453235993416064087847393322998721941465834072784421041554483330395855066578829826467237339239014939986010622707879599027233032445820140590562872683235230467840063935734843472377349317631157913661294408017623487106038253222905604472166020506151215628613193063339879500976605578290919233616233385589280972899588552795735148633112165884922921995972432698332738422781486483891792164631447377409573895664793283330802160412679287906590784124798916812281780979202852948007087590433651405520447015047975200569941165979310417522636349935795902720991345422249243461496676259429139979686381656597597080949869529880466821879800634386598182982116561229508670233480113889370815225922039675835052113493055215768007976085178902346993646059582266885211902729286248725181083608133898719594650269637602386602292140414536692556551707437542834421730864212811940855607245386455230634913389822811104479902685819526453719126145433771721660023653917238339862858569932336544516184162286942139457712363595949444069623693946586326464893884680699698724547493447096314342541151669265655818316955232190768178422235768554802472677681078746510102497802880288712832197697198314114569093515537569747820903085868873772770253972930143547222892526163556949678019111268795909743464696226307486802862493765882361520420361310604147214584681324565415663845289714960054819808466573704238657454294963140247804305398115528135094211504598972589587759245403985835599805820175948348850079053557253293561728418892856241386434726937727375032697890136714613030181501334146872020303430774636000817062489761586673723799701152524949275880517604967602695893074230104630621959560655646299675852073246356595734797019733767715423707885984201839347807732864353584759429901339142075856826338033212725668795186872202981016028577909062405964265782737734543781007971465812503624540098995450824942166305874295210973389142001253414243672869222634365464114910893438953300222340516436881505682344469688972321659205935158582635536358210064420645937127921764372225472299249922094728852898429975856422771891901810922684679628840041412536402897537875327305482076150244744051999657258425019105437162742534209168111618426435762112936292304145273957829780644742431816752341687212581690221227084952819604531308763760584689840601575233351072612330246998194617607996121546111572534072710256609014602987198386395971140067924828569530352235968154682561170328533486710918551340728636012016629686490388872546709917283436893400710567883643198793185752755709919160492960052046895146641706203016902410664481739001354073347258325184022686288525030122819786352765514085499429905026276586417289052213924461267162820587623431673012774638548759630297406993487524646442479608342852231771281715920846776532241598753952660389733312618178434422599019846989115678519920907387261028510156258541756546221744333570265718094543154267962461530398700191267330182634423932909516165887312190943769949060921777505394192949212784941394721800513641191700160589912012774460732472358283517055257798276972961747052877381124877953454562147612892445692255095650792992190076694949095227947411173472067866145851484501454633582920490328680292983791606732753897179685911259611385285926660162506903205835225590230730291911544871137888992242393282789352396201887120346073290056687054058140591145707286583899507576933346598332380793932865182582080109379037534231323520502717289799811131579708678851493626259814747326606496727023277541914788389374623145404305326210559789354486854041466765238292451936154177402675090729688978324560970782752498379011454182870218664961144783768912155413438902092878912238609683581280366139120644510471290161148573857953816080556687674414421213735328767042795568005786548821962803965806815416597826171488579745406938498561264479999179847953585545179707438369493928884715255949087679041979533413400067875597414930648831981775876022049273769227350403985544344975056514288021780911032543392222039792811740253753284319080326404968557012299607998183331919605313580521863423469568345389660045499065169597313523621483588885238435611625906681435274976749454643484879645266525370461018979937541755283237479050735166343473038645161886811845072200056546402355061974359325955237932884374841687732645290273405247004169007427893249688126319531048146005917254511825829670641197873160970839976053477769032084034778984563693882567897924204090332917313424600633729872432754497927349444530695458178091639880721498848780895831486884401479731345301137734285893681740114335003531119684620079492025570599167870137107851544138781971698674584343522363424476763018327912361170747185365380805841466171764535496957757291131447836860398254395456092260721730212385019665671162680098158959791888125008725890346989659604155636482549142429632582457757187565026053641793870014449916857536304003622952166185221633323244131322688377565762180585658636407520618127888346096925949130068252169555717032686962293336711297553498580111367513815325747511744323100946798833141104313795500216180491856339708400181199642223447568259373506614952750702117943811850536391450726330380839567852840807890896004486121633385907699814270703089556257057590994548037572742469890117371432986722621416645023671786170003734465066248739432260488113658882304460336025839447915508749445605920926413553979529852733464454399452668906635959355259082929991510867810836475734125678718092503373883238827582659714759339549698883433539081831331873271918874415087360147593629487085759355992493575711171656770660343992488812980327102135011022627261102118982770202168789963984878852452314507166356649253270472978187080334598224180054365087855783837570141070404765761850387183505199612220592588739038502113141740953691832176937059521714627999377520232876234563644549345826493539623323358419347710411264102293015097873842020762224803418728326367429574700306857782477020938090157883614426364020319477163811090822115320031300579148837927005725221599051689699929071525601221570599215963924071593594199079651914115716824260973885376883522243873617759604291728772537089370664138278383775751733647638276595643113465639232158204648607175171848980732329460882429980415341218823574297264875735767244219874006806069623141324675342150436940211394638174264212674921897891404784502427253251457770146752351963546730438785016718965850651742333523599859712150289935141457377743563056409594153070598331829433492950444175826635037849585826408636442348078998350666277080201484309746773328561436291676528157196580588484830872803588339976370582163853388898700459301862767240801185463006175256619517524466597419569707052659425487619335262130614316405179569902356142286732774298442245018367876027165899995434911748709352040621688880423284479646009944622518771498806557582168204986889185373913920359190913452143711972420748276746579799519736497157708255962446858532506702186396895169045906312831541819013171730048645321806166105987156464939492242299748907880644765685740301770937525843806107386795706397281087191574333787300581923575399744730013458376531594451254805281039040620188414872869038216927805553870308553111035668377761642862400388463373102130118927346388825411198425785112708762223128209490872557688989092383584927012983409644029589490083706006212510433311203785726940654090810230985970029711804138263940022398694167826692862382375540899428356894180753115999624971430718127112095499599837523320905266050732398568179081385233322853089903371950129501831383385998959604914503057233106529556700711453391329785794044145610607776002470194709489129741912025266031296542917762570361968549374252935564737099179394083205463582334581146839386549392660683787012265922966184298592609306649405870192421243847008333610042727561186067611822198320883417406450386802067819290069116708254766938249974464218636271812742847802516401385827749150308695178960922523974777496252361807701794897692572570262784446496601465698013551994518683102119859670438734169141309902830876571455916051427412060223794322086918316631872757821766797961621078613030371669817126411239161641765231434971959355718003128191725616003026138045476064292536742446477292816978461281175953542679727950797205317650051716759745590048148288220967797016898962888023575926819815226611663099049755467633253431382567808843175418998158472369822569836160264860177590908259370765265020600063725315883761624898279080491087713552651135467435280911386169524480703865746319888659486907298206570611099032380082517805471744510368802225540196332970937978988780882324776561278975165237768653238226994989474980557374939479887485311974771552996117582933331856553866007234608448807707846341577468835798585288821158354640145897397310271097505519243983616460648921689977796113206292993816971057908932384369552673643652450775029575039821462100922035855401715600077679891019012130500346148425342478053847059727911901953725049344428242554216161804871036844338741286040522245634605057875708944804182893334754810907040168323636409702237336196158018893189534060851080424106663212273966054542358896175783599226239840201849574159316604035789962525735521171887091810068939957139524393665377695811933041078933555087105222248725417421920373415450258939103931982376691690809780043956233993407587867969278070155750864549589206202210008731407275078815668501838912965651195623188679374092112046625380413660148632911240109538548688898101551094338219894744112831463054298581027588618180194255680445269034258830412966458530876108601099777192209542383432181350958152058321604968752101640001910681052132495190929440672851038556423833769046232201948380952028244964379975479198018885557886176032279948063328262039358637178577851660285101332178544173123171308081157864319416983111701998021604359471271785111552890534059896370969247380672358179231378182621546093799294027241994470975732618213027143359373527005845741217532125212379871928981495675724295377435754177016658995679350722573624007045594015250326724763992635866700932204574288607207005664114149521599060072076036951161282939341870872102677623177162597570962125764665576095875627453088067019836018126680853792932404711820085179046507348107563834435815442374985794781069260534009710265980591364167659421133423556244388968890089234249070544433562033677730231932685310910679804015717730963157710277451717935381809910207126496890834360669028312896968718129968390841566628272322952475180097446252106756275090694427917953880340283548857804589511508555688888849979009063985226853445199616391459842172217215411028142811743570695990920149999660984796075480259590491337869722665227017089474328847814089709560230879009588938391912991527139444281930208443757095356913083031528471945564589001969121100928102372576461992994417029513258750787468755858758988083301385129669642722800550242624890170641271057260830814867781285780422955612563566445887289898769704161601813382093978383748831459935664282909065103438909029174177301786519851378152111730880882551400869015353621402618696909756770564287493995141235566682313138221894040218013329478476905643647125870418262422761529300510890690961375222880528075784960534169698986158217048361567864610314519505604525682122458123602179692548084862775038055153968074837481704797759092579264069266848347007940185248038736131871278999713551136367841045317852767016780408466000577803068926658914096674444875125710755456653912968040580645878988466550121920343325001868404596587627972097547056582809071458245112296788153542221137955573965561875869895222449455729751975093204862542316980170489394168155819903119525901763372415794276030916288019276071314524534041398776053136554618427283121901102056398384435710628936099418703353313369550565206413970635686935803087381832532543238677540010932446767512629549571888470097491573616261760218444287697638563645943697282244583118865022804468580380815732065942557529128529985954016490107551991102877590743518955789683297646274468732988476864969054781224822071916026060158345361261130911509033584748252124348718878046862430987123765513130207375321227798778598880492577554397117244967963533299642063924854652444826564941135953485642407031976115043366385182696345034449400748397038269309726641657015728069998652951073584167257718510948296653472211774281523839477528592751826955880430178040151273717618567201718621799746085367606982025828687071087899223181800176214669100376659448737280110481315519631513937337672218822804818181242597985847148489628134408880273071248526150600043628541860208376176441073088069812106346820280621605059743414974797902487394898442763736759258570013389187780019571532881515852492516862458458268275850644196439526136520414805843533547109863020398807019289830551060614307720885358545113712135195666849915373316030958077282777161070195808968228566021092861459574207246073673147541363777748841593322533566833484871821932049858214868536321758480417970849009714872177652926312385612715373818113790144135187788173672439521335954831749834958894636724900772481880934820948930622769794325125919164880238897407550256348177751377453308137561162205965453315956500920154870336498824887084552413570533801180563140641584152186624664468127537217109503719322625566940271254915533009609606266682230777208250316483126469530997523536562211626311694735546687483852985269729200828705486083675137522867904289414719671461376294436418921128659783178291368094450364594822274859587053847015595954710386712130346984050643831130568278011996641922118195827696347507106120424853895823969628142769564939673873050520785101127646314475046546532388893927421435260529486452599901317299276255443300434632656873158461806180297027650624542403586597352809580893553349407770649318847462863724568494513569207890478661360369788542015184361221587420538420112861092857434525243918531077008329134263956221076260968186926629381694270066629905745797560290676602541629650267561674273624687183566200199772905482595414356848896002891771566253658578236870715010183155298842039716657813040194242698419793277652536223039642380085352158228477667076370900735362677385998414750287605810304407450730177014357632639181577581400143446072212919394181626313145096775498746069999199158152672945258222783822408421180308814672092158713210432287642670783210670442530586698585410612814118635487331547822482398855640884856603905580248022247249605191700563550003186551967647791543895231377293841397300670102833727157285576521260705198679751148562198177085230539735151050958549036620784775747161923183063783450845102526458182112539102119328963658467673149506874869099280279122015580645823824767920141463088586880637729514877234961646134267220405373424648594012237896669783891069564902353819129003291879125793846155645635379973048466240547556228134105385203371585570470220761860801196761129298554351929293166874130691560188905459340115386590368971435807620991807984557942582699769361370122624866661133654811199149148788909159092899082094608984675288141297597567168262103356401395827851898073955942571206687228550777531137228846238718030736197904791875313620154484654962947579138014158446883407351059773878933235129526067346076982731379161370394720684164534608076335897170445686994657160774343149821454094441056310673332373882630929910527306663894918072689354065171443685014102590867980645145789460340056277850919265113446179861891668434893156865401456672447408563256276090378779906045759842045850654940429798982897773434780165026235695581627373916667535876501597111265328458922394459212198337199894080128064145085763435892855810157719657514296835486719087078454588596153243738708388719689774358985656709277161149713805846549571309328465561843854627918229621665852053544655225511161608652709552855800920562908011974602156421558922477412497777719598706183120523733336670313914679812124924419313674625783314375609090273886713451391089287884168409466644415247791490959513005156799011309380570728669225177018083523423196119965650642475767067184589583241389812398921545358065977515151951776322704961420676509251916141485571581167721885282369923063337512432031518350215595974979626754111887715821034690545462739662733157516259982785835704458031857435725877770463552576171953192489851811038493436789691271285731445687346947428399894089757271130541250940336394667654831665389538961641467059775171955706259179642223270660024409061243935730001819593670397242908714532567295111076661751000134849841436882737898590901041720765824885669057963727104476532002520083816701075765213212360214765115026948233126617737725291146463811191543349431289129400800122259690916633160189094275776498767638021121181635859271897323815326814558289594696826077072467690005055537439668792076844893655712170798925354680661418333245091790934908594922539352655784180392993908257313299809363339019973117893019665941005387315510624600580437939693386766027930374539570577000318335275320413392617303613076408630412754616806700863506627801368809901948715384143574646290476206784619020159489962211053898227203694058407771095651644774521613774287819372553150302119906604987113102626888458491870445717966405687888983860442553916848215910032907614986503349731170181220201471559295473190187591565873978392385751337463006294614708577829616511426675824252406290684709643643122733766298181117109813424310847656959267792223522944562207098293514585133013035264661028982740528537196280291371539353029358073138677021388840119256298407254288235968093072627576878774245261652567591858427609689066547414898999735332966355616222176011972989304300231893949260050960591903055307815557347478479131192735859787410894192870871129620293000525215712983854140782917991633681058123499472555123540796141246986859648088248170005068409248177256632786151673357420954029127512299063522687110783363264572688077812043150215516821095425966444459335779990672991089897077922185649538638847024663901359836704028539174281087331091831492312677352659408339741111842324914849367428577724951791788445993427821578744929898848861856232289846335209869715928986175384050565699899413877062158327612079213095005684790649651425447354934699221310017380981475272036142801076810039079421417479562097165770333187878154698708742919728363029755613075216062100910935559337993941921869672743802165019091783452086968379965277870522441807948266719882899838415986389901888661790114959969387418577075851679871941528360916519316201316160127416701129264086803628815704691383755960498743161540561163368231994652819808295948259935631999896999533881838006892093238650505358931041369727879900482829522307349061227734902036670736914087458959122825270620746053468881956354538430195544532730313956421763309289438228318281800466583524192278070832860151792906114000251767146493165272973225172152861213331325093339378526419329349952664229667658830509033866763446937718007948635138585754788178538848239332722474687433946163463413556798633780740003351046250349874427692789619000478777813838036617443951742759949809735460942204463317774841871636522233375244205574794763857647764017112872656024206897229019587212738604526546751715949755908512419780268710863692296287509233841912251362280845238159022946179809419454298276025415796159678576402738381087747885831747734830763357216075961265670691452945927147019698053707975569945776959533707260152706732898386808581005155933102575523842407030028803656332138453840625303290093738451166573022288367200110635476607524383705862934039492085779013790195799024907169348032331860535251640882838173029934967027437837680232110616186428080404100745014024935092693542009195816293638098957815231145128244977720635111889556857721223299716986941702224523893551520315497503349241867861160604640375035704901706485498010448291201714797522925792472144694778299000718833323133786509079889180920507321157139489058497393525238264809106898908583150051952246386091895355060533184591801829823035974291812956338744050933234378782560509732126766038397333166098516793212511714282244474409976618815119705334402911131877071980915063036154714317466258483676860334660119618114260162882099571845412877207971164613552600036539492345350238652154460498563944257132861180759464221774902340123708627875133342228434052550688495983863567665257333739109952462255545660081722342655085438210496607895516913750143075942668829359283222429844884036573573285457821125516682553344183525929696295178485603561929812428001359430457256226243957432187456334008908085561495738190306507431792790149460485166303259974555212431936723460860274195745289391128707662350513792087830739055386127630767627756772820486630433946807569200715743535068408517797073255808038359972953281196948919099497534877314444043093429435901179058242703873029642439177306256744138808578460038743933512218866491129158473875184384614237569989970162710305702765541552536067387505687596410100792130841385301763010982057676679893452184232224858719802510825129170078520728073308938623114984372266352247354575751022523679256244672171827046973145078044014926874271832104847563707012864795377746705297108083766965584326446867980900372829837625260511495267893744544339479589755413535132260545642506897166816358745555682037681738203374538902493454227394776954132571514405068454066121359991877801025439449230111782166600495966570525585675723105484680109701011242206448230944943142345299265942252302495003170557463219311314593869059738829938012491356429656059440085727980381146628944498754410055951735016046433879854018009091687369633348476946230070443621969305877657893105728735441819164319904055754185073579731439715167708667480648949309098366023262460485083920126922739690836294726741572704256762722865251732542080524229913604783056364874397813652260762583026807117719960836398910000610701150814715913906522516151629963217197304513268101713357415669542006247870169875809282532912626260442581478530414915322153201872850282365372414907981527193532350340002103483214278787125860293078622911403924365480107267125521354069166887428935940338408968435690013215123843045713887864820944117200486809303406118127607660358449492328689389914958778162196775951107646539167391779884925279666168090391711310184869993450800406819545611209662163855856594773302086623239005677624576320379234654380201425869381353064448802400228892681054289114748017074419823428753742418476155778283071725734216998180257296024739580600124491489805860579400735190197835158809702445208761464347245249561042832215655514798333906186749306364329052586122849666735448459499877181864938896253795320088202315007046124534133583554664083797862929742010855269941829863458707252135952508572444234547458490932988161829984077151055626330085410545869349574989613694755852099177979420745835357863023290554056713026847633766991445394153568679910588519248213297561660466205261635484896795202327601779275726051765575476350247091212583747994640525454020694644500963973069236768313809975935624979060732903353246155378899220668296472262538666665972087358120539935525639221902143401138328562060426377645011076980653117920456058620612039540701425397929326282298810424417049251381003689057591855659395541071796247569371242927816737548292802369367910719239755090782211209753113854879143703640148367508676304136899030441893696828683274386642374809988327277285900784145596412134786218265433729716817699529807942527868826213941510962777698449164871311086118148727398369657871144831739767304465664132035090162212391716164190743487830893196254290055671930430098907642833832088566232460893631963938375484578519207245218496094584466990918626984654789544900612072058963280253652518330938678067972292371018602932255198808713284145198662861615176748992992321962334122275927630433307602981497027615676724156568119545021479701026502005022643197493942549429429741093554846736289972106584130736323043819479784593956706413323921027545196947052196398421286037304121078050302928275662404907098031288185421915020687479025941511670874058149047095864682445988052539700533779073642881409976531319523709227502687748476216225791784498888143579468658459799151560926844266905194861597032976550475304569761882561990821112510811271680904632704249652154147592372607628508364203597230693849019001192980721562880857805239685658947162497294561813582327812920956210101011219813667806910169462748261885833468514938676643033907199155088885771985190404603005786298108024267329550070232010772714477565099489586360104570823958176865213592233390068336885611977885278085053545687599826917652919876005990396180654116864072986688056011748604657610344344919648279320804507170421143420098120241039307348857433846423541922173462835991361913000057759098499652342817026369571550752965275525124153369228023924717867337574470861798661602004366057914589411677590747663463238417150490339718771017625313800707965655415674374381640552657837285233671998827194293855133852014443592641778002664526518538828548664238902834881269493665538823555305328321278380166050739452093287790637469375339258258746135577476349880760328475493743749370900003546434973565951544560527194783934468462647698797553382628151325970186905263528223845709206229564051850354349160125002129790103169508387757836068652742647291270933137325413999676985655802195556207269724230873719740540010806582268450315079410244155355171698352670712733604872684712745438308758254311452358345357054743971105528081959361784346547641834435462817014022986030557728895928780215147601339975117874388349120215415450276084856078673049091860649395920223824182709392278097026657257071755432564925940610281765967358492411592572190486318548247666455677765706592180675570069093614068929966947338850947420139844157657359909571568917527189092433719297285341035510333716904106539150121680822241128245585409269695584120713503126728652132691960411366430622619308974554808392663620417227670890029467587688491376135121410172929994487744629107801173494862321448622748130604281315097269522753385316690022655934023617534250357923572037677275781919043574186871510346423871180180407840332602645510991267477014819003277945274573400424264741687518842142267038009013191704776975884852852800202038411331545405863524702226918128942204446143440346334947707994756939231564512963071961400763651290516673915341220350402518148330619497581539472086975957721326109003005185365058489575756532677645901428648458705894144227515406484588250643863722920184512501528540508748357529128151130169316320860597739483764872308901105689751647720811772325850005821929713144721383858173672542371730219340246791542102661033641155864343677111892013414765546423624115769719619816041606267053345853858170056230737407339868388788456679462373798281618765533259563648270912706839565466701898708088657936979473942068629678088127739207922863739894048212667962138700654937109599706692297164950184726731314453044725902067639623771729113428717338274440536699089629852372056855984274834136933163100648942777755537679517311003292796558813045249145951908980889457017247838035148215815864115321050774030196262146450552540421657906124270928640724756480876289868080379473137062882305962747194363834500295582348530713749768981348109410043865081653068296452814947184940396387231001539861303306081423426688085742396941788572898976503766751917686599139626013432383721970554428294931857550726060432041714944411110142230877454771828684994837091896472358929896266560201224514267143563818470119261708632603403722978693609577607148818729856480738812769015273302212558808791759448980121539765581907371079566294801370349719191887858942854423718114985788234978575482268847342138262170323734294047245792415431806627375098279504280918449027977594393333337495054895775279200299979996669014221793564229089487271620604735224912570764293384783300662309824138297944628791267601784945959145118658829382515066376252059623007904429634387212957998622068002724290777900540745480224446240973418203406006205477627509017738484595454968755460254702258308866779341387314209767812041944850470822119178164975746419847105974499734770444614888602010389946818027135403940160405811653000230612499157476567346198720792109187122886664344026708772413311382253077519078312222163042688656575078815010839802521488663501844258263435717113654454079318773118181091831712658415282926669695901855099737051619414052647647668684503776361415702502332839923458444799908840911014301628496330081113164850542596503856816412637706987267223053292215424600189401531636064225416568862899766606958490010535214074195666098821381771088099586031171650016556171754685882457239526395290643798010698838739382464912026956318296991634560468635296261622447026385961727607848294111499132688578677908478170230935349173836585579204714234992206694460297130122968827682055754429272899707177811626882354090345425175224655941643992678561661652728597419990061111437692036228180095825862335476046974090978080432483835214838936495100255124919333498091324027797824579221345009576513825188081111309418446354157218797338278023777206213680098738821255314763448267141863989845556438058011708328569789257284874350799801297895333504957416765737613575341403102027006597394532908186938097513952006185974968622287917830907707837486317437001515365526447551817090447105056415069206687839219528052351990744524268092358453844303893294262746461519219375121674681902253757573182542582595837620648576688303953712675955156157573090347165640978105047581956340839104031193239987653537675684011880962807665435790769993290407255010932640730670190332609459921598527819655992844140855171586859107049325999283342763772408250675230059022912563633866507709812817889928813529966027866188951919376100644270684479297196403974434613241561863427511152027075872430592077908502383843972891172576263295305570942691867156633697217470782918444087951076121754932726112817258715373165850860446648789911490449573668146094494850785504187396706009982337632007153867878624871801514204988882564427022405359222402385517971347407115112883277186428855148976516888296439261359292416385319749569680836914131740048691789608391045856099997356532534473428754439641306658481551689425016369594775335722603299571565932164221126983009258515377888863219736066785899189593428814292895146880173173318803741496347599553935427614567198803638463488549555050269195882887350377128350543823060530113229817180654975489982991761029657978959584461917643475226562278668928444290138722058586100375937558797947763190144967250701581195752382108816955061913781292109296714624167195110736603126864057284333692739997905046286488195938674188858272148031150683106028942757429231265012620560681379715640755855451526135627604022031991857632120533595463926153303491295407536933307449973954296513167848036081756346316722704428790395843989323040326106492293588189107603268051790796767291827063009494426271651024452968894672588539185562191165321332259946830333976106580772332572876540579688427288089835265451126838506483805335837961452575948068445424357871586959795240667241350576126609531792475134137550903792769926755464795242458022154343703522421902593272516354575670721035333476139507814130374249935147635825515340157912414499056745921695827757506326121132925097660876860871120323838674494283955032854007638191114366936270865608400367893086403594227045999676488504232205460452188927692158305650114435242388919884336908837381663574998799776219131299574335583889910428978283719573008017085793027650707091999327244024372600917964866909312623918559695198589162812977108594573906152751982173780044710979191217934301112391425510359146903860097672696231735012817749938323119164539108614879305000258997414262923824172850984362447312018077055227791237029064833871662334043913737251483253527689818063413816256796401227533115564094594307146949836148880578821436062402841680296410800429310163504458823260454356583729918839615489744707273873718042012438847946928401646957976875949633926811527127370647581202511980261143786257378378016001283065468335217519500193408938293794097331660387522938870054842728630520215669934702814107955357195831136535002479174287978878466224274656077024190978132492759464676773627543547362783072877604644874444085343085576359388425019528457344491508794754977744095627996883419621881700832583142259430701517528185706134406002466625456184480346516162808729970132118385088037597243959755036784770887379308943256066059725546765904316166505192136194072475748328050948792806554943458318456190862874880812136598109592925614691784683359801764082803482121550642497870468055057579250982894748250404855511453278594582223777195519904913396714034623103186346773030997397555528523207719655072859215890784128713582921862618904840205327617765973879637012338380018068324962382015986625249668416089361496206838719155929217537031849606255906781623199767036729732882225159681841765447833843882175969589868375265701829485913921872351065343634281269039761509602764317926847104799576000252898705189567197588929909974302547101934715455508517362621581428778913910419244832288989621349150197290486189899704758349661165143063477541609921203791934679076106482307228432010459796768934193376415839678889893238964712980912875113616147088581228566516369903444641652532113949812813972727562525241445059712242171323304741244893188440483059442733866901879739868739284359019146289424125467849905207495038295876543726093246277791223149823687524197699696037426724059918819253127868771677255804844177407990602170947912018871790115730666584480154520702087363440837094726341082733146938451173596273603859791720555578483736235092283108724747988700510241736912212285552398492349426751715525952046906483798399036495056349316281907996628161015137076000704143224535532114805600466267702726108713949856065748575956542995873445325639010683264338865548342875728095564254049567313668539206885336840657013196454636620132077509552322960421769850182934368096877789397396450739742728800596517267385915318100009646249049955562395240279520810898720869888695153298627177750219510780292272909237553687853445563334486881464724586988543421543137172506509262683315202521653256661748389578384965706722270388962408827988062406742523305151295856425612243851040868869471214198310739153870012811741961981176633435365479949141372114484911625156181017039534501399822988911782916039951884407132058166187626391972545678445184185568624564525206097626669879933099582028196922379624531906174627264808900539922799304218906897898322728174048493740307058271708770798376289767027665453923762541747710598382900471648850948636727258454279631565687632037812054274776178303512883156627191746666962360941754117806151840672586524048759211018980360379601016524417061302542862768059665863971122905178370393770655357707327123746180689025734383079516867118974703585214876240977426712815750386420766352236326964707343569107865674153949541781889643467014637770422448401720717565874682608147030497703590619993224763826454106940438113788391974142257292503969130784355118907986533521547204908011643250001491035394262041005605021033461627086545953236239591914365002660415820833462632522710307842086019373308910830525199401077928188978530880546753775285063968744163391972279860645277183630374460878113571579027376523858057921747298251896695928789615590366342654446503650258851528517109446026876079719163002267703597024847544810627914138894027303640484670754893233965283576671027488720219916884996093795685764036671609204634207769005301632036056883183096821805036317318167548042222362060958259599717190087472976730198375017474814624036053327537329692057953260145850341267166702664277216966150607177204197471917546824375555858843648990158118022006288132555976563726591928510997391997415034389563442919273275520644058536839335674013255834459649478169028743974964316180542677284506701890254078223726091778538287027994233678288293112423679252439362830262991484668674521665921941322655539865455457097736810490147423741366930196384792736799655423073419984404403451862153041274625429802812656372806484260984349772601204427580733277513079455061643500615735762997433429216641287139946804160367016337256940914465398015116427933432031396835390374512825620246528779811307864444009396285506141942803534060953889290942932116685653466246977657895990115397869048020549038024230275365260657783732704406166128571971479553151784753538457867574398788342099379672421144149587460195273796089471651820839869868936033600847523546783542208344350875090249873371042334562102321583287489660779119714561109258234935172118539444677836774687400763154591665099952742853431351086794777205671997180124689658187494825949739356607683279043146138069124836108480851286746132783025066632741142764532705141538661255900178097823511396360196070023552358828352835602566385387243433363987975609119341274563898859470368307460316214848141080007636197649507206941486162413845643666589275364631559526069703154035860403079988648710959548707795416381558691199773936850548209024898036259915094908699706541647381884651421326235246328486592939418382120347552124647056771454116809241698697629404788338048121584830088711609797083420425664898510707494621392801709868181767453766949977910991332479681850068817818108557157859730054529407885551728823999323519953199948615572698998954417410281758365495517352428668178141901448996641855375329746097713341666243851638532779365627026383283425031738042942513953933477917283045695283551754509479494426646694926296187595766952159617727643717119281723663714244684349937050735442498207211781635068732619736839146759439312482017585854761304338715500650108231967132864150143907781369649478491844950103758031200377408104558739667001293128308793849869149426155565152737890264789683971866246659956677700398929174240017796347969131301022377421403793969133559485113928073924367956522072760706838582977448073678282655897040957700897932796126063681798250337587981811564439582457046171942229707663852295080263582573837479401522446759793479513265952836453428288925653774741214099520426270038103888285666695849086811468378198666934664634490780628904579368239456273441832658068524865551556913343979973779715933370373952395238798255807041171357102662966621351081596037768896996254701595354683124701245763113114089597218752774556722653367948218095550702652746132531806883743779741431604282974313839236250908885878977775472279877743662966387841155180409800428266583978993043526923916871107109780935592702400026879702387123197575218573211082971854335381918892922588873952043126794057134960144515523526990950684137406481140377755071409683120128653221678016724524384557707761253441961722744808212446713834884753554806104694680657860420738710984403505318344760777551868572243592352066447650724455714082582602687453147503158918301855234972664730017073318423044726379096565189103253440631445263142806134804559729421063382596700805360818657317074578291498304451495006893459635840710151153837261456328855688688882999852894748407855812503276448188529197809589958942501330725760024105408543645543893798300950638592916368910221971062817734366866512210278263820404084297975974625165248136674821606537127519206041007937479088604965598892980597276067906657681191044740512417701091358939179198751122701144791320554835291859940212327606847929517239366457134288404659468489948626003695076269242613181193459769490497124927219888422269011270053028421924205493656593964775823285699556504578501290480186215440429537034834703068420038248334079850033174293381553830750621777079056437899802117061144562334668888144180758174442599121277610285899985719744483169947417789475654008236443887011377621952800174072331676280270708037330415408881067334767879420705408799163737645745090554191193863617583028987103240772854925785405150439050974188354994965826962485502463352368182201227903168163440172719498007747182218755051219057502224990109511876474825135046819057668122231438107809736046782239322216971369956657031809516058210881223398958673117850978420304750215915168948283310316751927375716163613071885911917517821044805613725749383518208949134343651548439628544944204436661321573116559797508789296499235828648571463795331804299836800277114338283293446920436598751411740837002684081630870276386929577237615224424143990325402136882011472486975359278733397017388302194522989215918298233850739425359239544116602056355879570196209496902678945406393274644701015707191628118466792412647008584016798466924441113057398325921403042521294759790025441520105661217651715602075509174497027902853264207497030722718469930575294704893953980161867015887613512551666233819953042221099200267507950842821922957529092840112756820618750508826097017433466742297120031332261699080342829696863924518287710861298424009155589981168559840647299670454935433825719382599182047332097287222087580113328600287632939760320419286106469844446874064723787607499854174653844124743905540343514717480802153605216211225175052855553829607546635922648415935760811448549328555999913710578268992707796969446591639970239567119746076261200927720318181136243365427053647570294438864932018604463963761792223190650973303701010162281404991678506005382751868329702859458584409540879906484631013145077929907210155049997031103643926611480016534923148948865724483131137733320651368190984619165412071011759001616587187462574328491633477660293705109251775169269150664530093222085150286825853455574948679242697020040158116756891686345737277962625134983244706030102087674306564583264051930026192555038139193018490813567307967327885152944496743014390159118130830099659835655825372667533313701178677693013747426022761594250818583446862264766755282136297181920198411980767574625747713394567555450303011746924511314840374782599475887870234399060961877773757084738859694186678574224874662007837936012628880826354435671863234452782877386469134520711639096565564291893327122396496929711187266227562283387615527263788442128257294184413900211303227361010349978099133998916247873862072407887493835503280652946045044120184442721381771235732918679959301572028146866640765161821653451346600849262060618525804392177853762181468375465207755438091916383803525940014802492568424483568813017857361925198093314747294850111441241607307363659240732662209427231538295562554303171289864697980145359587019794753978668343960934627676896567560741588990278105144207257413496984065640436749065504967130901883319659993401151469676983128851637028515830850773420949874638988384783070760127951262261787573713863269663573883887478805138453675291781525819836127074998576638076572799281951243337722548256977179819876884146339167716991712871148122672469104304049237889608032196471075300211519858425025640162168407703666696537821716399563348575390667926879554026914098428086985285625079905578573508693208956171883348802854087783101707751632737772380854759520839929381147101078856778321524472279124656846367673667441268990176072108567622088462503236784753237625884256358196177978663703258901569043337531925392664206649386142727510294349524331855998755587014808977889322737456262456967379345741307808630775204829498309280148414994755708803664819016159952804687112724366439160344306983694362734245097808199494885516173316573530307714128832674894165808141490081075853407550825675795744685570201180507741944115239156908044759287135356977981375279055558083348852640637270913121473271889326362241506085048460731035057082349743077996917350961739164788110352891911575495480952915205269079456453330925838598433049843038658629155761527177725323986524652029259806894117949140297406025480908592159256637949883869563758347439407590618014928505595291558220144178621571776325916404495391447698294354220785805390972649082845740649789685097107958681405811801530026179335906422583334756150021945747535717532728046683498695637477701726939076192150492935246283597014333941504496554719922667031978909603772542591687599475170147136594636144213126748841782856290599280777224986105865696699808431460368747285093616405874084929861515934478098083455509839591037059744935727365423289751772076196523433306628028048119668289063490141620727233425418805233847584821598028858075032481530227008942117244723113592945565006099980783964082117254805163635090656927821599599661616070971103352892662662265735033048156465457835338311421982322991601977490333238767630973958046880695886079701073299523368169065374663485047002659278752344957241317724306825246818587004754155856592936024174140261774651539191687171857284784270636095402273682004243446947912523754015410631729680366249168481675167382204096237315260582450627657711135721653840819537692105610196994431149064126505738638014355207190057076889826870687038086774143974022977400118724013070337479587106549138353179431495069793953466596654938311899965018610000824154911853901811961697376511208987031610987230193512113758355929140771203355553204767681663538287060772885243324575519897521669249876275261314929322704736056608655291474881966186010338437037082365580912469147342610094604604034687393782457756892798275735086060683939792359111048609544130267278169721776191992715852755999186603729773906558158295820650291296092739872680225674816328848014571944891992581192145145422510773761480019147811968129263671366220584570644282089974149532801673578341262341373233923691021932173159622325709242153199464340777984143478113979285042308145212929078946606823677139111585744224019788204284330277005279944014701553567451778731795534667167750093631638714279189170559006766847947440420238131672884256109111379243294776895441907743591949450469363052726160504551851490051803898578942827557309697916660022714426374235552752892341844185596521548558120821783707232881714616868309670691179446449525909567096710138290815537411772176787717539599996877861983390337870327674854670839865566810797914487971356419190401527416058855787199241675198114575342827160548966176735732795303878642226387974345147797052629194740999984641570535712319086982279215974415301739601284451901325096758128265049850245814053007892129196069642676006359941424248507839334485198469121242007620022719532370753572239039254708288808876541091694306289361590696045035463326342907373422087561487239259868046036461943624814043753377570882929584213683393024401747441896448156166446925564976802824125027465464501347327792415095994054635970881185994369177427857817219298781761086212642501730418882651583445368018645497083403091055117980250210842812850824800411509906833048004204351173954679686330031299195364782788454493798412474689120064785078139804293717115585617824973705437268748299503527932433046110061408438405277833719291618309772295461242120125528669688757909158164062143714732350959625023512219727868096566443906778786431983520041477263571234528114576758564072671246247449060092991785276990778247747935630015787589545322885641388480390622300102854094858546252098186384930970603790621478472201509814157751586190604854068590292868818857729851064401347500913182007821346399724400146004816051780319870253501235908557675040400666547685061165907009018571459881055062285033842113049005642409663119916682740104114596225039251703174454121424427154571198245232426341294196677857628148013138027739573875077047079645173301358879170344221307440653009214214225169314911397833360064467002525491724732017027571835863992880427218262440003705045824762033603629217172380612797054866109569942142165398121699867056714939414878220208501186022519065351737596383277661280628422441904860398484493042285127652186187214622387537297730562725115766773205097164574589807410348542876660363803904834200472614066070939494945854894253332901098956127407661506039967631540739999499915014350338994138258279449466452190663690575093939096397889440285916257444005311905463730614162000265238652435386232776973514851282833041286832655073804620370852499352269415350233662145578291261985964653180862476222982193389697172202075490383739512140005760297032653475046758537069246799370230708677077913599819994949139615518582246605959032910145049483417520412591761978426956423144483848024624024566464521268733007233500378214372747164538297863413912687195415462660184423566311234434562511753581586399829458986244503172334963405126154990294708713281870236136602637586864825059109899192447736974534398281238153008429899210278609665175270607710276557232368537142963143445881176787113987087193923970872595544973114821303034078003494411519357630263301504986597649674783521154894557955377049836533954284134192509787099954119907400865850864879901342075007397537141742806918689546690336769073734105775371485773113730110707391342345245066379476393734575301850431733559273989676133133662373040495389902560101634502914598707396440109118215120780580002813643186363770185672197890765245761893148971165273672833560845598389463419413457117031295919950998647663690308713007720888823551077975286110425591832893004667912542488643843579769021377555056066321912418904146273712251445638939201311369047626747219638484819353173061136033652422079980191991629240738209410743533394367211821458348600444134275433620549804949410580008686715811310519840863373217475963070475724657211437753284762707536499045505327405403856197517578910494858847751116182492343799447471816219711466953658771402046416336156370401855705625452105793070484012288454840329263548713067727987671565115766858986168928633397339236285970069893762596654924372691975683696204374614228965639877473398903980353261011102797380074355044045980199127553184454707793655333925475972484298065663150255066139273191283279632264423465199412898159731744928404750213222269170069286424500650512314078519122812053917558774562594640252753300548480845909420098733265329631323178312059298615134324171865185016567946354453552096782604112164614472284361102971551438738846969684025321754772562988213938883286327047853157204007162048767473819418999187311560238473000099227625956080835078350545196493408803559196059793060776550828789725463979008810391330398935204181547373898749712526026185417281206962497400171537792330284952704106414415898614037166802061997488154610099579129313934169170779010033051898342445848936908697592076662855863991976114662640869613133013155257195121800499596958543021673632903233324252581869423809771323954550874770769977070616213309001606730188429797945622970473875433744177293018128870126374953294741353866351974905240393095874044029586816417652875162486901110360864214403818089091898894527589181728746733869248711418943795776154145575598105829766541895211718101604460696690536702590881380813914813771684321304731506210010879416407926686152722502438962798005122812411090339314655404415939751381608358861118201175684934784292992094290505731310812583855017142279556064913847548959510388871010654885415993658888029314005961137835215590281750060250221134736875441300409889413400116023874081652216129214343268080291617830125262016450163906858360989385109454499228613630046097286257930316677594214470735111554874259395362165857098997052251883582604170601565590665667365454544633429808671406458354740109367747810589565904578206941864481037976547410008224589868180817649239008539888318753028284128915691527827215617931407892775084236800927801265785661678370356115453122709456377202376868579319152842375090316451327761379323066541778339797554205007300789279487168402235521716346698028427685474949558003882686636119970817491011969323132637204041534206134075397919571485326603857786662145486372654710407458773949426354236754800000811103546761165250560490961170526360918036669537183590804618715396375896115692996389112335367128625055651392775235143247237996682960954695805158842737517337545425629886249140682723300379162310918341321319101101492333032640199519478711875037516654351702954460092716403053018901188629818854725198567120502380805409931169889522850245603468748401660519995651886124546027304134873220921869316831018754086146480657324882390091882273950211430292650410593842145468391166277372403183793342798134978439634246063690036669966337497680647198422695160746067815972970322896984623203609466102724387458755323777204959848087603774170565059333507818380178969315643939683341634509373462992561063943584364943184381052096003596771619322808442760804984653408139296056036680887739711671392286469941734955355246136082719606968705733834970652147519973530908218981475508413005527102629476252482459411746466927154102195409699824727389926611504786059785399037432163909695705956513805096826838538553734122895724447616767741209971401541685721916084082186745734318099485912801621307954644940758698951291407734551032235425326800535084344397395978529464725001395140024434071163392924990991419530034842439357884548965433659915111886526778911773342132535916785293941878280801711195409922675271032122811261298786612520822720385003038263255808345183923996564404472477126367419753080708676793804625513753318977176608312853251293062801161601397710510496588984477243745615912692621577670525171512453495027321458144519616088657058117181334408446792747705791975908333146648641885427140277413309831767954548314977576116097201226985874030662596513307432781042316276011490228764626355027730979370056096195440769045423502105663123966682131899572049012409755671532496879227831433895216463589986831123257668957545514116656240780029880036839532575466284235088288329912737437416073567445019374676820383191063118597363750488049644393768993548886899547674243957154583129940899670080252479867445252218155443704465717963742179485869759442163043289512721237626731145583156151710238243602048437997774169435610560969936405311920840064732843000020451627427329668259345181245739460692017337319564992159777601422164180463612817076473881621444956253611991864162199951605978676959596232438136141022133891254638215656218175066977176802136022929305777699046024561138136663168567169263052795196061203475922573830402879732320648554034238373357789847562093278950201895577072690935554453943331501342687332699053532117365557767709420457442535381395041939561616890747794055593277883531014256816618180778561952476911910924891981762557728766919691554690575602184138202959528185028081610742267768490850819990010712804790803307023944252750097760105881557676774323949130855583472031164855070685525878908825490425904659100487300174999139043308254835479423362994748613968640481803432322283404128701681507646878694743877462657494574614915045803136129001649192890402648084905725387190303998891293490003975097054913841422161026077542186397132811497784707481507983770116208969138921746390131964200393967356727841451335585088700186894214718416890459864067121807017478961899740473246795149669889612623097891412794329961891202149211263366691498906021428229989140796102063130166019943303549736640818529844635488747963976247386083845279685819198361421352445556615962475542174737309011821932310964986823913335012636701686720434149703618506615508198456394591257435662009571975054947198345329908894438122017285608992810927870253844326140240647267631803773286261266268098176410237663059092144598338842573325988581185358353734305981020362922743245465491499807636230105865620861850298652597358372322188070255395207965207127176498012474992215860703314768622818864613913864701803825411127922986287325404507012297776249041520196031310137414003296050249166292904644776056453687201448595019996937028229291929967404077359670931799731705193377331815557847253599975729616268441927169382797648712987457431454639923568098185218340423450866988153257735385136296110133215015164781718217739449795687779427126048436955292275225899994981877897885549983188760169575031559811605479890380716933992667830825568138711194086536462108477758523665018045638754454948387217039591060320971990787984286762802582565273748369512481126106183036053474182568625997867889581189435633091317780191692675851012975368560228528112238281844661275352526884976439878699437077118840406117620621591562503780276227004185365176540095737391666964875911400382500493777671299986579858160121637910256532272456431605087091188315160725523403003968413482849001403116522241041766045839564372023710568760315567507317896334487594256506070383157823112732900104541394880426429616451894822103015624111255973695198696917853817279566649606584759380741406772116193492046910843315584151503060309995281217596363897812712065766256185647932200404718653808184372700390955935258507383463209218875939565538761616983367594873482387851368573576773309863975588352522050583191693142750759163949219476377260465170784316964599689679949561081509713700209946959636388260708898083631440054195190380456527142056929399318455969965658389314419425622514335570811567696395816602506333485905992861546827413109133934273488142246422897013227534612801874109123120817731265467749784179883212601639002048119365498754599943574565966644411140516105560151708130012915755047160603191206374913426109736095312273168867329820064026125212459553553774328616008290396367669960367030872838120793598773565285635223954869243473725952851253605897612108653712903921148550413300110690202750685323473441543034994785077581056227150186222989011273078542858470749454712705925741757682234432725562863882415993858911155435114739122851782223047149036424744156503463793721803493896671697715637742528821694882285437074367482846068171328568161268266130963546660335988478930378532497642032928362052255115204412149074323632063552706607679267706248460098036220413390342246449757633654935381376017936764598517814782314920596734042771309857651351044131061720981158508397876496172430485290503922159830635503695772442002510981847802258304026353414331153992889401945067700169777851916690893693088098971577457421043022768518612908939120761325630122418792900764040823816940586407839889381824279762060615429143849745928860075793947910757041988483573086089082574347534563606597351803769676002963704867791360614188996240456548707438373164852589473704986656977876204653128102360237752516978560440293200444506641984342316932319977759563555622752322764598628610927822766475061602731872064618784197699652760113798217598134544020796892336367858379233995112208167661213213624287961013240916677790021807253298651637107627000812886370822122025064521193516742242704837192777230154223249573242768369503610355874339047317739913748869780062368662756624502585034061254238081845525180275948433835331151852338113601375180678314033860682615609775889872748064844897463083770133194726598880625266159990805859820723348376324261064899318592568113366087557798794098784424032560253553773943548382010695383144101331923773762888765950303239714527874659640363584202362093608811918017365758700603010258265751188501957952499431132747626053478771397165507999037271984809114631508237682145462135138303173976137532460337165352790957625867164155274458759402670228153114010973868357211799091112700923483656828486073769175732469586686846740591800434374693016371496019394969184521078842962856993030145267293967916750493695624755944318991404559588113410699295353436282661913746389173215919609342138699024312760703328190779043513998743620185963496879140032708112171914999862788715946792954229616868084387440550400545312237929038345886752918179661726925364887183687948972142001838419555514543866946033649647789949895324716426109058564563925278133485863068654106284739879133436496649100157336771218981877065909400622735691486671091452898025778881752326542758813554883693229836549677928933343047350734059151577398390694928932286884524443221052205551413476549695168955488447174799543966131832276451048271925733250777266341521794559594137925158083720418557737469279493559745033050106536069067613788772346983191418681883359320048100130725057246622657165848491817539730554378487770704197876044283718532425922927042827884075060953080365463459845649583294371118450252123725634615338621390048521998027122240606314038524018306664720436990461925020859982574790752937865607510966379048426555973451058936508025117472550959577438203613275017139333158103832585514882884958641356410792630096742049046137484608488574386595767199224508701412624627573999754058403651988455151687833652290047827850367349309196248903206617393095682595398911000271365499781848086811649228143487218658084305273601238428554756495748613292873371175841973361033393473741459707272158804035634938421826062228869138325833266770741182564189770515059655658103113227853275345257871419330495818666469078170540743202817414281769930506231587729464891181990725492919671630836225011864178632973516572501826025565702775768550133572385899102157626076876084724582996757976184788766774948904846093535541156607643851736549213353178258458251517939001982071641889673861542085535540900551142964722422707233626439334709131979351873262925576027703141720196629389618603273003528419757981486141226094379492940297778919038155916109430640109234839013118027355531299283118373060739582360479379640203447446604235703231492825549781605697239212175829067599248134230783465646129630617839498265217980665200905593766427990153285530160902974949483218223585549186929788707346763542868164183678836263268295002899926926116234942461720965001072904001665187272547564396403377029144753067781896457450065792198386281660692401761531486789713209798533671435885025322302320975232396118169046297412611938764545884734455802843312717604007383403929577342584346318208068122888058411361556501368160031205388039572485227126567326315316712456940867384067169996427906670880383640884772083929161674224171528047734363747501590901322098712324849390797825675722539927081290532351382333175266580189582504579826145485727446536255937738571082713771199736596527858141044160822655814355644454940129670018857149249224193072607371992140788261145088915916564803712854068579416779138014660128397341464497185977017140544105527058281011074290735695182991725494980995424895654871331758768445321010563218621106416592479348266131898175549166460350158765716871311468271292619883165580067029133304971514894538465101718765594460219638477111991985424717720029572831949219712519795625224834777791594100522984284451013245053502140884314049520702791979609563660713199748001894870098683600842882558785211118323847584563608058574525206254459692655973684772866703748973140299453049769777199265436038194727341426648998944629742205379148429538228409652067705623401810836980345638427395852061571757403715951675657746598935428634496530273098511406473291791022140596411745053317931357824492868113100108916155117346875372140371600753255235616586728193021286288515308085391607825379154290897568403709295912498295707365503556726706800570554149391400550316109804841170169770248288482052359851723982408769407018760135394789210879757408208503611376874666215903673391266757883541764093130243886396800919634547008445800859833488606806929609499308053223797924808843263156498395539559937044810617555291610620756513794961752541067697831057017966886531156629730474383345972576099518821436065466514227561622600583108276621335383651882287734527254751896059197086682816406456385426788834169372026500341941965896896157645169996373968965868396328757165028619235157854461539724772192734552515769236685735801638347314931357690523528348254846408782329212461329939889340855183907223954560434938486630519228775379674984200240173077125730879764948355865769299822749312299653912504097902975704303810104724698102337309339506901670882989389128609713941150795826819070996632223587981968533148689721423320071255654194168759447883068241439993599347879583056043668800446262812446329676300896402419610407855207855114776534953045002686354154040537996339706754382548909255046786731081470576502412673601769020301730384434376448086654869197602983727275413958963673387684985513637229166829908929820491887760037150555261106810993357630889090439297203623143320516163560146845644438906533060153100217490201232147046782746005510533999951284315769886831684213602787916215539062959835551638522412936008351696124505943438764765773788668916017607070312387010046430321214629924558677171977607766053675147160714202008310854460245933014557924274009301603773562580886528502762639107092825581712462552807035857530623992870192411405929465645192454867033220035068561110939444733866962918684404573414111159843736214700519064394239857654888234694998786616729219416815687950139913241138666888622301780573380961032808803159100181429663520996535382239416429582792475325710572990085941825739670407591796780843155386805556092425241740793861249152086197628240967950260271278323179472201479914001265033963717211001973387666409601428391734764080824746100155295677199253441753021319210763322389780565110395533763053415673593468103409293641748807894732711126944009188273787829880258528136798612752950460716466904411668285209152123759587966893603562998885364128968131659254645271565554266688355331283999027342939686461537586523882968126767688259067010954120172494152513056443329118866752926749018385277286289185466953405714528983140378890445482551555648609154747917532062153972950817903144828935870637536917501743987475595134253152542881781432583110610761335577938258027522902703648402783248195895354364170959312609351067547431342524255340496171189294004305690809793237704662125145967669389380297780358432076046216755635727019956346218934723276054871951903248670370796473488224384395134871779747891046725128664999169462208608334410755531815774991105844628532264024111612712464825664677395109712159680486468965394381708366110159729618606761462169680377826219412631751878807931627839033092676225354965419717073425020348721762994781785832006414152912002073979329797507964956171697652907854147967277719024916585014322597024835156522504488791651498228632352597359052253908402908373621864773203845627986837009608071931099625626671844982861363795405848730724503271201808255414778808705620246804148725578127840172415717865605574170604521293718617298095225491910508181360977640378125955564114051704841471585944309862915459977652259247767728454138182783463494811258990765639261995131767860950525046581634229479309214172737960374278044512150218902114178207083539105970943452218471385401174283633018063222174232935382272781464158704866934514087970112813851081053219590092701729834324072547639176337411366751397601470011930276275662815202568114142038858575978414783413947469834931913824635781846511600305996390802240297747523333339233393761057020217040779925020172140895468628543567696206071053401149483261698303167646178486919188400750689626502196515326963097627046651777109455334663789855894726862085092724875948180354492999200301465723768145765019150771103865353873535121917478736774575930086084570801549980561061129257982814742330537493409193152182093156022979366873592309879724255733521889721130274117671127764235679572540062050240396207340864841282627684840564764707892297023165168631022952157914981229806653790887314224346134462124041544683037118867967302209073620469350407244332796334616649110048373626824788858923568091579151988509595444606404640916815218452304986427829342526828931417656129398249530224911402139146388432498424020699066534457394564117863137482660611041152687803743114103309982463525345885104873198209633776027282032093254562139974253970804186311724945176994442274728811492743739446463086402630795184021427817419340912099399799437512974009265465324134149190672380393777817031842390995292595947018213269808330567595800306651275839882296152748585138178719483721944662480211117330176840951788336560521113088328490339067097828405367727600670288192723205247563148334981992554763174061921054630056178909430695307976053281049642593362915790308684045052659647983744134340459106002730897206522334260392425617256212134148074309237184183593108035695786254585755568600340364386672906780201686228135092758645482175601419693335946660205969317036570451192596067694625686511810668114679747806531041739946465239279766858696315759589993219147833234531309020996053991865227455582423344612349588283863188048233059803851086328952873890493076225683150400132027338431112305245511045100039064732771895940240702292226829271914987165234390224450141219936148079074964683981195082752992877023330040202438946200114588898844451133664553271370246543428603241905729762644008661466021166096411738057319037558723779551888489796494269852945555827945348549839382568055646881244678543457874836483774041710306056856612274551116886533653813615844309075089445400885920146515363296930884256631091227373974632268290987578889577967630101182945931017921971920437133590085513963166833308011451484120761177492733666301778544816309801854298590612157564592970805404965286295230961612438587085715833835116993490578623091777667663388813683237386041689058791726947158786418754891004453372593826548362704942578646920694134438713071096201405969476760974367971763347818994525276533459286761988816819905519445901042579873759316968850729459125668460951489735482539613826397735606094895686610950893466916845982028627118744324521447629618131560237617730005826250979330996136250775000516454989597496156354759076978914743346030548017345767028989665513169045868593055119633546584242227920817958668502688845141929870312788576895231875148678616084576874988617277291848021236812314881266409505375789769317398722509505481790318611600587685711057777336295791840174417167421598922157267732735753193839269610966020580550308885330941476329450865688581475572374719063555544382648372086211472007834384868195358854201458309356836606454305663261096466910647939922932059057771456148117082356465300823776394258398148739181226724135300043431669514802665773274672307949063328692212814972333333459416843407903554750438109054554707104632250206373147107591929751895610215624837990755441039649021055897116661805031818105850873616153643143796313583483189357837191678251186748407466147750692272668651066607260401008123515498420228155694191285502260427132275318448506214621865389063073833873904498167768178708260899431188191074067400500002984155221462389971342022039596881098427335465528863498574829571643900259619410127708847170732756251786056900960361983888903183691014729368787699720021210072832573655046355749279572801714809855661155101938692443954929356071099798641437564928252206531144228382263971909825341714623451382498694009243180351913875546264967645690815138469992950114480079469367057131223834453585845008074146675506223647359628594980293928840057447601189873507194992247077831110677753895335393948529463928547769990673631518766458289349364157358868633232101027156950045424428833873136207100827719455861936316891004403189245441102395945466764652224281512936037040835689630982280639167497983797678672678024165472607652271284892956699858446218114758339307087749473017729881669241146140874292193389584403712538844570963105706507053946588782967926914556011825923177957106417798460288274267021249961761904601378378029245933894640704073245440497313177758364845590581989183644325612269165541468023441874506154609760486033826853279711230785856228314490046936510630174070283133477703978519463714690713938185571407401916423515121372176076549751225938520812688885533943023369256022984565643356109867613869276957236161752231928755577641518096511127087454637714867902942260526024958823166146889946501840761812923595709812107177614984703596279434902013115245536260674187598577961447008994869450190146671185828020605750539283792182980507832740486796299019196904110558508328486612634134858749202659496752398686402016519572145880579235158489853071809752224446627715416169966490044328411167302429446746255813829109605577229364409697378131528972120945031230581206395520514511559733295026874610255160011085818993073530967850483460581918744110162235780856710604914557673514417198283466706040115352140149215299096394425305435412042326919133840717145424010029839764770271415978349542022647420510913071841464004077864635939974908238134592535869772541754514604297748485866230772814137858324385767508043761828115119767665367704790014015212640235641071420007018357057613143081276698600278766773023860516758538034141797061407079260764533337091858343842955358307908938136402374975054116967136431132793501786047842384339378761819699396958698277133507171267990030637227160178541727227584714144864439096230348274128712518289619905284926795271601422732688055916304346966127202658219357790310579104573101654725422175018831224853346887690596418462247832091497702543091762357181803255696272140148212678930791114548696593487206823669544591106725076387125437905650109934607107729586942664772073217654315489222217759236176126369668401034257459619158092628818081432396451603511781601151273743217953811929180126507923260570885272135787273563312101952190836102880800930271396241212843465163782735678937356993463342077803504645549774809302003300739029081446244135165238282618513483904083415526708214030638686131732236916203825415085563597968650798238144510505506503144582929731632771429275479643996471560850330536520328054613157830657553880341429534749830246749632494503894625461021365296725484057206721681438831177959572670923581930957720124508007565612316700327997091154011172291004332923682252296978964629384649545698872689726479066536651041942818134849075802786749484479262040608731692898224059745081440394623083148823157998949995284751612828408891941561967238588351405302176342455223727549197787114424272746465729057608711127268969703787520039954675233510589425064623621601719430183464197751929701099199803147243076519051107002586051676482676623196426155649565732827291757950067401261644139833878983044901264314318695342754293861501393979087344304985030471643733718865113582788318229467234598883960656809720888206737230290315301049914449419117942749404359639029311740149604770510469647548748628983090287272477984862691378636969171362053164674959042434413296879935025675586148501624834908889264286262351645335607173423841269772625176341034349884688367439563204673281880946510582537517379695557316769279735738388734347948797176835976751328986143603040615775171363069520450857037877648702408798167973014632852237492116243503920814846220633108670810343569454925433394699902141290531663097577349312416841897398049297416725919889009511822489231116912694594847950812703785574803480096536953084321406866652434960381349816296679844238636635728929591145063701091639392631635480980268641391099107158672721079839562148782851690045382117076817412454583852792234238484445469075109738388127278720921515795783912337853563950769113747011292536885918809818300857560147612627384577363145022949188776458407507250210528281591097040357809093833293806703938267271084724612006953261076896458973670271378728401837969298176671088510664041304727701949471004414071849246596199996944219417660083939132669533566543160248072008390867447696911042981085667892790972817332239054357126886920260908173571506640153830623722513743517137239501699098784379793608340515428622134176173234323033475040426405460650000650549477783458582507805636484878740482945385883893090931959066129456604070759886503598753684132757270356396812315752333204218535653463166210438408147031228196868439772838873635091403251710298949383436400825467656878789517416163972582558378841282841878450892244401203113233759070519529355469957045856831371869365858111915726142097684735253105859256587495505507265823206880626908608087366228671281189098638610728732697287503610794730061636749955195648185122861490463966150096970511915320208247039573536563318231139417165049538572436658756142600581841079000968632740054962792129875602650608734647916275266489139016788318576071775852518952541192162918484080692443265294139644659564680888242371397212872503402431307101175864420305878950122346773040942171783442687382161240664327801532678647840876870076855053043880275704560210212143657009453669493141429057354939874557041461218789594982240081403516400433672694712200948593163684243383524744853887137381886117009932317614475336063248374499854687870362713352525371449749864140935063933644689159179093200029956693184034795968435167540317161188254789109420490553518563206799730738744013402936500008479269112277314398750016593231968537899109652620926119780247373027693765496832373096434726085714372656287335978734503636863920399241637678184815867834194214558371835129784148569943443576903912517518883039022900431315191205050695574521186732159956625986530700944972497728499701856330776830192449907876597303410109605687868162897045948985861597579458382990694293196677186128106854478378214690057038954143107471607785609674320857167648525884041958799545546507993163365631890641049046697779395862391527221744798172909599621811336584394734486874524590617071589147862159311011669622605260443192911064146804327160094528645358994923591861521818436462847205020859200243725779574113266591800798918188643320028300666491830016320280812008537738050176654975866404977279800841093910130191966431028818522908449925883301090331248264921131396131737922752958721727777825460239255278185955202195640720108383880687192375289000776484625050740313197717934133280383954030228933112313868570694578384414192169550676445517597765332187803685371840498544920603559484436624070242632415018865820679380734450728569553431685623129404437918637618890517157318081453517330329914686832637457085725190754214422497678710890221894112161163823300323430622177017240567861986093271481779117600274943123644111124675331520520041677808079610756715647092523149143040514658797158322832298266526772895373542449224568932518423745501296411650927799323345491216742974865052477137494590551748242820921314412043910980018783029378719549320361481790565431405558007941451029618943962285654454475714932353123543124919724030458102320896950754632743747499980624750123661141941789068748080675572199966403805042182483046973380291990579834745827349764089091887995517413920971642549826183314402860340023027925234163241041366538450678938928429229683396428651906958493620529574670038344457663432403230379698170669124208954795842122379405480834245973299066118582545054432312776995559836777823679883314385728106534600593112648088375092223495946099992822128002925396325199190852836940737994752884341090112912380254194592229806079724579328601957783531577747288474775712840116270893361008074008794513901356351370943054192515295840533417051616858194317552778116776587916956890818259061675355770193619790966903662356775879791661149344677932319670143811685079075822186870230807516612299427160462817543551875152782731216590803809460121111413275065812122276233797328111497189165384652584606222317007714132559065326901726014025077717612146483152203407540435370179865425478786145567006717935763230625326026034289098478525739852069333731352083290883402733067006965618459438783541124890881317324880078399041459062695923291976817285317139141388751070469670726686886948015757426259174177408988070995317215840709929763163314307961172144492365946624319946820434978755634202056894780615888447789205933455413224843771416953093273828660798640499983458008262293813246897544052229070218749970700862687206066612024560890402259616899679711935885987145900596049340694619765405334006539183683399277031280481245552472511765296537610363754565010087317167856242273239882564272630955351401437486475224380260551493108825119394667842436989606846550347718532895955995668172683220288200899189809203130612640310702276444720115986711444875151048370622847400957580170003350301337249657134761302727099376931458052762247101008752130287353217307634541262324850132757184529699075705184337904163416666915402891330869440016831637447528861190610380010226298593481280185897956455749567584085262015671969875010689500831737723827518584448156450167962874398332269690930526601825868446779205534376290200550174748747192210713528447788679251894770655326736040186285832725009304692716058979699564840426073036507011139224260625999619074916996061281077238834218079140542726269188686860778734693359050954738333661853487320458481008503752451730282021890347699017516932668642316100703024436830873288884061138158706883322248868215457073955386463202509614373031021080299051259332311951802998864263316918541096276554070827743513031043299434298534530177546365789789760813216616111561569120604651024650297627672374109907793829437373734456578072266464372939176997849511520008455984389911761791414411263545841212155282755286224987000530005897360122006294745054164398419910554911508738835994544666292680197388317460796923818854452575303586123997279091607360189126268097436118636776394854073288943721773118459422999953163135952007947934687590614957591954401497992299164679789841017580415676843169482872000304143257502921219765869621996858434326588213797992927896091007894175200407808916414095835399678982794718451503385608253172194783040216275584382631544144125704933994667898518284407858001505654031405949641593782073028461690788006469049451606628406859757559632901009600472508618258003214628758095153669059332346037678639760185626476625999490441892910479734530864364690537908857718938207741605750527241197795626529477211089443394741433128682649322250541055741757920296260294934181998311347668373804651292033082343547717219458212493422119128000756496868328534459227475530290730080956541326079824137893524391980388368136744442040269690614372301451945554487418000422154802724386880691853890498456329091059391237292759072096255206365896005945843799010930759809130235084465667495336875540260776531183076291498516902207799328118668556244394581044093258645725605565308935943730579283397326453630278927141505851730045283232560783326221437090479939626227372859607811360822385883144241179596828472091804885489795150721478843441785640485992777566413797271915216633367182452739369487174555465411187422986047692216292760490580891972903481005866370730910199070463846651889171367652113394068688037314010272455311948377854688164652725840236934647554282079586729693066105694055427628761802393645863088526663778619574321180799531996650412109289703181698990489433245331972258470817251317954011327048163382082012431902476083189871132464513272208644565127795160031364836951103951584421187462837669656677659117727433953584132695625906718655353006432124108610599847185655392674625998263916998353002260847442901594892191512164775620445318435766556359308619607448636823594886817762912961715257117051167138138009787951643243952515358811924180884419079997053757984776710736830201899476167129944620091308908893975873906717812892457095273074875129188344907192713485371737867091620015949878844805583786994109973530268525863047324905830552617345102491453122472458471159187504627381926233705530433316125195748367948096451985388262077087295807152349648881479612406938378907870059578123693047681504413063628602019292203777078381192133101876689900931731596801785343214275035973463127525043872243453693132607623313992912354617586620511291679504514833894780944548750933014659875866235623083828528624449935199266693315767085877831685165417578381274186504832427446254207793971297966922482801153665238859939488069669981596085062968570713590613318845738650362009956215362016185927093104772169754597026078187397652929291285780726722270480611778005303315133116656016175354484708948285868842159722633067971823237920124818926632663006674817846870273447010119738691897104318940655557142397262391887682922076381047539576258404126031346120075395622305880221670874353752053278416115226372478338788939446562697344495346517482508421431191277026206295129820360041738097091978014439085730889522135142026212096015218992421735370997102301063332878644917123502131850842327852407027642749888838800570623497074062062661715966500623798773187735833545922247456492446305851207947311809749720443598273514015091008858740954093800402122403527381635047609460320711792426450491662766294816129344354168470853475340701106277884737252531256684444017035249287194491359664294372462371168775344342698519510434671211553613543827620854274126594943440070758592539867695837231932308084122337931928146428833269498138303371498430914272500653586956076553163594350962769189537604671149243987185316492825813071329798057704326619885279008158401370470233045529170297258807655453330794115104558183401807709905968602568566949396542115124767881715961093964023171308822394141252175319065429345304901877772747242152914003504681665426660937236993926376010851610038031729183590416404942123561228909091793926727452985275459297086838165761349332169800906911355142807540845331538401808426215477542940829188829128494186201040227826587397320725249253031744805537866925834441306152058132855926442971977596424649776469598381002894913280312660064868352305619290274291828636489218182746042856871120477059401953523940037501715150528386742106770309003327853688980123271595250332083947978500774833248423922213012331336753683139282499732432974914197769296553079877147677884139751622022894781095964602989194869678505396468846172847770826461427993492591434588801344600934891109900007405479624957049669417808333841593222337162589025762809930085325600077577621699744196287985059032585744163371262980688575816023757608504484766910381409034157284484872113611699272183414707319074121918055663322277213390371093568438376321464354549153774966308840738052492646746778856925539460239093411279563588214632046539238541910345737765623080234167799313843361267285335567144126326528559631435488637993037940597985850703065112921716211961688529506987780555166122785506445091101303279383717805483127330237437042130195603631427835048444492047769263790497008700373986608469396137972639784241520208415895096428096033182806852951825661147405757236010019693629504459706026615670160790089461141092189737671538481362256106810791517204191649691520033674276189374063860305162024709787492966108124216732023060809457499587918687957671975686976358170302709664763018197803792710133738083958214196843319681464899840883752322250853397835609876337161608327532351849903640464961554993993433729315435244970540007122163465329713513314240576853679904837290010768196705123606542861298164756270625071280689245256176548301843563797682983678112944492687911300975154450150413707811080416940465367447865326041164555908034380204585079648462328286692024604746552971063620301039069326279669308068108645596505901991734844282943318734324673560572439161207848232959524998177643707615481389247380163106503504649751336496068042413580326650781352771306850438427487264318734988396020140049519237437753267608352930720196594385291102784098271569735184425337013181333745011607593759525408810391754270316169094569783074693823396762712197555244454567131456236676930492619230399146712959928491469771754558794974915341809370068337226571367941205481052543787022260434455906710659690794271337370130358009574565955974443233197974757553189808727694915289015880158903928479244228785394317257046443039829151157288127028228970083810262817387635307029587295076152154755925534746126083360143465576305132478910141554291108312019229292402206454492028006335861263969668198538550869070913291088063494925466043682676793278342605189849047721349265663646987420854016988065056091730842209882659458955588320109313923793676352907423905321923799420044113982420772760022155342364293611478982712200336374416887100878032237194729844522635362130609380830111551653791435237485161545376477188587568759398510686838415570190903312086411312316908467927074724179223250009017312323446071177334700882276933311055395707875139223724510497735533108071010782538035984775299652544659858618521716469660666271535773064312049692903965694167344157269665561211540879849397663647627701645721756702472701582824348851337484371489236273086117676117727762102477836606186722230028397126121863429042041205741886482252843259485785074888767742194550970164723862571671103620169922114494898521121535062763364106434865858471047244736431786769985189280361897539313184946930892761129287461261141128402223183390086000729432947034994199133451335134752277857507606854878806916928778024298683224035786510001238773970708931230330601394356263486981172306104656254892028240471681796380748875584170250039253338965942202709966212952859456237173073199371491349717188097336776184893864831827217163073299952970001795842863988514975406523586304329240167477430773933141828373159471294527853520793187355568117727773164846914591879500910749391744651639568045004136146098102280836739315279044546030015045073448403941254328226966341799851512904221523645581207825203758004292669433487257016644249756249761735304077179587112647933820706863153891531238911708554167048136689364099319042325960076910347101202249876894268367456719862706249614230852066314010459138512477634154936726531424724146267941020947689789014485759660359738944490487103730292583945094945773469500103411958210325133226607518639999958407508271560095644832059456520061672871029507319783003680815959513297863544216800136362655330851775708445057846096077150997832238200426683838047630086323331324640019448260710398098879803878345338199563947973163895489901883058172578216630098357845066242220351284640468475990056240974318981093552731729547284437388586575201013348729228724174096647880007358276281107486157779242328866359168492350395372894594549215778820430825373096996035011583345928770725690348139647873511592120208405750563171416427094792300333322895664045649741441656581599052815144300892144447769394833739043271726011216684346463610981350421433164014348544840368043754104474215421186363430028633299421717697062447010757415592537670170781774145011376752064668140567521387272407882379187762169139649722484701647160333198870393008852016339311406307539088893089969967676929295278382850687271502890807505580318231632761278907774490788072926238422249195870285532911024460816480765668696111988122271604485844693402711137152330934944305390313588146149570627379486865635714307229944203657137777183886144058875691231374781966157359573309655976637528893001292057072648287716526419511747245397944952885936525270539763082297889855577640113188291904083722994442201091854747805438200586100061184448115130609452567874292874023828460587898320692467638217012814214048111893455561779411601470175352635109748729255731063493819559527316183756615829100772780592519065634300254266321498034732473493443718052139618317389685540262909445935659186192855436076672816958534318428285597016153466968195126728892537031944766373849599056474126603096139916560978910237169224521311710473647336676382423739800273495269719351917086733027522264007969949787069821212609650310919477688610706968389882440003099720780490532180074454492926097442722000995419574689422927301219010528117987033669508358233387123404600767069473006726886738270456770850796971906114531933873050651039701732670843549742004098427742640061304358512588722517306376121943509977573429043043239729204648367740290754627213798707009272741274637558812108599204376794273030539366157676182994428132178248252931959991156543153788299850319454805264721369255535704584338129701383007548977144357328852349176174737317943901966624412517347560078224070943961571686166335622943137918896156935157676775206849986627172075444888309041417864195829842246471661869455949884524927901488873166546896370955935425279750475874965323674373521964946691585233434051902149597041056843844967747979830312679277758448214769334911133526726974877153359877236813394331027592539704100335144043416845003445755476737161965707055448213559380359902279471866607223677440596091012326030481287282307449010473857654652194969945553006179568988268623030970094598073427517569631653567587577756678214985683697940725941529385810258616802888713627558421998552978863790263081673225148410686280490259490090114151545673873360212775328049200305147225629367512004339026670420682142678556945796089266305466911810047792138731671122131442967986380688275387183513155047551279243522518884035577098030215272074011229289635386233614488635890978031946813308024256334634199932643310354505135520467733365215575375275940581040074623847032930299221177784500559135784445250677933917167282941088607680084807724089011601011454587171552580542629089619747176707460791810333285369128856947082022419917842349437428096472613877303295320265280807898012981479504946099425958417708204195162404163681655633027566898703707585994314195504555225684490531394738183244120369563870360582770602410667849195665759946283680621327159219319654104480768986335875246800933637206389393209063087041919428482454370006365028641467316279626632376679152807304521731520895776320791957238070090980273690447300212885233204277821362766769232082167965431073526955249631061931416737604151572593480307149666733881516254101274926216628017692722914046050399613304272184846315188067942921489334591528351696574849140241151962559341136257049589741560417073165533431433287738226784537220430668846089119524668411653037309349921799930149820027623668179154695787820173747712038166542603366045214474299824346411565404475389179365918326220031564214823136879834030525881560932338446149191689797067914082849403210061025852322346957644088877751793307347154327640428527089598535830536277267435853056458473959554181019130042188789621068797033515666436527132028665780492108674733422970153688694907298350720280406972454596976248873472165427031168362292521524168657833491638497871683200178923235722324286349831314754940244842687036316785782815585955129512700464944514336232191910841821851190176079109150845679984502000772017542877066738226272223431346731087547260296105402523919072081004908120146902652473892760460627594401486107503331442703922883208414417819247114315820673166423208392454011847480226901334883458997800381986507340560858869792813145567812159390450635407336611061023697018060957821840494354735344509875395975835338112193986151646934740445796906833266939859180169937311049020745651493271662462547151384654091059430735682398916750468982903103845370490733333934936308485804708381245366369410198936715073626935888230159431752722960661522722319443398933136314813451271465029069936233861602818982648333842845497307199361895676539075343793944782466967776363829958470591322784889530555812922775165671219991457759024385311032284893837966728476264862139980480530885264956981099774002342600794532652465236312071646044380871353653091479669210225436517916981319543502055786826432604598318508185358751292349499511936296287475653253853205399688167094657076153074782324079282404766946966592788059714962804922901437089550058735694610875609812929851494685857683464537302055290115951067560527382270200503413814909889155294339251552504237140841837334266054302177149417804113470382426195371800277799909109390653185769185150604222258369920288105739057784299489169210340191594067312055746694567139893064823395177784381004430849422069367791783702335752561897246258058651639443377121787059384431648740532985123791741933160341901913048097069833521665193545253878082090628552382876155909809192397624739208073885990649236379763925173650188338709977689496456769722483001902324614201831916565445118645301781962055077429328932769870890470131986276289808750791403135151761427372358605057931007019862756146770269879983387010214954766403446254165458336319489964149219569060705705283378044087283803441579248278308514122560029921760531545883025472797044119653674110627742400755751495163352061359046757645050334539130202436529242058645007668822796690576919286049676480912425401910361099665535560682183397376504002738729407785656561662268207434696128540505343434328285416476088501732562533830446815293469110581350030691127850862999377531305764669439846234177714830169437607759733714814145794542701482224653487201991353112205149251349607376530914876509122643086766812139621032198035662156076755067981253770491642274677012367629311211453170015662522558025338576838488025384626559244920932439774757632168590033098184071718101905930152298578460260530819970134133858764448096290803626587079653570050068907790251882175695162001693057383120272368935391553363402530826016297445030540646323449375050509138452216070802381048858329828198666305043785627325883029162335185871720843564189991728572239223757445135386602137599624161644664012680476102468193395522020752028949985892152633053469412665395659017713876030297354442773281894458156467875411424908128240578978839935002020463797095235531442719763596925969317030279831802614424694671131608154142576841258744336560761946996834593674439022260743216531304887222048793026173823397212655318454070283429362556823116136170026842289350635618116434296956348254928972866134352688760066459380638489951689173860367326964375919205722007186584473065731184025483342061432738305812425376840229967481765861811732685337160165858327270999366652041418669541987486069671020252545187609082716854959430367233866650826048563446744377810392396397594007986630642845289766950023560605165217629656493836750720564657901340873201518846624039631030805922964122530195069537782139563548351413958124726467313072926101312973300880717313249618974898833908812049160695340363530549674444094214916005297219281735383377085235088919447671078365640208225899554864934179846778185300518886700509802216143418824830724908871095239571179431001517911493525749032022492288672710633397249225663667110797694470048745578248688776839433156713819933087030836911396974255582898414235795395470334129852169022479511415530377929059642326953130961924108076512289645765378686962127837203932503859157995080183412257924427645616409989487986786571747304504229317733435685766552636765481336515270149415422621833714832897299373552112260345621536140491959911363660800365395876040636300866196114371381284684847441704181810957578319156776491514522795684072084851210892173733542288895980234770610767618610947269417087491310388067131295800745807433409601421441291872285307998755771631035298798019126906367333309928257913080373970169743505176856667947968433655896298989531672524798774284555251223053498615886726307641696038267746826626753678990995142643316695349717579916790352188059828311287075226576921437338368232421833859712961750436227343724757205517102899136551716680628816931198434766637067031962737068734107886181773273271496267230856598440699629147770132051674708925246999698927913141422775021126393157999796393255735217739528020978684984503903586990029392464269595627272023437261660876726229030779145630270302125907689897085148304723216777609588597473905039728180842165568360917358611183488910358065294462105042375038825824690861184122396766951921452306063764242561496615900848785547181354164048347268558599278260856265445481425842259397652484095680435114614364250267968832777453401552617827486168814016523177057722173192735755553170437596543981895384592456065668594450479616323011411231591476351280583943712501739158329152253851979683153473587301952424049150921661485259917815436667844529352804106714502826558949129686359932577775407259987098624935346200177137131567372021400386134874665436724064367133225245476515015200252922391757021809493588090603790951648312292139505257917460322734289000503086418242607835046311970875337923035883509148506597788831935162774345146937845286308681361472004566312476249812880268328165794839702854245530272585207036738579054504245013663365240504518042733918134204856174687062537827384797704179650850473762958637861658050115629426834114816542975766613115693767403058741507792600285348418149125958784443189642724514917053440260589191286743887694630995766933700586120140501994288591489521790053934366856124903508340938769225994386524969985709356220821834095674605487929774886667633400465779114435240779921497882339324776254274393704978907610508365041488976763076580340939430272522609462135596384765935527090318901301159090182296595037411793175089145713597145280915514868688113180309804440689240301938689656051531785796383555736095523277798000045923590534717686917940474194752952782816663568883936381353947716883189822812832724273103722231638705160169007183382328439826012684686263777886153465261915202835019329198525988729539282764274405541907727431568418482245265390280168631665073650076211188640479033956654868720197556774893189699310671379701796155508135595630142691964196994538560571271638736664511613250260515476560175867308734976620231749953245980582345760319427602054921605791835343874968352223908398496016045467062519140492375916221891353743826836469470441840261162554759905931469621497966795288577668955726666430506443642163839474122440722377378217447432009951822488363074435929631685828343597887925648778602436903670717558619302322145411232171920813991076877809282825863802651105679833921978368425692211016181357676258778523531981460343352008544168160963388744550134889013260611050882635681851201424129958861548904117344300336283890059208313539135841987595789644390190160509033950901610721885746437022395769449279661380129049300130519265209213968507348762252202052817082695665257625257714456873006701962429780217424212372156467795462382631596098421892784082004071708478400170092494331499654838532599420407991862524087274616878391189663710085702530881235805208321137124646370012987007696422728578424891462892348684759551709907689942962079520435041381404457837139819593036819111279933964222141300793881394266993306146822474623693323132363756005539900270282472422650992579037770520386495915977769366600017550229164333393833607104220150065028434759020288763350032822094962571288872252194051373756874098895121048983732859333471305243162831837090303650125668046364880791193266369843020016481474658324279185070961444604382199972020156370975297127030740041297302674847403192299377430943139240070561257203210728863197840559518835517043620493047028064375327341560956417003840997342612702451951738213730758965059744201572316248914580853695056936062647449484669233634554539061511049699862046556198090928469332293535885074422543177963022795645253931169056976962475042176138239117497696224862109217342464955862978300140607441621025908568247936222702699210876296528700017092114245200578279445993547330351958989685449967290321604317368636422327684097369123148428932306480483885479734698383776272971323896332023311063226201200779695059954402545587728611774596475544201050896997554169612200348243234068023205288796632369103821477599067265876492830306031666957426296984155533509037099017802439237446052108952760997980324669157923831073970507852324189862444930628429692129127597106578446381771456576761032809205629479383488708319733583104001547612771530254911952089201927659808943316999874838087203958786675052266313621971526247555294176116490706398523534680422045592173698951856090149613567556405290353511047882893733621633608279014251545866611838025987746267550415045744245774528320455235659201162227641057428806432451842797282763590094773271805578699766832978628634270063015258460101963282779587096352512666688354486196285903002222391972984254801205206643759074178413201277655299553013024628823899843368188440859232862095332879530088245825292298358686887321601198629861492728370091998217161678072614431850213149979068490402073413439650583295600203127461737993159073750419891549202390906204664737025294096783021667264075038374518712569214116729980983252085785558895989572975715056633107287790957353449064520997583008954949278347277822894825165276405213298941337256849042258139602799144570683266433673608898760228963337127950014606126245723831277483231855042064738191016765538639462353419800065788749780587848489555094838197614714269750622023729004870209877310144500047037149181426971385282371968732652703325229244616366777376691582396332570059914123027181954015622360679446865049662596458675341190428031374546866939279350143960419933134272815074250791624102068049750313292836421189728241590739119293180422755355430040189318147089441168955902269144699199675750067327002342643290539485971578247291512931357762023932815974172637148877787846599042785305684854641577618104277392953394619286445915081516729222749321228119330861788521610300661759090139144340485036345608471681089756972163643550055446018710703578695352926767718553544590040334312993643277367882079184183505601332578207836837422689123240571149381867776903655220398543902730038484099867068418234993618497374951886262840348394477023386228036713838516359402085791234283217707448758548943064222533237449412533598011393139479930891444019166590087430825636698495613860323614991176442015951628668403123306291577540579458911346883444195007324395607530490325565214134317591578872154971245551565861774543492851357634412493727578414992738415530924373440652647554419675439760588172542062570097374409249276222924765608958928717104820309893878166739303652211028097295050615234383195570726557235724807017450352184993228369894234490252726800033982094288079631379179504511340559866819903315941282972860642085908204699015664437965602553414642987931962850916720969172608766460059725770145203119543418143702817928692450484128465620248091948247484165768178411084821789942234006545575039297172475775448742755381607038969297757105392169335970405191951851095979043318607715281395019549395347838149914608210857003388880449327886172654141230144561523200313517627357633347250564880511506266334331251311486814629100344501747092687001725272291717557198546460542548453246384093360756395512478191795646809957455490154887345209893574859528599163345876048165458908194845970266788205300327988827214779575830117630298689636837626187661149027352693972527458500842157008247008365300586768531202497188718315065991931821986205777619988462561279465177053332229492990556758358095646174267041032476965180690926832960412435880917249164267010146948170868398730514499088011000989388218494290407559732305485811117797101711127782152368188238486590165701991907760050709434311896157823272030370924046457302786770509675160205741559303889852707501366785265242085732272499111686878391106245580369506867258809467628985631089095214629234269540667807013279746523511473659133626584774407764139944441571921923103165939115234367830064345163896023776011706034530669516508894764238120561598695860412478189363263690932699396582255864209724325603253585661254373336035492097514425165469059474360375387118712389137497832344710979018044320213530182441689627173068485609135967891393523974505101458303978927688023103990215131535296970473923102700781067847641385329502614587713654911959885709640280171404152573816583006564155029216297903865861466869534959253899667457246238002964717788678085111851305189138467053993376096620918460279744845282065342479359658761439437438411522586264820584431409798360933735743377940131820250757979345454117802105046348260683870807722638395312487011608120836279058963222246696887918870286461356970607789965447365206705062686266734045926933427675889077786955050167170331864340517207933202673181453187968997615457986466594276618798550853428160160277573425139756725530467368559165711552313680880607957446536215241297058168015622903452262611279026990622284598094547931016322758398813989201085049589763994471109631203288248943456374037868596409497459402493293397483452878437786381997843931968603888125466812721698770115117593348514734122608282695368623253883679901703714885386998224240218444913819678256827957383923026197183953276493122143244680513514010118210647405163356230731327336947402590771346641838137108125562185599214416007215074830056130939541750860267251685940817888064960058518316498849226843194351670660411372956106067323233022401445355932518927399217400793175030796284910775974167748528788053650446004169653604476485495112951606763601185614498060556166770152182098363857586008595783494846087877949171829801324197071164773380998747622173923837633049064264348998741147516627836644226199205220032787710778501559610976093707767795985789424937573089922849732791283371277011938561605151548166637017605433628675362165143681048407825354211444635564007513090403082698525383141800961600994753171931668221137274499019248981521222502304767963948630362592573733177537916054022215685435995851705746376801465095930436353247621362045091843460771150701525735821405192969214897262084410360338492790810979142115398442863220959958224287665712417062267442089331745978764071947101944033202031607215708030965091748445947937912432934386154707514520852464003890746422481668046671240400897011138194708998703411160488086146156270082899888830469892773293886088834925440578348606625342579946333667380673746074863230682129064623559379175419683809678197986269520786733693697063317940899746601509568848205660183913141175467985838696863204956882562969651194975547140246537881353622118479248368317559783862233221842888824086891306633654820747744589160582179359947942640147819871848256751035958895721662579255837559363418902030320781025874208827004446539552243571170195476362038864723131821689938402824808992367334766452980134577062796542964943623722052514069348013378749999617217916505498373686955049613490768025572121036503577533093090845050271979389750143272597694806380248570848965561167722790160468945772256895027515580783122210100833405688735618799761605915731375773538250909396804514720741092863037800367523137660995365303237658428991417213596019098081434933965165384937481071206151536415546885814068641122569352091671608133611204753278822811656388995412128175414758645515599392583899723105716591653914036263257659579081397207301165239525204004704227937995617235321754469446006422480043615896134475637666009022114296949220185242993467724666910002460313536625145335329109536366960211776791988555241476289842952072088376948058556884616363218444603252729899604847849273379778789025009050545452158378281546556687358240375203791455632783901757117361552733583952436059975952298890691494556845734776321498409668444829481437034287646265173885858547943395801487822252248053330254343147793556067487094028939274997992766991390207765813393249331515384463721835316744112027076284427599555076916098411135915754701847671976500252930872327320030712495137111143252151644942013927019619024909543978491160694389343731151881323964524704835061210578902636783498635597672729887949515251890615386226014673690718541682978853638577546132229440185958944485257786648206984574801620190518295501299155381989465130359482194012375929560271169495274101831741514861922780420839082094940126682523334651052999017609885466972067325104498722059470165829821723415732994753680067406141634099504149066020403250783590053187795846560684630736778922779851607894735577410757492117996228685030197354801878134784827293891786386442814389505738844492696337475482998844387439188441038326999652576196011131008680000835421624690025714204679121315970174404867878352795877496571199663194422141735812989829131630929990058948658400483081985366872946409547855288400944598687732590095986129515846561256894713552813159033752956196601060382140531182110846155952707050955334591133184467508869363036488346902886382254768737087152144722939798995283464634264684965669561491757813140752869501824773462014928680646876501820886456899361348295255389869390606661935579344150332638502380870363861887157359274850845321296692045179998095961933355926961625862307144715188727250793999393877731805091009989934674461528148497875952667596314850465623158330094217773452848494797406065019530916741189313013199907838407139072330343669411552369685262176116460496693126321188695475432821733774131299538125860188784095768978010090962737412451638748931446614109005057391055386562819308291108170035588425928857953135546410885763753294049736770994863715792632790624390440842647025695239900925317723665390798443208027215459753481830646327636873742976893176357393739816791972195318872877270417300726271297648046027580132395229190791175249773850062964072420185530433513213893356273263632305961400662002830757851092444653850672642224228193222653862331098776913461276116207563765145275149988084308446742921206581671046113307757001457789341191815941761363143087816878087804155063323962807585233391382153300095156183961763260998526877459178512518657211117562820911203258536111528430632956457776624643486790924195781957126476047091323650005344264917966466295907062328273648624386421414970612805297988461081205160097672601801950265302117280616195077404700389052838811986772672925253346934454852887554542947798851735918286781800517015077903221627173188576852221485326387279264211880111286361475833799963953003920138789111671859704172516181538705623719652472507237767095736012049728878388908130250834921852142913601352785314242513451262430546374861132028207634573695410964497920036974170519075718211136180099234512355936173632524048151806253042489817323237540097511309074309235424706524489265121322719167396195941946068977081231360243472804169999490391123420282322807040629003691066386029052337219346068148010533414144075446608366068293353366070638010493350009560446792990981810857655100934230607512423524286616666443653433515397695769566241254013483027923503970559679847487360327938036399062598629039617137016894315840678013654866587173674602041772563217874831566097551116220308914034692115536075416127304899261020571325956512091984862689597929133874993550776588432851083419119006750325828985284069234307173820652309640493025257388171066708498189686481872509307644036951849335028673568624715110601002251248370041994407488154197241234282572240391348986407979277316568105252561437173204162409171406297404633728171245861871810593523563670308776496576376820915544844168616028857350215125750586265474338279140386152820188970526468835133906834672842078286178457211851026674108979836063870593240331870893005437894636360734245293741607839738186791665900914115214103087803409586642847570166127506688363744856067785745573215734228532784109320396878761011227319160599632796534356467114671426226976594878453790463347331122975758421249463478753273974393501383112017542055302832138690979278569590303960090787839967769386151872183344323991712613213603641148796988076458885991319031094700383957686811414637030080250095362065593502958360992291779071572914156285130446169941715315480487375621085788240334314752228400243917903918552566324585490637827292112671103352115261290383674637288208464951227728917120158038990968515157763625024583745927838691796155624308143543405242242125573146685508783937861897513189231135157582461424687895018283621939582420630109513334051955890349207452597454074169400940381376660212887245246754874096289904504565644752651333104751816262780752659821457826976739817074249282614269335878701620382343695610253939527479676711814929483025763867435357503371876783672825674782457737548944266696794540106029312191944651315607843294944066301349643009368458822377724587588989710237983511432699773744421593455282698287310726692225004691014545043951269270349234313860121000715698811471284277636217178706829021172296310214880029362700830705665188714557201175979614579148158900745662066663400321432528710264104579243517912550546601872319834253620110647337729814186194046102198675589622121921985614651915002275340178597117420180214692179780142736477165405124406939669825189100290654826728651076953268293349025730573576193097386771388520978073139024728665628807171206539463853306792705806061784996878101692592097215658182092188675867681250670337377265104513932778898856326056467210017698661445507608875171694541092628160517916384592090344915938997131742777307250851107375905749031986681311399493729414668934199016839427872599606596410378715429098296408260295570987851022185164924236643563332341679437298086816519716290507907866684165241286739411480099580592843788449644549597851089836208868511145012618865239981568788201619932036111377716227716314074297915383971331889131074553844660310692063950016751593595523177579179852588349277409944898731844365968682551543254723471380106352258258231519344660002410131854990544012351076420900156466542923394979576080818331121880496416331135473102305782096781645299291850226057700008036990122634823021923024422785445747663950899527181671902306853885118417266871261338781003174582797193960248778409157197384812223506278467549841199923949422783368358892882481005069132434918755913638783806599380195976097726060806074231553053010650380400404714205643796284076124493410928242479996778747594615457024346167644986574958211447927325809585330410326788525511941671716653787486991904324710476493324488403056112716779985091261938448526224254313801494117100620322276566082589368222423551730305444745873678859239379394114457356703440392671340140852423212377325523149238757171829094854018900128159773915176818780568133885734431126272018542408981237442010087133761381965652641035958183706539565525084591601355080596804933469919821556638972496297072857755984864995357977843761448291751281164261444895376403791544214532734364720218404144730305887210619838719407082118792941708432014275255917910854918627344840961051401741113306495560161135706188880743065869107559784142389465812523815118920452689223271651159719807570610269729740207122142564125043669004170003514374526934311261614527711581635433441069761387536033041504714981592472554118169840368464877373674653192155347149046718203064064476344648542302548000226107779432354523080646942875521672177250978969384964838664273543489586149502921558833990903326372409482373497338437364719329204184938321498264226260566475147405965280584379465544622954189170421948596858445583007685515090642218310277920371311189844980979625127436400257347726676539334505600299827283165411292669599975926798434363506241015518556997416017594085640955492597253726987934916791583646647859234825498251984412023967023142759340402368710337058813499628147764437535953181844209043782827856603055897897255722562783916927227294038970454901886744202016409594381181077668221100971963049746199117615529428074255281469040899695470429676492358480676515335005782283085906479632924124648882762134730396021021404472428357610252274944194654628905933630062797637240486826684590933751060144278331407828146274379843629474055556018236050519489468344771089644365548710322651186437121918585462531627746721007556963762319283862763238503393590058817191956009489634813395837682398646489584637126765954129318988410594463232824227187091439989618146656591496647677601300287452311637828175880280825414239541820497106844658757621258126613377891006405472613038294176881414228284212997261460899755370164109046291539094358249882257514104866648138156757209657276915422078755145259702023137027591636310761493739038193503695738917286759723505902710734923119204150490601125619822353025395456765964807720566707606240610556034739060598303562646270319022344664685586846468808755033366726737751279283222443746786132583644680504346593579212140612090603023988356406359420419532378991422769081679238405396242079945573325864796829790327405883706513558576698642188330354894684160034854023334443960515783464434814463797705505082938209157448139323651301937479592487592722001700479167633939010870501554157853607136806318508526279535289727463931202363822426888293870436765616213656405722357924902559048281319313120750987364473171257064625654231098817010033544782621381836642379423410624531327016205000690652092353231157186004282074020982420617798163411657284656029718247635033262477615065803784585136472886091921941481099384851597961204472182953242834635778009966325691115830757476485415385964654697479075440428233658879477645205618783390027105748467040597310889246147031911119337899273041874147691561179267241384251953038060499865806477776105683826710942979582219892987751011541487398207207689290693754175584942516579004454100833699117826106223294984578245846439588525740880454956418123407318325814106555439022958214190193948544976270600103041379008507548475682369230319149692296061191374787944543740306744655324696565504317544273157995607367313897845005084237825774418897307978115133523444680890851537544056601872589941351541098982268014230302411496649016554139125008269558400429507828731628253708596637693874700902199219898368218544677622930795271854132831405658017939268300522828343854852758375388945944651454565776109118732821288484514259047291264603511685537972429857198283172868087212621446627586329644022827109931973457911702817547986754383356395801651254208239261828525152272988111732863350452661644711789842848444113638437803649805872062548234587908849790555799909414387981103625515371180178830702556386986867768397882537213050543575971544087823898023284746938224563230701362343820374043115956695849704395016854825476198644618407360605800207127234681736820352606815825790629704944500784313409349745414389223403930193517174583736727105799350101644303398607588936447873286136020114890157431749379154864336579232221628219200576199206967962592961673589878565243042369971289956523139259706956085484244395797234661209596762983017849926673252070707097849766117179835503699854642032685933449201250579560387349053522585913777671941060032833199224973040039636055148106118053821751571481096894530368932416437956461919197582439326666374242017391098963423246413807535316885608317892824366890753742021181741289987764430507913054603190533965485789407488701950997271988079663834184881868640527401305012866858704073941097051619481238054577062249344122890694602301957326317766908959591757798203586599140026554775059318066450648464844454815673326839884859565522957335328519446243467455360595894921414516990884886119720833391930187463377403734808500111083968236663707714636410479370386890227177317072174321753934861509932979140280750194163931516395817746700632257890044944541218240260657308048171170676749308095998251885332926520218362609458837455397223560413339142614475538820666102649597685080860880774728325029747963978095786185793287878291948025797585424185212631987862206817647196450449611032062881219970871776317885825597842552244049145833044493034740818566621660309891205871168286881263315552615514457214013370814174841410917304713385408560232497432681160999876467693791272042077735405725469818819341824575172830776650904532029785699647717551610342479855247578115204498546579377789654387276609162185081060389058494967907341256319676158855329809155755203322926456741380894302603686994577344918531898868815338016456778711753564250564938999630971804951891300401081132031825235902070555581319825371568551958690641337424312015477696317157143246974809101899511792394906286196836391652662963296566207337256800885868688723430530750324856283330166630496785742593067278377041876535859936497461911027166432352715806002855793094799444163401057552317057264875481805707965185211134223961362888220943201366629020917788162077429582541000431116627350163634464121144559688395206614222196047874774231831852669446077512832327457595075330208247891226818306126577958305681309258797247666912797059046768745766517630548869089798381823353029796398249410267243742629740510537831261326991166392562642985137696791077553002916990228893663642545910542983543179718381061039033492583141447892222633093452863812130368999024708188001774232418932561234919162118425393566837752134199794547886697818080527950437696469081340136278174732924277651358191208131923880276044941216152248923379221904630973227246198643938049841470341009033818356562940860287813496302271123668807391279601473104748722173781896898358609762896291371169666694014503666230026818756448473054753124206885619916388001251580677169894067703732833796590494828111021812462344482243451639922035543088794853640952507263394402230203652476274081621466331016064373849827955616664960660478892442432461215631738557753854380475300166696122678365366972422084140486025423937762594407917082193598736874282718361315268723313952876851791619829189239858326212733661033087219117619425741204336006714938880430316722581793108536442477902241363216516954122371962033393635435712032290001540378120875591920624041480332359799878613543229592474818396930757020410045024359571400771314507115009410431868014159874226900639621171810373651796408984244389008467989538044415049857335051618531526365384091667890720143652050397474396903948847824868077677184291268667778827998059790220342429153677137429578665333379852437941362420320079109571725657526380206377735942990058899574804792096915516096451715153382686582676729450563087038511835583597435371131156270683504899985819667035200394523883149720156365143072425926806598729454083750565495025148547660944863020104765114187697962028793704998646318866708422854545624894527768245248509909849256031924959592363878830297776027133827956941038947690244799100032616125823989672513187068567708845075570079254622275568925786276334068559130950350276794545651390584512591981482117093300123691811249877033220453272512641816742373062196013170648764655668810480070535840548063885370361845435365494251111575486408978573760823190931232250270701311426148798990158195439941977448538907709581495680735058525431033977462681328461223087730377524843775098773832646529836447374827597400423873427359073638494006157047918704838164920637947205670228098795446786249550677528152922733984176934500072193207958295032031036772871939208159834088068005359113958074803573953775359730923390595031227527409423901202770734902968650145466367171377355656598346792537379163617480105956648056403233658401300081540339215823797659478962371027874751441594509442472222634671231728700613387280157193787243000852341915923814677193787740561198686494856593504680553809853557525811615962377551187424014928488771829199507575010148565639923521447334700400696723446156338723581926268891853153314663720532557279698031872837974788722427257964213004372536412987368266921853677810830229731764817682598813585709729012394182103764537617427268154691163863229131759165119371206077993839608686573589413856304395443977653094635484448107311599371891765298391505519660031084526525202044418529127680229387150165957632992705178879730791497321547218542516324212702024013680703843056749166304729253632239057362698569345384160848866273463497624361732268968355059392568364298232501821021193817779385503318490472125294966472864701793440442911231584700384512466123176777485277935346172092140999813556595514696940373644297870998389209214465729424243145505398416082078309022207264529097363446154208392984812980837462517305830252332949236934204344775936938740817174527829360649015913738751259003236514492121861553942620736804859745100572750549327594678305292330983287728948978394723145604353472765760333737225279787685218069883874776005464470949433882043608023526113029456447964297376030138566411191153487980230033444552851002286611724604096933411723497035059126690497603277239599244304817970985252325201952195860712914616261040255875917847602524946830555023955763336141281049868825544999516479469479070968934879586238938382313348415230181554241642113866306122741532414700471429527256591953855823141050001102623068638662080711040415224031433716318874938833688763725592899066839318017418125280373606288612727978120020548788768305378921610970546559102622406781129992656703005691219216098655475765784591946924724179022673539897368094290040954116777780110330515480992746009457405784025050071792790068454858078971266190519514713260102707524525680382184040916795421181973795505124380103545845424374942232698386984017377880663977072987675924086882822799444747114014958187839997805238273181666837765714947818769344191675906964608214189306904737153560595696130381586561417491031400303037981679206675512726162938894701230467679391370680516114607493144887654967465162758761701280513241960511206085203293101865279771161747797571867673226280224252367032466886230424776420155192920897925097311571252948198341509200800879731599822775793133523393749766357488582044765227905677821306864601340742509496928514593773917846317676949019321124069140403812445604589350855088235413342249642287063645479541257027531797279175329369999094569019023007330109420818727086904426503302984505673705992787588943760915531668272685782984882660688405608182115146727719992831990439193656334722489321791871023047251685809604387986416413057124811118761102179429121605604573197055534487235313257547284699531389684501817971661673705810779536678995498674106084801634844751133685855462197413093315449360591337505262545942004159838308510609032913047269708247690482535292018794428557035524594220360720240558752582042178205637183318631377517068176108308936680373467995775223282260111307265350195957425501301882194209849046899893273047656782461229751408332911025111467655495405052064586817926274406748254593358973794445708125840877235454317641963420632211473188385682932693904935566170055639647691269596080028027943203642915865792026766784843510191131071462333237195209328862594756783934414389891308424650432595541309330676851693042534190396030163238761420310734881668855359564991053021760706764805733008939621815981553285980371037818003717433692426639918301960963850974878104764814906158114743454778251064349549111221136404321074448187038775623830437542714453838952495121034004103730233176679639596121903514487919737848745018012405573673336037974148233637057004237193494617405803722420478552140218254248266711062753064976464397101169244202444106671507028531337046621323367914110407102500613567764214625370560938450690191942643167761229105064315206174049317065000809871176358197040317378130913217194792613758112417907356026782394843087057348271971514351018449364295120440012583236716697791253536630939237679112213658937836991092821148749314084421460035714659178802895361331771135622257395302298987505543629191970972918613491702462855730819687592584363331025699833496727035823300484277075981557961890243365098770174538243315567478364656477364421379801755776707182199746564971298101605337404428472541614211741657989466049822768542535638099591434764718052805493640244032856809745678624203655799933809167954217518766377869316901188957991013079843438580332621661409467866401453149709598530665232790125593304873228134696802941256187282622229714276941614948812540536800917037233617828393784832048962078566853353869995361405651007649133201913585366750702707940148086738624215627715438071905201263906212308749138189998236415767122073131034790887150098496417695454925987505795373102408986083413530069791817910445370269174255935587023044079015668099384437963762685944471714769728711893827225242703892352376596353690969213345742843363639754895530301800036290855102258319766440658416975312754495217951184834930110831203652558252514062869382060007368552681089202527128239533298957060610251453507291675034981728930027615370845388881952310543711921681918639103922779379421630528563996775254370774654318883482825842067364983616934510341795933909481458796603553078081881625504246713843308780216401885808589245298245719132764067592902180493816588000206061659000918881944167766614545630450103399717143871076754424306952855369693780199502411728443381455353918161614041499126636060349460142776989131798803730081994764294751966005431788750092619828565561664375995528559061315148098196738286489818645763824993668911518742667552886253859176202017802489329251426820936494663453633203831385958255612906714418621728989359586844564729427632311599416472469661262117958605364198152442819659519737072792213054689985810387688300321961346384036195631734816646718593551256451573598235897660971706160616539724811172331191905616671210547682077902403304518906256368226493268537805334391588773498852872553929127918782922215412806441767884308972865914165953291414271347342734435522925515513067583266364475774160157809175305556848494753977911283220108264665311813369849188572308555755428352537270119575121696076517345122518691239132096767058773931673757863062268650725601794285505840802406638893863998127735461210253763086217515538428643595048730860933007219216171336997607142024228274387222108910275874509340268465413468145580881682513829420751879897191061123775672141702499073554080965319044998899195085154625438976627845250780413650344218939123231055492177935911583445993424460808809352096356509670152145665298892388526827710369958748319187899497002324728116455229539121058635964844598136325888795517280780191094131203983386937837709299452047861149440703434642849055667877322482083831003666856162385315490247734712053688631510535352057131773542485606326737465500422410449576006170645131258563955744775714696944996299691312202833311751501097045774725264319901130854415283213904470790715271714268524910295109949849624405010211652315239310795720473420606881932302100020049334480972776846866648714630163774060376602147096841836915545234562443327271551855247015024500216581739021111931028408500337939559567721315311847413880504915303133748154764089537246985933348382043332860677653349427333125272037752388929774058781373157908194351829181184863838761205717831578669126548121034577723656220396491712519045383132668221218195884464654941752583453074156697816365683609958450677879892695487896199445985498081470133515252696537972541090691667238908732825115025203422779620889566872505852699860708151429909605665280328387300054578366224524100439359394596580048351848314267331162801912277069735726665091773991600532946234362068833844695040305408513550594007117996543748623310565293614327839004700279210548988303800494832965243426112073970844468066126074084904124677917002949571999424085323814794191634776131022734134307477170821461854004097860027005362131107684533247138653912236158522059420376685336015593681050038916040350217942507133773517972560869844242245550319682421279903233251994430541807723693166273501875475615871933043647573760537132271113581018123605942755113350517970219295546837267346816317864789656337283804856990907113323681917401784686883463008835111225106359203819632038349671868216431919842432804289520601807367256953623666140873004109016923881870549989205361470688226642158141327951298123293117427352585184406394429099794920941669345403767302881955530667169905428128123702607298108104564441734323766883247488250855935354841479528913875360887559647741870100531422477991075549597057717858420640092538579322396377919833604770105493128093038538106015832121834557261853185615490061952060110344281921093226041200168118650443623568487245316924061679362032203724627440182381951750712486122120306686566046737240513126364032760986489327155510815886624570900318659480769327301321184215914283246024792868253807157978134057015802442058584738634548728174982132959512123244701438388206961635523656803876769761938708867303460468761119770681141049018300608960474890034559596714698373419540247011043256143511768801809494044022584321771602676324665205342655499131593189938877409984402188859854408757745394482218700776089278734005814821386947227696186029450679471945505348024505021083349359443633766802925121714589942582203387799865774957743192621608604886565099048604381824731440819717965454913126911091857589113928948015908226237796328971655708807151156127206278216121552489397936562828070612241256911628673565600119384249370484017490566441175565557342036190833734424525254684337018953268501732689968601088687537337529509229794099178885522881798699694729226044864954860288238712063126431982433060868071478069232736674739094928139634936457746203801603040243706652263437576705930380345907385445152643075029644212797657248817216089541795317056148242298809519293446654593432278431459058358235645094053885935252030072452820122269902676381931494376321409420226271488163368409027093529785138322372412598288122893048753940668611651833092598491602761975769026006532081492897922956120805152416585545770569233908784847680086406879228937878380714625725634904937943355124850201793138296746587075050604388404311381131579488718359257213676020426907081418663298659470398141934806991106220142501140366791904435523205929294850231020080530836170838688113752636211235619385488890673804883757550056155350185915297333656660911047679618074097745512598919752646571312604023697529916678032902383772504113993897768226077859292469280954459667007796102579940400402913034446242856123922566258940103533182222257987044967016954181993859220994695021101879909558652459354801114707486105787694027352481089913373587033157354889599824743456220688967915725579440367414356407096149333643036061651041409918890289381224276547374182591476731850869989365565303296309787028081490955885808383725778013580823430403792743821207866951640078422349712532900581705924590625170972166662325329569229756629600131480286698900715364319241877696068609151761100795151181332294266125283775948451131349980494626102158069173055860148882225607067783002933888526244410717833544789134274355909968270610527242444877412061053887414085696882890182729557503343585413507720475574149091412353327444599323492364453363396037648877852243886170422734510973301251051957707719591438237480714057596044317479403848478725206208437205474991100879321412155472323016130168045763781852032755888578444746146094036371398946330451070752895329235832424643537878626979578927517568786395874364740193411788617002062008537008168557820109505374349404933075374401383961149195694332420838583328015495330214896492095826835616310760806181800040920764204021884197291939540104249544230946497215148030193325845510505236979951889793111068070928314616780867054652921783823354999415961377418582181053011709297394146220787013210808602032194217544206607296581919518940064454345514840144696371257148088793988941916423982514417766400221628090295187425130757692540296494872826176662878132048165550983553166150039730628645851725754302403199622207381602289562325536463974008218870531098083861633335753300258817751934293199981771898942601857515961384743472174085581943075898016335892093606082818931346946885303657664606536370271929877343411878467688656255406604771924641764984894128095459798254104146842989244611881585508351153311575002285986582533947048267200986137567580252370739620594833210132368787868824202614342271616881658184009475975047218467967185955848035735804760628871186507920145547683346939244718296029182030209405274811938085127816110263565393772247843525367627377453515964053818810725684429931846479565575686963460930732965805326386340579960841836010134936242358549282742338714612596875544743251313332862992835100798121992096333498210438644116702430868019128448838493520276515767249540428343786130516953694285031429647792511237366330868199342677958175948780824724675772100683380920613738276517055451356288566112181377537482047169201743106888303650304797519046972528599922413511923501372682678764765023416070916322132546229433913412902873626668582256168070015731978784975401210139825379661150319682699072200068655464953964516859700628374834345323155752718687386465884432636512908080584213877155041341084347222272525553319069889695176925655046695000038393428206006459821972712371260263918065683004567412481179768839208596911841168663847854129696374751750030813969919755173047219785616999544152542089555929409268656243319911980406112512774375977340106391592331135104504403492072199114308285589500974520158472119731096487667469873474768118706033357587857786482362472256110075260484612702309602729206163162379033901357658007511584036022090381155056099735993816666767303775914405441745011865662229281585788965743287292674679919764275336332754030023909782828550491788393340860376239195248027702327474140088984937988938563295852611329235033334013797237593517833313903703541303421886873091906490107692634721234016088196836426403099057206487582861384197267631163116171285654312742443228267675453769199171797793154754130369673205985530028900591023828187376796302116323123744755237783221962813489528687365859302341674139656916019018983940506428644293621781199986178538197463856612983473187371865778883755762860266971797470378213041241735068950984913014831279345213270505010701646908743176797734491391475687768039711797724761049805368065050847255609334716210349561691289228879482472517559442799537729690754287075507490812728584775750507214937873711991788305401982381603304765029207358091927634189911809321048766138472691163092057763480943138632551714331116941605973058359522433704398986078021967686274305737021262031941212556998817857094263441956848180123303500376868748821476056775804119087600817045512590882367418866846027253892645464806730673702555636065504322091505855887212583865355454473694611757988538216740084350680756801138141406617283614982031113162167362181157017079922071246303774640147758258273181426162690239120954958786294575766877989390865395926407181937203323509324976095465930203043348406879730777258601580254934147230145456996945082680717009775349049824624795365958696953140460806927536159925716949805275196549144571641479283588439849305298999563946525549667618083778374652949961935585494433151811677888729035598941294577137353381627374640010309144170189090295361613242139259061932371287980535703032706886740699208429184656494793956901094176150768940558710879251115286593985869242585269744575389138457521320572547587698232502478221849298204125086648002146307622954160538501416822293283901496462633923189716620806976539109714741075072763952293451718135275570065556737298093594908304544918399195204041062719880213104000487246041360816184016564455244025247564511341513698739226787757825811860368005964931122838056043975422003076727548521168276055782926890678439805593961882870821854932110024942501692177503409590906949478809367794671476617735823704401362567602367660235545369561323306776844409697658965199702209816675185291655718110717327123429207079352435328278219179260279527770856773382967467140599117664225777490870930648687858343778827956380823310827862687749598642898002494713420428860166682338965168524577231639870234874004863988848944690797336370226549470969929242716247916705645042374774499627766627101286290566063163458540270641739798295565933849997607320813520055886981073468480864661063307903026572102356502065596702186568752456042762128280511785066161104716382948061371992204147298682548548554730328372612306209867472460062663206262631514185974472300436171570362217304740311227735154626243060581037129325621875286879512594413667808494030781821242052646998172331100788774803242503876674408802568877482459323887023469259365014970362866609526670443050386104256716982729773715613333154195303407925669145503087116995257178535408483039518068341615318715465369558289164433228515346596694441725811761119889644992053892024421880945086707861319176190340027689647322563138922722559869351196113130452978753817862794737724209000136736277772232137946436797212141815731792168341862365825740974736966333967402072015716996694205507663417678606958359020525732039779820085537143160441779314890103327232698444374863873000954060438431990910907476512316442860836866847247525909897873787550669007797027324314881627872085526250167161751433827404003091282136138040091506256528010681487098069639601455213403115832143338351627470133251651357029428410958483205948998868624873862699095271443510769852076546310813874641200681680930223884360906608790710990043428841803082551175321754053249760247272566339080009270261349940240070502148139294847030471720950022515110912725724586898879938310216939256909754720281290850590225541547200400043337916741708052199636465328618982684836893555501726518305877763631565596470571383756116241013451488648490126929194912260794086795699885072964964086982557070935793411592319179056243567308121087504867839129204809488070909286966991406185194601526372851894418462248807574361310161101468164164184323066962009759292475513510919621689650371827195526164213542018322030120084295724333805735667987078774698802700395585181568077610241890925312757049461456819640593071818234507734333691954821552091665495776061854182236257081868892312529154236757921216431394824713336266905853942720837872776414363686320648595206876223865358072096339092033788358983530114768193748468384861102268495432162255729015442794072578063797513566746684423436693303723037490950416496538256745588754706801483153787598919406131611881158283325666790973950561077958816652588302530574603253483257743550211809828554040204764126292506575093586117760518761433446942331679406045089038322428433481482007103964193040346499628665864873722539600118731138579053656005861145848134081554557816656724340895907049644532217184412485095508667251443267694590725333557267725564380199221976406462799928258131868334096064774264488079857817093801148868854412704192926653017681056257079212519431073421981639409751270073697751251021028429393907328650673849433399231147124189714399400811334157031249952126522791027475257027881979078026885766593908426850556119361320881198071283372994577566433671021333281917394784405304989418244357700861613941478271263952578254604732559047270754315457039963463066453586593278215139504956272266276472516906713614190659966183356019954860636604333604441871596436220834497580572123819302777100363194768395539932892980612902522988387539376205679684694474675663134045257242683289963675339314571495822103890036237957378848828096422426311737981773368327108303511689858247416416127406561115523023523564702964602694025460291072982768678272199630222615683887421301562992600655349855754131289287502858962616355358485994456442037293007426176255062496843546581266045778502200426809109481421245911133346657787672610727599594799792977096567426500110992700158580138267957210927637509249673601048677498775051405170647400395856827504906201736686701128146186968754353855827087641859844947863035539368482413572321719451859543524133584064665549302064321997505013545474610724799256061811386516518406544296221413177806046604729003487824450505800837390065395471240465025989020197166247916067518408299463862680327362260797427461159963976196123306393786583583349601307972956979526694154500548646097308934712306132090197850676887262629439882560041968504362201172902907186902615100768336284053058078314475940443107289707132557797877037083330609429726631711534267534697455861343807041065600115865793509855401474738277167690605368467158244735987421872973148723826107830107932927814359675610435851455633850048611257264207781025466856304254039901200512896174527233636474830717010037377158649524433491813367328298623135130842752774590592899143707455393789938679371130720500053199015153584550544788130879441053448955356274895846950479641858218742713994940057187901479878879190069840302269211155612310339976620536136292614586196130947119870659082843842484602846171917981160036157271888671189006710786235348563060156960857768921371902196969845414219491130321422201484499015806426178546032814738954627473895182405061294770095224935448741426254545223058911138868975060480892406095059282109810551255980091682107038695178324766486257654014906319732531075935281705284015257776647451127120893403375193122841791129617923984736488729827114838426699557066092454636338079659819579071078937462875035891517074290833777265538319545587997611829157891995991900274234390730418510595799813935447189896452997739639639345228648528828009918879229470975792946318846021432504652631875707684159242756452673670129163915233302638540864801209172539790901323465082181676047412350072782739175764332423418687346022448706890518001595667303599907369653717274281678440657007065967009619081779329052173201580632546898768820477366754784707486528187266563262748306169392937528797172573014952422578951044363123342144220308053374795244240104559758126294694694712035679495288990530842062301672020950969843807589085374439878918703792457355832401981419683231878689438208202864628493967302901464550503569848700418792940009887055042635846310801493961846962927361036045509442869672141346419396130917266830645386958503410788057853996727957803790060198350267571076097244991688571041608628040042725731769271014403205836905233136290125958572900309275220091107053033161059398612616318889229622789636165999202933740585606107342042556160087122986270291664964696307952588836934763770155487361695421396620439055854055748553125459836500091299615625011012630847872759575326542895831546097210401918584134334604014998573203150007275882448803694409692925104761102996617164429844535142714934464722276566804035782001092578932118899933805174548131733381014568086461325543183445795105990053292929842961003962179795922813862607257703502569929139632452887504285744511613267407360754989498996096060186239865176270932911465341014166351576113490145743725240070582118840808720287946754613101335569843734623674196333081326629335443158916733441784362035543238736388348393449598674216461276274023011140096902392933454395308398688731400096895183239625362184803817792643717065508062063122153482572458972697440344632295881666855616751613263644656878860032054372820885790662740684174879680040797736330670167753037526649523407376379781262790051230287198870500111836093281654995969404939368565955462602971435077853523826921456599155143967339237242719513055455629892318451537016232029557354972135275382065678990506715798270756496781326585028067415355818623979842787640064288217302751011632759964446118170262158606487485239535512210369845255956712401944385311135116658910969301924461402268290362615993154365811170647812294474900557610452242773970167783935960670595383033012579167727739892764336859390662931463076221381036499659232294609436583862819630673977973259235831221473327969899230238727038191586047109412636838697420294922204778274425929083730805841005141386019351750904152896124431371811507035888613521339322362121205678012241776891721332056668297947275622075221899138362414383857152775828053530111021931775742377271327501529503957204146789858806183653620660398055436199701571201436567231170162881296199625458816877421527068291526293272586572360620511125513454068966956612119482401134584445906831566416505251501163755291438621165594051662330663165485942015721601750005285114683233257338915063633249396315267193305384353966716782395573003253227454455075739510653290906703846372890521478408505534758197480434008114264112108183205381053148000798633417191060580056783623402088896672569858561007422303253522339886061203894325933020978720976544222476800735120531873626734860358894649046118606087357531569374483680532516228831428637850410823819581188407842001220054842753843696510212596361906389667754504020208252164389572698695226588649384818684998361435933764934720554370523619283455416871483022617675476450498835877444948754836175187604964152369690682019885736425050320997361635370315961958588054894644997890899037209780208817634705448450897571551693130172313666007133217799153555885753916471366692740994952910713670231794025176396820029081762804276237858494488693976494314502133228156936376612291762560955667106536992343132493076383413016279285466317344925800148055589976742722153969341931898878495295752667326132099439683374427445835850675257889085580596848919322497560205443775627134617448015282253480702697739685385060601690971560734758552520359103849581651237552695489824125140558565327802648787505208438534300671156315538372607958956850475280681127548113888420599184412686452301298962373272701727912647809026695742817259972118320780199473595407600792646077256246255675401123346313546932054389789243674517067575094546893890541945719819417514467236961737036520393094261605869082511691342033961288733346553841297999653785311394814677842282547392443222688652844650029326085537679728615468210849076375360561037806165640096612996716132346542158149171281549157227852836894708094561093441259422979046047559214052295954325788233129831547149741434628983363203131517380313400641512166343475033944179436675404625642736917848485414875619222250495704915001988362246819926159772621539701505368666433830946765210069696896516356507209039091925539300208001792653712112498919397092395564847744190765609504573984637773414434194644348737227646044406074208583217985507760395286177837247749301431259995988182405666234734317284748406121453108368157273379921699783934040074914478180817769953432804288817692514341261137471971682484238695061524326758497513113134199996073265314916938295644094028348849412951665279843744576195150466000569736479515990509647426732447645489627155323019970030835057750484559322137407400129534969809045770191779138144171737227799355185202741399065407510262394029374861020356570103915686931973730718026151565027468376562464063195959864539284245981416128987755741827395573940398177207571842500411045850981077740764276469025676752949822697898408290084689182486677745694651542625664526028103312826739380500026520424385142531292532146754195428040306172295771386394744391051341392906630917604276137215163598514309188397140941867230228208037835921169660745434428949693171077071197774903241338203936081069149240350382237119348654217381028931685829114211012641632979807167474484036556966486982310536050731782328301226542119472089683334689316521875939606482139473057635519559495346182903282747950210459329558115468031025872557845086266743367261019847567573288913220799812281762279546225416272759617143816279202311993333067660563474752048329044478854129300255836818971243531307430820791707188271209509142277343110548351130458556175656024880217701115816577949624705386129834521031102536284330082607175262702166109638132268807695098552887767284518645507001825718434306999746831191278295688625976774147987259134312335258545009560658819336973405995584453959430206383666469631390985202655567824657408365725141253158236983270727502572626738764261349413934288395632572202500407671289036567452809597097048930285851429075686032521926061864370471612825742811824560746540283130829723744038799934818324244254325490013829760845316464072232830376547544165551894340894188405206382288041035654875073706919643166639626272850604856382231845695331467474765323337002420971867733358104148984118019939297385077424819606065655160923703216779504428535858233310018851390933408818362018166034826723778741783273425461304453794827858100381777451115352927265966361377996491853068266865432294653829742651203397559442302041981165103071091724153606131553458470102747138358944032126741670037482492903305519353286965538952952782857278152806575267941105887930043221341745057042117273452066849267913018578304835742170468634482741848104647260141051397481159102915651748498453288313590265077718034107513564190611720418224922908376146280344496859385117257922733555615916883609227791903439184603955918859821354301697684051323395361225900527178860126409318038238832802030646798075689000179412974824553098432584383109802964264421223996220275678729200223471015544566971816906766742881201111108755301668885335141639905725669695875373069840670919387617189776070629584928822797632655434357946355664185665114455221327183206096264378548613299882222189258122864156349528260906172208584275660707725174706929349924708814053593745122316558229097131450561880380973686993094933311030040038153461280175134036457120761076054652927374100920699277201309850590249049875997930960734364330385228123378079173081977505447609666614954023789255353330732993001164453503325338697761988316779628443297359676146603832222664012326073058472301690518018138798185790514907240594596039869280694906152301837069113342961565716495823279566540722988456848171382075112438975287836601726208866475638321981140180950706209818042607510190211106124342159147371716225237235237881502426314195854364264602957441875751767151588246310301915759348292467513709961723966462280827854670540013177474389334631076775910547260784385729917999907887453152498271995042282765126524816800051640440268356459692312569364076324549564383047496561261894793117216640998560136262038953817521055788328077362940434524487046946998278799652769795120816120794108374393103358596305887514843343556681874036357103908726241139801487668376523348398981802456702566516276260414336374058082784798187757451532402941315790860259056426814555146909266318854435512120054617394516763223322429121167618226269926000548795154383858644314655614236810125552996860809460779701422310250001700878450580571519997768053533693359112814622700621135532686053308578093606343024911545317210862728698035555009689704590560464582606153228682621919091539913436810400363513321159445457591296608639912313037730563687431884684213844700707311024575699350542114747831442529897040206905208830338074569077558857112106055204860518218579345537319209049270556551591691993990698063570917942801355490121625951242441866687926187329065711236583832040908608351394489562953838822307120078128246216032799741164294664612788956257403452917785432554805373776669426918783688104595761613514143709521648547037657717850020221140642488985107649544240713943290631821056104284005977362615327270785174980607619090412943351248201002357104969763200713433922718341356147597808811807383737605858038914395429977253649542316077473740487575986783105943616372056376486054353435055863102069618326879362055655554998083633128573437554604758608044645696238278401707162552330898451919642252038349528189514119533498588031024708328397813202964336356401434990248110819177427171892680426565526575670648385806712796254670530921537031833693265064010483333747960129082367129507972769030778334013099906590830042112856273882620937002768287862510429959696354458530096460725992646991821901574416323898030439608871696778572503792114102980263819485131221297103121379752699251150375909124881692257528274800433620616090851692463469809087564130566861658324710428647049300588833188994474238169917369701865807221920471203055146283861633563754444934430965590018833341219039536516387244032126276247508126606820351139672381618564902875204952522827656828007854936671804351393852380520619215618218096317940675423249235346255536926681908731932259053768742613029214548461624019634969277897633760043219240650042164395200037834645571142125101212817720590907117580792463344641134620653965792750475626119028682879647854001893036577597265861390982360576163501584381503623396066935274940154068915670399695407468110814894332234540316450758543701786656281650164998667807716422219009172643865155791259559734115161843378286939467791246481455017830959395711585931365349799413862031612528964292235486256299785167191820717138895459395233891849269688588736542636142519600599824428182047270970772727955201498953834551286330759979030574912908936122637658108751839907795321119672276057836947066874736075155798504678539692376437670462190253070811638568081972047623693339115417731580825640093729182958473513462701831815509343567859279774416119968418942904669572782807115550762579706686328329418179552032835088322115456568551634630241632469274181878606769422645065894940280872531813631037025931347524897766712913844932482674087134293211091276363870941159857386536774914063641622381981349957650242816336601600072050119236027293926164210324462431679147559961279459910693148357749329922712175048019504592563926127306645243132388674250560539078326473802283383854924783943678157693537584269371550385231228141546649918780206045586372049482202978529410737087059107242510557079092379050112802891831174624966107212464564694949126052585638241550987436198563159076097856792478189740271863619723397979782745328537235779273680364481868108916418236018262873031511327311322811917505484241519956032716645395682167600966179320509463475850365577204276235528302468611711294629133515354877130241146069099610261604759440833611981154548905197221959070314522323350316907130174300677714283214042034532110469561333987078049146889860059388359860554603438544297787356437315511414085367810647813182425933827050217212256248042275682087330186257797169108204258819727269479829992006509838166724736000881208414066994943855999691050726553705963396243166547147298315317054902566189609834291059278545727391642391325920700849185380214270660017113831654238058055397205945012007350954697273309067868122700481173426130423804779363745292983123311227266254790530935590647783414196192318429968503337036793765935154452943506069705216049429086066347008852370388940196474199419878065014687028574449948964678066842587390045684967638426153710010567823124561087346490910072711483822565926705803511345820845161704652087012792424899760023057839989788430823243154209955833343050549698834102830411579215835025429804196048843796085755835176964354981575192227982491986422147356196941397659640646451097825981073966136004062625340677984497965846505017262470176147496129689152490868970137764522134282554025008312273505172280466845542695310332246794453633777987070955407382144684575920154156879502259342896934551626565666126713176134486525818517616264391056554776276741127675604646286876997360321351415971439361447238738360327384302490588021180700175444317109290329299146871301474246185439588798295046239655704096724847178640829852990732554422249669891900832410231450094175142114872651319028428372859136816024620376005898717461557054438643784291702246240778736071115722629091729131486943499668138935879666134973757618040577212510939209404247708728017695561762567215454849560646204143034326133804324905656993496159984018473391012800832045047241582729991749767370728401474808818190530171326338181933217534767334670113751386179274670939904705744622320473900143637857363335642495468884424822002652217464083570008422543589216448100115084458366412704343219083431108035636924350778628981550781006168488348056826612783369129506371102931355763888390767018673902038877733858225205396850216525602588216072373849496725265458373808911760021279004860315141432063555770133880072874406178124006930990218766501680675871713934208186183828709704081113947659121372563929183618963703592670566055010989475706396581526334049314576559381700646961823444110953596673073755103790388941223548523832529635403142808731910372424739545893068473552554701523406047659014613652755330137011588570425307656168626291023196857801931418646465543578897117647628639579592851421944860982119080437137544035685668465029092076113412278903457758974113159803094211093331327508619262015627804895001315187497895788671870096403122796457575602605954488915963087074529530878740293696328404368823161354406941407211858136285116936334681520414296626159778601954137656029330940541789850486623288113410266765852883168400396926630698773740213241980096563689989675308348614989575105389457011354492724776304098149231683130746787018575378999936148800623896322309385172641223131975940908607224259027196965610213553322797683419729217372545631507272028834557399819554552947161785369476076410078678878017980554413489209883989595909142833455525407255630736622027680304254169900061114718718191672316525998897816054839307819834388783022827377612171578768407784896696828596024177681194842489647805852974667834009372046646988258561870871260216748016937300760569672868713957546716849057118029098989796607658437030666383529466404890385147316374261178757551947637154571890276034283923291489797462666237024322647147589723425459970945334892034017641378105250926814910355850031719641564150684646522145228684931613200490079801484394644669936415225647446247360127021282189053219586393230087883677488422080818949951885942451317442503715934898006587683616279941425006159117510459073916709139243831270542046837983490135850114503763061897260903044123034820605119126432720458251869314346102974952522242120124650327296285137348392427763602673360369743122765614255002946647142114392741600965797782298157985360476708622520419230399067600993757142223047507070354933992077183737741549622678924186282277235763138322553723240670886640797777367436254598844036481758164033731264880996323602016071123133559539731893844137420244129574602075604323533648096414220850301439124700467348403124153023990428649753947474725549254234688762596120670396661124789539238413381449087258363729397256742789660787608933987261067064605103223905388134475569028118154097717464844887056692296678837338768052098514722503295745766005995812624376840149166239525335095133336844717486665092020772604334413250749514784572628599004843278748481115146395083851257382126429702396953330219845888521544094081084659988643812734946086080355774620686154056818776297983866017483909581965164659943898426152980616711312023399626809762065875920262159785241034592924200048454988929894100371143953051115164420944196341493484842326506349302604860074791169540755620412325044986485500983328699911419787241200382543548361896569177339218003873394808854141172941805669786096712882048585848280046877628880723926177421765557441217243837068423180226225813735512470167009133317324627644170119897741603840898487791650667672471677043670636474900353494211657083610742751593968137106569101793886794919560893891521274420469002225674182150366329027801893299290115215212836237631578647939874969126689994454301938566689520659429805959543838463046309871369060593095639775754202867845404558294487987037123902819513657979576401472711827418497973541176932678058298625673123423081330034377356771332086777274494717368950036393153945027092757905488435591502146403782388810454966565916360012165476356212651430171352567668963716057119196186965397725488868188389660268994192769647431933788311375941475552659649113465848223481798943561087844895871456072875040528341562318206905920314044894540445696514203863565298436271413877207079474828410806348325723802710904334750612427525895883729176892177039041050322204373862914464636934119263330049812675795674158929160057820953553405350164631880343474520034489252181826725109822268484575228523144583653377859988816834146148800017248016620411434630136420770145770945804211667696044680078996910894235898356486328342257416667161853133716684643986329685723630206672923171541685306043121796314393011090691131297776361662374537036821847747283074705840221572161099210337350981279431897266200628847770874924502312338311470301643644924662162060958196753171636119131851834793918100749798351886716256276129709904963774364345394089897459825614099493704753965032855791124307329017342666188511969803340486021189211136329021081598983721721616666800144137013866365648224439532167699462813669282546658003559254199591370622779964464047596977113517936729892924154582358963215643373492100201025674588203408603108183756346639212662299741465219127069897209322876813850707571851878137253309570809807099629257865836756232682531977828300234650204147323893904519210477307019633829217125144548820650506276380889975123449233316587175306599530537304638348687224112972444839080578402394071478758324194615088052082858328539569747636183670631369500551209371441795561407165902404915826702082507177071392403195731534812001751444346610751384102441631874143905463973914644290345181041619821883091649040541844947991060890525101301677186848694057816940151883620810027351391194089293452556911628705826115539405068030840765860354024799158457619784122833883792611815109263587002210237402563471983918042816774505817281440068934619653665806959851723365648304285287289053512286385714138388046531306559548271828934502073865770387090266732280819622153622969137318859221125814624052420693468150119698809835600810801810526177660151840891130847439812800849081432982992648382933743429771775106454748022084207068465343238624947715743439059149260849418513225040960121449943978179729572807924627078045269868548150108181506313452888057257083247638174641238201464066791757106497955452811158861884341545178263169481060583052843029470446897666517152033372436791873371695267932297549372622102167312740993789320637600205333540869463737561535577325750841267571301039732832281373119218325610710900187798025645453476690736669772533350019025541081434433862728303921322639738746046756473022557166487762555223097329580381800787496125928840019753059155606961191110777504772331797052031506537624827716913886272111294819655318162903938125692498696378798702593748890980785434458506643898849019245622912955191189692170470384925425860493822172907997414329773011507956062368270258361696790161520720391698452963505899994389199411931398986643342139617505059498396199348987160027068948778073954530504095565168148242172699591026265269054074841751091573240232638436838234366901567552133892403346715910689600613097178671125931579452677091396466442901684973492114398658718237737273935818667199891577754781336321026770633843219101517874190822208980314155948016648173279004571442007355031615512459738494300053583589378585241205759743395968712672057188275843866094376020249877697359095663954354656641656060851693165632083109168578861878469952582236447581987257961922389216339007436841052995554093360837658436693150598190688805109250911913220776076017811255296142442995937111338701331072921954529365431484683967903860415455297557357788984757333856144721529180728141442459918996390871846085540528992729392043105422904022105586995392960936328169996019208474331711599944254412227020494998769601444359221379286876546581337857597711722292478336330723960903258887780620487863316425839680965927756419620290630060578888777798337363991513630142711011106974621876793465216629575728436327495633575960820961476589961946263579055142465278220340599512951152714390830538636009951914371830802033170832108608346523205949353473114510275068291138249715432687615789688357904107560439963066435333108231513327467137489321408691331064442041539507570483051245174171939321331713770617642186732759298549113511041208623513898403787543320922680410016107159528047680117949109255501910175616922836264615633531153398392577854936177786345150866946767271468350177987165053708773047437688117748677746497324456752704715451525969106801800698418269805616554228725073827007686206031433669876580792265094906888584320249374862996076093860081084354675774162557269929316654268302237358056250340681280014453002504746870535973673446046607020970270940571443142165269963391034152652512782503454307774759663735527893665788466128979124149996888305382112586666370755375167908960073497018143925005324787845808627908778831165513769995824592516057385770621614200109051914316904148175371163715120642770484687050996642413890921146165262364797596801354286784232244610076643796462140947178493042416498451389614614510039519449866977940582054850223780314192447020369887819977216747727939926028678023184325342665635208750704247159830403267085658323835409050602285302867836933506358939112374650965523681933990925514099643181075943581527159595766009196083100761855993957513673111299622408553980023291354275492995303712278738325814253217654235181418524543948719780471228222925843246351951642115850819117763169419964069904514358931032134784223389024086482245999221341212402744711337376510922725976965940568146947509698033246100504468754024981001444530810463903089928935223237421561104594723915261976605395247380188606419135510958162072409723533310830946522206657634282508511486862676929578824447575042474426064783715813429279032474931121699962633122670107685759948363107093573572769249493674463539746595183604294767320759828481193624362443460437034197987914184940208013773917037899083787681293044728544005611989464022336050514742020026369973706745387849573282297485640165548696292567255716778069702756023869728750930574333815302153248915417112336783120777923938622362357533242036082423126406708576592867992884300046941419368183256086216571247230309532610797655223353422130916713068340200140238093406220846022728288237084663228740022380057757123845407817475092502249826523388321706284076130030433573059077727820568481296434569891106941789771598277497941103914808863855200887757330059457946534636009935003117542429213810315559755662161104243129291571897674222396180093372857056407681175499027816300989885950137055277016334714439395593663986958561211680593169096833291238943159422499620118266410035720994771162220959149438003482310671194602304572980947275755809644390033272125850314181331329071993034711812126822317457521695478929372971897194358336978419809730118427542149828723117224859286159595621368804358989545971193076023251201698592358613642131980658846811115089258862190854495905276960691563717617638699448512862141654344100716023500302320523317442683915822018727193664698192150881108957681946949127877450408196082193602895963905360872058065419374022452048919536735644717105790172591511620471100987240850786960742827692839321869758416488860011877322526245186768639460390802248407631160352434156175042068413795746101255846882868497138090140630740481024481951547250326775816401267068083889564176952802947668431165525225941395694565214688422955475603138292494612028125886932387931061310072290431869651656166183866510552000376332331785511163378825556755488596958136814579258108394995064495313882888073132583803221831795016673066850191023104566283522595574906537108043670880052960289393673201490710823090806184074075507766512264622216889276435139680184060319700856341473667286811159458152592599082462066152565272256448877634452154403493360260131895814109056214480608958079283229240311648508249226045737096295327489774358518303117998181449055059901244566017754650899817192625301114010824813001949985717748748124428605129087712186338907727144128854465957925968649860172695281677884737124900492348436117421308758463371039088455641330409914184142163410067724603814297938916620764833465094652182793132130146398607538069680283781570757410356493039971872195608361897359073986438843322124401096067670252174331671876149568691957038513402062292713838192905068924106342594753025293611173642851365143097934127557813321589823498146628134727382692788113255328033057024233841129644190235615618700746821244616224026495492320524399134817233894375162854442722367991459664605558323786270364238659327697212771874891452388330118411414407394490948927518440833100019059073024573459944742214157554307013726849149789766487579913609567416362494894002935613331563045981337569151048574854021393007841182717318107690699517007742284607878195283562753798294799267241536967449983883054212045385162395329407588106705386277811436280062943824718029710472993809725461729690835559787571589148909525026133752018009002307194478022232484685261477501572866370650794274772619087641608568936676813204790934059983308862988370613202639083328011698884835220379541518925917112347266660041077165254384661669381931722798009325159954690384544002705893030642509151562740123083249834308369743997672062880913045723752549799118895208432010110448261600882650732822581103063281074626619467135594953036823864795804511544109720830137514203430562836044784202069668495795284953088710250870482419932774158121325423707216224400166919006418802639214085198426595009299926161583268460855213783883780846452999302927537899776746809739628080390737877616628827780663083683103049897068938390598085013492226748394486069201548161088481778236313240193629204285378096771141487493216303435432609001574792212981156372329044964645366052045680019833238499579780266627376486734133961657031307383727168830430984789345801004863007788778109621909849063718997952126646351128969585721420083023576998444477561836575017714834832801260889043881972355796536456986216793603492031310591116486350311094769055309522695109528866846424077046167817663412815218062188262521153625898447179322870009654066404480734061348201459805806998386623909397664785141888641365073145212385670989222612256291427201584443623539178372562741042876528925623180843510879784360067505899529363723583689209519664980002819529797583275389203375568192982684549523772221619733543246260926218057178120840554479951278530918177957259978164907601225966894223091909064419486908250107062408228352671433761268895092850562421855834688863678616268549287234897719126598041606860181055555707966326679577694642009634987420053400816317027741325798063476720958419103565802210870489640179708200540694342524796664999096494659988618766514151222263249249965774413924966742865548228949634118811869632500941287101765740839400830533830602575759030366221188012812297429691688451390593129783272951104850787990451781979126419955627457268985190375290258179136827191412499832006637255366673366299430157540799824623565079832138540773348332625366389116779432389324576459330653817512311654749327799814961399206372714197414532392093820151852397126098171990812730374615428866298683765516481966688644078430116839532621236179670875102019960620640953025532451898708131607802320671295882302651609137033100437083866768396486170579691269615372880591537158679175851016379639420882785513462724048406869798560220042043347278874850064654607833867029292114461639981808618657233351562745324306807271860399968551237323786040879847112134313122877422977766999289680721308094747950907306133836302647861239502085317306429799041218111387649789826300957143232942549715338263826158601301764200975458876037097242642509719502788148314271340934528731761449710090795486690923169608422004686269615856415954451652877074685416008935321425757105795664728000451240538821470524629028633431410958452735114452102341619037213833321583650204983136817760445290125297209868113381487245357261123085195870499034251182638278394656250505623565048592953136565105614055071785361755062963790743580653106439313530936014745644116295893895444612981662283464522549813303400044633940679971451925772056124747348962111122114509562167722884254513436483825085550156405597861983254815265188857586757868451059944771848530678619979068879459503891754048400516126580742563705631944033856173101147647732167812129341277851112864711297807741406748836470370333028006241266607859477955533721902968295171772449030846144534152323674834835781384082749881431100000348853954432840848058788005657589083763521453087262043853359399315485454961342723270387589048733934097948503265430162017825321408284458911546533917678122474883942479009182230884551609356628736452986671024986357115902940023333839625080696655594371071353653925052844296207348933681862031959980113591214958367956860738420045435907473231083706440540188821263347185084589284880872924087069215310114948132334643034665905992486656081878766286768620702199863691993336714657339283177296979126936567314747877261167583252818151872428499522801304990103500819094026661849273205074373826443166525401786726487650443977704664544041775267787251737932769164633816003233262403345136114972627439701377769065191519660654045286988034881727319111296509190779341613977965116763768592211380241213246980558375867044550609345514090016783794391054802375153955155763257694485409470182214572265448569599926716820296014689934002377615342579534725652857696331587395849939563774812800542528309053017770467376702207261697136240937427056603874370376601155671440653167152746981753911329196818939121801970384878742769067872079839796253492072560591286154636598978927942526709595717714821014543128469454308322261133817886038312920674832068266015139417389444894986494882148063937896412080730578029645800965406887487189101820853504874229946531185082789689552816541413699096941480319039356748642531640737186837124788933590934520879551463441282886921412304203656288087657104909529131574997571201930120246128568229274818691812695152374033906669398854045412655488393128935568891379025901582768639687161857108562463369295335483257738172870845161268426797584361715466674180266457494379922598899377074008677997804650356237644369594468749877167415462717525822041143361679410146132562908088210793402147889995180532003981852737144858182691429949422999257064764344868199928423245932671851281216748397528000730190330824246400642118314744585340647127566588431156231993356720403382481137412197801816977186648352581123077592246450020795749146838610417636772235293857019786459524921782858560147135697807061466448810208894538949452137796551557221156790232521168331261703707101237784419231691713919056677924410378890229119604810305421375036854518322216162002990399355049685767256016855818055401678927126078604570381256576098604546891213598929994345149580059734098098517930801558747630245902448893322594200276990381229807857777174834781944784025089729293688387783164813570155337197783829499932112672893812175151803979980378833049454917432038164989366766273552884147152160660043120022450334439135882857974541372009777811641110502618847171948154649754266252107523128515235254719163291839923876537462547903452808490791038826244001944960258459715349373221389576505883202109342829040049595743151566229579209017828366869640181921721432698822387932820411318728879262420822941751444903824282975565667899274731405765909680520114765207328998802358815299405847954448700143539851826346963216694608713782852792399686876786911114403344247649232217389802646936786728134747018448205975944421130056671617116308936300638605507424539449057712834222644407188709043809043691224904498935473004763993940858201608459355991457474607909544407314518781755407683976411431807344478137153611653979841342690923125536211397962751696118807919623727019722060695378013703166009679174585412027183867606733222743108614375375319024687808979572302711846239653568556161383791066675683553135347800139651978708092115275222981249110042512160514288593799988774011298651619035427621776638658920939022887473884744091653947627548573697304696259456048560221109837044029676672960316067114861093439350574841735159070815078824453429505725954476105957508594201092454079339258619002637549481713039503797610679705986081814642890114388305141787475444259189648330273823069965732386607142269797197072158550372543717791753627027203394750546959804291265791501740602022472912219078173889012624446039266681325655592934209411617826679084899774825988359637110431982571245231496390667014346107899708478921423311470268854116084875142621400779472252365709011500270488229126916215142401830800131635351584472616436220191902713430065920081603627442480649880716213039034394945903832746786412485618520258273025870322612443554189423923806375112019239580452653866566162486078012341932232259065763963057890769337041260202104673114519534328265624140502831175139555364324238238612529885906878002668587296696997790409295300768008101909971891243762109952548611430480666434878241857654378970039697545589569019475030123821641344356931769596602191679518225531997667706640615500670662110685302164759836227158218685684713323847410310699034730136161262721946412274257698781798789965920667292964203111167305005320001924551734667971897354198907149467382385905408007329216875646808618564757094538217374626994971421899914865103380657785140104690626837949799806161021844682393484025376840534692167366961647731453192601307031190333754699715597615095097558143079310844283819548482184371321779166461878279588741069178513879550377786227129549174798237708212091502662076409449702689958936367936188791762245075888657921173669912492608463630113507879244473038590412678472241335205054288410619411199087657544621641213506180380439607506483927171774967296932406305035516836847039398794245784657006796994339117898346756695767502385810115016670057382933798007683876129699971463957614789597388288743441371337135673800243193106800785910855255279143972051977729601465508014260542272629029092134749567753512580023311739987053306734734558730072232508345107745866828440191876829974328287058205224542472643445853601066449998731564460997178824940258604169960515635388709130367249669475440521584947813766752856223962978428102395412678080520176264286739862711867471773430555909502118921156823445419135847371213962470410656746518604278710670001839083020146620369562922169011230221526241434937056056303773443979726093267888376169516172055739332871407005392413360472504153114881820460847870254720636567616151311489558114281560695359346408244426195238540219962570584664131545137167056591776315964476278001709234762440938197674272503374441647060587556169326268894855395592503946660309267744285258367710738918182476266001505152686753759181927163756862531495813331048610825114729021718447501847773420253804222205613989589536788562030755510677162507709044133382976707467272006322476421315843651422933699816263580106029233019856713960184981605646197517021202113498355428900369401479433623386461187978478255606382008392423216340950728940536554066703548905223848139658433622379120868132771127278675297888943381721101885806863502561630725248367483802573121259460478476187794415615449144772000217080307190835919277660014547604077841006051321848180475623238544045459787684892796441380047019698749825271585145180515537048294933520312801510772355450315834850866804678044577895779104890831061300929921020591352826799830117696281773956592990422913653660868695247953001027925381378274450334123969147373934139178056251785297020767328196562842787450647243523474775903869298973797730020166797783531282955599466904135516861533974061015737361308753666632088624583259300978175714590951706532693889887821935366436844133993595582577301532858287336993854352826454284406959809480448612944576718293557978442108026677589178784053886810911537327116852545008206299460334208349367515254494081835207146159531823029109927292135175261957132395935689618874081047453249119177761448855009368377218556207462144296796491083167907902867330030297499173338220114629243881582380108168639566888502954776473337923455429732570492188888606531962704565185682980118390449418767621646666646145424994631928535205536801831339581806588717300082649316240133869429264222999276841119552192800676339012557926323142096080147290258139786809014016675364202738430657082639641265939350771540174635411733296250680409716661007944140964147261969677219596081029009565833136216748224460133723390701599994736308997070196847549042986206174149270960590961853577795406204180380924130890323906559504084018622480824008774031201754855926401985484181614956739826873859548505243121834436691629323924577997081615558240821263034882610112192937353058009589307986590647523200768421494369384875495287818931353817028516938375786941039207493073479939069617487979163752680218315592448658915810319278674673253704573619872728093901560711226345660402282537927229161716760376638213349358197836671262539063506804738478429186913042512793205327747913254980670611247635622325412054212079813587871057649833145577501015016511060401452155044610217967065603626987319471461171880664816913902535429740611610768070576120289952073203901505667042339722216754741235770144042052059019162236310286965062952807889715901332187423893373996763984866882103797988832320907850723310010538538048611739852567956856257512002926265342591037860686968508731899410338705104424199515779844497033360341195110247958636759053859781447402339388975672912600742750687751245164144848003412306706633020906632093020738929592541810934784447003419454114354054799313112190652684514128306704633066207080826800795092626172196168443840692597747761176171130772189663317685607573077329402142726076471166824768786659416619297928727777322066401273579153753443035393854243735026360157499786816502606597218838788043232284611386912672342440520395311817336968289128250739454875500722763156472295377731346519044564954637559502421146742860844958309679780745271302398252733503523311583026258071793953129905366523697200407541151686102564667199884625301988231939925679608906625575855560933982605869805910685533629189938158296169463081043968404918888204279251044432431085546967499610716516128564411263396290240693803317588955987841400589639769359266483179364266603017983008442252995708601480198537859735131487619375226067885465245755328373535873244168924749583387021659769251637941534917872618532809889513310576282570729134564207321811025978623469242420436538108205218349497970341112936612311439399699231455514444278949953569713001787572257724350007690421242356638664355429775787231050754278308809744689538541991319309686848536793526175099202073774391135761968070696104292999697157846630168626515883781429171956065191874883003470334995695113363976413324389232715983664941306250966277946432688397557731337273087664287447467441321531241278173274959301250264177858336551842216909257531458947160294119711561860616629066574484600748025858707007072062443354871041079288574881598238070603043576320401306303550461369199554133641352050765970422612057640591577395348630919943094244179064561051392186796751507270986362570409308858937085397806623171821092106514648093914962866653249411702875534246635155838363992052705817526901630918296602776111279273429777967022203442500652213356574430911463600872790524317222849626178374777869201350185924391457559910574359242401632732914399550288973417911007863624543088834613638445612758853395641359276609371355742294540144249419056275620310138600885295833348239782661913819896583054214813983766699735067069630588814101157352662590803850688002453696097715530992875050194141240569122322115106870372931734611095055403498984267875127266427502669349522603975770775875905910184846383619725426011773283875143534747669248107129467640996307347996640810217835545718289116800970143440634194347843876832791728167256612129395617516425309341526654836736304659987519037545366591523163865523159125901469183563883309750544910711494020282532968190103428590670108516990954539927187064091551481611388081246852870023495301444147490162124780447043506374966089317492190654275087328628355156846024513659545209910863683029181790743115789803554294337666077460946978309834887476268477966970057189786621060260005755117714301230346976602635469514738872474728893993476522352959659114620892924541522023213816873152175768459062201304064722957283933748736648049670983878126797683125994300945616703384305163988740103031455072763062042161812463545641892583002446975916469343342615092736978316777253077468251201914288199260873356784522120087722092648798016694745456813286915905348657813957930317958189765735898385598942569065679696721428206161026706420773520688703059992674054600009761728548638858332186042810287029609862294929541093147244595179484380216590498601744803611603671816082054683903029717165933667864453770030467822068017674043239230462939524428779888169303024904325933921118041185210718174300567534186527518117125298349738427005677240510768349731793007892927570712760795523730096515416593395735552586139481921016192344305706814178137721146865528506379696718414446055684610409638690220948335574278314653220194935963907759044072585765357959308189944138637980657131792165710374597304141248975325999615729752905381700469569780218504972212312631814443384025201182409917357179740162538305727042576043324838479603341506044413499043280613984048068895750240956019612958029886710538362970849941666140301623012542083630105492437297901151688697580613562514822516397954146764615851566469513160399428493798245773648508301449612272723601848118881180486446008334312521752170339167372906246111616156150317407949711380811105431404255572757542710989143888625591126756855860298781056824821524710273977292351636050923566840446385638062486752277044045130502437506977128662101015411999766925987368258454544394938283359359652023636843272311387647494284636381869796444973723525721164338166795465561684438991494133902108923122319975971590242667429300072553956683173199296176811592513160348886621185488190185337131188976318621102553295967226092415216703227247924484585521638617309194145878097765975715592704749294477005316591395293263048388053631291468623316672597355816334710861371047305782265351202327743493595838577534802095054348399096049050825172968600756913093732831686366493020713330814129414828041851598873399980729901094803616218108803108109590536006640760590940366983835051460989526514651977759929213724346115871210704997732933182223366805937070635418086786772837893253127665550483717666761661815071947211512756276173232500439580048183044354425830658239538615721145288548763281414508633184828729611565195900880973732719841890074733221511876198912034095836873660883741286561306910598515210751693809926646528778030186599642720705591021700337989644123373909757431181543614725563447021585209410049502865805507298875597994127842754326567659721052295723319543900265234905530456062908075564283559667855198257239926087080589421074384504645454837752591390968227460134041317676897310503798929655409011780310108470667402008523222076734364915861491365240127741884680946464315645684463890225437667826808207813143654721137863303967197784252338721865106636800429822178093168770221869367340143338773979202142238000188215167469864861413946369886344784302230521133771703630433071366472162919734893786610190381378510766431303133505711850179226142839093190214002946652149833610458672623986869518944887458087263645359366116491451966782199830034188497850144846293909637520680356604497889076097230800669442918045735596236131583590311481863914288730377662220391096571843519399832556337085526879619134564598752721544434636314275275570129943749006474572438456748311631050946803061106265016741135164878631292074647359483986493630428764277191100854760333938447928585486806572150911262009202935704741982855265890099864128172214531602763543311385973483581849719740243447267585442147599931401234531401486303679748256239593104939532627470751551998883781196651868557025513616101645923925532639190167245317969691976940375698609512914353079088441245133992171842279750396313124411179591016588261294934353866324115120801888653178519298507748276238212250030184696507372602531188892594722432743922371859059194942219180256207550195938661670748084259724780938871459469874334651221288750594071839496337768742257881327640734409632476156548923566467921237728387643615118957125655675264703976830269634004434269106198734482782153521379248113406536474285216148373256575885648618944001701860239198529884360320019945664484846732750538406459103630625564516499358958352416289982460285428513881780081122430044554110756100831454737782530086550631433240444189179436932675953340418656459036331232062066577002526991364536386492476926260560185291816768992833087475619369642582055251758459113023598953071001225256090812407472859418617509662671608216975318970476812379682314135525589278843296564295655921974481953337513104341991463726768790981387939509144712895425645380892518273006455255418359166736369503552085548221818084731924583410501204829095434773902735003278008336221933258382993504390851794531237293928940520405154382628872687148609489014084093705745819310004569939697201183430642541389308624211050905736933314658227895776265234817334956432330390188522470647384544857164524730272977172564736798324317471915588570455166510747754732976396935918623738730352902129718494939240620748430254589265708481202078372524287328083345534217611592201247402250367283946895931104303872018278442963746689529693270700626393195794987520751376329710767040511415460346634848229658330238916849686412462553061684599205240529657631312846253514290316982678494019508470787293155253102563347684966450490833468127673339487185731946823547406472270753435967350848954016502949831044921486428765405593185460020155187898575887411557163894419082523696811105255806575136938684048550567141746637040519060932240809720139366558963434688136285830689464427040207611081569337878378213709300646014753538209781889044666854681963266342717895166050575131310223183312429215677400708097234136129273106497478935746115901527408128156507146829826041184662747682882831398512486154796627424698521570381578806055950780519779301982900253964126992504851013494715457102432770370998430302707952916466583708608593740536712075219020657111366814963289731882336286697810895852568026040235508658671412580732524258999369235552005344595434838486777474789106952261094714734450555754053098513178085598909997080217047727819930518049247921602486563865096116478558063723866182364054882296132289130031003373532681331530692217772281939841870332464078767547963203265354056780791223931426855699185573386015991015783546449863469625724090831754648847697071855907859428937182393631414111280146208913631192991965512398036523451889595482993878568337335119006600339112378517975486414429737934333989997187244690327729805715064393820770576841605580665270346241455840644263651970296450217130995551799345496336262380217148491633977687899431683162778837916945002956046241854863355233391227257615016519856678021951606148030153451929071166427260692641339788593806112106862365272432734111709602865860605554398588788685743781996126081436015288174280458074868059765869728344805971621578873737818979702254710823788811361038922963977307395481578481288159604224033108429794012707099577084613395967888444484588389216756076503723977856932377225715085456846829042383119608811172289741261625597407168494406120412534406168794650232700591881236413731531390652292055255881397094683661783951964876045242963666425481666689077855896214799717533785151162182070106961098311261867725282369029936423907712032391099493342646846756112009167261347570806004511299800446637399627244289526457435513504285108226860356519086452148860342235861168743865694080582694204433214865538967211986971985918666534125635019798341750420117897284322295941302852815072669974003941335082455728253127894455914697890351441462021295799570841216347218613888521561450868625468979088459703140719961375162994374876767212246590654382214759195854124170592666708889461687293018832091812106111573583981977461743316527273046838719468414634142687559629932314202789966482320483267670994098430418894231829328735177303517504805603766594847517252243095771653682079469202146338786008959605541708985040138220697445348622902069519125742058930871128130666227877615978392539573834397670109717950042298728199421253164151406906957068729802481559360592444232226294110544411604814315357554891942679329753024456805259686780056964328551496405354609325195398081104729682333064518794570154356476532824105600002377880737181018568148273350965914127305297726896085999837515017371052763944265526913724406807216769745289867942940633642866946621992056712081731237120365946606641887973169508620181136284635840723114118885610616807780014245928965191124226388728020142132823840533332962645921577682319591597729441784241402836472844681125651917707456516382756721784900635893603623506508083507786908830291753454739504105583779681875731890887528884090369030461354036443855044787702083086142090938212015462471636799026524325800982886618394092414251310233184379955548880997848564754021595435665510022427032526170341550884202808846602573688714730687652356351238577672095371681663905920754127357771133017649199538475416685902068078564676951980618609408149099595641899682882536252577402315469630415254120982015752663554713226138665942250544732026816615404246645630557115657249975026423290361312047676600650916396278792753828097079746025641290248441374496319253121578806398019202928474973698377947780090297857860970459990390487301985472497693744123795963075180718627061237272342041969691478415320282465192633074400644095974626146082839203100115104321704589629631107131383575118627247259874069823397961722158849166738665110204297462086461978219978599945979702034594883218587473662901427049022075235128381924845268436586324103713734556360337461442564168059542976634602400277496218191404859385492824304911506818665787804511899207246021614886471566880934227907859620737244925938497246976976039775932532106894491352572684541689426229428299336797028592801174152964310528715311981544331888363346594928694816694807746264689550213147569711758196901847050630822393331019832271977458901527587918992500063212774854166654186554893643757564462260410888307065607358010762547695921619102863068904827585027389305997886930847287566885651605934628058723658388298827749016354058507896424927990944532090454208894800161959515281712314588411129207299625592584588912640704486575983650883730533465285312539943009968176031652824757769883824341023305456979409540524280427034266002318086479562609275107025149783324953119257620738536850848858775016436368652908936481492231512629090403128052352558071365142116198028547549748408859431711374738522294212333355692718646549244134280552482576811110805819314578588892933326744008496408451310880579700900340862484949470663091529532811451116288369737610435768126425266258186912361250602977108455427728234997889953564277957221824845722477423029295394405977075444546428005568732545978769158748221353564190347011526601586946468706951856056692510242078626251728043188710006111197581960601800702898466524397512468235972342802669214164211909790232042575637794680954220960852585125154470318761282604766268833830927719234247284734335898574314751518783425006884856820476577297403670717511520076406334959081326104410867674010014753216630349630524745759335500704044383645529081649642905943614729629018582638263249117980472891378303477019935770752534500476201664912133047021284147698808626943972146967917385706601886725994505243633537338793023880331989922905232022721282193977155397571205381254693170753009573838084247171618364976294484460157901914788215363587162865182568279115721066611993097604129714136773723152240344639842775735185812102536855359960059449501766573200398360961963247825140779547805718966795835771847039478369682059143242854048679584646443784684398512035945679163672132406520383412909515623534682346251555168247567899718960635143264906507674435315871448922032379989957684444114236213278765392242819538782605124702308271309771117545036718898248886555130288007059581709739905100194383456347894500270212324927940287742671788869153646109045677279655926953686574161492324334626085489845990917326323550322021620753250863111416891278696913677923292989742144855880246196603011902757642728123559874158240621077715694473605096604111632615099370376817952160547160470846401717929660408865923497066031098895676524578873523309961734301734280078303664007793429221797683324445603676326823323703165109030589461877236882247958106736569071050707981701200914131353270766500475327237059065714783382466503506870781840167029934811848317162683781180731287448859491135415544517756432633638049756352863151230353280827370393148238798104224865981040785203974122824881307717237627937632713873455006156824044436918620374206470852926363432172171669333292163815352879380687902320388428871861636447046301525502327335369376264914683941194801445079338729811267270679475765663096980987216243012656996165347283210959260575480094099839206962377185504779963579320347094718101069129712852816020024450941039552980841265822531944330559697867822221058828363844972225451308358834773340180326436208003745326152885146552817373884045579710567096813350210349926776201468554302937772166595199363257082433360510485091121222167315339621942305191376668541329759363263033447654898962534643313602708176866997821834363264193998172547263860769835772474877984004681857758959725847626479828010033760192378430086641698251238513614737868582857478294438112086073833426555592449017457477434559517563705273939419727127286989236653932228958024581616709709781005762578300571908839656453852439526386037940777473160719418486790360132173124130231185152513113569442135299441520693657955877132588114385610794363423161598108503817421027913800150217689799730486283354398292016674859786668163914057823104265929745837636902519087136476631194087605398880655751875910037941628511188703302842727315419155764637627860298801014221272145482436741264959833825430177142902197057484859642041363915418506199202569332814351147920060174783906075732193354667357540067335669837821086872096457562230624100551916264872094293953185638875495150355391529207487664896422382906768858838648109014489259835241972311610526912428374838283009266077030963833198682281239932031031483233068819016658869793116545466257104020520577696199765088930855193156844603149503661793966978876224546875338250298101567036093645256764559464377819561810995660195251052921050923692983328881567544385376236589892786620936621277225962362283024647184486555466868845805736644080830672022997053200189988587013054168783130372815477433391721270230664049003675528209880503047996251178866533480708618068942614789356858750412494910268511006886605303035032427898537013251209666150733045902336358833972640530109990407625091297359017402529300740353053984310693796456079406919379671726522712342814877403715918347753635944491892788542124778695787789289776815679056586691059034934003515327869317246817370559737852161637507128010356081685803978742990280104791998222673406181227421888703575985683347293662816957364289230938876535961405356684094233053441254684425045373207065574445007352172724566139667197180656372976303101761853180643893034033102134469440938802657305199310665568933348275259509121227336004852047259967670849990447343462247948168444017508501874637583488955877256224303533040476472245296004760870313454688539915481118431920166101897033060394459276625006411694918966432343113842360814534108994156138355654746519237720405834238884907811633852956539005374852759009174080194714667691353211199326185778139117993205051293045775109545010192791980772725430012360823585144512061171372146091057735489833940065438505200415644883315069439737813658066148688871670298671522717726451568736352194435346810720811716889746623195392595647837056305186099544732803535541040147993932975691421300334788354280245237111398861476934221328394725630180013932033814603297918467623584849885526182426455616529632174613456175975943158574447973748604368458273577939355201701157408444247169412990872597533437181461886634911574739519981389788656049073085980946866696175286319154948722429490819054156194661237419759095874476837054901603956002528912498407938878924695099253336253191911624777626415013825000297947996231410459160653486338067516890946613948188113190266224655907859383388356061044087569110808252665934125962260558323862060734616029098324622997104340511164627297756273069789978510137545649843920633949984605380976193079199143233990999058113035271740746972784382337578503938998672390365322053965564328058701303030639985128666712067819043848398564532182052007494064884190605323029207227605337382348741761519328795800108881039560572285196951351174926450015969007127349180331936316000605190289349569837055995973552286176375682610597892008090246468168235609471317902041732226608009937472016714695357010562274135004760515822564261179071946156557587429655703445944783609534009988529558378799195777026395161053891841696228121892998853624544887397064051651624130465468650648837044896775721497695063178165425360583844603472881917282716968772143589285384557257596771750105106189022503441658152089795331531320369929048417620446922867798366027471308013910402874450035703767171306401015536477730761970306432143964967340994942890373914057171695509254678711332341344780224285221314510505027490732201069099347691119140151313541707295514548439555750523786272494218432202205777384173261566082332404972673798508745082411380066654606322711738389967267436869740626590612925505031734319735833552996486219616302848830833726500392441589864205866460559840130721827771099078694020048261811706751180338284410299064064843001780230922788812636213640607187800270279733434634614904955051153857886084493228507757034128291918227441508656658369941573683615515721188275314770290032570130998150625583920795606763133310786086143354952970307828786957348231105800518227803845924156972701409279884874624511781861893422961889799147522893580811212422157943021055368046566451191485722133058423860521275698973262646846154455785655283730158518722598423758625180973943049185592769428620017520168409289183134497218518376583100751122460914913979528782742760878690007729184602864477778862449674768086330676749891054692479840685395869810384723246518329848971863297050332444354066887330457876434389192734117777332626820955022880828602915463915965430984958892087694550194814968575552569243947009655279060457846738987385843530167713514582165517116165467979933143946122193135545266002379653314190455648164124210394338272411824069412507172737883975466523345602209606181266082744900777492979123775742612680130860255408178540330532446620091517397948622656767591020429638210374914962785334315193007907171754295102358283059182107219409218795936237683161738695498133564126478760336146176284296748029426662004727261132154039922666303487895149769341023584500641719115321172986631485764826769257036072870188305470717493809350190662195278467466881077553642619982723863741207011413785166439521920751085985563516642490314975202013030298482196716680181623583309819685978195759807386831860985334425108948461505837921146967834211233613928182220817371253137384284897761899524168367450840663929848599227737320663662479690154992012227003912488392881851011304120757929313256588693197321203653257965737619764056322789719317056757179657630597734821291057229370941842268134458667892005221362471207078034986566916969201909550875598864132050275794573132139520445553905101218047156392869749671915022041428487498391391657210947343184746020673854139027364277415059394858735759390760157359444803573362247155499323731886578736603585217464323670480178636379262522050752383888252906968178255889017828456181383093963314948289786754151583474404796977200399764660451147386159286281046014622329095813817806203451573719506007523677557419085365254474643523721162595581622599096738053961591263021764907981405651145444554501350276291714444144262279912228712561853025924897549467897781405850837375854120232793975489115999896167605467235589829949146161767098202849954668848032924831961599851383158347207044292788600261364239717413343787933242668895986691261165537068339601730153442114037935699408764669687069028003069608957941471019525159838508393974994123046770055315051491271555550646684172481412091561546143290050004476523999376265789288296872993685886481665126560338365371560522398185624218512979836833463546539098549854746566423011554285965231139563688908554022529223129091572619902856246212824768956419577928976133241041015013615971096265324526408378331013213424589722648906310443911569738577455872053380135511864587950917399450469082463033837660479713584215701270755053818420956397615257257330355674038083275866823342789439210726503050178616872452427120731492159154217824295312488844718784178790713410069676191660671894539275418807755391340715989186250343193848274518548597076636870299885044031620186728276426318506677778984072333269085872620348889478240521501449805023111074580322257475373890227264221151980333071660454226190503159680354745117888171837857029655292921623881093651691054293327205942765052108249321180118658866557401265848259465942263189371592705619354860389747510115576436869498970633201816150674310018609344012918183815788644974214249054279910876787183511086381095154237115429029617227310335957590410020809864450558870752700682507443830388711077088866437836322313067494447714332705938651524983256219729306371773935124700516707783678516313095714584572193758317121075021412690451218358357938855449551441586834798318387584010227267615538578234998771670993636665806513978340632202315568979802256769160232811386222569589170734347496306033749432706987485823011191009031782240216700105262655167231903338431769301118920581326344052994905437165880043220215178163496623727788329021535985391255801716236766861713629081570185746806207601974881360129581006302210720819577633966632294698627060278406901391477913620677825244010075958775429077291990669225967711330720287347512077309867596923850681931761119697140461605789072031028633797124278597564529433900161794271072865214097664160887981270356993353274798230094886555597885157076041785080182403129901952019616387504822694250154745008828508474932058211698401687939184014782519330097932769835603210940661033865409560018045191303516280200312770475469445304813063519863335468090617962851443374276960678140716299322646335527680097456711822035530062796772850646478013814176327672284560984326918254573237969351962587521745871496759823992808159384142869642625008758546597477948159330776266513812853819154501604651348874545039773508359925265470904410049266767394553700909936324689178064538987388685565627770267584320442086799844283466114328499375333979979762426364676742829915555118458313939513958411238993447318038200067086189699634633883159518117389656184161886695040628758787228865489305183774776237694542444920630667571512574647402000678911121462500294200101274612342612740796043984869253527736519017744574453837149705585028077048653509360005391731410415605563313332923516660638298520815707133450350204593924457572551794508073173549026365797883471623220668221513108462123682380517557031814474297153955323313910383244206395127126319277176026523533072359237066422847450300192850317299159068533212713751037610139456450515517128258575992285686281479164284520730270487385096313449803682655831650010712096637418847089856478980714093639358820276344796160318442056120030727784704268399833881290597214403421000989455030167228350742968658322698335647971372444320268375675269465773341274551863152173608815905305652649297578446383441567027885084069552001653892902324440866528044688774298180890453481954875427187039442254248128988815869619821154888593781377335980796071297245633160919957525246620668326301650330156781316468701396557052248839256897102213229640295011413645661694972835351949965279523833139536940188763309947153243147367301746499234107131486533201427180360396759586747420377996370903979190286307215246424089380914244949623259292521031137139811609130850964621964344310344589358824620791121138432818864840160514018180174298862277643106925655666177591591983657476001554330206353743470474521157498390385956559193685855578887581749892517734603696324629730560280071361680358534653414865641101845394563046614610818847247767981439089899570305224089287792010984610731797970877550365748719056859319348293555686144447179795843014511353144430827152889815422194346233048193023500828615760243362714238336753082863153681633782139208610938336490748820593873151499757775727660379428323499547562600098318115786470356740791988263740005471918335843749816358751490338944165220260902077658420629715495958859768468374075389309111883541993969932230821542721393316390125407505327082760266101388412978424728623991913064383467685456365758835434131282786131293331367637478792039605797101943369653383229325844220939274298762555670807710524924265331362933717730454909684379994778007719176259439728928068506309593988529618219777467072258177269213014338720004485716585693556068981321106248344939311792769963754010651532898899851390791534174653098596596531581555216124221667968835060866056192853880207494165303416766210392132158681719652853811214019105837938349444579754387853593805440018349170401156712006390493416323307826758583922355517306235835706646608799870266606486379290902770474676822838102727159868972169156583122867701232266170123813533509066679067633510064618295580889507381316142382176023724251794927631534441018976376715718636800550596941927102757712824305037698989475571577705964859468533084858424512950006969885462906945417473565665794669714747899073721492877302115312817993450669072099954508164800429743545593651840547053825601837063721803834947805384152772985445212613813992940491964748689066948147232440888488234919228661142713449000500432276978972118216174506416806944138179514300492995037217960076754611697416274929438594855911283795666460073615862600939218490535409815660981410560130172746073564507262578002139606772913776897176274753699609120252933196378966485189448507865678812565638863374608290561263840006593470861778701230301843570694131482283595803493286203058022425536230840580299466446705434677647403357452361196500946120708329365183072668475137681819267118158373062434298384124384550407339862511870816867561457559044694194424362663584788951739001741626288193916847637674444915589924627712551359484436308257667293177347995116563432438868649725861953951532832040108195269824175303062974170823159990516588517376520106909779811215743644861537765256056097629982573315169838970592489598750830572982365395636710305284317434944741470858744126581130695057483370909652288471292171843970223374180272564634383459894262801185136224395659959296975441131068450783243429895371716901946097113044954389381470758124113264205207822477946347808513176722906667763759394362799835398375620752234313251978003668361511219351311088411315278369381999594929155170898846045533928029316203401620618278316982740468391950257043361437211481013241234289675347712199989464164111210841807697233826344076128728313506067202625911816714106537501186845756901523659976044787459635296891657727956088972366739103191429558361163100840152895756919896106070759077284901051568558569070280277152006001510301734586337032367591872790635634307628918372674711656170512041870690189330990821209157718942811334653653165986043799718337701361181969759454843953250724969765269145691480344889404975608038952234988463365856069295329565240153024917028611350097078563693262444837057341882273423982366560552446479902200934328365452552057430967635050316839835752657559157299360581861216738874933470354849232370989925696004953036731442523775549870268491757069740526027320677960535773375043795933723450243116715756055489331280721622626523662903114393145952442940853205541512082236766609943595428185175162308149472741815563286915370467639332941880590012021949687282850863913260269907953928526303489413205615190604491277327059912058842998628567722334041254275582078243019931856199578541155090251259324671469990813056128724773145187425602589222160392784650467724203698743813880840952558930558973392570492581491805695871603920286445172503840094840500639650728454828024729662521128957760239653154172087546338513255084001484594843656155128035963138685097749104016011910112366727449071762267401858153413819894136376810475507790181559131807094948321436220391481706408426526080383750282288627498236671850223401137788483918394020454239520657555965621677332259044962233121069929817255754633173396462403067668176291937868101639906120268035870615858628837753982107093918584405159812035962490396261997784693201259701518761491116038546053299402562032952240362286342194308512354976549396988564991743285794969202979773008173127871594344361788828663764280343073165756733122411319615773430053280893813787774280715802066369058507451889797545744692353600337913713345637002120852600963381824664184502599873315741354550749378742131799834841898519151267416324446614979092637611059625020451756895705010608135296991796151374650242968746902580621062257321623976611558206421464752385055553848390174061393119114774711320612547406206234942586449860024454648344358120236431620058606529346930391979237523967211715453460952719698224040509881008696697201336263006840548083961619100287103595495000711442776324669474688850081945426538569469298031480208035564136230606506561041408810861612005593361799024762435395868108943183973177963180455882626412745211847333605147401984329439310937252737321078569025591056684432231674818926014472293382139319707667967495000424480657540903710495311519517867408279709819247017826427291568614020797822878735672127047260917617887354148773125909685048871130899997597339236554288371152882546537378010291221913598394964398651441005644753190700178149600137934491569037257906038758883673312145988739438778961253169038484818777176448750239788483616217701816579552991692557774847235777973406408134008640713359427901443065575851989539464608554411351905577892431916258795580271285961156346246494345849020257735851188305908643616009825199021803631256063336088099872217994925987249632797303042619707709804353108476363750320180986735363733592371047626704649784768610196796661770914454090164936432577203688823153654735873231039506226133147944353321023855592689404791718664786796153190325017013027845068547180221009552659982699255198642369294315640739054836603172292459729555792184279808470280895858432739698558064925494339226093489490167573511596259742591975038895808568633163938086684470470487899197965647435999156233979251812477732727709467615121027548418002781251205174963588188572184717280296134432789113942143284461597352871771258251977746849762826228928781396576359322057419274673472328906529054931634380938140592549711453648825718454519260019953660257457666296618860271770302602139127244409274459209402232958956368272818674556061349756052705956693863418805729386387290279154228188353382041773260189066611986382145579773042945113338766741359035356353162298383562883094359876713169271623786987632114617033026242073041217721576068378601607776359656411011538512015661280432472863349401175208452856178763339275910689869823803168167518833658168478756503979120612778269614676091994626150136516390308808187032399814766177850077256014400531142193025060005935680905278836340936533520587667702199214347633303069012007074178300135825662242096197387519794939784939118581815022462799883953617472609131766462061319359010483905017344763927804428341690966246517296357976819134737171218202772748156360134831712573162735260329437808870188938062844079784550178645007465165530670385992274632258093664917735272288895388555191146108779278638773568108209221962125996636288684361358592887127848257702576519760339514904265713623780218204239458343494659858401202297665410226413410255926529753846217707273445435525628074926872561784583827515958086730548340570694102422783951903597306228287302504769976863608175260521968377478117236495202752222009783199943719663176023846808434369916682929980992136810250312555738776136301753084537804395303756484097286327318232661632611408587909832053719476850819430130796978428733471777067485239714729375347977212988644893375056149445283975359162088098507932462521596412321118361328915213772251956256956674147641738723619344853282759145128137812505713320862777677235330995525426182116365399385225397654655340610711107989751759629482596740959708256070433577837688338407053011129128380690554466907390819902593633311139477285000374921294687617264683148366790912684216985199023866175863873988670095675335855028898772336459491269354346333877502331295811315525033950395645963238100093959006551378658866303212927470350694094684638374163324382279300301700905169443054443361735799085267492530351079452246383296643292452209337790227194583790601798387579905803753859396133231542354603335856804763414524620487847369731726834281569148863550679560528609981598866500913298788477027845669392404350716907335876483484793303403331542120959608351855680983685258024561044519639452559104260971411768650260150272745603479345641941001156741995095773673369123100766734777784559405095567429108814495952533942062599722923972748411852220108888278273505093959136185133105204924502447985007840515923030480752934807205621897336158953698827283769039130627843787391001293448474982139296023044681847494566843296926880590129400004609776484886978221179168742871142166958699611201532710159015355781320309957632576628811395639140028832770321752302531535658464922591064543379498721948930857620075700794845030339420815319725902254372502960716039782647538519607849185095935070547456666514580642367154322375868873278129807524531433334326887325141540330974845355481403792449143231537962116487488859427117647994130607642552370313496677908800083074332046947090669594683496440943145875671450373084913075635150048843445021722952079075505377384934344970198451136975421710388071087692387446737910909510568966284047470281434662594955594927852546920113683552284443723512463600060162948900649394623995381422148232490180627320769972895852139984287024379755093144152811110172417813649634295483990179288527807857303744895824021747336592908104631312973202444985215513177771277248502154441966545516761300922497389571434820096876177249824852954611229007730252192257546246482468846335769935138512975099480514374896021399149781961084281056090566712200983781420087305276752023336476655865752871693489118144078213932521667900173876460555580056308470536840493531021363466454494605057357175513265820698784823118964852194704873290398482977883368911847282513620420860416179050847155320899950268834398100333284797240520173462592198380064810405770945866675691703460519155183780167020197194545237706551080650643631953037012779896507289415292506828937114130225356403469408517640337612109498259668046814307860853166439135333316860495039191214456236008321992583312928332210575525704357807817620653895638884153013355227202925366825855776698154206034373257555823290950536764803718070860997309065940893986164770664925015599940244891037490599602492147833031106889276300910815919366536452911478611613213620799069121709605974239932535370299775375717187934931573684341611572056431025023290883467789920259040809023558059101781160835978478437793688651277039003559285407898876505754702898273063308540547651176833290884599584936026379530365240365809247292280120139037558956630156490930954238156308444961977430695346719743460886671650298044033681435954338506579586079493290430779328230925782921875923591034769882361954832586709256218430689624112314159563524390045969393702263210575784296188770266643130871501083238779769639855300289272166651763274346532776928446228084105740377874019841112797259034076705012042459912374339375033463552757275839730069931899570874509821728615452271996929922074554377288192790550449700998451227178276856378306114289138584165123555881218841092353571265209641750152097338067681295073741939180166516400911246896900351234136048728525675463410192217420156077674049030934350146369140383594418137721808406737366755465082757449775828585769290125164413253459656486974209161028320971654330267485846721742076991268066417556479779688205117287432338151982677087772873078886476063669761254957628857509545599044035714337609901155019074659089957707833291595106834491142290936033601074018475993139794024516213577074046681644344709862728858570553106368508256192697702147507247446574940969857347638412370842743012473076800693940491165323003080110683353658376947643948552028713394899608775089323096194318983894025020298662056219176554090987499636918076570680191100138240210378353986890557068029306104654481553789558849892676210405158124711135609561079461903203941878530211144943901547037063915978239187484774842636685886836604377991918473675581138045527169883655145313425824498247682444389403243549063192032955069988669642090740094561482991961310658383367731780584280621581890971349753060269855845825362868149810015660651184167951015481897289062844102756797100977459739068941152790748907215245056218567700003118466834174718508485541643009594247905140226735859197819609518385879531824104910173122843469873773899431183600944481022233945450882721067773663830650795771064306282415296744084257112951889042426748931134241077750673949445534772261182958648458743687767871960864928324947411628885755317387255270580331407395010811518019670845988857004012253038642078129503711814950852755709668380041262274292049546179714847411975751035772631883755008739923327433818489045699061994084811699406705001096831152459848379296427971031303639338612401725295338065686654122367580672979904790389627459417347656358643185974208274404910320052856634838680608222849903625055523575745914338177020346520815501188190777407492049561529510016969156355972763101036499790647543789446921114203417925347117983808592582517365579187118525157220365941174793884202424149452334914728348071089426346671474465556767376553602633961209881039211811916964493197941379721302682078586371258937764491531257998851372715443024880189029252906547548956952785941117775622877120538071700302391928142141404819470464493534118329072935800318135077075726871917022681818707369514918278974595339654277424035534316184977212951295226819796444686438059106717734914848284666174194247763984748745950467073536545420177349572467053493904389950542249845727253403603616169074501810718604823391870241246386361661274589926676102148039679024539284640148489236390738466289787882158882415887041247972904773679794944157159091252725037277741015114150228069616764581454488891560872132402754675063908234675581483982090852389960948169215743129925087789063132410064650562440237093352433985170954093445652084328467149347544544352512669484263791135540475128483146112472554838993551786878193002680904571688100014239459439897607416322080848306812102420984657860017755846010025557450822149585549465652452393158303530738304098442159732488033887140646156438073008258484933099350097095431471601780081425048976460379395207149551770871818765759242552210313232229745693307940820931395197285864461862805620155471669828350423125489270995678621591051528207838998061342501324570716808133376049945585128502229355255285707142835144492737787483886656903269088893599142230837963279836398809693859680338314309961643678257296505139035749989429826720411402635581373214332222041415341262817877332036788749789265209546684727241791326229737829632633188495388894130459017436243680179477308586755434008347199210564791755088646564246212682068761129686689431759977874003445272364034371962629932630886746832175848375445628751069923983863564159087438312365317059485525302511622294383236820496993743586451039678790976562309224771231261472990129624678500337010337468916915314294046758438055821753242016070512574980936880431339140314307534256877748419785842910346038685119238725512131918188584636237968389225810877156450802890811974335522113348157588942187675025152831601690998276396555749743980372402172450273381253104331451320817408346989564274476707024663691121715303032754938962398933041868670221634241874947293194775258124128494322405823866799653421026178959512940176176230741011930253423757260115773550490313545283999720263466611189297814013647949145935151338024921774025903192004622903131321514864409950926865375651432106342127339597782786291521262421559784976926583444450433157150743776320766062188368083988422220209744675234461126379450527334743975004501544546469561000500427149298888277381655790652525087191114245546291117369396767354742144034154135382457956431048605966719545625139858352487999945467416743203163809722259936455056377781588355781043386525690780773504689790360635490338653784368892145090863477807109969649765283239825250177982920689579942707010250255008174630195162607080730227917921995924128480623517250799175918741168363957169793612487286480687833324027422067596107211750344765563411754309728685501856533687375241599802764240787819762298447222908277400802693010446080687264092320264754074676632908937415781765972917070852681914079288982841233265470404783776458729782095951329081895481085877670903547730478425884743496559370023996183216289487749983824901249702299774150009036378744560588403023771266042714156338395816999952597082660007721259787252358182272580088542752282532136438879831911594669495831655672193643054131321251411549939554799141040508768949950325409429373676166202442702380801655256389880689455866364244974290859113870842123138405101106823530595311755445813144866716464850343439708173660559792109405868790014456666782102138574699359273566825577832421753266048596430768310784759379239442354784134387439668289560570526506854447459469037814340937424752189947268628311056870981031790431047245359448153511038878330835496072549344697610069744240450878258970570654443608685885155539565566984745564463722289413773173296349359310061647472677793457668505903624343011612168908892140355746067682956289413044817983980681208743900777915664088977389903235808037956885497491120530067859053588176548896980809282927122576769397628304677537937016276014950429707478046480696938129537613737970495602099279209333773146294964516359821113956181592248462440751243248293135066154855469457923181806634774063351680987868444316599800760167148669281420351390469239521703567328657846727344258541879859416403106095126343098319571696147717433769691702325633400479072807239498116554723524652566384785684933563477911341312911363434571322893493306027393032545168160563212223501757504884092605431671629116446615549980388359902698808916039522501911676323054439540458769839051260168491663772838072177363753067681434817693170665129315198781767298237887787047337188621974826300852853130556170034534105913220981246776705638595757902974141939699549388087503327548655971980079673464700535880410430465777750176361052797992575247050380218221204689902102758561155101474252273846196486151298020082865178780668505241488234933590682354791459319863062040528161066560186831588046063651725541379177103638869058960934908373554770711800319654781704357658681745463912705133234696815302170783523774930463630019724505005020091857237213956067921750884258389616143425046862375706943896083236887408933486399106123680341250970252288856605592572005136036238183111652725722963661178196070242454503828814369824009545081307660150747088357259243593605610476248598260163879632716314991143134582087938719015645501616629438138478082596428131261894807332611181729318525620356878048849507263193584215448202942636913204449299900140941005744579345957621018783525867092389045227322431328284314812457919975407275939504411560333873717553009577009383773657496125105837955669943868982177518383475343582479003118696867082784885881874187959836686854110045532647847128280838200863425984960631884483514226381934821403806972685844275873234522999188144347413658878708092907260296377400422953794243768497701605692037365393973789056636853016465241449127953217152191798660096398784405378391841590013820567414941086819158191687991153207787955555344097645258446243983558880565274053001670002852600718864535312815752771732501889690921688508258302767575337024176653959287338279765590682203344611682996291223498696346591567525033759788270928624037939519810481560342808922800518572777783691163533204517272175315979791905498916125019225066788747865330404018331994854969579547620118082049349813185446278787344285186121533156395557637855769825200607838694344241117687572625265558763489371957465887685480787294680771264498425432171833747562635998990045432298401286127881816089762026917948803165639354374574708812356512405403733220170995852037314657655956982317092130248144790596313870416235533838028175364973507741237141921795153501969778226090797043111865529218113020557216910039493705390580758141294369245647293625508418926998251037999958763942565337693980029207521892897070833367385851549824814210194638007581841786094851573089537082355546371520912428735849578613645505144041477999094531925498408314781099067085973245551504791065685380296162301143668017700787991492639282821133106906916535283593189698435545250328560192501408397165851175193078506655561113905815449340122178188977292590320169018247064868295288247130000618794082452320699767933417996013530766778460234939296200879413997599752467695402906118801761772855448945991585640173230434726170109531274129669634360607032825796617999154020120879540877871491597269808492383892520224652792814217788290772243804843575733154966836556254683975399017423155345218795937106048246727806194980369802807648340451440934526157855601993619593298885040648281926023894604598762323290132935153396532361044286037276855769965894119499636863232045334788179804858995510029657125915586501406489786921717306091562640065890524429275251494857502651450206325869728149419683639120423973295768211393602920355361223909589271219841336077385840848480068195492100526463944027475520432817353353073770917734618640944052604782560483770372928212948622696085049942364792457197987653885683375181734131164555937700357526922503549405726455403464908810787880806503125090785941905734052678819017199935135830976021660927781802218793534222021425656824589385656922896460925809921037702846790878337352405457162774925826571807458364632847412177573926004757590691841643442143283838749302253091962249089757553504893138786666713162187905653464704780938932020161937879414441548537781380800272592853866551105438055688896461542788332528319017906707471161319160931854940891934723016700739283277121928663120491925800190474190983073014125181852859702370137930435622140655085049694943904043320406771759603484171195780797772728480605484712740992667874320028967987796407532694159115585217597221754108952446774558400120577581540423173892661712456622234628529513909030915235885172832169756836673368093328025936474047625290453793511140646175130081172538131947716115415349516160590040539927427429261013798695842968683426382356635212791397534645553332066879858479941720078812800024345218162341664831272388391709380559376182881164339688024834518931191070181016061518142386572778046067400163391701776770997563002838225047564827701260376283126372426401683776278324762031166923226855087351517378250208422790822862448447102171501865662834455735437050628933391724904894795928530692093159926684146781903516440200940718134179513480792168009666616225827173774640642435585485790495037388070476816936421706470352194385030548146247709268841732430506957119978596581801640687925767292444305166917667256435782276922794416372856686100037102270672143619392958411904931019723909900221406828004597344602900023144312490316766149524593930311262768767284899139159802399386508238585353101589001029699964147313726567123253458375448871155080621500335346317641085337642876974506595336618083667939306211195396074865028878525063137647916201422548232283717899953042424105338313023840001400858412619740110536130984321428064544478207900789067582418839364431352753676669722980241042512276990800054134578651747249848350424094206128377567125646964539165611278209523713660826877495053507315044359097134292724027740273671067601419678889961290322828167028802133811535791298719299841620977340022939938732593087427660508332107613415856057284481793564670400137388566255507319220408748112210510580404775510676994840745094260081781237331328903190289112426223608994764397378806407074571125215411421304056582014335675473761107315847455361093674792808503949764246527164096524137184655239065980502241653939893906565993246131462308423521357283529840337878206518723809052142287989591233071430245220135345783394060874640942933073249294716423397567092289121445440021687906658510739686390311344273555554195546390587311556044047080422875897557221398921025324898249261195552735650651729181691865385903080491762258977611730439464889733026172348339908466540139080458773105495088684146504050778300889933933974581101016623729933635122131264552467784428709031879390810613102827071719324583145102833172419291118938474224189387506938204480950394806454650067469734637527769660278046629319918642391444570241791671141418189772446555154568665949782217218430193741670858636489817529825203646066939118227889601595235974154684944249856853030056920572135845835920402437795496353181743871504183848528928874434717408230978855276729617856474472700340577049625063284458570255940530982635505837574986604589692475433444690569298971138710054525698596278932156235619512612847172712069214654738889103226098658425757709801972943471566413586400698082882872759327150776681233317431407089008947744892272662773937941399366306833685341335469888655053977375362814768736775544650553029788801547054382342108745304907459908401665649969386681869929194279213130417408811832068277467590399231403696208740355660780814959796162888819484505959131905463249818189179258793281138847619865722477694810064840351583297017069624719233606278221871866681433128116611683120953324107458607513699681136294468501714296122338779593822955982405404253448071875766589453917874156918681478302830456315652410014004256996496645602573137041057244494409086043732593045469145987575092676264124327490323332352490741100443390251256557447081249529135149513228698138550685661099621732633892635257801580869017853137225343224774776282129302560074766026678541415085641298046586862483340507634561221520065656749905276250550027807972579702028516119364283201334481105610708768422296319610867509264328972352053979547141719628387605854936860995282479300939128338922717225838360763585174096734511280461781106697176560774267368037161510758139248689581559504147815901525741151219072414524179745807865114259465669759677650336773281442606849915320670359160136391426979973695918037315158619832845803563175445244116707693206835058800942050882647895184156192378861353908730531847379915018978562058453160718861455528903090721722101836558964560587520460120709877527077674139467704615238130219844040522803143319443837741170406297565791051356108416272774487391745107489439761660480700201390629536487113044041925386176184375176950646360584585888438397143283063416419740119380853744084420083042591652588091202648622368116282574693597943074304220961567221521836904348853065934019718109024048942672983132412464558430746811400214536151009295265582821304150510345578287143077075322572690829349231649074575584435069904592763605999088876542578255641716241468588514646935821106351051098641503460964566842548241564426474428433543140065803124773317784669234248340805556731340588364067187026926144572544644251446124454829511541271115569917833226806638049368746708295834648722310768444733331668429481743340692322654463901626210724157551432296000263246830710216306433016026053293835562842321127492051871863138172440331545707767566592671888093716675713232599013947802412146625127493005130968299840422391200805059386247171295048904401813631563936091625700019122612881815178496705267481457669820288751724668574582844085077266655353885134440826660816065124289077739299449315657105769131903550436404840901832000303592522430397839442019941964260502058028136545111074255198293934617957464687856671690405197500987339706780555879836955829103134415816795802211225570041719556698619582252295880978870928663006982117609918891903075784289974545291767621278701740135122464400988225435059296562666028177721932610307002510569019533116610437914601264187986282849504172387214404896231078781162051462838943940757614331864236048041010421112176223046823934519358275430941894288171830600927918611675350681466374136813001516980835169500342481625362605037608126552435603274787923317894919149394827396932063976721776923994371835988488113889333570835710750131545673840692075231251452783737690099968651267204164920436714494955847421021954992268595664658691069368538773761356211262025999926444007564365789568109306213689144998179584344035902087139100754880981945075770282285961494030540963091690457943461900333516050649175460992254014839942062618122286559172825785540234319615167145721517689406439555274860456914619347640714511509864712044697455726485325695104736334898899195954052528099859277759452417547686246171910335929765939193765812063844699508172412468483396600387631467915014609292647642627537794149940001802950569324966851055839228668616537960798550478458878675996892709244886312501355509629574068771234597867383409648832458937478936762705646141515932611526938401205564107498643625455261829650480849280810140984725330230668939969761858017323021313607708851399509723605502156724503523431556130462543474690644875226399608629309854954284008270072914914061827287276437460723747501577784820417612292873735511308936668916079324058255815159380289984720212424066338364126404880216692135600945618707819174773367340227770524980066920399171686470203700462095794644549475156307967275169418603664031321170652767162702785915356710978816015100113505457204740273354786385641997378283556150336435210674500884497779188172733439892063271754660302272081854731215029710115920207066813295524711676790018189922491481339379645922183180764339957238559302863943965964869035894392759480051477134120036393126201800457607351285835898959838428481712163154172285584582186750751367682662422030449026105696992799853912087329955007453629220285024411361257693604709123305646675926885093705169116996989327949989652075630162830849414320699662287176049853147797610024513360976297894275352815980562851687306914668480179063816010252279008825876204447451718326741636096613238656653450249236952744781910335852064236152551964540063018301654271187613434477379767867830097898621500093638572228472659901274569994590859824134882477663082524246103199616630961913176174249231104407514892194551275785913057614098489464353587824687160414499572613011981081958619071943923539146238731863087516535955401755509836813565481751400373935826987819778284442347255650866054516437934672216014819684212378165416799785470409914377391107481039726456279257097731838452867826724721824095352647651852961666228266025844152357624084734699580447469584769650364790286295707528570366004249413232363606589289465712160631757838960298067917588839234366835854171750073328970474861869605880346576810453081276712622366062275186497946029175167973118389300402912144601755199206016771304579168143550574930316142783116097881125970766461239921116901223253378032401342674057289125552393688985532921342240659091952118967692630763147220164820803754797338650410490115851462498704916329581404085884529710575229350727328531104888354219476540711873177717518102309795227636956710441245512748813354055485996823488907966041904689791309451046192342580855513069331269517370976888428485075437001299919197117575448983234013699444985265453181269642420003025190732458625086513682752540422873110411308752510520987459930163157915979634925062028144855470045882090348730849706523758832563949373704564973699382506497137216654471029567210636284080329432436899265732726364130921248343509401708009480319365825152706583266524862345724216040996825000542397091196202238415527377518990421756365332408043815649653101677247369768586620085644222378701780097698581113532074049936896509829949513553374418008607761591958132718596218026630537525445071633583841610975003797857789318336377992365627257797930027498407126369082201070349525340980269071800915173644299833031981893801128700572979591625598580113589234719328282914010050110568581137572663652928108641923592391272946427516329800190440770191723724566925499629931370761515889338909437826900564656261474447346629876236110486697899340313999966653116877374156725850817479865369520376022628745669321958746873894238729873942850447447764279552280058764043744900186830687708687374172894089990219896948115664176689534929584197422867863702018278404215617909408560298440892420196798700458294034261342398714654739313160141703038175959975414255053738784272292320794385168360380321022268193773460810464284699536381280412219013395136766267269379738666519688183655827274661766478572399061839547414074742034086696647712019014520631158654323960309551802348140667064133907414824078127371968997367501860442334850587724445793138935848415842743538498685754173860953056562780375461960421625381853121270882951440123471528965578359369618363223640213121218622450227612954448247901226953527550513917125926544404023466294884262748534620900268097408093588223390840323073321490914981883794804390597296155237014370370483671834480885596712411410244713550876459251845730509460858586471227993718855258467483311155056911624480023964765405643902177223306147009449795094326593177860141259795240452800836757555560919612817242290355812219967261523811889266981742133218636961045659580096209405175359015073274824955768732134759912970485057648800286569343526360020928076503099568573878424165775815103488959493368446166950409143667873893333959513972480687949288618954820566555159757517718953948109740462739894066023089736119747995039659711599363615916403994393873613256581332867774037422280033546271614823966688626271660682579052039951598302826083615709794801298631202779943266906148622552878032145397391583583976980849640989672014371262900321768254822788963200091789560295820061487108603840054176991746820829776015132906397059930491450478682756502829983140737556401899418841969416336386803520447648468437060021679141901332617874345523804150455760485733896845758728085348464842491099750284117984153048626831611776611141896923151787441933335246786748759546114010130661368809610284294383762700297427789686686673558474165202225364408619518082603925820144837253062732340087875204095515410566278855374077422718457378447930335542626520585218870405909312858438789823483724196432936065441667872930962691043582151787709588977292512096956528137167561297054044952247305614513577855238838019227929388564007959258063842747743818327793280097414044541668733095774274919345346525385185864867773916809854347446814832982924337935759739145292409851251392385746988478463943298429352818716688407038828153238583674432813829781273249821184102330808679000386001641991414482640050419091077284167224488299839757468897891955205471760816126289365317855331844459271338540416180388360579066355893724727594163383200057570207568669541425688770139232184509549454684017384884176473296850826979151716110739872072593831275260261394326044091616275739610554549831647449146750807652667713754088827010262404627198481705709608950956257089120831776247016989520101857683877224846919960677297824852997392976790466803196786506576668302709900584615642560412713906876215976249924850819973298483635133058762712834853476095903078396084361828040558167109375273697446980903327017194023747370412156683828380667484776328251118643951130237436541282302250980232201620260482473736347675401459594359436857693089431532496247270427970596723975467747153418510171987860105972636792422559730160108320964626312080385144647373005437955659363984600146454691945661178336275684344478648712053102591586116649132025972261819513350966428651227477805322384005658165945125396172037328279285964329937896353678023734144978866335618980717079592725814331622407191846616055345216226223774762476538668404048578127720996601820391036620406010759278872362521152721704043465527450174125786419122305175107367334444760265114351448469630208126519552805435772637325880788666708757153026234110733375343373626199381101854812678323538848728805535570496800869613088631131709624006442559855451992839336547058758142041257619051557272132887994307635645051001652955099717628133790141874626163969187906346408162857523658730484540631350713910863014554467114335468410628841353213235184179179316816293272803818619346216653890012859565800255426678591761755643549302113212802651055977256446064525872713448297828895117727420485174914045447064928634493426646266896416843128021023808641090349852883500658895700598454005453250259050785442356490573559929346259398950002131751146763307214380664938136545558043604887614042384942892304235656000957687152500097685473487793357589788458985665772293098791218130648340275367669244031290529396692773113138812739765071849559029385457644291952243976050892578562056826079680742969012448379902452054596057246681261106157871318248135868806808708204137541694906085576900877351760908729726895841730994080051797759924842463251619079171886946436193172884744968521948760720257184805419874063419428595486713048835088345025471152312592079887688042884556003690782927116453414961427769879572402327760806573767746804534963464008874995314239041281906481062894235282755291769534419455457749499735139175411355755051583423803721626478138588666307484042302923722783915117561322707090829254355594457736161534357782733518240445830351077995925365967469724686224365455998476075089259721521625430435567417731933742614320467382471997046104273861228292752220141454634570002078961883323490036759642445712145874587730815362350965906682149374680985489154521801428280978436978990237089471480893246914546362100024339030247837452300801644272260168453665594460554186598697106547646448708396783149093778206052421935715515185896282943828843306224757672491337255371328072369528969821941326793284954743105941062436160738704832721572545826678710093627892835620506032197380337403307468240337451057839668407534042763372449176229427264937005309458451829246843288223574764460542895027583048483496977471322265447704550517402973653851562053774879634990312322294244807077846930090957274693400127240848128847937975505770270535260553380880960601334013609613757489199279547765959788238412826140046802901505824326568054872174526189038909097482297270916778392064181870232539954876303538131009515651803707341424566434398813161253480776365537310340424825769852072843958737580708707696085791677128878959603290319692318432423879715890328589249991008150477461526906351864116666599468495169776362593634574414163674877326564363548463497185393463495352126538424507678777720105049146078849197798671332511294689876617147886412848765669168588080228841573907583743880627681740400531179729492705774101233665392740591107324029689796380827043506955727889036624498743379835515290162929263960775895500774529818361845488665663814158398324192715399776471590169756802093226025789367539662944383590665550586679156641249671081866021380903778904079223951775863803986006084667511156151411512038385663544812500562178457556605777964307914848089260493043179502237670937704987110824442683296904384688358228905036043389658125806872095895955130969066069318100248279364743791541445431621587106939452780215899354626762276253939946970167063554922121221119348927696668622717389194273806924787393863830518747489372934945504210509933579074798741956160618891727911308659890050770565402228693091094520967071390507037401994130390440205430934551765779867720064935062465381370426993899816141976056284529930199944170747333713806057838140803801862803292772515349755160961824778554421068326026745429513346118852574392800810065499233381457829393036717991322504661151076270241137742968198695860951472446307996176695188111821840757959441827540292471719699775926306488759280179698724294630169343319736775948923973191899589406488808995255270569935128068157501017098935144449560291896251169580053116113656107400051045744506785922856825528255245657962379856116214756616373034689715676734940650765547507469770875750217133609735250488845485763180940194866492211669447099506420741847694560413161750452894658195698623087098056128642104172098104974031436040523833607702556968081229122410089312282178952769556597163998457580089716303945580825472006382968967562106745862929644173787399902984928543424030173963164911689378821359761965224162658562555861656374687332627825778905607085639197161403296028275213312090200419957990385595931527604688491384244376367293955929344810457839652829234384673781945193708395580990053536942165714746186746411083353771932502828096075271242414858201474668480326501412028781583945200543897526792862045161418563160869424150798495450919498619139225608400657165509574383120511446792547535191183472757373190350056334214372499614112013323226039194700743274782876910767188329863858906715711821745481201397365605987716479366563821915883301158030541518412109483055649874641894237669035388852278060869121378143567846575189999214591344517327614287788819232843010816371698909996282236501534731134472115152460050406737993132239325477402342262108823842422701167724643509851217487654378851370316531244274601061769653182277447796549092065638442021974922330799525242489540333260385133094266462697313348861646586876939818098284801226995434520193989281260524149753787083549979281413234916592500010220163417840820436988472699886661785343612116633898976672562038669760063562934001917249451204876654924295878119911601875928776837819056500802456999576936479792000383368095317585921197834124761347571548580441915955783004438466625346944148188937800021572256156612505929277945605395754732250031007396881095496654937069566649395973526476446437711271109417701171295652085345639761992956098834496799396262939252744841121163312456360749950602205264336314130734095402827884557880066477773865063599530304202856306536422114976624641626616016569216988331138075860017798401699368976830323226486750338790238661484224440588306000309714574354998597916723621480241849093680503521486489884839675536348404895839344903059071495661011465329784605815418755601761435920902419299119871079483487645608835778071439790597432066894245733183618772525828630353325425940198868824187176790693811506531998301638070479530119084272303179348522793008804433037810961982406722838799280511162937734944130279053300929128470233734610290779368013781710311279044602331531798784766780285394001945114769320326908364750757793087409072286638682812331915338621861864892559377042826522075331651577011616742302611200132694023302725038077891325883025360608604464199530379303268061705093807190853520292466026190086139785989773204142488285240442004816187784011210361918704336825382410616908577261474618553249990258042522160051295164866221393486554523837113357217659286905934541540807698522864148860619949484535766494480141804164037376936669975798114160418856356098349122913597248573168032299632015909327826921438281148537342716920958803231339532457903113343358395025379711500624206053031819759909121987019920951674873501315859096699092895299498068452475540236745522181122945916556421612229207520520109984324866843559969326552071589977207909973445660387666460930359439075608375583611844319330214275869601554898218360834670664158978340013915065612721576923076754245233575617182718138911191087669121560754260320317312216247334635724652780224108781345925818866111268037304547163164446840571463757296373995649758444229553011698179873183590147020182565194242909085478554020117654533146205798541882089533587805738969658076796134336200466522051609284998424282841247555790129369601796947346435714256226443916997415002048051739767736547186673951240924451727284496399520064402330974911793194887892465808202457596905605173901221352998871719067612959736799230540575112959226243358654742834275802670387542537556451616359906353450959402073845419858064218189190330255539833372937175113678113908305993739978866502071306657010037071485714789691281879996679861825432596093456082996155346001693812999932677029206553441246541734387598937454676865013270935830740797614478917425756589486420004155324918958180101218552021127787371928456545768843266136402245483048280438234737347690095829348489361542621545466903949072643109459730882391114346986240739688413796455243924749351917267261675649697806983133924560020250100909739889813971158259520335124927613008229293861025085967800478257681472288696054014134258729023312371244591163098109782253197584848358007156956408954157258422536912133649750947700399079168395564046650380859573020846281761800852139073188599707864733354773496652111039661848121945565033954520576865400805183141035982157679207376120881243367551702275325516218711177364294421658979449879736546165677302869000438728794692215346744194539691760055623890347331124338266374610810901784492535889430071877225655687842163609679486422242349343248537977176527860654954055432614254269612297978329246620882705479632223054388075026448229181498972989899696251569689140192700422070446283621583806349360424928567412029703718314416535790206732847729898569854651380274346353492817827433671106937840750153857995361510688278706067631712508970735554852708169274892955485328784231354457984769261719806343443884349509601236429199641574802860163578791572271421985251401366374930878565819203822388601456726072246671746355838105589355272529994862336903159563595427371637439357068980136589179232252021246044446325146213904834587384346690362920831617201617466202678704090628649007216552151457550802338535220341003787725352276661346539639582570157846724287078630668547389035529843943255780318114515012080192100475619845361094501582654966436438066702508378536076620725746224495587941249688570654934638762098967537660644548025085285042877580204926158469476247706701745225477741355998363997739443098708442694595029322180226985499862574418542078630400868187135377818032382827440091916334420054418060850400808368629276642575462971541032204049285725713468340188944311045041202330458624482104293728943151253135397478133568119259485681322813512532043121684800756373326574938147434366010443688043411614109771634909780476191307167843328729398333211773946469338846456504865988034861591123492016666537945440357430232712636694437748590367967273635688006000156499499730883312444106117753554322493519560614510449907286110533294898565416407957000417040245949445982704897710490921495004573430138256074362167018619794247319966053280181743506164689374785490885636367024915630988642572127837235107623980466500481275655718002392446021266343318535403527148650558432154429701249891735257434952326297669267669476345083668857759219592678834549878737472119563152078215541054440487492342905791380969680929585126851382881635463019375678636266805743563874964176806245852626919680305364636793800778984768098384114011190072311413381985585220335434152830883311500245346244304111988734471892502800933063355237618700155547579983420282271913568072309351448399613014075565366177710353954330521798504841387336297436010427204729350464905044965004859528640990944676845262694032422748551656931134544686273422267327455549985650256290720453731786103797072852281796553122162639309194874665586967419341648399915705916205105043490938787829927499971202349495818884871333695555941296087264443944215471441410900978111623581278775224316776950975867150600788447149627906276178665521941624836892387949128732421488947438380122905474331285384411506115645742072635033189472144431618439826401810155642396499239333894669068548122850591294222887498391450839454375310053203585021267077191922732335296832425109135149395157970171198503164638617525289028607456591674559984124317760896291976201037383256934762214008300715326818983722307634262002350710469315852921535015562288794720078561424429059170708874697334635274594402427133187801247542548024794493801151667284153317338453591647281192907266044603338594598674950298809678097225987846910263289621281406045942347102830422396006677208518893175697890455020798292915287775921946239668757090522710777819150148653828100692123411606744245580040656697777647190631867539462572920442271635177869085151056223626688541256799590386836011739571664632363770784100596545356864796909200801009123259131472471781869771729739248612869627498932815683185967372668066077310682173218418938852330386589254843943955182071912134332809564583936070727516259920594667448761946251161012788028534062343752890569963161074986495802107057615976976347107551052092185964771295322493628429806939625553821450263787943886279303209325060682671762300638096254156051902071504228622877677991732892034965884821783855102279700087766952874775691541793470643858997057567354639744830029032711972806198679700183286422954068770852637876107740815828803096924269572201447825518943026523759306744351483477740673342425957844080529619672741430648900344473081940725495293241347718375232949267991828499501939602038558517261118770628929406872067951290422027256114576368237750802151913235433107945195534265378869776603316240864603205882294043093423585399789820236688955953349489746926456988599860998490308059960436012611840940620173890909561589395862298519456296437474597740141116705301355769990483111427343669392273395308314363353136082393705684352800024858871367181826600671661966081294762236485913232315250902008414438560585265341438777946304440276770807706117948138795191218666383463647722189723511846131539655594639475966899356240523601963781138489101593929021956111577185686294599660859536725779612572007528976572057093803414190214288337596349119427580254152652699865415429626712842990024032040384234478470760724187424615438432830193530008384020137056361936096615361727927786554152250138857502950050813328329384937359783019410178954522481424551887244642294799758990591981624263132514591333719009464608062374596130708091243033968773972094674750584203313300758204432652056963810129499908885262445573992159410626156079275262956843234317125188221290931221353238196426169508000537339429502685365963249272886434183331648576645648968096084191116152283787764631901493855060928218740243698424564767382551272748387358886738397397342394596364664931186271344586496115649412303338978001327361552087911011233400143496047071405144494964838300708528604320023208741695728871955670763823921120468588886719939279489474044897978493206210652232206108943276188862275044177100787086197310894564950400631396700391665395599080183677684104757994146401530565411989736140770326840324079001137274751338509612535017197949831035683205924999110106736990055300649941572728101254592652889537282690670364289219165181386730553216146019705480569480507029988879158471514301801309540041122576633897809351247953349766181098535396444870709588601098472287933928910673170388253345246374081946753644507149594769004319757088177456067568141782606274344053308826183750116085293085762737505516599448547046855995424832991919719436836753646606214282285552879811670533836120830709479507684965878845640173039871293628933822632994394217306876196927842631658434293638892044380236703131960265613167057291917858677626784163133794386949368449013644128535977448688762574168782831099773951227733269256519967010759370279396789874948524175724938647947976975200291137032765251313446211658342894180360978618727917811724203325123121334583156171980329668344406095186905040737835757894468467250612469812252744823920485396293799748446097914424867676716387656660464014411824563605584962661077848805368138548975922381610963031290761939223802745389492480577205101443144268194561509624790321827759993108425017829869154430240334552304761832854761808496843796179314069942887808905160893881979858390345390397152705954546256673911233576256573840264838050906808812663601690877865007589186659145570721089825265805803412280801312792432189767392278554650395367078212247674474712164236857527381547127727866194530751096280117005027461621103709919668489520949544916693305490566643985190563852487639933642181943774155851596612710267971022120204986567899686851936821999324338606254046257565672780114508317434332634775319691163105882892905199992227872164698851245010062018370321436993814922230309943486539810146173496996465747010024091439509930429517237825564458622993146288982030793234349019195567791349660497812365107397895610438352821407534755423764918897514293981344158130794777588611973629051060014213559889508743318903294857882841193845065405835527759003819409335677389177956244941654949290521497263996198658025725215432008639036180537676226751679701072881575138581754527910198028267604863457389798400947302286507387393556219393306018824679400491604947005093434820968686311316645487245479892283384197777380802944711196650972331451249486716550042440160505751796417337845255267134247846823019552287456356469580221441626932503731852263880246947956044069638426396019496640815933706392690509221080143205162002914337256474726612620666358737110077126679218756344601492257420027538778379621174574182907911440208572200419815119979087074726305810905399582572685698861597675107076319929242600236305416940469605595139045866660187747146291117565592860061759338379921815607045205134141038799357198471892668950673842183670509931300962996832658553595065403217646212249622025934976660610892242713325932441182001037957742287432447789822656997947883190256311305923372828351969869353843251867446116765951953394343502562757085215313686400701934394633849315207197650775207828573613069100191627468289884793170896565771253067207206386663096377530514970630070878906694237191632801927112983644961048422720150546600153869556502498081643925768540842420038404374337585621290897468335965756178538733685752157654989795433976926024498544861459992868464634548239438521961280827567910471298475133751508365190617617645316415826610648360440630425599494741356780557873271931432892156678848308262760538215335407499385115415287737475267317523088129280407487403254006778908647350714381049230876778237983210661190636587411110316900001045344161171620922193231713109306279999861318081268223868604434935875872543119204351224639754083096034394279074581856347277515656398019250631374533921191651109369712020456203559116296650489725852060396481588433505678583021174905802400451753020438350254394356095907041067909590546282160141089775352037646282215388661863873746801037051002770122600790715359673598550064888373995079214386321570704884471479922608612186201375292748735616563059988906049104043596535452375556083651623491906315056254415429389533840094565009480750430930809947499219391888440301261417544047475925558898810094165496815429757708927421710407280680885589383271565636576980076166216688718151108962365061399569051865198692183058984228527384909106246871470072798786343799983981462264177965514475821640349442256617648774955643034379156409602069490407880102009582316420478027724596167677292815276883992138890247991705996007455948293422629985566206784603305807024211917667492566128227886035413111474778775874286868615045237247485423951903598825108978609659639048368194361987479739486490624793667330568905477468618734596836505037570952630287916288463938365038073819779100966961135256730329296692767165913345109907349222904552965782693057249230367496758776552459347228213615896086794235915339809556666842161019601247219042420486549793082542856273538425779339847412613294161774018541821661972831513835105483300274295585684310654392571365352997193898450497554783432926623768527243318620673322960371393291157347737498057501086792077485741477469912531237883828360561889507394391946474133131059633183327223216763764478262832363759780000333506561589425534587304277891238985013779042539303034454117786290364280732128679120038346213628198747953677688175604390608675819466303502097703089801363509973904010471587151961712014157000813436444641441793964702222080432201178183658611207182152532459556547436604273022168534386723202769187201614195334405174328516350349124826320401229323140602169656380412729969459493254965412442661907304857575130967287179060372085706329420470675468443381478413418642538478914706226558956925636790800526877365250164040095823379904334200475498063442956064143285237725572641763821815895250375044027549207276488292345095705490590920790308987837043470371427667814275813230385832367095805921971899573097231693223910061197205630063598614384404631477772535472180023874538807689737383357025382292821534483864137508544271076272216428763507403618891900891535299305752064078515675317680886838804782645336818814283100509408862124109228468818208004103930345985063380917238114457920176311191503627633416988068013100115407048330422630023048597751333521199203514762703921507353228365226640683395186573347238997882963413504850832569708342443678075432254694556561320646135156495820982739040416415892003078786401675065505696016674047404179050670683655653217676496209834609291227009012862960151106949726875992462744490802137721031879184647143907681644494739068478639167597965647295137047500522508991399785265600079560905153620804568009439771660475472820947285193810222864005713887603499023235582957106183467383024573699404825031237243421016165337262240404789729003374977277155093630412465682042015967154236367697164573719557672526580162534121093681703461056450879835741539081402907749125466106256533636587559910946410028037053834691841409906112772537178648658673895859681031999992282978872446650372282646889254073348631786150085638295175836038496889104449220826486672173115367422939665406609350505471497783943363048816818043797156018055115804994311353260880623267404617101811331243929738915089988028864108278915947753525529445489807652455548466871835696170116993835890818230780906391663756541027728184694103435587362755839048845808033874090021732205727777121991058656361726610698029389711094313228339475424377541230330528817649360686769714103309530146888883958510348506253400438275624878728922533264813508215230437293146282318540965342297071637450197267953534179009797085223457050628230802405008581662632840810278735562433810365102723429849621446182855186438042604636789502315781434816701167877613113924988176230140355160231528520897792270730827880296488172658260029469962191359456330110029413534986320566204861973064624377282990884603701762886031489319182274378527729312882350448609318604514306011995710170005238494469258824214576061821702402272039395818221602174309143951775352369336812189530123155214723589896915161797610678034727312119279715922822266414570099156393945713191414195325074526838733884740389142072854471103664695815695534611816362949069421442677879051569533616649152567817597312813190534852795892590571248373542036030671249301226111233306687896354857074508771195907909848585876704132670514950131770427550460436555154771832163106194363684777808787216011368254174316005495410492300364613603617043473529695008903911918539576909258916039299742959834134932331383181406388575835470338249112205057954286664350688083386877632029341268473075221906981620063886203712170959206042574622159376080280921836251667593782195431911140821083173108774164198469836228530153178300042993390533036404623746540650965470480060747477721437120443299501434225234810133347361106620624495944290574293393924455352214628887715796379184920954229437471051788177782546317829288508156247975249822492882247893701703488335709811554467004439752847581579276243993040902306855397319847198143957253452507722502447187494859191689261939972974173000341978900971605733340687380412535075772799078854215937087762415185882274128774877375220147513616367380045411277173465245911675222475190885477118118837643557534853289744617104998539891823889226360392264274539519787836905069146686675856607305146188223209389041205513128503344514413155521781090639118919521613722991412906814824227331578518878008632729587569904337942410853345053900853952923509550550635271692983073554942449580295851027296504039097766624378344016623746406471920697326287583283006254133929686546132745412521221742521052365722224725803697655037706253608569376134031806590918342651257206693163022651304031333624177773156347897543979897669938618175287401703515484980502765698191837476262662732312364639048546760177889955842901504717134116894988184810980161329600506811283146235543115659115867092121630512969960421148082169180438323472257934422650564304155759134477393438578785830261798655526982318389645932288827325996551616988506481426211583334413200143081933978935392702891484027703741144363242189651710560517573708312218499190458967910959294341569538730667408222232679927211047602878013721718017757690955291135249198575125624295954042339060190243660667574406885854178826666292887562722480182021382526198171075146646279472962114055625007454331415961009714744229676473907766532901508165790148360881827609134917858381420052218726401528337741319600959436295235182620859270349504668403810559341192072264044484761612651843149107962033407061101283928804730826309282944714416082207719053286412357639758991506079146319320741779280173675949041987954633993448648683856577276360081106960648371442583723508439616600369836060641110351922123788412104223195494578968625179700344196653040040124577248071966182746242458408178416685523329609491010052242133838410775620831823603082777636105159125250781923539538899937045316722727088146817205821563003231805329594184657561030321004831299704217445030944875967841498179718580958711833064969898368829270338070234573804830308371004009180334198225929150172410560296213898046703890163993093019772651835236056497318928210601029640729516330455381261008768888344574998400167225465067380959522547365893745284573276724624560468431604826322419772995046024285937332299356904840297900673566510393865651438819882172276056915389829206943795872981041011400419629135176453740262040631781590534685837571344191590798319445351065720193680666923981934659416037325248994125676412366085697064002820571320091100413632438339605563523339417139643183148006149617668306556695705035938288354027897832972074952442649324734964412592666580274266629999457839541388751029445928526328593282681564681898026221989196914637224469478114447602761464265683181020357208878700300492360690436916638245440075064173930677056208507760272878106112608691549007409626925836799473391618210250300566568599680382531497591552966646171543432600167864347442087114370747002936697726961254940286483970866855505536584407798471071800719987772613138185095680350424351587348436691200322808052832327841469735887812281013505584959081995977886319179982087499111321565646513945567770037786563722215531836957134213717020357630418652816195208267843567796878009968809262898811476885124816234860185378720875394202952162841674274699710496305305947946497161011071540997441652952145586372634399848645917314781938068304571896291444127411290094155657276757166868426896034968344572000704756233525280642986688866074476331132420993666317954585842491659986595635560257232887857801781257905526215733254851909464921691376810647839573909854400588115770455145441003931738732390798690555114575215721345459688229495912380093428083533451301851409817455133256755186369815384390042854022778650643220812813949601143056118143742471986155466902875696606301194841803723660286792171500778288156100529592440778999413091178216138510140923695921603844832723596235279500719867122534414556774142724614015670032487631953117438261241416198976528641561832019384041791249707148916290017080205500026932902428074604597485738992665651830360013740698357426830937685479839896957208064393885195846896985047994500466415223547368861909296227062525246436918477597045563391036644058945066932088707948719827053656981337628704484703226961802954938771224907779874488662367473882444664575349559466830020872657789338955922714807190876460604347486810616240921148766095358705739100889135305424039490602793031418192112893477104752609770276831309734598186560161681265026755203572520074262476182322934536450069634288582421513997292706343144889017014413474091703840898532121186653080558098530761763999937523219723899070994416891238112992899961403178542867539385740232180489236906065443490172672771560120820883607577577617860640834308423490313703372695565047060985906261215882276517552696158431340454375839357077166460265298852490214769741053376495661342883380155306173856443361431208593044890373321917294098614523901263144434079244835843224288185542960687355996058542319646790689151700390162740791655239040827437304043823226168713910801958683208443742541172009055519398126112601677121186975780261038652929960300615910040832669973489258594834121909697994893482165341618839545214948295005138177301073962283018665434608176302175461238457120687662009122185777399352611609464744443836550082740888418876609210223983163167999975652453168168174938365040578222262769964686124200944168433373109050906721432801469442534805977236945365561219462121445703209079497040661400061911465643113385198344676207047062651585744199523862349270764726226141789147381370364857522758918700308730882290595006626817721456818797237416381239345924411421336151837035142661922273150935104997903733030143190508433666931030010455190112180512286087801923838990327056602011200820148720637555132057850026056867518636676852185438017854927715299115153419487912987588641133213985548088326895169269027109922116408166786513789231142691280178274300898646954588428151715746428547597157692853289526301583710476505853219809760477347268960917321500438119082048916711882365773824326169768610709302768342240690297214287796763475867032858147623648152884112410545476398575344445079677077748652212836509586235492090982423646533736475447860051517848747070412401842764555096524974545093067617930182879472759998427258627809416273761007715750618087761002127074997162373430021900398954346264985599288941590164851185395244640977306982914963972085790164029762881450031925300068799276305713837683088036628294198667534951677724863005075366589241044075276858382278072806832909940995970063329114373748124121354056544744394432528703503279512493433872854028252324637330944485746560799834650996316730040716524467251808337570278404397200743086084036238383166795438394681167374931005868427803563246022904793993825462007900295132854416670380335774282245201399623797981608929024760045600619422147886049807954605516361689746340197239878813351223888403429786383882306238460207361616001648438279380219341929375605131352153320064663133547412958069092740826094634788413881149928824125293960698757744709785268091407181742846853403569913517291770961689801693515737413247746402043903675593447646831201637956444616303973044131903034792227168865781398311480939391640179505692854326589142327384482581985616967188298713949435091164279066684412014242769308740208187191182996276373508261120693137117919190389141871783531819362294665417894288649208355097373683843797204812412786758694645945727123423788543761402008021944169785060797763907933265021928700171543745454301876263133479567369341556502582450328960025935285808328476187352093199074374087398320332397375077496584681136651610733660774056151788041465691232170377448910456045697002664040705616620338415471228713490406680269517021456596960705663585517350603878975265608694098059475172967970245170955767566042728679284983110749767362108782377573814774887621946681590450821947769380375974849225735314605210178871059391150958966021945249363154940724418464715203644748375968321677385947107953251664109587462815092700917073943644418769431647517680751084499774029617575671128700489019842363407464023651524736637697912047406229185771813030587974819726870747953489359549428711517923022560413143207623159615423006751743156793114908813880824605577931076646940506724574591401726112526225985056568545623189690182959201922691807959261936791953967224105845879180055695901132479426063053521589847969884119014494346304523125111835911081809633191064538420650002925551812655659857399220391496328309859264417214877745858416020482321467785584457622407265581706826618109810339962451546261455427719119442918714842322441013850806134809977699939066409342579490833980097284588674625979147387975947640132837783190960104070913692707386374019918938925311168840974545702815450085261365649089086400919013860675374396476239654681555162914307011605488384937793882755230523575203368981877714934857637575212614872186119793364610737605695920521168274506167000755241001272865133531860628842226250817304313387208154507354068448271439617202635674941200903255319085215509351631157919925482581413415087820344103009602744429372892867725649394596572600326734104492531770489580280381308545964380346254339306789179045445369475809797654097014840314498653956385964111716977969431207736181283636865710041018871201307143198523510736474192367109926746225533116678696206929582196296336998144810353270934025725589522848716855640787710602864598010322773527171220986959721789481982955230014451633407716337097816078679213411630460739384719399159770466691691635039215941820414690466066831650488671727086734473136373830966855314329885747145248586305616197378828640752691974175084120054465797950369994675963280335047727562913340254178012909414464345926178422648296992212808935525294182918175881177246090696160432735907955185761912347498919122567913299881542939405355456619646212457903787031452418500797101096048836556364375533010676901558604564638132457810038030454991204961911905019015357688886546534252392004519893309877101255429572373599114539015107489969406797279548486296944710786397611485738793609591900811871851460443740901730548792884490605016362187568158401013681463589131825168430235224548604514349539527339380649874979386203223581269490013435501550327622854377812848486157853178599959208225823155670378961548175677192002735659858525527056664255591146449224701124872304051062103284488935436945685766592940902520353535215129935045429945156402211355311910807573614352451171773363894792623736344050859537768399234986719769651035888140869309535886299343623106802681900372419192066075203474452709406288820335524229466384173653001372573070455099591272230844270890871657139523632151372079659921963782853545369797249659259495634702089968440375994031661198528784726671821449017157805726577069374069559646798088973370819566165545446253872695126574818414679280600739056098728321439409996563067340093956173914021744114726935380674838604518767097947201473953041535720002841755074065982040086819045461721413205798962933813789630681633924185611815945247394380263238593505131101147135026228929001261306006234852272216136026720121941129296165255613640768718499990231462114685657575892535251235277855266235988234097148554903363256558778080984160297360935078117188731377287839313173175579524322959881206324564216347346594705559257608736750020043514099440937120840100082110844729925337318660441243742743759025161167783267252084488230752389895677042243918676893122290018009792361769492132868655054743895660845728503444266187780148888808558195382769309455245188859942670818545922737584606067369493019396513746424109252704736243120319279828647726568888697486537050867218609147411145208267385566492633545700766396522943325927250277036998464860087567569702491137455818921533712703203215434652500644777439300627270701489885042170346349222067482702813867566721820909717312939867007941167182108101931983507197842899663189093405506242943119663974225599821414109295866096272882913873405625552608747161663952613262411180370941245394621377426798562486115543307198260633515832793155885887973037559786482452283818044246184319339862492294567880259142748473022436800084631183562115668188169924798387993777341431775201017981876849940239467933475514424626522266440962137143705033616174008188064756954163448013159016154059933262830790592559499588374308526323782970654495021235476993777816767955445838437708715225013982702665691164713714085485837495409551494372762886226483392712385037385656381441532785729482533853819773726884775179564070293311744545394606550976896955473730386066356022596205250202479482011875395059269673265659358198043564076694589021970725380565660372579356655205923930411919550205573165025409932800068023058675641197215931309209560591677131864262924598571974332657038337770362221261223125074671385019621267143109398401381643372155482466966287459945847037563702670024002067290863745206071013406121944830444318244343095903768159994614561153058641158444713486796072584783365417839851083891786823946245173418209169537036719963993615374213527284101290337144965764939996542271488685588201369102965532314970826898539654216481143201336171146072019342521289581423673986799932334863540908969405396817886128138541788717600465324613857055103361444434469995562600366089158438531884490511669604397683037212702161680889941520590948923684918436788891451375617079194408502942180697376746003068302830610421054175255452050478797598026210350550326768147651026117216523506186241261271779253469011505465419573410573969822813808403327924893237658028817759625990097228405475196072461782611725118840317444733336208599609429769033324025875350047559842502447936738116081296530022037091259406320579487894870000977240196874687201043438614892659791691935839820932109074002456390214929348779767502106275838520414462623609905426854620759313948873843172271921056437479258689577388002701708804550993815529075472933394087408079641539484085866881088435377115992711310715629637392833068415619030563271043106481117096119742688018386005240539552252672018957956478673421853856193871781237674762390407146917592247558486167626617881783249665007066801604675079739641799226260173233212604969611147229234160582292977499231811543692705096599816280035638363402125005971451804264534052593336525302492580299518404319329818484662068735179607014761109069578300391862469949546655855640863586212287947494836837095624454717900753650486680170846451210272187897869356104011064959485683875253003246725990513541597967655226656869567725830644183300370269974376614617686420531814971287359451776970254731154243854905164131577201616259684681800518569624894041465404509104213787939621394809351184502999328573426561301948577840559321757535706325622303888561338329552387083187061245260151431049232279487554367983243615553430091687693352104756018904699093158558990287083748977757610261607660011789562656134285169028644250538838688875056684557492466205651885923577856240538577611919187084585193805034616071264328843900178752319212606036816947969825939984636920352297601110044422648142763985034109373198101173932306932145883062360175272108765716130429872239100508927373568135727932334144145220286481915224195692732697051716258582897539641996698822729598137039785030526577509600103158395234510583092648054454298384666125508501470644758087219459864680324271730546262445489827114107114029093400866702340493241363691492573879296898060488212262550207320015838651001139871233849324015339228146754063031725309983487499831938722847341313995583605968373107784707956192370071541764580368541428153225317413499681044560153806904303049795893829379954375512032540131973127237741366664781143404197858517972663764411165538992358404966155559708443013825216536035471223954585835889980032761989294985504541477646867304771799828654930183741987288767381750396592265306581459241505775799911987097194785368307393788691539931084861686269391080687907798592821210287974536721562862979861154375114528553103022235473102575391487509494592847050847162538946632027336740378603910811228106060254178618735867105352163943227335259909811332096414380012578481313857128264869421112279106537690444520772550221906389938142746760215404175429722843209245841119429499004463460339498674681381489781523424259319714102295481052680963059212289449423190044546111221205728793969425799833278231594668319394644950571136767644856482489255418682160778727966511224883337446697833622468100193555165824240281954875002579140730880955466631125211341715053237794858528882079926145017728007575886174220358896038318278705814773098549104415924558550703220167361517187532661993476792224806961468817779601421069115403994288679063518895466707294830883579738074965456961237093472077035421709758568484537925122657124609056518746780809330261690255921932784590598476883553186594614296586525009440887727892372786866326892306437575525225298656934794736187660602466755946342354460734894369742292075902939011396996635644641387285387196777241761704837771418985128297770693808110471373737956118531524571676468441488447241514759997015017013052223422170719862202177542589628392512425382657717825237217436957654950913684968429516767428548837595372691084795430647274518706665959072410567884562271887698810477189511776013133330108868961808914456951717609435040512334388428744651455804407381849504583115265343219518135370670342089708854679786816244933802990178805934052341745808705157622030195582063664832967158402492710900704793401111963619786453543506974036881249664851693143110936091898647697712064273458635120516628883357068579462323834831752068149977012616873241887392983957757797424571571937331417667360590351094528632085793316235845175753890351913072074896771870009993090244481046562215646941118421809505537186987673384918052522449105567737988264996110773701752572561377376397029758778929741227967241808095039221237165735121803058831346824946063166866303303920760648997862111223574342582914889182331560581180596572439461102602861775118902715782623509340955335172557237902865823284983130184171189875555585101279214445844365144716700910892717389435383726658659842812721375422810071541933353167998585231298256629646381413492715826678037609784985776503436028575850202212054172401594896040585175732420135712899505133863048927894402034675987578649644789567385745485788856789923790846641740273163170624135830634594678798344271227376745937065734757050614249511891161517798536493538696308075719719098556439075279651779702186173686678547377539410027525309865462594823798177814087965538247115603415548734591086465828567757187380422002892622301424855300245404750102196360953507495537101379895546844289965589247307908700013006973405986548507411584312596688293953154555664676579776503616509936008790282739561865296868197220678744235141657237309772784120963509134314175598623920650455697242766896923541415817600681255245324401825333780697198963892023999345123001712954764792716161840694509515868330691716349013937795279038820298590153671667682241100467935237723966327645778597947511705439023849840766028588981139282252672517313794700775318137612906793411096002072797838080862004122588115449092641162367024198347456264872703157591231265693751080975325536966680627874688030811588116688394338626429084151116657974742228009991687198391310795617307951415948782304164466923356116273345362680936458329670623689141816504981265056060938794309199484272076710422928038807066915966229248983615201601549252699784560649510576500457937868920927655179988206229477542637672782376118588305580606644530598989949571775644099508995732211291853873634568128616913107158746369532869865929973122662114036569165093036818851658774897932720148427206305753276614325179663760517203940551832250889995548621486135027032010388683024323086801255313859211282621089660158698635961131402192464502601701578206346126512625987190740581493686699777861643166358113101828276366588289778827360423984901629100016548167532712756033300634385209645602553277827213215507988249205808925728292502152340983224925399022409948655214474870592616194008620750449320546027351813229906635694320227358060004108976105650186981469568092912405779522189299543497953545461860412265367270592427647002141346122647739580370422956312415777287808373316384813313419899872709602113262458933049707618019026279049466006051829184433494779014711300252939354836948726391575384298923924864592122344627285587337882156339142202553634547155518202919192007409968450458357571689553357405333275127239361191623450970114077601240471635263677763222335265196676414488873431584543500994363852329330744465101105956598651878372542651106728531516851998996453471505937866439932215608957188402020059838255955819207911457410043251833501270145099615677684949480055252806170907153434622557381346964618914373978771785253768607953977270472000492931625026828142742528847464831254906219926431125583956110642691511988820486697672057462883467582692896979325207564046778952760102480362642834598919349308912564604308465560456610082156705500134533017554250696518447567680909758149349708549650615320185425370562867632349366516509489727352930840154702271272350645569331187631195050292292472967487591039180073336083541143940517439461095164686416911544647803424387335619089745966917119152757135386212696635141186172388704996609806345622155698941438357746905571479045672247226231180152206866415177854059920570314987330369126280074968888762810698543653039917904743523656230902769525936627218999604225176659096170800369862527705279647669278041093912301203668673265600742917773368997639212979564385465269090504650218899185459593718507326437400733191442512763148808882015490413022008649489283435216857876786981782171635749468839867185285378108521210468559870868995315227405601886073341287775039523251242561604069550810417070912736859313849986564562176167630050583122304888419619866050068122918260556030938501809783272010499881601660686484826230075776390467859780786626128149263229270902581346181824021724266538416338612958342030557348748301705584767146816746146964181354616293541288290534581375585293971488688340867318505377927949931806803705180748917808147286866651676038650925036746820743859342270176521612983334043737473319052756184886852749792422701428436842612223275317211241929623299058949072602998870497311718697381078915236390153188820484146920415912524140830530849237575690140268494681951822832573146226498430354080801561087030377629359782788030305956392574987066165001878691702954919652585669038121411745081458206901522259525449580378907519317616754616138418678303062565731830456965894549774711482087948974734272766540705666239106565047580409515299110724991918652048984901612652773778347200880411728892044713493697067419090297530851467841475382885913365618129720627364018264056866193202304894952862048132531683746829084566961078968778235234661110880671767244166301929924979714983215487479354675175205872894831680569682102212131588251029481350956143755323796851434237410049081705268064852415950891601257289289191210857164113479421461144079882846149966363815831978164984942190817634934193938063004559561454588539050824834036510923309835664198618124052594482733442267864824408941008961439973617086706960773889111669984967906961454541574860523896013099474581810276399175647136120722198703997372120638683042123827617175368231724458291275476215665970438408057400435812768186604611058456653407520048090519170649952440810079563521698589978555770671280608389396133135905161263776006100050576311563332705479402099291089760202056240607737661106798040199084896277283036619654127764529353330411470812463936296086537159457246918927048362838524174079325838541410368530389133493636132526970719590013124871272229104176041372077425981930165863699164600828073120324139400869690770557150671718127846089501269071784046049118965417595373176405703809944443441110383213417023178965849826602892841506643811050274630753338374511273596661848585899472321886543226444609903228818616156567805312146084599855024656611804157615190489047219411579819227284712041651142058573486815399730357341293470903167562703916723141462246353059166164733884811566702612838630381930123313805662640126669350948444656452899813706443194472492228051868686835298449805548630834458215320486859165389132435633604020656196229559995592191959495860876168605626721417889558101427440277814779689019681662910469577746859008461520468422020367852791069102672193170814109127812512721083282105976994154253472825817224051685208157478355340158260911115274279035959304829947311795608553459163041956615154776035133940546936625012406545920672122197938743898222287518109010886954872793328299048838518100121534155303750476038820558919496789503080120084888639372437948174613581744909914445423912194973377806446217089677215222299980084477090619089059428085907049913677929663541325290859035750367840984372475909167720432566617900211167504604102741314468152517468539065389556742976598501663002834346833275104153133340149391675253940963445725259216421996826719141250873004005251732114916134704749601571187648893144652170007615862621718784396038206239628748875381954467069663336666114084808054514629204133484948850747096711485410775845606253093751693471016406715309585403884500648241286210839679305767875538494327334891647027585802485790629802894545231367240646717349993851753625720172918389979780863651745473159628788727844544326264163007195908842399030042954828493121876534450131236518762728925672780867860888306458173027418210639693147682355613196788516645547284343987884419985384511606932041685551596512648814208516520135782173525847765705306616718164541102810749182564726307639522382191251500890545775373824894172262715101100607529757050136704989065293201524558204012826956144308673042222494826379470340656188021521037093905434614709617654505327854032883509182706097691287095456513652683486804276173753676569341205685622043811850188118958069862046448720127623378665178226073609620867805407377780191109258142358415269745364865449312368856540362875756289631704328345145856628672779044054045289803946260607660933267256644977661530384892923930607417776444007492987288229014307246444034607914577874455465496054092311380982675235601775093490623295730594095384374503117747830754743014248190968340318451161445555838963793896534027909161640634905336858440033602269915169100737511977984194385521429819598618186693889554462004250108041539771285713464826668111829761693187005682367089852276311672518368804306671071135238564969818117567062028011859227660672200981452998168464327423279419946584199777157545491182193491387446706152199304472161997623750120620458928188669474932518278793767881839175540168666488797811730844220336846651347858263416824827064948942048433737298064830994554035301647225759675377973340888237976024511574959934262732970755833453844142020565137281372789589808301710513899632186077653002353735851120421467456884897159296931234806477416697461816154719503180256074863225648712813048830085891866724040733705554237713703308889376425008466096844840375872934347940476611297162961548314521882002058024382607538779054570245660195175195709243517218096684456754189613068426256924838744477781519433959631936808459274404757507212044781643097818546918309499666665763037039038728605803918817618443834744773007121889514384457482551269447982058918600154804757648899482851995225983542925827565856606025719426589359256857653036931596279950097165720554000009624628714742245551984359298616802060380728477977348878749358307909145929095854969605760903330493108677233944997054065767442434232895914463172454454823268250352049779174655384563628631313005889606062113871712989110966658974434855216700809287751110563336710789984128567610492383414444810716142895170498649407649891002765382270008579777047815216318552515283794037968684042006352379586370568726717154718336660272584871964399942615038139401791181237764627044592025424223207700679047454365863391885258144189020091047099480830368574936876798221194346042617126839749333591283583802788732904071801792437171406496747860218422206551372429973386876899270450448668056346886218885392617180510098024116240898221088783020033786967616804069214361753996327949243054165848643660168224532929046742326356819460031461242973668857203968069233422447467015456551007038998894882824638899720655713367553084217123137754060025927056329114286355863389931010089238491131860038931021608476926745786096057067584473327090813511770452810405595428712504980525620218230473681422638450846048882320786343150307139922773385915217369265809773350739186501980038794892471579741509821118485367322899480201896177345059960105288954446574055136709906481066420528088584244228537209656051413439381504332298015827892675595703707107936875464526827180406896686820020861782781158244326780282261321048362489951532491645854872710338184955366657636210778528192537963105285080656354775465224655477155136986258597836874161572893598172348720650365819690393362980425609788645527413419558167287664161199780860605921697562402617031510711301750162164594210915122330982132874085508076605107405829891648737424618106802047414786430847504649275201664663530452290035167832289235840343108814324741707792671960077117204722995905642877073553927443549139163057658405839437278997100447507256883565167432116723816492817529342585211347598171020467632418268641211516230902007889746755937446307685631282371472036059010011027815240331837092652676101897173059236951131140787402884392473764884449236957471749537873829360149932016888415401631393151956052218041270609244974668005975459712752750633948709439020250423700469240363922518275773462179566598127153508145418999907642200927094497998094558221811803365842466157272035859051623450841139175948297306559699182517356203637625775447317179910715970247913195552304856025105762300169733451573822713988131794985531221472466043753576629556070635437938155636693484875603381491400105214288662555062728021759585638132846133178863412390863145936595804059183177646080943925477825936292940224114997076535766826583881761987296122412541096107030688546938549855664690280900407776026573003793137661728628582272447194894809968241394681946281393051757033702729263187335999671831330450705772988035525950458559593225267251732137769179748270633074511460576955112909639092363159473345303915965194325795062006278225704629070851052387874185446967202208638166643586868175747657489608529753262666667635115742570076528686766987495236758742416098582063625623606220468019552113510677487121759482961309408698850310209990374675773157838326901437608479055032817904973584728148155278872019707925707219257223184215582594772968298737180974178547335705371411166644148441273713864525206362035737172657753368636660944681253357164641017285687260074399971708604344194513084047475625830176095684756468735359571010197003834563970698299386925940284100618479812712735739073579558040676983598934535831717133603169718952475144600080886834581351498556838437662459567466448736978563348706868177499801333736336256339187715828678581499377913525027698547742772922841915948163641143022053113667499211470693754024122685078315187104504502523378616552363224177040828868169981197665263087329757480230826655870395231286579211634029979218285940843623698050389957500076045765538128990134352745613190828187494124907845904014474316820146740921272853733431442480654336105837861264542828207948594605578981519671600972171318507467895667432707199777377593513559296100543429250486924720894602155881076425775200510788973985957523784034146972593931742377220484718625496073640272093784655045633889317057248526830574631684896732608361492427645352303935462580041965588660413005788982460926222843281890795434394892153347545783559727262017365607700251679210999104384372926184583806868590062270924134400453765967343921492350406526737124802692441594122479224375787998965220007499604935061399464105769688964823434868238133317584586646803364242067909715140740883211635173493933954860016211308018869554707559871057447512707429762685382594376180915732500833618718000006993834250731076553457630987241037265320593121791688484015228413681244858637106984751821653878068530588639525426092482218444255021322342355198355757587071401940914424538752921671584121725539187124714459692452100516214084284866799763415565546964306100845194315898099709154198614884943686439577492795604348424812831877887754597995191059469666196529675035491531460046609721607043484293208733607444997030655185299579926337149726235924165647973009208329810520563243786389552536303472543136296652080968724241965286626517214296071953319317401935149781325263529864376862064757883287380958212102852643735102130827064189591270352153123769524948076866625948335193923180265722855081421899825610997600626850782521289640374438239770398539735341262654935961278518892327945884534497381142604399500590155010190760521672759897527649862873381664291475455972336995312364641070530949798247569936117574858107755988321050529564570125775363730893687994777190055696294870163988562612606576846283273515058677174811494413762582726028272326983265420071915021823599561547486631156290064714898195594283676692090984480817631242680577805721999912318382060773519325737511171712416823579559400146885921264680553950820503566190245145454409185818315329509861669944190965872525905173023445815635114124384754410744917089654298906022275785185568104527699394003599601810267425521964233654910472304855000688924537132617450896944074391201917619067124892600516073241770023944585479610896522897009305702592171521642253225621492769030320813922431530909784536524055664303812122751746516750600539668179134078329815354312596172663367827853022342277926201778658795634847108481509615146689700006255143535596733208010284715744337028132330105226574924086169263813792694982141631405841770228145599676692483780655961623813282957564543975645474302684030427986493077685939815280706049938952873233699606845475202760737936872107624683478341375949437250789388563439939662899688641027020780115259715286769594523923467374645926074425769254437337048346887653536770872701172379316014813452938576304649744947491196661755501162927556743503957110025714808184463613921464062771754028106168106660176513494026199914435166755505853180982333437685114670991746673625420260897072954132594644965790044556318151182955002982149216919993154632940026009003571164690888975909425568771168285078846598034263017053362725253833549869319486848257317661504388178532395119494756133438479218371585938373615600733515293669006778820510325063044459589308906877142809767578010350705874363610122970425828030703794694249540437921174586492279601955297769793808026888097789200360514061089548902671896859300223893426292139841158633300840377702946019552387445833122904946881144389813752153715442340493036108163174975122634216510023930154046021785101177236184313205531974483680270278558133920323180421181805863783884483381975572181529509568912423474892756688551688992491084413220549760860365837352801696739629908290344901505257305540957943416101236963445092498312972987914413628833512473913777882587656271375984543773364579116081270400039346805840448536930248321826284744572228824267103205674386300684247803036282649383520532202225541124610382275330961140984629930902095523041801335500567653151290501117724169925914782948598608792777650474391135647948597621422235194774086357510772214084805246466219708572279104102276956658236680865376475134270569730487400803229933052970136303683857367561292964491213826775690461790974548861331007586252653376056516406273462845947366023830618134192178747939513663612182894225378359020587525775794860079063285013807265809102232665232921188528466459582935712952308780697165024091929320329166267358299016557259662191118590147999320693583327957366078138687311238592230785530898416595863101032882280180696962977564678947381663391772085623580150647585641383261421463859590673406843099582633732069264542985026935273414097997706078112486845740183403004047135349036106083367271066781594305894824987510616287184193943751080582401832854322522519037655398508621415355147531736985437651747620485170299133611524210836040733051175720723106634967766506332541290828179964662278361559722681669604550656220514225022182976568764650553009961432904026458483977051154961614391019742795488176920568527767034867842966374808977404424348676186389105117453026770216828240371303485120732061607738862423251967552374959597325693622294902418672937146037675327719209863517299935958093225630010019201647950821172449902184326842180670985140083898904323599303072121715586074057426779167188888853285027806238877675159455903651182910189517350259969389122353725040143591387722618420503658242816949759883104571875421019521884708555671600979056460138678282404465365466340866243147279174385431737148826409635634174610927883036010587228059809995106578728940210792290608550263857792313530689585850871583328833133318861213085165298323499703234199609331375241375120198223800619967942352647723101931022145561352628216369522957047867499059696449097523762245248770697878915602666758254438960384369257240725239033446435144621216207012795895017111111938668976275994356093502241627134392097115001423873378792985899461719593092012296482614463135958550111168378418791381281847785105802410265684951895615129006044925609782557111235926786310528287806100404475713093384120284926093938888225908967869361045115448503008983008304860995105744627351214753494468826725804204437831117853338815356263650157727100680353543067682044448921165358751351820906971387970070542638021003637159037433173347079722068455419875536983683149082824549634350800947347998037845390361372897947702582361195828443744444442336140486063617400249015909680599098402345671662194496330825292826218837368464077078063259593970855053023597346004585659449411866906903870782146716723630861230543095130968194246313551357535707444597869591600492976355833856020889054154487398930584825765582905581893094691508708430361825113073315182546403796209829132908049648974308188918875953526490339730711426801178663009224137778419129391579619854325079761993883870605356754391821719226367603413149292253613196027224168665168370714530917721501150037291821149116586999835393542444536844072786651100629836355507472141229939578164058455781806927302342492128415936217721887058832057348034347274862985237188865161309261630342660277956368753764126797468147293111272865669604959502643995577501865021600728542558881856280261860012748857954015574389341112195859337884184102947426432491023130833179714594142010711372369097268025265516654380969900522580729299831135310103885199682133132427028411077249549740709482419653128034927062013626773818220650023458891329849053780528914789840728820474706755060546504112458952984287414213982639108614173542048120169104165403200835199920698431727199441931185585070070055131559013630669562268640396388339273896077132380334890498292883531440969604413362293585737383554125266537228971199700575584899212013242097721517634296519816965204332824073318218675127818069064324130547356213205860853535751484617486702419209653667729579751397201709996809481136561718019304879960104357156277709612481145239236265630318036876268714275980147531546202956010682043314404895513888458809907232147110802417493914925696112273858610523661659543897441649303025609293096427600438088164078740940730548986137386652179514659624218464390177367137925590902969820521196860186985430569567261532257420405839021111529052698021416345342369128133143197461737370329088931128137783185270741661768775004630898288478775499203057127242247011378335944496507584676271663953933699332171980839261597758820597138689984897451751747332800238966040775851655829425677849708713365275196836845563966670075185480557837927804769700426006974535680856942313966189354544170321684839503849197596090531284164050613103231562804698451827628584622019738176397970456958194000111204405827808642553845536680193426886727337385312626648084495886220889553305876442680251788362094693658703176163990444411953946060880242803288063828991014630078764751222273393478339893076811873063365138068300848190608572624297043368120195441446122899447304562772414635194355134782847310303693292796764111047986115610868560740786301426185052317367680011160975827754521370828393573462337927321168341970363218399487929777497307179955297916845380024838022557259099198293246536944726441973108562780466706481579506160043964251178064864027998745369438586444428748647002041029615523175412553480221649271561534176046897066468840126361662980710597270283699794199189174384157594003340940151036441396881323429177720244524646186960345939736027529491226493361438068634678426860235385961708744169668953580655646585495790061877752341654926214655361798361771331599674053042137379455842515605925808634707484813261347769683973133912623674470424014385720216561202621865473472672777826834206941886332585764762892084718003079052589011441129919834082939142461025261789297410099406969863325296781404377752870017351727584589633493681091077753191121456050408034285809453855398441130957591293412599525854552076563514511457732771767343326282986544246501681522602717605975036267764404237784927605088519372435048184475499589627134867389451611794030356561018121062548152643646046805751414200582131295627886399251169431911034054417534252695855372871450833851055637925688600713845769662067801645660541742657402439586367416929940275113261572553275309120463482502261518561850463655074802403049805900960536005957135031103867172916578589900838469213575464415745860772346098460767649056432603989190548037772335109087527717229248730409076636832373878710912193821371403444766072773475968635916722844389991886627760606996938886729769295384980234092756431759544970701553730371914047794797762493938122544079013870414282984988767952123616044890074345443982060674329957827727689461246848024161545014009129599537821338278885645046827114648466343428722241251791047603346964494571515424641049693194578162968007371051991298258522253199521222533039260703508155297359769720779352244048282136715152377644185684161634928921798173106594888434599904218966052977474087902897942571921757998469418648568371301888246743531182423570228509562400586975949915173209251389801925057703970232230443413284257733038808014104451947350318998943455663655126006923316041567290940068592617479122028928027473852332794049393390063843602078027281276688969473968810850439048826340997828846989464059177807463435571957023509992817215328815447731255607224578743858004738368898123728902197274636658791716646507720300131226651594090702578501589822879558680193682678966690118368029308980968400561477739020643016520788127807984117010409381205508539801089077824779715144395097263245190911197190334168364702000527692394534268054940011369742108840383168246318107642529850070459147120790229526033607838574400798820760779370635536775443711700923130624548486919164805414791170079029542235313462709122831956408449419524535749879797038791520286641071857394403329593048644037738618317285701785246250782813123466708013914162912999851852266887969334725666186019372972760715650090991653833292454124220257990919689033854554011348540599377361186619224497092944920594598659234839164621039072040522256387402583484669688826953446091826036248977200784308205278621035043525390201709171817682558965407015840933714645594145957529408372153082942351188707036382302867496317725463757410882383402405807187439711412961950161358957114148139851556984370734582057179775522797866295749602333255885533139819220417708310335047091776487885993741581961047860812406635598997176308582102689620390651916082089749686233800883778018801304835105125122982914068933669103003348826703977233469441097087075295718132987408425900640437869434290241645419398886568153243023869939844373413034111045315253046300402925494322676595494080845027187236513824421248183989041888696463561795046225312139171876997623428583838677851271329126679156584577640811129227761652197219809062483725289744968140223872823529260191957311095488138833092633931543383675397066961097134077990759972597443726144682187217102088141361625730858295446480453309748415551796654383560113444491666177614533431724439700409758558785757256648017067179074822665230151333858747041929647436140693091190178761951517829820312605940630500753064878195170574877708293337912709880367306329695059159961142998344414800629189761094437718259586677824036791172217606994973332387042419523355655404374807106830183540261847017773387875044403464491329405833977572879236096860534629065043965425950131055312092003456494916251025049379706297532179443513980421182831259853377665365697729000907119843884837652760520351584990878884627676828448853277419784886641957674479800603491847378220566508415504754163603873732545718617665232333139687230291514438235554396659001311418663766158672698072278326776978404608255731408312969478376108130567761618830446507244932751168207586517178941430790544448979895498926349438251775353404747947033940048038209523916993657068843213059706207283666492132365667792382745142513095673942787794327766976315410552413445020733831247269660858938413910882605164850732634639148204438367817994448030494856069526286176522550212429904541329736119000982662516681008811515696593171712104855774735649467010193913045173655045773916641247607649215627378574265267007093603351381437562589771153028716082675453765607390897486953909603716556038792527276526530692939067032929215447469074611968648067330164300941056385404036893993915727174382610879112331556677476355380606860179972316321929652987119811268592487269687560826473072874447138778810402121043618861606800183961107302965223134503950562567278904123413969883998676360858742859456100725475405828999895258223593879073864602763568687432938031819667747265177670577830342344630032547791716258678220724102227232859791346957783909693870706592022459575491373397827849333914894251895301091431991062272594605401679545319133270747739547449758031958103199720929565904435349798672732039728705546102318729212804976233421498641789429799082663207595211341345660647787978333339079471103656200455985978520383144811230455104256292405737197495363733856810481429646901870730703098433450834406904678518301649942844290038722646235972477558200664569422421407184866706870452606363845694566004301489054307267068333636767714061425057276818489042209258747199061560151543146889326729768444201806775820676435793328133611692814425094259903735790419551618668063226203650142087516343634415104938936857078477624840297887811661680731442501654886452406391094678168282324366330134285461493356924086630699630430855695785481206821870292577938161155203722991610259593043082852114978030070547241681097352095666801794795938287513607930885931837242713240677672771143776479010318262067287342531451590351860617562803593812629512174982573300881386954397128730590161723140477720864897153572623216193648476322261782347264818317901257317718716446331539424902720031026764738096846515761263536474419430361632657000011325360707993652845987800637217521972479147546097887690748312556613892932879218550907700066981858860497130368617324102759983693036801430869258750996683099904811711167464834993691501374275359288007031419951271184634152349438434885154651712790867686335160929431976413830130436114517999279179591200096269650324282840711531818922101682293556801806424276740925116956771856270672061573593450182752274849117183796953249022104974242992339179254298648301640976442307605106910410776648686262183239697877117629441218599385179979176881288621297071114360909037857346641570891685856059088779072404126102266818056606382009840814714844809925123558613214574701220109444574336215972900641813036714085411668649736979008996206334504694925330030589448332837595208742344208458646145241201345835771446281031999905804464054476490190921481168014508066913142126974082866399743837431222373137007716356253863575190421855269349418212087462328393635667053215949293306834762917959422993159950705103225826258415207164723029261931128618030869510002022935813233176230843736393688822161839850728921655183902768634236966055034314451589629058053361599355420365878947131576606235301298067754224550271884558610013401787620728717255789908366170957568704941493170917497408856949285658028587248336323519461500046874705494569736778111457295946243720220887319889349651356659240585829115614070252943718906567453260270532571166304872470163805766649159829178020276109028283191671560852477273754191261127681415067138768959991292001149644296494311278429623615749951037142138922421931240815346629850555978896208837027278751095544796828444753476152254587214324943551346410825461183916397587729761215902880233457453516612189878759966281710235342466681151078470937378691217735216507755444210924879315303777389265074646038134052249697087720101343442437651985354226956773518938596714503853755813196927141979074369522199518513165970728185207596831224477283381586887348648161710635891456628149510080561116898532658864595908966756591979790432502039162418751154862941913741098061798167116217552430845006709176985734984438787265386543918742711083002379843719339252851125974300092642393664714528488898760968527752316969674339427830311130387718389716338033179449163850563460362102072031735626908487662008198990854830853768586711813560027235354400069609232426140258224324067638866911681223500644975031035488422540648523422501380966448105561251626122274375806843213487281372016375470080258525361423860169660869792763049691974826862358251161127998158790232702808145524210819791558425580066051040101614662889268282653788038040859069378617232905816834262716251610144225349593942609656217726959647882757917845236522641774784320913222262368902455745836061824795794655942895722583900090107906215061986063522442315085113753203976416546833532361862896332798029339289006990211885162691336032885114316026604581804411412324174094351113799185209354234166863083648285161692591248329847559734021888229601957925241082402165825690958243509103434593069080343477739387440000495245215865948264838846228887500966198253098874372360262820960051520913007400517953399721941754089678917627713974142602867462701808845313496864321794305647260592802178883959080165650640514103573714839199887928585416336153924705835842470652503320561157335025379373344294268831207602842993141474100027881133425179538165409940782923918304884858257406979821792599229164319611477384656102214237305372435552942853937758665551005900869300024273715082094450646304170089067282752749990891851487974098163412659650972878248661016998912007370541952542568213188452089309353028973422621154426793025811676391197798014304190767665099410449543845147758221747319168939936116227945702137047618060922768665335361428591020805474495252430188996555511872891183582931622869876150622310138419404178526639325314965131480915786537145968563076862830790981897702134266161376966608367976335983630696246165838208823870378563707045244276322022702070895743324745324498444932057964549951922015336174379466278876791671943632397155478603570751869908695393522041637294375848561490758264962627395764034553659409682115643351847553930417766036527973550176911991854690145872624881692604673786933230135307343445710401950360544693326597852979115048662252402485067605260649272883741779735432034155919598977254497350966567955545105212957113375911318635197728025120470271358807370658301754653405143402479129714808138450662009579864168520264538232130422148358281517726358879409078526869465502195314306578176179358490416236278135849790043078193020921199878867453091464311724211611468024187400876070434689286833842487082652882343759366854426707066651146313718659378724415032646375255539307440333116879769466098564851424049224194598161455530690307582751082941974803782293899079772971493408770392853894909784853891263022398870144052548479210433729667907754638284525234589170295210951358359462876518135985953863262649915987700817277183934542047542604237221932178842113037266572975422762425238798241464137665611582245970294254840637952528751816897054693143778293295928478761904253434891775602758093076182552800762438166260365898279899726641891679604857236450122756435486993429139144093180137694915864654627475811942260342405636639381082540093990520138483155611886751545546789621510675049485829074713304039197740906796404070147681910426049586480123304910917720171865567085770412088173219944809158442783305032032428682338008122265977629125395372434961975948023334052924018955828439708148514716249012063659107720451783594707110053702824347975382038179306747293072323687578306032523945215424130553706028162269726398868812750359542677971367225982664024545231294480517841629398308887524769438622975161554377503807643032637781481504831901263536531821474442754969482542544173529067125652510774002677586447482715186522159274140619071436724624192005926743655272466852560913128696451420035752558623812164674436252197598464393319481969356161194904141378555414081068929877076022627585467529318118739883894525792717743773860510726419363632691922282348768794143578387679952332204026779924219167741654781643042380158255947361695717356522937217983576989664120441922896165797630868768058497530548397488249669129613512313804461985455913115218919443130953774335682503338670869006427615623409282665939142098221900522920741797565116420156644888517256589167606928921004243032786217678627270034348515953279308494122083405963989315502164738992953591497827935807318783953665526365010814789222298998317059640399899007975715445740325199855111491340034647335356499135094663540635270196824460576871631209919638646608808894791797476621204625295291411318186931074557405267847589485848323487311066017612874111035951576054759781893748805872932830248309402997838102004818386892527487917959251279084597652855318634981991558065247295772494691265131031476729955139228456352891418550729237707847333248774126263854747496312378618576272825531308251059186565908428000691517333037716288570086141336721398699890972191010691435615276915868352087217942989724329322041583997965026071549978644204263218747721597329195942848310927834670354107843302712390569707270264726129698797289283107470206381049623999055230141501024845805212229003371722772237478645071762847859772137571217558149399683509888687163452525975944792642437966455177803489589314699846606852616294912080698538201552950490372345045735100987223861585526725908767476026430745647817502402941205882905621269269798492710505302059766802597514584544160181179907315864033111004241785246132858885581243888502608728201396077024674733923654757910582923919233323703296932209764615804893883074612390836651468400515786286435269632436647335545184553721204668086153351605098065428378488767376860164056265413883245145398773783786178969654514909374295823152604522707323914791175936134336472381804105805314996242611206482984186581526982605005197339396853938561514448447944496307399427424470403129613530187529877533958892113098730274923438984946035203705844676041034622482546515888939598491319489836419314767163663361576028546825974783549627892883368579306554396885151480432382758491421906404149778861147475785250115116773997365404423240259730373179799104407624728736386539853818507251390779149391312184902439200334026782145550051824842014293541864790998092982895588519084098322451584184352769107305765645933104680343860369224449737473926672786105362671359952811022913498999117527132503412360153595319278197336716262807614990765574134462944497581910298096760537923230803823512019295260517494019757715696320217798563306922510847599984845738448398560605789514962477686530826290466064333367358082835814519793654561757587125588014620068202353208170789291196962132509159354115936569875107811336365707765703577084077112180087349007995973396408948751584594700483528217052762401009608671348212978761458314422938749834802943238554780636706253255569690598424983489715290672990472676318779842326339020809139424498409755692069388969353356326900194684900058080517314950000531506595644850406203589536336339028626179519042398336982002951355159801955805505850703558552200033683274217271499198830105076833768505648960594005261329196390289968060590002649815550031266734796533654218295271667986788601928283714785831180293048994316600842962207708751681431889430916166610052871078435077670083225913775959597265091416517484707314004671462646083569474231405079889890413756104347667194626858908968663638913803530449264611681340246619340434508321213251318094216129049703565767038785396962014132380201880560681713228205568518006193497204982437508578852964056511471608799640356270075291546082366231872385633547005437513553171577373883539200104045931118636896959952638414638643189764737527043842031992533280826744855755525459396496756794471349486260069936255923284435511215859476084317016967319659973936637808794701911523816460834744147970108242633365854636373647512956570939992466700059371206214497576221210466694164352034010283228620222956465747463659495124469304178866659584576662868254174870884381341085456386321991912591385291669408368577399692463961755725160017020576275092035790008266760762212482864114295677315542273814594742774308319790962860696186689814984204537768004099334617174019325180066139462556528477985489111455618813863181124546830694759651834709679738833980973318552170515806709255399647725992251642840167812240028249094669581126803576242719407516184094461632429743133283296619463667159184668758728002486582659949919535620550188557373120426999061276991822318428313088336772269752470691372769850527619755980798800270180114096138585843155913511184824690798477824211752081782986331200537086626439640707296901773875058632034262846298908391342116788877429733448327157352649314646738433198875893517244722373274966710791349803480278371036220071710630180954726263926658646060899679726531992922468629502449617564487838501008037004810035968583161673608788024940724524781813815192095764156212669321624482248903487660706682789976523475668632888439735709488920216342106461147951692553507449176660282253043718936388942652560403363877281054615969344726869980287513179883582101551458916005502521962206678012758614716505102820628376768851135628029725798310983433559802731403991695829577305836605299634257366100747610153188849345568668613786863992254459250073133148564996772725693904970425393048826038700868209932146939819315564712568967543627823267636892680991114135023228797737694134705380638736308575681438988078415121588909407586839154796240177935392315553854737883203859383104248232736062306672947286212390780258368940629929093127100944501859155784563809677829154765938839657732246649807577768928204652058780791152518389165480735919533102480348235288844902731832178128429867037272907536010255736083521740673699204582654964808432651941638597464533272944664434082966366799371659916720926258050125073999487301289950682356303020705150243806815491697153488903924549135903979694861608377090199817288469016866897628794878511548870063788758608965627999032986968887270394691863855956266592225634887078267752571043879560402159440965236891587025226117080428857395831061379339063591878770108850772059926592605220022703850220447014408960615858367686158501319431150721855559402079395877928334094015614297900883081795895160762606387933487499326112209495220526389549593659679816598296965385392444345681990709264405273652272333618342313499669135654283222728398184760389437803130154022706000474406370474404888236253077267872054910770911639268467007302267534957849541474418615217872932558611919976410647964052011250737390300678394610552733318428027206129153530314250538463058741505890621439500409245389479925055078879920186373652637722746521144032183326695034053672568875104982005702019304612112646738660312173146471362962991026556921624892006731634116335505359992705740515966707197447722535860309897337967524125748108184549979581951288093600598117199167767129440768406126011905878894587175401043703581768699589313205082913077516010121123721933542671100524670414542427229447478640953811437359730734589828336375279897754943916410799219122950355388190664975330047181713761207286352490269500512561938927148707195313257333646299475289019908098573594047724340210381146977159586798126913166935703404942853572077490723853611225085435009112430214663971031161475479457699814924989418660023692806771066993309313357313617219894404783341205226974801172415738503065659443869850522568140314741017662210733633835926673928931020434917760192561993263358533074415440345503997907978737197900804143291361260000312753586472622894854036686755148306437306188863812221670280668471962994171556037699435655519445349801316769259989708158497809311707754405728711557809455969619616803342076264971677050638317636282904165378226864480585450490210560521997331057174657384172896984855599591665183431911599428427316590017379458035608634180901664619850102450509713455566782601961772239615503058163192802025744445542792609189761714735791880427573835429919027897033990206028951625241406891731716328100498988598935520859051180698860460473337708572999757841559349738541556370618198790003948680197307059745682973893109675655348063032885973919074307517273830748705410061070955539444163489605592596696386036827840966583775276457154219872476276709405711464081867059465095522711100617791962924045644192460763633176936801452644364506473974222381046225590635997057648590090204519680882682287868698660578885620810024195356490364698305398357982523950855941132774755106806244901405588163776163580360156231678459254235877668215249788761325397539040066570344459025467778773564139986012376224602800175873956612271105020486432257463222356971160570041298816026634592222513086337762518150194920350661291778042276301768601190083266738926108167311239169401565584732171067142407728712740590751395904115201750660779196853650886019532507211821609240671544716352206034919868143703503108475471662836710741240747840986492698568238033684288283345782573705539792838253196055875041244662523053490792062211177080989489243067050703469152695551681532092936057632145940495064081124049055955862909559122265442757879432495720552182034391230306243902005606053686435321843880744048112309471317342096711340154095470668720222002667799705514795558605496460249874084000481269781032833216093985900179196717608792597631391360216875941427063297943354337232392680150356354176043436132520995770641549355896683890554691927323213140203212627263703842636036866267095556651540647755937328939358844082124627021861095317056983588591335138963980057508911238452580896973666497083200976973262840178877148144378230484115598315806597449959200610393168857516650663854805241192494166706210430516763745737046777056826817688191547185793860701400272408464775359097449270329175474622844627563716080524300614468459232471642608269116442869073358296384828604034203485568460740993045958089772985556128351153956416521928299889266478650964102420125369950933582360532131823103766944275933357898640106053480605540072457661825601097020380187246345889818713822325095529606588527046447066914892882618322181242743461217343647485084523445591016329319420933476382489818656609906456982568048679129583651524511539846877171891858447095491964102064354925602824608920577020056976598147117886327163493149211341737974606471915254014920559362259301768486213946900885872434568629694346318017253283406937681795377148962211613076914271567057309003684416723633723897592701527245551991680784489152223597464492415931893542350364457414503590954061227977039301494188885258718521199281878527607317524925567301168955327925628230150524151644128097219398475850639567969728045658072746842600928812282559419024901237082270163118989462618213761141668358728286616152225188158579606138172501364835479213246916804814433081415783063718840281884685408679051628185754599693414849609553995065902452679277900376931962994495411594942835760766075715647689785425075713989303015037347371105926723111855460078888816790418374606499364147300787937434995611082350913938832260508459451397735844937601511628744183311508535101054742303381163360714829816802093350290244831131718018787211184328432266243292880440573087209841645608410646322225000678832497659923962403792611422104940315484123962672501047669493625326858537067512451524553599147936432824305759729226793429222653561889013577652752131651703868959541773697467604006965559356253006507880832808594735710629742604806645107207639314260886922776130315075667007427311826368346327045100888776943776806340404302371362617785186023343415395983394262635691188400529289109286320076527780691603928113314575127321770488987827363330003961673244578571497208684902857363561195837219309936795458560148092297749835840913112094518321040298101109423227071646168964125859592277578780200692927898941080782268915117612613322542976763629521452410532326089771593636109209386399536772848302821599391302371621442686735896683703015131101264679319591327997547826034687828221267305722713705568980625194259399102884687703438926098569071524604579758989846152507616050453282993007166830404328267950976121902705728153471846483474024002036339519170758611861942181236859178972101327629550718769461325184986473569208248792596259153862102623354610188591054779543664012083657938570718986266941053973042755065533958854665384967787388660061999507777771037534477974347569567552386461852748524992021075900702256951539388078363510050471434934748114888929383696768594407741196341908115606943464575046714296330246638301258010589083379522587413142586024826473625064813855518206028732963125280435506082285761642463679616917741090858805693245879069238889153689807924143367182540792748736777503137511092878977841974226600286789499588096279028080003219715073068493953848051691350079606196734537437314210053295401361069587350147427211498559892909851878590317891957688614924225995899125879912118842684947254427387210839963355208032968621460834940544993340779637195361545163992313615660351025983203525646340924561800911587882320572807197515382120105814012214512151718277325793805007688704145732927324264208606091744499155015058862404374460792765289533152281612153673961171441874228967344308733131501056911731524487703181259571892966427505095631092509565041785287322940586139756661199476678597645563459729307365120061863086579495494631420792789216458569244602564562237053859499690910715862994459344504986453611261401044770051013523601589440150033015503792907772728277685028963263766785422290087615302281235163908683780108779514665006550194870505637632083163490608479958213822158531815348811113865520071426646293536978267981123869759162540647117099330444505780894414755996735192735532756029665413591482952638990006178091080738194306833284450159070141636014200088738494857182880659268190576873249854460974937987884401698115018504566949379814447217902023721661944642281368420152283698213751527131909116922592765471884290055672079273630726846871924562551876382575303570179503883799870101494478686450616738401693211676530246505060335812885051071656178532494200788330014039062123618810915291930077096313228239999996783635299187724053406824412058873786493911144085046917158114316904266593136488680826333296549379089129528507365493374685253689297557472412300533616492504318646890436425136864504474554655926048608336337099425749468727724804902692996831824293784160745495035388661768961720223035211644454826031615175091738574119178747386397237111174862425439984883484286700323599621406767744521210668286646035053491955525461498769330467906901374181148845599749288457011270257565312745963418404502588283810035322783391219098204278606525062551327495344723716800664454891796704449436082033625725050169646175233275545862621412982309616230960973764975762276610488888313723386292459070701656623878724410047878634121843159757436391744782797716473367543740437069027727614642968135896614785747991524854252205929460777504313235398351439906955012318294156213715130697784897033091938629206448717080672884096759893998660337715581415459587518897760184753661460643339876252933532556189396929247760203645799830655748893778483283379519665304821345902386790225806144255809588011582795882078842856234909888354779645677211444834765698242502071699954427619022376874446383667206246357169268571695500207142773367554729503499585048107872762830933520017848456490857316137023107483813678381049337249156896907789090818739538001795684006777188774683688788128233255586241658257086820555613357716929745926592418918461943307279172509649471144158889443427185394118212330020409961566132512786260532480717314783676447942221405593013910639523636263380970211922769332964444648481186055163898048142508632243684984938488396629984566712863047073511082174792817018089787008650630762703332754779222614140099991701417635920550758464456810078057479277255003879772168185750535389816794762859309986522760327143086314088729829034156055615906431942970444140903094270924247079901164342111312390746401921205597842288291392628854925128366003374051655986582147291176665876139742287337053779015441861875844639347634941315930249102861353848158626397032248847603415721797583362763669053143804511382708767457602599554360356990054063171412631652341588957473147200014338146892912312446347978108741612131530474942321351645128692822946979450362147014614149196073828275011295351458678420401131998760912854821323225578884833293646277875280534649487378926819341278249855108710738770299714628292486433062258448086571652783006866403699948278742776548492832665593350513476548633829174848107915663265387417582903502247457151369227234307164277066234295029802120023427468750648101484879291502332706898211875884522373729211337492284352072080585329818677085709762254718078415676653067849633789490908430072334270715630101842105972751295825771716205014228462769717943043969387967532848326157747866469266387131834236489389630365000799498167907913724872962507605230711496616201257854009097056898765627264388085264457732627651042831170525667488020992120128862480659680339458299153352704304280886099298101974944562510656483240242586941002145459372873896340153201547402617048373425440873559972633769428206059996302893964855534134104319704242906894346853159296517714047679425436404141593594839054180562918665073874261626215039164005851417969657761315990041451233125698229571935427964431471725363350552366246071547797929596069574565358654357752875358920870182930644842974571478704295872024607965449089096668713020795777147996106437160904590226112252239652552294314902870392790997369298112430868324461167885467216260421435687065432608316378659340738302588407709038739604100146746580162546656264314766108336500068687938571165783916874710448943156914118127569399695709468888377953508044809614309924564974120954525823815300007800759701366024201010428867683188854757828856900539479305201312797495745286620202554175817549152649750036282108534448257694332798986520356682620814734815923297612776763080537630761439293555462019092078631123978822549106498560605859576560517044225414130739154596679493708624435327160099164638471427890780980614105524820032196168763011662617046842177043476698253702669540248958330583038900041282164588305808607645835142442310946518580689910724324444657355504157169986493880287569012410830179432405466842261737843838956745312205498058275764924235226391980481319268052018524459520794561085050118829098838416000223859719114018678884283290805370145271766480863777320929659457884143435732704181433545093245389412768434114503801252019343243487554335774670166573933155828035256239662980063182746327319906149204909716026864588101841976453040581796203141876932025986833712462025917729490715391943758880388585079906372653882278574046142088242750588772614513694361458961191574307461100452494604200559500189133905824549169036037908540506494113763383551004150888499425845250089469836185228059643658645905418202439533614953514443713873514723896063587560022573706861387221928427940017564603392742172285702968362504595395263621348798132367614463115714562457344014127108288057929720275054499480150490828343139041707805598237193129171532853147872476473378084161045196627341862149394121863177287848294574268056345092457243058164415027587506518328938018571013123014369219980260846587879764166123282832107657729968837328995513089888971771212742311793931678688157552863830962466255598379344203004234869599214786426174946936336993349104650077670045172768414443055462543579355588126152703319544069604501578140165955458222587727651122812606466257910163360625161548625539180145509155366514312042099577917379067884713400944073643522881036849746487743049459693509735126705050815159695422015927055273827974192418209093667462068120354152008082072239225663505894908435186378211901001602797052014622482796585491044414685663404071553566560719282135132229570529692425939721007010840004834549726711799845615840616171688069499150788006696271827329547466961329951393562251140414100420555785628306229700077695470366611159776155949620660791922521659140284399529775889362445830175348823522928463361652348603442494642956393687336654135401336880427645122730660486644705482387534975296161969276371726756371645890224942320854057871811108316910710260898034153335064940448931671978680632705471750511471645963312665800588773645565759220350072521874685715899037376817634047956303826342553073139118626867703490034125201292760275987582472769557743128827951114383995818673123965574398313320820751072007052730908318337282686870295183420431824440468419577044329991790047205732435693585791923151892454712285261349384639673045802042533877439383464684140792930788233880054859647647158151032531671417373391155197878071613884693457047774627666807012067394736119605007840772897214605602830300120326656286310316544163527214648224772228465719003869269799810837869347487597944451294314679277386625260061676291690272274481391106597969656601220545204109494815600613090660405405505777884031944957317764756224939807433399438803636441311693600212935410459421396647853582579576997126835231592745399232010315124580713594361137437095601057031723981488913754757934786391979360859266392542124889060097331501341091807380521325855393570960858930473466700434855559470751415311324026608243498758104135999452345315327526533657778697907681172963500286264106134160067731358946224666138987926884478647995605344321062530804478151982929755943112041037300187545952020368240661148852870660367424596253747120932944055846820757630731949279440295265896846721876378343964195263787236020990317964155943929253656712257721839953956423888587241977258722057539455686546496220910934339003093349504504886646374091732378551117491828865955929821375333628861804626171139359777426112874179453262472722708050408884216845935786343163023108199776308104101987231470526665809702945459175899647770289059765226272700718824834324003558551711706748799247237620845288085411904922235933721950816659898631790185850915453026616018679255477059112533831112553288220657564545431594797692848032794327536048798665124067984133400093158829350230747716472853252339143466722665202901479440522941183772545538785160606430708854826015293475738118191020639893490142569064814841165109846900274523209629365988121322177124169931555915041060675963677491651215666128730705099014843508745560390840100522434676616913230465310209606328100242562764285443320796411866789726735500077505054000420679298547719900297802585249571691241597180766253234451674147348744542932137697906239360069526326334396182448236805143226787235280683363347663492457511967440305564562716263144301961769869405100998232842585666902703782916892843953251885632694075297954448233465541115036269141947206887630155185303843930927428657016801462351911635204390858181369820544334738081519742191107609143524535583535029490830741715846565471466517636547151243473492996189190217335176107309202660899747201718830358658649045879373606697928331793426934607875346269442374347736228368699698967173664045649368740787305687933158654963987804374756413936663047215206117960492841309371695778669671115884065267383464163333071951973816295223313103455911281187560927219489048229541810794350037643660577266450333994304926044007286379078056029648731795745621972086436735811334553729001251250250458112613824888687826485367280997526270967387120093876589545869804784322025014715120742237838433797938691819412558847981472882487555558803567572350489272533369437597841224751657123640587984088732666042496899322087006185083054135265283392709179388622065277992711831113094067580580761278470422654098449809626746882869237441365718858725278855191038734254263965069262362628894040137784134500053017398385364462800803949403240079617235663456877827856633394264531650935144414080259036903927075466010399158893652229807889142300912441601800263036283630656833712412516112198604488617388220291652241606991229966064217285678530844461874109725218856302952564485763655834871442321331926491836558616912744355663133881921649179404678919868570658897052088449417455005856236973469766186357122182533911293586116657926103869324683567542640220180663299648469513124591914251776840010449576104335674483098445407942984727004753799330394652821115560797315080937004355385938741042872033777795449444414937348524378007426477850702294533646650224933980404904542660160931950180889775581243614533012461319737145637051168001641685637865300512652374775173365177343721370144490460693730521926392538515563181838107147310026522951943157868268610731395058487686337577506596003677393150981773279668434066724238826027495739273488111064307451412081101443482221399287372536422869619935728347438416688672891563461950070592100979873423128064718665232249202665188913859711992135557012662717614265161243965694903033347253545045819291822021875996744239207475990194086120806348959234874424867790138796896199823179267993186424193336163372979609224045595487252403810630541865822471360567879893288386732245468454473886623027749775562924487894837237374145418203188576924325660822259886762372135286888716441533256793175681728511996506428865746239299206450641269075456026161285742610916802629010814354290158690288264794765438846542373642506543224301609980019754304641136251589080376662140212429483351032140426506323430506752293645156639476805700915649110260304837295420660057035973667082533580881354566924411498612247637596025256466295125735282977632629164421013532756115359627002171057705952792562183581566719687221402653857665254796112443648169376753990513909123241923507430241328189232939195016140206412553324089582780189760042410336805246519579684512907724124983455376259028953780083161667826097054754618576958501411750123581334624550779965726832801310864153409096585755765219162434476649580403614486639878172489377518367289583751100327566064190494863090362738137613735815921913297049539382511097920158054183425496531731468923030803575219157075333379292832263917525543899397413895950227470661705089641881017655768779946369085097904369832399744933755305725267148405925034078651335727152224562295312073936756133283441502118095788160189257219182639341751093249858449893298865975688056367546731395836283352840925586300630278790068958087550019522198165744409183209003705528463063834790156288310823021573476513440331434374480875462165121909962486377934286522820380830013778667777827204047115048431111407161668182019755681090819897965974219987480492173469656277085501132813905059713770612307974839901064461404436647683867699157849758007439787706799950121386224938269395407775548082707889242257094768242812815193606769321198663734966206072176889717702085886989203100776084765157885600906541774449291514358843964203286643706250461275643967429427457599202563321511702396986813226882567048619421234115123307988709517106621096777617363449543874331242480007067115710451839011380189610310076047931322682460978149633553307233747036780644206049486165879516264615663258048116226273088576644209486560908238478588962633351366396398134918891682196115017967704236297191530244308407062820949032951647150552568645547549155060807646277112269719308266324819830978699218881481406129713928502985969057583677397425390599445699459857002269923770277512808090494883058482448240767168146214725953266349045658081466302848097047718176024134631084726832463618869515351050284300624920869101255156096242030668127924954346926258606621753911444558056226672593555427795042551138290468539160057371850274130128681536881468366481505798260062340562785249427086460416016346440766447123195083779235620864901484789764044961173940933699143196510815222932889756275179650163852436838905185107047600207929199378535101564311034055628708280809191652123990311860289450183823235007949621618603132124752240914743620427815044043280141160151581934102448488977517919681094410759392683301631362437837634296866293710014635174363682805239689585023556153979244817629183288452514226432456871823533712912061408698380901007227266573787513643266489452272154392622082430944457430466362083153433051268155678974850576554807269986562907932471147568597566882083185503255065478271108486135298643400174478773599482229542406052192611190430330364825276688040461111231569181654553452483404256028977877512517157725403678854001645609677582477734671775948866938524718475155864655778354656889242671096594392317202632105577352972979567780059513357494430989215000179049282108799274828982825300047522586385723787482600609945419703071893232027008840315050098044894710725168570373481819662055460392577769933043213407310621580146488085207938274745231416987795189350775962242808279624802907735720999070945450908010127217334030336872831606329750126297781726468729140373914601932415845473342586297096185690603478937871111469329429896287667153247151574156500185582284180016874482680011601075022617638567827356852923923823696400147383628434744568903740476883526660910382671589407612582822707125326223139860317857557555951492580343737565827804656969483657708042356336065871538876015337410992301998321257948682326221514323155458478366206457273757509718781871847884689789083465281074360263677173430929814679696615843545843743156933245367033442588776003278706235067407099869873270084688286180801871034800557402898305801215453672047301017603831765751004212005449532101954778719336485910834711135660408491463575102146297011698277129836408303648865031100051981250166362048640389322345780257418724914196847308065769439190846328537343315712778616263011586397516806991850666303842209327423329205114726157455556671111182045825000926883978430706707781527877261020742312089219547345607942575084243892182934342086432936459179269837599145697785076575824849127039391516331293847459627872544343553803498808335948731228785322768652942001052185298898403384196493711679139197462268904190667495260888039245631305662942814872220431916713917379934010968190646404184708612513603193791139133362399139933442894533755877792109867367284352443683282930924906607401533360847800730833657509772451782180484626117639215408380985001382339918656520323460954016240620771729699502024158294895514088437439931722652438026233171979751830328208601833178045053903582443404807058014250416952436964522162312803916375885250337606965518518532876285557576142492658475327541164638580905426462869726725821002504718648319384030059339767145921704034827560626661828044226321981465387687192234459441943045012616081415704222968645084414255356606638355963924514774187820402881930014397152267565966871339072816288396155623824218341758645413451351216198596464065793591159158821551470765121763695062966559193555434963644698567485593563405902333480548225096711412149094536605553821216946356359205122744961846716157649061730424676847108770229530141839024571121959617219288466599569464932201570730288196998892485641144951956277089620450827252749127826680376139028768377477840080701967881030967867577079700718814052972841074039204717566187594422199977892226731735526660830041750164849902416242810458576539854010121713551265901133929520398587926710399809651384813331385920016980812959642984998227586130173079824411467048703415096806319671468491276180292225358861633386115547363831081872428318781836788027427006542354692458791133770023686543431216036492954276029966027996049935821465899237015921907898458588178163439221071852877674251524023225488904094927736877902987555768116769365610729762836054791773680705005432939799922469903322811357821629982364765213916884500486978344812980159863845657117275235421133885248309247900260707989571024339159161953962469104189093734331262483978066043907292747124586004758199118187060643422132404152728457259517430845143297708672799086733052188875846466131423497344638773594988248398482498597959831718853001655602929096002470943655646853527619686205343164368841175197368422492343443068143553612288819213741788501498955576712881718467740771195363840828544158419634301276943728594936157202323265475210469881602067638398093257579016699957358332072444185693986315995707074316012209308907868517511692983167802776415028641134532988024128729891290776139577723831288857751073527963155617621890760977717557188625305477183853563593777787544829525471445896978792322070291349618201732286140148121175163276944642569095132812504989797638401231260139022981846945401823259473877203477724235485900499245191094481824884006179193097931697377605244831717483753250218586887291243074651459121158735361666151327236318555738680844039795341211418202883112936308938443366590975014121256630803766293730648766208205313071075972356153960386401997601551001144729462924721360666836118331335885684000841503395328342478696756752131370201103989619165904561321062311863004130930006614039738955280935832647738524874621707705727114853834584893516920252759102135252093060329108226640485030936873407459001982205910675388116374650759288266924921128128314687397079905809722308960438626596523013689858274310176149895035503586192494512076491205728443323059650772445261157034654524225967741388354072906477805804569959918654231053192904904314045224737484740628109224122270794199617640408628726175285247444863119456699120980411640185343376848933104329845521970160784690183792353990237016561851010568403173748320132812129025559738275009634780321908698942502816040271173802705366597376556410070289624180845464375027680512998671769204054768605913632461002848641136208485477616524884917928154583432404397442024253803163473957510939656739754102164523517615729569027358300677947352336232216448503747891690354025082871464009572812898040749824682928200053001068740300565726333765217913691524465505138597655513301256551304560172300738760663759106131048595111868281385134382689371916652540513340184380105283874927732174788914722271314195206716226519438382377904361574422411674303038052852285408589865205571607537358228680682983564347103166459153247992274966649343617763875815296871986643919441831818595719138337568298287488909394401877160123634204269895469120640486398999607368149638614832618916617320495510290993003238308534284894896792742022771165622135741656664400697601833558140744189289092583040119377265163115793068134629380679249804251324638658288087253549060598017405468100841990557393972431025798487944510151397746037156577862873315210942980155289650353521500630431028115204986867491347999273276780902856485956928499527035153165367561602129842756609334042872876030695678795235390305597429405870597802086818979937999056474742068784238225411451989506995016711654346359289771969895877145139781244903734969060061224904337086486799718820567491084235211165899078796482510914203896595286451824181799327553831976120098941320038293306807295793628777783025896676437413454061919041383268637015914742110728645701179565344356327214868404590445599286293413048982479301721342766859937427518514776442721045550097316730912313908149896797453829020852449027092356037081604576955071690040816669737782510211584565102737999690315483070522789900724479103345454424555588020465999009243751438102965519647741183303669276155055571467036236668738563391513684868392016836647651175448533828620726183557706609006005489911014636660315228341571367613651817263261575656735371437274637041048493718469356228112447034143153614259781564653590568668302951997174530387434451366426452003933892473678112646761172844048627903775694196080061547004654216916801665458316188394146669431051963293736616383609903209245801680029591374656061382826184948754229238580277489205859296996692139167250778081640557804360902009190226584036167085504095696636064167223012264561007562862486185971664051759329310653211378121808342378823097781719887177525200593921372466029856725779409453255715516113804690979029536749278257122845584075787958892135079510146237015687547261814890614720805615301369686520865374566941759911967378825217722253152961480366944673621806879022955296015683862913828618205451903459323896130522067636794591327704018167277419792407403038471401790622693163649330580840110549154079134096539515447152833754902765489454466289110384666795059027280114989954074716423302292764474902586235612597325729335036318592395159730790985881264494203913670739884341531460979701519596003650652428024769142054945284529126329648728658410287560491587062087037603564818488446800129939826403185022835821335868747059943428629519737502472191815962821737189245996041205100056284323384757884809405339508185240159733001586721763534802688788829107685388292774718751323402102514442606951094832060915012529586702303978728719669663132364888862304681485244686596271893520558905582503000290854133183461811620226747168900624357029147173977228145690440437762992992942037593775652789275163291859552049388152132612016520383504992995286577537298904402753900005805704793671075256539837231138474028661449578680910483019625722729717899198414105531677413728269283418503685762456833238190340707867919875664101453293617837706889292507731967912478822998514604607272010130572706867396226048235374019072766757558470539631582945824543859243013131239468777364905461230380278902788616611936593427902448130123140295174624737767624499480341593915166193342910119062709436576198764310998238192111579699033890933693286105421717670912157837769243308283470197277963965232061263387419592331191074288060112763101047946289395912760951126580447987415686229628514108256914155515530061190749664923368974719679355083619067390202158678403062173924679348444440265089598895595034055271737244901180425506436830037377660754876106482797813242853360008326367208596506360423217672098642015431557172367682058073706243360259525999787257501821168918389676519465840901459309754966629558554012076153508880716438106145406183916133149205546824271297919365030592998894767358273897575949017124826155778231505935065924142504316088594756527295378670611744513283786457055242762830100730102058110582474714415129522242849993914466220040699906767910475505182058543116232988619453269369510550950615064619400851753168241267590851602764487967012580926672325157979673956069104293082983663580775897821799630526085818014404321766165258191825816389719722557707198574493462918759187562011138222347162546944753901611369418738022562105897482082998337666940091475649100864740439178957466098297779766791982853268476321751002898219154474046461866245570708401268029172209396093504461595047330761146402497992793218222976380722101685851691539317010237162531746996708909768270492009151957711120104947425543279917507252385127621325175739575311276454710676773232823705009093782701839826665278456607757424666620605324618234427473391011210732256128227692526014943228953434972955760836368574810201224558481613830906835494075741415479884499301672026371246774729740277694722144149963677366928339796500681766702823213367000759390930139035914794905708128068701821804378361597737970897080376202961251752235215412895142132851701488506587372006206725545728812749928899230968883065428144600174194572380212336994801511060749608799572428957598826069604902155295713959686010198489154556965758776943347225531619219816479482466233012086109230541503317730753942585316957950685051639402173859078683183141689589082655188554894700337640397601579393619135172145938274253934019182298981017636384615063619744350184481733322925462083728285341856080695790016713159380468078378320189029900329523356328714964713180166471023945245229329309524620936198907054576500361085668311804313725651721741277095448499744090329739504760619045894665398422581730148586810929494217025357103691398174827685119341931894909136655370192766904942468217819797374356452184188639762143857911024286369633657327233427828018786178150039482914131144729457352487525075385296857301200395269780151250946935544137278184705534534738030232997509330981064505808147292627336532845773357990103656607889247839296216787673253748580041230231883690629573035108030213552942829105641721095357145713219381964453205273143369156773752241422515494492514035042344398240556453918624983962036431016941092936403334447878099117512715601785295718309909925482866945005264717615313875567242041219397074935192731949144762760569915917304164021554250529872111872958301832421734940808429105045506716385472698931001138021309821162975522538045794371946247332089914085538968795787625712478632989388429658457390239841056639491064607696572228701527032135392703920219369084657116789116242281463909455033451326812501378021826095559685579235225253477595741834545323037159261749778776754288696379835590937312614217816307180539516972318290666773612220203425312056128036333580878510918330774699103685775106585179518119239860371059168182776915763707173610540884924994615635260587368456999339805621378808046872121389182974934334699493036798565911297138199217730847744888548548217445154636998543952259682238484375151739080247607293525363784443569443393412202203056891785924544445966994640865736479626226218905050901379201159365255189395980621215127253204093881959564718031199503426647716780424094513434622137692381359559154322774874196856959943237367885550984554089743078707394822533462907339972092654780539813240902543170250362461435697719239561704030294675109583998061051057628626896657046469569699045697056701819719760278063979681333032519344735479511593138870263323189243627534673949182202990350917862535514501711534937739615116989140317565242762914757086367923649170446960161311794051641583793453899942376399220515945770042419720911648848346745275228716109289708895711483457616900574208846699780070421995518409159887932137855800381822119057101221394448123923372196260548993683273844516621723570243655088767612249659698762486935275461509381334934096577075407846240356658940890243251746817885397059543068234977102164193515919413670436784106776323106495551527702454239665038670551375781383296011248131731506674778278142587294597243051828299558346239602084721680557575842845770502932441276135362229302953873331181197472509298980551272515037580904332123732316924322408208575521057791779096944245055558830858688167823387497066169582946866798570191552966103454216401842938484038627123185471983024687521914702319775468254772911803122340782321495013842718650821786976589234703352990947521453076997174129350811936894681096336208942230323739605306159382243451912781836373469166802621911968083290546214122425066190521785934661569838890537020247706010690408111976329018069385809726179714577641014244987678123184679785705261927793629523909306618558309150177993298396919218635408095998126694339806338455427313874501337935746792572927493557069502484055196108849322668172731753294172135438386864782515102847985398627342411466130807195908648446472485447757474898452102050743214679905126924001946928614243870939660162714606447499545540065718726367740540477495801807757843270125462224770309961123650665553450996682834297287287143632366056824558928768536944855360178482970586755183233631421428283718025625056598720828635539378148761267314877767309488114019760183772796816169185486819780058003582526367298183736459277203004721137605575057850929400667049139251505460275336076644530498651873022035221326606289039193382977610556528548225845047343395215625377875619452515081940644813320443796030509029991802291538957142760241928520539435080616650607858555924253342003201705910730414794686840555662635171599993202789767803609673599084140918579098112937492687938518188924624104788361943158143947984484917890393705497369962107008731102636623884975650712250040262586230491001274465245794303052841661376711868170369594296259083149040085234293790476549608066831484161338429277410777845415262563213832526891655187580565852553968425205798079050492450494323361217632955254726512682920525229355325037911251727579144590863357337666735459413817389611935248683399723851104961531755587146645702814394219545010853142985512351798324920226030066506242475903765800517728439444630770449551317379335480174438403373326046396644085953237367414456717352864182510645070953760798105345758579220873806254745084156533202373476127273909280897742759180082760998712714718035946833195471515104652265556295575091192019691941902379927264983920536710842894011258577550457585704471871659603137486602044822056025001832613032381621645321472960285517587221335393878281286199555631625894971952200153425822014196780744667456426289973729508762702466656546915574734269014898087399462022102364569969296174274694432113814768340077602788699590143881197921139058850924684487219820582697612932426008513242057786707474828421937590032613495725265840223654141087777649449539886962558968057933117347595740554721194458294685075899787299640179151945914303795950378361602953109075051300155611758210452295889739218544054571887375266972039083226197052435279985922317039578910744041420502433006541079240488566726183385740000423820426083487555335866043002344566790969804615239439992889425957620859338038213699608344921983794494746644521302013129123498657513356344242464795011502594727457364964788238383676042148717681348481721749570137057845615248915381003723201258429895244552004563331575063688549133170095301847378204476532485802597302175143183732218810095460276243353296069492818736766017100413152993178037063616386292919573051267948517275319142392769573981161081466042633851043580238072588626418722545601727515949137371869727767362068755461187106681470988840096353549276985074148883150473131308867864748948203778009117382603455655473873558077139377097236103205751223886515241931263490165686576481707158976951612902364233359295865244409791776604460402413653874358798854345207651009669773413334361931980147651779024321444793276263929522206268735693526101322894233409026441676663254169860025563615328906872086299272191102352224692785105603105618073159586386143430011165835982866166009590429640508870538793692939421162770199110355661340435815995363825050569433132755555230281640771776679044513058100820622759875916511736518873510489714239475545582064836948898802936758312227749679152973668019052772430538127259061017466960367705130821356406567241913786769248138118671769771018067653870012446970883689711864280893127389282465378151805007691607520131503242469669377503969203218147657132875565283656014393229615088943850693548933961497243302989567511853640451356887965859279139786767314548723712460122624359491460504590998512356231417564932427327544149392226826673171256233203152773155604380152429870678919969079889036240612892255091031292702358361338429639790175270440669075593795793511141195171607327751880474904413260031333009324464808827107948210859357191305729508852749560067118611993100416121367863997392837878142822601196708434027432926785290043081007657648688612892655051355235762197760202473163193768294848495726905927607623777866670898493491476639004444793238711028769451979109218475714036232845905395715323548748255708720170742767576824533082976645927536644574842620869004059229321509820218118555036544841468022338679394216720824239444292562640673013025819758154546355026709352770246945419780133223961431439336510484004485958097578192780613368188954997395766561916283625436810426544209478027373316968080774760061392824174203470597616425608367995149388408761462558388873287051942088803062597779735859502145490816884784966575947301870908547899662383938101281903939074351259568690405940824464876896949650878012604168638264914728518487234446298563998220722651550548729707828266562300132145775302632341846580205719785182799180196227997017886623744115452068671804041425872831837702855850569480579995491016968456214811358741696849980909340292781871421102124903587094806129832291429165158192893593621685038354171848270257070452004944392676251827761587680832809939667841700409516715306728714040071201384295149933024988382465176832577727021466632921607366234882434130785363611515823035917462179997168939668666172351341465806154696920679766984126482025170341374284737797864247157042902095942557627089508972684619636675953357842561424104517104177098429416992412004630665685801577291281175290733985489446067765863372662387116254383307142579568258511905495714160304966306102830372667293293959197434256322062036506530523718585917944543728919442239214478743086460941080425823634548079578453863370537077687675868268158053088187279106863375765294369769113549442266720640025281794146484373320925159576440711797295404346341856245928644247541722527825335855401190169649073136033036005975074206972485079126096227156056699889136308653155810200078046312796776721774782480576530128403307710738252272668660881059878296235710843393621900211260269885244796898796980900119877734516459963788136786286150399328970467114893916818472875472796590658430629145247112576672672661229487913296531811048630691371825434605415864291326851916660275811321745502986638129638301525744102238093123334454819677271626166374049413002621145903992489957562006340556257554236222525669676909775000258930815088151905766994698595493959209148506542794949221443042592255524490977475033692776816784859375792709018163921421680343845159160097652362826750607121360647185976529777290114496289204147487656083161886877458927408815987887130497713124185672039726848681849776695922421208317536042604256108664876973458904673516019572659662984650562423149518161529355463775078392951832348365412010214975318966400155982924087779048520948832964177088930442870323162136020730367235881326161309104895948698524713171150855117186906249074730902776394479839918312721418811456962790935416714324245171780226806017269360448329659661552752856538711350186662187816844686491981982429355318635901297586076464040307244983549751968762441735440749331737161772245145568175309160510866797712601918249817230785926575571334791556681667738685638828405271423319297444760026224209696838292417002057293078584660674253368014264090769444060396988335703622383058956166067043309599302353632627798896131682611222940022221732948296901883706970621375086220402133428480589139106194080676294402668532453970747233633399016410507426715499809570205269597109172990722506100341009558624133123598173241006412537023622361202858635825828315534906615733182761831973408720205390544949264880127742886651014463201370181210924847239798772095987315817286380838067151978220460144016542838862253435837234903121068695810388601367021629584265292410645604383674748745703323497296594156764544847850022368900464546888977140231195422340826285053902620024942509442979392502370206680449200670601427307672692404229428521018718505937501424648168849615187024622683749365219101686197951696681599509689667282421229535706383334397641020080136731818132680060800858116120691470258614813041389501847021820063188695533445480481620864584393946385636807124564214223611850640021551440861542808570199265057761759790494906537732380358735126589963840694520612903995764255052394086955509851595727437373926493963373152357121994145484618959033835937355669344660498470314257132528545321246831031735686036945601244219789081009487626791513912041686811132436294083576810560754333207847245082261078550914874072116904941705647663375337114443701257179365158111738697685557268128809489331885008517619065694537309658021133332888914159154421629317873985124151210111425303763874044432059403428162558026018273670482674580245506427164737783096417678331128993817478474175254530764208764718977760930830276893216843875520950639175833914886373881548443109844211374927229824769841183035013071156111785470709525685476442774366942733670570928267269310153181679087602117734755208711759403150607816248880850221939342030815220891761968943248774339070395393614148720474576383533165169791043173375172928757825068053793280825226628200686854789286662492856027781636376614427125513660106488019348960762648868320999703309556310559985781852046592124632291537329495434617654620179491732536569445247567036796557481427318968615412566196586170343436076299437108737849251421529455940634971668555849162292730029453445778844599360943994588238023902556512803355941157627996444746044906407417784543974191608359319938406534862505311333848190581004398541975301724691132030557340138956807598439090400170590466625262337359821905811180300172317762370533424205001756235623667755750683876054154565044738958726180845956636554445779395101410914285484703201436829475502964038548740396276567235702457398097379356950266754173174318968302079898504818307907916485484651404033063639842547513179859004205585154395773825324518269218282375877982011151148543815443067678122374602456369059125983069926684039412774613579375315947283763782815571025476658823531128500774712720906711125597715251521356755298995302760116430633917878574636971048308130267256504116903897223906777810887622691326338003531411623204529244433446554154069288243192001905102607577120156037448495265385702991624382495474273668133150899020853195367692192673166951295520678893922999403644624337272719482146740581620390069670884883483341263807712414393810839934760408186407760390018692251220846794202326746104084948345598524168721578488353206751706413463122214940067341004933870317993674630165309558999110945721129660672179615299293827702971091312686995802401082827910719749818946224954924188082357704438246510359854260754193535814442339485299019296384402090322025144173676938541217987529738813593301181290123026383507609885694073531522761505179896605269311541081403066921478970987911940760003821087861500142030451472153506974425674573390527387037998351095248293298047820191186764003496617335863691856077052017117086862614390687692259592794329935588428851412048192462819533026070694508666119677897607576067875263330778206108916590256492786056909708470633077892884204311955476126589645448437441996347129716234858904438789591292524957519121649724635654660779705034412760066296813487622548381177119172261729971079592227609138435198840127162657289593852998300729678520201165396309916844317055835553952514459435444734614859707633814395522379102001567090559193379453632655824297131916667658231356732742489690673765869414897743738447498053737547020779240923961420224558969698721256540344514232634448545447234743143299071501079378994296628896423396301751800063575107413408358871984400096515015930603150420721529814860444756378972326777467313085542408683121511019343537661003925337192265630701249794431099293957913231009522831043381237210962264030293675203306991661427854615544239428701727881025572764635911805844490538205223899541284330383432910234635430177846059251874193033037436621744342988504349099371061410634884000652589457810210685840196552860905960937750702976406713229709843997761945047303715514378427062283172304285111011532155715825051087929491846510485831345202313515893930119748928520117408194424203798427846030915877179199834939532093442418353131982710793930350698380998158228641575904158358063221407727702267271668443261773424234417043043804485444293993691559740098462547494828727648514236270881271309126927297771776562287529065037518095059987387719370566350904340428055976548561954974990992782184659773837450713991888944954965254257767740544221203845665887577534643891456522304092617657633426398455467029637007365022646220325902315918004419703539271178080341046652216742342669108627256972366270927097596571166997071368563191083057105326921484101323980145454085279557938545592702101484095850485512489614491824789289253742466715447544783735095296032410193694740520648884924388707485514860091922057496276313794105476005455769013982541470457450000154521152902495497612175659667627155295377762728412630149371543685475923562576762532321855177856092043695052438036356417121861339084692639153645974505471585918762335087458717418948876869424755931714339558635774888976043942189667127137927571267649304484765674813751644634444602190632933999913327233255571134675127484793279016277564312852266702986814217138396048577122450217051465181574626701908820016591507045060933307093177261369987492209930384042188087799662614204056943429593209898994009707189953951541657503577605604799379293309636453883548787203624350339743019535188318358011692393528648837022880962039003987904689203035412827585943064642071275078686648146337402037340818094621339297426269323663416835420824265762583696012171777980952555959589276257658704601960610825931939846715149246935319636802227536589506445636571290363779970013933882697100099468347405380896313746900563524884605528668937114063320980825586654315597544738018101221623547010004646792821264018367786262850749828937442212704778918233521508571188439512243772594688397865521996881936127720946750609493414241480617505804263675763707385552069856173817629915830492012181893861386937484664648954840967795692045640006592211045352459927776990587338156337475727154741566318290133777176708411327704634241428559810888111271274091491462057256852281608648816276297439609133296254041803653703782447633765253856115445719042413619759877714712314464146848918285882748216060456893297897606766606464185675535228307726877933427609696324213535451956798013723591456740237779166840776942702637262954592402824932995484275732734420234704567351103251388394247746273309441174263628712611483971803346826198977363065045033432121382249772301676443757080715056536878924053144760584810438747253225047805769121417844511383379497448183133225844375913449843820316047131991442613412516853774758491416128035261029622425801883154674937027187557957779031092387312595028686467850540290918489645700378958673532776540795057007028309025082354562033386713000841922760912956660351606950655748011816410582332674045437326661643558396321942437643288003940839862695958187493476306752055817746728077723537012362914056185475994458157513576042458070398673533373633929835093176109444686547368201984307719088954201513233920423986020858693665039940685143314669451472646199940383719236652237856091800059073781878760369392173531770420182477744521121883775635846092739117832083077674972808122583577067528519952495256197820884969616694056918434203643712521123844702343235267187403025361414516448943762147269876957071328894764702886568364026553696847025236927220727459409207607874523800781670008454753611198966088455944781514944805556341955173062824692962244556220629159443294371354063392938484386216989183722181213666251852018233733223288548718999501486314223507986754936356216538402254595688296925318363915590869842479849391039817651799422017366414199841061976082535745340736696044521489567208249630733438701561806530301712049990693159291347208667257860893793207635383447532139372532970097908199275430213124581758997542938705645501598890040308636773249017994295066801120666241862474586854896243510825394173594140456507180975904250956224332821191567001164319709819735043617011299389865960327033695951925978327515359783605940788099737609987331639722972782367130586788672449042907990059815510434001051882224356676593185046373861571129377170074419630179376957985217289458992990403963681757490396330425335398261862191303633239748173752078651086598102298331933910424582460615312647996281034833953897901937047742272487094703846625507490374538399285763113310896508415713794535527474371918040758704824072935475397615321719184766949349427536794693306278920969353312521968893095067497078643698923155018987482670607647763679876043472129889518563439174920466008191867166807060961358131245496049620663311412817767943196059026832363395056150887557756314767857923221895253319508984502590520456366742659750462749729162959547769988284714089838615448998942902589954893247889476795933106941540169013551651222036849714168479893126706347304253207023926017065267954058787471214048947032904233147686451783016546521678911484003385185447412453174737386637340267282796164504454614464900466828837842582833887861956668256748981366961591885543867833779808599536140962368719088159451073384983882049225521151201918776348862098151697738205765288205909373517341937087682492685906217888573180738888890441533044932477835755776101494672602733646690120033811005776824140511137484581586213266200964504803685348904515127651649721576584435525554778731559060243111631545337466910260646498285213289034692765370390128603958562445745971660721863693366931711039878179787208612347334002701863023858690114214017691231822804473519149159077263583125224662555336018860574267500504194882486821189528212376784705936207851213264702421570504345586027038832946758961372375273122796213825216637748032711336640202689760392531252850194860299793524605714750919594818527499339159582712815528579543937920617479808534185251151769661149812579952568691389979155209728053871689112239337009240488053648991142110262628105108254299230610332787688376623038465559600758267167930727503344634474881564481179434380013313183957782031994386101735842944394281067051536259906151604911580235841499401276837061414968121475280903823116600361862023630404242376599264549832601107464043945184098481219840275056218564643686485896465666958079473749572324033059701082657245057585369523072887835669780635674237850951008328030497560916781342232789551031643929360978876815218451358050520770781728596982783242814613246654847383625220913655558480666708595452966460547394722660585991097294615597432813365751395756569732899849148308361367951966536898295861011012221729334772642728090108243716346521321093775152711613347490556321630254270265706976850062698363086531372517729245920527659066693182946991459494800837604006963822520486421929461116971250815642242899604521259312966721020588348462217390596085493716074621937983341883205776750654067134899010439224847995175268012209156121313397438614874732686719216180184300620935600023129043683447874928622326563087752036979089082462395827678966672869989642332689931332415183337391545537063491056759530979640581548053016031234585816953654665833545871324651705566336170845810539022459271244386455203906286781615377327400941752188834379866527742760661020513477904945781397254751471490678736777970072732656121125113414318118387834975180899488878722298290437238182480081690384418366607899529188337015660618034739573978832538042768468772523495787491850145200752441640367277852640582576124245752911820219652508363736155651220509806103040505504831253888993889602908372350854531642482292884879260769103883007759461781719864496689623631663341250660774027164599491158828210424113402779938010603534617797211943164572375496603985526515328263838984489582607013057071481529964985051009086442534233248539371142296248349998544421834337993142486156499188643331136554785005824374605983976389589616703428159979442461162066478121238419071249558513430376162486962993101598233560070638617657673912897671262232921182080819272550494573903248334999857315698422342506678080847140443532807383354109282653033584567344767861197369537832909582956795117297532922261000118430630781681037543117358146970921945747383858078159740472923508304968396281291776758366218880202080074675634494973872974399239316412416075337389054681304593824001925761723401554461148383367722071983995984354652531153641786680542418590445586634697913462371953887060905960983628595786623705228739558930217780089920020604348802446777842540106389763873261175119964522838248470560812949330728786649029486840578427694054611822085219849115015904944566400297808934933310027574312596524536098186383836901507948550587068810731188609414755472644499739985340527749381984147180088127047272717196669745244328354196520079642158576398011201596845459059089060357694466744889048947753519003811504459068970058162073913758204579385117328751100139120963288487216630511650353990819735773992482052852560890908757658143275673798975308926668575616937420406565473332776079659501482677741017477159764468163241740276718231327288812227558392924601765294423652365622288261879614185105129959437086926306031834731652508501169998453911656429869719739259619567915541202037864451878918611214368374454751685667107326125212064010984940334516379817829452308008678752243189077117571989612957642560627663203015757350514064961770390593668530352327342252559616926895221514665803428531890693681585742099428325541097166748105236086000954939150776304477712053767665581220870550268962635575837077818993948613430839948414391318897670937367811729706741692427196076558888278637753471743098080588981854489133072678881507493337645523258750557038288469956818851356607901647351076978780465920774729730821034472621416089269202193457194601781767594949985017843751260196821965700017688840539529759441032403439528371126024222654737366715666007822689983785676221086007761680920700261098764981081682852914216349062273107859581280101335046379253357890380862402386319025966596829016696780209409995372327841492317520224619246367727713812502771115664528629579534450599486092025767479088062795388878412170444856997275672300200384800249491826897537128564545013498539517023168082547466510946421604169231620393632513612537718213866067914340655691934763796040724129887218399763025076322768052465406067249752973441978155461705093844486505223878437972839553649348518236715405422343931234468418686974891231785387333681385625442698318109009007068504125814848804599237887741968451121634016661185626649664831875386567676011162649016494804468826540245007772632964647341326190250504975047019465338230986012762658419941364235381535109506188918550154334113257530130371276804356149829724709119053621552760993754209794803744134467771787713878550250981761498855578110645840296849611205863432601009998949225209059962159717734308461517848537422702781139492737346381099565929970580654540584039943270203243970068756288477264221910822607781465092264767234128808368365785439337150138399966018299867486864773063972179121487143029390162661937608932576670211430936314052964595011225791102471400094403923362292019763248608177321701548229278092554402267627459539243339099724872770163326433570303035361250176504457313200640997765079943846526490170903714888933838344266096761912258954781390179463948833771590634212879923596638203699708888926294046260854777413761689283204298892471692297600242788667467821481099855547445125864094413089511796283687669384209749870133709273390942122080495304699569239344812262680947534929196513641835506134940291482192425830797212840105005510559705168319968684245183722534919985768615797722683280755745637990106570500697594384609372325896139028341479582173496924113799728348821254217513017337916306169463323166959880420683780728465126693111818652662482482945484811092240469560823831710085642548255123747884394357347325998838956363149828352778389597258984521847939711184798480726082098113462112583927013109815602300087929712282655430855491565520069719446234858362615924900482544972859687150219449136353075021910047505253283028843377940583042578629205836404819791658576253722042492386895903253615517109914115130496382749534131217076558326846731865352691258782002939463360188334440764500997413922067364319968506790472915396802275813732339770225049856895365553703691843989581449302786210078143304872934568278215731898767368579784291154053720483719955158684967058418420556927332739114042231501730240292891407892277191055013818353398989618748551883962394158540429306561684035474652855542001700267400722366519452371478148913943715460369521571928553671711324932188173391405078960409875624279054241020476962220850691994842826706350019423436148037489917351685039474329243319060203380810711580347206939830673469876857988514585122070772364653431179408065899063747757401011261037896122883891964207052533355977243669918453443852345846328040681812205511417655480599886368341631714220342472889896413736286395595302042629088204417822444440245531315716529835919464136251574043880308335405138546872168923042191475285186604894027286982365869367654178950605614575923730432636604253096464171832942973475432508006552058534009486094884868633991235169593052437687050151980489559461283267146435175640455144659152910400832658077002947914270576163915838370129577558414155262138034074683151721222496322743463255389388015702622648336817093392372496134920517455022199502134855715386065368015109204092382889081173365681895071751952645382283244115455505549953453557903554804342227693485680496781971056620404930401873622859395845708232784367558593461111636432623448317327269654179703512018289032951426687453472332968444976062139604505627760639106805949964250036480671108556609557598132259461193546958798313681221431100579541453956934176678125548740959834568201199011059759916038044101270140870027436686687973628981813005033418756810069679551574246678054155917441831079369164859862289049351700008697499868199133722357025494185324863898264835927116260286832216471484267479238044261239624078099387923988263496285295311378422819450163322873439719906407602231433997213973634917652853539025404128484635898555783003514739292193403892172030908144207299412478228696082644591886122860898760775285311369524851406744352890703472124401451521648184982896749155831143790464444800744450982155897973690420447568347883071356840726348251080320220875582972068420834897468169937349007970311799093781630141261643993720616408338521810062245594171298842680491393595360039403799521808880596465473307162317815608351729748232632193006340233452047752444987637795829612101173262817311049229265673737495988539419880813016213837670808828004681576936658361421683753785745290630169824413072160358929308211179188509853331718640714625960528402442762992237006648003394867122874666444352002547502201359025692670281408988102503299625109515046047979178557537886408925995539930801002349410411780309545048768950378218097766517719123657487926469191792022281580128855865779159014697298342392293449958121008508267377372773127425035781860470195181850046495343370770151547410249841706867197793715402611151429465468375085539948571457922585674732776041558315295404537526511027213132922449721061037548290400601833890823172382241075980328084555493187808850758752327762012936230388136012317754463288819835257383744565657310439891917832912243932069509448340900760440834848540440568475560518521344557621751482417321874307209727669144616915169835496269426509940808238633998235411358965086263822995154798731824998996286437025087181895554421660443428599649783673328374002126098143403157154711628621668620661619545163133273728063982252316949669570152708263927953191412209413026560029924822004445316620246361671580020913668715495514242130712435501277700936769193509615472674100068696489983259134891158543578324737142134311287420658710852992766276865533294084947201572701643853071324532442862221690728996779043602094479851620355030245501010296878374837012344389897585597259854075393820244405272557865567678026469455100236500036834426427333626294848426683388225089398979977684392313007938754503571342364480251578859279576002820645947041713532543073848436360416195469946587543800994306486028736070660168961539671132687244834402686495907594972674036922718768388809294686109164654413432217165406447244690380689155352753338867650511494257540398556776804304153692766521864889116887103884141507259573119960244482295542456491634847908005047768208467972009785263938044590953944489945651517893097000024697333043995934733173581732172613732355986296494998746417801861969735631789217250985447058459541620607828462485330726854067659990682910963408657792943770364009273242439790544907967134842386961646290595086644128344078582161880969729554319960015195138509739406048258119989108103221962496176296301103516499225268966457791699645277999422030520362213787274224789201160243216888299914571810377437232198527229916967747391219699505911452628548973134439113745296419608971082159106154197141364282255270183857286952436618002924150412622549053288127103095260800788014105161709907056983821422763453501777480926534288277530523771404156618857968016930632170959944208817020214704430317849107744236388410838954232526486650645208390127916620045877453512810551717144155604755889387177584992466200708238103623178953372049779855616975938936901579034124709552100992256920293496603816420909904349449918967925850957194543443537605115678739955401926732277694754537273571979742656056525676466557234370649813983207010115813516363627704445745280308984770537047643137018020157562088075468854260019520063559981914488922762829498982416814105873729997904184631623926330848088386579663124652171295780816929047986645115742778632764766508748047040172278446098251793912660099323233246857493562604039334421742773122507335439269661354577928150585038953262659680666674133745974586503048279525192629527582854593742460464017492072141507541182269145775045646747214064969478916161738797913584676206956272561936426361526855787454347372661563863343844123672546181528214904124636445777200707713428669369395841752394564601604579100131430079481721644289158247356172972427912002994225108001474018021621234760043741413504780438151842918281126294369317495702755449700556857379936434856791146240507599374075813180229437371054447816031103116869201190499936240634938297201384096206347475461108284815368299750844155788772673533440085135256296301662202840370950157038712630764848958774232225640898351492507910574222146050923149259758411618218597471598665459557328062702707847831140178208667795494927926248681778825494305293711411366517122406319542929973536230184979331113151206483298770927747546697026173990380078598533935166010177758265911790212488207741421480193156803645498289044189540926144174145238851465346276249073079473319651389125334732232764774067610692658437092020887953252878846958301891635143832207837873280783983026704863670600757112240916141981505470652105117730509028661274148515592348331440041816245860458750610333283981436427597148991989739830146365644484275561638398680767707100123419207734984605523875000808285653069922081662400154081947477420223650024681793453689138580279885141922725320336271575405270952736242171117279477940895476424519734618609121016019083560792400759269265281693019029397578270802216744484994300242648324008687846507349187993046527291802276133024409952919990340209676445740171898794488923915977536266851306170847634041523723043146916278160811356637448499147530382900984402465074922961053254076773897021585036014843772546298812935248410792734187921003490083802775467283328513306433137915678543141132440706393331348383133950932050619816240897066774865609568009695990235366824541297282035739047677734722092705288297188870668261544814053216595036094437160953356480716629006604193774374782121256584417328155732884437013921218589040135273257542459690040080793460273347882281525665202625641237778917370710881257833410249375179428865414054575007384809305396861169825709804482239202581703932396672123232000973215186713127195061998008195201270174177569824524813005111867938487969665850428683476806497606972635437844960469741302537697330252599676132904413329986670158090929813270573630517867531821477111718975240049811791157295787024625833519232376054763027021532877739951529730555499255881155266331006990228474506561177141128380331363140174658130655911842382401599076019916594620953326052519421407334157370868864017867474621942966328420412540860360634965595657904559836126169859293885663788975307126911181358596187621325984340279418478208196855748103639527956521217113099539880490287917431492370103225663889689170565278111948693753182428615001371288652299614482615439991773500328498045835506796526289346680009061535848867035888300153069907578208768648150457171084587839554644092067478040286061727374813944961757685192571332866186265521099946236056655700016053004101776139248670334453645187698567307073472819919648919278532980498327342214339925661749225454112777667818993206257204612876705084764575949822191715626151515621592636408856121035659263673298329975105484745277954725988063516855621170658832190113816079868313721965119827727802437468086569110731481332762119730765906232317617781026066848175232847646252646341065484174281943083457901440165965916938264210019694309938382801054525627445336779803862362967750987286176090825503536374597123076137670448906164655976437641690591616323614679856683239382353140185682396661718200817740475863077578623568236949962876912870726837332093320376507753661705119509903510015676673760319963086660310902499922354318539478824086288911949836970721372197754897293900794797789835833667181123602223529086195217574916795606984340017678501304071710307607235569552323075152045737170748738569975985934246406095079929263481426747375502289367076968908459839328037665666283664422557490255060658475000022262922550793212410002789871820339340336658890008289287953374552194226002904176437794975765093134607788520124389167757654548795119019921526198529564772665538414552777620332916518136157813819098251346208662495541800808279407915041557746000189044593079529586977593913670443391472390612843510405371556218370174758842272532627054129303864682450918214603644657494948801895154990521481007983675172823397846577324095829133045207982100802813404268738797936662113080576966528099347141823765630131220054601537813748252496994175423926819943864202399798825755562457815710534407314117229929963700335280563839420608036266528879682246617373602593771436860702679248990860123327141069404507013574565848608013168162311745244436627932141425650552563802082119576317785248170119325710062032988032166498257542795728892414354854942641306382259626674332233290554092716909235446401679351834214413619110840257584320666341159812952838682224784460534156172869055119691149546365550720166487442671568383526573730415690168082080248951319903018175038333711139809008816431755361047991947051912044047090584655479135048369643898923308579791714962016405202020809390117712772931597793401306361407920294104309289645056161032759778508860741621026502250228873868930318862541576646010545329208506706661233665745564651138707979950470406348228195287694480958301272857908180129303109169302766612652320019074313298755487693038133250682793910713927501956515519556466026847259061318940048563084548964971186889996904653718384226333409230664522258588742920830842446468713768376954234932122616266062672957906607868317084777408113948014041917411290739880094014354763526312242157771982537233781177422849827721400067777323488187751458875305411998438620567672105376842780783329671368451133569805495117941524454829836450523419143046513827593613793387401926722203607728264998523024621361883711335044880349669444194358751311200485682213442258530335829684869820562302439552472035220174708802593677352082007775711637286227064531707795784180611038867831136914177584630262919382939089175896030046795588984298808297143286700114515739152225979777375586374230678180613527580174463386894752978725330868430416039920815107249909783169019289687064317837004614955188197715894685365291444727301099355488342510385015520901493629687073242216468403136548989769393880301743707808937116612864995007236252282563955080817921349070038008990756764812246723085039811576729827325532773508944659548923320676863645031937217127417260795467781581315773188854065950134073158141814338231378073086083477212257891373716931544631698766117590762887671883899280954595198836666318469444936056890657460101366020016730055012872098415596766771471107057533046890860399056639111779866215282851105206652991004544727618915243408339435494721374520135094557439496625348259467505081621898828696978087517396817928742133986982704956354706321879450601871595539870080577939982173977102379959582553911533160764152589836444652132236821632062103972188438359480475684297914719966127504887385953751122557883071836801482129181525347017663128232789761282447565062915919424427690755826390580839192261860541406978489778361328637482735928920535295871033592450310376098593985685091545126099395240207180527172952408169431467399217307632053675614237721107271201661558365970594167319325474136460559759644390731281304233919216429441818093173059695604223508913691216184281749575722620568401763759890138090216296537081530599675094661347330552135692397331030601902302190859540884686608851482385155576574361575689113194471228468388673749959457665582111211679391332391607376511518160355993463818711087271373308568453877121676898136379012541242112270241855744766967396572180313611099077741913553499168506710973343886074158604619243608360103248775807801344308115395305692461590866975735177613973750029467589271821785563812568079395683975368901360163860152015784417514173139633079977145350484930543692444346813619598806256569785980944136333871653044130273411167070532720923029205886760493502071998376557782073299100801576949082076695136951829038566617848516072212611784388556586565524623495771955140325552683456429714595392770954222113294855049056916557158844745166580534566303424098717346899762730374820912523986305432788412780270149264118928415438096797886190358189699496991912413000440529556700300751206657376370191903962412755610039915109318011948069886908094137322867811141105511950351635217866021311498152872494403559899162067376797731636371527366309811639177564210302547142122620848268249107024801878757900135832811065722537282481452159344083253197664276016838587463301250104032158917326153339521402780353709798509486339355898388483706069377564640348574598834524984542743572696196757575438789970519569519371961028702615151542037153081468382078431736103274951004635239896904576576431820460546955512774428894088527118069683891537155618909954045361859758459547292610076525755105040103731522761538461673656250909300997254040956495625278226919804133432360624289868573779475516766059223823379480151242040018212044193328082473727195489774650798122007490149806523039741271126898874517381143320481017399411013728408549482535612947445630983025434094460389087173613986144541665284259760496778848047104219379292531256153983722609465734670736949915760332409828713140205024816632809217859327501297734400705936456002112321476967484289899510758445838635415472166718609488409869067351620493124517082634893622521201747545380082274188118756016962821793065542507186654961040724986699221531025763302302495762264202941349733501751304221109465880783245036672049716167488248571828231850249958565761749448205377875600561328575556272448300397389002083408593601385771030519018468432486168241524529251214655842761562657646909052107363616108172439607848737642429212569964015658230443232620699098109866637200679361113469848202848704834096199987695289423005617952361544530084097916232485792040777627290270752548747747350134667217048610738847598241935408609485478612075531050287650527575284217037518199040498090388431637413384082768624936924023846177557465760650272708940260935476516662821343204196350417097622656068478166328226201542015893907264089801903006554485555196388132347195353324199122327904511775822084138078288931264375276309462866350224161705399013521130443745402616690249850266679484190030191705658817729760942331014391238094926431406985159960516412707315046244403689058121499484263921738664204944351730031055260521790959248348539606746013520932542096392607709751932291164570746916915693870073814664593751021421377271979674570820062365943161825242756762799090776025692051879873472766085773715598626227632015360035896105443004583597561099831394583019507337931235407638381206484681585720644741015254604500203127639491804029488388138133213368820445448920079399961325635638971806645614002122036300612661788964486708812460073883264271482329837489457251772238416484575429570462920704001216879230642812510653135653222629326993298403635833768214441550766441937816560006394129880462534786956583984261159549355860902531945109473264287253233699969016246297198703958709102882372592923058619357004775226099296012322327516910394430437707396166989745771074898199379655282218895535133851503150884057366170713549485741065586774327934745111689439888137412247243292977316761981414034106792862840408056214313852283730977188029893426801994963530389162298544531671966582922029411237484043306896728535757988655683333662774435117478665434461042058029450366528551358565940072273844589735109609620556596994224368374565276283384939090211421357344005813997990013567756457924579036329653191466865847467641551174803186662102669438230435360481701430460147682086899226164348355531307276909594100908628625815485730245085747288707704006801715258955540806541782084699410146788728138100871080921249083688764275699263269172417203306784112186936909282266918786268950470199265584898106154876150200753297318403910971917430359663187420974725460055541140146261675683417728496406371099934447636440329040483758292564854115782321988982163756237462286109101706161413987395732990267918102900137947089294613788325012330737151819823305827217245036332219486480085589494886939021939108449989267526670466407359320143715678970232808847569935426686344303903574919303548356406774168302965575372518981184440847035805614917818840007983110787711314899568068475978359543753889116589795845030455634168697772715267300702839544916011139354946600230981157440055258313777122087121206368455224299887398965984079084574938188618664962032198303655761153494303910492437740468897890048717697730167599714982084468568476845382997963518750040436195460764815911018851220199770960442218982035617950035730858043011341948618119459368759274524333657494547439137340145987732544760658120562249375229390880232145528439746768898114288641914581904411577621061641965894218104336513734139991088594825061794529691203588754556762490525406587244731350496439889424750391009935105893905190736861871156477531553065930040803820259351392168819401706453894059930789473039912354690873338959921935082461524366673224074956196390961947101549441705221772930323036834789963887288329722028348014066101916708171733469775750147973600486933728041241376235732721820606749330581296593955754827816464187036537666981720539088674294917129227273017947448257356853743001226299947994259701912022669838857523763599653660919052235547386466722334135934286125662618500619972782830914727663268721921880601376589455670298132510466588185064291460003835790742235296742193367662319403857680700571539287795416609503198423474102468234627014407775144932955142935212502888272941304632083098793965203334917989278383296271340416818844495860622578386570235458516572140959716507821506842808342253358438324710406619721425839393736371719643959591398926993826076527437533099821822704791404376664445656721472092121114290323516377485676889185749272303454422655971772098237830219275077003971408369129813872779588100752587064165547101195616061623534697567614098468039950651935457615284202444145480047555286565498049659938038212294280156745693162172605086600422973471345367448063646738054341428990566209314489128699737681805606696344632741726183760998970135994735013115317054748726892205588230689418834335853915722102257076163612524296459363209555312558479768280537120525191099908255663081457835960180320968497287381250178669428970957422636476597044807258718396036190843563831442971563327890406466998478901207594014000472617521398719447863588108608715193433317387038764150944062343440806840446063555625755484276951672289672423939736776561145786147521832003955712287656874254344611350639609104472787691608971979909314527726611133959908802997237262394070069034538544136469543697928751085814699102470725356541929843615144913721445956265423464001260502128486892433945910539624564843726440478150777921890989291891365317436951890175152396318968592692438693667008952199531219679813992361086328072161560742267129385468840360224525465968610276148440579079015983185980441012051675596769212809705136979210797871048956615159622487959601883065158101253042556138335633901137825297896372359293777888070180336221027131902368077677188548024393212939905899175229446207060645480909354563147510120647423788746394878627713971295018875448392909103794790091666130147514045817039839838626744321185259728691576515539036106305268997161719662076358946406210178188816749985431313157365355989471631673292588804828860251726961248228420291267581333910204519423748211489847735437223750535868772475828113352296394122040048467451583395399707856610349180460118183445261053191258852918612040316401155109496175971437600135818080923274646854587461936221469861290458276654586472723194471826006863247016177487330842323149840733544486245738433236542016112659209457511597633630042125902924322405527161406398842639001341716428432082354340851150804770477463475680363164876104954879098981083552601324304330256299055266536253204489240688883739387927111769109116149627550261753450250111851313019840251041589735394327660830292871544604497497437868719828416105595036009722135652855286673456193563076777544266818934932429334751206933447449021779607737475607375869988291615828914144426570672536760384316511112556783496223811757579687354619381408087240200718115570379446085121250008110145192227390641214481171761875191444481256855249688593850404302450756713726631823572495761981791243298605689290970777893896787479941628352608256828460533004785617759833179508289335954693672325378894370537588526444311680248494941377083628639745032325599820459834508506855949770129680473312086869673679222755208914142501592093186803635671730453960957585417405284970180162878767934666609246715032660164888080058180897595929759094625939309833497415366574806064935812263829506890226579088239193819231083651151729943424544007007782484198720193884113177804746969809362312624844360008239388828431952939438331712016425365644924936357712884520143584569944976816865996834302534368110058495023832334418202963072281081087247735687026759255491199671759689201917446088864589765521027561422546345853441700854140458929740378373139168220255137061857047524476388459675831849326215338462130789757585851435094891169281399862386218863149433794285130483446104620157993539769029569569229483760609686927955315786396320377719365710134541914604763913206358903589846209237494869162092524339859406376765355812746864987703324030801340369104162775576489871928143633124202951440661146303135079527373825788347931710570373041078016475351265427156445939610980075044297640479003728209470512297405795365585381229961842308397087164234974054163287743141434268840804965067331346671370565132375352019897859081962223579552050852308289242846276797678255873895155731259411130619701635276958478894200527376822174848174906354642114438438585540140850309218636312834102421367659108113924628282790972164985351418395432325918475155515347206515845424705980955525793177000270661345509641394299293366152292616707064420216767982181946670315720788073060549288611560122192999708759863670538005283610489599663916615526471567432044827563594091739354360292971456495032266336404328140509591216128689646450841455989726474798247163222627762719711296083950935631201193588062180356591522718942999473011716685082438966134764567933507819665672387540888268378681660889835666341024225799620968370459235444546135556567722561215093109952645425206662604597619809157405073593219692613333308162021242640146118640036768672624287267721803249019630154258107612970285572318323589057549356911511965921270933849274260767842212808745680255311223673290634620349072098952297893554912595634439095815303248831379080363798793009733850848671381256189866624302163798744346380832416335874899041951339325919996548035807721545234785906150598469769230048707687304297585803034371223666897711369375199144841573231618520213777812433032130497094180529334445647031685982557448720716755009014857078100070439818732882196522576335392675209522529000067873115489620222269093748769266849704359684652214537726995980718833903526949626697116000609063658625017091946916812836044095858924178844199167511503710835746592857747434081288437460547883371976791509044219269048659420735596425275187456601646548152747602611964363008400688592730129355694726687545845358385285380500875113751936146599039964225482306143937874974841160264466709819846264927999940654617549848984500670242350756152319066310324237676580883239595053760350789203717305969352166164452713863773887532314133335725440903898898699924079507052881568870042044997729459299087569940456672328191445772798652391847419493216745990967925853250095880297146419796194190768591900529450333924087161918420382633386164794592024764274685762889585988156256024701274862339940337505388015169499738633446998978775909938045505238683804255277338674545048389962917931563172406615595442482404284665379606701215187767451995282106496756298281031049895666817347026766581571158203044828076227329092921284692001051079155313990732610771265517948505155691612235382219343487730781619555689954626343358636406004484814226782798847477084753029029700853300253722718938062711400491018768780732018929580338978871905019359904790129110308154615596617778297504000567175766539892385016599985928419270389324206708086271094762321268589436535607149329630537527395194453972607088055854626036855127518462417287067935089175455205418466015093537412891868368830088562879182382523086847227268755487657524841432408410962182755784052481358498607647652887502595635553701718137859833224009928136147935038894502653661940775001923843715914377055111834623755637081144268490063529306160768054737893144814705468094777355525145720441254867328275644862904039800411078735266518511616229287061738014793545818465688903345711968322107518694688123271115802458734715028838049607388007675556080426364847177920736535009649923847521224469551976503901116670064946155599782589200485109868839830457839465308237927919577572029520715222848775458254859996376223202227390487587073825238196556411447944104202205600668521548346773799815429186608561698375152925020987493866279712998683967428637842314865424946631879572792897245768722751873899872330938455467306312030416096160206308299458103264619390326173091964978629781584447424038197006856275245447433709759181760904404280686335352128036805902716287493160078678773011434977577332952938011150173388298515250748432118965096973604068603539683703306843001476873211266722314253352304613459691001450987429037559314225008166085917260771668762964275016377397285109969010409688907293856985655437028864168438486238677428970733968543153853026444812799046027557442826560590769867849694714398188654245764431772150442711948422089266919621883002151808521430966528407566160505977197279199464823176882344849734253739819720718876786320827226548148340840731151443717041945837802080678433813034766103466492718241566509577538235547864786972224021250699085489726473839977806289564580986028965368162319555072875851627993600152903962006527392988769172258146279965685890487991060385780473829433922977053391079343383375265236272512553155159325480367649738669760859037327284491303571141305943378811345596767355102980006115347157258380627819571633439395467648702874088229890798937210805305016169118492935168904095120239610833344175830098956545298883877116548809626936160588789343476830741313348163346334576847768979498102720487173036997488627193449517220900679206916468223614940681782104156059729704004560441173269704011381136536263284957035804175375162591579114380101921779301432007549223742806689255465348563370791146477492084558200385748542193218712409417790425925335334743161118586803154652934099059249042562252907871526880324959233885685142312780841368871417361702477328346451355879523121418639213921151311130930824150891911437991994642587194118915234597784455551333581031020759432100615498605293621217495477758247943983077867853775793260095869816932341242664235299195061843804825522932720952675010997154047641166753438059545194768441878782366025955485273304028266497170856520388801433088254184826004275525640444866268137106383192475249776066764610902347328209749223034981760308175002220408799886808154449779087402175732135799217619682076392056983183641955753180065882734136322277660568371018906387588255670391364788019009463919359422431735664462159278442082631432686922379522512721857221081392436945021653931780369890845469397168767398022502030395367286312254900971104803667689328669800502168666012915809293489062219889526764267062942197056624267630727648804379441968609626205385468213661082776307666053823991398996287144953628348322045480308344947595889006631167311735572458451205609962997581687187683615881752893390379309212736471417141902262281320009599744202906508338089183473066246625912899139495201737443941377328225326470557358485721759320844285399646062549035660502515910183805065147491701023271965409320523295468619369795206849725690646437023824368831050086155863679839539772519854207850540429779237324032125714663363555700181620354892264401647089135032462508907864376492123727637195857115064353283913341138646314312982530507526873964450203468654517592837314427180487630170765686225196588289510645054031748928351883701765042076757676993872142797185698492757965724931024746216518911887708751214007313413918285887218996410433968363859889686432319686435514858867384714778571906978312383466619283271904066778628715554547272047781498012919878222235591265980633881438331327446931528921981369245052921895463850376301861652237515663218972123273120425010658347484968951870974614209753951667693388001781938842564327938355439217133603075313182042345559686962257727958763414949152045060520408451793265674552493549591828756808274969333741369451894645563285291321116604151328569476456964167196607818300475095691330425950884262145101917867084981219844847595161661443835020069130568346237133357553539291444673149230758581469311758520389413567872265136860526568136576065715065601523821008139973521813077530700626568187128020804872022509308676083351194470670857695622586317270321685161613867866803386641289222463032385121052975391495754753022722704901134000431233211923005377194183314411920636183767723240462261403155161357676624308156196426746987713948859225591650679092558972322772368836137938299387880970717508349403198522463660592681055488515493301239770788205703239672082699597313690930412760096346358233346390385151964727812596515317008602411661728754297411113351222478657746677470326040493548372834746529275879745968979354807985303518470380951269153130274128628474651029003750104202554840495827680084734168006439180357312227486721889161159032118914285675891828457057220135333028134910334454762188867326262084786591427395741881123316235970724580750884721158559469784344403976597454035984787451965363561549947995606894991901361966892802072037373807759152423062805861953660114678186324992048488174959696125303259795174457529703546992627732598434777364279371863011771868877171763236219982661243033377091166127554771187683868782462130514004610243014823352181196180484423058762435909836816416089208196356397207667343007372847921893967109076475940013664135549229439471552591917753392498756543592056971905795788169143784984572906753122969834437558131213110485306293460994054562998928397756235800273939279116495662920215219043064824661766544113044000831085576674585310258187426077803118910086001634984280041401207346750999664701225622516823864743714973856912322132254945584756480913843035096715446453452651274388180697904141899404446931311383455775601920646440390122549398948221628112918393019155762381593127221862192930745359345051642155415054363086705117932755032708074629559984428960427185602057297458397750731095239894432495372473398401652126983946762911007945502600884134184995887827270288227312535741758610576604992989059416140319222420809874253597890124527632105370097422188459545237356173194122075298398940291546459516963556187769827279005260114041011068892844444875497825613243418056397473061327177834655472127265975614766891372970667138189307843456346709600108913794126656383919639789643160814875609180739976839796791863074798385943416965646405686149844243069925906282108780956887600504157108204489856700369116449464380885490325878338674865561342813062120747987687031874059075789703561255102649112192282000124596149710538620550790528678665418378276076707517678025371302964587589663526729202814974996418723320987443166289215628270231936673681110078186317146210866459201300343227056127562245135673176700109241496731880870260148062211965599325532886749307465561304963946799160298158842896452776783129965470484959100356287060812635520496862659160850886959638358878753311918096173758502760492020432883159954418754270594055547298590444664002330951323708047922198553709882877861445221579804278474295356498087623777129315483548697060259183851332980841391509141879961794992408791749571176957833125702379110031399545112574547551900148129645939659903333789667391166172791974068442765351958982645273884953062151922052112152495969181933013864036536283060339406049291616806136748694079960532953620845832433035537848277769572067967794366871224062105120553499519151011315568996126163307313141259481960096728951183594625167050652667733263345608458712692046324417644124010365833962280256492405195448887251310332420426114251118213488971890984819013241569598181834845627050518173827857406821639464858638223898713093815639381558984543745586881154967924749840950060044094500772743119553174075764152734581041318204341337249520627485592016147941681542062460820515975856395751606335185272137025303606057952677079234078997094784357147717435688461604999390626972613612620380821790333017894739308015251061750469952060232962015666457456406731587878701236520958733685187185871452973508229911000099592844758970173564688426608486504226651204018381824193671381235778520855103236366548236097551183092349664300663754321759185024647990930990435050110054712342779662419764321030241003374600107847348906895144899152917266105872165783708266348991799045321929490151980155186299131305336594030950571752342740256876039243799931613349766298491562947308490379532464247270434410451511314148987814432642477928738940234818473807664234751134558193181700878260538313233921665613074688563511823789027092248908064837279992876776023810686822577776184781073412750044788429276020652310244757202563677173942506971463684134999389029428508656027648979445309624908215744809466440885540220335009356813124487590854487183736586365979104420263864866491033303522158209029130562231343771103153738625940051855393040772773702579403099269407938367713910825948870705453896425133970025699367913312562592933230499894064092153656022444901703892460997738407448339502004588328239841136034950360326217342765968543158132602361561465996293623325546551654729326124614061409460452945306968360332608683054466604264607131644810255999129814976194642771443249548787579470133378368904637050203849535825245206971744772861192826612401046093205337246652961263335621599592190757623607444693201672740090007988083794788330115879802151099645056145673706312802469160279075539994395241419386902152850900008568764679865625706941746998850860776432222803606110914250670004231089424505994198738917071361459851423017863232408747033939444467303143127019270348334518982534776379590090636063798856258127280446531883604848349779319102606429847181363121877765012306991588073640770010575625582685672750062309767428423460151540749843972341217772278487219099880632101075726446463932785587683089394505338258636919750154542390154152472704641407723039012930835772540647037240729534277048846661591614727328671760693141589892155325837555509963599911536212404949002139139916738725218481579472518352573521201683882677264939617724069944491605771835065813671093969724394395704610524826370258953770389816091169596321068310114433976398744346078525149411574791790225250721808506401411924119121388330695018208373626910047613820790761890971385312153033376517429267767329496571384261436955917954817675913137702028877455708722175246889008474734037909261017752514788899571345639606341628758935684885742452278380041952205463738791287632955292479193336259527174634148520033299407691194080244793580090459036182076571832936363814446356437830532567113225328093888385936415926037488903213323506821017482376256319042514349187468473911407239899048473134000523086283959418265343475541756639723141663365876304300659744914202703985979037749515144252846807455450147721811933533544245945874707249537500340367946132132659838218914769483978230972360828496028627066569906658302692446976189111083861440877827363384807982007739340860162109428149968690624957902633845811618820762673261877164825887733842820713476844829003073262233294541502929449332068700911060917266976966498798813124372281239231183024706864526117875701256274029502646023242321670927122111457456025900714352102090177177870062808059749060906288376135939587177705927623737603004286581643272293043586337042753150972392183412248606667097458627980831272257433204556263880086451818355769325761873233910989719009620330535451599781585888820124674033726792740482822491342988873407390024774080632629558272548986298755232564380277621388406130807311412949050852511549595766474514931517660249494031279360624218887547376405301342396574729496913372414094022708787726835576051147413796730862554098642762837639710906832191550458943179358497819168832953833874114535058065264250747885364004072211570712867683065405915348556920925942045394466527378727193785196605359574703306944599567776670178991946118347542317373451691171630467799037538868943320921170259354400451605151111489195594738133019288716053032848408920880174156755163402879065979397713079560427271346687595280332744349654270802377423795327206253746274773096118666968306629229393134401052026379784508024442267335684243961405225761749958714147468223222546433371244425606418174839862153113122587969271118833017312988335966864585883919496569858104617048599324385308076513709409419290578672776080512202277300090806891839916723023045552798559603626262810269611685647363546257707970669388451649882199605025678369815099578520826001754832672257870133255185723227936638690226650932299814402381933313060709533397298199908810047265465725091361078510764938019428855460592124762729840819984024476389686675612040602594498100732732326855998552933615447366819383992696915719041305481607315465600946676694464649555671647344460600434937131363367417025699234960679933786648783644536598019093733786198250709564623868517396002202202133976959906957837718417073830644448888317607374176737892235008935931091178156644774924216293515963365451303052656298110896467189118015629318300748507456849525852651859289198440466672424563216145914293792941765696186867548297059145190814266811203303491313146880675717267935041441873765196260717744336583573451881562825363034181680537284723603307443450991210344961987853290082917012066125991816075180631813934830496061410900247945013752154386326119434100895808122966537458687508879610344787274169360077511238536711254247536928698374258707925536103924510022392771856108651329578087324667236487472906847772013785719774271786166539383942885674454160700409510625003532492622078631064912086386103151343198838560533330788086264292989938176434201626445456419839098348959053625006101183901803766775950738441089350618886857673708564000394719199967223821671564999654870641574717047054508566875176610458618648918247007062858216656300021059950414638885860453492967358906165354734830288357269574184692919657610736307499754410805565615360149392636121897881080203788888996169556453444434784288674800625642262195000589632988095873611759239266206797030727318799240694516233221675365594968123931284812821574352322047327970474247706598816101373381454578638324342548924327688458156559366299442938702699119434456261012688503798443571466530554912555130281993969561108559172559554121733079917399700947523543060947955598868388723166277759080008703803772867499650726742187574091962967893773268087667463186422311494956920677103494320827562232868210094761591898292793973912674125493138389769335007320627660457293796350207129048631707654654088827701556309829535419775144212488125819071181968401718602478330969360511838944279900505183992725044832924992471265994545907885781607295341303659697257139076018659624251065560124998704002616157392101925412055686264191674619190772947605386974060950929332499985184242221396627425048623352940774917382219737331847534149817384719106122855885796831989711453834242292156652964209150629829796549792352036269154553321804759453823977671514377480123071443326366104437509417569023038843860269549949362178652877027327756310778948674601040830072697338357469631690776550524652213753446755418688920231694950365935056469798404876442258793988389456037000955895087941735411151088966982103222156055786396017035244044016883821469350041576923491612790746018073853802596294068393121927482426356859878038879232262654803079513485819092919224580936251768027812511142199170281990031738382627807623997240747258333167707375182089581296894029333608824920586000920109463535664968890649028577598543609797693702106667044441293319632519663842904318930945886890013265354982262279002196028521809812854546413113340347268665186254872607221693129270685335168440639991146672735258551145920935910109113686692125577137605024259731129386144546889962785163655381586619887098808887454243908894389340723576866587787018653987438079990111462227224362342882571841289497213222370976087244177878576680549145329295035848241250902020459118536150121902275124904410705675936138482060259977143137987352599091838511955300263551324933857692703506113481473280955619016950470872849644580730751352245134227686057287400897097517807548211226297987712010706222032573987344843401976259676087218667914288832281650010849549760240783189568874823812961700577359944660284664745776702277980671730630391650633784375460105054641423292749291965163460067456791078269381845610249926169522947132842202429860176214005277587566526722645590807928193245930435356667376839484099145485621815609168337461674500130417173222400289368645881179194680605664693499828653520075520154755641741766714611696812248353688474658806349998239140587234719007670777381245296320222903624474213349639447075905003780699766225734829482808858840337670353976857955273859100439897239755166063785209698802122593705999012133610323571933980789446983116042116871638389974259069405908849946996573664991780081541006032050144994073886419507629615006231592775617610690284182877944719680156727055308586972351600483361715943709097253773346306375082527920405792181265799225037951410259381107756342649457347735863247781739579464672716618088100993913076022885464662408795521458021280932117733590765200759870683974788476051952708164511317066721831179643189409720058991438823407400595419442687283654783885162644531157089627099006768995598575720575243363956392677698369749022397906029069460539070394102484109132273702318038669523091851350795103100138840051609527819004640897184769683039423545147580275651319369300301432155717946939439481291674468470905397430997658927113914857334667678791195217372889317793321545191799166104324044158805328849025597601693590078246499583481607398899670030069560465898490878236859446813809757726278215314578609565583157988683687959260148943162005500422632490016559298696475023049042036798375424262964296609355485086288809298415545352481696817563599309708919515114727940756958524650259258616993061220666716514913569857768389394879890988171889593042566489419408346654998629418047580659119080777045845816907504494906549844236375545900009199871934187545621328976545463114493467173749300750524725856687817470553054345455072357382455432142482942298478336669031284455185824171758712190875793111043618528780616662102823176050835736715932711025980836539179731589543692993841397484116400849949955315679221834630303631848941802946937489763360855234456228958765332524716964652128737545638512139207478838566989606036222113370773625502810178215637356762648914203118072842053151862301886989959455934478998079672165530858684853700216330188106584018476255622506381690271053119163485280882746660813619306696478379101812930059963779890790453930585022471578437775021561471443374966813816159234984157185881337071771900991437709415300645584779333514309351977173029328482548904309105818161489411361982441065827999297093592022800497314756898857203960579517635169285708379911615690916494809241202071590219813027526222380382496069934149898339823609925645964317364787912937586889431951788488265565737914048037959742132575128614640908666382955469518409151485586181040698034651337199447309373848929324687466382241311742079823005801612832694851759392401764602459006442350638685531985841471327439240110914866386756073337221615964478102546388571839101920516608549241617964479813340733645319718775350115798357390363601843855494665383841744925457442440542602827700868055321901997408558833048408425895987709654219521914255416363639166965144589834504718068138470523980424057653891036718534664262362545812809590480911112245543700762936682694616609125474057400083610283746200474946740461378802319509904728867017629616799055178405963400593830111327961064960130642795928060736056474518275221882264637093157563856858423705898201337971667298611609201613980157837567093067604308998015132034503411798692360006256967890945529041510809220826320193348353596495096683136007828726521911853912546445235613112059265137679650599245388174483729985702959951859559333325653098080458821663920133887726383511161009826893410649105795228620764974367801923204705409234257502967782608580715873341308913479511374199939206694700489089937474761965765209938498594901409498966363249788803489812813188723677927308996055640825278017201550476600464838305106544803028805348239766884455892863384380104560475638225875166168843894891447484316434244659651774978928079506330731836222726955750397514353738925289762891789839826889789955934586568303561999664899596425943893496120676818452411244079109035922109314464557797080826688732503842681341276880480115451804201358398632819797061488587638311256364439785331113020793535312284525496874183177840010866577174981654838286145906245898500750358094926900261359080003841461627715608387849285059257908503997123677441836084229137991415893737845175546441631150345888982233395586283765019080757010491045777943679844965245143300980316420229685486340527950009883237390411881909948192996524356470151332300742563546847963532425290207545660062339504487202781743728966062473210637115817056559292760005153468149623315601252856704028165140614036946959138894639531597976240138007257888874686124335380168512651546322845248183204522457580730408533033042771861590526369173218304765820017483084225003001107042998529065534946961403805294125700504062685222315125638311043659849199603553672952699376887814946386132494291125502936373695142039127735972564179641739412733894134479861854100019742827756891217470991335533401440308149277045576731574152366292679321404940547062195048471748082975450866550420026051422623555096886236254193324678919151766850592946455641069619446284950785742592211523618771414622445067528954275288723505127903027192207828597457215995218808167197178451725229455786637685072527968509084189863122987092630578045359016026750438758139868060862770802321076637296353742170507265727490359847462469936187496668008880297382455966973988754694750179287368871782286436414722786306396342821527815228810569528875678910600688750241034046005571907736107762539086538978608402604497309163065854043484040187861622122606910294080421007294444424511535618514625518541573681779846509710585893173208507034404448773436005810203736999433197434411216352777953245014718985629067911769246752138243741090407415809592106236608410355517131496467953307998897672500191913389231927314247513449859586423099814041697065776022364373836147076655326578321820992851183968334294405107268487146844776007918262706294418136576416908049537647631457228033981244131090826395320295168348349767167714370284187433313202539480177503148822208148591004413416022144690113377043402651135567856415159880779461939044423487880726733794161621738510796186895628809184734802148834926823293730607607943412900990754424905354916117202688162860357487652760873782773285239759803893150181936550584219168355144828684172954685953521768682535819544655412738898312716943637795154456379778699776247402048659907387432488134364388913096292664575834562058164151021860617886233803463928310453834848491023879543234623388714609428787835159694738167977598108500348688066915171034178450304034085526272381474039740839048932875705240059884978712798799773266602289176823605134019000239162874574909545778890980677118905061681826996095950677171342804020518949537711246766537582020134296096885053898675754196450851838363939429513602157993146312526988946084952470909754916396948363608844221633518781600894066770992893847638178882059303354800095878425252975760141002177327273635304458639851158808972747743503332699893200260780536501935407166144644420538515832663610761206198902223304012581726101624296023406492706400063665210302274119332482583189993968339031274458789062284926741183695589348973453298604592496791561403151757101343996111325904153883225270186953402952152800484519165890995538353162091489149165775525896983017731479092152291890328062751546728326448023613486306126933914283062170811561139264999910029502032269073270860372859148711732732875915150766854669531250149456417662763187296766234272909721240756087056246227014907611905630369071998189535999575760452394098673285062286441215157304648498643124896812198070508057516518486103066421985982407120592871388226240298498358682421952629131708615011603067665895877114684688274361155928900023735539909991586976710578791877526926666003642644406714466301604002128184871456873357465733083856471245544024741658455840576535820939667256486921083638494753585008246915320572434986310227896422764293677847120602726230048312119289724574548181149584796389801603029126603401884783164915587679236410532289002840172852010213767964565507153994275361655895040488725287672013463035315313196929212492082529587183389479741081787059506965733300184617544340706111523763447914070710221451789792224565010971655799238431495897040337913616384328339253913826473702940961139552575215010297039119579768533228540816718147388418851256036841888442535422207632837716334378669227666237044182430007813732299922933387155551617407648688648071346802498087319511363106593442112002362693323630442902493021220912318631973318767759416711280185539102116713499000886185834162561548109413981919441888248923514126022180963350289669186162646853149691289536779248323275605366868321816062520114292095247897152257386934809176522471962116231524022680490997065291730193294241954604867823552299097898036013706263993128290533261344969193294302889647881049226267034871387265980919806935683354397440762713204115768693494139981390930887812972646825339521398998955170452027571638964019276830087856771781921801048165979186917443909287315796451767781540137487290530583594819756538288762687215290141337156219183465020355724691273854692800996982277927980189734517714209540800249432232161414946234031409584046653227090992982971694674046925559124886695964889500271725038052943691998148199034583081708582788390304936407555141415189401490170276283064464177133499518448359468409886242368324757567565863179694668738644658391901857969181771736323986681942217845141623605607228326774724564872520339547082838316178869250954044897238742153984328946293992109844883363899971658815634826304181849836671294402799610503677953506683215705218956602989209168241590922646120561318009549979909256935047999871597882160354219843575149329594367997411556613640651021306397368722545510491364388285170700946965409556638156880179571948225255787935457380433726267667491160632681550546448300153563366406720515115889204302707886652029495787502905097529711579402916187059306287274794336022286857757065622608445588434105561293081572390643231272539809996958793836381868449388377617502750688299250471308489180197705451563609751058826581009579013441414946410559050009117406028586027678882452912987105942207855575997716472759301483290761533954206221196962442268082033333661442181566468605504269970053317570298468159673443771894029767364404665057171731242403402873318272834859045844382331989011545206132937163465575429201352137379469996000811276163032477000627958033974713819881674099678937318975894745041632362879193723813405554411546615341119067425578145355422794813972274975367102747950648807366050942828023557282438848137752045522115481101868791976733324970499923883310848938803229760401418273422898730851253420122380717725634259557793525682909509715295202903456953751705079227741808827789124967905951674703458559083635572113653389128795643841383033506452774333869075614057690063321949325730331157789947911264676308437348987151158215604076314969256410101821784031946315164133437179763792615959600595098127333295323899448892845389440922033642411568271790073097748564736046226479018971746207078070716527068804198124529338761367312955054118587644606716224524549802423638530833274652578472562218812299859351444539162327510522487985204917924005292828263667943171428416907119342881243177936781743194929104254306292216397848929597142818425216931227400075236763685137476680797041755982981758263580265249227096799681251937056867145670185875444551841117566921876726800746755132718209342703501199225437094318780063557082832632664184891602619984827893548015734575583760159347962356098979197491860752758853594951206305905176917661616474923439334141020883597340534543303875525923345102984773928185063382847178677470157147056707092676753916217793025432436267190136973200792058069057341512072342084120116849819045036945917224283299381474161169109552293060738596000491356640362357887522170010660146137366652865282956439542685962542105864850874270258283106668597830420836323034315797135922061499226286586032313553849593143223246969757408105954623584488714685842230860445028448689096677870684502483165306331403875928402092355865862987766180383735605033271283188530214914199764113454237288365031612722356078275487700584745610719218047325009691503732164960570883851246484179553420295917154845033675379130272554835807681905196379249303445999358164217425920672676196654303059179513969703808060659649304796178367048311442005099754774022299821314038169842061910720914940801863212624231394632986444654763626848406842084040428227383214907147632676897520256592710043717654031384271710708065445555951973409474492637565819351335553110643379144755561705570991856232710347357549861676356738664555031813943844502679063497240677213250078976081031241205757363159765795683931752879289267326593196448885220166862608888571937849101898649700154821700415823091899002676613785038395281243480832375556910157815042479956851987801734885556487532683968281032946187112307016928509882326186666335779929872476999057335150588351375801309273136941539532808926931806809380428001249695904528540569319465721116764805205272136784181220264173253777392205779212837994874945731081877010088258819563735936084503715381964702782489395852331539880561763457891829441015588815996466509351419722794717006572288066804878715769930192248979090382358825783598281889676702785486973819097549421832811116046493237590711494624556707229532354505743973642478199973737647451586147551169289151393893278471462112851808286658135600894699866306110444411637483306560898087708070808011072980785794664252591298695306855251848594968748651854463772393812246818082912815951673456483631212143378468517572809396786153984311925211987051472058002877525853939125822340560542650455957488646765057728735988004159256703184492259145073177577138903288028636610890822843283871180957868605731616416400852322801350676505410318709909870530046334231524620619415451145856452800241816170063195714197659405207018994316247503324014530955742770426769167974908356541982592595677113704119820568681121967583648996594488821070208102377985516348055034893576178343287014768567360907529584389554790750300796237984518899474739998720467700735079024903050562171102144803671181761070618737301965464471209012607653033551385678949140469857670155955816361280780732768238531779902645864678996216798943337616855562346949187499411399651317563548203278843185334774385128164599091323092316015054571953757547709716046240182729897392445333763343315507874398444934831899467861586282086630080788860523157600526634511743640938136516119813413464768674300129067036035144177397671799957278623360084384387542537034807086601292266453122854265938853100650498052758850859791484974526955420974024528024378269443198691526637940115256355961588315944656799892212828841158913220818143075517893138460359641027682787589342244624220643651922037203024029935889853568262201656120692718641072245562351433306090646117876726701713993991112992331426454512420882316396778726295140252831058380855318072100214993123097719543845773451847982373827495913512883268199134844163985544164351787963781710115676504963388898489592615582479412874435728406343539514775566696479262342151325877312026765099071617230045806207464832710473127421650927138362845323971270420904057307834455890209253353816654975999260453583529551122326370130892976997507203322101088970046760146661179444058479529048673511891395458835227463327807184521323639947669476436051399611158192464829951797150854403520383795645773744899448455781832366188288472182020268738480110587017422250250988604200926090445485158339202795930660941391343851999798807473724238806012614063707180635470817291801838406103116289856088310401725343660562241164287228621851277893014725342877865445172092621984970842802326972417361477558921686140638496880662529323233186585560891245669288277798348326776989534415279514453344892793593062216330961553746413297339102725635122232509664256488498108726547740618025709847231210739631776198121696487938999114780899347757246412052147770343422231402483221738818187561230564786924624599718514641738723341886212639820044549109228454659619914868342073652664725750375319735720107583483453588411927772794016977314555926980827304732900453317202279664960891987778440665934911993728766236733241263579326677759538594371334071868860247261849974797162771614297684053093107531588097098201355337156545804039042404170923066422764963039586257891903865876741545946739041848834058820815173040664183788399294816378385326030204407398181181266355721413187344622534108170995030174626056737452067820572919819628956970435084876416479456990702657819919188611532756047005612531383911727904522179231492184005664487863073350276248336861463818098193871993358752332179683925350142311504968955146270444713360095735881874500988813669283748663928711549265339322545932923917159476918276262030489999693123943611213650179343465967458475686995659784181188393238345066655112579007745130014942362001563980997328385344161304636264002165139065055301265717799728266781701357529920983032167708496880743209316623887703718973952399094755285553698141542462535373427332778254151956444156619728047177496991408372579866314099265473114896968030892384411979122169974310272568103814913541165097596207974862253334384546291205597103656706455389413215897911399461881057682832065698993826670546605548908829197995452577521823733886617720610208894777893517896145165367095024735354159921396638655484864965991705419849605582422047278516852025397997900110279787978595868938705452148396337438089197213802476829095587436936324280630791054029717557818478700571316125780642915790186418070736483208208077566873558069202947770332591796081865912080651590929457676368938202969690476042252583481404316509564651124509495960403066491280502397828404179017675214733627379177027047268766820915673771281448519145599276899000055865069869564235456659870153106644482730051397964111449593197673497823711135188133792182686659088385308102807144721229131221907195074087507363761204232340762492334016209080665268976134735622134243775889879718662054516849963282741438612507452248852478228354053229383578226837690423632008765577760899962424241239860895865256907200967589654859503513660816054476299651000872172281872238975633920175634800453490386997092674898850265501483914637999071415366734267705566370894967248045706466798162319965275726335103011157403856172678999602249504353387917218469035065693224369822135546157570209290977448755984559281469895979641659828224288912161000717922233754905882027066764866696343350658341835228342557550221282626085953880976655196910276664106858308933341767311117752142914798559858803592687348638268634419686410323060164507599719487843272758553507228861269607498904955222852681624460341699376721851984039937564750959773768025458246184332144874983901256664869887372664923558082870047935797515403963342730743635197977970659814533976818795184453186403515670491420179642183982332950293394479247824186980866337526053078628095376165481489311319863445062614147934543268666227707261026763382563473857288137427033155487918884267351471603070847699481586652964628304406691090559179980218657532983050529454734606394411374214374900755543628602989526036006476080736999478850804645462078718009935008127900115640703648563031849350964670486911705200792788216288708152430920791930032173969272315484555504536625312599450553238766025423198035951004538824540819775893923573731138241805643910686690151279300535367219650214757595646018858650457132422918586695190091069264982289719761853240530303030711297348951253944904675645561774473747931557840487727367375959344733936811831896180432817622791140296565017561481553537505829049197780148377499298482980568024040410348849458607356762346215876641389411195952107144603497362779425004915399152660359669632056213856427858312662758891186274529012049490192125707652478045316163787285389394343489589188042611794592409661858863469110729962296601197730287238576192154010160010030285753394916522347206449966691192799754270737810945528067222677361039417068761972909483851938604298215972513309496885118530536373923718417266006211666286449996698334234154009202987471726466100322615577803445086553514746436552858142157129245235697916456317497619272008254688907010831339954777041227787206913659031647501415114741942832454164228673331378405559332385713818565932866763987947911200061560416305343456729166315629432649138195480579539336422635323599986216992109818841723970597675900131547380691331355936314124679399546543269205020605672081305441040714345102960179603743823387126976241266597689374023218745644040875315910808505025579674787195828856691345768193868109471977840878000221225424463821257167963608641626481019017099435099242097411545854477629274459404911126847589581528073904020865252905709814466301991704118499339339913145643641199817513240420076037200640865004151839265313888293336151568443164971340483378112214037315729190348610950987538484386816921386311381593971502111299250595344864144304222300636422384798093772319507213693318736150474191027819023843627079078030044166229081031959568348646107694793164659962676709686802869215774929561962786497744033847727737762557551129626233514769873717640571141845007227925931282628839599370197856461812307776217306658696878688946836581390314132129228863092337883324722555942117689807985833630135906619448428047601032370912997092078128967455584002099990111970797647912712627274875835577203952161632484887600108188495272234608932112006861597841365557117987825545940817645320771576297299064464143045026142306519175067923369488746732701625488247805076366160923962924647120512707099848849865693038334101627508752182905669168493889390939147759428675634656644894469615978817840054530858966599746995302973117363630739784107918899303073428053466610560025419512802499540687352265545751963319023983031317609873924464121488660197872382091814998126537771783035896272976196629068627322473886227091329620146898610500168284500654950814164175882531141654367168208645288103877709841531776134081970064629933833577100268586706893992243025155146671684404693292086032106805047416896247060195668292662646583928550461158147312757702626457097276987353853397682434435101891634002224154937127381707655605506942756283637488390980003037795692601796581943920081935277645723242077868488864184670829752839945655757845027077447096622543074959267386937197267610698228779835911644752719644624609121217434389965767872390003086200379270891772000447726341481345962670042851743003172144555153280901874133681378820386698161180939961847684489940564891796288062871774871732870857556998010782370707184831328339694228768986905301078511083800856497814603404258469904419787144286262411458800547205141989348049344102793583275322292798189403963044399377182376748123738933979046637008072196427675638257908717525225043335760964642688135277808135302238359508413261552501895415124527210650188299945743476970718181204411772273178477810708040550897825566782687055473636367936051465242308039053684802361482996324409997727223217377449110763027884364491454902578266229857416826953244583123363462345222679066656987471816419324914682918509456572314710640306115925203608899924542457955024123846997659327883156180743091185241284334653328934302535065785932621084925368953234889060747208065933931528745313180522967549694500159814507641587627874251442105930919489338621177804494799215638115487807065517176317483289192538992913540243270111753457005234985457379708729522878989311507107940744315980583824043431572453212101352582804126315803093231802501483175976243174104665154926592333850392452376849747419868688601802884744060148084844919686084228210818617896570431072837676392577465485910633532552186431079893032279963451081899833443458297394815142230113277145654009296265182295561639080387870540641927136409991078024787452854525355174453472891687809885856145294909606551068329218248999374797491567469321435949845633260722214521077790040222089078138626185057939947608057518352867700053595052971495651481395909100821388036113416966498753128460514511359708883384974244370272006842034816062064336881129157361614249526809844449931107319233655105679961126837718915265562767502600653956940853730879264972609409689028223792836715214352268501041888457013186806300534405884305231549496738961817978504626289391204691508742744485606234751800348532302174708708360843480605282394454534798391009230528864899757408753465798771702984820617260567892983845116293263561065047527296191260164688872795675613113614303688818871413553345229333977997594366381331974470576861309684535503475449629375956298682297512692657639962785657053546405043272168792725218796979330390945128999724405101367027241472450842331449414452172154275507714551391793811346645635990631112470071850311567137841895869287491395133211564294407682326386122071117647482799703940410985138815677639328101212212517702235952274485302881157789575744652338391446562246615990564454778542321216353416129324171620317470588615649970891137678263539614089424014000562229004192115129128357178295777777276517483500760487965956181984332322704135801012320840802090005041926672380431808293581250105994401270191494501208043979225030202336678066596784798897747147118005438338429564448254776231709443213810500483823558749085699269024332650182299937350782460806393324091509831754312911942279041727600001117216082294710485821486853407070125898576187975567119480360239117989347298599350267762855263283659254927768422675013553237997154429339292565219670860976650053615415872782890961189231399172051437012560024752926268504474033654977214340587946684045434176903040347092323619726552407697643700507130416333580065980680776742874822214025901329583463682271663315830356728707790605352725577527328511617841480384359445136036439904469663070386198561843660854816095305188913393130300189531261488347574048900310390025754984140952051093847781433346579751204801327658680656133984989750361675258209361459136981136991886932737376088239266895040347213283528648272777740918467610476865911684023753858406697286052256558971170684412467783508871863610862918489091781329495070440857998947828899022071130644046124263760860483396864408494602810851563783722951271343040760586298640082658253534543112336104745469707751401192103210769440518962847351101170078723703535535579899443006486615856317601593815765036409170510086336555584570167044834937649361309454503953804066300649657545438266373926322129968033552238122507091495536065622579787013893513598914040030391699119325472622634696390686461611937579408357045429480950718556386658136243566694420747526814403113785021429824544969789719878937045064256077561485078098372138065685079039724283835675602958158141668171316296992140797436342811426819569167596345016372956737632474138448188165942839252253810582145486030389111337055103975223830275496363713587980255718206344408672195996927712961204627529762580829119652841481503948532102009276291149995208788848104016475769153202850843651272140271824414538124702072222483023146065051831258195517983563456626951171187707126865240302760118151714543706456900189680364067596734434170579057678307677490778166514736737889948630001828858578319271225186106569366403223107715020075552483959254012569934584417256160941952322257437435136714860717991604872038394028809914395348988701580482017863859219158323784592746227758601329615592740255473394684118061715096266754750520828620294575416441840977819074196603739740728655825765649292866156283353857654472035965933818527812558448454955519858957760951921893070802301707371246345755815304685489976814974288762792669928801870778019283980391543150078303639568826907470242363987237395529011682723002941246052902401108383795949512861787826154542868208177788245321119221676519855429818549258044619153113883675474062469659342808055802234730203601568237223032760964971288187392443666894540273438703469195369306989315357685414673614017011269750806101203379347384034568600669773614802521864917791447493023099502802849227507430808826839427929679423638758824721023364771068328029796104365821856924425265168760497920788644156828772843663102508491510477351483610463644908651108581256576108028422883012187497270428652945014406746701058095957091168565082427103828023143293512920032627005817705369161992408774998796549535976769900467436770962021539185804077472330793715101577376395125847227472730374537319605860626443094627024249158555047261705485138239695564623647538784038934876744089891516871225452063292955072151972342019611918480426680061535834959009434782758144304160346119126134844377000873700123892573277810173337375247892685084345420048039389323606114670402310397631746099723908538926679663112764766906283100876604748531384195330754562516525226014681759337576198135029094149422211526084623712524835923931830133653840189793001379647798585284050497817016315851675680692472453180379498707217821386577345773985032927393667578107355231929222771528059115206849232567956499538554520009157366910801203365369549632965950319358860395519375476020474879812725754985432860904340918100130646078878054693164296836337577444015607304587416920329493462603476165798422287107622613832498000825429216751471379345477276182113854764446437028783141423115538816455599468928072340459532879183306874152635572245506297954623423640230490182043853690810670242499583150939262118613709274079976446682906366618215728185751758386260419792439565598038555006405590425714692427316276901581149208802213548824354574211496194170896297164730443409923629901902129289542557835770926618987996197332724324574762103448761985709088212606474778028799447466662201806687254535365614397604712546609299096784811159713023340434582607908419604868104230625391759130092006893098386097826555992935760304748414629662080113808143671159098892158794874531235517604213108909556776777590600931023490188259087816827910054133635171533797261710033140528385858240841458896998170846485116812104072796940635483877641304865984331863885425571837920906132498810187515799681016799854673839431595118689771667722072126691218934604119616056110121886250496177268913160815847776707401212844233545526000370791962768014633146691677398968267559772332046347584318684316466307187812769490469002802688537447645187170425489700874338510051383969412782477484152339744056399568194127869806179937441540985680441833702207168998387701505120437448035246634663408048004753705363860423448633067107802378346185015835513426857457449719160669991350537582948875734852827246878760923993154814578540296612961060364244279847918842070001247686817411340813806792512388652833019371244844193396203688865136982660428979509872175021590759572551409397152240714329226222699924219169476730093492453299268628693721060436860925358162715451136703124715944961369964494231156177422888957304158815136961197461770173261002689169038251081389208915932386029543413643445677306392341109756952747964755094318650080697490719385263585439498966563774186530005897368466555018080903789079626421621316038129028323573981164002062192678544630345126862832437594114303851670726713936987309318416319284973575922097423780999350733200878786197868819335225892188657197908426539426467539714002390660644331277530664627845003450302688217678002495061137372259451662573463957242067451496788709171456092110841468878788117782418801845770212633857000571349961366047583039008504207326254518583840589754801434540919283301373423278556538914865389389947820383766708783727377970701348721249359515760278433603153386928072089487400695871052976708042833825155148469960210785742828508304560725182125343237064766434160535421184352397163235752596429501971489433814601246058819375782943469220373006025106004982170608154806313174954076928970388956735702874325893713052918495261946635201720184743219899713072675286704545215968171296725171132809939224797126068285295062134141831444719061870277919157114102471935278106501337631589698921306490130907939135788738387064229157190783541604512363366432217416667293588191800499116721080286198762983211875352808721275331339631267104927173490789676884812654643878321924033917932744168551892489842953340893115871904978859107987634249340498359134694384891626083417988353803797965603354377752665565171825451121744518006189717472052524015889617586023978854956214731039857538577350909873855609592304745719292049516892445502927388185259110818982014207481788585684296037956358809825837586384552769066306293862342081354320845198890170902842568367256731590517973843462544270670192534559926923296056638565470121262151819171887333319052519390503520486043834352860031671967874418722104745665579982651367658966253356266719772459140368430868755548821037932259199890504517357162014230546156478836332142635927860765843714916517846347792777847831616567140013539312725774533093504923049035579110504685385354610145361196674022995466903369847447373363236805942668281982036763889728826264954259116223284119448442840136602864783667680764470408824477344579781436039515272156642421982600035526708334711194234855051939617671339386731013363953116017347699069891444907271099195626208246119222379075433780034932940222599163557009585677123849499718463281138114431690393399406653055996482257821848498504114948072553894959197964988855103077024414199914741760546456751139892196722475535910343725847763144745590513862190807853802812646548896579329427237376355220776978705421791250927759501134916259260165157032564506113215289507546228452598062949311810785901071638283476371203746770022684115249346115208455306188358449587126625679026849245330367217789245347350583386839423462277826203703574540168215059380329962233860667071596474668794148745866445633663880741782546576297887379656324665546782731499978447148175598206270336299232445598320827044793646972955713390659217362679369273556769847801153854331404556310838648910164148532203634643725472975904232266258366917436931844312395787899709742496606188377172508517552994672324529373498662753960446905160707473685039752914119176170726119110717400986948968528150318012732466739738130232142896621116843221431320112428591223065281498290267007407000599876830320658461331526688721320388336252741783424683287966857399747421044700327564698386961627700695508985019702917138354341694150041640458533303103070973488822106801421820323590625540942896108819616166280383691675601781699086376499716679464697344447830730622738797202395667197074188153987511174036529032797422777871162067524175035536767235988618352518855146532605305388846747196072035905473010390203987509822788998670280249442109613171828465099152401956486144120637800102931499792916671216691823278240495956303399880988883730760018160303681247301191870082228379415859654489768854608374175943255756633459693702172849375939627797767189651194768098637253202919207933048570615323133645387446598794211605390405025247434621048149533340539059371199282975825622345611066705440243871118722148494918626775217830994785287760373988097392845143798948386415179883602901545155529723935735694368095646196497674510894550267061344762944410423125862444432073925614962525565612413659296205759983745916493328594814013186336595180882627976069318630760700594154373121533682818448617230874462282825741006049785364828765208130821183100052573960513105346928848070772326512847672139495477911719557633209557859936630560768276644290751580011965164076890524008693860137691054127298000681171822935746176250423229785819145424831041990985395703346781471781209618547242730148813261973443224202446448858170528205891380911581835003972191398622634575591302726810705479700215212623027066243460011438546148039775631940611339261926197232775597945609088382615198883524932806207289843427002427610042657333816199611170251135761228667822132787093743798325891037325475019768752419478446989964521465997086147464273022901868655465690085270914052560245289634033780772273686350003708863056178115850002294912481065873083452859740217124380521572926989974236465963295571021922774895488675353955342429471697467409051884258419446528547135405566526278332512822118962481216847980878862782487534488400088678039361028944015836062480566755072869174883026694642143951764394726812065567685947864879323271437111788571619656944713900614789186566876507412861712680306339060665460405754391555386716213100936896689748240384862872927746305113387187481941368872281062952644441805959107774253712474703792976237433825058313271743717637388722451849311945593986426015064161680226964437020117273827366257062439447875349030898004226758210032685018347132589120068320971354070969830114639141089035070371016731369650120221980868807982160334449263386727800082634353993520235503976683134590817446037180319791923881472355736435037245057095063530570496031317201525328675672069931445379316978942752557008798461430133038581225087519903270819142938997870829034489829506648103503026649238776972164893578268623274620503473996396536332841434062943930703607788708992045918921181989704063508693514352609580347497159874472183854944102196948042789941787257109176158124136171948289038413827328989975805957923406453777806291335762112504346097641848501798206762609610169005016196297751277490991966672603396525577223211073210154598602254195628663675342801012640882434024214664937418105821757730009472725026719385507018984554982247859863446111364243020591317123546667899031417728829688498083832705190969851750942411864260894017939295575122949418741681634447931765563940148681448564379958667361257961281626454091970733256209613401981949859284823718029775673160130383964970352924882757528203118110396264393349925213679831557017927757980941310900907009504525756405467522035764830459120865287587549592750497892819021918461408248147619571401928606302754780149312589034738013827513146652599078533193166527527001971362530908125125702307151363440151002242380454095640992952356461874192521994987498425853792660548586196421126319852061190617593434524168662398368678324154047248274567841973356494078073890181126693026416868528379519259937937855978474742039391998060326098819000877927892600965874521399234129771070913192077168849700742116518504659635592645778760762052115067876109095471969208624215879226305391355068854054932207737032881587528135663000360658132786426546473902296380651302470861995570872077198028116445848183796588535814458998062060579406227679503098473497594879674331019173150499619519335862629747920479399383209904271082651558156642460882044872083682496890685603034953964023358801420463606771764364402551598975334693789740028112390966447748836336860425949729641618605263831596160063166505631930758529043479211952296238799069978942535943908440539368994894207235314708465196016424719679170400996029848293283642924440408434220756149537944152217968742836772405864160815764820634397198264191470228149242914884158497494304541585621202697438725164292312875324279400903832178553042011548116065278455745410197798797089194798426966484825829017986134456707419411386027514726279023523506432105160670146457873603186117547596894905063289798139381161457551782589245296289787719844148689198676779398220495673507960278038721049538722793949552260159623275523009468810751143795641117343377251261636868913639481829624861266846711506738263782276798644265939681715393466801259069593921804187463612560680745898621352972833399878988310894741026457280321499911009161855146841422067835380360316247580973337567699387617994872681306064622017685110956483450286018672859751909456545047600507464267272030023139708219735185701801339372830739928445929708059055401598957812149247948867308415713037984476025514779108558407147996506195836896575747041353876055961468001795320538107529017089036615882114220260894898628817855887158407279313517198156218122908384227187290278066619240429350300379443496394660765539579464053931996573783793158721968121766227003485063425733504862020561694231948014615849620494911935600885868181318874019567606213361469999130658983166517991375434866340044258808792710024661434105627880438318111017723864881301013824902552458984939954257458560877961422954327481024593474963723128007955191276522851031157566472621426614722708034202068923195679961461880722392526348673677489726451718486714471412214624366713401816792206294485267811508519330689635106998838050516431519547468728884659189037823726975866593828726796375354097648480576720237414300053704542253630824581562347591324751423555104326856769907345422106958210292473171387630705168911621204527882633142831487306664624311684063980261844979418540038915588019494460756538589012879987501826177792132586620952630722339591398906984965801866702431453136462395941368079934970096715076223771574776564311384212181480035924128460391579727495117181885955638935820530753853330174347890584156591216068740187710240209149771287722344086813594499419466137263773500043156308012420922594883964393165898864641197739163629354673640374361309200787155064622543739016169340202500394365756146708931678122567241601044808113100640794062699063910273060360085766154282639887034923107508143831122117344459571558033402594165380744968421174296487814606789094921633403087893608552764222855243602071343005024088388940109353835900948507463785412492651847418853534500025411519881718184373553280222192135904337899320612351657192772234931961450659534760144589189928217634532495283893108691846641428151576806690846331841642683692073314589587241313207869166254178312798873853563268125627263749059331561275395184277006401690358400030821921836701760881657577231643108911029606947483879420917000214499256623846003802005481251738310462807441814615951873241683758651956596112836637358578024921508056147101291978878441499217387147492544711217173252720932619167951726819059611911974731808770134813710488241038924485811757276961375620121622055166953291615560463502276568720186075798963220605525291011635888043548215192811259556896569929999332016927995036134933574685298483115865062055367196709881993181070609607973913913096000666739078320534233896594087564888110969534097107551309111138638279211694648792448303038331676776490323437753199877150631915374956998910773806918184454057478126231743132639974975488694406121960448366280958031263165372989379810442130571720891758085265756481460472080160810002927967758252305114854024628998479139219623194436167874926630588793710195628674840528730038597048694263420143161951869329572170074250723262982684891529215066746560507773960546303012593782891394527961163702834844793438087626110310848516998728904454896084911705636300165441724721221263985005903239778474179905302386431842188845335770938834514675501467779489698303341740601282994051811333991745465924148005655098075500727884324892013731237830319213790988775685982743848436068610494903466456444046191294412384373038675680555737553457473659078258374959242807304112033136593581608598919344009481345405503073360003281640790888159113947785484587771213935186328035107544312089383811502591479865838403433866319999648836234639517649975830948088262404334246379001424373187136141847589244127891898645347672371335115611850365564096159561930208520753284561415306576538606844613126887488383955914063212038556311602934689456770854409957964622148568974348255367001788164359437971302728375021591750058035223886035701156874203854218993219883698381340585772652588602179071822660919758599407863394572557861569413751775232757900771375183732721480882226536443675038308921424048356008258761695415815449831308783707691533037452556338963954562340033457047457462197293114593987663665818570010689141552236248626371915772042213201178650580213179391517136203609012726672483554788763850038100237984119955910960894313662705422977237999940965987744174422853177296845075456400539430433277490202659367056606909964004999688146225047963511968321193770269442868903058594486636618372899013705567649116720641161663165983463309842987601985824818168792937180522001572843139811892741331550881404589874983020649291745960161012403731075329720480084995087887532876066938454049911566995064388863153765919247500660289200434871075094335474995121309398190001997402661568638952332538473796626392957874845498033416597103350142122402961613512339389419001784082640987127017007609800633991254687393528171447114296046400566084056552507794389998348202335383458307992972411581501083158019165382770345919771544452720577422930376067292628328200473146736723426981385108455885825068060089759806282326534521802482084945687265992182004731559452911401535213615094685508806505517574783338410033907076327787149075223526825556881624323004786462065084555473704099786606770358775029128322558754720519310218757578203509370043433802221172807305312942234586756169246403912419528492699577186250157462196761492157682830007104333426022886494656024095480791915090551268611027508396074293661395972677959863811403054139650481428356189862002373555268101744958222325380267201525165222660243487815337266832987728185017377585053779758568791034613294456633275810534126491755653445724222812905539810889442460864074464019679930979515953604426530521014739146707617762737621145190622462652269245628753751983923793397395781191760799224801778383926455314627309908789579097850559366416941652044010789625464151270749481849128591744294971066006995430903293912866357560491164094597293523029837326102437480539725973095439958697669494148043328422199180827227387739352213818508505048732981799594117672756441028020757269181948330318177653662504278350328928837109028027727505925519286127553496518531085367631232470999380296100052716280957088417394729467439386736203381256444115522965544562656651185787513680410630990892707483357593264020741683528577656299997290991048994748691460073987029988628908442056063127206107692894226586222551676462384985654220578146222770299049713604655772122531937610180256721359881024338380968819435589641573410175424512707092566511170846868777979886555448483569946343993520034282595060097592345186060265855179917802210751656674678795709183860661645898756321207799471577536097844397696675123466941063265441503135251960364658639687309631977537778966239693580040867952162594861547187461380304274913096113678463232601610971197282973460939553022764973702119885868323843294905417980565221742460971904742353030860271211280444720850351466043260478637327158655514414502034376591890830319319423626829066758180682156871679338038436821172835041616898729234947957959163284185247621653980292233060174595089669424974661070889114582884759486449159225836333660388730375561587816076959879996376865338411735982387148719687008962679960048034229514050950949444713003187983129165895718168117089609841701980984562325367616740724513379267605143035306096851750017974402111628376039768073123584805719262196233294429835180562250741792787160994242940761137379687139231641200139675450499965931793606014799818615884591384221078233202748349500614530083126340266258303914904092547776381382862748634866963775531588410713552200931354569881463066671331368553776582950089308480054003941437116020814830553421915077981102867023384101053854060364902730112932853200649300704454564084941273351727952053666814179995153778127536289259041422987273342557364705331917318472349981883875239000104016748403992934947109142133717924571348393223032354848172246472988472769256205522787684570547529800779184379984070923099424099049168775679938944508978050609889488839941263488472903707206082999498120887843392868357865577701090549112410879602563796438840518485705027399306473400641688570643697149443854039356654844343412998230137683113670708382615962032180447721804471077640733508074945655508046436917683180226123738171657132810988742155221466125470130219829339169970250655567431161881675355132595274742094151487749588271637778687297592246730080147094877954641191190407209429892019796431792810386966937517202170694574971238722161383335785298776490448558522969582348978318122031699533003978481841199939757512213387142771880458412345442552874723998789635202189907669177812198114973714183072792019814338617901231576541697536498789972047840588584639589190826808507525175323116372972339367016426728933880906535967508190874382088678867648310254403763350033473193700239020100617378189000640195767048050234249560029245453059177623739865776393603174830439161043419564311516681300115370936938596994584051470516558486965776281485390794842506038286501537404049461606946558539776157422542633077022835279039371670658345530367909628729094452218862881735591404732326613684771146435609256624441467518427812646792390037079386440797524724531218156031649263836877226025007657571978644237253559142524981931558717821560310944938556535214808444833205997307714863797612831376070324480290589815576212529309684771940539540180366196008278491627934573660655163242136932130396179926747835606256675814400361230212366217304119699035738106858805197294922646323485350460226079450897654486823453320792926060458783725938050538359321808709249367834116646646068878705259163162561950743812693675617528749037232631371556051207267806859731682712610138439172310737599463428621588115735169585965211180526456785540186165425297027455316535643015955008050152854015906674983140100226993572138661317268474197961085811332220336531531026180250544740745142621202947596348237429640400539422026414599331356915724720472778675062915730475100466086470884644004516575819137559004835334394767796104177063858927861541142068795717986453028206953104515740062649332411295360621759887545770533828582773480926911004813533125845072750075665857787698615904316246325062196910730555191396792966701494988568559540228883339381229686721094506643646467910575429757215934922268634127457236476750116690174893740885972869652344978279386913296916484635039913111397630445244181452225580815829210871441045541801260310061947252452790141331139587084021503710431963516176900994108159124292055725680977773864701240057829106272868570000375773529721945737886840561295235941013460441947196222453235734005316419728011624428931403038816099004338871130766294521437674849516615934400359044110012288823975315099411908890670637121538154951508605808402707639483976757947761033432912090998208136886330880316891565926878846837224700696237663099094908141960633826757807604382883258676711645123707065954831774481459583221247396153248669680727120739891500269937369009505343564772899317444437577260856867996907020217055963106375427122635233143067627927177847145051193411667253331416107344277599492232603935431580402905904279192224723685716601351825437506637960671451591804923034573300095673143963901962707585166006547143250227176119623428525001222532088622080887311388283513090149520379832632153760249518904748296172781465059852304942642172420289466550020321083630725232550731138312384492388816767684809566766259050971529242576123380692887689495367911323345624650918269541393690369865559130790956648606593584163875620760877503865043412728083040549421645476265120507664043280654540096881448862613813584540294022908267378068044050873475633520943873973759290088784378747824738725686326887662628695616872061832083609337413543701912385346730192883783655067121803153362048811875224731207584398888054450958183670417225196150730686265349433018832824289588178409060627367169608620012028037646236838891748377814864874275053656231172263811216372404832156607617457896858912214686588905480567843239474894426340941115409447493719520401982227103251793978736425609343366882021958226828436051689702160180878518091137773727357988623708106299055467359862491621452796084437585630115240901332720129120425795823326615815874912334555638154953029092516354640929008271028206852780937745549841345354835317845889736266636356200311516098192548180729737327020727216622173900459318810187886487390988260578374135681799346790790695261032175739705949267992757988634963540598461682307235363965825229819706089372896008944396581172498862501227850406846243108489814010408100660996069892260936823326319981816997991587569040440387680993259258277003318058120903713462256842138066818802933538918400939126731834997711284743199031379449182392975186472665453675888857069538515873299754709025081927175678825256325173047756403060681752426420476787635543713403359415335705656704597610054212899034952186576857394262967740013450779951394774311766678626140600102893883611363953289034009161598342321536428133105578791476098312837486591879851649208773584375707082469798146673981715726700457830984889739170721182518034406124854557511704369297514409336198269833494886278392599706030976929019490408713530194551498693664733163028177534135018737482045084321070987002690196311686651169530369689100708527795445770040452478791681152086223858079967171535271008840835856164382238588184762573910230383950787023532292530574622542766425714394665354957754066679115754493257839601743284385293873109246710329286478538196840967380171363052581601589764855120927029358863106508349767039124072117142679245325091746326145771379698375614385214781694450754843224998712422420267166674423520640561567436987671052546591037595410005730052781359589527188811772472312583823478464609033719670860776792221143334110609363534965844270989633465323279306266185048333509115347927880040294469590914369047149404832984036378425228805088712146892884191890316483915364396013166792505468186307618484435425727040991247054677430474891409681237329572346893971081430099649272374553693736619305246162439375411883803778457206994205864130390263383755724950759352487720422050797203682061468303784340161707133507389911956547289149199089774113345169635779068360216491492080979359183152289875955071889881054624344054437978719832632457927036184250290522787319442291626544090858700995184523805775525631605199624054360969739892465514764685976784318672532438563842648988347693244692445877177493376328131036050905803768615067075010925913825088710503826316527150880241931221220110093508605429914505060162109586271033144598801147538366610541849977577579774929269235168944428610926476697870047288070661211566064206680581654318562975367152531188734937640208919625621263354426735750491328182192791871474510484424591668766643394153823808281150838573736380946900591673206805916752055058134162288390666806922415566146670228796705205075576633162447708260934139049320056451529870504427657548402097717763873676436083374295677512340983045494669563794846987761074157866691394117406401603917437027573223629908483873929605911298297624938072493644608300007328953044217539069709098756528517536767892112892848643819599120711471435727444906245288014948779585457935884356645294603469159655616308725443862799872261861049799716259943935287000915524364008247041173859731996272604479774016149274193442037990465003377697377488230611585706407650086331789351985613289049527284959534019379268267664807578938629544407364937002755068585329494341837450925903578572010661692339802066843569043371665843533041733309148297659931397454906425068344840276588836228420226258177569260256520770136389001383944029358517845810783563428299689508230200045082550777617802545268923427629168979943152112189779265105979739169851978958859177925319964400017225007465373053489451245929769772622013907560528311968057422795053031195189131629264030274044144696433786914836325316616690049766798044515467629830705710748196665274853093579771711581197962650042974277340350133185886348807053729185965058615077303491381342058214866793866812572021869179299617345161390782920856551986046868363523117940008519905248206307164220603590500617413243573664626963910055231779453681505574783751677035448692597651452876512069024067846365360395441626925990358691017562265126144890954374409790175048666328085650329422089996061019646594564562169024330032317897671761165064243172548613547683378308237041169122250162469787013980906674554431815533696768823912066734032469272243797138499551086947255034828610349222063472303789543440409902286376837568844455173361375929432445334032331313395600120628429731816031624249940005560899594854589969397123282183249966409204536656503622187017626177512285132389410329452835740949355862053192818601504268407983890364636553719137646047261071210302007183065588378960358964917969445106076189198892283558099882892147542924722412971986936096653934096594751425312761382027942707628762009359411189770793707527302107613866447832575737285720795469080759452397255932101073265699829098559431255758526700977196340009058139349210786654967623259158017288456421369501021949922603594652154135239964787903417016530296528483977150579209701700269886603772786649424543798323904423584113018895653558839805750435517275908050220866255830242870910242609354841397898033521097164339835890117858750336843688945402312780215231652256810930010853759539180266362167798890180017244725494086504054288018180604888479638495554377562096328497037820351002174668006595458938697612581816352892607062349706485755779706065503109545731582025916026246213550635418337485179056724611051142016322672844336322151556191293849870017516916767392227713719784591102178091694269831685265485076161990442701468008638204882928426434531053581387934652118134698008315149135596987486263997512179510110218375076452053953487548069774044559151174104051060519755846066143348086653573379808669602380144646508170510749659258375002685017235072573901629828769243834126538908059215500551075252277414890742039871389339825229110243334712892616426497521398950887244470169667153906496140470821750853928384954040210192280191828530693328184706287729148690013526699324410575970430099504364117637502249821333044987483456474045151358969087609922276264213196623754296386714510095028871104804034141470137239528885831351033739223057601458116434728582756559475536315733251395794384702815045102873953037186756622400807627583299281938430705232608218981778892902124599923809688275078472997124019240612533416226984000883921683518722734452184888195593127160944413851829387575876791553775028653032635140967582204783966522654918968432901694258276748291214612550432699118259490206308736006119949555207745392503542708136880965865860698559005460592826022201453229022164497766321646577975276438203884852731723291548006291824455574956065964553399245183033202594589579478196547720208640289061796797477261508001839266175960851063802164864584371818444689557120256559406258019025746118232331441720064402998020904603186468197948951914900368510190631865785241517110541838656072397624422254097074751612322691940854634795140267686911922335685017432954504470703451100728452112930750980308949877167747473881072844835156476726376816987830639597295010381642066195203666760655933814410475805885361172885421134472718008327182418534706267405266484265508219372193575075421241428453312465362033958655702320585717022906423895540736633691760443426398466583134271914230128355499257955176474015413814062746148519801305600737178133647119744883937338159452422553589031992855810678426534137335127518978137034046016081450507003616876325162740788458214449892448871312489631475102653566971496310763967520604220573484572333723743338932738792393607741966270790826610441930975882875362054000409857775704756166226950267665364548273300861406730207484276519491565623722814328899455164973255938487859969602473755146222625138684078471879019813184861846127586305253507383144868702737244015783756168890154631603756747016743021549193734203176009536303113386156416493412044444395705239849603383027486740388943144169655987272523123807817795659281471149953689864584821294524166077265398546047085894711950016449308911066969474555093206221265684382245392369262710554686531898505638224227268752544338261678840299275980263836356047002069499696180544548743744583972377123713927870853664090999629244545763218653656648774693072245318616832010568067551787321720678834388793419404960074345965637891203841926451067315918976915889625365215544056654534542742759368357672018517629781027230679693317452042827166762557741100982377347859129039879963123934507857675498171905120916926062166226962892289600454533025555774407967471978481538855107427342596791283872426813888525597206571575527882440633688729409941309120238922496691183948622549572755291899871444171232920524535102750941834835004186704937329192799137571849392174601785774863909714625086132889324531622137149479741005794892465754479722064431735217862127185837609997276563460740970690579317210402665873511470478071707603560559656340555124297018126236562333883814470389749286074075287812612087075494566919176393150629341652416873380711089536064192719948902454896312078973753604044181807726248938832091777334359133017087614943331696746206847555287921000786276324591208586911229596687272969473780515518151805534479197245421606886036396949420348255608975219187545888344415269955886123663992791031084024878639744008729899335509001377080880279595212078246948687342857452307937886586261101295221103206733233185737568747107467065542529586123510856339215049337079672821553529278421009452488619089745970046632878897651583392485035798303668728725995152311094225377370982896051791291758084797922473388861378797166320145857941380160421371212837108400788968651718920616789576272929608979098126946796704369791568690012665060166006674136536854747484450763242703479265411920328712024187653216626948423151139915392011268041533164743737004520701726642772028897978966774547329234342190962061034817213209279866037518256527891378471443401269285130755696700766978061080051613259847526736578421119011189146654286472143464349991061865169164541448881669008625390385704137407066003202315091668148759429920137812365672328370159844667045356518955912863029074565524395588398382265127323253744171131050506022236508959937880308353867233095743874149299573723916913336294934282330765810537405269981162104962500037552783954178691004633996221880086796160860773868530785938642405093406302572768340693024896153543704826973944972141478896877906598594350869404726642873347344845399765057876688890545068488464762529881174360539302544284393542554772599177665278886616045471864675176510009663034475746404903977773492281995635329595293231522047296823521891086315848926622614195552993531021568641410840445110980681287248890085414436511801377273850558754110663130681459174364172308438519908899155955406710450726529029124633061796016689878320057811543288198720001068981852700827788353484071150728833287089375771945864198126640007321584388295397874424779907661552085218392161120004302203743053681376882803348283065491601968909895667983752056149669966705639712468535436304315323068714309795442406746212519622737296693811733369886144617816700119562536436018778349341079041267242233783713171240913013385130462072845150469243962808746967093325352551395161976268599546904140785699401402449584160998575595408369612255293916304866048733688209675198452392804882831088143276421385650169573730486605946125985343611852688191423178550066915097892055065540287362882139147022628572091598921511291533316767203623733774245717384821244298686678515984710406947938411017165640213078571572378870210600523646464104628852324745247047856729380381547287249478526738831794471460799888606474700287109292433756834929384464345539247087087449610986616004627945530552659408056841954483246871296466586200401598520174208578595044534377252722458219545897632048728324170334275370431070148617259001411725910589940706464193021209804383979731142971990612837145615068131913662562567488091951357997252451391692471475838400688596307268062170311044937586638449705240369428716088033087283754467545649521885988315287210531555912504501330619761276769348988109347582905464988538996248502419979940571854922255468942946799048577719157324888458552190491188222174873584775244314453868350673870545487933111763900936996073308096018218411963843879320616287238354900463672132182240463318057091735801695204102099782897103083513132819137221643639031313615922026121692680774295397786628828219405968060938743220887112658639175127256496647172131502891002241295107056737598251753133613913116774797366283911430211339314655671880418174831331582492731356078970511063918456283259692555348154688757931069962671065844129317490640640626534815013511425814145376275430134853882738115806655156349541490161311555961810173390422213438534096471390281112509462063427993652989447754482126911633841037982868623170308033361879933940674104485949764756761589545800076582049572198031702762174837641493940125293438741056907858131664504249414306553974855926601152630065226889859011004013126165069706976166381258786660547820911083715475467601928816845645720546528108502582037193678688029211186500926513415527620946100964825217480677893340693553206881243520999415999892506769562046350547562592647561077767102857854919120240041681293665854556082619551906484257125565185786015920269416376038823525716073907345442771728457165631443022998067677630328475048494735113579061276010314258642905173843655074488517335466458137117100264985133041454777962953388677652670015153535722483833313898410990555671935277537366144163254479078430244740514931322613064955083624667518239379882295155615410920748302069467517784639806727127302839572451177213365759708011004984930725168131986217795198689881104378840195430584283235999522438018570175184226127238026964910949961137809717324730764487749140207033530060825442729234977590524112000917243636214386613374795886489725424082155956281273740590368408291430958527797622703718104673226281938993780907532749667020130079577825927461800404651995179599096779526692042937983493144805329829115323153251685733044816716434952245429790062267027999679194554193744248002149966865314286597327138401187391279680127782400319802256666146614785355198663470162363767325997870762522905510138183158123766740717386270646219733455785324459621908482591874306128031171090253424262551432215245430421179376526818129188449592512445741260762264033482106545491127093126717282803389458441641515795228652129774433626698734208740108433475545910581002317933771424034380115233530377551278222849307312545487550495322454361341052349362926334446091286658375441166320299352820704542146102065875030833167808441582945509351676408584753248446101958960983348067937842130538383446424174965033368553333422395398558174840809398305875347209303106202977917685625103659467193840775955885214867987107204000694902748453309284789237471588744344374610321619228163953533412703483197424788928886674389275430178520880433024888483762996627553550745130006837255956072230689400472556955192002816030405529216543074427923490013844421042500521142418000070247587457046944416099603682220940591978526673129452145272506090875202594913415797294830355923179101111821574630280448115202557948795495790586984801667733043017087851109624315244519281839390127651923914109433844025268540491984327626368306160117801429003835118899389024903544652047743328395165116832309515558578623476975859712149180804702469868664156142519009595170352743735229761908642449582685900702209868004817607162667621551725309767399684932317194542440024376286522337634090619855658055182292163647935699587879785830378488559775173303258824318689331250888379261253690396071011376106023446300548717455330677721436961505007642652665958070843404345385408632909909960197170115203342169665857169123000119060402100530796149063263282378884256223028802951924316845972431718748470859476098087794805042730627053932349980920302505446873255305650554916108658407235689137035486171831903915501388211379039338677097652807307073102624917887566221230020240877157104488245506946062228764287177873733797138772492476358022170830393379091176188211284164609728317138709077562322115917074942024934235931519612092898160566922613422209395320221109750135129735092779052275306073318454507765122005796962415561439794160317729761379403858406004228083963719768353484117001404036988918411695508858532631607272022664570126199914763540040968214652886083615094244221129658124135890291971965280914781623046984770743858728347662003382730818049832582822438751033089897577800271353917916266781788765919828755839446824169942486540482197525847140161031248889516995819155095190768115378689451208556394107434136291113368494783815197205446990329554788462134896745934173717684880079425290930916826410887053168875359986827084087965687386031236390278348479070653622643487076464423466259056516298960456293910242612159177150958930846046916881472361809290927603452800926482066070467786186848329553773596396065793348097603922182707509874797834599577022893651579453140711908750685453018358218497798656100658051820774384988777119280354344062389211215679917455579825560636340283878459282521041135264056323840531217273288622359048956074702517852942899557061123009068316102696616755796139961189362172560209023056516335714210919118637155326212792410276922493462739684844166255051220235043850542326544084594765021186912540735082635478988037862189637014931072557554210150814470985877616910541731725647104143158536680346122070516125064400608552296651678261796554479068923778238342838309647289351714211307096167101719559473251418119747779594511144347457607343077752830416103954769975550943288265854441533040064770851506246556840803730204139854867346689634816828646831834881751725494042259123141727727007925675650540762463755577430802972052087332219153579613767536726683858197403002463565409379795962218237974770014897004812842350603311311539102364635887569425885092824462116408218685994131839163680193503097561276345953587208685181784713788032080243123948072081559906832050359164460831184191101739209689365106436443676323746034122175171814178777852713478383152328876100767881846825398768095162208155165401599483103453161577706258062616213577150716676412139384523418616885349043739302236387883376497258550628136429008083486439471239855001087728667548186911756449282669713031299240839215044391101660778079113984651563086547143983530677058544181065280588487178795619022679916639681235662425965640591923069812741755853423471331742276619268699818208611968283637420233684769270683579533477165280877908020868875956204018918800033177385674271237901338956653096254871004842083724245874141638457548964249074796592860559665922460159916196481671422180279981826774914152275212689757001647480645272618290611746798443496256192916127240412654099872872604015676904529928312838757162031544113023081845576825864104379975312308973184064685363070743113745003272468716631686672743993058560979635597370664001387870797360483474327835618069534281455808039574155303054863623420658758147134378698511660572368977496937060801694068448713107444115099540012935000063348664930084853578055617936665308851986759602430001977688038165978697745004281652046825688684040166798371443113948234617288616742447652746451931233642400267092938246207026247896857148764625538893365688560721996427018908965402205896902469842032348074311656488720771655787068374976557284027328273461776474917873826120099008571722554043585872444182653091807527946247823662901618931137190469442942174383067602780932334372584567508367787530297213956082532882002436038465201711870450399226543636079448282951138982834380687768797133452313993691026960772186421547152930147452907879874183000865730018253235891751996804655906486461141340721283131068776973774187335079883256558334215844468077837023795708635323549502958608495595173841746252872328493284132404901673774591669834755564124691282602735870153409784301541560524671990087455365211667482745771223393930945371694224947975059872938318220091704359064950942444613010017258534996634050543979396899990852551819978172947514116847856901200643462357796175534604529114201263473776162306637160342897042205687813181977786742601305846984628899657995545610786212666424908202480309896414765428004249155060323328675688709155929023563588724425585109220578348262410038840049024202621377254222437497636434095322451042589181397899488157149545312056955209892505559779326148199526193145303456071566310605638797331768221067591062888521863726566693923431070762178298079573649832256399499500186543486226782227434689963227104771121523137154823071882142582203453797895998949747994417438830111171851300273864796934004731173184795462706399723715124700713215181258626468756624550197078043988732654774360654122306943753817299310616442793391362506456753039145209281849451033952986971522680818452118925121088772369153323699619506273797056081999765257624402227885415602025733712756738121263914459857688993062766050222893796858251250032799479893331603314502318386821162567178205952013083054339966349490456865406608234583398951661006425120800834522530318541665562889856039018449059106032598538035673738318974701008105383275150590586250533756773406427771586354139860908316614662266932474098341178245237941955536743909424375942210148079928082711816667936954736838011302502925516466775877428515098810224079547015813708768043852657922564866987068057635870580577501179487297669788378705310317866299775721631057625139428549662606829805996839971490837558301272360615280654913304153553903321079682085516876102978459484001586722513211187757625614768446839014397801543037264571715134357491502313507226053883698927927900543022516283977839867855034518152065738845080806293451690420354658680120292728806472413577252156619418404993630772042919192967175677267823619274346872965299310192364841725925214441489319815654127421167811460418805847602646285737011128046112123277500707963565338137805375203159580211389471486015405837507368078450474540936761682608703650720346372434528052503451651846406429864744460168003588912717629759229954128316333090498350590971342300587135220543901865617830615705260074171636622378714986517098888030440294557970125111497532060185792283154893386181030291476253794610876733493222285579617446266676898942664129542199007601145348459172922000528593863875365072817720523823061626774883438283497036768773422177177322340496360544960240110890503805979409044557622447550845652345497456052246416391899357466008408744994264527837125483619106365334369631147077809915144342740874546135930542424061761957433478947696675622281227138134687400881920548484341885895308407089112622510596059443963506687627495395734285150204587176078688393638987363849124363143199746569088837386155510696655414958139205907942347506633975110462390341086317801079762172640568795276603573866134200288672215364424518720910139308906793610492356129158569497494533323387103768715435618242671308166760554540065363066875472593285285107227042954305695625785769475309835451450257618639563152532992131225183104173003186629146263164814296770632206044252805314948173594058082902294804952908267484699851265642132338651268877481650144604946090499719669917962778872635126721077591852019051914723370339327018573979622235609692186712667537587657678123007508454310718605350305463608178141041256638549803298571895102922895148572286704160783841349097328617369651863024946454998130245942101199391827679960435562637638360453369269871788220770466376043913660426875109537468544768206151183051942677796816039356276945847431172281185573615711175929178577013389488473682344872694632069757843392271012193706838978689216495009398328408939117636540896651197132183461863224733143767719410095522019179881477890243083530669844837104731942350435447427302551885527609540673769271418409519392980713335689639837619068242745065748872105482930663845080316526438715383992507481358878146412299071347966476627318122613575476643305564484422903096483511075326381373748827595762705224351704365617239223046297299229558084743930335154417361455713747326224410180722012308545407278407459343488704184999817789067811373119866025369892984231882723453213739333077915685768695333954585107284438717514853190124981229944099677984155541979279275976837816077690860956958994935097949230921742714308998899876445140729685941126806823745096037949957680076295503129053142784630791688254856870159880831393778010670024844293128867150809497722897076921776900658842417929391583238591117235626535081174649669850863996918947126187998302304893469040695445266028106513969607970597668952240920616841135692992777630469299540919718195408238143900172887184973915682103058662751870413485753846959283984646179716770684453828647490806769921640893346607290386990642700590658658462482451449217798764109785119591089361171478191389682153776688613791417777506062632450903778232421652666079252459567518143440671742247620801984786756306467948360933380849985806933542731240287246688592988524787372500657742468319319309022926634006272497216840798351681156044586556728285743886478573094845775819450396603459247709610059758527929421256777785633117460168651782220165523416055910814319407294789390192224486973650419792101680727641183409501658286233867770152584423249083237873635440617013322767284935948133582819526550110334435734128736569979220195401380585824963667900501278892991597036985765567914733139160906700010938411674117289655118318786093139514394934919468189553359489032072139717090906484536799311141295364536869534705886091349311265577878717694845205947685773721079929319871455485325988599211385325661439821268188932143745339111561034682271625861097092753077125393821549625322585356357346950166700422474983546800279779019528001794891846246030409555358220141774267680251395465683398181896635115026238411958546969687452774643202215357059193656097209526071796258999808904956328635716007980182490905566774553056026874196979264645795868028442321109756843336810732820794744629019293798394002335723989266985167700456703704543337960976818262000672742562859160110018602691291477020609548815117939516388203155160857716835138931313493151587619511438594197734305439543153020488278567774976050501059164961444303281478100638858760966412192183893161517106375777775191287964156910453268105760638287811252294815762519649530375814816937815902293954790145996116781271725291549589903423527001475704614995454934772654512403941524244522627488097281328753376434247837615256221091644205823992981912774382619980922955527411641352176700095494724336516342342805203678105394233670359877013800277763077254287980537394991940948459932104324321409165606743293142945896640182826071079603080833503814448493331243841473565662027283767575164095668147301002829208447840261930114170573814333743503085057934180492054596560468510252359763021532451920722425639468948978917629739335929003087093803251520920446641186841331865564773435758675484286881291669451501223679886789390183201656309666851288732146082898030015162563759915492050179884567537956934410257925638817106577503529601672202715263022438705259841648387129142380246245403702470997199961591108828824481899935247265888406370999726278703846739374830442634950865031871902874781205572943594169386480591324234592898254938157500112832718812642697654778296621495850277569144436293579450243426683590933020690048224266695460314529234574094894246394555988895541307826135620616028893094022015770718980566953075645811025849884586042027809928866392789264263102960628056433939209891338699748226243728894377773600106023025004119372596326976585967126873236152229341430241753472326785570142059839627813079458887721092854154407426682745857315357688006611541525289856445497684861125198303444182860788067201074551121353683614374624600502383827633528041437643421388586866080279077289467937969629427613769918162080935151878440300049114131055017571176607488141018952048912304608386197185473338873033076149782807469693474841429690699298786930654569416088107147019394120320009753899042350444015070043745182385585878371729797541164812284789575054438902676493184332682740937533634205617395109705109977661495637101710756299522960705626300916227245656488641189027399885019854219674822318060964527978929884603741439649775810626432940442012080824239683688985750368776478969303200965421391983539628081202913787415666876526869937867031829972452646326333476985179471844876643996154809307237864472372019334809803889659910917639215304382628037096888472601718505887751066137668493196053032656060561580515468265204432120792952945018443283327902730766842678007740959968261817261851611306306883122828210571215439893818204896578735581543113428917657611007725625312597194591182927369788950195752933300108295168114887362568470292790931913137328560403486124508407650545753495230792456629437959912500783385627945231272387338119033991954770677346319411677706372545658760634558274637246767217487384494924577744084594330726491176441621659233799505922833803057204845980341831908832010001347949048947654767861282806613750522392743136843505141778301851959290964110341800295243986213044294542916752790621706393515545200045887979808021730764196838803635363075911273746093966115324960150899330108668360937444731821317503847980741366861711843258116763076747009691097225156396719113900810042998256956867101819415116261428292509393833410742691603365983358105004427143953118356695617658560236143661995060131833363646810691453249716944912631643365978060084737696131990691862228716439911883620316587375483004536383299516458061105535522540879600696143082637436920528826187586399417694954670939438067112810286201276064112277585896998202891554165656477139643136966914736046747976867641400180734789227113136475614772195653537337718774572454902026810175381403315238887296088177941497806020595533324707895526264288968943659648541897121845405895938690020280756659172841004187011813433978425435478083715261873056533186868120775256268174404673753338917029626062278477264457970906740345396947839268045971283279168545011966647311376914093346629372788256405814252708869675782797024244871062663890769103735621256063841101202777477000910984442090177154748938313396254341929143031983158295199663178545881309120807030351393449266088542979075517113526397423056251072397962960623927872691894682337198838320796435658387251605254709764292267798311547751717298134879242949676009525779922091872116806253291202451040382489970755437464205153059227183506829059275014554034619573226836068777931568889795601988559431644683184202110535011313204855347039875714251669672908409404380789443876636476752818156348330246475550565368266545808214236294714677857205582527094293146563952560307284776700495450417788978637997339852655300563011718863323748373371455288197136079931320047368553909132365415386272997119705339720608786338810642655091644208963418728789514570613710967486680570201138826268438057210706291857588024933205072998611569379551516864193779710052133739211724966777779609839585752126356218904269874576618619783461962685033228793801536447894011013623825854050897836251065282663535847859364681962894829867294358500936601210674517793591487133834589024818307699327892609809923257757118504156646606873433315794483185214658576277198092854183968621070331439123086429905663976996953556277390551605840142823440189931686728055704410697731468754061426657712936187089658695197338569815350770644828956401834835160452664432571339685753826814429555417487300704223359251795813179608553956471032899295266158779430605278936334392587430409593239366771540874189398386451760588996250602993322924778776037482874627302974210162897948591090081586771843770362839590645792864561246229890453366952888785948936728258942425605292238004713757987457812270266746827683612818649385103273015311514495701959450332415339842601660655809785443127947707557209899943320277155374683882037256645225954888846645089701594966937915773416787620820809095661957790177191878903877076987745621276941647922125060735257316915834749015886897193992698373896720067531008514604983700766586428485177652867090826010779526489739272935769615153740604653692526612357841952072900239867076919370388743250112639199565219363639965737228643738670847141292826904544521198854315557676006415445007130111033142187094213334115081580987918080390776226637989971333172780149302406074114669904208672258227789818650466664634411018107693626848708678951971337391206639590145132345265083769269309223490440519524431155620267943405215439421279333837377019114154296480785067039030263390372663977555920746123203038102502482703081516435056325857023877681076626232593788649048887820467254497533278298475925778153286155968073399745041368158318671415394516087135370973574802243792898839092896368249479650218674035398929737538500453777051507483024324524909521562170074783749386492416119465204765460341816658459163426830184391534848851240694404386792358400195171837774835755466617027621278859393239116775663485750068110097597701208028891745395868221935839439726405490579843917196874082221644738480326167792280514568435245278947494026830167016076435475210643341242542899894475686467484808950646125588797009968751957809625877092220614685125740259103439614202150292842652924613657724227059381739340596752370350794929630406357157453988485544693027340547106102805814203026174669580877800776035954420219363671473314687886591193323830290825544791713700863922073999770036769028593853719546813620033437806221156296189911166476033903595833439405574367464361039385837386930854059147332772742756070976681075176539941549017774649320158552417627927589314730533393171580212251289172972683687454649268728052343181947111663743674740034522528282596009806322952641234856702363346894469625977615633252682874910712339703613164689361436020518291594249145236252740817301565233993479606534575039350699848395491899066491946415311089285644275827699705479067334040903497073706045409891126806019653541791962570777334901163576293436469678262954239188282667855433613995886693850009931028983769495563940868634674143428755774815271271640873221972274014025306482962050934477992104726935819105558951000058136944549615711246076108516826784094545807159969861534479923984857780128237575308656057688005261003198095732848610567168917541085991540705197733574892551261426229934743632975348605411137659473490806095077170810713636961639373742741372310962363946660034219898314269404727020723635853832865131990712965755970392520278770372209168585181189157496336271526648640585606026644425250899238884704556338361500336538554971902654903324426035076994568625176054961655798292140791861812481034656410400079715904628492076070777521366185329386432500858423197500658967342612079614586787603552706886065301358676059952546749345729262700887263224312189874821273843200721308448229050848303434033624348321095867947625425100970250252443908984499873200540907496602008198792292973543911627151300899796316098264543979124656790553761292124406962702614807088034176897857109505622542858060243600556841214670199067895545309115806951992702263279189414278914944414373421915474429418613154910733762162703349168251980755706829353039584342528864518645915541455630829013928871863722273063240768697778873621460718036433031921913723386611358092783294876686860076592890441890925984592841480184053699316096857121961135023854283568346202087399357760998460411259139748986030341133090670940961984920935854418433509324603672276286647273443105493364801941075396864121667205686349351724405610513044604092193888654723561152007640312998804073572484943412689085362680698848475713952329160394715991244553001913236071940776735935372583038013486839701198363592162564368371278288718107587805792392931257585846955759926739299217054036343853887430854975586905385593240998374238455408732218010927838610783687109112285042066235666688973730629769222500156242891519144024128516590199644536451883676955556793776738116071206474072062630148732028789549356933581103823081092259116079222569348719807620273028687232260917747845010397337661608034669743076116117809231734212635212963233585995543239124339954778558824746729715626633674073303642524583280206631694091195053058358869140871580918264709785067182048113128369482051380838208471007791640391145108504849846732041262008822054920062747196124573840791277570454892087548426640167379875042654670420248076845144842139808197673987483901643291618192017748267956659305082744812344350799579897070467476261353293217667534759460707374419184040043109379064413136175990146461390413368953466160389220878002408211711408019407010498490667168845609947143576144894223851447819085212493430984152860230628463945067484355355763338451927233748074058674408873882531982103601617193768488415231012388033733911815066821726656795768191064144727432353517223938801406558754433153920566035260609867132624348915224040117261872628740083004153146464170650051724436705892409982699205460236482251197844567406488023786306622471692609837454427494848910218745757030644986945943563163998246034608957327474663683268585383610355886182725294529821465061475513963868445064662967459653147004905737640667779253634455522081860620726178630689489427387217229584514036206721921137921604937009078558146102112431519900332280540093867503305843044240115933193444820744182001403647335880550772356942744480788890351429236318922488317728845243611431467946089422171412861313452105252403431605182762647207066168555676208771581470301510881731202545662227234619784812188222373991977250653518882053425759872158473117617843706265842740129161431657982326544816374003817559608396160634458290885918985166062299486812072293075736629963348913876445035734847177563039473762403237217927523774354420470673031010844276957458224855912265903806987627763803636752442823178865492398511242399442380796681744647323801852274779986981625410702874686230797594099434257017090061543684899372701217390673273826877838707725847903853095977695045883782191345248941860984495383628429386028999770452001475370809586065606277132273938879689242828411361771192515950660797921957522356459367254565129564982441429502765595883266552551501822380709672059235221834608651917840072917947708141365512699960415823802059323921049203984110609599580247703365844096136298594111748034747969678704804812535262286855634885976880412678553560015822548392468721511233502608059362294685774583919124503818231396445161128738277655229371415829131996146397975679784145518573075093374085773563453646892594741996222186532297886182052692792241278794572813168561259470360704921733918142927015723700498504107872131740817127920274171976890422961141702276579431851802751224418930306213474886444895745449766631195669271856992077619427202576711879603887082831868807593823859917164335750132832500159838213709566960038418352807560986691211262042087516377998531084428488251175885846035033419420922422145918812852872223828571698171323572571767024951138188589134519473825425932940631337939442926425081606341752738006186599189600194089559856245570000970909078451343981368392169904634571212529139462099962273175622119740682810963655109158280228949324351640688548396754692861141902527877931800009321942083484249567343604557876112864743276105471947531718203882154348700713764702871821403960899727756548744778609095837843031695205502129047392637618118303620626910941503004522461199162391726730688717701562564507472669371121081425360302245412466259614831983622999319424261274330244965726471296211099543844151192811136665988169616700522087085572741824473527964672530392326311964339562649768280045338130281862819856003089383479970799947610181277790100935800706804195000027458241911554100156240106658852908370802342207517738651086564002260254435547521020154728965853762150277042023631050356927658956607898936313120946119134222481170734363834494644051233496942740306231975222851009517474689640398702705574428778147434804745354135097882682823800222308904747579036342830383797050308406073870267756262095208097343213402563589124754933734239934944784438298645698256979449313474702028655640331874852007064931881279467948066093245446908243114925289530705359119008757030484141340728655828485098543380908371234502740546063489545915485876016610017999432966652488666968614532790094363673553237609862618224806790804136071271485497105916706710556715488816016997829699750032781685064823798522198589969739214627309345955917264136810340983708203347709639554614000384390679127542865398273259478278427169890196344861899310442003020820651816746125737312744660497274001713219401744950159346217897642521533790576428261262381580097816618900499124461053596588264620986822656803570987268077655974819768835001490412670558844436011808895563498017671600310719469559554647701926427782016920755474539410084872677317392267541761888666118625114042421067325232712946147016828754270866704882725251795239733312855557654624514032931417687223864528648040421336047596496941342497707355696663360888225453314239446553427023647842263189934353493015726798483298495552380501567757854585303608587034749364778860980954789131768455644323285139038826710405697471505763584097879699688463831303569299128705547710501308315900518159199295317701341103292157014792992663455409957992539577346349453315382779500500578487687649942682621813717622650020236521838808267681535805887000034252526375574730023799149440253307305933605311377080058028222716322582078092856401762192132674392988021757365075324912851841348896055901847971968626018157952961642566210339103619569481990347454815075414775511552109157908666312644651502178636807429314752758197365686124527056773261394713741551631984038131694938655222119420927463296080113843197154473155278383956804859721892517636613709875379183354936162347376083875193959376267911150208972488939460788396788786148834739219398702796677258627211283569938282991843620963328800523301402242255980279237499888266186624289875314208751234065052278468104206998036605240579877480485167491525579287412318568521971078322542616278135031603320683764441252183433957254612362731303304747721856043369981065585801769501562263820405260883150189605216013950437748046931715556953837909555873250725342262437253754987178094063731030991471125982601952818062877355052930047046153164796244820961888622401983751025038920334077621115826214102941163042962518178557939977296068325794319731056751970000548364474578634520083953747760260730633496606234233085540379961167268937110995723893354108471963168382386691195040436791444824383379763020131859282414116571570988781917607621457421916968027458765908465862849269245587884540846131366287614205673823060638691151442671827796626815312143828862432459799142151459759853470915219383809414926590865952388739398061861273031730982656904839986770891053514388391523394595158523162253314610649381680026146380938668281486674339183322561995349996485661491004127148104694250447330167200594965989537678610575902071157435378573400236591337853299568570426080826788432620396612098436075301837672359795180257728853400011486456886815513205531739904091511662203658305409212529126387644797443590248970592137516642291193161942103195094246998343316352733831703309244176573974677177553936441650902897575661790810636310796996300274755369523776888891198571338344270169497802703868817059850894057822797873310770584533006017713452559533436006338367387580016446871466763784344999729926428273850692369137019509726745000937480684988598892123036258987804267113684304179119435842450468864248945803805917674282993674704171769695594235827548542740759144575641341665611212804247868833054156857459815706965886431121683419336361720293663041600746038651674686262415990978893476192049189378469417288311266051691682100627042900693392138822501599223655537856509972562115655735611027497278402818040091811879720520870377286386618171912878727956182587213463035587447246688169318156097250525061415225068663586256178487649281738655491288666842175908884281833073874334585476180672093584815657493529669151062279483559148220741512323422668402938172394913817867086873436841492161007255479117419806858116662768021832924855863483709049896138208617833642860151425760262420361335947971046566496727471058440170373549980012426504594828554206901215195418708386028023624819442075928474175827611811438333636015124730993875026222538419215426245079054404011154128804350852458443658615232474407043299283319453736208644650935900025971424388152361712146847479570259196714119281989280302643862533715493282701891502231083903456521235886000819693601979272531723565680460948164999336638942232803279079541488187019555761001519177340059317983363945196905111964008068479707403528157028160619680261139499054350242966328590272874457087217414996435681621231573686199489173067263172390889101630596122019688036345080684021466063823239173555766212491345449106837152798899021541809281614912296637325389337406858032689297304048011998542165915920872361651778211675075702232483168443818748770666479730958087347661427418887337108955496256261167735754778456544499997137743420603818814536732206474970789746563366141489296382638853216870010564295314699058733076797684178550211703049703912760169306581441034426024944316419043953499389172995312863190747431421020360043805782162239982726826824968894731938745972954229797371298385442704127874600728271662126056250573598345175055453068373606620825290672009711669751699101375548020909385822435521791453524275046371568669128476770116546194318124941309849581235635336540434228049968880322834052912277448692454331654900110107656154790178464824790779175670996895170313291084223256088184417146682690203139942545533984851389087415930082512201540419794269780214906624707186474117583900288633913437604918885826976267999343088823138400436638980455713345858039761431587669184653604497740736518912783642511651337621131892956081946140912616641065284871230097070256601867883195977224719553151043784923681921710217514545367709782783828955789790258322193014061970412485232462180647199121596530458065261987166382395001922833038194865412906973538914549704718542895229729139012095785766391608659080450577270600546164897570321128123590285601274620500911444950142299376838167458162778991481151669122030470048190079231337299231697341984313181808605370142599937414961109401885618608658986469550269868134311416149083238543646453994311028064757897581000980999320889535174572361213939674817893592016287204035494433822327260771419586518770384148575238315894532876729375055132385392878275685324296122082640814180358943262395305342789838724786548590882217178533493458944098357473951229848856272695876411407863680194866951745478552737512734123998820061074936280312097198315179259689665193659762445650114075473235935148725342739974579639579195740344597749604180879504826280701363422533563037249800159243867339617698442588658405166296466739711782633149531676044916056629468745106708241212307129610525835717126216370961085460545749793784652323987150878096650216146456337557966242710308813998914154727388003617388737928241446079173024563113372008781731755164744367118414844048432138618763118426015125572845627653286683255844903607493842139865074889294308499204218388133193002761267886388510993683401254570450241054901615159955039734200606146361935104993796102794237302055355291321814651889404881232974373955626468979939822322290731551753741573635247973958708406093524266637184458669348563160017888425270732134534897473342602651533529116272676199422748747539053873092368454029620795221925022020353423617752898569183610458330874228469456518288544101316717815436301062996623803331834852647372558796207045778335019739641226143763497831420598493424595769140143863276388145859997074092594971673269041595802796699695522414176097735646724310595373284608288013805291132454924174805684901676913656871084926039531950787275766907273659339083880009896109406188099855941179867317826429584855127441277245779240532884194608652350173258832482459758330259335248036923948344154841760576885237563274299790189738432232180335933576026046954928411317857347373377122773709096250462877107582709160957160925926247879012526903479248917758450699846189447790740788099119518957836386930985510746922431666546174625011351907507011029485043185715218244615410700921376911571259790200979449068514465367293967155234283207068186080834546269017089162581227950397427712424383413999783743358062374939266358630834656485410486835902974656913305908651634427783212149706902362715136014037815322292463642964053853121660243571913266279620450952257834469126997633182926053726992877429396900782623644418165330282507771471956539426872738768299127162547224574672040941041507891297067212291808620286689566297776688979333729402392537715618506090673227952301322566808840038519736509256179687901929935674262749474008549726003833935739914203660036719135272990337505799299947571505967077871388815746614052038431531101799297423978235565409127869788230047946547450026898011973705587766112202588279963863098204756523952919722643009428066404855454603024494997422341993776574818597287340489186129654622079655891397031666221311649812287201404742836564175520563661387424343166033939401936335981597453195472450524473635049159968312399219952176074705135673868697973132170334107161980436069044399972146078223205522933799693341804115211850353419587827784108930037853370518265259746651162168877382895766709000884443068340475803369667008333894380826478082190495966031369400398226322772270479742136176424884416016842375888370996999838758358306718865671028508032442653939985289231347966453886884789122187299796393771016756635307770543200241614538831420327978266790765998504812003903296009097137680096844477183106089477452089713832694131755617372495919554781576494078824300011429927849598513974303358066062873225312683843971612357235295180853636018844575747581190485667821376657351652596358125151966476684312110499252797499888896971782987887909167523029214845579597043117943066567313703186326797374635153015122301062302878325871631809524940571969817695410753910722624189622673702818660871450164615340366446284033293407617882735462642965426072181554534186998487820926696854467085988759003092083921818373648872048085015776077391786347758925941615290978932685743838659056323585589874315665178369832794278245642991739325743520394375437611503576393722753684545719602817544798544874361948238515894153442843047287487226272756291085443653893443021393290831661705682650179318730961278914411323420850492674860640326207877768038990430703561878643278265679918100680829068170058648338898318797407145983452878137207622040251680886661566241052109497859731681097630652285643020538592533537012587069040914719859759398835627502367881869213147910355145223422115669997455350434234079189436402502976560378764121927954964313326617656048541414995859018940317372114925769417937972561141617262773781231952634551379373106919817164076756762941746553164875980844441578853864742483109756175272201037115208825534658213002706511158821177215577474604179144534393141916208897813248585895160742853051361786781530115843167627971570088934454323751852438216081750129598173751502230723971789538401613146297327215535321690767416888166495173072792918186014326361836004869649765808298636249053880339441588929946055908870910036833093553844532356000159816328299731893460907348334740861602339340866925811799298812914401951600249981172152534661649960730554446342196889143489954921643591076899996538911683817429125827944824457260771631145330056905605890617074470227415292309416227181705585453792745732538250778145545226921765064224633418302653578209617863577950492821678007758288376129858853185332361933878087703211683300520137166351336329300074280477023528729523401541602314790097565660387599473815225631256142096374851857979268237035328200843855934601767091175519323886144727371299028430057368357250033783081265373785357098195658053160079000496610445418456609106153929067785612105246799070641260795279917088937052079505984575364782928543244322704777175238358916078884963674731254560634434487169351031907432639644121780928491399270757445297394750908831710895926930941958500628042826455723107475683429798068980085899910373128639299789803770895546226188318625295414252982792392780003846635443453778495467689026908028179646570009082429146084667774409424615873831289051539090412227062690961372012999253273501397211856917270735137841117204411707710540023428453195872390875607580601920524092317621568373614439043871571465354964165888202110372676134004689308112620185130960058714041832063331135856930606649146351429441473485996120748172978933010268414802848972791447448170372228484169050217070029760547742680973064259119673980091587907721468152850547247536321062583429791098575666145340912810747703088682446780221143237940292868336218027757982528119187999594487024996253334235408261570952762689163410068471185636689089453736802909563131447775370093243196503433116507559513231942866611290795636502133033932835274072247860682753594851958630912380023575959479975793800135283796038751193174706919731398755444268824036205636302790064565527091873435541799572590730600358722284010606248639686478721676389726863638258461680010033376476617098976866016824669692171330925516558152659529152443711810863179658104287871812681973866375327357550103227502825194978387392732271006316550438655364336421346179584245508162588307988219770516498498188278114100570219013380103006356766584388583780022430136423698703479107680991712733252780946455800745419138226494818911159240547429403803287072046735355223988086128466384579316266491211434291105661186015986239625389804631011200574036472983925461380913473220126604232601064508255398100291435794075277379044497090757928637304093593607747938603941019255976122655059635444616194010744289970629959011463702301374882789930442364101106900069379387967324623357055473474589763744556820098545636937538101936078443492535043379899930351846979962771455595115660479156845430560140526512923604548950593440171195474379494503355197706550705243918718224254406484541304628435538927060946618928695441565462912616813456352474835473364878257660727541486137344584136799642015149757099363826414097790432230800051239413755801679126582299476005236705650051546038597933883913086145882901852594646458137038722050546524403059278702178711044360123858131857484007961119549317498237096212160681923800960591945719900930268467644287430706917059095055284151773848418171963518199720010760357450552091073527529455931664756004343377588980876270803974494921983998466683217955708921975595626592547367136776801222608371776444595532332636445035626401277119317961438960802738946500324908951603662760626831895794979667728921034479426730099643816808397242027065825660697691528460415373028388854035277554894094656139047593948082699439580849413370949291245328438764236982028479664839694627267174762841529485476859379591916120913286389279695570136496666765161879724672489968332166402352187494214517181969056503486880970046268690392066685803578140291222017242059157446025836635961086622617344984298080912126531788767672813448725359523237513666073900658104761781344797071283391099137822722499168986931363374585569893370793396013139566876304264149423130359270094490375395398041268632566928036478795621188230544588968439371005885507082555859769534440106588717443736128500547742592633562819231521001207801673035850588794288635599290324735969705169180012520954668063982345462363541593638776157226564860326344608144927478040654687231875069990565087782910606684862109787769029555691341297163336521306857095212677024039845244054380785269683048968076575812627420301091396165286538822675481998957917106769587245162778311431863112901352308251097813072462111086466255106610670531988630113402524024959437653392064551292843997508499978079887134152267077582685834587385395083944098490110057226487240568519299577146924285472363826982251837010677152872493232568140251078002424399743011425844858172129194945645995345037943141049542269266283059446087282018796162904322197839626290756179983636958938549707966132066109076534084694210278405957130055933531647007875551492985639664129223860748859940845251726746518803671901453161526091075116053004020364138006959303635924078568041637664049501245582492139230793815865306725041377995342005319321692574580069991828623828059566571713107252011044033976068209097201335783118768971931701751290731210942528434335736808605607011672710597089732303293664562082566984229721478200401954246213517415123430309406844104604338378314683986280473651912589912605958429893452305873164338923485402457857858232288978842415278415312666462665034351498773461691951650718257673267319824811636017201808749801199310655053462473739986461887532515989201994668717548241021131471887759333884162178076432090228578758507393432811702424820871060873509240188373341552209465701066022831060533625155231481321863837905048878461604435822851786984472129975072729041401691922713366924794884662560306866609332429447699478721072790146976408711881414650552934399018140174225376867894342690391270489628514426103959949313546714715226907650928917137985612744489517526203177100641844133939119367284478672744525320200090929492510885898851477759647069231124307640878842471518121723591316077616017708243872590566353616177947005798611636658113729046029965661557794429290126515976591495079128301359908265154110922953890076825107320914214553837154061512117842445281950763357225761970348333377514360945340373226747389544587893056255499447233370502229150478621059165420466556100368853777520238411162762952752144631263583611585305064230665903348099906814169631172788589918819896314788975361465124492877753969313033803736073907888559922903117400656276088748220902505565911868372505014105946912238896493718276602752637272093981591703539671781958094065210829297146134183943154664393381593068041342534988493839539834797032296610159235968127647491734272036928439578145554736564268114984890411572743472890078782293128755676508133895271698092183345030972308454186952668510586281252020676039103860772736054794190813488502206567643007882477696594914925940182485731574376539724600688929257276827126915922238378080197263876494998186050215107078318170164871362106155039432002673602276442718231180449411637935129452197643265886367260011389220246807302561171731591017105939080271444063200929168245011545383270642513815733872395551168066559062377937186698656725770897686799492503016654053494569343097868536690433934481412534036888162883263925064433877076229899826918409762034605885001485002197865343524484859057989224103709035362208959292642518675194919886032717861149971096320396315779598675485282763584242846458660394547477279750992403650649217092658649232573332114128861715989566932064802803598639547397800523752238151813221071810548117328173611513662758418151784277843847896654008275606935856554940603280435492703737419541965817979871024214588556265011566348524964269793734251418443916220701560188923030679937686468741240409651455016887551301009720792663518230719795636011368773676949588136409997397746359543620251047950534797345178557697915665152128018351490207253382320038026452880731667409098497714691926970282766599440681528283639357483067716098237593851837338463205676637237202574497725607008643404694569368485052907467581151147167250263244849943358421099456097006775811430663655922136779092863065965989771558360168010065730818090352304909090501096997469921929389468712426503019446361921417119081649782512542676721392627403909309802190012132386386504484855576177336349529451138804176646858459365698816775087649948146670394010630897554366332591047922471437980854894586408068333950729798696848384924735719395668505749131165449987161210050534496877539037859240265579233859419218284512253962815643213838313062634015148240769975876390203906073326065569434689343976678260102090822048458506806169560675345618919050066306248030294113418838037318415690628474329610361387581927996607321997680818820957878114176930901660364961164670320024444499522227819564890548584257289651140254681626620378414367360501688225861123952204435224476146297792263812047853592613882954277500157192863734375545314708931800343898531116771221235518531405846066386104601291365798781259679244026559831941176353525922306426017422999367650356107846350858121229458259028088820366351945123629104628662998330535438082581978276087146156267690885318917677168976082328272904824990336655458274760619651375115721315018759643192336082281603538829522884221949970026146063227216360454927157234151763953160039653113022430648181190635929883688125965899862435386333680587342360080693507112456757814979550684118709892221644821479321270452665565974473103682428504424968893671836289575300787613714144734572849633586514774520180086093864756468266406412883446552606357516907491647857550121785307251535567957171191115030521883515380622260165746532191281275045115150618086800370398641382350496462757894255161569463084034602150448852811368143684408756455222753992487913348583767248814751646092254725918883786107425607583156286405407496400517596701315718018825398441571082344584425709998669281399443456487831732651149210288959465484705260503339208576672606815334166675751733290331912439825930892508109981426120730930284586335211739979541457106071565282314942876184007654925875898337043242393607420911953962236156550795298809205234223141706085483465730371331705265493255313503343985366660768520349858082638324972422038567526004637067086763503692513669858315975354924151789656928392222768577663699219300531969833126000755113238937768138910001591660879069372001612013798903011004625489078403984852650271809110541561113945520478467987806059425960333085161387651731516306616059173316921500381186281116133010897367690707181538628884988091399712972787975585467831987946382146903029306689304251787069267463697427274605552203058493247477839971097382887446687032024872111984614415245538344013682107824753652849013213156592845123371487393316576420807908933646081536955863648833785430561739014756548402916248698703835666621553383898414263151914508727269301527583323510342927349893706677824615464877737544133900437684819027695457942725691817754429836620347412766290936211977779946845156061270020402056257577658046542863687226017594746808333133068800957133596683678358170204986589306869097489321921296669643857773324414553428920475990113794504697946100011129451394276790483098521273183162446778584921280481283271596362523409797785061722957621826565789376549450779619007720588236731525556147978348246492671474740226364910197336599595676052521177442790886142283892679699090328379385532629021581102333057067977694703595976897939140965142594136926263014343160401406984998212661167731020277681517226850862767039687465468568657903133306881761492344160855938205356353177788097869664508827212632868129875911522850777604946452782071252418917399377816869815819283018164692283445000061353111035557639351056923080674292916040383825293066101619889862422228568451846576046145820015337221409396586678867224462444969831774125326304046971721837073013970302670940711382340496595984207003834016102275620192338938981034863451266633591791515630895913051898846305268939943151225878542287983786886481539371425424050133858828292442731598152446818174712590058008927303618035827581452782814095902137128542724741029152364087363054816970594570057304374768603516312049255442419145380469237656374224853923154591991456661623485176541948734030833116081857009578707351150045165253134336953919769434981390048208672553352981609871094648808425956955676069423353206087835918437406073148451551754604702833269288760671059837468943113773443738721390900662623753273346902952556215689845802252506454737855193276182716965066521241226212233307854223395397802867194653775226045437293770692550513981156012435099896784992507744243831328526820521332612128653967826886109426374262367748973018073958251222047188204898341859551403673750477293669673679412011138582922707285758649116481970557226817992672105078248852516126801480980611098586114779452538586127900257926793060217872156627989715235460119863686168311997606116346058669205984924526745929638383563366064682324127244460479560065634991236175299164471481815597037333560009741837048483190714979085159494639639081384542786220846079794746097894374800006769056270942163254073285353326321068061864383279570018343196932141272482257403727455353064157049029123575105061901529558752364137209481917664753019967730443502350793459803935256759833099314980960977783722845269418907856780784723159317740445573947269269558615369120904249565117486772540510754497670394631312967726413699627324481517192103891105366187774684635716154915729178327274365534044917712521739326775115883052600765689915179796861383840973330130908143966600210490697771809021174889091985682195589670058159717746325277601432393929697279794957701264014284811691097312992716318857235121644774544028837338929198187769886951662618786611161012817299885222467253575121260810324260097476978635717622090427526509117659695017402227315578154855181313757741225985688382718074054318985573507586360934720711197734731797437481809433718965903769411274147237042981445141344839888646712496668830874871223276627079984095674515590230314525575504385121753125677256872824941678850468855246529939153605208162120751157072406881760804355883114895770066072220963709371187436231380848349908518677921597588670806486709459562488318319649241178129962372557313485738447741586222545706486859393614933384795250277166793513745007026267124503327671563905108417841567811665098814884587845931381243662070581919432258707288540657801943212640739611404626628936856818829878629778582793324412996042284886877969214811787769778902188730599118623584408294914849747399820787110254492786622123944655563841912115930066587548546220420481254880374142609799633231422912745958364932380644087880725728255301939072445915361199376323496376853572518627982544437697283821690125370715555491353060713672014281011914950029431988388777658827893783260923860619438239606196397263006815923600668730563925670550969940326102356746470671812227090241946386692326493899131792202217918701518687320897867617668333439571507592808283282926255282308314177966343489136691101387837741969768999324949099267191919103989983552845614783785418415769113380711507235817256546316445605775719035261002041302440289713024958780889108480058650963223314968809451248784470171997062136344405304874197837268143727897368301097147721525187365655882041846630351571784510795958800387722806705820737151791938454420734284248539680059413249182778773758813023566116482680499718156665317004700941422020119417001507681781352888547267686356217585092860163717949647559407911468038692918113418853734120543508708288734749114878131854766310175101769167354891872317702903258273350223739105661520267257616678836181753194278561367914405494886897180589459204420903009348259789579000324274605470934459178318967169544689064909421418877250422667350736057156317839491717568898003311103663729710100598923242664387903606549388408228654474015984573716008181579860497459569782608066539576326536650647346235927852590442845639289121748917072275154551010874663114675521849089550952049554014420367860191405532366338204874639864293213968289983707173635507396156750740470497815845493509243338339025959355088394206491342935147474908222817478509563310049629414530738736625075471369279945084548414105292291169280508082407502043498683295741673274449946425529928517668786723099091958086676183491486549041578931313146069738408162898191240128700596673495766503091419739584303963472900327500793220926808258436427781956614775368118833175690053154936470642071326826605294055650841377844643851080894233570338040809553032768387227686491337065920610466683665780495081047580657074936623891669406530922330396551669694191185237277829192187898191271375410380568974715676059190266830957822849062093216985603120835776246832827648896628978546156119167250587083323249002289030929747464554826068977003413787388233211457635285602035495729099081334546245115901378361458817399277103882804544215909402427364068427531075419131112803781171171148441981421839314786011297333472083330686629426799818523783117480921693004455423620499853245689136192829729420840224246517835287617952106205098558625458577862736408875246186093785313015385937395563140555701080565862310450428279917237858417831904446658234016954786489334743443253471482653687669762215663613183817040945042856482237808509388041990280662652617203271894000077618697121657845985205293208860635999310804335359334118049153683839519192549242316496937806823952025840878506218425205248411447752247308173055076980577183677634393163268075555680016996514223966584115744060446113082593907990943074668183418490435381321384117600705306567798214449297596540650040315013604628116992634192945635283160868786834855307601970288489265951258340071744726503383906847704223994308414523563967993182640317148357353909230895919517196683779367640978923465190657523776116962914755224782411265203315342452880298169347263962746336451932088036282857235480178268432796914145953246454356114589004753283814511481616765511640849905948986695621318778272173490831113198307469231536073452531768889688477990499074537851424700001146730479662484448594630962089533968146469183361329501399966338074904901725931555265175684973877708748354900055416866223978278652026190677292139279186167210049566137410144426004606653889497401050164333374709699489021289579237775051775501436000384302611584824003991598934266815840144585330468054342145219710215599026205804812263048034000832563179055443981493885409232406993484462257506817429484978303179537187881646196130919581819203792002897586800629759485960273529779955665177698464830538110145996839987287354601427396795063581498291842273623990464854178910904426800228516896396000032839589889720381223268052527103974715298362619932204224714411722884298164920676572534404787907856330432299813016856207186021733093984404651642967797458241680672598860039248460325540555351762570204848409317243934386359620256186903830529217499771539821126080684650425014547760766064433741799444302688354699280968993734034668180824363739816336838941215959141786478152855655614280356723922671117521975315158819588730914736126221047454786932874521345222003366388206608440974460047454839872336801102343939891249047310358223048226179470994013618871127599930806275796827332646204424673690958962344235198083612057753264720214471729309201723093524385136977810834246975838724429200452512508881813238175905685686422181509325603834649475746903682754953797069444300622251297088656781649313710618520395952383612116634361265310163436586292720589868416207526462149309709228339019577174979729589979645087025168907078633965602433059319222903469274689610323914885157966845785918320593106670436581477535887078162341528630142569647542668478516312324703380916854704917284372983006178378568163731696165892238233803212043318853542635338763496373950323683950646468963820873232974831192248561023546677648994936613952358978327809578133543589498239955090527051942256880434315245281562237581663409168770691433360715352275398843521259128888110564810542835702265236984833436874478932815673618439467504870834603031246105653631842925030447658611666060194283854892023075852532936088562250280667614400887468443586614247840563161453771925902684634814096824143048003754642363064749983072556759140567388399056067547224559595504239081579803899704546176404185973094910349008547577686902963701955444083158275499424247756821335212892795295980655821576156268185668287532289895963976733369389180291225808676666316026684010015591570254559839738571183731392021736165501249554595675112526041523768826116411603252411743084341378433878385989235583473632138899666052410541662549607325726694353338139028312083088445401110965317293635331647410110434394343123577688269702766563050929279586190827960393806081732011259124526346029117638418442300677790348144898629899882018374295220407631465217714428864552098781642429145189802474246878923761033344485542532370303850972574922121003732768152955961520414565616534129396088492798822263241991863125385441441658102692735180052713939804887548222540490036817298499758250578800311936210509176740244722966241420497006634979451685507211418800095196370736356206835592445403622159433078224493289092758997106761944809303095875402376858467659576235633047528335422458868585372592108884024324198316674143346523601548588043950660361821127591512530913588204965633381845014852997657527523791344232412615107230370018233873300255820670989423618480395233316179565154523917052594650529237331580077561754397229306890955599843075659404945849315328310268873588974373867637781266734970286878718379738801351190019321502628482203954634652051152531600104899451816059238577112635162420567714270253324310214120269073424344559395599207160222773316356510816851597469811554939193708502454843851199771833782005743619134149181157497863632628759207334561656681472446872708992797868194148775388104978780462193170060609618401857919436724427906986928761558903060968324738352043397448972429575459042588099707763293245497231793929029194227915262301400984806018498252880496153038859855630358411412055897556281668076767947662944064098004080241109705767844774629865251470712135465291613770447047234681259580880315776990167001578063555782353898986417625651620226745807994096261933265819473680458227608306195322548334160463673831211720539472921675656531345787840527156257930014751760909788877447062580082033264759457127923553010811718974745893913379568219096890916436750130543382406523681538235232182142802637662536399063366222434496009477375426084110084159491053564312738066328508199524993011094903405564892944636840966410712653229488631952298951518707480274366605238662013350690393862165623608465576436064478743958934548417133295887569528237831852226330737263273309828757019663190144769303732642922971812693083598513754951121793060179893788189129947330936482390535400622841974035248115365204332966153941831353944690372494335180911128107529151646989581033165387444614156186549011953785979885658015819462685297830594399822906763355340301414682613123671120096126690645313650104513721327632928829725206997717942506316014852838113284732432085200988313795625011574452951828636360760866951018053864653446568228532670797321803217364170286167915114502016967258681087702449443442869097560610071416950865174203738991771839333993272564910766070960373073322916679361149677730965528243984578926420482042376901127021267918968013508587608813491550735621391936294493687578595661979903172329125087901219312943783839690666009335124064003494342084591936081176211905035200140911317424692027215323251954126666692959816064696616384653766803620819354520597126479631420084522301789612090019259031746046359129779341921726773955314364096382087558997230066630812061242526768308132308375481163175684130617360575301218203527528094038321227675659572054038233297766162057147054020724940934052663271502651370141026833946775073589349222684919830201102025058863358680929670066879638694958923703750385806254907722421477174878918302141928782246070100185926338149681732106590350009805279984769943962818805842410525206171734087625898630745695161081839903046126096627311405503550682388872661636193335041873750422015790812471313478413097336406261088789308320823448632473821432442688707947868482639489033242728391956734109194250599590129559750285111100479148927139860741639464176063587540951073545498324761065558553517434338503107956661190272770468758200096248205724521057595657642734345903699856076136205131067464654179336962720473393776176162160538979634751278243716916002871708686099473657869390229625520552300578053656914791714139300665906991169018456404697963911655006430354330716695697731988561820423254070299175605207302203434154184848489573186057466924808636545732498333081421164280404108925665251003296546517444768296157818385118134707722647382429214997761283935691431875293590320865504190219721189215845772300539288200232675271970307092740627769224318957993388939598473562308267156196047125444204049644799351128395272072302771314440971742032042281251949914703866385809456083553304077269303972710867244594644375881167346719403790414591719276834324047254430117930472600289334021626999957287938562382208009648647505715041061340971752651902853676852670036417143797091823036967684208754386418523214084152505409178853476048478474124145640119866532477292648095178121313106499288573165787630973237143943176176579073551131014705300769964907192369210425658519449149635107089324033509227929189969565637687002040087347125959853167549709812015910028505016580500215112866484688343734298139215480804669985937668420286686706165748673622501725212043052222193920464470095295098660646866146330822108271390719763826660523832873470350666215877749108618958151319036072606803382143511805316101990882994697303544978432202165496079317823829309376203463805500507550649834041835661864606799982412152505871396423524739853089040978885345622742443094237226908514191663274136202117877345828194246494752294672083270806050286057167418327904614650532754619269930675885871733883738934369079028887812610027264131404863096125388511994080284501259525421162552982855648550779670685903158565284534850263407712400624051623359710648182218678415596680705205645819967089384630264230775743180263079674709021532299255703009313542574051948159210467062756610198415209667286042140390902461037952881060469878524032350044040800274163254040708185060898843242162681533719904149786582891914061125868873566783113456838875123083652644315570682513894268161432182112073392572859668730185562202369888913268299345744358235578221442295268365662412217161519554747489952969888458531477122105372597469128031132780325476873736825324411575484577795170795603559388080147430648506366594776414581918951996721663857627603015406715449533117680551905720810892429559451938448298297572633198808619593990464272439406529831731697448971407173579196455130292576220524046115849681489466657328822646581418666784627586763960670404967998622009993624988490809891922762405853873325830619653119751191866567518028643326940120668103342473772012739398910223278922260716069550587763417189372821353894925448656074733896972441323719732496475601060038837182698128438399171564782003106993108440023349823867452353896483501255119676964381703172543092390563096057892157047685837014011673794931344306911879092992751826621078126562787927313988129021804954565492715282953448866233331471988651252003409256749694189230564960057157828852294437230516121742138953087951385075585147245709518745405757245261606262595343434612273991606569788212878841078317080414831878432589671357910619965271028632257597572592947116561142515466001095329035184030992289268820219760003022468108410640740203582374696214871154463726265690225615378235701205567664914234478117785471306687566576550376727100660331348278603171717875476016070032940381438491979709348564876495916797223907829264265839627546366067428773028373781312569025977681875175651769624172231394849124639672006556960178973071286428808095396205421383622944873160837069767215042675686174480833447700975138481194247957776516458303148245606789070206615329596201226926896562280734415722200520197192395417950275679104515425399677693824535671174205230827213803885688381753597506690891530327656693497752228629864316047669671210039604013231649178292952422762028542479070126441436581140524134155148613611909277980911268463010476579273437919091853883516223053937242583386965113006091623136122398284332261725415863201908137670564371345801983200963542173117401517220292298854735102348362945141993792053899760077049730988286457554017916396476197319113563412156995896840314020701934299716719427122043976598179237452645434205752380812310360120849903220713517928273841104677782628535079369026924132592446213195170355289259086353316694150858672821746994838291554603288845854435611567409920393672774818348955005560632590435024392150447527073455687739803447309858064327629973479950384578826200805871406524638178006862090154923900215068258098293328021933627343407279788581598802303129701904596916057736598204781665412060062473028055888860704458037665177731517498039081610770125190103974503115000980293037816999769547808532080843545175042194073204673174367807679058690884699127572964383473100338823007529480983142796215912987642552874852638910728972902221714723888872187896213531767561862214603976627358226649303634071793476508892449029648520049794567382080056731310723865099471022800380886977108472826178303605451663328643844765072911224790231461591134854872385481640134169746368618072912418601265212866295477505896100239268273696747615877672547823188327196745129410561952060396146077004850917105305849468753789707892555889979288822158728200091050875571587918555809185390761175580026595170185720487734884563229447788485337080966742553614625237815842913156994246832794710332353040055539614767838955312076300893601141520595756869144332530839124227722157473977076100261487730695002978405689924562370460673386250006920292148321188122187642256087908661535526648089040137413065636155222260025632084728818712222108562283390965883222451847598994425132696882988977003923991898972665088601262654539773980938330703224689754490672964015601614941709387379683026060761166647236173321979762997510599353733875211945409291800570536128756999126736200670530459545803653858364171689107415742782556016206923132571612662519404655434649989266734493603525989719335804603883307514005576353305446932106315539972677814098357700041409168297724757822571939848377364649243760226931770451259836216227871405354222849095124653221798769620018013067387578524316712933625169583717745539965312740478467836425130594782243958495781095387494452064988604216564831031894891705616537649087312069326386851315781076238112668589053564180537657997233129209717315815122394482788569411715219840965499030254532825978830869091360118710117592202909519267909789594541154761488272142341251391283810683665545717961353713996450162073509925950027739562497821381345468562934131233270469258109413854310509929344772338248305101324396763386013597700899621406342951189664814293940697523662799502024244055428500667498633143985362411045567716964848022018738377519552923299058282431149662118464774654433771781463177371903423865772434973983211534962817155998537851260527008756388136674407903411995471906128468183647562425892377617614089013200357011536991442802218260564300167957581761235607086640181809586541565401062345709090503644754317114630822643636464857518103731359597868379098359416464496147751984685386887268560650797222976102534829838058661567913176365383847170369164087182809005992802728525707038972773650388628703219231154621051731204483831445047900046040584219367698305688331647032013965688860086769517487019504734421386344467485444888294600460914454104235846597979594140639279531085868070434880843838666990696800012872052483800223355562793060063003559536473954183217644046490142081161501652697852687447034548139171100093529349520781439393286667413992081851533927196313301342054119630727529773754957536163625092437528592348562185536141397825981446753192809472373690409897085988939821967145523559992812814118900750480692486124071035327624884162063599702598023161233052889344475925619733988147630969109673092328041329974468298765592388818584764803134975281687641567483683609924782630243021374892302453507307680886901847238085508061743941479655214466423184162270473938995233893774684364001492775526699366021164135462366807167906154678566256769172974856405746832188308857039925802432875695295466323869302547849490892089382266636571902868714109116972775715303898601945525583567738494844647093278695282287410122762423899440434587789662528189111406378903673300153097015875832041944953180085716364059559548006716789387789787781806215536612068794542617620952356824805253409372931867014594612926220395412705660519150671391156625585619370654965121583333203415688853957201220278999180441120697232760448511222288138266161470045583961527504067595486174926840074143859159984971377422630997209740851322795082036183384450954668933333449971674562923369967720977604463680943954438230118491779535232653642687082158013705728615031773593560676116202012059331066458146116459794498832869615361945525804212498944918871335990577315959386390238667854432393683002407174443687360212628670433177554539719664999293707156673667806603293470905441633108475178025180448731126662222702804761567495633079540777354573139009435459003277121286755512243433808131334789298604526548247123861599721714505434969895389628128492384688026274462701012136195666226515660872689558567805126353002058257912430732079407022008408924485552410457638263874986427304043402821200000903019179330859758199847040193184086079366695075131486636889931561128915455081391085232592137525473123966944567756166297779799927813918810066890494755743194657632402649315649438994613356186453950563941065228905244078364686029527250735585669823521273085928940025777276065978923071367504252966843168096180865609249259224688312166517322448450872795476250517183123048664366910720676832498358419080834774655713582286787683327443846137938710861526815008260893357914924286263540609951985107873776568928713186004735429704222900477982100046784800624814485268646729399133004534309775040039327467809159203326392483745854987838464300305690918576898941903894100331055939772632134412315203611238924368041268891898319300468326363911727780982625486847757733842720337887798767554171093674008772536585095232448002389886783803622453574121884845327942161248881795496343086038771133106592111071209604295087239159943222335718226162884709627078583316746624194404122119994189676398959287560594143117065149463518744063580202363133409187016182665774709900328891394724549497065826759289208717772144826867961800154640934099369992319692473784713794500606841433700299624166082635814440005321327107194713065927066187483849400251981917985317045446758203944637360959769783950056006762544268419542966537716661699481342611128782493550634752721094086167323614766659393995554988574239727486842515779060149697356851988006848895871803983536340603138798500046845754964461246192579477186133378206333804595312924589767681918344107770903554457462820874361333982613493793841443809137615266142655587963905380206412254861501792974192492868216535601131442649985429997655207548736293719996623514102684543641338693132649337317711671858835278310516346810274270648751894681313940200540414468589088543503936842890376964319740016459258136425481724433158360823487602831758972456566934322801894851697828585780051703550489059806770677410757704882204203454613193583349993329226406022544442085468333215360265872440779687254432768197800866148665621835460467788881476730075191966910828317719044391950545324012759405974871128592777372327239158529126849370958930920823357198504380508702562640833215288945542111920922550955587646450406930777050052146605718930937042807911259163731683097755083250673053763539461782978319380640656334868266639099677515725007069914792184768000947213047017263416015620486347360201963189413431308231438980901577249159707117594908455280879979566958675701607061468124345564715345524604006416115799000489687104022319017300492623363462193561625613642320583867576374433195151819312444045807241094282874778438540535396874758044135727835513911350015921549983634138924265533554604515385968402803653178340288940310021364021585393837326951015981175632810028042547938269193716244661912759732319630182988131348541244886139752256065599248990354822997185004854887332175916713187527320465653556601260195875228343041780472874983949652105222650793650723363138628368483849433632003106212565979681103721343130255188203243370206659203818087795613806844715530313976147332910030282057850517019977763985302697794417127623004569070505616111249132286921092471188209012754144804412297841931765082704700937747873429336489600213631707863240732364928254253288947444297517065041128944974014606234509732698753320536353192595110089445015661696507559638490723587396392322906674322158172075985107217851409090144411244290539704286287949466367813934733795071881406521399956517835860435367135901666331056721913343846863857433111978400940803858777688205259817032261595698287907736356563340587997021504746600196075399222710939142736306158673596506441662508525368613090461522858781149282056546893598312414163594699974524704990917521503067534961390668750144538387620910403314720333186640419719231480056686074590393029109470119567749701045590427617086010271141271017749243112140090395709223615401034905111657518636522515184599550350248852079831153396950514572213480504486617598085500348276500776704364113060868929591143133751707634956507768448716484961054471164927491184361925421819470104891654475418979801204349031423422134735947035854908250122846139227021437489019990113544276840833658702993485374331367950647461355644514955975306674768041518415874470454759457404907804581405974357957277048749264241138498131074649283975434577967416927377839782681828112367126442313981545583197781786679111073863582521474920676735258508909701772126234473525368839612031923442759837124982428661655638155316595037940940997280093523118344563239703603745968966354696845034516357985413936645018858622601833016924755635689407794986327013783174261251048893792071096038636082885507995790340823199131085465922948476972943790039282350185397225968219011771903716188833504410193613612740710427713559631452778478244300194856235127950903797395976488842739686365318289111596070086886769154994389769105858006702324377745998670146106456173989901298570696102026897249407449974070491722227166754463365081346973246360906989455068112494317366825399460666316432494241487818145217764327053812538457237975078416795476346976116290873131671321267806326729816172776011467846175916627594253434905583674306987917738025854977029159501803299409578911569737374646940060701832507993258431565403951634866255060912262911031599083383382268569696024982443055084746623241895869510225070140996160473633920019073345290397534627262182209348384348143149664951542948717166940709659689598402486552280611360591470626224868589064082255894866450958840203912460038125698536847277567079455503139062324612198033538465397683975494948420074171514219582208965775258311641582715021972583380815245672853521333397925038944276440274168395724991226640802027235155049811052384278363710217054964612452842260797795349948370457252987753380098304784133891184241141535299802530244821903225324288606180376697622062451882224621870778219461403973790358039382941544276142948460730741465137005187604901379450310457496365636694636349248777099720270919862527169219965195880104179738965396235273839765364715976862573091029287835696554716371381928702406496472040628396180758793654285575647329624856755672261314997834744753787784302718965550672179600134022719100095799289407392482377980870061601464639075821663035615371346027615113589054882095385307689690557905429497545157216749064208139583423199227694303520306708057293092450465250966913236790256139772016098036075261850217607646190893401356950977797826308024161627404077657446670374570678515009018155236757534865640250056618896406016568278719287568969944474855716651528026063501591338446583763057793195390350231051742474887385552137221381552134806478221889982341041777077094021005669090370296364906316530604579336155199070297271573344261838374716899638006019712958494894651789933885567021793538643329627202696195416772087551773952550614937213128200779679945431263652443663305521150304919275319175822139444373218450328059351085395213663496098594764355478293257142138280360783518524651163041462371507160647609788543879488789421687603001130678292061523562286605179573540019377733245026005914522444676394361109953556774856375587427170457307254720963572632363075472136603625449028342910474238093872864499159428531418142656121591697852430355545089252883632498723251596727948246117961599058996007037979892806005634434721293835352919556301073821169969198454915023718704839504069701912980929794002914723571974856883844863974033188400593963750824120145572197556582934943210882072002295508652367560914344199817300415403855408154118510482833169444577999492380511113638708648172782359845931868854057793684702573769198430612361068560964264903808065929169058304131800501048186695355106957204893436483509823609658199075664157685101654398766774342901466714841423602920845595799030211470150799480648367067275326719212508211169084215808745195886839785009902586341940840789793575194322844094054975657919353560268360337527998143701682220519107792349507651235772582679135121319970731469164491670444140937251857275049196991303031894394568735367945240965446377431162338330001284425131735359627514873535362849355405104313577315980534811030041907346623878004757642877483601650958211972170596803010361589361414516177395845318543961853801521583892244365784462992035745888786838209309386051651802076250171720020626279840751293692361509983868358771505468247184038304835985685171949613884029750779964868593594784320863075976712572536537384177949579783015983192719454436543270449229642611004820976410559352228440741057639050387671973254333573549197420231161503812210590820088463092391886452529695037734224641937811185457793489238315197853780241470632078711434566702889356660733853921101131106603075249142441713506367736923460981856653255920702877800137900730493326235685732614911765916118765342819274081540591514349682088027821740114419354529051587468970301594518434709013585620901270634107611756185810373430323271149908929165051924176637118674439897516478371236603086356968203003344699774429922514687787285068533606064080249982358435449083232297596378537603160475351789062956425839085911997422386544230303272765925351521108638003442467629148695377999521114036935832100141350783892631937868292139291048431550054406454452123787662495080943432839363989572178306854584862963438057500659955227529448493555090392598867462872001827637989612376661686617516027816253330291724354143062652005495638251713907731578860524826003976509771345685390927253529454655395929115718017277411023180583437334789519296356171502725644858954770880799181167611933869850035485090625281597996702943714338784475344509759164232557839197972005137632065137453628662274586484713496138241664252626393253583748501921985007401172046510467849989580338610296237836839552858841972365319568144202286936599959319711789736136475177061490499144304817863187669476457993501420039571494317030216560663685834321636440508741408855202946466204117549944973374980772560270774814650589716451565615362971331389226273467017335390151839655581845337792327645284486316376443714864080202992210644685660596921076275772110206019831582071236321454404304379363527044959843148996969779923492113822742501554834315638043878368013775526611487771137024210568105467765064320922758470251665066645778593628526938064629010468421129544651971274344987809174441751235444358743220355670645315434225614176874496986105507681407674911505875079799939340268567913092178115494671128387808120176074712239928090128033225026110019617832872406105443198578357203459952767441287375357042918505707401452658416296223474919583480009201067042134944398773967289042130808037262895462326985257425545689455208361049077066645008406625367738068718900542217647775058284177035935033947857331383222071344179579085498517476751776887455065757709193795368149504731917338026543976041130362541952394317450985562226226765749278379512901356820842788075645588105566958372354762547789691741119733243493931379794104654939158699406834035539211817461615031630852902311884307917939306957625244830730567805039600430322602296963261724493018564892851581201972211717437005635710033325455123796443673399409513138137487281990149974288654196922097784102888550089238111974020980784868201631664764242941877826683067921545959580841921217754590555234574765776565978524378600325077062066962991719778186660880514301540357115885847170152645929464335481239847915026383685941756683888303040329321008275953266508996117378985378130414085564020202373436062216037991523965143902169627454358898994150772292603796008344075959256069908487604526902387153339555894347165069659250102504294184369834794564192180926860763957481695145689657794188063065349130630330366194934831259011518274645379286203133499322050017605317054858629083350049708272771638092866281741974608430378647864415490820076378243694395071940161626848510027009713093498097232879823539038294401419546915224164573906881908780312082552209647655493391673681161477979048688504213139634013225145670900104286915686124816835745301156364066465653587180051924072838625031159728053686593637332120516449014105165824545454796888997353698185149465278579922892552775849994543292901493619141814982138747698498452735070870230545261772785394869485173631286002920237380632455830897364150515553706030947184842983971479984767663506855429500247991816870475033328913260988132227708159578507495352029477087648036374757426846124082529500523674547940428577249305550877037064122225158691157034362885037069379673046682058899562707291147161398288020925774499147140369934564952691040904245477493053444378556751858432622565687968690122404477771280099466093072284643718904018205971756592210979615880245204501061199620809066782487443135815529827579148129024614512520909074455604057521595464158458733981050923043878017605578052177795680037909749068749873333738539053949569030911606635283212307604450495589461451208273298956897578977373034983256700399588025785780884625602474324061486970033418980659476529073054654863626364814871870797733204441907809219131104479298634229441796765471976983189358937692407876776109440552517143518972558964398329583713985915968141216665105140022966445397813164990678399079454750092801484765435494524679612765879812987829147384759058919315533566772709193674802839328543355379881101651527540368724768844188540536016262182838130490551102540463266014497235695870112288886210768923646893085515364833375703425188900442160255208891275343991447894288179137816187568831830582417781294930939333240480011557963056512986701870033917016785953513714398803099938113317445819845336935634371129296240055149002345360102834804926801703280420869353249338983875794077185503931840728673663552957956690719872559044876642324582336684818514124449173654258558647268858119361890268018558755675942279393721043745348135759140349683629038679054512554080712043667117735389086518904102510865006304941885576017955528624332559539673563040363957787182625244193392817000020081941588376270263677362603929679279468890422536306107444356400442347155011266036423679657217395591371255633880757707123907756424922321783386107337273061478146015073530025023988764870100171817800879546339762459635280137067675948229002321778161845956042157897014804557804371759623081941206883402371252460836190049250905801343547805074426294283250663446235475176207231907537311543897095093892686580867863422191897228823424185217410112569811862191781201380444502473308939555397993714282463498729069699897410898612232994249212050349098685591010573132765170957386138114470708757608731606246487769850674857444763453588193079683307840722262798891151151006654000942237110148573565013965479322284563461471803759335623307028909124359314228020854385822568427960461949780041554180813144293729465196363502169184926097356711141860186431398698365708742422422427128254348491246375191027584834756819520512877624132897884896188275971118434500459649027977807374827174238046215992772048025336816416392643220815528086684690974689062135778267134951112763636547121970794029529627038784584239626854388598927180210867781819373460734546624469469964002052548715936215249789760569612220584937898023947545684759415832918084019041844066057506280721767002363095119620342283830146879587204627964497414136345466777946196380379024142915949209331753689059953315988329318052733793577430248038378627618282069629592961799037434755755214154524610790112082211000417229537579202362969209972253173558939758361805125580177893260484276898557598627671177118274622269223141834466105158923378991226127425718203780229060844556237686048750799707353721865011695447762286592552662592725375228491621175766010398543253649199192192673673260052470470021670608018657584864816112964592345039148233002094895631686787098721405959123595001891280515907922878887326692167662093643128756341107294357283630749165885112301264373225536483097947675245028319928495693844952989853156121215393322644229233124710234732565289480559821659239797523340228830627126128222876373118944110249280394497571503173296700776128092115029482023133196991407264123096657159455183145321847849943047249421909850384111803356865894769101346678537164804066062388557010067380911001817509666017358079221516210705632374208904801310413983977625296018681462648586174321913220720402360476006892474581443143548688717391278437044982594426151590474262076738034885408337331981867631954698095049048747167022153107461855964064260907991042569976679813787703015186599772102938675003069519795911418151472025169897103862413064528862437334966947032446223948936438230859664509890047899268311851397288592871818397626831752809055954979578034108263436420095611358366245706850253230086561173036918683623848440618131137401676894586175151991685612599066676621986540677290507843740002231812821036973957346604628634041259790815727468063487237451038095590637111075721709975755396020963873186361526949238700339995831344474577585662818638954239824205346458569361938837809746324495229725352373654461717596568038823470823327913827777359170678212253440588170212740853171773738221415200270999352721291738776602730878283733604304681409105741269398978040107386572869303631615272869688769647584709628242142880605737741950148196955914265519563922199986776778611234376254692403238677464094856467218006062614581072231133810237109396751523768799999792937765412866147224984507133196352835730201866177365522260151420867850720228600433563952275528661545253039662496612452201284272443094451451265522951148689969518710306583822834693002100767493746779412326642138818934358663932553013037626027244132973975736629607034571332773037206174566694121168810204607834573636051808378039138872086397540791583079597690097185799617952880208661711487160048508051982845399093508473083732732077717708979893141660753678664743185820626952611955918523414762167062333827432188511974675751159927135724162266237035655483303305860022628524004934770599726443758094368337580184757775506427976932273841011437842598283571588923367960409165214030966306727309484489751056665046366435352187916821539819779984570330407319560016611676216119564054823755012965704177860413611695082800013680389165782373540225461975076755283390247648759805532003669912030005304250238183971761228327473707039225936722797712698975928524842013471142921605846399863220630423107131757933303141751238476118755444297201762337275310914996731440493142757429445928235433275847746928130745232767953864207334283341268070760078487745203600419448013174077658984704175509575253688012558323190255083101458942466592295725239376205019395417490390222205380731978949638327066698460331910761300722157633127108868570965553374813142669676725901628055858662288689195189847957436527922973785827289954478571259837795711744031296767798009199512745405770852040901525363869037753601607118107434295234723389566063593868592458674991631558534281447864956444176000492247425732114701604342300378367994750623091894403349998335957369518228585905371052397576843562315841126088878648212397112966182749447151909248411067871051546366816748972992277207965454837444033357775658385982348228716699922647574345532375373839621320656486508201051880216495722786457889117121429465129307713452262202659582312348916126871861015046629807567462027619484832274564414957298262881704853036928044151585320068223816638340584345968504938668808447308985784246508122489292899078731443303647530610257503410564312873507623335200826617919630471793852695418276161267077651743069449114506810484297623357793674758779399968574695908181806643741217605509095419366121508662123564669213437463641198297235088619766165244502740678284407741707463742984508319228206192720105896961380147046823222435332859900498127991107797764880319086990214824599431060193093376765315267134065039183464056315338571190145355759630637053336021288966922277845899401278436153097477632640844611302299021094493135637231365995361179143609992758900093360895087594814781423180132282742722782062892844769742880118776994852418002469804016234365086327831526531696381332478873265233635783610279101399360888417542467252157494903416157517896563618144666275443501415704454101978176449889931929921765290787526084530009310981956558976299614315972535809302026604450033887704804638904747185506899969704946766458070495862985557414285332702808572201612279557497346043110320954396357479499376990175700229906939250700583942461074242002876547673313778373049709609629184035102965183504425815836728755270752556395996863999185860547152887650891433627302309980682334465943469869905388447560792815807344243589478814891610840536331207926584466986448526013400946812782444738932648563794008881925830638118733185996831658210057206412849753715030822721005114804586446082616320834951519220556586024181403370097832164036268274593008554039430166017538315346070992195245043642085480225079561263631479950679913358632646870249384295124310488841061003123163241778801652011903288647256968263407610452831360508220592767233140144236574020159122893966953770375601491423470936473499066294194850045668825557658264997087035228894829661508499484482462692937405305249133171426118222156050958226574601065313261444745501044909481998060125511103436392129391876972982981432289618177983704966012815217698257648529588038185619306671060667109337924915257497650887816990859160317115392854647229181216588853979684215593423626454704548568645428085025840471617164972723590416373622584754488053212950335282227691806094833531536188945984907146550015918294614849151754184088950246882319204303374489153967402060354511113630095037171603057846280628056848469923853569899393464780751519340119906674472030124799030663315532352771482061215257668932649382241517108004238571428241598265755133023078021843970206822672779327837212273098659146444663625590452785555961850485704167531524042402394787484195103611085857607248067196873920737500284105961452825859505154950455114872866437698270835994206800866449013836751895938146965563761940523471681037971200614160407996139641867717842833621889446788754381114117205073481633662668356849631455388377484520808455990942494580153143804716650546786892251051036379609002443191261597901278446775220498398763889811699868786996564025581969965398512956420012906076724740140667714293875358271014238820079164228134288666922159199193128458911408474970761338408580680517445419248329498223146805814041477383589744803197575458256605955068228592148732911421480076145897654434517674791163150852947105011736337797481017522597714364934374610331452441502119564676173616259791573978117606303910256095898353746018892879891858295186715838119290695767397581871124704598058406556368173636995663385215029049274825302258885008064466084294392513670567290776773381507651105103085543211316483034580195223646302487640648541948820862582958605799288582141497428317858951704130057549107727107128064103322752600324746549786517373878424671869088937607590008455050265621451047447823644816025194688544371183189666286920779123696271455511024026656167217210788923970702187531051111488007889444208971881500297877689210201064263815837435479182097307265933732060221486697324331192308602863473229726116830358281245242568858028622784101547042239871215630983610673289831338838880374997213746337690762800439238348184798093778098980089612036381491552217287805510254787818757409598165620905487995538821251126837919335576478238844373755370113300141119835483644614860353425058986998008848940112933686664276318270270641759245771507675746651926703407487039480431443378738343741677412554620827704399318654819233174211926908831315030318253430363343177381694867326598249106844355459623625896000493880024458321834459626975043802063759966729809039024179523023832983406724687111630430371658759612460697464722614015561015863356663915409098024177343950978522566399683474224833802555460516391882349126162023470516347037351874130531511012926462886805593611657656823180488130469101733188422191028418531855228490453026700030192376053246065193857217831029307316585078958631663534737422540481474148911761667730152379426142948173447209519601542486962402783208140641729425253256732121251596580639369959401703848801822501695382216257847238297275658209363546182228864261248484983220596675569290083998984861547732225355691108973238715093607882001814781942300972699740459610791945913351608668991926060218474466486347662529863856077017766569735006882138140490887022989438621518370622988298244721095518955964894810589075532190582582726395033811848202779657908727767567834146729524057602307828583430959546584581191439429783458262739834239720252103317658458134743591356546163959225932049524748233723071713366001684903415193607264430349125781184700408644375052231473722277381143677247611731675585220787021148740100441585887303063579024807012708758308785058910362036672479410243297885374381141916333420405608824707681929664998617369936608774722964983697625674237003254090945792320422345660685482963967701399357748872580487147388440934622664845632086296291945570362120747347819920629763765324035099474259170582384976043636564177514197148074836659956253358539793348628997314111160281781431097833718417448316168613336843776826118656199280475447173536148230098854213678368636603885266443668982981096490130574340820460006400319118692900826003788984760757847324278398242233355510572957889908951289085830392042172893479797764156954801690831156524584368705097362802162248265252093667828696109459010406440881916414817475037376923234067409555202261793622618479659775373472591377139645114448950547237849626633585236434657851884276013180963934349272865879982314967468248731853246595916163306963709027495751670283248216244437681428011349886453849110450203951943769154573042617203862756464827580059641061494328317319538208920774443704066794134710807950262637065436819324537162641927098269613989358038536344779174795396220242605295706165410657108801806025783036775826489366116186319672298947917628965458023438391522842456277295454724534888860718734753858613883042297951056781170584663495194084112779871503955980147518983082498406560144283918319478928379596500228260561864907620452382425693582703926065133907999379261009303293064786575906634452531186151618749718614317725208117251671822935427046810716517094842596510286415624355773594246309693283783610758898234875351193833610292243801841077212865516894207795870586706133577723887914662468474606098719574233842298364891359231560762186291376243639983612618587179757172679229727770854722279794552251201295042698670864425993622335368753292362750076532210253905863297649583304365873837801444864228087139286559669062946556138537823041884754124740535772065785814102160243952316213044030011207888926575945445886316277615489582245579894203078850324363096633888918850357425293605048692209036263682442746135726556773276186888951573953235352674087554403045037053068793671671333438316252622902846392669592604623788766087467966856178640520796212961946680116542096279075212760774255725320463930740555825385927794607192744233618481778961055737581554841080007519687315888323297521444265053029144191383943782496306404815111101886419709718993225889495861194012191216164383550480570535321609158430431959788896910935011281153986572311301656770638134664655558204346607444699922401935841757965300137983035528536412382767689908305242729005612196407565872401747159768699700738990070404946861094827621263766835946990727476701335123362044706831303518777878834213644355660688359658998006710993813700161339487005341609859835593772628860219936783259183500321833827509598022897814129252172933389387161001899623217321249990143425525757972981419320209617341099518275603150991087780103724330574197337117362562188119441593845678246595567404691217256451777922906715630619304979588128681938422085463375668384072256153414864588706578519024294806424419054770907009816090490583088385632307310758378957889471109734431338050270404647207914297605368507999498506763498770533501750250309533811580721413502292588973681396947285845400360045692074689531636020069656144131128377917643216474040587234454571463069365840886825035908221714849264582927940774483058223058416747132640922617101245527136758704402569978130022150779252452854986179495866290826514902332028799627019395030776386517855809637067951150488530881519618945575305472230135856307283496730428801477403317323198013853296091378300592070606359794941976949449146065975917836278513657806333544592311051447835309535321413588150643476393042749810331493062906195579175700757990762756717615719562841744079634041836179878309444416540698763335504887185136833542286082458227453145715360008426494586796787318668202419540353059388311970325593758521268233625565362646576880911532468960740368369966392531638293513148175504309875424728316292576013825128570914267507822128175131270110947925781528087991407151938146962863371264059540331501279163910028573487277830812821694735216567547060895680734065894832924006604379083995840626229137682213750582570091990967426315218708381125873564298449226736783205094566757730494240687896930017304918841302661029970759369753419649991823620776481316114234566876237229653505343641715542551699867806155739177239334149291413686075922807277834034448332227383045778423112350166204277185447553524677142208185065348011363419582141293688777938921697861849390879625523681769815582455206825911680860720832959534357819104393801887690191405718771298760483025771619655080550450809096643334324114351662936765684936605976687798094398211733691820652231887524581823363272837450381619150424658425636223960577571647285455508498071028437325833539208823045232360324282136275944372876835345414033833225452499323045589944728932577511263232227197605437212621550210882712166245243194248984087231647048843442560500081987745799426658301307476066868893221145697130123471627844547962339769065516520786733699376143426149596636931986483205311241535118308408376669175367243969206837594344496388328706932974021744602231580702283734292922652232228757952369691394945885091365257923241462994596512942326257746433790259257767506380299656674867606234961357793546954728817149023720320201732266165091422663706486408042504259476269124576718679291678861570947076557159428251006501564666551130844240137966683015221280692468358768664130648823240160650968888440449809335670608287984686863781487867873190172964285805530466387976754008786637842737752778757657552247331032114212253618733085929235732870906351051886753781561271008012735097098128979185752677185914773367859012082594383477885920626517554030969214285616403267788417548360319369154986820111790884765661891958463846832762392917108978233459812151787349836976610305368062700817101016995144983737913996113450070435592350141036198649060284444045822097375961292886456057078525431415609774807944304922398612406682862881841696183457186033112964817621736525686758319618027274460577150293664299966785954347851550413485016609475129788611919071265090736324421738700698865555548863043792870398343318245861496626454051707035603399266340172539349022309687340440012723562033927779745166629264503605437451124806292777991600915996009011204473026597272268911832929651410390057884603302700466799510905467849821541765202186730029850536214746814817512184019601311449046353222368905635415827319805567163863784713703042018886622697347701827911922333558146563574877945707301415833356463279929902689629600710875609338040445715283688638379914001569214952768114172661210255966819308611340982030869873724449422699094501228261524355725542036165286098981478832646901595456931579564134958416150836032159947438181465461571106302647530952115793261059743969064409390875325915816649410973901292510496702349007488723356327151396951284553102680692029637522461583517043720409726018907750619113396569673042342962359113165263152532248007491481084344756589952229829124710539359521996115050595341569160485902723403589909418499188341627189042493207930875782817471451675790073399453810436293776499690732203450422434898873563005250423776057204259139015616280828749045223291686616579737177310204555169564565588400499570427405327551908099519083129936924555446739846289194027538820861516089406525878165988328483264513829332473759960436077927137932334258607688498560643834696583548720579861262482404994748082642368358776970892407435378921042052884804628044151617607740476626531090406165113701256258952820389364034657458572310957773222665096519647023446021719983499603366159555711159109556940386115918716590265040251898600085371059786912324987102649714538816155902870407838784482993462375185492868749324462738043658179835126841921641422175662822072412931237972621664959210668690542534959664515697938815212953660978333478361594474443707958413451256099937979642013495867490216769185674815396823407008001002518682143507597836226295244788464551004178810410260999706483852929785049441573182591828253797756985561816312047097739982041474698016872430199287459210660605963050678075954934329765780465397746648752817437940947389613724240348308606364405379879703138582381371153319552349156493902281664964570328036260137560501921176887979252076822615265924559434889923531249873574320699244731683421821432590119694524166192620350900017402872722970499913734550869542888224635409321893223123890717182519929947276902747246052204153422176348670242913010183896217452004366054158429313544958386050530790232910852933427146926388189962523097589131202630659004389252320385255720873932887254437111269185148573880622580152379922055388735452831144876969288079661645715282702839670248977097423846693722071219240169807809270436914280682270598472938719486145588196275604924663185010499603415876370931305826755940565936001332989177686243505301227061517852322942822598366536893144941916853097589959044502869125491049965194572903571353278933320159951603453486146796009116225012233979174290783492868920003268306836153773742341837437128807399794375886939792678264408284698114239955560880607884087353727137294372112605651462252863371915545848743848284610588130646738372559182101403685284127722067644325228136853992677695409962511160109102665232994067360465100911956502984495816217029875739710901075157017190290673014030750233623633802644649568242805641841608039992385554226154223233423673215810451048428552320931417499426348509785860940515972924465089961030018469668950855978000394250126379296780333296848275283097801558666228095514580904539271614643343749456893041229566023460190549587863623835239854324974936301023116981600761450965287059568715106822794394598201656715812569023639892899306015916944513387238324519757173620808490878149619817497789951016385223823258739530776631364940569589873438675402853053979356810429866734106880646353659008322825488175303642516766370865137451021056500872874204546284304922482450676983422942567208798793806644832141321113516758847928176027246615219188284884599319126963859420195364257463923567003356296375395279939366686437483083443163061171882909599058213112834801477971148969261210972795902711295716935287706810915469608138079767456850474203662726278223138341756672650812940830500431587700624319589677432401383997067345956301161593949561289168688314140960891632571925289068612588796137527037105239906791344285568798405209304894839556919354227664899578660948362986134343458505009929679401540135285954089048383449997414906934859825872499827058725141916616783271426611559226089163400648611367649673979110566589631446990443403090065594262140990009023272800145894379124165427746003332338550953757230658668014947774461079851179415684184813457313646954792429867281651397581312520499235301466014492540995992815147537757471786521273033250402813126763213939117227382052786762420468886244651951197216297253407451863430794918987459547947310639147490548140396889965741049102066770553374852386553816566844591598972805433967977317493038706591012517604821766233458376904126440473774324515990507393205374428230602100572861752346657292982413192446873401163310744596755877489269989973458219649264332055001691083627854410724032730144989041923091157582765001654847262488899444255008680951639075440349678892844188639603156285486198144272948097104397568779979720679954392288005404184725978807119282420627322638587577603915167801213932132168653995666704030355527779524873397380308796392101793805746538492747425553289413491561288953412331821977179391968661712824687297077972082646953505116970996324645758950541787627817909575387286301283713200381153205366280693879330988623771108524820153602166670852594960798205665792833805174496157268049580109192102410792654290875551770960198795136342732181875410345553974867775414639658009504655783748727454630387640832450874620018868726434245187146795116810041465003817622527975368005618740188952946697980457806277029576062390343516997904544911024653710058035132919563245871009889491990823563888824249584900283755546880314209684883292477050867583096735337057384363511647676784928305996895503850869653427329662192356985662179932187475009949956710127905520277150636770058791842963963072776774258752372101627892740604412949267898172383155837315548412932945443297020542338320982430607828351291504885555620125437606271142518123334832433890475252283271599479140952468815737605236850773261696628576911791285606845656796235480734293692274209539519751707426630568159414439339666695082262332890021478918686151759569226264314601846482118579245947746437398205818979465691085101496104809725894657464665488959570489808932666685628780963535215079017418379435099514864708234270087153788428038322748833016750495957058291339286166661805933051000655048054271853247338246962862457570654862155237800860507184159812232184533511889536857079301000547358733417630185790591938465572453894811798342703288021677717784553953015390634063981579241646916195501228309432790047868477472573805126630896757312694290288456867621804990260135715983027952088850921673704433586228581603421287574137633565192249514016523398622837043121854393540600683208383718951160345221410249929086959405836348447515726946677689922824481179921782229133686134586990749670167938104636384379250975958551950783056488408281688422079509432061875120401893497739657973290274469445160442858186536159093422041490627230456582971268350635816938797717906911303254920042249849494369905322593432600533665739928387481779972103858001845561246952463929666029459573473402196732767771841904494375449126653483599428158614441780099647365526813717860618288953081214017612133885690361345780641159078242243369682569239000492443565504495864922518316050460684310952381940390580686781264475747806506063389764863569833790171614449815794497799354661425132740911925769006988499521342055891980171581336597485615090744160418494933949452393523865269868804700124779703621864097063553780677179347761532799918663147818560807532081016253631184170681759224423686343534642346104555255702624966129312780255370648560596145777915490159171939975957469576030658253286874624951395355089485064920896307595375657794662294173090748642404984519873591482682725179338402212081912100432680660860959249177234865628063569055434497786558431493254767298378393784236927612615681679759151943501134060657693054541617224023715558633807762702792182868112789196455762916335928691596544668005974297930660861332992421657869303004192294585113549568201610021075749443567207577049899418183460738480041136337925670879039658085355753905161518773557936248900983250544918385897016480115328513705752767926352158741364999666350462797848534099032061990397529424555853151324404003026325165908161712291714079806059253299784536136573047396064511361366219616669686394573908941303334783934595372304487408049673461164865015139864435690653839702738596849640195017370806606917996259236341694365235097425128383882297142457681999580288234289606700604880396482292536129054892207201573377782048300129112529631694891978768026770395972280676470738407625196683071351937813844815248326700645747776661562362431823157543361967637217066745308033461249185539193013101144056013038125530983439313669588991103477179819478239455477128216286512686405602224898152279576921881016545845370714838498216093456590435718034991168784317225816813217104410813149089537772212784566296125342749486687264129443415849008979642172607796358796163858135857000194197296744010527849243032556054670340114193046156543913258534993107519129243630028279868442246728066716685207676829376626467472867567502223083948207615931224322682563604681551079573942529110267404673133496815804394625586206624266111711976229652470640147666375905346878544775243650817948082835778270800495676588352647349520258113615351325467759858017832899292447773154864502609027811586398923018438058392287150810010177626134890486227307384998005650534253831762788146200393781180989282408410118372182958894767795565933913391104486472028232815953564003429512218088418120677742359511836878960711761641388136087997903164854734159329680017070451691264710786562135193188012252851287977964255606963838786748048260680678103514047274861411119577447777565629121190414228869343139752123141012490270086951737190940588835442537859425356312610441115983133367894301235553689852748468897449728019083094264494483337249659328513959549969500861400675179525228325441231589463804313540900490867081556751443938454408735097968743785353948844140173192897453062576146373989207200795068609889631050332180676664887340612150960364129984482545524680498108164403181558515837668377790308334363385051927689289369805709925375858386196250439018453499587198847696813971662137868871372754004452590118100419234455400676017194656733686815882653049633354093032481341635516706388101599556286521571471046565673528626366161260503490723714644610808847695826853409935614918663586950908419000444914084927319715423308914283110560008731749355837021485500544976861593872085923615931070164105977946105139428608592665237282818471362141112098328702329399333306083101304786819694170960488517017902357547527102838345593377714094838594723841404772628212983399849548854233267452627777601640720025685096830286627085013218661235475089452872142749767386281584068647882212143425274367459028695769958472878178375964562924664843348628820095691606508648535429671631108177619123922781448206747561422855313420592440491704427804963587636855473114550575179115695635688876867571451049416925335447215289276891240974193143894271319167495479877590195580487632500918706787899436996457591086955875741951864741281935243574339322588655337594393708906058329262456625535977410065825898341135042435810803725012980673771568754704402668166248820573482902246495686464332399934866132868241346596283253210935169463712605559521141780127842038748013721726328889003140141956434029333787270001355744329416428819324303434122382032944018777677298374433880771173082599956205435446813053691893256318277073618095776733450943859729392498834193047069737756373394938348360173728077113757036299434679326622421471378218000233068233492408107436062827852983352958843567622671777568443901777523976408756510425836145541776593231992792861178006637367200454980463839538624730477021035326319808591976055591965312836140838377226878454995000893231437318220921524533434040782448857499081656313484903749598282203601454227610461283421175532501818021470595316969655197449017288128462452644914215491320603671619379962147292893973772848979931151855504547150839892112823104848996625546964080213579570472676033516184872497338771557200755222097525739106585754990468988729435300475456347872663051188263665969130233701167208673867215642452786799857028254801609193818291245636127452961138544386033580542075804495975341588311709633844418498937127025824925727949837474106819723117935488851298753447469897026130645174153783840685143115354100200888835525454265395527231218704304127779988492406232222791340929413813066473238974715385445314119604176388830395316120964793335197412279270231647298135606656232755951676655558077433368440519968031328905889909703695524650797113852438384166099861046045364875112263035563709466514773823156319998656805753617511741760854047071585158069069896791773313766086221478699655053500687308123854428661047555807621605026014201819051427570969500466377669084676931328595465060491210357227900961054429149348948556115187820765529640405684712322468104982374109944881531325804209536856671091533720106165463713931785151862920218970922374208149829944292603417889624168204013859216594050541337163641738737994211821126827966059030822949967389285660908222820280690660555883628485719518529959511883504623644547122015770936998720350163232020815254152215733003234060555229198946656431041302528007883327130005093265432051121014919298826488900189389582747812763044169492207148438789437820022151443604762706651137034255714116903524564532069704788953501783308235272749013217516521540659758740892218729926117134084134933039962495565686180751897698521011125392495384982673509929077693872651544440083868042122769877315127880780684175676478755522840130147983974628107487127658600366412415396103439046611384685247127233294174630026444391166581312086744464429554600950512498954306537612877580596254516399782772954884864266046018383941436052755528368424607553217045662031979543856929615815443867481020209036972696285382966612890107548839057900425218850860192260266022071971000408109555871386745145841860941681955180538767440717276856804271145581996276956557707597651108595955412928126196559287366748658797147354725673556855073423408195453008089356602621530829002646597771662361916921082124705278684383732165912037860744578218552486717341501248359730873819959368260018527610398222695119957350267911335010768594507027456035216037230009963669913989293192158087182656994138414302256812270470983551939795126858040938855827568920977810600871513023700577679197183626026534501126891528758872755607082459237179376495298858533499437199391357202225873261825164465146399721597599869525640855123375873123491561139867817376355581978419496581727411630767690480883112696433733759341746239268930131119974614187704997975278361059473081704713125821777215368404925871215846937758705380282548661693617981766349106521834469000906466888781716181369412329931887537275003960842733534170992722288466870992011690913963657088599658302362902408424977936042073875719923308827525532243648070643016971612691322659964236894395981927274721034256453951559614516101254074649703000225980655764008120575055024855364246465285128777989826834606446817554123399282248266883265710710964622837542053871820334332696019438987531371932842159865478675966555769970545580038157467456552019475890935293204626970826874232687905823690263515059688083904449222270244171576225147610225459384132549905719532074917276361463767134218544804761984849721957905389712929093379505523072695040702847749772090768012939622601930380213164608703140376937391976475523900830487463448525995691875561796431878861256526921146242128386689956692433358759996384533367115161380371844201957323063818798000408513481014888846146083901300184163656742492384598459628977482804865155855722007968766349371010236175972647174922798193303967474817752923077067921796823228484510700921560528176283458319352495559795735088180737041883732626031100216676628817021553256958362259002165376198900390628422788856378241831897706922557841185253086243876772149853335897072965286952652516611685811242515623964334913415625681631091656468324842302222773580018056759446361221210480111752402851688481441915318664852169261171611747526713770812862321475545073153139925333639407539878455541325913481025265453160981299348063962012101776872275726665889489598768402359464045568172334061226054913449105199935861913027685158991275340350222423190907897097552749190655728748695139808814221684843761375000605777015238348627190817700423467239351677493247786394210112439981964952279206641599607097604641279385095931962938252787788798966700511284128406947715361012225633218198136566582694451629261546343854894086204079870453682705797287410372154933576300178647918074577931626614379553153611136844184241216785490741791633034823359487448479695603566786565919152654835356944127650517879390143980956726426610239458631271268047676302910262701577111137094667882081340022054726717102987546953432444306584610835019817178732025647735191475194522964728157910814968409739127914657804950296229201259629556733856109959425712320879064570293302546442419880230431627566249156683526533249631134113218828658422938616948513078508558887364187464050099298594415329243615910642040089181123123611450038012855846659648357965753086043746894168441456315905923741068357256625885735151386302990139290920432987650715650765060173323381003825491051337546734362278539799013922069075646222690822063502132037909120029068376407668406800637160472254084821126174536892441744524028663392325296021294618438376298268079819877150148427881213293691066824976600717245454334377119700297180573576398769924888887019069027831482933396554587402544777777886274283186775156710749733203567060963166532513551561872055257335108350549756114957907870282406646046202705440104343671758816955763230100884114965685337969335713425631708535009905039793791362532628389901012369463781165783334662026364277174928561943799149558711954301479271522698815115410852904817046057651365348786095920386611609844289314228410739755350151512105866188161416493153673391141906214252836268914075841639640493236356156460604945902309979716104059673877244465339411983085207263853019477359905816907244564206745133922651798705064587167718727928338370258638468334488865747228507695339448738706786215131573384035781535885831975967310240213812749837391868395156539465702309002602222693430218419789734287253095861365275058593098407216655467238624773020514864305905194565311877267186103968973682849452958018696107106886126411789390449136621460382881684119381209451768314416606260353158334126767093290682049800931101183597756352039450923787326174972190689816496483185809909116743173640894324333591072545349961806705176003968454749106938373486894974538740597484143263598795169461802257558049812853863695244476563104856772019340983971720356388106802679327820599839118471116673366937682904719826107727468964155845219990463203573287681033077282441685461198153777456039233182251218212931924787552090895575394184171826619236167039724496055338196721005436518381265459269027548330422689232615587313438869212623513816292426960192281253403043917756192910457065601447222934174239035930401539772747873003607093934991071021008290018715121606649972020986180672310160486035195172069070984302993198815962025322640164058235151372167539045358672634810091702768928518334556402406132338900837473668831008606858546932302429162252515496820643431281619804233121014800985253051859294156028020732724961211764518772584530723596064891727708015441849374337748511260667518257792132489871806100707584626412569610532087377346543653482717627611100782514187622276611709622280743195921070223959488053526761099647272368648201354881046389891682646852164249166091773468396924442059760691775141184188464971695808535178796853829187551390349709008719833284336374949099715958055088156607603636970053172269249555018134471389500056985468547464291648957968675904626697279421701231737668047597325440410230026660994079008282297900734936084953469630042158146143074455043045843065420606906662221567337201746216716823947445326348662165815585433054782501592148286969828849267647484410774966106913953189264703392171721035089767820958797204488419113667489403547644360846221492798352534660383356784721845827864865689976543063471632425104933575408443243014315417986715573283321520513478950059200049381540428829667677185481462365711234969126938868036324843958499038357079496071209060922858774672075167000786654599472842680389934928867712868121571275758877509728598773069980749413017911080252074244568579220118994216088335310244161990203626548027631456219874411237734195864150350523031932440355835025721364201973538571352953896599697223555958990428833382864074777004215815777899829173341413024710997673445957139939175763962301587006661522262342766810924285567817278685339854599637881138911021723638207831410034486836604304654914686686406707528056606788057535629960869626690851894448952887317263040603457584011508707522027849791888083462193045074025820247353237975323045304458770504071629023011917090073180660838162079819759287945963628385491643072237875602092232858319419351788468700332234000454405176064003057224675942010764910509626915353619582141251467708505984663477682964686414294929923027492637691594067746182308936604526675769347331539183247788052846190583476281499774640237826817278883011118668234345099761938005480431482173762526853562345718110055306499948740592667128673654976316171405355242965582432653419743141787448582579501399185599142446390227441118880448862427575232411900911504863862330530238232054136388504698777606034087314524770569384110895965079956243536878801961667553566899853439044428823805285609795254228773039230495580482489809599721897451739585010014300826128207686875353581012843251420351888183799751756392423376418504232028977823054273271309446338418231505018521111581314415810351445410320954599166435158221040191559492179347376564706504806604045263093963615813593899396708482272974739766533086279078645304646549879380356293421318111874617901242659765114379646414917869012273115066868305345437352443085613835327856430877326063048310550865025710640567190450262685583575565444415638535093655698629851054098328114181627466264211077067495433896409440949212936425666748823184581581465735238852119106973795478255935861214279958545932863511997050173299853813188485754543462471168227496336111144077679378175698369196715250731791839632581921508283686575879236162383076289190814209255871688932753885045529369999398786417507072345276626441485084094931849260925470757613311348792371240653723414767319850382785999916364434137580708187874107433332520600847530751288511211241735449335451882980931243800051606043430195786009144976034993816613814127497222241698262929366715174536759906737029667196491660870828531373866749989868516328778643263649858449435811467445093523212733938694592707597128491652089438431510891205990916191125326560141991679857072972267413553404862048274981424019392193693653327319851850290144334276118011720963114896589652821655163769959554972732917357423378089280605406654897295806305442689325966902799249442819129288499890107593344725943436140495824704085460459826121703483801911354646211407048295450291227652114203813054719044318325019058003266732171397625858985509653219351695811878034926175837351538849228792979583107402007921604015448829153494461156801852474101465851362455536944369261528036698066666988888676107127932678032438448727118088461241024280386965051674971221078180053748753575794405917290215964220898021266812420152680022137828631289368156253986118494721956269813650698863044207469126019351260842319067913862449070027750680295050929749447846570178821625689092858577621488567422302464686574263851175968920201234294303672925521955147576440806056995691886640223058448087167131141191726408965353561654399140687442137183932968285871070455998029433644313293431607692514687870386359441631979719538271763696711018082901911205980515652897692098399628124330923468282422251239547877188233135842574393811285300411349139744796306029048202818775603312586928630996708553165566996175940735160562403700992336721904433526213703803890621461122447442909878555611556726575475083490924760271008699869702327598952245352571108497247580465734230517201943261056722838922119075996648967976991872502553335258785501325957361496449477569722146410830988491954500901788669318465028429163889472146324421594448379061776486885779167159048957539687789421783359546982747549346213397406889768471456600582729447621072443512688376254439129976979771807565753089323197779957432337044825263358700495944195088034877582246075450153386213914167541726905983744034715680133153450473466719530409994769778300202808661512826703287517280638983003092002897336307343947087168673427399186692242806888905582756208567961434338534227632698236779699642625087312387333007836835445537846452020270124818453307920285440082458984224933097160406947241787257374830658243210189387777519841987948319568674722271577534963339882252106528806511535805819022122623609096445992975697807238065007659148445668044167028812132048988332455902493207903075907140931168703335764289577013994506356203392161754834270998196699281399286529890949696251943712040110576738190071963619886624416742083824354085133804640962870078466084148083442419859107974716253242659742955277959183237000612034803053255122889125150309447752193741065905376805498546710258192689501197716390055134013386682858494001153931866654522590329862750200370538644955031475079309750661174969362875344982491132682299397103564607696077703439177426188464558762448874959427976100208203765547885595544956536233107941496978083248305286435496535380109127232086882313969727704719979804041994520582818116400967850305627331284068902179288833313205595181221904629320427368929654207994093866728904949118815102771320934218546250212566850229326415520406040795737077317820765760368371202246547896845834191767300665150042853558244531083624832906167195896751278607293741640282065268486713047564862173262497687742037307201621893391271610189042050466866242601807625502079302379363687531664630476038233516819243297016919723615520548320513069217390175117272405975890247039614492346118394718831522032509715731655936021538764510168397118994294897849627711541256035383135244063046000321270144103572101362331719956713391581222005873913487640244505766866092127056055791393455749161571502396309655617989127892074011390765579593788192078286799369332129152738735851057333043298939627760139685974662982241028033101069718872941832872466083317519292380031756123441984582776288450591636798910223881924659597157038022711073379528421684148776504070537621633883092283569423486603041839128602576153608383836927517406977047257942316030972244572268713528756642012516711163827915795460717684282334017598825232222346439450294494765196691625887827033718319448660474262746541551346653066830041579289802876320655406364601489982901563759223757618928831515170142935855132801123913628349810149836514718482539760515323627127341885300644493259052128683411316463376574983886236114287887711487073711562436915015218821491538003505073634263863250352586862831762410475324080673577886075499516834564024011202953678642668234807925345136381298719718261638643153863644620912413055391805533380029862613442991471745475528215222269298910052431092953527374570016065213210574469455767103860596532938797610816226357475070521692782438701616801886304938989803120773549983007048149335398637172385161913006427265053071643449965027935626075960223155040927128632063427871224575649082203637348217050710878721135513139595738347024662651836184557041423614713918218236174548161742822806961768511341730223658381757964981788375105123642264099882731186836312210310112375793267271502000277630149752187887081390690711164432917572799850171868361520672372742091611664980618972170312287041065896036519470273476970373921817774120169173870264030728070205701406753118520737526023840486351633021324504029904862399352651174145247066351225777297551032854790571223141327763382931697794856839585462920530740423896080219110912641915805268057564975251547208866763863039505706116391633432040631779258661682961748387489031207642823761820808594159730259508525891056259293312906144916958410978323774087195411954229861376185410572856304743405556287445611748083328508333381750285244418899082024651824645618771745917273835116085789451915296988308210211459652842275342606043535893326678686681821839292252880222584157602727045805153731170138198004869044866013438800003824276243940951404408371457479235767036009736344266488308105111197196738103644881077090483127124960315094612287652190110365126099304490577135559803599350334790702412114769093669726300085579152612411645676037675516852542964605450097691028122964752700242993604622838768882910844363985920859083384614446836712626799624390851621572278988988707319840939486036899665964378353657753016624056769032277140009337522971077419551951550760060334810206235453798369680868403453429131151982609372817169037858559552770472720468389556947596018043471899574404734560659768666072885553025149020395994579752879259569336695217591954280705565538319577988680769041627513377869686276300043661834273816125580995230750055958515636408786263088434861154328331536807962532761860464577913497628053049544730541041444259625880987443918084146139551091249111776275989794371550450960187505472565535078450287865182113624246529080173201925601186651387248262786239089722013753627969596403823986993114975223413929469022200495566523103329991425524418459123250633003173712529137422681329420767890926405799475824193559291208498116636190921004491180098731447746888989726904697732454306696642416677622108303782422982997962519497190561488298090429207050814290225324105485189189566201782122164413306200406646368092615292748944394858334854192870176644031671471842462191424457502149554773886122315980549212923821178719251948505115819270139773625268214995867935533124485072392608437924162577653859772115016447407174165398807655263474722729433625256650260799218457785336059675088372658308690989909407093307126598908305268620695193728623380419670133237966927410700255722426207939855648068023500819598013214194065929196217537972485450761723778528256284852850040529740514130077172104175115146801904683990631614815021821641494315039172833851066380045347653240978916135302253666602545552264797408504202874438551659691147893195889736008356040518105604998235030622116966070693725130376245076250971448539933814318685150602891134271937518978736844415450001401564517757539879388834601824909423467972539705874156574025438371448868254866447934697096038020462493651882957940721950220946070483794447615732079170915885948338443062769371796212245387299867461941337121476393990754889426043314116682448727415006626937570829227656560904817526926226524291886433329095229802019439652674718213538256285202073334711634614360591848405016720138820050313859264662081257383096143921767214787737315473473659081026721734797176156786082077519313765927136254882066448438737936463354942216879787895987631826932682032782775147088839365955103898282633555870039188078126000004108444877980373605283939999282307346717575661991374927108413190803717883379393407412318055798024683366978550419596273808089992211167125425288057704341100617925698604283750891507408844263328071434430780917476676926603017319858854336537471044036097367250255201572793726915328734957102960323011933840772920720246905783750011103840166058519819864440367103971282210513939085590509243308022254078605694915683264021848577226649503847093264253282767462565151007637424782784633860238991155348345403912809378663118890030934832789267509512305683829709130825234710288427792196671178043313236811650920934294260086464760189403408826307047534371209953597609574506006752550431905403992401487601400398814392054301985181809512565388185577333599576033254285082015982686094831097190744533956654834131609056277509537427338484039624667974897084056430957080470776649585818247747613022081615851240636165625866108650015373507129536051180799543737681342404603271494931261284608823538968627076025013526197383493149928319059939021230707781164280558748188486795269477150289145121579321672020128317672266820646823132590269741559183925688033673089770599775425802343776156202348067511885578791028852695484427516821681306666062985279490770564905279964623934980571686468466820505187249881305135444589707028076847351208462480409622308039344747180964407767055301670848925666366278823923807819861458729594413933734402393139984506733933514249790921803208256606950295732647826609206318293156508590734665830718505957617437426460616686500435978689118886049606547349480632726013303363492315407101057504225749165117654112545331990725285019603246640723214032295547523522301340490854651037557910032163334253314780050894737680832155916149691145961402972061429696409527618646788328902384400535953677319085800593456762880122522809345764020977171342731859315539949611776210949133221060763770995585820714136528372239069585327093548994944459662481456686466037994816215104232334618829949524228178028741702236292620727950224391572593351650394880323425922614326373642126159990114638106232827020789815694456784944521460502544711906168194512336172142279809691787040664317818957993153859651767203994664878944845906102262166381819489952719325742522799614708052013958235141075954198527405664594975638299549862387599598961326950466128269873388577014477618861777479070619291076963206673777076130782553685790723561023416540308072783983749417770830307703716063959475570634124549673470491943098778724159388451550404035676091310937620207853874636513529045410526699960744316000331033393374598454001164820180837595276313980184275418367612580023356401135933306062439553239032080165113677000519084216907997853907847528847597764931472916339922396601582843435835507283737453732104435355517517471053579811650123620838020911414571472085112903158763048035127361561809248162159428061144213729052001396771590548081120839305311518366348105037487197826916652957139557464655734778909844897883522915032035494012462220457005825641517136539764784380258012078283313190269673402011052044074994707983736487738248570082077568274365130173526827410385601152355156421042654091361095950808216777485162487019196549536406396588653948375653240538840401749968204789859866211345664774343115645056236235422054280295492289422889421863214912164659492784773047802046753919984607084941258068780559248561277537144152734982360450438371727807656753406744935884985619200883522390874507850929084984992224624891437934022240613129215940856800803571429486784593009904352205425507672207480391314375637728996030654682073689330883708269642760441591024948382271155348035742734138229815112418261055181420990994106864683805779023239152294801469023777040374611508511426576891650728745984098054529638097924748666188189865313434742843511105041506972901843394787399238542720920668233374080898313987216034393605093602760068851740477130380959567632864680890776203952921446003902581025579784347692927923426049347897103086362394910586979753673178298963868162117232024082900240550001412497597979441059089621061422310405002966296085611366827113699329900814531690541158388269058784294223805604836102437912924802534553586678478982621373426786011802411782484803344725536360835805350882256298527089017451663579825346394918829051988466697662526222477553842470556391905419044416274021863207767203889256283398884117649254011117954082870792554821805307054149227232459192182967630093759288143096355131790575128020262709492576678438330689774082148569396771243693338395722069163815904223180881923729464940310572150590247035656021110716919521403893091738419835640778156048907319261372679424977524135447815169468903962979532327475879609841033251384148094314278518302028847913108434421700046145441803321911651091524729423113836052590830470517231543774801808628949755422356545604526989066495424107555167193011151886370759389289635951736560985242075425462186560213935204660899053023647189531839898524438990342937069109880730342551541276257817294166153359088120399973212077411687138461278296529714622992693078806386065559472518353624123347338719092808114052943326984144892276241943036134379277269291984271803719422119402707994227947798850798906669427375414792090304623738970345290532219830658767645296884074615361140558414633278750053149203340013319485795000296907657498579125714946435350641421053345542679245572399068201348740508141468497009063014995243799316679444958847333358824534989261765356892191372310835715275306827609571873688521009252303336904981133363449647388004169907706384276144606168361906855689523989428942167638038669604291881207832474468527997962799251868723788040238685723805148549191173642786492926529428767541466992937052957363357772084607893783851124138788635708069590020969785106770783923243280255754228217497060646062923851029101054353594449529511958312271635398148476209869556473584589449102380688367793866031627726940926206454918864618733801329419340427752684228092304336996957634674698713980192652433174500085329017521017016153103816359597456682171647219167993880898046014981624498749874450169199744269047544648699000421308507525786791010020369625531182409557307050225605968729695947615331489159350662469402072407671369201253036017785314151297169618578615769994146845105463433009128070872976855157085321220351486303924030748426662441313610711845192797289352746629881312471402222345753092479442935565617899423376019380308163991498693285120621628208806746439729038207941935106811335434014468075290063929263938608168514476915646768746958244079916159258781784872597534629092524689423856530604394471161255250167099079919009072261742651595510217865922734829589534552988686232239282345905987530201577360379084892644198076573936125775851962955885641515330990439800003031939447172623598865973815738128991698970373001910478193996376974741978313525359474358363122196283506396700085741836819996892845860018776809299862803465418534973723687012227138884986101724376758923073225831273515240892897512252211210085739127351362000463522011358813773389674672966311240284500136432411402920215306120581157084563442511835903858950606028019645791456373781516759499501626938565315144723736506788588311864303281748234018505000090073694416065269816562890836662208096004966756089288781839361472691520538153336273916943404986584200395481562786760559623839884249945420662558465519464442579281697637510320689672586671830931935930655691241165206216789748559977857266397113976143996036705257881048452727586981905501313732059101944786472295846231108869963476069691270251046338816178002822413022314585611728174140267937627147651747815264805718991932945134389158082324649220924053966276271165595255845339431035162436182536212364171031150446776308392969511792795774013608296258116543859740472488850531155352166796813811414782302903775971220422330009358527030416745250132745326016086885337405408223483719042467747121068420726857198426169818549977311337069893252150099397830076880238759838881301903761796888113630184994339904260809567277741243067183848574018684980877259482114284935723252635106011263774436621107131967675302383829175627739179166232698445512687515751878033148980096011387493877441877102759334940350948794884709342305909538832538694454282275542822766400701700727575278198622993631696541293047863384037427800360590927909437790942662352864195266811938585576700771798122934497189237159032295238120846214778128936951992045452858811328344913362506524841976651678466146023689864868548949373127921224383846071032106114809142276353728342116401468049057019562650725999977197765647132601013331032964119266474277444977442617441910364710834232021123699005796560586448830445235727156925490180641638626334174710079175917470883243304307735586371037281626849398058582619413067383233321374762550284935398509705400394941343248248593042259687104942934186855711251479617957441650297457536487052994886314376439357550551573840667605131077125682766806390216854794319126855512778392672111000294341582004722577917035413248853994277323363577960542686917101472673310850606227591252101765868116562854351468603652965700274919884149544547688637827158234717214611736864873497916270136419745279386851481133268391720695749379749155202781912950688156501352583004210950294976337039210409867943394222605588523831595264933645538000518654310047056699173817256686967815673700942267621418476151450170932781320916007716309098103576431883384433626374220803948102764944135032620361580359789624937725440526220007599358773748118395687542787059255077988117910373594711824680127406611149220970992876887256512211014943994826600225075189690362006041140826466206276999793354821686590592288869666892042222766993716246481463143653927946182044973871105781818855828264575825141633824042913068977329876243095056645802059009896703432725844787756731929752294887013202212220921326812996434567214224198234519372396503443909424084182764103562440370125159750406250711059140386594435107631018604897489254750800248281965044415279435716686155560032119812556832102575886818624713358912950118230113833858808558064917122728407944506338204882937035455025107421595480272602175077989984087671856446518970305389356949474606764575246940652887415978363953161741254111547187013808350013598108042375291520448460196485215529351061561830187127429673669620933856559616361809842118935449347105448735527145675000679906712424114208904876119351801400348609600354382510060859573634008191161578885925032046816104947387056506739735961205155938528303507537218427336629352571665878464520687299815209524417817961741703958512565718938129270297180508195918819520340993603012580708674580950390847474905995178291276794553975750552815420468168038510749697697059500078655940947482636526376659612078373839542379008753298751077379785798557703555814723754715482506063777852996050887420960642192774688988577005578094215743828347072586060899453279752801125353126368959186197085526262077656812393649276044889815228230359228678901273558605997109077065942704520431669333222993258839159269488175948485229814292041815628701737399185717179458249504877234296788317396162599688802791114451591938102513433106473905145082715656020072302541072851114008381131962460435412329563546927230264009628622627893623750182944285073552174229545275879609196250952368826050848821505445119505760213027748431414948485400961054140693942818399234105373587666486557997590613603470058055240424478636833447785932386882691273008453126782795015765684438273944791955446509953077179984561041878643722913306175258759213282568466141902339998837164171304465838334213498367760263710634791762061723978799852879636324546091656893560576089567185142407937938632509585215648502192734318179459902608451386643498201332119573303486522142596686464239468390551301107982753529242179927736432488088245671292863783711055631553804508006628900593719761447867058721199953908706145830298631965346428856191178735981271962306393435884610237763455715166867871068833904079523537559028789128225217452757424706730605556211128390386118774319148643300569982479614071710852199716372234726587963958360379134100493770511699492036248165834405716131221506658961256831090404836825597555091918614681181844897190023978645290313990458642135394114684480116435630318132142532158173605174492655062813463396384156970637292328136519551366746738246647250429821399500617381547615380490826201724409804128955461711282168839637537487988366974003701727550866029928717784403856509325470266022560876673992412111366610793527084836352745580994113268346321979325489370915096159391556352564944880168583172923958095203483518205417810413417826925551444741421139634513319290068499600509156463551983288827698286082497513492984499826980088551889029173766413399724608209039097144730594808025749914542804665825982429658377203898539712935408331157946476807689485410013739550480155764855870136844204015657514786911188366046910257199498724263684438115933066884389725944280615348225080796337614774038510492035798717954162809744221656621811619081913586815397011839334940468994572283104777215480684626349386198927392071755112607242429536029616290914886400515892661865199784522837841965182119964317620792321684634497529277998110956438157621747221266825227982491026912254286616067995811086713183176597724855052212926897291691950585584373495279321867160380759927106452517721658965027642253343042079386503129044608667129353690256486505125683229052369857573360570374613049875873550841242145662630116989146720211727789345455807620323486360257939147701076544360153628403594653410414048066553412973136684207797809647629633913583456706658227282543223798580914871619466812277332826848716541186444014785176222519323896983525633846750710057647523337764592086030635720710369936918277939468628461219390204728058829869453557219427083398729237186370719154238669096217114600741828249283125217739404877014189734992050876704362156145914784787389986583587601133670014846357094020960399448789243490017497171381696569540177869614521727225260015277384820079172175472415000741169549171953503203823629553940918462261175525233702727746221285001700091740540166688475303506780573937382401822258187968611639221480455123785871389945485276364518575042401702825537936285994716024794863192540848803630373403303233417384494294495410629650538834707908949523347636362465665845787606134521997348496736415440882606050729194935000236312175601737217797741850918315997167631560198268594312632006779949720817632698707864704477136881469213890507625243437924630420855483246803106291774060048130557165887886559754432830937040767992858012238902939011426117770272292464722544643536730593770984686550993200646398496947878125413420695513194209753715823223778778374043841975742960854236285749523115226251568470836191900181539939062823533656433348998150627348556520411872456185888296990192020274146975444156523527856505880248239057359695330426937567970315963333899255535845355137190399301543315302698296108889153427835781472585380735172540026383844462630402947410817487060062176233527876030077825298395599936253622249424043287505510832313673582649229541686366581345981473802713239927532534889855190813730731138130583553138628231091175742238715962177439566074811229342927128789574212574434727544889929982653171151329124584983824409621348539449499836615405262205225873428515172162920397447079965867052488563124116019551931042759786964024686970561951084508212312745178536399266364553915763396409853049465289501132955015540693498037191230409119437891198638460936048513701021695579994797719406324902844671250383583632047184753128283668859326973896982919709330257231869444877209795870052683751633228498412816044459329291611391220737075224929104256526722185667218266704036648712010669034039392376681916881414139284793824224214357651240651971967696191930159071527728922038974104290470271159695382195625683556598629880263491808026160623143582308919276564542782238768294318576221956757801673176912153447374008641352551070028848109928675615935665490192287115206440195523096776431480571891057880616241800304208618879284368595816984447124341335147480895092545367710937271121443777244685645166175971068215695012253132191995136139142897870918573179294193965563080201945760720656728574752286870016020702562858104732124362099569045910222693254183341460369365609562983749328862169432719602094912646034732999577330502286916118632875065192736636778908932419834304944199110781746772131507761473033737611989347218291939552640102959700363655608297948191044810973072231977109440894587752439593956858757877897337652520525130828996294336793788582366536673717764703012741384440175886838683442526210602431275639029179428164592394159862338162550851020049076016104763312173259281531791039537108684366124435309292660701666794760451348073861100476546275117690613820871928087873187391496853885275324708387181570919710938096839460462680768618412900754403469684009603138184881608323945398238556274176260732978743965459410730870107938417166530346817641904839399391178644695629820987110589548623243257386085770943963172322033754494270805555559945411302614157331945627750062563847333984846995377688250677923674618156216659861503196268456025523301931176863020007459364879316052275676705919627441680173103117459975034452591235567555831396712015756208659460561102056031803845743090395485143926241114637668213051858084034187300352988460838697544271716245408277378087812493745196558602213588104315351287498850041818219932973379490590485183407953355812888907004011946047039688671157112103928287601682476900035975908174925191898531905910269406495581020491481481302001682565532405528201856185952073998512661348043957614370812016694208429452966996115331829516640666360697989714911159662446145904719188200890356347675758560518995664705015686741810609059497683724981619899119425901045898323338195693799011205883600205541079383127493239338905647090124697565058113431301102915461520938018786966428597020685888681616465476470712941002657505163898867182293907282455934040202598716992695294327211369638324653076423456651267226589863404585950888889210656603593523912062907091924195026097977046860487840391213470775008737645836803412735369434834169584351975613380386598303259105258004398760895830851974790353490307340471406150776504481777191391159365352954269913282188736549145910756149596498488407859159236619016675936476086581309533823950154396300674319085292872251785781222468225614600527116890275652573232062488265562731544611757387505358505261874721619907276247486859384761040192968373723538451162054277757436478198433614225242297817590780970613617250872221609399308344098353506818141154827599970267383245067599902978500329910942096660831418359053582508261704711280805078047145789651555123827622952790333164020827962992644275328944873782990640768824034807996584286805822025587183808413363918234455786667842801322144996502073308439868960970463994459547709568865460355449016369842724555768352008377770015284284676170785804915058941508030705899264507687965488180480890096771753704056365389229891678542418491613439910939296735976991584617652400906278381737003900442210953547583248065838993805313819063950249702567295129911761014208533372269104733964775236038149799879913537102960508769503434336730372740782913477991551536840250483435373850490629397763784515314435578156960395928144661148642842949051079379072665314464548226791962438370829844753375992749193379156294395069007864575265334600667464788806925329038484763461079113991557220365680589676833551765184951349057590746378795083919250764315597102763296956775294178096494006100520628674256983167331277196971474051558367933113934682385305209667065134497664388824862155758649346797441742894439486437833357465432951218436269973907941123820917372849644830668391339199831173111883647963562033544765195905082480301038621275830602426393761753012755489721748049402027640037932346047116961443751707890365135344128540039669208252951591967313837798274438187685241629624542416446026310101801561634412338068843445234818295128699010520411976917814955015089186635746842879065723913342928964738758392834385463544677313051084451740079040496471411009501825113582837875172616583980942152436968086651881688214268170508573910336806357390858756000031270287035052319185790982154690368491211020424774256533405651510366716562518843036731573939238886719245876347997186224533794226627753494030033137878244571272185689013595872839877579687928821297823759919494901355390107962330346481089511274003859354764218137722649692334950219214224055744993357204912540321288201923922355424974708913336002639600332098126474777376374947723182565019227099622475684138761228389083897440408909057449128305715509032195297594461996089047946835584873926947152924750529025774100874893363790644233677315956276327008076982982926340791448975707416439050469485116416106516847816546642986908888321936339590819590515573092030761544398587409064173523504513807078380719993189694796012248908687704037172028784445084594635272280181881602743606559690040670588435954707246493161029381190084309011131389777716679631360263550896030790450764118508589922789675810533172795671394906233275451858686767842845526110896002898642761278210654993269067176275650560246806612006481900183694143826532976405203327590351196374388237535776925755229257354998209869149238705503880364454031708521864125878067510020983438732966759704883254478484860567780089362612323533034780905559258052856049711413258469246991718486645003537997787086455842114645672597815937311811111998946008193737212611681671364976109498782894747820910119375045291730823337531048616414002791261657322130822979856090430679949367804040768313559029456244083814380519966888213704009515146112794720946543428900257102438170561180142068252835334285708280818509318093581357000855427252979146596210089520241846112874759177119932720141962440425033477229062769879272747018439464975432557210912130001673560721357852757800230440141842686648988737415325356703059513189760794921642466502237015362773621205229396327338429220433724180522641513810364934752005189449271797526849768441163038071066501179746933897360683650972801070575354521241188316417220326091081719031188774683019563526918076032412150710954212143838586677913174200560212858228620862599451262323576954678193935466875022395154500301620083584968829689671717118719237604998540452622577035996502207869642103826811701882125761990139624537122807867389575042192694756092836176496893176590583593767842645005831359410775246773626035845238746315856311195301143161064309854532223970391517857913463594479832070506540334653898595005919566748935307469137067166633489305021921177113785734858929316811940439605476946621144932273295209658911936911357906616496726526404560022612580735467545369097616569870397587370891420818908853127511098491495779120601057891198829822281050364474278229391080522766306745684288458743884846840713155335820939970799352976815138294305716536384189138493356549206520504689141698016088275783487227604344533799171200211027055234166203635321317397087115973116392088086708408693814552214996679234696913508021889832892032276633700207970985887509658649614044480749279456211494359847144847725085477154159217785547885077974157807404399801320330760662936147102780898166686258030103946624322404663307301013800468273059069995933430808332918679100834359040593791209540850392535446737021008066594229485249581297260267100409017584039343369846267884667647465846501094407260460487297112316676601005403832978626726245831426060866261307902625450781942642477667846768313786015945178192210331660289203529733552644809678389246814778682783702604556987236176010133586776802975937314833685409482663876448980230594947545667987590385885664029640609323140292652444817504326394869458670359738507796887401674907886649264477581617608455680030184186912642971945369248999986862192656605179324518889447711593093782416633966349861325769212371585938305294175827984237518561312312460148823603335915177371405358121473957124319329208028072588517078408036112253377848666398755670477682106547513611433242141413864165949636414548930369565240101967212827751407897189926619521491982865905214959944212570117314991370082122030304096207605048605891071185666679421771784514808665601655981286166693953540245247986163746254605832495385954580568809567611937960159610903128997041051323973446361463687653206090019907016698299560452951665280116187693700253647334327451808437335603456164560665966541651774945999199455251077252530462804726749868898734265975708353728283012822512817333470269641785659820037063519259045074269825341098169680225376506752682120360615995587998666505376109386058891045916659217335507979795096555769196424350213723671051393271637566463962621407635588895337698822736414334147619912445721897662449764132613364226266165688943915072045424957568699703793180008111766778137126239573898619307093311228951273684499748764390346050179813183854934359564614371337444344625950041715786794801961253767483811268048749229634578542829442634234990092947985878397639963979662741966072048938019639178002189613502846153439285565270537240918109476759130909367603001505145658560082270676508182492379904065747591440211568449039186008635417992741969403785313574529936169232586731229039900982125707317135695726357005866726776739416442595830407871570554946297626736164399781074228744415830698470154268162588578896459717629791350671629094977668240767872708314744614031773342258497109273554011735011832920760907971424786447903614040444130504783324825562616762021236359130713090543752174582728022323070560675490334950379534159092714901921720714248025957374674864115676716571989111038317942839326448841942895589274219672838691588520061683866691383625093233196678039301319292754076219940756103746897851190840692566639529011336585715476436235948427393539971091115358156762246887639428974043380388512580798400473235240442454082221555095670133385154480282775138653241729356529538406708596067842595738197824488511700157856133068013850967209426815614730395382180259934332423747723432336620650823001760347936482107443912769005206283892066912251752676310088314746370387259568481171288871770921661350224387405713731407686930591877016287236700565576049614189859320856831761255476900198959622344530691686460427090501838703859081983785235377561825724935051610695649018205884195576715904908116237185153809797307118782229806294633907202665626204085760986018985844882354744025931402385080897733392259588215027856189895694463543435825135756141366183956859832933741365883776755800666485729780078392497694302684461055713338780864861878834072244584470042597182402722471879935018642279253239303014288374415444444595958308361880589972701619144983771147778349279065833029239936143269154180308783959800532585939682903831632770583702335951545157003248860038361345075291033056510913956691333609008345681765760685191592205211507249288258641517132532781111210541590215406598406609951566471460167014659848278361522841196276481105235800552737429949143101888727307037632480435636089833788720938583456433040680965323209270691881919075272351051168103644874681172128484465228209540963749397645467860580137785579191918477801988067778669846262312572703625812224530767411960747469886746567160811202847108882872347352495842736257052938991151772958504340964450115380242088393234871997102495207547039098105168583580633559600442538207608012806517686141753887330942020837864714611870343132139154948909460230893078007588447600740399218070958689112671335433254798158952688301965203995897888632509657289598842685147586220075097232940491757947712710025412707787619680378632929524633252314083874540501987968572343531703144469279412595451703807352151535638171854655611817693815338235960352249960327667792912116430916520286916999701281943171216018033505133767309676164605094861165685922574181828561963210906035770678514053946859051916767175146868131066490595609738984754904306512133647849657435451887255015711277327331488497051520478174488637629427634753630691997777509140633441613546174297764563073133608334206435379153669866430987322826067614516889770327067670852168039708962730053702950040985693256659896519307022178208943768775889495050236111260470774623403539192769350412134631372709252394017815670478605380002849984296333330920448251727042579159013399621179878733828086281119072811837148218827726570971927798780599371863288212493132167105083953806909008796381095163017655092065153087814097397651843687473889911679818986077623251217599837033123322361185991076025094849678440023689282044398640640979614264306987357227999653781428843740103104323185740123291782777407086718851404420672601742226711142330535887925975426493950415079482542814226835197162301675402773126044940101422936305020398482153058577634290975989384932924107965621601729198562669545188155248423510532817457819147018864502304606134324381864903271833492704860452619314029906110032387835001849725873194174086410766022593845225513741588489083199686760334520992526163835180359065123891930585621853729131750132515918421031476300990952297251744957187705764429730618453994153681142555100803756456735820067667479648449039941112637156081563473367452815186076232830576722683760521420847617321894229232076034663262030584971748794249806123540190940648202413684727577293053274201845911167677078751809115596293775257455744801821520846505296091111120616096351707281601048960059538463454512266381786623832299753596101261165294416198058860985062047223618053021386566543778683474886313850858169957615929565782731767750242122320891809534504606062253113977913056046011698705508735312406388292938709206771510972292294400146630442755822677754092180756831498592167214299307163491690924317417748892454060267508603898616312066073453925372782335410987080577233327313787686875049635640551801558999546859305051321904790000174065931283865069093492840360364548505275551360730425016192731179368872656654301716938901027070640459253961236878346581578349632297318616527759277769981931962635559788309757187947258224796405954902990455595461890569694159105506486641039331334097066680998051626557477547477095867663372106192080861524117254856938256295666034698849039161969331550279855583959335139420037532992957090463916905174490354907310759462907616031480845700110042242348889054519382047072501531793830016400698319766954565357991068395595464096444487854323122324567739094151301856756916494085370896156852541203517362678168258884756174347497133081673654502471075956796647919856986245990771421345542361007790040636240304594595940038559513758754374579772933069193897609321254339841457587922205594352012649972169288417602399728516465320054503572233533686156193663901901024708306965020458473113431422573864154500506374272878190375598481437488723731857669474601203305348943103761679020704606472017673535327481838906404673611402071937128555097477485978718434075535758891892845068933076130559134929772185421971603022841616486264647458817012127054558298335889085225124411545290736139928345237825043450660571052087227499444811187476906650611213186550185996047368254875290224208154103615918824954817419741075164866903064839216224163600763184940523971783020327629744094021101192820377425469977342605697404579688242978754976242590572217707857203156857636418734599224858056858562019266331209544944738685593638496185141703752531788269405259218101656877148875033353086888193515432321130819116157029133725613038242096938213082052727215655413253897471819612870331613353051503626785420638463094084833602365069419520877669902511063237851525902993032626855766697587907977817088385154356183088700434384078342878749110243309786653731135553422107926925047381503440657469636171572747130854154815212607603358381607620685504285482515061559866094658601663075348424705895840500451722578314616216685310589337460519545537593795906159319311043392357414051495665816452812195968866810441622152788319271153963494046891317177490528327116414533663178963639706642814166872404104137902796801799858444708000141775002285463966365899112615329366684398974790545007662734514678279892648726393510834919842617297066363588145382921897045521521637131407666151800255184251595213482488686142511857645465742296968119799879968858798776331454268933293297598043482080471540430548540031942418462456813446981375430611108177122833763506121988805672255543956079368583732386058340580491486022380413293081367961961801939170659543065840840764799003279236270337157393119908474576126780057504012203241246068275984895990865189862056635153504175193184888411992928210121647380890254283952235118199546461163680149237386454848303405876396118408276862894980826347067297332709220587430357935918431721427749461482718681461202073277712274091484097561798847929201201579840725471413006293606969096313494582815898255906466113494729107681478018618675485918868328939472304415886693157989772625223686109089602098640256743785735881005774896779098017163430582881536711165162963365141974847444573557864829468049162381393431522695571317078331748897475513031946490261437990271190740798866232881741536073671720014837044428501502012957395555979050780782006734816888574958549503384802918061311908377576502089994359781469226286817966761833061709213889772553684887937270549105596836562326842235776934763933056198083590300735659112287882316116637593650783038614560895542871541335869694022353768120133549021860307166012646079504943010814854316374345367436201604298914814557301035083841746650544428449308847134755113652434420831031923622219868396585299527715992183931624281037933943573026181477382763300970882723393626025497670456254261130220933234511319654788746799974367633679496064862188845378159635602799406196533742972610133504899243263640486693496177425461634083455507147814226100599446466967713245050714711048411414011144035340623221828316705076093086066278735840621053059754177465316206420270988880861444501783478983235903196584693411994459273218626227092755524555064959334894544101675671392835942751122701096159528915970241160796275084620204120855762210332977555448020344117571052450040428327225976981603586285167598324381969787614982118920547727460118218100207651543847384618381882696688855311307128600817006811177261152422987774122402641647051934808140628422605362694804625078945712303000404093304598946189053049997263144097185221534054452047086713957427332697541641037424271358095722889778974576129375766063519662575209513523188460361089228390032455586338116257367668014080368531239506443160887390894236563592605877082672643196644864035413665108653031058130540046246610179240156501768829787862139987245448836420219420284178401990208255740022959660554095412857502702738586609654823241348276771199780544143441520327982873526979997527712276507063513697223312244905442916646606559141703992292193160445786161885820627624704838315264007417802809980536834196048823173327455515316649777310022591323488421515712937834848439646605793766485538445109407136804458099764774595525073298578157863688878236878557877439096638993651400343945038006494449076622958780008109166103619742201075935457116629448155795623947933929833236257340761088684264270661394108263572496345985163984467339846169949112540968503155373072674636925663461996513211357588905901727272430998170572797883942761894804136164504784014635141483779646744939347149995461416037622275993297545949996594244830519144158171423219005114357419145629038232825484787355378633006039225911758842919288859319627774282229351556410529451797303713920195039740804736288396447071292071486471967565946729851000367076062136933071960890127895062196431045218300603296850598504294497394836912747685247571186886298764711436155426231241239282200008124118333699981670192127731904160157122507695304985462226331167114065458271087434869572051095282203772898193605606227326362374748242920309824797528367030595935179435589449406484707209291109409169878222594128170073917533435671132625239408104308161623540414036801988130062921322811366041146468095594733530447350600793792325539386140972643947922732715815731167771544722063132857285323350018159497257871482028744031384417322614951469321188284526839311819346121554442151525029125191940709234046176838876065569054858170423422596290372243658915704274953170350058127895080561074474399543712301941017137340414861672710926167379492707333753802289115896050542601293288651470844865562934050134140970310819230688217625959730537009623269705693016008424618112811245841163556601805963118671083860352132950893714417067162373469523613722391435945644280195466885447196156004878143590250112904227617540043874626451236628111534942639637647603443357697892207008806992464644984503041566467386228334341442738094466282958697849676106790124328934125827161104769381495942050771729413303813219101308465649956117737065835068246044619375931613830419157447187384159045190826759668348223212752350029062731309956718222819610393494979251776188807050522605193086308929104630220744429529411614202401927908496561994985034192437233961592768384674587302979989131098517719397652676151661008263104497768074163352792596644413117646534835807873095294322647886273684284039268352130796519840750026996631535805121847149943264051231585846726411734421267456504928167035871121221896287885734353843496942147862557187921014549966681551787341627852296117822166527364263343154660322545532447039955620574716396755348286620215436229087731592698660374211223723759064594454259148442334543587495595697355127780051068961624098689692028295093926631798303665009576350143923480958495636074042270084053551413360869835682629441467517992236655875455876316786755210086364557237769929247466158140977461268586203935800069663236386088032847415738372641799387504640125327075095994193096898444361351752632435919904796340762938531871838658219905573982227650392562716958896451708357028908770534601520668822737340114539934171642579044700970208461578403536466847985291110234743079647507211608426789048875465954422705923863573408631868427790148954830017838988914512833232315041087287181501841190458213340246860059715511600849305462840358858579923797739062197674324323349425314608473118740337486437299254674601126460955344108034135740769001952951694607222592508443004698599011386970436160246749065845162417791052393866526017376333473970919540478362204538888447904190089451262950261606193482862722100203911245762845113591150270542301807860181608488494833074126326640083614226861611779850965481056025901453142894886068056623883141456562783310263555857892644535020854058942259711755107237077610612701597022055989574177572295046070247798612856389846326133768333028944238949598653822679555213015393505318818352591149325570495850420482852527051482782197672619508537054264126444959064345390563363826953101295450388315737535736732734536815367437904719976086314178928234854286182804829792903919234183405845513314758458029175866396539489497265258050857827020117840081327496594110495701877114663912564067812944816101549450427673127402497797514686307518943313891836764016836419703504001557159391999151174345900995644370831268563397637995503399744797288894215064645016265869487867713803620346446994893829103497154507084152614056468159526497197958645826261386988348846953677234224719771526306686726823999544817937666674956903565958404848475555544177873326767029597071381717334645314424651037976506692104426628603224094956824950440947222040713610409315018886034202837007578798593477680679095779194483677577683260936692908662987578403714078820884079479172059845804465131264116895221131007139525919625204676463471747740403037912870023929946580598062378244563563240514669756550944985571155237652876559194193602330106578521893702165639306072816933861454640206225769795539129614907053359323829188334353115430000937479529556311543285944179359912427871988700181388109906338148474795848505934560398175882374183838231071660427969775928747907257125360544813998890733681976691855525562797215591094978403507587693072563664893479327605097079746416683379198199799948260660395991182749329557818050661714360502791457054724294294112092944624468822304974621464434914362157495309794438510845317389823576831845895807475768598366217463226207120757251752577295414734205842679487461029151977820364751691842356346292288184351839634078177009432102468746291646338204888925090175395108900671625758448055291406017318721739263928391461579128522937084522395954407622200907981856672848828160373045590658539722118018923047890841053286455394382330469768383843284624381947768807666192358969350340378857235139073358452566922568318172229894830294307304772012708727882751019527782693363690122242369354869807628726848181015989138442799453688385775425777313680453940905773981647684338643146202393799913841969448725852491628843371407756189065607468206511055819411948071619439524879083646593614933260114698704319787982858686197172409708901506703747291285749487420364470576576280980168190394482598910293619902907831048294759076795663481580284805710901805023672641429681833843175301483549209426398003636928504246459238995475169362264852482017709466777672712229824957960748636794989697204902906780020128186959581522631667975002858240317850063301907181091589436419848232896161913813481987225341114102772225645161767628614350525217560241028643111509292383811310893849186380255992557787692145739314098435868735055514130047803508102486118835240925817450741106192552419755111566684761169742471264141074905349819335236578009937710149405649490850941497776371780772025407794811111909404656641745662808315674347140790974616846538377965139077207379647649860089605974043914811415790577748500598347338179910798948868122667634096696638930455628588141963764710569097477634194227648867763978417037631299869729064963024961745979206594751026237176115200356271682792889567329849905490061721506647260589064795645747184707439399504977423555288099375972292944569245299129294331779454327571798511479178520356965306907770299476511119974620392924698316686548663598641378225029359265851434229088734678026244412180105048575366361720834037111138297079251614372148242857209388442704516073584630287722892031618239802492715834864168407359523068754249065219524136432151099583439250188912415483689836288165212317882136094201384906689843629291829457771393114096273545246621310785738329897982147247645136340339840486409440060851994451905504032361564198852668605200516756019766230427958108109281791867741560060299488694725781954072679423993700431625366330918624534071808904078643966581199855321889363844925403075179121275954646620253126080412535080541424107439961944793774283417779475816171576123720622530812557396879914633120328947363113693075212943143101612933739547323165212388899258181375216494089681006259517244722918261544501793247708741558868494901935811561817061727311351691703211717476273719272279970076659929648039900256714470438128512513060526916839694215531309437732624265599920588454763052183620203788616097748178989954438702231704681209304174784012047651810816054326194410731971765345791293933582990171634014112651426071313165009941999211604132064020401806926084286333550002228664519524809308702416732565421313098518018058569653950055069620625176832731031077387552974552981606310351620292946465987092420074418668089578834731601891376676763927078406823280032706620597534892918251958228253341595973060666082360726877637514720142100064337370411374831491119454278223500967542727360156104374388071793835668697216146998932267117001794224101013057290496309206619906002192834162686011777504170366803800383582627837001159071412227211193060049964867764919550176552496930837553904766934756851914271604714743434121588543294992414525733390931523640868184150960457283113333051238450857393288338532346183908890278905807850405294637561223410188402118004365826352455291874614972150150145960015847169846124908771168005732763608870906124963482993614006301242563713262592737733289694016988812290121254432131907578990821817902668905734512412279775371587698904549081894639885861703966898006300946306707709807474708261296731032691039884979499750384442626372393248814608919590389362881278273853436809595358237998486987143102353127815150827214759922315123582007988786087637101889432090551282477740028283300200174567080243543592075557230253322999648513849761457559003963458109982480747621736471786868694595572896773443451778154478893645447137973105184956892025045532439675513206747962172899021041103853887492235570206228151208661119706307569168446704498547783477984569476459289294686110280421764819233137357039173488057947445985023426190121181615977600107930374797351114977565182096111326044209124539735585087880600085172271617806039181914708353819585294346766615467977159211477131461529432734653129943322203383195981682683737048859426104711729954089732588472881743212344875228391461381299973656452679529456054436454313419149904314277008401285567626944258645565869846413439990269524989974944505628769648691214029741175674893048526469512981285467175310635707158043131918102440201900683384968379691946572914418624354700957463288177817000794953965237441545398212846230767526806716007527493330274519638184320194725840637771435662930078296490827573061945897273822717668401560261377909236523744564114806606807169083889646650623699818052039745382178200879182917574697278337816276875342927184206565721101650414626683057265042539679681292245209874223393355639539709340389973463081077127351927893788099020919351399664920532192240022014660685288570047164024149030115939946554074557720248883291767631099925700421327900073268920796485318578722834570336419422578188773347613064431643753632170176787641255325751116677900179668087149179462077396195000447610321269347952387270026708768206954307527787782350834125945803886358290597823752089219284849959077225119075814710932271469783803968727262684406578150892619887583073147230153900177349918742722997819607480906859134134340234812011063536447011974104338839854713234352575439374402366948771579288921965281270707017087424469714988256487629688314808747584273139499867112054331425599297666880492629682530163630684464941359398951663831780123630333095181291779703357948492927954766016047095304694947924775611855001952780293767720024766865625657434122863831144595251817902234640462602341033540465054443154984588918752970255804258522348889632117986042438302802086307420404545596692919032361324948511247455304888068626640789358664644799988011600665233852844796935146667991672051001942390597308419386039128906612961221227567045930103585446776213740669311929552747880136841575397520557544252572246043732830297854848606401997369239007880343151528156322096432531463213393547213608884033711903232475307367284544447145018409231038378220123346281424197187227265141750125923206936619150613079910723056804103135708030689313368768991404695406168162087871002966663441799868700325086021006212159675916502638596999377670069330400052581767150797437640176795549400745996181929056203089387910149757179693615648014194161232965379873212688005583907180937282198861409676223118391408596064412884183714103170114747508863821670440479765715411983512504093900056621584779534520433288320800548893100206856579285016543481819596894180814827295056475384301166147883491526259898991322566651981736305946493877247487494956750240201259921165197053022521695390156995784853056485302513348931277317112248147939184363416369435406462446800833561396042413144704355293888789115853976723723687884183929125344097009763246620937405401971209901907849302748144286401404277165367417870121494352499665825382452367950727031996113054075053444458755217058333809404816004196428810624905622055580510568363884758184030555531508003217424029814668600288105404145253951489304770177172118307384895812945889961639028857942078936335524537176580141311093864147589382394740092938229601312280052352477049489338055490823906568827997036284597580005959720195554144834518794378638659878415291923131376528127080052207038817896672170415051286759505294789739110636758885544187726730847660215059112351662356824372349134898505669942994295995362554368100001299292108740001337299349322674313013717017377748294722691045656893473329365067336867152220460181511299133860351454370908722562100986030867931827756894021790287082719473084687064251376489220669112035718812281506891730597739571166472711865862052292983467715278163025035733311720979693571638055230001286471021815440293093597682665768343553491867861412082465134484255905060329956365075909665856948783533744179353158888976169436135604601456038875982314948809530221172996881730938809110237899245657634262805211608316439115186500640223856457755004073836709344796622652852966799123925965036013307822687069581840751055194126991198208075280234026963494285464491468738572981847428819709652199092784214051771985519814932989071645976864566432446554087532607197478551140582174145810140151338838530503364936746278134614173734030561432606972591861296825670755444683507124107893626645421814754903619001153038229513496912824174990289479697304022714372421714310199407039365788732253402570688552729367047568477227416962213531613632550221997582579294432607179699792890473715607293077048409384449588967913979954120821418766878650542901950950339802561146230580650333234180377604519015554423377384258265421585913845165051720766554707531490841613756617995871956453420285179024954204603894632603537014922304331610640091297080745869309860528056848229798422433484965349633785612595229384515059095794539600997289668290047343858737921922898516442054762330524307583597393035430367108227259297646978884969636608715118085770113378927338941275481191457799545139676204589722968235483349399461425966817806078812169874073761517765826395184550228976513884036551995449344258292979311533491048977309740162509331049533456101010847302409036648791338827766266296868085458756382955225441932712574934070256220077923925765533862036181689122949347443843019367082240155568983295871960211792241513903717110476346087228042654815776974887207044767381491488812188414881493696553003562550060216521779583218891501341667392379024807325150906858543859021705706195093289699300651928961824669134909433672954187511169773509694269035094313935580590476157485016771340624602896159539233440587298447043109347425265699326201842780957929334769185617013149187114346871935031614446090599229976297367470122854863311111127681452199963553042210133980835623166516992955078908041160836900862877021994848790648288738765268057610091507161811345836091643610864889537928396943197913007290014350518705364477654310808662109159453425737200607995275462074037787866060140001929249132163570851700358683398182133411783886839740847511858315750330850285868477983165162182298411840012611097507063181337480844529417508712886605618932010044950412546320772301441589857915561737694387481151744890695586362165597798103259705970429065247104941736470119597466532079186332288050478594095764235019863042685779531858042842886828458676659891053425251236235119975713018448447414140514344769543501287612157671948837630753788684779095521069894140457855914388278645360642250345014460571762805087008096850081725824628857848840625005645309398244771900321474080415230990479216108590059938520462520252676100398113350754017014626982208095701238556532662902320857231406401908709909393542267291920548219979467089053428450477591107973998886158277669136042458730829980103757883627045157170034903260308506987812073636221913850358863356238540243929600652078682339444716218030485061929423263326594893428899900537058268553184322046200014875181971932399612851605442344664199551102423636341154612884909230143132131078636268237556448663571750262799489676152116957008258583200237180156451259161902147758393936562531491343308462842112505684871832276807341836669294387576219026095273063253754254333237212298121261944268974801957977748366289388571920612015732920597273776264202484289263975503779168597440098704193909807480456166896941723214699849168029633060809950037259248141870098541754952412793867176329314777124164940027636539802458106325036241633943457165410546023058090855452193510795441468213069109782559732928272025163243377656993655484381439340272551156142637698766496413983222921878023344117016104312509706664017496329015291549107243052611983150674895925035026398497165299355973447447745090214479205976456052137118360739849192298287518673694718674584875483818709216001978248223572425952565683890716988850070387840915959331916597073025917829462949768887746409719174668304298101263978705294472159640080830421331493397771338398570469001339845632837999954629083189162001339327133706422593453695831944077562364928793915831762707569765631209553997630150365999880510606198450560773840536638694756409944681653891370717866603923884179719391379462889141600816940483987676463857864481585939965653298009200174576933109550063725228200433969938919184668098248447956241534539423393297082155603799779007315093983934455650057472795122295598423810002388345474432286316431230374179468907851533958410648135122423342772607737339255913684715700690707939525214299441509308099458927667566769533939927970893194616359518017449918218854318419212103957026340053500128544086742790521710612043090004116367890649392055910195879677938933131498705905633387762579522005085654769030307531469080526678696029001156341580435270293521099979923668343466093630128692379954529263397145715060865104638355525740517036115459006044759570966244507263593912713559356503144700612660360000314471979654900183061072567855150462369980533389202634144985814666412986816747736319325177896029925560376932540529224312980578288820401995878976209137060492406751560831240161188694624511430225014828749372430225671416725906281813318365901236871108276263577155118939876871456717806206171223532573410897761621477419119844771365629373773208826370424927847684774920052291637918398174605485283922105737141650473548232724558913086654046232565193803457691853815177988419706983152954521296078639019636829512499704403955967111658569527619472716268223631561377956033493260571197377302854771096278414803715559037632663972583184180184744672785181170453911431370823876984596133797236436189821913272670728985936270925512323709286842697251066966477531349648497913770304727509540228248999049903111205946986749012788522535663983913505219432619932872961535620449564468653722352539223328662837489356361950062238675741919756229169823734865470241939182405721405970520688892060786627943555003389695017521455583661601833176469011501470133348099477520266149972274568916441430671261007285853771773258581966375717695469026095040199998165072352900338477690290961715146679899965218387390837321009029262751093284277565275224803847552385159472102807588348420517528417643954678809792712989188094736908899159914755537850709805941566654991572713680342292893621161432486448325736561901702847306154935331104322910836199612415346052615458326549173427231746432490817174780076169763199846188035931781708570709929402049179675956846039211236674863655951276189743178523215483527444288427263133431723030255088983433252733994043745134614751107018649465170976846588628905840993692201937293199429884849559592521382034523769183397118389888739366404560578020086729677211592424251115405072694207171128510050915909683936830858242560266304381691029116059264207716681302578399232234994420805837116131206698634406236699883804453874209413966583610221061159511946291074816531215912682907837928960929417723004518387956902065732516437672851925692138618819789713763915106981346040448358912960526904775594368413694797386048300741758720317371009893431112865059186650783189850577405961172250362071720277799231827095660219410454236475877381397856934167421191530136296359664607588473448707532790615710192252709612788555560485459670747935158409885288972196132363802317196257679702923051282613501854700181999365809306418740772159426726328660117783486764334993512068781905660881874237130387337438855199130156648882710842363486027083569819630085872091612037919463633733268147473071141231437851003294973669029836680670305944783600209509837051158103818359924697484419272558851055897410638064402605108878000768412316851137137654633173056253531384397984841428858090168845839124967652619626494493026329836927909939858081637627957260060764473400092680186484466290807292255068574819124741630533985336529325802510390465738072725848816769707623006230735176859387519968796547242898069060003892256991074669693132070988881306506479108137957722538433816105548612581920936837980929235462702216747542099130828623223401582174673262603758722687067987536617439164345907411657269476303401129085317520092954307761105481748123085129705755402726622956912295665957901404134742186553202000975481793289531781164582340350160615287895608676213789776853560125750755057621451484280783956985772848709419255869746595607226565312743149288792365432799671728238550634750655733442405587735960066398461775305772877037134101297141161463343384678984094714095780184058221258990624215629672062381932339353643935082046829210930098467894494858546828770448551347337021960114900484201563985496124987756260173825770059162508582306793787942602013862233937259799062153241122974587062724327066314491796740162551739543628130572510630063932201280024553378825619926445568622914343264630909913434233721479782315081253782829004627264652595426217937227343767898575174321084189193489941613371107782046604079973172011787911310506521227216176723764436896088261971410845401541064902281624872576168490186374610874281117590724138498543298685196912211750039813663256781601548639305366753045271840564721207436436685055584938093766028170597222704218651597328906299172610333894096130089894952485608133162612793478367711392673168814109512006302763761090279448892609100108579128200763591692739314666726247485000558439642482615399558202180524109018281151528496410780628170632742681406039867075417565118419608725470282177359081230702861747680324149519095586552943549386029550167905086733601637404839918541729325086530502651047428403762817741238903683216775505650897100306009157535336805315237063548167220068059544692833325312737944302841793306560797299787492820395930242498986324416651233101055908660088023309139096886998462821488960627567861882501108178869815322013345867107838248074923581389986476993722231173758982056641686087825824606888216552068241915152659956697548618014985675793894253329717719769903121701836075265759484135793982427119943915345526627323780685875185625025731894983928359649954984158317393280159525288895695503941776548466402609490979483477455052434762733232979881677018767911884720679436955274100121835974764588403143192467685425831546786349047903629672226788886178828350449830812637985146272596972020486699470073626551706189475764901151252118638278594741297841302788399401740104209234810409108916632432118959714188907911010283283382832962666319679682040893717086945826354482427333482618862690916257449660066803589527218376470872287495982342971153394503202892918815820534177557605854903541140683836088354165651292843967051621294571998351473224083367366804717646861273921398968190339590586172549084138647769438267547956485826543617336528943829037550602210323231120210717051142972716667531705479624582101153428169780090885556127055191650296507428838689190133364229788337442226143963030285853573786080749315858410643422612385119034773362907032133013504289117929015278487602780519425791352746425027244647553533022537196427274396253721853541844458465453582462267824500731105656351673819838434382148219723939711580141022625140739139259381694506809441171618342108800289692253001385010054916255476688608445520822769622021150569651369066535858627502013779296972914793519956741611736209301280116934306285433997755119115989809250205918435251831807259973104069639505576208174383720175327908335396528198054058317166266786147321948770965972750177825887774095532958074617694932920909788247659900354436835023738528268029162926388631531473906512449619017634233036608977818469756044981811471965747122548987109026411061049508686302905710369489521642172358295596776086673195580095288351147633500079720292014557805145634971991753266879479734034449636045252948022619121941477739373850762554559460335563403715533947315035538588065358555781854825612292682108978099330304622128030806552147103662409628462657782797312221984624901325371925251348181214040183405680474688885421020265229357058355265553322424958386752228274289246234972479923829741339864496978291697751601921031142132887369963895671542250131895707025735495046070527872534351940596091967625150858464008673371639109817204268497772979712339095612667673902527410158492871482125040011666589737723693012273249763889536260292074228827204154741700246613062209194489044370841342951584163791708336122831615915332121494182798966921510034528981374881104514417510017804007298676200512140874431312813968313306791099202361996453368897222802437992376438352005609240286920711782766512954757659913426472051579605448219590845152767653712608081138650849392267137787150307360306266293176372940195558562059100054945560628044021142050315337002309446434075536613791602842423326315344458426069636665876731751571098670808778768001917475408432649501734196218470406291868187549893687723717828819411164798047586125242250311197452166850783297456265569296833877408580705880988792761912705482272003772906244710307422636415593629334485734157577479515686608115803806277491101600491158175808740899200457303128002864462675781589597615219603200464081491258414445496116308283627884307616598651330768495536773265597324865403580858872902822148474212388954700343049533430174388023355752593902073516617871379982783183160439367284435809894709648517629383134351488044029716450713266220894620231065072423101766138878158834251288992801139812014812101424034009250965704298822225530418834338420888534624120566388616355438198745077833352831304581315466903258649060744232134086448955477487336704664260822312667524359901778550215547731213107658944252930168764498006560319946260682463947479753130702387593066123164046057411797910101957652464531999001531050343568556576348928747838081020615062303939791684381891913137035157559798032917100822183038557873789206338249184264612130334471191810228540050948963402077750019530923686798720786967154559198483125238014451596702828124607153804268106164856699176095483322636192987720394030249823746647439483143858418693443436409036688175244353829725822766120840475195061547960973254242007040874954657711171927747062551520871783746246262817229566762515687990256230210808588142688698807197168430396567900418490190145204195669522552979095148649922583684770012842777529780699082500531879679481237585609103531785041221419420466985402669927022338112069099014944236969658164947892407303708974004787065848031445471068415347368367823408418508814793219063773801607903471010656283454425918536123230409897919170853461417683037639828669858559719000915814402065091462892124972782849051988228376757955491911567177330785543116931746724004110237057234795579091491566529275429208005658281524964653394457167684607863899949210744265356592621087774875212977399140336518316463629929541476040967169486192037047932702473683256249271325856174177821810631014038283575534034223916101669173266646521018665840970631628273272151037335163070439741209470156223376506767688794359008849369533748552816169567107264807117078714937905674706972608993324028830182243546302635068731956993682249744535483416251221174846633698777421741959445973582726158627980867114080098758769417516890918912035210487656718017857467862723446417286087729672140740800431455504466676929309358026235843304294385799740644023050727489847189831030321216879549996346049671938615238859057981922809217182176067309087393668777560329066509758943480938538209929387607397707406297947545788096526311273959507940542209513126677800509107142787035301531882316854835657241682452643652328028209819017954152024333986303865796149072315181426585482362400685282160195186325089245794732437500290704038625310175108164278107794733803909283870124315295657397337810892270259732354552176125073748214701857362396585346344251338395970822434555550612696321978544468538430239139259415511237129605687350022830568059846156128877315620658680491810542921251616180734858868668996743269893269636444549524542306537986435323870767041212679897472368625114714879384282975905291904332896428280042648534458579753074754679354211233723417016493371899943680869425798725146946582899080137195047753202154901500568787914246576735587996764041845745447120804985042622559136589809073343707762985204789135674299366102502480426531298593354120169964227229128978469020348800693339854600993194605983051116739959361328413276650943425371777846674109906065201450171888184093792004122562140994607209748887856948615087218791544437580709515499120140882762448505683443521697970933980710945889124490699265063735546844502035056996742734494168576593655867318583533412999916757282106260895460485351112593528465017563857561575402846194084258255101016204834897753185848708811835738673298063108433291455635110966955233128185971748212665479470096708524350286213106952465148652657870273832141136238537637190779451525248912940042325376757617327803316592707317194605305610034308038258907963522672302734270425693428632565518553296912844288798468349828011103854710425935698549808774537859455376842069353520389228078748648965045223029785305757538247241889681943486597823131493532173470089462448230692714910588095084442990581791084093676149380173734133241591896479022838624346690922089823135060643456862390937641457431020619553685170961484086359484646414197641247925715982465155249973248447476593867083368399361280297913863609280155707183910904945377192870536493053150541978916397993595321392868610695201712540253383579960022457552576508700387714125519277681936948431398900689193121791983186412082358798479957145747628575126685609734536229782160021962562360212955449744425373264180988850713447148752137307138259761857083675387675660761408318566983103166801295697937694263117708777316805758094131372966241112386599941214140712683399058269371621637144397550970759065677350693798878409729842238907276171162595913007624590293814529985237491969962331224867178396738474994418329014617167930396030118467511951978415587702840776171782995597181125452774710164530988972334757825364814167444872947721371753451702721136926054296480164845155443119602687322451738259700018502606267069505803306536451955504669006986441878615319665214428658077859784201893177615279025649517432476153682895574716800686322679731142797323039355144459026033488958661675663389854227273516692724538151609811954514878374972495670121358362043399960033881949013956225875196551363634917308319643196664718563162147626546910367142212566340132443679624744344490099764628577920066983070982230607280525259127048061764006340285907066899034596714478070270261084420974332874122704695422393975094226420771289304256831358442885808320326337526633459727959789491217836502953170426586351768689665901532113044343112595563896987762884919720105466327085951341531357500686255797504140352046140954946720763856657803263459311976084055938952532179533269689851285706560491446480912234851251083714586054567558063890317882425632233547055629950645542398859144897389057123011526620421588415217824518542482650503346774066239794509884711277867368266623898642074201959567689555185927885217244546030609287068947837029501347668734868475516668173593108579882174554391448842545308325336704375458312096019690118473658064872335714848959994594213226876578171698707989654780466366356610916524170051375740396786831767141440557446349826899980953291964747750189105822401236317708250101386500917922944611120882130543071943951887418358912823818002193132923737643114204981691783002869739993511287212028792072872903807125843819168328276543487010550704077881839639028688066663702137215635780690308376949194075207645402576911027201661381945209235618779820842480529370684390307637739767197059901886272128159510614771862738648550963702108223084654388060319056879484667557870724885440119531203371416994838698815298634541849272079389764222652399206993474055465362850423067884527838705569835831244258523291078688371226191908063002937867304572225461965096240764401088297641208749225838457237216945101508991364337990929591966209376988527518342169452987333200143248731330387335056478595008109306377020835211933759002908797321554661685480248939062942815217430701590355267035027391602460844554311735792942586198347268398128349727631508672932837321143764887715390150375600156667951689163367919442240152318327652481921361590019626303977732201360531738588993364183135443349684940920728176241009523683087861746255172209691662188473015174957039547574360799771772401164266409220973196997972088845920053442815827980381244478067068090139795795865338503302030008386618582792678154705009914077333804795768588807801310779656634162050129183219917008367940989809858368307027909313412261506603743113557392337761669840067365302415400677735270108553878592463275430462205807738367178268196378839760978509202788627305159614163425683918222003645861201097478574199510315819842641211326117826689373792423738257913189627957983979741504247283652287500323629528048451253140156746365820885424908771738307105005937542631953457929433537464598943269952091080476085155001478521808141333882607392136881401015666964230074195525063056399815146432716258670989735430245812533876309743449050661210522336309590882535850886088069952437377555524242798765427733908326563554610313029817002388662218357668899250753314269837124256838688891290554243799296603049227358500295193454942000808380413036964430525002535753845688297767356112395159577609476240027588647680415021006390832666549727400233248566252727032779597101183862955972988754922286570973088581508683562129209045172799146192863988091332342051062437270005389945286204521410336525721071602792407892201714608222527215980198669906255697816393123760199652429163917888154710041045288242443201431799946057833729276557802537979819831547198531309149833926866814067253323834730630662786998386991625725890946025476211958397980745062373295363007935259759612931378645334127016104317868045894983669141258643323620638544350745317268469767717395476691831637508319325134881307429125200031618579522699537625138360768513840942789586066836447071068643226694758973252691234396578717421268016002477145925504057111068697510725077952800210005401878912892366324405941485571549051851348832371931077747953520029564548327782327152219181593031777721762940203335473585521341490942866586757497767088905523806937322810180220780291817704029519225984648502127640456749163931817593551668205346998857611561624842954749148653798633368022798724511741205759615495925489370569464391698411738662919746335183730184356113156025825944380619075607510084511352358473591922242727214255195389674196024441024149873583112700666103202965923719724618231644227950909586101899559505733184314207924800027435608591333641811487037603817003688226808228965943691626875876629600150529738533250008413762330900686408710145096983667723951211730450078712631271278982742587569308369214461567144807059707268957054109852543303005884093793562685619316208235612080645689400525047857188606576952336713974526004340741174434260932021047162953746574842102275643291551005208925750245191563438455004491919207156798094799496179125124599316609921896929807156770700216148329787444211758304555652091183221333878844998751711064184694278088814117729652737504809946451836971972757879879312146628453396400121412916548214328934068498328322834980869037275358632125558520909907121158026226370625808999576772892219550419538167295922946325807501530715539690684916130616351215578247914275797338136709549408601285667922606594289994465350005925532502601156211137961402312529421057104890306720829931464386942669876883671613678504768311346458793109855362819299689073374929373379549717985419016084459874866056757335036269818549554139648676760151574207566385778470342794480595751516306865590223515864303435574868698343993142727972552329823691490173358433221016620641512775441510310182080064598387308939559093408801271324612073739104026943481157347106784892257999399275873972475129310745977082837983454353115628000904721895318596953743047273960030383930484820647182200374157524169537788301789422139878990931063905814044937127169945414043075199539093733327976482708652304361279105233339256622097978426114106000790432159306640324325715179860306736224595786957563363509983101256481755136064813913697338096951790214822035315717701741349078875156978007939443295677862114506834801705196104539414687307427952163313325220547502884654229557929728454115309443490115713754418317540914163480072896516751309910947185448879572948173953957786831431509501082270325519644715359318632080469126041551701252473270799215824834622548800691462185613440986667905919859151103547525502319514231073430569014031301032310309021705336355047882739334160896304434078302918777693596851403254335732938288610591909600185612431537604139336611831712915158957366997448103032392675494390476950440223908699491653516585730636156303227466539542266543551550510430554088545074061462471204123183780387251877396414541167464749705437133721111876536443442121366521630032808702288976803458088737051379019003879545300494019786014624744333020961170437894455018471861324184801967886754054274350799145243718937303236766158575907710352888950716107933276072220213604847409712180022226239347666626031776035316731109840230973017011052674612418198406999222199682846285051850426132401235899720880953111782269009368371117450074356565516379577398715969819630397843613071199034988276296207567357862834180228316463223304076077699816004289797402028335736589071508285853492228654783229440347790711063756898044862477403342683535850689194972892724082046420570382875448976035313533943055169228443369417518034765247724379477460639329483566993546562347308704780352568005551366893666838401310481255655110595239612647677979145914072688760261996172760583646483266408910450111696163029084297444926537332755684907974811048223895858216536557913585438560652560258186521603334726251060949929602132552700511694794331363102390134745775685888299304832051726986112263322002016988183559426433121804852467652217083911960056491667546650634813642572211148815881431580455873750577863314346755977614845571047071164891457839595922547507141608131213827225530904638015800651588029670296043029240108977231107197629030538916242192906532300407442503382352868722206206264046047076493213714439007188988190459036949889431932539542434903257155602560694062850332169618295248381331949406891504426386815121254719066937139435282757030115037922904475609793818557894689483057961464094708867870951056092760311005169874162730121404615375412411472127219533021542511010109280477832241330724982264526569001913176388779037838667352296853193484141070908807617619343461260666905074933168664160928625656993369028697625697149884884486849548649973064126107664812700718763427660461208474859041837202110702550446849483754242711594874439671886556961670853528204653364801910917545625612806447253583093192214770564921408792762510407766121658006482273057255624469263940949605733598820519770488590243757637948089807302246113700050865598993442434773922157204163437592436905702769180024476984027127231536743709993172238681024931018058137747685895800013696496315924291489571740858055152335273019794123732498543447150637989338891178737006383273204142989795638759681409697377333432415291082394916585382105913123801072857565550427154769458190873246635369246620602449021701171597103674041286488674433091194522147418751342512059704175939403910009778150341842277459236811861280756547115786658910289595409026325072672977383717166466756700309829405990084110857746007311922982074474165301534745296378436831507494909209919785971633422249240948100242428321221175456349712978851445305786023486868088133978160564800552178821169267038938835208627937273834924171824939198193661580539027750221870632722262227159060010243850050754391786071810827657986769419819621554708157977519967591968933282566593185778344413017372337610569491720262558236040376278576713809963540669277687323476807644574561572893102603573691375163192966274296760601910318853572524535003761408806730357337826407287154053667510947097389036699460231910183496341544627254084600204437376905045578708815515751813223802777430256515562161015759222870938440958116449497055943070175986249503832651232727173094671380427475917809818000824179406734000877982416770588829911527309678094701673758484119400995512018069843091305544869511474507335592722755666411096693873544852351960943284007663590676744303907123456871784158742814732688159666535677487101369766439893370906059125591765906395524626803676307398558623645846258668547338591891737790709411944931821405461478897852806263644903701333885756285303453513695532437928968175911469199196909786889109808585245723349602343724187689097873909801205652209901042313167989545718370686255329240036687900523524834948480767557306516645896175591058143044111691037991901568067535659996215944734164076755177934389619616876407100736963777302592138215389764959263600662697426429702680922223891704028624377119952621261252015822573510114090672050577290316735181548142987769978361608221279070119925076706051037519612005634254336783708375333564634640924488111762206273111391036057534238673865059755547673725044035966574168924630428761220541618518105332426129467820129966513537449584855703526871614027440058772865788604528290958041717739555295807685479584630142802623004428022352436799046763127064180208514301099780940286652545630920635077133129878603514863474853809752965939705024939960624521105990210753069559082997052673208297804023140314296773773864195977434415581523528847067722788175659303109192619702581790014264194495032585458943185830022487651522803312746401728025468482038086927514826108910376962560919629273339955211894383101247796663535871919534107850850136939849377102824323028472652175735845117321790879406183080161531018503455862216061019234816930512502619075131675540072706781901896723629363085491376847362537551592407948861748085909069873707232587209494407426001336135877388500587594264062141685764062438536004180512002809954109639807002373890179638758779709145849157218106444241407437692009532922007605761047983586911371305229459657490388155912414815657140032219988937444239810607771741295716594370096853974955269401547448449849108886390066158422560516422673724455719431158299444777772793444322387950979880976632242801449179794947415558928268882303300196902302681967996732660242115896151960540025357783856476692482568654941206523369651401864016069561064145807359313506266577294903504370397777420907279516523856222042817600700660325970416638626585838047769272778821408126772485330132501302368694738795035292437750092034163150727449144236570391615005278684597730938850251509243195287711357301497998602656531450258132869462759099276546117992438148435176111238527759565894377028289313591214359705814724404033771988945535853227688913986860122249847205244437896476047097385324926111317944029244192735002771358948358381960945744457742195485976780735868680104990092100344077397892759092040344824641658760623493487638682805385408329208449446932609558140393926721160018328429213862654353350629252227937545668567042289114038199263377318773538105573502003609892064000232218382900816198891058831454507542724795685256771268353348536001823594818353522875013937847122425115165928813268077505507555253784109827625414010012911485573401699555598315340708067943485884328180689553563099352715188514060268460724630900165618822368436831443811453827877777802942485765487182503020540676743421005972657824568716700971872229188426207853540806549084103157128032043743758533039589014962737193397501852658166952324972170134307204331314177522373895280400527503569674453434002594032976468722488558236959028230346696233491834208801581569062782835546889216355847920693178717825579089526800229462308574914884277155188222011459996709698119610262357957104988828588390784823375943710157320168428833588450924035772155624286723103828631168419769252332968470221767338447188276199360234722678940090200446981075443533803552706004064824755300992228978874574255855092345391895638459155446784860111343815499556344106875383703708189118678747233218405397267888133197403985165856932804958705490445562618267974218032109296273665548950245301398728209188351884902809295156035774228547442455722022041873743496561046479230462026174265548768182609006361648864774605992915687748808278918611196103039088677449024557100610813462682696365936450268750105541040939798672762431826254791580708672096566072412032947868047122243350936780080055948925813800308473283725428799516498890060316810679687686338963918255061692963499584770644752682074333689164670778638633191955606261314074785927448615343718522801200856893117633397596046462412502211474599446408787462054385068279183762930841134009381138902722969703524310935273161483040114593527905796105152730608326910625376406298958017869583295530220628999395600274770131654823253506618037728284216398908391473456890369008987161220508282751120639685222199897480337022507860085099371858209343169157142249844121252922046456895863446067511932660551676676173059814979752559289303422722260294691978326947980351928955493451489286794481464808652835721787985661423593575565682240702575271773572174558196000974861311134393598008980396282416074897001220586076515751301930336797918356638705254181300612638911011655620330950820578257527007990378935659630286217312915978854798348255547541632087827096681080109166312756051280470504588048509686492080463755267963571797264115600640083410643830214420938082709166908336784934093628034407826954683800752647735814460779635308685764051824339339776314121001955976975544303381702583921641058572665740036627505212376064941272001417675858999411790695334357774347115053901691578286612712653781244529579689267071392865057578699707961325504915474077871714033824328531605403551458752266417248201828683108983862630442549472953551418356699017684740144258915753904781292558020943692377240080954769651745731159903819079418264510688059137237921168141173122042231630799674054633133930743877430125547876262901500399552106747228370564077856724094464322821200127475475440066895886043944480134806746399550560584187828592815157384278533275555163018898499179951137024299049176984936614861423961295293011463516619166265967172756728027377688040563522192716548310377625747831698859502723179334057878138755358725217288715543631721125152602146879565172270892377787868032842763138829563454624908471667921205360966667984988766553218020459969313998605527506412910754562624561792202884913353205721687641325372977953891769793682601899929548071625201125188256496204266609162523614706504450930519282639306061780883447588726314651405447781645537282304185516709487018657838875455230411654737980717769336406417843420716204633695445813806918077602315756391270462039779547958953528622004440516986761559968759284199178246454423695851527448171798198441894968571338001695412504547033417945753909580046086298308737541941856615528721783946003952530283407874065781707694630156567221701046043799545452555736416399955869909243115923722365699728620108047551706378074242143290560558121377372019753708888466847203787305303862625005643549244230911397669865063118856093696904965094230833513043652285012917264157679735556680891188720882380229011745814330505840156753369634351916254744978544759739183882814331475096165526114533024178249765353044930616497609641097949104684962603494531084849595508115595294808963224423106653615901601964902800914049534428841509484764577926881240524551284379782165927958988362121589805141063117006418857819852383576570293363389379136843664785142915742552014116007343350746341704265746222943976091154279237495881118527099664247819808743126988184159779195759820756475968950594979364775644824748403969147829944300735136356329221955484020496178290666632213545145343011171693063238760977263739811095997828614882383776725249612293488755913612977353817054534895841142198832944370516222355484129311365637164913309526514538104265962450278286979064372025662796872761681301955374953318307654697612972770817342953720204120501265815261858850170485954725136044338979821270483312583778018578305984314175041028526787481428040137269310428610359070851336138213878311765557791064949762343097743330003050035478598571675193373331171302920613723626334947626855743199007630836196763370061924583070171843267009429004369610737392075235678754551100954624454849000038049189328852945479586507462924628535828986941623386239287207850462498130821749889762662665271441668326656671981063627320863839479170002899413380521017208087473821642739872045332924680863332458488183737777739198436584108753476860009264709400323261927550386241816046453334566114505854901728622220651130543532512384992916155977089070906606297082244218252260695332241795010762974875531711606022278823904248655284710298336639595760737486989224479701599313630584285224034946363177176460802025785100254033109886604284556701223013836258887241017032044782210130806058290126473372458754251402997759384059514862093617981038103186721025510449798921046210417037591524765256335272556361592381090347725376631926863329170301454921530172749719585093683408700456526578231808820769602889596929658763782711620758739218184843215742304316906461102733785827629401403055787675246057271272497111325662534146264728758759182771236758427223762772304332787365313266860107323383504665164382873853496016740217280397300786546139631424810684633008764156489264630675317347329775931403878119572457869665327708776036396611497138093409524774534741010854498559359173607082871497527638588018463090996688298120628714164485496572698388370397096491867591827835425378750507744447564663733858423711161937856135196305186259324454040570877740714125278528286276473760026306642093746194799183932883120498531339266001373769861870718070774139257096144675668726475393605506752851289933176482735429044136042234716750386340109778079712706094083995600732209159445231290094558301120723584694952277064588239075550965534827523004092682147233246233386778847121061359889487687858049190038564958774598161563316343228910852700943203169747399479298245143901757720707161126555813602009245583013834412512806033177993528067303363104324693403828388135080321350202071815833090460259490130920420518452065143657426070143814095961339418280902888250107887457383000136619500697662933915572586001023928659927994265941612729662784577294523798322324233097246084430151504129684286109172039921343441693630828275749649514049802707113896444017278306066748387603247068306519516490177380029094169860009189995368735612578639086635270644217131968025939079307457398349005958170671566343864836732436344536811741577735597727014378501618105456689818229426460559002008728025340844360971734071055228990200526632868958962182501881675513885836656049950179785168135217718883970883715831647481457958870410118018654372031463060357519576089581367150090616169110374191714302706110165425725981186079780193845962271882828834206139573465346987985527357402668575810181545989327291478308344936885200444534846959169924010573274701790019072025296842325846180470597389549326106917941996303516423273992126671314977862761858350781027568110514054102661993971278424922087020361562924225565679883168802224144666060235635208226288312374207919157263919744169752642900264747531788029484311600681227282055920399064302686714785768915998749956213373938029720390206678544193109109894784641904823404212821986002242810481686939381839152026508636441844746836809774342702480138266155830167908049083334456632146177896705526434549325561963888584882580327276982348942634875629595822954206479031476558677633565023183317803071683808403123345145089641957414769011426518472507412857672752335434110279468346628181693997813658841747172408624834162169189161199620209650507061133349413872757871509511214338669292351327984855030526089700703635225209163633846324609876207484915941529340221769330327273565395516398715287966895884623466974555025006339130745621856468820761387476263705898967440094416104975737109161754466636311377875955386613784183779316318703696891786841728141534171953716242079980301636345574926758408546514426276234974568369961290201511052275233035892616871834416460941189241515210779409944203696987325819315001678210096027666389621514623059085746896640827194235683169859743792328228084189743871094772303932285219733193751706799750070291693239874892641398133401541584557844338500877337560192969711047841634997064751391689737042179016187234111819469836621539684756411461199129680997345762413095584051021318482423064302355293018060917533295117373519851918003422379887044593833933791642043371742946709178265373283220481334943823359628455127336319601882154854732109961053535173973688274688176198701418582380193931633804455008656342664359213218408796305375962032602309390419918294003155340296157350276875689195592233443200345556009157201164473304530728762567490826620823402063687277076995865333146868536505925669088053097344436886105631869577483710224079560917750354885264218062826792004473284384465644147280304849081881027686123656290749889280580002378310058983251713419002495118214869222315700961507722526397515242989555236113776971747466702591307082221269760115683537456542585107716117693025256479201601831467558000244922867286739512465795860758063646835627221630785679192217914395512795944496511685253798530377640900512101484760561010940409364545505079257046322301522674911156069414878782348392673654528580177146457201854020725733317324310289270531694284625354541601717582997375779853889963426160986759877712898397924652162443134279574767059355862633016712616159280912068935981593020845920441149374839521190010868683531323718658279306718360811236901692502622372164554274169801786585953494703963859438670520142025556656287699327459206571816823158251296106904516974964082764345469317728525941252074694401440657830724477070107655243939138923000455162453560499245436301288842504368484749663274137833989650705479745585198598433931404123768617576524706543738052154297353933610169470937851512867741646455848213484510586966435949203092085006575766757518669504044443652419335001464401621744415102424260594826423955264405322898431496263844670307365044373063532535410711849829276228217617146285135089623882551939350080771123428596445455963391437165167660999579961569853874701935990839546131087670339822733923691235865999776419873668128028302565404466757607869730562189415400561504785328403137782585134725822395419775163890850726797654366983758842612687718816407679949530121960790076993657518709604933758748340334302386339636927955531388897584384696978168954933250697633160499404067855174819317295907377460633114840935550654788381516066386764226811143616367242900649444956541023458625769730919670414210554826107899710220117932949278920198849676304125638453311040425129643552882514515282555059898188597940999156586129260915741812546892935183387199812150431146337048107625779604967668409289200724466234900172620392816015790501038144656377228098283605232032537703669852380504099121785003450727863026901896870620717878574505631748758329665222864261057416836149149246919457677559174502034490316258903721819195037758825065727088088166661156887115741930756079619900508146146871358121754111051900278711576411904947958147427338816864435287150620091531273620644821809024697549607624963441249515071948031159133552254897664569274449914463367353834767891949129827718735575837804457282225083152675155274449026643410326027205781104748738553828510818178974990348891526694306417600837695579010525746385028964907277041659537956852957828398469943838002651728067721692125872456783821688438495686328637463847287262945740867743322852402686277722016805766075850632497003569422189128143470804362697746280297589434510929071566921775052081677611534758392615413909922490707944957951070644769902560597857613744232867152354286859557446282305232935727842992687664297238215793749721572488772716702143229840826939334777746049338221771932833620705522772839976244063044582175157352346589220715926793478054176200246562228184737112069305117706334764660577228946470200638846537795842529136149766182039519532025420999734244682941205885740569112223305740103030010086458037048248788253711301020130541149498599280359356052846802681923614736937274097268282786202526747866546356207174558537703277298602340870833977647007886778247425912707969967356535043403459924239099167011896161732115334738099904949784930654010597591169532078944954082538961671885634160580294620739519851727456185120559787352708307737686279003605276803749071088711532454577671141909004840242126691319803535283255604559771733075146435768610625545882223054024622434673025714887309320406886591924339022175020678346582543480701760996931650255244629073016897691370813744023958335695525721451440502547135436984573142455804687415615827009905965591986066581276973209209734782800737724353878828225713174127354073687318200677481414654383513161579570123928062558570327885569452863679284367137207733089061111815496846195293515931528587375894756743028474412757048564883783372709918981490499872493239322047139975170337252082965045419390577042486630054487192016784368036156767011104820288220420264438426116214737666922891895228487184641637345867725883061687947595330224419552951139965995046968689019361498041393590539478651795869321684764073651787080333065386923839186972571395062341125827682438547346197110544055225607743992446159981229527282111136257418759287374518068218075554138661637397582431620438178401791934395996501648864653609802813805538782998204622791485644732659995719085383292144071642166970980223449732663165839416805029906144978939897859556597181201168731229482071342443248295997628182369585935372634694140697117080771739596762600357194614717047021665078085500795265443132291721708943787909388358853065465605218489388107376151430863257950712848528513221991547709941795288013724297308953239537440098132003685410170137597467041012355130765737138212577981155015113143568117270002990458167173656773426368893843019597942420822686908195392094232918037240305090027789713926562923676850296896981850593536890361767347761881864145164220960832710100537290284382452498638309595905181694433599258745410824706003299117031841899981575245282455516364410320238898534784751243307448414402914325911367573540458257246529197503710420102831858331584543973218288630792136776483100142651517545847118981801369224524337559983641870430729591154192963742842834306447322268969841170352872730032294240687289131466338926425734728437927698865962428337241372851388010192514856409647267553431996830569964034708388819704041549816228006350881650525265357364813877164379583438140225076210723240196280481977026991503501326699583360405426425976708473273342405273548833352558158388278350266215540771314987297938342540384570262274911507736292733477954745917528293933238768683234884547409531838945676383544556897347864298423173059807405295400535118661526840434502153323684059480748291406150824102849995919149475806255417705668008035510335893310722297274016025384103560216883093608100129573797328469986020632876036605004637265868870376868135094146153892914078105605702893516663313661325143797090276340481619708190209149296304080559291194065151398339902747457933814554880946854153082607492411689624122216845840666228091333161028465349187345676114234956714737486517434105515271660847050694724959458185818695990191618378165107408493262522558352884661032911433127859566719590889038756155900868807802135113717177346777241524506241524827765163246343521199534621163006807592268693835012723678950096134767235798477637709040709403135166230431959407635496362724086118863580888247976192113389605392831660634720774250583559020898766168715480688805553222494346342060469311628039234372758100462753443379641263177205290997267920492569603714373395830129543088481335537775668121342508940707522198033247414500365539413878850999045924868840313485923324091413258125431627811825450006201063412546426060054130483470085259965158107333206381442457553627765313401603220527429900365545336993684671451500244969464191327641349531305461380928402090059668776247732121621481895158444537670250587957639297815953749960591371770372938081077844649594432039603732690141226151651626403994478121400389421412294530376957277861650451024493263982370261992188760190999035088580110692649270641671084990487867983599162712585152273846359815574450405681417238255504124129911218154602651704978383180116220352803627763795426215057385723246767864613324100268153253488121439273421969994056216850384052153233073609108061448626155988617404157469450379810767246897242817566108629765092194865995936042210391495530625584341490495255940407075476405132454874338072375843460119348778822925907741707145144855261808582619856458163162579051113828030236063486850709553234214744412465797398103931528251059103118122880333163062384386117448827850204864350770012140758947092580032064249959777653472513054313955830289399131591026117331313593061340788888409365699260756480965501565037332728741479357325398257214303809058216810446947550038871813554074401167589557775981206098716913856981120749882044257458363717518775366136721683595282604472617141736732497743827556288472035101918798346734400871168759631232350392911992710465038886232465859514503701967743766554537248495168738483528375116100171139344908364495948236830419586040845175322762777980491439932701664147475830390418252329203535030201548548038509510122569443081720292423817508936917362391955259927281517809412262712387552732359530384972302829327347053432667661189082892030717580231279934315671280188636799260647674550441970118406652098828934244246574310401333646672365157272585759264958526532250773985735654510348920246832291526261684917736546287141593553534949454217048701144707992244041685380623444826816684567097267342082471485590859585286899393762461400634689556049406545598101279247137484105884349284197108566709329282275477902247700466624894608345486081103807115350026533927282829333453683976798549678789794140584807641615432425129604483141566973719254674143653773062746083626597100431241337306971881316310622238400223004160701182588548304189646399134251506047863314635638113296131631874081903340573000811548763507470630660069481141989074190940929796949067542957082341028997420474854344499528341307633287480216938909236152963077043601010331860235711842518350407828050569957608543940477751415561466878416774418343637455060168989527950658535570289618780861228907988203256736457790573928868227220297036264817714408832154123349098906825815371262789143944563998676845994473195777683600011523213215679868510003344169852501767410894008001078159810382454707783158389739669633655110216435137137452732232837041354808028522329789199519407525663460333690082097421781189266736540903405396938836709498285691576991637796521550414713788704337536271011659110572048678860753879140385124554195475439510066040669853670901127996283299657416450898510670450093587298460942910129030339447084789551273875758747485668099218426179099065379250645911273345830320776741382146046219998763954452324484510872140690344698939899778012785991158694633537917623338309586739373573124577472253815714697677602496592039612932034475261049782697446521726964364093820245259600588493668954378118738974345652987542389439433528648673323783069860122280995244876599285931034244482565494427065254736395107247423912145882872052765080915675439756663281917674943791268424902991022693593629828084431531853792311114825036185074253407148534785116010948906114177897419013441960964370570742096555025417600583076837714279784535230520890735663885947641232109773225343628902848492853011391736246155332594732592226197669692492670586594046049611906373555462852648113725318771273613471821218295267469869637601101234229222792820462915850364174731505821056567794417886240575208286716239562379397113792351702272338100835041986839547832166923081300867031932523490914164122822521677652480323594039874376638389545498409603727260068266876761531805446307793357387180626966048846185850631958288971240926876595944660460691296125366803275621884324625713327937903995826811698531743816127655428662578878273383800514907297436733703566247954574039343994668792970028764136335294748038560461414781290289196443281330533793193524746371350739747024845008563787717320306619195442064142501104919975390533640212018218870437997779067647924942883818453525701486729970515079795812388591332443379560795129072994732611955168492811520235091195626483999286072444527059261420372259119227477261868988214336312569349938296691701532882648256486298559864139765467906546371465424406849666100297110286362402008804328880664172996380617057572148369277228927996227621935106090050748539609926748084845364504382454398859558433192667293309005649236313265463494683281714248212391148985164194423225856223162778746621282916627967125895060034106946888608912540273730050126666344143810395958553833283130920417605069201524061558814726019428057082588059675933998825293673555317265125730621027724957237700615864824811375853723437153939863620816019076251888558252584188830079654351280302539776559057295654152652445735412032404350113136836533536416912197926637774982057624762380467049378868847381095929020408941311731705728900797582431014713456371548219224969445709096908032057630903923412201915156297214577179273928415091955101214227060938182034151326759358914741542828312187377662536624670982364249662277351674695237000744813287459914674744922768275216142219681146642655602410721154678315897559484732105326857850634293816539345816105864798739316696845350807234672124711431918398679762518030303934230690070114132873008110103909385759461321262123904509223508069068083705547108104555420286729656685345107318544015978593411321389166263940407424145832353825625313309244978030765996112574066879509958075192018988685827180180896678809409698539829733505631770237565643129692136212619206775055431291841081790952593490395357917231984805345581208779189503523920869213906138153883988818414045521877126269351932250318581992887684414904279442358966870378488367112779641489977870425827709010478865250617281513360327495824919676139917160412082241942165863116735849308970672577217133072812380857955149040471447885002065207776496600640130935997188039009475995147141849775208292137256922642548131467488137824926462530896031105766862865209900687496132876949771131830971947832126026198212668138040862333099562273360555015910480035282066712045560928337307567456999862730208274339080067181882258434095916698327481885506666958283475833793885144667937654985966733767559774232298230964032871206625720512240510798585985029254123607848707279584269559583767607560263239748707911469252383068533190851048772914977041416263823724340676279386626617965734388722916679796000115292459529253781831318126449705625698345340133463518573940055632870006828330791840813207458156684941521371876529848279962681280909478584116253198683748745826773244588868611142772639161637875807489153840532353955703630808609321373022763861662068119925942460739663488780473330952130136537119857764968155971869833506858769720093024771303190325103858121936115399158651613059489596177064859054628748542150034872077196191570073918420940973657249520610432014476235198457909972273996431006124713860861341264728320832258139247641634264192455774772584912863310105789174924164270375511002020266726070634631043213824129634528239727945055406069983467477388698155247400366889428518540471067069470201818373735862589074710987138483570956346105959097300760538419898121874597180998910693845114853132468270977194087622036143411369841991209534514345644033134417911673461112046757206242485075684558335703210911489556686619706144951135751159193823568653792391830062687919733933382060887863372446898852756774348410529360023118738959195673409743888968503660498656447924716294230629732616744549649805918211437583123390574705193716169720434467828342614808218587561294728052445676476618183951899242994604387481283205714707113384871199977649579718187578649518701658940831547671751353630972765292294907479044537475109062870593609763755257260908732493396671434751595449687831157302993723207316566717350388558305264468098093948299488155276270186720960155195920181536932624599647625682117737244495207051788402362203198321874314020760238381797931298030983319729675038765593086899399272749291043934877158239057901156213525694999430288144536853580882617038470816322913045672815002964235227703559490205369544142464801678767167509092338160565833331317284313078032753239060408080563510439722755036167616637198819196781422040468547791602478080565594178700465767368826897334819439196642927287831930283413818375638971112944186570742215544589362281929898919156776141025077404122520937497373356516644607354790899363107224579187347675475064572228740833333414689440983675328931142556110804326957713438642146427629232298139500146383896230503699993650265688860035073625516983966918100712544146306197304791802357923921320801939118869602127693191511453271417073930333687573957105751980173032990693321027543370229335061081970972402789346595833540256357139109986773592272280592510614350453783823892044906826339873509906028074982571763025393126688942352163422344854123340547718304251402750017053442062384291723911652626489317593184791768397685417845791600770299845006855280424890227097782418721595380893823095701483347581968440285408026370679533723023019501907089937042051623815044558819155656541528517927044748834503076961565575462504292827844934116039045660490946093082859168860922674100969989957910050873180899120533545658317829744887994047497575340526621256408025642806066150989988902827879589111572147089567362801464950614141294693929157727930469445424931197647200088476398737346174552375603187033153923769811733095913314591232151072528973603068302737377298233601171893188187748552273442764444820586617509316861683331252627780492694251397419785541616052478959771502901090072126722978617058075900492009372644175024904739102713995277915951861055020433835796866924052122517095330164925956363977534709599989515064021804011049091055562412946633630019016176106415501336065292467056554781874550974494026493451660150800575916505655480458751774281217462845856416196288473499224673822456589901775075340747961025601016782120471414282748846580455482336388166684048333949222008357842548584522318818187790618002504773630704236657562542326311614800069864315431439169536453049477919344480254000955239107275968662219138325310490872525718371803263977096899566597569359539053363438047925602686780747861928268972356687234143162451671982603112582343197057247664589431320912392705893592262796458006062534704271538452866945290375274265103275979324153543164303623248209241265035830271118477041364652767164535682292736663180708042138891207511880734837003880255061453902779509964462685798188259964632360765150217080803522421858916306522553823630887710867516907127215422321735477577638799241214029570887427106522036615636270405179460963770331475830205489716278458880089320738071291410038813443353767155584249690374299557482995951246447472731893513548289104186467115108392847991792915871306499073077996117493262890063109100132314342068221737769078729573590591158022561631939682295935505965372121501392438728378080454027073722781471078502130133833097951567063281237640094065743068015055447269124578942283596402189435164233914928929417467547231606727987888567773317349891674734173964457545911223100207056683869990066201114254459571072447477187260291197887156079762563256927451481393330424071191510569520742001516799117385867260379867985328463767096211664315087327753342085352540357270227801386360758858580870924316994641277967322011042835372487161460239197014276880314654794470200854137786943954567413266058114804205114007977586872547610176687813536328436161642646984739184560269722987119045673300576963536225139560195487827870118699107950658183144674910632491086631005714553252135286009527422195324914400332662298489445098207497608796218076974353465524629707680671774951586193020051945032198199064878218412666733663337666584270265681058534331311531365384043903995406884683441902121749726049779284012387881783160162814944183544175723127879799316026303196163579167309233587693519457000518535489886796589543700881464121424507134002842336076149465322303098845411690831126374544055491879014804966881009801799884531329189264106523562205979815604611351327326576090681761295149616814341309774786502157177041593939684240908656770948934939888642109976480705038742482644643930845659734363131192467321236635538320514003822796906750982623922013808641033827248471623817970750657385983265139990905586937772521903232369573970510224051304529499680259178900794666955710467546459843375220691488688189257717459362068201924690250044871390878148539290683365354445130463011637388952262844433529581316161233066340613484525051914215281936384054757213883152295826973886903875085745655803370133594159435884411596066708274641870866924451136424816745254808308115137032980032830569206666736810512866883470848641342194552143220091486378763111001064694388736710961184569796319003696515188911878755095671263266355630735147006603414227986164704463698350482717833109200354363980659529994467924104188950286819552543966986267294727744622548859362258840594287326258845279931203501673803760631624282392297728488577591613351953141725444181786204340343840570002244263754777531389773417682616007498089203721751073441138058133641724230088340151692310961868377244164975602626141729042293561747383429393379690255665680815086353083861879846516306958088558267449539686595824627059536102778444521234782066221974085422247093364771041391400699689269487055579563982870237350729601779640434803025195006816668147730076395230385568312280437155741385591878879597190799938236387109752208466456722053145947794423112785754344210904478848967866778250162844814253552360497145815957103575040914157399646114554558478143493669171040392756123650948579635623263830166710700852578983547746302741902433730340988550232799469869992270746710442579337287011248271937829191027957065177463953702197608725131191272842658160129064973291507237229295641444846219797759291198958820123781446216331432533469787499577868175254152690764649876351564415193139219438355634749979100090894999911400101328235408313406815917709586983956771712883966788109756498900350306390359479823303728582836709081744597691949598226589939474237833693945313697965211926861763494951010125844287515494312306060863720563252869395235193840225711420002868979642382488894482777852961499251981301417362682273693203973032327392329778090576631240286405483257166204860760359304939568256531547172697349238176073114292892654303844704694056069300113195320888612053395569104559786544750972803164863316100972083352319175319015067521895992486644747670214470833662648146007897175688302305394386540760485253282817333112804017393463692460968476246880081839062955269576255831386375885513421528679791707751856020208436673479747854474955301453223192691406662158867960037080171626698719929876161113997630689619302099717896569641902579946967774938423404616297165620323080894131192092392824886765966803466024625039998299581854698221208714974120454904444278694140706178939211882120841106654503506530507213636632642461656666642352616184031905441653601662359006859624061421356553617347217499483461141882794873704590382916101788818874448095163531697566224111993658604958797321963221480925559626470852423987842665422179183502535071334420544237039426559158397912708231379166867899982477295103824114179985292875210191569101458859851384943249948568815659854091483247775627680651839305232502935002050231391680057071252894233301231382740809329952775363617935332190728010300881360502852350265565037902292604917116216316377845658399177190814217761339699656722251685463879872200643466007009420202077447579316096228134663158865156439837627644187223094651829092760701817453890714266829627320012317146327116845333122784884161915916099723568982695227877767448460259875354724009581499778313479995085542860949131945950234203984932786833732598658816707472536404473592351760012634995677058391664275396840942806732636958924821106739354453327233907300624769475428091711712236689465852921048575527130583241783013803579996233013952328418116859622749162496426427945614366817432770326159577507112548812766846110194346963810677000123183658372463595241030647395412055924479469885192561432417290344347483425496690609395765051937864754482172500719775483244226071336668479543408087865469459695737137153475164649954382936963367201820711892172514569079638210473917622196144879848698563037344134431935222984537713313591956171303591464013627833621047163087066440941769675316844533363129674724098872313755777084948172449644197949701940534603852580824316530697830480021113310871050704987858543107844311937610113024473140871232299142455145281391948480340868409976159756022665417544560567598685653761604741689051859199329355555488063068960648375550803270800399283686160895591815375813457506792138788140698222636668747367811522564737043876394760089742681491021223870582870008492245120039171643298252619187093014793739574541950863115630888525453555190939280988477119252012305994987672866131904621898318065406617479009906609688491672811740280376599660165402108883414829204918728315781371685172761340780680205316103803235180669499896398568775299832057653018216961251806152534412078449730551884613883346599645197131465848801437982376425781330373218628626115220309775316562711732185467771582189906194418738110550569030646352784921605107670314256177607583051329118994404667778426817887632701184918436248775219050201570351008534872808231054745292264271803574545228543775295428064158198626568252135678203795695394935120622471326957919270124824877298955969888292049377179308372359731074024074415003878728019804932473483383121185903442128873614698309773654533180731828333132132458516683602050025690570014823962866991890235841323001544910745480247325524484981256209222823160219319328747395120010233018747686312390726838661414158868330654162981824445224593212703048308706068744337775640456329218311448264680483105558464098935264516042961479575536798136497334420699410803417465805606195637773426947556739362457803935064502993337375565105459086008170110000724826839091218762043694554739538220865381498821934377814257660406781781280448153629710871534566984923936413105148176885238225182856347041286206914700319286204943940131446665664182181163616766647316461307809116508263465018722853697138534125549185988603331735909426192532606295213467850737828396397011555117257100511057401490348142941783911931467417632903447020767055694339735080004050160821828394246910611210685277133799063433242323126999295488002416262560456881696601008388363313433599518757566206467139380159456349599495618993893825858879373682655888617453695610172075219177053785814166762553741740825089072256874010622378964908138963313396654236559300734133595055459544812999430318465792968283933631492546856109671525722587809533123395559410294588795601650865310560391952760790452919185226813904036422076894281157230313468859022444914874188871732178965744020983755901043812447565283246942948918195586612095859703379898447369775635645227708757711534358056524491659620612751725482770914275046439872866000113268383969860642334907359466270237226218387213984251690104734413702232516601542940075050074251298675396066393458958802120372723600587856570462269937566418995180127177833270306819855433115493297375010321205472818219030320575412345221110707003322771703713257721515857985109253806233596747608988972280019124355209624620168275926665364723841400225392032796720855908709102127078574414826918111639317121278560294649709769774769435534194991516140261219492631169738036611836650305347676623932443780843637696230523455394318161284049908291738540557186769168427193195292253392293967220093302337007669902844809831955380421558018711223532853278876935157253240726404137954667892388981272732602786797396341134513162218570282135278044694289343704013835432938474023080170878212724889053632260324602435691694139987961238551323624172401144761699882221221978003152973657322293018914043605287159353116504870130158854682499980286079920080427142323708672848600473126303775964183601195051998288330770296396472546630236684475726237953166397076897560073644410073184013739473476344684781496347833648278244542775030762884895785096877265658140967843778254614908755597757068227803664065194422037066747046732432326867795742221368326105966233323574320033131773517549175850714786422605806157867994432373271410367018460057208406489519564068618742215853373274488633713321303143096309343899114959106461319894631898513979510249923792543022210520787203004624498039516108808950477420261584229865717326523944692139742249144026227769370982772030950132227247521603371228941511780944260210530360144992974749002082103161925163352371435720463814257483800339260614680878767553611383375809755217721837400012962667987560413635358556632539555917840316368529044023258478600342486635977857195803660619566319887891960306183154207751946765847195189860465915098435082074680633853634401261189434187209973467989908603375953932394378056786360208127342134459950989878843091996231677771875799666358176860500445385958638898852505601098460003026404370499848495452141410462747927917649913721267881075077166997489201881514515672090128943197244564323336904618163564619987330203417978269122534995028777188233263191872740684461786237533549472735760756586982496824168023370138554907851543499604919987830300728278111906868652190978635049261776171426601488902192062550193396908695555734481383664678009486566370435674239107028926536742058926617029781035782039921064927027414493153462092197691448709756947396908643368540043657460231350215532491267762879283023860991786604423617556258353843165588980597920250356822235406212980293263675863561754349998817622892604453269895337364608088688680271363110381137912753691167993753178002613472310488115125600354145221838512731512101406951409159786207373868397760764515567969033985379328017851574679647154191695056495075443378932296075982134187960397619013536024255405184542485560846161003798805039057376818214802491856087397189166263251216607393835661697650835790213966687181032946068317060070415670455300712357982897443570918675518761892016190584075255610933620647425883645993972566069651100510501862780348134143236074979965097796138338204835555160079514850519498554990479880937267955480410649199035024865708413985280680040966629508642520589884778303309641361721147738009961755398049526375692852504656128595923668290898354188711202256245928475180262214142087935489720955687320922710859477306736978612040925519065807328134579098333080704160319569418033317155228177596823686942980571196992699210694289233627397681822529888928076856436277351973809658133354477152842827399518377913064206688407783130559489077853207563497136695579254583049180990617998566745559445877076004397749082033470306116589127327326927254266983402658472399666750519997708275490310862232003514639901358311195294785893073742114380415385041214112339119513921462049752973185839447018387919269855549945884937134873407071236508330732037927050728152185154463207360738023122974058365108263828730093089646113768156411145671279643930766562017555270629912869632594472690369523241523995679845138208470388160687944877505283177228726589962300371179679200812199639948438396514376853477138763355638136882405795672430734921539609082349176792005923417292885086226646015493436771193265394990384204096950975315683807353710868197384576555189652279946273081187608987969507431529976569117253071240023390693385718800830426633385189407125997400236762243831801243830087241652011558202565980949562155146109100019052738280186945638915307801124519373623506873535562568616905349796423615028714804543156884734928809925282532127155192932296593518773256117231664653879007738521935130126986538285859151149353893780577480611380723731485823601427794204118991590115076568966717762637645185468400058780488576145853729691932487980296025977321547314388782966531445032106497231188942159619859185769411237962449845314510397903364195191336077216908796961427317377692242760283687351811924260753827938249977293285240387322420512975901744374306062941427534824730596688741020763050924734667813770386332836024550924872437137093431349819368302301393082526779753987582150121299806877736286691800665505568134075011800094117857342522336320178021078252492310395762931570747711673863368176985747850124712693602163402776899054580566850230762645263351527564863612313781259791671726991929852476331398060606532500446928781239859444299826971450668461142415933070622669489498730173041174810012219896936174694218792661443637378431170471785266625877857669019843072175027991670749548928279783079985520695805693657539423642427212218880566320365102804572267284244559629111890314219712716094321474971974483086310583578094336441666334421330975880496170048004146736533958187366419625005026149282932152830812329751080350697115282306891154010196864253001641613062946886727400592145586945597357291047831584500952799553054065075651732410467467337297982341635231917082217504915404848745296741095831622709685609128955320940599191757960495163463828382518400006420263086113549860032659348070479831971078902205196159259182651702494419921424836906289119600133265400110236325314024614486910857136817000656497278701120656030364951814184348531775880835940120652840286153437657445588175075663797495118780040303300153433276569922095035698088650057546127756432522771778479970493930483458055305625070173108516446155738257601598837183011646594990498590224000746720453969984569356736459554502539164926002396803794237380730932440591317578754397505563651019382791558698299905019669599011703354588955781433464230876540795304553993085743499379373905418212344930776654120119129551948215457688545507446798799547721505560631027946084743871233061918104282956943297720435036995925043071430923082237801417972361577691640729660278055888772310883741524582971774457457683387435031005284203810893940506420192163467921515339667948857424364198994299971221563660370423223558761014389454247757796457839079989972496106825451583692077055520471817533974072403769392879105458343984827810123038085591531084184708840325106092910988143944315352134078254969721388188720082304225314384295664439412290206883013469418861751934867323325075625717253772880527823248036299091433997570335930930506734511540462459945940466584847871659429157004829928821854499560526871982915610080364675349826307548987888785621185395109672862151790681508958975516555985370550091002531393607793644250118442391071908187749499986559280530181656398903875272221243609138996488062574664315818108988792828085542650184149525972166109467144630579658526159061258685378886600683020421777552853903957315016649272252542764415508136172243628059635716921373693940791141314216182201859644753797481208815828671790980518941477012669050087446983104615261678738634279339896395521499072344645352431229827651824046467514189308161818767931332021127959256467825059734150513473783439669019630984735670356178153013109410399735586984644187970832742877957866441180004443631055003425207548494612826867990690285482247315617418774369638724791944535644209847422668089819703122514654790215104715682689618270556740204264948176390018731603012971865950593319112591816125151336625947682594369961503528158108209090614343977321885956782867439138855666385718106035054045288779235266162985547238349356897617465917414685255925881513074909372372121519083636451143874770814669021750692951313751168404513648678136282976892862840465175933797661885226401430014060273738695768539993228356175712858143526124112484077835236026590702269863665005754091588091878947213380968360191559653142630983187605607771208023413653086284604289688762382498502575763446151220970439015759610685554493587996765105464315544527401203236728277236054307247016077752614661089321387397467305631245251195704872775549479269337880208511885291768272994158730822205519239685301356283355668836145543099019220901791990687866194966084819924746968940820856407395813229726032055972840133765034534482853242964585275380493759095332778160136377893454543781314613616870544378216601465683959146855923356720940107662051967921397499500671029202462055074839914225479966581664051031337741657633960364320161181343722115930398433523331514310385804105068882157014097039975882177776072203791114906990256968189536101148010359019115539997393087288021998353147621955281524719706261298005478860502214812434101553537153497744404309072834480990939247448974489783970924600177097751498856337042242919020296625410235368499670385239879015951719431502227589513245653493694704209571302094975706621006316275193268822625854808746980215017325296711572838870813235580992098728476161642058229137846088038869762483526375436336811801171974690611809196633747445270346315281851359170242833789696290408030628439617150130719068258539950587607432712592457215961074756102162445361722882758498054689906108866120987212012091313025614001286995365401256127017154175003565966860755598613667054671731338333143880604427701229617774149394591986791706529539356456841664178482990660557053547207632551662233665764252842431883032860626089171341276537257702096839399437969045034520340407170562991958723515646600848200677836940883981104750185836545314907917598293351830053600833009011250970772816582120178542503986960192738466034183900883585937908336254918385679510875698377851942912671890730163924858248122466672822851422347066616813267575854364645318007972267065934157352852737090518412654401445070127733359060714342540985577155485546314987463681511601909709898551793663206560777199631634321906109613816056113512431358381453530679729659744479345604517842831199071579129469287037875126270642736737274890209495178328392059040654283143542548828250365319330460930633117141950370800412334639134069031663397758564618759802565430360946884289677312004933973441759080756496819792359787154647224520066620448539873409600849377499602280709458191966453857696274173720943942783520576102946984123986381151306252257794899052443696564597567729413290131499829374075777719436923096607667288454999220360295070860636817478867788095651953505222229093704693292422702899466232569709264475456272451591225175356638713415102611182044507456533621899316445411194252253742071513126927421902552403515835621507957049095224002578668223305443863148409273149404283335997690465460295227157891798650394404463659332450970974462370377050755067282207219969812268805686658005270587392822068488568990433838965710797193223688467865161833583738593914296559195669067497368524216306902474813794257625813195872760851058822502403964663791545982569256315295544593236798071749973742355021376468567511423726835940647063082541367646088321873343699668920998768507700822648204919646525461651465260497713638845975496554467008387851929993270469989227796306110456530792466518478573747905340113157333931760887421075893084166608819788950541936255015308168461882494793177141411965028383679263829327598816455602369286559146036006335737648869663430347579388921128264056319069421022581217714831215857665696287647633987775514540936050542417470969570178186283488354470929925638369662294430787481735568086511325099114035692562201163877090070021752974641296790553001309462106754456402892917458176468828093082075920036966874934605591407216736348738495396219850120683042167978561375154460413078900233304831489281430910682908023269352684502803329513725680329892636673393111634606706450114547530955187978579509096659466346930852186468030368916211448958941822484645009246631142209312653089645427522085074835900223967975541937674725070399015655882685547127375373333748707651792693755483812031580552474563392544133348273869731446176354846742613982645162244397998528897698060013573363442690350839057484705378838921583340735824450206818701334199302795035695006874217577104303550207683801586631734295848355911026197205376096548481777180875536754626028931509460367864336921093467079430500300448815943751042912720844168146644240241076378864849716640125588434758249676881792486674330548573959355431656710804699404429574481972022006073758210623365890720285941757461466638008271239189166122373802840104228160186173422440070106542719233773240277493609398402484899854706838919727778383807997682764255823453950364640417921036591758408912754879901064954146279649983815735578918409445437778968252514123878922043364233338860938807528992624693652401051629097561379180364254995658705108176835357110308175423472594504903823813851777693507515991895207375416113970748221362812780005983160946687442214450117264592318943712425222013663979773889948420140370302485429860564206401542525757749077623532960858423009289999514613631396842148368117785712476484144730472166042859541216558983927592853837482191706700877492562514760852304080191612014388967422577057000057636304071832607011844687621522238263714694942138879826862092627328023890185941025180484772739476869098919862567619076719847565874083930102495557211458769108645051158563270538281209016899081133927398492494845683603470657478389343263458225234769518138338499207588964518110647530596549025292165763931315150113802878671156112516731062134649937041564988013889789380280730838703887149813688067574178309296274618303258502412850485987201743078806192283790310960505555627279986501361564140818769879171544364933551960383913307648933340696480729373933953533318963891303631006002971299447408662860888371528048536566620409622383047048890630999974837030515724593231888954021793668577670392714256119600671600630385193996920417903055643385238277101226821432268861683562826085538599322535315460265305662431429784426826053913792503773181555251557102493158805450922219393011972996240342581074316173665683734318350134055672622697637764097741311178142311925857647157922122160303699037226487151937447574685148439447295908046807761272018153602185641435533731849220559795144895920885233916946800395694257091739960389307629924586950877777766169136286583999415309542736078039185069888945223617056622275223232572831589006129586821383806625561176162738377193563362969723864989283333813096474397524883086823333764154138017229519877681747915887794793263938957511262804024115233441811851914387619050549973527478808195378805171968884000655164601573766388116870548757637515335476709839738325751942286390068495938167559832623991655531030764065060629890166614449500576655926506057385864815604107028312499494539854077424741779208701460704034060842102165151003706107085939797682948755271041825356873505162455828551607954840568621288704508359541117161916747572700185516232661064374220374425483453520862598453315357210295092068285743030438467510038393363881072430206890159648391584832296729870300899272550625243104833030182468846449098951167444082310015618836080310696324422690545084911866039796904349775454396184919679516772938989957554738698623373484443276631035149838599212652179814563724400427021108542068507164679491038270478398258224318638836588060111045921722550095206622859062861052065945933095002988277239969200358218890057204735988454112800620521609393964220252147470081310028615605919945959871213203106420266472677002370180496602563621892179655109931296920815145331850713349762608951595282802075665130777571781404672221782073081339152896682953917175188168621250375118531059626508748101555267172657089370192643952980136456625846382326472783740145141227443598642467920378869064577721622521225592043535694377216470122339079556783629628323967273308498424325540245589750455651903464229769574703685591343305777641674160892598626995207793718674270630023533633041407298402974459444978359070748945177186356831892974362174822220966177145477483464469064943433550741566006699609165081511771154932762280156750367056142834711809345913012712375651107470169858601226180957997141534904826785114089051583525558764407514453455041433341946949650094798947391958379181449115329440336250748992491361182303868259787241968172602027718194329212027408923102992869996987902050440051934701313401687164639491345700929992850825719458197461439074725913167841740347499891673874250958329155127485032914067951856667600722013266455657268733423052448857258560006310653141312449398075607578204041756475437814854931529151770568416440856956990439061498051022590208425204220071580750640388774291307228335682199850326519269216173562067228472012423120244961499235330468711460858452437909513746030923408922583940592051350085669568007079350739305193645270965392652369731758657624757331863911799828687614255072509232312871041777261153228722101494095273882688982386121718135312632768593425029716307494698240316413777201818769853503649455792916130507938258976049416708151630363849414220986947323055663492866967568871877643112257800178322241292201952465372277668688310599814857354660918347834758529023743711943418420169454511854930536544635029997243495377702710109861852793835948076957908578268789259993099450208178446967317303339539315258019704293611148577038721768628809776708711673436290199631648968427706708004865539853242818161565246491087277537086949347000988183720784520991007744515695376436761495528308206744754552289635888238390522226190897586646999667571587116448398327195657091261751368401692608468687385014827857821845881194778940450036747640470987992868502238478248353113303835425572714107695405677377369739412922506886764036643303765988320983327841308941735548946303245553208791765053567522427163483843879514624844942959371970162170681326426003957954290470131002004696324740523607729569094742517730506269953520664801963676502564663254289295861969798686089455755615698436862140813367603272622452612195841763381292479208556145341757254100151409567330804425700129412642738013898235946957604675653066213559725763456716657776958050019619030353944056894046269501668196711779327783464672016342048366776173378679408596095718324762549653846267596233462689594161927827867892788136240215397341244780254484495394002014673274792097247498839654016655071619015326671131882987365377025829489407299548760495711284923591300155869067563960587783525681145206883898045946960093352137710700609596844813560631207202252818994324068208294114129784375615301588055653502516825981251168979200107789802863746766194062901377506139413457754249603875755982566212614358838150348769030106040040924684267204461717330720404281310845690884349607052960629558472225127576525694255089406978732218345243026307792974338169694999855668333919859225854977310801445321326031636958413084875467067992345532413656531211763345829716411947257541410148659042078666028936144123877257158602656001622272025225688792255412667873409668440039848116195478934420312293146677179983542081492535919132627793943275226704983525374554962579678737831354757554395895008678322992265387385700263664612334829056814164880586552807139971142121963254826944446706654628468931206295481543654235046697999364457053462743145914296019604310607925065294253903287487036440676131040932638650187534256319196099684605635022404774612166380374796069812388176977940293198599783604509325186041003306159768484292828556971343495754903602240421283318438928000590405640242487548520334273403635061780390434171077940482925417995047312500613385334437471430512968623165246974505003340336112145498128834174192972340187527534210522673021954418948762854424786705427075406960627978525233112772196874065150614025143725407448319347273668366715868934647857374020277019425841021336365716374520163016997945380094437797817444558852706356214580067845918159066326562656077229227689884430518971596788403491920627965564964397574483075065376922177933473443466462358716594316388340883166542609832689935402578204120678110060312385082850532496090989689473906795547615639997522716106773128669595109397013710638278902563734531028988606357517610160942127376827982485664873942171589358201646836485113561089561382511175283708980176991677532761727723587242289642173264824059894568462421242635665968123340588486143396131044007587426247223202259201432382598790012105788769370782811332750395078460328477867043036135087309738795096543524336710104648771560081087982130352583941193033351519266196228039916985595244878573466316108409121989225770588044941923726403496106547685395982607704231935537887541821786456194571607132033970086066996498947290400367936104778239849124365719451131295698265434904568733883470882072207479951695126019413768883971222830865890579065449434410297097636881263502822063326065455981717890351730296617920795998145322113983518452843996176168907775757599227182964188253787664050766151528525022557690644042644210263201044788655155736697412448449476634708767135666696119752417202107468069333616481359623372836271444859195416771311069408856115575507817392065825646042733965639744821261710700740137582509320620846104589231180156247597406539565102749176702322603306013792115827283629495841387119602674996805498571493910869687414200196960084642130708240190944197993441669775764665606199055698774067214293026352047240283581849552983375846645324270308689094124816052964988881215456443810621670363009152225690135821265532479582158264400789461397721693562419267187139312128661525002238515882208082214752246801391227867566464958362939843582580629855121487783582169938248760725954259982108432542298737945640434710909884600093002604710578902252050825340813157009645482424279638942714212969613021478779904957607981087491737981437177418424917237358206003561667819210257473008211836246554338361770939780314073675183579737743394798073585839910209336685686930376430758812340347188833409657138505760739328997675964563815528194052389313515822583592724974015016870501939418848412440882236109480156149420818402168912418367635697943289957603312006398796235056130417725014782926985607695846868933731886919242489040483391915504609903117733817368223281208540802708956512214242307275075303469305131214512055183562497403551353933013382073865227387345684529978830083094300771104835945753499991160198617156201002672073050701159582786396020898834994957823477009572813487565636862053830266422115005255896510063767178250648678767733374155216541944022955350055727049289470301020792348129433033056927752829983179261387287526231079968825424814033423962046208020865000058806236410345150511844274045222898577476734726960813781955167418042467596972187980916649809552025666652987131315671088713936557377715779790291655511310697466994174644508875541564323739089545721401245682997317725993512093451907513273317267643288171583524006750361358154754203049698481950747484701947769356885875342099710594963775072657444281636922474696188071444353548483546970536243492822540988930729878729744464931276385077140346761736251874532731198333175298800681855627561299897100430613184446881146004540546008702008484136702784200418556193018182090083301219614925257711122084479229793814016228766200150348225724376918149338287909544572504133339543115067936010603799094948704668740886830623543235797187225841944200928894468793361353668404902168695217807826749765127965235151142762531747956016824357546301839290325895610380433193635473684357742221322813894016165856318480734332931583403433167696983331299191239299378854404223660035481630953254267323419995165393175287279910224071719212762783786060322506413270540504470603781445230271333191511345039166226067803945878873128404823727969292211214055918454285550410077787060189417222427991825061266563052941982333939572294517266469820076821407951375866370919238418085507997358769215146370736788409731775108116963880119124260046875899570963871200206534139159971882073704452477394061435221932777943716395488175284119151331842159994909049209559992024410109597640107821485361698148920837781247610363833485481488574293889177318960712521530585255609883692426705658182286013329996420100282731681180960956593146881593098069391834399769447018028333308963440144367918612329804808421043627646298935202608064203572502551855560943770148093029371171429036042571792637564687336153472919684919320564827130451145596166375455948405064278624665222094197325013254746188959954201389161357352934474018158766773387885167989265119791120304737154782049787806017321090568541157751083455002085854111368583824771880586749997703736078566109472368339032212458428719712217292152571884710328039851109923074826046879753117869068195752010018359775246585560651877747482324973810535808768251174300136133647501263655708757240121347407713382865064767263757438339401015464507112575322260253390656292939759679249951853180234248842072068006414247204589989083142772638401114486776224106125665784493938733512389235100342905369248542000403976789197987311403943605723741283269546612190278328981776005980821431582687393558017804962866135058043615004739375426269032924027706093813819961356548254204609651537227917938522998096526788699990456336473383648740834705335225360352319223097618665516076306256985459822170017636369224302308216095415897085828520437638129959929249651380223267749425760153660335711495691607286034136772242580362721417302727866924018232347433946947846203960247852992314838885138535625771764098188303198590061822867129985832408552066200460201530320870394579886737560565879445297419334601927732204638409387478566405832477759210489303748821546910053905129708112471330952953963213539602915986695207809017471727372997826433440772552345089928778408380480968681309505656810739417975088673998750725761936214780121578199057003928722390622077632150469377481866208394079323471077333690741682750355209523225516887058287244889012758905422041347218672504386071843878881773044946562198548162224167814816942394226184173695602545117057489179176320931225513867091474231254488952223610628336980852396545053684983343664390267921595036751148589962407633539913595766416630171584015173472070209655288636280830296626778435009150023554819737957562866396389040147387979225331404546885565631188326035819317019003330232889992389839941552797138869594882605988726850895940047913965366447325472622877700060080435751105921538120561491804500136084269460850877751482821991664439770453429655047293334621548274870646127176656210953620042424026521534933666112017452038029808375228414128971930861656706211550591226657598253135438518449621591966594245951435729723591673244452097870816561358358437941651889322409828338610803116898044298496101117388969913232530038919951711893659893027582550599819659543522059158274946562581427431602347667022352113930428817387397888826704527282307415088060138479633082759902427050291178963582975086264949386006114464468948837992532300349399228610362612502672950978534181903132451980577342178363029087458982712299094534277479056194884677912178849953728211889816293285854562143758034174296276302419385844245491067399772465972000829536867597872083950079550421057317112650336359073411745892279642210837874602660984539868327851033332259910409575927550220927951108906151435646601286445829895057855554481292364528333253074404169960230604530672241983681121905613710519482756862586587338254657715049997435439609785682698929831907290088227465699945561682644566472449859992636736751392173018695619216064826042967699909559857287584118302929750871711046706005289848206531537870660908531771240805173954359734982498372371149260072138080325266489626529441504958214586857170749656064713053105937217069847581123187503248264466031840784381318781723780775733075270476312140351750461535381150730764276930597472023106297462608615900665930016140652011354045957926784769852255623946936584727961205545631382377822156072905415872699696869367605300396046784909951048330055184841343547978214251726340775108510336240336380375603656533298197395566677768505831298746953562893149869874585741588479709367460881662649862618681135448359342308870856013271308198802075461865464262750324631005126938079858913527695541403527248836580153725900043414430124937307887586635745191766779122274917498775756792447710687369943851018876305558143808502784300437961306652189494850106319551026440318989651981327205779300696189905760011720437546230350851145772060080964130573420062149391251197278269490720688681184141622222964833772229836008441178804933877274398282963000701796672318934732705561753107900966656178535230747480466895746679263695709712964536797577920450478459422759019845213105974506647721302364810546466819731044189418517726911987415987223691194912975388573366089447477611628679414939171792174200010860743507257760250171359418424906941317691025911798425163199697849672589085311395936824776211907762614796959071529403200606936425539779438762279460850591596087269809606575378680311233316790172001949520337156207324057626077620990427332002698631835594460397368463600792488026064789840606617003639731731694219337134814174280633883249960200775088839754953240490593857737678326179500362552528169167598440922956882515555737314615532060307541866990497359505328227589969352951784701848958985628966442744393072879300802861899331039218378903344784109826896844317898274678494036161221238316580487251792618008889759540514589895252227267502238441132333853926242746896854386250592179611433668776137107810683802836179511395813325254058813040799459269433649382869636580463752621300278184301891925289862118605360395209468092649811155614613003172894991706971573437823040914265461837062423521046380299331498502640538338801137124052072306188941810956424434289727159479971844890484521227425647413959183210231651642054008120242277388789363934657635336377845760176679025420417275747460520922015406516866917668797201893862265926671287499439832698717970907986768607753154654287980403581236311735848233022799682997907883134358376676025784082812780391938841457132279907375067365045738620772410875429966438474747373285451531425779467283017001539037569031909181143549310076309058750306333267792128758076287717053669665910596838293417005745182502997332853179885828788001660429073396481000057140421598156781573831316467633939792075517206135665742991411485794857596481999991207520120381349993152023707316292216142863846217347889267261033454220759628775468776180423511021017210950275004892971998465329693989699151777735867079924058008198078074429438445404247485024256599116720748709128529964300072183337735546714671065560096917868482419277160818032804939830743462772648979036592527858129258473063470843418477376518533372930523375796316819940736855730630879842858215295039609329472381692132819997787403409649873974099716195937488199851825712660799886330646827754555295033004252380377911041300899960344164180576221156116404720879780274977972040785088276043380988548014591793668324013319733202490985213162758113005209665968632414953424385380093352470888144965477154369059799369628746125799678107750942514794253034787577908459566626120795197310332186626022528360117011133860062540679005130614536197438291973246095343332091189336370912924083500749054114199798735388816367729489303339355818134778747475678256612695544742386665280822334855874622382309193415293344932324318234687190413809280459473768119558444617470174316697522201207529400654176136720936775045141941792205818824418824872593949254229738994680255685316248014833945376728203053272119367060968519860382448691473640402878756086881076973115447910290803739950481921840404305387540174474192940825287008437869312323283076070742524365422453454259472967835063866985315310404747585283150167391551730488092826356632970323019922346482591541515886944695989534151631355643130571273646337306033932728641408357123825185757481818950360722389424924433903581398493154898204174437396371889106917450845530918149925695828792351201656799982477220879222534274815489504122550588282103340361166703520347967685924568215090743300271871907820915112306055136359697223596886016402766910038869781550803374715660299346290791747011476700642398788023446821109649022933354667127532790316561669038401196459564561037486181373547975185485629618836665166128877608073500315327587074212066965024446583365145273393636631067837299601704540719071981500078990609458351631900427477277260075634917182848953723421024274805185705654585586755518980630548891351074995994891070140646097683751171877665014202628210799502833577463340225969703860670704793587366348594029116229081116356337615434871159502902999781331363228659704461352108756544197999075856428963670495786147011982529677871523108782531937010597794442804761919645638647639870172628331091621988544193331487265399648372312552904705708334743495827078858636127234903848698780049390445411851582121424575190914959358549837271726254562645493389061009437735765091765393150152814494534711047280718373228863693575091823743904644839341102621222111008836978536802812318992081546052890381953041073756334886839633194742294845920313309014774820816650740861334974495979018253641609104488787885059074226638060708057950053074616268258393907009785357555232687171682060227689694661096129433445360419058688137903353085805993670096365132261691595225712687859401708446146634840385780497057774853237051773259920769435557167452235220936306952346872625236256226665211102890498738706041787973890395217959477495626446971764008032025713322094772453243256703579805564153910547528477780943242596713044692318608576640961555855373390592712663008888989652298179788784636980398809605132248227024649097871336331692151814609458498039608918486430582551341439600226416134382838222139056205502926772095766438692338724754309524438939358224729539236869847708514047770686859772502149936208923551560954071580319709144304896445868894546566503916869652956408457235574225096411876408133168472615995110997925458503525605015339787269856292558745098203411939171227378606129250947840912801429896018805461996125108581816418348333296938239360921311345266898672220958006265385687277382099579443584580099009230139395866096263650871405913700548845820351584802336106300777114902399426533270501760187977790924058813396586978149415164074921885127609452390503274501127538844787086059732901063076395548800573950776570367434517348172293490222939461950950333499483244376189919585543553434725149858856733825835439177341101179818342499528769631369284437467309485377476483695277985185005614808195051381798303081113432487933361977826130977772030663338003609109510129350365132922279100652318686170862333241084302089319775368561834536312512727483552066944784202191373810320429725229861579765158399955712975968306120260560609867406651181408100956300995693662580737191942601846694769911232424487833512998074169040043615771559579706277492815132319254130942663907776893924234193337374269080627482214742373199521829813337200409992323364242331150763489716089338752827272279256496580491257309922711253885289409223916756410074372792949901278051570030972664214737221503681956637785004616499310652230116887294022500700238650813338155848385861793974628801041016954979180259062558859383296242683998564775679976828451663340064850731608099483578745785619046974934103096607975903794665192064328261528314033176381494108451332673612542199099238491025032550097592588229856440323526606552005715547042895344503395919904718708777077659486101723527481289442427241529740068742014422907179595428915034493760817786054578407166276784158928424410329544907061151577120796935625685541710369138032031255951716861884842260826853290756217321011355251670046968703945559031080850014375439578697708692845273639817864825618040597304733725064788099587716148948844234576523865580099360294211946717102120173471843304455043009196626966234228157182876788572127028960947701182699428373667314003572604490264227951946941838033080685410841227803435951745441341929467900858772832362127373097210282733071663269757247861828895235876942863063158503342294090898918664230307753218653002008042127801644473126975493914467005208078771917089920958949676337171424225652249938143936283078770027203385391428815877012628688657090339995846255333976672452533862753793588176213501414378983188488331825342975287654798955100934099606996570713784694193864189732963642282276674395388838124693885694137961045568856190138211635046695409889303130968366717495400785803871338590885535892449045754019715308913247815238397079559683934306479721293829445644261321043669506573832436234074907885132137883993459945590076852788752588654145591108691295650626551707546417624021980555265794067234747031545243248105809712232136432756857176786399108402278868965949197703631190737443542593905513279164081663116487905915238011558181369534055391838434586095358966687752057806370361057103647023305521883519235026236820106975447345285778539323873628218726817966881881630005864697987212029773443079034579608368018206580884982954104672985713873340374940296931638138586398782107680974160440976085104313571520372414048035422507579279235668446078843764671936233300172310655563002635983945722222181490336072876952204163074717053704404950201319556022782954787187168555900349730933137246917352585406617303138700705058772825673942278344180451644136751635120367117951975793021692089234427640936273609395561628095187425690148647953398536553331357108859192869310099383441815643483597163804986320630448463399828058352968044250200504375709495752540055619474098888021065673258165218805854236247168562346014744769870534755762742362328036408979428209352171012359281030611161049129255929916050807856156451683572585639506210666355023523175181326155932273703790707837055601486504348502258716874919605112998744551429277183914878547115154322430208760780453148452046899803875397318213059359042294695902682225469827507128111799807021902874978319163013683639470035323319282558957389926341996605759158857718591413471798480634033786004154365692642577671187292512149183161304343984228476382649362946609929115257493876662142737043149701058874944695577111372052614835569581592359131860914901283320418423840801090460339577823634356656774441413195631856569237083369063173083149300079297221196181364333237517359515323481404901644478249334615827041740950368778579703523443915205285753811388585667183533136158444640651578967298012302304362043423766481786062051814310038867773761060446999064900601976531008141652300572750860418912766397825319850990035660482978088926525921693523970749135662548701134889609196998288779521434529115352845410236784247121636537882041082514579257447194350122544324513857334423239861228409873306916599264306053652976503088039948450104129700941040077718143139115295853898633779105246955863417263814111276801589771022506763962173015414258259155713880179971516780025794986578684567067082281828692271164967615397645160952419697376458437826076776487296338935400431662822980845929392815919354802147018967029287746917412861398373769029721031782565939104411140122112355035553005514187369107156150171782554122203044978785971416712490463215238839316399724315666634877788636178976226803288119399336533911142101949729107698885395521704648442307132576007883428601947773258635490913514594162155288335239989731256739820889206162107271533478311837738486613426222075538223436671144877764170234314249121465208177163733031339594482749236403841778739882373894200025079956414325316742262429894047729982601855354360882759645148796250433862862400201635023572338054888457626981164508924354857665199788397450627360045464260861052920969987049287499927692402622365809018167173856681745984137404334807015923731797471108225585567757042571591686833814341403795690294152358686745579202386991613833069219919137903251862520911770172634658576708098186560477981438769772096682420957589429620537954589654582269636785886833600028184960027627931772634161187917232213511424200487190266596723172354169654199542102250632700517608835675822734332323665656027787093720741740434198337552741380355905585673485571358841851646305141168160239443927574295885165007295242010854316461081258020372655575584532936709065929144122067280104160688939715583004369192066676235269832129252415752099277641250085051159302436215895447657365291252655676992333723336774029095041748531054099022464853621653068934541826728704253384955379564097442655572759517707791244364755264971962003115120559562976422304213526234261502183318189382470042324911574345810473852720907843508511461865702908728675283925120393994668694542046944934203043113915216253325699337814235357745398195764236062665101778612995522833683706432021525874897857231572837762626636430705489922937858416511716829970545131468584279066096823312639942331504537552186833188440266166187800882202401014972180023778550026516526249947130228438227780936759219095836878062439445446604569809640128113439152235790538728004426649685009878987341345139431768685527210791639804442053796048702402471318268927682627894433345208778824277377594228708283773525518160382867339385584133517041402507528000528000425679436953521451566991144037617403588316242851590581344765812891742400451041825151950764604741582894920608771128796407685143316355028197060932566942678636699593380797250614421181746577304896265570817276201124586865682460668880414421042334482595295276847647890992331696492484108180652343659556690308797798069490911189351548887092357195768898381997591965421636079054116338877130393267726212042317177421944767748170678941263611740117360385445955189226382260160571135676242311619129407586709801362787315227311319747163267143418415868646671044837841488513261580868296053912137897215430150587380301555097403906269833977241490336330374520313151802904511607813347616245829747591571499302666161549379761910036758958100065997393987372637017314391812035815565204795676320197845525833564485270127537382290388744019000299360658618485913699886714839652707080271571692592898336646380826553791331375288849295119475704682662120758647067430186542875287850744825861345965057662532570919620399066686870627362356874392110106391692734302066134946693734204757326763238378080630218075374669718651578780767230187108329165438963989445756412493733467893401039217568183639019113258057895868932235407878043516855383981743802603724939734225534983894349546125191959957520288055493214739679158810012927336758969424520789829279309637907185212942002611870130827690174571431465101502135818104851795435368935868061305537856083513121851760154570296785175439641714992701598351294592067256337895779263545650478892905352347681247071231519910634240010450605548559040576417563176875183260004399490350372539633225323235300640028769817131206980950108194120627987826412032264702419749671936602362487873749690313861993099652086421148415051346335399205144425604552521704740765680189272439622620927282186316782100987870470382929256790132834692168286993769852261208760644141433362175313158607888075421658628809434777720545264676999758991340709676488954900146251519448560877835582289484519730177448832866140796439605720373218595575461180077863636640614934284585859624624522414498096421033804875446102990100203856662531392629923259368320577145982805279612852727210333570300830144193480034149006159930376743300334136219161091866073341249330732340998375748058850054872712985917937802358270210542690794176801573249815875830569836307559176917125712151286472239928334326384908130476949987017287360578164499106010739676420475933790415517221234261865347955963456034196790910118007580534901207609544589558663651702067530831261449462134115080089280627248508977764188794203021923968300608702597211713946098374252433958205261275363837161362281481255367725666369978418682813973621242801310511179899951183863736714934085880359627132241250033369054307195112314138721134976143052064242801288260774096333973330647154091087718958988133839727974329870146258790240773729591962721674856645437990586726255132205438229041388102068788010341516129926093052548367714639379153341208311435523587428635129987478039353936321118827785724346538251986862237105577915440322137331954365014593287264968108977717969562423559775207108144726592482388684584976689363517489111122630084748203132333057056893634781806097353101268649219179896814800050475472569431421351082946506984942484752283428798119295939710354461988014856604454777447305760173934164035131064631037759115640357073700527471956890160982265751453775319116189680636198577592475964464331653138972173383262687016444947919290232750997262554134846698026869126642105123502144227826973249487279348731069047272186081766574682482841707922982646986904486285893715584030172310647496824446090777641538070992334277797508153001356008018195385445669659828940630390516633239438592256620024813032502386996062981112504386886333934116832940247802442540463324807816144081700754823221524659561963451597152932282266738407843608841801366039363327258898501989901015299754810597778562880185965263950142045732784027247592439395242302190660681637370099825456317264088192449801931051718048714148797548944566671202235885074175161341216931735085225718149116880562536830052027076819763142214042472337856431213950003825648897923792637964158560578002090255602511229900997650289409408991237980837041426413901067207234672556387135156257352869237350377243295489561510461387350642923314927646180925847895861179951803680192208289528524295312933497789680581356463903030591532245268060041243284149806399296096979143820501967234231172777175180184960928643875296972982210759373420858961546863794562144999125218492157491627175549117576722351354036055866054398085980559890546897447878031748438972784147881103336925269708119730028255818654343072963618759319723346252322066410853693174248615600748755997222434690537094840103658689661512235091163905207574205746520989636989148542192989543724118052018328920684052611117312652571689070027177142093497576939225923990114495922660699862494317756287030770017767827374483767459331926475960837397256297863241412207248987858103755850844930603394224890000821668388254119184905171851915701600509161970840328549433482644570485511187871396223136211808029386838017156733226306368815978158018809359795918572243589675259838580206500152072772677489159654869374113981891337060139439855818631997707393814041317126770470742016479233996374174408345980955785085027874575725606428979522610716453625672495640945936636795977427048575727718665598284671407200137416602696953415582973248587298471620947657524665184128708399969967183129030282806869589742323740753793611502184750118003113439205129558129964626311096128107430237826106458543327024990806767927696599693777819344508356699399523893038868863941357204775819078009040159676331590844021291112748456649219241549943626337528869997499998299091381318026986469970200180326660877090061864502518357894645711975753142749955320744581227606048015682265220771993745464093189130706303976713860394655994511370305600018630370802660772839470451667302687706199556480973773104376142987610984276584780995414752700227911622480771691758549659111067877028028906109187440630839471693441887526142003498045520950932897212399666161128510352204495307190024443920382342127453952470564071008185777990271457356034083836572915434424391928072119143958632110782177583439964164771366433494938069540762042030202220109050028875387320476248101691883029535511433690518781175989558253971656434917171513096741512270492592699096339037923986721015954909497519361206161056836014113217368971483429216814558626193351506666265871563669552706200125319088843054178699212149543621258568782386171057425744609526280197314437307605234595002306485068869814391858316132194120550155558475646948672622484480271133508179808371633859891926655952598853513651168069312198220924580155341620555315378308718408255626904130298504446659287952896149657610669591134859959270795523920987948549588127753883877240143627734018610661618668474447353383953685966088883864477582213355796806233860171314696736752941466926309504666411233889558489704581130908485019420193401017361974358256744755094120543581492162710307285995582974401404087959467294230269858773179784914925048826346180473497344321555692243128244273216725122545801074647811274632076020478725337611215125177449912363011846256527070759079923143942173409649475501144016762794470447044235156821689910909214424448674818660038430872447571090896215767175324601303429058140350779508610624393724832533226803653856135167098115649564044567596840904388651169576809954450672861600192218063565243631349949910137585887229772581260844281624260442674795517591519209900125275811853446300287567502969886025173164737280454033558605838399541708794076032381390710245183787473098405919808921093019088972414618948354173264342441269703876865394010581640337399176962410933892833270304422734047366465860167088050273321984520812638926844422203937090006110219879578231915001103053737704189185527501401468077509022938606798001736038592461707929112943490952666423178980213370816836454039834284467036758409117306010755393591446958255959109151021573004094246497519341309687771418797109355855827848987604200200922408857370865774266223289478540595182067180447699288278010934444650165025016599418313233922497026294185374843454019924113592164070974142163457207740810168815732569921000629045885447875206426529120494640761283393744469673186989488373405445869135346666705171759364456220201275161321460039275891373340973949560156606433187998079795757644288877685881296511968630631462856902716970559926570447661269624070934174094845339518025225658481980230366943790462577279761524029292842000018868447782249211101245947263173155700895480834020304167719146098183598286447535563496595353869591316081573667029950866605047143380624049357682040448608474886424197394482977484794290099049804560253425504796988820166746264375885464205629112289350655363660067310118024868327881675048273086224660703488516011050136148318562319649639366321274069925149679522141430158613757307764804148796017507880920971274630252415521320859963435826750883722405721561333593491893696360713913670522813903644664341183684474422075839498067972377195929258803529767111428759610388323100049700046563463905833194193760676912057194795026830426470003980408143986014508412459707144258706488243886220473621296590335989285646308613795361214674516631819723290661623087849802088768568122405453642695552363871829289502747753880592507437922057641858523357043189925022053772189506110140499312112681937488021676655154642453926981314253185874437694686182992981145319573759238101792349634267414443295257047124976319089559848600687759476034109484094054707665064969496426311805022705071976259692195605499245526243754015050160553828303415056315956931825235085624838664182134264700135447421289548930335864396806207384049748562405326856887931972465107463969240789988597275960305015928138102986519416983374191983335018593634238237567999304470651902932582475494363187914274304527835487618463033828133485121587878842828958996197701368863747135722976099047230397898789142653767200829462950158033572460613940103478960321913612722291284177764614165294749908047736238940387204377810948988042318230848838304741483183346100972058674868921019282008960293534734190100182434716483402451118694978495850173140247535637892162595377286370152032695074955901061206410218030626478491028709618398676769469777656032021816814785230430199032042704261409075346609776317876855105010578467896196149596533540947291283308333896573736787077351150315620378727997772274546735913929488552073584717671808773182491330371451119009725061927461107103943205473964659650402236373329854644445371417275996963904455721505771715341923388521809118739430054926422709368436099675559495291530527865043870553904959502666857257991087340111568190595319642367825337231373608265992197281378794590242059007793635082619135895747461487234338064771045561463396686442537387772532361609657408603606306089970334922298359140147110580100057386858185469613827921265998473595852507248438493801377601694383310342840801378740969359164285869964781284027234090383509357863693050187701140989703241669605097857166669100396949049485555305508105287207715714497350806421084538932055858249072325117684922686114710865715146545785592327813235099044386301376263866063285701477926956387566585177675663076258324351881456562339561143781993773896519673629194249309427083247802749956443393970458327891518172342510764192005695529842787741640979826044844201396894619592416713943572468890498573229928160192528590324253135047723032649874047999474729785373332385060263792185364241966285582317901976771005511369115672804416271791039772803024998744844584130213611091535704242085965182685611684999534670357357152066889179842878863014804395978284246010632876662894180716542160307496139133650678457373121987098257778072967012926052728591932627292785802128126917095051835848321833628215715115684970542254550521844160170251345323594156028260585089408424755551753211219235747222087172444598185876624302596744941573086773494586087184259144250771318517851286179639596251459889883363922650730438654940849629842659484986297084785231055013512741660302665232874708393925047506530126854030958805556327810616798808153545949410673891183211499960497466879529969373098295010444707458616470423023471462702968851747367280419879506486915308294023370233261619597028234322181798910929078386416956446276398605262417996421724475657124877936384578996232214008647767098975867372904631281856222723232617853683515266440573843999315640934966793634074680731803019381944423221297671722071282698075249509251824706342515621550223427208929310796025121246203426192213648408581445387968858174334080510819338815040466488298900064647342771154891096946668511498165193159875861158713720879295461708733372733389862533841809739097365549081001819930227230415568905796298653705136791589313283565237855521018943645673268199372327295365968218848615173318512450783404150730276966925012310687913816711585293730601676852263728078904969742734719168291203190059636812410595653410059896649823752898456436196532463920198943928794141701129931583937237447103104366636558500697631476763837370845881537683344870264341529060283271744180139357545963571967221767985979644723525658225181039567908610034432615015961598371301852640579383129360958370166690325599016335786991681730958401258962500676790227455470664877234225633589993805607078326076827508678129674139449795779506149171439287496192021551126688034340664752506079001459771266867589000629958368465269272890945179217095565950889895593924223384082567595951883792518743756891803375674605712861195040140489707804375749988218707994340923262654248500865963965261705518521743174564091202088878225066762931363104528031816856597815914037202987065645264825685593082300441321574717506353821734173476127886194130821929721643103252684734780903427913267843529131185706069539958881166859569195866876481073583367031191152293342049579121517261389284478189392816271911212257268615120847341832489966697130056075320717292352886133608291118112981064466464116966876989708546989732194693422096242967328627417303589650231014352829507760384794512892234391417841108762703666132329965020495925218466456717540927044775412681156918663038778384354072779410306338847877881919841304922882590128084013173425090059353735996891173821850870025831460410237933259591462998680991044917735800737800407624273444860393990193894173430784873955204161216296417957529191187077508499606770341227868192938980673318695451916475075355304596057455577520721890891435758643137933935637854356271977910004497073907701815771865390910926281347750994990055651072392210565168428831104657945961116136601959882600629754325046778666690132611488309455709266806279431355020898613391761270597317693249728825351035530624522642904530891879991597807394593396169123425709549162617133460037215238991179267225650454778957886935168552505672274327218428093671993228805158788664937192043310196478335356046716647196829647119140556609850049977208858604290994262433897242433863471752009653968752762867764292600114935412058235447801048617556617264396883886012051207470793754014415153407829209792805432665190909243544655553740857307127921798436695492311255704959457808616367338062032042016300450093049745952814344563111662564642710737538077366167636248629283022024675517151559781434198744323667231870907124200568554105324025798975732498784185109912610550578752858847198729026709290998173626332934322077788877682091930890408340361606801299318073949354684175588942038643360325053669837885729462519682813850401400009996962565279300169967069276571209013563375928111175666427806824056129090492582341612504953991296684612139873163350868352295282993252069366161456981260681984871077876696157338694642049838558178446519670167184824285243135944474962952674983179161739124884924796047509789504688477670076238004288059485470167409321683707689265288597806351752180455231211225229511846215958642321118799767402631211950061851244904717092546812217486901096527708824634970663184874242696309641098961226120288980739293248350588631245471454133170595114697727661965641403434813669595816648066153546003085439061084023231967158039747805049058077417503926791617215308436780279527384265026435162697692086913255070108920107982851963211562045243909465860296147801964096586489508851581634983538230690539294099591930292760903569171932316862203752820643750733077338648195916020157419194018765679155378457501062175165389123283426495715928490789400675188303768792037840856813184489738889698358526125248661963703082934766097303142300842968185388402948477507095817615514179995831825393342444761631263404837626668893210361304207765289974321668308635467871643334881227447061204825908021257140338442321297452935915546414381259553115402843877387207875429203523604344757053824117896006497872538668469418318356160793024876408249325186912189097987376663832297654685514737154321786447198597252054400227844977467339614465378970847195227393875670887817026299690504776918834092503623100965808059858000465999490074694978953051130072730964477383128187472865528670336401974379690429404200169169577477648694620215854723734648029006566595811957343157553596711660821651638970056028681245824513778987123096057664973458498227367325454952915590726083919229410834888832035203681643833529408085073664545600212459971598093394750581607462672054863059401025573620674035983899253911816059786842273683324728937178926977609449870514569299571256945715285235420916571805792126064038458017349529449525804656590944733738699450897429291276653763196016198624471853289829015182741958450810516222180956605102586662325682084070906263581728686369566470646835969133109519309492162232716164377449879352646336762129415078633530941451685082325963207909259822506661840249866825613915638161022123402688291705322462144447197771136596075357656094382474029750822070678593583022401839687257738715026021663267601802199581085592322279952929637604687743136242376127322469500502208599861422434113197504957016597841026247523333257219570671205631937109254352736079793314854040526132493982679868615016971519079645613223826153992126629204829450873485107125420937193656036403637475604307709658341288600157219245346400853527783839487456699831911315797912009642260727722111223286235651391287616826299524934137656780201708451550417117817599474243385206821186787040574318360073062126975145189657516081647143766185744719894429848893789579244213196736596171019147402141767728361050333024963781591701622857659233414677588924234341547914577916732035417025751294987222215733509678600562671975085563010589062027975649531354229370252352486087090265133788073347967807486091722133857953691379418946863830227973190643436677830413538309745894823077162135626243628393234232139375014370250626151245985143054444836375217590874806948323742900196906110890019083965203437801993003080457625527990139830042512524171157503425595518325983467255108083986918756191750901932029149772834587518972422290046613354680493540839503309994472478463313582765347306093606825360316226253981250000766833006795820802371319796249294420564782293870832245776691075967556252718467522563584677591366917346591086703045960152552507670382523776613937592107678639427095686517515981189843309124122368665790241455577667134174632140463738177853814556591034456873457291566288274816017301032705464374413452085924956330998402681046637793461810686348977877014535068378780295108252156424947107910455915913896211677358391681308512943754610042564328151377109005251040084899619677583927739842421036022690787688397505599052193962465345514700079195235263678192516717964200393861455129320762686583162021165607637130562592294209356461902242912143907423744057735549082172090621922612590133877324991643499652751552600790082708375091074323349597813101325561061118540275447567706040376888068502463744352341003684283316084566283480353353672942627423965147047192859970023921125728164440050426808175898205632601726143822961957429253062424126608641310571004736513294777729844507546172010394586823790971015798949198221260444895859537798193274352997963030146843251370486748706975324633864472705709715463133852678312866108026812465862313213320702026861581315812574248210953607765112015006789389140716439093966426953727200135210697122501246407816204029333932890364173756504436240966750696444746010611910970202353321823928114292063544132357767738480508490353333010023109648973730114851284706715272269024131312355689027150294604603707678655007015323937527384077676140883639450555529869986559030085186994891013869966764233087505070700687171073473259007853548210810502428985847846892746112821488243063347206627568172525032197498057641254009975843798352096196523314271828375443951887989715343848648874550001175275697329687405568217681339010198165038777979875515103427304899127210077817075305106492865791960237871366050628855544402475700094111652330072317531858797897483512868059562482258547247543904334704155582042789879641181731679525193938506808973547918873229809504195410868808247198817285563678962588543712602664153141517286502947480113522329007916871679168565361360446577768297100883054926563390269128300070110224644613594324977880113360565214068337323911102742393321611497202743764622583765024800203259026917832644605422313286911960211898940936818571741069872931329282567813643547471785455936936099670770158084496491579227350313448126665313198137555347185145907218920256800101175796210858733829152056286124759800442866786378396248892418884235723106183971265723978629193776790937350404874510625694511603848695445451431675364006373034429874208491995948699748699875954218518201744296997526919212832854843553018806308827679796711864785270332993200500113211589012282203311754265660569775518025539943817923387026280219438621935141018489327454358005739255824216648033057831027239767787360228689085044341583370914314130523164753245311356207481372323307596887718004373172164906395917642791938644939672379552111234984709073892972890554886573386054790560554672051444436155751911673395449460479494326129604870860718836233644206037772692232537191399584524671777175720429293296933925708977265759444589146850135355745798196565582810340777057815614810446409884383667668019953390106187510606384173340546084325194414646455385256650054500072007327536569657172951953274428779039182047712669789143026014329947850372276207867435129082695981417727488045374659553016515498329029736840514662083341096192901195277900038776558879634106970798233464468852967171944740255487404955751963155778024999867692035362785150402534573600429245820539645843712450404216485331348863377048711020583943204129937970911682160960851029671384703309047451962683102629881972678166793272660662740430317542573294621382631793769553283957564497287335073168589506975657973692328104089653411636964795572680458209511726190994593971972508635160956996025526075919487329668549147742262033657016288199490269571556490831355486788017236858612330182525910892220024027713127426246158852676692626786421592388108861020214728765327399676650616917599245720203062775329142983161874683950455048737219982354844042667130549964158646579510643136870793631321562633848863110107980908214195144441394696994882555485869053330506456008116801188995655855332830762979001611254596553205942661563574155812655245701435341141538250104880618381972831350480026097628397749058868810953165260668792129073495735596986334999497465736485389887796999145304341501216762999638466138374070443676932123288843454788086079881372453888320524104187574508006420153174461390396849281446806545715760604203047214800220370356344436876443693773793138679648814140296543606576060788926690875165467112917880357273668921124425803524005698634594982757177031569407859718924510084687320244519871710257262009519724155986291660763149655263784391082492330941582782789494957391876087343996266521465156435688418207523120402565428843848618145095116624215038784057555790379195319820377272335079973149453992628799922065363375213089969109938202409142861380627397985817468467595995461814976966478056246436092155005716130248031838492865306685508349947017148476682446254492782366441016855571045418338706892387873388255912854519144358511986277057665052274503022136188228319151928082254535248685734307141338913815640537151979121230811720538334976195925330146742845312828625952742323870492737516546791315714906462576287065394905093441304252179582728940382420982270033970535997103603448073510542178333746865279536776721166463988776276732359681536963825983573032565340301777045327042142705879005381738573818347396207012063416767531777159197149951810063305459852548097959931296541739433172632191962181999800908339257733303235104682735246623307698645182994270348795039770213429309530213358880847733397423176525339628763027028772318015224645827244486120399733726429069405553376042558586522794326872241408745429432073239907351928497325679594625041423647183228468296077432657892567761056474573247093306676375388608576614048239602739844849092222861121298154427303743804075956382376193548840875891469541773673019627243436491668084633776250809420138302967823834664747011437582269588327318386129619025639706228065369998445845105301874094499020525853436758161752372016072591282162597007757778568326298121484370756547815114914002882059588105875490312599190734264866917408561410753428787200010587536091923543068159440518964078894904959375365248428588861705075232607153482197495351480041157368560867158766650405605915329323202198014185077319164790700512407547960985043402095370696164592364772799511483893565511755725554868382388975442049492928435144732342734498955156368515011923027283121850848296942006736349017535490935454748900849103576890496286674655237484706763119685705072543664370595918307114969386607751037414029940937699135249344080179640683343558878320566226593762792706613688200879654671444161446160185667070708026996961167705344053618785198626037996892836019992160191159092085916782206145628215189774936926598050035656399272116875828029516887446239078595156985119927401136666299152136672768163770409835299949730939392658851722022977060472925897908632348643446717723712788311958597771131539621596720601645993702984680388304571365576753690923487431033325604588332101927960688331350954077177098996957085827577381523900582545425634468474816552704798104989841652798852903969459817728823041032451444571949591896437959813759308972494548637854207308497948482384816603507664216576554687369324104107259527674812941533914811966791079575844126090198916917082338578660769768874339710813296914135571063432553840221369760516293922635606457247672429881423724189268920994339239826427793895643211842608391707066535042655458359092661583452141647658188772650572297968939264107167041459264336799039922244438326335802110037253541626751971446028106685483186880462338273093966804122700831851132793393088193590386495811820752407295977647465318892180110394620099381053074041407002086227727506127333488371772044118787425406774830374199465785508888265458116600865087263448043752927269802470518994182442650777991729311677854393929380830158690015322498689432063581621298384214363101450989609238494714214774052628177478310201223320243911118399919139455346307296594478686090370096017373908759164190298664906958859063924419717462612699463604789200421093272438779375227200819682108788223624864799012500474538566099848835893625041139861002504712222885216118106805146647028620416501198621486131720758123689782508796774084401384807550053090207986591466115118885593053580581678957183042770802723402648468560130759243684951306345742624050607647509872151302161851856670519839996372717045295752668633443334568857421174472823240649401339130201736441065593850256475450643165849749307951746006216114513191967129434695347314803449853445734157666415221324819774792094450367222829440191705277421126651841560670550415711962931701828037946049820571104256196986960071247913191795950063901858031054968812024848809789341838573074165853330834617834301526578872733686001857128497857422020803158983062405765811237239733885646455692383250634036110865202399353013770141886119043161948169843349210650234717481735972456139349730777268588899697872552052422615114623811180993719261823400091104529581568447894158791090419391378604062103848484166254881351793651837207339386410723911371972232097735541443985740275684787926054618210147858768200485801500775275239859459699686103215967511976051693863080433463474466708525242617581930573334054578193073225079946502571941997807702649298279593220676210846548364338509415180599357068529455836119580464886139927227730487087277586787413557386581711981711359375381972629655708788384970274775490061253642485212705242876918273398952070118218993091604318753638292904280725397731996447969386502722118516290635683539021127635436088185464147888113165430432993674756771108406325953291123153101367460976757598746212833187770137162132899761803480777037329581508679050092204696954219818628734723223688330856810346907863812314751756256312944666759211951002835063267335725808464431631052684045548519109432930011792790964139249894964683145624836297864641771860578130929061259710781323353291027655815976075684090976631580366773241514110575656394868724044039826597754342501961400851812771626363720512583638978732064112624415918986495148901193844562518569156360039229968284203340329767022319792558672707645741215850768008517899381749787282020008984809293493729371402386129084573440590359145460852590872727888243746516516023876642825137517282822831809516371085703995626298916760792383518128507753009190714744820555132966508559208589312975585281892595483585128353744664507235227395647891306531562293742328232244891491145932096807036307392028630076655113827801197091689114913270691331655239669877086013515541648551067711191583695149092749034221573883956085480287866919317145977619436476577961670858722671658033401687721367979992036682798398437682148444299631843338925539229864049447634501911699356183994558001779468125709856735636949551789356678127344068181749178607373180799945766924175587267696253227808678402901150905671734696938473016356308020322817230173936277231555906300730078452111392807470398886265979533982750932432306282893664225496469809110717192919316761724802576101744967375388555986268305761132741733632428831895719490933052271406411137575220648907757751033273304449078096656900384209067938174457098527912715672607985048803815000617022807482711889108596885881011260039567951335145156322426174764442549910020437232082024164026322205940980280838362784344614077437725766770701468786324593898753788930763529747049423754747253061417702181203413587051414591429998329705789214342773076983530069484615447944439957496028234867660262261580895190609072783347823408601584517069132197106963173587385723116876831589690090071178898264855573434266121461466783629752279856977997859361812951145623881900839747858542375793686741000976414197639492496666489927975483736930041570051815384844778695282392764110046172932169317521796486860318710830934091559386312007425592855630879371296116361828468560395484120793806673242269688191703682160616576080092696247107486835408529093061173523317908583500919357732447215121969468225150081632365349397181154198580928756233578646143435683059543635457446180636241733510782583210169475652333438842942739240950536005633499132531065151517050831527467347500809211261604613778587158607278433063222264048619942892521935057405765155667457183123748795069087118656775742059554639579200289949703822330221864854639658825293303564982789378811386953915519945161831329724540178948658899965807184319544737075281504961809284791750868496759272728075022562203287250978374453349947323355927624439058872334607143455672624551615517195524846890267273533327330531430181446177696995356140958530948063975083179265143832389151558550368624021609821072572699228531674329584891844516103970118090128161269471250104321541557626999230272454532870433129401928029673842533253631081233122512456862216290401485947814764189030041394928158913587372331576008710906064907760059233488153816721206484019325937683386552263817508401075327764295932581626160284689405148739695263667585914191067411940050449962577984796312845918053569701885982613445700428719367329761802634830304528890441170146447980950729778636451356975333530345406766402658587658788280845878380142707132213039390661220195511941118049578483657475077270481281466451129736708675008242429904220641672535773652715364289624254980997209259211283548823054659669315671811431990369212816351788298337002761633120485583963591705768973578001330090975553663452712747232213615791226984003460001691462382304180258528871255127428209340404130288005030370434580166662505046015778250156733616311248692418171438119991892591565101537688685673903091971988661009233628374533951947026690224722759839786624237821879171757867903113554450588541813365806494198558763631777741524303976931451642924904416994516850467603590892789998228945538652288202461661243069063597935056103307159808051050946343264856448758981764029114198013337324649749470523206642625775928330628098454154120775199002894149509644615414985432424329494339492900801416056637446998640377671930042005956640428306714855330724198033831254862543055040559173319032057161928260765699960153976910458517537445794015049873757607027840672605414537954015271754039012877191169490725350092640485168817883266232383982081882342395652680650710539784187016917916803663449864100059455881385791352331049620180971882117410945654052769157687442284392098284468605550500268413205778133300784312619883618730034908903510177712814195166455974820270766076657359181606134898828870855063188803068564158337999754938786705278088932367173618458230202440999960416037612444473832546485894814951400698499867162122304357459341082610488597478818620880090626939503812474749013984704921881395383942400522729308300491436257851602959379762115925204777949560770688629043194847765784433943106309754778112014362039088014759380068039919772768555744921002931385949186091824114921578256467009702032015399806034186210220823752976759102179806239347828050690114294833263672486832246061115799693973901558995440310040838839992155477109551704478571845408285713414432169513241050237377830655509258706864830461767074570437613743996239136456829638779638050455219102043829777024469076122813416605620985330115880634930020670525584031785640740149808146043393874296012093801476214973280148524251358599628915715742086540695696500936774777600133240028022013145182415221879731618249106642561881703051846771147091187212356029149457578038199063338643931411029033170658669335665130494008164487731445329120695209121073963442614484571861336195992143128824133897386662289349448213338084357306927301197265817111990403600646115051953631668606549059459989073145583140601569406181396729812939184595919583075027308829598589070046479340732241915387288116948353997742045724143485707310003180543991891122639952381855893829380835323418640125220454153019741361865581786704023644485578314888787968858175453698314353338511075234379736008832549359201370037266993644290330234121356500910836628674885406405525101731575505622286490634776752201889323710044024346272730454473650024770291309382399873895619943400767241041547944834611462273431684290857205497269138960476035325060099537476342153304498024198554046327797886205529009062009185865515759657125977548359887914270522973729196003836387334953069481918344907165366678730016787405466384318171895471456802957897739077986776458350948882117610923720483727327219495906686362021068577126474342058408903121435273097467022777187478805436526431984332698479340123407229417395345572942129167603000504148593753245120660895657980138982474154101328916294542466748688014049986283553605267558527291964050488111999775912387718381617858239519759804990259022430953934226756402132247940930716567672263830243161227209869485858852260868169860761703658018915367768152660371780896026728401920357824157411331482101389961087155808592877195849174756474153020838739781221547926953598268848639332306748222415659721749754902760525384385176542810421262694680597813747717501240926273748637669620740102768208043021538529451624263360885361387401041738444562414837824554471270973531526465019960081708107816367452768371193805132184540099644862593184756150566440208024838570164892732501299422214679907228533851061439244704328084862265629954469830153653490564433939698370622537476195017814302804904509089708136197105612563341341160929894890568152376460094800303273457754662680187856398218060576898015229030996187830816010813385326911961841463167337259151540003768188949552380621334364193484538014848094423561327423601935261977537715914016310616495983946966241796777801956006426624606079888850594186854080728857021483709742022758068123549090872222954930862382337470704329987203548892735197974162049911819872417427481926580278564622462698050572063506955624734759102832340860157806123755727484065370654427640328657307157048302857171063830876963348819262122214082177733859416159349587008539436062954049367988463009831305078472563719626490551153998063073407692152313480042571138538593482229889148054412775288145306926880182254742773722562272549841813874074736191135864708203576592038663148207354568395107152421122827246697850346800096110952009668674175407877966736907870514224607638365898407414444944130154848647867897699783665153271032757433446181715354591246237546115846812175138680109803979555333963444523025700088108867105171157355531663807887168006282755748765550849419664337121828119449384348275474617126594046111569203809320908588359986295994174897214359739516408238093696566752980028241592891004322381723884540915856413506304809122283708271293206820253818783974319959363924253734970994605340251420437292449217273135845904693065240657862965592137321844699112040840697708993911994328339508911129537386477955906761608403257593497741931958088681332502690540326076849955228170371139505816642782398341593846894648843169546090426946229354416315985122293985110807294256781207717109253879144458684659628689744799083349799497681909126759241085403027290180381751356049888908743700754537703046064124064383587226479799224058673039111097824534194161464647700469471908478264894537038215854223150695639939023651769602322337695013372146273650238849149179270834185691584117118171615830533565701945902409038717143133869048251011989247100779449563569871334216556011188550966096446217890725557881640691443630942068513023737247799877316869627511640728389154200329703030429526899953448037457058204978620257388905625235274391172113279275521402165559816162831982334472453360352124185862933415398366409797439687258777779018435373777001488078348774900598204996042625213206418512226978576192169939169943973821766217434700785985083530995932163433436910258411799401086872145828015697410232171314613998808148161212324974677787749007064950967595524990501934331908888656437197270128561049300500377141376538111184084890749164249773379303026471807531566559752920705512305334882972087224300979122320542403183122243912629068012443132120365584579101048617946347638265943331203642200556700599418542350567542814036574789812357929631438136272221012234188611627027012917944735087602852103943634139484410965034294024495184925226465477198115387868273215131393371255496573313525728428784911523027415162943684321959460102950634910118554298057963986107392107981158791545340951227610139091660978454694635603565345297148844348959827188618731779109382200153879112470908893881373828610013023604838527874500487267850054351467335714751567509213892127064117018100508156661751006992377237987691689434869784985053190711718634178579474674717518653260191441482428987447191299907240387757632803186577185533459163847635153891170360264923228394555766617730142663553025727078773132467609097034944979285758154998099673823542653218988368663882877441185076469149226964514065950707434051103475709941596845825808764620152983811322335522084992258948342600354475903358056017467824577107927676656103967357929048791560734326716428868448390927190709846997324995728535764318544956901659568610678824218748041447334121013259187705550308503265317623699600934153950477791099456698759484833546589831680236649501445540430037953122656222409278480149410900714674032404457639614469040651615595388257793409731347433938626009632667179796696617822701808617906515921842510961467068706567036898248447819566338120676535188071795185489257351819664120369103279089884433753924089378328289479659089815369692434855669711469298366945410272465979191008850389816522556723030321656142047948699478956095350710729821434708521155420636837571075198237028009383297969713577894438936410976930147246116920012917360661995679395729584473956784073513205260239582105976638281188394488688599604720773902485333123895448038692490835131017562139981082206914570847391805932853902977441089444376999886391895110831528044029600311267865371237042820651154194205743076618477307436240528206713761855085375916880865958763804430265208956361429606966433592509894364121627215937723363507388704216281533783489780480863377578314949830230049444954710691829666693082077974375739852268706246627693052923032742174336177156606428049901904370960091074874150498175567892326497870955438039714528329315330688025766007576219601225187410930404699860748311684007930386291818559928917824054221252289069453791640616770620137044700825969262625088248612745607142407659830861670337213199172925740284745170205435039969258447665441326086352158744470255096612381340146393700098594878134076021198574077465467208520436198688865952238473410842710496944091038019371476545254098976793375476755845827549599261280547050921806219037628502505545312900165305189786226098881003605854111548016712627307519127749535906501365844011968589518277995214402198594967494749490885859249781344736115090475156532102627822229165904152529863738482325202498119969115739463871673811016924545925021273124470887235927984892567187228676383351533401872916066205833237861552745323058994970692169591387093906115446464113647086330888471902729948975400705331259233047335454318417787416428095555681275127770725205636970329679319843085502500543412906688123199139424276795478982202359583057446958365816040987863381511789798529145267377010879811398866563420463015218314166080357408101941501070014643937531974925887853842843303804787647207863261507295695660152930190410262046890666517964507285536349434317094973404679033750653192976619184515869765154266499435609954187848001341225318766896112324979278957060567617429833182950911271105928953253801370601236818926182610023369829899863821262946024262535264103712969769092935210311937476414712352784463207812896707414965523781136561778341336954233588553667394736754360462909651262500049615101927811122282415521251191321707059132535062643165786793306831351566361837131685022887629205166125010403618617294200211094733742993250493878812701164741765499474086571793533262630411360907250946623614321495403465573555813020770807950616485649642775013933162192407716877893596341239069330361804083225260758372732042853162432386239577991313402864239121329844017679105350099248997714163365586473759899587848790632146622811896258466055446184567746885037176760617800459019110649997736969366235015395511327127993112016684755995342321315755296012552658202846011309145615305566551110178851999066954791726084188772142119346820983567385104878970739701308213940029996132767814612380597500448177062117752168882126534106614421391186308517597037712542552874799839507158883254841138259326135298052832894875134126947019448475648401453924443415855156784875566360030509335525418812408577622153672851103631162793021950169743483614034874558597549694973482731688173760692931677597261235085708752469112589953133566799381978654599383459151642248926515710276950230768455757773246022226112142515542759108786756079834547871529353052423198260552951923174457499023848643777334630977535373736739974819973914132049538856450405534891543819763562054465429290018310948114007756547729120565462036615036968229324346004276920935293524778800948900425282779652630513039729289167322721354998256142405829669153062641647067436545360375119538767537293292270521093068135325256358642591216171710464502681204834962360063112506015999184217871418995577385884000362459016141935262730171902451710805205534428549940011301034263397728080190344709266802394473565897437180015498021033915105409894037313424345791074165293616173782205556410084830586508336626582076690020450837395344595209194380302045603709558944779504459592583145640869861668834793910970631429020086221138790356334925117871344855400577627811873679527191600481495800650097494119814868984687836769272098429851950667271919356381292762091000982693424948496576124611707820840981534338598982773369939019085836716403063198547874012651028078600581777783162478930995210529877523576297902768318177862196864317289714821625391736921577577909437002923510067678381938622278686002846127819153146589223617167919693142683637844469345012981876934106697203080492666550652714706333918035825186915720116870265108172565708712204626799743635846486909189286577655841008372821316775507484120142397399254367289569270463110022634512625493578325313721541993190333579395530371205691072414793659287203122821446786567103297770122509179775961863290988530466442319812795112330790177449482130105271529498620161387615478374531908787539923641356406065413584431120090633441227839146998066977259016461124236981008414489762667417144596017659832142894480053006121297651431145321601744743742478298193033867563612272876366799404172640491971111370375727545928574388158362087829061524811562700768994553841165867710164631662969963315582975122601729064873037635212905573845807965165652594653851594659648192779801471758401924218465727305992374225477054318499680624383867183507779383744077870926648395637662395304854281207386985038183435422853199073330731131751455317237659944197780777109221385667183180216565008030058051716384503025444506456472864538063793219340268372991345656585283309055667726433350685972835586398952529947278216874213294575188294286322247442414417686525038580167491698955261976737616338717351588463308371679325110414835748179390782013447428409136369643330356511450457293778185757913364198045285729260404258394347376754379237349513562520138096977389680502105690589473937832634060453582394321482047159162152654402931401305348071266185842178549684682384340598404971997391659183650358572157255382092734428891078810826664322209401653286958663459121276868083550172313482631682843857445350766957950939639854463326554990084911517876948495435963805823312474961771289061117519989335145228827088075613078612943714437195361554035109681486598752631670556201120838965334779508556774139752261366027957437746623911804225817173759672771553221151230531240503039545965072974845098590890297025054218014913265337990435342823346233722754749178347468375522404222484876948912863069930630033452363480631187585099798690874770843968953731468946552563042482633502432094062854650470323067244852012604134981711041688932468508198848535972196463315664669466164234561216099552905228866233980138541110959235593745130946118090115179290138268109684722267638855048277916720987255298945859675570232978849992749321309525187954377929093315819549193896915152136500152959111517682058153481502151702684274374196751535951078397014619125463029301638665236003055350360148807339100570165466040224843209931300951552258350307691317014209075229947835706593184792967303142524020095708126794266265576173766253760236323552683388493715189963456999499421770296069722475394941950879727391201882001634666500128189600022850813907078423902204343221600891386089621972887468876599437266396060248038417300107370082797878668688522782723169482206120603523316690995535501796955274352049121080863924257259085942232006712337528945549510295498621333211612335923214525047451810671112528061249288398395399129784659200598789821610248069392280731461258946487307435644750608071706810937722338415372756846960821131472612340303314871352904167062306093987308809681160466167381314666554996651492578444035246910889991447631084959347530285036660532804051367651424672593893401818526347467323294907000682936824558079589824685288146815964625907870699105057999838757482042919203773881624148111986102377100430394935069161729828979453304983770963245373840124877048832348211977863982007678894034109304330565038363523287992334050080734328959953316832606709523912133806393417400640096357365818888034919845124787274100774357835815531138397550814264954285784871758559798033516982439207389148028453761485067531586623882402412190318704255270905974728103021140317341173851531545660775585005802488781688350292656446182624200702175550684922517958418102026347831242011382167176741260250650685662951731647417618867764512951533454469787781063072327271406594305224215351502111316586909673289871889114040423307393706053419770946905425500991116747487131120384190781985795000594196231084085778436196703880552130671638523508717619667469097157548355578427044760440650571228973956469226219689422471461635853664103066699173120077879853887144832221428862950236586921111109486171244288509903053625771919334036124453511407459049611575571789340310382625421116061073848760876621407145399030116537205586968208713141075882717171326659488914166928206233996535048263465930565170284532574518922034651534855952875280402329692054232701278296079440906049122481383132917797259046273372732280570252375885183660681859871762536820422833943514233814239719592414470199117889643517394666462900279484706097542403382558347325191352896896280117008690443896334777383843201353336707156307499217855832773478282571176453239962068893049185071614205792724439812179450613766362619114752421480894486839022059959804848643172235543407766163384016046843784222977628375895699404325039797136871845132336435081908869427023295734437070129737846408521841267124956389006752630637875824686427749132799249948393314615743621658575002206288171281047701804856848124376789599137958767182513124058644997991422467892437897518308326700787728324165033033226828759464263487500368129340499767755226951842533615914009604013614211569016613517039586284837238200504961174606119881969980385495322242174002251586450919469949112814600309534970128285233360570268542666169563918917118946456715891019829803877048568381228011005899245318096944851986206624456704060857635891279861003430881719769164681760453485027289018232516537667247601671154912557903135788100260467259118392109152724242138774262812521479157074452891222260137828406820221234003074621328740084505344778631320129081526141460345022305098035906660905156375022250597122538582483767998509810112126692165931758332240308170082495079891986767750801273328073513052131480550296767084424613534379594154856078310518652190436783632003860896240650918070596461248382755650744165339748244891944481015579885140587083707513922498131075529888540066585229007563062739845867788645161511297434507191825893043690394054601914114064651331458397063624009335499155326749337782887713733830893929036831081056433684537086604762961035345817608966102476483995654864574573770790086300385749536805417073361431185836935216297858551452375018331989012931333056356323349367371123773833443354041824850533569695019005104213048025667518811111712128999118942416133664364236186118099278306329013577856567965108237798016023867750289057287650643183023708882554641760189276617270732816453530021865432998512991890459028677049081526875616134129466701562502970656938283227040314581563650823347162620875171408118863292172483416308151367676872686084708940026035463176710541937343332286012649387306862987493793801513330284271814769955402613155904216947403374169427584014104768067489073205322878908940161890911556561550798864568150065504292412066943306422455534254746929937350175016181760869483272393978535766457617228092691482437713028514567266535339026161706517416955147706177254077299391855120089483810507736902257351622289043028204553540207760064779216255048885298745357586503246361613051740733837615020564981073446806321901819397891093402391388054326474717344359249143844335180857241627664511352202120921802633189434970033262067661084717387037248012701049670157263891156305505216220815333949496495822380635076185885729943966149459707753505312191658066365146586321002462366358834047171534749267928472299930773930180376991425261637811310368668868285287819620647014338995622943447648308676371509302916869359063509390012684562990310267119771804507923397513512754496784993582335178795757891005090391928071525795281930865861465368453667901441609939216068450626020491816517651043721741132687358562340306122306623695024087000899313280970422870087602476909446398301928265510333813541865451005763990794960606387836753254338752756837714770676049107709342935618392298942840151996822308181872405308842853682827949908593836987577161637860442980490149392308688259335114486219293607741032328321595837250169236578832125630714830871993430254924114559190839211890257217344363533403993235567684653279208343704445515833037962665629941804945155705620501655290815903695745485964814706552298497350640003780650455894135229188696215482671808322178355521863258812512599216504663599898998249523518317979480893876858626486878013432361096960927446903402281116599834658313083316194625135726224492201575557328652946899381807270821357244861219914775698652946126236197474148502108972184920474666790391850606116305513856217269373927946145350919985331649109916072599931820704291449121231876135647109535966362583228321231285914111464519070830938733344592252532113537222288032479291082605122989131575401979008026207348153605049824343841457461091391236958705307864762946193635333960230717011259612097567322329579230729519536380639074685981908352138967332283228412465470060330993306912091682156224463240788378562473741640249138915648531588807671309575619161692535230366012157642285574364603780879226016389236804567629249749512299706713185517001519120820548140814423854658976133798372439685002062774814215880180347074181149751964089865972429260318125641488901101714717793025369529301655513553435761272095960207795302364517170244931489775844497790854186746129587111416701677254765678491488420060014177227309819295922369752585897300275118422696578345844263793927179053969107085272437553217966213439645834308544126776383036881558196941941566898339862313869475139699656661336796035467191610796114745106242460902876645534708705182264509074482865189684370427630823066421051404847010913457432491004954875837110193469473675766077992066656864010099388932324654967651726296495060854368012230787408672250653600458180864932903654147710006694001378171527946252186784379727271039112751715686119897922844906431788325283790644239471936427836742704675027042960130671007608756355754458348890657147848398543458770213982730424705931214719480791248218685240731505465569591649518745920352161803303086578663212890310998081724268888149893876509094422502990961294772877700079480607821691360168558490048266661901041103342929665933905673927390386537975657201842949845726570461228551674254606940347036637170252143461729614468320942014500616961268673901038255850961920607633077941571388986536940404469037779452969436549983439024525412681233256980868492080167454475644555489725810982278420650201137042230191680038407503982152969595754523160879969303263057254313261509669751495752984558995846370696549842743123481020454725605430992745439121105253730148340086209495536433690717343510822625441479185254471663620251780330305263791969022781573554839540631820965354172296037922975758441988797685128576433875485572308237307682086183309079588582436825972964472803840761168378900439994161844417105622550238162084919836425794854361305292880196704665768631054255821360496796565926763721215006449908694763759280692780345009513141727164025665804084765022942534436096953008033840543889813108837155270155417941229402358184247288890763939146152470427992285551825911227140788600336924675547684722373183878397141145448907754788574592582033549522430273482208825620361921906428978438494246425299913117268187189780415199751943943362088749714813219028297092221353036761545460142780242225166201023977636050226847918793779416188415973064315774857435263386126830461470265239508921197696862742319402644101990246256645659080566293451397615945580829400601977833754899116154858094167960663190102006044385097695412879021499802970850505144250829450231417805982604704366553363681193976801847242658820945728442814253942636855819461527348912915856761069907775490510727185475587074841826228742144000564146003022271690073755318687824236543537310245936862780235181643656969895459999932446508237192227266255277888260474275381714485506590472831274749198588005502199652132557573910298816970891929743581829070481660262520454121131176900963680642003122619039679016223087325581494112908947301712170460102029591536733616236055966572523024841553151467694361964476823244759639886739760524890176642622352995675712926319969264379360420031376163592204952096037817414371657179511447137276332669451046214797671161698397703777698811531583100292314566033953451303594779625258183835422763784462606946131745609900702807364878494843410095067220588958349193383930231649252230175095439018564152588445027702205665941732289504252005097882700701175358564739405281241654065194523836929797034999864515064530606530803520115827950092599845809546125257536177399850998757022017997273362492450660523569565396818443046551085950555588605793281504639842883081037259446952227951532887009869095217626990294904897823651209588315165248382207938456512673717233918965771613806865484350163857489000713873573005203289801372295414140686359895831748635598081893993134413313506097674210500870150030473602949597319689189624978737814239347048449401085062173729245429985203593513857089141790755541788167877417282620502776874789363972840139746326182119738868211687409588107084014139113134140782461053496424887183218593517028750507847589117054548821243092045350665860119459962211090607718570999206379369700714197371797684043148793543157316923238833032589485800071987004937255425894624486197914446550813090673091668272658165838042293964633991766398653125135903348224078703738097532946087687207573031786706594881433856282373659308517330527863472489539108897971853937354666788402528921751445613098925627468936195397058426064721144469212545819694448883779427989627722468315884703771166001148369735623528738009926064754656731529613861860431163951882434345412276481435938549902746154285419639458706528865855308822400922220143852500980826913706207787021912509457561047444822504726446574962429176959884179770501054028101187115101738613093713728206368758863384162182766438052536528282277075052045328906329633877641122918895867893128609916247670258333802211786349939777809922453066466221889986590487458310892187798450216516307405058425857369999666455307217560906373310681904753548897417989412695855734677204616584505876242804209273536993964892432707203377894412026914368845845942315866068498312895936102485319433128993460487947187288072411776135766203967137102232358328059152888834247683590140601776668785000762159881726214506336445038800156922302428584579958890976645142270132109950775360122384827129437936392122626539510991094171048054421502711848953414419476475774499621550195199591395616141372106992286364857825264117504526298439024647878468953825538838054539470171986375125438981957597365677793150554335886122751433041253414713939526441614198607715227279192337295874298650003263774883942173892417009970587147489115120607800146339777698738396889802930222326991804814900899138310252698201537544114832095605058667800138465248973024506200365585362534208318993818889434004139480128285333697094764643841491363467305848377168586293720802718981341170458925601487233807147323905508412383966554580187174947376079449346237313181252205372998273374485838012141742145017098933568603796979583711021758576386620362843448530521437012507955843236662889201562828599015530395915030237761660016103502853892431286085824691432192780408248012589719318089778907893758563564066771851688599041968949556728419234424114850810681101423002904879046835401194302239092836379352483899197298024613863211492174115966876313780803815152720908760598939965723126368486688875488486746480411711066068487185415272176077260240330910292605550302631766505063102080080170138282433672503174822000687194439504611911602873242938294874500814832463219372632880211734660630283237692078626916587345510432281709498007314527078507899026754486987748039282592253090219834398295886687667265031758001776631094468277264836505873677201878546293931531332211889983805865882091488245933180225296964223061957991673801278297397792267666539849515217058023616060700567671017344225885804248241230695482860675955807871608571109086447561121916950835520781392040547774171552833743930962776693067466390838415199443607210210766841761357793802635914411945892573039158860438812834725766787331581419439191349420368635171854096062573224515348380437097851541934485211950064820207076034418031433245825635346340107316306366067047696264051751935612923191727965358269772972226698172201581016727516601468621438618178900136844504966942126695154181778108375164570592024280312415172853243741730677778525992178574583287304552447168739576770013636394773393965761198692632063577612956202189524617738765638277944521822910384475623296292131534841445198240879268754150998778410490423237896619537555104553883767556197552982961195246601211920378669621236229478997545028482635808377142689572338164466623716295025727728848191779678870507726089833863788131923986167179243617578540094851879735523458792675923201967143321385132034979794422068565546828350280676821730427860369530415637920086367359286168995647858315044096851069315308721711204791408721608182662723302872128885454191188606633431773453861110121501971673389550308398074089276011762527181981110099304187956601204774171984515800821714544026571138905507749874790316747281397801408967763694932770153137272093098354253614027409912047219250725434560468216588286367844711885901872263100006382710241853781809204152883362589943801434946768396589695829146827107477275295345046547347722180488959525538853982826310438263556224926641707880511942060184289700153808976924293747084562455921573223510151283897444139648655412813721664183162133993222884737237825399337918683312514353943051822121103206793108587352343780825229957665016831626518238473375661209407338814787770559051010281301561268076763970873963451765563116055576832889966409447445393221901516370681660627186307646485048297347896419838930679572961419164090879031505558767143937291391035635675979835895268918838679215417200604896505604142834061526573168072861844323400088437742743773695226816704576025570967542652640362810001459613825939791691233155835138941099869731314695447618948143701881999589235800764659322045019647707395874156427498739525436039259000948756995444042604867079880571722428486016123644277527438943900072819194633006043147425586594882776994272459013137198909229906160148391969327468572095051946745972453011890497756074000575313333910104963495129159567313002493924886453070640564227268637636079604436448278167509393545799513020674567433650381614078372788520689908140161226042051123465862821035514991432682433561007114628639317111953024588417784190177893268847091536788261607183971589661929487204278395862163774557136456261354069884442305153624888020996269044621657114986793820483983583200272399370467022749577354854715114752022966546399551779529550169142939382865899074305122931603666842650381850615805646476066835936508633962149006492622526403474398968513303453127328365577452224110192700952896065563303105940676714920871025466010531497181656341333771185890057198963828416376522572532313626937530724858474933254640237839350493112037337575643416055806869676999094778151670361265011679326470648516382448398277231309230962743271539566778790105236812734602743771367193157026942849127362749383730203437967870832608262758789343962056380762669666192663617941573485447807027232538730635045052722985991145974384270166782296484647402541884944343635959679891554375972946267498025145421546804055092919595986233868194655728578269575501324645364502391465429098225618483044259336752666546918680011710404299098398419039965763532463735804520770672914436085054836368420009801995828808682147401612760275563741139461110948335172178968614349071792802368979938487143915501377100389666911335047427525756611171766148914293133196653942332472992206789015334485204692898165347994322628544268838486307323777549175153617739230527769101756168908077896459965174239746224344965221137213046829942879757041833788116167717523132545914894954809083982368386375549632660122284319403792096330876025994687470085207030044365700355038730762813858605332700163881186881252046751015365854005074545647733981130070538046433725885763107348005696791407906739907360714866119184179930893093844733936651769447158644645548454600826378070982740568808514570069949006222004899031325048578413881584245856911347583520269025369250566494153219963654507568682065332405625863864760813359394340738449081342495126989582178942169102793264543948620671602160918810500725039732380957476971817046130426753989240971842459154188298546637761348827946799632168117664863913295238139429534191903885933305321152705563658353559323680480043161262879329393273443389069312275062317006366334326469146082889756922447129321735177490833767123206491204886833691604840690542408850414274631494194370019353920104085418458909083749670420370120832604209979838857378869234205867521602620525507934212357817112361103247179848834642005285998650593732904498182021160872694681429216628416935352805483272384313527923591392215572435716017504979164869347210284361566077731280412521822748902205940284379701281772552085307350530820259326452096659419033542357946661295975388615117488425614201218365856233188285380621665355612725987958999999988364627592626436979490083688195579119179931929592616684634603827636014071289467244998795930427021476606903673627414225019576535438592213097351819086195388642263831059778380625740973808618806656391318460932376751922180148615941832266057135860060143034500970704244290616345907684930448256197151063884867469395862245955886096443026091397474233097831515382739928392120191340054773271148264408169515942449280698541579332898679392012671076407532726389328625895477146912720298885986332670429125015738984311979959747414376405032716205810823512495678815195961471278402191718582602103231476964947032690689171262688086469935297312398524926935595057947855981842471520361725621841550152886536439153163686710656999194276949112237239547118182028666222669578181109236292043651096600533596836728476327831787429179348161951194181885975564610633234267767347496766758883468367113451814317879434845378335252893772216241811933804101650875171700085842212611161453349355186369993086175134149355620527708135083138455830207960156673848982659538473050323729356968365650940328197679942990854945381096406054502950702243116023633358187148102639170151642067718748806643545075289834158495538160633768896228341493647154428302688262361639667451249428963295495565161693982505083987822644243711162033244622610892064231584708164246360061315248290713983970920763890012276945176929361627876632244680074109766832762267928558698921506287127128670935700786822658680137369567739805517192372536562908769114292475450862646851065252109125097169860697153485523091263432139126085119748840059886358786034911435861443930744517654251657246211191290503534743004832242614500024328254192410559614062821113482904629741005932231783499102435267659861088290160673815819905658091373565704394501969992723781371968749616438912005115294699722565423362203299907865636281708136684535929275803663996628158816785904610101089580221108843506112962145866084772771433278776482581992623964559873101967190904910046170603173818086691550049504410299853243877151559358864432740069200819778093030836434133618658759032290753057765213533329267523749443255965118344998625640895815527953962625229238806533400428185706364088735129258474777200238400281608236834139554063998143983116706424269197049798301477534069509476748744751637678579350255751699115432571053149415536236260142820709551108433726072902796657011082819581995230812806954288968548570918007056780574702963577354923519955458423311283634460756926526186527773149323133232119036017726450349399861091904140704996939546467999991475606063699783675140120831394852278711922304762133477286691403000879506825875718065037637514922716880723445907168378711509346588617308208830967410471403496949873733392912220425932680447506754115223201870611334121321289909091202769179920569059534394910233940897918126097995153702669682334344960956313988742690688448131782961221190006919147623968095262871559236661430477362772973868957159890065708692638192878028059116017058146508827011091668913089922978224340993798071966854370696701191340900022315150150640035199096426307344019152933015685920096254616530924096772705197381566220877405212992037802193826264087481831190564370833638265931854994181407418723645765407349822875913933940294277928669581944745067345019568025287847640021838740898281388184786621707258415120921523312453703511372252436971710288792635031978685109920031362317289207242086056995703158367444616040773343720390190217778339144955315740942195418844083734168065290547474430680852014021344562028225840411239966214709822629173819204764664001985418398141703316187396474202725550498769019612275874844477853533057325439300724303346214542004553278284501822584770176601599574007658221090941640455497352955505157038346527911904574921412341393906747842197520676813849342644349103971758902253677732153300541868938003379222704849805931139810858628414342804939015259655599126253099846565805595544071615172852594937727688698058756446506213973034343828274778164481320747773300363854922946213655332708847365402758257457535348295218283489822727124800077768323041234647329678626590377630117686546056632763347428852150840082448655854048441072252321847789870700555495983263612310564991270753888374080809715025624231667821308774104476157491965297209311254253255781578003635236015388768437773070927014528869724687094789971249593909810173919991144399738172139680215655963077362366046258936053135600184893216927159249492254252729116918547444234620413970954655323043162956890996971642341725245832129370190636146192768976882878992909077261907392437554190406951861063884470295634700583111831825998735584522515411729007131083099936580316040190814959475488496670305806327568257394044351231857866895517358822114636861250151822710729503688758139018846348378485267403377133779565901552881466642579748516207289538921662571514203880920254350293779330141133900698587462498329492461961375383134887822141599727218566181990763337933526375397178923886877338654194392814963240715858908695746211549075279776531802178988577673544938754518863191216901042491602393203939062809724866090223682545905941595305372975607420760639703681708738811938800890892087590904145802357194040911233343224977044453347260206521846057943323287784512592861954039270171261661823232845859775451285306817271771034465865023299527217675166738417835623163554489173824218096208247477153089454315618205070510629513903563426251373097025756410784702911872642608369824241431291467831538004121198226093245468993968958723888126815390411093543481398334973259763836802823860063006648451878917245899144743514056703555893452831219119355574286323470893977019127300722655477855906566478136631575332803373201638872737813732858427386526735773261606026890271100173710110447872543424396753302012050624657203410764443512388362094115413133768996181065644061376143827716560478277769003548594789095614832315291707665084222756351374974546857319360439747534137856629217133900039953788835827039165497620438774694359134574908354329997434202282670072240432200704073229377965912935805521528431265120689016146567595392123722094196387995722749788613451014626825749662549343685005643888297764088090852662145307882595904214366127776397313567857543658049161552707896248549200815441291461117751178836539380337865729071535112501644206393779889138678133420970475212125112321069737782641880954994797191656956276697848372138459847828815662862404646178809206527288253728246887680308841188884884072289992864881885374289733239970193982729990866374116207067106699523986906213505312218779910060024362227850819000134192462760077568024935287200328317933352732078197377098232753396932559987984201992350578294687065395450065620839064814654820304369656076656916241361364614929797375263576268208174831995218329257913359414888847476472364634041323054518006355766456019971262865138944653525847949905229316682683343921665236235773636986614526386415953548635223599659773827158563852807766918233882790404854119050253871554017388702504465717125862495266284411817046993130639824225767989421376393311856107523236035250107442022528646657516712154275293962892094260921971505183361117171180009338266019720859174747363307059956496965299123830439077501183102854281681395338625036511032529144856117752606142776273407618823215374571486584944543099512351129712764868225253875055713940491348774419519614282522873716968396894916854621680880114602647715687649921497664063237441487529279297513369903207474273816552003307031345103594638447918006871322371820138886070610607733916983366010482325446236836185924707272610186431333936039906477152876907673936486517440790986536292864795614265895248790154670466904347930680584734192560208604807790730506367555750000956023536313100721924049901122293741164671877715431411034003249923789670523927401197716332028444758695399445471917194985210636464377246000151956962121138484331372922959936333800540395265821951840934730746306146036256149318440260865884586956621136179056221549654613661703022098682769826391712210481244862788306821719760336237700191201507939670226539951502544550883499135988532603552319519686843556393352010837290577279464445009528625757209952428888094987124734225290970301723125477251208150498798844380689705310334988774500384333910781897597977156423498832609097951704482236518763107095628741635002813125619791998882593817524227792255033272477284375853860222991012684568595148042788746573052530974921218170472761270193588999739207695934787600291999696073857560505604429644876673552612637142474830869725653121533668730714289379286746362464058487443373436020789755630114401134075932493672896152920055135076602106744158012553071119269744133041788510316139766859952972104467127970634476756762376125238159732271930912862691351582751306540433307693840395642397781924394076861905806499337295486963242327135122040928763603171683786306104257322690242174455601319207389452377198853116869863570468406873455486391366307976425708797497576948742060500777052022317552173866328684088130430895967792539766502820526811513616050252512008949476433503941870664372142382451355064751236658866325026607547952928390190865119625388998800408186744396249370438861300934393516741838121552260193824946782519018798221162273333546269838978027979105805425115478741815574400109569107846003745777475033687509337651691861938470574425076498314575175236746418144058125687494952699537421297088578232423471145751760066991643082673987631754764866265037495715733297144598854647285098990553493768021898861743765614319872950633022835203183163444734747559765496537330225531914367519278085311412119713292366665291003474773671053516817966056937214358424987183272980215927225879853211333167753655897600424561372450213513805449234455499144546563378931508949404118687786530777421545514021999277999531919549823793065306373334482842691908347857193314029389740853066301782050732498465159553744574966538836221507890509663885186618278488641938473289787736218780936926087735830952472544616023911097171310438165102066068700329720304268451331419025569644119561251791326820165571752606410986244161162202685973720690459410585597720144581245386465613748160919581846972199621770100202093629433761883622832082136968684681613954471578492267958707826345854825026317495962034337705213261880393532244986166320494933148541449162631616016221699023801654908269604342985543830302358371519809398801302284855219572291735349867240940899029390281655448723731951460737970131379618402620015192917382646769151031498200195005432477872977643545383826461817009419471268787771231454171489791031036747705195011529524124873437747906090920291383446914627596479378464915787621705180264781796891662200376008051784348645693361160350121178609388891289820034192164231837635838631494084373766626801395965299709865572167505181966560534074511001833729826391029119938231148147287353070416232164451491253122026245644328837425004913568853089857741278011057181466818060708237716769218409478820322891260585419085284098759483182676412114661752263836496787362133528759228605017616356761926307403335698695913057654640147395583098365927279102384670568639802517192804358337773326212107926689698244050465114265089386369201764777637861825661638973283606430127567950152581438655426661021954027014716184631782949617560580824539977637089089466498044857460947973859553506739654740215777388531520588879545774434054382543957504305905920649179716436487623339712754221606356207786439583207069262699794457302995539165825123918052296047379611462822420613044729466917380380369543726925531066994034134044224232210069012771788457761838035156310022157144443074277459567266718895416186632177113253890876915111379259937995641077386737827641886407659717782895762714607873953444849116589982126885912147936432667032780035526259875904026901224902514480638178680688113064815431763933682393857325298540096998885597907051642225871243239160694555309954665911695669124127837821115648206340409123937417665362061615056084378430873414773792608379709264693012022042829767301732077033986574247608791900110964054753014307917686360568462366601451738897122291358850546561790156930304529656513547527302342775561115354171332355171925914481263274399640007551729831150284647489816047653725426644611916734453324735559200739027948806793429061715424425997274589597178339129815880342911124122080800856614028818253661962803062855684908691966388305803616366732155708915729923543552583668411887287378999485854378756541427485627764417481983637700728426357663507123959000358479539379576508911413271771893779302759922623220882649888077372466459721445647570913965534557139042757624414230913292199056648521274198851597181348640318080234436013487063964670055655687176569510246301794774626695442654158425278414746047560254536301470092167930883815798350097100286095846182073257533489989706135768652965364644257932720968524156028292652690843755855340103367035561689588204970596716373367304297742139604536511874812220447302934847051391989930025614421118040181249021627265473315602908349858540675509446898291675380187556086239386898117420148493240519544377730169612662785479017481203731179536012493131682990460479088489996273883169927234611956045863496663883367538410919770003222222672062324025112092213871316705486619728259442730937789073541874101393236990051501041074757154908967659078939601898882716245409036128342888077584493883852027078185884739443797432555735491519335319586854852017069079914188634439049236594269142670403097210079747562426534881339713970483979528992512113592948552006634879044575320903756648271901329661808143004463060194016076779795586442578266104439713460522376937536466472062027065334374952676976172314729911394355458845075777385076165445087192266384080867240704482367367395819661533723379082960836775450845296575262049708501089036179805401113769426065948131360446083737840167946752188819624223730864812739316157499620589025011333642717567699531747952637587093530207153384820998597214636253494622815482319839655374387304312517090772557239269393154392544157492096625817304591172074591217075770926457247634665433348807661601199900180899058299931626911917622094829309837452873375313003697864756760462802557616837905137430333161171937327959502758817503682022032353605971053566329585057569101178396883116021260806072510946797825564381357591525152081717070465193489167256196093354851429099203653847523834725418343556846252040608841175307928066284170170759971784693109872517236761989868836759214209927703515905907190067432287044214439007001110397878304441779174115768945167224478861006184289051476613658961542879463884246212707201223024882144299188639020340305284212928038597079149748564979964820686180354827315258495479836024624745919344479541300331635120252076188187127965418385450175461486873720169582122011625725938023581651119140438589746196051638116324948971574037310059074673272637232220329620892084715059499868119521884503413692205739632218385676771729223507135591389719825739028160440058858496198488323966016349379062875687843386675861725993144120180004285944645831932193142565618706223306898248287195360482565904226262394709613417535439957333491740490070123053012395392924231122894843042719652325893738888040975117099847596644343812874227682956128137759017884677566044383609908216378536187883874507211673062936928984262452292234359522147517188230292382783134183130091115655112047275273890712088943022157513928112253799082800926185922971537765602439614260594477812196314873535278805474938767740010254393988677370510382062381627102660487079576350674327428548387301751762356809536124946502602839179069554348689355370232133017042076171138309017004600245956570122603340622704794745854301616783656626651684824735823181766289588369219228195582991138851923311469853561906447893632470253357744360227565207011902714136652616130643051766866903774156842153971460032568016696304967805301680503079518479867553351774844227875193033453731403817418109314480753865986480617122103933894202213264727298901696666222142067583497227513764855197862294130637161722346338157361564593831225321765184974590490392890570519128998657439018140021027963398189423698434942491269609722503489141755513077654945429105642320310765098308726611080279404888165703899678149686614999668803893589025533082736343610194573440695975459246199180920653409300539364512170556324562173028846472194978584397300541850441899299225189507888693464044611686705800028814827345533187555754914196161311517264236229576383314997062310724928384788384212133915421195523882274537413110098122734856548902679199235786930066683734296604535826400312396253685251168177070401539281632737237793576166032422490056967522278390049260354593139702595438050679440370115191281387601106748632044567611272668885220049312431878068039978796296226919811657903580631629694208947198299905602617315496980236203730625520826219546988396329794942752697659172243478085597568359913592825519112877274529305367443083243539828454467979537799801511106343379968918551810162236752631004126880473229566524000416014257428833835210131074561417400815469039656280717526426319510904481397322597593440229239042876598802403755405205965283227467341361972367000339834151654153706588475648498852911663264568359250148030899507285294879666356797329916457710405997583043026056906106812543174136783766690883569208147698106063125219260810447567339335261512156446829154330597942811877568550294488068855802120843977944312513202744393799147349343879599265530479132287444757214339751840700654800303501014846705015860362326691852973906110262556294219137464824591106998065046009405840284503702962514186379284020114358932871472256296625182514891142269728087672792510874665701117888061497464075889666216967564696588653921874160115467022865135007529855897691307520838411553844119616133192159526234761878974222971944566848053258433889201068241961719796734151511816663389262836042447705070598227030125121421054882832905864038243506525882000743489241949047168118440610851215861481359271579344097841007805580215964531931121582157697699262112476344671410583664604022793347945451592718877009269708613834047790137470394487157676371679224465573348959940190689909651203713144246536852906149525085899941535130278617768966851943821269329884689221683964329801205291434695451974518591174406817192980749548769415086123698489910755011868920254603994363306849412389880625026809070515810865445876758806832177058686759918601337740085607563069518344766824524581637418073841609819300165066726727000160547557974019476630176685191777240333810775073661829048230982190291958565705168617967448615501334704573346490934054569928749307537910503707466749551527175923137431061528934842233284959416412952828723062118005725488522561063034816157580696063360875752951317669743121555043339567319242378740276568563645620569147888245317534441381188800561005533346375909056583051866249460419914645156384260852675737053718169438405668581708464379831854596520770222348438780761737600400176727356755506297455455083429226754230842565170739172852009408208200823289391496336697389554262387659097505900000749623020850752796627402052993232483874758859876758726366608293229179297543198150611082590631295590536732975727587105523847018583461455315911628774715362137163592969894186690456365560374329002057795533463711803407690900438779456115913956419138985168559642063838564676068465507915640653692643115417079658332503524658104880771287422568974024898558420296821136638690302288473784553411739643187389140160126861311353100650743514503802612153833631190644624674095934645761610985712173294247657667210118737979841726890404970375463515574674690881729380818834219904826588750524710207997261715309781134901245097042868913267035896658958506851130102395780251128482272977404302878800104907829446834234861579312999725987146732119929323630798486865109364419062724890066960753351369783347362735423066133440930183150166006221060140044914859036716914266723177154421895064132769793965570403030367146500626826073924978420599824624030220801581040708117742641777165673853214568690069908945026416827095954543659569908983924987493030988730323314408519586030784449184705512089346219603022490192311725161574073154581264935682802879170482836096869764248378741357450428833996457718633068779995990840975727896838497858237624726836293992822648481396732306306032080463314803694351016388444088279243480743553473908740951258392027745868648981370989360687825825786002278159819771780034504730033239954462067263368969199656927891276985976377897304634609783437112581206599020344147273532997557427252513314867432844968292910190466850292937809025999433967200367227885867531938413597525984702723737919498760274377179655046143292453774429452279283606143070613076670458242688637142856052539822431256140482534393729656678970233690671479641914555878187691126902171720717966191625655252502633607085776932588438594887506980638618752064718533376321937733024607925466257537918934552313186315452534172104063779954212491976031951123097829159362797316676663052763216561774832186257658903654794300369214114104080834678395591571378329726973534544944796286780873045817197513660696717514242013894472544083212644864550261168187471750071537418231056575943184073920897821884070855710171820582686828857630159319358860716970401859912779774947117793213756714676953135848710757426428995544969881736506247271198384445598923135939281173945455742628646015034437112569828651425320756637669346768203525996190595607778437153297187503655057443935199790163946845270228978067947862949548321576292192108778632306069483367264927215506104298550490735786141162118200625515299021429763043710127068564678054394160945984630313382591531008212166740015085921805170827980480306758733638130802312241990511939047521096078763583112607675761886690040802297105425093586159539731081871238581370264774166272732069796455029028116496615885348748602810067941676406998554936147068790566427950044809123796740818045862403251930718604424593164001789442046395306619552762512480302541712401472340263503449765742688683864021068987188298653076257837343412199157801657990351601726493623846785914083024446996428962771437135697624159550345514817747710787610610069299187890298367301932303372911503964643759394414729209444998467680935072780201129415652440138199394502743491314803346006478546378230393847719944056306228501249536511670823990646233535209018423791711232101599952153167357211072254814181013281501050829993572494194896340236516710662506237281544220064755777541451450593302113158148347849312607433860240965446621932361226991399396297044806476968438772708365463267884882214431336043029282641148353175864769128585251512382142130008168455651764763710445524764669698811311636606861877159986714762720025671437273691931212950637287960954094520882905636751557239973585683515116242450677395214575156835241345532529340193492311939735848594823784564990432590944972055823247441664655803157612000095289936176880570060590431036948700293296562070768776846329344545231508494388771512419699144532364234477386589215373027294191515275154577527090912035445233747947280170370276620625181880362461049853707669609103044563484035268464252985350700873565707128358747458752974409907912116176347146098084108319901037902853475498617386806657577838219128790188666835513693046086125043127152826957920623490461931741642370389030451085311692611770382515339019470202809476959400716459867786894182787808793336905986188140476876436986585475664782455101938664640247436029396466322210749044065180235840304065283225788451797194718750566878872399976131894415622358523167134370849004989086814277968189529383450166939991646234516001404705171495798751422791706130588149921700258278101983139334485561237444822890834280806362121764957098562477008873491442789397390598160655407801907095640199505024672208714963103775636840852951673292230600188082367771887189355121545356926506869804285340199077126046851185326052783529751449544526589814867935856706872552223126535125941893551645659487331112405346711080658281910961651217595957016394821532259429712130786812535015557033244455740670163248995017649582281500435487833360131982148519075174689196259284487008977366711576636678603489857530187303132032186124143509173675393495173162806832077062194104775608156290264382818175700279703097676983758123908136608455569028284205659778337836666852334847114243498150817626739168498163996952215067414444847686626321997628277204432156470875323422200336164730001272266061839193804069953407080761295972324193462233264959700236772317556944048164866999112153223453974617584101023601511145065108780853539294699347804050954371716674892321521218409193281688875764047066372555712292506480016460571016524220215208384794093459540003249379724992971564389259710358136538708101154118926141932766749085442617153058919774108096100675510149827379812704787099279784429801182009341852855837716599663420731335363316518305882538948463599071260768337384479487146641627775941582360868737257327282082575014451002573554240221361937840427709146977714628123697511471065548507930143328862944858738535916502533502445260825974418892121109963318370738793616122734606768425823543513587895368501926775510309166570016891856860998569202856062651221077026311156938344825921975535303342809189377711233535663871592759889145303828692077056700314673178355961945650370175562478942798521383836507747076557246425494208812671462508501259584383834519867357132219287772077120868174646967064861903395573564765795412426437519257300071452631493615549475849591246495195937940171928536575689344543816979108257284185557608102942741483413080298549088946411073683517424737160182020511208303838600457529406260902370837319166960785605521793044374478276709072622258000669473668331268210179402680893826125113505079545067965025816360642587674116386249108509597481255343930708403831278593786339556566421528925705407968336867806515890561051403308835700128570250770432492612505703614866807752510874547875426987082314996636001608677798604723324057399689953857200034031556332914125688754788815538328855395948449985386312802483452319773672376261190219999334229840642801427139509665755898570996968093068659383443876556229878416766723678574641678431873602151230248432171854119373186793648066453819822717992394027227861210534313392021672163411489763488917983315882810620114360184007391068940115010546418721138804079674135155760199134752493444302236536225293430919816007112861872844866093291051338354246302872067257131322501633765914873978360913213658373271185059274107203806928143648712657607685880479347291288551407900897741424282377829395823208203204440473365364592115153937786431931637576648341878238972702459197925969889878517464622785603306457241705917755432534727535020065375366310933978346862406882147124448090477355937322930353236727737399340776456950509951633515849534966042908259934485439249845158731828529118150773335570334526246649845681586861222015532357548172727682585368948227360658488062947156313338165704497425006122275691461862737751223968407245824556707286313876616149831536456774895826986908814494718348030905333044305745155361947935107468413418268802631033783161084250157190263489083677080623562963468076832983870267886556843404419513465610815897902927781747394366383066550095171146285552972484393203364344419128294240508607097649400094078293178024082201815123504175708295567107296947922710596252682287095102714534325762135406514334721968454032206712830678206448352495335143058373571810264988804205117118344799041326854062529993502801728396118636669753723170531187772551091718553911391446691493844964827673416626832886496160236062836390367737251265075783418335124841435552076926038168026265206766722454214485645885275701795059334205629549394645277010557365134294075863854885434892472575537412287785876731494017397303304967856994621606337165714342801510599681165742775267186296448206193291781288976562417791752461055498926438780122644188063805382341753195643870277723593608759437696779260180876105831771652498143849004710836585856294824538372681318813328907073122797475506736722531005086177423170872159037494591241646078547880374309921994523368811390556966746639111300015477177778591489397083707309676061432593452349429215989177112361872428120159480031138220998892756595557488272755921724789363707051280256747244279753197520240965922581122410684708300724524050997076931947510063979091697153830753970785350329455846355246219157945066259207621148676977042231569002747899296217503340013069076710462797927734767709750949859051392639109142045730148890770367773226619073257224166844674741721087612347912376679505219091125430177421109962714396105324541992442232650402929559029190548673333447995610651700918708512536265501314389426655173177331499465659379478225681231071324125385959045967049299045528177352674651807165759468210550773806352897347118022779340032075556049571957108912258812677781262705354324406176968385357018007945118630566716649775030058638609699534571575612761550204008676342345945140081880156131060072892572881013668804889893453642655902087866602661039590736843369937073609733144464541634579864032039467052991156670154012162164542551846028165641148369778135241039869848716261421507954792866697874364443834082297471248166344385345939934611588329616753461298132579277417074809646874232916267476078472778190427945712714661810282290888190774944119982697800684043326663082478191583492865227298869380594597971591405509090184650583221481123338576920667083535439135748665005529653664007243958589657006736553585101533199436893679179674170931387372604462059058205099234379772798585295693872651286285433981404204986724066118388146767542278622066352824547311573833816098581342367285456134396380297342123297135977061952910087197823419905804744215310292488049585680531940067839039234897207885539348244865332744024303611742084838619814602837903664597141565819520585646507513511242525455802364470602391418851070621776266034259190879954446785852275252355476104207569858064390902329343391208309585775124648927650879528580407817907406969472546079599044256497249657741340662226343227970205324716626464746093300893185004708829043186122632931748403455726513164071794884278883501330709094563990354813628913965079698545603410108337638585217759108790863583067880531512665175023650819871294952808415617929740429471496847129162378098625648388088298411827192334572739101716505661572529564958815452959494472665416749365261056288937223423118811428513869301602184277413223472514534089852670336289704134890839810362003113205306416172973790984103342089256484922364818973911597009583790190236579254720455519408263233951755047721137855626191283705681843259876981566435309581103364683037519547546230454634938358552642987556558162806840757352077301841362937624236912519700164553726846754731982684028826931444681972183123400742293135462069363025936862066077244866513853470066389168295993415704892394301609678126863352546401241804097753326140489314458297704883113038423743616702281350294447389696710759138514212739322088466302814281313939282207504158460347288483567937000034048721340234025693716822699406718531592069436008420639746250207106451793861190891104591859513622719081474835344582632350407937661777111063245668325389181041996048821298119227887464407940785559652752859746890418237238148617742440219478108409255835157484511586574144003195400056922834236185855762111115200632434435164624521360990420398657955432159749296532375218351212033021347622115155018207439291434066570750068354745376844569921881609979170929980766587889587648572655696833774012981199990926805817712327118212323518610744898561448151372534833129884478939039099843595787220561002400545461813297950546154445460676477627370870880517411947038990528262471612723634467425088799032330655747064958090248298820747777267092672455143581744926477798307075719252212658067739139089753842605297213281669901731525712237574841023789932864332871282876433493238093697101319385616721402040752029463595309563556456663919342560748551920210358910128603402857049834068576972621925909031177059656795766015878070477599258655311885955335795116029804289887193638951752497240064905477186548326912001716739232491429897472083271472591696479679159505604525138903077787934627239436688921367062621836197568912223436500229446714524480552872121318025059119517873985616686433179659265289944513839198843670132081888742043271816805246239264582365914162545662547030194424254800049735815224156260087825428581256101613107179426933860246612392443494782105819415747429210320862678684067525929550608515923145151585525246140176366825695921825395191925349998067789084072572075391668887472016137977107125441087385144054558155488284873966065412426102398523347308704502394342843853030584614774479872874951167269224971406747221508540952843736398824964135128831325536908744305566507659509298689150435935184124829819295609564223186960382065023477828864937650372525943219849325725561540563773181692619106042311880098456782269379366693050636426757289087040711845922443806191266519705136059682418288611204503617159632962125262976372815223461580336552172472574621287051400683715455133140721831910143481617917032630127719817246434319827955947940637330637942505114816213887860227539533904040782248737314340899824625774619921834679354187113531206995671888494569390324650285970326611931549432061261964323613194629436640408185953866292311145762034943052493308721173327983640705551789862240794297915252164918676936530726097422913476181430844363770774793427944872677217982579850969190097653588382280513897611671223003590858267197173071853046506193233499646565951750613195154025990977768781938546832162497275073355924178407279224959845786851203535751614700315598589024399997905375957976506696163460082877317642988537892526338179780664644764482445038199780977334192402269847721180069401210696145465295022442388847516919538936395825743455441385400782779828578342798265761285045608138555004269919115448816055333001874216590852448335094066071612340188558296603975522575524186824143217043038104822589230878671427745980891711308725874557230091511100061228718249186861698482814986232850912351624121949726159651218518118138594750369404112796983703417478196720269465166022783631108263633359448763293458929448301979865209654033473040695988046459745110159474254806519004350080589206773744542628143160370029828097434473488442189545263111221683128178383183586922608932006775179000224063665239768472328371076633059308641517448410381656418459793557480366011668394375469113885483363591359254061253159046128206246861168099733338592725430056739476058935467563233348325749381714643462047514798100642331713123216338973856284681598137433551694903603143300383059803244120322628454130402631340256610631909295142682907705744426356370048542842119106759901828914505624875525946172538220575766431173438353894282139059700251849384471398616718871545818833739481253539770840877497695778389382943049580173450613582498711724492932738660505745848061367367468583084366681498989956734334177857417689442053021957361312502189142650244422049021395157606423970989505698780102770992959549838862662041441783294236455764695625900789765314734345955628771949671575241612269155290107744786147079585898032248476754872490244456693375586355733400508380507663764852070199684883195014565567911126130605069717860410208367755351296463615333372829378972420372402385089593249451813311523241950597225794436253426220969425696632587121912563332459593882203585978115912603922838186007358801545856588299767158616635899423652065817126835277735394703010398779654050262102085842833892562177523636632561586050862480546381998973042283640773434977106478461857878292068061282925380961647885257055756206026712762580324507075308480413426159570052160590636276976349299802674836408452515863500713184924616589143913747665211637690798958879954753446969638027316873020760005116940524571811390501103775287255367194661955954277557968301689333811471522102837974956840247044795367073965944031080028569079594826468714642264240476656572443540310429949617834620960743864589116696117471028215701583769022550557801140007302315989369255286405791041476118207804981590097677527982998453226059442459589004642800157587075867210179285166973568274885162141423584619792600957489295972563243617722260484558287636329765665689144575709990730228223416475166356380675833594329954155530448322255607651273288210454610367723061188056104297153208470759596718157472407835626311346968947282019674564396708180000308852395592817365271548613618512422530966761851851134109022142586741932306105497988618540288050945371480390412763357353857368176015841943656372862821064686926021434344787749381919068803927408447901757325057778375741675030504492064080955644078380663869268757119867233889728438973381473520010985014097342797261146567961112094172705790499460201002215073318676251222956030390754489382371055670189162841940856608621740993489100450610919891381413768259795586482844939377900655742042599913664716126976498069361050563405766671369348000150829066376984531924803472174452000352618935070994091467398801340334446707324175950698249424815791967440183248488690684513518234541296320673982026884314664091740551077665500914570605308206559270994871921896072652420908656949096316772713472615679505020965223609918104298404262812549838930677093127830812917900643135653686984726597011125111336016813022637779756589889243388447233572783124657388115734075511754592567414295772274539677665258852054414842353527972379180267109138637549248158546678775397177821853789991453885455449109869049362870535999311727311747900313409155029847898053198326158836665241969756738807548164424585810963852640720163037099736775277523176816157731930654080367820515902964091463395168472643326312029270677165012165926145557127950932572482633422486138551451903117828996046751715712814248255430143174872146361836361472439103906449833630875784400004171688035326847569402124088770307572743258203951531364858196071108119167770937214371686973267918032463099264325165690957247500979063301889005228270135855055125418828645867893243005938369486713840973161919446538290838814476376551026186947249815173189765173940693678607045186525411979827220278894343602151549011151271647814791426192091392611736810762823123981472774880012066830019413075684767941392945246394029443476971985093812059888344380226202019601584373143351708383786547905284500779204014650718817341755205561963804400992701092620294563082700923000515206893300242948575159778782558486540332738917001185888855025686557307478070220544268304451550212943486017454316220570583709967580079040919664880005467280107370747627236299388008282241275679014399469926020881229276823878405041455483053866151662656504677367414844843361519115083413537559263595556346992255029017536152601746419522775555907125371517622817018454856306751470130448694024997728024986694679300534414697803853135198957347556465471571402565076690946217468553063609551382142066195162417636402123956827815753998944339487618169185917901954687876235307583338782997065019638768130732781913688723171954133317985456105365394781196856158466088500448363324258143646158384212965034849903753835032502629176656065360627045136339298066592770612141884617466861949907214498072570865295857787946125418722435968267345897818016289704489506839194138381734924296860959192240224879044260374685382629827868769661742926882392163132850279827642536547775902035524642921198706005519795246958000996041545086569393597850714341326473253933118774602817666466130317547333659919119686941141457225087859746589530131340967318481988946142883538608547852363640462738721648254829583412819801941251518513222882662207326108237382702596880182500236607637353544987538345845016650599904443597866400766076804199212800059384338112284427619268739086596047397972040733419675328994995582200085039739216427339222992257311294746050996967946743943830176782522267148016486324320519186166666888542264116993592577418029190207225394801518723582779267221637267411215061383489016651989007197316101705424923492493021134739459785471478273221010267749455551995989954018445109975064571679866467938765721037958338905243615064795483656842847646124342100050597430109156998367622581737812709942870945329890891125527511028649621325390272501002244939971281926299282778112264586070042781706974008372160451893915755767043930325265875953903379836618023655367834077346742112502921752200011862240896892745079709331315412994035421054930237670095408387951715031231211348630755014847171552493474802405368690395723131353985512223992752584607957232764014579578401499673370416617852050316684514368893354323499336932538500949235990945946204648462600735266493562012156457384831627752189327545808600066088555374566768265268061926172052698544292708309912832474873141703471644753691857193112358049711117394845833084734268024895950510399262340823209105323456059355024486285185295415607994660904229049448339198435126105098266515622828754306185251599500505267994604478155584351580799399753068721614317104620776526642904271876481533145426504784917348483540442757633566454191824227757923644657301741465477489410583510955329273158375243778275478393452338039994615482657320805142131183915307180295326988903301550807295776180764561437091821318284410951338449873066464625907795773223851127603084902250790117976319012507939275518112453302926977169161800003090684353611371256681476111426160919133899828621775485150668130883711768876800133781793136391115619352066170058878591255595229672126388282544745145281479803578534180194927189698670700346204534879304843032013440090683259330824874396002281556227708433928726374592587306315637193013783205009474616943597588953049855910750911732912591027067543826997297987427150854943367616617794897742348448278611046825062009959169537872449174140094772827156830840486200504486993587717788505890596204575468132725449509634532543954444098388291371276070832327616513206151532549640303836493703642610201606636202478411920384408174279778438283783106527240268547664483676128068876027936651870393491708822755972530773583951369042285123583703253400481688870572839825743303467021844676563566028520394678637777688046355569854757506471855915306001827398757557998232567917219010397874589913704845033952051804849453603331270756860359746654903788232216567225581767843021482862270622364838370648518741409666895364450029919546557454526761290729397774473023081250965711019093597633474567780175442189189971837267385012893965257454343209066317513523595184403917559584593437672118510070021555198034038868792498383625219993104927103965237375245829692001080377831681733460008580804194026439577735706755150633177817526057211236350728568378211104376003251021821435990347214180646114607957235743037171477456802511705942249024214713362529991635765560120006781197612388145600353941416254431799208090551846391990899495446393447841524430191980560517598076456794303690332499622743434184480179613244639205319763584599370342471564441029933740481364610534945190788442525732222304193488143618796803901117559507229735828402464287961406068487224174318583472505385855412878170991457948898475031167866738526362516318019957223203778378565212544289524510724349202762773621685853796402395095691250502338137470938700962193969343813317374488462283746577505004524342698283051586509386333526865119979838934671381066134813465822792742567754390373628018438217409888364260413061783379557306308291113820322279590176633221554557728071975052646252170082001672141487539466128086593998710943646867474309349377379500604612574237032079908447497348030245482976709657557614434654913134093592129992227894171929388321600477970671937681094090652925300589072478004898565261093329476493234630234718470727321406964932438866169816721755029955476141803406351186736761589562080285494770645179345234196555715080703413380847643953455497487394021418532277545141472690557850730469451813810120296957125817018805723495667054321792726120337793554878890924842448655751143091693744457641086988949034164177910160648373116283335719442878577998390358559795434606293067335564575066638333015755884825600210190473041084106709117461128446117852538594893137411426124507589463683756678246501272480971860839862365699701793669986268850790380377030527175323108253208734848404805092232264423139841827370039499279221444163363874044095015695277972308092295430485465056258496993176788300075905569918175818327973456181719303237299145409447360198668275684330250366521272781848608254841414048400932337966755150233462582847562528655497172681923612085331967653381331475090331302864686091270965057016064040521410313495237582341306791232233655899876921846851145368980616314154432537535332509831477909322741531773875780492357602257567654586832252138117982930782491562865633681164167000528939259299516588333877380395018687031454964725066283040985317976320127296271874660593626134244277210391752867666677039233396396599527235757142825528105927711817821778018195744278990318713806977696764323146727413167354971133207169197639854394692756534252174701804913305604894971083994366626254764765010651883512867504307251513298515096818564517132099756534937664512335021633404741814054897914329897255954263123070647682682502532848397262310601354138162650511321181758146925958038886845508400589266689352325506663217527018545440510368157524025796706986243268132628475974850999067222286584978919893708727322281173068996100364543874667951176747284481252622998778130293946379632059226946230878860479525041826262828390656106045232418664727481936128474285986912500924986211135933224740581524441980258515810438943155786233856120236212538674266968198819849623591386510659057090941550457566880671243597954370204396962123983229514393811235138511974468412634000940749652269645440296549013685975771662698661715017264083772661727379371193635532918260557577161536584009344834443477500928716806495977100047230331892975196539305088245806561068841320171492482966273360264898158948431105135698719110279459547634889813587760712305963566480324062879033604240293833266469855176696905522537492951709471713735511321289203072826843929862157508871854917439933968916369556357231231330270462826966035251007784926776857606831085758824565038575003990538345785340303862110989661441336646714198852528417361433967103664476575565121920996227160232895174089695465709035621153002168591775005849244167562709080087203753605714720464816579382336041848158951491037016212998836393118832380807220692766847332178992637380660426879913317765319902785671710613102754712471220179219870543862681305718613990937895026263492103166227008071539832455858223190148439838485427417677029348873247178690381239915662890265092427755204044544766009768321430060952087441331190147685542564863902373907436658234804446587158258315881341655466319426449087553838137814173853133036011367693377083535020423558555587880563934772071423456260789737416875594375684849962277018088287898256704807287355164382328174691851130321380321819120342585738168753071177932403429173264318993429528047660152294603341373712052543503833976483443323404201415563687164728929776535837571603219649154168382488854020664301535197042584637314285753700668840520436424563018173864283875415753254274472360753866146158184499155708420104714217190264578849321146127885340133600685275224182458752847827718751775470585292698293679910363160571478980952214696574209567252100656996980301057090409904196372002320322728393520915960114241058405759226908908717316694826431761291493879034462156200318679921628231235156209361175938071833701722644204573963610217912402195088214162349812671073504942423930956431792459005914689436645375821769573366318882914698197698011950010161081248324575297346794702680791287068356457297535112383881759498377899839581436253639537139195872931295553222435060797291200822107741492055637937005551245577861383303648897088774147614238330287911096206245746802582036128515769367898397658756974693863019480797675601294049249036932010025684863365119455629474044044225997920014004472716877150287579416832511482479512055961439178161658707923788280608707675433046784927523956305134237507048524749847550389622967904601094249438053532580144040720343858492836914222538424116723343707029917365140538986202262349962515530091833499398731735742532600646147888557038526511539510283389034855625544875037041310688798198337636989706163660130514712065913939584569245961708357675048641029861829492300436076444810192885811584757275501325625632061421808656924578889739569574999129690586966430917907823178081025003977143420463217818012560194553350762258051806815162760933768813468759832346760453035626699479089133079644107198023051609536669617032976988268847687476673578618305020633101520957826913497881666510040351207849351420310904564468184168389737898456931521529170684539375747508484427112091742913382650968946558539869276128396882455665120469800672030685355848048902135598112086005735586450219085541679540685184030155501477176978632043112964506455974544729891639298427817446189348123979283799690343278751322222928368087940429963220876278016055421212672338886700842409635664159210465848131574952318248754622188234379580766174052566066077415424895232588522707926318871835861904765224256230724137357792361141651442368738384728041252556216578359777327132607619289620509852060845417378605716296551973155337990364262471594419533116536329984397035375415319762897486472293327815900148960182987039507094464642637663048056870517593612782211510925827131206112626961954655388747325852813148763315587482567827922996680802621302273966027818310412562774550867469927426212617583182930581172770564729707139128548522517465272598355905079153376856960896176911432137656350122347386884955557673166387858342590198697590131591741157447951579305228439079737148431355477396056986445055156837708271860822889893717567586729736886211893585183938777392314322383210845134988458840162229357329701166647485492128270283922089685736957722771263455666417173221475384566991156262240500847009662830854315426872981702597555123321692707994369921842228919462296834919827656690905774248856991259176096329765442059284981024138677461478931804310514607350368542740212750701859190211495354584101948637675459554057732238997026863322302661844625035250554543705247319891674004721861643455244964470945123093135933287476619160263517571523428416933168240335641106794852722707457842146994512295699075120673242005532159296482694065500365667708121473562473182865266332261672922700483843376687126009539811971155613551523537853111845928731590643207603808943450095683044141981441652938825603865534403827640476312015104671965676998573231735157324124839633691209591868377262508922532925967843179269639707901135289606054681667613283490431328890769196837436645971254648706005661234315579304885224310685795354291470319569922960354000533159257785589182581685188141046482788423915024189923801526723295752916476471214448992712620475602242564364132245130226654443484179261954610183400808470228055976792161268341606824316869575366978385906766920072658882176196846566706320312917934891886931517761716515174092851164031958845331682990600890897286584172467279567696012940154675132869199076006698621542431314069219753801918437400917487084591400736207298223423955607365015081088212239869037137439862396410935854161761916110429143366596697525746074890602126249191709429214405933417532499852312538566221190030734626531068732475262227577330381313475552325092241280596990614239377819785245845368611315000918680898825169131427739063374580145600128118889559337446324701046229459633399552889626192499127491218786392158687294995079217519407521556335786447823589478504361353561687401743678562373928382247472574663266793876378691584917082027712008479021754433551299893515628956306101830540206471032796998767356046740334363301366691768919947097263469239202025682694238612194358823837282000658222809452158554404564894759968827394774743233188807398335907916238492301661549190839638493611560814832447980556116969582096049652413852924014524534726859872212488192860936361401500644288374681866742830900842429214459170366080707237054980291717957762066734827593604891695601377942515659971742826301342777279043486498471729524568946811570401777057024371779713404381189729777344993619816482286318920578574838316619098180407604607776200119619851171094459831212864651622067769818974805675997737369950256989206734620476352214180915154103538833049395921681875036873438113843609117390082908562091251936774557589903739807068038768645921723117811771283571149422650915224524171382815263839733411766545497427791879875306262035782715853251453827046660919509343403621656713515837918206670591439087565189918243672131181734147523373959680095830742390400688176528590071521168373765160768019073072935329996642045536340279665409358524864609058353707121258214850670661643955050414679584941702789945641612558501858126200864553868493664355907655258636198633109549373280632086276573500379466623116229778012680435300007018173619398395327526323098225526295740934181649026187501668588202303713665133577927885968624503011287335701720930224840912126446322258400469091816738732803118100471198639869953759969427640079389024542804638501319896854516960542135564570190062980680215932917791075138694381610099318513142358946385243969192685923592206896148390474097284220764836418841694668594215977989785020385726966321192861920545447209636859237583821469417611992106861048506596070496522592775563907690295305020174207031184818638674591247008262045130165319383407949100445520766466575113419789604167850688700969145450420794279674220571492433720247025568142048830391476261565389066187679153364385055792374901176388617695342927208464963951114032815593993695349520293883291871250389252366205128772211506123672388246125951202330127119355918544998313112638222925358506115239427971808043095994530081502592030592753009415910435590773632432607887826286527326173567124654481688281488435250330883493948537820347205453052845073384879947033520428070940620590993926143350742690646117709186572540654257384059221385627010047360675116347961091182218592176180181057664383737516618597158291409284091497750013382307432833821553338343984153351090452638037786016291808757132093014556216644765327163545685862593658493456783733943651637180229583327185436109646889567695124046681180733073902337304346938207341347144987428302527516266359192588404693733594907096341720483150908829882625637108926381760765973947842442781659453834808873740838739380500969577109380337808469782981238582853844129452265405624455860744346602348408589388443928838488639297573760264400741363891156623482852376079350710700076184786065298330555322159399391223183281415943454389365997622840896218324712842071236618689887292669228203554146666876384751049311452712167937204627924232430356845941229230630051094987841187684442117889289640068743752530158689599833905691461854654750657627574076247569443389530921117393975807578937272754402540291168886995691784874711200339178953193919804219919844721428963237863513986967387366628418475880830529963398279088194235981369049175718838952521123977772440144015776801641035817767424801369191974127916736043821470107302065018858801786303402673377605072730074949287139866435057419929310293343320399593847850561568309341637895760220925064248359279541407410856342658991457127094796914411240522181639429771286129097644651144649676560425000074446576892093703566495907932026346770598296949238451558691912248438021585490351637383593389229963763805743737279991271213075977416529477864355982330675568732803308273374071352615097754080847160050840384064445669931608029841243213976255198771387342042011207098010165838736527549651279779823093414196291495279735691679518992097653345024909446666816886970864871685789343344061372097267815632670892745498171027289707275972821723931296410318674005485494198931377500685972360528975506544328134453818564978817891219969861581062855158012954923002319598225080374512668496353446232432895686005334843024991243810065860575963789311510023876247899071658206534824478908381922956639106502150694112829035379340534038066065688867434055175416468448515298791795686335919893686108633493548065343527528890973708901164037789479341844369070960697600956539813477450106808883228579572313850856187388615158536647272849111876568759113805090591284322938921647193144690492277397173622633443826504801413598210027664629306716750301330433469070006074048595772645359526386169008468186075074947833768533517561878653350936751530221768950746650051232895343271579978451504151350608880820936728431749565702405401001225074796308837524207678950314067463057546277366688721486005297789590657536593821399247925555054279958379730642902501041298523796844042798820792111266031815831290304184820134003387970161312877917561147023565035064337188939441870152694471437163166022364561627284912957472147376510328569133219683568521107561886576487877181772282645139562850127244163893397124628440666729493974786070413576185490444327578123976594098090378096494192897381530016408988819604627919636171580926755828198704272453431055067884011296616602197146149660816594671700359067405031053505787613024266095638562499885841852856184838098011423924441009557682076990414724025622252472279090599122385544468106562626452256390182297248949704672653767482385918432308042261561069311938941282051714069068768230326458282401434273240009976858172896055728748247659723249139729286334237711338750894048990340790719435897837705927760024742428398090305438075382673723886034133259491377793717122780914392909668787685865517505151479085280673156866490591027533578388564296260234407272049671200550749121820255012311239663159517406057991561745704315752375466602402217564560532949863420762731667078994144511481460603734246058647477842237470395209739722097066850014669126625387235468745498109374675342366199472780808024824317770086410366991908369287544957536836621028910056119626243005535696220713990034419978249813429337043810341911540581119644562980515340770971241382657061310340763792588473051008396407756818906869844927844641287856758933936578145369980771228758227407374796378360632360181825326121289471254786465202556963181022592051836588952245707505235903046531261506973611105176874529132716979934414170935241450796742561175292817533980008126421209549111225992479363318889275369580056952500220741709942965662439833427382992291936486493683536614778162349393146549914429879790420821603547409800794392122399157646482134906011989475390376221679946195537752551504818971540199088641280200579345092504105274718740253277832768331515036078955281022526730977611983720549451494607786606428896015538966342057895842314801468718877374586870710898743431295276277624555695029887234439921959105554241972344389432576484949658547182775795927566578915159863708258851118294388787217284966096152937681825031888914460689371830930812698295220707054728938697108275761520392087760757983192228711254870627624983131682131139640271895305257111441135630190959700196066272337754831247272727195310446340353343031433506773692983761341809015400214889432676463889561535990161756668999265414196862249073508725448841719759289218443477437688584731747685477118343135980551570488546914263163570014090628187931734153255379676300171700443880263100492516370036430269584357376055850217251411034651750549452084372713949491537940209096065335673123970743767049681222413692599564528655966249284821013787436302420066507727417802002041181750816660740155935001232776901250389274368404165604531553177535572773784534170572043344140929365388327803822024765760300785438587186842977883162540002818200388268001339257791784444453693236868028484465134481096404003148266756173891534042076479466054843114729205521421136178795602634838234673963302675686731748040782802590897743596619069773850229594104930203456795659428849493101126735825792051259151679099462823552209771630192549731502069585936808155402733291077417139229855633050636548248212265511928232632300049202437720914368206161708036673999072708462548949337772292914039635743922171006224029485419084014174255767734536616011496358354808654600592987894874193270596877270509098254688912951174637742299795832444955544216399459523425662049787165541224048304588390279689876328510077460487186461777639235169335791003454916800974363643451069588341204659043796860045501505808351808160760646867327599482712829613757258314214371577463262608743622866529680435471040596193133309543287807565615098661143638882122436197438551621804766288844565112060926311242751480733365967706232074128530335506319295538766194855885665308861915083306719946321178355779823730543729179475234784946503853456140592295945192985656920306483863217875556871271787406055156971851050831165715828825676504318235096504292492491506893898528299951349170833491272693416991715545179909446473646211490861652703153916330875780828701398208553593214055208553567880901248489093267616768739100793289239857380369668458908021730657950116948529703350253606426472777564739668006018812942341119389310255035033727694462985099263738362185808363505067815234843388103823050932087978538497004454510794302069450530797115701465372973004117178828961398870493237937168506362857426665921113146535428315905074061342199671850357211068781589943263163075601230598946825398450870866818553736860258361684025018049049896921723700468087184297564576676911136838621648721735606366787289121793949643592741262244621578465060763438253843221438312195954928759596094715799819113608904678652641681996840750628703532085393838382446079091356493762353239633273906914533179300741970256789405884098700381328430945803254301914787014602005231812407312951018611304379050997406884311697004736145631882982383321288517691803947691013988780639870340062619329541920545702006765017042625281309613823805186277378919290616027607543606594942546471593740052231378952207268913421825076294099323554572006372828319226136539894989526987472860935491872579646298440082861594082638937434439435557492405781762376943998291384399587159579451761028055789695434548337223266466824119997355143019691367966941482831313190171773988764397361365537324671417509070756667637992702493394668964082786349295203184162462316415289267625926688660223892517734922549355940482620206594151268274999001119613095713596000587360783623342487872323878987589473751486458339442559653111983002148062025638346668800458582394289115136960444418222659161666439501799771347891676367550186513799696574484437666005974781280308568858738096114042049562700101763280635128684367061677165283013649715703319109487429849837655609016987623530918097526181101884740456691157466057974093534880441126700440207245212758638895981594483994733990860971505224496505303297060717499635599562524950083444956677124743168994305100566380767439981159314007449800564362039137161388459764696645098898261094551172996428536600803113335390703505262210099311441675433180771623939105960354732464195737834507569550757256011723222123435353447830967762982266433004612471454686063298781757399250826175038864922504717248137423543816758323766336228210343722945372916889518650791622430217878556537806666263354700910230071554266203482782190845568867576285026873747362652483909795580897821256060713106985505772269550542761262828525902683746318952670373808827951600177336943082443169729223266385423197253440162405890255467237009545648631860422759562452218897321510100913608210413905266028166447914039424121117326242704149041766817319232587487628636285240454467365596210279721918586147086792206561181609777060730182105071926406038914585529583388589682665371591618995832126862877625501605940663127722442462824585569853238884654231422071633181777437761064584888653402431026738420063804591429556406704370923325001690868622040078538556961391423322859418838268874197031605854583931302946502922781638619966887273159822796264563833128583112588456110518976763885373391694442894212394481343387699139740151542400514114808969151966284698129285577421406929295286939289321801686434075074463535763025202169937573214861363404586354924250587660779461906563331211698965388554831689350894407454792368878678011684497538831182552115623283793854205719008943073433341522489437775802535423000880513901192282319157548429914985206685890454438650285277221590516084488879298963918843922457241843183997829082146932571045466640085941635194362228059525843720952720300539774195327020425757157033453849974041003764983086331855910554303710333196018220254589590173650457243810086526343836021950715039980163962426430279769183278584442933302597532064862584410727595587328238492763280346906297207765375318810579449869746325492894894332469594193720937489303650892938744764910998233476136889425271908470129493238909109861090219622462735544583898836458021841357094872728170930037564676838733479540778005204991503125402530602537278940966188121387569889714179112428217714479453006495728161122764703135452137554189925888360579656613412097676866536417647397428301629594769073697161930880877406965363119096909095181518846810741044887056578495253699449357656938217686150344811418755551834122468169555598822729752841665924091514197412313818650790233985984503150378350197994117527467172294465661612082543821325336937913834621490666323953084527589216525786043337222145149828791887671071855744645947615211814723867206541764988907422265732607148558432328049576334072791339894230421207482602489808323196270557376474546618870956263363876733284151516118452088161259362695249334985071685060054751649419581609743046425960452443622857205678122529282868609857987299620576838324950757931918695962846543549714856875924126333804085122730822487902234279308749928088826659814840808500740050627962722400733762705640217064075593523628722999837090046139897341691127741877676306956583252959646378013450773788879559186089931376986325226484422554923953437127239322780904423278425952067464449689886484928614963274339071689961279348547608769909991705251913482107207928752632370409691144424290320687174429238437395424584602501779921072525271359062477138967942630518873917517934131638351780135059115298654997817676018073149002347500586446260194678323040995889818477691057719281966705176379434444362649484811065551505262683422906172631067669410312128428775453135787996626085267054270346563958775278873999614340246402685439887159431770496252503238537617963957943983932058660447038283799698535750855948849514261397969785863169340279045571159424517013884769975027556829718490413262725146401614110216199440655436572328947158243108013067327145570853875383522819344858762958974009043488505314543395300609923090938641309202460515894867982893652514734159909014194712089187436658935575898167846433793213294578642375901438115959868475646466899895263517366144999055631337143566024781939161485139129783033775904144116061062310496443988137038647143950042688150749860089081428818405633273860424125320482052959169357803895841896636308516475898554592048813235912458557245475382026620079468099925255377412207535003242038821207380186745365285864778242183872045534970707160238218876434343191693296964846016757405002422021935792701133633530770647266674325994422149511171002910441150721036714052226029235227568057862207275378330150568847752986546587373607752027402460326289542727548032684462699194400990888219110367899929608352478481361375163649624208819607284461099482649878162246924534484430862093789297386676710088460011291694120417620256577643776365986272132565641703265288409114966555594927389386205995829586230345357467809096464978257585639634990196688669286881331335927251502320124087996279584348263455807182184789159122922838452761830304843759343980175863926209840466824267463202962192249524470064946957925094189026444357256974876039673561836553369697500080956773134668543613185015181394508537856294568787867748730207412577929379757728833186416922540481276537048886529769686779893741136660383797259104897982453603322678571589589351914702097023532882482675309229930391555589546767943702936155959930265029124904580140230634395129767867734279638267396366348423009227134891865845033037103305440154928290095851334630420610221590830180217981637064088393967636005280917814791387006765285559878709755946454886256837257164145333531351985263747495251789389516188868248847529586058122454209585180249283329688500261020153894420384778055667543706792390391630640031702390280900813176419094333994795059467741325022639026262397804547432747130491037240570066445209302176467197929921135437429201241502643282280271002924764604091365420184540119630721385615622835349322881422896851010282014555916012435980183543843202184421347580869044872122384714185372419240059303116367385239297695256417347047083405120063767991522579957178637728196807704945976821652615586504688137217479112589265888779220952993096694499655093693994596732981779499091477720111307704625739622284489846834404324984592058501005485394097062878678735213968926581758234834014796882509092677223869393320151919044290607942694711377026672114174606707764231839950214514162981233504025885597119333721890036989883952217631561507848276021294362098864751076138075603313830994040869798803329377892393895447437208257024149135868586704732033134426899899597396936460021838478608841058034600969985941588147831625402414224752361573077718818482920330508481556278704672935347518211009199772768809313594161104704083800582876232467523702365577523800819218587249505565960965003348853763427254703855421856894481283459357832638852365675429233836590653435950678775075964620439136590116847603147387304826413608257746275098707328065969443846723018199265801435247233921551774944102914330254252809992077876625875426263653214549582070864702360600895713084327637777987431825370552348766995673860884447610688002311766750771267529803748805319514137732089240937377012505806211117894874613992581235931355376705539203013036152891889993682050205221863225076067507890211583671569577748331909386974715673056363072919306267203047518021684654774616484021332888981803629884479623960933216002317393226053911463103081275391004384806546347195438960898190805838028553623027331181900109061239231365785624424384996538989512289730790898715650804053048632093918356534707584017125715469174757992270633012650701126710467129434526097454517317390581884263732424346816693549862805951796940117217327267330805492613107664382674905130368771571118348412530513107977225767398927794056421327715857833279580794067910308488221843158806152484206033210202572282115163595073847714851680719856741454762581550000214556271131596615861867922701660881370714432574518158745331807373089047271054365844238143012536135489930299259931394608381314548102041847198503023403510036659542382773014660614972273065083591200720540266009195363623437119101688657277540249100837282706899345587252778872297033295249640406958414651562552879461311192502216241725811174781359740016872231507883991470261651102729904380196814892851036859320307034179846627076341711182688696464603172309431130106463250300936855860600911706105024848595794466952508142351400971375977771695285297681621488595983533473072690472748302184140259092556353015649356058476647802101760860444847153987323369468005123958219227633363360632550065790858528753941271711245051492098034069950099415146158167125292970009415586740253407004227851432720349568431853368593701678367886348836574012792291995533773632079398266650611430653492330164263321891949325967728352918519115657261744694142328096632885855548786277991853967246466298137714038067086239466788102459524569829386542896271635615094569187506122565660213389095641565942207988860895680642055539560669448036186341574849259504583530426182440844034575751977300563691027721937143477241811337190320322659604940129408407931920489797187993982762611618514006280006486977789978754176195114684666624282769144425526719469412202767215460701205981265923502311502075992684678255611209492287230364230989578739034315333005509643367576783628771501574006202973229307758019113282558728964672214645918947180371993599648330959551665954959037456971846635905829915116830238201502518861421850733655450895684417286619120613343192384849705900387154544784257786426850871438313408882953402931559404269031569026159389033685561446596684682659988857714978936004771795216881844177881309123708402331800128364784388560537699477576105253831020241607052110936889794474558903571181248869345161016091217306686296271406506582285640109559433372813278556804094439642002296463727683002034946657800216211024507405333436974792158575631089793889552753113261251748696892698238676703640995409826929681601204165586249274630573640088407723758215268639028214897299147554711327203658254650318238355176296863429662150406449376510056336044438085328189652401259684558668525296719637929769743648774674294065286110955088993560784342893183398160268736171165323270459853328271001380535286402108965683674120019265635192934238474127144534723830158393560690853988367622368941856733451467318697147126669279921959552036240038515315367449426057300378740899564466191855361885460265807553096787766606378711643005242183524561640266310595454499909131279920535535991761787071601143725109909431664979127663046920471494530318549473398632215672590889853171383216442527010911292708543503952326128038953837224924840121202263778958597699234327892746202242282367061573230220177500258513255113647468375745884064237750458865613939420188153290671833302243938403309456760086213170104302253991892163566695238932550974133327086307586761781381606835364055569664569148838488720697943591884253493327349654829546101472642211676335758757737833435090327313765305091565314384523411379249616624636445770253525808149574819027903275421155997000160977073724737638320816117741853290586914840259377999834400511088644899660716081052322920598259818995464190955675859936172172089202969329706448360988671467481967878374114043057999927408079049170565668648328718819950637834554186637533132440507757115871132952135493746903547016876336024814622100078760663816726111725528383257748003345283621915950371138987764860031181685825492818705117119669045078001222473064566110650194871555346798759604023144469469334803318289346619075272133687190429811240472673680239067606072930441615969182125738524478722349800916818820983719601206739976368318788637869142927879773925490586966853822268018929761824120282536447907847114129838193652835894454482832566731445052173374653283471529804672671665143023163068900771596263426961922094566675847815839838595066593491679426912560598127203457171818726879194057063639956560268779651766417883120477272815308453856378333390555883828775137927120360971281646575527167559081682138730275701817459549732363093934661775213785106512652941809885795156519811171726226973008432580775392132617800664908499198540705464981710614423503067190959036769428989089798756653633341956069145432753319568830456880574469005950680272100690035600258423601055867179466476143922995974335313782420843931669333779189595456934186964499397345456510431049557397640425091742820371030216730971200444989415690529283782225334282332944630628091901498699964662760196293864526440200107433616810390816277352727336524222059673048739714942471050718973699026589071870993955173311090262780889897242308478147917554876844722649999077938967178004887796091061130386802644854391035798426146323129768835141264965385439044840922751789704049496808001738946713358934261480015574748482228964505227641575470442494025429590400663020633443759265451835086510708792765365459425996785399740255580967770344812723821761378744782776964416278035658654491471816918399397630867506218978631558446069470109450271437088217671445222098178492955872177605561161042452861521431722394045531104040955824212493569962055754398732496613863560840871908546479367587751225800497764551817343147246386890637045415131257558604149576875886764609028237908161917452057964238510420476158690734384767735333076104607841151945263865943394230703176535837778651479687351982010511094891373729002927929016298373637863811931212607939874255804359856417045561277018470578044129850049410451225148260121323733840849270878981657744809008542076154469618524449585850210188585565277420473605817111203352264396543651046743851144955036536235908761472102125031333689438986391926194598402651778306638412432910758710275363636425706059863979333362898576980619485500883106034728380939461321535776908924715610149769997461267631546770266400058233012258587178186804875413677712295731492915475422604719285743146703048490959115779845549084587748743332520013542828784538289789770905946053957369257316656507375699721419808896480776517143990877023352317543259589849158484097451954441138459436167481787517976247859720374338233396618987258207311734840385700154404967949915669436230848425183098714875157586673372229156984766014391736790034296975081152829381392140213639110839010600248512199654457580196091578904979984421852882874733312290464063765870039878535637527278228710306800573474840612084396764672209555807927234609537989768489342425982599071483729884539955803577246561989916129639969245243714979196822142651987268442701583343724900117281974088730011404597100852265975592264265665027379899832207038624047336591326765206393106435849303742797360137370179934117498771657255226278645876941708267593606678419562208049236355101944611284201769628454161698069197009974728972105077402085099299169098056389693891284563213949204071603796753819884898581686489587517686111956800478323471270082949153860539742996127001760775633836127589448583591031891038539895816939080319947322497363307185725385376687182453337617897568060407317465532952733307067905070015498538087788008342733837618034398934459118207617919658226476984370948167211345579705554246331746489520223461154134900129311043858615643640913380429649437843398933351062928183938306698145608291703581575204794999436191900939416507219303336293306085108735635246084928487798010285468021585185828091647887998083495810037469628250824125472323424255886985848773393502502577412957031505569401639771074344540974969851455132820773704255248194872258163990614861720536609734125839932685501606640459121371029067346773127674934926518156573260093206802184215714827059957597391179713829736908732216433918600386969991724033667135112937601093725578521479438969857507930236708630218383017661639219696039768964305899529883469157055412595831520081232791164836379055538624864835808179071519712561156207265850290393701244225507532930831812894261118114521145073496929325479196304041001304161381866249872549412003916810914443129337007603611299693000129390864860644914470993260242174207111288037963920796984354619452610640541274126591137804249288203233404464596050551417054942888902825370488873001000072011556086723858413810814026159408732322487720585037182975547621036008652544454231239794715116685933687866102699226384429961228156037285682897786265815280646692684866471427208558056822306375168754014034347962624026550619797996694962957533033095266579729980040364604532139803670116346268226413127097985503352872863726503897697724568780185546862302528222629555813526068597278269130694510783611661134054900981793667701502391231246899067987243663709987124177481982435235142957800885940466772853670106282835917320280114857629219240924616752704231629146549193302649404362140076719677875208764256852327705579514494042115825294974921086497286893962308058324769075717831214533446341373214253717865883125080518133943453456188069503509967209273001796963244308502426931864686363784492725048722872257477096181619859350408100627996745588353110434710788724385850607906363969720583390741889913508386851435185611244990719390252353546581428119529070233834979335695634080876460811045559958944646002851499716448102332067802910845466139494504677691078551676714167457080914853194437084700719826382227770421070365813205318066288148748375000575824328320017325889072474766972462881735310495712014897660981924769757637875066770199462423460272226235965116313802958152522561242475532715600763843160574267045729524451873240249880902264964121679837728089490001147546659765810342073225610165536447747292524698470391606080953514141468037243038354465764904460510096442688261500239251338489029560775787345985482598186558338772363131160645267821014633450815535765053424239207699206596741808640451809649883779793396207923397093289719672248742025425713685101183872539073354112656445108832840409001871530654861155322628336145795509657060267226417717243820424817203930750579926720728141082019613806022031019193077066147109377300205912363230047882705463650941446067109358685128398355979047433646804673787125329841869777856316403087909754647032042057770016368817115618389803326672011803286619103301025479549875979400534038733481276913673628637835868943353978665208563635365848274193066032310799778869181890535366188335044240424590268314471953888061533315818728800440487543539229987288487713415670625092330901969191525140234792595813457861192478458464247399857990416568914023692290410518862577031532712328512584301643412422786240501438746598972623781455717068337606401483244547551484267734938996650274193839970367604144138504552921089376900274493983991405399666771096178981674922092465090109919571530374759416669711427637930694191991292730762221700768507776624916232343512491107822565829608200942798771265159552713597615469077827698142587175962749027113132939155502598664972249377882952684964298090696737663108555211206894604570443851524546418867417045122881566669613366626014257559855413407119172832111712180449325907634550850657817778111757841934152650079744490963826841412848038340741612957897891510523494711103016778185545954720566903168503828209625348824015889899450800931311419875298523281523858740974395167641782300096334111681177951716232107954754152947762240784765634131384557763307790898920076743952566808909273291836692791786584773379148020338573052826145202255122354313753251552700874848862787574595179805275836596098369912117146109145646575973472400495742143872761299261632124164543194492974543704064724796772426938309309145069549511084881161066990216910939711425425954796370047234250604193061660499102129855189703662356169001670356294962250282989464639845144338046877711872954391919110978342328209317330101147768619163801127101974512701331037155127385180131605433845265146006890391391354952347645959347471752018534758615167726377831313824248801838994517372900095492216111548221256114738389448581021713741119939625313591200124688279092057546521773681789120067479746141049253696985084565660030744080509410557496230282186683220142624326746110685687087442766293469324198574231761922427028451413453008119485392080646402383634061491602946853255439990515152843187347617135464995274450340247742252662710393165849603907766790402067738535215605714793779031723226770761168272965387655849085417092948451498135461226014093883426212670622793628078392246649041902320608174383570741671072145831616480481943676810134762305579457999760552656506032388886090304350979088190785119495176807960288959011044452567526962369623348090892664574469439936790807098319787700762168824255049622193209094436002579202422569803499997473324915583435498811378461732251797944738231035925642276860732162065684230277918982656946466447655973246687865694966155917475044837288474919701663222953366967713378115464901084197491279875507035393961579966687580761202036078884170362459670274418963015603409869882322484459070112691250523722575862057669359829126597917458920479153736546144160225727196648658567219565030302110047312259595998250133900820450138144204660897139281969035704848138551981234862298368496693595868035657387581533459619408172553975867179593936585304279281920761120198657145223626293011752545372104164705236544732704587265613121822173062222184929708053847879527978651837240704807529699351471511638216198622940872961656090366809111774587275660869824339598127194034766645940265574838511581455110337525431576894870924038542830802068471761761509965955934535481331964339365417196633721734789374120966774223627577912314285745196659476990675649712787127206907770912645927917838902144297524036158743939015395059753597587166283559174266218207049658032497756087420805818785212515843624074410007125740648601697819665056821140025729243009732046605444920894105423958025790595214066375754518815405649874176043916276635129688778278143375915546097263801187132452635839744805760553176109827268961042533291647909311895366201945316572767428448859811535223150391163410621286718726035260629912593949856139242549231622910246939704885449476581548770255516457719922831546871517262759452060326398924018012221616252644703235795650982669984993318195387854017561060227689033431184699019103580006359866856188752737706073677332476616536061688234786012279741296465338757321491699228057158316308596863623248191250268325112373445855757544827183320406454441884859502597655923864247117975560271308192585692822414297327908797125948217668502383292194892449634511613167992437437451919585918755634943985545344607368671352851983653553713939218707819013391816672664293845278814013434307984476360732467003184363430770536371108846901028203967033619174899519639206333713851088856874880720064823734276435585357197723280450713281524834985876457495192957556593721606779059180633987561768875395256012243320802585607696757248912184048351637736793730057041597602374175811276364932624127833281056274851120476451240176442704854214899092925456842255139562334030093198678358306965613317025740850747323332436040573351545692231361833605580823819901809080844077359156674834210466795020243093396354766894989049855523872580053547842693629110931579931495837353419789641878578617242764943576066014540955336163834708414134066543785775435031500438761915483115405670121910933677334705291305495177521634008024266527925863069749345349407327611062233211725168450093165161174329750563342208608994330311407369377913363897113346274757945108167588088840734931460429579896958248509649491473758795553633362663164040323322802149482904366608496656165647613337580909863619415340297588921595950803165316006044223964362429605740584627180100720091791292263261582738177049640818934923098925722094788571372654757756536622376317793163399815616356929877301947920519090548685774983537078147841652505652945268689728222783543591151324029206165816376953407040825615893525467647905411084546881121212260971896310931590800487068017072137835202671032673456722092918969246611406176587926617171679930956388543557781792940680411544948390087208097393821960911860598758996924711275596949724249405273905819467685894265684994640164475143480168612794176838488786710954332128336069911667836489683457101597366570529987878197305984918309266429348930344051772451023554902803552407592803944723976856215306686681572997982034096289155573850420742623594315730465101480816810811604366411198386242788734653408830562422303238913767559152984454665365115627492462103163059160549952034522205157878735867847361244555687059761391302724868189222527014303599213262777376859362333774821868036754057317035164119408699954537219153702446010880254914515883165668264264169883380382400609687930192077556829172194440292737267069996168798626364275296796028313698234600956077187560246389858984378233794466622182327773078640650729503692604172923279355894364534531143470731842834017283505003092280010036192141145836145158563779478656611121266163023496513205160109851229755566495545219229403486784576970867574590283994958783562505421506144059922394212657914498570278156857223534497626937769548915042992091092661036019020571086745029314106324452488502635786550182369777647299305752410170367511072900783999942095357065729691166667240805640533823172938438099046552014233096039546631674569376351204030521471376136565211392417352611677114666785556648449093721004176399957373176044467078426256993817962473115587147363503895137059636061094401009689168525394667249391919232342367237287449867369431877163792554271742417013608029236141758595592237126515328177801293185074978786435515890631433926037372465162384925428493329157668629171172791015686451405641945138913976176305396799677605971302327620548213288055059397491777478590496617055400013397203391316544593997366019132256275406058007595813617987774206354406949089073444808684359919736010072041753818881650441792786235592270499568037386430140676854685415830499437615332535969117641282673874172897033380127661446546735058186929158250361100022680547067046517501590002292327701193351661034224147719847834121039395801378179304642062904102582990666753345980649768581192042770305387277285711067627697329443350172389795899063823694178332284896185657408412483717864828306902421075809768552458183151369924434809178417006191573934640806944229308490581653305619026032593758705449523219763006965979363994377939205358367656788157832995761333173210917379579897047438897120246219885982059748834946473751463476733517901765771661579337857640545782673403010738968834873491911046632751028353519587883798802573112031477134425327571593496696271696120967971598462446754185010185123384828206003481149741581413527577700191240176626808105187368570320878164949602714127092983145670940877350370263950907988603786164128451086682143737047865284592827500728689004546797278529317807114865223750302422362389002506165881003992819639736792662338334699510271657745538111080898478107630775342638717783242023458264769862961445847031332989154723165663691715765784707155284029954168428808027129523470717779977368116108122655523211396371491136253711239052446081730485512648139785795716186433655377318458923564294634970851440115770637434132851518142300864236121972613747944673176486315866988328879163283503165085013844945091714287838034514889495212836773756153271802546142548249017314411631977141327300531431815363430234537580087565397776820452174803191474992105179528542752652783276519050432188796071309450079905631099435575518579975039007742709134678465413934394945069929595023887752764871337419841668129234524802990471518011788866968243537965267143022461035708461549057814717991171931101669132586095742936398422041648277517974120540699467707083507990941334354947161677967981946439852168294328113380247002776951954543195608280140828180125446243096485089792861414932811900326965712587808629700655132595210964611964035349090468577635711952994328838465291683825292234710963957028466060683751714318328421258815825067515973269235989959681313162330063748146808512064805925848681585520513027782082527891758093171631108284950426063056351796580298890797020981461833946133495348398612034309652717120582047233016340321625142655181958164895441099814505924337741284674433040257744195982873568870889902153540003382691663922522675348295966705160102415532093142412022625708122211164684233301811250700282518332980355639234348916041715987366918640354136495584639237956204845069037234696305377677274521497353208782617440400835120688070211582293980995971414320228205407277714817877964397731127808379612296604782540111515105601934144071196389517954639256336824349755134888924067504239068628742967338762074112518723146374479475138744426575453041147836922658102752301679665751790594095433092607970841149270542495555279496521117410962937863253050455509499001011616935549163778325302805809929195954679510582143452948511445882454947232262526889042065177096186170820756737703550202702423874624819951848008353801902958245247032109215473438883274565762948231356203051916397641446138748095751589083124717943183052596292702287961705897154241651702625354017482498114907436215346421317213574275364985866555453167323371500529613097720697693696888030911076177286717966436090989949947056098810896196071690271427249822214145385015653746478691521375634691146332144532778055540978937916547172162189718653302765473279033480794808650846824361120339099966666342891401636226708957015760537434852265970812072705474145149638751069674571167017552956496795183307876552190766924161757414393266445628963744142447329425231527576400292126424760424091655162191859363663322857945495243356902079692211964742802357447536805324486432858989268194047514259066624101585205330274716594524749949662830054902052592590261550558733593508381878885039503824773977937409162434487042851754090624723614386315317714802842069410860539805902651403164917658169723912084962366188237573171296045358059058569871891157261289634418932129381389119782242914637327797618434034456077297219036622650553725065133363102253916942790667652872872036946952669117084385225592636712479617434482780961900796571931092115145049412611825773457284026608155345724846753463312097343284166116007278459304354172902220064584840723770633706647663428266300778618191749264919282853591651022570864669785047559028780299273421115290653776901921870502120249272429085186560982430520765657232457712109904102663697904212650749172370977587105960646948305738282403153585483720269168752428671944344219402162771974218637166589437584167450437280671624426498580417155024746562731450488039300569996123478988819208237991904856974017696714657507614616008415975011785393930085415830957981002204522248832104858549524950222580615571368890100679702464792902215181339570524867475293184416981953544462998295110146751112162505967435866487269390807352874697840071072795463306445806777986598341058817926731232561202124242834888583018496889740160746878050958728716636123017864431739762547941297249973268447145585577507140644323474385909707872814186227635265019993065497741325730511076791452445716228988877368975771896954872231054394962722535529426942844311629387826128282870864848908140189546395389591619831169380858333717166838445059591819368059940574533638054630519611336591727958205773377244929799582285043580278984315636060991283310019913452026052265056129034258879720044150104388349588719825678343570920893240581887704226149758800631900123995401979078661221793663500539904658198974111598142333917775776486232652271090323034715527828034793898765981410575274517124118193324500968220415154009725430828951705540271139344866459288901027538376307825579391666392088622263853896268492298243987508993007664942938937472681866224831277943512276539372848764165088688575088539566088941631518387301842671016968849090514907789610753324464115288974849816705860711368985368770107968190746043446258228322957257795495133084610285784383667740768751027020441723158850014837828164671605342051261596299434601538313658799606305456690541320446894396804939349647089079950929535689372025334473424911584157917275658280032630421133351761726189046192245229836285770573155475053886994774617527767045764635704628020953033400334948529891380480985112520400522439375046756780389293387551146278321345986963697070686863842090741425669963970998647611490394205186656581482571626872920365577145673355560015729122463113767079291241188594075479030200559529544450184902975675787028115501847054924272931012166622406867620764218409716180972647427624040672497610698263401838469237160393065779547254256562051904281328417674189049616857605839150729112952571732781100393359471713381115757374596071531482718874780000180547410587380058733724955640546821518653981674056558294829471444936544556513693914911410037820179861168493518465413317389915143955550113369412230228218864132732839537674365276262088884448629400851207153436418286978029851482580510642672524967985080567243810839385013074695485688035965113291875247368667900341551425876571877550838927887442942860946143690358101272838715970292666072865793893817292956147993323704462491318465370022963069776210274568721052851091672754832504892812519596365498951651402405757966846191000375341630219981683094175143058138178783080061127173569774429545069878167786049681106422413754567371212565575939342721560308975565482632796442317717399059561313723437916773798845853983806849985633992441623416545933457998707351743416773920834647591250785099973805350068294401259120283277318878784909869215091587792347210016370592393940801593380472739107500165419431515447500580744934884090457646301946834500830123207734563599693282346928516966738276822024100372123991281013398553018602150541850037346302333116634612757343066257942056701966163450575437281757397832922524563144973641500749970502759352137867525841612195943784670670353882470294508895031881009614481767321590617963947103451054005097435249921736562380674555302949103081334641281565198968735099786042188438969959580981065433501477101856701694108154571446197785695414824291409206958339426465455938173810558823404947708451659392487141945107588164996286959610679357350643091957184657680921815051923177297096542555654850812552295188108322306886200488292933894824106057575616765681042515925244194365914562074217880864144777447611199470003418807315290506614233320550891029754645646924901201693460209430785602269831978491566803002933925501488061713846748702044906551200638924935018840473176098486189159308004224007298322403841135696537132907254383107450753124798479336709639810887865961177094687138703960354378056571979947346948649726913756842583341976074989187750479518577501455179014226372398270933045515363116766831834027345186789728398758794969118739160702378558445946712077467149526133236544640428560446258199278243192376493371672394175869347212194123240175591840729644139630391028676820498004156840986937911949731950026001941604406417634952081792100667470750340594093027719566500319797581031536245256055417958128175404574986646328856456814519704687073280156103290385325470120312642496014032870556975540156017668454323859679664473273031270544634594333621134361474789223458811183921737173206230248855102048506781284997128575991713125274632722058283796153792810512597621342889960710244310527736228161980618445544785923041590400901903338200692983453364835779017467045362221683509190080202553838384518510854804346999682689314400913903524058909782839637597432357280550216958969499603501953040488789613992545000743384383688138437972814410822814929571456027725275057642936944963464033400594335627643357731629158848462217648701294213435164430511964884161518280994578949205072865303336415355544514312872240495282069596206023035844822815349926919808178961584129774443139612207220635238267107157973579751886843129662025111897756498989243551929855237635508868613102449540964072801428966270430625075204974340312890899865318728611057088915817853157599784624450174479270841013463718949149841462979483124190766938151659079184151907561502416689755365385964066811150823215126105941606946032692629129250021718931987966127758842857896468500003679725773638600885284168134324133274656628232022235596945129000430926575461177297975321782939409885211991553038756415842218572128363649177519400003415420565844766737179455329288904863035774138858300929242191406423512391270465527478744128953826437834790610657086575565135370207133774853540982499717527382770431096313786062330884978464221824359655887483056881792680499768435257206455059588019165820109764679358502850358963571714302802540111831489407555364851958177506359255000430156413096767769347231911838488600333970233192717357704443461358067568748548525093744171006905990976628130339970426083817989663987177143852067119335210758487313269281098372618288464652670395376494223179375641500591046108923491306163572808665461704270215005170060102988986638089760293951249080777290065953707597985040049121927973726778046628563246668689410535839802821674700267000536308907697054403621067736278884865651683830800572152638790824693165707358021453600094709953144131040745361018123779326813285262406559206173327107340960844367567348109390008641904772476340125654690883580444726118947228434259095425776457829383134191890105270434326801066365186684996205128254249733730679534263189323936422105132293800772159358213117285839400176663648206106069655342968321180779572799819695118738312318665977920109539087946690064573465384200132595911539547435090894866673071675562353189480695181765413124208594049074634867638399813879678479845251785388563175158080336172752317417076381553489388137613727465869381035406486327730673524385246971924989218149244000032254549413756178634847705836661662410847526535422354816206073542198187059707631550715809113928968337664758402973766325586425876291388231924171783720359341064889000277077154264318051983850056695508592938949665125241535589565652844072888251537289888053041542345876025927533701600807306735183350802009799206446118308084347339258837380152800872378678988289971281917251944119469480511484027276282931747518716129342172471209961447351019201517308083836272123434298900952515356630289973908948103753618779896148016116199004712024777980493407845083108478596131270813110167397912877267203180894362395017604377083381401952321276041053981848976382056834563999671506554469321528023728406372967590692536113586417123124347688495105023485155556136650785205407398867349099745041138205222951733773099300482367100803901479201406103166824539526050515296751283853552798377903994430189318831583380247845297416678146272422570796504281864232647688634554007738981841594293861242433380771569956991519277831490131096965463242485196578862114013108186268387254912551982407323727416787201600655950826380327954884479657708935973216348363905602929653142036113644508106162416770046163882615323388057568711190336590474500420906202476056714922373683686965361424344293605914255126890252340769110258411963038529703305330760092049097714198494394628005514321257026814733899096794662468186728936786627277520537107213423826129105829556178839138448049276663627571962626104920341520204868787654758195909814033928860368310138588648909459156346451930775856309208942540060546288124221233378781970532574523737019749968944584130282690626344930486742970941809632117027301983245574887970352606181078791693999446864508993228325368473791345597977779971987708284622857135562221905765485746744942811497659006948144467921414187775209563133159823102035308334001900377997918374943919317322753066493646257739821513816248258274140942240971758813926603045525239758823638474154113730806859217614311001551375856769488083592962099088285077040310106900800703376851782154174255271224806136316607334128912587526213700388748887699389872978575672445503073765703324814515628337666826171324975673911447840301409070852283659404517334512230405320391320104887312833904462035225911770027217593719927075971299491776086591486573023518289868956222018410571091734305579137710622396205254041385932086580308364648068285810851210063476334412084901911905346551136484462336139751562726848338192820123543390932050829535050624489352722273114132520811400570111053871654264392715063086545309066780033420803466639208188322703250748622719421218652505580680411517718381761872383072617761780551323303982034185726462061813160957701128622053090031545960732999311827787486662880238504107730676110534776031255336776972406510660766774476447522398457812311411285231489500770078550891981932141037775595956098447947719426636217554832665334862589502512191978391377896917486852177166964480416460250410551797596459551245068968407685909497930448513611838160040081088172769321873406154236628072108030542155404722980095257150417204916515694857450065758777710849693274003102252688294812423026194468647375497270886596548599699517996549647352358900723622641985111870579615933255533564176266524927164319818923383007825051284676417605575748811582780809641564391431677211585282353259438256778996856246911211847976614192260003834616444677102247657119813074991632032836288231114439733929338288754987953575252384421350943403365390604169854272697132407908015981417135230261135744172958425784708661370615048483650930565192002790898697234602340743136224276985893730045239639217398576585695788498101501623367244642131385684059379567143437031559123951738562967282245341130059869450574276161895842979653256624527095344304297844222163115606263711798161764907503941062698016472561094919868374912140617769648181171898423691494649497990329184896345556415306116613387543262229503050154303766669543091293890579029852050545220404032608035435771495152368812679793849431299986748697423381501536130910125087866359602270510436998974238511637556795497451784854354360687791064646835234257404011607200451843102686114965261901961327571914544831639749581580651849156105216529432620214382061647799471424948840509525628210615238907795734739204585969670505918600294442481342456660591070083518461544379478437612068756206869266509048808527183347538814825427990894336587428869058350353195201517524887083247661352603668946783723066280180986427131076424876083195766148433610579381883761884497542151873654651505510028070770953822516896369579005946323821860211642922204486163671116876607177495224101515818798106137608026964155851759549412182184866734120120341314901944593970317202180346494497336664956812294900344508936885589989222915884279810690079974957365830800146941610853544053027192149202419817741716090950814242478018064684173902845001551962419277799270593750743522960830135021598442752050610243351015673070140790039768221180287948958233882300040542118288521957868117257244873490414525231801089365634888998952535628241781681088098135169357696903826652370908847106080577791377340192958577724369494296866856739904396518794241329439922850617933601425775141037400874418788588622023889875276943708024720461130755066661810026494512493588396490503644752520311325542984028079134467687694822218804681738118857999685149687330422995767572895823977981734502567535933795282058236890004328883316689724039025063843777948198251931121368654651608259505092670910735163949963246487365213074094014626852596814682221988300686880503983678077760037462183597261393703518113896975612648100158126802558848817450546638972080349557685329556401425905561879810458611348629483560607688920545112844911775477437376404588583668505650201969573130249346911477822705923101570701785197618324892846233430796158856152372042454182467492162161742355490295580703052275280522625833891923372480063901921531623720294762898417728211988986173103466575102825940091065744321558046192492841803827682996493650440888116499664767934641688894320906109335478381692633101744694988953612714517383930568303853445687058951850055497764194983368165035619309986654820956225760646006100727886947111292785590063818951518046872975678425878381085347540050578682280467566310739387034654199446499618841747430067069318863808946360201733105452269650626898391119536105861926017841330081262630916795131326737689771319602228395387652493016745081594314999283202780132920521085737393032746965488349107469136665589493888890202678528072460967478829651021384897329745323195753163635458184563661596789023213979523432359865207964403139096823539271156839525175402281141879021533395565421756342519588223120113830311245334257833566572507364907679204049576777889131185884821247596499910285217877821677252744543354907233108844490868685447618906058707943042265364493454644932410804268669336888434634004702213432812827570291745066427723527899783546219601387426816746687764043319834072137235121083189713439860232884619344147068355832175858087787085279596698172165900024184751923094958952317428601531703971829318997746337529488115725106619932455685306664338056342380355490977174664541770004121136651203267305877046324976651144827764414265735092858229084546249078131401084112846401535886690657191614233781242705693522452935073231996925258290992883660714835694768776196797128252405547272053416223660253267745281768975201141448063039734354690231505795229075183795961308393139532405164677045344424491040909431500473402968446717482743296198810075038389314566228819691950107443259422159771186417774709894034881040842883628166705142241682533321720176485837626991109350806913273784890635626451821743792029108977617025503366013277991655594619438459319284311841392574544348341049371229239390955541953713888874009532203933019796827849791781281071140294691545667360789067098489029179224638401475651886166213767784828154577947199981175909043034874052959883737691838372295371261793157181105930889832686950328037087932087992169000616488889289267746324658738144582594648550054519290544855530708886371536470670092769966342688795723909051865294577262731644176147004082310165910870395613586433314424695237164373768685984795258593087879108623520320924949659175371021186804767993346235890940223833948252646930030804461956797087403425822163868941864584114510639384343080157686343328336563178170225013371518929273053304440925657870755876631479607892176716432338447794200106819369586596503597405030849007827463429671187455623378451995282348441443988409889730686283987261115291619948374065640890428412384472829638805348527817798554640246144967013676327648789485777784097740102455593352068976787932520103739371424790757953369791084325544728082155289101833834214978560796283096980043806240406663724591748581669376072470301676627721200072175010301446326592753968967051995855386505048349350309807085265743798301790770024462025245917957164247616711655480248432401671543176838561141609591726365764634699645653650354932160448942609144700115100796803175433663533848065528551438138609954002651195775044206489913225657412185423125058351298024155333582601665028577631146254711748974717549560001084253609477661031230492957845462924911514919680765549776145193379309073774731352780471913231511977612753840265749259367738008814964384423515040329164370564608668106862583616521032121433628094890917246532790887453122246298392022875232009810603471127486024360015359442036734816182439354740680334308208765424828978295997314905458075728606858752776098869693641342800950555526432278165424669271674721803940972290440093624161127797005958289755883698116357953960746639099366907731502521995420360638782792760506235180463898686470208777061516580205917889498411788733654246822783179226986907224137949785629178095385984162576847369732350979171960457093640410472254568256011395985849025192485841030779276819564171066545191465584160481889359636002185987855627944556305368091416566805375421912501546962782678283269878384956424009486201203916599930505178552958362805318646536588330349847778492711274637480555507473901258823328073215861274937893172715796383739796433909442852324892681321009275248537416225584480593154500000961115877321357927248808893153848449558933601991470683740065164171362575998838245447193701654349484025155684001348705428767475092348986624303782976173500370370872909008858710785964344593177292683668864119500663958328258325341824452878059231283553944943922929615174626236303850761724570967059465455774717846664877198388137334696214995406856076995137560504791945252379051467527861910145415308516569998238137943068744728818105825470143252407114265920502796701344982534949654371837570800017059716718799195890706557810220969733377681789788857760367717326459021843705318157175300595959390872024285131368713342654815491417069908342441789914884213475711536763266496309442167195687214928665718706083004727904647432769593016689392838097404090047048038659539299078487941565907256514153473157136758696758765984971284634163253986135148142057142951929816516066647588981927619095255783663490246520771273579140049031962063008372518782969342727567450071443633129619402731986748736587379719101904732059158030709514935974243648829297642198214524872029401181206804932785399154442584122160131266515643407927518634407863988930483176693475277385933201185015717626349747150374121164641721897457307563927568394825969902231152249790357273303029053602621918416689065990179561942881319287400197767517546325947450480259549576456088874240330157336006030045678128724515876026859324593413930570628049311653714839627910685223328866767609496454610510463722168176938729260018067995425587312080752318709269420212495663868244870150358920366003022637801530754017483572604939722602603474156519976328289869347591414511999295906448541460335842536822853825507800982645867987984903211630360999603759970208460531849757182217803029979411091297085840134697146140495751663193967164724848049204748218829470942804462242992288330017150675260774563158582572885080112814310754186697450557694506075601097659797512849417204319610542475439508773868565335908090860214611448953290798215318103005369139727345974000467991871015768018573662328836134860925094442164266449763806209430485368389403586940049543582258358511864220504452872302657470559562091593092835799380590848841074978022395797181364357711420935907649564456593383522431721734605094520424509823819457098550344744851412763938438566798559376837322741748382129678407357580883452674726419037959504122455921637793174309843939014890324172765422997130949033817516654824458780611340628610501325297361860941178125933037436936440685990095741051523333822726123194654734768590461443600088228959583770960596397962922524011974854452516371145956231817881213405997080652615835118296936929234501872376220797869575281540244714636113723468964878070832155164758433665723716018002984195021638464554065452754218220181972798013658146242890702049866644721050749851272176958767792716569937145971217562431179275026519679863665285076826018198410801702706358090509635098120237710233427257943487725502057775912243872697262037807225541897822785479083360576430086179401404809696096779177640359484400394246500643144115831660867289813664684320850642984777229412090391059377417399349472643632301211741714662802123464077468221637754355992594193878766885281462100949626913457798080760499929188049133188335754679648950793276395854159055074458676291195610489630571770750085583984496342785385584025397665545753869689043212484984215806006275227425135075506155734287081299624622579905047394640803282209180531332620050796590072511112627166621127499198484730225488153173058289698149319477306392023720954809122545540326586945189669717204999457208192985972949354559428756638603382957822051575318792380043576550376640829063741393498054261436228954955178777298416519656937490761613813827929209543332636289331245854673538347791524907384880665886473224660861468615748865145467158187139250188630585056029619521347330863980546655757876357887637979581439302752441562764687712883451567395973904894899667741072717722161222073008077215203871592294901081729944660276055206527134785986347212164325193216705335670535740616483453038636549577003875059080935027064046601511728573194801575042940635205014745745679497519607095098819377608015868088022624002532807700260116265521285949758998187301988901597010330060743109357008104702741526448231296201254818630935204623413551026484874077960767569748588507700499342875411449560588538365641799910921065189773407758648850275742624357228181194909117256872035811043486916393109521405410066685611779990926404653600103532985535782825711835261599476216591888950592353875961626500302094153242449339066312255781358237925447734907619453143282040910767665507533678602682134003181015800799841542166386781694275499385356231585729023638681521915496610127659161710176831871554632439278206549815061257178394425125450699418266861613414433616186420722352272050043619780312079637008061101403397633873966878095377434243427252992272903695913805510195998559450040157423267601718196532776686665754778073778079990897113850717592992029817675027306438880895292772895657265455954765306129604646460597151988049309062603137688343622485919056085672274871925921620083506151713897581858376838391182450803598012536370566165126567464753724401517465163195480625732889514545493671764460619721620998854620248498129377631537436546672193919693536079595916464956561830330291813480611987153680294985136477600141111079014339110749488117871695004072345801994285804331541386127903899258966818700218828231462779715073597373263542731809318949448790047382159934915784300040940465891798309482868875215097365746180159569879851303449969463347182786790853518744576529921229446702666171824396803970195631368987910192088712848229895366791269581224774963735107408009716429508000879436072091551096948001007325753190898313534675578040832372937302206104209205163675124074294045669105201636196551063090554640448417629939680170280643346100859208877423199757895936929102013072821822739504884158077337915101210654478498116691683234868228463325659184539773733605315139862502348614314049524922691804369692149222827439373342320828171206390116265073691516820047929315645353549040611696879527248626265769891951299333359591215240538293456907353313351230698392123626717163878158577502132196824621133459982243291091257219196195593280608485808564626883325985497734890224047926933169887359430479215053932914657232012015418728295231631475599357269832765798101127150946303569350056290512379204647269244170571891958081673018318524557948152632684028409911737880526023648053695614759861944807356882205912294143620160369311741504868503731455913564930365447192563180895073732187577134439266710010227079400711817346601941005330594667811595032363829905970891371974340525949058459478664728127915046059457789358517855900413958450370136826067096207433129655315864358325846941255306095902515108073779880249082280419050641943173802709255245007170654063680896234181394406543565281732606746252629666847517925107299173274571667042785591518988216754501406682215120939038724174814195143091937133279256281434087813332517626788775903770284373344158556013318147828233392773353254463599711907446814372775466371885537424757764984985345777795870626654452568866438285935274659309275074116405346162974977347495411185281097347017598464428965568326883749434163672642877889391001566845169762674023201366224998064346541235983210434151990450329048458779454762131352760309539772255500060238466783046279891489163558282875317236954202929817832298635089978752650898763054746126094029615553050641709146525338174561436434915943810864893405998269208854086675508482493596622406998680111015823183643904881582538742480237697995584169996714009152792054432500972228487133898587479532568416638459430673497063650740980171444150929255533591153345309918602605548584108565235868054464156369049732495201598624257689724434026223251395563370179206410705444056028483200706624561437073638175940647651240247590733173571759254422436892083678869191240100930063767960610511878235818336912367304979560893828710571787117320063560104751581232078178616091567855385601162111141751497914351077583016859450771155698722981543757213603235903681535012073325451608970168470763314453415401159834530887247574423411860211271498227213163319700002822837448993060772349789791668092802545759739615737329375450869200708949794081925019338028806375239129531863893610345102470556954750567156910368338442067745641001018497031335336455625840225287799954363118484540802000924305625141842116946253085379261013409659895666107999263230247943913434704689916425788012063494056328945269954977766907113517450590626759934439594344901786333107367699942812923655723775813730640665947461144974603552323339611820154866893634737389765587178354518447769076366424028285177574187417726357492991733957854002777135660069485049777156159787049531823046793839733878781178393452463158687654754229687432934974201153890923523690820548973939627883213909754666543847268065524580223396239760159857825641034082580422663625126269451050779936574967407304071218800051527647071190909870400439463139565415875151165743409393619608197547111742809726471523151044519791559929994939713631042733698885357490443863801187532150765018608567751738744049908039123868108575792125894427341702870351478104219375976787563597990760265279893573353220293886694293640682594048155643972888342774904137829307226677540025055688044194957604873913643484124764574918141428887494176389366556276471597883344659394133526944213702686903051748557465488866621708534997874382257078117985695648906463727828083888599368045640857448427950485104219606259940187160271828192444164097981162737325195965186734159483103586753789469931135539471572875408667181241918716710796025872044666322225908241321780048806760373009272776876623021690932733876647550551762004890554754916894085378310647461065359362604984236871385147968595844429887848524055317158358604079342445895563724790144573613928371064291281002501382008041584312307148317393400843754445553252915404346899283144032662963840588476686287609014691992662543614750515307927931701040293564059044975293265929280362170490930927893942464653583885815234055521844605900758103511990213556379368368402507185816681467815572211376695663126023197286094100397343855824282166174286623742083512250231286235911813395630253362996999186302166194139134543336401485612378175284788221394146270218525675415807291554674737684179188375061105876327685883402805465259016278213077652501682518728095642317362769969345766546125712030050040005688572273077783126516748585055212357675301115092101393152428593024584002676036355278139172856223563542973164050236248186544110033772149839935137302950980665364408337287783851113892237118574643112118522828118298868506843454911732874798040337527621404851914696470283435896763927090078085716858929772675614392166487422719277699853872452006297622263389937011437758203329016643612406372608086561997083951033268371146472193358410719507322409165808548015170779204943000786433941151063430750251874233670463840579704478341102297736562434334801230838142532070879042918665283669443987501699223496258464820483168129294905486752940826218628440991035825066238170515282938995940305067178515700035563562692374291570167988098829518047454718305447745572463957102523413141472666706083338236059709885624206879681900958515801006752724459128131169221765089429794741065281633543166847439474946943965581379258265138384811966023253873060581723525505198485566103571252844774814643754589991437263334045405488802930645716289864155738245033064313189188187141183797081047122586767477762797241395191707512037517164375658861423385679595994693438634630037519949844739177273346841615639770132079664637058747064153446834373799398202903476026025936084974953901289919151327258810760805081476347453349604759386518361204839805743681211540583320967250388012057733983771300022979393718559811956896307721766322496376074362499999461322376253284116917184127960879310789429751445698221991177713144149552142134213128711398436781232087882029897704600172307710426202129511387702548143180595900115520742564977000433349147192604500229875372651567020527401883293446754504894215287904057253815109962932842823876346261936618822951867924488760312134696614371479717275798649225414113810257344579841559232005397358067706875251260346713228369181535091500379022238205378458966276251796305846119387853827290716876426732857324826033868824214429572885255753544303882660919375438160910619279240259615162453952477488972697755430520865426056991566047935615300954323658154648963150982186673183043202101787681549175649045023460648754265476933466966149906222204131168088504087472522170040106310158572129818978787261984287192535518127910876280935080948006559942250871598720059349130332031947207320325221491960552239716202319444261656057072390252489412696656648522802240798191857040333170315207833983278780154024612020252374698146873371041857564589500328122960953172762299514430101227176380981851181948666378652347476309524434820707313268000742863359778865904708277746387132500577803454266177237940763998458862002316011912461572403444773013486254895901886391013185554291183835161377948107765625228038380437851726060442393340013885336670595312315634018747212117098455962749585629031879560053314344233440651757182271553643550595598304256029944323179244230698017438825939698552866628427754145623043026306017895123985069628887478814591339815555030625110458503340060301194339094185135060784093073938184844624800339739624483029927095485355435856739457820795881862000643400478950876969847485323752881467896258856362719785536643030301145776352133795027087416586481620461575820366421491940902205449984918985528818583191697419002822459572036568006266094949100483508854872470914207825128897027676969984069077372238115225609363231147156451224546576883004507611713447268092105704338249958388223636345337821720464049054626037911595724527281126267194622948428574343393987964688743040361685306229630022854578439034911659132816841777120575245871844856880620772416805485341180463678886317704120266795717390697665747637625295890453013836261764724521543944064902991461090998108437774845102593407443584776889705071202342541446026375991782115382948602436389430474502120690706037871934563469489674964210918281540633195234651477626413786154186177685396341929716439874075425958254806029911551741114029081194521096001145882001489794066613190705832337801558045403960070720040629259071373958119173472446386982336787521468827341274164288666669258718613585508301544806930549901861823637743631677238413344044503709555305366895375307602989735854756188929347059197858658058131736910175693712950330400626766647960808202636479477366892472030023146440166297983554520252611003149702981493151320938810784045438893095461538973783719123644750959770961093066842408516350847954806519398809405543163704997827630978944043142390799973899622720584970648668405958308842683103411265112986898927759827829801395565387315096217927701049581038769046090349060746886037945349539805854938004519399082670549011028052915241745812233875083618504776385755394904909231284961050815025411847381541027682902438953324972218298380258466690622472320084631141195516058313900223595821850936549127395242638817530760508250236355204955157778652626512348336033674588844485808696126785126751709647296487356037379830990709834502804590179569136620367407429433158842496730488235931349185909939683571306301609407079301781756933105097924583362636428452655117637629349339620848624149708228797459766040374810280516657760959110513201303787383947736949593086016712759273302430908105632047186308060814594524705755246562758886647566402103120711492445633554507480924997231106290699359386082372280313060118281481811795824480306453570804409796044028407643970564147417197345730487551116037027884115581152949173607265948413167024832650085487788499646646024787989117033493248756154942325953634787881665928834170841275174178730606116566999861612161496473258687427859329967068004902719323808373055557832394818107365296257781798699432309071463526800646007307281523803390691042435012569660432201276876124076299075776067985181525492290941569034822754023091132035281990160278140152800655529765445362959127890418940163154077350979797298773109504183211222509451493803652790549996570502394275223468092131455138809476552143313970342674140771190828612246135448819194000988161711740570194962369598799378182069603140849816569384000531497771286579324954729218967906665333833500741570802743798947445508777882196153537180440167162998401392751243914238734385028966612969746860475343986204583826791070742689735085477747048641902615245402328941696599780439407901141846253010230375078422064056692679702576870269519412178085975706107008870338523444767023269993601346009470289644639468711253531912780376236462585239339141332011619975485454897636131928303222440547580359635226333875982174405476394388853721553873604775202685376178602086141042857984338861329410808576574878228575436836123596277890961892632740532617072112488434593245287047805823203470897635433935363292940908069596295866475287684762381888221928291883352281036754217422500465659312997946394625068876783792332166192455280283239070437816947893311881184184251774610796962864758535154044288132136926276686436111745512769465579559958383476532510665623658720249085656888307402038682444809614995230249779244106529998942809072353429936878058755967692937615199139364883818174504690297513892123054142142643974427580097626167914705320780627671092009557978956648110658163826410269512868098098391564183021541111128917397874012276794449257653063365101078806387836331290130228548174270878109720031403326525226598693624276788556095171052059744638306442185922610537352047246050528309069084333110375799355658922916587897994224379150156816442282027972167330864279527182281518804149539971455893157736544512012158717666806980659693040339784997125533591363411386124529189595560768576896025973593555604952411321496690572927275673334874316071619228641341371779370075440938195872227386205150678449573679678865689336497920092612001135651541895883671544780122827596889901764728414315266201970717006296199472624182267191372182651460871994190543772547220147104309415514184925512644547176606109288431595666076240154669241693768577063297870215496104819545811946324050506628092687303174910442849180665354144566289482829656273209716334017918164975501854225754848309169880763647922240399133218956167044593077177176560324737315713556981548334034107845968451205306091551556254393165768645994937167449248899733982246222646167064702713996120913928363519623718839684047931914392832617265842577121154529002553074241440115370127267724977251514333624253653159204888136684177625222468380151987803112020649020661802294219415636261513245666583951905775710745153605015094904642167326443686806419708607910611270657612474311340568630569381979638850832821761269226111349082870661669371132190159919801884327191709190172733217279811264198507751488693413164977434021768373555602768689531291728370945583414712223884577144735491944400387348340780532691980729033834628958613145873980645125572310663976933716372059196749189407519607680014048994565557990178048702138690679713784673208833243703869430213765723939288520335561572559803531418709451922142824695867872576455647897158520139048569709014172672985797517225302918919770656280780387306046631614550041509366942485009304779630907670006524791488980526645283637134944940079336020823645654342727333842315262833971668121842732085124141964441910917747488899774066054671345087554307171323892469953379396724431772213088792694332737774406308394604337711888907816517794964284386813194371307988387118350274606819802276156379058878073652569838654734465295585715235169353065409542787052510999911746149926483487205634492608105747962247648653179882696511782539770114337395670921664368610143542312395158675648496149681394886246136248200424325238407789051996834220257412164495434867926298819824517848567043210838975153298358311058334064110772170152624237884203277530135816796161687339368124611861370213274556643877765172468534080566473488803690604579210677149854257378039398378909728497353998619515478458684074364102735645258983404552242011893941178127425160041644197822916042484844627370005161604526315300481656947262300868620023377485675879958437520309854305078193014842795173946236354687233654759900248804230529417639069114615805845808726567436696432408357670884608523656685693179061667327223113867944082088853305260670508410910412774742451709521057831800535174926818272460377085880684854038948335309495613430537269195980599012521661543807744389570788677818014192124649670526185734730364769297720486036235978739608169580073885352512773606517327122737297458220361276931675884489265645231746823170342795456687443225129411056492295051876727590320347868242580124731011282785815856242118396810036599251223363546284871077260614645521324911180928853527268803806953734495317158751596186418483803676936295852135439562189143738049788646934828867074933565455597730874474781612389898628212176272427681484765386206928473789016602740889758599135885804706082606432722668210499992039457125035901161466618961627130625357576524539105102999965327679940028989834712740489482046086354264064633977424129851573653042049397075628283994895710264239744663157533913516267992772247525949908074587885289191923082400614223933474917386655721972468720531194861748759520047037458992326818830172576806019313161869338840529209043449083919247355177976277717603615983702417221592667416723337542634383449782982008972530143767300046664409387491192344596993441483838658491226367388669620008854546215595600959750483027698472141210303794834334793312825310922560939327255194154703258253559295541215027454209573890695286493431915027104788878146022442031681719561334223764104262205030138866216809144947110276483769761634032480418010414613576425371909985606841273221046744439319547264930730749938368475149805669346648057807274188789040430581568110601510355069948948832577324468300385437277485682230964023816570241298761902916440706156641233301971248262805153929187193385388694164150886315322786263719140437239952462502931563905077643779975339960865949626430999151523809614829692867855884732759931783325833112099336810387938919782840198207380526051596304406164843663219509842651742820802493880635524956394670305196379398034984151355068004637460728018059974258153585947821339632758024566669122629269058351917410516076713230859170841757414238845852084271262369349479670688969126677516401974874545224656533830168116301661952562964118447652986115784431738949311487076980609737620385914585390844224225568137971355642849605389249238459501123648381264125624168258985458348867367069347635039016740317378792385160240937640627046069352089377919286521730560939822164805465330920191423583037454000190588945605540871451964830798692797253508318314604569897446027376672312007226734018920524884717581303628541887138387082922525130704172048582852613575442578017214260391726509761835415593807511790475976511879792472157171352704645357259019820213638631420337958913683568671522225318050935183929877820124247165618128930710170490500343624379404482291189938294816981734573380972124786518763723053674234733426151100593486619600784748747928180479025859919406602513273519831797913337805889986017653319795360523370561465562748478691555888906450878710805251683655903515361600543937767939253146880946591668489683142087537806834165872667927998548024717616568844033679140998273206504117210670151742632023945722613382960750900817619442234391642740186276486117283770117269458260149948455184389029212794416359755539107031579395030576203358478603167131876639351031285999121702188168605250244764900662412326032763982276411463291956584399535191367901884908518298917142613787252630730375748549594150988483885941876592828718207494597140898517934415453491974857194180718369104500472304322377261019846559889210383728427042494149871743127771097287467606892242033665301525894311303892624465534549776443996967483881092201385708068026068673402772750661586145367561460857842285837931279355359551636887497957501133672126828868121230504017770321459071474953495859431349264267769391420269758124024921502617894829796902519075480148151852284612728023375477639142891239762976586004058520327977371108083345134538977638991827154277165013520554745223745060712999428568287724744242531422768979442729219173523405301306667908358278525653819902266124994732967944084444556147675942866744007101252106366400348714125642757054330158143121536442226403481522135050418610470063997808805797119760299795175705006722121564307170101721066419016495998762140185340062708528977746373383133128866184249693396249192537964830425299437566744062766627352275906762618002844583079676090790581432274007362030320593568407382762670845849144278549641622082705253582293134127535898783194051140158081546482789249288577065779645720575699369074086234544771010719470180065418696587630180610194844628347410517649872491557158704149393376303261095518220502149066422347988713159708052952066101590867222728338913292030603936399323312838639118671367605685030229603277741401194562540934735670379034400880597504004375604582518045138517390696367893303295458125549583430815030269448235385467690363125090780768243418400732972005368192552369038973751130574872919028189545802740081035133537134722064774343125034286727257135368728187774203962729171251903820110445522143835623090626820033731725209056054638316237590654452272476798025733990279085071875559083780820596705571865762382542962908034059370570846956274873662451359857406289432271714253981459218185920855998003867914877917462567039304304227504550782613065898135835680887373490261270580183188942801308428334921731501175296579752688438186278079056600876084836792854242628548174235842585027318714631728724878292668026599136101781094370115192241635895469847036515477525159704346220862616725683263180061381655285115065228441704623194136601511067890927445917793213829228181791247920825486444234062826226817455145536772358941679845789656636306678562067423611251638803080879316443965976902085453371581422619032741077206924133432352189151708497046015202873469186548366974209726852254744415268949321893003025426864279987695000042677706147938509816023587417590136865443789991807464707315559797048149249617433473008445358002833961301248425646422031909836629706575538597129309056410760314014976731330614221050399999578900554535440055887801610440435747296483473619461573187951440127939910821811989784221125249377602353557775565375152990587087647761492450365099815122773820513377109181570501188612253857563241500186525495581811933058550428498892877190851111783136926820638897492035703181265702656309797622375581825258628671025647224556051431903248310792524591405438765293646972120757616417679118506402292704151696003887037957174242644142726805037255244459038828392365348247823611373997164347912500137106736650678383684031456707442291110078944857795495371027727652766174339310550529002921433669196077244577809254709459747640852472901487226188080691748866274852527670743081557636992059095133092294611534043456577372025774304459660017460602667081255296932801645105492553238513163351346150829272523373724844594485605306783683429755365165530266617109113595431404086261928910067131744173145591305803581969640801513198594816303313987485122399670718960756288504417597253373882878894451044726192117039650741715992214636649005669765054493910679659254220378260778881239290027891540274259376319102104865724943355030248931186748140380160185906335262776689034316367329755402815075886075080942169426354274667533420983505702106694358625043308340260503717490454035306610960961251215519347059957241152371841424239135984593176954441297673938707353805075736021043124153395121040675200322475482873339641642719076945366078948707042940518315058564391047298441888983814803482796031834424466657005518438457708059260207040611081133353875198925628296361185707060440587914886284466967835381368998800444824526022829808271143608898369511407408004935365658539308609177317047668341554630797108586142335622382279425876834258529034022542441438781833995595150913083245252448616226488992287207870861158869470495109436468002466039266433676059429435980329798165760945961119573830067327181005921147043948138895666795679576149821759368925980375136549847855113192228481900330899552036541493919214238147346477329914675284181675640331321393898509108739996827578297997862125247625268655746476304766295363064450627794164788284972609666794188557519770882476901020651617268217944115333531967717868051872452449655205344237971081684279891789325223359793330735616560794625808978954223057042012359654643828849448767016649626516122012630489137734453893616482093735139551094148921390179191141402814262380226415458512576697314782283909664409909195825595440105816295965992764294168028214037972444797615191268563007638218636400622297061308748915877397428286695096251927184275176544694999195934149194485764787551746691951057202444522509250050288452557366799523377177233979358715932198559505602903208218588607576508080444378332773965194054635814192576051266007521988332895766347578856309011257925316118849258491245448093716102313638666803507788862411439563812562099191883436742734070264331158236553997465806480147998288550169352439118929726226564752214905837743087627254625812347004488817433502997913479905361388521080397751383962198456771791175553533736028276941385640993884141496137109325860222015243648956272530420201707854711006410330928778170805075481920955310592535816460535013601877755506144071501893209818161469165081942575765964371220009272941802669422042245672207063958829030373517238158527832961334825606095750075730000452339573795954215869975482730420550119375943177545153243368117029148185708585860224515997520563717257911558785423221104021430412743828486868941509556458452257638923603280785243003499162650170258950096652184942404803076635359600712781537842727609296732492382734130737331505168632417542436776129862849975304793485460160028106443330398699895128081394364770578605003270238411887131641589317031898637747676466602122774770410223045756710152126302121033710535942577182505769281673401472310952953904858931228466309136456744397221021151602064050103146411925388428076776372056753043995633892459294058197575380549084218749258877744176497137536520290451080634280244622575707124332599151161934560755559844090272393186647695962319105333159746691345125212549797214888760820250604959390639285021038275740761584264494806241343839683058586313639408624530346496494012142066113800137914626727470559154827256789620573342676892870353161835283182754784246469776670330672777430674592559785270975764573512603200609900785843445935650606444210627951124893988156284012386043325295146839892759521047030395852568758700755631831692864164337897024278594663778564318654574519091234600899033971275482683793265793361386552423423439998995275942143867466644673328600196461349579244531713480701602826020719936192473854522811902934743124936471262268930788801127049600938224932788161798347021149322209912098078274772863595812167351514401986372202189704986134185101964174815177607399546270160818663027811876155831295793252314920474144610053836969870236520698768052581746317703703385197340308453100131018464911200373174139477918226923108861764931779322994408332894713989285949302971315524863394395326495003013768511070482882963830888411809164023438930303934462168017758183291145391464633073025037076655489255909132370171003436529111929660441940921034234778188257364467638523275429983391970871083107253573029541638663988599096193923940349399311411941413217325788701617684261663692153240925053237981537260610663070307077737884807049490487834522245805429908241231665759437559004968060727921562430774672816355385269102782244304967458906937368291780526808152142771883492166756600700991236785555473011174788228671047251221743019767473046592617490886062767688421088225141521756463469043035139693060443956773135829527716397197482344122118818582698823028457910615699291611272853158937287384925996210523878548085985132347875685057599162172179533877029957938297226313174845939644385878549843620645223421490930508210248322558729496687629113045658055428813870424414677905110649529240627385668249244701308515347730253191590863098025720397317418752028793517553016903682169793813814251606096802277400937986830970969475778044728674795963350124884169486302311070973870360475125578721525681529182090983865449778717122382737485867321139426133276678341180866820643156182349730938153679018210568585846523362469171330612659168074405713862707872753958312035355282664202891249330925848810328760654668527903674232948893042466539127419597108575204232861359713590308729568908492343928803756005781064723853788873030659185253433126945112632255874966664368390912187443532607858695957976160624416807069028438641964746800506694543256541223621243644346874554574364978775377976626140032078709948112816392805748422531210544203253000072901556590445148473141286691843366469091629786544086112149795809054198675968540465180396755893271302895150770449026340251518755579200657447059071484393211867495379124330364621287738040857227771608436087778780919563990942119167080088211139942537172549058568012556949507393738240416726231189671378471739353154725618369292535351239525514087522796380024496932725374164712591392559136050227721750605697314410195986108659359032883505604221876109495932774746978301418036257720994510492789903601815661005580498362366964555145102957275837716724770084407772205894577957627588335287385011009204583993407124727835263318728824399406956056462492953008117281356070525087558726318499732821450281577537787992431857250407012476351366664307821297139393537587782769392855870072604661285847074921853469464037132361415600414862978632844778201326096526017180837061509730125742009493869414618280210665866570186787618292357143439698301884974091854765337601989479524102714155152447590834990444501886521058692229779594150121749693976291743524588018062022335342024979058436289939529302620962345719330623625656194527839122873823157309091866934875955277737008927528762775892307798576695852380504072070854116799410053366035745062795201276707916318793098161102039916114328255046262025756492996406378658998316685759809457722968940243534641568917746429740284075019807727716636922647941821260583368078729802683091742533983547019509409147075708138112955997695125707700496255540230769528668853856166396803169927263470214529594724220249057356711183432939957012195424009006186705041347399162842291993166490053623186712451744901423629373747222856145532714465971380126590068107574458152540552244257597877857464543659532129161871263681230781215497568422505824013243287818842949723451978687933517038103287679746849244642493275990706579130371025260536821155929339479393661731514240999372269867829433023063697176956331929177518720971544112275950762798791028649777537953361495194319921063369405086981489008034303097859507963027171717884154436668740486015694724984644614031610943431534725398045325274585005010519744055694277761858985726561376897084291713093869062086642767949809983422296210896129230249200834572389666972339168551855329996499579197361705227752850609065897464750591028082225201629492343331887244459639092147924999386929087537344653913100366953236946759173842795017828957816678679636921908452204750920587248801210129095928229407147341022453181457845736673789952964616324546802608620875641948211411057723121716942178747381078534659985169216032523888962485130699159477314500650620618586515477598245588120785710080779878968144256651551320615097726908820695700188480962039394855574799370529192679185974969656581248079846607754595991361410175339701212264643929531524507979614999663487734293359105887979870844629152613754588684987578714325600187403049461837874300707711500190239871367245708098149375274588232187950936542462943528318897809951164797624610438106019848588497380207231305635768779037431679704114642788806005874025056636957346002220841903352188176800788966428448064629635239703498969797857089431288070922876852440178583686985526328114542808093506058643056369217370554035523620986911042577037458818761076164987314367857965469451737160377803568459982487684578675496867141940630209545649429197074464209282688195930231411197634631844198786459902848884860154402398813103817033344547271756686339261450832834333988050492779757617357947041508445276398321759303088984440203053646129607894651030483882458379718504212323274938333716722508267806874056866294753015518199247038442486468975084942755236724345523249782658717686090035171148382435882130894180992185533004041954743526315285713608071543474526738036548005144562375955765220312495184116772230303931961573635658656946422972610480175444636825513688067484085961705515687685429971822199842598165206253247072273342938057416759709927426348780027244691623667464902880994493111836638385872034015128058902248564467244085666823130936748738153186559731128437780618080942483376188573279820879631412924968223591001203589725972560773357125162330539265083149793259120304988625368709934107752874254043630053192914399043180451316853586998284982837130483672124660889925689445631013299817841063103038661760943002368774570326411774569315222975767636363153252159366948840941375970982671243783332679594515975720905162472397778045938426715829499693402866510711260500307451385316823113567861544388184976180867665791345782852900326793941294862531315029341379372007207344856782427401687922897506450848373850368272714566461380614170943201077922390402318449375906103755137286603942685726397686788548957743120178492505232385783482043904134178707147927422725802731913312165011381085353946372070182960803395737776846821944221511601677654867622502333536074978480110470153417939003942583019568675349844933310903539309369764776157320937146596271732885480322337292081489676126537315138783391442346222545093166970708390473496817937822263640416564283200000405135175187684108575726293290366818080684191738225066676898911686909345080395208925561818795469346238095932789784475581271808309376021078290765674024508446275479118870779030712096416518184339459112013002144905999765199720705397733833573121978763600946817981265773488428555687728096028237509115824223929725853560588704990656481214845130176078860601992354386981753442138940835830037461033366106166463199480949262233687096327193431219018765850893713995504318961329671160123096481413915434134466927481231637278207293610555265598935352254440456290805980056401763537813292699861229711760828986185301347851929466753296266478604184856046570916507100088322061202278068890968658244298580849118959120835630121548759161716920657447204679213981964410863131612688187840401873732196612379896720059312112251411530050935835896125562575404193657265272805449618305916734984839965235436985089248103055709117574448175514184120438139026845814907013613218933080200927581986521596392139233280600348734073783237097427942028315545075806697933244326865778525181630796419645204815996284491481478230793908257196937643045593139898742729530597628545987576392284045436514410510559277625890593063748164830660765132340949951991692367992640361066827602792288049417430346425242422214257549978071457723393306441427162417501392580593328096240863638487714326264233103023215417763924985776823027195226430286703624551100027631329850256170016141940932609745337868767013311873362633306865294382056232832487145435454456028738980938247829550119214044315883541915254821058081606501984694296049924048040893647369511288407230013555163783581478228892304567030812685836069775359330103394998295836483605796107533562265735136789601147940758567058392253781511991202443081424924912483617289212025684119976685654417432181300779542419530398255925121896894715729253418488952040474950589900521021512452565844182017872966648051421189151962644661981665026813619308256093718503168385337171422144061482400607000011623778774725625386165325073295330587444229496421800986727745397697865065730595164000715155244990510989199869986218769414974726904851048482043796877352975166185785895303113801843355401979549612441680455052183157929924258130847728987789778996711825036516311267906115991308982182277839143439830956527791454507896855300874800877301419616827764702312889689043883513414568656706247194942633797906697642018161878517568888270237085626105114352422766111785233160564293402211301716155919802279153398475504448998461031709076888048214522656190510523275311871827400208958408931141027243093802786219379461749905466336850502208222449166353899236905391463037297738973425468001795159008106069859334580124656485312632114584326151029715152999181607966223066535845081143944456925873508514559192019556043981840659053200332160559445274789166103177293966817754830017318379279976826661227538807432973459655034431224527684656363089615875757813221906908571392065005443862714547800130310246255804392618311979184774784248335370957017148352186015806923008079524516751708476198822546282115258317277171530659896177023658478800901803708036480090695247614996334162317101680892107080541181095756385105426506364633354295959030391920037407555354693702847021469995956591442313908500010644804227426199737849038859205276945629414274666853010833062796396897836277866895212156907882714034563044805721901076973638704953386163965470379492956046686843333631496231464143102244134583071941258740594631145286244359011852058832806369224625517707985534780164958204274392858482109154427864953413263252167078855062173298419271069085207283880700504060789296560282373309850903298662520561380334377092366060342549422585949955631852785304533831778934739030394192481118986382176964529859202203581225325217747072757823809776785423504353592352881393152303102257257299155665275766473197067551499480153187779958883122217081646260117517123803819447716363604504997963962171740505048895990748338086805882923944063548308372801956139895000069830135832549113039278040258115341131131926042638205966228116970345489659445034782995160067274512231604711834893595151949518785497009330353033785664096390644503049001350490812730555130928163518960270974174737134777287356138495227235183197138756933280063805703829050178834136237011871580688864683532906644536083467623211599636092545182123534429478101185651462194298396117531341620934752557448393168257375121466802506704372360932871519200270902627715231543666984486797892953334449327909939305232788390758829512016745329275267573157341377683302057174574663155698099941833369243905034271604322073168964865669970081466867295147458226455829184844030823424452356500910931086027817461604763276008821806080838222187848747218445868350039391725490739545005370038984413912317495909417362545938255195254987182726683620594788414062267044532186304424163566305799971952110753255623591579664837015245005550562851045782046437883643131789959191027359770011385576092551036173194879815709419418391444818605041253204698887131582995944753774147019781910494747165185122101693963533180340093026737748890590121447490518604472209448297292071739373136399039425871166472407906903163305662695636606005024757216171793131721283563862569573375093802056906834237295663426917822132681508329401988582881405474478545970511642098646411504520979157488558906812151799122265907656536011698837522243255073139585940314796176970056601402364349071905237668417251964938141778565882394459180251723673090003585603477251368768819050302456429141259040406256270979772867421373014495462212800362388840896382512934689893006052057364800372491945529076762790384211553558383407693637838607740789967493126451233804654971403029243491078533887012816664393527027504540074506912606344404270458852469987807035533956886671866852088573951673645956301164648850109344164774866623465179792170223426183125564545845044962422075931587003252799910190421808398958760293712494582787497013041314466634941951286477746190720248180994077080128177922395492258150994830312912127885459470718421383939350803499229430357750802763057607514016948477513119661834782967457556796706137276618926258890851921528190666285884712269084664130058921705505111017077806298327438799987267731509872691782643340676361243967143058650563046658259327655182491804292392827061141433899027987613330649907787570480008899736023854190737182575536515148524637269807056640242521491365899095919405206189677786285999614407735153025560763726539280814744300389546632900717485519392577318992555330649142469919719714444676913316236592791953928070477121069775234508888920704182476950864584922664041171342776107037594896854458131723978192616120407733686341864557204023726546259736022213490082350508772544274173273818141507138090453897430775134166019610665641699813181246468402230329890394921942661992966720536993878104161753065454223848850438705827811660838359020511755524809290667440842318750338740291203557368908496948753849879755106007826673134180413245047584916495982133913656373353671659850397827127803543113827460176984397665139286044304823330241307400716176871025265147416994424735889550204783490463574795616859344273015612946120223574723229949233231308105349652193890092190904875906812251075622152096846998885549757833491794904236152378201912454619973042309763711762078225177217018361614368317440569745946456848788781977333735441742134951819365441769452543346730406861809394931655905296296256596547647157660835989671317754461837285624037491677309098122170231021130273224818063898266824282677524444700098295496113369966023266460156375816460732294792523718447447846890770440088069174710537880585125116566513421998207726156080754030232925917695791952385680785128179395074181019642262977617167993639764872052241739297164810691317209825178106639126672346804535734386771290024511515402651112329500379753469980586024868557825645010872852707228333935876865179582877711540819103751162511575231270265171853550515993950171492971493980009824503799145559541040206515213663345853654809676889180059942337549005024111813794688603934874292121118684344996468872693054883429908772291808801028671637504510616570670796692679958738948188791948400212041430977686938697280086288250174992217285821854354435201829704743555717801538633613993379627251864498037500786308987306253758241199740799154536231239393322969889971126233507129485436241417908766189583121885383526988001597887959941762435266608360857676124647594565974864915777524160197631537495138955868030923012820472754062472826469417302147260623192167005712891385091276497375938628193808476418741806449051736442481353532594038344558104179363303347174900780296908345486656792884647958780682234330817638301134261127933696272401942440409793054083339174759179491790792579263397757577398908268102654900300166236124072675526474393504776026180840309321443456782482222350721785139165051166528635645327853994270084486722615640783274224478189243332859747537341102978742643109576275762355861977392649387595231727144055931180736192142267841733953088500122519336845136984543663580078647994662005908429395774900918440124976633406688006803508048642152231870388361909129222541502108785459268551975167079433936599729349475224623947072100880576730426476658038357711335951018818664642896096812052837436133147183585153505119677058989312576133106950838701155952912395213936394792164124881568158357260329464829123397330923266037593232451340963578470034208535099602600612667996197925392657720542685961064367813414938889971866619261881059122467797270100019653846696954424716353804836854234923160466750044253971224804854017110444214134549616624102885554328058261041096571976104891393525938525983560189514685165671863161481778654563683066776459645799513089077335946608589585826269941980931338548260319463715654892829633128632050931039258678181101201675965475356565935504113055426551783077176387386536026041228381687406783258412534907777250391529550184203556724059780499761329351957393245511104403151089685411294595507710849615254054819396441627437366809579159622418174780907085058573300304461083870367102559778962425700699496819098231507484227512041401861101015787655187504777018819531864309804251243499850816377879324870459213336614965405151106688459761640934036715299696999906034529795686692409781039562332464540171430185577216376655869882022854019248459892298796585704381562304410998574933930510418176455282441479170663940498310145394600332413170549508758559575679348015710063806519285437293517745740783731628290223211976169955381968494919355547772851209202738800575956689744111497794595038864038436349341779080050639542521509706298437631906435934975955296780997173508139890942689886104366872312218030267387461481321223011103120314375892050798827278133452663012916602955624418214774670059469784661486995935510492489476160198180141704613012706469874061681457539099187027715552587217168249314375953181589080308424811054179530311814611037235090394240760220994397683006395423152034538301775553016712049217804970645716531341825903387043933920676810499545461690460770638623863159859776834713767399199383760961194359002584621546521692979705939949019929621602014945414223132952488610347043050775841104654710554785426780473133793205726934840690992497395316192097783708017144511277738736140617612097953666167634328550386722616287780193878530863114678142837277350871932565588225291282145910068623968934141599811950632011382003180859458092009773383373550274204271759911006912887392810427889225248830848866513504272640574493277554849912224055864624877226633712944481080776894823987468094617057819549993899660351451460836389179281212613212490443763677405796123572959405443590686361990897544195764908543501922737970499633911825072372335562909249154024277434326449315329307103660947937584490531443655373010942878260802309036725623153376385499802015660072388963396450340734511256437487713755447673397895234137178648975656869185285329441108857404838837834804556996732048482592556156100393641808996594442175944611390396089269954126775230320490886793571366341147544130832229095186239199478805129907834030014228074438250630118818449967165648364416162577958798375652694527642326026231999026414374462187084302799744866550302617161683075449141505990412317275442310819128409126969278534492583386968182490843137039023974310754194288249989867722405019461952439581001702120750953624258881442626955606528053596825566210400329132724053444313910236941393501893782625166857334613817452067170437217783286212689250699363089017284832355794383648123758609761396882545502925824116400689686556053854682248035253649662420053044024535402022674726095521921041322123666532675321107246639072169636012515066649306446269805366285198857668797655847446443282870752414737716361799379875335962094667878400523771456123974845297347124806240083786227138367419862771046287734117071558725726400207172354178145410213674830210714644424761540457502008466315703808404328059126631220128024527331098656010942224423685087902691901583258590370030698391776326897388598669429162181901153733598004976134696264665895411418834541823846995932843582802243276977867703141524116988785023432670732227130411281112688157430099636726389797496147445613135199982318325613347379920110006144712522778185179879436354467198888437084569543246423122793090320340691888056698721283750808952167309462195449030537127054148455775492292907974132676378965122638489911276129833739188560499199142194043422177163194967087788308116435883968254821291384218328678851913773138347001481040004443144497262602493884139229774673731193239739684217482379106995715351613698686062812887271489191447744050639384963078802178124316428342443791114130035218779643094992848796755224432897419070938407996180071237795889971014798626038686113779073542345339881578136835760900575360147198194145704586179116040197734350552198097194739659669803451812253720498541399566447621440519669259941142885529129110462829165590294156566757678836946961882623935785572206214936492850610090935606237680400591882289971695756420216351746313964276353193881257429204714069004043335585546924102375752317054280734138656885411036040732792504719232772145516296006931708363979231509535062338793636589866256140136096780014692529839846995972280547813538084346962533378172535743896686331179152591171957633091681281798708968632698606158924363426817301895236495854471822602741397932580465427695734095012089014640261185725770730523980236662581636792805031530015354829446669702490120446625834331673831448622961636048995619452744125912999975011845512426680010688495000358420297355435871662851865723411288778656362212424412022858431109608301122019766300448323309942841992850401646334718861367404619404201026015132309797989637676185518590946850359665601885108633329495423159592526122019857516469808661808094505690600403389536290926035630259847949893799378870766359212612516297854589613962152060961544119032293140846509776831541829151275746258552018581015551598895307135924361240950778252681744077009349541325311440404589569407276070131481400204911961893721656243259285826194642265444000123904984614871523363186511192696601972847061419514697865843613148499043625648887356193801739288560647362589882262825555948659255704549910455421200690763581693192998974717757154697132266412899261480971443925670117668450418832193345949815177919071559105172104607096969757030642037232117810595705860724164146810084375816630799120528101729088657962932994712653645128416863682494473991496982189622980228030220627659414988326009048248428703137590485535018543370629053946102309618085912099127180338260591701769562147977613224115647996432520092408689372981142620561494051074948452887399945320618912238038133835209007436245676893796605082199586954262846203565259857645494655603519298862179459243786292602740871574896262460300591578386902774684469193867643694322086295024902839403311970936410694532902694232095557137177372712572964239157251949615937315878819177383543069502160374407989700847741168404613361962273882217253286311438096966808582148729805720338418004851136666480864802558103260574090327916741569118719032169512142803627482937425955300926736950825791640522136266223420713975893643935320607188110829143739236817649302100556705222894993203234620618522965516815394392492873883770679315290062486951052734023662613612699810107872126228606590631129575617309596528629852703588623088352065850224893234176378182980332609310105799617714883667413159399399813663939954093789065498172054077909130805746965994853065365993239557239241788751706625454175360341093349221890792070063094035788350990908451835053859403902069773718666760516547593622181017828275641281438870139096969705238542154522471925088358433892587815846966288684111459869064553379138702121301069877800237706079148530830899954501966461600671235523060562593970984586339066418761263151772337628871122544262933420240401366355576756685065923958427998910452352397200621294734414748623660812106595827259477464420085829168293966169652324428174393483455079995914353178305152888034288066603738625892867742601268599766353493894538769765317111359449690368377554335574457112590078566462070027768743487094304256702082326366654358791483236173710599166044006227906926721333265421769309016988667061849877708510994144640798347520999700392268333503348083795930102387252667497385695563995787313254676837968386132791413410929015529694449646208806125751187047580976104226377467252126978359233812102557550279115463552545890213875899966635900842921274538526618647294798502360835307940496475409717939341287024610960429335275887922830467263031592640038201675330498647875156904455559900451590087289655807592410220407832935525225221518100235193393798183049350162179333821747481394444605150009256273648251192703135653821628760615220368840024751847349287299605391655312337021617305095017013189960001477617631738965542864561966854349350202931866603674560028428622243634309991989813447812573053329372064296525665569742019833669504645621905461740161205384412209181579719957081863857446740698014936122288735769927859771168926444864573083060160063415514900448669763209846837458859239281845133868472393238126455298550073217149178002020178339573764013740626463972193984775559548418475296832639373602583616072797466561757337717039328830183409342015090218906287657231308347373660431189474401902667116085534341567476885375979458485874551374646999669239490322008041316909120150608194775658678921596874962448191271054018228954748221543450404464429984859860652915603608430866538321724903280189102711561695018197220704931438540356774299117294688701361057787253636520607960833187464867276142925035285805825562995134459202523258727236383736925416934111249308912898200509581262388484804375578274989731773028166382922532492851911028402136762576284784083471619565042914419026968225770299888233735573703361899595625186971680346357360773607372828568175538871338814178951915536946450344067664977397369503615877616942491455677298955825188956658110244101785208458083215286735691418001796527242276310327288280696049071319334070226620018071952172838472381823405271027614238244632536526630354103856226064346755303919852041825628027797320376191539745076252524352282377633157129723945932702233600366002475227756609077114247671323955849216234034821270605956010843211660670211926189973275758139129055450156767188255142327997285886212508511532745441301076626001748905400213701784824992943975863222610747118133394024033091376739016548639611876394359312983354059050878697784906527683475987491407044199590702606303918090052616745428119904287986653234840642565404485826338870212595174879070146915803715114756318249933094799164870665403464544629422208428630673677365685616348954498993784765020702289465316731072200001702020217280402465407448200472203309386982873918027582842172329950004844883800277105250974353151754068700055560307384605495444347072522205686544178275613913935541377430635544088708650565311077581994385232315166357092008815492977001720352516437847523326478901446147909963244316177059705805302861464024808295759144221685920853309143599126769110400525658109266770167073051461920320900063688677848968477015103090592986649831299268771287556887055740014491117491782647997526218986799552845480361475079969623183381948995159268111556317351821770548456184669074371543333702641282381708037154199257741965167036545331902554674096309210109111935214844330177874188440410640215248410390459486647035484609646615915952638576154186772645301537680488942985742606843695946281925192480848592003873805716531251232119128304875471952358122706911126284340611882228605308845361683734598716306557407156716342920516530462443450942517999207881580809897987522062877161196667621554933840282915335604918951856806972889886955581507941495767584969774780471321298586735221710804885398430253283626531759055209042609584351557060889072333532257754985591972264179106210354632102162165536385906873427659188277795187625252144877947531948469219402139465156556005932221296188354115187023363713950507456595144980156536401208551073167129143366390768970487440642611103314062379322986538142437335903925134442493408713381954743897601828733817269061630333559872406143807606661023762934312962003301618542591998302427760117377428412083807882506325117413112816974683105161138635589780823912925703097239262687961551961122494543379532893789906135289167523821670652685154389124281373725009901826791043444948276559945676896602062663067284954600009263287046989054125117776923519980253002409017508072561420191297704264004661023477532763920320390495567869171097169635521232827058025685837683429456108969874059744662779060785233899399121612267117552977776626872896755222376994994191939808165979766223783783204299493806703951395702322774232953268331443209771955742100680557073285819990757105223495963707204568828923858788455572712756488496058394757333856549506562582317731711386012064776808321580595922445699276003016461603054918429025600528667593447249923655696273186058338211159624280387106605612771956229922224717840103344450614661492236151090045741353290323711203663055775165871774165983353768199848556065971012092228280921972382659458013964264057449033822670685229760926881733044324110058867965875499582235126641260851493162885904274485720010194113573237308449251924873029914751397733615040116914075275640868044917390434662016223566849079683150328321627288247573067212322553277727456247145950897596268923723379232982518165024654391097064647506711331432975829870207496846583820508035410607247621850770890738788077235581979467680738575422183951443412368995857975293084476152893652530912218134402079322520486334562428308040936119131580014182350584108834833845487578692349406712004792245988174758166115971636540381752248616708384156608842656366868719440523432009215712135228273110900006555629195308724390576298359590075305381022059658809077784093761940044982973385304870280208829536895543415350232277663473271679427486448878815174586552698894819154666831245648415807911257736081601930267546384668256259367598334607523698172311860885760512468911878084587717051821603664465497328706389922563238373401993561627333438182787915060706328293244074947025820946245814850785738582275991418569295385023960841984377371005245514155457081506374859145917663124545342234715844988810120849528561563970572487649960291127061749284912026818452847414454155324560665805748601513938221044293181095509808697672361842066599223601452855466738828884684634243126850068201787080142197216256853886585574197752486155453877986836440847028345877304287738801342135035999331903608770792948372710255626285464291985761562576025793084334974047353438323467875942379409988478529106080523326975277189123028419691260741571695991788653916693400734614723723252903181617598493050403297090479411779237546740775694724864752677614507874203506983334173741413537438387543483877324711791692666947012119588646648265362544016274224368912329533247996432563232271924080492127925298904213412831622212622307058160516352835362854351646997373508074582655451099188036729572930489541097739117264367342843525253022414871125124125635690503358624903315713763063313031869054511140102599681909525511399906507139953243993041501291183228139397289381708079323794615131929894717921616312693198942009846111468302893843816786432197076530540530652295335021531668556243782548909891771810979721983048708810188405264168837758379128638786390324827748698204056987565148213270600080844099611805468275770124125045240587453002326415590692608967783582571730681653368172689202756762194510542658057453796777965881942221600064317966382853055232565614746214049899731526490425610906157519745335245004132065154187640075551698822556397715595361775551239414491902215868032540188354818423909040509193066006792926486874777020098073846826136092650898429170676942665027835631642154155156930543901511501641594086071864451249761943674121474852795774141030056745895353408575422316865347633490701635170355259498039913558246577652541660790011451760842179249734033506246372601917742303290478393561023870320916602844813753378621135750382910953619216501605319752392107215692362285513777903665128895604952355252861285460690375568525636779189875697809877255276274202987513123121653608232982420450420304868221866949414305088465564640918788867560369977105439976355662271921091474951057043359987190806402023945843646721585299082860131481696709796837019039628385468780463827131127983563839410520758955774064059558998316152155674689133326693452209335786630980071890539532320100230840066942784842282375838196313080706345455795702089288723697107548398615232656113725638740931622550706818939511443273951926109185602963458286636434048230033551705478363895234733216183583386749682388846834533277370808608884391585574818036626285491324092982593109967225463967977137857084131605878415810053411507439886386911688735718933123814223272904805869829719294217250971922106742246078506612862028673919294316821118102868933902106322563758761256618397845486290890849209736249908443382528495812807503399605018542431439410462668059420510084632980280999606778249811672949114911181489437096056229243971804207303922082168380821667296512480919191030090531737034679625029260654194001284316809859622059542915621593709310084109868913663951011379325093977949896997317463424145762957632298965131254897014761198349649300915885683753330965004204260805011823577150599111000965501547152460637418132309580716739772132691743565993684431089402635673896506018206136318075729068640233943413367649921930117581193787810520907589480342220884208200853013967896182659288981730385916565803204895979908238393829748384712908285592093466748770216460650833240907793703758345011727265170597801676722162554444738230074942011378064868022399982221317322778306458687503993172629786963603970599174292468807130517973714068280765114227973634492610361673968120946845693367298243408236962824575156209542381552028620451247537258440236297806444294540435077351808191989990764331647291942742244929032538702939130489368066963360986318330086502628032341882267652549976166481066618851121082722200001756238765440000773136720330787803295483926484717599701894152279216249933197938158606870160499941563036067052978507454518770146470803870648824605269340112183465857522401365044818253889160846507388484601888368217421996537350281338387184200045204357890958598651278756727857746238179680928040212766771681442836341020441985664606289628648524998739164284363177897740596161363007431927006129195639124381505770938636801433967852812297783334491198433962343090599687600316049926066433320577138871461830584014459656237578969173170002597350092669252364181592267048282229280491526836458236535607021364284805961278164332651882881533766610794284332582118087521276038777554297291507169520899346616937281348861995095881465606457380244219517534925438886881551599345036083740466804671974691790660495208402345941762816289882772362975127147268452357353825870482385403429151003045557187628870516216869257944679667127921233543789064738641272985075192154809637243283262620938542424375893771917998876758077497534607270373543788624489166153862587677605299296971149749440994683674983879988219846917949374000385574602333681684909423063544134157601352170023470027016689924380470414936197355239868370247204051123445731952684356318561392675963185273830573620047441038441928832979116610825795789341871137839239084604209444331374713248151716431073167772894753056948031556658552494679909726230419411148271919125612401875094272917705564910647441980337318064732133056108789633194251917207403257758720728086754198006242830632182330372611846794514369355648233322828421465940995979273871576503650023675013074638552857803076642751407907604392494901525225618133718072610939926320795709613263366038654700681061390748196196676968706060013157430931871738620105390429346432548754162026651794320033421000773391573130597252799714758578166226565203592487326735286746443270101391928136554098051037269270412920054118791114381847634376517736252841048368316275860801425637232685897843877652754393108453960726775521757769372231977330255963169833227945151764185693171673290238779428891209941793290473214371602924837953021102615482227251339271400316111968813821469330609620088846502221958018058337741676083289392905825844886254521326056015136727524388135724821343387782655785525057338187460746492605391951134852330046956271687829851058513454312857975560509202415750012451038503316306018288006992744398378893892068595085248559372930005867248107512123103267485284081090529562495995663551419173754984639136890174521636521033484267746514609667222065448355694450415712270796380499845195248662586333742675311203032057656856810107506075857584437713900351267729989849834725299937154848543289546092325224610445328827814122405446190079456557379034192264426431353452016623908446566146982053756710226613545350235556380839512329938796382327077318925092656314741292440402011373906682229064196771800110743918588113039290977676001386115121774672814446078652678240714588706803767205594133972243008930639382778459891345733931257396947438768973290681812948894618197166115917236642754669206413869519854880382985583803784365835955387668938944322408355076643367696085495431514932215026016699177948485532144215705262569622677471351377750248234345429004250205593692230352089539598355215785760574674297378518436890130816739036369416725621970099869200414804610539331505014987925730995086472003899368474498867805826100980427805157749361067643692445189035078241266640724305292459350764534617608524721806773759641953296891016559776863883841702159469475174425222690977687469280438446559260637923856627212720073130490314027313314235808247890474052541134637624754288523510452112270243063468403266161804928311949099085051000619215423252531244997681888577060719551180415640503865573631999591931120709715301394004840152082164997129631061538754259270795985636069894656932984939347748481763127473919203543130851537694808114085236861545205495325195094805973081166478987575866064502228056506290466546754546313687784164780230839154387165077580331173151503875328943835453069800200754152755291930569813655696614028150745695577328539502133166216854540890085069158956732199912691886958406946470380207883669583253904243632841017434743112449693731795590284766524225357124627730877841837920132850431641288886430249031483672263779631309229989229151490145349171440708998150720232653133437309235053755463696116326168545516232842307084736209066260847554484923592111102763910752072177605868913151898383002828835039474820001834120422562822430983429860697353843032240480494352684884702074405763272482745136301835457380486674559744142385508302967538701410985119293791576487703712567716465564699419142194820382260770985227403497310887224785692166205185880285786408631273927396255405648023466539470353534830714245348958575133894826918493707629053423831711408625134715998516423391619464660601080720695334190522310432727323204561656583303223159760594024328038179669862971440441455669689918898827109235175088090747074939902727246653852256054212841781048797581973508902614444947748000499146291040912038023445596410725938556133484855184594586348075268750989707253090688018207460901576231183260317349350533747591160357470113270309183396199051203950958831418020687065501546037196187689727805477595583449181734601924114667851934698772774625573611310314824618117274625396373703871345358109962072693713585837162649118640810853869547237047390628277031657637876603911453619356980215481689342201721478918842113014893344813520373267238463327148329514481038787486889894462431515602727684964120580410037465441712642930144337123596246615659708806596956187810015012813090713292244500863026465958113394057042255351961415783558624499596893498590246426180251163694338051216968989667754689571367190919333287036664963211682291443458201018346670637134710520503391708615849729678607298347959508674887841453691652926218544444830901169273650014407984743128344306359316167523118317834266892985344465981412195640686216444054298168597259228381585166305482303042357592923287758549685335545639036876416193587189042716393867634401064189748838204250899321586391254444409139030310732516908066424099492951947169568571314206530302560776697566607924074350046290093621614528725584946276445023313054806923707323000920290627658126831650534414039155463276978611777711189529264400601822769185190795925542960631654129942058638386913466238677832596871137780344182633921864759232107478033654244241161114994658139184275546602557754241535226690409609005943543352247522165408305044164466240609591119449423355729764767478834581948209167201071130351533581474382034240505027468063128825973979560993914942073974461182811614043364886431883256988251245144693324711793974552269414170394690158905533652739441982863565609621250722106126137762987425623678250932273856629278820369210517058534002201533566298010511634412782024622768552611837470053169923713456796685100610454580513388230711030357153015509485125844816568196740752568056824580658838413850783777176197464933095422484393329218698478508813846615421730420149935862158554993598098098203603679588625407226887009553273036613900638388727347995568201359890960665854010177792795473067767083198704301930967953608574026151494967698469882617750227002469483038857174571562150386138763562116316739256571191208097527663956337178540261885979429092802358162652914598800302128902978170995334760227362153197349329369625187520178620596912332909798746394623593160873043022593471927995856037687736199638428056091257144291359737216968072612174509739480894063274052507986189254249812952619655921859295548489833673434331139757391236594764523331506681341377996492804846298610728353469747311184142874521714693009231069097524272130119039188666100119660221371539323372156460789712324339306892849938702380091640384651316711096718841217754349404428036468866712628990282307734814551792494237685465845078214374538906721198750185636074069450084502318889773684548681467701890495769433995244691830358079528426578122393935035290067167458282148729839607214437061058554787357518749148324817507962960644297950938883016622033866856577354312692399091950283703930839649987088679633395084189873832950072321181353747551540622948541357466986346787116490592007728892356395489754044322831301039583062785463437216403133369876659720293606342376601180032093359506249822851615112650428897558754995614692996782542261140652026600668362447936687259550742743547627837041585520610247550928431265022473976010991289863384690937393983270592130568581353238781824813481684335074973133850061628974719901469542100553028316768742075934475498432555240254733740248172925236501258305337678104142608017472340944225100545057439497769942148982267929419767056636785857026420406396337975031479306448066781355790886783568626800422518294072137784177714834549341567056259150845148871275236621474678862950456199902679468758141954141870310641673095739314939635105991123549796934612991467886282267933579814437267154637361966306659528007017508065841291389811351312530975607019913654379483500482554785488600026584459889999214168363502972283837380183002451417302330422988098586254110323797850012202130280951485717838449984602792418025792610162255626995318662152279648567475795511812356517004350544296124615544105866689571164039050569574207549553360033373941568339084138476271649571433460095507531873390327934407370038986080634354913568675220233961492497575751327511170125789415364334957226555288195647851493309115254815372796204597519833850169121593482924756366452724493231082876172249139018446242340086145118112277548713555992715201519172900931515180520961489540409251667044714956636807780332507291249714096389419153602113963412704887775712819226237065858634293333118569229606930026888107091707928135839013486252832150135122792410952523911399475808693128616871304854030081135500786493055094015743984947834073656511549690781534726657527855367426784929804767521957482005417160243308093813614902550445191944194629881855532691217580966800091293689849112079647534836070786371363365651160720693697651321940749639965426213688061207691836836798781566543077876073751818550290103858248325314166471494143156165402648848732951624166457809739452526955877964575962096627090847774155432245568204871284340322893814992892556552863823419735104308414358500623885037946417482572110076108106075649545106619746943791294142462693629101686771514269860722050940657060699232102597966894628321568480087945825439826200981093896877271012393581062020676027562872117591161699999615988383245751806036727203837688656968402706017899514343550512391639456590654746148207929616160892681036060355199270179583697551553755632822533118137974296194871613186031598643824459455801195610675607403842916520958553684267370177533211074120719340227009611811902367212720589300973229491434093603348405567692192768541019800576672111189987697809375250883101650229272832398270573833333355640619698094799757660992719026859820110134195328455900678023739418199467728664028178391448004230970181809844500259853273232598185444251083062422138502164543692508221025525855182100829348107139596042587084451846851169520143489486892489538117963256337724212344368373296906533800325102493530406078867514285641922659024482926798772296591733505588224432293276250719680737966436850682947115347108739928542149671119557667776707318411355249827873219646078404823811353887426712146115991303558742993960466350680599912721040627907662306710433158108372676375501385753246907038454548896598835819568905719084863562718765408227025421654191654421316192204133719354807024170155856623280469834529935099956838157845895314638700946009151597908485326651637222103590589102813655055494931527039151915317076357586591039266577192726799656469572327439600238492807111883299316932455241187910513560231830382605481314381938033771371636167603684629619333578033060222378189652120267749472199868959464037882591642907473495180622025122136577642751913202288098663579863100899201113856470220577376638894416756807001074707222183776774472676596135623433987351930309258214159884502785487765196414883906903593959840958443811723487138892692360416909302893791240750110998388722441923689026287963057905795024596296999590448756056980102831646371021773110052471737309749301658662151566999503170284408645869855528551038072254029615519748517050633197172404084722483423001828700991366285830314900734859806767626359252046425485711447596915321950469028859293984939390978498099006332963386658942707272646542096791936136021574649049156484556562578095822668960648457490443734008425390896385211362875401498198307221205694379666512189506689068383011784250155040080861580216048278008760691037652397493134279937960573739052156288768986848798421429901786697667508647437499345267880475138077183798326857472749773440408249443292535871834224849152607933887633779257981928697921622452841428197830288735212088188977014606649647907348303427769941471305978619697519493152814864314977634023477392850094238662537081522383462900600598892991394054148831431016832103783986548894058505535935230694772475454350202704938965411576436416357715430820923089001786710285398149867532339572631056354732451109673727067385885355992301009780049789263450283786086269726778730809728646506033698121192907615905518355171990648219703448689549740500553576149804298359061265768377742934235484640349229781594193821597621269468159368749448279590041128220847095968196951465363138675801713319309787867350573606618682608524582822566372973712297876133977871082979835319875532744379380399678864688781974307457211408951953271544640202304899447689005023295244902404226223318467077486699732506843342467528435715319188182287897011988706220630286266107869509963979655561455551492916143877690109839817179868123490337608809779233691495249459902700250070925036914457672806468318479366957246480948756214798508139147675384209513310627736062665663246959552451427762825678218059509780627531028149293481446248800317247449582404613971893303634097339853058472734561661917832360283891771453325446776459116726853108366088243436854551374032065275176087721036673712926530232337402732832408887098392468670145222752473141790415388379873022008720888810707640983218685577401106038959986845044310246313238642274173924985453269986406698223624132983988931672608291984587333298056083210014601063035740073821111546901351152699841136667338519306444206425584857670227190651405784977433178192093138899638519672344962202860747537018869624280807059442775140883055486282709873874465858435917809612095437600227143809690205987286143098370156134907954416758680970628900017453256858638078173880602874992034246568828838504911501338976370204559343442559160345256967328121935213221627829742469579981116486549182454644460798247349289851325853858869175190458019947181280656397247451756546232708122886175710037585924318312016948010538633596709250669161032384126648205074438105249030192811202137754385053447038574034913647823735829918613081342553332328439866981696345694774753914711696680396259217160030479293875306626501382371692286390541249738785575934509194140830932244471608005452417240509624562591328209177030814207297138304345225938869778841493005354167748360428387460522342632268812258545110750313533082282748952390746918130549991052092296762281242795410727093150704460997837997650589203633940002486701906802044276706907937461499652468235164339023974347924863317339525479037162939104325691091102909009335824258153797108891521179334686008367879292986905648215238024907040649654295709108498463421887362277969614745222639648737208599636377823740235250424967746188900518844855707636988027742578629627519616066423531967083951973581267077323455435469837411249013018686221913727877430226782976734119180034351018663276745834738605628444986647551503333251977021060196206970918077336345071961744681528696133895312125368990890511405311853960682084740517866000239547654540770103143630953653302039445748166554380779933322724755736218797580882616353743612888777136119932698823123873103446568364555619542948191824314822620801255755101965550031119544116267568875641473010642017122790996799509702292290699320708499328259500240292477613346849331699368396503211711422980907486165392307288119556663223872830902891409699101881348012533982733985553045240517293405969002310921449781686108608394744872391604700626247689060778361439255376657059941537299586487805523013636931309937661393293467817694622078634028668371064945000234794986624488770714518242811991260673065772278183681400283289103535890567512279297905794878651504785966733219235845247574097146590076680274200159573552320173585596587555354092838231221158155570767920985407958629154122022660675456319806335550432601115553707605387435848520340031053859046849547490093481672595001363280321122309797617482031077986909361725397277004207356597058532090098912358885958815832795644343006510039002771367284162121969887558412144121866608650660496128001547267460166226868364427357524106910374417931265778720195693956080416411473747221715003046472726001794303507789812658227522545669360931526758170731356202092078376780597028838606660020955653262658273957578771720628996303799048781689483200694963783597338565575656236514379339237732859620313135744283066008099882488405476437420522355041786687728781038456760536238673234231161714520979755329380644890656917013890702608810940752236086088682375901746183754510645306459269904138705946759488616109074190061411218912086190819677222194914909637811452691410812285055581491106258668032360464198493920639424608069838091412616423596829092176798315935728685825256982265979407857927187093553439345052069368718895456248386200283953373311214879949849547611253089662376187126771166912831984601026521559223861946623449091977411335618622580176111195995795605170567085185828166827806013698731531730134341065300221369218451923719963413127013264023905616670204703438649671236396065759319829040312265327820049581933079926716073964988364767337979946363756338069710023297987933555615553099662289281431677959968111891628744774718280996547036942703734871326500482206868512559313255446990684364732061207779131908612963769246343615653099354280642074514406915163546587285342739988928517606739193381118208631737546887475032403885695315552293352075849146829198196693601447901774981710837233094091824449570878878037571740347253936231007521483078951106450709373878426714282105999535218367222161226434449747833543593726417665907655202675897181148769748553075119089097739689610212516895210263276074153429714656200741928916390917292202494859154971357429224945622151760449486644488339890657184548329859163165220709046959529557078785265999103249384753959471032378735707550570794950362565366998055477944814225636075269935665350437885354210194367631328031571819530834494451149284516538803519835746846602590786905550546661042646038282501819416453629390264686286046170606714237183008222898904435603049332453374750391149161396000629664794490561271672414941703829789407487143494358571114202918865955260174829664330485592506644675075810775796391826178717769508737573011534198267189382670293449742870371413720331704980113130872782712885413240519419348436190643555024906946436257956615277446231015197141680548352080897442911046185059285047524762458445087969723316915636145593660377085605891957809937642720744799344862104034344626055162552136337129653300930818701960147739406483206135898702693978071001513751810435396584266547388388508362750911908636417848367042533958784768510834647983929808174925580996630770974800051368098358485387432638307637342573478752780270621113096267858276630431260307521854327078499964894960730444498329691924160849446058272744963020248578713540209881376876658372034786995826733776865867193475309368248353044181658291279083954705358112651721217737402469004742886321309263796089802181504632723075679145190995235404221709790075487560673722856120248302607855230958318959398255523590967426679968109516079131378523395119311482656500900297112509267337447485489255322131133921608241128933468629114004763494127134198160319739792531939518439181639250858157133555803651134648085839139318430143516608722199847586088538327037425566872162356895225905768047950877221155717717457642261754109148473406209075057543839890652242568287766047944699979903490960146642663469312863981821740600476574589354513050981375626943796039059963762590984608752633802102925250451297762621289895014061637671373536233680352779192751801020510958048112731474665276365797370701350992747537804246530692755156100011729221551547758132024510730420868030843609626906526616459966392582422475552015364421104852449034409863113543385872147773195447679975162057637918695524502890461107827031328235180786741589534650071492377639249092922543398534151981336132036269013075503840476814516098869139287566409177162787242248759400915714410119437319959963977472152765085217657896339275544914516245927434519449759678873728272775350420651864090461338690710884490334693977674403378913505472879686276746885435218662789463890492083210000587295804309022783185329145821845421943931750480286891514533074738352400249472290793578417331689174386120090556273865408619938688152373003632021168322183658566760613790847801033945673335887043318657993358660157825948525051244174754384594412662932053098675360848662633459060996315340364591075513586284365183070701487766888303529823811404862956641239124417468980365108488340218015544220116350578814930059392177679379698362588829446516678822470468049091928807279734696569223123814058962446357804715131284282356736431777310059355622586085218235513177335590785900547355185050894243563646647018076306630575767810256011962620732752368919031265900528092844704681518112814739231149656155363848903582757928036938108793195384585069322493107364309318228317958003040731117751488801102933714255357826709025131837056135244969467834578589166728817208837500527690614562091115012227541915759525239337072134004860634727187486135164451634092872760697472477333055018542115788326024917505441444412815544151882095901417757248367737278073611738063967131016717295395779435441303273886314238191795257303786813900543174670939794741553951068082893660371227361592032822021178115246489934512187592975482523125396653348279609433594114557140504239105255715422742224790727965124641653120223982682259682817937844600231046793783407239921310269109769072112590026508909690073312368441295108029301704144033999437302519804765764818113375110778734444102739994556961868075239707257041837909069021646363733897530418536165494690139851298111728342145085206303711577691478081278690669559204585445968660084849701135397198840103590223521818383816318958704302751248380389265460493607928129731233608140719514762324875759548721238248875434530540867580376942370930651990410526122204367076589306660044691335447617024735093650853055239229651381387222161697675834299124261149051530119438447140892150014674983172672103969142223169598610460480069154784457859700991445407185857189697836302175039703618339919301813406185461078229411157169931278018765250568946455051554394693660132147160710076241417544923319893278786598204879513426837394885422208674796816607917377312932286860208418057286715907892146367110208525932075672574810105512470544235473694226261324161465365070569686300163451517173439214596551318775012051656347088359077484823715867790100510314841223654436482125546265049215124489475255269339838865325028652140483795614826182036135350858636583756534482648436965425151202610563817141173786343577341116558585816554565351101873593877004956708175096831217858899963619186012470214057967683721043487066322627951343366823860650985706925003164279516383789019374892396158361283035134377011763789887835973793608403092275577157527860113836388543575488659162357131232271385414878055751700356720570128741937814072613012745035659828535607752253763099903004049489699099054892876360522315431017860595980186659892302219049836261395904722805070895932151652157246556430941617780112104347822439355988346220096373406783145667848670183291502538279978850845230388519981326701014687102684121870104306812044338347025535794720543624833055593008901148117810680949834309946986450017630149522972497532858709135944781981441296100277088308901869335101867653591958347954237459104660201447709611278268793775918175927448756965222852145091083536435996494035464778782992459681385972234043415561279636569766707217687424929529710626249721257189572971836853990015664842194665039563251900182575682829783430146974190803403162859390462489513972405503670705506838618289371046115910589774534273755457248293525880889913699056361656382880327024452775246593706847192526464328191516084075009802752999594758377926131680068156322174151097184196019705644164018719748239510805522204353820500700051798130255728631034607717661786709204405038406036198093927927759442272281165198036251581436737424065847801374821146008094365063480495318569755231125427650205923652037908854960278287997764104347258139504470498700622340480178038187962357873086013087797998069913737427417368135104360692905441725892650324669140659056063771332436414730669245813924005776491666451788749038346223012008585454867048840430441899569485149564616941260159363913206491516586719363546613545254484667812009812820858110714372596441746007741324151718067474678668868532142463646367465793397978027091599844217059840942397889460551022562935755168781640769364586146603385051291404215634377142392492118226605672580991419009820871218584981192045125363391165948555045937360818207065074918188489978645996080838850032530232370386319428556058033663733619183359274494932891951964567414391198694858937126091745197317984737996657342450480458231540128577892896443998876813827772083576741998155061227835501079011077362994211964030831860997520939933538276423180723855906538237907791904814010696852522094274504762570802368931776023572057332358389579563086391152748445490625394837607357115980846625262286010260143682266023172442254980612218173115514642569475067041222714892599953975307888069299225819116033843021111375568898344564146685042363173122843815089849495665611798042646243605579682454737745732445004039237599275401790523633755964055952954495919273137508296967893905435265920553680719165496553069566407712347210961321004662466977255188502967877915778756202865497813357583555059059410646965763636901034992872919105843115681375870206218539942573113164322359338116958973915077034709408375762908232093352403252888817341104830455905417765945482983036573773996532977156121794587956802285748247143860974750454299191258960028879948501187899238206786975791453198773627448006809284826908158300733125963313393758443470564021054460801125392715850675397343469333199616631300538484788727202913843762765324023695937156319999311234271537599711789455911303617721484540786844872446568986461552268554193270793025866459254675535724861535650624136180896810957438554926563269713275912764024191115320058461414801860625868585276023095386573527260768844686511371223775682467721785835048218083385222352278679289287239768391396772143860204477877434493955996096802866221617005865235694056905957836888679688533261160110480155683475820561247004129684628663633586310210185284051273116901463936461486448727817942978270470926559982430138511039179074012059125709363101723716480920606593908234024171265872307898915593180261112709223091830654355836246710701237402481293614093979249015542230786477807550189545056579118128019928612970566108182789687194458685007035565525947350528017283730772564713962532874065483692792124260341720407184274863619806908924851839356622438103498438980810902200416069152947523669294134309143741322744863519526527426152814937296886257563162689186064350476796540999785247464545097515635009134766019757906942287049876532775149667586299970152213960210067135452679878052463137924805264998115583217060068334674578510113138577594709914001636817846779872239172797819741433348147947796506825875417281057089703859602776094344660374791949048930155597846887485300079969891344645648573379491585762839189050552490363830898631169640782744013352031366029248421353667450725092540533133229086383416144740201237672593170641506166570037956196300902392342598122951116831347926476140318602468611326218611549808506116780462945327866892171004482133836492990604109948835365549542624813139663643696351835129044654313543553386275680556459823870271436026290526828576861021036417813286796667710025361338907050410018579600760830441355539015282620197901642188302936885959929485250525075036979708278778778349669181126133137379671274193165132895316088591113406558430457941097965612949270522620354658452318728629974637825032396363924740557007975278940435610807583470878870905864848288965232696656628811687048579670122208460918660032046792302278028390365491456319373747890322007208398794756264698483508916850657492342693631968243991909296331305878303974632604513483339417860032917996669016162029049954881952682890698474192485211207767616354936354904004093358131419002683013390949417006499976392061062981935936673898734699899425208538597121841967718673276985656818610879221767066444463672600727851103717474458013210699505182621821122872646687407517474148120088072811645610803212708551481113744130406707371657507741545343772084916961878282249090991371841483095180692048798335688120341735673631393292423556943711358515466177697483042079707466805835135279576294760303872696956117572005787242638611414313504929702815999747786527815199756288155021707502172412605981517388367685678231445775238727189312793508995521501671267569070391782180842911314817392943778812397154486335735568183665881152218324339446539899593431394640165730313440658080724764314906401596564280427662360173691553017309222640214613276687521878908716765898020260275525787489405898148917648556682647220446668743736412370331276535170938980491614064629224250582283441377235219187053589858081016530682674358713944968273849368281962162619348625139739028255513992888446235763668006599584990953831033171064681504232702755026096922624577302403696974949377343693542787499353976649293735552540743452359125595095874023774735087126939576025589559339794001513735935091933273900516831842772654749754317129856681599687956294023481123996666619892306906727081171483695972891945002928714060544582547627977056435365579021058649059132293494373650747039717644983557190779619553782855523985095104974316680009473551809336548007017843254913411322603199236511756191714640916102777784003046269073054699595339267913876693327308412508914324737276561141022605611688419447594749668683533120229300146481122696284595524131956751906621676617060278608613700861113093238525234022578698251116657184245581259610090493736710229358502986067345576748351424061778054806820049244633439265776651547520352015866668304280685987425865950161652897014463947041963920007951068984979173084065505624521169137837393557087869815909794150075094920288980117250553624696207538361050046209516925215417035119286774801656462330584488669117159722930723725217466742401796530912348375597791264731970573173117421929393415588903468103342475925579915641690020267032144328637805857751126427337598149419919609231455513289435912932295544810590837353416260213818445851069128861760680985671283220124577912294434937126827336731737787382789224243487290085894215198039612774408993955051254664400168852630469317992995895873556165051691620183811289781517310831215912519484674266110520118259699395698035408078458808687593417954471862111994035336429449124584820040703519469594627834575985925585435933815050598808857968764762746330210359763939624737522768231812746354405910116461040099657734036652357700712986302734905225494547322843405311310251344467062304698160256594670931574883714283663318323328271158251664384638824491980985833221473508458150226196799571445517902772702062084569278432486473810227976483681112601805815604374580677448268289990857669132123457068778347911314385033755347020804306210893334123115242981123697677979176938048895563791526835542139518432718702211396791178414215745683502445157893054784539759401855680937812808969835237857279764130620445363869192873579460654024524225870111861906742872022254187307644767356086446598667954349026302874419652535474867896837561960507035832335139836107092610364648555197894711683117382450631584611691567181197215256578306883000934197232316118561372553660054298460750880622969160448471790223150390071726341684677795771154250367874666474438316044859274639593469450589630456699308221088717450761864702468515871862557722236109820016246732760253680695172936590010620189051513995346626737047546220972607084307276076819606820287767003565844327532099780501871519992768215765798682590159910400136638321050154506502734587029993159342467641726339625826476682436783366463963526056123447660141001161982041106993878773675304911967184806370568561302162012383839196726407702087533004728616977868639701779489057097877138020914933681865291429406827114176028384262609394431090541132447625364741510955189122267636696289529831096048048134607156375083992170092251674316661235481862171397437342801177899916764226799825563056154629365097823169993771825483569221926261082561577195791140892831527808177784636985740050944856221829024399217111570861909192670796074095906587766329153145426267417483364915601273968391591982578633101826831297289784886622802052887561106466720404077969443076340498480045467244918447749488577531993517310483532298841389989873612494197608593270627958100552510942810055200738516097090092057905331937130784929108738004274979372859119131724966009485516673887232264369295935145537818239039668738976419010843544456424621882076953398303474983319203247296494119072882324886495879326244610350105315051254471013418718383068617673047886203639496754697045315859513946892168064839906631600274086359683501073267787626184089679788371244461386528413753534084219987634911867946926340796791375510547675861366249467353787785829953669067428016719258963936657002653174630692934696663571965222724987125976960906559426785356654520903245658367663990815014260913567501040746872613623922328171604132942531522390067953633096292625057087041995461459594558106243133146803194074877082840409620494363840021046130973573814943373150296034435774961333960279518099935766981783279024194218474405199276085952240185366985386254885614380591126675899260514431673698417694289375574154707117648629256453726665857017368656555177421473685106426477307415138090269290484152738434434374720279283712734139656695225501135900220898105055680988627154670849433007558605271629176519529455339231173585731225420662785845135842961948809110585358808771260220355744197286662807382064519887066930124658410396909053192749202929368298907957259076324119293018130468372847012662677302739535007564337044867756121510880159497222767188673157089287718691556975338965116935590836207264295573881581615359690397054266791706452645523680967163081864920448929753392492899620753585347537420803739722198113178829369508990595911132591723874932259619322248308050062178115536867664730976347909643768337247346015962708010791844474475009894989974672230995285585501431906211970649800945038221520877227797316373238347815782554505730297257757864227842480264413086822508558297652019137123380187571090776491651306121292934540787067574328610603271366908977906590219111838256362994997547525447073630941893038699176901635441013219251368688393975488625994923391277519048164952449524203254689351634147592086781725809361247674524209563400210908339581150240177896535304363729247293288776975496599235091097224647853500194054849211816171487769074661147685390870978300321514496929320989245154224320770274894693109508530287342451264850646247668125102621979313477596790620920747076214964984715085879549826176528294124221024933905967391933896594055490740466206835468599288247226886247095096590925060234392417668647791487166469910019679359274264393399729879569534413525992377575574943244429212399954979343220513912723096019122667505951174307836883719308025073771445763791451688566627471917657411945379519135147697154220405405045350355737992606861229028546570300975068674991223376934713524278761969433295741999676074062074682173235461427737765285078928023434371247142974442686023166249453166940084385442426912096627561960966823503753790796551512443587713105787647633959578759628123628547793865933287095118128367889737736998934756925104813130273060139420155445243055263880654914793859722131858527883518060136304270681039662883606810853504850962315703936708968419099655624776171989368566102822604466579667785859231571041021573513169444910564822022586073758433858172916374034788275689962299904101649715403293618406500434878718222366499847288002181535982146607681043879771742386066221949489140653384166579756630645717640839948918379084443803454903599075870684399504806466003562359825087433148128708310913135688184184618599666417909110698730539628749289205176720473653064080738236500474897708382059691011415222537763852680813871317595667349509997023411421406014366954693048272584714549173074234592150115847544863135613265920928366199617023113671637121699902278113091571683060552205553005094596906135176970176108435876283091968673052873274228779230364294290707385468721435814322353855864422117911215388248076263913456186588100230811148945611866284478304820713601168396683249335005456554202924540330141291300589756942337794457466752558074969969264760387480968597941550640578557519752360375536510897954320690543501981607593286939372010417065646079916834513415964803850676101345898550024546468768294645825604823299514550637703707482193754341213665431153571360205827649814391044439918162750196727997835493454912922013664821405056922372788286299338214356906658932011816048976621011177327338361726112667955653465815651002473584006075040842344761653146577126555278686295679650480921967665834549255915882349506900282461205929415316126235344272847721966277608840322245318491834420391938328294673717634147677294539134889816234829177567328872804220293957292049136994610824856498776689835665916330720251757089083112150836125908903125925918369620570959812173340702350957714866842362853262959542525566836706028254712496918007279075794427309619408712170599487463289401184481754706086918805166142494297419639975131480701546560600411734424977455423569143142433444575345919457396163144967984947150982630570059080773073486079470015562548516286663167256884987750255622125484323271108207370091095961931021855521567275933873864900119293265072356621416216196819324752948775445490936832134748040506640416629798318782637296631095918146090332520167599823104094978668195609488136977255086401198699772873653700329609577436673124342307951240463279555968644609008428021701276034944882423559651722371219955172439606743231787463587929791413131508174134889145142990676541816964791235150517284674817847402869528385035536208945613385131895211622039782025562823129026835109108030451405099375546412398412438245959711267777036205945927281215220251880740359472685758044730527013735961385506750524534501928448153162478161731555426538890544687010430436629978085514513664466388736195910653991808300282332066905938085862421683040364717269742790613244108661136134306805069019696708323688866306246912280373614813240061771057423921394974019304543871420471735617084016519549651985543034366347432936123648259296104566765626729079302520489644170254222925993961416094402891139684990840027266444654073955249426851993356188473568413407168765565066937663584971059878256220637621227896914065955029669497481820180049005079136742167797416458112385695312376921455958791569003865843497455647852665437577676704360484728621121805632984226761366289524828227202615440791264112760061250494371403820851149732634142399734604462860456134606820841316699900732964845015936645614959124017062944186629520473310899405754916230586836769335487307765649671551465623657065687851596055736489349830532160765090548292662820348012582611085578893561939168880483195381497992687677713748098880163862862059036374857113861692164082586565128261168925863474447745944454177212513902500419228210174078916918916890384640248503280796045724922433834459404814082651209010727306700480918967421380949164209165919105805068838011530279621776556496615577915815850466180075502476139617064558138684770186335078978725971219715471720579793267201812233226440436146445189574843666113490599331828834593454178821152875014590828327575225353389066529917388840533849226216751756115257150309785292429662289030369703295243123093063169596670326028469813774843078837117118587836017540470177995756619540763412280022859380977772049685638484130646265146387521533935250913120600868181625950499786664337075972736559503010746799781133063678994250163388881213136963348580405110504376396008737517971396280630507440409705154028723349341675861232258023807360778192180276224521543501504695367798244161436489729082690992667425083417294639950473170231090962362108993784779750367348147106881067202060209952716443887877934598200957457193487743327079623652221024127533057069549230378939980578079366654278811898965384993560462200295272003831288909221562786930641889893903644940058611449926401950828102716453445509405336176450026424408673149467859246274963165708163685545321751880037751870370539380070918229721942008220553445414750094758477350775484951403905540045555328308343080283299487532098245942549352420654962764008654810001808467375780846689021853692997601301538134538221786886171110367469144203619919802404447866391337313331681903647404362132552176509826691117342304279398782361846116816934486505698441856602896751773711465864092797763851434504343192521322416258075314223336212437086455010298610105865205515562073648858014896783634905837967935346463570945630020678123717540601434692841160623804639156378127966990683713961185642174231714376633968242842592151094834313416365848135141771631778387744969599738453497561148268099642320593687633061827188219143418175003753739809559866641007339859749383954851180809792964674127268953425227557092889244011585439687900547031095785162026486646843999035950266549962664296825922049241719389017387644300444448018702457674926319368258899117845642402915251314133250494358488376628617654524705452230918358890140629442516645110412206174890596494775256291168682465388363751084167837884329948456439212203871436276368418764648274318586622890464121642717596214190045843653015675908085460075211854925088871489774580016718307282442756664500509819258919542468647389477753138277569857035830965475836636629672242406784607028164907571900071719169743911657324500236378254475214581891030830827126275709561310716104199168070785158714270554259407068769047745256969796298445965111228841115486260719612972444382295041294158617955725822194005366697540275953385170286468096934755674814198340401701935575798479573430979578365476148400319773702736472451278482219733404260209172797794412228752773940068766017464407726995576500825529535697656289344744837736766089625121890193955553831989198933003083524494656455093912927774802817279846190105861797387412423563581003351801074705883501475237689596210562105263265435903275754955023830183299955653308754815091999059363969748556630918666700839470457120535070185901528652825596866739521009678649742691388670864684748464559278826175650574268003991639817010640075953940170048904583648657310939732757603020266158607156687238265552598208232524921772495746719095083711651346473394968033268159981799034507703742705743043894351225281969290759700101685893536286548055882579167755130068463688439268188925783362235431872111960875620025929097278432218525577093243904240836007002858411297252941205041313835261329028292019225967685090096828655478650018069814016278438855688438258961998734473268754648246322455980569040378616482022945065433943531235663987995810338029548480013831485969151605949946899024967327449979799821038623584492276252207402055318562105064328493906035384057201125936713775121896374114654844402085643869749520316054129325018245821099488722247801699081356016403147241892904809969278223666966638774345328514426536183637354269629163837268947704194843940233067948024400773189050443201227036584689157886543552924145590733840790136738903778915960208257290537477643149726732273859320457926381175484435496106494264488192253506394586885649363088285570402569305345753775070363456708678162054809401084080701263942376915816801322004043303578360276258936083514250629509890658488778262804904380085449392139722334196663205292153206807475924066208343230747089659361771167637624371155299256957845998211350864086736312688337237807099501459222793379214720382250363480302204682683518987408001660611827713794613511639282497554000046977707372749626221730850979825099247693741972539793890660456796392635709448849115349946503736807034183600085823147484282898960941679101982984640871673287188124849768502115174758500898940120679357525026594601545410523056826919606068143702302706957326441044213225737578521735135995419921803108916867648721211983408216183722091840802539662950190345332513454518874922983216884385159846717187531940685427306809668015782224468080615861008700721281091769501309347713019014769898869462774571476582954206023898043692532720354107332296017421494883863272758963403869050751244771675850218007685118883072786032634683924697323011447226404750410855959251495827720376724035395769891770068682901005733347227787669133274894165831620726750377472286588773833939543462935875805106073466520914137814359183203592111551638101943902284780450052810148217212373549234372996298561765202017984834962360260238571043186458306529582693208722793322748484939795169621123312103945251861537207718043485053995316607068180948864907034829981387666027764870454645241832867067127389193756966068001422531619475655989296140167866380243491423047417505222475082104562232561505424574901825629095793854650776817211392003743614803103916270216191288781233533439633154870871819855816638198739327170779758811358974978380162344788283210279753147041602841057469833586610882526736803564932490014887753387517570300624185225690838748360212231351516457693794686935767890821083800644528603243528000180820225264757780961764236516523570242906082007603704099812226153053812518376114372518021430443376152850127355157885921576198829912734497359736882760310385555750022029396086962528795353268161749787860835493892830268520602303468007319573092124198996410206555913617784591767375293307436538898458816455216597897562010091949768519723474712306372406206028846202754397673746639235981678341007707479199092177512898000903347295493898295196502223919407002709127862886809972155880760943211493956377937225896984788748737076660195972550656953864860346605307841076288670440428151900991211685409896130785688640276759251096688816167718793100126604094922576006671243733130674484520499469893448671317527400243056689647257332385344236794376500674325691370078224465469786103288828014813487479429471736079703089012217682378034140866156346196780241466648319812708032770884404556597973881774081465534411738491546768425473817428987420698735306989376335204109045788620916072942581340285055341466541959048479108674136061226162068382452177716083310686241233056351522394059251433552193425716360252471516234228142050562309647178406835356965394437901030519799763543557906451180061974636010440925713011583635243283602531050449455547779996114431713996195499976380941255078601747155470377453312597637041200092853095792775683180235416928988183211724665449564974508395518648520659620029960599012307814153444374121555979141387191508074204445659746783331558629814961025182635282575907095838646702636602071692356494354233408685106447576634075985832856852515590141083777887925328039569045522941230442483964471218699830576882110204789055597734567011380950668019061777543918006832984085867707508162685630317659224571677522478557049614760026797567055047253010795398433963744438981773643775139656370751927931650085450983985039396855608080451631615164640718259319912718091078044624770809450784506322415830814923783456526238340949516439098576914387115601603129274669946604989371747384268034169139708432453028812237936722602479667419047265222142278594155859954332637994454676490692303601869897397323546596896264256808683780175328425666498138840207521003968062061106900137007074748458931532201391059578772079457324664687153145011227061947226587001709305340905919520307366624186205436438798683685452156901419343098148935832457778766211322999665259440608350503768002570682164394512247761305725093276502842009110479638055273641185074524327732505310396754628723025799585631662167416247850602386950863151152854912420443454297664401991056973826489185157397690440640792956662013153821568207100394727141092611668258811390642908894151300693513127820875537516344757453615589835399540464193173704482919370501349209861270416873680044162728518918225696264199672972719225050489707402973048775165174711202610096115097480276615224392614689015977536607217645139528628922437719783459107544000906457112686979538374567047423919300473258923650866146132177532593153996964955992717427143961942957011168227641253671451159091000243978832375477030817453676761312902687794865615954719687049041148193492591229717776708705835140376598315774196321768780335442051403258495669854771156579161528748363253948063466407748792923443527218353508205907248695071396104900081092551394678562278630269955356792114868362366714691312740762989135889347911521586510173999783958389562179224291428387783637434676578720244154614606754637450939375809812949948583292947429414687046160368425597276569182660006243753591267332764166855627670426070947442542300504905582147357068344899037596269833882801558900192587704920055536182501672340398325370342322740283521078147862733901409107744747837216495758704623007192052226502592092365337322996171980528429922511225375165249605975802978429715406990613191194968470463322970388617681866258753642196718347550350889349564991941811594385841581594097242764629861315581995185673355811358699116475599668461006854155855068710431248781754315373218913892054114107663102011204010836185190655526963209270531384739998474847639109934656477741930210685205954547986697780783010026811683303015693436524365426173132839237039673785160346392005405198787648833218561468490357614584905725192649724271539752165339153185828593324339427182476522271756362691079523389734510865520888204411685159959913164977107253666435597178057311604812764546817695679754231531239696421185059623412131079371276013640109589030210857099858417665758041660553691572150041708944970892356812141977828044436932314166057644752254333080937276566230905337396718559195732861524557319359679916862339262907931483098707027852033499417715819234625897415379250819705927857859857756263359028583779446059048497622378013051247853709107637330480204820487618493149896502147670945941354447931861693711994888541153916407258161859858935521158466336084545168453629931609941434973377435557949248026020737468804093157683690522039949201880075381121434908605145537507608054531243053918921904968752537809263355377895856415220587109225953518070424957387383229018760733722155187538595165876502345510178290531269291402625056920728269820079726739808831743718189157071244955869721338583025763686027186997595965557327298463987901783940518431786457920157793480706616053448386001619701498997606806297467022791504345106157828590506807637290200717756930609184694834692038174979704354228518171539639739301008090595376140428921339083693269067806055903126309976414652122523061960293684207539706351291485465257551011146999975592592367319823283460350404759179861972811275683044075243457701111126374055095416279233486881394593431914531714835474670523513860274009138195314638752541519244209121080395006821662569917792275647093849921754750478605865737792405639809162299484170978670172891979809043981533594695883698998258474692830660211624795570546030156404143565932049642678928818475479834384175517838185089790560712989556057283543442638236331170675503275495361480165976129416662903986666214008936436611153696040592141545075088532427559232828632773646985288086301789837808498698095517420493411952779747987443006549602027188980570154139364256814020899354236708032791723482700349850946156806763582412008344458068388071196468045690368948013098542595930614794164205436859061299122490786700986907175923746013916161564118651811517718729368088262000199664816556926345797015050784064891699461253770748221157622619443655954121556733093994228658714137502162382472206967140043686161979769655772231795510469448163259721146761460137054788071369812353534588920628152782767542632315232424946565592718545686725673432607904550773107315170471570611536993323731504626870917783530561483348366644360608971654601582351037400514965603959326930752576473447907192009620927563014624865801153423936880408411294661980261119612494970461733192050103960970598954033355171654040119855876487652200868061958841497676968415538272086108246815556477525129928743459211386618832725752123532527334535880042223947367724038840306611922823540121759431808478780114181118009718769666768964686371813592595562318297134759892784926645850638329271226474343057477655423916854800677480354869629065155886122205692442191391285870155579840735980559804752701510258712555152789224329711557393940735257860996283683288718222779049790006456602049035689163809838541862804471362127904215206823377400307316472840544098456320287214331938806605295520413565305246908668688397373572944834835185358403234517891879913091544581069988339358376580986104176128011512017785832013009012289639473325049904194567258397909023206817863242040528966738848914461818332209843884839207503524980726008662621914294217289759182914312700945652916479381710822357935997093402566508527055843336194918803088976761560798156303405876021443793235557101120540567105882766568823501995214965142384645586241221319676720245530745130108020148573436023688532615509556155062627397523197945408935687608539170039333398434259427196613192454836410601016560524933401451465913043766435648124541266848615209401758909778572422246526910070647801379173448601160845222864705985777174601560638244235977323218804538126994640692891828139539672804323317629093414997459041604630193149923764587754875134452648963390488974123291664682013729415407267670787397359847856966111461605488918468375866553815213868014780342406897421908795160834439328260096391986604635626013748104115127779712021247925625116580188333477500220589532303866138084404231703304986130967379147906045283823973412228310042350605640906178521248206829585890412704649457018057071034330908373681925396880313619862749759084789267391267504979150191801334629176985621374723791116351298666050666036717269381874628948111149799642998920582729140327799085691466613606738975927469813802198690077170707705854217817539418733945040521169266755212515332139272563774574075145248734932751125260225603319261857770731951266873406969345705570866215745643526233642111947745163663040821618028085829696671211168151135820169365285541565117667321265967414991474539037022174977672612805390166742753246338822922840096764590993388214928432687083419711985223053344743397639383448770874607129249019234056827461111291869863972031993028539713105278787901064248034418551255198240381606205464343232554823390029605024155582708233328817026001637857059632968931769368420571333075446515501077644205896052143896131478807121108479372917112359099674780603351358928400220662711491668105863669889683795807717945131915990119379926563911589438488363804506602271495858521219425615953116493660983736239427542908107853905045568069185556260530811248747181586408180955758730105092496429625153038474808288038326867032927597462105328612787304919219142399979232963712154294118404341391480842400633345957117443708024934256909436551948490932949267333323690619368119961495912142589809323075467821319936419618298131388671520062503164733041984808430149554761014767027924472111367631901043404912013118854122816083707150637278864726788632149472527395726201920955334951674247876878057478993845930876644350251799056586292751071849752741852473659725449079259713193722019733394806727269904722036241758793885517285343165279681645537036776072979942294474250199379391079686208390994755865135876209188747776584667355362607142461862110547440360936388355662940796459197704190757286758601054236608274695705378286634816397230175717168483599094113334682061863384854936272500024039027848574194673779427952529875352963950623077484061964828142586000371976149081433113058993747609056078179494988674126999825772555947376453782974399734614527994528915524306828119716782944032900377723521305308393495159781935585350461449380492589753050840756024020340424331843864680363047051301818550245262082122270788103851620826195846137340418898317121148400003382885413881100829635832670175240604484438135064816330388550982757086054977120541270746101505554888936555802187675504120462431262376049064539939733533826549958740246816031581957797717136141638883340600657742765163228269625010905324743517190034302717873088992827902795866606352589606528394070804378628300267492720258840548395009313522958361932222680087881615065410673378600727275929813977400592389780990760960881967448712346051527435945648690356496332629314718818575692497696472919131915277457791779655150200207707404372913987022588770056602543112806919091257785519187071541244973509280075457050138559083835774665448855420613381012881729337158099967891398972920236685965182214895072432431666067179038818648708795502677283724515207791090121727543427452916320546130996803356335463300796035192014663415004506958618393196457845934615175947506640367323935539923148752556292658178130453351466582285830215704780573628096939162995678484019529632786943676057703519138709564915343562423991634653222048774651752409937810768946834746055803087260205068745193428879330708365019920227798531103800185992231798710528483397009927323262989772836477881564086582708357630072918931870522893547865796094809169403550201774105073463162957065094811930088076818841400391894234031182766380817077379533845092337917515259562503676907780583294913970161322755069309452655932813286765483762127105384189926413517162748697939374991229809851606930518231605239949930610273726866908645742999006379047965955745635672625815222574965428661986923418307539204229559397832070393512880929754627790801609395564398123751485320292969549896402753302080508998933477400175023366891281130203683189541871923949991889956621096196012046232391491853156633276437100802842689902444603240420506549024052955944295484608232010073768679940088046131668669555888124190809362159073984999583732281711876372826293771508280060786646305126381429096978904748811371686661623094583877632661754916642005281147020435775399358519681600187396477457668162461468206230634813071146073358202104323234693413023974432065005686571868528546862809004511769956746776408818482006805020323947823414211867242062092357270796911301998336184945108103640221062729955029523493406446350438994773813882451936238327932216974992790298054289184922279483181572506212964529711727155536695470315016155704503927417520541024432905058672707902412379672961037947547585204343443092996237591897135191864239340214731789597226274029336703012149236091540329398897149271398242508975680494813496451315901922623497791767968247336693419955260098063478970264007315139010437916442344228556444559868603798952736892894863189597119683565286596170851049474756174973399891977015863483487464228199474983361965282308597506167341275532974717817447520840615793565933472384689608942053687812755857052166218501764640028519096584277875453081613896043880407872299887827006824823991484255130658206568062694241724566429307603120543162003528196886713726206426462586013405231851395797362889786067084122493253554528720013712245392963121635326689093028157406187665373937568898699495350960975285088329206131269723297649165700512612283748595523784382746323876647250161641175470087322528011763833734162039469874865779649429610665846011262472053587612890457355136908614655645637761905126915697281755699156598500453712910482824068131419663561075144303285619843414123053629999415537209382291228660474514189690457324877460078843784418727584842759757681531294471451116967149918584398659801782122628564657501624835106058457088136378882245126433377502790633020500158607785354901827969465240995563362777108074854879483285645504906679441716472189141318508707954774401020105758969950241593461834676782682069326934024681020131520269695452172384245452716329759167720603144671801709941767749157793461338059609855410747533372358236617077759499451010514885736307160409484745838823883128243851289056090194369875663843265495015445625086448653724401872219952715748481536377165492873854175921092933621064765165285411634960731849922397205401500185959833441189699948420516326455090140582525139267007416445758063251232499604588237603737967702384006525714466850103831477573108402992470959191204675606943560819320756082180800369777718990316387291945731941717470596751543315672250132065236424808491021994053526014795852170304712815985627342488388591910318058595806164321802496370348333515272324653702392603282147121574349546755293846337666551984080915055213405306461612938364696505108743457123611509858325964585973269647932777758139948942405250807701176656955252548855335759840997590529828074304507418853099228672496465789683421099386930877049115643791050358136241917415680337683474309614468503156686237753784232746607621185815112409661581260886224218341877126566622769287378859903701674310643162465874675521310321924597487020394539812356484146788208967517999796954356039185526716653625066817080321081077234077281873771496330155561919398944601932377979064438729701221865118871144549309390608086000188848868263677658240545241033447276866510360966759676152719034789749237869623550996995426477965665035381521941409373460605649764513546352239027297015900091342040032853462859313437958929239910130088915515793743737094009086180239523199254691323603064760066999451580784922924182978612027077445875551016386257556799345423295001306479197817511940561629325349299088310236463014345066736470408769289235808901690405214441162273358341857872545156509935418012936014061655002768927088331683065190824227801289326951566738024254057668098645046082336709234632832250324700770165902881467911784741545122315991284854166209231205300503134463404542255342697724972590877946003948581460201045140279182086080019635681701397854636635409279625739086980775771266635607485714650124218204433029593750859829839984089492933687324385452942466683265880640449933013403502466387034518994211936237316704034540953248859443529393564110215581176856001490627599118755316412137486122612509178997110022001855928470798559541710910606856461812525234175549518304770329709211740450983364281437816087186904296440603974494894928053725345444003533914451116173400400336547821482467140291293294932369274881302422358577826061215093999969716826903704628105098276337678529702751870171716276263540951993808079562190765085682880894086778134335635834722091458147768867710975771406068147251609203969494096825882099984738126930812348751855025002752933686302872503188105461604930645816184668921550800388566564860248588196806131605595434710248303867152970870701610440162154399373285242838363023966315746487369370796807055421898690435264390685405983858410399001996317895119540596242979394716350021403614396779564310637766514980656824345005130468439685244852778142372081996311909345012494399019564429392472000172970391274351352843259639916911337266629380582023978234004923254096306463613834702203620714517263863696399276697251054803264786735088605200535878745364875736573153846627690367737063114038031557342514408500995075562244641942198326953301891264188390614602372997987747015864469346282190642525957722375306182417804165910034962077578379179627778052813435770347546766963186799602719469928083791165199855614423864060197436538370094614123764690468782136139669670537651433390428819242677202383394097611084982206168895440334099458171417537675854500291011990850935284726721102537543219765497957155436169050073088568460956241935489577027987352519756340250605541950167686696822628179156768057210975928654675209766048918395144303342264245714306109144259468487052276186035739676141871290376463345905010884866543031397969586375327676627520201281542184832693433844469844473605869945922445462431386087525122863776863277270496252093720395610221076748073134351269616120197992503279869899375641324422069332646645268066522101483013211722814075119352715062256988335455087626302172184988806328859042256690286093696149454275808784772056837367958612132823404196912778594918239433429248775491037935073122232866804372978869440655613162777114818175575995411211030798639331753045852400327799649370898514907455130555473305856621979169360439346476710203514055343030339287156780514939644085541925880305656741756615192518057111892976112191173086878206755697245360841884772012726424498223534168552841453258216882021612687048935585617312620284036132221275377819449019502745075902271857384330759798975697918952144236410012140503747073143395033217122155059026436187721153725402657809409905592675095667310987825766389835888182670062451474611234125746870262007661881940194293585019743471006186034544790074552457610030889806446106236314522145762814905615667014815666364099432560806082817178798431470364992068980891195780206250311477956898444022446915974009175950536848540532966849294205011663899839909991704208078615268199792173876615619527829481383504580674843196674468307804196607222387695648994880484385791662827554084145059290418441353120354980862482039320845202338865843737364482030758504375108284475405557942419601290369131719421446117181902523818741666054510684624201471164530064683486811875724853392136838432053658828059846035538772542680460466137255342586772368443211011935339849171408029722964284965886149580395318883537661190030536729436666326066612561828993831274346268551592029154259958324151430238332680770934329327464828945627049900198823639516327908761465906704908823832372416785481066567001123216005696118631230212280698963857113242962107850780396235621230115919908010810659145608469682486575855474944229790842293082344615550170859045448524165357584510900837154409484816640718605820591253761329531770191684713303454081780109557534219631457534724173132528000797551111287340807226973307402186754385578648243036109799329074558763254767968929446465855554915340787755636761142410900948464737651783597155849922658361998211672912006893984556908345348470890026378551784566332377225154745792271172998049850774081168537213229467930513604392906227160504303827125033713417067552779897159596232658628935857054936180295941297723757776607299826257122330564237112120132088417151398057183329058192073902587151981626834384858264984311443179561358598660554901341274903041760084803891274134974610755343216840303476390996750652630908799906980311724891390593732636992552004116988313131897946312823443969873442541358264693776629118754777544368553323300366971075786327140948273025746591002737231014145730799052077694322727704445377959904384986906678910687002379770775605521625095256122259395984206285271043799621005197293698373079088457093572176603782514116756349420625627304557152579018821402909698631729687753041531874031523014063549118116163262354228869116039338327968866571079972142812404556274436072265499959217429326467101568134919349594429983865614862803085887671680453706732513869536542595584680527578918320436409594174330117700643706218272741552403232192712172749305665647871172280410895574838515455395266614014882872547643519093596498477213906735893934896640665264105448360207637652130484134806866933349519413887500427471430099539692983746292574721772390781504160370339890442000462205066732040042191016160757444601554877703307773822819449603041139549298548220896854693839745612459065823670962058933380539296466519743682154511522758405433118727416066860350100546744824622257983233993102000007684811747611657562444335462009457070688247480493647354984863730081545384788093727519868743578319509177765177983243105653560014167970830233155605303674336710464924298137428255423966135362725208396469103523562815729565654721034146722458735246891068042289105278944631560947965344021424940688595580594144257206104573529734531507884308969414022555229156527905413516242450405885739592714315847397851776344514736308456468776120084696425773031408302341306748738226165266071303515400819313008560787466672940899612394625939129495160879681679916366099510545469560912969182598248888198558152171712107540165777170294550903670289067609883318417311678735489276095245565229274495502642546333182346309243481421894548960916010422916617566648091381429285975735669247084454359101580736711182212889536647760965042156569655481316535026036567883150946131975098576259795102342577377984335293378893088183843938279797521547919743970799929685253398464875448568718634816229309073536792133298526465750054428762891029450980743781486029173087118926421172145451492612677748335369296423632603666856118932508046528263116469869244781506764343013675950875046393608362358074240718960360010048539212016814358030197095050283989804286981424705693719976224026208532290430482716648055737996444027855400867559647625664353159176094983925089723471857698725218790690710571687734637049217675532098702378339547766657651521510774441034709086830945272552665162603199596274341063813100097672872875061705683803990443143466134899303690453211791470336706521483213930204755729048534536673457139124355002115802263797517008730676373503434705021879382042605375313664082567580750326390926119962113978277336183979065216597622868343980085296429041112554585678077047058250294852925045206927022497135169392699611318011421904936018348426889328218008611396693332154110001973605905794146188838087588971469464625389887133085869549323288311724469610385516813733405253637026324129273548877436514107311525991806716551621990225202665920553615004669074095612519067300372858169808992123177922616493500460566929861547518195139073342474818993366410202751345120954899320875351103397463800238629021900313511744929708719118911927677500646502567022070418569610965037488868515437199809214218199876973370683717172777324418217446188927360477819005195399900980600015706587895706374889063514663648630829102578796437367292691552912010902488150324314318209486755534458017520619376256301237011242398025164201110378250248971151616762947079934596896817497422739146661674460371789052566106319810991659517841053361568938058034925768331504711090106616939405116715370339895708163220613560901456241289508079109650300161307167551362888389248974176906946208638291489564817749260518895989012548171680379860844841967511040550916873202151162886873084870650593437527671543194324009081514479007818488572309139892256533996973160972343613689725651132058141111029934599598777522182293467611710362422987317743968672616805623420357109217829354391287030895072936207538806520944165568719819730849450032386293086015162446270922574413840550154032557485426809342737078311177581378355353685523512845592977612612658965171808457338938722097840689026565495351140140783353411675888376195753084456586027569476219016881314952910363709890641724917603979271020667930448458868398434475466313939520257081809511022251893466273818471079050204783089878881615756703212556905929735414281444631675846134858866336144556228226765019134908907522883288945036346269183261466861367133925383519362271637808089173085801914943037593598104576138515043590908060768930548806918593642337854390591267721519762534096471324233785656456296336953441064237652550287626874877726750229146139088466423425088510536981453374060776406086040229509496044291652489694319318579245790114912887710541036718698031590343017498177017278059748764362453970936350580810632208068794984748025599884160798702602556467942763966366414528784606197549537173154547429266811514524024291087654515109966645682945513384264544787084908142580496558645740401785020285392163440788138287670243963690039185520962611482475001013134914687169185844361824724603206284304126051253256043116338083734011757303158152144513124529982461123949375536180991110055989051779067561384771773794995708699623080625405131806642025284599551824175004757133247208932025802014042169119192291134646522251079006795113667422782963273162083872149933093700788904734267593139010167181910138242763540061392293893774985883609959444411690723902865699214703442344778536174092291458688501261547155215901256711391596852374493765433129347991375849563825326300680212780043157599462812628445150454585371079083281905073868298781633083090905448395962264808523527009718093894615448185904529932491825547291061262198003913785390390723741070223267280485649034692479747094728799231290130370669237986602137114071386691806762522650123774023209428967852043006837027667584250197238987784852639544383015797116048998868920183026115855230172585264475928819241469881462341317150986840535946275793838758179732389630042241441185937330098698407586820061693146149546833127504756280669304180291071793321333550174035321476735328541590772739332019505696168961112825226736048341936474509099100584661903482031139927284492316265971902116174556122088368039028051487483824528418277263201063782694881188054733128662911897413744067796241600944290285915841277864235369632139233773431296349601097934070711828059142757323400225705471274103950005265505641407475084792171495120439228901939073410984191015737389955553667460492943195548670183138917404411477086963091209483140351314638927432779861823860484305927703682255967610534295854689827957621997312056380008767225185574628125664245330608507670127345377062782166040653229464462226530427307886990298596010481961559832296103896478118535351094062319524971992932271794144865392647770536731135455233344824413781161014452535709031597900783823603362310813873550073839147954328996743155759818269906402876619638140340740260275987707850477255841784372366939792343227102857640584086934744142472604050969733327974159566018100129680432980553749592495478643798009388374999037734851589365912790737679529792867445589873184246219557270262571256563966528200445869834342204226185264970316321931167251634963823902123998990452199086565975598987911672007086944013627091788873097735008301763697035165892657719478024567977814113082720572755255640940231538458994204150157917440698517834661211996548936704453180652544590607549150259437622206745037812273963585834110312984726162593297848875818025244873538642064212920775058831386430972763099842243608148228438146049215595664845231278542168603252328224711303812876442932203310491499245360989357388430774623155199656471708710630655666673245631425631498805062387206563529854544726454299850421545939066467156948223961163641933461258271722901347750223299376918809966018490672582012075993137140237920116934230911651605004453990096358310443019079967247534560044961643305321178406600583468612514597059236587984555586133355403580429925735368537907720115208951250178418921156706627857077245534355843991618294484236991283150168855942203283439062480962975457367317986066675444073833817711400113668413939156813952263148495341111463363384680089519361874632308329172656083525756533809606341826472757393475491976490485953729617869422187674788064453031436996975704605940587872335071160984036285525276843158151210784146971323306091599390171011813809926445725349378378609537080968291895960427125473173977825801140348513289569931584622293611215030321015053325343113007047200773787806436956963319979843147553523774802240028490889809395682963723110245668674699372737245694269661757668121527166931016695413396301519324932987542627024438896759114879060873011871253944612442992249478329019277490013800706856906038539208893685769170078348636202020505481834025405787125183873912447873937304998837916208749818255607548633053474713604257796228532101639579976247687341176526807261007371934270285942601453098882793650696545015036174567804736693062606407710062552973836753629719947330963158389282924148832320526043854259640503939655393266330128028808406456819647534164856920179016043531795044072184025833795374515308416168448020256148959014920640541889746328904339812037519698104385708509517808092042068850620316459321423627708029908118428406216463853690675583317107209845755367773429629769021945978113142915657312214893663668105590131421674825008944572711723047903752191067866790625519174668617151041640982664974275701945817887672626956610289944507748013253584759416558754840288081626662065522894321772899837978432252235240948429327738243789800031441274077440518044488904768652482853818414618599679596967027417093883043783823793595142496200680326062025552586329138278821308492642173059553032965847151248837750480235846369159502196305694338436988212449800424734533389015285949633010263772165607761475048749145675916895768624457055699358547124846647862528162728279371367075878688196234431065125654043092912913956380815238008935763531571665097080692668268146400205565087877078811398315567517668802748454848964337943673459806442307111941203773059336307823596695977686479791499384863466052039517092164026023488354110168070220669740421996017959926031860511664411136104311743790344110208435656597449816091439177017075566999602974113651223677733629412020256775307900073434134248879321570352746774203827754871423911029627415270326335065877313406825644535965239623854413459976772265939251866876823371635564501843035877277190455270005012195055096090235826107595190524665870782204956049284355066027965328402269453707057133780615134096197691713198582002492859862809443783335402679852870825711943537015779772194076367073719987923777050865329296706019238171963412920101841457594354581214946286628958181275451437257965378232186820884381706113244576234922690704436564837362306541180074286457373104785702266985882732137999694914128031182875861989151120012838151623704564244550028172369134671587956522175486906410770593447882656857048561628297586538626377935421950085147389217391166153206892176172095299637351223800073896969324776338274277108618607460898844947369199178808032391581294257086970753532277364449919387486023779299915784506039996263829594018662981071251609587218882603343836757461534077686692459382692298287986874449679524834216364553683316200140432235958913854555892538722181376253750829263358269034087924744695037396766740943809882570703308233589013867007288212791132464112985163310230557548043144106458029075569353549642740759958017723755227677500255288418069340023960441589374749388045681339108528094483614228922369748248112606735460600682361336031202466006789317412827835973297912094089768383931795527870621244445104804485141697387537883538992242936993474838363608865388430487808788587321704944854096747602771835299904721318793469278807352877413811226913533731505836056083889474576984208654470842973267799424628195011768970136230509355448660087348049632044742190343319153077052049814218915390628689583396587031828916351941848376544711651242090104309935831231573668163902931746206917192387089551886187110829110927179045439085426313710307742586528879262188423550098790389788460244640270850221840620634862060940882748116224847711420681416320703682399246973837454830802146768604967529681152024957201282167857845906269077867985870225387062923882426225314155211121079519932369646113896334661504659120234004960151734746078306724770270431187249287087222625893898458186650487395007627148526439986314938585362077049966940311278719562711688203258842300191773430279146519375310614688892180010876123257779695259731130314285272497073548437497263632047739053071708070202077245569870250351559557851719099115050767089443353309903886638492981142208356016240074179487362146943817751957848934296636176895199427660093418064642141310837124740425508392535369623413234675560518054986323632770889507774129010923841068080494714534104579600123768352968242179544144491043706601926255431494696888283965255018347413685442244004831793109304045174590056742252300747739979841255099304149804104261912877189561762143698532000786036368494566640589272673042132131644323495971038549764534367362533645094464821960367301759023492238044735602631577713489638996127128817000036232421551862697963544853849581689261835240060801993559440542649233045139967840649166929158273838054111847444495407070572929207487961207082796127973924239673594020352913435234692365896808389353403254350535013713624432023907805884152835788476523085060671674109301846888539953025946623311154843324337454844522080299108614213761983354742919697700338149446578968948194779190027089343927969807762636537394781284984126342319291831248703327415377517010418717021186569481610233905340797583828904256637744899880998629458154668111149544425880700408876551206985020152705671543601637833978160684973795893763910785515236567120098649624820523790590548877928990141629110959069395269888854891952003251586952156968833348781758653102998122349820377128296352825361736362686212927102417243089832925603859224101491420623977008920408527057142293022597057730713050300285002189187775510902467365629442728849879694869322893746251009413374244920712357979823288546462238360057110216116831850493357144709658849965500759066500035480830169157284180039627845630917060361101695846460765190607328275770311866239058533170343443907077956690569699342402853974306771024517779532548635950152919597237075669170364036359220867719708945597064174959010462267530190681384918802095200754063344224619347319282855896814291612704636632792669947161298434103064141051845677685036611562556631366065888951008503271291809125691809320170690014182416278014020646917681036685772594247643087506006181895633698274598486944671670376461811955415806648190938341743651841605922835859102993765466857743979992053601918811605245914867903125663346202912721969480268725287372076659231212242304765914846845999269408792594177345742845982569648610276166862452328265674484501840898172883742934709955569268964602474875533927845556880585254329420947371853691485610810641762592091468377931617587732933738501131295846413303267656640053827453091794832904144987652676675439101153728483241485550690738952676694099461816509431556880947369115162797986909790994995452232867895938269723620335102067595618688366285646427845055120444726957832637866082122881833118437242816337504549723392828638726561385435146277119759543779979151926167305131900242739266007887423760391219841584454887371920884700226133778371308027067452443131943187646180475616207690853643025513155289273925276268217960703213378223819318017081196911073430161436297107458277644552364477276304677789640258922116350755646375389216285849635568222731938965737404214377575498858628559105990654396069227780811058613681051899428830203367952503703817925882982998798459368108974535597303346090766660034769343656003852318790343602704676649174985425029244747319852641658786718588448484967382679528682626574464771855339660976198642193710834386169376054485850325265787223058742920109288946145607922768015268092681787664783593833451007015113051138823115558888893034444570596570109551113638328980336976456020323317640204114379283524007895606141090000652702717837946275876138175448636057367360154802094347255279206167048128202016964996909128452896031697871172051315934419295884446825744210406105597128029104968929038550973453111104204080057974802742541503957054108881771573295683952783951679248790267542690975084841197758727480260123221920917983817748331622993153286323003291370548046901224302818907458679903933899689310336507557330531180408075424242757157092877926879342524970441174317094460248182546437401484409070241153660611667229975514962601055884683278716168107581117254163402321960269612190799950700374231429387855904446576353881012944507954361074979340969796688885027910636926267373372210447645377075338574934792835983532408973229184676811409817973440481275886196732781787673775345059802137295980835631309197036640444461459594837950681669522661875570314172637884946502062375114621434094263370165394603031985304562229034559158166147725800545375996652976462736458702802714093686257028967726111870537751545518292048191659460425901281561549109410431810606740005740858056109757818622043290845777848779844488471774264412333122400972131466143690885657542132119027107775794290567545439230048788475349307892695414811759274357635150233654308424467972659604149595946297037040854759928479912433076652611565590058968089725332587483821756443652024300524184041805557365926217018538713921828026401277036906021175647730113550050315825819395206146800299883078731185828343633713573839874568482444906735727125603003859213301316813509539954229921563775535184196508978438615485589152362136967286298013625288410813028017200712468709914101392414954080487455707123331078444644567487749690495986995221386436619492252423157205867165165471550698375709342559720874740528733461482199065984696865105655356080293993119063357241257480225002380674713344065377170772533533530605475704763064163655344181874518122263340068198984697141794773611346160996130039979855293067187426138355384973118973603661399371885553543726247320288572219274234477573925922922143414517175259293654395144821201811793934462587790942121451876309619777599826171539146356931707395954232648445260187023536984251249736395807840473573180601898427589356805748339929468525728880166912192590432910362529163686127082789739342682089452505982147003985068843327271046765766543301018948081503730568454704888083769295148739848383838855254944248142445029305922290056685518228854412213060145979938929171432142529420092064237106119184043161660597349632460933394187821933505551275158385070799069799579034075620796061903039822511630730217226702987367913790470739604409843774930129331404201084626547143930806669886203881057804745868745943474174517429097674615521202456492666904578341502823899394358140006315824780568894738326197641610729237743059598802000339320741345107487359593202369639614898105706049617507609134982060305202716370456545090246946208895991520478980902227468494432940428467003151783468123571580133289896313637218766530535764965893083901542230886010838791475098625559315899000354352566889574462443529157355322995619902759863496473672975515010367965606020076452022879467151151892157996982393972778013968840916304763227711515906190889383969686416313421470160912778565437430891137172691338609377303765298225478709856481720209675359658869159715324315859132014730042227196859603969827170914921953611235402893876447327044016800809048023443710601385663517283666433504964525022295081390254465324316331152924152517429851280658080976283180946296884740283927898729591450288279352245657234509055787736089250912581801116038269192677168282031135299624320339879735659405202306708030032167021413572519998077282329293173939360935438676191207073173863172460701823100670020618445645326276343134713342247806102323107543806122897653477154306130084263752894164978860105990567633019853243881361221691905671394438707811092441424763411289686388930771902161415721962523827622225158772024510777346841506937022366098010933836634982236581174784954518800929049844560473317995557629183566437737188043153717465516154816654362225207183281956518172526860135316299496487182557665418255900846139636510891424520659295995305396247145735219127454472310266728164780879497949717203067828356520757510432396273039801325756986904545754008775278479775427733333956045688264566781916382123944999597531086073781216711818355278543421969759494702098001376712163578915758106878449487160852505068809667057802776814001763716890949329235938575372046295849576009320295448136979136530680170593867319303362283095386514002175185630254987144083324221910833752380947019541551606746808275394467220613109116232745712885413560548790186662096045382143611623587103393029448709098572600298617946971748689376012429557483842168528274957748752649438471813202655344841336136109960657178370788592606012136471671547077715327299182640491966243104806531745524046456531879313708954868053890274584449918116428786032327080057077903301061874242076808498635910485376302504639834268235563752475664589893426521924969128049752710965790702049686197483166545797320300451211754609637670329606889510424419940423567303950358747511500306452780310862471790823696107065695785193246210451442989523169338781794979455215071801199183147091458705578946927993838916862690811662859127099431226217708763051777867824855398282790225724238520076014624814123922610942894259924449519440460089054956434589280955542921572653003712786051801013418643844362061508617480021250001618994602821004128927915823692638434377511379206624097924751197394844399505685140448839637748299181121468015625519172765639576870341900502567836867459015837337340164024603063221450568295230015459173865218130523110878989505575307157534951990085465772691202454670417041576245363903513545142644929049335733875518820517642194022545418155883390469240006989360184499877702742262979996741878843544888242391073309655490219831910931066216680745675543709707546398055558214131755484457613208465209763065713439797707743371642141867807641676848996928067110691919497286810376072878968402962877230297020509185046415333269773268899583256488684235940214984435456189365522624458273797765402193808302270414109254039611451605450084997451203024527052679578459745331916331058956398367431858837672206306551914916728121072263616873264170718819293217793653667307930505616911176128655720576727832052396608123520421475145895317524168667802269193710120342356095548588349249412489445134182902698383513216746821219228573918027545459605290581236607656821960511995007046149083841241051827802078816027303170797056879253206672831450851144538970833511915715114007447674617824642626597755754093295737883310308293252582601589794249568492816533505727550594588965297327340855354964613677375224407293599279990471489999241767398730746981851480669363249660068624095669847950858928697937285736566986443756460174842824061661076757243302610048228016480710130415398658753487723446518378978380744701447085695088382275396942485291205515917335843409220815716788377557626524622594301180420135390884690550669809048258546694289485826988988134766836592858638704823577465503010072600892712068561059078476178179119725174638094989156555035612055658916604543174969422794996688673037593063008408513543473984171125551260223068823173043637526012417784746188809706594409597136682135454846827484353199822340992956220763813746297818084281802471597173790178391738846368549746306943765010862023073777527550177564024588226161775450825734637854238910642469857093101566605077752236123273264588976800333971030046298856503196256851243331462328758424409278844831058181814952529055244936189122496771132572210179138710436549578109518696250487203091045543960797912224403657860966908579949255665602497868408756794961491839256623357786544836248040526055315899988237535098574294364277220914171445127542301995512035301925949391078386360086136380323151459408738346199304962098847204503330388822889849055191909599866358443529127307164123988447415178088533679610094986765035072963025436218323955721726642500390241310447338276156736647200343153217263131517311506550475364351301686244090293644544757187009402057338402889875732178242452817146221117659852969673920714867068038472561536090575276923256272841927759747597043792648959216224729880073702093670961723095876728823074258926200885008650186884699849495555858798306735929940632555544468203814456430184889368231949386906045109924237957607824546978949539546954352604554739024190715328239886827790658216826497666213249549540890356036660025893261958987250018247003941220912102297470104518002905384800967958866177227686457182562924188319790160861874382658070488929112569232230622368075453105566997819876821303773046646730022016530888423248697046753148619276753643865524401300447471591463660210260486676676498484246039254576631666458826344585362946143888099297594794688010617736952462491654151355478263583069307929418987287239928238737369788811145226971004165605304371675512625247257059441469257696346753807553991193372369547146478776131567243222853666555507088261510586185708280059553187838291743989033274057914861707577927774886020171611443202248073887050388078054352215486717353135736184499966707305981630176412548456642953995280102180418873511699679617843006810003524108677132718272548350616489401272187706042915531926217979081490783715531577624803738748233419353402487425278850106603659891508505037187934548876396861197109520076760249644884310096482797554319309295922932395450330321338266577397631901974821419952603053233708328523782578226821983992710597071092650130580066766479845962304099223789910801716016554924773512835115624589691156147386229057801716184244538959184573284648812736528197828639696284200357162033102688674465231329850431552906026867334069976913288051701277871911524192164031842240475792477999845417480733268261279798020466856088861505588032721874272526323853209121821501689603105222114298012267289356745316501178592538083142226647779707476127734585543375364760270389538049831662612253620229348702510855032270608946732442179418600919703896539080878370428425090040895388339607548803195218208871691155183369988233532110384694071943761740071280413752136519807897966413282109350452322153319143658367749264380361313420616738505980392920658642298669878886416600262116948000546402162420799498118886696469374065916397112257375060816289335088582573533872323641352109220686236453704438675651824501043412349964230974339775867486175866852284980274447685991946295511541083985411670783002325017265319140860504433285047673932622199993802904699540169114457372685485058168769305976572835773161155361863764689944446362715700702605081701974623247239791090580893378972997531886185048888922173496428411535065357330515774156247259287521641342146027167868118362097283263362071533300294412534940015306683903132316491731858794574669029364826677857004443425459796336823098611381165592072348478106121482368905716045390328599947303199165342269545657161037356785311535406821696837670757257622860300507176039968186851093194620560461888461785901578853011478530904333856199667136297954445337637507416707163384240702094524623124192642571598701347833480229459025311492954193464105138677015044733977423778297100655441044985001637955702751927747969620744482084462157193962510744422276494281311819224686846493292359571335998828116439379377216207802657034131318355139210121605699924431027037848072235693187983571739828831892791095971766693940924432803742805181594841053976425132448134076684047578669731419293649143112812572906072615775975686123184543073474103213036249784898248697013241886480116890065864548136219371143894610140237360011409215067629176304482827819203649595619321076259998552315104190893174092900206954214553667294660944861565019457554578771689894035680700345219548410919764460523578942480203406294823601768131166497716429589010847983219637537573207010690911273885118772054518222216722119691047347764171459570879861010562612532682633975141315812880644461050355922962710344707130076662691391915369558957780627232628671861878529559737552514626989894240793421382579394513671291186076391668545711571340079157226954292983993650748543155570701550623439314051174253090660986806720272443114280693244324913032775731563311172286512531258810770887200516550954381817712890571227034603318116434204373858020482782762716019978760348820615809513011014786523391461725313667463313403408246750640527997122851258034089488506148102748331995637226646890510012785255300777863671998175795025156826674584587473461607732420255702028768434683701133159793329760721222503641025702266593452810389276131106572383959608818486194492972934749982740160327092629415251609196274795070031250592374673794512186576574493297876491489711248432568159144318507525055629316509003520216824902847748717500941858877914807598954063123301341430819300770527744008640956132431498356860503184811878919673315075813875565442564565628786009485531240712187068837714526803281719480196846105096909716157486655259482441025115772002304179909367103848808317956363354732508426458276050826050949257300119909031127835778139943377225710557589533499342475176616588567737296207213457297022587105467809652873550357532367785786038411120435081570271590850742719305487084233370189215018866810168526024387350332504485422563466727323774707738870037835522852299903224825052501291554768691307950598544004197140561586897862024108053970853429761788719588885195907079174250572894354221896902050122406105350050909040726743306353706746505824541560647555570549768270957619666472908218371250928647675221250469576395496681808437383177426351600021328306635740901381391809707235909575207834238612246382036098758947010256674528516153596256410753499564594699299971601853063952283384982195713125531081519741973439583703981260234497777408583819749939578471690393580628441752690325192739113451018990700055458835108808256247964749098398588129755400207326305907385795760917666212475557716986458881915803817485550438552761141096598269480902867626437901904334931482249468112853641076687114473105512338784239624335631887541998193575651793556047867060891072094792851253307756512441045506460948590642189457274366939276057287102253189617607198227014134036383567931380746910561934149704101339798773426729770686851751910823539056514360276027737310379483825858602205246037508048666596456921615820977845233088055982010827003074409987775735698612347624440242668160141210000327544640543537637323500687261788128195123567784914791816725188967268448037502647300592700635407227308380092591585632479891206713547541858428566798782233483117060898172752119172467009526157065798013424003137274383085647429360988383604109233832935343925059823718612706010757990501778540344117089992405386707770974647823237304676430930789985330131744042971693567013127097403295556641670806311757393032085131193117729609342825387311014874246990158208583356087579921952391130964312475551815802021110678344122468275321321161971643994149117718666128168518778630552276979418340286386513494915928593765424920507497062017135599093867071213103908389387058382493030975858550957647806866879774373588995763639623142971050554296035820817925474668069855849362725854548085742387963004630975060048270909198614502683691516100667688906095224766242717050216955127594731421593836375815393522485545945726081705232580273424327453344626290369162728989059341598634753713165030153750517452900482842605730309651614053578548547437729755292474542055855024720482299586140207394013941575036767036228407133834608064786976440609089866838851672612765968106458100886347499328295333081982314156737587286154818555139025840571204508991515694409098942892173905057776018947388796926840847755515800336972043123341106349595513243059584114495525192463487577334329719005580161635768663924055860677230156216948872243719629720434280783716857657647560114607788486180239266272443643920504045320259690842237892509119174661824090128433391668717369978511842365589333111374714446274850549366075512267770561239675802808634718008006882365204835010955687070974179615819052234153932400933705345594698099580445986794753862561272107645515431208709383815657476233412334294501630759420249812369495710339572178289181136366864365403122036538727768665057877872535134486614261156096337857210457440018419492821943158855985066281465212431096756942046831452601135189683725853733269962254959475246830542117465595125764841616458167882652457689335040537711444197543622989374095920808822778552696455641768481008494777408223117593129434762060373428764616919315370633098954462904197054058104906846753007474522575478507067983199482362284771531375506125922468362495836361542693476058957649545067119632030858675607741153781818360299639360688152873464844956635742634610811597929027178944931219822437007524424838716061731546173353966800767190618702638164094109838207895306674120859275921091027464430192744656735760812295137476263581427564805520624840487870010796548930941657024951970103394528334725960281244967927398548090554973870328645688679883936111602234353111886282593571928725675965307844551798179743546580522710147685403648211521551560367568430751645866213303255673246741802784486553780565333783984663941265220344637591604765083166010311467556152943191949425187082313911781204835088794877011679152724701344704400565828570840072489490550741893850271173298928713105530305541861637093701344060437251673299288069148908763518678070885561031781237053535041505772877323732660402484983705776882424138756755105998573660149129432033357838482512822168722349499724734222823486540141943889368586112139731591866560676915469097350432310609623807885623995064512627144779263859553721280553540236172194306239145418373566138836927586007450242224661759004851175936551883893097910675613990339512426650885148333014746471608179350395243448121330943456177102303145991878163255842620528880331530699661078355152407031043134530911743416433720869822309161686522369458674775417771358996924225614762767027765926707251641518072862017135961632798040266049564150999914706567714072920104885735083210026742065304762988898154102457546542992703187816831687097069568961572208350116453746202137380864114907674043390484889788627326416761945632976361532072597791180803237640153731125279942163927888498027406115370865967648538603830184524639896073923772257676502998350978589044134378620077986643191940902671833977360170936171586149719322860879075146431914691903694038962640691812238419798277122354495190348020477032873093562740372100129818194812385307702130863920623430713837523036842301277282197475133993928391252719502808083703623082373382081562114228235233871581839707004689634054611525164770386387400525479127308514349642439011835515228184067656514218878790701840046266721480900630055334179240729282924852024671532716709735740892736443019813567923129420173641461134438581710528500673996045511632549405673667051097569421162938951167911573579837479763477212909073453426900913213383378245406890732394016346979655117521697143302144278668662329013783711444801510817284449027235440440866344028553545091922717491065114483086000675326830650366698074752782106475328598072921932406808092246204942936823008995131568767269013526164119068408681374030732769076995432339249369673486449513475566418910821512534327768055947737079089627034827619876187686242186065913049775143233927091965331051930128090909283685389955670157856470496343634391755262098441481616417396889725785421288572135051514669975680296508445496960478796476311919999058082822604292512755045709673756348690644789033969358327660062824666380467441759466774025159654198240232028244709616113585248539354648710051903004903851689073506573302522421945347398597533951914217079247798358697717216477216148474538352015521522962261097382710176443796484343352138992084712264828951273886491929183235755917527270668355705194265988810327038762312860068595199425477189884130368264361923716222242378956267856174827354823148411632869716450118980914726535467660104423729958412758933732501233438371669289355359123210179648050560145987458598031813056511068369726042771096693747147753118677879666434229924112929838636403703314437242157666861498716391001300233139685994640551482724524568061938627529149088151486094496315433138403825776063180938274582102204369171761191927639718713127023793627772010994508175409706850382470755828830251332239778791743309763951827407604165737827475443977972722577510760303621454798973783083821046891543176236696998483740477677947673814468815373354284065408208398515898681998561816739740040072439756181565125248263448691766844130377367759446068346683768982154247526451090316424139100043473660635113119278134808751689810501634886548037224116613635946277448783575403228864858121182929044655158751895493142819502245499329049459563145557930997288273865395923986327221444410571464861014292521562040484175844916693290092616033060270884590219364061167806137828302423864885215392671029693601308187213298804443512326528429417584196345585377210096701840023361803445823278153581551054802656531382701691510467155321037357300103386338980831655368302966022153334794046293592350129253140411844297902896523882181694109249223917764130211271898530172211868458990568289915767968767573450710245049599020096670169190055599314298074191374113686124526660452055152214936813137731202817716117101387087864687673239035507341918939133359126793641321369940232473122331555052564338961264018279887774972477403618072256908863564997229179883037433964805296244892486012490087236404779486902847355624246218529560028837082973397585930258288132854764265729691589967502123174369097366619508526702984499732485731455091118523917219905160740131239264307423646921741076031810190018397344547252017715445685117912339924688844131136095907229843206499311391426953857469024362535055898951173726065915307732899422550139693035790431731840634165446785252223519775550346309958175286668965939624462414878743824102947121338372776942781842682546893096082611995350361765436051708926848707361989535595124728795954266235546423480642205537193620625338264521214119160027507881868619856305450590015522421058730614368452655791851973719973256206128254884283487805684474320319677996997098762978098359181393882399720084788687725979565874073172569586072276534187468152170672932127122560263062955609232373679738389073503524145287118019707715655586619274819293548363221177806526181115041085120295731510769845992912582266699949779468692084200159039997711438363908577630901824027627204981360332283553638729935966004028413922934290772416728355012347826441799058146010620625030787631976774930292917436479187074252165844382186357454602359836841406591574612729814049228412761321676827081607972668634861912890125977186086923234947671105323959370289194394651631126057170503051630378636102213621353961691346042167957693411061102201924464532832648559362341168096105205975909875540193377106613450717968383190568035625512330832560706318740960719917384314409838101331313887561907021383393299555388616346874231119443344978900840308857466754865937253729853225654186144105086258538636104747675382315384353441206887885303429448846617994656269585740688411031031095707420127553544054525030552503880740155988286734544122079724723040121797183483375692783848553022987043534951412945093316909775495078467062424324778150921334901986038104060462375253187342238370914509568222156461902312100756756212888384075861525354166452671083007885510227411575835644570728651833565884769524065766147679902134941464317292516970293051200100089194197159600574868429641549906275076230386093922169079363414997458777477349040391809104309312584176784283777081819350210530682064044339873977665039534571184967774243428612505461869422722340072111999309232339964624729664693588663244738082419871647176298400007664310319687782481107712765066230538860323400490290028240576425754495529577137533443487050171562614321008934574523657338253535253680947333027556021845503994499716373314495379070139127013509790253207265417277719456564245370252929708991277980419987581790701742003926390583672796608680274729313022091983853660102528676516349041502586828269955881299076045329772177064212819609819065860990586339330517267382045686886897112320421994526462971294204150858821098584446259020506344270559015631103149528943440176514416299684559114409761307648774048643056152506940016192979289534063706288486233419596450288882305193131077042140721900296542933442761465920367735790268318979216926758993374904284680868481347270501733063619040936230835910968784331769892681364196741314723300803004410186913401721638139418797935427622423939465650201454450530820923609934345624298674433581462939085870724072228379562646577630939101670048235568525854875451422462856431918159111525724610219865461371298271063152257550030895510240155721924905639994150470598339912815345617260334389503706089008428576410334900178134329488119087579926137928136543442496388320133290113073850298928344041329917670034824895959366239916887150625490401854470128684569935745461673265812281980671287885903208915653707410101631605635874844378119682565600485388328636073405085310538197065736827516268650444984801234219548577095350706526982283930958520244475990545786261070718028742354154548031732606271558607152088757538469051099014524799037267911261836179374258815857847292372794239238381848707567051837840779211800075032171905458895091625245503109338497068757291594144162132124264061235087038979315193686835151375634118023991832783144035103465656374737643710900140602943453111043201192515659348018682030485464437922647501047359396472674924102667796702052954871630282653461558214869759420017889872701223595472185418913062456470556766285902209784961929737434351463037466383353407085213424128668421945639272069832746681924928461252994941440208797242952694786671351526258653678389983552418368311208865338007210949923684661906489171308928410905863888013205756017625249993972650434502497107387766484058369224587382646653926274938933710227895451911096554868656633495109052630140042206929735627936585563797676568503113781052052487989353404448006759003719805066368330228771131326029196475197231027188569512854979029506115680648023113289305304887056831768434357171640810656525358646558312140097714021982529908379587187306351071819306053733288927040006859897947898071109350804762228790695291694931921431170826129998588430457142482604065925530256200946913996135854661206527007808251491223765788071027521672642758979599932341724933641717037076671744893960233597419646256969755641905404484188540642051644672144484903006365938800124336789326155963202537196583004580549280518690404824171264973530036475382468372868569915914486417440227278388811733728201375016744230264063510457260675282384360300557097211788311313429983258405236252007937349292742928489434038437894447375427927943434624920968875347185003632491962339898362688718016574992082558989361475542897281314440767218934112296678873326146254583325229268262338674638562932419757853530473444580453524083848786675522742481547327457900905764862820708277905120043027026015690341284608021066755081469723081830278152693607491189858177331660907547738979276373389768528642312535292900747967122613286830880850049040928085571460841345864224950722234944955169027628354692496904613773167247817524857333813563783937500397691809586091142212100691281381731824606642890381615715479411418504923057804850569652639133165507185353195992075836266791596744500060843170866583511985829107348972430610851280456255449946121168435054382944306742794279607889092472920750909356279613076211784875662859893782313688185933054486090626853362391589650339569748134072407225781398982121153571480870618237102131098181658954193956935149961192571895740723004916764725531358838727686170254692705477689460674989896716989304040057160989264696627377316140533206234778215632864557236019105853273745891979060032016153020798247394148002222831827392189969519583599524907146438493274730523783986450530807785648843632641295333304404879264168961873067455781286985314859548101865597301899951762895163856256107307471559254745977019070074838347064613134097284555993982170900447065943112193740206130747114420359074047156223938104687426839055486553746656116417130998010019162805001112542799190219062058652602124166138440309523259615761997244547603637522850682556160846380497796320018153919839441946726909822760716922069137176188843114731448130598561984848277110327827069610287746339061185728895868185895601691034399708248222429544556762882336587918052488885624368091701479972894994927890420894197688603204473440821599455053361372000939362111661308639940054488776999273503929598662985448547216238654598156060225048562239114488912658931823458937102523985769053074634420417050767904664059763517496165358247084207089343415306672170424875027089412238264925476406301669418103505064817646528783096924469998527225201304282938514317814225332113616181423324664747711276403177042739644921887324560879659249622168969949326047476266404634098572900866727309204374940326012726843455456996006416198829535840894053912536574324130277710934878088774953597395798395753193875755240659889870173408328001443574603963914890979028906249749737990724926616499139369510815177424328275471077356652430123979584375667428356639342902629589788420938578706938468851943957988908605113007391859531003664680430502482363735695606289277849542974373353282887462674522715016581619572387117739433826946941349556428395958305732583966722683049191648385963047119654658102978328893045970807443453641783441570976799376118914700434455904813521338556654110091959040751194139307810432177040871371232356652332145314332624641211884693958476838009891777252693117046861929889151100687025663527819238607268814780899193258213260377574241277583337926539873139792478443110479430163464541157374805206870218515047726676973796450141900719898849552514121335447572414025205167975282456813795767057482479592776942011471434986255935193274676601675060732361449393320489809936988899355441021160720982363328764934923573054981023472461540594629757318820578928131157961846283793487061000580009707016516854347638592946894173319218482729115686574639284715358883543078999676799852812756415259336034454815300787296929601333179643802849556965189921404247871772061427132351527304697359418343040600410580750116734695986843413423975131052845616737067404280058122109659523094016107720434384806496236116348147516926658395043279579476133748564946463069438526910910227862724073224825859628673540312234134190555232341447569017564075546930113705849424552231209974504545791713979012130222707025828880521352445343264621768906936213267443916111735348033458675787836700338275200009652495878784740324348765431687808921232271174645601420731428326709406680349302884119089598461069515085728898085339270986790494420130591198895430821484895394562650518748088526627622540118164053550039615993229109326356727897341335122086794162656371467559085226441655938370243837082205378744805665498646729234918507100432467312054658012304139700049683669052281983156847583971084541570749341859884040113458366115370151479237432791026248572849464967620319722155476933621166265267658635711476710776237367576935225637170701699184748166873874137663758159815463681770024936591392138328638256954732480195610486319604429020382908992414977505527524504744332761078656463535446695456138114107382410294313932820074687679381172903749171534481604419212251830107485143653141017931155043179392695815822257064220248285541727968832413709784705039682128282338409611001029265815283939090667687857991770143189261586621583128642909875393642149352460647804708598218598430285687762117483257571612654244904124796932725911832374882943821584949342086154381567574223500172971322066654216839532094016784055644651115195107678939858490818155900508131520153159373294016588462830957204386358075281279385526219063475951011153353208703093330651197807405922234795615153268188343797165665230344924246411677538371426305520472047113856079878392462749698654603255950221200386989187395921599802832304925392775571419974553565398707236999704552491827589455432174859454245390835865002552688093635476539553044527489560556787012064697252758820439839790300403293734601656821667406344145149595999836003864652002848323150708765267184730758982026927350045097506836363543559602604041324495378732498431249032672110800993915652716192320005449144669994627163862939278552328077426670473316494857061729092301886727952513819766045052258441900166807284389878445555321794946724281657310885433178907439832586093763252433452224995987922220263894010663001050647136720154854276629791914476104695694483752269428654167215950943572902746525741839909191404956545368283699905105621680687656294654274925064746649844937894895680573467181776781532314912020208610986001512591795197169599940453419046037050982174640398873063471639364596583273582883254966379063111876766071225103892104193530616397449223894095148070535911170499885127085633896808120746477114922193053280683125360335883787181509498370087332896281577476811432226515236307507337617692033291049872483281948329521294381061435664969932756519397869114215413206958040875846610362148838047543338687934729920171931587768681732161296858609948786003684030407844319405213073746010449859161354115214971289532003425247685383060114394875211914067047616697707573773893384500341939358944243457047874313678623167027829598009023369660893555424247475086530567244272310275894603004875449163842042034687392701116283307061408015272038433251054219978516128964294786413427638082248985237816959984095420061600303809922221366297674799777380173086792780345336324396565696114669563432810377886863376568004124889047821604519984054073952562845123781113098308818220115870207430858332742066202314680966191415650507212719413638310101578964729867437555229953913423010400056559049168211851378580552628745004291310589649263497325428533379642551632566769878379925366533843357328218320042007706923427202660532378153034823701903567449934706313488130507462997539234826953824012138776081285896705354935820711481526732175446926273734982024332104742817248432694697028965437031257600843955774771021645243402110932137442234874611964570795413243289989785084164322106744318196102618871169873261294057444486808317607400042973528472115494303144261802943827772901709559785573472729595608364652473278900077651842108369627910661386697640770052724531738228249078993860997617259224623369698396359245303830854871441637179607906608897431309355420500942917256302156461466904146452091141009414515352872966323597155102171923637146570799797303823951147364679015606010436265507954603692045340047312103777606427300623946994083930810619665513195943145031223385981839466062902682252569797821469643941671168232945846037651577967672738873283980166353113318438667327377177826081491931936367624331102729221546477358848461529243543082398515670849865483936543550621817212139396885296505592860380139898641395707620903926085477076201750968268959189955135681829896928894716099427993583051141853566469500266675476708893184180978999894953188099119733207493808687093470856912877332318206655685379944919635832407166437457957642912153627482693663297025050388560289920665659633367412136602752927096555770509401182764423789156415798418765264649148643774270397617378233455018888537569321361998809379452712808513608866417586010483760712525923603797023393039439193309859523916883840189204235523846812437913252531443091843777269850972675916036263591780385340305534615553323362533225222267717396690193849322845290843955125720469289592979863945047115377396819606462781425228853412726491947771696100871643700832604860394842765070026332591936605243195099158560815290886103393835659286484343258968986876828739912000465481055297144774079856340653256820959475696991741730402966846810632361249095859707824223535726446829283020911011514280378075682146935766051442770466610242995173085122982104022138087296881708973231376779027513403235019982231363947130025132020637101048919602730479273741876065916870157963556856347388099596042684721542703931880352899257925093448095194839259628258847541793125574882039690619145499886194190491298645742155688225242313611017973596462134045530757986675398388701045404405952970906843268072784308400522636004154572428320399393843262327971911352215745511314044805355446366979720113664147531861455220862702392414062129581373636256470319660066965326851014280651479283966169706326733399489827206983222120283174136669827645594659433516828080005734129519739900067211477287552292654726893741930810165572584499286419549929619763825157405476548702210636833898419352135722360140095639558257788328861542384409994326872704890475291841394589903079662732266227166443797296092038024095272703703627964127132867412034775802198515643805720251932258300912440150872468075145561078818872514130810693025182614537370445918270273657756730035302171561476690853548320998643647449181492698703372834387211104439252065939013372767803183546999169842875887130142914266041516312143707964884172259026291849796784860489049708212563388838698206516369188589105239844632955897113250201112981652210846634715084574730043104512560335157423077303806086849690595376355985875265683963876179980309634448388860132439601232126215815732348925410272309753961806674404803986047690200844524038683752732307636132871483992978839096398284154659622632205133616077426575132815858572085729513408282919461131344567956549820493481279846381662458059521454414410317323672793118791026480774528004762487180009374439307171980931967986571826711021882465084156386550549965658112998570966941778067877493945070211290126437679810820828456144122842991502169970200219803442038586445347327764193329548020141574865293760261460323171338622279186766484877763308273854199509472422409807860466742915929681841310060725389653465190960231109268789850550620381814540066324370491026524398222032469763650465529378171948326227432650238075949227365451155085744450341822628162976451755210491065096211592943411185299499342410139163330608828746887259229915464183211004238166963188991987625452118023974398655246823626143057223971474134583876817470556789844089903215819005686069041685436596617069870714903836293386514863638797403330957172988522508301015566478522172318645698127768207326058568888194817375065268549573946525930755582676516694670618948893100962208484420005061104869902545354159301144744713710407974754990176726237701985607605876627755289185890457920122870973199859060325371827938086262256297727428285633306719524920222739608634353698323637235172107364369070975639007552609807557968674680063908690320919082787444428823718196446947912214149228645385415863154267292477852106984623113582566305868639466245327782228404075958447814675458939436561291236670736885066726903407603603027499164057530067087183847271372775627935655026541915533069938909621233898451774168211823310992567015908889557947716190569066754007872364167682008276902281631847994596807776151589325649979441704847543916600008996308673596382606972767017796147263512841706573353194582236371723309586317822581675178018620669384578704533108981313744264201583454097341979164967711571426197624758484202298681598873330481899130556814022655101048938549963164813294464991740357374129268807160090006407641328118226387434429485439873372260905387677826470266443432644060696051316378934072965648397786776706684927213929307522365879959440719531052540760932686061023398838896142563463759536229914402824197902714916095805279840403833860940541105496795801262627220798631314175975920299664540357323444451889536299081120702039117275635530582859986910288758762223610982168806317554451948411082930023564076690968291650404705334287042622503124016054118045375287287071543017325887874733875981773690158658171895310181597009163985532341430832018555841430585743825112862632121057389890869333665400401244761388958683615831622176606398560704116402692683122661214356137756094104869653091103625614533627476081216642579491887859377747492604784938696325799079418002817552708501150665853087049421514630687232550320184879420034718760658461549237642751365330930317307373372293643879086432519733575163079686631989257406590081771747687879584845501077107573312066433290245579653170851811748627531016303170976563941233987139363822828220419378871190120676068270006416604013718761330792564494337103981854148285405546081734046250010914507981387451264743149085971224935294696337644126685569051333470471132796182320894120787048119509613469562516678487210774756657370539525861109311316175888730660706490747542286973863141726902605987904608317927048107811485329369909604663760209509858920589730929969824872273011123972194883290607438994901903398558836366907991284087120913113337965223966085160306709157296693355417438453908434849004991097647482873968636851727486601583560590322634161321508392282584986037746028208201356817053586221533858787735156884942033991299245073852491511875805726804906518786091796045770367694814603829580825610643614730642452719814453713943826644341619370486920665774609339399743509557603247238521704721540450345965296051396564023791887059509087834576440347406347813876113456333187602935170465421625592262177695982453027523539278231569424115050268880424750345660844699353261926994745603632341763400835872301369295069296511159750639018795000184324873898690639109144868618732452647253900894027386441443608387399381004884150684400063300680327280318880851342220717399649802547486330325809659593367732256057579487519474148866139266921174482456179912309881517927955291109912464596131121741536333269537543817605007920734614821918525519489851529884403749304111236996769499410383734471530095564725496931106691097987352017688207088409980692926439710690455717468949364947527459980006307701927200778463627841988124658280158903722171767060804191801140843289538249237285693643288836902931348749961212942118066069959773407652487837542557748948638981866072321761612361527984561739667950944132359163082613829015535136791100632726910724228892947123057096270532147447887905621883724249974020269608686672302773525028869477122950939035356622444073631462083655650464181026071284852071795441053284791207515614868223020387182961324604197368546522471869650509781810350940931555570759717669373910121728185336678571947589970858448478507499709679296768263131890737193085018721401786513414909280876684738667171165688286082243272778257931749386202777630466684028824260968125576622605229201299973885650300713086445905326580590765082038187874129418849445515882655581008264333993648121944294670148150750950966307545887124855924086858543338311366433761443137134342285402902956008145016862740953095115277588794517002222010121538507503014804767787834538401882391243529137395445844280606757143320952653159262474585567531311826349365347968455138444938607062407553395547439010358999375199944085537675175127350952745670121085994579421596316942989611304178152712965544307408162523904341121014092428554543454589544419623770596656306211503156409655157528016829821427334744261469068392774872907134354949815563222398380634840993705747845894158594153060308080085677624712632490839326831432202863805795301970222099011008618987900037182615843401913553447457105398134171657168683004233454024329597760616656488840147777875607377280836179931307180677414817911834481878726764448335461657220913756703753788969222475764625437723527191223345333902105733063127785872506883274123703061640083313763493681821364399674501361152683605485915316097074199055865052334099945853692294726309797556786291805983835025024315183434733496179182152551488473064756846976513526166715881680929361338401992754735869313086827167635410236338559811307134897123219964062529063993789821592131320188836288601330224123256553367091894057067050885663920870634610828838026804551855912252663205210777824723619696854197320569734305460433893645790683346649179436618816579099144804830367334542580553746458385028517305879138109064810883602876764222572909663673177877684779915101288369727754956403270913809178063218457776299302855836391076982453193043611682464725901243006277763324683172119464744756437596628471560913283705525342044825201238291681647649537781641684263046007310436589245095515740257876926553734033045019293125203572324679771949360656317607368585017500715939343265068185975467710319471882419207267802001239622630222037990547887441789442392096344153211242042852798020990115432733642508851083500449855323441106753340398244925118662879657334362770676431471053272154297049739231325800970624032531223080871560247454487562801200403327723568765653500412069914354948229208964653081995793725769240255690591973022510938679255528914037257371430987804735930877093027705101201121875152678159764122665610417179567236678937310642718070160481651338389704431616650523098306366537899738551283277633002530372518408586634507923633805839787022939646520237199454108903916319065986408941424958082457616980096255204641335618295708921742153323626424569844283734297111259858985459228725690863533526640514952888889412884535761422046164776749331631700235879521791752126384144699096004043939458494630364492322127136392740763212713217320340821450394215564955032624961351144642741261205697026686209717368520931875679229184591221485474715251027488937781771622300222532424952095427338292193841051630865603643485858299094579938250765100372389113617103987920305730909824535051772353941252838554024190139786788287602697265051355343366073797732044619830608707330997688078232942265750236438668999464834167088625924806538187023346426906952161282331851613007658964853908714327737141648283136265814453636599752359036961071602273853702556553390278108579417701314291767454705792757454813340187734554855649004793136591837304592964129883716776812705906366167484044399726143531404998953097917640285714916847270398426598970562730751241207693285817737946167109947676705444430095002929895429673055084885623570053360172499710839053922427074793700731175453662142596230446027356436786283765868980996176612054014423950468430155394595715905930913105628096715082706761788521877250612047790308090817335088695897390691076427207638597084476931738366880411596393239983400950336555818598470707153179085110412639438594482563825024792822496443843216671456410928093911424655578347159570572122339448911122808888125810949280803209640932957976856053851455289832115391916938641766266583343809000404581393904693296481492188403777020250405517720793659305979161943570091948533839482826244068975395157034542140308484774915654070820546982900706597696930737037797863156657474257351923705171963321044096327380791049908157250430913634949917760960052501162393487248001347704576178186900612399301757633669984537295237371174480461806904308444881629868182565785145045627108492343454686194318470771470487709415586749521280195385593817884361233972393636710160869796411827934368222979292318640048379080112975476044272704390328117198689354850564685845571842990367870220509375710587577559492867496398633556741567951105673710644791588382012447279697089637568509115211089896930331369578351149735706509790603612347405479807354196433209854630370874923536554287492003951367155009259678812449316586783355937305542204952092066872195487238850454942916890268984120385805995922416621769447418437223604752609093550925514450697316800214850293193150866046715240757860494522425548835392525416455425501412741181663680778115204213880827308476553021911972610287810260111619966843953752917470499352393976075731316412930611120632506008545301574884948826922812089187710057399394791117291055549172699626420019867977051884035362627688038622132372039136456537658630839693520169532891536322778102544416154609110460893665038564567954170552906472254110087385259811326527103531266129204627068173164596017139201504639026718168877654569354263546652988076830056885554645587582290401453036863974167184962401063659518774535944000481154802800745395923968122862106936089590521474687904980368658387514407473507320849845357031797801802398144547573001380895006292292604627667809185287977524795837913238606899744662822905705306082108830769006019421788345735975041789212214455147420833651195964630968924153197991682659426469523597894955809090143375190172684233104742870575391870299057816025009750934347230279595186803926887123238084396768489949670196547669133721564419793137949591960613353320989814321717432025202967368296677303127476450932727718026407517826682952382724271278374144514307579301505541034654979849509397480890422621916587303488047714875261065009807539614469316529790946045042946678920066908900831367916467237804706143169481446779936980053768064627464818621194201814250300294504421825137355863986952372295939775269566445329356568709653638883213904647512737175136247587520381774139014699170197543009466800298942115396102423671349904019755059274228924691079123334439401730242274411424664192226989192853623601386336092444458501182607743075216014272583729831111480446543713876181629913580403939061329864771598664393077272806810999491133543913435265842432346029231697577946510213402999723641082058833808117864427835849160693106493823609207210664594845293813040763229239797479765557072831876256961196176976064215105374226300426080989645964129583097845605716418475316947064497012548727059333022355927274757778976223712002192360417788638640272847494079015501178351854800371304343477558350772752393287556629627713860205962834478030257071407974148876776191850907435691970576864230496525500051339292510090187755402921457774887990250938820333969478698248928828534205500348218337152010939421508387738914025654772281591500428290112799091333729160674455101038973802619204162764884009839632872153048378588711993155778756027385213128401056946904806070295180930634636848889520835262327331990061666549610334278201798183348813425753820651382483123395602086726232543287727341368161891070345885695525328074879186421065136607255527924807989828640122318944390338977998900292592810159862509762633346878610847144424778661572168006054890345935444294673022155610530263179170888653824587523925560911030559950266342504520581043347712926652261415677145905878122425241015321474164104031454772024166972568729726313492581950638118162857234322579417556837768418869292042861965689936143539597256613095451437973814651312226019801529553546247186031278744119773470225003721016992952807906226522228687250140306035189305281150819343696930948729908509061541489550895166586834028079831167443453974396888150572675954195165565274165306272852842608348019040846646864294575991828859915566691771873852297687031898150010733508605509699357354529639000662874384572660539147251863818241761039218670180039234132005452319100295891492890856719771542461329440496243637166655358797348447588398143222024838202467877382553991485912825781587852184286815303014549220685616348010246641797925578646699119144404698053250478039497462015404279997337807089363453193369681561639567606665635491004289840929685952093531187004622772000618241911583191976715222371281110416858117332747675777702192136118546123263570241517275936809976239396609027478903180139103676307720265115698081577009240153445804560764147633706475344515743727266401054041512200069997649650119015837430005261287033603299600849730434975379533443176988041392634946234306981002032824404837609497821654499209468581164993065602235653120947519351809899752855766520389861275599712781204147403809242355280938915912016428993702363314539848037868975214918811508170183802319316843487307260494948877204487231128491432394297979227560600955571777752550452408201584121197741709405423277849888394371876356132731691215923597353315071372714689820922468050859529033846411911208177761195519357916081299206785741949826391382251469304853572937253666091221795245918419795649446961357277685405962539769892147119880192644056850801682905214915263859449756915492887955036428186793032795235653567323527242030861479636035155295540888436517595942033182506027442281430953807392236492770372151984627839906113570211686482888023727781598230870398405016371420650410327799279173404771946593800619768961015766681353852030940902441877269871266288263878204625884941925501517326544129004092217329007657772682978424584262522062454594384090240173273241383303049870557187997840143787417975444780883446805827447457093098110351019961930310195141131088815120481359717565053766369854753941859982682349682785894895723092137497532128727140199469353381980943095478327973940509042225298141750558012000845040463908040139089514482824737886650965386004046319711408341246700925351525065098892922613740682909157305997303238445459661509284576499087687713786839810642178044794266858060213776800583163739814222142186728254097609345450815051890302271161906353443615870092323929980957845551772420884559408151397282615684462090622977965419865943196681786545434202141363832593377748917198597930933224979335922588909138975766452416733336966183257931241840144421841616527459358308927686664117918766029730568511969166786382408923306854947509480125513781534096277663206797422491516136911092925307670010546401164751147981769013391404689132208866815061886232917329550022544668469791448433986760907713549306298593232666025607072865815364717186904769131030437994930350456782047949216410703437714589274301078522309340475757228465541934232775342147917783391342096239453535839150248492207226083738923035600885298584907367835662670254471734599003798164995774174918957059742900282074232413343216790296902983949680148561852438048741145070418885549431042067202702920581560242980773146400748640297011295534881001432883752923805047924235359095526748148315089262717898569027440843012243170679131273670857379098266875966106535900647749573637356609372305015122790213535871647419231592536925139956507170576967322821661853907076719038961498013859769910390518579548114879402668408291810874912343876088112149369668011322895306197160026846995422613394451009979763494906480818899841797910409419607612813793359468899907105112428737683778089132834551689061288203129388664935847399173948938350748683039900835576093238614436070181206936485314614674202341547633966368134898206251337465687468743085760697334333961977656996050286880442500860568462285746703731674971803608483474117976524982640938729209542915899770035691246942008126057521810665567282435580778777894798975015279283588505678474891318482389990837280458172703454456278113941470932852399743820679761878468803901153649776758103432120088722865830411897343854572647317181476262368950554687073423429652088364053512262922742075818418286359195712276584601912944554877409865393289847840022298498865854464253485328298437517781353854202264305592662310436885760574390253606897703384954998151105640790676247740018705307057648655123381146505242018715164185961689237171664613317757912963528517613571107736303429630429186706383196985145004645559330971191914265882019877520876040020792415688399701694900173962121473236333380547794312017986447614161229066112538987366755773733306353767605319143189887293258363796883222784183706120091245708772329597665495336144347157548396356865297307486011363784508965805983476891209447854618914592466647643735844807567579696902938055720504921762777914823782533492647730474502261818039920689935413428087792492794766668081473131121027586894730741416183649759388648820365241582351740508522411043359597088912262921363236513194094985394623778394843335332958463962775622056004724484069841172746465789684825883568164530156445069887756967297252553422492028029378891202671776382367206217433661375910900272115135665327228543995778106517767303231428673781521428097034100457309825336062148239549556898538890930030275021441499236660124601857152317840356216501731031711454079442791153428914906741762399121869179803895135580986379901202728206661340819313337931032086733194414767516712322707209336596280034003543270524197091329947788353036697127725836365685799442031167732992750560172343550453209306400130990544344178728254788508231198071580569300549071190350340851110455904361758494023421754376242935121899297871269434650008491985137543212604264736553827537841102947107811442588420180600831006368738460864439151466644701662281357626069930497788196895169756008596892310659458866280698537403620597974915474488267007230501147961342435720785778542910884307679225272614954236308119403226564445799134513871581331156822167319262869279935237494340616611235896442732765600508990804565120647158336411689956120434203834376847092472421088670529736519671017304790539253003231525707359779585522944649374501775534091187725052665308239965210093984257961629226612947507028323381034736560145393879809570382498686525807809969933813359782569629418771438306198559570432018522762963615074942750102231872005851241209647120117153622165649237468464708072559473258947429731668708635990777978845851656134212892528512466826595592526155719643685085167598306581235090666444552620680481629828120033984317416565441626478708374231351753339978818934762459445087939025561645636275604642438244215448559921634378367404874926796404490975650836034143994955281264119238955012434480969324498380937308997288960195996263773107571205034052024476256604758076515252244652008639701410430477481368056321259816497498127138119335405156246149731692894313166278996667870213873696628320302383005366090118133841499004877819215706945410663268594457536818362153404680145438414635052254757122269770586116188144417943280263158607044072510708273747212261478604639777383376323567322491519505755872933767489268014939380159018452815356538722594311491253475391094057851068666090278436649452115087341104029797630129793401681298770354389494773129386998348856648964767414161064047686717916251164875105533019377026032872996752911020352625224405539485656549051856457295031848010204545749628390224689937032255456201563732265310395033202008441508643670292957391371456915696217370018298107892465012070729160969424193407420196581796190598577259814454222995829516241617606255866284460979565529074372123694066505485602051063358952408466960399012440820762248629213699490647848593093932142400276651586707973556118366246539983720087772387547526843124538387514683427250779214964280361178333237496895683495746393510932554652386553139917025153584307658802758157749197211598524492282231431018872572437008698234389367513536816818706260565391077100039244514075798021831419704017153666807394736874533887816272414890144306048626126674539539095231131263863445332608178393110379479126785427135966427209587958415988564231612041087921991418335350407583147406671047278965671956718557615526502392272437890385779483664564158498344173631428569006572205893112897411067023005347935255446810048024610038319484147571661691230938803013385953729312073410096796271816118298299178864330135196768740030194769263863577088026435738771945943220710476453318005608412247868073789369168838200052829397375179111348158460264579655405621996905079140208776474966387855289917044900218053194428356591694493427704763446625093266588769959403188597257329888469485860016084141962787080304023054010324193857232103762335474894243358544185641159406680522833643075830748124651773334844678790380350644159609404130741162465620127721421050808640555778079568153139868384777283477297562185791314549408020555522382385980625087404885399901851987728803498802412852297216357250021834744294133829991475807685775782218860918042283954761313664298501771465104017230364185200054583468204191662992260703878061804943501360644070834215370310609653983790364630955583742251904722047236106915629217678018121565615596986817403017253675443215898071935647113838342685011269509095729057349534635768733445371030170306519129380053302897344935523118941783322784663123618201073959571922956847014168540522853171421096524433619325172024670564053892039056035230951014112442162882191683279204523384272066791770883909178260857455733246613329882067565446749698099952030855594319248609642201421583472821813631797463573848724688809390754572971864905566954077292780434844319512683910822904805527180756458600878796617157170664900101329694245043387815347804037922474636927009764286189947029049252206378012640049699350809264880797133777176713107541764693170162667305454478455345537284303210591156764755626173738682102054780378506169963216475815724117523375042147756166486761336994125924201994283924778704837053683592809899949615584870425911283838422643728127274074073783548199774244673207439674993940617619382284571090968702665189987109029975562955834282018879660066072091567261385043210331596962365880633003198608840137856259876942098023922011998785314083543150291955946185003325682386090590259912862833338824073948934142370450767499841515127411249874014970753938198073875630630875544611008484496565357528487660302746406304777028824016173874099694689688096810951167970906874728536600676366167363757780959302570516535590349273005923059011087478613311278388136383292421069454245318986003031056684184451093184880280644094759406530090675719658177220672290658292080930308331014391686160656453937597153780266249495757073749319343641710371906176492827382660861838735225268088129320488783390710291940493962124720594017336033915516122563144721082479347894605355870433096693449154238764508816921940025391386890076674807434141703916765899932083515002097535628208875278670292722277066347980887081710716529807979337823888058866701393102400663625903749939199084257329804534678338410632754559543950370039076880317003844477257705963304372141592888045578366601270133522641638273003306989908803178231239434572287367968731053931582636793544220811149369880380226044142968905552007716849198129224373610114493392358826643480755775277874305481826677953836219895530985481492343505689898541628043144341433712220806129335998758781950252561124434827251787294888419013071244597008439297199729514167830308465907992885301475026793028720579731615972193140739014199373382506937138507442574334857477017232303329573545361551015520040660413827539356520683470021954589165383847616805109548974792065323519703514215400694750866092387772820173915547094192524256240367071457765376734399389838019727706690293999999378039244163674528119027012920592968399027966242707678998798074460085321157289149697152736070594654525774733868754376102307882006730436020262687152004702892255987310413884565409542404692121638156103931911621379671795356968236316555720384097933024986678292615009494944088865089529902088249782172859008685289897991063621519246590459616774441193884431611432311794421480593615981565167862420031401652520744833562630508385138196453457429330026271836520775457158641615062446807786229337681211374581132677041827179677522708839063342974113512719313632055520449130237813025515565041875416843140835531032683337686661935244068532359963527064713181822172195019381648799795206216495487981164664904432222241764749925858955442252082681699262690223195084974501508038980763442204762147534362722340124552600985866848381099805660252088441277354152293383018287776127967145717068064765929842587265253097799045924535994689801819868610582252140102927279942574067598445326599014687034456891605991748633916581156479119034715371477454663385509735468332189447071611553037403157719084729796945384615629267941952794708726162067805392261474820140894633113186352914237895993770012872685351118721360341151557161640835797767144961810344378959149836726117622420629415885990293562265931921100743129825527079126706426512344514112118917001392659868919613666371121544007480624050520274428552946011626934077373136954739008918347130731494506454517752440218996337864701898544314010574512073114960269456495051823895050605799791963045659044815398121077705617270507678392467040976186438012946467895154700846478292312076035837569386829186444920452522840597206700631411104030273102904938218579267591180456000445342910682985369263422039598310809151503346807758250478401114099891911647478979232705486737016862312832412724132755880102294549648354612147354563261245390393900532030444504921493933816577055355863731750370218574720823279907280920312220396141975962249972559961704895253280505015134384751298215817197254457820659972616254876562552235378815903322231790225764242392628044442465128778572737688067616097532351394557061675968088939855481406281392774593326037056924548852082631169731126519100013735839187212668231471384789564995910777896939248889085042555830120235519860185477290169127926112370391455928946455213904591731870452074612588459507782212784706938417267724604476063738284535986431875827393031122926014407940856130931490073930316361230696587394802255769010547056947891780097834942245524928052534757531694985187034311064124729627361824163490632271910365951997806507583671047979766059995073757999084954104751616496344922320304972823378002039866582951934559976391841072726998598599795951321150120553762308919435493326625795469543661355923168395434938952936753396641942232068851165630727170252078527027608907031588052154696253482780934775668134522402616989490933995409884808996612710976884526599713223887497375468467414265621963640396913932478403324465671699227746193771634364235709732023115962040566336450462171613780950101314101120119330012542183459583498081367917792613902649073997523924395088240720296544266560086721598025841755669839124797363221720415998510580519440251396553041957232197965939545279715237431142568663827455803823450380054505040212787920401480214132744926493781595476821133087416673624971256723354705478195997194550007117252194157704786999971703141992520907195652989496011129865310783793036971089694040197136299429022063821441805006944818716011342036392130901872133625966252518789077421725832549695336330392388512860281769478457885472493261135019734145518545828272391269325908565690622012648484898133919224713429135027297865850672366134809077421586689232808410208470718374458559713516576900553074289388891459536331896175425167091053205780675679716277978190107824715978427006002498857527035439572911801234250140261925990781142833156105024862773670870386664905660626450176075544980640620146014281904010310183084048630924958719909270705067448205090140677064280832636257772346466787708026461793381877298668906863651246788673064496365187918576391092865307465817816358656134550266519130462848984927873681129998340118562137010688448640462679072134223937996717951479660095455980637051686974928130233267043484878359422787777379514554084968768440165244542207344023948266400489381089478045226784204538909723281701394875035956938138740194012913367848753976263650274984925124819701376929443160200970960717650454716775834242667319694787499458086959816159411399185958886343408518548487509842150053536806636270547144860936155888018999644351227617535516126956319296440792783641001177961871577018922408577506701192033527486156378248202635860303193894547337648971713439959938579524229111175013640880320761173805265064934833446111184551784225213032684577073836472022128672125977995761930462680425953203284291011043786873026016420801293337395831316221789181166159557997752987676171162749038703946984717977592945643712355804378568867827332967104143639460293065611200216995219918739627098449088248442399252169013524491791725081867700570328751272911200353629901100340301777124213156790831930086647602841760807273272399029532241099326480284545753762934710028922932182863067243857727118657675283910326261674249048970765211618193157829569237356735038222117361690983534226046777719388215450798568734170465454521533813251644614004255605009918128976111068708966656630275745470222119385482251873856843952953196031448806610457455852479098117947560908011547065896436672831901635767196485789024601734448154444911116636971119090838065965758236694308579469351253363874427535085298446784698572462225306958709600742950046631958012326917805564422053866767349327934305905174442053836623540998216909241149574118144043805195666981030460289307534345991708371378263154246664294004654975668993536261909370138445742192767795415563347901760218005548109162739787592422243859130756987588592291237575244641532144063137150338578693387272040580257395305021884430305508094248057537375792846923511484791032255128559363959917586359294599218993948926581773692272522686124106790209749420836384322161560823017199455779810555519381539571048885702217553981261075382615576260056195425129429284591807494769647232171604475716989512090771464219678756839088930946159488958041510372952922481260509910842567864338113323979399326078255475906688826121348469131328493050134385792326191396865129447663859048003077672903092301584534453883754603622473027302966785680507294829034942377576103784321252979712879059257714796531210126004511473202571789790629573945302471568906871248793255649243655711514054723368730523411219447161616970273103484113909270558196652945730065846827221567299590057335165180032421255825548100861039416365085554837000503460981102694514085048229428099464677327552225263544691219925181227219039253594546889397517988877919394182598551346703175725459547430502533351090671116174827691544692793007170083568960206099771496993860753390154973188037230964878184330275443677254125430297451945163285740742194351118233061070823540360495049999460534181198844051544209026352107709034343668183171062247096195133925934943393641814341582075656066548055898545631762945278066856938219965135204323397921607830993545950595621627328284532253545234095753039782399197193701308006531863795028633068480623280356734132819461715488322382777881191470804084172912988737423852768476219717205089114908826166631076733846443920975779322149365991358875866759867306281283964184411631896469695586530871941092307530558817497721097360146156002007413105459284143368601684059840317567630694310584411426349991744190679968391726587138498378823731604372294933321387660177096241813106515801999762033033419409062384104843711863778101669210644946822194109579715728470971499180150723817963497131026084158572651056670390000158558151586179474633291766444625240160800407978154351370075231648646487990698019065034900366207630008211977606406309892112993673823613656647925382981093474632380439292680765376231624940137030989212281507043121495745996928446382573032316808065836222580910697750257430375803922185803278145442627227777729661649754903773413926499909496461787042244226078842724294510490116329709120354656198664733055247606006265027334402052192615224599734806939943607539387971059351597142785268290657051833763791051076623425651850432930507737879995231465364532385322123818768273756882823459921865118460523968410060672296343934369683033333853030642495672348248026929862349496960655203103410274961820621991288226550383529862795274726499737987091562129528058718244265586884198776149167434628328389452781975651984591574993238126152740983293972041438514626554506189536638382140496587459946636742511494125390151525148110029518850677101007147298381453871003557015195376063886265544067721040967651169889244281088715791687106134608840478044213415957846703656212068005873778603697249217211813899525603500145451854371327471451062402771803051293468761227758518820163618677821249172797639465392594544433454600085593742519518684622643267583727677146202130341909097424191482225238507719231838506746500828229433313955260443584348431717462622256264221402413567151611399688328174561879641992860025977659784383247985157733888209251532795987698235446123048880999534673893480035010374844665700488272958236155392359051040017306563084112184997448617509760167873115464051685160969915379032689658473109596938418050322413207506696888358686886875819624895478326836570870007307439352566853217215092200804151776747513296653151317714881127898522496272271002138738524744489999371410996480345770289553776444506911157605675333603890168293724332046726349660785838790865942816036096197979966767533480422202983802763268884590104529417264036392378464019397727252857515023508856746505428362380142755356118586704486159597149300175402362754959794534495628193438124699713241116209781260966033620237296443185528885068525859570323468592808937663132834828390782025056899484568806333504137175064518980290767408739778379633956327648928425931302912563949302327429095705584354424320879635601621365955940933574685349821434433210331941684040369367058206755980210565111212234636193596885651107656918295514557115651911471737238883664996564361212764435627208986411099620347184093888294068357907649379141952515962343467472790787286737746233813213325379565782111277416963556992756772770413905503867792577434675237908955964061156854899546629276677209413334104641850357669507335057579147840664547346730738265953544032913495904658395471576078521065686222691995146114522656103635141315903864085132820628692823989470387250359421297471447525621564652291779462022916694296791898498559600118240409305899603095770854451702627829988018314360678046210631688635475322363125466246503721928216799996402945322022785127385136795723331108471971330345157619740369324375147687772130377408801859316657410573507296885165398107156438985075251229242392246711247596025767922793881849334776531291961897500053180345138345344278963481780693884565812635402930335892089198512509394190334122959622498065920714895554669812187736018225620315159958883927179411539131053912925658372825277793669221111939406980920853883257111089008928981860448080589831386219960815976677302194199642156184035637743292845340218832598790664492243901870159324272836995961967464578262929246652339388448269603682082099360106188128060123194612985307726139772661474391445579711685467665755433255244740899516728308148201457941534970509943289073116335710570300251243113950630745650942613250767184462441225128932339571030015426844098657763272736544833297787010863031207596806629859153068181006705811326744334168035141872266958416003733330040448097048909866228065488913892572527798624002055379576211294182024010988633775589899394004642159037067698121488303518826608010663068153322949984518659988663392275517472807330044341330587786649310778683285388573368089175283087941044407072664196111662746789361961335773471385157722794953387479654777671758981445027950601977483367882115212841911506121995253665340137293451509639728565457056592061735266111240638313093108418602791338111270494382551251665707240120887946856547812230108253185691776164460231377609339569881635489734132398479716501735771225898023583737268280923494422513791138936593325245346673631160432493013481546683475135583685313109760754944300312409248726746730136368055606250573523882522970775827840203044667309019238169460996071390590780905600322386321228194792458913629052536842304359207812399819563833996108495539036347485653359943368975054624767343765359127806026087921339635021061890126525121090768509088288737665404477753479683773344073308737814180666970407293226256465070051696564351001248807377158304965920673062266330107062772477883017487549537145541822771516439040655068625801206394521557132665150904473530113433297507602203059012740197957209622448332895931376963341877853087293726699514907183694689090691309018055476693978916944598477487727792286995234516612712592275237649676216634070196456915311342975222818490935906492794614946566021116224586956952007924625391926491658359674297906616266835185827096504707582431378315399621061455655800192053172989884875306590349113910467907282711290652441664930095266123671031965881776293470284115222733054266464659477244056862652700310704032608629666429061950773988002999216017755212803019948213451508793144618240808131630302465033667679114259692544110140713474906110998726303029131883435352833295863396748020516032182573748023669524267179345914082930914868099543352013435526112184691686212694589935094473745029530133043317552072181687286627668064567047098213879644016854436076796296839924307641224347899311273363012676549040676680047212246735040731729088823103504424454660115935238426884547088997418135393517183018823043996954087785010980501613601674231225110080556610676077601821459304662248714982101959156582732728481630653211097370409286278710624157677597059934481938138164364923533149791111925227219132365191311338739512736885090352309120734205987171355217992198258031198367468641865999229723983216979980363447081427886970132466233170661770872972693909103125978982209321323474998891192085702422686500206409451525316122567016183275738755222792996755998107607804311136542867743575960349896669765139086376810153216343734443371295485653953951300987449904799764879535820704020818286034959323459144213303953519186293205016788409258206805687872913641333141751916715244313363206937908357522426980838806178610087177159465029711945951505747328992031261952901142444163743523823939636927668791662262348887444786004614211651469879317217132618829613561177758334447266154007653174826401793074884803537154020521107356633191664859425733402917905752144488680695682708214116285500078131781067896936977971874701034669654955354344311309987534954233610073335747917594958460939766621890907118419422356405451819226459006646317665267267948614985664271502775570816478230638978613545124851577529130031604343089196921995904581056294085325348826239437571917207549082430370919958063792053060987366096043893744456988556228163766996215479441697846297861850260130347684001604944582692474907516354397330690771948901657975527822401233277573763203214393411305732395453137176668505162890333085486688883485773035251151722914280071686670238919116840602663887502676529981614047975678100928076480204880336960319675163294792988708464230608618209246718969130471104632816178184721023197455354035765742320466622875792344458841046430856058356248190516746949595961938025733814440416508408489126734293815950568759464009011422489383979167937817088387261347905718244738441614861566180087907951250730545816001716141514826819934008328751497418813831252536935106745985087522230049149834913541030237138914013483438807560824747186444422675095855000347293246001028902245675044193584443442951199699635088503595049470659191005372968299061344616568359947184586666645728462970222079109436221468070501108792102938463428853082067158373196868995068181358922480651081522094280318677015654067959299450530469926966608446953721674371215882093463952565247810312824989646847379775184805503312212006773840040927767923632809754965659846630649630897679377929180877476497135664283470906929108687952662028568778837260951472833812966970942817367020351454965802027563720960098824357518275790261483063335860913808842701980440965705952777653270531564770123819337392047518460248322219525822016012060851331363630856624225142135289756879910308324394240476086222831802325534449043929088637442611916441559025169775099060871512010247570447826178010704566531259891357061370869577087101295519162011527043409245832696942004953372962292367176145111340051486857488886375094346372069984008968614017581296181027492848306749409757401446390795544270215607373946757322394993123506553395644580882169882962637478110954729895491034830453314230252661362429220685168683693887123125156100217963817331631395116901154308069397301917619867032160099472358698891481268868415159549068874560308173054010513593046071072893070558771137936745663149864403370018004912097577520686868115195001826296568664295503276788263291198874678352180699999839075955757917801419530882081375080890357471700474199142644130400406710095209452838374095379799766558657278761637390160657788320809994626428157066300854019748551001997508564471091045104706186703081028171156120217129131578786147515852100266617408698706953642810114618747954087379196433027619957189978505284323524457350687376295289248804427599329668720015101860499724454997662869583780642004480578883183479153928061525438166706430395138428956786204400307425934440552221102553083784528668898566536361032926627104325997439958789425748015506553829600400930322348633869114802080506829806033477564421678246399381384824098619374806100912696177152664043029762090933951616152662016246526322621915328568946415429991575897926464620995073531897127357414305383238348624366831788559192241773359843226012690703914537683793150219956165977803629637423148062874307513692862756143847615405262103480071288129044138003691419887786367215803438633195989545507697718302923027497232454908605171022107847113866130777348863607355040334991360529205488256266862201582104012003002856891950305399479928109360760729240815005913059870860245799416378134804315841677780876695187930385938043832005071647310490418047130555986204705241692317152928377599712399115984535831236453115203546424418505812666635671704148308138067596067073843535674485578032336130726282672123768099633399113383269016927354076639552376130234626602122008841143273933219156960798131990704393326426674834921747662644409297524974910627591150087592678689794112443754127138479594821429248091812975939519202663523810359968095407343045681129953243127967437580191441355622384348948841394976601964703810352191094505426856175932754055600525326814869752905270530725955386073206255005993160673689093854249468450909139022581385278503531496712956616870746664099178066740625026393093017862323778221020641672490696007803918825005159673085512046023593641282932559092139522379560501311599854908993217042224732336416036574777920368738834773989883363160577892768413174241328247676436707399404818618878407316463529972020363362026001911916822072404429888046749921320685362149706133567914265007926848878167598323277653172166787337663908186934474592370907614211161225364513331218812217827453153095360895440625310061666605364109928858039799531716414691114501942496665845153723881787735026836077093936301879428052562650467011478637196323622221132794236643166141708730937818290131463848149116453159576288776684798754247587064454165918147858912286417032901300557462133535957625616647083612182241074091729674107551417018237025919337079342796579252448905806503498466163102044758353296842686475063790370314026178924243686297836350279107331899377751154747924466501890829857502522037373721685606225489958237476850131840397472483384573089006002498899510618163938450252922852850328082482245649449677436491910212575637692205854147498242116420390149832553089945982124464572069942628463059244687083562821231327225217786839607953833960245670165130713907638971473396168640752406833472407410148294973905925764133049177405884148427337123665298568003779165015340183666114843148209067401307690940203918514669984239389797182982454579405062117443723531274209745478986595193401264804286893987031446674753597340865146662050098531894066592494272769857743805132417356835530001229345139489530421534819161441380121034248166358598493808366974723547755914551324139390469433774781725866892026841446933696448530973686677889021251725086577866043032741096520427892652985910429867354372861537825599438938961297645306248439341766716008935537984328947244794050730753665022808987571101033823287652123984205706257145853597992017705183690172259173111605362618121245460955769492214556270647851852814889037560026310227966409397339311337644846083496709091462023067580344895095754370690879806441810630277614880665633642175549544224116922460446003944769897392646622850260700439456760859917540425485301968836507869559744631606559851447689669638908892351869786400054807426851313465463248552637326506908604280743776464298389530856641572768822965578241961501236134357362188752892485331450549642140578174082241241821292678261810222849387577138753718326766317570329687865388002376816190661244477817008994053313468342395098116279854383418830063350383693577277196950233859072413263540835875130065911568404810386831779695633464726651209412275054528822738722303218782144275487349168687870622673042422722177783077960410824337551644627353893497704960318210511788475110470536104561408117000997973164557873150821071884751036883729548387443301583054931275167228917996553348753339375189907111085927158896691689837429298011801580662458679354284082543621106904419287120051163612184287925612015899567087459164971068331875446278147375820729014615537920126689560449619381286414277121426550976585701722778230230295804097094285093175678577585975299067426266280187871405053797637320089611687797149023586990962820150529232224330608687410424140151242848375032203044912550383961858094819727558462325045235119935097578894504414482378483150522171465340105765162365442157779056569951615453032888599844393808411819083753949058155049057986095685213846836577516656436771834895830891067053538234799583194965933910773648591669843971681916690668245367222842819836092129970209210688544742040144382473889371565262703488066866533101509193476583159308439266014748662457706621666902846583436695926459601698109589015265344000569731431152161094353236151478588202808051859555629402961080470868299768686091556040163002298225228826639773258746509817762622676133594079068081321095369265327793700305280978355679145873230197414399931256818013343800432206230296140844774771903226985487171117560782049301022427077868891502790778538275998110524219717009111111405599302555982383546100747927910883624196867006281601127903192850321925558247416916806880944757100428953514415661923451799825375229585108389642027353783406277295627813231515410377662683118790271139205960508594725945142877491169552447550443846825054374603801647767585138947005804487270201540733557479238673484094849646854136298359056480092262644270587445459772426988163693593785551396321307207748162869456430196823527024478812133252017790443474664472864538196691442813644381473369234401125756454413727779969107542666131036545612973088692895776768689643167454065112501883757080688657651729759519148546721128538925857798469769347380400805041151158178715875694935950782328402196644209646990393396503395155884854657950714488513809947981780654123636434564888207067540311258691401463393169248975776896059438389552367349337126700168410224639495618086919544435985016154509898709841842731139745727521047139327674791957303419382230231132132692057678988646951941760432127675508315990399095126648127979537914895348174872375665921111490751724660812228754379276185604920794154294820062381456693761352965215729458903739856053183092388643964828127642075809725045360936945922048771860629160915165216908674870756550170093838088862199100562128769258284850130722672895513406106908550288768843023980140663416332675235169261640047886941090110176042626493207512366112334714225154315848767998461009164956192973691118650262932792104366476925536899919636372100167063191563998146022947391543354522813711120897730688484389859603705253875289266925933868171556349993752944174013118147300566532930931897682948022865126756934588379014048645544595698400613691626736382496816985916116406437682021182022819216742747152647913713048809740530226949460427893853754044892437358596082039396243920003924208513062424723892733177731236569877099547739531456211351413961746532100691869983133668884703394549083362791767662512009226779756662197947770292324688191136487790579869352654977074290788245045151624929808029743997042442895616677939018403921451942544397452904096506316758810353333362036089307268663678571118731899568100245116972330856276465763824281985013770765727830047079405149942661732266329027851164191368274116319415540305122014531279536455447368847268853516170799785155963824253907840328150529230648714233269346711313489177798605420522129115888909590293429950742738965482794470939436438748488412938503773739145219817832150421858714055501559650737491148327977641673981451619807379760196333297738474515302466305456642952868284498377771529557691194764921014047425623278863217040476569654769539380000628913127322694947495096383872350385125074149828902579695824852637436376382223423683954317210821362477906843205095047153151632054371554005697103905974268781842814386281541764736936586850119335481400787502658003874195308087006485184319853250619994312325735460626218694652871090672199804295293713996135958938261901428423186473728328484823284320919667650108605385503021253259292862614893768378342725985724018844781024194764868683836795410748762856118541044402303262066514618311960848634504982611860991288802847596532840831991124369329555088628665221176092576577875847377696060986829649812922803229700582123389521325066865605553099139298950895454471051853523579339164714030076596635498350571638209881782232938429397477504369289347511768544630929657976393414931580392406699010499885132445311149725136816637904481714156849545517997998672137061118163388700172006913905710535912854792672227030067448381176627661532287098648354456409167824437176477403143701056266298370717484707413993248669177128858172966994670181971482741390706673361842922853790111087559474318900044041698822840670936687777485918946462586291498024728151526706379042037443326598689864295801047067089953846975137956716036645820386040725702189667427247983175463034634190395471775328087747888678924144523994532573720335036643350985125557149865381154597056439917376214796793814758394585701762126424315689208994929607918958412973322532212124652077643326069172842687144250672446339063196670292866545382240779861019398154080530341071659089487180194688004491519066341781116489837209874245311181074848879827177283839983821869937873749621489271403297038591058668961107837320623515337178727205897593227970719604173868916925252822014562234737506023255740659965536027576487020119070908930793811713152127960206659995096177277676471124105205410056924012657272362556321877525624301481594948357452610183806008973503907941184962388128770394725321480449954689514251929971669451656088366486312084781455958692350242935839162308816155535993146701647629870236086552955879666856806533688211669682693987789151195364948861752397852345535465659387751849858958029044061123788136491722279505086481257074425617193808755085983425592074398263787789485478459343815984036286435084139359242496533922663179900872498863847882677351325196979252021508708342632263100559782457515103478536121322153072033719691976867975716625373292203727758037367086916955737658337947962230760715243817266904950189104901612439577590839511647003386314663146497420792214707086018617721045857168941884550690695599646033897319721405744948463697081528632299697575680549068883909923711543294702930144115626238865828382740160778905751102556332584712838123821187811783900516159213153435097465428191049961122565567594008793085977619863399523789262163142132058972370756070177336167610329299059218972706166350176955714883352701299258220387790294266777846971528430783591222026621751425580419670460849899442052107365516119703356450936317087675550095954544125002373750154847196148487945857563821190345806891757206901000003216785558411675202157209883498211912676818705450791668204833943408711041739604407590430636638566896693760058893558773834125469902888246870979154994831768706641138998673447448240664709972405549705738275269919853463445328521503234434974104836464367710934834238751364533896982255133165423738284403671802657962399367765452151885404577306297148381604765983014942030379806251569895190703076381515413691220953164695496490689325608994769134249931106064000041357365280841114823562427708248632488370996465133990440429039925660485416643598651138908453282690815796326263860904658348741254089417663501872153517566978174498826707608691377800447040839476439633794785193573179581639554069622279593171439166618874995516406698824051387768107477112346744239477996290801353106173954495931098401715800722067660670473252973086265322859876861343204119464574601408952438552416349270959640988449436072656792512688940295837991379801228527609877322137767684733564468543354133792038405899172860195926523705289180536380655340211548832014000631234547772445487442960720652084033743215228084851629117439645453609146148135211729223230661913543507043161914381130315800067189862021392083708209136689258107103716023957771501862550165253395463140568302836873274330023374324112709431793228136222088620606981804347632917620638007837628029085835120752939833808116108058166184570405927500880638843875385692599711991129039780182592226249605265681471297234139139089138566655134535428274395987646801019118795321931147165407294332660727907743925293285646631603153122798280942375931500069415947482782591283588338253533053577110300057061415818094456755437022850291310643355547546690141167535433939806926209857640779343664233025696681171086336802249640955752588414204365462983056217415911830300237798081358590535773953142660215111016583346413696861974381984761466690456764781547339674211914831981854821179469983005127840772095058120112182636552892557472515003760694678104338512489982778129436517692837445103340628894218514723996485180829494042116335374971710710403238555943930920446284127655631915559608368936510478082433213765479136276309658917711494658676846871609936390701276124804814185823735204058422575392120399188008255659428758064700788895281557549748608253443567151880118904346750829391830783090946074052306995853026479688453111612990265047949289572108463147960979316914501073099602225600878303182128304663016527067423886898550714970615373565731153335719566606997935608934867967609972763272731929677404380858843055333209837805584267673585600447122339347379027083211176095331196286113627679397657105788582778915789902935386489289726119399849630669025339428561095624073873838278678604110707266823191763855589122731611546691319452594981370645924909311055002740376857678498175345315814370356658932655936673119005790453907904793656421938591195219389012596438244519419784150297443099456657490882990234813934716167651070135121779664491764965559780098300802706702247805167355084725752119612414802981027998524224523144851828376894345909599535470545108535074481835626641784983273569312135741388578670443884167830443884734193012295384990500770196545184967157755826823090037197150002479503984649102467754872957517919883044506197826872547043956059816706125480529159208325797530215608243348374339160419952179500131581597879222560672474012946107003565123328479225163191776379586971137620727983675031827744183836156260430865958978054766504796717405148132983004761522249292186278732339681176309357914856670662367281791914387534719539318837291705635871848617901009843936079155227813271166913253312105087103161588887575947084344857920278279627331745947544628471429413000870648802952379859730058113369491982192132250789927103526676512358301198713685476104386427722359187429159397670202287568218120224036093817361146135699803236256898675789710887721217584499663432267366160481383672226995362897292691407537538915163565802280750833790465448668943339102737879030394317952569460541079844826630525636902654607667076772445301440163854871235781651956916614691476509031981124938038634807666537999106305171919355806693217749815432835622114223333378160200973363958562626180314925071881845557015867530065012833122739893588941087333053841263270081583908926223404191136813727543885724560161042264273102712631170929862225798811035437056711990217504096683621407786488385112729254195772620982680352498119112543518905420831035813353015547777320299231719656434654398345138896993908372091433548614148386477453591136913145244066744493688995696354146600253272843213111939110036560684126736114453714321988860179739330210758597789157242622983066320549702921014744048678828982071402547200307386968634617894652487576994714135707240766355415501027249992376094261880167800253009398935795457205028791304782339400994121539571975030728434852034039578486722617731500262027262502743121214945716300000037318464572424333998446793363817280301470415038285827768360347931119839453740524794277905681618812629501434471557754006536571384663683684482992177407832925945375513463664188327403043059609840496383629203288134746597229366905858898588675366294362363279851829118205108735366101041316441483615058260737803540261450346607057967308947965186646212520443775347069842614809824632717835947514408655526135469863580933261126696961993787522840116561567577505072397772520578281563558341061862549325507247610373160788744505066250835074712573664538096420776861224255804375425333558067811529706803663135130450872249142498453948778526496443812537049617630127378191101610909672675090056791513144493083052282814363961120103720842005083659504957887638795333620996189246067073756648284119442967594594660942259893324052459694657741964568414657645340236518157182683583092240267922092919026925876862937290433951655795875928124895907337863955794557766239653332848790438999333933398603151055082589936138823153881600093579277673340890290007353019153771117409816102493780849691054978417934073461793807809278396229667590465810387214287353179272315505040234147545844992632637041336111686524049264136749962131015013868598050116304719416721435661308375392302397890268348323395475823964200141074952256591103667755997471026313675933077914984188456335123875944206426232238420240920987260234021256648098991477374372256137683511715571770625769005100381455617889410488180087572386377042831831032440560583478116918136342766142231666223369642085176501608479246017720735224691248393498907518980506585854639291108622121699972327833006604157913875723352128714180316504410294536859489490628113381263056711545936218229428296524120594228136434718344310162146139121197594237367680416062382247297293598097078092918695764785022031631020739252202381114966622871336638470769125154870019744187863164826362250220265231600972539383588266987006646446772279169234534046688646909203406592772986841049426091673514017481491005880949104261057333706741617070079805021412916345222178478129749237295165367418807417636631748359594188126351005008245219555229554595083110612444176802032600497953654409482667300273068112656372892046521452917835678013138388412303072598415710359137089960608673505148269702842269830714123282250365071282989285455309114863898144683584852409588641791155282021039491090450524358856773741124472320639952729320334385042260668872082390869144916421830419025140577789829822194210537236607945346769113955328379606542724110228334460023044400189478092688534826261514791432103686371630730160463794332103143761976815651346319505279516236790292728467737709796122233320372096771328872706714598324372533003542817846007293637347946708776538461442714914163642783073707502049934137834042920479379031324509807044128373890212081158851626917136637477476662023960567247170954566871593251893743434994594450174727704432583189661922813671177301887800183356351507264781386894142589220590177040045431683599157766980930664582530372035609700724131383362626306162202527296921838719230358818714962281909830568607563119889189840403692486199788317578599559499139278967809590612744225321226894208293615745012214666020204001244852477789028108858822517706148353083799953245510169758642121272619450683528419096107566548306092817513799139441799862841138489350109379417306410768771962911818245875701885003774518021181207427558727182695149570151929879393946651925058750937956245370990613349723340154933745515799367417794249315376219369137158307488977717819892431783771123768589345525616149762740195745604280556185469992747734116944905392069068690735471354725854846733376420872755016479947394875924839479314244396802798927208819592666790358223384161723303533842141316501831586525726766935030463706962904945135708607651979288680431919503876630614053341014825394137760655556381986438190997453626045733684798777609477852115816478451967131093540274444955923763937915841137771246659927886761504541859463642522305643702078801848825531698252299285423027761258602953906252824712860349830615367353962536275582899413727603548456968173299672996862510855702454802162676410459527719335271381974931073829102346165028206083919447829011357603900957292782934672162116969190731092170735556722249746796600348852334118278755243835581879769360485258598872128975887952840879365127621035981713281250152510108461631301773065350243023962172862250762929016785445292906596486062531631473408383203290260825257438810291409790845978884096276391424393399007749468507232973716800832199327719282047288593546071356528112098771325118065788418195287170593489950083800662333856657507516009922595003299316542584604207343110659318121751634520295633966248046554937287358055413887236021590864409149907367565453172783962616767051691107396353499801772087703796415207344627468720568523148068177345144709409151301677061982689512862664982274055226910275474098440551550588498818427165021823815141585532765038487121881686439222690727485430588410526703148641940871940210761350838925826000271249716376048001470837663632793091679727901528201323366732119746942939543629392221532684396569495364279221277342048931441419392808947339027635713331899133080623825148852618425343802175231453316258504855957654860994814144266496055196184339374741058880211421928062212444454017874859178381119898294002126992356872919692906946015671213718000236354601467718689168350753724685182037064598958826600129053154760676802853108197043364604350204951081416049765226460041741751503948148370619233021623429571584449402538293511383538833505169561314052130613069616967856524844392099602881624813455596093257342067547387502640936223887049631810389498361917929120322258387965771903991559150615552293807545005638158810393887695433866880940830608666457172562567896700014618431683784872034992666956637019363776665231381761232063154624991950681558744075043399670095756249863787854616469611568394413829255503505444088084565274924581797526062691907050707932723548501675208469151208802976628623100206634459120198789761492271290339615046111381718111002939256670323593461004866292165544487566269304740173118261035676110958220780840231115795644314620556941101296118115548943628078704929235607363923218849005708477451874801620324482043695451125934867102546980689101755336735232416699604805545548830883888163955063389448198505512900786874693260663169054449701274452059720485663276042354341344650708056783984524503168522287846417623314035703893782444949784601317110398336163764210904755505361926824091223434402905021719348705340242429924855574692850442435019285143410867204436094254202361702330598036913608748641092735082059578368679839791576649069999325404645403230756008995845538023110554933222114391043902230188662526154893360160471642431935821972413197307820776346762184077915362152282604403376613370795263144047243123023714425461813358462965875798896276333368855989865706391411970952269696031811393048019052567970771860920975928768806671035960310211687762542045316126417347564319588960117902871527518497153803412131306764026245919629645039306715445431487574058016090788997875587303573075635715330948440022927544279279820393259105431620855186089370989620793704002544032693037261742654267825189209363093991124727384092868926498568981824981744512153050301566485566737912208989195746770346485073791338929123738843957985700468063060585112310474917974277286122058827281431898083908409581073920777541698215899321538404890699137338967874271561063442031742113082146145231715555226691331011052853244203169206067644969526257329048141685251001499423015567175655713071818042107905131895199262246233705823099112382679480838726497260376300608366386058474154653879878953681189703857198575769735558069719015117733886404680633687491510440994783492689230445994229847971464397925309090794901924198556852545325566962445337446961798032591103871825606242651872934247935970108181862694107064114194887419349014763176696810397426043770516346453322105534946870798258375309845418792702520407991725572024282581674083616607833596161683407466917289601678951545348329736553068776502530796322108514542989255467321717437171510685154994661888788935535055904933235218059126333081081167908556500909771211685106175320580594409418985293852848546773158078787123527047588863986626781226166921511146234725557651006346434126960269976181650164438127547974199634623184789054242343425145459943280609833349294350222916555022751213044525380748662171133240310193868488945643501735451595529072578930688764855775804609490085615069540120681728197972043715668981582088217034572686689537081883107486333679490525243096269066635257550836378528665577042111999110920570636338007686366254965658637544109875539665070919235210152403289075849975434952668285793171999049482866806141291406858894606536282566650635861077234480289404845159023112574764974374630888961194402873812559010310356527243733529914483448852311672765196096247190942011838149764493140384080140507036281718951824109643580748913336382076816496602042729870207880524199014708664569393046994716689489420668834828214420702032001928015936626612420404535089874898203981163060761591257790867543865111181693300890592424860921866836878328063796617392443988463807887778280333054664124182612957020460015443675840883667535979835740942432583548098857086357678590410482168492307515066556059873537495358084141062710675136399514871803015894407530131857329982330192269241879063406911914927540369933175686781305228841303807606054745836770495603593735639039492779161551198437840074992413981935824039783383024680673440526946351886286991987713005986466162597356373307394993998400799343622689315852758098151759871232233489199845347444257573050077595228668538839425072908386876554217896841567624772327900432594032290215864436923069748968306099369967937553562406339587745799080233480835220517663927345366513905338133906692001160759999079482986212848774341186954989073096328860566652210707420881858533797847161638682327031341361460838714463525177684879244370997287975885851772954988053748086746861169848298029950037643912115331207896142896341379563527233995480252753513486183045966777421045079414658326833829836115191136097136851395714510834940001231354824834007219455263170538321316421148524381253953058645061162529002779158355152089424540094451319641360092267729697950677587351961578891736239986469951745241044676428680302881266553988585689763263051242082603016564719515242149591794263492169152012947666754678904576492880026871455590275792615286351582488167920727085953912213272378917749192967647571944583404006785367811196344755932417436886210077205927475067057741835567565599451027428227592181318565703450761681391088472815429668053456496717158146829421732026409146912920288805722139657414329388385085187221922213669482029687470744847023419800863324525988369913305172570513065386004698553663814876503700422422963442165368785862587354268939889938984337331993452139116000835242208469054196234027694056271227647478435990453628035807113621393592883696022150656640574421324293793633541474894001969084530012162772329513511971913573152684769271566156256398006283571647106678122183731083262308862139738273571560709621946148597743352057555826429781107767321190829260023356714773977878231779430348342526207002744522312277183078419031880099408649832630854115402747293887870299201665279443634098079116050217604905149550534999626558931221841448798263098532627754432299352146247720428494340662923390777584491836877398246459802402806970095352639559816797234621042026177014111802587418323367031566211011875290894421170329634021957637858988453266683325524780535602560342701627100742521558229306020749934551429855897598119209653876836607433059979154472283071201321556186740013301433412390626896815570421928645441275828823654011325520235160635170045037070643653595901655677582410234259547641686443852384589737073341140257367243329285094996987187944531721148346055261912382702418334439805536643695117605761219810724501922400260477803122973284442627467785310887471206448400970610531639378645526872322607986872578656159207703691561098103009365954402463047959772390669741137630026855449594727091342542412817489493309789103807231948767153915217031057092520760559715371753400592911643305072147629973078647790503317605168449229974911855712078242034225234038816005367800471039087007319854884609018013021081879108559519314582715061226294552076790924589399775561010507176179451917491663035818205241860840647386360073491333909928823145919505127864715334820537167829923887547768660251569413773725283651734957552768350245257899625993177721514444388808669938770448319745428219286781015709452161784455733775610181171803315431220059146813839769536838894301804157087024767067071199953298955129848579487672553531688782637410440354769313076154803420108713431065032446636335170276357412096425903068131106922106402149456304910942215655922149987935699530076726500457044799383951074848271091727888502433125640299565200768523579994135851721453701616014707190414028234709677687110175926409852768680790758737047847389430050008772699997870958059576236635476733928991577757797935362057693788881550711835995068245143656204256747998810963505551563055434546929754736710698255027131213787813278157772954621830164031205957256199809665813207194718112771897278875601922622755291264021356932026838982313463327763953593142602661518415243974906469573135869230610533651855423649097029912128430185214571569982894703099549598062273415452928755392199091870935115977856612333376162424802819938082145875527707225648211142889927973512809784183982421235658165003774987143276526109552823668807923661817599210357461819144124349368408404697554155939045889709909127976976852381366746257686433047272796320447239993482069891746707507806261891909810665872162011652849318240837297326930697998276394247031907057474533889613715856288987137387333878732740254402179345260432030590146522977387152712518486882748082560007632760005618793783711386007621198222421579199446555451210536732055859140366835756968643036744090253635604702388927823019136885114116447242270669499814308600086893496732982008713210356673078499823003954239607571497399884170850630070969238303464082655479024364900316751642640874864472633744916899197761080313987743602650677377640086106408230149270220125927416051785476626085438541005377834686658201484828176091164908629048078426717707856137379878512881217387862905669846223510942855217720300056285604450813963047522213336464356030997103148921175691511127598531188239676936696186575430804916729056286903444619165620131295777267239321727727622291865414598815560703538893375131281154376845064836262906396769286407540632970773896785858116602079699973348779989998110550000440835033525914970385371070750977482360515013746860359803038224386936560586907134712638227972002686629077144858638898219090650151553910243367578560184256400423770322054438178723930217117782457605159082757951883781620320954684552371577823868631689884415293396266053501268865410989660092848135405050695819065559348771092240936853085985067677329660549627022340195626928933085592812156911690715060224005467484121274948627618315658339379746747044624211320689223416909342341134016465174453959007064360961059523548649196461967586056154867506774059350911774990209798040584034455626410291629009818992453092580110883221659830883763234857994397908679539346656865096813236487803777304790195776921102467861806505221304409699203364321934072811680554615760704371456783061696280510065636567862770967335881086915351821508451860030722354747684324531283598046494339956937615448393296023182294139463694999181028417193811569217340362932217526363409179312716535915382041989207500058676905723193564377708479418472499171291457263426117210482560664747431446702797299272168186259219433773971053876233873340266867533689638796427849864011161751622959581901879636146408715373043411041696577199672760148917541977936505946270842445028168213479481204637193341770795149335116544972176690006393273743738487244087512111060499811547994372558972547818464126636190180179101822431057543677118992413065926392538834972481198737043184084308687097719483116811285883021677898833248427372467398064311052455365891928839739779148337093760772019567650843660417499805300846563951730803101736968281098854555753668656398401580884378628053921774838671868871257847882151125337839011066464852561451852281057957269474305136320960318814625650961585318737801224408025597223220240789369599467795868164264654848624972071435341395246491882314810918868558275591280444903362843356962100830743385869148496823020816869296172714117355668160851868341661489126094779846089221406566599588481981947779422122082968389718465794528827520548831716550122421636507983002786071759124866784344816773709118810560941716597340267940746332644354256243583727448556245194198792215264560755190066069946874680572364013760785535502210258615556286958063724816584355793547701737782378925457379296549472583733048078849789070505006393265430542052390407083280348684165278681854879240809072942628573832716148026265832016757162703203207729705449827105773827257476904744711357710171135093040134390819860798838937225317310964565404412350567321157852701778526968151304828652861545855986609265087996368289431185363647046184821167848653417856044277398050723362859833520785649226540659115252926688868125975192475174882276780767368461329558612402646432906259214849519529610607728896597954694381300910370556022878326710049363201471265291377038817652543933983648520510887620754660865100396393523531978000160972607011126033799471101474090703686022153732771548993982668196012577226452273551404811744231284913921973744358483467917111696065624806504614532123194471249692422608859164084751114061206723530474790561034896085179585475707074945096156915577391692807716803769115462111524803962661097608011124865558775039286055774593338299204373232363759154188290068910552190331613640267000668699615955766578855646124910919115225088897864353448617684103759950616141157102125382438113928787557406990455515957112264294346997372446922807843294383326328881192362780746214918315642864830581722949019563543549601546060898194204833193512203016525048349015715459243575915814658389850436173147816948757631938970142443824678637819257741676266628550181679572069317192193654041766655167423819996049300112833819287563259991504161780786535213996927207649367043887854283400588416919396661811986971592143589827698782230125861936505950609168384732794183550787234620330745822588339166912007443741870392488057048884055320940870150277778384114270671740747098218986718964950753085903121787325424136994421670950718631883423942794742407405851968372072713136999340939876811826006099496065798610354355252952711585083367867250870585941007751533454594108091878242057089684520390838601863667000058081268040904961153239223292721337188994092895620612490851075384317266141942589569219219651316613349419661082583264624460154511506481548519775065003009807116873797734811328145070852741744888012466955768430859140057250714080575926325599132043547455210857499503698927349472662650141521042698168860293746267508975843598467445853880015122578270911918261343979097250243389752936366017609578380280546150734784971576274415254338029148882452503508979151221102453222118572378547393813367087328709072391759013531411694395514748560064653873841713085146149089655097479092082915898642375722793219213923479952599615471658153387001701534827498374302635977705103855262658205150112137562501909060367692022865755097374062680726897369125672713532155300112389470661079553380211940976008134918149879788168659092186810663508388486255121200008664351276351368420288416830655010968366336684947233716362218801290133243316605647950048348443140806167442333946403406297325672559246769088696131583312062692154859578347380691974106980644439024937946345626937182037533324051963198706483878448463248284108120239961229605591101699433132836982893589476366448774781003663590608772051240295506675889647718842004887887148345729167425654915228419474760033691899886272032428425489289499743568215675763087003307294719606350120199554866262685652065701712495622573723906698498640462246849085088698594446967518869252814021538693445448619748284179881649633310131604106724779414502972292230288342451193308012409953158292068484038050839045290466029429252770792686436439243827512232757061212593685630978331359216752034918530718801824457607416255227033205730727260834529773114036015742198853559864469886223769272046485827125298959684903078765416109493922955128364649734390358093452787761777824019077886973663644365168902190223467733815636080342433081074540149653721876844893455344890507323440646106483372614769892985703999258516987878026045435832476928933991470254365869034833695762240618159679461130425841613598108820371105557248991574290493641251423483443374506589130535317777008065618005679695872731709521082395698834661385575732349459353526416760236807335757509971503956755114068897325713029891498754723057471062818862585795204904052612191967243310595923338967848127063853366964991397661323796428595256837667258530185554472905337970507272567553291599264939181075126935254064984999404782448372216878837151076135693183795991437061710295786844789622033076188852315803388882122985682490747582104560571236244915372336943248873988552553246761301295609282389863779940558832791424694798667227523991012495958634365372690460272173876659922755765433600256626759376385304097371016791040259723032565725634197489879328169561928280798582373859301389236283301291009911932748571815028533815774724078398652196455697343773242281196235094667582123508859166061836714051993955819095171906610967796171747613858792433972268719656104215940535288802673153350892860567589516382983253430817096442220430248888505101026405002442427572862825111258958738549630785292572491956821530370209712192547086523948130141999919432235864352139105555305994711204872644915040729676982946233976263076658277530788884073785064245996338519747502657277216592979229305898398708352760590840139521839196437733891835036804501031406890171450380584528218315845042775655806620035449633730367797666241049670684648117997688898773758420658975344830235836910557553785234806085849276364701093903780909122029548318884459994340741639435419009552549900587924077314515241223511775527779477385411275553503004348123903944384881345305668234215588205247354128322268982538099443707569306272153561891954299992719325467202290828134856231466014462028821295642387938129782346760107445959456376745868359626011019750365546315288475619519805675799731258356532931625460879827064734592130563051785381135573606919187128068111398085762793133124900623773460033340237958687432676075153772456695498111031189293552444882666431116542465551585259132656164699806491779192403020351047531585333907696239440883285810377644029682037859978905792288843984003115411978762272469638286161897841813219144615395935476234707035337738815433834225768939777686189104938597736820285328054248005959716810810754458875540178111560901678199408166109601989478848209572680009297300802018255299948308722569235604350529774158403315737697470454840530353880190556827164107806031893904941037947092561283808410908630749355420302667280884504017462536292706566155463940087864166320627590584203450128423760109278707489021050226300112066167623291044819970862798754140661922357802909584887548735469564164358289896788415873487546159921417135471288288675748962415149752330997143848655444277624407690208145146140931613313937458122907884499087954029326931025580987973133081906422871187720624846719329483544912462697153082353289538080891575808298807153269560549726741567890785683295133227372936418884515079444350211075688540986478592037188220017886997980894244690464728735623521321755876219602498311518025217207951798594727069976333256293883420965540861844136463763050863851755283711796301086933862404845383868077830841553628145838561164080512992634203848609516488433923494685363409722070101158365299756713931094022940532433240951279148312619338732162730953245659229872266437931436374869572191503095600917096071269825905267569750452697741363685930769998034642588614869372086178132322505445923512283720319554417795118968550903127031616001011657190307606414685444221606521918186389457706311379192608939750979144257453967723538044969395768633228032396879933858366042842405962098998004103173861441848544106883002762759967610026879830040595037235275432268199195911549892440229448599345268260791565502497921763392653363204036429738659608027222595577939287783837377818712191658273584505413678089140943425121447388069129424136864062397324492239494812036829211709297711642072869965609545138643562779145706180220687058328341353689741881448264094424945237794955462485078816632543565929472002108960814031228583606618806553645992644546391475188960306883516003387101001566799409114107827026528653071102617909262160019101340695676547632873840545398851641206371426693933374989976855114848409238811093541492247785114742854206952871922946793067166930598182344586238182730532062118060146470700288970807306249777962513357849608322309361120396496739461848584515828810706727608635760634915103328463674370278973348240451917110679970137574823925867284257709056911566604761572111860754898804127356943410899220841915650926198020521122756499765655186713739353043597691656001767225158186095444149545007435413248047009069881714174166631115274020187674240872165753500727673744924937680512471536189661931233799650452520135081295410664211561318884226109104194276356095275016136972139394444707569056824288622916134165819158748279263313054364816352919727615956288465829508425729371182992424211148488177938213150260810682847479889352927907688484372160402378925511858725067509622022447176079268518752456165921694285402581520747452978391909370888420411617535652180842828034950621941577233650646232973557070919091758165316189575634739969891424977303770849946483200698717102306679490356444604222572933376705714423960744039517234210825026042452319886455659082931944466045556592215166177744776776074890049188333841103244851074539705807593178275300887256028160946234992370260576716382866111306831479745559511127439243440561387585352538301723447127067301992812593167346655750322831022199998930205027748841589417764866479187261572866803152729723370129103154647409967429212301016286015626070209782692216467267464022853408609552355726652211923792352885268971432069998854354120430114259735726143723267962400779622007939546169624857413370664365025611269980831546715943643813422754190761036022313090229317398928416004016108567636111181881708512123735974180705671417458421206233660270233633344117200879015400486836103690465349315284345058591417732631309824717665013524761974288566216072862852684388599140706631619573823219607092154398987254681183276719103753218361364423175522315559638544278812648655732886279133548917906753239442055451025231974675664522999372793675274794030794988576637177347531732085773892204804755983138764463219126972364465570369373733432285195058592075994663020388945962712400600602999820317694788647424838182846690879148828731106115926699208698426318678595568100543086605008805882884737954079913756063990524829114849767621403472301324382957697064314520348999820627863339830480012848582526780363714486384132270804810547254050337980495099454000741972458870270625773127669992353526984511445546477594748761219907754769407666326875170739179832995024796396273596601596096463790504722519938832579104860350807785800841654570272163562361139625901626918969313210150531052106717631242014890501220867564255137665559692481133714124029165593160608454918078735909016764684690084332196544392238198066268470644096833227722929355660788301301825510028218062199894552963337863893307430660902285756495995558106627813655620916590887465572396881507869664047085309468862719821244191853822124649005974267888394604117925739922677042157304188559872982405221456762263368542611945816883096768327441863930597937661749624971862562418544445513553669305329049073283509763870694177046905887567971161334994083532599081893370072623102261765767237316071252857684568430243452704580158889168706601279275380171370601357489397112023481665457837522241959871851997521820148788243708770675923885160904146380354708687117297926446786063421546850749826755482978760436828279486909539612165989734056496109821820324652079386753604354221243291997824429949414935207206614100890147325585190361928006289517765688881882447223188165710715200185112847945956408338822768114653462476583212696453680589691098966209558969258453640813376691782295609659814894226881069427220207987298038148996258414199509628499370231328997541468435560283485182361779229697368075886400682146653493149542590356525472058179434366565860789205677806312640046143312617525982788946708482183860898021185663996712488412380719410233038916647101080464127764878689117130738282240883575771945749765524442429877370570533786018366118645623978864208747142685108757816775289241616147450914748098019925685233496122211702238050485913298919439853090623179918482338456067464657868617575846587669145742728028682542360353898501246082952265376188367859980060125074700636647972627773342475594280944211251331377606942530398530223281499763814085869616541018021604728947846659993986901113215402717940036572258527829435985828868602430140386334699590261390735230952188285111611657416985910353773753690727735954911434176309462616860339860181382975923840094657496044021684931378959678657158849318228353106081495819280778505751239364104851044165015495261565854803602663048029285381021903885147773841942168022357463415500147769279855853989176551363203251259963640853550514874257960878860468975103736484231091737191747768248810914735758654242950509188366102690809845882118449048302909790282948546227374372466238751944452064406173221347847072647491732257496487795537618962747648440968546494623538984732468463671260804551145137192950395587892707678244910400745970002806586116578436999119233618614756647213940060722615142507985364117482370650149942448262543123843449533036802322970890120736968231750925856453119259049087585791406876326383174477380443757751606123901240685240455512823765496988997831703720397811892566619480708393632372075086371246225211465613330819445744476096529440723498031260383521436557333900638178288023964249324785428231852357241372998133173544732759678963200917587553880380582636963600961792247572431881258193918823156238046803396777966699966805432623145298767967595607940284571327667987834991214180284818443505924793408174148805839899018753447522413610351913649351584387955082951507367456665606593171044086725890605286449132336416383413682233028819969992772394241221239073307806303145322842247956700349001447962643453618274130943309845863639776911536999542107406480421548137947386758457225412327910517722318961567325012829088254120697163302395424248567736556752665552206886970919850691917639250219043922709215195557672241149330788469507589808240058085501377365472936709909271445837012831957806864021417904243812291204030641724418288179758031575508932233019118791919460479462274487276205024946298928387218208834915246294330320112788032878578562017405472378322746502651228909999142552763807893660503733529849142281744570761908321075038197130922245760617882872788229470349205792259207737769712011408504582012765608653601825987049918049907731659083167280521599321739911394909527268815773104266743239094753468459554299833071485221202418537906706858914964262513755388263629821610782318549189536937665518176774931157886209218554548134083081680417274625484492996175889920740827838355805351344839435052085039042703161255822259323248562086529548281841009569276819834491164392594846702710924823059747684196861355039532541330795600848676744003043702087457969951566362401658233126666350605581921689132131214304645469505076021894809540168419271483866614097530343659704533731136603691606445379049076039554476887990150168250808994324896373559391594600958393561643186359077076452599118059389488749427795064196249658542548205887093073755379234400386467537635852873558224694927779404083065460224432469199462118917044197198107668586296962473529111959489247448110318027626612388172581898780289090828169738771866029040913204976383129921260953924654403633044935088265546155684723781898419843923241322534405606395062522277592441982282178534100615575323339406482010794361137537675137317640247385265094935907587775162279574051410378613690450668723447599742911298240264142932655725203524081537549137536368875715679357635755828516405213619415039668692218938211241174691439692046700070211003089050188567340431637738656005556882385997796612303372532091054342426145235120874819040420787977312595483543706895296552815646474533382559924556796080210973666423074568578956409419583816607279038433706683505784558210688590954495671151048279614554046130869516127608487227468372241619928016534071391928082070409142564150505414933911625486328030917497210704695121286264821384904491476782685245739798053798231440827063552097358634065521236566993403278030142575933487533912167018362576830690847874754613751019580848657332722801931658273667519007739919981082306983060748049448422897577207348858158792848618922601437504887561759073642036072298504815692996598901130134965955217318877731702509179751715818809986398581159982006964088926318879024907746549688442506464760357142412791279615789882350404783798014495890568110183736148812896797386550863187713506542578196623181783726619020155524506748106929289570321379870931695803208241386114528262714865794040329569200456571829790906109822269018245433144573488190153761678824451892599955375206079990669665802656841602891292406694182891383791372763446362033894374573967232177447748201667979236547737307807032529379113322590021606655818926111641220127217216294243311905101905540149329366463990945801289473869197850726624906290855874102896543099688320850946266314467093238629748821032497756007500560819520913699422750650069156628210752992143200103739702290095874063113806679788236622835079522465598773936434149877879958420460473736362189913641184687949552750554807265698755126981610751894390103556055096005519734242433017679320854161148056719865477697479616248879476509709547748569757291459786467813905845036238296091001268577177932416437416094383156074081133296813322086448567762988154761453487211694664567002286360568752725868535409270204254852314659198713963328555487763849850482552222266639387733516737236274328883629803024595783494121215556040939297079556344446413100562139488718464737063001261921201982135673246513388696948374925637762841730881986411589058458680032204845074743873990680433938210720611631704793956742964029739733304791857854276336437812906721865619975074620396314417583570367087818454669979839501894757850112049654656188845496319235722432116484322589597782621782817867066594062919233847753137363080660788617503612726080267296106142577797738784909564094563359835382371318297870970109689247416754816556502882699680288543651589428656778181051948956814429794564921380284671174258364862596185131140254950952288757728215809963212152686826183006179552311890331832406967007184028676455290937176438419511250949750035868798481844585243626719442392384999969767407419061189833805021037086412431452374663433951648192935151697400732100382409394400865597161180987845922767103856285064849409700183056559584670444181169938305861923327409377949380966428093274730174226786020554513413974258104718498864658489082841863480019913377850839883362338261521327574000467608094222308432375424395939851637274279074535373987094287191343193318607019286447253753843218846643978493491309595370227526741992395541483667921478179003783926159794637668506349153069750285903821214166537802791908627780137932920819860328388718980185758575429401357273474575277571423979400602816089263135755567092793617910774265245862755163049399465587897193386305175909492992061555193975584939867905966797422109344471161022254330357907896860091923555136999032098628318767401456876569755910579912740389045887174386820723718382412504630578132075258282754664352650266254464914888303222168467629602170989235797080652137743038060317512699461451325517021457404701183465771403100308910817202693088234874078813360694262727548898239086733863623868576203044462140475821875962948666596582513079936504619892029082385875482425626312730220689086311283505448105651577529073680449299920110143856544142167289418406928763348593693878628076083768951025288918448991541844662701635260046677940540289696062874221541904709367271453693674534816965119598902792235598444875704394764671303267169266902604414687201114463330774888333413968146879318128413663270985553048174908567006340669785710131224122715120145451123354338192529375479936227387370602142220971349811572827751757850573252477260485565628784843335210607732081779112989186122419432303879667831471154211898806995423080093146100103733675309403245755998140438511433760381140590996878807050983939061426897332916972444562651102119599451694438780938953380209949708328033453151764626070299764535840341283587580617640543269799991425432916613561678582154034790537306754295076188547335353821101138991531798622174309500326127999207291684871087027223377997824161151286915861425794391999280238711350886592073855633183871112250521737938627613081955897662591449494380661488616554189178750576279155931746479903149034593776742278939942899405551887518183705636171355006481775502787311517921889353502530469076634361273931228907199199594417187670392741767322715554169248493868172064522693483436127027785713284852632886090393343899420514446531140277726792864489415828920652482611508388596843774699801030874747895781721376476284607438852802874625703179707379491278746966354618872902882896492809617804585436777103413513963131850026576413455007496885626778941091868359902689928389546809859761326167333901910310718415632805047356964666413125761793295789461820984226272200906338389909776262907894224073120974979357599898913412226866440513710679339673437204857197284567206499132323808449623749557188210303883305782976267048254119387534400426444173029031766600375941356739831976136589859954093298713915018159764825673742735927769025084586371719754523917447970056948425425665913878736280187471847645023573157892801943739218505935927137228762333278030254816944949942016449922302553066468452514462223721156006835713969610824640211091891308035188347208559631348132482116000476248736218662945177203532539133195120822786081062385425161708455258797822906920468329448222352627818360248221971591732160415142269798963037438886603158532616597227040987769002661456142107011287953734258501726685904209387962969137140490554573893086447884994642429210140151735966651332991521115143809935973092447829996259385510766231247576562146252620791580960713002664064457619217578018348650216822130195100501153196430758382502323342584060709265185177125944541142940816345565119380225534045433744520986374573821306343670415014629013924477582926234091019074438724280915663700379075825282399223981649352361624777562522096404179681827123609025781393822720717360881292404107453153906235533608309509442791574750328172034750423490754957277756871791387002667971252292457963031170423466409540528387311195078665392764049090752711867529326646480349582968639903998697075819066558473115618014061457034155335116736401037407902797799726926975254725746143418092518058422509556180140061619595765998500536326805400592407297866685524678386039257536236811040989068361170482747839669277271997516952173114404709487912415298414489056962997333957365892962353341658308071210096939989181892903459880208715694088103695314585582821106913233151194346090630265465109007764170145610139361262833240831931646091096492746738449558269065026591681134232936743533692321126242800997887696597489748048323938227269667887458917044332991268209368710664625235631294222722834342503195607163859477394422706861325635446340410372932205708761750543458588119338473162507227178541359577623238097127793268711185339353645388730354848300317040477935771965465456829299380448016455484005241156676919918245944285522184327979870039847386944184861634069028435582910966009854250927613044954236948528151871311906781042864902815773551873009009147725687394504271988686057654091916797273811325771344896513494403855070940817161660691170176609695691401281415251893631346554460114197201018579251007108120308982388539285149460625060646821663494529654207929460752840450933339764742085280018611594596480229801299083633701910305639191242174205118225149806501785762566444884252235256321799920662242909667386741380680424769153431358591739141967038780600792029913147626704441822064157474527287068817852351774814610667096361611327330180185919714096926670313375503873503040367424931745330786117966739900531051553467629024236831420745863304822108266443548289781022957830994134603543077721326260553680484376526160560840415447771746627017333861335941821208511595716865073087058797543596178881580870982146528988257703373047890821243736407359744273467711058143270856568665041185767524962306170547924244581578900826487814629569466746629156461179580131335395443541090461721275623579420334880803109453791877193604792545646561422557666849862237879044234846220308148224062501550067338173663954821588965677493039645752898464683879579887369655895759514934564869609961872161384696346493583947875931115230254783782229440794876254239343564873586643901547287633329648899259285584156592883837243547124015513034524431296192689971292968493224979768917640467261902429606915522115602185755046940184546436211116846203511845806231265784474563051030205008998226929902481129862013496809538480687762054891769013976866691458796237080420835156254772072148308600151859710289929151885498457975572822891345785907256311573018867069415153941869867666179525650112112277273910124451513753243943073153297771270872027351183157530695008087316827995511664120085877957931540312795899616824762115579837425388521660222781532092910131876308998256382263660152380062729540500364214672015904540294329116577785395347007697830906712979827870337602190693729907837980677207321601139824988251826419156838647667735782521613818480942135966945923087635863980032071669439806623615863897400252561885951741720353756390690101394629829220317326113777090277706845161469564266763410836080448514054617869440527919080355389943502764607468298531314096808415824887902378246904024542346373894896091532110120693749778534458396010797858933556879630316416897863274160272156353776962479362349354490608367062288857611951664857868026440516646024692787312304960525645703434083686621912169055906446914351684564413762721004599736503630449866062820028810071856864609180863553899945471745925128901818998001872932547799913202790445017563609261277316501308680505107178054535090326059425478434826191266869460669559871827025792632171908757937097072751476983476268998384402282787715712700482154943070692355492586035742194842377033127801662308381057369755552637877710293401254460247182868758129102892962379800005016461820503084446313781051825038528871459446838287861145593281243410277122637263108380560572636684366997601239411952082898846610864262194880102759583362472700139733789956809634778881882455327865005234591820858990761611574177113229165488578665051658670152954454138551790141007815208348834514632864039793168383648357037301836311025341526135750769787901176065446654128455277770506181800994670830510423701317481576561863028523224530301256606008495592393408635640716072136667802639242957772569661237993783230394237340466491167917173933220542002309430141542728691600232759374379612917508160775124475222014937439130617219891700400428652629957360086428344336296816857096244018280374312959116001353034241366172401713276504652353025410474157316107923901771306144691182949898071360240666729702340114643804756626594459785295660974927696598957975957249658995510031955770271820053656491501320369756505103870660253814977909648808083377173661980814179801594203466570397372950922299113017325180686524842840371743682520566604782708126731109542925314089016330982657388375373686254224486259581325704123965026631089975329000327577431201718672705398049389208216470952643938590795326525597515657332508323916717251576498735784107654879604259945469547384067851936809031288305752238999768484849012196128233175378945711244713412026361689372286246513694800592247872996884790588650388451617704851880471437310321317391518878144390080238206623528948795685361680835036592769453723833535871371543900626761624278880279001287305080283441363452933221130182950147391882583668672855250544297788846995707434717845578883062898226929620201206737579552476076770258439189080379905444400604735236088548677555118297934134291245620800159379076804325328392594511296765504311368739276426297556478970115620391410968078455270294302763772273775754285157452065572210671570070369400932215835313347918855349412105046015127122820727476473857699531862249929347072701855741139119938951715906582836117898748257894044760073775944694917398851268694318396233798028659925846625271247493167627909854865791514716381966126220311050790206130757616970961225878744593410703480992385461746486044096147652778682073263147760154766285870969440986276881609129351826086760676823602728499908241451038520259465487988292888609765784081417462308573869440239136775469287116726079266192738256407630675729637086847391211374559095708538820285646482153588535920077655246287845397324366705550697829731155429439162326843923747397126554186708740933937933718348897341392140198441465163079025507142731278383041860778606996410138207980822269257238763043130619222554328800562766069139498723247352830764128189065294066315290816424821103301552997514752971853500575162872894097439804523976403598419739580449042893849912910106542671632153808212986564201654203690053426521087890928698658527942730644781009710720846268296105038375660563918288316503489858059518062549376270940207385668104278736083023943677468222683666115547732597923492933555522091827949446722196421041463607285349844874915951431238286826470862107047761813372011213790290649079644001599479068764785359418108292273517654241933842483323488914883480817374854617797440587901412504056493231667149006002328072647664090927398431903517881991029331931371475360160105337388607921267923023173807460932805566365790986473697362372507127685648497706262999883249181509992614214248240996873868831180836067503214354397351058456961424347667943378551050084916767668448772053531371916646388402589653006501253802990168533935838660144277484513624387386528772511966061328536744650323508015317741332172855469665237404782604693133730032941165839827147907927457764097607258472656895212700261600674123683734511964857146829412134346920994843591194426220149969859458504887666006260561233078230415696092409534373560724752342210545092529121693171506616936981498085593541558723954435667977444899618474489789826550353388581963531701953461622019561782779132898196535678690145928386102151068912594809077046200012478842620050994631802248334844623570840886345897597555001487068749209410154299486394523737819465740356779532070347928896307195226874017632876478917475818132589836404394155702548419833625404880890105831126726712180874898613080730849071391080163045879448207118175934444599804383419980193159421688530094011996678624553279018441056189597829462812208931731947335627094316601535666943629767650686191753683869401573436256122936697272803480508052518798902139527097136658552730205826996318971152175343376510564075893195137283657832336722961498891634179622870532495172291413625365120240774978460829091234904665284278132079527293108460541819866841765950245068990390550144384808022158613094683249781679066278373702985064570537856365522059816436370445569165572667456893774858173972223071641803196081203293938893632792308236660075909734255707059220189917685255255668869346813734172888139101992618127009308421490805170323957558200242249246627048370312797835652759646401596755952444272266276165477943881639783184656040762263955622693642811015381625682942281108496212849720890985789148829092587939302775874075463867519683418695991722566670322810245493360034446882515440720222345672516051281533694945935896014465607432289201001883033376618479531079464712970201807428638262575936797452175837691702774857243997629222530194329605232922751034653719927381838407228000026976100907478675671828587349230712850130511562326054159623678305589507769399308027345595212025249808914178096535604472281001078909931268865260266819453145601220761427358350128125120340300437097975696336246663830775062665533134019125431520200764683971012461304833966300910380590066451854730801593560865809228470648454408671635483082377337161950684529046253611863207292752273444828807615870020521112032282923653688083291890113169238004729112088387667657483850084516362917183143693449145716372466613432261276827271116189910544191536181815142862252396831308733471674984081971639978214526062538340079717670428616699959040299397996821033003672793783588576524000946430642158484896145897688481578818638802514869432771850019270707483712907724370687970192714426275376552993888969566121794128923756414479486138472437757061446211687123269108375655461301494472387511064186818853295747865753401800859367448566896867512871674456389575736453402226522625599458632122486732929798215561325117764717268204527788968467321997123916466900624551778609548553647258622061516014240452760607404364028691016627021994276951655524178179747297354049650837624036876784944052254715770286640446448892412873479717399015466816091780820755556269697861435443228582811483546830493649057973732544081898814065211813419618628084372118180160947907324177612730251865371095675557341035570760162052420856641471310403503924999212951117295299351818979443067426014225113149886641941437643898359489289128793669502301589527100973055618911074077652582329244203624130521305349617398541598504238993617165772465213086289435082066730005407768279461515102033184680951545921975541553949899106506887249020404021283884838790956788305941619796728613915924778431929221361371419192604832627974668549431796154549343024583409709329483389838120082723036545054139294685016222591549351196329051975272173899817926231026576200909798155793389622427955842261442809836117045963037970405153392638480806233935509936071146754225540338417703756754092697303981152759514972344553738220190575293497595688987228538362432403699040599178902847559575859688821699329201448421443736994230907542112800391163220986655275284765958858993613387594753430227276193243001076407631982705799877973358708911365767046027164300247394572564564311358822076650409629217449105917034017817850489088340517688240660072483414007030076340319066149787570367792298288636165806352786765110740595438678619555136602245770688063201640322079760069251105838349900322934617768561613947564350946880747334438187716776302256795998788450707737058505310242632778942052512350464996977513038700914363775424808527605707733946218734309186036509845754276065701389562505316860674980846699452605289798270363968885260678903972269481887602094674622376353262064261152192496772713023003655973725981294218001837229844744164114701793310279229993241038805134129631428678957202469558212019271147635533353422825865714025784117453006986023164596067405869118062783483621442972739868144866003819428563396062922961096083822744884032642448665611200115949883322765887137346940725847002067665587525003508177966884562688618493015390175026154325090802856458534754491676321009843191947270137945728958682456728931370058742178689793091334102922114890636425237275403718747137666032138876813193166542249631487449418963174713258082003315705755343993902195135674217484069030864635480638337095141836540256992323141398548113598796538604839065078908601430751511005688439064427718580062152410834072233349008514103271144042839427023699464592521293743721335119401397853421848748422328915888378132479333280507207350553959210261208867481187326832525917901222416055416742754362077652602951317664130948607513750521043380870250109919716041551953771880880414884833616457783325913414512834396345485844287190477290750249108913037862679392812265855151332839134558065391845348018465919847960159120337856360359270706728159470417912933646054117615608958863775623748677215590209164530813844397427040328920747820857911906603827093960530876965478744361571999570480440026001593040376636277876993004536884444398809050815695677602781985096941340287981288434361748678423516957318779562553874558251180380874498028396145281495368132696901023163354104227025221618619048423694554174033262823586826622359620909855456263151237737846117426592855154573718933548792534184703541820465359091633155655159222846967809328964911092043848186944568703604628491700610636499354625636681297915974763231895761998119358223315143978553753039345770183914583327412891528101359975120714389385327562843627512776386158995769350451499344943600985496526953097005427653513212737849266028004177417828144881598254255203932201113417138248243826623289859286255934873914140496191469366154788760999856348239692186069166557678686934769242725697981659328864922830908241294233976045981663125058171616166033630100859573878137400351164499089162391039327919513737704423039733397455367863400825864883048913796880106749186411146888162274388891413631997149754637578535007599865756390250070704826278866126117848537871979016054421560111544917984311323866524331670630653512154241193891636969105646609353172704676903627604786763629261336893385913832392071993665020966337567202358502510201467962944982251348250559312134729201615085992618686466105338356871956903224355803752184332444415321483068321531716609098095641443627563709484192551897561948200592158579588625019335079872624918690051328823801200262354127761900410696139452015313861596259118751820803102896916462968259277728712302115614756646100120527251695447771536823147330341897134943272344222176795830804967007903062714556130146220829359955611722163136975551438856841786027447518298077521463292768092272949660793962009507080253986190013510716228261594260083535824452060874842664085691469082567177018679930032668853089299106976967850178643766856439320092858283969456311403747823094489055000946206029416836026926443945080643903168359365900824981819486915900076933350356884335407290965008802499985705563891788828579960106154456305515495195365471065693381554034188031141652197276297811656579879076738316078151338376583770631213184626798657229731366361266358688247783243842631996251033956563858105582680535421668050562896149619204772850926924223132516693028258775090875464954829092646195296390782520905904797463047473036552314661841480009959546286319227000847186698573480555029302774773653168138712497458626641154940721805747224393278326789772891991828109427750079665949077754082872641375008133230729392006622012457219381937918401303453238687480607787596093055102404236631471254317040557701913573723177775287527517800799362218412851727772218849376797693362285177175754903247750585985831456623544703553722588576418404897558818339163190496040875577943044906422048618126061309948802125590251269363317124564456700107443757539786743003219097261652618612015028099952344887484822276843526405251901802456580013128297174756962391507896023909114374403234202299231528225885052733295398848706729970476481522907327084415964165881648593004231468565899505395637017003500370224022685559151739681853233360546200900803164488517973363761003575556175381922423946390140962650441616081199460195416045729988410496878597856195970561684584075612096075377452277219857514057730425058533971497980110809133284577719672947319622403957010469342777273269738633402749755762302366950116535400834909714257074783875644023385282576663475698633518758022409615961484817913936477665485209103589785936478327062387977506758029357050609161900300726728446683149902207067419702756850479599935829471674166620634812184925425457655056080992267264272159993567494807392500097724703585523305139840466140863712574632626503051792730358731143993493782481276670845435365911665111998784983585075278652875824252907861098081233411943222637523001158116082279691508989870720649683045147218707337314275540850002177064455787325985323768781780651970917603530558172740594128989752011526456409012707843883750095908562875346807250724996898005439817083927510674635112872669117813509510557243479633081252505745606137511903300704524539808054726803814202657607619954061827767278484027447568542851497161759537093477789368075405709630453695161187770783685388182195834337902418200506902729580667427359746951179390184453434730020014629248276005271713529053804892296397163604928475361181249217160749579259939687802124161714323520717383486078067193673940790990093856565998159123177835884312819100738643583340548837634453226911805171470701281434913815701718841635228049521988408573248113279227800163360640104888937786605055018554684745138626254335366935931272858034801367169729608842194757282296040972919566974441544025560140036205125001071953963739937509694197097137039503337631965783122168289360164487004681143998865553511506872311715935159278762218478563407546620598903899386345608254449710562502280026843716974927498525106775341318398934734171942221252467419205826645180022763715700028762727958817667325999007619553856777416792550360870292143021317652729162808187849451165853804648944313401565659044329981089535868876262650959096956246070663967172187064484333462748449437246275736320695813195424873501255702479583616543366517775473685238068709996477891634213721009077136279002656808561561240866984394562525268807982603394960642880220044361207513095880475268198151662480913892546966030260125730287085619339707288609064208860110322212499679634919712181274786100163487349755266639307666728899583635977828337854183122966471013352110627355971580568187639336687583416799179938316449441059683552416920637663299837182282333695323542016053416568499881518487586216759361596450116200451308356443992583519555118348962316790824930042790534910762025488973333376734327043894656047632797132497341338484985621725458384331198565082645693462203867522630187417447810520593848923168719558358237529956150731459760768565926411791857093744321945002444546010966291784931278398917074498173885203042207559019643445829319601669436929477276818376007476971448636853943118057065963904424954167042979574600854672084144418167759190242903118780014499179771967568088546650438834344399427090373932769000212278069258065251132154776779307767742270232568576408659707321620193997542594115521325996329590420493320976212106019940680281841001124572254583036165239565453840427021837226614092550179701420490545960028881999559319584854135604546381994699568635883614143441523360383128562920961876258209752077214663351071862130168335804904841700210939281164638626434654289975588143211560334097169562274056424152792272330537413601259726090590663386862418398360123218893700580695826517983659510162614902554265808450233896413907044889787911523516370375402408189832468830205333951176120513515059338146777963885370124204908519105248400691292039691078749563689727382481103998551089479019472850737653587891238687553909074421327354393282458009212067999842929865400590889748145586355545454751839716975350702194558427605811730010557771137748956571519168079234172001580761069124116101707051407656987412075498219440504807514009695442588977768494588106593754998659848648570863740458253268511049253456371588674392425747766729581645414246956302149971309007085181288871107642329760862937450891293759020807730275527474633292854504094180575652950269868735583392548524515279625768737097699128637655467192678872993409497731808734180408991167668018402506520339568688767800140738749085249469610978917071019611413416445178454430784784187610932843878744701744754827766645304754435440965482070590679721454884370948686675626467912235441740510575801970458845125086824322254237157481268557748269960819861553658920726007348517466298712006976600130697198262979437640929843823640668436197797933223390236083396404764251221790463753139335314156177800363641534196490131497170112004639639851864632442994425091000082962877033651585348123096608527516779634674721998312184140967144789583502994772756457055420935702152383977474734917373473732752287014235931964209901687414473635976351063673768397572516616544650464164459152030962952143101228995638279871358755299845426222803037031416222458069203225128194212689984152153030461647260848995310220270323445270270778993945217958636343336573433419482881635424710658640554138197760731674230057285672274229379150504036423351499414285224555160360457015717064403054965205165927061318077226352998672390268789321820229959395972776309932548982546921122706132494300762520007828197993946583556780171183655902500310584259522680031352879629347414830869748349707436465547538401982991980208185186305271408265414323482149650714762385726489309442832434097295299554009055655197813572584946389214596691680311087074428693615147419568249668352738002908933465726605173087365690869356309358385042399905446036686572305313234325893202484813531902955493165754522185972524918429636130427520276391578975312397466720703651767231869461582468578985153519340608633640197473034227177770574272653311352437406506108919179707851813352343991110285633159185552651182016948062348986020263961721269139409095891222333031371921024180762588565703088248930857153997872917346271428156330779071460468207751815049919551998699854305336332167464669881771888935514825817335799038084319141219377856903445739956911627950249332344197678895506284871857228439442528992651165952603338458739219704174569600585125534298309932630049302443425612930828653602171827279099285093907762741065138252902401474329655023029252137638523094854589301632324551115522837558350083831182736505556978885132348555445237752296046252669915218774370395047194199983230750700838884935902532830181798460390293923648687754549145950434713288554696999197620493306803605731777786004044950773194811622544086876371233318203883676718280202068470113822187470547550246633650099053986304881319434967119024489743532288863419990380939722411329042032269798458684644626766801293170284715958304115525851966837746415699038551607235086131621956450191133860037219465471447419524146233751336322271842207419958735091528371384701702269197281005577137936059092532075103775105261755722218255012512594357478201460686570311766137120772397870265770848581365249982136797186222281482258482223035644449423634469652504234670702659596427294767083849124074917286373675208905825032999303815650934137033919760007748948787268936744434194145712413719041535847717428001999653026284350549754364993323170873893460331595305796190147494674458276076714493733005204336636750352946956031172892170370804287306466878048486349800136378618981725925200664813244823681511455471913567883544713050388784918243943499330562970647468806081109537945404460183042528106668042510639394584033991832810387545567292173994502200632427233944565302378269530060143438245097943068455160192974653784073536576395676033634179509514309059048926147702405357705595210241205061272044243373103705142108642919938807607747374842536032891178741681451489450738319027206908438733158104763957703277249615523845300247054050822201152162822255093004026728050778193091411890749340538526058233245255729466084962836464259504378457721823596473686459475791796989470286689944371038678785306208231803422082947792141230242006203618761427377526388493993397831636423440215891956140302657397843333803441559446095497228792729160827227327572172441976029339415766710962582403919194749907042425464224217606645026852896872568948355281615143676738859189384795091999007897748176946065065886627918403298121980633734256780492812759606190436026185053987602896278295265729780157993113979811307586666074879921281940854839401689949517143352820193564350809296534846797852603102363675949981881310023135689904189184692160115487784498206405610555547609765143688638364370246715050422453321925247068118173304582487393532718628754611568348435134868721664544583539503751612946349682695614296870476154467007604453943949868760815245804145513022596712497565152846435870120886449263594201987020182676368801860312375895003690214361552868250497128717960363342767403918168791130449485849797907398398724294968949584664270238763455681538640315186265414632246914977418709201842059025135959335648130532165256071442733386348590873226793326395608768672742539867124555956787329740133200263540924191173311134725748002903976254498496335856450772984042606732291540546092232587510047613531996079495468102871218258482860337596228144967369033525350957994300018267919641203610597257485453355640081826822200940478003514270763585623369342749050359099398382483310064316902964113392937234487213624887306445484442420368001054469023425575151784676947271385974438908748925220061423359702230001253811442154792236264948424612832787458508555491044008372844211284475535456899953709118676327699589977118757471588718422646835625690812488762428227943117988756496368542993540169795719949843936990286148821034077688228114588878509456743246940455068814814002913759938638697047618027903548141567245303712051740264674719364476453806238905808942749034843765183866633571681250250658208230617918617428569025569046480836336711314243559853955091436568441618532424845954830921368856199080357004080628958197880656975874872387057815752619841532992288952492702348362305915045357916659207135661649835077206487183305382380194508427696259216543911038401535988074856482354585993818272083758349947008470735797095762118376974064181227524157728024539298137304863024367115326652489927438673497726074710797932472247916630619932280508403033035562018352770862591784875184086658433020379169600321471511508709935037021421147242872693284392550585492630541420279212094606814400235000643842379879862008001703038133671170298427792884583000377065079100101894890594397737440957139763904594216833315219233866233521735534139258519670511681873190889260280350013490258385563004423598240813366949901583699466801998051057284675023599905400523652446335882687326612132617762510706562261590709812324330876745416881152842902535924479961691009797297903283680274205159503982759504924716209955109201344378355232946055816352228489801724236114705255092217273445018918072377557733012598058283606314678921449384695028683223160662349279115159404068744677754117195575507460997059953845847569375940276659265429933777587822405231149331391274659011043088484385631296497462420709639131720419719779986210662708819132186683563805963828118646090956776729951673204019333049358597469926955158344358710418165472072538279080610250396374487368859368151719251934901406142814434288057323493023181599027893999507876807191064889567904577989108217380353848536363686756751649886244959832746782863397180163475772230827886374709321041335483855277821163813172949090632712843606387561587666277190057677460165263114699927754223613562037941635084970256182831196909759025371140347568848995307298720135403401201108728214862668411316123186112825993299655253621097629503838981205463184524941493607297038932851081966998160382009214859949924853244653107807643601799109150597108807453663393436223814989060508405868146513868580325035895147737573542592118099069998979255653718671482889479308538374212608643600891431506537128891688588799693538697727163979934517665481064098275051691234230054785730595362636878230602573435663134280052368912075940267186406213549066428017802994874610966014994973358769124194838535650962742781801279375406515058205199053889016193892970476993333591735697809119231744433054302383299779708276169234492202957134303152196726845163747798360232972927456550664925595179334158686750495843397786298310848543154226939890257323894046318779536196616758459186591478743519737815857763761939272159601287496534648855641599451427449536985781987573575611937664451791644733333832582222097613795945349188803013872662246767285765295186718538490406576312538575240179557950577940788868974342568352094238564387128150874202078196146129007034942638411098153109792254740333326691997850307602423485324595444063841205301630104731590169618347943090785583359685863523860135875007823856120984313225543787867346586082313879808651530573592166698461589012671698258375856217274746802757517316724999236762094312699469768524228089163513205247751380019742816493777017781455989274190846987832237653083170390427123090256615946686144554353432237999466895331900684940066455977218872333490322168853207673557610102733033538788687104701143271466365980382044564827593966828661037852417369395399382791510943629067065451511700900241695155030749900406576616024781285856431936752731946809943868717730285930261669639892816817939053176828771618920998464947577358509195246247484459991975991319657304129642602452138672188581270822795949464444519221553461200312665283170635319976216419481697638284047136464780631164220484742059487753885692336478583933166552093948769084551541558750557815875775001116890733878153827201043180629974866594362746334187828617406224923544294455950121947496483813921132513945665527605041657637947057113618648540207775117986271300448066126987847260142916274698214293648191491063620637384124350773684785540804208804837042802270327545354557660014279999848040486214547298211538898688392805454713833246753531326188177466459039466398413981200993989332819081847195326339858737994648097671763859895569222747550367035784284235998290004901290172694280737308778229046003372058856505407422169924120732458673468115235827571980833485393387547166666566957093752204345417259812357695031310024239504970637747517079207874540071218657218446021377294561885607261074230384252214681993768536484542330190959006908620685019872796089012220154717761064709149962418685410125641383003119295399753202221918695467204207776832460175346979331863219098707680481897560785777627770086217639972488188881144834635265885621653766415160989498167050867127592694430787450938154819926560237250327506935734152750601659239998787154350345110565364224518331097324364135926674351997917293179370502094033373996399273457744407960574526385781143344178490754103355481666989545322189377942144785810838438802696540439609782545690382480390989087014470245574788038977882144196663580825840075974777488871326090229687196368948864024723783031504396477183858494540144418035800658168451978898440401265156059037367146609761243153721975244511130379084189611850046953666890718469021775967112183539843716142609201307474830950521260322347641121761456885262863305512071530016505125010179615316339203513262941263438327403192582314661741834089404872774894267527031536800037880892993387463594655941016375179200950101345187884317288575870199555310334389244036790079430168068217009868456904322412428616341166361216482609116224604630352679598132187102663714672443277031634910932672052260363967774920083321264381261054369314050758126663918048097382241159661339553522027664054767037276118265773995420725865605785752008856001452031499715960179512583225147058871164373675520570691853881091973910087025931115294003346312857674619634779449580893866764231916443855312542720377387557686326269635445166715509227181156763000657491075990404125191536624393935886085302362963458957896493857856114907180155786555834838412993191698440865700231733290066203444838404256980069871641803669248892990551344055300598383856758618300259805279806909495641677582365970308455939387199167700676660124941103276707408301483900115444263878854139241913072729848623982425670079208703376925526695911634013511045082959254206438103685421740345010353919534119701021505133540642219691554782582369889095820383835968633829018460984059282095497738728483308694854256995721464000219869496582820764009747303007858510037484070631214195963479747198660541812319485202855728374629337819676424517493511604495581845387436744007742506970333218392314869066595062397872979369421219184546335920148954849772487876651446385559175644594788116493354218502565450649237795715654586406624517244876703560132296729207629189149643440488971064194299032027323194095702016712112356859539813409711139665476176065668921833626890453604197988305681898966691701531273244920703147413596629179440170454391364889691106788966354693545807467758788223049251741327802170308153922876649103578740568455483311730620282027531407180188558459619000543580126112698965972947074832591382176917799941497643760367174670048282352827622911901379708580356410610837349667080654867649152969971121130288055251094099509046180984609595151966530536286231702381125351522810266839955717817724124435632595734920371652613498231752534849655482080009952484058558778770399582648464189766934314681288980858165943508058746534474282563930960528413720033279028489262314644927399929207314159033687360894040388128276954095402843329704821306942987750708228338374410064475191694911591463005565923326469036160321270355087827134055956608667763600120065797218145457933528056192395798406072131964793426494580806425546628352612876573774079215543310729782780874243858976629775803390074310760351229716458303813787400389012743647094911918595534350323346071258513137929575792449446462711398653310518410902311130407170853243469612346740149946852617944671930500820929526024165846454086156527455520164003926206819829869878871899841636507423773858387678588707215930817779495742157867852588748935261078881892244349772610595704134223435423889055410308091551152581354593185713838259338654200463656937079501555160919447270689463016363516041229607253542547227012768754271041600673674443063364292057469931155822899043673003176223103173249863074668973743297475247408809859021989724322067995639167190339637844673329258554699099932242709563611526245111248754488466990829976163176604963863039182678017201089411079316828251750091000206618194021312218460624652945266441338267669876822691141597591896977125674340170668963914352921670486220995194756575665901243459435865536498217353349971975065343139405926939642462138624588282104342078745118688353150232390699385136161169650805849824171202568536908257606831109097112156032848770625690791466466044995110339540538637725694632140634793001422563156547158663448878814088772441923428244204406573671828808391615826443656186023674106761535557949947158691575515757660237641953795999115264467833303506316510085503817670424294424377611895172903195418835587943477935301792341353039544512530876867372428373040706525601467519993127893853678318368279595375483139113473186265982830612489463276158551961983570254082883996683505599948998791028291606471572041553040353769083679807204988974924029766299492115433113436250234401095644682594945678741298988845089794005474595574256707465533758242345438603765135416080181661729047790447359419330115671349034275399075729855193663114977167533129089852333465391023235997339547601955615663295592694338008558629436693021903742444108857941762492152924418625702451309533025688922783063345929353909150711902762875353976136947444279065505468761899368015377897315224487187477805414746703541445279079839950467090481261018048616223604455678449152382140172991386141524542789852463802172006108925599343044270771149967582624993336240896601108377057882739732341549141488780124322838528545677341635489121704707066622833764971405311974523564823549517821593272908470060783707348991322247666598477599529027060779711794786645755609897677293352524831935928452552268724211854622825962772393187479697506137069251204164129499956347485404343033720750172553551806844205305061253893323178977046886442774062930418048981298508877573206106833302686938953368799055017443439796579110021603024959356753639043332988250804595069129949610480426270522478582906177157470594534758508585620056733811549299551477093054216272848895829396634391179325157729449312985866778781249359011463652291125278922155570865039627672128458738571187759457033244204295189653034061579980154585350683372727653292337842988588434612736951268806394687550835859669246314868893064064803789863081358244318581671772041779723570410348025871120247790862638161001839227518048644388002326507999138522777214466098695322741475678874820978215579759103249256361707480112266933733564332205772682305678493794668924212135032293642754450893522244400518699050288013797316870050780962874353389606271994613453567857512589498753391483264630350932023712246424912656655590409240941786757392963080994453091367189198107691940640544532477044476090147765325725230867510975630454038355162047773379716744449651460885709436714288990629632848252873868155294182378657599578110442534592978973870758789895795093625620308269324878321438869027102126983080553183437046970930857924318155128699488021371731043805278635586749547898121271293638320792659692198927640809283186243848775640803114706277961623047708309708231209961552775934068038827993726230190897286287899015171280512656945243395195266181180159773706852538954237773437200466257878791897299639894551343199297988941267707199381040313949728422078593528262710900169333894617596656688613509198449693540864583532325427542673224579631373769353143874604050636843901236226564186778992923961700948176137500540746388292346861062474585229285445415837388896545738699169340066979614117523093577625895411483878973509672047626293414342388114872054139855802566308458581620064333240910084540188825027147963415543188962114344763124445418480955143707823279102428353135621082134184219804280203504323269777922219060222202287566374684850121231749903265738893943912086679118452411875657271577208325813796839467147207016906076137755880218544149055276539460730321173130437265763404512916258613494135973768712547034619967830141644979664906032673258341146936944641099148021724822120139747574986430721361659972429287154294200331871082931442794888130512149242045957928091877988767817173611391939735167979094994914103371821276877956463617337913715710858045633492171491061333658294431636224665182094178925262479012049041441141375848678725085940976121374217606984802130690458947007432406616675790037926545282428731880266032366066580017671504462670722438201988530597059347676779703443585411216086033188499972539282876073820356085735830307309362902039789155139332942905978150460494718237116574711475505191990680737514617118841152809931929058759519305337298358174637753039661965527754706947226549771398757024401936448252686262526857834526445679697437075482873736725332032445435822409230904873320418985845400747059747234563419501685571747765199162035735023844253250739263533067971965570278993268954508900125348547500700113029149093166485752210434601595554352473057541440903209157887411489399925733474831526563675925725810735855884449427489301967210458235995285169654115073053207079052668579095983851284994136726762872815245806486375116414761932804999526444417587256374783712827049212114347334434481061827630352817256652051841999995674994483764153291889474802968683729387715920278512897288526634307217375426845811156366415844441931274740347656922780284061867830068481470692739548392422589260448577766580099501179453979894851585026656065942919199889456351233816626367226900439077690684628726152231969089869545529893179616700436362909968249560982461143773138543485880356711209996414167073942394040353858281788674188529628104734792122896483936682607090232444490870097013742909491362601933530047582301814098658589689373187000631968025793720429462532517413550580150223850774589123722405473252189883682406999501309019055452432683658333096756769659166483718947241962728078336251416001131980616036752316208690644496291593064290595458424769872327621111834628770228170744803551088621350791309559402229591587889917590188797841166369626658400422303275273023954021805184855588962240812596311956278526255588296468464868303711516565707686850130253184740166168655832203295784950427591485602411566507351860849914946936372794407188559460445636462403290593752479126118318418958482094781212851431747500453429975365572264702081992834431411062736865145860415475891857516845392615603022780873085052627894312335245041234294795794921333494303574476510843603935538381747931208845534170166485300017551379185741515974330997863531153229046966343513329633338932146686000995584937103696023505378062548494450336831744907542346825291924823889071303170713738465827685659843314629422276375416344195601530845494508969062373975901778849875107809348710419203934727248225176530054454397265348667750178576731041651508893832659415008726802715447514605741860395749690878819924298706747075019309128088437642243116584888409343031015086699951647842268162600423707969421639186126911263442431875480506504715058089704303355252913140209924863363284033202249041836643438527225354840139600981543691514329811326289785695972098406697131199933072135082801087683347621129072558911530868046625266824765021154562918409362809366838732096800600725380788842830880974299142726450333509843318957289542347750297050370913625659748393472553722959332330599197076483909341056059622434134905428056924816520002074534336874631197921672416539571463936797116037178318882760840476958939957902747992024896054669507210058617735652606608432939025184244068469230086000729899917048020797583226084060128804662018204964958491465111777072743089859109858724816788299854247808131150890332074007815005123150054356090447904686976247059127808617928664834079939755177459859061083734387923867617182584419587557100615685018683414034426032972145993324879412839839703617351135379638143230057074273676222819202258505940851140007278720480952155089999784008246447177375020868019150379498299638245819229641168337989361585839251642352167776567875013500774824546866109317217353891044883803717785660231752575752032617713756435199100336674511919161805021711946860025453334873475603428493672678780761248027897840259581259513576710626563168642220475699275091458517691938474967672572310428469867739334337336533924444700334327688069886390061966025431884985765075631011175574365645061223975693269112148063755059521005267908850826232703942833612750156099983143864267969242205801592621348533286619201972619971974324133515841382557334861996741244172925760935053115605538938793477152764430632393703585611221411500702976106946117914372056044532779007175806722901615672293775764245489298012871919145258708415394345046326392404173985490980837235309695948232957698159929556284054944462977171453654276641861005057561651029056337887585349763716286026775772261591492246914410672201786065460466529096275375975577056950184052524528737145644003864706721281517831790673892130890022198169087551525344756623878346937125172762378418189730354401765867542084222931901255259174760216863490377981722807875097851218188463544508036505243905680184547038312834149099620086975718547255349765382985507166911638739445471314933463506212018418690229556635514164927620791638646047996120140813947982222775447214215161822539520533990318688792892327752978034096427533462946793169374525408470968371214752372457763326816586194718211384763375415258107715844794272748701062924795157219423944888279060940106997202059348158204205225857369903642362878169408838984814486224760230001732842933698665258798336609664571528802283839642269333128355767960616906490216640457721569784384560840552708278107032084358184816168643654307477847923902095846648220707839451947516305844683120595661407596983581675855236195231377721847153849644896110225751808793169389037022844972207743909143167126853811400378241194450663301346895894447604498674073793157280231756684568404381938464090593442922007014336999333441454387684728349550285277924977487831444570038920518464070228924015006680563514320873581048855918917343843893970641281285215378427576803600305843445900833748358428312206736254812814607169330817430327437557015076267149907436859846879150230589576187168085123450205814639946175559314801636642218828151167038061897493462550296681750813252352219832518694686055854555641969329875681635689946961654653107352848417354501627353787565260214285553636733978768093199487233620644196946903001443679805761635686253703589517172850616580793672169696446204297738988517605813385808862682070619872596677911461091414647846539804189392637421534502952948450033973096265441004144989651797590318885888219490262410265038646578966822283133914197061761628850698402710530248797316844525209944762434106199316194559213045208712759052148233815612883224134422705529553500918727537749381624239866563235033726622703084490219410121983969769537172103002010440457557001433123321420943700756150440368825334306359662492046368538720053858160987084059066583214426488990699946510825700620074157796790981980971038545768986060703215482793955675013489487686757387989197924418936563321784757339349247793924316714672848813005986439292346562048744927140454603945157510599513073744855782798922291880469191403935343685886848069666501728838667693682638613406897050737405551217679925303093312597276377843618548790266427006527260641079284463497873682494206108637745855851915278613509406189330656455156054114551408907190299918967895616253010222587137081721751772780622233028237442317999763588981065384883091968782012824640768753026086469942655614732308159302423579472485073425998439374110113473157252608525932639954234417066985407240605840880938032006278261909418089062747933337852734439281580231436738882685388050725581489667355596519289914302709176724097929139686248246570945860699944351401312935505507760079558775041913289741556278431740709950683792138487531774410859855029324937715043503037595753665515151116046359352789246874300847442603430216260995362974229522686438093033278379877152813684379308662098349275585749417804871316416366364156867830158131334406230425296247344871530852086931207452973306058060645980365630508454483579775191099499725597811792003254985725358127832959591983308464485310392745571751497878724016569341450510370834019543214676267956776857887960134242080050957957526091566496353003761844698954887812700623464203414716617118335916543514254647693032047945720447827369034450470414794081702482331722969971571806159139146264274583797988820390292948724535772079031701576401906931987837170005020103756821817936202634388105001092947166986970933087923365628705246103244528242075274173433874797734234406458948383017595345593279813501493503794523327231284116338942170235462450148021782866517498445090464282050485487744478003394600095799130447213712811925854059016334200530254737317746422774533737290405193913169140407219787101251536015635513065843652229865236706617635720249778523886899446221098403578927209137016958660852211186061179978981951413039205761230289787588450308240262773106304293224340428314992252047056695081688309873614597150200141308414544753116251927656960659395942086585985328315115827207037731872985318711352551174801799614035425756683201164923595849254233201320511096953646206502439786512836307318877233379014637035539325662488441242335222103343477052448972285431126162703980344489059041187904591294447696975734280164805006534201492632618793484761137513098783279512706504181244287925565390683594485164285596706057723827634460061917053743266030787822305655451312619664955678117321508893063212061228704172307519478135525440671838507143903507116725870410372738149443843153815944086615501748777158921404492656454767727290185108299631779772747794809278631752341858055871309113607147670735098952749523327771884827769943492711658484717708044800502157359382019936598204634737262964382394447894002289991661950693784467512310611768118852743071947383996416309030029641255761052304883367310503311621062947562436663148101063540672300310933589500821812630394823146380449671717294847796044947737439090158162378518952605352086558665268024076654417401516945731142050764972739598523254833458430933789874436419853448080325645214723134220246772548167969170766043487684233439103862478807889258668729683943295688729321837831466655781850890508932529119097261233138801344983525411892035066285570276981417811838730723867057736501495746149465518949609287812532548509748275788690839298113404743409839097079208409831555484457469944158419214758183085196357534908261957425508652886251886229496641523194632431317242147803126379565641404841432638562319484146761214788852897881724488507602310602352253669854592342222553252984658764827468945376698337349150132526119339775530714215662575039223139984893639763032201787132106791074195216930432622784385756715278918671436257358713982517174004043323106669598332378153447888953666073401082344769040475858150700539378967637935809838599788628035723930046951492159325372434055122726447203280729195026622356611700963498028632586404700403173144964704328882771039298991951318544208152680324547099050284913565690872365541248283573694897497557752482184773034948843947497993716247301074069474658737466065595625138391264918242248298318979946664270568142473718013094922378596554097014520458844582407240556826396075118523211399228997309632431884359248092469886167645009932685856509711571753200947587556663672834858575919002200914624414159455765515887673010850837755362831784723320927589080772762590531798308482150676174930209262621859234158545492455968548504921578822362886865706303882586823568948743743377500528101090202439841109132943434015271248784615878317923068708348731625268063929330080576622968169655921560976312997121829224958433987485796887469677301925990600085402639924633330522321609485317068000573893618522377922749631321200475400859019214031477530642076491440439550850809467005460964328223818270790842991852622781708856063894591614030123602558042898820997834785053993355340322267427742654981887814373805486356867771307234947434398324383344722926194000737780585903622048384094780197026132064717450969056766142750510068018101276160592190134836141569004962609222218387752136336637217776133111940815659771213934961759601769763623006716275491004802067103201099035111090781179608779911634976854641673031125144361859427993752207383633645304836600734948237112783205123786758743044536608264303365645195371120959202864537242952007043821674140005653773667690034966570246901154434176953322609534201481955598669467715983863284872190346432911827995184803845833472876970169278240326562505264324769074718788416778083764495561846916955837488703913833042173609197396250014066684870750631248800672396315675229773865332081767255613131834356193521327428295884911763849642023023450339913901128302835489990583523460823253554390042709104466491409865262524084089361743724522812111202875302835677212485499320329787205233454040484945474623770671974365238957572169907727855412538243266484156892122740537722352122137684278872653059521377399580780295160490809902695876844915363727816069466114179328992602732469469573774255913383577204303273609558015559963415160862763922177072388741567097308914239994343920604419566908839276578500678719410412761432951499348920281925528214211766511950813287694545237283535859188115548562155162781091873842102154425648385884502150996104495089661580684335942676443328425423568987705816527631043426470667043918927208854358674941776580135524531810466975372572057721035839071509694145999061990873173278179277078168114808467051668270692104969448214856712225570460440350630756503475180459308767169183217558434669532926859389754749540399245402912232812590337584314050894579366281489066820820398506393256400306126707353929383956033760477683337003503690807011252887000004362522274405114204746627034520623002093961766153868884853614031860733968407596478716713220223873229239296854607555475261921639276841961466844291298382791384487266425837093716577992215259380383348602910331969240551106012768992398739387009885119573405785212745400650000074261517638801447226987950176730412578748501828397259293077076505377351010671024489606926892233269859505292611041523707267698071529116081485799612933701786946365246240328681487403484194892092701864470001534915763050380279184539180883408475144754540199771834863993671933122275992650185994049568086339408397750787115822439099419395522336259938376959777996153999124522636431190478000036977271183348192335610940281799433232821154867387546445728967595354483623413865539004921425686465848916017050453969327811695207125060573777834938260799639149759566649718868821623098624468696714875111224881474435852854524153713936421398332529408004758198521150859241841591663714387004740394381308839195681008335512373034945658036469889900250711389027824201436766635406971929102508620567705774121123094392193225321247556270164734771101245598845752670019311031940865073560484670309029889431448680916995635747731715840670709494972181016343078712755903416539931208719592489650846362957083103775079189480608742706618744525919430994043025668809787231543194651932511416805078232886287923199566415063389552406116517403498648972380280446059178052185852200075510019736470891011433636868144403762247180059849315407280449543093751654328695319443688656238137229577660504775162172477086964010720575456400667439486247334067493545821756537666438985755894477612643958853609012049533309435627494860990985342031509084414127943304196130256062404094319238325375653916508507856727151267110418006075434857481288596557807848009278823556898291724200259696341743373339986880581186807268437490374473207836007297836779103942203903505096354638988901229374577062069817426588271682708877438934673956233118945549547568809824059212962029585203330022399275891382910348188804391273944296636634294060999257081427469906335521044649991597668556578271969404257127903943841806757331704766551399582071706592968897703064317312622113688326543452070714317051024733535106399230475973492744681533616337206018470998001350463568643665070272115156242953779528234767950742527846423781305540231173256144559068142628420327514956616312907378804106950648877807671887276276886762219413399135695456855227182213850733366164209350420546675509282012434209990163869029155842750803652467768007468982009583669572271773928519940816060502368585219706348916501296114501636220998983686745540208506952623853496934460675547096569058872411564539578832506250814924037799680016798992539593307394720792012702599517758043758549695090979955848906310377259416877821454485833363155164569993214143459877868719134284679737700971914944193851373026186074386035996797296222462957931417810306356117669057128115955863147885907182353812510036231033359655337007076742892172340251337949888155455103642631264888729815011964059865531403862183056741248017864913044344947144586124583232115912635992871762562660787197477796183450013121346846441732580581854146104968592005881490418118600407693148881733302602398452050941976590454240176813594490166621366125669272682247326771162748974597382619704725758630132976550218880738004833374574401514865403139656497881270506737704811995441210675904641993844643829738228595454118165933344392200127909746119423409292480425506864491051460752170383297183365501958898887042297498442636387577291227264010125777486965164898849115296536357931151374737623975844195253186347790728933743797732747904472109105518382181165329791260899587684258754982445699478483745829036287408794822205842143646206759273053061333888100579769787669623267839653519544006098460440796292640695362084053714165961013575033377987750934014060498968274676553429872257285278287265498795007730389982220521528729183148270097607995923501714517782671595770194391263916412287556490264661604157445039892746258401712128126833942006249476730471601264114665944380142334093752638030951389762073745747456476217452678594531342414310683865128510564680028022863892295076876623135083105659333532553342205731561211542645216506390670526120917984097957753396463855221231991542344225955597459425823778716144959795362727443877999909701249865644346652011230957210471611564520685024399984537753143118066461781981598112033051936289842516650220885381875240824525997647993840487801401349837755262599306937858093153272187533844978388686784248244548787839361164231565287409024014908290603973357086202254181046171825786564696266406460403736535609593831636652874467897559834910891011434471307040877514717148172490831569276398569777188211260893906739896771313365504317808661821638559974357220656304606684141126385036383043772064831714227340135998595337537102980110471676596539351884153766843964305776134230674972153179739674186499123569821133990447888243816842287393971514812325716765654709540344632610157415850719687437460339272566317241313945484860031873889963945688159094576225207835873107598131983522292899322518601049805550955933840367265653653712451393389776574463517673650584558236290019458680410456180940545917807677686106553847780074760026621268231144327160580882959189172181555845645538931517795402687553012806018553093961752936610810431208611834075592127693840162009110002412590820957411783551090061240114905909681606805823277576743371666891705116127796822736033528529486929760327002241331703706824062248878380058108213480814344704083061286096688648873382897485481813960534683800670142912277545251340857875136405827750519277718756202081771349963487865772003594516748278535326085000642601505767966138868598350504350466282356585117436239241494665186190005819302563593736156725000168913898525062310504215159467654365216901388156454719326786036116646618362587666560454825819820691485454548240310333947821467277225133511964012683225090387409007524686270976665811026042019100577108089617979870307957492947638783858181341057681967626925083093058711276248101824854831595267242846641986105261577841502504583844705567996705280424244898477328978607874382227337687992466115412608748881245095731689799696917971978263410483955406723439292842299716279619415186451213302094572013617809775267830035858409282029414272820557184067457589308305296684924397553972349813713869989681291875589646274633112929141450657897544124181049103947237384118199856420199737310711349579916129230474528536142677805639105494021960873649421664171911036605441634780572336369565749421140534964670274334858760391840963975335910921160497869756962126417946155628562972442943251663605611130985529954381412622098088939513812100834428215653836707731322578055069462252315292247818681231094622692962395102875698303815419516554778117070180224965578047551389906235517377937488378835957488243162465342168136880614537173477717045217836419658998813498394528004762401589682105829909134374195464099477666945820043631291781410050213870244932054636745087184066328907798679921322194430885728873158535978138592733930317568006795027619487914057890566774926778526820381954960029478782652771416475963682988124203347923556996294750150654737533756264637978744064805702373951691017416114008332984758966555119326643442364850959451221869047083434206490447759448442519711768952730435454298936629653623592558484359022363715171920140710704030601115378323807891456355656063798043737051629809265514662159226949663100719169624198332272811971289769336041237116627355398160135543764585664510548393002409866669060236609849194890256980868578028462156268395260533009011024563132729685512802881536046807333731209672947876070112619623868639639049033240597561603891473204364486587494982015020167883995547452613394733422005549558473946457215277541651199041466637873212932197685117579712302183773385820342196327543807745103993534763144252056556887206057356653605741740087519435015730670580842572026928790752221636143034808397585792228253056751463819225771710880476131863401600022939055324668186298883950168835395935863598221429573447494175047249030890033892948973398247228060489467220525723885274806069855010098898617981506133868582184197178695704641403779357716313538546953927774227064447788562721956564871649762733572632418673409481998762537043505918581465958199697755408939006273552282011726188492556217169945463238273088231281868305358425551060949512235577645765266758398597190819594736611407041301504349168918740054372775130295946957443828966850714988175798914457238319176288996773679774604437058759764965791685067267871305310740514500070505115145944449407072595509115829085904806269523618652042282835498167510164045262993458976178503390543712990368136897996540777489020618607518612848025817082610405536022476895964275839060587704574181471104828637899420149393839842411186466227920016702682016327054985711119342240788784164120750027710677711806389277358113883471691613387200145509785287605903288812589540117893572886441193761139341854442690623624269120345313067268957698450268900662915001572932246218787417991075985701011884598671881564231187247050231872243821371396383923249056645131312296762964119433116311808151882328866439867638384198888785914457107813833459452550381080616393752375471363341081269321895198089529109907561022653164277838187115750674110735537409558613739173536737729264174689497820227965361994053143408528432504342494568683624463956093780746977451481725438089629893393911652612129160740187909046972096825227481354299917829233505508672048209611764417261600125973055378798278548706245057778203481177611067228190756609972258307553212048591219416831167714156905349970982930677022558656766690455778178883248648771967002579697118943189531036145627249775581354222095295330913960725209004825047047930179567341911539510266634679297803709776612139443690267559805777329818387681103404715467353758385368371190036492361695645536972351830625132134305486473430050678254799473358670973099399280372050268556736963200053278599135218517663869366491908354442500720672376662505662803038355220195070424060766956350340966972691770251546493159591512092662114438784891499143670594459620887703281020130689324509822844022310682592052857472611475913321800063438502400438188504538592239620032103328185952369813115331538352641479269635400501062584139345810690715752641452060037395066240167912854394314835405452944263986993486407575348646702422994346339128622914748398754068445297813130245491674034755148740370751927754429783688445258581927208791687792441270325451844549555129704936609670285228357647121249973956693055190799044005707071711126766737462582944074106268024037230080595798417596249358340948751372796940015149328873788998122592384690093381190467078892740839195230779373045219283473521337076599111590480438818823090698909680907425797269188359456665960484103631420035097610043841055154542184110394199317177822916507614643488406191476832368494300729529506829400731776332495696697158820802643749690201256350916818942670550289653029075513586812643917663045539727508227548307746766033105160844560656477137780460522760910882167772103121557676113186654668719746181980943501129263535718770325035213333415477979340214741568611021792925571651958101778371621568351510880190369534018255342331312369769252897900222643684664655135301255286611338546807145203733271250324885904462398227027017040346636352482220382841359565978616938441490606656676788988466586415704827690374007454584873853311963151805169625712480376653124455975435888679983893018805644025407167620762071795858293880660448977775235997170466279193398654401202540197255146115828617663530376025384502535223110723404664931088644858253487274433872321964092994723092192112382971629454871728977927255667087011419515530399598396886491244967910970775862972345196545288317257681235114334568128855729798178243687850766334732331557713779550280014156167134572329518185633574435005525482953952157405391716822167906683051361628483223976256833983672171343834524545014293594587855974634111036318099129766218441887742244007899719070721217880149293672792429780153442590853192315210845274931826778961272693926761130520526310938894835403347824649369437726424134554475818526219187561928323268805277140607923752039834710513698497013954664692801126715000139825953688734645365287257581592633209245316541124270651539495626140676536065675026851854642541975033501039800672482029231510915542381267311187900571689671322945296636877772028341040635942755537910149360954674655619370201320392076967760995678654543135632361405339117028371101806042820206784721737383102447556149456642505213597609230793888983135366458769088341572609387506174259214209381563300600286396698471851400386826928815591372088777329711653999395953170803321458660954170598229136061598431762757283016656428704057606049722876425332660888671978403203481188671359214964707772276995410073296670833256641054715936006298318087477182607370574862114877726744295512308639035508311872100784825629486794001151307987270418752147009783845424152257895665690241216617338550647339133235258592649332189803578125698612867671775401461640211417192772159336066687382378305322606663986245950968641057110233801197320870952439391876853325725183905349867646596686586563486310881267207869506868503579634349768219425468737145654223245513511137491729956304708205807695835937316095480206232883705628528566435675514949680570639042134805889834927498128175071496305945378698809444622465683859809874405427487511787071339923573207199836468637452307908879333580330259428900795823655646240342238250664388151315977306971571848749307271921405402493223867416274905809483786415840332986633109753730465354301745004714865133715133659810240553203613590291203865265732951688314149931934321719433700553047676841713591564822963785955108574031623535050096664467625562602224445785407850799728670903823398758841837709279132146261319160134481122354527345077342359987897370959101544842983838547391678381466579536224081098292998680578310273007969779492352295156804333801778056372836376311134202160508240603658882804083475067930989889591403674403766397409201130016164319089147307908210716369032195106864656004748007963823715275250334313177068365628090339737421010437692186176209650721533990476630406703408467741457870659706965277153283397985636694380387565622551646353351925693290620191111534950652903363984359056678086824885125986258273267644155546880533165877688248797009433726466367870498077232058320358242859594892858766777334991079929772242425481696457670881831774527536048447213715224928452955646925044221337288711369010762486068518332849651574220732833290185918842553974325287675911364732795311974969952716912765447679604218559250306363346043191169532774443478319137590502260001742224219555603868785332332813646466233164114451594026113255500376614218516519036208319865306625456457596956468906515565321695415818783233331449842232147716198392228656574937361166970157954710378742140875832935273164722585862992556185343518257421286275500856386553620059918028856519550848589794388753335261103660963042108675119012946895659236974058612811392511088406324669364198383118890824350632874874083290893991950527703375748529453500778380499268619385950100529735348190597323771746258529319898281541973713212030125352387017171630872707846516753833460120541559535633235469526601491496440807973280570895118423761815161081464079241002668187879908041705931421683632224917216926725647682102276061045497279884191327702004200309477275467079506844990615321694713652380444374755833603138494522790803911195502646792756506240901828043989199244015539481205336790197909023663114614665488133143575416860133855955401782306907680424946143973411000140321808806947881619592466662066566977141356843262375478820972529652409029455343568731461184530994271847378183587602943548380612181500047487903546447872958882317230335487774206918622783484259895639503031773304196229968562418729166720831612701780993834300443034550191057793801406256020713380514869716359299468792272822863409833516372122694918101124609399812410585680526555534424873154982018773467683636661545765082748013746368541728299809479006942792531587243222587420657914802260700660826210609755625996648576338757748218845614001232605629862040487627533966131337885747981146760525060652537262359485262963044091175684489046843228106745989292533918583572014563992112509232080547192914360438046720302175958721658384403872309521538834217278636828416778905278331382149314068647051499617611303516652636303984255045352350901563164723654455824716134287200740728394130768565026293813893306831370140273204774871831953391446169786070550277532345191523705555690479849210987971182744381801079963483377770252372005405206532910522407325118749379351359792595516820495779483450288454652214455863668038271555166596349997253925677794223305822531071860142773048853968363557166931968910687269888878039901544620868147634633474651591972903884136217869328854758228042038808774325786277307888245864767061368205725521046911351714745308396479446869417222158885776111729177783209547219158505471605832022218107443457546034932799948312404382710552716479524922614094007945020727415342985685234255339319380601740156078562687235323877852173031950129966105831649681616509479615704651415469713530588866168215706919679224548165741892235373448383924768162331340412683434925981853013990410115494702564955745006620300150366262382280303475824736992045353741424159776571723360141034874760928524623800179243510308179058452864130585688175735415810424453214108689236048356453004082703503398060094432632558051967630392073715637405448863440535050225805993831039525885276562199023495349957198864344872428660326463263532712959312742359537964943718300550300927584192841404675360714869963291851955603889595868582818665826142875995171633449975895804350742141374213597201826487536704503230600841448510948044687143953036412137645420452372780736761288485000611736363060022024127529090323098265117897837572519595674979617608340673653273678399041172644562342133229048482049989921685624037368362471520571985800686865229198188720491843995139616928110020606625180087946388099594034202996546518031629851497648018642516825444782520514056240910512051201396975071680555608158995443140546081688021247647550045544846515980493360723931095888963266591160387010954073558313644899202004464829008500251002054180653649444600008535690189894181205041441315704364286253947259545247202884650913721793389906722452451969082631444373873937496263479961118376039451450177884590886471010867413832226471115255406381555275443094336545902507814355056938255780770902509212790419729126822704882957811402755007226570722567780623829367670965922893543358911142361283867485329217636886276452666839977255860991941418005841377310544822583767530168321712885840821975918698507736844657080187654915611880673151843920630479211289429891292738141090349424476072778477150474686537416080569196679489309481412505734611874376525570056671310388762489170624202639839806691024153948221773651970061772459200291148773703493952999133821790987556707357759988174657963220353399218399722997010662185514014628494789089397826065898269389066247872075147073771353146808546545993809640539555143469372715537730022785896561799358207285761924176792548913454165887144957756372431727642691111418893984296873623490078246845302188419973809973286231621506090147431704797069093805182538734984966461921908366772724424443774668330131870378340080856689588660707501512473676396833043645653433083782760933877894366758926991227119419871585645321968228285577517410795958380601659873004666397957946450575795780977118621922678622643458597000740810161060426062880780718263219992757868653470268406277524332760707954327679997481230129867713092195090636698512868678260689715015416029447466572452912400383359274014064732634485957520099997261158888294031837379039151676613680658403649453939030823361599412956896480472681219743750472080938895899763381835842786815067743671989512593644473149752557740191194135984028595879234876506461854932530783304730272596507593929088743594847268905284822453808389984238307134429689656500433391673026338251884624191509153835939938025759232618827858603243995164882254479864589917545998354473563362834443432454320345706468560795982252381284632218267954947382921658455065846518396314755260082788120531500038070564299114699198514398893825716264463295745523639374923672956934667610857320690968190397806788936169203341178465566128095474388643211102543329203395608202633398854788297820160581265945256621050187575351452386614103543474301758190498928618940922240923377981273292539972777950382850527919425574634076935619580342579266835672238789360261647777052889039220527719943316583220978164633946443340831486122323465034884049441075105947954857668771463583310942386058504462791332004775276181416128932836013834959603249100710613124423596695709008029585080564379423396890648936957369541829480872413793123633761893204737460452850481359353802271091501227700815046494471967352808646153929359492924760481334457507492231328786927023028760158515116515495000714017943943006517004494969519879092260973387849049601229358963899915548860679198919590696280993969510823873825446637549083904375227058464866329859527227487339205426349851771889627426072598182415084219452035987333487992207650879212261970456901015538583280346910392939010573251636538699536359417358912452440433388601406039443957254896490399115092432810228878474678593293547945094372747508581422122111305537550375767728496584332027330580561152076490048158756362989634306892632496238079826117533641819439673624509590911682954450702564294620959340935492441038121643497755433121666394298265055310866833333728376344533427030682983410062189075501224571130291375630575768706304552864868342629574916175526523044407053168503728956507943497825755198306934014684092345876348108781440479510943539585041990861825679488737808328072975426741100006789090133913087646698330882870687115848311079827280189862686313390582962121156710672124858253183090541662137998553240681416674095114134677845915196099575962075349384385237305511476920147713602265281449268879851721305819570474822996652320346116822669644857622742500033971814771486800589526526896891684792808869857146989982390365822991073429850064598874370720770706380009802849088794536498086378536918856119984681608146762251714087508734964041795460971879704244645490224660255961821161688401069983451061431095893207198052798821005508779524920861476636237067688573396077339005886094612962222324090325878268558974672999452719134707663950391063350611759831951495731905207172426846309714036907923568232590541954725133507604294715749413762821674705455466097158934715492606271982518542759832707611944708198086572137271328916731899812584266929230029767172733232420923414782980043635809123876953522774277268882575072667772219730399126453585849507924353143683350973892455338353133982493028919313447624311990257975107716076844852749564340098554374026633200135622283838831681051390808269939651043198536366107492227007486886649722959529938555579845478674740281075983598484314272779504719491042498495580493933582714681243251175953988415184961229865322985491119492433603126195516446972866036243583600150651339667057579021536294295269872709283108128628213587847789750601546406886342411787550326600743770133762851162575604493935353856682329850664205588986970059213639901770657559859402508842482808533967515860808989502429481800438945735923381838001171114573329215155745663612935006776670606870211630841437704754042797954443961726792978459518453540815856975648412013662902416019802184500949747474134786182656704449930702828432515898719806340539769812563204547094045014341478068160840557292758208071090873336916773928219622651865208312120417646928153066727834723384083420779085371808232025047418019766032507496578311125624295321224578063924881534976465809455594292266192358260303137037941766139642901971788357138111573856105628739551306384356451591622058232869090780322055248799832321443304448781069360275940320435143491152335772427385937714654882011529576109787368990990873533929101192568480122156888249531701039193487720749745690379488275751627639841648022924728866081220753764023426968941867854496828579432063603863766659803860844109574003082231684126402552394181434306021230784489621074332901745851175101768266707306587456041416600362574515657926146431787327218079067136797365021082131341784122153613513451710296160326602154370353014357174327019983551053355734376014172908509070493784288922939604587199933008360263817212558533028030918254616809514188849162800848638095586308986967553471617043888709246158758445583780313815001880624647913481120099590091223440387892490753167917605315906665974866046641227612594139707709104906771790250955895959120485773903551400409133973516072028631145234875901756528378962789348771499524324443309642127075778618452103697235838842539923505974468728009477723264421918532614084086089589551568710661866832938875961333475381163802718490897220652688302086805845873539658463435833033354491416741806581740068388025661761147653658696475950772497213536638808604056160354953837364089779462271522105510494114415235455871186875363899639915871219867509839660923834151776658254126203172213890980818797948195451216078922308100903838530997609948878622139304480147198692390626270982499601762529904606322992700550171601562747960501098158308406495826693588182197660811330874057849008024366105832716583973636873887738921586859203222007484548710726874916979676263294045216505430410611669926126608681300966974014126834657794884963616745139705989441186899150297913679045214099355357063261871216513460639152920790953221689477807994458834478273159293723406936064630052633577300216418770185405296186199592640073186588532487387343421524302216885320921131285643659276448922909587129518239996948734095441102797625923564278271177399106976376816868953663437839035815318946056773772689009796930434590382071168216048740182391334064560828831806553543235679738260746439970976648599332841756289497210350894306738893691937062389383271930701697235011913546279858153042567447197148298467340504714140784608859961270441393926851976097724865633661259998426534577370184806256126845803681617252018662391877223699550077424735477012947007794296840500617724644273111565441315865898383443456963135330246022002695149229920336963636407479049731514511469222533261940825656416596236697316235417675711274841646911548239428936443978624358478915800067661873270721000356431142762123530226680602695293452207196103369172663936983339036903390982435611166632912601612392176986786626373057128802750359222131233470523551459434295935801070425167445011172473470360092592906977959844606209499609239764898958276954313762104681135522984468944973159351920636557660921753000037593835228386244929958824279921456802371562454163420896279682221026956494335465376950224766279453506316582931656871074835966549388737111550341019505355120586788068006585633220726683868899341961317885539173009528245201307592992028850501581407109870480353469940170278523597933704102258826177849785288064154042726731200304514885443345614044123230206022319947430855595442094898269126405189704493958315928984631096291426591449275797864039787488346461677130350810461179355157738992548066519749467143750424183165483959126046033875378875842596618617021854079025653389941406440770654114128296401880232142148185863091250350455478366923183065807703149315658986858188794342341227642914512264706150895856554972155798459351005497394296962345330301228591746655524660888085166729745374593726832415101875465534935449034165023852936884065799030981940326029833274306113212223531058572238262367010459447014808607653954030578587490267931964587200436125418070574867528252929436754709402734746450365098657047700764099762183097617217896107416088596802046873354604798972273900326076637641704151789314588998405811442921358230478965015777241629874366908697818500663703199350160191387686454969916765599396143637353533722509876140345692680083782227596330652589096797297835824494373853412923078260303813705371796586665907747022557183151648107198063901906359151420608498573193928291391161665420664184507158244962238248576927845175763373562556600860858788778748303324377396136942026080617694229694211466973087580277104541358743138130557241372345489544090754356995971261485176817518773392134616467754130482820237108141282433115694617743093449248640945173925348380482354256130451523368301237594626549177217932212297721231478258023497190348230905610104678337307015182081945152211099692888702083755293829497952848364846490658169559661915968104574332941518708382577971460717252049308750464437058152708320819349555647579044053193805091027558577892564193565117572022353343868627754668621007625305460544734384528367435229594947748889318559505463744001522910300526666770392690586467332724480565934641716257651151409729045885044960622759563640100283697942803377633573002900472043042843267665281820274456897995448297021712330477110905967442673833654726959978931806293747753974801713767894713159959626535872171694315033702910508763671522943464781136276814911303463640103708658563429344201342078330493873781252164789276029783709370028445039615437559652117308370090786120696168310038246915794352762127801277811968606149774173459291802357684368351309102269058033864144370152140457191306535468874015929995216395996747064791290004599095945584672259586728579883168083013543305913030886238400287354851924015411141052816633384322051854981247852415202042611378259341012189710668084777115999926587982626717870521191794989553683240310553843303827191352949262632433240431129518531787526473978782417573137361584130600555754747461915964364854448847655141499724539000928576316398085880214684832644548863765155048700624101107178432701819524800480563706857818950184940376609979481909406844889952453728375514998634450320931875546340820446250606076240971767779530654160793665002776324793324685699520641685469065083499811349614052371543959407351401895786958763590974701409297738488657979537471528641071060397772081332020915993812607041722563262457712410766802411064091223692981705483385011026420367542328520443417809296564488061942170226460344689675634882373739072778171775988436855362499620429817394302066047918802620766574631328500948513688213599697644974718314116452727118348839223743977059075102000692125996983442731310367872388480461573439760653636441580548035372199492846613607945607082362307988799152126231890978036716426020019194371371606444516298094874929052739487998521646773894195827279599499132705461163479390978625092357388734886968875976864287519067812839941688212127190098297423857957248214962418967322709492080981429116068238572617294304849331286717987654108572951975905974506870337418923649911296383304143640084059607399240815689288440755320062788209977169902059420255205101049462721885736843711145765753129240468824400753939382332059402645743352728716231594207833161612269185894835699720397816392327220311209342999724003335118815305662640817676909480689695531695455240965725377617942854255627828135094941919846283580507081494320247334911243090036176593820983111611288245825000567496779204814732319760031918756549992463716346374841952790854599044624791510836413050797428024978902170447809698824823037244567772334625609443990062995687919439478117869755459095473209956849986859232642581777611028177217491955577788572020065979604181826693164814944499829743665836174776341232100897878400174234396936564838573399157864857965705461506559479630685721637826436144131487352939870144289771383651045660544802088469458731156782058559390673887870645440250168576411008388085335337845821905118772625532795124664502212430607894204487119757101618670118260032726582928843570354289291589212648133315885024587298904960156891592469549931840503711547301570978076065578855315208264133710102129237097954751581288580919055470615797081707058484964943629768300044125075982549899625362684965806489673594540332196215687011632668940769160763497938247954060345778899717883585247646893717237270543095205995888622215867980714708802829436181500882627719221168695040202100524178123067548675366348870139017185845979518396439653641989256964617673885850719258715116240740832369642083078013407874458168791441407408828895473011849526042073575796364046003378308217328388006405287223883874542314703946120991916367568046096690173661036631363700080963431351130691872580761447359873603952759860016232784397253284808690299974496322119881136515187521070983057371380973852027583736942624162019956484321486746884314189027843641207273707500248806092194805584258471897294244036886702232483678129923835109134234707734837994673982214740463686885334715508473825850448539727066933290861606883265876257107220660443267990074523323682996112208630282121814037142355707820961857436899940715697517008509968536261546046290912603247092986919648600642020066285614287294197766800343268146512713483655492530237938310881702426850214688071756784862471019230926688002675973896880474977271457879609182067352835287104046294189641592908232980131576782762566640600262601723151248208005824111912275249795841624897323010326145622329600252592537955104021340182406824419460306765678362403830053832244476600559016060522200670156929208087522660770206691739861206216809521927446046975329514313058116843328977549738121943588805270661979337405528056167917459139355164023131891335572089001636602148178410010187920497655453267304816926784846026606172482202279099747674345600965055682225301556548699634469163148035238924241248755916754001080041791617050457601922003723893063262033290311868365659194796144209761334955085781398704571300841164092193537641083307522816029393091589270543203337257080808711821934303015729001223278568893292067833959503132531982788149520692519997616387107017122197629035683634424344391842936497477460473281872969885171622685594525937040004481299284877398380702656195574099200356323745401408013742667300344654296731330402072386874711141507252100154619909059098092251936269440378626339147051837553195460329436856195789879849026866629024665932346854897854409152533686487415008390233335879676032734224362468050876065083102256736923389939569798836234709192023197979498530537908488061895800734891777357558864356317925893507445948212614228837635673850565277034044349110246972637845988642952456304304217081998335292051149223799005040994939841809140792052910787051894020199822390009690306682974470943312877582663505838253365691881514595260211054443557793203022736854358089345438449017163330673419829788377019088033111468289702406341453228994388222349926938457439328026763287885772374045593606883681200669105746362729127093187774924647556094059389592538090420531450216646359452991503879149701278780440633257604994901875876059031777138844893110574091096150939457048526393887874995109331858657356169730618521351418305631942508826128515154809420894938373818979418875250354972478188884707213408329096407182880112476084342151162835586015722728522244969197091101990157354938531747537256065264057452433283365005095070537200657208672911472865535887294883817539020039244395945271885641378023523588405094074126749645950764533051514669285609548945528515471990555693529160494019237195523202697220665641026534509946913097075982740789618391211125545188526296457267569172885336868981107931313591553134898755713024971503999061254753562346478654662974507241536343505106873331813140406963960013037941064714511268448520807064852280952321698048072104419387998233652978675033347376622877010985501119135772295207078412298065184038232063883331019099045667952798130598543188910618242352075128244056678598969049114506354767755196845901209200297833514086641822714176385996565967697611372065720639400931177717893190296945254716979793816062093940874416146128336035445480865358194846292029262640953264050189817901244904664336432951524342120826409512726662658589080503615253142865442517144370159726499222214003213077891505697548975517300027634663332661428368800252489557994463823772232427712525103144038522590522827480633692320259253664547990448768722278036593951136313777045000275654276962567636003037608108326708489962889284270297231284908789714206075407774978887928779815344304632738853387944134425502173300889563183368769591863480640345090609705472249937733216769760173576977090982982079002402157128655740292573639112297413901248767351084806603923405034563933982839978121428193596011357515079121951126766458653548546698630536021259158405658247728144188040533329109677461035124878572253916514303515153603903068085302837845802492032562002486925175281098027467913535974615008766867917095932054988298451204339224222608938905794932090516616602339853353096357777803791878749443896434961928657347900870559022424709773596345994274560092529025177749260987145522961422601539792607121743474753144238394802693838124444090479553330386063830477551198697090813569832538883392684219816732883790769191388485998100233301823634915743790337180019859719046834859175086425637271404043574585459011354047588665317802645476019634682980756369753735059481329815339280405621439773535099032903323105963700790311762493625199747086972560317562692588250677791488243391729630239264610095153571471893369822043556109978314768697382619156116736548152129498510227002275225932951985673702939772683669104046742707159746194030156316496466261609231069709916473650625078437760677173050113255492312629840361141235622029174700066105141102246146031743334769397788617602782648924431721049715932462207417775418621190108426868196364028410069530198447501589757855586630971392968249459680628345779975196277218667598541404810672495365515212551781729853293817600170985261882957810021674433434710410794954757337541427909017530820965059411574731943127829201918361490339358997143670671021586227085572166801672126491742474337653748168584356836390880536022786768328639571346677599075707712942771376669689519274061387292197611377708648635787077061737306236174624532018446598366746566364673532654155379196130966392564880986038382693101328489109425172382693231273325288491089332209945690778089954917828109569145655338429405684391184054401483246549167478262850675457534603793283497610602733290683290350841665956907129477913836696116415336388785695576781049386800358091807037637071087003956373404643095887683891074886885762813289572203846221299853908885823105366566200290740456436091495110929474211920258105683346870435019714609171549702742097406996736133091126810033579894146761109614856602144674912850147335238628710083095294080589840034004354671686119572372143210463763082992835668320069327573124259974986744925015623926961113265523095489041500026190467352613308282249110797202053287372736545749600904869788469583871659217877360230094735830080676910919811131281610613405597961103925583679294571298243605372229126072758831815355929762875482137070238520265254062498060139973043510193914099392568897612939653108806308436630368096241223137918773083266644304935316406033374317974731185783265582867977345415904390487487700997498793575377910839695701130984582945326259897707603515693330281428545734849273486729848490860200846464805915754213546655199539698571351271622185994154578551589363627863828858033966245520499656509159215046958988112874236002568822801036457184996419231088420458773496080976976899021275347050033399209661681387021244845830614439815607102479714648421301217603461320395722163921570690348055136060026549007282623403333795548651347169133311120725964015145426732175510513171644547623465284686668883056074466811376483051138231026486388475638281513546412811388287264661442857970046043254929068036197935996433455559809063204984745076281128961089319573470522402495630439570253811711489362726314333374099895485226041879884851951966462854281696794626015863433906624414937056052517613209377073428095733800223467207374252403445357684687359199195417207153817166542216470752907465730891449955564324385202049098568811689522040504140801777300055711189786672004567398149571160149555192637293966220302036519865118974514872966199946083115583974522950106063062893360896186845183340958513204432410265819690271309985436473464016750466359373216977365543981628406652960850999904128972977636655689345794614740128704487154704925973822718197830254670454211398709191026148150851122307829454430963351863142477212570649682789818553125233443004912103865839299492151356048817583031948059865976081573933551324050293941723466573106188114154656719447597091795428288402781885876841243480732101337161389191375020352335344523153063892972434392483747708776078723913470973402855140660043681277093404123225098738725712179050307886695150183597083699696632631608697767856637832700578613502477044947707005533130253930528760300631024286645803760267015188566125216342926860988735424793752858805510341536926875222435143270206616152200249908837685940331480153558313207247604023770497493699114438832164388512818663721727274385946363822775507554187334616861666629687440410859360376945115674328227528239702380505540443668439579588591630248435400140751198321800720269047140200969482937900282148622587796001806022701726511942133119770430298070479586139090882609006057667604151607645437420443568209578956259257150526460886806898120716594484941044656968873442401655513816301455260952684011076855826001478917079738435022705536505980989584060726676161264916348302394399074288806185352460368047979307986423206786596844438619832278395196617787197868985674010665076618511869594510811679050030928832571472008726120732247176862297759676759535114884719401710854452519873415884851994379701417466621988685236941964092034110540125536104160021846429134810329532766569508857407148489206565316940056573464792574589160439655142574146099808156678734951985677840856697214765836488517408053887901197484802440210559050689512210950620831889580900428687122899600409758952486112971782210681956964629075411287340009343916834413173480915552899011230556063906206044436814285172516574431843828093453381048328458250074845408073867629461192318085927255851966691932332743546295152749776100152526612009980899210922766315067787406384530955390486614658174586535911048290354592172511471913090948044846947869086814583384264624253230155135056680659084746464376035587243696363637036164318942507779777444769702988306165083485559052904825210423147304211673385767218197732402606960197316061280747325231262365526230359868390498551685426449508771380930647102256880651759113696114500121682947994585103585970980127829364611577685672066117824787009658681657501190812780192450482126298696259556147958853946988646166068511995804331419713067473175459495773610171028382157181549414693226074608450845784356241734055869221645810619292253993490156386648031703663736157627842919587092714521582978154004952425010527574933967473446831463115435587225881075715639762293550722794942900879251492150255867627239512527595410247864202949224051312328338699731003978350839802420368583150911005107065894204961082037006932243128893249777689742792157802405546544265863053302447362472488065724944274492970170463526684299503764182946807561968009709323763693586780895179049367144566559992307974784129969162468157485140874244021194386150556096887405076085067695251563444931025247687777452073147552048280371293398825432343639205568533086499256947229143415423440557451080323933676017776751925567246560712301473776774578063907821248174781965675221389648956813965074861926358374947533296988654806729804512285080011184898846068049510529636086945030301873677809692110853983428973001763968298423493571464580980558913990833181503563617931714255124947375103018427084753170470344233046841282400536449106872464391201441435946620466477427966825959057941807072245437592548912967792433366321073862512715848666249929116172359566189555696652970892109587506676118917341275913133150051676867110927989495923964898072411293254821560898123216502758630383629444316935459357770346782696825391805785225224620867222121316285718840358682939227927469141787536404191945530109494684555652767074820334966862051799088190590320240539749140073042417308323560106727988287069371005917629515726783932904422446469955443974694355553904113028538737569386321996210201457949282596317815143764844310826790451960118065868128763551518898891691946522076932698246119225109389812703078771116894699176244031053083758293719602664279382827311223588043694684634615062658750382280029730515423148366155087452289653910912067581292573555962933163688538913572779918951595276765444501560978977039243218412818232434592374884046049414467927753168318869903041496572297063652402771950072454043129813928086305014115875184944391986657115604512834879496893974551665798510511020734725430148796403926036209071565926028626106817002300662322533902490367962104006511909210100240457982463883008983434970833347903633749294125601553006337952300006591305671196621188488485498617186690327447766396415412792162225245305200067165340929627081135250730118625406474036966332524231414937348641992609390618790417556749314103769209684144783618859641049346442661877350002875862350730224191435775539736702386399117960116114034773060153097626959195646219583605689757921591461452549950805845204351565090468401017742590407074618907234788775419034158385747250631621874426111108916516143844231140235377523326587217210718821643839748813029335287534926140266220200998791331951980885867206181398961722367210685899962412356351185537935118905443352209733410617827614768191035601332320857798976437291768207548781962513746606323612611546710655329849273772684133844997717801611894898815505931473162967819597349059169792184424752015236437138214937873677369738152833798090379633018705547441317555705554059052533719950536410203521374358247973950292524877064095568229689260120344765963975842979570428585346072498605465659231142242921047675397183608990300942194645695625736562611480135186797383904640738391964035868257986597739448536681009710824125677664030474892332636533581844438455093555012216399475799407317880049714640412950475791568517627961477919694874636623430959767187868330960992170686066421498082115676881285870587810009238086180532257558160468372462815967447595759377396000942228730180351624114444807986741722096753948273798598194059621311765180170774234107784039662171179333359917759165717537159784941728895940555858861947164046949661523660434887255642881895721345240912479116302748342648116326674947302356360615222403985081902225877424284597239827318018289610815513790874660065137688011329107340329603718915531030066430127368971685018257350237258703230957268497813056560453697951671796335809128148685291234729156026266852756457652483246946460432683617755252956302444974886357890912559378166033753430066068304426377386691727816589022812941361046477510611740504628286274279330523222652315352633986682706451627270917508587802030380748278205459673321351240146894739669221841724694038806111461339124961486184450480895837681507050173983613269530397243299827635493246066670996958325303587067063315032525735453138788512205302360313131841895262197652029402017242499957030442998043152891731439793608229052314430214291742913523626982274681367963232263395786381646618572834266260794111786441619559043950266414883605653060676757506756165628401989218505905524453286436996772332595505608648066546019921234380468824141146450259960883588135943430371951299600461810974902497140378331085619059883027187742147520077582652027579123726957512892937689175302602656966859123028006516630426008052506681103846148085023259280616661210835978427811415994874460925421520021395122989117628656188552855696705099918546762567782644659534343198067121054195766786355856248344790739135756697044839277927287942360767739047546714641447943479471776859331490850686540536689882209876465948058588047049317600853252426703231346453882388806696088759064833184326532683839587272989185333823357488151011834182056394604357770818560332546279898996169994888775396689342532277701174962568063923679167397203300181484440381935531696356266803271318463564957924146771597045856637632003599920318772774912501683745971813770568469793654966576165587108387762404851138056891788108378941986699346590589440982526276938674396156886979997882751976097287410835382307417920767722216806202635890395776149714322254028352500865941064727317978055812614826994115861230160422234735836821905105911976410661173381549927024761072352938026562018406204410869170414999370478524306357562543691488259676152747642281190259489132018908617956198489334232924914041718117256160786771897991085609563541909440236033476384604465478590963482065182411992889496747599301199158428059750108148409506350077629242151544108920412284027027280045030036763353001369317181277524211916309570339057316493678046065302260704942314856080718474884937671655087102670466373468274803405633086003217623216156382958076798131006150987910450030209787784003893908227875596286128066496142634258832078676077734842728412579912790465321634916503755239856794225991895547333292345747485315943419057855310346880842153947025918795776078948128171704292028366976466223142125653429302075914520760992541006884191140649425486136426992817670904376934454011551884671525493689365645159413363320316128272558455914176275113472786098011619579987910881513897492087075277647436471879711761523007578758249649466803852649404122009209526433287240709839152921593365465860858952258261881766805783397838074959230457447015856310738391142257357388551934062855958074401229457559424160500289399553944811265970476662697604654085442993552714274609397748220669964617050086451962609715025462753341729960990133726391559466136583276316112634454941981686711708875741703767481882556352982624857193944799670843371222887680410853831299411388911842548302127870975958557381266850516458576658470676189810491270317791255689272743456799700583165963721371108123642932166632203419209113601594137536965059326300070653433878819249611204238022881021028068610454251940670409996124090282513000519881899812672330944876945184738045199035338826303830762305899073397366258374670926471243290936190914780016957726292226993611457564175556897587463545536375615855214252677516460102438137944494151421249366008173219396054448215703081023878933108250150307459539364250120739307325422427060593480611514764162470242758272017676972235808170921696305869940468359017012746737076111862312118195276303331678458194678764500023746777271887282719948545944934316263367578036145191125035581921318280386887273848840718299429792722604021369772553001812841976209846693889660801690171753348465249550219118845169226013553657730429592252078108281827183862972088061192456226034802373807298654642089873606851606066471026657086978300412708857644220306641213432142460684130488564473289617111555212368310351490062071790358791728117857650880981059977834496820843190069936590231055736715215399157774064831059088150119353930500374012871366671768543687154729696463041385357196620552136620076493176981718466922175246958554377664674828930628694783399799192266307486345240447279043040174309935573161930963336901628138146578243043803708111276706712819284954296809296415314469664928245391820009358757976377856443753988951545604866296639764752614815456229002108086734592013803777269764513723375136907555952981208956105394178196048613243908935382769077804417357479423698556645657655078481578097250516078712643657130917105781630631291410820788771717629972753191416572877520084316863593870859754595789234273042799872210029056535025275858281008639184527667199286562039254004123732033948612444940568474683562744478539248992726426044307348799441060003853941871390818451457534360446780243874345467109362681013058780344289638284804124726411028556554679447425784254621084820682007000116565338633954210831691595669921313112603471996811357197082036196747897652304674397584713315045976178299410749131092056586727380075795801886794195308353036074098305240168440328094481426074234046225870422189284871457752454695223769060222767084207886393491157348088203749744149638015196564955285752794395485417268398315046441701195539790899701629145435517726837645297761861192065988511161482968547664358684982025675026601168645204136867290173860555868522330583722934102566716934158756034131513254944924874512636247052712308330740963190196100402819029381979002558563462095165066342028323559400276484099072840925491257854326199800875497037211108746589498475723912917268399234830527803248908157147206260359392529385016918590690453565056733309691933042994619829037828430275935786066373788522347773417937327681788263811623560832580567852103180442290751275562884532683961992163863950962886920622557782302203870411183583297832037110395720567486455356053978152910086608266903614614979694589542018905601503892968179087828852533839610249395628748341012250905850705404201234534910795303561504064845977524756619734203535300453046291312760593390352620813649123174153716278591635298663461726575802736279272529732088954808445517153673143750368058914732406950945640561238367713588609926707081462875724520160964981200332261273507462352065114066131983834093240068378901722446972694852253757183699420440293891267320527438744433379859739295492775774740386760154781397816584406223549254351169898939512495960303409372046616255171748811186717266701679556688038590883209264450773540090376177543577325005252333313446837610664734828504380632420280438132808411027567586014265117722131328524770186251741884820676073138534113107687127967659418584401225153392648519071452355061833582272307685773378388313157395898965973250057629073412310165435159444159594371613869062388331692712508868867241767967506664513108206619908821011921245391123746956560459779772434061388553861805179855750038850872860474729327271767184964910867271298873160091614501632523741083496990627804126250544272097787028751546537240685464916483793336119842256554053134505928083839565967028356739044284890780580441646973084451817335960723940081295426546645717584309801821407063128363023207420982423613355144700573874167926683787657432335917560847741347394064164942133255146594226610625412494611425285715822193582706396383860504200292217723482839060076597992341114844042871786867219773189944684034968457810910749335950870781967523367237434456327058869412771256841150517288569033827881965190191198278615309998300673047895489121082475992468097977825906425003284339135266118609895179607619734226175152003879762259187460416342337498844450985851118692944090112947293164416046035327487721141571344836615667077513992354293130993380777255203493682504687516709473901641628500894884410473671933341931813829139087219365086358813575428917009657657378949450424202616680931069161676560171379234558831229590140989890395858588521436447908721696035107116862944672077667822985391783773045120867180719214606110188752725256734696353344914456799061328808689956009816122847928400496724056952080898414033339127911205296734738689453548632731468460253360158264225722883953476154120864707014214618351812591625635030009277137844129685918130313830696759523810754712981762340987747337168918112614120402509267170655795641090084999855314373549615187561154546468127236076348981959825485407543616254508826896914284731607212043740918238635046362593916790629788854587578091804978195877462851476146428998518698778527228107114051925323342779107099308414603189584030222322698854606432293184112879752353060152701827060506848504252035492956655306561147076782430076326684514522634236541380639188996926728997122082356408362776076093561150993457925182413555132330608556450856549689609471814523079656936682659443600704663664552284948684198552616180457858973072450562553196094492661711883546548222215371348423338988151741258064537486039065841317068098076333581039341905866523426449765687875180188967086333425238477378354385661300908532815113487035050165335332988778764542793777619143371578002317939421313829056572190231914117061704889581063440421275569763819126280463003360621954827208181279299518336930157008902320660047579367747842836957110294206234184021028449921312037350329944565129245851686563460572974530240588610150539545623614842493414950403600333807335122084730387708154525822237747373545813589411768031800268033347021454705684780908191042600600060953103001262996427512589141233223118005226682089398416498415376261687800604647216943679179056317443215512169638998949043524681629044407533087434296289723400905263091859662537068482798071959879080153250612046564866722832384370136138488778226563732426700705273750541662013621939167034555030119495752515916791472998361531992728476484881562555866951643555668944896227678000818780652888831859312345486504077242199881908308967765550997270538442933034998387376204277424071948308879128468948288565479906247689692342459899111655308968272961060087132314441951000621382880910062464718584365704746883558234462653904200735688074406729454651591545669673949977724437915055508997300280850834796924945397502401348553726615997674470609312628603351742663203864169099267415897466699043113583488315262586537507418951279127685480897787164231088185196566435526327026083996015794583470316730017502021653780481365807496357740096405795505883152339270176918674258883960106018569652369352901853994423351499439784983078415498075652737302077802764390993273133925077533259355898495885305675850530943938700459941622431640845899386381296337619113929820199477405999206794298696747517751016826083600654834547097931110313631257287563731129829557351734999192217358826874009414792758259851109387375529361360172899501997410553343176716492260454543211367364767872079217683730492490314144281505050627844227652140799368484517889371465014763385414902842501591095666205621846811321688975474131213558640421040173043430543167194399369285161495763965405116435717108017261211229632354719079892134380449667989034786375717126506868471947212589884650571647551279680795158792460132539100687494505030957618033806768527931454335487578083120828146325071569197429373934994500869057035215679242052898897570046484677545101884391292276292857773494141704667307037994193214910043401705818522407784713242242390561547519924628018194274876602766248657735013307483617201722660731672772313843376218121832125896676062497512508377810629113475845636604139638614974865100387244142892155878673217525705366762263450320062504629763228223622461414639330630182710320719662694435295111704821528971946653112383155455124814687129526802434340685933487194883226117599467404109234565344332360722280940766917877777806908028968271440283555856017229823541034353204648634623883344110104055389120569856601657135027950547419840332183262557866279245872954686196741123323230445242630777435109567413091517206735252738903136456662571760287624016677519605087863912962217589565033727875032310785602315352800611348348466045832985239899225529602659802978655013509631762472293736560234034743271424330036587687963693640576866590259232966647781406160264405611752336597608768498953940158933567117777281787713289049914820473503204289301201086196813715578627249613530063763997219822540292327407821681242274109165950870861290569353709730180505340066445437432023467056735308752465690436033942149095590345424873914083147927886277723828652942686985866867976106169582401614037092313637212518608012358921876626247530441753159983956519685273069388845683995849692681092388971998636710517560465720612539689770467051216218621341775258144456540907857847395611534186908783297189852846077401964219805173179274583310927930031032307563688436377085882549292454043427932888296067245647827477688695584123626951307476360623806648479896871496736167631413024305102270847992989234489848480392545797323280875282567848637960185720631190603773911235155647752680246123171738675276645032066893262856343953437239680612286462871130068203764001430377999986526254910051179921635323391452514030340937089119863925524741435888693443143865506076406661998573985597724246046167064751851185430718099271365045696307845170480152019868977858076022744320804013783963567447816431716038625777622707639448101463375033080394379685701736905912094754270661217558216482847314248628952779627659627102980426329745903076491729218599938643949681279360426259313678283681383844293538979704998199928790148007551567634305775101855183431550552304028650459573172090832219876652111371312015453935305448128709047389416061810141353213712138718707000520447466413570823853382070741085766459106855449747056475411014496644023375311089939673501978773104164747704483588911102819380379426369000328580287619104744161551798685215773708589555442513432835768444879838268072653340981990125446141427710018221113125972694449441867969339509235650593280401838657130165070390054126084962861394631757055853139616019059728030479628424795404269537803915902658529381595555928465650642909760321013020211026417055998689361424018675713123213280361962068877488188993351187717179488802560212503084424614436208998373050648496422321665348034278686795838071796710909317636633868018071253330406678286449262339114799417240861764201725827137982334120195836365345908644214558082085455592222994806080950868144057379836868575530390868820322853186537606126190858377113696940610759235406845336709390735020211434989280324407606863715468057245913077274323994660178362646435132418542529980115686819469497400166722103163700247692414501085139421372438113355573219022849869456483216591438195922968929585504075332509590580039792762665566118655834558765835799102634714446803136453904506259434062210198049721527475581080457002266239684146194455071097582867776568938815811672316784205293138503395796532942593268311793330975981842384582474713443713321873543698416927914958791746875014629553256332965959645010077924661762048984054363988588315235425855634630011031974168778788563865389649219270546653844760030876536750156568787655774687941819444533421627049621243823703498714426124198798208299650344015326709582671626733623444868408191588817291789934526529363049600518914425990084393402674064569721221184411929580499047520775247182872234335978705478955471198905513993458773528912827259171873848142619773566989303258390122824561381571792586506499170123520472535540990721635623985542054940120741054946071867472357358774747133970956535853017716173046099288068223962935804874718261079582934958469280562380227287927074081780018191483155714228450645610973364039139329613693525583327065312148360900846358680207090090827945612652775842617379855778470799508107213732427847864087862252978863240149395694686545089425211852458289190568673289719772610038579940521268303104779304592957488603936728085604095617596670764199502101644795309946200180730631699363588068276220483807608447035979820769706307922002563212774051413048726979526786779106566094432244402514779335833439684011044671301297946346374119047948877060882157770321034467909632570523842845479451008665538673700177891396481209000865162414396760296267508793753314296461181182392060407919582982641194147620583938489047021099298834917468854244511808698550454679288868231373987963353518734713963501449033858866274086007366353640329676224244270763601705418435454550274828456725797813359943144242245794090090782723826839455700372179597701432903519808975832146338630899487004554322856728692086818526061949115812772602818796379590113525724911094996589515643038301150493281758815788842201829792811635465462322563809036436227343283313887696764402592872672322629068171159284749701229041068397303348986581867328363623449639099794541748083008355008921160786738918002879309956795208925243647412451432650244165604842511159986266704150466319873489283857123047288103116689755360972574372077803495679519804213619065779627320342364620432368124225697820808455551935026887819455228152551182084037097764430089897180473082760592953122502555424563481708913127714157505910175318994365274357784483935216798411230524821647123142729849729664597553801197682268420206341339750179905378387901949741123339077588334419855350674057160964507201185095394405933736070475098210058535238548029749714056678522242352646112512566573585346361672416804949987578904576618571380437551685232242678209197056944181003709831892175623473240053941512385720590351494416907356251886660175950975117714199370844013633031437973665975721703474185853500380691151661934539767046432111072836478282508566616949524517633646537840641944169759204496279548413323042635628053908445319929492302494481416282963197836162418201484870436750668767751830107023113517379644374991829497052125388365299989822613344081361257823920476738406736035950379754674977874703091301537393224587431112784949701525301076215543623243002935866385088295560374699891282293034397767165636639679022529251404518875740826141513501069415555096851174648325796577034897088393628465461826178293706237422284059843283870822386394801135268989479806641979804033282532308957125805533073433314114751292586360633992496103665422593779234197942914511939562723379078550011559351661506612458655092754864983463388707998414701957324715879888105380027915385144799856376332615682477151375908497288346629008377348805283818808320645923631727264290214387226713414691496657388765598546074496931907434144373951494952757412866907723700705250183963134770412768664655572098081246695473387777534957283538330777314246809870600430719009675601249926578902772997728245786526021213572995180215460869729717266044485029782785975960984490506319357144901021947094402751968725253385061987830627587230926657012793741138437463137515508695793374361432626570661512159830021856409450936546445686828570118061552965520733119058105594820725586777371182316991868200231941702037125370586154935346681581696050203733284894817086966822331505752198574146198658363020171281402869652487296448995872852284969641750510431638141637530967034813893270928909758511205718593089451256333132254150718290011937002827500414937842224886417822761860633085952885807702474359201094971968073975464822362270654137366637804293562812472229170539858318994890660363537131541900888838287268353726184779756701322473617716246758164081711153553288642137190941373425922309633249245520843880881939974546612490450429637075643957860309430851453960220279128451909383705439124569324136178981881895262362800245294487138876253660915650246986534091389625846701698792970034530544350554437709403248716081697623672445617179157376654318752419298468248148818376975178993726193997024583584587112588661903054408198501504447555604007976443782586687207144960227473660523659908976648149444893561250476205756139052736509581437959498697484624808571356137686870024079783280432878426908475969555437577688435757017074527841738764514210697562621048607618403853536314368789759137399940787288418807115351563178225573187194920334885275215939979886656007861275010617620749603227459151683566962352803212676287168688113552339789085356960612539002730944796544200007406019126422879186459824742243472946569861909503381581683568953950681473161655203300434416047364682962975093318167126999045646216203569331641398281765216311471036622690070537477893003389398152366833143961075405000531427423258589819697835862055083769594238978320790637776678145950712443284763610974046293117123278093105146620071678652317111423507181568245971957209034717407270729664841988409339226560855648637285982777149828329525875947793699346475962208637111029620063976721761872786008185014516115007379591551016783204295707591472818316283303504650449708527157789769170374025692237595684297026237989676509204951770072377498195459887276279714973781362804154346791786439040421021070961150909908645162357223715293694856262187484019017252478823109284768642631117237851722155590262178270291140103945527611158988268209218176476677266988670523546326640486567582916095738912600622301616309909117603573912269690790563998264112612299413420842823030736692999987354067369453911943922496504426718516691173925115164278271710327235628440770024106018322669598036363138154678865289478060619927469998822592194214820445278940127553370396767315832073724780164150519561048843698952411440800274011713053995292030192605109720356450835610669995712337879954074435119976321761731882846876116208880173914262792793541223679430567204792463870825718624230868304159249337471246741957227496731387455364654582623817196588851349137343911724573772593361910387729210898047035393141890191190643582178735915485860691341056937404534363923126652745049132126891603003417732525157895467789128730624091433347327524112445026445398201574037298912588646005584195724541938376571409552583938892525694204984892595663236211998101345238715484659460930929535776488773057904710655282547532683897271523049169041091967865840561773397762817228944062309666381912855478956411838171741104020792281216661973358611189646320802206431174888282625440507944782230051862990118189365974598633600212806007436110390438096497921902744972884308288232448625775447707850876905152982602588276177005776827533391531163124436688335575269911022228885779680296024463775013113657532644438634944896678643535547403491981025078612216373436991752194946048664117514347354820159279768830970163223819515770447206862912473229446415156984290398006658830232220315791606369138750006390868292854351343083422525452254584466029324191625783702922167474901423579011422157832656575921348571025878568368396135558540141844934675060086685568407010768345421959355227267180212575484438191927631735519525167921135033952248930037435128443493089829760818698736037180969483003047588429608236191905130234811818871864736560793774534659584169745671420187423305892378422271151711195777881058526432733791198166305698575092005192724387412723491349362960874123711319933406443590613226581713649486272009107026317827375890566509145507697087042832009987130077678661722721668738770480659811737078610260004268532558045606451344884615350746276273730791686306847210059269635847871735257917708087970990725008996360503482049899571879692245298124909573499818339494227137993831730328932113261037054120844164239271687926841957894737976568356587121788901907694661048531979190524495027305615411400197233189910766549478271319293572342566896506212108612943461234413829186257037258961589009580016576226053012237070968671530368637791232125228990298393545912825815167432269423970475628554766118584645812306756182173906285072284643991087131536484176902722722413494958310945200532514182320308973745015219383412153987938493490629221067302602980319230218882403856507611946284236701948498012126964918052429610036673767669344119077319456090201596058639128031845119701439502570727168672625940275026085892789125249470692585468704382298483337591718210233950816131338505790013285969575799549878973637193901957464302942333891749635808809511574539693336901047720938477222791800061561351042420995506050523010861340236320318561188270129804564816367794969905342874108522239362503377324651527404270119883870908747279795981112929806287340962072697438118417889290557118586968543814096483509442952672933393407099283274353703261640884582750576784817011236679149391818681371023770250967360826921075483876970855658183236378092545301295897330087007501656789360184717720366076663419535042945031919996897527680969222803054148760163803293080172640238500224418548179937576407503197522107706521701393573503974327470551740982017929523415552419218387984275994518581865363103339306170284782129229420978836483106907594462689576988058947774859173073001496249953985071978774472467532543845287316717610742449115892998983668015215064313716858400455661338921099147369802998528185354223056920521959445744123951851739639397782233107194058217377389394353408216295436733609109664375598259788565397913800952975508002352859473944166204454671343885339142801873623172246110868688366162206889646194885490526785994339437431656507083432116611474008301218417644886576088022403321241539366389051008059501512394200360573556921238641467378442062458744556820965638744543463813592043461256814794584489117247355327717408180584689556144307125354166651650259609102972118782740360841252687423751710689172023765073337561636344779986708091265021891611796589633381916458695636221343621062192892680423253844255574050493807123881101139273803568085783830770164453431759429254506483143025847206530347717365223948082977786600433991374561414241395055915467224541466740449964395686855524286182560595944226781503916569971776637171683098480067878388837289744813163592211340468124389215683202920930360770780877792221610526662218471100005088684115654759150192414346426538450229845822116366369455458564415791838488809082240698713591719330153524125291000256475541700516290669591183661404322982466473499266000743052517426714346432992674945269789835892391230281380062250351914690783836221910394067137205022706413389561561110631914815077020894401712619493293525411797778310140475194412870993135878800761685902662420684236494505145380283286415111970530784191685990680549318037209899144076791548503100272569835659200302462193023158335085184631044397873761529726767208994773261128505374998352046968869023274976974543874644850334208764115510340738845370127576799590719531274451132836346873178135367292683039887156585472041426723779717241612588894233101738369017364450200547357967703240465349549898571034360800889875662725471855606586278745687185933890145195764604562124924845382185584970632182054741188076452470159149840734431179739800484920927560177235761448399349227883858310290926806299543006836552593876350006312836936375983995770115932581108142035179342743325633530640090000421057689476728907495759246855912801530655521479744072109568901875768061025589061092490797014542941927060768118386342978282394865541999281617646440623359158081787709473923378754686161989783825241183334985482902666491253592572534140458125044479048429897637145438603170586551404262116016461335632176377845129876610035546800069184770510075965041546904129611330960283402601857388433927190046768452618421965649372196317441121038204968739822464559340375653541633878984042885591543396458789482198137156421461376566342561661435402991005786854832667161041135755129339099025961612367884614638328648015834124982966124340434700488402584722828160885568710838531766960412468292198588856307062032962993928751224027960529351310819770870856241400276385996309997120425473412111277673089074399956024997209726058076576691595722647606761700519882929063875311866851762462048756733656183520569229701415419277630733647470690200532813272148005715127529061951360804141562001190429820844059781780548306287951540237184046487616366512099823951639794382369064418595271999052448302159546226684292504642520408055520827036306980379537508722467473144983797828714372387898585624362382668666484503778987367891509891841477013089924343871534183338221744026175855785352955353276924097584286953488042956584148435407873388092854844755712136615162768408936278219685704710964765776485394473817202857570130332325355037475474247872346898372909170431934998325422885179339057935072256910487225985038967871676078083575643873347725904785680467398194357714423021605657045939077261838826424406857111412045030894996756191718560160503382319637956367782565805888406807131249613731286542974422470636515408189409550730611757404613107602322802881053875004991990809949461781159617955922772038327733724700054818186452950748604080148938589695843637694950757333337400714870410551644140960811306593807729565764430193112667056944045000770949906268508506635604967484234067973461688430787984467724987337975272677507164844733062544777026043168186823534997865755622715601821105255403356872487755378275003532207215922491598202469108386238917823298279317558952893047130312867713425003638653850110782783915767517090058969507818622480774437360720836722794563859836930463110596319135976275592368162962161922269998860442458817789841685184867091138323436727828662439647724357184930074408237063477827176552495862974846178472708051371930668959823064373487490171673345423972458934850888652354937296528499808499243154339556997418276367775416689946762657476363478553317380899149524890909942435929637520089794491589173550355081861310219785813697605577738918014037559628691682727901005202319891566392751340460237837300134595115546642426715852800177476887613634429240504495047028372201701181063523972540888883995365448780739523751126030507230536290452511377381421785730797251127056750800798336413685684786298876513238861318367184036133899054219998464557645998270614935664370076955483682657332065804268588856662623689839039139911041764079478453421267755128025301518875374805441399579064825755879953509230173800583238460262624753037967127078962820489379230981412583119307549874541505482187859616684266613420717209976068057912475558246799548417380144143622368301971162396641029431641300898697897699205564287395993819046553199755653239150448390343839804598587244878873840260768906764700050328128651039661971258006745058011508488169907870048060325540310831822050754011735518837495918695839982957571469296424815067889857411374437100501162237763075416738862763141883218644336054877124560829853056736024068892084889561273464750434783265054405366998811663563346519537813768376580473874307904943220917658345198335264110663940336715734435212543981072584029854108182304275353251183087875383032296100803092289594289090682702327754706235394114998507208028803388205855852967686032341712564003091726789389387703209329451151566811250954221766052093792137532270497751009547517505969251124385204296253000616891896235276971335909784609455664240192390314564165391147302071725713950520952214232588483653132226543236679797514342712755469178632143467710388797433540335612152137151855265317279947794053615597643260032117447028157132191269235454791828602312324227170415326578246478592129186185402168558567953218702724428456276709183855341113417058923928116063105336250253828912692415943746703193442656148118245424763911792909988022067518776231754780157414478732602013541958754409365342240250130457939233980266208267002005042837100628137221272855957973854038356746472662200080323989896716352681163860970994271379284047191742482186395410521019859493184310915373464765351665501310059088749239123712613201720103574505697195463486870427245001094752680387810055077010467785014700828979426354561555776217164732903102409168189412669889448079505062523036149151163804257252510337812368203276996962969821438601418282387403952728979180586784931301555046180544709312443425118622685418834807675398710004062039624125850323225435287282382652854953255106777049336610287508165873803612452798265213319499118485521116033652279443034686916642456443742280853567469608816192365302126385952337913142348379952103490005778315446715582060191143062989368463719701206471214434070743065838260923615639167557090014482086994397068527599917533749550538107799276177299831377337185899601243186341066863926109674405182743737474824166057373520071023467844310616216569634508704239554215095209439684246721939860115228614550082078980696603680604963672666985929731791806735512686899805010584973629222644939293633625288673585210656749692739692295796409823569639415600947644377512357966775083815635583213558958166441028478013366042254301279450504912078606532990336809599269485737988401286839067693144762260084597552612888182997251374545175708849042561219922010198773973987953078421563287306244443374158911719336383710552343283145573134335057267985112536583024934240928100965657127974383233491797766633211850274447210526137587709564458463581863319350715267187611580245666357314815459076957409582060408179978545957054959471227541777968161520964852600354470234803412392669167693731166259470237635476559224236121471039444945351361239794290218410668608041534935566825638816033726442220172830156580421598964615458410352933942995442245282832821212139083564410101335905469787845178513704853497744392495663095531551764291464925810005131959117188757566864727732680900714727522014817028658732154079020455165410836522041164024063448908132658906136618728736470037189264988965252890407011013666897512019640898356073171426593912050731365035571647175182141023283262737939469570395027086519335100926656255897210584063132045462206060045526963736848483996253015027544907441639729109590859615756033072264598821061375439852877645906051456266049248413783536876855944707333126835485900898656206520019937196640039869422956922466333236695424837965903417461286328900612375917846180500854312488705918542221405807403566295158777757131953112306853815584618544599127916001220448535690224864220188610171776895094813642135972469207185570915173727172637440519994163478298771118350289620109381242137670373308852182534991378564148155638587557704085330353749996591282805258773549363678254607335603092424232168892596071370432564392625988449364356555591900235888871796008051940176047370365353980023013021826931401172385383017338210809577942319962418172667095434841988244879808593164075598627123021141758267287762024554470518990001710217646507331238779399770276878177661240445351883842302664329797670952335800191268711659018906873895331636384091054857823344304686619608142278716754453998588590944091426396476527483650108602637228791522613073064838173212515498129705980921253112553001151546433470719724107820152828765116147517517642489327271022925675975923233565633469149702424061134696961159816926870045153200596501086756942862667982088099550163094575882874097074277437698936168816596194858135382799689271473977373250719804805732961774975551481748699954932969208607012662557272417623034378966278276207607615319182123202548367033270359003202018312892216769649510765157779490813812853105680394559973446923834935787500571677096190526315890053068561427880157572965460188925603760116485541394075469230712248081552503422560071979197195700730013000711063043827241590378627305656857257148140379028222740131275663254669261014722039348456248132225520779333044950626528551061756456585507170308504731319153176828966126404458397723902080273355827940091233486119312832957061537221887882880337085449940296783602043982285020932615704903180022394484307843332697015898310061286610829472225576661067298626178982445686924289101105249509246968211115724561039452090730981249837503316188124726163758703567949928538897366170904441317468436959261863281243427115224882265341719191344000491793918478491332741237514513466187635114893362454238507030833523552032265617602845905982780578470822593743622957117256064257733125170783707370349468360979918182928833211784308414345339257384653502478740583446554320555652619694223587678645791917331028979420244386457691084381892273125313717665540325940928379550981046867941615828533397285915418408089452120020854150223407367918045433334921392837283428239555228301636720432218082949372007676579498962025184767136372152349192886330833993711255709352281215353976419424133823007317592967835014612630054321266410598882781660697530639636335030151480900845776358107218213376872563141029354913636451471345209750328861883111514323334117648966863378478396077228315330077974391957576957559901522825397392172238069064936706437636510925049824650276709347572321008169023547240448265474254459872533991763605354328797137774951408444815679882939943270463674107091988358443214163106212392151785064044009880377876364704155728948822411422472069907714153269052072312087076701837539741278821042260014174988636880868250989273029076667920518976196146358182534777703899229635289166555363473871576184129967295703364529039629917257032335411418267386170150977472645853144880064399821662345009675215209284349592777329909544816035875677199278768613370927251632872839677840888851298757849571162674687851351548534479611661051315502777406462082428744610091796886488537767835175053257806593830618409283662300331306016787050387750880004688723863234387062244007727442003124725400530294953847300054824755177092727238520482286622347240866825210337629230148978363207252404406869255937056400187673635240964384448688006187403286498705535068016406625010894522176102302382758838275618203907120092734185776609119281559693233087588505921429331937458291144767106355446844160273468382133982388456763516702564683504180553440085865675911539756245632719491450157200654622955991739901148920875616255322691270856760796794381324222895920483712495406306237621112457225440901022823710922508967857665817060001956015807588948722066748334050360578587309922046832035191343045090218726930424511315198412194243261151963779763989235138813354278410714942918270070212418869001647262508712855388475123088280656273589024411006493332657856679492314400239601335674273473650559352269698452608200098294683963410273453817852829093738181760535737711303248433055069130391383578164107833055206836260506514157597905140087221388066092498782625820726240108116675721229787503367342682395111584729725168890572054463201968119310534645567696058378812640663476549011968617840931568831640042859012856991092564304851558412929356398575994138780946060697509075818064710578297783336191662507506927323473133714088862472559771072059956853844983421668372682133661926824157690397682664342790308595796166431411220008430285584550126364737301841081625374047014545758244841042678828069854067655451328700775395040928906232550547090443587984483529951369657378120376396555592833977395790840726560319026833536023273232327476585675443626143470511858415068698692133778654770003840919491356742263446472250334938092354066529165774850446890677579014620164016119966849262892333491848720875971811072556940034354877236833510579402951282078940986087286587212015228937492970141643947741556337868363681845589744484494493191202234358988492887843935583117311726970600703706809955930668377002685559594142872250616758174826738928366684421794839526487596233608510364333114485890635927409043235365858080374807791914318741679902191453511115779108623746524646763786788979210572311932579069323656379162896638025594626229836016798967110246153428803346809611166978955310185526883274648572305881160192079322960663423179617417114233560702919736254199608399061020046493552643362336965430849184049517349096293163000282233488938618621074325080413102967411464255427122508725637597916527717621342105440179775675423733411290955137469848723044040791373014016960830588712396053014058836726728924450458537271216579966795893624996494926229128051119125057139501829098095316620244817987772896572560220283627583759052495270658326970967718467425800545086104797072570498209395145940581758830593160369575991055590473937650273997017725384272476189365233483644958726714347271840148743337246807429422963536928040516532501822645996639959420602579607540849832250247432029188153734872986349736546093238800894275136961092400025266556572730646120031379144121383465241536116440762203618610349954111768191563743835113470805566438528383965550194298112057551754194314743142749529652003965018907886933098142675978525213028449188977950787739110405028246490854980709771320895860920765466497443985084658866697951594759895474095994271483378873105497443148516189037657300994586885542689109162647571367529866340909076010303203293425316498722205045934001713499053416759016666378567893527268891895060314621182350887406343293727169979623028753597957065104721330637136152650568036721167567506492940365839861530233558127320991771142458529136793017930056628941288947848359720679408902929377692781961507794915002275039317790256879394350566709253105367036043779192491517079681942295216324171809153821590579638368809765142600482349746624528857200096917565179237809495241294796746647273679890602143650023929374266258508295092669100277729024752670100268866723289001385396042194480460511709821595110539978454649362421482779077680361012888385785719309284348620301076500859333079413820992091909330079877712121915804036635006329692259002895958361161080982680237660411178951997638594899705899475273919483303210556707850084159929743862400270306051758619260993158487588489014557088041908634975099152804059075906426912249761745177794302975946002173125841006654861943733471124205509850977375710878058964722677224428700056508584787185884572394488349618371162570506578012023417102378812959152474693938560182363452518995696363330212037616124040887456143529692368884552879502491409224702167455327969042672947114473307380411977316696000073428391791403263584537589123214574109736250443838784629570303092699546727040860378305577661863564366809372593987009103336860434123233223743243218726851076245164781267003888246095918629308556966190512924913083751428347434771469362297082377895058006071085219329512140916887882451375448813020872906877464152375764452374390842975138388966226837352284276172008380817431835721811988705728418950739784123255164124217512230030094904527940286047460385049649642455019131501090940722073217144758869583720279127325587378810751728616714366039552097470156680053577440791339947929137229793198329735330778445334623428088133680766134848002543340293177856123222375301898800583521543220391018075966177420151447604281185989429918674444216961555325699521558359669293837433895912603755558394792337366428580353421146828164124049493048017508441153833569376800924095527869177030568360103966387543087000479902622675243564865916122965935913106088635637626851431520525584895292282688199252984331982783225084866778100638399669047942609663440503849501580672217056165127331452798821091710396979964681020395684281010485008885318061089586405129430700877187982287198543480969006145468321496203078393088355611217257699905356899499130468572830851399921194387560739010167446656446152883939649239237526007906313666990296210686623437002276050970611036078727955222713085735920159543067215903842166068398660238522344577777674688316567124390651404243558017257440265925417062263578333910618327581670861709607912434356835181246493703647393194735890471028583370510085574990446359727604670737952814963638502457230834343620416545644280224796096188006440969997312628769853726981431978760152577691270509309216457706978038394315907157678013871278133072839485392311022407913774161998503516764966619444197849624719611780449989583808174983795490930887341222476659202336508203532249530770075739058142954842095493308728709908178060193706932786323480498245454289868448339759023447240798005027906125220571372837705826944097082984953272160541260786480435144385345721633159413573901119704271888686642600028365640386862258721411424713134036760078913597009762809427700239011022574466742071871663689953162084435429465766943602193622106512917545631447913723604147636761195904928015409759457460272445185549718912301910291363736953287134502952296739485018431992995317925042025966264705616685419591551197828275842257210701740251687754341719051172866548162790684993041895763456485096432248582391548259366187481485301944697364794892455571942306928544915166620665443680585166093304557285537891801928100237991328886847704086560333540514912441291705321653830556953574560856435904951084770972124916302315251826683799855057594255191676514776180258840838603305504579135339110889849823510514526959239476904047328683573444179150642002325556047698013954226364124000557392253406967339624586450980932277830364564612725251651232904478709324292834013724199328735134756338390460242674524006750084657798007607782037227420692806892787730241097324308002053002473245133952198349350038968932225587957804550977807425559285611708017091164789396930116984008763436208329296644108930743925899126471051008203128801955799831793978610215249875397967802355358642019955000907011875975211299288368468771118872777440914922191969378635965093666640289240547229109847951779578216246081323678477127949714629674801675741327609410596844163909268396104287294970627418101953234444485888531230886967598645496798994773141179129858649549957726309518367248446790678065981920055260818916181251938614808176116849113275447594080639026465825904212567438565512757261464176022814581013869394962913797646430418629235593998447524115231087792421770362523301868883877335866760579960274751966420243691847906023711732916988554249760587809085965679448703650003725350167278390682471745301135805778741901689282162825214836310801978895763542682409746246834631557882393105642900941629832196991442931826336966792922388551650723019710800419042708792464753704282914110191096341197564488040961272832306933893007692883652366403659440118300713914857296492505829130615369681565244446077992590217957877161986303233321755473065866468770420478881570639896645352632983513032200687482028286647076227961329955465294106148280668105814253079654534717389069673507109233145962165584333750621604689070789705325696055137283051844070952882138734838598335528403413933257908672322579864877477817748843976394064383374273699893609577488823739099433675549147187966069475840491768450808190017602278311114577195658575183041699453075751264462131773931411001784742749490024729781984702222794034439871208568580363700586226726633227971460099188403590048417526328687697246470049323917738582864510427047003128040212046279207496631223912338610962433392115574786737923474215359502633146475670688311626595245697274209598432827292884375295289492148480223052488737569875413439400731256387887943643569252768962600778069322617410862833532592411534973646637997991883077127687729233736857816144661513595564997927462644287133695641788372706519454316555403034468073691823686897591594577436779891258689583889201629073652500152827829258399943647252323760032059614075994084634060446704797653598421781939550810916878899637297549859732504509458722160146567740952639686974001825458819964981773126256679289192093641163995579348439365128514842994454903514431003517001936735229316922516316801340747878887311335285807713608323674004321678338472099225316199349846801781097430514039879974086884998347947765639132475165314985274307033022742636955629757266266845147137442703606297409841010475762632548146126462756762600786451894472074187052929837090072108274187220487146659217619440694669614472935783902830320015911782134276760693808444735505749943864074463224868497420572336422054004243471504525947768086768856040312364998239990542708987371468527998182618240697169687066692309868708714460585301258534637079299797549129349784834932220061332097891779686908050866833097118629501358511087016495798365642479436589499399703513609867819260997519742487265779104050537650477746020061216085097464579585861912713107456226470788976974341781807636292273577091296935790263161770066869427603453005547874575017265296464015915667873328060260311392107400061410217422929922339887488452260970766477012340284665063394017990710206545131897660544708595303428584513632213505044521131566244171538731100116006713009713624876562473662192201951665039465881819541609486546723730991411511196072119034165064177511811904915494268330933455200774947237972564823870242047507150719032665399574157554453334158566761986351297920266633703417968143375641966782799883167715490899563085340224700543534441994503291839972909679956803870794446642565269714156946607475978522060788649633365826390000222771661328514926929998522260978340766819097749508204652159210801941602877814242253644004796665355603598546394403133494505395714312884175979633419917362132625070486015534870549100697976563330588081936317754288502602719999483357620087634030154196246524662118445284704206284125740011835091678019151307335364095823879206558505055566698922066079651794890017862705919706759664664670776411407230673570268762507697531617386693833463203951167471680305131164361178181338880353751155003167854237020800280701419952618552294425867800703493976920665066881788991140891488528780803808073114034146793459913100882698461255561239051867613459111144279418590606760626010518624677548182792538662290123390186783151443362696567248146813746363947384729306313806346989036075766992518340759667699521443990756826469213481249380051829428048941240277333104602141052661765906792280363475304439179512355604154349123461681669326684723003438367692705943294161778471310609330238634915539951903828547783266124524787803101217291865542207976289765263238453275134738545944824254931260004116700252437863221855946870914483212448465809292051378397780853022395414001494258181569494085518462750597044115484402037583686762566064626873145138585919427768166666444770263217505002924534417987537429987239111245631988343588801368796896733621685005992855772035270229443889599526975100210645564812315638931936085734701726541228543743668170408992972236560773055116919435057096165247704101934318481126979494434363766282862161394635886854135406129096522825177673346493588119487685090209047921747323765049600438164038256380453621231099801212903946887820070410515266732475272659588523489307587276633312193853191950664733263471926296191313570927035335611861096397054535997682408398469843233093592730858334272896043815243115172794986022640668607940007633759738949153195758759776958603095211860253269181911729896742869974241260872346236367463202254517814943979225619256718027288715730373775211655330906007891425739065755245390176092227896692258924712616086752636097039227034005750218856483325277102851018123762409921438960037429032261987711462677347491977149579249869125956307523522233402501238652830074568745479975577169946458901298135127013494575064222540752876054342151049362019383138468624553106397225075799431072185902669726221979183947767837649765557445983447750734520187714012048209285593396219551160005793084378546270755534042201704787071153547905675822683644424684529488379101313922555934391022114460375663921937474907139335781947312720206533827813946653547381937602647123996658825512300754193538525721945520686491791532245475400849775715435447498278323610909347885671243214068520342170513245279569208047278641213586087685055535682251334738770866449477648374457333744441074625686925880627581890325628611606683387086059592956347470385673049727142878743417518206966493564328675031299421537907566418348810028982392096037258589255803243603034752209606659011499320725402623224079656501004680192040042732503606595394985430557312719948391217036282743229560846891310301127941054871103712958870344935493903249835964635474546204333699887181771255825279574387728516937789381756271970493207192558494687522244774862618067471014451791460849263654101554508663303111656288199303095561711424398304761072819822964541399956783819131973794845893499808349512305153961645945743024239845299863284439025144957613024233572304278701981907766045660299212659733318742487065578589405115033504791727754535045440827445061914194401284854054206761260007552567705147037655940717328269762201588797021884414295484776512715999312731506632747862676498114284173964931390408375463594891181049476181102984360813892897919780207729267566457265993962568739847975506121676694921202362617232235004301201785564260052602080004374982454358404618881795968723765855283912659927918854209660543084406135173331799788375393170434663145361082563156916628026076463062806367400915406563466179072907683944458489431219731958104723323390800527370066824091879646576751195394417182277958922047298466919269574614905161258532048655206114979578960416487280482160128160778332872627272876170240556113612461250190809833027609854654874234906065170365889077701681598888961970446811357428910670361092947185434668423665503487294016704645482745908999069137731063280908327929073092929491986838278104334419331949449553712504743985200997149995986924472754464850112698130281544622485700337592659347566842370753903801337509461170062710113156602742215561221584316237091719064733267937737724505921849336347258827246496995510603855639280597261640160368838367858512926642853579526654785459620729638908468760414718317743252127129437657070434659457215679324563844340664840772015294394111578040797219684918554442755059118300701782761828626936332425237927152738760665581171378519036832718643166898760531994721296206742139723679282094099012289961377675544207016320111279617929615648054867068004584199212656923621162530406167388840521775095769298473965528752571316871269141493064679050450392297430213103934442538434241282849687469718784700583095657237414549374244243567467806310542808612713506593222102548077595771577438135762686519022271476235728703122099553543746340252081377402606869869412559687635897228836722399987205946549094557282040284592918293966901213967955057883160206321719646184971912506736646399904874242149802837607484669368626453395453652688366940331524611857985433510923282425049690841957151835007438940272677889983034944793999593822543865017653995402173756781649563056407667023702555858502680621462224414112813964546674824732047670545192864367503493355511388972037327058597420692938907016523510250789499262557726946539220840973777644876795046747879679455772881735922996765222392958817278316508295941221988405009673862054068741241621750650270664263185726245643100056434646969086353636335328465981659135881160165371994168744273650834115964522432474841032201776137807254465439968264986566503441853619414903353596035403815022066590645596168573062148804761847830152730031596621395607418605310294538727398962173690784950453284355580362212503660415647992915968177425710793527700027198102314240635689573288082468588224036842576070811813401375908259488012363980877255597096074581269391681431941938558520276338758770393368199261856693229119775237792480638695928491459923965428340734580143231989721069749664809279399961144382646571166544937944386267984082250368950394571153266176284070066071407948803910574970619902758698287272546386323358011886797480402512351668868025558887970559773238034104112483128279079480366398487081732671847062953693298836904420379018206541924870396065473545368249142977524120678624970309683382121292241482553086965391589985341331338000874575055122558714631603463183426010215936150334172510599134953083372690555619987961261244585070256648731230648669061176333018528267750074173915865485576023836427433210635690719320226661973045664702875329162074868118698725398515815683901761624081494898692796099780890533261466834155191793999550229480776443547954272255883409308205451026853810719905087883511663848954674409311682956238935292141693182241982589647463304073255851484372946035586170954033131466557044160844746765654076752785845290990954614864375252564359991672219987551482976950210431406793780917062627644326937089291657991899743411032530393296988772159053857134375714118692289656081378037847897761796627837051094678405385546288748438893550218794863770005475493735249410224091966601732436799101978556445743624908909005953090772826933006673878142159646069913695087115685629017046333770733824072578299460980305998841404434255283027607119073273343535309307429906191521545425995592469876691414207164083956490572430212908412782101847507895441896751195751359446644987815311433476090610652865966734398303983115835780287953514887433000619767000740874013434494274107152503675347231335608766296563712780109133031322454880290730947311999967529080156999289862114028940991929257097279173941462886652756746345287183171386526981801160397616995448749028378540014434233615880036088564766628126649537473185906171491507847699292793735373274534528831231065231624262935926360947322243013443165603077297528034751233121780167343316045005805283374283646533560503694666838605610548177054906152531781869594211937927093324034684196152873244183144640799662457084473290417826030149870700588802236273951195233749834169869471688955091057777035884700222359016838247503865653526468454311489270482595522502408261326122769370601106601528031709856999664867815406202051149674092081131924610534562295280871909733379244651380378341698497574938185715297689662877708910523288573241071756274816831039500997037546341901501280365325046719837559341736914275964801282663467842610513439123389993836375027848398734321326339437879619415512675938848034023142502043727120642924993088605238680797677184427817727445687838454715836090123662215545648569066207095048351256828404414729592055556419525985272845370048279912458491064944629038973222655192316573189347856897316707886771142322264429332505894764401341395148073243907746438396384335625721719459127009528020951132729600999980914691461620433795694129443298691909470417248384538934217337999995994965190858680022277364810787457662552805971675524110971671484577787041231262022576103051492516728888971194157984089939620168779968682408926549924415361364648398691600882616846823266772602347380364461304333830179463941493772888093892929856995382931273927713343582676414099300924208582324217350273516826072017689637312027990756009042941196335149410711472358131135232913395215519237677188693440007945722047190172290498950869746046965379295482545365730808614165759424185718134370459841230794092249748359506940098075702894243016300592507301056737142614884701402788258273365769922609452653078938946565915958145557560911250203337478225168440857062637881588693244989862533417879305990756547545735424365065092722012910154152836658371242630563193692189585303988280529156070219551343414690170843077294517271404719361151598816443172979506037701578401825460042196589986434393870993236936379786697019738385195502564264124378122693741612971243302479750299480746309720163905477335289510103166066630947460890340704138710610551350125695212874332854680089923375152028005724640981064318138123461651830221154320696251448272638003925244041301266207180849033529089112753291515457179260746663278488069300746297387359988339853392302010589075923636764345425174070658073690890559342532905846798436858125186175316308061717294315324016697133053094711385762125333498682995090734135607139624574541224888781390295931622876703231146583506017307134692151445008701655389300199453894405773984476097735950649037253507626253807124857962623548182418242199312807356768972116418956494706449687427632513495923688423620737138108691991930996325027418030324030306422138227610784778062104701600846183660447398668262283850713640916569398605612121753341259866544331021745257688252898391232798955356154923870473957426454287206750735925473886999621959691038212780999371252145374442071310350445853497427541014998813515140714879248354712153500744316782529712872098384759352067006145144356924833036014007086807287136876655481066588646925578351688294450023717051480196274710720444503075518897538605583621221935262753166826640357783258350209675737552417612304538861903020157133476613272516145334266337937493959482925828894969175538681628699771319974982886463663635164864215249046991961871070645774922330075227405775803228674747337367783787474712564979284668875049052712831411273999836106824596359127328150653081275482981457632731552779836200630805750806919929516273119373362349181881017677877822636045493365824994195950536938605311069031125356121852961717839475905061079344552957855095964517576206460594643046930093008474071857243403278749892747344290613224804785205847665981194817348428409856367276669571249040283298993621465375242911808057970478953693534266611624179494101233746892826993982357587383410348079339167331679534077666707271696921402384713415914985426718530214296115100429303404545341861431520345199798794117173443519990345018083517539012762934350949297524260309869263189183297106836220950382123033232266114427892576783392239222144269926455952856800079511422903308803889299178285869894611464256236870972002572803968416133146065049638429468092195709100694966947558715981712114233925491353514488739948156122045778309836665189471333404171791432295105326229709720743958403212493405300698608087388515121819966982995951292503745014168498025945809449438187056605977032913359367272531630679505646987991472912255798136140546088961367605371548241139015373467176798821895294336881931195074864381773981049420939466564712292479291434668652036351535383780011966828523483278322430574984521919019408037242867741824613319712417049808731695666937152198423700927569839168932699148157431263439873596856322829555891286630336672650252982532203532930981232285432288228941302791312963354441607269239405513200963747440488742695515747820865847481110162038613790220100364175157866862077744411191894060135360943224022101091296565317457127014444903784336269547372274522808086521173163852250580098568083221700681026514987412369976552199344323652900650065471929853718613236260110219571067948928886893639585144578090956672790917172063999305712285576486051154685436123725588282519866820216862604515216161434377225914201612251720736789592678538120655864409733923176900197368135657169489355130030331134527786110643469461890042101516992475857723656161300878779406321554368437692973450955918531347990273680083673325151689983378292581770002389009606072781951067550956379666618833803393328023541303238717781322741183692777384302153269582232182210787553855028247169384217740856167940923159921996946745935746900182285542144742408088781541047256054435889726562582366159818635665565233248014926644049405120012094296269217574040997769464799029229965676817198107415856883058021239625608056824119934005519755530338991912288794511959887805725931867690630019536299332377008593519983413683275995845556869387573895706778882583055378373784673981477195383665058687171757563996378601898129227305202356070039823923126913280134216559148223402266790735057024180952467595785589085426170934023596257263975484681580038983655094669855253402019395772313159233431680400623122815356563019337561230721011527346683724567508089357766610082818063828899543568284339195603665819081463343058495069253520240164684674874782646931231769775178835635696625932990015625097805764712085293298887435393049105105782872396224766194740648827974051436655859697151567762866838542125038003393919492384408312270669254334726092347859340245922715550026816012002351354552399915204221741602808219922286311338266271275034810108235716141360145787602329655475026232958040615413625135996214723652780460967318637711161802441238613199324839901352098387461740628838063009850173607531263641260830756078555492486288895027177975256673347742477048807707951927589096521186715100218638601357307869597767849582982049984779751158024054314668256448260742423321250573947408831846771960027048495678252816181378360493077870899352245441067725075387041575195181477802852616658557259752429387246913114390052724701039771910427862139608328078296774495995500906456970239776844471899556783754357954638416162685177413567578873648047092534080708670788922509519374270470204352911478026953300635820901279126571275089992972823862972009742892564159458284044105021075405188053404055286739262016296828060460461315518840482513578312175452380990902343865564992837620731509029154689716395323025743371191228665068353477851352460465444744324085011177574271264503636812094325755289135379819011339850794626626644854257429969914249076768252785317822370998812401138238828040982830833881018063490149185737390655497689911337238655624305652817572758160661322831653301862383454980803839320990085227374741826986541249171583286925173774192355311478249200591469451741793939891502661488998456300545354322227512872079222967425090488045182748817780658940411031196264852850523081462373273812131729812340158037778835610858607423607694462601376544758982506571711851194431696106836599815004581026381098970897688736893225554928588015319875723584282720080734060062148938460709599609243512353074586320668496099722395472468274134754786285914501788845473552050361619834517987865747626703875021536487963611944912690690549962888844330710706548553023674654726266156249618134643720231234170888148876945838707953765299836195389571070556444130695492082912837779734210583630973730911211734137788936944580289761609023762433677470136104212929073834845786577599671179136872083182380273360849012809641068140119918400205791783340239705611333192552790401165200798854127130670291277813253672955859205194402443456575242626796456658731428618208167547627079152054755224769368188196272666357856164323064497788189645325206336767006887195880211164974049101997029542535372299595931152733315510341622505286187856115811530036875157183474171129216790292559664237973763407812245846750147937632446745545159502797174786874407192655492535764671653265868124913392216636596748989316441519442283218327235949596799093007962532034344340958068589452854761316638131225555075146319851870007389141345114692571383461925692570840630022608159291460235376008461935332029524103847344678004989299065352620820285962433882307199177507020429267928199320073463708412688994667694754928344189465407262232167773827898404556635874369621888733157200552986803323345415131011570916439046358354665130372366638316478689946678147250486508113950763334609375572363218318557981030389439646891855730092721435030524940614048382435679939463540434731336882638862996768450759446822429328438769240051740905027013877375172680751845280738124822647471988412041770311169882421138412424488603755017948287690478521498631159636752413544237309789990395679082301254092966204270507246086325396356758574816199661869349574141453074289426870012192076465756184013278707555720345175402457077827635000601743069734269763256826164333220320574675527386907507515233553129906156086453553284188886328990439217801642153954359836930205522104614169076992242269574653155617358241207223974798475328087075384595642399679207548905447123518503133687538552933284241130478652657294461405851945975000060688344336923270643665187007518032527873270138249969583446314038920098329320267122564778357035048215932513218590894454434206020715643280650973549972313763598353603776336272259262972234377541045753587093328472030676458017115483122539284980693153990020680075943142556593172157171025266776250447509326975407114079461952224615102493382296154924733863331554572849699025839022970220208531124104839035467697541193702533480936889029691565708118779459613686240707781935852688044101669981712103842431600354758564224383130728797692524760086480670670340827435560446565696615159849830861385742283212366017905421736720508360455463607821384258771696477506781920677910637666653322307738361306050852373826903315747364438901248990252039283641086696932336239234088585221834676151635662469341054535740910402303252228546342609857447199707987039934208285818632214314480973026149923842359361926237193175979487950369853547242757061193914311697847930298845511373051646764785298761522252485112520268359412784254552191750086838161859247194297581813529022027123163449846748341516110426530351429479278559880982432365485728971180714334572413785960517961313353479699671401827317064989086408248797435720619633553052629705619768111341281910202910369176500887800468552965496558288317422994261883308552267100125146119790606946972112811490962545383214655644066421240550941798178224316847211824911209485561948363641350934260500173754882801719030607586324398891037187362944573547758105671002082934371771332679761441954655818441095109347446250054936925403686831525557241216538714797098897759495439431252068816515923147785468574363172688214713711749176881168264604923449689256299610961002860148190501335067144691718978075048004010745544785717661180098862643780483747466515941864249424753746769421172647780212999530381263061438946114255738216673301885350468193732059977583762952161041083794446502868438582689688582342696143486263985631863601070271390780728631877205667863019886078379014890514413528910968757919320865397604930370012867161554566223126864920579716164302885195463599460005515564545326045890567202904430905376070726824667868501290671304924541486615805936880454288341143720831203547675597962824825685775952935730655235183399797785070083882341462928054742943147306660029480263702700247174917770054182218098265264167688845349572572728148061947955324909248168929584513891729115004241450872258296231426801459850837000919776324527203723188702800920245448745917605613292084896532061408531424240106083794450309329324232132157190980162442533978542080741872669935045146067359807360256755186730321536315064066905769406969099810284870093573320811016115383809997055113395993119919146308521597608827522286422876597000153142122956271755828134649468160349926572017169262080196308409534202919396795992225948424574143099466442192943911745013682368468802373635509581549527655803591429499624680828633277783879364947100925210539462812306541209380271088641423177098473815087256476607383764740247066101745158745921124396165907985081347322394170804789848526806590903126943547132632323804070411544991904569137460053326735961870703210320184603370985967976468051639559849941284001877778778062329813005309933730859233505185726112597930801021661179425022363584203246798139408882363775006480754838672720468957429783218812652442992434788048617321930309896452958767472282997861195041361791642147998488036601285007816393060883848746200581559898211010276329332011197782864145015348968932701507086085604892473053926247220013513042913598409135898475331040983375820754573304382099208306690342440637388816593741447569137280445866603536967767846275948951618093882501767488851519395310866334718347052589134441697147208111055106357724003912572826136851515301001316664980095920723214480147372366867070029335360754298355871999033852792026636660929282712096626264956861094968092004970272831483033881363598923203437425274805463347714646115915872133367348386444256137992236894912895292163818916608647461185138514385688892858814249888337090417250733596919576322563030098682450990539392253165448165584512555631314208497279176536247330145389086988863406355594147130389601297488164627008999220002841532720946202088540251606898227876688362616562269760317141891715701353765820707030926749499319964671708561118112235622253990851765448094024931990180914729195073137850049111698609275423777475954427332295179886125175131961353477460938108433631764990810732902415131716674084257740129474846996121487131539144602246419795566919734798796531142177673298829585740552362831036850740388879794424590186317608015732225611379902131453875997061771607949371494200280032192733076683773444777512330879270613838370746497018203843854156236861807728971525950625065724410005383730861629972007490447202737004214882114979898069594556173614698642320908560724001005417643877054487224656047184190611078982601833761679432514896610698871281451378276497305421708283879112158256113879182513499864591454300084254375883370059586595105256380426974251199768700395187288157076120960219471020735742899985406019531770576354046650885749492762117392200852428201074496865022132662364402228517863717483497624626546532813053597645879568974889323980458003249714386674789969728971764450638315218010284424753373070837426528433779808020936405789618628449439938345797898413405983982206301803803609189135573108690202343885699297129571281691864128714496557287450224476006739046098018028793461184622560397088963362094242764228513649048126894633982304413040483604082933258546161030161496773577023239567755176353884918391054937900027518445151003723512577061391955961278650539283908894762869929813783685860043766688134798268921454928231708460889205587767443593183569229787939021643468808299923882829648669492296854253116088966945662771954631672292815785218496055863090572201914248088949590926058682063324405260626794445985049382066413605485660522053984516782259085523181332444175139284427639877803735724113692807779161582704929343603488789290195492325201345083350758556864780202818885550827085192540551086898074866996078725228669193226970837819862577617583950672626900411909469378593331292016826041345109644274150596661138199975622399980989454865425643865819722986723933435466204725281117739372433205291468870979830426055583488943458412079566984683946095907258465663540454030017843252428782109935065723932147148248249685212930820580671114728134508469926574917484725312881763980262942777444877715800013270946432933932795373151258198240640966956831442228331357687631160186609148789813410197867939745328245578150226022468296082284445288764664904671369530414340057504118596209719083197010890056780566375907399813201616773118284864617421504493014750227603730098761140633296499995573191617526055844745229255886828573130890167374794424256726296096502254029543936353072140280017312310165350216142363453686578859961882306218694080980480439864829350669908200617061642991848895722155267509279323679619472363592033278370701416439752939972589081758802671971094813869879765380888448190402331709496364950720057854517807395206634099551380814900079758143887010958067169560075089727356090659366760733061912059675392668105263855746017830021361726398348255306985856097879513973180592568226757169128448951647382716094794385912032539204878977745135697643848666647693967012116939352286273603392179130364532055706602505473129915300912215733390557053408086602344340946846465267211321730711143321509843387601650358872674705058607758847879203430750330944979545151173423904533102742365723967138888783518144172780838409216256550720193459852889581248019134565157480882427659904264767840595796627831149059489702897992610185755179842075182153785843380937248504664183668998583216698332308781070580785513363961133252287794591316962915019227315365801059119264427565668210667329947221938880234670680512715678725811945209610109617283787678527035853898864250861765215188822148285652705411959301796405272649937937264406485412061070704106616872239542752389716547334724220525708930275557842552100208089252263098601427753522050255857710980474815562162173115759812466793616821691435037886817607442074065748468003643954719789571680222023998574550711904158649110210766745828457737152191444913322573708795198837206088057990465079954227162316822768010321601116707293747160798208750997011123737738338548267980984310440766616114520859131458253280990477966313049986063281766352674246398647567015808670458136673727401802505079409731634577773899281796723426129343533397444403380346748571626470842215926302782886123011142900715597663460831842656216402047500912915497764622196440554770958910580486321876955152211189994203635173444717482280709425635361924632119686879550327441286354587750027852286085833690459276145170583934122816014657987831011691190953055680283629626869160709347857723534462678527468527995945990787296525056968561960681222619063255859050662708207460852682467927276858092715353161411646674166325090325149225023678048944253927740220464536978794053948047275199383962057060518565252060589002029703803955418984731572766066850778051981392360075328993813764977869425845122737704861824291732206018773471691375126240826041258501481389563566391504659939287347064361088282249795823275274503642426424278720502620341291960807755119515907178151817191727856934449317780793991250598835018663939356722864777645006387317182510376370449757865780218053182732007352990106513769821794500343313592421091248264301903064383350687392236900436608110154647886538861832643885493283962793107608321733251827686184559681242340058916022092144995679346763955396670409583877496848561027996503623502990289813887799135257866113584688581239671481034639553084361613748891472056530480445488516133740884293456703281834448733762690302864428506296644249101487122025799504592180723204304163988098674522205288922743641721141436667320455887050713960480871681196691346216569191449255498915072059087616051875066047698058018524230602622552504537012686301143373524049647142736405937525003667551194314071602069203313731852189586707733927985236591083847772104227842924464961060398012405502286390833171875076276187445873070240894965864206797271153825931903961672318940471991095544561359225963005642046170168655473863735927017450423803328840659136994866110108573343239523685735118222442070075718445573179152271556280778135801154607300492826174688757099484077700357994286073040674327033642689362684731636089065314774514925411575952941467925454945136722462850056275279897471438254886963856640418187847158899255332534195304927282467490210068031257032581945233779094281084898611136099809982470859514167714637158381563587904476844386648007709066745513268601159246984409750351590298066768176115012462932342840206835805586027546724352676533096522801277860602137105838659841291660197693526135486489521929919397975578257360071782321846332983567859630035750415508338357542669657395534826556913990677356186169826280229204185418893585445748586006953329023087460612542358223419202978535268954242636300489930735072782596507803059752786655026169721904477959996142089094989114926084553598570717122044183397963878804450862034281325283110383889209252502451680138901982939420828895713955832608274401503978676394950772741615642736262622271124494244178658348859152596818840574158890058669193161210218507359255121620413659138579644486225053459220052525927528405666741730363884510195000537841163459064569676689266610086370579893014228867726192767984402164014491116226482646768610622850887483393666767343796503247939604788685845868715510279710319115274052182148423406396531339555010582918167925695621263842211221881730400769580999064793581495150477117289944714568182122694577983252020446936088144111846880792379377883780462758223681921963689413652057823122980603872102796291825414728625760337802365266483787781913046922700016890492987660711191976932761974138139727315876770377658893244917288739744594947334167178092601864649204797344766543340121442395316664685780078792001424245759184008512786894616002731327530811934706310974138577458392268367707364856536145287614504354519256575908407846290861214513090199208399098015619421896818413048272947740136462959996150409864005577325765765445763589784851928415413632119737165165068074273294779263127140232812638064449550450983665657790651619124286141429181587826068520340329630149476934193864870575715725778726405403142833055414380378441279106431536454167093606669171483322118032074609436929577066546146981335215543041315540032061158081774803740898719310691501338115629317211649382611583658133636257372498747988911997218998922467768331501193838628707983075104326117797737986688024189799827520269653442097230635722107138212050212345426201290710670919244614323617977947582721819873842178617887918726570844969734920070680148678049465685754561094862260297982573638353898297311867266667933288783589026580821552128576817897877223176237663562068737491733381656148956504666470072304610456997065599104578339230992240754396280742497613010917813665130266622587574219609163075686193453919571182117663247082790196478523821797708727060620621663438924909038546032396125349056120131088559102299488257698336278515525939628033943254521126170232463832972174933562681273227083288542308432030901176472377784688564758870665777385035215061367217774742794652648916743851002185946334966723776441275500472927743179357580698208890857455928469653047661795245093524673694166008669682575002213629667921892060694608766570133977656813858019300822422830153575770607727065264613341537602468661294474263345608174953862082180322130612190664911289089679329479172600315144654890136940939649911549184921907124025664565819251486807980164239242316493468349772161147541620092944240838617759760493976613873928979801374144406981018448865690561984336867091433118376588757319795795778012867313689916899449688633859620061801246366654789743407133277686239704312286791921831771507696875556250519140736990863013649860601594362805409983474880604989485462583836058208657480071425772230696861808044323097721261006793136710957196938729207203453969382901756336681131548552986550292008303073425367028253258527314904265171727150664049111056420460336214877272070868027194137600568797072825733695372522348417840641619422333170323794736075480753083108028665918908659586219717738063378438805187920191781645534042886733838916870336502299510198962013218231302090069172148600887690046836230614868620506037251739585034762052494598542138890954413815561998987140999375377582201848801503060505994171724482376484756249752935266900158727363928586251988314059208103465534248113330194897006938013996181769375242641807720591482856990395824971411732523543747562495808655075432487518848098010714993387454482217639677417943627051696036563161034165394065541681914205461059594145153850874914599342457811883859032753381706214431387792026764401398812986492472603014356716182651112521299701584339097644310839598850066791953932146929334282201650511120680740249813362385185043622538336749706389837606007096359383688590071158151370171019011223534049047415928153119694864964948082630826466510253309555744344537375053027064275519711232405160301439592627098083188010608400592639963862656434247234598771895846684302124878773338845890283911608433172544446379221290715554361599083343279345537041044581637080620363654941339344496753631768877480591672069158537838149984236941921328690035865086217441616084553498123036846072068430331395185776827000805031564989697736299263774031570299537946576531865489394445183542396548414389956832948296999346020997035056709204726239139943287986233340514155872591226066005645957971068538621020483490709715683441365812580473875648048867626313944461560381681544806426726366570768961872772254149592618512211304939028634722639196957750675347582745086027139391296460599858775383706975601952718267908627903622559125291798064084015877976779353364430390233226579043289825826143585564853974943190718952605085513328937033530980465600189564907741476642645568628594161987180622468668794620772039249612419866490359969383147089059944447868774164570732105198058189927151987288626739031062040605524314256558731094286640290378764866733308528838214835404885688057232007130846653279099902679129892331884002426693937118050802901325883269096385239352430675011685496532011748035606506814821240702280227393557105189141365529412565350138984846418515184712117248475879245554786761953219230205513027852996377528763493553548326101249631756733203616457608530507446680314075211294096659521780331154944699185180729870048587183935563702911539225818421530164744193223959765448265718998952043455142101359352033913742535171665662063768655337475323285687264722683212734287954211984005845470874416666234609914378363493978235021468204560134611278379026674800468103719626544201333684372127779649904180421850794317123083407779090337154723886767425338698133391810707186824806291017202847637224417092837340129305593776248299150263625389354404347090686691018805680352815259579965999224522289148223655161114518279311276058317928344965892607674846505127190855090671544111035627478247756309826867964940784920111481358644710282143733890667845598910119813105898436790027139990591011474283860152656751026398649210929217684172718318673779180377078329922719722990514046892617224604496307678756749523956488275081064810816985529063463300502068057805490570805229660970069424988883096627098080501023146107369270294435959982891168155002834361251701753969882654285358493508901690843726275392840440086034631886496434307889062421088541326874038812387297555808999177465603028345898827144701572652644795387247854322264937057178180162718106343016258070005835746922304514482128881722183558277521786902575203027106288632506224718977384517516999682289401838584357804697504883724320154939141608348981563502997505790392612073318951311674885067785176296695701909708752096698277840685188958203256390914726130838448717639584276096525653867064654361232369313163552809997169501649113780963879897776014007784403013745450829611369740150027700314917412617352435799945965690891046979978900285570195309449351714462695106695327558592595940486004264786434506955591242024679464568855461860221884705518970243893667701631820335622035930277766153174548743501929198899429994550115526035876688775786536395469508036085175206263997713880002618656990887730596419657689902274471968967233384490276800987361975729040467475558811395539736339429299775072435910016638357990626708695240287432364981227777944167053639087505460449531131321604316527427801550779021147614229172775786517144601120681234811456975340415050789670597811202777476682292487213244654101922916049991025820731064424653451466802911041575505229683494935743270550402999961302801714613261744803335849227890868457764895248607423668758019302071539607211078439338207724294546697849746761918397647266544242839944977125082092062671436852699597360472692849493282082080347622726136015502859080583748751799652619759142639317319831248839165603329739535425665456819727789445417383177538118834968545023465629229126352725274836736564931711702720061066367646486706542166628449355915133388862112739641596178750997483962938999060479577403561185490773935006611920342559871080574679273872797559809384098439378818058727125715368777867997598193279483632841113542648266310116480799012402504971173519845080393575718869935299684675792579754895243388754738335438248542046943390423962570550346503072420046375440582959820616349745870994128929768166464605458354245134938413025969733745653816739128581734517384848904006716885985733751066000082481718202004024194934807616650157131027147662475491438808331124584515781271028743009628809623284389701700295705167588008296482399716519957124778394680420896603442858457389288763930722654655151824146774232631269302426045710579838494966415135889142935797094088798013104309799467459174290490250499710539043224531239211030533797842332589643137031321268512936346360461775613141444051901301647232623349215282534134577079505719330084206463465628121957835277742932435114430463107138370870656950865005400201338797601277563129066665203061304354609066314886983343255731061769704731913631945799610593812494623815696736867208623166841500624464773220370342489795940371358476708556834395515768541440000293133271955982184617261121876413976344170429982535041812936004461447288450154438514211880661733005522376623546424524464060295517194557929708078512204908189847662511425460266030579441213244404629205955836488363984434158685302980176866202899679202549862150906589838138228027918338034523442925256941603363122269435365911500590224484978952297199840482507915636597387238047787499135048042802586019407340196546341953196840770552147489808954075206746954149253463376390581786686879333694285991162899610715620437307352586396802039164794361282385053059162002661081051346505783030201458653645561737239544862916903551962522653655457040742693569845932421772517961911518190266352439035580270894301811838717633962324489162650353476812275600722037120752119490293875569539658636919057129830470167593400933809301150086895616022125643541195178679036518821121570548821688914782337966336377927538045761199023394807513119446599090607901519200973629377730076951456112892496495073164217225775975513229579676896366292258287496586386090166637236675027695830190835067974334933730604056399138292348149437681627074671145388971192427835544445555716383358394473147541205834432878382783445585217073902121554328591197413051798986985264548374122119472105944460208118875445641213899175681224655293277476785849812239695984013853160853466788212291677072250674802568142502187312220003533621797695338533032088578855388431272207301241984064118913899658616448999331812565015734824689638196299665889738426181779238706336934500333873039426835020527018654266156570134207632609852304099994676794349054352738786316168531853554184310064285562031568086114469595865397286066672108952662432222215059741555896689890991347549185142389557325328467092310835728206479014898590691845871785840646922632379092854707641047547853456259279828509492006213186724483328653322022972872565946611851799117135801230619148265117663264059818540582716874842842611904819226775323325501789926602424503877531309709788652875485977145025856013859801945720020001815337826772543716598843432797131269527347855618148449621575277007317837394870619447652174189813215303548212068314019827183960624962764021250677297199067961229085012008827041721131886157107353896554045177101022656330312703136477033396602069439950975174071062051188653286778787978015454477518332257908198220868253630413932749160096440681040723391506394862701145196171816833802177600628861864187974806882218525761427793469579731231281755614572566071869707942144299638128319917802187771040771306315628042413532422490633813161627423029559376995043734847602104226421297498431964112999493478325873094303466171451922285889910067571627196465246964718568536641161380743711570342970645020797556882898910243760337831312182731348512929155422648696440028944829306361737945676176135573726631038167679148378770457231551937300985633382295327999886621493022526811977538855362796173141252288557944340866940585993082813660320220258556292013069908154490768707878781221310067719159778316376906371503188018984887784731436564483979745979329251857492013170618565834025823299162019027598809100971875733363021064120315067138903840811104229210464569681598267169387366960659984927632221751304503987604280613299039422474271106065806845817691076082274800460074771605047169093042848329693242312287188309227257868962760929112163204086275479831782531135840478726919470226640861978237051115993965826926772207965430263677563127537923778729640745911435666308866169133327050794824615170137906416283531333594508102751902121393975167927228781223956872606837585977537148284403758783082036905012396613135440270392391535024097265612377051885820428343553589312145642125335176724369184877791584274837872008565701414778867801983180046230602655756867194661547594357832596347946439967650615023023776600812281689082650303893115704444363242640818894234204305448971693233394448330427934126575109402958358805470944112496790674325456142022576620005108348837414759722159058506968867706052500788622526038425448334174215415282974470479928707572125661629392615219147635110948212081186320615881982168470886386724080039152805255719431568260667096635568240303981872980462601069660312826393168314286267945428864916876277608274178381326097570851700575501859372872044968579543802001395478248660473506585293661505124182703839962797350279783515282044665835304041982299220067921489145736756646369638098608162208241823795137879252896170143376207467944182392036609817436995864034233644435421459471711159353622660270786737405122052215640395693743654492889987175471833628155349381246541609125633942964139567629390963362431716776526555150847813050021205390332243239170344832385379257172505898766104153095972273770729750592622578150113157532841113819061610154826742940866127000218317759665651110156926811544644209110903983485773715785713150823789551221861334898133992822296683097718292725137593778702953357994992250676913596525841470259887147550980340496488004026562293232880807184189008418189782498786656653215148011114955817920636550063460172487457093628095678751673852226573468923415809248685415640059962632911799781332197047659435508109494401254539861350920681199530141616430784954109018256778365422130497890142154738848836251201551773545202590437223144591805837935750968812537121006338927783982130732548424356505487852885301376978501086819273422876679199930297083482743965344987468889869886545420721411658486529603984167594249997138405822526186697087626323445087895406108770013760323930334526384960168448437659506101987516178013363798684079905189507671011135241148903941255692510160607694761854692247051304296186483567487389503003802365549268944522992365800442718622523096562516539014503113510337347190447374726528220250925287215294475560422062395080683555502995446112219067151829533761264599736449218342099921590126848135168242052583448692601771244435400801810703470023175867280204174504610403245480222913635066556697652270937987453372848327567517916892782977255885965037087699452456464256547101556888579938440788219461098296680094601309246176185926430775587965977191250331137676869860147414549838912181381534692284031833183682667145431301405280108024973284113624326950522429346192311510036199889353144029454109451466162914415945609174420340604365239518969507334830217728355043606556580802001075224709326032287959677843662448926090202494842417166952526694749374845571419524931556516777762580601810877971638758343040909445072623657123692582064309644887967747750191035321185546549348820629836057638458766108775723571321288721829869730626011834554151060397345464311947155984452252616634359086073648510076627816498831618060363230745408948251086580930692452396467064979802143436717236075776352251859559818144684137084391318340463019700639347013962258049323917278564847807078955158904330424070354837393110356790895138438641714041779650142700391292180767713097911878318906765835673131617238431647193308670820366249659013199200545848038625494056891456833855798191554738769516973776641697636584206206578795839678726071890649911038131391906225192210190030229135827305550141489310535921488205703568463129491500285684353480569230766685806218695807903298462545825434335779472207590633869300981037888633157644579569043266418717006871626829845174241822032303684579784214637465753450870262013029341728777531102183955739489665867863938492364657288368289822347397276473531768830272685565521159674086310074375756400472362819207343005110003976166652414019433660071941132457186427074497794132006005304131694549341846339000117472241635223468220554358757073685835240521523830749376205555868690686044468377721088942658804326858667387103740182233706048980137437328734405880858993880833256643070698258842979787480763288389961982819596876200896208371931606961695765424514097517441592745627803442566049493442936197513508737621110902439620823241741475138330137229919313218267605172968926855821358649122114215462526766075910358347010239954176542649402955805520724301037584271804597742119446065090663382245636846130044789911284992135686114017305579786021625900728174805131353381818821404982917785048096021511411680138881637144355523639237778642254193763536181491257732137084989685120015311681352049204894347473203412814584544549632332843862471672428392249514818437567139807561095707091109192122960581634785659277555310244183591588680465374860251333272806342581854269499345240214376499605189382833319881987443482525956915990521947208044153206881676813978793730210757756736661088705967891909100008900174939377589790436122629311169564663244082486021236476445459390243504333757921152834618562824859679511834787799033811469726708404428110911563156381250583595196644510870668727388085254023475496457868475196403174755455143138277354682203226640751463769895980909450103721314310635964300207578554053445585617591712948652107513981706582263468516314243266772983980737732795717321165895131685427111533543274786004181683674294452880312353858324482714238482451244251960024867390668577572113103663578667549148941876584980995113997881421295516384144601828011553925629009206349806471078383867883554606571965998695912681205111957606284863454671512401369529840509559947001197097217340970781657037618670017397469784386634627471358804073056714565931253794402301469414511628100906618552054773455261487860757273290932175151312144915355438137850660661315070755121120544113028865213555173865693489290639531679271161985494161113233291290822138083747671330181653088846673442654144733829414195223490568490621225264693297913200002067866787053938869933308710989615648506524310317098220316459032395476545585661688492009094085648793756344236858715731280614308838939138897339430415302309799776246995226896311598987390988882842409456504892196071197034957576286451968213069308261620536154788177425447032074289179919792076815784269370275717334344641250469543479957778000090854798069459379410959991011036870302321664848598031889567543987701888953573252590076273666347781355499723136210070718608979645149360445490565071610535754881542882751976484097171555923312494222851230684612684137275955807044808848690843167983938791103313407825325759828441540032362987454473230423674862522674005190354717117731630874003184776837427792080604386381476992099976053601838063005491378958026239781768437253308069130620211775814376163561891638545638450884191677680304121727333031852983101919372407780364509182319191837672092028164018925370658575766315790929257225813071485953227027208346092551736182750414288807453399728466457804069556162888036564011956372790215551342701043010380535970578616528650071214056399591491028060302865741667059913274942139845395861741895568314516578546812849423844951182107408499739104488856135983266094868808135847331869526355472050528753398494570464260085729388198991703635107291250296201895090239804134264063659030719847640412145388250018999771064566510137931887685077269416933483726332790856731203466778269735939565154616839329113908734021163556661907929979984316943490869755203681986415565514137135145042833085403666739582476734299641737744550100546410934462223455835478092782325422531987779553636241989670002547088655732607832393950605408846736354052661674050669360262728257188840520860841292874364009300131455952014095310221438236936553224318641255867916015474490547274144345571730744279330910691673977819072836173365000203841922220700248436501309085188600362102227584294525298529637008111868469633610908805043370726227455986463803359329711489765729713340072940642827060151456584424893832913291771428414212149372741756023812459459397775667754824769909463711239935552164264672597107922083629575004265648555583772119495597228257386483706018191761651804938589204513054236720159271100235671623383432740315688938553609850425777977216143109566465074433555852743357905334012298698504080387512457875277475451115625268773602014882627887278304928137303547171630569397423602291304213263079175994333421202395020635848351008606458953115218409386935642759822468728736993788419626958696758599661238406691084263753115360586071812797654701943295552813775086791789287548565283903646606684099320088163982558025713696896851817876530654032661606193165281183749498107542879004471315503080250866504804861167256295904307823725895037262904620290395082715350439855094957755754370389266737914674871848203598978217627887860917054900288215224044986176885322114216377261437539367975599798626205602259908167198499437423917153669161678103457603421078831120143564918534013047188090489996131851669091570351771553845883494137320120762480518250282886453160481284694929134516716941885473155125428012617207640201285989978004958076308503859234084988011537491361463001481792695108402934017995965397669636022415957093120103860229637352543869265347907041809956781426974770973459620629674752797353010980596229407540634295676182237686338781731248037635849552966658440495665079028932108326448147450192866600697027294305915312756116711229005484146384604112563428637601557762921159351093963102544956641384781162914305948763880776361730413520280932455977608916638304943355431964670507232226847089360340652263706830138896877029549781393578051341970959876824670976475138647357778121020300437983344403908631311452686389636474462603804684363571842810324023807757916059327806412831807532237501111345649149826041531332478134061757991555516549338867095726943754316456633026431071078750956245726416620241301237594184886948881866908679925704300353202201505149197702958276823710565629786010954491939389857085808097909310450519575879490552623133185150832114834842126082691943444122337451393924124995956230658447551268207829329182014099295191261859962804926763253507558412210746915692578801638812971779641044625656015567822213235707273681546809487560583042795780526630475009077067357276020425193888640991026181804284059414681877585142207152364718038426699921340300441788675048291069091929441586267234534928678182819930552159207743675841249707285881729608528282301086931969716392041910697748959288714953006602401845632644619627353990513992659045035255461058167118510860656031126242948830978026204319030207744424161140537521342769509961941366660253383013157552609189590123385778263624919971365021896380312220345317138468204546240194607515048990178840931668772887189364501501790936705841475701153490922400284894702876330519428174639771509656795236942224794030952185716276226762725017142999036659940616221098388522660404846609114958249296009268166925197440303199254518173087690722824284198690810058082410918625265391536432513042583653574695323852844571643883490781778706082253638050006720399361740917847563900630459205587472770179696516916690925268366258578201830346676002886662256399389171060911574745765818610552874026357509035980952703429947012461906896911036365988249782274400156979523065434835551175488332949701176647317685336509302502430317945071364757542111506341264912720885561829578648713705720842228546882304948994385828520547518669544427786975883601436363078151588369208266213438873729138355499816825669983180170117001275071165625566090981951823774645452721886352826708933138170748574688965945187218932031849795453039450436623878379348483576598488557599567883614680916183899123320118042891156871642624169946426084921075659209214433813965998870570858523251635292522047612540057919057339048193577994282221829954914702799632127594925058863089573988221878591059196177514016368778939944509563972514290700746849571982233097057438325499391339919304711249292275806435240913049026381593327758455819639282012926860316095735277914081467093277409268758151999837223243188892365221829838242538145794118844225209654015894374682250359504135258078636261697221307800989581252109332848762860598535005232137035741263821189488574786418164018074971359273371403553522773494084041065559060225113017263637377902122677747749934545607223586777953706699045775944129911284961777915007292255960284412621695793133241790818393640113085884015635662466711778103221613230274062091889076747361914933320659749612158503022826912998998364310276768122873103145972050498419884850354996990329593395417839113328397530904547181621235727012178494243268868548289067337284512937776972343532741795909916212451650644530438384573837138347728154426017503508903755883231111634372789671734542340464758676826345784099729397065144332516655551710681004564300731877792275285184760522020194727653693399192179973859422330903121604496603995516046977024228705160108122436267341678641204754908132689726125005124934304294546209297240729803502795322581920523125178807114684513689638668799810328506981871677261693279845806953630678456357288538009425004139629749592770098139413142846254834325871812804720499009310507742749998126795685684250412771134522613400307139491384684742608080914371606820312749217243249462692625800520645424028776531662509973687807095101005878389942741470697805484075068734929032338102146704550890962442018215069553453497111808560601293598903506804296440218829208674872479098048033596575612006831673502124685721038280909149316417387370240300965972456405402596404178262688704511019666725857115119587612408646181284576621524003643241136894991768981528723675247437029812399582869542954134863834991666701435132761563619212414199816197509196969977904312423570552133298143504272178508051276287252079963985418595927557262260313470318236735943477233622735981271578661573155795990118707194268894444602975661551961488669378064226083661180496563074537516943032568856191280181370834437960008165404262265378262661492867310658168765303034496712308662526541395052941152252673442500169369195806171456875497646041979782336830579074416741021465835859765376104551387424033346522655374444547807812588035898505280529557689107128176647865097456078373101744467303558571300714795252552089368488573991497608416800835233365052602865625337468242895229431690696184776838181749587193788459131083417198335044391757348081218852686735207354033782061241879027645230771244557618395055698978013002775718668818015263945289058205407394036283497957655065452190722419453277592462125617794423174388523880502152715082485510352332891614469637962871031224078405150370711200320538692499349919251139595143656267107882526987119687318236410811326229072573282921074552787447109801306584646757550255149086672538309891906146844667019530776752546239065997887583300272421647804084095556303143254511986036321885357295632133686261430614770195058475502461513395062614966253063655020448444914588962972527921918498434192724151155224436858282658301925241714886973044733133996641344700397608336857457758090462460511361244024098683159866073970924827681205800210396759734466897676943823305275907549577605545974317532623546065703362956040547993472024783508540116800607188324690493815492749339059445521583508432919263277964619780546398562221371496195940284109364144737226721521529299781865641616509841405143055960093758748833744027871994185070996813637039520250947362565817263497486402124202823019645899831942426799244137941536167193960190538270111762392779151379276656645025379835182247907416714303589132308738008936105802117122172374885865547698109200006871997885519509242918395446017861915130404706260723604783281936447969726524952825733902479008429880131168065358783542603972003519627519009818225972225314569236758373337320294421760918066871806379841283474963487325436512459609365992892820649059779037591191301529818503337565110266161552834855148669961514245165500369903142349192972738606680463749397897140786440166676135204979958378434374709191315029255028235956884040304556570190010010975887044584962016370184797085392051602622737103678219924029506077989369747408378877845860614591077861919195353411734235963093332791471902971072942642923477421777158210191781864228413481220534497670442522179100350226845847732128264371119068603182381221537586995915760424781181339067767561216003167904242261955396914451699673422389288228165474174842725967506719935443601826015670281788863945461276673787523319257758162117800807847494335571339375946253786228186756118789548842079763703323469945893558566754475292261666461910581819916249787882607862337142685138417092784205355754172502598714287400352408349011996798909745428493394286898392628689847810072343074636398624106480592313194581304958692761215048982071740526495312248647478141284622309014035453482343246120918104801218172459387191654042538664959908666225291129590745997824318906041345672693706945475957899893471035789978570127185835235545308882953773011333028430129438875181184632269666795426145286603424250596859382140637453082686520072592832433905554552674243032789651694397733199901272742207029052075737212845328486629830041970176524987991942698380674035880629485836692517519603783072774410474327324839353088347179695518282252693283784233124973177077138543987112117058580095654072924975062726201627469395466685546335357683727453785754833301747046171807927438656906309783144543725507401137666354111676501680615968296912329758101357180362331688565876864181346563146580307174191007596318499171826930785417395689780676833066111384827865756361169991324210064677222941330859988321745906093829413931564472269845578788639722557495596526769840774692540972410641723600942996432277916812805480066058016537334741216274283305060951275868591179469346528924594746999944519719169872079334340394177208250907779275375848545287496663209506163151237833008370996826568450268915070291478652275532228834624903125747023628631258877401575626886919236640422301719040895176487887363317488244789838399010308514140910560686278756303946680685300623339265966100000143406052191990267068876220613041823744007236140871615788312987303767168517598716223256504791644333174606442056714840726438467098594646513318070050610732580135864828161222512885545952219674624779767043258611492626055951133271803782618332816068683312250344954281466328998427797313018324413072070124852896697299166175098730690484631869127848914522166077194959023016407898434843220853645377194551182581067020769625511576113110233778269827063676900266713217163573371498956968150020079912654251868618544149278468032403855893374366346893892142541352913771113100026092501050113946740959591823079599915058650255874278788815773527438059805660200269897233475360085127295424473430893727385766551847253671278233205854873311217742548966927048391920622715011565225726017048174170854315775747320384413952221583398196412463814367666132682310154462097887970422821824374999974598418206007118694142689825215878623038621020840323785755439214423322207066211052879064498501827025167338478270635861872044301475029032315452449753787891226904710789517115978990521082854250009870401420523235632114139230969428119429871406128590984169566276517134174982883508579480539587305031172602528442381598154471590586123217546321855824415112875186814273321988493714518715508981439291571747678913568376961008884930116050381143865148096919239796466042517792076780094517496178835774948800845250822266354160835126701107426318042169719574875774992479826726690324135259112726022015842265324314538510270533952488384364152301440027616265662213442140016963007639286376675813964702941373564057011062157776144649942308242317732423862065211297107601561750531064822127564251290793839533012955272245504391690089197296916051010928566732201568612121731992561872028138505131402158237710498311581964308210464609828187087289844471348244457236734764998797411171649899925792982220717321522769125003584257245268281224960607721211959527100280235471833681385286786561600076947640180969900511860891516975109802298237788126045822738337937156727725259790417763513378762111698023840444022111726230409444558896102404693443986479702758008232420202963425326378496524920682105630042173937778530765960205687245391308752569268850894209369351604678317555935225560873033573499678574283115660531354928234315337773094960936290530246055969111739349533468631513766513968917016525014304908007068999486705093440743376923717122857196207741306886174254275504242794100145087856073157194655794670811696817837979123804502856818090468008154309580411796019356349993799587834009427282948277235104061152101325412602692389377808020987106949787524262006503700036186215611217626755609660441775208492537401646112527956447487577822874322762914168335773024464222906274865021791211316644594443765276959440165301245868126416530342539365673330319738357361808605115781239665920925673568024854099224951010519174879731612906372522072034213525926067442330267739879802810065936630067676483280980555699285227089234130924202289450289582452784123969642520225484735356685516373268009828798998390367453098532497100964198718511734801714800373407498514594186790578521490614705964979647666820034518362690317622473384388363345058603822337622688036819216085727143365052074801466531060893815947166567376320655418156121876708890123077847720857722760100121762684364636679239053734832029369249611473480719220214835598570882729615580716952409798153039526847491233181418259804122588763720573539495095159678372728189584162437712112905888191972147873140519237709797037808832587328501275098457615919926149070237295896176869046791465884489519700444009902380818766203270448773138973216917313592198891505094329489262165950583348696692086355026957084808884790968496133355044088276747754132096306337243595348571300211112320855225363676520051041289311288160469358649654268486857547004868103311236571122935766601033217592379584781448071863653227645062723176917238139777295676627311359604074323495617591987332768820823893497330185716147761289327164933251768230165912675673178278749434628731970354768476883331329986682207683326683949116467440715531396787363784201454903439390478162578191364484240797889536775604542181870332168727924610937438382901059776252670836515991367758522488819974566998523176222995236189715834178917213890280199451351301351333039134576406547645531893650500914397210409184217480566664645643259177598809534564286981014247427011041395864608338701804100127852489500260885675054712369152449928838487694686796049241156538717424699642419753563121928192694145783736275580385794174594766039683665506357432064098759767009585246696429233482366195744234833555701991986396455415081413924879697774314104932869582321069116911190100546550016172628072555308644056485798307168230129277209430600592220631064745104167077473396801903011608120571681966181199593815436701125641094148580799698950106485903594832753407599972399153441641183776939265644505833743491486406145780686678343007270458944843927842232217827891026613704388663446631362105022886866749478730209632803509043477859425205983130289516147329282812682860858906186715721176719029449381215079711436496855137426209685525845909389879933892655807297548061953882187254350531149176908997132610523623235864902743609596058683101101522958239872052757824949583912966395575045142941297895063475135394005038175392890805131723033496892089326585465693857254823473533295812596468169254943876393416524960091564630030865584906441068308937229211264175103335324255929792447032291680707012031237999063001879963643862258878599840407461570954908318052017687670275853854321808417686455633157336535551454101380592752389226283381370476066385700183695064742555595683594494320999931216877835354322534333099911777924820596010717901369271229639067021285016448048394083022571866106426159313366363304779844890666147522048857320935067889232833215988101805872335530524667747402565905351390837573519601011680034346748299601386641506797208703239234819347406586185222643190603334316820418506836384517433063218150563095438148646906554866022960701790973401262474980907007748116323383046804350246334513468934267145344708494113429456402812911953808700416379500867394461745116039058282139678884283242823575135328629274285987684699562246089493152780892618416878655253806399501714050565651797256192827396269758157688793467266910731365730032728684041976278939496635225896010706004653277217532348522189348380882282844745525633332507516509803346425409978013298683872574438725517064570775594162908906850820028766968762968312403694859526365020778226926363321569655037769029200281069329898432127086050578929783133179708109686370648950487798191484066985258191562419808375285100405196368794392275861041713942329610257268619352644952387318994489938255354317414944605460470118840514816508220089334578341854654769193506472147301608476029737060768182070657942421076219271678008155251332005468919770349205577941046542637233301542416449029685311180749655291679502114457300469110600897079762432529273835581638037084620690081837798886406866764912544989421443229711677385156156845897472234101926720492628153798842513105242262340672065013254083332043226617434004270545705586720925991074266776819410813973088198173105540722100433202094554530271659354730749145304996522982231708423549860897813979845201776356760921568772548287551715468749046653927435970697633477934394004299019819743351712170757007749879703803174147981876171049486646419004819676303792239293632523844158985427714375610523893757970231542329688486218425212248944994424831529477231164215123359158568119358407588852385947758368262807097867032672662669769855026771295849847025569662264524256082395898593030235113990306664145948925668590497160488965598377901862931077436602255228153541144499666468998630678630510065748004330325589242568531523667565567803407793149817634839405327220394834610950748556550617054113303449034061810858682097361680928753005982636045923866404298147540043612906607820439947493257264426845465799668913069613910463627752338818750331188869529790204864623191578004045549217851875601556184258151408648735300321249917410960466736451032283171073874250502835709794355569451710935549521940148364163988947539360894610307339624652404999662115773520504409556229327001460648342087804158448990160369183281106812479027280294901745104242328292004122956811542230724871122468670662655151454300655595033567645308365987860615460860123188737293507716566373967430855645187981891845597167525129484893491982695093676210309525431003664101669134546878870796117559758600134113374935827336249140014261111907205889896042981360854060711838140588409752913061346680952331142460545556838650519462376765849358443853432359118836398826892989537093714012435896903241933139913651467257213802012065572670219944392097850378583114802739499267433783954130966258352607473292322360465517430773061223108015643821823482844528363639415202442608460207607452834493053400205459634943160165349853341931702415660416435352382601438224518232316345920151750934857770812179030680422083783410062878663161223183323336756511914235150982235249646700416797168334179739537603376706473425950036461624977513239490018514015922883896365437273240061146297468544003727442089991821623492300075081528760661445902686747262547908969661660647326948549531172882434419399413928855075520768351560747601425567667545445033349217680501968356020451259838079908378975288281338034731293941934862773683340053641537765765076720257635438643124957869832080610835934562515528996230097371188981248831509304985668513293089628031247479049094488227078885950622659093479934499679954000729048545381898580366807696794219301176686029737412508647474381930187407344351496411962282083499060548897581139833178672485380533255707861757176020682262879585761245274371138541989182087002599618148058339789376820408387967281339326647486498179353292612716549083112381567728803834408178447233646661661837167293522403173518332090689201825534715736358415394543163854592563300702608755964578292099341867956944289137438029188117340329532364733544634795315618914574524431854556072738161193171429778072985075259631264446277155499848738016589713237680351128835657866741738530573284831503174552498140983832218648775433254476778862358920889829893100920411344758119255744654284026690342235013424423161314839025896459306056612021851817131709960860389611000840489432434363079892195017848652833140539398969523281747981080046585692495812507142439874859781736456239101388503787269493342122934644914522677202919447244409446222670021093664280323371811947573928008845740940164706600917144279239048438290839313864845279548732679631249569708522619640851067163366087337716630561570899907829074396086906034151068907714669690646455626598046053468396213242290453031622763044612394892022055832384042962921335705735483032059639801686427808621813944138502644818616790442572234260834642337873902575050049039875535647262745657037359137530144820728091763873250659625067671166766580119887719451584283716821202473666554216985553451153414918687814098062058314974321137842026096163475339978820539011225419414498238430886130281295165916318243742350492260898774621677979059780803216875180117184994728152139405582746573493812208461890353546862563754386673146010687854363174307071579163541334833200757174027616469910398358751418210512254462455712996712388990220284010572333846257576374568261254044233301090832043310579008946149390569682291734466356106203070247679034366187121527904825812582658887659908167810983584942862459588529710291923704546131736643272771758805354202169625024933952900557579781033228349848505825510413479250197095495324088537169504104056967434908132779150334929264241534468340158354586929107276616191634117804033620025779453430121871213606604544288314365779532840017632142867383200122150125335156823998412621947234370784555583387152027721180237892743117906560604927335364397676637929966383758555363612718336675672748948962108103008290839295957119605955633782063188410483950231775143727228259539096457562683057964085855154723667435389257945021918368442099735930129974425367423374603039915410057219056990285810267510205364028567123768735001593697465830308833014469107360169108515205225150369687258672996690425831199647416467154788671346173019642433261373247335396099691529862693113797566808301534580461943319982599495648485778836717519511531877868361754683779199173337349653728384662391700438651528964182397096998508920707856619856026589974582436625183551717800492898812414215653933138372217739504344567528329494014076251989022014583386322643272538943214101108583272324121118636965654925282828333693929931645563564144001823167784047792484940571192936551490485694789851306077806646932081908503609457649482856820066303311907360505942828150615781847835463945902971928257952706353256993621763967195456140445120063707173264637286049058791797946980641147469026813344188283480956037588660276096014848144494814149526051616299430669258684310819286951839048901466835748017567410804716964471209584115859176035909524833705936133258245620885680924222515079127811023401739950517136839004039718282646404781012799464309524663259468501274161901788734827044445855581661961176129501327438560307027526690178834321978352758730192959055704636317876636292560116761382473321415242369343318074196618345336356488535275533118739045875415171699007907505373732128260549394544059855780282146644049264431480473113277817169532417262070144571473794264109162349751825101719769229111661701009562185648236749969132093562810003710508714975302266199305132198780139376544745813866768948067127874701357432258225414670973135390066037500243303401223430920215675858973393664582075324888763401632939207449210559058111046133917054136846105448826129175510560213253511636358725949320708291581958142645517930787195867242025262069793903110118741729502171698998900878381123525748150544027311786221369431926002142319352938622165349291020934877967096885594133600853644953268930772599230389212917184663834789539689505570080602393926785299385995862659420498511471380076020822701029752177406323537053150926083790621227735459877624567945170529871397139954915004427557910173289298105522109010557228891544723935280640918306837311327645217601472058109147229930683001696529640022488426929712726190234815990107147710452543111046722275895332474654637775205501933482626842543675834379938585735938667025563599478115551928236093029964790378395228484745128703363002813744167698621427755404057263620053052816514194747092584531936064729902669986661642417562319434575127846666133131069930940145196561996451992070214985675409154240203310408067892669123025308210385125870709131946953939139074429180021146872918841261475255736103744191288841005087697666690399402625353827273072149486570168608412724361470903850896113113136793994431243285524855934335089284029574417345581322807608835483824783988520779814013969593684856616483627169665048045628225055791206920056646817164141943619881467900072583633503616241618139900570690106897068146046021389726005591431664401926902894848017195695234448948485084883383430636191506199436334916406695951313266879436807871470469625047371668708498845523697621596349370436087116650456711914043952143743076180637336956221005761510664502198829142476646526714703651129884454731326405374783170331732829831664716581789485062772639707439846943085765894327900709766890517953262038582311313888165853632656151777740671706426753890056555079705448317260868842446890816415280714609633462254262213745597611291940684899245620169538073603924675008395375170817430609884478138634695612677120826192940007401440726125943818415973780941548093509654848508819306197849293345094269796643105795888949002274645103767273439804360606880542152750033714451954914789339726772873020404703495244172608262831352713247934290967361803869619710190452822364830346954663294591799112939836018022186189707369951006069461731482114298557879957840327316814881572216588149271344715547453846478918459229502746197358163222761832107397969186877245910566800474345694585226664270170570777101112569050403717813047329655291535768169390890622393290577851198208773438299276875922863259493343887310818405697239939415759262724026154197729484233968277512321058148777839108550233578482959833451065968830254094523199740481533283555522162904725802440499069534534360663698756669654193797776977733039160649909465167644089086056625878904761311049841425793646526262093667720317147316793837595671134070836814380336026378550986399209529130906436785506383887042881710320121698959097965379475692081740737394358873709365435536945503139144349563055836189827765393232837554460275730536247699099282610779910278349874515676995573873938865325351065812973557171737478815290326565372487972436315180501011844020897414061238284165295714862675049310036657259558337204879538408643341099073155511982305815270726029341246106297668175732033151388370848567786335386345944329203252438310456480243653397825177802125424398076353049941734967996324812830348381287845859276515399106818741755009117540579040922331713531523516418881491992335993142361800580799441605754228160725430990831083728828206455027413404271043431452713318531948889222074748272548350357576220396034687266680292398000028621574651295986105234639545580633653127073737628238805385173423117949016055733113296049119409475580157380485224347054417536184150102408800860675738259880138384629770254614293590612152649919967372886137513878833813263878606329514858671778835546180505507902939259957979676646725341182635103367214016880961551942012126186536190279515054244778024297087188874698609896835630833161961508760624344333003564291262430082558127632570901438832141015138964303017142382893433856146053933764584959088393391566182366669211475408193945799275967400377588563956595569639265518668992438536688123392953415558894897011622664738932791882375326149161426466103687976825214520418008062934876623324265343090596743911070709505124517912481022189468201472219793033548931297132501033218066446042338039570707523079887937477491004662857338519018710865176279197080179928504745432653106770103014967867465039461719077425075940364197953212582312534687423012173858912621057266330155626749986275588442966608517949415943852124560997684057135280887279563014306962155962605093704042402059022364060246808413390504011934099474400544462248986291216463014716102430257105840790048713716319303871826859353919520227006952402246435861358639065700293691574624516813460303987949231746373057366702886912722589950994102350264885558590975921429129956966741776282688908701704444857095712667396204378178508967298579784076890501341962723467837496095818468248136003691036286293860615957270408699584246790434109360757322829089403806313002993350736369134134398212502440770532050829021874215999575626257685734958109429122787530898992960389393229545398691315339516966093857633714959903645676838625213962945315639695094202455925988672446897562513146113800160503919432019438279293329724691695803924696689215388104899120451031759498986319890025668128867170135801699534065341702479301439316535588220709232931658820944819195757610714217214035012611586503629166447187367888627676193642511027670295438277651749148341161968134446280964411821516153100133882400816104560329369314143395698056665370948147828631724466513508305342383566335358666816886613344991050491471068199748224033182623368121453327478676058325111651503045180253067697447443192549499131044920368278407952330854419651478121444761105342671086236150116876248061563163317344725300788624232133913596250633362601292594483602866866330709810178083675815661753974433376693390210702111231287131403504347105050184349329750448967170843835869143198960404006602039164665964484452306136375262927804022628749568314894523764155520124052406156846710215557932157915921086598003960638480906421080549681060599018591875269357851963358399114881279370450976283670811016087214063933454346904372593803593451015047918284927374465132844432672093827246278523071036640949109403612352453987640117082018308374783906197617646944835710124520168299816544197251474497416845167883271889186505551757231833713018270405370242647823445952821525290860417655376759186181228887487329164929943025752670660542314045795342956172302828968729889400915944384843904827373587848776399901012580806507938063008697132075150061975812007578112786431752492855082949116714673161975410884094467780258335527873372576322971402451239342291937239853297325706343731307692348079475613298558391988721294853780026748929420090868707837520417320440784598380110875644877501000969863138404978873008334138312845625617012326930396351450219801889432590031145314515279555097654743373380707936113142284231238586012684004148415690258291974534659755518828283739250780257574255732792418416215981586750908489002957302137560572007003933818045141682521298661960558027070352627418033832947608403911016928135573472413395162045712544881980114648827323248827019471052357711222931901668010113468204846943270966985560532734516374667470055162287939267230610432601285200328094184658276392811579705649905103857181076589295287925936452474870856432350045304379468823756258946365176555813984409399626730687294895861662283698531451353111592977216509629557592163498685969351029968209193892020960542295060269722721828626782825718232845356636756723544941831837766491736096185973522373981709884008677066440628869458997584474626883434249636882010657572700678486687278870047493042824913695167319378175160414109318346438976364583629400088120048637397543987234567945406345274667293005251671353229664038202872557418847083382790131333272157654893501873724277301444366674055716759749453629830248749001374744977661015849042540288663871002738491053393277919414015324190915129050831664844119731550831407119184058489561139885707579695628332383063285807363406786528012171448172752497284435796327373984087979196764271732250335027736924466979041030416746951931473473834217450940970538907646839294160992464952109318883427565998009583687995143605631785421868921137638200824949367281162912235882191763991610373728562621157995803821579494764672923885660934011707364090681592211519543964988371527984608678324786834827747544087855841163079508287410664754665173944435685798422946764471008871247694427133129413658607399842582203946337237879933702962332283570632634619090549075254658951198516580119671036229636999924715386040029629823222036571139289271661816453778205468703833212537426293661237454495634352441937381621399106372126492341941794064063576220588896070695897266325796631641831478614483862857838659305157807443123912435014989889882287122260244898726330981364593839470045114451265006437577940736504929700363304294861809876230372645161207716520668195470175927538166402520552076759315422871387883705951284905147995131375517801010467961730813221008719386199031400718375498905234940244639182417557714672054367562141599711283572525391801657402373716481084228842857671634670463395254745515694095328182440321013472974843273873881841477982637943401000073799357616759277001872808093877829163842259192651953118660394434112841952846109725474930165319029645197752742262375572903831133164599855587898932274363004809382069388444479831229402534702522510108417456155393284143262028465630461067851339115027841177101540459508834787224311177669174693243670853828778478101843097128172819345465749222152636523395484272860378749384010960472186515064036981981290007810005088182781313941509500295522344939803797053407476330135927480115629010064015989389225349729474311117228218333842936273290024641664449444890760630252282874517118449589630070543036334928845934795538263026896901815201752668983183429010762367046819515454053065760230426699217414088103779230209176132959600714891019200188878715706673839327616873989164116265629912088602634425128116355694348552412096660213213190019859998369393517936839745920906740429609726627313790254864483513025022048526586758889391327974033124571827554598155962855610118439020464359848278041958870328087002477231941991664917256223854498783777475926488372533344631258235521276775720230040134502697066682916562332744793086186425226135577978662054628285602423442706238946197432890111161231491954660033120210572621581463500302999146778566459957065916416206831558848570531941340735716548446253085342497395489721776496326105002951532666587504801036757229157228602555374343738133373625182607641043475807550048509928071858528265332876598122962249200425648610443963115784868690420659956782101690426568757266797398083662288148973361744045871728213719606262979236086189170220388761058607966119942081407034876610043965665001774862545672230910218572130258263935906487309836305252994190907981898145711374552224029548662317723671184773427428746697491662046627015327424250027293806991271780986377366883055120662592068955667894435755284419608872345754233892812416701491945237117049598442057133941448483942691091869469795035212747607301388198030744090802346967856599709410925160798167569615205066722243710197684901712078748591143372821963867648382022276411865955779662131765863896347034143666380912290839531260214362383966988503233930080081976992069639045458766571055179651273557327992934825315322800845590707605437662033736068931282741871807898486686008895426816729776708723373286430887017204233212866906669108254858096508875355830648697964594944056405261602191436811647271354607574353650091450890170597919364776866914101613692351068077003041338260714704512724240656172444232949361883055101961326748547152857997134669817469998169607137139694026839987615016694840692015547086880945783573318807687915873889175154254880926377835718646565806378275775240669966014202208218776770394426785688253445232801327102052383568955070716040313297831174483983227213898020918521307637126590803884424887262766202843796990318252770695423212926533932827353807002313119302872930760051397661454829269604920874651082071858541435834843878058240943082964371348597459514048453401629655862534822589332489514781336651411219328024597991102634600004889648417163952241973705888337262145105073768642085266621380879478455101400867704792437639979570698037104157604901990041745692531196527398806945833580763677298908071080867883611477570411830968684435721855357228288506404264926760764245201936910281574905502138774965462103926402923722677714636419203006127491951941409485412322000430036081420111666917690299087757983316593925540428041574216405083975994951643188058661752448669826642320255472750659819101891618422324704584823274053531754201488414239881932157721750137416744998068613448663306212204675258408596951249383373376091728016132273869447396050844652342119000230580714010450021851302465047123120323865616793237163707163829414211979579768580247474493674062087150422984879231777422612962336366221794512946189941360303468157872698901214438687427096057530112511281029153916447789743018310537848940796772069975145238251928441253246240930857227373795619389068061703971442803691281082530703212915236446926055896027933542894092809817538067299798779498105530709119566175883867416311447268527223496863071097334548676042636011126579047436886191443515257743875995544718257457776528185674379860717435621527241135077669752557892677564032510082252491113684681097235061587836080481109883231560843941692704725197497040104823951725146426357202626158807614658060345235737894468587671726049570727363787913659257284133464193243749637879295164103833921834094981134082230727292516255695942104150131595142068919214299172136805339445227095350687259679057603258374603956983499457564931882505058569086448601242657443936522448126951942534090753063494410405134814671369097585108217436690699778129093114831825757767009108288250073075414639931987812459202943403826076357522780196783791993149951454492588582520326667114958416769858170110885166211452463416689012636395035050955580784444924566493513966938164378457983397119272909390992626992796728550211712631974005421408846252661505102476713101848614911266521605095273702732516916110675396654649779788781961581024743480223019215359488681155625556031127328166354649247341865078007463797147577573700287120053429502917190187173108006020052157988849569160918207668280088226674052017722525103993880142921437680368626111060818267427676368450646102434481652036446290731967319968462129999255933866411973457916175672636162758373352205828413787884435518094620488761860148470091924693049527154960342185988835613374716673398209783710386924955851805686516588388022294089850232140171271591390968058041649847468697127946272555463476861380328454515471925538730890139123375650898163217695431194113217393813566452007633872229547839559382354195554209263259742989066224503064766630184832120199752663467539251182434077134275083064696137373931766826722272508957781257158315334413905771086915453786105792585743547024731420186835786358460653204320586482075094173661544022129666764249013858284458913457451520471777541440814085735152124845835183207095958137102528924848520928329572931396654319535126105603927504184954509792785985913609124854701381027557258568566252564920178438923084533432440777597580270057125097796138177351144868534324507882399977148765688010162501754196504758878544019971928909757783487601728320876330338681974260518699408812716952860212669674554743771302085493265795010816419673040176126516659130085946146925049857543887346581258573771894507341715164717383638154397629279656795983179117904549976594663590215483562011031181617980889005473264066932501847321441556858723293350115230172704922323445779955334931806372030688377579037966556849198373475342171349264701298372085109310289260254559715419341825366627445493834502136134476566407633381099826080657223994920693319759045569391829740591895902754401562119091837117971139322057673068822896289207821015532293172938122112709382026990468857260994709869910407773466834149199348231025825968585538286745097743078293119579849493126128037722037258995740017464891997655397576678968510887090567180008708772353803549497392283331885802647318440557082055924437137945351834342604663986080579744613208156612468932147675421798995484841210943424650406801723188457746462408295056010101846439000847590736060791652100659924671562538880346041914808714245931270360958146038179245039867342202252937492313473486964661445164558542887675830700063133575561321329928036428623030126203456331341906772847948705387976589236018752498879472910199986466966108850057938282399701517162524840381994969711060634098530903878123524421893013922756255408481363425344701934310732573777315542949769021531033601637125508397906461643771910580262377833646187821378969191991906513725646166823564000556318209443921233715835846849675771699590244246915075138120984466085197512844293903821008600000267001768991161444465795448774106896272013483459277517540802190173026621326955131904867772078036080414133459082431220953139897006169612838612509174191832870334127389171174679701753837916016579457702217897634456084524791951744561155236314168684331094973896893809713653808394720474640858098593082839657003218619523974007658176314123239565426537083857641401672375142652455527588540078161063486192754090650766358161661379336193976595323965065838782212106198433589449332474259333612092587508316691289225817110770849758770365111696492660457020769572253251868584127402673916846239699460846163523272735391682714742292594407845354717224656665805777813147557400172955637914488325350677719622949968593141545377671798036375282233621492915594666329275885144610297509639205104781699110915406080726806601763879530611882809603588029835539042185748083915166286807706324521440146016225707964780339018042335683913258010853860899478733501862557356552877937929916925757493816319683812187046670214745396976547441003525570747267991018111259932464135073312811681999441561736693568946431135989594137687920929671905483649493816828895903908399195493065190894824691950797432529378416296062437261276510466179785559428455391550077289689556259733486015155129839265207211431898769077749665462121173557742397738268545481070502100536908288729979976097550932662753620728567030999620534972723645919996606144659867774262549830380253383175718215796163019643325253703759069274397492464142123917574203887759858753659662919906534383978224407785799876831301591296694492098432817282267336548798981955368259613463548094706259905792446598578316473215143499261224835608000382606177338440168814738648257517948671584335872931862475752942580009579615462977827228850908228969676654672162349886617674562819021570894554853536520424302787925530780886372433421707473355770115778024364960757287454237743863982480648708328020740671480256301860820968432400713481911978627141796030962157469312149477872101985963350389688795917123917584703397667006472537229503739207373216100138785930812542786209790942209301918946470163649485182283873333954550810022259307002944260744787360985705688658834563722487579156911951823365213605347942868021224185606335202488873742786664011532490953172871641558834662581618546017027641884836383459166618822966936451745513078390812710567285872019743555740437213971709637749152314721169812151444790132464389895962673705925510551003834265570089134574829250436531850480097906125250428032610103594260331481231111520528112422437822058123783391412125544598941819619082593653046464624572867552056904232157015390226607141454323682724847945341396093723730065973745373863405038352206932282845752987841839062639279864983101911994132831048383083666749609166299672074123733240195808117933960192786356289910721784555523380046345800013736096353689606931456132062361928735367072476761859265665673094814571807300333574759622040211063790771153336598578736429751187516106243441316442465643338949826779139534110814175075079125690406959303528474767017544871270822644861715620883119118340141659927359398336555834309888458036622601996119898535527905923983429250022667534545266729574001438247007475617881876810875018918396931551166668728690999218107467373728512483590646080974744009189189566787913002809043516632885516581658017111134210937947237352580430918932667202091534587117653670513726420940906105177283478833208080278381467458145034653268805787769466608785971248680152320347517735326690689856827129191927528138100652319487950711994538067806610088259669679013043556698791037279245653215146971443070729378530472901809446976518864700321767934901062357618170570817748179505595074005111042896260838403050514375617817573015569558700326374720133089678240723710778387148269693211447541928992847342968670103621498995783814010807510986904996204263224248418744137739629012458926603174761093332390032664008220423690680963597638163702200499616609444946957677414002140152590755406648197539771524810738375162149187475753818740998436477770605389135121449387445729170807079126763811237853309420115928367726208734851634512450948584089575712792134040472940668414444513986949454529009934377629987320191420902425390270882136257920205900147681223664418765532801740697890007357802763119523200139561276273499106406429572259049444745143556592426493555937394842312180194000339308687104327240179902852175895794445273671647725555711747079212144858164174719899595898217991619226047463382368630663053951108208102999675511681863421786240982278214977869041438901857081323385194994333949588303742267332800154969719451034801038660784416609958708591669305365026588384265556047746224250609425278638880752857622463479557465766778880181580124690523086257816564335976260109055618981381702512769764964358625742494115669030646607069562233206051652170721830140866930514774849690458826698906809403150479833410445368148342191026825308569389667954492214797269773982791649496344337007146927875805586813818843939458588604416852208041935212263423206430773343323666846790321788261693755926881661972317849266488929475426645317900382944000846175859597993180039891671709347320230814904358998900280958489943899197509901310737237892269611280001379958641362754476063850216605102675798742727032232500734839122369565461959783481190252810858683905062110513285171025702934806510696796731441587729519104441931171260914567430373061872772201300506066276735683042094915794332055608143285490098556894725173670326854343619826874235838488789066845747495508706930146228623694554914842226803968299968946569936173980450844497216119264576016098407542016625304056304062891968258861166103359552541244821582068452270968851011643289363141189012018866628700722037114578573771461873369182764037412850043047942047358845797686261239128443322171748019192878146791568268051861368832962008404138216703459028110475964414105706196327041637922240350544142598613793510132871289130308332582234146279192412649943094507860913711068280437880535275948080953041918391604029922571815131933790567232700961754663375669032354882147709480468777880045303679511053595063429750013171549929453658532653485629697197617181308316876192976866105868004557359359570072290250891561290853428789968038162521774112735798088918540976788528629516233600033574248395242718194066672926713773363535875809161042838678473158518456573978836006631248617860776921930526456227883151476030048737952068625634630402028969411710490877279049375086665255171318220505506685931341221073263000419190692242698143230543941856380588723599332332250992943922530308053126006102517045859524429260446038070620505673371669779374104185482158974230876866600608581150257851699790915827477292886177763878631214754213850016369808859344773431552267497598499101901962182006001650365758873905674811436239092893828408415593633630867671975940448355637184795737709639620303740366893290182633072102290361500992925733147993580357769579343326880983649510260252671059131732477808319474022456371091951367077614642371116703571070239723669650770608951739514130669206797833056595085458014588788198753198407686782220192292068223322748886111070640545615664084547414551344116694613568077096835650846047448927779740146682547422775702504842754026411800329556902275332842130161360712423435717580512826489602160432097732930905857193919663909575664840363810674409671576493288580930893811887485218967037369620952808828574045476532261284774150625326000727803830452576030750859133184582193856880127897141542186776497633754342852572980667793003495830861904979336853057130960359649223634226820070517977095285933539886890553358890947909917001692676627742212337150405792863675781392276503412147539526570915616761328013090208161547074733943119376726268944517795882631602072173391442214936352855774670194954735993486268711049038318604322329696809639943260436760193736192459916848098165176316429367248725109835208834974940403977051069797898830793235310499678120308112526300314619588504068440368573388880554575603667486176579596478598649791608929379056264769629931381430504775879204636103539789457331659116783817190369982669064393321791188938826679367221899167695934183471218244179431496799044381224295502609191542744472837985494633668813197690039769072775259568330887580614988246084407799415496529246379810404128523600880471511988303498726704510776707292196166815614774030340382755254269018220449626030420688854752766718737487694196940290041882018858876620377707083879252398717643315118915932315664999726613584401963837765998566170376892223485278438143532157278813782714861530769189927368851984518378025670307034918468482324359360214076491831368011514872002828426707023400880813698379159994255278703220429859959119219353865989382009977498410927722253090118184785187537506587039964638073954275939937310823587255250346848265150512301692021339948288337649111817216332949844147790600013491817304304897470451574226109127003992108902933064340781807430355663435159013687046449029587962560715507225315694903535935881449676262385794418771104278384328503748580634357466117366133371734251271001335888434200095909004964392862283178123165697480165722629020675987837803392624299452648928986873743610251891808069837839972343739548993917531158623403688841370526307658773624010080021861010301010442496912731174411003307362607570486856151990458205375839160825095569655417802446421176521391713475657236326643903927679687409369629574949857789044789490737207400813717532657540724476724232087790273378247129928935968745587043497707890255727131976179580955880327916784289812501370124145263099063304315933327627320286022811805771965456226281157535919489799120191342824816273186538694258366174408727119988811420077745500785533658082213080264920552717501078066151844138354334946699638253817492485882879218035198897283226133177177059018219804949464707232411597718997425405224618449601846050056364702559496776613797813578097283528927517284848713755876929955945068818999689095169246853104266932457367274767814846519159674515944876370685573985173275722675656534835991530893418408435315134715273470960590216998840315779876501499364004958264629589118474739006188361404660154949013089398194449146170807342939039271003461153888384303291794298041683031949283189570529899594785581096574646144369557530003816944090649779639266461687799391869508368223698088931968581784909532396008873360927095675573433490076639967352714227368370729591521147149581742023095573684165935022325061427862712750702994800022709374381564591753324494572556803017867002684011906945712663263944873271047671606156823515324556204327573992050546247331109278509740720769429855124061818981611930233041734900828639886548274532524848829847990134581821371115756863291717371893978930928414737008726560449178104815839202382543904528760500987395053288910294190498141876332776203302337416361729446851339171389114399423401745453245326007108528136193655662464087917752268533651934637115685143020416365289393061848199824529389476242297508200067811815158496602948365301286168102258943909752592992489700351609622613905233852429315186993361514643455468613994704723048207563465899958098576732511192604493292082429937464021192332109124527324231957487293625584435233562922191161516274539362084559762258152138442287787086548918699323524440676470001302635125149678705238360103090877921624327372520664792994541065846686750922940032087913624865568079643441836554254894499220164075241822224728965463882268367710414683650542589878013152956634166972812955926011737775748250368025126888427252310186494536023245628005855404381175051547873437806860049814056089812606257050270994750016465996632973714995835608321718368364212446423833726597484802880201356448728183950433054934769350187915380380871564573106360840236533111651459003343302208009102034237286974789728325080809575621537554211025202585528170669737842781506949127531547041643547940228462347641235030371981664318698836845354488064467562145477244265657288289618474458895025802411013424543543174948190057078633221037865288246285135146599284744062925279962760312231523593255376167995716060093274854317635690338933726217073685704985200606724021939240147067210303907499513015645899766351982497179446415893842577028825313249000091830163545375878630724445397630484233400137137287439188472045323748427916360514929716288844753765438098933177773923621218750935882116557291668857247806484310053737112063799417061788587526580834597821213496700871885798150862345343908780159240688979056873941659021290348000598467352938324656230988948398831360502794849328357725639070542731871430506024025840742004109875249288999963945747053053920867792450247422472857248012093813504990673994407159542207765481424125900728364647632569747287761764697067016320719108128300121743927808728117329666760175290304968874806434272153163873525295026060783168066466678424937260169216271066550857087948504591965414785715418461365722813134981403847058277168898285057536095897704294058540681969426647901920381179907656895598074439616708620231178701721593462434514530739952365846770445786179734913075274523232046519629416447864805264017668953155276481241475186459321631378420415178366732943992267475607269634589250593148931469705995271938915084661005260652974213211941926462385527885699937955890706377164208590265116239474791719274939486893255405446724109250704554972866890361910726984685541776823949001114375960542110905885197498884148516173811711056520623788715105271885819359623016609051387972525347091341303504282523979530356908178897136451671486979742259172627662352950362770731815538456337841101895952691191522517010738586857519261519214401119639003802812558940796270796400662469115502463510744780064067582376302787914434490195273456868803212660432413707885105170380520848229645734760841450267589118000612614996836355165328375521978079691649168689986180786554149809544162392597568936785558727144371301978825298442741643873388435966732307256148544268130511060130652917033991446802177037123941486557534761203045321310102497197107261507959489811299154245818960081577955032689760638558645247921697552732354421391814876428432238582837059020572236539959161734685607975747475572832451041572589595124075572182075487270133658970466790685400114992994559855664418604615430988932161114587166934161132789979907738113339531452455248045341559163513695535105728184791461028256341425014991587715351176020815888533884256215878257709575959959104106427900927124858615194639659033086591975869394182534483048197179554885057026435047030065760265867192411123638956786671649959553685824768866410216592119262017283142198468715513744230842884320368465808255371660786006534983041648281296914108651331825830654904444032883478011422154221611342539341868593365980523227208584139477790245081940059657325705437906783305554173452704039589643865085671433640709752230494134403654281980289366150011865212519227866607340746609577208490958269187258254995069250589898070042919255357933058893786798878835654594869450401404956424536388793297430852313307101116343224667517882049422079345227914434717042808066880864254292078013247068435429391702948211831134078904048627086367918081866882003696243770346777327001934047534757105761375171637086790746146099553129600306155922665400191034590455674613806152718027893628107035850131058162315199926807739113513765610025907969603353499036313478651017297394201286830406376501486805850541726996009884989993890046471050171497314306296868002345781696792040640348438638030490102043101287334865714159347007950425199042692479843228374121464564080853105513070285082418067123417726538377453688848305442805800764251605543530450969025061089364305759142860072162482276637564726548425387893627909546811111787368451523795910313024051785163470924968052544615128064870615091982911742750390227293822125022520368915556550570381607157367396007320987973730681404563465458865252188832126924192838845245257181603394221091458080337160198040441788316690301369771926475676016763125260043202485407564775124094490054650894549106605615540648260141482162814629250726192996446670691596879553456556108153685663863651143990962208383501643205049601187005891945202042399349463658223576119819293119269076124409969332850244177792961095983596056668927354527735362099504236663214038304629172467737163206434028897462298489969249974812496816159039739553927204510387032912607931268837077672490135357904949256930919753899191490182880555931353641231522643105064755371997093212389843865892156578251857050316174670797813984388643787862213284365628342599913774572090572463915294102986642492412741576080148895943386716536768840976665197603321060994285519233095471058885020153708709486710539641134437420385001050206376007662347347981361607090392251688715250088656797039055691909067427729462194194667658030343423659263224159589220482310296448028939896575707548606815517823165184795840095162468544827421434723909573158704811168123190780387081240796030815063278407782212799305220424900146108159046615020603630207477517112186656561321539769604825413181852951902927662848382872194003770442263923589453690085118058195505313285384083609041090663495560389843789593824332687125194201868718208025027700430317000481866929381094851225695684337639065321578901628655950146746820806887655364735187990940523740128002148818228547727865287068742796692724324274012464260046696579106826961383811484363988563964413818754474629785576832423493011485298961481896583044151568786137020109555058065906157639629299202152795541561018939868683403496770496026108698148015433072481152868937165434636966185728787494444235018352643652208412410537056342491771753702572610226110014392668045054847490318462471826945009899281054887979536705310821130335675174701988341926404504910855750206953011883258700530671113151614221061831497683014396229786017976686778840201016053694555734588509964679909991908856248918166745202868077878781398893589239309554181196728381505004129560530942117858424294790712425529218912971187895208930742100998823980956510434660843349172416651404385007509059077542995831219555195918185220887860241442686154808375374184382136090730185437926036659448527470542078217776326506963577633440860463250332045690552725841636033007255859858801819258863967756539068132894625884328065690511191496926894927578022465524560157470587542495208417284327667527462539249738977987768176336442282090084328513764784731921986611040707129485809595399266749994674764871999121942906342652399743652526265303744942477817198500354218186792288273764098624794564516447804938547052640378967646328417607473367527551163371929742972393988408815608448573248634782299932589997217938308491229849738551984035894104258182389724228131389788655222013314768194729977720853915234869143122455258840214296627844210194238115697855019821009724017869495466652737234225083782382916704512557622141140873272524280149865793511846843860280161306732950892768741393657680429376796687468629414232410478043083777230528692119005631897849430054015127649332211884680171137150691259415337747932204815169951843907703676428417586582658020268712631209235986564331242739372530340674983864365926237781501727250001135731687245318534234990698306429112038273786442654070204890804164074120421297420867410619383282517911329590759350532352437806349462331958891693266486870227766871165340745896790982164983149002990424065041150388040473614229891639976008157437893729943293111041467655564424294092006644517269190733852865254156905952474875887504687427368775879176704064893481923465266058443477733828671063271089159713817320530516728044218993357144535868063951118171930810992826992437465328292983723668911581173557206700786641174243099635312640589426057349055006453726806311121645878913042096174303231723805334444799766446420265449417892379220988631474838523418856313842058331213055018024099338934825303989831018954082972642405619923932730111260681372866150133628217941417554211040524033570801153336770504688603995626029524226729892588799852568559456342880270698604484408560960580425072898161202403939466879443357097222325762254500238018228034889439324674856651957307117189480349203641377309209245270328253056608101919816441247135122394710768572281840723883115471641622396717154512393310270492496278375084581066551127437549123496899330394366784044631609657712898085776666708430280991193839196562792178066558100886460741478019899372182175999006610013941748010770783039309308424884298106072767480352651246757141534771104198523811272808213271058499872002058805283563723918419050003682192394901062381309512726345804617542366505638932747874920520250335100586809336300884579735966928756759589081212432170070736418749599447330616994215384624420366086376294636875609936127431514464277656576559646108203863259147238216528734711578107530057697990432881525215796546233424860258784670488249186271331596437204455973720899243817624770235260763949507330206930307757147173810843863797557869920477847347814239456042695708641888519448711919736607084162770153238543256574305895257207859644100371819096964733581229935121363273456648408673116576087737967425209342169610718015490099701526798945324665703872139413929181022332502241475856336921622898129185263404949010422682911596317166934703664192342023445354727690961800636615307218092736186314475707795167113135475944464582989571508450198602761536018630053362047429739367647184442934216357700321198480026198027403234291986286589689434577090384144047025345563728144649698433208679691915940961276329107356018973271056056217307506017566593572129356764094801432564960905449625698708408223995649334834033170534216840146132443327030994273123397160507988507245855297516099015267274178666104590384482550980361199536132190362552764941992857430520418428974328892775680907434453575747023720012418037605299776206621307295847508477954839186130695178588477959220984541937293347438295006502489928023083801342658285776326100655481820340256639604157905027384457836745905266254846590149570958699672597582157063733174573707804568667692394148585571045167757409918801841044863222938047330860129359143171283040266544656097963918921688243592500929761096565767435412263493350757935969380122109718773046670566667997327281566591728187762410468136889645917652117689499510040947319534723372782567439102862653602942146175538894510212919380126548386799628686445389295347314352180734852954276500335033513903141718250717353753948235015083027438660032532873861760070408476596714097632937162539918116226559398452936629905040645923292700616616534526363902388075704121173973061309197490434870627943847471594490321702193395498559389670757412492461151546346837826741091812177622377196701604553881318463271654098160926016950193964641278797569909854019211075664832746828609593796054994222833202989899127082205721385755266566473567845459408178416988360301540523718466170131721144092466590472434440118741641190264274690948599222334842550509093968109707277368243457694140624630213331939433018856765674474330313264905515048517813592270921312922367033939359441289925838875894378026503014682107587212672792076848819931166066416014262368555207918691385216496852091930930212736384477718825958892192045128088968212518126689142235097788327848749834544733234847696863913570952048636892560430232006527375146071191111106010618860416978454997466876812115540349128544964356305221895604554989999300472498247832819718259825366017227872800531033678035767647452793880666581735453477694947498939928482125810336038935844501354996171550901156746091182592319036451637427764302759800180253800825334601378955370634237296794049646783219617197793838934499538475259661107368201268038310107324029330985699820998242188835831440620732391680940231616835979536699868942428630497567335776790366106694654754030941480393133300628725676901719437807483398644817853073708764884893344722238039718955169253430880988899639496039722130070862655002786948012317236148619632603384121435600110020147829189127313603577339839494298446622148306303130850966297092865612557665817306462144796595188803615495430700966572100676793297894624908026479625518960937289037485828814984474224404416544460172921409075458841340928066103249022542484373718550772105561557249919328787590426010812438065893600615863467048096771106649378202108240379226885802684486801057079184470580464787379548135331441945403858717979663973137619536341169018698316638230305413883874682968624604412336181689282637287249400328876011608032496212749183230596799771406220456168225630966571686269681169420144772595584787486750923288236069929260462523454253083112963157023549604489161588974976851634148594902095991553819817316598572314990311422959266547816482324589727480176020472260259165418088154165067954582344524874249084418410842223438549315820421599426204153531261122297670346271373473647629756897433169786660603067907799947836514604115654432963541327231067980096511032266313372671203951873882099906029356310454344180580854709311428065969467795193314101949941453408303201002341926327418906875915594143837510843499933354470667392094319769351834119233370652471692517080760709307119919326272083011832911354669727592096618016354784510108964854164288531147281330305912407918871534390237496127046314685815072785678905523163750510433980922486533509907938930596528472438477910193683213763330486021279226073558243079520365631392226908718154064498174134451272475723941834004085785660059567941152104629004813184925037632394045991129304860395598160724235298423557384682685158949501494192591826357092718126702803580646542095194617637656827541265821927930598841145952924281331229595007958478416391528176996945604539244278951817910328536731816448184715418550602082145874966663419764935289727410014597050413619388486632026854479978291687970281506962470438084171310359286582372373811249548800035095048419846970311767727821786565119336931323191181607877606310754947286116608614376978946064442865235622794351446092943647178446433695685771664639297203352985424003701293059019168292642974844609491634558559113246200124526564521304614294209672908458217148676822970400947030467997852536348495517880263492510849837110893991299180573523952809452640209643286881997153755976867133234122224657755988392110769435102407021784133330017796801678347825910055323036218271144135849707654324699473114771069199272959817058931220780596701681532879488677956429034057003169859930049418412029727991325494962410141663790519766229546157403053149081319053103884082201892002381200183290275083859341294513938870012082928737753453982485444317505799695908691116323416047631683602532757640099278941237405979703932555322882314331225816145448589592779386533460845608280687879140553944419431790645365186792203334341718524023384073252818521099656299708539185553189268567001892044083700271804404225552125388829142990559836826159953855270337971914184158107559775020255884910636297441963956504446860838311969338831252419662774484788694991049497133113818932383464961815856272987389643092381555447932271531468623250679927980895142962824705815067069050664974895246699074697747509408666725047269551000359510058233815373179495224170573623718439528583767753597167814604986267987995316566926795046856033137663645751864043631396761426400477285157613882002639628780680915913740580353605143562676112378014807811448985290292411850787999451695727392872422716330202199760399586219189728881212179527540109454086796904710045209175392210631319677645656646150674587248948759085320526273623043179400110922636794110494031503816516104984426058461216321099497921780399935524156487949370008694626822737905366453250443403258245969208256810653063119733695971638294824688341565636025457964897544481506133932352850377601428025964530896156550645846984931304537624332906821881726768480959122380113864891117110803994283425200486722538391117024849762317604846574355263159040105643992006452355555617230156840918354517648090941290740910626003840073180851116007055582058268510389493682659583001293325446957416111837196936055861118470347944643399543863166177031395063908392273030650156884905893604478658575542389002076702865875417057661619865933093104523362532869146426547016210226972369860916226548135212848200064008116310451896800350094875623775572800592956552822132629614486898295346688077985323074158441241849569575402538762629064815740758146880327109547667899368544565713295671802193504129792188991518087939990008457187393723878812732654647078954903345877198490801569083654494238000717770333307443869404590785923670693106953524490484402961201955217594862001622512376974580019599758159404024110060368006245973425296655659964663678816901806370837252988862229641996225007337998905535957692638765365626224556440062372569510181963457886637408498825579933629393581381083706599256392014707942767439222567940657810332437929550427497855493016852485500278402555790111207940035937923768045183786422729520424463713539023817155164519557328433583383386394774451957955404510249993890363460818444842016606285410691021184473177403510683209561298121230907117562516007799364246034458080017822799279768631000383942932758775473133902799305735946566976811424223085828943413841976814462131322908045655369724117043051954759992104459822828607131116152395784951738586318919445000126288682882757511294702502379509825440999055851962676671932552515934143819279986403476215938130912477544970738960903949331081477808771159272033083874813550811137499927416749829759308033944104160240803645958959362387514753170038171512791701652699398239009398565621002112271793898339733490043503467801598929076460778897376130587044180462304957469816109475244799893227828738892962052604249952857766818741458150085846212083743609682164348398307273368252389785697946256552272493571288423505710871630195397380327119290267964623206892673760147183890558632839969399749031176977918063005149102757978938855987036686302391198651740063390820553699376429090475737114445507681362193411864647029531689690087818983439672657445108520261463676320287711096819323705461659399327597624416643385535356936607215043159581279791000939571789093286328854032646327988805140016866581426156858014258276916245666531973573804132017663771024710550528712484629057179739885753877573196825490734315513964154759423044692829224969700048613635775587874309905683009706266464420866493087140713476450101926483445296235162883226188037478606442494602620119566676516931874820799158201352375821755447117566109391463367159906221100256696238231308523836428617216763022405499208788500154597408895608739922841066919795765362336842459973315482806026495244030198326591213401187016764722675423593283046495367655596918853299612690304185222894666038096452426364800810283007513198401450530964155128654304325634459080377501481380058263791902238372827171463303014204027744363322892696879638481621697117721738238744163738319638544473877819545713818069868586015309817749117682344815511200800278089967169481665887258235088780423114141978540774148474468927594389563414587685852495087571165243497512759361839817793510995575034537276047878065463565852503110200761622831996641529379057146644131271853312769672114568550533372980371009236588925900144215956293958165713703108989247349720820203688071950328658701466637068810702567502073774363089809550604508250492887516040317639658582144004655475857033310825416167914960574667056776089770578798654459597002667819259629415176516065129043430886351499453824859813056127048885594715353459364640675308414724186500039107465068744285095552924783781884985977573375419926784118610218617740926660751031238300976784801962189459915848524819440356477012774827745502975163245731905936430497716611276153585454536748061966503992415345547706353336450236399122552943683310125961270891995111809018462872464616637642745528233056444469882707321648802673385984016435873465504248229617522140261405117695720120700503232522081769846686138858443911331122048061641509572462897549633291337435573181752376950866191951699747583099986916817631058832187594296984029832777620765528693855067404577541280475208484096722929593232362291433442149945139402280859708812470274481002829723102380874115974147517018818533828814822319358551393276025112593281038750852485908143890896537163558638076682169759652379180874042615087324785403989418146278544346384821720754390414272640998742262055583533614934686556869908152129098519530475946330777796674992539950664044460443244418483616268495578595129541780572415576879379591032023568849388642225094708594132723365503906853568257463291893931069872492895228958848490048131990645685350866539233895479276734885436166526630709080153161036046970464931326468358649480134903406329006787176236936131652309795415188299057811190492532527767585470259293570536553436504079661348445360089188345100965468485859916041606920951395682494413742043570135756362673279187387578429769265705454352218132156042608579957889738747528655154061360436279589248587744431669185365896801270765334965464970010204622518887019546257390976841943130689453902655878583789031372454743269631806183117453280715215345882994856931222779136993758672436995089009363494973322053989015839550304833510030735187146767074350431242155428448551281579301337277357004346952818220679716007278435106633566393161413160492999004599151572744250060557534015280507020790876927048804128314322138208332125468207404814232966291139014060167160353221980086059463125513485408946924350415741518300118528533198734844799921601936688170369966388798153509564306135963787696330600822012793460104941301867838915822268350690769845433431442812714934591314501952115927615952325571468340081678018174370391406085707419922492985952976558785772511243809969456057656515703214557723624156439268846754496375324179545050407296232795867665465332570116834135906454299286657535513028729991375491490283677964329092740759740671765250080867450254948670818888086645106151231603672165442366156111884760794237805053022251235990708994742763123767858679136430321356314080345382198471530276636135316430662295535551307265942734620306476080395675885191315538025207588115118393880992234788003746542650521468821237423851903094298238297712739188340164009631866268664794347109456894925695045008632427870220718658046184157753727683492398656904245377006396030014763160114931028173985142893568107952668258647878163219225788069019349382281431353694326818261704898789910711616730491427037927042096779600288962695790732356547936484734638321554242575693544619209319283635033357544931470651649329781068357933585667322544011176041656258129501855636712176737064793870340921606724795396409300489876118115021497246577970218209732341255281845987477952585000568171502895928928434484031784980237581451700798524696397059049794571511819676794752763474303096717885715951586132931721979439671448186223557066393692771278662119431203228131262622687972332145964175817281968283350199533942334933712200225041013683300992121375466300798598415235908304542990786714373732984457380071285461146837228079364932787356817546926928967930032789242716972998890143222367478941271736686540734770870094932901295039517781818185293422632954006020092577151039809341674422855118976429056003953547897142410146763341225561089325100563190092415667795745863705273365481025337581860635082218395849819230420625591549161364749801524144311681581008923999956404107386330673040751372542294500096105561005228410112093102155181618509399336406688836867061121862912478983941809850283538539438917587394624695440081823982305381420292415792822177046521098857921348893494904721840356524447769644189704294473845626428882831079173220585176522910679795629230940976873985602882450115927262418129839937840387931507118292748172851332433707639318200163476051373574501780034993886212892798369588368267205568850168693765556214910169477662431810221968719851663708301814166712475008740957492373272614676991797596652716295077040117680475522292077045914010198279850243083230153830288920678398545812306963278735610744235429096659973150769492036730484173095983121247485882441315943576774659590094411029251584135673056933269631456677666014827310709289090183212499803191932579157115538361948681530472643051841012139827172980440294332021414244457007431172350412517717138131129996049628300802571558614957899593911106637724592785619511964436488677630024956781120756353646840751341319235069289680833870627054005372027185226178062475217771561880490044744799350395878273276892436872013805778270253559092229287593963490492222662595370878347311324008825534511205838237798920846499669828043997677381143283001488808683012775408933102359207227776106978292879203790328289675883612201577933520639043901591045806916780520255364081682392824780108429986567223691992681176390344602804563559047679913777721261850500520822919678452032296050409385912463310072731144650355829206523384207660978379816176434794977349888891395878340374498205860185184954343804807785571143339680215366442257702226940254738967314843808346560530901602809958700532736776163232337640291609815271019929133353225929693090126812484203497034216897018819125558103427520940974914932814839484219323360391916182167522662547979768611357206389102941880802945839270925412717278863296571635470519755868568488310667022044714887267177870224192226134074608675414835586153254360121555080662065031187997845599501220568615947191164013085226059894336919514470016493610410111172074581921684639176497390612357499204403636849337163297325750167034404660449353530883740882755479334810562592851175907299223606244872327505288892299428391015068315121701024299738916897272928695384249703177063134343730799106984177689592853465405861943793312310920237890060295240163733248322118780779203632289694882558733078704551329924278333695032184608419031695637941000446217358249675892561611799912919616977200313210049435034997859817080463950669092846796898387116072109041078749597791675618858136627376834966009901180328284842128249045703137573197347385962684202017549327385751960279325196871627597808644550258861747263279280393705721464492523752168882542694459529370124862135309102345015795099803891165743298988785197236185066404442450716064258573501346573534424910818847071365121670612152963576903003039123830183399497302314092747363750938055917031011834487671148850860658825430106107317117480965392985544289695191462037560302648479326312937417871562819869112732126512948747745733936037672687526523278468506625224276620708372900008530694946356141238090782446852763050816312447095474025682940716143896424013300858598139410184972749037266056713648135139863107267076520533489741278269826413308312642743636839661801214362989950876849030723371868023010989071792540427218553845328790482505447525214038627592624825028519895415747469545416152969408491453040469750899041102948163121339924631139112350047743050605513473013721065761941530482700157522446309242505429022800013189401214758250710511249879869868107922378720502098671019782441949768242256427980046649763478398318302587099538908436834922311827143492004974554674407651021466173442151045500284623009976246179729056679510285899014772094992003279461189621227634342431745472743629666971857485501333801407993446305008679340734072636337407512257210863162526984424911295879327815755668048330717606203263679790773253062711380044097007706923007796492986791901506092585474792968277366531371791353822914678751491396005946813222538693725997846054486858941148934396032506997229334375776984926611754148710293417107207273129207527875014761031258487351025051478644749639708486848390417631238637455398653327713064754549140755283283993260869067456055742796588117721614605805852774766144665164823841267984220589058572513310601409208824706472629276042962672355128656871084674628575471157509489416980019210940806170270009584538081216214025911868907532885136036290576492708869445743689165667640533876873897464033088866263095189746507529199835427966565776734338682009721982905576326298437852116255186827506024737562501295703386968916175233079615218751470349797648376192390054648520295059390392028431144155324320215996467951266164539975112177743404318536801565554472697520910940822053415627615579845363153987982192729840060477350650723763691867923770754666780121728866190976096633801233661043890720686661004810265852492282051845943545422949315961605958445666211066872058935619891417624503151958516892462739416266259107399222664890663655886787488481972161152724188354401152579011956941035420152153352109838256129788578763374715779539022540865820546482382839913973710383199782939079744365529396316587693856909855127188003997432552873800668159914156987216058862262664326821830883369929889325266041367361355455562887657581513442618284906803950382231415139757189006546155976275120459970593262042807577725583593965184937270323379593615436326825105488129948047848960501130199420036610233238599953609635948104992844853189034356043228879104312714468409976753753924214003717911980102091307639209537946204725493081874474185674584138416480198874999910462599051951208280297718860250846624359729135206456147060547455852945723322541715983176268056329598528450496660676647451654047961049169368271558503718484275524044371553800887372336155976879293508361618998728269152735761806779832936047401252058182287301629067008599817413393336795465465203630689165107037032976885995305270858306076972881005853078945256747899171450359545646782598347288162566365761844111424238211387709265148180947542435660278128688462784588475658082786461442780152871186745691864825808949786447649660667810565710011467739727996176778747634766031403870228198127871632240280827774406636578899468233108301193690892304504943241430467141692151360359316661516304058296263837566995128621439571804353482847759242378147509671402190845971801986306718073272334601912993860272500853487102078445785605489795034228117059298945344363029438398081875849075667089348385473405741962254354286928626247250018694056377956331770090231836649917627665278638901430812217564208935944790024784427680490783266212637108069829406288500767087967640307372560891336163411363097373090824243844569588236395711463502296783436064965658776387936778423603953474800923753235863935519402433498791313437888201418537288663971144120467356382503943188825488634137374074153731983038610980747215703758810339728701096741887889423495575140397672806720439948549382082390374916892128242252147117995388667077679015356300617408395316307452326720445188692547191681855393675567052646296684721891603520051178598292884268370317109258375544134970482532561236927814657525535914801774279506410987391469356753179835061405377290611244473617868665481903804483623754355648925260383433104552706747767128495107476290455584477270491468391302983458675085217194750653714208220586275462689167863754938084175774126959511668842576383131287384738582908284387227923999445510831741734300399856404416554921710151082764645062279467465373647229623042326202421410429683548294426005942826037762319753296218465065653139737332186763595078983382650361408888476165339542301565093420350648261747717056118727491315184367731727962248086978532504067525369340201228729947844183598457372457218279540979477782056920749769236287312361460985457420425187731494947850533220790753745770434731598246338134111029277400766060840456568819028119767333329676416186708853267974222133733823831418032540798665139925728423148436568812175430102941383223961749935724340599619139709413761141201115678406686461229416718921206818927936438736109124093609788761526116428345645481168084430972862428449830818496336102694998094900533453221820971926951028316465436711211275847222152796266235461570163242625753201265014070093605470213005420597779404643240848600549359624052164169487655409102956655475883924522485160418282202665809204730161829837787064377654955913486487819581418412038646563750307054340176896135848032461539642574599785656963548437589110248226623731984931205834571989216604353982829861823397525088851348375075667678696701057609925749168317057763031750292494029379813439605098484036554791712787320675752998548177489193706564122759417178678461024769483754893112676309831636175786248856294914523035537018854493432607372482450161334147930097603213523748518492489108192933884249874174695617442266842604847881468019263806842798911546693627708033030621680636126535976836055382513213923651841605662783299420294725594993736863930083635052260873133126407262036386032064861192688364923157809221417802967486224765731549627675785566770520002682719686326821454704118055240237501879212165460057658583347778609418688964763301232779828763697698566411004732059208215477703604234786098594946331018249480766475534746382854364992332336817473690316495050696320864468344497418006950419590140982031623937157873527614026410645286698123273439500319484844584692334411233039127122552754111797325791181900556010359359664635378593677731735464470357522279378588498635828078891625262035515977824387825870991195234163427634594502955410883076802414859931441100110566010131305364368671917129175513032810820047873863685795277433470064217797452434012286368456229535951720952558736055910241495622439780211797054494912713269335516463223657465504603433986105733878381153844847838703431027396135117094912480496760295101679436197145932132358277198397418015447775506858046541387947956941223797844277161905903302752571103653909470227650742959599926070871165365670176574657351882536241741375983083793600190417473981896984113758861907350592871956456019040495600045132351255445001445999312144092859826650739831593782810049114655307363415346283741633757049324383697501245461376656458630710265320154866528024625134154976554319114896057722294728690136187860140800004701198053360421210987470948448532160082731181252280040005642181574060098871770904900846759263967840771757230286563849592199685221325838099712814183999853318398241402120148992054685953628012533133691202002804281284349790982586337676249470942343685773961197212427765465057449250233440118977378856743710509724551468432195386880965074337211883486758155457782660531806834376700728269206962519646998127859691824206413169563841611061309406516927821710026993250583303840204633038346651194654026053549897258633219504511981174409130814014632777853833622020344320272539669814488768819781251142988805313092340566372171799603355712031953737784007427452157825633866837697855362159853060379957128971734129374835678313915873344271132053349239105023542757561939497870350128136004691440586606546646851403964422659666617739985985381828595223345776805597837127008010080405246173288886156227913558759934615759834031305329158739453162078632024049064716273894761599643058838141698148903404954309439271586854602900464459923534555559748972217950113570794659994591155042606970719302078914383367452335128540305106635211044308866257878755410138549406292576812666521175907597747254429511506631200588269281711005591958136529535165316678794429245128586643607404955480842612686070672648035869028091434163406221833652406349963499539545706320586716964033267956998343679593182421677912087286376389382009667081997093771726456239238997864672422759269340932782839042363047710185917203807032166465282278498323736665379582083696881491044110650558471566510679477309292684849500407405568515015595920672063390424897177475068488638732976319580028119303932547917611043526574536101202286643561980785768976098106586882008575361346551276606587352703612857991352098025470923006875227761242016045553878655431701656257003940046998027591727906354236916983037848926877933859906912966662020760902957709605085276672619714969524054132845421999270832944305024447042285179380614256624139027682017058123440971882801332712291183574236743243025969364775694402333763636394431944964511705788490272871613573222826085088772556537283264720403701324219836842393583948181179801079796951916377214900357943914228428820616235354116150050670532898964275295469343589149803970679187340029219255094349307183636878567643295922784165473045716113194684168547677835993045885122927589643195976357017210568828106366474689102308714248292266334848321929469391700958135759447865374569472487856770798179070284323039230597059138674344662198419691985408332458573768579863378746670935861345199092763065673705766268339681515980403867188220442722017798281847004694510863661700481181351628338454613274080636902872684532330967107348365574642977218353655851352955087641545119965236392709370071643989240979294956330109348278953536225037582760057828860513172898167375349025615921979126212160702834806189990436549808336236364744464405139445686558929803857670377226768619010750651976861483322928449438527349638340758489361845410190461736559412803255660439510228525470729198640649202218878761722773831712834047951986782439943376511582098985223218156167571264821861765133660544971738156378235045078682277771644738958971919834574355977863908433686930172379808525757445286540648478051037822105767873073999215326393155799710298890939670232129129022868267738769614857918908341519334501683057976389145390106187365128482611497541910622619342526509193039449723762053639586932002668424952272068307582576414955025692450551692633955742257589021573606626686086764013039473692759915582385288589462093249141888215441892430549840082852907984368150220439760302147355087404373247309140852201439932111476264905300087358891864119771705733824700454136520330333961167988215341950174257916355482687559469162405598533359711750051454124723247648954262271437840736413015135589676493561023951955065420039297851305441787456413135535241175234212467849760125258949397912155922200648782675030734319845449614453761594023727254079880364676295712169615669587452557306771623129609777512676690367916840547642246785960975033812756439459063988222257630841749209112510392369817140667666919119009795139092386272489314913968361029318981783304312890541490912361871988737471230970044536517096715836232263072064195014522454259457940735252519155117534540740663689891108712100786722399231760113132109883553803819197250318320835813803160529913991479339770590542184381485697432309115320296412708928936322385438934537881373608430012224841837171817906171923010402367087853868003493662633718667828319765013659424879728313366587622144693774673914446055425255237598350796858721662454764695690335934670450298555606076434829057927772913008575200520508281791727790031856660113221984547250411917753316807064583889830241945690835407098001963857006756835022987033309955991499596021114787265317462575122560651542111705867871957080166802158631515608193952841039363312209131016521533232652403270973794247324478310467224344836517216396161309517630087242656268552619436760606264388559121608708814212973105909434777964648205214165220823553722278414829210788304757810937898529812242032435745352892308310657102708609181779033269100765072758309343631127409657159908192981587171864977811441209176152470177029712401897341871809496348605414889914139203802000878156732739841692668200564104659382705202831921173368628967664337219161616970711194124647401455097984199858364822659875629540677152528876802175518126473672570506370138239990799285752419288934655243637029221439364036330170830188283694964668820712431368885000675767306350799667046335323117456850170916967043233581574776699258576092541482459701249886065356752722071258529228521177886277385311117453627827765270734419063205885174201144785813635072703035634310997476030483539797467040452866847673979312780011890417436033971439999382570457602597802327265312320836904976166807198437954889838884203137682233308375789846999627194076752639509170929352623112987863682105843377382311111202895081021056451338969076537286625004911554745135485580440463352636988562751631274229266988711100110584774241954029764624922214575522466875677093137128340453247300063507224268561789920251128065508013444678776780868809961207576567148231402430932681685382908929721881804619865370817053184143624063103108303631170883071160773468871391602098400359695677071497593345667601830236239358349087414036240168154132538477441935924897377477788567088969122983247920297458555857406126279345805723392821066340590233984881917262704631121652143943346841785692480922992311626851483283780581735996587340044988514350705303165920370712129828493132285497441201010846705688151776529881834549928363945056217464732262905528959527192671966790130364841273774027840009973635894586100907725452964187886381707648636127517830532747103546302459376206592427441826658068591845587502060860893901918791194777065852775647418113856374740850711721494005238325449220101937053054818136903592965449046623187727038135127232251834616784386321980549407711050763266938410532985660000945368536671397669453392066154616158715993018955535897731690459039592214782166662818846959677788944578347815310323274810824981245817733754674439776842236272468285213367993156363994151853817841827852051219399778277648580217817617466515231124998416654406928567355046387190921336652538844976047507046617114719814234714943557526490395756305827374486023166492928949223263439267088457533563299614488175368789791228288840253535969852818518764865921416907157444894317104085011278283157645039937005231330758859428967281862342254355117191804106261006494388815231944935932021450067247094616902715722035829525367821501775690026148408565670945204551581793877381325716556635910969053895405358449806342662250060223560063167879312866986406915421688724460562588815229951810916987450238268093776032545119656367670957526095830509856000743555255819886091901313682246466911120225512524605166550467891960727256837809333827414286956806382729588952741519609780700429064558948543645288002591048756920051179123626834897682615001593875008589231811136184912307918535335457149406131592898529803779349587790534192274430442056344658267722405247181037530766187611444891961472833030921675827280395509258400613855716935492671595128070718411996144137506956179701717249556748587224514006200407605955238993198956656761419148074415772942412392907152672471466976243655003044940750716239650076437376277065811045689907237383510623710643698304359396891873456262440974849653932339397305578300533215892459143534605434982873140955243789728373143653087011514277597117958850702297547296433624049160435515707819385283133028858259494405632933828221598447096585590542316165790711442343894912629661297761380166559679165568878265768445441579305226742441903807892627499347309898769794223319950612399675200201585747649401265412657410409228176389311303547561394749156033467211165980863698833430005779402240002905922169735090620046312037746393593624410992805416262445536967816035712579884897789427789829716145397229954458018276492742465435236554553040921436139957788164961524254688723640506030028122431352264959043985822964648619155436808922394812416889657562629675519691903103357687369517436964687542722433601372620974623467441217816265696641461126596901293915215876349417864802565926856773696622296518226175798572404948518784916633531064943332103097381687174756595601471685113231912071975918881489321943918064740131421307422023628146716952244389766077760252518430912211531046654141629521936716209765773381711268355635283333214706251820414735881355854400269885438752590771018210673262692294503131027114800209306673456068524163772319832447457927164287326622034579958408194356093376260034115942519061271173942961834547909404473960364652307027894898130635875216041769876197921263170572300623916239224711646812542669213450031973108351094672563545095431128116722358713187474404509166251812122378390233799495190736607582237578034162889501103532619869562185832305029466901772338429184297447686118250794797531342054071711990500096019165987284347871583184247047284610483026473843146877526259165666464165173700343416602756794318403826343339921368195375735799352050695421044143212016476423956176881555308868031313473193508429501847117135481004384294535684113223846713024585654391435860149340128368629722404598283062926641422929989786749742728504958246204197390135534825206467499510724834792669192310678851564114889047256787946741067670265892281648458332608883282461003555810484938200501741553346922897871565460256922710309851029873826142749943856807530755241015366569316151549413837634036628131784214634965319730175304060143301405837755732017431952586210936609857277515764301669686302201898937495901626448790953856372615586514635703907314913125562972124595400446754402791614960577207453089021481036413029524100869734627367511253956868812043772662467274441868477835863719614763741459456880159734870902505556725247164415443723419633812613051003881293597276744990593906512844220087420585744035006247489536848002991666875051164768114674492458856804682879793691292999647448719535130658391434072314688862088305974089070103906869393209410046720607064988702354464865193085606882519765434571878322379577404459858896032415748682805558597693841078363503104686723485248028631174586371839110577664711488666603144232103861707600062234548283956043193029221407002183976807481548249614941780881261892745984801622561864265738218153716234371700682442285760846722298912598297150972726265615657289941773090908841777223638682473795351439106975418708821380718836893116527590078248857563475467681548393232073143384738954834787916987392775421198602815495869009203087874288616158027324911768250447858966227520925267244211294442049321393318916082312479644102115577652313233630322722715111786113265520797489049247790426411099126162174946268630499347288879365770521059000824908455215461836725200870971610556484652117680578679947734068880602490222432373963437695787691042788120706455157675999848117786019081617089369802704619416687928478313941513300249871089205718010589744667389521309166631060990095997157336333186919994768803528422183227146912230459437537159823823015285490347761772913858470240277491432852060546880307373540202889436915706743797014170479464822866176163608271129574484849399292640400230384391243227430253489703800146003989093238239179228743512122541665566407011844599319560865651477115088145913690016854958373301211042801027287236582354285066931434085595002960998258360522953083814993928877100178219167846654971356431745892894880225330242032955240436172184336869952480100907357683660874157053984173862972142831579253779854344956554705909266676563458492506319298548550550350635302893203203308914950449618735440397299268431762468398988861216156129340317928620423437738699490230222472736722470903719273058942824106718230210028756190188485658214042166896080143164737606707661175831559881516315041210410398772431500027548646800518944985885951239230994759951669473755240780633612227316715645586386678925455375209617770200339707315985273585197779684463019546910695613114735223750089069165120230127729659320205677194044125504786652205925970322261418114545038455930417262285004619106563514405299192550905710511410745185145273211988983568004364594462386511877754206360809573151550253003132577726794139697258614841171855418131642475433469293073215559835720692808166866750904906414663241187290179947127960669890520832770327899071659179112606156205575565529106575221477015812131785810120806385921886914451579019444158822953729262869849169686294407038731589824509725761272146873016390373365226409420880712164001927475820704900376056200198759764198328620527532752323950288636746689736443180930806461658352276427799502157724613508954835039642924524373090597317620447114594408606361913070823690718410094490174244010857742176377701653914333996426214588719519423164621434255776864099025546481325369746756657681109161285846085063981265404107177705855537117349746661454468068885057088822535965990703357433727101671331390959353371470306635841068653087708299707871185073818309097105486108630087755293488776821077855285324606276016849655241206323995105777249711998993343484516302712188140174766338845331350411828319781105246748974774362946183333555768070769089707826865597277009266890172843129319369622178709442952619332982429035489892528623562710239787589644672693207707356075555412177116232109001435843420344279332781046368634979282317720773624247282858438980391526401322784216294747855347329020624250648364462734014112800803853976449865958643607090667111070063919480827610762589391276468765078614683571294580475797300434203406590566760486623331762338499428111660249522087932506397944595709037230381735060365845012590208322953031564230934044614375434138207853893485024902730854936574070048597358593529127714263447307078134983320655304505910614353503309842900547072570398883367931706873332781881548732989632063001067975121111186116436346668370821909347051249084737267651367197481952365836395579053133550730422187430478822011437478393473143057095230749799885772829518009204085220090359618297374549810467571432584427407279679781362537632791306367106627330141673296377278572909136434872242674955061679170692496722605025195818362673984629423400180755785803284360734909729199945722725368869283072954408665237054091880110404714390036693279568263327935256185052191801313859473434386534577896384844257927934803126646259052993014006075933971255241769914551962687367320400724459810086261171245028454169026056810656088523384607964122041060556287155245491767976476776895502940137264251392951608239674226484357924322541514479186870281453475029595930529427065867312531707016284811300002531386649131080584821554725107061341835144011160607809460082663078157119499391633197222195985519340183455816545182111810710391418537989770089240759012422992111253275738397047976802114835943418888468625097517188290595932980998053361538379118171983606382184777652497266695512350054065350937487764454538963639517508772237869452074237228438749469409720089006138884726390222570581703896045544139095941883851987173049597839009801433799382375844305894834579175026721901336537980103443709402687451893357993588156641473392787928612529033755454157239263221982673384530413270949535461631673003167829203131789763155358335918763675670098412041822797911434217902582610866685123542936643021234765184208865382640261607732532516853053000688996664316329161539076232998098352271991676970372821622702647952123618446993335836488777738285981465281722780057355740704478889240755899918415636228639689675386807668490152031585079514835764944189224882583001979745080066504605020546242945515275172602193798565689781464189506383990392028932660414354131964947923633103382160930182905308250840459407625946233709599392929362362761756378906855628078463599618254014195965818598293053214645453245036176554490651349234996259556437796666193809307388806159046693742075661926983581639237070503553255815228785975583551100211215595255950957366521672169059505071515640429908780935995194204062483866159423549281445937792057712839276990113553525772338531584206080960785937116392592916059683057885276516166050914380689021984263084611549828532989330299469151733487257043298660652710803417283511672301238352400232215296960031825587569160355641879037674526196283602654597865240706896867718802634211703460043682361580518372710141699755384605961008187172190459373207341100158135954950618834659732363943726112102327018105305212112484656135937212354277219842446519571915780150339831145904875222156819287609051728548861156098169626473600513319385867020172858755438167262762289573152645035851187703196482243529360910760453999127473068489632399918937487360024644225883112450020788494044521957525759115925302912314824071062956322674138549283197768592613744032707713923341632796188837762625948308028969726271053280458341373138820917893304604247744973277596231217864432735651618744918710116184254339030299171448948911251476487578246427499452632102617951638325040487998066648427239843830509436983801725146895261597862326096435296479287005881729019430787898392820960066494542494099499147071721099315562774242017089237696271600326868398339220707056481793969702418950335822993047170171679165190294188590355960125272773953527274041505307421619530900043345460070280420700055489759425854288629167665958550932494973388102038733879512277243071537479650009100973118188185208804111427375723546401682569700923408057766864897181650033996756289767022879024825776194701127187627010447753944412494358385654124741780892461346556888520206078666502467989213166905642472487735400145463695506366803535984049227986431229737533111553998850204092125869365652325283868016771448536975158148403580233739932280984581717842891331332700587017424639436437375607986269121104832973767449502478007885312687121035942457111624001167673987049913395641402600159018626037368663177160931205086022453170752501447175318115282916484915146659633352892081577770110449749979402713665928088542551216160876437832210284703020227211494826623520296213025474003419131722445234575864531077549483700272318985151701576160634293455117506911320126029787692657181496530243532749698235568329871792013853921082182758801705399022985446627635339454797753365123179700637229554184560452639380811070520899400059145497555771535378932155977122264927588556690401321774317221841494538983865795733123064270777041337107157687120287955734433384189319031442610438248642109120792654533293292990411967859816713324067063577765287859031472302719873204002682413358426048137438555329932913142614817588456839029859013629676311693154907957879870886509212852875834224249652723447106663429561597901426872067995411787049962264042173555205423192037242963825057974106062336548872475853636856655955076367060177878103006263767550880958861544867838693530127211967974098838553514689661503837484646563105121580340429763598013428614711414843774254897436300295196350096581755671515020957537220684315472515951645276747688344070734090164031453889239391066738587007302816190207142068397759659317472037883817099113490690510422261312015234010944066640108109962249186019901320729694982888535441379269039622608619912736262810854943512738672511269180383716683062531647499952268254730903185663963236550396166090951904606716814428300822162839270502255983095578005709460323708336296660286667076913818272017010201585505063394148414690734683928639306889630651902288469539501883165291891132142696284357796781763954008692911109495037893288834469337140677353723118122455182490903501919768450377144168279400214477088745276689227418248671448081423074351276110265103656201646968832089124403988693483680413948189213148490087624163987917863253800523258052871600288974844704020523926612831331573651389382615725549591506756123584353430647717770421140000130168131766606437032961116712476248372989277132894912696186725261651165945334113139712887462180032688545588602164489997089463774227850058577292679797603481731381055078246675808746413741071599523354695936484646420199717733542791272300559221757340819718388215103894977242577535507050548544469002275110222253481218582019077953223751058059775197728457639210427091662372996329297994435346801435525757351542709963192545971009391559482607920332858622739456616067220839402587880057298134083204866113528378186498755172496558318536100056313441072278138297585686628481225315630293043629568950572201480565919986124961632586427389783587787343220712718008033769800877014650219921713770075254996427193054847365544630807469410206442013335589783389946990787483053747728743916344912999043305074145242371931176267153018010673998987569574923481139672098606657329910324614140526127548001448182506276624553728516677608789558629001837615301494092353469730621531326370672599857895090736522210640388169606996117219108011823003436403873510529854545789695643470738593896679248424154511955153100766114943366314005344585062506400335421707359142436046003197373339036928937653592464953303955837621143625390627636476625684347120537162561398746349216749433188840895632867080115404908225891297525608232332548418755345281868425731873845555566413011504693853157822954292666719877016234551438420802205031778005464666772400651613348455800552819878820599517614838770188750760098982757256635026825242840806090126659140652934936327559799031638955814991000723506201333919651882908414805121362875090420804591011360818839514729840439900323160197142729708761988008374346234957757905677582604111275895559443760369547419945597776302848059413079850718637742862579394330487242405609915203323111691485787039932596806060605795511981660352438955441894593102790692421642595055869718414805670908709084201830695920157331360871030149414842816454550288925828094246533751430564488357325374533027086777813749806218845536277246926387671126466867276333083091929148654450298328531541750237773500492101875512383057799489325650290463009795844361949678851782799296520946114247735037148645684648394623028122939402378066865976118030088196862992318586790787778266544963206989397440827358020797864163461112704925288560418396294717372088745236889847061428659857192530811157925424157708618112758181236992282952392679170481320123802321318350940536353435854726451605606041706666962151162035306491449119241494266926311157170213685428981616294770392278183000112007131022127983995672377495092662090101359018582713228668277416573382285740524273057443749415542832019329525980418067023782508853048119687541802169890236916842857729338876840051713225221238269865031201930542718879818660461824945660658148367461071218201680153171936297591979504045525109495904781562164085430628944336526056969468622377131867077299415026800714975966904959670273111307841812571185767237579932578676315403626772536483565822287059850776374702690650122825834423528166621597340944295135754045930917369074116230122590469786256021878403419647712925547924562691468781863963314294246924635432378700491990797817300952713562517425446820137731642241143122007898816177520920574867476902390138613651859593791502482216726003900611522143395715311857511016635195731062678111283805969190173222025194231405248633089082869235623519402966418462177652282810306768766183896933416223286433714261973652453106265472427500542048253199042037756366436101552004179585350051292812751768382859904723358362419269457005849820967876999341792560548070768910121103109088072467263746346142045203637828118563775682339539607572488761861031087483461582878248426401474813672578266334214504868051558551489596660194034836286194742317600686185811187225505766875457574008761544043947927556755054453138303853350280279255128211480628902693993875231028238358388196411842009403188999055734807889551868965633904808296865312124167294011980481045525191197094327251885421722970712908293259489461184747871121845296573468930995072476868812309824365700028411825704254308606151459431110236237643927246011704851304727803171627183856015659287255258254916270562072371161738884413185002035484718585598835393671845104822869361995095808886929549301619723564775746290635822660543443605969841633172512582199210458823026387618163568341410878428845750756523031714102775071329045868362405869941725350840147800012399817033469112752227202164875533361927286864843023424305562620643709823804492854618038959844111032357748091549781594130569893830873578707272131466816284345544007761019296169619494105377989730395480497816840024977597601457003184945155197350132724874031453288219895911662364983264935150012875402716580019815521023360449374775424266457363411300975577586203395344293450660657736130353038545502951509319643135198745491527188240609583458832265540279198088720924765777339570026364883413734423040139629480022238604419812445800295066689553977945716250590478538292277205772968819596918415522057755932377292431078340819595710345904581424626109272369155060636997697465454623166993767272238629797024021157902979613719583570609070995995815756445149062013116637449116817494801416529858079896545646846451225658554758682457723629456285740012335431619417328296910646684779856910055266094402411326871760816037956379104543506598651623352111304323026517846014069944245653530353674200837654323668030799177281244592296108960843049999578539204859132678748833537520620642543873369527084193331986481864181282764231567976524362206492286998201392334405870216853129539434915510432823820968204417215470900130396592999057662463569215098916458665110558658538961449378015599338250410395360074434496719430336001152668121069741184520508855532976266059852667686578709238873671666819863814583034383212706763345239429432592545812496147821185081043286111191850528583103922074426614963292591593319080660963604034580597467599454419230280968334391530401184246742517585206977202970108393841053886571734713721217230308734907194908594241086143073004829363016979383387183673243851533318894519010045810507390544765958080132958310922628283031707480696126439156037273812212247875357623600472956658430312799297997197151613056320070246356303343658209524075706626874528502758805974974775953506265836667960939823425116405375148798032304839222298195653735065946983248016160112906493343040178079406199863165083685776629153045176949786742768051650000257826404939062184289264348574302358740397970243399110265982793099957535367144317335328748748745022164810689742740867129465739893822619964061183946827606713963868153370848739432972504703144830512797460151573391386512700160752961327771270446277421996702971505265138650509068301448855637222438517076829556748585199561172971826811094390719432535882527221135978015210279401617785379657451799021471128854513977235372411334036665037880428067226271552994615896315143882995131227391101618372872342373026819954837360865569562213070150181003270637595744776287020878032977561309606801914006310167619985619236866863048477485231285490174241189991504758348894977290789806326327368357946481626011037513874593878502796185904099939855101395291985136656184749321646465068397081961518800156701431536736956290452266207629898720187514835993926907866108668553381323740675927611478211792121467312224349212953634220752050808403632879764825751502830530933574134226519505952382496749346962116780957258056529706737229306802383844201862350549429001980656637211872102704282560482043678082085556743864333544543256806131797245702337152788406966064005535216601140035075316510017725874798585455837132796646383087589075457916905264020314259824946380371904277835655073124182492575651276460734197848111822594895236524550341741296543124022906175143580042438185288931454903799394646931018963073038322164924399024541202298219829530204437598351349821767838606766211762620476030769261856961321546350960832050743046067889617849000871634923994786431483609210785128066817823605772780090757725339012104730042095479377989344762877159586405221703127407890438348289870261936368530539819507314142197493813848168729484019436328596849936157595518201013285765536071360428209772080753666398647479382548038158381733457521830488242435489692410691036515154715476245499795639022312564692073474370128770001916643516715435282086107983269535769348915435071076965934735050700858506207764771793189018423969656515455645996098054184646747811667676776347640703379762259794808272920307748826583653527045154045625707008124771269644610776210221614197118926007241415189554991912234761008652563493538281530139953241231230081584645270656209222377578852790713264830682235161963373972684191749400456468446611083331215648169288457589286258651995499802908607307179087562813015909534182548795215343805693437543905375606430894840798976307143688495959706101488154914296787387828296111815658101473293689819858992322235891456993532751682460601151809931295936973606331787064709935148973932887184455606262083678310640260050017886544007957539416039414727265852072111752723027043455366052509793806560784837854263253687327121745840023873467202113791345165338406139443758510848696329430686900375286763917200632679335110141963524876510457337436193455684549845293268614618617466227244609377726481348112223692749870796056938514274257311755443148137337502558637758806826154214285291081198042330057602461807278811253727393030355678721645928577244354448244499102523913375995807526614938757880207797374962782268416840154624580099066539444580357568710984497947021298050331051655016251650423338648034657685059780850038560861480646164082068662914598193498024934512729185592039431189286966365597472890676706882912499230210371836284086195669466828562949573928555041598936847869917303703950955018627215031887355622114121377717147973849316074233790031546084357390844209357576665553015474692404706587399324907506007126163263367097900446134083173189120999890004347062343264162513591803691203186687979067305860674163682326221694487678311627893573668193781746049721253887584144060944530567332643791593146713371308805931460994827490084217880465235376085306470716036438499406834275345025727935510605354339116161178304225526828517751586933089413059157477939399799251050572910391891727685101137605311210056554653024414512729451538234640106387619522846686676195025877567459069733084384229788965891899376571993404790494224785829996746669516289445380962238233932076778575828708483373982432575240718895376763022713279651318010530971806887531949497215288371012413392179324068485488880771835284066122695044482593197657847129672939190354676764498117415769405362604121477031012353291425664983649931474847188942562210431971921793835805375274223160108621198648472319892502417740646617528505523897919675688532496061527985620651405129187865157708939703421760079680051165493867705994898051353200061885629738465145713079891493367787674357179375535196656477686860941434367759654665057488103802538445593298026776174755516413694133186581378090682199249167401383159123138492036329093917959905420057539047302001345926519376896562697486133927360768897134192263143896021425200381528617788346365981701304550033708805410423614337583124215125137640708030375037645970215707075931682080204209478579970131221280245202146718483990878350664491349524360954985488078873533762960853007106919881530007240712915503778964940718030105299934957420459695886163960640769482876176283090254517396908804093970022370160873375069246618755427898804954635614789879721243863825699632811796477781344300683836335530111031357125175794651243884814858529393654432069057466469594444389084614602140940414995802065473459167475843445396763233384509174634234916406325455652023849109877596157616148245827486836361010521065463775246060252766348967977686659501947052804204820976262509511203412414141057341462678664147083883052981111450666621715870391850589633438919585015738385099589329106162930992964375144462716088135638811371551280110504840788652569240600575718061413829746704748182619373461926938087456330364149696977070107399447691599044735018630396042920051016990642037284133692887809914724792605704187479051423330568847750428609903631793123349924642034214056088764131994907074889660477907058316287582794587349017235296750432906281409042708538677776657564379342920049703341126415417856271249062725946719514142864382732948101135839371467813986225403935428872346913575892367837663931709264553296978430869476218027910858305555057336985557211276982050036318593456359522428828708784836628717044040700571880490996284316523627458922708735668427484272499018755461021958139420163334692412988066789984337189794837072923083094617426753032022732373046206164617788046040536489363903792878522883003419321232896762487670938887328042491028134795624569399348775969322093512598911394163187365413400240000906398903019289228885394510898385843256181424642265691633290797094976840672871595340239827793289303949252043223017239405285149201360530282760390752610393686853303187265782414494074351991069313007405150403463549805243728017408560968543893540410142657376406390358358538061412498277965536464462499150715891760698207209211100061241428625850243556024839346675397910543449939157147195427390500244173664107365260762429981944737018248651833713124201598903460635237604109291929349336691369580769504563566707178746618144026397656933311929532410985528106084069753717011718496239781145611962543694549196065634334611742529950354788849764029892897214732203318499651996798320170401872322415130781379581608994265203784052834174034621084482223019948786329582231225412495849435061055483278598505229422520719493932954223257194158277414639893741623825548232864998570777768627880760916748860127714258078124845021178982955204061101776962266466813372219582975832361783436967896583297144770703367642741166864168685028029543294098573535298450225123089721060995256621236413076106629173897512644970612993220175168417147920581221063782221038044700378698410087415231199774668901366829383545926966468606002895698347924939722375184932313130509146252797751186980725865844218416395067947791073767169478341487762888972874157025057261817472865593727346080539454216797743544372142438957792827890618252449488089143254882656923000860679575339951736382351807621802541489195806989387397124472241438967876409227443720398716697895608930646589601317877683172153567488907176181955913392414592952412284158684168734434491086215788371140722303259357788206750788396934486088140744364705218837568563618747500829287970626131611655766001470212777099345676322859927989459350807726310421666368804024945663523803879688953232176867169859404634418407396596883104691285950187327193210333088618438797184763789005590720633451517248967838364857107063730671652386905820031712366660235598612812961105526366774512263431048939762994438596456985106463027233303678505920712672402013237893456683274394276680397739929569054142643845851712164678221575219197125176224982236128314356493048761499058874756779395590985640840898726475089974168986444631410904083306095435160445348275091511021206116205633827647150343287126467366313132623785020827833744637279193525810452487570815354895620350027806504433378737430376995839326661621092220025012577999808473316051818272332371050412867026584602143822968205138025916108676194499358067103605492488304817942399546163066392138997424469944232427629959503981963696749289575495834407471206886309137076200601385761235762720189768281512775207655954136603337506869448480293601429415901512591635355307851898811441480682860410261352577565038841731564275778234876188364776525750211615067381035853043750573123445082513644383518243257761722906431358787541016438499851140796840568717566205084393919511097643109803364966399380549948174561275931354711709133474500721286746316716070936981894710678502878092093966391561522889169068373177984528111195321629904121092093721574027182277898196200674377171202049294986871289391249151684527033399363611703443539008464967270880213603463851964292052672799584248633345078360917604761832108547777213966304692628776613814113662191307158870665380170629442812062268301783693553691685223416039767000736623249166324029513153412292918723288941343346893389859198661979619970764633524361038201828733857867079729452485730823523702231073152093786211898729669848379519531771276519380768323958721363366178299372772063884887860084772535871418349253868212697849712468134310281689073643819320329593951042182367889775973476807842354713766465868173447248132011506074460358068634927506534611171229893649652026170813566330545242545601724326197825161774841780500097745904954467847120332634888284589714878917878869131185060337034646788270392781794176640256277873355206182599029951907060142095035858948413383167687308535231512660291347371640394972665841182469489204576099029000994687008304880321813072781379616315079936625832657453296337399547861949878526146746110306907456107071628756583355317849636655529245964262673739928375970129270549418476444183242124016307439506188663444042897269521938473089612591182682507190928375120997781913713097055914328759259033965064606386492003547615733449170389327731296145791157452412036030852552945624103567435295158063953242254003826141137150593468535194715778125117283854850359269682764185965838665803741969306472030444279898842295310877947570032106987148718870001650823156713623539049051208087029860972451738831862430665802525012321058541813106652617051855193060491657901510129119329959017259825088984681282559279484984461737349466185472632868573078551504521487622441012008397363998826580707631128027892251007531530712066016042364859094575083954864317836705520001822072208809637994235087493321112401776128610676446783789635202711527241307254122164425018651005744269394227549410223935648839248278100603495064936498718103282317437973911163830796551970759288163711419943249286540379843194178561664548825036777078896924448234971262296924777063794775079106648249527008128040561304692376644493365624058753295671114921177049413215550472723730370041304282382852133423379011654825702937177531336347864050174240595978365698862178215341476641153389465576659369500134843364808145043699444339014743343457312879448941582617426018867598187362151009372305370148718803516156976165724206381958062533861374510211541497139838832540335332380900729434980181929977079064392905147566276965225989680608563134191426621361546330411524473486000541303330568438843910935775880452482732641241059151873396961024511458495156553292359805395326405139117116645757334876175512844603224992428934677446588893259696235084677431649233413502929964418592512950664525797639548351611548202642278670919159876283178004707178803615226847978117249840094063730891022894153423850692189878453980794161671364538951357379885210382256714770571256321683390450314910571978909542642445162175097755737126337124797048416669230387925262320929787408761009472212410358131627402527983260430255104530020456256784739451267656070345894920862139079100572035433422250236538896002164964474137449534066592699474994306103430877150438714396738117647902431516358980126846372243881216885362428461014312059966124951160289312487081594918393716942889629547100190961315545701522576813735313944016404560887894974643609702864649580044329410066688769249294872385263340996766514857738358392437165102484509352293664628013374651806813412970659895330333443327770925237893922121304481691260159624441797896024965919600926744663288097631555337544892879924907453351995054506705475901453341834840477659672084912610766505066588311933532315709110149616231979617140354893235483238457464128310307006259333072247073139861449970656308599194539960009339320941667611957320204956582562879708361036207590372332158412111669168689680892408144284862120093227122317704695658276228426798160343610140392746433077303568621914640632087659300032099123479270697747126735625578187873488293800034306816887155257878829802621441927779721148610009220397298949150312187121827765786641505066476117787346581495948461738459745486029703523065519871737574307444725594387673934516878279341930088385999864999775410357933653428067896100787873826591477468983984912977561791818906775321990880524278852677978649609804073392142384421071538193215408164098785007518002832397717468372931732708350112583874184381717090919021726780318028046667395501362571206819051012435093052806331168447713359203454629438270893497780883530734843959843620404543641219830102311741381485891423164486674061626093251432758854600042704181053773250370898425509910911255242846435811023211021930196111552775890429154986030446648226942429415170997449074511995743845267943977706354923995001882085356495913659439087081601388669088049383825483182792455604508966653214150794184882749924799725498487551714434755683799824450374096726580800724418737847978855727082061499230042095204030776187490745485882693310932456523092646749724119385399672193639223444633765208606152234244640511148459685723727090522689410302713562952988352587538976374226998572606126124696253670854721003787906137323521898891888950748899924128201573435070680731840879976676451325560042610806728730619518743544353538651150860180402687500401052766239450729078137734629226213308223135964308455466797717216045876904133534549131983268955435748519712725577213191675739586052454774137286631140869171650400678612456628117612591848350177869228468953009012734745497419569271258935590102805064556523018119411494505132225553759717985988043785678493809491036662777159130239914153430258845386341637513632839372827504232049519856737545434588734498105914436403553632209832801073672716332082124931324540644703939911251558533161534374860685916134770677252757573850753103974706095678527813658088187442674491326752405248473174124911830033468505313945856544063749849913405415526510895722817935923742265543953292095173555728705962872439117267521989679063531369376092728399982778372782817629142553510625179054591634943452315152734963559514964005782061110696262540810646240281270406202702267474136668845891555216475757326700792982216135110142234766809375171635562485702533553989809529089966416558608335180931272371196276717967982564331256559464996219726087079490279775206677839596093428441912948177251275941943381360209110404994721778728390591570658951133996400936536262179749658459104546236800831301361318832298107254457581957868439695702149249128293202787392455820592043506284430804377252713568790642942564956211500342567467860751693848409488901302781354901706050497439949205255143049884963548330621115799038702100493224415900522359565682002571351584728459964737176661994039922322945264002086853686541772518831205642732892299409609150816262972561748810184789472212818561090529416710201880993332058145505136271943986403644241674617239788499733353061877856224953879124329640452667276676876123222937841764798100162422997920790832470147481593345123803072360221613964453505053716288378496985523559324426263730210265383068807155778272622313350506677803620108399272438726475653098297931390347292063626494679320095033154920698690549925750417323803052264304044686341040578336663836646337926839112057727881229217227016457779003498027991182953894540362630955131813885948836613461632672035577393027709781424252868332431730572006952307555534647702455186734794992346233622157026276926191646231186762390911273899146338647111527572742808290852338028768223242487193104538935410574083139643578970097781716509739178496674945856762106693661825708957386932351404520615382870101912065339044128383137728648725044566490456762014954222301272602158770479256603351024787841531008278528644879158312946489204482764313922730430040703184028212178002338822636590479270813539979459484027023928562530178190467194018930027290523758990848627376604956841496528538882000032708483627274750093387170263234303822149715455202614338699519189130635895379638597214997090810215456316422408185621537485797647872535855835704952439256308201416119078192003697794538157955730358822530680115247142764403829115422830476043065113985912373858699265838539893645705102575354098275601100169686007511538021313295279384547891399227254300916495771212692805705329013131796524053598154666948333121534939023493699635909404362663048686783475401802354326045271627641956605161821681560639958478452840617952446874212763148486657621902053523578262894073065063280522915695685199776096090557139202402415073740081139238510611863550099561232592792739399511850284585581499102496670871889752977939130152206501745477642229075812445980041590820614226679840126711884539336987909293569958749691483384416377253996294561634399494119678994337964450081302165118821359033295104398151288434116766497989629879771916974826209829196013536595630968532010005182403797269668638637354249610927856593422109832436058310246444442911070288605388246421495871051470355425286169680210815136082512045324732683078174279435277129999652653739386355085722798106179241290406402069008909376930841126198174100123090519977013766526390995068351283780482348093404709590444397756886288202295306615115195046578331273030875208117931847412692512630128818605697203966308276628121392100053703853003298484957180269502316359566494267674187177781360468042079162254594877494504884924225018560054850450100109341154727162262823318312013790615219313367674064558103319250099711474085587298751669322257947291006353609053000074775908729346871302469024754542772238787270497409543655399956524197943754490278239390907142239034833979053072354477043523276176197307568833027590957114743003330217321746349531212406507186731769315275711535350429755281567170238498024471830121472770401926619041148156872853268526462496897752188040457714045195964081054126136963614455802397343964934285657004651734753069378256397008955782145873397081818871472914419256953098377983379080043383319999811402946101102928708494841514533474074447831540739148810850769519978314168841795762113502538880086344254231372198909825696630148806588277341288292738122661832704885242960549911901969398966065092882677405141902100532148659238059026965301495074240600204887052805989730253935354683518316606181974955638795258765705824179298122272359049959256182306732948904117734346855966159820542434710704020030979797374801993762701556960619076590300627340151262451027556711154049074928496959807739862264434178523056359510229844028391310133909805465153750776517673373340150819278515552808841188552443698753920405699830471188775667417866779654394298028841991413372809154071113494794049065234797574229744603922555535940415950012631050060820395799438194698227658361195652858083759697545563281675674144202553752915312824247490436981627405434921174168292755107137673999813857775330809492345884449930618465111466764013653382665164620172674849763890794900669770619784437567115497491888605330502341456142761899882652026603473371027780298857783096016002483366011953811344844014853634882306283234991758902184155640711553486526689499455540570285852717808055181447176811954809697081522366107514652907090078304377002661616567270911090896514589312023303212439575410818202644261448112737130202162842251249655260046018272759494548871132468437152879460452709569321708181863819897203320523845180371537988431373523657186025038631396663783360441923157154543395804887594592117946717697923335765306931591575779002066775980305026279519044056088104246545602103434430707172003795388078666735912590478752148800640509103892261401639650495242635964354289523771721562754298194298922090812913609939122694324328721480275343420379131499625875196262787382824539609739956999767477372708572553882289736254445698562680080117220478052325383202893638364357974758120272808765253726329475365962457929999647074394465605283027878708670490908984051743846151431345553416522209501472184827339374479156524918582032949213139292902657577117568645800376842856999800389985936318162830230617640071499629927686592719849617666385098117584140398228969084968290512557883566321978053656396650448484263342424786745760961911027681179393902968068169205008797265737441650709196915551946143466753992028486086547122285513998775520768968247132096631730381007548095582085514337406177768525210027014857194780672304786767890955646883865743627339518083729435347852040322527020321016275617612543710084658840480685783093514246021828959796075412881944354335316962114764039738716303075236021877660158449418056703382086079618168143984296636968518189527734954044263551298683288766518599021664973136029190337123319166210087333914018680613447015559841206148006898488556541933136963921689887203453920803724151949216922749880877963831954618468862832000116264299426283860557224131454080559272043492617359893830849640518329015331775284073510741472427737893656542203261486281234195085647669659593921213657472681329930149256171102456043328773049022235370755732288024620467301716883376655877913451148257913958282372944570037436510636309725669812565636414742654264334158184590533320327080027972563825472664588203789938114073072125212320804548568064347476211458127699891613238641103190379134604756740202488403406980054892943785739460565301542782085417458529660879556033987294222669769065863561008430018171529247782009547804827939929466483956844464554436456755310222644068174455055122146626386018430584112517006744083743988283426817583705996864786519170027094846304466139561326891812211167205545090357526311593630037901297247692298256594456590152086006717754527018974704851976502540285810520513022346936463366433043332036148537303860184391726937696072137160258511920004635548489198839130770333521320295211306317755444441557320821879573183068286712668524582380586967044051412408309375585458978576641542788878225904945726853039946471745731357770392361807374928573530511613852483051513272047603553581555873814497592164259111422670908771984879793992579951227896845334811197599486167687002584704217863301619917144420859779992679178716629956669422086300671387169171478609230260911315035899988928118099792764002132142417487102539352091662826151066679992281822745502188265806249558284420221513198061886975712219892479266688434641597503608428797860015400670473333720925224454902919651137710497652780787511280031777396595271224894064334529289830160461708594874671494336821282786068282329953247453834269984350394646323994904202222889022381916114214415543584899964403485543341499130013051623828597938058512327516986666066862519005180161033854136169270557714478944597828649401197472496145717180560434738237365194057086396995807813854825070526207166128756806028551077700838661008589566271816932737742977437576733681125234363021208391160884538431613667198043351450616591800967448171744099287380126314237032077600929246653999168575146375070094876380672777559965964145271595061292018287913192204302017929771220628082750004271224311151259741592435606214209320303293240203050119299131816227206133908959205827652269339438047423411741218639838979117881282312554593975391079531070690833072916547191003447437851514356709911666523778327637725969317204117832055500938719780484155907891748025467640271562714743237096664307660027691765993614208991525656357096376212375389192388152445634341091059449884220996401982757349534082195364513692767621789069982850673082521429139296942198878095283114994878462774966441356098748818724707501888444424148912637423343138934245597504497548934710549648668140768928867874133237466135788220520481401490416852450758271157246256655584831255160219901712744839868201038307191202469604118398023725494419258599279935970306833373140460208971347469429496624254692355129891374354368825863968929557327485501889053102513609582496809816488999495732709272413086890559672278521226366252756209293023887090946282338586959518641509002474943680759875931509375566157006372033273012872801988875445037406599281831106973837791666163274828690274972975150144175652568954230857648125626160642783894230370268213848619847780890168671426811272137375943121639790092903895889369414670819994517200911985517853678166793746391040030498807007216731996897381246537394174274470574012132266622550691044659134873246904959348894303718793640920206551595358111046949117456129567947979149135573239450418249833146431412264347727509639946110892210849454243858718745924334026512204261101954168892890398951303869041785247768891478767226550087978299892618838451393733701176192901527533525262127671873436376909989066219071539261684451833119600003352008141390110587437938926784182398324595329570565436241230115312308931355139091819119254571352557970420250869630709706570565643010473691399739638250034753962189728435181912100408759471849832215896424298994575413098179210036215807304370917668213968141583437182528028559605546664792849317451276398650251137394037790793578119894061307123498301605121977554767136057002987444649560902107379321556221642645342214380543193488685495557992748572294306264570992544744702209933362677957392715826250722065580459787637355100503808971093974797697949803406072703096214259994729936997827085747401616516722527871708952830775937552228014319043577815477750604467653787224830204131173044805925569773417263594121666095723898920684935817729236182261347379989467977876585818894101508094231674705770590439437562548753119562700496773729105274846582084117408749360676577173215760374925465014663997075077799280124124481753175828805062598736249520471193664747016555186059076105700978956079876812107037666726536215865892081037453023346718110353567866617392779893354970799087864163243726945715110695849978815016781448731831201349622793932834784047214110246953514917798938565704190521876393163340725610096523402325889094680190468093072249666635223295777305033502167059913380277729485694808555992118044047407819514887847598320241705250405399953735909962031282581814691531377507573894560932156994790267362629793328596538770810206662805193208566146061410717550161232643469922370386486582773614127952190936153040149542213048740088589663316424988825276893840383151652912281441519874073584128045028113370846172076181099154430628918849819566742687475865924599229165622473844916578957758487058301719815896338871366906510076105282459845974640471855975203736798123133162861907164607417647855593963350457215903526007398496204094534367950725413116582549136522969501352607341399757919608262068248244065242946064506431956592046594743218315796180829914537075646801095724849988351683316050025751084825441425096012913265395016576999061169018449292453221148719342332755970163678317813494625592069850742154926198985219918769197981343905684711501869105834177017094321248749345296541326927946439165101731529552531955247763465504300079913406943777163837576717843264637441997264480780288732447674085865641408506692824171018812845625981537509611034300923743837898556120364105379745638601892072007694840608197903603725004480175941972574517068270096568209795100400012876755400656059069339812967434596751533036106672489507448914359603058268264717232132018780117766286032447063325688703321878092028154899486985478704453669419183181185263666386423068787120480629882566060620077151447088559883729495855132931206411226081944785429638079641031522811849563508255322002518031407067899896651564213649322860096141079527643328142506202880505641183159824184607545253072952369439725431525313445315073576546041159223992273954374889442939678641456555407827330810643854292649805814132372992364658304788400832226926380558547929694777753634185032870233988642488160970868300014132629115769935455202634886658533738614212842779746614368238749900371488328311465449083297348715267150006925285470505568330631457821904908768501727032155033231375970812651339334860791038474382772336186743435650631428318689211136927979765871346200577622157771018805591006777024860396815003367306545734509049911635530662143173185760667264048765697560638989484500328787595264883793437530884222320070759622526321900120533906944982062226615769268335142334292327378962999554879974022702516289897930111059100991701438035813255730441231776490681035004306327842989414174810500781584462084163859522659907694920320558121197666395112412546480204274140207556470812401670983539439352002730959129426672495541544206539830486836243018862925072993350410858532283192619506788641134813177239463397563449910323677822478554187483294496886215996383475866388447708734628109153062158654979452533245270517828519880083461954312868498737582892199512391156954470646934765529493354869095251798088442731329462729096157627169231241543870588735316478191159729141235313674030280388890674301333252079874056577110231128029881713800132506144961896459857124131833812494819154496101368042810878966019318314663719129361947507762462744029682963132099067577929016334098734085992189080080126457092530661512401273988921606942595629278874091709621883975455438989771336074945230535484670314813796049311119957172760333123763204740261990008297911186017941582780419044714619515956706742154668046053989509524016237860262491035191180142809994127899207322022122779388182203971980626711525989234539125502508436716407778670493241261827570019683371921013714606693506757448989591320097112494821309453128501258831474444774710041308385008408199163244788620026232562182927522429540249675361174612296040322257604431757794770927400296526329362390041546021364430353128908341875542855579054396552886640906131642131192727503601235649610716332552252529912335382062996796595747570934795900726849020325612415239306026004415402612527297555582129064776061809254305589347720421978456224584026752100675988673410310152578949319596780622360418672707793481189140168543750984242421082175729548244311838766666762167043017641207942170189222707368040879936205194144043259070555131473231699817524475212567970614316415287810162647946377142063596734619173597245408648534277424961331585376692731270267948773866742022307633496006215136356765965229744780166638456753021685474556984687935773833339417483619111536275964744156172997024621589684969761870668469221244171107945221437004264353433213869160367613630034181911281055800716443281564915420568513637564459921987076299756701770273367215085666924224287207032525774964278217194333082086010908650879657377706673682815207647005244532577667856430441576085235470915425189283119518797836561275267277421165817434925864075650161529957487103576479137533837977891025555069445799214861301068078811427537748801523374418579675537135573594116912527007115037545208313793465859935491369767273008921468603496529663021078731507764059687772938929315309517051991557977080410437170068286021339488619703465939082857653535668271552131094198298966254099481519537887175923931646094239532180648986240355631731065171413740232533811500693545423623737297199914030999498884260162067086040692857133116589134535928935556509088692667396339190448794911359392069715854593386069546709797478173623446845234966335106601634192069327708652117573561930840566107102577749919544728444589245770111737343164114694154175465476014024218019144381952202061550483072025887565202927423449800524225820783948873691048577199400575127757151285325759701589318108723513752387092513609963135314268728486286296104304180603553528711518458027796312614797395065321862879320036802979917489647175832520459240835993882619480606183584411096396895949918013934566606451469507123253847303554866100143826021954803576456683855394474768846419564314740515145926461354958831967394236320828386926813091626023121191968271482197406055721433406158212325911087912830440097739585908701750047880463132105964951104284090511968859360845812697241661008451432022227487707503001366360757476312317794074545073788560181542230322320492892234888787770644482489578205104036641517285334726950987274033133644508392296558735765333032410809346321515955680519892143760251902699336859254540308239856071022537489101446617613257026566220763774454249470769440669884875840476875968059771502065772078016337114526648878866842892188732934196208029883897157711466205997796591858616435687360672970970421692725956800649276309155694854220333179825038184897405975762185945805800386299900884645347237892775126281188829276384576267597480552178331341788182124706319134166195282276709211679577581558431544907845353904923610231308803066370471819742188305454505005953922591542101689903889087510609612167035734887631824673100071341337511474650694424376952809472253368963964130513217907033983317853273718846455296051706877574072588010504091566028665210798925991936205617591883963356708495992803299275415144067916140710232835822586436763226770434847178926054425042893876205112252761563614737233266754613843227555689316696766384251651741233643754315419454545436872521027511632296855046906700853763142225055153136686812646532190872398544510375333265428199914677965645172498748934412116823402930474966663375764770610409783961468922320832381746888332727029054607945229303690826856056076366061317165055557221269967683697557323528654954008434425068279132909274249557174493528181679342365970598148271807593653355850052650815139133034535792229915066025427565478741112748047293797590731713824904029248048274454297320535982779403124899512887893655223394790093185569470659065967094034164964078779534016450567894899991547140337803605962131474588963541650652791159176922679308424201904221217631986391048543816483605954496951578580201766769673122575410980958590897725158305260649049367973066789050705461732917092901881587937295830033727731090747793898098014325043048025101407839211883933795159297000070288793033450670792316349268903574051659829026999646960350842774130642552568250539537343917693154842642525971887657440719197357600402479931951284864584565697538117696110151497511611159260987928156683013144616844014475325763414340028507781229015616055925701076239575561550451047102885074469927831516117489477457493798251692311574434446292315932487566726844453454124546157352790387109037332087371274124154053292072685715540155868279982064877036115943401462806992681188030837663456944014152062795824901707450459832971731323098562658801647346638717203667741421624436448781153501986907912940853156318148967031233748520173419242085525188848688021952482102007683840419448762328093415692990693326649361634489864842271724281783863522798047758196867737905090311190251851861461070654013295617481730687921232042259134708725299172036421860561192170712823542952658901565716798763731930663203031894115381658442504125270736676620213916895691326629090349000620275669201169515412711555774439572589305612500369467376766427242890865032969876155646328284173594955320205215486071412883393577642370194143337372168721558390376018066151489851354888717120270391125890879006922743387157705104873832574606219915172116570841592207124321076548051663527265255721752940759503036748069900360773303372456416496686473627416191710047231159568524953600222850203936945116465890558857837271009609281966905465399775405520678733270872627479134335692219224886814321280066161687508380565387495045185422882110991128616327736564711484098571237818828864308971552910625530649553435049969964721605890474872632335303422280663812529994431041353955940934971557168420328474341756501651053223479566625711612473464425997628415833043224905833303895728873426391948137063773238358122855998570212427673112986056713560840475980014282547885373599251090698708241220317763791065002380192312947899368822261551593897535369175012449287635653653969726576886750270373413005020807874785267314137742220773434750770669799548825228790583347107733442668205449410177562668714918712536619420062969379425256184371868183661461982131176023620003407735183976702863261450126046869811221168680831639655336747128448030542267748319482094429290424110841993390238907128890564940961411958369277054613061515964129177985566513748603300215697984822216622010166950764567365971692569534285902996932618690358518256726547593315084653781681973966875240872137246977245447609442997052402778084742131672753775376497505428053101060125204309380372542037535543636310158819773406663506697366324556485284124664483573250310642801715915273420287108635644881106833723116928022303798425105940885233260784920048674125731834786344949017308960793805226369335926233602589132424907979337262267347917261109183692615229080901379646880740995914564971438915985323585181936228577278275906377018993900943463764695590887286414430428739531196786390060166450812625001525770716084575190330850432682899279326221322339061253824237222910506669334543010835298855236335153027698523428984989276253204612010799129426015378141820650218902404893857983037563034824935099026509444392485019795368722123828743241972621564421010607309871883704125887049761431119432180767408067626832424921101108083585098342979994219101324240595985226992007452389884994203985253091315676878710597412731635836359743277487043696314835709760273535582554967935203982405062202513369487560020403719457944572548285046051711723555829028185193180446754529177661738254173451832549466891604216592711515855054822782357188271778518807148184731822573414407210187911437006582302592967523048539803953095929148594938522741247384202018951879924009971111741095707756683630738382219313954317264723000563947240936276779376895659489199702356131684257277592060269405051609496230524170745970245837357665483673676497736043211068087009530100449638455846781741124041260791100915241077876181025079790832435442974478856072801710747922340368492882518252107199512784175223661639802134050000347661779033070301028007374718324894695709823911000541502926920166435637318938261388032417425095330983297414499038772745379434090523336777025233666353385794102332043801559309706907522522437521288005041531525249470817395722757121203724302386513281481076963778383402903830221849133019610612074034995994649335834902223229876935439517949001638220071660794687961301091473906764748261361495507013435477080935151799573066153359155672727099671716010310441818867742344432533223701517753655523933409543162667906417999263011113576864434193091249441178374692510476852898617935701817837451540701224304552405666676911008479056731178847112324532426105519737964009398140113225765896797538896189795669706866733876620213913333009468729431936217056839694814627628252607855248509417137366444144797844205095263363011930632252390505338427284677088264717456690644233370985360954876606995680920415493188902700562594306137609637278002604247537053817650990290317184722851405058272763464777293143591532134128496235676101046190914641156726797972130191721080603891061702470144169434973650959392342151914478959172338828046036256575573561321369747889716363954700298796677315346399404370850100794698374306063119744550306210819322332212512954522735826360929509853993059914804887626714179574187654650658477546529526878526215515966205854492485118675306578716366001783087952087741059264024363866493261115536372249777225251695239707961913406272020489672207927717122082979651632216049128716917548668812137340474197379503149577062904862289817439903460841416642207436821217942267117142555841468603413181810004958823552920667202035545152039161237324696457666527831531873268016963120542597543654509189656223311479736732428702766646517276449646159167879528057538332496213229720969682204929290082919474734422135992726499189619229612679147997806575008858004848781638300307179886347144696681018055298832481398713884383652527313417476337880460750669963441329502888889925221239958587549059293880737388122037763668132897157556051699970006432348266101310168970693699506064187279602444706398769508534782958557863341351840683826589892255606594271589913478146234611480217699342043782855546624916967170562713137309995590303147272380558607734485301706863374820395212389093372662361168195229425897983793852512653700574905320276771599698123749506364335364764189166056194636204461799023969586460876843213980887841321939258862703840430103827940433999388769230298018824341748653945470017569587554016519209049481463904907612298126987242705996019327736698270431350342126506324292935481707085620263618946204220966584546719391271301197188581793452218934369066027677655018891786768824129259751501681810300869800852760298860953904472503910518836398520346665956051649195699070846330853964819110755766606317058649353985183599638156322246412904443256437635698992548380414584310905451228406288042531877212202567410711839918630067970177054361041268753405287935522757362603646891954759676529047218398326345470845168969542342748220004979333707698633632823289356086123128427976363774410331188768091521396735126074952611793496146851999041898964177391234471813083696398596504072427626972042042815685460520344612877921746801621745989420437637929932179762635948289002090704588287930509006928573781938718505624047745232393489519370996199457387134931804945324937957083527220539197347326633969679903785623095430117115760939364632611670999082565067836232758655792149742015651953022927719246125048023959665298718410610656335439909159894569169526089813463113021099627399275577618743545000622152725624937499435835866422529682792207425034934930293810864674285457968431719061990909361900370249256314031213471680936302138405090179446097702704144297876838970630500948574085976985661605648113387228502451052449092328940190973068473163242323998515480187795590141464128583571671915711876868504481365685920958272291749363856309259973386194808418454883406349214625433644758328798285166288577432971394971801503151266056119521868808638955814580607475290426696237796366718116202176137952043442702390854149598852702729304097455472970264417586929264818977236940431506629090797246458817601478512162103039099246950142136689559576788405474607904973718007283852093984586385529403798131524971312562881313172982481365656440304326999334047970542131594210616136196445608804807033634069039717269925041268983814558023920498995372482439093478097605277603814220943930422151394194382962273136902913723694634366061619978397040930704964493370346600139790883700085689519175286160867871217723061435214478630774062412385073783128615038883000712585500641755467353770489411769307058281872863921344845887503273286455451858909290639998290967268151060733152431268597406614260717292130359267773828767875774459995445338366735055597842673317510191571096833780654469000431729636138068446384051387004606012359901860357000417246194248512473756831428129350002274568315323121981567638273812490975883937360307899492083115978102096575032227328374684404790987082835571603940889915634595669711874725492725129547467320425432375330718317131517425281775971837381969899135597063522506290798726735989843869907044038324233402807701013927515646259810656607478530068329533661051567190294424982345113332288115789189700240836883347092397817378118774415185617171358003983124853025379607119556991047641978165583738218412747222289952220411487579117673097182273769419315970029109532304555983325708613730719351652911807710802193453006524971704243737802714618446146928511004612399555575444849940971125110919469406395916105148106399550155458601058747221361289020636445075521993145563697949518620520929816619740625914907618501138488112539349969795832620397870707451973409740358446075986676190756881907091426499887116815417015666162066684593493557437471121476103527373802487571544138949000786404438948518094117498457556850422864360270043836833779235054567660426641078481467156547186219842418256563721145506198458419645055733534707585771067557647382258935065371155180500689066102203279585284476644009801520185567319044360020925222912012961626822538250878700443952181634722837856836348047365275165757373480488219002138350434314472765152089216238843862977844114839354762805380481443625183801386301620998525492888015961224774367601041629413196968093813192556278359207637593076223359111231499527403209050574193217041776455218122321131179464837149027528259988079873486408174801236352345854640559795273318170197496522185445947008242874437920030713574482295904069482610583010930436162978549138045658117260490123727497909510817052920406637644464900665503340103860918943687747121165702168328408535212580714504934727481194014894145188259787196665177810077458853362603437350016928744761414746723302955608142170873224477589276822457514749498375509010198314030202065701703688121951110974019658290625416123998257415888792346037910932556569875685118620036127240288030169891362465636747990519940454287465922021774618069380160636895138235273834696163981188508172498097260582891049322436438861885530711136375153693102053260253012276300970202999264317657795891993227055418491517260294223466114489050823945624384769530303927076066972484712672227026483288753688449611547333888017629302550777120997456598255556702362651202066407778872123585849420040077828516086114540822584455677197031999058064439929013753547669165981248316819090091895599868908288668236289252481357251740347332510893836356759704697506636714709264127966492922089872903017405078432272948167537978709203567402591895070828975897876773901370753140851679517198012450389974522297728328504033427552910963932478698477647342890413551635722902118902695505405979047505110207325355705826765999118627171655202129839915525650478385329213689820727499212030045161586278812467356278312918752765773558322459533524770446110535082044369879708289026745080168030545654796184451477398012048221325040960882270551810790035561632913107022266059559351312233625957061521445166048524603267872405033211583615267131803997605071008036152693306575033753588647077446174964753501681542731014180100334755284657503098274144619826664712352732184620072588133625416454557836683795979468784862971946082024744912246144124370357164297843124692949651256614302323457892757832055285236738239341424149254677277476305533464090714261825702717198924650571204143363167939084500828272048407329507711422787114834971252082986830210000155142434428973851995452893917291109908466925225938910970910373417645293449107427159913713182776314070809500107897654766684472570628845552543139873869914217046672497917962279352338125798473690809571480221003102786978535933511296754500498440940972082472603783789025559328921624609523663212122899349091189763325094222919529514390573301353957118939827767795848530036378582163506279500915350524862931389479522884921494837395235420543717859115178358914864646038962128142949360049741067093514134827604703904878910150866445578749994077564995058610164637950063599186874448503243117448664723878497387043566116882787892039594966384795034707574695591710863962684843422521214451474039467630781486614311679383103846820354209041636939557734052481685841547841303830436356360026727063949422664987189043617836571786602013681461961338434072829856980903307082274078442497056424475842409619284115934126759129110768129193144720705105914387409651337564633883050802488624673924818068242099030573527459729661820937945080696985333918938132906289154063549282942926331325365085541125883508612379087730409708729349604439353752713973554879347216892791581356013539834108355658652334867766912312850855103158846182432303606759227987701621316268214973358161606623820274807958824823324696252201966829984852290074260454669643179268591353214207694789164076460662720312145883221426331531972857139190709033537818136275002420046181937495622472033505441950489043064360687394899995138633029899991822217037280267795356482337193266439155277183437639613459514510959758159736763734371234336926807789189071472587897117722197135009914063022832902424052939232858269052531781176974401273969374857377463340336152232030146726817399575432064373695565186954226011135621271511715973023731696558462663609813899754814941027401613903452669165093274284073543212518206291420140433125250333004488954217356937518190881470702870420655081116541671409473054456581921721007372729747306126548916692660976339724193094554932712852590339469134500356613599263232501464515946023719823126239978619716552056159280030699041033724739412894333277626810147077042553455038943813348075208387797499760113762976618922876698334322123249851955033512567376338190719804286027291088820383379459052008049579155516221097303945338809896888816930734265659382232442689645200208528573700511000206548114447749800813084582678612098563293698134984447802439527700917708928038965913089894925676938104800863142606156766363284788821728882412738923673552858403767941965260147486920832661808809172231217342991162341810065283406355135152006869149450461290048307312993660803423771760809465973693325927642613347866762109072816523553175644654015377863202640965853376510599169105663114138253755851226273209607232229656272799242793999226366450027998099531333315571689185704436667777325365205941655409535262863836441591197547301291231160710936395803965052721989286106223218933686181880237440153754285622260361987327455403129971724097170050489538650292303866613560521074573318799206529092139935389926584333473044905400468680581038591235349058572249724133434897604953878254261069860537518260774845511041462609337791250112531037231342707538067883278129211181201131454460164774213106681234180766363281596518078920090965730608368052036980835690524398693866329840905792290838887510984912416576013439343350098719601608734128961985452544491948260481624588047359843878876639299612280237584028325427652918805367968153860317745407765640588455689838287652480322303795451887728037665899521059717453572804286710231459052151039173049616026435364344591958055505260306077283951683873877756153554559737881127904702729802475597166589670012228565543485744030913368889427926345992855295573668564883472590783500170138270199631275897414515332952794651461583455805478248035378905696286732966194247833571640461026743224682583444090462589484371264168353414709163629783960581348321741644901137532850008774625090890054037397288320852973971824877865446293823377151588258038517042463179055402637904148702474556807733957821854205599445511843791490472940548419223696717203901904744519392834270091393575061992623598925672253027892069908373609666341474962193694165308655062119519908821966781816459926673397084004721333993704013132656830603238028748056720035364020073076040575447068361362973404498362318768126361089048980382450212834723051878813113611341466046426564450563680731904411912454762352235433364112674106138478010861629269619123921328855748560586099433331557901658772139523186824852549540681245266659280480253987965285634743062331126000692173854307798659803828183180854884131328545772782019670622883055760192693188281304110776647374776862435702915634446937795968250426181638295459567029243385378749183253362305180246333335944125011945457595190207718859210817018558910823785122528871042068941270523329558801370808413668408795602283757889136080233364981161854997345235642376805061810676920967236362681671161979590452144332591556373623170679628696008196479783482916981202274688584408144675521675845194775235537669711973010810790631512260005362306726725332467746392493896722734546369030746209501368594352205181954952193644374894683884577142500003010726359791092215387675104497591567024149839832694920273887358465051735667890435147253252227040606609669336191475870588015309175954674177752372860384491166981123377974464249946897586788943311608379322625040419935549740205283991552557260671361017830252097410915973121005790329100058394227993636448713485416071581256104701835079355876967704196952013592215124557914613016205928831772470201429686631182715961575331828994869911640051929596085560861327065739735618277966947670388339243594076388783950880015583314128089689183557870381406802498557534081970578285965873501554364194223836863019852931430189077210166356223375011265432052183182871691162524302305897089008886846873336919543189885858703299267960043555181503995492291824605491691359353829975724339134532153816149749360673903713527883722912989725495965460754396820693274225698369910067638726274980101648865649281209061894235756593872978847263129929368719388181754411465215569059100682486020705939159598998803291856749348921865596966116277574166646290930102259758768569448968881200368674788599636565463211388061732214135541182385148415772828599019075783040702956504751360180883004802954159595775223101500889441987208849479534231548157278890642711553954262323830435609324046347577090151227755753099503678863161305343830845981332718828070075587531906552094279463547505063441400268592613635710568071747664068206470560967565158368287172638779680733648255773945046696636248646386795858887855027616871396378812918029926896626906968718074521826203326065592092433491653928535620895821868355426166383679563947795988459544509112949966816716533616149829945851775825626430347044108270680941907779768104548399109518581002762445179275309002090597824745246568806169810746260723664499972825530922611722510146957519824388088636410813535787557057662227759662338143725096879454725938688255606349225267542238898142903000364540081008303611112709342448865669369292145500166521084238845224020494080099931958351050801089885938574770539200345260011932047208500739406886640234231575219483158344494807267041297491597291819464334327301185270922587444942251493532101389697295258495849855265868606299219395811418348885505132661620535115459737872308898007858694836509481374112837181223408931747161928536913305313165570268988605252228312191268325949172983115316058813972167216704036536485869553176445707426480597790133755844095349405263784148430863993651383427736111715965954944207895557341070684097008781763498678698815490034888396217334665009843833906235387021804550878210145494604185060372310640529855360688043892356938323257539986457191522178843162113428497415562702895602212476250773756371352119396863823209789548424233610803707728337447363264052293986431664985008744481491551469695696351730599192873989395870376957030247760590666857191363944003720045382137706013877364547498793345410154013149263830733369446500842710529522941732804375594266037557463157860627302674975448824298979575516949682184196006429315290009624925160073220743173600474290342049592255614147438663747377695824537627679926223078280543846151674220749287188316159101869740476548199145855518039503016330198013265355554282397482662717618138411154703105555891098128805827126311674065475932142206519826255576764378018763815215664414718751372210811840928408083200609161043029503400009703853724370316601841217416414236802593680815215649130168768025944513337802011543737077494318086392184409047457884023260888195880036426471310392864196822457691476333939468994528623834362248831061478176313055507982683387602423927672423646278282867187239798908039923825566770473384096770172164081643291768923145282474754677986729291977458616761084050698724617143325178106133486531903921407692032038446378042683555268936406805942047259895402317302933627089359116397131533656679335606334500896819065001841894879984932947203100324359456804044096650378656366438307524357132725648869236960444455919829265267301948921069384465052961066019857570181819702198122129138966090897268739240615758456120657231640034594570786343376198728867737359776134618809883258952610590911570095049980213543468608060402876898270270353511058777864300139447521391923583430034620596133668049871021937160319559439527585677782650723495459676212156928287557814706849604490641171218440396640728624270825740969109109835591957386264155419898219834633940342204917415319926975600839783318078615282129736048819105948047143495908655625895339774327188438693296912548080629196773080706703169482411062451449524613961645916017776041917279101662985390053015623685253206802586842983555939558615967993885435336101846368545109478660960327502389737665711735111540530299973949550232582247572915451985573633397749875326237020503803089092566040657935469046093825368854726494400004202096586628045154344840397118103440648808122885277651518336033503315272510492738217414858520661544499118326323488965632801648517334838494804840996838499644877417623109335090243123809607272245069103684797458432195374585029087592245753082308188363549611524499405688420791465609389209252504335715209357248730828690838742688540398872687391583804661916201031904430803797606066455250883637020952639520972233969371947996894521370529693501764178529537411605946518020359957840020557801079619412620081034834875415333894918604944457254565603321540237037359549450728402290717071224065490351237027040411784252888084338939272965307380049072554243998983998143661546925499053594956857620349241637444205610719070098468470015130258601179582957467773391019799251909933245866373137984245592907914796535576643783737731282629481297925789001670590723074952233856526390752403493417202980500124505068033446549623895654346171174382786834165639810164999059414025610390393722647965781868598350451242908707875491593925374317462026046531109402016712591600345955811150147935063268422044840795862422441429709996629815121569865557069234451543666501839409881831738612284156946400577181958150766696587132063976732008106426327401337946571731446675525640028064208016779661279294288158118256735745932886934810124576955713028832471891824671663321912229253991511689350540708767054765455500454256535674261174569474823369308896363799283945821043100486515796209900930941660456500861107513926996511903322522151406388805084677121367335562909654808823162431675591194030464268848288032825181086797350972930695159040469378340906141950521185449903253070170737411827239884203633694766848069782579540681798106213759152955214836768440652377197499207346169000618630478440670931408410375148135194858138351419528147463563999738853420214883533610559087003597066227990324070000482998738797463258672016020154509465545506972132997381890472841901667276271546277850508147069983472312346729215884961211778703870103711931687283879390035558315591583244412523437112258913232199285908562483888772687247255246017905662186003002798072141759493997250524581914577962521884417262969288311376950088475942740628983209190905460808570490938074445334151400218901426407089508891781933507963108858396790729525320681970982614819754978556968595311208869981664210529921823282596332586558090396696970325825959492758790493968214506962545616396173036159522526366456610754543586986345193443974640920221804257644703629459953955525661157240237828120663608166266515019601594601219026349635715789259718525282267299327358995581245853430671185435071981370738581903519709328613867281769221954305358253082081864143380775941282904831437224269943556841200928927117206959295855310834247867053667313039017567902533725078766185366801449942324782450952345604361126731917699725767810199879919927877716560778011214978691093906201924420167932996392665484662783685262021593444263348503498305358513288766637990226069574629758493594631386733085254020122373702483387016589883136789518651048912034635835143186950588875505361910709122155807708817283261191594746932928087774495259708717278440797326817907862095909240763569536579164588004383381836408387275680145776688533739840112153258477631810493008064414440205576523410628501184147925298488583505370198300785155008038600789494006707720100775730330308863509222144717393839577532747102416716653551061045689893871882861893266826681477848992911480370029842964940056509884139141104446919414130738091733958030465258626339940215767825918300863004035266529396191159230834508258429121224479529748919206032957201451167500406255163027643980577423352146372577028005980332927683219657524751219000321007530202502500036127686006990523077607255749355588680410191316533407696391460826973715935932345192589001207399440803210897348159970248960057501978490818655120617355459530178665124387053201636080643244466934653761792520058661020995947732988568068988473071537013272769420592980278511880242313931502083617386258658495100676119743101470501233612713372193739257830467032451474083234622303091445729006677185129688943944693125916973597991025579266995606842482626683201951031758759200671808328995592959749477810653488315579259507216674376168401328231312036237991099229766874174642793499212476460457544279909938154616004664780681571017868866787799393425468911116766259808361908239307555475243155470736627153975774406211699548006638368489629741769037148069613421267401415478914009186918040354140316074920576784993555651979908370172161709554287611355354006718849048310740794648514148213038941205317027751809316468555826094287540123968021146121741074644630078657158853646638757033260923627311551386374570072932559509793789522057851676704070063242713410024441827184462477043418990478240118813465940742591698912553457335722542547492561255414872735919647838267971922222608998976860365677488472094690391637381588964739016341420389153621695788684018374172995646741425789135209939396006162928533429541110687073400790388188118283992676061858863463468792104869868045876055688966257814129631295577537529249370024539318165043506074107922382153989739081995327706247872835447395106598768892618676342118705011692274764655133430593581187752605775083947531000398816823696043895340000837991729535056144209507739612486417618741514445934927790732437697328416654507841883473129732094617595453559875755237944010025306887427341217148172211587154923467496804204854533335930339129306076460031628349751250213218305909426341949114167574064169589522212707162735328452642021169739987075157325707476406164055979236547823942396567859901213118240960769934476793576677517073384153039900081151994128906292247292629903529092147790007130994562946993364382974914307676838093454204761532741979521586202576827593356661636681765920505132696276420027477952405610282517789693543560822736978546597146324475593529867665933703222929529464611997814331366060050707224318635332023179934858522742903499129369206899710180412637581652641032919656617129058016813913699823076849002662245836854271462884836437024666481657783428552898513223737230472462116606747594790178435584408972192299968935569179984981542795551942128738020745712884076950889245559259353209228238779401603106153307370084418995458208589249769696041778013279516907585226350722858226459530930094129086489616631007350894251158859974370303809799951994794039587706679463713733559385531806068206695081305661985482198762890508072897715464847760446415349051292981998567395445981446104574603468267849014404017548504241032946839126450484711582522206781615645175090976161866079863444339479628066515502854793773936116307216222684542044301393700188631794948057757594342661493550686696622759342019003659259060167476127091110114010633466132627244878969782252868536023065041827377488823632898452335209797834686209734404902282044447917999446287045570530381979458238975543423261222291918615354201210571550503880199860789989300521908147415942640347980603104139779824482075073783945137958346897235629589471817734140615832966725922628738724687819986390450431818259855767316017073335906354400737598928541469491943096167212904225375692348483455770984433032772069848454287739938283258736781475988353884677363787870357311796921873970237601833705187177297483486408550341775300786262167232469792978088358196742635493318256167503944695887116932807708189510426871357795801423704607671989437598555744037909216161102445709696816769524613500548575284781557207418452437691640138105397327584522901907406025704357603400666401041056047549631549380641796768457353330372117946365048039504866422997793353886900463394470793092537837604906079447914751932102513955829401298720456468291170223751909084559093084514022075792510868813406349990369479414784591478985336305366849387980280811465161155741326229135505958113182245784944165810815387544231477479774542618659466093047457841378762920958494651232197762265044355594776136569087710064843657141112084240635474358045669586392163039501648254242989190549770844550975195216018455920963188791920919913505016370428161294890724787088453500976205664780634163458733499230186036114441739846613600998327357542855272208723032772868927234237906951409751824530637825123619248916729442488985774696506495303154452305617411311407981979492902767187671719523837683494070397848651276645177229835171490058600465691568137077104415739113104484340435163439235657108494239824664508185604142345597089629500422308105927825966392829621849050802427256413535868020238844367076409579479946173303524180645848477509850716538709630418772038773791750368390971728179575201809390458690542222045430156312121012110850471842477449422626173085886557930641360884827774730404669248288606827378002246060757690562923611406593283557373132274396301053622371390858514423838680206714682975662245130416859487047338298483084804919399710087065096630506621801881692153033104294883675174837789543590650555842083053746137330727628020235229679686961001934742349965689331449657733148477778177156563349856796841544832049330766008078228988155979330162328007104951391462608382342107861823372911867253427112334193175707465879543645214922507266246326937245758144212135805160049434770611893243968545395771066370165447014884917284441589572633374041942524590878810843532942843150096447347851913567625228673564601061063683080300755810688739630633495135697891507423971224296163034973388435055401003397417328272676637463907868712299888313800147002320063108388804501195001226200849801129872558638881117335015167748197967596940778285960552497059826612157015272130203714828277029381241111325639488899337980079594263270632118668048522938879932368965718887126688009061609902340671238206548267515107337652894889825327574099988602020853190794494380977368317264412962082429466611170339697648215546751050987215169914393898961386630126602447232580263498234317407736653747613615709205021537350536932019575790553597775487113321326106133237864630103540580936606650425621391641470546075424220688780725784042057797077225379049935171969019420682029030582290824703689638257247344709152070800781454316417745168934534514363188393644913349975976001861360739294074505887087948274921423206192170438297583947438333825787882271382066122580505851011852221540232263572661975622047607431500799662934801641599652209975613091973562785993542441137244023653269378245343054142933142201033815335063868326046447516896929727779261502010059514263859602534122250755637287054117253937426610390944927705312524150763261019744454303965287391765601120063625027430539333909135263528689280490434598878696838054407562893538693545840759612870881445890959044980423180160637799552542047619122546670286913676011137945466861352762913233510594665429758604704794455081172684494713167931559652053710637962997285914915290914936476096334430178351442525601110621114882519013436677426082201532779289928255518033742229831576883160652471317788735317947962902323485330804544655509398036099859947808342006676324056625348135779123902563857361888489341123392591468465764009802111035291132306995210836163142586418039515717169655608263850548698305799324976212559163741505005149546610554557471724875610341250158744742681431786185491371229693268528860248603613429286784461679601217777388508365389498837573114440330480078149582195141679266958963903484855831195724788915039733090913825535530523364390219155221983969933931775933591802716726590672945110129212683100475076095636761653698061628360314343943767548980521222573762726854977296751384082476172261372552857312911637502764369994275137518985842650012400627307600757914064749502791919694190676546993064911809014480153361280582130314107320107863651089081155847244612900615539579866308165554876924366976719924747409524184749248251751804066463226046924621050622585981104117789361621232072927539515767883767237551084373689071560628111206258162554040061333201173278547654675399296168421425058605819482035897872016694372185984915342578925232835802757487121781480305220063555475563253133746433773148771612197744634668910104174417857506154636171661110774111977065017960928565388929232644745644008678105516195313450717744201165103414443222659849712026154352556066799900951493061778989732745611727520519348709391191513442290080682701888934270952284706062094748593822955771418240896828922160013321081632479170037597359285083330190004818367274913586964998110175868112585282720825924529679900745076920030725922025450271321480265185493510336574888471149318237328204568093588209750494415093841742448528053014409510938402210977423226823416714027481845742108291514506618242914938367635559682901392479963183846582979612114155121129284582285497240072659448652558654692653709963425648177738433222866121063422725801075446316374813598428372228649911896160323191145286791763296275648001532067716810577750367897639493855099648928453588018374043076222189333695910576787846454449724409523281019817591629419980112138750849754488727353768744178529433156544062936471503310285276549055340244057170357858162744905845836059977724115269238594953496077595463742424707871103893257976095744550964213263230801182073705219091282272031108599344927290440854739787146929105345624810757034615249042251198720917594282537323247327263960294804569693739189814119008656557891049562086387541924616048480177524874616978954018184709598369937105716737327560061104075560561839729407213080147625096233555093483735369469317889446927445804942211201625606161868102825238006041457000788337352656034083780978341070977100091132325354493004005459731839545041083720991128332369893180532804937963643759493745222451382430101808423395312837696965179739661106846593593547255859902334898547467378367725594837529139095160261888016186544274280238167879625224708687220163292821561827601997045910457491260256133743653000845543977025643288890777794663223479577688102167486519960758994129962165158997594496808593785585015172258576151752615967632569790447638212713294193859784350767122678785919610045995223313255097233703179835049827857701019465640233767634546272439329480569508569551057296347204574838037074224549670751239323429765528075998447537093642849087955909491355172704975784768596118661710245079423640684374195043941671000251988481122321642306227689496545462878417877316844709197260706894815204425511790319609674996936918772204299247913562080486267805067713763228918129616416730261355072138672922382745407735392155554227499366076210445514179769553057976156102410152944692789185894304732143376959818686278731388492363554461779585474923066373394443221927577666509752327334115952352711042501242232783404840261538442397183596747232861145035032261208933102172618330851178279616630275070187846461457015595585590531604066804408123192314436276977787062245220718725265157592866724570902503222380037706878620242550759235598594161290624712355927571248815854670227409508180509967807542355523277330658007374888571405496411821662826416575116619145055401650614113793179756094936193377443223109947472959718992264199396425982812802241270785814715606805858338633105973746510428442914578561790420570855946511129554544388963554650506681647756373597314218140991642451142000969274970178752341144395821033795371864234713410935236053193022998488524380541988804843939596289625387777049185565923265423678708030505332008564222095591874119687968644561142162705212232170000269519127565700375942096484529358150092457821559488491858155268363971802224255155020397689717593522057364424286298221678064424742715424787103530594363027893189359128077160478767650329736177415354188375476918487736309701136323963804182495627658294453818107881916665032436955474410341442475166535004055084559511805572254986032956113273475927717474385798201376306192739964060346088499456311803118195690097945803128464264593590074648115408124801523538629834463182934044074419250433213394442154506984172094701206280732889564053436198603636866481358544542337669109283076371852301124777522978735236906277566167270565867079139264782222251129660225851837543635517929232613267426472933786862757877177315231767916696635079427344223927280443594242881985681689229363969045089525507728924636955191367551028843283147659808736610502577262658276911064601040910965403401294302751680781394792946856713894707633778294373771250192512574301661543943163171676908237696662742336285249187585542007268127794614812592436369533058136650568714870311905934484850508652808394868410172319988602439218119629063606467462624853928898877929461141650507537736743167597123624704049332246218284470070600646117645447984544605773459798649768780369627650322098857262309433705824084118200890830414861031205563666676976041728570223809254188563414799367294061313172096983708261377422007044554487003252477416441500040889270143873104435064728276478062826928530518581513206602135685048962453885046045565633024089320560904553090549463835569767598816526035945915556202513604811897347426287482761110296126760253412770957541249766675214224051759499784645135638171550961346309954760805308440611925425356235388114631823246330640905312892244502103403506147381195768029214434800322266436459476475438809434726981393588062086459370014042173844663359948222086139020352325192693768566983914341609904823347314263734034389709855615220291905897638342655837836308310199593437147388316386363781446266405142215344479102323430335141896861067612387522992472853651730056349300053712615673263665834834398609454662078060824899505983089292064375188888595253034845365932351526891255576831912171758932729126572617091726973466120492642778063550147919668010126650566156301115152083385174069320878274376174143690903008554090994805057621753406401786810980178326245829040630442071649878757947176853054948725003447713693894372947087754698398822572995099145404484738440646361771286937561647090786046974671427330450043107475306187983420527133737269124604640543624688555787813927447349793519421597720392084164550092439441567572210289148162132462092948415276535565853719894211735695021291222478157359171648544798165981735316080372674147179261809423596481045403673594875080903132518959617334960162996947078283140880673829778258400870433016758737091795671710740822567269347114478894974705558718012107172383105571991652863651287700782848794459775700261599905258597180995041012901293071656804886726091636610786576173943330765479560594203435932069488875534654287756844570020099251919159659199767551436188247968927580017466840038403405693028449046726151375459183706781981950198929678500236880781370252518781832328666634516136609081758500379765833301531517417783870930860320031081454618628901619566226142111645589854947557916811239775611596883429375865798403304811098995741359183851688710773829009363077756322595964680223872041147964269297479400257909040355813592557036445472061666900780605970663345581307468384681750556683577543690798642054481324528478938436373510058163162286123509467300285792262587181242250091547309020928136688712655114091432065288232395521575414391477815620736565549164935439305662287273065240540402004335070515801138723921348306914277960439585279911490296860693863024054179824423635693033040719904580293717990681602815769508558042108028167461224646476165368395352328520999141941979884608365674519172603781343917060199733932561313473789900788057526471838010793923136618044307759867646167438304746141230666623882680630574459567573178801301132607207690682390508653233370548809078789846542787258332754943171624678472173660753925211842797995859666288917974822888261519368095853632664184550293040701031753014601301976610473571030571310993546225126059444418130844773619948332317597325861145247330483025437801902590985415253129129271531243079226793702585273764631498037584336475293407083315238038892798893460003496429319566300071093560082936035979751710268900319453829698956075488295760256136348816654104784788404809852832064461804792178365162333150115072285242730890811050533725672806715988704554566166022934482896716452972711835241946086235932787322485246448513751721000969934153636717044417993068163866625883961773380913786644434151072735358712671115103949212276426298800609582860456298588557075304703156048436377173455139453352917133801732284442885642077012262030420841779950858524906339528793930631220254054102126800149957024666326097220081964321141858592263496665457180876053660764279863495949854377981199242324095621629522981106487506069533347476644335703150450715164033350211195253327494022634208152710930653835606978747171275996114642219836517004371715119484898819513414246910186893195634205635828588617585785754427771878168898762547338350887475639515024262146624774476062408998664299659290210727373717742437749274770930346294682929461371949427229022695870509777258584507135972129081703035811748230920548152994862313148911079655191794146614478742367582088117750720978644433634947319664455313283096501613996357133704540312304228824157903951274367790751246341410766333291495570573481303382270954460845992115170405699540138594761382049975283136207359216679552162162655341505073599264154123634482025184300873697458417476241497300342198022526731450165443712790626485383757342034655927347831144907314072465780253915586502084104037334511278332247022152308815994505583424673314680515202335616860370356571491336487598864991944072107784799093422770696242947704022789877824389319208309461619828822910292956940248130474915323593118942571894267255252287915807619265538039739775566911393131357977016050612090090632079046465600163865532105368006215504668751613246071627524008880641016802592664221874251439895219874112110975186837794193077632085537465347337729484704442751709681380328252155819772861686521742069537826170285148653347159022375081043786095902237913000849474269314045737783174331173214593328865471916636998658715962625859994322560244827217593679436677388207877609406032290677261545294321612371627401877146912781626410679266751634421111928733012370580563158364113142692069342722031935082895146554980474425352481792465729706899244236915355785866191740677473999006112733461144695429390717528607763332207785333830388600578765242691270690511981924516351751980845456770460584897743619144396907807520156477161485995256753120772076731258222313414394508714811014434164586343170097972099756958399512061999946490740482565695872939080324765936273515376829798238317660674901887388422502052932264687276499709495129133500758774982380822289547815530890771547788995147770674831538469175899584396784790061975118436536778321241928145006122814831744805953393560450639044278632389522796255988170749627274884753788167685121320132905807710791700180858128521473174001984347282741635076427867043924723372099029334696140052769171038076563170924862830674734773954720173443556849129173421007824485443149316218072114180551128579124473803902932092127469443549201967656025288307021020659006610244312419374843299362907849858069779891263139736318122049595432452363649655616899063629232275217835910625488543941626272933500058326276595914527707216056717141682894491324285833633549848909271021186676673246150275329911418655335435447309769134617631533520673083510393113296054057898747918958614868738098478561790003083483331079882671435048071469993631553807858569724054878094631110603703811570899321535858105276162495691629617656141007088253074604967178223492414104626579090216770299709862543074205284499407124456468865077778584348445326719284338090545064553482337698615973915670210710019225715756619658389568718895073459941846967161042819689942930529576151652529608054364680290671037253909943919172804970554510741431978905479960718507408418839234445194831475413487093185287616301876565269872778049592073763649057388232486239392828298144714265752130467366546349483851186688600427317352736546550402926821823253915208769034722693310422521542971895130512247809028066331821981430284742994586829899774421252142503088649340373893198742959580217858379573631294149138091148015670143988389493142388985177818905819550299300120643160224621374887882366690820258659986822264047187751321701139430483933496955870318394432822182515906863076115093951487703995385404000869550686422944634281781766964414505636647237322928339142469635541596267207212706081078103465979029586652132133796553068348266348260327017156238652747128855505326057704047207186516545595669353077406279330975717553494287400310589468142873362297622551213583211220184661083913649049110221270704994029527133435501764513177650889642472370507400935328585057732798167881796313752585311258256693989585199589071344310835736303142578833663590957073660106590495605358090358410132486935154834386317992762966284867384944755531089880525405019518508992977323832086904500849589485950439203200959021807266187178821273353448135160643026874980638669144987335434552758538658617618195735394663155927001923940374176995739473143864937182997749315962989256017206121378839481023885447182280458895066166720806048177607195204141373245974218712670536276126307630495254037384573844645864625019555697680282544487427805045102314785014614299675816179475108236217947738582590741662656311898253890224784311745188613095480787346035944185897788102961536916824727627307698356750794491387798230906734921123431367536256780193594161164057545263614107653476989397055125515871691719301710731206399498732089050798166226586941421457138474427050129892915955014367124790395460830974111028842990696188911821102842285246144099765133703582453846318411143719340326981178565801127384346552796561752696844789377743438200534355460416019923495676650682222245776964278574233575134582701725149564040037815489180338206756790468795712595677312538957872552923046688254338996599654228453366841415630329975587914035084778421863524096606665313912800252389295525408877796176886267741432126299875322449382627687226354946394294053864995226104374326380150267403041830404309655732141977904869033652434661790891057941339515972623486295495817728471052235785156822803094805052427102625218550095627525807539853316775674095149507381873896569382710908767412635888817015259775238225884216499588004648220907999447372402877599302679479932342235854390116751189223798568252654694602898103737656823144761040498485680153236142234468347282121252009161374325052202769729240634843099281993735089923424979685012271789074556647599684453059070690903363478592975945864456614830624842345325254170654388818936307445501230197197257443924210873214613993913712802068074643836216240310097794437068439202291930727435647364335003122723836271328078581750580465361886507648020774237116610933684975933215429168348362395923789579040049824130293224941635712094020443286189406919036650706729836740137917794187434546562498291584125390949062458249812649343672421277181371487617048566714367170894971593675833314722099436423918941011550518365563464773970508595162531247228761614324241045010987733036873647768894509207976636478689830563047151843542409619436865369641657099651716679205857031339398147788084003048517059833563614669117923550741643171449933659349396442616180549844701379120934999970651953897641655517329110766783324949117925352250028597825092956275861135639420460328008472298400543254645334497812320885499687296473976876296080461301654311572695291766827814106952898172887863445558310574651141283931206012123156288021667656190935624464572819491005199037722198260435224096721557091924441322149570716590306832173166320724920739176494155328223523115494475193680011899039316869468622956563528111302578818009100134277126213444844586452383199432716766747006707410573038369314463524386276004051305791764340247886658402581522027541472685428835900240162159831853850642792962874286881024250482818868682615445494453880404134668850265283329732527598760593776274826236443914193217794252292730182970048626694196693853984024542165915460258189161725380316593740607901862904187067330935317140111464659271562698485276573920139734999136689310174395644445374635793685780717609607330431899246077902058611206746093341863410885778240506398609537606669770215184422335896735321874797218072470046096141508800286640668422724348528229068745908811674594278199862494467063615543609498628585228322292206358631940158841969332226766969334610434247318182628188688701027274886644526833359366162483632249022594946986853385276060378547979080630513194924995762562957721171736662106283786821030122735113775712122934529618299339627059484945114462974887887351055479376405509368340257315755589778618557827617767537701668973336360453289696943091486818168394853000257872988356965773025364592033999829651414950001204812367070692758458522659672687218686206317407639515676881809125196297596191356018722988464694807875750936180649546302952161463327933028599599880772736094408307215320568998627352708749164385492902366065585923951898615776084179339475753531187465521690745111767319681948270642714615490785201584745293227204895891536337323985664778814267704892154800161573675676270120610214691412348644598018321790603870889064902808261486729671170148360052692004440680548279330515771794480010994298608807869640732135724859338451869102103085468091372304442346744412770813601297425132374088209755220450079799775704155022281205057885382492962238351048007459555621040464785598630060328695054803442072223007948010063183375920205851899482051716146090410811480073537032982514764097868673207585914318734541996263748210439835133748164186235383146511318397845248411590934427646634016475883831485206473214996156244124626939772383197143611695501520435363811419499568398520163427566123747347753746446947243569041795419549971900338363374634680664224595206915918595330391627850417661123863808367911756835666729253194949845662635561502966653638092706069415398920753093713006589280202731004417700177350768667351892635540660811590479922800507884983330968354257002642485316219754111976260729033391060312833366708086592703862842675459854545341702295575270560122869282284688244890397313798315838871584405580596147700051390890262327095313892539212248371074173351862061870645339400435190515277208815172881626656863675160356491231480685995870770028875116053132062255757576507361636406123501012939499423465044379899074002503370938671204855262365339913207401085168921953046350047464863415367186272939417951903609266840727191393300848898291351431904505094549823031719664708718831649847035271453557458356815504756978334584299720614547289615809096998885620826143900569467054169091576558514506889823665978096012648745790826229955618407022368034735683698631475230978304878129344229559528031278607525575052556216420117892489917930643006642694253452900283967695987582703456908460491946629980415791917824146931617479619148662063137028572894202598680041303852115470387233311303330387634326934511806146261333337456378791944903701026934422514471128970628621872118656170710324783807795230547672861907724686199767718513100320577533342008848810581472093498457855268145030740172657519149073685461293285126107856769482829051649496343928513670237310005059584946324750953003431405182651114504248897659760379640882456620122594638860653600191724433592269901483293711279686826872431494342437026138253512746997655324951765719308129619312144210449640015812998739727278473810399841633206464542274048463942461667329477929914891851792035519304453402855227129621952582072180820993182428340178960181179824901663556223997604017483135737161700085068572462821658378272974845620645845363261538497728235126000341433569542105852173277427203800696452381804498393324642892487227692865292981967881338724795144788823051165964300675932702688627279859057638129417820393926584998830827319392384379121424729278559444689350767966366068103218000864967401589978839971210301061934960355951358008535962192977444419514605488212672739786918263498106796073137094176958643601351588200852206742671251483688045621742078814716110951814901936992204938043790540793017293818666082415873967498101426481039373776459354784928650364703742465472419521540717896102880278985031831361060530691075832847343583000444963508101126834710085642138127604066375743681770919684025515110192027038795678874779399683056705716389077057238214289869131130750887002126548732463294785744477633171488830027224219413404172447274015716842448340355542722669837514699569903465018236603717121713097268967529616011244752459298711488075971746692445179170351633611151319179481578040535414966589754526670247745760018326983659747956816488631566805189843445016313770671297880135461480374647470688881768986431498703383272439247518525129343850301711208899995165732288302639526118855045649204432978261050197301617935164761792983434738451226343218467584299491404818337349928941393971235273976992270645452681314592683319000272847890843662408353373172818972360426020817499106615938270202660778619445361962928287957067754619605619671727059259041243716804149756430650149263485019378482638907337476157768887261407978260910863201180554617111511926626458525591985939300458728126734401841426986244560530383068615882033754508457663879233471770916051362685052760087174516551113327769640151382448062302047063246592298996336276952953410620918230766831987325285328843131591955399851442580565682843714498099444337337004002685871233994096393306960262202726864592540876518930286663855692230384546425760064911959328561689645737705051367491209478292281135040980594882557070083868698498410260761826073058661595692411608028351342270026811416130413699767902869527295909577798403517657697817860824268371611836053022393996005526658711321894615430868594546082382126282870804980507442229021158953062182197516583254652389223429548563966374435452078652461517699875607794028849100254994902182895939279195590677988223060358658685069098199464367357198430110213335633788851077813059233547818755037045365414086571123022995506175628982922273302636448447381002988990364633439751991091311554464528345808054806783749733807443156725936992907696718686983618087592950674759490604189381223028885390967751727382173356392007089775991563964252964750400067002500089174046843094640864996667615553981268940421068308859877655349022782336690503876531363327751300625898683169036461577084518393909856474865549476075343417343477072946406582907446942439483147306590370210331482647276149063740713401789497394541668351211091674236808118429576785840432323556788879393266907575183489230361148832704530569352940970324038919362617670297940233802573710741116687324843664274794792440389097895023601776353723361564285222127672284649692644620661217336476566984640822623943704107448508797044742032310401233986167314705471571101577850751742849337792424492318854068670848767814865489314837884713963506037430042093211129665541270644182751670706506949363363176337539905713255104003348746083689876686433882194655541088554878537682253835580102028975799324839394188240726793639822194953096535319341342099764837096040057724830404899216654442073396225200031429194382611557743492289699103659430989672986381202472494703511085813573973906311409003117683957448083621637565182529937125775137123319179952658107458317178325020414334276216509107667514322425120083921425972670827058274785071033043755516255490339061237092789457630644703482396256011939425082110593169116799646938547383239196251902059109615538632099834677858932835446209673846619344716027336064183562443139623085088110313057357379591588168290209898388559364836128999554225810150294452601679530244098241633098452082602058824760222254164495010933861587686009087642420304651144175165590144004964290079636163083300259476474886921384961843181756604004903907926568810338851014318626317294733661708116485720275051330593618218753250137547290562719366415402599994544404470989794637658561403457689911136448640857328897260234992028788087721301335931534040297800540257546352207215946951866497244155140915418673582043198000866475174767156606206471128158731778103393317242289057186932538443238134030089715139445241545218014182218131063665062557211135803916275798735621364787462696510643176547346870150611107696515130746219600766348460429351903775120315069002996622099271550995098437541054196078559503019970860934936361085946323356511161970685584114898379996334581891494351888556393870532940869503842489683560361695777772559214389360111705446500944903276049935749336189599472252632446334519117295713107644864029822678053234796953269699285520732017640983434252686862378814934214458965942251139779496130719455030149309577840662811641231367532707526993734431321418639470770449927760142805768517607319435980648470541280482558628001196036503340727149723681767025494526841224842488451853929326908453065364040191567104743129459483804857596660557287949086359322112566292414558208463049024952627028262326833921306336118900310338119245538985444912842252151938863422288156090624975554317656015013301015419552819137024679018345728321900807191813157479433440180632588817871998067034516431102863433120530964902258091880702378952628292916028550757481283600693290058755796556143279711938695419674975147133167942373914493686096460788595783297303044006040163417591393702163682365522738519382889639287847910384849665658046380150250596513968872841621910669276369095571689445601456022781539730972152831246242429018009481537884828395575575167707910484763190785380851813450676601415788410510891746054365226686378120386932401495095008535615519747983043438524063636812683493670956682959617603459982659628303284651989101124000362578512043226516311623225521715376149636291514395138564623411158141018663344013482226418613122967495487502647926353983280754040857648226452066676251579458589703223520541447603949980554551136906131443338815190008508843251848265133148841190902746618264368069419433008221340875039542504831190979445219858520844457763346925160282589444657144049275509640530863040035830096584597853946769830982379140820589873466699155859534384804173948531628738589931618528484369754475552436127713863165204155106441648848875998486658000482240921732349198729469096451053994847457089664741849513016801544632920158930317868770278699887917724117155305809206575954529368350932497978962655392700426607237384957326476433174404031245235923825585960639127011072602585066049104505930860204259319918906315673206401142585254213240515471998753829145609534830958684424605104098675517158755292781168785105403716137131765310531755549877383442250411227921845819789244759965564922235508601374467145532770395675758423106200020133403386831499374490890804572049418837278127876115176858231850331239983977362741642132624921236826726171959388451077239845621569877564491259000242049101271580739259348480016921383790444055807347963971063660851095172085600653761098215049753371608654762755095554878980554346522395356827938276053217797132127614568394302777126480740193707065010718980736774207173233580426860721153726538793680645891778876287044896259521976495899457455242080251047289822589324546793650458637597373260976518185010666378428066867698530146587216353953782507939099750569115020674978493569688258298019669897573236767400205609447731247795348349277694063374405564685739608451695463791325989974421996262170035538098486092947366521018742366948395295010214196327786036244643736184966759307197728424003148369988569327284676417152045579338554879701662590503130106405785319043924689827277073061768306736336785769666847035639888670876908495396721367990564073450943198725795114282067239690769484178889199682234787427425130306503741347578927227717205707806335712853478889797737641915743377644076722193006782940838782435353506942854185454885478289476470725614467032609348555484851516674813049145012948986656757280618462772648417138319572654816040927238936090928068343642831629105868292354087617166381193713755277943632404470372513180483837206221018014471241914434091409703625872810404533253147443798380019175769544464118596136851472205393368718607381668394884727545722804077085058310858743578823122770036356640067545793100076915117857428319605609158937165484536710143090320559631340544103446699783179095375375472084186544509437034118028707450468201007038081571397988242667152793878787002226752184495493713008890581644740616805517667794701244461065005501361782112196995595322724075416671508668766321639135637694166504271935437150765648734550759439465731358054271895367395382256358394249956212522952534211253738647749890049812321946177500227990941041956519879532077986429264073628486158174417354298578328460411697901996822929923939916247163983328243837334939441534640766957870099765073762321340426817597814839664304348456980416050951766305498641498444265565138898880203416456250354646786713334455035116374920597678374530726277502877534512574214883579096268091271538978491222309919328286129390921115602398328675641575501629743811217646539016404017708984554664828863755187200460340485112074387364914541907260030051769608872450270121608387471244975888113988442935915327135803851445973294505393492122738263392804134447980010906803530552611087419408830375603288092818564244249180701097977248135871605194189140449191125969805517242273135372619667424421689793054516072228972903315247840189060347879356443864928498231333501793220180662522420579973420648109358349657176045151693692283281942926060222908445704993329084396814642495280751242832853725297634256013099972620756057266650111876218196681942517147739108495032033974370611151215732750704930123239020766861640472269118773052616641581868262871744520176582769298608953817110229145210221864684875295842431485016028807425828832601517787381091840194288034945681327068436645592023624621951489135586737160047462298866561432516086089098450543611122755348707803353284622615489993616470243051931633064072715709533799956453280766872626132365520296937446073078886936686358172459132683512095121403513189757912288885675609043395242240831941637032372721023214721312885568299302719207824861910675186929534550218684360535972251033809486278316816752269641420176649866272827055815003974186040487191886544119360911726575497973589237091661195725204846666449936737181872098588420997358570838654280553136873390360099699332994430195884039460113344241979710829336127142833070342605050660210776453045092872330500056736499622535251136266331685216926410506776504159845260169828374988036554854157107157006837638265703356692056479446183158569888949156164052996872301705778677612863964603679240677567992914836546147200927066688932352726527547776385863420104825263789818475878065603145511203689162572730516301172382053004813492555508280842645146480684160525207042761630336123104277979198508515014468811742665943998400702581054050669066939218039827440799194472159920613643846523710204013660753313991276703030876216403440243699862705983112683768998099636880347123325338952813357594463608993980109708257532677603479857705808548709750938608186216151076144430154927635147266927411451050855298833267387377645408824689073866732099010826795976921746123598885563889357599782248402083108947016747404318880128834819976933437076346285327933247711008548236804553226442836552876425622647253395959985367711746170968609545270378906610587208154375636513874088171678281060232935391596639666532743471349723090467356142208592936102432366404503716490353418952110133114269129441582858005142478410823832107462871926624741549428605476718873692211705901200874050440677741241619552472058422055748414549302735315015343169351783084394575472792333492160277919123036004875337289873661711528049646643800074001734156649400695253845832033030813523510603932315192927782594489134134808479478192991107155854287918273736755335522367814818163668750248889917222720536031537272111831551060924856974537826012408596169835399787357667698539217405343596280193791496175685776382564492951594108210179674758951938478914526168491134980799312692976652258299210346910758899072799143045170158130228239616668431994354391338827611963417271499910723297422517301840104171434700980662903546358001550007420386494840899800583667119855787057319005336532175784352189519276239475479499135824823712818120050495478263764885684462673396862299120043947661321767983693083084382345798358922667516623172197869287805868900822152798101420291255561511954547240217987816787168010705730191767153258963863043706431305447771366018226862388209290761877343915573753154899419541553171470484549714434722971956325822485035099507588742728821246507217265422019567491799700354547148583008370111482983462466248625362354771255506212943432697311876866425560368088819021733425121464249108750264366031102049655426401155218766394538818952615496207803942929344494044707691190787400519128719027917173629102104463253891500812559454741164588539965859613834590016116662310328150098195266455258988288482483046903576464696034452933305506459250330881952811781021458473493378977427013207004609069462116318447469604691533760523445108789185804171461845218538653370191472025297501230520429805439055899737513001818992584051862471034738142046567492208984358745576026010066651790970001028359946623984131292545305393016345021226458861832649906168728603050726579349280766636356998775855760554333639368570143668128267058098144132851375504543176447687356526567179138331376335133841541123807227348537570039563300578150924706238962727960952919744530426189775800194486142159359312405615943380781806217515756308696067235398761712464121360359555236093944131427352622287139223580961319818368099123101891224055854568734211713528850847225078560708394391267220685200457710713885447688377097465257095789329345805392683724209972336619246883768758287146510026084826968099830535437795541478277648653975141663533764805872220888591070219507448200341135151681631648173938744876875072076221438110379589345559219625261798181485680326297520135948395526537316879707637695615320822306467961001143148263242267145401026653249797338587121987627208307241501064102474549617023096503237440997820263293888130909835699568392613139978576517748015197809271902389018627911058640846822483977447811681930041620617695837018281408598214067753133156718407079579586947586521454866124765942967220299856702962906452596006683684195849632356626654900826144814533287319485329643724010671296178522419628996556444060606180215319392314549306319975779860856309260775844150693348027985569149835808936395758509180677124219892852324030327621341354053651607732063465556848216341075278028942866486610057867192173627790780515596246884705485022130284147785612778044942772206486929705983620659126078646297209256440330193357881438509396758161856761669665972428546151027300728212304891772271726424511662400877486243272412988307278503349817422221292125604484381991944932150959365179862877372394773346747843628347828243227273047468880809928498769073633712297176211386821011412172384466822049852983714027064086604165568999703636095512094683587467298581604360374933947860588944357153154918294196343710952048999896952448484359447055002769606914243537078403102069229754033473289200951885098681377832604388472565597143350159895363778376172719393156932362007158313461634083456220135707632333957780579296452291829460951796203865540212360637729831837136062705759371251469355115539626639548336730566079114579425850257984635601125911877499154416253141591492737367896764728948201324019919808748584771801097785043708420257818286296736187072432065697020297147211570278395829979393132176816909704092463274202891688695607075451112319746363267887656157104196559409712756231266195322499703339043780662334426732309540454952786026644776556100417222785736625321795057003221927310775972549963375664326183154613492706624182615508914116556395249488673703173729753923733546729770825571456529592255707553454344299793769629801623011636979859157030570275733565673015822969156495645382124235935421436815438954578353404927938744542517470790734176970469557970698164196851549082399655860945384138322636935074275209415122867856188867653155108350295500273278897206717246977046100003435027464420097333082875945761096090053991961306999076621344415753621050387635558147272462883121648339867853855251096053947077629784219822357505822263549627842092641105142350870740644948999461459225844454774879909105930260632655867674837266181527639795566100481206062650367837672835293722438020196432064924375843430493022492570403713206785323238846396158239406342700304092420332602793263727261263798403663823763490070569768058339052178648389215649060744334204278248545216616157067301189319795789723439738953233060138736727484819653205605165058418215643191170562061357725519374755547034806825571520547574740016753373942629691846724533881501147848752661478973413387438711054913079059828723818754447648421785223199271138629528508380393581553491417405014140428971461196963878812970273764112093613899690952314635986128722806175737257184299572806627835606032497697774617433922861954725642551800449588838675663368069360364688814634388234905343124085220445426716937950175098580537138056637866116428349577488681207401851096022197660268814613870116025386408645232650844509075312180336159574352789293909346374154952912980012010548596013764132910132676896932040910271019867109747874087265455846528690708104524258897354010899799548579186576655082397466355500057374939849523715677109612407691103696342550269423712576089319330485736630330550384919363752608026020406712187721803524798942696832039537153721101410238792100507698497924604835352530896443001837013197385311884941371442359396090101263088585303430866789077360044489826757555261216729730125022865394607226706109075566186348015721743393465331896851856842369462623937638604233798708521454344502381086455574763325919714614535409011757714713489691504243193927074696635942639154893978745597403652460495758848823318668563196801888644295942255279992230149539128971274707359226851213192813206143998632140911161297692155684304660093782173626760405643396319667064345457946474362632243677332979572904706945823382709528760726562420083111566491327992007817838757087020455530327624655838439214500091754558128403716216965580809543960375700363670088887031184079619191785228112759378571051601560298926555359019022341447061962970731708641076078059883453209295986122937399522905457757763133048364886473091826891168278540103621632406820526824379887329086621951456943328243637232053796721928325591574143587840584381333163584547048239705516972012266454581288081146658676843245724125275285480876121492196609829860262726520462071923914840749235114362226545690758993695082012875617693153101294460785588989024790827193810412447060895114187816103776155158811893714298168020787026473576892248002530351798020139251184266511231713451679374783281353631382400853272800408327092359144131332491953662146689225342614291009825764295004446215425488929777160167669584528011494364150949651632694401205030865843278871168318859251953138783794313895590137241629680859715321602796303677744224161881728372156572208761443210875679496307878672489729688938692626531321605885429029279789805188648086202438344890926543962708517775956784541931600846666859944443040308145282965359017303834085879558304980896068198323429630011895113385188741567290357828056931821825156500300879441408683052143680116660395145517419958805439405519940346244886525652520787243800959642800370336544311303939649182616780654719235820281321424733804512280170846581497771091808362696379931227155903839559278638905213646801547828289133177498227344649159656117665656151364521031021238062302396283770431981606457489658725429148384470399264256295975999037422094414219558443081646076917021826181782422620861789522362618696624469025180957719093431678727932115101288940190889186693983085851446661054745636306394842935732454316043534595996943283035608063802711878136353527284095015538234459430351259598602718774958545950235154080209353473426101932876587629498681269816804941433703188519754444570520429676206049470782368156783949761833224089547211616021485544503563558946922843866876933923390701807009728745791492181168652550187727886623662034444227308587392776440509642350397858951950594786805335629935100894480796896636299556882870032804754406049683925263374072475143857999249409338360404491780809523456072729750067491479157774666649077803446222002062167128513885357004767215794484426009772956468818107077092355685364311136823527554719189748587366107554523214227058576748218825610751710993859194449940722392154542998588834909817455311873678187593019474720045343713776738608869248547073468637245122874106494165212678693058858929605513686740029868412874256203721766941353125880975164275742288928034652284151094216073008028676719800980667054932838273360954281757097184915317759873812341561504842796376191783969739166441785555613417325203881222717575752609167612320801210078626044752922462650861541158575633339702649992163025833256510383456177857311583776965732487400842130771120488286408357409445449184466860008973467430668166005324030509335353662307324785475743913411400924951536754518541314849220055149020371003632517413388133558684195039642596003328826547972889243596886729453599416639382977729195861571433797035538786404140200612152724817179330801503498661579372960325256933837495237594072482667561310694796168975635454716100483719592658801035846630221542735856644444887854852992016918176954900038907914060103804202781962070173082948412500904031555664405826634060747725348089049391250422889182569290049714931466858510833398225375203775667984284734157672657176854863311974426507307147856440929360822775328207277822931603448187418220835674705762603821270188609884429017817187384093740113683711339839529945915592312109419284744894383188284435546041566070506759370150966415290638028183019437333594996092422479846295739942229445366251349011046367863805052464415469116460896031415824514747757023881234771867876162748113873072803120278827789290153061126422530768367773125693323185521562010679082048830600040934812749600277534962290727034767852188110284829387931449106513062993268483331580453154299937167177208996079493421877344101499411033685457605392304456096973657684945255712323629382392819274620880816124180898050473290872451263717611371235406735989638395318904223162783193123283387378276950742060891344755061015574248305886633806128997921918910813898053130389302417068072937544113015011086066598003300037541019737402481043283626091750071473217715379403218708379522845813977433590007988242932875705134041640773522374336481042641598861500521776479537473170532601780325664923420434642441282138351298763621154790485440117669952485087161337119856481397186180853023311617562446374370247292950287525909157486418068116385864904938821039072658815660591192359787147777508108464658151736644754881659684128291723751692659002486103860629599813200855179001855181286709847141701474935307864350823256982026307641962062503257232785502371610738862219214959519397779583037708138690740753260271864879442377842185166699006019448561851356648555379110522425824120328543808768090404071728281082613877710845284959315650363907204600024429669584867461911292551313674033715722026668522254471701681962925479506919246115492409588084707668471148224416544345960001626475015713444162332940373728367291418352636127858722929193930331400898565842077587346489858365232272051494807780554741352338892392746909829436688743242059760766035677267118434635267622106707426453463975880297381681363296912177747630446265670843664671768950215162910473780553003217323884461264491821525621961582295526064426348741295933557361563101601720162278834241099918400225062748326955937729258254188098706387119277828773992549065588605366391942561364505446211594732641869036379979512725611109864123884088152992692157499275895642857015508410301060651369131066922190803222821026416145997727658017036893800393952782090318221190059921978019589593288044238230165923492405314371374878248713086420273803295100117678040744491896845039336928268180992016017929190979761809787563690603332645316176275066242850962971426810034511579848995166156486515318657086849690315343841840784902922053648264356863307533901111459042807655687045686185731552495391512866623284169306359740610010488569520451448374129523023533438001513556836557699654945579086228326864273207950468142934282780652895398996582786949584432007676015152037741295573859996370929229454569663809090457594457098633719260961263970724638211894058526099607951715334716156351569627197582849920095044589887651502594400704042472046110869481916076626722042789656648133970455268216163065564907029268334105545401377772545943079915251525237696200591717548038359764077438035057649453478182246131273725159050695122350870863556306136450722003919802228728243692185347679180018537088160904481350978762694599574354208396014796336688553885648222275129258749865732131830055229650836035088649919089466444251878790020142486699830109603659541679476727896061598850240758809704738400489866580769043054531735276595787679465663697392621719905397494329366177840682287639054782817166415800489163454339674876321151535793803486743161627182279636779064769967291101237629375041431757198836271289859204999654472925850001030717869042913338088082392638893502546577471673087349119932392310468608402975431818517271856403695574810330823676267161497699100815267385626070782126291006446392947375535260953536331916374420656494826664814230724778536818250312577825279483422361821011207842947112490777952069675297544646133529763014163044820334105648800882000924648669982354124151184471064527559288324636288678659922694127036079702405213976345192724184401092461880282455432424009142606727341294546275655817063569425536070466002516003913130588215559648041591208532007065431690195871490351369996886768138751771745139099130741909468346666501072464544023890346461335686791556316993493505060085204077397518484817549439601945861213266797116402769250463442208369315700107998282383161277048514718907733546447901658153858164296759716704406819623569349395212690270829541846934859344112311837204422510627560456003516236931029987265357217346676079523804482981456239305482797604731436464450165401908984142956087727607368222395196484125177484704962130112746515237515257709623306617943922310284664921508260569281473506355083424505416127639714110196223473756533005905808264104488947807572713243342636840662939226134549453000989191999246514635625767428749480089467983347088249937281371068711667678937998558692877070153706032517509916445933981498348244539678105406740798841715262229626399656458975225981841461593131491202667561436176341363260439689567085949332851206526857217809329489902653174711177787280807890915967039856777862043232632797608315340069294334428056642160297443181659574347361176041445040938311501274608366453300353288945247088391712407064471286250722494600894142588242270746001660842079774367505870870272417352682438424502606441512133850617638477627098195297003320020995795515345640607510920624937748574557309722677614906906954703848284383019531306127699611928085111066151270738110128899675468851117915962793134784121968449996204711099383402327365061949271154115389329428109847896870773952131247880377940500056426183657539032591850037801943077542824843817333456960201891040240749353766266282460606819133704067306660053924471840202031524921016430223179568134443070734967910436364337114162976464440880033736176822521879083038304494178645396681880265142017688229561619418968065688575628720098288420653750888596908244675296672951249042383986148102474519493201522703007887315515623290751427913291130341681203456245819262146620199715160115306838214916674943339139008028084446424796745298971353626088158452810438258399764984122627839254738371069100012944222217274724181811071653658910113654202074823629532037622391556144824695778968982612677503306247354485608939524075772002068564159939132153034987042605589129499505597415493847614122147760998899115041018174225763477979163429951129934681855301009038450608005643456224095010399365364251256573810855338369488335877957813137177291299041228065188224759979373761551624853510492731039880787041772601449226588455584101255393034355518854810521441460255671545962659253444608084162706646606793523462416635271942974656858133643224434044103988901383606569167756146814810206937466375738885345464314901026076199896108634786406282454397431570919398584143057473084297857056908391280332764235116410835536262317054630401739696933666321310194834260437082928050998068827272749477138785050074126149355530660046197815099255108883117102383871607320326718149108234805545831533009220238760110807216356317667859634781477076959875377327868117119103561554150082353835035784962928133850819836318943744714892627011378564531419267333552794506388295498939379374169189054721554342757297989090693822007164915869561257822317903225386903204364645558138504562812496544429588766088299774040331870877540793593265768190251710697523571601860940371332246318239290888549219361553336201985181256230036459525427844203267118996408744855048937667378540796582003430190000285450431138775413295149834808030993341621116323418679403550381824135203699127378999132498422576309789166291448388161281587977705638040573189878881767242382831217864511509364523326901916174319962490069449894329819273063974403062984493049797941386058983403297851772242905787902806895750497392685596632669834177835441865871210061006702243042251246264159481669185935412242676290357355270044768507616020439040258068915195049989208969324872052822679021312531327016518410495778129174515397284555063937335420313843010961514754949007952253776723527619410227929662061260645052136221455588785563603186042335460886444130600808381329589717247148740342965063580924781147170580664767135254886453474543059152428762262721241968669619296728088875753280011592527152021909330704095801109565356690884109540233199784627792530191486499235088593012959770761004007149082080373887398599471453136170410571138469627834370191678122239220553960394316025021911595106162530901486753737768394086382527940907562640382685529954432884086612221747890255145941132775197344964957421443542941882778791585500568560198585080212778533851849557757269779370349025295672339748203060230960063354582037747172917061175817728450753496646975429703960808003035652529445030595993077336761419097333396508045618071218380274338171978968689400251406934436056752927339681820372085324674980279028804232180556865322548979185303732526802409772421242051059345472048892751015605227188307951354018433104326728238800127420474301875082739302211159105972700577445755433445184158112739303854658596127358817364854355199689695964752374751400580853544737998943940673963552860941657315471308343049106720661171364394418719744215770378957668761759094251217287734453188807586040904464115313513875670787490532881797423328241698219227815877997680169245269964488584201338719333983429672265682483246007841615417051397752116181844640323198092492785719315111765491365037166183631710901281539900685470491563336667396487027494769982186496886475062954668577615482954982143212628162457767895236614176349984506448853572924961312351085568965498805329782102551685530127774151422262833075624176479281805681644123246556368644682526138641959825000374804723403891607863149124341008682099953754157069007119828382556299045700833435623940420074775553810428976285035954410574302593032386387044647719522587683126173628682182448991374350549773027212708552231528874026348138249892809036473892856177671746547296559445056772503925207921362731778769017119052506867150055152441104994862589750408135408622438384904361579349117734449246043232741314950491712407956553027524870404831613706397801760776815761713567139815292088730393431954772053180980242293588760526812782285214655867990173488269915164288033150094678067694768235524269867974329980617241049501458925350926615552479293567975580328321564138580786223269194334936259944424306053131855458000324934285639656055170373757050066739958299027301087207991458889003672065849401572334674376392167926552483125529094564536022325697838123956511456192737723121158714625662984395837779448527014399577471776469658823042128001768777344402802752699044396177438122039069062004521214059381508089362258696751459864260124081611841118247282497244989619983342718574609581264312220886026014040943578716580925945914543491598250433915832546979782586078490003478173696490044795248848010045102662617946831541847787662036524283170227118147881726298520503624697588785516200798814926027652166867671728853286057402913237346296507426027888780584931248057481535267243856952092105179831685159460229761447072210639291544821767157813257467273235148934579268949423900304124530921763552581593165975375673909102179217098145896671973285732391013715143809137188961290439428591306800526314821991664361101098385700875126612072475333841399250595669498419930844128844572586474378391060421635327571578507033307460323908213396441294191032740327104758478917145567050846934506562687329332041201271176692165679451881843922711380450037066680012692402090215723280354927642497881400735981839685804274322637385927171568001212322387486618128779618469824197047823223334534778002420743787668173657459735483365792623516399236450329729766481609264497493621325586237693777016775266277762245470251212120557166365510998672457213538149875922284213752470683920816978387042255738113527105348950756548503392826284586543772019556901652373976318891143296178399785112786505345464829776754844373632678473487185037894113909084679782786228768891798997571516739053908745024681685514524032069760262196949873272679258825813370950457085790197137579416240908261947571998879920258281830058588929082627772430487887814431775766552525563984342129497424087727913020184475829144101356369260357399469176906248283468693634829645787513057117658232932844676100308591499730560837337975678623478736509786220971418486542404608531268268078747452096375601995891885397982931021052873797999091592155932505455378126096528678952516049179319795794295288857842768372183775564955599103428173614449258599179856270309168123116147572994381312651839422776703495134338845532242182283287691792867765016539309516600607154195773258792066141786137180550489655666748939994858044671243838333448876352216997699121076127031000158957580840923613414919867025624052787418605717640624160246670346276275440820644470498013099604334653369384161928865235416558233474257014824327633560182891217689639006200670012336551920927882573053227599719345926093567106070097132644116345361835710827454405104545567820478544259128670867365447534132094778020336841753693196526694052920765336816812367132323520549932900067983089446751571481381178725849936874534298341770792549630842219340005266878375245822790706463954649606165350009716827322062345265787624603125865474892506063686182578617463707841343487687086074376674744127405751866488002399958815192701211338092655039669079338901443746543921817277393924142045044701949685812264703378053572365224358533021081093946046296401069409430943020210756610586570059162686434903826790589457006190567353256237019152670860489329664239059375328838478209914743805247622908069680359232287104075996753180364306038516736527889807245865813499095825098805666201162399980599053182460434259734346453768559357420570642269215915538289927504538934084019295878436990125222997080358803848912562313420157606235376757264390558833919367992882719729565898063923908618809915257761012610802277107529005928814206443401985756364373832274163676586546222411506480895576902565606275204752512479592242823421619477293977979277167113836530599470120223679277478375356284160660078897426741592193760324660540765590894569755863191895115631888006001210170651832201931076680640289069494488177218423239049576775088471663842569546411726499168095708183172018953809166588143494530275172377369687377940653399574125126390704314690508687351207168718817356526839724207696615602309068192383574046884733256755259263176898312349014886815971527158718097154834347557135889927434530818059505065358698549222755181147091755958606667367143308793630191896755295696803877365177953184794607963055572098058332371068373173132340670673155188941058706831771556577682943459788858663160126980880136379162716650692321890134186491698653628955932868502587689178689305307705505453209893909567676561861751172118919404295046230561606773769833687214219430684455741061228143128870489336320528404863858905065143293202423604521334171383368884277741987291412099725450665939952407525206141983522905608670903158454822465878951611760710603776479742392606647984531452032014974294754401441913096088088077813930691039853762404823510496762105026349148934384156078693557508606930626701072663615322365111325317999583216927131371593236985097907013225781166989148082058052865354886952151523452629010268527350681616860969953083129220421796032692099212922376202633950558382898156458658626098400550999563056523899892748113757438346329014996452732933048133644166131167845262793276946482369066067614188973686986247504587740631263416802336724130001626455709537476516623791175647591086569179636053134185963545487742374994812077984155410268246583506377826791362511067413522667204099392375514559956240679771171699304743684612659910291156750269863026136650898431702108114247571118473907862649928847260307586655559004456890661378754107841516225854690762542788632635810996051564415827179728281119052778068651095896554245581934517014565792126131170441378863567814951651485663337551590962124955535619471826985339604318579506324963610031176382381837527209685928405683305275049774734424442995164449154725072163354128632626839593574970136715082337194785103246652984173891275693697904632454313204517214346471888197493689485062756621986924367989904543463271752965414994771731533827072302908393539663653247761961398072619742755541061908444155181980682578432841924550758668496497669481221510479526294867020353734514570476781451728053476013011954677898155378237184244250487603377193419797986006641400101207888936087554702095135083967311446311437935940884329965011547125270744423242467612327163205682750275062995641501714665232487765047414325564692272962804352963262124993372753003203787266169048137355691180776011832820726359630146184660394302100875343733675464568695223156172752599465232641153454995184551374753250223905578520644729185998443698952097289565680906330386724370816648200803891772327503199603824548144376761855642086235938451585378829058639294062347480377844575237903405894125400881422200909444728365920198681397231827048858508585519573461645671191534122175145783567275219016334570292165619862940292403312193659421871934185323056715261085447805425249014062037698720942791025071851683112143052981515464386736958687662610111065623991238262879899247252113023508170750975743890711940674440406776101034579313566389594595569564167691294762832044614899533023253222513068933355283573010679780291398259397083342941993393099093301596132225216165478506634140493478101262284580560404863312794899408047780708852981010074127117583058819857481219681049034672368333528131678426534861316151213902736083190728161949743025770759177029590381503584430462152946807620678544761493968269532687113592631495429111917140040183735977039285892599701666049275721489701193960869454291551740594544599523284268481509181579736319219900415724010603727307515671014044325676357832939238857533644683131205628064874920069899673841590304010176235755319722507041657628677693500034113110350407695552461669356048960275535467297789337691446184354945165065136103549141329953062787119989759517833249019633317117521056529414607468756557348834581503755168551294589460766350052763384289187681873373457124239181267254768069111191132273448353198681880171696331641102664325365349594527669167911483241359213528587410932006748609764629546532114711301728698133381013578227114040566966504282136599752434229903136542911194065350117645958545529047014864661652919578569443479656851796563244704896098329699191869256691887467305647699602259297133730106897780088406310218758505170493167385654079838045783947481767423410166907807639298298269666685858148359656224418357310271380077926968144120092536505281305492047516360548164034984047644448803181517879020835363929180658081301521566013611824721371752670437367662976495498257184095107642652334404293389092236095660364934221987433005975809011542594323662679057690277288795149713565891964549207099500981615347516293272214983375891090693826088861546305180257396693451251532880130432831370073494689442791614238519696957738692690056818577001035843666805533896127090307403656785109439244041745641778914677760844549893948337128681350490358966090636299793609044836053223328885518690395794105052796951108942934252214432569946404645489191384717063727216031751151191305130056460174858309755432648374407856628816121584802418472309610733265825219486364846411833944195735026544650698261781526835757161126923182436471742359726693638340297010837138989742288340634885900113782077076613550886649469436553832569530357678577624609663061760773266554423061366868596415191444017971598737081330690802652065039967106554307949056625767364204145616546597229627200323338186703093642204583756145781186641448830254015092805351776051054652555374270530030359500321976254821325050866583935520764293561882140179718991071731467918485695145995321808276345306526837024167435702657404281445316161823564948411594558630481028489480540075627899144776134607534617438999713407739342173256111165237833090899374596283182898270748070313131245139626098002587718080333172166031448814337215635136636524901941579997641100725709248797883910218992400773545659681435389873517300050480433231812509155287953684708422146252216222663510491875582081100142840270966110641517753197396519773362689073933622116356304506880549911088634238994122800493086130258820344838481949392866366786443398411879462916471929201996394635641840379965080087586696970336884781830997577862000131954393367212448143767683134498692016496621697719083460941740338244771208647157752425163288309119886365296153778056071851540905665887321804528932580249438770060468772591367039349122811853125263857197561537423543014794816737198127704655866728808847598015528789022989761646093046067257226416181938270532099021437620462135448659962601435409544438717069831916660389414296601492945298541381334888828210462300128866019057235467249413234400422485659614609842088494969721463317083349732706070370310361833908033810685872519760030789820983898624428671326410210292791284770174661193303589720658467572263623406016146058361764327025091735059327357379650861143383893167423561305601646050402624550462670540101519586737174750883374165486287739604509709221214024665749699859080520550227322177222751972633592019975027187810693097609097155526604938075534279195418187381056679084207473571878115564923628764505291537583464983769641259602092397289327136564838633805393378766884043170146523371581986913658014873965917046136578053041920247636553347084164977107235596356133671995295303559230199450029084967265028465796673625062707878798800149496793625889672627869828146123598404386575841207212946001586874596971568089879805447682244706102096782849296717223828759078935849150517191821974071088018949650599006372128326492411484843633383865155916861722808406345399385300718051242278525521410078690878523683781780073468111774628515394884721273519974951862062731860370643573430261891745863953975607370840818848016593033075904806153303317085766416784793739946212033058774118486811066888318530295059803819646723891736016181509938053026412825687131049499392542584170625931662457376286632485531478658869179110785776447372394148429168445354595717813778871811476717242418785501117552817811904109349889007705299773883132457922212758033542105161494160728770603540092061127064862018438273550181570852911652552443579317442654165473394068454920199045503212978291456370262817434267131502802187579088853790627478574445912147047779116697808733926364403465144406231059951708487624996951114702316680078012209133799802316149345209279834946103560932418359048015751522961156084543454919739971089380605961009160560137819784076594465186231465828779145148382270747759252890446897862556256651907513127515054971392608594940008105580213565018374765244101848592776272186964491505015376832936001924577201305729137902320765399980537869623835501371344276528828584793755719657759050431433971743725578511807289667495552153926863965894965737009356461515799916746877993665856201494178871689046409849108013782901264925759693470241828785741112375188954199991704089210102521755039511531123383459704504935612834217532952156961430748409331006574106350723193917480311177511283030848870532479911412689500072890647090711014517802444344684659593694069926024534221711439499627294995623827364885685455931010426417986412632631869687849195894884581183431837052410230984957333310660516874744593713118568699787867892781751113375528307771343200469196518360149029517777917973227367462579550850209022421779109294382289998974295822113243561597082426491763590222063717235925975685278371317347996570110244111617620212582413542059644459548589254255192884023232886592880144572288616175139222551888894074264535488348739112764962542499129296927277267117905200753006530629582356846435940861840584333068509851439705668884506109265964712277579024952594325991706648467216552136388087924786817446584768540258174629520308127204400134130698420613087176689367655375917054489852867226959249064583988544776663162286175148430696191917530755978000251916737849691577993243708106594966646187234547629452363026165217571301580356693256846047971397850508715519345355069596971864806475580542732882924734951299427789842793740551562589382085962340935345273832934931817971474720917433997663479426357055571949414248621188999115914335125312005188494886092565569157744761652157346707063922077002558475853462598540900039865068655806345814019967572463164415257110053599550506434281541941533288639927873963679664500431112566272720844907515772822293202985263704110232454754077522595058985935026573227864871865852250896118331482048327806648780555606912067057340462985405851998328980233247150946338570003184755195842884572464936587662728174990680975766770968755601039223776291064618748710413580229428456096039584564936779032496660615915907856778262046951943135764037983350101950979692303710233086788862720746140102260319080990682743420481010209325016295841150998602885846018052618781895732816012157486128863424021496047723219721579702463446138959109927152265948563686177809855857267820593627505080342739942278224236974101518557747397492129458198120821522777570095480483693347801660808392517795577505317324811817265090099056046284851608014703009686257860536054918374249530105296213364425957513608648434970232861830954271353957506132346433086960681204315878215073823084515554715666742134582945389416421895748423559221816282380614823694158233667602637146590117836935840591264452360741609823590046447596105099803209940834657473873460220939621756677839556043419219572453897248740735317251319210845797481568041671000552511306063067966920342466105479561382753640527304599328936899421794541932163546308238070734203911472682070115795367404102018459546521333703601458119773000651160192556774672355480230455188195487417746218163663066710606697366910932316084099016112735174062113985819251019647492905749698107866058889782106835821518607018339958435972118158871933131095141480226987393719842466803043814619761435262647612652241928455931446630468965156674610178965480693552759337887024750414190797009456328560320501530118116096658433578303548305806147444338479956317538390688209512145532806576993343783830043537265259216066942575547323034591799502664451280779347548988775145126116686965387420125083533752314156894074622401799610276859873703026636668718408528214153364948597478879433715879585359553708748901570590269034571524741855885173307028537759478961578316555585167298243808676443522771869943243490639329109459613514371890224578771718641329563341745096306361087856884130233992869330820781046353482905210671016540560968331754207740300534486142460321161811890502726190721182046551642398154961334192160442876102893877465942397483687012423169322395567769795271379293363975004789827095998499785040712588162879033468013680660867852982271227286831569261168552089777658128226349740519873961769282689378521813032756481642732899399723254368350249344861518476819239015724443246636975389381755733569560787097339850167326084782075040848059287600812877321637282769753996280074480485403463125565757522959665460253397190730040059746921890934378758983319219312838582258918502550365191981874047048963564361076989069804861139468331518424909207158010760587233082886466902064753290048360767914078604978395613588800824350429841568381992961994397352853356425018965049335157645643386655562888051862748838866969582426258325488748298781127289314409610593317373655415115640130267435557470094399654514701490771423019119166572998790085593852594983596555710920168016870774128406205593626936926239648028545344363598714048192407945001537525726641288926071270487908801533047264375003457071660375612029269139283953956747750736329743912234855576350341404209785506756294782872490354422298718235972421727605848180631367134411645936586949231351049800396025990910004870647478677236484133432478411157341384147142278990508717307885723923154071576418695494822942351534224411024540706466120225340297952604347841886196773413797276903935426690233098534637294041334745399567098082521550686966370523828175371013720180271206779350660949572238161523528330695579548590723984361293600647865693383447060327539029362501624671977399075664638559237878666606859888148572986807978739072602612483906687434214439613812692888958258742858206310725801572865556135074722689621120560678726612435372379356455909837308284714695453609998413424385403123496230636071043958752552251386597290824266894251341344319108463536421930851412451607028759978820933391342355534124777970570199157658652612124471279352892051562902805107230865545833358702211420547507055922633757549629165404676741507027032730573758467353161203880424414891989329622302106821295181719287655623663037068244967649855370860608690458388331660048823814709670585573054198451541283850698530886897536031526194928395892306992605525360164795519055618315776749588073092557809500631340029681912739593332277250315943994549306913472960784425608691000066229653285002939197836739964509714972547991339836813527381229687341382171138906109767021236525489487059809308631174040633313641048213066534821832025239115432589227028882527568295195545457070264619202874650464138687828772472713597495154832286377354196945038432889904846800652284414570342037445360522501733853435048141499719315218434881689074289439607559432623782651979406701922620496919345449382597818552557337975822798981493315548682170626272380957620984783455732251959460755075638236487219978111363569835705092306603951238658735437346842411827121130523930935511880477668737424866971821890071939551090768603053130210830343331359957470567355360156783908507967489425274805254007306244861247565413453203806264617907235446326300180940425501966196400736237287684195678190255804369820797492357319984467701964029929578050299647726102938552376470726521896653216128484393777672190684549956923964169643770910609308907695216935240258539501289487762760014544058758046807268390261986134630752139778129177501538599893829218405916410163455313826984503001274367359345224250597782555823887146364229225297312191802851051299428223171769436738907162358711344164261143335032934729647041579344391813811574272912241146912749348458614459716000953289781079447421399423801213975662023125844185594854065104118407224317812148309413846253779130948374045757247198362404989841985873630091598821057680581519866690498035345594159024757062962240209005271906683806393118515191303410742065143736136954574366440468037317483186095468422294615331833560158807479541288665312658744630695995339372607064953899331743357777257643386897709672278237560235809572644253886959764878851566669074478577044490643228428077003663858800032657819019762984547628267215163783975681429059172937237279968767183932352747645471969058791115164297109485055521115556150110656020935680801904019552021853048547978734411351042531841115135203588905644474881832430348874618717216087825664275980400785395633046368515131099875565972068343184410500096218376255453737066120698222062388054779877672137447217849474628363044012159846844023309313897550091600352235671779136603920317559794638282075521028442364518849849973309244076483050342691502572995648608973814027469135593930948497582742585179253923369884601684213760605072306318674241454115711508222370288997116229328877627136548794463321035914302671789126655846245204212175226111368578917898851412187296993342660810793029143850130764483168123341583834020855562784717242328486555645241114742780775155811119016262312798565320052504424055709779107722739650898181387402635674299665725524502767719398399746933140484296064373420887789692066900073662029329713755395030406014045415536844013015343851243312790417472588303019640462587951667510046663780879551363543114779364455342966383275825625866853823281015644521152223125225865856422896308329605006793837210842113539697977956255910340297038025691183635138593131065151290433285795504585824766055644478511928130719458165624475982996598586577407921931146121737937111086700000256708114819310201824286356986764422145147877680193220016692334745634380726973858184085209520847723718583805489650874987638029454002922582992663073371824479721682955328894210783336885120306413968320984037696332299351472507397433952494315221850176434392553943023261047024245666438858909709510666150959400177852587804847842196528474528261086951186426733885641030432350884342227169157795468359333506772555513374249393590181666914358006309857073238205818167343332575197830163166978787486190023521363925881658156785305153791990386970925402014689884511026787066348873952261211322513179313448696332085332016708467821416164386224159795304193156995046182789827729227547182192331882474593513447630476242037813353888268564711126906304922099438162658311185310601906674683211086437076448496931093913057884331113688146055677389768215621783977111232855154558651459413457063837528775507612241003724207780276484088562234338521922396240168822491029957564553991476978514287183533364675544731572336350873140244626245095495326627427309375030447101161254734819399308501739798467563398055073817763256543172320500778262164827107259130614582728897261476851032747309956184583731834792496929242298646557791890721308705259802388968441028576745831693142221689971399832797180325088088641323782442580608770233589359452629561818209948301861217388896214687099741600410504076216383400788787491291635185234165421709022669101296977153477507736749811532423328846877844405316173211570413030059574358110582437975765394450312188795054359568778456857072622699370463519042654817802934731946874177655023520835231029739652833011003341758287665442050463298885758686202943154640470428080808442098145802924907196839068961919503002130391376977449589751766203847446636437455847165853256221407379838639086959055504505998032951451084546819104498142619735373671774386104802014873809375237266395529736826043448309752705010908750270503667702140132267581273153881006142220989422255081340998643918786550436195351791485962321136480049913310734044504004761843364595877972959618304085407240795309893987877695413962928070730117531789397942853459653256107667418026374647704597906129289785960228414308912338919623702165541428557208643437197110860478047332670570208314110335354402962863604189809280692392367127844864420244099100973484932889092988762649604266123374461431387552723080696746587507372985015351959619002243891210657520769940387179678456306188307295652527511131201319497503446416399403412422886177096523798343126071300417405103383274605476755319315366138964570723463773971016303649838102460460686846544053236165318511728930264859507343200242590457339882616386642575256795032751399223708966323024921251658114384928832881004903817045710154370054339851236962090391247148087404809886467493374662361403701312860407459285893116723510416676409321234776288292670985835268487065046163224046784452330201009367654356226744605455873756390518806748109902055688353164442282962930359895897253671225462811191474960890996115565791429070663674015106929343198893733779882476156439378480026208343128347563421880076466912444387195120688914586719475601540357139264729987526315582397873847620838477654003402660080342128873092177847244180727726340200191678876492704339915297007743961882552241471819948030268161361778650777304212848044957566887111768670850297069544113995142880641304932459061025829006252855739581589244290882154793340867739501696572187269271380079758214029445963713494515417878425620093661776521119400387491909001079805666223399696570486451478856402864373799519856606959020263828525703756052333042308797065979825475026579588409838043077170224862116293620563087774038409317750863590148259121393555214710684353933111041028356965216652918231042488310843258296434675701282255841430285586495444325874365130906736024002158044028762070693187920839739787088341522818831950639727056861052269453669470283531759860137045008640126614556672853321233475512779520391766882266635693694164669889943439346559154278366697780798305548531593067657720693453030743161831406692328749101113182960117999340091707999041347676503102184953799531758931544624371493075380192496307085572576346417865954636834882703950266400096159260685472092089498274724982217126187403545376995951304389124825536990058391652172002372703046924356313438134047555968772068680099808112368869249160884156400118256946217951127204110377254858763295939837250498333794659580729664862104718627033237744767039953825287567835928335002259330258639194400407228696920096955777778479394712696308338989239984191775819990956156906856142227378197487850206984976688577610473593677025767039306421524077932733304035978310915588200876881992085998638995439522074089503067880833327012960284546130239626639371440747281748325613951730062465047587261231051739168488893986569859040168082727392596143449669153989528738477290209824063165008604255531593598931313384380457721501905532793403254732099077966433521622147428177316584682193810750640194551054916324561515101860726294601120000429242069836654876619088221301374916178503431971602728436804270424781405320284530908594877998693181852656103715219452092050528022034367470479908718580751438386676745150698537369354167958150053293012452114100761897023088398217324984034506088754793728908538602680738598594212102835117642173328747865351831385474909741008970217179078038083246136671091364510243026927512258145773929296914282087943122206402934513068760594905832157218349771387983185614618007394535908303688369057607336703414274988801550359660199862270784136768208183875305419522899591581340701221699205350568381579619784800188783896128352562254215598259628055373639120132465126003692550614743652356848023727264345317474335932910376215169870494621677981919908716018260511455056385487533055749363612541962251037840043210404783184995445588170180532203431590344235914161209315534071198222010558369876255287155149954999835371006774330820753943151452849394069890712594097625590011863809032661882918113165871514662883711454109930163710339708326595493101589398833107208361058977806974718566066123881936132956329078937202324323541784358000465199948039170357009366874173065831918469040808229853075310166961511664840756773966549317955135684813059097960480545814780400644876912982320771156659712062539477415617380673808689320469719785570707171851545489622379104907157853995343074667131902779047341080577511357787810789156667438406839912090424425463352908364634547783432630427883768499996465608237509798717487399633864699068309863509131152873349819540902296630626250980494785580888101197339580433889965364400490919489933479316444462328195998587557811468176800319844938759957909016265273703167686906785583081251719038193759347642768805648116335282355631541483095240169342688371310147714006666790943382307030322341678720131951744631832890119156349406500719273364095077483686902388169530317282926666935699057219971900663279277641994917080927360150645654327041942048547991562722139433530838665093703864634112980383795364771859672431658642233737649845054767047924212247822440877869569861615585106208365399158998455027197054372040615160355406139931204639373922750462983539255217003400651177320379213457093036017285690514939785334225995112913363608507805180043219664558986760519364598005543279956132589183225272790958753199890850757772106070386249254309088986552313796745529326546544950033554224080809091740467744852024079128325565463766153922071372107597831782601039945614641751888195506468278702055029278955233766152249732784480168925523706672711194880017822499089988989333962505896125786019281928025247101429738852180539740014872873221355758686785758694364907453834418846962852628959473340482692152849043472942027323152838502739228992866646543661286749788049994477083120756924653045479650921909695132924392895167644146520210461068341236130656198256435580765396314145077851562353874178064811990982489670153399120330094679645569683978025586005383107442925370959280878847545250425704474350428857697189503524238706228105638949592420963750809915209952747404915540174645018413009550466595432119987452980762255880274160018998893016068211078725346968935405372984210329141692432079590951124680281371126520603843418531766830679311207491817091845120916035872075476393767088181189459895927865206198061379330473951604993012100703251811808356664670453578315613653126396415938641227895358924157311909793070006235761041361744737483096733488371077651328299601654123324928771457239427033015512265962596869636839140157251919662483049454538134257802063569878922300540853582620184733109587760231560728998760345218050546907375703141043150891559363748159440235591163552139910846964535219547149543190736975115693725029332093801065092080858517860223302405933940453622329872651544712386065411500566345437234163316321763474358544417777429309334849939735491315671320508697659480501068384348614869877968177365006567423998743981829850912164780591435160129013622165383820562165118350040069721998016678241257510560008283301018097184551460420217320521382350688345163882988142854707118818083574051864374819372500640264219252635291425603074708869940579276156075016691285505472450132193372172354884391353438162105742018752383772407127065269931083734727956963047074685266877264310343038182352108845081266177073439641174688083406809809856691098030461496008907489424258142852722213980707437942929188776907331328773618801036247680235667075859042117943146295001417275732546326297449340375297589290291249052861420692535857902856384245607573016315274783103052978493729445036989525439463042803208065664182040289375759142249100357721736658929049465702188347483271386066575251171385175721321221107519530170776242564941285117649913255444818409149215306091370000035639563596330872673126572152443546811262974231568243963105585807333665743118844862642108320842966784878364793299135922631977022772402476188594745784769167887622966500623785676152289967228940544292597936379390040652974873150084485011825826861705253580457936387134858424735260593076301204129174658914545516979152252307030891995838460720568561115044736425136463490557788196541236592798727420297509043075732228326587579431468305172839615934504277665944590599033233890247784419346887504133875647374621097999644159040527171975753627044647681687896466516823125491220842714379322638008575936925710927878558390937686800592087602579363280739032953922203360939198354054863518520369022218734973971233418788315691459666921021943398396866775886584534109244881944743461858126454854308282540014188670096469998056028786212738521449995323691851265802059355063348263586758335589661464889296090412973871930733535911152029547237335500216281896570132921905213084464052532194848148871594567869893236670789466439126643731869080072907377109945913828810315853221875442215010190280583742711824793300178018461761020765209187320315037290766629960573364502648089024477826264039826039282004538716844174712336499263862446791070408330500402998288890742549226281614982827481918682628263161734280685945067568399059089934729329953671500980105335155699045348784081215026536888334413247539369691048442871803948979312276101943686007434179776092514167530227271155189415301103423331680942267698933923004305746533025274223424460073581166486068197323656115570488558108883097749184543365240044752510977242632646958374126402615334553107472410842882433592795505356395942103384381946744077407855194051246163515681965397886720859580872876522749079345621267646659054696997047511242243004899720276329016143989575545545953266402883444541621128051101807539550504822926944421637460892163997195277419075845033170871573631023228434914082686510281829576366477883882084208092161308249525608990610494285513469837077547527099855647022521115069751917329637437918159964444762466960324113487952793607626261347165839992744468096714744274042352622234380698400204827077313157252965734093461165535500126746653613817148003680406516055346091055703954782109021044628544793288957423419993475470416530884451431447650714581459397162170825537770370700595610409068181839861105117120409933804548531118764221908318376574934363804153274873223886844148715807945597030802796999767110436993435122919247913018063790701158716105856825535952306400858153727635391697760626561606490352970951593705310396894762945166278538218642864024055345115169108780996737629468766365563382519264713282720583026878970482869416391158510262985821222687807163089536401451373395328502606576861250999615907176635815555051538537782707803183382316719412227780294141808413834442066690810072483282151184554970382112099185385496576624407128234427353251103485465105332706280608034046387347686402476020079994500756053896715957658480484559943157490713020541717005146266494939192407661674151223528302004407767213735077907505460266558526759418947163275022499564841128847054280681949150871395669414297306639741928277953042108149001867496736436315795916387880711589811904698166300298516439163831951945238805710447674877887956071808358800007749105318388508933963823794213132270582451777164749810480087797395261474507718257018310501944752864276514938326216287705067044322406500683931215576319385850636667601738397474755228558293028542464569294362394480804956996603329307970341709968711918519554043830794605469568476387234916047520706631649512764883122071444477182643487605153733597256220954455047416052189279933210459060699361818856772865420344660280419170366909257231338438956651283748799873132932114143741146151787760055891726331345403023819081207065100947930990036295091756342251555269741707377594031310450201920120849555879547081468412757619831695968388779236769965442398866006231339888468147808172195761987079765005805595230837868490363827317867635715484741007822443135929389943922184641585136788950345756148977156727828905423298354549243565322058835755675743852737139750975291663498902514928868833531759034138060117641312485370738636920528700102863464932053117313571337959028445902437649925646593007805432697419391732302213392471054283896465549600281727507604937317290745660699553414831103180921459175520469807210809581955618295442931096229323741341601058769799962382192448959945750095693299684504317426058789511280578908273609465043562533180571772757466069864488224542571162814398597682755985045628750088552727033471678770475213940407138621353013853889387035275535721204670742615401874007840075970555028795136172689520742096357332862089847691631173505104349144503067806484636306228097143302422505696086719415013858083002425365219534179668945208601848479519941377200796816048279445927829081676804500002073690022436031720599643079033126221768706214919693610249366191672291823496034299818596801073377206577417531234292143873110447194663874628203485732299718186943567548187528435664843640144061925422502838530839629525279251054043621547131140487010900155949901579994954228501297601312963733463722778640854532519142614986454310521405813720137072776346203159553150455163383870646802393181633704375930118339762474867726528693033969929357833524828787099728971291624436607216202636723824165828084842851313396282485211277763491932308208716034040747352005710774830910055976415118411159318358181653397830217781987471497891699490676911143406104698314971845500393631031974643452156666170079957492852315256401184823799064180350900809507157423671326870797396220885599727002250468832651147595987843308762180644877813237221275796188937066279409212801980700673315734511370757498080491459085612439439270449126888533163108298229847814470569159108254683192616689548159519500507721808329400900080697211648679181922012414267431422015656397576466785111966854842840187632356872841798605635484669772885920088037521465106179087109253504691149603821553934293187793192002096909215448843245767871319362298162203755039733777107270173795685190189466050578038962822787441705243884426472776322270294924438902077703000658739900247368981937235593422436808580389471403262552701061519103409085459162745885674990420245557550084094653732050637915621386401517856611576244557377236294293435402261695551651873035872941228441009656625736254573468915558065725018858088767207174403578239380082982115220780960692502233375507182677304117763261661974177611469847696673515972801421998262497655838541021234447088057864807173865117241063225421458671154710406900539234438751605269314131333963651746038246043800721017804061663394573905268297756995567840619810659018759700430543454167571510974352085141224541529571147790878803385277097934708050289300205498896929467804376041312039023324631981160651802748862799474797725962709807035379442256656513269108625593698010048569442403182981563050760243325647611765874140983421625853538790741955186541015326187749305242785661106769732569227778978373254654676959977743599848045067498360641186223006975305355735140147343143124137444070027684868205967338309059816700979695631911880098940829030669726425381645142439845410576768736805600154435130937538380085892985941046394518510325114147358549907272335128282876181149553231234703967070218978748881224300972010473467366401755513411678727434593523741748516316952413798376856002620491529723968089926397400985491945151790004152067952286966592419470686178097430969794183542740159619718283453865062305289171045945715846067536030467018991174755440464608492513251891451264980207651097841953209333936096672200955659339188230160307359633643237730145130686618969802796802388640133219832529961561388544850781628788053083300923124640618898826304028228594158729142638461897483390492879681407251543310707279219077352103499275388436321855037257238701944839148947606597944370620535789487335006679101016641003392826687680850010340767120065704639576256985733728111746250303183607765825682746382448783825398935009157877431440128033804764305382662744068356488909983540778361773413056224782622355551738121403368943057696608488266152852632977648787352623233557068315883917458876122504824148243498790322174743299211905821452700906250671045698938208152694099994730185257798242064260287723260817866159564245177462360624409119268405537395084974029946138416459332497533867563831748365878700449859940706009024340952987028479551323600009666139789349618324426057317367618479392942054298156320404136484809777091813440482539630361668802351220766517339831131427863367414739289875818577250988856118443622973333504982094552095240868391588648973995520210743350266501213330558030991493948131393225721088183210066912821529958963523172717472488072615807374123848146501385146726703127752247788916937190080223820670431967019435483316769984221654278604286038613128790702726160643993580059651843023598856913187515963716293225634598270706202197983537956108339584516374441988138659395090285677079603874540996782528665347086463374980724608406432612239357802275548579111970299455119010418289446535316842780840946590201630655888922572885218611484615978253291123573443606298548163272879639936512224829126673379983012083969604930373238761141337132062594980258080707515167311859306309898705439762811372347097224622548060419488800659621676758697511760832260715802762841676123769179208844773976160622237044784317565428901393673372441891959782975465264792801480479240501117659023270633697681693904053560622227284297639362010506482750869198095043458857245921476478094985354490539492268478990884290905648695556706335090412274837514238985602015070552169846216796785060325519964122977606530968214562562718519767667361943189562203269295368297122857219636123060109334510921063517322106973801299845502842594097875356836586502549957424292011648974311229885253173764950237671196649816920889499595286724567255679814738022360679835276658190362875205176181377076161300997688475666012526685808809636984172522693089372650561665197348250512947199446095416272139951455572991848474409312294602347895907167946064219042859097527926063729988603906198106197560732463676090536184547553296570059338831843963194975715695386749654218559179566856598730652453966989457902585084750956263984833733794919466202633592087725905204866239518474104747168598056369516064413278770968508470006411114051010553387521215460723595553595302750991347901972375789895221242308909157551977779649460150747092080093297624905974476959458329455313982544173922537249627932126866919459699472009801867295375537914043575215654745030382994872694234980443375553174388535954900361634115159817868789539029932846339086767184614475699087258148472928582744265552514468292979514533727598696772937588767445092080885806782990202281227785944069169494367209836648076219484921610005851549881372512713599087863178266750947885190738095779254995006678171074819246151277925426585642312399057506528399265644671629773983423099056178866008698790721520947804012018498444763352847618226547344830648904826055733260505794909817547318789412518246163872890441941219899882989770047511189572724930860908791862348977665712647932083698766991424344123303265551715689235907005412043892079172146038556204527413856350486464610588522404379228551244729208396393520825356470685438164953679006118629581495924246004097027002799587727597614458913384383024795818868748192515037608030501558404344600453088336095946352191628395443342759864876014200490788101831962460697392453029516766921404727060742714249250758499497990631622164474671710295133771979832239255110816852991764625488360558720701560062097198464614877609061475007424000163572820815247951140580525678166888246012381878699941355322767586616507300300862109891450915835360643492286579559414041912896244964375782352216432310061610185231516598904382715813925524440536769346515482567528627714412602277843243822202088094819504192399828496272605738894585279241285249253367575745823118382251706728059223367257219263026571662694508417083114710134481103737471139109012754672028139544244992013505329233569709061494134156173509827114186889626844493369724039484919855159703464010092898396491627391590793776119832045538445131112609708286518985012176392613988794223765718397148784722051483526480033707417521054935242826604419356663577541815881556612632066643521516225174768369838546773923784067595296392266015550336851754632885666503394881489114576207784914502855663099350980978522519133326794857259482257412544771411340066281554277254031071012227270204959651895468018773033233685576230303162555582522812614752767346220428058359024347969543024304502037108131992471502403862177310723247881689561071535407220921123272904982009627036846472470308485909556737472327700517418728489753632528065928905446410579159784311355806561136953496078252549450664822234267378512660682859313229603058621661025440578414553005624316636282364349543438679821205556550229453678526373850956600226695320657097250589230774667939343421599204067574852601592540645833700085023801083199295961084879891772053566516002571328278962893106797311983427603205802617593042552376292003492099203330809199192634374570493863277690774571096226115319419867843991916103277019478420296794542950900840392648062564931086870097118658656428905795154860085341901965298575483962595514848394155026513407756808393392288954714741918651596345403330754281285169719933283307235007035569401479530957916827169046576016213081753674712842562539111153554828522747455080013528725669500572802622003603529343047814420076329348224365063090229764374745214370741907834818480347256517215246710452231240009007948548291813199762419693144177726179102420087334456855805263702953216771442925504959928607200753460963848120953246657854832235863342190598266252882164777716544521684508684221631152592588927872351030102141752640397719437526273900522867028434499852117396054697441325495982117225688012500487152306872639773786991348101886212117704877406113002464360066189596983137768654794332040778279202620069780128955970076928788288005542595636842375807039563641507438929532728177722529063384363981797392479918066972260609421570176933468463671399283982765805061586512761436750267440591159349937056319451579829155826606068103978127204692049920183733920518192030819743788993887821681533428050429793251838683074541270855684228180542918845291336661889602798898555914321175292775175367993872015559146876920464193151678660482283793123979912525797713838773230669255420786155350585827311860716440174145342899858000591212905263734071920572115540339101905663554028386709090591601798501360909964030906737343452802735247332378944497166437907824819489714746769640038497848298733246829810057407831257663484455761313384936909884679608193660994817099102487180615248237382336743575405353917715667019900931881141269029407375391651687183637205570002796145689472663527192754491175493933456509033904596897528368244253583969154573607668583469193119391959781746364894498968108077222026941720953897783949648879899795125074997730007395021894842808630038628285455369135108992221678343054074609415163002340898664845541391018788103038856218894609438293579390882955819899130698615642477205946567932396539156952061956925612662116574827042539852589377683465952887830383002068107610395958409215763084048362424599791285869888411830376742464789766352274821538564391255266403400489968398683130673295022857442591974547627608862053698530425760762650052047665122262581180491645223103371767330989145172939942897325675887109701654324140948029767724458006332513992620950839624966055181552937953489128164863035073389945559720293018092766925797055866006046038580538558881197587398493015160375286148490051276213315713097118637252005664667157794447810355114029529019222217878839404551816989253132928227910856102695394588493970377744000178569875414419030947845746269878931204757770461439560552245068060619394012053907294730489943686831316999721500632602764861176138624672124663034766206225887734374643911131621410701521210250371343497515787404141747856368920168040838949385593743989538987163837513869178841602055973085874612826263559053698582403770730542568823478778140835779870830922855152088869001335897800055119878872463951709871431634041586360692162564731442118094781807518347509556067820785256387163155939077935223850146741190779405857852072470795803597281954080328253854946132589961858121125589894394526342355218622128000425659125284998239939896872806198591399075264049348152772826664672980117571084554399044853022473207703108844645070035759040908401141245263550654397749094533140220055888903926994502294633683383134496406422139768479293442909433930506339105216306867289661736088516268724118213249053721221306183719106469897839605799757419194213465124472363240614059461417003974768326775363725088687842989162490078725793781868416657707701234004316633743106717646651146245110736827485148576412019694724446794400462885550925988231292897301015332573312047125318378497039365030782752914476335114492644227883548496142286183253193859367724187743202391666363620466418914334992668568057766430504261357821339316685550227308574444935742302017046593129268482252100886819048344172757912347283294262202478298256280773668979112131934049540322171648740762975996231773680596133808592733451076375711721561931281494464820143059168684584978621557561332832543100918968645274249321639199498785183628178920119240015025428832541071425781985786542351198493775291560497378637248791991617393027002236774179257130268125997750737771413849718335915842365122340711256348469853156153072711600057146814062932512783644677661281821448386901279497078155450003028430268527362293064433854403416631871357681202283287297944446146069272497448470620051419773035987070764674860650373939917481070280237063379650665595770742690951646464509272167549710808359505530106948145174246653911688039842486662686551967228928675367579569357021654459909300177325916200226144930178453158998779645587162288813311812689000460263789007136073595602464535708846998520803797835895727577061637801902360188486900781123554588805823852988767226077010618704329629418074524344023784705135168756736869391072072970257181343908036834948151355823253366174356703398448939032670879573732681813404536478911748591385566226832208400391394512325284901288428924759349925215757867575395532690097100377218885661478922111219512581570333267619288635923641322761084344714653395644699558813281540470589310597998532561899288076119759040345247904501796455639233034823392589954678160371852748304907087339505114005869182685667252246200520650194206493582786050764459173704926011804639783351904100389395033602526527566087021868218835991419070290026033274756872153589534187388203766040925265211933381076802508108722136472661196457918181880030258897421996912260308316209874712316429607386902989680438423713676565738202950033801616239210186697674416563770433491265168997648949092267014197871060771148259253218055378097720971782864467538196620536111241269204952153258943317658547043915957005740600192925757851909137002907712472281517326087796393750246330156972283502077519461505044843824537730537498562664728635658367105675201660276136003188571207473959803011161314011857022896665151103168669701911491943403416068840633797378807167336103012084640485691223151629492383350945169996115676654993132399023607849966220690460976364715258625693925742078190809522464985062435974442625436469498514183106069214146240272802598608781176263309542327375234263222609937539117864729680377214350431883347096760786127747655445618788210458915345909536647621523328116944095633293886180465442539944670891129187983120471562838792510832588057068424671171572506163400076197047020382813657974033750125576746738823279491274268165932017342072844039320369583249304070448681481903092605843047023405442699535344233745910544153430204631934046889951942141843073583299668332650350224951795950885228532897375516977660906302866613986564015749417196440819008568007122045735119383118893478944607297112137288030333007273226106761808700087869737030249390336306427836813594096503925260585945564215168654662617027822750360081464421288607550043729150109280155165371421769672064268791250970539992695022633345711201160426587122088725746632446115651901974559707586278021106618574869345935354351969424913969652751404713701433433748075217989708685420428945383418154316849965394047173572642609763217364764452274987572545804416509114340346905096103533488089305709329661300726978047225046061624946587231901447984480071347257231785825266177090942362361509976476751385037835195252857387769393723987857360555626958664348323967721382405255326283142677339497641456467715020963905959694125753193593201724498321290683193370048200707365192019531915126833999338769303772525456169888354291917062715736655946708750770549678077310499444443848165963004530101485106778127176158093808351576735564417492686317671821061227321123133095060511950301912324995916001410414165823068099470431675066447401691900104526063236455505890307894132055153670190188863884144225819675376016040114741950128929270682869571571582530593755120790494669957932411166618729010259101518301090480705515993545150620153196552123562094448257166229726804999211918105293492825435513388958600797264148755020425022537342600926725499548334327795531867434988592650875274530946076340695168760937010024916630094701619835318591510247760689298875247521949311030439972080295020878740771166241416316460379429291219108000490190581496121548343825613043953733387926897818811988965117786476100626433436409671043977278310820924017807402156227675176049514678828401962618744139244453309697020072885755539930983445655309118930881566099548024567647386561691304737343155114544816240288401272381718145532805716937477415766991203930134140855038619951788432289131698898386473751286969676365632885660101211356112650520777911187858971135846242712783652251165895551761219138749327960677206600869341633100129877289190502830050153921624532643090360849884944123151772530154332856831697242690833669158661754365561316084556582768538315880285061883444008411403303814420779069517191806557004752612171328684985132215258712657728543641293030576207278378522711297920724651255339479842964171329439582307425956392120615857268855122265234380539549664046758159664903262489803730334852760235152090313931582406617250228162086799093456405294277782217339000044893038321271223527968945830462040172263140392242313297171088928562094948527733708987872730886364312635015717909875597254019629935715545207259390262265669479400087611912217976309665636299887674444181992459626940548775291161569607104366220808517317738703493190523488060522649726951405748841430979364353214348164656221918959172671526996012804004577406758083140421711183165866936660947465913567771902260667693035083009099262255060349476866569734633945243088535508539716757428842403292185342526832122352128716145352773109652430777200598738056919543188215913574655147381511025899958315233721218143607903642393280505261327719184168299731217758329269928678425637460106316751258124710733070795667102082885746371831503497479392880738369047736071170107769094251053643580565928623635524308564559203502560858031323960285460723705306044256396244237267431687733654257628180784621754341124724157694327015273255129362145974379383350491124786453310525453541830750555852656346006331678756935495447431714396621648242400778919602770621275393326879766013764510890120867776300314760474153074301839991899896642898235050089077214216391875967122118744043880189199746167960109029480718467103354548926140057589901214123007896300185796154869739858033310976276652159289211639800449653219414223356982891579924766226284107122423756531483430474538463710532146213740661021369398493741618088604632139453157189081857967719152675752196929310270832949438950783641853376663061960228305634926405975739299965590386651281842082252665843999507584748690226461258483032699134483881016192750860899689579642952088707129548161487742396302467338772241900658526058929965311337306224085659531040318423285409889462091356589565227223877779610195989562054464551830319308979022844853212804675818649496720074771694256591051781597257250600258976692343972402645322587021836499060203170207400484929516376033515561203386275970448073531782131946818813801971217022593556093355853731878877554552799990429734832747592383265867742585135782087249174965220578536993127740964298960941851493340093819242017763488140741796797119234665758162021238878206735670632965557401183101957499441502829571989931926639313402037206229526483225165423433097311268634553597085148792924928953567350277059799479577053801316281975983522114508741437427203378091039382852892337776157084590416487579650533709635384855444042686986095577751221555321095859836910225037208781992860446557912467992957998882327187439803979189394447485004179431437601126560396395629010578925318441407020143167313954198073469329363365521396137779819779712286461873364291713852787120183391524936389819092023001957805588373738883716173413847980127583547278735901684265170152030539843521079127474161086240944725162690060245754767913974149710958850638252040743831292911066295215966218741862527350300761319283343257756333529683975651363670933064161616049043358289541764010823653286890985599135311892924379712565339319508283195016058272718570691266362732808645336481702783405370142279772385909541281588098594162744175793008165026625554857276091860388449181284382982090265204901730918964322402181617727768240921156387160991211685824226920928147091781546610832149160835579222785301932108092695405769168874416253852952146470986414221318784697513088469154873145093804615854207478322039210622340830242460362839009305333957297820604057842061141912784748711549384871066781540934613322378581306227842689925540190721106756021395179723388352767150940487933520102815803054412899871780279689186856691773334839880613361794794074288750988117665035201557716884926487165292251229580417903062495526881954214754123866668393805126319070540193959428295464837478571879400732484905638048425946519703731017732604573896242759671779156454930273487634980242260273928270413916825864463995431799015431525710674158280870556623389663950718660405773640597694548546263680598380977433194520868354246013986683267757562980435111591644477556126123884087880873615730142297800567130687895761438457214867362898636985951462605265589431952174325284884115873413068311022133387224706103677887174703171098986188696727962073370803160295008332784913343127718763672065259508974280860606150557400689125099109531743910502932566332077475364183726905779510662872073804879539917482573879178572952559822196763432400604187364430745040723934251322046558565701604081336009389959198157589243116786893188149238952301171191120972581461545111292715320003808283381092206066172630086268159385145921425367272566166596297130903334524432765359215758858207451464618598169665458964577878008997532730618562422837763325372145220816229775562731038305511476240044372117399049423868954441591609529223357017771534663494346234917998914802801497870243634948300569394607145771092498154494623224964009090349549570378275875606467495149373480325425668492513311857924777148339800819904805475837516638342498058944498182567628142703345807972969464717393780267716354804285826853548651265990270223944533306442908474062082666116181266406068496920335376738473703804720830861837697289908838697641071856522820278322146010054412047040789260481488999425855241656881087150255823268087558472419970592105469781289237842175400867968014327852499159888917228201116153216043176137863601210405256757964308548595193589957141959906289475295029962735556875410052925692587270781097393851331475148709560330588965426089729244897548723156054067720164918718170368331744752736776042770374187311226751649709233076712822164378459913469970555405492595863638165209280976788904421650784851108225382738703640171286089032931717663176113356132816689277107735888016244032111780392055734506336323587748436637371332800663950625802607138891419047698329624518977449450471387022126452843204619680028697405084883652694510683715734312512126646738461580415800734814061030702660791283076890444661098953111596907957484690939594121155396745144332445828936373694016424317870884627138632656915625724511949131856684850857396716287316733202447660508628583405848392976267629899270574411067725303528100029906819384206665082106886262681216470937029010397848856496860582312789232868405876313619314803918330254924551739352285469479723306518586653109888050210802200800228493569350552926534106455509790293652599831630433415748666185701025204558238318919286689009170329751180855716253834386048840913063543397201607371113416885014999788858394832771462805462852799732461137827164942361397897979201196804486799926701892611667126020020932589903626824933811950922959729015295953347127893842649030183358139708327179120803596059182260823789210120077637650838824528094122366583194665002512553937985820449390539140484926945591438347044726765154142668288918917966076758241831714043306693329199859313284364862880840398463028373969471027815812797362154246515902609382678557861849462968343110489427286451215286215454768437766022209446301015759063451504388256316583607821705400020483360576733635911730327031287937629127271911338987059074431614386469628030303850995825625110328437526901530266982449434634877539942177329211545392643471447650256779734968027491307013248270453158657929646505263228560461316902572377189100707212571859601789373532079188266820257618127006659356369535609495606069130318329782392855161776936750734277995241074344463749443303530691157235954910083955343804414261198892884009744474628695353467889680549600609607333525183815262168227939101928346783511511877404293388858732058098219778464561664139305107459532602622992388274431589756614208907767772035453453463066824556284106515902855850571097998934473411080488881206229762798796837095572708535777340390169908057529038017565499685630967749465450671969223718640895731793339750439379120052011194396379065791882242869593436628504342973645243405025120279375243679957527104787732981678208180221613051339027355235139834300805811132286835913427260157323030691288581437448603617870166752820110372034149801790860780920095926908440134415043034826225800444411408475247500583228548852442105280779092260917886805179240487935802542897748134987631482695818898065022723032069305759260723158040121027234335788385825725381810485093123617282030306471697543887015316488779693467238571897555324914615808709015777727189105384938457633875672601631385926160072084268113112707536991461150391587683054127201935915214771994512829283770746721681832126040968865172895109569100678065919301605395094669006732077287387850243326111713452757551505773859489267406032547008963579255093385287063533110202288443666557896518013744076823350906494308153083923187955066977881240157995498346000855609271110606979420294696993667475174767899581946240623930280299190452576008640792862295616870890433248286375379984616072295536209606954337543205383659526138313118271569023936373535651922523567961426628144296380742280107956165394657511823700456825409020451716639954592304040583168629009515197067691273895234458204141357266165737066614912352293401514167160879790811316608987204295623478595358316629862898488283347621288340038692278843048110395945459521235216488915955453441262205176697162952825083888887565452476945263231962078161325306537398584439936517722087157407030274974102248507890494295836593771440816982790871876679321574998476429752574755586228974669189091901672046012658858168659220068157624116907409828846858427413347849920070980351684267729321671445050289781676010423773032301722519423814968292237262030623031001390031918764685887513706668154560424886049037715499259928823331427178140739517233718818699595943319917957362570221626137453232668021469832772327681459970980758745148748679991090439856596982108729584197104302119525198985224456862389202997527602990190573811002283896241925902647549285783563407852297944738156236459945894713924562778507768127685366730928699998333909990567954080878895133392567230904471696796942204994532016495837214388982397621264871132918759525335054840695944823326074868953873180525705631904660279201535440166498860642762370023763499407980017209104623705647451830515328245335135989894564694849092437993228302472235318205228926944564590101783350724813921590421232941901681827672492655202221571230501227739413543396879691316060571462464376502645674630718129211190394019940974090743303269673569813391243117202541300698509411759685019726341673204918577219499338928386128112411894762005776853159325806883654627054345253413807317987240008522930870253015346970633952070973638032198028278885425558417952906466779230844936151776138334742736856955579776692066749570145823594972200028416665116504466818444941486043115577996697571328688229895577664723007490492605168156259692430621703325336496925696162113320956955694646486394204851682525101479245960349682171938646866872765939003622245579269769775858840105125073312336505052940571727734654608704318933140165998596174396716064783738121854034903040094762898289343481606815961202023081558646254875901364449321373948346290237557075643783044693267647790222622895099011323666375748490356015871515191024994333987543936742719301942262958890083303255484896013359169297306537799867535102745611137019265336773628142026418238840432526945374568752942403048277629883132083306311894832759576304179768640189412964288996916979814396128306120636495038403317531848949534458573879186357807487449157092021603392370911385611331116674781258534671698368513521914309658140608907704862059683814871796623642341311272809578440089066840928796421747180395476415758239966513108296873382892570289676652610919971211105949987608069396524458696713775110818216984984742225272556924110418357529832068432562370631707181163744164986626893980216557806764612887634964321378399438412509127456675055712771429340811028036805575567347855864664667518262322263523537881123409082469493633949043911781016485960687109410499672792545170804872184468336048762212386900000152609953740552090327652173746036979520092262180275355976191092110018889426786842811410862765254747311396722646115338205360845965997571891917448398167913867148568066484685542752506556948047375737745060181090157161707466627504986310961200061700068410357916035047273696182158254219174418846734499003706865191548177101181175849202065829398975277840713992579033137556922357837050211606097856500100128980536908656263680855077803784337995928534470979873593382062256696399731980934795102682305940668942502160789710751209624396010772841400039988880271645111148365509870551679840405051051164548374981632083447730604494561229066399421926226448894222844755510635370275830923837219403548526727091100000980210465500173264966083958619625376501256200615342928069200152835029442655238673151578195807721824708709140237994904629743624143231393521918716411979564316403550966441552011728846735735598780594239664820715569350670178531520254091122519409830342102277290720235055249336603120651713887220977779612890360671456442884298029501376402667821185782299464038986995267541703936267702678434512617641831536205454107953560110026677821759892548111390834876453704045258279200956657861631044188161016540488786440451029152037201559506272710924199158454195730627996022070014690874994914512079276505516074207823002088630996969089036211715176638500428913890881947755399232595107177587693529121877055362742127170446026254229965958874319664449689713836258020562547135621449983671595222360274679908205944581252494019621886697150125139707947157241230243993972285733715488176310153804344318898799623980278054055526707494155082242474158984353577794336656306465853641911830506890835046416909276248016294624113446034666273012699584468899436424335753881753205789542554153410119978423232200092087789815977381461039010470883793408221402585406372233042378009711180166494459525837237235945475612304468799045555457993789593707415522649945151782881321201635969945146846614796101255677110659163417436124039914175186135495121118543625111006105838080912048574525095849653821618271144956669276393850937811777921978222828919971311162634105327416047440529224044766914106533524548688634935412259813189361309602481531059162886684268849757299663718266117707374845013917675159203092460368898852120879727596842033839087444204315745639914335283742449324555737463345036844656417670166954932690134691333002931167095482099025749992475031649675243928382332144893211758715664601080334920315321657755824612047233990798289564255934108332711133282400286132850475772374572076889946488558750287738636656494078608065425742157894748194445507230557955521214174842995326698836190802281661654088722260970589230448796684481885020752911295679369039706881536933713597012194020487286299968482951499679779066312336431553964789461332320981883095112758619943600899790748466871844817570867151725963984363213539573370701248984007817907533523349612484136608586704972107302807991134310020496379237859427749800820102399159226068515580190115712979602658598894971204896252510905804969472209158688678178301348652223056292273980940704817645206362303372321930658933786296015645909169423311373246902361531194440310815077851628490943069714655047954201120708510549354336909883838526203417747428790435551711406772462203314681374331458253279591053670217745193175476413509241504010006367024463449563059241326802095425369170792622722122866867318095946905870166161291514792682114175793094396650361371661621492347786349163681863347225236008900481619952244625131121093885640647825481078286602373274959344741717921028770459348767891400108367631017667824878743197608014198353427020109382087605111129696664056282557419752440256683883456283735095996139619478631959993178675458272261149146193966486173218592561883377240954603414107900687955781086209692390179116933384488237066525216557642802115170250761088038230446790610928064637051765449098616483373138680625929827022042316590176558941537373968610616044226959438443019491776061916097661551303641191782202864396791442344882752475149542943759888844203755345342779791754749839247846834476532422215797763448471571319776953372316572952737282992851876312396700205231255810423734170465806407455446674380855905656907926532889359176713296053957902699447545428122281501087056734005442895871541289673061652352438448166225663907203399774598384617595861360918546399395632840290461426674317212224244776258943370731242474182834575214532761976681494512551966943114948232644530627072547273379620968933277111540052053445233729607671481751151551555287197211840512147800202185543887128853315711463037956003759250839065305906497632025635400557081877372821726911541919196029690977764116463755388615629480791512338170551580613871004717233540013571278263269828531617423526003574638779273887319651478740165553681602616732376069598521395797703713440732135159899997602291713203145613988937397074202416288826471786739458922802154271727626041551437096532753625665236758479349087359985755850152075662030899115595641770036351472559322982392495119587705141428248260372941949073993594397869225477408951353456344840421620991052077701917782289583646471939556366196349175974220290703585998745977630577378006465099800388170440979161776745986717635325300450886194977805792237958392202133003421900920861870369161207017196536921226018499079218315493417312714319394325778085194747439061299531836396324443463096110165817201337323879846490379344652063060552220448687461423157955670032288687525348623498586276130772056741221182707699406346558561141323411793116911358202593967653066943361164172353416018376262563830623169255933789326382229249520396109915804811391009901724748393659970411218433831680955089551775418891876743014889103070563072940391798067798298931345452855464639621569696630401059853846168160312462582356340194264305242582789765496930136242547909906619993358602211374589771876012012972786747260406291608534154836594665887077856230370795798292799556972719931620871209467347026976159577494754083816888797224693726746385257758025145083858684675617102035768923578299562256465094957715203348174531174528694032316612730358733330377942738885603574942637070241092219619297758063686541107529787767300369648888840220143422702784464072074855318598849700072808754339073226953828216588450707203616908163964696141173042330114995203671426839509292630121406314753910754716328635980836006175077128649031193773563323754654237704365144916149761149961793942076282678440390613471787375221211614205214310759734799984622723674535557751788454708857435798699148823186802538728859114544733432845220562230275507696371489897701362282885404978828200798311414768940697708831093045666316479879284524445529865762883636726813102918359151030405488099860053762278546792920036810595712601836158434951956241309435014817026678503515214429340280915441916333694432159856168821925693165291867562300740872095599801020978246399616996195212938694129769236570597548581147502557057161833605613754118791185755410881585066253544311177436775502891125739812022616885879365905542776653676496565458101835112708836769707681894267276495748851854436476848928683962408724540356484947779941487406630411406474916542422899926589992048038282078356619469389327557841439931747844008467757512568734066268221196478844786036249405375968769003681200778897605244201311361863511718802063389477161920485425284309627802015574677958242409739158472922662549206025673297274733678870335262003893973683307349938611255609537740400029726560234195455851991977500877777257187751861174550619828236077420877420533583031318994105828441449109354752854241183726296011904252808324899349742793842653514609707899297921039807927290429028372822104962376163378975158214843822229171789614397073648198659343107095831049737847897443981982282068679354988419374461319210119882873940016061969646181423491588261684894177949220041729907775044576948560913176482459855931944249135422237551570003337623893932181104507919831896903711031915154454709131271662250706067739188924767849130855363603600082385468748855311382013210545873267967809280573531355675330032206120581320775289797177933541146479306727393931947571364587424608467232155198646148470613800399610104034001265941351981330911163644161232136783832996132627065858007758193857780003798838877369238966502632942717637963144599848750528312444449486978508012450105434258121718912213806708373121129351166618003599821117569287290821942736413794483215876203310089447338166454673644428976692151065221667700352163550104575568923118895827838923939538285531594563585111314371709089741478778737496003199865977092323304594886916961767535773544695760666920224611426329351005591732564951787854976265318302796850662986366241163492802920606578707732817866476799352343272205653011167634043402855823514184187411988229405933170629552302713445840839780060443486148529947680879588056427906286001499261947226514534646946171077486941819216963908749844148190142464997294258279269369492023823602105464754270719771626325538417699750430448057869395430237408227720837373966205412845383231066543112960682137302815885213521341374643502018366741205194442873469623720357639764175008583514558542954701531714241509980982220069772081583196392281155035511602915372408221678974134149910865262675216461128061347479482339984912379224710690026843719948171000727875497680815142735713602792441555458921186242834884641714946965412308876182870496885614439068942693574535300699021153301003920707668314058486212003428107036586013232438010175562774394619529909544420164436696911028411830827544594862379389838845628031602514437961856896842957940437042728029648314504673928625195162979846322998946979021814790100750988359618181800765674595591824370783029184388161384579078491117887114154819533866603530905181908409418454205970884322736930589247692952526686028830985509783582344672231383650880996517366081183854833850257762533921719391491908338255900283265568243714352429987175197706176120585040130324025193715706770835491139107602976871491700178104159295570395947209660396588886464895000746442139764975617151296028708860405156107323112909085562595662645395985600781074470599681867638829418691679537075902438822535861364969210234757299364160191265176166931755975986926343942220838964346824758698670690902880730442413816251187308284608855843669247169250499994955697948350642487321682795931670009054281316121554062011156822776301521311121238889659032564675688749382994363683020628733799415826445939691681874106969730920899812736133849915390105596033375629242080365960117098089811564431839693700209669090472641752906336690353132718498503326274006518916078765813669013121628955182363859824461412930233273672057177984328403308925663368012050437862286401226462765022473038271747997351509465208402201373999985140157523727048699493638024604033615243417706896837179990985331290824769989747943458336043558411269106585454083107890199809533070528765088969340981401579581984548326422749057041899218715843892560715948931172380398302443913286928043343712729971489394035215532051785550948226352489551425779119615771451267420654901941212182369339458194142346564612149863673455559844835240221422042538324300374821286523339952698926183052843468571221125327468594437165967778061128079113202898716879874765558688829633958636005175734321371585261293706191094679739211535950896217901223050211162165003399894138905731124991160548531818831751070880332180304798084197377167595293079808792802193766907079638546768915305128492250923901394856761860517656305271237688676024511707876997375448533817650320635766369025580019349916991605947109920290849400787039023922481792575767451243580749099852402165355646245650931403807622886400505402356871955943971016556080725528494377325008712151864044792831258541918374814534382625538473430646005874304742930752532376066465379754516881711418543358551499082083401242699115773537515578370697433869377351655597227359127068804487129600357789554076374826022377145918171063396888849685455727003854605940973250656098578056376618008208372039031956886909218101884941163864262667016913286343605108298951587205730265590386648483534552004551364529504967364126374770786458011532393064332899197961355517829976223700867577178854817817145594667550529099543198982750546690035375820566838289736119974725267899196243881048808062603188876279185636443820826529644095857230868195644601603710150545193989153064365916235146117005405843621327121920345728996894423559841572788351579207242643809640366014646649246406849062069094898160752322036017965378416194629839004149488488943307048675033294328229667615855915004419557190578532301443963307300915369893354295128799330310652613315103875569531934419686379559635045721124518245052424568891988396447737183844561224742282861186510258573268767518287220538079283002311992488726302317457533772248527338511756222786561064940194404281818630826181299356973031245619844233509387212137670738294820223985373950102180325962907396729408657009222372178963672456899951632099203074659744619871009226752734840294115701513282022368951597121885104672891705228391799280169210810074234125378744765200054613637641819774151175887164594337525101812088811140700201716923758556289662700341183272096889795560393126732927854986133170938686695104407921054421740537510876741137917906595796336642608355946525895229840729016462474259881798646400768267706709891949939961484290849621775976019519575353497740202673935475141211110871231602619811268473515601796275742536221231158019629362125769214908136617487366173865024435308906647587913861999686451378325765485268024184842981957777063858288615665559301377605300069300342773016397352645954625126133861220650890559068446654823212811819100181436476356380377242958475002743657151239696269138045979403701265290523349912028607054914028332011517658303485551360484937785248549660891469907827883666034457175599297983959956438376213070481870517341348288062153575529196519181175950172582400992119924787134949726642354184165947587089182595362860224427149641709276018479407313785573955728650338098816830076340320808996425967120017960161052380668330102478882292087538482473659603460021317438146372349959671046683289191875041541958630425894553525814538695372688761886204088941529925887562739804833658960017792074942184739256882295102762560338937832017159034831146114528932610852606878706023388911816368035063832941227804881604313472976203601404691018992043942442224098111017768585982589645106052967780323554962561190879587159187839267374885432195430460454603655282254603932479018111524091183964980222280878578753581211804806004392126209314893506541972341834752011221389749203589454630053803308252442019379790491787467062224616584237890240507830387258057293485324802423614927904649393605455296813069712503529590710827914820858766993145987027444222785789755747358288039474768177233928782015288978172090669869884045537312697165364216481937210859621376837821345739414936534821141981454845669084586625582330947735794479388641334484975922339002222346586801392262776612916149648907212593812083384587679659603377265359370288420191172928754402205238578120466666376320705732889859511552919220543835385810303431522688203474780131529753085136553520907335838104850922595648664090499037243968547423998791629848167912174625574695430483255638993407260688476875851491786361345473008004704312083750344773564844377724316153022898138176660270033834887735847790741006019632531431779343990305005216251879944095730967892098658718678744592885080568172562910704583064872676587093806892723728721945672517158108300353113530291988608760073163048044376747688268254068734484096747912651827774651566602894273865550342933137666263474973163690771464236910614866633958917965059894749642256958947810960933787637141360445943258110828184897949401606591688168950900933042068083119272503233663809856303680181655071069955465925781348378304418361928551755707540210953605275681423602715686906533158157198070141815342587179972968694999696740952637744303884766733051655401183457863339477782909408922780269893648264076220429483230169146557169932297470088016866006884008559806485470402112988231982692783293296252672821828776489592646916299806190629308922221568508520008198354529254574591744087362292327406971523955486783129016708712138167162096729249027188031347888334395760818812578038093473896783578049049626102154359029877933684772881699450516044715604082993258772896848800254855898807053145225634493266084693545919570269584913666141089997165285485418423813686907751694655329029416565921244394683261126575660335514450251207032501681730255662267654012180007437637994436641765348847135757202365339871599491874021074638576390386608664795786793319786406276510594412371917901673647389429615140883740540261189768170516048024562894609879972837138420681963343168998724745797470225392470209096540570936807264871425962313548747493293940564133860916620672711161962069835264590402179036952737077277501042802715888042833798610788402906783553992976283320450719680604487784396631936162532738328548765794761004440230855318493501893955213265190390545106732018455578790701630812406590933229859935800681298735830091829383645294474905720285772490933380240429029186222139412121841171778784192949623503915962114127080721378881247566377843743137891642088724214608817138805970811009217831898158990083698008535081105641000204442768740995110457456320263190430791879132153749910938501543721068052155738709526068161934602329413570820927167684651761336169788319440602760040846400743731305636599592381738074411876569032891904349131336234047514932168943138762240698424880707117816533710160881873167744688143840195800112904129272939103225237592560520989668943722394567631132964817579623976208781981920516539523358664937167729750486579498765808397140683312193279079030084280434217211737551396966008502302359028622394788085552273741566214774192327400901121015371123514279266732489140016390707300559885601463246242988180064098231939271572887988774057052978730782867552390552599749481906916967351401430499950717687613944494398670935301731270413247025177385759708303012543377097520373715743973553993092538084536297164302789673622098325179502574372562181700369328932411879117700410573108898073607608553276422893917450763138534520027933481897821235090563195132305481576272985546030063447237667770407705631989398054794587156193779012375017625537223056088264539877883602217998650827093726651274762290561428367684792072650412034998745008002776042080349520322444037239720899904341223150015052152960736160771432871862485931532428864757719699287507441568584609431243506281693688040023708276984425966384016965666853511282419730452766359126365744361464191208667509890430410960257495584589664322993608643378900933566271308086183632772877843530042925014502963262301528436427945277738677012059944702855644261104856593570053488465048300483531817749851997162340708758350255910753945381909326319730232084938112634909737253805723053262013355567578825381481458599615422902851718147529170862919864656410455919018667765816379474043974691809056702865044411076620657480471133644409504305982904760853575945952620294319478548584840672267888093661030091659077365222041739717048628068876353082516040032111663415760545588591659928422512205387759466570432588969575107039776550567201924210519520637838148482902333765110533486532522597349338597245242229221003352560730424300899377313606741706733655359579218940909229375541596996187140315401364197950783634728925831520489188045897673485384787771760821746737088804581688558136911227314855049261391848493040849420165570294050129161180630843597234562723873481997580111815491244037065485785905622777966075237947712454619883204167675654780411024143239451546051152991593933352414556357280176190604926942405325556152619616914532278221819621453097965070830130366324827021186338649484668195159160644983442347532646302056502650078014962121667209942058729458061284810018325880288806419126992455993791128106382058799826480991469044863789941350963123789684079389150131052670829012238231116271224502327690403127502172835648319011678305479996346247195144851316476797919563093247104553420866478386168330736445553681391832236269851143524561250624062983373733233080466104146826251398757239906619918363692575776092153819146857689688103357366322511610889490986100372350019145760544082048440750585903581641950711821349029819721979233452171658662540970155910663697799315604208819302745770295807359085989740064837229881469866356479788518172655352164975883174077185301546204074215863856947795293964724551402902765498286076144155415916503214356734205605013055240447327525350334751907868825470720726719194040353058450121598196777336557615016244141289704762419689235438817912136053639818841519415513794138445720557045549121909260333903662558080440169706520056608341704811525190486519184757391153165385812430874549847400204465145338390701750427279475174185867664520871018573823701783421155667432488055602468936578461781704977172454156268677777334111037105823380678093994110076105443001593671212302379001890009476978453038229417916481854331855153094900373866616578007136950815266376636314906070645432529975461704459714885858471517134541184562291807992127153281293927180152107175937658270171405591956846076010340911228360936504119156821840240285020531729112288085563332792665943413048637992446104568905745163542960829647198840986926080635614762055357044664318869546014165562628599061114867637376342382112231431037183181103844932113431793992278506454082250140813739777628267425728186949816980732184820399513421753534109300444328026452108177055649585951781251092503109936701911550950821428374176776173950868102877962549191802302530690341917784275592053994417293956792981011342753842964803328511828718753369016829906814715527724272098714109156227919773737309655766341032165543844822200689072827944683897969515168735285092376536836850714263028051411317513842768427740261209398351899007443742159743481881958893718029053565549033591329012061452822979298482526490162876960655750981098658766185919136349688466419788779716685719388676208434159446914578674255672253018339872583959239380223920806343852666154544572435807498866867494318929445236482847476579824066919152385423699403113253336271228704614867863500104972227485048922455878100532387921648427512684386983427101089478836201574399289182176559976327025199205582654401670850423389340420969313058189064859345266281869239035224803220290995215228841594440590654070249986540201814362637902112951344836843755596694647853805586555124600900314453800124384101203681880840142363162958425113555654615724784864534224493040831536771049506253436517658963036852623262779021923410809772429164504892395858080383625559731763306644780548629561381729373270962341029522691248024788165457017858676994778517526853519029617153064289793755421157514371257569524145247415294333883372147005685850941071282557206941234908912303081637550402233611140796582565613958512897344399447526195749200316089783070778929627093540994137114573580295907257347043060393129176683771154284734627755388974405362674644889839888532577545975473096105710071071603652372814066488454884765465413103450974001425487567248838585941606765056552930280767327831412315115821766007465700974419493140297898504765462584487125926290927533644477618667037922293664122558310589428033422901563303687040510909471452347801851136445020739060029726683069649552654634784688735904695617784994518378733339737112120531499307500816060715321713554819668572776161785770772808009563722660743697340554073421813027209211320125984614490286012870993613179791516098569742662180832250989290779385359938350304067779931151597822150433181109117941617712221050133580650640088035173452042321777384281978107366578323494702959446165406361200294837883007700368283308735652980529638420740597470853873284368465385063692622093333760683566085851525657850561524379869314994707523655611130112776718682852126009033821855969706353984623852543219724764086596456836144573497351859752798202932594797956727674655246653602368629661824072517808207889943349887056056397576945036775907216301705847988704137260019706819089713927058520392750606081792551441545135168544905107816573886182406957777909189584651812164388729350209065606359894410236158122504248119544379953264142554581753960656818358672855353016837148328755007382400008790802211262896717112569561284149833764375825699650705352827140597742554910320918340049643446464429236013122343927365706784341998862532064935622325454382230106319810782052900399493752575539261413037783899831595207560170589276164386244140202126125410060707201021411294724141279445061631360483985726036849892653142270361137757141956134922798515225752820780490582634365908183021173521228426200110824611201334998295677328400266345400624831737165631187553227663865761448337453507497867140256263303441371353835559319479830469842866911176248721077163280730937856696385739685680748547142065539769812299051595868685615937144453238273681830463559212148554552376633549741717933740039493646768729113265186619690544650070240082181529956356834684394645067381388622837224171965902234847786026419427380457087552274775650403325101398514823954467499867830861297852842867062537010290739913524902346992050502731309207256017729663987537697304806838633876796108407321895297185592723504498840708049474000094116423920914567628648699320088162276819455117366437208142293840687770882698952951366759006292370784310914918337161659246332053458831744722005649999996298442211705954035905238297687273687283071881281521285599062419150739810253794564553417180751030489988900830627786838012426703221145708168085828746049545903249136979759244011434235375469793679342885537488820256639868142565439746015419728507331111389413196757149771161999011178744171782173762081498831776841633426524558185146627966627404962092352190291060256866911284711182776189139864100923728343262724432271923707653859332465377356468801522853088383709869965219513574419906671741493710125079362452304594948452103204009727053843799272776372825509436982862401940238554402218511775769371177838489670917131084124577548789682170037049305934279959120350539289632730207600836202219281096141362764287978377020901736620260446506826340184582552085864019207783083837398723965113851267047416118927004676553302305706789570041929057282703625965357059651059627440257457730082538411232648261177945327628496639144757021369717619085942518119311560838322130684256694250022417314802917308474204763050285991269147125190796210846000447353981133059464231494732776973468525381979002779932845734385012452238762641314556438231351872833496384644530722764449127345974947426423808673851998318088867556029979673529649546103332482610862448806831389870843997303375599214754622806234707155652034727407453382885771633811435949275723784160223428614152708741306894582727416081047795458200474212023986443248551617629036229786082861475713247978177483238418487114868224352858082802355248561590509487339328838333146479546506647995110633819094078818661962654063865518707136246570286333674734005524963500832060548031214988571867055929510924407675422067625320823330349563843223223193733789547180829277632969038529164863510659385062332080694632407054903447689279416323697059635539317118260455773286979874548257174748432780644004346096188887885231589203832371358660100462065306598955360077089707935496098770313290765390359555632827931029668968808934393149081355817623848971236116861176910082074137994709210983469870095585100463300581890618342968676708231642920617728727322206215579740535762072395308064335570522116483883837829178309181662026263241191227061541763698972027982224025979757141319010710588068273530369230370537928723118877450257628183597405192138433975398299979842087593267747266634400970563804858839491195133554890032348856930583844150303668884816498831456647368718291289154845505539253663679645289720741672479898779366044892038134177251462192237284773724035380817103957754614021748915683297996457419776687197008872137926850826755142913194915577423284895299238072859584463707443246874657119031996808688100845570980827757645859979633712009862731231141551528267964806795550863450634237644636681180367668063933674748105271395608715564278063004802170651508319457327082911516911195876868884137826256695384280002264881066158431175508067372572212345433374137845355240627438642211037206906499043307992360080000888887003811140508769367036794451610253906596023420172845797356794481962947307958199430805640216143925335806167409585817424705900278183471104689669042824744709814925007182930703831634689756318593329533507925149094815221122110255434748266148405859205594729822250075818561293807059305466592738606065028915351096364739287145025174387353861939948661723015097765392677586169654994600977423346081963552251924657232695739308075108038295680612084523784835653843476110470625888068154110727070350694638274710184722908862757776087863248720231960490426692428219557204948969051732318456831610628191611013035734954263955110372559138009567193116884071618064198657799163384544188286612619170084622350203651806198400723886823127447994853594544553754151493705810019364580060312902769016019638715448288472495565087547519705235652710346029434311613041655598936911643665973281093408999539525519695516595166836485047129538513156563697588086893878998331503102163879849955270126396219328729888335283493974928900589762198578641273136120556247823852117079794491672335208788850179937164060080632805662138595650960295341381518556768438424444055082755872258228110823522773210663533375122830837230910079875881205243705056275885806740838775849394927363298694529917971162806246965597566117492513838431579669192574199142292381800327564408154642849247598659075920616287182019522424005155296161965721207364833401577977071381746207421024976862998256176472463850830689910008634052518423786878570660676746204233612995974720515969391790498538490368967144653664248072017485524425335314825747845877847740063269808915707571424770978300517216451462614803726704520431143844851082701964626670554369460740400676081400672830756254295417743105823825794829377708842796186388869416296701440279705749007765515520933919622145498952615080131722701116496087846931147548047152827906539626201337023226662984463938474960063941947782621658365898906451162574099111960464392470313399144455220563387801838712153992262508393280211532000338631421388804247195122038519105303838331177799006133509416791169756859402996462567083096834695905929163875766077954434182100575074284260914065841126611149344732690129604648948543071955535022337163087071229793164803250843170769521132247794486476207023122236700489442981856069513897845301712483685742989376386973542705536962913044407179130634880114180556126022512062722234040057275729710693548437234089912309319297279644241889386047345922490186758374616293070665624951228297409335737051255058301441186039138583686181930714622492198022664919412701078182032392500377988731087388943863109256240924752008430334168687166686241210123611417899190107799857702978356443991153873037958338025084087642920446865843324254399992358773589598190881580550832457279790041324847501121687131290595205522977010687103341934225259885207711711993913502556402572939281168314977062922874885985090347070886937080289638826738223269806927358774269463606435257045627696076911461383480220303640338633671179417295925611840961525344972999596129964448328969777471554070965396310416622347154555633096000628317258995878320392618289364374500896928428092717123759395329674952963943071632110261897163527399849427694802678442515396512002252601473452063760719642875082301235389146580957918289371012046352507284322437900845582947471591116685154239831477110269369599099620720811696028358520874926288509411381024810690482272744845991274006509490636588900164350193407128268623173344839295554551983249505675587717225821660435036180873582452205156751177728384796320252786133998581602965351672626305177314489131674684044928353906599156330544933514193472984278063904139831869453720882885126097186817849103810312436207055328496700811981232110188908022605880949914004229848349957784658184170777619317012930712015017316317406852344464821821056721613756113204960320203845562495066402507033992404184261286800250434216515936804003541889236458618740623397032736507418856269219565338186292951591478285805232427126403856822956317599596627069208399971502510724375303848285914003034943860712284950438355335555462583303527647633158545705332093723526999620403114274504525363408479528800808125457638884961287863780764091634136217694674346957609585194526240844229849057345250212005323687608905765740291377697107590733318748903834927995595373277626185431073877283462741235193678148275565024361991392371545928015790068385890230403557664806957904671247827837703573714908287587633181023843943607657056476342375563750655295986662292687335353459163575301628320220500299692181725806524432372523131332341536285298933232673909637656824466604455410982491537213303749435007710726343105320804198716503301317417386748325510254891169896696331096069602508973359319620119383567191788136942463692364396510321993458757257341035522592251217956185842015834468385903948570334193288395957047071846320335386107649509902856814387265411605114192766584958540519313635920822657730320348200117714577426558326787832897404961097797804917957112530372210993261101893822661401597137325911315025519366385517284428087245663722137978193496019864670747870799782450178916894516135349529197963604093492242406781747360416897103529475795259810180750855336228545740391980364335856953478732653083808972008168322102837714174965734229894336245273720665441851534919115727831457709688903823381828217260039434789231202266506107766749536301189353300591878343301058790962536375175043122111272394093051123554456465126230165191377383369700426744946088476897675370706307236216796682511059514016781145959726925912603648341616372529920980885596586081724395952560579720306917853138624086896106972798724195420892910094847698650300547418399255197966042194756745985230471333562061074476003921041361834076042047725062850044932071180659328761980897021355735962143221121304374606550686685748721668796806465435574265429019297226116708750867695993288282083634249328657952127152818739641173310906579823346111496596903193742342602824835292082489243217486204927045660615102205225537261105031345171161591800350147609011105601129355648968484251053453067504569858888597050195777677017213140257631688670007171076619880907424927128870328676331067124822610020915328842321964243672375671379297253196676148101602597065264186202228322944730858687002678872802648326265504412964664424175384440667165552443752791826337388526152521494934239091396036457678575698620070434045276244567920913134880771388396357950480529225807830382173413060670486421569162720397171828175972943773230589891292993040485004944419300951698218432325352084254803353538765147437702566263044884410291271616572348815309753735357752103029812206905755049981037778620533893721336852788210825050486171363942212313445417856850627974631222770938818730822453724334763836072303869317344332159776046485051148620682180388432072786719669431412894080063008036145587351153759476906583623434008512409839635178912150628229803760025071808739710239420660549457816981705225587386445765752960704982486202935373864155825397827179106482013154516040880917673423384070432827369377067927272092902136379035557424266019829892216672107201621617541997487203850541708085497799045061863823041479304091649127240522666579830606319960818627980891607923056557920289036613346858928481027517078072650100273631266021155435101617990018518611618616251160746634209783670837489906084014223926569719410048196848604354544947881581280526330526090531015194140688633947263564222418123827728871229752376582268061266011608535440064555368835755491634397292895347023397010650563168354731238350176647926675065280241024011844480594293951388221790257076822847589429180885977271870187504358706267513641159366928041137080863233084858244303000723628247160230174060465197474400667773876779657106971251969122836456119061234599517984107040353803911389040225877182921149196313367414310326938005392430164244129808115357069888057275900115406706848144622783987487242826470803010529096459036930892770030584647890582326394397474473020842517184688574007515449657788498345900047149777742384970156837391961995632791286593719968495276121857563865306255778389446457402236409868466395148700060653864522878892407616844777346489346686144385386553117288514200740031729846132306745211467679925688275896811055205290657831854719817651637947109901707010285865502803601969752923338680018767152023260866311226279597065086438073754018058256938332797966592721924188595062815654665385519167719276140538684362742457433096539187060698415647099133567750149863651262133768151746886273453958130706774770174949407487249773575870491335081567608143621396304330048230485952318063744631812473863858295480393558641375688463549375653263982211764771313872415354117097959495741241381514027600297250569671603794339609189519940453219487537887304596217229636722486415078702897695722349505294570965193098322318139696151298204799406467170456720099052950855349872139231074794036154129721876466398113708688730247253427598702833511448324433741067383699131428277627229316161063214190120086045033984450592220074851267335283476627297195445644100835545215098549828174394538052189832919113631128464769416505836396434508903407268659639287948501838832301135947553494509917410037310830251842584316532352184823459569870876764795643157477880324033387367165425868786704197693358841257403473998202363297900326162371588877121372431173353361503053380740188360416264278035276146335640112065866519224970097121275177773072207862182790067650749804558856637911909339103500524347513853644528789759972332142018443963058854390814480922485106573967535266901728274194867240510418712501712756316133645029254262339073483280283136275932129836466825837972942993877692073136497497962119899603460814165333888671001133829985079058807801995952734712135577070341023464870368481177851486042136263565430014686493029769426641083073114434997682495278952436299487628630893052411603070923458956332126139411933205570506615704514436332641845334082623948811207771024253318568547584479148959290795847457088636436627938240482921903586230749363688022696797455069889668894313884191914555183345326762566968451539124492522669660397318096738063349448393503465926897795779891361940753619134652082897617527027380756999467867102397429468822888008077060184651141123264834340473517840997875857779843596936691229644820015486080275766818359160429841170335814946758551709174114596634739651064880311772006147608266407526651880673002790890175580068804048306559153928818822036294864136289514279929521676568024604733593424955011288734240722136868324641584574336918218620906262275858670489874724529073504776275643468055730456777980492922109602085828095461319296421555303344173874081301341923079515548776298978910668126579364366260817433845608004209675745236467878759486992382845744654003780561799863668071035002115458971967617394960721226510939410488059981522668269634112587444341199456087383813196535785584421128804782958930676608127014366122364505279312094097305282980865088977419478222694425481183611034476259077522729315095106856866330333024799946687807623284503535847663505238637567096315309282122265608232587019719428582951981259827122652510658898166309309842164625190622436222615559641364355043338680788876323248886724623873919691216635733200641316407843206525845469443953239680045779166733332109582313369465993799719043987899105514186942036998743917866073030257833421704405406349082441848056448592295231461715153657816846580428765446670766388417047980362015628735192538538660094505593313578706151806034405589282376312861201824770829454545136602855908211177762104509676148593604878984481814834133995121458667246440144373864831021238917376909655062565751805099179933332183275468386092154334742363873784553012869500436313584252308471457765453165260505668126933594204914463607182452381316723500090988132565338721987549178277865257748580117793494807426764215796817316269721214589868288749462059592918127242682453337219388079817626554594279272028801008473587939209708078793228426288716928913836375764510604513970427058210229994535567167673436856684956716909309805112556965418634689992489001584170916033330734826961171016009347507137553199167974625352031275421123233205442599249129269327921608466827568570686893036205666656318435694631389828122412160083365806975609397043992220381214448005239653396430150429146933028656273925749167838119017456922457226354282290371909810929055334461765050423337116892806720406057794695367867182227767168376277858608358809585027241872916714651210021584281754295080998996127761907463585301854059468203707471156927501126311604938148033451595900991457846744624579521245490929838055134901852408635820642453890079757250069664642790784469855545087124657619703573141186719770535462356982485884397146374124284362539359746662080808546005806755492158337113560695263893739601434848755178794187854742414528882666850503181963825176101725592942955363134278675089193139599730727177807663091838175302603185447152704691055057984092742312014335616873388267888234624668961052716208706976009938730858718216341442763165073635124812089495587204346212956820389001409082270103892484356181829568668448656046937224862706261570469754261707351606276062541232969301538399298580078329573457118277730457028259832110347750186001092665219484170791809752363447110038652745800410776993231124378329858049156547566938743875857948552872211298200236920766086492998827103750386756840358155447284281533704012432762973762617136913639566223466130378814884625412457548389140725160114161410628841604417709135038336226830981429036455375184985460381344387951583131970445377716818837114950227730067058190976961889129374069611016321329549844024336303049516498751434263263035402623270150551038310648942461214530921341169887560771596560128542261034832717660323496845075531117146024500372312361208239376483855752201306614826022504158817646918306321277294613931800120561303715445587845165850017013959989899535427987917368974839785311833488510720178372792849677722195632411690032433521688585458612717233523449746902504774232968572825295864012083822574059585565112760355713468338893173652404010939706769183922135025337902611265115001105733285177746986043618544891344602184352047551960407810507478121149070691927866909089946442060884681807907230524041580628709072108232180676095161973356195649806877822092375560041867817594469636745156988781165332660072489800057825550232553995922950691918296346075587746815065695220271410578546564486064593856945916549059895871756310350326750557956814325786430636651225701511483211935879066056354098627331411933593535636257287775150704742448208274532088646653400468551277396002679764530822808459887390169672130445874485036203930329790529142266687486194236260081193745862917636520864796377269808463357198373809179060968705789904465763700847176005673854752783628400772262405529850924211176522130178971436811522903666812603439520635957118858621811437577508402183300661896408861400648265419499052049149139953888908983672133612293417060565398689436778489631742261345997862713825155451227598779876970382736193127052730809561276007127010015067543090956873896238222035248221343257017755879635657761472706480500961842390037849888533517979524299863922111063795498274703506481469271023161173431606998238321279824570973565068072576438919443535340449081093199577433906536726275018788370319099987626026804091000838715493624308006354600726860524111871081342368219539171731528094002701754659183160680505922811940190377000773527277848605798523613273278130225369347620204653516311755413822077986822922008542009575468460460060674275713870455822714215129345378928743376941265831268328731491837798730989029558115026158197380220040690802190362828157063092553411217343271157048235334378883969586403870203623298719072433563081739378178969325639622165805823955154048492863910382170911219898582549599012653823074257467582751844134557322087366973821922094783377610347263741481272275152786060511508733859067354749215683799915775699556442733633695267916911224480016779074324240475524526615927201844691987946600061601880643990840481197661413994672724471224668159308067287526396406445784733604473557019654963512927599541229162497427870769049575660656042185446400386391093402760838334247446030478313034358427354285481599373053239017300111353773139988355406768752635008677860434565864603469670707222114747895609002881791902100831894485454862542830780794495006208376202661472545041868055883226660103261659772213674204970511865282155961344289348429286210539998801333106249275377407426413680329156619925614195687700480649003873071464901416398952557715654506720927833310776279521714023009223829086437999300274835144728436141052354012711809733738119201508584696734987043204084342075528731635166265276708728498112855479472801783129708540477290559991370428994796266298940475556371067268850637535312111152698427729349419557214850253111211057608018806212206549407610961742441065869660081663674298346471254315909562528185382411869843552304747263989004096147193276989799189820801871386174694353500377480131492942922879277844552490218849041353265991666737115201795146812884599180043268233674750749169641564985898879616419908403748628364913313425482816350026143766765049512331415493996193718442673793015643388156370212415658857511749150087144776058804388431235420115326955388113647117955316958950969501241157764098542457767652545384663408490666197864941485367816283909759104417180759826763873172791607472381884637802512857318735237148403882037116433896977154531939730654912999615060132173559576960712964173644419352928513940393737086636620013256607295976397693019473595779776654429805607128334755385280122063359632984393896213759723749834038464051764046089344122009172609338787781159627238664602045439511935631523494057052327882212908968961730842619490052532896938648082223559742620626997209190093376125561919642844101107282887707470121699828679704965472941773006229389100583780095205225517727206156061112298258541989642196462396384241573641566842912628691017596775642847230997087480947544044324118924391868184819559118298659255802995942214669139235575841202869572191107523944342882049400442733135694609257934788123708969002935448551986063739762849993748451495122063498115878445979999980300807856083393833376536402483755812646180055679093068745812465061796406010209549734822943139096024501251002031165056701667391398130176447537081281575229340701396620718365376708834716391611519104834273927306958692589925070946207818342979391181785670634501526927197241654256583244583558772335598544527227406275210975264248576304683375788102586048699533316218473799078272608674181647556538015375968459701158111369875358377223831616297626663939784440306343244216355347832613547159536428985630327090050596917829971038522263430854747229411583546614260738067870703349239353767811869892352167722317863390605118534530769823281964586343145711755094501819361796441296666286028058386480617006573173403002518820874496717203950514159447016265197812792021703978761526937122228559558401202774073166640802967015244860847908137860613203715932920884085914143997590526031950979490881621822898994680129029895650295829320243789595757932952352819742049760443082791670326682447340212293528423567753672064888888164068298778539636500660320458061624757137889097948625708385280616501863262672324866881544291369101945847633716250725034311553742787845184357327081967531071205430985709052814432608935908110696043456802775718900437134072870007084367919275809483627057983641864168245808439217172221234200708582433615491136800212735772871545842016536744895431544775140589097123676493724979558878109077848174234958510438728912932902628071923977157254845404120151895572953360553037037104158781122326853891798895702739988944489827709727096434193103950415162501855742338395562854659273539810910137011032941856767517789621376272435855178443221565444045318915092593346606457431848747409049601952530360010511884472795510045146232291956836568938173919208311819270903993714190131995202488743529981437259788697764063618813491848144617371553351861470616449921542825054887211393145701044278716479442388670394007679760112764594888132746946853471226930268191407953983107551615201606528761528032633891351388111204026004779396063633085962616841373538368799107170411998801709656637995175637121828208395909665932643567478172526676301411771449271643291680628997404316801512741499032772089883494248081786162236523503596871581032359302889824026111228501884322133132968790319966927300928980695020260652423566273111097347285413411390506960037788549663322805338123336968032132462223468855455214448824452337756630094471933130892170618087952535453451396576735430191030108491927868967178989568876483141617778363916897325301492739497493171843818486843064118350827389478475569149755139889104789389713802847128771898106494326942854246215057885444336949692195993205098469123463600104314250646893852426496186447586665040807494719453282736350679665934418782062229217068050413099230595952284864281197043394767849702877351244901718922347838031969901345591666594543728917306635768258201629257161733297838568447582663413424272813114423347972682149804527374923611061409626421601133266247458406283157149664200346820488050921239055878009425878432952127968219013275621890742601746784224522361627373437969782253648423395733152777968822099164481333204749757940448139600896044820841840933299801510626482326405460086271784145399294967242457841076392675431146513486721254563940786193613554502302971775807762367796810617001482941422883951066640468199463400514430894518780556251992239016984872836078738988540359547925056154701630048042390957260612973815295556900656296926404194633267702135229761814762116939406857073174391854065732808868030160005533816626746180604143458436926030332152361974302891123417878589574220196160618186222530064928780212853507008867400745414795174146579395738750833334933932584539906231276879958830243405691333884924444911278129156147102255490338590284351433672067340555421422027247203648990547136080953244293680094921735065247819323754980634890869813056483291934560692375768946904417321057666040700944983050241107301035669576009480209773147820627375377401100100738748687136903001887231611769186218020996639943842632538703179110434014823837358780412239640551918771750704717869815064232026895763209930273336436081866305620853331963552647086807868224335933399904932248434118839589013715860446429665868169320397316712157944542000072609746138917121537939607510938101218191773897556207317142570951720903235564160734147979567113019373198184849963687240902392600135495412401558610881286479042345753350606115677371484927655088982151147217277066034665964239894885724562301882262592743356464398816049919622952372098478184956680345583885864804759227355668800294230563507643036563125491996528105163923259934287738199998591200029495396557784135497282438928181244406770004646042359958285774196367026349142005854975090160809835076755791918962071802455295783043603196396723624736389753540780084105114588321839103249992124148855028966543860457882566922083508023257310377816667017547503707575197914329924012988376117897826605209531034313052855463349894786570072447655361377165312924501897049130143371222929862173179901553382559150563303008337128210248100358946520115559154737589857197668325558435187141538707987501029796627205565207667877979488466038124029864005605485743404392968490126557613839389040123369259656850801109866512568038547113039867763452598729651695335980182292958893221861770364453371003190078889366264680321161421821511757841534860380250087138934514802451590172092192124896771443410909486819941629221508729071608819528261950226035784872931096631320368095798678894805595071953137825678401299321389898768606927177759648310179459929251389698858132034360511787285292226305412678697481309807849996293604954092799303248105974725698213247485207718173483340836077213672979689738841402938673480113193687774841102089863801347304440921790538931291663034989551840660884607463743490293708290299134401706246757479375375334894897352860354948375514807082343672082521605035546619427299346048466582806015573324161362829035465516689747797626548831735017672696753049992964380569074913435150717348613262870385687335657843448022964556235896555561824345870352069031305824802918611438675218475683743845334324382025517570537544369096960619441648283271459069272733335253046479029455762115125196440707467422436440069887615014876214920779517506732758334727205295432929950269007361228016814118141452371083905522548136400663520826020057132604698707056339049089650495449409366974441582793153181403348222790579661354223103887060686024675058732704303606431633826704178435738468189829780451858660094171577355038342480428070576790603492351571420186995319157682369996511881835449974278262090008759364124735510706633089964576793101060217638699175714379886171886755483207409792367304453190152980213338303232926307711690116903911243940328877182808776342965005751097780670226783979232176553386452897576194919135727125843876372148073462312461255095998433599978167515961810360393973360950659026402305866318427058233757415202547737477298786381929065092675051528486896362617557885303393758499086420776525239774914024292331278685235485395560962252903984330370405105277381719465939325925579608516840380595672628555677509203352202232962687621337987889911979142232986761851269121747442301769770609141391729702681933308811468529735532387863479522037901602944628129435889192085588789150819159177235570697456690360602797483833027115510348222868402431458027026109690990391276163902307684489358916186353863317027930533834925799365568878593081525332054188682506663284309543617449004564664284576450113789573198611534916927245795586959338955589650793556125482451376239951287423606645219847682005604229337499465229985659283500285774109651751071176666689278904713850963303774890719660039956699430352085766766963190729223173684617299983045046665233794554953261160082172382910378018766396339365199468714028038718718922312019014639775638970792292359487159208989651751061436643715779045004440354795837076934831250618926615438272706210277033761952531960439435187585356721290040538835847537041005474236580118567124926029313901948898648130755947104200071731280899473806666848086748804417118402282829065034234498672785481926365594346145766875845259251066548295358517390943836322042921071122912465984529584584905695240973697284870799971105829924977010130486117021305628241780070507167228679251664109242624613757170014256540377721498869412256673091109986920222726035247453948653628155481381704831314879777824236421676092278703476452221044605998807894844233213732997331746072709155100492404303951183691077437224461593710654547804025452110808597522884075513636947590539450153383577568937772852449342917184022591471238885820478588241904524790082828938166570601897494077416796431548994002182929204553699759763367897500202174017605705059534962409209881793675140988725144742498551442084837843281383181094010615280877080716483039053509737195049546434916227630649338881907656867160821534635965345945016235678465168895372198398036522300936858651025430068743992397883509337764958036483490876039398075236328917693998112559631359394653808759653209744589294724041807133871583371188412292933865238400879777891161071360973913741372713226702883081767472056162556987386788712413135886905589076643965594213912018785195547197477561614483551127738582452552437320927631290683751736992032370182828748513811078810863977784261950827218618649314957561151463102709387101145858982601425960166431089707083483574981165825055891709608721534123644638867224986462162744458959046976635469638719629467479243882795105928343639974939640643056159623244368865906296283884438831736823719228771047908014180082156598925367956674178068476653611559839373511817045684104284728624359188671075228122453964406914478999067099613989049635709216188481987745152811926190677787912991871845164634598455674529182485031086328677006566706091319457104885697565145256072019344773138449332824357481531084930939050771315328284624420256645058328258893620375572317414463163661141269877453114980138914277641513870832588594378155570614172196682238937264846273752888620003369874676442069168654469473981070202374283447947861797596874512902339942693731938048997713850897200126074293965768752815708323424922530828974486098992592013143943196391055372326705303669004718344528794697418075554148416899745002894500945276793335329281509142702777764171668011284193526439849380041594288700978806973255910969516937070054082904586476221357357446103801887262097164046813397809454059362967031695059490206040557542783075058300582168454883117577740173947402097828880077041896931762506541120141590015954369764443346760733022717427142113086960763712023565312787986684439805162666266766160982891538582022554882178565718963567159442967597612605948139538223415781704778754514842666149126801688091440610588287686630147446717135854216844779915488017715869010103200751881916369972084636522381227796166769727409366718958279102327329388564528691112802980937741178621573171323629126821060824249860943389269161186430515940312827903090803907025622776529061143544385514271457526077928734291560474393375285967674078461271151193692832599222563255765654118403935222465410007482506696220239938488244156607807405068041816690419549941549369116224490541536735914997116082734551196788220379716781823175784170716473329949967684582962176084921781999386635542595661774373273017644069444755189757235172564958269750113808369330255240637863514755528037725893883935175678233645024438531550400889962063606027192818937643269032746739946963324301065366803560923552393209296496216061126536196666492470177484821830682370229996320387049154865712780116892355936008603306945908758829207795339731279280012350022635284041974627440595834049621783201525002472180017136705286652806563670483983428274891470998533369471761559547369386926481558186229281908829991229779554780870988789380279655653735939812555452118111239233626973600895035906719154466759827120075479746297010281865988618445929714942434104314992285198716543812845618513074801677204137014026303681014311086101455116851533328986105294230975750210355744648976673617619815892501452181630153500499129780270830871670301133781691071117089821513764037665482512189412184309366283331890324844051645097257062782159745678058457373737452608519469980644827505208952750150441206672370208138811583798310101749980612701332559050553928201060808039311185535227661521081190925351184501464065842002467765853476476241652525512141873080839723192581175078235838959047462739964302023765685708752846523252910057299063441995516387981387852783817662357981017013212330772275729755524917868418960593875439176806261292194182113346395109246152793141708541983398604315072290419892583573809172350709441765406745801661025191795283773260437883217612335009622780445746752996119330772906356467667604450714118460688190719655247523998319254127726151656868737927131847010607282062034523453508773986144466865132676991616132058425906632002091728385844806657072165291983696021048183165980424677641870981305941107489877677668490761955908209801708255613263165904980573915017631346013142311214607115543365060438317441430459548649565682287659413967295981197192600528440278654628403318498569082053959111665631929794887501478774299165333807887225433648054993244672949614344018652048067186680981309397843084331234628893070392703223982927167232777098470224142783587945778374076267591254727877105551067969026887852749853341218666262604042716175378689301233786031334147532896633461117578472167592218304069149969181298559932846350039545605959292230456937287184497565674558219737321408295839113856155354513540184084753913793234346712986070834146537312546337989924301808269881531819747890335417499398514774218180996512758846311267152547218610004322593035226058343211904515117050912283716061844952007401168478875779232385320123897525006777521745340269803562172793643186134901003766880519582547787855024120695341573651651489139357724581443110651384971106093828134731452542509528263647179109112089902459497628224261262337684676034907302201061848840038665036168698459949663028451461125166091218623113309946784880810108033533615259824535971921397992949049021887944120841053521611122016845638156590340065159478882337650229908672669437765154121288338918644400046958030364801353585806800900076632680820789539821599588909656399209103999700435587052815740746210920278349399354418565971683340565413499129785467405184837782030845197512648381253642799119673055257684861692015429304671293072981713417100538945846141582900308650808733699212999149329674269627322830577395752503898839138477878908802603224618676670771969372888188585861127763500394078041917331963940618919782305210561988389960479479585285609537625656740956893966920705116907575241305820609572791561460491755440680504513660366335583735213143510453534574325377004563396047112353295937338450301020185572574701200732406006671477738042006490066011212530796340551965994991915781328719867798944984350576899504312538404765520020207418417263469173357324746203074205056536978834911211886843895433032401676141468403488354938517746219267829710414980502288378912018940907817189135846984699214749462338696361393528202901094681225756243283417956690249601528650423348753706878016007918770697852106835838817723781695330696268588839645314819834478797078715402049254017652664090394788342223483353928523967043508558660793295658050284907591525916762703125545231697107192245415062419905528543422444277595315160562809891870071132568152629092734287580637859349299088570883095414111845427881447372478762307454397748732005394018958365825046602078196440450526055030558643308573460709441486635570816588435135373839951529974645875519521656677330665236038339867340936796746959038654958931299075287801547763099035968001397462501339554303611310016536357274442141471558843962471392200395330364622001552800341692388965873237341803806570101301503640959883180680355201160551097894678117712188504488865655997618955906251946345437398268840106495679739985562628219781325713565489963788068112517910964671085624100637086070397799619614189106150482476863650011003079669342234623719021759998570351972767406124840226152104426134730537992925844984274466449241878226956317090508614730614130839653641024403584559553989697544923266892103401168096994449195974916386356721745007013594325621819850695074168095026662871513025069430542583857499654583034364433864325101010656681218872742416862627516670401360862736766420001629389867396516795213099024987551622718926171979930360335383433556274682158758329058645126159872824941098213791198937170428632081116619708811939275753006406645224451418835343351939748073465288967769055358091050869770682721484765771779091122290789714598218009786369352900005652325294950583142031966800496921536063731446731195056035817467228830184319701905312927425512600261821346401610356870514448396311831210239405504176587516146963451659886433184537383180694137653299670947088699208468065328032600399141793884533705868585538884517958916315899684238233966006563001335217992214402299628434656294901544015736006654015162836316726238090943716501064557551447686729106105974218074418368390997734590659639654130414543615575104455510215071610752957432693396978817468786364489985864889732598211823902731203882846062736539812813412697593545032662804256079531059623671637798082113604889487605988531303561792137657130725246100568629727519818192442722568845150748341024690524135248094354819117990723977434030133739559261329619409296787835852579466931732092820411581664897104160911903633948131945454331549918807645927958766573915641121065867578344167524104589259607494479892794215874899153980635955743243692911483625350411000458767717297268585075573814476740306432526082220836356019194846209378744264000684728879657303506142223681535841122347606658418925804101433398712709429641898697431165296174387710763744805893787369916027443872334614393961920321974909461201444467143840946614976362322582858635780586158571187593986219335019428801663896738930175713092157689870613106294426413189819793553386722527081750539577263490464267426019154204060643502129424489232091564451052254772906792329854169248719988597421466050570843873592531676655131039777754842318089888813286560890720846735932729834323448743455158969155055053810870914201046674895131861834146895124003822764949056187874255141319633951949243511176434792233910480289518675278104965970589973525565958557092926083368159882819552768603824374917497668193208476783485187737879161589606968283730814416967488316095482188290927248437506988787395555333673711368159187079807454929706701468454205383716378050532065436112569770984024808446841785451068443083763138017463293638001918078588443625160809385628543493947552401333329728898141053321725107557036513124930978835198915435538139838537278212880089202240035947335785971561419897811928370133369312705376765888792942541615909745185662598240546527898363722465781825517433507160746146120057635021870066074873361579439451961404838771401872709919210339832782381887499193668147254152271861674660999576477857788690456321783208071689786444719900534500786740452513864890811706425043008608010444531621471086486775363408186320196246611043246931028292945642088162485324043257207630183070236003391661106313462886293466956757938225204410406637371883000176328803780754616812201012654645150904067476381454474815619610339609455277524298488756892428980311397052888265456923611356166200216468400992327332106117266608638177175724566649785479559142671246746952884027152277653919338602326719928655392473403561950617130416667730674111455261848906519744383455688518022973354241898120413729310521531096586102385706980556273337627276332285888917343037474094069905736517254736630150115549970661563983651632439858300774513421366844875074116461585885633600980005820705732511038542646071912494106006125288890394872379421702768999698111274308940754630953992155334556531058944848974040172095447812846767304733761394341821200827162878449398707995947880443141957891413089078838382424889707557952409243651672396611532273694242772301142884531054641628535623957269745820957344894678071129256903194408455676163782415975773353821012313990808172291858456958827720789530966268177244701914991991437606669607317895636831139428117305723650115696954304933901348176043633147731340617685209284981898350457592179327463308761240464512665795140453135894064788613093983462892237385030917372866833565686991948701950121255282450165052817103332395690803954596984304708732092463006431216393108662160572344293550345234555586479751379062782508690008648883199258615379884900082377062439882013795724697479919042951376303338260965839001960534606107065953925190095508131272341454843646209567969584326757615756107634313871251579287503006866185251530806894247319997224977203095104731801951205544214726797269288508833365688330702747607973979042874742963538334664619682312340834955900795645531172520154142554431700093612480802011789236561263828481826566139730441781661331981628859478608562360835110928924357517599171069716203206497524139704484735981887228222231448345926589173224215968800077143284237297365084658862583945452679243106046267031718303582904792769061773397964224641826588807297957640850300138481710286440004533181396469670630823419979556573045386696404776832105234081777503480223380544874060883315635254378787543779740698874205451285526196648294501227751452432809877303113272572816252770159984180927668462094521020649941482351983782233595892765968939745080844763243955795063327703191777423920863122997605255890184039566749655546586031961927349112317127094956966096427721228345704851102525928564151222883990603674441040031335122869314016770858223741466276455134552711277456448238919888819640993088430975321990366115297217115902482102122944040988213304245314486325465391190728724255568333725644371339367220548698500306380294448797030388542696802752935763524828278509142047790212352717756962905400160381014065394825990858632977870081614695720396878147822854456523412750043289110579461227143000458671553328073761421591277254055422472790048354677737098405413494056161792987863915990796211401237550471449545326039355350660172351436825356690378905852418493430270437036309356171033547572316038806622706663822421267638460130458478261037088379983535029795811165099985660086264158678367217029520360471909015024427949393217182155464445864938295585640682478137218311315738744473960489768700174652987122320004792669746149280306981460223656469361869812705774026676428235441485689223125044535098826237553536461560999269926985336539959173112860766281528848901380846013467254003012113215638392802525811308894923995850047622283578563399057277275763335337981301748740861954297592207574218482737225939436068491807356781199259496034876348828571558825758599777639532992304707541973163628065974332315217391604813591880424629929700970233322610281891589914615029405935790678932515370169692959331548463734229640984351776708673437207170741492526041640646258324696050876501418434107987223364746162786997501671740281856065798539478493776502941978824748503355679060966768539098550480407716215225711013318161453783954216888867651124323866713537921996358022942311849058405248334055462879922220267962073710193390210181218564266404712604455997201706491329950429320953466488139746967600869191731621518882209956858439940359373524442579041426622769970044609023323359265910348307657056976403845776869906910131348941363522567722673208347518944677668218561753826688355369907432459830797266718678281726990401706657058218255823839949659993885565422094329621279321722772518267098848468917194738656757364271211950242139058253162947379705351066335765151537198051681901141594062887384972326876955566087557139491608865555083903616889699809483326079723579811761482604804326388882113680337861939317388439466218255048633620159459525691518964371558011905806849635175441514395356336244812973733618486941143096129848713070376290064054045253716796276325252946021314527686012156402404132911174960706254725511803364860811678982534641451838242475266372700806020657444090490188464996428113271124411219309512305935617210791442858836598924067693719037764141957478160965467046931741604326080812114848528122908355815690947309207901793510975104334691129023385254712300803455813735126805136705152582977675679362528780305668040017165990802453546601087034526021312416806266948525794453810119079447426150304143035404884890157960405457312342088585062364726298058284781818882315713548334506755866096856029762146561090329000305935841690063546055006373110086861283345456410830190182960977244986729432437867457955247996744603766175424719907395866387769038513181555991591707636844258515763201977938214195881573036442605390525363939968305762116871307875207833545316196643916291411910053002906722091675170774031699080696674990777422042901216622319075679934521093201223820587811015316575614772738331981414572699035350520808821161520840768617865033326594229938229298323800244117729919708913581424317700170333858276880546269611791405687132133409275601048725951822419852647249853808310201568319395743612518569310814292657857904672370477977723321812101793977890519209029274053777579746137884715344172585825367250053835335010020271080894313366153652129518070556817356686913905035619312513843954881738401297703453944002806368977958017175037083856339115421795218562976339636704084546498063550544444782534311722626287171337815865885837086174284147995815632638961012988067513637746199671494914596774559853955165003071068446263471274302317528362163223897753748587067628815031119012767164381995400896485187261692922288382484926895224217209853356279136765166158347399475747252460511168341199744476601325829538870647353449136629332235487448287490766932394964573213727221835363893029389462917568923484054373062228162064856445579275256821045829988545054613116130999286143505770028126940584980443924405713776311889009178051397353822255607385770823211121672867236216779771961363819733490206341611132760333252577723507300370392558219378295675411519475728714628378699143494257569104018451373547290973710331293018218177199007385107797495476827290714195024568863143819288317143048610406728048181770200535615406505551531433874116932403895519294619841770078885329962850380004971515827102226062423141143023455202856662547403605454568472373168875901931414180601873919952230887773377021634117319645536095014932819594890611515808177680726617104310307337609941412871656268151879655584906897948578935444968123957800872310106800300052835627755843427470718243607651585303560164382405175042369630497434175048083254247367333094894812948424693201170540771409699857248323134996072989098033317508481650814765868220195861203768008698390617573600591451536944351285077455980613010134791106235550580878821848667495019474253983270351083254994920409375625433111254903986606353047443601748342156333538741168228010964073657561634628266588396107605226122777300719956781191693853966066392366150310433761146398964142986683644443290904316076315952218594646291731106350741982111128620491869833724963795232972578900245645490097894116953135709235555922832500949040474720159121961245874370270024522618940027975900481700472686350028302909617135763352178670705109037053104848942792228706388526318213956474778850837256295983039527046745309378342024244906033712944384451527216550234103362142868339170173151715564573189558936167165733186304237303133260638404320333078001111451215410248848193916307859396483898197776701456892718967337516388593741374981624057612333585699775963286484418370910822097961981618659087654243240584594220339368221467967641131213870124625824388114349837549790961793858114352231807833200290671379342606163697625776562473432320660176702723105163827158143241102697090225455311721133420277292688153845250707206302698974952818160242278781528098200086218787634923859511643538025504478422060002742919923818717383862676774784172374981727167500193183804073141143224122371001415037038293858814814273359441143695669913569403430238348547174963928103840110903214287883423197838320743260015718353575178367967281279866231431629370048680693736736093775515463160025708232010627849899897803158503506401552708045607864687142101662714586462380358209209513407136252285614112381660386497998498068396887214781519489094440591220661406145680165687084559013410584623161151307974986288507599619383970402955858006220999647000609737090142470997900674774789888995132378761397868834796443266410005005733745980001132790117797479051252861923312724714225606631267696389883683919743322497073442421844364283287299963230278716976407824836815961720916309081154696594055134370852357901263151014384508327055240742191924931810405278771758885622073669306531941692373037569794726976401665767984533102771744927500560088506513467275049703243370682174582868264959503606268350226119855009908171563771496174603604198259219589664261521611674205145340225261835843800489971381765684312607310201184637419553551137550889093046785173937173032658355098842908444698849409758520932124282404876426808017563245749262287076780839777461633280207211366015121975405398959590595823578668865089975307248545165137680352251043457032671200831559740185491653900845593518933662809337395887454295327684798153138482333561984489401967321286081539282364285302205066598107105732772573628845960530884971667875998618481085345101706835354897902621371264751331112965138561648056102415272190445052453730081887485255275642463321652819326338645012468791228631344753525537295134200699331104428790055215970373865665122849396997896460251341426149939355713587857534844685227416934891839197548174931046707384726917062855458493297246659089923817373294536024246587860551841377416313694112429860362033042519633754269699388293781166280094179710680787481869048271995727166755672710213965162297238244971011034061772200354840047562128047315945749600175588727642057670163968669413058986231960093041669137758955934776431175634760230235616738651568860769670579518342694135280185784491041724825800274497219007318436337289680782314076754464019067639040337341210783457697601967525809758612738690488444153256148498883452581278986649687711525197286000264052589876960033888875957637559046295357772963964278168669891995022821430335974344045943153685231120031201395126344943711605993969219667352445270490017864565578031284521723291990920954293912653691372263771074956434407308947384741956026957858264492307044812457685130406003939252241059782942265975752775848415173154456162121080771723861387879912793179393415970841025268822010032469107659712211204562121156556310973017311583538718271338583207593624122350339802635547440527584672317688083740074869270119425392412307702151510913490485221003505404432693471447791935665578756923819390991606864495508457311139663209102901226027975257268853393287569821836964294478866720246047327292051464792625304107526927725320060376616407324680634319676256070366262368276938561440553908114502855221030766104315723468656610346982529880992307400617947404910003031088253658120032568819423660229275995871559173167566384386152926446950185317330237341846041070960954554473748683972099764253240644436432265522632170245883709686528779562667597353574001637244623628534303853299192721058878870138967325383461828583402220186218540561794134166582201854415859855964779261807677616481591326778345010389849253013893678077266862225306401652002801322551233277419468079552577724549820463107316406553438580430309712784824910796813748403609015491407947883260501019456090188876296577117861826086183497710233692090184744638144850056795397468075936920864134748854773905568081035368172919919055504101244757216061032017196553290669610921691962053330021764465448270571868372102351947571695650489074917509171982478209498092464908124332964037974006501467131551705787153097730984970229726641751231263258260517610232206557890650824278096178942132358751454967120609682197219121082667508605094051592563618740379577737956067858130503551178093970394956960592822896248663288746185059245603068412093487050273520153368424964294221277668902469214240519911104282849715305045609325816068910418971057980722439516648118485870731190630104090464911317719257695217117164537398624235821564827508235093042710933927813288319874767385592974405563061568843100310151533367495558611039782278031930732863470424380948068370981636651423955664568437575269518941767938719517103998399814613972156649298326158449802015351176020904130022664590451198327905895948550408851471500441758122908535699880592166397945663898573857386769111228420375483483084783355596353022551272441110544604930257226744676606158128269542580346850986685552341851348297578674843216482444906506261307278610953242412685378604678647025177519103740784649852928668602184892792678408863509190091585785273325785752216891420047452378227725796651037914881444380737898651561702679853717216563323351876857941258901130655723054267278307835797586790077129774391165362292040669387292339120617373190554362024075867576202230910074814580902317920392306133116193617994854264036689060243333378585127490362180359333325669055497495930063944599577356482102824501860683966242900285527312774768140643347194900793297483404208582228142057232201521069444388821057993060585907836156273576604876508479651710529717889784205722404888870043225901657798567935604490332639113603105602416475348787075375288413501207561604865582431096702757625589503562124799425622552372598825854455036721365305664200508022050868313667537512789092516101394117435764477462167608364970225600289427471307317853076149436061921121648864631927850986911424453097849543763133489895326877725302392907719466900922703801405110530938637681649280761429242404836865584827962529655004786894810532661745118508518767210522688272044889902118566094097191376526067131070064380060543203784575479521945428871411651248643614001929784852701869810828327211810364118616841853702358596735365254442063709918000788072901844110253898306201650447170531127594307657522665784460427533917913585575751928722253874969952931546757198984185875369758210457365192235876272078344734649262380187159199435865584370291751378970455459558034986915179038275953266549634789141216841545821159025411058971739241778548571451732351149443636016076131038723944532431910136431260919265861801793226626226629215208425814832219694507147173165867985368090865388403251776050554826960859241475980525139777495975534129744322472517152629839262789917389201849697451697564702167693755954392464250269400054123476809665319309707868155622061521295753194993854410006281618372316940289856992564453011253677395004507776471326164496124501311811297793052992012576672543480648917018354705373589789228048611141236794707492440423676277167948290792933125412317753309864831805778832173835809238504980913727165265369929895649274260345217888318463289667222540723047053005165946506962033329780694840171101769126418698643754335913182455810919865461486269922340026909586856829064217344871103072165791817647990578331017637430045450330856015224769946528877008865612680899706160064345556380330085994194138888849612127509812602985643838231771516674009809342963578157742654301278561457755805566623273246427915800114783570573819406299388139175186641524747613369174095611940440702358589072926615879838607280158525302899837634606496873485292186320670059769694649436000218312632124863034408487539298072292225582041670237206696638832353742870862059817863039874719780652034611272206905557143754958034154115469775470941357933825648151649893742849951759035441916468553483970765844323917371583013570359779160213424520829610864426594841335986003307254298730266247508398101704779972383011489763131019343915510015421027845922135359617773758216704706647607402838753883371111592383238512698102875490429674079479709113875246361802013572494789389825785191227798510966812601661523438743765431126016284291550885199001984165956770746337632679928525997916884305131784658151669219870134397195843818662606686939137075838299673757253492837160537155369247686533451363432551915427040745195288653964312932644856373489584154428460770663706173387114877488040387634771914766335675218539887790388181442593823148234861675182442219706096223147151582979562983365194373659978827181206540093512873519225505131012441691180501727704683565619810253100823869828238746501454105130545247968916176649497660108516827038938241733913228594297247341020276207749598752924992711927218972400917812617104268700303169037050210235693920669300157776265326924124825933349044648167183077445303920785474116475943189041917541787453700289593105626953762949488203335937595936330851730039057126199269550441965718713069061647173293983461029532065581125577575532233086805431651010945138305032361215218772725794979341425524056995975640486503464869425777189151897178584947322147013892579207482749395645770950140121882181852668485779683840685772536631291595155851531706665098337138433917338731261721751598137418871092992510627839345882730976262794458922278470062210052050004506354468581115606119097528913459888691837069370533399275731129948925248722487233080923778750093245219123907748897612751405210190661140076388621560057900520523110878738745852015697309166019507319786634360833092473562901750258712896275005004834017088835055879872170380965647656702468399246361769414760336792956485964418866343950689668748748604249414079411673123994374855561567622925776631916108384338179811989065598909825369103484110657686611390430145339189525041406534957110119933260704890350788981461141898623774063755479289182210685892287275979786398289449481258223773789709035712326937107694339531213337401503971761545094164137862887079945995701926235246840031021541975954527265666653831691542700424243047156251527572435290189889895950516507756010356201916893050498761783046925788817647787712159548267434624700848749950877284585233581915698066031562686781794840746173839517768343842481484883946144304144011739383274664322806162944601624304206659144815613022165130889298850001200628933378213364106496591827683716470062838946671566394029334867880517452346687464849017993916368272980342860237823839855595727881085596784949374012250352712598001129094511768011041113173385570331131387790836404824243974232963784488792361967089887612094997387944207580474191546649741398366880313148389142345522868728478133705495487720271684710634856343175127341824040413904090448129421780336124282564596173688275134858290655310250263788881168031971594535588512316403292199408020238187470736182888550922985870078190123759553710662201728319259270620207981238364139015897049446999065652632237938047561861251029017457882498776085327220122293223030564215149558832158098697639836996907355478854236671897778366827906154884992383820530440423491650208533881447870783925490836130718233672197794036532421253321422671515482082245049302828818980704427344998173293893222686825461725912606447979101378467110940224672680337618843807496966137088787655214162013128622709634307565288588374826054555542186405439650643877764691025196854723435033356363352854876878926929265204658066246291257034662607110624938451243000114655167824796250920751237262304752604325614824512673910158369301392473678634865098251819389569100817636534503642831177485979418048960071413461722158840816665733154941723510999247044744028570556651393158572643839170023707411812131014408885753802061308770493757565028890948905563684733612130460164752142935924891734043846349775847765144438454289521725682249176620538808272675858159489418892813355403732309046443180949661273030168888104898551812129924797231881089892636994959799621429154552267282105510550865993059866244760079870978514320877411976307629255379630236179741365404008925986075011845269525925023463517881771378285493771095105438315812974469782877815467495920050354762574370325887271295241829438462366632164022512703084008196873654828195737385260580356144343920628109600667617128383815641106688283357378039993253953112993134997793815631706719212908771756064245964985016459091168380428881171020278111436966756309636158819308729017376612942191656627813450522771018848893485999120745494544778110777828012005464398900505867226045459816186918043362701640609971730840999987238300709463501238958030275023869743157282291066384336428111423639645764896947524647651065206583299906506822309447135455590863733639724215988920385771790691994219226649110452087033634902156771453632204262063366710454769980928911632030960505647949994951520390979860602702375134042791637054643195534784944910583285280717861843835838302682226904518754857095561214708103990009653221950546057397305398270632032772890425760171130232776617250634209716553898197274409685034371957853912847559536875441819470098432053899409880832212001505255134240468311287708181693044092096188143817347414078861622222262016792682607994553458679090666694623557663100974734829836062846059972426005409622659789582778315683666966690468116060762057676733085120903524760518812474130454980614832351024053505896378885407780921512639680198306332363199798970008227437392548179478839091945782364662069560318216500252169783131118792153599503760303811241012956206611530264494302344661992541930453587441594082081411415029321642901464703737748236063100842719229297828295947445726608852597460638025588125906704963450146193430864906055511657167462976121712244081183194008808275817499324061841405394971852111762343005146913271877290185658333139315618412728209200512166675187485134644878723759692075368955807061151453543091537385405883896339812421148634091249400006437620307964260885806456448110704170943047187499162321009493451061655736035332641929261024036142350222644683131950688543005814171826824113487282724781930270883369466187871768688851024552637254555255712204093797464977688724770178136092473099461973988031853980713249868904175519253537139982383806139580604634911165963523913032395395155974380808054643351175220210242824722773445796622995598204096474299327107341004328158868673434949177313462900864500987043632867542747194702926630988800604976071693342296919205408508541973024695136708517324664040996471464086485782278276969379157510654098824936489917613652882482148217817563059596890162579695211384452481888133868993879093799302814216363491989611852204660674168889107798913717179841740081664659295128442559875786077691423764742349457551613071641774265271408124004791537259906920033427527165135606181502306049941122121138542863270652252578859051012858884577166158180178660443613972134183254992209853965421232033702351656623194837328552922534823010280884473715196323370066796020805469181291349921997937246902666774471006143435985864338893893790170720551180760639964040354111445301824275395004559969865822490802563569946169640837265794624103115909061696993909930230029847928762172751467872821605571308770852721979772727318833900388291472421055552619676592260583042213364946588444850367313137928871392111096567763347369019095600621628150535759198869730616288879955477223147630111479166894302782573390105564636870945541934146674155887612629708383625661265465161495589606946806753091942560598389364930581611789190546174195040730739359075284779245312975647079607379676842142776251619920335853426728586639076548503190160448903914243320518918431041549665731114677291537060202786711614570215981363965135150334324333448055408662342698638504921871058989413057097209809969917575992816969551638054330639487052188940669821376510080838660027361233801903160013514800729918240957437810844645122894256897508518485429219404655660133192757592169403760834075887513601851252201196574790936016175374312610560553581821623201483243021580556414584370444853642070533079011670945368184524411907259456591461340922929536265011339976057003184218611639556951548638839923860808995417131916578745553473803400247791082800795537038182492509738950313870157024586491139525966487658312287781863118146644064259675106010974808337460139597973794478260652893986950720820883687308489504860928123119372351084497454322651638908032381387351559821056901727130391862927686526827922557039481680864774093467687524506214983595825496542275911054469958421050863947689337586826280642868656252958309682763876526988258910088729246538048893156137604400316078025396815584930163814671537953629780851890759963804102114239911238763371589829100899351131837794493777273984582033087806185532790643419873848495623743162056160681227383605042168420608021695864545388084105138912349183211395062430093598871504481571784254478537991604010573549031584413875053351876948341905968407577480200243058738138739930041007196310624780927166988255393109706024229038424844730820414988847948832813615780766245438595665610111576760089018571313456616631348386929297992160061733453984985494704395497780441442774824848723663982813379445615375670225724161396865214569959863941495980524712072020648809740070582915352819754226089489456178326437681701456063115728947664059746364470402716750892448192677277424873423988362976340144616323959167323646885363222535972075188667909083111084347396928561982103514454533586079469103768587642941139376715450945763067630967853333699649062662218920671117767005512729774702535640200265781354916223180447508285532324468091956098467159503702097642661654670275980138783159125689728989356725982117861253059036757779619552631511179007667606087499403812698231863173011696494305687763193498346072444343654820406549123569007673001817992208834476911568610923198313764276981379579980775884369397459331678099364968689267377922189150756007824115641902807007890952424504483872755337726660961637546420718339268520598906921509904645626266899051646412012113007789817013427335036990894487737410093362118169897861543151170665847414602191629139094054524328494612154210018825717549672998557259208125822325314100572196215728185768788782065741109156279227647229377359496553483597257519997390875642722596312237297561269317165735910338498090632087727071864845442362968237202867457445206272770646268011911843412310961503165213911155990175099149969094314074205853020634009728377867617206265193355968941527066919252826287531213567204085733896210735095128095753806451806699282633516702978287910058130090385302997671896453920667660977222183463401385286085444663071001016369976494822000070680466589207670926020843617772850868492310968578381661341298885077761366139668120906024514016358006203187209249887734363517632105954564905733955495000882671069888892286487599096998377101281030905864367749827738459311543331037273607986411366245642868810648339787012469949606563988046662266872729305712902024585743708250715839268996801132298007429950319399422844906282205061575153405982953556133772505612069079814009900360939884930565868668669155920238547102549367946445532334946432079017490270852108792543712276642244729870217014950671068077244690886531496265009789317140207209663659603532545658137934512160167767452136984884014252570339054592410842448339012313716632882541498151651848696347549013516964415374180221187874346382175552070762405473120453983570935399313391317582627778048487757334604904782756940640048339454809515535149556401834043853514861849400149780436277751962562044217889202798184892769718706710501347026140478064361492704155681073357460051820993976999054366728743959345364626158055781289954596029384828892842302001340840294201946601738546886018043111110290603330122844135819533705801266013675996299591482122096659958532924187624173753044166025766700216376591352880611918872844154126452025772463505827200765498454307347018232606863727282570051597373452085122855046072544914566753945004077444594246966460400347251720815003665316438751086080720478387092878793203961665578535095999930705775816057066901609505667049087098655196203223405447129647508444787476727621338386430947052603971297436656778348839061746902546483686080622420062526695925987501088807245296172052307829669598834060481175301969920347005924805429861466235316662114212688646511120173099890287924969644276093191175819386923637261095145716426862916911069115315256384127225600012888383424444262187662590525677345449713310922947459797479494743206385111657739341952905100642552339197652794403796596722557768834608113542772488330621146870091066005234165394513144864594265547003147467753289243133603243756380735501135350426988263001502796256435126427970006451076333711821385106183299918572354044428084899399499174910313208167758883523657983960845342576306223329710842335617213102814278305398316981533102983113718716043499556534154306120844578816365977206841039185041635236545923479939529823690792285209121080244707151771781686964496661835290451294955128241366605971628649678695041870270637016103775189785016806322393103457340526366526819187215555240373454084326922585883606921922833384824714479478383614080015327333172962710864576415138860609492680842747447885769198704226082258780917041602920848625351995811557881261957983942609934205924073928873613048862439137680735848783429659647835780682266134823241797088834297293275670606823359128046984757236812692858128386326905095033247402523798229236756020105222340990844504102460936800145896451664443111669364943007637367379514681960100278060646372198370915449911039147128972883048645980194178912796289148244036321679774475462087765691135847865162746924518126241575282092072173216129511264885533852813781919706982904604813322734268038542782940553958240437046679041490383390582439225221807716548308275194062118325623958445226332331901330301910529227716575161386398913568894890284941625098727769127905759861058841061730431178326835264318861802426156526060819885975407634627679748683730243729327004575822794699316312368256305793312701007248190545318283651308696214934610900665056635399394476146644118129634449693593715538445568925327827433387850570249394872229891277521292016412860532219996206566699742025541024979580281284023752050067939041874966719788728565453243675697759209579378925690989541761728660697460971769839207963041955881596725099708987887905760130926571091933646448716788971048272238334177114541158038205752714969052026068240023952309214293886480263997206976029205680458924836412885856043662899760970205951146171468728124446270499512746844089159332920402790975381469436890720016669696891357567002059682771522584310889209725514744685860955633621278567694857601580652863686008350245519837139852733082234839523985655344473981153503788678021446487105186732076617698373438565160381735411282498670465833616918338365049474441395316703992568129942035851616223604048901427857694081998039601085017218862927998487427618077327081890241695361943470831037777642587089229252458572951536115456561344795887856317671681933756285099186873643380827558262443833268436914865394273501573503110386019445857899842517035317519500917614047691563341319474549311629226712907724386368014665505314640913827479855894073292503562365489227982698422411842700374025120797321895267206988865039855697966728692020503269835073318406959877200426078389316940746267924368218724545298876597588845716021657232835198790520167928908750576520828887147112774810869138265765338991183379135541345277425046000322304572485781455308686337343660067021874452342295214560444394458630353730455731449954052504647997804228660105664044282247768480372874666913338530504698044200849706162177206906480681396457789693591033272098116088468616208297167236410834827812677654148989340086503542403501806085741588236728794452244828582872820554985908907695562682828612664538143695909658725897992545833233205966200864854861109901544737894003340596017471925860160070730068058849141975861322442591190039494036436999783555981886776247989176518438102667953993739394697491700499740216368198872581492943198121542329735530949667548488138911577791401414678254043249215859402205160690313856294717665377738806911698435242056273390475294576857652324392214220002094564680768854912945157067334819637069398436657559328778486172234055700913882058736721908063923180547595446657163867686479679032933682313894223188951742440540728882766607498627245136777272230652308966790665275276904177347232681010223668186068620821870789086148137346881582599978993743994185338170549900022729398753625829688974770429925348290841740179042650328001382130769545709711037140877382337143857946101198340697820864155399127408339367169311029645954646028966709317750050091545350297147601366482735843537649525046263746701045858295323297129469091305727881212709453204832768924396491087366044190188973192023339796677259181993871410343806951383818439037488883834627170516804372530957453525201894678146049047827684984125013064471882640036963754099508726110857777995196225136884077867809695279069191106595536183789955384062253768242849664667878867566041207102010658742663381165620237252324215304282324864645844455981221477998518636257846116825761098655754881798301333399956010522693133796156012529507914640159238832827786701430119394657879918514354451368518479891039410319935434642848584432245326948373849339769037322891657816866868268799778339697884102635102359259020616249042045773551315568766860881609209069991184135295627077779005212249145857413517704230405558618763057604014038603257952465930803624628637617062499644878339011351630445116755317678032496672723797669820988352841063750418060254861343061816617657756110140579524734561347030743002716186000005304419847232621599034908359743898231044221622421677275273885100253799138521527997780894837036160263197195030141533199360241604816616424097519574905801848861537356242426112931474638868261340932936530698103985252195596271378660890301144394085571385321242147022522952009879797865441103764075583718144387168035227000077373967651306885548627610449567578151961794051501249740401367866986781779740110961866712964447192271528190085845383828097297707458952878476664623778032264260163224936109601098273309145637567469806557025808216824864278520193721610271633605308665048132061193654665288825961243110396762938372450149656200522258200826664959680828522846913759391959426470083583593712238808799697109491905161137455132464819184050126466073487503316616665719406433670539101695188002353510979100699407008424247407914005872864005722743225469040511707699048238693304057602868985398728509990857776182091763580943598772607133906757689670555697985983562431480474396516646345420599458127057357455120327263164240438850990048254936536466344268444482652218089134654242698677385290824718378175382189361982077331886385767838438132265967374408839739704741884429101131711939529717146748940832400041817934764002202902848902088447256875429951753106497142847812736301188183415716733217618047134571140108049534582582037614199922866222828454166178348406562682858174999615936084591518896628639003827512396914240364282310188376640216446535799511812619846696570158351079951253699195439539107301097391497024387808131658383222422379579915791721613741761319178408464531141283068584859990778436185234195664141666748831817073406122475615939354404152330101043009717355961975791785577660654417802559063202528747619736605603178549390126935208664014372756579884527179056116031174239187647449534431237029386432478726601688659550227249875298523720471564982678499937994035016871706797332531441306076246302232636430713958435318780225319560925559248984219538230500966872199091005944806088268774952030758212746610617671298032153184527411099236006745003847046978716195523885716399426441170876617544572876307502132272465540067379229029198744725818992076236647273686745061655479379045097583371354929591751390395246497163006682088126498232349695107550645673990059474896074498132497716610991994293747220538873875122367054184677749449212179277524645028421099908783213623146571155896721729435000865385916230368602981941608343496113285498069471508427823824737158111435314506314974572229240080464221818741781198798401119151749692888610709870753960748452840975502033293303584146253300636285358397254417624303366161509040249011380891078536006788077153857285918052605667495814755265997443614688674988410702256756913508312527738988008190480788616241740173799240553996253171582230063511588236129114927043139699660933219217412671137006132307726168992909535126383566514720380191822393241062054836828838791028124753426561949529944393045271929245598852835076320274030191970254020946412031808804452448643621166625119759658438130528018194601934132166200014745092411937129937075092314678778803477061277370504007196271807932468497355176141311232378791357545764374031905359071736665907599595815402263515581895341442189786180901701817532509248824700563075733768323084669140092135429895809696146969811214338973226479887317432779855905988204560186733105671540820440394868712058137965983777986166231676881231883951622968661373835447466062328581520716974674132815469867785121483363962922852703934009280717646259773222031187095303539392705501883761003228913929621350049856435163663730258697174539764517996648402210390019622359659800575426930558910806417813544039548631023007334134474343031435589341039230812486409798299850336929211663437752286781176567869834327480095735184437578004736210207482767477547867149937764583184813354956250260201686228230341769401502914605557499050607771190525204278478559293465134104937924954112232607137467031435239876759331404059340518039623055610805593190219008737760210051891528820296216340005871182694948545260124554001877801844072730789989056960240024732449225506906163850819742164477076341538379986791814675077872126056580827531696782892172096619149119392372800397748555806708540590869990581188359074641773149791507409708811580545178899004297600623532553251689270954930581791564689189091852851454404931404479076566278960264001057513946459334767306046588295015180937696379907457925787802798510853147657800223350193022471995939800218606226929468826816229318815736949486191456682413528388600159666406906867614633897647660145642294462797326667796097564421846914051964909280685642375018129871626211349629888888511330650055676993766132830680623356611133830653717399153850561306601734266252971977209594757992056383408570455183507719479899245879595732121397364283575082655811178632679997438234345674655963256976353264760188768398394196365553937955404782875709063380991083351750111362067273822543565423075603225845640045100300023769553743406201094030801091480840065306984341819155460715045776050178059612974091421189343229979344000161329555293763755659257798606794030671482975678740937923166301783974899334322283685079021105258265061781760383142667750780593763525477737468834728544555148442008873115552587191225531485789247768687934765071784498124367190173103409162612744860309693437689459748267171342270468627449352472099765084898464377610393308015362440083676833316665649748403280450492406331970972296083020259075578611709151024990420966885519089401637219892992552180744025962066838029856713538276854871386759905468953218960184682355076903916142622823488036064600933529119854593065174997044201882053775111278550168406702174245795002514519844963617760913879530507095234415280558841155396871916320240237318927229796113028999268980234002709830923010722407769372295896795701356365047895191774416850334926459617606441854538884880597150981630389919423934006668276234851199890074685785037802898815215223617961382561033986929235736394001190907039467428909737404131731061790164065099037656228344466838065140546268416799480281016804687842809492347916945637867119635827928235513163705280778503534851403676835077062389358583276530414808065775742346015976897969200474566955287963752356700034522881720571191617694231210125790206317689998119285535588966866630362296644306775667790498271453912730455610233846691299677569451105131004496737267366822776171727535448158828490041590821082581872818527088147303262009564804758671787953604652846981625947498669689235500952357866346695539259193425299313287463824651870681568662953292788339350793680840522275841788103640800017537845351800920618223354164614436104028170000114829668222592888125240444025344719829483299984053798320908840902267682339144496543828873390150405345709882496151739008624027356555869643956893541324654309870372176639871576535955326401265482303457309951268568004907308811545220077609576695618193735337991012190908296780236344588521152356659309660289584916703604203148089018976349891059804086623893671716441382097197025044147762690127288508736898651765814747978267130897578154027411732954995246956623815679111655407071567004540448174238540116692549400930244014863116353140022568350774007147325809227209489963326403766055978451963713483148996766394033226150136363607939143188225764747995204630369079321381498858781960459514723030191192307154825814724297296060396235759284210379688627251670584721706843918288197723420545027325195935087974761190065502292726215532317793450775001681806555532572850434085005090147208673913090258448667168271829451656696987521350705770213998280049732393906445728668894582810478108479349168873084604092246522115658068516066777622183449733111567043532723405332372110735302307069748461128842981698372943546605227517505632923062150505176040974008942096868784721172561772223764242212086658391064644669268248238607820468902541888274978551873729116820624289793285299672486505041350483929922195123228014639173115025746200014475435987779800539982810700730580103779653783790251796060208980315961995908893629336976153057251501232674447006982944898880604284092545562343182136518642182667005070051859511111070809159111259666798701884614897680973609932097385583344780379959919284464600398838706724673637824413525837703830589231934435767676770871326453798464168482719349002862761629137501840551727750033410163955894477258147773261953406087923764537574045759684503348981610050296889393860803609548208598563996797241641049173088277580056548533138157010222036047905455057936101261475761608680139758970446215602327134007997637460890019353447956945404598860876146336450339542662724193924726458413251595298266961906363038481529162815124073102431785714000222847289658412030102645470990580993403429542836239455924198439617849913320486925920706585431166231346147536672810250001119149848713774100924198852554448112777513465153617322700919322144156721258215514671189025521953023893629962595223173068592346409574022104239049410878738627101990076186639353261966462273426998789965763540086995715693601901401575798505023276176892617459138223886441155891987516300001507199117504818838264328979715150192555218676696183503602350491866858748584308062072913039076877482729857573040713840880497412067575404978771272172488077162028036031029809016568033236299385519826259603876912334715221435119004527646491352852800168578147480612096027266607035113670303302093072659567947351492059879034008497268507724871681496935241162618477215139311473273081184236120020518983969208966070790137091675989183927311294355076194005141351041843083217220722333970010319471269179658896484382047933656360638310182113829455475812420390254039055179074639867405286804691883064718731874565730439193056965044297388580607436960472900623369680508479615022308678450742086718213799765042610317548515859541829157572619942071249894781044807143802138115274964907464106499384766900835253375624275485756855856773271916316024387159388148306325312528026374341850836843296223088031156726314110815784350443881553425846844459029242018181522568772873234478773187833134192116919265660139943859635411485951355179556352809225929245527756886893929951034975695403926983980993808124843480397855859154938059213557444967817625297651383408622027614539334135607594098676180405186107650748185332949374249801476998731572663834362191814541056552912651419766219216464289624583103336706811992991139976229497877900069156469813330982579378397496507208584265667786815108785331712155621372836233230662211572715541830765291210912996278414376862217086394986923973227182283086350495864605353782562891929217214878096538000804105316665138528126687324529754183056674138684175458837228045682680982354060646559645367160618084981470797584426475018922567168363163159868144331009799874119794382146584481265820227740052943788173016227786003894523695468949185010348821452683740773075871856092671580371059642206829624079144234727536910231345160227138783916117368433302341108113012634839908099552709657241914321673607460592763658483068100726777683466725184775634141964915014943831152194683082365670369623230061200437956661403642675643522776508937901391338919257975001186611103742487307329296766032663260894167448763978637520975142986658286486218756381590266142347645624700357704310964168759044017271631659269521564974563780669966791246311275326579990657045888584539338051118008133674710210079772738751024438827126311699092427646788999829041915197779163937410424631683691780647342394115454786840044782663486173441022028254546011385897414352254998940449476709432955832321364986323480032738804938553551571311858063298463610819105386415848087621890551313275969187431131123754284608232006731420176878742926949947451619939290159166164514459426282212689974231327942797048016583318088937352078269602199528086583760759121286762036360100463045511433652816569312091604069122774995404400336253226060353836333849458400461510760656159302405444889605366191326991602816306825544204667445562071384620543966795571733262474368252764324336369704311732804042788331615607866957441232158897489691771333449421359304623622297622144598652761213064005175553298679659861545933086313615639320339195700903867432686817723697150510470065966545291187374465808319950176837840474163448863729422719009972102907815469262846499869609858110476206773503762469847299361555733134232033161044384664856572057230696732318715892320066730931502797863051962990559292575127187680747739477481243366374464163269137692470405947677897814644790925118364014139857790342731831694307901026345249727766015247463191300978767358911616206878530299396544192499371096022554483463002343580478607613414729634044977638369681368665870018085934593707392774964710632931949305116499549119245405128766670270065216354909137429405857659065188984332887313547221707069845120465429995572417846421428444240645642949629535334715057347460815929209010440434944026671046189513799897064152403095095184718543467087749430226865749920100068271180950398530309064487439444698161612003075980030715711183629253473505906662972889449359703624556457499821510226256779380231310111396154534396995971391892431340908536293522663792720115509470807678557969377194383778378901547707679661111226829853372181954969555484974896488062710508592577260096420715135708606316086344860939077009965281123180000318586684206426095434695274503550691287779906729043100577277541738163551811768346545252469187121696004528243169677136174744489638094229498538073120046409852938848279508826196880763154275370239627480196891273031948724095065660591251729811605243375173652211843536298139730380642779472250039006631540591526532822290674960887047823749124649409330958629325355064556737093750814572520491643874436572758566263566644449026126104385176702722965971582743317920246160654079962382407455334225562515959893123220071505174716420505433233805668629759926345389216900490430644389230375041596591260309898928044886248810431554111107910367980430347734283582566640192132542020263942815643574674247006580045185499444176127787193908574667227432201164759960494530322079656039914314097681176186551145815144178776390626249565469733118213569231257470933169530228824818619343736485314048087280640535248828415912189914771736572308220664048376859627528309466941525156087178777644643118214159690799755598427132017964672528039417502805702290808435781235889273919781279788815442502249300840743133880133387018815807714594502438693512142661093152138325694131934442603845151230841018967494807667419314985258730028104950179647153751117598713052443191298385118597533340313207279821354349692090331654291112009554797956286691063306338023766051691413179539047935895314318741009906610186313879260375256484933153599564117493814417388396161284344827902752029766884963383515699909232021287128656630268891676280761237213599153315966897129657499942867295781166374511676332438687373795788801114218243565961984883646913245078667790053724465187944209517942093206683355736211514082691046702377746647110604797152596615903202233189993902627049544421582273643927153915571122173782599330320044745599682345515488235823274158120999791626096621246273890044039717387828138136487241091607839801657206788694617664709686867144793403898167172900729567030933808063408536372465797218421161741719723037885372096341837975796396150191999278254582047563063945024286953654924569187597869557966009980019130619489691918046162978256547104840769625369885863249167845963452891551488234492089159810221011668879527986751877233887537406091846712355150130580860608308838197823191998518862461498527466227470704729462580540608160489213549900326611269770131371006512087677289521406662342329480436105771272240375519034586362760521793394430406469343777092906835679815978893070590394347399830459472393610824850158805870649717074068845957703917238212896665179669192285405023067926472373233021772717680719436431829963931181558702349481292160881313278762356889945872945773682426812277117407845007936717996813842511266064619153698770891192386181631510174357498917022567590076010083843774678255347388112916096036424424523716368018812607762040912995326812013214154666718044665539629326340371984905662545474082297462812726847935179412967152140835482822383445943613785222413058164880854873714379123315610477706152074057395345891722609906011829767846592608887397972620222419208271241010071983993468080301526928068663416014264913248645508816762727399712323793516833133643479497354791883965924751222822008011048441920725756579535429775101276090109196981545443269790820616293472122757444993169820737581812287939893127540678732675483210833774533177265303216835643346332502654261579656571335138557222056241273192278295011469758790309059488559393769215102164391381160419730337654419417392401897116696651305914920666985011897527659186999400631738790235331139506320243892903383705639483426699259220427123049033020193255031617503959037251048699329508921861739541510221494120632121217490089388552586727478752512972713857089283049273134878967418522376310016074819083408751294631370204250359037058258191532016776526388706868628775330591847547036743329726492462545861380154591215124511774566108989338908311658032732066956212259814219508795725090608661942787752702720250079670643530233773674184426588041649808321385157949098671832323165142553734924353427738134226499420697926735642794370465921334446253331353716694551352499930271758270051729225968065188672394555719629593103307978985621380039452668926544334809277917111435327570626114943384321422391446436124628442788324634498752001897824353225930574329911019432887043229523703490076430152275943333321861793045628691370167645678989464130600705418506040438774551848912927283490459754496892782835550452690805318077984370015083691951433561232924320143918602786761400889515869911301186446176469628201991737516484571941737112780558581191468095747157162193974803444605180215858317766177350861094020430158295868842161807494786529964911900316451550437647270125445390948077473403826856413085918789717405220598415389820153221817058021173937514555064281600454315505387304935876065961431334065035465119597710982145915526641828231049589839031975972496088999042974279228482312122233334994384375137617433013236119394425093804639711773450155701353511968458323080343716879611157432277608099473401988396705068327209495688150640716243418168951736859829355169967114251432807820399600084096770243113968376476610891558599576913289115269423270193055788809220034854246040783700853994046483480331258248800843162164624116474245849343511098023264609905968312475283356853480117904750590646824229664524016396800257388679451140135106067167733566485847227070123002632408764618881156014637517030150547720369463218075551821666760678963503502259269953759676137215434520109574329468524845084229120069909056011894367280917679722583654386134754377602822820950899224131767861031590443869105554612306126559999606477881003350407561990562790632698819308740925348725618228679023891428691994590931537305287842659648493087660122488813641140058581616901118337643329475614619928203854863056066902875147994785517580563831948198023862487459146968502826728334932380567583541451980617345479852091117789547117203391760304880380107301842313910195222701295709257256509257510092204257447413854960010670483357030021492239901103046288390627246590596898425712527752890324301199469636763111761070880426842638541471056573222016806215147528482795534701101962414128090722297726333870751963755758368710091597658150478112835937480914831756388980977629907813927806649998607508745178706388501903523531237007607301845514804392303900320178252356719484040995483775497554406238438351815681718196513856825158740296501297344725962147017855113967392029152247237068648068457843217449812359969793120888693843697821515856070759486725359287160217042079415341840274494562605281422547214906828784571065047231920174922034467922377930187466753811339844963497238576719071198232450420126255564659439157069850895059772378082350121138236678429813408315873179988289053072753111290269048970738584761947284218419335238206812180409236374400448262201392804240427974120399179386602054268339073929771547003419744262543838253755773877826270611164630567211413115380040079835645507072564319897644595631566637002783092545164346050248612726068205403231840725900891082414419886622348529083256469273127216790960105760710706025255333929957128253525547284946517944916215384404432040391597817563295437181232800971554292315204704885139021010684153890453981976128983962010660211264416867038724526913130409809964450799720628581599527928483713468187250484898332588986864251305468288254962132242391456001758115676394821767953492987524986543985047260530447514398266808375394863908932172624869621207497595105564833142427046545694658483975873640158750617250056985120849005258234645829912173602304894039413773593726955394302777489522018367742711897755447860653361112227732963359243259154615302215236722854133763080322505999720943147121238345505607191393888518746553925031414965999807044684876567907423384325891810198553724800614693364669174707498072360723507914479206734524317587073799955950012757764111492336368667260005483601604418106529027577046972258058658852960827067173987390125876907078991946075377662375805915281630830217472072852288056388472523519347787098548508512004660597850510063827679839339673891958997598219787046995161962209306709253517631459119335844341689619037403075615132946225030745194571521992276988656353237843560145771614260502229091252674150283863320276303033550025834744895240652546088354933983317276485615569341237073438977874442198860883866209954355408158452216274391924620427032860486809767244165718485461640502499465820550999852261060141901636833860542643754876411062583238252175252686964103786856859699854227913545790308922680391011394223155905923649780535090234859379725808630324602353008778218704550013558704873384645988317330914227068861550976311214751086013620575750875376444955364565109204683863583056580453680966380229161678722727095550759629979843066508324504728016009195435433937500956075884618155191958054623376742773848885517464147809137980346460302280268348980367410550998594984642726565984899581654010461817717625464638048806800558245433480742155469713027590265566951327084971478972309208249159267780468794798159339247478723863561450935727481790927709249673662247134597562375346864000104520162082231038989379814789267379715918469492861952611309692465589408037780470216438868113964058476831058916410679444196233118583707229342152210228523177036065515955005900375531321912282897450942970123517950576613604267391818582587817142188897311400437625100342473569448938376751163205248902711604414021667726983308139980791506871478247490435743385752093506095259179087798763672681968548713071639764917124176519058059057838654503414765026782579830894325452315703600747074139002733688647380334929788644077810854099037387023985992181580720448215301372376173611642090168013916297141059793126589393935538395423747879238111568939784780155554673555136047529110359895253620614988491497306811727339770633707085158478194752177934241770238619348519269125792812258045700061094237735044867430288007313195383510859367785071048773666763094900498152629824851027757995892579722009789484755105865683616209728955221024480711261781127349120163914909461014709954836080228707661659218830255284035633025277396981540739019275339437673695898656041986565920493628569841783943303051411460078163242296987252735715166978267035318455490602970860844578248839603296193348160232692448209305289286629294627880716487759729638016918066277425353087753945682400502694088618848801062465265797279022537244336781423995292934005811863713073891801921922419445225355188735692034544107709886553885536089673814360904440756720602936410284916864104718657570807424897704426386967356576047062435030167267982323425787980723739642814945436881811488832674290760467531139749842584870443370945301176676342867567392024478623005703579408994083985155286734694030258968352251687159332399422179921550594398180942220698912608117848733296690444098502688535643938921148633442976208098272852327424742594776485996288370885796803369714544207957621655772252815353829046353916995484738619484867347645875908930959574407582734875413729340775981037350103983272802405026065991965744853425252677567264665186269892566630728102550930609056773396843738229868846156247302575788572851492589870067028789740155598262531391449101391272911296149031674104624547184065120933094164316941614601328344297441697479736060657523569807495382080269497455139158510572683046916249455907701846314951962754613983662590253547266056925094409548528118698377339998755077476728397750232943906593499304958350818622490182133397391223490969677672183615303711388214003390132328425491944101436436367638532246445271446874266685285375267094519351268225810206697858140495327331042060454280969164821407492660033558994349634171380881005513305873959704444401357856756390239588354582445005845250680193319697110297642231837672456794870001782421740130696842995639983036504055185235314704582857867496239536468656630328260843573535195283941098081979434774586576292457414468143214219535514739427006545183481595720200521457586283972734126022787090040063114938284120863309126860493281011926189592756347541989424779265291019260123077445235506178733926148205216824327164443969172548446813427384480555881435095618095080969341073287321884614749688237384036804255054404748735173171603685397749069489707167852913840916273074530415281338570771382177802780962950549896464056576370097493894450751988722947716321339559594656088145238903484067673899073875525248730344670589595687865306265763470395374669696468758571323945775567436947351908616922154876780420117612376686255481192931453739835157639396369358040802538858172494246129614208712155536109109826250795507772023487965711893697203352128826556802400554317593984975853928835214795529067768412278832568972725879759650710673219936386413469730816324739063562862034119853203950451999843176217088424960293180276812877336194954523349047032417473310575876981192337466529392894118910450528495120490990479037634498721891901697961768207624060528815152835958623271727826062259337710566582919094799219713354130473031094173288256607617876246541430606046844683263329759625970208375042183140940738023690382031149358607631506859176694691265371796172006003244473414759771128500018578770685829527260265779955212808364616166185736824623549822512706229765706628861236330186970232632731897694528559023109290159533548183223367478773043110915321768520022793763873799605954460972005972793047727717926943515346022941703738896196822422636636805372437370274537837724004003149816095972311013903616935198453334066244800781699300689318171495446198079766096311247779715634097037743999877623066615051330238738877544034959159138713836247575824394247603238883502566742933092078174109458228953788066615648583149830584157985781127645776551583468313527770747852421486681705300895982311359470899030918717967510034717013296760387130959362783614842788155781995209375756645460456749463707252766136560179528350665090675931387739513735716051018506525876698523307008143475608671754039869384913933559198106072270204415503840659408777542941272869162144568738969440642369997873270898536682825963092120472955624435177367784993193978678571200209377427905267550243702090862504681866416611692780788733427965439449208479639520403559581152748950098093554684561126060419959025590122575000999645395665744574481273485347006989987240834897242135082966601979081430099334506960425135174685024129040620594625964953059891535723737857478136324132888648177080299470031490248801270263651272189921835745399602285397022049778599017866225744194433618050952836138771469152859889547010826631556887639090751234728251320257783894636640688903001933228926470384587903433062488467138789071643561374995210531618700879734620347801282203513667077381130984758788520503355689156804359268346093211218433243750001099302211557750858379394687411801569747724260922320203124776725517714011986980066313837384636240169503081229137154816844548936039554807541462564474311461096908922810814595067081235866915331158424490976676955998587727314218332470338702249745312969235989275555967080677881592293046566024555558764286658421226817934183984329968003186063351647471822559304447429814028694570570589774252730435574726975814190582517506910986091570157948071273904037119169533882529817670760514470433056224904457504788701869560102159725519402561073417185998030385834800212362488266575146659458337817593715397459668212373051388768751182661068401924143531229593788247866071842180666837830443332184337647658176355924258698223247649884783327647891937089242288113979153757112091924292644986062359991374000970773069805068421596827888042561182114925262169126108634872164316334795450280828986829027443631558971625225741582747292307009865420152792916633232241851378106172020419373526939032933650584949537822284917714758807386721329180150011658391866344210584725727650855206388744901649249067609362836811822262793133557846491757438823927918893487201079012892882518376276735048027995654171058791447397334863530329148570571937377581056631674447896691518730766758980295648209300010940902143592301115372435527936987222543536495669198306843798685447006387485627345941506450615137155897737258004534991760177165708328405072889571168263546975540867732036176442015892999179831465307816833986058183877424068080502447919385377688589746673124000936641667382270225315388462483018920979380439613868215676979393929819974189099594351678405322993547761791466675438524472643489192565670535168273779650680169676962961401236534517284563013537767490981813408384065994090575880421741787710153770644463932730939493118014896706212617273637045992070462786188131630485902366131421644929689530834537355829634720623777571046241372390504979361361254837041088392062372123302422488326437545380369903418650340431887306187356546089626740612676707057819649697967607559642674567721197673409420674172944362838554302229864298576377732594516575929087068679386803995911634431947071645096151043040495390890736220659395455103340548680178515998315400106545076251728540858023254932070657759635342724003469036734509595257809176127210356379008167862354091850818499774911221907398539610825345357446725367905790449827953511423314197596431970772943733680825094591710176067469328072529427669981348549988548188761584941495615177748822134799119591061153367917187236291923757535793034172770488415979971762843863796201186384803399630348763833354907612041852249547050198822524619042621694931795446784862596496192883731107872200464228797373384997361375226539037636895548314822395279267954848508312859658452049246618391090557319806973629525492307802832684385453797527133187915617551871391325922755287665208039441772310928075038144628575042001429413771091192464389353301981653883123396533750338320209519720040620852722386765108368295431587147905848029851180705101040680690243548373072136307002863958349312783072653288232986001519503474226944426315159621025131216539101764192269369405974213045298843196236800684897291792927619825505466531704806742672897432831607339148302065297419075209797224998993400286752941627508446477536768641941156574393686370535375282969825734071826663996393771108121773075121535917655941641265587863348315388091496484266341647194622052419334384952615674956478996672420369402775763479615396346806541392747857382540571198741085572189822457027871447848097358696131758035431285342880247075033048910713765054312222026725250794232355219815991034177945577355578476999103697987744245250353456745579170014192297542503017252505428442270120742600759700806896591444979674517327182678252953030159584040279760124276600922030025535229230828225605973678905100726509257569681379375060682733074379069894179405232056069258948693522966757789247822757757498003773820926434480960583496226005803858573863240342140659278966836466512728623496887672021110221719663125718791241779324373248315190191403760802772274243812074257399945083328248298092631843265880015012094513376621933824137033140584097727484483457416805244257716222964462065536662596775516857750553275372889300941912830211418210699032960000852087308729314277235682122082261984332626224364715986365807795063513068194777860956960335644116453740834091199195412645677280366245519489165986321128434530192714138440635409107344951072541839061144903272113342869619957844318153846780104497386779654616033069569406430061621576836791772559704092550665826481547161825485464433055340185517353975889446023442611948003460680616200022165390687233013056102226363231147700919259886873961225292856001245042162272621759608640627336752139745097806023510448442665638792108349437648848905145152707583247888187355070163272678043332397963502727301949026758327644249138040848729625074192428748615656834627275440493503130667296839101492029703065318944091707054161100160030833890203586671409476166159329043619432388630455939302913659214256784442462451850488674510283147284623536459122898601818252221374556723829219599109732941957362269835101059879687148492787881131135342649842444845470337500310896907029626959221199805802780599479259912139849005033954418473486291729450552398957507933415317653327649304296235363144198898050665135344121331071395946660493716027911881832886826364139598293105915377219739983859589011286684395096149003744575686977798412248973574027897281907109024403413861219710807230087785480176542682872410670706284268184888202838262755264979632419211945833907151827110682867015475639748931505586733394999652128660591428943922685051163241170114776877358293409040383548258496706142276730086276965504310131625342745683206785046590503664342310185124428022999488022163230508563897206476427958233076966224176383938552563650881743375762002050802650899719449733409046407384682980160711522368670987968893294269606919387701126854652228058945574764730953310390913999503793446706008758292791837666603300453034692411101276730392353278698814003939074672269747312091104956503103224767417632006522085826790660557948515729790996164983797427520749363723560248908510439107472568689180556068948545038120876286911190768515959097607911046150527421339012086361606287337313859843957778283939131254965945309168421819415865205874970966535792781856141676957224013734719817511610331491798263201809892021193836488945789579323235955458215086099182752939687393148093864003161216842912733128470161273059371442998021803441922164730573144254706353683415227127609675317145949440016596766164341860403742049056773446091376546199606907189139751303840120464565531997305196090846029280247865324894810949813933357130014882184679315036591597465819990264272969444724035180191932530256233388139119424026659411302140152433691274771184205520952877147191719937942577011886456527394066726194519619125837719055788658019061947554477482286406055101721784031875928630176305542329956097267255935340372570757209895338446609422358697345001574659037091485756524484739851542693137874981659258301687365691434459112164676739770921248334419488551279712282862534583699279953012241443489532099107509540355091986226095679719824208318553183985342603722937215723300088843527756087962342852579890968744464433765527734557818003838906649364393281853954932473386846316977644543728422048490404189613067979991507823837491594971262023546710883313976779248428074729141301331523081335743355125253292601001220559618173830837424189033334250424918152276200072906108390060310752416302390009619909038766858162937978618709622494046039579110295288170058477688286505455337039753509795437622225038261806544241287395430646505690708233466921835797999763212760765641515244184996384355408698139892093306660579599894613972160305798391561450761610147416934119548423877475779025333696801921712270179097998441569617135270498744434818219300746797389222314278266835217648138968825840203011872084816184330973975428522755939876871636137394366678797055155493858381042647680004992239660119867616156500582454981727776557237873919939065720035274730744553962197148928522688366639476793493024972824733344661167633816867797483209808664163387464649363125865978004272683626765047997040673442495156439888452106337323107259276143075466620890432242534403956419167681652879102962066594712992479239844652189972445849479302689524839032587032959479974376164625127181571077093276088994498007576837623380001845621468876279464291655979127932592258180416188032401550214188322190311601229875826198074803764259652577936874289719052898019525711243432456946599511986898717701837683049773131338026960700665971953138172385083140206552358371089257167242149158509727439800353944837765315939357175191914150859349474790569503469855925588189828743936988377804518883430284076189451851575077419621531065525623023441894604442991743377464084631666152924637234344256239262621821095710953768901761793940909110015451159632350354353443004143984534859208787918241948299989602827726790522862160679716260857360110444337900469411058068821446564392617277426999786240204128693828383653457224036129167788614830024328660383828482892831041747523970693983381622131019968357591196936550459331380865848882780717164985416545958173337454974569828368380819132902545547745597166487069453070294144431737031676788707519665334033010513203192161092574180132558644778562174609010519774851741493818465639476694249393510973602163467332763634267037908181464069598933121330357806139674455175660852949847969731966456193085042381637971106257109012942640968226799984961231174354738944717588368998604097614232802224052462210249253023930869579108913540701881535483522596978355795221756616337825490165596479965007478813716129146666177163355333782008670231881395614500238227823485992648670351544975568709874466927649556461760404980770966802012751714535759099152309690067361873508557019816084690769279230831315731474655957636314825578963363128348826129185258401451603689812450581181689804574719474792441989907861129042268212860844302626536683373923656510282303055456294582558262221415736843572748093545476255855472824388606338805852412633859587017851696516622995458736641124355649092097293991467401644184724778810098496539009888210009742264018388425829607641640429537559932338975476802480538672934394283879591663953499194241160665683170971797224494614421094360153812261403416119404854086789784215781994163870327089159194492388455972501573228370993582617854516802739786672119928455236459596556908062226480683928805095680378001243174685332242341351328395791483597366667368157397864209102228288625456857816106265434841102856388052106412323635921391754158439847418361389599646945900699742467731504022257537113635189315098042352770551053879672884537768078457445047704911105604619297442082574217635153459937384986848364290007589653294497862099495713994061965959777326881295056225732037195012108106748239986083357487963513871468599171158221589449946833079083767261110896913626677668703622960210925005098941748954252561516076684206330022456844098601264734199751546150707487539681192856551869902911393899088355214926663971358679247072028450017370223062676860287654536656699657459002287875148998155976851347196727354460105854685874162205417818748798803295112216140623289235142340593778008626756391792020888429819324890949491769562513087451944578043364933263635982271800483580722893051013113039558978805306438732021133198719386837627880428204817194351824532508747545543558062424778554861425640461926529359154971449034811529206719693405589406455557828581722293845490635206969840155450145397556870300903122451005047952977485088472876462668060409608913758066501846951273718144404519725579007684364591771802845265012425877465182984655260785882010305115574489793865581023314612444704658258304647458981857004279298013542165065947192375202198394530048668973767528849810612495053317690989789788558661415116909099628164451337064096044222454365527169291731836300899236116550166479100439544061967573166129630596679931120080955520856614123304699900664646440159335092425308231426656189305952807681365201396324560718003061916978020461048237890137563220208129136492824543009635106693010614872658892205933767990164310814140686085117465866782520842793000713216175550758396798712103888947491705258146633389950436153159821280664456294414440211955986412256038994014666997876820156135284245165543593065754515756296456769177204211348065956379174793946313498769397962015818252632256944171489877702632138505200344082173608919416634867570211496774852997887355188514142745640214324912904459620864253372782204632016796995913567155374318640050713717455712447390413664689135185496223290148879560525282471346908718486380508565931995032335242321933979925580986689506043575607787664607703354894036478146764708545295931401088069258669022991046643674997463747899536074809453397069678508134229366946158734053106795205840462116855775818979502704456313797416860983783462710414291335925211335407046804754883312462070388747803482644285660086618115810559154548865337287165688823913744566365335669523837226770825332532273330993514738894036896665128261583152156962356341788132857712565113568410447411052344592104802676990269855787053441355716294858030896905922272812658374319265468895195794223278621326750494655502392852100413797574274090159785374329122190575711014163762538108856566090759249406757037455959334085738421103353306090707107701692950429522795736055648066376064074219782355216544901767579733916903984196599001602659566615094356754397974225433904308912015146615061754052086978825960480295762832803182449981328189217509599319789651208012009145412804176157504503911190657397562388247807286688391143713015545257250381730441640616738844090558842633419317557104115005907783841238367093355231807596642993213423965397879907596199205357721067136049171829277475171434692357156657523342967679074786682775238354883505408091053827764118773884455220172557807727319256445597185032829301080434083181431212838383597301352073312024850439808500689919777105331327346812778967055933629476550750570903545083985541167685253476527952007328001234436136151708623874097321838040700239539520429877707630717807874780079416877030669281254372981892224245957384597404111122882396708745577119160499112195819278280983925967223505324475240421412622873815281451612519648805492796366824016929690842470367075455584643618604384840429018515590245249161824061887754456755707684948693854644565628798408450364971291071519772102643382096449256718880743219669581842625727176057533443624016331600944498399464943258468502685128219313371356037039849520530321853505462467679397938156173024789600730198474758988705118944877515738214580310566074513540711800401466536563219613925437437368444709967324336177491356464431858433822848391198798716351584546347659430881953423603596791100297546914075490952725260287353060569141153854861566403866325132884610462233725687066531983248914453181431028018304604762268405222135408504476948630869615362679349610656423626297904029905175357495121756597446201115804856074743385631184654794960115916257277265978740979075346404874507680312170954186856543671498917037407996125270521562582105277475038603187257392329992737119051555064359430721446282205570774227947335498142430724921403985968672661919015009500562886500761248040078917832886697527184932686075656995649877126036538435034415246287583799446536318349490189111868927609623740540424070864198901741604062250319058049712987096413398819925304198009166488984198809724624064875017498345368444432243811585836038738237017910533409713828428867556152156315093814080036121395539894888285098663109004020319921837631247100191947561596656527018290307847188734550074252263502964667701786861812242463487059579646439380223537356119494095343608389426518678958793021788295886637500757976628425029373728777657772364689289053800449283805118537240037285752990918478461421245645429712471183157521532168225003521499765524262152554295462366072059015872618535918258560626211679569324593265131416117566438024112379847235736102294683976095098652446484072038694812584373235589669914169659023192541703913907321145762499345835209260612473381942687206960241906733333975470690223505114342673183542079806580313811746582009160685686028136582925067535775301059322177480899586394634797847088592106375237991459335540594177933623187937492819287077967610083521509728791834487419323281106477219423409494699255387833295370770309660981066248694669227055739837265028666211369664638222912359291830663900715119358653884039591788573372855095126176856924078419496120416800859295305241730439949815785528135574406136601769465788736435047886261529687023690658701034829056728781613342287080081062625351225475517601659829300963552692379555351663716402060491356066367251391076123679926295863807936608492834405371782996524025743998033273530446955426820087163397231063829393904531668025117149118241954033685044757348322134432156464063641238578997200364764964866107756884517701677023802371701965037885512540870532073232657540891539740218418346537641118615318596213185111796672995412770769245445767701129995796871744694721758995024126351025788678101517233414564419098718456464654094751783338404825607305407312228873011475887775237938169938220311310719563391121122001544187380543060570237401249085807937070737106002969191099381737266171209777533824328718409376190561546954941366229114945887947497853970787193337610017299279236035974443754683363807763341379942043412755665162597118763591757988964774414226233662036285087601696935460052468286851644607821980295583642966115626851729875334920038148613230673371648281080257261706334383481178712591029959987866931483845133220205183092589891561298263194937463977159606513078348163853103146146655492042922182731204042465700408658607352103487675578208688328888941653041897772168655147328452343624887228142925966863941420774480624159511797314639870163914049712537046332436982638916454959136050716816890770424123684506063525805557825553077246878518605609533651064505712373170789835944696593948786401072296894998274682309956363067399685953848859562577351703443016914636387934318654657147161068783089614825902313652349525155654497436858564977499863826477843669310046600039011393377326469493705296000149611680247395277607172317403285831639164020661773096635265087730124218052726728230024177674419299612644407862934763173830758235902965281332719612401465134164301672275521465663066502855289382125815498954193550470489669941072400528452085965590768228920079542705821027781816509851127884034905107022382858184349455679363076351795366855203154504105749279806226498969467417873258258175057639651960453630516092841547701898931828407467769981089621184012244635331341332429049877693898347546263320059236298802875712092793749134575770994108944956600128211152822447578889567733777197397432836334580293194794662124422040855403985516495075783190826677168758762337554546064448669659422675357519375062185897098069017173594965391673646414896751967567738244941403188139391130030816495679663177044864096402997918485821734516176585945811611486472285149793917315820403456994746372368576428278953649266655511867014481892007496031137823638968655100888133044183415148613374955669536047605408112802816961272289645334193752317791873737437454704540812056782413907591045153947669854771092428291591791753712527537321058390317506316273635110019166820327552713220630034415646272868975767309441619124938030452568361662526049672360506525529465350342857627497227899401024895214668106340428492837663461214634272925501210591519362193159716890909218191914229508548961026109001957528581091822992023133455440306063056805181758669397515551979244674437221739008332287177462982627879121294916649803247545947141082998749544064733255900567673466179656419974556850756858672112495690629106791352299971503817044434341413727645249367781780743083765690837863366734547307123558474045567160572600252480695533777120664501645240449402760596474774874774489271344204883084401412056039551150369121315011394176586829584367770633720445080723807619448881842381575612615604022455848062323026568066635019291246615761448035140428616773636069189953804439385974641947788931004422894149124852118314516811768507706986055110086015874047791953178991976749131751254127636090356479618714218755359810201954869695669965454066299885607676544926730091102537105284075804860609365233441925427735523785029621959551067945142202002526142992397964928959260917784787309785622156818652539914806841203208240768602016264950413650039683790733624717300975159451937932677366139168800985856645158820847717799521736766346049677878445533337185525671736073317437372382424807305127720648010625322921293212195205240464759742224541689619320385707056373478606914453601968639784458226306270596079937216642463035134595737510845247378013919924989329090519805232935552028414941941675047524482992934192043273341905813990839212346134866391390279582446767163147392181424035714807206377019699114263335576690995937576418492487486436621152836555733300751733952148190068069992093185876626513355770084161049836874111619714467767916133211279893215235271897404738980141816043330832141595259619758385860425411878830391455288732814484215891242255930244173922415759558669691681384266365330293672305333719857583903366632906161065617091182201005592419024028125467248430863678116610115471513505994490451284661894877254742295773175092628804611560856882703414007206481417071871162928178988296285907078462158237866811012098662267830840056674303203416951200006395667244628880958397028133352199991557205628610283354490700825869486950694341763090733761681696932628087840929008590398778598451243554077825532063906241346772857940535115233155747402553448990629291553412584274446502466429672107055084024229405627114107764646407165646868246403682450278595653026316165821254229042531397848643331547116552013933050093193335406062627886545936894048706828541777707895925800801707641669581758937565007330968403539756198605810959512708812694072472954484992952730877210380076507302758275104156602755174586973365108935878213675805760526983256168710036714804133484541665011120330781364003277695625454211180567749507109990693407679818560841038528715242610719942821640518574565712208894348366013657518391184975465267097385915852425551367371485619755667697928152494122983774885889373212455202070529744206801916046256917895853985233385625666169450534047922719945475531593476199514610672198994777933903938079652331602900880650980148369015591534746145215516275024105750469553383264051814263160323485265314286918500817842569276466243454673081190474286764832254136187327146785892256899547718533071806892836873311246882871530648102337795896873659625775990024330623583109569630619415073571315979444170334020547442863687725601854909197924293481532003172168123593628073707318031593683473217052180033531699035657026425340941262853412855726148333238022855414455818583917231434633074154885040950438950252132406291976732258273584193786065128362667533449981472835627368005454396614396610289276566797693751601679599034521727939241962757756008895173146660025294533597818846293130540214347140668178980109095531624665939024592861899009356307737192357929743197497628752265338528632309346936725298426785814170900981093902253629693230206891358630895323441776952151929071603423896106050188269766058185040289551290917333486947592813355208822102422406777514651144788181860329383813735663211578017815367150494747446576389647238010159641733560150953101285306242144716345323468536805802925312077208968645837351211797023101574317540944193247989729415454218247737128920482277825942493245419397126289662536921848894924069112224444586434418955461668000073909204731023188163553231666245797737658327650772514686867881149690815441663893232951211995172753528412736438735403386769165754079834781609538839663989149679628847716044275233771480236303902771671104440846948558313306454253631971098554406852388014291123357472084784481284162357245300617637091730836737539229315830469212785947543620035524000403971677436626249450419267599735138466375302348151306895190385281331914103656516866900298053490403748423937513522142632844288695598577364581050414907965281302835767558731603058507496334534726713327738668905473638632978801904851583037669691732476145125409277481596918769028652056263288292249235165411172569508960450068279778067275933509776076196627878675828961805727753751481236325200745976912526493545328071894322730501225832806563211044796769214373827386073174078983116980365536730382673144581628222243336223514543322214648968075189622216967562520588729703992106222699034626541325302669103924705426424756973927140306300183949499064881400624781281970191210104461472581345254706185397916519621423365507412867735786649735159401097243536078113300792846435722020735699213197144576862212948005915701002849274310296744690665542412147881719065623524138309758391087399835626421810560316575317900515500756127218232172723444747768798753672062693049673965628913586111533356729120095102263449701782586827664574661374863865110432823863316168187624658003595475906723969353161243610712200338399913446472142444807113751337924669912817001369723025860491518375203652165332660889479906907986039520480556665438031328478124093432625143509877855893671810184575100533781960196405882570299397576473647127286550083348863699205812827193486677078122232491244661025407418195054143781079937811142824135453856105403075819940505548152557072116488358529056902159771455712722822410926319360894116178497016006605534187425904126499210389923211792146907154285983247383758059991854161485680034129527044595315119027912299670249009382538307429377719736947671563793850075049651063051429626060271953550714367854798725654371535570641120330977345871181348734610547573955092664095177932644630589094166569861819474009483904760757028653058466591253357272131142052306647467506516308159119249451285562265710660493130024747396056039368474834610100340513931277836290511482601987535246744802831247012476424349376428269805858832547955530559368700387459497254750206535895711809100818158958857186991056864861640291316966963069599919198535901844821954977435595124746689559422769060881228372122918908607558700621831958299752769935712794497399952049993697760239465516739087519724333646959679302349320781243086816123356977004373429990521211151585585555560853147191822911687121045962350825146898793946314649277300482771407269124619951266373065791094021713169646575886679021089377683544700985520588107346127477048975380173884232499950668886179286113076676636632673821624497331982180756236281359540577749598679103612426668446782895115731196448096785496554318707639237743080931051641263475070240432187324619838183766662537917442507627012073279978284433902412205110043003894001743965291603017179927689684418674185369904073282927960467000552201679167238934880100426086791730878692125736790033622103320182516540747504411134226349162761414046014705308783203674763118757806986450493724434192881005550954751507284092719291798080347332696421789402732969519790429777319668911162966798393886279001585413954321213860869163688976529539822192409855100189439378717079151322405919250561462245805142116664956416674814360238508856431437626479329696355433200316113799674046812680501330236563722411141764053435558062894706447667140064027576688943558978763151758591584707689307471738990801402144193255203219898529298715158439865545630128799706673609000048502104185778114869988598950252508268669713624495598313901688959134716195047881206974921507753781699352559230779511059234654016548262509282254163925439760812676036274424166954488797210441706950857785044983076217659682789331742008717021877423449561275731643196311208779579198405606278584913495362686706337627956452682935806187433290033734120332239311284692162675448890870565326096084808041635583335340931252866567345711025055139639127166866270448485893157031249215779030444563176698571308871808611861850456812143266544690811296608478419446379359345330475047171342331151052589441496617414198363834711572162090404121614720023791002790700284983354155279460192020601997014567189414788603011419721400482939860876551051579362354107115021391235578528307004044868899916270088826013994643297565572627547920611612275254832801859636750248117828382736557083524042765811770381056570164844640498786115315252058933159132350391547341314487279964700974703547193621884462007552891245896833694995716063597723370284197394988482316414544447271421364589352411300603480398804419508667128085059822198836150083851495255613457462573568981684922847646834724024952009898386981537750277995288226773832507983453071782007191414819819325438850428314637460898649687149693562892560733809173018429755682972632321950012860663593048106876309413334737922084333009323796726102561221163896972167702496995561547598121859122932202608094278507734405546840151262985487050202140143856035011193386067719832559709706060711345961312966699780899276517403026803269170495975564824961430635977864279797468553574181579873623230449910193540707202946135745201679828313655059466856341633888696275662981330868154711397092122949008658175433889256146034004401308440198109705057823155890388622185346638859930331161100660562643513603355179162628105439988505595061600430041703767462142570879939276232180452481506437639340413696978189684102960876116259351273116640157001714336118912276112951525932358310953304708957838606333160962447516646089810796480200325673117953125131073442247279930021966463029441523654161502589537668859072149111036694921278969295614452732353574310646872030338717463296565798675678864728122418568031767946448909795309568831573550763956931825063570950695710616661034870661070339941416504714289599371780629506736426913946178774288352487336027085740244383756508211663442057972396243723902420642549673568683496030517225772471911747135290934477540211957638902629692362700842113952317611123326852104479669670348630589481624582863359002242110603810366699084106423180670377131461226286413248546054740984593189782321342636083543135791905708462622710012143728016043610124402014545194693232510475406074351719584075489255786596653528041079761916320052521458611726369660424194172016896340739246191703421009700707371584269091084948253472363810148129788116114161575268161107796386537581351612020428909779783216760049734138934263692200657139281551678382884672117612882877858815217711027582118095329972587671244663469646489753079305000637996769341553723325184764816434399383658966712673908988017005518383287088864096051703859724983774708998410628690339334232879967441986696092378977951526916682335324142960152910886398596634408028475605510756328550010997729999506426252800247075209898141810643652310743929237002337452601997169490365388866335886962678482250883477463795001511850506209433991544408693346839966235669936863062328811843601947254830311895449333763214698535149518490156610863289736407379005296758529379332020518894618944282692686105751767361715022829900875720383972206984435333169749690396399026523787852775586501227149036821462287000606680073457004312307012369053595013159100955617108934012446397412224889623597100364524649431306890378746358826717411070914614931577656385403938234509628851786549249313458828252373976111051653671839330560617321734724373242533969540261247144594048274077955525566707105033957643263103643310670293033467586840821584857186824429206716911737578185608340523625752789588900159119219371589616634669612395824877507749964104643390033909340111687032486671207055083222924298903935293975794355204870235788355985407293601923838071561998461060136276037996321148027105560954234586871965436773148081000427376149198170126483830901348261977890854341128040537434586671908318711287974641776538512507858491351749149340954828598909607624454512099467503593293897739337712516111813732788068786908872947503331634306298825383146509286339238345793763189051412684349334987321797014644246426260837531010889871543995811328267946414063899868243923754848586110479373476383117257029773428377530202546631432906226601080551344475700067791936608547924543011103760570172402943264911143083871794720198165185205098666257943480993988997381334152010835921895548787551166835929479155997053447361039923208486055542674315651019606101076187585571103738132754909279092415690774302988796091470165965582592063862141402746000113783789178324884082361650365453854444238677900145077959985928510131016582730759654853615342666982419732480823854967988606166294055635714796402724755088464321077432176347285802326746597817424665291129017491953925865100088198072405561284036782440381388851236056020031658019351385126660039365645360219401117673293103787156932313621861129188319799604319614818054520666992110865693160226192278399943784504630376411753439479767898213123782528275421552532906201037192110355746287250507458301303555695676691267068527157044319956505477338585053291882642390154419283993182476488915715374638410926773479835775226929990657330851951116207761515994022448201000384400339514564400374712751567984169536129234173205081919719262321803502458842737533466611068569823872244804533214808453717721264670074497100988682212440430363806125905871922514228733255453426141817598956246251430687021311657002784310643247195547291874511798370500993425973792158689127898479668800300379233731598470374000804842416946485188929085073992491975584954786324436824826586743925311085260872415538965418600387293614230480966483283797366529359541228097418582167001136787386926426047548449244571718427862679186631654441936894941586770503558477102549642548221880600970182152569293867275617930223539788496909313266607598022839348012271437813003296314383509436039374290772574634271559067080281741270823101414436637217777304664086697528877012748751150940409766166097016427948220158601364404785232128152033228691737363230138288919047400897822677963518677080889377843004473324046110415961863738790291206603914026251634601855025487445885997356196436768234631705017619174239997664996610283141607624371554558370215058863652902470659761254361708914078527524655817966121397742335769254748330804195939753890928577221860215597907534075822392822533293215025844475010039693466002372680232710082332588288231717277829777471898102617773868652399296518693880956377829635540332440321601664498241617431911119609795185978832133575797864203116733725473454081865393839774091658779499745205358701176405565991164165621729827896848971658738683761448096690293815967431685060320542905705422201192361505917297903540836783269106432143630328763419296892003074615998640442024944192285904566875412280444232882485239257934741318622395223512345384095068255791233384788148233231351168731845520229492406533541036937400552362609893512497330469518233171871863881469191105932830114562931167949683387525380716973005179156504661505685636008736811513001571958673826324930785628657291847568543817984755505022557160220568145930754248452951762247236845040677328709254709902760379241165717326255780645592860986610635374642556856280847429093446704200034496342409045766793265152784560067349504642453277133407045451512992103820765516653461817118470288871082883360643693328755848727968968655225664860303575987578482491687289945092838582820654162956803173844617709976005664633923763854527931505623371248594416546152774885478474952736115154452048925546075758417499108116624347864153044437185458466242156132247539874036792976436364333367772092702969865656765807888064568587120390574477229973753269230523254886641451498887506040451058923167546488145215693607492939005669108909794487248205764353285084677226968670829461945258806180217858814733319254557364951650515850423657827255558832742483335626651596108978677662780841206096436202708687315754903276794937301972152756871428692346957892642634297342935544415533607497747159424675172875228609331526797376684027920448178113507937927632373378483786178824863875693633609013973385239278725315887119357740325063994593554649555447885196405456111799712632474787126204591787530464143642956409647764553938964256725754763792599968214519785869882983178299313191076473911849041946541397284552596371118550182731407932642335163914892742700472260006573128176251806600740707360530961572215528427250603935792328714191740044711753357821593618045551671746267180509768836459694935911118275533025630269689158374797707346433643070309199704929231642389923038365018043827952928823747588999192122178887815581998326831467738192101500809059576156080292101749999205527372230975851103999034552041659981536195155581660484725883398696917457512926664966540111426838148534853573612563387494683823767681994488316124390100652570947958910836663363842538648702543320379956849210317997474470822751841276841865680649720319369748029107870928919929892503481680612189254461088540532161268886928139249483117828327379486936859148454873746212935952115686984371662604932521546780568190212380774845949020547821543887093529237019136502894419578362027832160297122655807350055914249120512569936241778235841809490429179262234819126785749112296295578107803168802163290864332118665755871814520925949530501490570748291237220051500991925394574580595916313331912655777373541952507743759715037567784145808105174845540247742679245044469543837792554951675517110637857680656905084951272987305430352632584313958560382365820759688333956340273048566471200218552718352389366569327666772200747525397719414629980735155788984904134332216541287346284742136763267078001134592162489323378370707416729189377489096223797816305042034923945247803880636111570602964329622537536974535440082478037151048413067011885842784237297749287265345989166548809044252957209779658818743644738164210203898121715779488065170858411246907075528532151890947861406040767606971206016354057867273986487039387675499861080067264186158274454704091584797192342269794519203131997152354511064478427253070208023757103543391395583646471649253511884747557816888245442082627725783910130081895297196550378505653866635797119133014130110458812878646816186302510762101830949177011849120249011131437747406001507104041352872005995619580834344013688098749539060730728774226706866486629093288843167970903309870517016742157137801537371448838570023163571754328338020390498195096704848469237925450995491551666817929136857342703870668717407133171857120397790573320171989127463740994864214035452589138964127665384309257800104295839034598834328087003164119472226353375721136570065136494320535054600309311482125703796065081213837947054888384203863221154155332301017200708641757928212670592910955761522300309699920066303514644119607243499489190113297886470688179104199582682966886349318256226502755322366054168186420004136977888770392213800805794846273118320590190806161596273347133972191962147762342349711972148433345509043654080914177421949014116155582742903176484896511261669468506407884165758697442546587294079851103064900097999098720640036348859522812258535542629043543681820680753242561107991378027996712157701581398936065563303968806730934358358101472638481123896473395951384822498382416916588398269074288621701892002131951340821702475424579025329045323527847235440027294433591235120679856294675020918367200689003570979484173855899140578751272562070083877418779882503268470691864767921697902225586645474652947532581587832657946543513552782665101335395272136244543963942836877084287967353720924010246742224770051337938035229810550742639348656914142107402512585546368668177321064861104637401976486179155568343450813820186616078530224155629842091379209949562084159522705558490650914703577323075545676124285468415070759761233290617748920493417467611960555102769054964865063779878266870317158224325827498667759360630889755029505498267623584973406977130958817007269496567517130427390233727134006730926757087975248069995871780439526590968251635029472049554183397102582490450669075435244185567220057310938754068829427751273560306143234838179230810725034457603990328717791727554355367809155578760207660387519998044650529992537661405841120870207309110646533471633105217811737481856887446125020476376692254761902222357343930946676009505362034038939392249967242669895466161535474439441102864123560807042386919328593564450060660074481951731338718273708842140684070596493253706179893603378553548362422838672715039570414801576765890358683978478387061372935990920445692597240785054796272194894332297486914243888942385229680416340536218779646816425360661452205591245804877774875339531653478941929037954173670555008624638980016249362143674065507138749855613568840859003833756241260095241748969517732508227794658381113992830913593862169787477298163393553068557601140483633713095593612595333980030893018947961408552940657071590735013170836564726796622142375224396719471886589211467561158982835087893729506994668042712702578188672935779906115177623315810190673480573678447615269708378305756797171548923987086967589234443655506704207591605890977376731189769740999884105755668554364164850638701660547228689078787176533219641997214140362354530949343862168487484439490005982110924324078569826934197327438650124792889972582121455947220824673538200885414129971849108523003605919845805165515496609950073133548514569721761274310854248614660883328430310580656100920222225699926060787447687489844609177314079015282109477352383420896471675616289989110249385376106965140348952470875650039976370586205971076285628416888978316098070476851335395743130327399605265793746875935158800919749515938905394276070074649449912752651560628843518630166222007420584175915046656617618375274235393095680038967342324482516946690662309806781470742320950934091600046506154570160716846675176158151778288928636117605516774772408476133099286440710330360832178085931201379683863626873620616401176210423273455119259233745221026554382712654036150530292208748855480672393266387320931137041076377613073594976030692661303006363385087555719591325086476388675059926727716679129172285941540153251746396626756466692192819915382697700284232836861148278741513294541082988333769164438590978573839113806343358607506807514265013177102527917982396649005128100970991624535670989308143319285206816979217988472841337599295243588222754465012432703467087621791498753925721994785053195975100799282060412357166550019181498600391119806381420218561237305691765320561513349749778229184492252576129816583630553118906054610957426025034687165883201854194792506895285746297838428081993777276511426520719862941400572027747865163775124565173329473928032277544671422687241914623661695837442953491825027037333336168595214255602331424127413683410217049331533066519385601540737744845901838356835812833034610378357936209598372348779003629256376822344922170985661689091116480185364380640062207898126541974068594127949687096026943601257182899520952969646228415149142784812107450305658102946225378795565388007671089032727555749943109009702093577360628460839197684847582804124739004777851838561775686673251210055857577592037799687389524110045501342428112154646565791574817252239663381699558180306507610893724328743772272210879473690466100239820800096730467675953315486283405541958828617184262582685328373400657716108739006689120502719493172789651734150981004334490023403934137254799893080903831744330751310178403231121658455454691487721627331218321405161250515475590028221486403165857156138441439059323960706309110176105502183765633968711988035638347741175938167450558418785341501068434771516040799491713839899881913638598575032124858893764908351628960483616429142846307734650134486309331747064847735843727134316449020009942239302795995912859837196102829100273946258062333163029986353351441284232213918905887288571357555292054121372335319706668050100787529464796067022929103339702751156484140404798555628345268836871193989683882343467747728632586341108156235169928095410158474337439898667141566876897432597453099702890239945464509673010822819148029588403073008044905959750180986662076194454905916683078869258177858905204707153939281551107755323862182938888182944375819032242367280772494469126749683283475521097442068843096959186101470031746301755310605676596172114926009524923481138840906185973729129692434210912262985752110648599463345976283722315274848682473771431170364837341342961386471726007039786136775676417805967668331318252625945354573094923224417882877342731121796458940243710916802088443553563384889663918762316212503709540666010842491329555585939848159812977865964814497899346727026384563084287746879706553463268939127485944251720215776832577694508705178762710157692437709182353197691602287988428548389349774974709948384290494112459133097100700180837830198604497812577268159500272773107557928112633998145926075562193408136551595810649735790289191728298081568796935953384299654193745562389257548652550919699125574490746774306798722125664926849216874245398206978264712674436992944366103795290955936247526898301273054191304134632947741586735625286344217986159958933743388361471587108831637831736473571556325743084657342350996182711206077137721088169283784148895590620592071406410295750813117499896156104983757479770201293730751820292542823860404820945198712149278440034970420827029082810638148430781471668243692927331582749440593891431414373080028420425029317943703621466545113934798133002178621338761657351912640544041521660247252750305724963363334960797447081077679853983751234872430211204246514356171764452535885249454660956582542234848727203773209542717846576659451926854069264007162064188684326161643826133661421196005147515126787101994530526648149175931204574553378905810649085267849190275993919768572832523557029861229009676730123693483877792793427632272859875750978050363295701491364795001797780259257120049041988341704565847976232856106060001748547431244632620340609161906912697913123163941429313333437097008971831166586989101405808938660592394065189776051143589376499163583060803631081915227322069956954037793754408609667131019039447873180369531207337435425750707505121043490763781647575004992617141075582431418763301440185426827342260509766310397639865554564355699694702780935645328823203288919740301825738290194951212735456360781451467463356061920235813636851054322025649098395137489987502479640572295648000895759151104780099953565631624364809563581221284359033424102007111154049513842939534531129826015280628792692730032317882768018996470851180130817799499418497240720672675525864031845018006726392523240459709525125830599979836766230314671907579873593050755058209492016414332548394222139470868589103755633874350214110100170193300002147248838450182892641354261755041360800072050096124216203252438082340977923411004600093406598961504466109519284726072159091461913110370368409481951392993743705164675986758221677220567927552906787719336574804231186881730955358781330259169265785155836798528093831458520029194736666627758797336385977587762223817866911691440454098932062672683732588770092664127596936726051642958584312403342381528713270242809657524684108314549517535322516923229849978101397026992377443845192492336120507661490836229806988818778224741878113482379558587403462248846005735276932618711245647507637237331275519031161870565465314605574319895536577785931881625211065381981270811792770832696058083448954157266202468471623480375571057436857208654887942697981257304641032195289379271300700522485944411732936180928913808336953923426457852032794074712845340488962134600505952453412086133476671820181124753214950765765133062788880287002515150732750340873666549480097245818055223859062723600731470655392798939367448464450836106805336364178756841388963155472749753544725313358213154926561181099042683695573271203299424751713322123413232852478224834268597815493223722151193730175899053621895794533903874207736526221667692814324730823635916643529999975573740027262018414265456846601599848047525876326132470216444082368600090480099497138600891387440964783604774218315385910457959806324118200761808658546801595084940034613683609007857571319483839532817521493593826457179315312928886231660864220284804366788106827349611290892613677320782422962768060365934190624599417391054842671321672621931279765633804532842542235509223996785760862402982620495306442304860995490948070528344213253636076479566313403634940412116144730104685209954295821068358581542970925820948265774706558899987993453429448853269276093996174027640063561950902242115334401563421010095994309758154503112964795629376022801247143732009541036784425677079477158684987744682983937097562140610982130550632706008556569453092889590830166886592910262991722159871042243672547524495486856033152982591145606261115561845449187523182928401056665106017755564276125901789609506906666770837985976526482199285415231159643180782434271551149255675707960439048029681224753953811604721769550711064607772188793871854210194493326242598900748095092528184264118545422878946089715270101001704817294881571654916720228067052536457030212168827298301539902821292765714563390037233146118379188778153822097821154446337070613107783959799153113907029875124853856095244306321186349663858624991161213332444630408934078777627566632962173557303364188665159878197258217246482915755114408704646141112658152899974021448497792860371020280625471028340739705570156484155592323157683378172013963577174081803641086577671094706692768419851912675404928605013860523368054529921857302864330220743776706332645925625978647990605589519933236102927130942486696664853469571406587804803021806049143748782972547541210982983500415818392920909914201617471555776015992096451596034266159751369312350602951548972144385646318831228844917302754377711693646029109378506127955162014216558741714704037274747653966902898692138808000524401679015824460735705315683487343572895072618128514107015841575738769360116498117266624756682757284756700968769647775580462567306245674527403330359919923013362692936200465050462760264506445055994535306436150477351459440998242597264913214802529779194398737140545826307116647165507318240206868918746901188330730975412850047272817642393446130727082175079188217389224176293873872146752952516677506307756524397071804244668694067535745166914286712936055217573332063627180087958149644665749026275714809688479888123940109766102185151717009343324481593444264639110497268141576391536966779852116213102165367651152407675611835879328122997172933737202647724271979011273738277039585118383978486009716342332320293968013292485164619390320106261467152835989626546818000189165823615421626283556769861404712936349977733159316903463532464561429835274457682122216804884019829885296443585867455968476659862141420815432136257212068276977653622156524300610254858786209969693570265273477519110503421594156927374815634827436692248108094222579001565499732426171488165110471503182665793263253419852356565981262751996792559340088079339923426630308081547445368593549847468294910733612047462843556857027007059534469043197016559689814498934971180231622692678096621913760732205555056852113572407347507740150338617414313540197240486306105987554603138827420817760459421704614403946667491086644966939358619524065814642344874674551673897196262755225675741936155830184634495489300664413118659028683340236887525189280769241340909517815476977098945356058234472701707906663602986780067266134551138719025584058444575848660688748672388152251712748914991881276994767094316467518976354041966825840523055164057858479443679910328678000148569879287256416629359173739577617900738686923071826426566519308451279946576613588491832925962424917699239644539048794169978445469553429135631828215388616738609545106673393794761823920599345313577262030831233520999190091312473859342004576983404480604876466969545557969182504963665170072540816676849482336862925956286430450922908990064238036080764558689256403466427325650465137928447439185008953561645755134698547172421090058897993382986269538566253776143549189995332653535102815336144035763072493286604901662853620769141297149236500499574305253321549137702004143266366305481542945895275337664387000697664453175998216575626790534046405784512387967823802185888337807386985628597293604118262406120932934589032515887796108564084165698196697207628181482408970312696347464018371969285357103508167135557997293126587059086721288389028018335417632584718136308007050896206020422473217381945209334237436090140436316913474839855389018554782619454954942144782503483277600787002446633612036931938091571827897813070107490193709469179230669787786344569458879245600470702484007822219789864250017433468834377237242837437218949253963690361705221792830020389688144402213935949425627991780347776790850053913229314694876742773959478328372360907842468649210107090504504868080339362391935156894073056313684480740830855746122502496706190688996551505454482838508101164751139091656543528741111191229812723631775810700564349030050502288263117788734160067447537708831914409588975690634134057030636246685251169902770697440760949438053420491432556742972249166056338180246607846497198147663726925110437120210098328106805956400685316678583220029025993976521292839770745766025775793433321612002220179141310751384720295833120815324344976750304249739413017296585487415233489741844598442578478423661692359653682872885244864214272850955347017956611514641723178489288420108393760810378791157200631739255451706004296151170269703826274101475922076671328609827521055089100658531625569176903049001222147323467801120877969143668075439717940851559248249390410576032889944482792215558724566604487891809624628348598888730581419021143829139827777355163833904369357779258429154909280711697072493090048710143330959147205393401803351292492731761575454616180302220059712697467990730661257625111932913235644934036350840799158142760025937979893720928308315150126258078085541900451428182762466300136919900351287613743263165795938666623529409867861818084598524535959511373517475786294268385403373952579038515243230265451378244216393103879130749552723036119906544607903108527633866096669283197467172482224985531888764729247621942152743620120599242424813858886079004633175988721642664809326734771158147244263559260819267105145262786360604488515502653261811503686165502322814638074192146035142408907052004019178933708003755735407786329019514300763817682347201335056935989128770235396254638072435643614634237035184582472566722292027811293617567605367594599511632778009091511309943633487958871493768197030208292987168706789118291657631618165994498292160980367813893111308274222109551363571032706848427239850110987037180098061997287383808548444860594926857023729558146054059072725899699411521926060073362064591760800172748687011700787217643685424315760407929692332866168560028147857232988106913096424769965058187591872424741133985084834224850343583509201165358800364146114808855285235466883827546779794526068406627421764219613228572185381506633337450850663422138452715942536279812682840198413543854396637348225360717112708169432287272369193292597302593206522538825261509927410317729590387526458143201449650122388366030365521593922133572658527901914964374955583769236744491437016770453716478965995231965409929188815324978552738092045252671960984064704890696357440825686982488195608004135552868831572608324240210898135091562187054495825348163478935866155678115267907085131462176403529992022371524880103514490544801947383794857976230936782086534814345427010975181699573718024936260420525061423557974292606902738329734594909424492268803917550914736538750646142689893586402662115502384557002631281149566312980675697960429489942892307724441460043585073957812587728676872497681193369777968659954151826290974065888160962451570978142437118714161531118302836632277792959812723152551123669499904840176849683584545975462163726039142669808118565979044105278871362316636350910680896848872637033364167287590592229671988189746743497978195483232741213215377996878730103147923798246342052036435173599381080444949993754640979383420245319857125346034260058911011513573300545578699373969680837049286053015258843423041594690809351471365778154172611826389813046175292829306416954444751470753860040011948591117850644651870391584364005456106760809709993486895126919006469538530855452394340699422607049947788154589803889008573553142478650962168963746720313701116165558456208787885448948157710369549860020110507997800678806207758743952904161289170812703002003731740373589201853897421376794103647239866385538929283906391104781209169459269445581738506168993324729674825075173992642348762578868831007332624440718472772397442904856686811539889966320870363610870602410563015805921736839388445469272012001575619068088606630326072582575210933672070787319436981630311314870967743130593014608957077177708229200061503057256516466887198181626194171478878563247444015709420825552364947941283182632726141393614105216851027173047041603394334734199116809543398581131724076730823366763892598335553234739493110051895267857961599696068284370504741606951746410407415861656931380764222203704055021915398678606392033655783990517661172872578856212780188969597305839870458240261288394428670134786196468736317489201869170722175759799319920906028591963741190772626785415975131017954206618309372777355855844878459922537632298574532266223685161473061660255934932330999702808110458713234940065059500213899732015655044369969544464878673285842026936769775057886733544160421261856281012352339449089295142870779481306217569995079837877269628952051784418413550120686693966962072584859220374060766883316232589654108369974615203467135142976510267933883446140874817348009009375462035035432928356452856079595304800233351598833364677404949879594425732334899377075928158170802856817632421486110480136955687967833485233415540070826394926434891098024360762403522671230819678607509441008095647660688630484951686550956199317167945897332092771758081380553764039295861280956541634350156984210217292814473098603658170491392138063530718468296770880402913599460671678428976557156571097272584303384857872189126488468941499077645408633288423069799855860683893135420417404800079674918809031089292898542944305078649543534028101220141405705953407369115663489596324246919730411954970665142999707459010068842784714964524013055277640555928426079848542190874556095707107836325938568299769843312827465287002316339958928667004959953461928147449220258238784291305798939539234650428253011029826621079265931917422284643730409993848875810997787933521816234950564169243504367712186619955316252433406106506087000472858895943487715754590116728326920217310353085080450635106121326195905026364333299646580214947983809809305781568809369004078271596992914449879790570452301310323601649795602266514297693528017951833109601487330970162973373514064184099588833175933336299335887360099276833147212424666624222269671621692754291696983701418476746912676403078770564034832819096216765963795892690641742056539818227161478499923455293970529416990879196535884117066066924516998545430332233751375653193302721920943398799073269123433960036330364893412690384429928305198314208874957762368956447047423675775456733678805080139303638916909324684449943871224163614962188253519676461673582387698774664409420235948889866922213475495772902071584728221632402938207212469253730771415334853293715397286497188585267507797252096906446634980652550020870528368527134227485300806384995115985926860649619442243836188539330839851829728926177045705118954648531626771544020628759639692171554584477782417815024560000917627035966481924500866819109691844871517873226552267462387541878658858088337921513556032729018832268293558431879174062248583031049123209622298171488009416262177712857709804237740673347106457269994042239204850351658442299475814305149570178437327599164559137797185459131465759781848953553793624489121808375030991949524829972832153829739800855423473061264567387830053386159677200558198536606197219982507588255642146822204948041586379364836708562165174785591164844833189715977579892000160320707858776364143780088623756511076866808817120953851316155815256026488444077750713851409484503169579000966983074895798489307278082224965590072991935076958383821072585855669217978038928308648800764505482148450086844861977204529981056146868846740269094263979932498607789768654654808537267566480937911992608119959599937479841518120029654721790763566944524989073830068686444107224285582050136983341681932061071324856043444776635737199309996374650511946209020982945370921792245917953441340140231444803337989286701920317610670306779435264746485844738980160896216080948251343202917011421427610999589928800713137601736763094885331367562935908996074823759360943067518557005052406298943128617188909960388367981245663923756555128542520367442169921721790304322178118878327228841920916934606584521882279699553172255743717048496120187848963470039641129958269716146637511454356823700920032530523837250244211283956472570597539361805030251600030040765925983035514042026748839342937214638139069485240228808223874123924787978560287266593504215633807246213593731932968793509193707862313717868370782179160461052173549287089127504180320753260492543250946491212420881350127492295816552665417272293676349016221011311110562333964828346123069510379701109821154393354472488268043525292624008113357438382491918682222019635905072585797175312406362337913552312540742702703652249058579681664536382712561688462069188781322976551713792124723930688390687147949625155981832802447391150400539951303707483751729698762801467283945387133812505212237562962151128573021242291530050572101295627221684628597151389609694643031636227736614520656032510195676843729389084836410483610340117813884548920241944989742371434772516537126117025120641041011132148208266865368721648096238166608180529894370279141212788873559801574773862447051006932365916344780271715009124731609530059912949061483190464106257195401961613602414843033561860807008781788420528223579179451664722466879328257008563928540359521109618056732928871254730144208484709067742838283417262516397973671292603394302426863799685148331094699334067086203672155847114307556031221008706529588334947675065841029270715638151919732523749393117245553222412211080448845000799006331231267363745356402586331348052318490084292996485940276402180032753277349162934595513341904348720194684212121286358917437999624472772476372874096408777519709637872425363327371132535871146316150885358710201782115620044131610844496464261462384136126985044663677170420905885405389894315754152332179112485713464137360930527325029332450295506880317414728289331866934239017569152101623567632348234597042214405011076056505030705243191707196109477139844728907407402409011732608845674615140500690155307449497859034755123064052039249023520554899801473239394487662049130949936350258450880037527769676861031312110396251531451846561454311923412791070707754253028769208201312721871948157587229537105841140764398168332297903167786129932879322471734389059237592485534692716222479763073796521877229158189881560048130553215671621189975779700537811407249634940621973050615617721172201591063128822400769131207846483510712167148116642023230692538871129304876167804073358993702624143347441224403326573710114872303192527101908520512079175866479306447508049014885726701786866016996102672039145953721066527453639023597549777168020791160528486819953784116982197040900142573929325320327169735840108839145657731826982753138754316966646826190725573316966860183715356371080882971753258367287876432600119544020667758527532273012842725197685171598795108106231833992134095221501876708119511727429639900860698285565691469014807362083252546490379869065673802205176417551668110116844374605484060633536029317929438638323077230214259322272971756783018778752576840566673258985532697904243734740954707109246458383442252858482709241870152376213530064127592818616616595321854659707421227765554355110495178977319158608998514004450300652947819196905054238668198073666290163539732333845978206714326991419554630839929058859907404919474369747049504455607867818346342482601350645548785703719890896389217581037049474590734104017254939509391788033326206831743969743354196551270710849908645104009525686847206185612899998455826921386668227305366556215754009974484734349520068701874669871768597007731994095874690285354876209816636497009099697191362666827291710438314157502430728099171694187276744689529808056735518440343678029482812070874891614495896973898371448754696556691363008389476164313861326796044546960936535497506786519384332295903403216433171236315961226428827076867393267625527622069403687658898411981062244866030381511104990613295347644799777937846086245015777418983399615412879367315927270523722466163542459286584648846919849136462229591302545634244706764811345247911418978940412721435786740199559442260310062899833610726499859377964203734974113311481123583586891577916393263892428242465748843065019601550606915161322169062551802311364381773151575881825834255094291426545653338689603395111110411984466547925367975315785686378132745321340328336229395906210853941541225466694853918336338043335358859375313464621255323051665954135325870239431578442873311195250631092594415245080482672091049076649496710930500000361298197180938177023161567611119087494785523013897027871445375030286136237740963072712955615388282680012877913443829894858399436682882242874284854662687576482611961984652396580947191710919747182440843564658581653564888268930679080170598895357521356566075382380464150264094346460268667559441767176490415519693537011431825847395308215612483744514918750693441357629434937131003862725819554571670379791587362035849694980520068497091935486060866078689156526798733336523241935738794290402349386983730309922892219288652086582843332375411744682956286731278524824869748272115609648466603871763264905264871272821572458256710774687545917623212065975479792822809196890078094745040059158551500477801394013468240717711492098621027955291413099638203417488231721840693098555167505092814587086644890293656085157463809831319026315718725088827239812158194277998478939209752956519484140464240564014593438619293716693942369165719818327224258246626719851595630286280304790150540976680074204012358817932372016054091985219413412539561149222081657768243440878175878183862089265929273026376685517961631331514833518258354892884434672480900443652839519003315482765670980247138123047693148699910205711333770889157914662470252479370058841768289966021147879110902645194190880032971660320019306379550005464941097579466747857303993287732627952282719780956869197913046893898280313227485569110330345220021856663365781414376419649155222750244205998180884161508406806859278082479675177250706730848973811136706130589787106612973721373448572101591839815774327328628791581306637614517514378156944128729823817716684637496377427280567919102984892248308640834564154681480536829600809074343413876388665840317748903347625469543510836085901485583140895509546969551539432406799626820719532162268290738326486451048482189202763022961310520768869654939185025413496183842436982622484004964322951464367692416514581196716999609677277928625258914769371490781417998318433772464947164574861534340039066377419220592389835258289182191314909088922972429981742379952531014099636458422350798672029108490619884947352238531619343304097191732543044107345407343118958740453158647337591529403827014944572155022860749775083860101471772551411053673619272481532502917105064994551362935238293927098638455651894530581144516466311828015874086239638102752834080435212609525696707412939883219460875814356960455753004513166413772832156496598632016903633213211057390951952124433593783185445099322892853769655225586625759292092608136054238469255329893638046704503277046264475439872232394228228356045209769075537311458276832533636474940879144183380318597610085981576451628571562621020844666985492770416703894371397045349923127954405925175306737443977434469216027161881201722649932693443574053270998023137268552107423366310290125918465322862402650350121570410404191390685466557064149611316643881992208540645967873736703365120478777488318503393792376372733506422487903679470042459776164755691930483274569747724823087502346922694055912193304440406642797441137690260918946564641342200298352732323942687472994699249353193513775580631868778341575634385045664310848465483815499104349889832000440198820891231218826374472399841822082474603801361670538604140524057538598343714095571825216558924229494274299045183791868223066014584445581351927160006117141715547765414762310049816994658173158426857199391367891128426404904406887728239359371970566148541827701435868294089795568696190049327201638070901916033731122122483426019101454035434554156526209246791493575683045132810510481520060811157084669299024668572188990662830536190875822132092462603039674004895798538968795884308595475084503336489116151608626510607067797833706737944402091957686410102349101473363316031006722728108689295803480476500041986785364377394796684741610701482185627597922995929036675527216711639472877919082977767846695539942771289635239120439441000288188940997443781196996463319719596385829916894042094915153271307660785452494986308873714025499886873993750624179804206870445615678936369745338603543665975272742502785196383741692702469434536840935601405335194548185722020250810495512118088878043773392308848549928067862054118840572332011861983375330817470651090976808856628941530500859292115073920831374068034069493281082112609983972622460251064521330167833962758299755767808707144788873538659975009302395991065771177301157674343049477305194826280179822353463881670240269871791083154279979395412969150017711551413354495371779654614468365550941663809854313867475861085155296144157502264162534250719480430027212445619552618358742409907760112695086781614873964193548164069832875063740146542573092728762024370883098951165128915256436147170920487799425213542396187826944365648250074861374003709376394174233615618408206500980897063025255429131589009353481639709888340491743603204885524330123845742249271394254617823637316168879248892552703498900819219963510328219227276140110726422922861778228675892157851233058213320763530363812518485554748220451374298705939096454914688621658102373892786111208844009094680608099644999106657112955045054594910690362305932978908248296515159096158303928559094322095347119894242548283988732482969045744259534831537137961338695529928022158410656618965968974286686013252831579940594772473227129193840919609403455923469332875853498680476208976193057554120566274319868296850481984892412743333123867623417772872449359022305158047771935630986996575675607442597000854096121633751497380815387704387904225484098153962120325599226926859423016393958935226294939861496753727036793906801626173947499738537122545204777870381043964357684844980988639000353220873651951849329971164665844720206396467034931029715548699836989214722794104813523161905246782340424845883564542053592955329120414544390012323750568735046354272050286475103965517984906571002210843377808563625337790486904344450764968701164023326104094386227496472763198947686882882979204994584263562848594821274291064864389366089898677633495688713191301899367844861142948990521564907220533729564949163087577208569768050222027342056045507894662460462061426136103301003212448393016509364464829250227375018117044504056042707981274657725572311215777328013301270228504148971314841497731692441420289010371138633716062147002557059623328545726651270276626707418185284909778601560548708481827405392979481948442591130382113526357077775864661894681446891362512050760428780933561408934219403846952244596814092069427443360274720281711300111256133564290034451104081429852488076630497298296027805609681634416417553925081496459282819298228700323431761894796815676471839478694993198862823774399129892509262914205638216266998419061225232769983213552795937704974035025011412278268453819468660327568317264045252491942077363112255167657653016945801019551821752202939900969843271322260294951229889959915419773375029717302581564555674214560825851490617751144520516242264445941474907849431848440797013233996279451689178594003497195618692331060612183606668857420572997852654829860080739287473097110021547977326905869826941580305671901885042737566012667537833115374740899813093768116267211639310004828761014220730993012578624266632492751514469873422848210544964121222548268380256212076604439405073600231476519353879483376256472303749384300244850729963859923836204218696302912939993498724904955963199505557607203616505089018515525591157853347385477699933916023357648071551078458563864744999287173396765878274288235813283218862669123906122394491264923631550142210614515927058471667609208259194280585759899449232218804505447464430823937931885618521771764344740757238357874781697670289856636597154375500264234184552327130177373604910982670362860731503220886640983847799085344362828854141631164188632784428534421795890193524239998242687102664025869823867414930187862293912788745742737246961649678936863275368105605339741787333812624887727121953042882195209277892117728177208677371850707993396328938786644818914669074067702411138288275073745039480414664160243357280899454961182064740828098418008762577325438714508477594545996255188725508593898977178440171005125987980434325872783424239033761304288648625160016817748391755706975112298004585172668090215874798976493945790532545603069558469475603256311413564870801074218690638807874430892314063203363083100218926824685897661437162362765025807806734946961636018291505745581845961021272292849198229757319656996168961212031366284301506263892952195651338180493222039263851104066029432042284149058569510303344326385990180296087630504897815277222246913503664558982671741797648460310796025945179626150070797135132464796311960085163673584195040048632031408472508335316292531131498374592194114308594242463366908693949624517971967654814056338186178709552519794322656141361099136618614691750133631434726403030979131814092134989342209657780988999926480879069913846914336624177526692638828975689726274155285382570063376001407940046384635825589785116856982502536858524818853135027540692857289789396745044313007261775460300058048140582099382293449920331463584426438008342889875706702532863800774697407718122863358569978678279894037849138410876952507256424416400839359217120047590693309106620799405760883734571047673851684894921174300818083950915056051174508206010868200222462067633492347581295038929255638569541657032899795242226155289871694990340534667313570619565132435112726199549221910388640356908527969238731030166862737498239570624847094121904170105209209729682364978673795627348107290769026821285563406008291498672927678390259204251571478416192938281907023316065981097007903203251150394955692893447099932824321844584681307394344576894681879085005436687808071190630373666290066502162868309304032293042532649483989909469687026320344050130901586931366805689662849947775700271419889329155000169678833595296610140594731046021581141775573288587263375938058554501609352035602794259189108755529267142190285180618613891799240103061319834514775248865832397819802093229805514770508798308243493950440638732094577296034453937177572669735242734360221306019949361564270425259709459419337977298261694489228180819057712613373011226123960972805903863892980187336204492821090325931754818075277546178687004640161613498362811001952684392979166062612835927744188182216985195537591091885256358524393290627011150535842344020080509415164447294860131024171607050698855767310056065653405013372825947491959160390749480791658657081383104148537919483296123183954642754982589203376215511694588016417540117672557157450663340985649564322444058472678924147211401368626120004526945009524705616178097908997056149537538473144497366630415625645414132086993352246336402342597581538188563249172383342506759446955270058622434060529871804782933292578923311561563797168700321779148073017454601284418076815622013908045605318252917399677683627306456397862998242870189850707401865320183005341110841514580746144823310897859487859867884950215817534277448882851487322480481380648188167967956629066430685205995096854003871944773683590055039308461779829893455803444259983429454260271594608810688664060277409082091697248306630845812641939018479918908936087054932675874299839074633025424796712355753527654841868140121394322368219388901262065431960943940195445000009103332396953704807533646267903419598909025307033267954681687620310683244858645200126866445146775534802177056754967052749575161263305033607038860880457878427536679642461697234449305390637500706348647655342958236950089273588824273794029692003120696420577586492266114504365988680736485939321666180754573604890664836341475560116095228292081421418604086237788318704318400317657471379129930445100813592245776369603486096508581799975595664928261946813998698285481493714094618396850020604056781904476600919420802910513809643982598200134907065815694563984018251243193320275436273138555677868190353247524308734232525248605046773475383589455458608515636274914226810386130266960402995086939983807555612977606015014592170430886159361466729726752783398965228685134686327683568400866287275525108516003911904484689210817175253500154808697257988362878848301515640116287414014337229579079356653628828852971985691553252950442191104086685627775002302126660277786172629755518843132094311446868240005464674832464205851064880021016995206069865593157476006526242337109142880177692147162330197831209293406313103160870837980136322798206222240398598266352128367511085493160417537280776484340185953262195991569085673889142383914096313341042077918309170313785765853229910185169163629760557456508679678085405939282821732865288769230802878591113057616288955723379680623378226494931878961976398758231397807166586778160312014920311178301429634017673567070800732735029173662364741611442937929995482096563273789861055816987466704578671092389900033810301087908900492702458437401063125739966896559838316101634104216164755554675126428310690320301386069989623836373909664666150724345180650237398920706343362821490666242465277328066827366472629506839000203065094793857343162425529063286938755857577158004983342895179898748630913788040621249844735042783037347882157380763459367946226378884848001705909208699821334342223505082116988597793113557627469553410695286021511531575165427520515136181747448395250449953897545026370171205125533823146410751645287876555455163374608160764181406878630466573259198745880803910654863898079574750619254821780811551473597108053769121694006158352654267509269340872112104619226684062878806201316873635217546705587893878361495182512942944008796057511818929664160012304304382483400244275795851398460764435715736797000334046555259392122296111243040694401759508946306296280891395586254560764719619830430106166533146958351455311832291105867802581929376668524486729131221296258550575239722427116857130646147548455626811345225716901870830087320707715051724355660098593845774929183739252290315651244197148284641951588429291249003235137913661738731851189326941729402179031555839593765015533206455898665986824716241467922905160727039965908727326119020096773567864144215745979989594884001978686184537741612396585130333912617532317535942305824362491933756887598507947281304165291342837823313668970598794156638036269574643207037290130359649794830160390670743599750896488853010229232561675468948516927586702440607879411833070550487727899480656529827476068914798448994434540081026012856408219439902524796873290518025804321541734679211693562446353770616536555135020585354023081880278779181793975127207858977502499497108483244227651626605355932925355313262061945321056766020244567688632564368132659289002342699170122191783535431763899741808408429756078912488907059994851723002119779052413706068709186698791103152942192840536791133474650776858120402459738690302827236129928681446421973026044582120391349093766802737902817766113985930473664947378573825574896608866248598519147029897813407959046363095296821697134946319608434419797071067160085787525385196910329995295620302819580095861257046026686363297636996277251984165835123324403147318509856443375080638931367208523931618251954482279420856169301501349581239969465588452808776031572697990687138588105717401115462783522548861618884544874749695057247379746815921666378127668414418783971395946152866679510062666233708810490483079513519648819733731316409671938011694244439422342988479874840497970373262961836688118064752281567260271641542122483724577066892342126736156369890594291160412114231826689695781805555796390917641666545822849501282328650372113611661538758236731078655453474075063810972645794428476996713338628921400506254059190615362864086166458890889172298433414130626030176677266961926883992786125782404846340350966647656443555811830199981244272385073282528438808032682792612934625479796221283577162435205910411446437699610781551876239816148695221253865004945898468204765583121779467160383866731666696374768206857151205175069960920563032275092635410057061624326795038583693220412029732985486887961097917320265072544242136007922087608813776895162359499081628180269530356061516354120549613157467108222459677024786872941644504267179294010096427798738562568701480850944128298520785569435862284597171483782777852845413890312026597098251184177614884812101044435711462756543539436945745775406157864885594807427897800918979454529605305619729757988253519259752319335442009120317929378661351358406883139727073928428504545095291496395640076252511171441364279011786063353050718871531423192619135817513131739025211061701306450934438120988535107595386312402534946100580538900386194622089912661822113250589866512478590654390804000796297494273245418558010418983313408075668132123054631571072579173181492461081444072073585645012140701373241181846786579257938924086973671233579661320000235928001234535840588320480901667612861430651284877780020878261052133438308365391943218752928723635310041902379597096215489922388103198093597190818855333552356134756610729904363706579025851196203541462172106799893577473081469301859761112800843294162467212770225918075093729997126995140393301814232058452832991960388939440692924526201128287066111930064822396413373592842064821700459995966098605105983887157803813577955215431808607348521367302854221961256507366239308306449742628882751259724200683415131921664654467570998171612452676056639099180167506110643171121760597906704499223552431973671014068834108866479467541678517005757810012393398102500324106211600403439196683505663440425838608168190788521830790323234004800125679213285877058562713956497455223336590355652933670344200465721583628585946141288080508657790138344990949291434491129466758766592234589920983231697624966925542890421922166497693217449441302775724719355164840747236289201538891845107384103813265169808867101781609862833391309112882430678871863896993359700545425221944371724960776659857987584407889679784275406017266063168699058226540294926263276895510990643715433749027395820267867288899553890379417922825815600826012322700093508388635214563911641998760976700628294588963927450361471426720401241832388474433598048072249181333966580426781703965120496425871713865422229566834699805198047912397308071562054151403404412371219143371162072694058047251816361256163480405659755220841242989547514992241760720939863595513092655001512219508495248946874884483471906928330799612759326384974694316749301245472345145607599725574448827649742228611664809654485695767103379301655175109340386993930918651221365054195108655831162389638620957038900623686201781455225749375886815493424475489194224730888521806061730505309355553295481106830873786736824921008638731829076266317397955932815568592246504692998311587338542578222169071660148204642629984205568037263365135291082613401073180127285254709120391752191954190464057485683215023297791391352420863147027247626120955287459603568982954909250565326174649525721782829455064096833660365582880689699270836437150484896162894674993463792007429546510732141285591956359766857725518406179722727095520561474319138122646854024014868207885907672952923115503675813099335716429515082331206549370504059104039863423662028695947625102309141537897085923870367998125342256844166762434031507941551486383706485813841060449901884097666266124119799456227975169257054451451466934622849711566110764089270015152340636043143429744930773220749253741516966197234718371799884441279655716522442149606343975340461576691009520670629402931187410984585763654286586722574837408730200551990679147954399554132467616493595346209494893587414598834714104549117710931912820343016305034458157769058285151062749412257918224324982882855474603541377479399374196939765604932520791608460645487778614023860030070162282136274867021423132904974169842980701336342950313072127640977078744830380430750610834611178473515563760406597991579357182993547478983208395086970238938115270552995016567622263798135616543557765625685845662201175016283988584939558613686003766803536799008195240224991102887185495427551609197250000689606108624017527844351318070138040432166015727193971759478572112943548915253512050606887153893701634206160276532713422392399402339981195942789603839735983172015576439849990146907010193286905952050973092153402770775674964036460963040148711752368333236929697746667536433396284395885820467272555418337579294200723095088377028509414836597639246943070911417642239209356655440726112388564550917553473247316844517078918317859548862366485089001114245871315937415485662672112240595275041347921820651257220037834602186570524452147532581593143673477859376371220960686776046623146269731211950338476717345218057367415653747971801371653265874280793837827047848055821135981898437206067387696432068074827656131058190796642308538945302368298603842216386264269705629072541363428643701732944791539705213638035805268244763229766327015048447701971820169558517901483076427743975782002337790042553688819374674243645545767531884739461669500975603512515974128570908800742290127227702246176049330337835983161478943095257695162225884354505155169834295368686658690887731061542417584292975395240188902818480333027078682233182402164649020755947304375579680818902566285267058247961619880683440319429523071480416726104628476384669949592746741067137387125193836186313072622149135165175366258887765618872876759355451085909645833918789630672910993541768734069026668616786187930863106236002460192649275019889040010108424300802598617377584006701960254323586706100690829222959845342862977966166750271491782457703154857154412008123952065459893575676689020737848242674387522369327369077548285050230411649255075062232743338386065325043971320286463851936261452440830186095658805240912747603539488903288219788126932632196075556800296264376247468445834068808535890017060969869375486833219357222663482276020689141293621631938188046569699883558703733548191630623719789796072488982295759663617345236135978542531553071315026606035429753489076117722255060207497773838511892821695749301475241202709068914624764857389801990401870038314834692966209749812604533067098187541005426103320852094965636672881224768841129069049010871468352497183468242138051794533662680917246851881810671933825153970567504544334036615356990218248034083914391212789467525379121864518552727749900229042589209409114687658169660635792264365142293751654732800605579489886129475682305282289200032638790303874605979672431727961649311232351382511998252924463867380720637399089748867968315203480657176317697219126484506450079527105681950130303260506153853316210754529168219077726581144010004555362304716412069425476906974462169232741863716801887838709905846244910124703620385844670494822074586558537861151684949119607606330695273923722377463825316922086420960398708969787357186019320228858489210227613211586820095248759546405628966130760765008182263425195361536745963783549418250933620996817311885839100797864524456167977332425884396794264388405458877777205752300099469941023736848911503670534075585497588076481897881338300502439162214497472675695209029469892280073727007695126579316496128934785464452567566577680184227739894768700992336130702757424853521774588865270134846624020503814999980687432158830312939103986891566929134712878873884456756036603466263507416155661280860906823346628426266741987092974715638441824732847831476677089505258622029217023333808415779569236650685558425390092665218428219896568864566137125688992144666211361615852067961764384934943297020083501323591145348122448532587484410026110719487401555326992922432658165009887163006061265219796723104688132444477094410900875008785445005125696853852062861353329465467374701551842194436343046469665216504746399806929515714158849328788433651070916607194299950461390847040463077936100488272901743121174245856842431114482601163782516829691023783421790813211459385203463009527009314906843265973073474309578239120515655141349262421552514103630224614853629734043262919625106608218373987496106692884340265547491688937868301170416849213419301983767544186618634391982585022279424944045804497972000668859905934939657472603707910992241860796084011981309941064049635011100672536431288517998324687824119905685709928424381212147877596479485873250756541963395834494533784358988175913923906922800060840718328360732120164585799354702441576343164366633711017344255861757983242745958177861553945165812266724604623643096875378568970100336814853191014816874627427475675073013652931783617816304547205548274448895251064920508273731678491547212981141385729910922514269746646203655491095324343508651748777545376381955508165186642737087513826854191899792784821152351303235351731724877275705551593485772061400447831929061094254678650641127690936337075033098566250886882069793835859127231588953982839986572004467822783902864238067827489343781305047346471070426244603449714859910248456987652981774225296385580940195318394266391244108574559174243272196447404423744155166862234600757343787522011557553262324440071324094769705129707395558647070022657555163976726891176518418950402149235375218559692849319706479828989292961056756327776250524729185032360500791895989462487037733580031965523588940139989359683735274406309830609728260332380477263056560219832384116466839247550684456167418399429843357428358545849172579906674818631183125750774645979690083394295419629675808293866504401210641418362797140149569179293364246656096338990565587864448345087329942691374397711187786811363716372214174352140916567460691376657119387235216990752727746674667605400568954162775510052271992923042407775156001484370993986793311350374792645741044114971796311600655308525530239526309146708689047430720403524282404968849289727479617077382352113514439087595272450234955480857121479259809651776035172857191162986343636292663210068877294765123539747615689570883294095092144837089555739618970921376435632177784074153199527202895867187306178237765130042477530914844766332165203026480756032275943242634189515564648977455862248607761431568254052893424562214286139641908075020312712378540708987370312555030937336318064848934151683744969395852972312224603813008346409027063810355479315427312168869111884812863757656342558013526739995814684392364623424968804989198623702342833084596232094241736721411670204034906666987442821822338248462079865780070753934014240265398682265554348224394397733595451868077064225777628640448313289206382695796926988940271265033705423940320993401558654452881842149762831877789940599076060215457379837756082520531221308203545252990138539648738722086112041698137024140881209490843784742503937612732349686297561893095020295398936147517493983525312339974160598105337612424078431959739832090257578070199112003107989547792360052616435659768281200929153504563584052409044403420121591398969959609070506786699469653827994117705653180013382960335492463194790270904645943063311678928129800682224420298007891776325930737331031061072982662211520016432936617423570807162607350011554482406128739975377033234417652566001384493779710855505557587858067979638002177556024193525955196251701955241866447063758120533048137155725094184283439501318044647406213497559020929048680693146149498261072960672293871969963349800155975268000836160906299372706010428801494368827199163019617636700159873251216685940628658008137717628885638466730146640814932245468592030589246619368641484273216893815924626604900087773050232955217932081325256162769838026597792095472102706344991614407253245512548608716771120338769033627417888030584661197969408227297412452611745117015511134190720112533511033026909264417546916271676746796047108706114497609445729510354484794521315539471001307588179961610360608539895806004100535139983274899791615335257193644540762202561800112258793985637100345285378573301471831717248604205282991206279914095917596648809832758847909014085945401798373275586854747591736396234572902365006994525005685692692055262077936524912588330054754313185106699058550934904577113897592189208940439118908961557890157923423708692923665020004197922685237737291258685995928353258040799695992012914207151769434485084966627898631719804607961111284575357377312500560180252558689157261237762477463955005002365294030196556277693873083802446455016989683750289878935766112290354916497020250576234813192298923515091579904479759039630247161886492845120229243498739572609101204792639959537609865757724696892053428713951988180917615759916745209285193289129058976910053330932923806272104142166404129609847040615612956173712034162390921420940537017588164066575422175446156602308268398478256321843170002019919450320152099202412298376723849698588867335384091300151943666577571286306411215386317627112869267199611303346356839787175821468431382196588781902044971128484510198797408257483549832301084894175019507270331181802681591778603355402937915803605211148644234590041903599066799424930573216544936187789495398131660962855618279571854833661520870455323750284518354379724554127478981584990794052950118326546648906250363299338375806326406686999943323377559286645577696440414713666345795146547526191172119154134365941144954735400080233591186994867904825602504269362913147966964504441972869635612393222301302417798106946311674899334681718566412387123230035654566533311765103279378563456646221125814517510456899542175406614327917158278900512121590855885035064567306491722823387754610301704112281614578000669807056880223518990151111271563423565260953726854495703304843622474929104740064681904561727701810818086949920969347732718167323318896781439640251521191110400079062687554585193634218169250002509993034400882475128741606199001992079726795304102542058344468835186172353164145281464678636894963225732353752856975311675996440020652485566784227315781030419226937501945352211544622326032142886826136833616598420228085426388713670493643180014180958115177770162466190791023808245832499274572158358777115618981665370653302134709186008243881395337977873943772749054717116454382672161802033890211520151853731116922326274662106814308849184395753365752223450570572716241939557186348822951866172735574123911791470152129565302189627399987190271337267790013677944062579811423021802878711089303181013506843864164799617141851653554086357351384140963873735812417413570082766949553377480420663170650857407753621011440477842618906235602746127179755873853938990937301683055080092804177064263694283423745949358738823646816434506889757788292074030186702559677904402378879473642254216099841574083213237319532846257794037213529035650333428112306622536675540420936473209756061577957039438528285227177648626624702797588367736076137404415022704707478402134101867823886619971021882135981213076425507522551544223248437494274045290529195889213473369250839366066651743933923730425517735226291629297529005165173446879166842247140742351280497753889889388534584885902878654484291288503058882916793491076931140163795561142376391751910880566775052812675162090757436922139844649158758263248822632445502895106105347693492882436628352587925912554921175663850059099674832984092695777652820730468804847101732258568538508815095545598866531015465888980528798239057768644907431415784471863747007678506819758210987182056855277035567622547563133251465716899467884333299823263896783371678077416151408183660857359069274820404900719957532896410705597647585870010272345152735771854906313120846348828547573509242810521496640527055503024656474464329013076620165669242176238699173493964801344801350439318564523983708701651343773367418637400336384908056187868648942337981532920499949716367662609393882628091216356771275972213723806689895532882488432141101896788938403890298052842543705371645950705462340422628362153174135596219459864916582323445965192676191465914140716631308949846502414449206658994265553722282658681343063337814058391825967633784493293310338786265134192349296263176685510930887521217261876014720193870598983506642151650364369402101788744807383076452145749325955689965148123886996270492736436862268022483586941200167360195130981364042180229709059039299031039903155766194732110275213113285925497022961543713129255357583435903252778803682750260808647355362831022007333495421699597409145343831931900226168039793353106090265335847367700933601683192015354153952760348762138261028049971476293577145580499773369816378855126304911467448165570075089471430804314114351270937026046255869006152726174146246827775668716088828232368424451862147589172069737303426772996597977810396747994794333264490940412817132666935381295831013933763627259794463537412735968792216915981946015469163700798865369243469013578290979001873390918223345931473106521016022715549824496597550182634720782974556162864898792540731373882941802565797947917835376212456401198996389362006165232494135591325541298243649162480315216336870456209956274528470504774021134879992953092215561629212024831636201825383005144452579895868772078961150502467615516922775504993010681347712151059737050868591138725741865187532916289365432729651535327314640765653607576414926349484887395214738320283433423987056356067689856690043882767845201960542822626236955472500363718335539995205827282910688841302843259403165934436082884496261668534633958130629171391734271053055715922775309837130503313355778131970550220261406224417428922013234178252042209051911952985706368400801778126472672229648519286842595094411323426161239728862136883285594316393639409090404736257776620052754974032215193766794865903240909950419226751503280983128945235628877861455012245983645324979725528810325334696298249267946763747314685537600055217756741000445681912750908458431049522955795267101077067004798250584250685840707853320469889220815733022561373145006247577725076309983885287736610001343047099343013601419846220161238164210357834629448290619337307500057929482165576741402467670150524230558923002461113811777924720183737161441415378397302679445594977298495714274655404232072927495884934563464861949007534100050094063427098388687584130796577631240012735628343666494532164802719280694313656664565903608638103878836085172284920787499394127542808689716111829918284600124833907244841761946953995865637808644187995637500263711632838929864028817748661938771017759465096465558631311647065572100743054879177700773133199879388925257362157927862707216784921621793766373317594711052278233426444537402209330531158231439119878532107464974192726829392123559000448618968867356208931221250126632773379723615723082539585438625493845617483407745311702864518817981653370962832479395092065017195684041660142777393212456055755062638241154784521379133101928471858157203789341284754254396647900431167011011804608992502597421429218264511852074225621933910457930693313063125175738299547865728025627184235338276822015268892583433894484161283228342469039565671937683659489970997478635089334315341629999435005410763328298714948927517336666342688097040874887717277460387888117304281562723451039771329447171139495655017194699329826322004100183627113564166829465560077584277351546868674610850442432370553588243945357400890927552239064679991468640504277701905563675641180265255823301337614721154231337338152786868935254617189824315625642821780084346135791927093359431975240148224538812349427731689552370490142573762183084579608290130792950044026983876004877521327702440584406960714324428859798369139400779052451544195347082391143518925558198701364164146128684412899884012035251879675541922941560529923035000863696638193818629634222243409416888153947049700740828383965218315759219904674959695456626343887416461295795386049503454543251394643438231046994869226887066905690385079538002160991672678038326314965402831083603323282633067809601619889375569598553835679759029139616652133861365520164543778774951934107151152258879251437341773795767478137771830665438406647936168615041087321575731085195510374994634312087210096821527903202371824774808093147607923811700599877683925979908968398782582813329415137635981403709773090330416064268875500647758926640149534253711923220162203729304946320840296498769166483254915987110821201666494286068335439161377434991943748756687612163696972461745799158893388695899234268858151108888818599770773369718868564717268789314457721502080087953747807814853660895062763980865755420900231203070500860165063643902612699482831550826981943762181287538112218619711335305186345289021657627908225295152704168960730446323464981159988362192770920368564516961443973329745187547148257248180969909331440017876416937552078346933984647133133895376112327078022804568002703400729268758226946959515407154317889107613449945762363117583784766332602632669899435499974606366056014269442152278746630938067057761524234915698944703037115881191091027984576611183335589257965056290473998416502342478435235652083946084750718249249734696123755031352444531397467825545083251672834063529784247322226201304619839644801628766505346517233519811193397730437186779266413317673702396698041782909641603311274274342772136830400750562862837956822421132730599225436588075337646890200160685847472500082859608689519935507170485307728809295549976532164412893681812576816310091724329705739258123531058130716600215923933880124869145127256883499292042238515258158428271466236589428725270666416899158628417602135070483786620425664165855502169787671963081647768053796139560068422914676580862481092935896277778528882037031228547005424805299300798900734779746564302838792435908760677758249489787706271812955411641168859549946961107646499563209467653928252197906804589699905695105602200420815397029520879487978159428452539312500277895307095991189681622507906031466589647400628427674640871944778217021855943041849773954567411289079765036893639069162557128979084444758198538376727111614408186236143392411916184893337707011580101636327236344509560111079380055026978656696222057483679515067946101463610523809447876351792368125044577021688709809752455615408560540843084281887901663354940635560012909568111473230159867917849486631524375636355483771496405799539565023901707534960278304642718717939011415031391734518758269062114530249833145034816930171354360960964848350243337401178931367047771214715603041490993778676117953511529340957603124216969998077843364065115612946528385767974037839108995135248144097495204395246743884889816160197721452954649156212006246317151610964540598450933817691056776480043994484302010697596821800359663565614906740264483257247724442072048307320594929239094385986364882180738587800496456201764842944427219504471422331375824080906000458578601638302596248062712676650384228856942461676148701734447277732734654333812049433126683034358552154216537512843983880029749402608814648820452639533931649196795573444443954401695731514405551706800061747647519117853758576137454236651659419423487120493972312012126274027690202979145281077382008460256198023351458357678208248712275967894026992660261621894198258033902227737056326999492105334450261010309746891729903080124008725569527261962146662260960650404221258628445430849641625911674637093145948160219585032992914431067178029996697428472722507736007022103543175946894285244940668921613565772330368177197668746797420614130616429436568281134978099006248157185387290736489843561314180342335880203099858848041645750876939702331636014106672787729771017152352182169840654750083114669498238652039702183999776049301324495846675998433460380028174392820831483997470997123447051585664598278901851180010670178378624463353043798784793514741898605697087396859583793750598669656773762220621559213469587747379419738625387297081378811409747352577646953331356914370232332109265856139016562017840030229256981525822383341284868806006962217673573936439573385796312542424012158452035712022335160253520643170773768050566210860627903112243200276747373109099555780787392963671684855145378601000400767611629006300232296797811888180213420769592893313156540569876909238973516102845728241488494933725689669821040060187818347186970647238767485284870561723307175839186146337853595500453071346480566320414845324625700617024841286824101838898534509781139711096155859679772379772244909660388504654088208280724066227396419554537359392052042643611834008324538231673371444123605523016132016365562179534313190235928416865613624739318050292764911101364047343514284582468567051788734973327571831179543252970481999885400318333031247906981468617251240846360552773511177406894475372605168550515707224519060599574383322458156213515568503647186749866272594699323332311854733682074290286348989028875778074171543532692104970053160802862080873160913117340377408071080430462441075227395284421557594309918711846627760120006680300417158818262057303712828950073420127269316796500514567210351907397090411913855278283992658343445458896762077464797174975077895816189300319810832594746825882816566640703136902679616119412422644685708135638739770000391028082137249249776245336857587385289616631059952322235876486707458298327439367931926657759891774578076317903633042724506459600245666232230785536270982105076119563903328588415061749150175536202287498599133723379334152118839355595133945362753566617957114082773422584164680620316497665976648127770062774998540229798684098843931227145166727903562739614893469025188686840137067411043945464799090111677029857385136540535835377388311956576843138375770288728149204272470316298468032592094388043661417090409996152995020466673192244192572855748216966963516733485555871334793510645136576027872617173370088753029414350653962139268723349826072527402711288550947142077080384016892796839616141934529586009240471500133793924295702822629691089374011643020122479408526868798690532843692949284997793540271920684707675574886683095077692313961234251191291144064005438105032856388956231059291502053338432264286151959833527408066125538328083342766735567932095679731967454837029799169552635802383052418281435895201248287793032822986086495583592429272058350502841268371286964309616240701473704677963082463643488529251071591468326164610854832798862319591403914322207611422032683031664250519179544292994084349191584637351624966313870455384988431952352665734523970173745107176112941377225668946559263009057692844151612080342321129602575576982165315815243768844958468046176647826604556603432935593312786820117955994297627884435591398880974929499898446229101947314616052610703559626602622586871091840163104298857900699871513089241186295671730844633316673617504881027891985209171535235272108065128290603891657638521965730445695056623748115902018894988455808804343768526832040755527249740510308156400019280968818171327914308614392445393068388574023369521765627219629526871663313389148298177725552455753732416805369071419012507787275642991990378356671619537098228160340457899436105645638475668470883396143860495923181571507088569146132985684904821961950410731146399998462848918543130538211033822367102937840807445302821020712581228834574685308760494118894614958145927569224660632023099033227030778514358160298778682506334598512893597326040998191831949554170950394786153727361369328215123389061783713863089730219536252435901373849157193562696797381729061096496840168538775195482433413285828380924267248839285654070949180787178796692649122277813762668509156909209077361083707440909116260611391444300473498008088659393436976913288959274257182825327127724032353112448299449121001426918449452260311741077580262789880089471928843933554563883619857892646478084228885563851960143970406305672456620296575089016402664679925619411591241803877756265115162746973614569374549928968772426175147721920374842489757718971775597285005539630861152804392507053863465569507422968929507978212217062997428947683656938895218885685689612392137526791408655260011503392743323492623321823580108494437410014172540039671080329511593382342402761514400430413513794214258178933785134782653505562818889902015389657857189632305267711797701064931823246242748736229713612135944812100658198050519316185166251826562921018976635832821423065872045842204740940434727491173191055022018116099033857345200720799600986773050205940484767232964830481958437126238036196744436103933147703547072915910914393867983531999603216513438085416316788638660288923798349959047496383364925045378494837118851603359357154299587263573869527438544370135468037054627192170342440945260706838903387194891153676387343618231289727854958691253059454153387080397584129591575591013834441186848106799568486822210033429331009503510529162163408331795605289390787311150664191262695226416398953140397119062535432758631796923059925936851019411129346752326073795296705636039606034505686640202013845686861406048994895838382276625188844478996886427913691584634752023774301023124571205343413622378240598288749083591886431736841242212150958624362090624458007849544237146359546037922742690664928888172192469704571032318996008178933156454933911060859374131387797774934650496112406076009819034509463367993608818751890973940784205250529186578105202046285431111469531662582795864341689475304289367923728488428541558940673061921551942871121813165581400351390152909738565113170403678361163132244161089210436663034071621611512437338472313759207539199347602553238982398096856376159671963513428190578015523902226622918537540331631553206506017284543947379428187095967389374868507666439987096411197015940685151048209594504787859264983362764287788232683921820460732696593222586999393148099321168852707845152443714191313803245168132108663830746446088291304561075485354431766595588591004164084388815622319752974916756041208131533735307061166233441855302817945474697947800942058172301153555860722838982374366614101539221692089240946168753921083762996485937504034365516556935955834274246209429470881357431350801694729105518805722348688627676797981255318026646389766758808173015218440601600649042512414135372588895476520791177065627330645310616028311111695415052263274506528069984651561614043149524677290367270600459606576245495798384263665415904975029911625032343219517620223836843779099210772879073631053225196952853000301151526788910720093513099616816092774311527729990446539776374059996054649919360899326415587244380604575944515209186066993226913803724373790513224782090735078808643916310971708746284845835663273390741320857584250693123120627663632001282621547634279383038438062867897387104971550657211284472654771426923308820805457453250061625540268234795196209103625860263825645761483031202521796115124169052440787929051856739148998156855233754727063612589496556877435634980991300176292312713321514735080668847916048126982386779758059305815738036008378913346122049477207290315168317828541132287887675116198728008845298098227097153672550363992927148805739117012594135565553182411159153254561620017397011394979616917727385508202859582431403270394496246727630500848530475559812777581053055903173374817273932654338050647287169641916647320644548679757806928877521132164894165039775741092118795103110968291532098570816062649683499585309809937785869096331775676390756947657774330504971261446314792923955822887655613437634502237426278343535630839110266901252983090296338695915786053670340864042102828311262670910564340018299932692303364452906707175801205838904350045177567117107120845816376726173291039053452896740957187561772244013412138623197527704762884623689208656272939823910598939672779389946916489700322348209154932902372973632779595869676757521107072666221399862329373482187458798927136608933494422863266514419670673345371709981145044231372586485889474837143611630513591505575986720002802196690324917927564479983059086948361999661808988707077585781991586274954525155839055467363051440247612543865571123057558997319163711215763889722756004270253924513596039382947894264471489801256124653418139872031942812613133790439258156323606770662357789739907506561825660940654441211279863180879562661234167896317823903747017335577293008887184350728399741236019560811787426212283670688056207464313780543581702730799788299101608649361101710923700092957875570306426333748336082390316456546681380363159679853847265207271038742166504744360255595188993950499289002919679125386666255087108337608841421218854525088995188320768489143844091082997129634098763094529538980650755891991426401972750625046248835628824659562607487010376989236529122761479076938467096411005343193807066824477767595303945748450086196194615692653858056266785162803414823016040872647346920609490639219580956243090349768810601936137505998289415023070148693052929710581193142099325372431205130176132672221397381199331892723742351459217916113316394405522878685807842311278710485489414769453255100630765392576395085656169824336999604997201034180632733806334555976365294781860787577027730633630253253896692447505354374263858010239687896870433892283485351928448556657980503421904848817076391645665108357117719671822461591191138984291128056188950096737314543460927989373273561748594655925713362488786344450989521838471953444117266176385875234863985587308678230662284295033247415911818861489084667908531082812209881371006745938116062065278505323530261244295107942419447329648590200329399016011242342716310292605877238042067651347948443556957986904840110214521134020588381441349291572869806621159278517139725126772452585500831551460651318539528902630491104793750087850728350273289846257087630417627147622671278227302632416249888246031793530312559928939156778441663067843416273730427517259313399633084284001681536995835658172866081141559839945510754317352272047582657888926877209775408346154328795575104818483054861448396898053433935511803144608220086133873843105307005365160478734985487941569891289802060925922319332553051468050246754586731879952389677865155059278651156250196231690081660598028584331978298124746684143104327852981493235601737583744175432178915241367731198314073340625079914507579435190311621370007989846181551174554651577208431574724143483402359570060206026614820761734137847341530584614939525765647424547825565021960979039148484053255425477438002472419229844677874326358605468896560340757713541454679023406374023102061518029962699451428215963165210857906797046428384449961357036171920067252798699423928737916840659882464955093517917836296102340954756586744887656306446078562466492853144173365606741525249120101772648934649259864187374274066524244186375018433535187288753104957967524955860448690470004961608738877757690789303745256458160360649631965724223176982874223790733226959147912009662076600125191264652170849331011593087680260243993961280641478605124074660325990023634688778910761704792551705344769404700370598453231743210086819335399079699923762148707761106212719829708279839017363910868098376033845677274197291277207062338283012949562091936395848974211768555270551184015879743367620726281883858387272576837669015102493466004045780751581776109278141299777003066845855901314074154901068036326834233685811115476778477034887444831581543969670294003322955505834877576273825138911495318258843952114360136217900742157978642708785683016583676256112435411644325636326532512365173508601020726318462901876723204792386339072927932966217016361536986119639011621918145332745040674062972320188456884526139696546722569953094573130476119246468619443220746717755761378658521555251728000394963362238183170971558135634196711456992738278273245407613928830267611727588602834820076999167234898234452750665209664023861722391679538934679839756816427436249065748421252612503939377091160078349289320008854122986910182617358404461836827181481043914979775707427689513850315841674062162350948736464739206709317433363399262474030728933105922490908089494657614185780574464965934500769715826555244900709650549635997116661657406598292439341122996960980884061404454852895768798937299246269346637049815218994484736353441563538541110936496724827197878381686819969941365174283570965063675427244718807674425916143803683079136818467033106364060401718091006698675709771460532356264248386881718838452712440602980892779808828581087982220583996044447539432410820236010150633907823647867552522002947889435146429350011977082540307697347253647584820338545235372216687277881083572209890677217151628437491256010422078915232494689190034048653887449152590818417981743292566832755246649525886872424051738043385637016402616350031320215468682179482925684402817803391319698969830097337127773643569384686160917013752004589693417998316048597894546773510908927460445266665657589018246619397074400642079702395936334054570682477306517271569048747989196768460789975574463372504365590014920536172858174680758452274136152713653206402042945451956665818472626462870878128557785192758541555462582552223825578585339007702002113417200136299213758170487073358300753094037466302363067593023186976948091551777502358829252448249611173911015854962872014427118237640660333956908375822650030846098207459195895340735513902477133888015109172980301132046621402740201693226330211587412048964557694034562226903415968626287080432155840670556674084268193354857105677203313230493013929668766271628065904209773265775654843792774931988427068738424915659886219232358925921043354178993144486798458329510314276327213307716115479898650535524512818547766698632396791904960575221656218890704567798174325898384419546930226465177238563421887202495602185229971294648163967422934263008584138279473082940430086749867274636464537676246732630319466327665356442233696988219440804006248293141990251748990002366386017647903010016597463085727597152600453401774699821065735637266114448388863664706666267829385622076914967342453106404619235036262365556027948116407162202065514243711266373608728369501112673056008857875408880956334654581868709746566792195645834766090605531033963921479082491474474340784842321573285952699037647140594624864548817604973894581072072466230713571985503460106021559478874001338265414230620472505369410343800092288526504670886742336961435865260267475209015030725419324903725341097353649796666657859824161951111653557402399440513378446454979927678528984468175959357979364633017217656248684308003693143004835019273547249654653067730464515304870422814832463645045590829515249286596240073635828537002349450927547204150635814934377585319982495470406752304733078556511002508958063352604618792159716497484170855507642822156236566204022257582171237758487060497609240184001055081277353944657983817286962263531402804309098793365715147483378620220719826834311373396871184663622995307983671456301559226922525221262324390671817438914427152467584173075947881608266378323532803627837357572611245370849852958668934623854622812238049766237212990715817046514385565761698765325847665127088258120203125442751766808789066144298927952339366274643513809806596580113920488372613012493008460923524962695243361734515324827257825541896139532543729489080110501174713780336754593201742192457587956274282178714423719137371750819839095594697764094045819970650390348349637859562927652286466136317443689868056226941562195581741124565730653730795520931914311254226937219729034088178452878341893980064657336710652176876681139874465602707088050937610824462450034424105353026397142619718054622434108529759140553453768214496946668567383619044829658296400091726359782398781426980218545927149744981270861565033584203386018136331094396054443582276532001528062804387409240207897594012495230061449772251160791474031673112201970657240989823684176652373291306192190958401499559303049975074307338892517941356463120888157128491974428422999995080751907834608694482356681765640664548831536756108620771182329744683670296595702973629839182732698126141160371600501873322518439124416318934399380619766606426415127753543174603574680900387923226337379346393867335364678816149189238989968287304258364364278020634262782937607176426000363612528675965457830532521145244019226378894494838413578991846628493297130015048493868813467179364460231270096338101993419466381479131928606368534743214582250058676232065917818333826374302411025329312146875992285313902771174055634737016964732360992322523407631463233551190553731960745971189572869103315144437545365009803714522990070519740016958027572915363007845048435688911621847961198909474892618934222668204075568094431899200688113867918809901239191612445131931611922397489461488542812637847584236261413435655516056563577931343357828558719307768867518148700385708504367693173753199993838496967351038631826258302696346131308297371373659856658009288420925049557110289088655841590897138012669671945347065710150944092465239194041853961159507016021489846858169397277509305112532955851416485169538175302807174067899850899730575248992232614262037524441286462105520550534674328792117497049334724574030649429195235378769769195760782029099022359198065377450891785121567284258248032724237662268495493443976436032226526889605684003627781541981091918513905233269748091945599097666559879970043552070802569175165907649826318286745803507057433901212595117810870280977611872390403208975892158593631609147192990018704023510827941361183337275474772904907715227389762740865114983998763539929271209405340575882635070693383235147243665501742207225321876844327946551901371245538429038190306813085316554246394297819012509018425395012692413048121358288672118081369599939513300548764968297887135603212999336973746818068969170379059850314252841136288331030615209152691395024045932006532060519497326590157673433225504136479428055275973208775462781314495340472705493379647076514480042535644408005000378746386537742323072810036863413053476680502340450737235663367230185046197655255686154097299594078553505214016843934564272632055208319024644003502301401070442492201499991855584885869315729226554749698271294436832448446746682491056525595676167192553440756690729638853473089263253039469107853609558541187908073207089810068431445205084951729956942871110018208422153729787999978584225344885709156566330930270928459701074962906430569782638379679095501479511656472878350237007655389950982692418826609845613733803835487008193139847757471943547262253493540943174860570242449182240434416498286337112769950858504015942945144950839232988855312038998140594648032173143878689401175850324779309796880948798661708713525377798473975099705224058876015574053332796001144663286599890507138586965489753885495924524770048114739962238448490025616170893962004149874349011924447390639517454092456357613734399366825302121103355993774387671397895808768911913248345765669157807764874442268297136466190514076148578493512592982855735547167752872780405893671985016607789652861553862312036631680158103223619694618478908291584802191955985768764250779106981364398611218395654199679462809327431678934579141045271052992838637964988378147904695570997919707719051638132489372721113300349208593845229010443971296689450877483425822849392641218621307734753584224718991084609221718366773237708683281047050093941467090698699307180723037177159739155324755622299209861171586411366117591645471588755507274917871637877555014039151191954015326057311948092354671271032292959947141963494976035317526173395668390977208903518928677372583426862171224432568648358117480151196922226654966968704725752492967741142798482857362560612530819849339780480734189714243879875682104466473885390295174333624679947623415070535032764315003434058768536252666976415977416934872198891880913267524708769375660928997396440324585324213880688058694602973322924593811481553366628179724832477527961787087185767388760278812294689569750433213009907123071600882621442591387464290818422364597303610038014631884074461847008676871822779277458360238592516458424068879165743931264279450754290500582714338770435178856826893327176338600297378296334749370215237015818930970964618807941910148684296260027854523270260872671334629735418672191627384780104051324107723612051528469793457555359170352899102954047291509146454773514066211547345287994418318583702742496668782801230244428708364925053333105512891971814159770585129110518792436211635069733437239290750417271581943449401430392273770316180104846139896620760014244198590585159616829565236288616473678358778376141933028614520518574398602313384182591224711755924250131097914818208951094157227807463288882655865354367352180540018544177276169113985581722916037676028866536869054988551627649481198382189873839151090399616044497483484056988808961636807185038745123005142727398936538334309910699895282536654161749907446204622513149637387116260205901012151431272734187900927433690449569672527373681377076676578448900805353462007680435225742893452598219259279035472912078759162702868270799824808486921989985431696792619974818703234384830923896351941204718393043221435269602796417812032373942030510247981777659568255313638652556705588829851755360397429905688855831680899308433009483579649328733752871152994764659228910752640503445716316612574796612009146753992492844727420127913751797540926710125473289670191860157440232832512783549613086695819940378270718178214726051513971437582007924239527697209766979254634637178577542515545539489177002600655326136646888532730681918212463919778068564896542384429458328267639982992040619650598180432882435429079751991178335972020547789747493203451035211525623709831663909920415235996281800839117816657755104040141932664388640360991926101246330411643773927394379323328975676090474273120141131836008415750304604914221899399518497774751340834887277872161100433049020459281497133024716210846506958455932986630275351543548511982914491000478427853090616328838456074480041389086324269919592927588178524028547829348331124357091967230998163253402997844232122888308563283024974351586185857219804683145061733712520721782988955665713464482953993137884415031490117461134689083835154944270273452245813094868360781016501019083475426539312513433786573365077093748170460610934695482012639775088554201385779936719060227163820001729877367498337720758815637549410624571752819814938454925135311653519713059547975396898980714315489050704517682416806164337819326064550723986394290082671570039625831417132482715653180638548401979433225914129127929738299667124509645923293964447060775499237361214722409998913004697297838063725990245355505893417455757208960349382859518346682672831112491359117616327072714744626636082736556503090725144349830436767341603477731054136995860118460980136314146434368537408737934012311874310540433148024918071934733995368317486065325979578061358385792769779582323654326705722882525430721701085574734268202031976033861275846443451829879194510057892342993047691729498378913656732165643360926565760412347048503360697555922336735009589093421469902873691066202055218648557474878014982809490805339463535799637041250886787660188978710520211488007763642445543644739908306075971276470409311993104729592044090566826355558977099201722808044286812814401608842371718871515689810225190142490175336608864028007179208110290571807260258159064806100691694427156584618662455081514127536536466846215560116695276651881449382284597291737095728898405107691637894409109651157647214860488176965281422037177153994082809122595801219411550213535365331058180147352884777265814487946067897431505894948265350571084819687464810692223274765629790631167282241999172443123328420622146307690881165132646351126639597953887464970146677963377568905706980586761113334952977248217824007533900379690503214090010546270671960058331329491252670939634507394375037325578944065762394408242638154379446819867348383204733230639544141587466927146055618505031128325684089506404848408799591068088958619506763018555775604288905058734332608499625337138817925761573328845008121916729981558584216955796259279086280669393843472524868168334609897115430176633725552598728462692882082980002701687315471970218548408869278196722108231370154913941550778012560232400548539972075546219385555200580387889399975660322390119208526604183604052521891689805984057791191608936850432604875056360291670586679275057931756314645671470372650767020176082614718149359416501445018294754363158979154641981920765051141970550159247894077534645761534123960804295864530968618435414876542634147768530709203630709866582494168231328588149468477448987778001301662133765656025841571817740084636228388702312428677352578094149296289498721307093321663520441220419465394479565532376501044540326447356094280850892241445204073140523339495544665107111656170970087748159834149490381093449663598884336594365345508363166984975995090553749540265452780257013369869121741751106800509115602719892289740560512189297608863157985202053013650281633092006379098058993456236383951323965017041183455277434463426310356474725986789626997739940572468819557927739141663291555769914076485182764430047819090924343994860284177040380343439874912449167637104806032605367048205939926351296203353259609404377349590017492455253639016075914272182313515816373130101861362400116113655509879349080173595795990110728780612140983572868611662543694133532580908085129307262634307683781717548360583157313481704794723317013204398513750345890543092879399148661189720633862674068491629617038027407296369625590756260569264574412892349402629680701031873979118593643786611546145961117106949325047978095334536695475481218571887281020392622954275586655487043474998721725405120993615225521051172384114261811626985906205591073150948095841118283852359941957933109627838493664597950835668634619774107263174938997663856128169240300084533225884311608337508832900317644808752059022764312960800322893731268574272856907984348688961602509610341291013522444128066213375612565460036493025569026929973084549902064812351198187046081666770679941198166392682704359126603948533822849618846411744100825877156182701323685686846620431209159892254935066311463792025306135081750967880334804778544180580761125152396773294215798186708483016049690998219396568343783257043025126054276327637413834690185494365633827938600071927288141608438499416036690663890176114469986984547054804615333458296927672240549255307917257734821702880104238772586128808161463963746105075692243934673858766978646246968811722181889920451045153189560293450391757156010318858624209440141197233103464122196267423244952774937908506619024186532250885084910294823039231471218079877058838690400166504873757713716326431489975588494728206279253411053373815084670725197486709835690870390044094842357279178604780229495058063325765824141611759006135560899440326855864045035963648126189147492111353850545424171522073099028663098362127997823370373499340639784547178443990713662265510760403396011387276824522814771081423640527443834152446268728948292871101502686092238993050538913223069118613217554530142627829368431853482343047822865014594436464817241461554756764513168541604388652737717807544048909394915020887777832513997713676052785267740842446909327395909060383417755331154908860673213115627613548824719556678887795602923694086534678042251706725377145414765289468321773786656918650205227096377974096661386696406428941480197868007942615063867816061065731466717890852904873682812435971345523782283873430892978998432639603509775574451191487075157862126030146807009611120410634800598187953288091422456075629276590304757060281833539402881501980998942957511011583876003299747828141384246392232481858493297796547181114392581263000715256818142877775228975243899884121594324452598789902891054575840264818969124745530911888697966990336686714046057674250014275267796151021742732944327858584673055571877725520180935804363659370095522121290906074624503370688552421516874427317566956259913140854878626541609961934873579426972701973255246407232961074076303412756723248790517681095377584249921507670114644248513195713062092105490383586359233597880183336167774011058204932522477521689325969508973126149113222508315914910780060010964914941627071017224095601368729549914295610976986553866751856555557809030287800208963100902490921643599820699487491562384174714769209812316462682452062761829520185887482342438834762274815737279820872867598396331700402581529387038272805098878168061673810397159319341773488631781870024298926766468828400687312205528044721361237533095175808791844461828941287447149795605971462685599233112728006981710002103566832416120246956473232730960768743225298799686250364205367665720554139748324530701757871345610534284997526782625686325179670543657913414811661400753735076079551318331421775290357129478294887038047076621918638882859452820892253073761452009927872089311645207603098384913863308890441110322731717998573376940430921690752430595028340600073547016540830860811962194408118347165437655960991531651710027380490190143069548560527220300437840469424976228900044878026830393778213655727806391327667956000283343755554364261349295266360550415142601222030740001959292168707126497207647399986830752324700599231890785411135393666754434858327681106530143768660463447443504257434071933786847045930110434274097641655526304359287529499169314451575905996039671317353408725054929085336895944866028673452203467573484229460010976187587791835764351799021038173878584267547462241046495649331824184377522127181137438457247983885942335765337622433957714213174621801476345893892293940525126548432978631569908908325154522652131695744847350029360943559467555781594942186148568569505647809763067551438736282948704994772123236074374732423114981971428688446797178859201022277126272584203510293196032502861152761851684713386231794648160872711069183101474141870031299727891952280042082421342219744089815058214527568493228310987208453919002831630681960642261465320805908750055538361945873804239797881443843227252053161703235928657709458421952326735874634472826826677356589420698619736894488181600155979620886732650715704965511038396922139777205897793952950491803205896658340954068194339997660898347920120594501900392276610768764732998175856615203658845575806989037188377291915893213255962421796700409954653420259472986794564372123682799713553646824954977980643159677165442099958899433840560553191286461618150458432930707679791666023261047456277113049318469345497699035348182119260855312573472748228401786599186438927061251381463340718857563648494671943424378734851384443369933940848103851699118266087488754736091778128967756650429674273312830551391889431036537458977445803604939890907929896667897018761160439316881515004212033967203456670372988352721520903105983616578778201822793072524819341696856077046122458155748436246934979255829192887139139200201467590997795498599417286761581966293464433082947855144607062589943770470160906071525716513437119558678001895028879562330145129208413603241313513216464212764229755248720852362966762260401604423476655697560155281895064130089889770414664442427176807741025761995039000797129997476063185771372551793438998875722399436022755922686865586615029808387968664196178091964373975044244478842517201266892014487980779890500684140721796835039966552701196817556514709781587813522289193147615367099401383060063903621722214793600549571869772672825189700864563054180585159932674645483299946449279199215573880093968816727896706766578019958818799136331739625978646534896145238912252184052716722790342587356094622847508206455640178471442046565055753751827075260643690986680980303684885195495843148014631847525284476560601845108300583554006697377040187584667396985616286771595570444638702993283016917112561278444859728205743824344152343828364732284883574393490008826308600473530098663354717099831182548696394704652577068858433607681693783862552340409219937063393142568742548802750365744529582154886598962181802185072506136016541776475825784752877274151629013767007364212904292374305283444990188425473759274894114491309418174444688140227363070484495427840509945515652896578769435289112050703415207958483109998544530567932179822829978416307153606835356366489685133842129660379878197320931943572070375505254239552485988337070641295254560844506011208686336762306932014695604799910433516418639164069228189225150741974092033487432828210116350090983948829335617803661206740176720715875653368040763235914369730108256605716074886069717804485532439215992147629834435262112549678108827145146211691575978217365949745918818090145949590149327156532603888302827090892580523456802281329637179956583159230970220194137593241389312509700866908809449622662556225457444098753370184637550226552409577392426337759306258770585187386048153536355997430768677350053171917916074645925147895326971182055274244313725690829863734689289941441985451065356892321977390897377152217662730850699602520305460747459826783869540528979220396854185439561057167101370772034557653364738824455487102619591518927517709138708602073501083859477765620962182410456954254622056774562969628716799512156438718608900295859229907666964992971474233306253068550268668270984363878468779301976320502276491029017655938516817761438287463649671125929022548334803422760607761831739164310133709985041987347554444335075756309178599209657968415152910408571748657589456049189835737591700288358496860197989777806204188461740833844926749323484832359471088416151540032886394541106123614279870991770057004155336175768516151184706936984054069951070676280570231623340527416982783053378755786349207191297017301374008808097834957740811781635332775241580513555548777669671201317523778069010232243524165283113434111314015274318284920186468988924059313417734288426094361308889463064869654084070595797656077082273251639721930625865702648543612879515550208563441292475336713955576477223871665016147821723926165335515927787901630875921707554420824710685194036467090153390828940020692456558068596550002279272114337816347323049118561635791161808124139027852197287911695588932384302637594120798289430918972336919177344057418908277387253421507459394330549685406718442311846457793190515486549534161016402678612598932932050348014578180736035602868085543637484374909692642066128873937894675073458477776047585099211364541644823672554468069275962192395722107763344236127923645459205945143354103338096914715351476385768151263563232641251724326178301151485940970817615084386620985941587286327230897792787707438998329822817260108683525460984094045104546026565804949707391696559442414092696575870385742983737204839822634141064682144104761593538207263877893159525232041668776305875275872550002646516626764597515384984844712806756605093312464388060769329040567160177161885325707486795760315176403137810237014971934988105323128401616005484987889780555269165504848600259258515136139871348076214891263715431046272300586739381102844265479162930921935421052754586148184548301029834521297234157704962758691318664628613297886675701733774035995418216508746890305874867302918884708772384865975826576037509379551074898274172760573823588702236916865233372467693498675297013871119639059300553519581957161056209843054037290661988921787699923748939449134465825663138155687404867198313528173342581556601036224979427006554942212653665008244580004300583422631525454517549268233216355647147679059708246426463641210807950726193786412304890107611574765205410521679648752841669397446682297252725738830637346731336462473929505784835440426502325562710254017029679723495193443913992718259852256362449159774909342416034380814969408278377907410005911836331062381139519642514493869045490871957340713540080589561334863931703930927503863460567956543959429524802988263501946130403974191011010847737143950725591288878041401973701648125508584221237870054824461882306713484029527453848042276485630945069188288130728970967710382879689065309170094410567449798651985914601581474241723205122270111378423494380794515520514515085906090951047438183589031361283261485710241988367146985057795321809451671440794656573796263617278787620712206154823628049389641881120200397816349383036081476111173210555820472263402049957302009801612871449303138229696719256171624762808013961369489547185071772175214191659700571181293513752019915824449914361459573613123364138174231412596367025582814038412589553123745986965822043316297806428554044112124773840218157903065416743398015930975509719267665795110484436938593376779074743396365922860743791135638162326231555384830994150404208419696127255463343043417735562952821168241141123379470139009205913842863859901089186047230581816828416663959667904574372472631645716820598989199374428062885515600070281205218694321241192186748470324919602608579948452723048983346669487669730988947821810823855356689053738585621985432281134988600068227758292761700305491083987127064209933169069327910109060315011397130027479496219094695961033037550208583305252529210931141039509589304500414024703935116941622226186382844066825355090931269543394331998265361933821954332081600765945819125289251195825687108395042914925363487515418905525077497639271920048992933058636857337778960167616439805475982361661310640595574811571030826018941207451127053615501247099141060710769098600693804091208816364366875207319398294249410032353826663379326133282327026653471802452941483224930193234402210285330963343619354681776930070840756907916686531471501597277889761399048514293845360638936749753542845315838075227867373424260147830813423206279564307801429363592893449502927150981922962361025734722061128366212037250286467811890181241260426119481801606866422446840604062630128883241806798423310374058397643288021163575883057511048967900795518064503416700000411415221133571540836431699110664291790802779587280406290202394603580319070675099191362155391603940166439406476962793188380277606250117811415635655352337067998277572074571145127104994664246309141196664900520646588293507393127111913345042996612399193129913981085506064951875499539207657339516555224192523995003401445509007901706018057147916720431225274105864486648687701568183834346709478396487011165664522940277555287777482675521682877434279947586996183400198040494523990885527900424688542748150614046844506540702895496688868474252658575366094047908629870347646120765458055058429642498684269065411273298451134887087238113332226236961984650353221506752817915804984745610749366872171746954401976804218356185162765695957067666018619477555446391829569740068343513696140961608211139624816122163919486283297237155555675165466508239705618910403881597693361108756912932372268308644020668392843381226383572588430892027748527853997445780039684828541651598297327284927257019133376994303291576721727288095863035364025813051199719365890177008153817806121379984899004744946738185188413810693536338221055339944519066848946651510568611357172639955396390738688046889187033574761863415174633722197161607755864198232137794238951121360497171667638760687219438419959010425686528315848051803170293799623538133634574583735970044726218693070972570852525305444542384049547713186046725308895222539023815639928794198980503585565380783668004688439082924604855043418298849533131869944853922506426951348879944869397541806146905487952437362928709554304472835995695177972652660720823775069229696747640773398651387067751613914981322595425570722587834087527366915828369111282624763573616731741680740322202255100988270324412366417781622981813586464536995801705164769231209354071072697348320103356130831036157943185959820347142198820091293309804796127566100632805344214549578815191412924766392050618971478575287835622745866934807218176511387825222088999174178711972278037086306121931382720826103039183251799197811332924096536776281395882075508819816397423555050247888979394543588244723203661117497211187570203114638929445242756704307172027110649976094896118773977379527356891041996937296285904345728936867124031735501219241682524218129802349941613646238808531806162329842048452031687037217893567260863707915284456311023107450235464251421932128627629579419440633846175356263537532525883420373795326253341213907331944109905163192175973283698372243238162752411703349577594763199101406131710689010513753750634885592931668210007468711817928678001828226411893769899483261872966759924140449330234891625664873169980144474503665353044843462818876015947833517382375038635274940239684077007024940763600369744637720469362453538787549836215001444115372402612447833379099808951063133301008983529533717184802786402795092920038659067828352790608995956347523412216824949093395766805352882443559933190450641906837947356842257124220749448118185503433597315975649786085260124934276170853944048462254728222493128652731139242051358087614151503260268225521755321608036175594296458235701501675931077157989820840155646700614583765444685628691053703116245724300084928492196768015605107182942172835092303551242579825391021286870185928619728889961094066952380251506695827831675183265952439166863356738572737203890376079054034936918583093840070707665711779238200362258466205429994500540265512212761417657295939104294371652941925842285075287949978138087415602864209189061927929495867744681634820489343346378559206603419006134759462803208946262719888343807085717871082974263375441113947896135741825123813724462392611742938718315553792611310311327955243474745382325294280315563079589610649913593642418973241403366026462593301643399405494933287199244690256642326828742742983848508975137328828504245369819567662808829280527096828659922427142117844370741675491901606077989673230188034691606781122384354370893828684920146502012634611810372229390500113778167438582216777243141349142302665826064531062024513289574976067219048946701020030261243777343998552381837802501552377906743971969280796209397167202919441485547449789943698412028003614385261448425692989045497353695324212958351549746662383402389631463774100709193986818110298489566530812411700670865269349082460513294197328443333256974018051392509702530204240355209709053940231021494186068201976123325652891458388015443079894327790860165250771904382199840612873969706315572050087519836777337069698501724883819363375459724287811212649957257347563153292772831206613972154577273551154717688944353731491019034355666304678865101357835235939406909626559934599646821935085143770169801277468205453987386316424643103997308836885205548711618367502085712454170481112328945987103775655377012922441983786829359341011728080574511997500901167371973319314152518048738865434775439844945940572149164349574434808358112707242259726820811162255689585883929618138237248031759030886100498819170579421912612309612222678002588103164860614592877215725852920432744220171318295758461644461837176584756175556609450289684826185230232906842993088065592713211904249327908078341401494212890671376103886064892395022882415039241131025854995578578408397973597498139025763121505466710260718750727398719373403627966390030963785117515636419680811592381940570284074533733744150610359004673665746478680725497372379939760847291513410288176875902834498756713969355930575361816049414896616498183860458745214053602320604781253419371713324025819770161956374745062184186932320073959814624640221850298423848751288351260260852704601243407257577891511220978989798610358732699732000069952117783362656827701941366719120325172647769291253255381269534375835571410490883702214252597163705245967803529103142549623004300959067671410104702144572583656051496411729283081936373531625242798267077264696663010332337448806540671892866977115044333441187550916842350609849599054765590380503461110117115465502583282664938701506680454279403241943792796382587869211825748481843403548837588158019752378769531046024773442314947215703115161156006396256283691777466206547318710984204388855143497968098928476999095085612143722061573056790523244482173326064375373946474018914174677307284224884196336465473369059785687596077814494733093778383148297489990487565440212327202650110740895053709692746106211720199092265375439122292499630616622169097580268764585272858984143447333365412930844460228644094051460286683228559158268885958820623341159136522253205003401133895045724965368397357522638696682889801865273319611033073465723523848169272135076489402913473918068177294805561121792793201879396182048324271855447734358771569639654737826774958092401342706180180668715994732740424964579971022310948732256188317874074027267038968731141317713721887492197818692883628901915952577350172135987258701742133882410017544620775713915438586739457698949742608608864494408948805502272468319998903809410595670169556184619006256892138174332382621312446361918778773762957884866585060775378341557589213844602487947892083595017484689005143282386657210177560054098353954261721289087095487366209857872956666524866948547532131110558602394348521852021627271285269647413261246295327673893882314774154690139542900082674885334359277628354088318395010627587057612436197679775531271143171797394706573683690502178494332663474880860901797836104261615973571882094453452624863664648009694985229548912429045933393535008002479371967857045916589838642832662791718769454410930418279705260573910752466193732872836483737666589589226917274079888597971159970746522684482354570714146262419654609205384449613134302402092030468704808702051432824664378811309148221857069325937543360535828025793895098786759361971119689792890557637655433080224513493513004215392568859035677219863266225239373405195539817610863451416589195175991667268169983348589965324403070644021381601866801239198352815848516366885841039852294717128758144067768042200109170652330791505295430380757053002139006163988141644778411096419140750758063727250284032582558733680337792679318562387232980153440960602237116428409662828480340884004922923417248992934180867046325741822426414218609637584635243133318306340491442572911958242303174016089156544092679862834979361261575019084094493175955516722963860963170684765795376636771577535306155349060305060034046276636929810960412731952313445100324425310128224129623829769831516884074253733540272066178070950501533991834465109135194549664385953321090449193211430729344588140723983787677013791509145704353352990669385057204092026711080231755304383884421975499949359254505229956132154276920874673796154165272984444392632569271960270875998891963554302426472805849790610129788210826913968805747509421170489188464317442401042636121581051235689018125359299855530377420934942665356852380010536952537389903410525178251821408791296268111850253786834928023673780473222539587907866967995822705671682435296542582328193078703401063911966463053159719190811054430323418145860135765138570889274387816031958852289638367085829442994863345871089495836279613168444774381728068332493900390317860541118802127462355534417044111859866792007456299215630330702621926779157339091645583462293880648206247109797670991879779672039496527921913758224213987394129951183436775058658032341816544863593451612535290225771957232618381040018166676779807870210410859267069239473350413181704201012913826671084274203175408585849889617786416930519630011690441555208818217022884478888647405965491348330164742880284777856125863701067601870742248670207724168882200381398365454612307857998972072590958193346324708728770989518197960541761763421178965854511817137641222170886619793733698803224346022417545074407087550719707803768719957760263147241768005708233603513830307913477411092800627045711610563932169680669501826053816193327668846633347288682800332442746056129689069119340036622587325875257476127488296694214041833466439013808350598252380126034796083665994772559684411201209099415980941925813749875351569274192633189769110289779215665727489430799469097142153601730350218067135582187041188608860004108160520084143192575328178357173262939160544618231456415379277980845412166511192370158284162044802725986209066832985013780987035615180512574545613227404468741579870968988659031203303989142347059064368620758234995488589469053346209488182467992709463295241328594095254185974740093087089261793370177310993806315924864311339121193762171846982063055506475141603253312927541675353532126488755216547277284261464803285227597501722770679871352641462100099057265318592718546829082659139656616640759565790227591032126547396575642709707154286497280486453559869753361977365660939811025709943089686569595456814919519455258248754795234016907753132152377292959471109030118330873940872587252434014475158524673139164170601618808923488881384426424866707513565296967655047013313804972130285346364195610844702917948544658965981354234037279120795180076859205504715682767030627715516158523908122979017515549337393725954223011790549101318607405763282277033453222254552378011019976125120592344631678372559507018369535890877117715622187566640800348987057729997659129796471438844726730084178463827074989258533688760737111995229982373819704981218465201197836126392079187147575979042244063302635915701450211005718015710466921994510528379363124191165414131890095095143757129501535952577159283213153252213654182907556489249672299302674705558707841106338905675407151745313964716851965200871875038036136994572130591118713665621788806356630942161488328819597964749461515410155217020677636155336724770641257114793726071478348780585764000286344727539148256932159462682298238949416182125576459638945758327674949063064785447013035425396775652582473704406533677717982352750367869315454347436255492671749219261046590178577631476548518737858399615910906714252114904546718852913088028470196798440628032986148122096136165187653459024883067864751946392432151599923355408723801698146221032757010982557861606406770833772359811317519006155435452442770720288106391809252958913933807660502879972437482434197873019399352652700370485862804711390025335580434941940575944185454605446092114216585576673523244750178962378525022446533142995816027486711622645091863587025342368768966714340432978127889779271832131892216821165978609340573050531303243587049893262333560432458590733965291170930038808586113118751314255065615797789934209053888358459645192663751435028441974927892251677112710349199299185905428947316011593171772904063091822265568835987184936464826844588872536867527967658711304070813485623234918234541031758493510956093599216943733475886774948150877796766463296823848510808727761247560014080039063966402766984174040910708361525915564670156230587522410555239580325852507048521173120897863680939846932755182714823301985590874005734019754982750474181788448531851160535748562337005505587106299332235734197011718141974614144468683108294094792420411384079200794428998699725997469641103362602201186704186642635877594199322339691928676727737514449881466835655660978307140527294358062828260740763572064326205896553456198733829654079987943191394737622277673039207693095890852752470544453866043961603089601316024826470730677519341935936107598304365255512685672072546714245943739983393133475996435796964384241423809113444210992336803338019937631796281271745797186348550241401118349268308156153376620950225458081886355242939081671234215156045647653451363638841161923335743280474672942775693878900789925419300087979671152856561074338086188878856426224774396188071792579525261478552491336905339592736751684108148269573132664518805506423591971933723388201347845714276225262494458545694559865063862604936608301917034694311383014571031149447077927798612773553650396412925244267877830316387086146933722894156660873470710943130853568181842549928050847402154993736983495258834860522636486285926652252718335011043722263170611623474000762682581299184329933471694074095053126258366111994666138944650533876619674631296527494594406079354034470181614970016294336323682364211913385203649611499380547409037114146226761315912195791003213844636612025357707049971730536286979588489497605567571511137753477918238920445223804029754705785072198288421505217253174057309230670689148511492732261036873808820931739978848152077827603013861871007562776573798662806386658571163465684795058711622868212679048992887737230403395509276119392552209741607052283322786038943726559173218149135562093957940724065646645485326809229215255737445839247463320001117188221112238719703301127188656107220735046556175623998541655961429714945202743081839606627763961601839270014265639791717687063551009291742835465232592583153991326801559544799562880381137605397077520467743088962476915851585536058025625909506716878195864895622577577527969299049726969849093019578578490444835827218117750476108957997862352330047028203356490257731445734273360678435975874131723879793175451620186150466027051106234724709216559881259289649114861929289672611230333933500468716215615754294634794088874247170660006907674680582460120262719287863092741864147203593318113528886531086097220423159809834176516072554713085462087568389994126312803393396386926739226189662491711613675509104816069815533095897334904429639041618287400470879182276621714262101426699320267337680090077321941044755808100995821212081357223783943722054004172176671412855044366959551835078313371648771160023436156302264521625010176671857798095443300418824023279182047304999190047377952987793707224316317150585017611874227379919263574202327506326199663755431662982799357183745084079926576392401076595301768591747584094736854073329106822743660815187749762009212319780099119870697797868138834401486529484883027939377442549544637210624671642450234653568260448672198796776499206977624864666572413219120876913495531582240602990810316474006128170203795125035918510341146470708839082025255206133030234936372365869725941898061906709473984727976699752365050435637036327336580268174423476063134208963120704560876522353699951450243746741107577534357713864386168053153381018812770559155608578101712006155166526764718750836243477448783785332266123254312850824598241095517992095067134927611988432500497929946675339320625187704148807477663878481412569269762882777318288642451903233857435993038572991761707479082410718805516858341359467877327599298319595664326978279220965897034034320641846937930639686282134048581419471621634333912114434295065783004803260312353835946006312493718191157658644375411023953689997694867875212406347884162987635348940663360329917476123409817947981686750077774605156328233091736696234656717124200102020578234893334522866692079610445742508810795223375432765635242768725866235545850442614048416167994504845685336742173637170531113391687223452395672131778710536930636489196914172486927138674557212463204348405668399209487728017500049787806775400439346628847590121042021346181761502610280345205686761103306724063691182793857221042415176026062800300316626111015186520585344428453887265647532054482164180854900151441776684778664946324937663871033987174589649106008174300735474196010040836979615895627701581405784426389143469075028365680205070985447637454528794945674581819958875881042855260522479019581036911392029902913374781695797851565081292276647251788738843757435242975267346353504483380361060049822669253456682429049689071148686181026680368585922785528802956852840574201099739960526737129975929017479235996085965879133047403655868179370979630101632788620968854060951454980659208272653871105838266224282192108032570373884995464410304411726846558733656754511156487460968930759355685566939294468204325291334968273533294182279403962751367347995901893160317551579879083927538103327189091290122968759659900598264384430359938002916348204553324089554383682124469788026620700609090526470046990865114332664821201921693400159269115154878292104731096241737600530083640643778218490139412381930736445274634658508036140785189797355103160409685321535451923104119080218900882369497018073210808418640653997504210397630767186234960976597946578370420518252229285686049218723699759504595091401939913009121427476386181202916337200698125661423230388183475150383820297278403804322656402559798367619952275666814421228532164020665904096030119481081514488887489407877629018803721040271340310918414420114485587020500392041747256180013929587987952329790028099160292014289774155982643932149153931929705208044695056239088002960360186184702786943210045536719644837812675142929462106748605713004598341626180309362390517709545480186688950494973239908696539404261766644080067424726647652541663937111389781201375266900764563701131148370977098676893936977293050628476076087470986688545889014286856586116216459285766940559011939770896829393290336410599658807987254085611190015206203416575780177128709098075152657393955164271194552992868345625499537573426259134881391732040172727143556827712309281814448700117409007431227650402379358265187110014920020230863824583955196731298791397501617199331212771342466211469133599359164660191585300591022352094743826466981935005786646094327906772639066541115333661143275253672435964395937855022115924227089554124914517987425051654833268910987575837961621900782068748653089653135894377481191090782353660980982402767165050825154628583076560005938803299686308352653537455052580833099471776755393116001156634468548467175763795546488391424678659336163014797694157042109864864204935394126076960391709549427863229669307973640101337465168848768429112377724214953940526819510742980084572055766194520283641357640542031562759592891463247110927284886679434029273400629563513364490923486821864465551735650378440099310736945045514489950397033819846662663939474280207266872240206694923203007923531677179623883003311081734696423386069026245422713217743667649922365244024449177808299810084924346260890173537494072546925480993706474114362029515089572663622519127046521336878994091046215997809727116001559231587361110773012519920125816330647664007437409810379317657287128943794078301013685659460138390573089226988423295995398975659929509028070813038355112087109350514558341630875264613009360615037019444155930302001193876268322548160140836507537651168090618422413025578000689561585280811454446436953477889556374390655017335043496913336996362752266288637408366892840267906340589984720802118928212497353988634941456898983998644927863435647708817779303972626616361783337839504139801103363955538089977478996925838971271732245376472227484245876710784484610521675180152602025123176789672697859794604101240741867173891873273400693323063302355019301260393601117173713893355470113733950653955135744164434065200566137964917234587620833065466905055554259621585477424536536710187864028887362787527231757225268102731819213599938839611302549549076908280066248664586022969467218169175492206724044079689296095970170514394763597499083502122683363965090359939885457714656290569622553707884903711607440868663538104063617556090941472743569209274903455400717486296059675012728462983931265565325696555121408427230685959622005970652939997017597956663350710144921693615964723834493971524527784756868022682508327332333843754870935618601439460318919098107396625233204251367671807529574807048446354719363247623679212561022313542085905038258929564080741375323832849421922364463781675266081321786363875039875049643313468141120154755353018713738355250717413230820244852705505426060119730788077824853757444588723139582456985043770891924825828270512783617588169744061868315595621681067710770972367221295358341259157195720660089308113574696386154027346719570072449449545591320290789670419542656112658079013716449281234071164723612820265651481067881826586766348335983408177387242448381964722231455633901032017073910734675319498811523302311152821607838246150590672991460496056574122209765805044366621365230872645233443007283038305625556275934964706206268087295978982979654645619816028959613739379529758101631608356897633805344068443143558909009461502247214544633529333742095218665486177049869075170709781899893797380233523156642248499121665898634669525920470295579153798468925959709930524646902198135286636914886789155086871009698620253282101065929418047808036119858821460873186858189130685773915915393182383554421193935319974661574527171871340924828675147083743071904487224631803053699014790930018571319271494336239401208437363106017939353492907622434051739456379579055858405177974743692912598533018686452831068228203897066799210445748038326099309483530545607218815789347948091616859039627892476125428573846631053843528446547459451585484664031094994858385038625116850164084570546814936253380730304059524476772037822589984161705536880667131287092369744953831288294570384077757905464274532272611861968572429091740981388217611168522095292034978584411322783763629525531251983729594047610056978520006674071428040560254270135574609171496198379198838979193607944106905331221493173943174212113273897924024198914326788512249569465616152313813377560011917090271771029714647768024456850965837149338725728472304860052667002493938804575830249623522049590566038606132163074817613451331390163224854500878917760588189072181236007020253338733266496739021771776073832241997404557911625985153503390331027543787919346153243593136473997148661892312256775031930419666095573406169279140925425196048118397396287635682193652474213120988073772880367663638469558188523350910086131145673027558820869028794776766708168768908529664568523245073305830641169320770830757989045156502168870612546974829374004815238389127182328590117631308927519507656194984321267376608927941200054687864727607139119885911554513560389426735247263172885303905641567309997007917565618766276446516239733223957169340363727667003233199774463342700333860252419964473064501523805509989461444879646560654074158152209904066780407860299662754619477799509117938011411434639470298542951935874810821510861306753777078664468567178750308354598893089434708968302891782280414788117513716009808695361520160401999270545674454588728806680737118446476254521113640787489326988369127698471603337825297754339581945891818918205276767801103191834387372187809809797941077777743345370650225201699553865837876304437308622692633201196402865477261085650536364288486604909568519719950281706131509636361122893354799298706782573095068369434482111966144823667825185189851028461883073869553532803678632724098185025673011199563826746039690961400657605176666971480087302958697007578922243329806149733433705486305340968521941168463385200516053199320799712825108092681058648878471947255413563251628238803717355416756372866838054804352793902441789080065781082147980740390882127697417351054221755919506114165414041371387712379280646607411909464777973852368446751397459660308356473394731225862154975910563589472033993245794516678040484354554601955583816461337918277986055372150293325287909949196189098645849583831945799629246312899155797593646908537856494561008345511785829925775503799524021200517936345059203998653902636962932707691569260682373600169754433034960993182427944593859298575750912272932230080197702988964656014617600764217365652550936698528957197933957583972906171454904813111076723781194783042387862780977736406033137995353484071146838952542191816542895760399875947103837541846744992638787892846678740881850889915388516886282219262359656794339818942477986008219145683196897974899974770791606738308252281752039056858737186085204935896251890222286140770951132082128924088980127326727169818111413029982550712212939369085053383172703995040483684891959074984223866452263034085405989646900879262023354033942297111554267716776998854779802685368222908416755846853611024508040734297058468210053833825634499687057651651782765055524075573924526881894222784527167458467196203910657851087985319699414414033114622710067046826487272216592831167055350609267645497346259844599137175979664516837474230789211025621627749235643301414796362262866800807994235257334818357522740612814758467809359347495562969444039338716507446519036122876381338464337400085804400522705965315786534286504659264925100363316136275000552220641650955374693468457835699652068319908375637052877612260693312953264462333115126089850736630403517750999690714137603808675495665294544356030366058098923370111514232425199285907020887466570606130690460053496938689126225944845755268451389797421423231852914673494020131981867003856756600997364507438530676634068403498061044702071531249133968088199219320290801279641231955820450728463883157946788617619749753445257837142092831602928088215079591496450407626135608483254922243233201295595246939434186438730310579776834690831833252268824366716709500008207325608940545496232660862215221880827027409522629419437047089922669081875984355094895015306458160418727289517573405629149899606095303149228547453486406717558362483931630866071074440207140668057232822547862696206069806726082505374503175353065660672687590537724694900769849558043846650816059775330385180736512309343630106967396951425463543331129539328088132588062581057465092813855416587485035422570878094707153344360769833940770733127270809278549921163401511312282499244980600010209217420737794109662217245772056002159083441357374430638877497042083744676091791367740392312463111230921662670447166426859388065419690552742615529830577086779682626773074118213311079980980613632037400160849491437160799792359497990976500192552047258786233097732839431061334444090342637607727049430849618195211740707201956931011682524715853573895439813914971839633142324686121388073207538099643234572096995217757889662293036799096603886743546924878602710244708577009164100127105163399062082062338612876590803221625295349746915988562263910528618635328892886969602589731328665606465757930625820249195484660232561423191410913490149185190251159304644794483322677410057535501384918130065472728540537668086869799439130477216145524444181854727079775653012259995938337844055415214989607176633932807838244000649279405577980393227182490354506858680614316738937004515930232486930575694706470847814530625878224219342756489210888655841323424220731222173941331509359193304000612038893212391778771811173180439865228220546674587202338253450040338788346805477988885369584306624231901884839446724384644128567508178647702592407937824473046038698602171319800318433244417861426724365076385034999179945272853988472234933075111565189084094316191720453345921348249447882667634676999955968309808896323584361665633914541542453172704883144793701781568669698864755179260153440804342759087698100033888034705796271174300088159670164671318291603870847375174225726240375904908590541028654257400408274236103971812970090845874286376163509166914272158509294393331093113784582431795497087659916068543866316831690854547540008319987356494452914278792472280066580509936462871039042505675521507522103970514952230168175577410213115341379347681362444666448734145880922552148189449843590919550060498859274965864283709788513337197467184012829006476573029074241057632245558198318720365972409532699194123977830880791638771029028333837608110068663853503082047908197562324438702986532957876807639050623367271672218431930764094381754380366057052118918646400695945558031515130077811888475126721276698779810723172493320385406783928756895204336238596935694249656963672127838668355588302202611069280179577502233721686252796080500448035654597667335942527940978670958134639778864475473100003768938905445607981440288575963350681724118377123201161813028987685427144484696295575731213609623307524009126287039328203981949522094332685830001660027748433883676693178563896777361942935112110487857583369726464367783124591423885969590248161422743961336524361500132502103709679522921534535376827667393204458010075820692674446096000565948076252408564738026170241427414947496315686699451990595234944755147966368716537510491977611611630812493794592706948034430506037444308382795351031701061335794908447030420468233065318766090986941514133202678538993327618040848240459520512219156946662155036799727904786471464175082010872989554578392511747076996250418241280850650977091775472976374932808431440419607856882996884218423864373863741579760452362158293696683451824264487577263937903331392829364549969769650056159015242345488007363686223941124428926195100778706186516956235674278031846676314348378158162061131515167657553901080196794020934283766802980082687138004129881080379579242237273409549794243165428766638671966818410041947323521391429866031107869558814054760534911407155334578170792833734490221258024891201549423621267534214071147105809485699636024047125451225738580325233463944655402677293559495204909422729563858148381289527647921335728736502613350299625443942042393121256707985206849377150527518186269006630830532414824334964889379785004701881531441386221274722896881890491867760754586643301759535615513872107912232408139127347826890314744460228215270468093655455513190465976306924602428152049716370412932653656122476743801427079156642382259992711455191239327651521169061518851641403190732213920647208865331503949402701895128738024663480779065321573802322550917350959499382019306696781321529157099761170203495571324413487693172213774480231879567070533755165113720757521894180215329814481318929047028488298486622398574730857272938960356905479955780272832267974973449871733086936877006498357919383151664259950967971691439266648715638178142775456218214903231433149568141160701634454380589598454728936727963760511690178718773050767637038838730834544351393409315368138860559131881350654746267360381976893242478827593339077751016547266643548771887967404143330645356193324013776928780554265974047936288634672792595848029991984511428021187916524700155140396460110853856194330945341202698782076208528713882768279230694543986238466204644908746317930983804212402316702606177961906234932164853509870510158647143863358568713515617175157873809399702564199741673079771556617621444876381474019589672011454056337425484777431088518279701889438420150687283106390599452980705353455177600071094459165029369949961293916020998613346149574284361337286780162770147505283501222812321135214870872946534245337784807289066535589098026566232882547453799618761196443997320957426611177162664583497665213259514696119627439711447152541496625158736515778485388673634436093980042160841983624602901907719571114228515956338434497043373368667900107631742528388646733401166311570299350936003097603869492337651639452512162971218240117769296799146858043528179748477057543659406407566555682379243686972855518772139775222014164739293970748368740471570084765760147378701969928202745955457096482397094333505499244485012234767337299581262248531551462227830315791048852033754173863598636151716338615682086854549246806481109441518636378215659293492838337796726696793145996108662102656327429475109341497530213872647624202425282529011112174047656272045799329918608360625678588347190766554275253771104290628868137721289246237240712366138074041297578292967442273429666176170677743535736977185918855104412532115826938914044588429234978602361640151140620511542418725285762500221028327325475813678926576859712365467223290745346779645877701629894394549084265695884072531854014263643889463588508893819590112334515437599012503214034217551505102876063742567760809379284955035474879425692043540211369294367208567441483069386925299664853996967929005470163925930420099141029400304678999694968331355277338875596001465254247436150760736060520932378624624374153805807632395859834079438747756286196028801947582511333557792804339826528770426149826216293119639609022507923814112806845452075082578946711119136226119719589221841408807362332724658188737983717907431958467594154858209030493138092723238411050684804347408704370958720857418385358001022992967833586944098526517280961777114011054060234159475022111664061262648057956077622948043655106255217821026780157402423128739798580796894566597839598517708330701315927506791837781856236642082433989888723985677192591363769668713460791237417956946488744972858304332596332631852779580439490612777884791951606235504941192339890594763803048856181972853284885425101457864817245836704621005657057737634396684067807030672580830661855266469004613584310696526138217416364085465154010159554877515183436512577183234477538417417855344497440099780484453713288043680948295092470869896583962135033913563956747084112780087931290832577965130458918388029271856548549886106110396536571859101084293841849111989901752654722455355605605766104365422659064470281870635627856206366854339296994063067316771208007271352870476451810380918419433384547451341047001062353195087659989856507106619291086551321292629128639053009464106459756511528989284280885305278724088411515335240656048566686849349834897380260669200599323320917987411263850292358738765251284420256111883352354280648850589106678248522461526381993322701583952716541565336264799008192797385031684940508566672907783019183176368301422985677221950333843483706377906320121382383443094029771965109142080384518275171151051512079032685731462550921392493053093137384965900032064271330281365053797762379763894765865590676028450801116846656695507453550267442014232576352124618782855586638616876761148120585185048517206919834211654371711658575399802496311818709785534923610736672214511137552648164153158306092505018011515750531367563597063945716222538087708485232163111664719454973791510413204266704229724795837093280871439622448234809377158464056187199009425507185078981304562293753140978177695569100676275765297659603858549503067981401274122956030386862640908809362438690617402032751700997020807661613363520002799816701428522285795050919754126903137989714372294211425150458309559897100090654313255777674404196829708158036608560694196338437047303513031498187462564861807063306617314817272080560486533874926743922418275390295742159574043186295574358115154402327606590156339854813502985836629304086178302296513837175534504512147866849034738612802081355638275866853024472755461510681448771272062166092313158980661108695734814078461540792303441091947518191340129416915945280401129587258860995888320819167778269904730309681230355002259412093996440383182209020953241094147536979614919789239210542992849134940998930645486154312011463617059168708438940233046663654691574883783157162751010903929489491883214632120206191552118282476721119856716253529593019924672325023411070974062292665854711690177076595071727164368423432068506983251112539069729985722071433419635615914496042531933708653054218900260333115753763496398840881671926788378898581800784476363944987659349574952889897984294396313168270580128096082091050568371011473513300870864369800749683487191116252505979528907958392621443631181602183690537408560224319669091402371250036521510030513721682028392758047965463635967863680739134862166136828804181049826361520485268756321288328714765944785315366745611431568554618787571949746986413145190391745308629639016075763910359814585170302012056605794234736917168330763417854057440548635748405911638453396086101260416402934668409921423393217943613636888374834294485058775845884449696026086688511720636875115631261187376925882911974629819130960062418343623972006761674533197141493929709803080615834567972008380839930725316173427198783630963076633576130487087741504911043978750343123602592034030607241193880508238750543737458001266522325598512548746326304425327020998218024127093080694153759608893974408012235841281794937300179541131979812966226213936619991209567576631123637456497009356322019994810810212480277824195229757524441912923921212820431355777092009989259678580755781616115116570219523431786835041079811092125521713029565818348466063443956498084266934513781760270279391845434150521285847074574675508970795572741416594233656809704942994608618917109163865136493306484045536363191245848238788432006256662287422213736442946933039811468758880982798688844078850979717712509105728540182088129612334695855055180945039113568428234788647079100445007575569312421860417046737472406793024758938824455394138720758382341813991811704435952219789034023996421882242385093359616132404519039364112209101384395775683403842604891564007813844862502874105791685697986635041587436569060298728468377404445418816049378173722218628860234219257003204673483389339185075959508925705819969273971649665516654295524649765104095259484377268201093600979483557122512073344348569503800960039240193498491753365346195494825276218541794972446017849527173958903149057130494237967416747174593311169977398927478252579390199338028331857718635999569510825234830034828227473053228715456886097626776872229805510089304306231560671389126269023085118559005234156577550053574693977914544932663476471018550580859370815313014530419383186841615421614878189584947262865067254806308191598631537475814355497795368865205734174500069407795836777230306599873766868278467489323364226687859344403240050910710449957352625086147772577202555224119606018805291408516985721648495129487733970230782688332702456456452075111597769222118828753153363119512540420893461517004852948505283579257650219963705435421594687611359499438359139053885855693139914484055456024084433114709697264616100869033173228880882696536463126003814559548670261234780464862612463833035933590156300939901479411344962709706929858239025070087074883248663296899905134757622280564102438918223881869095341616517392432677105460987462664149785823454371968917832875471416712584303492320741612440991268448984394726624253326832483042583732306513919065220943452402607729720709215151546358799543079007190098691566258588204697988014555870177545310143308538063515935971623022367509903576551150341184291742148046156288863862888414855442673661027817385732544144345500338937008490204496818643468293740033100658476795954443427262364793638236255561170703464779983035306093761126102424023877778225597925106121925008776016312139154205299088456157088640360974260167973631475540912274478342350921083172668920956525398659457118717437646255832630225366989942175005291582325506713913237374198206203217494287307534782216103257679172517875618824293749494153065645722517378402785932638412151535979327628900560487337208510986892469650007302265650010919047041191335724427086442370845385157025068160190039087663425036293655875112894715370380993219000727850643851339373414008064895092009089395168198781807734107823317402389647935688414988428659178062893228862307984858217886862472818786898563867250954325812779872561696113747340325176019677717316661503806487282815616098209951896800375359359538138667017064635043600084739405053957447862333817694890679966311841156313697540379861733236159687757123952752599168954182060806614113424604558311474873032222203781697342836193618958514231654444387870637764357023973835130123026572968156061829909590539694411624125977487328539011098405224040832812906753893555343092313521201386983769291715589021741437901846921490941893454198107623704044133012791939642158279578343311818178343016681680517805824787984405391267882414458790156288076358113908565116806525107837279628322525417186177015989385846259611004031548953877669070592014938558577009215351436594218078958160241425244041478576273815322432627667710309190883182661800105240166151677130837862055335124021829731720999430016648711740154407743488083266463640116223448004684822994788103299380712382602693283085264122235447812940897651223500668655405196783621198869601800684231715338067854808179703688233202629669229882145524022213674816532123290332909200850099643294823561216964611175612442285285307625919128806683954874629245492379532390952499924776033268454806320717155695048300695177390911611013703788540254156193011164339190229207835752551358717431959577766019788788196086446353633467715058885994085156463635574315427595671726978059154767836394030642222025861203660077469534249909108284747005775417798556822213119501804369563904865574014162297044662361252664415779289289064099401494192644811675694031808326387790090257561799815708133669324505902237734401021808871534314898952255233635507407127093630749179234582709045602982776172176322008291068072716561147320593897366835212964263561759980681944331167402321211960228783910416737952447846425405560141540447564838442699074580663192933303379043763816931399201391266408991513629721273812507687589712030691536098188946237803579863589390825882627895546320317880525847940940992923413830714157121070134680294548848983350515059996039772567229874391268737639443029271342449965172015942402082545198712407381878826305934768621407603815626604308199626270431709513250074521447561002961757362241306530601842548413546911092188486825527933432708460000064099189700377990187564440482261191587973343763320017054064268442400435563548979028215817083900254598255527333878499826935721621778025183435911887676203824058283776894058929964314356414859217592744774222688452325876846999326085651450893446683655753631840110693604280165360636319426425205363062201231854363772437870321706064358312069098087877735285511255914718406283075613540884186719319460862867401752005317139767181219759213308012902164664224757671191397165996597251656088650871254944593966074407236374740807774562317727017212063835956560679771817734066889519668464980476333848085506618247314543864688297953079496469918785412218598338232609444045475847696097886663650749531569145038702865073015313248442766809653102192505250509451352399789768265719255320824628266022486751550667229951430489956338569766540571052295424931287001681417195041462148990042518432399192781736638948537277399583203317494712627816897107029487083531049310101517647743348283359397864885493972878840686465336313245424160300076076043404352722687959340601361010916407194453775105718932343275835114746344098089874745005606149194550260609083916361780748058688461995847386902635130303369708663974262121019355125654367671103975028470319373544786963853884897467896793885319618887435254132023911670668384024636265540754984758916303526496916517204551922118634228117299866928981498247483660891919664287829265486189577818582803967537689601217325796881982622172253099112389077889534630612171507011118085634794574400491616921822203059890390310811253535830463317910133561810915307918570452340641079775937451400561082759685177231811622505426382096833892129001940838091019871891794269375654971533302183998198048114334419089910419154963944846173221467715892567521884429515425838326648695172663992723322305104140806042722601377320928627169893551610417798295112706430310836256100245918468882731133975402465106115383066157348207882615404305919932037447579797673957751642398379206473726125578821860931340118500526633042639733125561684082845899070490949672701292449131845794021531781198391736658216400694542172837423922361320952189569639076212853351635587294763028656408613293896491450682469460310530357266218941297779452261519922329754171639124390859472016979994947365421187481221127132657125498639414808815755053837563023130603334044496497890854185519856234803869302443565374638805242485189065989750190975132903268699172052154512908316579165286583203277429072783318762103880498357755611245039466910721800474563905091651713148648959101124942478538875772498632284710499486895296854550737404713089101531761736061037431607385760424597947100052450919186643020787489194070411312168550883885694176331032194672016251547597172336513136839074444364046958509720608373499681557352169480334389898111637669010986917839476200551327501749720317391010005982370451100983352481089988171712691375154923487973279317240204938540676817389419845391273779736379534534215715808609499972260395768886101930107399997925627229308977838608577325087507932979613601304877979160699869504011154096867779942846696950396494975445310314194885874334310471036542059186425998193703425355963942722515692535366482333700948861131097497381527332486051707282935020433755695175372891013547403108012879361096956837964479209666784296490388114637349201953285479526274567734155981510226760141850716501545805811181604595673016851113876306143297373575671853012037300974895529061835105069430700913286288445988135561324541013943795949344540956360655329413591226797306360612434545724010885582157130712476732989203617185902461678222468926603353735821915733185333968962416049793373141884643599891405306461271909733724638543107653968305349267298364489772326267124520290117410792026102655528813148318757469675206809917261017386234964495430792870110194150873513856239051475502912181832441265280097338510002958560885199433255092282630090422812769763885036575226582832422574852915986763581289764885623782924818620133489342268945195948509901268471706385546150909672607433706372487676589503194969912533395015231303762370874197261198738353921506823336650210062833491743858174695923995827400385542039287025806785502759588763177423842847085273760318562096498958700962675186631403424622410784443135147169716739612955766703885948857166444369104870979293334574263086706394905613225945394548272459944741709678741742106977962143819815504555868818670495451930882434551981999501615753264120515964764504406769628153726459804464242367339823569842506500387609687479273986061477129253218217166042597786801654967752664818764235684683023357333800663325430106822940374441245301832812476286157335126413174754873181739457207009021049407425044497580627459398781584671621743274086949617860449304383158782822196589160809239565064406939429508309417605777287802688940653234991079952949773755719860848335789005659799991653418750943662319298831557120057169181109987491655653051769251816820681324753859658285162945525244509130038632079139016533451291970288707948788219055880434092474045520914056274947212814669544673872010812200993395083541179174137326367335389300408367982091730953346346858590524648938304966430581009709765990675680386965010940913743050947196041282900328914303144266886913907923210387480133921046018197241802033083815023648640940919141673537296392944944430649036353061174276401562711907655744624625619980264906481826388301361804045201070157149036033096370057218268563447101605178759079398819524832297760586803588449103478707842020917509973016814830945297762206241348415086663684780935760157488553070674120855792931078586862494037766342707197110754479471611518244214340335765114700424874259133119743663689001913802699822278522198811168876536763755790253652160287514157721280400680606921562416160358574059126665269425292787283245496966467403021887675535275036442830599832713850620150106384882842740020928716457043138091196140446213409712485052024481367872498479953836603908239230809890296255869174411888624686091440269482989579439018677646328701431873273230553332213925467806713789435384872874635613984677970590655596794519027905678903876279426830731032745882349781095169925401302512812925943470202673210218689949919179721426470593923287946566865410746174683940896242856314642063040963301965290146752992715405538802450453762783159195647041136090504010490831196176553888743622468393419498256603983719727110749431058853616172073071146171034791255161374993276562357562713949076324336929206725099636616618795917215937201066197473644565289940313078424256254661697633947486209762135209776149940004793603288113850210808880080769912295912668594096154419152430314460804221200000089023370977264053492646128723506568059447002684651370717929982949846834196133434638827266380390664565646513529453750045497306882201929441879929051328839229566115062818855887941815270000847695773158739245381355905823733503306840380994428257538797856551181323340774630152479337058052091406229037272775073162684433614959927548698601611202318761462940142854068625028897462090104703295634915867138823680995996382113498979978756014324872602545550386265621865804118286664159782355596238616723790327164022080814607743602322572940056795663578372835511543664431892468157276756501981191554954019891083395289419972689367648268520686416039830688548885418119437755252942925293184849062146950853584894090794994988802937032777214120850260319248646940347431671129343381984782095287791425754929541953980400576608213464316282891753298982383059410622076718646029714851029869866193861613896511534569431559302199641261809928065385597354733425513636206182509777663289511555241488510584017227956967501105256036714792531623662884559497454477232816687455876779972660301099405385774164025324987064649004986326404196579438015850619255191229286641012026147152374884500468045320944378451016625663969511323617243085429816422783056916931874044440992526712569021127956617198824019021511878945365850430583736981030766456079532657589952040786759376195288274476463185762032885665074197907097196291780529833213385862967226570232035670412149570619871316176311744775853892881513150479426657820205137484515747656502776950708536084393452828350377824762194155077192422775027063941207084733235638272368595646141774166019042810048724394717964747109534687211813250695811397703035002131569755318960464879699404206561248679838985868531132484439611730459019460327998862976254864857179899601753038173558929201475668984909130433766325740143528461581842839895668857008840398585182442190510280545532496953968865205719059717893474364545736323081443282394413489063254821951934789409861446820457970497997361752675600299917174362218990558547237941572244925421309198660655801282436897809663116187331756159040546210852821528898611354134730592026476077328345587065961950225692064215304364527736116216887572235986671631019828111223762736663316389839482752912802127107246467689397968913748243634592727747753586151699389279832035483072384780242218570553590879627206870056887157569006489600601390450341084243552722467722045494735186832012878358141300953734448990306717210420087823168801619765616507216619401222542931860875750823079157826952171848167408740622648603289589054991277494542525695836996629829013380699625430663301085295111057828124991894349002273413429068108011452854056437506225318451689661875770704479132415620846196556442885368000179145568937538465804362244100765440595793382649728672968789802613080474298849295921759102068456813484340649515419410243052823246105171930143908623351115720251639861006653629476460701698502505337555590417340108435335675783570440678297699317604054538262655823018000646773339578991744863419611940063619124229316277729740095216074124029944795451785274511991113008630550982676650017723492868433891798471951146254781143859702156304485013861995818803638314911362462338550283130825930228200610363970888697520777842737334207817002956689076270822220059397747797586608258922805567220062376241718039286820787536277014250589980228518812543548606161378289578573652589633795716102760193236956708143660576292554959085977270544868304793235652091122139173204923505455763805182182060533493542636047435570597753976614731881444049989898508425292925562618547358123627620883336397525405109511886792160205716865954600539972144826470938302934829713922602824381706977347076474831196610097136201883850739832527298474084235145072167298561981854583806679646503920503128908289576890353204617115870585067610244258494611618624141807696412272596089474564763460585478941327436360285441543413922606840750150848714326483959154329215063567430642388528097851868490900846292949833787371280017973372767216226878904413821060715017623322242152270929111911758728569951538580210800265356221074613699855472360669668247221513129581868183119102315812805863142335028089365991772602817716433465193512110265121569995588789992625660783260433160262123059765311970008691115600905179232821126343536930434322983126777242673638366608840373388094708722010988685497466409482882800902156710141969195425165755653694112424002267877702316823612540877722294527236619545487114285926043595228764688036659157102507684498057246621158569129427138929840650410872357035350226534489658657643452988885778044418200973551817364535608430334254807317357350495914473132196753056373726932454440395001517648447959345718639380030493572878485739082560135483341972984142702657439104146033479612481519015931603654441509790631485028824466527841425425448681937833331384008797351228166169649540446802185811829428346161305658164017696944557048302141188731780103862983840267959820064494219118071077061524969570029157108928107668466140430787340303283272330980245278397069069476631761853671527796710283176318841881481073494353759250676656848366892037118852113228311698064085791600665151143398912525127893537203609102121759443444923792327896476013954497722423291436943077257192895017014718717046286644697090799499283727946882970492979688592692369790252413832575107048951207626517123119995317183806424058539223850549094485059078038619516119945120152831978645117504659061331869644509441676000023518897213323785323632863236037733085890453283011834640799211278021830861749273519574831048313637438921942023207531983827134549218563215689721832325810689411432663891047528780764419366414360063159441194962271711236052552934150785318177775024021347719842269984347652190145533070747461483152975204431029249721275721392824243228766567485936060618492947356698072888381741756221866931603653024977877452028476402122892876022205078834352210146168224377609096259432443279255301131589321183129589961637077269601458148167531797262493590968905236984988658032291518985619244420945517632521015413339676873125386877842261572462117904487948463042424499086181067172006828310598475659341758464554653970653453448581588096875310643590891219766946844759697091103532333880114670686940588886449680392076425808901185006573719115886292074242238325971120163722536463421217621141477831324739084712245833345004445625968154694834227431039414017395952219188625503615669750264417792995515409624665823981598140497210607806092022760524840037739265874449781892028180064201279215354282486187612481946548302713179009788873150336526917719948022265050118532007216794988975911682749976664998975582781783397096618093403661578142601012868782369499236743511266705813347597349397227522360318426673980303973491278095062083050728339199361655565070184426673316665487263606402209890815201304353093501611446243784354710057001228589645915474565775101889558943191284651045139369493977706874981998843656829080750927036646453139512894897912421157817441856491178612002093280379371267738090767198109179558027990610481432480426080510043928180428393688886371585683988820846050734886187887248337645101217921253565445899701341462178890886163941029952946156298741573600737093356138744801846809465809404909485641527756052658058061185696570489120764252412665831077844673383702478300757203243904823141278974992685969870760926667881810722950671813285912468021673614483685980279856233349665188200284450862468589898186944081049134245119343176045821814573950020638856803884047201040898265767553939478580816960401457043509632885041753335776929870196713722188489593448820912878086912369749587851468830108890067213825716985215073259389907751309676397406477481881637996200671813841730083895861081092023448546410222065985598710528475555948625940912919534998557134911550829076626352907252187820029532286563597515269291503031751483872847653803581248162230044956581024083184928747836543274493526506569223169420075662411215953111355919464799870979770328031911042812513217975549142358882928192372264442301487939224900147248900834077046240063038668999881984858916553296039255161361983869372809585488263967234588745024349601600649235132615281899388804309387435335910726221251774535694968963403555887432433622223835924232842354496191313059185770162899788029651756945085519071914495632220090542013648145221742299480820823366475215057404190627152981404841649825231191124740326508488008988434053964475426675019907276582093372335301205826379086283416627212016391019202638737256708769525508970704943255751957134423427747041440788778609646755307093388145125831697254596713347476283006370650000098945353959063594067645977560344811848191180565218275430769212899299369767515767515084949281148367000578685480707740121281390383254004169857029242560090529739603554808682241882795547909782258197840552905876240823899205007085900685424900052725407932339883943000639884796515671854898947665079000992536000122536518418227371401697998923778897595215025201193724217310152592834937833392814480007472498746683440554596188780671571454697604186247924606432326183119715508738513307666789669533060789069606295175583296088380205923829598241158260032925360092178289860880730665218475615495916117905459775022950302061374686264235723341316164424648763298221856757334469434341305489863539981531833671102512263684736232317297019591784561269206862705680904131885560372894825957393023196968633614333639375589856297810126448059138499684830676986153561884628172250880143550921928736516007010817465906502091474602419687358599834332599341626364061915240738011095869072667289054518901978271890194283782132020847055498280444021573462527811299898848675134593811996826052437804871391160109105871596407839642807755110414800147221395108751186165726058763477072291387267411809326363721896496326746376104020595850924796466103139912657353909652108153617000770078070767356534131062839308531598770302019029139261627615206295789914996717997949694452073392909216353193590491983251143705976604700332636315157522950522990309765533491505208744514702501805332898146995611041305669976764834792646172636878703809513767298966632934751789334790961680607352849293178396583401509922094178732475759892550578110431344351364605209818338512831105466087318286329670049855500976695924389325454431556292327282161501371660698447501468024772475666526898680171394023159766127344501662988328237839827094551833801639470952445115269259986562440057863536573611275043357106409972160829544615362251884891392155503361170279037372886716319338388940807604976640646529771730718402074086871521203337887933594210581473508415428777856998677157981183204508284131172499189794184657872720672167583287739210204360757954083594484275664788816739464129924203177742911296263563922638151115393402708075984778041303752527164491262221371905176562541888726716338955887849939448114555621260020758513254440777230739290103938470645387848091829678187248000101395222441619225124424841663505892813128377297954716402867485280003502223785770694928689388789563019853781655063806285548766846243872167108252226584531834606322350633892236936884828412654663082264448524345994495100415999237507730610491093258841866036183816352618452297944834724379123632071987509089679244286813206858018502226503645920474671488484404863516107246407326202027205623432405184524309319635940017001076114941604434567746135063945120302360172516657224933947612550674395455869553319369137077803655633645131123620637101680068431386272816814942082223409741525032033690958283284633617808882381084495083246832344195480516049302867861938385920248373525743356595966181231523759785836864071500305912544652296594727518559052550643364290149997738578181896820314946488586573676034177216333852960498856683223794525164538046019069208497082125951530790357501134522128250560646816741382336882140756349661509359899336157094414807244289487971348427009869413729730641217190886605163856368803126617595704855865201253399671209967737214130451673670529375232968906630393224554626479627829600025058572243207481021359347804992024173544454300984919203496665850060412137456555248660737433282357198037332778011377305362371211085756128886814218077325958438192805549339908746848152526374653595624905755477817133269256760353616455503598973146188075932602430464658467316041334871286514453344481251627104991618549318831311823437703738875270210192099432845388800131904560499388515568279190791264949713583775765758617398909850093033103055898949899896971047285472568890520086595286421263611498161479277016715122782598906422864083292738677242229624069776667454410093669472212568613720283543317696609097946476426278814387336796393607468575272333851385369930584791913750026365424789476455791748245267216249400555587843949218993252339357144832294578458664052448687906573019970633439015261449382524280972385408872145299785097786273498792230835551587260274899607856644397359101313947953481836999168430914432380813823775642823055397851035365448868466063257626205759928541768954312456677311139936586097816998907766402881307626282897599262051318174793112665890500701110984719179438309958980407835023354968450582353977596959502312120167652838748498824403675142262546652113651586034265352017934557705354611334889671959584168502246325798130680363029483772524619101628113538595385052140758298263539580152853163195270428642643297479517899179179979713116427378730655817282077145036378351340025875387344607590102513243396636549943105693999993464743741221576159340613949787565814750068895576538571748574728919162026596012145010073776632512657314600956344711177449026704624415761578166340554250380782694071797679694081234994430630866779781594876896275633350142457771387589441708402197725049111686146991151444207785377272625261185064721328536082419645408745276714296089416000615557510059363629519730295672789327525068738653772842935531409968220528607991042268308215486722736679024920815734124404419810933172511056195314565299791564842971162772424069597776748752463077393687916842007337877857200692987668047618293779697196418343538373735710358277966821265423384697935984696166192841065874630720447231610395089708539379412244278534291566577673770789831520212343529937070184807470334139762873466436714728412238035960740157844684094518676758978971028978475652052777154199549505358626102391760412135261826766294763778909806206110761140339449850438977426427580728635222337161908966138943589172358452146218824387060270930700843247941714652693149499767414009106209578630736377411896969733732518217258408784010377738730176975174249598120947137776062948029299167143608324271983391088264302817714003794625235139100065415334003421253147229010403393470107185687599919996343918498888971016308223540633338215427113739209380586513869898191212307451129982611455768284775978871182934013548098782870050484405881544166155893391989669735233716757979185685381921714721030684386991568404569095076303742114835880752979192643548288733333060530577154276229319229457388564905809536550214938260278231131661680364451313261496360641873001268921897966899908891362133057964328259003319814833548534545096055765896496298221684628943266473330847974147879082836359855477297609379472735800414668025625829723019909677766022224854362285670953733392461291262040762637745533573755198028970010737972026510512525004455587219677293397168227241339171047014061804824704826188882984421581836641432466732876126466726772871580486141762618522279468729558076108102940012956556734733227951072971868370776146210288603048822380450638694936332300402223584844034901549885298382218371833425393272777959913782560792472968042813208278547376178116595107974999865353528729389079516958754141547589156515198209937352941588097249056972615131635565763065345286251258810697555456855323574486347268639718824372400366164112601879059327240630007880411405439677508741988636105133617683702608769606671277333912710386765458770925130219377485501207638232989949117759971263198482227903817382677831988808979145173610322526231875994167925302504965223567911295636357580419415835089764507950690970981438290822095395953017963600616091498166313096640724655718426228834546366191166577921316698063758266468682929534099661239521138206367537225241728660745888003552217298398561559732024595708002454043518445984965094765161693651374891837919123736584620011103415310871121077342966430740870296309045636057379719875936903673424085377228175925671169979696841001278141653263648843755815063841134328637462057211946239418875219948984061070978619482641939868900327673761543726644747555118463866936371420970460690135519038484495735773810829464691875618320272189776191604420462705059713996386543277240224531936704389642306257197072671041053809902696707264126111477911704804882546342048257601184203087118055538820137623923637979239820531242622112279633230514826373765183597556915361814483915693987906059208368752507468980745539721571215603643638165666592459867824331029495701813889890304402187961375973255603331534422035456778999262416799627659340905740328208024516223382235928043712693866155588617216131860018697827214605362079917097231943701143572094059382761465366251849755325189222892160082280264485551390442713191658410197934276869735518502558950160187159262466050334184254905449068697854369134450678384705568039979831646601168499831174324030443573683957392778707378282200645808875566919546948809250311685747499988264250144648713346112241506239437515352629312779272485895199642074979836785508269698457809593892715557545984072314583184249078769162684316932052095867328377687880648182631316376758101814745694888872798612811733904189789846097354253672576110452184116889835043233691227160662086072738086798221066313625565540013535154894200825789270167853562136621663454784406552221691670298672890248392656419418437407379945324598346671287738788917242777518976608296449948164362275453196058159913681903312102971481287139001396877515938739816568125537522856644862278934579149553441128915890976165089307307909329759231601385815041135761714014504979257095965524083749961932917249283854994994197576908948929978561748741146908666982404570860130866071895745542249989067570869109846872302516987460380229227375763384853830900463045626608683963706977603601833161121777118045625944027285386781842906828648289138119037198791805681716035228668686940500018021416717927624871651837147349620785194568422184448071625467460727327041286948589287877399202511124276154718405610143753312567183057609266047323257996311029803478870938126909750381474461622892536580786334366521481020606879164241311625457143350201348700181922161806251100926212281106510960821392364215111202243619005486776272500854528490521020604100214295898026135937024811852938736618762413072621806936309428684921056444446314070770062620841273103875640656132864567741976461499256608351355914160098559735535929889459712593807296549807842838957513432277902515472993938007468860324845671289888055213055763730662903458120877811551798904934385269313734395575986982204410506748132306607087023296482463791689044809476984773696637335551433638133416567044194033218051826048036282918689824338846052129773649937366863509212666606338550623544875605336904637867495560040491561910139379130757310011659771377459874489424463103360115811307327823878592106535244332747255464560461642334840958528618798578472322474740960776688695688345461881060484164548650136652470249271442281534291912541670618598090563744468582176801389925762543758049359204659201604221798444480745420465237808883155091720544019160714970435013793600067031328768148630220353219207967431633021471191847121195757874845402296328853584193240523223462355295836792237578448613361037741366463363611782599814963386108005937387867572118872427327524804418641500549800306225292615059828315943227863295129095074942035098778874312064352280066897323812417999301828857887366964109054651244252626181267433866677477629107565272481125304077782040719715954548328789034548371522633551145613206814111076726396932146907032430681464005802282488265958901408273838727508607205331759991206952710836988340254239204111186773488613096371339192656599362343697831466648115050496867098643520006831032866800791881250932669821968239939872822453025208066799285866731039302310594072571732170872589900524150873019968946014482283976506395438342518266801073741361700010561550482400417412633603608619778177388205362148462918323867078784445553261510896546667649152089913201166756167203365994365005280216251446164704238579205302647519881911111862435429454945319411876873686678712528912464989721910469578297156111170880747310559091997404807727525109080740256925324154133526835764499967438316779171267137932652373074959517115291808729722600414222350184534959226568976036557611296089599770895791880543465988642851333499783815115208519385285029224087661101796903288905329088788307402256937538181622143173943376698753971199061893994007650692992656376653236853650737171563179849667369120489979995892355963408286191698376159264052570948919137395093676127592266878158958942015745877643341624679684531768911574626297250596616239685734034554305069372329662946133421523309232808288403087072986857181033879380014681236877773008859866833295821678440332089616163199693770637692402492110973255291946429172532702568845832805706456314313461551724419527691626326402107066681126153491165442981078820730317084095929314050066805573934078873143094318953580430936907660736991454423481214177480665001229394047105303745379977766824917131729763415270401881107920388939767377398891307384781105173899039628457979984477946344208449609422654379482726370645207363781037699155473295553635905680207642107845955839788112907809432511229976223440987707454775206526821448629377516905821849131235096928133015740160850353123221996305495780389443088348091984079576976896626412282549517961292726025315716049799966218943893644098453689459371978773436396475431292454318450250569109334208249265375927297648401794445191105513629895443291205694141434222575780521351335997395327968518641985404263829489010249299695785194783059607373940636362852701966992651979699459974057548000010916163819156784236327078148538112041455863698588074213207865833130006546564794366146670795197376437121961932491073869757976062294409942130205864558900157061047558183805695230562421868136618225774448427377145442864510488945448141734717250067895940756783618047897190808563763264214848038602372580797377682555687216564089278995284564683001724703759378812745759197598271952565240380138652853269770147709882185358983355985797872980908855409357011532650224555990142470201858685653789549736665573197293381868125400621214256922126861220302406145988670000015548836801604898600867805909927942217431136136018644103362675591937358621900465017133840993594032705048885846396772116633253894438192625472636703893353154523043165058050071709197517287182113105677352533278634694351526382738760075395732931892213804409755483770868826924500198889121867917037253014150923487453178924520044632097994464390546850579562921025284245103179715879026649614161111117523546061323068104170895938773810282262841557931519319718869405002898448706685081158227187412395272154351566017807067959939488330101097024660066774425486544239204833764917553372817054099937000479924495980922217348583810794359391255879059548119429037238977655589517324987315698310218971200806795519723506345086678683276204274371611529888172221157129333336529196259644048545541589412753691743483287795968402951023406091011274885551675351997451325292792454914711619628350005641742975903079212693971325666500033481659916023141381488038454084954022912700934636918057185425957618992750352367730229251372433516321948616639688870774975554114834361821369644015103588417594571305038658440806560986295573943032640465972765323172643796203692163149004189459034551289120791183153870010180071858737784392637535789692401349764094833526238446325647870068812520838542969337028688748720323280635128530318369292632200963708959449569024681531315865414742236068634099948634279655763403700082152919988006893491186698357735256527100462495669093383848565173017127903935750733083025508717019328392344831913610609349193283512656539877686387365051323452689234870177610263931977953106285644334346291679169472295664126769990610087453872736259276619576609712372624584425049972984340270482017117412211473044620393715246762604059168341000694554744578309564663507605945558800750911556803491539890609084012670367361141082253001254501677079232485471786314858571767621387296512866314460927043899994200716829627883336666861772597418519367879108742191319107326742717987508358035440919900446605412072211201452933909789857153240319327281655140455777258076296873764476553099830905882372364809052523510590074650985188685270941913405971190181365964664344694277249325088058773065819520295072297142786600013378595662162078520771278187740756753891230255968477582122927777414110937856814595813458992467021951245281659249720941052400563632677900196345107609336041913430226671823295902421377435674139989900536370630279918088448929250017047926455734905039850684394285553805285131972035248401370023089095458549773040222352144968566077896245612605490595459157397850117310537270310577262417018017071154742819450848263801164483711549871969957695009988815571978547221174861661710180777918665660090888023339847549566530921376874521206796495672456182025188364427308358490588668815400445294808118023327904230627006604803179907734458680623351856978692768990201959331901455367717773174653033848723695720919398340669259618265892135870473662962047601625575936131515911868349337764186314638515362787909690556480145583240690332585678924964640275478301027651425054283075104776765158798277716977726675845496412405398486906645357514198406343594704059932749905465150402946559272355689403834603583300448939317287308103548245046901472667121661872804871664286013643097164171896018822724659094639201599187963459777255057898081611294177890582004215129779513864768431971607499915814174476681641022877886261740479845744197309245592976965290684629500865553000892195606814206098944520424363795059186643918793292922354132458612355057307603823459299676720427541880697479246216115328864267400334695482503741669790516308082244928561459998707856003547673516762600189205337644843746945333398007258917444642285742651973069069438996430964282355973256748633003349351919387359944006109533589822529912529040316174511495209326856377455669988255327383849630091509187388392959598114175713254262200876226288972018472526557000004171414683099303971421208258815865765450343378068294005515427811009164685386218328710148070932156086360372059718022082933094853598248127081490238760435290649085080493001720222228461747123057036472395066804265992062584688383380194392242030553407130461879826363303275659599046352027782252485862173984894422943407625007641425712548295896523118443016781179711856442216795738786125205165557325324189655889252627306442879908899968797773535282740692114684412292878468266391608645395255312450408870258847875798704783914812544998480285548770247062290588623951502952315971715470721039030337650255952987192858012137486299513087412337405061583840287482242636792378556814731819530764786876038688403706288883134395221322557864180412214244161911650060849768575071716461701274124084427875650784885279100686940937177459865555332449938338991913482546514342898029228041023722562741827926517032344867299615309538807579478134706169571510174916282291370062531144736214334573138817493633359086231240887190766047169812688946532166101654275936531663806780856927855669277263036337496347455825151555839829639487498208625157256422939769906302594756855863314698993879655044471311917940945037577590587061657486454155781333841857184694807228986859720219308816583302075281325893074372608346937799159360561442849468837755913945677258571384610200402186578080252368679167663177640728670069743611673510540019861445078807152860526365810560622835039465849306972110692914377138867876908985126591204490832802526259748117075770617064025028753512943626977708186140098985165216395997130247139878293279806008380099544585415892905520310492044135029040926934340683029836953439358170960180113477732383314873141246261159439591026056362203471480612130941133479741145579011608879082170990681785800653788425756601640061515674125219199970971220759360981429042456275136531188507700294759296883288900014214065324592826908836581401507971989012322463621431548412980135379577847733010902932812940001980344043038936922939052280927249204854462275120096953813768467560313617705027648709576263635198356817040293739207163146481649786212625116268086446005184439134691159625028391644168289665844981234684753711695288459168156480661340559256713011500069647497718710408185952104655493302881981340850775881147837121841954128522781322167632396890119973503242122809115225050742279119246099432599724335626237348236630972066775250841322712159540875324802180702768059365107586416705733180598204293502850278087081517975758880628672400816522539033879247623723853330820124321295702645541215391180472060424142601347220520070176427858652703338693062124312205188888800265091834194616671751902261055416802525750288239298088055565353017848772070800403762971227583895323899842246193602310168051520988512685887106519436053866488687436394872515374494364222555574198743466363488420299938221552743366815392061373057452541338527368979670503837974807003708979080689395216075855293660498119479961939513899822988637060007654293155509650492767845395066759199195706455553681612704827144764744958529498578143476409108796362344628894017309364995696649081031981941992250024243322990751063878853981182377138302264640005682194753827051479536121956356238538715532860811583756552536689204165168099774604893900559463824203776007729877625247002594924162522536874348234374801980280315421609465410231569711874282488251329315072526318977697136629274518497427931644734786206217985692807426956401981090159561875059956133102219366748206647628503274807149358298850784431669114190577575296576665869095840174916822370956114718136152666494453214490799922436454523176978299645369212592575066059521354931866331002533409592421516763914688795562625093124599102051603105802865489914679917046534807460769750733442038789864216220943409220420658831776574079815553891635165527804366270501966237444464491331379172784030823010575426438966455648732778848475290306778076561411754193453320057599252640871876380991192496609975330096727561183693127662441293945101323678767731419812517084145442477134010420333901391799051618242784373974312168292704766355143586221020738934058349106987585515717754924601761052587871545317382713937141192002822117686738426143779805292616477866630245408824021992908918723966750256951859205936696544265038733902063271800839530040493565972581647253623598530126732505578098613302133547080567765713528189369152444800636040439103066402730158878998776675137483880559745086923650751568806817310458191629112987160230267605764355550167571836696164746370178883460023242997185960714326017559516170457950053230190388132057223577184424882979707570578840293485878798815538291855628601914537815994813403809959493808749804559255955050959237061359390905409961114304314708269118279248048001851895796010910934732510969046257367047553667348037026515426994699385429787783576485435539342972837540367449758275663394071549861085562070623321710802419140843077763185899272350020312561454721912029254248920214941891419013737350644250849644402236685743306094527929275327019483185867812292666366543418514758087782585532805630548353484108214086233436205169658299038017006481862425885258070073013725884830831952661599671649438434341993849755299759281679619874927256135403486841549807342322332398871538310332699670516450066277755844581431553331436810926163018076171972696542145231022455715819777808964764043663774173975159349596290822256553966194065877401200040309746831148639825221866534963598403416075396313303203653577491275430186854317365845039864914951368294728096217105776259734423637341066349324616752220548503917751214153862886634860481854560936311623258329986119962594968376060396972903226333028829908958819205826632062693096828535445647853077454776138382597908297504447682942643680006043251869962576338980333760389630534883611374733207962014511256462521972043275163939417481242286996610886188041915290680603403209054980450995052617463455383706947060127967594976490814057899354225357238727267390554371283178310429051488559232702431180987457498306786471728606459473635142467129773308614145375543382629351243277188774916500234917120965272360196810089386080688081798751372074518921081346666225852505794440510298491987476560574173078060483344590185030751991610183076285296055666742517918586141263511342455223710568809395811931739970674613538717443322225813783934749947096565736812657299675299064958263864732383404432473223415181061460431984791935885736531332222821933731026613700201732053800087090878153915400975428170204049446682444697773548961868302910544180564278592593785473729309074448842719441718110899565526831329138993205941142425167809271185205052929052860671501012957560283210954567247492514519174263407324388486375165883712066264702846428244344448330751137654204558095795248253348477007359258053377494646194416351471301255816284803111805308114122062360298665413322316839268441863839989288469926530169342637360192930493517800621176113988138851657220987286845761203047192985960468402931794421287775054789353122241595530670684271111071590625074226663024056311387966965051676462308436538864899021357146648213262541428972809241747764148581803510561576711651841360065709200183952236238030049021452308461425609352636325036391771746061709131729076556999894899326916487974150881327554266647081577819369226475939548612270828356621181920667070704178680559229510722629354000210052405683699146350898677094183722566337152414013832378345868497766636708536178804569779081155796493572952288852314448201175274983542413064850186999520454339909321067896203212096199488340826491428943301994568890076098820968798952235024849047376086712181159819406315394984499536385101680060606614091193826933722783468751185895989809687469346676948934483340814870979310213662923698994202338755443777038891646965780419821506913663561058275898173321409578839062692696910476021909430585757320150696482562159813920817353613278389741300014371515200891910744370126064373385285302553440353488632357003983897734228121820569967412817508978614835370792282579691315167331518010800452257215355370486647305643397634005223956675752260881679487168546006671739354311357391812116678570051793225730618650951654106488246979968098135975435862533673634636054355685132973959371107564712156325625272231243630285832033495906560440180303700744814329157507253670735476884059527069770005889725141087531250563203083189979745593295766393244274210483443575429620470996714579061573404560795117966816030625289246094683263031232893693498774454434347803815824732585349164497659051014836699611715695268014879199901789327660866045618629760307081972277678988070797693539146817197486462770679867980702702947224246891972645442964424573169123458090217273641384560356491001025101342561129550964095482122784991691743635769064980438433680301081504176896339479677584558683377867820102674507836103981718101342987601988199123934772485335916246500788373931342900994653426635068213476752252022305391158525256404448745281639741807748615092018684374961505692269016591657692731620628847422092370519109053322069805661440275833118941772745778569577292356508649920043341767073137870132761731752487852361146372454541590820484471846754401153055502343817619301434146746989445668881337387775526692278269677838804062146151264040810006103387254621169928944249193068447619045462799532942796630308556271739567082328028122152532536670076073517426512683893393475784810955213250028665529000580967210801331333818044894968295903042267377454445614719376136406832316837708400301728934837922376061633830592529433903519938081033672548105136765515751683200227991326794918666836331187478602279638996827132097824073714715295542909514567445808516377498949893240868339145240855284977656869088727706070657067891879504862232946296315877884373844283725180973128024113780646423977206032210787280276900666347264154395566668752324992690785408981172900795687064669120075687130385634092489711237843814967156461975371147616359549406629219640572632900700145528029873322162208810346195050812723091194603984020575550320064084853235915897625734400411720243245114863767854262278521043688621417120703667142899716348101294490477673568258565181408012295092742118187337439762496263587624692236311026458358994367143191017436472980700379738602554469933518853965372854465558569272154471075096868080649172071558825214531834879404917222141246758815611962383733468257794758174951027809686304008509599000499650696775899710613530213238379128575714198207168297261808387028658201933328502894722399726335143403580150693969900547871947826680840654352798277118036523334696568961706927097082280105274105636795954892968905723693946601154784321471969880520340353699619438081549199366033347273401524139801386515407567123458095345137046180669663632721649499410287976942223257155175314353752807746651511196562042160122995029252478067581243329921198315181940923941552785916963542496894900512473095267900682177564232037468470237317749911332560150642327502952345746783638439388419248504642305494673607870147347525863476595149791657878730307075675008843999499861465138997020799798601115542757638937731887475837640008003816362284586356405840161574794868476611913467747738893866176939779291933840495490169935568521972799123585927507629206425044085164982729653129709430293746476921245091242160902729982943452356701745973750197114616918717120858733332162310978237589360459505383303274629362313634489890485700429480520378679274043854237154170968973166591767228526971610516595716083090536602101746102172178514734555169604377470815549712225024879432106451516018590256512832206603120858596916768065050344006607494572652430912581314780841110660871465003519928842419786941696393127418444048307068317693791224679944545351297806380996814142273883324502473730194554071916556629570885785557520885367321515180973802005017656759106120108345709745462731172886700184401985117026791465121712480633289171281224704423718829154587936086296472642930086444636971562965540654499743539385554107005803189963918518008968163412841404615164598168919051201703987157815725874487985428825758875252664652361735312238371071394296648227500265512929804909109822971161682193594389388172236228523565927087623842701263613632254642228333921158973793780470095276952263279574437185097721189533091604085890574137242458191943199072153760353722792145119633697809471302658843418107556214160565691900195465115603166992232714273929366722772322440985144382971629386538273604853437314545982143267614409802993084417431987130246149369317686674525466896501024560891289375020377399329996636264990443040085596443610313639132754890996882869309833901912569069613645684595445478398230697313767253452364237501794362617284481700209799821072730591860761028833289896962197270817083128419320815982839327067057254360553655083138226126961608411469831118702479173341825475330513437985774965794663396640486688004146702161161844140768387601304673719464743214441884359231321805909101921659055270627516534646687243456360806434188460912356882665062665160679295733158047961891982105949246528517078828039920387917394572460611159702080535589080528394620707488574965103910862854324794532265714458538337257995616187635588386172507190626464186787352751793067513255887616410534681729767596171256616694070921490899184571706681022850121090993893676973205068897704237066168540596549583921375837706919863557104125610245293605290668468983683972285417357202235539344202857132029043884178281861940440888621614320604582162726146052239341871344895685265243306519491416541054268013010079329044705704570498871140839641801111406160078644201141655565387363320819071223944698280062736520705118920550090297643410209114021935640691785816198631331928854665854063519045867901728581027304187467850577116031169106182533521931813019269171171633384761582205487926569345105396545225602005389580630497221309753287449810379003235668842218176086554639101881160748503438841383302379630584524880212220005062432507709724287143115431429278335701336394989846258071931771169521311223945440898596020752216949544374730278191386126829820015869349206804934332155355599276257127120371394590661249073569620897559779220380413049971135943001945174458245837085376890165964711601016759551849963137969617540440635931473870239385894560186238318585257580192449130582416942910282967688507459504164821981323340029133669220189894044926445274478380101607749044849653437353130128038678143925318413285520956595640172181475088904012305451608555445370700254414901319703432456111136448280860249610168094094876466307001680986284222082426635959201952474325931169621927781485535332693126726009442680736094517241263632587150586210029637905901539446674875808043601488457165907981963905029457895549398273029954101660185217923287319688320942746080914568455699251945500955367746340850834459976002841016521482547250480896744114813706775363622942040535045328587056660598962891081401065730228833407313842134946880641428331087690255473353773561930787775536903413408193653952576029902700829111413113969851011259529693615279568749413944585603145437597230960383749925410101687112108703516959336420379923584287924457529221199327539043012370373781863499918429361106890104978779792790193058858550776781005523272945442796239037951982269407089330177553849049982400241172648787097719300281025824347001680992764207652802406155875864559032138491479496749093437291938747514347008248264474000994931188255410519807516978054208139383668185649812455674820477320983394886678276613127431412685598001755711627086779500234361033641737386188879038485180838682674287523953241874221654637418200923865966034963932881587307150842188894678036148738003691761916657651473010595698184306132825597648208096829042451331315991125592767994153523691182567791604465721201583119494894684805035839919601676914049201442975048219427540504047735943275645864945976930868481003453514059578102756399265940007032861340565003088568664681686146362471353407717947030067728600516396852527274061187130920713090781912752913976848361460479784586784397653918077230677948796654489215501785230492391775228074700699649293874669681299885440850273566446865646017101628228676092902404637903890966155858747810952638174604094392769413686216040010577264833672368015700766003345914584292304795575239791931348140241943216615920711132300781856434543855649400938384760490532642778552630611946549309319020703486189559196488479310713496540081355061271511640419252826886572159203607498733361695056138863640766111197665896539296544353778052259467540572936871444744583100931632512843605267325821819966264972572720111576558604614950027215041907634650637912986207203897616495751661649644772530318526697918988489573987462499639942979271358084664315887732971805472411196348074733274237273624023010816318598734233803916061872298927750642476362722989535285710735637078392113997943925339257470949192295212236621625244148804104662642979912529926151389859252577112565013605794220287409083922084434988402391436016239371370902401875132083973225272722271996849000608266041667388662096061912491731734131762015906702058610272483043460257596966201205444797269677770282390898157939775549930285933334645829000958235699812552390741942140248290207207002165654690276199331823511817801710340422604515680144246605688983511303502434343985564838511151293680704350795739535228419292850779286662783985200724657203900092067417478087474095256405470170016568755720834518347344352960968498446109251400669410492745130920688027422248400890793011510983767531943068579515893149910812591689088084634943092663719104853759477468328619352277375736500794261928862595931343043304143096894827150179289493847703937612423087685747299812000208484064173569768639202229353534251670316949795740407935978588366942215415959140654104075023988967472614857401245243747470358603218146394857021651173064542666245994977295297886535906192712212387705629381904868242939126550847208666547529169813029315213735241079335224035831008867055664340201140925239899761190342161404219863274473430850015309107105193946733395295750024889605841397543907147534415626067598512312706991928832714122852110938625591294503059380151148091894022026666449646814025549206901276503194689965756420411363469726607450556844780223719013197402832915685826852467988121731389905568142469230697154384572675011082230534805858477611798824528038640347831170718213483854127824913310369718613106800536004586305094326499096221372618717191017905055319660103221579019300169748223012667029583468838477812676828918182144727977871782202702136605341252042772725634849556024439118444146602804590997736413305801556908080543755547637995700553770126102320330226441236504647845168109316583018066980530972377629488142110172373480277486196283456693311066646034608274461104292160067517145322124124497681061030237101209140735805714739353712912927138662999468483093088902201321051471052066579508610295824540128636881190292229545507345173775053861205394883992627884490948790632078564354851705932831633659002075124081965015936718863167236576929500726770213621607455808299757203600576464957321078692312538697489800042161093069349905258903925154858338453165553546391400958199045988688108566494425976428117512359816566853904392784361872029417723147160651665100995846541815040729494285704362747737356549612524864057609010134756760173201556882642599860384717865403331829557687057996770258171396930018119471260733094684491195392660783469071831104812038234411892505112139198810345171491966327537267187014992495728433225367262120882872902770630660266618119447305959717187238262997491649696550071912839662498229569947930467102443538760213116503142997514831025577984097039867615551945133144484839948988513217905424550739433062018702814085693191537525166691067598182126545926946554672976338667205867618994333634512986642996634049936168430107847396176377110894117932324938355356762716146416480309649338434791146813481368560028006750381102127380691539094586238479372181969578445305073537608897259498364063771843746843569182821567306942066789446475300430253261042940142825252281070872809122984957714974856211511595339572635293045997933680419968978683028614299125680710545812445264565643406195490951688044717407823921869982819580280218400595071277694947403377177267912241109842746561312546013439594994407183191679396918201011673839270153978181471912927347191086045323691446384303119355527938950696769587972096406484147028551462038774378242052759283051110823490728265654931844952430653031451680965856595748754740983582830666358083999776408947406246996091386639688395395629315752421844349355836040701499339491323072329469711182332523177871986152063101600959785753995755053387110794523072235856881628116122629843727021777087481203061716946028356719833087655234297172831615052701692906539674434706814857868363945413940638946329473489936996315803020551639917848078070121244434575894148390508062474761080095606705020523085595447465368601979486517237753921088079665907761388945701154376378262326722511302423626849025759284252452925015807988861362880651311431093653544648097564345467950489025453906407370888625826827839302949683417088432654423176531552104954693697364426499455899205943685056330994035179091197942085953421807741535817024394433311028330438538961605234640100342022881240458253979103961132350670322439826933608209184828638179318527519921536046209078072784600414473907604132889023557817257337217762363388613341145445669106161468076852098573042179520549972052454008647817604969691011037883790308055767444784228489531505163861628361033967095980732324207233033407472298988532062360768589254332703801849785499893028056760567206769540317575947881152867509306161140646502533594717654000770321888044805251811374474168537807392270213529404139875115516678673562308906974060949035480464743190253009571312881503661112099338071565034633715244328899027812858825586180508826517141425106119630701861480425376280699568505171805118570688080969190667513358419191624477073688936929375380920924440661324657454374251512920146113335067449374738226433272612467002679826620472463497077501891790880971566621389489800172698743858878424653902224677986609302228030435163520594076967040995801276962680727233159603066160316512751991404044391854621112294474244229283562452412284082434070074491236439796765205027999477140532094058558719745286467340409404563046422743922211008315236001670134639974669238966310156732614819972794308301331310792078262817908013487552587934543566823741916683734826152006799103729785860309674795938393065317141429386105813414957980191824002795604115004213808265908828287873138312952368484538025988282844287076224163366193436621487137839169706690517288398578709827989726305211597402523088779885932851439612998065242705615165416846684802780603140962696316442197378901871702700316007010331712758668609616071203879915257688966573863956766743378925056110994287349174138500872696066515566373700990955636747899601646783401257358787124684941929435952388920626926255857107728861087635378467680565079560901087826038580779481760364845866068602135374067166213154698883513409557923479604567402468234232175765066671540251946055264543886907055400487376763530574163187319099501037454391759244860509066278169659891247401631826216397268252527277383641286630427859339934916938005160769592993909128728385190059105170414761190702867044805439894935502498436618247772783934201427827448065453614903746808742865847630788726024521143817920734162046258349996847221076101476694904358417830288556743642908824464009029743684492324459575903601619980215949070811343282775093310128000920200320485575819686013390275443577747795768943041115022739249862420978562854402582855529611044857536880041027262488347152448279364211521485873375033827219800529054579329607263757939478047767759668751527226487406158285351238819049454497162735548694110900678459812552995824283807476317047437854900362686181664005694672317920380368745689348442920133920763585400713625473093567874398209568959103309205621798002253887180376921313653594302274591407833411818279619898378624315781727269592022416217678979136415534345322847816183489110856006125135489842781901780075432669112425903476140483865168670609728359056943721334701189613226798118812856783380725784831269299089868624701925319475765273567885437394464414024912659652298784704548108229539516478712058396066256275121396563623230440754138616580014979134791003374267087114976948817960035481072207626444944628615618204661046229449779368737026010237029100836806591314582432710041132571370832122452585208894901033237579029317773693667180108571508913972739278779322213893162413218492952488008568683500821321131162151846872806042265428694433023237827116253037289282783520028013844653564207277757733080625807868559202554173382322474857186080270974470661575828975659322649572997914413364735026220022769530188480210889920514701665560190646761504169476569071190540700949295778836445310406917713773069547055167671505515794699733175776229962712480428376578149756396547616062388969823845405581195215968827920307620018662707107984910886177106573121664594302252301439734255298185795312566170705358785969357592545414848333258197728378003790357774682590394970996472427953609914565905717081727242360355975703091525936329274948279102642874701152246597284038443903771957071004295082772522944527521240460733155500700964495261058753739650771265352353523130981934378535290125011765968569542619216947334659629121724920744855865929774251803097340095160365098480077567326247436153525729963706652586467904421557159243434678490035140501981245109087820152439306585202792006426056778076282189242104420265796565622038120612347575029422482771215227386687143456038339977784528877244359576477549678698485216000723089085176272574275856069579286223919738998306675256895140578267568794717108249451266270217764623052751804806242850906171060834666196273491870388617599811692374313789112454272152332988397689489547358442658674081127071065232470036253894869256849953125987725214064310152098857939278690831019893731535660405907612940200167842192936432902815297109225023584441363455916009928065275244910440276781539928431090815765647575206306280677225294547434245642797184290435124241598367064292737413422340619923990714138416808267269691216275848556981022787638337331539953267108825812506016413507103212141702167295615748619958952470249997933696780167837866284497891795405631962732631385302161123566722891490481851576116064722858175981956593904158766902388912525097811462170884711932279059594572769355391396901422808471014550953524337707100656851998644050946300236725808064276495012873079628827248593042762384117708787646978738451298872335782252747837711230474593880959233914859995895136005357721485612972075174291263757102541534877925460956247168182163309424583873484095318197177709227004426305026633856037371698995778221305439291195254315738375104125531519662929538626801501792779045621984204190611559329869145719878642218659781243526346695878510544715798226397212007815163032890721300621477493485519472338632647121066827831281565684467171740915891010065478228547525991955228693360509704325150172278676176524052587435929543067270704827434924181900844816094889369209295929479949395071843726366626535667257588340855936850745882393243734790506400997165209783310288146622941930625636005044736753745104044433259255302673420928355364855618634962203888407263901833526904560337176974372563879872466332520435441736639277040619836263578614044142204904135076460570456522929592759541210371941407277569031190946749696126852081256314179687460525097015625851497959951409458191247803415814942046009723637316329716502289193495534144623356648857663599167409575982584088823175330722989643248050657602079932398951811030006409916102007838441567401900753472546488604662679094011949340795406827798208533069124231059104472200230970891530586514988352404463435569902196958796835877086833104095234769654522872675467703710222985323211574797796494426800355531019015467158482839149076861221217712812975434383790876559315096124045083550732362114134306334600610792768884020710425594932314676666577649320077640049636857870476366174613111762980438066781233070600220789880406969286074753611021923967122537693811211911181097535304879030292421516295185258198089133206107936621147989966399878171891351140898002915467671841193333799967585624732490039790121823355774214172446836426987166051311403000416041698515185042833112208243231673410429777443828304327465986446842682873176682751740062818395394771956332045673607592713400918653496991513430830030821888730442657151138755884119251334928957506307458727992456018789492667054777720179714968777552659637776818311793684144409999057654135396242477947356140827718272243975888902465535933080472074464699366509454209715938027262335082778192565673706763816831695408496460664386388937729070420204754829595000321320050030869069633356553868411042328362293113029248525639402017244354657349800579471657944537142969280448664261799926051773668301926264057138982049564256896206949639039750430258031032560671712528718123749408237357777630923495025447940030175948381032562320720007921307542111939743402551416361901075825741613530503241786042912533896667406619109581337964347235653584086106932971399309578754457500146060833354107252227106880508411425748942487483705571379148040332219495146492808834906756687093521409247097467088463606143827276767028088870823118699834540810314028558058505593210158351802570673186917893004563951563785953247094553157485077104518026749057808044387894991277923678424960385085433322318403673275042287519359807992915269312897459690804178429234985892597800437764405661168888255183268411388447659326736652859198956674414997868801091199758486384069258888876596891272348294515751818266725411066443129631205109529148498427741579334926298551222481301441755923744359808983381349802866138913204745700364744169642613698885865138177603708714950755620447912142803806538488764309988177783776633609151887560162292778489527942739230577737367978380556620069301257988403534302307620618053780930518168438609834707862887804044020437266406479458282524910651778721554291083057714810187865005008475434832691942078706743719683737661665385906907205820693834392423807674394965798375702880072126904874516460220438154959903379415097219718397113503802353217541535433173056734343437644688805089515584883675666242150629895045116635541972068125160351190678318432522323075079148582867706767517322420890169789225968236573218927415278530754670114525327396375610513107733055039967390444597166051565299061839619704242813226168522801790163439358839781888060806481239457033173157958129691547273192561616781807728565459798821210839745073764529320875096533143274644852906609967553125372665985895678720859313179828143519645240679749340535126747322091593513556298477805476683347924189830189536171170428788749632145109683038680515794696448739608172479208225029496114097152413570187504294818671925237246726687148680096878518397756465139655898801775782019672135840992670442896441934488835154138173997356100165205359078825435881522566077579745978464557331612485424157014577759184329693190556027136797212691636427284556749625615570453056038453826133996152442167989158860424431139189755537154172742413129014305177935674807442648531910851646709390882814439224395830632977031637535494170146876416656047333923388475047469698520317180450249342738779092308644490284135336417462198729780648009571750358629739193663528705260494178772758625743717297251278576293843650037309536990838834780418699673330184636880736058311393964503739161568580610466514122750154539291280028662764557533683814074017436623636017914987495540105829913461556812397914609234172915355572444645104611611618513673338127490337921880614623500152306221596232416892330509000166777830186051458693112475281028379268996941952189146749635944192328376095396407935729410252564545929002741570173719910393909416021240220624661945963155099742722936359900921270899360619118767021595509248963850072620897325515290243134506388577305276394208332413023567821793973853108755940936296994490872072013545496867629803049096895880218965172981011506929015408110816289229224122852532665410881970171408827132756031242443867575665810797291456237919262497802550822049548216413693242573532917344997452382553603713903180129004586204947267018215631935404430080549132349689680347018811899957657623252260101132119411049211353468611708134123317106723194538974827621027043779465748017398913807339428343628942373309909752410080017146350301058094933689885535215104261278891093433930148593866519111276833417529408650971127332585542603108686518708627509991056875567733229084202229832413172502656615824279427912300037630774579821271021513100458962975731336743616442371539740115252247977485051277619261186154665307965016085534730177345512788280207427664472490341719767309709591651041215472495330014892915741657806604599935252113090411296701562224671314835310507062901564342842421983623550712893368006876501018198158649534566026737177418756508899325927935838741608394217453282508179373145279235602892669128145316389072532857804859761595482172906888756042489214098012121527075977194284499990938335927087617126127991643208951989729581617238722126111370960019210534578260110279097917607408822074942841665363178176010724824355478432569673654542633000498499651596626820038866767945871348097785015303566112367735120711459318347237102864829754689535748002238402812544474828821512735763188264233581989827716689535613628418037918496542729113230610815538973981826423875206689286331320628513482951066021308477431480890216046764100270801433861554441659385669776492411573713356203301884382876185682501160404105788837662901265168153318237876052299983901479581336018785322007370051976925083021304757871989670335097780147026368974976728570945610136894715364257731033274691831660998557033556204383674140566305257544774642721135228122108795548554819289846428212473957040541097876628466734610134286555239270036827237080626345277021573134638379478607532394528855408735775245415989367077125464368662180738516169151303621329410569953267802862037958991914469691270823329765010224316939387457451413787629138584557493669130959166850934446959295026766209059076078186474360599688454791469339474513908367404382820386691258601422667179825921577291961604658810408480653705493210259521143447182331970302768524402359733378590826084973167656706375877360995569867070736342598837199175088299792517865226971860538011047177291218188267615595790871836467916939941686405936088256964392981762179149733551259820378759655351348159423894697574715648377650869270495300809158525308128574423521202522264791114303474017549288395403943264236137816335671527155873788129487649964351482081238168539086338361896809624338619780137213628383032230022062410142194920259878087676453550164691364155551113160765267246502903097270509849805084489611943164776705897988506753995949986097962824324067022337304700991329094913423976224145007782599331779712541000535183344528617037934982402917257736802171284379870968375734605251182664664056600382254544524959130302960221080482236093980194501648691060468304852507564151376889869804112486352061400933073797845609807426376523424274367812161207704861070835283329265833829364282837845880596187015095801729385745244309458422421675728630688019247905950215475348431584617047715196028192558243660222161441308455702502862294333732030698935613257029752256217321442126611285786889507009841600054740651695227932042112623395827670507633683105405254292086169937494599429629125127777120017672991954478552836020584003639182656748719895399122375955005682824259150565325641644436366078110409601263457862930246946090674647978272461413200564499737162137008857962862408253548922402843597547111418707026833476087090741556887363782308183055448127606942846046280875777578153395372499676037610086222730133906350738278764995225834693307477685706808575523725308097079956301110659740781605577753083937404886269918882641887130591386810240652792483088124579643749696757860033805070120625902240378211767938683986537484775616621813190440601682232001188778038441651762678527993142912123285027548560625844424287855899380729865811930879330928132000835158980994035586769498588924228280873693611966153707371922247045255137239246587902482009668149478850525711448667149751275522855710426975152515859204436232946496706859622615364120382140597644676425740624765237917954030475375916138769525720270884465739984704667875158373549888184309963087819099717818867674426496901198419653441888832379049339464844175155786609359922020161247123210233837189016901071911862946395806216273114561508780542294285538915915396805738923676284056142323404917622084857791366539015835858168815672021674325675239814569079507579639477178023889479041596381226326084891033023765677652488915348550812505449021055782642741468749535524470632515626542112746760434407513059451153159902142717002016767562706738865216044761104706814995132525991467075415746288390244814720900869904543767977755949020188724443131796416895954087029659666713715524769415319262455493320500165666578206014926299489533977859614543446296281022887342181235463466278325621979017262541048472249218986418529932769317339537312599999955251083782763182909642808368067949027136683909859501520609364554250409142534934351772407033829521371547111212267314421949022437070278147930403704472768744630485522814263847513353398970354064205380486445134920291704243282286653930907095755767438854535930880998624534587220714662807573140236668452286853758939619694770772765864528423923383299617345683968022974316971622331083122054067183316953982080952766526868901903414645270139981213240739888625312889020458017520587030242205482005617090586018087379813428502321820041210875381725560185433640668484317867314860895482987633781702272179329645823907211983993841168028846078171008373825712209075912936833296746755412654500363911585052085003426806057168126140856410956594502228615968104792472452524003418540277499972740584687740721316002318783820792671817271937216995310488118622941334090245277578010137117241671045433408620745276335761143754028919221484906479214655610060387560108591584540150419571618703828370487463137176352782019393865875919207147333224962465107384048710058108139261680332066379114098538526833711447666651095527526778097599088123367476428976668594523585998675437552238855917485091385811162016747656227954675756094402025841888474423631759501683637821624153600627939464891856889900752253098952269387669515031937440693230577910119420860702614737740220878676408564596076711866253702391351333643867845488082999715161307776929259686950774344840708231530048149437152239845317193750835016422350664010063276825661171632746638493990580333142532426102741652559154843819695304439293441334090289726267576160622513950740449150630549422336290014831445412154401108606188618361626545103600608612928954218693089555518745407267702626154152996248057577171530031206183321565688817665380845277186483910051159308604483762838319479880955132304042880583141733257728972886223534696336696548789806336359031471236483133944029941289767526407321983096708447293654606743922684140861075853112234520502319749381498368388130231952521338219557475522317150410537183665038324936410637966624254344263933350579597080509271634621031542137786343803376111301336491956722912729998040488865318243842198742063208994413062556772582587704502559402325627062848537424797821117638814999507716178341677516493503896376978028310114621394326668848863268257922545003876240125277916531563193152007530538934261633121615361791440752860602248448275090249826222933563502647397478967768820463326682798415966052295345097679044754397281046653610385134045082861255460874719120315153555659132217007424022616514748655944031506083643765130561970351321638662805972038149878604873073709619768146579233499508257851227053679283114080334682157496652962277703451599834070914742606794926156718694874185593116759890251473382124965318945370807576515198933650503261406482533961446165113782384189061850277107068799268330089601249230761066042343914866056010800831982058384792247920986684818597658754808403915944488223284806819317000320311499924501263062007365559075634744190750622436176161111579788298346802392285729519816651312462865665785083550965240225734408016406140236927360409859239870329122039750636579345509096619065110705850405775855353544695198188786566414333006393204627585949828645653796948189220456269995936957133621178838784467454656114196009941623023998296743902920789468835150670557238813225625573090062701146629379156979389257497742552570141905233263157420762321490698172925896952506757832053528042340697167600998257334711057569294151445877988590854177896189136143125660643049748052000113363317515352464767792098180038404007837637020866431926608576090070673737211556646707907598496496346970633431423010328548453937048075551943440879426981536574542748033308250860386649947596852301153958792176895654492474005263112523372515270560882208368163526507324698427720454089157021104968974757923394179151311942707635999747780228329054933800695901410982977781308226659007629165045033227091693957289214409906004279789732200098231505824757960596224726572676060680110628910876385443385563561380178465452322793227957813949212757279123005911658108502780238800062859263763408169092322475675361719318751328146089253760655854185582074633742584430257407780818108027806410913937597662716686949809241293266085599950164309958871880073754558191075703062187294661159476921163800454376048062142673472000125455273838202058654734729429131975157392225097620175358217992879982908551610482435175196668522612350496456954800445457185962067352469719264094563116694254659567751688159270499849158952488011463958137437814856604615114912484790990042728740260295593009760179157706397169787067797797701764098973944246798595124873192038811429562310225336202302103820743632091901204476970589866204917914632780554132910332130348081089931019442909327926638507001283854021790064415742998341718696167094035491052858323338504215260350289796715992716565802170832908619033327945135100679870778393909527041230491411966508277600739642559443766496008795541312869190963400275863368069192603690821603671355842986404601847133053593607645734110422500563162913826974293739952299333250497928403551466991345799434046959716623930151486777389338302712880555904829977978484657792651504925106779042350864439571234727716548351571391766331249828296143546474314224557233336608473081180830890055475557432711520477471128880610776202737315577974548479898491594732217069647866471213540137534116450583544480017523687673307074410202381850327087611998136814229507591806004263724303327983455124515355396690641403894318143174037127627279008654748660248596428845876133896881595132643466630558886256934631229633361388447319717822457509875327718764956521507638448898471552684228831979665716975195448293107897286325554052100786723086711258355470210638131947708058062054387159329928511723544797941387239561016365966474336628386880379375503001315680614310842636357560057081573373185579650971472863065009360573079212807187589141871820906987288062869470973681389859205842727616547191943304404771289881152864272528658869800334237156694840225052889821264058462649361754435348699994274781175961995893300383259459508868642094973435609989739815009280936014487131581232740862747176315348477391694557949559657372149232124690766136894772211594862477619909880703104579595079296833198865919007970874969632273682320551710540493889581368009434413108239861147133986555544526806381908779411265513722322835508051128682075471758879141118953220877288232916288752889969279169896007083154289907743422742811251080537916145670357479493561998179855417151228674946134301397309545185909298754252971747206595161008896213005274804723454010300519721614472295409012813966316307132826051628372048863733614165916740434652187663872881493079451054210055437066064919518726079590487108237395152906664428809455057456744190305827072089172181857417920162229814229846239105137168754327219648641033687210745768783077204864126081095872877515960416115605852743700542488099232653445938666243316549123007611866758127696437491060917408382297247144028902055856965161650899309281257864991788115231038912771062275023916488654825837712546062881669201006390883596281476193792820418323219301383997026603411866295907506405713639911476077641548572053665965273167290487550832786957990801580082849247123045599282275900110419180614074536495679864682248423808578589844312190988343991176038962344789924473894314964179239334833417677020814399974824642702140411704205871172980093691178893719625055883883894587567115954729740468603859895844309594939118023178896453993287302328898427898736565904764922235156401072225273293267371025887583207588371997797404328763046715283167994857390314157900199217352069226295493675736815083934267280354259125737220520129010879710165275588229284432151329048315874458646642980697625380783257604144048189747057052473307458292031832347369202052176874116903549151007693968856690404557057902535382481902267506472619145300151762080606045773687858777676936843964665240318684108369403783253769253062351722125932700974017383960881147629264906333102887059268652631157168776417856566226305923390960501868704655495892389885202728269362850176681105837735857712066018996455379747298271125667492544550595645913938255547681662266807963768234896074431242950350118370105961088760373369961164781972653390311411242452754734969386739419756053654722955244244830318328486412902477797806879528120061024461389963386263547829468020923311413304708730457564159711102745890491181237733428152728091386845218916685376257673530562487658687443993722791406433521115236511760055512156132931570728318563940379541006301730509494820794421080505633612374502263783596815971084495494718092499750563362299646495980910629412254006733628439468296177665260345211301557779190852438179381973493687943843762393531821888373892799982006291952592447847610692557227486023509201350885354820212100115508251430340306887094621779232501579859647204847393476539458700451608288212332643853271932480719766378839624806467183215978776792815019234734092397933790906242406830976127014671697506671783313311480884772595115329117798826655635974057918301006335677238485743645808890968154899395992377044467645503746270439032113842891528295887152041014706123691459018428359727583737927895760153925561919326167723378873935248655887382480457058613529593814755183364628350833196416189993504831455569821708660185036993122076915214876265387835149268382940934179436746721604410100062214732874088250145375360323887983514259591270082422256548041754221505404104155469602690253773244304421383016082910191165161276496269025642258521128643843142004664715731451312386475085482784601459009759030049728443074005063748904825166926030834537176998624181867591924342544605648167033111722307689734545610490654773470213632239315255837602320338951510920327778589199494393449610274505236345845754504190632776652705217254929121680885492234359314107578976904252258950872837073258387200717167394598417776576457916374876977059076083808374428950229983638603747798987241124909855466728388831664272102324541739243885839674590535283309646347789277373391252487645852814876409928833762181009214335076161109382775051900583206099435125439317442967416861878505690633965108694225995550258685802530898168421128966962390752124185902448577920954861593877414441754510145705587478566998531182334272816381826943982550602997290156599278847401297484732430336041770345939287746332831054315368066657717691404879671872720499302257529274387338280720643334008816705072581423173876418801641575672201559388048855070314790228298391633330519039018698391925123866315873383692113608873117687734103425405211291398740993875037682273738712841758685898888822890107849412849238586835878128116651332460294220708038567304947135318039865718341165610793843264659515709787554256753560443301297591469698495005831544485272050707554448703015632692205633362573928706156145165677478055970630223286896132280652937570199681665480432867215645940682788990253849769455094960456668794755674263210968077919976082334550317622337402145687726990418128587237125462336029744360465631768786121088365078745116458335438442251294213717056784839829595038327764154663379857568281200087769838471652845413937190906401136993849750581434857410020352979542752318151959789067884860718320140861915086655599278854648664925175227510904915489107698473517021711788935587479401137653906813600870264673570318130355966672918681481177416987658609610701470320587396978381692792476931248873830171956126318730005633165515018161701298639776687078552442534171850649284094081944726796612361241945527553796160960828557148884334123334187816696040327019129137215322488746139768309959480778756298468851499677360595974134921489775822682362459148521551417032446711185098935540627098645199522463427608587855914771258156562200300906946219489005374747261464625518666093874646714652378563303413025798528322677974514030736703585475179236884256791814153942341872405046105525020741599002638142107248705755139306821969106463214639726422055790614281753465003170226464721442264234805762241007917652411402434997694336259149287455688657032408984621602652177887972444308965864438992478178648583322531830129469896721727123245863868315280471074201447382119682317358534792299224146701535970041354047904093467456523270734627427147966478892227996514974205555028631653015590865825723724955515221813197671602472257971094950753886568435262468853284762959846317241077821749809451769775513399949298750842665764370334080324511393888905412311625229308502270264226816600537439364523432393004810583571859490601531733328999602025916792546309277912149749050273157240298237434402869776847273396584851829958435316468260548621686339692708541689136048629337417489257374694506832331077278487467520088930255378757238921956263503871913846075298861249823355146265527275524802026786687535070060910140497499381818036465458258987121062275828300818800843115187791538373398014744851501053224361929959356323630898572825634317453655048829047423745446161045265959647080203071065804808926965961970865178185704041966047612753155506092335064805932519886007326518889064453964853107628635828362943769596218311222619239638099445208806027632706676685042811917596368798872115673318481932607895666117067985485145284537525389051803518180504453856154598872011120846122142827016600173922001774979344191515026340897709390795295436587171746935703763202463591567573825448804081906764055786883550675534021229036132280470171563681375864139676061715394340209076572598245120302697181095315007929576990980517832762580102975542551272175191656988114006600766137751159006733086195004751489173667865402871630625068898052672194073632667575717031550264325025840819860355265614174699451568139941890540919197642415417646555062583855456473489141024595675659728535255058711184671155260897751810541397459380023857863075279222014995306731393955443336698903459088134397836224920493554378768665609072515987034525491219705767791187683946853347734401732246277932273885279535483234960945055702141287913941662586803054462212071491599629870999580073829364724673318781447895082633768899167137255401556853225848999541777012624335702695879787884808683420205526142647230766787339209893343962861795523200704213835335227502465995787276253510122751572839648089833480900878740309977190136400010118194432287100286972051628127893446577337053167541205514408693522481373454319361424836833631570051836512401077198683098987428486920731675039900830876282922117152162331031228749201924320578640803846985328668548555058121382517513538604330997745719576369245349242213192146415678209889871295767523401078148110434343590837762907341584969288076335990344911623550325179687375221025068314803905736184348654639449062424693407214016073478031304161751324384280438739782596863843313845925957558960610841901124214145654891714920741476179273098389002770407561136227249286580679778379429361757650674769986316265775330503192877836628186039009021388020975942641567476698789752820677593642592788526557757249354006165184859942421123523941769001172580481129123231548770349859985220598185795703381122318904352957265217635372024501316799163880117920494615210778737260973126973275668138217436006771007734090332675488533598615121589623395789314636946872663866558359768240494619717484853730912501164994185643524980514889964518355479622908325130748696855343462214377169757971528688993756585279365747676631980468199074341684263151838109481674721442400879449050809722041772557903827345413499505849926913058531930404880872341618166821180185238211209206824553694700607340171956755179591010446602017984758453843260204769914439769004920622377001365793916042655140930852450280526750392171077058872838406579373325355352268352059634846099049817621600442712511241981344350738755416537288012070985022626199508082070795262855747843434856279224039293587296385781114560427443345993674161275473273611102770946319810025918526633304742433631368756135329524527149668932555237148113211504540358399195367502840489963091919938725293023182439718402143610815715759593466052608487809926934631756852125702974398702568933856512859627596863781794696191180525407013233019131672345716211454045294135492906697350240235103581368849221954836774436475628013479095587362196597773214095361115280028050314887636668575929600440903486128950970512899962959735194917507033185961319738622739480869000239962835711751415366226121859327327935159249472699519469366226820759635385742297364948421183284500248734841372082961971646091771702208918721242642480159013686616968182871618506860084262320595422555387506882349851818890830677532347668542391535225081318895958496052947710012328123936394420046263668289828024901995847046228885419482319459489569150895916123014863712628625988284710757162161285670201006713197333986609861724654108328992744837170579160811611582423357274217051879835012985058160096000423074906806943990706975851001006318606995404483373503574530501886718406114310162450679259552579561105386476526672830107106434594191718919777230225217156489236776565632181230140105416791865418561311316790081519688175400447238545815900178220355378907551329573068872182840074225294624113307249089649029059649397065668637698798881749857342639351026851808721565973066880909456336558722244075667334487679411809286461249655092028825178574550365352003777363416965289844473951248752586309611753923027046798917097880123865967476530503340523434402019676180277605312082250678136481095806065556044370459949457380689854440915568898313178691102280404499639384598375869213274766333235159397780379672510578946604179353522789615158142112187174126224853281427665851906357789480224295496373555081202617164350513500165018288448911699143568069455791402277549985983240905935293617310551135333587949525324714743763693564380940530008316655190979343599506366682639153808580249732812216836068531055905498528797519677743187203264865639309983284420027085234210967972237909344140497728666737312566806886296887294251588730331044466438715040597014701050384393000024916717014525568593397325110534174113626759442901303714591955238023987114312188897385093367375202316949772432731435359142497464339468985243121258897291275659343761382048584924959505222731045981039313761345753610738219035711358281284821784729337914046887780397392457577067541462152905950511981165628842927219766725260425609401686842071078562444659522276188301662167557683091107030760072398336569596694375630008916533036127970992075825430677542112731883229700666126980329487836365672175346512389196122430575910743037495884040936217409530233738755017611008627853562960686531972624174729072341108719667973319489061164554192365042122738517406318847388096920713780828037956377917034909074390269371659718434108353261358101075134464483423723007491468925471480826730375653860985220272704760381246563611025088927448897362740528127053082089203929775187686951216181959094674645101874204097809718939108829879320657923602031330253011536640589300318001281581472593934150313036837896947140325973587616811500838819172888702473759993222284371858988352913226097107518951428276512995451926602574978112048032412349622574579141646322398677549508685145025412586758402488846145885786509389206589562249783856894185458593234056505531154884681314737893964950620245938553893568568840173460765477940750774183784298347413326111257705581041181858961739635787177703174804906983112322863452469891030946817620552108480029116519564832233330793259176973068155820549204321272700495364353100274043903812145530499374669331166218572122511840467446422476613973655580428163244379532324006918712842496776008364337392431115319729022766316478190335848272123589039860752478956454933595389250068351899291496930824227320878921051712084665050955009304867945216679951476849010564268722486198325638552364100236387944021283960401417794562236800499165022899435655712462145994164870641007885035320687529704921856024543082697986047320666439407857217991985532732164147220775314308668154096219906313136057437425832610337635214579016527940827478401053126390811994009568526030905654805419106471694646861718291188574076541607282603730381752054655747958713747990940122655426288762919662418150279857143660882626353361859803443803829678637688755995098395533474875013740750065495408758422998636358674700447677113579303293852447918829326956245373762156470908336287930641791072524795782773794981159966492443646250827494945336017157869082637636367048950472654761211625075600030357017142331379782983053592629805672131494412547874084732374831673265953271935619817093628804730913249482094714775329171760274881763260940945335698075835681262938822242286437188327837407960289011135712351364343115112114377242208478677062951501991754933039643287247418225553755581030064078563322076925143969495028711091848117757911053613420930976927968017522009103591114905244372451354663462489832498249974656276912861441408812085427895345340103659284932256492122972995199615280506898068832513422994629228549598697118010734357001193280268801701242956334084454408417228212517869073757344653129615860000426824673913426835798849352658851529548063404473265772477999112066112740182695668971491082913082510850437879309561468079644138202296511470504784203021578020457544898771086732627114091770407398405897107086159639264845049866200590742410701763139714471756640784245106209178338972767536955410761480268939256525208041596216621194415506135512205094612301049449649520990777723818988201024369395518104607490624691519594314522801822424810464307179255137334279736978612808384671336708700443424733776546984563100266788337879202978213146109285574928222881163721896384701049994585251384006477408063705859465836561086558287619695158603579740156359525884769042462592083886389764299576058334060668959282733069437432341915404200614755375354673921389467402306381345481037976997383108067424580255111909994572751562884300380472239994808986854932806081231482614434730256027533689375232868082888043285747418410574563428824155485360605750524616607990555695166782233479545051574634160105080762520902533563452731767704720271024638190455657939069634621766120726192982615021176809419727517477486475287174653777775498974369069980270714332118162514540140470474158771475879150295650778103415168826589534791617520863675507648041057738061010781161941035582139391351936520538245868684292054164827792194424501606844270866652894920171551434844097522806663766673411833135646626086201194762683844247009513801635947256674697731701071990340337995504022408583548569790882486774548972045738033001573769072654810647106907396971407657280826904160449617158797603856995877087904679698738036980214764315372293145663764706621944899818538281878696392847482473736184857081267210145592561654804513922884983409024306165398779509213395515049290538139134390609135138899468646973255320523195925098055658460874752750928531071692859544479200613600327674547294497096251033136795707562019234777567422562217028270521557072722409409952886750753726487644573719392277438752657846223056116729659655271597826969559058704526564912303095848774018247082452415872124469820395904585407647093484646896305663459664051660024919593607320378769084225959938227903434010557236507351589526402421696396299153832044296252052149425921369172553461405380045785085048061910050352798583572925321598083241662540488902223415350366116167855087781117236903612343293935219571857080237142082652715787317565762304323359796888027713942646190722528577411672939571320698716455416160838511950391466641990024799632582328203694316475713087757238159876433217313367815915556363069837323775106796029326244718610402227086326993947139643424538446412405504540924238654794399029478093013888753279984003210561947075789161090634600288180658851863555082790529146921965597009869952761643579858879576633889006996099355134929335439760022138439268975707786971813521801467904538365635990136774199964995229874499692415529028660718418666908073543867111299293656868608490605174083802541421644483390521734273855520065547196351441638883887981378151936619529939999501366636602161520193857056711346210852427146215088195819528123764837134926615770564217551794250889777795464113889657302136520070534200082940427422432098991176895503643926198595188198789331516408095076937815909142374736516474581859916159323168812776636398673641384407291510099983068508148182638347768747718135573366029845796223064192678098977999216491769212115126307522272135688641909594809118213389977758881215171850909095369254210376339333339796656279820370807618269479829096366823523627003363084700912524878063089071508596967690800740561050173894670742469785252195779874270855037761060330211380451353341843125730992545885341931544892737551292566178764053354147385726966560877406120011510051667318224009163886845102926774231382630902352970173769605232923749694751808292605957635568467868808070047815519224156881235907979250110884137520379909141801479309896982352559324658366233679791241850654867805029451879775759663481624018083417961756869434621758071508414838305698965750966941720228992843983079792599980115182788147075946342450586173259101521083459396537574544226469505082152494422179974787082894685485319050060906308813064122902270214200971927304522769172517391777762689329900840208645560882154490996031471227027915768048040777527968682163262630407387739186606867066022502987506501394845730983985560952178154916923636152358692895642354251730120285070748986884749287275468592680985794784511667755088356563965642450341755564368990486473390577993952274509013743975652616648358541402450235324796088299590224161627516593447956669948190932545375204329583369600009383133279186477257652908255987652861295232628886215442182043560821913926919332996162051250875793688868665721476689194870857790685642491307185944047614054299061185219731060639918652503475901720491210754440217411392755019469450902654987645054202913162204101134983251292009541177708463967425135526286912802168411624453999469598635115536826452009986903818172091290208990478938994632924894315156830083820358433010982967084271208482668649860184658884070513089402245898943074191648934599240289686528847859099190445108539091006309072726331832207701785180752764474576155266936472700980671022653230543647948543301043409697627053352632168711414103758383868259807481004606995023534063564109667808788986464955271064007639555384874084444463315590766045131867674549083936900971658879932221059114643071768175345473446680940215691592933152472652825288213638026094402637532332166744715030679894115494990420250698838627351268175772704107943618249596891336161815131060719233245407922860755955721858054542118873380986745713384056828831324318966076199100423102661260304040378484428910669816166658954343309753041821070337451281193337620223754325367133674352437823303222855134870310605261875211959838171746420319943597268783889259890030629762226789660264582607593029127499991697653071717539504432296395312815293376220483142220381853943271717970821768486306976686713331903229030347274486608642466257009942247765033209200955447446622455521884852562927971123240530494606398656683723231473635692954446818411738954002018203864854066845311791092451629457293192511728467776217013253322107934700077584878019677474649753310171842329791337662354581098423433608011267140187086651335967365823894931488800109364643737915599823813627773905211051001541106398132407188260550760378979254809864785786714541608441354345113832584136448098314561962184654439180853491398782170411830687192538270058759487992072318299513437159578099176185908204398499869342847666121709262364864952253490648046126184135215546512428167295545814746852825832522601226676402209562533774836449309660930254693396716607978469684226271570276113354061102381543429405973182231161236825248957086235721735175847274885573974247703932215343833695584453395789064753668596358459887009918383125861172835140399341263074481014747910162160439318913456004788801590037338838694699529878379085427241213582263862571719921698581473113306161262504870260546022545708572770947600370152179367550088967701798014370696924504766506525693504614806633611583849112396669876249078116052346183479148889113973249111388857100199852953408981400029645000459325791729809655256574044878370080746867161733141003037591455199940971779344675986140746782998871636294675696792115650145935567262943232635250862684807209641104501755060549741019777268235926487560267358309832366625341702037131786829201764056612745291984172927204991490921863502427005364474704398974710784388549033754230513810388217274109400233040225007056651198413020154787537747129538102062727114326062298829644281950659267333969750401689234901139433350551258575220346721409515958579059153137442118887220955265238491331791178010819033123924872101061078798385295039146591110967072992112418091681066481245954053434877422265861251508158275296214538786086060305683418416968736763363302921449820834885655193986097963647656092957504278377838593873180687339200213547193591842134444384751227495985519581233828058497669082347581419015009385028004685820656959674821926418696835793071918138155216032099229157298106618079619576613119597716547858489172394547009202270545174293069293371613576560851044413302322950074131735479890979595757604449099496719623911988816399043821646600595506885278275801975589592769453472068086173782672785702258081333852208312909145701082068324881411135954979682027553348830065760292335761881534911935630929774264167726621150619278697650787968910839869900305552817593680135495693001750580735477008289358047621720292349480652365588453862657991104197281660413400403030075082845326516392922711941645061397565704532656785219608856454397940184204398783035742523757612993481364908112399276902413129696503301914748776573120476857281247520576487253027114454160267461277471318876680300998485437630503635988198692068337637332806554129476608955959674069408771342043099314443804166770558510160681054026214166301858826837126394814909169975840132303937494113833734148316459363502103627145343406393459791211335819690578417123532135307362419622294650312559745676513361107893869793133129765619167171521315630638788083937943828036138199016262190212008083940114703550509180839950182931558988950962805580719442293061444577758922350360650224514491822258708504964089600054250911697637652493846487816563009069684141624003759352186664328729464683319360538837245466282107265864987928688549669535427235383595235931475681583088505087204757348265487624431243279754365697368637949755806521157555905425921690086559266525229734471462996969966393355963507474990846949389492663542007654734911416785967173230430484411202358220413201493484990588260077133621411299626337213709052518410858426780800286612986077028015646804379094446925073276119249659825488286555628165159201476200678647352174425548111243913730286364634617004999499813733514533183065406577846102506942270238742429437322970168180036895557829523099235650443105185603474797716800103574268467394660796011920357652709223247541297046411729348252725186084255144097023007808243104223507699392170042774561103399675228491727871704397765685401724845871560884312710191715618863359054967080892397890323526287551448929593256557158810963666243058550844501636374216312143245109093489934539293653264585243753472940004546552413109105047203645195591118095633492073557767213217959087212564994350469206927913866302033619024245084832637869265953323638932362864526938748811611677391290523627516021594514879332796405586998423030146524067186135235802824628842558677689550853433825448500966822406068236191881146488047465101291638802026349538104143423082495500125501640923192118275822773445888436214251370568874486207317969879031497034904474749411955341938841055956466113923814586452383035158184483916157001066550979003796537988655362324035727267258137764031622595285521756927417828348778821808338872688383907629402199164890420912420552985183733407972524854462369026379301850225594190805147190307153307952366262082291668839428933601746539323227806047525455024256810556646574352613273109311606573370094196937472437238270079530340341091032419483981101325475151397755871864921841277257894528302610858559567357488181079914907397586875902074484663312385653998711286591275978855327336437229099754464294281599738818465681442409432915546316731515838447450530161466483025489574401366830776050676427396528596511840322134383322811086643135215216897256394975496127187903758797584648851666304813864706877505771164398525133079648266491789910588717496627249393400513447879056462266580043999758157464399945072379877280860957646733782980832026147153987002735221835627988865699027679337979971590380899752829203041312006226690879950352726847804124243096799196303640457967675295733134359171763445119559417445757929227372075739979023690346115923333984453530490687188442252684006394215633606708021349572903784648496170353503525953540106132314672728441956863010554121332406926060757255761394823353532778149454426129310193819376029172995008420157193835245408998748735303094585153040365478344344868493008486674341479476908841093943794041765468022063690405319705873350576470306718381360403447828430319432257018328786713560412754147017831446280989611398865129080538258405181713604310482723349207572593543054639694187753735491684703703924508046399130080035242767977367334029831614454920443403478470491198975613477426623844784032639054855669895008077491849381773806471147260652948046437155113767819527061557389768160708262894701385531924998004783096434796182430735751347158309723090046448790881278093558533579064110009903142194073948960246439655323580082075469716364915970235565616741494793663140148485982361428445235812318510382968153778282815470088795017789238244999204606249326769211586249937106272512530149793805606013111149805320744432161222043768074444304635884922790090484249992241880573693318603383982726569429144558313694608241166343391663857605360008198629291631935302556863961927936862326074036708258969518207858538021297653062505956420365000117277215417528015481114028438882721117414551270606137621351675641414071785101629031084253516045584808538205673844763601023797158553898427491389716159313779393241891247967631130969040155999635001662657900679664779010249989196862644240287466672670101534739413770482267333292038909827071831278441879354738464610777907725340356495438338462168445234476325467126025287311729438540308500563503044290893482787923630066076758948262699486084201094426559719671316509230460271853813309434086385378857080484964130643192703806307087442353210966973377360043907173743852840638924333044197814289932386372086015511257475012418083484016128760700881606492053881787950241112927474354694758287215376537613027386054174873014232397010652112942763302622713400560370955145685175563954171149177014162505971124752504686015387069270617941655047426105162812388276927438550204839164215089648583211499261756703490659711317227098416140873583965432637952430254527750879201668778262005485839707573758230165926673110212265293353885381989808923635811878243288577459340092599188499938200313649417570990077630559987202183613341134221922161319392790585698875498505206042821437553759002587118191004046547311208091195497270328325796480233550566732817479522649543849238648627143230502301539779651714020637892914848670840598827889095885675182227730343891387253544263198996033511049362746160682596996637627879396231789577445650108985694295223690068385261200833306182609686256236985774921649406073713472650360663756831868830295235292385608784808180839485725895811540271974080264574584778487581160725607981615169862563277644509781333045708762030538184616003877335967191949807492450976295170284011019751502375017664624138465621162873438136324084655644904688566576054709661051530628184794395362908403833411680468790160214467903774881620057462789759288844861321928781705745570877951084625490696840635196252751989436024973298135468209185359608570679200396880555879119258872017158228477209689639218713732457108299939469779573995935215043776815382874811391187455186616597170685884383183703612745183584577526420543825018990062807994691503407013759035647037548527853593184999457853916532265812728747688185035505126593256936388959183125996677550986193961181476012752305842049723449856480070219000142177255010364118559107518848645928419029169063295081642348066376114039577562248797587850036916365589879522477312213774132415886054782911791168654857639037403077689915354826217908464385910263305210598613633721719560897156226274594165631599251176308141690645694390605110710430725968429564581592343643457889283934141697746765418673729899846376395678993758629584936036182269985829337994009775846471394659571467606972154207128229525199789397052750643651354760764531007043671399475475882106999407111741645622106915697172417115605779706022476073934257389451030413679020991540524942569408078539959402007973129673684997479155059476140776224621220920662941461806381001711318221332231968801088895299798728195995448323584708011699396128107677596464213945460768459724543830576651783631624173325629136752384847329080792210176322713696871107599851702591013721879630701396763354787805228417366484218150227911376090775243436977863867985833068665535997844550458077226703084560781070396821500438830864903810756155372143529164051982744776415069332881591687925198327024179001173079904952738237874153893859391617778061000900133457831483548030590062225934896044023894490008560660842372292289453272116911709133137821293994238859924441235766236013030538320984008977048776426794566667203595343933455170658370895999513337918745421812845251480650394080357511436685901786346935073186873196637979101020099024686020512594190488421563118053781001977989628213739361814724263988194000640310116484183503715640202415952259740965721506891046830980212133809535953818071647106103017925161246864301480009998228981672521957909092656227785138469128793793600953332955922778489061977349697296071443879907172907724009082019046692016099919537459945203336037370467692235430540408953690393963579364461831922266305053618604933945999785677970476256127165385175321483003897548863528644746988554089307492604355798937035275984015852776023099591346980287968893989934230895300758440555025103393408163181289201299169516893604312094401193880018467134614802473255380960436720190045857507235965871535985720448016762397999193890931502191314505657012663484403073921035019549786439599594592147916518819484208073685944619687691897697806760834706675455446017742049522296416446022894902241193192580238240170118247293154088535010133290018366725381414430984634435852723964851620651246964942032341135047860182180375137491645522080702485498724500258936313523896049851934221170076135216555762679845484613618116179121744365383357155670343880728083180432436673803777454336514766080429892051029745384643995160274800431019721784960647959447256276972785299177916233923992349227764002969588117569590096054900166186069454097442615841269032615587999618159700431692994668617283128704873526639252079891805266241218164518917315643239051816391343456295121836429421058389786918958641220304540172771096027804585552446923671872035534603714573811542612171332564754521684700227433233022823002787013965126554200924669943693375350190575133313978132433835698696780921116248942731336069517275445018084220190197659877659439897818387587840742857111233743580875852439669537421766099434566070755960807695984315695519774082947099682482180412587135865539972032884907373010009194970786553947970191300536044946250074980393840999863042423928917985796939299679405742038141809601542170105414949359092379007251358565938647159657709813172668978835425412765127954067120514209420906785158097434404361847375289241413427075497825679175985537447259983272368032022691492828976733967654030295600367844548537124676651553572375069672804456884380474266549672945795036679549759382084819164204624896764508864936080369392828699055590065895947643636677995512796376386722773050674078073415855839430533771952277917037074594932354884185018067296787860859221252419210542386093332753842680982537878478551765576185022402548155597311004309887669798987088581114306230156427094739885882053600883438762195838140079889446657506973062512534860396915601653300551390776336161986061358191047219932952342922183810761039425401705342236695601719407266847486239570293090174941937864816164902026042851364049234508639500364057115141794543434104423664422518043806063868510456058291058719535035072179287178453938354607216637760631666312236023578699964549149460973469389951973511427832584583490919571322887856495692422425611583541275223667894728671109164763361738325892062439640541119273663385518098354292598034128689515953306108950261904401179740481108982292485705062940913449610732146202383495299165488837073120280898704607470425034403390618816765536808110684677913842653281919043760821718458924362614814183461568277435421306895212977161959383490169862571985363902934533850383711230167629383756686319981000031487698269383275686561738193976851733357119887194069330580945536104300046446549511978788503832301341792034846434519994996419829438372810521938742571345035632029505429848013969812271438457920995384576812576287548234420831664491231077574022691145033240051388357056702162432249791723755527212541615243511505954717926793770210664169366426515753592183088505453587558102663999299689576444373287831043340662747413909558017024678694904101738996789866993895487745622540427270126642818334439946960935020335605816419615131520088651354622037364337424351893681790550583734682359408259751946304495053993746384711410366294562448078216815267273599455296724910404938075804983948481488151212011204063286151083641316635882590688289607765180821370312724088869194974235671373346494766305559028124434865954203376655241433362802197902161757965995007877880940001815852214607401452733950886537274163501664770540436083647052676699026774289933710687123712539609992378845059260414533320131056387468005023093681876294145571123301469965050651574434372849995183733226303485142472331288388971107389874532898127114561429291977446724994299395837037120852050044845746363326543773191182233059136086022565052350958017714143082119409469673806230068456391569869907957142878311163494192850570883028021607867351296435593865233135076874764278990678225773155866391425244732338656171174039632545274808294443669756860067516540093129853992269152172809330172071476801388329721173568055270410353785777748541706660856760645828015190502915608275173079455700901937840394370097431761956860923303045895540180342955267908316737042621963786299558053578927291246562673282600578373424617627851584482149595632516463111055339811048888768945873412851059559968313615996411979321441885805097049021859336809089488083589785205463536606931620519792977022922309860466038258956846522683342231560599311599662353926882421632436209903097270626257934040206378822544735555539891946051211578478610964025779870616974586679256174670330153022233529141897217220531355257266166899024263551537084123587398094257960793287168623684208537426424402564310682563944396634290372203214161013626560483042784311577805226594462071613302842068352740029359926701002702463490819932694774917409618664994881527042834209564459158402534871767564265103330358182816928498925671415907467470776224732897999254125508371692693790482060901638736532400202346379626750465382334042085050703677889117524909742024952497394092670933617177968857573809916521216827446078892083039443294694920814681991020900709481449681301155114603688181853068866392907466817945286724450011688599245125282738538389666363080506173842704631730100544673197763845292418894801667020319784987501658212990365277639954911004652171618082960978676014447100695562432033050886540216747393895556258079813056993968803651694375404708173936650299176226943256539139028785735804054950789605201702316421510116049455711328432355011402487159761523604596520309799937105066912863957054213386659206268042586966966494168204813864008807859718699188812225110506368768033444960451915768010923703903039629699231421156178314373909633431422302338183279227974513059277828530688901564528924149134753180981143636237416092688765037675215582887190420263428138046789433667548940905992063606642212767874576385810190478715994197609843508480712870468519465240997791367516898076689262382224748760209216177402639196508021853747409060403390365262684001382375033448648089961634446001695336903864788866836624101977807862109694533530576313313827562819544313006078483457063309436942501435074359257615030273323785149023527348368311777365107328901057152479009075120079681936181110418596702749636049987661199955653806435156708454165823079552947787192623413041126004603048657181716856060281655876789786130582455113554079458631936658054063650916265360281269276339464607340451248645159360042983947723584224172986771578345137591512591084850472102383837502570005924846396205850105334783157569075503922551961866201968168253560404882745926149470905758098563442270192224867371241277557166218200452597931504290671967003083033634130285040486681304024417601289222003276261641792543935130348938112163888591416957268911861245286861286634581717796562912765293466983016370446009426904688810775114680004212392479464095592300103446407824598929450289954906422249250090811242737827533672042975957310805241706505829318911783203066661534309855718966005975313552522335361290120634368893018223625099016420869517575272240928125603146809309399924183457419471800801097505114467767865234958833668992074826541199352145628585981933949300039530256128739992153580697053767513207889563108739980600738757616042290089001578691071609286990409756375127099004377861107919652095682798912034859566550959276839954454314606064183771699800502072147399933039195851305153963676311372089198971868237873830046747433833978318565870721525098394969662682505569065061882120095317597368146136437523716497418360041732606430164929335361714571308912984802675128941838357744403025525785050828602029055221074077714047443747497768735116483649974555957953542862941105770662592892935121491332303423799864057464039900402157713614475841397131532967037845804173991483960354792522540990879660493260171360176368099920283557491000013786049532939004732726063089741612127046628558369632747243371290328305767835810855837146819670271815105737427754141046319431694208021503995671441243083201457076481140376447590735208001139363190657194083287106924291631554971932736208518008565391823979631785443572474782556404541756588894539325477618139418734182739791917941505305961764021027518959044428481919456627967167507405978718593007717751731339426155516277119268870664685875799533228756783194817011148648140698285495631242549133518458399488553368437404400660299539018154132181920451619518192515017207120293672460381985697372612886834231659204036852871225397417167259489482049353912128717350142995574184972229706929648784836662225098235500972122189767360644238273753189844321866296778982644927633462076247887682537112051170720967467668223497522299967085945254164658098221681545972709765747422046234363586335242476816212992214715539003176029128613373729831492702672973188918595026946051844537645609730098461523327062659328209584919162222535484773136597412038450160115980619630921485637328250060341390232731828408255006410635031725920042138191169002381853953981242361988339610327644404156548936597683743544048611531108210147732864715499821228077211978125081967252537931889341961194915455894005213143559109902407537444069058016235449716675746077344829339671068519318868785205753790620794407978857756633648693802923347727597532548372786508340365274452901761996724385239705665359730484759672296427463338131770757994343840839645154414402882876327868817968625614884993968008665751348247266987698576824028006639891511218351475754044133148210390790382434313070951857128065659883310089420364309646263180317776705936345250980156717479665904411799849183368433810832564606245906589946225913072469321350141530919219063019223384631255294290815218155433994762318763690190861634669490169138972622078096698795294220809335091729432129814851478265491228153099386769464752639512648064486876243867215244481315881708106661821265215867521415528125693373711626326873486187722320551745451933087996256780711763101836791857873871067331178070018683245155379132335911449285934650356507301591735494724082916961282720481567924710446561959586077144360053104658026424033530778777786621212302082381858953955861515972025639532847476033511243766687144044637974393367495038941383336547695775262961184310613761177004019672981820050689903623703909314198248127923577068288450082459509338235841127010822599060792840284349475834752597456584882123118789460561721998962161353803236066429045885129878945595719644649751079090886269718471985037865584088911646421567671944146781032677433655767108801942811666884785525414858349269291709334348815154251277802518676237249037152788491593668792914373635585644563135621571597767448984489336384597452876656083562137335668471889915125343153614275687027750539997894007039528506631110565404211539050454035239718873523579530282270863791608191277038708979987171373613982473429017890029864739353438556718750692710018717550571529799147025764224215455702279200092773012517487732495207396444238030839543950351841758185858347722313864990319818684764203360496512589594328757607870653363998473642477650586557448574149247409786748995265908438907421347925596608711239962115816104164869929715447098540543875957055973015889422978132431911147178136219890264916399177931446257860329669427663599332592091391644584387656675698368999722739096844228856979170091716967055749833762202529174812543424377437585556257514843134335064356523198730886920687250325665816307500651003825173992589219283204133909132947221527077727147064388234425779525369205986005110352697176776568168466566895864733681667913946664255875086411926842445265583956959922774447122116384730792350477949684026882045746749172087934419893490775679325696347528900328523698319212668967381219265160153049325260656397607851834858696347997429501750239191630075004628306999864715805351328589900500759632628304495317093304329519993654590251539717195600515619497313678483330100551250249504717770154594703411745240985668014030906601850804788282148363374522486615366288075357973022863290173464831565959729295371954436744473969793591402281763532935418999367016690488246605644512368279508374753480893086312517254380580554776769649226734495126341153716129292308039699974525756763623585348725580417713253038725197197075780170424215997445690584771680117955802083949638185217432534851990519078456675643646477776910955902186940443880110779424870679145066786670856287628993021548111123304496948008895964861648914208831689761644096691427743825921451138035999002615452561768304426249323941855575935345167544916215852243085011463344257131968779009598450353915779835872533368990331646479671731508672796677239987917329704265453669289894925930492876384076048372329260884898924890737806612445545402303475446242120583068230412343381123613058604487404787640189291638136843392862616274621481450386323446222195862026624146876814602398662085061901297567309354095664099924258048636671731982876148075453324161925132363264632216239937696017014549827864746720526543223969496282634259019602574510886121137473852848831448766812602632557571264250598723322847751747627969886078532078193932194136037648290203043407169975045786937476053737830879269981786597305783618194152546349294828653024422860601990796429697195309601177296959283457624204386724775648102195930523950286813614715475176011310184674507574078020782428875170529321326416360294996556058091281386279457098437671907217686674888848163946485034498513904898411610221480673731708951103002046813135404919747785064588367170859178552729577497556737584281782741806633246876437597848746532977213124247543404655720944307138193035075007071408760453056463563639788829863921425223661522450383639777305373571104944478818302755189530615518116351922127837200025644255189630713477227647930002749076372912964985295788996197069943062196209787164602276912089277565878687407568331372135986818831107950175597954586604212883839782726464670817956229483259226277884000714376419146961422190687915142207815928007734045640820613394618732855686524104842722537575908401402754805753361797138973194797518544249424838135548564370371646962850474845278821120998382837267887628894260045015725282417351455175892818452106845847023299082488900205908714834847015652355200851335136368794990283483557040626588456794723900641018054891686968787271339620234105992674269540971887091486381777126197815490402142507850178313526686109179432162291020313731630014977082251217351870740118345773069152413161395045593355433192351286733315158763995509431913857488883882835492675116931835102425825063047361923416664721242485547981905694748931239172727733213555863837814437485804429880518218864932274009440070246932556045530727436148377264352743920465811176832211984640154749088873504014133737720853606215626887047314267181630219204462038185558083889647917511584211850315864976722602485419230048441810312046938099307098007820288382722657770709309974292488651059060135898388298842510618836458678525493621225187673865677847220000951517759713148416139273242813447260117171915153094420709124929408100514988756870792132141366191955844459701937570255126240148375245329766539418794144770140461932439134045402786095949820239752455078788987988042653405425256612983303679236341136457535041350736470409151278846077795622948765993303268514833999336098667964409791848964841597507942605753381543155480525340336305653224235179145191247055631693913041863198393266827309329292480335198380451990898582431205826118564325509887896592710731115752902010002505337655046400352849215107424010800105112641760600021988985340228447261620013896030095359034379673834535596445396529372688775010815837078881242969231696827136405736461975950099629688699524605488558823122024022483537610835952773674498091931835371481154639269727561952430423220227236943984325828250222764230027395131415728998641695503971972218531729722419965878735680032847831748269755965905483478474272281141979695962620730816394750952759285855268894077001655090208669682882967832172275358908066137340317937053786257481687268704961796669157970965142129016859066578058083442436144981683652027999923285197205404424991603094154473481925033700809077696748563219200848974940530935085669446973541022235594219120165606020187569832945912783182889109707098074845018497006750735238683065090498487032499236942653886221941099475935222910171988158357400157161058339329315269647990922256194013864067630169236567741785513564235379787282609345075080378658457694152432779361130596364542737724744951750620233836594889524249658803455204780081386039419099221834481636232921967656982547251337618513578811451423476574628826255945194193466762678945062943441591471370382463572379147281465251932014456973657536808313424743978150671304688664990631025499127069024138170497087539691226264620485168726315519317503691388027283384259547126131850051357448229314747194909209699006511990687484407043261557952245373172428667485741174848527417933081990589747324923626994185405464004397192352566991075499398456826249443244086879580289948748078424266436130397820503889927174744118738454158930918825354725114704327868568802130158968184000219857870158723722172766652737130288377058513828815715813182059777565394216031239046786347473138355576952077301230649670018517362633775735712494197803501861467048246943810733727471135137436583851593663606609675429900150851420064979740957120574151942100608766903264270236057004207583572837653168872255013249644622005937474032748156499108772303318614190479090172716679188054989343911717031133665591061364118271524234591058805758516183130993272988450210442898562657875559791025211672613003268628833767978452275984611882247173066058394517132543280577426132483542670595294598266437280811668982487755166341376218894564268524130150765954218665754162736134180324788777899501053862715561554188508775006174265354403349030720616767574823991524272994036121038373478910935513088123659263084541501866745405457362589644551133788962184621937717249658695689719393167707795145343205706753632046503297179530417810172096735383981954568084976297337764168772431700547858982028503710222198610498584663791977461250446450307116895725859092957326337351149446821892180483973021350871715184430368352403557960713700585704704933954632565446679855657143742483893149959120536694702312275686083542098105204504881583166616257546344744049519098229866776572990067734966562902770291190257920516865892918837131508356444489809185167369194184883179213924927994129470658548949832164819680078096167354572126414992448827699115419656313916665475652719201236488494616569216933080235870460143692817435099344095446542975043331425185421031425317531073661474878261657208956522349163778017203011466653938757831255040677330522787277229469350903789981599801710334487092136132656199966304791060205388125396764456275854971648193815048781705307505461389535670617319910704702053792348226453306847913590555960437521996567860311823961633678493198506536329696602932493059614517621451545331077010795638643310579134693436237956074158675108649469975172658263013528411052256670752677128389877545049562330744716294281890109487632864450573284435980009856700901939754506281490914071147432926362426921158884813293692152764424468142883703458499307276231548564605183623245740895865818241513330767265460319750192421956765543895068570469587510776569470860570022463643756040823165417202660242466881423180829283745841650114637710306759968190710858051776431530688492629419345828083992316288615361583295351613115709687103153625930882316766343203301186516505079710888353050633831036247977982960020976206737295441885671201726907093886852932929345992468699032175768417513740125086627978371029301757269071631887516479857070501447364363342460123031223047748977198282370078930603131640606188121299376555681829459345970844775433761725028636402632350146783523556361292495293791777470049252613013617610353060389859729499731367565629412833926196987634799142192923672844298056414323997849016405929236145337579432339960168492590140960905493817220456920951753731381584869261599590652130954933131983509196330328620937298621867676974807229287596408507522630945129318522906249261430776790514581101022882329170230684048259103238134617717637852024578053542164311490843423793098167853364871137663365360105260502737649625692353618147267444277382867565867920976034448835489017554472545822554767200733665745580525055827769338904119557750057068525025214696604207093299357383293724501267465283629684782942392704672012634810777676241531735817894901353856270268805757602829447123163634188976061349944102305623503219730246237934646034954755547572906803936778583467869522831823501826502681814305573942068585266287482104548817468811562872660284173779469205655937709947365272023594774025769181940491857905458842083274471730495669686413332131863778100728971209984546095631915964636345057525714482470438152476044348925686185833943484837469083759320477849768255508571766014519066216174329094929251421045052732563129623461250005992421864792949844993800482128315103962640430420228843618684956067419136188956830053710048995699054869194905136755154677646196994766217548980024430533009304448419764527707073076591382654865819324812242129334626998335841546398203617026302827250498675534973715449207179678763032800972029675458516219004350318641315204770790637072009484041742708621608831280638097830585902113851553741810723768358690361388011006395191049219680398191796948194196756819467647816828561960124495026521099827505734444525606900312819109227933256248344937374561922758073618763534715611982576995392148933343805179857705565985643828732444201003088373777717386704241920557543673241006478502383906109798981284282164700119686929688321502529869298813384430580106297226620251610565643710319818969888708552309645153451960821215975649056802169394892665501860359894484617807112902823906514506133090328961555629128061168116636060325302049105803728632935134285125523390179621464594155830956960791632435230142044933658804206438408868301864511980698873330580256331820782157391765530545817531832774259768991575360310302410807451117844142078376210761413761604888622027565351361610462985732811002231786554394226726103397815551105888784249076899221791555930364351238927543654436503786333597462459110743348290067896791107788308879759474274691296330044446814186895869591496432053264193625409359858832828179353689491980560361072413641859840828211742436805705743311785489641794913005144052528185577300377236242620432312105268441459809057488823906278899359384587058279831952844543534228485225968637703863150414117911533191928226200578064229754377363168147509372362175209685316604233284183418100057153752194948214470519183859844215749016662343824659618579414126119373489131555530566064588978212920496713600775107118340072395461883794804958673969607315782217468631431820061299599497490694704961580046236906499533679707800744507271191355368883822734353718424553823966895367465411257782788382163689131446992049969600579607963266500645519584548744632335971407932772140851353218749533484662629919606089660835146098887221634762086943640208871657658913288565676527466230472931769170776027822926227559699447664824533372202627323149150720577633832005834275705428209572299256541261012864421994829506994072926487665112083861634530225735612808790850321857159487364230454905416159081860484892569592233850332174335481538315955938606299616609439125616821414745111094649994064822655773051470676759111118095075170159228388313124305826474089291597106495768045161288122791893946810735464855609088117548199806791522665945043486588063254927610046400594201161599527028196279499773762141152263960100767021463083853709569590704518776900963374973379985561159365957405936478046586578137217547030536913172154001305610803950612802149445836582427912811542172368781271084164535418120205622001078775282765311105834142856691053469014474682741801354885011440187538703210924307006285781279217412154403280248433522850238924733249493648906965697964089722976486394909184938220408496460760162623928607001867424385293421224945805624082205346185569978820893051222698220320119520463444884542125569515940738739458689448572725598855639983509798374155160541553875436521089851825723053077662814051203893827982798995806855133213069552858686884612949156908771009272280205214018582434677222120969444382051234116572427026415496771873014618315954958184944204023475346358286888875802077272589481142208725325242175017155950477753059997458048796970783945493462850345386394000238929871048414271189276252191178505446569085872340611155808865697031487180077700335181391851907865802560011289303398557851246018481076400287906390400544769545867414053868123952007858863924290863288406905185053058722422011215790427264155304668980446673333253509110777892505172446192907114603176103355597058393072438291663903263370581011064547132566879705693011341557228290448575441090644661232660952702838702267334157086451086702488592386440028219676176857943217372901363920709959734368817377082171805664078854389187381156516830194416203335068239520414520479061403025282051627687868280838667197610289924092954895232369395562126205654838293207360075396491596893552544661258947336790366438898025106886632288664558802265809580251584563320657908078088087400949454738140122145307808275501738667692715989260350033159344953349961884308319138896017738042835765285711399636885998474125599478261889069521921349309545174426175187789560242743224006711203367955044483844987302019398961031707313208896812270805132703395537450446263387290289678047141278475352597109153213914044223852578430889393025352578082967086847118831096739511486502547646459064665061547134497033691245251132743279832757557538509605728598505901466517449589386718010617584357200832722623771039578817789728017863853901028891167915786026838450096392423816432988917035154099663016288712556408799305939325867085940015005778081813058910508628515843064534876840669696222050277981664815017987883397364596058178190286018879604490205617251047720088313940978335229738972928606403990637673945534296519649201814411135780586294360584760308850265352092339008355532754466970093853788900938000044788059232110125039853491018246457979967147657097617519376842205930718367587953076556823490428550304495375426887455205970685938386851094101428401516381827024553298767910949503159382633678428627490975604120057285944055865507102282061657562578342904142896348063182079633259273551313090342697052294829517515661778739353638086276804275907895038004253995242334057959579796237505934549574583848966179008457339506582511362049685444681991147051504607032844456819892648322331921850439022128079261088013149209434030595001789243260568960459073522469431673764575278266657256887474537385643827802016364003356783137716268056063266465813963483491170100445768107906560144011201154731896920849891672812705056848611571773353252679077773857494401624682816133349232883227412156819541293133765362934457144927636050148216381759188263244738718661554217380079580683581744519518038195823960915700637222148500226170898595140562733668886504949667206845222915148080391831838280636886878339753280722528196615738145194093993774377932654329494172262171322605677199479452863475103056216750298384848996160906974151119844438783961330689995666776879629856970136721386062092790137649987180279646908764509924536907841414235240244642189945563877329830635283953502245049603413065600916860372507685330023683697754215589738553438050002585101146852038679701318753369538515818379284476735769920169557395908704394968009182767394173806598390647837991602061745402211167193104701118822108437070358096403766720467061378871334276527904982649517166130614762871566342728836548123673215063830202760814665320593111232440917436228221422708706483827053643990703696429082663278133465091375109215839227470213473129117870735568852854665284642229887960440101599611849479297239459469657067397844177101237680524821704983690087649496728965046603725548375223434062589377576464661058734150954415150125425794855429727034363871406921964473217841581315991290781865758195238169518407679839128586804670230832113047028874553865064177526687377098570129201789901935691893769327460166640681916236626504270452832352550964796059620744859708485379756143757285811118101258484303756611733052987082316111721075151858303849074183422714959372600873485549379625256589945861724494481407268202366892721369380885602243143250724083423906785435585012388141442358613730904881923268773050685635357902910944284342326930552498831781059394908212386667414207597216868002526053548168762068296638578399062414433668411203994135328597329683239174352679953803028728771679249682515857022118037368570089857608739148390713789730227651042966028190008289770480798445279444189651602211308283693730424300137880588367457152352877817130240776807869469485283674390514051308098537103899244744042770422572980950152930060442262344158490111198358562327900847108421070284004756167134513637376333932998198114488447502396817837625146661189925452228678083273912234013418657150392066984629263096732676715489055117329010438682538665838178002729662815080343737657342580479400089091832969710000060394739342939178549797025086846739275440175356851216031132456356661077693921555961381315186843565084212586383323236298627657436743499269765804387914483429870373133322883573356316302237368761380175500465271338566849536933784586725892016949392348303477560131419984672901105534238566967892182275610099843075779931578487209133078145618571894913596870450110004891379776086361744681189472715631715437971193280832891220459575460888388969033022518517439455240345032800473802630441284647916842466877379023642844929996710276715566626581014317558639240501165814454724842686677744078508115843302014294563246575510268969112966032384951459136805626814928553924522794771195086005528795655310658316003233525160962096555371383958348531049912788657440757392073910513185752434166644457878847664515811954670388114060169800128134437625095045052788280414074664168991555233838888352834971811586304307402678561398907838973352224878184282618197351725928897204516407841674571702977057390084856682336541077107053404208182553297847961637807150952966673737029298715648844659818867185200232283561376164819663736502195770662474645510490554744710764377991703424100571806729794144265759248823683041301348034331768493520478132974682733835515048194614692883679817787009992833460568611039599131677974976134000102544333497697483623328237721177792405959687096584408054067840644864002680159165448959247809592455793433501770654799749136245470527488526222962822573230471422905606430070780290952687528238429411343183670544166558365451297451418855832971984007530543698936843237335886759943279482410480929965063839185864663691470293428456135558921049545737212150806408953198018784418098936217147057583815417286665439138030820499941838553810209348522382576416189223047913214718229405066877670338277508328088396439124408570885537959340843371358432554072557063755780104576729409882979585891278475334958204780097072989444749149917225367749149104071435009333387084929712556626059995454651054609366964219000543176773060719636012846342192178987800175642242326171589106589280833014817176536740225790279650626834080017659286135070121046075084974838443420053865824003386341287729731242531338145615913203280152501528412849932560964254251820886235839804779586393318793710435522770398068473487928270338995764352185118609416514141038209437306673352563562495699682754190835624864656232112698210018497117712451839618085633188978795741637607127174717374695741290125614946957356375644728111515750301493893540139435004169175896512032227337577126497001891322344986653216735497220845309691301632210946118754090412077964341007903223678319889928294808629418774805499930044616291185184524199335235548816713961236046038116621381758291356556263079296089706467987836800063474753519013202114968551129534842239792454130061089183361559996948342792123485505122668331180735803126883863054613751629754054159351399027977372806602240575254845598988912198648242184418206609760266819152887187950328240440895274540495577882328013038326003051791472741603527426271002315428775361238146971332929788645847852703771724509364139920494975359297958482383051199109842195013764459013501156581863575819237074069929472020479365439810112198941713916477668298762156296134919280457179410197934006893461848466169910233514615942404574163833133000962064462131136234012686034898816692863819469655329311063246127020862674429587065066216259430471495335533012636191575886737952345472666758450008904001957385175815540830744952569290451457749861622060859452011443058283931843619644632977967414310864808528249469268509540201422794521766391310416193789959016892488269094351008433651195907998983311919307549071042239599174532672086288549128974253998745044767334503594169346860292686320999827927376028115282372862387197025559617980787940335835343335181978596358296902579658502166246602186680375043159954569689378648601809397773563815251802964537671099127641946586876700049268647476187796503212275032466532196772659079138060213868357077139442114641828086634099270198413969420546491289102486716607885016216591784137661738113946242089722620078427490797321756731780995431700454530205446856108786824197890548595874207586584194871972197547348320724594959220695312126772290114042399210732392610493424915894844459519999010986773518170240263260908812309366556603708551252107497166322595183296888583913834447545204013426847800331623467660373886188327360630022365200698218900494272750009326441718371379802519211636824273865576153562125462014296153739007662279735845642473049616461277194791808377459726697145683359661811391531595345878891737011517812394214547892727849489949387038252725600305069037686079266373111057320614125651156738091261234403449294234927181165006103068678358412107606930887022765085646378051911874252660551252575035854124017715839034041714403032988001555974807194068950042759316636352609773753042637008779643151655157050194187565155969277796876149516879291448837690450111999003738807156914576914885371027461300894312030259672847787652789698581813737787457027494212276071052606024704945586927848857993417594513701218792349796595654526359246462661374542710246946425513094039651822363079575813566659295663013065250622728603041015134774437585331853380401001602210762286542932213466243702364632492092295212278830481761191180843436276923812372131483353639820516959245684776728939985152750220613646183842968713423750251172376359168751328734343467734356329962444272503468042022117136673402157861571901171238616389157776743393545363317451189158886513545129246170371031232100399651643780184934137855374305130702655566200117982647000201277370501011123257119921014958037178375090303915614514451383969111081018043839835730813406466513362892747441478963942710225063976807183249776992418675404673525901117693013729444639069551860851705987803091818455704555950460050815425938740749665828797828114820881655347585658764414168681014448393506537849474793186776337927924925502358988210976612742163579167572653579110927543430494775784604467814007164099078747340802645393525768258818645163988482042743563353770432978310066933190588051766515764297982634668088389853379255630442139918510370873549851079323073484497468946999118164804182956549167525602860703779014776332947621632076430828008011660660795912278509910722579677407314893416403986457856858301597161632231965634782940023871881110910851547334758176175520728255014369383623169436461168937323743803283211512178556498556673524217960746878869785143676631652827375604549570483070669664586101190206325831075308243673056789506724282340280346297986220672991149076540411310694918630444393103922716327319151772154674800386264173519870330677745972930373669469199856240640265725456024991030156113762930526909259775286222079654652739943286608384184159097654449823144785061314418106467489363947760545819261585580006895482355691338061919168766877056841583230423601477200279721233097236379081585453897817639026336823910642852512421246342610951307363002218268954913760964503668945098399734991703305019523248573280445936129944688245927831698454856090370879555888378166121683911705161067870899631260736646893917995761392178277117391933119417467803076974679942791949901893052156913770952384083940726313707836837710798126688903466893713548706312277599287381629374167830173837369793073474351696512240829318273920173197018317471714620371529475875838395508309447852252165278454516723857165988835792822824207115546990428912495638642677300793164023004595817200428721503362267229749497586326103705818131771229547501362531058746125155455129558909633666996687020504202690658460411188622902492118971851507853270996063688681056025192113126743767492078088610581504141343676606422571607311733215522495484070736844860729227176931731092353592625922823597580757851760673971387615951747740757463052759142581682087386573286178942559158765739429049871341914122690387392141407418759322862146125616463585996311501877509671281988045315481655859655829068414547744176723869811776063892676936162288107933891978266789962995323797228069770664355214549465148626412643949009768966871175299385712226470509478782357627019606495513463990714268485417290195446097286421359432350896850872696062967640473617585651190579604011744925129372479842147504680649007231079030452842840259186488740207466788058680943407998376029159167868856502683991418654671365560406953277445120846892868741877393999730128682769622207050942146468860332446411706587230266124884934292799754877316415618532192691900779035314863681510716520733247762236899253986134930452521287079415512178335107539937753609647295620951396476511035451784107167990921194847684521811770221391486133958279619441506506793678545664673976731323138933054239122857640626250602786717618305932887339573887312362173672014984991051399075547027203488775685824634554795918264270891293005894334533601432527179480008394657660801764736896547746617424958770475350559436806308518669174628083430688303219139179590324031082328830408063353650740089281603441064852071554320521852165155399057612943004118367800598393941138331184078569348920713115740903612331796151208978219829500048504071861119241927455877688425390050376128120414641449574835895940803592045046219951089869919647375715863040353756760807728666682076866064972207633321736938465172153813876070226634003421897972041747647866793395266187780365286037568740371908133460540221000223652331795341108247198019772322246602056286784828849563226837441450917345783202582525339713507128646732304017109003613538792267154476881783839870495654201349256299588516227258728323759131501438041474187611611193741746524297926804998264987102366557794126103114054976927856170363353876008888975066938807442137084643197193780418646324462483295834942471129264536991903521697502695579761068445250811993676501174468486006765681209213226100782252776281126278425206629888636786968761139751183317482639196146824795990337824451342080888195801221245025252037929541399139252179094947951597892744929327531507831656035901837569583404121053937947907103958646989127591428502481121965693314033898409885852521052186683288546319273662599177557617920524714381355707626178189966846245024960266296176716487856755454944443935287251030018365665681669448500368855854733606371701086163646259871259587403134841177818733613572455222298988913347225963465872247410496319162865295279178734342837275539436837815469691837206205776267737550527036985940013219190132763147714117988771170373769555275291634943932072782326691923108954051721202978045808969100161713400309127739154661720332904863951213244408091951967756030837214297510497712649770526786041576156967441223405185690237985567308555169194789625426128135538053925078642463946143885484157990053418998339605407429863497093117655823426110836948455103428171349332451439868992268594736730496665915378720562110519906292912747774795557201987479014895002139686495301249735891261556387639244583699072655009576360054543469030875613180134100957713414515981512046920879988547440744460218210418861200021306194648335850264674630659663147295315119775409129928836495329386714877124728819993138838394003232506481745439860936108037054257271895548702414241950490734018423952589113030379133301213881185756242983076356176439732197703979545759324591169271817762525613358946618017523195561651842603651730013283942725298505422676972258825572178390249364971402270382652424387878308433864836947989367953126582417566223465397900047389679896973945502108218328439309530874423433380590541150226539543977213791606944008556159505719283210987114796250459799969858848262384595458017048190838516384480363891425795995789341883491730305048737819161381330259110483293619935832532565162810918493313645995888906119239141303674013326362224579641714463312163328159768646268849262279724402569136101986583985179644559384788751049127279858716493143095105645997500716744612462635953179462067570287950213168906452415940876723309718140516146190498641911513827827215795743145891481760769912600363968256157471587562152225562195415866243756545977252793831218731387834363630548562614709998247204754048435386201113521529112709740771945302312560696279011063600537222471658587249160118510907806273666818147119842349757902250894308470677304401432217674385786607539382113784202137800769052805450535091033884892745201045266646191696620005786103083195662297509160540796279081127629703033647968068017289989968430919151451334927441517790613414464636666379488522053886121233271585499084628031942435078267765587485225163249344677653501709451859131819784358669180366051312117736692503807944019733623228865078208836195057192592730644045954008344759960116928315411207636815891310272531428418483184931564575551431540559416607181117553656366248726838750679931797656233322081897793584200035454492784131161467505028577164141834230855275281312478488452282849636679490796545598420833411570851453992375916186435539980111345653594892561794438698818340694857895523550931911633610835613410949245363009417308083910056372577438705657056248155080225225491308403028455044738275797319257849891147646099986968231384712005058031589871813708696340600604230012091326909247097427888519681816346083948844081939837353183294423794879381485902489846758939207385213095935335716482215002208184358708862459251569603221028586587913536661212500351953582891188814744827448593185412466160488329988473630776543639905956851961776532433738776498410732846571453849280589042103074864161202854967930272608555190627025213768748402984591213221318130324193088935613039352125457059881665684592564637474991508589415148606227947459049445931519686058713178619689516637144238483281046287203605881004665204743105047424188236219429590842477860882508750871783568943139752042711857758463759537056358459092612376345072081776858925280785006419507822191820206235269108057943215545013949940674472595477384442413272892318751987486787094426220603891651191148334190441980564004800947280748932532076981269195013351029807726646290055604791337489259695983628596121514843831702146613614549831073330899711049373886605248147279952592221294110126501206989844636684360218254645085070564674152544340735685340197300164831817736580142382818900474459816389354606292116711689259018264464775538385873550702300360384409019003508794277458720820807040180090731685159418716246696989753096712544365931651869246062749497076217571212258717296399404325057705861355631185945979306588729277483061807052243768598925930400484836095622283306902090362284520048014789396611012204828087021853609857501412568705592402382108008686343971304034865026751436800905501651783929535919802019827197277375810175866816457902731417351200505130214524676362885925937856248217757783143303757092792274695549947554585437525142065219685774641671306105264544496941130720358624301026903991087788474213259994077492299057588462683707021048431751059786224666720780823273838183383119144622363062521430496819792104757873908335472530941017775200706292408864632254895880040902823575706448569178821673643616267763747479422843876217300875775970985574008703622443442430431969732040075563856032478603353891863589657403723274192456605275785107396162793656222163980839440173770650446996829332268981919972739962580351411038102473755527839518067457290677151635238584427353751521777179906105430226999992966486811653162156647321195698660848455031216894693903191175461550173552958600201578824954341767185221255824427123381673627674877969729532219059089280370232493275607947048383495732252854793514141709070983237588546236265921511079833486501214341663621711293210331094072589865031771479516454675086609713012543908942767515269774198915660977662994798033121361014621038829782557134133122706300480625437258609558919012094150813497007440492404762248314325912939795759758435922733576937456652542653567300504208632371819917469881353958767345463637254186490380496880729718439288925380431568431186290486043023742977886649146341507949674505226122370668133383500682936554492228703836737160198641897225291516987448465837518791189314723475693933269951713540731876862066736208149731918870438098134857209885285108504472819073756166479314729721261187513990971999606306416811753600038088237280430416820500190767325384981008444100325741704714793750746716605432513206453562412219806970795137077012182000198321255953888929507254886991936289090049171732199272684644498363129981904977005296773585754237196745665555893930118440511828915420350592561070759619713235347817015968541921209800982670263312782328452480993739155322338711092398844416805998904101349741712303746595798459132273248903456921416938531065378247562413054659809517059620710302722975998128521729537875433471671339233169074480718804001098741126611085319651245681542488842207269384664309234572958544278322093401132853261138161269915106400987638450062238094427660670272717128928338872050046813565013036299216754743762498630901418044533351961404180811327103894757470858386999987352648670246412539190644274262975348544705889029017854792384068784536826590308150250307669429400817755606931616693015599474121172098154125507953111518235543737115884923078772023303296608001033548501796951225364049532400005043892040082677566125160751507919884313609300173443399159647366852898087684367906543855527353815200515222319892084022266298045787746073683926398805067474586612734536023013308142543612570130783838087339650884827531437418811500210725214548282414676590728555783018936920763766863318450935189376155474777841290938522040183193061532222093900135264863401347625115765436192863600011472443265572505855764055512483835002131589228938325473031222238655859620652582513620467819470997681488683793710338751550125145169550051615006768292964631108539355843642474850323691780660821274443020938889210074426178670886280061695676201735785854535199216694251285778236337660634675119981518571273066899165316495584261254067907871757314992241291859880797250461814157655277074655146323949755358050091672183628965284699268279182068883313003333135477826302070052766142929226510152061589571772762820241122067943236561535586554573955678043387724739740187719472664004903562456548049624544347530877603929394487448395137277265285557340576608721221083130721266930854357028805595183454066878538927491725949357072699039394986543995201295991001869385938447458606959921275006330009515229415630846448622210672743724656099037257505289636279111770682701833782704296746808372694008087527340472923849191796528680610969130084835657919959188437481704475102002403660142752481687389414478808180452046747943767494021796656587927876751385983543523199615980420946885671648377579151830402694099239185125867586914155848111958253668844860169472646307972930886256092698611702172298146473298413221975312058253430630395611024008751275227678874847831091989307434946772586296745290925293942179373043503418295907504679922864993676521267328482995070274530942079909284913163309869599374943235333684678315872547697831110316755514946112861812330548594013925690679428659103659752408779497609507259341808710899585333941607501353946787864466111610364510463547885124904503356989582434299104229457487484349548664838949473469355706916711911054832288673319761382159922847467441181811305647191270211837681509841229214390852500824056162969532991013056571004669590670321551398399077263491558252150996965049970073168033510087081368597719915309439098088066122675077538337891642323725706778092907774953658823951740889759080899760671114727962718951275372599102274909547358169358228517622146285642170593501148027192378535264632417901601362011532781439469368437358041110441725740745714512347971665761120263518962922518706756667188047341467589261109118564859994580469845439916918271082295481060026266857414230159936410222582802593462881982868388760084836522786221748854770159040266055063571974038041669991987029590376282523246900167515273914230464344369112725365197888063639043611949963584436131203600256330252751912557182328722904107378606274871058174743296455273648587238136154172236293933015911592630033682864681904670656108218370620907021213804573032840427308898246253222400444251349454224612321273405503649490364412028695148075201431473213125807528056192459775684395999033048657306588439107608879385437713747461503825174420128021404519052954386466197503322398888372252968104792909844589772420412186172724118290808230817958401648848084614773274047803640433619650824611987508940046854889967941395834761682162112158277142471347373444610920418387597698180784284940865523409085708677189385124901036578104944924377580753190865640586497870466711595453096249477185459611297076828281352201078100927501743804744187510284539262614418165055074049182897149953949333822057249236268296295027913520692087427293093869486118036686443923471948821869506763532095202081150107260139541273017370087171020591537400950877459996164533052093542892487533476138500655986625536638412000448719929195936850050022937899368069888263729858012353248188620353160637465755110290880876575606480304833209397292436273221483451809945281503619650590701862194472436242679272005042049320751588509465939413061410556918286127770278791574726797265819286044095513442987842163404078213724926153653742264770820622518376987752892652114584210711088887906524556791160220257185720629420450385887258378340043266521545625782341803204162412582837619540524044048401096725608218626948202982685427388728574842319618178307124415095194630429233167908755840279721076072518387959601953565939844451837295587085788147684266216213825324812401222574367914343451245432612253814054115535917905813332615695621182384594021217881379337128618052590985969258160104216370272765887073285638940248586179605752592804784501953672415350285504801442437340291840733804027411540347465214692412221091421433394966400756773643441510064894381896602708676772454368902505394866254638996396749655950113572653107026015959379648462646307837577855539426276940854505226535270470895655059433244880667311574743586179556051677786851859811205649569989377764757057091856436962063327251233076799365841625516710019211544338702833145966701071303876705282227689310111088748579352527647373850402437529320345428779238246892375845626414572264016092873203129177326893341248377652785448366545199363028211744062613469501556935036074310655799373530929940240569577270559522256820521674754207210266460786163873533103951876800690619783355276152482227692126359315393881082076328940236753072033977914543261908995356339643011544196902071976772714390622794970276658309726976805694433451008357593167980755856327230650004788874650648005551227840131169047765564942755710454606289760276470685585233712391394500782294771023371304161500320434894438559523227031249038338202485912610000238388285966884583714605822216335516780416707587096601196381811716541657887291309170451155721723496668811424390232482903385044214811237567938945912665345519685310146206199224538283641617812661895044674220261965465702848757613536406435188087365513461429016800119153694597089056902765276969325487207252386187248663856482979237193777237378644851040424975723041356761629966539099706329042398951180647104388674228525498719456363618879407293025225016948007418585749660387611824205206812266666329704106752027310505716223728801893932637370141204042071506520961649381802338222413584433377879194886219553333007156568242893359404431794819193205667461926506732133079560094821368274856274113169146000127289306637054250013975832425885162339933316010738552864447323445128411184323701984780399930565223813618862538897796170046278238726388970855189950628677039942566227258748945938888449917266792745477799283246631400105376021222303070474164558034371276843986241725096467650686531397674314531897652671207257915288080744494363410195744449888686390832892042241522574484075535628187443867951596990466093385614189172260381598257778734528518829370503438989328479501761114880679190434640596176201951499369535978856164225449947953867719335006768430319170447368072910826408953870904369891212305236676117307661985637119641276199112017044654155525569572555475155282924520053228164204610033197562100907212371814499212414512845686805334642986855859997648947620714065851594164386725099746522501786084760009225327457265551363576217799934558852959713794446779916287916389689824769563967567116046964762918325313473897885941112312566177055454218778068289028531291829981410541717236021681188663074256683434376315175593699701043788287455235858949794193817809232054745380846161055110760679180448262796322252166153606708079375700775296638646557507591930054947301849698691928619879636687946818830325271380987872010569239033544897260652222457576390118797152662684378258440098276282057250520357620541112158546611233527793496472397478447475436326559871080882144001044864432692366830815761828591473208063263041430560439374603528290710738109041795417864328559052202268914423127714639124166069580178244989041849068651191695385638365288632833121390173731336264011805670133291017954052914427390459659105696432959643908291344678882353593142077358718262682052669653497976741008457767134827807190261526848938468413127956638425560416944449410322907357773380883216616599020802799348216885542467811055181287564760323950304849318347765806758005953619731362078469153548233654160053341531343027602233346759335656124016473100146990998816329314789475392094055070988414277705026244687168069363577197838828175344995429806234471706538287733257588645496604472175482082609985802013291786115256585278190197353405182613375877012870800285470550412845790316846645310470425521380521122277295190325758555760988450749747051816222206285871164127767266721493700094628173437200168509796741507338553098847490473739063128068428959744375392773012730482512739044643949892564262444072167706036208861682729009934997302897764746474009502525313647051591657336037765593552128230170956868763142311215456266295808916782452967293055650975555403189383396674111460578197668862298334057182056810911356999643138722921040362117831617050006532252990668434140838246314832521683739611490250986320027125669041042560048207577412861450139487308284053137851032100555530819070185662085725994691155493006548858082784521003729782244705261401077697797033084123849847341298561196726603123252287391984986845004304600149593913460005768272462361823236224173545227140980506373210483172641305061651963546004215979528445771329641421822922158222093538738421596007536594385755949525821022636132455992218802949945280385306909537557122851048507924656968449527242303592264664453792376055080087470928106167961479341758274955315608386346290054313251128548069598131839442964824351765406122354735803893537062414705821502985639017543524187655836426291138240315576866876513082803325008239422834995419855689991935604892122111228009648841637436593941635712691280682400385894418267688631220993761071971877561415144974564213381373398020203656707499283905041312359292579451457980426182279396104151330763341802561379507642853283634096926750687950874341786065234193748811112018877168208958059828599865340437269298773947552403980098178390217282269303002340830051109328876542904174305008841307071184845227872159741171029624641174617121329242285341263951372027586931633432457392188187556561586672741870451056162751592460374801863210385506612742545054052068414862255424220858980802736258743149837616889842664525380074642220420807079671893473545254287850332343783330877184403610031225033393831788455515380374222546229797329914051423062896412433236491869297600161126648421837761414022521786366752635863814027466269845627077451471599839863061895930097532550480861063750311430696553373433213158024198741370492634920763807155402599635461764549483893199568033640555835517219282644509759054218247166828685548526357520504125303453010536301602033995225394116707943731320341393803561601811782658154753740839260705663941108575328681832872759289055359820739578674017413012822050414857316082446034909762273103247131615315334293654494926108890866615977456618885502973110777551129833216954468280371162797964872031236706870291907945333270523456189484359322072706243141882148862143942258755425509192333570411653786543991190975987173971278340029275053009569136583337434918415083830192696596935960229570646227321363259268297607876121956105479977166760258284797370784918281740100771318492693343551306825753839225067717897297944600607465479872584774010699011020459561884294309793555176047942019070131710906745056819498863861533464560551075162076777478026638709317616504915326260955061959729377436252981506853546553114248378546023765168880693264315464516063374692802442565681586907047704308294308747553688018245028975014543667820868999159584867922220182468487565815722619572719834021943895864213511924363692204230858209855238386609171142075540990656522258352175196722151132078410108908870230292815478070469614710977545820399352385488678734657813091480793283842280951176856421100977413539754418828937821391815651039928703832199243582022890155238536893324074456792395280019317123214365445653872328812953028375224731809868072595111707063077622600485516633362274303128419573120799050829284971071556997388353844221493646647686088723553703226414092257140447743195451272035238205620909133908419842629198977913442260374835238133206295240311846598892217802494976201715261795415124608674727146831734814617521160419079617729177910295319060329399072543118455283984573161043224536293884782525821684757951717606024758777638319840636579265394350397403265662100748949982143484922847441748696081507572063207315158831193070881691994746788303598397752046826091629531421191490518720333060578099171924671742262685562160614677463205523232488176979447559129261832658960840862077493539284954550981669033424138097390072185430535706398685433764464764302026786487336731711228061947655902762973073329126165929120588905349019458456218301497688227296050506269402186193611365794929202569161782042330278408356849833062463641291151778429381024327246632403179299825865419618763916291342788910696225634203454289882244405337853379182868691105700855706796304211540208327613048241757427375172678110984457321994809854024147547643066488582673965956030219850502251836822327727420060490697046301803421726655432614482749302056630170742837905443434507659390006984464686959442085087637495058831980584613127053668240408411417417572672904303649412413968513402569754150642525209661848899412271820720641277715021577668767022520962700804948607159355344542864341727612358799432140617963902831861408598092223563943775175909523667082986221109337454515018979523190670025859791776967789132480071658634024138559300793592700362624537057134810669948774325994246575022480734309385626322500497417036177841079029411877394447177231175119207247922432731307912576056489729559792341115423657789401852782581990564923122366574236484100131096352601851269297654126790703837519333006614359183825514278313414443813570138866846693801526786958893004881052774237590397132718082412709420200158815835793090502153314638244412832208612627711386931822468919180273124957981190010761710336684091669208488458112814652828553700775636120057051426070019166164106135778081220586851406703314448877866859549429065685122842266176278642636236760920686123172415877375071260548580495624975617069377574215229269563170896753026813057886277640792309243564324580318153178541713931219835861643777906617654272737412082976581759652031971886010195865991075123922549433477836957515638364271930990717401724116072562534026641284070502585440441774872738214369527939503640708209924943275329631781376048755530410135325091472516325522099303517880657806264746619984038118540789597426067485092556382982641243564640759800043118340734984150845010989254254346673135581550874253825263474407528874284087757470068883153562448880074120643475634509113226723097816468137938315279756533002930012567998311718488630382243587664058917632385841542397146339367863842075644801441861080368555993672008802842180653677571343044928138506710627924266707120028735683277569851869191144838717262874148004110576017401846626171051467848478430735920739613206712793246366721648293513475347494074671592139934970746267961262383189756982027236630911873708821654544868702266842292690437585639141200080933734726683329202783022312815118155912120924910622217598329995504117700191480114749041709784891682027408865317849309373348648000947754819127513906046833665843329071965184417307829278510530000385309104126895256603356210093787194930218445214450533834749476044185166738166585082110236842280045759968904797130522109667080121148347261659665241329263844515273373307013598435904250947461709251945202944369986968665223096642987961026865461697826696509893027361497986354961357103149702276947333641844053543439018727816636132446720654844838823267106382321001225901280548178498004605281596873419178555666954248590733650158379196943602740414143056681556130518036588984664973038785342832559300327051668641360958623374022989874759710695291475927515826040503401185041122761441009083622982430901194587162761760694241294031996987078631086462740780291865042073247695860330604350844634790986917919999254917764104175792422681299724831505167567011646829837779433745096371001332579592208366153231571313491419762495449973408155042514746555231231369362761859908236605321120264528703336412399964676083387432361146445127013232377406668018027137626572262747996256336516308854248115976153562049357823957256617462768505492485343783797893636658424722398557781136352943610622827903312059287639512268852947989277538750435488174831731004678148234728297604928070986184799726429352069489410602964304258587306497225449878106534428778087607419072890236581978076020395295113421890884212910999399062660971939356867745231337817069340242633877731874174715681980091622172479279997751772782521288213185358483195383101931025331134729009357994336668137297719000265201220532999501655694338788314764095909652297599380105060452658538883803897160280496879901592310783666916879683720912389522407746004658590732614190678962915432884124587297314971898628292350118813288969523914807540645946880170820305575908043446455585385028540450898776947663623298174693235729118529607623696037286057373767344959352571617746914833755488573379520530808860582267178751130898591378129795965186375404232975909784709631504512534160802763276713726848539190923141622453790438312388796190211175658219366296722439767652533483694401708405834808324802340549324257290366241449289332144623947780620540102928607693265483541400914861866539403555402592966617397496337459086592656642251586673139831386450407529502385591362112013748476796509737462100985495085867009635726413193456998736395455618545779295669173779981473430583430938475595932971318126182050731737391369766731314984916736249500899843741204468937196445964678773650102107038234841632911123577626081457383355087479142643194807956855628327839331732187796148117859734998547143946558033851237016967018756818414481162698336290013583041819084507085865082208678163551087657322899535569078465038408019943298528443307647352707519140029759547657140424449226485400460145370649066063231478067473775142574098380534512986123751967360871450787406047830553856398738499808085236959145985153371124425684746061582797408602323139778023035042911763654135095979552808180265006055138384665949160405436932044376979100779962956428993266910923534917874712230554610798368303786777087538312556334829563781070593937232535139247652559026759513889023755706465154890848793261751377917427161960373297672563842259457470100281764352800644533281886964679998334726288952919760094979593011224175450728973664266873268730335216546940314339523908033591313174320661777173181716474503842312969443681229549101728414896159206678664269186856364489430752155432002469425464607672184858366261310444766177497081948214516567023528602476040225885124322264624386731709456486478429580814345499112231580738440193605299527409900570200773504635230846628277430459712588065171123529622597201811547875001338884370098809997103878274558993208415912487297738635199351279063797091505000952001148501890268847088313015823710776522048201279152395317469199711773124457254500623461030081303142468125627541213778434261186989728590721416726656062170006558695707421813574701242824499580694651153995560881841433297294393553513549177132962749636984305850010820588806787524222453335140121239130981009731654314488302546340126135227741685871933857861292510325999734808371681994868298485279055433937049396408114730041284468552180340105792553921648331874639470481323479331340513109308524332096104728089416786199913893489890708249005855264027456445460502672785616274000784421949297689030491391557765130958545162149840817578516819492300667572475619725051544016995241667969400495022815074736688559912006219811869532829606952864299475019893758437482031982203921635363334651001649163114353032640740718632020847547696832298466651187664727861373560209426812637910048505708906457723367679979616302329607267342800031278110444385745046736757434879429690987034297623887063366841980247752128400985482465701291818163173849431349000909474362525256236557062163210610943846834337661539676863496193592349800092552459138668277893003580277171185712905573871766423242240661953765456381355836566781755108506808962519043141156347530221589593828849274113788818852097481347650702184386574403257073229913085365367753546938592759798092982367390025123140010932731197628601141889153378655962724865207573956166044821029383975932180372720380169970770252735119016468194577141823667880193644336289090209504976042015108448194916531013658990561830542984862114260432074032226742368548695726682457972946631649878331472981808201822594808611250914463903648734046762019000828241741739780524421859253630911483456136509075085028087748767390262772848480891949024200899350143518026378850287709913195390169698467284748503971217878511258908902472152431018554170128916889600767313991463829962781007225123369623939191446268163285531760647755603650248267471897388375642930328315124709706730796523757287134226278632490238447842399183323150329293393317527779910488713653646433757714898673082879581715804005759299436719837868768448969484354995983798734258356677287889251008846379333817169968805233358090167229317973871322792501623260543514869347363243110160925671449243380183704093187176214675490981374947692221419529663885263666323250027956733782143548492212213632208082328810188683680561069934921383828426513903829071439883142312760342016470793213386716505081132961549221379596381160887698204613385277200643135006722968604933712552517429266852828306721516793258435917487985508182155516854509525967276080023031070583685936062219209654543574230961086345478635713913752510626650944685872344183933563152759292797073468127402754586202779317886453426601887048997265578278496110809118706001994120618454194155237715677754981922640895420639455400137484810437450018408253013850623772039474408654838939044679299923632489645045839989054116519004034426966890412631954888924994375820057904015478734456128408245761784666791265250523124799811787018871637814763197112755851967658418098387969942865891977476912734781585953582464538646908104493975860876981022855156453940543481198948257384716011915286949798301859324467804952901415657057034774089500406583270138666874888764108979249762443521257833296460777293348027686922849254811471900272407319396275857928706926823262585892977963931116679105752746345707756325446152627357424076035194829160034238404777195730078847831239819044380195005078709447782349577706869527187471280898583231248252362585014918649598016257913095858808244900212302818634984972194771415317470087014998807274159575507322601607762719120270524401513572349335118432678169425916320336398749261413499436107324510907397300603338673172542881542636452155297161012430751263444624038069387292462030984181309600533287866683164756365306611545170369096108823751262495601945991219088959199307720864328261566171653949582386035229573034478942008295688966070989882321048032836397442273557591397102356441675982321150225073156857349626620037827006413922814164462304570175272739568035020299711584849547511248805018177696805840493088705005672540358574081542414209956859200940116788025770327344805992622451760842589701037601507928871045029267026168357564179312818143150211366521221817710762876331555371142679487489191932026387907946395844556694773229251547827736684667707798402635251009411421147751018843542751450167466254187730026901912081967046164679609223326900533962255698565855823471331031551743768992046264356115046222547144197607851189533301970606241810343518649271067489186720141202434845896467763917142639741591777572828381946413899950444785171028838381098973256684764525994869819732265524858533888675980033855649424018058537390419335110676984541765009465522996101183586938024890743300457214053118166148222247086987392148598519016189917475664650016976656431558613000540832232820288429023806766254900575673134838994548058073877044870145685365981964604131747594916411186309590512222964081237659641500100198885181448298431162597860728617397615265118828348690018811189011367403825648039389130962887690790727743357734966897266755675461555552012257941884170770849437483244914890285053718640964781666016053576914114871419308507360876760451701128638324149753073144273232779141159063464877239068031745448730826954999516468366568322037009850759960740155578132156390627498403071348077971520905896399324099999126388501367707362719064514537164591300358586178985098911519917502428266520001317839823859541618019463523069762755980560124145043128519202084498162378105060407127429681497154412543164413112289676724650713340433299541470560584425821373908989455554625401000392673729668963883763407975004736170103979696643575372753003526096843889403749982335957705292695546724165297349230256183418985671743599743293531153131850720327325018814598010697891272136473414219807649878452473564661456008200801151436428590865038530612313796433630380918037258069142057166997905663446491317601725938183061176223216856275301399143718678622886820535635894635684311187466430910786792839160210090759150635477263814535286881779499793373828949271515333319646091509124944058006576838730511010596626385084864623322268076311419167341949427713044187849173978691595198864164702823682850491932798913470187361908269779436838338751285886651932737491249335257823695865246057192881501846739431831769639595472794910568538903795639517167792544906252756090266513752084340673169353648103622898814072310367849693049662303767604493951731180480775382231870000828431467287771904238671666427025272730464559766539881839553885051420458609756073755222867251397416554647215865701019755068722389629339509965584955422146481011849013226128500899077952466857086426066037785058565781444724927190585941503939125309660328999530429191827048312404687401129809367702835084452486378531036178006919871103712571392357711069029638345335733679254059692918497177781848647377760755799355391071373974756654794025349531182688268269425311413056621507286323486320329479376145900460448673746139360484616603321317994937033780475661827286015248788043532867539216430034415506882945735392206937312773969757975863218565306445025460145221928853428029063531241147715264970713256488472648167838633368452251481876961495206023064511235505389550830972127131484585115700146110578076435400932013810870815869102983228101777896634263445920876683159152575877261516321754978923303560029953074460221126320343741878257352669348487796719892989031313640816290322561751691107000584939541202909159054552017715842065356034707471006978315090650072092889085816242712356230126336955651639626551367224041987324141732254249297074167310160618225064396262800851521732397376497712346812712711293789495746034359675201842009558172295419335327027337098622817880045961689762558396760026211622073857198179367470634710076991380335869576000990755752531928242342155248422376064286358371225185715722994361522616661579506735214210457708415724420300128621545797707379753549296394729198745198907318190671371610589763129006980679543141563298482993765179477043695535365553638520990307082597911962498335485976637027189348411583194705564274582124786268858929643289027458341319511348543917582442308416821251062796126745228613685085155667584127042413512470836563594756811898245677442903527513309560001864565679791012881593772433632568265181559775811292567160751925710204859015895992659265587982065909156003504346862096792634914382199240647738833346848572989073680776407619814603316180636854876826472028456484176194970116095540625185012938528472742982623968419584752328904965169923241866857597864580047760476594055127587640878804835936155651783535374173339210759687014066123094641947006802436244048516575125839000962941551678789027400896019310106542255406879641913473086148439457198150289050966360078670895362079329070735827934788917315128247734172711434917478075488940689268928239741852244555352571035597359463920828561219937623043749946387892630276093467186488345956279278584036162762124301129389756562997306027784169638216572754636846534461718737564999769409951267520605766931817972747729545321118957007201841147488115989492060408948764033590054066381978662912690998448944752016727325255042650258345622428402374477421288472584733269147408245963468454499720095384220353534803548568813963799919565213848353910407035248596826049703018500789504084775314365216887180078155044808105216565740600712630587715755658169182727530817775253754681180034152578257018439598106797139152362207788365443345104734136713876951427111678636290760770540034446859398061370149280855604399826028548081107676813695361223839566757986259499494644438965391478344178306349039654535326103908618593807824399853662377772166571255384430560244552238975933446651679480992328235519031914354385476223162476513089818425199416138296515071162394676536096632649354936931885931132305525955446074109424325025231038202064674235913895289842980180104961432100309646904540014125333875818928712846545030858285609659232580007040763859729851461493332332390274159746024122695661154953131305485362847905170044623056627324411373611829438286844090682860596109632311073477887747242122468282034254095024521815470303796645193548860568439553888866817065426940316518628109538421973962864218370486110181140102864107370276893303400025656917751672939015208789292891024801880154063254192507954930987206858545499026533484818811010560290520999481398031997411762302172496210040006422879069227287201258831961333767403727470910683722497458166588005661619767920605168102612493740226351931187654969903240017996589387610696042814656550190023115906038881070594391270155904444720183543665342267211479143709186049742428815968583861569601406449260308937269886017967324358362569258125152939551728963241667460587606390328641441507024342836071472148077142710033776148545294044830644999457000071383192117544772504787030581013185991309221352590740038328751862711259059554715854655719480382782398634766447292929972374720577009792694516471026231847600809728264338567151862024120612803575225044680274764245149733690630446294675040052043664924008551868328690244539699162726039770220215663062000097285277320324152439239579268427586318308181455249695889934815622971114591327771569704818940474124124433943107780871678085343330654185519017087766628310275653815436996248331813847960801518472118769574188029542801588337743862514984766229959376856421006037902121779601987948054862580503848872896043318082688462169307933177915557033209257868997530650146950302161922702679160085951679804042261510497627179468427447411285811126011138939158596286646914006197215465528578516962150819850450256232034663360540130860383103401086425294656450845134136168844771474087088678456832189838405648835185646593807726682826994078011499841039979997184708222230832775858982751480351139168999497701963962221669513478101915197251093903082924973624253971491711080251150719701982951721106326946996887826903229985016241587727491900715185171977745800396974628224542848603262429953007730008615114225977682190157173794613609607716002271751662212057392488371622233080750353669923083725139578564669969471371954796758247013333868764157829439519939858693309658665306677468684963691290841536842232616228471612201615632253017311815555432887480332925805268199574880282227559741531215933056123327006020858435470528842276898241134240925652513005069535157260880300315586831927894732535850334856086848093736705659181316595177076973021237193229307680809238477106543858525118631084812909087992251842782734387797466337876476809229850325455310362812130951653415081186383926356570134021512286108578651651540112259031705132712104963634311052898312414871977450565689782109795202747364619327210973908755236505518452827460216314624370647388303948314098707666584351439085333767937240111510629157078980862478317373667549316510186196546876264375617626033915548253405779755479426569548816192158330813576957906330395228378553090926058864232570799346228643962308818867854317100510918189165334775963232632430242820880430974573619487342294594731783310644592945250663719414876135318264416547727258803387883701134577187006691133040191584763957255345097139043352763477123737200638584246200340913418689666674840770468070045243871411626618641276308727154461667460646429361689240962031971220345467454272440096517111957694263228377412890341567247946612089184868411095738262837813600751632398812376284728970364698305034686273301103907101986759984354706469220752437286051521083730919869678994144963446031571276321530904206280881652558351271108151697989312257955621716026367040138766960955830095225265445116155573947603332867895502288632621922582830065898638606356689299844565416821981124547192409669275060109934707554139321862843724654349120432756799970938741096700003819810828670290181466259631334201847531154005381858430356519091552161346318119633342037715039722476167435192611973668342170627266977083704197453752496898433419286042011589635464110703893296441010453546017940766638735568896931870831847271221133726078433408059435719920738382262058675082141535180780652652581840905154179315380606152865340450612142300221763930503247424677922587141396946185388711927076770804183843032999608065589140478857288566435275892352073616711396316525509767027069632329671160181093824918548196662837763983035871816351924953598496294388600309376636470502030551168727474074208034006205970446770672245036605164946955499451235703609013679439139359892789607257234623796100153881402868555837089399019064705279574882917528805791282582500676422948824573959689845788552668034823310442852932878826017945019518746055410727016831734513000790879379165652835085149911310939016779892408934569610406046769255095232551218660215789240785107740521908252569115625861895849299766550934288859860088182729746824476947603753375563434933233159956814969048134227680439331736231126335270451785618000973847162902859537405632542970425949942755843450496857810088631024931668855300429837765362230715802934474764267924806512637489529989247075570024531153613525917163781813330355408959709135628870220825028076183748636065244670529546717865262454065458522316381719921380096072770379046230278987919995762997919294240267001322366738675266620935781002892612282565123952096332341239368204326621722686261930596268088696397755183113882207711005980395536335194009607483475582647807733699028288911537452007263583933301870445419182775508127723808985279063021754651092212235763394453166716698145300802180191662193266275302070698682254724934580301201433947352364238939850251932314871644266220671531380792209134806629752565366307252755783985254387631541092777001313901347812883808664698269079299889883830346495589582807479614765758129137600802164821918195236178299128461997337295890176742131517798489448369585283689706611907910044491397967947371146381899245188651754751195155742216153937682821417101012466082668872032749051045512407386860633145461081957068985602699839358550074039099911146439503552632189539040035467621567527423720106988519562880085228953475677605903024980021145986420900646260953033822738137046155879413689618330937727302512138001740377536703202139474277662316207785634249673836424590423827800960975324039448254827499523986729032904955766655349595294450562234366816139826543009565628699616885996805558528641522077782084393623228052197219337911017305724653475521269009183190558824006216882238276943030519487357997989528580868055954777835292738546173005839519155686976883880337560560458210208598212512384269059166403722303075642669511240061178102575758157826322025849967356423744981670569270926116075385990728089473253801308557071917862804527960558837374060969344214722315199521733097397987328262903295423616130630440530182931038890372336977849164251502421152183498033224189431371524285978601215187683160794245488461187802292194460298321471216363137017739147092708214738401991014653690167989700427368235541349769717529229068961915510885467391075077399603604697291490535938895216769648892731951222567939086960688623552616821894334969402137367929057754336411514262558429882026484547585259081020622803940512846331498406451150842869161304274178790343544250269922685459885316194778537014308914125165098353035477794937513512055593836382761979030488899236992149699783306282373668340415853749522906332632203065365487694449667556475668901478200305491623421799699614507008657216210847648092537824982853245894384346438259002163076860167321111882557273010933426268142712641445900616751918062539969006486507874567341462352829818601890079724106331192397396290260390329781746566271380682460014109470263348317721830579418892264427228252194133752148999797072000793301991386250351139942656546256117694922973290802528463311542856199243792634719321330023577501973453777370016100808679690967747368138560517608626106728521940847346339650402138647965542971899691904938986017606301832144430114289305819666065614834628170789155085883219596484122565265985657189415859448438500870707677374212201397307449853340097927704472140729040454314219225340226802416547193540963475430709193616763131376835230620291029517182246201096874647656242661621307987735381906116571286898700924773110798637351755364247072454156337871118578806285231923522147820255157462921013777664346721547092986233301686709591642657510770921310811577496055154605829124960289222231411344513555502570190070166720924490389134164123674329069694098023981145871121815744399203311896909063642365309808350831138127185681069855501179499684718998713606433277757779492760532717392300034794315342793587566036716455437515721115609772612847722530852508936294815392221329220859924577334745440839062589970161154956346865387571221889777647311922657736252142987965307796614341073184340860746968492424871871325273248576679926865931015049685139538041796197385040640811880088726318433839712049409399991713580636720981672524212464899324712730883225779430588745417378530493838202332714706777589417917471203083228806853708636568492696994669117045760614710953371507381719516990015458511652880477413029797788813507580600832984966766706448084938925262250126577774990111196880336429186187696998630515263279356062483801423265693152015243098835463199750263996655378345341107793009330866434202460057524167444181795676734025682421557726675133349841960291485684586464449159226235738617908245882745414418884106305551906027844839602349008171087717263538314132179860001002328513363500724863830713030810274783520055142060629989099436926484802860171411203208418119828774176225575341897081473109200095128189097235732213272358217312858546474169877493582138524881528297515175495657081478754198771673632196972523173191361609328046176910965051294054578096490581703086266290714696969235098750351404287694752175921977605982064622884578652778451094564384437765572997501004435747471895615603640364180447281579314525023178889903603248077024263758205494768358698926508190993506237124973216308534967881286640266414998053709159481767222970662808750020430103004672518640835396927436341531216116035089777819011766941535617071131283946012937248399356534363969136348532400333295796390858799054859111820150849556939231096144223555887731619786182761949058006374147779897699152250310990254388353932506682752779838853456713310787912802968336624964907228251754523906229993936710608893803026665290236126544724352200234520078720392394114357406476189741042894453114650589969200606230998727892666574881215052213968018090735603262254933175048394615519630671815191791906280745455333556370677377107464476978547500692503663475210347405838603826382972039858655782728440901734025526964845526520564550784794633185641615001101019680007090654336928088915181024460255145022517910487959696943160490760804539130842583410347993166680331534048861537148383999548871865322721770216149708729220806613948179773544646410577035581692719330075436191047320445966883778109029064220586215963369354194621654093696134850161360730544830018221487673648653388461067846487033473771294254864253145327596318926055284402154674250637867745792829025367612214529959873233487252927352886673960285991863866580229679774711863545712903909272646133381728516787509949161521810328025708310893311747862577913508661616067625090785124773318520072150375588174361770246013688967648627169716932234086865700791408292198609242498411222095734647779226260903482837881848647144185420912626533720449345986498854147817693929542588664200928112493907215933842940644742962105709406715893452422530280157185461705781271620991635336360828127562390375404641342006018955791732898167766531191187131216663256496562327815772742282541018091522270761726170073479086506438463312538537345926765498966515290249391150018922903918154250331259477166733699737999837954012095579136106237556501272421179962845828852118427816657094468821533954424644266439942206467244692830008071595006469768272729858144968853494035118588365795578677066180367376706989369048611881895480985724685491855343175341624297097404546769808885422675756629888865211615643889803059791310876083543000023261999325858940807364761446045738686181503506512129392448372120055758185432361485403257367180214513233820273147157111508357966679991334617283736497950108834948702007335040840973014313676133910961773315955521912203513268632834316342520767345443993279679368473763631621164430258454572079825817457476610787521770185814310579344461424246866247748358857051240458880486720469764131598536363799923457366129844450869506079718634878019163147731318481002613771133914222982085217576049959762845897883032998337715215434929503928588259029473330728511311265432531940863428837392711089982569354681446419878734833336835801541281226664027445870958778359597566427802330485853652473484290223744666371449449380015797251016569248483520837698627473318299630597663442041434659192089967016959278165597309804210927882139528859761358728579626157673276852192681352324597809522774581044012376180382704307171574565003654064940691000102663615931809974305746295644478390761054413668049700499095676820660633267140471624825911185632969349804839363402031506522103280144890159116146698036272791752215562644165127735445311447009088605025220626556689125764883893233366319641838499878534707105549525422104792024597651915187972579997019959510721635910169843990773410518289616776037404713393496040926022155598224798333822944349406541675481639592667530519634045310973993674556167443559722372407155967062566194205461241196073981893875039343767457068719325508033758044343362110040475626256895671820037228025334974590885731438216451386033927680220996679751979016747818393971107374960936267285261626985921716110495268708664798372490268013646192415699877397108863694576637361555797298987005868976488839075804962576175046599804312339648054471811979204291552098521738957590079977858368550316304187816276524686907246636610462317589817403651872363686138304958096199745088175064626241723964274569107164414691339227370797164447538174424397883675098237939571414687568036398611979481271278258482087393392249961386816790711493581852445787865968606959124994760057902039538390434890938474822425351965985999921462748792963033260297708497860406012631003870547698930602850902405036855779494740043906896154628359163329882299642841014937062487227949915834129500765302431502615614237076857542005853925289480315610399404877244483357567647092268307483165019332051955665273943019704786676046164930906383904743920685674247325875489384589670000852139251003506916781218512707436742040665530017783470525766680114350057757753473210599157014461460951415802679209184093974643700337308032927380109262865543527579577791224330711473553480293524265145553078989882600413922431067937272270176902544454386407143538542574302250967214701397523391198520554804247300477631158145080954685172186929965800225173096589066271394112801939938705862523264938544180586167524530692079198221157363693420265713924800344630109621969522728237708624553518447386513886100965051691132100662326262475552318108369899684113842891798268240981600914697276758459733367008497495199025804962780240826654458924109406198275326586411423003977811390803020597356080118783207057950769648421887360804130023839571500156843604938019221881620509441440950891842812883073762778925910098206443488149874402366720451191581135144248257979523610270998215272169899904713957172974158314688782031952423257251772372956817684490361764650765754194786354339233179210662552957596858984927828692549042197316241754606922486490376178291808894239523703118133510714327537399276147542267333735315131813634117168371550956854161183790419733160798624125559903294876858762937086092453955867986450701841199242909505490944978764421327406398377764339044563908555410057966692019846238373066481705857336363418284692831962210231576342620742568182770362476830238712917615165881813780950523965501198379575616436441653393459554090431269478911800368713907746448070011537467909497284902936984056814173833162602485825980959337819852164233330901557034543395381619004424583615550206368110189223583207625391860333348830015845448271821490831038094814821041016637669775215978416690498319495783892202867390361259843657211428394587619498716775652032352373505067894140813496499768003453313849723079431892566073736381589009561732763553702254755087302498167319204081283749683409811247315280822675738645489396212249965600469388392965468552365634651384637075148345631795005818061991021705825916256496522669700639264922356419248153109400230166191102861989430382585646097505157816935125064073963628647219228755693807546632681024435752243728597151537315109283243912094726442798658100912058475649347243185685823680079501909881856422323690908540433735922050142463037563291847476531890013038366211500766853383424163953998881828548010449966663587391132064571753497964793353437872648436962494473276161833931288553048490874383208221260712641026933364752170564832641238636999539068079357851593427065822575580284523039044147170539116632469735129770531629040214228112645769617046965497966425339206739541248498575327673952732568640488913800701390286733228863632603613868537088233840858325459678504148055789899955458966742349084502353009906165796787341372460218603816140601733292512469318462192002276017578724258667139314019124925986605248973417126757061065897391833644225124081746593686096328856029103114341100589849016269569634239319636352500207140514627636601629052746751093083938377908372355214628612936488404400038461632191029642532120493546493049459981737152005622747791439995424824216822723829780399861414846419537127790197221325191389445006995150141118334502269062472454031465770845935116813867562880223702279643147731806541850885715452392358218232876957610675148530937258363668154577447695831780983257026226300084535824991522014058802329823049431810128575535682559730309019229669349909060935799005830932487099493340155026781327045073704469125507104705326953629092194519174172773451493160138342838463545105197440350908115276470149444276830678384080903284602511011678166746345847639226708897385554678564219097079716982621995329944072746394943033793587938738544108228254117789212200078287955464146687102459622820907314348361321365233619278385440587821300163901429853010818314637012893828970684679782988085373718347784794599770004419165707139787213298605839993935275817700613879867955582221474747764325861709426303954144915170555511415341110611148448885878312453457088852630370083558141940887436591866867883844391258446897108241022891934268843446988037995073883991752516624061656278037668023737331780735310044197446910716215728493808197531374478995924018679332882290956245333363802253929764758357548794604022433027529815516594037111178622519614459680160253187557892478979720720188969854268286469332524450571317134076881784299037752011772858342288949739848266731362272370110748986082139404970189330447966639347392816608230111794004027466979485577730700277852419617275874273678939827173917794235373324561235877252875163264930208000478476296376418840978548748656809120670049089515170706357127232848783050097908205061843073682592324613703145852218024067383157535611775953323813369429486063015400456444179224635428282150071106525030209471162999988794579093795832841931850305792000285147162595074101095459755915353933720057385524701312071589948438907720513979142656819133997990643555902311547392290704576625369547838066505472289809262447177399884383545374531013292364908652011252852618301079821024840206293246975617723655652072944598246734172047934920113947618758422029970784900710308189772087882823047026187391071779558800428734799190399232614490452771589562233361868168467226331868858877406131927256021143824566439974420651009358016604966335627159762897350279345298698885757029704189485037507380992384741459932129215439644722114538579562573432189697707307842317147572360890023827462284151474101414759219650103520704630750555363948814186771945285800071655454582453542852112119606795397314419170651408540542241815136508151633828230960126355390167127717795160763590390925297213887230257052657797917924690264066525466130285130923256359581396979523732422111954168490689116171774418296695696902097820126727661331945294993239991883662268555565011352200638172589084895003087299514763324179361272314491063283417172998683987976226142574077491006755335014565349890272074456760945493402329980838305336951345602325082318402854674887949310288543404058285447706939472408611262671815663960398698527064974494307215751649422808691949469784214555632108301958001018847744782323785852023074896023642550313704633797346324337263462717982759229699172949733988491009794250093658525745778867991613488180966774366905257601050049798244579832877100586689665424518842082888930759736326593702968977296469287649844661742794463006681027955499202776054793086631554889094199049127031069597433905571181288490258910133491665491920578406246393096311936960059786014992239113657828823467198791067097413420504388743558135086534162056886667469824463874261118071303033382342592588857977264976265817512452803524910957117731605188174529660593508027116103516632233067290924643676026662201290269148675675651456149127518241183057345769020791966996227845233436118449802990273499886600224590526371436504870369861641852474806322872332190056441457225175727110845764395806590000757927797009088522450996471497192305485086855601418009808016151732218048422871321781834737434453320561697535561581379619166500695907531819636872829169581149255060687613710505321182595754779837520212318868689880886325402874861208201492516292693988084437011048057229692873494122539750607877693483244710795614970257428242007048382625996568833792965442459245395484531876250138410024135359284900181096917542621217658151033925736029877733235034997033144810215010077420098567949751161392966611387758301201761686347821736967072258445047430341214513316882731450370188260253763807537895349689394371927275061540413114779596436474647376796810452880227329295648714746318420622072721100806881028657062520457508193816313606269007855862614795304021086125901714715539694075919209321387500107597452258604174880814202250121217656125705855982580309291326783808935340849672177709846599394194845908034516723642990024088432934656867801997969180278652788478260581286305220365946853555126819150566682677800058067504724898149714596810632529119611021790159369725092558427564372667515252538717320275209861385866860198254230465642826897808951886315585054200846952167968809285861138169698773308501558999000292262368785599389254169312678325600294416417000329737750942185590360117094083487768543363776434436321222390203789668485804428217713518041711552284085137514555592371371478171258056304865208045885468118401064781314413859307062551375584745203701271208673470951304798658348187435333180768073021898982452037171503874633044793016302676104969170460122183727579855126586345356656272228624769874026271101985667481228497248686467616212586867090778303587637860913302134707792320387864725528019083062443752025700011793973582526366114944166294827470344440418577953938338222591385934573446681869273512478143565906196572932249249324919288094670508209877428071327053444238146085968866962826608342550358258666336847472671753512380651971262156175798731066581491876368799693605198591860514795648233975728376368425043127209027342952556277977456949291450913001068091541643077371928201929455542404432238242678023064340122952507200950797599324478871899467470823158873706476626286372096672743740982468503636079997701767619280219213208177524552678656260649988725512185689236351414781976100830982380241701522184807778966707225165971780442499444903848169988839050623942805831754865142345452780072750039769610981086896707292184883609158016681780901477455488751713418003496174743013269474496341484531102745592403545544107584069525341647707271992392893922993258164921222850339743717177824388126405211306110772256053039435088435109405371183126130421844547858715587959146654947043064282052538324668209196003345042877288611972712239923231420307687093161094371078897936114190071707617036732536021544284650224424065692587868094880215450236297383302702437251829395212962611577602836301100832157606465909490273427292229015765745163767681700098747523530143038280792336291073145371466437235635181720422696117492968420773688607471670683584142513592011016753419704420003285293945891525037718904564561130339378482527358468432113273203573198805263306446769249254530432127766563297892226211214095671666504238806917101909605153765340005750479493663206492227366081150442470433586907943908008088464266852855945331700071012502237459522990628455043603672981410067739086462681203587432737745085467651160549991942621324136840117167180024599255070490020183528315283554837178775412551353751348280749924999505522723404280604752532287790713872750304580831602927713502869132466103264528626817265171401676562663381725013956572685197753759688315820746247858766918795109472187180545367831573735425490960476946188222692220966591111904490836579253978006919252535562684995884258814626683283133252191323300384688701517413728124012470160945554442356855110773963123843899713525700864542845422584490651761350882913409326422938970896328248301908699029058156807768065494744952730762388080261631805971980570202027199858431913167918050730938327743947194596878199105689373849289065705611650420838881043127836474604036594226298969538757985610582811453704963571127005106605410141320410456602444429538590641398341610922288246857781087982238733913874117293210231432560065317171993955869016287072089608931437217387114767428797917345394819347154697402189214611146458727114846426573863885618656005943171690182067415655858620085644722749293128794717588976247606661502745115013139970633049864545945043601791668454646017748014241098547072825951991248158718135836305978188893723700847703857608586812601253248957278403812228052759688315337273996465985848469675296377722190069510868573038548342266272940328400544446058393466254408591191654721808753059310300818677942069503716842238708264431209598561008811704474027223585651387411268357622045393045069081045231146909107190124613265540515903280796955393968200082537258136231934051584262732858152590630793884753150942074920549344551560068604788101119793194653415794693873260035645846716154016317324773563484003345030910322317776820506436095293443279792354964388829621447917344709613814604097317322394447605322295809223779865755647974121966780684085835845175572626298006590854587477040466207425263680335037355880616402941504481524301642080807800912522416001065467970405381567269236764331427122309422119139269836194026739090159110386811120841858339768099392324563036546663596420339397434404422522176536326698958058918959703708779004511337175673015862178836073923630141691005908999097840805971498690918442754616901812760510592140338350921187155577098507677033059351619881678681486325630717287148954332146004861133065878111859350402212205921552375631613288333631161126124039012978220157435908505640549337104006839928452544690617533648434530033927049845394032417047146899864769128247408409118837851549004393063273432784675135684221167689881659974565367793381553723978675877170667041139785795907003238354619746192585574947021140331222268090810265385109913554574936797706613535549606094834999055082976123363142493521350080071891787259688441803435267561983969267988135484038057534959856960768179888713636125664701348473807622684755382491316352981129134989760983096680186886569733519163699040508495942671425622564287653194336445519364291494227089534277096078591019804917953756513976346420292048274250178234360349916645966019092608182779982786483123529268641415577057368060180724117104475463398847870851157025999519886734385095591832808503543689842824469248703138448157167354047800844680586642662512734633174942708406800996589945151768795467712374043126758963177151312944906270737131926769498946884512935961503887383109782012901587512312778623027702076865986898785669599597009892136687997419500010296305428010456601108675551137686753667755944034488135339080986250746962340195542047306519090329346614957947823596931899653199476231300310349668234596861600761647805358212176521797436588889866164403868156291109727979499985726096239109491645308937403137541089551686153194552084647151100979505025560669026763271973360372596834934543099150728031658058960165434747362414786042499880935527963055068311129544671575030045190815047894168822748503249054507446815800527897148112008177746064183691797635870616301400553495423114150100757346544949712473454154077092821205793886238454279743594544777952945409452002957591978495137437463443287424787032942956749989069854399135907380998887965102678776149479043530872555200357655169134382744850673441929347287224349356672727037894117615483542218786540153748409379531362631509175526255682551217578960938808137970021383124804278621013708290389097681892806256500660363042158602671166286010270418150830725743605703248955708432759617157866226031497608566917208443427656292803744950907095640392935936822609998835986484673236651450727433293567534394950696247132733665306692743652432279085773862934091627350368192152941011118954021462369978684725525848873165536821140748633147651929879011057498142777617979893646160489546259778753820410146302902978346287356605877765300163869661220447135927872131538339514044366806964946642838216122409771887245920780317213163419037643917402393076054604176209510518188204027682210631864133705770673620192592360918543820338173576066797647762335793983365502499877095500883224675725087992246828616559138961796292305040433141619534018959849526591429579863146725861050801250057192702399147272487796569038981262792177330621499218900256541567993015923389281892778552872679593346255029995225581298738156721033937965069061806489136746893787772557593305966417214038773607219206394737323626872941818156320673198783923118881187553218047266207585665024493661680723630634212723251362725177068127327863260003748398174096241537795360141099865594428976641792710838756873432992398296680473531806991608604988125189823044108942693993327286248867139310238483906193146879743574500915393035002588203031571604716409509708048656761292682267348806978982759417420511281526146694972754482666882856461675382560032705176687187556576783489956526420951295293197938089049430398399479849785988880878363351409495714884897524533041503628475291563863135990581081772932047062179552806970497070185761577263353184893721579258773266235417621173811827084199132764107368180423476608661323323121263567334294666697768026153106659587350337486734482298393518538067639530918797287273144706999265455094521013545562244425699108895657809804567166287010565346451598882166215536879564947146366503594508756141092195113144983028523539781877880737664119956532984893454219901851982807604145758439842169356857659413310566810804660378627984494510863359118722962831004613240653339360043803347163831224669558512883008219633538393008980312175414508096784629963532767874609066265011924416452697221171981224922139515857735754832564262028673908742479847175158337890561682250350703896120191675590188659805345151039194154390171386354511528508853354233466138044969147981254046665055034233038585247896299712974588420706153096358213127103170050943766943826370515749417610849589313322373840727446449137232997886317415262632130115973665528622461995871247376462582787798995186966738059267084382503929574607167648239115860402715964402424620999620775618092881984660908372836917903678136409119690172471052095794335967378160265656823536584290388774962852601433789785837802993032598168058842695764548260782321916313990037399457269031630586645577711891511772390567229637580819155041238924553036210942847815974074116244569040941751325340728268924275340888093983390644520800981196173867692379865896462031484640752695921132266222545049434274197814736140898039320539134032826777221495019574506550384767566377312401550073681317132174939364073335592349760749507779594741169470799426599111067321507618464416480444892140670505643422224392904274927339453666820811727964620315054441541971181058362101249478516473234248829235741323941311982336610605560726874089871775308991234670963048119330463881759378271672808232789299589780611450586319848760323943286569927928516178649678402128597201408157658825469488309609367465970862907067648070212945945048896801508505353808748209938793448827288994057450976400940457297040909080990007381967817524214748065600433565443173562278166385839337717829235867746779663440822231272472515478208322693505364924053566446509425302443147432310495341982127817899357937731187372080290657016071041485142728035266107724366495253560213887817199456033271545444311472228519265772418514431417322171059187077917748454370159512850240043897386229332820405930070927830352334343446665507652062180043633378208876035399783517230892427844255697381843171770370897717469104840679442754916373216473275610355624951799979030769403122872773024488085250106442064471244169575223407388515370775086190260751209796317338946640342851100980251271841626418522953790769745510532621945184556727599754434129534050217999875977143347281031881002653635900328477368998730475073545405106466026384976746082694027384829618234814304357852246826422401287876363255184097999653208369669576564143109534044233354869272108038555791117722034192695456284334665412630897739909139189941896881343091461582819846241510190962143217040366381634329868634472561030045179264419791488362767602578055796194341576909120910998980357819086360182933152276728224161444428562353729692574652181328767142608695693641260417571865391794019261365727154789619493959373052221747259406049514201264786044703940925094591593798297844944716396439500191780304715959075902410102990368738337576677856010629749273800391775249049252494054967951013705418628548105432065959480337068254845781990329094420640718153064251400005465416909145768927923509327953010584110182502685281851764096608354170634238267888710772941764210285361522533673103819432146772293401452424865333550806687405604571684704957263343468667439278417443645503657147480941325876662702680919035163811957955973046857152579508231194049618083019490777758369366280959631484744374702952755987533337211260854815427445493918493030839656337400080240791848362382282660459772983276094617353136532183953621412774223232117400910765906802905129627072078677587650838223258852381750032708607750558431258656637044850625587999428248268981238770794039785843456234624092183149814116080038298875969330964934270223658176262939980669875626256884738973547607052240899489442845533657810382964027629862169192811425907548014167414230726833255890937693831030568354260803917720546347152034282565038903191380652908316149749932014702658816483013184116249195939364394213985318918222220306865518814106058416429531403733407827283300075507708942876882705706026799362685752669369686040851530698058338237312512192788813172386244129499978069539424320602323760639257356414857954494476177874693445099305779645980046283338428995359523103084445409382020639121210096740596666714941629418064952502454425078657299683666747809550178315859493938268273406663141246341480969866823495767982270065817017173571168521138091671165743588375029042375965184719559160382926625359790143614341296962195832371958164715337292301109267627437471734365269934284737102452718114774855664909462759006111514904627734345102303440735222820663297512742674337593067908673869891678773963313476141779201519923251238103811216630537390843096483690922981831863313531504783247606004424144554695773869832342940804816588525333414768762328279743504909367366447955892148701142780783654592766700205020911261854381537551685500608042886678096519785156263554718984990331460225272318814293880959549058342259181333178185136629577024507422300331755548028049444726269471508095835195549470371483752015597463130536734242301372321673705381515292285366390857275076198816587684747055880462024001926492549570022765338168400907836268404785905877518539974606778954039938069286492900362503800408618036651562432598399693969585168490912593949075724822985292688798277375574082205996998911107470803516071216959000311397099046048733846985042693962996283348386812907505179338889074164896001954935852248765727050122087929890354749264294938055386031319177011027604658613549140511326845581297046681787940786353440200986335874454640122900535402411920488951788502998338315456064599294634657539518252242367597117975734331026399554072783968208940748813067171225586018265009788726871806549684891914352916765294127165736488037908670029674314689240246769332488948977280852921958680602473583413501456851214884360572212506551675633704560656601985118504916407654926829813512244221785130709220133795685149466789877817410129424995983725594837429345465083503482841094753057681209699570405053145352094875942705183577180343914276009913396583188173684946027640009280230868530208604961021824960695937326831907028262569953755257405082396423133845813109203276477514286266729268123899563675458405227284487961354294496794021750883876252987790816562114615261840405698229024800198535066864584403572694792880255258359178324852365268556919064009145919689797933361532487127613419023823380750010701316361784059902567241613691357644481366417235809124712230530199758991041269553016597908156065250210505998099016137326777550991555084169310691407898623058414977544702714863666913238601938500945812043469626582538248250871670147327248706515603370641553229215149345876417915509228458380638447883354530379777529410726646920249460633082830274391089145435675371191603069686728292016141911322662990232089777773207825015590365907126429710386745184286074871221749552142108456457654202210151631941104813287062321504562659311313522980647952069392905768394168506997173566008630502854005596822709958365267750376589075748231180339041799339183669101503336464545490084251385164585869166623855115428070297714578741923635466106116290271322160816289059857671429842582498839250407441556302072992634502116625549627238121517525716248432655786680239449945432154787044073935863221190884488127679855421260072672370705227486966314791554415198525541747377412350859152799942767583847899646007872296976689296281201332607445304024383858560643485568764711090273822245281702361039244283553841879957590537795766106580881276623061517931589628166366226643486260606044965003637767959151011793691313714616269020073971319175464872197337187149913412521962564975541584651929168447779474119566701827179599023617829405514243975647694645127017413049078527633220412833187233054649845625911721129513009657270919726837922128084729557492305642087261797553700409329438566421104997187822567201159639064559087438590963791880681021985907398471174466316886722098554365225201628233569991450719262526216182840823039441849913508044139691175745816769332127666862424063927585068968415086720990972559755735885262396322145359596198209865075863613241684171206952415843360670877167673282565358775976923814922537656192404383760612451416100862741389440124770351642913413198246989792952493136695233648911086074116388636124387346456890836543418821661727949674614822272863742590074110335968376865661987100679709902764857500326942581286713053860276620013370581045820273038290341375630517255811057003974607687882605142486378051734744380242531435934176830586893778166595131171906687872827966544902768806696472158084105937963591793339338365472448200193602142923466473661237479070145213406366505046200102126386667339802083272512670715724911044988184845741345152845062244558409457792074218709605455813844747114754815678679020648881693233553390783117976115261577481773676939582127439757030804416145502410861637611264186393898981432427418360523346613490573364374627668336922315609880211605275398970062201059821807430513420284654019972502716211007684289254527755006847259896898615723710434599589132760167274193818048441664065459396487448968795244203358418991212140359573407129694361038757888394082103172435617078630284825360045716749411684197482354077283679401656279161096216513837410180769619665234738821224290792726594622985930074099604948151575427453097204970836418730963781762307290200980999237038343960339847398177786654130479502298125405428578340402197681475093563462997694659036503457460005843662325101948117607919417747184345060344042823571139827031741463475733209129845831478930219357260154688342878241030252362068412580867176962903399003054459821106759937152433515670156559004924834628109289854323352130130805063382575098562505907492757710605526309759867125453641917844111964837235001681766779795158678399493879655884531044085966150869171963351402255664420382760494211169900039038731822856228374550679798910480474060388838701958619561317046773508312211168963029714720443655002567252038585340472195545859051918413795577265824290036192411054377246687762747780323817021098727807109799980888839931247631682541481880088821181773546616100069819780745247094003548795473021215107411663871016615984098596816279369524038548160110005628681707005610737774791626013824504010037601668360053971131379988716543916134208440438806173238866807609884232128153153780731659368991611469844550942090006678778896996761672764861839793444033069532967574189065197194770861268313641629183709379492109603975917298315026717406289760180943903235022790988218153657862331424745793828876247510737388931411683114854828498908795435425813873299387273836375886320596452102700807268639599933805409867153441974919660811997748352585972629786218969437389120339580648426801320396442326770863573046722404240336154250595871795815843159560731815654308568653716231254268184515193085544093617788110614657839769242099895546476214233759766062647114127703784432722702321803511908854475027743895874871760254486244689175732576392052981074079010753759439287278940837262276513297316820824660104694459870908227045262925609214409854666631137044223775084211908268608285063215383681595930502839291454336045746716359038191784081744407759779358355161450763303307122952181132423904314199640124675410795767647148752163930942064942153796777612428880182618978726987612098130799618626272739778744608230735989564464473081881724263224663514373632611490310936154943656386054984064801240618847394385246035877595876267169554841402085767077793858816602729514728489212641470966100011350234011802362364369736166275989111524521892758305991819222300485204688785639079054519108780346916803287067461509158810847774623934224312251339850816597489015116929909207130540732721457300507039390412974593931979238426660514901818860985026731620709384444304242756385161381297480271829683554203106407769006441632533020864450381164973691738052993974252079258748752428992613171275871211849083333053192995164048360466677419587349906016830282797502210234096574551593542062812388432820829157570149035860006508556053857826752508674683821424938260955176688216389036103079584599934360931024460370805835862066830955708094200672737653104791756786940105231749551595477245237901552449378385138084224993848274452084777842953450843297652923247018547329402970986231364291772528668166590769291416014944000842649597132948981990938807205166691996771906213275447887265183551533049732907566325492773014685065226026054194026293571026081388837162258053197313749006031145494180152768189645991373883645621706825163494303975523714427310390765788889682592724244144023391887548960768110380565217786925746719502496499242148332671653708497726438197201394994717535471592008897548754303361417524543736393546302654657988380455497342708893586220215559314881593224370709981162174547785192095500748081235143814853424845109953217517736113022249056811558747325018153643511956319506148963768516113703251610516769573989344594824719276061042166869435454279839096391113538321467330829471552708743258033353105157384930018126632775268491954742704098525396808474985266274813416149927979743185856899963872899401584489492254042109747704628683966075131975479285552492705475835845901001235902154878832962719695281975666043443275888782243515154868785144082464208866086580026486438814309628155767998836638209147267376671840647514876041013796895012496890322137974651861903784101811604792121147215050372634924337846677566252393687452362674615646746260513962087419255791289256760836963745105348272709332082485372554398039334047056128497436997123292463069933754168010714321398114934540828500899677428245407130892501739126430696184096475301106808516037976813170343832321796670877729658241035247634572006168801966567286608286276222069897149241658342458065522594433579064382039723352455230422174301964230285251262139528720637714922343509315787576005457082543638070906090690489411899342001906947324367207677285958379593537123280954749873199605683588424527049274113114526159244981146898891035239783416708951004698128345614085199919505158712545278645358403011530638658121455125953643202687637788801675898531781986821765141558890810491336825762695522779898528251541360528922565983291979442019361351987305693508593464809443027335390585171398664819786736169580055013812907274027237183709075892979721682939074308186032007607079724552413431205532247614209344644155802456612526395432221009832400204060626339123946504482351887179361719226073966793086840590273860801117324180785355219382507911302263744327107171295731128561790055076326102731697977380899701213384675819976177250109595904626745109260107500675834552047565943281609718750885132737804210169998761151760029641783195048704971652978507788015854930062314777581922040966129766282233461247676795758818050512565039088952832891406747367520947693592859265851491363990206444218269960252789751786106719326933666586794703941363154174315020828247056611528219192507816127127976328141230221063027057251927077881901375780189270850694168551520987612743272541745048812581734477257425595283125949973728695673847017226727258741688578041329652948926212601985906728703839816344993756846023668391879396872813317818556377404327537793083945994630856697930250089908498656253819525002889752657685739035471224376142534268059951231795614658014086944041857637219119716732799266517850993817262961746531675812131507365524399114103724524715562404735153288198396273614756710943576196504038642189561472222065608241927314254157264615902184483657652446773927945740729372359344694026598051788298377739941649947491925481557586182125416243387832684805259999760238901114804660250788871120178847566457707108809500753657327336406983570235227971157097888511332464525866935025310882734815377361753275016589305742559481996046878576909436657670178449494199714570160286872048233855284663676231990955381211586161026556614930710161744681427431413175550809707539945515323100892769552119615011515568894335239799200009335871537049256269816727616837837655161345204611734825446711891248771043987749251391625455232185637488575595420728547090579901838213104701505375760602052371128176519799369659507298572778815514986470154831737590721767883544163423383119843128372267670453266594035257998636628857067068104881927741001417344225091620748835687539267143483918533684128602671896970700604065986519493514430798544942395598980268761281704468468178603350770265739495851469201795089622681273690850292928698098606722781874536312827645178669376411359913095280305380432041733156702801900037189501768045821513987984288553811339283439191747416147067419010637058255889183282929118307904373271988046132845589899032960459410990827820215442025554519522674656132014298953331771914241705348766752294002926470858132985717539650722398463779950228811575090240830343523188930705539800430555941952736822508644689115129657884799883542870080766732474568441123543161811278191798873466772060266511224252081509013075345107534884986608663134225858898335779025021015696215280564719623658966445274096137068022121023231854097363382505923802832631589434367264619502173751111640226695532407411024398371133406450631856175355234715133991269173604597682231989839210899606287225926783570275077803822914633833229411212446464297160790326871778822809317263896357664500331235084376370694086410012623769261683146639172234190385764451523137333941135408291425912070632838722530644310440445250363841360711332691769309626105240572515872218341984824523012449289824901413928885857788649217871174866965441035840853705174266806726503210342568701051854092281705675087898423890669834473828751586376744097033946008098609448021670530152687380185506780632351295979523919775292961922188412826958847981783908451592120539426698239847405123224799419180713951106138525641505167794883299599950546602354054656590892489954144666943116988326017908242924892962387868201600572205909311859335631325211822318268245251307628477227143068035539241035187436569710440247221837379037067433703859514010917541108054432041359080594052730017440347839703444156104890310053888531530997926463741071269272563916249023607781931754556673090872130191189063977644104006244478483789616407889784716083004653556545164310963741906562149759739798369598697627171435620176306697970187002836356348958499918875610541384208242855228955817568511904590304916160166464293813431169681055206789049421570524216144704702062742158219287012123423244252605304133930746177802490315618453215062713533814224785390046019721924079199218326959622464401199280607727486183129820771849691936033685683712067685041104142526631570640323353066781587117618059148393167632669357966421327350431917654455749345510594164369908515300860628845369102286739500729609067600986539188018071628645113632677834350267707444753853259431495521602074610039080093416369000998527731121432670136138917592571308788362244699279256486135879455850818778127421542580289515347931010717492995852032740398621469481773098929762524102823562228483665052102583977062131470850724057455330258122745450235150799802748287255387935840421189696876198634625463223720069777828314627204652679366576149715957712087788530692276668504070077933289142249870840350825178281899531751918201559876217255332196163720379449636551750462793662736927885340819958533852900025003782128142956688287283118536072690919490079051396039092991969899915282616586389608065365623154754997619996828640278908846442332109880605423815671701840310180068711014697646160795655292273054603486539239667876780227112658818107204933950212031156964959456418140109644337050675584129674250516711720053561193893511609232970595386717838198750941880148310342950030000967159788335062517422450952313871051406064377226253754341202003131260929630537202542829066072902273604629282785316328463773622790384166048307461399628369647331277956430232039618160332616735032119262220229702255694654825343953616399835052242627630445433184810788344875558355588786118315657763478138321837600541775664257430605635269460580126629570104918982541961064059595729099353282934441541608418231910643688687890758193840469311225629132246248786981438433145944192166800395461081108711598044540998213641013789059386849374165645313172830521052293973785370809477633634806755357164116032110043116093173607981864070363730060825625848785580602730240800370036085860838975590108956312556077701913621203946417500742466850127069213889197140458811052621995518765307557963182426143637415519870202145407374965817441560624288974405153071293393346707790002144857216575618960317586410353903835415736692765118872402976760371357055806550705140221032025262449433015288409781298090587315995898365966845967947582986362973449471370502185137279848555914456649801187488571851059997546142237906951289755390431726481045820046768491170524527210301162715673592978831974003283578993584208549468533490492342763830225902902356167693680907676683257473252544184686788994942946680043106075282790000886625673084218767769284722676434333196665660048989809090090258214354768754500990100283146175101244454327978172825377056725645084636310357306259156092942296849481550190197207669379639093667609734425255211889633081125124562924961046443306958410498634141943355348515526900410978993422937210252530716452549287600689018345348286440919114144307074293971957344303095097192303762170947133559635166400733569546991904603455013651028437122562837179543656645484144603929472739692010250184351721855544122866122794613578918934796208945291096210488330193151616716547035918963352632127301014976009979893119145613080447462150730298395721378880463844168862812082105431460776724404017287773245195812655105281453371701881403391112075055943303759816924851889660477120176741482150836208422721824742486035642795901863324464150197239173582204369855416902540579105561072709541880630254691673207118556113083187537465337745087597773366933775567762637797257364795517477064375875296642695028205868229225297219757790280974645806545962115842729882212954669210092382088092423589894486123804642470195707646412048805283780900189711332933504053724353112419002487498587312670578211716036971310857568072603000376969139039925006092621277115996957854241859206548084895467747549068545008616789826860336743186813439066776107791982347029390062855424637036755830301587270083612113440052323467785438527752539399896309904949414834797333058986769378843420539665618914938310830889421774580058257756070797584128665470797536480010800439945300692683877001554085779000506961194960859915503026416683346566162226394184971513720828144917515622544479515097384532751751638703712068077497907603044520179831687274544438546780107616650285883593484599900231885436899561024515575843028345223335423495110514459973165691603181857329281134287073747352901813065265020172446801409284731085276760440904129534913385393475601403303430422553445196068889337666062011460305293862752241356061743687111693735130310312358814214383614206352928251759108792319128324725520417980308451789063682129330268431664637178439316444284852960676080707328794854912175679450303920549891684509567457842767167839684519973049780577472275837544695510633035844437152762055770755824095454465774169875118112748343953289638040508951613937501216350074186157200335383021220490359953726032135926028968428615304189608286522184756661473630223069716393181036993540464324732990984151703138480616837049161744256417834095765326234987574614245361473802166731732463832447231990084725696092257267019040913020526666259455763446669568239201620561743111514384628238329330378195376141939768235806184371907239399708703944233064631591551973358306756363861746715551207089284140795045252066240361223914143664711904511192185382528572017799286513523029618769579047934890337990736684018428850830156911810867582462353062845980875323987877086185831656143317866081833989968844530810331169805762363820693103331086863433295595492593563715042101166178103685656196562427477575841490019485181826838063425991973217414786905439983281311631823353755490061958274665484284153743119674527197432798749307759555244366988044572280855977110231109879654079496988138554188774148286724820661606126523788902895965690767211836136882193082988563885099541604042936377231766553848154684069097221008873302699986630579156946473071549024215641889619214930107161572149732217593718670721245579380050812190892706376782563966688884421108218101145827430571570516021940515188214011470038612614623756685736424126665190566348655855214291351981407192864377594879854915810985751096296207997075267934091904450132704763011236324259925285302467195606297213350250102866006258816006159536768524885424556660703587429558168747951848156413358329688101671018076378274073712958465504550458385703823197179618771109677183100941545197868056220768418139785918397321244996365828560273187153908589437944831608233650661810894786577631695938049342264037218756783808769435751899738978047752380131584480400190185016899563773370555827915704601565251436915891260978916712884178454515713801778728114342724992862995194962647466776582588432236744776591860793112809274295114865662457258441976992309811688952700458123919724664678979469922483764776596569455084701542832223386402141534122203889005466446634418552138762661235453751222315783963328619132017310128739030539400474662470796132797256446634941092966663360360215378220142254666859850113449791689583192534788526265422680081506879737478216540787956633015740201769927128203243473096683216528509084408398561919037160356119362485452094275280018721004069031389547903470268735930811311123597318414861441268090802804740123135556132329855782483068680339090635058549266671083466047408866044752813453378569747318168892866190530617293291216912059799749552912930329552269079201641786388619603140771402737304764097459851624601143308567611481448824641829215418194666057231730904226931251605765824855169838998540386812476269658474784868483876611530126333482059452157502200919188304687702351787520808661497093133265625128179433845904294507575949100227887913920923396920845492731173726988508893769036623305552659612148741451682052028609788560801173543575820409385859742212563630477615872230030877252332386850462801651367474430965469216812388595735155013522421362390504099626902273045811403438763758736332607683491078484186262390217397986311083116859264832060986230683208225103828684701045228925475370374328334123332341550844468635686629199850805610952301567347555206589516881682336401316404046088320948085662650639048527258560109094209107326261273120313693039524036897629479697988900087254179987500167005911821652228464740066615689936296439145747677214631561693400111180151674945179390696068518741198677663825420983823742905946525042941647295179961485279505182313032105012202791460823421054222635754374683398668064722562055644489938276938153834117694648027529169655052949820669001817667665014473360159427866823507225637060647094417353014993417662500659540355555434403206464239672735050179926833989566975128110654096825948393771901713137156513243215155099978145023145168069532681246107818158211250556335346738087108211741553779636590412919723201272513237447887490741793797136465974847432480017053648511795688559129557027157638343837828525198110909007201955067203775569581798578496285160282008534609172574945600102866869016128389560608092253064907744086140310787315779992351132783043347215610127207592653279110681173683237119427998984826282962540309808505026062405661717318047289966546270632282345984783551059019095933195868322234279259433257747250494653375797619071720411085448028348207718993771417022307069697987274050065695917626139317861937458036044936440084069864223517557014269349903565595704852775944959174273044629830286012736021068766158174266449384616143213012480278603358796251141373358760671778579351706659611158534725378776181645568822361490531635916489018765015217088111365639125082279402732589672999888243219375275022685868277797226777052140652837637034620945762693514654384685628679056695605736674758719630074538788871880588875099810515219526922370542947678655932665197251893247128637492496495032082708929594822972732112068539324753168377194386450318520772999403519320515079685354674697197153513965393906865154696668623120042549306726332439805281451418861341238015140435880231095798369259422955573181053381259905600923686156042981072774814720432103146941055674300252204499554332906769074035213738390679697253107805386217386497478170977579280225864003011394127719737138464555053219098478844328544937374879626631028891941608790402387029706909953785701056292087132610604297742354579679313410265280834139128907587713830843698160045844555864147160068535355235327716799794846114208775061720518977837284177303730906093046945720101477653436531346190643471607787099486999607973340971574805209716206071459414956456933758048686075786268342186732913384995630234926749228993829044189374844512857434946416139021854445205537995483489679555428876666774356134278705344211959761942836233835508048418914899856028195174360214138237015561209906420164291058820118156626221086883120485566304214775350067767465497525902578556757110104521876382406128794202004726071307894767898927163850671973497263427343102469264409159371574830262328791599979148143383763399459263817532769639283212922638256219989580471149558217001796348900325270722655435049478029381991282477814293369658839942394423175581392239258046717665958928034037008978415830100828299673210441576103532824041823517047531160368754151610256515712905971096343009648481673237988241067898982697906718733765749869616140075094101377991653273297643080906412020543334915391293273708647864301823967440598226190362225584123609420029329239343989975852035894303566975856424482292915869711223688224520707720172770432650609984807113290755809760227543828028780450104756458866350128407518858516119747295845439560241441093036232358024871001438038433034482398500557811669429895045256902251931272885245464551219804878721425510015181280659362118596008017369810951970909023187354975927613613583478595218450291142242447469645006004939080773427347738675801597793831734261935324490955990652501219498748459564678326691727758161929936146166314456214238882587319275147513831263720568863565240406824088700421990296531544611594958988766786914408159057403015019721839170676493212486548388352353452350249651145255988703467450373847676897573884614972661804392884622718045931705109191229871626488519632050142725645666652766395682306589311940435670803320146301340841274032327248447550600815752397871994018880111302849644141802155298176174544044997222733148063911901566239663600082622608922744542545187107505432430941512396827037369184930452264179414204801029954053474001151007198598256013762777872602473189356045942612811419490535419061090523488348777606532555918650500876587290569045054352791945674675680908934137340710898131179794314501680719595775315237484469234200159612966049453589604773235116598366528572174227566694270906142533315993336953531838464699410534550761811631181521574197692673784233272276726771755609017254275964506630511200466428240113495877689020669015101847236340307579842742284846218386035842217800319309533331551166107363321141755805567401544749198203251668531911300640353120440729004804197711637133522291207838885163923468605935287750431114790717201128785986200411153846884912931160870267162737542907645612072111120906650743613173929405260502499950988680009658562032119043959534129547879862084942387286525542940998828349989352837602485067396887129976669390682070691157237881380600288523082565086234451697663672576154928844842549168056899563298995174470537454972849259105343096201981832973637881643469729170225141681090214727692232582345697023919488150249551341554219909891916519290577871087108763083092935652809832934235805490519334367791077726140960734228135603984683855946281123624204664740013574551715160784290276822749947597759853389103721991561921824577886128088060703277546205978714040858845082983664938732349700489595314214688327765178989821060296042186532667370276099704227512267358565734582930437849988386372145594709866219675139009807799494789217013813850137383850802570758983014545279724493571360334581955881124611110457572965620404195918556070466778759266634650264859891265893579019431053430850839267069766706272043295064153973547774857364170332669133940062787949040625451362924713631917139745923784227164224826335231921644008407996526813166029144182262351104676652763714791375326639114902964161832667710639528505601269100614877750142276038121061804488647624847264866980048536672738398624081840125093360929513904640839655880887950770110670893751715137295597219501487689755823399383400532983599558989376103863333775098865197274528646746810354022666211702799641388131072490375338182400613461498674073693767673677836988617675840192093976640262859845166432166398255813174585461269406941499179901311785556710292221188706225274741522501749000936274989497914701026407808263321765037865156412287617039873385861897922821928177401095330362833582167538377183130040989104333510266035444306542006552678652254508699291858305434935803774520564229632711462389521179866783409356806011111945126868847462696579181966637625209005864599654492672547490255346357120640823572775825712543116141171443821626775473791541311719013807836509474704027052609249613630772728541147011519938900006085092592294115778689542601234465938273411017296777335135423600295818023078513936421109492617575354565838196246718389830822742498998978169763643249732961985754588224116112737914498270042180898239956670576071470696369432579008052335767057085999638345821598092938025715155648191346042429246312858311262425916687426852621691963261835217407269826887041887710152995875967639990272174279225347120074414962087356175321855491566573503223520223993485137570626605599925268854720568732446716018108034313795804376479406022105460638669340850292970488620905074630339390276929029193735837465750232481462614882503979681387379985298613399725613336186761572283283063846874792715177500035943555907103660475931711262234329280171291891109216795866784629293210447941634206458265867976322690633145065840637943082891247956680169165269151092386488039801958516237953978927088347294702260657562961557538387568131142633322397687247114724644348535276236148995492534751684686572672919557870274052836142609410388028408335485704273061673221322356629307030928936623636222940894091446722645354804491464660419887074826909105239682112184651978672118507041903091993381022390272178010929627523502224713847020276197290714969031545512403745566900544312032870417842271064246808359413000014983524465376328884551323191071681014567035345952742136795346633974532475985786132966562245970266019605844113639707347997866331550650805703091298381912092871001150534108699929987641263721382171185000604323406514467158208173207423376120538580937319088624992184780436125150051700735668501630980885690701109953919788515896118139930822350058755415466730427391648841728554607286588346507465701059167869411766870576931098846407492553909164613074545862256085760017209298839412756447830012641898195970775035813887173431472190988651481643256475946207134719913292495993523599263180283882382937419271240602153168542618755486177068930567453585898339996053024303177848401989191822551961168839183065654823597742445707713494785977405928291188924198144063170167622670747462757297462982258618337080736812590687099740556970321121783437015834558511897075588334183749739128661803014028156060101434937585495307043361631707479523245819180712145284778760262467947300092506601443514502101368854427939761160152958270734986119948592724744011842227253160847949863335221794150339666895537575680006745922428962001789032392811945988656928625494593445104339556263027745128529676192429682244082145593453335184894536929112289391075762373801299591348421100830216193142386738757774552918740286116335521751900644034423320252766061824421903223529270463571164194999995967082128476869282431675347140921754291616485625711919726138737941214226695371080708913929258518291627049531770963374266287216115321898025133632584430136016734778595581936615487437823144244907922341599674774951507753746777522315548980674470197843685231707897325787209291087900547406511386772880980668358482400453385612289247497063017729867750685575912491386866505094145905673643537343104119716865375017138653122790710875419948028324368537442292960621810840560142471618675303422357322859097648863868072191930941935877538083984999192621794877506194586387736471385637131748741706810604492848551776106760282888333838802138169875919966466483556626043641814747873501974772098288527145590264578546266224079547756935525894985797507743370227285249275316388771490728338360237544685193790983521383908912517744181494056726651969371297930016538489602936766656462065208443083000155748101181853983314399054145031003855313946403493564393176624369840591264469329505052178829442134646407989146393964229327291614490613531081145553326310491957659048993167544649784963038623434727714518779052600534459612365334918371001260770926740561758402071861676610041382992743107971991113549713944412816020077077477527553072772795238361308054273461317623552047440252358269784683828284382186067270095379266975608419326246746810278376070578940241841088608329439909483482388223441058846794671908362145547742334284517573221429142243076439079895943130362763668248870605075238064031798544884638157885617916139264780978337773478799984183475969741921220486225007619665648301440216025040847837990668219619006683474404468693576491726857425993520346156278329558836757221152783249221719790192429442149583621244969795255489642533624137228073691429791807761563373644362064434002148168252066730411007006159795228718757011719565962339654436337169100860817547063936309200197789210527005012700888929835039057548538948267922098441591509842263409685234509242746467275342125192983565239567866115649000431606894853733282374989405915969661074588632582215627628466874996227295870014453553398682111704967400454103372704413839275473206721866967150024008091903119718465209383994485541519427767270922852814986334329894865912068657392711980628808651532992551435199396976949287147608492270727559031825089417071798302008107786800535666929036330017320208084667803616646296786852764697299556729791342284492068626614671711498683469563820230133265166021883113330537703490251023086780606020327095076187224333353040234502239478896588138852603837292772079104009302362320799064433806655407838897669069285066749881906891204090965585375511030209952855908253415286398189312386591012704236787443304628686982617866560236395423557620025488908591574908395870400028152178168067129406817626802751012194617098561641972634678006374025693702245766119003218997345081920436099853941614230574381634941279079677550158442316506583644174790642710267292174837390832206805773704532189217633209039692040601002424404955993056697236077094908811715124690848625695072358529566941198005740909339421537993611044918741088108963315404297456345037579675371541423290936056634422551074499184143165290587967012547052449118625089427411778175218500671952420228163859997108368162685109396322424308623160576929829191234729355078109627638760352192825557835460847662339878571598741804174541060367095900380540281919916055068051687320130668728338414167011233520712201596851216767082220147014854353458154079781177523045221007071530966894627672081671482865091109171188403439877023168199303365773081593938487719703774288246092512312434696343940963635467382503224842043191720765324335232296814220657702875112026835954939853050759836338645678543526827143576661896774359530666732478780001005790628328855727984548360137644697334257797820769181710006171790912139999048760851171378062203854388958999409264014106158826727445851398896164381919839682704556351778152367186695398474088111264163350438745357468624062514528767123823934982984432482268698692257192767665584706120648937942603064174303871064232605181316547369013679762485452482117393166213836093064495768152721475211055920644560049882259796038270659367297944037440361596699012506912225051580128372070405059955426446681578417761841526319003814598064915002856503146745011012371448486804497766020467683456209823907444858501669045556707429067604159972248399635759222443467920093153695781198752558873540343964099305340833448304867296915665385434713270141015667610911687239718219303318267181470082888992805539267868313787121647941753967108206636608530711530948022972685007786191799099936350819274358335743496680334959445957588685972304352479568447107405526741874104600496016286575701700885189840830182446329736199596556727339516247481884967241962157029540930518544042805194306399071606208811699509115746769601909689781496471232343763825278718407707804909885185747803397258570041146704868572713521954691854172520890725568686329753085835655287000285889624332347479742355889088196486575194923480511482903197833342452014791301364692307104272509888141388541621971968801761856053590014390878111321700099223956849081077836690850542948570597118997568432974182564987846759830700351436441165543219538623143289099593130447396163382141968894591638723916062560597667556689046047590277791210681071828894069444882575860745919123492948042891872140356716862103464974999988114496968266597026067366445438766524529205932669351243916888551023060283315213799554808293100538007920618917430832165138180174963703615003503770400023122500647149790586508377984759701443411081583279710413514198409602845270659049355390157023966734065736909956891891411753106003450583953672218139225640946190810196155113782293826690019387618678487788267107310044051697866099202750416096399875312949865551867509299969000046219310195607953019351558491984890338538326860880539818280497039167076973945065356668870081923203303069549332834300665670556870450047631660999224631006823878445499509522380039700582858058805534075414393906565622699725987610078195996217405487638533570675242729315630530122913707407318698239388495685169857137380980229261957142825641697917545691831948776686400801399075128945583955566532823614319373076013821911469677590475138431842087435296271009029250244290284903542796210947363176107407402605673787148616986265148715200389991887992464512450358284143684577327549619431450342764697654086621248884090432625998953576433700277856562448468569743096993353710605213590585349365368922542511872484690785297463638397143345980727296514731111820795496958301110748501237234592211481897106765629605894664697150880862673759524771688267970602404018518819127934196204028443960406315967942270663081204586813285895107716399065456565511134753370030796844176242650364506122881938858527565198724552487207340523346133047083516011788655486429924047789331487913809255280638547966186982479636340190745264052688266746496596911126732513807345502331347732199072350878495064911026388488471183756443203236008720978915307418311638510541777372112505894220337271244291902074639152248693314996576017913274200552369028160812183367019831302856299973264562953249787305579823850226737406080903725836567697388690260317049738693694215458704357889505816153660839284831446014902975079786596443441722120621138887501563515028738890910197974450181681392243847488813286805255626712235824972573783208951865752734373587577446581526782302487976305842611408560575207986969837481458074479405406555880349905149830016119406658790001714306644402315341709306474165461133071424925022072972004734359450493354847554771895120694751510315476765076061012300334180816557383324233562549375207162850912639150508548518730338946597875585789918194442588821617310912106794028287567970953238325593943293250390253930232830223189437176417625442661394986669953532998539524534230597323426964682544958283415764421361769053110161922929697767059509663673963011185008172648434384059017948514091974348202820745640509081909155956155151190539311911048258737343950608912806112178526059700313910300194339597223302845994574887254132295431681315831061453179174146145167877049450306703743575270553379758385140350214650541646068756667721738251307485844221855790379527840669391548179975371976392198547368390722524825145260445764216671297523933297228602055403101956865396732029406027699764270743191736753330958306845412000164668320776489623270631256445713191165686284536492418949061911147731679043767552438277834107597931206836799342593857793896369504018116781046190078145627582800107701466468902839656476796704658784713703291463641558789702751758872722985121953479160558171706785307722871127592190388570673577550931605180963586914625505739297895618001760248975032483819390511162139787326681302327198303272124479874085320986918805900317142593566392978351890847844273295890043493963256875735853464410206621615466986519274172582665414787589972968505378795296924193645434429732344672385204938854937578296460641252945408017217941739817178839891867856757070970779549891074540630813076188086729738768824164412309094503541398169428396959099906851312974352599030593209106759584337799423056175872050067695221791953307949654472827621205500468127666306096080669328260112432301850541091814378927354075107323541396310623743514383087550197859648804199947036910802459042876452115560985865103075931363407041708877046727467447188571320469092924488859925908987828169723524968796867361708573457153691142175576821500998706962745191537995627414370079575552945563539276573171926791202165216656387423864174477132417284020867149194772923298850777045667485304650364335169370270773232283162275600934462214017473954044699402606619567517770410949685468229419715575223013515076163807800656487411156798873203998917019938877255720421687713333439933592688844920603292940801806814313173794800626523023131285061279296259561938794589997832659495376907761287553555772469392758485869843646981969987240882523023365436938774655332423734310260910825706551738479481683311280808934783983091675110193112078720815872758970584123408043861056942555622026724249592300615286100517321038422129279011829316597015994681921292727523192717962421641966414214928721290131049302503338787847419896137189062335375934358852241704158853322647765683106974037327900719458421158929603124215687250233393271386135931373218439797030894778386582515273766229776859983815485260741226008168889392667853284562168991480622152056296583550182717416767601053480949897186061952178194574300934657017358587453457398039686645788988216626883532057216946129376744141414757422400785597771230673650249320536382559245127089302535701589194158139088248200297585807225918450062852826969510813137661098227630694715528226398316443657297501254465642392750439868607593558080050226436157466145119170499966909040796011580625317292172266044053604555702886910985474423459036473830707678371202527433678086490420750040746747573027384612480114140349301657242940725130875667925440829688946402066964563645180480264712689520756380827735778276277968377644898901303108997923977782071047745302148431927936784644004588789600052663902067202107709747284940032742952412539874078379090465746950117334791755561221091302778861605356308413970532355779308101628066292416596017208634893212400576269330981901932384297513680934791179636235882318179861340793272538595688973744546988616758937855115771347650768373210654879350466159293961753377653825610223626666211846076981661250571684172655219648500467734957391062707776921050828105686595518358089917579345157017925284362400293248757649263762085991077800087504174440250521771496735770363906944557557538048710229558347613147346340211187120642064551516548029780859543317111417520190283962283242665661683132572222669501809392774463300645708696042569505317103554392767551072753948729483086917539865670086593683541909026910389346680594571061413372581011580395894967790481800426172301484766637356474282314860439864461590070057760144144608347671302145374324013817146287528617788164194992057231459934700733847212642656970598897373395450101466737459604754188578371950717897823728464108115226502546116661063887298812542259033071503846962959270208500382521168921087507871559271658100555867802601172413669575029364327115545299517013965071183698451080614265990067150380564601066753905008962920329556717686364466108372061004331591261583310322150515381184414643786649686402290805461865995903788579098761447802897452163638251796973018128529670837273535833959163786488759586385706752382812674919884149096049833389271593474991135961429708296768936075830912435719516199229603901825117671800984693980288631762886096246319535014856768195875392671286446424084493594412861247868778618366952191866828951262070174305860954141112500067776294920142309565027232856637110412802758920011255331659638516604356339379335911221464586024399663980401105611121949161693956232912670073835253864637557231954225313566793104745919415987899376387384177529101265943787274977116615332985171587624701982282052136018963691449557400909608784948082005586598672493283917182953051738270849979564624285424136559667000178968272752153821614374348517270855918550661966709696623896326036798064170672619034787739013895418680566103204205703910536904455389363595879140659505406464927451284210405206586446925046723515301078083754435819786718135283287653117133175307070516002047514216509632081254578654186367459497151112037919881595376509694250924778405523607928497829865608710087061503197847468608961097214742839812670152428995461902239668853691940854203532678189147258783532163712227656705316615625779868546415888323854041554102489927635117891270247659116616255907084811971504358146869248746004311271243472717934131312324135144453017494348300697786627772402761965403917238898207290224938557812137469882314329208744638870023753199766725766124225646122005654392832510786440769258725113457548904724342792434925814033929669678865651756668498380337561485780665680167261541489212135320681428991248272583973378783138978515851879669186618623863478321346232080133994466437606834269621365932184669941459828180443570946869421863037679155307296218910915651000684606778721427153587765894401871339188747180395746736542773113570179552198713013079697206770297961453776109239291452040677442897106090880999262132636503077163134820220512538844969323540528089389333334164164483774932164445557049460814159853985123027778460494590815388686498170384101727832634730989271381970641383399905441908189970135437005569415532824250496017471538281333496259422720874401138827774297861918485679500318027754096877949500908760687441920430347879994916154494338074259192778140283183011364474164128892868360168990581747636821353409033079447225336260102796953570267290127641141639249048588749302744074491192216002452638008670266302573952359879925992979324189242820445140592888740372111468248501758947259297274994685294354738418705542561105526057151874716074730730514588613777439454999349879020647568735563674347541461807184943413960328251398975192801391396374621595866671405502798263283483807309493542033336180168615893821796695867465379472138858722700561821410710426238113319517428457024172569770477873856646365477242158558363267291160701543190861507212820775861190745936355698931483191970273835124961833658861664138101793866717071835447503467433035374352647059722641025942202115323806277060748293544595527765103835253203383003948768221657631088415103146445877407977567734759939174735045855985692475847947622414376917608904179062323874218914240634097865520221481959424795261764408369435730272366030946138688799171632028654972413596278650350541574631481728338167288921761610692649778884137968495264084518692562057448826615773898702573625540337420172715969182891731766962216383428867741918126579678528593065582721709838767737614832865255847206964977296136077339352474378857437293646793843883790566953954202065437364518079284839402960185087432141637919565066324263135463204751007990483665227651620782237548501572872156021347845567023070200959730897996148418493795896916594854726821604877706128488978244198204812539058160304648350555689596008908764170245395155550854672092318717153267299010079401062967299845912689630588004085901432678697988841984314510187204309565613067172688269970980302387643158800684694430462449433633062162741564301864326608047467743603095611604505562159712220520098353929303031478686376111091364485721357687640770544821908635062027510735028756825091313415826398878848017848967474638617655161822964073222636270294553513963383810019221472717174901853979138197681424636295471253400666728128168303387854201381838554698432172861116939771041549671521513656874131555784207623292873493301084816395779730452224446945498152912422167886653105912742845981647359727425624841073704004123324790147901612384880198196738201534520702735545430515007084982738705149587327578841254252061364408895097376761200542797928043511253245860068219055532552782276583431614017195562480164692032035441827806945212074543635795660284527477129540230891224997407677059118698027981993970093526615959166488197959876646505213821666462514223671106243306315334190298521990937254381231503241412545097707517291575464129130425084271403357817659389516175345526034798823435671319267614356728393654907514268337875710904702770561593788925791782727117408972176319524396042888495113404372873996975229646862373896673109738348435953820341012354531133013768452795132374829613016164241454122259644854880271699176400573171739110887746145071668357630993527062883819814294814076054558321507410114804753493053657983031787615657146771725874799659366965292481827284787874991439630075070809872565176022932807105957798067670121726223980336257243603770591706016495847097889685254544201448508442352309786376399402339064122227855263522892428686542550149840510221134267383532225321209112292142846104612431546458162218189867006546903792958088343465976282374942310411483186222890453185927693568042781729428528016115350726875362280970124067725404801596756559234371020998306561142834881203576321139373560321715728755664374581610773361819114438466886710994459650273779326110109879748653446320924206436078756071189886602093122444539417072051387161029569507979604505663810819374541806455605171461459014085249850003600927202036680362310686784390362483407235469655764300387289819105292038603804853159085905175068357025683024812824869610779126401600157515607411719850071412369775565761186550386696537305695764419430715527076022085154518249308715381133834361774103357849775567313806629870900160395294385856825608474345663335150278585457302245704237907946952597406540180493261436484475848905760450735682929672371650819943635343004314877712477959254842150399282486463841170872797876416720928795017762480803351699692827654176850934872688820774568444446553247204485261058341686401006390118313195167846927346936970608052306711647251652530232565843449756102757533263807155146723895592999633979232458722633443592821452265305284563099713693857657349011745631277554234517632319670786977446640823321672286143393539892416618638908319707359075434734148067663915209492322162952678903746398730085414215524566637066085188013396930177704281267446265015755312679844351021204229650975434945210851248402612697809085287339811533067900310734842696184901257532909915977506069958410731764854454270785492419939543769857145248625594000319283650192235360920209703152165875031145452934145139011662461643295999997923068720948762276488256942178954308766816530420692479426353422486309796687047779672594249378811638306690864928056028271804956559651486512619701324640769333374985758937228531988909641622338071395000861472524677038980840706293695958972482686906317242397318402876610400620994759916728170906802891604068079443248902011101279174365413247835864137178518722807724611588240174827920812988340044707859573179102910617363444879397194557184213027750422792817190137411477024828611891565873353002976868052452910777787954648011038938954709850110661338809441891186478250188717698010394994491143734713597902858910736923699998587525643006948091674935565085630261681249971033051915301206672833750428987745462647331344174786497068737514777153941210947989515114188877784189525066255851093865183113709152076041437671069925677677554990930901372954879617188257339771473241588426982237978852648501725873864427767698727635019878145150810212107537536772685081430669877245491599894903120896805849739575938028326207251049472335014881836760853611551648779995892902200356484392083199992882966169456446531784527703934229570951476162903832206313936438804757832325024996695070349330453961351910466094293175433447801192310939388275147334671047589308813703745701896636304659237238416088172656586541679537898020988408165935531940279401979437292684465568621480463424503754631354686041887587478495160852535602868232687835374463639670699492138289446053818582302740902149390712928767013228466431627776421440252013215590950501668984896951603212744730487340856635140397562881848191143539023303432948565390125274098545610802597384492681288239062277568790098204530526463496056116321795213041268980534902555653272950360715705775356264882859976426117012463279687052772473885838231975608016599589394491470201206862736069171234238779362321843289984412162840897451039409815652483024929663051664348299266931055940512448140385329647737298082628518261446303084315322245177453776723453112835786195694242595904038050367655116435378996930417621786947530221870989941908851291915810655757331729373736455052331044202786940335165527466800141039429801440446034016433232628156583783454403887516523604296376305286245226560599878674076071732719409207712862510934359343496821177435547627132983209429001050192986932797707125433330627384456071002140150079285244128850196554144840715221584593832745206135684795412488407772530535207951636535962756310911397758802301466639046358759045900403410636014005334816571397456693619076348201499499630708409300884404289873523195587611723455457262456417097553821330642107207851336912121528774728739820243612604682825276226912220014085186480730913968736951847446144244435420642822031571569574005331431513395745059664716613512589717893699915162921827229532041097482395596937385384060760361212861776684472750644541540191643820831568368305884603517787184094516395702621105900407769248886273692392357329379369039970147863044467675015468069079258382404563833249958492231775285989425098415292898531357453814411479636887941546063261130012805547662986415343317776295824317718756044800573173926874776486705002349069360654459668086185065179975817592014746909541404748895313845345436148195067922015426007165918756281616264626984524726211408453099852433916691485406113181906923438855566592724361601731387847921847303114696588153657811341794892539103184071283382685699832852803412189407046146086363925370729259037350001314979739273430541493752015487236195833272646282675935170006912776589217016916519709712672150738279305513627879878692538914106265143696224593980300588702054013103483344081322408513825639830263997970845421670010497766352383547286272630503191136380718969506739679694464535941520553647827896590138956275743558426271771317203449296788906800677336593237133913866320020432021383497800697377755835346521738199083057352611571242499118533903954241448379246455145516150829271831688688696202571711478128591105569822609840329907924693334333698081246373080588786013887238982495808703442746967302929222563225254362779257578084275014444712587508941417597180205720686626343102873607261474134011935023382414488338278066377752346320442170962001649894526094338389366343910525779733251956318492567607953976859947834444285202646550193729650165436028846279685472670318634064395260928600385768389345736208889296011354627697070183554693366937959203024123528469657632956712729408673972935534406967192115367436842211572789203246514883719014118044817252616171080245606543437223104762800845040499158762772576227417866087005681731314763138933727139354960023227768994996014745176592709773442501738609895307273254465554187521364448934167484306602712984449246733266998264816312127677606973993387621777631365377210976481599779023856011486109217241573655985835538077349894008742564507078640810140252525045692171912805571017012611426383740857209488425493194521415116114443524913957209125129107032840884734508844624643457558407801097968884893998851221403197474408405302558272083722331298544640508506055276668505553619869350265499703345411401880116967298126615587336334226491998328072583167292424498513483214174178007735558855576659055157711125320120526548988277272956332954314057285696435286231322930625703178976317773481219783122905855427101484022536895970926970389766897463298850193449191627132350952676299506022440210518199723868495618507833102070405045046000178683185730746505459409968344229268715482700767461526211704571687081578343307423309872218902038742587320478527178230234613904418284823324678527835353835132791620180706769715524998511397908457328416686181605110073030854943318442696348460552272143103385124330251480870496786488199738730298014327941180756211560665202052338649608350611467240089227309058440846656130237517619535107660265289568616512492192137829556536330789268507562024609057040754044217721569364437989693343091194224382814443763891921275044815437782324462544197676881031912221169375344026006290608239769759376298221611115335401929512459269175933929477488287184028072026313181624944744307582495440019000514552162611927337687929448585228553519685947991519402752257583334021981713069524577226071978049918491788117894442941534492401657642148985665171179754074295185933283144364476391243871009335587694172412788178305277070848866324941525276832160765660738063514191293939150668304917351863680266940938998795998680256113006427948248963977905146733810211015417512523124792001193861270819008416678087192267772128257203894271490964306335057973275549667337307344054595963036280577583633251454089304974171904892838257456794947996058818447888519093520317858883287039795803060468648426703500060915009078416613029362213537132553611151319364322893611200771005481695152385910437848311346169830216892502719100872335588548673979044575264051201747522254046176015604621047528235447127898748227558491947523286574683104149396970835160885114160681370111401407479331965601556532780885959907841228374337082287772516179179987354069686324989922220762615336711164946823659814837904859245096601685891309940977698917145755559894159374912930873467993529873912496247933271232980405457507038007771074537432427979320986246670303405674512217666654732798188929256475704937149184686017173461792548247391870818042678688013468369763164279218810698036265190824266139040173131314204729519089950397866858470823311099366556247983924207210486465024167634328498685084636351931861163345913073096813090959099368212385813164928582194533517214646128061427677005348850358114198534428554509858634018388531513865603682090775659559337934144880644047343007559330596933027556067147835314568186921413960124480475329773913945380166935040573714787371927807508769190414955087382868379895250805874884438391492294810980931481108680388643264732758545361650780307116423315144408727596075250827867137045070388249633258357261371585007778110572518024110917352200818480046528389462509836082683234071872407116752081564902191452239173384432867117493429360414257657339086188219147949699123884559350209028026550292430461355805306533157145644554204787217071502730174570770954664067859329026281560719730127729520589351496456249436410757900069327295510288999249129581013107515884241585325746231581596023916221987022652902277987713486683609487952877420437740137999877012564669797236845044722326577071508941607388751067312874094108666550245970449644290678193441535151096243921631653495334733497425359013217535512245505133568030362802063759746254928473691514588741706863341252836097453388934121354191642988571010373535489502756673294517550342869881298114287658600573454538001671738849537331846565120618177675612014294427750878458797627924604347742770522752875628287840521370201836401740396987591268539307788114222871349311099342901879403838140711520205968796278886836981256353339674764539634851616646646612801851437909077301113522428220288619299810759214988518536315716251307413361590578689292578697418375271549326884662296599564524604560254587078325798639416956053095085549329403523964384069718106638556634755776151967574013450551932141824926865213855168104802535449639890205069074162898466639749348371446764764593412529310169852627519398804259760957134866563655272811795876239802996822023370190563563338649986739334718893506489134148028392263655309108834598343451552407244270023895842651126032546154110334865164253352756316710010120373073209329870655641799493864620783012949701752089306211131189638032684453553742453945503999486191633548115217596108384948585575432622705203308102109578823886799465346963768566246293736255062291870113180567347214924396606534545332087317888478912423838788932369505946749731855718343601552432858786513519340070562493643969512564803103447304703153602421096642982428958489146669368966366337533943126965399073367153140579934132941649986949492579725146362540475979349651534140863844785614150043513125744952405146611246343842990635039700606025269022887817742862508069546472563197359963267451121923005588554732811428018890643253074766085065343361408154666661763956293711733297520169407068325984850182862782040122637702220353004052805550337353692263801840155357330842046238485523029262233359855033209297238835288045973673498743641593130141944084373960130818967018449839020579494279616962770290845397530171986315268791720963784729945621688453022645711738543521289021187268146185290954633349844931673421800771563932928512588802312344514332297899338481319129958979279429094242148236597034133101195691672391018832028071307698135483986574838300011951146265833421063494673056151366151763765772770346535421524447439905134299866565246653542611349592791897330721581363973476840973486383583413361221684021216511116357588456536710528328395645903044126764066151113410014822832438690517475168163118666329955477366100811929916408552676304463298892166532957769807156683818446047039018758180954590032689660443061539635681103022049803174412182745192511578199739699616375378811967822096560660203422418357902667050600792570081531191940993464553471813505504794318217815498132091889481404951896378103386239677554321784419487626630298143711557601009747587934784300338841181090951719243018665060518384742896296343006695254243163877833550858003069973503783734515826545034275835829463507412280658514213841402582730858751783261012630172137377600541356849073951119497234762781793509022146605606912684236596983822029415338682208807792912292354117147032262188611037348008981452129807672948621692199048133307722220590712020317302414567757667748260456993357698986273489003027493585644697862699828953675911400499166251536376835680220820213337940036978646364461645358005314103712651849080601661902816706921501658167855203061632516886145474204813905391352027546424894174127222219947780333741079842830069098150388612291569364056725688029224893072419424854731380714121791338449729523708265831857467624818122516220301268078626178727246783489482219360243661281880814066607420572243678211535485409007570892981993589559918066778868782721671533278418796830667877436404663627896758406984248862611782021607145182328165393546697864911648711724127201073475180980987689740488579039701562243912774687867360445575108122617853108336073487421749698268525943086801148016397072240015682321207270664333126290167474931194510373425167970068043842794947272668780030686703501057892259089200405311479946691008318153689397910230970406940183440013781908920643612277051160995461395254480830222235744914011000705393332614851855517322675863416080297960519365852682014342840227736416512290501967964285530003279545978801252502134115390512642223098475184477749972933579403656025452826727816512347295089338277093591068907531481905375366350319157912391590911924080694453808598960780161565639673328879335177858854111326587206985197607285780282446066044167143045144695364649563873636280756422509483275216131241653955363791666418518776175119963886012925359051852144292270458343620332675679157700799591810119479566207013099740822970737398438739003791594157892144158242112219872848320579263416415373834271754326390256029399516566420220071614528365316944576653559653118076790364329578776298087077237173497455936407284161007000898459566427060544217287774993445861332886726862893253546781917561658995759558982230680566918003510826059328320251812953004615246572359060677127207354290568955637996062232738702731949467209062000310602887866737026783571499897874490610146923731615673522889192058284612082855465438750964993798619546919574587718004725921275378155414728213244234683459626154478839357921715377961905539407680617057995967818599859062587851342763731505750564073566822617490430919590716767679371836694404295062068256676054106512570951327012200040490219234713468437516855214761302862894729776670436120562053881687519922454416202950643389387392577659033962470405918682458025223131314976951397345575303852429554731062688634762416947330867625434324802744981543258484386149524035680483148053216183657115910833744355094563355162306188855498554163273847430464168962800085235925940204423483811348667887568265617158112821051208899555461253989203117484685497420498779862990287230692555394994898811655879417024931818969945962955436576004473010218433618900894165592421646899817633034004160063240927065110931242089497366736829419160004503862928315866058812160583643053640533064170539866089680201252285614971468983897847325321375896374273342826675249289980367356614030537100312066956246696657945841165097082805184651005669900852505185954870379732339619533179349515843298761016334973121468400384160801824764107312142999681199482998700729250860101524725610321582557856135767559126767396625107353933830893506359830630981470069551995651388166157742496499958318613521728727642113963244829454984989037085080945025620107599403536574330247393495794317122141713001474847226291895451744774390223745287367514180324928781079976216140527829527981784179686785348593291218368171120680093877291263925298004267590225851830775519623253292625746091133218807624998856559401669192768047853386604648026478426362022566458996727695599068920513007334551997011620225594925539175439537395725427821398819033685611886334728118676022836422882514947594311120131030086776207398198110467049041434575850127489427868941677969136507431197135261932608122044977642773941097717577151575341615110539783611319437899621336272831864105233767713232019709863648367366844394617188394041636291473794728812085360988874277944945877396844876814815271332358667365624077017227805619254984147576898063739564094310547006637905993004752138821489311343709025673434804626199159152313442371807857025042544448248991836884743930008597490923679145139854005859644513580412674108841672094742330211445172997104525507981837349324683363151353438981297547718429100762771624256856871549671377707924825490402401370592213850625351759173410735351323602792252376521271391301212591165408911762524087812832183339221666981341002134084033187423530128280473466033399112192235724763523194538478950360253188168314834336489192960993865229778463384443494235630247136325338661335812479670226121139252319740999839272211216137939625304489797129854872420420397935910648733195127967389702856802148111042872893488814689979477690873308554225483551393163070363893399515568954317108891123019838052301062448418235135432426426583725630955280471411908510097328205094585078607627550053301735865316036792365877984006399033730343062877111653472778011975115541568832970202430547792007814418031804839927568145143083757622960413835781130948391112060630987520775591258407588857079990867806359348565619636780188828089973510643451724239715462728000037033517570078062208305380708823793301369087986725843056874314925556717330596294214844019271992454565597425693407392062615869134110119970424310521293602296064075357630291649556423945856121619272295440245798829894821713649217672355700623028007967992291360447984247805228657594082150144159332232349209030772906329274382973827409661014713225219328284976467428077274126879363480814353155865689602699456971019316141083042489164069042820424491787826554406121880013872629861617032327575478653330873973980387800373879582319868054104702924464588051385133962252046755438898024913894591245435755179500898900066131763201367322096319691882544560877870089434008996554844477666657082293995192326484146205637736211032049464027591500675715054796702483358691340593191974521222451444387060385162002105479649115345188294074531950573672461981789821175432636485260249971748731945693505890412271892583039408112099641001122935126597078957365268762658170098536974613495265168318467527638438327276633278642524015342429302339062722410542717678607150605892233688092470673057183072540912561982598443884305804899518431208286123452334400269898253513697434596043491345222826654956997257079154706695593683363034928402077476367992127141774597313858620011439258411062737263979252121114718420261993674690985069429656021143216947040780058240982389807355701397252241750680853706898143203812429825520602613593827055511507592029627297965959368939148903449185034970332846849786124416287553141293376790353376164377819472402874810806824567700940915379541670246133076101616986518735295071654746076975035991484077178020506568368861522327760405375969367449363306724747288096617885398271004914223124798816090581077977533856573336464401474292148270265976268025413968233616518246785302348510111677607378584950399054505341895574081835567944825410993420029499618801150147765950734717810100724901827530174354765953596917999857214466105349992756034315047968995071222392137429316287574107015211421969890630768689039871353776847324451491052446350883929885935215930017331096711311444297804914933446056197336501396476164434632441830853559850180692617270950469132659458747407421889835940552357889931514800987113490431833564186741924695833982016220078695235531560694338736867204153533725717309180158888661752717183196203977689100127654925987109571943833242700575655770802018993536612991901011923866784946716312217674891346398919103404049513365499742372278180789080386691775026083431291132434677477596876395471012434714658463610757763518531664391806724508210247457333748132064386791684990194458205808848878680336209389957370034344456073627525976303997664395681164915650288862122943960856767787119321955971766811997022384495693951350945754457939075106019950239667019419808939273536553698651580500221309812682720601705027593641801007445931101369000566935131616466817464925817331597982415148775915066961803299305536201131161943181291457348195159286245404704799249872422566217633536908330351068511535329556428930983211497931940789614253504074068300683916658310760423567137125553592469836348158391199986504308148577574164792793873557218788904654392751996001914591077814832272961420918250355358041715023686605402896083839896211083709218556942355205265406108473304529885393652570297576582201837887370437978180633164581826529542267893300751322393927545994763007388442568964370892000445480960270896834433659990540709603562701807100571300669240669210153850906556562929715990407070521015316539841648156634722869417246025851283558311230033931641190154707599773034816303090882840384405027640740284822559522024644703809159872430438940585867729150920143972990434683374078278139780481831030630288030008489648172418895838306764348643308288171828367370528839379861624818213882559847109456169662662343728786454500837823758657296951854996180603425333884853002180023137842169355333783964543378804696763481826982054021595889818262090751867296232252130060729532637026364823241745355087437270252619720454169600282202149810920412146722695773765230684343907419987089307838604942073037479787776890499404033027865334369287904141414150458401642420265846212826652384818688074212925397638887413460861732725576296539249848435610697265031530320814734345489548491853986393106635011882122875520008583908095908791466545208572941713830782321114134237454197583874114505084488407239373690133419183036449036449983356345765132181780022752021196898027834770291163861235670525582861416901389100749106691055833338084047033451111889974944646759858170110404120114667552715386909769586746115969682493555368454916344694227818334250676040817466659144155272644878424372734617333008374185088605766379340273926366294910500904683587752142472917798417032356819081465456877221762912629963330757484256886432022540569227573026025328746333385997976002490548003657713423134511835622622119379893807174768376696637062655935477256830569778103287691938346403564789129940253917498204787023412584111477778443156679176413461067750947639761627714609381361173854986853274346825703373708926217164143344320316863797214995508499685635856646338946922606692315187640386386963619631874365180305005996684626992880483456902755421528521611820584619731414099274667449559851156749759826059734617494621310103872782334452164854070930163514535993445666476034338360296787544508143496706449197605253562620057299704047665746512241169690524374620941745795739156569069944308201048561336939920189137418563451839950687467218252837271638643623462554931103175571957574898682662849669781706551106273813458524682275591736706690950045382037970774144378941230654911865784070273472149018125608882105955508023074580282289765748245870770684979240099108720224028343642779745192092527031135493868627682494404592129023449357210856616074423375889629836692125324802831501233078926786351237789084506001077179072156246334092059145604097444473170320796138713784604397364824779034389471484838403561025009748702701098129111800866440527014674999324916933027756096274978952247008612465421234768014136876585428025964956599147339875926714558172901027219433408395957562329775310569849009031783360021495725034314115468625586404056371953956584486203234290818410994625046231835122592592400988115923542029099108022772487848501220082849581935390404456182114705737122897959299556028488302833683034471396602717612496792926476553902903508147959450164154750421516454389785262977374268409725930412922217182271862214059768843630656301514762064061211966722352510848461947733937528568062113423534666926774750718856461434450792291825620286726355668610499688028890270717805773182795658322193436699982023517494075535725014269172991803411873561212456893346357236388289940283642967459649361104542450587576143310193534919705738711593191247064425091185936939780788219402215074368663651433698384370735293887765656950677451433047109615569804572112459089920132916791458136156863711529942455561851732860456608857692064982681032420873091255591272261860422641549620338688098298829141556185348461438484143448509169674722950516003217442843682317370814278269116518510609579294326634527631657031773050234154582517202070698876180773842996202204276987222735249560283485234684479012029496959894864125207210630793424599702918784299155183666681005631542614884061082568874980280346584373199673727875934654850811257830353075159106147167325569773965298284518388227476219979754239644165753253895961244813727326167905294046076078522435305014717951215904058789982148021068980269800347382329713105052722076649950927514922073112684328640692599603016342990614918488591674462785262663101118557839636428287168706411285324975644810899871738848243195985678373188139799301323231187604941666983091570385135957274685774322739148813916096870857720014779364892492582314448983321272006136740777966351687031128638929007475713702874501061491183291421565547530851120245532067252685446587392508343017191493396659727167585095024202193280966633952145373310308064541853716475108001685549766746532986243781274620117067527012418951234592625877301439678427821397016482039447536162941714935950483584607865858185518766407575807776066189553405739863484010388904097806049177812708496866163642734044031385870567387591716776243587507783206572288321008250231715323720767247308064094117678634439004811535148233913599845666298017451044032794542316020446395550141096094141278148774375318595519389832239169623661082286270762101633428252774924038977290201256298946697296530517260047410446703523100239739357174956906609378443537401101648537010163888998336297943091574241208660231321033007327060424804185875298400823691660593725196134088141179598225848265180573639013757638052809259731949455857117947460194935785034121598970316389051261700378979575496104711367547376519993752817066150265547896442158694010554086901921807733423966379975491198757084953348058786639599275696565958142980020427757427289590579054061350715331836945264727955448981376342126866538488569284990130496531363774764573064677705127358854627224379241573563252681704019124782299911663510115922930061130496879806591499466727469215172585908110424426539459597646758221229352215830302046317170534575398450438386021354213157382873280082394894701681469391719983369373891548362721515847166990587245344409045533662296127513588011206618855407294650406970661127785652586943746981418604417330172039482409548168274790392902745806835008960807337795777226008564169900384275048444793778985491106765050708464021575406459948105891025339877382720899770100919336422834037192935390476533825174335277596303663056677537915614896697611023964419101398364217153888562053407974005248173711227405955183132025178248435949778311331286381156385823319102824771473948306795691140352486981082562937911893900406051916944149024472692761248537534410543922879760682818861004478920742307414698530283931814248062652964333836288302231516422220811076469453433409247490048998588261177580195911291191912056890230442597976328973395616750109424144528057058017016922915960229883839266708959784830348606753537987833905847871935971960492110156842728460252058924258826856950442929923264114132825511611278311308240331573539556666946958896308512800231559278883936409844165438788984975556233926902465050929157702060886815000380679592266363656103180225314563970560637359786656063218831104702059937501198686560295384063059699205734606617848093585049166933933568306806905008702345906659287597987055332230043700833550057278913477802086455694196817658607917892161259114918183961887780860308645065950365464044252168239093187214803014960968572115311986287278375738699681702606867789750420820802194816415402421573053220422044473832807985704370463028755607968222939969815881196114458486752012669225460238599722844556157873391300249733935701532453107420163256505514235420500638038137505096505415583509590553378134035422639745376710516256033905756990213349269282705916240713305636151387801104648035514896929875907409352018134270977691193684535201048950165615672173439593946871044102158569908989793315894438885512597089950367097985827753616012485144470900948963104416512670155806888117223101545667772078929026621277278569227315285890817060004141168037067893260311145820373036289444630930836875523227335392435381088985654684721439916298685086707455618084119730465346288292112520488318937822908004529873881287255197155358962710714190335099474482309608198498134749087817730053497858843325134729520322069408310183145476886637033262851635642958329062943994669157101891118995716004872040579197635300524144225374790720374796215232639093081655555212239389158343269945433906159317062820204552274697549144576443572017326450427674824474370747677711379544129210281405767998354868801435776907032116837939127095863945080287309876197164795473305354417614005365263189439008832122906174453830516427566386082304914012985155420904745453259491931789594623234361646383560625194962836496305652651868230818258491868675783726316039041617032825685611334603756580629212827308940584415852052976629826144717097689032451546007009190893465029489812686610190167177013545325563252869417035456677704994101423217110044637709486984024416051264408640746575359993580869323202672364642508889599341531248368199944327113363169690911058744110359268646014468173668611008071962633699873771521620993865224315276968798349532544321253976107956211330704577914640887293721877759587428954537352228309810329544090195135593507967493358692830668110657320045350836477088803936676602701014951943357932559876503952099692466776251148286941460933760800749504647335448195721670373115007492013178072207237322146201582053176667446582605043422202049227277783193856150247420484914283223581329837237496902162233888930886514097272353312741175880597331310035819785127518885308172298991251370509443386391588446720795475130832657990322435603524835167264580658926910584586057814649917549626269365817201160073911662123775558464511075015621849607043904043242923430716071902895532456269329656985011164264407978020399607730972528084044893010228325969636139761146950197938891188495346777695890763305616697462653706493798286671257893368098943689083778927768803708343660023770197974021920341304330917644199067221098084883415003126376374003369027188860848108872700621870781729432790567515826029805072568270809165385229976596885695919727279858300115921866461259348525163019060506293061166989036085072726402964529976235477596313897808389353793603774776959924200568157387013769555082252792452901795260725992010190628816920472970158997878147899782137582321291218421343384997490137811371822243894403852737354750830520646804621355094456408066870951043654508019707506504281971122133174017111617449009759036261139467921469026321914671123031253411738380042124302455816339817295857034678141418723558455610096359879997064962582664056619706640937658175035432514420676175337931289308676544105654141989237469409717409863492175006103770832213115302926668459624076755030683413031941548736672029667978847075372600058025637503428885037426069178698292870597932624958205691390123680157248999843647657542160710644468393387098425784192917024951239809100596331058371520880137482924576700888794696939318459952335227554532097964176566831624701192833409847762015491252974675763094440625221927775865370242937430720066469403861656236583175874416471912111907031472140351075800285220030708757496933717482687495251592973176367159815334593424486237163575187897787402560777730327429015928893401327456271154688278974286302710685666383255729471027298128038365601195493585703360995842971470957571016046875218921315486843003673572263573400883422944666349399626149297135363740885831036649735672938918718689790844656148261782709927948278638207146284768932596921248497892415711256262619661138380462448283797953519785747723567519507238979129134986754026419700468833342531666123249340963540194814639422198143168866498491892653020733395866937041567889924991739910302147111290743475250749194683529580267896196526822239260096776318815730229139495356820536459872007542932447322607648311464034587656371107732199670495335294394732741539966501341684428567203543471908855343294866646323834751521852838874768302952232023425341619512997218749291662631832776674878817233342211857347544763177143323823032501253590371919753210040613051826052060680851053753280113352810428711353385978459485365369471339669993345613911460909709926840866580175137438913514532382347369579890652776279275655343252461450089961236041440695551601021076468454986570547584282774065632217022116420089356568067820926461309852712240192744607940892789776413116933754414932376078336100280058175432799913120335187927880509236531566311437063405093297884253201702692069049160065234241869566835556553913916269467451927313204692819914326768270437851630826508517929936211686855275687254162434591712518096173930728866878271559746554396373829462861284371103909164383005103874658803134610621805304593094237803249130356620942513654075725830575622713587524317550296437000905137443741427808904677942154288619089200890178756507137511890961714523582001097138796484427880319903544921861115175086195288821003835779655782984924650156263331187276488312395554041984710874789613993460549594108684355501959715648606589464220076303902134766617142919885195928332944823651494601937105538681324876498300727587517210075634243437274107506148626141744375552775075175141876990897053297387820148656997722273846211786396272813581993642243541876931999304737714601580249610567581463556196342582060878857123754224968210417668218121260147656438921763552248489914173475647169805477239278535148375070706666326475117511213310202844896482604416612596394477568805177589497418408071688900858528051848000575088075951451382803487057749519769800443134313445266655765020671199652178354474198329222696848702801932746596450914318996333253438791112368668013818246540904910992072956956034973898329982235316784029634347483565189773596739243647398556424495439733520621826550018338157069502611425453552281215877871100834182058673713874626760136340830233884462963564964474001009650946239834947334861485346559999727947382011524767299965236763080045462424301577182521333828858113924830270559133958688753604800254240584379872030711211281986121559683230178776666215437194983812228294514012210585016170362096368134034903695149085796390816169964841657851377345374671794033407617999511949737757304675584751078324670912816719084565627483461602495499300018096918262131171575753921893544758405225318729986661982848269098224860601033861404247412372246495197908278451147684162900949539803557678819740558911808231735709612991214577801478293397850446754566552450469647116792390014148841157704286808665611778068493392047135092761331475605757834070019048900124479108931739024939186594888014677117168733348818015082964917530481439024001323842082166820754226084246380199559485990830478902774524933199704928511300045728687379664736952813025446694405558658250680108363734970870569047808508496200298173033846869938355170202187054949941123442899067268559958789914509434041705045115345424418847554928407741262737192224475515856648986482548047917719528505270320651374335700918753391895024860227461754179620248847992847013811253782560459884385354263644917859497944363830035515551409326904624632729610197224641620911616775829367784925990259079395183207036259983815399425259439741340100758267666749143569170899277548126884384292674132960346090499396033959728510284858514522414370625396866856648819981909728199911967536280009354262681752340856507547034265662444903770048673577166031298950123365535082137840290790728300561627433591726202505319476596109963565602588950435943500145243563894371016515211186061414179480116896000467131597194465743318734430751423109790466987556119309955860482893852759196583496373431915500499959756757505785432477509953143663550286756618356772682259614301046710426428892529439933409805585978124970188242473238488550597674655886089364130012816147500628559655699788095926530276458174464680158957014372891348985507316797846704581594748914860619082797608415124642738406475545268868804985462931622387677597270206080198107442676592729320683204179855981874177218529389732531083870129113259102395563219343868245841520866764376412707276178669918530582082913772325154063893377605480055560382315161557083063658385088806991236690779162671006485719581104360277921271588557496258589939172309897183191097284167038295204468805039659908947573380476672503066622042269670041036915333065114796037410526953868666534199559233517541245889024183283792199758036093342791959852413209907123342680204604223100101482734531181095215993260469476379519899231474334146230289055402681689176277183313311313506671033588455521316590717071703883195265759969502613134468062801107529287691173355586588997794231280833520229812702474109275842383441396462661513631035659061039924810813870298723671119855208235317743378286655262215517427348300337964609902584036541576521740729487402556550669158421309210547846924371392021648433285020914165981976184829011765093403959392280391996155396059050664746302921976990113228738636945174146328398034651962538815730183673388077013405401644731645982279691910440302620553816113126974256976033398313225783834721679486756529880635141791332928706372793098911895264368871988483071047851301969965275247164693084864644466150024174912719021339043989440374183537308387872960916106748835649891741958476050418369378574227455672728144794704608676561002357874798062244667278894502191955582890336141719350830804712135873788772737084192605994932786548801937483929107615073276607327338489085862573400918117933769233837940924008484299803489832990692877973755794948422829434142461705837081534247103944946077763450756749824673881498087585799255075861683871360150174223260918162650697366309613475308031547637498566177707474097678689360661694580674548270618392886042824927263570515453023726169284598062819158653383262667337500030114791132432081276863928449401174805240866504583341225778327386161800710256160400578598594295364278853634177088335972890458988853434170022347840538622502727690096326482033456468133918188710337867458369427646147896072269663134594634552150559637287908554316812682203456541902886316857977136224353930035444049441575915025610019168050972998864230674380687444644645170315589593571221315296047172877347635386444743444306090871623589819488290704053968870590689517388340026658697579800761485116507524668879044412234125653474983758275185199984828726812011640514148651950693709408225378037340248226210162507827251018076280261042440846891002725929428955586226086667625459152799926046149416802909356047822477318543378733389525087729907013961939550628860605503451828003452189841509522799953201735797103054561134714167271871466535743297104294118810537862256302599435889554627362330427642168566703114690497867393254316889447650493394262143669746386799975500213891303997462762942197122097453402295823501610582180571358738439364918607315139933748916366983062819819764277011408821028176447690956672556061150456301793959721526950907551833802547454005185214938769710545921073089785956562104469415599219710758832447100991076643905336655438435649585367764864280827139283700431329620144805243602569545708679442892507534296102791144858477576342524474714728653041401611508562402430359966605300774384075696737741463367070953593947868030414117129052178017222315895175243099532642380843949674214671790410026581378405866792877674916055322312074768913895513740828017983454495350156634916996074079035376812380454277842431789518992437164020578279738235280226302738390690108706344971416743528168868736346208924495600575635153711856377242019122751762922273791658255168097308693512821541453258328469340463979992039192174247224352116541326437579095027598701218613516059505622777578175854448909869898827502060137345922268151790328477276128943447905379215846274071958532623286369328331588879764620734835385810015559296456684852211418391330962359268593238485192092218415555191124031452821999218187922075273627620440113114234601522282726334756115374307245692140393629879489590636629774883083612105789517833006904253123972531752287309944326057966756476980771405218582133391719402721628321588305623247196593947080480101944022455173837295701117380132500989211544990466018436225068268182147373102844459571780031307526115934423581536626976027808398261115258705846271401063764539156959749118919073335746097646839667166003934321866631912070416070155318487289500379813288319323847531467847104004863157163145731646647185329231221800579579778925978958402736656019074769209359961111145497156664916850504545179560875036150886334708248755632172278558923677904200686259505803457853900578705907494101014659286645834020791522450022474642077668928614393247160475860285067803865326336776752808839042884611431680405125627676669290254454574861377794804224088991112926741969273470690178919041265499574305931554674099855625763871878620662906873023701855862127264371819933141674473532996376238821357810363887826254476958430585744280947585086763598232757903330729271573194725164954825875463420069067718136068847632816566814098283371230585360379211195901733125279098415472685573305778042409020805888653511693159864862161094228459469847782929083232657903234429686722431173198070176801740795021939778073750066981205589792093862065910931155720223224110027365084617738491782124194609672582438835459480878931327356888045235212426267383865650964599338899008023117422553976698339507487514197332539685159353575389569506322142056399649722467839007958962105962902142774443583401453184612530159094393101869934353450929361384057250915542115304163560266280230501070544773053510335533743059019426137921375235603755675769302363599688308746407682204317330632426956863471055843850503190639413621260611989070346514560434449226299471456959858684562099202424919330603210381974948525672619432994027605514342186884459171593775543921384102760998039570239990862692702158089645276356887184704717943765187337088033573693312654771142883271924601819126153402364159614657531742469269112133848777307511692052688270488909493136508470285595645062939102902367606959835476438356774682027004547918004043124111234603901111648963423284191104677089538972743164033760691350884971222839660951551100086613842612210355252262027929656748772068156824047301629261612117571766851725315762016896222892062406234631818083251304132278403970867477024686712051083328090888413254331585185042256957679877814582590057180583419882928842371075405539781553079454096411855278789746694116654845311138603584199070892696834156048219875923146958316990264102319494950114533311308499476741379227586613002200596639073424755783810790715109242081144962950589490687565287619557093925270745275082368797658514368059733525856802609623792105477864836467285693880652661444849766374802313817624139709580509319499652503766203943764327127965174481936746427844805898831440920836478222515208964685120375822244333551247221853995962824078445694984498422599485421945409615800418911178566430712147789062539726484231704979518243512796782222057509988867603258370207726665648563320555696521458467703439983153475550406935732733181698878557260787648562365854381556554296430921822798782712862101892419919589016848416677453446486692437198557727466770486143868748019015700644901566380049212327129029955263687860469350596093404932749627792932574218388062788534843417657461705570053567278343797836947109812618925607023328317869530295446287766067610920729039512622422116161730659059406838824007530297767047743750566183919016519285774252749404361783820319609382805154273384368104780987328903676146232883102844365351046151563917434568675554433529130675481195672105043910143586746719366461104318062574924850900744590994915481527158399580088357835395316169926002732020765072375336181440184742039925315943971304510315272893696170838285533642844216726321837003390577541294272997394045434288859852372014546522860265781064794878004963490540943263420858372988655743606778687356669394970605491437178400082989920714894670546098036675070829385168664007044244897841922264731945303647303235948265882409174994052586992577054799248130341439392427333539776824908236805507065249923651926438247308938475192704393670070322899477071931452475692169599643622592409537795467464704097409871390754840075278105945106813386308915112698066101123964157405470151710328734671968468077365192612466649898597183684731187025760425948843215659855476664917134041337832585000075585857150804629140646458351650969084006336978484622438554740152486176698723627439567181332780635597377428506705923614392505869536901872291630209287580109276119580541082600358495180229212072867942221515337745248048975547125901186028969546994990267755206365326787568734204084194612472618216004039133743745664640475107150267326142260001736562999261003169997268206938485003914481102598541896975367767800843869932108308924144133646428577005830217172118291065240235101228473996489815739056251468124288211291264293713135841659057486456370304569542015527853392354237457325552543759743192170359939330169751574797293224669056129190932101686309377632206129506636719310198982387135394603315928479847860163329522188075976804229841321072576602510588580732526268510057113810773951279839508873125387363231875296968243959494251948444146476404296522737504003363652948917018791729534155699467226735506377215287728816645933025488409376805248040063166246268109273541321072812490770920995466231284847050467648376176173264831195072856477509232499850867344809872159324016664441594459781274142230268132558674598630253351822246901964113884652080310939025675173970575128175941187892857728850000810264661830862243131512720875443982887998998231793846848692919134060296227143400872816770350295191667417167468481273946222118188596491116078634575684756980956389630245112920331846446413586653547904401216787090405366871407624687487993227509147971529969446822543985715622213750974217812423590103965565648664484341944650247359332229789172646997145570528071005070083373072612352687739563559080928152825212638804743562896597091956553569294096237793299644792084376121829108085868315529687096167119893691428391625299234503473856580624359174084181835210592932299419641217290971249301748978969881506384272286972512517011932807747115391424772736288316757673589825261607848858910560566151765118227617163431608892966877855336727744677127422363340404959655309614961836676509377175937596935405877485399972769764894379422562396272283788163426521997864983599715024563754546074297015239629590279197518371902673314083661954394263459765017621753393948968990329766013846463927933892817995225980751378745816382335611455360767462991596300601539960212428597738075960048041632197395104083047469446870915939080525468750788551362898494321497609137572543218012607035960828545682638154648628240732434560611982371432667202252263046564935081136638941720055731506820099006584091382877049912186933379493563105525918815215785689616959218462166600363110063117455049327362819280860449152881415331002157212830840861131231617234924391308440966804840986466810310463183113630566740457176002942262710611831320611548236928608579650656749260568770192912708880832669125150137601548660257662157837805963255817163586115106487859271392482644828882566262747709770266764169802056526316417206290886575875507003079701383223266207893597791007857365292740345752018526836159133448954598343068857169430731827294790862356750309358840383338582509631673879837394447617643087888660237043646937250754078862948100652607071863118162610351497168385653691944962650901682596161171639736785579374023237539762860034681897906820072123235259339847046996881814172163394846409106728814398519088599413048421967243279213943464421774620528388501988004130502349476753791335983490567159762862136255230990443274856976215488073289430647002556793069003057646630688321548365235062683296513320728393215448222003479336403662417353385278453352510759762592441422133721245949687333231365850573372287276620339516410019378534745623767050757227541293915274213123856164582624778813032421462949547127289409836848417252583216481944624198816823960538678709657965919769350714450617181033198926579164596623603708123704480749110176391028715362005131024040337924604189994060324054165634804715313161440873236611969099971643357884040443440959961964562990484464149076191992999077574385750509396816146548975281374168486746043745031892182585360824413909430370554892872177298544968483125685320948059047566561560159239378010149157100378732272968901902983469484420978372079010730044559504040294824461794551793273341869261584859961499428089226339624881125804833929155451760507691190775918031381690268385503144298061851218845258315165846321333861922226949839393668890118367219924593915441479364958732449380238579867355226947736746154192090614120849763571770342972179865137348904040397344342698202969560032391829415715699427551517274699750406238353193294016360196302524722513054639429696009924331719270398564078885871262260593159837243619259646245712381227067897201173024214498979369403906547086017541515946304854226369122171983733799278983919802613029768496662318517021903399067330379067620923928450322146108733414620643524592317807991190363337843292323641206672880693282577273845618280782711525715355926503034783132667296087049630333129400766395679929601574838857193525866518041539262591261153802230204211284534555058207906852302825551609163538756401452471692279448868641175527511038783298603452021679764967686307494596022526664060173437015910333852626402873110720825550185332972292187935419145586748157347824522926410151802850504622829346038142227521730756355968306902625071562706689902642429458498878059100581876198412279188042834952894306683088996162184883018998424815487331351474921998791733194623608236087545935170284477681046479684285868122521795980897327490266809052607402887536378903929577175222942754729330524719222897450689534972972414553855081118815299174098516271824285779482275669639566443904094310979432471430509893287352248206861116147763844184757973982407004778929085335723889989092332768465095720102972379120376484344720648758488286046131231721574071026075851236040440904270666258030293525078652667145109706750025170388165929217439477740317479180341966552889935689854122040022235348437332687901949579623554271238769551439387721470853147085641889415657754117836424723338641773962766370810295348809736771791518714067702120611875843218513897859016482383077696565542066209136483874549662689932154173037480991283316110739944799428445896770298082686720509148667445060480007409471199023456538572158443627309070155801942886562250357788404508094697296763812583207384288835977557303462904365881757227815271599303391054517774648576396854913720035833389896417171144033751165430021571093473119738632817381960727550767519319049220238977822230093167051969857043107045440195203458673455211585830249532949340171966555032961853081832710167638006628431503487103152972135072304533944629785980529500622837999294211618296601319907858250945248396360741556778774065164818971092014239689682025981031840922156411677067146120781700374289782127604925592984177693525933836022720333886884668701167682193650653217383991791354336613362845461617862311175796924062767589469993398707390325986346453063408044375259518868382463223460905988633307037176277914781609086657557540594602484456419970666458208005887640927295518798531534383449934592843608309400672716067988656375315677124753869838285441170882425583983366691606605883139688994895907563077869849536113957482978802867919526338977661262629549124299413049841996970566223848172322689447054754793647213878670303194634507066977285219330418048418858885049178527534200287834404020527610032679215904380593546948499801965463050012725637798746518849030720209180145685138664023145155749618889562855379452472440543787107242003101437415406964270081141642120027306850837456358996998411502133947508257795327797483999491850740688094720837280245345755220389840398652598622528096217635484429281570639836032281835540062197185574212359277070347221686230064556038981715125801250579521107857722367438019222892529619818731332863899184697745556993640029317940492374687175219211760620478036654756895250674111509936243138076869266154911464768148969558826620760085705185326391585635754073994046017581496368142335328999620042212024556622121442959251946821160049917755702888705331060165112733767081806528589567918264811383190647111291942199998959390959785964313465682668991879858846129726930649572331912129253057792456063174782555288478416005845953992246443894792815129087159744723876181545678426488586386891637686356765396766568632741889451567003109891967996120213038857389972666032164482177069913220234006769943839685117631174344901929450375037602362023704525744492603433467801520265225369862820747628094785502167595576721135538700950803573120559309717217311810514671946368087457868391694792947910370073559846471872131776019549797940500914394436948824295903017789987071190302023636029424353166172704817067040100313881326888231559923571536662063841626002049654073869709606173326666781992995105250830258489640554262157748429092153944433142546439951391025856074834113332384767397313796144247770809208993085284019238187543520054104925982868548718922068915693351434915629347816780520118825095133913245600009674395373206912643129645928879955104450650186046879666813716982078994609808277858607857842913405179535686153338363723989761288168981566924950767590305556177076636014470904150258987246976444580959579879158153971710387782288303077275420884937105133366618229248554408819604220115667701175967419741790854419031679461747080547853176964154693203847638453419087134565836834101272140334497499529840853488662842511837247491998623419238733811901673143444443430161292379715016513101316745527201985483157048229757102881734570308559608946971678572184986839712212486655488296427812463164029285347920745854048553251745525393564728449845671715717322054655348494737908831944692087821947183875527763024504256127768780378673352277674200164298553316662752978765630958850520862292267551037495934023367729756192744910701154648758636455264936356017132854683582445186767337018914505449922460408517419106018011686865986917597922067349150770535907330117536977546494240623655054376490129269743972316065411787705065798138707331856718371310991333871131232312727468848765412732966827627127921700252514642863578896210938412909543244882411783639470563353419001805327947268039533126509394968338792779013597277996533869118580447474992605207314687847469536822787768599082873321419782965112583523398898728090120615336970858093435527341383585938968890339640776447764820143206369540047504706344972651757230777108855441096814149626185326144200463184627600967576791786017414419361900539351934645049602661066681556461593774286158275267876160049439965705631996546521169328797865180381082991828244243492233969608305691363982922368299271314213551893018154819357090531206506848008574717091291471781300446395136929267002702428672913329444334649114849109667895555062976462524752093773152326453821398611022458554896812576641617613655165033374236543033677156773212829770468579952889674088147463330481962317878583316370749051739247304124702188830723643201668005225142455334510488187974351887333264562363569597413915064075483420269372087603501363647412022510875683863973826355166982506835629993153074560256545632612477280389249908478804276263063108309554933974665009673157302241736523971563255145080216703437660795058680882043535085154784102604323049515843245646132677623720827174865905709349765180753454438693416468462218042199204268359377614483522093400360945046675761797053629471809038139729708463294074385262071673756250125437049044586779066323866736159546905237484110345637823395254533980222285650842950748119656857568255932955813523118243727406344639287326515822692704206667964574035808682485002582187158081331067936213097069478337615628158657584793151657284711067402076920430751124537822281955416541910685174810453025525050857129761980820890424536321087510133271373840590215513806079663534182585310352228222972719124210158255689260983972848128025177094779121607646602800132841363160815642729427894150532175915510039734418335519837382710446096251165017081371244126159792197086694474248382775128860625367366547993380395459611236313833316380199435705824935086005857288221494066181542197370891020301686257965544387936462204842901552095129159089584694596377104201470764963191969015384918265312545376428056353420873727866220227130207586419296392515345937954708323804882759913885568250861556354767569419581819287147721742261451514584290788807082090226043330041643417969956157782929997221472921926692500739494456968440541847281607615074918392342696756882464485304033909752239389789654488020512413743168139803825626060388609971982201643388169910531694170416230642501360655836438157910410995940994572358706506987139425754447452066095063947457922271031840467891391883912304934603597687426181370109433784896432066164258810347396138232764960958241735466598801832122738216497105703531273781003162091166619073293551207620208208908992460157641308903114458456172572819817970523056819695767587154822307218886775335542206666204800344577162082613250245382399855472907552091776838638798473821497938282840558873483824710703647495978613848983696425185027568605276613031837110837798649322607710344231026207582581002147314047373123089387530751049614843663219689902685328457317629556422388630302843526270940014895796802463218211354702673246294871684207889394420220718980518538872637790879664368203189575118687999848642472050909039964965689075060021819557269121111894614477694033231124870492963981862298856737327908972440344738111129929442532843097004951247118058437796259514490224420179887374898286096084232607406456305386310604799397330405532126006554122124050238737081374572398491326404705357536904035045405242085027864456323099757264119814112932415551633785213181137955069124124449711592381482815377532972615781354075047367146235634041772804558476639156790261062695501915811691510526389380841296802714812064492219186078227546389661685736438593273418816956861609231777135731279741298223679986543438009548035624661007481639432343801092142508191928371688380731757888017479073706920173299538396480059859359476685246445783158261031345144187096889940404325980375848782461935783661891803075695182229893507397619202521931873375919840301355582042225646822150053538253220894031832001261150054109975509560844720487622766799519863825875709578297121149651123342732464714697507258279161425275657059285331367837044156149531757789238847001024732021962310468470633474880457255630394640319835722799169222613523571396385873075187394821667467183800020673772697616945156847263049323993258791289436625906610235969671557198172577093759979126671710063634040101606763984266711284152548638639683421392325740610234466156753192977294787423422641749901221146754686889391627023236783397547208192357951876215875715152910407369792661403490098808540720637959892367943593837930768510464940039032659332498465758944426826109650489921502060490242677989852897201803090195159612632343370242880166030673111732728292078866939329604127194919449847590378868695798057763185146454455504362571737841763814876367891592158095278955914576295906381844185878701821808649614756077328694364681897211323436767758575824132049085769499114824569274758572303883085687378031255693774791103697111459302428862293821671019465318312101171579546099223951907066542533664410574377850385107365967052894233305776687385107248141545948384727175268151561144119246883287407733443685628032691791710569743283687366351425156904260979007651262220051672500667263923107637436521635754013519872134934541830769936772235563313590433792294524919325727396262814388134193359393448315809046994451650479604092097901645747984282039614922907742033777598641214112172152794476777580841618736300809707091866306300030276256036221378848144410806369662956156177464088581459720936979629921057912287096452079032903185465237064218295025635544928648097454488877979625317931942325597259291940337796447338385971311052828959407683908614606115099571917032139882213686491606863283177199377691024875475994194114705060678583078433551722155027327686915459020188875562696192444165145311358030752017693791017000980864466741407156556892928129027343276520858773394413417354325054016083586336260724661937483434788884417760442129504715861784698426938180256550284169927452957279744162766575831578303354505517306735583481797062736531276084666973249523262989599030878473481601633645298688988163532159606534683987886938635305395034897441530879157186964156547583776975455719763170047946171823899249977202480311416218101362295188994078806318653006654544929430530104135015529962058320637162384222094874650492901965262942277261578354121899223531908860396871526731392346390794560259839677350737039643636695872936266861344123416396766820320718955847402366741787940803720260478728504832642855221266184209244780774819361648347645209656833952392239976882944140387869570492195388275967920551773514743810933801233397866009897033492458906925902101335009475840317111301783411537740551330215142176144164241427916581415626121687165238236751666325478601854867612200053963470277431397783733221478672137983511601108645249854641507866491224857504467229638832484200155862895707532116340282553375598874539238531833033905664908184903175009906083325238252985845328432181346401191205883068913264075595456219698600029835344352352671320110143163047438059027311161422816098524740868308630004657161369668270393574722084395212675687631487702471069232500112711347368529606442554249108877196710619498243807587923895822591773858116368033219600859937797791924667940480123802753534424378967307554429673118430152389665713564336460238614212573863962188326861634750006077020618610696800067684347273380570349030874556509063652250403086714119985342983290047450076938784458423814141748674093335714867342029450256031137518388111226977549589737374105936640811310553863676709169517337355177851898244012675411966374871432289176172445561737941574189431259005233350386820712889119992813214671736472422759217587242078853034255916191897293305203284394493445354636069371824659204597475012358958084520641186273946696618188377409297258783830999052784202997614543377936848949538028681849868330964634400227466377944870173265710671140892544237001496013217927141680226173290665988949377736290953544408491827478361092108931078481604160402403115600362236976029926912491781733628710906087718800471293972064101171069457745760045885287576677059979555400702980487906973753441700650872546093399425055450791874794843600000114373447613594113456309995404045871419933349442689530759933404022205003823471957070523708242446187287566114193963461342477375934679633685657385160446354107354123215052218412735439322236832198973556869454026848474569597529574145319353428434852074318680214147148245047609897137724621480735359643392322128365130468434988363576347690756981890557178281832284373397092580693249865404104644485908964324357032647787443666532066512550822953798818567413303297903900807046387346037866590654284396974432314636857219902468587705033876186555016254924597627736841679698349222515262555533566516492225251448725678695497906880716819165084478446887004892734284797450117937587959792083471093507948538951129939605994288719224713283771849993560205248847623859309470362243975806552575322525128258144554136230675470093278577872952664232963831871619418431234977681111759012366094619828123497516863128774293918275204175406247976603458703430387634695464537564371193060936714827700380254938155488174637323645518510252842805244631009235779405978131578175663960334849724013532140915948513122860375419531779535409726577693099424483152974845689544710272448734797184134649936109203225363523727291040758573513751485544773702705034710007782002165723672436779865230479612133712297784631353551773366954875112508261413782403083859495822767134822769923359772833254115218506516786283845070538744569411191892347725082009379834541355044425475394423361249682986205895764672256195858122255732928381176882863919576781034391097367876452010242871103479289180498782094688541983271041204111774744636877943394972822340331023785575730303270043723630244399598329217331711351072474759880783865326208727072429158833944465098014758872169251575948550858205421740942676517447985841804779463755160919167076305130172641378801353581394352370407991538927078471242673844386646921000284845336422111957598558201138005678596222839818655120823692231303350129568889415455607265749687985318828982988662266756453975053597444479374111780366604121688759609019603239526068376817831720019887526096915960689918657483542334806878781509924614996982420714803197947075374208186588837023443291637770438897320144908178726134558397363252038973539099475305222576745677230235433183395451161904275010507151670112471641866586644333326812740862255431812001079833112372082853346242358183132434698077953812956689117056123842579107268056752255755456639772724886381793487538373740239991068958484534488653368045380686072987785999375759909705948130602147861788698517512525952333100107025101853588032461588358843987809517760637844348629544763953502478826031056149155074973993917293865757895260653866632202062133825448926773668813909302919806339657462011042324497592202608979440941961983372854743131369694618813229890133433845591832627655802211472445213882289592075110601098205755220633643983901350129392240894869598674339138250905011920576993021573498263121945504902519086401940447020669812506425517397187042269407899247788742410596169317442440712729467887012549416854941709682114982474728057702120703871622662953532158353868448451852824853581209085369489248533982499057786418502782932100609335787539778859699851948939900091773898449039111029104984134646862943956145017562625061639009216636783573605517981256381059933468900494219922449517033001532921471291711226548675718370621283983680812358037621752664908055934370628854513804484295388288905156992735941990992299070064939025483134461498701827418773673041745076493960318519172009723964016633235928981775233108526224871614255400182345219572603269336822956573782051305272405641377613141103000449397925370848306322406904803502551147222752645186331345431173272955011906537653371365128480017804268457775321394781215758645919135183291418411253519459562073458292242702504172814871655325249204258066887433577512786350421300784852383669717342251942885467015835195828684939701441511927642991745296920472039374010959671394493433161879268632799550400688242684305464997639163118726427843033638767821427178597543739707943819480334132317877453900931881149744346475290165938059508438091459526156732947110529810707443378370090517589877646211654970462323495783217859324269135461872202992150793293071588629278860622887912143559559148723520678887614203480477470031599486004988606015471159410451957304919390417785094084108003129145693190252083739260619310959845868449528695132803972185086721760092904164440882770946669827988110048622939991441607649612314722317156946204190437577480145145186374102607407590702335040484909519517845743230679058579501831435599347096319078481799017354293794148976027608815527419915355884190275212276695184741918391690168844514904034828740990997647616865494168443081377529957152448210053420362425862778116541008699768567432884990828957906902169492330778850414413147747757203509427118044957830392302591301362885582741934427740331888533803215211733169374549426852177819473780341882471823284836500020836046815582992332734753929329408537605984546219005334969774000898128622456474747725852611702787617288059325102408540940780290834479335013872850372149918141187822062246095475939921168659753420306901196281268486119602409338563069085401665293746200890269451159569783674058523015236192338631491993108741871039671462793964798044595019848498111808410516903069429719498789147299816435029332500849842254316161932168054108761597752890054836307990123156025805632274855541532098785613612625895718023854174997430004110100608127004825607485751580084184672851637768660747352595932763582372567967412467876632629976416427399141970055505293469488117692978126272017545719263078140116892961475181545355644661978512259102791419075185908450560697351445713520524260608898131745312602526920769982791201246594461545391946352628918026060681144327115713523568079947509621458637149719378728036293156926252506642771847615216588053950690305832545203405130089452529170170730690931951100438981154243300634544863060138095487249552769674719536367484757633881050960281439002203077226012550823383406499090470248135060851291172361301193131376149357345500473784500797659423760408765385051009028738884494741134159443575337389665634635278994130116007783068907894999539149343107025050172208674925371188418378294193212120912548535117159559123732519759949109037461947007755453605203187990788727909481604570623765576423050119272028013094031918546860688081293571432933231853093635859087496089605104230942369907659357946995052553080734487588238699554531766438589416125481937005183376913201559348600632032845826535887817109176741811775039028810223255532050368775388128141932071585680392630431368205976434400947141836822747234772377539678474694575262419590288147220562383635969539841857187391266175135559126843416477740406124883717504030193042901869465256329498138046476223358383886901959965093662390653882916965836894912612451782616143988319458995814979874383981842902958191979757765837578942239869108655537979185886742961438265162964887745940777771515061990938819683832138396231519985919468800282581284948708323730807198509192858692599040593152565218828635405908754524849942844874826322075919549097997266014966239829033654702638493471865822211187861699307409281410038329992500164523313430132071256276806095298894913285099768517785712006462654597743558081461999821610271554366084503513380699927152305064731119294068653533999935995907056316222954271364185486626121952562973395864723862616297148061821706631965517402799702911822185554499648610632547570459187852951779943825808376831337586759243039821218990767382937719937249608738386426286057009127019510448740203813652684592488080152611201318702090266054610661956206115720126671265542160817665993060694531157062777445438967787940684930613246412389769548960116905243203989280669219634730835546756946410131237713734676934406746875225078749325181295929988687337215455306600742784923024287934389842789099254745189321649303215561415009328523074234303965194878212855779066272424837611463455957078574767581449034057616162967391043032122160223921375407165023239179435601350556578631996833068840175186769594149068915030124496077166179303230067478837150247844706421016564429241332093325329947760555877630796481425321228618984681621068170507203364587120666383640315797726467153896889743970600239200986829579187800735065651377157929821953485450694767776864033774502131501418410574843862743609111095618583638593730271525953572584026696848196271185586333116158472275950017592791326549980949156920780377420411180564114085935715848683521628618090076790968490771085987839586274068866776377326083000041691005173233336474351584295217838739165550664140907823259285497918981920848068664691286693908392719003027532242559025541503442480912137835613349232918271659037416792434754672631828449351957819392289406486729256801368449285382670554877993918750624720317374063512203302860247290829158447068331475175368262065640218275528290501311691492174812671789534684403599126935406539945945703009419229111372294005983867235459522610833978464148356988240224188386676148745412300786164618768128419222086896417114914453114025344661320538127055392261513001874631424798931441667139319743483177161628724126828736108031482947885088183067142753797464842901473637986051082856243141300336927817184267328816680575236048936785148259640422420268929823565352541632876922537014273204142337200149058988444627186355803953052482669867420763719499243849663522033798491491634328025704377377052512994422740996369248178046410906639480202579057628175455844464254332079330737152288027421704344968509690187929587968097892358254994140915877518074718194128180703086333979270179485615173000412904075060982455340773713106793332074758328928872190589946957763692690851745114195066535696545557165382566342776425581455801967636919200173945932138602071282634177702238410426080290692075226530394395953940019413606660922375003244523812543064752103768405153235668289046185204288375887212017968671335497521594346931752247067857956162599061241625734048691431356626827653534043876520200311534617931986468197239993416457402836936236781946888358858432122041552076654948645259187702536592282983505547707646197302208446045315908420157871023445499549603933148650102102128183232766364909811437628020364220732337923208657407062024169557573312017861252004031621737174147438416512849513740160612012896909554771180193591906693596632904799670248477865216315117380261257720964971174350964260077918334867375330713550675809255318844063165016923765446886619712295426756448177176059797544172302685744420946043072745183260312945432563802139214989238419884417085137138384123206798020033724761317751457321159338851941641350773228421256979210019215501577651719904797277618638813349197879436292984660386399448182828975691694459990542460177585817231513877621736657422177138335133259575069783682781269994580620035091588209027273683301748142154621021847149747298258798950049967297854345091344868417724488573803414191282254779396764600466663471797374604333729203841888406815238040506537722636120963592534540761572283116578413849020497710440039374585049159841527047485504449937389059206222561286823690652410533822428041245144270974967034278900253899913629931073957885670942646601749364325810152178286531043786359815905777064954301870290247109396977331072990874957715979695175879964707963404269154860521458432788271999654540058895302665079437790432868090102626821456483380009760089976655510825432316199752305444236338326453962820068389261514544781672737069216641056281509294988072126174914681806661802452608024075167348699977555338760124878105666373825546648144570964745153605240779842545467369653192021159852438200059788602911163212670455014753747432658229613745769984741278653944421585149261507012648430395231692706413240846187388791302929559727098021032444006508546697206565100988659518242372150377521270540088543623673817048377221554556024943674758500502098383703578986873749925153626342085412783424576336378703416445376593992917149627614672628640446231140497237781533690342665212859920214702603239665330877384425298821132798462391991300071031856833921812778476301178645012763675923452698978643209215634760230610704783265761619621667530843584756855607376590766842834310028332808831293332922966669782313005869690788462084563769273723228930826140073134353371920089485523391942430411260730221098684317735458462483419696297998312700331898452552259095160510690806538414623180964888801160254669486857468478535953654715041234817739135102260055561519645446677749669881430986931354871875186374825783115240426223940042921211633168704440056047161784073062506787713780751034850277761131456813826759124086972647068565362458667462660438967473873866946642577700206240394814414124755356905010955174073275128105905712023036928944577784072946880774995918969354792717148375520725916624633989075957771315236109047679914239829139906639695247258882967550730024179260176548535688965106606217499610604939517263735437284875161046933198200025078565181977641253650813336218721844282573590792839589186544268467054109517224364557023103165721818612991097678494904804291235757965204774505080251036015323269984330780229234738108898914675177784972138579442175147514322557958438563144510006802945716292156563192689542050439022161324729826942176050903604948436998456137265076331593133967325386714638043505837612693417696332636769278283210271693722549394605598856325386053282676905566724405840678099078961455777499142154118915470286534360821764381476474474966191673329337134859942090119988164610868069618869256079728953120765153869087463207014880661407844604480893039514527193766571859919554279721462219329543831685422312472334678840986368024913282149865510986548129427013012841728420443042508282418897535517227144511622021879699908959625738208207960600002317145457164117159362296413756572879039676887048859886385149415750563761084837263661280595953049685731772430077161939963528559035721106223643948355420601126112976538661997794430349805322033827350921095698186919451255535343854962642677436648401686144319251637872698033100394587372248002540180533525905509353551931073002526444044890381626885329511653277077964533230283816862600550076281338815904836620756770668355378774833918612309884754562523047888754682063174324765423738144780923385144965945719812547743824540463193294337663335935498085670680456234994798437152714650494218878382687610104542674734137036456968696766264399660783928812145815022303471088412393141319397938498730554971472091590970815290426911901060934942214311882476403399535623114821875287129337035166724749222460456361496006672118047834088516372335013303208247573996531439574300983990132268467974040682401706776421670851718171342497891294535475947132879673168574634602507066962279852822192467665731662464100217218544185214322582026303758636213906919804385148881194426197058137762516673235801560134366948757173571667020360896953300000005723201156107623303493880875904474310630688883391910286366966110084862137389175233924641019804865843773008631591727022842093228405822435037492906127910229382699010457874000541498226574406607500448210215210701910953546364349946813919240972415654350694266370833201308472562895505146611118251776959267930506697212277574760949060183060606493187205147960885633887730437801787989244384066450917771927849075721795267157649168870046253341685353986740537718816044639976410751485108199508679969357462140951516243028608973351519881096113181234133726999050213190400770136192040883564704437192135740383129333140008890218356406069863469228231030267721292618221626192035704580850245686489774332215040734454890654615024449486834993455916262328539717742403596271039774125458952598186732898506153059453605743597870230998963754945032164469193543171540455479710803356630346324436678486788046946842325369289721063349098250229590669114760719562847056631995737271123197227313978447609367276878901166268393330046120069501742065299084331067102014129640052437767721113077803048272032087593599512562454330719386020992764000044747097570029366472023054960922117793205504420542295748165431379070156095321194451245121246048834489345334935247990208220894738605877673528318605536448886365136310762035790212078083942024688633620768724374875750540131821481631529600481711880853104813084907945097258031765485506008639393875854143041240493914098406329890007070519051033426323115812823351350092181211651839913969502868784987278556462141799515375826955537346472796834657418246949946026494005906546978602100411542176877770320792050062506854008937055742914854648402732489257520486107734049380112479035467957808748856008804223613873087432634764833920452755388900694461284414189162932294502512667297077511339956462501277280993869510423600768247915111992744823028873577992645137697891890713741147462124059393461159395577483528585139614190731034941518649657888745897515122813536010220273537683176304836771929782078339292400370713008710394027812454093429827489543380101900078995108978280884416316307748752454176823504575147004389054568027893791595942569206369203082976408355771354873571868264690768689543040761213211310387986246489627985363886911928996342435876185538938269572276377640381686762926926151850984299149451756436311702238743877916835605108320316722386610640833585234529817869343048946374950119873756765494221388429480141913724434319133083366056554859497218194179040184289468177446422951878831657499636449876158781733779393131149261393213934440190620054407610539092114209012271802448076617085586626928595701549673409949709285653476634984241093284521507225991574351061173344024502253136696833465390854077430113057092835796867632318636830306074260741359095284448711666930908968029717621149850706552227240752990498071806628960192347222662490369850769272109204813458246283086315378666176995656812891569907081882570395302178500558380936585390671862294774531542035110301077435530649945078220424715295244935869265114621340787906570830546448477865037407826968090959310223521994630648771417820727661983550691095311070501292387916779979871242427728297681099942121468636456663116199361547628335175976951901901963726961797359382714337621308366202671758407225560445514356013881687411250353190036973759668454899678751824433006356492658483418409814059617014771661544634254613540830276505796893093437041190684345697662748769041536834093780773650055014913237532794966750690428399497711052370898416433529169941123781429209364161876091366377083945206471413266142473045042689598358467450381841316986628602884352397683327839156713768589219663315226601670805131741283721824801495827514985336529834192507606747583136950588242841477168583736750005097183000567915674646927224884552727384050612917664095416972925172971711517262087667070459375178209680934642846744736278114250128525214251358290426996490707099418952692608663931693215882371568406418778177235719589677758076099408406128896878042179953442958154618759553733679730567411736562407474568966389799373506049274639533823084341610541823834006864627437765824825658975125077824313972082534868353558363959390379666198108871055524848841708475600535625634633206303211911437937491777320353542039600708198448356025965593224963221287550978333259061100466869357487492039568897392607316807280323558213886513637276191822370065531227729331066329621920079317944122249842193664774466033892096269777564553504047608637623622595380603695543604663452370855908767901883888596616343814040818076567350581471526991409985379820714151067119094968947094409107427306964764676824022490001971562983874935661332307925638278962157497817713839407551347581646510143150546766151106991931454291441915597133511121092886615371440817034912499915035195583508856612159609352781216398627757598067617184303268967888890449137160466826657912804646379640207910229765144253487600257991139917543684018986622699253016896868984988979880354734714790431833324342562689274727804828330653276811270920130047147284090391472383291127697541980180868501700692177329615974486923131356434030759831942252506949800098108994117341408381991181236369094381961987249906572080109357180887690226585985315228854234753162293389425304696026002566075208849444696901335604287810166220875325196547792822284009939986485643863906269706823632338368874172006067025536619281786733019444333191609445730319298837884746589879151673266790965996298966289890202015473219011956819236281877502365311095142128700183339758506176131132939422553905520894762397675232666285612579463669763166135803295529298692506979255626651711952434467101308059046707026920457829437218945185691957371227157171635934604343887757606775189050036886997669608337331228596104464459597356834658424503934311263176530321402083722617911796312538145807118278556997103378889975331291259418790220645843751736557273539588785727936929824056659114185101659552380417167289826514734665736315266452417256153336012050643511176048210411217522679615590883560075269954173001383223569104751436334487668270555346820012953403844970420125639006563232429829277238739227302200416465385636550590948759881282257862560386739564962786044112703580412823071449726554359924492174271943347391388437690598841352698418638184131935857048902402566950735688901736747527865128765559135312270431350940570535440005462766746049210518535958917001222605315857436614468401716851796020042745117327301042491049590622705296152427046888330702517039170484496285305328774526555986335147238050239910192660124671109972984343282618303715588653138849052694341378541350388928739361961229666472002303965433610458910357234305560679939372649412458546835672751282742992963502690268647188636495652684622540433889631890242247022442863796599335746567716283798128151429109705760766101596684576076672464293764118135691838462569465406061403208621046468641990391739894771346234958019485330876793116369815037008985078866818505898089329741197686951941425093856820003992559632507956701787887424896553718501326366355089997902627445617872954513140208066038326436149715771928463888222439350942044936794585842107722789813671985151679484980967622606631628842403382581940719289285594032271715953071827618369333424393024807483560848996904040070274688058864404500719792001559942586804214633094364486646128972165310230332919400398755820700581492047398836334331479420747840220503135883257541019952365540270879563220345339374369239155006336659478038611914642473281845657184987084079739543076576901908830662237720855868119364907308256805681325977208196433850425692601231175025903148849515154344546650294400615032677357347939741904520659171142535666086232549153798642054454011653006560617630237701970357569566188055077359622983793733214615215312739511338468626485328187498277993846444609684657443804583305435133980748708470284004004537995794412177403006768768189978012661309024620572867703006161538387591872381218623981652605856562278184238656592978920218477808325800574320845009100306896193396031615975609400995049410570767674762734112010788365531438266388114679269929754593929576892893535781953614663039030745551259981642796692514800910981606158468344475531508461961472576713502374690754036742457875371940272400313424468552218793377357340758895331223984861328107683686427249580963282466376259425202183913149261115730198936001904883130267935016677677775258471149370029486183440669806793373688596376427936340870570626833522650320911637741315028336553457930412766118700344653191943530542612188954588062158142160603530812317130012407920485455430886463290181085012340981178126492282982078771987991713219263639338187563735098015371132865949728971032348564963527903629986149539516427582651897796748480481374422653535811292953951656827804801745695193233681902884849333797282933217129982230259145776297262204479469049437653067904419754750271233911194270193495084405650071701277367199462581615476047779207296600033981398975456088368865275234640098664021258114930463424792868255491790665958040288050682092965792512893407383502513549728158468176762803214610214853078770443187011192139789045908635487402088718098357327404023524978945697555604249315933854400256936651285348347192020154736987525371956639652151100214202202574474881666795192320438357344391209816491331109584447335527159816411493494084675527328294773520973609299122380640367033592533520317935139532878010048136737653757315570605195035836374902055228815439971302559915539180093271038924143201150651384420216032359424985778662345669275561002002521895925647172170243630028681100727831025724804793388105130599577346607368862574921401918014044550117110773735844452577970523152111448616874974747981101337664088692906498770776077064631533452553914281140631805363299970266585624718891065631750271174772850693284784445619044353582656023721361530044666052052707780395254255631329982151687543161830245676212317232285199053610731794801245221891191374480989312082339035737760327091854979614478382207675632202357231361307664319383308793320287097664571152913558506933175082260033005127698027128337139430734858778658702069738499591191247556674729657437556442351287198683465728464676423985550026303966058163784285802790555670212172947054842873823308119070356810158485836995640317011663171585112898183157734775148786149911178311939484556327391023678439344635368150034681501170147319172111238593644748424092394215819847655036496219060853436462500448593609584155133532567991032600337311544624846119647336179857737423630717141923188494530342594937127104231833200020579627232241502368121976558480440416706880314410463755687537859714700741648206460559547227940700235712315063720761527427385526704249102047171449689702571777634472906592621726567786028043992557775500488147428756774093190104588651517965814614313162119168514064751692982452649969063223615282554050386642503072327369529151185264194401565667418532435637336837749754258300851300153653724445272798637851642142050291410917092289937797549905775858238063775534179952546988441209684854251660733809919012817988408998920948727524193576573460054410127769420402822755665302153562962195724087965309307443059113048809152645050887010138512845760895124616460292283811448439974635585128040865590105858866433459747931464869603524561558003054751161600039162076345102853504323366984263994960983312103775805936417728231454176275485520255719600620160911056287241247436339926702999343448683406512831017597898813445582784925043549690441389537963436805243683833917304668528769136176274076631067080235422531246810682026113485921370159560217335315545428856520962527958692922565598850924767747308509912053254957527962485534888963965044403877043431456915303082216435280698743073451324830523039769973474789105801303210867073122994046688382150128461346039780750622753186809596251809363043810023960699216484573568066580532795483672357239224801389526358788241022043987171851513364066646637119761820715378195781929098650064672121791460481955464254686932060350857554470862144504228606832116617840499947657018047535774542802166725866016022288350656119883161819187913130995984494856730522693475211850449338908149935530003566505705032435926444981336910923007961218540482556255599498963043169646538343412814771096978583251627747886881116822265903674133129239020116540743839601171361505767192070904505441412860275987637196005540124607142810556004361421566508279807416713642100792111435235824204859001104311781728579089713338657892096193634127471021724312585713566249593018922314017817249723845093247377717075208572612278469195958660657044261437173275461668071863599101883341294612830587660847699969951675663030184628563521503490294266969545550102077919248858570556255858434983427561973263287876395858125828746762380236738284951079880613694691242880027069315958430304532766381122156957961793230350718986567560176788888002164456894458318671462334910173947658456026298787334959174202723992715055732530302905446708538427723543607019269010230604539352461928425103729294687415389466980108744126808046358560193936294812876621421928560804884724783583670361092239928571769994194203066256696170014224263638935166342088019054752836750408666654424552935935414224246354472172957710811708309880203279787013197704125121491926281809068591150021788864867310509814027970737880046236077005841423054320163994248748143257121708428841206038896259706143631694517096640421529190831087276185468382921942066183664326243892653171168448596720685188672996353340623135941181017067072394734085659894460620513766262765310167995426756837421229684061333587198320699273467725944122781129434158940051720972370331143298279451064403838069241631545491827981378117604394020083741007712362117741765477105871250537466393720442511144995807466689223998716770129922181206043293085698221736926404600848198906342988629345742736758844414120200225748543073473109429240239407036722364196916847647422418795516376954337207162913323906518441859725649309253083979366138776263634073982013627296034974151631908776614676469030897162345771349990057673273376452908997372766866914638477603035544188973811091671461411408856075968695442946170065918408295421098442281472750004361750007108281779244248059624344959048421242657928084534397951035061030171370053811159504201483477058204833571215366516280473279446353206580178136437767373819349323988571945269437199314977566334586867695829132898024171153093047302988889475040717474026143499605931011739605095930578921241688474289341432379352349789696639513323916316690672041751739052319223035278512163310675443589810621829663978316641411826466450383554227889818624202999923945762506259255378371423879115594463720426906772451900938638032492542754412975333017133017991260927857630767492852431238906880955235985746055717215658820584608360956815051972906973523714126555711248696545229877825084094649651766810124372491651288336093796236064175712496039796129402293672017712187613017508722962388644917028241810875221074800987756172490479056998369422100754946562344124489177225047782641984293168318408523028037283668704969974710486330164544752895006562993153862539209422536482807645209091957954492866710556227057103066204473096863905433278356645838532519863897369911757640794004884422879857213993245940067562644771021924089761006582197495332576313000381222458686235387114955236238871909178255292491036287390455755038729428677912377124639979564533911687842967202445741649720992886659924361546327430618117636241276966922078268130780000053501878453194677850728623778129002191604429377297339652829275806089371373598916822808905072565991243964342987635514816900569438665450488143825053749331741669046992721642468779598761424829381153640365703782692567971102715117377587141977553927563905468870960690527327650668881489026601474565249124546455270500702656977729673378790117978365219344497566301738630757758546334195164496108756903126267105608278007530380066899826363983076734428311139320744837562139160440692862586553641344537436192845267062225812162084552946028927357495103758213028955140890659385411335882750080233109227803906572069228922417183760217019491823778620973198678148327678187133827055118787757325968759129226584092440988700172172157905314436710969388927077612213833773042235334216354303406269337798319253604795147178430175477776256902215217437447232031124749966532729379980502877529729990052358809273650049492066089176356903713072552538294941461422723275949069854008000650288968151602849295927612097348438274247749301237658216955177926412750296184006543375228693420693594451504366435077433705109563008666485172838930792831022957445658953114270627147076988023275450049350823571112470546101689605088822774050374136492190267418654552627454176767376372424928422290807433841467540003265192334438119987783229176851848604507285987541533099567029255503930828779094212779659492417080857863626561449902588440892261575370088114440421125303607042490437748670283874156231780303053104456984527256024184625815816609506098469656412060584556321024553773092010812973257364963228976380791559630067735300993724959253889378171468540378392498638299971793204877944143213601508968948846522948456483380461036694235625437831909008206804404856904037902852781823270019937162044732075819521596378993254722639715049231296570676310456738447394360954927557730607727798037870734959422572252173926746307717283353180721108194268571223334456139672308829670613243156723070919190883097101486828715841946106396783601059722642635037237073963115593505095818887744741263158564478881202712332643658508756375413507327773731531127032025230651337655051002405830256451465029445157760658778873013447910702957176195443824776952755282758976002129430053204223835847174439049124074548022803116759742824190474596911196582282350925058452875601883026049032694255091816174078683198501296775415581972075818175331109727201476361768308809879573755608348219126564125290029288806280386461762749885564810135882591347904144498882907137759286488032062492673154805877256342250369024309655440622463129210926143235509572877251500355678677834517214218288905428334933928467623824489797944358104665991053803902948402918978633244250164797076070058533817926705549118246682865471169104357460780748425399587903778838733518049842827610842879241393046000256238943412918669823679300198555288890720059557125645212371981955682875009778096742544637942161907778838477550221285363930114461331257847703934782955232789680135325243102358420966960485486882026863885516623051291761184281598741239418820141096782471766281850819171962371583211137177960807622163781198714673391532957964388278115778445254000703857151236696541358410450156085982863545081196738615579060027532772209305673654365843422134895648619587466493346003675007640077713596737983456606285994048397017383301426147365872560363040384285720059816552986323352862791584544362070516256994591425275318001004216016744818326509252827366251201047522139828035080950811785580954232022442971092884771419568917697770837792091233748700607359319797104208053928588080747165251941898847838286779961696202524029563144010203745613013155316743412615598132103733848146215482582144370757663521848667314949694944902452532357656850620813672537971556589516192036373870618393158842031552483909614356733563814982839657050298057104396084758464028737559135947542454068269251465642829748004906250672685413790352000654074603424434323389094556933080287585333676696469892106352239978123389266783145490393894285772059993778024689921068535314351721404343135100541112609097313215691876968610588105875114059379835796989073615608711621626239707950780700759265768666774629365263257533608522413942420049610928802154336069769788755569704069609027639392524647456341580709325937840234393202516366239971688102174055658946110169936651751564885999885762391779674363385263495735116788061547919309623085675245152493709417577286259543942617799694947630314536448225355345581178123259582392399703365028218652856754672819122626222591753773658131550867738984015013845509302994929607270915458819178336827747881613101085788745844285059394701729423737548886875172342689350848503601586218091613624969801172859312196671774619264563284941487493085056690406904104711164860363257877531483052602079315765708153135736269385301437238999584867089780140191818762757094745968373674304370993755978827200768644178805531139716808035739251376020760455486508355535606888126243876571557789793181637918883890226603031033914141971803218085759141994817890978162065618311825639811597733846975531637333435502735926751430256825810619191846736788886706220006881895942905802625290120402547835008020968148392263206931967758978127159608110613867555552932641257542697301529456001496049163987582353126882970633069909063464472394994191827990854351022443317446134894288061009182513717330782316160306605484128323797723642036528905427614051597658143311939252410873894399632597849801843493062482470048058360623086601921223911892541622461360924248850068038498828083853066134920645358036033076074971302032420666003762675916775666744407417343798364759697232079153604125539868721855114727111994791114364105697987243593450326214447473839197454898823644522110354931049097998112409554820664632680951217030758564442123708241038030455637919812125170367982627590072619411561672521752270972949165406598125101265572795280480629133793733564716168402638296812955122019826226525005124451606427669304008056107917571746442329878553485284098960878811416457752087405466178262392389182764535959350839080367472011716011182960568004269949714887403942711636905584651869865051059351343544384284023798813909072426875883105472680605188690042178282051465019272642253592980814642657349978724475739646241154365930335387272500883811231290676450093094059316224585625280201665274492949938641112424447578201038229567642554300137333527845868670470654021288509890649531342496310785538366071037087641041515113160065253891136044706734438835867285935496716284504464945556292216898236231061536298274630144237941150411959251036906995901426512082321838368391865543444548635657591553113146735392569465193293679180231935098696281414279637137913627692749252754332730424937890957157079860369489656647294883494037313835902965087074387426760695531119643065748898473539005121981829573189785374929591449215105972979212796454740331615653563640525521893724628277849089098750531063768810928052289903763106909064033234644612862094483340099429262769117204101540560185738972821335817108594957842926819629262367440056351910175427734648394336627016840538852790924218326818347482791003760612514272007525088939044704462132875892473782602345381376506423631918908397943555787642219141825837679850881181836125374973988897691497327855513788913594513051818849075577960090269035119858746260999662550729366014952698936520978705756214945883576156644212290544726811281024499735119083871858614192615136723331020624654505863410914925447403772000914736135553047477942947886577923197804549126304733670530382873664331003625218597828420448127438582507067859134684866948750342470958261291603469951031519391611453725750433956076634931578951897752137873631107945910798351890596740773079078362157844830103018282734165221879434481441068040174408765399401963879496563447642419648387703504768980905164645480128301463324150595293096047175800346847856671064814176054163857764593370423669921720639354016134914103308656586906324831468986992246916893727341806745286628149556195381723950130590655948660178181142669370329976303746991513698271450687613858628597386134753707923449305069630492555944558206918008368419374820714324003651234280545694954589588599919917100567827212296426288138534767319672496098325253910872315472835636889316461083507514681192592240287292538395424596144065020901598282049048155507446389738914698895751401371626697125820628825138103848346207622522243142619817322466005783766111031192313249793466595457664650515087645467994325305560180662736904331909517078714013247215197886986695454417770238111826008727912718891491697217609787254744179992395907372768177768427567917713730752842174749569216045694697083462789622534370820940944253023590436649772502185396826784973165071878012257989433656641706770713595831471349980321680692327656599585030446303629041948509092826565519917211466580536543690869989727275726747653788292141204171164104858804063027653853759617740474539501536295372438446278929099090810869095095964574045019645700674574458784058419927222603391487437794831385996164885971111292440676085856516957797023918642231405646821013086133585806975171086511139838792675736129398139402071429597889715887584575659480463080308199033102258957497315783978853934149949403530582367105973887050387549780607645609045333866993705627847180274406437888482874331323874555761271988025958910355885397751834349662013181215383510710813849597416827421314750840420082543659228044761053725312137933477189679684316811663755705798101326015105469771525696437431363372074768442763052277880813261908395429435616257560916669627145063296844850656561474871801525607430958847832290418286813326521942963240699553277177237723531719676974577967278895922692873856020115075393548592064197073030067274504084405058066468103050541454206914913092873838019181583930078034915471296231129399301514529259959895299233888082226104084688590789322495518594564939440822821558980774446245588333652362828661475543252775620985689347169176928330734223851360583564973561832148541460282014154780970308891763617635290971002180574753078857823011237265124326044815871067675090680185443957351128751431097642910771494446182794818192964928127734343919405588837247306070324497458661403999148650241441736466630475635132666697188763366888623482625161562767010218999848503827804358934584332396733711862463513170616192162868089659002336417457675261029841726079174306922826875889607901703669920204183416231303609532690370223996731828772517017427078700225182288894593607973935620301651163169782306813940097582964562657328782652414037572073057291571894377681379459913114209998833918412120500911552198617462428118750652645908091219363986640273157812984258257719851896771762361273118905133297968492354940292577272877720631188378041001256809708588122293709877591864767811500195917212121415863420536698253756336592012420938116584157959783522612625336045139049599911436506962239079107478018120351053465395701085502658389979749320700818849895187435604861438633605880017669541785783452529196836127484390614098783096791371687376603670992176537425431850118119187796383666327638079202275065027276562959522484924990818042511743755469727173181107231390769528512886023571094976959213090627016851438657809009735538856684276251095877891008446369798037673552178433146823922794278024321609014783804186404320071654420196985099225021059447026591145254937144455363207650595305273304450278939986950706518314670617781591532368337748030702747221547592727329084262335090383005009170053128027994250262039281439207440972882229104180983907412117530196302938757873542197418538118781263713056515574545039076042806356048008167150798687502380666627597247264744249797508690342648619341134609871119995970293260075235626506411535130835440808297236699300565380082975231785240524675020904459396692167026122806804696665146021591096087805820555858153871426220181707165502204274669850796372630386423475006415260616799876806024485005789572443044552566193673176181888514084647581251900631490734010412541915158379228382476179211964010100998958743481948402714070050997597191736732754736310826278790892879573024130865496522331545612727843936694101971569820406716224482471694170757070411405701814643645584618318275346305672370909890442727475494359726676318007124312435619551568277371105874700803820841206251326826927327798884002926622644634160254294935715692183757660356156710083679187198039034514947297609903511265752831872231896383954503078188899205842333700726291052593219842441766696754302120136815441042032619596895883240571438745319269860739061378535634876878819856311979149114883145719188306209054227618743911324473779753640399989929997757868163546038379057060040222535153433889565174325809749301753667293560790889526990623330008788314821856357867537551044895283055797907515565034320645404129395964309503683852005097656639827304053034685549285107505693410980544944536221719017860234912035396440657656592416562532780578820940225453244180424964709230501398353292010754968857168086691222381347098558382839260585404839318109291646297540606965385349155824445408262287109133398334970569826352390910385175193415936140810720892028775366580269575910222215903023867527425813533551024927806580539951852811008434445134041471442906654455655414596874876322956583346759637660219272697552345352120834189300594807171383057696769556467017980764195608456444066823352731591351353193700478067382639572145187828696166356693523380855023802586331134540318429562126852315623735482825030648663105770840473497889649326007657362038587476893112762706353612421351182875644839150698893919630076136936586533757690997733497501616624025902035057248143381201651965297959282671327944811971793922730303702526898125354706566756161381467184828282658079767052680586813433972429254053917692904059545502078273069451430346184176003323771318713628633748075984427512040311422785837414528341033069003054214060995389999408070502934646035299274587477432512059889299751162047445625084973885521576728824741461175323222426742606662907132210552351532957695184130548246382028175024214196438407180208856964203657249845096923015132161008686875154707400990148992421509477133249213631148796269127537564040197954038862251949189758962537788937085161500807425285365422106975362218367614706220316458289073882482392123575041810500446173693041683025818933515438286537198309624264873570457909957022309408454062755018254859973320868153544666155224230397637561089217037391483399075138491905444394605975066569703298598051891268095289349616704200269726071512241957764699326147060264975478229676021292255858038209514494522199503167652164971520554449788274820961141369483962247533822868908063649900381433876349293277483069173176601205633106495986241116630458177508007291115516061984150949984674147732113803726213882745661170423962363882485451902033938211694789842692669817258500851784976999838209960337932983288894596430790212035021789455166692610352798471921150806302086537688766559322261000399524891401519477503334074980148898062518073910466675545657234364670563123170413520158749979439601979839688696758140348124219629706897194714568670322022705484440351970790482914558752856032579882208635826116168967897595931423686854881886626045892402308920987578497167079387134679792773016085125852769779300648749180463551127767179397977329273690141822501603723359653841997653750491606596870166653286207839209157464314403638728942534873358563080324900649789474172300128262775576449411543163015637573809905137032899251425719699282350989329582683666362233012501823400103351738080419288443903330173467089071334530126508239548294897469866312721613774860691544439613529753112520221367238682613838995003522615665262964991548782257850084896278918014304769225148898151270169087433118464827853493007792720111108697979532710412972947408331706225600818094989725781491469047748063382153291651569063310464967439393032183372967823101587981334007667406345663120129013899481418456985103210314939007484956803861666921385045135853641864771543301520798246573742769049727984493488972229626543377272287769040532804470987440742762757226697155150339942257732451161995486356173404401364099387272021393450744782270996480199976984798218674202586690712883051840532322105505128467245742037066350875702953815364022681896429902829550759036520930006967153754937359216403776095737121467079896204395907298438511951028957586025423382905299000622297392765597197434864536190668181332453727774415919899401734876383746770271559610806878935137916182223585896865779089766485972442432840781746509635536964619193738861508436966501222413177817270106554617047856119424640224453155474200360612661806780571864247434826423851034757010943931983951599093358363810895602953578920839713398243179506740047809640737072723274657438990932920343246297697999627698110063540696669657992018138290831921362133375552970958437953093325808356464799436205072440504558052128103043916525616018959360716032776072679593398194698739249371339337626411037634012578532699629855838386198516467329351095226840274895414724553959538334618465800681837288259421608534945275735394658962701755278217634790921589716492750917479416373746808997336016837372960284837398964797463070952818473961637194566939050822331474609673523099235667215009627260788556162408949508696269950343957341382893963967322485790145340203052551519958296548443359225545179879495533025146987372252757100596709138845855591232269097421345510420951527837990180653145700005739846696540096054014611508394029132571125504660746069542571929449324650081718774659992741147959092768479871167947527944052141706563883130378623795127014180302867279293095212294595023640123527215312020393382827874794449271645064735044338352344408649558177650234432428243606414612301424295542829601876047304852341943072147387843458119593529099456147482435400068225528069810234298059149820032466370435027411471516894249996817711156380773153445756261913506363021652083550308665885045440083016087279777775291559950916381780435674129630630103987951170572609346514924499272794583017156762576403952945712007076136875976061547144960270010389125979688695984325659677847198475942636900304258608625033390998295033578604256026329504909786425836536919761838304836244186392919458551138300700167264416706606911630845490474068441220610572786773785403800554020672238921800971691954814222779174621675510434599159451660698522239825859698122567975651904788622265247290762459367042749848990784464278547537079698672777883030350966241926638183784970540824751357616814752995916056307541335836656698032183441407188162919600390010647283668395489425311325189851105806555463762655242385996711018433512649487101836607171798102167352800693706221606828972231714919056101242611544787730045018575688014311306717213769199735036896473613887018488756289818073799974125187824980342842961088037602635610459114577040357230964999800943730434787620890735412824845206289239186343947659016890054059077106197530184422103259694723792514343277769378743304223237981959197091047808063426478220738859436269063162799983145411056497192605895122294649283722046541261273572370157891059032361654628787299520097560316064104812246195455531544416613080720500977483073557084265058450539123312907035372775986542319810084343647224696892860683009499645061983769410143371461356293797663997598790536603666459787557402571722354467523402421790292900836125263295995559737069100554805797119831521652903901239064200030601566442994356642390629563327914156762659222356340206508841841791154324374469098649055785890902299686027598189777328205247924160600679396356419302496126691250108023472451526556366608355717920973111296294943136373090459499791643472117180796904347065537266724320059512178456969251454549947316951581846028300512056385837796239273110052369251005102201499251503346270745504588137410242965088106021889961760972737763896985444280478819651280884091547889094973106781505988080475272828479682147550021061306409903833698715413036630854329660436130880867301280937907228882844845613778138807788326195087480148283745989321845993583400296662862704708791169605434419380075944368545069820529020315849233029489047098265250504161596275010458666996785492234661161414376427951063805387964856433423819954797394839621747221581130400070738286009608634628765329005033648381603981394755826192286599989985942935224141957818901616866251757537779977552380717337049131715349368683177747506040051935703801446434403970334232351700615414707618872943425857523139931848779245261422732865033537128920587245846284271910663825278222980228871119789779191766961334912443255132455547049750696906658959925037383194817530122248280645328848593006226998244316935719967276697738140902319029213838641684522736490356881742975100262555347823792529302311862107822910641338415902602472542741502738567446330106416591918004503397459491085238689419216508821412727588737260900546032517610850919108501841508052340035478725020568052108034319587495860250351023570399096738216489277396775423965512466825958638723508507123008702356220575471087062312907209742999470122112124317584894988662687852761209549035675434097632373718951177736740209338039337769761056630091725861825584220867300295897729334720910823094229159463544584962202329057877080151230254794427055904730022271417868208408094368209418484969318211628516196148145437188571284887664358697166590033355290228057040925251940494304857539641698692453334877687683356474599499804366215971000250601751319427936821250628862966303379703699443431982168943362434890833886678400635982297890797671844932554644816343861116444788162495663749362380505407913201996433246680944794731214473237155136851080307578645294501071758676676998151872364296982903907077808983908140477359745510570891809382312877574112290502744539350503811184553355555095626837552130096521983083371268776254769277154790684295954668518594823032993848088662235943320417749118905069111295514855826565752836612111827324603728865394907861143432157975020730019864130788829964887942545299531084850414023628193963593997012125411230856773923071433439492733631946219964588975809590548133028996812629691479600407275483783047564501616515587791047122898530782011657196629096900670444473843529966419587708424242469336510512368225819029216021634468643408283417196109073291781742114103475452511030276250999006422434449890218284829501513673038853641712991887552654683711376839407934290757258705100537125854975135185147020394470035072342844516022588119747475009140126422522056824925395282619358029648092252252061674311933519534155373062966264717844046889001628444168511255624647132025137050504270891378138915796501078524343456581412234984783715612490117228348124479782811691366479414722593556300009835820489746306918518845038441007343993179791243010153873124642919013277884739379078924309174974539401980068950397911802951320813263801483983092345849487901984310535210725853921981446215596269016626324398093859334292020841397371111891155620030694782892382880646783868296692349159995065789895585985369031560985064483697387110613459457658674690123853263226851368427573463248103679767900764137698254484377597138258994460171865575241199572970046158552503617651699673141302028244421734662632603606515735897878603935095532023226483772830115571826857135618752142023696510859850233533766363060828387769407615171952749859623140430696523120079552136663743311933546167761279405766953500930580327872916805405655136863589502734174060860625211059710771689484725284121154961033580633264693160399331633232060387202228121261217587315863902774993029219311515413090517423501816423820461995074048468088721836296021597297917026553287457021221167563136418360931622701162105729414012967247486647449317901630796666840959333734243741778988247624109981450106792037184894275881019181486210451310473317596580017588742886779953303233191022901191821986913188965589632777416842872499387607104744249603896100094423768770724278339795158198206005931243234927731751715078604323369362274228934792245684943755606055912950823002935019631132565716459243655222291923478342232093802528916180429552789593386828156565268600920757682866793535648828191059760890563130022238262919788182274725847984342958062745248542763496291387864731605105865010609299852330181811888824558150317905021949044668046199699473670517996821890423533590502524513371414320553539921554351133139775498414438680402477883167857344909394529221954506718625693128405810400660068422282049092130256995063488880870683517676639034848129509516991359345530914789175787126959739539077341590186824054221302935998183830849135819173269939324415478183691296315628361868105992212212617816605585740274418356670154808042013608067439235291866041191077280979115600263913393564725436282722640937713642019274741798031116049073297700267425325248440430106278229235310333571598921191713166664226847493909377390435847328301147558375117043710680094643017872384859180296257308991602675721331379451399990316917480427533560372957897763503203881814008521391456922207070312837626155653158113038282006507371286538691218609292382783609007621104242634697648070941717093463677050253573506557198051784705696597622203363878218569984234054746950868629723122268104792466100171928759302635854415687064020045453502537083717851167815991490791832657473437647978076203724622763094420313284553925464054319348149223768948285798310644332914394003207225959297162554193639672138685372718900503902606453641403020200858965172014819756469931120456693589923754656988315502397022914484268326951781118623246867516037222085596837893337763220488882211590941682097444386576784614970826508725138998378897628009811929083941907227595092841336757263948098248224890725542040455438449738956118821099536755566276299137622567365152430683013968959664702617869985296216615494009330164165401821660737473778194560762978720248641296227945418393970642700565289895903681000808713206691638393284935123520150870235409813732822007667141544367970711689383065247417299824698390249733393518285156839535208256562365400676338098860020808591416100845161760488430725559392404073701635462431453372633250139882481252553613429764805302926126728699280234691557042368384371870238559993059281834621614812062895302507979090647760196077565878034581280727571506373242981164818317737203383754153237536224146998069670138895619300736680445051355374761540946267680751917641656795065630518654811844857332894347282790850431080179999661973176522728772202145644783513362054012928012942498932588921348366738842775994077838991921475536548548345935261181805787395374190776986212017044241476660165295476850755326483354428479287601541640915648753173536749937072270047600419373472583918635906495227673792910430685217753808092510737894805797739466170464192944962534122883240547221778839673808698424767539007048605326774300272559723664414871994207488322545816188997514631968955969683934182939701967382118925161534083552516142631033248880454441196943154338063455565193887295738550358601031099157390212518659572234896348562938330527068992310346842119629281392241976574428865430177745428595587053749284940847990204682190086558007019205910260702560707391679992330215327768084076116952119490522504210664468841986513946096166218879021948478051541052703869906417996141887554102065337582071670492537695456688750908016442952579659531664225714492263309562156736884780109141834993078066076975100851370694863051283351549361317133982014478326509622865743544136107622165307266007230999473580004816510474543850020230377432772807366542348792766171497633186311971834133806034875243705445895498976017300091777634964059052754940698304090319752803843100222627927835584849174410755044592062950782758728395039121567205235181503592549624562374666783629442606339897865126893883552964292692950963106820593403280364376880322359649047391732188302820855776878897578776420570693605093867007094393748657241811879400160070510985909610356399596125280236359944052601937087787742857128492923605817375764551311369283259891127313504434560424520086461867764093719093722741712077402697102441330737389680632699736273769578822268456686360528600532782599261378785220181821895655599003859775059020140659475810624967477486570512518376642335301528631385098908625081618229119001912252182095911286857690595258088958834276545569133823886933153251382006373148487838621119652455804619186898720939879184300169576683477253700252694384439066452162498908304278728131156070177341585750832515857337500819519519068211495915913845304869509536961906824708540497721200245886295040210838049596594809298043959636298575093726954509502176202252702059783779262568827362454486666945276417954338119622007213720755742890982933606177131997154739434116004219832006790394498252272444505999110048979202468198404892208756167128168107738989907289147164084432418357994616762156721235106775362298828373194722128443299214528944901610091271042705516360723724260417601634658730867651614061788687063781671118077729960916119380620923289732017316705091782044790979609144343654270702031025174520461005803663044006781584139284398387151286817711691437231563807162358820395270122833357970438237204225371052681704938110857646847772179764853488116332947531854630464591620275177685322601069738521863324211747076728580239835572404031217455879198125711134545581043301534600788381978257163168833173949962814171770777435656333567425414768031608967064410766962843692104074362838194118321912242312885724471590228455868449287539124414064150789248772975440048505571603014152519410227924837832167099292594184845646219250670728759447337286337177889403518322371208271614879234809209948589487008910270405561995426308394073936059168331429954315571092735267228286590342221369425583828284091748394838912980832297111762292111116402234874423375999195622055017220658854003579330244810477273059783628164441679027417110210466593054747645104687164012828611251836654619546781389475807118980240390778820897612135884126445168688124802072993759392481019948956077404161804719687990479249752699536761150669769193351831475747142146803626994646456153908534709370758913987114018741226447011278748066568139997513302908348223740653020862015307300371123716899900851238524415397369788164706526065904312755941535752982607293234877952393329266298959627363767266811012399536165555628227265319284326098788199817289742513756316619095754988845276461587743041869355831818828386811790986105453239946438809552480910960645225175036640142960568473449741797833292852958647520585239068093353627007718910643846779351725619814427877133180772315312593080813836189743352089121255138625829713696425008455055729785849820951376392117761450709039486359678893990137086897711286124168320328043008694191865539152197702489008417565391933079438164355829460527993649375181755813808694145970857802185661768276139448062676219991695650956627671853831257348808281793511502759140667214595473916025406757940785569892531099297691720127068100865509101117956346664733630578357168310726240738968184144752985854689995277134842085050279013749688169100923149491786021555140079190802813783718301090042734969279952957739532320982286348024561554711951454523498064375374355112796999902786821692669130836291938550137000145424334858042595629269833399240696192105649576685254251461840751865537515382437746676729734223590830570800046007217853172646521343488168930767072207595236389609311866179457021500901723441751164643639368798114692596303795186838717087533165996190349387896741171411270808501133049340270542002076917471326805422803199729174725127420284140171618778116053275322500157772506869573714068398802908497586406157352937818887319626357732106641743801036382843084359060826297261496589859746511278595606806375305795638619078880167120988209944904924572586432474823309487955037707786073330078112945831302989535061243582897341794197384428033081358408447724655903884145533779647157535054312387605089444596445154056372072979581991874706879441384721756668621394732989872164088134907553456248877478232079407796966940329155458433287852193272861237212098230622979444046477792637640863063424474963028101419149115716544422247013344570848927259602665428950259285043571859250111611761127329158207480390886397263973268154833484157832602470256793808436635654791270596027007220681205475977638864549286640493151212423871422462474742685244879154626510567931642603516463547002493681393738539313519130802596445245768705691206287646158186393913650535776717107897700589529166206254340595702374085441269660422038399680389572495627750421096701227404703257255699609402481344517625540515265885240338842373565962983352439487194239646089752057112243046876231993539334800489985601836601719705496404625778941220946988547768725452106399416122304681633040683992261301443261220854564741941953947902820432256903007297280846742008049507892432022476542744159148377423601763438923520581485226016723504475674106569955717385746806292285672725436281107384473604916731303554552985120059164052706576885296024570485923167123422774832940607904820640389838045679785572343966929006836140475360872705031708999701772223285414127493465396808241172943969050858490338416435153387952983876696077974874164942920425392940884747915696745177075781576882322562813297735782780302086216430450499113826672718733778967412628042620145083440876193175699127989034351116381248915743175875139482427149008952213134374172999138181514143637097908810511943093448645689403759216471897556692969017571713062975384222985003711818539051770530394962297550868709117868589619704485787056023876637628323424314357054030766568868226717360214036054209790265111839607652858986074656565388468578619995338003038496805327900342164572548302633571151967453761289595944457500218107171431478633610961594756048423780862012950526188793758277478422186100959675719180804825130570919108972515763625444179589094576388518616755440408678579135231346008852762807970839916315307789302117045255284816773189983101176235691464464061086234465619871224754287874300048058707490914105998881428719140676264085052130143999564852800403965582634517859661716378130920013861158211705367147111474548917371929649942482339212043517018724294668980165958315786829982772689707178620182507083699595704033677651928957803984968212556254083331141979028526632559517563378077870234439004237008487307216217770262893864751391420159315887875443767066648988887377879627751315886675384002377862105431282990960004572977192148338437334523443013597341899177087783958523669469766958419041017374663809597555234911605526442989186900615973843916502324933302522887231310169075932953657175031095829324750367998317646312397566406772660693414722683446546985763541143577162487256524571359994962941415300833677290356994864069671689236362532676741323985677808664109717108842599184352965344363941980983757528143453825652140140022393528233631748170349184556085731236969796249765404492544647040305473567844268215262258809934950902438608064527916587653400577296591379238669256889680303285842056393514865418431721890427463098397960270261888671790934586663117353098012188696869303988741605337754957698613398163329561674855471682413441962376627022448160271754914173384596695986810348482950431692990291380889305635210363275460851785176849654168702756456620163047396771523856608066778766644451030359665046687059555661974359655887834350792858186984505938860534344687372446735770853546261771808749783743081524260160968835072223222947930508552609017163128281232719962295231731089884651947677164646638377515897666893517788599449006419960816054697025652055118230641007417886014486037905186298577024722530233170221093942817347218891903416231315305123269354187875708162392053945094547924024838079081732708778775101544890272508669896254344997170838750189861884018436088815055069349197577352799850929123289543200129734760157911292407302345919030697199765532161090138592881198311104779115143392968809335835725971196886187838694697904107040311885418535245555353470948403016825379265787190145226210710594561269294031141385679268782422098051609336228090084784283982163865462290754316690695123107499312052314308329894652879023502502213443147467690446993210813911548319551373299998251051180956020863916308514764812156428902017609012488817189672597181398815982830905952760152246632242811375535945311417653640164273692403991229997802074422373343365241848097079625308882627948420162739533538811947633904625865900362600568409928376648403476750005957808163604755131117786426271064073115311250109164631440813466567858557270303577493164537908465877483215433145700728293453037796709841475628951016316991684633680444530979653142417863536558877004521239134315933227529174703874234073342723406685291303042557951848717250492785525048822183052289373414599753631100356003136611266900850981697886896119183374686899453236406695650424045575047214924328564389506801385129895773739422534209750716216299724624447621798855916854312234479034378540199010499881290394052362441905264225434215312038062965804372497421793421002665010330282503822246304363298435167830283735883435592193004065037146652045968042625916141112902154235280897663713785740408711853246308090417952952327170585440557621789330419715333616116171499453184578221164883544406942544310960779066362210487740994422432271079793179373263337499745559733925894856180665637677863286544457294041680601885904687761054846732807790147715671948813525092275400726742080906992231843744347873037043664679228406779388050839762423007640030235613203772663246741983163741646337493450480468359693959133199811805726668252640446426950066990231414653006761940881292023134303091061846775091091430802018411458015510094595845198289366760271675468135628543716966965903380490202412858948787152558602973732384293623477371069088040210265638788800993813676855228071261934656072221644574577594331912808605951214636549455541450203629993306672057232496032438982866591711564765471139774810615477443033200464426953528559431387308933978809474013863707569543489984445088008791250120414711664222772654387090362160251722783601198599690612094438534935189003412513305353334477077111239809664581878138579880059503482506395083009567691286407525891700809089095794693203756563651729431677567598286335569517045377850687075396465177461493016130896209305722316352565979030348766566840797797269068651205874144403276321818717245618275996913778109433328445600784528770666673765393532883572416123366958136450533518668750123707664902325637646617402873918040308607790751879349997524089267656223175770572406013971650238302549472496361148220969924665329064306020565849315602207823286709085760855375160263261103387685338054404051211023637115711951770618474461861225022589626755780075049919333154934877314685220297559414021553467889301385145954743827719098056561585904034180368516684408410273897812136808438654098996946603076657853340482189453089264527056569016105721653360283641372774535933062884844283350897423576382057268089026503484976152497248601309948806886956228017442255024316054403199387364145342194842565371176166150102186932973053733526029796553505252026657525315653400346881399234499685674232168693978373055942181723881291586049553395193171698334121617090928348394204539375714173990102196463789137931786392891716199165909192853964407121838249072626141348261373138733425018384648502769273090482052208148924078928134001258969308052206124986084810302059913200061430054296964567869189426568606958758238602606427361237812397925693678791268129015266392445692460967150164270948610422485916124913216696905833910782021643610022535379327612323477985253692471639784966549863036721441507363017111336758880469517018856740957870322011863523789783275364671237829780478060249603772006848522022478411566106715498092684122898670015694697800263680639677034308573528100671456270359739038073422330072574874578690790841430378464737121411085716007545750958056366271191504484400081090116025916894016116425430851929501222235688629269883247403809237744853157947256799371530114850040553596057001496277960683026198437632055738107232539216950928269537995333927336223368095850323643021820063127750194719385102426882652417807298277340977630868869008859375325043454779430233689894919502559288420799651420752450405215700341449251800316615461880499845493086745219959612705887030887665834955732523247956036815877719708823444083013228816741364442510738686025304856540765860082110620450463352701837868361734813644192580933394252167036422484755020024845396763763179362380696057593915268402692031639042877474060884742566558620238373206029217273459010944187497835075296498574244839936904269015748110686009084551172953467651353113481579378213736478108561343114390579140459264654187820234928222168999612705995731192882331245506330837772591454555894106491895103246881231022632947988360886802991205098356135891107430476698537586101414261352762180673428829919116960402689606883314053890284980043099202948666310791642796341898801294942126195243487100443659253544206456890989717649416868023592213518409652038303213802746543590720211148174878529165954846308097123587292018691101532442159959981863046336531990109107161255277949509634712013134945103545303602956173757085328266899841828465634681825961206992876267871430388701989453367545426099452132757568865187002304230780591731828591851490444652227309577079961714083388233367693754780046309449631254186881368815011148140266037759403305293915451998477082722529494901380302981545484146409060071399151804703263879092427496025088771309071140414599475454156386943449815039747966484079940814873856594891674953268711423761021481163027513473701739921979398646150223901201108148546265656555616087181733531909196002370246511892669011309767511307493697054107376378945042252555695371501053698037245399503072719577604639778252905381785236676312494860547051480252300125052207904327718332142842376725223330884534975953982358804989327655407281561748677889725048267620840788923097857331316418939122803756521392606485522620599239776918047976693271827090748571904217652837801079422889817891855083059757755062934004923653302817566628989646339228212027645420838325579571033759838304677072264618742162593101154401605013194551662920458422898317495077198567935870178530773830544939636378647020036827096647000702305349881107621400233629285087223397318131581824030401510430319198590591579266913477476608439556900504255511716966887856844075194955814547518101319890473925126558839762271859712110111684013415649625523921067193257925499923980705641021124382267025080096824382728486605966118885000362743633797134484612202420210473758625744641844554574119549623073035960580576827967424842853285059471055225552836961730868784441038135336838450190424647523487934728100790134863567134763225117198269896135345490157386737290585448734616593693533746143665854166328232281302985268496120323886745173113115871023398551192398894563733893794932315311696247704510828088378856823368134467531351480719917823676176026861423299474646945187442706517631596560070087427314024843762794799676458184737603125239808087648650175999429799779197498894971069205214237505962962113284681229850078236978972506585208546658785053841346452512373170951446239817298567372622181173174576869782999538516590756170955775116204795728737685940074082877832415283815035524954983232120634217815142711204650653732066160267851883150738278444289856971438554339470304801288831655869310888462499936669420717253787224311632757830906194900309197390281754128028387477407464320023412105054081448280347097347667934457079974219569883446454167345302368576847615098799082179576969663515906367588136982534387754990802319868435306393014863621224778621809958503602902971159742202735078109990577346936274570739064875261058659984597148133925669621353001014820605919805315113004495569514267258488381855519815851543304576700260676980055958133751021774750240216905944310918087115553283933523436045553762437614689963971190443262554210492591005422282522871012892054777344827245438348440663049671506653417218727511846500037703800583835579124355650232828182022661222052671869674682031372524085526170311411461934560170402756879944236777527228923387260735944976203688434800424834055015113379614435101246437312216784995469854618996321620934024369332212690161402888066281398971470317872727728379858555611283359524992042022596222067580013507008432357517635221177580548352276545223116816705427275426914092650453782683935395985650226327051502520628658349182412175559526460980011253867795577514210542306107807292530633290671438753627401049604888535083755763904539612198195276352370484155708259373784720792741983958510218839332912860483851583351805784296945446372328978888867737110329563945057125713893604668720105447285711202893115178797282279621737301653639602734605586534934811042766968002140558706229140283137683293929357994275783214593075364010058592214326171423290696912252898060997338558448547108224952436428709749282670916225394993219042659763962840885004164521659856130091206344006059249892695049642039365719476756930992643244052759724923751017901834161511200359515204596347107949004161552664645558604678485966568671482395999783891542606817984112321439068888960722187171156421991988949256278361916477668135968137183463303315669085068289737184115996524737035395344945580802452570040367606280121668381249946460988780469396995188200037188540336806920517542847023554229897997738682571788338104845454974151183214646210697046808214662581357109803048221468311256176069785643796459880561018655485168848221201665118539860934508746945164538980699715963955910583543208016191850180824612611769447839863130307076627390560180012822373050697235177026649036618648602831714962418863143460681986066092292784518190987727253939828020812318350793140182134782052481974853471665890942714774239650136545730280674238062990472056384828921714688578596620544808093673765270415897798301570091358584727716674700995556798626812188898665287453738774016777235806335584168062544776268102630059346847245988181041345699791482422038609995508214870411502644286681966391309798674669211929483368536360599663392169831402475804806946949522519417823392867573052193698147867899347340798397140031450660993983788023171372019183580280466300420647091331420338237733283218114516949315187370400243710963171648827998358812039547406723421210724972143427388575119487244628298190267778402951246422109773773686750975678475652675150764006413735722853149434444532759225752803259711256538468841539437721260746574534249677623585226713592456620334307231926582803610404444223445555027456881365733169922984501801770935095515854390757681785408360078407959178579796655749968295851079911169939745574961107111736532554207843282347643710661427970905886233010586933022492827996453643048124029224711149609586109147507371230725383650558917451114664762249589478896668326976630972123453673492521186573790651893808542127438673575571691322523799349037544570294276357862469739930097820547541719043375744217367116660834018774274498172042557830213394690179740948977541016484545285423017180019563942263003107054086744474475521272233882375500658725139964514483493142616738855809625047331275103387376010255628555838199210075778004660667670480817316428748531684928471967871478035326126592313429927161223456865161372230987762486050317872504497393309054377817334209153938783755152674784911097503640657083777202793348028755441361639803297463001532081007425496701799353972415379374054654260414475030438239439811101725599740004948568897547590638087040112984207829097304398002266363706115019341954590289271845825424346370620328131805475001262196498648958705050150264378442556834359390217368095376632156647904448051285193568722270887477747757540046172575731335883775867407991954684643400810652264092071801547124955022114731466293929218296506762738095483268206218574013570880806663691827450206579651928682926577433827659581032598949202288267827086155842149147191327510624302314221854356112319296071222390681577368079705813691617095159825886850985269237936279124991192093249491178857135138056424117923305754287932550456649287368127049153115563006681791224431850273722330304621516066516204594202895619953549498560418935422234750766023641648284711197353090531794440833335199792795449113153275371132059238344788120050827215343685999520559836354050183466373512672704663809214408469334294931765087889452230076541796513401395841156651610162718750079581861831200909750567708336028620559565206289554748948128591612953809495407855368360033130119830400159919044483196001917789942380707244415935395882839995173699299262927245284161561670923749359607749997244495565338665006536304739900756654269874250502885974021011513533125891019929420509395742168701629124235956584195051880204073744661348799335592411394516509185151359201804735723870632842159492568138100897497468087452084190470731756098572390369320401474142984517216015673384874549461117231898717496019900808504735126066925754336848412455157298168470936804242588876438058721174092107580842001831715080972732635072835181479879959594407967144328211870737784851161995503291509269587801294241635609462215844353750681856554676896090629919672660538324630001996789686834159015181786809004236814519612225979317925500649654219113618669356155059680467845325628403300909965053212400431547437852627444384149633737134881260483515748855032079342397399574338606838025116178309217022282599769651187429479361207266689004603579527719399564775495690196022666663363074533504406742987839649145977291941475562793684404107359075870224135009507803448599720499341146052737923554530100906325733055733440547881392645726027562707856241031640703147133156572870474085978413859045463694548445006559183732279876516881071176405614957547899083000023284591062341279535505996959504132209114172406226234710658127808907790239346200040989177854952342441441547115007488020117704851674579767163235539400526997635989481384234860769490152797923381074850620041616430556814467011534718921550815230191830146073434724674666323933465177374864428504690968940969930366027215242951715778254886274976166822148145580328410377517728155123108127045072358541915383570843676416123161649191613194731344168012993861502988734839097738285251759122724856630162704375664775862755993187308047316825452095869086004677517853036689794053589024757987023902307877159985654806699481281509436281518626901964625157851657899387815421049996223230513215200217314464607103257057265021076540249527658096894353854069934665976568816074003281702064564200994119574746594399094666876564953766534514167174931173518687330990763680234897954784715748529715424315991188689500637740709649213943179856345576215305141585745907119833158603977866289781728645897984150922680620024559498004943484579736185948944786061434479631117265442153629416588742619022281391065752865321820500157470818065981460090304098150736775600379983116376844362747080048617300794202097473833589357215457242379916251295099023129377717573957610601821132044080270176114498824029741450466928087595357930489145425795235334044677537520378799725501491548435457301302760698151567695059981242950095573809869777706941135783021131942855940841031441661889555808350632609883000255197721043070641829001339239247827584472770763421381994401601403369210525899553764354749165399436750894569024979427679091919759211112606770175237132006436527738137179894287051172185287017048146223004002031977595856082543240245790653045043229167650628370209850707029569351880109149650798429765989473917312638106576251524576399845170455203778252693434832856971987188024002131862524722868147039130496088324780516215905251237542014081888906311839748758952271667168556042263110356996443051950605354624105949175395438845611768376628931784141605521182628098440360776612410166185715485217267020750525140422515514169496497971216974261288006362367209061717303349414307248990594915229568413497477469383988305096069801048165214990319290863366116785298398705059845044049360506563716070816733243699448968525465231466151123549564510980277954817962602020912377474069719365649283377300577147683460214610063963136963817381727887255810266614014191215390661272946238437308654546341517260466336007372306445708105901997720769002587650677945801518674586383493810841301336828840194990523129386821793073627819738774369560588230717270516614298246276909955441358165925125840949250783453138957357181841470455095944503158734290347079148180777021454999773658372614441492032863306188890061104648774378880017772963790609256022283960247458486152605999993789316770606383581365393895713212315743904901938890631868118602626314355363180537535960714048244083827577496501693714599790954615371247306174354085908325070467069193638745746412542786647837564146306795236677793857091898420831377757153132258955897379013547938924470927499235163669858080895323557465982529869061624105518221242563662929748087855762407022639337885494229092077254915787938741166779247251294678909632025481597582775560900355757207349873265409364113855112248460982348494994204042785359999053083430533899142135366077312917633192086885151864312555208720179042465976792812860678551562655548764886426877724749848291354284571960892286250994444241550181133543846395786788884390411966791147741396683432435295124394712261537059646778789776950640030703294239118956751661742432837631303266683531102138713732144953302992470964204654626834122276199051534718105709374438775897957684020210792720404057424204243001243182628901458830458576000946039850396045069885678415005846985428704494964105051401456145696547467352360698435171314873453081880754882919842234187797563390823307384293142311982198001084452785905143051509708662257863512919026420567201814020906840820274432671360441090091574030006578401258678682794170043988499261026887596576458548865609793932017352345593454252384658067633946091024663247738427675991117121287448237154174944007754241420462994778407803471420444290288415681450098625335697011184616861326501105053131384629388342544908152210117258089500042614867860587346904528470880368698977513333934549058897669549528601074733260354471261273329973835138929920966075516172823185145415839778866750068194957266900708871623918517012445338840121461596180256962557078120487888357785388172869637167181113837710354699969621752819352645267063183750703395619149936644394667986441284831455248716973626835335128019347426336962628759035417459498301648553634605132142274965495052748272551817294725463148874172081666498040597674595354874927063095595117349425419307403232973257813040769113740169435982453739714919089873862983588703361820292183935082596762803085834457612049002259381676553383772802588401410154597204070480963575509168711222243202432257379234438650709528367100901708966868136042175553057886177796064914541000066281541672288356885391130101082499599454403720198200262383266049757241825118529402963794484437005980100449127377541482215396138163728010012106682971492535697968430009866059848556797740677219442479925750913277300865344482904716991827697632873664006554596283373437989630041531121476064555176611930831624122498198267448719302196934565733329135149961266694239661554317541912629825654294993550089012168912399828941806017535507749995405319584693155340973436565007151091626493378833882910807353357066384333250375163178909795715517994936181826953570634060388021210374349546776335670561516838769277624078146391274065057717026696111526405161400234073689857877706884890960657504286265725087893530320327665827243657035368038757806419188707202671473748516031758158908121846882301639430078782180834070086927370399899750390231000908974129746727876665819677770151930743804506343908801587432123401995004941042768922701829401371614794173182766479773676295900094742540209106278189644089099535959688297160394064094503095578085222973649011211782367448159469411603726727150280221351182068312037218785709359754307189156016437707112426777773697355831760822125670494640921526818018724471478210355021029307466080450117722849405780925522340197780041825755715087801130055886138060134785863042922479986399177920104086558339841634994451684180369872327286831007921826537484455024896411216218840763394474435209180872774608086667948953337194183484653994668239331546326570559888496554993615308818412262229652680046032123118336615977896514397998113044613780168722771359822932472264206854859609859165605469837644353965187177519771262520745223834298741740176698826562959092996296391315781189951292294667605515508621637986455641757499280899723558617323409682891145371462754236604858218879244970919067012625409633004842273629257250845951596754176215025889807271810214189717528114354507149300368094437273288800989522548997070739747685352678999836853154023625818805949727877256353565723305613393300779542516983912840095373052472834507748755121853857481347972902854637661498326835990281139749982816973710469506662327273505724633364070170581342290932786257983378126164603224722817406959016583730440410097959993770259495284099593007441230784528649268636954327533909897843441986764993053743707750347931832628263398969317915115403643524012616860240986430277623515540222705718415611901648082295763390131881783628154038947422973597938080422228975987666920318463615146739470717783694194083661101834007767824148780278868144823932183394439314929146866165051021100337704488601006266624653227272019295817020967096548902980504264168430640138834242224172300776599848748441342808827298567449807798145215327391305549446291755966219332332173111980058650857639259218425804608214410659051209756128044179315830875657752851454133548190128742669631870500630250913114855137100890290783821083260793398194618037709844010422022635095671461896306296139134120004814578773784485407966036356734458772682875204555363056525825852619754246883494860231403910089193319641191499288710655685289039183645576387262457009499053666697319510694351662910205096700057935085328441862533342217900805553209668179393440864875504105703028248944311352957907921925154066329347984469363717289330565938867566701617083004119795030763630524704332093230873333693739733793538068840106675826150857193615014529240932388168136360138312612272916989956530883963000462011924817569947016119961845386418175428401857313504930827935814656680327864853809872633193966165804656519145055511226400250401297041288136415798298651060896355181473713739349948744249766326429393027697763095921427947486037264639770497464802695897588998037972755604172933530206852699490520663767858729888880205942838887266356373690910131462014581687506208656622840667284732153821518742902324564385925239520560924200369025563970201202995654090337253865699832499052515458389719400942641006331646615640169061855246981281349752602902304017220066942995176502003571809027317302620191543102016367529479214629539104803728570620134585566416828645419615971114914162210290488836911037241534995729764775551520300030013684375799190219949091695108713038496084917751497697810525027436587084716831118548754936955687525341880460441048015353353241715166860138420384308109665923730647177616416828682675371771452838554951442323672042299105514915226279643105321451167740243392393249427620408405638741577620211927376776522905824535648511173257654723683004056364812346832902184946784879063632312567047449760331829336367736423245586743559089458284836082624192129641477262578411127491841782362610052440173894169183241291282538803796692113894692304657977363431708533253867467879421142393832044799091288134298046307210784866875673602616171858147988732815767640565019273930057895729435009717659362371176444274874876921262326854675708823560159608449246315620712802424050182410027210197249145706759640323664839689870540736081605149028327025541358917381272342978328710718505966820341441662623761077178857242986421806917231663175134837330237270554749383561142113196878748190812035818093925485850209758735513417461023993001577069928153863659528200955956877661806061342359629232567572949121972684054568463369751463015995423305972968074128655647376427416595884215782399209563409249250508241853139111356835116676853685760149689321364691349624428770970540662452147096026340815241644077590864121700022504985118653891565732786999064354489563511102301786830549776669597707151817210386674475776249732699005035145185994275930928782272037070096526238074614324187444071370253813454438337639214678124174097852800386760101836604349581883306726325052319318413245360507766080741018145410079520170338569408464704528761636909476508127769914208358840371894449914477098833308587696568525619229356940302324130298505114120399302160104927580774582523311455336017515929652087340917796781945495155615927145781033031121455349607456480741668118993475213899297541654783889230272570085291702158344254903833078505753832205168825562008700981177580656562810857390178780841083233263376904441260066948549838551718441037516739072896871174024127398128749889075150204700781151991466884494625023022895634963497977289556127949887230074986246954264477233275426300185987736732003384723789028422901546553326785528021463369890044291412940302990989710144569786272137515628121844997635688492872458322648168812220328196569432714756023834116334303183454425705732991351599455854786970749136862046568485988231342101476902215002022158710183387694735463442469522467940035950002087230395834914136213967472811811684466780215195737969482328128214841765511367054680027781873414468531061405230933569082331601400460751821530872332614125182399291766251559647239287012552558871794320703328531190374391945352646489040524726900737258246575834493605271779087420711872972979585132121720236558942276237162626312039168679142699585584020131441966067866721575735567897315647759703678120216114919587499746998839220392330339263600740311258268698872224162460830195906519782106032970226474856902498686463489291901980804447243216482768751813649120353811078520813758112063980342807535717867241987040537838238379380834248302931498416505504639730009435154036216908851705064108352240899100750606061076051625358448218087757573520416552363580604373703757886968951642673519953324198379368760287727495626101804239277697461779416549172629662327463513462414196530492803829050906244107317995200754582677050059461074923648012703896130282423371942249130150006201832487432659768158759488092609714561662112949827393961673029482039521849407622113200807149969064737595117911687238023199377810638758530520624064911838768907189123224599479239062448613888066375715828934475979296335334198598414991350479725054613402804843447320719034154534688298409808940687441823987296914516988919139089791362621325991560654550330930499105835836403404305489401224480350476095868213457911149306447283849556969622612024217057788270550971390058723538771050149902898609960786010003748324776892489666840152822592942559042731639369953610770287635926748219479260169929824390540460800350457068147413449537079233746307887548403798105076578946528488889486725319878891525254899190088897999502218690158222518216826431869296488960153140552217308024170790152285303140619699985546074038562937950365115046971648169275669971413622188120500812031855379973354826398944260724113739263823172618507727404225736889756510547427472142779545223069996492217137701275046903099785578992545367503555015259900761596024620585973599509769605253792668864104242436630561739680225211757760394249426726809735779623824417500655773826198583696333494750339463939738744133408974776131137305641581712465826605731890996293872491659624044696856771260397159249170007405504232750221732454142078275364081125646829454485693699371337035847349636679117952589157366003259208273078579312011329776741558175803051823495369294698667175749572447576193383541650340875517477521487438935895858684099334917926584966193262557569211583934185325318920129912324951594677119259420968041625132378182380525233732903151755190229722055577980150083003184886484351550068025376350036699672616052346670079132532194847388971302339164624706528301978800660517624289911787726412845698469865613637536396668739822702165352624771387137927375169260199983995618013072107596703818997801638443285411732478868804273834239027132935046763503366505966446083778775830007696861999808226752780643057875908335957967617509373148675226884908312802688617246869732795566272685356135236072927283770753117914538476339573464174127937409050853279970436945606663489217675001325457120679548927999324603964542728353374764070410035775931064342658567282478023279202395929574695276150405857288096401561982597174273017971909126403549141925153763638498239350275255194070825660512532681587287298408665252687097468585188027467046885571593019533525555707860076696630905230102181985570851873607039996595375934805499277923909006171463763063466946757151130495839951244220055038749191132673372073526494094367054753173257098782166387980952167340478248593846429573508175978135132815191767928000180361423624032006817881186944668049800524524870180437088706970412524639819237231388624462562029643785959391750843319494951973087767432833585149905072798139504080861147593355095566167515589546427344456234277120428858279528538212158348823237613884453050203846823156093127951948504833760659294016010449019212485043981661975077393022102007543882035617875462074635133760666997102595312194016481121963474945644433058271733233864962197425101386858462576299399821043459522038312016149523555642922252192433790043606373972336689864515783175450446843050396198265772876192819036146279065284690727643633319429099928027236426334684591891742800717285975874049834970445209235545687843021451595992621101388318257665021460140985464382401660850216216898174934929177202535241816751951898969431339547036213560799539262170695767881318498641915860918479616684074077350030742846531084976951542852956973941683371754613456540926620681995892595107583138172978966968623597833184639426045544676908562558669922741070151007648768243234501211602907295806104729634487236253219652825091200793539733989492354348026985669416380740715860174527168676682327148506514220648130881731858400327105787471539496460779115662863067575456357326751046716508264432328865434639547945009777604398007362969553412592628639918144407178121681508573755788667374961796791823589804779554698830082381788662639228006712961141696760421544230441972532546515497764772147155585873533856467215261725900339069675244930773905185240875810829930273451655522179674015602608759442989676294782220097898199891218690209642476842562039455888950203341747894372871561544563449584117240958938625991172235967558279539633362589971603342060066096081955638256119825444123835870090503341034230521420248140324726959998391622602001488784076320363111619037035292533019171278746008674369587171899905032232072974668524953879149997422137576900804826770317977149316602762897351143052655691005431255310392992919262220030012641580869473958276296795255568523795288037781819325006931359229006741380615107423308278592438034704899759950202716421851177682887380643185003571372835315687381758184399141240765599300941621969750340753374365372390928033493087380788778083931872985441760227943791819758588452010243342888685017096246007803459472763787541477994824810155477012535028787248272571744682944058875023375096286657044324193510676353941612281235573855067884420238797196823052038204200929206447249637853430550468379457430524538492520651813777105876764092564379888708110222047734196262895484842442730793191167532136088713242898398659143380566686074032883304489899613664611771768076935397842418329405450064778749415888570400051188325878728427394457632868424837178248051215429797234828573610373929774470202979535173368401802320265896903266159238440781254317494453078002046369594084872090110749026038192974551260872499714610912956160101722058144607766817405064150837588977855477710242769277923362264701803113884746513361584524707183537088217486039349366157917274244128486455801201617495945496631182993526111088584238662707213597036214194245329198407606977556713949452286521969303959984066682091855687160319306926985984476975712380173514274735362809033491066773477144369884540306410109127630928367591230868894833356858981432483444335585123232192945941075754307778072436394181698905982503795917380445198978091497863691188636650724854261228857694781196232909547314638268491156938740958054777625898422913517176048754572433577573534204884538325479789049348765920333738113899007140438513389510870562454190645196540952395071910084149260203485190631209842476921073097070915384540589172138809811475329716782922472348379652301452184966256418961198449439090013830395319186888005374583947637236086776052975161140918219744951420578752994213071662702633733304729380647780773123292160042766765970374408964200947914795204667835777527289701569102212919807509189767413796621436527764533129891164375969198612141344751047243899269089069863107286306872396098743129924610771674006411901303093446934548661953567175015321868086818301673916098537884009291051110410033308389097947157450188739790901849459046902094330827856314840647459541719437016621421382024135238393122030330387377451347869467342181965935325744308120733473548200919816024103454085628089887285280318688311754067881987807723380251352632123675510344584777746257677851884821097235443506260390086627711770939991582026122920159235637395347473284944282217138807911965286211471563680782102606545691365191131305873154281713863354539281135566078979218999208253363876402258147024585401013676142599898040126490672325060751102027672863847428677524390836897575143091865005190613666929644615729564408897649047675141881965575644236374498712445575945030624652904483836432157006976446590995248492887298253271508548094725843848088948445002874987479230796608723639692185893884289080981066576851303926215801355122748981135032294153735429760622305468537602124028604586402959144034818884808922243374968129777629377085410533779759472755117342539444214438758690516427727373103791996795345548964483101249754205633647234470617657156495700018951541859812293953234547551662429384910526174388677546162253514562928831937337228788743596032980792382048997207372637107133698155945134729685770179817724647997943870170514773257595329785111872614093337103382799476437997032580493119568233621105205517861318075345143122237982716345626532589019957551908579441578065992441315057950419951013402216683242383077655910260962809410150436342249131923045949487900441945324216797547724107593406075526714590034443944316366956149344042582777728052673464916397478415702006328250065827554956788666583314436328248715924083268866837180435464651852193460858459227063159120934273110672273341721353195294802798948388742228201086068676637147082026776098554521082662840250526093014192805796683272444757443198329855149966794938004535429268361426104235879215823183172183947546291315672458883071067660383005205197008898936815282833422997504799803653908143233169469309557366037414947693391862130571691588759022607164854021364837507325673045976821978155483532218954811822447824236307971392489219021836228765744793918017555654707402256962820524261633848389170966381297208407735749606997245121054258784331236594066884025312609581979000864487764610615464343958056067502098916725057919094226302317496518336671027560747323234427531377520079710584179825432807925967292400156805234473735555683392767280841129728685318682061726588755364423234286392032721354165542777520260629736016419825576111227050410781348653788353899306063138942529690296073972133334621642337394972288439211497698695755539412476429174512171557850162113453574645927025500643179327505854279128828123352649195033305751651428909687288238909236572057934189296867632511378521098038230321339119747682749046894413934740577248974891403751453906921799696317387886141420199998405707554132737037229719560323915716805808183541969653395502579523072780697943276178394561983451843083217920531731625111777519595720778157021822473636572771453910179256763297875440143693981937120658067622060599152184516654147565214824194699404359462328814491129430775810921970878473011716471446221065660415424946988854713518125752365770587075450664728644765501632670588581999116540665665627275414815823778399368556815008284018126546595021221539042115372169575648409673739238973857803433624290154189557675452966555260864430798579054604780837493283739524183220436143152946579134283333742196050726702478640357230166615511658389546526902978548690968463755858547463983225222656444987840485637916742323103317817802563295219438292591045820042459148429440337118927135491147767975256340048750488770854613431628069423499817103144468866872872888273701584632925902268276159785610890628702277930930781024695407495759066480166317506075279441519531644764852202924420852881716098891569720029749946400889691999136194124979397996185025910866513291830357137074458681500564903981984299556076585827964542571789008081366136227397376453033469056112552010903474270871505412971344049846853214769261235936629267074317103533895683637286556348100212270828361084400139841576367743164685765601692859987276654740881245252833935382754242104756618820496331791162164952481578146059158761089260286188757308887213776455458635864396412956887635037240177182064135001450049549884661724565152965548238948715519695257889953088870998700940160268571111016071078720222435365482637028772456327011312618165833865040770589268250181363279740487675161881927680180271442952506228823933929589106874646315475008459582971872414047629097796168102936231076194307348195405589603182143474089131419022556662689303810481237284693786152056882598524474600811531103660188837501833311805313495242431796152574249894706215300835846125192059619036181362756263690754637287330979879857627219404651182645774202446201135657238871004094980049328366386228698585849111172143203070164466578699146617904742266349569446511997844485975414839885063298982516482993234717070913824927126068556300545933174305198554014726031025936284008852368117637026876414770015866867800588080324945363027001699411571888844306697607362835979145645779857647402342291430794393693754076749502900812745138833127163614575541524283201713062113651198663497545681707841431816422062777181147996767839742056391601908382052027015839172449568481687556980813849301108831551030286409206512295387769446841536679147701762576547708825271161691725144701905027654937224734492617386907217654692088485763986949137988795814520184345978047317252460136996465139486599983190091029097566302137346757211367646535118583960311494102731759890188658073296904253279038311118284862540214809197432268808978551964330172100698384550953411970921184993939422779804336502731142559594516235038519898185615603861013639073731997283095205627763795153885854160214930516854808309570541275892167124142897907674082650579395063286840188418020178297203584163888522667022039631767663211753838090137559642981268154584279121069566133988781404307110219936936981293749099222619643253416808828851973296598969642656893318699343787302295699723619069326598739430711647102161592364824585304904826766977964818713282842794975731886537873432410535166952183787462186508820176628274574863458799920556126535777530937880293243035119607778702292830876716689666162233284281375032081672980201191048769438472882669239548692653073587341137720668299267522367867795498330725459718162700858931972405113895736040492434184283382492336859030995638999889945770485217228052279762746457141090855364331667243038719185471639966152117367882277192880996105110851791726010934849596022375458290118431506627064411426288261010443520744189649139756969896864792823902979954094319865249633169288911739564971651208462256897643660817493296524677796285371406386354210637040154781547503518070297517003994072194443527159826394800361158879424083051582517108827912107929421026042229859227451951127743291578757855169594039312095298448386173344075137593343625844053801180576755008874783040656113894703698503621778166715921379579714597492790845294279689313326667824204777310692916849692597390236807934915571370298873124859346841020584187327254313115605887039138523234040819686031586336184028479236824073109795310541934624747264215679611902922996909977453971326339379976464767449103185267239229733223001455533590702438903166025129350215155545338460336863003869664291031850287049289099868597261509528153939311472893091737800241433445987903348645818845666871012648320376079101548604213140145982188345291205044948132252759318073247643069472265327351648572909061284400581143460534122066613505176334743010050196479659906040600692687435280239660412125876912009731026743695093148091052260866617800818619103997061010581424693899280915868511880419379861881078266442947554542738671692777725410160426035989163818846340831338218311143002471184142396554835694640232013628857221542712220155852895830915928468008409167848992638209113110773025937022298252498960399528167498052857369489004287430209487210227696642400507095368027779635137218606328202097598337945039851136320365035054621901970574109660548918289748880675831002796494617840204454961809188314469354484882656055527224458981400793092421038021032137478708568293741866970059699875871818317586498049849408571905070079838157684980384711541458785670312259107614208034293699397620501732186679949417052880978843070596706790375747142227775143901910839496896595385591777997306548394256332009739992578927470469433512923336446044337561519649253458856226747719622372763766249815549109665641836836231498439749361907227037684238301423623681844469088942973186497623231713210311514623516619023230240874896752255999334197064748293471739850073105581638804454010672537263679062983167986756796962788406846350790816913665513626647091156313837556224259201421960127914478533655602544223774443151551596392239405686438717085735890525067876400927614824992040132882174888184811458231378844620307864787678196648092410308203283045407418901739494449764063319968851798528398291905346655566180721263991806449589636821587137497472314459579240227955868785515515425064093497147832467442186512297808234252780793265880541055066139715196464011420778529006771399667534428804274877811989876464050949552810309880241270827852301954219266163158228130916175294250679209276125093926335277143514328581190058454537550909261548164935618138123191270298423771139798217015685500310187399407976684475707723164911665545465729379710923788658529000598302916527318488893161250410170043464609555444218486368957990339369199010950917464996441591085917932390659128490007206100345613437627051603300910916249287217358169103196971219951687931537094105316206539336762428672994792997716259303206347375477555733080792163019267995612702465702772187152993854284226480683763024255633197611311777926264375677368651339015061094732043577725187567399624967070277016117529991321844452086852426848017293392803013505502536047503457108569505063658664257743942163379390065065429123960579068986357702811192015398777315516422274277641450734757699403366190398770193876458612263559059409099313371188801859303313684545493246211015185785417295385040510247825623769467763067877013997446108772882811280364546222737372873670591411849056439743297591566672375545628360708283066060099218797535757253268057275913804876346157214057537465866997715377876304805593579719895848454544719735732056005812846627480541419617222693428932200931519587910969763152374345438534805287236979154481810741915521267249373515821038234409223136398612663664856186762935168039829546811062921532742177316913096379284297150833984540531170102603997250596432071523973830367242342773258106823864899667758505182746358054025644337811389609746464178155303906387164175990463359886453517469850568450234588571703155412751941703415234833292452570833157164923528336184292292916627105867721678174937814751844717699488647042037372252302366982641720748955833539565849212632699383206515888226454033490773460251924489822817913840241634453699710821725167296036093959836235179108723382206132471702275192329034422335391469218580011915302825161890905282637405768541227213795854040309705849380322864588430204261748734283818911625542673767676235339570819416565858639069514581453985711507170333767577871692880403723868405595513874812189454140605850230868088853299590262239542289537668454688473166191710848722982209067018626747758281856392905592641612177562998384444163711506450075483617980227755627777498108689733157686064769722388015482351373524752756212301081178848177683290101710348981073506094787077478598535936235640212561212884779177682560058052957647735221477657327426335241302391258394175263953735827957362095645891760832870659277961746790597987833501173798067336762539957895875212659841574787613079048749627825487763823975859375712027455693854052618268669386913104563440568559479100341992925229279154762652154444550231957883551771318585335337861357668074066023675877647383278440417641494731747954424137958088439007100896109183400867818775923515611688023159712981407348804301093829067083187625989794058455669085928236683421534729905361593858420195587704061831606342264199646180265913590987072513088588204696535095134552445501164896908943273672204277186674182159452776442726941720797750976566675088411751215861785805726943248336775691376915006961794210560639809170786490304574549896885481911214852798574850737850849694816307798243399608251230087143817609194017532563598446550646882322065230299890139102843159557776127975212700894031646692795759631399484201342827715439094023055201407180862313350475651247209383750571046241678331090492859345686006336525951791077375436139515024041128083207210052064026082634222548385066560081946744813032640410463744068316026678714092898252949025490916597824839404259324396884900730032062033330855446940293937736482402511743977672994341380165047243667453041448363013556461064334750612754129448037434727760985771815900649007182627206718803810184415297440974751613394693798639091456285367077385313890432293269565867580233975562123306479125806632715820954922466143692562710399984533909539197481964872163423950380967578007837927844984736531248814852940738481716845321381772601966867474312171683737538961806158070705967196300620346162012504359298328916733699742201693404316609446448969147786297515161319287298368928862278784709608450968360103555599393422357330087294073682337239550122302928393393644773059403221128756988780897546380366843202660603114283441633556000849647307389558343036701642989366435003957538004917130442276897910167013110694263052298797506208267881078409750583765779185125489630036111454302187188900921492804867069021490881671799105128037167583430910669002319683570349266266085580238981990896073662315813573896571255131034276676236820469007646173736073230051488724076367718604552107165721204162160549011844452597263814523856014805144548868297865013635962788325306174555853079963768705548509617158739235717768096324503079217336100343459401014374992292513522973636318552441767499465215334302918081178702721952313118205752344295696086714303334107365571792987882338323106160614309242791986571964427827842400254492225962579027221719230075594786675798418021709739705260816977849643459876043866077216903983527970292593091654698373941188276604521564318363038760702813241890672788163954640365400731168235382301131514251614980248438478284541988476629750392252293472966486541156736566964325139043357953457687664421044213234058468604959661546373475443868259735851258081438376667650220490641362577929815041826887504741914398957496215743769069517114453794833397164017734803626466181053513828381961905590643336896313494785831177058320720766241627549681065838607676891783049242586276014008453741936684248851472212606730395893448361818051275814717714865302252842269862091157578740447957742773571629143538727206510376188117517812767539366466151570150466579483516629126328682892929961785791542821998781058414419392145874286071888578445794783354417998136218554403302699398389971172579739791240922532783277489747868548743458995093016323378418748147729249186196311577442489493439213318810365510160690164299308462890614548915624474930500460637474094206227086181025168037580931006261434682688901976521594542571468950849569402145126206302509553153095573143591475965740062704881198364308298438787352896835751683737652036040222334710196808242800161398954539410289033042609489979561105248456758575402847728759790067881169336595213876477309474706314269943709126322225020385635049345779069866647870029095996354908002767686427812072796531052561539379933816040501747040172544037623702637000909776644335166192515044087899710070272764149491741556206415261488844418338058760625811197215655625007180961482646174532465312710075138518425461081884174374312640584025371482302213865889330380434245525580110920854482798621041821897272220627346321330597408528894067141797046377650819917953532876722421389374612239713239385155706826979378181130689352998431194423936197403594953280448369998433699024323050051139690291133635017978800801686582405231154821262572652012321599423423653774471307311775153500390871772552883533304193974175888896533462553682322849179191999509803802213304953361518054642369637172318482326407512818924337062963392269008654976038645329353968893419697061124685884060333467001152062501108860086832241996459987934540168812960929326798998699705907390173825405169584152658897785683061300686159048739436785982691512029442324836376785189980398075708980976112892740430898049865034803335717683814255810294725871268546409983715959619831275610770835185081826830874554863595537217394493708174394416625593283562024697482907995244625787630338207992002770875059509213773884423160010303725790892303906407701366959250311114490217693078492171833609856116030684288872141509548579222587772945181729704095701829816716445897795997796787734941759190837999593194604446403118227987999146629680357021496114163001460866204600087794974589604668545301353029382639350669025860522724597297941895013175929052496750846345959739355950854768627018674879138339575096292536906255158745115187597524887315852915993625654869670720852935154363308386627665472015814150029488121184098197610895863025888090620921373456197111980980428943851377416709524811750175501093669434963288154720861300713389913410844387892236537053878735216124045120188457553780818260155015025600849313243588909535446056633555014258847329327349498391425325557460440916208379533607704070108253385597732493919904172542883421936330800365528922977064702527101510638941921570549442419279859410201175554560536903230979778910601383028740152016380514163020458577574927830365187724822906193768961688739115644745533722606927690386149517202646674219970544325134395017083786331369725871041744307410801276570771394496733337899883976401498719784263122556129859606497708644940433241219600812771422100973893126345131535381826974092968202336336574363730992745872645585848315461896268727146148978918461807216665361680820569658414474189360971124793033922701827364795729989239365599617595373423594193480893259259853292442703991102716283263466653714056103103939416890369644460755143395581664232474142003548369636533147133581749408252676598673820194233150781968052782630181719507714655188581863035721916319313117791576298714287774179901597976538246055194639449381265003707696481720412122115846669702382945502332926771304247564356673914506755978103759621308832126317748036212601265565305841433577008711432116590238040784504792417733874167439258118805919049280128824224416295977406119874820772770367668655950061274161345759139285719265662073460332440841184366709328512618305471256032053017188911388730006939767013110502005094993227176585427284821213786211795333751399842784032446669609969105730902235661191825020959649306112703752487820832895840219191111161833912438741426224233887446782317900558382850674023204118177893605514185164566843879345574711976183683664260689049239920976858485418931538566047455079074625442565488921111002573040046662326375304247109031215000459216966849511171316124377744124572505002805296403617312459921181381344866090848656310271562224093972902292989728826961361553155521157721110668737290225665126042514421790917050685703291688158056035330117724603215368013939084396712913144046257914977443780894902935706450368715731199044616809330648527319554641704223807060529227453527802314820446190476861570700229905460607225520595528507425850826877275042441657466597647359526667521541747672161481106562057846946597679474689881548484105438404121416055237825924251639493704706725474692333100166439072940772659116367366760186160108646421773841586945801933683992793735346291358853873943329016723388679135601935965360837715511769091119698886225297648035490906777994306486840648297348284755954756603452562366176238934553687787740791579446116731990959404113538949299220757460525722016417981975607570653948290127982525650099721951215210122728811794395199903904603735757033772330414122247558143407871302581946475286697136266488513330196578828695835561444497710486436614212108312965203899625582168534010418423870771097738633651526813838586962366505974660636011276133200311847012303178793931569878061693886659118015778807171211706376932400108168638243509326759439365785024969502212152665670165923096942131065352437493423809234829936532640996229069922673801768833388863128075494001567648397223429881067191494745115995189542107612086406810358461340101807205608040427774248187110677289649690362645071924737435033057133979566338025502112154740036458440899082104896904168253465440607413772674879462260369536335033989279799213089147462146126058448858616882915494352190412725570844129952287595093150072818781926495154261837056666578228921672684167295309357118062986948946013724320872934049005500178716366959703871740070668831999635171201490605108417063191613003546087233781508130921343220918684327494326091609765165144147408330489360465659720275030395360627152010547303806230969671626654591920216508656977481549680524125573160878637315011014404555461486762750355651329063446723971083450045685893226031848241823876930938801336656413599637134075464040964215509574910836122455953578884813770833672376842337943463064524422498065940194573135989612694339029597239123798747579852720623497499328166999609586931064627168652496180759225249934398445658330426877531078293499303580521457808033122325167613723042238255111542388071692622447274247688283490376436219715765109443157073118458395893720528176954907422831044633931968820680154130768437375319732906580996427442669034448738085737559486176972519659111896606082679664411645188595076078827887884035729346672399360999842035085294285405200808847039097722278990900832338779661366565618101731931682402708513797764727759522382755879342787967024574581090855153452565964410675703314842191918499112450843481908652235086069645834027967592306843144609671280423008992857031851706840129433728722329247642696553150944730075813392272924673267023506558896796199267787154413850277763620462043530070960672462660601330286891229179982275299228337577772237961862516503040641883262344855515490899356773359237304524795497741369988545038540573702022398054430401533915529253567920690084393018828294168268519372845011627508886698446698675863609915276138142841253556539251964569504666995221394082342330330971683843005258042311294849836196388819120370093888312031506491047513698764162422615145902537324532073043366919502210898055782044653708730379666832299620151467107384020529047053716910847125511541021008772495591815246629907269166743769985925135259259189532341279769395374334715738606379582168023587595073959857437606635713124871497458161660565986386893590769125531431518461645096416566120712071275871798294395697566213754305992406835024338908637962833155811063268818231033216156186158958792967468089722466896028506602592912287779083470714282102706329765529517940442978685188919069672800475652542902255719235958032363181840327375685265966302299323429418506806780885930994220170915250622492930288323773807381445978803245000164929332774877714376958199742143972045628112738450130384247744771440065874653270032281236330355434387846201420950999574066157486388543002484349055348843438029521824267989913053626781514931926479346289841926231402063609077765069598999641308397353605416554664153324436183771828421023587091320868775831667999525866543979996565655916370590941396400405428129217204399837484889081634425686417084538681170638368606682743478875157572666119275094983569180588845504083993105731936660663808842096119245065180682930348320995225578834266273803007879371768603368377688340249381772954139590226796814920727468045216605139463352159696647534438045613272638625842273815342922872150661831708058247342626479538049328732942743550145792698700550969770574539122748309919770093384088389105137417675324977197125982060651156241831462181749205996919035514999822686683618578640231286924877663753408730308801533494492914016074777669416215949131193040730629235908595884027042381773427526428596157920664401292526161735581514413830254875071163318052454127455094264505434153830813403049327356492697038827329977042260056568837671411273043847169637747066605280489630531672787604104506318491352577786788802664078974354376185800358981799537994090248459375265933808360506960620286279983171830896778728509538880307808438982077433716933400900634472380967289179809420296161053315779781739467768611276341456712032395289547976707830399033916466160738542590992748955857565901647952946871152145810506419919920053947873015918895976014334003015919796474926733672679191871622862789126282730344916358395802784868861956126805750100876547859055102132367412096645180218842083000444880350981038684133290421377896139727209809755836414752514221841280725268160488225352730621724084831595137527554173875910371847098059545016926022860261688373405494794619035208202506486704523945126501259672295352453733913210152364187749858429488344005111693571457504038074397041627997633831463195345083227703648079449571576357501666492850927424165190980478772622462032002898300782061257176323465534261476116696012475695826092722867644750364110467121272568903286312344336545120089853199644373596761456691656110398451644095634455885531686958759738937386645212941167834213600069977701616646964916467146825863033024557989003463838274838669857671376868597554794248299608081515126046473236405233390507770806994518590297948200208233614544022105505773626982583193314065977066937179106957627110920822893765760854033263545758630542342212156411249573346835379925423476539698732383553594024483653362939575115104376320255446032544167043186040954823916167446805135079366530439313520259259154690818568101559772232644649383828274314720379086800974663740543224698588585491320223766636369586273339375074194348026082359794368017518285851125822720041870253063529916130882410345632993913251851226647513929561353851911645496673713415931655158876864373247160014495873143756198689747091306659046548679868953289942263688658580005055208251695151561739711526384233773043783130007505658543775314468301400529985886280894151226641036036727615295030485850723320418812617411617500549429041745775439004267359038770173335627586856798561672859182872087281480595823611785791377678349743826468010179066112356771497327698327769197892666014894555466871534417166531909772245171882036175169288771732848622880431473510071572291557384845712539624099605609287651531169584167957046959163636828223431772320236000073669331358619382730420997397558611228027055768059300891388567867445361036485037808428406937290939349387954541270788300991446883723332503470770305491080340090162335755060378848838150341738355589351703074866579895928232903819992597972678260264270642866816494352982303082874979753507472860688422533814775713501395943022267556073162193980617080781234163958434809059610487104689872957942771143707150169419063895371019295603886025995724004547209170375027537643304912421731968110567355353063912437676346633643102266439530458571467982078577675063218328003238531261474084002990504134562566441893932895068199869402665889665408100863742979627855890471706026522164689305481741822461349457052523549608714486448659966145250541641980400894560440786927458245333346005715376792227744119583759169875865853158051803495501756959053556186532667287622010315635142693793567968937489218400663005109211192316763100059735734110918667888103127799966167033160494704040136900986280555654295685158400402389147586788192127257086622281263750919676482565958422426222928596124979069071553026584946926782500163791025421070838715635218897031336631318655995270752412758496171163316935907728582801876681560068749627802161484874303641045500695393803797024655627297196733548267699094403853231723688919894804963500769367875901890173260967010798717902203098053934413261013864384042303292447865084471795324283174631246590968827061444335415089216309283538623216906506871163888154635914159933547980905771342577614324998398485562029794065577719418628910864677549152198892151356888036331192534218506123573235223120203531237702104386898175048168659534330207739021167181605390721053485058952783655680365677755312286768658118858906205315473651245577944067133628652181075190627068281273997176524897927931368179351532094633296528271154953242169331854884724229099193983390387646209380275413673980838827580956080052530032814825007718447414541172757522381741768736768548979944394566897816589610232782443369820096317674850340551459526388855251479841671967777234024472068603624002171069211022891879743585204407652198573834770832921158097306057514347537499494445467850410730772551014290873335764116432169969552496431959834095516622331960442798264348878081876873763397477097998608931164991831856307385194972653062115362406733189482857297854013864877729191021580670401923740321308589769102113158962149588855104719992393141413232872753504759014744833901278828360012310187361926804615218945152939089598585765405698560042031730609000060771417863789004688867918347584909812810993544503810951954488885112289157762984990215065460910074492542167443456901334689298411974769686359252322743422299286094644862091901384945831580577173790688921458960653063331582316243279137723685714305482088152765435034619509291389718335083981206653407248390384845785694099448314483168932992082644930264259544418107717573329375443287774264025583433592644746555865438792210376866887057750692108305734203511776388778682593854118015737918941489316776076435880651584994399725153328000253967333743554673701087069930987750958874269635328039415287490726117883559542450893410978990830980703572641227303342844200071881473994673038551795247774716747386051451254285333730517176023655471326055552259930376825240309592742291826916450783382897281548529200137939739980327113437967294395486131395286145124698056686141028786833219381821500172015179083524606663179143134996120141272273122016704710559536500979215765460059578307328501780725540493593137431799737687693290101416264549915265317288194242503620382611541553041119775164666365634728539932156991874807899003378168311479112703800006156362528878582447547101806249338758842388347503645126854901342394735428398474957185746135570656156097861345693859523936107777158652854414412195914620643017094675804798423682182444291489145066548014552539799539535015137224338628267057128591458132387389163212412297512663119069967351056258305349102634572190526831145309556582099584554920785638769673747672669885784294864345212652670182818258529134396475407926860435407566379721261871191616905360884928837964422633807927122208944069065297122097560432944299576426250052310264314599226208177078629685339159590884153564235001131446018427651206428194081217062257182655927466271727132466625715191733010823377175586433773351782949555638202406989735392668010678143115777265464941733651105679537789027524206885362066555638861162374265456230672590004059077670942088326797878429829970244818235130642139806565299862067655543420888710114377206877860572035827192297610173028090031399021568302451346783570829322824477989338781097025057968582390147200746258901486238772101411928997577904790728739872684747807387943524994178454540736511738005673064491221658627471980436835889535905471377401909205602894385851190232187055291733964071125508640138414814395587758971377937449992092278437618621475385560206695365604298811176864938107483808264304243566644379988299736168056013648794115575510794304942781380687354240363978896629278537481953704243425982140330135344126164784987323610997355149985461840913881002416441168227542937811641465526510091248140084126666930767218671857528880290296659795975626049609620604796995175083577052041516081395332458518726493321573180342812641220112099314445123628725794818773293267639238754948452944316347934525747947458623380700281241453527036408051564393918087712594810284281547860321789384222843302264793833114999250388302539172450051664487581106438377108281642651689001132091902839815003572585704382824450584398294574001039421906631639722051441303605550463256173495926581021342137215354659847124996473278147249603517950670469103900050189141986688102089507996931090973195274431939517642231097486749652351298949503121042778959554522553585334677746761839884171693170730157313602434919353727166370721951717972743623955594127308603358140150930920252821965357581540378759975752932628243619228470775810962784311241877363322040465504009028688363045259315008605677543861433021514439586299983456548429339757770605285302791515931535631230423641743512097874325097722512062857627050150379457847727908802886445491629727666039649913926814006691144606034452799282346140954477559612283410815421193878712373481587627339243462278580908639501059826602892029421829598087069925486508645490195317053217080702087495250457958072795681676014195430396894634929444781323510284984287092314959639459065266922422372131515209501098443634740727550365354429564205707479805375288870989037809545919119420755192575772455789988459814731156565982215475007689209212857902496445386705911286740430784939622876173535474614731048945739495968042002084869316075668177672272370483665987459825472425766936585804318953633215073960909818819753568466896569944618363191409468022423979624816790958252929791365114998003317849633716943572668564087158631789124176092616754032791838224954296829066174299491730882748717140508223037202188859994424681694368181393493168885172730840875028119739412487351980033325641469524648584102735696554561347547279224482776631250105379052757868724327403412226097389806325011253192293896111430273906600791478857049751881411729796703016677879473581601352339860919855217652583236095120431957703964944472016380284418334241957245980199534154790027411428734983004060058245514318450106879778910499250504791431223557104671384376025565379515352048822119508978644218017290269617369470638214984705500362011818625275085666473719500761357315291706844137036128939167142390339966653499084833702974179757333074696538848628307758354199793501377571073427915989055786180954072962411983720156247019270751962519925730345031285354632092584969049748019424083983914086772541516027953688318164117579084984072132505449707731669774262780951312895823678325164906887940263906937030662641876139568021859802319350914889406694060603506701169043244699289696994233797299582573855674594398028763610846881771452105193236915858317014774426528968252289415967916527710257798783709288940807965681770335374554155868391208380611659109569226607118757072758491625482023254718766598921366311540910813315951948243928550811637082658642675473666169551017770161393750829465093333674752946625345327188924621062665017416193482180317699253087093667486159633996798316221398316726029296471891752532954820972919368556526289585854726276825446808181560691974638401210459612089846988824901631464185423171510202502209029647188415920075211185615828188660847998081270157198355614952847671288960137753901438060802288727339559350556143828965876418417763380136600716379996092933361718858817235950677308321552487023556325209759249014102581432937203015515536300018326785154234398596867923160305638980724730890573844508194212777757369104155542258935311481175561641774920346766620863845652133695041823866160979036464543974793642460135047783649303344825935700667204315560136733348971998590260836372598671973342386577412283383163433149756814978393153542757672491756857377295402743950053269418134943135805558865622072061346427459050551191933426269911239719010324766983246271136177508940952975953451266572326655603271968665441223909437292559789150990187354439555294128839336429740801816374651139729054689920432319392278220874323931364223201848325653157486669297888807541622223760115912834619979095054883898911350420800595668308679350410508871966558906767020492948795167302013587958496170283675250287937084142488472764145772446821142384130254338332610236399033781053053341337528037914420155820981900032032819465098105336782164371618403468315245862208394463448072452066275902936492677025026560702236546892952509121106164834394757059996583432882745402639828573997481709150488632789129540973923468573235773101801920938752630825371816355121957232108087546664770423433286676447978648467604235426392742032082445067422800879672490065310003543563388448660526595955563890357520286022046022792117698011290647429201605351297339892559432068595406552642313317302931872850695727946717135436842622130607661946993465687575575104997871653047105995262010941674854072969972194670102374592217731574150880822777552354651444575079144069432642145709248525936783687464465547033007127853752721716956938318352993648404199160007571910956972906807864321571794062950001798496755343189146843814295920618921211932919198684203977596049815789420526941976271871705716540867515092488733492970552429830928819219996260720637426560157990119241301575972741173586039503925367201898220779904475825352116629931230132874631330237725188138665239560543247232441164136718317721714231601066990378091571753135051921226584570591966909735059565603808862271240954246803261543685428627213909401214371822383608137541454304187798703568479009962431445061460784632684381568431329498426747105861564839132195949130500470943184672225677533845372897059919546740925889140643912456529392696671852795628690572157155656927400352571721963168856018392160840891003630500499791650835915877765954130578087500108933547036256559392326579402479785634659884746108651365587210684719475418897522223783796897503019202692582222676522750202824052928747173496642464726175860531527700522873880808537847546520373555468303327655663401763350012971518612337041432566048769287605154892277665075356856786420578276738311535069589712919595179403460695267744249472204681620978367217197715188572198852230212572766221598388373397915719165802468389863170827369936783811132846783296706993176669863058768265890474040477108111938809204979374922675608967914050195715361652355375980775471226948712246214090544584896198277346992291000171224337229766365900345336543183013680667576983650957020332848854424144543209157608936454426252460307177509094587389879915439824379428756682832730822736718965974851729268576212967410605669697369198837442819805364641409580108200780930808435324059059927409406448336750388351633455587282613489686989948798194736117869704217999747017841463442348895035870201055073203823436393999461021923325425274626512082978791268886208566045311591287559844843247671049614219399913210998766782571984097596849399808359327166075591266411428287095283380974732444654388025325174809945392630365301237698532331242067003930335074979385905120034695270402019140695454229693135809847281738973125563115501694839863090955249864511205333410891409042209075097443411360027260193330530401605866225880110286973480923032805826324704269013226304812150531659719431674820818979937455575896795798735524263594775277679315001950125070534710213539417114608938042587079902608751178917055815214225954977813579013673592441648104757921042920583593713177961565714189160063354065762464850212000934248607854929754389169251624470000196527911298475183433586438356905678390576925093913412389616865092919912982495277439294098226134675616844375175658846530461922277294600256316849212221857318902086024333313161919446144732837938316000619931133251914447467745781224444923109670348842020961259131609792300216230253152352195071436290966830615007860893822797268149104609156036900445565173067674544541873182411065913140470755148479744687948174651010970943144402312534774912480334420061570567694010910464271285596107576510624798842293246850207318139424517109189226992034381921143957206436045299061150912699861302743152282827622132730669989856828710156733736689348688627905263326873605301594310184809361123090468554892650613452902257488091229152775301216589755588097998320710829742049919526712729436028381810516634362912065751510227503650952358746630193793623515058525163202224829709925698456187663947754898309434221133360935295590442304010615094878651770810827667894663408010898727836367574193151528196994663591984070576331045536008055906006358104230335592390747028846824870920727950603181602188770588392648206795251607617929474892887575769185692706568266221992955395223172396097547627112859727891662898502388004531494202116728101927077681821019345699318779652264857374582819282985102205282880065661385350904937178873103548413293882606728230250966741650985245425657511210261402067906691515220209595515475882893699340961242933678345679332551802084007185753456722373971560990671017091965391938852630383278339142942304574651162135658723547780622486510446718178119823986770718449220169694866780170493978320089310770472840174316898086880577507787778432821248469988944204866303002259006152573279042471500372562922494079353760393796885058109125643019211572301313304699448394361166095022352899352459071223694156679838785867583085396726377677122133535440604514882701594004754295164469827575961275333786442728458120441142553081869999275409225850163674245370460510815954048007029793459277660441925455008340302964227961734210868028249463944735991982499880853723268101436645734519836363425059156079875722244918944367958226385754388808883020069438787910504077530521502433294963685483071530972232499053221438461322218534678697210459559816050316736698865233815563324865970761046370895450274034511210232973374707073962833755259145513263681488552481828013618352324382656945450155633049399209807999391591977827721197054637668991609882296691038954077365912365522356528723853003981781698908061682121795754961760720109109302394461578339040051601806980865348486967791600212252788661123283517376427335909724851392958385368446046859801106836773880329156989001482889626698252435784220553804855361661905599949601101847259371112086172359213788968293223924092841687173548612996985393140147128275162317955332627074965564708261617273452874075846610818257702366006309427466742662817493154255561303643758844503095389216622357421352200695715982506412514193960757991948119639331507462600592792730765665860998047874121698913677351287807506808726320840404521434030510885079758949276794100344074191764506813633246287682755271487320854291597561747770709107630136067227964954557444990495957708646561936589389219359291332198510918594047659078815856028494516944377782683924005484192853891281545359490398841835960103140039530581843506997792801634590727038743562040787047207997330963858545250513096549711337201727414372023064465423918834941401994588038388473992062828605107309015922584334018970173154227639758796193490244091701685756992891668732743018654013375108645512693598694336547130982184992238892621840067002586645229142871474250139022053750378091895480463506183242836560869406885440207423504050565496437859541214373991009502936525360125523135540003292000604408612157849706414290193226068368253981792711478445094440856881438177455331288033976488338778327314977713846736978015643655834013859677668380281748351782568622859838702982094111645493868709321322318757908927517500138815715048449254468460703525295816200421665075705663877376902720382493191858648502880387894115435782145271231225719342599506727110966562239973764919740974651220567244962545813199204328204456043002376524527258389683796651331950652451235215262803530561540899757005849581615083443763996641621229559768769031474559281327887758640781176273006988041018815871919746328588149234909599963810138930589528250025645311162041001029582013092165615655839310655550434279121702914951030418090609787977334530934264984976612427544989837711413641309032141438082456352024634977907200511189001672615110703793648437497447477549484951537991256684569530847274633791121795847724097797310375841643607144795115199810581472424182413665719631293973710255537007493954452932267938156737182233465075063178849236518232051293105248276373902893349914060146169691848426542623033405942032751027861966127149865000735105570371670476896807238899715055667177278926921182552239793343638959881037372012756044055378293578059082514254647162495060586194778482411236729143852770289036729841495961033770941670910279070316097891956558449295050317812560489863841175524795136409987706284691710022650373273595600359367019317548589981616573974985096117841277667515083530220317847623353658010233831977022339998868559123865467338182523720874349903142203235793015193098957236938851772949115746470843992657542543579115845654661789414860119246959224807694013482524799910640231252238650350767670866291656210474332087253574554801145512515168533924534457339673609831875712831071380817831708302452575043600152641107622309868690502659864116576990928585354793994624068350149582091606679614215580382042223211931809745697237999586011484701479387330216111584054359077044801559241898429644774458706158207255866222633262183980876941334328942659511695229949503122981648375990128981065453255937026913159275164985197651347241745536110731249480417839143047037460426174881998770550875440287798792565235149567276864794448821161563039650122184453909881349734759715298414192299705578271142799528937716687591354896580478937655098086339018364787398236956649506805134455270193705743741329952884817392923996347864347648022626704615752029461833762259868584912740300030715937425827962290280383682355423586554899030749103687009253784496185745663733981115621835148246728438717201223017589352991987298574651753949397910727558309578594761173379040027835946152230659504116436647362946994586751279978101837195885615272573413118637672198717933477733901419899011916129335741411270208472016521097714684938084975759844763899915769545633176929846038964367552380595070714724712193540916113724175033006696244734981855274478866153847725032388149341761831964926560493782213217108626367317848266004994826498868469849277139433316163137312422282293290606612856536093664015356150628962507117004306655145270721087599008448997324488598412280126021807605982459163167101493103727071504981689378543926088490550083889713142545599922382665177802047189972394633898250679174500711305563039064242622295000407807210019062440123073323295439223071296538665749769801938157843411499491568950220982907936066277916336066979890905121255774620484099882783072002520282523056223152685120636144744919687568428189781173771865991489065522927783390996651310110663657607351413327718127597094129830607425947532816243402883347754104331928229311499667036972126294523628771586365604881782362296655011358980077791094197132685559963053325340200599038091443302666284332862884240783430993608435530497315415555308215122180748182564363660159095238851212269437171031391967369051379954570180274928379508050186311665865192276467870111230055453447783947826019459381678020760184019802803251307320023029272520351583682009189735859813558149166207999808574327742496574972837401093324635569260014354599453593343732407639432707500196706624816837423568537052786570659403528616664870996267326568308032112374326310977740234567768411233109441394562412950979840589382299205972480144669891016850779234906308110214744470699628577500730284391762981755629313739577344948713370378136530506404047786968603280205455586673637091382167303228348679839914388453128727607253408504317193748322561375342478056605474326091416171457414715356642918466574072269088564648340604546789972780994285568358183669392834808153997649859498372297105375476209910619482301921367819060320643462856387125131658346892144834751424261021936545026628522998872757849804584120083609873580307095819743137848584886201766314848467703634508922556491946323924157891289316437876940245854559367066406814836062100804760656805925041741404274498211935994091820436970854033147468970216622352677473838328613507548660283870367539274336457753980760013535322711934158312416117243721175004615773743673073394243778102217126050034981654514415590270894743041068608094485280601099277883145544653789672762020754218570774950869483701928439459386843846015590061699566888571684936144297294190214011811204566772152734997784564088984275102303211087328900040586840377657575405921091165138802963701165249423801543846743766671684676668076033388089807595234714083059002698520602068375003777443344239385116222467809689094640960351680229014725111217124390689064526087119600628979024163715711317979571980005674587664449534395564418474267567272520196305101178562925213380200631787947241746865656708787751996363152169359711926040478272014551451425106586095595103763685503752989312484249761004893620060333118706973596614454454537010627278484394715510786984858612165808633763650194385544066510303795868732854634744361060415492761719750367131142978836481448739682007339990559408151916203836048082600066318219422793635301899324088471869579528626747140032910988418214319038175087876125204388122296040235158028837882757507109487499916699522144049268620300354931161743671499458251184519192542390469551081371573486041660911157695191011632589493696386552441069774013306005995020517612891672607333853000774518435318455597033272216220797519881543852469872095504670956588654198936708012517871176611071578245042968924554753590031629620328632912192316462901421101802423325956709556448534781110509379984243642887163295733657084925467678083874125324995339953487369310495127246122865616822641336090920463196482862258592325513192092370255008516950932843469261725031028549801227242367786978332611911753431926065234735843048073895089145097477180340830129041165508992394245324463848228065421535713130882471951070621730904414683498573024773219517538964095768000234224651541461331878262245164152812867889118846183185057034091470041481108964551776949544345835765801024856263305865818960436037199386273171431873925292171873655272283112187542478048022690634905840889784805056854487725460440375674864677665545942478142121493902437227364143961931585901789148115268634311433582401963181042912495384738111092534450245885003010324314185885276215854876208315837353291098604075320388222576530658498642525470409313892955371581013876485471872292498095769311447596721338694392705773234527318592826223478121754683050963515310679453157378067711049500425397961371736833618580286356425332281844695088909270937607167542784058851205560916712880396714338235287744381002442363016196884845618609677498333471629796376799486155883651756501181228090285079646471301272904125444941395362745432917911023069606809118058597387380454070348915140197914884239756368282550168828476380051309742231805100223953206915736517079861054619965882601966781672867050342506206234723341110479668936273676496851122896833846688260691962653304505349067906065180134292473992424161879441310180221407630497273983561104582363847520001570282666668975175592800025500675172478110708968161279246372232731982830563585861869171379896752192954321104061165859696925548852259131637585983948208225040975979855747002611635985458304318989154133436817737019627438587786570872320801313721369420613821443959492802536954953465535081575972393093766207393985048855161910785561799287278398121687154833732885857205869607261278174001572146254922717257708383089581424786042708931221547891451431953715465062712880672623386062088748118456868079172269821430075848819397331742796491525459936321382584467674838438859549500912841069474343224090013647545558018023434121146314507096392315576900792029159645846747882063453149902413745212054085914752561823535827070317266103844492819854820496742372220037113040154591113456002574442161508526656791269652241016660474579565371499302099639058101834194270092373974067466386025723554138213627915181950388790462483580086072997280048174111612249536185434787758136427934067489450437840079699361439270958801088551406617349055812140901140876612432341150785286446444439433900163870662171794990037977760151042065568993886371127773309678688067124492331515470316747911447816495151247347922207677497151800544747324499691254744468628140847999986944144033046241901846047351461400262723145155456821230909329406127756374826836562353171246821718844464226423268175247621450454403736589482929560752314219607127503998271856557299107119906459678916746126472622152801654742883515172457825365286501847013344424779993181770356448125391663380345595401537786683084208833417362164357309973378829545913773515122930483820721334491355402771385807028001930097439307737196685475314553949034916377196032411540003471375561282338584197660776307227034018205092185999850179157464320578139493089793129588219804302020117600535540884405613461239164969774072036448341444130604022505433456444074866135541094838595940031190949972713648960237006254862230338104016513593301924553357350867874148880885532773379173569693149890446628184713887455642153577004815206142454016561086546525226296765425260995217140302015787646071882300932798645377978411982627724279772357142879097487484310206313292019065709289083971941463538337993946862069560642652010884630343052904887991835364940750574478906124817019490530903058116869951968844245263885977374407567179610381719056478352421583422618103739281296637496735720516496263399382449587986572075120919278413035926573411688236221700741789735768415021323036520064082400428856782782467049045090752718601356726067700097701343536205940749558321078201678468939105700787751472408428177356725491805344824899044847658547879643783245728944059699441257789540257062574339203457552893184486870198213955421673455926120136702276508418318878521713349429677461400663999558359615856314824301269235175064955513813405910590404608442808434137672627149423731803430258126959858727908155960465292890135998703524751541188119541857966208091336977441318919914608397004330553863164217822182233804870517284679699183827463367969515543365056299920177353432859199929155867670332083329385037662469299773845943749357712406056300003015669911244367490846745571265103416274926165375179350969970955481244723352236206397266023335983121285538271398315379440790318178281738890928242527460390614049038995356837657887308313158343043027833783390943361269189627189891968667010491842522160409311314846035659954290192190483294583960092319484392922533843073761317985550982593825529978381211541624174371861804328377608173761997388577005995999636691504295962978487105117806008323764695358674754375191137307050356872560975925622950974215483199922753816385615909961860735404615989284608574353463482856783343026630258049818031693777453302926517339197325526170251887523930041387098649270716464200960814441418661811493775525708713863335714587320495247986659208731495117404123441845887265786830311154387240310124453125041877402474517699189831128508136349455346728550018914355011885192265088383213821394158691219882454287799064306761589786504469077076511896455291353343365515878130164985406926449206373645769946637004043400661977911177381004506074910076671270529520163351184767019553217379116659056786323886911668399135344323998520639430262441053408215616771016442943980102509834124434669877377253712131520028903344986044322928613196804927759044161120095019484699627343699005033561132609898977080545611106210455866276378215780914646609984760598593119491172846415513889292542967384464280628340681022755844466886542827480552156976734222564340458685203058053557116579397737272506729354109718384664483348767669964775416889831283105868483227183597920025731286513957274343490019637521365540392687345052529578534960030899824459418797982629214151120327510264091335251185971376789821315603849075873939026026797606501062153377772289650102877121577185427875518698379274791909457235352164305677847974309292050716599034588473045973807515232916164737186270835999907404199338547828649991749404701944355786262569375949601502939510008466126853053441368512757897228956109049283872148069635439837761900891158278483314537126353065295477755376445283416630195910083675469224300789289974939105771343982083892389936184101355887005356578661861027824357117605500733954897808871802863884901339459776867171604995052799082697177043418612962215216327688800730856740511029075985248324921391652828669617552818136125111197461898077064967206380150826378343093612205725482814228131702500029261213443998044127179785155483305975824429416142618798127832786365755166007599011907986737783254607298494156376799409584409435276829552067114590422176701916834719718477418507305072093041908429760727247470803377781115468611844308795298472354897675054086495069588852810066872984984330609437816328075620329368192776918545931149294174259237386022255120817662095163411515582049254368153862999098029274602443565119646464084631016205813971424313101615060345391949203598832474938234930405327210058780143660111077520207472750890743601841362941955474319803775650542030540325197647464703573465198418134404071151633175338620317903188002257185931843648969669406592391812263445961108616256521557475865401150142331709227752852437478792999461357997313952022440373538006881501900563517458332321472181614311060954101422336259346408225267379045395417799136574643809324562552076916989940271413994785293182647236618150259018753914548604378418356484726105768820088868044620367726448142375667715859112260184349048620134872005731443548543128079056838645832966217915390687843511101203173449362023495905640043334419860020749188123438289024809855268814436738305338664124742386878592208307868116935782268381079252913315703519534197780730537740504329649998136894220155362509723185331513711832185805936208040309860432692634555935675614024149695200809180981436361985576372517993640674461359346699983100838507090666549303714109138180208270759989787705331332020008808112934768001655626749768539752997206325389842194376258970977520299630679330849935361544663900512158292927800614599711569872537758753829594731368211713189016345501136833175663448416000732325445356699295088633611298023211931123987449981483202349651985235857859372682927294046651712043879082443145165519094731042742738808693863002248842042062895258199140659765353479018266422390962531854232384147142008030270220549737007144286705942403726985241455359326735989810846733092185477655037714361696889225870283703460623219976544859697481981115265186112185795079100408970339609130388960639236526197619381380867349073019934587038499137395512659125985528720435599415524002087118917213490450096599722176277577731988399586833262140028327565889414585588426532614058475548007773842954634914167087471158616274563280161642105117712136775672811740378588211865161685099687240047182043356611622642796300927958956864385760157962433684631545590471277775750869136419860745996287398230817708439493167129705996551463996397456430851742901213646113256680725220723111794845848850927846509883317296269590548652727632272724837129792713781256005422360421488136737560100759016308776259873658256954532086274273794658426051862997793288354679411691027455107153666729993880933412605437949419821818229140475212861074269761347923970073513703863181302279245030891492878079163536266750881863022128657695638471769315194154788274978086791906082013111650567109183332820149062820832333770782177531156606523448821027335808234549529634589945523440878620400994319631366538634812408104355833824390954307933894738035684312028735757568431189586154608713169226880450980412100825023002678835990020724087141740338648688935395754991835644614922573915329042578528442612076956226793710411073751521276030987725281459267823356988894452683341995037657001498711477011565278816490095777417135025790014329578713699483157522921968245866508552412185440760104808677269112938806200681752753636446291035166102072126959188133919683428106464435995166901322082619876390120204975584581873536193952506038660489584595876031765088987338634602943379658711238675590831163772898410838214394506724113943075235593532786708706767813824196895767837613710230758680974095665881465901683542535594264811215083961032298805527015810889171474360515728974975533100274045014861119485997275773202651037242308888171307218731192536764898470578509136266307513911794144275444379321841132026055040485053856460644714958396445030488770300047932716237571926304573209677198203036007261160764890793072499416603949069518397824094870239197855408686216384664157436902035940036227121113153653989124684622997498197130805538547896363555892979130426194834271535010362186183179802155632196779197305947533995615240905832191338300696151342980894102842930571885839181426379124648981282897189824759652662054556538821730929274140608779933891056722062354871868353770685772819034846285545141372974363241932737803495082039852345945399037825432413076696589526289558263528503992569930281330053953803632907354568075539225299986123503182149192594136783838082186389895420645695330457621426469288889222747894166657517694287555124102932324494274445666337025757879424283828617079481317291622908051872476997152879876710643303784127902738498799299582914040538717510245031686530970264886611294829856655744402105784556137648047352515631440232901954820410926799572227087855145126919574408943459112977391997299098255625825972320291533337543218866147536030472055160404415932808681791990514627835539306534528372840444852086940452957815958785145421624380172032245363577248786513008027650794018166642923364605797694239877337455998250392726271625033263369139040914974535971559296697735658087159126177531157402487358426015415536050198902198375859513099851170160991670435043996777721683017051035970256957793048942317345013319032820749087775900793744334530707654900177988272550711734893842424506365796692231165156262956789435807971064245378472243843752307257233921173997354337794490073391509814318568262222314291268761427905867736071494453203169782117250614037688058061811082603497127724326299137758727332056099544479482483692490766918970831000483209412881992925306673907653648042985907043845015662983928263063546730751451459537834364170036110767381218168731200906606080518930218928286585700683877372360008631324869899199664133742383707005818206560972464945139160302906519548282923807911393443614826322921174542022536269003759272497416812128901479828455734560867835409713175606847080534204695343296539932954217384965280595862682483358159265053606035486986542350692686134081825658839885521056093202956351078482588428368747973758221944764028726685191893310378306828934878202038213445344753534979238955333997141572025193311626463090495261424651190321351388528450620915302296588359779555297205788195757927340295032809856514527564071313724991257691306356342805996698388673690808888298190062353547505841658606136504996886327571040140959410400929203483254043432783057195740729942362820763683318572874739118533536284426324512756804694340748523477370479978181002096101737992321738871692114755028803072902360644901695962978218383493024683978296679430102923338901220255021724048991058071722733296958656145187341176113414223904564508283891539667613060017631779381720572581128652858511502647907894475526139791820503936287467935746440700691514199009914216667598446552561181111691865375952961741602755128132109539336880267393822078285110147522901933735972897030968689041370491033270712180704853104783583259763461959362840550180089773317203516501807160228609250201117949109537237129354337865090063091747969121046464864987544855177329039050858692063239345488402048911410094557244952601437786374407145545577107630085287258286713210666906664056062547269408078722917195073946644688603027051484472834615249524439489006006630924549075385306035022155577901283804640124158430248417026426812761316492672979666239953373318955652936314747128904845654767375780792034864079332717866714432163390644390689479551281988759706976711112857066827019825998492600363309473454141838185097265420938544349504301300459300468318625046843337944570700142137074839655372518200279538405280281001944360177797630400332554411491592748918306482756434044995279968011430395800688158450270674650289618808552357825486035147109406432900328091731701190787357610214287535735765109673960421754217140738081859623449003072445964120993858259164423868600102578683426213117372788448854610976580862475084930286630203493523945754337620423567463647453804216354027394923456078757394803183685356846624744069741271250316685064248762319474883805997393405984937471453175043070375526731132066018216010052157770859871184694502687638286795446919351864483365338493215621664013581376735044039213829670284153425682581625718369547591942460382761610499089983519438448744252653246365546324428122891443372330273515285473851772054496158698898595507450048801237767084315916851685875094482500942596055798264672915712044402006272419458117102282330215361949867983043358729801339791013949305812223596920652409958505285713668102239596825523070933418461458350235355859596153792062753555154398064311729190330782410555165483376466235471409626201450764460170778406536081673808298612533219747447379110975360169015065352856413698844639523016534641447438174758708507530784219907026944893585281945454859300859431016433082883979302960919603007494527393772780694127719902749279092137761629479846193956876059692639006521288766624672391871496804001227800492033663981615288082260053297812196215080906384452379934086175123154786242373516149317040938994392064324645989623627617129328102520217439857373931868407553857458103092795539558253033170325563273304133639774415939367986212636821090016867085227330583464799227663688544592044782865112545666017509064730561636719555517417598121292691546845360237061209541255637306288546297595453734102901713643912727905526165246846504474934587817612322894820798278073769332051080325976272832624552282390636319880391305696565157212287444038880945513895520106537578295112096974928352344414324788895748856954310687476233093505837293294009475339518820363732420374434768399894043030512951419043032940990634080614599394096511676474300983590180101309230041579567472733306737791346904967380376301246886465061082857421301893344501971549165228012174230647008475961796140739016794062678487227345922090593695190650969802573854125430749397663834269753652648296592789453503747774103940486887225210434031774715292418669354413385269226063335787301632497040179668066755773032563423687984413648825917597799863116721951329653034304155787513785606612619635866104933180915285133420966380248177459976961286181643232746342318917670460980877709252672522399544008118243989572189790817268847283948507875354491085072140619485929519507667921907495310061482908430292318081054453704272250574902787515008174040648726710829190293122810768384321779942896503174246207594579618754493871146719654033170432611962204161096056666866118691512445864763660484777151376275888861011073287406106561670685270423999333846585051653566485284348974088280589537290047781967732834960944475344554107614824112130546715204269214190197448351680596580577304326542886924941244056338890936340536457259985516484725954237298899519173224814405922511561601152322059331070732479346697841490880901988553448202113792922197058415192661543834199770505399852818315546434110239166084266680180015149848188241019711340410042803888245414724818020158958772711779980662512588966625818042014013063728205962592796210730787014640460726274753884438145473558001523752028036842918308874956074399472514765422309808770928286357671125422556735857764077794021561477517286786951566091990963971514289433059825347393913402395032923576820089842056038213247872908497034061931645887196135602091296294826000605875972828237108391686514961101107975767249205140255599608213502615240816473050566386595373678754227034045968636444439423820336854478208305913137424903087296787411008903075976700867641147372833682156624475655293519222474640616128233115996804737193668517868264856082342586339192718065160544062877930260400278678475659371384039020701350344407394062517895505518410828836135727512962168081428979789075512208024933191347206746034789612251916290856852102649332179779316048909215143192785607320127607040228548438827038914184886645097324507828272829629016009699668713740845798232126357476706183130051277809733556367724155680626305939058817091979620764083398152188753591527697038995568259921954024533866126457309007321881916255763335979672393715522368777326787986800040943445618643557742548328106873131768154411281285526115774000797624202340218219942054923466556241087083722683145441558269657655439479420912519783835421210468970177663918505910668586484899619774164683197071067460920918543706236925609836743898086807787617869893140306627502522311802520436320417971959008709949631527242893449970509514786674616683065859638165101488483074850729185536740940715520946371277231545885438814121181864052361323197270295436380182643939991936557358768110510279503053580125860978683044578911150944546813932558470808943992271769194436026417357715159055513095565495541595481932483938698564127947541511923940009285936975163429118486906244284712229073536282933515801745339441093680689896272740209500493321315153277567770786566527535906932077557663195714711372228969425581060014273293624942485188916349680739085707456785844077416987865592109333943755948609092580541974920405132275431723776718742369306605520029444925576707183208879455151556569568905804194738220166580889988368541894507220369972230797641302863942591094445443730974260890301865828492054264937816747387927200798270772679454391669042891207774497359065753178131692153753578318683727348135928579997107980186561299486634192598721485510111944678276886318332908580404826754229070845728288653223294806746396596576704449874076576112325773516334660674997696096022126111714249237110424822536575225785876921276205704200744201500971850177536851952807537789193175640325194799351481606798438495426264744579861302022657999557537247612366772723236952464672294139213363089493846073648743157707940773817930893639397653076956660420613365039145031257628339363983480679820700477631613548488605001956970875584841595765076155553760445325397767523130845955025028273873288072552955621287097010511884135588076030763739367968906823083633240952754875240857982998254188249060533967445229160512266660677484751275237496263332111545125642689726868754722234960876111829208777694490443300215173776634452188122888158987734219919488022988805375071566822032947909561714018339593336204208822770161580522238072720175261320330986136627829055105323792293255300052955763236922804865991064751754344218305066414101120777245712147440754567889810939020791203594863689970387324524033080483148637020855524420026976481073198497631389210185258691070284811643479270170309429107726300166279975044701940737979729151870866911958437313782074087571393473974262040511042970880929185104946679189266505659199205370360578860243232711226750632071176007459714209455213484973745534142931909106172849300596414008910435392026979252092549734694359651308329091763471945728487732008038127669987272682817256047695220901217752738793356255435586151528547694588216058441413047551772280027199370122361019906291685991982419121015038737180686282028991575541398963589337046483034616023785502615347756065011337908782321614746026892497571390562499390170570931262312213587336474258305543585953607076446814529539381128823088820207763648029076338492711024687563140249055213140469391941699328293238323299874603064792794989298775359346474350307112813069378940983512824894166577304093639425167221652547320475401254389882716070977264729586174041795468766191316214298109616089664772868794947487691137333666866348566219928877523215962198314630731305080548170905869723765968084734782309120016447167520473840917358828673027861107905859571356420505954275321701646109742658720375010958366425599564372052794285584600451019256867842760617265818585922025865598638674045764875947950871790001085280289446626230463648265155108035803986023287105042492290866384055687127574773345676571850446978489055081484233341724919448149455945448090208994389107284945262505417195375136658168909106904762746027205905306400588205828133865356578698370256793102499343357296904465248896350466580753421808628889300535112802919365871505128024672491474551100207493792988374502882150970892971696761400911820413231979851742324897336066401757673676035862329676503819744945397007524902399802567909955646802772376997550850080611080934556926054439219942844741435260805918063526833638904525013808905282121955128525476139202067282746991073651787685065274618239042242987058513451224708127223577369550091609687138441080815581313868353389130900772914765589135820705786616934420873580785643280160654045128875982747855867598533005923556845868790619128061308244701612690665199055703616290188892474080244190357352458341607392617172516411951099822173689440061499150151641632937015836570248086495885052187248744082594939430224088517413838526766754355038146309804089180052434948341777979330200693557443691106330709393086616715912143075241488651035658415778104349223175604985927710635059722500091120815911227426811225508514439811412796083039186227414252555912386601762869946275246472462639466069599562808768247095409040861456357517811098361814137532503704104352274442885645994657144095060133330016233844640653476857986246887862743270902387656801970994589037890301608247336448464705614889779726683643148095822091753462737016395963728584968809605677043207424270862552972814283476074836996976305670208159109614982530336163546356241032019455934731693277509663605282010838251597403781650343127473241907226557593633002233556232070284232076782642430278276001699582923272024498473830847560964830008773072531245611592384004793743307091168081392973964004615418924823603956529146493093701404629148399602808775063436647050808343789609361294020837052476445002585877883212609265540425083416126242023776165976247785257382535327753349556637911513333544157319543965625127452505506545115488413173371418375699967802506092606131017899507921674993728073491617913055818213443916686073012250575788467139132363607402274976593066457102786683519459694920185126029964782372545482968051571824534541778382743409523079104465406987220657991310337340573312992096343893964047447797082919160665640431616835350533721960820520767733899820106268934940446415377971241578460299975857402960673087514454828083342451398537302927545313157876548461450859115611158222932347591057475381353054883375054545670002853362740204413822389759375818298311318031263570918935964316439202002704576559751971155932003830331764836962007400430228441429065022599514512827201177050485214899977138392584080465904096781352285052021799223295714968768077107058217902932904569972672014072162920715526575600993293614706377356344035326225935094468390495897482458618142565731451389123486005487613379195311070981656315560048571644114270454111857504884539389608176529413964858216460323979792105428497625770659709211812684427295537978496382631229078077316974345748728298729097935239062433830399965893880039623454875894852611457623611049884854435375135686207770127269979332793780236283513007697357883802184365694880666838076463921213772140147351773858794280146170782190314283499779188260702721925965563106330697907321594335368389855936699453130544413357888620061380753975566334609005582024039505451508154185346252835897030367530071740473963901769167928134400110668497219538830397679055229145503067234864600522398015680499232954695672727764609325045733965081328680918500797095329611401139273540094005759849675630706713757433634913743555759265627827930084010752812879262464919193365831433377557757986288451700231189220929003270644650787011707605854426589246914357660045652996094090156341002957468359786540963200298049103663633750037634646846021656739307737004780859586178755068123207731672598189924407795690868898411560810130355642100247399398983165933121054793179288902142955094644379200527566192490081502796810201127030561605101401181300440811577521457787772528472891860710016530438735772821795307005501566203046969563902438668843583303726804855220100648779246991616655971968903295251445630595774749358194109385467376635092297338222591294005631080141713180285202011225341371276303334443718265675172630802354649696632188361910606114633774378185173138515157686795291753821487134080497902773917557039796423918273981320209530130769348680150684013340759008121457556378243856488191953049150010118491039726594269730268754142293391320534814264290740746637125485627583785679693738404215774079565641756553919284698072160925049423252150345748655245963506235994683703483034657021592236095892852676860301255473867464496029394080901844493561195871804657861232908509667905635818132049900857200373153171488071157323965715161747397655390747234928868877819006329337284396054928358565285612318750123829824001385749344693711256513660552132280184317034143404546742975764302855201504013523546015132681303841639868132458014607269278428539498313752686310052852740162035015255448080266578997042704485646544195660800383694180362667834840049008005266347877669735341452348969238337241999610129736612894219323039011450773321658790328114675929501637985424800271324385241012533017345904423305653971724181745526317695168137672640126592724275427706221830096690535176564835959319025839612951010264459820785007581699825924973263133897459632558170922320898281823150950860157384316144399246036338623802600519277559025236813426185720989448986487897158795915987329680615519018929687617856959543292122582565651041301583926017676843614654441700948467511997244223195079531000712749984988658520326798901516589748963529374798783874971478247348240933072455350952856450707396743314639548386301436455537051429492794794469054432822137763560945361569964290714979831297534926122343810760653528660777783968584631095750916108049094795921526227279073696628539036709177040197653540563330438379582745196126418587168278343616548160467962254853039003503209895809191287203557365633931880380777680758633840734249695652053316055672377719829262057277612361768489214088541253005815245776974088376942854850284223804435978435426524719662442959335599603693278692770998884496957395354829122591216393994712897440897501987639959887467899674098120836172699939472846073323082990848161835287101430025345978201334929915784793205584561547534532264279307267210924782566469883878368387778981019865299396602963915232781503002310147441308147098740936135066117678203614132360170261990052627934834414595095368617185789947071047931112314073169048779468541413109548581294399412595739698542542790972697103493794796528765247967833994418844847487955639616520296702968417759498182481609155568641698401158899108113059000511756265305586336936197345155999759745575305692614598957000556251162655443177151495912145044197480346675264057810880699512963372338711358359695535546688318771558242120385144624820301067189534847345536996933568261906049723712555743483032155217547679597126732424430421186805875173275629830336847246971838317270974086672948915041006327710725577755580566482997469884515410311284196690816855721030401406733157384596368904950812140023979006963445888446028569983767245403813424225894848008083144230943815959981638935154781016902994622605957818211344124709229799652993538633123299056141942306573913214938318092647465107994570077700226166838732507553455254366435902543574482480579490906121572158393315248892975677730548509528882118595588576152871459131418455827916172222596652664995657333576069039644110733330649276831912837619541222768615591236912200057173206718255826398247847479687710001659159208245175651808775569186942068832335826836855720041196829287846381260392040864716853934020989243671358161275356501674557454344875373926096722584978950589680215829576379393792434329399589087269517600995231371455231894787714070880669566569629502125729651040995401870067616641026083578204761684620366768054970760511638601624772267594705257893879766365367585783900417975697330954199177535241705862918632539099773230469518879682234903896664942979837708808828813404695658003449164425403254156604235733260309842982369005877414614092000100425613804141878877650122434905582864257615260657960782596207437229138708267453023167663091160664726057515626032493643450938316228831917690697150342756475690509505870806638617378907307338661109813917227587097832868619337871774936566626559655992525084716651127796766625201452037222664484820874708924682487249711874325790599968629291221945994405982453750803448516266101903572313839789884060063811363531418564781739447320294981789711928798910816334304807557779853812515020383576578517854709869232523172133219147001938041134530342673788192392487757239361934406601430475587581334428994868749493541495734488382567351118628908034312628098300024999913895474730067997651179892805106890526446403514372680922082716541709833608166326807240748226514579707367512602902214789990858165872464061107087251287256425036726983897955062039460407661756859825931791527637434887214372951872063896120865961183945080560491314538556793169076081841167901079241089569119072540948841407345655047549048257566741999624736584429023295418954604047437218316526944291771348971928566298589399074875814497824089694732660106189990177327724707560397221348308751896678828829337773635098778210558960796952180258978782777866435650606570168277560393970754949891531942672134965744486492145434627085701579991490785944655602723839209315802900942075366774111237930030114497154952613818065198186710502663333638289806737462047143580366172646142120011676421257817203933206751154633086608277279459781667463150543764017887684060433808209987401769282909547627796348325225876702836825115653070469755399906280929954336843632728382636659231853465393958088209312807849139196460161732425955905104951167710051748207652714114173324091872278307027907305339919929164711925488608229309092958530109117587270559312263503898796644645061539341119059020239893465494108041422011179325061667281245938483763744333885038976069995680063387530635559070794462428246304983390758308018873139837065215204981404622157058317171447752032330315985789379311750871282562630701705832765959001492745969441254655801925827018736474089666110745755046117794026657129075938282120486401617501117993587000037901095266179012759490879733978244918133172458633130995191886807355057665758841211234833221993124664888311210198446730761108654306887915451353759003818727680797066296983003374821651091687900572409725891548446883715059724712161652693713782955858364586630557531250076563024126620814390691575065946497071107589137345984796165155669926695311789472053640522999533821973942656118698765011080758483429176640920852719815375821167144854155444097549465413705150127206487163667369367405803907282906699972684287171812224491723614813401170656699359738797797392845033454054223254368485321061279323941579817703277788071920325231339683108722249419356440405149019282863250093261128060973672594401965405537798921173305640072149854784932556695469993556872604424165358609607868938749227513580331957495090351935870356358033349663533808193721726849548772496910931064559658931491458683945384365959555307359168753326069352992026058358862982328291544912573350120819429159514598050140622259757582985178557378378436519614836507146431260817975181316908663816159963125149444315836032788829400692793048124823970677460640442875671099642659480428690116760205209682821468210281485716880260694627524086571036489786250474610808227983979882367470302698861133103885658542668699007048446093963877474081228055293246239133668997310232896661167076206286694434247162139581453611480220047960512258263570342797263463603395637960713946441072086932084888231079211506006028421340821846851608137337637528947825283646649472428868205303222537812002585328074195663981009895548646496580962025208274398709116808665736351917521101986476821622298800575632412290828160385061637433046262073957587802183128531471038307206835988753189837309350399364565646762323940689859009079512089163121996312396097746464779003205489187009400645447003918228715778500578369240448893994736108162358770567176070798359769166967126723632012816826755361058936549183134032307714228416703668026844843939371567110412670476888114936048754392089153393120565941361040850077977335168247364350127434657599504282942363971129517150204388389902064273031805079961515251099252602680845812490114899783392297755902657337771828729067096854612556246562910286164941551756716681632851795077417806365642021470407532320552693599190364655702508527142161800028802471900036294923788779065985220005829589906972763115908953670555770359648703251815234890793670613066170305288337777902384910929092802750614678496282533927621204873221990094968012713468614064252922213263399192472135279928788405979489236707841648794600173560750783304098214764560759354786404127892851755420322580153794680376919551536350144298305465655272569481488192377529211313693992843964816544444860245302801854918882663993141966749253744349060140320748213269697765148037047051117993317491427724090770656848390043491174799758743973936508951012663542562813286338085618707638856438567641690712945577212843350688753594930903993919269392516187678198876082855236496659358980180418860014027657514840676881676713132568793977044179875092322939621362954112856333356853503202622863479162019643915835961686752906455011999174400604503324336969562801070822990405932159927160770541099604345209068830189722694758852049573899835491787581798808659421060584235071892362662911745447391170303568319519608900104769470377461031463368382155679532150969574778639234544035061322415658845732017749540031321173824339542059389404708193576492161361754674429116383957746865102016717521067013922691172352934760721547350218388279464167320500954157102291875426674762792289654321848286758153046323912719498952784043929385706420309887414305396124600890092390468194815215456865571111300741411227064749868330426900394225395041728768760659904556330525804268798115413332570591870391748790006342013610062301076841174360521383759203152499700551204556176868616378928979062951888380798883751245958146086079629822778433814345170189232263108222520370715326425835188625161228173941227314796615545643825673939960133748999120665225612183723699689973177235334354931363657122210497954229233233883501305912065246543523995833874372338646592619796607893290969424811339849152570407972456903161246392151678097058687528451194754944316389713193726910384665958540392363767786516245839170162919045827053547479043702481592170403068040993086749935307858242304676686680194524688115860965462109846196296480028706556844470326322406997599459400587449657068267895034470652135167982675349870216505157835547163794983650278962762240077929692067283062575792927816452164085839488569731138112166510515283903928375211300721380018732217121001796778044374264544479399909916184846918271272289195796833691501075567620622002702125587871406981968337541830116127213317578634747761745805089857301447540292678254852828674725083244243423408057386557603450275831809490699887515144653102493418463603928435984530419505884041573677502680325069344693379293770397308363925706289323655930103823127173624437003619488041887611571551263639755326308790490047200141031705151012021764423614709741468711514407127280394558251015203872584457106598671011204625435270548553186417367961160441732234523667683054064077194308131564790472345079780084533161888401306454027363749506233229020920285172735342761535218227225983823701870667120239312268421468864477058214709035170625401191229619193794722164778599257816244502790718211586963960410459716301104650045150196214366294199907152740016823779815169432105737830231521307384974392485883916895717913208486509438898705576588278242084197176111655251677574596718154725228602902448462536902836887539176062535566116598580612786880966264347872094665213645848830198816060245622567922104106849739126873969799764154512803426598081092144463245344717622503158619885920355266161533904116097009300602342003599209949631555924179265017259041416239149862058835760707708452889821518788836275742000381717452178596043593606889381952541091786001924169126874129119636529598576101428004892894191287140585178306569264976309774616188383580841998298251722480141416276153987172333129278669183611801340134747267011444699168344575733533106819580574857194786181034599248185941671651156515518979992357249149557877034794493133631454337247017198921666989552073435938479252413925266651775267759527073189379005390250249583657703094406288696826585278396647194906833413823422044180551135058221528319010657569593469100208510356766858885915201251697258621676557418637116406126075114245950583196656718685893736041838410859988624299014470288588079718591342588649381165491494766752372097861223742823460195115363277398351462670222427861562307692087936526697365846377651001013659465093080268514307627900568108776546238190924160797620396557473810611062414256602624301735926581270525927867876034040952134092627574843779510701239636698858925612741401628576206702162963000777880965789057620374586702672392953372270765838273754118800748184624388112205653875937811152402686732897109722534040367209899368849289959033113460963494100312636230905624083726754361733854260071736192144204094522658486584777185011001718146156078933678451192768802484196508669233069072979582293117996598815184620612598147643738789714084351602274651204060902134521835021144178572443569276944169319775248829081448914689166927674122509198046610164513272250664052743857200853011065886394377412121933109456674517215586060594567792283997687752206568028866712652005297067825152069365150437713875134102649454129795800828440916336566583667626215244496352772541286474719210871250018622027509035625458335280319516580433724220558959877285894208348332230756961781629445177566294657354648110845714509094838150842794884241645309934313080070343697177650974974434106202434893399623956573442140258727117025158545435482545575762287680803587273913546569556859341056833782044016528197816408114380820514709595830613463708425254915941164067522142420534325939786686831747108369852857554077552548696522277343266279610586835044331744880530872606290835603506763894960398676842265879572505256189055963289066448556180809074547484227720433846312363380903261746476056269796274271627590493282742657094661285470379583556028081347368452485519893977827424619183311086003385253272255276564252625328594849997390769250981273765969503090011418225157004690468565476130350848125135027392848162098431022297750727411599593868220322612015170622987330582820978786779650171299884802634044895148902757924143449828516716153218415216272464889675580412737381672005401022444620436557065299163400773807024743661669908571331240756026456409140243318297903692249345004197773582705184159220092401229445968960426863247157559327371706291068461504986386365493975433384582024031314403179449174584747716942306193622158540210454636007897906908615270296063716252956518618843519882805601760823535821630112461548515511679744489543341799006020389661897152996042564303969338225014638601648779279495514877069204560313365862794913512180396028823885513876543833403170283685884348029584965018549207282495052160479597590716315225182799916536639737854483498074222277729477894832506201382845638909832015655834439759275332647117763130094093491378715661382145367291846418613312678702387553826480908972879444128210352873774689255765642956580278349106081113829089808795370747172240672461644119595294250822909088206084705701821658125772920227678133515193412193692181242869971730382291567007480769199635962095944409265817479965074231753631740612449586911459861137407252611241156506826801524913317717971480674652224407993595209952976358027486775432975088721797163925733577092627277739819633492712995459999001545808680024304622959615525525215819787772734322077809404503833275687495811800880412250369239940345839031183565873201753664160923334388807247496816208383488063632375460093272100259364348244929140577699526916286919604082291255842352224409661305537442238308561685799161566209155198835052926880780553624493951664313461007493300322792781680182109531677872983229443725732356975795702200681654884583797791211829950271382865781696945460226488670715265239847406531608091530670478752231372141046875437735334532728345291914453643814024228359807366077608870712760864582735781346917400470877633441065918073668838285351275033066782898123551725666898566587162108338373008022128234849337020258669141051919589206411510749124151910582345488985331121273562332173300756313870461484859279407588772185076918979851762961542659459001488065137742451972061951380814991473613991729805871053303161225731113152298701608611394006986138124909565232371884554215211626153186254768272456801500251152891614727379565375391082769137598951288688906755435115004439908063250770203452018585272944344630392577549947075742855870000166628950546929007097648653190082757182797259164301307316475209677154064912465586914536566408123481387398697337237111314353285043841779476431675767226746998422084578333607350825686748699651953592780955707610385615919202512493897475154886035561148804606053508440186913523115998326461445349388398883108153314306171501341921457220121991886086763895292560342110249495061397450139923957856381956141097311572006348881643428689470346130638218431941996914375280057462437490802761543554118280675529759698121758342820604719273815227760425761416300514300992846633180636780231968628964267869810038837609790663136903444325617395066637852319747910828862778568203190601646037405134773903653392425810938007494582393323377909574133963566914789534695941775711255626568907103733553039429768338353354692231223821474511336640097471085705344847428022850128120010996240964927509997349762367558330103931171141645241734061278044795181013315612514273524944047236629173877403394337484088324369557979588863997088479707922834938029317144966025347941893073896155941110656297974400237523673889861843973898789182712481403949384757723977327082918535355837444265719537512589901112778639335333582394089316655293087688674931983409529286743843622101976383552028896954676625099196933843652052141840204592509301640064082898929863841739370987169071264024383918520563873430896603213628883766846259496685843501114517402352491949122300391830208192825195371795805125913101631968130539260026173571893923851925650637750781325812471357115795881684251653923305316294620260253874795853398915867058096136396303300861334261360470385419902754725689124659965404901765355251584808571013701556659002861209657853746798537053534560632767670359606560076345921501932306849790161663038736976599502073155907617725116461952454343973995483426774400653160661810488033733641511738708266566756052506887251334777113100163453965953792246587606920510802908789785311788563400399879815717808023922853906373043321591243399044098986557721289652486081000614101157198410919174549750469427275259990023448962991520837697117408089265123676418158179618020375476956175569038885579764627894610834414669395693126201524621614968927860565272152459909261909951420607861477929841001631468922303623515657626457038129677642569252064348986612166539264122129146793012113121375760737424550584502546894323368347017401739200781131394849647640363179020937953098072101582976652590387458417161969785581299705211796190413198790375105074098342805577931368346068411121074937316326101074183169999162709273406077951024756657747205761047222435936068061266510695610222246176247016862499042227511310004723303777647696575173596062692101306848052919725416900361057542470885023757941891672900889255741083101283460199677980437408023845906006172882568812864076426765236799856691458129469289543911995582164610090198604677567491492545924042282450692030929699052896620475710084511217121183826664472279489633630608716987867856231487421616382239954301331131074733383589059006059241769493275100763216314925985382935940086275819228069201617180850793856548032280122072779701975079883494968813277597687911163394147573149099606218400630159051345486304625346233754070532913399821560298761660172826246606497023758758533259301871332806261662332682563526322129160301131441445561513260365500546821047799105567378146497113297856782763362159321426112827064686545671699113317419645551660451242276980717418285329310476811560948988601265665332008998588905586200627058996662666572810318367939972148182737467489719214137999044765794442957913326467719374940925381689908153223530462778940566994737813745983454833022636727690853178644581326420375164702826174550364354280654733643291332723873949598278567149395659721400719597034241957047459317859037656502586231838963336123945728846236223460490350319847875498821450969491405369074061350349827376887687980932420599101326518549761000275472750110526650247060045137850671659795078510186376193923780544071158831156830039126520202918852776604383257437755928272497584697939533194051378689659748471984919653237299493610848040811512494009631884038758983906831136532593469006657746397171576576016944708428900994523362058471824148379622995389827589190386362901741172320403353911067460040849547842454638056584043060665182255144629125003182981378503804393126089567092557398202046814841166557735638158096426581419087371178855048094077230709493945890959243595252307609317737171681563067890849333752725616920902788753568789502515537295564686887286850789914786034352005087270055981104625438525810986073643049774625601613815066052757386749439102333517060580648234712143062424421075380420374454600827663048927699323569281751783758366573902018853426019002529743276372565675411054061929641519276515207294611711027326124488686943121154358443924883361878526644460754573813254865241918023764929978984155378780588654283726761092630102338609056032916176166053614618430712435026566237724954241046096501385917274667284420395099098061722446100889315275249632610749650416367622755736840268087013127501492173955695334314023530094918845705171052551877031148903416963590723799469093475188214749440568905393634731493012017348537799190018085791793755506384117386610712422820937830137356694490189741572649109752699325814052920184204159281409991003820871700841209355761957644620430419513886245310466618919484704564115666711637494839860467806384745913222173715199589539363242866386476322249089931720943824172915799644922156107404542955454548244927416290558245534042054010614564224394637418462751643077302865324293110819551407506682556208884628290638711245706641942869630877999487999387619553093004331641875722648362342112538370890024871545761779396997243756986012296572280734685215537481010270106421591366833448317091405984954611398694650022517668828315444761373731681033641429642339649749462689914279484507606918240167407502385200173070604896421405952302473211546139667139288355996587036318657059128701514944487899782611958897798624651456543639501923183041102179342758776568137764628349600618686453845655435867514981778618791874689846797570817791334706914997378861794499179942918446534503926923444321443646181324503790662874080487569212108562050670648610901916714032992328437914782110492833190788548847456530584079873550306554995297169544446776404633426507843482703377341141534840009481560018897406364489936929273147697379595747343496221559692971430653422056491852704150264378435681257243396248648368836717528782243920571789209257032878405893252284682920043207028100262055790703359332574313829369301278522055308688040212533199111622445217230342835909392155655138533025641294789986896964736368965926821399052056416229539502511741051618122151151329358631909303285433534152615689635096911577156643989816864582585932613702201124241169641954750852983558557654357101374474886524041560575547935912585894480865167692034388587807792768842013967313015511243294606174239663908502587959393894287666114105336110349323446841831271523233323630221032222664877502601947261387118442925564797795634890744680936499729188429251454307965759600046663637612853602762242639703062563673624272792649054101022338938724830207523596711392039416937897805166617850285582469583866879038930374857670623097875816227387418070879466220718445436944850837699052455352137979568926625965631620177429793331499533265797044839604834397733522221315596693696092649577791767239345837850976807245009389362861120914004419289859858582446087238393144602251916309589961513744778949717054669133162461871875142484106480258268308489892443260256741798972858997847793065426972023389819761592397331958280709013730244520695142892484168717426991353580629175964585099911469762653356203310003360463674268010056787120950045617293790207574787590830204750887248090984282098194566453532628274150138500922213436988668197888585027147591395256271910527199725651766982827216077035904017948642018268910671399880493186923352066425727973327640931256778844007679624500260471180606393148308910931066716897954736497709991867035127088920416950067045329227337774186540594169672535286173495434725631769526316081424089299056956441308080958270287864840190886841051555407094140238197086658880400218061126638668514977681486240412099745501252125741005357252875290367325222748763462207758537849441606112826792857646958461999773115090300488763011509667229826340694668110929661796005227519026038373257153273372485495348202588704990013489272269053950871446106090779503786637165165936043907217807559231121482710999886225107985653680111670911461900218778242070885095610137308262559994644407760460044787224728981144923587942279343810052076793377825340770957670539008334949167757430622383580542669708487497566444521936801097169082325635519602593905271888230209874794766632380965693657485407345861464617043801720108957820140937197682628402591813876688173616203209427283072845997894984431510871965073222116466493423273678238735792184196532470557542279719222948912857851182299274567562916955821680803648605228312516325342383147784298057215743254773793604877857392866991164631316328077385190741308968139446628265238032655312116782080121757516411873740745923853915274365566894348408318948377760623547015361778254644287293600542131126424347511461138408490188090794491463040877966079253334926413065052711717355437729191781757136014681652408396507973481047930566343310551981730033265685408145810761950412180517959122684901506029979010118425567318904017898599246236268119026018652212002913882611317892606758964593696620790129749165164428804860447389510540596082842692501091691186724941136187683502520248598677112765258616022649736298999201025271535293711135129034612881178189608915067804109066510507792702311857612613825006071971000459016992918086359340316562280674025340170957426754342830255840903946999978143199436334177501450779112999879727895663833328192425809174002712165358349102103831748931459916239603827679489829052617665750988810275719956107976291467045394783112237820268497409003100068771293069610125527362400500549247452461078054914258745133381983421008476856409294006380560627511640613797465982525412625744030800476244906660597526735034273274388293826260689025478860425127455587155747876611782241571719813746576541281823426660240838804767425520190921829999363372549522576861458787675446783624658484325092873804096417622638942444883310332292846496284603674987559544417482196910673395142248143914241207012491532473885592094859184395704615276099719241810524412012420255112433371857354697141523282922713566398814076544020002431358912347138375605207412203796964627210382745516285643729560482718121171049350067122847234367874158553846571036237485466532790229941730141019091968392278350399050521902131351739958766962887810084108953544036920104895238702875697857567570421467889544332418461504589281832256172605094357457370493222431636990142420370941472944241431237328849052139774624490075985842641869673473668377716622381945168479416798375160369017827728599253968647849499658779562765391730590607050978007634572850842785531100738107174818943205820394715171144948433825877394566567602373814259566285394899756376248516782602012177069063579812251492936132514576572697139371958934886988743264153617267745114952539520475091516392767824348457105908462319983552309935488387215756802820058758428483642169058766176543152706290381620205394777098961695775538578134729485206329894033535005792000035411711736749283512386578561994339877254864887328667986910000529274343995526324257327042271725710345667691968394351716032246899846314575018976028248477842703901452098517935461026555131541434735361413152505322307961990595335234905184785297922864777209982538442113891640547907140786160357173459041547252571280158497114632297678172645983890230020343646127280229070018508927979950031388341047345981692982147750311729633563842178019566227542315483554062610291626431931067759471658500592272237804786844991157501922449135977648487237991216856211400238724155571362273954460022080453039053905648456517872159461396970093899549886617485752139752691620350735927104792942298892703371210015758152894586238408582529645144111021359691572764387120608625507771686507936383589629273910337917531277467371047627864382098603065050816746185553677979499499078306514127069092634046198300006683494324819396818019355953003825472847427220890145232078188793096265451409232010262410377549708726519750276129116515198694638200129733529669584358348275701408395195489651995053824618012426253419513792505447763986798262631314946892299845382886473220910696617629303455165412673555551059993742820928239206720411474987246583573587244330676167971498602682760328183420770359694088074248260821185890753307374536338779179646225586857366976411096500866711438316415721656619166226865550225032480364664277291105612705635845677133128794661933502729626239545605564535543479959731802714026475260087992121648833954339266055388255210728810131366671540162183095481312575931775759948688417337509681107833837278447278080589511282188471754751579122428899029193594008502506557594562151032640008233884341811773602382641475450183526141429593957960101623640248773492932261941324743452907092337215001096126784510729206323981677575484470198583549331417954868994627767290159217566120718167045212907676429283030757670219595262620903955441721901585741375487520821980403734814830477871287807969337717232504086632053442872414763181911861004952708284008596693393665792194648970983828860583820048360729795150488083071059004389622373808943230850246541533734571659570476322869510995648957258549261984624773584517531225563531137472151331699323907934600953805409591515232950564538625562891193473140160395907327495653378243427672279595979642102696356187849642452313066660588412838893955342971310771625874060567689060450568819737117075561937462290433435786834159448407068078290656660088548334444896611066829265217214309667177863629352178934771436835479002541497222897330394549368424002405181364257235349288717470302988810165316309067321188231039886397254563624425962987048091670512649984522407717276475787681683347979743416948942888071860351752131850766391599829408719471878388621755818842438816060185647316546112012025797502256836736540821616654978943968830214759868373146349403022844812991697753325970050309312493572260310574815982962737442109700450720368693878132303358083719790217450288098860768502471078052492841248655448470540052882348268827428427459783286148059577721232190070720022397273379465800640287523231689331779820549568756031146560076071031989014122636086954561667012011218058046357135785967236203139979072800863202244386043857490279188872341079557808552483543730350426243949305530283046967026819913795598121376391835662446106462441891539828890962385483663702492201176255183151927445179608470503251936828020664762532281874958574055541170887963088699120302316494717030987148681156277421647082143195573117188325740265970260912400835026336508854445685597354585009551686290503963578502816723993984998305616860316267037309977012896094325795648145653762084615822746513705835165691939868369223334233565538263762698688662638478818695673167677657055377129142629537698729246171856754561229842946641765751229068216198149653534878962825743762514565024741002821693970762454629611771150657475503684008755097472775000000190385320547684623872627504233128030613853268758943955558942753284208704903244816413461847422456202215946576704100392288544798236693848248018913357062045230443823209070387572342183559408573602751089420255148596777692538136272285321403138110118121751280215378632555485355555603039356385810391949618666909228720153032366650801081747286354952218195181220312712644135597564886375901282628375173794628387586499549687162797347965796865768739313410022439179995945813231253612264933861300917664145846339113088576844313548853013989515073913615301678053150421459498460116986686880583118708013636711375214106768148740774662146211383407325495771173288521295798146341420057694899516144599090327930747772305724711046327598558757274579765817165541259569410789984201367319829938025933549889077860654060306796087181053539689855877455676593469093839566768175648483702924489455934831610188552124662044387125850696296185490491966346361772442143279897340154610955270768432113065536310615797138638148850816448167321037814900812256433193173368691084660569352591348141902029657338897565660017019113634854355635449207356646243590500910577356535445014813074544794480614220196421505421658192597302045238146762319920819562399186569320838913765390289480700225826694346532960487230613044872106192783162462256322831309516245124824067329130944256758891429124415588899497410859949688895114561990235718153981841020432802320970867383370275403468763849342674082932608267076524470494830650026944246719343072533346317426383306722576244468301176121849891263366697365136668946090659980757405359591085330827800313550727376953544995611103092844324596939454298557004440920853503917819294143181729617208779257014039991337409495056362540608173670754131549888824979948501899164487600823014400537568999495257225377276736683148773569310629244674845051531509944374013801020381275687542315293654171170434780913143615719746243616032168080703466931764652896858162563491433083297208175133729116706920463315393290998820767741252481683070370347176838285893923897454069795434691358550025026412239472985730541499044343747371842448868113045723162533159464745004882728832478473766222345236896958260023041875797330681743606597364737847558269813217965131390295270233031314374180428654234757222860262486499919217188740109034641508754404908515640370485664309516769289841680830844616645216738200242768536160953796115033515006904318518640231916329154622665894380795472769063275773616074498788277591758745221171164266152838672705892004816073437265324267718731918813792579948550076275809742420591283616581447095948192627507620574726865753919512417006492470971854808091411279469255833462870755539347387340396504832310664679696676480116208528431811944180494674545508748616246011512725847141801654633246423956435230434852188488180518841966144389272057036542391141891309088969439863596417019081275629177118143761496506159982537924188483017947257855787892418414506543048020098397624836081589959076997912054284557650511262877715760579571017301230343753555202263964712151506534998099892455387015993351549173374555284467516563518272955431776393823513488814800870295608388058623047280280655379335394760510669873112351529490621406566934399692331220038240353398684535636696496616582688686321708464007379337041248711824045705481692675942451309007197394924784794148985291704976987482234020690167830982708457243094000335743071567907770688705339123433505641284023504262106181472073783114225357192412642983037623847933279850774658361223624399674080872203668804078543480744253584484099141891374547030682071946956613871725103518198378053007126406649598770754169161561459317716025801473776640612178395452834604950636199719360109409519521103079505617503195886959425704513143781071756388390593417422645508938067270620920446811586208153024182057217483639033507691326889297286486453295739441507107886442281164290671061871730729042840669207134850428737118462172216733466448177367686998789982566324037961959009579343407284920425568164734375037364772307553573225509125786918087560469101233557093646230320339271795381655860331386243531257118261249783211491382934906911348639246418162793532943599089671342412455004930272831122980782608523464194463544676386929246093560510927145276936924688723237476968318848419624985263252090616401909867451300062416528167861794439054799130483192236486469713352264863216026321110673969068674807411761873451534568766143695987236767394693027147855887332814251346226760652234659729540100806930058271207184783867437300507206269856149493405207587693995296092135217531432721646381607277402043782537880967774827679699024415717837556371359591966567332916660237415212377908593970972672242857914655406407366565759194670441661550087808904573299757583485177779212499961712811425240475947871356255547038168308692025742346691345631700843645064454903303080528727428697910764295688862899309704667039185047836682948135882115295136416618584917740632902052553524599653716140442410158241365818258641004884248267260071692378631225741937513000957880496833580657109369499131038239604168886872647063646049300236877786953302354164764680568139367846527351968816076399069946077781321361862496648879415729631541926194423805662791798440871845617294622435154829606956111031667936736815227554034184466444969886808168017620746890096811924548125602090566592027557442816622616631277658510071441162305136784008681635158196640269495695876567333831919498829425488318580881840873921807725045646614989448476628853150303524039296031664687505293333427216249395783683602888132064445243462342620147256500903916880154714982193781125688778095547132732423143707968938203497488379944033332984583571522784651441425284566818659371058305311693410373933951025450044485762838236485504200435058595812180391799050124210983848286217651268706559807397025976871528087587736654902997086651393738794217475498715446443983919244802278019486217132613435028127901455047079371855139722043727384884674345853709639427691952922395186793955764989435097373142403011838652965783535739315705533555270847935058179059313327379805829941987473481140135758797553169863559244437409885127009547857808860980217656345394136179983510944894896600542869674382100880417558938277553941049380309255259122074481648915562815526057543534792375721191782461663412849466946097168068757589918719761078118023209264994280311095190311904352497572276072214412103892413794492276510679642873995598834413997785317894498037883456569027587556550629339749458873857764665701009699913649747385994182914531180343048932850248128101879514171612287581625007503333193098170278135271067572063071967359274606774395967112894101068422613253669420735662289226602329327455493477450390034018798585620429559455969757007821111160750648557239461713636799888223095607384436382968989263178029093457403830753075164696717431043013919853150905679620411793682687103823767288448113938393187363867251969856102795074905181825928024163007747043319650683294919328823254789663740792611218607574433524135563301902693827939058369945098310953613207354245055917620614391055784105714020412976991055373925802969727834131358324177153353073066273578468168940410745752056716838007176102497699772381333244812670369285863850156482843975448843598160502229683193204860549998560061836128182937265659282388764123293389436695150431572933416127064210291838982820692130471506777884544880276112934947065374007127613237909190190731351505902641441759739047411880419487931565382338530901078539293321334185733077464676011220416679951897453093694683349119555251354886040686781368256444367067058434313737674440436697870743157459997474779590618409762170643389827621038711470744494752123302185046521506853643162237234380544657444647472099070314197593073869918698311462348223956650030929736765006820171422196262161645118863396691986170403500761629780036129633471361072470268569997778111491057621329527104378660759555850084709869378556274141760567094935928309476578117497783642976604671994129626388214115109957923259177194715797807662933145910295738765969092780662846415545951178554087899713301530299376401638730517036480056913759637081631430315607325349558422662743671362795168078493024948442410706012806462214214828270440391553093282555289181426261961663421024793385899576584325289877459273571382052603296711897939086605085851685322368030581969456959894593184205544815572153297320259004561361604888982000615007735692750169849672356935470495624772950968591871342602382623306360503649712056997770929756003074513385942761046944956405476400844679666757348517066734529446213491184569789111158697628799402044575374710242250974285951685534510628210590651982588473067501380502674320322369475359386126452471482017774687121429374547095666856575782630422345255570662911348326330308635449477577645053082867040222965322525701882899831487028157691271400226264580488928042381440590708935999940734210079026344729283938579680855665680781013221464723698963234028473774102812222985375286155374446159523374874967058747529052544155068665244224208530526226154854741757854832806220862818478995538931924116285104089509463409140454089621471706097826487949468684089060544810770934373096593838032452945001023779048601109077346574847409613556948276849771516127305831034769317122020060683186185316344442893386451927252459074637323268952937808243506785155496268204182088069771071399375332835014979326379859698013560445253128811769517368796556856900165566942595959312470749841393642887783098158036753425679981778464359953620945910940519311801559765363730296052170503684838785283606346845508384154687840343384919354600572485804236729923490642321755932987222535495126891826849187380826540463252899419631437533059209712144166646310267583608025995627570625021685402039560704236473385196981141389250730112279000909082139149277798715356148508816836909375377268789456121631566697066410551084026130881055679051118177003341201672079676852504284010161328820851291442039260593386557886028195069795486530361582931787812885242648909829470750992795164636246066488165272181644377844287252143321059964958807557655460391290871981049896699914884593122818506242699644729817331637457083932103230242827786176681788840338597245725007719869759673224584703310751459382104260377663546780552569722789483531373437182022260927457690759395843480720927910004213265289593895966048557001292235106940161902882315427893683673756053872804869019393867447166473202418136590818067584317777141491752534265026587039336661376638216795453732058913168248139497461584897872649378806453671605511534096687335217501253468278952016599554332855860906824429510218618216741497130983223970662647769051452083312698124018737266730171612444273785025735784523467832118409756036719513451369783024413176607456252905810220654535520677743913504337103150707432747560502461852210771614864442954288851250468665144060776766960437308603015378692838043884465828004155467850486101112562886095013150202699308350104049167053118633671325089281882207598927788780487089951947036591132176875654838261132025860522114990617076208660730179744360508620227957524413814212166031087076187082373691259850909415391124143178552265800405019488886186088530114692504737478002504797456226383739737841223433379713824085829640064043397391089868996090268191512149431559128284120733075887352680923930832606451267810298361163015196158539829115171354274064056677984879094248699091792695458906652661574649394829989071826099250253683854029905801455303951413610176360617897166621409245386787430311756004158588448006742322203004796453707113586853733863164693780995816257347950116804303444190210483782360745454962154455798255084116584039956730599555868267695042598006680090341771812741000112578140890546760223243795541971296858368989567049700048086196100670265730656986705992610226034866031075812163367596702905661761413162797919458618529663609304648840684920992514245371261510241701308444453178366045111389693641622105868791671607873484386661675756836219319017799980432120319935172834539600493490011603236742264616402037309103778529425401117752781879997251740990722810339864899557097647130099210572467913071931634495340890330114077922615787014838039260784940103534421350518245161084300283342667953225936154913423239702076380633853514602846145876285956553413632138539815953525992944847309666978481603560236704000186491073784120952563571348376227666302721037267256854412803024398670136497243642766100318869197018067263688487953400887300490225538794427164136901514812091897431215554978296600335798876213845420011454670291956487083665803660541532236438874305871126715527244048355312414148945973909120750064401370731994520211154814193514142920251830439250671159154951888815106199647037204255817579063882871798423085698731003412635138855644167708431171701648502803070702363530602694507809000098713014094585108922549950144405559577875197933560531847713033334240364336594876353589680396832209444350974954314099675827066232331328338314340071869677053365342140489938316809804853219827843576542771027183286250446206660505592865253762884920065938484665688430215086156056871509828418810452175803815895374241979018225287464663936191133166968551115145184351604546242365576822021517921965978579175119323901003706099698825679657444139940271193824120288157037075863916927417912672968938454200503922271431893261519791879662128100863625637360666298855011663218238780652193062782529309449408472208027835669395763767277126633868010401108585136569189829211048329048599164297930297968719808174127936033109506483523610961239625297502495781985851209694559508712334196257767094858634836256097246595453875024554013814138622426157827389474040962760944325706825256783732498636020224208536748749688610973896626653219067186366243926808374401953956738439634382397773307926650999245766007001281453269769612789939401871665075181332205209628140341166020768711418291646465595231833051000114036693672132239035558230993951449847712625187494388416144910041196405989324415327715911243398712031110282024406586572849485603033007599594883019071488971860437050446038065055789207082394232201287211678096356537346368733019757155177070144640279210342915865544386485197106206732455465319852615731414172890961437028276159756490169782520084704322217652567409895110202227890017529146660921090482373132579746912400143816477672258144349858299172380623013232846720873043126828589104979632751250414888072123072661724693674130707444502059485512090687370646939283747299559130519064988940960053159274105161621708703736120239528034746272611584688692393559992639703580191010697718767732396547254207112811627294302889290123128130592425243533160843879070381242245491710731094620629931594655804052968437957570798561095122920527050472546657497083933540620771712505891849708750345249277028965596581573503764220242149353744199818741402084754503520214166388602116755741783864158481769900188396167898116024428272682044888661595474478700661473804505972809796084954810722802482841349820439075269052570131730309938455580792729258584952754895752464214309935302564438386156754635865551709693378315416319384970699186049083298603461806622933765461424338057634555260601650447954763182242390479619273013451106216306038638146867408642551411384913976287630668523664356307670914183848872646346086854917545668048262243898841672145344975861034952065442075100017697410595792073062083374447088654328269894039603522559802708289809582400593233767282557341387008771061593649411657449331588100181523382735947188013057005506822125050989127028071305154306849678258412553802272096862790137452207308312156142567170652721533920660856988584683039035641452276350589899780475615597675770533375822781823162635224538822593561707852935858826929643763417255023278103406132350167319893157154316898724760850754319025954479285992374985017982657587751468089284467963494348909046395393570784827844696214286142981269368651867808733864468431282492897462356791148963640564009632362983201789231330744198568458812542648273545019793268361860212774810230007900000677628939069773495621174937563791494433766965512618674055377641005324145430140414511428112820356327603633031251506823161828084817343549448856206252970793704209418863048273239205092247032653448072819628892431813439003879768665414210892420344239955562644031844480718111302444594823013604539149268625408163209511034851010850964577166530311122744330871044374448432562297333537283801362702495011912248849950060843127132577000849443096010444072883085819077185100957010380567495264341011526421090196325619050334869504836454533373453462583593673519269789382974408620373421640545134309820057710065765434825641945843696046201201335983254930478238505636313599592874163320183861903905423356549602217898046632685343197094545775076434366967431687376827123604150294220303578325141842904212088629712318962391131248189520560575621969323086209499765733763320864057165016739045225554771761079644214171668617420466371226714391938076846839697781940398835561610098786339123241873022498581368560218003727851750395071936676368288012463394485517561112428700022061360711704419670754028793330323388674282161750225380025206576760915344667361168230809469106421759487266883162651402249706974348544867496590153699471021678164853053812407872890968710167307689179653438965472819931099891091644593926582368333863938928716803029289938546818384881318998290047618145912484200810392334626156107575890961952657282698628872185869004282208415216997147870985633559663843422654238268351340561241681006460921178202591313084380197517447511109939568340203382500310904726869863419684210462168978893629873523622230484691947645897593370282415559826334104510927155556185062764370797501254126527401145486229552432678526351794906346301217332232010956061666465601329708255529072693277581985687399932330388079201217273916389769566791191023438440545088588768483745166961761437730160811396788168461448472907020619796315579857715406519289081895580429590962652569733200171851505003081014772748833588012510136214557611417182974051582216593180577277215439153722256987913031426905885799785028181832912319263393926302781068440106873159208751416764285503120730083711195497971951342030954981754740136221359821951090918623936055194002936851086129731057076392173224006307886427888115283558760960073521374584266446586081563482755365978655858074540894855395244784654329940219804320060341702205857912335515309186936253192006127441943159299437275795440941971905151152694011595625221003680180240927326333996152396237361806122570255881615096581507066826480043185383728247734296680094065451886344898905711952442658782324942548062261391495287298712351638690669221330849828791034511061182894609198951069913976507614656662916370488825539521221716067957161255268381754686136313129305845890134340660267445783564495291494608658822524624914367935637131208023215187812447466411840702024037678421393985084444140769823488338247926553641362561454617198113854687717689065191621065165226458561461274633544148316370114435670760037868679320898498896538060655931459172261308870612421332289298151932723908021395321381411739108301705428788221891372080182453291756128166920954138467056490689139618649824975957605070991090193383698419910622233373144859045135752207643891148807073337681460038503847374802609932886518230738105251933712374966832641253588789669886910321081502378892383426145137535656874498927613933381413572549354023912782024887184461767732159517231841889797040086524831609610863488204200006079572646775491472095877096386193663067890653216787082432040700644809769263061648320908029751734364750911110965625447093335351831525008790974214522163700690125454941116805549997634593861765060953249411999343022482162385778063696977321630432519886036994952458962898615427711419253763305038330041674182169533976064646045621395830919937707817009931387349262858430915813498917265949557345221472799489519409843192428837212665415026787704979339911689826773213556619771311260866717026256241029066181113018428881770999902461976882591595129689670366400527992649668113910983469895006593799907521435622310550338103983630329177415781083496142927504911120591471071377968326270211740695564076559655990964624487547923174392725235765485134879931699860093269294757712779723221293651147581307869197490349567001253508933285378445611217860566724941980969385960845583665776183459742327607761742720165799619971674912485200544021628577912039167211840305620213737310336084730906425211001854574524862794353149403864606428402970872886471904009898914741298402825906923124496342544548018678734714194636027860148051086095482971499440484258636704812864193545938242643850785035916288586915881642291355315893387059946066346539416796072748060263577343140949633028420842847972407380608385997405019317520125859063511016724427981896511927538930141541644724114292840605297539989625943256784087649576976822413907363625144311754814827977297874134431003430236330670296457147772171756035173120206061847542535628274096503006858380881290071646272377450665122165984170301184764434802865096445733955800842014452554506082152839303418063058787058844123345011555377296682226290156514023933711043375899700909120383381839389956334065435549112445689595043561981659646426905547393451994342848475088064131884792073138556192850945177058149668920350263032635232452510751242436547356716904935755367319548326581162348468510070959287578510187435541625817498724395234942143287429873107956404099811595684871322350351288897641720519152190532370871657980799044450070038258296418073758557886113265422808548911551627571849460239852956005800293461564663699432950337948485807616885589348283147186516516148551087371605627069378573748716644668178085145977319069907846459986109282899588432143890911618726856559725122562358353138759093633679397407780154116312234106418129002756827029737304733426698016590954833872888998775737147918117258396126917740798777263673539996472466208344454708725085234091680480404616363358783036243015634891845771923335709534270320031040295478226760845244426920200165945155377134666407901816286016915448198819961282295367555296305440593112244393804634839525739675834427535641929096529653676178280817659526191519787437033596455719796616316724779847841447176650356004208374585632842476538548639759701401591835840505580838050193930708598663996325634709172874025520795819456657236510271230298067981102556314647781495518098051100785979654498796038501666956388088441033180093535267012683090439549225567013286609443484744469210819089364674741819330150026077237987967405634887261650552757233404987825284710295729360579940370849392313768560486001864693914027749361657898048029895184683977903931957428057853160225799481456749357678715017018441276626504989152532604794763292463778645858977225542997379164777841667253567930626967558073386014011882071093014733550344648942704298526829898352611005181210357563815695828881713851878257067625307876710701254432846656751793594601655723325906382291819076010957889550565566879917025719961915116945498481804880967991801743552967317833417030490817381792780806446315813113336521547818426652885824608844642344099503238896383770377250947007348368616245782692755861857993504466133705538607830321795736667745086745426855259868344357351372495740041987407367443806942649060853830157688262138141613485536137603017666821221919492399051794108425096445823138527045945912060275511796572618234505509115845735749080135007827957209146548200863077425564879134276689951951548003075908463222032234679198880657292346083695782359698827472365459208291558472634284805449283284798341562749832325218342941582740838443928226819503435341390733285500063495614288377429939572297055844461357253702573561952644780755732965215268432294610858646613070233127768690037968165235715152965575406936082817870451918591889679626874542293665585689382430476351745053807913102586679655332223248260615342000800023692190722068464899280193343643392537408713930173778194365069369379905823981182563403745164891356358905906075779669571493992650957627562779848036148820658049595299319574382932389179126877926970461532230432842153949626337231546588953885429818821862338850515578890636506486360785174448420647075092904724088718300983583651153965788385109900925551676312947009712362120485063722704491345651502240178134622294740482295500022115367402950285902152700924737409477339605129673093796495394610060496630884774032888437017747749868155325751346915409094149178830145640183184163859876473809035501581756777838968632399113339611871873674573846914985186586263028800577337785683361683211416720838957589950175041159763297038333312107478285722808790083038668671348539019909858550325024466085772905537527727045384554638455034304138305075696687909892164698731856132294481797749152138542956124672458493920256905930175838213519059783689990604621349829722430512894202429233508630182187382481404534805583043594265381637284981587766532780842467722571201640602124600175939670011824712396795411417223610089560101769240024201735389373422806348045639126998818000663861487693990197969454915138722328377844423785776885475714353295922213973577832068406835524351457431604910421858399912195872019683678399039968912657224607417113006619952142319965453877632270802378675976047218891875995153549847202522659398173391779353604019589535671468156803508359353792755563658552683126945124167430899102416876011397944523465793913701935361763478623668250484953151526938359870813764917602547893757119317338028211600605366857531546657878511316130389725043470778141938573077059498614467982861588623748606214747205327331094072604033286056556265097291709605973308050656575670167951890174803048332367869608869109050963722762864818740893839927663113906464445476429795449014106367632758518741752568725561984384525162602230381700677587458042050309588278044714773121163314414671150907605660338094607314796344277159447180745204050144847564567872709029129633270492870750441137382064612890238741864386456502081869634745661333156380873200765337712270445721585898058757447986439624167320978291052498623238792423140319728938447162702362565912877478458821457481672437989877706663875488010181179038236178859320050801245633077407720140690496831827225822742036814484220541761726600071564163573545563968516565954477278276123933872579886456386047641707685938777667453762619392555674005997811877562790956964385870927607423961747661162545189981653490441102461580434610547839856679441901671517885531108409180339463412202667628290260267865748409019954228543777754352257898770701369109238402088113102449235638964069385011282828937533106202239381908548958996632758644147861957184141822250095034658430772319397999422088674416552163126857416421619743509753376190830522392680315174970734245298653002860573007121619649221452327837104739094701941548562155212165314666975929333133796527838171669572030457637458457337930001307583601255324726603034016460901903370752096278373323823071408074544709334091161271223935938085623941766425386904230698182999842308196651754729819259230207949154300447549267746632597566453616574997044177736700401867722463261685314833910901258364427209623189613709180729151321727176879394043177084829530522271205762241580756800294883170166653701947923934118306902220846854784119686047840228780616316910418464412318493390198380203139361505212602779875714966315309961990306470435422041983760947636131352804969017288255858516312608624905102375942830600972392191007427190046799259505469102052630710789383433212272589745863616062850164994720191051888051179419989332902669795599541966407396191793881300248721721721902032183211434604498550031429260599519320378045360147944773839910117672126906322382167754705154425583408431807596978070229157156450128014927951191658561316762931679873827885686658074961410753731112327985004918536836483951761052264895995386148042966278107991572362391829510848270798841149933767889444111303403433060875843312382823339076755122714021685168946299670836516272354479724517361608376161211479578329591260338413682857947498174264166202336017180952581872623654888275528361859052167069752511995362299492207030253855980786518002019411286711501439759127590457277477811922782542820182115563065178761209468337188654293884996986828071382153563363410938706678670852181688542937461954906917729846783747472738454820709590710981479372592084522729502430255125184082848375059508967761158468309678952430083662066095605949584830370625374469367257997488707772189733411275017947977509494652485616075380142306065605191390831226009603392798436332710637613986124458909671952222303756125031157200190812349946497425114038488464584173415263742380868138159147931981406131775035735925933678197989273328452370028021698093502363606068795581125135718883249032652045696516267416116919731108339993645259173496717161979132693754040233736724122157218603480004878983397175296121340733616787045663464538139256166568369353533336997773762552858628721872073520394481991469670382960645481490306954667118696043136418774056502278352148263332390184256502286876604713942150568678785261638636991482188687404683052880376689535914645535604361868742792351067341957888712996380725816516491941663947479427450842348674687438518558421384099672418643446253387372925065635304448727047194646816482718882163955750955941388824274420121629501664763905662568038568716659225914847329965577489273043696044914363574844080927414502470105435926128366530032119873547226909416954971191424163698549201437725463575712661652173852511344489510145389346046263064102595341640232744324630708401469754333415093025062842381948955023478683005023252616390745100645609254594225781303387900439659861089528453043258889882866462727717573945121951529083978530866377915602392299882508986446232854134406597280076591682738055074348796379113320796419151492813212711106939086739568213952598239324656002990886323550451379597223691582116542888564915146224434919343692512906586544428179103605101308728148800304331779438730155234454520992792854285966450390567978231371919729596572075996121807789635572905076050218430118933646657000307978274186185397556127361636062080590759538696653753773083731510894492292694604050580602035506399169495274311963907008514734675414288229780792975191189179335438515927660159381577551595575994384413606701289493778994596407408564611812657656836614674759416257729733905503938768587608795193286677017182310305536134434741425297512723766863049799894782375001082778892449240715735881458858901266645290565678349200649198364847251681785506028668310149968137264530392875706535762225137153874434662580040730434358069692158435710359742573411940103836629791312536847271419610598661553359471976637506621476416151294699778000240086294966329041635303234767080616221452390223780512447089025490692232303459393047772096845470835850167693351412762784984573716736740338939653372139985243803203854322547966441544002168083281062783580960811536080751995267511090046854366208677824270865265980324152720667359992608435328669849686499131615633688501656927866186773958302041283707021166400381124380490647682223292849329262147548475963432117205855839011905938212233813559085655118731391026319843654325406145365263074797463701365076095420106102973244752787216911698226831781351130811975047576163579315380235952281073310179441504145756953671932804746994542635304440603526766119399650531626340193024418885514683596721027053299878405529554069752413495763837768772129656653871770387816915799782057107952677817027869334478823150483036414894818722119755034545190931754560546753461020025527081331461877470788143488698221584195064357703546546813498745069074155730728788707115156541530281292789424197050914257429398147327040458937570717072644624983698899030876808297792086122639017416239712448846782735642294085660255167571957498942091292203861107548194403380996915179963498364616763328940950801715422418752693615508665089108845110263907535319172682666649650351711004348299316773372125002062132883884091883860888224971582925455338000844900103576572806006389517933616596850980536882496347066111020378540413490967337901863132602188847651609441646001340524823763503862723985181593568396290526849384244371434393565811335962645576693920816456986370988861804138935416288600280505234506399732415909064418467320117793394933663625433360011775051471512857161303581778835451889403975375124565832521861952847489800364899761443647919309227371859749571449338141683304905715346055556036012770524569044295253381720311557936900585028412347822261617855981105773163580592778896462158839695902053147984258735066083802203146242501707051258343984342415039444553345297469814304104114493310695592884085264210965917375288607857829467554306351095664555616814870015979815797818436273293398965468496208439020987163619438383667698658517458011464122641863694734648618161260690764002121756280659775645653179621191180056249136123255486199254706604094522603678854629375816946526073483608330397905673750243739600964687400213179981078960617209132809441279197147894011506663650891991366288984364580847325381469693277139003751789866889555347123989863076675690784187141032308480495070228684213840410902895079094714677465971486376034797711570177062209925895400948787047967675092574006919202866687867699357434304799951899216461600051326232284379954998591231434915860966693203540220409795194354599314386888020669224542044142292937124619059759472441194650238570411158472024395180874576055046216488255787875555002568425713366299589795793145403775896916105235978483069828461105912021752253519097435648288069466387038480391364251212482756046016159942503098034906277983696539548631062454929874040733623774668169516672975665140326524004002188045530105673210590986129793254052082474534335216971417767723143017705939486758888371038586469213394785449803238979293950783688256720211497744664670634979103168847134179356281415572639358513288244583267877081981105157906277192458914683810814675355958265670501565455380512347135245887353005367128978815311026305320618175005779984092281607854790033554276528866895015686248783781447289054348365778272566181247657094740377951009703641026770901893875016523447728638321447599347272286960082936937964470667523077856488411540115292285578323441106753463292445332640829806620475493674806231416759037377181700802339533824235571686863137871980839413367853002493642453199799867651454755920267062800338850959168450838590743498758240540005125288006467371123103045843054556840032528056143318647694518044477739442345537809930235159471894259743045489856384682710700854427207683016165069401810072299736792647099882693839909625339425980679500421301970772776481362208019890919256976374490259343142012038855279305710208021593711113208678700934267137716181662256041169167893186679260832369816487866734299657141347961346134778349956302828851133321514178377426958955186869705482947587195118952358975600249366051972778130674409378554136516432910217550020053088597823960118338044265770830904241650263295586817373380648565008568165636434136871481754958953789892526528503178295695290631285432869276693659037698221610789504711063335508580946015278173615665618891429411431997632339805393986602771614301955357670658915836730764800506403619598311479027847049101002564773838716027080670266594967521785329021966052361904639220826618639802951124932408168171652968312377823408808468104251716410265697875929663564757833191802600883802268492859594554259981783245561813907149014507310352548700173813000461490695989490875504223424125083254893974250366620735668332364107699258889435235891506790811831305290028607712811273602122360294509241586124356957778870871387529073342834161372496447176540224370868987947834359327632119116693065788123312561762634672673622189173372529065552413055213641746787273604885113040319125770523873377976725257605158702265656643353069682127007628355140050303395232618572067649576611138889311909506378169175743774281547241493563544029973187283430976603354449872576380448037666568912942511154503625144899456947571596048441029586006084484582540364976073140638922752632033808621918606871723539730676068088680291364666429061310313189750305958773954477106748553861059797466850773806061376942123027755792007395178983610553979909481255909741677920346125305592578292566773335618307311571669534057083275098056604378406535333379183628591815129087770281027350798207453004116297921446725091969811488988728296838847048837031689125221684585466378237582025990875987277469525530278300391229174103290099938745931336129606989914362145456957681009931514695664789328052279600128728053569634334774652685755274346658477634246296727113764402768778609422969870469617255202491099632571180087469609396925835541824865088443525406882313194504742064693678938581655605656948471741862184423917513095871897240120445903810260232513806875471771913892386931483061517722873066229910260778723933735787615964981191317889796051617382791114556314861679106944603120804471099244684962601974394588615694919116545344856026341017458430353252465281475704876660293698879866402239295596755343365377506696064694632114189544046923374640027062337334543493578958243061154269836126415618008625886932683877960045950062240971781236061453375321547075334944241157364080645652638791336509903742776048910647074645641197949695719319323307178821356507540057426454813975142669499609963281412288161982816492166778271517831371429593514026377424948446581325984211014799347847566743427520617837711644340655733706161886590615967129809603280391116628932451107214716023260531315290680590427310868316018030412053930072908187652505106090641314268409076557262586661394458512681346734980028261239408056238115436923968210237251453685689051262897593338683878215834137064601863678534849064123726132787669951192721032133949750359913060455040848830287578587840053136191814275619719019709048318222493223495560807943141312802703666876295133781457147858548137580136583705264625523304466458658611769975785143779574805034302761413695544728272571789294988758724085408753531748784076131921153797019709751366217725371901837928626284266766503274036148219897756032861158284781847127908058189682399208157598975841869762547584611031039055582407638021283650471808328256026068830636204720460419565227953590849161507468307536256491881300959135289744414431216077457666640441760889141017059086326919245927125014441993006411386048296007129066428270408846742742131566187769084986341269543855795352322570867889840990962238009808502385580748402868477701644005296010117403960954170574794039529849862537830430025176525375193070965630530218986962558858829464646092904369613583615196402150930597480003707825418105503471775424513928929527706595805797884422321951061577452225196998878211789256637867157576872878368858729989178533354708673375338318279923451583069623542804004471044240295763667239517399169704714331719175950847299705436274136839568739403728022803940952248991790462775520014433797782623920137109289195055931835394225349329883342046886708162513389370632978970585852682588060447162270300497528759440847317459072739423813163856645244419790089127114768178090305671802893230634067799592354426958468240336284465776432349953315592894505613613208884683754827990710128290351393045257891835597380962415573108044737186214177491155830637752651860213736221769093354113618386315232516165428769282957249105298303983346960351146554555802000810561483845666297041535890982200210328337719027971970230157765772537554336621434859612034663314485360594700379855435816906178123871790694891265256389001831516786018587652852013967961694206208346880367062625914242012505801420254122226662297531980849357792989670363125220566162196455770229795013247230797008816360559648838377416755675858412719081570380870554844247424551708625685744017348168559327800187415037513142675945793041247308967129860869283518191408675252975184438836442285380325470312685868208064870421276134128088184213374812002061606137091461024247546747102165288267684978476657753735285718292140026284215170115123341165796810726730541595259396526005193149443948294967008065483107063238714014669304807528467417485159599792568943460086622961723598524569902001611440700416284114440162546524974144539731468992736482753025416842426155569184208557273274978155246547605221992478642063003530819300520464175702007760408578710711906270481454001027996980228172842761272815049012500007998311839400499550518637296010586381673973406987686678222866669739440578645988428480350932899787053246998331589872419831494868998206776047998605023275929384003657600453258015804242813034486101990257436638523464763180562979357208696457268537888785835436624058717749518171569679284165375126082330147932698137927525371676475925192968958210284271215693406018696298556947100776797478129474259163128136390147129151734936652018737984212718839190942870646234038636006607612969919670599394373222132117903152722761391048401609906425443946438152556683900925461675390098771124426850974788998002507619517004328561879467157017202024953783511698823408365316502165321359305541436272929589933756712839850351612147723866568293053248762728616076223939106547790791977134480376379428912761823487815528370025864980366720401909793583308939169584349182781964125794044387916139389154455288494077185012472080375475037884527660849247984807473319765576039863862668307039210005060666590427256389572755927390441111736164390530866967373854727191379596358088951126041442797798228618610784518663149145456888322801973805212811550369651050610584460815200616957796310860211674591681840282608151504872645788941561465553871031557391100757389446732962474395233641395599075759931389031118667570750808825774825595535800387117241520462588195892612649864452432875583102199575787512776154875424245443928656270125976614614095742203944041161602782778088259092083690206359582287303376210602597202449185464578780799928015341128196538443432437136101977379689298437221541447245838783784553442595380039799610447715862747300445145432218361291268232020886751709531432200753050833095296609750289090158331241706696196126279338212445945827736931589217843529713894335017876390398586108740525797557069616440352315852360634770403446814568965835343418674051849498432920117475983451573461589479579947986868063683133351154949787119587838077598526892307803508883837085713630491392861141001159621004227034061048273693757590325170209985659553987161423659337383950752039951822142038133602892908809198630565168769124482456330372533628815516738810072033438216414682834800414943406353566791977867752257970302755050868373146352462628048417762277158264804310063821043988777447237996994347124845980644463770063290453655336876731292278986205202822345094757171461534323540542509864551273873345451191629524376016143806093297939050291952097372936003389024816968390564742209642403894348700954991615968053782340059273163232633906362835316054792929215792434297485975602017442195441381195328517375020088820400231731100515221674599073171327898950363163478479225880609024146768058406664434661028902847240111512484827171725221061786498757260732972284225273482506926268532827832749469072920317702534915926526925390463127130287437075448318816950850750486304188456106058300511566164965764098151161003618734782202545228395329122925146096473602483086408960190211814008940833316636072895221218134788021314875952915763875379166712340467168498412433249416790110848127960717835869939460459967334970313207047953252419441411262374533523571096503989555999244744912873005962074800096303726476440367375617465627260692976151763903747309336450001737966458594863779197319154231574295131084524216362406434149181262383772762838443176708558228805227871084062919286119003467210423503291636167772793920360195490271160416363486037323082177684089293925975999446302905730735709027154356264770905021544240999178433384964136928677093625448708065418981857527796271236518879325649894085322832257478762686850172000428165568360911407683463011264766039842658898166067350422606474183579382887611798518343529729363482531935390764026375692791285136181587475135747945924330588725286600666296045553414075454785497366664586519245729611660446026939088279096211245013533407168519281727785134795976955893789891001561184582760343474786745862531003054223927094874963842627494276598493000390801130704295187288632848584098975214465825397059445717914461075389433012913458234057834342505167154693280139711111151395209918242971682333306202589328772472884298800042921504247778008780812704645798346779640010365435471188890188891497031475457202291031694929645983163473468126682769246759006567374325403041039977976662718844343321022594056377685382880196829612047194258949690785329606968506376781236229100640316130482990217784236710566088582388744050879502676858294162106805075856070951414915019216926436632038790061915085767949825335152883256191405446146987400529725010137400565922531449787394510816517252685283161368178966052961296235652432604097930982985685938241491204609362015849851341860645440418321099011870185916260372585102248631065867444529113276467436967598253177988537582371407686584606205552168144305685290207753887776679385863830502591310432713101507956562778762415865884403391095967944761513052455597852463635895105077903524491065139139945485412828439073764643829944356331496847653360014474920529977512722743499684837762953292141109697728516006760711970720745428576715043909216582573273966414555552863334908775620584208651679443537428429834098232440057602983819748004464550619576222466919327832354161331132307618641531049121535289800650133370088732943729824712269665236716041609986322993903021341319421239768964039520290329893649119246377421863718114552312162345223323469888012258426584296867352075977025644425346885352077303294413149202075599969584984166683448817266512889789525845961844075778634577331804332377657890166825859633806739365193339571520184152715082635382417784670930850584774890626462264881565373396858265407111613988211581683731971142425915263375522440173191379952138706064774585630161914779028047458808288525622828966292223646871879194442914828174513556096331666295596411017512954504854815426722435045978400138993820661982211453640728102354470168729675440165952789098165011030383064831959020835912784631534397963204445149859811388914694884978309654655765014946308045855025244930977749891987528185368270987240362423499480919686195878057885704305170198513177528837658160053535667386098402978510360026623160353359835319730106073941713497176066167220284853511026225631188981018137302478469157549713630072834511340055457992957347450273123410291011112523581069180278073872097755463025964204250068780192695958758036009015808685817719474504201316896944522827423841884116692363515655571968021775597807660562718810171007793312827802431904012830459377780404430327997554148517804414055774904818540716297549927648981641266273542324610877911710133566578108494986892173954836556441764050096331502856470817429107086003179772022899359159379088659495513497634052335770000362257405380472489520465521358154809323586196180591622123773466440692965762436226697351769383485202878510989118619419119982981732252347140788188219483043983920307154874647786110163239991166935464929254414105643747768991962776140118076544861133660202400706787492300075789406739106196643914189527604527729420449460971259151405678719753404265121210888013086608497911629159960192865455971573592248102557181394049374415962579071628782904954165309399670708980221012050288119087063933745620017090483119513790856967854968813749972370542103089089297475584280976014132670539669110775563044787674630780870516351581813837372962634564089497261745163142124348669879776795655201713849357549404121701413798623484908673873228567783288935557933394215912161558384156172648772875856874684411754328154564163905994773237228826747355136339572505012122039064520859011368918841267501373332408653736567142200147291855456925018427699165511156667734081080475640890950811609421276812190979656530922496670935315994995687975024353295252074995605370879089705082843820171558313439147511136074843060193890797607434239284504855676540827847559267765776023435337295547688491603322687391238023931314238923364488641315933059737387131806209482050706801032083194317061620226062878568517757921202014444608919431003538473672856990776935881049713380117898354789662889419597593256065851360301956167308866805455870542120255385422574040885779600077564315407958233757508944496165006971628661126708391254843091389930513300677284706208849573465006119445516836894166067015885325220977157478217118318827110841203782934579865582573589717509304248013784324049734622992986921931952639922163837812099623418234024556557162491764686922677588015098131887097440088413932717526860388194963332580458632311799066465668257953967269489368010928041530305832196566390027905975573159548760977968749738260801688047121455511452202519597605926452945462218381588138968512694640439803856248064279898599100343835358463781902265680931118220555459940679816434986122095673235899131772870187000324400270050267365896563984129741310156035656296061294371808100024200969492124554226377496754702633840051485134911150936697254013310857568908167451594977653385867164527052274110023167049801716946773360179888081128545421360441256788610667709121864927401917780677511361042873083235297516205506865863548036550984301870272254707987048804442935357232315755537951023178318510891067473602233724160825955911123483674700029799845720521599735180673800793872939821364104507591544219023481695507716877728198415312325476554479905210333498049847423315150390730391094928560207521422538800319065414432373580631995573761074555585540604572665792755463810161486457660088996434843174876991783779984647504413930777406441369246276022189560035395990780091528115883105394208627460465149667559796789628049073731335177009222760425352428973348386477569895400944896434464529882497785744239831206539961871134128121858834725153483536877309097113290046897935373849480515549282974098038699967798236360254793976448192230062660174468315414373933162636064452105565887760509166481664440547962798593707274039865297412712411485254327502682422997501948322887805429249282860692353244189097344164266216214152613156188541945988989247329391166299360889277378508978539633964396452253854359951083791257580830112646270571393117019552892230664100223322093481554911074131905921215381283940574970549473627576665319926844697736123401071405518411064245602236717505450461925253101373710626199757663678032723849684152580139384902379525423414815486830186543818469289416193214050134819598247633071768885849058102484575257064417332691363162737925983081057489993410657264314676928455366244603653070625021005718158557308293147289009581564750725148069105630519718268045087873339733270264487600113224113023446268215024837365145071375948144369585766386085605901459177255247728237904121700463111085904434234610013660189134268826947004919450079836589152679013579365075409956258112533092455189247007424837390445321771374137905621565418823747589997272391313785121220842375538659759967097863184809873825351940743461988399487861075143635611680012369699897219960889585940354593117610527574376138959744743721249072994053381930096123405902020447280354686882355551694902018529605794571218491998726801193139761420545856904326870903203033823133983693102767853642078647580064410980769123630218853084156908045009685910063999107285595115759605825536617244514548571380559529274164269526555266796730177452642039432778806904617596783867907860750088828189495571079284646581434954846844268019930308407352451559140417156970782654737717378054122745142635788552861945826780481590939534639201764960716898170890173198588026906568945054048413102618389279955593269964744516210205697199504806644627549016957631401769976358202024315563364937498742007125395947745098801438825804812192439305739527924193652984811178871447404943651756415072334406879821105810688169216733409627912239443761537393943285449945759671220212223364737316494150083956507985217194962731285375296224990000607355031883189161687567498224645285619113099707078466450765551789809507298605365594772967092146039296337758079106947032468374715585667260876807877561486844102044497284895278164424639918466441776332197480092156085743607568433758467908014992677836734673812167515795726153558627728639411974126640866653989894346841628795329275312178272649981631476524507824047078334239808955759070156622205896920095778225403844648889326992327069857435512557373056251617630161411990397961324723795091436176439717106426928519716570937577197311750985513176503860607557616871053561456656555470018278490500104133942331348625356519727076052598136570635959844221705800920467575258428477314793688865692846026225509989349733943558092431602505767150554193158060227585971440227388434343217997133545578480669375655795828058444901183730365997939682966629494319867210494568143624391430715818675881623943479126628881112670757196975142133885128965141390030361829883403124974889592184097837307995422016640558208882907641428593089764606285269737967844639971549394769497043204443189981078496792950551947144812963185115147850712596702869962778937773164245098314181172032353058979638826857536790768545470710496945564816837782263739429211839103322232332023379416126434622068341817170799905129999884452285970237429547684846074867851366578416008408015230829861053907718328341703415924105533992320606595369882332057758440883352412111647169990355544672934294694776651129048760181260171492502587070750120157107602359713333021722652929385002840005418575846562460999483033395938421102462716321376653418077490971497653916417875218493064586390889076814228320451676459775329395529432936156333382449171254902366742769471080096465054763487940255983787823019524895952995623025908246349326034819151752957627562105823753090071999433091794624326644767133226435156920372746217535858480256414750620037978373934336251082406901345208349663328100272200254627962300600355096146852969933843332905662044270065844280483338108790596650423813396135563767969282790203145414751249073968982868515133076039998556021589611534318341233000137482794732559325229493752359445196462659767962610362353260809972181654575533021639686579740969077434027824071569648469413911508810774561283711877773109814333708025818422902446858572453971430657172715026311852008828698502712284587959989191638728663552294311513110364027216120807555840892772715363247647722899507362789636267557359389919401131129379495852143526560520183511599821356321247193042439460758802939397151723380998843064668657792525830035933817723566101255371091911008156440638999633492801058346312242070833071990737303767493370526325221646720402244275545738567921362901091099440519345495271660690170048346516014074822635746134280211722627799805930279797226058453762588088972131767573602900154784213674468714811256267943253686660060113896813367888016892556764125832901058485490790489211792703823919666754899272445283275048744437693639219241171350468745082068605590388245520875382425066892815856284268359740312178126172252779009736020958400638957458049278089709164570526590949775662635896382674096814537413953769317624999049030469289992559349882477947916454550211753599603465431793830036287818806757874169034678095229138029711149364897645032468942707410066650454381632316020524150712390783571484341413502233487894191314152491375511505261475869353162768624599840556935057610133129839398358309980769222705453511673808358532889968684517218391511500369265937906927532600441833130040882129048953279141468054519732382206324081177107475252635080759858672939647605945188603687572545291337512243187343011518240814188658255829077588655764361334948109336467638201876588023722583025506738767179950142994875917396043536970504427309578214217877113362000959839245212270760462617715697623463773291135517214789065619254290399551980406648253693510633396270932636563321098696454234677304039700076829883021851329134531426644792308666274599933492921210586244645195722955403652322738292390839900511363332334778734076464047542609911265710387370379841918934392083041317898293234810598857387869804427370798044532374877532461907750161518905946718805948318308064377334475751894218853211846687417878292956147249255150849192284932647742885636883795421688217612117194611730048229796249024217120536355144364275695930676623960747540561389404260094362989872724897682461503311647665030783768779926516409579391063007299652343837385567251623467631580552968920626199461190298412539384030870593213750134580864894679992955494539768005821786626027051071396957863901640880385739680988916517930938437356559032532112741117419081676554968110391821822446455329011591854621230529772178329774104869877212760285020560105270016547366753209552502186371593981818555110589963275407871102058690878963306020885103824132231842546797614910565833670359734156359879249707761303633432668561022359434705649432295890292092394262333604054492744711979197763407425065718460479896460499046134966286901888687676703469885492911833628733739371714406497187923339179698296460602975234779494561354630276291652608571729608056546751600891485260707180173809682128773794841506732974210230096471706325745110785730037050549044940511850823405074368863607339710286840429867192926265465100312465754398714529215921773618106284209379496220566641314433622061920597595082906506681618685119168482485489824769350103925667369346387872640805138481777206830809314714849899040078749607738232594524456385024763357385031055414824963595877357524351674124828538439119335325378841638465051120431311267117270865065022688969180566450973469438791082619299687364715191593143461315539386630361677501200738268065294570833490216118244463809803893683661600031924667264066785439930720495770740026592287816198489624839467597653090534580474875215662330214923346308881586325165877420289056714854384895717145396927530029597723458867150072464042962651832857749340695290487198146126964101023249917377880666459786889193842815437505545473268093037090335544056038133180666584902731488739976884336073462623917033790656380749227058783929968146275580145992396601193521064713849347841492279803539181690997120619034846384308646281474297259803627590279112700148071053739674162822358293941605041388503691709889309562614437811220708407515152567839190385238876557915179117261466646199501436016686478959098184306853087827051164038684752954083444140560490976361837653492377545089507352393275599399927344764729750316157775518835304139495505205402629736235937560956211253660072161559675361717215761971780983675932120313250655414824219381527056366665198557813556419956592279960392928346496993436112035637956197916912766715769970971808198719313959103213347567106215625008429463479674557483819602537818693242441611729166095045568322356607955455985004451783336506084487315093270228648416393842113037000967321966674308483117018908606083755524446916327418188505243440227778442417100918676854353376741583550184545400559288180985710806089438427255658566727471800545705544245926095716198912349129621482165686956006496469518672087322092368516380875810353835555147644660923246678770523541849425857749028141209194173761646000681451406891476143200801779456158454362371285043389985316371547184788628403543718941227837332012314551319334221919866810917918170057220107516826279763376007135672509975665918783426996274369169258679880626884273485730544334786876392860009209443361956966358837296286653568474710503202785876408226984185549458763220569944648026088502796262651297443206110336570888606000332588205859649784274627013907505717186405704190737860658108651325656809852965958480494658535958914246672924502715630110186495783560607565724753578062108102720153170335888910893167265985479645560386580736394291127199677228892923164791481762959842519358679545501952218535741478820860968555800484668229715060336296705842671424234159763358918760271480999979742660390165644117526196083171205325454309185438157045079203331574710954119192678343593719549291060513332638303290051920806848300567794644862700945719804491042772794290188628656825919744077873805141208873292867186206710815400764835844097781111592698005023272236863417483946466674610126092289909635405292019098312575966929781378457208450328692148519807489951843376544320608550340534550092050853027606987360273914121633933429184600236591758621101251958292598664884499140623089303175928176127585399616064712672260353686922006765803914799400124924003021190588839293535093672444417447674956490321617633371880682999799631488898551260204930370999552611097353604199614654761079981500044276163880505822872882957487843059673538317636717761805161992969992028979426129779761459754981566122008785698914096798493625786993846666576552653325394542425549310992389272547317035396033949360811355204750050704154556584623244767329301908394405988103609159700173082817753256563708911575996477556746378648328904400026300428203874507684758173374633681372642615513591687168325983316019140225268335132659460135066399192112207322114501392048806693957355171785952696296730882649493150161852254229569013563961160531979414347530920147409101723994283884695880732674125157438453552907963279997610793190474305694515430618140033899373677050017873991290477712398527156193436765903392504101694580757064733830742418171476598458302089974062626764654806969678435005446040608614221276821387132180834840257710553186355962943606139628861242633067235998733547373417157624874969059374230394985659154284132774244987872708463227595511883552260707041689350733138943698003635590998018175650294553195901184689254418203668445884109593166854113046260329282825239672164688226308454301057407496027195111986160764469346213094061064702297050075035234254945178119773637167159452037005696890927470784146378918866554890738154107479669588841390638570705811878732938240467593904001628295724723988254775922204887494992701788239060004746892060837760437315483863646192518257214871515938083529738137054198641641750865867387617901006563803809574690995220617496261871449515131085980087545261075241957808786046713411313955841898455358451946157134461066527397659471638845330290906769371867534018680060482554074499859974345303727715321472839100545194363392098706675204384172248370409945733765126200194658834774988419172286775377872332733022700550827130774000307231540159505563733982967132201580094913525972627129584136790533538090636685251025916507009957335272334656456050263546525460854849480081835596331520052865602894735301329273695405489201653882976760066880404972496548384600520984492657529196570523811277458201935681947648187509090489942614622555407542737765653773761055463246611224014451138595742469277218492529712881744646139789649099040036871913510861632046369960046644966069590997670287714042740147766151431698087819358469216476923015049146956229379609541689305189968254132555057875158165601640448248264773076158868119838008333788411009429808574022009714388260766053439775134233024872284099159236489475486597419588095765901585042026499951641441655022301525905706091888828871265246078067889434213916892601446653357179412672616264661110736707768847777156546860338017133955054981941395118244967303936975596633320881721812858817246030901095132320241981865033336661586629191873334893070959370752554990088337401779424136141466579364126409811145828292325292146723024113739090008541529952898086451162116061846026948316757632372513417882007446692193793057676309264268998660262053629179837702824321853263049487246240205009721716096986043023142016872959686556071522988536931200893635840395197979441659105142575650685619159987549596627439082406214709719129857845802856207470983480151599163074643777849156938191581675130798741380867358654525585845887773888623651730481626763371087581908440314326290312435883198202735864391916637513309710342970549709214475351005430819415954932742029823394652105099207459555718040900516309852410214674344126972305070360517061452984183963501511101330462970069344966288622667863740359618303318599085725369475878808228483658436670578791298378139128872116592062523330378550612587832609518343477866608044291735390504745511835827703220312818267619502379652119012937564776414786361114812062056694827881845986177728131229176697471985389542569094331257456933546842929445268043555673017864478535447236682204999364215483967239269345929881131798884472714867240297165471119033071877870130009648457534467909767701693141073477706987750889234466336422028012182945738475850694281012921160392672369743338965170748401351157446977872208169782072219393098312337870125862536956991508354613934075088683390014006244143689820848120317931870322765960740508499037028217720455312258979311663699855312512512120168808605617888289217731451294913384228877250387123329579559310012882149374220994758259594883517143848104583132510633671544008391904525628047699560052150687669180847193001636127877784523165678287481587829066745823595552037918906588394673381033259078871310190248699058742961387441427734712134131243351508265994767310652481207422588231729780051033412071852588141655614762119934177738986065363889877718576792878825907250573692247983091161465349357586829001897618033589378408360756340403473064984167751886193611518756045200970352184117902228403982590065442134070034591246416778867025901378507387502386583909698188901464020745896932650653584769312210087377639589148237695197509497396308001125463832806790094743907391341941957261166796162438804776256355836600414140700040569597203570871540736993315909485805615226165524284026201321582642277966735342910657119702551036465752363529679756715799629816272493033707753823188211226238019801960782789058298400140769776173868681750737102732048395158841041013810132754295801088326702287480764886039191706449630203486667436841477932124052594628302747171868908959907257390808596709440639725297310166235452406429177105440092124284142770022588823019897310260809336053109502430250585106647571318753998179085681657462505859894578770012963255856709998635543014157057691913669216365254849510088383043328296920698709222955743080092343716691657054066125460849559521154750161842462111009098090591440549211595407834181290904558565704380884662315561690500985758786792975888881186982880689037809747284288908373133946416082716394559650235941345671053015278550084697181812876170019381636871885630800554325490829106409473452639122867292192717807413948392637517851182849541244765079472514102245172061088187577168143066383040638834280923436612011800525133774138000023132169545063643162973717613742728431421187444414178882820901060349268604519670116881390811262210065583473504082277622590084461615383241651401096888490284781852329855157902277023294001961588892739778137319471686202852995676264485898657543735116040071544489730879304013183757215618040873646689254074254030227065127754191260958354848771845121267175624894739493596096225976973868918665932400579525943954195343352676908492768681683455899075584613217833679035926032879337915647850711069168459889995891216236035600701436040324196779594524542943831125980562938343722042398239132146863511834473685314536657155952576290014950972637873074441986650623980321390310519345233945886370941145551726594476265270930240136461953108975101444335030916598094487093208292521453475078557810263760907738503059093735661030434970958391110646174384730110360291345920374906605449512980647041978571162996540660079326095376001182277733380703092389035051592021494472681166705324185419700462284218920028300489299062571635021872950410971087411715937040980691792005348562655424335805387321544065103328078167706696964970729706022620366429503312292208058375199841924182771898655171393952792528833655092009819846685926953658713472435284162765399696425963760102925096933023691330867044313847570587622643444266358513777474677562729715576899901786976525134982525566438023314031711770354778388961033841943535827862805418708486664178033353256866344402867502773697209383553294448110552780815908876872109568753715543641016886324423169917718124824896038833384731781290578872048616204283866817601351220375961393977297046436858382569470046957998162168943888443826613860908104432244456866126440551670245887778181381354115515362243469968117013200830523329251106272014957143269847987168533747103939563558444074357148179113844959892157314874656058553355270425479011205015129980048082808897939424814015143753876984013577424735255304652721819542453692282827892300504951194884211950232403027264712064169727323940410824154899545212074516493015787073478483079388585337400139138377734571888178970022134093220476830667910324640584681013417831285372966228047224012007011579081872118925310770505834567072952244748961543532144349195962186281697451603843365686037602670473391160397144936340100349637912669435920928191986842266307546140178236773048587577782638212528595898847140139502357509362025066657863644893433109082390182592792456065125490487859869389762415279551628596024235850875085418272281632057185240595441482414073186748953520009184427456175080025820391755788467438558852531414720665168937253708134751579574253069605802135310186744903917988514769565407851724478738333458406612950185315210957943348594495513032455313508499981230092330347195599811201449370486099492707614861297303066694877187624950415509686759085303724698943851946931629392187468900461103547208017969985626185042372782971380071535466217332399097917607913764392205850635958104918779090237588077858284951421373567952333298661838898464496282102658831500444124260589723374660859263828460179715044420940430274118259857004673222433366348475155212088351849187306202632932403261288840137119550433647806850301249811015618650570212723328642106097374909997171710644036888573875916243207298968865259048643711529354396877016508707936513627354682729130268954254237670704183033607105360776082939257053336757584894343415224256549315198065083186832498051791769083710386942438045914289394117402413937712350696223719495518197095413830163634917095340838658973485754246741314809334494055482203797421064870397215101780504486480268996131304103119016202621194485776316336896792234732455732653003371030004418916886444473325543664468463421913256631731030033008256744831508201102047919788682799014793107150647087063478117802336931641851246094435345213566940652157682625641766541572219164819400793921184060171587416056061438946109185221235817359176758841986033526600673971363694624241472660182894523678629025527503663074172952320248362540109759116638316531506274285304717071655116411427558850676155486833807940611094034364566632914165008271937852020823274520933397326328589298606898789788094259016480154083128036776707001171903360514308886039200117704333354755807903148210828655660241804635606691064894919792956449877004309432979609980543078078032563017216435282822264222403954513666584238291487865588805232053419890193585421200391557505125821518963952538251432611736915311690041391465330862043754418290248462190800689262721225184195659183139057302610381062454883661419135008825175544641385448140053919080506794878994292510991136583705657299574766967890832570932225335094005250063749081100692605469641358212486932306770070507041697271972161307295452936967722757029411007134340777390875576308908320231900220833059083434298762383942574776784540033061600066729343792012851852132125760029704904839955791832690981237958708986285147270018409142897208696904620428081332045331881060213429341637211148836323337746548267999209091836882789191560325447431691235420148774176524878054794573201517534024618756765146799184053693755013403274967579494356262268927100170526125390462888874904211419183091037433397616931617929235164953257541617906937816589045965752300455531463143483850972962095634272983258306957444611989579515112963996144793617503941614748205410486449552141701170590987639217801055496037622288371042669511450871433734341637766618066997831763792480519910053016540639211305832129875659304141462625157707412071923215064299787022683915720621754146424831736994179527551767770711557214280004243228772881348713731121076577584854930191380425696854742522591252974589002860641159461923771766131042133951610869581674121772335986636440133322960925013649502041610501443865221492852477227483414093893429653338916202978187286810767471089076340475170785858142363920896584144704469349591584450742719296580835235154960865410383378716375806608578755247753423780363915310655879384571412813379206935021101699303317379797966497079487415970181084403257226993749692073679328276130818656728237539091348616316938339967787246267445291029209307976764219990781163629004389210256567095577366881145677068219252243817665388598743774948968519706778774718723806241142074567853407021895178893710515507975565912486891231757137893135591553716644219293316658597286742545771580550613403082921342065323429741154100846573436336469215281145498469221610973446693832607838261896574637087791669372765662231634019620659650328995714560654715183771562684069451065189873554778046209460017014549100763437677678485504460945093193594652539298661217519847317115788067581811351180464024621508633524592020912013214621518093812174350533529976357452289878478242260039619194323704688847265584051746456907972502121828883653804222574767156726741555347777507581549073322052067148445193960424244136483305491435245729144201804122221642630260414665936247516408246206754367057946628051699347448678784574983604729767482087339127568672741249368445387979331472062219413031529146905152735736055347517331237153359553283765908532088133754917894783898004314870818933250365839278427608080219385985278208748001445372837894957695845871559365573003392950685706467787034541350808210971748441478072566862839728274298579071478833544631187564125060805867601410885184021501214197657565290635676753541622772825506277071732108224349959250941047541675949004331228278537348351609699048288798352237425040688412807582986438715026383252826990057498363058050866045169551359525796280280955151730818706842363770863943287910835152149526109349641867645549267036946589859486208036673135394660699725597526573166278343481655958667466769441798293939233474630356235306545795614577947606328875914473665696932158124175789621694727173336717913202458099455762300430788379566711165010874739264967018712318383122322431423714036405695481685790705047992431973362712403021242318426242864613221957703243912926812326585006067439989617717773229359971723988833869963418148272307312580646277526782142243095555404905671550283468591251694137947672199485645062489202333312686396866524294665625351433498553318274673020141320754415417573412433636200703291079257075608517675190905589927908138395114637883348003173490240159582838007870773963726658098386890430016525044302749244839246064814217477358698104038212397898819493949650919674495201819306223091123781429190875118358707679811157338925862139085150434500252890988165257561852310890113365523844198145574475301187158610541001453471832677993450993692989625086299316520375073287875890774260986320981029496946771032699288157338670157291707101899885577343484628253658988284104366854448268451083927913040354800273415919206745899711091519264651467669284588590938752227329894564556659351498809767505600117064535552478177731370264939756608079380325716902944214883631946789260306228193113481956394116942492001837760345816580613495730613557314816212884912555197253690978440175146757577111247046161384704055167359155515229223896332639666524064682741780032333923698469543405064527588663648315622831185227650740737458025271640075781376598969635881285184949448484629311897116345200991819959765457499062258730281313355799637497513055633456465553524928644590469142973918016999848296102205198871714566210655690095192493983955308178522539817838395623747601961624774867074072272337889045821762075336876539627175940908763285499110485534636259356956685315029216710692294644829836084089181530929231936094655950713963613304087047342111564723202776721354514879636963590357684129269319397034782567669774127877528618533978218864183566947372164980437442283522813364109067820254087749937657778047503281497522852321994373112573790638477721874370643087188023521049064098312835937430272439853823365301220764668949742861544825415228630206791559399064623333790277190180899142465546254671372563043342334106527810715175280530555453454780191928655050201353682903402662070365301631114086504856836059146050457667612683837364445024006920555752227638302780288538191327802008447357324517492932932106135455204115483014496814203752823914387400673665800924696725636871040364966965386705392054969697063437313703247440214527022766472733971149456099511982740958221837263924099156361537233627295393648482625119886182680084650359105923173001332200067833088063419320332755250215130888426249977416547194258041498816462321528534646269780703072102817988871336018722007294118640641748719793207098804344785451249632718420295548673789300566972987262784877737683581270549495583590704952025146469059527115994948904343913284119044076327379861306777347020385756808886003442876530069347749098844234173736709560999834612260505766935239813675273854480858744912531883614606670484005453743565695846091764078656664220062676591709724562532042869015860792436952423203400075160210445015789502980946606836441206398860325193362762343226144995766682332561682830790161479996262627660462417033446655205188714312888935221913420278595018363742890910764227973802440068113028112793001411837759535756584167014046019534944932417474426478366950328521728182684293229694588304962514950201076604884556565862683759615509665545742804441676727795221579833726826609251903427711252194169936761380173782939828398017296744580571698007857213229804026200208707384640149121180808074704114826174847812140203248156133697648538493036604339825085938747307261361386244101351008021136790004309309351835095998166271136697586289707980601790815311218008234759556793725813824895671718647798392810657061789212036055255768455867197008846779593743918304829294454016128923454029680385940193628031513776700388906518177212724954740629497873430031148649106329379529474278410718328322707051760457840564338832999246355283083590927938628015502515819218486232552102009464316155260317080239904742483940997749946852415419273269044724816770351101489475296366949056756536226109458970903421697898171822625432267606644995049292943090631424564795472229342357180282839962243838361645557117961583695054392124678221457143874361269339294007947160077994073768046294927173165957828228735408071099257032756369034431883523278975381810908350777206407689872887089328845619038585473702728989555656440598744902443959727873127793248427886652925402253737027191801834088258304057619315248866594619369888743749833676235717729437770204673662352675813937335732525411990213415739935167523012196913973946811451233005633928883686393749624789959008364232994408291953005087292869418442966391084834640025878406620684604840814961157689852972599786415291309378659286108871904185433964277372165351205167039566785307418680637894343796556009664101125658473999579742963093797515354099522051286587800816349393773493363861025207829155410636051590196258213613131698764763576762870014744160103161739454553767526686393212063704841917600025524228119861371266618899381434984921919887060270113658286762753805434137355519296536580730877249510398028673912183502258619252302040131548890381799930045500205976472953696524712148168624091759090164601343423353573880321929584820216811392347341227068981551443026396504517659913053545810595902621565760631356003887990264840564415687416765362173138767851685185599530107362558444740713904149356963580295821248573699310995946019354877927173697824241058915746976837582276279435238138272126678258950368513745009232191765434043208395625133749950119790198685620511893963436534463941273863370066873425332680426334962407040826843209620016310698445221425203866515276061767141806138758604476248479466950586095000933701013599169540512285656412336387370977030636219596403286657220657348328117553294853009604068736071712550173974670324530143676696115766650296226897700272484462273389476700723448202275544660530461732332945487793780931661449176518591786352816905546585376173646335995106074765675782807759568929130025385853217985064783164894874532607595453665399748411934720614426337558295614778872186132175932716048717296634287899285497408571967346427001231024694695387015235617920284970709057102724041647239430302201687310316623991292592477203571842792710246055117654258498316070520127319513691468701119548523347560926682943748714555663412568723890940402966238343607912168125059874825076439952339339724426331008748240532773884338479598834566603476080722230364629715632372584013135688795442924050294985352550265657680397905840562453765866843237084495301472905908992997691828186828932905969148734583405393568957596667430469880165151751159056657944481322384889780929189438840701445777854608566893828178605945263478612836005581635198402073251998867680504825837903560032089592508551045518878859177072433635568819051330108597315751041107524106026282692411299239415846848175710248984673585385816852288354920291125723453880893430526138549693150748962498721103858198856675992193692264870146080022501869827290348547954213883445297361471278272031907306289042159006185815467164995121467853318104918520816914719047952558023615493794550275406253682756983726182942287428478686683889387535011498834752593802280494141963789282107317590590454869641639728563841294088808250659539896931516056629847348210822494141773917716271593540372217765910770070961077985471869202717431554941380210938328435221393842405204828188910621731188967407300884122140860978267843409752732041429930890740440966047326759385123779223861349814658448717567529720516830954192640849215185275442932161019896917380580029583106282669140295962964240936280611641096478482997930021339540092904085922410842650391978166020792087703301641878609815692778031660083156709441690531478656615250239470596579045704152451374155918034247242810103384225985039608858821536848582323530625997474239476873039332491635533840985746667976850939584086836352907455895309989939842318582689900107252153176712896755248522076342592374005914559635522861700014437422787237510342812091993108732950556180377991426308271721225089200152690845735478190695752325201070579445012282027648642779910268371944201585860870212006074654528036192002386755132189414151929226543888733994851462254199933176635668516691542276920753262101522843997082391233607358555918529665477044639406797253553622088432922711633494925284810639381452181718327700949794525640863980752705537793740999085342586454575347654672184442626037390043930356492348408764953289790423785933149353406967086375038542739818096324595013773064254231220013740211829528074458879006138620728141189293857189504133249619126746148407949116859065318338948489814543587167858873662724060456000498880624620753452464705227020147118975566611520034861640277658877118180822035203027577316014694234227309195461769709377712406276093707491371279860919025568083721836468039944507951399765260100004740051996890460214365947309291193577598516852701318175009224131776984511800174636815933886740325829482511639249530611981102565299102195841904993033841679539810247627348173474273680802583501401410662598273043090087031234105774692309066347172780497815624522849128571721392545616803615148034203952926302112051610789952144016985246112353783798243386514330209553930102530446740027735571147699190063810026756849272778673562259729859384762632316128829924854637582381007863172574377158178457521224891879491937162691894897063061155991963585768762566868783803717636086030414574573813421523018382220843271291463259099989689317504921288384731847958157654484996713963671408936647557051195871613047919450006916979603274907819839296001211679318918785943440789951821871774196466196885021649689301924545912002894661960235195653200224701631086683491212697242043315189284431456176255446205642709812445122901840570260992945208052624660352443307935502275297315120468686901109393885722317867137859453768047815805833318170484548257707326647299237599062936102006061357690281874775309375093048076876850794493603689217763721803072969278318313564289292243196335588418895004681951719745083398239840686285702946734911793037418768242842553711224446178035796965326829911663667650729132976738054158721112230166364112002201671114301915416589620830605002637748945405047087021740795411298037334349638291087228909972610926412585856614499022518229876110444300098722384215161498839104416557627711843659088816765178479782542318924296961200782932670240881977592118682787737988383073081181046249192486748929100634389526066729242802499618299429168574154501962013898432284172821649126612546910464589074581774292115184703574587916137012132591819429954398071657406246269398443795048617726787837081565369606462344460339854419763072599124234395407807063350823749371381856548522762365085345049354577479676438167892696163092335328136403220281571824736119136516238456633553410866134161895210411420694235792047507086712969566546105671870993527163218015136993845367209861367016535688116454614762534095271524113681505153727575563464430426222561592635914268302469866574761214430508422570825127522783140448709389397998205614744156961275883066431526628989895519972444983864354736076889576142339606136852089866370192533622387393911346697142568651248419940057817416130363482252572261468551456361999225710562125110340446340452023848549077288258698686533499766567438547119334532823125530289005968118833121753642453954028561124908639349273609432629360327004342645364504903732660872656822730426610835731960752563390438460103186525622240208869565829715205668536179842030808572218717549880781884406103849684652123430224845249660000001246817032047641089766770891642258711433000676067517744309755069278513729481431421772264722891515384725466078196719843196599343243661571493421521868879873742530396391282066330901003035526793605660620646140391507332322829565694866153782524083650466688881317972381120915626125820231389356369312386857829062551592009214448544620801165437615659026751949870842553515991736669462276909200961296757467885639867830502705085052047441889354940285373376288188864411188737627015030021923363978888163434152333190580948572258467704369492160543459338212585638547563914193779246354199714965370263821609100057091751125796143417163185001248242044397005943583194593673765638447091577169338257988158963382568854427395178196114765811248754119645167188692536631917161990752848036930082113736542203629093479794188286593060160621005108011021171430912231381361950407589298205362534605651872416939225855744221628134264629798986432072895011648065575856518448655092748882233680623921631458293949591698283134003047175942280069610975138231878794975552151194355353244436362313452145950357466917215526560329699265252716753187989200254482926986346905515491081962014703115208924752371434367210824288333694667385579253533868037633051132527187649881172474160956450958919656381275547695063570707310975833241594304194911660505919665605110742472027154995294989668622565600971619146495538548472870852803692642585311556837690914212681675311481109996302082389514428143627852234798730229725358148831199125012109385250961782669853961674892311367586270003456096249248153358169715507851335418055267819887125976518663781409552597333641114722337289678028047783110623561341509630365829055403437460684193651105043974510632275053222976221596062580253480764395586879590785380268227732738050604020642754872362771381776246729244757692897626106453308900840672804675256548641345039321843750360356725838724916031106807057772628989882421452926445057016585569276381749273895392683657525023870151261784613532170926033388536628812028736899520368231547554540702536513191294700727163235766079630301824842402187314649240296017184632563647279089322000307907198464135829918580840259151673853334277524767007037353433301087975529662516144777540869047988172976917400939524051218511303887390073391735813163457602930443144065451568831503153022305703523448916301168188077374476049969011383749718206385723901096912249061736979148203678015453864443796724692885039552029610503398491143912136099440382515929117637198389665114521833936577780665677329676140129612739252653903739103375837852323909385696054136077684046665397379219814068786276219500138000687754349594094133314058991706289243535988844197367645045544689160466104220549122638454374924446616052369699978769562462734243308047235376600971797464539861737415141728167288305216716844628319114648417219945350805877102006445042059299287489012806689703811153227943070747160271328791332596125137281145809142819609424640679598548953083413386121315967689367603235852683393125386752807811505680635538361577730294820321390427232531323297589420203272006162028611428583288838141520784676291558783268042278370682102431060148302021557799940297409309664243303666969470278110995804287956323491532979811473970766236236133521613059081303515561421834072564306840759275726652851810664192093697544355980716033348856182668005150151162422059290729467476219925495358126572340508902159254677066619322947062974719009329982748544312554819838305221880375987377592049482746768517735577889997863899114175333362198533463015627654860370329947729448359459607017683355886144647736253290604023460227923604780644118150190859139737946694332977794662950434887213509252304227878199802107263673936982042260718367355223116937384376316413797593567042416925050328554633588292110515856373391569460834459523510538483350838526581909982648753358385259994413181111092340735684974480959872640005158840988654252293455107514372911571892511465382061535929576897001737924580214574277190266101793218725862110349087544082674297184269124607923803179321506477914352727457317334883293658815931038865303748747923003437654228810556944990286362832454814238767264289568984748763982893895337912867633303737279899265259613579957236994122584202277109508262104509902746251756302060451517275572106168076183571406178773139991903433799515067012340195548776821978435652352936376464988967261736011538780077998814701066847977778258491286233287260906939381709860640256350417483880370662965427818961197192124082713391855758396938398467580630802190170185172281666662166616067944520260882864353164808150799350589725415834235033594599855427566587332792892697556212076307618617872620574424060474302457821281754770639272838220736912193991199736778110938061056517192991435877145074155170138825697070349121688501474077953803046962898541280645749913352872628103104209810461917908345793552802129236891843495035337231253034179948761037459305661715589704725883912047665137771211465341061959569420746883436392196713942167354155138210122159690863327514751498823847466400882883401718247503004567131049724735447065638670070633850451908496233009810434940880485368175283481972704527112680286642402285320646058479246755629961713689779286000338416113415617043512476418885485713435939405293855339356143315637001490044877955110859983128309319739392129163912131501520930679503162721821654924185904717565962202717895167770457663605993415684143998300047723034041719135041072580293826107163349517563958367491412657013165883836531013188630685307094839146886385029634864225922714368953542560415277607494623296068140678297925773325551875255128393414524646276483895589526351771496294727816410653129341232400834033220635314361987026358822792503965180368594782932390041024648435251145355816062711706762518944210552633662733711822692823882716301663708334063273395510818782504729513149751211048188377806916988540895742856842689833845532671101210927898555401066238615519743851849414492974917202268001066391586980226044050651500252424950775336880213317389328524936246456312041722077030787303006608650357265257199048858130212031772792501891235514317904259962137754513895735204904449187980030561142088952216361369597262549192819659540091529057583690748097520115920574752474249206430966748296552690414379981005395268684612414226491501546668815963438416587092420069474415516376785354554645187688810067255478602499197050748901190511841302026478521140910854155908616322520681873055071794508282240953687635698649419567078684566883684479465009367691236665145430817026165712377753007075707674406170636843941837403342012836612810800872160600205478800805301835983770121601312459005060658266454163668382317437687093142169033907177783093726738992328372024183634206772910181545557918686646103710731935228206330767992534370017021270180100932712910386343527099908531672978573893481436577831896245690994018387532694694566028869159574685532214406022039219962453693761497884236050339136941476863322872860336450962506836049397794649443385606533619179455118743904696916061069150739033818612123210479888315216235473238551367303711165887692693239715537556816690265841159603598266469096874664257260512249383138879687971798810585146635854652187466630477998656148970407621676284596605776061991411752477945322178841170341294666068067354586608046902109917436902653264515535900384084411230625899750859933865043900959231603264759874761346745800378697792155412413719125990396023607045818606777593542371454550300899448729000154305646648557368436217074004089832645081410433119322464406581481652556263567902628060978649237411915760637313602528205296459806957101199241667344860757430725788107274260479379245814424481043097667020075540441387175232816422572731699176211810555087066967737311559096259681969268029458976731266017901275819762421664133568148576120298261749968159411902104569904121561137578179143812590400041106101237990509768332157756837541105044490734748679155637021612098191145625350199612924541412579792798890448904664326001874235263003610583819491235217464657371274463571780959842312056348985558299657639313243984069385173588096033616469161398835479715309228559101476582796660579984882635462670256619148706319492073977547443660594494439567654136602188517184159486508431900001526639136624779540353212722196131390865853268793645591545540689859659856581833505661257358450932155623316948126177932304867358336563790549763159999094057774326386093630943347171329171456147967741053875216385927498206236359874871405036127943971474546508460732396850092349365330468687435136280322260138083061112606133096176196241739991765086221636915897599492748505589979488787313141931167555544364149949864143412179381691661006445292261345088755293547747424324639056135288040673646276576870649928721722786661717567829510592637350120808712982928353982764915156005163722583756244826273680071062139252694218862343310957114997188606538473109291534743654316471119945971895594339471063619994807118478036851101431305771611067611480523630275347400296573362794569204179281028085475908109570935331003451964651771512291566884473249360934706797916633637784907569014371228844645512660356973637574778984095315080711282018021414110344560967442906498066982460115276407736454284286250940149216880552007352116716754536814074760884501740878382849462833675823212301852833673141974332076672571285607272033630175816992400394427631783974539222381957310418806549508228582394303599614078802682487938262839174368011988692244266254894970906554494341043163466754849605968033815985147824003411564321564382872574141108363387530788236972817412092135119878848411249174624547879639489224769360136077581447666280081017837606270754512284179025777129990909134980863616170511094745004931424277373815214788934386769822500824067333646721009561017587720411488364451350444346592478631196888283233600764273266074025242149840001284574348934025214778796177320043366720401002538925776547980727745742860162383700960407822100244767167690441122552223747763823520493551255607819098710423732491221491796516011231570481615678473680843236607690345842012485543516178447350285384026793877149177098892417057149220958123934022856601400452265632025455644977213158754350744291469533144910351943454016435076505418990039606335270772612257207711998534910235580636691974696479684649489646317174677990888110590093801631236981774334952775634959208179361176113406482158810925758234315537793434008436988801592146771608286627264600950398583972539858434624500969111213190587587680707338571124256539887468516764577265249198656770358874641036100308666267722888276499486362369490774084280945084272993399235032289743364456353206477156207192846915553261249377213246866354595271108383009325493457791365031874576662763307719776247497633931758269977202030609604592850552360291485785260681276463543176968512133183791859441888921073571872286232736944238049778166129832451178139316255329603632932600042655486162444532012830245408566092507961446582443688269075376249008412573981165600796385752022229506754584036538387600014314846394649173642810414813534329694608916291331617250284287281586167767470430827451605131451192310608378810324806741904356597472125501683720200721514132948842731647189091815044671026606073456016463222899685534660456541218409646257393542225305254261395633352064550232707857347424249813241111686082169370454607239425451152530668402510784344707801311965772485726726742184837631597798131790119809586726919682829335556111687207999752539140024657632962791428324402623644300992741018032062261907627168059110910387836670333630142101885204343637506695964600214108921273359223426104586055390645119045327727751351581350866656628142263054017540870076679504823472418804573375410557313893851988936345138018493689165545182421327314037486417604872308283691700605732096028360689435058458458212216217888931302554667819997975882964915923307955135106312632874922460435152853294093895170402027339073100147922673954718118435812130019489445599969901908033399940832227856128661565371975633224224151285188133712494140048182657003032160348491960393519265738197305333459294550234912891042753212367314634840634732500147611282384600855806071390334133995127118974812078087136832037203634555913263700610945586829743130420770217962787638720694341203849392403207037749520393854763304560186412614928815471333548040798407471819986277098853081774506506907506156387015067811899410121981598538274709306838424707931165378131966553154390700620829563067954259330946605608909821493222828151360601866403676476117336540083644099618749311318131526821732396363390285467245691599813746656472656228312615263241412877751486849222675791550149091964165122832691111122390446439070760654282803958531167599937687692895596137918642797135857254908380876141976186004945193640274672655454660879453525390711515857399027247836106905773734050722588302046982482717450773565675108013401667402828738679131199675947754566462574510845236154954877847756385089488840452851890606846752955184394245680076176126487764832273947593318269423688076264159066154063359060559575867926486254313750892523540345085199891602916531926849470372432525316448350771961752467327257002089188280834198361818002289796490756091468766211376486468686951060596813288743548179410979573306820643361223187993354955274014373851593918152140825248451922106975693104272002024992145986866793451422487400386779631322097459680945962204308340841518323099052197361218715686141638058903898741297907266942547994625373529331356317039652528514825973841501680253161387689313395805399505670560216427268418732358520836224371219021044769094810116176830161553771091689550706729487379752942791258750136616867824091906222825735359107014346354742054787046054214310325942051298625820867492026103054077827862919751108522124755663360375638424878552132300943203665547576112512617374497648888077523924913936099881023197217826987154872911814045363487284441804191457047865714545231705784086604833017901827294262723152062950142766694013979824546760141274277063614439981682597226910810417563130385267646574300887370383830327519380619677198992057699115174402050915679339818608143784464064777041537047436765658806247996214594463528329812461302820203227021054089664953032995431125862475287330376779654126813400854810201441403184332160026196073838728789863417780500977205594442016523005758520302985789054490598682901778133228268590105829781350198572651961702554232010335379660064792465534319512485641967013723749556988180905137890614605168199840973874913216725607881743564036773504263434833192084536273909295927488206494840100892548593279678893082406643599505677904901915333271268590238491194435447235785460958995134823769917678886367460592339052233707448532648349572497408232062313905546080478767616036609276238594892568517162910714286798659373341943872981324873872884556609765194589618736718957776123008501451209728037945576348395734437615820626007185164190283108672715507372919766850986074349304178928035577932295485233120207391756715382124770958193574094765199421881089809649261013142307086703697861075364412540411119350055943753651719885820619430907943510360311660097399249880161726816053525559248452410235851575943216909555541544549970934034530121353852938944866271685178560161653038342251476708163805663508952472759495876852367541859777470852712622957313211886406745876588573347986958486974476434620430131281882612693511439509544357108417418301587807127992041603794556281871077662118375242147541711150363145462829851807802517846346346412854126897768307537281962235968942681469407947842876639420267113638557352414779684935413318930567828472229555311485021182055077814414820660544791747400308644659934327613599222039686197127374304152365155607985537920120867256952391671132134395973422408808995097087786351593933108975838267094308888119812802524632933100705486482218918098248115396406800348590921071933127128369537814414889824398696619182707372645413403060462896023296475494344340380237927940481780473819926869912779034981757081528260049485694421300439749898685166123222525436824324186086093791889020373528680352963142690690155077423128561178443837105910114343652703426934834666745229850608149132058894546026473430684857903418217758936247753599185029198848039550100456685742902535074465766851066303036994365340482223098320379517044651148136837538632086229209778128086801492878866259954819711343398633229302251411083441750771172315625963589380857146370071689027832368267786529981743401403433657235523567245447760671664497683546509303355436300999310332636684665397330324727183766227071360302503801992830829392097294171679774551217042125739761663529879030448870133146913629790390518862421375265350682668216208786678922911581630295702058799246076133519983741938271454789519353774896924654384095749658735373950624829989410171187956904108929114581102533054844489248642758673150006216788050802440694197719472460692050164122692175953117839851585742458900186617560640685868589525753925729107022855674484629352719839707668455943783508793724554555118957409157376573738984124760462086820170388159135087819714417654811301996264697709509164369533903369237285865942615025517044921545383391876804781711304309357454022514474305095072222859442338379010728676869754615426606317047270522033839632855750913382211762441204762760486973602638868407491854495584202125903234385986932898264930006746355003736881377954811887489167600274827676015607177002754413310687710685994330742197032188964345759761984628156352432121569394950230069432946764043336087872533955295734476156271089776924555401854295631733981880051565397155470507870386773149799261208746385098751456027186636679766265304912648435250212264965239212300420820081213083452509641336632280966014233723022779216428413920184064586934083278769890654762965082878664783235011329461829335467002548979477883283133895658784400825194999069888976601350732599921046973438887207606835777750334792360214261378509054806849737334982208482036664895559834218045769757269230796204410482909184698128084415032223845790155558868430535343303490903077116391346517623681205605974300537063437707542801690000447212553504811866602184814310120954275997697079202153476643009202523205383234018037327965652772414360683820803637141306771648584956960957856027485601617982790103096451341906950246068492303499204075008695283648841444093148873366691039989125289703588559655570923041588983810464339970216894538712359613342150593162045180680222048544855212599520486986611237597463730563228216673168573067950875853238635223747056497916219340035261276749396640143959183348625354431453441768491828949860101690514380136510685663360478648885472386360639954733947944294040438156074672649087209850423256014805752211474662615646062861472003411116383000787792345044605062147439691650579348127219159305316557858843340210420386025979345972331822825119734991293631698723746039484006957248700847524854610257783948572802231834212173137321177284176726786565275525509725384343403182190984853832100867190443361313163728007293643628333991783112928046740275410503208810619237138402560825140137118387241673041575844007400798692292231234437816761965200404036948633458026073232858386480732986830492628971521623483026295853597920804112487838304954437120414409652784075896009480311576653139403595632846180311508465852403887718126415947078012889532997144826846756981387989790722135680173089412606939930866756034966487086093899794486965801489908791131467695726695099930733483829342121357355778954507695870445052095218885511635308044841832580968645791510453376702745194738214494248496062012928785904399496618303023188347829434606183973348523793166244641027393050854932559822804535274291965454245585107076291222896843747486628653718459911113331709887080321091684220188788192719492092121499925948929786924932494699726118976708500829233327231575577259599730740628607492904606099857044920408610977705877837713946506911799207871538573429631139674861108709299163382615196965804708999125560936928690994752577002106522803225568340765644559126218207390373930882248278376693894700332853018075124107388237362251943243380221697567312292951127993996601318772670656776833554753011677027261384508744256303339150694411654280206795733471121654274728724377629689356914604759389953858061570272148060337129421917368507479173252194932656762445154217381397838715467118404547097936225428545343674333259433199280001621675636996280032709621222489106552799597051579720771321909429759038293462870986657217121929170486270127770763985907981514416100502193312302577398414619538423272020657272473951256526763700852167450541239985415244868912152432412203939647917587208162691461876633838199745549038567971573037596184078321801909479994682376321251452919427125685334204617941672740817294305447982694714729147753493393926197462169806008212950674130309860593560657784967811417181038894061007189330513099539938858946239924259533977116406729429768839168959953036256457326927023649354082958505082970049098947351777560822956955543846933822041112601477235958319756671922858004012787868300433571947314144281642859297149988708515382524151757134245490471542966731974466754598241558408083607549446793847091374989835853262042772629190261134115436744095968328962710493922812993380841071730979455688259221328662271993363927681310392761844918079379794924285993933805996911342737062458806044823644266061835941144840818211120729753179490940543814060251235501525590795022661473787455712583635168615883316180713749285821614030953129430394836981870859145282221789654409728937521642585322065733159684985999777874348448619613881634534306600524047718684498342546081946026918147780320927978135157285070073529610499881793139705922827578960226806972106670661161291457175662626661347212659310955183062432134663779726755955433770056132440560003868844690465457423928493491374915533271998031628841705553667473126484080230146152914038156763355800298641004197414206307838191967628338583052264085994761550237083287898224882514926576932321679493701114561101016257585813946112162830566124143646591262787464209423049079096092248928633614095088947602859606155787288291452045264114614664619735552122947139152390556963492264843190121280662212973328393115733053226297526426264176318437735383904166494896979525349816032763391801964979666185802327440612739632221391649843991975961542303644130427489341107666008872993187908550755497380658728254909605563790581034552486990906409694413966231654788408924203669940936149992886222225440598201320019465563052300770951643641571471719875388122752456763200372380511980534448013112501377938658846938332614284570486583897999538234606854982964729692957924904949353212118689730908766864828803798363927929541718086503086429485319809206849043478229033220331371365588771145942875463903025429181945833870821992637354087196009570308132152198469649450301073796762629719240397365906803043465874121393840158619891000856293160326432650654793372395006236753996017755120948826357518448787089033820628091849452008437329767952749322531398369347757755447208863868252007578307408748121544106517347257942304627737503819873439526329364165030038400864892418134410691651668587835882546890818150861352635170688985145244364112874558330947717621455848773610493565909796186302110902640733814141966672457512773475820713352952820196943613618318614046843623866148327255820158004022924534034005632878431191223360726682019507240777267868562113887818201958012176077439128720670662619415716354836031759698791385323666989110422420726815776619501239980079654807218618812230914886379386713371340261145907691435006065088059860060917881958341700704373213598879788006443561465054758560322419699956641312192819674715375481189966480949449093244125812781804115538960692053704972328360525132755535778410923770917922224946497053435524675232828236285489252663701876489552515239957269636813239788695452565557484051011862035591396628312450078413905519381260988581742141300819842752727015536595941754441036467790591336412805224771738570768595842899828099283866978767003231324433989031383166911244795036661937209269334016644316024592201818810421651426005999505969952698347607555365958767441689435552603819630496928513122383203667877927077453189378429639253571243680580451637985674275352808502669303250470853360915798191342791900718556900375821501914700026720383559681122570162288738103384816349480182724516012175753111378599952053962474651496073154592286800970982469763734713396746093583336867342549118057348947028651208232148893378763692787570502739088344788220560547409332139044107612727903851334627095324674535421689221246759434650456449396207469032906260673001976119958464757953726744506793184838349421128449803621592361954455724256052821296197257726776476372307398676036313226903498115754668398386212246894847924158913923118831720689619535443851307316861982827346468370345505342490486664069170016584271639677234705633137382618250445326145358635947790361325946671852540326469111138105459800242122276676976899713206274288671251503310140596563370551776136675584070494435349635278373022888311017108361586032333018617002811028822989611721765316779039910861513047261187758342241064765237980476525146999417927130034614770705247983904581525346818133207625097047827508480270280254971114085909118445175038078325421249495931833990753423955022621462838675772079804274636828060094892021007689316022887502830452326856906037520680915068371626487937378403059941768579073958118687766539879680657716691266741889311560248137016436016931713712068923227460402085903073792483655728692353784068969811016570633821950047572739438812746568265542866741260824046417546569596431051737569359307376666971331382843610650815412720864124432387526177883679137617596407821283619137305295213445361108710664550497006639699810022224924575580121757580521889483467869403164382170692572884468897571430004258568272582315916967383186526076544841527025856706131124793729305519823636468813876845738667845295035907786590436509021813495869074073367764610209870728496144370474932424843785973202819916623755247281993756877061835781398044096684533675622834249409631648195501341324449924662968473161920312720391138392472405516318432668283401923028746300593674104972601317197377337247061410528265008985745501471711575051781060065746777065978930106749983419806164047096900994337081397097630233286348574157686965898643554131152576827526944254946528513067080347180183947913590269859128903496050935248525703205360742619128702507564440041633164279767073680267009897264590907418240856173822192578172484765945494138120809723353442537367267408595302259903045184523020001046557027391672524214337145663697691845095793359264950900469957201720338151157015955320662737073333232577462980434971405188115122287053159191168965326397218525047107639336469122061687431331080480767230724490411149155048321925946955997174326065521796767767395489813946498382346218411378363637148762415232252669151381050183380827400139114905387335080362898604004713476163735953299204443593372578162905204968623038793791402656991154370664416121831128569088445648314442999518669616593128608137449724814996778062677945981694956173665504802354357842671677982480288086762936231321743381566977913888571711008870821107201531095719503611166693040412124284417793659414563527406016329335144798693909160683895675886320784858984633100079496654704399068631083645141357598494251031714502901231107961459816888552762045752693518429911008570770968923863504147968748680221344087289338060878663813680590045424437035743516294444922408869215331217637857592182054856416019096985231634049420236439682984160116488819438728229429929111238276640042807599959396271679223807966901532703916830414178886189075678053387453564914118739164473349672724893125982551927465357897107688316212383868305481973906546522877649300648167612625861267767306667643565098129794896303872205942380672540021528641880363922351644468477392093201869967350319429765921902009074801032479282033218051255486118951927135308198629199258376003099437676329359215901131600116106224241234517660057034301761203626207126989911114016019637874138882052579408989077724495502459581922625631936791112428879927283960152076567983591655770786704812165564107769643050189169191417904318518675341549423779841677388946303171554675685004539705079622682434679417164659152252125239890413870147078974697203533000933441798108258398075979731800173949355843603747351720535264191562164535729401745584035185789667669144763512336293011284694458394419794579767528324194152666111617726554193523640692923577595962843995404219324232796891732525644799893399936228931323217228376907448440366718747395178015999203950842163520619585383961013561045109967451389217894629694667900737097446241440145578226098486326462494209261706307965366477033443530957808198125751742153550849236073016917147584840268759080373419268183531045815943834460511745507393570231300164211192597862043615006825653847839949629766077813879597441040817294953091916559949725923748249478752629003814970467439169275821482099662471251091980577132338017084152482446210117210206763609965701759723142585927622706423759365194646521714233079400362620982200498067038054765992283123612575156552560914334440518945794311567422916384447875610013707213943108317309857875411054766015015736898694569448709825534372243189587214557732709844666805024697697984453307808610864328853296319738886293810429890871197652097853493364732566049213076805444828868403095305434097472725486073347645169497524567558751550652875579612244593347626017142651404960724194303183441414962555075411514309213806222655368876917839177007350138799656826985862777001965307688982575299063664259007859851518037462866455511376184529294953801886526682126644708021177737701620418109627857604758532242518825835672228127707066720438430214937885380439727540405508186707794284299504080457621976334310019400278503652349632076487833057449764391663159396431239931314196483828032390974248085743031350193796941983503051813386646200513760067794028224852084334985548911761310027032796636510982516238859146802947037882187737827198380651116990401922587019203024881389034687737423386519419771018249030942303635791087271858744815375882784303387309673014752370404193547118433789237869652683196951287601793328596009181955453259780232010012758154498880600580097369837201905837436575636337398663130321209980508234456031863260961457790356795705579036944177297640824912776626706431007772648406949618727230734039580886922639501639079494288572459829747102077266146497541632895218964741471721008883358739968585528015349943676565217146499475483432038637348220927085087194437075026023837978263889002347087487445708050516370255189492205124716709923123024827012751578897087678337262336984304730409402652812551084216438238580361400980271195859001931517202028693310613775236696142196260421323517228233130906142019389636603943756096515581469524659562590329573344731271483370113549806967349226151866714271441461053569715938393948322714738424245236168597232159021691606730449824788976189832364612824783468500380842136571371870802443421656860075116485952383820892534403012797515675119012165074968487923717199119695947714570822712602484478881738206082458166802305740195608120380156438546441587002975379240552185607591465426063526822991989668131321316510913570725629718928579379610519309869019751028980896174118368554846666177141388259340247143571447254600121318347627695288206950318437277132523952134079528427313398418610206037236337267403545532699745217380259507240134570045328943655522512519832896744840690430146954780926122219827933525726337761159993072221247795146632926409511589261598848376048463861661850017079939167958421944291717191896400421127796460454303621798430544815055756358740028028439488895571034781679671962874183602963200418950012151836173453851547930891201043832444062905894707772796461740333790983653649637343869974508777425304981961309068809806619551675608431898124712760027625662518059408413006969911677506857731143496302936230351835491826409751103082934552986163575433802782114769287989877249090760490693982950875103204043295258322792577774933742657031738881624368648514720090532072934313773508276566369145441209580200055681616662032585077088178448800025175146986282849332901955035479183068790307660470184949023727374168548590346384704779893725041200691694723118735372185825352902813076712098229476220780666882774791721271311047766577038305052910736093957719601781440574099796991180045312958947838454762883773422833432774000573780502287145317318643107841947252541171603430513674657270952183641218401789583368962168011498658612517623592164285651486164729212051190123473122067199887886409034909536618255966027793361639514564206754291466623574709207811919610240867942010200917054489533971041770072811549874712530705040978488578076813102597845697398010868149959613019836373150584551489390496486166657206515209209035238657976358942768491542835795049977676011453706832084103449223243049978005924919131439082344827440367977691029515381904181144177527930302193250701829449711209791058312518931549908503359099382494446198373980161698840282623691365272104523408599005741809212950025935697557383972197609247368642218376993593892267426058511477287095586510725881771375990292944350383881782156501939784851963028174517265404064732950229990661210432617296239662719291366965732518486684225015393498386729785027141509203749211011593403833443717987221105337781443438802734241592767338619822416766669258519984983721696033609875555174944804145716802534355663155218708329033551130707440629696168582246681144750544354483930881263089521532102643945962420027159486898738186079742709709350173986315928297336915892674329614654742099332210459186329150433621607329243373787489725346167240848473171707457782891878763680853184521853276556765069888125455126207221832004209306265238699890242881910884057689096925904005612169624158949267393685536295365282072822219043962736781276153940471822360100627847636992905898460785113068459506596633171941119925092370981040158962894316633479340132834291312157276389240922055814445972041692143851463540367086365649420417412346361544436981158898658044814026909535810002358933471257773734671876389422559479990848815517085114886376156889985693233028944230750200270195969141223674232865774568004526392961851368984722697017804495944673006148504271125116282354118568189356931846110224293887285885211125918341199595992822544513867827994676724551187899252422943282225082097664701236584406634900628866989949560449568925088238020974781818775963358011366449029346262419695551469468427685162631774655997362019258720986862825295976585919063963799341193019595360523084087380918108400337581677571680609843212906792385991104296254282386543658239960381543026749756097389555842120825078279919598704626648522056382374597164962967547443540084714805288319447149460608499203262017989434521969502782955067644927684123630865902390571321022459516333837419361981430786622567392926895475289790622395835861491993529091998776303693147885191728759461543245041362039638203361814148252406218799804656953899640739098566950677971656020516855880001949954508980721245320580048380019969016596571798883328441727972492630964381681900322303356121401123547268082925325310017934865823308199764398529866342295264544678404365946958113763751634479508675771194199269511552630109492289261583198368943446198208194371254638715584666339332169014183644478438497855657717829925513275905402481630795727729224313136204950546790698483717244741811170211537720043648786476629168232520665390646297187430155112385784017293199009103145096605785616010978597844872012977366469728873793476456715174509135820865595096604575019983167959538786438590950033979773384765184443499313763645390348176518907485172739658939971383011615772074829123326227288213575411075412072660043085223795425004534479877999382385666495018412777806783803016486018275389447359897248346806070611741634782933983939728546686372084731803234336774337876451628262488732559605613514443471028710201607394121744279183964634422450731437062953536294222452951587786208604545344069828693677172409622967870725577175229696941051646291408383095603271138455878141677317461708391991897701255346000915737663872045534101013457846168242497792726531828285713544515644939978904773685428666072831073592193399719024357389663069205578888977304867460506544517714909412317400222817091264712820931758324876923253874741392438589026538644478199046804023854760218733344397855584505544608962441775510310944944797707791225489042731131679391218948075150037068543481513337408968134182742778943547248526574374059346702204520659845892328883344979745291124907118310556691238004352089478069527349084427959698522523052669490855038621452645687264357167746734353250864761311734077079456397996453291488965757983465041204260714964580415264811222763951076662909479043575490082603333884253025232363367266017718556982131707092281406750733934137484598678650587493210738026894925846636689756365848292907170706377178752657924107948397092137800871315788126048824309927499841537999612775981287955436986133532140791679293113663682134299617144295517141544297299228841679660276683437200261953132417293200500410960818125977108035222018641477229790687431316241030904092136538110632024466466003490277192040535802205206740517544719611664709766790327329636498562515852013048800897198577910876346016802475256916072143874372622538349680091970699688379753147224357841179301401590191617649811358742181744893611053945464704106061240852730565140394878145833998500068218631193863948539647837067598353547386299175224156118355771028332831341734295778587980650078734223155893632678729244156661900656933628246087822962302561401569420071537642799817123520915315733661203149326674535070876756912806642519198042312493546213572838143278621916158118498243237945727779320338571153659584746814870380037172497295457300484870623630646512346158124435313826225011829013126416415803291534387887208555166386075969968366592022133400310033543949990305198654271594631467182328173322395081612762708206846048196495527484381368754190626998526669750232561248464292416225221962162289254146395130127966068362971664502521278587531393433244180670868496653119942330077541289807967390335335985985202644852032781998397431847642610828167967925807084230991774960704435639706288368697981118005665557814315625662275705660885355334458643692719278214870456720313587802528444150922663240130162838030888345312336227780949573324562308815611740641581280436611598087724371191147705511005872108700608695897272719133834154502557887150204837848672324202074516870905109253856898589585216168501125631815839969923546516641650206750968545670431691639353638900552282305745873910958674064080225801558829116737983606841534846832204033370406407270629901190499036017584039780681845198977658024443054111990300734261380033810402212225027330931693863047704742806911407277766742031416297446594234869059131402038948272488534030213409771768661233698876361213432033609340523250633153392981325629968663928968040630174675715679696660678331431320905866569697850218462913345728635075236714029207299183952404042783125137597767838445064527993389257317853466615564670324548486850811023125186807689203648774814278651880698487668758357537113950795153589011682122212772746158067850948963323085945442132923401056292701049577031189816849094093976637466970096819577538177863090478979436600792590032760745396133856417571318889886143561029168293837906444420713714403647131709054896373706705067744331241015237051967325804007100322374434699695997479669504316094357083792750521458347525508351309333553216900477373660625848190481645327130433937393621939599919954737484079689118544204140282647635882639899432089209400687497599600858420885785403043337338283048280053186697840874756380765324751976453314884644155978190966258844782480875068575187879761396645522946436319331468682936780313223131234202329348313302494275948943053937494400288176185713942669591424577327146977978136665328316295209177650792842301183573601974349187999197215505631490877371405209556698928436299831470635578337724030807216223636860308713628829116641191128346963963823785703971610504087241277917456077847252166379394018283949020483187610965371685333325123435318943196188852225512106941916846099604302952133531721041196391522077827709063461012018425955334817607888379020430255414518961535434913617001918869375547950113183250344701029479896194096722029492877830382831477773786195911741203808188948705117418954767319408156568795588433358404773771620039588054161812095012582411030349942056725684326692151770398887717467781619376253818382442022617194998715828138681686843933640074513848492702968979730267831603441011605872820784701141298855097915854059828604849804433127270521689592895644471970435100426324482004222788518568816864184618810193095308989766952571364730172126478610654564613609469950650660414475161342452262832918756401037765359840678159437672697074169919008426175815181988698356950286880104032015325183791281867564865789959486392573828508397573669004667528711669818246884726511765855073685558180794773160817726848131792496943636133005537271633487561586898283305189797856601814821387841259356948528561378867623065537077212073821637451700057480860095503630752530979775624193983587741200520664357216592551835701443905329144712602222287707112334226210831807103694011604814237762554493282143792667504045044300853903972670037173827078681417507489250595338682817934667796618273400929522223852456074170762014654212070219068832564405733488380133544363501524720586208364793666498371361187022153151971771267183222205258336740193393864172096592716137693362916505081639779856286012077019038403089127798202011646026251445529035590303154291636498597583684300037262612291167048071048111868961436510814176194591878531749697663532099930879582645685361001286489445538449090536639841318737079583194218897789396471286144855956137021777992462040796421773589399367730423681636637042833048610350242964252702835500243602258282729808221716646392834204983321555657653444444410049554243583775386096566376660420835223061571455187894840932684494859814975298433145015402986499893660082034147642530008185000006132357550599212353682384320752631689404242997027045481198510063998594800863481576586115876499046358469174219912046303438399069868939005703231981443955575112229759096735976316584109779308811469728639215813881952705398473841133467716503925383790695731937561666390591881357151194925335298587942598371279728707302760391912358674704502034932541374039147973819773038861758614875098981688244456526699933219683406424276598553468960899913351103865495842757403591508228039110011557850204619051337627798344463190147481074849808187280094397270074419783000191073991022813880759202574579003096526750001133681422689540302437940434262598169900031145936861900977323864803583062394756256572770002310450439091013365528907653624206851761095710378272264275613278210967266252473849518977022343716252165149501253281553822875102056385879254437481461066541906942600105483866149377422277430484758714047185399590394963048882273798007815765324044210080435252406018671259673579824275765552041766083252207333921396506139001696734456520023507202050965855543185244386600838660535854116125071425108536269271237822338955732672862425240589716048640024911730572677561363739393069862055630969562656195778864692849730239296484583491983575663877090465994917822652499867578114880138266696532500072182875180321708667030183411630244081433704410558737394811209044680000761741731911966004202650027436631841899439239983970743562379359298152515391152118219928936780596592966303976457284234394568454560104392282352687583757073917192180117773394374679365922472390219067143482379780446616584757247271767753633811417831411816672395602929358711592800062681929059694080896512424555654534793208581494438414759669822334684904131870757475115250758174154120613042218445519380827157205477185101555747159758876421393181450852931968908432824040508248587753369328536781642647491829542538625795003757062808609941771912120709682340682841515269025138551653742013794467329739690695822223520447815028565256412289734800984571431761183800273925629569009870585543746319979636902350005056364080207080252237931590859272582396834153258164243206196251066744591302585950241909692337620680178872362676213920917818857868647472927346782071461919109155794655923854571125048788211712064773200180576802316666105650955139313657641253089704754809223304300166070836036441699708956121904884453931817606228698362395618655768617740221173154492145605263511302800354658363195651672775275125959534382585387510224715813545309870826029827622284087717415358572017027094111304036670705720829450474510276008052097916539125308704879531485576623440616315700427720118858664483459015170560042565401802713297461865318106594454930313508711774929873837782588702675670230941384451953494700020716004918719611176889298295649059643414682082687333228653009598401252164087289711130715852924179583097612555621491482768718797411189227271012305963371392759050394043888725532193649599675131725250686587932445734574751630300349114759092302258510198954196752460247843452696323006874001554698732626519115885819099068678089874919321349216890889491321867306270687701405640227541418968577525472937676136664346922449195492313838590313657395095705766387811662225501528272578182345052692725963697259403378374361971196504134197156447574824334209418183159025398857571271170469179666372862623516545427066047497097716725540118537545157671502867361754253245035401750171031870767570764561731244547410508824148667974854914453743133479541138976150373007391153029561965614223977023245793817320352756212830526799746124946729012561926810657223969212462468860032973916569980622710532237365625632751646212756303471855149669994805904774898650837663645876297100494505800300485081121027785822854004717261960622459793662376155253797205177176002352248965075657395076749874814877559931176986074993294935302596035357929706491352346591093383579472598742514181120649620448992250992449602505146757227026293349732443563758429824441867179209515734252913688976974558686821796579532891211889182562196732752944948129511982329401454477499413704903345816316314682977561826337005388950551511895173797799067200175625593582953984803462821638219420776597838869707778099650409159554066010841677276681818426878113976866057991264464552487842236707078655471229135100405627382877520685969085930150904743778564270386612958680879039114230094046632547943183839699235527205344053842954294618761828344427868884818751629202698595025187796429701149596199320033138639435519149455412438175563992393467772816342676891596359855637716698776738206304391309259504489179903716920032317563826489960681822963012866459358983828974981930454339571839653098916861062419079361294441770729724608902448017258232009166786053873593526968646947375832355936649609300378848451298788774367967987055528206511945697170875886593663724993749174734964203583592321687449102585519034675466750714916781380215237297912572859917949690173444048489676168462827353413929365968224361525226820968993005594422825432553461666181312181247376922169508132910029109931070623404995142074962337843005756219775012238462246975444273653951107004926898198210213263706395633735718259698934452025808554188386963141272704736953736484042043427898599628017011402394940255663356174919223621599204994167992114986766947474106678329794386633762464204553551677645184118793723954132328618288271542463130610232780752721459323913872225033614676514057321155192311218787810962561348772416112822302557371785961675427290315023561551992175037088190957796431578428950360894857560005181025613822004310987087697821550461627898155972871401179480122133016897040181288255528276060635766827061028359856990382064711418355122581914717292116180499308571343343740735000331007065010711273660896211350623258681819063689188370487905782004189439177417688876080273828949674344995779072539058078522537781224027925974903795416538044303320528359125384891990858718128732939054034560956916521690453827508902413930259645166460519067928074264708041646606640981219703294342673709987936664474280822610642696394333749840799913322700411848711068860035429954580204772035228367540415664463190173237202556041785403290268832870614504845854519765711856410024696201530623537832193004202611761310759062992212279396235020083777940011446726262630813335883159954275276627335995257731966317586158873858274781867271141476870342062414877163750105655745437535217831445024457093758182787119619130757776346123639714026531577785773264826508573067820264402634390058247241079512501965272167974909006880954786456109529465089418414057630030013639378155715210775627951560097150298439604570880445915817072836422892636342496789603115431658130591417886445433959396911741332038963317920662116593674917464639158274061055815336538613530217070928467882432115582155839852452311110368753914408596039645127905579442304573941398035876228018984731582912875836025910363274562553384406898037101983767859440238061278296435889360629835891692093414801625396382380131879572323544224800249816049024498995692133371772694875201643801961517948910340491696046489713924665557397502282422584516226449549414972993973034770984570244481167880071682172068421267314657338630278081287838812273419450688796012096682901061196179756598670725861599406966901253212151151288968075833139595150745376119630761113795073289381308896899835429516605744168632941125519073929346433137921975081711130730492185245639603397497394593104880656940105081437090385989700164615857417456465988905553971576876538617036104064851947684751489121261021500411646629244015566683050390173238076619295686016725467097222127559373764444020435343775220298997357354871403432374008613504859834415417934577404500440026934738749863048398139470017621519804662733432963995179921661039506066438447965579483074443885573492138767212527240805640124960072632813885840862850480036296853555018075918438957811131483305562651316537873781287341083625759027405251122273126694661633679620802187102295755606961683024655701169259031970584817467864492595445552221850820693754204359669751428933729124962393291411528278992209688640981853143216102915140535489104417627299845639215218709966108461705954715861659618456205911490803508906225174735958251743323336112642311981977933896295707283657201435037926561894579387343742949214743456684814919400295174865150870042505104881382420336451110063648953534495622599240879830223397896571871837522478540838275585823456483585934993235413755473282104010684273806746384563188453483287392264750851853748387715828908809906788701216465926856680950333157037623764430661712377226681563870572872118696699030279997469569608883003372652933777744194447791291700489493566975103308779937551248443072397696128532908280913696946879394652794916842513224611124836902888449179637606065805160931465174146107064634233896942712381706275972707265826708786014787928420948209197773252713382686786687007069811561879924018217731715838800018204287333122994440857527359436017119374631210988700090776320545638189832734483284335346174449010506941677843004586960774381566379965117392278944238683261124834933157786133533486263563486635803630384900703461713784667275858373556910205623354302922686560749098514847896897306350885003228050325403182057815166967289120015319331747435330857714192030925262126289914025797837183108901001693978912659766774907723044981399950357937856365189767427999221690474361646835378198881844477081616725587771236856026072446755245712807974945361659496280714090373121424663750914667596190133364809181438008826830788505460620756220576650764121103952177021812710151277685651995188783590850497645310089163301507728212059953576635851746752091867998816721592574736072526059783876263834100578943198398775508616845393789475685844474322990118874853347698899292544341200722194138309379819722347311154173090596756869303097706822749333886198155734454115024859781719587957447244576116901646371801488959540853411472053122568742405978075443510933655489533130196779723200464600436559920465776708297019942001649257733236755876545931491941759993092013237693936252331374517396645919614529792211542982425658765905114794825212368874587381141207893243285091652913064425560349260585478598350143451463382952579687177626496659459833463426449577670781694935328577221829053688939668997205310658307870819118997256162128890831769270699907301860871360974163180334469136566563699352450973988317671265878895722345378500875201398117019871756045787925686873417094253952639308738182918056734500247061283974532742167690563466941627363409442269885646670895123036443638025612960480277564434041762373562480871009718284417285788073634154081191630751267737623171266604787984777409385717719119752448941015891784804936585856059247723266650420200332976609916999743255822119009378913713287256977877587595391442715198541275664333672474579548113489668288651272483375326543533327696926106181094035099400079521620096779284432119603189712519813694429626743707663868396690484885962402754975445233984416824741891005648918883007646839606964026560638659830484944846056308915849006304350448732148659524684541052282402261051324222821883144051360874505149588725624096521594584285396549661607780468254889284321538425700724862038518930409488818777299400729199546622584168179472733277507387971122724613801276911505932744294747576894504899831165879427489147022502849786367756933468582818616598898939748857302405015431431312370424824517670981052473126305098964150187460102061565574186370094415243311713833285545702235721046104498882163286740463674418209479948004573427129145088727215246491231010868927143204487977592040927363073169544066910949534883263624529294309846833756515043022009266463984695716486151344706991383456373428325611009015673425195583685912983093796263182538909303787918301492628050966134668009187446611003615592820185523672741515640257294954459057589976103492058603344336748313737646638518911910111938691004837545105867257320168125667085656781122027940731934026595861599105093497384268547389640451259602365228822929314065615080561192937681083986779733639429865140976500866071543654035121462267359894672578106665780477687906203274866851332966058599446572990817201669174929437125895165001223252421830351762067872240803738731715517181291026108221216951783268061108498971518638643166196933699405798334513698194605534444032547865361464823150298033374547470007825723527113669281837222131661555135041755242942917653823669814699490297960856191798605526378300837393739149951645709154735209794029332562914030161556541495685779066175417226125290879623361110451213760941410982207264869230699776233601293470109179166879942157145441519245958782943754484037589179520562781664326891395184533358000141001334390105180532392022059823490625535450315429975584415850629193340903505676740069688210823396808387033945217782982627625506046208664329318719496360297355766697126617521038117268038333244525314656523604238244988148726911611939715127479287430648766916156167638153447175201717156292486237164440128555509995676706093207755452406963713354644816971305266726149672989107473221211005636629410983711228623988653798379826182573078493114557272168511866959355220100108189209130918109590068602099754160734372959087588065239533294444062609280326216434996928682725587955970847152827495630700412114077673638133087287326106054625001667856267108812231300553910167548252577395955755749429242677210673162152428692932154861398880366204125316588493674552223342813240346739365381199681216757999194585080872711233707732437644697362568310429196243698156907117372462766713609938424223887765307365019568514109770465163134426002174083931900607280351245745169587262953287669869668643096909947186768008116074020875033808515023620001480883520161350053780417549307560969869738730063488616828426443161838331005644271004946343285604611201551914274847118267744104463009745433906020758029542889307870531399807221670857972793328990120265798611785584790812382635651986754160115204237183334474330578007016388322481702734216194217235096063386522837096394043239531882656696059108144357077137059510332317682696747535008310167794691035421766037263563211648249457772143283790470840282111333400157852572239315722110204532706799395432262505313098177099099151208174065565235699618878141743339293816623461857148666763637622126356810919995734473031917388021106982908144223432223705759010421171171805308169834327118560496602551985087338689738041601774857501741929647348163991508318468157164360961244471705258081589519181171875990519604944223721599742232239796490551953494053766130697044601455315473448025446988678129134283599543235659631086540841185957588169738259151266973007946310181185150669904607971955449090902978754922569857089697693884522196015055280013642622645073820088280049884657848194075157621718476941115732758996978722847499157564541137110395515758055769183309574312763619545518837068978389221904316887934855464875349123321117721706983367451871314176471798676977753388233238112950173701164745013735259452870146136802375480208882382161986492433078948432046743478938381941313176796921735877584661328730292998174158020514231436243293070054054555678480655212958849028324742966764128499561322439377033628032494339775163471470325384537774208446515650031524900341126636763638728954768579962074159159678931748371662299798873885266396906124575486363267315729460787229305540595824708955673079959296218010583844908264872096495936771121984636367273298002744630243638797608860425020726467291398504594169427685437953059472514325028129638916841894746083209758327615058942042235557966746738854759870917331858142139959234733159040010734126001750008377207957872718142762554181680915270945321515628186639956902901277564878089265000806583233692469458396986155894228984309529844628847054192853680457898841194999594616077785764693167065278667180037163882661509060579337887818679112634579715652382071958763894907607828574097957053615014491314519830746189111414814848628355428615759717744893724630644920399387281879646484284353392742874364077281412303377557922541174165519439733645694133895787600447091015505002020522747102462048148572735570635306065327189297589545732874693060196953690160713614747190485443196898002879858861136029529874678899101873859456079240661268297701855269060299256039111191636547416385200925917968373835507080917666175136455935351335035170641824972924521594536683006427136040586868026387988628324100539253374942982172026207305715756313764332554612389239734047538053940043448199353249126801246119520054027285535013068342543380736563681600117747497975246760208376204700212418246259122471284958834834829773521530743456384578292811278001300733960080948471620240419662119505877226673608521432915959923113835029674373062084752621618887218682504420759977407782991361312542205985661025099450675853421873094307952086451383965547624540169964249954896407221784225083479149620199631978503239339230342158310865588958257982590891970159576982451844674660632485456257611225147101206115770672771568346159209074952330131633032921155904280001063501928400038358908647709235036030156493290019364207305099396231680545417648515219591943482582821966847697368489302459251840740289512748937049590483781134058426673956979545421728028970744790967188891223851437144467242671811312329425789949453832171090247426320234430930856524750058664507981642769552248471096893602082735344141657902062500280268719228802100741298007215490553547234967325824080841778872339625277261496079312099795440987413208977160169228021602568799304190572517579859248705003697467838353098022263385417501831818463056012278755757328064367194916088706018861070945420716691853079112945517827750791906543391124261444579217880292379875928108754166328218105357533149025078447648844757546909147323627897981581334982387065924379942296923870636860057816944188663579742760791838609234414881150282170202031280501182397551537147786736089493207666188406636922981888795199721131956091577714712946040928383124049509061837499627838002610648196064676354887201392093482397340912955145241813780555145299009388786458016358942898644041590209130836153129312272900565662871083018291895331130539163980712572382247823957892207479760130338477930280153685272955794924095063628196556921186224370262092604324272738557517744940730854376095551840711552136964064793304093604953315493999693919445734762963019147394659743525158346172464183642296027695484227683916296060766844840352879993222546490657160285277481732121288065531852995192015909392863591467059951978080954163598741801479190374182808531886327592765307272787339684934411416090014182368438637219021423867671073261684885978456116787114721223521683876365076317787957410198182641710676084210353492099405785545337859572491708779077091562613577065038820459061791964703792739754588494850457131148263412688547642692997874114723061641689868922799477827244949906492277883563606322353655447041151973148759524761171444277363112546273127010204598321914400531747079300739788246888523427679506578142809343230600269647396102128912228114159510746337904576274583249004259449311206187247161249995362168157306550828999897462798031084831661036412232975166726235510232644160250479680292590560115285335208192299006281607641877197705952194058646060001275493595193500339881708234192337503198340654717378231815109186709570928470175834138122725981934815737495160992869998410666285096333189968974041166612178175425229818064811533054052292620610908872339997547572787831762235685252832143396017506287819360151646978552446072594054234762576241512791118422854366315138908054042796011227322405476525724845485209547933271050619666845097348329334269073381767659571946689944706104479969121170140258372269764218869499495936754144773960725178630373365432661291619174851585155979978695202019679223369378453240845853496528178119168546363162909910755554913614156152405217513495606130683579542367227684845942372302008487817252136059497546506416730771245313949624980910097438482707493664848112490035127938128795096536300078812327271586534726298370696790239360274633354195517670023565429451646236010349530087784613131552953607768120411374465573064798782625802584796006631771949792537879991515417761244232696584746893683128501383288108118047312838792379525042712154109207253907480209244698045624867817967130520040751297400664793417807672615219417231662821104806022799215922708098406758369744752549603681140806282149907870413021115049396969324486980464986012297441491578235895594747558596752479546822287117995344397725806582328890334384137962360644272508677551661423709049034968934647314181928467976689779761989720408572590016368213849918206842078347313692553951037126020501967145008008726470101625807160919470688135810099400982243976911087202356413574096085982058361592644350114370354080125492834745503762694972101710720120601899524185263378807148737705337718192708908414524926357296076212674802114509303657286529685332990603646711574880427025340615591615448916239348653868986505301918655953086338033135549554038127471949673441946229023432510886836598274895470782256531180268882362228995773958938729224557285414662911921739464922317159433705495895003908758056638802861677320921301965620532947259702954012300240065836933090518318127316023547008474231973114978476229050216037295976514430806519812327853395343538837783313745182430849070309029074990233222174122342739838037735208517507076378956381691174447909380018746924911026283923578201705988626607268050837839500121859165506583813457449326680760510426677780038304607915577389504364797863441150876231687724541938439305924387249980099758243364707327249845392050147615684881903078609155315098511400479960531332723307173637352263073042060424168330972722744593328706433941736752225295435233126158705215735368569911408238777350816972319123917869669451295897944951151824759979029909120772166234034942791657189010353685802858773510251710913564116606396006657329278017781681452189278215131250058975403094700425545110791265222723273731349800637163217683185761814749293069574027826070436752890610899680755029245718895599995196191854436707869513776858689997786220307932801934472705461953408954301009591562896202961010182648745831032748548708936626198233363477938944025514085594352624275014777955528884540005763067550954170166018870823132704828082836665613024499008504682018607225874433431067686580366036997873533205962719620263992115231552775492513785025998568907520669055682575494439698209560001057412485503137781683201264326462007572667049652368860309283488917858092784028420416610649596796244176614738488173995461065111511957284936113884221935661836911373536263316504260783807016323148680549450746848352135416910536726662144046005623000949100802863805994659858515538623268284660787765309660109519035431502823451876197417909569316310083032864262443776074657032869751116213083502565724286829141878278464958836318958162996340294069043192552425432439854588799422741078888575758937529417440080700477532988714243959087194652439640042054245772760463960755293595952347290009140716734656805215733614027901989272550429282985767597295969009202403706371118261218876641401242911651250732048086358466429833607764086738905867199507160928536247258086731880247921533568452437400179466159875159276251143295238640845605650156511206252366896984286027167330973519361497681613846381714508268978061968466072566474544983046797762554889660723591909485706907363965466219367721784526440223658052604608457247033634406129070246719986475720614462106695715986717634115615871838318480463770857876435231182153239789229701311058792194173406541870053264319071083212839994117562382496440941153273107361230838982531129974768725657878466389924133193966993998179515368236975502982719811168444247288649083902883376265278667670751303256708858166394428739827264802642427282053118957266316020078459171077410235715048923803600985700158201201074500934949112739102065403959829847555229723098542929206679598478112066700714981227387396525662023425736033425064574221653825810162734691801120719466469392637783836652748804191816890965150486796155136167745870518757042321421105348601047617883034030090774679910035324046754205206194121839884207666466457548330622910222936356679559197727914610085163800997872714780307566503013367809780032003354711217630713310820835349779259666251866728144719242413606851358263339744230127109495436325055597983126273843562947960085208245425320702471944096136667903319843848477106180195711780378324725675482947093249540221336207658871347753405093161126556526938178112370761647518878596416248393038222949925314788319730044704275003579737353950588902387143863115027383822045465937907403549541615652424476008772707714308813395446957678850622455510674119510157392826016930117413344105384660687395581746688083821606425006930650895094816722375927645258555928002530320273561995096742320235577240966501315597035002987105445698640288319211279198111221013081200943163683854227171110294387059107005840954810959705086792355550837519777845360354533370863228444071067786407328321260813829092223657652831569634748837659968664527968392866389190138878290520456881412817974532726420652522956829445295658008178003298091544065450593982581342483712041151122116399604245889247963530093075804855262763611842071703430450589531445525127833453568638829341213336910710080976985343149234740507965608521227230247362203224892987213945139740653694086204105914375185336020099587783322454912742363579676934712166641069005757340995363490994677420372767199332719867623108753494279512169488826027117677244557957925034575049354815935332940416034619970255146934399068644553127880124653119550238622924760239453136197511718670563527753247200035201522968464977219165677042811391990899149228730462175317146197834142867275162168107318384747633716663947902342571163045013627357426900422676067120965067594406810294976358494483531086819021194672281186979970735429575594063463853396965426794792850581284752466091327733027674657451351066609878136573201507318466448230693184260552645758143415136093136249434080834658761033359166193484954616514861065129525872513247925817899107063278221493903850722991522520327532595214197653902917382436809677355630420549462709392667990125528102091161353228454985899292714167515765172007187751143012672058809236903774375456298656459353434899021563868858387296618668835749568613790948303085867981176701983394236456501302620997102485621872388493157079429770110665327207848358456151344355555208107516452810704194562175144177720737784586516920691684747265740845529682601167454863308620755856024993070840756107532807473117385646745163196873447077290587300525125240649440849668130925408965525450455106509731091951254772725260496179182573215162628030180734858148619331911176016023703226935302749510871420247137192988197023956552478043624661963671096045398949432087981668859010694636812410898685069319732978659518126535112293172032891709287925508084694200725748306006258119113602159603293407855772390960940042625379359011926461222390734495823283883630698807905411730260723766518972511146263089008106940224132063320382070966801590506409044040499705091165169159386920920275604589065665796643649334929206089969697596346828654626751709469737146457317136257750058403184354110336439097217206421363194555065106231070822711738038311908755886596160597666735756560171929157132005178569531247643170768739212498452509155329030592091962707191137873711885958758696613766269936993583428532443221416140535761683549921309890193321451403053029436066937188666150386343528421856186211641184481684847994486346004424847850977056957446393777788312239537154685326944828644835288573772293077991317219652855785941447164985077161267031056280258628947602050171913673476925540071525823246879556051742498625372616027825043755835682538939046444909420425139035647986415170993125660851299126351829333902437598250165262922745050192949190874016761858658285178808506053058515727955319496832882889163948152810406681316935090506200793404044470682278402882461496395581011805275569921256389168016627672071488225470888248801981873793565478633706315947488220261828475850240882016465180347837261743789663747445985631745374901045214126643655181628965614600909600573786687624770112752268456302160359233213731913130873441004535108249849815300584527510257882909375220439726967032470581975856179705643071630463950293772262927545641254887066112085867514267717251155988468357336194160958706195493106726136437318583870090537032316247455452480170223912619085096547265331419759846255867963802064339597905676684454083698249431757935592342788828316334320850316368501825580915523784855479540071194176287633477243154491745767201513253581094644861907127463586803904410489998891302349397437143078129225890058936934993855799522447608660525819395480321741431714173117780832789207568392047529178778462079314199637643112188413659013958209766534597543783341801444151310383480129419409693266457116988281647630013585668588644973350882403865265014098819875837529730142564495363884975139858864677731793520773557052925130931987623237855106485969093724904454864448106825039964136880593772769830299231001476236948580513469426018199843968563981273471826895113448779699654611921254213749381132482444965805594074091572437342440426739536530436629564920958798156926538461555164448461788931057171668396737490833318667092634146474976276793933507437122177515814470505779538474238295980805624456635556871847265989433452679528927599751010431479342098848197199903787416149756412458789664335430794429229856597618447733872347363730552710936229266798358801909342868640017188765185047890812776459286201425429029848844954179100875916676925599444048187176266716542386923605287965836916014728031384116475466235934316307829410297724781044101171764496607967000069092634995905831351400046173941150822342874164384149521774889094688053855661544405365651659050002698952996238415960143080646141644197355257851429939387489512073843189555207433830946720433715028103295961363497313209624238197928034067328946385753697808047012305923557756008956993972042386587286909110264053761972603898296349221650392473224497047002856474581431372439765592700563448130995141608242340069961502083908464743591672586048924449732686313697140449361044774987941245090904140255574420193567133005769473862463325069999043918415419473888883240140747110853603451450417930753671977568002057577080918567154364471413477687268189345984443733417189043973813105425666542485173117049304367768033189128979999919705205582738356120572811563809203061430397437090491949052482736481136960278905865057627003298154669473148306749624542846083872402438241792714091125919123136868386274203957603647460655218832328339853568740864251172858577580364858683956913965515777860836834647876329231156072442005144081134277223000202637388932092618894205776203657449390919227438809197234216588257005160841230548723934578366873422871603500688668185520846270293378695615166404838181057222931445303336852885405516504458503834251917333041843965695432224821763319229235944364301139181399065648057090941071619521378576817080275655312356185391781243916857514989665953548582388970937252306028337660357719011537679878690675493865806775440309952285256463842188412220685208422388988047265636136032623814502437687252257158245911738641111947716412528387476676023550897750220634660784576584737982841254429337507173695669639719624768575301515008636677943014876929731959199562925921232773334842089261298014183622377494946964903351546992666506445825618494012311791100197940806746108625929357184461221193033138625384905741665927821612672527040962932130251274380848517090576298080230572133017256117576290247860703762037856288584148600464917897873253921464964034860571957008448264779821594730708544095878673270676590482255826145503155214169544627527346106003112766516790895021464965343045489285973751275033471490067100736065695501815611982449260686360089049638019077316709513748035921538454740430782688061591990226529842840032018090844293026847432790580596141419547416674229347416803258563478329230527961024477775935290962904034863853384179090051211633550205700485000169685074042768830479769336113422243538121315064758800300696889217963937241190977460786373971541325207871781269999558281711231392683859858411303728054586546353264485868336246151344004619173778929716069936644844154818806392167345700747055662913426149963124077464053925776506466199677336884040513634546175717538267246420706992959693951715411936980421007930163272585319999658031981140852650194722223849010379277979282755348447632905254918278581883264189218977565554820196854729435829582349529966495481950612394216690514109231106982564627535453448065766676401380407997546046324546960943127886366378142821538052974935901721694576227084779434376374868627143645047015712440015971869783982512908666500953185697558026159324210286728560808694031294829639729331991392636193820839203869947460879723647793223823212023311955548822085101010276029104247985280487176058268561814431002567448234716024516145829212908533500070649365894794086167937505814192263652845028576681252849568615452743990848545867150352419357279003248744538038372413570719980838891619971115637676305747691964971535094247289249663269499355748543381478592966228635281508193896171970643936220730039101323055370914689154803356656110743911182156112828936977714373575138012221178685785696375255296313336925697797977364536966603833915858734100888055474265461660509039555540445404714823266154929015054037984215185692014099370433919492198352101820269094637304760812825604277883911540916502139570740636189531788147328072667079233805157222821135301199876347898238953868620405558330548949995941170962014711999606613458487103535559744802029622869904072158725546259394680672785803255299507557940284032268401749125766004613167827753206994062930419840386970806641969488579838470792753183996477700729880484059023884317846645280577135957654290208701637415542145490544751039025650776935342199740583753069868884504392019132550696572535422817433401204046563914035524518252343325100470755850067578018814868208370282492601707416533479878717513918795579157790202781082846809718426815456390513071749250830036242208636297767837539733971304433409392846173582061958428422338556609407959497958548745845094513983077468598174342307786693047780580924173867464697562691796041368026678648812668497934349014854317809682249309991609002183567703381479850675640930116849007536918650353280020934265881831025881383464224709424720582179831351808988871041444324802104293654504606705247768998986789960049095744314054904660705347387179266649922511395287292433539487896249326554312687565666285531694379755477397085426546035188806499779518915136441418952385608320499496951375738621913261698563716905675871055471638959894240211075773497731879738343605271594765114131180939246445304364271507945252798692164255744650918444397198230347754794679910232999868921770413467293298506508971482192971465927503421776158859397416092489185507029631910523434361548053114529752438697140768682185365651059043038959991388322439229996206910355276048578875876414826235245125022171899915853090321817620798707296764631893531400327776452388670066945093412138613845100568373010254753676364708807626807526560289244401835784476139639822682023129087042346549169330687056294403490466998118990832678631832078106248024057609811284242725649086604739986820546708268227358927422659890287606161020946843723960070796106217534253354950304821357192631998545445451643432538286454194485235713470709450458647499838808247896515466621544207175064779334854780057049845193865079258257869144726706430115244630362720073135324256074802971818471149024288033225400511413665511053351771023722913432579866506885655545127860603378128847680710817958936457656885819815191736417570449342458073531326611437787329149174047233782319442629863165311820203453882907195612275115122734228023888026715492946493244208195720016677699182343509083235956427035894931313257392398878806435336242860971513771472598588311886653214775860159693038345634343769390508914944860068896672066961540493726300688482836649763107758938598322912221592973026145184450603688995755771465713203680865273887623770397184580544830917605712902191946995579209668610406923078952650931884543167108474911058199766597966036866193719608489636175274279041804863084598008647506774579226705952979204153628961439006551779689668252936050414581569049493147139274180150315112443168497035862853078374013988843040208848831242288567669499226871239769817177240436134213431930976188707238304851103727334325873348124169073517406033060787467574798792851405526584744813127737732585214966219908292220726523576732742744234649653439622865866133861714811906028572549737556599011277149064436871519344890973473450063465694270039978270817524995429769671356875748209757243034040610578327193997876053987477171104137038858877707621020002258825326067957020806817130560267495006505999516900047232602793089041304917437252767851516012038726074392227315427219819093506099445067709920607201392107407155605934048334970737941924183726476815675268283880143133029807071331843897990909436057091172803715939776773538034499538031522790069582810622265897921206241313875008181340675723366852980299644599313497913410296300639889937772794792664752268757291756205787233905650422556358536728063476543605004393410594259841375876379821836175150080588197584238914323652421502136201583001665195087054385837055251369561551926890902749730046733240012200359165303500129585613166840359813512582277516450050622908505356392001578265087684297049075478935208093104157049423009363043955731717484325546191633232662204297169413148552478943546372911665001727286701017246013795113646184271941322413177952781132666838967384060450772514232983658681335391024285608772462120732690442611872430482771050622903872364938547329097498772896380295789357614079903457344518418233779018985731561978557034332566859784405643510677414063478966306188825536955015698198715666125819447377096419948053948311030013335051157190241847728733563466684286488298207091387370797749555364324608596561036218761699056197638471594050850178141777110822535447976727522739155893815061770220916054952763020240278889213834771926526667000647708931051939063727169547245040371602118188856638398134601017734192573417474952059315145824740303400201644922321925536593342913622902461829457974251297986068397121698423187484060904059730010752108829410219020072099323758811962264091576335338590885336066602188111501269182620690410593471395005924175184013490367804299797837693044510071323790782103605631742928506218779851929885052387417619844816258207577710975646199636967530169459777214474638020250216637661969485286567550333315095164421886873199550217750242159991199101341366704730578928755412953136818071479486788511298344456976298985597086395084642496369030634701118251319456798313912538728392431318844699159709202959323176258830961670337368662673744356280196823914598806248633044968320463160451984149725694469549729470860178442889646924567958226462534294931923173275136857516354558507258957555622315543662998948646528444563458427543968693840974704038184144962907283743435476891186172273679053066685020147888973122400698522469262241845588883764005927353136218530457854882511835649500243644221877350178339364797753081431727892730982572918257904752070117539967067856668520288028412649603591789758288658518091142204730438989722648826983374718908161184760041314264399538470210039958859370038900219921059810170733378827215221926030940865139728046695654946514439907431867012491885551582898039210335023437183828904375031055793764412954694943656068669115369955385839445600884179797862219661565313359762032050279417450526076077564094555284936665604067924204677198387763336292700965668582566947137635405674045398283383899819525144954785795039501431055801308378435475720348533486704341439792639162032193313262240485820250718671142629645904399517998456489745718260482031496255835607993722737142859119680466172076250189689839848470534375464154019125545147205686751945294502139927670038610070878933905297221159309166088272014025516570891041017512301366395812073864675394802800310655349173676854952427573498789817125059349176095780191758734292864162529291135451266827181982672651656431597223200688722988877880708861793860205481378770262290042081483410812553359038808989470989320181097658283837988915992944507723146390690419267950967378990665746474391090161434711944602229984143177104953462742857268632972013558142589631643741282314617343749802296221109969811668969045440484880921109016667199082281706578551340976507215743793343590774776766621325980328195017967509855261377803654144367805739962363463901420197419647867440393533802384955781606829768238288428498280215595100524209225195715473567453487705152155329109644479369977674709065741070374082558118597799957347944372936125252254022414423438636347197637622782170539626767485632133725894040152292804893512776514003658182404034674967144149823506867302208941058126132271149380892531552495346094819387546250794862500516025150172884943903984405629858553037083246603880579003424454472807095815713662592053498820407293292109364982062358405507587469072220277243503599153349140047588404817319529864100933667818693581678191421080128302436559241588129429318726877419801817321528161243186067874834936502420976730375214677167535883916416622472320780757099280174948659471300960442184002520541796771059169323254257478061400567083690131857538519684349435823876817841112720322327364528673464039782813288665672102260028745036274569575841745404164891468774544107524125972457063577962986971081836523846834481778861406259149536709093362622235384860651591203993619011227802585724581698022333306424613133894207700742191838650720771888872092812983765133364427305545897147112097400491736113770428405027900592350976198670503306087741793749086697271206416861873818068097624618722250328329972299918676150558898574367281231366673368069663011256440269732960224341645314533207208489288027230363708791124187495772087356996324056578985140714702319765990433638944141742742130140801026034025351821746180996176782805161358535521459980696706882196127204095150809451095766907921389642365072701641818381400454528089690656192108628118389474162499837555295986512679549110303561627601156559906946259731478848115826828873764439877923566092704530444034502774983534202459051823485290609951065989447471760051482771098318897701906733255029185310386182428651666678173233837800744051897136541423066136440675952497131586023692275160420592004109387281972399739356916305336807526493368329881466076099592302950346674293210864445985268484577027668914591630546875439155525024083755860730404531572166968784957387595141666001883235182129177782466535465873363373691355221149146777177051924680584770968064775085912995415244879125365443698999405499783948399195793109485395325117209197305004188033291943105121943865621499456370942455830409613342702363994336021526316905916210522169037611804388089551790501093659300607165569504491862474674968666850079428909219016913983124864208046989992160286442289689325503024968178711526832047146266110038539073870119668703545989311366773698939376949889493088553646327778526100634866607422699228016172592420218588514937798861249880908115938206561305583209968415418625076919657697895687886044846775419275558535485417674216590530141187095989355226655191445228123622669752078072794251105443854682572860993792571462587222862743866310204914633779861532855013486504571713302263334184844499162049961279988213674885085881378332918034294849988116366433722911507940472187299380204885364456750407135576201059145286190200406076408606822996459576597124131963204029838156247125810104674120383811775832144567234429064179814478519737426150116474053962559893799815816991383293878012053103255481837579016915132332534727847977878377150534975146144525946648120364363521107039624553501724340731928506628642140023739732261190702367913992094907000137256039053116568312234024453430762516908793560159936638127478994543581823369867106659131451881227843720462147950301820684790872969310316503499778735098837492533198782071155977511833161040408778115083987336175277514656544274606693897002818282863208775152915008099866567264112721176125664275512204255749425554449333401395893723242055630880140075322552447927081084517358910331034665616358455029827285363760134269269763634465394628407037649412566932530016195420468334906447969216101213492936804853659526584192728907395746414641627725517386549562267047981279671539041985913409735227605604654862534364588751693004071530167401472387127171974736149272497364828869686746430351948967934122991989618266297267881650869806010122638032377868589886146907870531277154265328383338012765856211041575678407870560608962377600742215113330138511756976249240367889336297995145705500964771158358685900045653629875782238884872707649596825606465413117272234069363431196946280377369068662490758869405399686824793823223652771727983387384245498168622595355849371381683525552029884836717241633452278651765487845517028910390572660256286482636033946575423723801652414543996802745896121951800764469514774957289320068346433356210474182890555683002472930828703203076799812877578653750535467073631610361923231147527671476214153490809619680640555533256081636057101096617250378007923225655681279588258619855571009504036533774461259808007656169425934431283132385840244353017144593936067372684515093720008780244324994581348747337313248942527224229021392536119500595360172330948845833016391422162374545913131876762849539349406694239580993843133270583650382557466358341693045047255016547939114075039215110556666196477778151451915344436263434208634571606838755601810218236169772084269567625499378111698974691105854701967680210479212520114478166600750642699083394399139443419251475624415073518356003512778185781641129152855944157916627324352813324493729068894718685108278200369359268090750213787721515077324100682480583164195272431606733541159565570246455095516582686299306937661076506976713698766179391077601413997860387945663697621561024237285260219884311600845964548912586517828755444895816083063812068560031346236510428130177092541219452042544003676120897083391771991977567136338413925938213131117226317717608436006375265825246936487048945222585562939172415964539572962923238189570381419611832775425835009112633024830617755811265927958383708277297172582038115305674809724915403551124605578876612458636343095258626910872659546353560133708524792215491354904705456706116230521198917373472590364764674453690978713720036802087667019143023624129874222653226589804093003840786637838462208014610457279669053992944539897568866302299975176099235137870473184920549523159295239980730028390414090653120630790807025484772936741472156115920240408849600885230919885508197732029090306265844158354923132881440311110357554794627041787262660214660744540767763146453356206767253165442429731842608575938756678601308834379628034164969435042170880879494746456872354109955275313056082056035824271367657301515468945699425485223337549524492052727714235706060780148657357221439812677928646049566131706744392886005743416249842691935213826177615060116455210671897450202786886286150257927550871398647153318507389294652827124446756118727673904186253241265608187322927173916938707458065453090726097153168795404625001178056729621648966407193973173009527238783284945105212421985661707992900114989551578411652443804836024426724592825044098388657479722474003527391588223894000969486403204016961098802183278195838677366919198595523587049399984035388195348227983950881126831716000477914559097538290923214396160653699437002113662487189745911537479834645662605331128719163227642830518034115043776530279424284056325787861281745838984299020278471558016971202398942741348832591736602241658691093338255542062414968890142832260907057409819076162208046276700476901949633675199685164622360548395695395261880744658743600904262966440966023843872873712229871980748758917672706042077529364776338255572848235350574834567684085537024625014239759727326758466988090995908939249529968256025577660141595888850943727148998644079144488696916392171082323981996871560160690901832469734745545003167601813968108852757719169368992879597552816368061470282602916073446071109175507261778284642887860344877043144606000541697347590897722978965358866157075725673415731755671948288497018767488237888970368730798476014650933426472599833093352554839899483290754645150231870202009630382259614788205339590061457739631573296792428094182808991450747459233532453593782119948394989779519661406637332115940997165448557474577782397768579112255039662325064400749745783219783979979135359528671666491178466483528932084943562690616335903651953951288012241036614645776164059296043285017825381776330110197675612841632402571779990570404569013733780202163543946027847313887152685856354587356404574994207494125792140091695168743371384008472527605756416754296667407499729078868131771384555122438786309326416723955808363676807888349419337261665268691367238829325588854537520338262087501592033776798276719822942112292376494719939362272264381176293077732704254675053306225257370511873070295973418939878202422003072248580875168495918990994387684591225344456582990779719582779389282835309029590316374141824708781081595947731141720879428713028981914536150048960951905738696702180681354487535322415176010680370667065916676869695326408648450077211732895471045606231114835532530318985344012381248637136760777933030635352543514572068882114464185958249597220693134363108707775619521598517961679168530285812710058082052121055528679452582267258334186294537101084769725099468765446772439737828337345481627815355113556995100996633600283011921501221979374574323399988556265345934618200323382734121399057106151366854930776157992834949664199104162644014488087028345313410703325322983396242716204312616260630399966070180756508058939852594007738409919412810316455138554802863306426594414960560610090545499269460499642406458396562358599294689535888600184865314191881802371138181356551381936337171007652744885747309747229939571645574270244295418906425733449252048387216452895255704995239692274837446283662409010753751326977798331644076067956801051093220523588573373130900962744796019444005348595615825813116307414013698329837190529362174921925194224175758649898713850281674009200687259206058447691475431104090318344778175210700486754493523272500391791231202395794878656349626592564015872227850284480078491837196643854170648775388833651966840351551212465176621972340627602267814193164779679289018377574904281283333139431406148505036070967879612534243986127847722472912840622052871335724688271077096142954058253043815548907016117067105405304070105810388593440247566129654128328074334731356454226916600135658014819832400888302225454397646402957210988038369916088302568502524475224294802032156487410684790681389846314974365241237261872695474228584922147639976677212063583918225421537211046757122683276828889724067382420747767470945581027832928783787335486901891551739713514319210808004126436424104085717356211059963508229449168441621809830830414547482317136110080720428943033452273542728167659249456292398322556801737444335029310747243880350813570290031968155993616828918295557345551343523714533124837642671410708665710851222049448671499182540963269988675622043500294708550185788589768832605450492741815226131404414843764357577690943791724407638480867520576967832075190989526792715617214926993324179971285224366144781540497469028556219017003129985880213677485992747099986375224644056905198319770045608582868955572269093086534352269183210494711063756674296465693967942267813781364324273094732966565364521302423096288893459299033982267114223233285854116903095182521254992568807739782376357352336648931916084571005677142294893429749471080204541395698288192310337344403431996085435647761276449615664227638682804227308099776734025768755431805577448923802952160977040915286431917391254227213210936025903632403296043759042733939545885243565818987957511018160552415187241139998468439517172297335625920541467105469365320459643172892803308924455281775830318310436318375793359727344066314429864253140454693188276428327740814193163741331743076089901260229320459640892219188869584498143285246201387875511279015368162235466382453805149844758554073640339670410576921174518306136558471894209311202517477153503506021560587359296875869451558797389652446071213545359874627774419550240375214457527838021250303550121025033450246189586038698171308966220468648013425397377625283843989433698712696491947944365155641089805975430456226314763440146905930915590747810890965546350670163171846384400917758151717678484931293370651642101127216901118988579348148987913473262390611658119651854584840098430133613052121177381835040640190046800770375109233265066016695407446634101853598481881298534791099434198037197668301742964131533677884109486269164916744991474206484861371360481775660636519998468708929251316467722878134816864495560253057628870710547872204124798536991995944834475719230386736129434535964571846163813876549391217364894124784162282331829582835383945817423516404847995958267235024005940511201787671791197950579366897044167281421827224285278262243079934383986075529389234243529703164178991848182551066351523430416673513766860714039994334413591293080890161364074282804153800798120205330545894921616485051806271456648218389661419875027336438382404575056417061818396971369361636486855703633286745277125601974298841358444626093774126594296863969863287631047950508036656098623066909321365786257924519018709736755987693452232329364178917328300900440781790097593606152723850656643854232246648126164761316049388480352934854646010276958656231656276134188292703871631157488294325333106540970456058066951085572019024827281924196399824277105954004689078328752099721378125645852350504793375381304496882376392260951082679180778214856104037844719268704260397102777366525926299976443596314427845291032737062498575434020341327796116396299253338945463515613015156616542291095673178430381455909857776008358649017883844397147666270581384735745371780909725200310923673909003797202139683709027601037153537433656593550592948363971834905144928551940202128382034507254814420244176445131383842754564165258306770113552729441996368610856197877316176077835764098208240037702697206341722598931442260031525124735097084169601168060099510633719333892713925439792194643454785662591342732565511846410439987671010898432782083577193484981024599553339890971649679867070633491626614297195591239672065384127373787472709775176543991254407190429912730471231851968725357961807510617337470918897338776330098959008990622311560222389783099765171237479266928599307821775413862047853683935675414616033296127679689087596692902723467820532154225635557379515443482467106881388062533065839713177130593407804058421448035288484073574505265948771072439379545009562303483401993780952696092281005769986972032537314882860921140792282337916151486689607997919148075545824816423092794611136353697179341465261578335474815109830201002726293918089524121032759280573331423082537761662407412575693827832951175127987177589105757454431079425196595189083853344087603170619070172996104891970582041764976492150793210487030824010496189080030933146712127901017962688934032754971761339965932524443412179144438402662018659603472500767302768278016447216867489484266220669459375955665021037106867354300019353315734955992417588567822735830167833732930612194481958642067656986730308213582075452632979746971525912794126141792485496165325146723584531507161930540185560362910179928021826605381158401476834910712847033421932257762718526151502816606271238528314984891493981995387684439181025414404957733667494312797672061743429037093184144515921088108677242706010410709295910086003977001782268067177797697406044986857774758314272414542915440603089983622641357390393895685708987479821246441785173068816854570475722779943185988577732889996687711830946673220407684777972579348723330393126469207292572890361566188040341541535174420031001168060963993894138672696312740415700650095085278186619576221924773325067231304733530899263412114087349583130028953091941240519192253600289242961822370668879780734793592094505312216095170329684198978569513853206018281389850939632421203059583245433527177684055930881885040040441325982352150418195556649093342276510929920343151237232902490783669779905925430305258503127378964842306345163003178455662713640694064668747183174921781350776031727210442226049878411560728442464216841963676846468170881018910206412412933628136836958906160942278817163101270326641571507436439383589908651538635236938948335869877908552807191176668302949947611513047028693601190227413867263560738947530640540183342999502195260937774110525236344772972972849868642815900975826104986233776894671557215905503396412671543511361145626799501993493115121677947493484550707561411125186845704565954537746016163331370631167873342846957871526582840658690528130365022061189556534592776228606317290266624449511849730788330445343087813614836954843018522325955509189696869963644165567687950697226831624861253552843274822484109780530359273805024368939907723283087918913102390192568997255177152362255782314569577437922227881828202293990826818447485578148971736766088328644787260748159986106580117146421419437409571322050904715361391347818470978097333833309464998503561295187165536933453876893131177087707963084077834834174780934833116114543256373503636729812822173686730119182531802465953356982795447048837307271639667574842273934720901601111626793678356736701609685730067337028478630923173021901901198388213985441883663283586000075078588790814291693771774811585577521731463845635209231448641188533963947540971578032863160434378272530944264743978536782193083776208559173344461217696982242889443036256524432354445776476344796947030729695360836179536382348118690270523410055990399742507570500133849906375958855435292376135218523586967608605430660098487021301128345340093232592315534265827293700093550339256905966599572034892810668368265704365710125498039077507861259052267819329923129893162835936630420617341823966684465514685947921292936809547833687946060389350429382193191518489083255350004598540708055253025120305187043325043835791661817217458995833319098254082525200240672082503671862128740012556546409758614139759108536642598464304982185176178385356980593427725401202579832050972090331760504271039044332614437807789378754556625138561949624742547960231517940700764511391993926571193546608957556216184021869414420797678523416268334508545922899869057887956068227935540312309191037067117195903983651676446875078523650162785790081954517594748182973941793721807286540198142696208275873692760336995931345920754202893836517056181990817968132165307778489420850264975428784054376623954639597962141183022497135534967122864589568748894770661533062233401945144445181390276480937282199283898821301134113210305198363372758943178321281451971429531684144986924379394187285866147658186267948793637375105405414329904792267367673122882559598939739121669243980039456316915694277076546141551394356263680071981186047039143895826722834794322172762531052226118474684431462958137882509017865412258737910311998860425528989155779802972945028715152214524265798228225003210040987490839193873011881916160054322546707771239848947843261276332569400165624912033718613236893346974157027331802564017084451178930122461949774243732188015996883239332366708505729164247597042793143601701753575828714927503953898065569973258989332966452539839373215778985814854960947756728748504263540144991093977208471815885933906624396982226229598290638044874709388893305982901626475979786268039791732097539564436031496715597275700407726734053509171289055069155255468938243255759551429525707447709041188165531647371753531451138177179191873110491478491623927095437737457668239976531218233533821799228967479239512930996691389176384422936461351943100596251095421547779261893564977841809297984911342072920024845577563372179944932765614914759150296367752714094735896999236537701424288173358719021707761386479027972539337166990236112427573247529728307081827389186749835784953158502945755493484316407466077060062206717793696735888129072475179365450029461138768219199708900970032161532515537531221560941506720550048195441064353252760782948672522222729501756688500063259370850937401559244890110168146242175496351309450487092889784445827235924816604000410591776706112674990205616135911197633895060412576103224858531030407516422250281580296426644770350600591273974150222571883879188345038232169786917959029039224967717739283954739287775329763254886102110513163452248005024320346146925535236938205098867098329045681077392166745130617366401521125739503001894923872769642214256569868732664819222534644737320850018507313859512809082770870422994546385617039203739493691625860057173283313361429644518946261021198133006313429931213673469900783301501111409006589335364571878518197908228166818370926680555725308889321407467968355711272237166856981584806657940198171570892736459168956131914187781345389836143155494073805944627888774314507764313385031804330996247514494765854649952855264787132577803224321216504819217822090368277865658622493195839454158835758476197312759619873822792274244024036849473939331700298599355295358903390382266761931984573397082606608595426221308572271781220437516993733251870836497221775282536352065465060318746811529231749722998361277898721028097070722487719906006220729701938441043707100139533841968636032184203913423638669553757454641139864495514570409061678076579742589931523139353964028191129688534511649617581589577984381146250063096691326222092221932690927675589925485559383449288936017176022520870921744729140075690795599457014796230228000899287330185795882320945446279253790531214465522440602852454501035580494830688703600526036782097036297990521127528927442314532197198449160858030376356544747469001904191052375783416637846065837045742527274554604637300791624931981790884701280233847414882588271363469161397729940106949496467581928547734329178525170010516424446230762047278354754480090618472856439753151161195343146028203190137532609421584915243405755243484946300983501125042021321137843340039027578742359557472338978689352732282413198799149661892223669963862898286294768566982202212124008895590022202658258395850593872361252403328039077616959262955690978916869343776115593133120758050170841980219120775883012680775182639021016439960054250949568378876640521032341641524145193513803626404188073752917752942544211320108372650906395589665802762330634448389539929628672787335808978800057987163048142462275389149016350015762203381067129981032505029447599653923584059613217421375983748839262648327366428838409307088248407086352365108053337476644880185060261602339216001325177876182695600460003956346606808725609405970236304145560782198552046083631781116210113653239954256716326275999616432895812157355650934889167042513960690907189999432610782697402360889912644392590051282967853592294069449370496460725853816138069994361565695714575363813157715181228206903099567878337299811843791656373802855528714242309161096943878721371103628607368561103907120973046488809264831459670773701275845705304768223836596042721386412981389371992778191375341135132097919308125068746438350485631974752044561655517576789407522050532634342147450566461084806869179758483269790023115068769591145929600358594376269840993583954284768026916694912921412121863908362764677099854183206164829582715488443217051967707705382986249423961381828008058067387993142798323408644630024928441944646456493044087039311528965817864071392620704427213475733051085317961245113328877435361960596840024388485732920655184763443181902959570206373577735838847993261166526322902776788136395150401204365228415696113140026032412562238463379887160601834583887245369948051789603276424667832615390515916312998880110003987646678531073623831731113604485900360148366357577706734300241592886322444835903366341271142189166994252946700254440062616007591747329452183035839902541548823392514923428142505795633429103834711701415475283785569366941231852333455711525789248728558570612880728747518515783066999895074733935044522739489368915842138480391605754047414139477034045893339855634080849140509517489098984735004016317645645854434273362310494470173894108051340047421174179193698994516182397697723372322502106817941506552734500764847171375725299058206087184209151530195995517692106009828958596790342007053616880655201037515926430708280477441590793017215381526760453060156482702643138236549884824315071560438432098293011689293897310201434714364775779296694779369303265520159558089515791189729454196093981437946248270780084035974032870485042738641754063636666107995669812090097875911588149839404124306494698701862363256490290471044545068256642218894232506910434503651744715792929059304874462416580030468993900888122001990522648657117729504250062430260310009148113454807207819955074719098265158652285083447733572181871497392655421849456018609517684945331018374998895111091668899290223109612307443112610235747818747405921135781457854883478823755417142321761767128604115000754983503931554527939875044124464622010550895209212842172862109709410259928363268101548054905963269212768139157680795290586343935924180946883501326640575359524663553505824745796606017076343258441130363881269447595784341815500354477264415131436985536655084892029392462809164615178837010709094783076540285945401352415806190037768843567364607676723746077731712434943480968961293089692348017777199995671745756652548487195209425692323128752435634044026679165203825978530688453984512314482719219901021397924978927608917329220294041179596435754847256683475739657228208170713694835115149822903728811939235094132786324460557303662533398898498199199355746870779790235266385424422547143881224314600646905071465859714429681209336822019677504050907228513545053169415829526408867653685976711396990280555848986023073655788694070907970877802453105931420962422631513442917223843652786411751323026594510929340820758584686529628183347800163504424242264995378597822463631855323855814984836503560641650852539712584473023473867799060044193549651803672824560214178059112871199734830001484374077645164266447090948621083652452571133317700473653578468718666067332124126784497941277132090482555487662637530451004408419366258931464068985472979419574686759233204045074487420944002958403975815045614943523811055057678067524091604642845191514453535904949205017491387513799226452625812198125960106783691039655211072058878928088589115964844009265237608842748819067770135577764518611213719564338352789378861960955648458552844436543521459132483021672005046343213933452739215224564848362802669245483388272897724854151063943982869511409327389913275145770420880320136850723327778650147431775104746415098122846853351512941152140970946916229161364609172112902941091134902276144952490722791951280740004388641346795901801556342066210487787496757010792110997576330330223200561062720245816277518285769230662843910868854799995845053906485178214517463138878521675487076353376473496185824005411425914273263236787530008174810050184595896613962820181412127228197112059026757514029179442312596238796305938794381467702333987310976296819002665688822663251502419315014596138462628992534548476050510623591828928530197944853042963616162745126593577810458413256129661993652551483046750137035705583989439638898342187095514262852826271848088269038281004092752778093222249103799922655535923170750196004488924632236663297160284749261876548098420862673491980520613502400069404671110897749335002900518665477420126702375729919449872935353443337910867726092021073895737857128855243713288818924648044029145968535148159655940629582017711524247860198873299454246419257029000196022497598984185574560642419045999415288164188804383564439915570781898936207164631480395213589530023822749753925240726944055194414522238343845676203756326345453713574714958490559155727310523012171871563363409541471238078724431257249520930675687262204539666299687864065492173231952420263835721163319229678815720590078371043897955563434640753077066852419025275680081160950243337340352962812866307684426200577605333420601116625172725123094235336869625531230683392823360855778652312179331521352282097076686504166714707825972220977115056613245716343466703153913866281133248435263576588952679500408908444902293948017438117135561868965323867684446738206296717836390543363174684751711634584503958473699404065235268590971042252182915018969707940040066191724298948894113860784981914604963704889331594230127933756999975320441845123747474340934270874002889186999331418613026426224351141551288938722756319324533740397991166287250684471087240149155205231767321306306252308826358944055312219018812140434092520947222384839049162656270358341396955086877179919296561838557904642818434751695438834094675390853116638662223641971513201547584632407227465790184943182135464464495402568660414284478520236554466970139550587616908240264173383055373968141915099794727662497867606115465616853353875995075850495040635473194488747470050065748784513236303869926897944332859154699926070882622210498567839453827883710224724294581638482191446182343096682362936752617379136124479024807047057137625097625315026611883242969402764289535685928405375888793478179886940021250143879787338298560642224756625821659638886758083392005802881009825015480425117541142415903649457929461540951692891699960082513698454076069638669530697295519051982544910093181624365679147917084722164852954973392203263462919756133216050220598929775243664672530176325326272368061729357370762199250881808451347583490020018454035189246883022989687601765689636724190329841280723551107895985970902758862290252656075376534387323548817280879884074020163971090110723736260298106431587532800715439089505461209496639235413068650229785686244156936703064022771829951970702305853974471683632512111871634920326993827557111706570388403497001380502986324880792905249016255541796262606836345956891839710313431475357432084854477499841509010920655487681847612522171045686595688959866221120140065740492789532201285311865835065632220600051585289817355831068393842698296139345939425041740416015078867062019355707198944689570557123531902252137468861048202911388584133674168838066631931031147150569857835002571681248452178054731051823643543678095695453680889471437632504810773223400869807149600311717618803420255792922010935928701703190754300953437592276692742338633620778567498006389536479933611705972841334013517052925382531737519522148041761141205919309178398730621148109959337945964652321603470306478793297437000008965813436408704303458795334759546068232626704350425435237939958074981813516157444391898381728927281922268461992226875464609065747742380896230529544103251252452990474762208366725217799577360427697417973085028888787492453574357056919765276670260268973543572951139108387235093169088051293822791810685540803656624985391631022184240736736191003476691823453261917714487277707894369416726154786590617605053029407209748976624196097541389465173947715811911616984044229438622547701295979389998290354199959063200865888804877861156738133284396887282440731493473138628736628175815171595189461540867779034262533640274669816010746171484615373681301355341696495361963592290436619263659249260663136560876526324859459334813777734738181710588936961264835506989220035109478453144555601271869290088236925344512051655699995585382085658242394141165449448546948243091837548214920403462258956870813906788671749877462702913167361715557200542205784494173158643684370926736064695426548350047115350079307611586338184791688833488104631011342342025359627151400820215442110500213163143683275713381288032429151303182338787052693024158123510290230254060849140942773615510641613557321904526369327636367026371781142999460497367816757534184280624305054289819328913433357612078273985662591758565569503165769294817521950552658189771798025964820680181211049592509358489107856283531356215067366248582025423128392250668396423425838238740638490725738479174781909014354574438590256140627754787826875471845142405519216176297724170759133580791278479575943830884705997913341776044409436413962569769650622726651090117905694133233972089090882601537515801591678624047683226339495412238498934073762523442715620529302684018658634333018890989249277075234147866492863637389541225863377248350115166922517103038398966455815544644922852729065676828678946120933491950465723221778478584182091966210081238846756008335386151542781229409149267840575263803689056198381648268668986369263483961743432517288916410758311699450543165337853990554562661720717654235247006887799696781311640996527326574211555977374765818540981397518551297423069800698159451334459118697332738330646258777270488710004930751692734795392857941374959549506484849324539932813262570790798968745977547360955233791861445763444274180763565381427983815592703307687887651844137965258254301499145546612798398087697339128160870550483312607241345155514545242522824800163745501711012229152178481239483589134115746269579555761341205141516356463951893071421004406767684589165144879479520416414052485604018092645910640850598391291189470091130059412979564123432052364058530857127779561482781327835687991659306826061510320493948135019426904087414915303476828220972071316425754431711260558088150087532122307741033670370638923471169847033025560775639728789432439191653600594207633582161185120822967259645568951354533046228580473560542023836616115904081092935909886440123478503798225843577767593543317840801545268274070553538741195948451848480822650360544641169086453811569820132406130041376278776394232241530507701541830877756120083046205848109238924261385673676303316897763436377427534197328246197982898863866471209807830169118726696447756001894603996335476241190481561942925379481664729444852779134739771990732900038558206923557148147745497765737631015594750679840234861645137552281522039920342048867795863970405697216611665961322836549542329606982025546258667512863091483823167537431277513174730195045471996633702696862762403075043977599421634010245234136018927046418664197649336916645874863441850832743328576328817253131159040862474317076739298211550478723715485334325756118446337947137419227500320490158324759506578172375847295333229629887302640428358221450941233403244359142862685687711238794063085890804337058836944653894373160903565250519678715776936660807227228687348775631797356925686051287327389578795568306198261601305618796658216525780526649131126463881006350069660277650970657874349698430055240757660771563487409984647454274760177373270762274550943935443484962893735527589232757149421784888328186271019203248330580211228271949243912667752233165545168080458099809194371867357285696184327323023254178601626578752042485435054873385740340502023247267334589967916319642352494991021215182960425953745529744488295010636293408685269684696712387328295433372975713000727471439095163387152819252398168036350960571036397846788403274293506097507244878267760107946946761936862722728640897295247627048682800771705667773689800407646999455535995122089710021997037020771953179114154386231625945503544143339125309778669507312734679346476335491831804950346278430407621316398247814798850329060877070565275937862516960311866967699849568001524656333347020385114946887633445770953427477562892701283592149662891666220050707958562786294727166235083895017097375341581320117956758030570866232023131614748721858691871239131624236396942665280019878556579160576330226694765560469091971293689104883259645019078068171236242514488903607258018421795567942202227370281997345012870376298606886138754559215152401551051644722130710260904985886164053103694452091245440142611435288726404423156999105190905159699498069905190937712163919510662535717147816135116887612529710164967942022522446557072792119231793589512723464381649959708260106722279523064162267499558758586253683484785622877155977467593858087435727136474551506174251184164996798568050837087160693909228406315872609452971742477463550657643682196254966945792500996392750095136647096780458626663690079561211469028545489533195830356459273110130654479939845471174353866937252363072965821511529458235208194051678385691559898527754431378490149751081255965218233479561671236672522858344368961663599790828747401259328484515449143155104476656827118393437691316915224521329793133142564180066260388336319996488818483616893338298456189003685585531362809436791867594906846875379566935575606217906730263012141625793946396820082491189784037792595338462448443818081006165934981136129365287438552358967959799476362396025658325446006750164001978031076526820192571666269380935306870311965781399942147005961402402202492853709497568807246667699476250705175290478013248220148561033727668066081164345395742000469454819438794157369055051007670169673565314664536340178396407476082883196093393383567033187554764832235035060929818884884029909087780495288381025909785055037034070817669561080455400020111553362382774502182023217364894401279863231586696113475113017556359006365170424146660040760551901315884011807331017748700628104143394101973357371606368195576453784344829027513358489679371503994107841133390258659881242469875279886095985207325824676725883493685927153974645847033831657772680097032225438544986194976606593515034822787239569928674325563924522967184377036883799469801917682302985220263007835641173665722550900161330425420050168285625230222126333188653946817966829807931722348558388589734469889045887273615544336595268894842317037818390147458390310220776049935427012017356197152396840138564861428943080308657618550564026480068298948082814343019286040043853138410606486629932507280388354856628810842658029730218440366342933829355100761764331492675940450671489313015572710823068620485455877093399793536527735280676227194851704352331059892959745657040968530465238800153616726747552925106946905118624773946202565948573198372990451009125794595722886206649462733562290852052620519236074615213215622751974649760182433365387304019304577796393706740446301913241349369743475270992279459830008339618176843997806781679480972431755360980340691168819398422754022364671495874068486683254917670364676371076647341620502961644410080919368000179179853229494713829467294627687155074806615599242701486937849214384971769503022088041453192528375188972450625925949083423325113654171238638140495648567153689525680489107147748076619393439177164354030447563353193436212468770674507752741462368886336474972132247233644934522612607074296429242510591590875278770101549074329738419024071654005938623251570953843144368808706875079266401289319605525126776912231359452746683100648743773483923545445984547456894406465024479441044601825360975193259947487286441155939241341668359461436377908795081599955216692337006421426425336107415882931208738786516400422911412731940991643122279742017110051196300400488879521850162042482042437883998520174132669432780013176728902086579210203269157411520976852698170247200997687994518062876267728302330154890194278127979899359773771484873412162241516013263165712176100705709663232000474254428528659364711290526422432347350815944066876911876287858123384225411801028913135091589779708213093922869432063013440912068421078755557436815616609743216610710251482101203163369456189020856755065215656521038328148575659227028805956093601032425685621899854323096396709932488715491019641665157079101530200028517448291906902928865501828146654542627764622127326189697418248767314489089847838044351997425256117310514361407164878243011219039032757085957227159569506678522945224154469086689686873318177949934153342690835707064390987248724546687923671851794347658512171274986798428332106663765409136984191963985799491044907652865666139618445778109163010485916474608764215206824177890567148209138815581895216329415189993140260288637843063249621497919462587716198670526240095037984615500471631614644304070821041674507712030574789075962777104605409400856527764315960341065314550345914585294229364177621299005892321953650489389684441987068064584147568856605754337332316203373452595361324279588543437277024615605674613610009349701107083248915069966848712014258031863429911048407771426416180113655119226576608802813467829985128923978011164149606245060327429320201133616796358524837413943728009740826299442785019994854297122393805605963316175829877635589369196024793067927881722420793641658497912721887781071063130394136004773683014530347186603030877894837369549393694868154235117755555970577359800264248617559524912187750840893154151532741736511544210079803855978700705926236138320516336978646345688701232099264610740600666627280616528121643217931786770081947024992802017968549834106841522280343037533969913093181496028317553880451220359533608163688721683053379681389908173059315004543515872432872924717395529529041045748455218201713133345814236777886751329200286636908432240925899654247871590553190521761514497417267233061921430040389695810408613427163747674400527211398952768034797492189422317290502762393428454464374097890655427766784850303022736191666768125607522096479283437805613964589933889199105383518706834824530361601046867296179769649505549965352420167902793007098470062915020861989856638972013355859380906686357525933471596281292470352130542638372847427343350313237228534093005609731885395744245992641937654485992371345121513822920426376510767428470525971724656742316075685467680555367040195943347396381366392398485843897648061225466932831466746428737700102853980718377095521127370396807915933555006321365843064482799381284114017585967338242227925699734008277746791145282703486084955461577326703493036274552745621126987845294543696905118951783017674795577412536441020689538250437260373424325783853885694933308788718348946835676297453473414224015129788628706063860616636521000616351043950388256039356202126229100212004772995837892015563636673156167133232454325104089234256823184660523387554349284186185275961505006558272001616023097636736698192984894392464540543984537371491469589140205186648781302572913647222278693983394051371365639059134499588841746831857869000950288250606098345384043177460976331252548701723562492776916366015090983873793081413773590300015238572557755442360822801469268027165770836659288972654014931028344944019325316294327293138514058901140420125599188894641534429747739705978062777950185309087955597176085980606303113147630114350641625579059701216836136313450232696549274928160172299755507141289164175277749716456572738451459986100504021601583921496063921268630022084590089541842644493394691131539939611083141137864036346230413795917255113108365699667311983615964599192257073736051030950191848852380971528356540096357336597193824124944528084647754693262740587189544268794231506398307611617178815083418980739635358775373310059938829215560850804525088496847635761653506055454664712488297887723654354084298713038052243549119989414303458834829746927582749317875377487786010250759557013328959925696499759214383894502153796912967064988966679604098086914053579574477431365975750288469110952215989898991611333983723535779714917893883411928178226280026607722105547008880388852722925373600771107313216092624042405323022468341921146437018814538025223308094097261519920662089718080366993976725342678020319094522288615695417172435943946110869402602888598085786461823967251106818862553631708383502065738821816434052099916025098457275694783340618495180970978501352211039781430923233394813117261975304192659862694378344280291220832108227584397002725165179170110048579808353924392916814965382573007331019651864905710871381957568726010065088969441696466804854078862310112740339066434983628646022252984105290534920506059767148068520519195319878875699405338001519195664005382846027420146946358864138309374772004641988316631813917315654805215374017372972519093152135210639749351947248747547471591613342138167596947407803128232347827097235376613926344852767321416761145917787117945546949627466783364995940398989220974090817405496756174816697563307799391967065447180990027600238164323437314344009815124862737015078684185299693035347879879576781216955818178520896040008683537202444961080295649386657664099980959463902598765499817041988045230345593081292874411892813339523125935304123278936425462305115903708734258257808028907044955763693759006571450371697050521181734969996536916251486446347749592345708368478385386941573027810370099719691972424228125137985822767134943425196913348925968430512735831384359919945436041389640066934963402111180772223986021631639063102687157712460440488563780612557192996807778238896965340043884042554632849218911310340274004849903524736285422569637649101931493392699304747224499016793595225566185072887502773289397096237451734812811161605806658534577940554814060659458836379933220264487458886837548854128030743797818734381137205689636260658687168086560754388647878264137722546300435818006228218190344507946258414738843576066596486099694181669425718335480087240531798248176660611835774973648770662251844286787242375043011304135762051344073027783182604887088566857980337560927813446015522611420159078264155833133013453169199655592325364184187116309502467538601354319081927288028964755218494430102297419450993616651035314556448172945464180112063693560337576701802014264881902533831042573207642389746389053816443642214594795044738506212628840200471125680121133805508769287240079310823661031140002775912111855372986670195605955305293420318587184735104699841156688477416759245877450896834986544969535396766798811804787654189783121172163175460633216688362616345323859065072945750529992665345629053987812897391345523929605069693713300673588662132195160927524712048183300314716398308346221339730287080782574931754083841826606131619670518435373219856002993133212442509787341812654880145453570670565844105917165237377244750561153866495044606193913890905991522656216569301484351372001216138750934715555184257062714463992547715027496407242867633095974312148259100345729034376194150535752817194049129642115097438148644311666031801860284218473092506922819761543389571305481545426113775590897424523054139983958911395211792544373700662605159939100915394350069548684273984777856576963022610233739135608870141568086362573957018322921831442531999995760167305519391118093826778337687596564352409640710252499884447489119452854899415711755018464190817654252014328577659650027281728093161319779602507627973961953205036201855109665938846722444620467559189110924542829823431418062840423753565650436029575113946093156742163158450714736288228464674907887376912036478941575146508298160408082569104883119092202287087113986827244232488816699977225943023825855644534943741456717237687583424414232591466758142121035835873676662611202144180677538678887406025455955071932908991370354708293211123861771211637156739224678902927101059264965350705981585433912868221996030981475999697447508676584245542733689672703179631636134497410962468027083998947469743346353114601028654032631020513569229910640477215447467866099202594398484000493736610409544665307261254051042668350213773646334380157381241721636881849937702865920853041528258717731775934408119588870486440924473184310788081814267749041736336689723495121819932255181757932473377055872458214558358529924924341574802186058982426193245967617620495678800224711012464678788833940334105543045922050648702725518536581254265414869374335056553103312881277035954936648901295877665566724469349011117239493429254389386818329049266116357562308077026220545517496187683775248259554488903286192597135037480668147905629047173494727646780253718391031141974652027671127781932017476267659318738121984836593606531142075128313869065552149013029328955740873896628573803483485916321817412440803116039142259627581004601562442293984185185687213248230287424734801574824480389093468042770934773207932936141737126691251668917818525030386373684030331392990013722835651361831761376930804347093542294674328179436921225198988528125460528782262356618396517011319579057598092807966581370267732101634598980281370868015411059300412453371484114410336908692959851993305841692727712202662382136756062977678792526615435730488572851429841897763746169982998155180370700591690156512265373868820492062503315812905428855805887961831279960784694371008785682006978868347063635766133599037308307313712524566841501522152794760497465301333336744708728971904412981308186539661199852873437228716288129988170211699607781902763032946146855097042288980232776237943005963313315521628577220970619694268467354229145704929448882808282562085411117416749344132645895885197934425962093312531796428080321916270519786430691488886589167756058222099344547103125819324764538694642798849447720928493251225941068320910047932175774839628834449128511770871692700301292637595813572559947259751359092901201218842257313590892971353609279257637394597939176474715197735784231972739214691421179629280481297438918876418539437589713991879519889274273510701799199887426383167734396517382117978741771028445992455956312837613352039603370373161673067839846225783664169282055874301025598632693938312165437312534448152731531224731309421622081809486077818762990881703749361581354366718727828036044199172736634050040026122935387992288265570208349171489597862920036623139989287523655458172880655956504756576969067588275405843817384395486466482903155494792181276842692923225502110953715242995417120087081960516028867803229419905110636795416707905993484674964290412111410434855433302163571211791411948250356411097305201162801548014299338599825366547707601137417365331079500992977274066508970864729994093927650877854068061616400743206150472054979025775554340520548612719332765923786353720519153031044791461827584773886758648036902392262178466984302307034314861651652798079197573854939886955031534886514751116189135731713487094681984274268290155517268065107716757717133052773364055313807889304842694079798264987715843997886786937502763172067858257716486605937172453145734434735721235274110212557309292173369853893285837088135124669849426597206417304143972387296443731958562442732305469523776015216661909778782725338966330259947731075487666609231695545982672161342517801885909716966804455756690020450003192709792835585840659683747911468852941360831628637881563121212493434646974860345490507426994440202848737057460281802362616182092404490069954404254122712332572782238642875192100094347404049453460790880240220970740384166202246975691293500691384797517719520984128385327497714792872175195308465005737350722550633539753850139565279464543346711829179410862502928940536487278699028421548365483051236725719135935497686784168920164933299914985030569639831917624912112594082604324912317329773338157491897656495011839481103838591821606041887423369581183906839700922770680914688081414000037013412694955260673142842829040228085330191434524692326819258210682241117103874054291035522998428866309034188846903870111188358586784925199954823653629602768312601336577512392849703975172355108386434216384024638282774555497248848081819909195808005287677501906287004726301434182856230181553863181054654059304743251234818623861323283356006945021076872018308896042444548538160344148210700680257187158913987267566574351508689156851007167953058335214761180755246999622462090584197258244955784661043900043329047138898142739961509113476062260553957018227711787232174728608326777180704646209985430896100760377293568890531648928547056207159279888611729107172943832837937145832609360390668720937080407896883641788093286241320646140090331973909890346903303206258101914862530740459369093488358494586760212002561706934099721537985006657329467832167828677064636765759430176225674673012478147702381291569273502754943435509195178466369234133017627391564963586803098255816942521140907684399889305339268019976533129707277733946506820492259728808865748445455312155235518985431315460040684886093934857482624234109964875532297997139502764355758082788977880075310759816235782274195023879629179468152182800816703624525296411066987476966123563789982430146228826663198081053122328659207100283200324083379791665477287826581738949040072373728180395211889294809390198126198595844870422779755065192508681008056464511557359762326384761847952146660691098452506742420860534874034599742312878932876291927650276584328900320500971007898421718640394236785702288478430438146004849274449596454281318227762409027580947172724342144770872092292268569136213672857922733058493605490435184895000799305627171510623943633942782371379225599534330651303728068546609050945564617259820172610096649757119859800334921637618595712309330685046580127447224153046889654456928233539360932609860988803178294238471287760130163879898554443296184846587576418075475492937784995089668894083530618891494519925644427281752004601542908027585472207669760279055828832303585120952850302796376712368713662457921309726654949906306799974473383344396799114230426562453291719432086490855926493476370800326452132752163816679231574107696334621130279309787734596682125120767577481630464291479115108504686747500238048347139080311948008254129656723251753234311161709796197287313600937910197862837474667991223134447921775615344260814730968468636078082389318051496617946944238627138921974249270103294205818344581774457423595289131114980036731564564738042181924199461607503519792365484087579300352646982363687266022059288236564276368566966928812750986081916598244338068603520350980588567119410368666557282740456769012054984356493041001449197925743564330725743783331093653550042385481579468777250202790716284951843235818606083678509166686783126196842182669392810798364702434745056936255059551806710459634074478055952238510566224990832789028764566182789620512305301966846890559428123783240495355327978113043211604818710167182897091436322916754904542529848289362036272891620749490880942937483398269274090916894781152247811679215086075923387550339794440305580642373293846925544780106234706353528606805257696744722396501501629821394379370497246453881356041512913667606796821171229420589412311811664988118070018932153887940535093250245405379764887619799963127171821978546399695188314019173116073240788276458895730025300335587798527690718856991717216685438755228871718892488724954859219423629478600980673033674772726048784299960643783308551258161013097075739678894073867102656692539350671799211186665187911675924926105395828548522939721535834261862239560635826080952512949872984529969358681843062311274284961036582325634541824213385977322698047190769246128036662490880430513489655043627523529672716040874346294324581684246214043891978461925754434560038148231777925106550508981734077871342168583727442612353857154534229005091210620544822342667579493800528617619399478237409033258488557036699220616112013555818114724586407532399307097162116068698854860249731214603312747431294292436306108975979401869702708969942387337686304954344357057376546298496037053409956106271796976788297637194644991296747225020950177143120765288103481736834863612146997444793158828429984247443612127159889635091564548421696840093269439697454442830219694329061559296365826730856602046099772125117059833451186598882145305760424735767429606272559190714813480306628351803629859109458084885918431044482737932331116736650743528387467996139292299408209573640363388459233014909823166787186588571581817686885630791210555094992359592495808166928292410134074803459935404349567012864111145407952343471134796340320978922392237146697777217386034309365908953329243985553386464354591091188319332379747403878419907232605712081910237924977496072487507993639108758724244183870657784132033953123220205241768253692078770066959774257647673611289072907307678873990301897718914088558028986205100443029964619856137364244047423809928027612709221726898114076509875052305491187234973565860730717035596485358307296530241246891829159484880448086378871597610828259503062358711278886633317780494371176936201301632403956446534659491506529216532079924101208478126668075908469537385057666129520084554226143984703293776102691767542747011405254438406590371662011855425945925388097219418616530197712074512750059661959195075269862663802127088846735937221646682862987428079105565430977316141736129520056389451462861828966723126313935576171270719195474418859166304785390573813144871591030832119743329150307847026263008354750028502312815401097096545237061629566364394956475970644706541443245831932961507565370213902383311865042012950558694290853949674439959641132407039905275076273604373680992103653262212903402557259836600518419389258626005429457360777983000754979653223590149404535975676328312747356921424743593101597356756388548622108203906887055601829907620333930474651549085684074641066673320901711668046568017773770398479478682011578109237423724403190513546265097857593009822313769612889475169580338353230315379952872162337798236909977157566482883981972456459349855073903291941571010672541529298674545358044977911231612980405781818067952080275744563434517057476711519900338663274687425146954648130095093547056780325344313554742168004937962865232502075589871218896615159994801224807836494551120126102439649610499550078615901054107493823734572626958665405559251123719747235430619960761738037528031029523767252201741982167740135413097733389965891103611210701914791796550959369819695850565390477122138134543410682493464268986936931787416486330158460198850789516283910732960961948304128227436149021254080917205831844021012072092360728593876163403174883921595599566857666390490492179959423883880051332301880509477288315545088497962796462547554822930752694721987121039026609516676092875100230133482894175021593261314595918491969401874351338288126256508510793962467480678745737726776703719682401560376534295442008364378855094052210155278174323172181894996503030885923202939970292998638637903086875649099932804891239762351678519970433359493978093371969325891084847693036013941395525479084375219693715085401094784731103833825733548220403101676902269082309734803441833581132873501181004278841165535705155020139947163684090858478620713187424159592269715895119512365874828349472890756452241332526266844112554066074823430150407122482141223792842473195491676606218301322184273282818691536478664201917895345723656686545320765273309981430511537655382720967800084209970224257612928700567129246728301166685821197623515150730156375432782462396791708378063965305866333616623074015570952805185551404015157566186900748858608954937172908824062121564928045905658826121868667626434679575921816477169695400310486502542858358298444934395069256966866234582643894309834732972110465892579276189988807895030289441741669190190947172639038986573026745422815005632144660178333515678803143482912522094262759131916044193459221389879544639863814077375947303402571587199363669076785428690526862605637888112560706672393204593657058943554370734180026417593856728970240792062240009185551584720951911366407648020238321523406061237046109901559969713119917905906072446629188702990894616634581212975519516276070402708704325229374578848420785615855104458116476254640477516333714639632288186740381938487273777583227212089087893963146670948416359841437042763595827175153158878803172051548802424232963164452062403411106152550315620796965011911662200637032405064038953355348623831063598500068889054759721838013911885104954462247562090607097216454029737337766496389679063567163828370268451887387312129674666374134528485656663016628538062744310537462348861008948265334633831827337197968985519086099508583387165665742524237410352316383311667576869023828483406936983406652714302751456115610121217316459414312640177083243832051536487744134840116092610240352138797645530671116354904129424016530473069496879754674966627968521844214411115224971532293479861126915684958742282211417915742910117164394654932732948353785962869917773244930562159155628341581148360193530675004737047188749118266145370419654234252348753401844804997439703388630601155915161691136897196382998409247748440553161621838252492825113520434447923992083944495116200226892969471953774369338196131340332215416906334452220031371054030637621291989999225341346119472852743866185348201158445080769438707379293614931228238878297656948425267063806448390984859012985908428552071424348605097890942177152518765349619567522411347669248840983455132048337821648865017713285808794390878302059818070601955736788894922823976276454643886682389838475530521577129037349626318839266263913715247957515440168655275474551824212747102951870801815089933635232689305515635770913000302451406344155440774845153810369271059078335042646228104494838899873717931984554671421497525208316021337800137312961109357722775894750181338393377705644048206466759491164132092263700996288439572953784086562241831592516441783413008689479580221696488035636653188426249258102818265841576029304729893397859996695066487396993170935653745535825921902960398602363810392445154482730985808368508513132130681682877130454183830082644089494024706062993371092241355897140956794313673024057981086908583859946904717524458469408132609748683398591864648543936598584329408226726262772192038706095475507496861400004138157677530785592355463593351685509037133333105259709664265726106272466017164348322445484883807030834444591410565462530264783991703237678626436542407594359027276409153326367859426703384592411775468409236559324907182594838312958424734493647917798648472147950030003484273850152730019331246972743168874649841752400521411182878816035339163966847657291095495539620982617092046152756115039839087418121280477296341644875599450614920719188670644675006069815187135921778004047325160339352237047030815557235991685544172907547016356699759865073086384974035925030101859582402002002973390696048696432284549666948305727955016392723862923258419970632581872637624651814883152973113786979898236487769963461810403299931510683747002355637283532462893379363733617480160443932507748095756985856404772658165005461682951193870673626228861541254084335803347361500001798071521811902788897224212290660118029201784985122500345715223536974460433441219080510335610762060495653282115350926156266840550501195611278518028112346704365713488173130058842354428392507101037775185008515127213932838268736348667677607262281079284783199367777120819956850598019821635073849667689138132650917595326690963801341031536435705070591389081190414487618434155395461681637043295946204304506329478171752189869801360878264005192479708767166792163059398533437390213129375471688677607410716918688423982447813322475078527194988798741671935327044462159034140962635431864005392494459030935185196987595970060306273554547753056935668736150630661108340180079848165420819292724234599695998209965434360726976839978136181255943743156871215799332559842402482488900739808443162878745576182296504730922826662580415757454933915171267660955158329127677519998396960284848363947673859821424173944567776349508959550427274929735114157185098838625922784819292776297462470829606772812085464689146603807305119725345669250848205565684719759969994538921798516641715334119509082369611227261676258588076195790903237063573613120003291031041560935041762200451480469216960844233145569585859654571374345545646352181576486728177015420377160975959922757074334437485372166212192258658349816554228088401379428850653739679283547049130846034448422760540256923680254382956437407183518884156355883231214954179762640776913021576194209529443952400183157048513800137406073014580327867927561218579461781073517403942676404248229192086654758845748476234372159808738544666390286627170313935614329566182669479989802869336292987291524390426383409277457659468416798942499151633641506800577391958273430597580289182254555545315565716283004567021815530143426868316019977539020525319716875577422967815531214589690682228937438424211169568189919206631347888327097565582058625543583905008008978507072621090366531897558086817304864446699917774047721952467195347411400075460616493502023754377671245092901097677961789077824531793367482504243377767398678445056231778199124593050066626557591435391295187175399622277360492117481289533861853362070968420228731387389362330619086737870929078573525049426185040382734683315550060061171073994952709275292835572669871608451729501508093866736406592398047956494166193536966402917981591272602185821544054204422868499690294413516517907004620170729713167538616468189849440909398037189339726597729159197277737817295216194767338874722235706180284579670437171969934396740824805434789116013367208880078233856556987862549283503038527615008572221176702489858886430715283445599695307703449203348192063677527125882292708706135618478721632449085402718615964974848773991401469950300702894810995150012214418162405701648745071447922272955422830995920645783634267670596632568846276623444293787690545474099605806106960938821371291097553928641895579282732140374118987381836506014097962711332157001320210416939416021893241895704596329796086924445966101478659193225773316248922439253314761382343443662584437510169016336764538770086618483228085176963256659270717290544058410356119081371376575258882725845407788729071123046874730411191206929946753844797197551313475711786175619834139921013317737573352180560604325292667250025013511240056670720356069514591745335570276197216523604663322228761577548186357384852295735438813291765092892803268032539523127976579415952901903878680820498798104127869808171497385973384886401897034101783370818220977892813930899190160251439394113837565698167087210855244401070978019577567994670558563366521957156114195966012122201721113724184780364788146911091770840388037809394820453423214137725857803866033283570268228194511931276645535329277976257982206692538603181188130727908642546884861932816324884442897880953217669954350391652553450663698677738901035047479578256810220308957709765420178011462387906690252141561443597194006483145972035150817378520891358121943242535296771506746206597869011178225591924824289306777039717919127652099218767281382895223585672145418014816377093108929936620969405934165421779566120442754752393910100546059571232310007595119406681962353000786456513900788849090966477014287036262047084141067780902462469796572078984494091882148658317216923921022237133781976591945623554505909656450365816741342816432798208350480052064574306511601809258606659515179252057383976186116674025748279020792128089562790918302673084228255607805371774373926596618424906304602207497178785728627425705096890430335968028013244267260765390675062827969233693322919618377893439417079296403040954270651819001994681829571453119270999216781196615310100894920486649842274284008861826084913301210857700806566100708228109171983137519560875452877028348313384483053856873740005425634182615347043891160366255340540685842742158414662763302625564100036482822795540524027725975296500174557124447105352707628622134002959919828081245774831263236589652225772104013959611428001611444860975124201945664458764818091324044785739291668422848874518237353482874749739021194632764638103486263033128508090381959476044380669470131702225817647279574942495061025283748854783000813113261425197520140408793748588152796192855738479455735233339916342716560846301993343353757840338226870635314376030413405360047305204550766259519738785305098315455867005057907365866382877528671624148790530964699243047267296187919529096501630530412397741093548577202104464430341029099599142854121748669804215265623691440918145877642068768066378844034152225527249702879351600580509612546210118600735016383317944776493366220954418302181999788956517131100458271825611645095291901839233187836438722116021390876791780572047401366825001748304363348420634214026871896209779112435747255820633521768596060309752155728975520333441999066968238894742630787313097533754014293936346992927314261640532904797426521996353542811250944124382965575894470376177243295270190136312814394800523410911090334892083438029175286794416286418149568517461863402147524726352471887436877342134494765631255400664058711378922351268989812675543512220738687814036033222775133188765928398195966533059283942643895446274668883234013193918172126788269513043680060081090003993764540951472244338736722969433509702754303788826050001916139437542166162190958007086994319054306947518123474863520883678562032190585115724219432215338134974337395329915545053845152224562896317694635026513254015668496878279325116784084203969137632819387267007201230054623832275029728443012572182296289790827219233980732681778617192795045241466950128925634384307685599048598775600299575352677238297874136588520145673551269714966664671024850892504386367550016030244642050363054762088596378483054705039858846706985233168676732567671071243737889872966105576773167969514230258936107148322342763212623532167693737097070913951969340442317126738590183477139167571150609986468752674512638391018861395848294324644653430032700586597342632107985253673908702953023889170498696463684855389130444075382041413845056906023457842554617881023635111161539187189716348084353789058804474765454958882260211361934444977211244443447244088471561077993807741971170987810907605794732595567538820364870254499148606887422417972421135708462664794683266731285282629511565798572958719880471478948933042306857606102081544858426510981817738363666697862728241546423416888174079623257458378733741830902105948139102035236216819456270588426364655252995914957028363989999588814624375094024960360144603813671712417963459937243229768419248483096393092920771237296560259577263190107912514768859488436987196239600428251839028962470618276334494471460240059696770843244509719324423720974755541858510541502479634052240864258791060811706470835404068951978374563701192785064397487541475670475566798532930833639855644434973420163562225841224381496455827492529715969555040330331802371109843487131409198509840012670565018702308406693115069637314831827455144435488669454815718680945178859953158113033406335498129286272011395377882644284729934290398480024644377118849543599250405491375410503177224847204912829563917722799556118928242700831783977599249046467862518557550051378175297461591572175138080767034140110428675693179886182892021579183461355282532832467520155777836426006336749994694510055447417930527940678750331301499616965306099698392866055809924223785223224211631383243852839458500528808125604094736244183054640836779223401558577316167254801657446236570318504489728965251101984018100656955465888867704052824281186078000631291865680948369422007603525065293879034525156483818376576100416768665626220343726988877491733050757676213331651360223690065749464627045052255193980637321982476606362104554955734342689009488904068573635446363389214424496557440936677488321008636838510395538189107804730533292194650787832643441336120937071664239813726701136717305005159615266309938845497115839430426258187730212071221991595222515570466034402272219753379056973629158222223703123955609470345220452504111189003606157651147673718483012653400454435352202373365464184512890208060251590671410824201553758966965701222380872588116992042662436592774151131685199192059932631868812431751787007699715549041503362200249683181041653203548389826041545770005797390826464838297746873176215191935475093291284392499148155072805371438104171317632116469969117709635747266388561244499507019711485478006285171188461124649845581439172635659536961245068840828808072001794250280080733390967844145486869174436321558698028001258989653419444984996639302999754812291610324336125195872681632734480746802437880808291648665218750233247454365957361496105531328723787471873859402565152795783444416684698206854402419399995716701976903741805937853449933687331214445986621794305919542490073696391856262656788416359212578352173727348939017345857947351954376634568529610456161085048649762693152199794818725935531672685958618665915716092527942303285980673127237927555481921101789332118974929272895128836355120471539844199116668491606124675681652728928042665755849335496999611399779145683330030443226896273146163005209686379905601007218783160936448230933019835957424193102576175991212370881829944995118392637274160807082982781576268563908312913580094824386423415084697406387779217747228387643876558385378082548632016470914739185987304025690534846993695228719900350886374639466136188723492622567910335889273469275343227970465944189696710884613956241467682334228717257157332127673092398142029605382777727582169878283366281461900284995379104829163838285847217660028937766848651804525103660101766450390765001019084131391903098979570143276617804261452567300715168919045052043113430037126242063241230870832484394251179173875183532466252629363208595860639962802733787205017759565492566526081377470779708310662566645289007710785580442717719781075226479148097495900524345804576569075842597595079238206777476205441253801653652415999556341375251558754688321478505418665138781348858886605997303272216261221154596458867973918299539461973275486314187787944271966052936469193838113327948050588512151643128563313809452709331975746529361632734592408444292715575069010061335631096045224120629600724973899401625019548557595919322642056800684415479541230308086577156301845222747827469131324300946673678299302382621369556926056144645256698738355917460774910397775985012318739100749083457524148230187346641837034049018899738324279334070474833737442470517151832330836644603676550978943967676224147387647159116745389421753910235745890311086512309934540699887937241432427325428097334874102302281971900468582505206816799697570562950999729863248574182643144770725100735128079606797433066438168323491983957756184026819176626001122454117537518099570425350117031625329356441185038552640843371202030075861593273859458637444214497680491186914337674245963010557248957724921078026812940140560978546543735254824665607800029311998899254332449431845868682144775059493727246259927694043572896682572131588144990994257332277575969472520832729477815199206685029495579479775411609026321567452238987314543056852332070460057023459964973645512920243308295970057634648614453441173354778094953778198612696986233529194599218958455643731657226450647570729706734986557603341242556956676899161483918981895242008529079051609353337657665560336231030930424891862205330173735560223413423872969753280786583483223852463999407442092165171503677394958177899138929045740121851951810985565898485458568849699669941035800474479529697792753461429025655704222942131859162848623520054274390941571700606643701241190241757159097781435888943921602738254516647173697417903517104853400270873657422963183066376492707046303850368606029277582412975930501951344684041604781370265841751192206569019717748299483084954247590117470581450183330467322611775847576634401015303098874174147631212335288171863026478267744047195324338520357416614203024318090532584256546715750040751409298955073836527283618685868848345233810509759904267109687565861458422057423368808288199029558955359122561819478028101522445029427872171915438353381447925925857687577061952826967949595651937506287704863108439026742474532790322366117126936096585727157792403250053210031053456881622872593287537812348478761760152326954849070954539539954551336063972547459055505500485352347409154807471252071775883827380652395909577416376466886985796339888930801242991744488625894667805052510854228415377401063070680600151218507133770741909700778382394109398376861390084722491295804986260767135257722014693779486966789657230186249572477815064620668635961095874926664515444041121734751989213189220327260634286018855944137156598239242400542604744423274194948892494780781740173722458968290409010094816348157850101451653927008590479274841092940925491477810930879768979128190803073554514488807389996398122851253374271260601461693637171518985889322766736018021595261901960389780946102196417940885195446403725148520957129391251673242859823118046030950224094596145131639877004621281944563171524111383306958294464275189112625564820656821353872026838833498367915480413737828129953399067454005764310624631109869938442411461779620814264281233583199909669558674690725691294123551307723670196360476611252155784198703865742320822032221419846436970949025116243679999620755188244340315531825589105398702344248010814262072143944473737524749375600726001869752300953044947854733697883018003756356423439078535817068675902998735388879158329628617523887833584265090660161630348796232614151780103475240747590020087811998075831461115207816195742105011702401689317825762758900689360501188158849450825411565885216359452495936770498290215498285008377439516075261517566576794077106055537982922900516336230962117059990014337518177565597955209568071077999711128917617072788743548863732923212922357045149791430152933956717295153667766884396292338357207819427028776812579536266592178709484309742391644738803315699137222154105901417179948679816480415492968939600625322588480183127289236247757613900044932513236858942409689278571211021435458490687130590089913602316834471506905802996567752302907620886737376469397481792537885213823340946118300702069295601783629339730954717887414763369783645514776316503736253197308062501233974183206348282574898226876782958504188662634266310800568442080667481005915941550068363767236186066784075283105903556997875291989519537796090599023992684049114237907522874432118592447603944910615953130583161182703666711446234239836441874406614851432715739333812550350934359261180719885573719788404555813168529972543792976992019416902186895111150078725123418816800540462154861251885476008486913273286623421409820678202296736877469575128418679196010881998952346927616044055874804004348744765838483727840292859079882305594072709494629998490340810932981803127486328216219716750112798128217693853199023562578382947527279401350074454917910301655748841583879851805109758021652956553284662059706148688757997304603001775721315691480797340234016365689197668342251233556943403846450873865540444609460755675839376233723459569932547512029556554159684886239005063621663139581738362192503734317185622955311115785677593245840351339189248994217558164119215762487051966399353214188365082109586835529106948959236249962606013926598338090537428483291675184820518646082226699795427314418123878603719494160209513728485506284967239415132942153743358354150035839463529090955079274041907868204574952613932583136641587291223671911023475907823829627411821577556634511037248607045696332643005711346358693850583990545127683210807704798504231363869162468101288540672447411239516474843854420836336571688702607612972891866747081743180850795168074715108435279586031645659867050746451586424283793637563301696537342066998877960921404773957326916758159728627824047869097680014548614584343232611108192367578945303847392684189909324712756290862134150515859407488541214752781725106043601219450649763011449708845567099483262159212039762561025753909535681853853856679050970397294104865397719777111414834426104028538299477675173818305234235266616380109552962139153088600566920444875336621332832255338265288365000559766368631622463531307347357867334457347903540358541391821371502498315482349688449871048442737413834444540881305836941776030394479976621508953121925712013244438430488192592935692081511493440851982875887243563536011116533131812357030215671206538617891345645496523022491714719681113711627554569018669297725559654285490478655488100608764662186710855956521233189313654345752075590361288281089441194392527445722006514199311660676326604094470929835732757332167161698597886909015513217484640747451391934487598800188749796784039770463028253603636458522488175700515276495947116190507086616089201229340115135060904057812417475372801989215438722079038406828717079857711398168147687417498301555487019540706376465355994906369072246648267652136827938120657373053333411936107232845942718058087192173590415084172593319413737976867791642142054432846126798929319116526780647012842379368379546233362105692435983024907055272924907076100727048674915280611119250077724411071609063705257604974951527046575597592087205864715467813237178426714606128694952007342635552743017949665227922251635558322699777817383393313001932988626239407897417509557101185391814803814457208724792406765474904400061296279587790787454699133097450639343099806797843181815376555513652298820483228785610103632260289218308182457877637152777660682995930654069286919550623149201780900076339988061266071652412167798293499147708517196370572100092386360514058728523183023112811933791975044423787457866437691215870181314308424505267169139711177008924568679983676952321698672856643485225151598167976179889915066073460782491602252495224491396777862592873945522692483092289559912214642243167729038359665154555784860877698738584270740427368584038808929384950329564854014303131848258993554389282734602105684234442289548484098794767618491798393102311243712098349421401081698979702399085649569973047544072866494931327770111544020097123110894854316283272994964306278338612630783327000741316649911368259627024955311007813685868701535674377051765298170615188263927864839720953382805450727477323960106004023095429542835067988126752891535917837548537427907261340384041509133761125599952703555216021617456524517083345999769259765226499029676549659163065485385903828381952790347294884351081628666974812169109867761593184532521507890892961040924473796339625357036569643340720764783743540643116751963406692951032847336785585329279949476827994069203015642766297593464093729970822321852132333609326208749550185030451204836499625597451862143653885683863902544639104208683965744616181419014199812063529960258669848954850841934148233800964590530000707415354971411242691823659362142281171436155365515609591608184116838266723820618151126406882158422794652068247214413459483391596380861394610764555560320881368381243145250484393619836659499325471601800260334893169289826300624541254551203046521399598068321377045503517967052978888092853659772792456630546253663207567426536213375231253058514705996165545608415877209221125693879488188535511071228809199602064560308928623975531520549722318628162428226689415917257892144813908589246917640264566340000503605109430453191704104645759520767442821217009523901662239059761266417233473229418058033137041540414961094705603904555645742357440094062581329403427304899413988581933822707783170186109875789974344413068405375051730315494671641553358910415563451785477206165802423136909949771066129667839891220153983659921311109140751486733502860800639868716602882949187011851955447307472427119417151058036441383892254167247637646516448161499972691105536095476502072524673246288757580104112543865772837192968804937506968683445500168784416896112542072250270320413575682561673544911251233866811305795367459356346686895131890313589671344594963288235064355021462818551760965806537059100958835424911380605559614104966343354782832334749450516520275723263491909982326646808818601418393803697374219237056216634486402614385430539976654270493664173148024031341920176659132009265412464534605678081217429544059272419468308470430749966967622541249571773988073138419496916139572070341654321595832683555740163289874735512395029199065004948969207072328134836680905035741770808362983085983874284175095847375034139168651009980604362859429635387770959575914887286118940626624265216196512744885466713108620897207006048796174066197292612395812749847801331829213796503278041537768529311836928616265709451245377241697436481492780273468849182305909268949241379285439931893579247176476844162610940871324074618343760112999685058609248224224895998063999332668360013152206350679900490103944500063338009139495411517976247106947017454832844091097478706215125178251876711580467533766984876868570382720941686412701663199716109418862795900946081958630941170954232410486187728787960125221017801163040032334058075785030134761458744117076280589796063195752687149904794806769185336372768896688129580123762101850732074168232463273019464852596439679970605536692579829330082977008195054468558906202781532697570646756135930992103406863052439517288631038761570952431933433840634049250815364303587574644210967495402182720900084319738888519366173272970210009322569454540822425043824987060124450627085648093948113373493504915740117450980133445651266072513259263033296717612872522941399685276602475760492447095303314276410431361449443190745676739732570467686349403499580931068260145286401921579566816202954052859745160490863875384160086814055765985811745674413697174909847382166691183843639993881151483657999339345195921733779908432937778958231145922531533670780175145253410821739463926085527613564810500170524450723734861789451740437815154272448385589819338305641972900952078069815925053675852847295691262499213012103994742478822181590404774319045704254255278577936759005479496378126016541680459028190396308125331417061635878548517560328220206069220404607226444862529792698525544719191185681527800555635281851945337397008795810614961068917647288529113625151364449821058530116760261129458266972918994193577015311847230989309642292925524627287635055827938138311786285536627574761085375992172548722250794226178130605273959508502158867705989519567324936380781029005725461947777524765800225435213833803017043095140462601070305285684020309794935935308558239338234221965744288173679543818173366587222456888625277726382102332667888399507617417893300209985997974690696460237277711519143326083029827983228327222153843779524863578192427817792802635661132860184629877542757910726784768893866973548715159038239633444549059932943917646325106303144475912331190513886435371358287782960663828964820508408484144909502483288005045321652878199547174427995630132338735148801824978454557718754821460993111199435224634727224912356509106506832480591454968702277321040278662873168762191075586411669642612528873378572833899421241326192869290656203348589897466414971228471951820433898543172837576363724921422482987479144784265686805903464745263119972185210382665250094642191793960956517892677513278046918134069687739428488608939339542704042753436277684034472484460798426624395396023358824431049302389609875776325023076546521684208484086594530032575402125974745363447085051349641689220126712541556928101558311472816245193785838986588880648704673819394140616928167247294382270415742250546665242339723157529271247770936988179034288024324018290214762365351886006114877845332330582555486562080590374225092218988980681370553118769067466986777846464765421905533266912878549420504160078718546461953500985372731257066383412650584278682597775047845157936693988762872464299524026826471504166818882483779140302155917947852850997505727404485160885653436089197807681762675352652221060161650424261977149969891713619929451273488725357672156469232481704853320212601283515079451465928365770289182744527062317034326539796982266402807058039702482959276252860705628666019458796679711410293814597527094804938859203386063642974943543505698910372949201547571568435268297746854941172521271515720259006965887485505874008881197762818234264735720054451734932588235432311224085085062790143956090897753549276721249527922075471345104249084136431325689568526035102020623053246984678983127502554510366997630621734350374093494721876862826791917969862046225188077173762785150591541110226909753279579680845412183625324813617120962861240320215570539348854986910868318929769384056850798717223687945412348661203045152066734804102782020349954218264051878718406434964569273388355660786656941686598700352542578039576707503947014679181531091469640683647427736113390590651240345435499574489478524420060388345337644491483218761494716771303533898360779969565050887635722542759217406173660453493659180543002249982265161041658407028694854004123614667390652899192273675257223776793906892827067418089839391723164050314418753170759175036249269153450951247685893812071932895410612243223788342198142551912408532459666666678643616365203575628580819824522071900591938443455876288909301773274721086116093994800843345005290314726534335518325572609703225543122069848623987889348117665871865405142065041300035725608867573194373619970129727837100136329975142025711090301759139663790660153550710827498139360274222277571705362701282495884641838894698986802311537383906588196922592187728344012101174878191427921564703596407104901830878424026728203355730689577421205932221885328093697603138600152698753011226106507245611097100495681891680698279494521055941296514379976455815405106410664322788943304361981489059689037059784593340108111799260150040630276379450592046283940547518788516647029800650668723996109812984367780958547464388294498894839772618890901192291031470552633259861235521126002453202532112714933183143425559328574565697352935350551417800173470317971735531881583233941691730468790835449634338154814457829347828133633666083792264406087021932030134711540253323675860938111623240531777029744295062274771804920507259273850511763232480803276682350493535580461710151390427874516448269934485833630199664063266815381039724892128701653922073610045685083683340921687529528135123546794000645647804512470242272380437342711583406657580643752103949321863534871563071091984099516209493683176661966030898266083962056252736411476457628281410552919528605317254434434776061816436859137301642135456087825803364691275919066463222047745254655717058910558562169272906064302670844876379760292041944968826202689128349230680325498445723429910413271041568245851783056473981538377270849515632728200248942847987315988351327941184149528219149269469380343760662416888808742974953228283867113403616729555662779889231862669540999022813650268560439939747671152318351472855579938245643052490423768487674966332019625802896084102479735190311277913720716794832277937559344923534879470298454138987126431561277790456161470859954877526180386297017130163401725818359287854843747097296460409924339327948902178901142517385103747575393059462425915065680787393521713116842238552481315206977662353465344723151449812302277114610562797173905473211551354110454367159493020804575774377154152700405014002947096587517618775685910057415460530517667772294985660754818315936667246959976271302410589434106140400945947749227256179506176455567484792753626250323724827456229192131263502979704624262918300358119107696630723753449448818313400598887051911226417257988981779603104791755123652066726481103123629220907594602674487404301245777433181236261661649167921922649003977626271848839637687585876515467778299193913021609300509723440132687916112758697336960978385679641198010051088667667387183300765421122477985266976882743823405229363379890442566319996541691915914937310683726113985447325135047561538326761552681299338439467828320763039412113453936402493714458334267040769905371341329064181584824950461720878196645261265850770299241350679188047449982817575948452142997583627195595277520396785377397972999627867928806339296408400437010295423311550501743798882308113587988718605816129236744195089001913768920000485137954308433622605036346679721913290226706493526194843058394052117681870531565576799875923935693026247287940188311786006864519917863471423316036104542220239202003478912595828892831660836030158044300245074404415660043558575127226680324333976094552174699427705468902186440483457851334843383006085108856627847695442954488246092605186182848318329311524439742508366845975363812508854273830073451045111005436146399604132691916000300495339371009126132114326178688838996186816101507509419001917306444603243089819524128887956731431354768209535986069080996326569783439401286375182049913789811567409668060855593390377218859331955994277560122631602095467532399614401215124484800060726010133773485687551930120135768073293870804287594311778995401619406523767793245977268613676576375700463020529833736942473034347211694521430780150330088229069618661996284730773482690047221960278795072057537432141877859841532574299564958502860442092091936966363009101206902540852386122378845424110464200273262630382291897118801327973108945806843953561670379357894891598004399912452922543397982561106488594702317809941860707849628846323414973075584048532996082848562619054744628151175405911730491434619678400827492699714632051714756032940935724509262709916927257706216099220404191365512389893277115550521872499658338692967674889566275387462206546586483115680318877863139163180706578725972069614926125344037502024550730987952920366781452871061676070284246759160033415899050156500223570687755176509964120203880975264899405757625050091746122167884456978501921422035158819236754568270278912440014637872408575225974153899179435672292895346696391638492673322742002373559820835983131332921509269246406217797938933628072216568440130849368464586966364680247262406918194304334907432913450514892029190100609445355344621298071751500713041613847872218589724217938322766613535306842590671037329885046627749460815536639783263269784231061797957205594380435102539185226045798429884754504640066886607774603274529059464597659147931851898086295519153748306932937337339801826187306098995010500781411840641416243049212472800111386142075589558142503651777152981399273186917411345765284821392963466390922762329571417660081148866321627866244665607971952282720409562477186432896538145375786909343728789916681394520076914089838963190896405405014641902928845724354798602531347036924951754818876663695443261544052676391870820550269293768669512158971430038292009122531826313790347650474014172766901648539153386024774641846078808585380793085474738294918517037204457349446287928321063375800927707174000516604295598072461301743047479420361491703979348688005488440405109129600864218566164859052726765531831821175637731431726794736513555611042839752231562026354516158149697943673052571323484779043384286327695750408441439267250348186929477055337913026067153342421893199657377744975604559259669826862298054366305653798347928219669245318226833967600846511842226675496999974126525848738297442681754052075724186277721874400875005644090639926116537923715738248303583048328032697618730917270940458244350128373470239017167758667460650003055822743722912654320719945386180272165661060870212775968893798540806207545268449371604197204493372536230513714039280146858973949798392040567039672149767202683998308279835861106433814390300039498363768646961546988843451932065064279439269018977112039280806159348599225674394617396666881017669169876395801051858000496390105745433528934003908222165863001964349765156013044540071538988963587638746792080645451691106045183069248716893723043316595785898738623116409732414362383462098257081947980891949364584013289051273646532678492805264780136620783109296687353021825583396891854869264529961416286147563226530331811520904852386777156128521660881386572453108834496861667128122358010276015646846301475729703729032368807409177609535387510401116952561884521025819878610130464211829452189150094426615340973124148758277123835858256705929409302459334549188673586782863539862373970339318205780523245719294272550555508062758123397507415804973214696603861781803305716690480267938106071590595399955407262292618733371957937024855399634405813698505498431531258048865590315094856405044377693199372612192431463441314551528499808469970314613869044798529065382759035956985070754212795758567196201849967279314144323523323469039427814573209012032699931237734675485835205032779289036062471560934255696251816910303474104696739625972213927939335751813092886043293081404754907077071265467271341584917391244131536444752601626664822575745674936846306035434215526574009872388003639603262592645099608582958001864911705748505922262685476932134203772346398506505779317151562509837360353788505936903778065966564376250052139424441733424374166247938371658100076652336333470652922541734716512185035564335522697226317878320808849003257874887866234147009246392273745156550740020391952521858918391215923051969264633135074444169154297507287424822788079194272996868812706303009412691685592506732565213994657679849411022156077050633023343409175278406101453888016312618620047119779952244678447094769116684850924425132615088642648805359286179103686399827098767086658700014999036858913115231285657392089546810534075513629926733853651332257757841708985347918581479672152268619221214280973460942126089540648234088166864747960678705044595265111065671511538540504975392314766366582210049215863136885164211775976277308876634003493729247614685172804210568403349395602436107041226520617618905041077901938035693168628661034774435877174983055397894172043760828153087454658815100599688188367567045739113821785933399196924837347483519162070627517869812939748574498763501694924386381381021919431243679429851170465768167676303551150164764011227116315320603030451680105862600137936504968842046893518576343690897691786917883903659162655675908143441001704763527255958274853075736573607358903230919965732362594070356647839402656239373249526427327569716130813480401007390078784570875573111158944614698740513632596284792403437608541534935599134904876287702813037133740029110334956046628099828632219138252798322509203797384335848051636992650426313566085339123675508008173238549759012588873338529732485044064516765974604753442298489348252823510270896815204643795225765602173029624448790088567712708121555654552091845693344990976604808695571490316749257284547062839909576176357966027870638022250561598541324930529043405242562459921927876168606732361107869662816727169651104779592151600979584844809404413164354452758728642928181970498998102633826557182588004702895004401699443247503860422425569226482170823966988581194365009219790651588641638867105474403817857117091365490464558794889304320254745541082818327092942162602224074699311764049892109208200258972646180750834510181468244895998570342846780198043140083537062307321135870084492708888513163815065896743067081384379439910791771487056829067116021486641803613601806111941932277857118049021755646882949438309868809728269604149166097649698124749750439800246933119965826277501810318464551732534920349190267319348066381866266062997986809695782605564055900579341423480422452150068723098893429599423697167189035360093739866457649661845235116403696031875057875523799869004825775275780069955039370187695192247637541346857125997796722971277264600671161490350798511105565139095503629203469842058023233003892788071259560170452722595870801229889396883813360108667741804882235861563610923065301610805285770111462810132690241708001695131073270952828852746892450085216873507133140854076140352807644209328120118986246802960964887996841382158435728069093557706037589680151366068261442429204363139102289913784120789835276651695433307752484062009800157077009081065844333129220218008915679759604528840621869845947467909124478981873153373839303218121413568737163355697131801269066358376264095424852568944564279204428598935326381531751475406933419888163948374182581637278567156477752613481693095641455902489695928355570299539218294576361162943150644020414192754634505775989118677362179800155045964269114272849774699219127797516756141496044368959252264521851356176327252362713773794585478666606472496202992799829397795141721608414667770080402764890645788441812895899653124692831817507762737495163135412709272241054388584038116002852731062602893474067847431447483865123282935994844117212900765053591347187557101410083159793964389555960337698626025219120080595502896455660717919322862101523557301831516772259074356498782256443327893928330524463600087440344734886868055385344374011724904707534845932501752521312494581013756265147032959090230883041795061301208650222593122690846227202375212613747191724521754708287239649919549096240904177431066656545446631614895443116369428900236740555529295266600329277608842079093518381304752870709647201542261670934759964046736164225255982695822812469531587399568496354383872972614868394355590080101580373030558543260882755697848418609554907042529181399484860514753469251121621934527927097547363992925353283061578961112752447652397717838843699587579940632889701571929312997319512721830216323200355892883965340236525349212890976384480855672145255055905070942942472406325406661505278895468895042626424878901065591101741809732126280300156366695155257127522694890186098001484593140692127092771823255502432889786922073965393190301187020541794318248962130292702134828497588246864960312167894695922463930894015888327336721286069270055964068325549143776512631290916580010098437317059643548674636109102604974331901486747750299616311961159917212521143756524365636893316327614565847504251277841139739239430594538112473745819953603913590404966022227568901232485311492086627667410849174001816896125463975296401515231228371753129293912258630173865376979149576876439696399092125986507795079849427061512270798076249522111366854172419474245307863596482620039947523880853870533947317589858471451421070371267237204163300654902661617597401298982381207550951379406551074056711119662802760540313754091287586581982854954299812691345761514214896396531584981239310561552462902852069208954947708184221282888529479736978942722342130850227528222252101552233765513186181103757136807324635647221081910351696275001782522679856024434459296045398488224953511667972478002453845542336224174195855511839823166909359331548912398371624700447564727154981021231566762825212231937453322111750793784857813835928591617006088426298650483067619539619394093720850348357497159950884456804348382717253109318554822131193310480753087355766033192169289874558696169270221442021314660330137189548857233411817825054546175714357899555940500852127571701386189566274673459556740649656059035899095206270095139069211249535450962687642677208720803473879783015989441179033798162117911612417660061632098628896128746959149470447550708573908558579335055907615539226515097389461334111413788215073618812577176106714274272171803043659865185455968471269145132222821917282378436965134072327181677246588131858453285111107993233166748565083367000713652606391863033025174608113615772651971825654525141731482653006811611432152613144880590824184436882728852435916191056445646081490957429077140986472656147531218589760735563614703867308071444200563300097928318432351947627548489162037770772169722866644599534382007807395643782008225571421060924856834270952966740268507014725518769669217631958137082028614237512919926759817108504118784960289534483771684260042760625124299273162918083241498461030514608648877584286688770500620452794153689533122682756411031664120189604563447453997111950193957905219813379028585116176848653034674860966759377940690608193219551474129315617625221633028174869407607679007932541445507928499827585486690159127116802903133938791058007749329387060839033774455559657809024994257379620991201761604822735415273209093748066880029821027671813801568063135248843421131577410570739710424664553043935299492358085136779596460807973840368635668218186538957662069502086248293117636809894144523880694341833050655629712958772327224259394345914976290041650484918808419236714466704534668092314939474423807089482892163799698226228788018970410690739656776060215847752510915878806550557901772888629794175741936719610749743299010037897303553782823124153164003992683645921454122259228206442817451108690851143388555047194880873249439525787869293865971808314943291659799146565612793749256464213177062784088952668612101810678458174723702072306315135715361889849066231514617995474708174106245916497100122526037502566560476931172533079047872628004181017282539804460062421738745753003931956035633776652840901675647987717759642015837652145709208652277991314109001710781550404304456204433091552483049504601350714228262293320187781884851773003187961648182476431053515460635075351026042575006272872640493216950127844253653650701603389373192426014217723301018264675391882252290582285441696602240572473732390076792382841823919563194983043042670052453633205087046929920436996343628263576777661554970302045146666056979638638367112795114872463020126862780349854266467240003690998369196718731663557635961961579073776736875037155437592251189377475782485419171724399409420789988479377167013072702112716797638313968955783112591854098810995667467035674647703780011432558266380109577786090702921434612744630767742618823212100533502662028609892170975919592384236550971287747697967698611240762363870198502026498672811344524057627124608784064408731420725680290532907615221366145680986861087450972567425381624621567276022792756409122176837550464122844094950112137288840674294434255797173436451174339002042041869630343747999249677811681595340682587834548579861205589003359330291723054470804389564732725153477250256654601002375042134269705046455491188701759494790979378596917221443905638749991939676612369182743116744106872454934616676612343438476212950005175025906462546625232786913053726606919318944784519008544387406846775049518888073591355700175500987250753093452550890865258558116162719455075650235581907871227718022069534141011250809569066383572357263246464399596645554296750869968290252966756140009396835565441933583901585630653340753276267413534655945291936679627209207046882555000832719586216025707801577705254518055545619379595541437693040652422273476956333423098507304409223478863291259784627578332658626237265366411508438252672228817230045620043937217939295437420751532057982954304574370415588253273259814402367255538495530645171356954676356915657763417423449802300522340082914005730008591170481464705265290295064328989492916588898254559056773344345758677264391145624595316577624421497637172487246983677418882484520086348112776484592583710228381503916827050768355306009870559746973689174805356530321904741446555852060102524836458049318709208540795745341028012025769645768091329696870107297327872447821512655957862781010995438763637747853949080367438440311621594182888819605280030263968657847256757776239081252336503432955431385954326807211938168848953769391816804069889207129370986017765992869420473318051031297503136734424233980753513745074681156990639803405993915373943579126141473879873554804379308982877491436568017697769924368729733908470425013562127923101827162226705688846900861900621111654532943664759374352299171465996225198220164850963836818181940110225881360999058976113927064146892452337607012852148173170936466865363635669879464894976251854172964124267057536983371860491119678463535404174904874518932351155793333486663023332019865297063958449987827116816032916852514794238275630123040808719980977259888044431938000734141694204607594196840102292470439351182299701376771597956739479058449968486209860294219693829927603357650044261351152803392486711300418345416503006497675351787759306840915149263958546799264011520683552020535973755748966174475028119339042529416139578755585270979647983791618883542584187833452910212419528866629605612560625018293492453019699007719152247589423228432873259552249605883850562449993253627662775269077295982688647864755602695689027355893464058918640137334421396345498753832987839996140155117004102733378043168684894659785516025158236558911281794592592382401585820692665791660057624643719588805010388110694524231783243067905810965871396562540372743078534596284037685101434221532482967026170829051749823449566332287834097078595433773742581349382331094411698141217477877580197240662744990848649491914140113138703181513584064356839538234027741404098215629422334696824734885104471213309525091931713090382348904868445729451766785082575413650853139394690408225797138372316250923540144051727762871915655698733408165763215335422699840259427205314246221119448406544116932132616404048477438832353399209765518859442887583984448719645446469422518774845680617636995898240293230260415413928633085698068877652695666578951523817124893888990625661960569857852056221850735338577000471047545441378452882802171237807947654181367809343073676701351136392937655850760394213036311433527673993043284139075578045834277343335824686885734842120918583515961752769602059901738836484006140232898245626376828009920030306472309840016535682786928322456562382217716204289661696170646092899677122326696483359323629601731047324420646215051095297456745613325316944354501791162515131953195822537822109476573792626777239503574785903906625197536942306436782582071776078220202079067202448124850507316290707676758587332237986504992522432741074822397607935811263196050282743943572068599923881700495405681772221790610484892858701150687274211448267941692495551370630557632787331813234725882987130218670654182939669444060253643522492317744274172920403070451146534783408375641545228635050765213478125682004241980293656994020090955803864027491377820194861774867903255736451972079761861077603484180242283305108925172596654927069804145487999806425767955142317244507539760589331690891590659457438855369997049388706412442205400103297858837594195232193313984238019211722236137689077030986514705961013255367447876257703696825914811946691059383671583555675722250928919665598377408590053820829071899218766701786859019899854508799604322820388797400485176857752269039073449502339215166471098344787641890667637375203744336199834035097244267781273357132817308622245533427092072999413924249161137973001363434186138657277253729368717720428138375443647670471190413935691241256943369444315094683525654456873461872359630530054153907700790840878119928571865791061932913332082526921068787810055714726007960628008633882793075851019918806682051181692985510062502580632126665879745978134663158523946143428010299844129347633657265141470438511693712753995127183445691037235794118073407921877196707186027990445587432018569091368761099025398076464616659283192266881937847868045839324309391792416895552966622739659138851248592567619570850270330919923244671378845653343597302708813432772845610334686159496302609945710948545482078180327595716402527550178150985777915974454405224543889050523928838075302253644230015213331445724376789214640890478912330071992971553334477265943571367150988680072013555458333387779326034411855009046352255513965249278165166867057604567980855828274895151141468908123166305164077817452041758738858546858919384739663801637155464289784712256218670793838293528335827906232407492155030106658338076432643724242023870491260985486389483069027022557100971385149268758890637741671495319229431090081241917879543614667545621790240866831642244701291272805608061611281074387784276924435766627096328682985383536576029315901442392308818045768505545316716272217602556751299933389316593814062904145391331065382081787492959449674983420542215907105204795138771385087224538039259625406430096000784225289214291118798864155469982144782359627834592966077938720175644398075857235320971958253859600929122396941842914970578997210770210126499687366899325596706621958602979987471691731735681570095142402880092301038352653190195490500478871982713597936803404942412554290641005604507547347996964992276195075812979782639452862195662459775129076916026059122706457457013990432521210955721586854259480345666581198052725649694942819047401325389235104297822304052904456942407852766849197074930022620613246085840071885921763550947729262492784279249641269462677127521200113510339623458956956736529642974955530916301768995073581514953780367356862373641316758808259283849441055856434323960104228647485192172719414756540279108929836677944619127062811079969363389852838068964455172956376159892887802594455533839170792189190343160745889710512237688435463957388122723403243995535820184962306050017231419268463629746803026823461261257963543260100101719761378570066008150850088385618130851374894150826387965620894760662308155665193332688695584603687710911784580023107960630633090626061962206856867741567857358110228387641982415365893273578808237356950093986429512547036918899940557924863232560990498457276460326636954387051438898918842189204500819396710938089925621892203708044762749711718496758210285425862940731838414844157697949343602663492946896799463961670756782921883535051383970981730975347272008681639514029609122503649815613286995585111841393560514907483108767454707417266162583548184847229763719422838127100958304707251152414596022678710870791116829614226790781326975538223171153260124072318164559753477487468225381597293114393545355822310530471154686249045322331669633533081737449052482840689472582491048193238568344869825282953557431704656279086767492806012726488746938389107281209356807063140978862450893748534322347944521436590946380624613452719938291722393863442149094147513639542128715585870609101975133605538156628753835680418696024599505658609588612076833934115058465575079453750145088554588591265864314699006144162293995645726727662422825643853373125966009841649163535569087514346852201630481494804285263569842131662234274294316993126398284448374470564973454265810536857153336304746138416166840308737345485891586182655531023963415300210277248306747442512424306520669542823275577026696841375458043703154501434883096398123935714371070140509986658146780736005903680329225541880901292193238079564561057834423197474640776374089172139345232762100984827647150929467850751268179860014943781113201311162665239833407261218205169373087618059959411032393073611651609996026525641431798646283485574130237277255315965366476271885660028126471239567953108708922558400733922995066721198593047430826405938461199295674468310396065736347111121443016639113855188331404824736625637603935889258180139480699820042404100387904846849657732513155613109377553011156594799286217557951015451530172400189429939634612702579810718196947848012280515078365284019081871378184809404205130393915068566719604982119761042272850812923849875790921334274070819234682692466308990657001555833276519070218867020493681718334652297997497724056946485060798216266418415662264454205725102655433269525527253565742730750880248021648313456479824404994374165546680391851481194530208321551230268832079647347001980138267993386495275579181480823758666788795530860870810940929666526474239852361399193571131376430978613435645551900298082257301407073758610793626418159358709227323979435446785615623459144485085918793142193904867021194943449427670320445826484056584001893897671906642959254446598947511101496378540656807100701588729087882277175908002122359755464618029429088285115687883502635934962368506969429005120421734532797960371294416175208461479078598962727197761882103359558997737498073408820069863373074541751585559658286131183636054963948282496092099423730463767075543810028394414474036572499717255209385995696990154191194436466582439403809203072317734950977198236319973278624772315002946928243254929088995450663773969364450015427150159372313495032957031284490010642214718321535464452681060102713035213854608155727083994423144911809273965048057343639427522767725309510903083152002331899973004968768410574240338513517220034597632824281335011538771914753208211961544099348517606933918626590612568433511992973089469007865391227806049610231519798622217380730863679128084225833835275779996038700455582996126890644740111102481238291649323553582932340852282717887069536964737214308280326940453959519537433547033400776317738180414113947557374468212122410060739506177590840652417520379402771892076615293849714457519786776891509083211460544013303368041176456077236721125403703241421667042682351701465203730195777871637483619027468850397621620264688011189385789346782809041016917191824843152319863675545967188098485430800606604383111922888667119090524273034393384730516974267179049950398910163208689077607268381620423051575494102817304021173784836250610582299361337251954432713822310888355910197578886345192782868291494594129687510025671973578904504691023786430138394109058477873322577097302403691619232214165423838913949370686142595651293511600070655273986255343548472899505085443171751949189286269624885784714149270072368994221021441897754471099109190022912400701402103546151192059381920127133676267924448113464435247132215665142832135761672389280056301151053773933051726120335650388816854240451525410531423139261929577072499606726385771169074290373112101409299574109784115444690440959855504121659727004613951734682038603537287186652491269490809371321573599577023970468220717474997035649269138938174571204164960833605712350349565576641856184588618690270632122867183997245114958239474597042222067548159127717505667758970868650060566376359099443853752413379229664889515575483964820855165576535605634911561565548598796238228447082700764244468602587741498092445916795915717340906063337830239545383710823026725181532730995782570707838757061390280352154796842389108374699524582146844620285674454275396530597255316149991244163888432906103206729976799037798568902621509222248050521370443300598646781511689793466640104332656294364700971574201824765558485154818756641614541241554867428447316492354226920039582171884351635211096741137287471596996195692481127024355645907617400127226640845990447686464883410207729378796211001239306772176151056642636031053375273300230704308046293875572647685244866567655582448712790075151227641950504498833064939682678606002277300578972489826649792986457470522522566951445083024573811924977274996349416031913860604081312074965655812924017027436207413585592696119504682939687069179265746163229427333011482780287519882337629166428710723839551032463778380736906224200977754821559118591875205030025895185192085561068918195934765723981810219626080499098294197234373922046961507817897024016106580684771557315232529366618925355615555744429411920397456349195529069703457106651158836950432809105379571295780901740972215015526939007879339052289934382487873748499993657859857212428600792358673283684151295370191645716755110412429648279928617113683927756246622989202758266264816454307348730779891156653051229697176345590763225847523429373539565303288731565503607104021596453657675979794334631589372299431737236168006463693602450020150641744761000273336977051359023736641005572520959821840226785375581806945582607649343862814788272508548634589986732959039532281343978371628683883981144074513112132082265483750017198541712562407639910452708891755907188713127664444535755042870617686711109509887527678250544083999927632162441298169928656860530016294855090642637173354810778512805631119293977971315136563740817284212556793372887286253053902587482466060973739242437287931894793771499018672761112517925347662744980552270858028271847028506752998389325301163496236776985462748331368506378432136391232028979093152011320692421929600981513813072150489455860811146244480171434017645455849108712896852338373606293385649161022312734693266823199170703133544968649394861763635637968111484123788398798570529678385021330983246383922303771817882867148174244240445325191839944669368800572749285874065200051943502573381456238392803924497194150294681746338325751802572638212582664085431838882553763011359425482171736105818456258267985096473540334943395297193568824737541080828884348546194932215936955567108351048393035105149273825719636743148077553186574109471452301338197756028350813798265512469895850972538480122116545707304890892903341176725257313195679012669970763337027867982823932554984294286590162123472987173562563904483828510158024227353823130209817821669869240501729423223703614820961421164175298622004863998464774273095505828399238698922497665233604610960991317310044399431844512544855368865923040480635033484610370980677184275730032215998358609511448909770190891985939198443048895083310268090355808138865266892452714187472055593241165369948415739282498177895742787203121545580046992694397225011003983491244265501340663921228509167902712700489671464312443236491654282091309681150695123287773788409863236014373816503829447842129776984404212436107791437865340694657741918668849707693790489359811311013098753247443237436154846847725859686541157121064684056336379588243113649483517155858904964338979538625044171638912380019435304167685166954959623225026039684069000017690747452864659607152941123325927623990840960810408667480082063094602851602598634564346819211533793424848962759631398902154100700926511837613640069570142718549179407085677242788443200006814940923230156893401432533237222629409372111928582714350504425146441661440092300084530553636977780263309278246547914864549036546696279064057049625818120191194567210199207082569210798202240088861995505926097995253143156679077544658505925130394763484563827388342005678839973909467539588103529187238469732663999289086150033354944316775459004959253384108001182763473676080659772064842652787957481487157619443155922621031928855250043008925757097124953470669482502160235818764693207687493574137641058739269701500517057045989206231302592504059233780787799096531669911568597026039296623102766301671769964397990493761544167957460470767984594613464439082445415019995336591787917353037518870541845867417337158472500278966619706390849549810111235617722973463616742152832224431820445418788518993878318782361905765394173798388580267524411844999126111839307122543381283099519895036061364186709187861043499617492307822462721527334815271637623345482333561672024584022479084084552393127583150039629794782819996176991846250655602488469481422602761171070635117705320114124110791820151653308752316384266581441017627540076932534278680776559136017059750373507939821576960458114042361925169640690297202018533431998045061670854080631140846966521024374954462413478537207960473839157209107800238046424761070537182021745347207578872627938150056447826044499927891755136478011449557683002123175882905953381922342471601152598855979164319148077376399948187367990436699479094052271164054454570606890721894218567338695946016629341294835602003241558979928977980047389318047030397184266025984860357729471590754603016728314626550740398889680788976259390484673796244071149020521403820510522051373308582402276595062194278121289536814420520222379224546688926388733573701270356460958165202661059425131029795760655731045968946775049446228361430972748068324289842773218236036629359156128003988536881127379101762940139020707788833447633247417102602938604440513150199032465229605108585355811108912719035864923337437505538940942957008333940670816040201598516652744838956419915816327667940969898187802520474598063468328430101549047046506187119380006400473015247351003952817337676178558378199130458052873827170524804107016430080776012472873514998748095884626011642182998719835971118695735904504933653138995988198337795815933300593797255475223171710578546163400207086128208738352287359054016834352124620300791786007010380139520757982792333164346470265795763760403370625034171585544726247814449884559484467103827152443312276538057032773570637351687870911836729546998779363703081627934200714471988610804559086513263843425714579699798449868148096592116840166262578474567530111711033151962909822392689260430321289538248093541833324591611150493104486868414518842288982044575622231673526622120693322896930067063145144993454808464493052880991283083714866041205917242148156249600783652015660766937269492007070281558398587594616688866479634870534423906200700735129895905097373640563522298431504606960136744326369313197640087496121580275147561844497545015741336619910072970468328989891324222833976896534157416143828937850701020630748046429700259802802308261935776352062416375618582378328902788929713116975061713752978944489284786307191649400041355587979117368981050473338496109350073600158723320356476357275594790712556347741625009188451953437606196456582645559159096428618207351885395433130405634634258066312519634344806201738647359883187855445237414865239642656844151325122901144228203873698319766430388986853060148538301774951136855364843516358345699069330277618376618426312468708200037219029703539947733500789457047962181976201670061118208178102216707058085844120931149160499506992341902792529129456728330669430460924677247829635827700430999258225789744673846252545384025754550252539341306141524230503397995714833099670298340157680542008965665543773202874653824302669334711582130647648515564415313026612491268399652517130976780095961567495386330475717898804993813744956647860091016699704230140099034257235244614182512214108686799398681398718402768820641589394594349764342618079970118592779150066810508751292258530250054634708909850922563679763587168902783520439583263107249590377629154569043808848025204081937034719527476108562959940358337156728038428174110751291738206943353878430598743040787062209327384708907183709126596013092657675916480812524094651350518345852847132053245979086452671089092105113702476560581885919263546010790167660096417260892504587513503125080431768395248482590432841942323337248535618684622406499466395973611074071501807620233939134482783249120048276345019088252381740161216236004515642292999776766867409236582608492550409097107108893068501873566688028483420286095594655236289817010723826698598891243922181204814622458639088215355027437151561012188705212109373112974091486979781065081476366239609774811599468451836662272429009846944384660235897694649690695370977929969698077909205135337927187019215938266153195405574349837633314123317368770805076293887099753277082494902211198816916034637535273516764898437655654074420270533292032624714932524597468535466483343406857434655578669479879643089201106182836539213998131804029504499047208053143716771126642108694954343372586328601937553855841614176849090473597973577697510633372596256585687973906291225213593891008486458559800078143920848472562598851649895041862404464390403516291750639739397888440682289620443779313331366454490536629333594082412288056505959225668469680777178899876227673759898714498968488221605617186964078102567391399559300866122548634840624192922726301274481675761564069658769605352386812346076740271266837498999602434411146727282034581414122823057302560750784119258070722848778882428102998450263525341843728408960650950880235440994619095561537916908444198164734414156355691157389976882746564764536056450590337656107015886958944552164761263245953465639422507300039099969969635446580719552861319041458884520603885719389138336874297494117028610006214708265510633741583250500768104053259159293381498852717345062180594320438314121499263451443034356248576514060231590617675500724681252591275804023562836870469195791792616103909585173476628474202778937702794766679863971553854326833248592993173464202086890497304436366498588293416768174300514398953461946086383310622610424929498831696788775884497188404503405908508152345577683004928796243831030831911555882712142327718937091997453043495540775723439688581480987459279176782390456061721708787734370080937313092534923111796058684286249793670694427130340335255459144257178881363250650285580874004580302652805403822278210879458337484687818398680961334990332449573928551227444425967084849019812988118470364865771708479765398624128504290055641407802895505914778044698302801367127921930969333878413386444299876616697706040484898861466413659794845984644831302694373253984603032011965939856815619554962944934860217324442730944458324293026176001518575614328444451935362936589357114758695717266100753961369536461664765130140846898136640981555814355986292969686143955270095762555134294161704566960779724581010415260649726517173453912994587135481307835548689175974861387048731793580622729512522755630611798739077680003725455794368569179019905801314349600507120622087028582535420942489063580735975376526941916098426715285852403788781280488002670037701904570478678663414433108856402375522072161454759833497598035867253695521706498549169228801222814726351995246508905198484924447271505180379053280429397581440789629526332276306273309365810507556117466613502012077581451479697228083335229802441609390394885741740382860197661204181120095878283490723813381060273975703004245912355352248292198885150312890159943601723856087154394663586957630743941384327803074599764154263319591311260243252854008411882597450146300248503677065686147870802005381560897938228691780308112460938176156779407216399652487543392608922881838171284263489923844472902529391723120606612485300162553925214304600451492046367599858631140383070617912170948364913154251505698539795635858016356030106169697185762403078788591251155416835249045438324641439678933282243199371219639721574034973686263027674045929933317047040218443429695312381148983199039002063681856728117543831298138887023747042363819835202559032981630817952202087406522518812039658393674001049076165129692888837041854047974419962905548245083603597869436106281006642501829112931739516598488973169042345609254652787562980527559350544949940162695391945780982851641796934705672294627593478425621300395842910636052476587761661161752085639733936065238120031201354721562604828606722644483100134761582580115642072640454760579593863744602621730131393377721006494318064506203988643876614958825897386600838463377662012215244957219627434100508189663871878873903923562820890789545315421398123353488412959463539915670244346835037278997420110356847480722976453901524504811511895692259028331518120782610705672384705203128894162332536779152760698203638735463411340152456727449647124936066019551105184841386271439822407361422250651980869050063729310667121219277710482255674079620742575523843223303383392458040087617266726907866738530930410517273618469178228514119500443537757571746759959086465811929964398489740988238759400050979847788829645761032479284461636225273396548227679572886674468803471005310972748824973156803418286262556334676989072469520027039888150534676762124805321495909834253359054373229637125444783863471702407823591332268376451098230091550734627666562774551663570291060761020797182324637564640990015373922912451019507541515095993645387689763246474575595020177361123414877407533186555826787257024925564483687073402208388213714869983923929912498980193191603107998264533769687843035584223708704663599049725975448896056298012889273732693898148897592079048520465895054675912643941676100948511297601067304405018704528031624396947445086589666011181385313738997846671853731779828109555389287576277799293124463679705517075180837610360789713475622740085123065175541317535121535835700387315755154063245167916694680737735871266750888882452116062317414661490803284622225270911904742531440482957683585425723528350889051554394466970787152903204397104956706102292738231699986529821529686801067669062977270814964069041028961762411364205460853169566535808032065516691212512614607594303901314885160607241274256810939370395500525838514585231144378927531500758350900414658867774504960354372605490733669495037901445609569993838336857397055794729262858017389464809677224504667723125425280877129235015041935203018374724962254370266973020516107923612987525538436219560971866582125760338069428841875347049039877139298384716363334106415354895391399115584424348446618275873335106578805896354591136708854808822350823368253193441188926581489310302758356084129463763264367938524555235038854862374697708515601379669808722716498117852950914744301396752555141292947667359574057380244384016157394497136466225603193604669528314421527455990543890357161478844356129138359861108454829853054669610778002482239372783365699999565205773860053672853262118484290894250266524064954329501714186211740838211358516328887764435749171870446038822331360744128534524929537100090846280396183009487154125059747118129233571933833650488139371275534414533873613089078140281448140373466444079685789993360832698420267427163597897660783143353115461144345617493138367424408184232964612623152974146738178345027771114325344177346705257756999637359283478230710751232711200425562185792631386418896901628340251920929263724981042203350352042186680731879962003950471965759164518229423193436354183644837380601734083046298957796034703662861472635209962673524984791200351521381493046771689539528531199255524953456497675415120459558830710206202876388640592560518372856732526192229548116087808233827099200840066343320553483153634538301025070008053502638488703821977316458681518794531866364295783911907419844844187549010776088699471888339890912471580277484189985329562967314157352793349326975022769040074036198958602222054952132655419884032928378603622303019312128734829827812517934552528883062379749958540526947186445091449220701766731336516816985555614226263461736466282875541728764040394123030213122060387677830749707082237100721020569212563315899914615051392742453191155401164946560332745625731001418722693144831772037411646483386235599535195202010524608529939769671397260062595426815577560281481118988259636814087701279653264609626010377510518320754954432316651320550386542399700445649142207989715083370953337201894041000118163271801971213512898628233315028677805417378385012090752586266382504719159155794699183487004688898792924866959655085520884348536036976371703754031406219808239282140220788081601338468803919508114756480029795859257491897923438666700035872335123376594717427479325901845892352428696176833441150303354691037235316090992685151787017725675957239579754918591608018702268981403416119892934442615557464823396316731404750541092174560606006293402654705540340691815995377525364369678589512232005766928982601216886122522519889221494743792465676487815803396833449986596168680284244996640273336757160315602809027495147189466271516410353215589252520030373211551087625014020670660838563235224137844378961319458760818858658950057051541568187851990180680845858163529309272758351711244711160785103031382062522102289796376864693929159522974607759176945989995865702533161106437246973198993492705166505463861911317672110647347132181274576420280883803426052118622522253608256188777174464335795770290041525604266537121940827653916127870602741548880096532549754813139345839156663344200884512351153237267510077795508979105052017672154159754431662787752713070399398835221644979588079762716338489207732707814372568683433644287719170361044602866799795316585312214105803727802388965009842528564391261475936537503666776430529523511597126469514382005397373781407353914113919197187388858317619014656816607222664468592920909511088506911406946818730490661834308490979988134641242481925482552398405841890221732847793837973346863945901881658823742242500362023478796006360038697229233866869319061792013737069908831141981516363796571275959530459069391604608727863798645066026346446767879935048758375818621530163949254976438356198118999667838204922511553311967871285731080016738913421549945603091670861523049295789983069834815733456874605475965088416288346604436949483424688922987566127376890147003473772662876251437464654361445097820704993589377391406341516557171555551316148087417411203275990186275293218177298279713174330866240958235713219112007365281441978996036711305182950257590379782481589122755702609530078859482067346529412267648100959225085636095297386451474657011391552737470436555573774711424499239744653013722739349053463437160542051063100180924315234148563462403435008569406640691354951651472873741403752861031242954549209255762041211495478507969696750778117802746729375816640274346075696387071233896262091688771921770554751588043362334118073511585939440252830679007294563975947718691459342941185751784945571630644095550050430084773791876893263269308866901399148335002127293586324955878283917358292850579623848618332928823484567275136940207358589908718518271687010598897649430445886699136954682481558624972356510086360915004811063719314275913772331990529040159696220741722429925382632122280791908488187170614830792997410134767112984495494392706644269530882008785968745109491685702365729884944694120542927185605475753441367098409984681160716694657228534473215162267524366043483099583632309036412671800307863633589649130599489071718408553970999929172225360804357935758993596610994179836897038235823289076928374469959018409892092607933879714831557436374722683157666708589429164428775893853871591148303184596773593206377286255042755655428465801661051923699443707280288269928625874151101774330056553137209256533490323425613661179396067895238452391086831787955893821627880478616712493638541599163969183356603549802780727754626089444804313026458476571522957297456836484898416061803592860234732507277576572637628809470966116530790415425416240896493202693391189966489295514110372028587407227217334163362140641978167575049880084218561755345718426568632291878469763810472138443583997394386451701022730796367213364998049052014053350587422495439149150893932426059265889675475392284917304777753460888171555969483823700792337947970138113208483024497056703511887894306937166635150995911375954958500528446083845230008907694451397328156628077895197307199311251257489139589452482989500944785371264078069823593346039083547156180202145657884862065534973771874872060733170068028706001312945244621943850711344661399179749885778116987273168742505805077128160356940232263508450648089144847451330741205491836384282423919054340002320648822987169287785343309663341325503189382253895514682900455073910659223369620179343992660666928119320934309951853409039259428090440407244694194680703378386354934802977081692409227340840200317682337668414115113878338689425036909618025473675362964474841911468613659344052558230912648122153552360304948544051381771296715430773741685383217113575062468757884393921285429727783676676263937413532630979144845903238927979337774903349684193874417875567649667166794521803787898173099171956469848691298191767187052334100052856292531751950834678022579062110700224255915223555491275979401722169212616535047119911516548255710702684827897525796173128883694568720562236242142182700945001771830792381572846054611021901703404649860723628562011511236373052219214707193841697875611764545131722369669030077560287061130366844286088343130398944344062161806417802722426357189216013790009932888753614345276282895304196003657071491075217022358361563278489714515933060478742964502819352696362179636154791951188175863863630061390110385539854932991843588960334108350608811811504255440005085808723142221054333788826541693245556195364737826199073654652835597291953834092932499990457954364114785633613152227805156495481409938949907022987068438209019053738809503243990820898218537449048670018433159659644612701279654819353157605753833900570635985494879351575403885571768048215582661339750366478131178189749182756441379150509587548420427590196306479551824260663403493000971226699032226728643221884591463151081747975046025937930413114425250848419764309012858168904737738021002592639899671758201342049307735107961322704626248920150319095925437736584408787729324385057260147235416626411931856006938474178089566405896995505259926561121796722947539903698114578352342333490760780688109297344485667581243225223383478133929919556433711276975613270591251293589290027061723899905952286998604567927584117508576647114963926675471079415200364163794426411930649022123137280767569107771758750543343870932396185999997054266687501829327183696552063298192623024093577181269619807268933480421929580987129202428096939411630600918581108451351543187077193358566686401507266961331003298606737929831398401604875810533509815955600016857924263907294998753223963557658180036743210541189833788921218254008391057131724827834081448726764190299612143524611493857874901971528530854163926902062063107034064000247323681478001736303082381288171264198754840429114582923141885336167649897405502847472807358952469991348619528526265720894328661309757646485975109042141487140816659425315026313205419060384095766138347477742528340407824247231766903568303125801704477142359956535700274341470727887208942707081314990850785251384546067040929221657370444828619425614192490922250701430032111822107684268495011568880129230837348879619360610010182668754487246668041989935152884710964831060972627871729992288287885516080219310591956269682482695134354428556035618249373388907999860490630748508535077664228511760850705047655168447387074991795197779039969544226812739368860615505083626272831429196641379631796179477216169314186906642537860375874951500018662247202565582549077610518347896135461564773188819774226308653049286846334492098763316451993821827775847539164997798366698513160897816081599506180534015616204404446590610314649527747168175594646684351518031445351549434457652590047881290024559512767595868999031925200327991326064017700128374621007983706680498353804117701679738373236549197667181582234241456493013680853160579670191274933962207701006979251830228564105009591974616162664699465740812652477006684708744823713465264691162341682783353277347536077865782695442179304330592769543931738003687509047237513190430603929681352283141790690835834435649426739981488910672270494943969916388155383435647813715912567737639724932208354083519387729177176238768296360390110014368389212383710078903024899206002875066235372492805133710616769895487410039741041122888990040725241909409231893607981821870954327641484812319069576560519771126890852822341729959220310128834084416772270773773204191904864322731964053351599347212969463036711499746701979315607531995582307830230657677918462831595428287359389409647918683726425111802378019405118269363599315715880063721652869481785369631369520109571903851674759498361274846481219522341599756794414535365937746085068666578803089159530045910594690323897273981349046260348566325774530938618040008119737798094503052356137557224013934981285589110810389918433368947254827701709610451734220861104421063012880275977262423868091408476920224646269517469985345420452960765738789500869049746674128780061033991403050050177067332957880161674496756038749843384413490615653188222154300412987108973149271567756964976020555431863924629206532165362282524305479820207553641191877958414907138851734860658340650329661015677064552890026633269207199835043500738438170788520294143729848616574606981008492823428864206884061362173197158385857024374826551450207891474769676978513859321141802177862808120846314486395994729617202838122213865469906770619741983243206565564885625775660735816232859465664474243122648559922841449708283068430410172416496895656746301048368919226056670951592803007533687382287541838267525585743804172509818702303463103236694199363529672160152181209554036420825955092232421952802982128227835242253120495302380654794759491454575863583145919130417574792220922972340404669869478315621726711435201621586691860879198600939895074362805908261058312892357401927188075145921497632926831222885443821978476765787862046529049428240304912986002027193195857195505869672688409360071249346661717782965804840889869357424783400050084733811430354699228042415374632353953004900755612390958447358205430273583200928189502575764438833457764471526488941454332516182813411750024485246480427356939147385898251918667064819250153725791201544755663398331264422340604470597936144081778704833842133351456839092941993031441091131391885520111959779779163069452633253261570932381522538888507460790336194547390073461762282812679917529066969634718463408954955593501079895316055373323847116399842478980180152322097813300685310672619710724482971904030279586578099903648360219153169143667262247519941349587786748280545190850427534365122811863506667265359144791982225524560254774118976581646310217763420045853731620892215284222768058849887197526090543494984914069744773052047894473302804150437467967485444805292857962200446975613586727263331050254643613490915518762653437815232869049019991611865757032775599767230777108390653648054221985718267610173727864120574834075007749232929650487249932358384903536974021478390758851188315929761130631238112947521959304884503629209187740676727307603203168196330093014640988175554038183442589516205485925452648201300748422173878960374793150043329556490785934997048844064032012199011189364537634102307355893895404481776740706193803027469245801508814083528689066252734355184266321140470518384549492536408926157773430176422992875943161293146112724150877167311810443931600166174889521849277026017235098543714941244713669751649130216616519936689305983260057782735038904284056638860016245561742393777611298460693163612164229096331746476320844322699719299303776125249722976222392512422445302167010958722821718876863976439954365025293898328607601018554080606032570577515890447380855090668546517327332854273619391740956712458559446741877593614077014529629022555982111844150357817195054640415720823741814225597734011503725522927104952918687333627930924741076447017516143808524927050391748974440866436368415990997010220385445606603518544368569237248981372087332980491702562688650003933053222549532536404189934834089743753980737239885406565307776155013870120313912600682702495963760879536108555621283213055888733259365788637359850320597383516150342749802907727915475272764092474579911133995439220015245912084304602197755236486424281699362345422501682135603736622069404193838616795660698889096246818327521353390566362106299633757485745152096675487416148275010390422685831928186490092556690504510673087305882233887014854217888226821299452796198075963139352022120602636985267496022892794812810452014626570837846487993503223493617926710845619009314343034273284826298789320271856161442828534475800847734585456976454494154890046540815319590417668462955711638172464902607669996094180274072880600214142877956779037167596839427405806513528552087252754146313847461511561348354414082811844442173184874151281255196217919941335192964736399026352603519419449674780244332370647986078488672428690156532611771192782531070945090423974803327014770987429086433334756769082649315434682168097886135359906074548667648380418628784029893765451188658773230360691912130479906140656988853274037718364496755050274961974942068689537175481376791928850798179883490569391585679402919442920103698231698095955477245157059903027682560133450068772523656569929143116800471729766972241530943879604433676498225964071735518899398387715241601092341744748192004419445711836102983297680706153512722970915292601261668326525438497977237643698880254229473641877841148978021179417817522425704549166407635537796608583134626820981049233979356813702963753594984502358624951990846621736940893037497730632069844523620055457795619991435125632916554766908917690424824617730020846813623466781776684557620835632313225087344592288455151144058916432055261778107668422290251512841567404531954970286891481742817518881085151091814982025760031871013489184943442253517783657105516447404875839325819358788400725677499467506340429586999744913618466267465988177027537782152652906418303597752762597833852513428446404725645658448815217537920198690858146848636617125657810578700733787555502471774009382552995576826147443375587718614135788833108122771901546221027444503385389304583061520886539293913593423309002108372578299835918379551877621073242797488365743530605927340563604089456688203471643776344619569361571595719436637806760172450226903166782847153392989420396838830253510144399512250587583718148599353025326230017170275413363947886684171784327396237460928384205495380098547554836580687820908037122886768898993295389932630224703913991219957428000082195836362476198664210540183158360658812855862714040674911490691756857851428974704266147572584778664737567592486815971753893258176395374328506131701257112832647341506887341111388300483569746007836512151386506856262525487596747558979557839284282598747438553294946787252938451421690817063922046624751126237317669538732405133222153688168327365663732535987561910081887696221138489483774027368817546226748899265009640237471292007249149627077660529757850722103416192547774499590332853307162756023295924319014683224375092470277799307491344166372264133209357383714448907320630105169654008404979738539431420630487592741079797832934766458544452370910307992927052270277235577400482105564534633429368589901327732569866866862165103779005975263158631111270230017963754812804206466629284619622924194496093122476576738546768420778138069282118981612926729982956820812156531747584807216825584519715968625434834851888019247192877441191300556143932035563915933348886039809737795209289155892382964596955014241295763128819322740705419458779187040976559269838412309150389278446279135725623888185732261214220042343968681724298928889588645471091702322926500340694000931166270490519066654910600952164282053057022407541104086639855193639556963005337452275638659017457601183585085994001630596666435735614754104431163655808571370456600553967483440616464726241722967956810638951760501279029686399517723585677683268401253168731168824075018437194253478675393783965903342405139947562393241614892767416997807265855030143312654070959892140946911531399085976548359329249432341695789742653785990710203093619632599967897109055397246153182575120350738409384725005827947862410986589728400028779182425932954530654749496945738553560639742878934948337059346250054486255730808163461448611880136401721674635878876386914240464152585758131270998876706945620142547798599296472567465613608990544536159462274310684629117779320011088410474256790483322333226744390005762484372963453368034939382711291131544988532269111917494165534620492996461271967517675667142749807301054693087980443595587174181636401797425072305961514713780000942281211216783999896154521901164642386383993756913232297125645038202654082456252603599830029717354106679665082858284504981329861692449384583431945320190587382933954008966797118745860340159090964611927191654288802201423454212937647773912200823033083705906346992165115695354334865986786659807100299608608603114041448522395743289673185633991775395909693978110127996519978203163671782334124067014600192731500445878745078931238170270186782277588228963928243514038760047422065286496360700778242989871555577709980363853252828077855304254528736622663016942757253738206088631333381711449758007176010314933850041311022209955423267222920360157610014209367143766937866906657273354645311502430319651513882640203380382436094075439946286744273047295202304749672362806043571955947816897257401011938846393646753266429257367818226269024651084372228972821701028450599094969080436881728620007135242305033972448680446046748700745796671491507149622106838616501069371230041651041874575134566544273626251347808454985119166271067754865102093492582994793124268466270078852463636636225017958752818744392304969570589401713544828459347729552980655907580625711170869788852175085100139440775968063072708442284508004048741974096760404253313815037629846235720112312682153934204849561266665219982032489167648273733828612257377994978595191639096025047257624419696828681855481077394761963956961123495906373017047485217285364406949357495825545666531873749927310610946580188525649259530673305935373763363206875048957109279070398761119467445403823110976331642144533302461991280515594267479861611489448242780335647072023838598401906428348626637217890444133259329560162124348718939316468764190266239023596582174589265673287411343696937667752207286586084141833428127993348075916516724041295535874369358730237539026117112809734633924713975858367305316926745083817120849422756766298963697980810989706188072546912290836938711525365961706387400858254110873084021364772427203246049908400640090517229324288497449130704154486342001196115947818963304921891102068121599552826380580830457332622315734201762202803727333315561594271083036981149073289776793138754952144982829627014656863968594973115529454281229552280598957047555948475454763824954522876834866999561688944637819392826136075224101862293267055026855565075301675930081876938090260006226776399487295508276503928178182952203776962186789715335480260672578449428813310733760197762969796575714396337782841688439517048454926094569508766246469100196806932248413271338859569499328291133119917990852063773276427267947244552437629132982208772346387976756274995887435310881733976449884061236211920731478673146253879106362137329651030910450177483444592089522464984811370794598327547851931285678054904897286330590221331097265706190797675362402945897463366186371417400090566932615891417492372755054528061745585421548534814387287901073027518593209517702858408267002987865174550555530386196248333094802760794078674910931359269796524190976528987107453616312402155271957899842524068589232711891508916818186688387724053094288604634041098081131305646737765785141844322697889954358451231940255265953860693313725169461082626973882222482212215419001504554290946628449550129332109616019161667080670959737468815180927453911705963933998981506382052213138829329136171274563114664730728891651271428454607845215297213468491035777469449072742641831728421873430865672853421768631794507484874151606210441623224645309667513544657059907865223579588805982734730088686684592013353526313549251866822140916822190090466087474064709742924464208356499395359778966353164169536846891732203388764149622186895047515976870895998458041949670970132994834186524206794447011849918648254840197295741588490831163606875566657817256375555368669858219822057630639073099745835259900753266618063269293757329721478235755419049673951078684503173632556199545130251192732345355510070599473344589414373181859421208172666412146032079983217162815370509076752938838071882983141980319778876433027885101188305648976720875179374736097445193120365750348546225649217133029861471780500256309081752767295238501922189762165293010733152766774942267198705115960694286724911953406595983715314606888140370997358077726111455445827370606722986169870290785399398302319878134044099613686777672932686535255995660670460220630231907982809260297066887893443272335556270613896593974848363608824425644767738973300747080181083735436538104380308185257820033661267827263741459864856688554724064829047788346750117042455099038497453533047105857981145371912149864958031844513065027133868024500863311842564166393234940307269562057539905253627099442622660403102450288349459299891003988533938071804161384005632284965074766788961580399248730442561248439361410628964032850634845658680702421652666734950624116215052005355751398938267847267238402714359716102164336920837582990226846359685706150596958412596293149612288125892348605734221475580988103812405093909251132390431875034840281093499247212976595306224987830795344290373561084842409929895894160481012696643422844193496517668816852482088198232513281927879481106672571195793697091630983372534277645881655004187164841680984682068388170831289087893237848981956449230373313898547650627579408502113047239138957412335053971666152807248019978175119348818632847424021304496313975355066411916696047272954045936628027782779851515184146850625883210825803866370352725093823934887770559560204657189713971131747483483165616381386563972133681933862586372672564863527645723571798446062497122593575551691546974180725307682915461063770839527268489105565140154726502902661059325705446538771912348245586746468900632919299720669366804899611710405736319347239605523226658007492877778987762600928050688342325211283358401882724239620904497332327806921063305542062689736478699849662219927664136651862088637193178031916455492049450717032259674564103760705852367472164511826123551591982435709016887405616335649489199103249237720472478857787569084231636318808902833694482437265618852181196010031792081304013982487331886494931666574225781771133291255997042745785991377796214651868518620148348138092499241665880926763663997956645221145952460767274230756166158141968117228533678667341775689385088170088526242000698251613267731802602550583846354230022969144558965025123362832729377735875396667810505578386570296960194397582612784282172967354299711947607186786458603244441391366723919912938390114403232024825864229439624403821694519304555161500786579744866694997275068587872749506237144751207333934949961610871190080704523737548446005564656814268657696637140714754458763959143473700988249512570634966958636455826173661100120469604134117103818900208115394946462096562745633428334659916883271155743639360019533708261907959928661509915394122206537694195415016820662886920043138536200280790357621040059850476421732391249506127331383230771763606290513806792703571833075650858519809097607187284926141568018831686238551390035298534465507338181609458104616583097967274883064884216996483137609528756462324744551583976919578167633544327572979087098871342697530001916724646937973561265807922480779286741540931969238488804273638418290674043109649092093008721770269004270424208058981114353512128862540252403098500948819213111475879225551162398448813230981700272888678849485676835358064601819525323922446371780175084552231331508932436526121388077249246844933394682287796526297449023824997290456716353186821088390489775717691738414937248579534103924263320116259002571460943439322962936646209552545525203955400297720744120046710540433575374881047108433785101175028397402192805017031066215921304974124056513205640964795844770260022334189988046401701663434368184785873362414992883824568680924348094064699254157942538545140861409046479049576735927403139984660247232119985116709520091920449377016081545977825243572735871370163679691550305503924243205602752809192260288282374356280024478664118808638212614080730265494736145260485705944801372853170182821590293546645942639147484543376940919947477175047221772451371748407687431657905014980646348744697719192375376229352634370319194487618035035933791919014292300510496472876775040443131622271687737686560820917792321077023700401589634317433308458529489207638536994314477619759042434682381388675737848980942708864789952936174583506214280274705241380614838828818992666331488669093050983828962791135749532628666093910915099949244144581645736346792421013466872782714745707952110803946221113954934183806456929337625547061557993446215409136657872201081715363589015969271032509831682856827760702531048052986500673970556734044671372843075707408787187834199237619369101497046738199316295100920035738435304158041112643416954673069116027293654741950331303111562193896895837071082575031717100464560199725531095719430049320057823859851006991857971005026455918460445686835693324824601809032059231483965227221859466108089217272720289834283078256839477793682651525720447199779760244367280795551123942258322519254060912978782843506356890132175083724445263863148327168575183973794518528200823829693675032320675753888002694009101405510385373582169377892536224795540496971625588234746617408516786384410910038638193709229792105159506780049276189234805034761290552608869613719250943566345420696780292855214369191075052582184287342217780141691581892107745002320437662083591267805578848728185135137084688591553504325722138278149779828987116733075108534970069610373377955290108575229085476472547730557767766543123427971203717780876319898938532582270830356556987480743555774513131319828824196387470288069855310917291984931516819769770931035496322665716612914871312034558283481753798772573065034831294669749941865839314478429157193770061458339621689064253266680243611663880757835827787113968627918875664587107113402518982304035122127745135915792114456517850278038550719842740037313526394421683873152595490386709580864256249874282276906423887168130166366884597976297927091706322677667972242404788959603003629259043554634937641215937507983293358336216576412222330837953649263762054470029086688876134866303076135047732238013190023337942624970046267141105191853318658724096100565589535436692960592241521080272491001903218682476286688178720309814633784704251559164017911914065551717318774765342602091234523739623947735150362724826506226665832321370050501967009818686147215537911188039571399655207281035785144497242424308189341855585522389707941550853082853907232464853024856740812644534830148590796641245659010752642367987745039963242558754970758968370753420910100355585964390656055377923726300990010106091749314393302484688955948842219889833292660527792197348348740284520113428956439613496839590380619486210257766188059566172425770268992896880401676514286320889601406663347263253522150725798399645447291381718090679962811621840384778562710512119080072755818605018032106175985729631008695856050812694231482240908139365762452868077087750549329108794726376946428933783954100451087730927880976439242079110683612136289525540464464074791817912322543276867624493069197817695940841703200643738130207694914007165762528368800910020831913380524652660374839236970534934638898631769903796462715416539685287235129271301842757417392868690635168020982227270880735493810929696516048346503786185921739567274663543117518245221500322904488814683581586323158201935870378637287321366652894054391918207242131898831923545766571480760684513291580646415967109462779728419933324827491644729640779572384066324885336376549566029111432459113852432446553833837864142775302769168696693312821236317422959242942546793834332952907619733285881088107921227631854799051195275075088418439517099889638901228330269154300530060002339058150797904186828646351013201701715378838214342174236179122090414595092991307039766141245411449811960586497501787918184704751150308703972234917887047065534190585696903589048468742561492009627811709872955200412660479860068301536575064672298578954173101558824827305377412256004569808538499165892030936906681118074814980352484734328418300784781932014226452021177992128162225656150681615373974290306929995933867431705044644945089030836572856296218714560787143811706441729782057882159440965677012544518043393040007864496544732364188006381143405278641670912141555452296171516107675610025063895779915968347331217949260359171975126983493973046439127854711556470338006437357994854530837089197854228850642928579517520960533890634987542473291395707073524101579723320521093279690642280829799827799626597990093004746053491492095584608942557624996429619432599523270775130313243519851144946177773193233494083340827021793196611657822558052698905179570111195776351201859489236624717700807231264668294272250284108601425927616874450308347169315930055085982729570846248595174477766876531413432055146726473351288716547614475456235068553555362899073698170579538806958829017390434690948185328728043200934334354545500440701392932774295062128968573003665243507987527261018101648015797564202341773940079195456468151408337415934553933087669973409032960287453155455904062912899341878239230038952236651373646690849459812174295333738015371827571267132390408006828008757794445876460999159606842592161569056383895393883993823462284725176978574452654191648235323613855196551100536186400901961813177665924705297680241966456702514861204769300355291014009624147554584934705489228263888102080988850021906649277869713485254303146663402272996209292260442667336412383364183555130987776780731369153921980443957819455351894598360560463489967759885051540050661139167440244659852793750663170934816855873720639580333622486411144271053755054430422871041657343678871272935762781176681950343898767227311954701491637580614193941538837859028581540334712234387058890565810012800905166095976026306552319396564437581210502596691600125206390681902169348527837713889175147610818699240262091150465237837256254504448674527389815329932425666829112012516188825348425055755572640237460870367270323917826479120595450640685213210250274096612338283122891629718433328621450301139087934582055373394935666207562734394982153374819404569305803006640096015792907979101270101664852054952210775475506760925564285909874425032501832547179759647564431754878943823080857616720519955476119806568875163146304841384318970039816366195621196723362468326585145802006340053288058403095518304994646951495117695674170511594329337888756586916230809595537381131288746643395666519326571080400019947710297301289505038868839140971842411409556052705617828283886881117164122016901456667283836325685265237357808998439089288992254792901460212457425443814147202518806810008381591669766888027878335391159982790504185250305288825837708097844826818831705214416979157926069063732655116851362100298872491262823407374948649084338670811232480695919921572969106359644651992032441756569908496146105491876106592363193665101417221671609894235634405178887820236966705241147147547087715516790597326212719938504194550979814721190188275275417431760197572950183718306998569231483443765923590217997880358183244768762450509634492252325316920155504297435597741800901067708299788609247862364997293676128256755666294661149879219432346942661202167501920785797783734312629641484474865337120056815930142977747970656904914548122213101544493858605029434385788189770489041410977253093747690495252073229674662390636251481319827223546464517516526915980053265943767699659401296582492155469959382609522378018254114210754843180340725397850411522919005584392784006708496972827469713228694458773424001619893458327875823075072231459230817972855046331677488857935350802989137686907885178746292018786510303858534024739076225336595047813835709304710919537819548568501277907608622363626336355949220399785440837612685066368854806755920874423952129663201712292919337608947330999768174036996503133778046494060748291960720624564366723852040455918665142690903872430202396384276338176011538239987526322956814886003738501516526455559712204603537603717780435747547824103572899970897552066087633031532880583224450413006333912667927668465525894155190139302171304336932302369479207856521206845656238825698136597291735179168319657174759210884338630079755155194050428893680713293286389529632935620333358628349430500782074497932838981834830887680359495108340163127520748375067933385099809392460401382093655231112310859246148927479855661576847202361718573824052970175763349796127426427892117830318126521435044923433315816474281165930582477733770645523705695784040990878968592980854767326937936710310013734484309133421010565156713683854168326731924342174506340461957540174906626250352216654061808828398869712857220168268401032836975162751580508122422652616696625556682811070817178575523805141610803180269219380212043538141687196293814324315832767161103665452303508515305219414058997668788121110063194787321998690637955004150397241024912186430143831666719673581720715844438483221860721822399686478777169187399312047875938978105175973785803536606938828199772898800142940805015200085748244390943213801064524181868331904608573955541894218056870504762253596692410621622873780397448922624201141581834648382486115873624197170529108500453578867901844090850294071003775597958992247118212485913865426055654919071350219850997021783432958938317652412802595726278431008442610628170995774654998906218379229437994806895111955448263263149517690315695627860892918321738387814951829564084762870853607710108267371946331084750902776975265853947406841537253802141485230348259112498590938084950562073711203575778383244699679726962011859292436312285381549005834269167087937994713492971202629175370507834490802426640351035266740936353901438045636330905167695309267416849688505247890285886169277684338025134137484508649995977261096170985680939244244497551580648407329601885607471904094709589486675922258636653290607449445091423709382218489745154585287277977790290872797329641188302951971512031125057692457953783385353946439269749891425373784873710743455811271016106390570155380863171423998419608307266395054942867760797412841862472683802293232501370577128023604433484042475850504827832041404855033604357012671683381075427114835808078261060520306164192890316199084953935078795644732158377361214971276966764682035721533502773250313772739533143810811493256698113206628938558486512194207141940767148759392437214334907441499144396103961481259367941171905528930953629598126848638430657165172847825457854525231206227592980151829318646333633415465597197239792161341494301097376862605041492370719166470870477233630392863141385686156526801170769641333853734826139954227892738890537369923412487499670528405675145687496598466751782568484359699885490186871653571047471895393647484171820994270945812129270435024825464210398553815821323050388204870100535875428961323495962587317296608726450756615952269750925187879357570256646296568201726281914159467546387461315009600039695895215031105153616638613364339433998263705261912329907533848778225461248947286596913912578482306848762569938361668680453348956870083799764732148746125592015551223114962303002865611608846797611610575032618229165345696731421419885322100496794736689479315283590820725144584327004192097486981340078367564729209566729630002752094691492909564864748388929392621300660563298011220890231788576593561852732988983993482308938628767905543137104295673447333509312242134450774666566729675816314604146858116452109610045203799235693695300357165313335854915687867905530514963547033444607783556751890879335847120261523838984158976073672241582025613809839425008853105179743661425400717659644246720314948296219447128463325100304313777922708869196231219182465644088280201577044165554007753850808236646349758843481856857133905710028177197409872442556838470874940778742616595667791462616864101198119638948560185710693694032293003347240323973027317665849404054898354632121588888039664653460493047505236162743148765398815804808931652456380422677847342703755469996786639377139988045834032848793968680725816854451632941110255486481788690720204896265638999536747879666797696782721877955494700675220097628444616263726517472555741004850856395528122855034291654830160170009223033937080994455360891616020413292098510375472076513242458803299623967734083429910510876471022036858926626313665968505905430425198365569809246758782995013555857203549775921935641473166028696242933893582552170978570419632383015657463343551580527044162150215625584052292448124751961689562750568168415206568531259222395728230123781724293431788471425622243119831451413097349916127773414893257009650522650369990480855287727779335220806753602805120650644654401553660790163155347754534353400393672155243279624011593411817445542398610152955454671337023189446237906345384116480648701535668873316512818015868505337849666326637458022328283326922520823217118657012880140295900162036539635096501476425377752980238874985215045150150047933310708259487559702528727239748067209917587869749361009860611514466489088215493796082912810519031728403509135815293334958199089691799125818936053514375191484510453162879599003698736179035340938729990423012588456398773890509931644727667341015486629405401230853883128488638729549739155715956180761218965826294727857754303377053443116223431324144084101608614508430494949200805861585497100735372729490827838516287173838872079377539078001569930778798509253199392619857364552458372853080191344810358124992558960893937575548431014576296192566873503799926246090505310908579807449325886360465969161506463142130229737940888243505287781869302689004493554924533701768048564656475408429854918159930858802469206478209705372628387190645636169613904731094731954646820345086904936117485265298816953791923329563208647074595702926319587625820424615845038272238912609067886628091816501526393755088397604028968644053183600090353968172879874834874717343128703657856920217893408743906316904502185196262201101198862727088319492239449728853088045912563210274284767945165849198085271930254761335362141189375849078441716833474773372461585082397950868276326900191668048109882625339966298226120681946389362364074117386899532444412531107902912992961282808142700147737093740703885491603567128678611354472147855535338450972165597829122141723967630491419287293757892028334183139651354583683399135781023759075243032844094971769927658966886571241798198756798069065658178916378379465523326923205180390396811446448178809585169676673762235540014207478138024363834309011126389305655350782541799280788623256717507009725301475004936873753616427743811335984170557432154414128934212178348147344596477688272641947315471589683139822030646098388559454467169468236881761545133081017310917530746836524289676593544929581337121257943025640554541525532147218286887934167536739737308792021613788407587783982124357948407380920419545605196927258867768363504641324934658235074924493921360532371079487044330355111971813722372086435975806772235098694249509922580730746450901469505985014330109481741887417017664141647296892009557602941147916799590284608969542497279850093473782535940436581906892233760361009212252179030668113555772976626889442764427550888294603732479238148123086520621619423733390727514381812087266313924000237391819295848612115087539995761346677983939684585018664732681016802783939644168857941928059938803337892876457983404419693358240112877134195695076823250858173424075690563937873776626851472620431710400346841377383672995007701533701533680601163267416385629098408226616415567824680194211535622112679334497846460132235059579090082185824330543157310629479142602863476073209232862788240706338682243246319824392392959752761366185434195848858345705400098807626082450382858657212106231145121386243306632463497313237063213639744098106224432239468669716683390059710903449577157108036157483810794805968622488094670570586797832899325358775919093446341336779191925900913912153661000066760038086160072462855084397022878351691011135626199595506462588947573060984549188051702709042811842980215748915293723930480667848863518911694909800931337164688147134380519107004937274636665769300248779107506614483260496916361613698739471979648331638442326109010553862829441622832770769599421552352232647529138914176861182472291309530660372128481517185126257858661465498691772846469688215358048630182477760449510880291061267616791229863118697024749856077457646475878830735460157632229165469508418112375103607307488141241736870377287393862619357213407266252953092089626939668094732722215466700654906365945115328190045958028569378997810406715254592326924079622761943290462540852664216792138483070432601532230207954899941009786688137605237517313439373854262138805623989280278641491292164335219274105616224481794943993671239171090393241686246490879696368592390779817201542680344704784178150238410327777568017647221822822653242502972928179089295938033592813870154432369621646189947580681875745873082694477065281429355307063913770227094744116324997754371849260341918014181845832451897220194674112064306911621369583610050409670913364207777843463473627645453886345499149120622958773225053923607424810637780472854924732293918391399752728809246791750933527584978130001684649488275523184199730079164316000055698197243810294613062501593956030500033682885069988502480919860756761011876520644537247721107316935008081504586910174640700416032476159180715035904575800420830461158152762156187096471039192355918026543796848122425612221613588777801142631515807811575522286414244253390154728373880370153288427545140101667920077079087391923495741664253582760137660065589542725511756463649174742550264472537954492758151533672261867967508619364540806745950614529145715703070487350353269908245882687065463024436906710631037376182885457703702293386306695629947397810454396638526932641848030617380017151075249371979872901221628316865507143812976777317435208634205786581478287471296151983223820690656345888328634792116228164275210416532412869271451916347745752070434033034530866050804163969802594557434425229784639577786257509482055037875644261631265430475084241023580270655831423412608838846236346624540277977045591256693243033811259842099452250221372675108368991912642532608476271099655889833353264253286192332921967331948462467363701975383672104449054688035019914870978778156816444784168137108905656829006014790167800070644301812797235051351225037844434682173814559426795254951618191054739848200656001002601291686966645216270076561594883735085102222756562759344130152227156520816621697233022798663528180704628788955119082596405749697259510770296157177561488330493049810652786719647580318278756982166965310082087978627068829954690544350970330604442898345619608197188923071049650223778099395817756578886737872055162556418866217880086828201254565269746583767376806447960053043661604552174151687235365586170252382178000224369386070369437079023152198632991112903482981402634803350420028126598522216344368661302159152511519067277886348221457741270345729908292139356260111251946412238214658299989673325841990550224213845591442889107170006026527986272772437305299642128284702261504422653043866216717092061382554758471326728713473432133203742684511006550681723087184277750298556320080925956766454745055635631648575182692774774137794336614620508646635556683763480452037709902620615880279370719046002580605869663912533779521809420167416561147348787147273073362254728245073742807587292580128565555756236115750961662823541937681917201066330668981926051610513644474844396593849927165025853155463704233222092672435483907834677143791306400310916234174681291680555403145192996335805586639040312296912289970076108151611227074018407414051495198005467166394753740289171530411031619317411024631523956596505156491345873680957051044920196311300281379331965281646402096462860280324050094277107525933440597468502167541086897038623854987872636284728050182935153588857786542454421724505022905201090984899020938128380990400035394041157017597416344083675849956745800996762834863066772681700735554337686267783719953582686433813811876698032898152879394879543884850812676545763307701662743753791275516476855518055233303433846662940774225788646882313806756538916895612477584151737491111837762452542765820641038140791264735749573786346446047561999578010756607103051513876318200710715836556972313759769190196747865994664153296359343501308369117963426710515714598630842268296041065273991067136991564600244100967447919498686164202767584036132298480488528845710917047545687248280513946843321328457024240734524698234699786502294584387144809830199254314825146035045382124224466056417629873779129684133897040419542272988367978829462827806968433069247466018682433845947908402246123702632167726203998580426567924631944692054329979842951496993231805854697427725169017507537868339708780016794661595685179925382543854205027078106244632775619943611118688980946475082242106178644683253267938747538835014347184949677453840693129988142294454320055623339850445977563301518318320394843852591332147567621864931099053748329320297699599339781293596610338999466860110090069061545319801907839987526378037881875835206775094923388124579045534179753462903278037115899704935868597013222199106264948925421445593605688998465559781836682468852477986128072630928426443175087952378625550553360156281957203583510185545736412579698141929577274457815597234591795637509343397337893435805028054912329348882802689531076484468597975001403336310633781635183946764331561396991242835193476654920016398727806907212836536668819040853798538121312821905307367608059129273174411287550572914266645513899963615882830365952197069963653467180449634381880441049097665261040156457222674325223446191083441002596434244823627878408439206629159055304710769030885988499868831111694109354366299459963911157572247279418327924068358737071054766996978990550411273720112672484026660882453520943667438118356273026912123675317580795832241334178300561471921504585277976781299370452474295138587708086987537499826394610559270083203079407941543785783003363336495332137111588339765187419565742117837092780159274272131068114195066236162700258426759268854477874894898093607987692774401835042969659223486566389191231831320749191805487842016764943758526295431985374246580215701921235176737942869775843700130201973069620697344724928134533111859254423957939385543843317270270473064805428004948292226552183952139887759196412534085856212152032404213780371394213393109385282398269210158031460842568211768503069936277701494826249258176896628645757913556010279893632384940096530533297942942592636510915863286921082327434782450629393618769661332270772548955542886111675779917477287091681369281999789408748225682104899498676727960452469871434244648648183425913819353534323256885551689950098221886058441226458484310156929939470665352359962819493254599190995898401081904096981710899145348154280175697053705602934971485269084087531301886330933521955711592695083269115866943118154535089301685427379192236933293307871830232259146634898157616259004235162243201014973708443355470347825246313345241930372609070503464395906168183829524253498137483590292124597775218291159859500003778272603645860541606513223386691265472369002443264414184592101053609886607173934539747773058473482146180404166792958397523859281597836889289845402002693643221085905494643239141964016726269113359390885588117876426053322621244025467583124803013789806599366462854596147338731858732635491746422288985809399825924054647440778615256578231128575240860299571991352914511987444393166921404881091324766971418553161214036114361614401260259043267384534675732108643896268486779390282611224255072337129546644495983039813671930424875661474413950420735664069126324534841887408847817876530169662925423220962185300203931408914750007494791572753141697219162601782331976492305764955528318602424366615117787002834383260653686569119932012321278533578485506572556192741711932519351571557090210192027125839756558168997734970053797915009388458364789980437271817992372373957815052794202329306330962459314301908505642019480238111579425342146204102105943316432708706697949061326413437552417767044782261298908485378499249425921037293877900776326475301528671486302831571995769809885651351289190225923107606596902240887218927952174351063920190917087314760493690385281641568772692832558765612990234429397012068990286005720741599101120398172018971525277981198180449683051772310865254262098422975615322835260393225397693140555031204357582866096592461568844613452441001509732698480614175701188630695376512242515048419902921626948848703198491552967505816799868438646133917273840971245360518306302414232138166406288889933762089225000654665197819616624437852464417825697721160379105965911514449762997722025297338732615876302803074455216927982514900641062183127731142430778449286916231059340528188608891360418802796897914892571028903490698414945993677584892207618551587893038287691679748278537260419012766709368802376104167163220271524338337417063916014793785793082012425432487734998282653710813710829716904051103248990680906054269770922924086797284984723600240827918250038910948905069602555794695463870822500854264673440541156512150188127806659848343727956139329841424142125664992351955961000731200178548454594002376657041245352475267392368781497702087467262356350201338885738101914038928742979417155054095271114943232786068084877432540962478446925362036098488457041346456709564517079671469390676709707336581559394273521006826820768375482796978502563213728226892473543086567934348950977286368725761993138097053605739658553970463101456379944322177528096182175654499537465736787725974186395086666555659432586333450708873181185349278136725405893816979619622785583295761859214815919301502733566543587358773107017325263375820345403294302836022272181580090263008345363433387720215191922300699856121234076409734074639398602797956244575507153472468117214137504955398289821998036529267501081431375334618791648541842879558926539133062860837191339182226123435804462656249097419669818834813673489412726825140203509857776953949014991122379856372537443073054060153287537252584000294164564114695389050973945663565888891216615920962756857053998326111977022357141480317985582579398524308282140475647925584643913934762155803376262083716282133118389555865696646037087316690486022604812654166397513015458386218436206497553397367137703793456093156838862035881543748929761445158449150911426279129163283908563329365623131968798081521016452115098820164692604394881516189645632361603595255475760280823524006935099412039168635238632051351693116421438675729544777363258748379513753815608531340477231953184374378868256395318442849378644830723404693802560410731148251822170075872578243296849541731019498849307813931669502392199798548298287849880091440336568687510770171897708344794470694158372123746442643718622904344814944266560472200344986871115339271799746309784974604711993700584965979771564578516278366262663395213761799365075025039570447892740630191125666764521999658895552208274535357640035614167291573361586324771115026840735227849181004944102148374882118065105511721683728973442361260029570011834019556710941664434552099332560239807672685466207844080676669224368007683010209436289443577110796997670550335733479442882104749936847098794713108187808211100359999933816350290200898342982467169960586689726307795688736766960597174226054078434630888552573169298456407274400700772098680638774832887387140277931800739920610310289288451706485914239438901845398803659754281487745855417466087161088943623448280146198917607603999197647279006445843538837456639782543718661686998559551711847339741375295078815113147034757678527289086528801194222818005514890568270183116747759337923628525767603228917515310853925155520863196075614772210196924357539522334582283882051294413897909774759392378932079667022496719007005975197802552619570213168475541712359697306678545647010619195233290731628706508581059293799513015173873877382227391335987775040613868903920454265361632444631429884060313053505182839621616924926578451502264690492140366704030191976607754091140447121726975986009207977028709048051697996413767634579106598371982011199253611191706864460243631640232165444348437519981465681889923112220559492190532448328557541927452083857109413274454736871953646788411031628365833527351399358385788413778836214602604775023530083382460650034459131334352796985745284953369849411335254475089752492716590579444490803064076878376661388802871536545912618313223154056602695206401639741410224842375898139127134272516236800238591057893852184309418880896655600862127658836715695195373296126479582409039938289256067904460703507091291148839482765966655190245453014069552484858071527650337243187926922228998553807980546151333844387825735866403119803718566720594428826866304245896793623708274251193562999858033477053469731088408749928230180596267839368828199748497910664735429455122736788347282722491700241037740321196635706106685284460940659219816783259306398723712763578241008422417362529699286979828834082953565386609066510725354500484452535288752386557722743997156679819832117355744774761594673931909417246048271440637387911326964043731172032851513814123692745338750323263127426827921828355249124901079882429894587050937187620082623268671693177622678109689130377871822221445484564357002764646109876759036565624260388908221305910073728124896202377268697585044519490756203315862632793711276228608716548402870529520106442034239219497869406903722439695845634954431219873941295148450985734281650734100567759537110990602346908584429636730770154407556170895732642977346540785207412738526724947156776915970876748442163988836731672788570746355632956164815880051474909445663658876160145005802254683285988848738937027519266649742035417912670468327319265493770172455922595344621803614623157017505048299138633515808448524313578909512295640000386028363921240584355859886553467674353999032721814297982187152704191397953392525461636481668050051087125123399140550063351321475022131364340119131692241255456398122747449562653121282570761011292528412729527253518991867428186925499425571922230257725338983345155212613979811752061617958738551193961366665545948239515713080392260451795417407387482193475498940410825114403173799970014495528468988917636040643910424879921273108993503100015937345903431086776109132719722942591887789809068223117990241480616332900988004182841830394644878699348003120796369919798332254625325889741590726593331336685929181710461524595985760902307106174101563736786574120172940018538740335405238526832816235131304280980415435421164152282109659413353681044052891033941960280917454348876388364005689518381023604842043979115683284066753079435938772649366029148631565154611674910654776454243854106285014790188933488467883212897606477655247731826809814884401451539780713457093822664146484856578901887319520238774053334557319421942926757013004975045916674332746360060992757117322016690182316153967821326025838575155872700310200585668208370559445753896865971989712078468955791428780091257633185615480652967540951945140525844178816107439509103838266049047067568700542804857884988047473357235785055000483384823113302114216108584889335726280800827269143095035163680232191915837944980835349808126431060512530391337624177674144129567751420229296096807083893739854519232610418211921398156204056249190623139339877104837028922276302501032657520546176297301683990938760990064175856515350523590818579973322775512875847183962512969042592997952452372548781461327364713689202773797334838344956595670966436731396974297894831468940831070221084724342134420446795164048318474230138204385894423063648470881440707255318117280102156768451350849230260006845385430072718001151847623595023908083751533381397009234704403695518396691493303033241561144441030588500827951587795109207049711572484094619253778368398068057761637187107980147696729606559233261924580748551035526608038929446529413994111288366431455550411819243355244094951826407979988374227744911661040297885648805583103341968128651614775126742800757402914799512123817701700058917399725135918854047534635859539715542646541077565177037918577553820314862932359464625167785668506313377527725861584583210646324983519440117101799358546671740806264400332603723168968181545042542302180241780393452429366905014388211737412349566782538157510019025714726532457103618232003616541181196541134053834021814954489093402300380128855061751260300016784852293684395186529227432256786644566991156474507579923843673964921451387185116441037918903961185806260931579118135389234654149110110476635959712016552258010335731072662629780338829753539998639341616313128890941718400019235445830792182989236823647784584116109500506840179767276863299627507924423560599956900956464065569771422742087925997640744705138658599473552170410885025660698895295054850013878321842849344259245791135406201341848214559891827618712980642397423802964533746235822049895509710242445327511408530716913400591774328602711254273544147082664219234068139468381200562900185564681006874375259579728224421569348609968315135474665976410156416875047867067920682418312422769309862814779695556256936984673903113989220562671001850708421659508402342141877124719957384655862135935246137285597006240703360478702801971545841336653675606992704209836821368829517864833324266538308965680709181855532610077987528964987413262426610646815773601612057312826443079254568795277144485946709230518440797780439630530301853870862494434228089128686755188388189764106487600608646262975051697449648061856418583672006584285453959580525109340984495731307829284244222521177681349352721266996806490678252218624028781226699364999709858318110281028229451618225531971785368751949285304816102768291198073478531101507332261842635023003873881851088445957215181424764198746360769250309790307390273451733947824234175022056462514126950579997111273996953030229084368016627641578827733948862779655953634083811506703155854480739505282569351929096566267049256370396335851137567556721526128540958820927835085157482439755291151935939435297918620838427641381273428397906165181609607247089505289302908162724993273267169371630370054795691749543502646145770967006881336026235491829937404290689004763158743017059568681230734442665247719625713431194272958693073045795429527659359807720208130601055861550428594398027332283015720666165087433657597540552554250836972835928890038528181971678020543165715870384677107774247500337167551713533556127785355004479118870756296271242807842190367571750752370385602755488870178420718369520782780538040884388294078106293811377040202637455266089193902626966621780594944945783289527099528209178996102471813432893030556429195493245024550891985542523536939160757662360003013698538280775159276522350799753094561034872516812570321541481022196943179232381842763732523986230625343890328346274902321879865391836913935910838987459256492144586334047343127006997974496922281629095166817336201654668967337940834114877426798993769813508744868021922402031939959364172322240966799035948719219390607562230810463062329631078571157190747898671462803072613377391943860296253068567560916896955123415324360949928240172170780093614904448046578692178350416219600253483061180351592004863272153522324901348456493846014362153804152181030245401912067994773437205538934973233301251806143746841232058759984453346785046659112543468826314212479054256577976770879363013607725781174860519762700947276183935604412928134405189698550618572414916144541173353050963946393727990976768700464713907276462256668042247451274266062437799518958511352421096968143344952728750871799732351084714955687992062317584944774812393128632060369740263069384442146267183873102680531051500823256608717021150061576959383122113816195105490796313170908421878433296967577369506180615343021009585925750275972254646206761893389129526797228410471515875861674246281357378060304502203471460704983239792698466167803901859768980549258854323518243270052429250127053516366222006622697404534246507826309068112463451379585333597334990722118687160481592573948081870509143328408913298028024185771550439420686018631779474627899506741586742336442374195616304802847718838620357684046283184320724749526752091314568690069675479038998970921483547530796986973339450231887275567419455577862358775407687444051417587233657376027295236071960025106932347903706524090459835786025321438177724093830818394033431697225086563508308705072263773428092924767785407739993296179798153334631037731169573245049586840137823580711108471176681823699003052291429224568186851036040642101900234936573961456555070875282448591246748274566985864459078525623493482016285715073966575692250560046982732898902458861469294198142328102168321683205660535789808554359578485243930736835809365253731218296492452115517600981445587608742686588409814187059328582164554004044024489160598445220290994431454416656022481539762282975671072043672838989850208347359216838526738874959156442723261991402197012397329360616062506563250574818893582097299326297827371915750606767474560598246861020583647749970962366517701133474194418829086178341755598756773778160956659536410224571943089676712561737124900755316070492645686936386858936063816935389811906476414596657534048076404686430064196361942454020202141879891122193922710563521774114232615451542029015004121116216235431854014730184364921410227329329131750939331025017708755734666110347986211391126955869171253075562473805323985319447158340146788977574603229884884801008628608145062293923780891594493782543088154532104542176518258112222521504126542541723378769545133737184224221431175420669328812042166251298833376899741273434849936548322775089797280824748569226128959483916150966318240310956878513071701947582855016401865474332189700452482205003719394805401300910359697296188179420408980587579212962011616194258439829215641652141617551760993688491274547177149723551780913888011691702842118298032946750789127346419950205029892017357634728772854017448549495349211605603693752265360828970505218347151036685868613837946715733019043763309383380254267158190938809177076729145894443530509133116394451797077256181304236178361974844255429622127963047395990661530872952643683352213449474903298138178668698601376275076839267257227584518377555508853795272023664857459287947367336992376343020086972326686663439629800289005189944274209363245700185195534464055495263567610438780930615448089428713539010160458780162187863495990427586190874235202086786612427951759669931012847780075089302330115047367127292671183480443745043451199098639024052002249736232346811386143400994490590124751120409490572989018985392714393619915701478103090134389702282330167024393735996960070717605238827297140404696054261547959914363484698084563538446711333435250409823960900117128159517015829226284334522544503123549896079477859436319067401236858217865128958726482362159988928209542847805379042598849814647757955099198575156292015727313292786016573788300561338091488587409669954513408073758026045276209929496800388335328388174110535802804517578935739072345893786646068554899380552313411087378117910307097643710795300546949928322361042110776514696975547772496856961965174790220721726861620099622432860671171696007721200965484690932856252014271595052756706067556165826045688648153147455049160573219570961182262840938020924979443376826024301185960885637628168678047760148468652377743974126623287443384778152856193725331679832452606095056389671781102718139255619706717824263038400305001538624963677901495527489433297302641615645358987395756672538910027485118560624686205374534173277446098334232077725265037431903098495897305134242406960712579377018734194020819746198343853948490313704539888464566434386318990800816939730263762336027072399246543370666228970742051046481021924240279574880277679107669515436777177191945711620662240950697326765760321204333102615532631391305311620319050450307385797774679975595838497111781128773017350837689340660677180648903839247471544703888605083654088287101999198905327626059852419140304677636199764394882487715542261457991365510868901973051800450062063024016490171881421098438775836319527371005253838294866220110757968892516379116112624558238056990564697263667553365168204275434670456880819420032565104232925979994976441365520796815466396859821603783784514711487901922019107860795428799813707332300292923360377462704960817208290488022467914428976696927808288537246036373353185898971066664485521628138490579891950962285017227744442483763374442341720878562328004960414857542506942814756801042313119252899277265879200972444894203255351355519499730377411311948842335058107562370181974058787381827518569710646645623136061918678210012947347673752402475839938536196549708118256843080258228964237904163927940747654520160239906628004560033129843704805716802636242702147311357943712451079812232695588889953738487039450298589832691657488119187409865179078070644847799379232491245734546073073517999334165247712144639658930756373042602207536762223141508601582421098102299928235499528084840853786434147940260885284434538316262458483595116703607615880905721581402899228521599351765124120628195355871500844191703587268534854136007800358245157454898447210501412248934419701830787356558917211560573621449714714977824135521317220591163881892070622457554221968142890540337262740516075136693576247989340898032243791150341858691458722657707183389579064647214291605482909890477315212174833690481574154550502319323801124415738955915763940605708524738011581231274157603501538377036841896355463298897542181125085161983137187512647623696147604505158359601887961777833562278204120519803566725850026929706692770816013289670003639290363188213207022394838861946279997357072031312523130078056552667751934333894269290948895439067266671469456671269188021334571797401247839133176690561613143717197814432913325250891686901219593439470156298627500980036414570939095992147108749245842232869086025122394394747597591295153553658494574618111070568162944725302144658772597993689210346287458553571635965884003729953953972724012444988694826615462182538613130477710013958893773710973474871340678725355482325367393235468236526256539384319162883665416090366512549816494753704603128056660486745903510077968769763288851512158685407460953090431647089370458378109882294153591704938762956983392034024753716862334838079278268946909189847868808397651216531771132513788073818039247761770542882094271615065454346935346056769015262651790480797772036113537155960069712763192474999239073807523367987523882888712880751846750678286961962947893064428717246204954855657854624478594587117013718792676113146793189246499220201079406898286783001329011583680598820568510295971811949204420289283750861440131709268467957089951763263559733511592595125780808673040848812235303937193806961843960868623469142175059620702414979185309077360196902518189758605639978648445769165931856830329602832943053924624702889937751157526468407979942298139920865102821811206556903383542826377519337132335350069469811197122851271598541734866009788924002613663964136502659096934081142675904812747401358412554254318041879771900210403568753992953775154480321569338811327560730920922241378489832287813139765951584567277195005152291424122360227504067952493151012705943866758885816680059086236549864166460007527134602530563353646210923428825163562895818096002470202953415419277755885305057987350847863358598929907097027823658071497740183163491396535678313107041270406494167347412520569237310234143551969911950578987001108463467099540249110977634660953939513847912050678675486333708980578255862781023193338537639816826210545247999999065546638769595669038619676041781252812580231346740232330241562280748815534892193337683304487800618669180583401812502132463615888109550548942217932375165687650575399880091231178541231528567037195387780468231984213752854820211835646904080904783120501590236119704302778321521106847545894337723258883457713920126011062497815464219190211192295079264855814706317522586024113598509954804858327746473664850941701631130609476452419455125400214730649010525972424128493723666719151825205058665278512466952239929529978926300713831447554028457824061644480898285002001442239206169684370259083427740857719803283128185167960802835720698066734364137785715668977806617508801957182479556699077205829967838861892000656905012096672796947014013518795852252753580034860414722400921112471240491187525373640498030785432130023559148562020672872170162278281128056782661853196117187486406098091321924753724195396375134748874009539217918890420975258378142743070174902710406978585825000370033533395682432725932033527237046044524313174996488349770413854678495156500747186695564362667773132859092109207667757932676362765495162879991828179927340894028909524519316317573315993712926302731357669636700368142010693322066650438840428446353023689524199317774966118916607200108039587812512043122626064766045096743832552609161145957854859514221784751857788158371991058887627252472267032835898836900655110306847210314977708198049532271179546120008100417226622365712592277698807030097118268417160409566868210693661850433389702741287211191391439475909724386369570472615170784700670272744908896222029198049662469451466929399833951281771171830130090608004133366697368623337288394367136326332282997883269452571035346138360137610602259268222845431318813361257465902763882234611598511138707591226533574056618049262954317155024339699648353954606124404644442485725370015675161626336554807467165609981039966952915292713139901687822863238627917138714147384078407153383325878274362664855813420625273112220680912707885489618560079219609409410491908518764582878353056071102147486838538254356297314054897387072750672024061322498709234060158959847839176834443208741474519370436812963602433877198655247648311764003140030326322622945024064165502548490062375550499302609568585753784591457615936993351993641249191000515723018633906493751203883968655639526585859533053923124940585549397555311091419150397505055472404409873155228950843772767858861499160499410220929037638834861213060613852910667583704504498875366706760387547464478202725357536506907591747089326444091358004632038717212728817251179471358587593534621992221358906565560705406132982244575521023154778199008096426994830641458116101199763946694970925534158855304578835955522048137494120580829050314402979164249895389556984713228768524368985466106762365559358331977203806049469782898946662082745280486882568775230964938654897308941896304281214535892766369510127271365925175378116382848770273055749561942535379231713465844886867492123532391746298172992684780926044066789051889906132298509444709789076927357722115358532230865092918242463405121965506826244291687640848897767121996421160683974921877443861645922576264891492320645474697548199714171841654240484877953481751758382284688879750803608694676250422250003515797594573556293641970271346939373067745671084262644581771436584545689524609242939460291813241162052202753808666801186139667162167658703555572404663334124300912331241605710478121932163081507889504617708643188056500284902432871478536105370038957895807971555182701438953656179747932822040318143715386048544402358990011907515141696591103475187588995546264240217497329659391869882673433752569343157497984586879735190535270855151678021019828311669831366547172612076370482520072489868914943712201221451041368215546070947736659433637306276428848028260174021280162834661246873911055235991239575325219677741054435473339743817907991119276763139742724238948778173603971278059715913735967347194896684855660204914050131552655345812222114363386008519105403596572987387925178414511563381616126940707865358659613623265199679023540220569954663020639249387666311263426439346378833932572593232758028228244410458644613463754909959138900640436036454380091108915845813724597833219694283983584008573575426778360294381272719442394554254086304115801469941052287002857045799795905013239226700950705278766226598306135848084596605275410432447593736046879693655738670501167180462635046370470316176911575740872634844447933272524961521902334273989857345048704795921379707884249625697421150247669253860582193654960741813891959066585429337439896229897445896386742319433002827036627673170939744416931312132688725948891897716469642895180777221942446641432869120331312343395291166153086900896427720298218829397750816957869643809343665183663034292357169658265681440647198812384509422001851993045484817572727844672968415613383561979722966304863151397305666808459923213889250111969026824646512207335729107209494751238075178667514510106438937331348145170406879106942470361343764575691014863632537163762329580209889982195870685409999236108851749299747278827398352116959406909401068687277802627345986147342228400982489600556755711939376967113920620987599875525704036654767342148072223966503872075207872704114652684844397044373277055635157462197302220377636429981715002251499811664813639033571236979271733853033713727476512903962789862475340881860797349415278590841031397688948951787267687967556062220052592550618021755292943932969921923984355071490918315604888257206807500027603495937760456587859410515607342854033583471793214242285875806549574878287455461880522032366302161693650860537720977085080396349740989974694426583033415132800025974140806506163012403533926147304670783911573789711862558800290391971053123252169067812880418691872087491328479865521631736048792044920139908231461858896023250953859227946129576199742521968080491081986758324728366475613547699258570268267232159298543062541482675228377563124631924603254505397997518976477583038069035914547138555430721473163223677673252253820138239238700087257138960220389944827603150971032125179832388651033684978595610427392454794425395710809275442861639003679868266225686336220351179949010537707270382747506618804092875819064077576070745381015830712063530483564376546207182696093180094014602611773870028639930775900134016493094137833220447596816933460085539346438838012679072716585912494888277408596124187032758552930124957441856256787160668447593401757867686225955524942977483549368495225092227018375751945572028681893377248485217633224778408430775026400018809953831408337707955527772513609934194149044119385873734390827105423242265674578047532345863970523702178710434979316972074402799543098615045813814144184578815640764702583834041969013668416696851193699284989834355241874446738925367165112657265269599189809148876954435668717149610859060758513937693550756840273572177794864116044766077876763899170329919057963310808326829144409705187855390094185839072613442634888617606404297541448147540416320204695264626784188487859357154917295624306113242119537525927470806800301923975382364350804704638603250979826862756420092539092114919488101599381897700721222175613028390150297880371387881833998428679414673699302553223697654492863974041469565853537707549440965825041485205523064033071840115397474953848446509008579073244814366137317442124681108180186451355254739638421568407962840163655694653659183639354114692328120887323369339545663221955991309737683926856951863807699759550218133176975785745262993812887694539330447265849717421397310050075242301950808117221446812853556017106446919221422678731258389685701754724171587017986824504513000539284131970196571850957291315463425342341129083071226445136222875744677510807203952179236184032128078701028778744187118246069408340853412854677089321605322017227782069398236732958327321047456440256178757990325618669499707575749604771600022271268735221725857092612312395495418390567962555921451768642795990877218441535213071457996222673586750326734229400367601244427561722802413486187078827788846254127649980666722056033652907046761742347666432849360837940633278646930082484174343965951186301957547482941048420838218471197472425180258985573141214398983643954141508402754406347818057552664620623672610804898675196332772734097439420336674212669982516036797861771720863483221780571057455686967690754213820320905246814571085070387558248829305271848536472665727989007393375446979472407808682814322249153704516734490040480790196511244815874072295864765855843550269144602033636426797822913449517862312750241760647291601705177654208372496474901235621602626039183807946152277554609804406686367364386912229873087731531058463386435693895811133476422048077683339388294700826883145333648951637974694684418283755701621943476377066621735684634755226658515732120042016766064490955836987079053862796124529305032851060516330926426440869837557952458522583565301749563314515895458967923566736222140471876742229789355920818925733867125837855355164379416053354659660788133858319523411152598934671596982077781133691002868626162423663514414531550533818496950810169539088645284025927802774284387855134353572594750221661907398346395382472761150926801017247595380570680303204398477035637128893316296310424224285221415136263721804265191408333522038837832065437486133399031572893541802480956206128499815523949117401433415430222411680972258805048179773907206418123850223770502876772772980262694906746920867703399235801021347694652655003065969521077592687908458252774739076327620896969756483702805925244631257737671948515497795635283621393645630540966369394896220679098359402925547210504016701155206878850068151031197366893254556374782600531001932881619318169339066484423929930899612077174267638811756086256420086184843432325392163735439304414739408250005636113698290771720052993355637585572888348872554405637422270132494104537440685925328723760594104537597635614416917583693648539858850065189640823174534977662687531664615636458625463488145954985408111419508589379417771794617111926792557319156124239682662787738739021648493019225978731883854410206714717903094532918140226051393092985304580156768872958425605240778667123520749709845417997092378514523818504651574056184635059831632390653334689539971502012044684455586836604729383151804913592512101743405721774973553360373291630999103338712326601181024223721931352041548425783432708860500530425868547163739605585684211762937109838080178574759164181427733450693236209169673096078220600621865007897655134686848590372466814280309312392184522785286704885051884970305192354665668297710066422855773862873260534705847388406690878976861261948659261231331934068101431293554526720157586354372088953811983248324280478116599496134381308467215546287870055931964485342263918169087364635600727157338995925385163083943212534460080255860658275007313659419792373030324409466782518231977811091178177945437158354085942453411906698112767202125349443294936476042903327531856778209613838963057389396134402799841285251370694511665638004727886807887920782310628561440943612787001765079221129882345360039340863906044426028041649354021384066121628735138544493931805778406219395981116764353163241567742131045229911101050089874518472831901195549716944719630625981290327873106915091176335132752053778081871340232222076772138186616335716583175018308803400562303552163107328699479158092215773378735674129063738056380820958811207190930727334517894535598476609407065988808109106751412674434027585031737939613769397579120925133715702187113815186804461995250606484053500664929932948857629503983262546897075739145601406404194134679705254780411995036138204774320558502547637842690435589113920935548825820006652043004655329956399504311123398866611175267885733601466166473913142223355019508047446157852004292045019921242658109362484218380974646839828204783212481253585513666004920049784922662542093548318579098647090263584465008972532816637560024458260967178689223308193796817908497426383769473124002864316129150325794567924341171756149697695708204182045455395400576785059190265608833500538434031077662100677750635450996742585948464744600456378560313097143177328558543813418664291455136479582316374768273750404368922053112210732568251812220913691582425762408246637794604141062772019733367499298474997140319150414415895302290835732000927617954706840765687993047479363184379992901988296433476404864328977739495259979052347503425383793696249165895933810769961132199531382863824373208787524766562757213392413264968700857706996640839779015390087278574222153406607505593611107063048730163594198250742529567376238827741869816518545765638661639914086591573772216513213533506718674938349467710196555967723312259996094390234898180687697638441371751564805666476587114565758190692168860352100734289242093859950066318917858545975660136270009512510659607295292109714912944055369088039890061811139273166753173682866117750604334191954143225761960315945595075591457942306255902429277743928009375543090848569114070674206960275924717063437092446003557546595201170447121200938419082181488022401528473825620786673519105445062421841726199520587345359261207018590247059814211616631448483444065274917698695708861421745598777122247851423612059104838538544541242079673650308560526810368114654437197109325379280756480437634325983809423915388485241242921610904456656481432410536766331524221256237578864607918644053155241783409886995965408776534916532283441052191239301457138434817391901027669739028432367341511862468663485915055800888292700070975828515591662448137502140119509085722743590985521731955432061592936949637848812155146862930385947401517964354944057636068284357834437965023464377504412687990503454294166265766120729217471426356290847423382386773991972123241021146365513566959764580015927098495339062295344263728668967260427703232019167326387391509646630974152158116564238288622133101591971806760898927071197736743463978493844391881207186759071711273159514810348046415240556690835215541770491589310575821058986222996687978565588604724358621007653782547365571715423113519884707683813003921658364138999304543506790921764306855920466683986594902922873808496439631934073151608466501996155080722974259009652398436429970896612903866558810671941619621542429229808154581691523697826554827182202027373140053928134918866098438987249692222909655185516425300411967035931100809353152026661622968316914085144556165022220998229802439756077822736219146634101518346311644531897566824082344079356015733996316347537503270361120451416846935674526244387098640855568521130690696034019007495667117147068318838763737066652136896191387695192973585089346866866375664138511562526517817899195444209686906828738674243086209046946089520483795836428832972005246398912822551250683277104014961122837285321048741472768784419818143298880606501233127156888181844677440063159399448658711364327969637306915791752342207898823579223425496549040756457081420181527287316765286573986577373166960203404648943839334894305938682958778567203106741510351173615266623427498929038349587391922175042426471078562653255476809367979069039289311713933375414137025611937349932264423132205437071193959184985157310484364350799101986637653685578836337154399407493589242763463949708255740504899819836895526540030073622683416256179575053866673583595874676525721671476960146386054353637708684758556512952837559183114562662682136434048318003734648292506008378965889325361299305046893539308969263357940979536929877508701242991115499059788900858296437778307964058102838101479326604678541923653870497733917616385493133394501135964764073300408102460952844420466959080098262204156942900608499251299368058355330368073688684966586583243728555233279234275367599890371734596493008449536566066380940320035775526565360491582849572314832062404331832411816457868867330968731339369293082001931164491963442566787545504667388339596550950817927282553634024248395793670895891246862533469384959840816716903677175004498877346459089348072760289044059067742919662992143937997389772045992214578011848646317014261164732836781201621221134559908544847453565530690911862399182236005154910651478964420568962320633617196748823993395720340251759671978332682741268362198618438031272382228007207551954500629769421712182605017141248929051125913988668393127989695926002995724467817467140832072996998389012045526101661809614584218590937621819348542967788067181778531131096598656112285340868630558375434247326204906545451576797818691639940272407061476813985688938311253979751019731502535120467512892745238911083706846821111918567286110456276552288414854526750127075844387599257973527749722165050421442706985666967095493238432441188656127215905515859190405588965570481880443194413367032006385543614465325566467802022185248651263200055617580648969983826466066525762934714267083092734199054655798825607263333129338558945356604708075797137703786225494435041917088245651940490427286898635445802476794563729404672550367379936392256080993658967982184383795568920254428730053539983878349558491184948791605510152318980521569137340301260445959977735076778616374630660726228178455454738265597939830681453398145105948995489036675302248203289604617695692767516187086310157262587373729541621996271883044988876891038157322045037889018741091511620072637083939989954364417106902930887290855474673771264793599372195499300528590234625838068830420538680109441558411264109262515081825744313033755512611458876809037068688920482431958850795437079289017737637049001854446196940421816627877055825627201756023797039674473176676509788714566081490591934210573940439175247234629557307780088164418284036041206094875040346478153013623215628920715133721052963664965999890637264616276190335345433617272535251626361356635998385170734930035956381468300461247934081017835249376093212933097987461905695459621586915792505760133645719538466533709594639038415938398959194030254103000080028332872581400609474341879813001154705044550775508225865083372931990287693947491240870054901516669992922536108267216999312874524456796258615146211698617811332552256675934398636006434209063891790635799646232135591216571408944781409681156430192800947087221015451963101682461639606514600281043226784365258531837169037932463340157530223084708086103169939923639592027121677858481504651017245482842580337689327553937487898540835148056552875789889521916642753201293217606810316879074867490700798453972614919666007390370458064017993069050852254917851018731632147962183137663250652636723319669660378041904748454432340645247355272348443904075658698408572228061558586606035280393694461655213605668819475071630222931309660107442598775656650469492174861277594994467090365160896459320304443148088446097743617308268997239719574665730188421557224563689025018845471972796993507633646876491905682856161291168948259214078432697381336326963806905594564795717449977472253710535738948055852385784093328528875136779904379487346697023556237603624632516006999126108316375227411537693508332945578583339962635516995088629225012016859564563796507144779557154992903271817985574476880027949760120380017720934643966417211561797754593885476035800823931167260137228450836260431386130606909619589073344864913226121234797051350873022873011034324407041633207228622640691960830100640830986340034584863427846218438411534671798424077577932756808602398772556098893719734713098646320102141214634686002235881215976133351087608458995628763989350679725246900482104928868929873936848278665964188325083253864899529360531991273634606804212188274267148229290214708327924871300200863594583875909201285745266659396855713297516393948913076516460076516317155148108450410712973294230826724214970849319731967519029624371892595707766841791434011872324467965663299348762065328969876322069117255418819005907386019925233933245444676903915965078540432755495408937062798709822479729395109536726324313957423564694883014937484698531333558954354112297924878034009574093696521513191414762436891591605558644713760330330998720750166875817312115549008526636706256275357175544885497462537575893556838361618223083371146414926947645941120021746569394388732137563422955383866583702295261954636293575510959732182099504873483162296344034441108264494796511675753954700428879369329024856475573464551405115876287725656847336880519037518021480320831344558064853001122432887630689539449577383485148055632368215673749549793068651556294202775671393027694862406294910016777825760033221303544213621861473024148453617473495830658438848135328002211754983267861534992491238671728240926130302371809941078233643925336158199859463337036202699963158601885768557990109397384471114995219277601383916415528043425946184149828715307180688470924583449377113776026002255583484386359874500587021036056606057122631280876534539357818092704488734132916000451617590588079273255011185265896190190650656725112554223687127121365043995777370402291964130772551046894085695383139186259984803318654360177923621893497871932388393833922850933278514683109272726162436074207314432382960550002783910320094601996930287916431190618749286780226342992921609097435778485631003454294470033951232021744138179290138816435592345468821677483892886211026447544510126480031638402254983110456082101208343628649298594831962127596291621217589324572434894388896152668494272653556243324997917244084766084112732731229585328799944855918234688823497980585059220122699797083935467608439954886920464745894763354082031263548594198943186471046325300131568104418247674382697249528240370658832798386684141359450169656728871075120203400907624706007798866977803578595297058670162221996050111089442990227148159000182484233698551866314384841745879556185749207871487587778710231522498691710909426384966301412306647081470636642256817902900197881291035745101645251283374186770663650309319050016010301166668697021878784327899315332870083556521019472214625002442727108163431483927906196994184034697555699129928270902479479005369055742811280926194470912296623832581462390882167825776558545669161340625043576710569590705227762213178649592466768897376689084748136881252894208927894421378559727363262396994447288460391567503779486889835014357160180857407655999232803991272608816238873211675000325394289228385517461707421265615822938708844746073280230852288021689258736258708792648873802387125867576979767274496777620137436981000601080081771969987110649345499736774098477465478264055360897547965687447409908791365183912511969117996852035758545093497746993091208822598254138854595196131238575717485984246372292058159778621804951923603066982419682297065187696521758860556567546789514261079621754745515217726098945756369033049110388935243100954428829003442111210330238301733749312861185306439604371218027073427468605615634309930223119674780292989580581980863102435267078641394226202438706495099113774292552010834093612639069915582685988718687881355044246097818426806958487469025853662275547089609681707802673441881722962797720791092128254073737276930612439136765145754755839421935413880322665273931635447719994395092521258264756145057064496361978388134930484708120745744343223147249500140974415097921519807060413701987247643807358482042167298255003431020839956418308898671411111091541254478636065310381133523166390658185209438354892722234530457222745759225587149842465207474645262708240593405693456006450855492461612785162645197797882411340256030851227063040664740149250499015040907360771389816199912763639121514798959612558366531610102616983060603765471127701225058115791185413939315564231868701940413669988212285136566849540941717137399290289953635600006601688178503869124398829793988600899785189597534616422924508486695761114254590499284738630646649779324686283927707401249880523891054378709161667205217074605535168072785624663684933959400197757949818240359256767919001966706394671582441375011646966801270921342361358482137672309950388492884233704397204927455076400736524350949767498452895777698837845345888173277824237530023029802610128187623858535781319192903546339388675603556259487124332809135134324960312600414932745299269568817188366800588012963755206291748060447414936841208378621416510334449795562584608732989579349377408598493610950938784824044365157335022825072937176632932119965397101610153596278971572618850555116183309486931994639513153777621047197374945938498669002316798686167316349455169255171503888925527750843012894885109562472176824738264730689897636136846057058920232866262210031860753915942019248018955267346217468151803189395160298663579755169469891981183969170222338323795957874058814289671257710536111022836744425989875287184150668193979164162406611532688670765735912730180327331801084430472237248357753289607368829309807641329684624640351143203912616057299063798049304283175333962758127897079579589663990837617465290613876630004969483750211044260041733781034489905608423152952387669939879426616827598132161483617442292699992199018948154564076087797870937489844275319663515241112003336381269300104236135041863333816835406924462877228620806847880645297228725545253490272228790194445994100878124260320416886414243432203848156403947864853989405582667841961466437300830920352377941716150210178940334432268437057929010702423749930845829538925460723103639082255039321024019944368923711321511565078957993770986245636772563501307669721117587855129020347607433483124994564392921253409535224778586067163218733330592065502202069390333439444619747595867805626901424511259797731077431766998259332790119729637101303998911578653447609780625338455713687320737816146692575289447278785200239541158335218715117409788807858485146241506769703596253491752364866761523442449704883767554314844743157269049300773320653431604565049359565603264230986777937626432241886591518405184581964868711893870557411857212542766561274091759028726253849346344016287104641348121211826584916538033591175928051500368738899007891100010385343091938173840585815506218744532694025594577131711216085719738343603594950927501053290197779697776568385166246627154672740220258884078565490919711318990082871383226964854292905986551885014543818387711620737276127247727678191056508572133069549143171636913811395440506982189201802262033068073583181309174262707587397789307616572198903869461447486737803834214653183097437437470688120041109301147895516133934072784053976552051727432054346926031198093460605974557882826769993127643801945540835064767045082556736256894536305952358215998654895816727453040521915536873926671108948226352242565323892667609572339378552727822076217026557470468878346608506198217179715131249143053089164003670783006744020289918997284816694664181616001878509819371918535002166831694113305681497598090465168999867198455347782324812613800770363200864838689550057685377864454280359090540153841587885657585448973133699261364825258128157562208858577211271848326011289497938252608097747486907625553814158891320137917433437564369474815043813836091973806170772424075545600643528895494104141189710282370244796329733816236489695953174742423245930424971043516015191868407377444030361700130478774776845445247112271820858689210263495888860615303139610498864772348202654564691516834885815489929409557038791686007472250639341181410716779767165638404121886528236052431168212213160317430781943976315836259542499894571243322941177473702458447639713743672053343803084683093818468309597903163408277349983616070756100658907389947362441065782518930414860797506543661834293346319707860935925800331666084079007112154297678900060120145019898174873890023155678313305913976586310351910454567421908879773859148382666368413965209284738973615101540484855259641669188972564006462653648800634697978365032986781187450906834121573526035683138499215183723686007757420865809541342923935522127305779982505327574998915517114921820347209072838991523531515939315917053279594353476888720575627055857204008472005855368414191608177861798452448615355098469514842743027530550112555084758188181535936028548881478255937683528209199968593264519327644664453072251829527856619172675481968817275514388153763622306824647404481174290763550248851454995576675613722307769551946999463725921088830817396460221057906010396001347937616019260125554110412517730095209385464036267780865161134701834471769052118906032236138293431396075051172139444878069947124204344456627184726109477038015477645292794492931088379385901533124645679052534152459665409942927007636696955261096460558564971803218545702183606366443041004983141895861936666120173627855971721308708715458271084802205975518460244707017388626897066415155733799412207119967786476442284727928950920909061620346930052012291102046187489011126690962073251492998377990773494647570918968632761385887727474869168636830957799198307120144320878056015173849148910571796481969802440972005310463077612412931185805881946332286109420322876592261424605763208607232751452020280181020368772714829823824264423810731799068850962805569880837780752103188559179707563381071459184384601174274382990268318618521650267446960916864697991598668913380628750062217311465329180192280654951700012303649550888244824298057012457705832617677899555041802109534675218615726526049386583931040299969398289288169043363069686757584669966080246991144266878409224561781495253905690852927411573882848295318711254837611171630939244967140809390492001475146408994856130251449920379751238015264773217922469773541184902242338850457166513884921444817289821098191489066528271705169795355285220130935304071091536982100507115837949345180571923326035010161386447237499323973750835385011772361908387290383341836492871292518727222444400989291649604142908006484396192971952819963819833905926721903344876155296626274355777313034614024191454562316185604372408841683837209490750635402291981890111035234681645210429742420149843343498609526905939700216921697176268541204786151304797928108268512891314404886899148340937586716878225104533949373886651992504322421298400908047607557108591890086948123669772464380288980227621591639200986716010330763220690941534073866451522361025427556380658217498118160441158003943192731015841427558587270264563774279867362599045095005566246845352436780703827022927831727481508916484624283552161062055699044274898514072254361331339882927106112603167341754957490172701582241161903829813982293292749225570798992699448118743697717238530979676169622490608170626228472153720091555261224065346422311402459551188415738041336803911892174217048724915728706501694102842504507007630957075844665158778039251916087488915123581354223491149844804384550473583297084623523701076989561944135055507881385331292028273399862194971149243423380469910911525094256216851253613713661703682139654502079458971522633791545784079675921032952064898570871161316032055076663339313282673997704088139726013200234595570713754957092992315521082810080600565117834732444350688392928192951567136288673037808155202763548854143265208991233356745730664846980702121860321285501076399721846034571817200204766525593384501915027797550639219245354353207902064719125580904784319943813914248587777666783798456467942226127881928202220035774943668844234911208122894533907901551910229064540310833544100117679788095160994195348318082889796307982868625064680574430766471911401312126911952187875463551811763509726397523950250039558201371561162466886262705431793102037243815483273007255944351081243105197585183075142474952134324481333449685162368570852914117994454411347835508346973629715344522426789836797072053761721631811870605511014850983766378501202401390830573516905416736527536904196991840933494631078608100693287691040037894570255368416946302302570609405227424905788351097610596306150098146807737937719862591986076070269693641033427653060191193406901059294655681998721783818359421920796601886290379139772841238010600999737437058846443215945637440323183826303173971782693308257619378444115586167320194326232226361187566121054823766977117865323713860030881564740686355030212273765719548906824285291154307864975422652202311009397718600138278928688043017111663797021755160645005593012204597118414101368645604843430256066576450621031734175210255885881721777025075266074531570456939415883093286996658137708043071402233496669059482566886724776694734330773137661301486708024719077104062982347657556370619393226049209273063543220182908246544731832966817780999490224380705233130696459850763558546260633689084631789460509396299152648281482087515127129523628616038926262217868102228844311715647447081318804675215361515697174828076358187797794271958562112414033569260732589210161939930079615760126796778207995038486907108162002917983681232662177593398657082626132102535754172710712562595921274903195915915320795899877882505402235541004952015199291656547192234995739671952223468557494669999418027562332478850800949356188767577637252653868321831842815428747822676719168055801487165120264944693116585924673989418036498889334625343437880048426555837899056441830299330086267599256793241817128407055089457753100962034017151963820280403146811927914183255146159616427338652626579444408364170554048080974224344972324001615011096817467917108619953203616828742983479722399138071292973090605910013175595278300829362657837931358322307165322698733438098341184920104993448233804429170137315646718822669630677161043482894822328478711025790388621598882154914230410766188062288669058534294036220797980501708445303618357211686929119622413495319853017163335376016685418942446771365591718566599904283780666258646189551680367201876339617253634929077205627743444304232010537330150360048837770763851573178330571235775221378469387581473335151279501295690914424276047994779795301410051434945346425460789278463453754382844373416770287364208441247930257294124142499532318263212664248493733931688989553599590958633692782788739176268962285595436165863100162866615235323616967078346008063489159467207735507285925388069937789265844614043850348981321669698696324606092974715289046328561772254278490279450191904166635703097997837027054276852013164930188006108146987483394554792399392928288361852034554728454159906081623374802593268546463087633422715179374574060985942098517880330561220872301445114907405263473926937595832164606084783420376890363385605071367151488043889706728774299125514203608757199066025455154021852488346862830069115494589014921141308962541414241621289601485416472874456037805040362807751884875510674803115753107861489426380959969194430654089995612590255775797969882392166040314292413493541213224083417358538747644316397091875250258704191167893967598152172024495563922420425121748373273232160156902546986807399325042694623144588331439256450731793512599934992601492009831568841124127763218285152661366433134157750867408286004138248723504519192594871234510112121362979174421374218797457459897534089067811704467598506055857110769052851170358095008639966266190702356044629725498397501116906654343138879010058220208745267975673188998285626597644793048497211355436373813261350065442550456081786273345213876179279211863081791634175372728238840333382686431346282870226747053040842020171665207125451086611958732060479897286479677134024899154190558027669275356742265977727092413112656420347915187996545545278778269737082771095503433072517690343374270050484687399877682321522856835649143746717281558032351385250632903361168031884173345536985409921936099004440148599716297990103693286466661359719665037110513381127476092305932037134790553331713836123837985437620139301304754428409713905943124170776813530150742195040674248789351327000530611694247487250242106258889984200328323277937184383798322228910397786050714980679786973197759925396118225274670659367946166002311950054337142770336796731328491698974886629527844024476759073380602438707436754286254138129389255930174935809975246341321479402930631823958699244923420993172248645005316066697169963622621942442473336029893811296293407242255684999056454949752650089273566866214683420789817256197640925418238526263412204183281288734614843347297649609466662993922752071286542577791813260840641881303243478204592675501348574041166824203693218331285332661265965131468418769695341368200418954619134243192004497207297989425711842208066991216598035218441748952560821312390679191207308929999647346690182568030581751263315545835073821471475129849109107783401426683800617523232810449406312607126278846071000943480061289492796830625333419854969673095289775068634533295766147109891101465768890979240298322993257552974163549054598589887387223053632175080013656870115881588527725830235669483459200457066162967100472150732485865151291893223917235548367943133157906865734321521326446471524726956419832798432138218596257397545533104344957763997221910832105085030709434511736607499389951631838163479961388726196257780606750893577653852793918366202557812302002366519134613253499475020143630220451112427594585357870989927524101332704613964681214867375912596596715152767417776175064010700624925683567752774991904252496150954515894878443312434822215160757538776937664184727652484740475930427490211912606320946966646800219447349541898896412906582545105558398892894478573665716431582263465293032112986039757801257454261685137743813419426983951641974953423007929773281442956359683398656163009127509822181706136316280771649460661617686009025478782785234142928889504435927335507229045309075710842657250514827836715204721566919432825156931120238598480194178892606888744639537131840224764131665799397979687686188074201415485403381643508439477720924288929581217149500761977723987603415414283507880049458938372750842181409993906690833945466097467565290760621694911594119156570170852155277744168685656182194315730242783714468130037110849401605163581927495877466511326595803832213452367976653252508356696014599714745294073984763451291550296771045557378075198224103300515365762617236216539345226989395884417013581231113716462603073205557824588670620657251371700500628863807422924837438775463150947714055520484281925325703511665565583051559255838789294528549619813509349024856464731317302532219653406294194042545174091167929704365014719177390833110190250208208806082465450536952378000984898321090443178620481577458877675038175708067862369695635217055123382155336392397696434490344429604308508934177262235499464223216731488946055370311717489690670628651320090320716858444642615900726551636525649605704477809527215220080514506779370715053483011249875234100057233980588960800096225577464638737251136344069368728629934795336711779454977681247019024600694389363851313622612260630409029078973967794048474515502640248461802205858660824272018054967220802533288667520057912945797465884379732362958275679830839988582903328649654832508608775290858155972503238324405802548222877212719216031608399490222290897919714586117749684214240428149141351886087897565162398824564022138160572082104960249468052392303903189396362542049029260478075019072831033750158161671080960202318589628989493972349245431135068437763386097598215260492282864386811552531222054240661572993222344616337663034481270418761855935205698049198076767562412280367525124376355417376402627630075925446281486715530446043002218195384094444782640600017205827058535623683028906149180563299592092454102265447668815988332212718568625131025937338406702467667486598364506159889384486941434443948576325421904329757701999463428520099489363473117645376433078028707792056569197543788006458040499888244045124324699611742978494875118150742299698946192846015761766171974894392753070975005326158346190407040022775801471338005735705746709551943268341934102317855495526992777033887443860816474071033088298712402493734723651607162645390329378163240888340552211243716182120084085244199948374455652060610606417967370589856495900469516576983012284636966356882725893421764300509047287754808561514128344109291922085659738220972721536295228797579631117165453905555728350531991363990229243519466068634506296444833386925005570982263112139889006561042806659467828862547138104131306859344343384985430968648366222065976925753838242573478878163879533736287311178306545723341423917570107908712567520706400693547264186523431455012969685673253764224448444351165731142554239213627054397297876056799751386936466866845173182527532426709338745231998691855654819572732442973750761407824134918687323903701817950396156402001155948692261536102770216086172015899430442588088812417186489220894348134843368192487694738931578324003175759555268773712713209551624108276407235485209517079345465095778720999634407430114653678543321815873944250200892611059082124486292524282751329862464898250876507393193874571403289701614684590370618612620812890313030105294082796805219362561754429409468333513206768844035383238661904984690865396462957461196004241101484471322729815803792168589322875834727240149529318968977487649500372637918921633829528538893293660954880067255930926110171662822832101316448108926378985058227836393479774499071906424863839518146941365387928617075009382709120902151723980872400744673125279990158393101139016436942098529504508376213613370727028689546253454245385374203274194611855972695385875858581834369198716563766888843085512359201693790489706359811901934977812395483293796272981522854090353697478303861603626216883354636455483418607242423262557850866277049819312804388631040145238727313214364335749586391734776013097699994097756956270645943458011623627582486657257626995889609784219274411538494394381434551494293943258074102218503032898225664622459407464944877037678378761568203716105467085479391415038956921523665140453361171148502175278616354416133653610108244946181812962144181143459215827756723065077969303788861323970268946099559153707756998525405610651931453701384354726625644755779168312613324815860671439998200973888312858883933676740072759310737206378863576303009052932544471252506541691745402092233147362735513840366307673641915902971437022777100694144500277454130475605299033317908115303529122617551518795733559340709146843976587334696723722632633931399413899341510574498325871963653728884138526228976855504057235464322142816766386711210619934934153822315055698427564808703189337290143067232190891678098935874761184100870078802201477595627295208931481428629988943243842160113351989415913977175781977444991924053380601804333706992163761989720910693570266270428631498631412061883040803585291039478447082479643097821309070496171177951309395014413569633213654172183964581879400131463600107686138298067850745106392869551392546491297501981769198046299587483624160456423039696057765847961206112062669405373335392401558119409126984394785873856311708680555019825996744345676199835256681724608238813085413661355062372309432199868215424052354315132470360030907494021413944474723005576792254535289424231770318526019406612750425484626926422012998785940266687284950699846109661148814754125226229448290682647160007509624414087292489345229924490406306031759389146681348894085036835522365014660758236106039876210057422845661268307995267545036265945065505623720849623325219898951715959765385751927212232904130470603313400755466749456198014847778708780784150719819227915522440592075382063628461673124919693744451735449918300682795890687335945166756388887970929628359094954899327090895975882939231547112722614993471394234884470152198603649928862269177088675544884892413238452558872719957026578316952755349985026532563075297819695546424028204492388903751110879940582774654553514998986305773025954178368142415036182047817423357309434964271950836955757878053044646640546750318079277845944047482498973473720114804193434171400248722519534870161019687188681877411399050626107035083148002949365350327573319559520495392896232953949715465467401200798769082195323320905065609843471111998348817235812312860334114532228669133067169151351993205832348831061035038442867321186873644699740013067647392741911747838424544290882536582019878986749238833330053795245068259364154014881793050563533779971694851249904868020073628618516905863376869590007317294942490504192534219556683506637817196580004145872242943446711742819760673013469494268244154534127426892428524625132604791217219432923089450471265403142747892675621023713436954505018055869989853684436227278625393066613595472765380977021017921223736714464018202710915255689072306990118833002612308347209178507341886139070549461046890694561784295515755344095762088942569387105784783408676195965387947085989643245601486244445175472536798638771090815076897945626252584090147701245317501767497330164148155330226742708270347958791438302936083893289809337284107014731320979498864390543063326522606768309062539204715631544466187442367102118118569963679335075614962709790236848687941671915130654436778391286798959738364596454989050919679342628032181864141349544065759609213224947570157883496145425749892923974569596032140617263530000737471845390345730652472196570362726724454339092431703957383295767887027158035493211921261265446288400439444219670301340113702306666289435876937432257061523505132962987980756695817674380837450250163447118461972357749462785524473095466772522946068734409579937657234891568168785720259274642596480365557896403162561349927941496544954214701019110930038278602896600818984818589777451750083657110498914224429537560547202267600599665273823107784078251904578619592283201699662684955557952177237339717303567645931226913121881480327285876987224339351439266114377177340193793185874917449097731833059028960401401680834424574251863826828663234181261577751550905557382663066719173247489214934554175166651216660422974896098280243920080733404322033828678480143313411179665619309884415605397732176196732115354161778976011191076672459640551071913691092561189876030067537025455781317002971523357708940145878405378988810142986352930587793265309845836681869298799875748753689169562302177396476764182834454822541997331838977993752876146626669790307171220092492692411359138353478849875307426114451320166897397524909242066153625046320220258483292618633110836180814756124826429570543488208764906440265283622665413785647046327471341084295871363899752812589548980942096102818142559760544454478142784531698050180598255193973571635834770823607493994204688639511646974992768716285718723618646907301179722004617436307444225407656814211034067737403005048569689167556212111736284887473256655207722467313154760460458712124768483515827683344498022404496804978130053919545658756481457254574416815304482067498702947035500610784938905159620773850629450855787018742485877648493229896516786033007426028116179250206742226972126720007321414885437463446203583048947426529438458524285695476280459226165783294061939472085145519000938834080269445195694496698196136146450309916639248889143596456394559918705617848508309389320133607457300950018777434828882782021231685946085166135936739751903906420941747025731927694308960472716395663629518984690477947646895618872386845111908051828769044941484033738181845441164077191112842809259228264501841470199383249332414404093269173188395038217013494959737330656604425805410486323747320088659624831520837056115044618378777457427894088526776883175779980390843178559527666023130139082796707051366766524065135672638822349866637398831500113743309181470879967046767226810035375462961579385253095500124114203225538913755533156547880665649522469465817401244575109059901285662590753381511005680521359327778913545243417926387776452495364118265488085228227846960702694757767080636026981948733894199218809843647010013409762576699315766260962661992771990675948494974640797777811165866047635383456104147601293857953386059531615155136043115235902019224289185655192522432569245839991222959321154871260444240955928870188013886615488505055156193155993688926071117135224184750977695429680348742946688169965053992543680712536037946244381918137601745176913643298011586442922092475588098874663602766868975889167331929362418415532178001245089096973246068686147745050098937957099056623293809557510761155275680386336628878798953850915343142137204714252292359199918504435543051421117175781091217333221731634708243008787369965760930453127492898345168073429781418455851140881245788440530339728868290272514301317319193285546429160073126489668224087719795294127245178503549328769780778257865544235107907136082652939965297432401749201845699192415381899816723698239648992968596953229331943113815660397646236211855680269932661711757345165784404394349870701636369490157963185296394677374558564196339649797980142900329352231661804238298826614688581423541436927263911937359430392128926222246119163429877087534944774050576249756032611580161271914401464249204250497791115192524180971275977490888828594137634491507147616811010141696794755295599202060224857234714620053573035778408557584171423221641892738042309372012284968610877749678254234200218542624841064310284524441542490721963583051315779733569043246961657132074910779572952359411553957376633422523720915083661031198293379210107974828697587003887338875467885586097659784442148800476896094246959202046082567309297468200971884000445472670105999762440391691859090506975147644964058007337267394692445277469159269429535715887368094018018898772543729464126336629861183000051872874676543988845833781334091948098117841009205150342397642255295629866681437213189201390334478851394695231738925289067391628350855805668410205419792661911278083159762630180659738709046815642866090117508120199546035036168928041676095820070776666456951624399744119876060976927815229842795602314514128299388646987515647068778936764743748931050649319844070052419391913180707249288395613176201188262604785829837352865912641920846834682163057369775196362911309717482469879222712188474312634311983374343770157930958231465208425974677768313779907277780524180353167703260454759046417655345367711333117612685204039623768924356054131393508987819474609869124369974672193859783195161386955646449908969654318299331915248618713247884441083589086372088390716790485531771894270454579966131211124060142980145381402082844681712901116750612781161765437937744241547711258467465345717027940807118988885931891350533345258847767436668651168363717917445533282932562214343090219802957422325983684821558672485834004816716770140897829720674015552223131163761889824734149993493778579240129033604606348488865222230175169375747382516211560178948814865544748035001160108865053265784379986752746297406262112754756990196119259295746957061309207063114817781324664103819370543368960124463767057947519772530912133885515507426208479213445951534278169619461647927463540230311214008484623626207337616771661459027171642067178438813696420159722956295141235281318951572285757507646946463182781227617323172060521954004575069169566686936274893134484723610569587754977017146525359542255993710144185328652263598501347814727621588816843832254032629146308541494829410269166411817445209133986019461237628803450540445434227127137300702228516684028615553469335400837760906710012242345569039458690345980376784075244037872914247005960280463505570216418548234370141626778861179895094606016376274234128107280128342023958145019578063986942307688152574981815918978444265111136713534079701017824577988980981132671344763331563768618340503016959306295268538438657858217027304134759056173527386736033548725559739979630328547807170736220421101939374872405533427391038262365222459659959698591250341977114951905910400175512639294814908798614509265155474612626816963103384375840293161804826598876504172050711172692755170239975486557416648895735850542737890664376323887656188295373455048741941885474765366559889691368162219813439231942580823654882948718960083349158156380785591686103341800137132560827759520366871503194949426786730987079382823195462726013328552497961561776523579836587419112728037640767507518968746915242449424665984790186145218384875431214348679869913559698964269883745576667852593489313050295537627739966880353072263754516686550901315037471205141070561163810062319393883845837027570274654991449665351139292541516362008664158157185160568886958157313174118581076989774796003040328618596683932485582363113237564648569273840325439599548658850141857844897940326836414575735653494690926935241668934963061554142076764135817572684674464023473093220115317570707849885338491846390083625131719899729212639936421524208363462818838492631504366839636699382445883997413916860049876402113195809831441656592417912097375813127169765945766994656617828912317738696416850826459228113359649317403707662087259743598825738178041091655669753087641605464578028973935253835838370239689022434817967215888513476230986451153371623809311323743814395460947765489146969231714915089656965721722191862754065733895204418407434355986102660132021611774508335175536392162357111215518621601872956309176036952560096563967534092218780326398603185182784432598313063068907148033405885597760132236895934715949722328399810914233233651658754552303898305306725654742642320751637099211138746961179503088092336439887143537707762953691799469723820475110909375146605448842179670196912685424510076432599954166988471559105581925575147328550625479971421788534970676896597858929758413255758383545905717895604746064617190319536458671308771994326623076187685816828230389377595715755349816172437720797427257277002996066344944057078842839435071786728033441912958393716664862469195251414900877312555172993719773257465532946011804172198386863712705036503197271119680270941635749577366036234258839332736739675795277044965576935782393179618339266122957765127957003918601831172023935324162727016189176417200613156832421303438296574711748307404216706869285236483279945076441232312340371070157552240343601802460327516645312046759116841214911847906860598737796325963611443628404352582034199542924007370129864841219021449996732884860476346076363733274221304350168758961712805435606345731070947908816065317800702728768758866177018259005593040986514332238556326478392282261617240511651456669428475896136886815084157102084523585887775757949992957475487299035800733382449676087646563559551430855128568093363767232202244610332715206600661014044809916397118025618206437446553295650438966293902772762465421958453188048370802043789498177042269743987534603392550724193615595773476765076353031458070499628425582805158772986643064142696454698019210547984490625217528959698941619521016796837943968726426568970778282039489406545612114325619132818769740296127822737192383859513339195343645573939064005737800641022256581086233518874881386054654213221316996058603913895941226046464530005326538578314870610363116945400392564810705209924937418902978248702474416814703812122221725949323300931078665945683890309397006580716720911234916757073115417713477665414428028667973817627262870943715961722665234408092476745777969116574806267133740114074478449289014700249868622641807136205390550342264322915500737593963324788546926841555184397878400153522930116279048510226730130244595605162949305499591241910652396708480112720360989952130584634968292673270645373384241138752246929833603572988680201178794579358215764892725289519038394064768881518482833201400172079107544037021862346131129956891418957408403211090724143830565347682482392298085835302679050483440571291980090819067440255606550704346694861314825256611477886562366303621466142972561050473514602489988601742433187979965246473464520440271367407137958390897993294900767497742642437066486249354728253569696815712316288725458546292894593532267404516154491943567038277209190960454254776964607035145069483666481735849969550397707900460086083788805156702951918171799819172553650429797332421922287262775817789551866157876444533685220573871777849682063294092574209075434982210950919306733398386559297769988863621949665595263999370052572755651794271009928195270299306603897064246215066549330119159742198271384049451387950898410747511622891581465440730468002163243809023465953518180488190283719129191576738764778186454087602519737988542220118318462166321833865666573821430385820191283178478232592267456000504704237924142840677508591006072505272924097155836610681377370898304480127184199181918168040772669679311033201835337880576326379144702539021467023619137869505645026247072024458557465818420950333564464777832560487985085521777193584915838096711238303468184183617076441656751239851472228395430646658880347325436260030946557695449429566721768015362683760386347123073380198437915254879114416700996199666015745836059847907589425544069976699541039187589065959743880583273318511544527087059863093750180782008094488610465496195175832897345508726143515966060353434016206045826482251107353965941498824559727078878664257469018529958792948882634935873570797613526129300859703612647602550747911752694074238666039407780836338266973923722668534842210083410886486689039730121025937623549400289637732788186828167927362254948952898062468354656900022153484473683324030026325437621962116536543686155460448064504086462277237048251356254879389558521200982078341341976903052525991807088949627698040868603204680962609024977892202799435976474500536112986847327869009613318330887901048803326381671036304131727578718228981765794268458700362468695081562758219504490591999618615187108007615966773172495555823199804493119386133648222813418680589599053664728763656313450745480702855513103272322142687836504038259396456059553300598597965536954716643327392055275546015059241514735663653899299660965588181216173950558477648235498348814781429267010109804258861635316745309116955735945073296046026714100261297266316187055449173620690405594515048363827664383355468418810814481665531182089902046465695619789611117624092861257396786132963598491979584816107337787130652219930274662837761331741008653554576036613769718221405005321185217934289960101406863694082817946165121960240735476338448513709429617637273511477309825291462091213189681860126868654886808362949608135549972975113094631157852187396078398586835664942749532826376214358350222315342127595355952729724636697843662922106297407207521322477397439689736477656700973161129841887932743282080299177334040356672004354502850801777972825164962007818561551433823974120795759435278892058025031824862684549622247085943755229553263219956989681886239359132863257485973907215844183802431322049743029247155417152057905929423158172092962805600300106038930776807947975660767799438836153274336453326071486485620534691753928443516583595057751357932964861746577910219464551429379060170305541041817547736808591124993310851241153990754815144469666525214320927306419691767947053652357481716750162275293698441827770609023655392523504523480957605147610520110369282254025173516260484478898354903377164429713362751911693680616116264001715093329502147908062018968542801094623907429414763906724509747353332772229295776858165066429639035124812811004938080052792443882035115546821169743827193756732617132179847005483549028170010694502665435028437517478415075729705920761244838431495025009172280359383704245093250651104025566064487719526597631890629788275145946999205600170378090578809999758981520238475792881375280457483173235570767414479220956405566252008930459109012857115579604689343382453610437605374129720968572367942750653389583236737762657304463500540758705268950348058454714960870465593210364699751455438282513796674356573503146681548057356505173529003960057131460318500685861288623151395404331120147112751977966327354682094947699749094452269420410445140926811937558195798012477743866052367913458351065248961386996065550195298581429759892595046959482434639992428545123406785195925025649976550087530862567255924081007962344017483865512087510398193270270054782387533703869156745575114861803157073532192080613872732442371996473198788352730930265582872358033406600883263270814462351164903092665027926535530786036326857328467627995338815745475161749594444325200141359858364597433583394057950706021524272503811257667934080024448596865298211905615343593733124818720754781951326316515792181235767164493914317945821080066065385873438329318660800387850636206894175293634805193257427063743858483982995266099227390449853255894430328005953743724110435881614090867626839040115297430344626881743853692441802969584835985926313595050854013673455512739196971612651166664688682974035935088493744421564604570942591116798751844086325301041024980324617550597338894636426933090571658769591871033153070175736492205170688143177647508994782770131091004147523810670981136657083059334755166613142788411424399851384662755623981747942324173150980133645678902615977096758857190961482729111923707104462688921602156846281942805254074309922546855376513051823658738424145483712041556163086628720884751911760660188679253334524178184043264251381343739484069239802853447633891020094947387170075556459682699682284453966460284131131032490830977806792193517441795564385747849568592578073382842707863476621090303657192120217871951635968378156947792341901327817897574031088819750064461200233514690760565772260522194103963231302830737244750893809665353668293665615638602483000204138781760797363476973684657387582979080878955731867557684224479709396516638221955161734181125123931394949933326395412576169008976724393103135045950245820178725409512287752303451016204014364973206901357245081375295004215524417335564033127132223213238969619115047817100633155904774575084778255300461454418961006651885732476661057981882476887926899339137388937910888875618560457962065624467897338871112291260720878941965865928690174207072981843286043818663944089892645240578838253604208625785112567412814179764286914680397815961072737259401056831589050742738351627652480352557142077246305332944574564487324718995950092093385591679464916868731525425094558383607624976796547991681987744046605305528906949216477510212156685047730327090136611686659316258745243612301525074970951324250080386781064700790832200459363708339267824123302284603544703243823086226138732143383396854554464152822464489154570435609652579715201163658691531440413268211020384309894273680518547240960301714474979841625116028369238832503041761923503664916149119229597677826266912425942697752107700790529190508422440324451929189209090556590162280156077534665475107437970773531546557492051911859162075288177314791455689793151512537336885574528322528814475266621054594962894421396384755156288336948785396973805638377819678625386680118573563187930927243339744520465657503477432452947782246762786082420839887600410514358575494797451953640648156609404921813882252618165865739526322803995483463230167245723586280457916142049601495242833095076098090253053803428163293415026205505322640971305006186028810249875953358106465137738823910984129005051390503589058998014703887811924144510669820714838295212156985795394333981223126367695058419973228640724110391077669475552703781390354314836769502275704262269652068604981743585521270705342563795556212750313193183082471075498353136541666618043745726704934921194194865549317732977255904858054494291996780514285290266311415451596652357048229202937262769455489218376957504556065816710446908438016654512017300528464592737945543794612392533498594668853861932228984953900972766102788583027157092530274948111779556065199791606702847143008915628528959233975796752641419919978281077866892247978594946699707255070478159643330902081049978170671853087518152660073965736531849520008674013197701968792758879336354908074790494838884806428546182197528392778551200889127792660527841599107566981057142806248752006236243803867058255459893793083165638465715132837510274138140750520774717212544543515234857917126624680561063564167103763912672532147778139843881688677420441769542606925359310956504814035055271959617503628350892775797136413064252540183865015968283012271626356743992077209677038014758743882198825032393755416255129692828919095812261595203397653105240578330629135419504518510394954528447032932599180378516666370675697894160906479520417425636998621683427238167986142629379810214331501207129198558152975142429282481367032849844635206154808298215135080644591804840672865906263795901914351218256814706531959220286605966686593365645701510602916637702690694531218651229706633874451755618588240590561379412125291865193174626511642951178488735397251231503398448072293747605546591218784209521011479122846727208459480727953021602688210482782926352317652359393921868535783264775505224942973181941791849618013104392563725586276563314117547590077345731497388816848721873797178352172463476316078695112893751868205956570870413480097217923949244628227735501816240186535865734501431199474593969825656786192869553232823825500804351438709963112357527756707707293834536571824505170266142552754468955548584827955245330115496227006734272285544147411588348737386557485110876166116828176896493353689605607856495101904469674324851291449350816462953534822735775728525450262568661809495806548949552403872614896020055531447433212890737518133996993208957697620983249479072272447517187100418741323812320895632800879944994483354375528520476368158266095426421726737748233738060105919681049929468938429710607629822809930290191408203994535382179118676312621948474713843279455347862486898947559864600345262639083561577191223328724338472432993156872465439467499228722659820820581156504872836108236877898180280981748222275911637137950403966233560754067747341552708350409847129297369849223564244932182863302696219026803169983417769717254873515715925044762140440548973259479000373085490482910660838913998573472795847520915211538174502196836495645395782240712887099716611524877783161545190663279139499141556661372522580106769142080020205979285600130345659522988154682027792862121224363161838945402191251969388731246357422674675545915892745386725182990965684339724856759069532419163998898256044147382460873172203336002356935173654894990067397538504591838019986116685925110681516745758404503500808451300118449668347429007211930707651239730356799821150759684694096288478373182060258405814445961753208268127788361751477052178439797241570674430620999953986989685386224456113138737273103426612914134140887075421230613632692793699850413479545131156776588660839048300881317869109738634296957566368484074100198907992866677284551795881351410280559348344476475108093330269983148638711130581556441644403594327633530740440876529419728180013031744645239023614980715772438036681785809168117223321830240151269202060913983265553816491211171429128183720902443888245292638134368119785376197977593974220205559408243647862040513020662519216344904579809356353992678773723136190460952331258941059881790525508507414447758284197332763104721258791074960454233965314517400734688035312243550808183802841965376394676154924936221557740176119855261443610143498053008443885355776578397727129452312825020571654233494980870012710361289235793110274026551212061617647390019636524541344918660339650680640030426769933313874714754438866919880504040478841549698573639439778798741146992331556794809132634237157056625858536246342289397981521797273650032061460439703565475393255615004905814983165274513845687810020617521544546953521428465988210922681512691193377732576584378336350758180802234416223009714718525481744252515473939434909964965334895126339837886889244837281878629229458806648747106994112588457138805694326986285279281590966726616544550644503333558163256549036896156918741885642275503285471753585972307585505862085066753684794154223874050056563731423768641656900450359543011211038602101505382566027499878213187408989295190699769497371207010255501391216833708553123255045615594674403981805667903100474289958330884123849507943929047498191125090371808332513572053186676007429611451052907073708979158872645459290980817208184250501391961797907780988789274808245368311010191037438846057289526735629636654807487110713309035127789986433958505350605415586593591263600981591253553339926968810255863620110764058216387883324362701467736742532543543476430403209571940906080882639459855983289135462028068940857424394233396948686339347641716556212536447460083557844236068600212596535024328001457832604165033023497005476070429543616255491229004511309775524934087815808630161890864470657159984423791989639734070779201928634665194514542067840164200016336273577809853587071444114597985389143247714261431866127479872864890408025527564415734588685564952908665142261525738957723948465126813656693752952931658228115525761925706241268344116257158809162131564012929579742899959036802583178882937607684128096133216658931518668097370754539150988292773451490680240963533913778068919336506003764233981833326200115251645025270818422309236113830994141505385145637495635920235763668672140648325227624336371987658212503933148766204206872102710923759479817928680539418704382632895313953174384074040946747078797673433286038870658170561719088677399767624333327764783557708948960437295250346532364822393040615394317677163337801572642632722023753035142604705246373497603310550928955024861981149504713232651709248978285295337264982835630962873656668196921157945521406084082931160884773508515194346419623086184468621863477782897493367166297370964190817231764934942876738930894753098592401745366406352368520845498470828485597306145949093357682183028717948460954794719731945783381217593514825012067731013820466417824859699995918370660098789119872867569612251454086600311026790932669375979271957362726880745065048864946489781004849487729277534969931574141922985435499110923961943709815154800349977346161826724664838462414037506307860592994255138411429523735581788517963274338419332949527808780666899446834571233909823289309372179395129166867492804792941493839188581964029408048202768664821966641874197088003592472608179030613002467901704356441323360500800943036129284050948284939754055740171397332746355476781120025927221727373691803310550842949940689717259773789817006656384550232674813803322173895954595812088937919102890055082126464798665889359796790747500489878732476624048074720457634295737261246629556250644484986356898544841543526924147317824555137707275370707414522307531559713707958783324605466503006887311405749058840433021576660897623634128002906493842592436518647685407213398151461473609279207444359066909385049149350775043106002956476289036536170385294280517378632510458314556995976756564033527638405783692246257781278876967675168724774227646206480264896322730118521989541662573054117045352009237641717721093737830196794672589715177363021187750095085874247916213852200476253718483871312277324649523822360479890919050573440547343214508711276814773811798173130585748262339114761356692057024668617236605454627056495898884001921091319311341829791316158012409896351702004636569321799053266404885694923740072993356356773420286994743800327878369540948664932100210681017354406596074873461286012204471703224107081920709199765680088254858697022961270840184175583716632538078952823588059600742020304779083203650463731090034230466690232528634278417067302510041122622652816810337896811124738425626048142459339573964652367817971924947254603082016351589505361434596966019288878357991324508082367728126984817169854223489009136744579126783502014577257538328656952572299454093507068610177058450183005662253308447908729921492746447097585812832948907559910218786443480888159359652872227551645351231042072036738053432456949868803471927187067591988017631645315492593450205673265089960263886852927451225608117505579025964793971482729280576437725158923372751473593231473834893909438881060470492819569318378813948206954533071347529781816535265921493463033560856905343508712064290136068547197062383227657577903114206891137982635192392153266664213735963593767491855340984587989090457569923618689502135579039176924781710020194702776858694501491803742841187955374111645836010805586133014760013812488183150104983247316887713893096313777150275479699858954085494745278465837249570760394988393584690078653483522358229073703470103778807746872413369206425559579564267529909081194854100987057951255685659266756471640191558033451884564829687783132959856168450265699038458776943610035610967560231789165952241909558484109527999091852906228923410409847276892430156802467388144417634239799287565306674172998019955387488447103912068255180445688742970575520362911903299141677701108837835994321518180648744151017061795317589766197794083782912622264214128100334526991966198626303816863075060684441586961751338163250483001779587481807281537557727745649103924777937555045963152266672874431439050188753287662893988425675899475082637120051432758450354744383719257149982269815391611216653193127563717597237874273820191073327564086130423188715830208356649704905872425193755497411958264736790148782303845200243000760122243230075941626062237264686667455826649420419258949481127680588273437509513170297003076192951422725269167946375264618424945546809098983603972641611048142452281791084420393162378943595831615354238346735452562862334784444401985627348925552850846983294465228936599275671764925093148055709582879796928462965091421859220032527607614191801236441908695964564742304427550748863169205271932000749163516342306696083009794972254738887479189991835996631853137937995763896806125670389749000730380866551915752562150651274978566962294785455929777240071036329972689129891914376152840873183426749646808088490387438639881253283506288149258298703682167173163426062124996194535649881194089994824530877386697276395681302640268920926702474989285626834337812593584546564676287074684901936555406969891307455830562673406199581572789631607590188073179454270092085007565940392028471969638114987305267872515043118828265388052232693210806661997007312035312637530850392908302346985360780566749966092274790053578284404228244051051032775217590326866973793747953658426387530413258948991270653807427066232557666777145220656637502449648006657451524881620899254008116283509516306017470381066008245035850686759838370652328671983927972641487101203761887467306650996892457936159947087937228387486040181881337588211437446066076059502804994945513629692659482270138014657843939453748484020415784185865992566634778327386710260373831265645611966867135752008110216510925675984405938367031076057368480200384340587105007889655839647907736494959302530701409400862698232181334199961234169832302681854346832144286900089123535130121064033736080903625847520467199486452897329772340445572752640343991460706996316081746124098367894463583756727729748197444915477258035282168888877333634819738525843774073779918370420741930640270455060184492892226499922065662732655399164024855445241738387062892223648323334941656196509698870456888709895164826456616732516521348979596037461361313611441173504081795114889899952214305079371587610430801247269577892904605781030740140289131222820979754066039674096484296204062131454682267648986020205380372126167499206911216241094710370706189701574521755980780039732974119955708363852757426757022153662722066395118991953405179596078351777287269943383230529086112520989300024927621864778975006376265724441321003613061539548794560703061283963419669236901444788280415646759675420416773599959029433708385351391899552049216180876382798792375101847947944168701170018240099485575251282487216998845840058926420892794183440930341134950503070935657187774223423531099278365744630388903130822869178452927077166993399306391049414078184244229675569403654185307226696120999512989843698277772817218410769742326317031373322956890698981550657790040005100447640148038584933599402971830708791799785792648811740527702963802312164251541772197446709374606905232278189280660522337732145024316481795428916939535034302785041209610782626953334385026895846760355944412533781096235890282346152842175847583035532086605414038739958350259830529989005125488270189776768501213904647220046922331938566674605958054498255987801829784198921193176525205164773290176985465639935578822389462235119861535574561890034525991182687799372869193566180114268712135737666337834855508014023150100513666886445990359309188678077974204196083641451141101587210051866838859333055572436314477086128901689284512007172698393141418254733265024967694481604365964609463781932603190952454483714658305341832223797129039929932995219644016710137242329298060710418996986764063890167157755612944786964934094022410598874064130584014852883498625875269061356681961101262780437018164447659617076060206025201162506108296952028586325322161756184066552229216208791196446135711351346623510505999500655989626174243704426109794161056773235653754195864377878258219553620577472782997679331634023716628080095417960887550268240875541596932048011621215719662671790571095436061814780526302753283709789846224168261902528585157626881026640191290996385126494125879067415303264787063701714041430734449757333990063540015532714406484981762072674247590317138636218184669648460586361389090168524310885885441556660917682781474984147977145872906175514973279561987546091380824807228749329278802401287199566873435939036089080358482647793296624797292047035197089307884383255312110828483403616447426369711030367540099220858152899401669627030426529097958590477174576627264315037633407069967262197829721569585410612105885183922548123252983005390527332553916136034613031749426361862263594629992514483109094128052102779347860161421418488401924902750191773122549566504823978208802954940137286570486200869372009034455410296046737657348565114468859531374235162149562141745521178724914187219901449168709602134562681272198957495898386448364085536739221788086096517229453946875493616027088081864422240119090089976833387069246864024171128652657028182767485254696718953869434052699612630139842821370152296886173681271638074868246651218544321466054988453204479784808757959425216007108776197338050198991999972166632018571601346630321692267633363988689686857504618149294365557856107216193135646600414353797970606013484326515363911857778225382110570244531389225578790917202888474037729257762826675860582175283850787182809510219367415114620136239962310367082515837723556569624981787907647721061468396549136979168139137297867841198651345656203004215818037732625512326438457492927464638687539854820324031360693214693103040593612370208105142733946189006259990826590142844246649701561067653607107008804309788141381146399966983129644752926991303769030828322017494069820157742806428255859008214226169404435464668430816474206767271502748825842242194433761756497730752368725228708963542832460815980202944272550244327518348111383251189833360863225991099048611034387976572485211108266162864415680700806505097852609604790914084636513299288528217893236187106202048076774002600490376102889982195365773344313007970028228628823422424914219721319019084445682947076186245573984661113097459836952299134742847330900709395430897348368358774402034730228413560359365390597235718242475470379167495227811604590325510674091776694410378749935676646784007943899309357482744666770035047597838236236765597619965396100133765377255485729122703705929325699874215652775475767019674522032881843619296965010884187273380709615777773062573225825176820504838014973865641432189512941475971281646754967127713906098892351408201988590986867361207355294131483822449626816360905130587287076591375123949432610451464097181180243553751079525351753774612775361565916820437146759895261161778422866954078397392815771188603361706468496595545630492200820495848569253259387781019932792178250645937888647962985842203803403836112948594500938230081589407868298454766883354768396596532576755856923921467776812285155443884173502190294115641601355291911847239810241083856414977900994432431592949463872913675818502813277513584746032631514911280943026252677876198828655849958050912761844182176042615470158204385698033928219776937061025096091898305114277685811562121080863095724590085287406051644000570949963895439868122781666754025640543877534353908268432559904583253334183274362764541690045568769764742778855986696835594589897671478147008542387397721933113630752797509542932551282722629359307842722363446796547215987609552460647827690533190883707292138626684289964866365871605617858138728184685936089749644259934798815693363178276537374031833524986305756051414616611401391622060561907384701375855865622275485624132172467692281325867027706474478238456915523834169067832995893407244536914231858806632578133218526608218431279250372700888957515930050106257127164702591179324186374969290781021961876635457071484365320588909983746418641682432848190184987514971426324858690801974771652969757512625363015981033187436734794751634341987758465339843131471747240336837217816513915820745580117046275930126090086336742942060911691371449659117116870685309379258841775885586537919246351714265166831044229594008327506908687962416731286545406695961992346279806564146057955322398530703482693399799044677500956488938985461395288898949196837998035516323267250558487931869661398356506880418967291167343234997183715395184389071044811467106743823968687267204508670210024575929937099596120414679970873334379895662847725311593056766533515719764789674814261128234401679742268679221730472346406667998112725494448117002421506375155411279737209120326644005396712881630596448393022758544724960978667131034322547464593867369117657404842211070068152000042690622276004139526576931994202861297894922975467656419455643683798503412352052440697035664978447858039394565467039473120374319049727082591793919167847304065689356642925522359782505063525567505490486680868844485137624881899915857344553147108413351327316167430993589008021426368249906153111603760693404661546601502906072907394443393694081964710020366050439334961967889365053072693998508848645266250866285339365451731010967915847097154503459854619208871832089409800451570682322832383167519563554463468684722312045551892653886882163912184003780501899166734299400566457326436698353732245365480069943246889792705161932534909921253403749624083223124221375941778509103173196576156407602664061525756437994489726904223973035762804924251545715190910772996888283913723634289743480487046544229877643265612362171848678535133724997639483474369596628762487811999210047006696925586955235428904124599415463401674030246156506084472647741386249277234151149938550496806105908481998506086241364710454462954329444611861698309594810046893250154150181194998580263670385037370752436394889579993799855640155577527581876514569240043793994594652778527659594202588130761406791917055627009238385831251043687979772092352459785783994054511287852300905746150927659136238129135777687805421194246180645441392288752440731935782460518655932572253631328574407274879310210318523218947388124240020551694140297322888698269131896904493346076646555084541001186495927763137750411627886135471935856570699831018072790247770095424802840340035566795660669408715633667039891530889270429206917409212670281734383749144559569469686732394082295937667794880155716843790758172618955438456022891954933720927501741972258245601072495130631879432310345233609871686751301578506747976564919529975598964133996269968231133478711291293534484946995954747389395188144802404341482011872275977368735581651273953977923867031763751504592225831841765216337737057112213186201895328148993913212997438192300022027469271012902926609763605531413633181124595488115779763679177131437714494224144658759134105282914590897936565523572303247112101178734975256253879338151414332004862782604731501626976912316292206540705035996779247761845312865469674811084310412193102152213518618672917802876810243874084869804439408057176945322609932467919080171613310017624742466555740638260171017264740432962604652267757650246955686281043247306770990801503243274146050281831234783049645055049560741117056706557250437503890595285107814827098149290641315416675636070773446589338970194198160343947765407213909923029530038982108076514715071928429860392591080771940203650842480869066700027885954449826997795436514562530885489454502482715071974339350624509156016450212944226456913133918836620290038472290383072682202276157711143010841547384247043775144329642053032148693985729733832726439873097778964212651889156120815884106850295500030603779392325792669100210591372355068201800205348757976598134577748413175161506235301951770604567698254558205141163622002512644129159912841560663353815863633960863162936735174074979963947542310328385197404969978812164581716264197228280689451781569923515567914953808574688622287175520866405744701915286997673911023462054747333618972228282610306295997158012701248244461032221659562777767706058303371926596179103678921382661722261495539298461814806284246095317140463609587235117444432457480706184628934134787758514242663404394484673270583918562654880533753902719368372939905587038174798919260783614642690085983637334172396267902857354828586185424721241178239875645052419493026272253718052893165955088947040203244935358041833629570133425809123971690194158286335287372372766253312265234259118263376297581028569015687902773560655617939623639656151053668951291062353234471345910416481033841185086595083673182308710996431947761949295456375973980399709515090994462888874564950661770877416475640348741522701529703783057074342669498163112926210275547478460212495869429751647912458229642081569875580632407127457907040251463400506829390398193503110447340350725309390975027595760630403202089443267534097272162503436020748632419066307899467577940790419808010696684189088820732694914919242947388296924847278101315042515976982156875068732288594473682022196616547216389084638396362809549689417402154848123592994098581896940101193781204593460978820975364846824412422885632746113913377931650507398391633163346723741026212563220291732905173685941896441818651121475994276589466473474676478092427837628977707214472991069161048742728722491616224191797931475656612085455733292131896673512597848708418200569249672305171606842364131641722395553719298864055737476548936245922110728897676334020751891922505151295776278656553235080924743861393434753382163429397014414538564303984575076759608076511698441860076801220972156853357302926200137491117056148512635689591540897903314191266182147739646683789950263675717705724453592228362023872327634698501972698951285086108245041890969434965342804028807581603860412355954004162292993847158661464178049837650366978357586407049962487417604276965569100280647756058327832127957928416561782596653977280302884471253319589387575087637184819086037410100957367176574952670334608256847448357326155194073991856119830159241026057979553655685756087254656546866316751277261432598214321115396471566621100657605321627828001222367071681776603218865525725573626510772946786470389638546356289594241672691467490286051501738433773738670344969819577405092748362972069095016845935477645737906936643877678214248407001620498574053724365561391304265434006746926558338669201297389634261626223695161537163779596900099259217865007969101521831251678204835749533945862447695610347896356160976134521564637251423359868121684791683865899250965442377733671517864775834746688497375589944507698612441242755854511900019393485055578893044252006019949193596261378764941891164162824810382357766258498913992617330051282369669954510890502793412374102159965004508066770061809426079973314632854357167409721756521913508156885505147614727627876577812064719057708254707961152393355693723694178398402484684587731600050529247892323591642458541781904841287937272555023295884485424565571603291465774034396325570908030893896415915176019586246339250734132261278447222219592219913907525469081115256476881423506637005244420887915387554829254194029133791096020012666957053381054768287383397822052593539442029044731882998241387925504597983405114764118211865463621519513431569924259653012360968409339439307828147096263554261216881034479408773717749207647843306040576380618088391651877987115123393195149998737254362233928324902342306071264718277432937723240234307656345426804368089363585909239198151416663686406882941420244558618703075985935594336923164074245223482198881269491071882732332225750344654612674728478972365031792695310545435309951472055581607014980947856891214870582633210991631995716637180491404813661723416251812620381456658455737552929044799036903716575732381356459630752561322847653564992253759955363290856955840862297916281812150235892063079500799886215347071543281162341821824073141483283936846206457665989202545138973022504230572716112612406535957962130793717971849540738273087303993397562545293108927154249301276258292547986207356957459608586405922981880353676086166269350265481379230081698638844615801012265020608437466993959594866803821070380115944969838206045821334917202099887927249079043314375519543709011149193524838862909366684820243271769337778489992674966514073027822830198606060296163083763829712906715941867211469020922795136154284372142250725326691411790400051169158432734619192956394795111893171876030843557679649302449135726857868464942254331939911107466169111746111999704319726514884326293788309160659840603248353338495156165510659060274666446659571358004858417333179712925696665347916986885453876034260923886673774168422385488915381550478421595079337124007320930785714918934453162261224302026681681935540981742460585370497049523290900284244246313599468940405515247565768535153986164604673500171090157638866368419481443171757963101978487308551505210603758379119445452968957586457082162748021111030049797051081651357972520624705554976059619043370214931813525181573593930822928704452699146661458221325259212219203838330691169293302677781217895339679275269348405679232717701024581268189749103382363077158294187599745965581703695448868031733151722088237326864656263379546993670808457394538322804728229603036967546383440015585307634369654051494812907551242561707480403158707055470252222742404382063325054724627511739278346078389061005373187760024980512984426335262255444671066972206328326877648283891006182603910983772082193523144540215183675130996908608744322673814257196820928343346462572342989262814514264550745950910875935490495051362282461804706351726810835100110637527960868419083770045008549257026707557699335649226470129059580881467594555389504963984680324815251605568075343065021403159449239231904628095010091348256907966634913221364245194570747407985061268201931201822469950877526034098466809883886385312545584539527118677106726273900235964807414513390991740339882708330869056089837862327662876352500035808387765118023588512002464215902792238523697433077185911741320079603146485906298643838058509886668289614177907912693937802848095748667134272328383689011146258421795153381658473927555882968887131599401681685598266493123999363396794628912758626097000785053639644756579266703577426148332863303333633325918822962428742150563630011726827905215310649435205231805200322486740772763984765555678390220007795174601992983740803000155737584000134228199257953376908875713494802404892302958306601391652651327101073658341474085813075810876801985659709748598523979913506076026150194075906865749799303209930448460907695698853579232741040030429431669124878271726371352155185508742684360287119214201928410220095680914942763484203835985291890490082539278070400160402074143280990148502790871289628650235315422921344411490949606998743518912169804968229632924898634934368256251805900011304083549191580184754646224392104556418550107111798824466513497288462383626848352020817858025158726453884118518826194311467713607953654922768906203327306870328210803247138113186659838411833568578918830904318833505285474541279648012977589682789847450131436144840774532892446811427991949263426858005913271784669255541876889731767191883030536870789730608296745476682839945144786054577389778547030878402982050358241652430391742278036794228277839561753175846755601419282680847821007658954401210266859379280005664196803370810574604059387670233687927467084393932253010624642650591283906262791009835320937598705860182675659482303217723508951663412196368139172210982051097469476793471195712873865891947028806449637773093758328120239914477424840952309514403160511553436630078941919954004003638471735088338643166443792253695126544298178324478104174091675766212142875253694216000394157415612817723015561143079441986812287184664304578385809937370894521564390656113608718113067124492121336269007054504953081783874409143790961956284024973619447478030976470905695506585451570115967292853389674038671117540655998689770797335273636030980737116168380486342107482414760029659791219400698732837758478867130110485143069153426225446318007954757846468251102891012151498921766700583465194491013679385625900330751548353006148997717185889854215906227675752209756806130864277017710772154033788039833029575102647776088011855467099166750152214476733162175946682347693164043217781867169264797744661522161592381379833149710207601450990084901539834449077167850522621978085958947107223593254828539863598037499827717056176158218084071182962093880273621670341140924040865151506262444546772553687558165567668362962367535500812857440187035287240317968212249549755339446825707001072520166547454782170249608631296819111623723129674663733375426160440981052170491409240827776328319552369680678784676482165210205752687591302356743692971403233785532023293141064673714091426992504899371734779808586208468505693274050754852733174664051699180912774710364442685839335240219495241773293832146544697637437720904154360261337636094726434066022616764215240574408485362210235930629037426086372670538091684651077286257625862286976581552278104423038112129106388965390721581491135493073733711953529103304405017570745350867161797643207551204868357870121061605761861867253749846696498722040791973120165329737956022659749405227719096690070497852431750748790754256600866097763539356837563307611777351040627708290655288153973427184970379242377620561407992765256651302182216898405063024276459793429463462231224582344581602854355200361473131838321312116052780033808336060087343380606113076251966694790138032222673868957429399680521908169284582104260951829521777915062540109862741493126145203488907179011464208463082902780131103402597972550945263594675077007448326121540999293370244561853501225123864438869067570744156310268602770794803486475175354760866885349352935066606894033242682675369188107921258113545404178730199246358389572898688662570933879168883216203079262944350370877473097548711383912477081390616110183726676441797284858664270977261646022158472608556679251408823091233606586059491426947927017030590456417101714954173333768134753956633770844485323838224357994289288768858253086525199258396058084316538179688278958273897669985793704884322313552984087252795588032648590764531329822285080052630708849396479290153281286604121028227254202278257923223345669892569236712883133121488496841389358358515079539072800394880906657522137623949016103534787221018499424633098594348720521772694377120401401776210151560673022958050640294507056371835614585943365364739125072256347231059174293003337412735369571733866561317640166595515315964691858925275003553129287089028369403997991855620956312669389086257585036593505364889207436530776662868048162059388696425480795574100843461318185342413690820251379261357178481436936385481075122350249317068027911566507421133885263330911069524704178611231213326482349566437036292923800510363956458337103537865398892937328477901334839054799987663724149753201527238080535261241402626493341661584591883450225435814587951772155490265044713795171813187515742231544784164832126313904817929671732409281487110177632419686238071208052843636405088158642803662654636914130322333685979375145582834468091918182365490918211630578294113290753409003741848797035853303609043335208205242476260829714377652750966422569702977884004629572117265071440328622051857088684701197224699479688340219282026544364798364877169314439241939972061457533043099281353963975857688834904705118141891221332861010837857779095429593113948860881514413510458255050051018387416247659050798225704588497490597754842265051938640540469106509546262202595948502051744281876746204140885383847295909262068755932046836483811066486037564975719125074370679028065121907287752630861984804396090752791908862117599534511147008590719312274048077954667022854797107687928472446926034559363530965922648422138657997838260421686607691646364722649448277385992126684820639645224154733056849158029911342371410877433883698194783672346836061337067626952867305933878144995769363457324425759142057253103539324577736261880633670242632658949698139590703782448288468030914098539818100048900970744638243857170208506513927402097270224415120949125854043175835921707033690423928334230228527232468598334479768631821205443386526883558067648221351460580550837835095195728210483890857587222932070071937584924945507348478733748116097471798257545452732589757943901367062274983404314401227686088402022280060018112934466610193025804467985320246557235767968037440364556815760074702532844067561201261312193875126861611626634180038787654446508545640505063331974556393259565691586474237513468051670990734498428174263896170622334706357698568713291784972602906057893735824825228372188693907833897296561671451810984804089994263296508505018736142107639338484123891606013697560703263586558784614223242938651028201494400323197274911332290094930943548483880398170288891036571811004108827505314982417568778780781470408861941379722755352991020381906363107880097126788625442513345691300158504527491663284479933091950794259187482170196498377782810642247787756269429201072396671873837634390046411397093745675903695983345173400658049914454132510211090928630299417037178207579159270855593683469602531328166306799787478701406898693541389934488275092868571666866556204399239115306861215709011316561694595446720550888687351061358735582609298095444918824732494315074682411962087895418543465246081863416619669415966011788785670786653344121780469310698257278253808542411108910404942094826652462342041848501567527635527462281074819886528851575053475905396739869602251289072873581752005267207062729830953008216218038893349090438765294940825008824244432211618446397479056597212042442485143921567245399675039461842890078139269237749927489319102716346096673014553396177478200696582998225627658403140427337787087402373854030713107850034579467895636148583257804826026922524336529074576870534832462209076946676140633771149447944917681221162310546792212144484731621668388965135813074282653735153769858788828514246975846211896714501177500972312492559228840959344804586842988517985681826622842477574546766448749991646213825615052633145997698204649499948849215590600540100034444421929202190614081114942320928769874474081014576819350481417121094920116389246028502808489078631264814566651782162751225153179423748821969563809484642329358400887634432893351764759549021925585888816227244153341561028952112816650957513890414143741094343623541404989906698002050733541601611779902490203353275577392621920532306141399632732942339703651360648161516389019635257243104169752886739929972048133993729026679554252434572234902167406715170648496274679854082939772134439414631556823495053966502510558791527006363122466495428389789916239511034985421681008160261026878027802847555176483346460504709065736782857751708412939740112770277293795774381659495929794278328740592500789412074327497749054194958132404022326712095272155857233643891363058844849120071370536904975873352902316952407558510500544982415699602849017423541918266885259259493434714574718907664188973353045842719943239250712140701672359547220504739008608462600606230984877886411443703591626557174846313459230884289528441270200230767737433770177356100640834314382639042286580254567318030111096632346591932821533403283292923641484908735603133817405558533825086738422792977441399570096717760293339264722928194382589438349994058260345041955254475103488658749942028355732072376571316850372167668993252201563147113255675027699785558538949730960610670023014213324146779820191105457728258905362228716045441097795527023420795839976698107259734307684804172636665223159562340614372008771678594603531262184975537265977696505753331722590045560851672905728168007094531644190230395230069333103310183654180928881452837873445880775250311047121338484760964908864875570363488177161578114169853627387528954954270837424976136886228643562864942502735969979946598700303959870790273888300326717448209924289766987367484454325009886690223585241255968634496336655905218775044405252808937188740845138346524330610407021097822368003056153749262166077691687774396761031402977964680872181509358575361417504780931263818519998296999766854349840164763660322642549250381757403458946445339413651883448186233908676981982229303166711367469394088344458008897649140999134553993654459340146982680156470185812558982492764195415925236948771691235248431043701417912774508527850405402087904021900650558543063184168155764467900135970508090182589157739491436944590065013218129115433229349780908616508353188064701918424751239825026218254724460602677360163165399644582312595486207548652789095225464111760102575236802452430743959178913788245371970390504149207529246169447245311016066808875239885705694106835985333843189910159268275086551967231105729008330980171240521965854865619674568062390980393303791531436789409468834157768408845054288488177626784535970200579108599687541306472800003748230316999202876996877928360865778262793340173264433200133316785320103755614641389590587810403050511629330617018248161793679692579843730132397611222157134818202549083517551211089739672419559626167076618272153932584389274859208264055350877707488868160541682433993149239488071816112848775243561912649421302241342480266186161862477985292151216848581531328545961966928849119091171530210917155316368189883004493850472491176837197882914214499552075484731942297212666042342162905560730847710224108856934544726932999913784356388922100579169326302363661847592542543638095769497323079803962514580324257404672681406961425238051032511101465752404565107495815070041062448438204387579517860296498696271767856836764956769091904741661868047578730515163223677719922993983121493854078319861751771885161431386963918940355549084065765266255831714353243075316579917990177045084199492250884890998483456053504514620879265616734603034958701053958428972162628868719287356971132245240006597953154339161069602229231202527336141169336641851998306880135333892638995987808230350207761538516904055695964642551169584565572596674122411617703126317792609522239865060586962998487999023131074433629598631648879296997985847886413053594722944864193288934595568751570190254601882421776209204756768923485987627545368713985213434245387071434744648498807689000966621141742493819995272157986168581959325389322448623905408858920974294865433596871809977782232052897369826519201711806035004912943887362097969196805330330737569530024194083894641714293109510875184137405149938048437139763450074243611680893681946811808177087255079890325732222138482093847326420473004964163333867350447851129686121529290817550368710786832355818003760482125245046907069231578919382152401778064368608002391732911758569294871761727405497510054302796961711585730618013609950292183601648274627324981828695148010135351106644951575255216382988902012342963721862919176673591516200945783625912177817163598501537007494476367102715757638533763578643782605796422299145842419647101149562603983581639385508430144830909178671528297767767066901150915993720867480845870658694764044196357160779447793777256622943722891135400862030997274761448597365654955714756948537667049713783427794488257837584929615279426014731277821836355970247373046572795892096898433826975702519486412700962472641807227043457540975136899712462277424956846102988980159471240812883151685062923642255788886006873354444350457982070131453415782528404192109346314365373747983835749008831981952359889727783662687716082347746176744643142819467398175136697699752077379049177052137996852619014197885704522925556380205566100797121182786516958419589489209866601566293460737554920431473622524897156083417435002602731136954238213183417493598259253685938622927255373013450391631952619649272870543972269474698033845671752580409522568728424277212116576636323158651732457983866630794518115272964717109569966043496549852108663785946330929087138779227407243148853450313053804250647291238044342587610739963092548920741889072253049816424119588277142157407876380218594002631119519355659369861743548146132262237136009604116193957273327255102131081151313423835387540870279247489415497502140362334641854941459095991681006977640389457389061213693168619006092997745011478736700387641950821381094886690996308762170783047808999920129495682468260802614193308558840259977615256575081426207076100739161261991542473918088705479639337786214405389151301345671550725472006892307065583429680141738071306006420617747123166242343207318248232455799215475167284560695717918946398777577170847215166656077573192662013378484806375297343816828175182966457379655222822326782875300562587414264931603942716554956170111652078628977347237615818284785777802270625554845055417425318801657375928086922654229247774301418167002381215709483743021789635417880356493736209389024928935259174673372189707137924188440066039232739304223892590486005433237920593604051370440009142526300089953704630804445811568676321622944346690460698443750171821192037584601478878472516184780959178994468642731858283396014614899195703214773333178620203170808953166230078890781844052118773243977536180417973969109638560487994925202806615377241161803719608521344308318692016343151825227216579615879188976263814371875826464806503134090473092850308162822866630271243057412178937397716073535298124372125907869553102583855801483459223242402336782837619023392702527385726946155469317475323571028122911375430374129435730178975038808504799847558802892811887822464199137999412594594194476937172101587725491735383318285509453283536586886566990004241266939801570695921939627071102999524715734025258654287825738546081554713502432902421154820574347080447834347665697152417035579426219953838435326909296454499330036252272302168092169452473406931477635863404301947488363574849390822896810465334116141010001837656874963317662583073310594855476077999144358881803273149729181516264691230351950913859668941946037056578266696072601908272849412526614196055250579472405600117025380151642482257640344208575285632156845239643095940454739869025771111685042722949919890134141771886972644422474349117948007117256417513651173229005875812689970498437030991519807979685596859152092195293797775617635373873976375382312443500576960101972669715766924824259112301937453653556513536958023725458126949630500684910298734481665229041757944360429388600326551295000890248271609943906197807644408300608433719944726635621251896889714811457406112490566288528580971856425314681257232784382796946135491016276753430272072740131236795553037609114300999655318506558768905437842596840444832768498301594376467898899659647561809898273252495843305795391583950653388960226237313785838670645154124922082944821527487094371041654412100556663479759180568656555249909216144437090606212891359206300422691289365180835290042811338609940848692859065259333729420841052664737257181910888640632201574419136203023517975963747238348075851044660328017030389784420522748572378201867401416110752406857211937795286728106969794757997366259309013557988880774532015207771563662014127133109297262678269526073712324220175972325820725563789013513492949926684695678861774613315438439021705474920105801259456445902372391576715119209698739882973060405293567035245360535806952940752572264257112186724948015801729223578306609334144325699002148275709515436661863070532556140932680181756523966747149680866585748907925697532273030335070180351349163450832183096527380312389661954047642772776778688344178097644416989808296516723070928600906305820393023579030036039864689225758030365012458591446181606182072275234886055920970861744179345162937141061754532224476217054155802119581389772228768025724643239971502578514495543448357175188511386456098309067584383295613483315571714024011740871756739730317118436956625756316387875762938082765129871964361531496146152386622147995337987358484861441480298777020245748405483333233670424068616081415703996166934654500119757173633408589992906234213589853069433238284739801025392763943037883325463369501528063254388454875503626155594824388067654814823361577960785234786637229519693213681278706098551810905713907688388434174975860276557304550691062916462833287604581960679316919486759661086570313623720932390113025949930482454863292348899332610632937527263437534384880514819299578167954986956075660268386220020634655418788378892176274294696198771957378522962843061411633647709325135081744465581293027919528361147720719064975912580825366851204026924386317810413966198740376378303540089980769438792228197414925887912919009284342186362173927220810608796044888550010411685792095944538590630225725285840197706309964870200539270803124249325943916578509484176290394790645110729050149924966109557654190287121107609582072872498471586634650484756275217096582858343588008711031911104238867508589493611959201577962900544025642412886737128619567276715862556269258389042178079818103964205265626111154107027957948682561783055414383432181553638366075143414262578629542361242084407088188655444047320889592972308341816169205975528617037477216869027580684308841213888933095483754802886759227634596689005787242582166491213679808219004455453207504635251185361143462890977474425185104323312814938428727271971309861858127792803195858095991881544480010827313573093672526679106851872630897362392134532323821697236666255529809569610596179332409198563827397103309825698793373979123032736416288922016849963460356326570160764852628694331620538793583395906134469722298894063819931541187840187889642895908422740454365045374902588847156823225769642488272433559295966600574796370231100050410917061532906929135098534402561611742989516727883439305287807615745751948015824767729583770633872866278101258962486051086345269251418203801127835660783420455125388855526864167054409996025622126738911889031399137837448387451837740448576945562267999198076444651962771147391497170785955253555206319309146816942123598007756477729059250674183261502890244413149654462264696933009833641385694425855245075581341770843909500117001932157859093592110429591734428432518196772922227259062888241910852640633024649822518854770209453015595095461471380677254816774233141935841386434052596350353869004859020473188416995051641647266659630899550297870935979989026214182244079516082055508074629412398039895610463928285870303164366782398256326331537275879551246467737569365665731467217791793229604122113608412756980019595159273175738083890044591509703463351344170815092072645904197173708633557435617183490888782286697761357642753499603947239803480103460019375766655032061832870271993523179951119152254202312799944376968442364220268140998149258780134432710528803916299548529898798465022157334697153920124393331806497051662034468195933750467899317572604388167993381407541391995528640801553491513875837903651761631281091463783445601668821065285612109017140927638676183137890449363476957760194911975799107225931489086319114087204018284894676859672393383136286596229132530661239000550062688689323628331671157460222289839600775572910918860833494545394277172346037552266902942876666022526998718413491032744060501740297029397877678557018830301155442818197621982238914347171898694861556215569937807185136516734823970597668631133113422054078361063131447729370846540399204518822004272565514608273290778153883006869596260245727480712000356681996218614173680445975311663228021125909461113552319222479251869200011394053609089963460817555288031788738872558728919091745798861954244757949725296799299931230708293416862562604280510751010615249979523638928842711628467593522247573490322551049050757919502551968918499113625110318042629983873921997046802897208672087716738510001977336386199798093058629590088655430499926307993655352032946222418774391938751664670470780843798989813791465195682544649738016119716668926909443965817154914257673476930267745862283079495914703722253435883134576802137969588118915552595594094740469993703176888942950714812174830780150195704287519429656856479183964833915648482166555210287502172136663394155731883314192420697867111599959717463963804136870105513161565112109716684419298134438686102027168415359486235586935057366355199862613000926706998979001502299465912804094019806260128122278890037571986261501207756346818030950388292409489720020973535843370900168593651303079642537587546958361363575898571903702119977768967958335293126339453871561894677470273242036774934278587959888945114839071798765498323715127376313574230094576021451430113588361316601896361410291326615285117618610777544754208149739075724019412699605812617994210417461404374182295595596595820517795337164822313468878359053135732387616989547787368335851693621966782975649950004046577496615232710649139913067711028811858666971102192693789858801800182881345179458968905819545176777050760399045056814341161456762554410071910859306522520855497094115663987271335118116882650366800255536502236101030569156165288312387421025866167527499952941415178391457721365269732340085782844760078202147839950336782183334391856936390725390891368826307805055495906901987510836505577916708492144195248470425799759817846901285146531849574667116587375799842620772029984041258389240067639871275304556039858309314231157138049335791374507628989430607133030744012129799397933547002970564358378050291811024793703873133292733281956605342397491486145993343330559382472302277347454164559195644235004285240238384887621331788610874514321585943048365088615917706784628738109126816821263184110271845063007781482445089970879107982148878116325974403085754338009006586874692166105278267910037548374343926670383146603832164136817430836967020687961098539830299752398055264788360204465281382923548880959979504774063856992669122240643258359256021928431677813298769968627290856123436163357010278251198975394671219661811494706588747114356741840216410168401462868944441182536363023529074269204788536406284646209524461205278894652037765734691564653721544869665615522668492251194059389392914629819854787561074427349725019684434239214206244577238357235885277293939455658495612921144396896746306947738937831398064031794576553194035656811131316850153538297844792529447218862651990433576925090547899134187651497046071380224745935973156339052575867648826468119421743108823033971773274486088039219042800554028148861070522111370557614104674216887373328936206724446798353255069352846254670654077754307402606968913390743831983709523301132809304880948614051069961400573376427500076897139334062971829884968047214885179603597726365874572142301182600135351745531339106310531764037803200420881800262253124880678240926167974290745585741867421952022274943520645920229806734482581446808366373432490099502852272464836480148456731169447661847998234314757453405336402241842930011391241701861074088795549281783039954018315594656000273078045585780087400526835364441022915224629886248551845615117613840086871549783933523260628644896450023709768530962085551868841159447721981805963026168216044617314155174860443297042824217963876051826836538564273042271610613124404288351892213498579342026344286373337990026811112345459384514275071405413702968659473196606695960964635052296040465974106978729323457088912270326221805278769461070759925730261652392280254423421059354062928649303638655233966099105217626862066035293105113174509417007809843337483756612033269598034099160649217335799167766154298735419302838695228617796409346344799469460379365532939215776100960081245931736954050214915121112315152520540589671436233643706097835174100199268995299815078700343258075973577682023332741388145863424065836008629415707935486749345930807710157380479518269247944699375516950013712667285239818052243517190443549696098274882508630399563805734367115759380624990308844887279805449709537741569500056059700617838665046681546871892733149611748993585104192160901497986046422747759515610507115188519982981046341602548368473735217675670285540696470891246146998405849360241051125065692203354713515533407526083590275217107909024632647927161785566312274795822583850561964027059479241313851524488107840054549449022915611694450959021890429011375658677334573074457740887166560048426577045828712163393507801993110758125474041814789318651914623830693578938095533795755279827963963979338868310219150499439943510466966514880805650559467152482733000017362417777394465826710097637814200972501245553437231336673119745274667400925409359896170927632596783476273778846769233864183455259045783873487910984158579538683092805873499692586462217929534203654940747488882318101524369864996350456488870403329111967802101784364429515634899720640224264647520881219560354682713578782033650194724102135192371556897433743391863917287785830192420595412904881801286599813620368284771138560702513894294138817493704263126310397565626591493955272224212743480209689372511842606113574998777526617971423681820290738929973788036982773431323756992023216403533054280254784088298159117948787032411348481951383358183677625578321399748964429795073163742864761441520297910827355766197941854734086908754483350716336351914082574611454603842169106840876174436562608410523443610074927687018511461149312527206078534362052823687049857730301073711854848748470634247498487320798725427930908195267131916865633329172935818447977159825976851013782860860306533232741106596181422204739837556259295225446254440397004067904254430738286999324730506570203442745793618337303513727310755204451279864480383231548169043074667463737603816408285732792761559521011700896718237602507473523984316846585032100898526357002370471106596948492786901108133995534034855194649687591392471691398229816930101638929484879772861671909429015562090554612440672449184041730106016664219658495992158265567831675580069786015143284693384046983233327463144935328477924953076054512818099438938658944401118584300886384786084915569243349328910436997664882909462913207087854558556592255800711388229798997202329622853322229532668009643807601887952775836765655014966229917503804233140622648888296453950980297334728293158848606780759015862430099578889064718114732935484839921851781387773619742461228604447776342512026014193857259206159174710754957833779669425237610791466976879078377156841000736107576694015023622663550619242140288833117055874888442466652537176632363013117009862381004238438336821484448670833049432458179443817419354481401499009909670549091649615002300746175600021410421404055696794670623240017233751392960976737506111192616396976840741573611054316373928564286547490580753884579931884876281297701680132752060442000538926545098281842512256170694106616497698253818594028270279863620220097170872651280443024314024193026771150748280368471889168390935616075176309461857522371401284562411144179749691079443908350343643257698154397547424814690865090697226403762889011022559927194037864613726124561521883249521378620408999471236336084787033499873211523770019834257637561911977619430495532437847300847632748560784568327973043671121317656323542911760299705414576527427720045171325488526491581347386487410957292631584160814317902384391649098275735133813626652823140338680126642371306667427936071142404045003869565384010806352217451740320577051596337031739628968008407164376239118665010818918842802088743742779547119998172515336911525570028085821286005119649695504863254792088035790471124013769208122459997001545525627945741726977965083514149362653581694978635735200012943211010273158062411987731276318437587526620696477516303744047119199787110332338422322010745332545077014048257908053561844604474430163841962826023531192085582851715766204977365621689495372213635240416440031573398939020607387576219228298836183745914754958635582900962763620093267057926238758431623605474872408664217104501235190350903962228608909611108023636362692719633312249800564423659311550243224934476090011421775454515677528698998843261483762699651999173619589907904960352737592960450816695760261219414564327275980337775441321840017172365089828849088890270886290986118315693027452466118632558157228899117984326901084031462269249023821098110754667863312873142429290372781524758083645226537951864095760470873153179517959757762883332558336453057822106773055133189023740291170154749936711651636003413378008149063144842430564348536354206658988619805710489186193145079546232585821764748532074990761755860239165363067508437655196597231940397367586790121266663573126315965065909579739980978968774395312223510579564605952275318083356120875250528397105942266624628154041701252046359461575689314785670181488692470580221981251989828582519329165994245114929985364738954141554857840608489260003540889578589842495895519387690507003301307855963194649155304016300267116187889574026442393427873497913903130259956736455076300276855032307889420004365060266713738026992075825097834609765882702946174871026711552385631144878089301895318475912949299554727118115577446483619990150930363439845474856780596637115660240759587516977023858377685334910050812699768519973613055936434506648804296928567582177897565729930641602681683613291860935997662604772327131878811336778604602164003038019269759199691726033497767093842482842632009735570343434552884304161851910100598984489626080712373355530078815617678044381093187200051118672575938954796393107725276833510165469077301690654166465489269380637722168887858471794004340007318743344391152761834507240343982818538273920975159752586057536885791189799739551294483422260259723691422363528983210438554820879989228888528255522049359639718018958561634010497395833989331810377050937637645020300238056924879062866309419163832522317682747182359631737015099471819565021083466781425209002133831793898870938161873975058960214298037091714901751718801574256890800696146119641446731831050560649837569177851683192004898127060518209151776865489887859506941508685722408110807341007563573809046366584310137356162883979691651573578248638977670673116585732230967551839590261732634888683917019267069411112412914327200574661047559772082396578034133204012878315492276970109686165377808225475167160577162770693649115227945862959061672659133284714832188686281206973793087725370681671134062101623519000691144750516374519013660294297524595507729407745790703709541481019970206366375146662488022336997274156396220554425537757458465575345037337049383763254831342634219810478834184773870688119544760273536200871638881724610008916889417013969157567206580058648258159256425015060769032839704665419911202823699984610374704623414158676176922471294151247914476283531397221747594635714240791246051490954553222588060176279491638097150662368908390980538505296307716519850333604745950163117016200536637206693556911054195230113356902805723022099124264409752076426674821214987209954865962302460630012967201249495890958343501630830758789762025094243187789809269031083415867914067845448343033187494659477585209760645610889626545956795204630395376558630606978658803167379254145191297513517352152096135220589608096739189978888366703794563341672161597775124688830786748035475675919201378895686272222480004696603069780847039242594805026766565152788388601795337209444665067471667463610788528198579499858597855984839716523556220865934965783941586170810918238449748288582829823488874054213707141781979094441728836883343811718594189846508472691591338561839725335205016076918008192733437348988638305773439917911855651182632155705913128759415252146976567557319537354508822689977977237841987313093583745236057799461112035895426657312331878069283473505789902056862308557977757651737934290612054302532042697397534317792469760019964581583780221632137652106588249662930555232525565069571845953643241852950077028841357840652105438938025279399638733363212274826332295593740536205460760327850373687417896168808277319662312867343371655746917609533091253780893160067712103082367572221347352129094826715129413359431587559338842682697304841951364607781849000201029576809132596095043609633782322228592384471747475369916327622142668965565755511194036361188908013759492589323627800864757628288809804974355388798138635209949945695547635913812005392125188305885439739139331070588899977753051141618887499491012237868242462653604308002070855947402262118261653063878953728260921208105612271280733025789040232396258290525337514964587156945874468398195831720612001014489198820593278224837703316014573351274880551361160995473872448067054966574432455404054135813603807603639671066260052372207818648043988574687427153492517618503710515908264556048233167089605033478225760419844356779093331751304579090761731467496291670240548670224030621890660911417790521060532688718334491262402247329675243160453764938218457494830750954083593734768435582010263431301458851064550172626051602854276101843750185135740716940221608091817717025256409680527242052288085131231927079146758795323171937892563043810399177129676897068332294686109623787260060663396972999325406235953903418319702733037246338946537771572604558965829482740242329880744311121372298696260049842248323508780932831008014841705375766111251273163382837712616388340959608662478442405670015388685574771617247446778288315965286785250981966290275227476167470782755001626671154591716621564439979233370121126804004631286584798145971315483414505981912522537012162506227540817908559601085639136219823642153767263215873282514966497451571145551946210983266130188032119817571943393210849237034370858875882483110701297289050786749741398358869411043678047728651435975686640189074039814413155190476741245912692797044129944013499375975017562351244333134592733539329691220728928515506813340571920668602956527340498383322086517960332369689992612816866273691562615476141754330946574377237403158882765900858019720455403148624309753592737531791910244287350475408975993791405774713737803918289861590981703677160945577482739618093367394779109293673718904905003009339522337229315916900497523743898252139580279491889147836255713795959718674144473773271207307896083833676434288481811147937666179825237327756789382206535678866310455712228789699799415903347328161709325827366722836467619774466373140783187924955815682274945321507676641017899941592946247406589571709658955453519211464620881943565433803667781076226957969128761186653600613236197915220414896779236838902905205359810094109886776800892979113052838561674579091565751465860342429136883140920814561320091689691236097155850807119987699388523941362612499357079389411631780495788924089850807518725697687206271865758008651519098341538196240271370108246379097027473160779742988963941501765537793789176202119474221712116573310051819766557724395866362174685573183713155863032579122082590081137354589425958037584001106908005469317357804455803674491188480985631497706774483830291072119544935259731874095332490096477064385975313812755236028229083621174230200525216695304015830140983101450447576373514331474563037818501319986601141288837070168448074850095311706534585170865251772659106850785876009641703666489535115149603887833219671117899686282692927001709743186961740663564772951050860386766833095044968408620236616999256444868509274634277636155027793249941040110477640079211819712169122928359415550685691844487009009319302688490104266233101201173511782135164920724636437741526358533826767039282594606319132786997561225205649491691099263322246329763059930627432216671063527654267768860122735840308699054732036936125383360104667005226744888497821386375410123652789380509443866493914362591577452114051858900764030155308065688175569990700180952121631229220155613176968038234473585354051387222518057135130355831553853505563593829988629141626207095413135181162398532992228369195250525270969008408617286510469375865372288883233806915172031124797428819366858252560312516758385121278241127941310815372382253616378518331523786396775463492910256850269643895886420401757562340334866467515569166940612057711107687173935137180472905971934299356607022664759623384492903628161253213519932861216197942618882132535868502492086437382958206284191228266469099894046134238066591165271460101688229923968698027835303364831622277182836191490901643260704183423202788211487973600218324432551104684694841181869438932389372220725738029391623326776853200735499075348491881615470018607047528592124049309416855244300434134725846692654491281139012298091628718075143243024036217079133764680956173722699672727344354980090544837168923910810210292851193001927314169539406595030952857732879581943582189786502157683530524985740827566815910348873179335615912737279838610386315687394656690635139908492429768006971475973153857165296837824161165088946836339664469753967926130848784644279446353976423632796265394452359445196440346481014089020408119317898644131800840446768447191980382020874929532394989594277199282725509594450726361977825017181368420099488461691595674463356133124535027164703903407633526571423154698319490768534208753493590702386020180826513734539605184887246915414607224531617787184372508943740842245435823389919780326310376404470596968171160616279328364302293607988638283910887509373426661645682494698439535386332554140830590256628371483872187405345152952083637988173731084411624892233740650372916428903663361913789954173406646246564247781946872909780497479824039139835115012526559707951597936076329971297035195052114134495077788063002919688881049043111850914694165540361847913285767427271706015205263165039769740311635028122848922649212504124179001702799756856004010566285698715250545932916613159751748964863987478400178747714083350969075033287250675382239782928008742052199099153982455762273424098232403649704831962518419241666547052568657194150165785265969088188121552517727743251599046040569585868416625918557735745202743452119152040047803990581090127893535667969893378480270447946585362900016903055798612529899167660724065850210791138242512874282498004302669807911888003880736922607275162557324981476809940530687719168442561558635481216734387508014235487681134207153125263673889934162831944858943782511899158993821696189078834178406066557425008977195940409413329638020142735813520015635146274743378137090324148566528615172230910966207612689046232254675471992766257288614585162918024423687217092407257063480636606527002290049983929940118267972899960897664930196607444253485929948537762393091125664346024513487059326815763680602618914833193425236250214503412533532229793048315369866315498602786712120212711879417671129885458509852293957676870510269216530536906671348892551316551663555920879391819269016285151989338253523293299925337896345575992906645259383992549727863138299032385945568642553207287789146653441738791021140761908059597549969611763319382003242781770353133198625747225778945074831979051517709123971689033677200561873897994450798899133601725827366028670680216339946476978806212454668286799860543306787807195747470262838911870458261904936175881214441170571981089420067984311278698385289307173032918358190803268364985564675495903386695002432749027229047154173479835252688516392594765722118924076506241686975271558683138523878174711041999630533058030192333683010710287796036486137705928688411978155427556768506153062104001671652788505345759830418014537519197564384425633625758449471788340506879716161804508038696271882599783211612454796708831094109605287502347087658077612636347702124412288782292002918527558750431297734381717549824899585770577328106921773263495572214198206159901690815758231840367437584155658439834514584317493758601776056488621017563529011198460641225137096578265821243579307684779647037605328321845380831868019155764461357346462078718849445807176395522506829769448315248761503717163591923622431424623643061627935780029723210986131116173876369269401954958843753521916413889969635319635518818042866800436384438698494433912500750607303391155284806061991172618651616705475715078921362636727695774084164366588646941463893114544843266275618669973534417321167944600972619583151190101338251091799801983331522955363091927777474721318237440335207791464929740192613750386470017229966663527805478159247749072971995816003969948127742478073428974360285380981325230978702061787951809705758635301073261337881247780978484580450909126472374393478451594539158018697181454769824266461231221935109824368790746745738516778612471757904041873003594163508075441186644611905135458073005700918422879764470108416248779579785874494325958633218180257024817095671295175122276572379460472216530587560032353931025654184903454605530078791417666632260059061070971738356415132651586105406972560459848899397207156189128073218199150767067324199537038184352550328337549045400708188680435998570009289640161332342291353323412334044153062469524297276240167611460252411317574355810231943834619796150273562389923710054335884135818844532583154758413705291155729950523773575069599153615463354387541789442666862460681806497397978549824011037767754627102376763750653309828480745009698700579293378829237970415422234320961312773031523195012035062945968907445866875389561508717160004227622543347032117224270403225063285478044470894810232234312131558002261865012749957400980564370392587678072537227342605714115302263291363233515227300002794991694018123498610996937958093215061100667742743298855679188341909511198323754948667307556286447249876803403985883456805336394077519164217517634418450349529133918952068305447363812117926378130614235411320464994143230340340285146863134754817456560799366503761392098858020885736676211632638387169524229184002049754482059021669206930497777397413707734121337937577905706448186819925496502439212872104357055418802133042921244672938826502511784425493352328038700444352123710641997235279297099977859691174962003580739927560208773198432127106376570930395089484702692756344881146367107980453870047493951243198306381673136202375615941855319028575997482261715363887789333235169328592148401413339979935128755625198947835742317447139110285395103170543511206839258644628463139871549667865663365022815780116790167324592058561661076268291751670456395552278770696642376969868258915519900860218301108954758750531385838766761975900202553868871555775161242208252145573553315736960111439313213544496258955068489811797389885355688686215672848336655864232005347209597486589295405991966189102727242042266115283625690668800173063761803498149904795846542455287523036286075194564939348941328312073172087532449889259340776917346981743429638920290234704501546523042224534907036162757346247260637343920359582429788520376574892344867548671411104161371253344968366366201564877757041491179476868746200721233369981121872032471028910287305966556781144913670444972918444717575919130791954257999244866127133704219991283527260411332801785999038279000095570279543090621930915368340266447876444817599014281450406938526519205316736871211612357302650190175041406267547705652727219451597496289368888691945804689432076563989564429714599242953381801329215424298818440125471131249561678517767010052914863324726749490318768144990190461860022143868632886089252829144948525385827305294931007520683179827640188509982221155616174573668905098067852317867683578649450081242497163404459833727606233406606368864115969538305204849792299066676079922593557990459533581724429840042056964919939143226050528817904645891225707936903991694097261585000514097917912373876845748807677758756385831752049030159191196315451168632535155329973111976103527160414641288806880202610959328290428221821194482836674955774404767809666545220236767550216825248585906548506876955434962569422834247189740038553061599460028146771315146154744856924614390595903257384716733579914432350692747046678012565236411628785975356310638862159862878680937370260216885186486325944978716493292475628078271834157021289721563026281302044965200252227297756878339149497493500844346556049757627078526549443602443510129987584233860842838478980389753244382037222819509379897502079554358741663070004362169264710385546489473069255449915237713409553453592814915528755547707901194244730856499381713559701916917682115228999840461728079713642896169168551583464254868387242573549374985948320164854528395750126686541375859726239055195485816964692756016537588911517112509788041141682753717067528109150041090286633999916292620941833810732212675111274202082980159975828894596629737246225110651748232753589722550922964529449219698341049202610249202140347059869877729978332579670702890034051983077187746890017055020427184897368093414984318930859839738687560683728280378640525373008623352293761629127956150368054850364354372407916744359201926715412184865232085602045106162068487142068996751453650099151411023054325007226367213842497487873021692988367813216106333251391727817503982740418817764152769033547197449103034064925389694283062805713147770240118470680449017684196472800493832125912522631911477055578890375072588752099032187919228121532343017555185736409067086910283460010669425294368334943200887491313917433306573489398223046876712291854853869023081462997877852144194378753047001504711903916858058867979065045641722732931961369184661267309566809902547507623529036599527023237379804059768480708176235946145348543933501695574067583409581818588175080866637388680132391870625593594716071702298301248665862762165371084746037938803783643839988873880602895999296125097672501197718195193441137032505447344323966765739853672379719284417912924142148329924413880667350825856495388018094900482717103180292137983087607922724958891619682934517672854402393260495346861632191671348800035546733908386079588802033218041851276953897053443115858719138997186571445312876636188025475756147326613241920227279930346616178954965701561914404777743448287442963678042128723349882323925186108618153127885149099241928558006495798793132377521700377330757734308128350014903936458200371311178584129539300421491837343590722850922451439719035598490044013933171444047791423047148148573066527353046255156688344404161650127932119331418306485872706715427751186395915158537675292488549756906860143001878952481292269478478627162542285587852443698521025491387388548115476358731987811870590456952059740674779778589962689570116188725730999364763296697264063552888058748737472141204108479732434234821262348529515245058932908224587485548961301644799683432394929134006043827174114922465194844848188758905761850527409209688801887535973518077286450138285417290042943146377491469011757745805685685368612446866236973396443880487420575523485081624606351684086157563107160794965541822350156935948594883193627073059383622981292666861310124832941886286460282297659834766842025028386814375552100936848416562887239545052125795170556302545216395819638647895136965611110456388003148203201814412431339879765422253721779880421027278350776506339054664305927381900016146496168309899747962953190434854553958983675737740346341990656822143282511954668778880915012670017061952482324896364513479404280332757377392809840406937312627744257432938392837579340310772708432374250556178724292179041592480805841339585231510994614202427933489739611180516628485701595001131324440197221315576742061814251826167778353898253620838012250196379585277668186558078843622092250323178742290922668008149000054325462086240384157162618051849067083081707702024274442938974142477497255125489897173057344064209674977476898494545067838623868878243217215290809219438675714694823593890370094593062700801254425767194727741124371307311928917750386399386610257054387991256746614093369886767187116856249433628862969762680666168684552250844794882615263537349452390331928480817512998793094345593816454831937095236441157794335687941419574434998520933267426738030295415600188978573613534034441690771772222337246140039332458084429051626114713218740469893298022139169488931876012110283687675483182466363972625443896444367960244411536502922927876212939082138723306092925840402521228211054367450003342176625791557974577499856128667260361646117560024637247488659045712634027851854640061683950717172611181514528773459818642222134137260327629153155199015803700382055754513288454692474553920843969044398418134598631753162074806229751936876645703870656426669021347768803519368381409615828887860712428693607435538410759703750921803444010395679594055957878615944163601374395567664514527215190794048513578295985498961671822077560517271288770946666438447217482817214350968250080190846969425207307914751679421790782179505016919488454876395621220601162797961600934833490040764927627867103976807470438454954477643818143328168192260735226758240309422403976750582728441460447639586353677885915503025909111300859067896793282911747193011141724897405702749249327944157177410522896540782401835655854344984655865867569346138931533825057053252139300521358870645609099113361988475706057326765375865808562326459966866252935619822708458814429851182619092234607861604956255626774677136426130457063796246790791873520348435918628507136634862374919763101402484521483751914650134097315716165002369567696948164628872409243118959869117211181932931538947102491633587174078145381573516490206187937274889604413943140155318226144052871789454402056222432650649311551289598813870897136864966165695036760961678418860995326874560870420985511436775847625167490416390654682185355184535582504997042631193652292176398681759130989729210167422523597145147047330127763713286560603128601763469964493091464531663404442873615503484922752996701517746639195145339732236736119428492577765576893996997513006553802271936283864137772362645067100129507931700951379167632548400993975099093863564350219224800098023311160807552037515319872370952263271926762825305685788141200625042192435661702857252824974487350073802163552542301936524416806656860559475313283573233040353151052701932158480221930842130842880946871401362084292066692899424825606390349176731924540935527164740367796392395072969992261555975613395939810017878546099465296724636490019533258371210469031030201648538475420972429087834735868383498986726200658215009234265800545554795395206590189269591798752013463567549049093093565417404463933833657219286970431486027141906042711157428543250237197463009420599636626708040237743582617516899131153637609458771782803800323996375790808195421442046826936966992009066078847516057893466355667688086994079313542461284168138221839253461368958956268892711871223859880284381295057060658400272765002233484053622057859180651896193717224764343583735856669497441261948335238394734829083730083538176394336258133715901657082836106269103791529683663626025324166610672104150494178609746788385985952018326639152417242923002898694337187846589322860746223547856088808491402693882945265049543468605179232850257507423147328095206063614183357053944867137940044259879160431411573402252609542695376332063636576062535486513764379645637340826496128980480052819065884474171280995407838614276379298016778912025421549704907051897253143983872912648109146196595628581991223991315121368867385666071081138121177645022354681802881814886426840440053172112858524119275362674662910440475718307056806533828851954681970058175371557248257889452399806020451344508259588976720000724149541260923972854757081429439470935387301244130173802772812500864786879128796980075321542414509400978459749697111654795851570459875734875494011359786459638357377110139529997880144437049364844108242462133566708270774069316890096599980621084802728360355736123386668120277383748077076065052115124482046786535787861685064581319331472213593729184458226003115753856539483843995139577717615218480001616881797261184361754127195345188808872175366108726634229718056661809571986626825619867487776295541197759396675425089198535884441776051980059217470020024546666961004321493706534771707260280909638106573647043616736269911720203229373223057234059459131422879187590877643460065660531080340197707684187933157854432453692654255119812348596074819403543529819985845456455868931869270392201157179251391947939875670501329976462978366422228544500057262310011687885414990070011933943934262949581603295760806291013570183715474208691787573819026737375840979147491077841753822556881664189951767106680697271981884015235463807952903582965371470517858414727264489048376479297809177908623760658217375395544551881407111588210848270036974531741084514170147007946183204879311903042481374959995274307761553260020246735243043063118795629000335542197614967507813745209500697475049770466333826792192320482478529599949120805707494211622032111716955854609816071520760128751646100924800141476274965846853949184011874007517120648520535458120281786894099046382784826814625932522547913925735190650912587489077245254361334410438424286785280508961205372106220121583724439316867348835144569806909525589693061387670542865872482768682085546697398676824165380941897419469934377660648890408687772182829192742876563079709596191869963990053749876089868007587403226346711390483400983758682943999264311749709927656117723222102054153179649914439047752928525667148590635066449133024020831315194805745756377693800971820012738330976801414959221683874283454695788454553261182772272046066325055382179282755315186953356679999722866746823540260596039894844821221876486584840797416008278619747948044252169264682858774106155191335260177550367592290518426090987887725159344898749469582772826672931259170336121603035847493297707926457437445966448358697926609486508142361353982023320132284248040191014574020934065936000118668362283387652088448345306544722563951299638457207568459590421268520977159133188057486051065705241479251584092847977927560999731561144444470529243062376043351441799784340265482944050830810613511104447206847680902592808398950854070510870410415487540967739626092470540166298217910940850440923080257621635323784787980814913525743576508883290628517753226489311177272356806764496676509403604475222661063794322862602137786065604816625014852476452405352527811980083855786047783959438183952877634443793016593450742971815640496454088303163961880898030827040406011143556531736448092212641887870712016612332317882635859983422663150642332380528937940835107320428664452278409303998333082604105070798399170174503018307632091070118525423705658180531779553466393441529251325943898505432134801224867422693958669431251679601389194123965056677226633311025201801499202619074921200648920848771649842290694107022164153291870518738468188485089882080835571652479147058265721990039341470685505931593238306493057457420834494129163169492586613533294574111138262647635466229193316999097812381578626087800736219800951458048992849904024888365377752460785291142678700512868613401265431906198312789314394682743251257348906403282483086238498426544815208488684216666008344951791685523354413485926869768100869562213016026673306515155346685600737241434530372493957841738746235678913671942546507541991314772387613866699839652174512527630907018760467425453118409034697860695380016055963385318327236712309882728771217228676493277707678245660426577347534676005354262672227043824234497292134528114347916474970578649607403736462877575453605159042984722516901816071630794438048080694626172364213828242746247879608328907361746362835524463379139860200371139627384735590799027734788329198103027903055054790008614224767052544069167528286313094099365859776250998559802262757323351166792466423013556043281692824674335336941158659085012220606427972765760595265626480713610959974275364281731682394630743238440413764894346576040780940095289471049363201738868903262260603076548542120281229278695326657817768331885863783690345388852780962239720835441071907355401973693520463063214177362783835973202791304381061220832121610758185740998272045806442774649156071371436634295649389287341215525961515912942725538222642633052161045112076126364332904644210001711687729150233275316247752281675510959936364421882725688675388397630115413771116360063931636831031621956791041562880376216339519559300367766269632778021260675099797431003788406318990413959663286596383813779136055220795249798497370548710217205608715274241426023553650245003617825531354708721218460677608603222108213154362124212475787912280111999757673153562920645907233719313603289150474036184736272248336947938495208809105144425350376986448313291002553215940263882705471644261050396232349911328499179500765449187172638669508811177324001475504016420718773150821116811668322552069700801678104067221100333621633388467559779878734357580777478315737155001920306763461683836683705315553543969255568183103179628944823222729359243330633893218196763237061480365671403325235307543711144605913541383003426465044191275630447806898657393808007619692199807589677357095554732218361473780739902126196643443043447168102305993422514138190792731709917839778121663554457941488506648072420583277041708609706287076365161942876403515495169382119393606127331064035136545065913539111947551906189617073953204444798418828967932556883523754729773558265805533989055090388623450946217001765638869208823637213611799436734850133118049401312111957240932628098876840309799655731661562973456192678864384011389627878528126336743674919835484184053081974675999227785847022773064512125290402057228589241586910617831576741438304710136347163706326683902264591819036706060818012769789256239291922574458146831888713961513955656841905186633552273530877743571471393913350301578714504811880454419012847758798503288982918053013140921099157920133643625316526315014040864353382053144596113005125541415104547743874568464340405960018091896248189815736018944602403093576671617104842682636152066546970617337379165240540515464710572653693966810093061712975692505575509387127500513960056577426818705090461919408403700539369913987028523528767776036454332597096412662691939219652620109754280668349537706961934313631663904140039268738052329194473266510203061159803263174366194051919148484667412432390007721665637124628270015867476248564001373288623921919404601875771374889586106374034168878046550463940138199309548295557282470781317244409162518244473136599638282334925432083086351302505757150230290328007425141376090005247023031865218426842238687000697712456444000036537908100735916515128620191859547790981825778616360278283877316747895551396786998582634299223475952408810995163640382897158582064475323367592134828833512922197795741904673058269561999696837540128796052787689114042232137991117726009637072950596230267536630856571911093117396979734844790162541523768587812887705707340957201163134449462007742353535920900511213652005675982687204101907110876580582138886711462830803782478469240533102712004289011806940934021987148873323699057171015519240054705952874950506855703147660693899415734945349668250026283438121961450891473676285372558067454473095472507084889049171495289891160044703525804127667042180424013943368590289505714044187711227728554813129779077360372675047927562284052943322351122956503592984907655538717842175266705439849938804224236651611575891172135138199043354197360282682224431909312111860601547087195636506966239917144820801296585406255319802161943858894551308394166922970921032138893867894090977206761024355934540443327877094573302387809662474788426370827079928558426531212209688385691620207046975707884531855670714454368604688773565526184306780944008108535432913410306499682169477424823628079199748909909027351891824129905941578130078930705639626752533716545676546769098819253810279513371172379757381323994689551126017812497307237425173283276516657056317210162111944566501595953993835597282311204427818933946367328059209091913870066207779167976946580272170015031804676219786332016009419463242737966770732239191344348300619443191545352811372986872993557957823488075429546392206942925734723498808603509504924729510122802874524777368893876739380361369170157748267286792071866371875633841894461218241134061755494007136640036007326431825236254207524733282646565391105144718400348409393371914946029259549160435249714936279668568871483087003138537009524395091083878812175592863135897534512637589725872721983803020691369752021479081921121001577837750532491077976611837156365407155313487406373506554707951612190249662288169089208999049000709737384612353067360310723942595854611108697622157400391535357184430229035997304463018774020458393328795136545903482747722314556558649255793970218005209131459761464524059152568368964316922027632143357813101287586398272036555028123805398635995880287345193888696610258692883185907781047949139768735503296323064281222810982113427924672784623457536517471784723680097629687969789218503962537132273150236827404818393163872122467320096010475902829745271452214458425563386239586642506327436317079677505476350789697341642027201687687299326309245381646054696179056667879570132347222954451291970016311950788046249644105448790873624436028494090605888061176561951754586996730786250521946321254548210177581652927912065657889232925233720994853368055079305324064096540354750161975178080577344490052275141555748010394823012917201975411944415768574323299831719433857557103528660337709077745288794773216246913593085010917968807989103397609706162160055256261862740115958062066199199640138286665287090850441041904868631500433178141510829451813947856203930500989447115760098426042170561913201188675156080068634987932948858764882379812213086594193770925661257483522723482023460136303234832907471253657661961829884744116975947738438277904370692977261713070117715298146597016870390042326775302141075068904578497723120388145495496556271774933387261240146904711718327843966753723244595251333764273005745823262219070386714215260903615823886270408729385517411151930134746176314948926316818387108928729396200448744922167620881593849412452812737775808611581672987318029251951680523529115673624937140805935607989047987163503458006913068284140315399276817993058437908596286995513839876717573456572385710099082583597878620341486412998293080340652539817475983393445885359639862636369784335130202232956100906725428308985286948883483297284525534676579677505007586295007064101819568531305670762555854305892928748524779722731242743136322949441012343554160925712842007795094587329501674944902506659502867249595793639483702635002171390235014441804942326258934995893117559150660132962411826704145479224135790144778953653759085200834255666027543581859331917063359859826115240131986732669427128543752003420400008174984017820427182645251536265279543372105477339937998382537843600840191767013529941643097148750279848572640308182982232323329143611303368328173256679315197688368066091271902616182148398127934360133377991064538719179316709733355918609085054503688744238540303383331129328313823717152309491703777367954689075512179491608618935457884544930972794725579133325595696340702057132160046002163694459258577386923382271199230416265660667074261039269192858816042071526861221173611351154448798801930699827523908820235687282762605588685149908537116986484803018884711449637448587833833865698859375562875889157840472836594090828554662742905090233847575409778038820754167595059281006875630703641835701835958133984189102699943453859893595973945216890567003373196487610030109537421812029087914353048494889029961831237060643608687183898762023614053206896473197103610410717017469481089207314427705953563107924153488668392986005316008425623688445798615247673214953227859590027397680995124360609803847402101735849635913299800825943086030793813571639890523896040850933614439549917003928464632021460189296405746480938530989777674321786415680009336489504358235672412639855090069411967340143888733378531436227336164330614072032618708841112781238032968337172645466581465775787652233020964323874346275561644774694815116021171540943659989957453867628725985104876396791801997138469496062433599432593266901211719945616426826122309006851911501520760902955062820885956316826732429317208762549819398527608796558143993218259523184982957221776542820779194641951489724947086559924344357903876112531314807992606515053142615961114084305890791872213527337675658465171943914511967903283656098686066235971629195357034415161744957328729354953991868697546436911600778440524705647021305694063082773870676497411105920196571557669913520598385528493051733717916438970793910987249672898376817306559340651235286795929993673707685164487866547095315283189655952505801722661488569669205445351841227712591713664942938578957059733901933389428934947438936668971939692464834491499258673279262434088447578807546986322052094707254389068497961213406642990918214119736806124586721228101365510416187999059126557483410706563321725212942843951963649126862311134873230363028279584360054604899740631091614996602365748194918573597227085286419034281173750556787957304100564885947062622045843218751643631063153932402909917761792197881138930411596048314576337101846109814801159103046845974304378977215853141371855369226473990995668676837198711751330422726101358999511536249536752016914396739913459620493617193007184458616418575832185580359805552760550095960613357352937186175677271871747905481805480289197061714524443651722003942503853543652651084838723312659789184506716629885955654147934191646374428349635135670279092692331715536275916650609786042686298666148138212796574339488318342114792899220180096388447466874332219542286346836488585497695987286705382953154927955022100401663230961080446945926611746546726120493266661558364826893464629454123564726710220437085206881507391338111000901502961431063397375960423963709168711511736856979775506857446707660555682754115401807543299646282743398688440607841781601375399815237722863733319066630272651479038533799575690996968844273711728976222107052044102999540912562415678812354832710099225721475558577023301310827417656327096605361973214112934993795340187069134006428413848613705277781862083323837649259616321611229822038807196161905729250541527646517108640397471911448544097297858360957053427473563551988604200608168571519039679994430096185662522926337598509691413127964091760036002369330239143068152266350864803588035765514767336541829231634374314068607784576965979411595818134628986234941221731934148079052314935574251094017446477478260478971003868274901377465212931250685658059374449979601731742468219613434874552895228238239970608628825590104836810485248107868080449444291268035030736611152001636672727422452890738620953458478296828487465367673897037015831605169632061096228551083287057516707836462961164769156758557066191109397643983187084134341042528021524637825000391728053387596620634418724446673135359051205818235439521926807504924134826386175800494164799295282678565182110673523698157690283008792746790431356462231109271155035017358337877143764312369833436068881389832211169173082745745565656191096397294100843063801141682988239634004547466874650107959139447636598989499555082269097723052394641516074222314251042445494662020920206786458432682024843712821242160388627174418415473181074728515776714674794463452083245218391965534946902876141899056779877415538713969217469669553715766789169071113581365336939177908792750097245430957359349102900283189346645301538426680878142350694804991518568473459946409017792549929418897006039703507880434329748981430147520935257089254746238467981921893632841383490408304071124682311235232635240020307732011936774445738912032212739154021266003245206744740776182465129660181420139390641983313601695325926768237801750660530503844763581529089181965676291254328870673981443394854120532974336992843441071078383481330182348838072325504143996869712289388114577047175291724717131358546531950423026692655876340620343421994843456192123486635151031441932015681820900216796778482643409591894322375976357737615574297726143301674973827010647827677374403039049631946845335983872374931626045573181069895269275791477298524322562682597785352511466186355047011457046338852611416001849241748131983969411684410367195920255307594328062747741758690569702890315001915149030477425392012819401424052036682102418870725825770143939453108042352057241694590769337575788252081106566446163708437256686521656217268678285722581591157986591817961365251228718208350670262057027606561759870326157344907523066152705956703208004499727403430043492018085661160871194260305171366743856779924907930276744632933422072057373768724029777592478457821788280579387200160553052213088604596235064853689815020232652794173341348635812697133272653321537475088632879384316522599118525415264556792352592302023960241350880367512706658936800417593654189690584334617902097959720388459619279749200260914419803223857263212535834755745912982590105154429020625040007626350889020124516922826890182330119054810973745026880653738446961347250533645598898213232256285392624407287710915240984354375495081759328502134574854196345948818026577198899727061866525028137164286540189946448047603726367666376571904383630744254294613541478187776147400321768972884165525236600634905440299597932904873248571241922966738871552456642378897413241519682986443902076055709906553260977092511744283771419933086020397454813983808839498237217627483627150336147136207128775465923783097568277652558142922054839845150309568540300062949412452011809992194702012800688696849507537885035980694822152811625468796024217098103024819597523202311476694803978117763667701144454676862503792785793156022686819133444658749376736048927632103086143415402359890894214833226845098435090528630846174355808878263120426453614635812024358741579021150346051208500059648378193042374243226075703434328977208520243941922356160751472503410230015734475684351246941326529350134286405547672600041722453899158656885536368992927801785649550400305347858687770052335238714349134022077633631249509486538665498207080638499777842116541718345298632130165858533532933341831403372103939600384558316773119625948133558979309880897519928462515043430767375365735049333496338063535537186957421296225406861246967490299577515607849091151416620391172104737251127444457693382610630398723310255977840660966007192312923394304474069292206024069292931768825293136476566949291399195347503894826574412740482030534086935651791946563492141536779885592641802342411912947846135433991437975729453546766679301123411668294065196734980981493287686939503907176866260206030773911623593706175095155640358477777471622407829605006930824681956285862361074752889161011292876061897096947262574421819344545959396101757621360019248972705988788784616952150931578448655370575962362555101147194297647927069264472040082824604762910550125689560054416590201769073031124090228386715334288047597994042342894653369315334142326896416603859602309690780348294529205317754946651512416854009710262835374736822504042627278391570636611254581638376604940413567544735942215901004050820978441108196701926275835981091727866629208489882781447665765973847378404935812933281468558928728935484460274605150832314002561156474488216255398990113972091730145738093175849407730023650251679761981385629932035819913004449878365870103974702128996052395659251007801176402775880800769583240304529987955479194679250486355712619424969277916297966479659986009529413420078733735317197335715706884206427750455335278038335786530874407352127786295329178025837943695616343721020265704942118950165775472969079809430840267994179031768431359163269514142367642016497806974147578626457755223290666260623159225161372098307406993879611563545787271797488017085025263379307142475994747093517757017744261925332497109360125544425040600952762927413053848348248896339224502134317787157278963173154026035672820297394758297649589276550252729569009790986325051946157323656147515276662936741193953947261661851351565549699479868659418779690341475874044129112253597057475697559667356938500357110751282812554177851396973610227632089643154649090729120086540158958941888175017014284434144649179556186585093959722656739382630406625401060760665990415460075359775778708427598281072681620729965715939682252825286510173718712612352217459779316356230896870842215327364308684520604966119576205046696792587577596098707429671436445492398298032519597509667878972307882467062069574273077815368693336435209925402858842727674036969532256611804687366792853584172894520547628266334431077889591125386284702341361564045825804558483291242757886222909935727665525879318206588908612735713942842367989554243695444024963678060601725300416614916535085625205719307766711522445580189634578890292578628081128344892611618506107706436984626420861447847229615443788179711994011832189991376014757293961080581407445343577754451191848780432352114525432073395447483538525629089276475111880477427987508805511923122481719151462895202353266563173272069264120587746991218193856591462671648396788967806079309447583373669136856151395681749119692022250017260520894709438411308083375692525934146746097622836207871978658386405373640708092421797630411489223542277329974166531278845449894660364561987106908526298538869024055078947917204216640173628761133983491364978253018726211756098571920756493045416105055813066418584262853337479114528765299103459617795981572830777879641806619046437091198047493864095178351360723480639994729370973841616413887177711997696159589863251624980550964362638320633340407058858666465856492567536868492424054303929843082117627732281817160363534969773013273677974809704358846106662015022001464965678871927069148224249506056299926754416975342415465775825795854325712533158674825443999485594185573747430315962093679202216155729110063736600826189070314763605417180578739682579531939089328085449271115838603696595080243621940077370106064934244971233924662879609889552126467721693997386352704264419937712920869175909531063802847717691587388928492090941408296946255036560556854002040672582863897284943391992101259464840699229183642303690039811650341883478181737140101503488849707294233255257999188636524780858046692881040812925524481088823601151107279820122219081325761571949085162983114040526852196167869487450775124205885000903830508137247232916762240032672161713906742697157792683391668710537838138417669440896506529652870673303861176881393115780600914792202406796016097891122252057843277458009606735482291184098568088020456397172615945251433211113747549303816978944990961203749664018731725186192892716376658246903146954270611451629670749078043699931114259840776804192913229538981784615407555023689417061713621052308568235064276457971537672172322327760331573880383192192988935008687724386842220181916734336525458310626199703509464779044827962167632401639283618800207448524121210085387845722571249215499295155520204969054350431984126713016005111766863223745860724673963343900141457884326188455783059359192583584494660318400613726385264298987169729749980300285190367405149768990624481392496926232044209884952443534057135636089929440339684616598632710948292138278171530710403599514556326536772994379369241371793949380469940830317151073462253608841797501384205930407004505566824879864919239441855218681936263587911694257133677809647946375244471980945820551376697087329672062546816902561862131625918157204949876182126936315065652677476169963907172648399287119858618401794950938731076941080643464007910425120823589543846700072479071360145518556666554123877805476429843763199080055131581176319247783915788520921451649970699230645150371044361832003905929643861263125247692430456254130857819771664263258966229142533118861336072702482551840366016114749044443868991700022522408921224009588767902767709967238437048809504676283718838619120161391057864404295853851416065389078246469315647359183067133420536443198332558665797928237915861558458419692762155194347892844739535827476486562510563844790273616313131422877767901295244606660334501543313352502245481885326766421828127604732899312722939054785252551668355748349631464729827719778435515359911745116315719313508581841074737233612275877245926179049107544529516601054892232058496070872883197294870285631242001511433066543595530870851433978215736214631208060185587612125016598076193133430736407177854596996699014693132119152268034187190567084005872318423364587500577179484710818404511149637146953947067020663576626991465550075352016925293474178769947342367543562653613383780386345200171032614332710434100254802529058085000467258093540609339074204545650502361494782928405094730335778533414475653925798962328496315563308568454289115081597881491151236680686224739504393986219696543285716561772997939635207797930622911205876804957350120942481131612851914521811424849662064568543594886065861096662105743797546743758274336677360035286456283976612193532578944657854956190179864566682248427551622006365864984981940798368521531137232485049521220824441318007861336117629740091579307194484088407803400578575123167847643982512187257780006293015999166030387358584155741960683614448402809291874397513090188297276273386873830032384904022456975006135786720031287515853096172487462224231149429865290669519292387553037019856411594352011917638148647830375693956939664196673512815079031132924222511049604578146186940520017628411795739131218970207350218476508904768623901603585362218639204230931614268821278312221160070134674228677169657610269598370763653310354292077976882575916482622925828269460647249225044019184708538589985414317103991565417743565846560819108336867199076247591057759958066729172297417679015766969864038510865842617942304535750039800085209465846747597685694933926679252607437144329738469002441002158759118205676590231276576677118514343750155268878463340984481835798307729789707090188873680480305420455477632329284783854634056459438626072219647557420036750136268171816582940293173592683773713529104554601148938074154547117751215570503714458541299462211829620673537388452188819775940984317600802053471405147820452904857227655253861324082854859567176392045740002730407950410175719497434039199210396199986401697227325900032521052028745031079826791858516071562917178111296544457179388736217048218521584613536127998611864687524217272153944161947765426864446021609881402310131344167572520838174521539623295452693995825961337359630505888311732425462543793985655482790991094171041903969212562844396454320330150006458127337339378320532417515098138078726907006765845930539804783618626712752332239724271261406986179988654044809063709880156465049655847946468850652229583515679825449342327315636470958666109596481372894871176128594046223613307757112136291609995679506345050918373701518740579095264748556453502774395708106083374799073359902993788056687772847657531134051414882879509939674248855666643052468457433192903283394072994999853544011687241458921265923760097947677112425509587157677514344174159957696183668290040928686126517345912854602741298413983799657248120277196007552748617063386039902731158637366099569656833368365883813981607118297904419067375557656184986908393887471355176278216757487066080371234947860923599605263730876190814642039089489666989778270222425784820143847924826496363248858455812941666410455520531443707355208647559930378840775395437240512747186507954375503269355859366312643650176798593331200214946517083771819115700013824668474505231748908492564263673317197591153621152778945046624176595411817362922015496314711486016569265128403101169352082209005020829925783218672357316927997547822458783814577043525320958966126720757882621973624035435895101930170546487625704250817248456336605509668144730903910857782774912146431511780036850168533856070771654133368919624210841975768632766579168344629723180664552814228653435784501749054845252648288423292754720140548415015917084879443825280822512517695111230548621156522237985511382438022625957294673258678666571886473171893119571654103869767567623629158406975121376580772626955354936237199231915612606660618457391540074958686330126158448277801350211663998951445730845893782275704901613194351891502565478959875041563791798709078322824334739181322505419488694348223669875074765800423272187058937829335044529416218422106085670948751989116445850844180272791979607397580132883781916613653512323527741635218675557094189489118279622356562915216443114854025320145949998565947340995175083736722208507857866599022789836429225877999515466211234693205235965548229771388298071524279141736263967677719333668930739978705575610839528830732525569868558020619855471175192016076062721589330814354888972764982147632109450982514462971984639221546491569649972807516453464215833235783608493418787898123776914842910723427102543861949714674108529940719835929774128717036803793694583704819608270709941052115997529332384666113269966456425078365318807127526383425090730893519559669983770770131695010718846286040667417552835581209301698075834885504153301188675200266348095577130245519801128111819932777808018430392708487046350462688421277858708353323899045052474763485115192350056356336352420386977133336903503180682173585264101814773911985743451246513419892827934018063447585351828492694884629222401831948346880095947802345979384019149343349641926970838829629396546894337112297498025015211311808808179302642492577947126116180209014167384298071577879325568845818350130274894666087958440699178842601958389875946432742676611634961378258790384462272504142049153175668565048989008834124441792075361929071820711229169374691224748061824604209477521762926070518197664533479821652105412061804136924723413802700759465010343309660335871450162613861407644278316142743418601941803684547421137121631665423228196020102320946736684762266719992589136875502143836268553562328825423337945391255080974548214887004823872193179788538045439634975074116747031613893076156177647286413047962439606755891309918084077295452884586177570509737348483500047461091903731185514986888752335214888436040550475018637782909095679497209379282763279692014397373007726571552900869930367957418230391031539293720268473197882036943399772100248077755965685908296237902071867619979474777578889895163421570475938755977235437054319938293372546982700054840007692779756243329399709152433772154152447956444236051990564030504118406638234234395521862154275364919830311741486390234023433001973544400813441482231334949197400969974406652525911238380438024100198320952706264877305689050543754184663139335746525593773271267205888328123571804902595300766739456572253586163731269315828942502797673244939935866992693902215015202917501044897723944234601815901816446119518597073428118071642785252036632334092555320015099759719776540821134325780469259753873118271016423228355840487004025929955796626124827803672663190989462217229941278919259551713011603462442857174629917926720159627811845130779730668203831454085725359927161815151659084264913975404151827194713220263245554419743711242751232022655039566372389053499967694522515622967388440113861411634882049114874053305380414113252283470374380212460127779063191362248274654079646520766105661246852653248045377267748829192164863429011327305669078347698750938473484210375271606064903581631259503246927343992065430402358319279252497837707988146264272790770546803743953024184520855725761737999719674156337297251589810415219695498276757786272888126858193385986702881635735622881406843483767411279863499485107615280477120583172656994100806129102766637769107909999802200291862511470711029729633656953886507568963120042415440277379345570258119315942539055503220326239273504986341929791525236140950916437221267071684450380146744050247694143889616450225527662922840590267966628129769034538193264913281487920741989335497386070132246444147666671701143925010106203765706805699200650854991799233740815119320969565291042243376672341760254424035185124825919520401982557416998956096989279193995808726385912947409842095715799831235290014482581869235444825663519264427906218447477505936732880144989436066208853507554551932328758327017345277604595344586246416384991247535722822057150039999653222690685067503062352663158008335232400320342515677854492618749562726722338326353175719038722239483526609031905653769937497314990737308690830853266085297326767225747030422180341697685251133895012065538150590946960687666398914728533303166368779385391811414263311496779475118854135001587398736345149468694755649599588364220815519883777290082192578493287438360682725793142682003760872291792992815822298801276959024282198972416442434011860836964819452177887819826044472598839994165235711250477362571221141261201901434151531422010736197476107707652595760311280569394392837424979829165559474466846427111802869976543915309524769341815264590792054213626983351291619266981112375653669469619608095971410615337718161936235697491947476561170263154840686911268700936793256382129112945306071603457268072028987137080572654560914746333903012103231810142916395339452531613173014985400938983902385010477334893476676184993867465885914739707976198366862731874675841774973697521708322621411147011669202254827514790055150622921542793263706419938549914615094728370270415375054896377968568580665938187438937153861980683333950214686736545042599522596249520676357104166397644785654243040393980423918541996893047001417653768691520754576419013401245994385967320036968844969615382601510340906023149969734244731934198127175389846707294475172327137075894184723611327189898697411908741906539354621333480941780576991929793244774110848891015206982939221584594021319044387590589964531200590295270724261753903507734796525436749434246679187346377618301415686980821384418359675995829714778476086694813684013970531711217495244363285012144373151050158756701224862089575502896871855959506022832592690855781036998995474999204746820468101237187538046531008619273904306813147067736807959967898420143727027133634287306833594497771231994700947802679984625325955929775105674947086438753456893553905529965804790623472976297784279097624145748596752821765098172474162486335618048293227729643467297256905923375334636896830984209526416773855790608183168882103729696364093599019713905604130615057387888749807030430572294672315673187214423105273701369859513623980165500372561627948616463507710417683571893286020525804452175479378549951405469804904169901630924075525791580258520262588179841041729421342562473451639500938333652597736429915869439002493222070792593505650155515785752300499146543535622881632794510741096857904097717032176533427410448399725370790632392097842837205430342491320490539603704109895786172731259445968053248603509536466998651053909712896975606471718044239205811419538853929781151383762332796936851343958159441881550829282201435330555636111164396842415669745608260701621509710127253801718202194206434013025067673848845701446363054410851018391177315802501057668996586463698773803329501276805723333603718902097319710014689977504025573112192692144565251898493759351924174356503575550761079044862830313015616428165555130777711427232629869613628562061511170601619811584348753987135510876208066349827805370799799206688406342103390389375321687441588495166334862040003620284687757408511273215985021028591478509393347643541097533730781736070085268027774097417354905695023866194295965795337949149922056738843473051000903344781634201545234314501442499107342060877831884168842051603480207936390823036356207514966321127185771156039272308212602098558817989587599030982159930425425957731053580798685172459243412161122871078982294022457771247137166065670088304709285951302063082792926131083759393023650970727802923574659776939426886067931875329260578020668724779906082334520266746037384327230263334094262519230945281370934637074763074486060416652549043758949573508805076762391806326258156418404902595746007926709053603978701687402081793537781293230356747761147127278212635006917429058947060512622003927680440794892132140506108733947878581485422818195411470273717494713805930888762949115415948080665827567416469429616384867323793293661059019131662741929310290724367116462221458913511111580216113717184962729658999939242188813228213114556944337742049765597423746699944215067356921245569728498182212919993100611888004110079250995045916453118620865475134531234821335227218042616828721009657506988397326758705607229170373191260053057748712854200451401370708250796924472294762713072621563848825846531718172542753146220713955135597673334863806151134179941117265255000944187445279103017908149376161722010286089721335685549760614936084844770655689333843522659378443530028803926288074952084500530032662096689732303847718143200882699739376271268558722085864510286522080854303831343273610758113431462910649214222668272203464807851267948333069831841387603126638606784242296391087173961598846259746098232063471576914378570487859960751371604443430413761809632742136692892653606501745004707207095712836572102492986397767850774891315182250061446982745773336989470577442464739389862238553226211891426658899821908748980054203612833109128882794436049571476983986143612832199736962512902698359632685086057174984511347006027898672601559478470698251630356975026461261249576233139319736451496403637115878960207457869751598380163603638240049398905438954606347125614085548799314720691913278617363273488079041262119689324449069228277610463523314528786666040370910417411867716741469236744447066116440828175426282942106368849581994173309344775072890903084157389213488522000665355235053691974970044160132564526530094051655476835590267008216657713969720069664332918035542382214834475024596579829920241259274158297130146569472817541821786561550573035259483638143098318160281430215974183956577962503084188253645473197455059525385001825233253641170746145233993594539945801331190869922555060515221311276520510398185055343290097028635350480498398993574174550204552559938230710785764522187813683760256566304021746992221177156672173708962684042207373209967045251969646270474131483278551122415437237028132126707366611437559239489050753473816345364864171621161332674880082287728668215912696222771580522809095789772854267105702506706264825243855736737501287244495132483297028373818348406121634331187498435520647570077573060731576716790759228129674409014901542654142225695463149984659374793606445536463690193637796978007328321824006115250116056034675574603748796954345570644152963235232055572832953960912444623361309852574118439926821128267961591937668863041819053153557144632282902438841087329732018518498829955204911488230148466953702527713012768714536890902982435450407771139589645521395820668643215755477641215915477983844665410218976676713869474571903648551430956848901658019091378219757749135605085089881143756463708370203267581733290734020456949373912308837469117604082325140095502478950801995600843108805524776136313519689688366699177691840119568876127417377763819061972396530948179673080885785476645034732247455899865993533693696097379688354570753889275654772653437902924200348691650043952463517159263988127783342428188838452193355475917265221671006439882341962083499377778263949647915889524366773140224700955815595430596984234853666514261208082334068468829065097902906271418779268390462461636897005332155550279117427147998286251454405793906400218545393605074934252729859435283352977526831537331042387791327850400830982690050499179020127178522234886030229837533789188668539833513288053597039091051733989728190863545402327098487304858787833637539015977538694796600333880333807265009965642326661803145728868416940038517548221869356479526326607566022393464134063029431799262007383065720166237425934814695375678855209359595178996157356274252033142449900457756807891094965535687245658862793636987094276145156581283271736216182012829032499436089021741254266510738016496957638446694951366824947236779006594546433081336144886273474423358877997616082338138548611189365441101705430440704766919358787011000135434982163820341236830989747155083483304483638880968260395283556149684183575111903533698051385821790579000096584032231035955050923347479429000310725301735834229544984049328197259138482221255519056120039276833331622254421542294822729740005748403031557838096569537486122732877809736686278510689488972243579246030535810708826487625685750028341308426624334780297537199362209586934119887173746451420211662271549471885299699958478912399912368631069611498519847884373644001487903476362360635809777311002735954623675391591230917416178026264564300195952680131441981807798908682286553066612804410076655225637180976966108640323199346971559879937367457522161624311974968623722241851890735582961324776369200841017461369999123984729053160042347480147306228412962623268909226840150818721684179227549117594607706321046674525060474452525647893232249269114819518549003386271226117038774401952628141708782032192094225572933626993900043124159266179449041972824645105001239496788348387505737727110889790350226817725430042275867157056286263279458025332605504412462576304310646208113407473971652185787900971793210846860604282994503086653222658993793416651360210044427802261545946696144747851769851591987412002926421020377638071659035651253003689280878629695827264613448149875184738802167609078752538820526572783376413246653388364306725558862501330879979411603491873487883460626317455935004487290919707332758997185917633579244768749163009277656800475068962539765261058604726380200596562551100162148445517313790276986135236469780676180835850869669508084502305380587748408052638169176070369664943562217554209405779004526389510722967017474690524696698896322225539320344130476297587939915693916735827024358144509788057760031549936318035591209251230926907279623908677121070512223451737381570600066187095719799150585608556301113376286316559015774886908134450620651415671340351108829037447845125387138715893508500799463015064037354868044853770121044629459624699666295521034766120689226671956655637096128853855551438080102343477309803444379049326462815072633909713993260454389158731098672567987319208538820595737555936677870504373821373611838636783768529885674001931826237204112344095266057860780925057149724120871189528500484100505443080589770921999155870212092321224591792532790029390064243547600228807876512394442060707880803986126136727564197626299971557276804300885183268895418928335890711326595300006039345048927464346473747009943122901004998991143111120056485947119905028151257172100388293233317735918326049124499181331140724810148256890482525633144798567013622562523406497264319120728340862995217506528316444526033575577446441407207062484150604119810543875649403722880745752556975134256458152455171459093095123895132808410792118590352206373685010590457696293893383471809212994826327729653458930509619380710668559540690739861283272310743112036841989116798442383348650150390783591096642035806558030830503669987795996592437258758917900103613405374685934313818764848039491153756733190237025279203211810685564597134950521214362713660213547396895715022603620663241200813676014957328147113313086679228435615871098854196667065403846086927437966262402595131793596846459633850573376633526688895797819717723862841039199519009979664048871468756437676770537626955751081663706726581283183217545149028924582988692306212936564935980293795269229871216551869944627153565766443239426906445224979879011072773881335831867676533446943508932574354196603726997641175855945619122486743240926299895254227868926421597163008399393528851779238991257915738575403848917048561883521611458206873371111877592837675721379301069963052051113106767981504577705665475135697548821800054239482824009420013590786273384840178646184125356137548885754432150518355731960581991045289527387863514715585768456023502694350779823776305437477532605534022927965176434858980164521149436147319690060165847804717209120616043755796698962722099173613868342055212942412506434391102974898397434092611891517749957461779413210990156872712853658156221973027259664002193745400265529398245696545014394249019120568604647533516633468437151399693110154596150473170573612004067201664655984084617294498724597036416061419056592853724400475385709667932925314252843698999778317640023632788532218303002368316034478770303009677553982089512848215277691734115800567448334924975706513981493694248864634940578504679797840147580977104668820707191247442323705636429176410123165740587921557976324704459352388311101165141762397011047914387099370713516043350232990929269300838459864050851276499728731178857647410683934171809630534713907558670214752734639319120022335732882449431671015955205540957523082933532709915953695815207979824386428328435082654534789524977006711436688158609089553093854923353850663072564840437111203588121282916784091715301170185329344707142300746218858431718238518030125880189297641531545444733174956807705304095736874019212069987414158541900947385702129546199534843722360860400387924258684002920052484894282902429961631188033871790656563458609225985790629968831482514845960135412953928257072674974944030824296116178445920654815035104696747765991770677462773728884910214104773380008485066090432039842104294938633840793107077930617250999952141055558845879296299637061178759550164163565707818966785030121253472026825168371850317513506618756100736561439757745231551645706630341047526075816303882931702758086346164930377688261103952988576081365724398223071421294779897600065333234678744874354183528631287273479443687252038625126054766971779303821978694703874861420381004967058167832780692187317171440198233157795293982198827379966672058631760067040770352812138931577375243973052678254207446769711393563711507057050695108381242794857738031508761057766546150692022814475032822830036656815021367664235323779296676885277579485158737218193280068472785675076810694728625192469089475180141195261430030942982376863680845159793897550909080614151303208375574020196307748379421826077090591564635802569531366871143012419079836825832524697537624547035197403040033957586684257623758143680506305493749157232582019367011019180029249081341646473946360239280323112442582709764122517623634342551288833317587793839506154072608739566863127824016020086887265497672988879679376063673980493218049980511708162652875534721789272780726094137128000154059639145650451026893599047077746276006017528288676478769632893136732050943886255535075518471483192056990654853656535952271498686386648957438224627354796893519001694121271814096396376299083885312166046382118087359064224189973393359251059238519539744516118341257226479801877874443054076039495926474502665613340645138225123223370999973231575972681074792741520431664382254795697675201526607884375265192347360283427615120578598230811124395643340885326688893709057497753686549445707565564895569813292669984827002815359856793417388311857324617471080392562263913312372990086351547303960697303586839758146501850408583044516767254947587530253204362666950279047212959012352442186225005405636321227962457135897224452640459964758403273364981258460424930963862462865119253807174942704633886077679183137715823363216440237465159235719864997664876078388700207313784679404360482175016543991555303529358577516952372365588983473775878569912797704234390211590209123525475861741726132789481622907245882147273713311008686484618057360417450387822629418689477699933284634766695014796376618595469300182775979841358946635316210215718035336843700472005513299688384895539780704736918210683004060193040263662401953013134154520690234307343779641395940418054322031916582609851742098791284148140871973460898074892608236671960799066418378129709689755175240022357379537093192608410701623028404320123312492772245867420510446617512983564976101671126387291487566965381254349095835564544319873346224218949159648999724529109646325340277407481311623977994038072308438548109617344491040098729648369344227782410801259804406527594934226767352884329540697223393784508178590558727951028031495628689948035499031059361565597170186217109425543466595241829574579475918241833965539446156550616940625080201615308336393235004827619354025731460118867514150810848142718205409236767172731457135312542691756229725249536530005092840158223011380603320027323742468656982268420098536849436260419021447285472717493088988037358428859829648126164276888834351289653279086619300042674765319731382048764804493910393278674648696833390318205138161144530287626046264827414616907836016663303208371834601680236970198321793149752100912423191259137507697099206368191715655840350687942290809272048405071512226780341948607200096003470811258063630495001320972815922550533818709643313412378189509048712081077702942327222990846027572395881317979784837568778250092946965252830768617085674652074435477280945475979180707929002383474791870442359796657830082913477665412639656898544657367963078968431653452448043679155232536061933518812861718051542438264347200824616662325657830311824245075618206041735312891374738574607413323172935649386421497242216339133259369760838430932633772847166611748162190066167543160904758064564315061112349265117155343774302774832526471647657341829336670336710499433353515372173598455579258544680709157731418433701975118068640764089561435741365663736418905640043017083929238046030487643975381443334513108201525158697249676982991790142288213055292772105024868089696751846508363541832573480056773579976563594499996821622642603566186449897137140296613680752499211297104846939567326092473419000722339681353686739634502262030094920937510836098761851826526284721454849688964717200649963330995733354278637323195503727372062005239748129484990907552692887568761399372361285616667278558463023038772696928530453992001617443460082291958023118493250569111243353136593904787881637102798149653976853445134951231549315659716295208945085858679379954258752055820876395442822051489922021834083089096518723631044215570024404674796452943757846165780186546096255546240375554067131545921379860599852473351362138325960467872877501295561828624942087466340740312068323520470230710168023993451485452189569762709925938284927696718602833352096544389903063347752540538716920580912797220531307271236655155439985860086717251858387165073476135475597432413691951015944029297359962678319509966566776980875695343877104904197478697084868362784303158002590860826512008519687248335490074718766946151654037843351354780041417576401149419501956966227349377485782910570024217512304700006771552177520855640888682694310277496846584859653259647179752697086025405799622192166494550872894756413585711341332586772211132001030876090982729865477374497267180018248103556468555515389369122684687804650080848705262058400783883765178761109652905146224831766912550157765231162053280632255960889397317436864549953257816630363904995667533635983697299024593597997817683281313222971031367337571638908731439070742799079892969911299464869166880350791517342782055009139709730043783624979657513844199311182142410633574101379004925307728058006007517099758164181260669124626122458411089199993201956735367556570568471973129322469866187079362258464243527053130950987171565090337307388295870178129028763384272909251564908461148596485438220796437722231035971228337596582035689102278370018126929316322929000811294925097378190770320995927077539029655598334266930588989661737706488021771055421662511220582853427816434853759318030724827577606608686956547461726083128155425499757398433023114218814852127595813086144957577818031056923478144186364641557608715068046242840582656262233543739991758281343954813316506186588676439664065743318704934373054590088907635777660577683674646044609386813394339192145683548935813284248730523421425366310725808181760593458097836260319511837926339594378234723992622600052008246970247603343831120440702463931289292536291379492316175475085841707583248985774666304781639097144144795523346738323369108006069544896713304515945562979097213604377284615857275209315298020725803945674919067137075486038238023979919550115247022907228260512112809698957833101676196647667910487683862797042061503566472994738974879407852006961895477517884876176118681680253296964181306854137551992281114788861063037372137279559826573522609870674958445874953964771243857822196130805170059763143053786958425429059286745164411719431988129608874106578634570089671945032232830038853171777639497831305770213156702947506451370513052716375005756091713093882042735001011290435666704066450420885973770770742368191850327314429430727754461435377518183851011778709944944462105769125358445969765873746796422970664295554926219395556130018448048567918234093804505554474524716543356520408850583004333916034153506109702726988373430745279488146467101032183231509058594448967755361568328500320830762833916143523765251654051852581697559477683116786144096446925737433574438689252223043508369474601842339352499749169937104319550592952422553886988720717427509961606745684405751526096254256247127594820480799829411099984629109787735286024650726079503208566444025963569761222006748033959805560019707662223598332433157329032559871445674404527603714398472687140535710648040614083060921074511522258415816018283537723332627005540256449422423044428549310915054905120854333387528896227628736311034002399306144714863395605493411972247911014600246391253148092016008788580860634917790707808406802415471783271502905522393140290772423723787622734845373314781865361707775587446809276146992291487053882005659802067991814362164124142652776041000856901335598796782184091303500765986320532634567571977098629348068502663015957574791415131541624921117765577625414005049200858649703662785695220320672617324026446009835004570965405574808094873377244749365211956136608729707147183295252681253378010386421508894975166642830853071794893954664592425226818640926858232579957871186363691718403016926453960292759041340285845702148264728799111746118613162787711463659451494095756003342216237759066113452050066670889961476472251586995607942735211469999778985765438822034782195917768628114914173893377273159243428891841449892382198523903519045535410891708951099279691179758914394567270333134373545379139155262166596049188338159008988244944530187464795956995653818420314613260591839091631507012058570803321733566541045543739034580395953313312922228791368491715201503774156694892588651942884545765623375013542295743171330447775168177621186295453339830438650988344954367403198791292173413760193583784503176655257543085675457694658203447704466910285889917709540331374523212579334306759428344871004183465853243802635304534871362125956332323896890215932392408340474876440790695009648586047603548428562886045198884600592472868078807053942643186583203314696106897065979170678780332078248009473998605465043434993450946927794278546217216202535126765273155443388329576360491500797464421011025439437343913432452973899282421084002049593799114726515312758299545875893250830034029280181002355333680338160098246533565521344775718226345877997823784797775996277385046774160265016325994295655136505837789460220797793739954520552614930355427034421521752120100084614352859115443438681333559343477265366671654813978488837450905159183802287084799645065815421190120595923636816039860393059056214069545715757128786862946505885539853494080021790822121474129641033318688481385608277147697057925229896353261348717407446300601151093849255403264344773819013717817722436832247045891569703240788852787064235380219352441437061350760622965556893440524724365909834410069854709963520837945424096778566098788797733531261828908374027223761034359663458042379153645551239923669687529914330958103282961988940690394516625421683417523161822620130804006570291732252478183445359382786142545175215090760626826845797273430053381196374019202548691073990286003702186010184906946060859126819838926518910130315759666102854435313920570787142761838873168276654165862559001904168693129609718418793357812126331380680309871867859914434571993333437062900859533403417676940160238217564724879920257801297722083298378964071624744338664004114980286878869647022050454444128951727920479257227034697994943305634801673766891350092484370977498821530902028436025836617540566120869178153730559285763591767980858793293167880363126262132244230036493472011653388568156631009346502371402547385238160217586671989221721322466305097310019156611021934164599277041715720632553408910184294334164964360274489529323294440675746467926737430288561507896258867524500401195347885944133169179347458845212484267887090202352021787637348809567004034793977961055986233265114177809160325247871766367551379376008919317360457728518372722096588720874258725968266216781839165908676538059042104141202698840036156955479748338936997904138729224088571641980028324863807620348688809398493036860648112378119067856403290244297597269100954474286284437218394584160033618853142520688200795180170170082990541553468661964803807818889762489161264871590396177096461978641557622309939981644308340963672794243460304698847709783421483175330730240193427840836850838124170038795930019804474214336468838968618996123277896706950066775713572976323753427444631426093101223434624148664622489734063449612159320016764493775768846953570080233857798155434369846389676007775333189812846112722058898326635493572100681681612436158290389123821022027520690069768728899752408421622719708213098919064135885118484334785215796597017660598565235960562008168382395818497451694946357784098275341190802073604664611863488839914235947189653560303151326971691965610702542809923730140253522230572868654240389157187166942325281436809981244190946022332040034962275822301086130172192471478443573017242956032608610936001753138688278338578656242077567332893477457224823464121459876985449226006296866975641132607929342532730112136250476013402087533586726298438527874963264581186639272908448211989259526808646074584908144455305938630870643199743939352909904275705974521680563419980094097250145464249491468580964247084463274855704857160151004091846992000090059551718607081682300603144146086057704843518028942245448706404669265105128274755734360514463061401512111355892623183071590481999414683641812068355662393583841647266314426958411043625042171371619347893337049145899245228030548329133607963880351792446171926220522271445512162139010042220877286661498435831836973967248256048571769278593195092031200420732383867575232478388208710626861198985949859776640205699363409027211294027642524606040754258174224239538501572846743843507202522500978625175418706483121367788268109956088829573070958521304385685183959820545363147908365873913579740960381672146042641443942356420335479410831100369822953404529020147008381636285809290041725020563966447573774872186011794219631006012286845014932393782110837220291215016258733478744799501797447087883966399859149012540399172849273394894998278523291133449242377129240279197738276073111185594157915783351547977831288638111904503612478528574667866159054974433484930728834873894970216268825356543833607138727079408765418585657298747285223957159745106902472361821672694628691801980562242237680813405725719654052976863068820370411796588142802392910039646629695556483249273325613484596470854433219526904346669231401871039867453967703378163798268518287270917550076244671872487171523484362056507858595274553753199417889717972733283655617895789478503680288603925766262794784223397406851756270239119316900896952737864800358031085132156427372292417485286067733265076114177370651740950123187057688578984807330971866658408161226785709019751568236005350364756035258497552483431059906742371420812025556745986381818870351559615266824079145889500004947826238793465319307461357862031021286130582185260695444428674466433015701521957463717636032408891443682753679396015594758046669340658150158801966181256332920295452093915607085060841398525132847098776547794226771536886447857974185979562632555175640329062124469824513216128047694418703089672484679590805083844530711696744757214644583140152245744336441909369237214323758600277754700745190706644611559495382461063661826143931737431873138566601146419456588937651316785613080413134283393797781927511994513028577486813944248834180573063849355784321336304619851695694842619542603452052169596332830421505384452072474654311858676302265337763681507599582844921081119229128921543790917462110860156398588138300971732344209908551536756057117584435776343973092434004875025062250221424534679348924976839069822549231092894808282480881730806350331128366477082805660232171706027868387558371206176840904441663887845596130039965875218424441413980591959042719535903962866384986192069790918307295097448201646553784176993413422484504522986818812504289525709514413201364145042742301213911743717779936946681679110967849285430684944644000331070108758469236653179817953223078735680225179891957072815627314259410704020627140093393480354475566724733327057447939012644666092068104890396242166409826732302043047711101526535813399214579599420677349950713656194405729582191354005173551058108017912212769121830596590955132159012450290713824976444511572129934465768174396532683931619663848429337474902735507583648292952397691562526355128845738366853395445997591541135468029714412404664873600425774511608376680354584633782641408890994839242398473553774526469351764179797870484988553090243658730583666886725086415473388513412162821458387658839068571283972879941005249604765769437316016654418184939842462764837886103939436216478376416917081943271676302744339287921319179737674147282931555142455133421854887441675862453579015400002188717911618173765184198199828305831701445034719942306255133962294264193582951071138363973004223488283729856433466930852976592568510531536516520048351607481416059455223496271672920262398747115373142890589597036204983035674335528114203183413001891959634827914156649089874791963256850375518894673171165094597113572164918382390915075859151281647092125904155753643952578709182147130399065811595979778147134270575591306271205524742259130710509376605936628372598650738798953397639342981101651519119970355681988719283808027903918022345255289838814580050793830389944155852322247052851705959435767153300296154628351289127492055189101055220652275048572935821875326203948947596485878825119651848150701766019583390858911377830412778490488920261617988939879057731750264253905369696484198360536200014387511930283557107347957094061537228241624032608414643761183889985107644159438507588170308366513548111437971601758076260705940067971387668623934250394019399558965711349387722807831209620194594979928251893510758176662396404314450399812762149816668555927844904149743482955635142094763043176025402532905264034072650815871987350725805077674961497158169352692912965297300913491714465815712971032970451975441962255721861313599075565249132416587477503864539076189509197776065406787377792029217594686438289448407455711967619448898777116791887491191710450178481602558643762302308858158109904863239199270153791433403242486776007697530513439853573186816650824864889228082339836255592648309452981515857582299517788578297952773868980878911172599825564583755289035609474221009509071228025965169274276079874195202233594381386112158540875576567075394513857192601086666051144226956267526226263927640696234388623888942828892034712006110107582628811841569995558750775069211056870090633979385737490863130465226049280167953651822123537909164863480748490044227742010629015054995362849360043332947478119573759518862121417249288142894085572862264230101062645108996242360971146797285468497947868126987076623124553330315817327545641783456092817109486785953949701198058741509489860149953982675559754049488113723165842500454647774818855596093301210672511976635709514047457422385890383760068013982258251125016233205387694888401903769138267455935143100097237258384949208218548534052260331739968063485018738891018580628885978432189710300830802678703068740476252971557518108798248719136716379426095237527808970654728752273988706805459904030842281081692935999006425233739648636584176260258220734702714020626238062363739316860228163785950782377402562824994049759212258735772933857152804474041237994212048350115633243050057475881367525102261815830057323057387228925820219017385497531665550528988430915399705561329207969112522362309611702397191576636503537665549687058543129713650770066232421447124224483526996001129441539770582891769338780854888988490414793725508020767630043993326201962515842826722207907320168617558833077363791734156996136470561430830088804276976600574921163144750314375473156933547100348713146012823710216362602644581556730403506107963726340328907325624905209105211201465240856961121442854010808902893751233069486307111538643517469588357617714882768208482536166972487405098853199363515784186731053701006983829482970380032695937193512433847544959077145432676511221460136683633907873569072639621666981684120196381880140298248255545915917025934791780682775982333046400845087536263765112603547411980433251626130088827449246212172936408841232640006795694748531357880449412834753373742314576469645479828684413583572800315975915577410276762622803351425967819418640755659649654314622998925071420534802885939158691658689695047073956956868762263934101526235732249743400416062027365340078059443486686099293768330469250895165006150998818963375855639208922401466254101464654386565707454587492959191558841056557565601430765703774428221072348705027267412823801096698941650152729394296855684214905131632263524872618219272465719560289081410105343410194796737682984172041882378399679041863656672306827591521758375173714010636802545138698305033833096937796463939549640370177874348055401473632383872399354044550694861419517421854981868122941458092096611725818698188626670122296670300079328018589190375958171200194772265414552824560745244557257335894485782151701558410105397289348192590824208849173350903126892804528467160021900376324068374375364610824089808517196117581852305486318047282891890945056063219394119912072362697588466036977348550439661502048356603750324321840894088419175765248905223155606817307038990356887858043307932180122060733353211776015840478554398219792877262353253574572246799935102871108846723422263697752093512722402525521748416859035074531727997074040587695243601217192705171135818429417761524490384988896657831378209241101144454501858558525421901901529086034155830939664150044252425330314635424341915274717623074654868113914094947815629962428242627495396225100748940845422292459464072425724588877144994029130394727628531290923506332876833928371844712347035628722453653142537935342708277730022003754358276234696084519678691234029805413567669687087708002901279296516298485157674862325487192078655868972228652698147512664768475902960116941773674423805252793145443831065676174174481502157548100659376252594842819172043111942276957247111014221791903551358761626396296115295493674771384843873731348642954258165164521958464434936443053120282423466002366418366104708349910396347151378540679215425400587931120472268083221971467498718485520638788095593163412608824368750565815987236258520265341325196369790629094961712302457510469952508768664773934075103053091951286797030137789861891871433983828399611984958252465568327357030644861583378164891098347008437944412609965979863967768817419556327182458931732726370145233590949162624216481169853298398695679253027475827839794890317102794336213937849190450176595822734812856300958742030508333417906460346872432625247535198527326983792653796757193026977308173715371353429761963170124874085979742307787280056445708599740246758538400046665891912688019814575686713904584383028444697975767386761773066430104009380798317600863597293142607616052702354914749728277367375356192622338716849579443949997243487504780952658685574194976744919773612397382514028569470886206588517411316754888594140886132853057259053457919095098247015853738986169486164319028584113643013179445974788121916965001707123480489770191092130564100553483915041558115490285103124505926362771756755065576125431938747847483880511895898466860631713310199899912088261793949998497971253069080245786955558117998603377510826738292530631591446047282519460347048925756689707018395706038996786725892170311420137819482503360699683105783650260624580779302302744461303579785779828763822749429492772381548352107449107462606575030205801954097880082438633484878859965258931496661321528143154037542899535246781469928253273729180883959637379593793146298890900964371335284774406585745945460656945440723967765081195978986544992918683056810125339173083777756187267608706565354251557108062980307707744063158181282772064964205775210324131105502103898799130529874105203284283573012969855173009548181601127821728911427009097490113570253018458513497824684647706890325777231803971509500657630526880353550737902971812682480300676779347487076287032494404925597957608212282695057754345370585956675325008673973383621048964988703014636204903340247743796480552340503647804175054418214650939543796261296422408658493952692302796169502823586031044367074478516239878018092633610230736990250807671835078398268086477375705867318079824067962444146707177353738740106248665286294576509956689941137662294242319727342194114250087640288473439942605924767481185038466343035738980603895197412895431824879108792046828803334102858730521015328977529326144753450089290900172749739278982426053685492083670403993858843537525789737389205667526952740034133046925874579408444117822677137133697333493335241948596106141956771418072355773846411914062185899304363299449395945921252713667845343238870580394875101821442321163376391283269458740605941338377201708646189931215679096351932412717382819349565394446226343136436980663758862942649172799527069385181868701407864497345924908128201925510519306671859991258397185741454936786744575484449002785520345370834960289130602787149469113817950332985481853050543514638228912754259039790018204189167258456296176935276195751510893307287797382437356744978446360447288313507917751493538350600273976016271588706554467330515972189700663683227461417355751071827246856006481098241938838277619089381890391645631454833211316239026634963111703811544799461173122273189223003638867600261538991303035915210702324892204134335620740559384762807574564943256910984861470550269465045570756643872234304696367330894941917962506442395145360845586189112214299091107606046239132929092753326795525096080607114850768021501160198302519975227043063883152649940211331945545604852328927103403937796962507679594083740822124569522728251156388089574043266562329637068521433500212221173336607873902638467023639579119146407029047849718834603909925318590425848308801784655208832064154430059027936044686171330639040478109510762700020428680254414818871331929757784806679412300595824438380187617776383674702654783976460180255306129277850262409568787812749753715589996139841187783117073331979078045674655293691303870252841053459410906324615153413052855191263040283576029353027248260039027617174108333272222108504609507605857506774802145944403298074695513411952213344635095608954186445216514847956544005841520677296147961095526515139910534925523419484710395893115325921566747295667103237339486912558640885928819155013576007216943691924429632988816039117758426543187525408162077152173186169308927730821758549161335747658237529864520413465773980438630201474621035885443495064841704090921975248404585842100980158410287827788600369877432911523048209556271523222087728514167619893353220921406789955185254043200575720999297102086642265694813957476111741826656648753524889352909216600698887617114467151871817548387218245159243055868029653261389026758244399032828931946769165816612226308923671010365440332555426706760615546596688839012629791599671029489045208807516397993352720342702014096682126180966917496508218891177193403580133130294849630402280938712938986488737004645762272635118781696762005840931779517106576010577210191869081748217461307624215866817724491768956938807239078526996168735037226987028934326848381351656186503455909312288235152958252830006356675206718738425772885549936855591737677645003381494189550095594354871612343739533458178527947003749031361710637223158017682598715631790431774056963216874688437672836130281312696454571603824486386678884190308256994940936530234785811650506098834094334672906736262162552097554296196903364565913510401087251173002580574259173187661298418311610340084738460737859343064384410345018098886353030236925343953763789988661073225425279128957231782869881525916041608628821750221196109286517153957983903459814162150022908141848420023345206726851285859582274687702252240435220689323529855598117298039441854800036038375635571221436360494827448083707756709747126784074157928670188415831040189691073781968047101345363016980877525722294056727820964604158572467448049562814600188621393150230531569877515615272164002370532711911242733145992632491289400804644937420529079598204918896888495410894372130249996480888859805686753806518544039252591115649077007318990616683465092810231459079662291381704930389266081976712447636951332959657146674659814456007987196039323430118510918316499576255149487412610342026213699246774214198965303763327512820982415229197566237662842387885122218907829734123437102567839634519687356151445950474240390313235360456713525044998956004504494150347268485895705956922457976491978490930379218092573372764917386292765876398477401234361545385402659541620609899775404527384874067062468855857407470784126585545772371205868391938115995535088397918238792535058960711202996838401044837221480345931492156980068933530454547336656565726894460496667102397037090626241730713891464413964747656566785189302005668378216057250616859053478435734075396237525884175821223588170214065687204126199418879625337977267904883993634200201029776971495980392059583950387110644380661182137724876517374908574474631804877650084642581871546009207452867475921636815037478915433184366291600383794986111113691582515940790040257429772065516160553723686377369302881881362206367759565367570604140078841268424257126947508012487272005012559002123425748316010503713178580908183473503605548084933515122164895736230300471441044738631995319421231507005406092472067070326935312684753988922750746572648325109546460901939355346187453807852745941167203879740251402262489996359882781089833911622600672504520876555739770656686198736779751336983477411171675246512498380544401963705037531496097441170017004223256569282011049718804158670000309001667672785006166534894270608346276877588545360181695137537496013131989772166112195388585091599931689519472976920412433594589549397470786900617004876216662121561682097981097394173786626837687143006248723122995773154833586943510702169670410153453214248630189242980178740285147060111917622590049196436296441982434818771694440454730992562585464160560145623717524606858048033376550193628225571124184858726772697820450065707419212888845928627094969081970095337600469026260302884820369580080001782605616500547580652823967312005854691701350796643209126689245320084066404616295606080814050290387944995644336805915437322344965894822972470830184532303363802701482181677180366591245731384296090543270398899837187556555239802578564196940271327605001089141132389833192867388762711165307687015532197194839314234547894346457873473138818935460610229238918156142916607213495265642183360642691656499408644267403359445729838381965443792529767535855610768726857661264256276263704159914777721125992242957961544021423010425022297168627288737850560445631766947611982740397655561037311460529315620121016507844612473888825185398424008545079208177653192374694170876021919911921728914712687180319854061063683700083179333437037207244518914872987797055954960866208323675699486511807006838371323716833996249721679276355830633731766788509094491398858212233123325848449125751657757763180340959678866557928280735547031622479884268810753878871744384120620167780059721627692014160757433147442233669528202037552412471674928364474747084941025558794058219719142010615513258414450293992610964873723247399328336643728811974402680567253522898062518871926394074225610632814647166447467662789609426484120606837090116859002145932892274267839100673958091841369120831371759001735274918108679101781083591833901423060253109990256279402209505663600065795460634088203263717196758284796330298407492227712220493078929790500576915242784720321188449010401183722116477811657450049004530191999817919382479345266409675108025151974389807343020002982483957020155646985102203197237996276463931328651990593934736553420963636766239957009956467488730908466509949656138949391956387573229625690012477099075366611361548673548467095379700148171176842062162905566868402320942520066316226515724543794936874593530394198486782564352288594730231845924108781769831377552416570953364466834471199435609073946360800142569570899212673802016084281310833470262256282506573521633737424767760931060613744972479328859506146405118242048693010500545436683166799121705086498295287693000652065964267397917198755464037527672922252898947776150546658038030856212978853369343482217233046763131956710010019946223753004527653421617142088467209453213768257272284685322511144100012970051422290001703702200044547923687126558354823241718629643481892673349213038511557919747625350027484342061973055723817582483714804525520012119799029070492949884276045801682837586096005805770649254007065059649590478534596548184450436112626879254932965181710899521627561570370907157782477154408739656574292628180054810434496776602610196270406192600535367479172329352033708528022385431807385293213641868255252501746957551631046616471558260878811998458710491352245158746436768114092954193061281851908034113947709074189504715018597385524491740359379689136051264765569900896895794800715508020653794616743866472134183526406038063282542665942573659988811305569192613123965668734867818010148138269590369776825827516213605535821296333056846967452902890382453313562408225462330548384696709212048597719611742276243828920285735313519466989688430084655307822938005582762506889086484444278850488351147893823148884547882749567508579245686574401973552170225144134858973347503151424645909990646588501247641361078193830765763296876249624770365297182148112280982736338115275318361502251457979323932661607486072365672114343187451673674519233344746053681114085120820733888883194320210971611243629868328669416548630122673730515296173685279072678108507553701309838002188675502051161110806873489656876915754032900369638851256170003655618557636913232185764403033973521603799095545006768047147286352858204887170398028070532656999759483496763588351744834639666443965252551499397158818432470560802961997450737433586437548329335699743995501259190987444263021421216663562469612718748972075458515173277334835948252992594327557452584794386860710433288921619401867026518688912252903536124893547393965341974663801618324419199320630819092086677592047170593031767930067549819373213301086720655097191591647423002506974996721368313619193712957892259749806990666130664648519095793651232060663448608536769553956198723297024373077342158827027903168079614755666902167998525425406501101298957850060167679806152070258757371727277096047017866832632668322401095366031939405055959358863201706277896807474816016821692271155289223579023227715158357084911706103540192212953534436438847802890434491098814683151746733186347280019363170917537988377512213761306391428017286639053558493843098739204204170079422641609204107298699413461876733253039273344244744160369318157158349897953189881611231197973319965549195181505385805432452262108337975365926872720655917399948957647896671743831314410183423994733207957004640222562593489893590063727768205142031541040861466580378215935405548784388153272475298670194679675372809452670752430883911456876850565802757986791108650833502649735228041223479204398684973902469195223358392086595712635995973045398039733993509048529507160870144747380974461321183241257552912646208674398744667914352068228105620358177126232540467966599747874112301747832418269777086522611900723134276327999253993715794011476245076409974886133042521853556997573081498036994560064416800551332241035082479444644859836692707378985180444261744477088307661090870380457907579825283026666108870728128156129799960967554038738571236383567788976265653341475242528004021660380037179683955873388914889635195304998908709544712920460233326719441079197953597185452418178638210671536714882342567995560542784279932877403402330069682411420160892947550027326792815193171360740042025902247885271676680082008669664181019827714657360871830974627096349785055594592542706111115779223887503392279486641090562718517016642837389993709260169063050702354713479112188156046526913253479935425121927934095180411418676881490811609612589990490958476217020218486768419802991734266401082648975080082336523257533376725837263565647007762468323011967642619555994588100422957772895135387568994678968315174645239934148388325032470118070791288702191452558469108806923414933920731190937514812538809315601095176471548290298496756745941259588585347306974644956201844713553864766414279974309962378061514241790296546798105707759271556118719864317574840600458936544781439102934442065543899024831799234181128632789790646709210576426993962604230934635861886816335532351788506498940688271547331734131596953556801774347769883730914027803161793987295550677032540357240906811565658366602891625270716367301989285839230451685041239578164093148678734552781274483958599347543771191580209074238018574397543673313171102068087850132260898748731362175765845707835622851792746747415804840388213443236323142942878335737387271820175268412952810385966689465837598219758145088158669859374799291718304402347401306319471015152678964350715610998022415781511648281927503968438555583973772585028289610492798339529748640975073793463532027719808515245845881074969723678493323659810782809154827158540819733767281581409100001531737714725808271981868869543170079819260226739557833255092606817072889542898134463842872979609710197427899835808454344552124816498397025558540556689818239169759214159036736105651183146347734984815411814370254551743836510939809395403989901799425432263819034684137892913383066657292500308919955770600055576679281836700133609326875421423914170413979695266116608734873006282997547992109250127095588067371406191588466534452881420805095066353633465011127694521874109252454468555073059210891673706974617180542357696747141922076879990512751976082730115649181752174276604029780135352356103331153726669290695022771986557419767692871213471239687426751595946078367047540773236545613297982041140884885619960449768946998019225428030451845317870793792150668617992578844385325097621654549101132790455199449902466282601052339066473114572361750809056121316531917829019013560132973444326128997960038010933371474772647860105345032026245412830800154635092078068667270453718398420681248869598238301686793743038664191877937221513535999748790020009158653098002462497154897284546934933764599040710679712263515031980485640393307758481190047526971014499998103564024407251944434031659691134010811516826433406966626290925766970146987433543207702835919986410276768592871356214632508513732057683275891491510300887864979848637102417540685756047073502242651634375954603793965215351332176070384574384891926669360139069428682489949895930382609688245204960132480171528059658974420226468425823107865758024326036639194373769987808647766593856148569747079435404460308407629706991813333912952024979538841573453892810234384906780081470724446899818231614791344783294474180776814977005837077684884434425090542285726451089492886158543450787303187655108978137235209096404356159122562875399949611893028338466154127522713145936169127847043131539402312558458119101458324361481711318260092386765225326431359954909611014719716868138494468243405815104446875303996338417955356853393263925054306071231569810725425240522531032945316613904143902161106522229452919491850258627775105398932815058088653864380513287836635060108131537633936803289749672064391979058857981486040717529750239201854744328351453740243441894118538028173942449539900667694856496946674907686840458531260451721331622020964147253398373926674916293993164486386048591806312397729733637072440614779893140838716889533172679433487295674646379056930896383731863138488390098780280321708112665885750032327313684192001461640749503506785975845918021603223369944819958912778852470164780381938393802758664989658799161547123662142621964054210138576182795820281432456503937941721458575254371195137939187479777356430596705262788622776935622277090392522960322215014488288823628168047647556267938475397503493825217710025886831783297096321727754091688725747653703453472830068630962311443512390491747710676695621532722798655117589224018515853514883523961593731586642357365014367711384402348246640411234043531989940799174566797745406687856505312787532593066157217305612187528940540318185008956612098937640705528257078263476290512759196328090961700946156201234113701167335544859190469064328642872064483526225004548532235085992809737058816682588413597352550887695915576587746486510590930692126483084327054162266141569039509511500944391855351726764210171369862517025898874522484779513507790786666315628308177023496009851889589560099830026190869139372414497478860416482734379629743591975379611333295191856015085199016710075673137852721078692376098408050242579917326267358457387015164581300433245133139692469113960091397483030662228035806410881670269377030642495550955560821471127522471264930757625997841337425819158991887651982739927355442682543109029417434757894042494113448052356257813462091611620371345614121023486152086904668189650102115797800912929326004731948718946185435541256598071163858293190200107949471835441174303772332646418378085344919129897289673531149428160714680286779504410268742594162043882504290231264645422930798849012920008370523182355354433481070491324792234854603944664894121329822325089832193191473889427140797290513727545796693598493805432182057943437302476340650290440989814891988854254529919735990118895447834223660297641341547190951536577420423584207804552639175718241299179469735049358581259687494944652484124382876100348318328487873916128873332634319608712326023621982477238408945422126133203685106191768690784993440881500190387904735731298489178777633150484830991745198144346293122975100368893946343465343797482343197978075732789465525775320634607415020508608090779948516915516386128692137011387238301680959442452368028099966346088017424230982880749577036318124574779134423596051312960714674691746111208888900973519296159748099590507812992279643860421291088644259499312389250835312889299143988709859099661717867209267124495004334034072444427752741024737010774845544382350629281250949261569826678874929881905548798281201314424865803458489250415940532587128183573191535001278223130929161466197281534044977085360549226634140244986059472325043733293949330736060737269218339151391440639306575567620551062445876999367004960110371816691668733330449025787104526672208662758612184145928144374463917227756967209349873820128908773486681783668818555898726425000211805031029966150444223443085783136822758550978758249900046161031162065563818640454865646501297768859254851837630237182938055649780732874140017930569038930906693471454943584015044248284768848724531010372505997412837064060799421502828594255092753597109712316503264244940009258105213972491379708871511247723997023974660903470820028158091374181292328957841383769378256003254693499127465505078633783466358856460134432208402583225752162079309334962897861017788090680630459594576752321368299042371406847786046925174633243534097514251692364188887996807537710596447292964243208321793937818146069133166498014146496915891287685874276299317758243743456116786041252338465745221967089786969845396001241885843654768475697655147172572634114057714264846861540274199181415301273953439584609073954383472716461035961499526976804553435583976760895246532936673997044901733235344510100053175662336242195544589946582556015918954700839405514583254749518021051326166988669065832119735833789832828865803456982674699461816050151584833136948322375143074341617745455814771659436464659205874955556249614487064421781297996497209601727223264955695845800325914488075872223037497220268363107432211694455312774982402766344020872043510057651663375877659674182747427582226396111908240184660440259196083425130582690918400864111027812594556011632568835926010873781772041560039717366250794817294872521678479187257970912094357095931372399989858753822629054089814858260769306523100160432373473382226984293196431650641331273367642889847755448667395658629688625257473740101154083154923152580894358469685797210639719888760772106540270991081253908592238653459431210643613312109114951633981195349502270483973939700427091040297143047373701023680332917922282738676514841215684114864706201623710816812865171744380646844472026009411789811694865725625316698070624490918441328907609005613773371877034620138370083172109628741537033571793424001731275938674442652647128019103350990354169469480632532774494729707166113109825982293076892154725890966836971249662025221757537627493028399330987613623663003361314123490376413818209273878508062604083591405656968655146717479230331595357255721180410190993221015519327249797621850948736944844797828037402381140001740506430557802883142081603349468511449763154953899897239241511722937374940567305423038440987024401818564481560158391732501883261517376562643621085882924785642816287912366750043340596147516873800358739549546181882809206910366812083421609912837374396890507263946034275591533496235941451981807117203515617074244383325884271116633929475958501198775334392280182382408788943113984636729963293987335745748042811744427013989221501128090002375536936129895262022704794024741693075545935659905386347118567029269003309056228088320368890761733040118538381717332262444750028568110393007031372033488810485171505570833385218801823407194190206598217044099334719023099477006473962047653690816795795071373836132628389922158285774972630016488126124849478881361812060989235916645470158271072207146910111610083772713673402250914923975263909658202794790870336951839970189813978852912283996541889347136329200066096221006219638713539186334906644888788940032913864923459883593447951969166584035984979808383869252306798132699072829048671444750987219657809816681789937920399541981080552131799576509903092835513548693994754808385876587808782847491375357178676399839113192141203463114508407003254510827630465132624956293165755341286793615981784700156605039283192695104494761742934836087847820311430983470097115387819417995657663587437982331984080744097759848163511820112810760255807307394701398846632346728588045778443152078967818898132771117582644404374312135398073448266028404360002026562403925115908919464901140957845354645598953266684455362284481456989721372092466121767253730858312311880688710674819800860684094381328950608350637617099121630058928939172030136380878409908918027713102060344407224716339608327506328493045425961415538290714035861104586178965237227111203798336547372643961592265620646031752777749847964406692346711909465956771465666622775458466073942626670694067065237043386618567936883471564435093950834831324214111286654235856937768548648087264555209896795434501027343708517278900241155514058163418880154911199303655287957523810037823197977543108114664658430046263301967732718194854578662147645406903723291623629922972350464883652800208595907424140771952227044655814504967702339587031508639990224342396943262719565071535942686279422305667409351359949497844902672099566352208052986138463779082068843262857991196724896587123666051734223757327202679318494629807664186675932749038662985225653839715854810768381879201764482938473437117868742853678120627126090291944726392433867411861858146469928610909676306926668131354905751937151049490272014123549155719946864778430829776859386138083449098393352662227051790352790965452006641415789040408833917216297523336821938148158124798276360974035664084412525155469914322471636271208125843961705960161074788714303711231291944076832503639889213185142947368268534680886671110079392827485112986014661945488349324665806878833004993305297696982700800962994362488321966013552200352670239457645630690412909750447350432317548296598096222672984227194207241479333013526739080965258505022552458241125396445308637006816306581018785674366241762882736896756267957455551335675310920869130517603802154057003363606232682313910083627840441217241811900886267196201131407511416269494277859250870931790558465734378210744687196262798808416721619284838688407741752996038321684090533184783855731339924882879119471556458827313569965105484580018913101259098985834391450901236260260513701868261239288293864161198122269587038202498725305503499769914142367863024946134416187826459212923795936847377514352227308595203976126722054561467770446564573533026314113993209758274051577890823463888527718542070903728996330070295253880753813426674275224317030740688566428932211755071604620226829955760588794022017786677592842901508840145405669468202957737968251146223870955400092592674414167566987407375698280842877449505606370989456574666580546679603374848135782921677048376989788193342069579049562071804389823451688173817045504945370452530884448308862939659008896054686880400002355023196169398747885401063779192856091223848021996043150620630757816208125643072135462294127446141195204692740655960314079066556668719152494763018709270223084171005409016121519460221364332096801032313252133448753939030326795880852079357800798892537680772920469062390432231168059351227893819334078733467855684554042702604111249159017150901264160645988694782832086176793358914045170602006106912614393152904032328244110342494897483375518863204619214398681519806231424023224813575368772349536773011749231714780351834107840650194416217927661061997894106907691606267957781696782916329921764292777154299938166262301538433263223050452691359945027062782699303058003687099427107946465482272736639451612231392731185473808175710231122150419000486260459168161576083830168532578585172732835708842273749973106577957995868221068407610640199007766286159868420747727471253084058451068522167677881151447917650676306673530560123432621413848751382346719037205960005846368340412995547766735208018908215310768928063353039095184470873608401838173114889146335515147805643629596472548318776909917867153228311733715716427466425268263214478324683154958512047234227401718563499420529190407871855537968225755768214036130479660297341107091940329767800123051810817721641384970515298596049544324955765215041305436031252707531101853942331803161702931786889206387250953433948027051349278477959296397745587020297120184132160865512526352136899592523113085159682510554113837273811441890403954778922678318211169119977779015094892100136912865939145807143137627778845792910204299399700412466751218487711051711851585705008027689493432036126255347704306572713378474726850000487706080925595501816814474180443691935215974931099049032294055805822468285415897150260829953649989831434570718484029019273837149183423935818418261596008033224941377924474364360560554172647728441423312844978331103973182883503696041632370692500965334563791643977600576719289474099019827731473612600743139165715691117902463393854812074030540515422978333568028806436572825651912255986520115391657901286671493319517610146323915210030062781192971855948050875875202154040492463302979916423359310895532480630302866193618460457757312463239724544760093518616968415480554715859658062557510165488680873394057557398323524738683330707544806851810897795599239691473875824658236191998628553817413894082686346741612893428084884929362003523986008358972063945957895940187349021700064786467763883574416501714253267241048127547651766464031550685890904896561428328886857856931806474268342557373535308476729138910750353938466730645854653748301415366189717223208534165279399516630827582704558246104241407188997877646820038221006066450580798470440001676160177779954755646447180854385477725692704869645274826182898555074914416242623666883703113144579661899002473237132830364020497915221013139433605291965449059235323581736083537505138093508376788919375292815089763044141219368297852707058161887365503404956258853046014879995876347795781499236403528403446108640679931415299758500509593779307617779583912082741903848270879099865743301097098800852352544604968153121817081899717655454071022327326069134721240090174977142351925610904460757221519465972139635031743909745726174816698751190001271078460268096724667940362906158117735084743220957156565235464547149581113637833026340702747414145876319507640602727501524427154656299985118728268161405304459442177957669642800018068987334168141510065830359086124357452756054425900020744177563922373863947386793575393437595757803486815958287060924845296266832114742761236312934753911570374143224488323584853326729461662712357692668189416340506112827372749360679612188159920091913050063792068602085867823894527910347790996738679445295075553992275199811394554599857629361668999232739028508590898399569680878492952400719566968127602098692157637842538851170084724765688505013138782251295422483483557215710359627441641088767208923156690058960627161429806237395936738364831509756141423741973946806396646436978302263773298522261491524329116956741669545866187831734868295643097958641303883792127070833989277511126479366860791399262170669484332877504181039194906579019827875574444279604629480078386055886101249758658650923247061863064643020587841362364418711447016773022789616950376068601985346353612197331667326817143457596105388904528331448834303252483747188912563793135464897957186235790548758155667032227660649685084856912495149282786693784228118525809905469688852244567615100209915257751316969778088121598656148440673512596813745304989358592020111626886228378568521222415783380619654836290173785038973345903046865414729294269395867415631769146355580035412775176514195936402861291841942430218708614868600250774576976557978406121736289815557439447663591154913602490148531260580202396882340340465564908013740707636830136902306884037621868947868762453764111270845245398690127640348042476332761068515135945892137990351286658901019506860000035014775531474791015823785080107064637608009386826633467849617962981710888764304729933468402793940507443489542044143061993656866819341885066220145242471441143140901136664876352596420342687499473669158048699901671668820764437693489497595176267023127669107957617320354161639232701954385929914238102513670200526126416387285090267762262398244178216976752878265561069931503260211861240093801701394698234075002565900431827210857403920394145300254531918577250865677072255841170110024596650611276414334401867175331287479361561379793626624033859596620161768792068450083375786533214348770229223830151819674754387822156036816955859077182441608949041306492938707447671561714501215416895106835141894724303345534599883232107066608813346699728452438220920274281978822348807796522150860413919719695022956191729002782907566154297566019629524200440354519478247450698104327426860882807102276153667894158211853597832865984159419457817121149559627122386792292659268196213550383407411051304669852304325025673515872785675698975525692366101780491964598219343104586203377878555551963771813810782313776906106549139325898590213513227320127275995671385508912347608201132886335139989379398513173600811316165388332860499205326318977294224235674141488101534677152568368475498414226258379030262541874016629108246583495115873409305736920015601764697378482708618756995554094378632152282487899340487010398620031567373218974483856724277311660509225990440213076988781973812026422220859075529412411671212712785300909157244224397158369901596798171158472856563250672798871309476494913724102453295603340277880987244584698284315423705601097365395383473073959445836695060665096854600714371012179951748848166125084781495578032561058093799830693952303057354340599242335885176602751901913523673776070044506740117442080014367635361303305703593485314650568760343842967835459859921647986652799212449519644268364034259925816873494446345579527979378633986461292785870238758298730075052217540964371223420217747312686528146578321064160106745812348736063996972881924026340428019091711941133590200731183336532928076120448579257072225214647732115918282811785958688409627377329076954698232909599005966947238577123914252156699634512417859004162747746471999415622835308689591733886428290159960265948096785610050617770279339533784837174127999523445792604323036017277247039079485107828933893330488799136100689043068857131981615157206010022439703652636044307431128781567489536979712530480833955681228117455829301817045258011867614464123219248983240553249728742349051981118320492786369806338861095567587171270179539796700688772485851601303096155774490062483109036327693261959680921430419745193887356573799912972154385525287780664421079527284927684702834013606630691707849425045573049104282470800312261516718358774751838522824966017829620480221868064732927465520516799233001433932516812057076305673734379099810122257212860967849221082376124973910231904855269646512291000524979042598559995002711127302813374340613397759195019838291895846128689949283869687982043620935674827616161773970835802827752998893608854307457180642703764343136985330060875799950895905392007633811438504469997909050153651912166460256960563642004411563144427360121432834337942692160029661949118682359923033632795566721884833173699975231401823758628868541176619525798020493529257993014893065651804882545867891657544008603393832581497240374006715207315009060063855114511920796361766795007933460413098263465777618097948324942678949935936006419006567361329199166999139580007640642992185471877286669543820561330423978208262248670881183649498073362649260412686577406933157300993332355560873976200287560568391412418319383098949730930367058228479925582145945034643549919383895618227478237157566563736129646609457960698043127898816000643842860392649042848062538694886809954601225005027981789479418914374205285771927481334811329326877886492294586635467777947254202794610554961247995962109476671878563795671969365329033270699348473973158202193369555051065219616815921963381060340820040138368147236081191397297610922313724075301225168451871059618723859375332318040935808327413233708375996558072451913000391712274713271544977845733487177284705229548765651337390500441230237036218654789457383089407618126187669575269942477370633313005353583170403654680003870798404961456368651414308161472818961552262699377221003393643754299036687096275292376719333386401830977612567091795188178002646332848320944184581424547926026809302479114110907073518384882065004153423984518105932570888169954404060956985022797766600465741440300819593301986815411618361966767914086143571526652744863632709124644795304303712710980496498142975885229160137052995108311661766358956167780808215285728594419327522286776267434243934806073473960411944513425604901203167677198359516627390732243463169813634791416123442018213717404218079250386586706704383679256182617679059507155540285321746870775983170285167752484043093832381581595128484460551876807865377640127563685080789935347270898752385525818080044305360485696064713730561402962835674958922977888067883668768340374238250033265895101590933823412669921718654516878114521170620179699786178899469909189692626522515916964603974630171013681741011232341741999840420116361157487196688161618621863357842712262433635422238335294251291600353369593579235372354565189488806990556356164333577769120416110206869891166437255227485598668442682540380084842302562855940006829448651046192492094920094347283276531080708192860285721000257631383302316328475701543791569370243315555453763013640156405119763547437438543349992680054312541504831855086893238643999056302108569043220061429226886494830550921369658241732550598851543125123585171504136141617236239473088334649973956733173768068982668060976437493131718338263235539888086435001778305267433105119988185662447716272251260499066732699210240289941203823683889212585488631303326277554445108401224413976672932580960160324026858106754166792521127326019313186247011537062229837702144117797680362460582331746910535799221039867614550248520940446291071715680794482118555656030379566753498538806946579733963772153789377291263378157065753203648822393531856189437672647147740121354918038729072495848032995870880454869623393304950752628585693453244436421550050708878552945827711528816697925592421014099256731910022663972261039590511876415530885326644237685009090806922046856518863907523064072830108856002816364331327837410357757136093756599353182881166990533682292165698271883054477040761964862689451130581356690812413261204073536543727962069417208607000221000185390673098270684068757624095708495607939847167130331068732594005139982152960763982134463816800374413778648228418362069509614372086180219477115797452884562192421659495493388897928927434775887572346293713335658085124337020631860231724306595261423836600404135199707949335290263571082082872164571272853675635876523181947391645635886617474505103493021428150447153432272926474628981557890313789067715638366526431281347663382144637115725618676965446318469243743931948030971379988073265651404724529844670990988561607696245144878021942303060864806754315814876462786040727190243795099629355197331804688242494499415513231208545828836325568164275976079259042369393562805329579959740923610651212146718627046413495307915736454361639997315986883972120325824002144575326863499970443312748918802260170773804993778053969971461841551803970535194274315842991387399145081613497456408950986132467737513082975035690421733646393076356869024591699635740432267525750904938456902941553672269876922466160882937232985952616718964470078448091956836080545324075624381634353893630716206520722453546495930924600987474046451144088711437665969177525353551108663666143054390202028856242399873828501266141041747976571774936356523671994449372697349693356209076070381970939390091671916688693168834485603672615583447211179613025348081017249543421562783643557237300511290595650191349778077851901805077219939147633844664867800414477420986833742326839997434324997045197836348579879032784605426241084091927997947181737491650606203543396653492796817807755146900423758957445162294603775352585771056614441993910607590227680251805923535050460100777353281611463024753539334563434319734957055321176041792105238311190997623994801469021565706042998458303085283263559419855859732257915540863085562593650036479561042070500987455692392626547012602030713952835515890065938143135249407837923373747593309285055814860221601761332568150922541809542766913081023989154925022236174891353420821864395560326789627004283495165141332397641448788430988177145301378618774461496799971593584241922195497973629687658455936049489161541118695579520531474315388363011097355670820468812326089525659386822811581261021319128560020728412157283448869061933917424995456941899460292044761460364381138601658623526497678230653925264895157484586567334008450781303185772856089430223716869071166461170150653487064664997927280490907804803076720196227273779617381734703753147643279121501199994806143245271918987604691220567552290454893233921039001816072211206865226171004275479859244207940353319399644314074376978731623498579647542232015179580328152155294141936520592053293192821524717329699005504389984644911683001844604174448032751876554373823252397865111923625895425149195761641796366862946837704905913660077454664890753500411147845217671014371018863392519770972196867351625373908928975076823277246205103408749209327488493449770189069814696456757373900766149122328819112197138344209250492308299292816810592434322921103511690429648703644538683806329886276118364264843216604624173670067432623527382671999557625186359235735927127424623535320940810500949253496157117753559118257752517163957946711824657490078512471815325841790265923599873541103653934287820278251864336831966045366107896804306164596829031743429497613279843668274247269778149942090101062172435972420050905112412983080242106490773991608479155733992417434378989704620895444594574123318529296779977533452373960089836325293902168959991660394109771049525316351308114934449501443191283683445116776835222617289651063167771537942402408026311302974096368963903927266163278971748399808840077504840518735674630138817651118124770327689537917881762631518389288144430606704197422415066913986640420975109444482253715097796951805363981769675503965289516611782005234336849244060853314889135153840435065189205053532257095193630752151042001622850927709602788067351701402731373705116144069645136770832642070959885344770734104049251890521248320055518931558244697028876165751879023256385042675864360471216868565187765669199610303917491396323254033892410381454824711150869840114028175693324926635104896988234316111905793252118179126590328630507255637773235836166214518451170001289117795442110031805738090451593586607111413407990141062204511545204175686612527614555298038037355117322146802471481941800959150881909815326904721328463322124416609460651336577465265592646180395175646403233301656766484219588267408456554309500871440155080884230263746990464674571220747358773340822619402469617609142570159055282763810754235001687324944396831666025881272869210383578291090528908698034339083414940913073453321071379237117323897316507943807737841898119199875770897903640106141095056453243837058330039761675067557507867018147043499513682634278751334615038487430107020760578824733713689983464269649805744453580367953868626848865620132598193569936381064911320605618303138200375210971510532923335568211282593236886463758205565464736568505882008083282429794213166013554245108441572260440649007490193226664419307564083627522934187221173248319345015036584739731753725094907765357018579961906560329871465842324507498187711905554927348426897104885867021782715991689410928165372205229450637553748378761673140800611751387008918501609611125251829888449000583988162871673426458476738318221884217934287305621669295050793529854700030726945730062804256393956395836486194811626036832622392201912050627613750380110537892626423740243128177884044848542095928181218809473946268291605910512308743981840981878811623461837415712896917373301117543901071334175273619313304351950801450998984174401154486395269391725022267845212584911815838609023976829433584497740669094872560109300871354434192969788463891504431179626288566440752205972663701601172715568787853130555636697738461662464525255640112465332502373617927941257922700422480231813259972544427025923367045503084986345185939480254047759415359646114795626179834765200740507069054759421859907458391918979235244007220592979367370330326155181460545762887139063270663035699612122186703816783379463865332390629795513618924182272413976150749915174259846838241140572877176294813420027783711481649208513443883632265958913780558642239694698410199292421082746954029254263732265671020415194133401752933195693733186643567172071263762472022093544677719227844892176113982342935202354919169725955624001903752169216602097871393262453780197882563502743365260111895306058920930175021873186412564719699334308980232512097353314194847882281140804914733798397765954629951966342454684388820535440273438563727267641866187346038123634143407083526846320721885183240497517545261967543319251282668969228529344691210201081884033975758001907847498756940932158468816913908145024544002918337650980272587847437779908547283811340128787512271570398299872969789222675801368361739789785253843355009347397493916267854567064376719972405138684204783315901814390889247035307315230394383855182070877454534624718045691197220626691670616489621707046813494154590332021661125458607821290986288262613754609948191306868314652045214925285280330542239927176681293607754522799761645876512672687215160210079522614025132207487743208247088901819493840436360234982704495081320193699170547854439969503447381594601021117686998946303427889042226555781412425943466696535660071131910210370795032522645801660503977161446209285251066586560951775016354460972765369882609816367983333199557703941904325782638316865821126312912888518942921751817794852522174903148625775600555730331573193460056231580894961502095264849904955729295889731747426063889337893469544731321058094874298129648160063961006455352700180878324384014193627623982965479454094189340140868614941546394260971845947271275343249094182855131068321963629054329222908227255548662303836602803375552791484679353623725990857105387109443914378368756425757070425130520339569278255520282092506193341098284162925727370020543632448425562381986716202007353271314415224539935618221978895801981661458565334190119178307786696833221603429406602180704569306435662825343812264647439014374136173377470170471269307332074959098298261536239499337899839173258382167544051605992777898354778201790522962847938970554405224729040617819943520619519501120773854841716321418379233001772447276587569383249915527369088543047071770725188134862226659607876534983726214859268482939605408537839369468961378283925296994008617922518453515917268457683099851298306031513303087971603312154027379851062086806226639301856152195894530213186415407354764922748059816955156554500963589709416123198775303267370724086951198739556274899429580259900982019912288208514270133977706263952478898125504737999851813252752317307282791239596850597119988969266159379958002096750945180655846140242372862323683483000512753548492158811565582686652385984607103355246855826914485577417334612371543555208371132482828355130290591530964639894614283349745009583487633422922570204145957883754861550527158633411195179365645746099641510478988471493691664534793787435774431907649709098054845011396238507892493530877883780618825822894535778381586919801596671739174737503925195106869305741265436807987034824500739219933059352378831693989176447579577981860806423670702259497557192329017541520217126358561304755080686775006106952507799683765705676375177283479668612952323322296346959708344481288337084360118392483641315500957041402337260640231846300818276630170291849209453529398338580532380898563031094425664370078189126879234068413819752541228706614674097529493192043103370218903808434956056844504274513377088934244068186204383769122211738648427253973047445330722769625002437205823198443192990880877569238935423121929093392535331527855314985578712532600529489564610061854618763974705986259601671647779261764704363639112728764685907945872483991708432815962893851270258424163799058557085641619618384423364661651203799572759992108947795641324215535917785271516070246094730201314696880410129833886339501102830905343418574621436785242058992695831329409217340801450201398654662633918743852318516074523508372850045640119176351126711508133572187967521283372246560205719452464292977261322185327602211995705076224965878175753115499397643442595805372999751732000514613835612136016970464114882643749273752347592930742659247444624592777739755950116500764568115496339748912448434838115187017474723053235464741719669608157327988819947174392020504380184288697093770646010867430861697399148742591324722796964557725289731543547801507054796289079951727014129611549495538988025764068406811023306158322910191054345858663539937948687800290805968774137840846872828750857003498362618894871555841731105070595311934944257449767946052207316001939905778667616874678818624849675450194027573520798955312497701780033102581053014462624750215848062443389403784408425164444030941907158068551490481617614947227900763221370308712107246924559661044050253000219116686856834537542575083913258802023243015695905487683189863356063730170236688060830021025757403977703530034988652423788091151139586868184397999991869435252694247927529356456870647599123058252915477324639613180587292757206583279650369089922876981334528660519910093939666699679234350596970846437575986518364657086987544173149352109319213072950093731175462116161250714085050429405221038150999971006848563248784136011143052672601199592291920985305532970130658019728296965220934606359822889511707633800335312855237069336150350317421981136564757652608794284522995370025869545314452479566573183772380031389981079894630235675602949368954408876878378058606332670069752157030620098990559152213108788660515366684718044762290886613131694441818328341351944447826412422282531697226654767095577907431163129058395064474333744051970384815084646192686780841318948453870016820929528746094156006845137636648514610763857995595551130045303396302992706946354301820620436122458827273141278602816200858680101263963826869583504804657590755490455267876666835068626992413072595950248408176059831230396135083808412111801464934853218876265836013578720699650582413715213502036909740938316669900611441455933995244922125693693128258953675895048977132748296106984633209651460304401825716959397953899148058084261654039802795430748007846741933826836258668464184676421477506667029926624577162105293045889106078051489960915159634599571871925232290815073028353997218315224718356162389185041600008815431180789724834001300788369464502941236209392837336704022591106766731011288096243911110611377584000401119034374157991806943690993282565685135653003188397218812606278974831817642280270339029564724099198860335704388934770028317145670995986928786606453023689826052666000302301740567584504321309362437834725712379815425273496525884377183598539798709226409547622495273457951147008216932062037966225832686825085793636080871708596788935105064710039959317500661939872216561145530225839351398183633268266003362927797490299383122234159638457985182116045610940507931161020148647132751902380073394542998394174438645622424997479792507308082088225771928275254917110301441666904232920318269732435277404286214929018240017387030602313227156158068816242568128771449247094790702342603603300825441556253419706735314260104274732066537803891420613266683269639374886842733872702223056837403932586727606653235657804744462042997615104873684066001808664373463490059013368291228178154101377221323516258508010303736647864218645929392634065842866963980655232105833635247893615513396143955363829359628918145872414080552754028037015081422858567003754993608985515261548621080602704755892403670259270715084525414749349010767193161121616476882621231936097192836393360758128714945325288865973823169955598641989779091747128635301959085974743823532014221717350325051246009660526671841172412896042435450648382298180626085886209217740577815708491382656220918179408371302401429803166591593024721804853389391349850842838639502056188561036632384360892098953599393887442457835055432459083789903801852428312989737244336611329488383531112688413536024417798903280969751964498474895902018583384828956898503185668822302977521993904746276343288099850336935543632010308070743678060746112472581109667694233279628106218121491468974090933762231213757553475952947060000423517450347652311312088580009980816080825211484255460217753299716606875441180871596005931160848133896287133800675478415377919320626754851028215388239956849672377453585312823841729619600409796795202730289411407790340781489848730338675277797680147960675362753940995081946202962941558890310353459701994880467420378678130456433869501974974005932931072767652415675264212742123821600008092674565338537719718564984345884023954195722779207985051912080908793944529631940597309890630368458766035753989646580537609752236605021615313345108913375944806509999653960658399154466097936626030104975258424464903011311275117427201529923892101667552373324049560427870126388667544614752182371492571517878941963272938536799796137495550096404976875540722416200337591226127553666140843322671802580330559949513505170732652081049725965306492355614963105119110333176615959449620488617360743222211005071839800343483790687110981582189342635098835607868210194508682602493287925233082790121405063851134178809609584271732251488609832011418304314693619972321357870544112248996072540664653037751785693874656415505113632858517835215788547697697122952879557137151862788535722401017626558977979838649728475630617494168790802738466293340041010974179476049121028482874509417900332253427573365775212729847132943582253233371529598113204829132130430595190797023832283041085989237919267134483332874165971462200832093741360493649485363525848263173500629958761714928210639107397992418024405893096327403845651253656080468922866159536240634731669894951493181181692537497128027240288709997448574863066909066283497071227071408384844684268500960358339998821043927768192004320143619752021636335714687230026491772709373698995315425141688132052380339473789537403487360215533321635690131235659824777795018708752878270319562747989672274085211990747174561564065613845263657567523885478057721141211234162151498188966303850739681049590159529200229627262674694462560102207453165844857004806458219432975483292520612273600532106299002581541807471374809404109374855993166318407009051947403450178043112227407488086785597973947729550433501755257474543072234115751520538467039546391357346075549515009636627277444320744907412705053503874235824877251078790013895296391877296648676567910075996359042442101893986321240759701389818048166406838369075329473873427826051605347408528876568626554284463865180726072459085302286748825415314832763112659988928736061522368406192271191620580270948841239955898702479138967320445435708922268314736449453759158341951987416597107925922328113721842868342489454555304706831710288091393486915209268512540997524977994818391802810733907186997105173807068602692814601909221545381812491295776020833565467864075276111370379794101458029471975251064874795543786110056677476025161139180846774088499927722364392756295428809720865501004047581268133601679672992502503940106615100756398328525765563231051254384877123589191519976634938318638200003431309614964286898335820083339139205487320775689798331090327403666179334077385538078207268378994249153988984572618355989754089428210857879608717343772239723824133649938698727037585564313289742281265419759342453308906402317873504446187394250136934929493874714775752133709461372096136895621177682253281961314005416275131010744000162801833121966618809529855857996040849397544788479867985177230416472843899936537854817887127946348103160761397810519658376332386794955072328677325341617835177691940316097240925958272148376395985115659009512522596519346625064832488583057833787980388496089090025607511815238056005108843797927689055455995229149734506862841897630648830510796321165834307837268475310114762002886525764530137008538335498978115970599998650481990018702982098934836701128993366054735674480885787981024304867249995400068231503064041953764853366554003745711258596341311018504051359955128879650811978361240568303343434203810608376858893577618954529745194052437171409025742999459041314487531106960414695851394743778598907983484139917298201511031125098433211415378336419689415031303727434867598955992864794313853738460408853647473822594358026507768299288235941142852153137764453328938448212939501272000538407713365241030290886749408780587274651546067614160718068505241267059392824789004570353367561417834496674425241058467663574137520281981998615945748827247187668003901127104206627372260973098421777858812261681930336528621383762616058212042567635975318875262362478098862513976821678216026360948289544993923789826232689728792732437718687357158628277546171368656165877818746305644220282427165929239730636246387788169417897482636458266168687334597840413791348344176148610903577349071236040888740703723083924428426260512477092020270185432631408624693435351271641731039830087817885606186471619559268915116990706996931371735340712544265610636574159083798236701572746981709759243861881143794283454044838298758307088734600506649348974774245442919708385695144805874680234096928967099995367441746403127310625598473531738517193719867657812597026084938966181232014934745297061599187077958957857023468737264857908663718343110381991661744461208491253014456910105212185454314358939088618212556583294429953646918228799058186976631744310205419660648684551211774965818785060110513673293534640837310716000242996855244384408907628322016024186359240919188201360396610771289072090377877633517235592217482227976106623689943298717607753728599745398955026340421206922493480113551988478579811228276206721246678557397666235383879980039557772889943439959321382875601608023655699921415972902625358581348090590095206814766339997316991502142875466346865909876777829746537992722518877012001866334902313547131076094585724606676024282455368045461257120696190177843229006960894215979352007479346824965753804443139828459744704721227894380894081763746581063443049408808305078000398972532313265583551390424990833488662703678081792070706405844278954944681205116604914367233077657044437217061980242354338225943052304725876529683591392267200103756245149338688028653986040254424354578052184383671946747895928357280341320302864326428449367464010500626782531693835568027351394760294835771558207500296679416807141072508667674967777477811370720419742621231982350929075189970076055408260539658875982739948079646929360119302552336938605136246480286598758243832123617854916162682631086042065988510277438350777291285490675159931818883867280640610343910885841541021345519060711386752827204177832273722031422183535912008720017320274573805660274224760585372964163192081430704568616369965645794105543759286091564777414195038223229755117201276355061343139827596726776633258870008536603161882055394335612684564514054297032610136239517835390837440735797372333455524160746176900356575718612676451692194574139742662675429645811183275776610899540404684377609531407321879857924054240550979122658720320923018731686327899846854055041304522373223302009526274897987081077793248330247990674240019071486922686715134820066183750124230492351206846989858458855528981571392065050052609520279120418262457832465060177893842411330838037824356915213458384216808143382941241808003025274252532800213435764712350358150566413465897491970471904465362819852240391197675410401838646883424854307147547546133368072437161447258547682056172607672027654031824035127560562533925316707088903922194202512918280084653090584592094097580838290061529502249758302114846661717796652376091792025082694619220721075717900587516773005909599459503522929270606641941662240228191940081634208557673304630113291762804061447796356887776088380412108477115961552617150862097918313596443039630320987297475306720889250650260783354169080122124771348038538543210044350247175388011240855330700004157940253911335869152681296081469757137600521774268553706999486669063420022731537630764433810615249794747264207523743755923432320054987402516281992421125037652944023320754461213935336545497998980845119127265793666626231705433549055345278828515145412955016473540461325730464534266193809420510526137641237922102269230694001321924282456721577238945485467976183213158915440486539091463704203291280772858321610553767933831756537780010613867105844843856976634707783360226130759788446046233628655615980232447483098101744154398405891547787566738863108032972034773133562958097484595999756090556086395336304726125647220571940518344702462847470256849324277518975363497905696495328057598903920809105075306079348286305860613567163957857257182418370659475947062585134595632440953787262188455248634591398167927305323519162015311300712726627102019807011047458131185407196889301671095331403201048330521723344416120799628078141167510403285494366309239294257519024081609389432735931158772974876311925100679468146160118637278823401451689121463381913269498366983229862664811246970135124831801654572827302653088815014395401563140052885772712165096534373817074200194127521792450807504686817745260854416401231225671681249585669834331558556180779724223588600014523307756652164571399412939025507652098859443132691806012949994908343662824435076026378011868941791192688140698004338186247177324192298202441554525604984677561671460775240967553005289232086911868680577660773339139813685928160286291802728339908844667375838159945143406593358194368939618614786911009825057221788126065493902506672634169775745875274050370224892823768795610698386929840923035981306371642673090194526565203081023597175623592242779712187729168085484401530622493196832281254509479499399260528972210108104132872119402040266655898966971305035226684387369115906277820747171425046180993837709157214776491764882473799549546645682779036896000793886401476882845957231474497260848827512348240262976543683053108775542655572133428702268054044700451152354751385507351264642880158500955203217870434536300725060257559221548385522968279448529344062964328583517639836411062202864466899894629057797688110845278554756646330198345689135233040370965228869775543551778778678651620505120598732058545206581348671032940250094369534094475609309561615126154202512301092914743203114403573672199314224489991255166443491739644779873499629193135011797877388438555596767324486048318134963476831235445141879888753987194927938443171360674533467341457901781989745431054722280406495433290673560844593681380876795648896235566292318119795145046762617006515122909775069738839444774625217282853373387148804984136073539144632724489225682413590997759017828268660368268431135079676457852730751457511300735983104014282526341316069357678801421391579479354520988443484652384707640557601350545025264747934802660309958472887328995222232689464478892364998481499582563819864252862837688139670892615820571111297067989762507689276546137292614449139394893221623332062758714308061729343847951830407938081593507590686350146509843583001499629566360816986774694331939053514554465295533884954793353800810744741579328345373741798097178761689060809789900195637067037596136553730884271264483129826731174927063454069235146333937588867612857435185694062465454858593632021943582134256750590880123928107678381817577954345674015364135189391431857653561781107667826180355286618071498912372909315028453389152762944659415265404339736355845063152362659586775852172390000223574625202441554404040416217967646252478791716547933388597727202960065113967432772273538650126965441946394834387681538733771321966140168197451275330020473592942609109546348755830523663621022049605787274845164079053122526459219780287722146674336854964637358942504592296127096144845762820142093638669313893468564139411280803703385533258442693502769409768915265890518799466464103250044335636058320814628076769893232394777678935851817687634298651408476837084513529836735654247539535767218985116025394019055445534871257254117947003319110301437571441355158513759635681652456410864998762013017067461672383879790693519642770611213793096314362039583151438391745265634550414430279565119826937526667151243876338971889302010803791073760699522182595628765260778202715642747488509732546074828405901859382030148473855870316092322970019718435150809897659342742606847892404642436084006361667009513606119826444505140088551775961346122240764420835505186421983880328669973369395996834999353020302551599613210149328230362262717930589010389862881553551618526291386809058055037366425514659666218567278138321505533833220691487751133965838980346528028847524611685500402295717318307225024073953586979809768308806708970443838736003483663431730776324069986772031876290329828856257568374611264269227995679051711136832167643058000687956987125558460731495852767104883206771897541207126099407255770263024470819942701022511596341204784477501765837932689735831830953261487299124984803464402740131196026285372155387368905370791283473744239165859663882409574096962569269692911539287764417494166729459010939843636927948871907377755417615013529463865145739993892687958830467743981897288280311859412158724962536599409074135238362483197068700687916776821553299571761363344384396336136052642356026527004792677506610552198428829877574097122160507582788440127527347082049854037905299085895745617749814444544676729979635135936197003770639373737618132551724442655581506501452605691744266950212711301321335604343726063687701988116110228295214481722911044184901083545103485455193123226507579858371228401234169685329283358707782414948624671752315176866632607158961423988669604897870045122082048312183445553111538265662522253714234712694232274577041766675781562708405600146451918795198980121353399516358683932764184864987972325196664125943158349450550579860083037398757437187801396232290009775767647418962410404688825478263804480779173774845978900808606855842382361750038202436595465182609390024581113132634284333153342982236874468525412947723646462187993075137388359457687775380971370523221848869935387571762327213198442260011777185379647642872874395506221160768548878790986934168629884311162991365991885062746710486295351261640632718994572806838831475081031118708227994630052405006265658708191782272072198244975375624687562394634286172787772870634041706319112374367361489994564417559380706148400970045363523523583454564380666366473884454599597758198972939680395541275774113139682399060740597794730769086580642282076002324513658878662528583470536990513938921507749708964192488155755427743205342767942067045578121906227028436000123743028384377919407721508748396914943935301435173895388088797611913883418996705451811274092809929620590120452479718028874803619684490695109036973241231918879690264359894826730999941856772317915584307282633744529409737830816884256190643213993586102767157293935735511018505432087928106481197481929884713800137885604564922817140815655110666713638429602674617441558500839980865428259120356272674259691905055372907291457246933496406373591056643116991253947171912626040745056717540405421028710385401522096625205444262726847103789668443410837593097021301301695333735743744365084610441343361813248069481537118282152532843527425432401044835814299646944424823251944311964804331126834925875391844835508771394414183517372559811169375020262728821993340890859477397908471643240305347294236320731842033428867027301713087260876910912061340776848239421130907811419082002769979857073625338733054183865067304430892288321600382496847827990638671343761686588490544238269622014354025342344792168377157740595790816996268664406732084103229288037100242862564240170628854846437492027208204848500179479405393538870742736951686222979676194340534190394400771955064944250366454128013267237583482713380939781069666847692529206322348061401935828224290007872943220510056413139401353184475887691950754816995774303600234121767319673883772095379331728942989991319603658090582831917819373639405786514981920978891163152073271283010463941370998194220426090194321261217350994428764515474804964441115625791947346061699202981319402333000798080260446456013545884527353687609968848561506311705664763498043285228058515184039200720417546933019899638974377842818801158927012805146364603433933366017383538546613425068408551034416760801782382200956246152500274107302368520601729632976203935272083153814691200500839339828452067605284026631094979203961980072580965591701461447135820351580149506002119212828864846144392126569950011080607480255147602562467352676637743334229099490033906375636522366390969789971487578777001406705487695784582624685912952440027117839774010728852769890088969058041058385061411936466280571483142749660607331029953283308712854363255497471448648571835446700431687364359795313512354622681058637435419673768069036214600086626481702167214139042029399430938733500783801001029930934081844816691028842632755920881107253486216834330643815675947268082632713110793576159093955679208885802025903792199306472551687904385468709448417462081398845435757084087244108719322515376835258944766433104534952499988631918141413882176724053198926927387566496580920210444024648178061355038728994610282556435677427921785001475604497475716966341391375859930262703496072260008124438376309058622655472000522502500639703722277457499293140896056527882622519564291659035751466644062005823400876018521724064131822274379130280805686959874726329885291839653307176774729654517676417311184173741195862824460862920130575634200570437829482027015081617220997028794591253692052652097319004680344883566332461754023861868310639516696764439773299252355749769574744967155596635639933460559847065592745994176226355587344475517162859520796232041951832054925664256176238356186913361882989404803502015046716158742779855990265778673566362614398334980216583874410044596436695379937550589437824164728057043642487907044146241365362862858076535710486248336053735902109442672413481582327127769813118442397148573554867148779428467126194009504073259157610996079398412953717213364581354591515842733118805682963618719414747733648665601863139852907531731822479791159940638065154831209929139947495707706083773544088393718138703968819813235689480973020637285874811175255624924132035938331282991368621459653837088644247627889264863060961253781590651587039884093120223877304745409103936815443594961381057589920890620282930746413200443140245535967090547826570935478816359343420917670048013339018578462344052337799537520582645441404954277962951139537916342222126217754554396994908309003104981737769384097803472546700194834866338524710286433955554426290801745467162165766234404304148303893321628966969484157326889553117609724366248548992672318821348610633121332221707397024611985360841625233511632140508822049622690876411358702987130717926090140753899995821067626252300567619009486175637645478668877277994026672028828434545560509995875408549027943403700838742240328887192193064711669643076672788244181216628659623774503324765875764927332091440303961269127147539366041660012853884998843053278993713801776565072238043514794999445359275287734212424238138874249579327773988260872895123883571635770691882298101490818325586543526556159333380889344252738043322793263489176273856533720788678779872097550684312976947110773657391546776617689479345536633870888243907460981759545599080414326194913696327010103908471870519480049592727195809612424962338126298581203211649140825419383690604594912099183154946015842082826176389278175251568159739892706522549194323989045477181331433172235050376204233491537482297033961649060948862711785547106772089869542045992375042394778403739730942152113721630365668523789394443704925770927186061187615526109774205765799965909663481748384631567881131952420103258027896016859752174790811516306095168097986306637874620347162875071874744496906312427985997489327259865239417224736482389976680870999090827472148445198042381573583601818090643643689988898229902288160691839636054544163950914111156553470359512157078503601913541205495942661597518852683451959702419461678493633009039209277065256031945493817846257563731764357202650090733649732390276173816367108806375394363358493089760401835267018654259458614672906374537334979785464339523490794830686137683032961651343539079721441746375820091286982188115245684021618374685873311253093487694720410444526388830370744002945073562481616685665227893259768725795516982691781106688580944306007591916073695663217624397550067998660110064783056230963334922567688606219290685136857946373064388648808876423888941583442980420237370344039148721541225922782333451624224228721774003389553958328786949337960482396039961655638923305430836608822880698997723146818994017068487955239830825239904396868709537867083952088701855465296688327033380814736031869434789358205448499625202649501008647385937890319723647308595076677616356667634554505464158618804970479263314358487598711236967042359155406031002676156150349157159887966510224935211925152747681835905367876627195160791033886117843837964905327233524352048931188620523701995381451267559835531074090293709482018549144595079220293943165408486301108367104642731991410377115284742670690122990535539030005458921443651210737212160233279107067113711240931977842110428599738302726861845439193450670710610851761944381217690054303066826557361401108015018072759553568348504361175722215496750809164433717488653815499830685834539680025903774232707020018256212458678550166069373516609968456552173044967097712847956072894487075762375669662385333284349328948348020535079665993153005426601748264168002028869252708400555427769073799259559923121722188935709957460520864367003918062274744267673647078376110270155434320248534077483815429632599817901849461239053161160574467682309937781182783556607009843268336244068698474894321209979463779042884162664240101233866375460703293904394501440636999614761580313093535541554155345843987292587135812360874257489751448685677305974031693272124380683613175856290434509563685837261683299736230254910092096636042395127906902367018527683494132571819596839840566263389281905190296305279716782239520120259268782806250568053348820486057947273935157351685467453979582982910826913031627097184531950464912309214935338339819397074750870654782534531715991381348044794900014463285427662766269232943621433772205883742606704394521575569414475621412205610597135196374425365318289283504063111613385285265045950346850203446273904438134310725899725520136668523414155969017684109839103952134667782910905124595362458990370364579454433556220149784093951317408521339026253292687663448893650031259209865856429640971578882382020706095529889699272232565568214029387007473527670747597508183545519924642852425217603371744105313766437955489011094252646387210120641055934477188604564597177278072363340503632563142899639804822183016263820681852351769339819638057927719922621240266146754881757352494101983835995349788666191890947369730280454830357197886389871712521821539042116628850541036673842556005864397249127203886623641065396969176193257012431829895745354135137326299768294374830170785053382377919253442791507139053631098468486607809102681729129580446127198459375275563968005660843967199047154328679818577834078250393841747569839572293027487136153434872865826527099364048777549891472393851472552286668708122169056211324105519549035427988300819105705556710695483486864001385597447227632459177959751407710096890272550782058655036027852498748309443691141773686967125686201907879869202185179413442167469230104183871416033244646467432140822615051607581030115736560832362150056821786233026406872420461737688789075284044317835354865654239692554156124325648750579777878379096608334046360337722796211276243868040115426968517673698535861255964894938466041592357891866414697504255454165293464571559657790650359134126986429142264950270788019409207400278518832322383800964750084885879820476479516909262483239992685141976493610157282526565251158635827189357500238951126151790055278323601772550297052870315451270600493916356074339378840545010298676350393064328366786366733614792401841716359854330532554899794694148178871498389272608167209965995387413005446138386778764643978397474371862087397697592768323966063213927708860448991003451599706456767446481676394549424728699389751337475364886076459333784378588886437896327903545715196055755449610221717144590768424354225038840597614277978466831725974680370011799173173640412117425260516629339753542385772803678761772790501293711805774338336650250750487351377522631868208873127610621471846668835941472483950817785843529968578873964500001328419375728907056426622506404268087599219628800864527307196551110728264670198894743124298845683780921405848556579701024884485474063476155623993962933365217717260467676358368808772221833353963459503909042904564603635057571794284521256038178323371660131388293814832955890426051174594645445359306090913357050484305399353516019779271778253238874171934758505315991379717434509708118115083806168575094425594955476601999246534341416096112353843333988301116071553194776092864123600841704598297748387097347967508541196588765920718732151633240715251455347450081376422014571884521394165869540970592621067979601400567871749053840268641566799544733877379812975590055287429990650301642072034551859387171058004172216531519699423800854595437615001368037022141976211801653446743985025965398353043604159718382307443063357751478154077230521938763797342100180569743442146318662044557110934672383583177054492255843039093161760522754051582180690016321815109034045929539800932645492067943504625160674131732856716372750523308729587153895126800908471935371457659223697129452922235417676628989094204071278589616911328169621992562896251258747888489666734891314643083358814025028513524256434952695576841278728209193929697630767070772484997828586384533236787282639475248474233177097384340338497011080653004804056349212501857902569910995676299854065578400253735355686936701971696200023870530302319349579841545262450603073059024494774972226550771554085843036163397519437647552104573872474188487875116506058732885988742451182785103285687221477201792623223090370670003201434668632981300620163602185048129595127335748847387250269952310071957450880839617938911644277333662146617609929390959545735060146158485617509998544753231133809723087018998429597751991050514497812390230457321729596345614953037312222814913610277480259329895283546187335793959768874064747805215111626015403901640243642896915249476267255601132214797160000314069056416586938923032621539778896658465415756794152195931326127876576552812466498146651058838743377110627616534720005107286915850805482912833652321618703249796919671125434668546242463312178324038411332873238954305310843652530031934078410267627633771212939679449770058910207157948523934622063385663882764119425274459582478934561336723146452083259473528310200214652394211060167796654624310872695520953061509157652730571094361155701534229916722812432548324026882730952251724954666385887056124707170477553077383890098799319936519550648566455982213586613798481602759672345095622182594482999099494137233780220134861247624696787518529794962129479821518088138431373463641104373061058148337253869872446060800135969624408392653183448229650110885245850258886473832968957482604568150116080825156628552486726333541053851678222867168449492374191658507042653450408506184067506857267276941846214509240346692183893662143595558268811994204108062850503665513449689482147805125189624402861719039773081254186039572162813866105065421636102244028405078489940599247398777525164222232045462826275245353824185892078715694602228821120297017057210070620271961176336769555201968641599687407658990831969426676411319238811496387502415864263098157602441806986109621878702043222574945823569231011141078743302967082672120173356600123530864606263626067430978467042143670715029009244937089753672757447426910161134383126612674111644286970012788757597919447228186466674616621652390095306784153418681365012031875708459763010797260995561574912448388429577098818593210399361119540684643269657413093316262508384236983225827563071001433085137774508695431964233601194287048425117994363514529110691399275082172442094423421948634571893254105009816776298577013415338995963426597894528335334689188948497661890928994927618802176040756623364237119076168534634359773639993899264280905817803409501098508171195209222385400185015395016593978720922632615573870002004588823654765610348413439370464838993363029924865906202152755602875672047859526824786291167202032840689081846020504960874924844976143014524348975249334253002278631713499609959916885749620660828624102195182553841641064012911977032420718059862199380076841038347026623246494797731616180604983857337753174196050538686812051713754933161793810477826732098243946386213392785319704537209168304524860285281296489391746287600409691642300824623182625861680687719841034943505797976386473653451295774961695333605485467003631269275564339370911698377485632485317669049743559968823070742454763991696270112173161031758264426616256326615237073498084982471195374366012857285480944198840762692888567764539974729410897461114600868650480578544093367339157169525945525666435286051271608921800340111532238403381230361083871162317468218646598448769873083346237600108517725054366486180992060566074681509777089052837201513898598865106501143013645394341439238741191138244136106302022019990192430067646694308191600600356157169189371102671378816507781157118243063548701293668912748841321384887778966293133698366836231728511453638607341053145740636935275437370533500086695506122804409681521060536233284652791256776936095159950722122749390449954736928246420297916110204041013211847984528652046572577374572916075021555245965073804756618957435744480877483979759441815662924364713480973526288826582705831138730409202990365461100064747120145316599063994967583483047198257010791327390343580022455110585244235323615181877809829555910199536717019373352343968141485754881742392066138606236441559944987144840433693512865301387552428379721643060840733797838502620347816576748343352476018432498855525209790216930814600546833092323619571587890638935955912039889501306807769139795129782638139621772660022025460211470301557288843387164609491419626837467040864661236082558492244529272296641739106179802030895300184413161091117757845901026325802350491840212900365844468018653369739618811131453044982897343438951769922721382222235911310850054062362624493943197931629234853213450376825937595087002769427676464601880747367367697343768434991324375108246249848978683002984920663008302966323645286005394772848029117925804468741816745396228037885182718769339928841750984404438595805875641162128702250084109008440562235313241785471220239496150497608108077789206272726634243809679800674026181224640239996134593698159814738238587139854238228840205315880491223863741334094962141021086379467655320085003702234173482041955576078955631117926045730387816450528587102527859613996751553814725313794060038615640724068667257761770260186076879843978251001690955204692657565542849398759968110291000800906665337562142816996670452251138662115238656895008287506881306704706943301603524436556924474082783887076059495360074335006628411338658644549447704006071119319201457198883305382094423502590588177272914205187793514037072117377707215474790581313009522144121305175995100993681490928231075732460493898942818587399030846358324247219093603658952681017615698697200047698506064276402990145682614316191246892957842899336915651783626519671267622270658654082654366477078168782772644564648998229781362268817572398550488053084559885477803983306593533951451674820444498362488793947901423170750379727924655666194156399614895886683702132347781652265912695295114278550171888181296140203062364389642315053864442871173480675733223954713175033250819981651183943518448862914550974333831160276421327531255018507987356994059170686324424399773313307467907915350616615283972202158067147605295561268517348119165707380703969120073187727625147911349569577746786508124796508482677526196142985729949633503261965440205502445640644149519506514335254923994345861050597795750059506398764292871610917934439138916725123193273583423423494944760695568377558803261009767921913594009608090921155547358068956167359410946102440845729942983444870838551902703431626114123521035990124033842142402493279757459934796712593253249298372859501068030432579756426306653761638998602226625677071649879254200662974082141174840495392734958616639611663807016367316593677269702151015928962963837533105486606262108154313940147156357993317029346599521379291273969181140975739917637454507155339695490164387452242629946335798712536941476343536965547580343611372728984476977417595878994694472697041416121936936130279988907313311621029449616969786340511452915424858162282405106705429542115825098311830049391114238996329847686579717961377159380144699575879421741454228624342214806761298949595320282903346954155853253010752141116889873319439321282353456430789966554388415491358974204535171713113853575034482488926649941942097541531949623739264526763963194733163702609417565951630633865914041954989822179797140002805506971020989600911114993717118029587664688200963354536612069721001170181365336258044272605036319014434454637813518150313064761359971914848950803371922197645079293721743458513790633449927302294246352627515849220794419594270347881887365228377558507351513108291324730795592075111588268341656567298652063834821264258744240107331814632104207386316769437380123264905439037246020318136038349860835520564487223503903251007005813694670505990581369347933235465409061593059671574254736667704758956097806811985873953379441734081265090394846868919726482612731601935471059024063916319211613327493764605385491820960145686793644388643262899375539130483284516239082490639027158939845382110257919850915715036586036704511458173098821401072808348168970300140698070597189740366568264683123096545399481575213249525431091593695226277745412272866831141282063573254351589988186433757170366964621574300306450106963668427502356557145976289781965274093315269194543101143192464474177527540513908549142598205580552683102345120605072581054076649267952634007621509711796741915601589376574505302957522940677757385183133267058059200619707819120959133507911647117656580692549180605266705428279412450391552900115570699168186399229732763456162751775430541372028923107918503812656237504395674302377437189931157598139110899494263771392283326989823384565103569612466567708041115918440960088924498567153263506870373907111157051742929418762903357557952641160236693464533875114956573617889544308631981532144731447146978423719441625024376206288000702899526030075943817080533626956681919940852406781242629283588322842343146909814211938124944589078322329740002470088075932429316128748901539156759390151835515947576839380248051103010641770526841447829227183778895371501644843329599242201317732026786001489479132785687846840741050196284647289379709027587978769889308359855459149349267269699806187629657995977603258067729433879523935716417289946442556174793524601869241851023360781097434501230939649937581740359019429355127308341480122970547260032735020744312121256301448909044172573909368939904781506392671866733793924575195797251698844972750828988825441970152654143870308318667306950171485190116268893867079084635124292410505624763290674850639568470347353779695370860097686628018495226221370532536463094046302175389366699203762736642020015181359757680175891317905907650471448796068015083449551946666692458182718310042656620563756360396866695565037179310747123682813530340403992091423602090153350352956809544792674368109979259315998201569607527303230120119101581375575769520549302124305679032539067668279850053581164119592523317482933128640824890593970651793785447613934272648414609965395740248002564448224402989059478363480420239680397042961579165968399429352369754771855271852787357948953715726444240248497615173372841998792578831605763647686706524659091637381165687145231156183265868826279753344580214139743548867591682036190100385917183213920311069317966422268296562410616863391147002475342039054874598243776294316710768670390687952790588211755600509782729127661016029881832832668273260522533796663763149548993297754953111860264743261337993970754311836384676546817471142663127206661550295235988176177327562310925815532920616495709178333598164009610838176107249644698649160576045046075347577298272926281309537750072505609936484818002390015595056920520333413479868543470832645099112743304155843228781341036563290181725125908349278562223402117824762211967735819891264325103689484343169917776441761583391574168536363085740834127645865287901412593597636126527954479185550862614263447444793814022671709346382861360208594640784560858627409887774419930515004077621509517780949312243436877097533373414357467218693815374441470942452252796797221495661536725283538463904224687235674537397793533020435490127038251091650409742673100934155194047430667857580945287993196752898333117789505742779966353160448939417140843923198093474462174824103430090219353185088529832045668478065297995151120891466602441324960080162906904131398090787067977167681134070689216346457289813483859486227199116704502153512264750396573249618329187116393997913675345686403791470323456824677891344477980939550899979846220897189176921471166980437388918774080864443218279308453002296736693980059121976914390822280955792679371832090012304272749080734095092501893826735745140090048183360755763252244554110576003615046381470231513767326432513441504121046646946194753472161269544714356046284997373620577503252688206516060185527524558470731800245945358653362823189092311346029176889165794277631917272880821775046271193146844905765553725679399383762992377315773139128152960139677639425435817646978385550749745524903858542536005420095635762808756667842811261722834548606621168962695716057331000453462845628260703331227982695803135184429799054443834697408136148238425922035045345453001371090408062688275329064257951787821404194358927526473963088126984123752594754067834116052898831462018744204499635118944102352945329072355605338255291550822773901869845828841662772912146876641545645779066689953548046804445953569029179333470886541677042856942068704880294378639767068488882932750884183577859774029039092769799901552137103519351668150725967134472960449779015082927138056885744164893219930323116494276653151786847215735154944624452072478451155867266783020367690019790136240943861243546211581090283877699464976566890514427404482209970981977970664018470701932138569096715843487324816671765297191023075444836261539312429241238124030105011435909193266751170626246167696357435391184321783469271550631949651823464888169725206826958047478501412587670060215703344266983451543863730228651491681307624739294859406242951244281552686241258760403573839763431153035162315038457516058941146045594527598128636405210631574870671559205621052311780632778480176001821448539214821448279447094336563005208337638536192369755139174893069218221551886402780028723289990891957224116094904090787963249618217294049310749178316762824254215250219456698061414608565520857317347975653832806780907994163503164498226272542392856454046647208430348091156380580249567360103005459180071944487599040594086563576468213446512630612987160187462401058284777993732542390642804735056013355683267829843290487108261150819785348051447095224325341687948239895726418916235005521517424195536644909094496001933639227878319287419238688114223495235652323736412659149458122781736371505611475970243578624208906905064964181349755957930879341044663037183058146847848221599308072379950900774541612482036894699474471230074462114143062679156897092164512016279193253568905041622179575451764534074522162393549861964555604416594807732939624005709224372093967422533462261257415818714205059554961724010885628808536849578556553363186989018616140438781049515648230738004555285246216895729568373669497638473504047793987096030725117285581080356866933303404706635653982674810159411613805276193875855917804600931549235815277355063833294080979348263268503992364781266825580063755555828147692265079247463069290699165618712394801083499302422088065262000881916871150132282933877918543810899758873722331660074796651539120256098040787692516414998854786370208999765233206995124220827072387644996331033051013360610831967420442630755365663009788958482217805380352033307530802085879601831089826574580234693134640331963503192040502953555294649627358761798544629074672100312154255326385612164085570280770911484433718449911032928085730684256761666674319762039982756631149403744787660639662732084863660372192545760504201385003805473065206882684364493050399749005900281417707444169570111892312589839141054578830540495376320848257165551526764033658908992198269995845383322351955928021836261050222024941004220150796832783062561496311913424571611184989907430829382645203586956215190091836987812648682228228888809062331967680824522119809799882981769632208583178586402776576536899603696033797301014911852846058183589508817519233325850763443706530196945311818707923155318452672207666945682825130745532338307706941998045528424638124937114414940725762837103527188261625404525416435702054437113403973358559671045638299863362922924911050123485733242053582215883689386519153843722310533262573644221843442191657016162389843063081416073670720383631924431945073726231318386413131181381899026677468455215112590167980947383144374665087872757171906908055030847639257824025744256496347420537755298856103987490810333379101451745902843096388179382048553422453095733261278838266629633859335133126044467249625344976791527254585122396978916794434225330628152573511035468559855213616049891543207777108037855745420727509666777336078988260195532785974479571388492547050155323069081272238596316742864629925352975717185069346053689519196985356716607609359322993304115507323525032076366635271071739509930392906767074189103072104040548567968004934873127892782425103053949266100124649254134250868943559611520818989624718979360274003373983353599160130328224516328840417021508836178451661520928671687373301591834091237466001053643743949609695750949527039582013304177096177112463393126886553125248824592478500657761409565411605185941004848951319345358121979906315441945008465169147815131296872404687841466191424606982645147164214825667339332221192534729235610538284752068351383966207618988826587349515211169445408126321471099883151172052897942641963602488979094393069223037998520268508134454740419462347541013358494769807538867419370293188981145869570681794768998519112143745939782323958833341276320040240619786281549746125176902447464823683558736123376512284727879599607833283202828702608567657828348252406203350672445943244171681232719501111807784653344691351719112202707786326621760911272924043166847942876254886373433423961180824152794106927863647263533465958652756107876590495201861210874297307009402445352978634905798315536012952517115415125341070455955500071400038057457207916779921051576360910079534191868325256810241320583519980524533382743380771209023758945400141506196364157280415402555826301748144290281460420698849595130459830416027590590801362671685139774255915848881764542444628153155831379371826271086605246944044146553254022460132593523414474786879532964730525146248064413003097415715908126656576199893938466867668871720725116722880369985943779506200570853648169296466028949275909911840911155184517859409379946395434550535301889778756757227611636601404321242439239359332050500050604109335766291623889941210982956220548017186189209725195170890311439257197824104839084591695782104362860367196527686558742520735615076090572287415644202920243959393921436205307689046640963097719047901656421737526326713478450874583285623190289055709435007848238729087598589120446026032168099790496036731404103684649091584250449889588127283833015856167229537990311969419065647439341503824926263056810738491312850894753617852782976941991137837004668489229822223433682280380211290974377956417353637382838204209085905613452061496407430944375282395478099153049052067730180701942924135586461676007939823048671276876819290693512193484166498743506240374572883388687306266764860671664546196721220505340766804189058876247461572046321231243284658739097984183483666894574163339023542490720491627057637104330557153377590279800725231578198185087043104851852987116289782040613842602517451152190261780515358305871202560451732072166785437891727612737694145930211748195381134575365995756169019858705617680106539093491783409489025978890805262425774794741856857848720002508905558548282507658114377465153628335361470359370276414879235663047564871632163900250876727078043780901536007484388517891557916301602730698883560067294161335817096622368261437884989245891374404935719148495631964978729118592756975420605778485792713928378329098309919195241903168082025236057004843682965034195479116940785732280172597835270663539282846475615518323690581066909635814108996351601956457620504228414002999690914871911517567462169316237289706602494721416934421178726901206319306752788028016246092422201029577504445195386686516371247656604153232390724473441448933416984836519969331250577915362017753232707418157646620616050386759639212563218180884184610737423673916010361225772391396340342587532604211479558308018834353213105747695145649709160719295327996054358316066609208849691510990995853647796587865940089444964515150784287211651730104548638263551906165653403624082087017376757532928385060717576869003653021952428576375276847671134838697647175808895630051145177197370158897746208781500847046129983155340342813801478568154886825955112093997335754486561955647471534124972316652741786566597105795262895868201434165666173572455405244404088845123419830267400062238595112238282344470519833978634958633120101741992061847012392510017941477220723875573950058189886798246995689293446672110921278075162995933885732860429060856499812810801923640631782042468469857007015030678757865557421487489013250246580876306413284449764221178874735161654526037818769358098986329803576878214476834655703577673333777846573346410633392619783535029024120212862063803291584846112353363676534486179488409076388547204428558956914291681653292530156485706731879751963677928912236517511272194356830971687077351261761422671463989228888965107686856385277404320874772050329652061797078241880517930743384517961883313772496218810775215032489219559013220088622936121208809321346608008673462769331336452152163679495630496501049500702363926524530748231987803359052265840347391329905049491413772099913537515369383015885753189050880048542826965402408310568341186310505299172070257504177053437941130970551998610755925451244532715263209684536546883584935803879643614895413334564266747727985150628036735466315712088909517120156138524669941936420938107187646868522569044110707716815586721773899930841503070964161271547233009821626552135676344147580589199878384353386421282251141227401693591360784651091068609169946156486399943651533471609351544444730641639835350205841225435954197029418487401574149948009250314110916163674274902952710671193846596308913520236209461078423659404031568300207461612739105636792575715018211799589779110270407076923506056619115583274477636347309160285421784058646124908803670020971494585508400107698032122111913755893766426576743317914329149695206532482673519538760861628641284008486311961002972942116156841130555017103011102489687364921261079130667821512191452607181541377510099537915747812430047575750621027224225709353812233631446016101044414014208757124645563457431245931273871573341235094503336810831205302126925939876745436011236403648140888817061911089060648187569952468234438546351293454917592323125123335863408578221163480679912338480730319743267017805636906926749077010050015314749256998255891694128218335462386980300441933068804902285326796669861251087168358806647150933009036892033801450200280633396742192527725210287680065893899858218586621427253907543502356501635969835645385260506602890250606308050479625219422911353690143477355471802337938301796228789894811709187319320930265844201513483180343071072745021730119597727843539385025264550817228463766690684474750238857841709981594957193807731086797947235020473010275679629275719540538983569177800517393330402938585867252582806525506674361924461506465472427016807870631240726891046933848226148832775589444432194653571758064875244887187340217154630759137581919831371847401657739458007233919443395018101858148328542640032244418529142338187328076324714595930308364755640531970725042178726890770047329419466919901994902573646276621302765577082345439723791981853578703024824307685709025637520746660843924650388477528461832624631876587456595393714385478179585130863128466826607282389366375514416723937895541261887246641010989586250933998415442424032469525259387910499757325286641147223680312028789976130522490866587162706607370086257239792362346092453235654906986177481376349821652996303770186367209743032107528098677843550418426631859996948968839663660391957008113883414344569831794050433075086624443806029690143938117887689399792172752022680267762450101146087496850838720756708761336717731747616188072135181829571252664285218422011253554269442139155930858308092954994481686391601066611302170664376133456814154420759326588645316901943986379916168086662955735541089727154391454959097567685999898718176332178263656254917413197482429257291625614178877217471138099354310697250588392704450884709336538409511409851434523442251988686026458798445997348414624170519735419430306472471561526289148411489802299032686140070640767364584288474984472681496487939887134140061441544834738986596979374835038982949329639906059406618626544270867749770316529690318117643678712232238167238614753692159527542307294483300743136623641891317727173460453010315599535777456776992953379390863887767172202774896658641446139769580595588323781473037287139735955890023003904005617969608796361589387739164008024720851709681020666901214317367616377198088762506222215873129106302834709484908992978387124358132810986488603561318859069721105460621084894078022588978340769659946971018038700592560212239799048134505325253749472648869385605148341196916204512685436876792466057382879827213675623133305513531244250082237584460376990842767835872628590952447429896403363124082695019629019239584586631721813741751258308004471593489215528468027553365336859835421989835177369284064390078072984956899670379235309634505515689204761654322694098186171953867122579800360147076002696514447388013990504341556388792136367212303670029733828353259540370201050923145523284636080143018015392730898424373306687059456284099475613509343707081096859919490342016371468093803565445379241038975173489606560639960874671264253648923048447272338617657819911253077967750740297149814652962811780049259283632417266210134798048140775291329898555103769596835630213053639405281582363528063010612181276867466049619841341197823210905859403279826423316535388098984541627736701722538390054121900572421123683279390598411325837803690162604120345617705332721653783072740449318153387384053410077814214442991696119439597785858119422762487421715959945084590172371045180735681519397568782734787411239912163386061689693708948767179501320373880947573470932128599898160030702922386999377211938574231977327273145955957681341259619182414683786998887223062899827732474946120924058346575079826342526537426291767718191683545163936217353258081560798619626440449828167655259484373815803965224191816598937564766242496910380506777084074372207570573049802804825048467985999301312713863114691716522117493759265207763440695960975997705332417458511661123111096633057075432096560883119328896364937505827748590786467223336091501000058108676635228596302785793981469927337288568717476733347085902523030889079194901393133229178395463674388864747008824389763687674427516823352088599085111683475859901149496335782563315372301967075551085604238034492081758863245391773871204282059549217880243428885147288987120329671223018350315967619595563040110052841076231249245461634618848230595273141025055974447180040674045243786400886418078562800209475933013516543629205478077824312543114214279843859394456635316159168357917794064908711897265228629487120373513712246835314185644593912589351618361751730169350054162160134498294505945613142697806056896715969826400392680580466562495192488257136458575461343913461175672085477135080260711817116355606849667484059508540050890968833464694287883849424517775140100781055039804488200664394834682483384483609824021270704007739409751106396836252468569366206525180879331326666915423863430122317696631076784648365183342242243320684361587779264042163151534947482039934970852870109368518639480337415135334764594044947127102926591242388248863985283858872448641884062345810551788571485985842065847585536723471600605212066300563774334295680923967523649126656568382526139123578969953247893962494903424855491977708717447042180368210102628956406231063803445615207194563247592736175348997582787226242738223798776837755447254515312624880842446425944470309157754547148420886110131749180274741152333818291135352123541911301942334423256401397153175122119618939109776671058603725921693841596790333533014239117709745709311105409558390017818610131319220005685428215872454976666623588288372279249610400292982454092558828105578389198462288792837589567335270309444368846700092968959989740467441858673333227204453260511172578204987434478838963293734393149481058483944648523075603270740014409911078302628735620337676093508562909447623499811032094165816876228516380780376873341705830729141239385948940201531101783124627325256475055253753932191252132324587406428431480392172624808319985118281220573208946479047368529045098111171975194145737699227159260112872302526386783600995420212355084180703675954503776217097610298429842336458386140744449357998007039480628479848106248908498207154966471861460302674963865489752244096537419785389770552944242725571537731757502104970141534453290270168531155744262165415058989304485218372392921740707130866719679498574366811936122852291078833029225063327783744754603951501502716021602467166844867212818348793820209808658478443096628416331466679868849989131243808068450231396467712315730368213497910503036573057295527999946675979179488806947360494034507538994050959305548314959038098340630853742071805274889654451878169774852515169596523945779066664905448771038715118791013953062618038444521869292095744812553265339670472461327848104575557468033712753726363675152280586056133914035221806039296762888154268794272323697940420417274601173785310655343323418058110507674208689335392373889805278495039820230484650919694516103110825078844665777989223582201547899343976166804938833845411339080635019447261824199683256792422690190300245778894084539609129299065383752573275440869822290581094592563123447863520414947949509459335277922095834975235363512518313308125513328681186846794453618448657478152466005660988628150967984000884771314939680591020390085898614548755412417936662623419371970650540617453943372445115202017912890256552438185787435174418332985867117710247282174092242786654596322224580669337325385044527441379753577448409472861670286660035872179031018371912922070726729613007367508701546484457784572061656758845457607275943146509596054089609669244484801307889887725329871318600995911544892295570310110658418740190645074884301050285036112242035489036911018645785648906650965973465499712207855570179396342390030903688521731018016731785813338198623988586386413163226591216893277691678288878889421312187492124149402793582859291937614689811292177449614200649550332035606316270203948193094453408766750382731739835101072219372794211623716150313475368112718381740417190354038715788663971292556295513152222333462911825118486620803341110847871789540666146109852124869168071616989934359479138663142617272408201826442757331512023234101402156318224429403614663660681988679005448967124675715303842905956502049535993501103303640120667624787718148045227730932288798912388789493851333992065781877289299863019937858352631007739371926695325547337870749685736357636193113552826988401307580634635839808667308645576410184737645156803520012002533991480837831292579805994918761059778837433728994595728403412071233900900240788791040071328091965957040421103129468899546075376783678299682253355644507202416803866844264874243469930293222765400672086110723262150855310928849706865464143312040109160581027330057166978694442996898652942383666098965860073796834108145984931960590893161893444861044130506890804529152131513264058728609528177367210815511503305608911762337901992586265537897915251583085457300611333411207238653976112637186426959937537929942016669735846666872231870253533425229738595205978542462150974684411799917100956967291889987959451035053978787825082652145418640494697429246099048827392920849852183129246981784272632171927386948721131392000439696994033528234589482154185865909202087040250964511822553570242638555113221321921335285610337949420488999206869387893622259092655966558344050745308707239868364395593800732798626255722408292354957177462931845247866395510661840158540165401057098647911527362511759868439352989038917538582137426237086180943130162623608737281075841716435121512311283737493017626708021414526519573999714848998966643628452238594492630248297859904213684178920401165075016636940890139904417683911642133919748710860950382345342425983166336265085527074432204185019368141188277962351239622469283080324996081188020092056770402882763565300132904108366636702875010015239410036876975894565038113024284697217300159830154133390402354078713237852823091902907858140397110139094147283783475206510756202842417599614020118215734893522624686113387548783912325684971648537760292159466814724723029458306732568455665168334061586646839551874135866978993176634150387401790206703181873386880104126658567094726202187751578100525031427518825369306841751185881294218336576863658248662822438249589161047253407116831705930422609443644211756375497020421433092383443877709267366708746924852751791132791608152799650730667643718667723361731563218321804174197310278748726924455075825767513721736601773575401962541159537948773497797500397322946635155362575827879400763431212185526079730581911471269577654726598473901226711228203828359391750419910595098359467544528933143837246131712962060663003665088141815834982862655499841010743263187979224745586918454806495835887440281399249368460730523467443234544889087886386627176554728341794248480420011694341853459906474298065763936086354448499822230625730584329141433958629561930427034538794674199864670981448825537391410010162099372397527277158571672017692301501356462384256012388544805775282266622857119443487795147991707265835402106629136838377013970706336003019791370996229227732771584592222776112187806093036182512945455918076175883401128631337607431314033063360023912121519069651769812675317581975285283203947824769817723763858534188290277427853943664949230561321244651019060099288668433835922620882264666533343159590105562698446565281199316288119666447064427919253271441258836344691276766896168113628699486085858761626446667928131030421982980155186432791598806766515250803990808583967107534145848283365837431653895401549936004419478054250432647035973033201269283249427145091775417280109976761815141075494613295139281084318533901295024199739151885370384454975552603116784349030382155303238461892607765053694817649470460006369192040436765038655614524090732078094117427002255572489154777127750311264451076653399800802021910066742254048054624129329444182560118860578732237706088631622861244583193182911941155678076492722248078054839243416348611385728556456656332911830055094572158885928216224633123944832803157255059515712735605832167561663207374535510273510911355288517147175457435177299849146466772583214539733154690733617108625681527703345257644293323814856683116523601249277737062003691377954305345709953701149833163975387558115947054402630871525735280914375755583858351480533916757561923503155619613360871061370896995917137220426555995579122952132921639749308068556984133896457143849779662994300293744698235436626766393067505068748554465225798458680504722671348235784630519819883366106548947282519905466158286446272794931351653755497128135575317036980666247839290940729569031434462367005271580900642810194815137219416046444493075859814848938173659834394020731240075203642085866497019593454048788787007022794144119142585587007158752251608762099481726742575807656505929715262783344375918361462545328935128919616562351923940800653809561714475888545385049942587644509426707769919277177653135548949234123052483169118169640502799817208226659373687679605129444090394482799472689965948871304808333940769459379888926760390800289143609241968518309488533524271733177034385623420173843723487798645875259593438574547621426351602372223739335875007121727676180425492375576616316339233171281994387602865557864975281501922745826550155398373609982877440304670770910019515112122332216535808559925823518311941754622070867950355790118670670978661620861097842727967882157117279324591199509393096271274949406875508928874043523602746341899156664946745531080966301686998830439389366701955203623618304633657536046277609504032584356108834792472405320171212165422653485093823197655372713422237908516098030221882856691137502195186339418653443760923576242137319050189574728937554733479055013169465098784074810810548765581993663709380325011819567999572577149628359900305988343304705453301542062424618648573194075672755813814068241373844238869083394195014117361923302464146045786800480229717505284225799591746729965948518981179469197142846842602507378665511510621876526819932339315519185495108065712694819420452532000462175241244937788579681594862190983753868449254693750547558101143875225839617081952957384404720718350478366391906492324548625761556999561802737919921047670186470918624103578016394952521622803988375339996107873365426234771480371804140652152856560180687341825126936893593927169236063059864594857885505737040176233829956384099152927031644163317676260862492771143384144110178965132840053486987913186063938908084609901862658314888427117223029046715329050581586918580613216927618276234141445660938759961364637203948306637872377220885478654542054686536623429977680767064506949138087912686596384918692820331079116046213428098679980145202520569762492383568145249494105862454100445597286052332751480584934261587601422271909125961919102066928522460288066527314125096744442947609933668679780170007355965979696195302703232751707464564508785618914121621030382615079868852255404298823750682728664465592186847217289427046298155680710981738621760726168699934305814588752752730054051931160577198252833027048161566464957996152301593637939182410196999521329126264414483500873593481285161663611241203823839709264921890456661306942711668466974477274882131903779961617752603728508815033597225344005656478942297217596741794882111695374604206061571948037196093958466530211999677241279221773594283874161629557784404537282113433148054079781260267562106638973032930189479699662448659236675613574837406815841474217320211638006487130757660392952315998254594532349875352505885946631849172600559246125357122840030907125180455397188305743274053787142294128579856686882188873408476461163420889308980279709822960182651391296386651953397977051554715207311499213399335450154352475652628785556996149795587111892530301646752492329787119879894688527756033257250977899901128020805068164591760707588325079030797928080709626172304378100323192172519439769246483148802188379334700814522357050286830541051671511201289179415189704683515520463645361906893757439878625264863632252849920334301843132539814567101770990905566542126381627316999434907628534763781837493307567714638568827850415004987569335768380458122840549229726466478399489705391320375636669297551989162885017842477338270669081526508303295440795154581712462535905635359142720943894699630390856019545792968464825081596842111696273218127521562604555855988329357084007359511787352273668936706803329842531307865721707225704078375078741695256702667756352970186764253783847962573779499090168078283714509667959842267607991607230479933109298862617797798109423940964340022341053984497611030421568130457938395881448192391465135531692940440294267427919087626840969348557120012320358308294112462841163664159330588899750425766751312798870407035633143868078423299573334598578941520165241374392603402869010894798130278383554707820787408314689641398964397520254087274819881555774960386969208122661312714441327783480153542876849333519163535497886995562444205006003078621959049509512784346822891770421410241314189823577054256113096825902971815298444715200504736957576035133591889682848583220443178434983480829522457950806498841134242493169263628304489100086009391775700593834490421419237294188100823982526245176492572610782118510535827061058595047658372192898047376442545594515807303212274343658865949732213631042789522427652330677409514590461240828181179523944230475486742318817290009394929759004324388613877775831374597684915480521877661109061679716394024126152367683459582089298051430062253570665959068322294769509213353668693231153958472210928039295113787737545137189603662871759062827617974584052192207141101538163555176542333208315172967479306779866634580526021758077881637399689674478399728351458044483898801380463706480470322745420172519496743860988554681379917520236697246197813015911143208693309210335654594369451622620580674473243998186593033986016811620029134353474230284173821269711665634813660796344980073791118776367710929330110775483101132319701225255225114991079372185578301096640333605646144389220197150165731344427548130228050770706292474680909510754595457021053729279762584009595492827038839100769892064245152874392827995249403711553621309655877275278388181595644422885763077330597882282128178858986264230820200851904579006356194799327974172496744800065650393764043623684524736339597227610894120304170635243921057786988189573357894091191026539783686307865702486730007994042648041668925315929530812447713009471978384159263265182741848554126615936456420932945187975852401098978276426602249259429430518876818513887622696452281193221400722360151008480043052448211181222512334697363341215944012529977237709314415112985571555365543696246913503550567103883393938152041041011641876221985035045690115463348090401105875064219952223481161533527105851593365266942399953902231509549531654585531476801470260706586860201945897482200000491874664019201949139481840252355977077800060339411193762220922791107574411651224473138565369084009557831504893137649858044528637149183508220217516510638119581622200101250577950846663588172077448978735582504496322251210161268819791082659114133912475257462547319903381227965609576517610076870442488472081892904436276895857199420652906323209726687597072114618138832710513141126880482199411587931085191501236179723494923876881507821683721553356069988087798094389287241800263541606578939564049823754346681299508233969592551002884239282556793706903224284494786563304997248020534191848540198003017170434368653516342188402228501439527596616093057929584099118898024758353632705262659438653653922922250174120707089104318213063561818021448105385279023558475378097257079558831431048642243315982616008680191978922141719068571507641979192382413272911421972788688365232636623240514429423836643004785223023224187249292371043864938897585909015504264200081766103706775844863837204781186771122206573567932470651616710396940220586226173685954191376261790648137693535143381358707628370042950391412208433211061069363306818191520588075393055642392045719398949292236696790500468937919147444107009043802170687157878840862639110881664740388769129971566075417284579475319095397837956077513593633528199090713083039557370821232615795086659519816427368647284279560745469947411988049390700377755700320211618616110164260941683496294926355118157657077855091659604672388336361869421903624185436620816977418365548744718116487668955206618913187167788860973565947103157467311581308202034564589719874291053497669369702269986571803791244760662446004978678001104696285080753910961651769134501385604175028997285729507727165784456066381102184744060495527941759870946377457666950072696162493384361118203963330215550406257679882265087239358198946863483405824884702074340370313051082671654417889237327806249807367542498730727071965570157863492817671389689891195951997452341652646375908329001492232488324158113964137108700895092210943501402065599990570406315541903994793329664379943546631751802751706099366523368641593423943646308918721146947664751674390426622051169730800120299989294443859367505830709825919026004188099537399535787539015866821048112852044978537303528535553279353919025055140329949754084115737231286898250775464491235877165862571169974455506678512285383304851322506430268964918848079512254933850322609635906419319908361631174052081113670562985538662353935321670071232788199946263976099216826014781674850737921524596300206542128679777406302739313002466150095138515843986990157319036598684848674812284928325904518410505373395612667709766851419772692315713322610207877989398994268122950084384444892572426290765350435465989001470401887666864908438330418118469004221964572516814974449228380957407954112959983271595731889371686345962009005167109851682819625723977532991274977302264743808828643294452550088476738897052093120890004479933723400594944867373130751350903690716838977164834906225065086500637398607643839603697861014662821178364250684136995158316695379342894704887070036768856849640106609336258288383535525207863041546953383724805527647212544506810131047762244482226312464798251478414102905182200588851658335043393281414616469527177888488462416877186364152293811115879735694009857719026381899043229793416164197754630915421021436183030832216500676981137589750541666099032210781432977390757163648264492678201840396783834456983687406147027040376484542663949621017499362521367531027242298175961598795949701330870296217946480370130151924779311439440269831987411408117478365785441037913022499128155269697536788288989540536181676661843728956176601213497664676232860760383844515459087026374285156620943236027894330802249798349565429155841742122942232271332423195303372499301978440132997120661162239728504363901747297572899611544885166900292008387076737756394491622581497705631664653426571970059028147518024343561488063936527209508633253770029720756736680472439796288228843118896017945333879084949708599034538413442108147167683258297146690857760848406532334565264904233579922202727891866848507915440182086779421360655722329104833793665120533425753015863093629941564761390113511229328464344115405184211655426265473752937816574089532416518274055499554936224632762523673207672404300403422690798744654670248173918457333911053726145228326994613666950947476390694268338562135162521194020132405157656953446355139418181021943934692318618072569145557854284190840047891650704475950294037971652880209371977549436687237324167650440585720002003563605386905334091865973891977163369790199014232922040521948569714121664071885058418231507183514272397312666126297188840105669935357907235623522335407608234763832648778206736243144524802337684759782762999180512750455316179690033610918773415716972367363887543246003939648214822878333309080032953927349308693379533436961059063513370175894432237644614493579136278508085416608513525448798957499959847193392877752841010448923393132884542164183488441151806887058291378300276984938350000945742393365488732860110010255350511068635834137069886802651456311161184138853348266584491678077441972890809965196965676594372096687051762476248248264883819930250793222969211798264730487864777233350646730113444141243538602081910025687716772056850830097974274047372635142356852627788699569531601373484515812047992329049640223517646927682736193271297530215550376631710879470147630187264619839504297323234987727377889222439889287241395133535701810083052961467276491358597396351655012947632374832702873820858971684935237767807370904199367010745191500491100234090526435625996122556509988001807542275121311483856774441517107312038112691767757270452643824236134603454129326241504868475630405261268753465355765355713443934536624084623310189107750160608481064378582078454075119798714587410745697903279391433170048648102207201780377144522276987439777161505133904804029015274686850591508099759753296764545759351304133257940043454811295643029944292581349398150994642899188944260451839441873880701731612268836697300444181511178377138381981344270938113943969720469612457507948772586379027134049639530269911201203201853458828185834032379754606038534996351498067549881097575668544312337586506537161007714358989318461330716247185042625774743635279711921769562402594516152119970628139234142315512703800037067403905869909193333528303662564593119880460760543644641577449206193540558568495835803773493339586384382617105254954181690992707269357634279617016242525860157936665602899574217214221005881193314862198832492344918115457501838687076412320892120066725580586573860884420387269867138028764974813214242601261657873262696773174042670429332374451806700434431733415043609544758704217932274182838511267933393505377578473399880834679444540040956098226151309591194084446028027153106226261926565897452460287043931143044032223270906839894623047086305097706663349715347282581145202842296869992033669857826106905430182946236577517970634922846405842482988663218690859300630363608699483604524364653865726212475510642863471751246290916326734414563003419871081131411881977170520645380787630300769920832844800887133796668101482853234439623653511405146685042527234091712263448127037206834603053176880535041355579744208760384089825306667395582632201354386905288417655914860052850344860661729091385557975399706403252050239239056889953803971627277927701302435922569117148674633453401859982873261355169860099691923016259761063912155270603259189177627583746208238141881796245190521127538991825283791457390186431246736548263422796383796603464692968065943745499562733445937477506351309951983276828460731433303884671425194230258984364282059269106684785659782764005069002451035979047182583685372866202640338238535775006002445271600979876232234578006374412139418669971620164771873557499341415104932994296410717156772712067022100619163872308895602638995663379291989714753074312246061055012764930034691962923117397748197486373448531433384285731953499369865053044622066571038247874435037992147330005063701835503913017657289324202769554084502147711585211711110345167571559344277083684128486430325360928681219306921177690717284876494933944012406742875502495679584038586348117099327957123866532019355426153731306781875035470313647306061946130420582658434742215052859743439875484302476169471829902948572620002362757885102977605007111001495249531368033956058435187649775357013803042907176806724142135796700110117669790635155000525273140914709475761927209661097674784993083921008220199163319770457880591461618103521319023229672785531660958408550399952637376484107434349321358626380250238878665094868844426921324632591155389506126721848477970541223701533366259173610963107064636516756066859162352981927814469981029466835936066822264012988517391493015508674527612267095821958000571979919538484822025204507488661476533867147885913115724147019412464760814391999552538376831608999857010066366035189209377157372087355272139601962507138683688788625323075473179158790288300436151193008010027514410114726435375333300514327173039950956317137306113996414254237770247013471212457459096722481724682914840231324141310934155812558800932384133457441229257564980579462218883145794597559855458768713192173087759699029860234254750611969809286371298873443433281727658481656387775381440656693378895804086159695903317033283303579059950495785378727125960899133200720868943111257466323911605615652929449795574178132752515699223762214134697098614656365013282095176276412623991274901580372636790987879469163206786549348707935342725261602295107728945402481163546661183497715727796511937330665664951186901197142844326823206617448438767568320755661628426924891616085516503966842402041132954378853295201271310038000129775546560156264503844780939890124390089424127182651959345514401021733727938979291309772271834251168540166676747260386393810038684252345030881819010218860858914824016931282866856630583880362151098682707625239380849118781843242215168388169358350216878604714078291787583887051913698092690105233097523805823337875925997031026266194992443190108644780136918204185135792669017047399667925177521359164156074114884201674999228369858538812529517530050285236960518684758257641985792934772301885635757211000546233190116899623845175737718390839441105571949719273138178255102144399105338730757380494565727711655496948265898638357745850324758648923467309336486081619586870014073609370718295043211522659898833440912906650825743115155217920454220979489000077593602800533498526246920706102195413963678322392414791465683316071013702014494971963219300047768882219832709572535987989343813478750470994620105440053429151043351519803775322513441547358216809417719889459462361149799626751762195385080233425062118372987514454920548858858132186200584950076896443270283587621620667960912628437766769822790327966025851784481331749490847279724438069878956164129273368921496925548161894706807906396921427652440081583509476885721880337378282322969657758917491015264581952311672799462378681782022963163812836469281737318816448326732529714955943787402316292833503915800285839022750256782578980796347194444019692276350789202450392136478893716116575684096653124354065859236397874083450599200930765617939045290530304071864300214608231925225108596631687413559791091205125163470668865600515646596004123859471852228058735010630429220188863111295012280125746548892913986080969699741964238935723285838528343857687220530450022653643863730600850114356683668627716083091117883175548699574634921169196491797740027745051889395302515736484312282366002196141554872026035219033637271482604303732560878763537176618817213229039181309595954481933011884006575324790551222172135759115091496431800963663287017673334384071394539340073324147675195000052385189756343100213729308529691631846389546484099598957902564052287335985377764450396090097782986883749753134710008615614570907521925088985258122617382551788936139406439703092076838252016297485815109905618026448940029770935746804204724839008216364679811762274943830012597757086098357973820351000567581439224566891187975144310299991080769714724185630106282538782007418443924982236499249500391270228338777671613072309872784535854317924582654441782487547729220770269992674236417559063936024982255691797865902188327820604280296603664916083333591526180232922590380122854413241001202652064484904938990484972212502371122508577787912322673052826421350211757871411456822368316853864797769792882619555251683835743188755504630774619216302630309795568644438341264275933866893518196514358544347976724508865427095042869967642784767398106024465375435190186666789487962860341084701371259010858435663603277831079887118905942061274575159974229806065450096631281745392017150017874638985366504446031484453464980726607534573744016715654738242593685802336166293778834642245856609140286509064666958811874744938455138168164518233520663353068972466138547734627913133903778511416994782785301178138071874838829378041380492358862927248742239642465776791682231333991062202507514193728108976923856805621779466450166091575198720040885551506914600411586311370863326821537635169298723334159185610931240452166387723761589939231637682878802709542601505595896857366810103959037729682002714127394765871028818900090361166679722515022197358538934086849785240719495417607447054188419999156381213629255637591866633429774265490556638354766388844290587125904680217005902243545630341508373509195333574882373235502559902323178446597835017224285804840693831974513473855682331614081249322562017207730730644045130630583268890430056094195814802868052061595436620932914771608309246663594480491261621289322220335466905732197158931554810018113742394289312977646946196928516250723867307838937445349395222273508109737936875213237909816139288603940702801626582643322480925802804536577321975145825943769598036337671248737526790616871526624328971832476197688298165321922451640680480270579548373340416411188236590730377469234714805442140000131589092132776180041617223914665469178224307953192116912946451666065108248033746019751995588540350318243924118823283334423265240691778670121352107717202970842908966457370918984795335979478014038299576589642876688081337795982653235486784003927759714156439098331766485415939912806283000581611414126587564983666825383024254558133600500340920756307696130459911849388974161917005198240710347465644722826692190145332196113819687533393691017272079713696943104434758569939158007565736084223267114293484103802749335614246822766354857523411104446468351590139912079251377144745401529633817205620907139761142449601444454977010546700418098299351793937252761157640325276886071817614349050421974222624357520065037883802117693407808765029064321417555308963163015651568907716070986060074102165407482779911962594142963096346494920422366145270031847114656742539829638762929939594191051265975944763610387156215280753112604652653549888478657396973848289065103404461306343983308935790286677341836997372517136510809082963377877777289089644043688216776096842466415254947590738764198556512370058980089785079091943658130549727248272687435454906711588419400706281039533041216784218280561966701114195543453636310058688143713208101018564437825403648673220898888523006533794420883299673767354543907662589426485583714969129008394910660629223850032712934310791586246585596265561418736416352321920594547010773118498698138126475284188868036635784290338516442904283602845860824376187272492670388682394107955372243114755301892299045651689814931727434149281296517591709106272954369508371346343453690636842000724979930101574830346271719196467749216246236524205455934355875700603914564110907262821037388991510755582417684272524201720666873620687734869072717038301848668892472205186817470622546104633987773351974530053942492274517340744716018847350769202796749585988120617998617099983037106789510065514608887388929868245724051048748876063837530417616669469177801165972637796619868913176487351139240375918286879781693909116820120398383242277126755661858798547946277601501205684134501562687868096262101930787818244702742683946201511510759633431412854651819194549277870527487229931026360925277546252358946378969953575506072053310827382176269583417362953271639917301330395399199996790413831902370447794118789170548247089807422495062335194357309881759991592669887156274500705459580440196235601626920223920646350672155538716571428874879321936505708336864186224597096017148564346627115137227106718209139302532356287271200707859416856631724742663384666030452567134016844052333610433204520205358052544968860700649335801263697567802489855344459762381104507252942127297239185411121788528756433627050870747031955565596656996618745776604210986259630288274022109120734991459242786233874866629648794741345731179684962216985306958857938622478483287906646022265727691018206591736120014798633268769763652394289787310397984410493568685839889555602168914059200350761881063647569768625446129220305217630667012922366455701499177846216767884337580140407956452674213017909141205669952490148124388945710418369825959983523187044524090693892748994549238045827611046487057042322472972195354288298370822464095306986055589413478109421717734127320339466177530334330587271067124526330995171732034427263160832600047056055983158712609683235390949052767267123372486209667069276219767346336146760537306388380405037279046456545339513876002073472463952971940650616075765957536108003605536595718447799169093239563664262128199076115904025292516631363072100970800591946602743799620719890509218822321590886972718923508373410929640286348127416704549306468685871596954080007674747045672113565278099096269369747547418255328771024640845265676678482291131797636805194033216639532672197925280018331593306398559255384613856888194413206694830087991118827770423111827060774514130021452727698653458495571120594892291396596358060248284763122147960700947515373043430066100926970733141971847227813980011633867228740058420635487911202254338898597772113060358425738175306847400010017866877290415687561148816142982015299965720997969519523431131592148616668387673415842389464780213776841963604127477938428301253088429060210325686325474929734791082536388832811512505797038207507801784188192248320272260726787065704567923481404487498296255545454453347832139201343076006174700220318612164292695258670709015126045238985931391390951092926202958254485240496407602973997804855144717748253611032948070442957673630802746804729322858852538706885306505476410515554272265563344499913266415822979702070749978629575297678683488542435644877049343808711454554043651272972213717508121398539638744047680102784036153563565038284819458906129889510114800060688512571683953811670142928226515516629720405891791191766044251831886999189272841380115136660407970962030665602402113343469609873718994965116702193804394278197651434577770445610032004091208994662317219061860828186996880122684226074197921896075250402867595366806341607966483623877162914841476185330969721234357497800292667333188952792835274369099745299179351953170344347171755861956606860569134429882809567124177139510948324756407423206526801704886660686343427021388371393776668557137009769326778490315112422071309167946855644807225968148019900988358127932510697003314839061759612239411094955300511426748751993809612078760277069606048127358124768605932332323891136184575955251114487259706107448597946962360054206233479727046055644982627374526986384821124279837012638163610074287958770163012525824674776709363606509261477878590315719484804639979565779988991541371798514443742893507805463851463780156327441496250274031690077858928310045864843089282289069328896743957852815340880902994002470091612045777668547705672663450393866919131983381325058676182246083109578274950999916990983878242379219456973859693571705458721712956524724352439740647410209511061622323928089199573030404681375339392899088420095938020100994295401798961524835439433886866548850975500744422249384630497658893395482729089474841345709308017031376358628012997405913570243013810418947674473422890511333044469337231853988994851770877254781573074245214631914094937970407148396756971745050487368987179396983216928505250454482096388439817794378812706190424401268332511241899717307319458863091155566915197540182970705514458237938826733501444517440696752035317631200994948017226645918307519824311007450847216574559314047856922979798317387950040649651166605262629458506204852175504401741956683923199029082061063987354584519790157501376818288070530399055045900176580732649157912722579183711721001932082082255861190787584755649505813610399214334714030727029371569788937165769715834773481953823464073461138178076950783167001970342962585119041134385318136288641354202382795183506135242143927496120878560020460213219546649992880442938965521584544217427817435130082945874409886609412907029392786993850547966641955800046690426215113432133398001661332664508255556456034186762636057493119491652086342245179604622281314908431323930514706879026371760493281333830772319564821000552002644857619296708500184364229647674025264759363724011749036827542069584544194035148104252472017999081236078210788540651598220026720784530593792514581789442394998162614158143633676675373530893105707736576727568237608834592835294409549080305981177495294585256586958804339617560301705036333874890159318793364151278185786320732693993077238370250182371590553651500734144318734262236861768313346951907390300185521479507086651607703176019149590952514706193499016851648702077594120551936911445550635888268682483026445064651390053985778632730863866424412735651319692720330807644748297728747748098302121875015440847325180988733479801470107810182806236905403837251262539031232993314423825176230875231630215769476791870494858646697456858504987624268056136439926083839188979021535366849678549250738047536572371084338144691414460060985773354122879222359017748252151495248271098079344630853857116892096668468185731097147282704555687403745172851085430008223619806746826907544049337905551072685846807354918488081119526291650613555794092714540954468639998891306684920552890211711857192615021859093086567228977970035089910457070138171269623087007648048495542967464973496707814874199194401846795619750209710734394186903146627184837984635192863246448583301176359023828410478682747788874612018576811072299100129616981260687815237548142980520425994568113199436895744158783263538498798698675346763954839811921739667845394925399923243090949940919333836859396273385430537621784780010865613753951833177689699860557372333964342332758896706848285865032367812934928268624230444216265499417801624678827126351516018830030543397445322807932210688197047197697466765911624601909522658788553132047618813795600365678720464174299409845030952160274077953660968605559991184259044322290190289765274400287009840139112493713206467158398682396983882745195388342522159075473073378894044553765587754614612951019004242420742531994979088667780219035652536213921974091550342597195149733550048830303707018430653704679526402142861811981182871150613558351780352613330017701551405983358695959739208458156080238115242024269883718364130897201938702119222276009553649651922762735697643930784774328198745199301334380522251125867624324567514867813763814420846174251934866954269651417023918820529847802752314736488111343133498049047844618614089308197515499472847412903836047460461473133261119168683282374473467293675835502922253637933953493571432315833256257051593258695193250629775368806007184760978252258147358221978908944679123117100652646098625583654543526171007188134360976074305302751622024712965026123826872119775391784591225793815636466179622980184054002549503713733602312446884685068908325383790112016462811762867109127111610091789918955567293980935568910544659453425750461063824459140258297004601801922906689234963507559773048857555763567093992390599373196702364823210516919508536761435642141395639333466350278803038908020924494468561238949057131283878651160224318448630973760640044171873787592598179666501167053386594614920249510847093370364256866263167038811068814261672826663828083558398181033237032003069501170216889486969794132410588294524368161442878502797703117315707557136937413975715921120544144788546211831359147792977958627448259545563621455781527636737104091172113677101404969725443628775317829138420419486549222290824577436774604506052693426559470772905720252477473242730286049483567336614018144044992312893798409896979028437552655774502112427562735531548181165452421084220023669105868027144067043457876474138210859484277060765501876761322421642376346774596723799471839842265631742223314800052128848240460925405634674981886573329828007545572329759053311028481713050724145730784020691349396857333459354908176392170221351254246690663741533936670471683384187439616805407095281810901610752289444709924390969905499645274461692366836405484792854079754694346401774556199520991396424615527407275232153814139270302805765848683133833140051749110437677924330395172452233572504106339918836780233972901502472669540986956097061711634833520186005881231719460916726044934660670967520073747752308374748942187316936091839429891426281266222847148899337823312534100490917100487919906025134837775531586448731220400201125047417161205242950601240586370113054972763591682306972872144126392057539572141975646134986088149302565393332511411056939671196652027856927903639716392352935266532945291946837191318597762837647541315490445623646006644290400604022867231751321966335573668973048581379845524355842979999961604246426904785637103329673908107254177098880247118711173326921212539227172983944319894891418983664993796578774984084457840314361254748307450390522353670893998190271396014149055535839387010008169398798581546189163923058534874208177209220623311044331371503741727236522120251138941833429528496884970238550093344070598299703535286689557163979139628374461329038167027057793530850731978949368636467117079860407490678689861495993231917617991895375880647904620545261952988989739805665933448676912536565291861460566373092853878700146695741194075950168897229183764431823667149446834749018404999960376058883371483179731868543034134345001015941194608340098082192992353386924867609827256070586165483429525000135405734912582230600770861627115772239259253981364704762293227652437384184730005186393207518436652572563930479354273889584469402499362518718608521915100722806602383756535231999598275444620590588985931032134326192334075767121720923378745422919049186146007664816692142159236182484218479797534429676666137226668172200778155398148554785329878039788712480740637400407835137831617533771548184609965329555027769642131617235958232528392851923520843216125269059290062460719871975107970437792575809869205800313733330222560115681110927513532718779864075753748662518648230869845293906330553417830241343511453918361707528818236524775759799698929087174528985373074400432132643320450685439698699766777230408750848212231517331335581107954644537934007110496179771957288903382739934728379780394821231548763841137230982191490826179603527062078492683606341545301413018859967012075254579865038091900700314053364434088201226761527941640572313169814202481200885257671094840442379526136246491125277729237158579482369119481443585016123044551339312812007028787869774519282767485003490735555024724324138337792771063275321844515446499016807934889747340267820691627042303050043074528263753384833988416038278179012227402656541851840516295568757986063381283731447434196399941572121422752289786314970627902050965719793270225356835565299436694738344248589374885947944602821186428534798950426682514880591952731336528649937505229684484071353688165710440281566967510187574875863671005556186452702287566580467528357124885535386819343045021218082493757493307871604136956148172218358597601817254471463750004137442672090710749946855111676469931787281917871453703253646281640617768199386676433702657896168383829148392290690696327461088092789537419061245123159501552108520216612756299719721813257055484434006391275825215215037836802797901084014659316884695667079144316001613004576808230488122504627620202278633021304770346586247012061875521019779244557227275289745809320916010825864971794831077300532534753823367312222996421760964470049028902089772576461630507283981289820130106109392511723115404147315801228570901001981190623434199466632643224879597618431971246261530776958349122958408125674588163541301792480942122403676880999704185712943520813677526659031606923059176024919372752058940704098289033618657655369341230315819349538344275290613660573540628286006813324171212916179428856229612310573479565312367334464233731823657952631080873825885453219186061093911372264231575960003909959980976981127485334548665997826625802767491458475697506381216351878119954533935961370065064542339212997710993071615961258683933269631930646035696113516234957583611729425910540026283140298588160606496212599287222590554689102282500403266762072198463725502921155360421390448408870677400091396781468814830383576546270302434102153319555990996208746601337134225599314423984610723705301143921269629907390692711819266471947355822084055529139814888766227156460650463375218242765765619684812691252131583731503170060424948997659615281207859314049138612141100273094669705575497101548815604699463399272158592969883049473006173582328947326216734833071212019181655321740982745933989473950621152157792678789737658794576067467126258425029652673492187793126399966263093576626278233509389606776938703804885870951524379543649636886809970918341893754587838774894197769112632470952117688004949226892734061545988991546546092177117818015181145133037457104584916077235146030177517263868810042495962796733054955756383022414388504454998238675006711802182125318554333000204667953523794127571115184634598196262876434279320319843082191232178602922935627727076822974377981289667313272284554641979888331840567756509736399238321521622335959581893179097657462213020966872399747039406705906888840420213270229035708532174322519095705725391745250810803471143591198579698572574316206435915158121407374796863389185545918672779729260102660812898946549568346117600186566737487826975157674380695917461108480593513605074349523984575437561286193289274299081208763040144070113048487504725753587849662336330652573159923421335430120541673341363643693047301483135569862302566435019454637542429248691778102623517664811367895297311640356310525884763737877135638955901823556616185340071056805571503428830787576599074807328573776483804053640482828575448521472489813035261381702562547050506610311350139929803345754169650225265443996745406826844850920053774629453394051110067658914270242076448247190714399139139947741885324489705201481326419486278761365950782584412778937072020182056712352838851436759640966942973483570060647179914498399682997769999522360874281513550279672150621488043076208889133708386224232258848730072954828128724311232430220504331411346640639323543171877061229714649953789198951138826781284409780604421385021055987162910558231171192702610883898484831939847971681107327817821714279797303388258526927603899951386000595323134254345527697563278161796764919534820210285584000403770017387322570041123382923416446589568363395321616227589971640465332479112612639334372160882530406762049476145893520758671297862060326826807117965332021123158071682529924795750899693484192270187056755980948797460420425967664877282889729292927484398822468416494302907164647236426212070151728765210656447428605600510655332848968008997126748807177297131816818943801012875356234198390322207323959992571937649675161105055674272724532998102004847486568975631683959995417840712048222868369405921696270992408391554207229446891926162932401565841735249911680354707070339615531905054945737393632899334593066572389369466203014550999832487627454404304349172264710034442127024587546882805373828844920017892921157348507811202471619234108808371649051900565770428052747994034667769435353711253987500341841485637342987122751331609730265410946200662523981389897473508766839058665345797565391909029370032390076120011518131655455682763234816852938765968768048853486647577604995396672125286596455046487919873220244562350242828573137139301964152907603131268666768454470313446278606595974685983390391154618434067636185488268895430900519036559678339275609198350957163089818421286692891814766243404304691997866761780579739197036115104666595666450939928828009276838035457992024847216909633650015155298918439116192638845190839112091740635834183162827140502633091486730358510411792668697238040486669321493236206513744079131906185476624052288172936349965156531019598979308366497276436948824918882011095378056558563780662458770894967820387748322623876379824641138963203515439246870209370458836463853295962285945073107968952216352565700377300275748362519614593114826298562723926284259635338433082317217529936759785322067763994335419117237747151534878869461828606064344193022535124947766043999817755441232171686835089056170209150663233746236012203794317028013097252110120360924586149744282193993430391597790994210260117988789077518554363966684242222285344455489579255446505504709281911992656266106230239259316188334822351322648003749943652039908532830096719006655749998005283917750075432191524106584403389474308255667156915111834596293973055786941736041525687196576487431814827810838757981075140257723775115809161267793048049738372788673705296386595773159964706309500722824381610409658967187645621508357888670170573424622930169309557229309799952546247108472866203406930886901294506649251388585292638896955614247289857964749204594786777335876490535253597971147567036311430587583428321023744555532330008027822185191939988057779842647221316782310424070305990788251807372414396519419784612440208089349074712557188142392920770191730298041779807205804291417327582216225181267764912846128379211256543644239352152091082037383170063210669368943673684162393097587452115290360817208805690068805621880653610224991596698619824918671365627408792651985435396167828063021946839504873357896811262884015850199480120542759819234756453973888744736016383925058702243124603311285791728283207085764893836176599753764757375663749883494391028726075537076580148456808380396500718926105013201599423972178709865952419855021617840555276792311557821287683394542906214311121431687094322490962998589414586659580260293338485366855426900193093640811284577930815593025995256092020376819738716768150074174719311872302086408964081552049814314680946136240462786466221027665736451101567702653928819634803821425983601526288833203526594853268410320775638405925924211453632084827082280007134405884135116939711403119287228509329606701573244380740639523481254211203555601216924337866881623365948301162347960076375577704578172432518928024386596159235881077804102101554991330847175012288282257141370545106049109841065662898659228310313981838018980467537250394633722884575762665739535948045917294546948079855944324725742060711895995347655574912172933042092552667619174931191477320918100153390130103685247361601034434804306800517255123685782593354146115228323380515471173635733626854097566339901116786564965467736053574121205941011927979114421383009318954328732295030723820935738146699861074259497489031855341608778836050405776846641200745497426291477668382600300139883053788865487343458941768246748731868098372630804135907816428103712958371489590941536442889893354549875266004853298021375882914943716629356262263197572016415622007146060376252296805057329400876866289013164285827221660938970841011221523724359017344241532520359751123773408151532806858441367295094359676749837588996574609116519817471208722393188186625780239905501487007305684231301679351556035173291457747277860639458123734424441484090146942150032905329561655611465763221664550691872029081978422424835423521834506973618515281234280107324874257319730796292878192087912260497674605891450590080107975832848188339859765345402419677170025404439734815323518238275204991180961174211456882939474727849091016407871767560607215655773161915385448905312455284902628866524135165954808229915853114193628211034488755839686279301484984466595465221937417108277711976926795319934519537528970848064778555282006137373424102315037719520394438496830902856982063701812590683109659472428269083565776701026403637737327139441984574133952077654027237164563152524623877881092924642610347962225489132454935252012759293895228024739246110299228342958180404880394554539262136055993293581586756300767471951753921225464116158451449558150894026656742179392122148213007081307742791447833983204208735334308070661736057629653897299734484898976251851531351120116239857553861579174966810311494145607003538170830723168136150745398231832322120402648436802175702918826820978669605226618019517786243137592567481689614770363697684369308755262050706197186930895091994986875661285247030368171868052588500033317665591997422028497322851881521939195525226900410551440528552065434607736344885588357415887815311387609043885945211070368413709800562533673321308851523696153243025650918899242115365077366119941480645014541112213435392532038859901225073852474521402466702912458257919733264472093063133613943907515109319425824928868213695321879210619251299422004180365355513434739550469689775326765108614285008499694044616894615960360204863018027246612482592660834406731601492482851326508289563423669382103423247341964916361566403446465210333528788076468857952034861102481301793318145350306101750008924193783823270847554408719396290920030707041700134034533561268330608078401431641705704699686182775398421261829298086801205941318463224606003294235580871606062543899342842014933598073539144239168699336798839526306732966465337512018476663306772275533791185774628021807601420455204600914843368707150633946806012480639584691613375747936074302801599081489938538251574139661952057592749100563921437735198533557694702192376781635666697348845280267056926193264709173970411428251630534021222564766866268847602665911494374202037908488285003219966791157193224324373210066199868422189679205939804841897601557370520111882631895690467482832874184018827247637382585159101675033883608459525689807788851813285019254585160258064272582665866010574932817962062304698169282491283268999730291475653690330976571015761769638591838050429640379986869226660564107839579449839187012000288340422895381041465905209207319664747664722981825129633130200852515599805766698084608048171473073343523603452874955831180305591097274886347661396812068403545802548140269311276831503716773126781805115579130433082804943589766092696760851364351795237479538648079039882116225758880430401491827218916086919377568408915970418987845228288566846058859648117237487794741563483967036004369174761504476018830411463456069477366343500601386257084827044050513484311239080170500163473555173245597084217030338339041049274185835163719787478301687303931007234296598854402477208989795977812316836614997985575752735626754682623579297974194953149487616413361886333743673691896560879774735647386254419151960690312402422215489745513440815593971192896079912239039179123353792107818443758078556446786407712237303875508154235441972130632636766401035576366804209758399597980962499080031452206667329015633217183900519271011134135270745975122601299258445390508813038725308717497477902810591011723734874228093691530979775830286508196144567212045455353297236031631693634222662946309545502602450083899797056310609769914214997241872062770739404761126677841944457551937178864651517409352619689078225861619011157678747673235679568841137375587360761010208941550653298579159694802915854096204756594176247018126795638252367667972780132549016023668227970580898710014103885753946300137088713782653669950852882399636448023126140541894297145902140064462732087126777483489128248189279748009150085875434173779784562139473611841095830710220830210565572921764986506135270469750081095937904466824535957062671840078525684083642388356635367259994872095617682177068385382665521070924775879522095830250693171334994682857307723173553770478194012118803844959715195227307820268073781546163172190287568808233433592561869294334832196859987859731090975877503123747370606268159415065917575308409415876685789502762450617525562214204824610257814853153052291589304542934654467111170694562370543756330800783769224837121141198941905775718021099255498361132671187678742703246507915066772355455560000318080318956471316612120095791349575718427141145162126727406477899486007058516584253121248086951613990328834266228135879814828763796412465725232974991276758659318741356090915990889359425447047421352700565208833531726865397229473625906253406621243970543018685893148136544980414311831164894564444224775236817161179457405501313901899645401672312378789447474638003849295213265200551210616743019313774799317757652833020782420138944963165790181733874383400908578946191485916247271981294955459743005602186566790423851669188966539845758489950353096376311882964154268643919957773582992705616010315090880601319002732556559156274020571853803865583328615839242595363649658332942313474924830534981730190724141318102946131098560103592210512820873561474527121302483615044253608600305825503356963241699177562233744852178810957862873720689867558459057594374868542749777504758452247628692473969862170968687736843367048103184326025670253502568338851729765343944695041961926397422384442318119256490229152206270853650200737799606762942575199841869927879557742780683867676882215597883845136117629219254605966252078839130972169999661260040900139954571251597220353398915246722987612374273554246554247373325454830625907996449506945142112910570892700442958498758502342707122235504467620241521297349319495439649386945345700165589788445961233719314546946089633683206133793100337538343960772064548132173160810971337298579225670562992852006389986034890537535378750451638681144678120894199839039590427984733246007518794574843822973415300748774032959502906881656153183833855550233114864724452061764813962001371533040388635253693910544522440684039608568623323494250399588251019375111359213672770248336802001985998138536091240459022737198861714689901524815634372318155620655014773390091291611563510019627060550596421798960618886219190516823657694101303928188662661090457650037058492568689823327594874575880333044035041869952640039958789977540019165541798837459503614565435523122250276966610173700367902259335353150466385847167685603393698630373277002396359673165737268912420364208661779462977281719753514910230054259955077225836929487249290466946060877201819296610523180184444688461171188464198138851337619377621618641390527760804039781298112394291399752413266403139264701291352360737557377068647545013615459914101190197528671301410879015483324418054850479868725274345022284107533558665031049165940980982289610458446722180584390504863658825593634369049257845684114558533333265020530002967340588097004668661265614967229228280981252392460363367534673963226802592672626649874456839070391321189645406275732249619982599977150768065161773697227133201755388549259671611628501107145612273749997090548254536686944505262611158895828479332929167124396516685263220474405507174861143389312973352984664952420606554943494245716665767615838433896102442761273026000260145305690613750118003445734982879703408734029715520516731952469711895768040213783991658302426281335672980432903686094989128822380808202610719958867562072889965200739330925592935041893581020948373031193096889379473475833817546318806174792444801716117708072621882744977136295154875035339573653568465173377076960025532626310686150379982673054315761203238667864383958029421559499816334960301177010658427754982911023038744731916813076255886887049609982845876198760486305200809962768163002582434256957363276674797813416320683963064691046860981522310225832597404886486309041211789148438620625552006978614512936669501552477423216545184595796739439889928431542179732803348567530412949625518583173378359668452704671504792248071161301349044210769874436199709715830432651739567005627493693312918413083090599809120959657290562876585033475905398720215316343219329276434147155599431932862299736871540215160634533646110758830871692801464641827362364107723793287045433762119952930889168283847098940270952477353305462777163206040691510391053838253614624693340968724451655214724978552259615382128508080163177988451806202477820105960837913014532394895997414309797302708810457518614006218652693907388867588911109005749171262680506602438447355736507016252217316957523091204052860485893543600507431219996237499105692382602793001061197626965402652506254526323396629529816331199220292690168741787955363437590471685545723875326600946692140778031928296749305254895010124846668738534558494212843557151949179350970250980211104337583226471992839873510619108330691863774901577206607091607742975483901120443772070224692528899766691372549039820389954716240510165042896364507523196057420062033576076798658154124739539709459335709021089032343374326095024276582447605788950918447323629351328220453896137309030430708709108012693820407942343441142652121420874731897422772498200246222078428197426287379620772192079000146524722835516512064355846795080716414911567909251935235990911378090709085576064894397474902744633665504454988848278823290061838134603174045413012313864236034610937824845591506399969801616562226411145468147183903336337090736124884327856039801609947586023660734637893698528346899327751557604991389821505955483429792929863222983325549594345800102187030567114386115243049249707849625622890432522181515816825819691847208813145979977665310736297748150012877288742898511650843430174804966808069223367038950631265155924950161729940959707531584176061355539647751187088545923883914483661745806365187965141679457111210921386340727105281598965099360707912128537165266844541675942842922266815706412307247220994812822578731463763487139345849435045060451214735037341913698572920792262934446203065252989281832796183851728090010213773544474720572674645591898701690453904054830126818243865881025823475799443729481184640153649260009421306442836456063806028675175997057066817870462592613095314049144898621167195763686636397906117941472819332409559443260884285352614372345325499097292214215074555406900469341433328598827705469445525261611564624680321090229019606888753765357317052938741987743218314402994833669163370055231575867491155657512477434209466995342569928191641280818901675336738415782886906768543649963874182343694526237670757242443705084122564754853785208119570597737633159238196414259334724093973287336575465318320601121057476068543062525072827573872825116906667439701249829805192507521914368837434071266576116243852240318550857854207138061622093706768852056593848767330475074651946537231241072158610436160332008638014970133667444743384845994871028515242434589610518319301167461117626665897357081392611960194932215398092713739391668785900034123532391862247208007360159501908749224368598288477709428353799946713409916683557038209482625094262896894555543828386177865074405124946728845799129895782120136419345461430496896247983516628991876004677093564772920365673985766945238740079270944233484564738729352787419937292293170410591405082741165768959103568772608487088160659708769915120254634517191087566864978866656733541074498879497257764342508530440958674386264469116548315913554495994029919367408720137430224214892026546093337256775979585400535058558347323961474888212213444984851568762418325384520375844208156891346142334132560582741604719702154490259540336078372683366270566921205889704172467042747247902369197594020941050944460713451133821069431277141900518852896117486712095622417335323993144159704330145412144440939556307840806484360867916425002206223852072927901666877518088586951506168599388827357483371748775810823682802109232523145952936062169338656546703595721042549891491246541773320212220495141767355591154154490426638189649323802263291540047644966412710635192332752917352244153330090933599274474596121146708676785701051374314123881312201586042690210983450010011752301744361513199363425072837397427807760974884359354266392718288596984228695567375509638782501610724577699499122804075605558088100460163402798083287158456125572729815683629996423371395690876146002190081532547338845460437886214873440254038139055508162086349029712069652263449245282094255594793887729037391007677288626903759305059462802436976842456761183748618066448349685984897900894974531950192501747898880016236447003166447958357538271784980203074690825649865091709572534221698348178772350869307967180745214830133603815868811149079103316889922776741891936488164688877245762003810202209199261145868842336867345212486005005058374195796162502882268834165921441636278887417642303030758221281738067320603429095285685621254734358058508562005432125170250224718294071963751298400605918589543816969109458418068444433234698364187130345727974869222425657224547276358640035366037994001285877672193386693107583585565954897884758438271959969155739923500760086580817572118472417350996871959087718988669029751102108801575120246001927047880801642095565174127335444017967564389034734565454255767903599242638364802372846253332673176595121534728346746828787687368272758137330858380197107834028829448275385964217462644763451492388185593574159907218589409022387094117753656890095033555395998915297554274932208270363345317716063088857634687520647670666818712229795139354905033222813864459016066934712183995231437787929691659227131734833162430461177667288281389936441732513546328287348043703444093874786281281256023816408742564966094380015459552809656153783607910667465920133569724480697044660118500034636477283353921553418865327611085125824412747117605051644191460533485449807600276224151578174446075410060683547173516868011054768714309519608593325776017019869655679793094660929645102417033702781147070782735861218652163410173743190750603478836906943205934835806445899093965965500622569695160382821828804317355234153302706647997768880147323157049676324047551429577349475062252442645199972778224604006683587764314284436551527119968026047731483315712775667726386996567163753914999790886882742831256660854875515212703414292386819152851278003997812625264843696879272229881794828788864568201176792138990138792211546880319811439331941886934135273239974047148655695750189044619607655854340424630362368502706808637965052192690407072086002227312399748626646838227717134055670682804926047975065911539059411871984524948519651160832585415108687070263222056069483380843437090949948484076333599568706672799647414877266308295704188650239936000830626763437181297671889285942711921409246089608239015084769054582185504502863056690002389813492366066888879784500849480641326017622393397975757349490991692631909301609559838328612327726869252696199946873069891331481768119034281749903183332844612605834264615308549016195793187699524574508087163391425250521172343732528658275573605376488231882053577588280135365283634167737751425454161764809648266369595648393489122060778871913128367536097417080698526301428977633103586920761240969929260789652237796379810744438790262163767405484241295013233447755622510637157561092438862652880618547716127572984186973929694480771239954102652603260601089008448330112585816549852910945790096175536461251336378216572039666245659551106366951148342994580084924866987045747245179225864927805650542485981683135149679791390301298499232118210416594808011577397630086656056939633532235582528062064098422256764440456593966908435219926371994466875849244518005905282993603762992632163535751070515679184774762036613861960198919415931876099930025577185758537177647726550915900404601746568116341707275600172050114575803580255059174021893334641050981721591500713009069990809431976598805289663007919059743988994239490765484627191518550219452530333671965405866936835912768225664868009149676950744595074271306184260199586454767745823761302067713949223206877796967950000539800133078825083540344234698024504943341958720338887797223886965372707381882775077208502722294890062860597201303335994919481447304731269910411267127825003945713458942996559224834500578217581061239265190233638370519613325095972801189249059569852015496483125602198544413203478767344964818797678659155396557993139095578638908107356471976333320608876164664313390941224844663310117163606914908514466395485162403034530128503470057780037228863023407127151567139096693330054579752133023998361803270674659251502782711131101888653666974832858126695967592936440322922090272192004015981354868502260242129381164347158371125405250385796507113384502598552540840493861194220720556113517446560158996995813631640850363448869382284843114027512428403698230478788518570774629698077367167287382180884029612493268631307292235213107716328741460778163544774669108059703210530015411745645108406037191034421204659322944018205612283110548457811662261869228829572497691298235369480963382625491252560765828307624324350985651056558344729232739175647922292139112952941894199739957236368146434251138258772289750571039931382951621076864743518617942835375710013106925801038322079990108239628462441400138912763041071991318343119734130175750894533443712576045331634510608007241063414856709468883147382308356098656345116061079941853024225957967351833357616281317868139177497670517759291863932572189358977458548013149552096158508878213372928425736578996590062090939836723711690138331327511636338523313965636080387737443694027891525025922339693257225256850242969382106316408191457538618348949850532203471164956076864946682541091050483506002650304460819702820279485498090500669070411695146364658126341335048169588659401965833085417223991048672401199155723892616860699076129398245279071687090328379284424343190760425604055624835231049980122905762734028993836592331375111824852846344489279360435103078135768072588902358805850855234330514072776257997432012173691580028544944958421403156380319428613269995011756740101544346349247048805239851060135920658771614015709130346489081008959207571607483265308050117428268345137568224412299464202771237148536334413569667041704549054642834275993777500251728702446581500099599637671438805850281526982316877131308619461101575845430714133055123114040667591905615694464758770710614886798144769948742640877415792961536706744019634779230722684935829091090490441104133191941222552622109468962464829221674919971222305327555585795196669016271755910145542696609145452211961764808442833535966342884826229513928176210618120327165642904744213526131457918299269099394256393307930444886337402084217531056173959289439035132856950194220225224341567072314335945967157670753226540808880366036770258999767844632612055847965388374890927169042130865287214080346608931890074223062131139215037061824620919215401512356493979720821197207550274272346785186079440746920540629105962128626362186723449639805825359196167364645942084039140174483768624985781890947153628900742655888144242902759378343508789830255232169189623940864626334869463445191673971192941239612247581431062468754883015689098682084931707553726031323600616824093577756199989353840107030102134903293952986537487360321602656997206956137757094124149785485980848090886125027223613355135732291808400948562211471700226956209093466599088194058170446373621494400269999543278468353390492973226535568136580453038676075787859621507426108643224249502679916812636878518023883739503754582455146991269954497370743683723927162902637472435302146537362132819243715142282998514102976930521785132723019924268698704579026863414302290983500418144216135866829665022654989832372973327621304558782457494661836710464615149737871143389498172890664140461600630708096652576158250724816518052104854918124778105428295857562256159361218220409920163053278564053203374621167608109483568179411705770189496814676193893209306018439758376882382629312826394559710821302547909112033879918658414963847832175834722143970853101651473782800091350853442475959424609637812513219575648756710930121512321000391745985356231412400722597361323693398803829895352044166951705067145734490348300770800886247334826693081641848864118201093629092830373167398051228757127577745069628028642922258772419835158747283897246038743890364927855339078131372122095049423338750498176799914063423432088197246003839875132380524555277747812639909710454940067238491515748636982233790491956018559827468560224970416106126717299313834399792052329975248102812168225322964552714622329965958311670088154528334495940840926925821678961352209030286803379618410794962951687912853484193217805026516911638084473093815428967653447057381619266816658664479460090634963657337048297206880329938507324934872420630630307698572887224271358171696914283721735577007783289573698901634922620293461612610499047010779366903521176665026371992827894391264615011080657585215782629227081734775059243590492687433137444502277437871678134129788245883916810434064010679603599278846249985320348184498445164734278543191557913453104172068016359452741216238575352053371478647289939076744302267016109669465286303401445420334588903971270007778983073798930667576193323447265295603587221907428217037125563614410778335200027850050960887677137575779045395033389170548337113330140751807783029141525741259993036994848740543919610570745783246519574023859439397631308296811546830171896488871035242706592263792820798884031291361615022110499602392393626807817771024090658198679509451485590679185337980224101717747760853844312072406281107208533673668993145879099405047693964314700298188693407664006884499349002345378289770377199833925409924567796422882306650677850950057181564676900583040808354427958815189307674365016025832674903347339070937609798772353143457073087034695284057601680117206197667252183473876310281450601787242418575418266258264453347616678960749510428440102303666875947781328665772138226081200747063186134123877834815564578398579659767351827791772484432664769120737970946096800490036313615850716901141756395553643641744414595703842148558138674409541481489392776353865564655745336518292375085935187600627587676069887685993567063367066189414196861610345255351451567667581825571114139039918452530039046442300929775623934322431587440981710787010589629658826078036402469138465847826215114969016755403037703704671503132780348845177643958933560394632609129742245669268547411710800877341958765510253309502689794221138276525321114576210682578349553580998983023313824877245376611795376514317494577250597998690436026811302773790926343398401611833968253867035510809871865309812993022667229817484110825747495720587608485500443727142643852512394814772269222413569911044223187154000742736811010606019716019121579852673540459852725494962184691969546201057246821663355995674096717868637273654206072502728862867765447255641133169152629615206020410803662752672218437365110625563650239996843663202788287982187925972033294925107481414645626761129345853233428827416542002361472383417929555854588135181066209064544709264631104625708590586400331144169823969542718763729665260032714007764222697048494361300741108205747998203501225970547594599667253559538940567226673777328652935990511263876902460660582033716563368003741980849336259570399181608705530873949322485742184393115381689735619422108912249849965150656379772404105135329989867609770191246598498025321281000105758421646657164578933876371540702074423749311017381448174846384004784145011532258724566874435669478424962711353912917186726774841719683287137458694141375254215829053295834015278447111917951871128268997745656720541108842902213104099511003330631501061651188580747156601352757937044061312011249014238491039573191236529259554705210138152862247057677967557952560106459049836800064918331220167859766097180841771517907069892396362292239003407814155375458005028635598485175551431769131642401875846381532141974402373241208927305678941053622776377115481699393703102395038730734003797128371807257148193677983297556406273993541302171664208371210547516914324307114739899522520282759743496418646857566200326997165018688962580042322662308841433080057955991428366841139920405307065437238829041461351129169327454231177674198753037152102784086058327325246343565230723900446981638271157456661247776931645744993510683587919768944195749954126288462914497282652604708581503602984882650714912718908222919639007986676661578091818212575147249194623177371169727093483198563764769621750940266236961204117553036016659552199607327331717906329850220388157945767581779320643002731385985636064502118110162414712576149661854654935179031158472912041785623264415501977306393785165911729397627448509239395055764445181303233299521458873776650806730135036928223461289445673694538486271793921012041863710218830898583217994581258846375947169212655365194909348374550733956126370314608248056756585061223689095522646231210036437690256169064896307692404742231689188110415208087068608955900033843109200954300478494958933926173473005461316021116174675721712689924239995428743085454700798910979868043201390208400681755033905602008019197462039140763717913373291005189315813438416705943888648060956361871976441884089684105038262173790633057732178258265867365892021748956504689577363120548380799648939209593260673757753895069543565797461227302499592162146258250693428944422737384961901114465997832353312182296671186926913721274103123276154725242646042369720525466656981600755165840712485733425772973705484201560274315807912593294884780717420367970824887410376865828676930813698221760839510081339938529554943633001093113543033572232109910427340368099462280375768481430909903685841506935839732387300690474033588882983884132928847735879367407772721908535442306492891250403557366193318661031236513944366276035622020234964651795217852830466985114715894148596788097873432964514188115746298316664103629094416536693195060425278509562647944309573675305705216448151538206491451662334103652543048062057806551492045083440689938178118357512939101427751527955316988635683847267090476302335644955226551466071993926594678954010638124323655514475858258658203568152482956425309488026106761706622820193170592354961627505217641851680737440247310957589226315159741076651032420199348791568073922207131498423951306061217777442732490888459107566298436381793810414837676948343602050301059932358505393089125285868476679370371995154969592329052071407446285852904455149159594444081661068206882011840049413801948280822478325566049103683093280701139407618716635023287163590259660571216765550992901650264721766443931985817654580644792534282152234582180844765408130314049781088522117517225187931189194845504707952192328413280118569367559377066946346275852319806009300770044330994096438309553688735148771412534071701137082738857823108245399767399298590067059754160153217383669070252047192033700165068727865035011610977324426176322787188332054961737081398765048683609023093559150201814814616981631360018170788973594483917327982502175746940961056746188832506752791583955994554642719802257162794971397188903232858111965639313576013008013741067836400490065744239375102149190494763131062860320062144329528475532174216353690816768829011041754943332610837321578651368266063402263077608065960894002283285963388675296030752812505073622323083232812553888634259777668885840216621428653827108093131037008517593146765311630671166263555493046990419792996590730240554663235090076215250391272976039800576846295588841981103571217405554743888761612494398884006166957155507927085744420584196774372152440392963864937008626753444570312082265421432712246997898495489779144683135938962957880683512102440180280587793598316684687646440306691796416517147363970782036473529115283326741430438397215101705496083853880760041493562290649685002348832886979495192344108535079038788523394256567221574929644895786605190224338061811207116915052527965563834739745987659759388322286362082009630898848838438291385575991898884006074573953996878137063468263419871799227185723744045677989685892373041538327001955272496421978942604718620448830500965224094656827495045852791159310738099376046859040533777563664896436267619607133654345426829731386593326026733691100111730205214777704584297266150081155148781829720610451336697346993652214937135589854420968039587323109132100561993208417366849901011721930688370790943073586986705622180813810789357133234186244635783388993058062116116988430619116234202487985891050827677630873575439910570449994613132957953168742970630711320858382822654429241294116548194525521004120441018276139711398257058152853142689885116302935070079633628052537867145414145931169309849047328976737719093156131259337865406246559259758438659226550303966156540623153055831396107021679502918451246070233753036546365124653178755509996318847001995136368585155979621333983805263453755296924427428623034969236371155928014741000077829491484221972044331162401302531036699335489729402747637625103825738494724286004879481926329438781083201462328124444073770657185328919557799010945605012261949534596089282841556279239906026143433691806074025377087608856762762667900230935336463402951909130530983904614155425042481987177338202863055586103943899056289189781202100705917597174551866295696228382331262429548730363717408411118918275135412505747389808534133744177714654449952240960855222717416052033254051766411352449368438700273449597541717892412935780275236921575716826522686869845984943369816439057863503573036392234617011059585080338344295476868280036325623109819079390443521596134256414358071887327302989970117052787065583838332123501426967655795390983469025178105279419491283971080959016246154229590509884024061534301730107767640844573322234629457277432081160701993068826474954451100501841180072676809630160022785715166891285157679281232839116424195727632475693796502146253411438365155521502756185090086524163895280827791947983139716876854033751192665634845760337940874184949774540024422286298661940979948766590302120606293452075224645360210633899791663106576523339070947654148051709314182138604835741110778052223814180894929105609347101228815057398582229841068377605471179900260847866163973098872102791891775155365721755657501444790410680944032511354322500780339237137650172802470638122265940731835827047697429685422644617181309128693886796270981646581600014938438158509094338955333165297747390977905797806418105506586271527710002024218496666950698784751542946240020156507076346963325360447179818810628026356252570813249577126396873567122921259779954522501515861996426982645524100888365053958669396028786578699337330181277302575043677791522128194606326231460541464105368237380827058220840868615764796082755654334632395844865552469919594312568608839519122220266800251746356261356477389994070084806463851830058703532747158333489040296658276658427318837669106433758436791551785084495210303618328929140599305821940793806778940363272273042103254596277882633307348808073559649163665486317147042359703487911672364960950209148824250292281500735213903686530135732453191920926078857938341884515495102563619897157235415066343173923008387164177490314793313105790623116445619131445995187924657704440946781877474459768252739412914089823680986601150524603762524026843708568303591621015624940777803650951490846163202403765354589645794469025640807812651072329861011643791449185130403886845074805215467912142990035528969322496545314245649038525917729079565444205957003716901119539991892786931536110605506608021430927698462973944777581121704782532885543048393019413263653253193516103768455088233998211131064276114893860696636796482903877707412522103333708251038359962104061354018345728665927760311290373943664836784709930370208632194019242536428357741297389723756236059925528240962782899097785392441533707628369787452236637262435200162404363248117875279601762294346570482944074597304596261283797530712147877032782258217014682344470271020771054235878404588896298779228211225959931217323237403714968183590084438807301636171112485553901964880940150388661482211287215356609382917039965766123770862267787650957343397896973803789135346432320541741473872199001842386157314983602350853983970684667213219561047019574641914157517561875710703780045028123250692570911098146850208500273649229563434629313957598853851349130352498713169419836074876144931555986104977908573555966662131209686054498969078814895054123617199821559958701849423067343875903175028189441631564826835450217174514683841519836547166143221229583104884105399447582642485030048640288507084197268085655337159393553358663900879323077190844543839823389974193582467938178814075713598290469882998816179390930419553829551563821715018796196617399630401316208323169836185242062196777322910190489453511619600101939365592383436891061874040836552374780448449910102891120655976847086954075219009319080211938152817720767857076410166364973330550775237954844587148204160346473842110479375453669513798610546489339086380075599700064037776251242970710902820159223324828489308190900051716428954446847178553452968673325634661783682167965775764139745887478876012306858073219012434491104771922852891717926908072241928957449659923988214390970223279150033935085041385579744988278625513294701021906581359928309236989808936470636943248020388043543957792203687526110988911958854417413299461205119633399278019973604705704685889351251131477289341218769161134705633841536468619241940795850390892072078855438042864503626754756984015305950951071791513646942519395155351210903280786566090343066152998621995321793306419876988155648139956884004122303941094612504066761890577377136759681674414710303439751878217891795968753566258609500897871962081515092940444452221341431804246516039891712066523665870108050131872095391319199057522671690081727759923691502381887696137670611517244128943629616289771619249125781600068846008458518029407848955803761326022443075397290606275703083542959373013868255566713347008101402899512842911474313111562835889374346367458715060693276968966751556398419268825655172676592623077126456213109766904553207974491819210087462963149491170933239429697909405876769839341929806638377640757212554419583255917183099589433870057261019282274105711819609071694586218251921434867500360696894449454274750075027639539748179187408155271827941247989875154831084222124732002546034853897569809722615387884281656248857539589198395959345687768598586973276244794725887188215931300880468622332372067476261124624950464409441400861882269133347402517380601172075425294871913261388794046956581561600673254645664379048866018811408716860930090515931745529748939382642341381513118357689138490660691674290470035719850329963259394163253455821299348098233396543822213416070666660610633118656384820676709264685065311410073580497749900716747821956349160154103102192907983747497911271109597724113273912246744979817008225618387318145992356351578826259148869014548985818661968917071812313747272472861432509286441859024860852449901380421441329366468761046187003871004213202229334758537153640870091353208819383670299342243354127542809725014499463419489162631053380306511880593913694319022551151920058547211301070997414570437965382382311882121203330248337052763695849280895543176422752674426985719919393567194306890396142330140433559819786899172522814517270288264587271306817786728955086053010127113346026937735786042709615574834427095347199829804472561359912154796511358352154023692126259453854361229448736388970438990313448219801978378686450575666952277997853213053514116190122665979508990306919818394090020239885044747322783861349635354247781272549337522209216093727297897700286196971056205308493929222613087376542189810764538307342351488069732423317959578554048838178533782061846927738938234106089574492265298512982597650531374559162490366659413240923540822226598691222421470122437255972205661300428770060740512332677275393062280683699150256714519358604763935564894203987927149597515009894210923879172434275310520704816445553805852960737351006409096153035235916683985716117807926088270171993438891976236774583658846132406719438476443760211505690884688213263422906858229415307982956495372161704373030422055475744852646977823248575688664364930410238242563153055276499192493234063387531537655636260498700118296941465576998019968396777569305237961671300564426022824790547396058223996902513522608423566201984103250365081630615045959064755361837975426378627307242016303070141954177986867008952260304692825750953165976343911851632859211137705301368912850462453433996012546991313442884832154575603034979081466624352958936452724281600885198938879404008292421927557567445950912691449250109016757038958800628087751633709295455291878440400928760592388162899090573893681477054459124512765032880060978296854399690141962621920830237892808650793468591004696657135747988682036292129087136859229692140505825870741882751631433787888843017851126458132971608791178419575289102905853280196390321746153524747191735547332565030478141563609285682635777857126261402907309188527646189403326079821958884985596571661550543361393292863189479016484295720383571880410355328185037028715709215750902954497806762093836050759908707189316495923652045605771212393498042494253112998943116307888776532764715198713438765495310500607591521928209112947134803148895758290332080622654398430134462063394095372750767319103892484510837407238035528691649698141979558733018821696148119949553896810866288452672893823955569836175629698843596620692109999006061893842590466351974311236248631789039460198976742082071491583751980365885392805644103425331120037905373864380848774516022224332979630279287799100185036547913978562189752680667896989310314076130605384668320945663424731062490381327972312483758531660457262586754163765291261791492647465415590049379137485999572660651352544451329659645348796333431884935848048212032213436532931046336842844262755364577926255397081817042511813761568837676226958061130364736008932882034977632574688531362802440726795601842490519869476824892423660698283895337822317895284893372302455251177718955124324240140612137861721479390731350214504483877693803211654160293015438433268414552753092276637688835798157301410134775418121320425875773888995313153625736284566932031578780612655096820688359499454249342914331092103918631498523936080001089543478963001981175434215219029183362702202543447231033612905598241224164899052042555931583780494405242348101560443622930056380673007773157969600670291640096818291665189726755564726481281538344241677590113858694080183199881525785232456748577478806562820814361803625276029694504035907790181130795123848489268689324750882654455834113601778815169530978458556929809253394861455248437772927171377680440644406468860548355107662263059861299703228259059803895541268610133730503330489154023634905883857521261414473545331731438362874864637700192164657697267566036682495698510712504272878051905545878145756184640691094450651841348406369461288911182278942133481513840821968818203479589987031792272209598900289249881422606237372148960050655116964102184876204028890156760458274170560767480872034573490046081774945814504882071163230831615946961471577173652057797375905608003533294277914768569315658843766268484190905498750432858662993859375534314319346242423670847172274860860521043706292158350206084131562891070790254735401332215973095113394253205436543478779126435314993586675440913829363877043852466848247622969872119452883508320894668328698510615784136352507535781798337303468739413382236886829351008797045640273414657633783416470741484165272125306166859157660024177391456531946662519708918500515777786224218090209544126799533516818248021809941195581425682902247039649290419624373054872282997440532739515948948565829894562263838632894612930870717086849457925233661738711886789862435471540379234586642959293301790395148878849131526794492363837505001259543553530344504862146283054486770140426379780078122818634236732864821974593891963406242089421738967224759300771742745955987847483770743551586323608434386211419706728464401428795492064577532051568439670563734395336255841366103093503263284858782185241642270491464996533723331896693494374428761406833014768871655615471267652006325462700737267246991958495734451985382675568260131742820096467613522815461365940126257015560292483176819744036201928722535972948005934476733836975562632400580936050654724909309420693050046209254652748737091310065760989786169353313130597712238622666838707364006422536690533418941576718027356710833566090432902392620199593281277787827887835899790539433250207905765315054349287346188435515973466854924022168660810839397264103250510190321457676538598022541150027405006562451193669245586902064801511989950150040991494468862229015477077888107870059735280866464555473621249377487965066504874053332538829262687491254745207146135135426338741826213418299425657133535687139932857854130132140961602542266993826141371101884636371160280438676817971433136743330255204183532460938827238636212768980359826780534325254549273455917187976445426604120571359353962248620848850729982735043701861568351544090309163319318201014389712033148241383797031685940419211042754743287755598467716471643927109137409336986069960791910057630718714613497507872534838556502315413761235303210336485817320832086777600807171613269832852024305497023149742225436009356674611191893543770928562682423025649264640480791481750065624902816071495335918810553442269572023294079581431254903747324252496204777255288438514907675351220029699718175161520502948948661595759382303906107410703576841719923362797002887977429135045642533909943741229948606630657262282014052790653550942507328116936234595080154689762046593680308485190987301184605032807017585385892815999409102704325112998778612763305252555570929934614097565575592347150629283576985162532755609574826001783027898067471618843375173878673449485675056206531932355977983117994616440670238489060961717959799693406608792898270086381391614020844452121053514942347456079340952834780873848977181059049532868481835405653416750556239911965149195565217627814295498879311232060237283616865111510015556576131496318739372635800720191119716325171966578621477724250766678983201993651437047641966370615891496185444729095845107535138363367407916090955575002619598001666482118884693983447009112692384397099646802609716362455571714849660312684435711571157899358231634561874394135135987250085807013667233003339332938218415906191671511697305573586715566217498350143939361960709729391353981524510919039712545060756896647775719699268302771941979623209184891208387970720622667442519833474313750720330625569078486648329017281054429456816416721982387844048959763436098335901136653803185708166234557660978259248911338096160234345861319324948386652935371726809703062591873328969327972866213778744874112728024913199174022804419516275054310063774312700875958171447239967766658618790474070022184612036563007069906289683707917755104043102650130164962146134162108159218891341397324218161512083024906085717003496827235976705724065809814816072980414893689458713256246031104706593982764189104911848881540885056653901677680370245452185406287601657105920679167939220607666470312259197843951638533033163795489558571211525013723037880522890455087794513661346056093008023489127072097182605954846808184250190119111594249783950153985306393083739989281495242479336660865928093384541745939502824261292971740388749262202163923574464161071504925046780771027424274520990796016922572233449047673840184217661162566642274837365363154851855615130950331756671713369361692081760073491814797386420149146713488773790595415557412210441255665648794187067345581518957451420345644543889848614647467180597767890356243793135908850926961937156531597036405001350430222659108090387317924068513167858050589785822388774999391675952630396925848923850086752195108953070682774615425131950475894784367318215961629474783625513973259204736262007873754891167573746108668830111485462129149742507234984601099558793591658650997871778396473198089882246292595331725481023435721282839574044608713041604920726059974939872340066033395540088471520736216612306323061067534811881159845707273216297877157961249206761086451306616673168719550612038824111807085582231420898007948543401208729268506353811646794900185177165063033205973093270612168744604466657861030987935426291627451329442284203846309792847902801919710364409814954805666433092839139859906650417024477054091968570395889836328892654679774122156199184329572005232159804499316642550760230184756720329715698952762539258778386220337614153010546746891235178274105364469357852719834496751918471359971589452487026023381461860286013270956209731251166644100657825362882028620308128965553381818050083164164319256117045134516125012230740510727195694024224977169669042442207212655297347111981280246051637945349562114239184582955670662009755070633602731755068517398407271824317420061433771791331078515679101932952903636184738900620027882505810421695016034647869590682630440285027561596385089482426412795696203437351948235000003308187101659684918699068950527300683031696466880937564080994645229836052128288170972631831885087047331190492680857427879446941108907957806711147573785629976759754783164888760586662521480966955954549335582747207581353671572520894222258590040973980683783857898369658898490126724042008257374349566632552119064602390507333263562744697174991681093852918463326792042570682700347688793168783510136784139469523769354063112478333777471868264678255249202271011121141656005118346386813839015698549905693536773022222164972498894251091284437998292592897093631227821041178643081055788539171810046219347024707687855770677903298745997252616373095434354024331645314190987231981359288298454372215556737489621527965614481696742363347853184307920151135109219802786490150999375889660706626569083529836069687359068478150611615009117545785628061846766271524197524790588313130393589295944344215845565090600837903013814843996234536437745599326077802672497379644378094071961102197345438430489611581372158339762613310581502075043654405092932961669755580065649213557119836428538847314493300734128453500265187780291862580635826881919180101258506117942262770959436102627822207423182839873066271861645053442633586298625298348461690201123056542868630675852158748154163989921408821873806825369951599499195240910185216733204650434990510468851963562764157989341487867648772381597728336952115423593852824130111581140450717740604031861613951960725501049776178212707915684533325696514004490970795285657734981639877916625758705303921842889413011259925342439212606829889371055031273028197926804139752126877829551139135880326541719895119495749292833173566619605683001407928494948595397418624904499373970440850299148615568515822940582242096022474491975528484073720373934319878638328769149385801535106649847453331569574916769473322791240525297322843313960663990697465000222475875465545339561264628585341452263965044805187851060487321830703620762309154653965742736032800505484939706440452341072053322589232664012405434547068156516802994725700300876784435097642422607463358604560123304084898251598832901714789376516872942304373555048587028345343286780164510797971984524284753479966668909395263840431757959168773791658937733908069647383814930733042501318155786272887104897445863362517724935932890387794532201086802403478849461002569989027242240776217329190059136076027958268867081387282556867094113253606528233551611450732844866491242605198638996725763375860201593324714541634409303081121311962069424037329518761010299342203612907329359839858623223050703929906318002112834225257754659874219865410990972936305360715698164901783964174589847015698715159879865232936191201156930055834300806696710668778824811192368006361849918100558094764977749209833499352388529184381315928167287247714962335356684793285615641258413709757097046989395099359287106680119844338196217073294604370992755489240148798140102653479009136444814092926275715565264266975673502500995820269730950275632199435496041744115576567190884638800532940825951108097521454265245098594498609611030269512759277383477922195195063546220336357048016244613423631240963274574755828580463303083552923624216592683820164151693691339964745776753554033683384679682329062080764073729231717812203653197153242765302437925984647863212197460492137641982601167810686642175670830191573846742742181319721592073285473164175093418410689306637481438136542453018091297259599655792544902864763351299605618920100676054817059734774809969586228234953156017973152110276037076655613033546376661286422921972849223040752572372542013534872995296451538721137890692660923289211245784652543092872384608435720131149220040673043849552628582553442047642664317608041797919123987870121137707962285406805642612437193217537907439910974524996926124116185658762111752769572426481114566672823947529203402979708924927198256592510005943439057072199375484625382015759106470239477907422314056137041072467870253531276732691304420896321673571945497808967582116021590112408735387429921231875790048460220651944903794100580348063959244605826271607071601283427710500502849552355737964454283716700659053735545021376971938998812060505818426807600844942773540137717261897094680250470332314458939951578084127125023526748177743066432268110541620653348259076999825714912521648454515976688604381690445162131114629113340312339165049067308673836361337643540501891805168938482046553318878050239237044641162896495928425176107936519238896071339654063554730891190014591892554098780428211199004477879007228111899996334890477421928939306184327768293249058334526501460224772395445685912874162543915362909101473373278269469506506792185611275916980485350743019138732520536568524868316791514606922117096268447053959765979596323848838416315720523149239130611065305572843023004310466537870852635175277852042651549396389144883366053711305550690835564513227150368803395896143864916123424162112159780165076205756275933459816870483413398419637223133022407158743636524409332659874999751612761454411849753052716134651574053869529796244523321338505671496628118551274325539073647923472445976344588987941554778484955068544015272400392610267757985616935411927163686819804007500254570774501568885264762822030076396701942273152478759826045001754954626781750729724855806900869991616713108983606112518537953603618155029361059120432743143627914095860590079183887604184502880127123044283020522535992443959427033327930857211136071675673711299573273831788371457335197588302258217111983699527162396803003871053335444745259389060426299489961664959482942040198001229210177925472072211381069852252875843422129765164957210072206795487198590787319695309663623384733586654594149785010898107702241986429880615020880538772505853621542155108559335680574252218386481397819959862185713311179436489603142510443500993312301263125101039583622074162301147065677940785333578311250160029372175154563974938194626453513838815443036430006349597409478323093112401916839846479231533781540801363472053588322459551187655571410950678964030628747792127258262834494429925146129770672451774760918940034479804537898310669137505013066158548199359319411523191915958886677301867697397930529061243603634093179930102965274023474091699191143728743687871937101348153186686020388662190920139426742861748324563560414573079828952484272597371447846983383741472340273329952152385084526937640130087724189663113946009303425429756067463134911429469596608298965126267533095656617713610503952256000467428001609867583638055789555971138584540387026264784121480380537139333666855786055303493789202349207476187934875211361025950846189347572542213941218159871607392455193341672861554930835746594415020736303415322897680670644185860930401774906644478373885328448671166261729717546992926984336256919337736487408462261008215427092361205031648347114632903387177917654815296679712132422894100430953064178467250396536869459072709268862964862355503972854917495089343221240655120146985159983913564990851428016350370317458032824023731358308332189206163729420476408289165765134925564802264711263566122069996021356099729348879892495034289193334989775382623839731731147994937023302406853337797315072514701394181314125914282475317199144399445437897727955374818647541237409293411052126043347264794022932411219836267341196656430274533298282372029664735133048966169743366371918984169535056525288807690355450754886432753211237875926733084707390650982274407868080246460450065956834357151604560858350122674759654901093914010040619395529654414079246156511534743751341188983672060667617768939207492880947605279009601098832918990835393410942575335214742533706772258788562082821161670587764425870194520448176048112667607173697059029200759841346567958900140567985928791575395333481827167292288100368257835716718044693894063078510617022852795424231400968089293726424021313550055011614401069925502476288004651982133038260035088235589138290534282230359626315925160216804713057033415058591101608715333294286798360585077153405549681681803603474796678721445451859019495597790643293937228561578223310108600460329437637134138001612596078866788952344399106414812110113346278550306812972370565300247282837325305815572408588821132255709572046341513424304814873570860327000206494105392340925729337918873727490127686864674547764374720371324325627221402108804432956841824759802294380104133156069355286374283987495445588306833636393558083196289521040611222818200695888477946308777384744242066772705828314418570228312503811403315724175896455049872841894180930185681756972771473369789697018272996436202277461515599570762390735962731659446869296203630783759840161947178845927525912141821079438327842531365597113737123337785461537766684276429256081087987910830723749510781786878015201915144889146064421848734314147792665703898982660971698525965984821972648885822427596101434340457459054768426820732711066697515103375357529363618333857486832365828227543117034823244272663035547759462324805903112344894379668734687232642292547879440030860371775849483655444588555917676945249908207263730075295659898584861155134588869023455593511678427119014911331591989338348753778490059148882479847173203157390974247084681266353716833437251706546996358133386297801079125463337131105062504841138043896258284417929880870563626381970430894447276917667489251838619400606527162518567756483751123392319985854251404761403036521013996019122375279258034453043144081861314250120974431998442689663162118985000148764352753373256906777796066933418107402469798759459104476692005592023446965294086451309843606373483502410747761649180141343591711014174498165942463241531842815788459278200919768681569177445521248004515786832681149744806673010919358591622571203703129283405980485018855973560828588252715574471267795404472780968733346627732735461490233584393673120239098026505078804007560582632341624764809794067911433737039804742563672801147531919701905641675043365295030176020768667598534140351219046344776323654338626502634122897893972907960888554183757710723118526483442229508961211729790841089057082992444801248776816911207959212307533031137614573915376757191199531839588172468297983997448914232163163503195176579802293555263010545860418868748760268904568470615729681494705540399314029988483622346694125535193665086382531430829189959967686723909179816715676489292166257106945498375463424572487252365423820832709989886243914865399435673974746798266969590941041214169758963929655077106668690640715558005527123961900675639045861958066453609838926994502086538418334463816643099124821203501420167710012155684594198525883550163203096626699558285321149358117455513720469327291255417649405151644615285989920550440019156638105785476618299989185315174187351805493898401546332099937638894123209528009687310310932392153228157110905775443674120097167363970541454500036310328222589359936848262723584160834384090835460588664113204804959545555718695367475283469361592885075762848328129919141129398370474450721990333086504325250912313714787541858549571708420248537958846873540137039725330871045146920996540138396235932395098853421670153826765046339004519314118584120899224857477629079285705797937975958314174511307663978970177536297222094232952814138256112899901432092335934222762800823666713211136466170201728442215242151882282807848647819168342636593682484665353098792605178659914725680903988691213186295462241910394598867971821658647923724611376815524462339276396174156988372311297450934357776418659215980941662970366382143744281920961949220680251857592092052665133484444964133578346519081728127400916294483268484557930010613605065623534270198211989413242292872342395482269921976576101731345574142193264425580461532591455938936865768359722301810112926368486730545847887972309788701785085486759659197987644042646056660017265361593323001570849921966794188984907715515509335892696022124179688671382929349876522175146484566716070658325272199102718027947440117864977023500471797984662952002541312717187195993417170224084474756285129277292942865199389497164860065410823091113141322010149542946404695662159854099606848663375900993071048087824727889923588867223599799050475283371795121956136347964997781432747878902812185021194674814145875996178867525633745649554741520144871466577321152906502524801602200330401999332597965164470598322172712050634245937012989786680707352437209051526697340060005552620119489564174394523081173386862279348877807457241818134441365561543479069680392785752532205645931226504993625658845229915260613476345741930577450917115406172177334873408757929998456537737641028742059252167285890708144318117888619373123845057575110975698489199848090082026500841753321461924764515209433843543539936795125393337779707943524204941806434974842728809557159151274017519405826234554304850955914303593940959098501991894213313249048831834739024795724475042986012469937692551173393808448445054803627495052748493850249978065270920748592734652282096820694348948849691191479949062849285988630023111578717039486309287391395141803627614472116822190470532829262844535032835352695752248663697375450547954176382356480974073915682139053135239945728924790110930303117366612156773443435719873165789276711071259217995136374861692673048282183831705221282930700373655207518044467138468456413575189549643931973139539841512162932647407796857818086011877728936725116149887086762128274794565153188548187399659567050598649502338791905642839390462561605576841323853971157373930557077233179374667056354667794674271854739133435618523668359447212124361488682548904798196520807243335666261041584316729710228789863140871476942386412114509662448680931596792558513818318234253176384564834951333912261500263886424840000352273473740418673759324487734123463059198030332618887161751923425710326487620462711029070945203083160158315704420212824209642031809894631060233001191752417624659781470035777765398524707618663377253596406612376248045170661749244418122948658996565546409776641582994065150843734065588147378277658041557068872911345588834942021508514074303706083781988254370176264455622101949109591814218299729765652260848711109374102101211122347806529629185514353612576599993905330663851950506685050227212273061586864292400750181021001218976675283869381307800574498367332059318052677663285949943870111692087709446132652472414416198853395640774855281793404729132490332366981865816001415405411417193529780834504688906206077626597378917029705868343700161446744333454254880813349327368122088058340467049128952593387185140582135223661564553887888041594091814170422030819483541855452673066304334226918285022357544805118744308814193809052763015780830580545474885639195490818103007916757503956523548203340887008641216455103843829752525338567015648275484792186541854424783646918112748086367610580787686326588028517048315956961588403182009019051539466030427736092143476329488956100643289446843296333170548666555225940216312698369554013297412394515088303988502733929091631236231648914444882643078490021041445851047157435281787192410124888997676731436754978122108732329844789411166507379785708283604179037849616553744839791567024852426096772891828727267079394054786753356892205114874786318916848576833067320041224014960092705413186369730087996357056954620650299488569852438964273700865763837274487489366168888217468048165657740015091303056963334546254055573421479389466320761110602718611744684393791549318554018048337967173242606186504768668572918708888111066435786962507328157213791773042084909579146838037229757139726218900768221324481066456896371744178908059607305427101978040308038129295532246509972947510857318079270049769082325716766479524113302752134785170612779435555608021819155585867001752786673706252616007965479418054792762524916132671778085318383829923528815358404018959454018586589305763404036515014047138015861694991170796628059921171411232749999418730823990078380030885673348181398930093859370912264939450246088838949977903038348768106258855547517022223756764739329987359079960705132888310969654408064367335636332143032790672313074003966924598685700004931756035773635708788439246952686842221649563053554703002570525300526613557955754697954460794867140008848524933429568983736188353245800672825052630718971342527170867154752947358272230136522023478060614134783998036043593951687675309115353515342169490098542729444744342381642794054607818332547513948997274406247924182389831926943206425269623662888766364221548172403241168457736468645018344887121159094575661885088083246535091901128819936173832454114473970534852702800659872141595727003534505343546106684991024550780951494694490688561785137286944987643640064861237468107295755172159222403604953238895182675354703027896651309411330732129905342686009706410822592254096626231422497945046227655022075947698185088551586939049286270785778263049284818868627940853194987797405800661837673558581041599897968207429868423611431728664660878293120775436489252414957243817887375728752590253346525632296030338461237356226374962414124312691694198311254921651361005084626825250831079609301327637414060262675478670054554457850666950057996034099306630347816049234164680200128702879914218465822571323783266853871014789979018369310555292956918195254245846475175236736674920510390440931108994735628774236960383300143877259841421352389364567121568325974342114884381345193237725545142954931334044650976553501141717964777658961209056863399218337935363919531852280616330767283343633601003786666690467748431117026692089003085905263524989621915590871050409775420192374872511097982007930489495950495204088688219068784805224067201315507523082189833499252361392210475846382522266562946727459496494176243349917089428625627279157808050202741413777547252896363948669819690572462172393649674724160250623548399587994971544084204700601799016372930765719891121123286010522327854247768142216730170393431774012841945340197256299346841425411970961625774370931972634335680288756462487504458364271313436797469301066345131799337400168684374767663955789920390668106589821854809550786304312496261738984585979098561317039764482212482562733843851923479811090837910397071990717009148481404152185679467457113175640286588408052394547829053624442021240299165398954922126381299715757071770989978829675880901679899643221987382957347857861933296099581112008724662818715722445267017394660614199271930041064097297720636911707492652323101569989178358341424970000681576212950550093368363992746802910798396748604626233329477158193181390329369257721297007838520726129750527353529639494029163551234458211417509230529499024472135402585634975046558162672822540523807869736091013431462425936965404083642191035081833286808944695141100087852915675246188759136155653986160168569117332587134552445833654136650480616097306348750125088636857233037361848885698202239841606588084885077347634500600664958985812297558933052189961716987592076086723213716683147403434635929505491844758897171679298551676381576944684504185842568923116548452708484275086084400367033480687982476840437977466460669964698448257635862628178358488818959468820413552730594680670937885959034801764465647622341776271141102596597313358642512384670963318041959695774661446952586799699978043849372631350823985261072258863475397307265240191244091324113576306316973290029852427544752759844779992471646016071289494119014096221001576852346138347296606444763176371801157190005744549357801251390270553259996704008245765379537090633038832232989735825408560215148995615276333509541056286679923377801734919108740231943193646407040814361672063033819794404729434842176947465019624358069195046736446669014225160983908123714708686287360548365948198015105169398462850983774477185006173971490630891590156007270809153553934344077133380441345018374407127124407393596084699405021525985927313585334842130000870028783526832834207689149518938356249965389813480754988005869361716754128657847807366997206403951561996485627407140929425960672545018969616750955086139401386649183506440589322107780027770337848237888407931528285501657744320824469511752981829103230600739508951973261086345325064635288122481541624219995624998682844037488958368472472615063495736255648692624017395049993271460063281202317813120458241780500501230994327439592673322291172681988722378716211686446851592796153956164749216775520580783512312172468889986290842864931810544214399106821617605934522864783535722481935438427128718194301415191971166296733906420239013277646615704838090967179759435646732140531403256091126007922979497679106327183670116553084545440399382748153036196692027852935593354442608782158678232192916998496754766096289459020853519005948712272029329809729667047003111053527865019071135310844017177056341811296457429902594141144113974684208651695679676542171014968496501505119136992209872148307084249540916491169203344321906123833724223457231077713640652501373463587467053600265062560179179712120298939159380966310221806435304255963258262581965192861738033060907863615715192259218665781431062350968280862157994082901945070040001314499396946638300595573133818341381894787998001865374237257699022880450763193398754515053534420991455066648057395664605961167915107636768846370857783843276869621759124830598788473802857424762300051997339356232692960851114848137648331689474939732469499582261276857276374121974559995796319226672919526714390649714808861041252437715567154704775580128778116090235265033555549863456851220920195539538882535123519886623111866121136437714033328508222717876883946225384123868785890329460100881606349101067615929969976865513025742363984240736822643045219898277360527831916715244454745215035975529527564032191812016458410978922430583104130668134005153835506187590238763481137725483363819602178810751297545283446455577115098201308837491504281408123438151558430665052149291636620814992308584799495658172887732910082593756453899395584633057453056780237033031025742356374091454635120145822350079409604071631075406195633681058932276821618971543089051155593622525090878149351890658458545242217771378463659521201552509421605940907147418992004932286647504236098075080191615273741372027157523431755635684431301973740690644218108981670384787251013369499804787328869870958670151186205464473797497689983948238651764753994762968847999195849104691936958354727535754492256142305040874495658670232631558644975447422263938139616283407797146500532202760329055957522854433202662898576100516157594440640422150474036418484639460685705050026981871191790820786798434074503528353982143103678680209648828063923969916265535944638964079423103662484924001777475519374192096508666976241539111248991104838004279449525750443454831130034348874861958554507900244509324398433065908577719353109102400251774335853862043739812223082699474032316060249115169846811209361671000645485389600833835071501216885699881102330409798579101059047818126658195300584939487282534931491588549869013961804282262216858992503768381703790312302333409460162654062505991153410610671137153683743355076655324304458750913317373133899873039307318783808438117900310743923646463242249951258176291865490657715318457749555947438963030021138445680465932946876141826063356967770739344110431903264996277934967437877379446564441356493626333347615005818475087637994935393268967701049958083475932545842378523715436137259197316215658530498578750318609430555619052117844271754571337530696630278340413472900778847174177141126228372527487020202191619126438992005012880815676329084647392753234515222337010764847186417619541170420660568845597024027690343786079599487865464608125963253989350429953473522058229314403232814378238975138685404142450960348790189001877432040437741921903532391772428420732535823603328290163017726336743263175006239745027594816696038188263663262710602506434009668976428316350205964353973864960967538177918970816763147069919093454100444487815631667897100531196836624658257745768842921713362686309447739598916902729589153967140088906676668307982031453453104218580640622862588093803192397228392871078436478872974396742958740532478559114503047590236905249988011827458566102906456329387063737441096423482607808340284593500762395482708441396119466807481474232897553440087379690012869350171037749564512857187546570779351061167005370252381278916811126769590858472546885697639653588510380681468085833739137752769911389721201232428223013221912626429487287226774005958319117434028567551904450156946318699965137725250690113313887818924255352465286497057208554618862523073248284354554186169533400307887810444437339110932657813307262814376041403013231673673610524180589885122476659551609484347142356948357201496655441266397083283780156655070590026565705165402147761698817757419461747239503299077226533223359049976065478317291674965475809521515361317800184044956921669824974986381402933609885247328395145701274953952417345263990774468011413849618951314704398422443175296253286492152244532320382797763018979901274930799200036006393824028420188764605219222296787693105215380180260584124592327678476191985602076402147850715894231653250817514373544395615833000855447838459301835268197492857791430653512459390200797658487857464247003432941224879083133467605245277753199911176390719384870093330523222426139696036171117956329058768594343940782254493734352093875274878912148718558580228752593301111210548738793494858722588237903653615843493329903623019323707655737295754663429441707869394241338768600628566989646626482657080446773121983494983624367796969949722497482170008289951891153011551520891162606155818336545388242608247217856469467118105441712576424710495341577866993945723316336513307982917730536437298613072042522816360136102132250425531132025519394885024191019032035927966023456057357757841210189786529810751152387240589617883655165845886856600147469884929969447476944134386926850561370973802168673030973592513888792289707805571934420969159335939260207131550876797649950121241053099333315156577444689371970427109157055671448671850117167614984155379956729188479366646845151847543110202825367325862357464249247542380725326560128458122665933925554791279957831788973432431102424629303417103413638169121265583932937777495737471949316306658488385628906558775838559954238204495443514171529945319101925638424481702704080834883028359119324204666075252953825453381972294428941422911143338449942944305137934387800239017692498473729359969489658829021482257366823388477714293660259296795799859103453473964286312280812942069039219606172612220849824403811937250029797303950228825558652461550875372593935008704997270121335585856807734881677531092469688290849037898990702672135196680095142329363420262380055308081814898225511886056547501360396486747312107171354718823884058898568523390688917308364410607212798948582767325069428648989123667414469958789536614772873908523065005721110216762997774844597061228981808353393170038106231892366430543990204351166096071534741121312844562596965809110549264538195970139497003909532474392553685522474524984440268228892864317861927765798852066700654592433468879623029415697808104833543064363967613578397212338686428453474785345711284374839662818173740157000502233251227577898983999581998985412593441535330001965842684127522377285126910016259140848111725777998892509782667765617912070918528211398847165569144580584502065272230322999180552905200967121479108601588090700874393641009872940708717071010869183320487524806981522959743166647628368186968612158322104489187432117205246079002282129388039627243808125645079848669240047288423156817213415317156126973375082877604337605321970252444396748756983195981313616897986980803864136150126572315598069621807807026071329308090021662894735084591397944453390021078246935755992977609614504830770452621331597365280085347164543152042798772224280617080911071710552627947075878302800027705839325174913053296647108409672453023951833755729860761286728853711394374359248882562046592322115866566308344313544659615368611923099144177483523637633598061965614719881650313557706762979573816963662207890898520096994125099471657962719223519870020334605197347219075655314370053428162060923198968245787109047638244464761746532091707381588498627091171841334992305854362630045205066781539839233013040453436376091238052225964761046198900413101268401794329241183864770921008590558534793432863925246825471033603229598804559041745489762266901725270611856009636125144243052117418232969072198850240702529792996251230678851343012479854638660911483098784627790330945106985056908011008962984515240802482983588029960140472783786860389004076011258861718059472214419856906081971453682622510853987571593689091026136146620526441553868547154152332234138555613482668670855576457262754319267711550088443991804523576741292194794275931327273926344650550888613994482291085949846100873115874329777145908364223872718013471348476012687634737643979394466620689019820515252253848178909674960161342171494978927007525338482417561700695937361951850498267254932420911717445733478829127587086971827251426740355920526364384211518567682521100242218242531717066513693518869866785489383017598627592650401837948350018172289764362947701816733322138475153972996748912677854012066445402053908536896501237316888509914019595995615716023773303251039499330659812742548178049799704502076792833310047663915134723984080990851921565582379783403787170825038342925969674067769368389173892837919792753852301112826892074189797529378665974467628398496575264973547239459258793772681236013627667537533040612114621088093368252187478971409891647016268699312657739570861595133672877307503467407979242051634688044382015670658506525708153404459554487079727255901818519162034427120589618548530081000414262951398873510137273564814657366337843454842345317442671369953352774699388950964184530059438521592613256275357970212520648918745629980316800406496453194161408298130052059150504018754161034355735278181904839950532621202388332385796388863866694042393388918179999514852003309137662115821212435154321312946111904290117798874217158965115857992340593013604650396424053495220630771204648634287001663618299305732834247548965692743159737640915854735980855780391807570637453842502945058742888915530772607177954147860884678743234458285804049857481004601570992318326499755758755433278540951179326533628718861759283406065542279671596117982473899619951674665757258338494839576647461676188772018664806767164903984653719145759584483617058288580441475402257146385783859463568851033231593176065067819029382624921732355726064826740646763878995412448252636218691872246512168866612739567730158767287825930702981035264687991823648191337860901517206749265880323392672515129116110022841746919925716028723771826014838513166268443194755021224607813455080356041017659118920108279685774748590344433025962258873713131243220245226252205599039868648405410146771912010076183496263765961967675177934547083242322607715738672066534371501557061088154807656489991616080225137637604201190559864951424973419060406233281559581989172919127889136853499333888641715475224204553107633408430828107577458393016197236192709681494600068112364223320088292424169074179530895553195488215956784629468985934354340033830272507569089979192626154025188951811132904199128745133861275949140312639961560190980725085199022699826607489641790441759639580387286325085497990485368126895041953028107203060964309894087929701197964342369142954606505212459433963910558601882353955025633084089306021706156763515874743783938176514886074780942615455752266346985128091081808491995748455277827924651799006926943044785294467988888058810232846543813276496822666116321037892718568910353051773532790827058609985139525699828063786565537046594582590905558765972762415736951411970565346920386769591293009820664818259612345088174258144356378200691536523540324848635733115345799830804579499876710463210370233062633683207431954296691953025493965666063742809358773529582744491993911924307507719171930762380112261263199571405055260370669659845803139430726984461115719286851364052440618167522960057781700677316375560865769991460117983844786095893029573269346093668598589098619291100674056187832588175210575284763045713331437883484129152138754368936699854794961090196614678661983136245092562016387128956532413598545073173624287384851284132456967221583946679968471689956165192444496107162736673407069272463264101367300926428248306756182763548265330857217243015583523882589667245064177391783099621101938242664933088430447497910951427220068627234676489972140971967644709213585023679398809865494102166557484514537103774489819559642270296961959560278677231484598352290452471140475216898155360806410931504772627368406749833467044167746377155684510373879868207487497803921867742267387852813305208157091791694258472870341637432388715560506298398433505375334656854971699939301260088209067250697928356065907209237435950739736165879018682321105153006125983195711450733654389189031524681034035848027681132054858954006826977319292959626712220643087944528192389234449853232592253204805936881413670375012692344299813575907058818075341196342964302401872911566202615818455622625956905182420511717374572556914893693673713306533038660991497995072677296688607114308704463384553551784036708558995181659555835431601566119820855132615370689317298036351227535122025058702197324494674790785232666430019239045333007898689420092456322489443024310290694870736780094481804701137936141233424940220954261135573098393954059309879828823375301589809334488813324061680673696440385590619217163297090844523114704380681279065438321981449128623151247076342859583266239873738805186979971332325728866355671874807813907369162807702696418828937755104516052786859969602883199952856136142117906682061436305809732865360409785969810910740339345726166747277318410956081613946012499463334209151980632225868234796783743140884659488905508085521486513095587121318520164220608992219319317456784353318531277571206302386338945718065992578266700294394317352226139993423981111160979955636305073579664684837547200521129952834594773929832966077353283071596512021446214887893733395510680644386234424562291447691516113379139300567505827695151488648943769902339354933774759559167327658328612906063777452155730310733551318481990490185598575889910630842125160661722782519725263521084678032400672301310818776061976390760766998934486480539419784642070140044529653520547371875553926779205054420016598504193175283401819156989606379458130523195715061410749340145206125947096459021525713738859442044485963039276492317798500649496763545602053056853418423932987350696824639933455783793094975849207518403890419078980293458579863050660875887767807719842046141647640967097887327896694639757313847981678372934441865221270217670163694441297847781546090676220853714249628067983224690151107878652069992798447545409440628612459993997880528510962353142308912862669837464625861668781533083092770863458711438122631134692326038357315092426681685985280506907269109420014325923023693056547428258222714276502934797125928783890541585805321597972694778722366058895233065517089256791498432743911572124047763191941213473925099559723913195343279940287435969286015820497346375310452994382240571391851276298053586782760224928396608074049429663222528408031773627775278913566827148281147956640831625558473441914501487550841714568557942243827277162460749835739378337963727828549550590843991323144679103200041924295195337133478117787503501249777074585882361344894797366733667620227080894134448771757109682093747365463608437284457577175370701013141985190048934644129253491293958005359876061491030937904211716125475483020411687593541392922824439821316529071174577188904140286792665187998940424931923374637960238142448838884945833008757358788262158358845986545536186151427410967962635996672756186796145035428947549150735294061703549161538931395146336837627406459496801694993592489356120962111143837690188124494694862251282587477289218583525001435863132318799553051931869438355933677195064403038716669476138537704940828348447824048173474457623269762053408028119943100011601620737634901772002024625311863582527726200250360351418718690557637541578086314713444894900958265667609031046107376612908629439097246796394460121704673409281085581394607968891221483520643926602909475814728141046423925463008262515727416821441461822110366554386299830918428390471360297319893994603419264917403375292287955010693377339040424776948337372036257032065791870420526088841505058194979146143533865452306178844081056795788902917694922245603905269375087087899797231380785410465686358777445907506885502957457466627166842499280860660074955405588477539869248406857367983124496824873819795407114076720579783237703106982065995399631008827002515868677671268685961242848998761305251986089479227518573783247992979100043060752612297678899661866200265188231510432560389409146251168969058349491745907422190087706824951265972446238771897365784570393523906487679733457547822063380646957815272734278804504874633094778588386261451884744654287271102617892679301759180871202495842921685402357237577781596620005604488843900539172179494306044640527766097075269783483652857527256579682846566738335772703298976844113293213009839181954916001807167872729815881540804909867483660203312902447896531406687189646679509094351511238506747619992740836397199564093149695041837938730468500169987255182407123817999308298383821208415652794729875170829478588079681336284280739551785808727279149638864842972655205721081189094305500046827006624584819975885143496292422084593291302860060343658712301204836986985544449395770540655933076340975979644381008772855615353202001776255997948768207465154463982031471717184540347784797962008179855315720944720177402250644923861574355714235132486068519871272927979411458091506432129586107334166862244297910967160385356744131915512386872231875534519228841110810118371327112453638230392751190913814574528282761849729900339866497324000379136895321928281336799986855675345583346635560713792099007339799225647550651999848155290760958256531427994657017846765928435488739620510996183555657299571020133255747840343082269979175720085703143284972221737450886714578462367195143783884923245958330199508915885555856019671982468454677149521894239423553075572151364480783151897858827063377797337789715870701476676845446482730056799771390956144237398080994129330638580377433598134592238886006700887334634588647836561976645167708239506208412443114046143686506584847264725746823606741356460035347943556980272565791541796498391051903600988874809374311162804696774063646786389251011105297591366378646615274768590345131278911601591260627161212518618785933043934574816705919182512335692453854692431133208484371459611124660003527945329804484160048608069369440532768823892967287518937365985693787272573472919287571882330095274358722732158665659819612688275957788855214121759131550510634616915928843236524998030156030096690291241233386080978315968415869812138345982703646681816563572842327364812811457352296980322017442175885506360202482227928365975848802790643169813973204470246110279287811269821314989982647653575205860505938140019516366040859964457950020745795045011703277775946950802071623488026619776474854049170547360006139954903942661655498469468674461999939811159625170901795868325517914534624923606417473539994750407481113153598576760445525757316740832962247979900325702971477638258469986529524895402271110156620071441588124533605057210928612132846256225338418048003272544441018955021773523489281321685349356204166126966903476793133496159928650323408801824253610359181739138462161586147799760219461412524066103307948659687961782305297795739831171585064013561696134692628861237775229840463418337456648501037405607616026408409292785173555899465066668384901906374287202906984463769392432324309497228110416560587969396000833401180705012343030918032664991776251195678050982192786324264020126821686920163240044562488195547266620015270109583772390672650838049334340080313316333520737631632266531297476554055103414086337336659915284483006994018847228500179801929301602849543659786980569553485516165403412108685686029114016400770317422984851620042380590026822335402681248980116486178208227089348209943912921523197949224463796947432208819726635708776816181678073200026330908176813179681354207239571710158636771323607811185329474109685689712726931231606634780307485119612617054754826371537470990832002405412462773030352098709510283797054559217282955809707939208626898780457494982094220077291961941728406945621834391004012551908495895998149151015302142483717596777588282622375610913697141006063014376065962161484731399647698068306931652054803724283580687496154811865225266665442821529981117218941781978590350189531952097430715412733619492877012074237000800450196387738718194009528455059909009531776529929127184099374538515540841552151630513573642531411276103542395607280550959253012013545543333572335178533069094797140602314258119250888923557392469876426276726040661442297085847874846176402142604980341811023497070642876259365646231083346923395009773816424866670692188385878941704403867857887695641673126730821198796127629308963550339561342506722980580015936515638227620298176232101636575674380039274031323807258818225241834711857753557493205847170504680965366746593333031778730819258847780262998527785641127685575998567554317561468183748929372748516592695773033673597649489744231987666713621620371459926432343498708950443050089227590835457735484235490179780759556132815715458799986145927728412238140196746431306699755676643345548866679848831067937969899407508790733105607938973385601580329893057361468197200410364676178616869678956859691588515689941699927903224884806016705259099655956530113337191505415075064425057127808930594366926850272021942645783703755879750342318922858685770087832763497334505667230668179862740611611425400929219614907030649276872215469974852611702133502464593621964711584885573379719295515884878769876578942644669642819829736007297309029708583420721302253661404541032713742790644224647597881197737970742897427987636745564663869554166725838788564036185637980445798773307249676521092584226065234470138947228694653337758027443748820662824670128926973912355515719025595793790098333756556510133034901351530269655753245724269506100112046740523471701661529778922790099630987032617297237844109195796556522404634169944137409699492290875947320763476095632252613541137273295209360595580734107198548661381734638006281374965352628825521578315929288779956285059839453269668756294023428128382064926267800942141480815431748973886649379466267355321311957845247219388865211039554220852685663065148019099158657120651187643492509569947729147721713283633618720859765640592957052604387395786806560911760198037262848201595358290173306582164384838314786228447099587866173939324982868396615379730311726227598084524674169528574213555364627941746580441556766284937613583668509470114809631044324434583026006502260601714314100779209731693398873776103504632743020176622165466445688676807836770850101966326131098647892675655297785592314170217753622368719603903871267626748815940301529062177235297534714374865708472215718024186425190818339866794398654705685813546852925497334211958848445869273412691658729321448521139555546431390587856750266035239545780913889138665620426902568230748616738338620357252431869048933975049419339033927907549588864646472443899120554847246013004719789185915952354183745999443752563476312196805186427891179322611328802373534103914881224077068738539960535179270698820313606231313155004121112450113941671023635106904361072082779856431316946539531052256529201660851108342345881062002974868322271002836153364110269451597321230098830887496344619168421789019288898065782760482292825678920448220403517793940721780314469994610420235246802032779256742797819581704042434957370014580993335439991689624661321427879795374986282716277986641554479171132894234637822244227342673097581784425511123904945223708074503935082014277041269542614391096869618216303458579984494600503110585491008815101134890852388321068186742491910632015454247261220141528071209985133009564557972043530317649335968287861245573705018419947290842543406413245712459925860929571750274191261363850065260914466776916166486126361913924817383903804173076410548811664355247072534157508279713210829075985599389142077265904661750552821933241016221130349278506795585870106508056414406969052827664634209526088354510185781633692688046834056360608708393117637162064495199764590374652137338140115783728307108704010809994802906108240567513333989391919042114682672348051417913932628208272023020377745032886528024712416835050389773360139371782591808958147064437988835208909986676823582163184250479651119158799855200082928217058988276924291267355783227336770694545392676605162945866495894518716942246669691661449076760802500388123872831541808099569969171377268582925877954293163008276502635847818389234391588761319754930817570079389616310114196512517253667602305287109720800679428153128744882523659415729969006639278731535016858578060246125958737154775233149061656241390164201346323489068354700413409387084923383499201864721507738241032298533205538526929243457456367132874092422109516670864357617883840902230680431519527219804395217982629484145576088858663452164793131566099486890742361452801374283216846563081521794411437482491499677722050061965173028141555882023193919649593061095011184321931664318093011535461724942877776903968433734509007577766974660343919946282012968761693386803719045398076538446522151446788135460170840648542218978118719663738882749744968647004064358661008024861880118022194839469632902526073835619086795974942413993211953069643297387407951514164590091308093947373502877533047988980999019378701388304529364615548357037611780005478096491493558091175799662562749991236281344096331766455483215134066962105999443884530917242686605068985733445857542566519941869276012109418252766607047451364675696801420774399211774140734015828942968503734055812044625570336345159964561381657042079668866966142983183176388599776075043609836439636587247717128284892775700104103353355806103125602772636806896772975522509081781053949044878855150722478176068438468856640276178532072159400509130017882771813702927447905319732781511696793736215232727200076179978137078259115736772487306508290493729928488203342225618985881221691682329508588682110691244815307075690262549773726969174594229161890968325276777682062372268498611902121465733617927722697282749841153338510563453857845225520549428762695033643696166264532993826973543137612868097322276764935637723632790896453997873645877998265515341404940166161763648966638099519950765694949608103005687056362562016820987624607476904237529719212553206236437685629071442633953340255583856576214564970556182334872512758896142135307880042088638687048297229345564304296798510600705100583834939091536454041913659896206437635551484200031353990097832241220694559211613381158168052897710082749756739905720783008552420015405559044230815502779358982699377184420902769054689118736169879567164253582944602831221300035038159968471443909609603224583007191737316259468656792597497597080398494920635303202299723663017000158728967075499674816717778304202979741881655679601526124909446279367561412742437792829309624431643106758280039978308783844537487286173838326948185599204277951732530608706802773529034192679103324748237709435361796096866364085462626969643481977329488127480492778688341396373288071461574641444488918619660895899763738112099191729496128828245164766174018390999307974272397441769207478530358065328135611281775610519438808396534287267396219220841435848312977628163199067780366575582491350767944746568828750880126551308625248969050834407320128611563352425755219122940164270587524074118753357354946582368606691254675279464618866927568056245971754958884954875582194723357237322976464510085474941539329560461121141066079546561145510502528866741405777224334409939042444333625963257401409858229729201727026348414181282015146876332584860845462872335122609131848037671725005771133605483891832582575908593862997129742140124025932142962100374632963701707270992114319989903062425064091912412861352812873245760851810169492836968252559127111683206880750837497022019287665434771851743278006417206552416591653393349478591747624505925207393749699333513879459191127444576186560885430381832740467558183754581366749043472590516917553763928826277892120468397236536500914345230225622138587470515527974585173150774538387305625708311285274544654613035856670130768270139451613152809026595616009626827755919562614565545436698600986496469337747798292687422454612667700853837178125041777102686629299698482411027803180817006195323757166144348612945228180209652073591257501892857046398875572210199629979670865572791232954729866967252663183805548023183183115624145210099707690053085395557711436745606380024453338761078353676285375708920368310326997279337154746396837619798441458764831612629150349813546960128768298831658768471993282962213444418517400211332476368468444811198235934514503559720492438853774699326944241154158000586785772027516644203253988686597612649462471466429511888361839569495697071930347258707635489481083701195809617762988115542806542759366983764437337922177590427927008039923548281081471712530124748936748491598695025889841955710797790706338051928752063571786300266931361801170000827800045341328424053016194195810408144557046603679285437557285122860514853222911742647097828083076036288623841106816588025544431229944703454948250871359096650509757896559410842877559749302641427905036151635177511016201716801526770925988747515423085101688759379468187652754426100796948425197801247225684775506750951706041958898948092624763034559222822524622712836274270468951583338263983075008662238178718195667387644156650985948368878411636231293639315451643679882933424503561266788473372145549393463769543720844275007263195631839031905095667057010689673189584804037682967341031109891965574883259864574842895770864303407977119110891852639856581055367739947539990891480096856866882304846950894984059124186169009814782099944183075435306233346706408200303112320740591945389064177732690187841377501894016260793861549141412884063025214535812611658409553949295790221488180718096260669707214581791532908052834822861712505626141521999329782312635468313804859639117518573497336667058761980401404565796901168270638196027416540167114573317849978546467662933748150472191618427523168449396386542475620702222390588728632029254663619631743283612397831609192573249622735082694583947847466809326554404539801786792358583566275195295171839669331271342098617511261096038903481743580226737878407223213454858711926655927773107581700650253383874427156982465628602410963879463263962657460840904510325469855220125435695498911344238774578077012008464755019653080756778180091299786276183287487539075810218297107855044135918265467944196262508169897177518724574022331126265528122417199822902130983873028014519704453286777379364975546362550848942442612661384287308163594005137728524590892407947665398627875579920923138017537236953323671036265686642368538569789004538051294691020395003396841080754456982224676391076799335510330441833601411731840606202921807213438470571938308737948131768493965764812195117173159785029919241685410981491714400239707679097599878054264530894892303191323727986912672411298751889383558707053745712319935490454604680273440791991211037213465054101763801930460386977916732011845944296809532885253271394839629730676566360079230305251963312024109385693848248367104364509491026293134908801164034629794399588601743146426337163826980867284976838765757083747378357362110225170046311149356127308099366194619572398672447042243173838175091524016406921519137386988808162156833555720408544373675305942227851525909973142989445400083325511303074659804156010211541447045056266684119977955728846000907588789031833258099953220128990590199081582012449560083015277268595710280747781607142820588537954808196011563960911588115449608174567106726924053021149460328281920408828524256582961553046117294017445458016547907300625650056882839459025203987647935893859941449286581236303407634810473698425876220132956296829123816215724119440722347209337952193973050401433396445531891607812787355306999531920763443426139757790908206144648452204014334604456013520021727088357809767392822841931787108407581579663005394621275840434448549151149805637038754260154431252224276213608581541843361194045486431325420466167279129724448519775358856621276458301498461356382600381316963611120916792365936805623224727834728371471326086248851436521565849934944391886173153624422815820046225814377551796046595396727892152605396772088083582739941465887541907526969427830869812547314628118366814313330827160968361690048416709621532842400080625286399617646026040244474446766257653629849748288690059493704767413627424654864243380717935999229948414046105509341800897697369022793933705524755855354927644410563472240246632346111520294205700434708895826903250435241480419664491142667475200047978242673103581673829251389385649364060224048959829992883455958427130359238311872335912870081948996356542089945822434752516481170985484938446852320342224750135872053415817954799371013528647344263711181900772587492875977924594930510031434108506142033801723020673944617185700434601318260224181334223393598580292016778644147512550951387562378535009429729028042090696205555152551779799031558199465031412983207250126492201882247153177210602472788836243878451063675496861115042458829777737448019875672916874813450497768599578547613446919741266404532289147405191510648634517823279444697128360011070622642702574493221791953677433900158410439836587433813498747239779089458534759555720408073305020864993829040561042659413426273996549327422764383809178513160692517050752760262897278407500624012071009043475459020524094932118195148312121089853551672433355051410488620689952767264428530410645869471674154281255204746132510660494606274388889640690805051072990778396083155392571241993207743077078746561640919043950557213136544388058489859981556733787104893718343602745651882421969858825515537957108333235508593614970100867045692531159189868931793885945447035408868002229574158270886557557912869597084882175495765938460986849187664881023068621610700110674679505299157260502270423424622442776178722300547052733599106663341747891788616819462195219655000329565847662934631397501712891719668817343168049342392395017113954245869011374356103021067647979029669937656410214811099636991183829433835716531420284005562272736242828703543093563830950086971057681283088610890755204333355098873299813937076140637287858513555928875293969066949645459054504133250129391619805392234079395600421478198159715873053890165858178115361411946282909004221212796487409286963120599584924899501863647510751812851432586281964996294701732485790280936710979492354788475858188963979584460897290838963095792790826851035049625195329487004118680182587505183712808570788070562393451104803512072001442347550526992693044468671068284543197375101470812713995641225285470662209352893733563731348653540977364834954489461926839158925070278803026542446538652314610135639712541781794468940667282137726422881806874225328721879750950494130525890219928466661900183785754663847804823295402683287408552786722273079825766497030947341901527305236560616866208242225937321011450689617238057216195315693585234748139652602664511097946434315285438980594206179380603496223611823776816286040105518165992838462717672612035544697047105700280718440519998867994399190784128506816893049381080296016259575072975969751815503225751142809436485470075899221886402705277791363035184579152863670403973640342522122488364199280321302551854769605569188234832115884792742611039008893468875497313191988704176837814877377783131476870370485086094280297894595592745462616415473549216975122335857439607466330789344453351512289180958107106880245830374616049795755629822086370471268141897418186597326384399352343753047300137688822834911347356574584172719289049574280867426042211103797680925119692718708390094204921592236736969350904349488474487799140802052634432590284727632278416296234215652659731369589048158784979303731777323588265292385007674451134413464337710526926763192697509491462189885113217584586062170425269022569710341342855949373911096311639444391832178523673665989086439766963365968094398124806971694277378973969727888390285204538908686010247619609468105545494845381641625945443202545938991747873360275108486061389306668877732669559654524028009560912671020845332208891008111422109511245495170189878637942172276229694062862451851487771169222739943003515583439078716089465812768415545455562114607949925057828353056856018757839683335188784353109943955514505361482650427381365375268797160804091948289122574069072237156266561121535706512034678419712365258974955593869274889331771525593848353899404048675228227865234787504393727934507968506857865925583214715644622934333223285649121326071388550057504921545881294275372928172964997765812149144936672400252483721625649794855403954430070424682243670141631679527680826119331655700337272284379026606129334112662815186860872364508070360017768486042567512555973596188743206153354482176817890933182926865480498893387296965776625142663628821680428963255801154252160389292499328605494211123856984791875319833943072607126216599618798710101574880873306283237720007649049311692126578798631451655815701570489179064590969360316299847668856252225811712134273523494454400690737026004348337644235341888606145174390549856271633205795977517138739444763786718164219161442599632718595907916480874484278184078195637267001357112059195821405057507366635922824464564478565045019428968460309498494691696074160036707487493134643804680129936779258042522740153949951305243078237309112642717558313831349116090887501104894765290963254787312557482187824809212550038585704899399050353563296412928520283228479586853524624202649772540306073363012544560739755416309842614724232819170749802082198198634701596992736638040382719735980270270747837538476331813381651384289890156894290350696926033128633921215766069928640123113160504225799154110879094481601145498163404179857490292885694526674140366012023754154324260204745006074550590495175221782807369492616731874047032196136620329867296549735750062314133221450254588750522425067962731650885281943491438794124611241564527076061330892816104140801318445106659491177631694504365636510010552433787938249285953227720780701158313859393742146227891640328887725601330808721504853443696596412774754115771079888110624922781446282670421880026199565488002606734600191290727209144860985844815782173317905697193940844090772858945599110956176256158784107910704605648606031551922131213815192152285795146811087756173936869953774091775226665306004268963992005404341282058657795496564912729728299394749236514111561120770647978153556657554248100277552645408904193182489420619638511252947441573477596154309261116420272572723471416703969147561090826958508660414852067050375993454245283871097917194399303399798036118094590550780209390971930559244654767407465268048026640824647879708118512938937371906170383197746935919163307886968456208678091952919715977286509323222485980576817768099874199894534035754117919436553112292945672560940631426471529477612915420018298706151242891686576695172394779584304001676616785202385622796304884572628816942907543283586410509954061713929700911555341194710511381571426446567720643676012016341460579872009273907663650735558886937557124767573976952861127878710728668993390041522883260604587617503756421527513565881124622044895814392468677925217448606196377158753187616596020525360987969084629755841166049669523793249821367821692432628584131525069970800530404310165551342585835913202574355940629562494992586004488998352100109673279819098806049145764870226759688840031063585975157017965175833803505427072215392212338895467087381843697880725881309403156864296222218261391016647478428988159647812820029559967969138248929859069846151725718268434802119044423700908743700654249014952192958957677259887090803980893685466248929956515853106527030105413222275432960587052458650682510193896558360784727160201748879737368055616358389336519105986648724051657455786602190259458857975438604638653710314782752111397787722856962796765928275723882879347345033242810628961763022883897835196723243591728012413739716632933181747954195504220705204973571885983902332541888290769522823085993195799483707450672911009965490994809337805267010325562703405123349954726712268864684979098151978686476530870558322773822130520958722420225386452133751768362059735449580168805901292260504501034832802429777941689395801148095040274616244749244099034497909469332042168950225962364074987027883758098095893922439921360762238456568882026398618275929161065461979155307458853426034587312843542693002820726917492227793377348519652836411947485443799229675488663317576578704136130636851626187103840038668246543780881991660766314758447950791207310141979558541222471829174124342981901868159056340575948610384682380382688707284497962872850254828875884261276348082069960190341302245324985076187850625827698562737939938607673637206470311558018626929313255210928233032999069272117087863322222581655650697289102565470707164709618411860107602262609599989449584737888482903153524915533150236592053048564909838011954426199091277219554890643320365188149435560212516285517201996742107573616309467559707316525451944259415262182038232867555136866240405089190284321531246624569607858594676550846321002685452290502586113665769233942781279243355004626184342869254369597921363411436961284117344183977978327280647807451389108609963437362480648318037053954070912324817683399623055223274063776046291244792570831905375957704931443325630809896592128296520931705845189323733632462267719100964711806382100672493448752525697828936058509673113466078529624488029252389521385314809936929852094542298440237908664115851350233165702261138143848843109674452009255501956588371325975999000377839562175659841712933656391085665470697312903166181106696491434183285880943229063640316355608314491362634391151139318922105965372156847317380298577634391263487533577537386928517372438160974773121346455680120490459909777955788871604933602090547364407217347096660724887029038463940940871472100324091216848021531200620105729791036919285199168654353333474812024833990543782571543575609976268636066661279726179726726550779120229968554642212484312207597915974622344406824047489556216346648647003221407498225816107583836920977061940420637234880311789802601084572132405103599330672504828608327232600646250581462553623853658036218988180745383587834297513406746521986993558633156862335488688740969613676668044502067575230926016374422452232967440910984002227323516370971725676573951611316879433698525814346155968372833980362561182978709364235378265039583000589147666752238289008150831895636313741587996595801345681650388132563319929136549443855689291636407149666180541070862257682329391438143817385649891070183010545610297185701161083813269059061200711231826031780265709405342179202668547411413309525451043374085031870035325383938591465505393021527538710445254210512406469852445781808468886926277454501118994464526195135678365681331384875700027195843263918387511975667506100411685067943902974191833643511657686167571635310066930999657686561107857781349219929677685811834245557070518052245701922052001474214577319859669310172549887576080699512162032991866398572772813994369797933406856565388178140839674500598624891322696690957353175546938409429136387173346760212990273680790154764618994217441982081629002995423223880213228378347176063690115745457447366913583009985104568505622579757729887509579046188257669418587350968469656981725278381078278692303866813436378972388561190165625072142464396455641955610108380438805113200035106182956015939161558451118741681056341169067998139729253091993365484680994822733202068857259139527535831301736074083395207699180587383859979812746820371206542002703612884526884252775288777654762051468601923271992280240827399036657348208132575599319947816489535842219305780708177709672783342906184880401247641923663972223413224696071548931821831960417554201671143182141736831775485778388372082776041339003819973095427675549257982150706612357604052558951312927576709248216668655162371554195257911162999398522276001589930330139397699760931475540509701475125884807663660649386992587612053761441119405629924719556167210068298438069227893943561100929353717533743669773523247513426899259253185380645875081717322782778508565570716896791947692730767981901717823836147935726450033923404987513692440711696822406796387170317546592688259786133207572855377292835053878647692691418762364605995107826754321601292704261985046661066587977246798806819357627095897956762285930883529524663599997699855256908895519332307446902949560718103497880870255051269270558564008004370281651609676999531623577501166179099047529954726252111945102091157756072866224135549024581364450794985049042344448332074993510546042223769884813219128720174532184837408367700015545990860273424165295865085889915664172732521486362935846669141240006975065742914635480752493502532764156791364123221276321699905320738142073849428204134525253185724151731660819212075492747573406461840642706459513556082892472994285731302696218884906201008664768511189657911324465575999840738167969972315177174080424307986827228204257817312491432624830801449241618467865197491229935175246267392967878897945216163680873372549878907698701644694031040972513802892000387234187299062077275966139070158044737141663870431589988467750031711799426216048690515584505145125850328375492670253767628454066151066385107695349105040659335751527785020189765546066504040409650256067946650154503179191038575332391528339949943904631186523088873043046427999484516390116268385680485241322903730830596053070715944029116880601359865004110023633830156710189052023077448262113773088956937132623310997388594579796481320007798739722978659565129489975598611072883119158048397611280834896151294485430662579335796203290862743328114072003235140773916680702192742210402532705196399389806809309160773827086889551651290228876361823159545425653455145450540035535406734569693097676932491703838756950987968186678857513034152270198753726459383123964799252671534010524121016887374185393449567928656195441382388072931295109247031194747778128391266828350808062452704380880397308716892721549749124367868582865996005160221478703192775927106578564641358556011698832641879282526160497295956747694460147247797280166456813705993484156692089912105620974480578014733701695428330052530796628507234971872512349107709475658642701952981475606456629828585117510019467243605194406708766494040212496316126503569673250026602932954069003497097476497952343722613319669923988829419338652988112281256145913528288977485577739059579241680013119043037929079681638060447912312905339760076221490427188535245715963845883369474937200389839945073586151454075717254556971745303431418874862807945131218772443767966782204108541796106819785952013031169818073492123794335410823102459504424006246265371304535968544879509871025058965422691500409270627744667534532189488450089228367370288241545578112277891798407478242559876497802019902457208927210877345600106476509881696114484390601777380240922855329725358632160957935933534001052939819955924544518120898843366327355570733175604992754967371362125393413750274516975617713630328756554983104821224805112208618581325492761094621108579792033193422511939501729336822502138876426662377490122760400919535946873542819068507714479562968048163395662014805897929958645710167454680490504339895042095894171434154560834070543009451393999259747369270969058792935629721923789796206999777114811479938941589195699614273400476144332830077785686730467272648739269018420629698187586869953548078659190075002650723054259923902541017576908751192054613081492743624800938868895336386467462789733014302544848362273659682228206317785722014251825220504547105667597768214833332920164048537766215526988413945354498452448279542178539055309606876073575914579480884151677637646520509548415722965809922421639233164235998208061471096725002724026342686816073553563320451327537847481346184088366345834922505181016860241500455440804713610346501110880509970597735318283802804792647895893557300415445502086057969636634314037545055126315107237666853781563736891415918531824303041646165306639169581407447041186475205417877600503766331130937239631450494561933823580811314102086712203110215581410427250823272518624397082358153728090213172675427648363993957537875793842550188595353572407244096085156923483681556001116031718350203271173271951667323622817325688513106920741513989728009151633214966568125566442311727464815867878716887400744030445976749681155439064597255788652181449861143255633418321956302133417716734796349870798216794461760798441383944321757131520248973549463059912760557683648548879302608538578995561641148260126554453306904071568992774944766504007774260662792640910942840708646419931469510314210489349096183088908948506073908302573739439390536228920943011504959927578623032500884734006303191156709746816656764778990984692605849532097333726512688239484090045330367879795889754822441464653792371726715645352254443319083371022587636939497096265541649100166284131559960695700118101618910141354362382680013643053317177426290168126587671816857418910154315073467417640246487222584938394130882308174333237125013612293142391285319783812878626470920406700657345081366223612930898311685595602287866646225154638939396382946227441334856856709668834937820788009473813293931249442787870087142518038694593440483928853622164231959715375088729906427472668573368931006315751135864037441983576264263502227420276542660240443150476201154807339026085391166552051377936002073211633722657053437335098284390490674396224184520740309227744715106841931620082435730031280200704846843246606903306314765224098693876923369669055875336429194570724922793274555384221874429199419320685800760469392732862130468484486767244507428250604145816887823046456576720729173651830855108868920675278843030344906230345345822931867359353398649755296907198817762613308435116035351971748340999631907684387258301075944967614115489303091786942822193921670662887559328884520475896509247056948770846993666469054272196288751704016896626709852176530440845252334814866677168900466669294381630905172585561283928083011319833025566028241368096644962411782491730656151170382094549134658190005037616449690796162972875482071251035626837350598292921620165199287085396896771799190105607954636712484026574163390941059148917305911345374713330261361516813203281338194557009466754577513525438284873133541248471651208161129068450471908310670663213510111076398610447569966058314505468671338604152260588175496616167716634142178156108243472795067441373917016562826387193756483732284910369278409325123959831655179258342605353570531608411327468185922905423166453331282331018060718450351013505206453920215563984479673700099224364176739650593942707104708292802950373629504779505123322261864609233566701423609538248163348025891085150022276081858224125634657785845171341448966951215834370937478855420866398382852184490900537050241811696768195941897191221671769732922216583547665127276219833670593481326690269219895973307422039711834015479449125380280677931703339743344493859968113110424768547631624438905784624727537830147464827187971410877088756390978109114323047061934894187513184565982483015222726568272282896277265459903027539227834461349972694539128587358105987440527927707332638782687499285740544050339396993814780738532231773880688576769005319039443714058646549334618504238423841226730553983778113321801459775023667767159058145268747339077182255573738036219208687752796249447349441267634570411738720717706506886977982825117804464705816241301414351554670950755986331933298060093131176677213418522922287705414543661765231205756399885744502074110745250411313377058543265007327142444829967332053297838536736221833611202864104312616381718468009248435897384940296926823432165780715125477837325496473223869285856427946961246613847662981019242191575156391243811007712835907581513108431966555498721773561874352172159272931795994392743462158348222157429716547100170500242008288206749396645746739707862243895116519223829138215848909795908444214054275086747577756985703335066067810585625033405183972490430861098984194176556843454168832849874214231976843934956557628176124240094888916270967369173795088466838784632157466069527919477395298664092462349420464095785204663592142784231434180062661036171516044775203242731005790169826527670591145873161421554103557659457668223275978556970669517375772328408814339667532408422699325677502736303781479057782534704206119854571816832283716025763719502377761381521764724155384587946936697559794248351901496525412969561811495706740888074990304920878938002293502366799957115790744687028579554819736582398575249327579108995852251733472147428456399431921306291926667656779031346157697103911028584005663159034856474697058104271543394778314131192238406560728700608549553241348949901636437220612958886880520884849818881266974667453670405810223855354514893961287149806528503154939369543105254458756164940387209051001677216527345938446500700138554300463773019639759724737336774781799988798004835416033934486250468992611999970156760473786230638220302811102251919266396165450396914765659039027651097330288512491138926155719055695100474693220395043416787381355864284547176679533998920235639320248850053064238346364723684889008137888009964951542026843510435361273308548797999897258945345009276480973378335964377358986277260803693799316537810536556231781888750580186169359362047778268957065082639999865732933497770310209994296953146157621750830964845763417206947557976864359300137473702778981165202524894335460709962746509160142352581892482608088873204027861496497471066386289496769499608283258526920058958413869850727153818185828577025673211057128485927507279772047770548974982254792657099054505751106928078166106854821510789124589286433837705976357754694557665004321749226491925263266059077554091194718246055193723373641850426602547475007654734009434676070505226907341605846826407688218790270273141972192110079392666510792945368821496577653190590913601032737443223387111125486263530448517322753153732243641636495978536250086103164065942424773300177018800569191439145650103768935309928896942240422711225154698892998235755405863365894695820215790789823498333876786516498725556167241062541324094778503630396758132019112306185802504392336124812474936635597442965103134951292595575239613449139025143286967891224675250571861873800486949472113370187773375715080252593607553081866938391681243492860377661767504980303436063096419415208048810109013106942021612351392185352365433554336232945881497220787878424715910876300038225832102897213678979449968208399827223837187459915733869931973473443719425052683348877130763959268351762018697135957643134837985470254067187940944929362874291262696830624715074669779572272737141467405557098523968930808064674565676258719416903258210589779726182652100575918397994797836092997602551295368490785310106045622923361692935698798173239803946907148247656092755442035200481418024874465008772034263617330808692654628158114570859430249802699153495141163263099145539797039575730584130728501495330655190452861601507877922875970471952386548448642261804253104701622438613532250044510013967280377839054012542503182428590386217387506847760404536005981324155152085715644029166921821112963347804139080399713507600425761043968397945648367874347159605008435317942802160003826678194237380280528612071790618271961220938638045226654455771980415502226647297685231174497063090820168900030715988902543653617693369997552297874988656558176886609534058172155364879698255759952669583903048559309927472495552296689533354434836293292081068761216987122703370554163558223359342914357064593136021640006355794182353451599771443324369618921371201857220280155129537212878187773856996782485347604630026902496311445364572855162657896877615718674790853412081819094434107299402177556307151243920808244185971471369293542960854466059436242992607342392414169355584572785138152173319094021245807208705590253686632231995332338437189378034248855778101773073070293859115127343020257996610363587155539355300375053385968718003481667189516271915251281366629193317472565653464925303701827195714147753268123544832082273514482095870037306196488543864633773936360054484646344161758928420245825249328374501818374585567778373043322792976963027988114199592584166969311350656103991476347859639670048482763094076293323064644346119231258293334181448014466443160531469850099956531644419847234759890011685305967631263543640051953426706533208362546274537931185522978654053766137777472786050223956006696092110782483318552003917839992240686105681072546502723585783508450554393060490515549089169761711715504604973041115626246159487694943160965059949535030496654262944297159391244928089930206462248880646268406154005620334292470845882519376054735283808697590887213298117497211255376132861212925737645216555976357599311348931839621932480185852727253088332985751520921986216139133134802837113908442003444561426983428038467995187756438428916137929388925861678997500772409578222254959770936046012678017512741499217590780756900506969710765837283362201505012953388557816878999315737267109647579231518733563364536613006394513330252553859271605520646701140441845175914985012301561850613465806087412943111236121091774945597543710063570930500497760366699826951605111610168548051232329705517127123371154811639138692885610690772009642933204984753738388795361764966799468484214791381383249099602930518429033005269337742317668003236791090644426886046829043685057831884558767799347773650193256565166932269873061863499949279827650231411460608171988438743029158732918747597758205471866092581076028826840055289809280038947264921051227081475649283099084270312836662997633017597348794898115342898549666006966691990016476264244378193535887901452049774530190071215417959103905908144214958400409380920797002788333252681736234040068630800995346619007687069347448355863217168340659526863423316032044698505933712892121037762820614391641186045479765878300127160315406045650538328259002018790854843241832478236907894804503598960566440833987595530427846611770532384067504195312236743683704366884885333600272986756325211645860326229601121433731904616098224454181885723090947967090762647949714840722602709419135649765596367030186127072843876026434529069521656364565862047161280193501291440705114902442965140939280066586083833041160647897649562296190884315537271109354295684804468165466622506409758783560788081513136049349518189168598865858572586127160066317440765919689851253440437584057950255946103368367353787708633278202547505104606667044583707351366076050832579008878679702550292329594571727694203220868253194051255805613879689656616535993699340901815046311094303473512085955495459302315118502692489827176296617155568381276202644993359239257009122434504919209822424754486491968534203997772809254099264625510867977532837952605870184482404718651103350063279053982228514267910439964400216015769719671810865990053256701134133739322862405768141911595504587981753753561370213986501216553005323703019736717512186489788695377705820184896094057574233502665093899332922742152688266621109838726740687381267963566530719363141632144860691180496628251059867838247337617243270154211997228073107691673264330828718173460177510162377327710079344500589044627929741846936953076008013561257880369369426869463103426350829229820814079931488168600875389907404805400099521731194929813563255403496382290046350267641462433262015207891660177041822213621058555520394649666425519460452820654222255684934616012841747350161475906912959010489277104715419147176074581964478266050228457271837848660927538429160333023446470946224786720441534510894902449899178990841176842097993696609564312361630598346608472631055532488865912701839471597241432355307904912315969138115685789039218277823898652945589292696192283443168022088138878713753614780060081697477349576845667240086612937680232221040348331804578407377768114432632986587930805221587177469670771785183086032914265664887539684173303819553533108747721386349648983953897810626336314936360324788018444558372210918659677140065921080869913090239542962550472883602092519816954505845925727980522324375599340486860196297970920531332551174834592936064915375641417345170940170197288049053839277252208602056776125258307156484863317006705393828641751744158392573333395446548058394953773888695050336959030282134487465527682526665321447529905914637562781392638734825429248880237079090582718529659594708745760916995420450704767488964741234117304378167795025167084221027997078391507541104379087384056890643537460661380519464154708501371423557898344467492991006894699713747066541540051550546753262009142567229419002681892772872677807869944198362156542197025325183828064535317481350287812734228532259233201617739172431311083576778615252684246649792040464238573078695136944716167376792668036164524958823674167135321744941908395010913653684017245565509965914036658235513593023006079507406013722140664643251932332866210660445486150579156852459992438900269605874034651055994607712956606319222301369848547109182513430979680941336029156169969961681117668007305996392026320255802051748487164604629164540209606292365321927871233717172646730328156401673843486837033518346891877752227596321720594729737930339809203098038299565241320957948299099769976566069557179681119229844761214059946157557716311739413347981439814553938839318284888549933132049552201957261876228697880691887759392325795881047498835188307411306562830679396852553667318204232265358622485541169610294794533672286426113467172965041039886766374052941159733104009393814680410161298156013706939984347060879717529810076705919279947025730654011526854849373328326186292346052543070399370000939113802611969161384740732237471103321878104345054689453810558484680755025824115134721810942280779000346974057443022086484677739022455417026906536927925123641916203553011270012878986970368372817542526235571205385092056076462364635278268404302657563948654645728812492644769824724233427716012294897161913052421412540492809409378210818932938223440528964411422342826518194636231719367301296314738655512331543276861400009203472322456454522748905228369129213514280092750652931615462124944701268795959560270384202029841383679786599240523095135674260272957370063267555770731937804466194562433101228538797292551579023174504979534279348701031463181394483409599678723831554555414355784145199559618065519744125310916329527159749649814109482770103985798225037721288452778763577458036112150152071149399276532301845608222364566204056997354926192013200724582971623215934275935453209803669633785790823061402514112455527044409420707013626797285595140501819589246001792723043271391004729349994616877830088190893880334492824614374736066208878652767497839640900462866292306788174744440703486224510102077606951033259803933251324149765010191720929171416049395136761606884628781407416022368956390273565307165147073613673865330348450530058523011799187710946463327102077379509817691492359619468529038516358422097011888448175704906931642745822439759075520786615059803137866468001854856911303037376151430894044480155275748098376440045177865625170151184182829374055573048248014311620203471388858857042099772851655685377604111744414813003384364131189972245700840531164246322661747628008607510157107752373275752257205421691071036442605109073895041760403457139827771423851948186742044454082470082158443542899958877851454773538516216203596217733081062092135526257827551868226778433459139311915630498950172484321495609281268404944611811379008803051958602963854178331631271663275003342296329883324967968661870870401570272983556496725628454880590135041506206277034696617496879707157099018877872935011345889425141093246040771377866569933264330780948840705268847640156796824963729141775873942978468073715405494835389447321285579085508448297492440723630433612796800240548231407568352330218604407860285770729292239267746547296453939666781625648257568021792034100373380745388806552746532793705189892455853585738054044147359711392727657751895004258718107631999766704574498187491450505175835434950555206799506689014609548127806809196300052256728719370108169994907316523486230708025428089401411243281894212772235033885155211961606874911340410911581082586584130139827656681680571897520200502303362317402883289097242063917953018854133688550200659247159753800934448312364342195498216563242125943994742781478686754180839770227827574222131599806470325002791805449642863290354075261770527072137412370963875302703490132159729950351007188846428487769083947986410356703466721486760939408394338517375421700540910075463449500717324495684739143269533133338066473703280993545438270744683850987053356320123979668744690113006741175236092869684931746226988290945641045967909542279113750665217444056698417077346656313610961504591210205668004673396020704751038106762059096409025758323054998524702190550872262843786480845115889415313783350430006982952045360319472704394638704536645217116092360806858060340726763318440986402647887449790184745819826152842495686779036309114666702863953782113714847008929104810281366654068893545754975519552136274568354766414024049148267974508196290529592452638401820045612888836833402129690847933039164728658616813904278153625646174763185656327693681329262975247506828322767983929500494644647856256866137698140725030471028332207476231282649760159637800167546644948749421571849861764623552741986943598132912813146068351912874437845017983918777626824438503725580295601605401028629034141497185801764844185470687444569327837634260990355194795619831296445408065223783160764550000702526781668729127934707567752024426994470506991916430235299714185481713503753586019094734223544012267450646447237270444826372176807286494183555950899487049020124724254668780645167146337420582786299840170114220237721444529529092701219311323544875303536143257862532427721671603467540173686203643741139973125846523996994344718595138004103670059866396954143135982029527099031707193183706574339575941831646152694612313228104010397826345648106506224285478824571065010478076407991169351007433190011155904403258749322032482634918344167038192132713046107434377346764979671134103933098008750348049227486755399294434425655188135949538835190753532497019932832520713953018566801299929249308268207761724986961646074942863838245763328275452546455872222304339588870896487635176713947631218695660391292818522212175089502431270090500778615374486480873676883311928789041785817453319472744042868130867918447054480460466781412862332770282273134858487664383254203472777022058313022575738044761471074728966980908853249926785872925113473138863105902240593480396841526015483581281234428912601246297935736141773791505713167611353146941962309628971481335122891117307287194868812259484568346060806142070821837411924589998592502043155104973772644062335386694717277792211858509828425874412047890079939266501089648659799375652187211347517002180947128990379118595700386343203838917310294909247068831359104538806050552650115174719090920563361033441812683442307006777572135784756472686518238061737180604405250579692775671732281661382235303006977614504342282698625363207035221999667610696070967635596000660779637317372818246452128826475473275434442404342736618416968644642192092467440639072478443822668938926442695477289921488034092938743671262518305437952351149057163702536769895395428781080898503652776663002339323447010704085420535077322541360495494781452645624133398597406152930899861617555170762038810608243156519866801112138856475469346401057889362969151867223621549155434235931393571409620716543552674242132636158530439329068391846821112906735278596814449674541417299440985288081625931399313104288751213855048098865218759480529331700613102614873147899354284571022103464748248928274227991252823407303367724617865273538764359656716929142902790695214826579244873686988494024219030389923349117231263657349948153037851978837734704104471117995754971238715923452384605374895817028816652842987740407373143636127180632040403400604325233487484893464172027867508731248118051975615335432374219674925932349400469065119052303526902810281519146549523786012002231332221710539650521333237539678771148454378040811048204951592852127894825254566110911567975267075555435612371553943799562004483952044151135602875672661448597289360006565123871663204973726480809105787323528960829820398644858960390164875888379073738510705262214366919074866967779690330830786258569373934427810810641338557687527276116837024052121001026556847519108230580967784979683307699652007535138592820060918230868550598425012804912577981053245712661478663074212880787693858885950105177417729836233756515046234531760861258406545519296276236030083786367183747745776910113692147528439636845338595895773044961538293076349409426998955031156347890744988945882535475165763203603306013960980985506358891728195860205774397989779463369320236836801431531031400180319795449967895057707454761616560261079849752739099305272431982162989089628670786268997766688968021433384769444121679497111789586518932656181458802346232291498483897333474796295232868701289509784768654289509283288998881606044276476260427790028067621203360246862252806811719807138025418992403280774010468606627885365547094801753071700298645801154340811743393931017189677207694637545939733024704352261573652627480884480895061435106616486955236061325245329949824608691705639646758549610202994981616526224606664911264178135597668692313090642903984094435405570008009605891108536042590073482088817798006736131844886625726284675497426521137776725875264062468431414457644021981329044094248534571672529638037994528079472753266309709678852563369450646635778294469301294486690327773868398678890357280840028393373184303116522385918630986784673788800503193381424059177078219166455344367188657127273270661746188827305312999554978581698558168493376458049554405975651504885114920020416916776173556270556986573534796175184184572156008082579026900887779259271731298497239577231085837282500026997008218986155821774381984906864092955139051280317975964508318213127068555667467820474841517917650822134633695815151200259827156640152764447703597492910535985557588585763380086925462519809234514777066827780117004499797081454958689775193928759890940602363721842428947212155249440980411849214614886209838877928738305182716672453544534688883533596807737151626947027397791805156011770427283948343154992742612705051605156069057876561205979784263715312963860668652593384161740696740463110166729526500887983102012621012870575561522507543680600659905624610269546447281221362990293502821099477879844041180159739889361066401618223413659469544882135905010401988822289755779536282582350174480442242378921512924426316059569369819989509806614093661809047946275745508489153191086722652832273277785640597464691014044882533919051785296648279292934849869288621190286616042997959685102601921994359825395043820375697048335200107896511396601433411486100745564962005400294756820224263467817403773357398507248680545401865358807368393599045550641466352042154342471731751244032228409388274707849669146426312791349285823557626345497059384221236232595542191196590589892559347513974491314523299384634662650348299722258361258721290127328495991161123912144767654860979195588373394093392933927536195381188354504635670996746330354322129791195474185835564412555482680078833776873727978958921023298981511077864135818502713528472419581800676359514232782331151270235289270246450945835902570097385938982818758524722156288949642309384786048671243703479112472627032718154688676677757255535344095643478546496084656108257861061770571405886607630960293828691069847183955873863967948014781484769278623161891007168742241223891674898234001305968087165470726490073059555481719797744576563667019919756670529171991113562469610183810805620332481572660989591975737955225652566506736310473216093928904876487749051606048611792240602422812607109661469789977387435312652335239723820528864686936602660264911782506211581764972426472463543458053486143077322350442811386924101806096699900351083079222459353013008993195426563948111715061376579349843086667722316908782021694491960783809712657453123575465661053162018646129972626819097212505156927052187040530727501165291789525431650422373482137035114483416131010051832362892010000227269125324886195366186137188153381897676562045599188600259585719767955936520337787260547984847893686156199102600207437659159910951290663809108479454413333024437545554302690535141782750620665748653934907454238493588328708478952958921733022509372160837866506072810836361235953329715731921600833689340582092043368652209802560194910416789773429134272301871380902586050057291549641893280039478531817251990205186775213630600281830255980926557892459791964828688379715981293676263403952567259804489798009880200163152328596915319203276744768799154951954902081368074199894926227175225602605666967423572039977336443922691936323525153529807405305574617599743266910170038215163931145759432445851300080640239114323004796465863107153934515662642916964599889159213981049783586485409931884781201660977515428087961296019659544588955955509765614160117056490745000849761066356977002775744423972308792594835507084613541718549288983170445390008546042908560258175512204464676113412356376480629542923148987781344252829392550286065742783330778918493913734139068337756545978410018070355759876095460437499716917535517903931352609855665716163352736132665772600931064044608174210099870691994332989668694744600887579002771406567901232462711814799836148275512416697530522511908309771418180371131201721182743104818706106648690599263053981662947528925491560182275135286941170502819934474824402692168657628895664612940051447742245624451586371040183717131108153354969661872973130069098474301389028117962725499372237449742326803216685164103693127394038959993525456907767352454160851254457782621434257004121630570251323676453809078486283740182763489571603149425182582354195793202906337704166506890404897772509802291310644021760808987254444985881561405517360170698357522651870072600363730143171859999950467674319138609556625049505988251287400413345504285514191269636637183869867042420968184152565831188861489293445805163633723219777851105882434162465679327612991552415929137993760720773205776259349295316594441087492466402577162906041980457284286265469160817989198180425061558337716421321899665393204865598057909398844864000666455181223616968158283657282653844473422953754580973529151790217918230597133379792985513496037407315605529138454747583805718343016504248199515370823396420159670750300818277604720679911871067941367186977137394150467665863603553696434484295554712999879383059810089283760420548535889912032039392565692140913746597408513235855332251655011037513819559993278609223633091195892613193608957477376651813383873858492638976043494994180981433454150085937814319446743675076115132928318278572226671980829515677415205042994526654120440602116336050996044170718131936968003669974306898599362724201691127558885085690536372782720978533402035816443281250503353925281772561110104465724542607048130720298039753802011317438884852052864235531149507364504151062868804923251651771679087629458180876544566290966159317707370518761253124062609366654602076275338148712616731093812768268766343405911820455266539259314310789647319514321277160313554516916993511699539493544756579601972976817025959267102928909438696634531962617678327549283176667742293901132315081260443801327984500170078429728934318386051028522001071834387690948502429250859830475768628936130515652004186215254262433099131567749497016836770109822214589168200574921829517360688658547890744926284757148002129576473263940556371966583802201178450188569462805290204152911324661924019081159151091917810864521080569704620455250468040819420660589362471262597866719092119226345638485140313632999550761036373340223966246078036169847879749210931657118246849225441942267176095498886935090826861374963196006716837791644190349356209318100642564887918331777337577705715511115916847772606190018103400574669783683362246200025895456716070311646581031695713267066977017751219851114762579868835583442790698765775376266376818470606575161819242257558741599318179231950887243960173450475619904201292713919539450304267877476125632073809521989097038417561010852016374002960446904171814749486685198308480120490632670014600787851138888286707579762393650246148818559006642042712979363742551466108082201868257091895079115693392076789461875232653784288337938970568179930905983782068589860871209245877118650521607557505856566166756410512827735292207674458710138698907305913089494113115777321749622727821335608631134195497372001489896619072291321049421665411855489828567615311198304293832714020193075364438611605982523211185150695117984204406141512772113326164364059712517769855596254322464792242098263528645400853521078272431902958914161885466389638090320102191657724342053619433906945707910596890867407262747690935071652206590488912302457512868658532994687452477166760075643198373447128263659649660443513981422919262159882030496094030354554827499005251356027792556132510875432602231070840846374925310614430574597068796689266796490652970240535907348547016546543508880878848895877808142755272704729468746636955139640648275503620978955902793183119156224657139672150857920368259812287188286314070825536612548053262157663117202108671930583075235551950093602470071806658707720206444403633911657005249099060463376263400022596869986357062928024978063101136101884300275893426277448611957969358618442096437633102334557113931741056795213473980089301921959145285171158713721164118694330087908439725510257270464918493256119032066839255439780232941924216294009073107529705895147731309467241056672827230571504942683732070235838247352741561794703671855454840890477249209926043973347915391240465291884454157845274144871939795443465788162808635971931076308696295998331503997842280947782801945673538380201005032540614963101036220624524147812751279466134385075192733931444929070984385410416870402411524730533417080538175474194952860179979898565610611834532443636360403434129819724035812980271639643359136894450097736918790126278156098173918075988644447705997315238040906352211557082674199896851669166466623767171457997874987935823553617224133443398841627011546293516095859080396491000574362104245698857315061194878613348143896681490107762752823660089306892567233938687887615178279014077594642500585927540699393996475595483680546145608817007652669969095241552182556793979714349292933294147714269386950771661641967567533991214712792710994523307332810143679955339601602641173081125696913710868641099309902095381647332152839631641609992226528827751009726596591374278774454249286434729322361512887032442708150763274644595688106911030276085407900485819584078916209101493052797926548318537024816539987397188044082971009697126959862326359418724404168702404061106342361529955763164166692563989363725198204478821306591125518258695448423200223417233358015704779035171311863279371106045275592164734425024807595258928937200340173734990596806274839669556950578830972625765053918154867589701922923608585734328118988446416395431994220677231903130354848504936392676203675569927806196048983726227956447693344237326469696204453374310175462361969520657548719021848088514367880626655853200984604517834777908692292286092769219625527676155610993943588800308873020965617110352807697497406922461910690438778847018946942624732806828450131970617115712867042683669186152919645805621812870341966115538914772747753755306971595812434344799002601240682430195510084399157979756451746555329698615275245839143226260395109424907914951647853634438692550099747375270124840893341362679905453359040464985887052529368072303986121760712930441550426408026329672649641094193430015197963130877961799936816133071962127053176477672015278400911957628280870409707875658869252519178742948163103893603659282510240399768062221675805506878870125662823504922929893226161480866620121819872213288767719445186654125794677781661964341038727394694624848119824936642227221125390334942144040615886415753249565210455953628929819131829850971707839520193547971929284030467237533663451228644017850703105731148125145631181464238956773834161877727017738953968646210261188986810497408423287794165451835342238446360780704620169583141968374074648967775776526034880813106898530323317778871679249384188911805051512596404911570633443285171025068723986945560041163729328879373297794849195534998715887949078074045700081617644372195160204512177731657339816362193859846009266222469475464418038858782910935576674643842579548821619662527449868153370754927533482018749377432072348146954539979743044988788116695164239233628860392210428211438089135872338012259598723368790981379055524923554677342090338489391638762835392690191258156605752844327927768046561830916998063806030007543164156324275858540189620589571049658104380457753458110203744277463085245169910880243467672876717589456761672703442229596592004483310747808598474766811449120264435309205241107225120157414806838325557579362898180848876871717208632689197429329960956770362381296023448818655974604747916417408966812084952431973910342654116577964551059526244221306666165438375270709394485024344307311572912744176106181493793100299607226404473886496870979410566247333040782455555846916186355339496046181479684632364697761626039063387767091510341124227944984070552409176597429781491928560293198939475104793841090090897368569806020030271644053979879826824357677443436292124753456204958377720991140491901408062464823962831747491660891125887440829503615162791301552008845955187050408193578602243413317043023557499177975768684938874664934639559584223225543947719286237214473782236590505778254827099095264950447525760029626681434782188554556919500665711828075372120436925324257434580439955420521478121813429813379196932515337972745539923761856798988696093658070549474757557251439661728436019835025087841044463163582521578002867701026098691729870466806602305160314307918347113278035950429804837056260169497048792270573400851691645115116245678979456037686348897608961374673355514048510581120287641948038579454386111522251204074730596350408548814905593003790231747853393213010294956852601858578255603075388342974409153924836623814777289689401576435615214085318451006303686140114039013220229322894279754849444251668192689634779945164489978765073176496214983289497286289243722503500477034542211354671192789069926172159194292107645897760352187624875963237941470528223068211900262044671884898503133095650883339278463443163864518594768967223080245397000792593850296765478530638086624800657959183097483089148629381972901537955806239709697931947332202478343465989600843576225905334135253264093068900606590743610195535069925616087284501114617592331863993838439161674743306304860173163777943664169851158144198907301423711187056248720266018850107089210889331671520048995562210293397978227795988958335156767153963321661655911591531707011215472282014252077870201043928909648678403405412349215330312724128996402614850544669509572787336459761350177424614540138940372984565743483215926148999003609192409584715582966093666412380390618287274080087160765718678861219723992172606607945530907647874335100687932907892127971204013640746542170784996278663840648015305219068708481788692437759881409353102314922049101102378458526833138241712958575262630478330641616882484342719208395746600794255489882293889332869342935016263138955181262059495080291792197127499290020939202058850868612881556578215261767322334589870835639728262320294076971282111157738773290842384075273004991741906922862340867609574392147135250507486410333152207835159112052754985268221613056619346414104419010004090713205187532451764020462191129813390126625814024032207004067300111377949144071964767568877650859298372562027465901690123524185493104781132758270077447209373248823705604354258580692146136621610551523867703373999906525970677347829292610107124821639456988037887475955417184750531685728308093862718488653458456790382941312776081525306211023779999457593396206120321090063993644828289425417720169225151858522543476922046693411898590870955584443374175252779701694404237303095343760017116500394474391382288663807781062244904655780840516533523598249069668817486217960512508444406287457399687798966914741868262293713210713806311489116272976540098890949267771122989206302481997899361970710973147901751262731626031986252866666091548960005058110038690485486755543581503178522791959631383472502173159646516055537291724617966128215358416841815789547774888457163903373985189294574020428248481610356787379862234679395617329543445565701497348514960886646085230936449434886562545176444953430667870658025498835863977784287209921118262368729057145433808558368146294434908631920489130150211034116510090521144128754815208088070872737509819338832495569159229389661764006819871243727023729682832010518511863618553149922473522647341973651094004791489946631635997078775447583869072215666672531479165419474099078732338851257599919393573526791873677551440951770240150113724596690883602138934101666127726103049524534333922606824686503050543146571684198697851259066519195366901806206314772878710056235312964577570447171683784834786911555082403942226463867587952313943359861013674612726015318895964692764753629440401911556445576480701767466004919436035474124497458803635165344777410180408000705342425336246712168375191259926210008444704387131734112203594664956682968203468289773802398643560558246199208356892669882590804997910634426986459745749805073967598368902898580017227695446766875451883524084539758383035061398232788883896996126605073519006129521899996821544105801968008836713228848081261118337195641906530640394478618734895792032006184407011631927885030949684540843304675330042172416448095096597103423493455517025775485154153785997839316050669530264701425935919330899182530318356747974867633417922511877328866648974920170286759412236625844045137109342485359522653182068962071573194787418218214369009612400863808469471855984450387537101730815246699045684118750262478542842492545402973035144680839385012959033757184084186231990189335409455431566873871614288433240537859302223901346061131969275422472967606940287787967069026888481478039350253843060240297785407745632222770560345986765630309237982396905530596832152290378383552062906318570823077167691807281517291111165780230260283605711429998900490713026124367552457247750307397001629099854681473160844387122860960298224862625327227267120792823792454088823048587554761323156749669081424282057289169191333052374882742275569261554735722945589326472183131107440480890000859218659636957468224234419138996142721887153567532168058216590241120461106028992940275325041220881620103686452414436906578468491245011978604699948835693830665759326426821553675753633033424720668672754493115668324944784666370278262948825270315370085300660341079188613550730792527275601249120021121152702247809244423635283455545280586879805310550488316402140510321559018790006240716005730265415597009773406300483822696652616025210691130016630894025043610402060694061933134489365393299701849109852942098902122362155817270537452714241527373652194422236925167630359839599699996894800039665810076064065251532308926910986745196670571288181994652833643328944951132224496540691216589677268583324517660546547735510607631884276558816699594992658234714989093589803053455164177307846731040420367814317261155729141360919628844628956664235884226967022472054743882758282111422486340372046471749376139604274784467124982549891514592112137662535974286528089087310536757810323072678327987862698342054038435421656776624731786074598500750261825720699041027979160133177498407628489353822401731854749758427498903593370013509139712470101844398736225638202092887613767693585500659527927246210044290208947610699245251170980308271055513542629232913639592075669040319895365766437385404005545580799331353658634546745985893977074974801653038131833416901691014107000914207795776378151753775747818268813368667956440564028447493256094022573075650508335742121162135802571420201296594135501354372469771229398185166956163824273861847941833698112699759332062941788422271262481725052334337477648780853721316309800782268191380983217745154252642209068638707702849361677651816834291473143010205443877411642492171866358806170288504068218021845517252406870043656320577000098370057237235810635252769103906927593153609530097947306518080362195792487116836043456623012253460018361834621627027846897751068270968698504401430663755642346628211193151925565073412550509677699841855023569481421708260904920966600968025173428570563429350714335064828170285059817466841069337911078217217320779525036033404458676965283083120155826629309851548605894306938582604969562125730195810888663187176128402549995276457663566468951075794919520776995447820727368133508587469395138834772123675439001396698216406969800416497055327383036004080991600613570065937374007207810038162929412474588338871158445761301468874964796086672881482298943946811938042527475478492972418388222519267748881539882067986567939067789946330137389846995409857524317157872798928508231498074837856297723816776804111882953874508341992914656627265661998534163685413376650457378710505861027024858755049238228274200358932455447453804774876309841275166858073560133994323208736132268046327499275629322779752831606097285140225196549470364462018899315896876629624266522839268512919904554214267193538862095871742573928108144926205830414690902473391652899830214107202299416746358147694984290963395852981772222211497438697884340171462636330412020275543458196156373961557390448165765330181220841694799331633304244225551774127207910026347133457497694500982598103707934569449691373690861456162145475121772006188762454432540664133122656754520063473175410891635808278897003396435621979179540902585693581849752417847156202507529514883374279006117573981579614732023001478163111204035104422321560964819455107063918349900380433734697286933367273347859630856823970712799736253659733489460028079095898639639851604084374158057079715457222139672893340811033022868070167412530102647463641158941418377457633718409940733196049668305372517860337102743206736411482704004151522601880821630495287317553812765922640499518942166269251594787987339364135025627940593843598422842410277554624567001336611844424813224813977827144065530818710826297304294689923466610208567282058709738902626182280786603086868773344497629876168693954847395260835941980845519562019122119097276151378716241657239534401582969567450205454552827288534362734900628645492859173076250739819738072038534892780745275523881281246191994372484899504921800694000503291041085004318123354891997217128580332701647073258711549682211996838532789788122651039497714864692324647506035444627732004246236038460874705268850333780227836333971192808430887350443285150914999400637300277803302513936923511255335219535666080860609536092515468427258370209602460796213679606364857044883520817082605649122403764118419606989855194600900471489630052844640227946397563859276740663643281411208049225213433365229310797307753823992730918305536684032083992210930538122108004413843847858977887784373968277893823589494842229774058957410537818168025130860513263754664835534964163789651837940438613293400204592395446408245771948032104529051358042745834883790622801259417584074189817974048867349447752382073686159501260168704845885397781527587285825833927683221198064431824005779753904104125210408221131090353738125034356951624019295774978083482773876712330607085635615163583358541088132415136354829851360378939054848538297143508174659551808922348045537990680768878679546133093039657622465595423779065567231838459709394723201913337950932684243228031540317447731699387123839574101760842586912819051076395630244363223989850358861080625208775553473972271624614778699588543352211932413033077950137396966311813553944563950507688297027148404396391237417111816755132570739274253432760080135478650942491648143207116401169933845208595390444080183557206073563370032667869128979643481357303368936892055105417904304186066274376613775975620598502181883035585687924764762796712781471887349214849215543312616184759256657701816429639222460707849261199574900313497233888654732416048836884818967779072979122622242875190498820363379440225661795381365277138037743111471047661142000932961112572534071049125823097350773525941585035675864229585776490731130782070147386632752844059347136783392364650161766376714667689775283443413947950452150703935074130451933443577881420086255640523871258865758815981878077738912699485059426443350597241621608955876569059690541689622836371259398741805845743326947385722864639308020702750955600421081732610068606950837218887614133326170537117158898673350368403857035478018848949524009843445587941984732768095195230850649045835471217539866693738574900653927217178337700927660204227849684631965282476285490759408625561239220515552559501049937531767826601090422783941566463788149917301125739905451823687913900035126366788719721344329503577750587994621564445950138884919904630278315359087230164275961985530157080254838814993902375608368993816828924072811715338947731203286662632240607438924789226569631684880487180640255503124668019341435135494735335111376060188204172388138807166687870588722001143555994874110603124590977841232334015453186377606708128971088474464660503500311279074918701340963220044190354915232244962894419622392135553878999804698372609913432328942123817044268325345027021046387844812258242077802414445189164797698560240894598461917879546562848500244134862446263562093182734811925553841177720115734987496231449201822112679658162816932188105618086443695279201122087825942854959716329173446738710885727140847777174582102173874331640812400212859583025568118553927423408944726434367439004736974111626742528798004837565736819125422120882438295439858673125724989492109078033052497442189047854867270378793871755261719708950797673193319079189742845213287190374551685746232019624024636657282969807399561121194268774592891556937021795419028037552013022642995907566314687698320150580171677234731884392661965609932821995142927675267883218054503085813322597142736826466987464568409279823058434640622141383615328863043932778339412247254904891518195822988752295851775468264156385967723803560245483741090840176826044883810679011102071890514203199231313044821917130139739664941549148217813010867123916017849514290381119490957361909288652792850958143067441376248160896071856546911733560554646888728935253306829012661248756494140136756185136015226212769878206854144556168491425803165985375733948163781877987807941176156633020016743215622096308294857738618470059182964440197958658274890045757225135395999500802437790747959392382994578672495577626509786366537537199515953484958801850684439265960242425648974609122299141302220157221881998202298409695265389538338153335567667751844814816396884103889575100252908072800479069635016598574532786644093729535671710822622638158301286023793825461145635029007238079663405677430816764386857428671682660631775341315551841615406468716328265543476023220289447006756700540199949539244743699262121857374379198298247142250225720273129291323444969265754521596469876694316564533492048509997627505204075064876547545703479933727657041901983887937505295785178930261206284943428282291977365238004264889533324142443818264011364722141752422644241214214207642030896198106864494494926415322911066732747736088524594575706635783503798243635960981815229629934355805029625658466670987589546545395911840141858937425420842946811813911662698983966530159091527420138365046367962749069343537464229646528347017726527330339243906943140576592728896221031502111391799336058122754680375461017337803733971489742416375489101672950635998007507949858476509094863419638613142321691396510298233754558713650182028353289484229778143272377259542026758202022660802468431568774647496128365969829088567169770828206313223450169839599211953326377736614450440163625124714689067628827737625559053962954689011762398274765673526144633211779447080267805665146237148316813940952004303733679793545575967233576433384326387991520080998910941610229462090322595709881728371047567842488090589666152973177408342982532599341885078386470928561712176196041025461815732117244491621194980222815190411167991582016139058203223887503021167779291650559878150406118915195482557281084179614240220201836283439416825296685072208958530038123582208828180632017478209693700198879360248005297541007423896892963346771589677802156001210711174023757932857276144191104432603058870182325042334323702769488799712741016144161506780821723679939019481640413941196133672237298881654876263590544816438780297611716880991277350744603318797562105395547200635813228702061466565299445643023448792992390569321820165012660596273381024732327982575309280695979672131527501202128141533378298348780350817754124314428921934471984792797518572762759152892359275625009679774777527499348937991273794882605299444507533558500424455815775635302576159352346348003846136626793296965732761983793496932116424106836502563212253179252787458315288465527062999006522790014415397192561213936677580070698583931441507948558857210770160695875024552171812631364402676827183793915446303912437354760171860233430025145072250841578993741379918951574751516710110680215653721781248235502728609811046271927667687614746992329070554228740036774471794859769177673691853787922445714266404002011402432880024392450379803981308289233884973035608033706761474016567624664514999363996231152451862286607607515792512782760553751567418653595889448850171143471604363490628855420920404133554421958848258580537060559887939292639548814724300268948283896744375377496355625764022204113328210929818362782367623237665947020198156446338073570342997437476633701648294911242165001310581801512148461809616821010568552869905367636784608166744168337645175918735887782626228806813901735634460049175498789120119924523059576937431510957133435599982125135526981194106041457695399265291198685246107254806257438072625966942140201028254868223116856733809376557706424540284180074870547670855775226783916251750698953066697343967536937198268478852247927955655456119634216617192861082489646977518280389232826284807405861719092651144887973380462934790581850288074535092121636381588022398023134222025177579861932139869573418658064870377814384082947888227905220187530944516539196337498471286502422869223442068293726966046503986827672754500798462960865971644124417818581096412811489008564749872840767890766117889522000448823054372091568404913297263985472114436007974462057542331185718598569641989171903302930292424170435807696489903353698873356342710422559498807973869107404508242050209179958962751461898230351070479141035480681297738680036039779033005410034422721708750833562650650453989838065115091153500378190575731099160752994441758575814915723547430158666880658787722617735117936358811081214988161170644276441856149941764888823079005023799925839868482242335326501499252458435021900200940074827199122847392964079718700719351733494838031981101856516616402587989420818930696907249271673042550526027321306566235901023772538226917345829360864092418678346715600748459353903331656341355646086903760057873693383177915046218402995418309569035354453971238510447890387672431175430072347219991589036414911415793863193002547902273399103626851204768347867056927164255824392547884796835091001093482149725905801964528700417623603678371864567388756106025500201018272979178080184682648150625923228959619443556678373269202406059854416996451133090665584900463002483246560826511707689321055724444000241447489526171332639136771409593860484839687197928371331112698407730533776567709347106915670997078885619367478128414862820424498356421670036828444901370922331849692814404317470725859006887872106564664059856253185530471035590255822347619785552767666501858408636551753893194493094161230424041636638290297176055139865957340411928267764430919589868479057432680548546492570065354390071387341670765387879539736531103142871943934653696173099667001366827950637885828951999070070975851382023979943943771194907234744018756010241679798869388353229366107327161383968319514561177921105560428830357360418054794706814349286123793950601349110913905259634505790421717202815548198023926309587007899977360199062912967556611131372164135881052076550025521602710530381045934690822211313151902516470866202205795827065468902945190809445535855611090141062523821063425524119522542268770479160946962261282174378928283389367149404166062138350496461776115378408475494718097719136831906560300619266921256133971865572777405900449822428496498047915027391437802592659060393778190559001997876684962708249226191647192670633099339246609209528411394151358371379831456142850158136940372519162274788918736610890819812550206141573219959549985223704522799620752204809662433260770992852632784825018171323410904060564161752569664963278691944828209195850998701727990594247705036621935988265176058656039309569016255679278627244432302867481298382592716614605983730715058847764612285382366599676748512596936286019166403368900154666132731136441047313326904835983639817227097421648997257068398993209581727741050344249120733924258559015753399383740274941581481671877745776022373504750083033966286570569643247793143104455252271118654454865413655533003816625958322378614603585715674019303406839092786295906772349540844891714959793648361375377242277209590417254514218644909955342600649794140857521127076361047217941084697196869841536362010869955560130500784573947583821531801620458432073874352980265480042164911463023963441089849329216508301279852818105664611117971510358873891389932820053916130728306872103305502540241259866547481444512319669508174969066668235344982855797259095177823789136805766930174870201569418638965882508339724042790673058826243161772936439323977216980581792960519281211853926529471335429419519993071336991042324890469476585732378481783581135385287842643700743265877303445210845230207993933534160876318094239429858792984418559189949026562577563040624525501454358719540008624394799589624702096775579655661049241901146558005647806705470645323211344899371952071473163083137772729362064215385620434004001035374246588854416167019058184869548958475000007174130694388598058164176271658334328080965208826895464734012614268821721074903525005658888624149798281589123878870373092598274696445995890220268497520050503938852198724096959109693190285049771867547090190131427362982001762501480801713740966041561469136287711985221444666138844921581363307169985247301989429532217120262238297064197600945589227467946247256874254729593771779032785443393724257602591000637617657701092094815274892626439975443454562969622925401167080597470883808016978675097101191911980207832949125644769751903132513062997458121758042610276069599429707068005057876464320698591796148317195935975817905991866346953614150842386586622728007778083001512469619393808616617631003794649013871829678038200789879844413903255099925780922490755589120562171788712172313974464159753449597659984942681967142667249249771804162326037954143683956161330155901419307509868363369302027821428496963232948353016356864662414278433278508972164108714044152442292785034836516598310347180874919307651782529844950932134294117294603281743650202451966005047802423988913122742234135561064898275549296746477268446901498572860708332755567430986433159767614550392855164671126399201163227800039665305440734304537529503195681789094136089056550973114416317065911941865758381731767531563792455558837333219386588382395549938862712586941535618725501279008427091640430714331527202240723940458668373054806386153536334556824305315018350554298817237662637471629810943854973917500509820187830376013034599906864154938684962825951127989841860470903887999062801859324761795602250136617737319042377620718231382712515158634720693169299102638301412042532125129268330282552716143300221856910641128171538337274180940911547407010496941484279363183756277157154685907752841531465120301458235005324622428215975823091824237102376480643290462086783373476069880374433580575806188295048667573140206456077945197957451952752558602660406427883561160468041449415432228666639171955456777535829218181181591012970862823565421899896069203633747988152304595411091466607585017319825691845918738639901183162308328041037751158899265090150715423192853014020200208521828989731656349330944870913306387103015754281190253049328676110998780875127578187925404343100709451956749328695103888908618037973210266443835740167914512579889866752361500563566062638114395963513597828248200104416324189171340538786976923276381683763772438082406451711427676960121379831805059461488190118824979503225062760018690431699020320874206881785381200071654229998233365333514442684552991243540954040148859290826782826736434673884964937538351364884650653781785636149031753348284671634409739480595868994538266164417935760888086495649465495220834102100578684373201233157052167304380557896944055654269841023588495610896041454396608290127299007864905342984604780959966030384240441994638346864906446320563024615114832636257941596656456596256476392755965007965096415230323588436369200157770439243801255646623337504601324724568271546969932824318167559585223114013192194041588313535920585286840757832950844331374885645747810205588564551689551785106149098225666731721623641031128089343399928035564310820435570381304798075034775757248001619309898827028104923836688843392880332316476416895007568492389518723051545222901057440523861302165910304560461465613265257953622758682316047814681484007275611546191113958781659703213077965073320219434064007576461911721058722085986551972195470977763712978420321338379146327481517721790638244895485473636889069716572366883210838136721062694911615460763992380866068904619326807199255147256673838062138154005581663855091641257355076207257659677484187842574479334568685615555331048960207146050114544789189831728001105298576445074449111487750027398805813268800208615393438894944953212412847807363473382396679199691169451278824036353452662396654032392897850780481223082834109845327994762477941594040452660821330934990244491767088169688044492598492517804937138706047400781335515489929487511517577710560780547546616075214281824993208244696747944082521085046286610657867597982995084088360680170078700138627045594117847005489959451438544870398481268619442323103898519301237052050937786299362997728520036449930139309179325683382448891376497086865999222181895024739291405375655389520945430800707579831577451664701371639396124554386797282016342711198982327238990027100448565307223215139993228468270515141130602738789969174666575063217891115551934157768409838452926943129988915961109045035669339382391666884722425869795445844021209570975355891279861583928712562306945519542489725246151492121312230359214277023379794650971893246454763561088810494414038843707211269899546412024536302709914268826217943396090239960917106012053324491304780182467293532863599389115563067927118195967603434647763654394748153748752746085959259181973444446229846409804077904032212868375058889159154127572621729834264545399161932322344752776125246375316733819499324499002055653894638419242170981796807658944504309513995766917606063156236338132434391777049288633963208651085823991828264312618104984155561816412240511077887618332322296672179249297541532285461845950419461739786535971984752940460982118172373110735061472078760387501466410520966314321328525074459312742062931989160012714705377229544436323642162759529384519157196754732022908191354084043461357004680240142013968058363156912315639159879818643986856887536681901566097223584147652840600805171697017591159281994525877124190508136507300480401657918603314744636024290961731088293054440537117429137500524822530038917533513437193528723607664442074562876305724468245645231042679392559412650442369984168818593321295137520525664466236247320854362434022307788016583589043375609980625381899345490675839708127865901096222854495622995648458984084198372964586319084947422533899723090836392194195130992243058417368955032823344833091048481270069011410497066005542192181554976354808639689737385483752076946629732354052431729546293409755663183816708237419231400059453574109375919788808667143195555036486960427662967383495082589317904766348529142371159684742405683551519892033506221432317998715093614740155589388600599309037266914692078211479051701746351904235215664077398215484009826921892252594410978443406769642585965231413692878844203507728835820764539104130115695117422765287639946523935798612411010865813178155609959848414402209525185397566438984468983898269885064796788913223922740386900002686603731846159610505905463659842835480454424396257610773649666417024663202986247637116153978799857078012403235959147704892205503390672181373110322652234908499747917636112805054304707180752785896772811231703624747345861665428537621690689339193426898696936288959511185009578659414143972163075713065870172609184390063809337352745317019038622746036309978819073754176995449906691926106629883343830325032265356115575291200611580346124179967517283787211452267742675855352839167940218928479031171291253490733167645337006902714488518069541087648094964192639498905209658238508674989324808947907547309556459325161341247888367007935131431513793841048578683354256303126067872747751398279548254466681396898940470535240214841824784403739399898539757728327360313953505212524273082153621817651822423269848223369640906008281253673739943465719657081312545666307601240106900734775349804415522154179996986835764839223548267727994983323725617052427995717891174435349357017202725293132712716412195714600572790832256906294950901930936241888085378739399632058151953072391866668303922933897742035654019098262235813331922880527065604915270238430737705603661433608011538617293215202759157108711322406314879308224061175951688238473974247550695457289403638124711117929028785139284692653317141217197275287330370171870377468668918921725839309812877904272179144234429258047176246898492340500663016807844473714794071949881049822843769252064885604749299833734395884877694256777602684738525962690409127627353799615856685939572468021497622637029456127086952894908128574049840269882679882019315031639804654735210605723524710282827278814681540809613034516850315556877866564257050564346905663874007337115975704130156410624915812569271138901729467847641368693973818768096602131925231946951152046902406049351214958455633386996386495205567321267724479465817038698544073947017684700102568235731644594170663414239784698564879278213040317656463934621143665909622873877145141426339209713255711618470490795215255964857302967113492573856257165106569498636774023300629562532791860763449125494639246468369078279463004423105570757683735392864003674075403832088059494600320261444881947132510062756432421908973391252493717931198717116765995084255404348877035133428520381196745471234844052877188188850062067164124148559750327560163817191400096165832032432679078910732799412824587567416504821297259037430832211248914658884000614184566961314605139066789774807066752455988128186148728017949184015796534173469335418269037355261085685569695758741420014998522441177854913139521356844590610743191952008995541021550540264196672782641250040638334915418380939714173673194746363539218202347731903038186214918092135984553745407997340624825395297107361358899210941238685623554720983431904877806881385000286879394208060079963816123295265691913956994105020837208453408625911430777550108089940037879585359336092673668619081879468178388559669653570368994117989071236171823032305214230518021473984362325756482224663035287234885287439409341429734695086722362839233791758304964187921408418470151677260841223737173653598299553104063939006496837109780943566218265858200613680095426585688469562607178580989493268430062106071877562681616423237067711335515561148729933462474388701025974913049277789355648855919966587707507789077591105372584910295923979102493062937204650117542039160165336572166980678311067957619458562936543346544541411010680050083440515603749956940393806681977632432726544293981664997607990504794675995975759090718576959515924871486438447406256135696327421370215304060264373460265018205748444054839686468472784617255058792376792396771298773581688947070135332435170020476528499780105549185661061346743260873692890650088115103622467301207492752536405182246456312376232622436461385403012032177278491766958200695198061473445486441719245062105888449334007970360805847936908978911356130557150948389483156843864875060041937682407279651982742727200856508196756952405633396807823511178780205762704681473391450260207412145384952519083779953160241472421728629570504142852446016086605129307437857173425766490516603725063457810092414655857532765039686593325070908806564696407279082835742720906123896330744742107399417881461974048321166097495789004163583083353572896785510283178284822891776929353692585687688063632056543558479110813359829011611232454422591632692154996809415795453155991683855209995942535295459757589521136501691937754510567065669367639930067090478679598402797706262703657939449902750267420814380095898523236996640562208655892978001985634293092153107496733916325591365921723329960332908950684795806689532432624390639272136012386347310259971280329406865267550090542801146188568121714455089513461643387779484219627729124182562811526630544038166746304980167405905631724070245362789241928231776995759440911932128603504935250176392970672260456760035033632620635201227327985346629348077179398686132263491443421625689302320006039312665678024702178050620158336016676316337393872006548355750973711363175576860844322297117102257795338459711196958090155728379900908730106101634167149925053835503126689828131698594286387974122345119798278215316914893267447916955311506313402706067833909995187112605632168662818541291048250435750675358459864736632267766241158170168309470555343908486180171794739776380472234612079026043818270501372097513602855144378410766250363317876907756134805615057612259436777999113994078584099960729537670157753957681407795538493023597609422359340654581160054913521646019607051921779912913628972620722279411065285759731248900943108693721442353774948379801096948996032139650810585333658315684191907472593267921363032067379471242776304005996169881314133912005309262453892894936580819662638965695986137638345713047461913483496347137651348901027473170296265271884069470161396481662491534297780777071061868868477109692341759029937418611976071342307933841253024843792675711628421792554459828228962358458699200147499949166383533456732506476988946324525923799749603622072910200673464702029777665580015815820167858968596926589394667836360715190436944580894215025960882967164781325775015936700925328154917386101405457908293832294865943007732171660525419869190953882575800524557793447861504370251144838022378249751707776833549880749324875663193652653898794745165738733601291609983444859255388613349052871462803014432588688336990709734137061931175545990956638910752051135269242643647931913788684138881460546150603876168476127997483576237332435614670392801351111034550138267044103422518578065432601751320796549393128197284419513685235240144011637209961697458732518014529665444963578115873863219326928422346048313454031104881268092617698462571143115425003827769007856999859347435854812514054383599838468165527877086566638856879863192278309708946657951323225792299499572955211103467064185866365899479592301168636211280898905430030904762501211825837691073319624525273155035046246938743787288884457093908328214733368477616781700423230835839918009753682265116695303738931519838239258245681122521019007185173681360169308294442820985116911787992097508772600486866396855654214353993772067446332706332311572953002120258231263760774050205317522497839803605897347095898712886998859112095504644953545126936319826662080557362724660628580892266418572305477543291267416099444271520298442096731412804578350789697913991773152559527305404760111813778795534787861644890989451733720721825769763185780426750077023139847865411760032353027629494986202130800076469825194921199350472381667591725559439944926325972855701494284607477186489840443236988874052774247404640368496076601457044078987840158811585398888109817641681256372162277741165670093573965239463384658610010424988870505368682588764462016112340104220590211823993061130640125933222014494556455796411689168122282337489730661082387264721178886261936997330553190306152286960388488213986624711265419328414725253438833717952070576861224714120261506738280828432637588613201236725833758170366704303401088535125822225921602839841366899985383195605830944540575130175818069753207934366613440246413533437797655671260942596398500820299429930811067238675655841383129508829819326233121618957181288326110324411117311394343327517561390132534091363292337208097393851180697717931065344733895250392411295860558543896465556933405211598993825477935303152617542770361968484556891511100531427703732666909909597722952594815884965824592672551886631401915281436196590398148282673974527235524140468429989687662158020183032200722158346921928593468483262548235565619046663028380975359205558523430921970000212225594716384669434913407297408106185551891405077442927295945893537583633066745211363893778414413678991729044840631951503168132770604977094667932207498524360926910248239643169601613275900675438720255702195646745340962369801591756905858162675616327760886979066111124372122719745912818221635793054924548725213796787863291260087343439202565710575286820622926193362012128984520841483960684847022070522961768083366745412214822049965001872482030724441765771982728523984394044504547101254884521433714431369983816134022494153161493482233634040753670803582916929198084442831918013507323055449045988377705348260764701874290421379581921907648593827042420337655428449988465281029641897941200582199713214066136346120531476315821728002779882467701697095255738864888065242699339547256804232425210725365481652065622582786490940539124293860476363005919701344769541889708209114256870175175942118681387771869434696468271923581097567193904810280703908549760767427012822720813817723970966286134343204050925887443001320272922519304528089675154865906168261796322085602920908570674936142524500188483229514057116043955234883519144059914658086506701555541114844306114210855391692978388759578959170336618404918334014300725631800870595583625483978694455611779680877515902831990051530793175420938834592775796939128775574825221106289433414004396029162686917188408386015824299763142969672061984508470984766050729434005134214752545878914362615634901495391362249102456656959730533592210585052374162151587095188000081148108685836519506350105851609733338697100992574486384516607242812201172661231240182820709426067497163901077924778459017776225031959500875726394599461638537795168287782854240728003779855159098202259887845682649109102225536778985024935718028638970535985644029654135005077161078289953047382440441952086557709763374895466607494501872918721462516674316701252595724433576205749923518425422235161471960056821520475933328930368593970216753358240645358397078289383687246965703432494946110823330347894572991463021112558601707637736069260963260511953018371915386736809007115333767310284014506706944814260263397886890668739385015539672441215830516411164736525346217554618884478293268454085971832682400828393183243989339802710537437246755515681370149965777097674876844562590392848994287647354451411156884509192443721206620862560537955683997381000000049467215522502583134092242401861133810892561227791778994351232847930742783516023970899759805844172762674525562383117129956619895713659532814008240967002409249601894530488470809503848516439314249252599702538919165318371256708975171957602113177236454186733912466052980890303700515602589202676988479831707952142489601670366984230335227858007061644175408174776530673835435235770101143806315860733335719170264456646879124954389509905553247556038208825710923637265349853595558366104624717970443932844320229579592871731092796218156217534790951252972947697570532453842850244742222585802199712353610441196726523887483095749881346329880746132041679508441582762683834701368726313269342472900447524492652460771247893785083635399539651230538497776135638052686120747897103000126559517868668530531512489014155477378686226905252298666006825616396127291314246108386535392151581348483113889053461315193648890813955495344557357274850123632255348759981815687017922375042384883073248457180471496122200433492817758085125603699336079412817434882630419112125177338994669838306148525674058378818453082815361463945147019596620843831353256483126202898994814750465286194096723116634501164128935302332128305119947005362870610950110484753716259220975605446232449914431225597593998315683167897702111411294809447032007805562660815722898944549120799659775153950797009971793462434264000858237627903702083082411955360418039370415448249357446878086063882135825205171982949859141796253853868711801059754859128370604046700356564535389148410305939465209603068157079757551615937723098603951306172306679172362003720696293977593654008643811536174247563430066077015460492785726182875163422083606129486687191944223460856925637644244812437445834325973547463537427341760426850480845641266695725182450380470238691692488377944945672304377648551784974117044855080470552674435416734066038857417226557582444714154228841068546375959887876097458041240875257685486737851887835938760341233891510796852082110634070611045927184010341460994492138421992671308001320605227075464462176149554713143225189217141335811894023303500786063255380048465471136671982644026980344024508887657791480296516152338167592750919874490848833173681078582856428896184237482755958776466273860382199139115684298538680424934885517356146345959028401081207456107484813021062992743113197041993660577183222904694634525719249924516999087649256618195598065812344463273548704640592913786850887934660709505864676910885778489012880483999624884361240203775570801668587996171735746606683900084162322274010078049323817082781777175873633315726296943145464408784882107486864797623902377552495145270707615137332059009088378725312444094195972023370737410824546076908336249627750840319039950060826594326002543839600258660297390351260818069789766392411476639653268774743302252290912869564351306077538022430447832022851851118767343112092364823185271038314277165374291883967029587647290485026859571860960358522959322388892336847973506996596517734938508810600011934253495114691408987215101907465552413160476024530681952588130492249729914033379118600704768834421915883458349722657655623561092733474456957795756993237600257983599555899385914238104232806929170600744773852918764026777778051103794937168231849008388523776406783720024673671652402281229611380512656745619811728233988478520718529885947328972932449859864779009887259056794746866736043339195731252322729523189664047600639842674586417327354112562364343616752546777700784699456217556639987209668211004523065774288753376618464220889674057740350009729192062514672483157331840956047659445073635194451440402874598280018859692867563987457848986779234922442146445548825572389389031559213459029856711997130653022663632959350144456112625603115832115666733523051528213095795638596499740547324067597534955012332453383823570219980370045768682065865769862069065486202332227062150541007068040145104026173729599290698714460276840729652948658699730689626051904834734454713996608717338410056516041715171742992924031566365082961549142573022001450779497088891638100386208358090082492440605315712646427705723958533472041860674931755587830584869432157510663653816718336744925889356221381249410614125884526565704534514181642439628971326982785303873828095476335905541217135241139541351916147886709170083823510708652890666978260323022998753650061476744090845892229142155562377501158968939200845957299565859559274179565482274279010526548526594035995556290285955951466941231441403588635019194719592448792398502178970832022265698682326283349111712444091884348515768414516824496100461061023963655421408168248583265306767490102130690264665146549903706303003522104611169620534985571067018727974403423335918808896792235238676778283787852786434427716127637894645707232764051948361555295331062297837691720122651917676006024713240547506214178892729855840863088555147618282615484060154568899967670946672719476663530360554118780349561409534073822041736655318999839163652477579453466718259334425996735291797807089802046449718011230847716348173846133418644823982894278360004658316569818403436442671308243423223168755296247172260614047035677605036129723746474591150483386403875098907286118953511198502933721853802273688550172421104520838976772577687893716075402470550752588494725855728176169145163757560179641835748599698771047131720483234397270355017432109349671859641369227075256112879342474465090929471545165985040370364998335948371320048055996379445911746676450918203271659842196750800141534118970885351707991566057215689912216105084603401066430911696086934076746043974031227220650755948835083845052438097006809564521143325626348497352618111887690887665851483334916866901376847810177651945400972015021251278690651257576638601635050481362477579101254493912708618068677582088588108171552077034216688352524555775410611477335945774236408691279072023057589429908875351810254699618351448160731941189202004524459379386179024419923810435789280063371957083154077451274351773383438137983512988848774981987431347765247305469724534372421601015323124901734065031709945601260412410068441019016944856017192663542244614407547960014996876402114885626046206757883191764628122420595782497276488331852434179641410460291560726248796457267397965563990778484454081663178634430974094672465961155940601146599834153043534767594183366401119932414419199979886077980682971306840868243042632846502738710116304055493214753507424669483615722568953490568841901854298084437474646937978759300403671882913893667632306603337615902567194449372962560733919722218744164905249948965716011616406875588593298949404828361103972351127986391371337565164138619937601143585042215074117356900552511730395108181760444474730279650806177715305244670957175062640304550526573504424845718802771364831276058810932905884397122876105740770185484284951407912910820757313911456149629301395039205165866623643380095458604723347270679548720270846838440672456766864183474599283587348524842113904429942233331816789199720320703231232710236973033123965991519729860652688926284441951113508657023324782713410247407309761542810434607728447009968049923314274947255239728936796239350957341815978113291048101918393407156753466757722356978750366268917223259853599167324126028849815122962697786373325046610492567659929594267203076520106300080225740715456532103648958744411865792445605480124848926713859473100554320844526368495389056814054550760435552723457948681789039305382795361365766000133136009747188435211988716815683643426231462483364308439121009054605199643586299755876625214792742570636542102590171921033962322062896507731861109524479872566376260403308053060118355453656293425749889706754445005532162684406370637915122598609864150426428815216858513045018014978665052068974734759501073962078220361642728898249918594281564553846850104772900446789694997145245699554992311615145092883348586151935203724351537355761992965436924055921327604982096935485965579151446569063449799359461027311606941794304226882770156028748696199805691418635977625676890863770662234484245169302817704014039971491232301121969059187947330125033615913015907701906934162185097628479446952523213274075097399109737067750443430297815207663090063748732974109138608396382717778648626508629265412419157709072167907220741576097644403285821129276537503387370621615650421876907619332421516357409661847442550743662212991067161107591366908433903777442079491900806641964303315902978008760895695942324771611432613357811365139796325193466302057960720205641412307685451042116006589761971070720293267733145461697473984473402941229608326286807902985662662117908331373235207688352420521073553318442166389452540198014495920732575021046915807424999739807694023756331706980233649369214559795211073517233799184451570517253669307092485190788003470378652313334680312012956551067929157232905128190933360759278562228861000206463832333058608039746139858646475337599990265796847528011561230952522612779679390116534447824986415904843846430225752043308075086531551868847077324715078384699374314967236607705656053010343614664543693249055592820838965235695282220363692796654921657841042103784115638783355972332297056842783406361800465166805054538215189378301588688468013600799655477280887981849569921286800313508895669015171374738673802199659896544497697180382383631677220050576651818765117012385330809574054282700968059141772353902878027458872653189864131290825099716866746770135509486873941932159967673266459662119145044497729153701639169633496787320904363801425331213255424628573214720224991786972743972360481022278185583431429272388730583647600496765274821068672261165953556131776727869623351673952777501297966356150196032051932330173137035340581142721895317885887806308429942515224364401347652611174467242253631428618837473920545135481662214592659426110153749449460819176496876621689412758695577725454724976548953035141433382630312706953189851964916750087033574965194237005222051655667400840765071439813908409315154508952551947203305732918496941831318028739212820253079566134401182912264818011786931057472923031979694748070742906171385019140422576437727504692206096893974620901568576624423648311522944759774634993895783735109577273246951705354580790125788295900017596069157519027935743609348852567679160358953942720713604667980746594775086486981215398864766861633243940379267584890392102501026647177884026409081845887811910413038779261464571054532355398006099982806963082002288504086890519312089831000438075337854534847661606154233685105511179836658438987082355446300253635540143262181085204937625613304177905832652411733272449711985681142008246649997488503886501648974260225434939574474285804077259798772178001614982863703855994870867726912381148291101209497070128544277330568274511690991022517978813306058630484714270840555754486393886554311453069143907827189548073603274130166846144610309978068628141193955695475872722399613252557581311147917934833216525552099289637160377339358817845823009113798988548258535737959207383336870817409823528956429286866304290925692677817430413410090432703459368668948863047761535801469254704696487181333255724086618305866375613686570901200775063118172622939918609104040745046233282965098192084802528598315878137128472616950937259940717141540240654103634499544828096115625393972429742443518701943240589516785435645672548937269346554948738514539297676403728035393827757710062878469935905015277267854785725206618216826597123409301407458118009626302595784704296429933976113870631002098590013781090222606319176282848398995076583646780074424759536597506520227141566934381292827351219849633530383272322048101476595223361773664914854757700742563304135722107985414040663329375395502448152374634802849950450521650125540881339127945121712833152259738118983927591175594857306640086205421225193919160074181881899146363368948417901106136692918726721032593567491497285247596775247714062636608563388039025178851903261383677680925236632986984936306960970650868526956199683529096972706171409926416291764017316294355627181626600375396090089605773238586559599118148193888221410551081407914443076789500248459350581465872657993241545456093091433251208408999449043278284952196794142428780727041076329080556341406125267202765781314976615246058721762330557964390509441327587740845729243239805148456336409226838964562150240448451575951283669645162665724948868230445049954203028760315727661199321518945999701503804099436460456350636142341144161952849581655700487321452399139650472578618298830923510947614095981571263185472335328824137118875533328471564118474267259210774542079573979823353669941720277250632370045683892859522688754318890465260349311888793584317767470159189943037311066125090943061701996791871629732882220850200805491491674693191680835135666875857205600711995202844684754684072722957545744006914285401465642457329141185308410472708029043010081002237841458673927254424707552086017227379786710589028386011226998019253593804982537214120846368705297094731554574377556652016111906404612585071728369833392911373565450008174814156464941621035138161502818850073470778427005042952155379314070795429118476110146909906160373439675011557571547047334997076070653970262726435046878103848015679506685741841782695274619610607551922320907906249104135526420394576937504335918165906091049377676041140475695676926103221126013661401283741902015509476519605174199784069490785683471795260964599005777574726629055489916189616796085722173821498895267003367527909193179003825011834497847029858106470430284495584338200220462327871853880376091154523184756556933740994119014648007647341697383906379124962222461863009597919703498219908949114453957938335446024090718258828411728460207216314786900099961440788909634188521929784117788643234696391054437171511558992693487022094486686148310744130619041223161570609427740950573976772206964172942054313576337074958036506297379289960946273711454818667904769230174591328048949162358252263176807170919832071707310802506651854465392322252760268761447957272217086511926312478430341950104207230187386986444042216550334677219086598511507444087953951065062378345045247490442749554512057568616960895151805251535056425786618330799026348092790411860321252042890907961377068358643555213883155939712771967350781591661956195201795182773005560893281363722815592711992625246203609966505481641328555904975475117220059480520640165920270475343677899240215917601160009198007500185541205165351778208927630189698052236601058847914130288214241355988874685926831866930095934007167195110440969462608063945055586096769531272151241011307953908455070891060891207964035741921489869672085931009844588818874105172535718789932352183957026221958375492827191331702001212130239694974791406928644199241623472388538169113879940993444095348058242046381575631165780121923704144115980271212455395911998073210491666303851393993009693218766640518515121663443911234685400316907041393679591826402080774306558906347966147412008563648261348732699883007383369550663170491528386889583855383771445766684333072806002075199685811141711932334629192162045302340798895273543866604967763071952440546701211767432354774703433218096409772049950067123152724169996442776409019324955203850135360002166490913027891401044820043805157518407832842521688569745515485850980335486561374238799520062768056081580656892706663471796284428750368784102771043152340331131244806124056894378124931753142310984195490580837299765988059582764676444195557655822369730139938213326135874516815332212471027271031667628795376603549193877680932344403042793402308880563393663687524262275855365286027773797314687446588285811955112545340495111066241563332971435929482727129068009240540912666202690689912672700610070795412763170107840807417427777887359959927131664340102350016458878786190156408991867897962750087331054525420723357643288187185973604125835472323357229679270315381074534615012806816328776910308440509065219517042822698794635423312470897341851628535800962845421126917751133766155392601106210536687773067319877088513585824699101155442971151030191234041772707299293066391353751837473006824458076332102487594923032965984631642382048190297201633856189596255465863640470655047113683423754148925053074629164687103991209658106696363997122059895514330127401757925295230171087913424740852467026499549635933032331166857082955970891853365701952291347676324578555432876450295789404598059965816168526537629987399486686014461342452148862980620662322003783303826639627886162938421275098453566340657997359587946721459011768191406614988449313244285997963667231800403812594566270315793324828824146205568723391896931419997651440715867024735258797627120329660541005265018417170986491015575490527932967054297396365074419584945443934179967638490596359739929807119125190544831520997790505348420708919005380554342534125632405405517567670624730769522854466096873714561678679434739661618040171228551569947267550336145872982524410522337110059894782813429781826587608873864726058416144455649761349119931528174835254816907411741302172977623742543479747655965438549675743585108314213612133412310005262262208923516730355998240862040503070398593406529960178689605709902258515391320839018634020952204897010535298252449028169474482450265140834974055862145712232054682596630977951921525947536455621807458071877144437523082809285006451991785176563986102448037954097054997731251843053727581004644955726703417784629738478627666406716817561861954222667260213486788701272525663862169700326290196214672794830971266901980825574858609996447140378944139996671648024945742827375658036954744217115052669994594993786449255827089215693613860927163085865059517887824407361351952112995455949929832397283337518769072717730041674391667356352301210679603482661752563123141374372564109467392684374788070463943358296574710288228700404421077695158102585938847782335960561878129970153747405080699773417297727564484979766708802862335470395683863219356460181658378734001679984042197687124428470322471220244564311625332546953816101116444025104153334280791487951968564525664886967412211145686349791035630466568052403939028077649493877586332173630025942438138428181251005041833629237571411019309265286260143203670554316008293123476290584712708496167193735786909310863157211508302831233518199416774516714835663066030533514768406161052118915361273919494657997197658467047384497800274580809633459955311068854326503168196079617331935910131266262907916928063997285767493364089904150642728226087084780528932451383302632153004014048009166738734126520266105509986440789569130508605093874973379527388222123437662622073351532142350032234974787850452971148312147622667175211564590966439660312932606477561257490440900093450099430921182066419474781192783094796090625701360962151994637291144205989986884519602120637119792307035017753208887325369316366060271991999950989203239226153185191031081037737607572328736293587418230896716652027387159881891812499303861281386919072254775947295937626357579617490534651121771712631776754150080331530023057894159605684987034859978898968814408183117791430358821984637655802413163483093375379559911388438742934147175713285156905856137961485965852145805575326092245808443601563350402551106371875651071097218790326761428983437133116501371960498113793888940714791107728516119642938691989684283194000522245087410425062269991943481974358155989742108177825252393250327299951275916439131539579323705667028706632112208399186458795253263789503393154264988386895795380707960937715530996385836951139797641835345539229440047959839968741456723757421148955709413236608738101247068429671526841493364796495246276264687102918394436758973349764104714668949702784555942338414165100384729802391122323687911095342258638045761025287258927738334701439599277059347673684893924743134377088784982471720042212147352716451748149991983570055044701084126774418346142753979622359641140072728100656643513515960993506006961793206673939019951177825635967289612337950687351609951806673011453594769906170718226448915295530201775071521908479096792844152222613128464531994715661310973299286907076491155018265920443141834573061771929227675079507529629707797994888925000032571906316428736362303714643989189727139476807197636215333709041086119390551737053525930550800512289166077879723693477167479373682403180348272433212146241668117199495996569382376121297080175610444462416393077268585858770288221276490051097619553941681639523197365094092395031145653783887367980351582790138558008916698727930553364749654052724870015621723013586015752804873631283334704953638780657910951402207281451978553691636752003609325870444850711969003732259836030470043245625790724881295883382378196760504302308786189769318812347023446521496570837233705507614358795994812396404361302996064791065371557604502953004782840180709752398536294244899192291910226081183032732675060316078238028158227048323499930649031320090062504119433809748133393518915969183033683510227639674600979486907077997884704469896197317483101439360467218999741274881898399323165063328019028029241584141595121036073495181707357446206519754696682050781028078494956018871519282867653991904729073446924608829564651833964143904400487699787141576266627098655133327473745647862539368163329687696587654637830341867020700296081660141117393958578364636281211587051554121983060336052908295913692760123486562823959563110036139103597066776387490839422240738705750571052654379875540324823338219552195219843831596868023059668612715727182366635567195844912109776642550658769350036507859726763466623921500197765498967103683011237359963032560420341942718657100695747886289548112931941704372359418423836395991343755997594709048824882175507570012661868383722777665232896123893779113699783661648099334526246686557103711768083000557196630919420193371882707200078307079265878801241441213002974609084211628682425406881455008507186803704785553409824694764088787461678145862486253580691350642384135108470353995148341615907769569610131473850357793962223707844428499098705620607177043455076086173085029411712220894380055135847789951105925062299282895498273254083935418491404274749623030672039526268523819606469053593803541977494712223618551897969124425992201382894111457799018624832626695776590980983526283844921093567937601533387780536511092419302992894535490401692267649549226998763191812773075442675015768528376202292069201346092906026575275548001806929959531190242229052730770999388668959449351564542030148513799905363424251586693617171027337462008209166852745176984327402527762532555310909604685533310154867495266640269723192265430008514981507075797364180790444468490133437010344865350638154608506031126512251544390351702637806880700946422483156582300573400804395550909195144293259619504153195654596364153433853022735288860765429281678867364532856323992018816426089819474727605134281426075758525884006056832840305037863975207674930140889192412543627198451464505279559404528364225726871696029417057033114734231481817337452022603376823919670509163837483252671016567528347977828246594832729297957272370412488969081221885008199533911466854100931994219756057891303885142461193492140469290011356043766735339213577915179728299259887852954681618301677527045203378711115329812019256868305234650620765212584153479739209757871833131834965834485822653481149663751411559200439209481067040193830653412173315355234192852904180757609762839891050700378871491116684819609701880608302437274654086622239105553210707297248026528278899504565025121469844313894925900366029588856945669223852061256497630395745719877826288977931433141275156938071078385529840043439641429914217611788773112043620905511816094208525297386878115196201537149582397672138552829790628354565124826092063279928368828498935878229222725490950110257307442000243443341939190296581368570828111434270225969692815295202922590379096261616622557619378759482809516354396241838059651561620991501586932695998180012124712262687724877611106785132911451485286043124001324800205184092052655548085962363425149550479913394980878089078588115615427118234637538458251863706329323697595661726545364133549678899314493500784756119700449268866213866009899783154812390427713119114965564977922703511095658218151608328304620993815655547823824651964783158464936448346231689742963556243866435242731953820722682309524696385747114153069952667629775035093653363057436258412893814214873205114624063691202279785371868659647646655694092602426654497816613817322627183803900882576678515213859796263500306152824814674657412859876935107788070230940458925809055432495403122432747734640792836358880148481988680155398625321737692792483404526542631471938121621115604023366835444172463823472421979996967155541055326040301603323596829372580594133114083034617764925074221171883988710585797060993725892533652991001879141334242301166936916517647138622626446682778687833439806203298062470391833258824399426038078937064153394196742368965183101814491548610972453595773366518078665245029083601587200587292495626629408017456499573208667662139623488045073559759368729006846663638874509163510848672093340340433401048724220041411452068478317030864523730629676786895317275941696134207352877109336170914026528302456407082432594278995383984166004536629631442695243039595884956889499497315120650622942562282846031617941195097916471145728115087486649276649603601085963193800526512946182526463132224368789154041045600855530293363138158135324301089237824952135300175258930203593140997503180849944100123607647786701771751874493940100166731046835424186384654455400395815121463760839909400901336730290785643756919375465172952665766428417275760943940717412697008251232293416990908799416826153664587641965498038566227866479568809932014406770094533970343856009836112883068990255625056565400220715235323929797095618305171894283779916693153828942157480713288460230141863819590240125444840403391889129670157070002924685846293727947828025309853935701610330785288374627160592821853158780598237129277471101530350207420033417109952977217048616489454768452687658103129759093069125672058373847664368413486581762551679176477475735961952009633024786402765486334769933039608828966541063083650929957102063349896991275354228278983936240057329927517944394680348559705049199256053826337810865084083409673317734884538503060300202447815699903403497965303326849786820883602332624009828614942098935083786133185187274267613302580261179568789189278269335667609878913305521490076434671275455285151506172965689529615265160155409199755757349516291259979698395690758521641464322719819876448595615451672597651506033018363075213538372023108956710009011075733204973741173220912370875521076080175114299318123780233947797533198214827281230908785865212906879273013648121186592586387774960277945756261671940923171149456588739002223203090877669327386533682173039036449297079070188052646715294484460370071926254039120879924822720612299232119729420629128051899979512783974108541097478761383072675644608297035395423068643043911054990309615064779209493094587198491582272270837621635281118358342882471802706828787790251201689811988237633624052039450265172146425811051159926669259112488430185200658087837279612825803310255971832406600563033074470611009617652786860250931087610725945066946513605401234706756224975292415246041617655257957192089308200708882868904269312716547024813271666086039692881385352016368818665389348511575227751568786005240698921354602025098064069239389388955391983760077998007413484260728645232051226863951965757288097564091321521975691509265960783704390737226842316660582501488956420456095691851165698750196172974150942237275308126252574466504023525429551373795368620234107343977145496740118030520200206218790967641080948541948211299027576971410209277544329279902197284660868554101826165359985586479145575159098077633355196574843925696072737765599688286483795004843313478955790190750551576640371725811162849365072885864383288762675887408159027818918057116607184525305428564837458277084918358549025066088958766389684060870668633188714505448352631420036428940117261730730134702621128628700587513264885416185034769196114914084712278309860947283100290016101257287785506753293353322167890317719026654214069245255742822639467835867910668331651643999637720717380737075715955695902231906536480897921011792050817558160869453036596743930653883871956159388416695022370776423468342590785876785867825570299852456010906783039338121290221269644011191833982259235404589190727284121021101845978227096249848005309455141294416629090027320908088814664571784600690819207607147247542259323629687783138098044044681295837035839698472948555315287044208240200902853925123043994092565424074013171460277408982572791455077012059151910213447908216462864988413361996906771491797872555934468158215630572086528057506556812190888309216381469282520014003171541977527608223945774367712919949573793642318431326527356095681325721616776873249009551579161444709784819745658340548184012446841292649167437522325090610477264786644588347191475362658250834513737423927250566672689226382999590845067743050884720890294757415799788635805390862514260165003605844368757153732213870480587970987716869003132895660717405914977234720380149883837736623365489910965226241408693130457873372725967427727414610086323552614008142663012051543217606814913745900722423603168290715453483135844915507879130833724082061417650319938278400322283313033211751288257869289498906175685497108482122238382236813513224126565433146339652271704045481157690099009449958599673298364615553731030762040055173977025159928217094068856458206529760717405088507726770560254480368541653737457256016210923532845880389545143694109954025331089911590900364505332604247977694762023972033897630141067468283186040127430571878835260845031223275249058152030001566583274476529581215200671868243409193423887019108459652596229418813369053819038762402443699605817612144642911799341706140426868189854122732175357132101706563288328592959953787964032626053566587970668055749430880000964915831208490517727722884596972999112028842910503034589773188620323297861662336424048836395553920656589243258752633329970922976764137069958383318160893763339675968617313816968631555827045612112848580776235753267118148422732422965655094582217130503994321772316084854280399218393041682717625988684986351438032775990579176757569902025020961980170390930237355173200670814044943588301518286482741343016031459368537694035966898105111783799015946080187059888046051011744421962904117530635873542783334392603227960705622542188350417667135027233757363181911656529049670469269191071727409703051465193476448273906463591987194843917084593705871453469543283554805169875715853223117943553864029392403357424435518377353936832082111425276236259189678810793433778858295538970975493150258338945614995824046005950392668454992143627448073260795144106982013155972775419892306618588238516197697081411103274435029873530583095549246656945578956747223934587378251327879151732823557784063480744382201333653637796478190986748904081392514036056455099186424465772217742901887938754138663401562025007285499315753347287669956457334002793354222683285528057789153496626621023963529988890936353123004375695591341427825109343938199187458794897728250223410675503570301776305067567193894157239955994741657735318336924714341515577526422988114082955714342398471670891896334145330830915137278266019589804488840407777007562788204370135112106963834224855309017582065643844825677194693926066699376813404201807090820388174952875778411313209204674288199391875101371962102571148446838004347756531390783707152403266328070491197929285705652509944086508025645376813351730382238827663354294786852323453904290974759374682500916277123680396715630755438947188943879428316790306296207208893698885333416697369060997557354753952118514373394667529851112693079606666467212507577885933749789738355843780595696060584531600318038714175333933308475329985364169022982963928773636427839069397592612626487342297373426308261302493919173730014863327008619050099085809119602667902991651904906270753039526610708974506543341376896713326318109490265103416134651687193483419247497666671373653964908081432545179886700155519876583426141894836246166367283658696221211660391247856051950910026264165834724595002634088890078020490290436190147322572629778503208160951278170306999901111676425357912151029350787168691133902687008295413858319859415326204896044116201518642993254691238228306336080760290003304453987965274955719666938429817724074858181472402435799240323636366695229835328827449295428412891991382380214099268204436314461386714082912439038053846606844748422727004788151867288651053196785225990449681543190534597595807786948056167431309614365466528849296475384119388864114313402271282711852241090134975401821757743858967080798336780815417061315927586672879583613116265371528407870145130341263661182856147059574930600197372292594577140913182526980486020271189723543670369244176477326115106858936137952064769185623867079335882898090788602212467829939776941654973695048216536672028201928047360958625273490560137233679248792290267727523976871599143771714172296619970726498500352619230464724666157399479768610261933776527718271855052560389018740661837375768198244017698468712036000399660284801136287581807793835786821888554763155774100173737590971081388243484907569429697179096724998735305190373126407449980674086763360911199020654247059651753263009786470784048714833639267827230575360462436258033394144763617694791501023664850711322086196191413951480330920705246741601810040651860767165229594381785336396472717580717118119812283452056465308137452067610952248724428444986848312091608021648688643888524743576979676331640667940172743506512466131021218018642577669844456086436363326026672758301012736365262256299008483353465520645531939686039463860204971120425747094699353795648935704325183554852201403786649410423601882620660433233560068456098082182493990976606787587908459008618028481482591668367146451258621543433945212860977596738627495177644206211085121291429554542220971053855456978707615559872686374319056471549583286287842672698417948358215098094607413856271951902567188356034929695990692353373984405958738610920268510873638006221451562075464321496251268019466071078679748321440346460034536682375592410797201056123635855557604162611093940969613338613725511449645361690229492589479194627794065704598077561940209473188302620857241474304556412959621349126874189789249737810815026838821675288784217114219881523806673990026972314479782611353327274405197930743879254639473524889421670206734463320888698252494900046151116504426434384639477612861343352564629022831039178530159401650484412216383789789156087512075739039520826773899777250945812457379626435212387521579435863393702400815476495508849415724743895055128442016388954672698414757286903970498428609620068750957372338426103360246181074297476302703115525273768886855495945970982049017170759702385078597757067884076610212471950211609956478669623176974934494063636416028007507287452211968936698103738056745196300140998129885591317928625583199159181898427044932142495130228339007225755305329005837446899800429668648553559979254138639948183508533925081514876002128469589688283311948253088023259269259831870226972339158044608587988047912995545705436757311042264335440391387833421897291564068595993101559389849575510318714646798211974720881189177510540226646936905853533701999177553419127180135971056366125356161914401065573842857065363859561460309484845468296078745273016526423302595666804779553249992809036870726634561779662973862881265457047729225109832912391188215622767682190929326479393388902731376756179160504945721289183919615067312923438483835916227629448688004432589667255636805210352255859831384780796465903097296930301048171048546961012680118451159244029515525306253723749815709187620625386536379089722690865568628441606121456984818300785049025058606568714495461008836520979170148570696469066398225348047652114093704955940057771474999153311136161562697255692894189864239408785860877069415138202979819190678716277634814770791774945211081823566964220385348605763312447874128109042439145670560964929543127407699174873141378576355562913439503422541804688704871108070550999180426413557181545501287384517983499308186884151289864085320540186703205933916934536508735747959486523668426352519346236110941230947940605589550580919808581890811127701785173815072545432815055419190160127517978875663991698110090096829497459129516420944885407393112218746316112024006087805685838312081390253664356797460092287871167315583701706199390689694787743988799436197736104899979096980533706288954347995442836092690880584031111489925769863701640801312183983212550893209882547625537454573081289559187317011077269911923467582434208567478631904267676589410975432735358860809053618947131808948495868614419431712000223352378595727453683312980813311976122680574547803116641741115592260220688223340917592637802206833407734807268298018112275131005225124466093150806045479428567030676190073872100644326542302774523901386640413032239685780751061768785986903297667494806930240738472078948478386692824372806774455375453140038588087089688711208915588528876366283921005004303515603991307399113806540353631139427452750476858968206385813562078083768242643418106497389078058453988617227128467204090908208680889896548889095614951701050240764355186519629655814288884505988739298065007026644747675275623630428623722040865044407816274885971105655320668281897724491280484428477461729573294584055060459824510670490602770509380509657430072959885037974878327465511828147932879692269477195425917104228326229764791558059323876812141246914314510416839561677640625704554605000793801770435679822448110956601788423278573655320286178291897115461670191865342949896100856524159359340566936865929765998390493694727939629365627248045355360497683901146861963604010586990209414473595940548445507427433373583757280895414929060692220499001022746214698859144073893963058459123739816653092307976815045002107187917219837127184418479739253292331097572289576413507821461856605523695953281325041553438027284204091017131567786835848827879900055412164811435559831529115861166885965184523222989286739023584361576124096053008335548523810052046147524877014260658544213558931228464731731823854656497255387698046880393153497184903988066058847662462872613568427123073577179140176417296671377671563428481131823059612454964984601945220578878666888798423745660462793396806494882066750050212123016561139376111594751890729274284791138801281480084130942980410125923061426049311887923797978707530211957585968447277366156204942699882096800409241057816764897254024117724587477555232226237236197242967847800928013900459631479296780044455898028006884373952804259663412718294623254251452433878174522617904389553910513586755914962931283826813721117126384735433970382845249031815443798127658748641201833118847001826811700050872339911296262050321587210465596356571638980702617817735924867932644402056887621447857855951640549889201740379556988565098666366900526471748849209691342593289657084867562176533197957250396321542127009291689562349763747513877868731901792226766256215248949257371923591268646070521931836261373768717643865401184105973581816516356871182832722191774014839790309628652978070673896393796215859444367054350433729536671706575606095110927988946579591341474564212783577803196125213862838343188951966180820777249819663088818639496418497590663200535356982630216506248450637148884994954798010160869548637777297656860687412387873541815040521912829324290932183317128204319007517605694595239290143476748907004304350572660151769320457977351461623221104747698775623372537286887935208356093316015935479774149481023194150746311347195822505775878965286209637200898329986968839567168949481380984335358645524687356376953258914318043763082837718347938752919774366831568380957246453504862845014411008584070218711313937674091189274745529842021970614746390747358063662516667750424644295391852892628542755829880081503214942676819283709381133595302939486748296526496065525512681066387461728067395695159810638142385575695325000314836655055610464475326600392096466731512267072521172380793774133970779097109364273189324562955338990233150782986919875450591556673974954291465502426359005795895282686660680795126986060990402019523551355969570170291513485174410268080920100983915620475759474161615849915398824310344562023224687245748730895955566076579441983220811645599715377676210278171356719805856442040593449878044191630147802003284770296655988262406558705183182380881018855061827729019851337184965420096351180650581483813939070426625348512130547361946675255437573735639576942754517802340396509646161104639193473525457333107233554036171650900467104495423191936396796666093798627599702613004190427749970653496005102830529182801572035250490854351376665807314935872342993734785700633113991042350860993582021250338860252418837248148367243688990540492902755819100111626408032675829588192098671174102856732115519932434040065494263264559879157597636016590660178033420378926317720243615748897092397663631189730443499798585538199407702751717278905578133982784044922338115492666933909353958513590434414120934145914424371755169899890022752123971217242666082534436365624829707303483724975162634867814310774631654723078989796976932881527702598132716822521557593806263694100099439286261502439760969392706162868915792857387296816195155378932716210240161312239857707602413743211731880624225730176499803890436657970410978291553769559871240655434983394182750819495589932417697017093973577862366327076571406211609870692233807788398045189579996041826935776086020492877106984912423834053869444720994014735941649229914455548175598866200487206759446395617928165407327667788958848648087463414138825127611794158008433237390887564902488116540393233417788861238910137374435028875627099798197404561722190202915501245463450934169885020765889358504273829884785970557290522424612376584754036088694448606170560694827208716158887300994112375081308206974828196600692674546459625747561360793963286944875193255302630198649175683478465156460750051196393755909030982406306441665103153230685060064592525139929045160211895537652349878964065023883102180397851768622728464727132383719055239740832278031217956401575397040298033149599000197563689342769534475831891031954502876143783502618551004828069007556269451478948801157736695779969288926021576664223036082401133671261958410381655305067783351582408784017289390051107875561335030309855642316095290299399867747835257569243152248843397422812005619079787601877334909240020962821774834553243801062893665907123756906952938335406916652633225245548150548440011238318859880627222322437727705755700994034230588264125427400054605754959553468715623970485413716575237729900316041662889341676513397527346450596745307576495716917301814142559979327635278991262045855792618182040887305080088390274590964254613550426409729294185006118787053247722792642905900884264901196321937730184706506678536613931095374535162344648455667226898433982054555319122778256276261053900965871785853431087452348928377036867953706086353042483258834923949903597184936265534911662281725425230616104861978004398305197500590039598749831590086676594299317589173292932312615438935273546979984702800788211705660083797943734981917564464488914010090399173725038472427692996742903863945179804232584632659720451833775535172976074588846184488271492297463127949254787610181636272608207913433961529252497962855264550174240292995222179890759787797182743985933933163253819012485607519272458132606064290831965299172733376891650983589043691959736021804739924145267547834879985278756612229336807411008825610373569918863012418348205121926528203209712635396529517027963379002601166734049420838729220100628881432555894578406177715257165512151103458379932124563221645643352069864334737546683199532562158209205085158717094335705088707427215228417252057445235540465234203337744104133162030217574441637362464670469020374600705604639060782899046149737943291071221085210314645651979384575289331761174680899419469303364716090842838534382673675336626767565104124438056663833486402678405436709286113506445729687233373342413218774812871148029771308065148661173136382742437885876951829565491692657564300522668942293116108886496171755780916409885774448891120466500822997147601197969496683457827758774171156350085197338718008862450853645756139430629722028126218674955905988111615977205907077506277436132726621367185727201997775923913426578571501528681719908137181481242413101581102677081049819132335735431954126370327535169954975000869671752879216594986564912454530758720684512404757240147394813028759899720999512232284258222021535392352098240987612309013739288017832978639690057921742029411276143938194781916880503450945692218444075879265949716089365833444575838706971246749644542310398487182165353487454264373042637748594412901069135659136944286237005990793029703433400504506970682225848024564797817894885778556695241888470509075228789736417260266692409138340421605760329162970782085185317666294451338379376724567364473216760155184289348044549589366116074456456828476143858378672730453475753059472668292560912357704898219447115721110436034289234590620839470055026612140465987201936000019196280653452582423063454649024978467539641620745362121756517725410275980248767302257016028136440301700009446288898592149519403223063274146323330229833632422290302137267873197652445233379081420957727674199939054218525353992579074303833351633044329852647630842891535234200477089784650828138200266188277218066232275040280548329029025171284124516731681378170341675712376515032530512239483005595542647624372773719987025212802300713316409893017575632508715933851924999200426261613638595007061842002126889829919239886379885004214989064416689363044019254839439398887848333475004776045541959563161060642366534240179265109599243840047535343888928476110714274082788596421489826260981234464756763627066863962025856398094432039576924684605114021105539597229242149204507625605364547165587632864101310424627976403127950992831847698800298261514741523799334148063663077297812428350058146901517370865788251651817786819864879687081949288596557433793458649021991426206912280866668344871757623333692408565112261946955100163136705329525928246955378011437583413097626950492636525188033982457301720598612024959651980194237741027773607750080562228410944249290849698207900865153652116708565616596589213852003472593797227912546051157047582517288916296966138251242826602558023585163194818464744001204195997855208259728908543528908688204420730430155938886034842790850889411877796235871602948215697483501793990005676018107447373861284307978992505520976302898526936307974422265108156968521460730909387979187393589107920268173310547957044151762228176367222074937821536432438238187143624524052825802850824440163401021141337115507989650955346612043349390586310997465453000329685273727662746824636215628085585402889022169979023503130186944657351645200268765178158389354384375878264726458651501679725413643750725085536965313015477261103709310192687135217280595843208291944174362568767716361897619945618664228163821975200740114754022020061895712357558631694033157848766797228168345420483900011348512078172037885383337361213939885622024985280878917893167741522292588815525993628458363474834892338429363839533332573799000458104457867242447419731099644044633092182539612120886004949251287316454475736873201811944284568086265126186376555236268845991648885900341742187002899238926516851641273629789684190152066640662806582009090358836127815528490846877149185697497904740494245541268099224583803149134972379042467718669167466051630692964056243316440940165518438491080619715917050016640943610935498274295605372497629039674289643313313590285781324214526502695746642703194044549231131304737302577956364874755571519138017510609214757371109188948081592109716749027288044020149912649832958480275848624182263926834321783781687269457735070836603269274984211920813967526193564717366126345875726526193621894962164186878279598406322780390032805121405731106778090008944197771814771296952901000955790429384602968834371979730162182959514493048486660670689505151331979609859205747093462285161413677338137144247334550274709848916310583363350434101604019544789530400205511578435988301545129219040477877760347913067412497022826322999240971042804632435052620250308990310334790805334408236914626976142163827296530646551271716816478878311599766248019031624344984520940092787531326781069309071852053122098625027261326504838511589114968711308569469001029272119190159755159721965905680754179122935521485408380958499999364331906000067944917356620452690963437710726441104807374633551203052814822043763481101668598900474824719656137118324268219832787985166613663096894057968409388013700359646551643049954563370669921814356121045557494779571096183172809538070219158953108000407196468865739505011620216943146662659860562327951392105562190134640275253437801569026351121574745138938404280833573268431975098271240189667106397250627098009196431278579583073785036026100765826671058564577333456067025115916909648156944040624661350734357857924256615324951893872047695193814996498027205672123254332206929709329127832434115177531594996093526899149909280134008773989085626846265309892308875834554770409249650900802186647311052338218310176860371815638319691640798834564053570771865918971426149565084373162405269048266304051183628797323267276280064391693936975803693608540259053200066633130259606082906372217082612819598877573854881688153878708443894267520052957640323176818055464618070620727450154026393907191610840255184371690153852269453815171678636590056709037052288940933663340552040576122812059947141706274592233565019921689631522031778697309706316276720610029085288956476659044654823317660817705187275414725579601766896398650078030726576872921285080853977928560239859353426043774246270751614715985792579377871247678408682225602356188103242053638995763217398935917052871981070535760505834779684210987956136878112489626874238192675836987769313685973946542736578763871877321210894199070725068064560837388616436514684122460603179537138734873248331010876646408978897005674077227039793877469335144615367460678604504399041893701275944434418287674132727925439792601281268607008251169979037912769915062952474952060444225376319623165839097060315136312493257703168294826279147111183591831058119563981272534400398113192246383506590088670701825962225775747212903077612474007656841081820923539807192290422884009010657080802616534546002951792326902505548588060152869306983755002588974137889604050419556506709773391416675895151265335032004296140238147546995930274086115341083269093678629069447415826731479929293621429219369746917251981895103988486369820904323155472418658141200551351162070827722249498719561068567032099636385880891130687848417401575689346959694893400892113075849663828109949387230915668091095191382787254232820903754290529188111671006906613406412239515207797252190493107959674165887545795565479142714586050176360421588742761419643697679434209519789080887743424975611873261474144650856040720144494109650987813158809036562923771520004724760346465335823190381885568921280195213974257085177253566498334024148272626611283884919557972035510989980762037089246178578870406128501726444285709163468427190409715794342537672990607730716531825273759758657958621404184026181981023843449021745601479867876292238997453448911866743177179647713956259318876388727010911223767905213475391918651145306081290933366029256643768233631435535809635692405778277384039259157935217248972471033073790584039497014815830092877757421572898551731255290444144545771826390900482215754182829406736181204733279576290072451008440231872855817943691781642272080605422095346597477086747475992556855798099088842920490976485707406713596678381829261336791001075742206230414457772029258487046331402099723145337063982831765710572219703417603341701811307039382633222898169284479547053084694249149014950488089208082567076970247908342861079275058500823299432098501541092291426788184276471150119709577127605489671501245459771198678758775025483264805219681377273496123142880733746220349481360870145668172864638351607078227560244340506651047622014445319128427377767364936700833420819345402909218733780816525045584607842367832388848240089308772894640505215479998774505043159848730132940854710146875037105373004930377385283553671385439617823850904824580548050263799146618301084059819218858728472743836580435300474364685200633959316328344488103885947518956623562633287587743678740992248503432551615322967231933511399095918383152623337361961368387183486829628579139216921898689416952774335966021538119882209648738594578709532463572055604520591045788316849604999639057532198027652221316528969958600830796602400070469002126705170213794168001617748967585594386598931575696937560893124934124650907628880324999612854774876194672942701801285144353842802354329473307244722347188764657802089763721183771831334266630898002943207150256548493118179537418966284111267185323332857000565660505247257802409527863081376895173603031186232365176457096724485700728661640096729001590705123089000475689814355091272822725386315985240524364416072353498028534314172315648400716060523387919849406688368744985174995082945155774908653390586752419703153584312210498252872942573641046818285983203077639260898047890929840600823029485330939610384791633720301269057113961490659065629478114792946323681695718101930540362878165377270502777709526970121315529873161372028667471871190251410912048107063536463612260582845970475829804808411591572968316115629599269659872721404638774611051006398830738987445213748068496421965654656619480107740773598727453595033693499449632455598945697542817224307472104050885970723075119310633662761157405557283975358734033178996646830165294990259500027164580641833007060792997776972635586000432223609141132703681107122252212316348046259435131633762595127886950229036672513450187729983516060845266686029584094750456881154040519241940987073311071827832707226700218441574836657516011119201525005606821384656899256856563033356718814304812957654462148537804747880362576660893123207898859145876773998643061539914597582341267078780067427185682291957198335123951787831881522364187605843291977259217194260868485409475998631676624009718217816691818876277280175876858674052022698145717493762587157655154949176131989948349310300123673390180591222217600490962821037848735214591966273487022194947561792654400302716671944338485516181546640512807873484802169245736346985720530724186729649083707023369134095080082696724599970242124519105566034016315402450435280882909961806377722932894183195194201054130071517929332070454734938113541754540887613676426676780779585538764443277984020135440352129636452827925489374528467205980307301362038107945642661031029950006336595151515021293977991680303348994952129596167050290598473434744082029023645543066340199815145038543768757292955191999500248948450597264121264881802906722878461548509319521324260919115979576291873035842700742783658399976258553648565031794112386353771951286342373412176015922284219889899978326378095587957043223081011071803919900987832223758496815295258038885341322259622477127806628386910601538729385976845667149495243766560727218319618726713970966828080135542781906307327256146071318996711481138361007267388300677330012480873777823468274756823679098114954822499361233858963496417210550080751460858383003044729128797582750383221481428764588953579827886541001962344601167799730795009078521448394386427368388421427151833776377923511648366048970840748685665085831523564391909545438058987371054853438577593215101596641960065137571028752668814318359126200766599288540068770737126088931563081208777056197708560189199292721074521447547857051950990610516624950922272272663325391306666926741067177051168650651475591666657814673892989091702556253414231162321462166696558224939823327831790186111737891554594828329374604100485293273936285891631779157356447880567111242768858992341139335387431736028462578573369398204324156621559162973047039046933562061083757118604874874050039095829350644352638132316351480659273190016605104191468276552255361018564625913328469895292304277313937942326552158220002519948899509353190071353127073380021248865491837809951210834995634154355032376016762691630268675792648197856853408680431535706679998192634121027569689042286658419184218958354996794411307603974242234312909048572826761130179389030476220157598319321620923406648184493071471618422667738383522774616470295792174756568230367722205005896417440525846704090172307477298927186022726664351937987986278908770121649598411007795502433416571219439561021382829713358835877457446709500856464720310811826840825956437940178473666852733186339040957210524661918255459325793841810362069942634247153012371179456125868914277294571989819381237499869765474971403177575993952256005902103228039854417351305066771781007354221381241256654109854771621407413244200292689572608399112878581797932040100215600223644158826066196039211756839368434292535671369348734765501391444520134435617088885080555762649434461703965918366809576705077990723848062840008069799724292034010727557323156178744736433603016900763420558901682882163830474450824899906558792076082540538114538396737226116022154270367144059155268938028211786682196752973172749130060601470754138716899521107989227168749521077962438917260527003107856834143485355167248141916827671814343440904101616618660869291886294852619245270998444490052944785787927178907671579062456529552322352181591165770629663980960765338008231441688804494037768314702125895436720373956815343807976084754749489356853983188355006506066505148770462188900255803457299385118588567540015310142832112576847453898533868765975371292788576021008131005393772728475170854536126642740192138038809943713277299952636654242829722585845123435579088592778577888354375400000654807685024393327209289023534115307540612018243479933847462728034257330033126682993619524063077324646627578092294213796658400615782667448724406845748297111246913245475578711468451495155484483479177583951352572646420571753321658430999470646686902129923760047711823191046918079030090586750696405379395717603288383719225644546141838169064750631845777047362474167577066781743520093593759349395759184227044395979622589852916054226791946896324692310538611393478970556512475417836187338597278292715622277809931929153407348364283758377988614981279998565094463965363187132315709078706721651388883523660166839064995517516459331475835961758278296074448308631376921793355857888884163071361205965997547885485108529794890620741418950204100181779899973650716289824320377962547053238545915170841263419745466828640462730133327181484824827839508002186373806515112231250814311450211686562659766399424259433417453614907587015693948301367731059716330895909841711090528502277681574108400008618752287886587430126792061331425792309219463795312546400060155419074385950237350735171362941440302991496243143622801398197929459074720776808641686147819380466098258836767862113265609362337888823541813838761454539811806046003273222119203418307188472273981462066922042737341153219849210141457800175726611350054977243295485654567670368862392203526810859787523477133816842274208908510081440789953733324249607962867864324261693383679627248277145642709024631491928454978778295136790927411272030630260010129034712596867438301428294475431531896366784306136962873782309571508741879069997552453736857216436105942352156614214255415735232263068960384179375461050304941956814835783640426913903778960796331438809117003222722977947854906727559844368305128741196780248224599167346267792436276520701060179061044961103594399429993117800760902442921001426538761425268981827564663984816743939474531190537162370135439590601842386188221225129365146677907444069577127423837848739612780551128045372762676585092599497935045526761357896253643226156946501758649670432471536792000904635548129763706903812736276185306101083514698157020164329247472237890501212301715804321721440053968927374177843014600658485335865503999137933120284210950501485330519656037950440762654541228457324174953419042799971857156122504468447515856771037917922661601290743606140219554895102222488789130328427778589706684917668315372977618529063558340574849869313770885603170657948834968902149541897587560276481929815546943666810938858889993749562238204232518618310416639028145761482126580924926212427776635917224844450139068662087038584378331130717808153697634758296506946146646076344163763423391625225934234957706123124529425144306553229638209498085946598212957336786512731295545146432469954097267144472852434377479384938351038842536457960006397982330557477432957140527392754805073511614038716777289066287109875919459790102563944868773650854806446369593957087970289497837507806622705796846648323337255803400104336909830551201275405893308523370746256933430393272747908374317508872680064012980827263538911001032265822011414759179798625033529834402015196001788921837476348891790718958287169556965103620428158261407929158021492739541189016488180589077779191772352736094333357800150930864303022670433621762116081089826174914878184421214470364853123817513623912638735910065957952990411158550172529730120588838278846250661689094830068581466036868602633110365836391653427702756746136857414199048087976485279514110368823516269127732939208424439375485794585627036152549517974021808602882109805756281859385802831801530737724773550572465203008372533129120093990716413669072788876469443324704183845254656910559367345978028371302149348132671855453566149334287993952259795125505450043791757961062023844534457577164642414011599789363993555037440775200322917967545471845790812967695517949552769554548359788847526099390391665219530779638156952192787439216972676299994834157439132884123969473423531978954891490576505109963442771076384908835719253894233521930237602406678926499453139703683676568944611879172816388027512235988346518795442226363037864211273541924647279764268232018130238165654546562761708459423012327338844905255895813451203672552974483958529245116720553733360121724938436005803085957678338024448881996895532722184342925187182360216572088668561037818440738722028981414509366430449547281476464385914558637193499611756471662020277646404132821831653890197228242196029462039770927820930339758973869657803937169287862342493335487905634676822937466104763651913793726532723290606047249780044033232774178918906278232036211459279396585839017283358273361045726645598952181135256427349571211484885810402911760811623301668744470677728230322526839724454882829330387937393988015086461003089124933405960188069273041911951359059679199985256860255163693207014948366012321412511567558547447134964591147555102860001864491956192952998048865686018502985901809947795122596537580476665140747845903996256481706415003293573681913715338866000007638272981367719386436117947812904662561844917311301302093642141755320089287948984049571232509319374374824866569596865659772625053972777936646166676106386624911595715385321841105965845546214443749236081557312663318579676521369639073065412027550369834600379709071898973935479467834491611276683413692036313022907527137840295441594769929334894404508958172293280040082133280023333083725200669306896822330305685224158783549569573878270330579588890003275259087084347507654295778403761468996863615942223269035874324145081549035560737629405304367525583047426260411531106709839865003917932126407538742960068448015636425282144503570320484683133381614267747935573772353638052983065199778637967650454870735552735042084630487678465689014666473703513743322256085397658265998031701936865381725441028319681213428034214763234688715180398565860183136402932325583960061901082914904453357671318486920442299229111645804388719773932685239605760377177743959429331831694841267358368871588894395607737926920318251264661618483788072571918071502241390767180615210293408623009854690790782027158826944761288162675154135803053701694584967723798397243199498205705407960409870440738904768129744285606354390420861159125556744536372987473042640889981152259130504236429365885922532511368011780326916351881122451992142724606602851397497429720180638217546645576717811092840748651262687633707799678879703945529060561707936852153127558068693504666924963024127074022761350390156509337161011098259097723428886672537790169186088787789308402230126883971467471323866912493578043975384512416082154153010157868870622096519783327216982451403977252122628649891641191583802518038649708152757508847757458701985529791100739732445176025092906565438558473231023125648281777017300574244561096051165216520616086636211234036206200580018063421801067357155084658100220913264982655524598038516428495326715065326769641516852229690215981295081800289405661410847371431196803132958179733212157228524187698760508988286752664368318619871513992161596450091570522103888355717087476147280835850035352513946154426562320306799025920932649130597908506268180028272706934269230654445560124158974492936820245258411396194999260625477475329292582190657483249161895399176740589596523773480545430832358252901719577569198855303442160568013439706520329009781573215183351970876304616231818251789138979956566674339924125710280763229140031474037261429156200821333335088476744881142357454794528589046410113781737629307476438790432226276856125824262928936325122091430187295619409942295829854415065237128389353007130871813652367717910195272686240497082362107468246664000207192816573132719030253398979852948799214786452975665652055432170201045361768163423739030497212825413032480992233191982756342344765307740396916570763782881236078063736250194432817513464139953030882519012327244811622162232168861257205317265182286042710737019088862866700779069991765501642821563591887657907924236963067719329498423438720652030141156734559244425355737709790948104245650527026900516864030307345604677328822209723131186996098012491408097242253234273108622270927227839384910746531225210159414112173253089117091856060889727703285425864017164141575775903822581595004526754786191363347842240784135264435640829258546862164121207234987297579071160410911091051084635636337540723537903039943359940262355866582267234092675326458397947566395655717871938757712100284200086196585006421523905570059546196447028928834160218688784115305894989808063458724202265746963875193572435855469381798886932485496407906774359237026013669318169437251506280661981308839001211605968187605071310189753485235395788456934798047140047905208914639856792157987927093391207408691040618338272989600250330969572014777328268868795519344984297357782534796084627020547730107016663895626378679869721920107535128454748517271153187943009628933510980053744601074528646098978654010811154639832810637815291750035238427766412593832130736382065532558710858005054028632412696781306218015337530739565176203033844942863883718241340566715519084461963270940472404237157617527605425202596666855110813039169992602093513668005062404446055593522578487011878522620419226999289492464018109714183129085090163399278125227415500336928846225437191996229612787457907120452050103891194614217506889980128914498208563609542583873355711064582733183636077634844498434288103649056625894053470803397687280217295378903896500785535760664540413978726396800869695728001398053842275409284541111994386984664743137750424679913236363864744363447689338355890388675171540613037493943361815459279549423714026031727331966562658200005977068910592714606922156746491708839307922749101303989182664739045597413222957709838853022421840461492080796232391485327351829276888623669142136471816780497307512145975528179280075791513406651565815990368763615865111305620598571975441411641301138426077080031377645822922657064112008305211443268794568403376647396911116098948216564994264390636139316845318143151951333547219285646714116088491365651951503208315437538686359530664711220735292182241355907023598523843709209711215143086941903652619019084997740024509738356794075928862394051001671776690567197247257052318770705195692617013465751655657677484218375719229996136987911614445602904215894452224436085301131328073951960923325428222523498033517433909432599051446358254105893807721634422224161883488279855510785288599565915891113338011478059097529932595188503837660916068735126776321014945562412433713438170829158919837139239151582896910911236771406636769954948308454366414242191032414443370681015896333171192101848327857811014105982260649876586334323963780164216360336388328313995085589507212892522321591729357302018901329770840741950446838296144116791298748987449240418068825938497337154205027735722949073610913081168003029756920041411482236266740651052739222041194289224672259228932227592046338105817883535153226464668604858872481520914884729550670466285455468758156820575715919336485755095720631701055810191405685535827895013629572701632775398206196682151103263445219695170514284369932039088648015130928382795839458292574679202030842683167908314699566696072016125382034487197692895480860226052957455617401651416194540541632711594104481600380696002441859907567755478453871796956900177252835031295005470140440392932694748102905022275453743874115143054658902746079819432369002917363784431578425885194907334826404450386519954523668632507242547729901057025715062387941817075798765093546363557298694197725426108377749630382715285827864012895389661078497624874203163908642522508836334379436185006206321736304407686680115009433142317083149190928571889410438725107388554375442085731313589479287247598821782932315778108944754075137253924896593361089219397910499809943897748794023558504157099895629580422571394112472567115973442106602196611880794622626128798463504163389691304170019535203547152677575586477249298940467781639585536403460090332893636545691557731486873707309036274221480471187131055026956272405584583080589521370205944545568194954432836081464207425535683423879537194045882390073627687136507399818529992357236832257978586512059943729150441889478377682687645159272989815902550972401135115532871694326123384259929174589827639953817496218613191608277419842876518506659109346528768180185667095738250767937691022982723979595115534115598119771640802497264848762322055948487858424163454576546256039197530396253750425614181592994007727759830583656485653383927551038849116955208352375360549781320450761214445663393926165117570867447041045582933234229573655558415687513277979877258245030154199235583452243173905757291107709749560897418514731133762673805874690110398563956254751720824274805888586188920042767348059908016132824786308688306142756438659386540456085046424006547891687914652669994905845321889217175160860846241833773505398446335594614375619363419482595474975494428467281339002089504732387100063544855981944164755119821989790592343788616510104195908567243915890424331847787294521469168765669164010153498634715285510433540228360082446621052754327907761138285897047700549588542499868712105282916238747636647569406899776279953359573403802639167395722906373107175199807262486777646363113490986066462828439958811095114648719058675687530663617296491789661484113222454656660399171942394375427982295331150157957202842133117659062176903797537750253498010170367012714881470043719491000197737928117558126702187741885326680088609831984459096432187057960761067265469164991031431257546547386634914864580727486407468445721242883042212070993701300138259732445315300120343197784595322581568755809276693415203726284175964539298384514923751287359471002258876254110688266886937450377106680625547325308505020832279623330837788302467378960271542129009656376708328345607251593658138236088896978552140181246242886595798656366563748452137537195798689488579703573101162615356660307683238682951091408119299329138728823455091161584325152511439800651807150878441982078663279988181656993901785352277864877752692689140324934973585181268328351681702937705379006981369203348077084274420803379673339982645905384615887557888830415193330770123038186996861982292357853161730153721465069003670661352375967423108191272170992048835775098809921652291047453334743904198534703003386154398527009279720134231784590689262711113729632159838893531024005864319154247307279849614428159234399695451971421743908439338930530665592727921918443187925623563961166961920720850632429131013433171909143516060342201899556731228103698566954220306158684222271426252229403651748166887696846926780176784345007411557722341839155223146979530441872465342752047962302924015884303129284201581515065291481815040073386720079910932064546036711737033205655481983561787173634691315737355108648572668927901711444885585409034917518612377283848826013081909388667631724685095923526113411298562183232024689274458917175824056406598519851701789154691782826584704571128610863094701784565626955277786469293419748740434397730980020596949131156197857505009832629961759601855619989507187788179241909192951356967685743384352488306592246988837702963567485699183020379672734687342201724423810864353492966811974577221408427388292538294431132728041873409657481939001401585063782356415628597024127836128539059170257355155720737497484690872499501657635672108169225632166299516937647039865632163154575386156266787434948361465459071136672684407664244722392721516806643778264227383921103213309866270532594708301716651202219163098357838455977850103872251030659069522318364894437633409886463566932158276437308286881998382076832473564707367452126097394713799126368976646704134078363192800927859108943321305962997184120682146722540412812564128138657145022074192213440311421843903726012733474292865804403577421329353247095024062943864485901522047376361804422489928286758721729721978911872038930609721391889042614331000218269758061812386872781239620488551382934493822518916127934894807154588936039612085210916118292466005545067613549040211115183477433766124300537006130389457292147952619935481118107693600566911991293397393637202281006021352199183495943420970446521875041286562375261310874784167144068289856049310678084757790984465156762714220735389181091445181665513626907312847467340901396798730698848632675278522997075569477022527170404642582214259323862393085388628001363363410632601133702291347948940073503026781229635661781411557343746147280226567380722961851883839517668655143477024361654953317275584750720238502231146543079138659745855798450875870159017422887280407278848071631320584943972146500434440979381026176256425241498033907244120192939957209213764973072106417492707096533312646099631857813444377183524088883379835723852021069814368690517752588024080047975787450085380829456850699059501260974219893732065331019568132998398924413205022803241358494772133420294633267599871290374143594883812208655464886363845151632675505045857422528431647347123312031275973846842024705633551522960285431167226460577873875138262957345037056906408245987793384127826765350479997911792365449463156924110901977625445864679795856301226324121132173736033904597589561367031917312634398743346095237707237967288353616429539495477613307907077245387627330137720390942879264501711898405638613405392707142788504427685158088814159519072181970940944081871109335405253309515196984214205014319144655365759784577167728453300557794872893012011991077523337474712187123725019566080927697141812401478140673863148476607769237471661551214412085774250365245761765576545254848895079615337756293634726494866732033519927264686754983387032604685320073566240355596684388448376712971673863703184286113106746751853330513199301804692871135757770415385346905959685817644654519496879612784506446126792355450170311638922144760350018764615621672209235240084575731069695992301398491468084951176378289112141715829099352925728169664719306043692527384492568666985927031316072225434991050139724308186972387914126031622518126202739527488205698721555294187451312083784323156317533083670542888149260207673635932493333973048298414612911287865016774120000832866055068774403780130148407414711098501380396674302483443140820233377115145753589170813582504751056706360697279308210586899152089478361353686180939265172614993626622379218043139942446903153464777632836578753765172027591842972262775719922331319146507025106857261625940859717606214459404952257764050327254912872316521108229486098699785911383451089243095984534956759509570268981800931787807136869484688637135015854524909130295895005363085584889581509174900200995249411070530992994007349196917902072869396425555307989031207455607537713654789449849960216886577607778846500990084918273160862872763610155819812848372171187145999131168634636983613456923353264377435860253610075734141817155411463972351659298566972433638872887053359653112213258962824998774634128444033973902036037051406235183298449589791083802056333090899643109294211064946531764834422571473647369436068304671711148586713956713538087652088430635866432180137966174892031293794275729249129748646163918772135874189178868863463754841684249327081664244328105349980646078170453229917963341481089838199480696179334380654300440339805109194071031396638999416050495133458383639913910970046661012654332948567937254886353648058324212382667770858398258327344100288170170362846370954970258840257329462107863308158554140802553580075886682377488681304802103625220480610495357970610712290706278963649568326015944618159517266512986180002719161036692478100345160638915612592396524032713935936510884894403709756744016009833826641610736622244599444589725756999241706381146991137016450038677702388674851399228613537505007946837588323295477540500146840824825957564747573379408195407317098389783375025702949233741890783445346518148994319665894668644350055546221543888622376272042835008343754617184021349330652351710654830678565726173940334499600667934697264277071117333449755783648313741204419842240291159022657078029032900220698028193423983907772960585176785560400780281224839573056400517036170991770644189561835648387777793993396179437729725177752180605374432049833506821470793774378848687608343270179695544608900832450430447770060618599968862538645571584435904398629365203177503017624262847179653241660476003507401738334065307413114884743922813030340434046624730129451209114347449214030193099237750650775668420350441574978380407517650748185976574633044338321989882428081479258454220336867838720817304364380046034438238856338219346591211337039564631610419722041002046598263948604857673835839166884071657534987084743554537898148875257059194304840255692719727086544057775288599277982987480829003318699559247085965642909063841289232475136037113145371757827824384377966261412827443536549388038619358927556850541083933519351514188858629331936982218830391413056429060089212968716249400417444825196370133963777849254891489673078088454828837502674012670531646866303084444658809451798966993735006202078238874349061229268742242897311997465594488912907739998921449636970917954422791428001484443809446441748916315489290307477953454212056902591332174858309267038565935471535814060199025589341494690907127941082283372514799929383545713246616058036954388737859545925319688761830416468381299790845177510136038461943090005764321361188500515598954331485334115233461279494624693760330226726016071138844650485449869156205342984282722996539059350881110724353875596388281425241023096862044022536553533159126290963145482056558848678760350548534951695447064072172892518783282849904678419963545813498398815417344463343704671652426563235317275778558611996046340855743488845602599855150942579089234116864830541241921332426293193061440322158443719418635399122475149084045217085706810501047229206902883416144844504707950704489931011520470521229162533786078319381270735157309881532210770765637448566176910411341803008943368318278953957946007307390885886060585003952541704961244941482223552960841180872242901973910856254791808263076303725108736381562049088721498507433828119216861121966284267173031385338182561431785851454563545088600365970582989136072189258054718597617330879651259038603626501470625671731812380203400112626284221641444551601760417902500317767116458758738481245253634723687793137398529194901379749895771920247898205272626509750521116830269439078481758211743833108058260167875474760428735729793034134192407483209707842106504692236407956723139606716696119921523714073338727258266874415252092923522263845232959411475709041506737266960796200078625002442315900589964189619219205134859703574732369218909392663881156105196960505013265218023301827741095756569912484055090277346399379547024415409579415329404982116709624923666598151224731476976492622490665918371944825631182267994105624039667074525091333361802319655015842199619046755638129109839816206139743604522654825758723765695001484159356488657338546336077291119216088066608545619542780943710235871155491174470833731770981018909428969723423549227904495862736877540158295249861173061803210620549128950400064631243648022991075907633412963147881782094949238315163681076391867582838811176752242344891288397339439438970652308117423035927631972698059097416683921725121491423701393849767579361683380019095731988391989003583781980492202962604501199254308803058529124556454873762929353598054527987078336129565356960934067843334163858883615440901047883582521808431807912655608006803690865396986909710882318146653105486807917724254623726692302849030585826736487892220022258600260152027888859824597964310661884393264995187009241488901780024049704153961858316279577942672215894623827083363687208647919327926008075088139302499444905120859845565882591484557394513861997328593761950865339895654822584473835904009140560123474331822562294672805671144975091828475951336760587266545908293158861293897869213039513861470004332708463881055879787908254620684035464017910881021664042601110730565355253493478349104843360002063308808009081491836182173157186271535205864146892914562483117844335270133647585405419166053651384629746096048939431330405529325733724535625103577214958361046968299385971873236139842723851344884080148713728055915836117757412852170103501961868618725089685268254589663919760544431318742162883989776765275685295541059990890710095105339360389362700113832111188773320402706486343298419597539775891870774445797848490497170705424023205882201908614383281796722925886294199286849447230087645819256576125747853800626259849539541633510917397521795352544950721992488127186095228136814177685489025473609329497370258924621907010555193812554423977651836668750143345445278494449387468780834336153881490936418329537154188648104217105811826883119568410998332660710031085926532824385019609065879130990027507216622057844064438812517035776013624967928993594928165021589026491312285058913821478892936056228065543425003878151288350739428632243991461755877012973002770522400995958926185858143357365485718043794235719150931804732309992674544540438256420209720217652666954474991042250568928616457367784534630331742492280537900273318616372788680383630532155427885758839488754884112765230948191527754406581244798540201334384431126680799230760019376794642272132286341493983484072775747234214838574312920851096378054830203606041931723216228422959969410872548393042326174626254896528100327225198401850142866510723629575421710883954980550785375707136841819175746599063253455668823979678177204162702024882712135274567561093506365158972232232572845730158617303156352524893375183400541379777697773850308486166980087690624400325478260733746715464308379829062909036645158669702427716886030255889553916806358239740774632632648472707180374964230196197403396855337634218439038024109972966496973389289540640716802771047462081771994875291990723916054541295048522670918592451570984423726260033969559766477114493893938913644219922533179886229400750074688816645355749516931636079154567492664476999584329211805919320024103615731729577119137552867252046992960504392572096425095907313387620388372401228727009018457004081133098256177994034838943826682762123870338711063250607697858524051194234736007777992495317408414888725314382569167325130918874191756716686406626629476103736571958896805474199589188165826295993037710095701847718397076017708568875287937170290290562788223286509211573027857257754717892716856608025493515784741558070542197127162797952555029783746480115354679393055785174510083270380814359824804847468482754187536431934215448653623133947945862984667994236170137014881100898126998472366021840947015543773492278039803439474435887180000902697157163888503969724549520827702681926143426271991018169919121519648205481836860140147231271358637740334373381933398727559999485382489859498591054747725251971055202079282844212993065777053763569591817361697543810880540155839213709985903607195972589614950456410847559767674078531032904041717522519022589605484502948849177470861311245336132500721673503513131147094808187313720837021124113119926007087647717206138062017999219044388887761345014539823884859081470845266348171277378936908165814746568970238805580587029412375400009524844920544796475451329318859331943846195254066939194995076656447124488666324794501894138864847940419686029688423759886461060125930434751526728967142106205210771843773072585094904851382907083824501609108030904863294579131025531478768130718377891360233822023479701500579072096568497036695444941375313305277254154112881591014838883420820563173361561388140359212414582590318754683344516336633668298422485992446176394883034774154746621277277368565038970829130755006475964615988547873795467827008325772075261743456517793733968977427559290402016654346543291819398639516694482658669615190099700005408855144266940872233003157495762283563157286650644259814731901885208372231419874114401706595000830795899973913585406401842660302441867568055121465055118869767583755689754147465070065357033126437911045945544285729556133541856555956842012647579159952208762941325285585384117028630183848257087764281738664254491896273666842849850501871569665784401332250149053823412371232629498690479397745702842527600087885803670804635516305109759343827419043902691934630834198133554479034281932816578669679267121922409376625482376116808030550316166352247443114583531724411133504554956318673035116383414133731503143705942831715978545747497385715141652627053337638328952124549766428555317479530940131988640898435279706673468188985396602733253731404600974681709233362186543350896023141714938877350359975187046923428784825204531939651121260369661094218720012709462178739122688641731199845375203089313159352842293031631682641419963619375886151826492078762165002220554875123732609058167921192798305220866136622404637328834087255296594718393953457186983793046308047389373734810623123652440873005344544954524127808978207598832409591978050978313109041007467195065238455469795727661771310629162162431588044890825026710572092250597916513948506601752633477809871036065613079928754760979551486864000529098875771911639016994535249541815917283054271337223775243434955955940058754947638080255178065551024875406439237581576738348900167172367563070510802441910917301490770169104813219001030756075481138844729646793654569159031419501784544163531294008885088596575398226154916516885755719635475877917101176144993315827991324742899812476520505237902442304352034569499316093980300812891821245679133187994809999455038621355496880156383632758976461453111655489406165048232333162114434466995859618441137550710535342118514857577570591510102107910738575679813481525537003702437299612836015380360447342009066173118199479319960995055807327382896380688577891792078362431583002767458132486402610231153281143882584949963047117297484407638610827914184819367520999780665215408842641145598016202381301937376824250103284304605270857196062012269496962042215387567512157249024445328204736465622288229155653683657908447534819792910031740834460208128546209400725325404629985391682185850556755928365251935927645980746914988700255758614046589062231124995631312324595212119207944173399292540920146039589432366741747742500546819372449352386547381801180866482155932337790696922637930846859962858593744894924017299165777940112568080785613729744000558684222739237876570866736904556485758336068858573982672202100086022435108643738507449256890593027757678031778560337301977399961236953644367290031662482738033518558826440106164963561586939433061011063368834100472368662343187122722125492476815036570508912042964275056187729142722095702724599215965443385595701835242561136174290964488517492916648519706521659563531692657582112650709739054809120498823038978736011159561844500262240093709934826305988788673041698192269024844798983945051277654968372826524999555231400148444976628238644337655659640400469897753452555143723789685180777959911518525677425757580221669612539536579928449302561448125628055716604183063544146582222649380189471597064979603203470698088139743511390822194171466353337615252309736648582715620294539587769604494097732857983964074945486671663983241431461527159159306118452752694042485533213277323616237154526345304848246481025874932704569217885761651616311211495762940077522975657971785872406225478293708377046924168911238630781492626504145672039679596076877332957590622083904317888997967246936722661131000506456077023683723996674116121085742822656892243615784387658627271677644337636327824952865339703095044001789436393335593473774342776780510560806432163297419178481449310830451294265997674601914862088884988019364326828120700971277552622240082957134969302936339437198242110719792748935485200562563678330477170900146044036716586587321574702980675005769549569971608328833332220261326195978688604172537491577472959985002797497097095267661063993525098638619197093091754665853646439191425444492313147393750303815229236245170888012968129882871562115661600700093030511369858594949078468504654657900216334532075790010103147150335144543768740298398879313368143201487357297109809076519100617089586407552851277368242000085854886681214581568657202010981577839663960805025387707170463492555426481321175861651033231627179103950281985406844811620409605356928550348108388722095322831366638916172434472880499602522452950863525514571505070309755888593768287809319323757857108645353248215534505608798674391947421145527618689639720643558029546640370665638262932510934519521328346447821567533855540027405940448914384096968488456301547806422260484207963466615159202194651671712745865140869467385002097259125280053484940390145780370071201839115074647348748603280837283070576186380998983654331386434928397890487418074122381555512894468161740492482469017476893100009466327746989872345729618354341717325449783847018049842381134824539631606366432200016086145165327079957266946800431236325780551265994285488019414503648035045295160334863046757685080078069945896245999718585377067203926472353290306422348454620356337148567618293979195762067922168833277101642019036800458573741924579409230568070594983124437390833500977723972125508768330371652640502979491062900674550199131257532147256391897667352945484335602047736027258886737036551684467913496705366372528529909477544709352236455781408826520649293745589116323285366941745517675119417050050992424385220273751546946114652057612678309990678281924556542747305206316710543755597680357681349610686533236059137781288617428858799573806789736291219855698017322820497906689411442000997639329843265428892956901225673177295437601962666222315577928108319810304126786321625271427350075268220919528916349706401091969593225107142699900788942973290613763747783794510267364894331618146118449943273846552111703142759618229023680543100436089954218769979586494754421188309997064001092946954296239892707645225236902879877940074178510693217283889679406598261435815505392906698281970474052879739071298793097427530213677088222237617941255107033947667117657216381866241942459339371069274900528666281958495451843083868351323175021661794499631185011309223960059676743750094927388335474787926112183573585550725347689575989756789037414412456729195809468483614389998321872032244898858100168455779884462034344572736024960769404358770009370764679714583659238445224758862279729707067578007926265613622107223001806574639899959222962135554289637056587494920584316622610207210948447307566108939773858744675758723993241177921717623708583447634476985994050436394012678694638426981512725433161115449882480885561089452086828654810944968234875229104116005384037181714316960635703187117715161105513409696423188621067976469521493657041230701609197688817388819467396039676424823210279777020892629230324455862644463867375717362232661038581326750346394131472022721678281188300292213308251581735070197750575124664536407623046824459049960228471922229923212526243105275667473325631892446316507121482804511890576922833185147024380551251066239856776034796385504280107172558997404911447978990985507100625030237833871188914102524946696299961485166085448480841457888284093317133993917967503034771572462766939343927257074625279997135342288321120874472720723890475973546901828843586327856863829034912868255254455684454095489847354399692490920821603560007184559624324112485014559263681450883232262274654351012666553592152418685847634831541459640719326724200914852097854063523820537757132324022596517107769012698446328180204788377616848097320223107326102399115509953792523857470953922571774412343803014936509292722531859258564353458708825330388907994673022444171813960623839893386017969800253976830394874879904922445132399570727303832216076336403141332807985798941611495887961366304335870077766476615981207241465094010224441727932597574846758632141919184885831872865676770093878874371983221949780429263353528252665363388782094036023591565011522786046263190050092845940293004026507205945027771896464586701920684660922270896312557720823473402972503786954699044499417170396934352312491094917302895705635541360588710863722593873444425181385571139290251872609691767538324849583456909653711167460693225660155181665411711876860983854713360659231274186804779268070658961561783945077161041732614032394239505644866114653751084554662272664906321179686229752452101907985608261717884688241482937847058416510368551311738309658831642336762981894018651581882207846677997381049668829318816950838939291388848197710787423714968562412534647965803698194847467363685698591027699126887240216413513203466606406917445351642535667756873998012127792339521623823195619713269727736723837143555721541721658282686857565257418667307529188217158369974347144253110560579954280302599760487870540476006717793149884982777553292355474513232348454097775148327937769681350044823867725035624854454012253826529405236512584578445416218453985294962620736620295062233625794587140034904999884709417722733181736360172194027792569416488547389058741026673819222334192028512016682810344647773319931637086807094195328487989256378883489454431929554548035707804562611911868507628545212324434923995061964827943949839039760228821197542099650228669694078305820334874600602449382256431780647821353060323163442403121325909282333454112078732297742912574016429780867598545549928161101546231590958067151939883880149209509142992538622343170305684889097927400240984042767428266584519714400713885100420424979707175657781054584720586360181240552820215534982842447203898462393527884926032523590106137505806441513109519823571651145719430654725823865995740071152617448269155756687543449125022191068063131132110404997327281719377195592322676316390449255158053526858556961290840402045861167972725574831843251709185440875199088932412043315215930035443099688278557760494503993067056048486023672621151799507484777239713539414273373715412845500356208466579054054359305543796581496832547679150657273761284684633834448321636769432413425106407329276267398955382942510324973709548937837506711269643204815218507229067601927788405217308811075973044714188155757743747695116323544466179679123099414043120688033144952501932438061646753980208235863102441656699787540461478848553108113461142630471805381757609816237058308304636060510389578223026014651649361988034474932043217652472992531489369635658584218178889505560794566649473152653264158113347184553644050567714340447136047567226112790382036603472354776978392443914596000623723187257666602641668672014033224343570914482122267940519915130081127263516919708461465648161485804511207144215470768159264800216430433015308643486522913465662410014084220350409765117021145790292633109670582535674477128291166492063096168479496572677846556356357236278418728255852038515728653142552349577895460006455007926175957225242936115020847058763283749590628980995388622263465643665564807962521993885876891617699415189310106730873574470037287527342581311874268868394753788553069664387455864188407475059591291141318194460448036661106513587348055167867180439908080049507447183570555807754930678702145956097825968347705489775593916228883272533824087646181963860973254626907454511843998830475995008169017586350583285222338794870256707184944923036076008852142505722579586930567480577478700700828966417740751863289894849196230540185825825661536097977109634126897716600705036860553871262168047591475689445810775344967637036819232424792278976300601253598427508508599651240074854379630107003858461311364814552995985597335621380309333423311100808550076544198853566646737201064283695251492713373529599353105981333336902966083137424941396245243668661351933990848055050584665177198737338286695112651622956917695782950909882068502356311478872369166088162105801262935288373577181353228167162874003247602498927041361301887911312021867740138360812020256007412696923711982415399431931388893829803472493841914131739603407352611300931058888856995981536769268543839211910521332162993420156196560934280786905245745739653849944684413452671534005567117817776346297089350615073310863311096993119714366447073269380623393504134789732535191861432044879473505090618056605648063855006950590346153239587726256262211478335504422851502361176383959970694965436250848405316288179224892673276012812589355627015735047571664332295871324054726293688967479375049172496838266460593669478735974241843364317697293209912679821189482650092759431305104267820503034477626270622768622596047186030405374932597416462631104156151542572413421730523854088740211543330400940858387201722776499209048960300652495677185920325079470676256583828640132188386440698894250780755587449677315904084339887351228602759406568785440257839417371637280310859637856458747188430572680812895027643305379209377132373531228025734552075876961343711104825001535709371012575913146242980192373476176386163771265338025775071226857575839997965944495005078428508909757746738284327232670018489388965779349876591534345477929999973875031142607428393505192827458041940972206401592726341954152645021660705650430824622652494796684079139757094305686538316382474400300081724124768848102893472786167968637348810861904562831476928940167878240621496116215334312793051460057537072722452153196657861779801210715994800366041454929746884338296617756325815659682126579457391530125345391332375624713729886003885677576715000567457048484632380862756386174739904133863535956838582210995425501086925225890888472075150714075979718726671286995019005832968382981752983250862005222096239157286405653239177397539162460670454994640852310706299982651911923971875927764665140592553662346096486120672417641846222089559512545472540535400551126248048266348448433046935741991529430306199459213755209757947594281594813453593491651046817480300988302313748939330711761843920840568985931220972262859950164223546185594816815073057155385181843209773448008663123043946554609493807673758608259045629169543575420211643680306000802824841116632730772585330522650962135718836875539966000053196813181921504017417050100733977590225310765119625001875717133391165108885510337243507832455492105407765214899041095184138039476114327467379578107723508225377943650467404931580008283693610604254163709441817917158859424031743753747666179647463185484158444552127366192399023857343113656270394667419842847151028726808296693294998832267828371068619419697416631026019284503853041021160658121996814229965729266509639488996294809832577258850112422190863285283244775856943507135110610233989873130834937581049605421018529761916666869865783329118115349305657027955059026047925806972316571176581816206326948441816117603983927618139090268412725377260659140219386601335631528697225338057961232592002602695435094781386088525096039803501123962885933521898160313246242989241205664012464142054525715064419256801716770403904427327617272458472499085847780432583143107471467316233454400933012170624614995541568974299581855450188152025103983959633904811744212151389688968911576442015723701412433623924689827080422656657626772827091976516350866767564830573001765728097784933706295906464256745455716653633950839762283227252950458093007452109423679648632737439263006634410139643409228875136513864624164580342173403826008998333647394528065512608573601273451776662512970214592029404545314123143741712073472883586772298838294189228195627554773825158978550822505525676720347458018064550945671720288709272627183323251737509647415904840086172177087566230170858358955479473222367552788652382118706383205272017333700304600590109350799168303289797456132818904997189490485028049750055083061499768262556443603024144141581641692911459484156002703185339378309528944596360246957380353337355177212839384259127950207934112612682831902580990535073170510983391837767817738318096473256751962460262167457692891225975945148674393337169204754552417176130401577754423343471221900827316341829721343242871632353719991429603542541744441834796239959877005740567351193647412018580605906464216403441366007284741323425642014924878700990652058412553533707670138084145161287104845788977556648595765249402647238245143021880375652474064977435485737767223643078016448186090142613110706147661316109171000960707048192165457370960811466845521627626788537823290979881899518514042302036756114479999193421578845391664981258644951491432704931190873667252031258091985708034554174199235934911778602223266684073143093553613885618273647112693016021534462164803553026427130635269487877132771101665089160200171484308506430819804181432579948417127512722588934951114794337059341890861640475715427386625106738489147041771136243337836939716814364501174723014312589905162807573161934747570609512663437324371864844448905340445483995052638338055524976097456711341339487172518359944801647859732663977265971679074339021487105921572272095279307086902863138259003925937029835520249815193890215317869900619733112601925631177279303534754313220582882053130095431624701724938880515252413324505668501530921858663249392312662643453726072232428937822245623371956056715751531500706204464973534447977400817984048413873400511885945573936533146318697108724996969939962633201246941773188597381698004169932598064243770594177479602197234914847889699321307562634330898909960753487379560806472481941395787512139652225992363589385089415659443259459496082402562741353518169790071326114525042516559492053222223388940844265638350839051555851549538075045128105797128236869693567181946969611484138442157605582654154418965137434231696941206551761503602172024391273880048307236429545839719262668911357088448167236704850717702177502926814992496838602537498839844019407306811702480729881005759547223956710701639747820833770840565526458578385228804702305484445406968801920033556841615355582231544336039715741289749405164612164705252985401140309396273837194305944527363283362637929407680379775063464310234720358579823236913979120289320234407615847262214915379851063720899831151972007279324253547332309442856086783092924724056328907479228141667829946466937428450545925570152458924561815259735893430059571519734685836699968420071076551956122199252554856250380844128376328303894496388470822126750221541494060631374169958195265068727246876498993461242401882486578729372986234561088476238224122186848316883263111916823403774217663709138690251381696032274247212648213692720398501168443254629513228614899660973775975155157320169996894408172814956387221288345267668870937827094212523485267784709273734766760273768868119714847711335049006708721052878214653586926353098134410757922311815821057475327249621749319241442129609839058015131371784106012824749279239011272252888731924675361884853667753776610129202736994949015032287940000735929687924249458443727412266974311382607365199486456940440151168169317437875331378417831670712489577063208026638778216456694052137320342720996126507095524468482389834111944321818452384143896224978708787116625196968057528668493406004079081263883278518527936910819733381124559625299582997111636220051474037486143364951506890926107002292369428723408664741471857113501250458145885878580607531501797453969946681355015965273211725627746148922198495084326279151565674175157990125450547272374298559115614887108994911388666226714139355392165490361049955004392730798576350219594527503310219585575137114189929140657892587889558710332113470584176083535257536687678520780397141843736988391584003975100179866205330384637453494724581698843908432681803311862860323316789538616794839852274464393162783592659601296766173288544141332491365477007533106200018512133212561028127793485583750369494066099898835516356097005347675069257094788383282802288746826726121104966572693227615962152389657159138931603499664257127092735440957775430921905969692472451149864851380399944414714353178969183376395306506771446206030210384461812791046298396819422201514610626899383817424389191525367260961420899470198206176574720544058518885567787492424941353128811061443903468516901538520407990109110978169600344970327020488156436411720512359522414739735108034394412489345491558655019598553176682981610552124998655608967301088649985950058911822152980815555678783930810350976220880237426540456429921046524969179212234431014440505357934836762982524864113805957904646023216152783030098585124403219866036153546573279811913912123475914388086880170706493274986312705270311465415313506990386782158399853792967058669924533234555408047138265885707860369922947456112091502725873248537480833491524806922683222907596635398727275363189127786670367132893020515688927160699536926366842765146595851334827931798138468462498799721365268055925800826268974721469553208921798942920225360803486977808579882957927514764952073340778822370402901028707168905155888066340505886114572401439067662935486380794602302538794697688108571522540988868486433747930515500419746216378605068870939952366638356387170853562837524390076880174321525452483358654880787608119826474654206251838394695087714382758068454698580091634376209348291586048539028084560067662476535356070878836522022383642942238505439516404269549651560543230639619315017088618932403384946498010724210683605160879156303679066321594804242250685568633710793671813246923213109398291787845486420752862656738989490546115171412613855714079835066773442490531501842221633642370150852485969132524101454871306075124044199714807360522934174424397099614100904270364338818683331334724167375420649215106705822553656392878214835270608150603125288909480082819141841478651283813607050697584314471510933036729016782267785886858899558722153732462727826535432765688608350879860327443673649225211330662477264986860560665669578950936663603816848998830452992408455353279295330885991789750776540767821130282748723511186010822551620444167560734661718487105238386719942308037181322672914051905871304418688091752839311304332293637704067656439737830009709009440859454140051089662095513739471411680440245561673547861190908565419290614490753261936488214870218734875910770705678437213182378062092359116490110101568410282682957486047534306926427960332359928827017855408494108299025385212656270887846232445578098908880063401304522711797536359335295715154888302233547815588163709377509458455561947845821935052256740127714067813978031294593527577153308384479354923107645028438474103500937623117639287980903614907962930965100033569105947989903596702009987847881924673274651695880279586258837414161957086263472882792596319568527293080249540711036029895032363084685187273540255096597913115527656842611142741035636499117876303371996482768988066655134573008774923469606639168923643306590601910428714578143792959025500940255418825072599091846988312320248421895430037188206123908610881781495237282674818191983156058423221448740426568694290520555725570570007272997049994147612979572695652777571897096125737959144614130526556990910413002677828917776264501844740052869802950835839619400981792316236425727884210636726238416866690331298233293336445199124366790842333000868193157739472647145593279193652394090601761495168945828942779543391666206621742202905259880474000519751010142575773212399281785302372790674028583147343994806987198787775193817512759181694227160035757751503792729616146301958196029342886085789268677097712407926771292453873839819848959903247415203689597091474169601198413230399831322685457933264323461062351677215663246900889068816934876923842747083613467861219409014284645068786469396706612386783093819819311688046537581259978804948173729484073980219269560737998957038651876266499755295325731170922693265485026950943108336510763958688514690535568937044586635463348095513910116978961215083172874967561509602999648672945432099117582734680005778707458298597006901950378216635446355844051865264659328190968452331474506987418810065540349193901442129057752497064220511015257115006521264860120332884452506124570734272812532788087364010497385125209011873975444998903019923619872294795075155693931572777259682321978948532874252374953898339518690816587103158581772414755718896496105265791305194781406227963725619404305442784555597034233019539307768601391576342287403419384532005667895897135905321509908906246018750868595724902178608618907181934165680539250426603092650743148687003899646407784538936773351864894844470033830999327481771032877176559969669051311018024403131711926793630865620635043424073899664486469688753767234399093400003165975039705215453531615900260164239533887273549820308033948265124380550746552288995464682411104155696066364164607796940083332313303096208602288265550682534488391015364832748421519442202394284003018942977561343897022544594337963027450983241853711123960479943282322790285902232172610983600343781141211243756342447341223675861575119099830024533689990520232680378890924818142800688419666184792166939436521237032476231253283852634929533813646198113619533644727475792347470704785526095552671690589536426943332316510998265761412222694715451243837551278351836338061571775262839504010876785099637415121890253915812703983415928831468933200832858481184627134831677587535237502003882628666757607527769447362551440946399694257270218050642430356312032853763082905132141546473603569586394788053938903441441432253161328268490026442899660777269240899650133083467436421154574009449212167117016009753307497308670558481515582286137415693597692615575894384110799821554450379349174791655045384625872337117359037136930416552771290378992080560572640709264614548463066088313097441508159586382180118556786188011693635706988533011955290353815902319716838139643964681099897525097668073381918282598735076019997005187700981523359758392708252999710099539650890789209017664882866024524196873956845769211127461882394809766457299697008293048793163381453928732748308444421817932263773012121760063153739939899964965853397960942105701986860374300238933152699613018176288894550205617914317187318668117915274806489918742278599037143457478667124946847557083873433620278511933333895562362651931290142056513693770504015609751320581489742740620521014917108994967786083642630246719992366965087510502943534788702556946113253264491808661032794709522451901528937449530925277476592710733150036542541592381230731148354996647228356335588248336025043954969470328840400209367612002758216091134647454147135559001390865810038137962312770317655869869682443093426963321388361324818992534361339431378731333335837520079024815718939087572904307944070278697666284765168895078694317344671686030355654495894025653170899282922704016424431612206201066517567031999876101204720216690566535670216955553339421707878236987391011969669247573898873841862701121220314147120610734865971868103095182794387594632124646695274062330412056561049741424977915911112600511199945123695956362380009937956930620679092462601175459000774239215433928827463178703688755852638401227331581851532391793076512792050708479338063911551331596119526541237134999155620931725570370080412804959597611640875540564981200437732750293323186721168965529665926005709219590247732557224350886675392829610946183560679110894535320194277615748244936204591092549202849474927478359538448422303917249901040903284802020420698531926600889318222434031718067554417586947353288833753088907509938617699827973932097635555715040245440401101311779372311179488516169450254210019776186467963805335066287323614729654653567978467940724836378506830174568263229387939691620009791969647565973941687458798772682160259968498314377744291431215046845214490475004834636073818268689029834785761547343933516963718324269537650976798445827766565638402682218987681364703656203771917470625744802960013194652777420537702162080764503573069746226092164238632135341726880044119942281253995124828430233845717089457062895096737509991653531354798581419853460142515842914965945114972430742968961662338456381889278793990733814263433370839907071221425226642937633220604100715867365170201378851376589261657579517320258905356617373816517168751799718810144620600622530032936888829711973011175694834913152010067756298668170063401737221803068111183827811591783872963394712546388085042905832542499737635616837194682388545476790515499451367306132291361314864097571262049840856127544489588276395141759141662577786110151861074255138405688820845364735482530759886268608032263738267346196822803491323686017084644609405221358519066185234949795941526531114153538884216327128171504391840015243367969513585794007481940850995249087183722045681810017141385553307646378817094541671599388285975590579280683460294775834568427752644103791015713509148939062207752432231602087342589818469688478519321545648609134304490562150455969773410474976331493820735650337599899818802371236356274979771837146293671157764652387550450260393516961466332973848173821811411266739756455575147263199715692616520486262536114608568292631450832444854786648298535584082582660405032275431611746053064142515756102032836275606249672806094510113581731087301717139758247772334611761998053885058208946542124078677294775372667308122725616957967261618761290960571992256969557192312229972973949744895069022607083076201605690606442439472116735337229731175597370121936274801713219936636323850447493457389928634135907194441588053330456424833632021953390361598121091953000533079478959317084605989350131421034823502741916900829798289342772064611721901623929809975764439127652602383583232376344960496928924179244920458016422885570951642474907366408987784487630774728509033555496528543380938404148657699777164306923590337484642361856095678376915881705370214774784537012895470629576604621378735476038663389916338514226292211286779540760684329540297541587821998595154230702676789302781916659319734737160106341827245817812510102857213509937129095985708185386802541347975154934505593646407638125163750185101337052762657455094123675252766468020677569534105944810823700645627396619346651710510382264089395341417663877079269811928436634873675496616789759893911387768738942906701689769130123079710803846599146208361359035680008502540159089879251177167319684744741644607744604925131079018992981103096738659784248761287617349632036235449558468619815672509830350656336323876848566711841200636564140574351800710290117438109469166575585746296169512056603362196989814883630146466671583873597484351387716088721028107174407812805079941792470262468066969460463916735262583533611285788460051837745987245769287528937730751717575013865282424874740198878544742663817203597504070027394178774541287343089979603425372558739515496968492192639487701617869570184120667084851562967050132968348018896368107716620100768592094008701221945291958129609235322787579915755110127371849100859207222776288465142060755724896040696063114264460421560673580839328934547044650184115060679215302206467150126384568295885218629251926497987850240840903528324167257408948273905403097841071371622286544217196013084166350324728813489080020783794209598042649792562498773352971956045360404664523535394764138753050898605806960037496091435988325025639462668766275607593858664478892444511419221150562101612084127191744779634260082125455872020068690985904627084814226559720781121432060230284006687959428198011494966931278201345581987107126204950934823045212238060384427782589009038145615387027729548699901353352265755122320859835812376029069848553960520789498286603792907547608041222904283233734930187327836603212507403771888300456274297069623285544420880041204074949505946012847942963745377820444712223523382249525752306963984385346455753027948972581851612009969756667626946034038738000400776952808591502009058584460583050456922585818784948497935457623108431307976615821218918505697323556307921757802244292739327937716393867445764674933108249602456658317186051830260293730653161977330988642603586585716403797078029556154814070137315850057605094327821126116610231026755487195901331710493512411887152325288250174826838329784236601487199209921901038313983537809490233527375273656052211573871887813954023777248510445975188207852280308451860078246845355774472735915537327341662404251722374068685879500031444666295035579725777459786023225736916352753142409205855712504381228801851230853668190035303539313198302930238232697222414546915550656468115353426045173066278891450371233420491799981488355717764931054933699433238973613499139164169100741182814117603411419501088959955442730829888622425566491824650774973483398775187236098933064082995699061027425523147450189824792285371010482047388334493177002734664242263402757824654038190331670316789365440244036889222151566117821963315272323203040916943980308877840076354470391646966262615081469099663435790933074325584999662763386380065883350813093316838100768029442804709235838366556244432302711583971749346774518302566191713032816392843284452698122443573978471067288202157754035662076426084143129234577422063304375473243723786917407763821369257665907982979597028559590320010000398601796522715599923173129393014717640483382600574223580584546098419355384463052132259805998495961753162615052289354180374309722715178302402095607494562344601269041476275110020707858461029133035200186912375689165985187568998617443320870003937058304910669747292308760458634949260837618320600432587491111735643584390944696121237628270831900577411127997385976846941362681273715698212960626720818882872266867944066747798534405336041281710654328741535228074173965929050855198049372063102370826273636028201923622195342931665638926929221300192661538161710363128808895803383022511327870422424817482028425719633675377392696561963592324897153011404306106460613224652447863571832848347986891249438956892651118933718713262895009426314861326008980928592648715911693757408098043968694031748177707480869931921115283978803485758829756240797395467269636356805881288920842569246948240758489291532868140891518235983069978915139939731111068886553626160226922127154430047896110065663689778414068281293173412482707743157718674866306355903626183637660004081702205426603048513055526882760180576371277508569300252399182203961843343468326027112683648178995761862433140305813896409627046346909785690709917278236579042768973816894941478630842026231831167476918348687362882187137154421731567285636613953816322548326274056737204335831123965766183948581593658102975758727960466475031233535796281681834216676047421669034052893909197952978832345812530731625100316000865277348152188562311623682226806380015424468953765698274458380712542551543535444551900192639450226881721664786213596236294325086577525323955120571995161318253256507936950705328002797471370390695165917407929354547041646798602577270040074947662291083875003177487323364397167914505999603869679467723030105087055068516269309391446913777872860662246213747815995227816277420691998611714773133181082437196119162947034270120672423733253893989983090964184696641317225760807183620170600828043619203689000193303834935142327681480684570584782261870573865812741501832888885355809670743984765642995564328769261625187248183259624245575643194846930524088247224638037228715452329537416253888019962110019558545774299381621005586497878603186496260024710322037378005592825811947863704105127042361923747138503362251785045591657126719968615939689225612256813294830716508254816817686193585277050904684252385977465089439406003559807997794125745138483159498471958909739909914655580449934802940763625228257684927825719806004490518253261056170599842894390869959741600201288325568405593370507432774171101179920109407816755969615703427198920733970406814405021745291801672219080910900268838801499760124226020404733794010308959793539008228861158225723747260877773197287992514595820669728215860028031782511203305701015979602899566324033462982984255918589108016143513588917050443589177031472512555830827988362324037343188870021522407637355952789104337711089490137138784695425442255064294521481423278527036608414546079802279620301084624529333939212953427421617595830659444735794569707385593946945130403979342387041326446841458303570981647230848369833017465045546086077705418787691046410161990996789645345061393633124071169885446836821642967705823422878956119624344418109589871977226113049498206303216117831022196634206895224289075453192125593318461568472579049161993391594694897506252162813039808388385535722607133867222765115630567366903446165342563203922501866487759418044561315282098060873497053612660754085073462287580798733813366385260374329009547019844471924162481298905244895199673276186485151108582797624106586685664774672355650143850384153609468014403621920015781122905558462377837993062244379651308054884421537633549078154863083027061787673550491894858703915142067882739080301513964354046425936958594358886804536834032994961566186915163933995663542028312198993954047785678840977982324152967941901245635535647737240657664213726119492239371544199881977128157095573572619613723286816327021813614450519704073331570348354801544854773238972550070154270316129267117406352827149304334470946222569226668385170161400593059016080927054204500305223064924412808526254761795820797917194350762466081269746850861633257240261201414860318410607524467413562974547536250250910069467131695405385083824245754939293154302457934899830393404661105974756529722797264637755423239669086358756658457502937246564669198752250562243695401690653563507381548244620317156364069901397982277982999016727906447483121120876689218563719936636549792831107695488198646990800262207978237224879879721814873530180909868522322420661985676983732583330240335569809242200613390094355814812428060611183572318176308853344006887538737006578093993588895704159191089955395980788531745835700300938866208693530930767703396655723184666374247555479881033121677903262839160378204120481182329875753032022036091562813599529582306558837277323755405496695478636002450588890407625965627320889445650264597253674877214133127334935868341557642742904953549333800027206743398813243334183429017875079145473499988293779175760602993602978983700852283226533632446538430359938116884394789899864680021885467144505629552434281883039213706820021942928584248224200500284784213476239971872601920942187602255964050787341854925457232133429756520974440342809354535561188413990648758656861728083933751077003540695206360590164066709573999881154436189256720353665748060971840972831437138488477886580093265294211160614508019329041337398125606814861395684203721962152014991292982084623432110578452937942543468694973720930574335715890357398499240343723244710406020468173309144075290002704990764868019925948343507770944498623121468588449131716546474065927053006414810600890388237451404099319861473211453424548072529859639994724884260750147010501481315446253071429575344497849349993111156670224782741915903005130127673318391622902473559091785898930960628957622344058356858790548452171503718211926337288412552843548090861176226717010406406045555532841216077864852347695890277620122461161061057200456440161946548744239618605429236772896171534175154598891043219447269216098615042785442197546827370918586405590920586530445013195629892298929634127147560363797976842825991042489511653659363883467635183664795121605887953230961584434291418327012710925611824772155591010483013332333791494071277614225093545439530044246800934216645261312233471337277172690274672875353547006380254745314888026855187239206759721250024587713207140419509389618549819995288434825864828231637454843337697679551779662625631587918824590637672655236624170872286305968550708470018319346898845492224828249954869295065360916016380335336003111942270780518722601343553422680508541685673814917671968503762373331240876897808232157948730169026930753819288467602185864942709067252940789402611820995997705437724959486797596955939118816921669284128046936726327667380505805053841781377814992393543640329694460309646861645089954001558136255961208394728490225303265635532205028602047094649386689562258724084048592913308193806070719151140577861871518149871924175932112610048121576990612215925547323988743716213602151131546563204026077975209194681579183468568100800921874503682162743562955463059115984229997658003362435445114674275748009118477067935422872745345081771011139068206575839607736533287033432848781796446462112950565878324775171592933405876127822885679217593574602293081178970464483111225104437508537715761750448904655501469205730058840391133406824363146626703897060037238109337298763452362759792608889942118876208384628716774012622239772215486730998177972648219790958081405756567445799694588029537446996378878214073791134309326249430459439681360738908366408917658891539438084095145838255733661210201318228151457274141461398538813192317229879508985443936936612474990743971740963773993139806474804515162415093339525590565913578326108637082537618336041550883550762053644943164372437680485268624857594171420077812376001876303017562951473282960424302304574909335908317367152422609603090685389589499908973518795861868034932474839032517208947532116423152477356503557124007405652577187868078256860254631305549475376492281677759904817909125421971763305255892934141851541333369705449919757362747755167393001569429224060417166572237516245301230539936887782231813193956938337368242989155709100092721196585137410543492116162956064602123233640044166217170205113069573316003886311184525749522155482143923420563242221176808251603206518602145038810120309993991221894778328449064319949634127354693548190999334657327326170232925576349246829702699654226199597809388190944819887570033707131308581500390738419407023378557463490613854765416633765506058574203717535834950617119583910502727586977991909639111790256592836677177599460122991193704750054438411371256232125080999617880208511086124569950305305527031273186004287404701166530995171076340162774388827985062606306726922084132503054644635170011560921149018336425670026815295448741108363501707906404863909964407650336143137548628731944622403656692514199316523796846178685000156921698915383845019813844317208057953061356422208637523550955909311326346801097963305402390403800278682740097017890538432315981470560748226038983010369527357016888090789226477999072780501657237367738896319241236906608590261004641982999688576117535186243383790731885486553659349377104986911840902266662690518554129417408500593899127279639098946911071753609442968784150855035621919775346917166171829671769430078548898425235597024639979099641796371757916835708634431837177702425251079417838731580191281394263225255328435540309262187598079845603527962079960587274984749134477815346971125963008343254317777530186900636720001965145732107634660186143585040845558799298264156927848778369618501403640533990036592766304690167193607664963296096734120877201128342514948383214567254439499872375059797169546805116050652612084497174163968956572860773526940586970294477536512103646446760913153449381844195516774056337202025481621590131315109677484817753567240213672163623531598961363521968174111406168118133919155564938173622065340670149826116397154693319480742640082123687750655861670377738678650810655943724068309407908624270006039673080175552150334593574865814294843245714867366349167861355919408907666974419381115639387010990655708563958202193241177524194023683537420592318512489651344774988197222345911484062351530040796938602756751444724592022856346617370439383946614818868412611912087885765723885270221455910937658336300396999513512954506206528476164089095588051949347911752731520612054673546177927142644974348473458186268236818562661627354877854232650431178444164746708629444405614069768457676438071008231691537233641617769520900551205274938613345060546720231073550673544234481950120619837364407794961983397160972520802682572148232523970268518200354277351710231680956209221356731697560050118523260470309387960872693207554023104815322388434274574855045397713820855687555738357765639462840562891064378327008493009814549016830101006001782029650637275921159891866880168885663652580101421404185975527744378663784946839026051187411597878243425754570507071959368859167950346176686968453300686019480630267822517910305083910027873426111940073468595389539695940161963217794420378510177734698021554656585189417405484981399358521878877158561363210072025067971563762729400419992107314439566781170623787833091147772403264407551771436900526625703128999401867760881071652186619388659453394915818460107932743893695315907136659195197855427134730068518969470770278793016323868525834318498482947276068152648296704039048064576838390620069179613298498318110859054207832984200358654732476152929019707139451444807976616092876294553714761488430674372476636970579756770322158888150147938121270921114753832271226633423479059182200492567811821523090171558183678030170296609307469905876835942213685887427537760171899415113223879342684079576467593256247758536207650760818233668022434438673249740812546013311630976801618690215616978797448494778417516520269281014676211703219416395971649092561182816864532552295850935447257923923703303960874572186702359360586517983851082129426132420793950210289406695672223963120738153778046238814215598153033025177770671268908445241851050243939239234634910224822121962515168656791129141078995733796195943494847328847493532404070239283662118740063548239761580428661307301450738104508317989940891275779122597438115786134512598198262584658859417312627799787013314876803582838503934013409498052861211505464252118039207826676879428886016108334829245225579604295708474431043904049147091869420212167083460906862847065051308902883843396760124280893096900427214766049708583408979044770577940492688754893354956118631749301325779561374197420151677277947681945400711779163371903363049220702959031516836797243308854124844267243453813338249231699322056222774394083161763702468119352058997183415184385856923164352222063036060897952283628738609180851736957686241396037476493618816774545822938845825058021493510250996530774356019753007463227361309579874144669366679344676582859378112737794542907743977086530805517818984919662637562539448577794077806871945609052517822272826051281825883064436621882091541184575481428322285564024492241862906298537164323428629926164548404524323262557812356427834892265802320286917555332552535997248929343704186526227329135063132447579118065929127086030753913549861005225325224630543610214308663463408130368836950927768600181690678859999013456217920458486866668644619745760266844108738185981090076349921917842760441829941179881876420314889003239148553893906791612117818844944589730292102317738816007043228487060372416463988286537993691837092821602644467234769533928684280544183220197050832260209291536664569527468548746964978218313112775655305058914197930735834060261445682277153937942831968278898427062324882360334842230687106994441180656546035084341525293357668902493644947757263745902420400512340477223307876468049842046773523360109723218938722994822435851189338457797072231940645892949481318519062357151067415980752826407777677549668510192650848849252688335271882366609966007631769284497924425096334316136006724947748699599067011555965295617766661088907299777139874926281552729576013948203352478067137243926836654980616583673612930639896673297852492199843423299952495707503098163733894904127335373853297674772018392555840001518663979525150543241547329163674356778958673026169046577212005734859575073819512823060684151206533365658611102472828478108137681135416786195292035112912693369050908752098632875374146421509752809038430731807369947761425100436132448135451363290180465888350068167951540738425917210180718429670340243609798817528788869857296423368052487124749660083138801565727553507618274206835536495265019875645730528557386977238968866947153867571665481750600010955112675700824043508495175931013025842521984894683106218811414722048627295810842643340293085732520177300080212068725732059786667128860093227950224167580081934646702166721473496989554615332815354478362034939442660302204054954117023052327069397690652175805426928089990650918638966372664943842927836141572417734689547185998611857883211538324909570542733005118374248765935158292650595134478670003768228217130329536709393733049929793075692066323215467163613308628160229877932402503439524661814142010281927530197872891073075873946823505862588898248091856003516106075601785838852046055017057230149029724373895822389853547084165021354687717495872630523446836003157968769647730013429261145016851311727814296665249513656528918065640099132835751612344393964965009085693098227709280271405017224974989421885225235695258859526003615110933798525156434472288711681306139884362974400384578762938438706040058574271578150880771759352615303556719629247220176072601525689416821399532883713429361454001294220917174648312748374282166714563673498893152474975228845981760292977731555279426986731593428705029549661021490680143250062175205662582144078710013030462473356331104542860772766114490478202041089923571896704096590585824289786746612019331944644645721011487703385022837821127489578589050903470431909601680965736979080242659526787283959212014202309322670942853085576506257665050011612805450880093582726665821789644577511444105745793563463707483164307962922239011444657566778111655506013788618014462987181702251090894397944621250884070619495627281552479863066617667626169269191994666057034028717788772118478712488029384662958386831084533103278573887908005194690104993042478848462706110625446883235244997058973545913329539058476109824275931977730286009731778990871712023870699674286281463474849882648324302920059399943697819854897277999863493784481234003879886120771915475859659010540593265826654160829518445090406038669297384615007125798197495716123433770386873018153785112692115690270750151308032619893878836026496005220283039608052877336870661252771558593231983217222128861562476825907290995256960263981566090464101770870722989815248866368315679873102141594261899288521841658204653534886956405156018481823917498693892833163284496695511850254297380155554155476595787528973375256194585396923676725493581405989538800284483494485060650626846840778764346582766707636910158591833571680006037574943826655068599681109659570380719479370003845687539894522265141163521285834104465304487690467679927411061163792407449132534763128809920796199400345623521332576268615698473933875653651079451337671152502487968368022813388882844376326174394576746635295885985372830700755380945180263727489066533670583979677624182545305798563274923239166041480930337766984204571905792611336851998214876971972290491760873263107475564106435241419763916016030276538396987875204628966545059258823153639587931723755430897139970502134068335226409216055040899360099663245444665738333076710208957429611645703895866614426874234483560296679913695876950767902888536239577717573320650477864340894325089360106111314146857220794438072655339985502766198173718868451447428864009281519508011382063941737472666678313231593517748162795510470455946685849787992809023344554107083104582599403849481671691359402545380063880550703522543922620476290400339574692095238366241708752746610847839120265163070454172509877942042949982170377220686403502497700663942230689117609395016330650373011254281445770780017385489579515368496904811698510543441948294330088457541484982841927576624817558258613648083579697755911673442350201840846940199034714657020189495667159556668943498334904340585751877794128325426735065961455586407426325315025256947292269095166454359135665346451689432215717908298214046437983634957546663016570871160095686532230897698389505195884089871301657505310980343518656752159307441930950220367890796960249145160704736480194297459569958601664348546614081223443152646449764297580622371837758565872845340690071627510595498433851487867054946986670752034746465075391043116645016109716992551923261263907116290014163649264156832112507737244867662263817330692724715785621118867724362581092042466107438059902153281755549068150895328886069320323638403320317543258806482096575828065429548442043595565164707036903552766942603400488489466050723500873971521430942275599218579443957873550050428656588632661514930756164934042150417742440065506158630152258968929239631516743002078593326119588412826304828270422537269492111958100833901461645753597307354909183868799302962192123337192356118567263558639417832288442042544053635110301246667656759585108661621135699436227709791426488408233335142299508140143964132705068940656347091164888712340375881039471187867854382783947641045495955151574144660684458737675150682533909179297085188624726710143096113595491050663558570201032768731779721032884061522451301940447865975611453102795250068469060056688186223373594829309284080605628193786866737727174619109623067292192138194832543842322082492856668109075917870685939823950590849710813841117641281205255490682845907215688894152106422230021217527549599336962327078997910929607027613577708286789260307748882078942329534083806181150656601881319111121513356694530465984967470089696202392361459468558247195536464838601968045459454824641434801427768404534678688415407133172622340008945575494535032147830621061645206247794598037838624906796848478228562203529705182242570332964181247278851282576864652790788104169146279642330667698027395015672030534681228468597433307117072929912129214281575734373238669137795312922792009360804619187505720283025635456422642768587247789710553234470406158769352177780902373372119754317127324983695667762252654494691636391080583570982765849458793533717848805667070692864027062998743195947304835200434993100726207704514812829733916840042854872723116122227657062916338705363732666925386827700060806465699124452482075545666250108709070399144288262701637146938742567838073345089981062034831904951292811755138961982005883338968784908003325259263072706576978143467146695064100686403018338333008757898478568794874319382565704104859708457720750092218706906674524430635290923386323108102264100592076119498985758579001406314228472781304917046990522574881212045747283090475843744244399361499402129947607606528298784747875179128896361192744962180675946135447254655413171671396170409942196290402216697137389505632246289296192649671272072454335439264832825327557433425254567033537358397446479939656702105961998865093606726050344770373982727426800107476661999753034378015448150117918928281224463872695333784814416152414154056768321668041851877620940062093479061801033686252434066136022994649089144128369113377888018035736480814482503318585520879220452075425896108240199364107548488356149914429670401905149160380122582770404023548928389024614759258870219088155529107957639061043286100409634875347623921427196206981901591558159184402545434973994688386440448315019411128194053717450394888701720243069962259210999513487329477756780232478901797231002608608862819568984858622356019524352845418646195547415021693257957397711153729209238255841425363850293863737386266873135649187443541172766012567598963029707424912803538936032451522670061234746406869931345596367356479087804856884098520714529894454089276742970449870470186186277641833211785799831636637026714020791109170450753364199731748598239453425505352409691515043144030689967844285536273616785102270718221488141972353878818763469546842854577408994038820618639976441331186418306139712172922732196032479358170037828798823255846164895880388599160363756726851343195385921897754091365665374889372858008967647653754424759779361288410340759646710035825054826455159509684702484162031132458220792660631015674110559737836677159624169671239862167412019663628434999999381272910811043672125474959017668167237822491341052281252500787802385524297221235217391471618595104675066030489991002707946215988842004097224407134213646525549789056929975801079428613275170493559196708774813035287377990290034241259044601874880961450332696447871046543790248770882485812217426867883280763366195190688851185548176850604218856571006382223786682120479765075164144260442538977363497703135912148344955201918840460081304796067781200433965572490537387300690531112064804031091032593542162898226077982633317517603635906093558982769168737871913195598941130421525042763347806441195584823842004727285603443715903954213257598576055039245975290277254715814274333235322030903618206298513920202378099217367487308082332486098945368773863883620902945326436416646437112649205959093250022272602170986296780033232979773093592713758383761590666263171349272038171165972032410469464841896233583682871897675602598144441012200133943339542199388762534822684183635010920691231602082358484859425749235169681302575651944115849702827336098884154002708734336483810634347326134449110483441322692498043968939600828792243244030346253731510163152488518605651008058017502881271900297320665939447308450009429696688845507766538570189079802661040971226734213499336913546780657845864442091923588043544539505102525219349882902648301492500033295760333209352914268423361729749141293820892515264752093104777422451919409998585582296069912557028125045728239645501538844087337101083645514333381404081236689107122753714100649298050134181671049494773422237117693237362029529251860591858328461017605339546068215917616368510550295980133656368509950462998835815824480073436308397148010599652353350829276367442159552600876975973056517850066078094393009766893221125312825190243167517218142900224992541801970968150438345848109550377964712618129606924484749573137376274820127417250171869440847845660974793977446824618549989314821670358912158653152752571454352815288212822959557991989873613930429431222668840751817490447594963915566366041573780370283699888263707880434083372870431641847096781136091619607536042441719337691499857674771026217007087555766584121116736088194125102222206484833244328007156469437292369964303344368843364520239368703943556936277177021997508673698532531132709888850387452289796630620275678528086709104346647809919036830624838494209378605627390446434670569275572596160989150632434456078230184028389257843507840805416637081815702407462142734435961288234034795977202520005471779353859053660658230026452473302173430467103071666069267183132402612281397338564070509044113938137888316298681870410086012795235920654981070822377195634777036965745845181563007634851482826384453999760898877617817999934480894365295133715294512242462233541229296679192382124053803386606938686397888696139648323737206666288155134686593423998347193016614656479139758431205912780418521347113404849592293586717846092397533634270664501536555247209610870815087840439305720737137542475590249457496538200093938273623178839023559203679151046681191300081991671003299101128899261476731975618009112019457728822791317490459288204827345723396175259282603634401185323922321065098802792339340498403072562554411343686572549782848793149721846779323372072675745919250722706876380648855376769857396530738041044034808941919442567743739087557633907477744084619760902644990632865669981678118289098092790995801707147482265226612895754386082996423007056641236448525803641056667932452449552777623241469934490018124929313662680764570751029201068401730828441824616918554229303343159135674108982705058493927790207682559527577205397952496501504924937394689306838449611748057297884298242029701552696789334441716949418879658558112713686714055682661535050209803817624419671258571411322063603635309332604042638468644183032123073083584923723397596650661705117786907986288078664060220624073919164624687067226737323636038854162484585237816252890054413339281970590370681958557912727369922303208367406660532730966407690164634704519466334734479187079539879307487282563067310976396268427659213537877668699970484316098226278660427572450244601269686560404519483016212855777572894047174253424789619215290042413755456705691027764004462629003757226729502037893689674285208183240455701191353533608068642457553938903734232624728181615212474842779690506227245038775482490950432264944185441917225429389609032445001264503982500422490391773526538824303145450729083333807677316408586148145430650497024233422513632130294514401626811635519088777713907440825235176282515031381377115746451559495024297649376557965305532843327380434795953764060844983961221934929932022952407850994396411088730681104666771947488121349846963038499236480239766321104115645029609047220890597873304291052303909597488019163979618443266855048121493871446429915273349456573814355548041387725271883739785555599431853372051058866666447027471677983792642745284336066900347723864587947486149419617366664045099664547714839338489662615950757852354969969977205274987129402469804560558770969721773357034356825125431496180541027131302729720476494638077217784891866880889569231110132304752504444030236631192673690577978339701362625664041222650027986685015706548230568315284882253418355496059699191143108890882618804149175927086343283300253634919352907833742388582297105929354203476251507543409197284145757817673295934846457094635105403309688304622465629172631236334335478134837421073228117109696717845775509814002709465295386844284381657213171858101029426284136816690125481941789918746174490451480994340402401130822614342875824580864254263790396960365772762217288143540634834918249234169015113141116262124665645237701367251105990029197413730091067387462914763208292762278349630179609712349085823996567807023163544537707283560065339382969674858736174330820495550354791182995722379058532463736529192547923326081548485719399648132889146931868297687734945620047962036184390026210233312202217722674611831737603339679450826595656608951440382447300684085626848834142939573019713675879571929296727606223506034805261177774856073309005628169914297321228661418881875825407248215980752782297154319198248389880428880425361364776610854470662304675535691415607363297055191987434116959892644134311708941906670119489531023310503927743143407221105248249262112371994633040987234500120060676837151809115770335624935292347918132845226033513856392195525606012727235348911080253123827057243114523139144469343046320212634730628030805566891870150409650303287228645279024537272529161733617571234588974019916891205308777422536267897427540677881802969039152524249088780916642806543362315015011761653109668381956958899075761573171272060389851704735562815546879829363700750453174691647821078587292030126828551678617221480647147615963325238715318596530540038251750451069611446609263835676728897775148565183384065059899946395122574391716368848505431986642127327086743459897101042847337309452807831811395884570570001108412023039927912164669783167340577013761709090562687755554937251713482288893324787214012796092472760713869761859326427465913375432981627849668353561583210524249635999036143360632321900641561646683015720166088765587866453875096927260290289679225800274243199209235378002927246226559327808856390271390032895311842340879458572373667981311095424511908469190937505004977627286891356899314560196613490732871026810690765783931421155390310295663830506142830669499921853173161284875670211094044198382994166998345862944788361349526152039335675719268853520697395638952871106444339016783657826745522232245376454837068327569736559499219496512096865816079921320723586514586875633776567875970761550862930499206564340767842711152049219687418334890986670349321138989233264321911272657171035840316614234304032967146384837580922177178908639525287260505553125898556250488046151213674300568767768661978339016651937791358285818034152303041872507584773325810106147102432532726583008371194624401638237464123588627321036998923336217656672959700358053071393056827975420461426984805416865927657187907001390682366283418129182357515343279691056395802164759897373024525547953202162040394453314694746488630419406259045691353043185338162116854965594264992911474062175775562548925866871800952473296995089795654254568955276726928689035706501736250771772110891519355607616145224414133745135889172768424291620542243382882301519271624493105456858993281549397460839073393541256509553384769311272155033748177946049124169713445281657155056494372326080429502592964248451277985018777680536629585940952209394014901946167406669598905621537400760127037300521634702469772461284853136159040696458036902554763891780819634786456791936428419996293357232724539575301572348444905692867931378671252848168716061258721319528045573976340409976462053830414076109061383747730171598091951792564518809736700202742307493982889573340150985844328850047962914456621027784071296862969413339005915625746531811347608167904406660811117052357393899012833000156264260430207991721324621875986506798122633749549965855286575232912357156759995154059717397929849105998276207953210312932096085067195850115482536375953826316244682097594287672254222805410384896868591072138358290506682002296954519468544666257178885362238423705076822702700518550110032366565297808636437133714341196206672976359995725638934300209492410897682749994179616813139159755236377696024316635812215118266893901777277325975259012931661838999759217265174829753470361797401386093951746325440429967456461556984248907716258136640041355287147772439257006655256456497907752084047955403276125239411687553671283492276582294399487076450101438412812379194361806604733631851258647843302475829686440711032445821389601680918034484251363560539819650345104129806890709012552569776532420123097646550014177730364567217127708496470674686198272985410925405409851003117434184064646255503451635828318455821891536060790796886446816937284084407429483562180522506517429653965297184800086121213114131842530652247059503283030800757297859505830558810907438998814102970710004571286761416309047725794640805002340648957412622666170268124952191023023878047303977926030414404106540872207706281917803589523803840524485342610920396365845803417202841067568365684634456234022190911268089940678745357469018989528498324885021614307782246776498712139455088557825755069904734372811864667168880492457660590062765385640411924547038264637837317554971994792474306165130410268801815395603571477600467661382425160428358230267046708831339818358521606976846308065687048467142601290595696247155648787354951011090146062053198376439640357066323256081428545870912685063759613336197005678190754066175228081770315114725535639541860222104934052047494928505424404815678809526924468539358380405383103552660735285136907239520393617762788976227803747536406086660595343665597339196890858506483631359408250796488406118673743492020976828170895843617293943344830813745824113056419873861553460539351044802730179118096779846090576722466389488186432923182936076055393723698959808786935232281127529777863816138932324429547857739089400741535343616162705555449517002099437569374061404559980894807199950862510969884600511215219032741731788771407534994582859047029178058247802932548443954001441513649128338233110652977955235177043230525991125140369176214082655932531861417608386364502974954445685077820510676491904992813623096068893488865510063990187683024361464902290384852582051549017597806289052300554177273438644639939098600485692538672851165915861160899234380395724608884450403786033076388686657579918874530119416016428126032573940373399840284334469476042399255538499435729010119086053638318247536186392487150989671853897857504733334998187891419917682084589692378360872825391903006025367386145963602959468775900940285139169866590117306200042932625025380229820852626125235290978642476755363946784946278482286955431893753893920973950674376650966809629265842659915508127927247994030482147481213925832196866541980978617951438237768735744078018745706674790638247488128977808643347147693246445277528485016078378893265038015334854177995002737759092017073684389453693874383180123265660262373120943585433484596156098598368228610914183975839128499577449258933018340299423072810684777876369991351199797425707275798990567828790484535129483154155283616073769510091729277939669798926379025956174076451779918943823248787805704274249110691623210974254013012982239326172554886013679843664089256643509488079405355093048384280962122880479400101991228323544617756853123574834705334757227299778110527738415670045494092013030924064625493508799943250840838596150110854486992682799397457400382065208169726243116215691968971213294219721585916782444113945952074933743426397816087602867413865602296321372328868378943708322771862588077487934989182672212053055029930613786986346513080494552421295749636971157999408298492342528409681749179249838962412864888414209174033804752381466172486610893073453145659278380330973138153236033498539806137583331456697406603040836479467023200440873962917757597408584853737870061135206545474102160381650415683766731259677507462800710060483475880812392365210717546701495164599358439579696631176525950310208867868194471475884954102362057027758881933201459921399306545167002787567327075892510499567167139585567388447600527642584458114481174924326261127666934715788609614925306792812379737590967530512082264175601813575172957038072353010656449134643951354398669424449412653930148095629261072946232145856547003576789882668567274108122754087262288726263363477356934372053937247859465794955787457444137347710043399530556455009629140854684010440347354260900754379030424784793070384892614116003053469030584274292485840081182433601995523371124501515465394169746645113796350719891807012767622739582263443526258169581892687184041321322559957002522704566528483232178386307709124797158084094435906184765891894060339526583367501344608278351693907535144429289989112013216415726238585513720512581957372985101820913056887811820661647256576637658941496447383623104209299994470924682453058726920135050224990435687800180700583836134420990862021658909056736959121031270935877178181621030252377986987810760218926251547707813456566129789455806564145162910328595460572481042764797933388657186393016530668796966516584855006768602465900959702007054964563087619426048509744962272292322668824391376753938257615487130914102745588372851637738406760589479637145066335187687871509607300970187004377800060907947631488924119795358410877775767964065476693293203098237243590142734905003652738488331882446390206039148701004950437726410187165709811103586973117746399485995984823751197458318773492961875549048034814788097636832040477165892084155929069075182557615126410675438785955922050049248338905735843369876924669711309151348386504063379902553098527163685823454702534146399669497693419227851758282727684003042287872033327406221166943636274257481900009109604353910907867019131938189010054910254150896371332201541218772874771285189446004203236858781488277842287034282807822821723483642086105613032672399955196335204317495757523332474669214476397244819661877177563713244058266860634836781000339509043435976398179449087632830807842772201298398079741228904954678665962494867169332033161523392350907813041369234294953310956391124701555518215185267823248553163685930095958021156857912454418052678564216475632416951112585019220858744588806671882129196984173599105872581654450067871446105636238057409030206692532728721062170724713331058190328310388987779771789430004540551477993125346629895311630342451971505869870949779983042689100558343185545848316319968381261174400111696179374094557816918467141626655331897622498988130036908000466287220531817984368139557363677516293778170121293145873530395141164108426341825170630737861891850275522876370686766767021846703766986973410556374527075675270704700708513676302955693934254139220883834303544272816812945998487563414453466252545237170199127293207186193269105984646033671803262541256484282028183658756794249317731497325937117627341161590145623098925699198645231766647409804006060042169243774479999081285803956888699257131274742788124362333497780587769094100256872790779641808828829157240538152974143201906788851806041685883053712139849143520519646875488460284491757975308127188614300067283137897608122878654802527607974806095039116689234720458174599165989607314531018122090275752042121531144077364360077420748472940376950355001025750976307731694903463039445399782107906632730358957728841633438773865604673751190592718988949264218907772104944625009004710605309066317725910736746959706698218720142112989315342939704375060814151237715859214786686969235640648840649471972646740473949153997564958952783359465182074555841458178712723939452241119261484816006439825271442389440842834241582565790403754249132785285035803373059139520403673610829362302850431443633221228327911183590211038119309374864247631159192129179548858028271541258797691248597975724020184651010349606032174909933164917527627789378424009870590420884532032152703148422943666280244657264972535560599912793817942821300443881161115588227076178539948683928532804646851555471811844378521367130523796678511182658801596187596353512305152066934958609106181082978570052038913819873362197787833223344844112567897790369576618369699911813618446175743076707734150119477198005771052538683344676979125737288537546822874785053704762370107814615369639920741188254036549985691926074683032644730431368919195270091672078359680162556594075814048470116253156307904032867739253974928305564777174552513244890416082369021420586192262027773710431087823255945278146275905900742343917020960375496379263377078044275799724141091558765209905597043117781774301954471524820331176352792608360664656033507910624744106339556811805574986620345541988909984031505891268940914697275188632676573057191650054963235004297974518423399975473094468289576521043286612618605784143972228213836420191010263884526803257927914449143312097637306580726074720990583660534821900788371626229878659179297451901463618198459866138479561838971764934583247828085769568250003377842554270627986029922939051176481746349890253337932834565365118003982319595690765909625812427858472949289558743530459452816084540154706471247344237551236257101286348562678754498313122597208612326264815224795845915586721772297132343094740593805386879057816176136648221190612373699414252135552852535701046428660507412954798262131539456722304904715094319546404120893027687985433144126128718164207371521352625885538290326873104925528667710893517807692119106986204341104196344961967242149664791973061076503039099461102926052325547415829473032151336399862560487089093786847882547331764604872093232346283671462575579285133404643733768271470521626970661701819290541808806101207808218238771639449494855516565986233337644770543946403751670307573694843506987838999454983479607235234018794867139960372937646802077185560223181869817805919051185434920492755024366169392137420674524508581918698360691815804537864575013458764391023054962903653477726825894610528813345554465014944984912126987329291591509084039183356968689150770032495329498592346147105935281020169954178081010171042501214567063017171848558643042789736747756677609299442048055107791215105118965346427278677607932108436738917281586648497064388721657927647010352196960982963221393123903443252689464567381575234172621148027919470813242855694873035934925370665954720480034202348644981476481980506984325341457045258583117097850745637696356280720914206892945424372607054443159820072199923874707213332113608923352480413327655541716128949329918037937083967879065869963786504908157669981121708211632858273914482841749841729819296685981458176912137838744181997911955978419662528752810804269015902681464663734151693527435468927167202093498192631927875609156509994073730495885437284460606542371677643179317882288103231423740528978060228302673301471782584299898184066305958862237961868542598770465695929718604397050802248391514185539393098201636329699558526027863578170928308018588707576469641812016954575128360899738864127201478282778645500939351065136946169561804959483489938243361150471491265055851252701872137691994356404679230903872218781155235459512420215017644099582545494760717498270835126374783079792720138959433188799545342221839426157480287731844593308852294347801248643604388835547000165796569061296661457715419551776855878196079161057567323059543533760081538718175718813328364555632430071664538896520172142931415035600545007354128867388016343186062968069493383692916193703478428451339397661991710882146925944270306481926391392071625082491948198853898259485613463654736137583867972694143444966945240203795391461446423566118010376974010842192375992827184646801641785472163957499606759529685240750248010537845781747959448843257579608622297718690452714529703379796810197192328727811846639952306132296512024877338826933895004958071998671586930185168631943515969953950665332688712278855242264062752986951626222321967019439615760495251624066450206262162007172746454244227120215159693706691283478385708061785529155639072190282674594908803026351757531414473585983158963214875800488913416057368724815277235418327794895899893433872734589919293602806430480071810627069989026691091399883267436431582365354878825322534309576236894245929624817073479143331273866421873990628615190555167617460826778157322204271287374977530380126788325131137116194320326262471400431653265658095029215407166065628883490868727244475271582314681288781257209904217559701233900767408568802935744243706405455286727236868422253623547141627519942756636987099825243066985023993800540282932171467218682950809321737053202945032089056242304080946658768735089286871493994850680409719230304706374677662283742796541677468990217966184403758220169599088808190065372461360023076829455695968503294498185048601500578563049829679883105767065703159069126536761021874092085117012038541879136128515308766130628834724952603178660516228255395755831357625163232816199687681920187825474889197643717481934861131203660365223790945701265961834316974177048309696722957903095700276755264703509716115074921864212901627223148229370735299264769505965861362233233339504786629857645687548555737765617480996202485011755110126901889600218871396534437921921459668612217015229314264017217615390148044180899382528716784927746217875151882851341573364918679791233799220137507567832539992548162967550040944780406300507899375405660013216954272818020978621293964377170207976665308288811482308916228969757189095890605802174481725761851983888796506026514106205072647880315125816095842819925374959606374095916236510051104795338893605412148729331121474831275533436061610944909769336249156355663924028657405631949019575348646744939538853380772485064407038850357601814872197236936137175064762599878518745028385311382740362222453809257513088418591295447205821875471521137137657021272878571871044361433370167989494358349231916566928393304351289455209089942723426627528060140615754318602295096037082441344000082915339262525141325892632436599413597185787754653084434197385070427016975602288314246097530334398963264776015136939630506570452522188816431089488368491080125373433681669726509983245182997279498648589458659768611445448227433577356812462105775102127889275780916012179617711041257473170608025430709893586979027451590130672182602884050542805855150972563480060357404261579307997320544577480557319124957369005174992866485216055426077884544164612743725255330453627469766372557196653034306672453826409972928252874129148033430948289147058391224787107851000078587184076714836279842166991342891475197702699495454697259960684950400186773299279518165752086291743996345796132576752157396454822790262229237385983067518245745677709329785895209300437587998208887195623562493952077282385672612068108527888817199975538645336608887959937151090945669940542714293258970187371747931132465436053206189438175165991793599473428441340771848325604548073417316465208810518421680791312148395007595329324926345869754401563812425656476910355443446094149021501071687110435288787377175534129991180084398679159803360388570761324407035445488570663984813489090942978206361817879260415389336120859192015639070472845881831800855979740318103790096737484627179647479456203286229462859516739261305401874027795452767816000977820003234198891332000950787677970232258962238046359554631413578787369288623997795701064363773572522055269602888186593021895466790792531417463034515226472220630756583610961918503135722163608959317983414552544033490032394083033174674767855348329973528377671448312753132687971630097355009201686896028278442789912500516332188800288506695459860605103223629726845902868358085608866662206447176407067596526719885306704743545876400832730191628683845844983579105352725771042970736477153859157647738379661437440497193761879539463291751490084263081248975683066301872185193810783976934066957233099013882399750449821926603041077677186510169586561010377476850394303093820971093640153675208683520851450533266166332652306923896699529110022383400283743212234466569875438091638947273725275488415726472773375609095316951962792661267798473561234581926859974822644020152033035267719399692906074049956852162491665182260999460890496557029657320675350560482990045599966955928223543889905956406184804397312798909725544955124588845739162135095136414066691527471492215340747867065635333126057664510110080404514904346638427823895927251702948697113019847167292638757787296578120712227038204384531053580778309353975861685537601705089887059987414945639255711212699061306868341541845917985106730646203491344221260420857781689340952452619190671969803109260061985136070316286948905050105958663711221128909467717282819620300648935361315744246503082361251487385619287925320205508550083613176399290231728142374945418389092714500496735391353493270527490256606993278343340018253913043782850144235985593376595890272857480139903660844892676371946356494402508180123721608774534359101075116705215127901100937485465344855583341164098290574801774514037772818246531742750491499568091561726140531011657888999139811192584388694345042840231084506734280361467850466475519278592702703767107661347373152881750966929547849121784618875077187131067648780147014040035841795734769317008986156376780069585615028192440465437624743141573499429256253824697711500691436339878780553104116156805858472979153030060549366439983718857301015168775574062306834533300195056722850827737369974605992180062651385236199520069176844471779434823300645189634801625575647284014306122666881370901462182757856429707111235236675740194026010665716295425414454356364186898145128728603890506093431058405454102904595200997938107927187893876649148503689952301720158049179364967361459744232657432588158647055635370521513033606227173355431494341993764358000535482894335310663137674338338768729486804889833871574691037010825319772583983220627975375045928771925691550432088738952003080120553878059974756508183955454407693408254157106263765574012811554563776394156338304813646210724068858644407797353200571292144472989664145735572278160922873059225083504289143324817055533389815245122474246167962614592811047520706328701520421285580835927410668795256582673575205917834335811437687118996999143696351212233609852938933399452971535169535046011492349223351450705902859762881400543974071122892744461079875870507608594349465492713931714661902081665140758384630974970973371862688688053793023839297286686437837323503279090108470675351208185815532434888935286649388523440410416941523895278697279603248644592466074040637100425463241536871433264159940158596659896079328958014077339793792912648110038416220876247668345710636721599476941939815754174066017581732705201280780202786161665833440882794930530915097783400521372898274196088936444946360234684296831920030452621533624996825185575219609708558678357388712550248734161332724251580094082185302760373843858193659212212815864447771447562707134981325982987044896194471079820503626460274148100700852717969747828447435752117650691056107489508161903554776118926926752569720525724481783429623889055862174983375817149313513637184547639565424361927739819947261817249472278297385776587262938585399359612916904893588394354249417292758421809668104214624899447779665133200689931876297818545185807544269595159426131411083434755605424009277510565630729432231508496342480877269565751331298726236093432213093963365298648684842390440716368394717102460739017602370256256524986957826258727298554238097254054226001470533523212705874754075436707074913989171203753932072818467586603450411793790675715380762138262281741517285362476352517039146094586976208831622014109562858160339682818976296497900950974499974346944716313019387003772752693181667326658562905958011599028115775075906453639533046120143082241153961854282259114939636172814939531034058708310435049714563835106632298792540045458510084090612959831588238845798571957449609164677319158069575658633952453621439193770117885932413394796052441045214527514931885507847764694528339659123017043389516658222856289459341713248366110867123160905863252201045166775510512864091878872857753569857529842004000612640762724649484072701246644399865737884350334895881458541615103456567665186134634376307954829880914098547066504732191063133419259776128045659459463683355827511144418646152872073735379055659525344444782692766634755517437692187384807553049921205853788476766083745209558908409849985338731908013188703921242695147012762594583333025276355161153083579559612551403132184880494991326262661342401692355627479538732824215326498398569164004353204687163577976945879942306665249808309585639841446183591012388614817069363516465843750593634125469668978080470542385823730156847743737704677526381246912807411015516973944561752098359585422858885552939761840826035565276145358460591785145946952477235502809397086796863871963084239779981421212308461299117372604912413882389118233640910419026921180107454986143464657053988533139036665061570351206197400700006379539264596917068408740955684209197233419466707700987228398226561334744672581513116175334843016223545870394830269978425214673686775169988083139632173410617913035660785855978834498325086043467660811314191411482341402193276502157158217483348956089097681155627496794698717939695065349094552842527521711634365924077480570575684013507183975117877930464394549290284800325597461702373740118144715910557892203006824624284791626557776025751979837265219902898026831030213358295045254902449433765412596514127385402874985144303545647509199524279862940030005973960306938719463998908339306346918550444736117204344346124176537558453592081635503282004282930000633744176924566128929770593331425199628799467007753394331627242586343119771982788479089086662305722577948929763499465145397870576520999012392130362348283690536366944200937004098732817492187319039245750623877503886129608195698253733316227402436596974044266323614160523597639639385125544181259357685660312682200338674420471366772536070568200863265377572780602835973720231892525650937219739728761045183639060700540386555938293309077274202056910514024448883718450986731660275650052909266439705103757908542599483354993620020040321807369876092544345938262993668238294424231220891306973550366993956225431384241758568626681548100556173811235192731930987732748372440288306088899661768363521254481073775274924268034378091724824118039738494779085677751081713687594007767144341890517700584055703300100412260535929903006687728361160111135685418711625480956752719269392763826814492613216906775099219660476515404078653100062514783422060361288131475239599959711111009535908523507684021901715167269200185238094952857542242092149838344464712995259407942545953550822823055017557509417102331213432746940499960701274027226677259136882311054527425667151186196002933489200532927210517417505426391905668936428829365502265751014655329356186110298853030164263172419811946213408127877409562331566756895652206674794194363904684471993936327285983457795715468864565448918052794681044024942598231727071588689581955994796450228884310296695535266677469909767847659584661400908857569448798924931653705556691896429817957249729110014193453424459296934152479435120746290150117753134495715711770044161951342249428585342532658584317462003406923260454574775860009534986993662774295367400974137722729250170579466005426814337481412643491110045361500139595362122543701361243658811034435717854094145871041126745860971808408799522924800386449300644825101916548926026323741101993654275789736063770353383258315820524483833790590179554848905676594599534089942318445522767034480184093163707250422664842753996881891008889437712343104768224584447582100618791621485859321584317733803717236362693631634138637930888721389287549928336378690572861697154405796898609162264884535984296064021330022030313734680198539623524808204562732941916611522131770449788941571333578496350760141418039013818895608580394857861071202643242790191439074214895691975455592715485687029064913116191401187270049622812097985736493484406037646289256410720347947834418017902509464301710337910948809892581744833741018379612118138321163105108779411150194283325985159602420103117089488775727258012423885248090275201159947101131758989488101700724890543217937478043868566383530334838559848206109347996707205657177041799442092839611881401817417486788900597979114156122650143532291817462168088194194565760690771773606794656964474211608319775345187032401265425866402726387219433759131007150487570721645748381892123856280194468274994606162836006480471215878438874774030943708032934017544299775347167099508546565796076637341793424829078608102171717191137547207557220682597878533153586994538342463204074179963350432622023528021698085508365940715567354032154462663158642672373579919655781666253777034865851216169579276833705661455592158887550323269008432049883667582985211617508630057746322538711099186511518654954328094062904683406319422364637352339918875017423306012590074127672669974785572421282255050870881456647892960510238399731415120175539285432046915053894751102145035728954651676275408897549437346702456579146058285101707169617265519544591973362550519908617369318129558128168094632190946936866135213343423001053817369215924192609709593843111553930411140427121838137669153694254242896014047353407732810815767004079726315477651221708598560089655986352580564266375657469986814716982835978891504021920367769862831984490152862107175912727736175263769237438624907427976775355953252595027265251991497981596613550189954566323918431034711528758166491245288893439645334357043155393336644423009601664904412462801134082442971847024859168070503758374026890651039572818621092567414925059936501807437427152575430487573608203001545849548256163901030758897985079355014059212535276642820076665431166851116470783745520343745655910930334878408674571773917246974439152098927182842727538346910444179620341023001018189806761775780634249946310915230403411066311524275331549444894650937844915391959262491051007171911830339845629665705500240013656194108287350299060775658821542392132333239795660573499883911529076604781669211075459257663526980516746556337554820909501840169694299129024800319235828184977927471347804565611075033870751109882201086466696659511655541778979634358162671060506983525918313448178283468298051325396523099922852708142155546539169423138489386454019360375010853577421217212934378305212731528209235567704053675144401275829228592694290139353270246775146909866182986081458915719346873416782919457336084479465882280261411431337319316894550428325974157168911531069364985308768145969260558484844215229167447979481142816870655922095155229070302200685672430163980838610542498344977349412412107334593562405710493803951821232620186790069217886503668216471970015360860329535628652825732892199001031652238184727626903399090453614821744774193403694978706975413673525783727155109502661373705852792683721606149435443149825431327537629587728882146400721751521502372372692533669896466495505206309896283405208450118849490803923345588919325610875066872376282536776903872923443177992588635438337113035598483920958940726035959501995413828204214940838181495088709437257237459021609715053251288230170422526921159696815317301371175856274286339971649209503213329810961511799865908914730037685138985678290623482251842694229043199535131332498447581348922461696363006320967041230671392401930933223223673288352149057970577028116549609838370243636859750508790638617507664571843404131254670553229391736863250545538600019578768367947991634455146636980599484039642337477665134676294818399183529277892694645763302611164548754442852140954389407402283717695955299468955059716990546850584929830707263172514989042553297498588333383132880451744500467538679353524851414946602406867630399939140688498090833545660706777709364864820149402729175427611441941680126706106513210933861284709184727752909486410308318847741503848918833616455713153176371760860013955617569254083666979817410884303414666846472226759041068825932923504996004095713011350712702941485272558266868148967059284607275023872129763008502672073830946575839920504434547755022315097411208122116432036663522531219279503256730214536343127713415126446294881602892983932118346683031264774527754303316066039878317608523074112127675067539336508391323644448411879565305724250949933628637311655075531772736999686394414617060698786099516465712835880726774021085551289717286112632987976254204272381347360717617932107713330172032784274986602735613141377823641882625192536567841219614509929058986263826981957354508260505409787108683475120529779145148500483692372340770411951193831099714140218450362642955124944203841126995288101669677213990384721740407402422622998496757979006084713943377679488159138020264098380411039731040512307444939275523369734164734714861642141297584203118662077439162784423656566702135365209622006822615961008007124623786181214821047058819863710809989400017046443774133059683049155974352824138899830169448207312438661703474962414619728858724101012145029536200575398694153952862730156828367641415168725237228994678566718233678204310917426518938885956255652245150686444210122271595710933168423343955543532853217495887877470081676239053502047002346654386548577513282440108925787196412372793928700250240498075687996075666872287762352874382059813997970351702479899047322468040813239986802956436948874430539173005634083528395041149433603870153122204294046159786128907578240886449337069900966548050836605542851255348472245236444006201777636296674439505022443971444537748371484166587867774915873122316813664594396526371198044351906659468944687870267365971526316726159580093965824672831795970546687864387592657204416857390117552525077627038917137616278598753083141059945642038890053458514329137248409834462181177858473531973288202674551391626659463906287766759244690949147568042957720770194294801863455089653774613036221056185165032980532141927448155542667867714012966658110800333235720642961826711707078962743418583902116430449573408839950294294835238344792094495885357330494399010873651407441299083918616822144249658741202721388604188392454943522979701126101659782887067053710351795503269436041108582943069272524379635414831304308572575854402570078911155640400117723085501426503987536715292382783382324320881484802591258302504156760785322946940232380127063016470647557258307115126791605865236844784634079882622438689335009841818470018427424382125494169771128552226516827839059733172590556024085036646951196352285824916423901677631192829449822764969036825459481671771774802922902228418479154571255586044177794975745029502483481415606297912576660892453019853908498911221475039994596653553229840167834742118903443791527599694898941231633695952081605585831825731771286879496761439660750585743071414628091506041340947660743037060850464463138111773983559790216062816762385669513414587334956109140562745929919651954774043248951496690648399096051848821211678018338627160296638359253386528481839156388114810986932169778337972210564753324395670890606222133091500317909498226535425350230386420229996436149769024146855189146063818341465467383753215892200482520074193176657287828757696530957352174323555749319574873967592032883904584134833463451253034229794434977015346475830516732390307693836636302139072067837524862285681152633562788986555321391115821223224588854245133324275748574552934759864647060394961953983321592536500549028137022445066556186560474387459319673497677817001370978319486822198161299608848979787237489133389718909997804401906764133323460951036327828958894198112295642436073078687021136452003190691720252389931481376167369905721524539549666701327719721912299660430229084057162967760731767852050437744786588101080473309151424960750359813466700642145119189166851878745236173920330516831496766270104033116961626046812082577834696678582202959080236925620491657115271174163770230001232651711243630551912552706819400367488752210680204994464643929527777169747892005633643944170061640861718840730341339693124072976753805289361782565560350318918438391783698774238707329152845103848843047226359009154838030682999531499813581837179878639596045481777725548366618197717603361621778042245882846393454645770032437291579544545076501997014283618435356536106417977670513570088282644941208377366692126584191974821902422332453325983524708236302197142644080021051618572535210337090084159098358127279273176555673623907878510853037660684526881216012381664786249911436823747065745822119640856610687617740542922823849228250374134337421578519747811059745620586821843407885605672549659389081994815609879414434414726815444664822095502657031635787512113964213303035042938007765845464807492916988164290837570534204164248168165449313348118117996951630862080594596637492906585410779705173661032293359418117072327639401002556959356345255403632271872487360263158410611288807229009040536123571878333769557066806799910602206809170916611787880519636865566880260640075047605378089614589460547641947709403645169556789273727915183609791945120682557994151071902974398079567579163097965922622947293636326925928685155427411609464563489024984655429653926572809596661800966874738091466683713552543894615285260272249049940023437712412626665539055110640614208126258588806133851699293051521168065767717460836588302625780290686624521330100661358136837071503940576566934899492314113975654854707357994194467053310081031449322739631959355381048888807951929734907280227978615028252478127033194068344645231047997003414452152159947871977549418344215722289256815446662716849272923206190562110150861413104475624642679143286257221266841976249126032643032376719009718689606961299627863646497324755624143041322009076067939201433013141905221349701069545654340395452612311175460638750966316388128415420400177794853621929851807070292299548302835287413357543560215369533032642779591451519788391012804652576550303531054024697672928841485075968308611328943770664833710433899140756521856132961068438909491054961441807756024700697562807196800039499559108301291149090800244851371023982563057135973078899052920735239189720851384236688271099415530057728483444816101484413413259486585968947554066194292662957956869436607526158044611342391239057656391948728170252424160801681985862287066263934731426905256226295640164074891384372160158532827137767814414940369302053863551616078629742446861993167384551770272032446828743695191040725759198914823766136797005196724985124725773854564205465455458404259332026780902636180883183603729227862047938009365004994747506856938578108685511710731756907672361423854520456999983266432291593444754973513069610224564320774691095178569647537005962029648422372688154907289175961576231717993554426180901937643851633035659495388558295809679286588501323910093745376756243408879473808400561114115657998476483673034921562900894602165154573359291772575337338706114023783075556023984119632480717886626872486464221747695164987776791099768171302996974616427004984062819874248189428389373195397822823249202145424387379420527978841144699083671835144772515248982748500315638013828242073906701518819957634479790435936456248751764288271479768855265365761374731863936497803094343797669523773192990495816833770919118127174952632766175038870061607436600900364960691999616310049725347702018954715434989126781014177741105646347492187252323515745787244913077179641171898571515974102760026087745596535614495997576025651620550089518577699794852964597285835546621474013241362684847006022306861046552434665262077171341932841608321793365411731554357237441569815914875086885968399744059592787438641381290686030262541076806262604098818721454177556208926420569448478064033608095962447612584897042867379264249837716341513502960011568061715177691854386843702373898625830874861554211207236395255760498271568988724914741947722729395913006488033366167989706044631415795258391480835669432007750123309893940225888473067145040094034666079959600734342230794139774901760963507531984323315354526107313511054848170292818517115364699848373096406219977762208312231155702513090487674063412480941268751825588473151267009526970271802867302375979529454544492387966966921231505880255706474661482915007053390608614382752236623311179674977771983106999608434039669920582318417745916957959056018009414625282784506247230749221630941066922258498051319790639533332421052736310066036906824835317021192248786765026034037327769334219711346889867869192472536024196900504619570928714989844683011651406203209904994595430900500418651294736292256821750208740871505599395104533972706234797921596200422404374403952320142315836221451603668101370348071720224803402174195751137999256782247669982637623317749235837323242389187327855400534029407242951012494049618851717667857170425997405249871540531582181910071720276546521561285650636323678658959189611417883263822369393447535419750083121888257315669747000930280417488007164947499101313505553702757756592828777129498240429262872218966624840210652219198872533159398620649596339418917654064227363034713802731365687593440046120044812431985354480389471463586589831505142418888376579727019030699981965631821030917726395087235759691133129597505937270831010372493034386728537690506128308552936279953203757376548582322447220688409842504222156191991160293642476428183989391614335038719145279246281789419370354806681854569400643023329633542704456794631932878905784448543557153495892096092664082089008539295658542830014166987279517860494644677224671682727839083489634541869001438561236267282417438011354803209672073410081664487204982689471213797950078512119708680139167422573275889700482062260087777709134929502879684400580863670865233339343581835324532412665165898989352993241920448962941575041210014848115533395758377705120033008109370178904834404816547950661919955184344112634506476007286036296500649756575205732658392327831190405910504144202116329773658809694531537342621161986399737754978608587053410009066090462485603127082800645798330864237488926860413273541872255868291721695116264755522669777490879869501346231175897012377373488013811355844248951015674116055776465554623688319805322369279366183698314543131311430322162966906887314479947351584980943215914798625433503983013643658340050283492352988816847640930926824386282493314276361045381632053861472577376401222850604155258205428832370422218848297425629832219167502885925682134349726407448698887548764160215423955784014233841542462463899735231577819420451093250498259270052014791514507130170560874686702230688655998714425154218867263118089522887475302068809418085961576193445900094972176739853009426499986137344664605561650783328794650467248718797038060606107943393370591933866671393787268591967977605886039226850724260504550278735139853672476363356441924062332664629714437504150357036145746081808131131344262468538239510139240081994533317098292491653648407617742232453654870717645260894030591833116135369038989712826205787590022911285542473282703361204411431224694574197031954936233922923044701795434867360919550118382172197384012879467223180558685461173217805262902335226627093994700068899331461364566005066614765171449164831713545168347316409570837610258312655377313205769460728648280698009283445329534102543354065465099269173887617202081264757684521429972331732489852522184972723468706337883075333488233315642338439998386673842784475755627646657769502094264629754161009497200407713210932900700584395204903739639474256549068852219090448082913330282299235131187789033329030156576555818224933884559181386607132039728709322682678901093603432317965421975880007190063618628250924514612851342194133676622124687377733886850398298166472266488244352698596834914682794610671435592509797003442488507087763262139181858196900396057314061338807749340456359907754915535035526685023423484731200483555915250474354711062745881793426883378554315875980856746678950153887756722348240680011055440054420151985812159255777661850988014684297820133340674330006220525590825577327669546296700501589507346313250755554732888748430641636280519583499013015984634062268733777455137646340502103319920035117630885398769207375379917623207338519362919587026713779679261038944525126275478988705221384621885342658769586368763036212751317099521419595718248587259123528995830406770558198226946938911870154231727712438047745714144255875888792604463291561307596147223439454537627644582996795187506423080273458222938929123643948934405309987614727836890907971787950416774337371573580123387819296925437993595909876843988092184171358201667045520963956755291039533145107624224771090234346645611586877853397873581110628176073248353265819758029677642831184212068357946356777731087974798282504400858714176482633291969188629205129100668010117877303945397327314793424256410695061528064990622970684085121316516864392778857862091727022026411478539946411352252530196750358691808961920862845750514083539670845955626018215268608097941096236385576344858237113393217997758323256606478130035425586723349677293535608442626210131147918937390625440375768591095354161289791428311329688722597948240659563416330572252479575179986685226361951170485813864856494004353868666167160370379512703211525513640946320934004375429985804529833374383435466919204056696597747029414443187679959899384138091707400119331892320019065010783343723483073907274043767312421268943604165863478408408659158830555754519244174865913347443417387404129647796184969723767720962384482007103701156857544466240828156841248884871062559128623172840890250049592038418720523920946487022024599752997700641754543978288182218741165645448826354638436306426761407894819233085235688089396341780174857735869365503272419182258308929398949004038100356467329050697580792126880469480257042532721702399868724018957023511259415653611619139986299022346277617348076621237509224675333956673597539297540168535720010493540995758335151233082131600842721556942063911470648010462611431126239480071950757942189957832823553319638766313754057067999078102453727200215984642392432175781752049193105544478828083076142106537240596152889876172107735988884933919777767892324638654472755038432285717675701975779189494674879362205584538449677377147130891647232917332006090018600326461520770122992864900896634694747108309868839377162050080012839509199233302688077823842205108090388701763598973866904559280512203026111075025610696713259294805919995233863882919659854416126332343439893161881810703799721356960901340987596958258433950069070740949040085650467763038757208173662683188060449266784884311747892440556405972815089260391944449524955201520966919869944993621948551723785202348872534357372082585904647330874686161652887525973434663442188194566739833993633191368742664116794297090694327931876411034060088477184914507251602922971844602245998165973782881232435997242774205303266707315029168824789040172108737341114900153335179060020971272573272675971531471425272794634828779058319808515325514007731898103228878465806090474269718482640420370442703330216407372910094910407086814392292158413144981063434342919687880157320388755469443274059172380814009602425291205980269414938882669978713466796562474934799335009409256891741542777662180672799000098668721285371937749254792066423695879539781079573134158745687092165135379103071811287427752415801377360429667988860803670731914105127970504898593113688174958790355733864977835931935926248420588298592987793045037992391754242659648836142485829525771941223532239427717897530050551520461693955133143689240657768586185509194453272630511118658725515491908633322751990512536575001326934600736586550239597986225109570654534234160411879567492935177665951647132702455371666463654705419406809284469838170869964866769377452019960402010531249866914798526678763662104839583336707389964013152986707257759337508760031044125637576919083223374880887237645276503541695025737472084561042551004637541299432716476747627077113568412734939744478016597940753306845624506603152585753282463577833350502551445441263153007675521791178341237165181283879310630069648362459747319031805040648932371631375942759499207405650957273227336725292139315384251886363738980782675454868950923089069214816042030170649946326118377108732740744972135263909650229007748596295115750126926787992638480097168122819625613464770587141638563476859716031218786835799067840567563367529583430583500316311984292403217417005951773424253397314934301800767415354250341944824180964340430261029002147931536436234708829840432086859823993268095738855366790789100801462800153544587013674711099281885923039578800078058266908460385674867818694741707874026036797192120260199436482045155081242193734668929512441894663783974660184877484707145161471067657162155785398460430452283631684613553122817949661425058604107321636476350931186643199548464856760986687194314248690663652322132626659759764402746042407069790449821601984693650791279359932908876388859555823673235000046996133025470381205636048385428663488643746534011998201459739238655126317385513763834358721095767726497525183612918133216225966850058759140511593586511890339136869501203092953795324932066265684677725684882213348282513549435832555590048691395855199567260207887341249885210789783410646931811246741129135368523508004885630631875834877190787849347812868199909906643833122840798030047998882872992039056693712571162938925521080818910625544466115523974316560754574398936126749151317056955425219738059990863511878823381902512033825613267141658039270623270756014081615381534669508639384516853625640073087058686038059602566458576224921202471970851753661583713835395963758678408803073215474091087992553276869457512152905393300299240026386241228106655246731078637121996194458113742615348913793668976334020084841924834775268312340398145140055819845790022705717174837834429741503924219346352183363356182981706539427485881755186668687770040472158048062969007068900654875972164930992466377481491202213225342891245921656854524226095469170724816643074358865155081318070374463413369437777062254932370123820411025043374177871110392301746648801176760696356921628743768031473112166047913934498225491746297527463816590407976911818618244001359996245352807286771967671917696439203424304724990068643014821340040785763130016407487784381047543475786292108827178070119990011791891000266799191038922429596367597693235851900773345739900067373335471156862520377081772329983155788562210162472996715046747688798359599433170580902497605625380913590072312816126820419430662909401130968277080268380958373131457105780279466798397948807462254110647656504439256658194890998400138464681185693614552796935970826371864659954643690529241380949446848394918774480617411855964432030867181315920382141213630080032390097834288587127247251622649799737302485052285809638621110470305645281067655149570043362462895217753995914042243525400531310471358966754235954265344021203209565051400087065096790891367579530007477175810196131899167457768654342949390478443986873512741977319373655772255774392916180601310393636167568219608763796043439086568235889666556427297830976662940206675736949471309907434344686198827582095327975046066721202879068513805192258159132015777581061870979386485509917463090599267730812004765503875053845542318249751373754185030104922069752856338414405320166488169736555054253671270392183771521079929105749399619786793468461786663712137648972113579731707248743541587414365322580395008662359024393793305303800953435775890147066899536506485926324701547901443671070900402027157346166203887972281535817609290301916916735900587190892960223550493356547962101293367609571374047036765469764028824006778723004201728980081581191631121302074176495118820865791462607219591384380558233963812142737141651673792990558082423393093383697621946539510214378247014590357264543133167382175063268185065380725721923059570866852828851670984999065228723873350038459756675744323502796534681316085615855287024680521837885109391195351827279686081453614992952046162861788404646837941597133028952662883948681014930330126845367559927063098259902939349704002502563296137615036370543699323105157469329230743318764383369184434574881054649391251689376556329268059274100332906952299659656646863429460103571487023260523860624012873669536938717013321881765926188647779938308088231006375727067213969822282903984929239076897407015939184007923985893210893488701723131339416438398996857779656932948342497694546649751142406731884388217046491121240179533038271320185957134388136714238196816558143970682058991098287741967643001919480385494234603475057689844204301305607899281046690631612842532676442303693494711984912740251110757909270514556994068202094274031823699513142179651991041229977763150936112450353821067847412003640372008759810679334619431643072160665590279368531710593528713855685103760375292748095986940582972695195165354998494212973798655830429805632083006550677911396885818158636304855545641537903816148670073802963632528807887311684705501213180990267952800706189172063559763546019771904970282672848607719141547250324602661628429761485866275179793419301241030553248363873401701743815312667973879165301089299997318080569910871585728068049323432364654249724325044368979446130166875371345680427126115073833644432949012093214961050765767641564340111859453119173431790883752029213891568460128946776654975555766671456817631802437411199265819023278058852184897556474156138212792102957317861501121554634800836991680607030559732214776235084553772479044531184965525841594219674918051044828351859581774071463409091259064024895828459432774408503799420552537327312121519563531438010784648919570985964547109836634507713987333422174761201547592655270522958625100696715314852429081793584695852373487203044134607257269729854889134958623012524225896855640756078976011544084947059941859293189169342064285787845004026637309312409925630902927071952685936012950367390010023603867740214538918189671471625820669088310942425067454386096033774784262303898339235885353217281423686702996912382574124174126978851532748890971391118324027451209613604128631797687290026658398620979828069302528057449651927839202382659874985105642693920058542415100004702966435484027762403880089888273141794950920427258412353239079701082811397193635553190422547772904940669011172560259779114727963638219151203987386824537279696932322526995457270027107563921180908858285126644020877277415863724097530570080980491444100953824058047383948811997719318293813381362864734915772937837634365698245390252709336700465511698049393827527891096291011752624799653613051444524638998807638566780078292807703231790063318047090385865391492806294717792393817124511961807473719632941659429825152655870996781578283340114505969928578256940944040718922310573590478270801375541710068419974761622375656244557747807067334638365905454527356500818684308863775395580071679599528785550825541070869595240246783651576406186889081194347670419504726955446151323878726888956459164781928118998107397287858641912913977048708718721292053595619681727215263478787209942107685008745346784919474320650872458428300455174127706487833142819843095432469384059314408883858244720082181019330596140668671837932075720368854198544055147765699343405920048299592792567041181904993093093155443912077269487882050593893579724454125299552548994088776553842193485194008342282995893616563068949743859837623003570437138656079437153600997269676444840391985315449093368411654877337048906495145020015399465100806153185632688082686046915074197791654843359299500728691427038894823759754396524876644246318402935811093178488996810991834849720663572827374932481817132387967506695796653558202099935354980709115197878759612042109052034174510549341887679622822330237943582503482685845469082017288199253821864949031422580827801285321343064073858810282592136364250692812828685376116222080679762570038408342281138544078764674857185478482775684063459039783810502475846912951133434448854077285445104084974573854981207749761058373966519237747710028812849402632972214436243599132685975655084016114301482479477139179802185142008828085626439803385752129987183487419646986734505423099653325570147348245971403165209118556662113764694341540744311877819416936642538229521642814312092564574764003384737755932822991094368771892067399072870748116063039060835569190965009964146570476662001006576299651776304235195562760722006314389565400208706139293670560800016725657446889806639367120348312243522118968946257972500519400035232520875498648311363554375661316771026936886520668194126295151638403641406961664296046640046894107628461648590312565321584353424670444453129807533623560455613688994707740808246800405251367903275875733012210853456641298867480598707653219843509568661332172857363061073869634581753567011176148178056420400561236539756184966436728688889088808004936155048186772695965719483450044608908675359074686841322456918652434081116516160526513040671274718254073223096854908120576572600277540114128002168324855271764718065189398578382471752999447531054929256880810702215432317025073959152941088764242080161433411420274535280140084614745701193707579023857143734060327106605458551900915330575611256942535094844091739397610886072820906730691603886972089069756100717977705999341435549466382380162722262207997032588811358124717367334946137844868988963665305711145949160892617697471990399486842057711774042836623457906962327391841750130990635987666893079671972537604840588842337345518873124789278503774089759619897509104849794679339115899406503318951923052335074443344102330527396558795585469556396872638531624539159718806657608996024925501218187937935744591169221139617075135229884511309294886529567162145260822696386961551372487984281571905111606666680821590765129712388179413778263808819803689230527965369849534513645699490752243285066617819276298886892004701277639420901632899125357497179718765132540808136699050901597646021361442415959823021602828796391786187241481408649315592546516574391936500056013485475287509304946441244404665143069973738801581263345083194297525602618253572275364584737684007499562172538296978926052034532257944785084593654903597949066664558527040416339583406023605816275764385321978420724023512620022806769240252271724435383570743707306241988310925897073303846183307843990461609526702637347252722717579495065965142664046815086439732406847858370167540729544875228226569064101273267328900535850293869006599765820484197998037332742541202497427252148606309502308297478864747766060678339800280296884768159679298170528494598137615484988210871821333421367889420554091092212913666172541796079655168189248920050666692986321112582365023412989265433297102311889211913987741970273890556703957767490999293811180661643013696287818278282816081780548569559396171396099432442361141390814435263664707952812907068603287166151154767919233410824051590555243064536859382322126682473242960411076736604111994039537885710017747035596485633163923895247552667605502367614031104032836730884165149098231393574403808350884821962322666108910778085721033020273244958028717424246316251755530819678087329229597408663698334756811542891990006431387514412227751530904485847238072173133235551481956188329559028293041205443453005502332269254905977726223611750298959098137543808277967874624557363655087017911644517771328476149163483589919235835909055654326399098770324980932754713628977790901873976502162700225302389279481288896375284827493029944553894223658182991393904567491441494896759709864161157390832353398770746994452947534795496294719674799548557144573163513052127667524416631413844796534326118636054072589001032883548431065383763989301398387033136505508628840273091768013887211282169911738348613872967335613391996925847233263091301089406334348234587892530647879163511298910005345460685268286536110649405998606957487609847156974307107461787435167637831123038555099267218962442733340317821595735245679754537239287973193534906811243839988409052803536223474895070819459479528970972813498576630024758001302185290229610881646365164162657253717499989660539728328042041154641459513847854493188274021475755071446298014546970805481967902205245355460184226334134929118234605465733538860903654491138019411435578647979595137977107046375303641712169620077715125818828862246444117399206306603526013700005959560228033369838783335384772286006933600800735297781888177513469041744035002763011116096695939544886754895653899679724337153140058986802722785419125193909358793258798891749437480493145390335164791999131724769509844315283889454487559964576995899323941920528699157091801252513871763272909559729654134609700031846306690796341852175000247897001406038578509224649126920754255420670835880773139877357944639917011225804436062391378627205317255097587087536006707269209335773990832877272181196149188449210585369077001574407632185071344770483539442556051281658418152600035707137385304746750966720738733998182781412372552537893732336773157959358729877326904857296514883464577396967052159760748431806082786271158358461333948388063322104680185138040100829121716649880012828875850799271402899043105120664475225415201884675252287033091977480970765721625174258160369784181094088845527350845113443608481317842603580620217224934830080871352178895899967566942280143935618853338837676002436907521737786269375827566330708772937295650661210215543675118639512330337238492928782519799827546340761923510278996799136468352850640467342696407793459931394475973953642424870259285157723754673691070868882055539310345580134409134804808529481840434949768999272846610778088150492119389777710499362865640467540620766961196887826445648267930228186700366805752307611741649879740071348056523456218598171899369545180671863931134500933333870767145616753561249864210311956658781501238951941464095451930182925731021586943768149555469353094340318648465664013928174267819760376210500536208406065575456366849531828071072203527467583144098110024960377383806130525301670312150230647841991326132144309067227518310300185191375199957476604437517306649528318674748186918972857299242506245765006259251496376798177040079730547193521748751145783940490690769695562714098205735388431978805960627647255202020580741858008415657904816686232704042512680094251888061929677478313580855421706388523743553779131182071540172875110052655495119522465090746344513276258474020715640949510982417189964021045837733742253511945041731960922790303130806865746917406615178982257902103070191776673351019500482316339940045746888986976274748905035681902473727539214762726508317926430084590735776946434570860355015733485090943288683977097630424981622552913026412761003437102527848565051755038566847873931402176916225186691428732875541648195815930149227130196698648479654091527471867697871364649445240499895314920341472931785971515423757308143423636903971161123682435339927172186620523129041541746078907615648461400476408404693827850427214014327739960632596087349373859789607453624242905580460302467960621685124279607148357753458146909042873387800872431162381192161827101342584115315006178926161012880911074686461770950927058759853155512021766656803460339862262355998053398188781486581700312947299957864500506288596096670921322699610684939642618852387363346099786203436470245609227420203719571415366964609512822482078945791422213730767990733396865972667378476064483846736254649946623754666089439755949161248825124704173534889145714743677256851776549239790187067168812462999543165467532134457646587869252082188615255546234043015625529622615763974752404342025499394845805836855150696431310091051203308035497586711390257523800813697320549752169033797622903825187075522145907419325597211936663821943419926325431783329756450712631998986836712093846593728294166304984005412323478801904698941924296058848382318811403780275085696043937083569980938675370146736751469474006584832361800243817986885227940210823649302442652026958420351585472116103152938856958176948890198226568988945932722252068837663527752607410312721152015056211864060907240951077977448009333500602757936598071521427145150118157372304520595762696769191811685551568538489548552786426423011038574949723918469415087605070205599953918912599858303855959360161068215001216884933452224808964172716097364726636883087508878094629562504530550465012819455654741141284201040534896783194878566422287910768606300339901908043390487334279985927041398185622428795794549259914269674178263368125603407565910874824517094110514410599281799882304313798890108121095414308070131472350170656793414752501922502477450588904590012104053479758742430420472758479839053304211360828629431584626785384477362330081113630933198412807246736524277674692374725239413331428396673632894821166505058332211009736960865991631236483601242376238847928726374120482512088623879746735566645929789668556999166294617387069286574188528542656523726900244316696443641248382553627412955728042491430914507512264428819570449790802699179935306511945348804801828641230442611056005429539376628702961008754829186524892861355649202355652190621129400842045805826346171517001795916359274689251463552097555962087615036075280111455003853861774159008306086096648910320773701918148215523917784198847937207817971073004581976404567103247399612577411611662223169489874976814900369111475259616680111504708809974192702316222639170422525312401288420080543040858508595385281766258990018206383750790723559188377077539845608538059679018170635063122008646527345382686542603593615885967072941109027402240906808644299643831487324487080370334522768800447614356763817645897715922221563535295004041301089779730082514157177594821715858169474915601085033263651046026945885654842098359403791909368835961562971367747332831179169686302946976849768018276930818575776464045722154762737403839108729816410655230312122058512299364775106457890577468926361989199614685209520416160808724426968900293757922881814114253841538247029843576015637701086647002404932741064689133176713031504339987203277777820031904620685371735291475162074490855258679980731997010410353297493318910457517211265074713768349821287583110304023590171740238632280546870876161122443558225614888897969240958704398774482638475649793042866358618608053360151053580855664142666790825800156586226971425515158454088003352921284368340409362806847474502709017312211496258006225912800777030974772340717556362935311256471447079513243081653590982458271199578844016820167080685734632003529707037100998065861995971889868574636203669176862590885621044789291644388419425595953618963333584543075558081321373021640021660383619528475431487451277416990433726785454255766621743334240460537740092574583163340797362298644618962363312972268351184046545391473379005334260283709687250738465553332322106896406617194252652213882332680842259161828718904168090248152918210442170106264158527294074340961012221674221993648203733329042089151020714494978289918835755759382292642227419393996342212449326988119124960104112624656482354233334886185064210188142968320954575541435837991600097940592014741613129792237803136857004884525132833100709050186135764044805329451585376928176290382533380393046910801590811707500199063012376249354958034860462686547181530341893997703239733030424980641614463334921699464895089160349903687637496661471929132084400977772566333977596879930515287322050206760826427396626314402569233946662284841478407979844474682384435049878127556331765154619549774423890614907907635073825422943068262813644151484230582851170396790107911829033193283218750562342570154397184842664733700272902539652898595397356521805592612987042457504247807021097803949896291019260443852348455058862878340186237098820219231222219936225514019715540626649764280101963021049375655127303990483576098954367757922871843915883380189716259798488800128631957633411416642275411373267683426406870425330013809123089756963703125293892571526946635584547468585007474604005855139772402982887465409170952580173684046480718165299042748431779324557687630889116614583091607415565101034271869473749103363117678786814717058055428425928177356073340526536436482947382791914987504180515423734803469722647474648932302004132021748751261141519271947589501680403433850084621730795684060747079627223774149033378802664802103644741836192921683441459664911912654993096425506456147286788754190730324979131069298180152080810799368269729162090836450067439106425994145133328118075096374281248082019062064671918899035355753126051807733897814982977029962280985414570334517608234799232880280330956951282420997312750999592954920679169306429751570847179466602608849807513675003995839449394216542565486432316395203271731953054439289225989581021858981343028010931683623224586910015411586593776820280234818168259614588435929856944204779262140076738844797725872366855789304516426714475478304039689129252512259297070232011533194612030022533335650303224142344723955141436013531010167019296770250788535735359651438523007032497616055985056322142479046401328516330383223407812040769546321084909111880192823245912144136946717905680842504725580509361935381289022575919244165912287020632240294108261961042292084198369859830133046354082668039305586236408275445632166991769107616771363724621318828723494723668712475208072882128185066773861230120504754814456537377413160800743454216155851818489360818380957048990159753598100872563639679157334832052783013924008647783972877273411110344475023386595271699415018263741928651890354105585511867832036360516893632403191848717105760977835185020468724135677139830894068646441257464597896601308411694967197329211051201891353631858481805796417523339958343361029911350180558663569711278903724259380630966344231109221292065048280083203102468219981661061963165572147489697586846824221014088468044329634489674742849585304674345084345962133715279025161958066593184289691936954327673888908466740139440606246427433412703981003139222905962588860430181423312052535228459158562653756272951601135845959049803248616426554949858657701944556229430967864819408833623690225325128336313540762620311547540196959836587550326715961586968099891549165862340448813612630424160170296777435287367411640766933709440602101298492362911460358526307680153979424927797509730176867575002585992414659708982880154279893198144999709748543492659927194458526074210247859357203370478245687849681862929815021155267610121479656749130189597039807025912394670898508064244314081501696861746862894544442744179624230025065916502605557110135614438139533096113368584492783214177155071120987109138641994076073130753781012883325057510181152114480325882987121856988617191012593279374778084695342552530397543115575437138625872171135263406134155452201555745541259623594642703145623609318873188649132864088234805900821769005706294054053109070734480652620569400258441922385117813611674220692679335459198181153061902279694959561102461612982082963615863725663106849453127242552789844253163985526395932870598911392922934098777673619427170575523453854397849389790547149987327091148483638985055167046459905539214177546178714575432078096284885199431784797393006696691680720279409334730653234553061581026106574371184541992601423569925440421321310846832659472047244186188702787018914982320356241833069035964600279573827023167006781121689972006258944209673045433211772880646509700660962514634114348251624431369046061723336934944552641446309185541539940420752148424029736591795399227646926629807303225148654114734078453376652430758492494157639376418368245193939812627760096108817577860686105716559257704326269569545102993804759262935075119158925157321441793522615667845694458533951491155192580669432024124722003526966116780663521554327084515023557174035403396221561930568956971239773850858956012238056207321114759268496897066352759560134093869167402555280874379941604993846813582328435602051791774958945269290508154810041511354594023883941274064285074536534218766423834543549054585550380060690402562563371469122790395735336452997713186051490555761507122419829303451702471842858460888029012104083358682729404822308601072253535892084151763865738512648413903206408191179377898714014130011815876183414195008353433655221714972209119413014444269664167033235807961225486736607286512530377596888016639187973672169148947320331737576084678527967947679695398857820830592207549292884389634286854986023531218401589090401821412809925585354880118863639333010486918130723350074276221269059289469100331580580872009984775239929776968564157015652033083826362942370101376472703295745218610179242962232589003430695166976286451428979662567242839455253310951212584950992098711603151912876979304151279298419751258695283289310598788779689854381149872668633728033013801711211881524083062778833639432616023548012964287346160021404460590691778249309121924076014157956295442588302949711852730128679419327834748081506629662459419083207115670852671260068554990769504525229300818695154755957033762375385329843463840889935981125970553052016439478043390208339336478464784040701809387331207250897549207272161908467304469965513974665331334058048620682914310168698684870925713431742895819128165630576979905568757101403400674508488776280770567898529928620033677603892849903002987705925389386242280249228681246225867538177247187714016408667472866664760991290004478438119705160391586528876320129911592424696000695153889056044771002779768528463333602815953191547714153878539861987118257189085121642703223333276223342721866844044057815265344209956890032621265203206024863334209387446651984049483086289772808314268313460885271931428838184481647028769928010659354148385407370901701659699134555819172504651296051501788824894813151299250040429433882396592046624895755312148363387334337904626605765966765148259809746648221190033649016321380382965448701360385077216457577097861378136519956133491435576625106909145334410638013972009857163942334937182324314641511574742005114635327656622007870798075484430936069321438526209473700179952851005889732700342005899009755175092670435876334033439835483651654218204279172386980647221632253040677503170256509793565605348012001167409577169731313534109031785786836144166330295884918963953586421951529669033011706428470536064669560876235129877658907314595118407790934897164066134355877086684552521834085089067965418062902951764915659717179173313218900887732640221387408359948040466150613119351813892826613471849240112332169185211563249745884434534230618704257052548776351080341846266144569795997327168186455162667675943700081880010250904080327413957335469074220100498702365716370377100169085449947614189951337902565103815309028845826872446107264332564430330473590601927886811002228617697025692028204431524220230766458344840380205948654093432422362180290361360947947019184742899863842354058655807354409645869119427513125618903043194971556788117661557257222810399008253005056785505993557789395497269090303776916176592704927892138424189950909791738039360633787271760282783240883197705997112489248507307443723721897744174353777919788867609069311508325190502620629463286271377968545073890375963882849723369813333777936917178407389490519029401722629996517974573152146368338902967521512420427371829891247898538761738019898132470133896128067328973254108706215551165806237954166327057509807034302418149079326624134013964711295052471316283894016242512112761564301809830457940037956906865335899193984768167526652463737295437493629449455554620469591336514992243725692002837771049437194089910075940542406212153535417087901570546555816829745552294986759956746591058218296852368728608390030632149295067723209686614605219139719536191235325665153958189387236171568264116438461388568334730071971926695481702374989839619484764600755158565316080404393379571259047081686476009245933774971758695496214868321697278421824227944216143496932832667381369315705003747899571209457530035535565747898406275457361122551151312243928496222553586133243878026017619812002458695517446995421661595114144282603251293849309592519421405640467498606798666732436616343771966735081807527845174658287542579432466818145962616453988165074538825826997285423774694141425630934881415519862349303483763131050624606156084105315443853966457697218822397209746624920685731984988890981679616335127040136232059707281929758302833017180467557603088616007075660466110813402343934634132398647145911962846771257709410129461633944991307393896847366346965312305472568621596008147161518014282301760512369401963634954085795248859208028464377984344899619592303855945232041624967879642305922547291449956884421441517106283187403441451837656658301819457890583367731244509417574345255758768383071694632879113103072465379794962093490216437063227747379710543427127540903881237823867830488614545351861487642417484941650242424322156363341414691907629777359037326209898036314242272522349138601934966402805954839119397064461923676438141977897509544725762093391466474011141009339094204734729309848051493246840524641773425891710158312582728812741972088527890894442830002716887180910489119373120797739198223772121896376877193290113942878771844040347647936837193544307318384102319787235455939596902297679551491739741715445064406364203071430463595653226441245828039466817850206767258462671208101837880081109780662964973917955057675954697049082473625456971827151523099590527731907281695241484819584839196715712392080524082804032161947374272525857150262836286238681630319719115870561578606504889850969714432366927640567464844044629437427372215510147180469176318006605408788556843825368369958000776944785901394408669390705548386681755004966140537708794248126503349030452192743950289859360609383661591387877876719851439919619882936927522952795477334225242359399915185506735340169668914623557701686667368279646708268462316719128858418349677957747151532145561073562834518564314321657223619071429929156756607181851751989697835417277697862644315541884949931179269875396001504504908058100879084264261147211696232481919276632063122461915246165534115075541273469889543849591316040666331224208624218072709246043082763408865097419653261457773487900340116366582251201607811366900896356049769070017642738875939759367963275178453453746899796983529122460052291098142866262324285552257095854741520363156656664598145159184026064764151060044942215011085368557412046245010685308540526823014533532003566857230534064656341273347488158613916818128672486684523723949795701461704412458437253647163909686673320182931464795764102239230540581461795658922415464187108015455258636584182193157964584205154744714173923133760189591984150814113229638133960711872645777931481857803197663598738887723831272486535725819194446124165953676759223866553538016052695574863634126540701493275276111933941978889264944621210112889226805275959220705030515161667900832929319752951036076477977353695521107614280634640896797234296279428702562211789159818070650976292212452137314666667636985622048972350343324286711429944966429260387079202833342519429678232131042225798509393979512397226236106912854722756606146015913999987881035682046699618186836752412856994624024484943657470742159360252391950128208458854915759659288327698510658067478126136921789863972939447741831623229863097217316046532567773945088726690675940005102909092481368840775015712400743869882808006514564058448095679550663004567332357100282020317790052030930581178215185742362770228092016851086423927067716592734368482942128840178289351176401154180373806053355681239314398597683155962593057396064498426707106656794618427355393872234846505240243667745287978507610589743840734283881345894180373197009630652918173769695690684876450926425174997412071143611777352138415660210895706831780195608039916394116304811049989899027821591430706837393932416985200572109122756821281083251254934413570983419283185570021252318245507512314441927150465017172613773975634105113534140968490922872283896064974498743628981497612030004741864157734543208360484922429558819344528657465141877246242804864585893369533590864752552582482167155216858506298956893974135528506679450832717616245097922156392114573174209872656007416724661240286615147146778240693835735529096011820853544665709554046479210392322710200893970666221765064410337466967564833177570872750945347914578733999525870932488155628362229358831479976081058574797240366914845015593535861390597127860873519463639920327720065550733076514089632747149499766287784018769337651753024145023144850051107483981235288789763310365819250226005981978218604760352794484713764667858291510458756437664405455938030865745527861278889004769989495886167596811301633044437618881476272194409312152164290679233672133893288524712498953160167503560735981550154967198984342796965109335150861637719265004390791078862880638579929994375242610829971912238477300631696583661259180065889011678852471527203386100186937757074819865337149561710515732466189640133413151990346642634987096273329144992034774669421968868978276211782173335010062702864133562301547239388181601959519418917176287629286936200751214488287752166843840444033331401254732708641487574220825345321668106865264303276994644269849374569621872047251431540282295451954668729832336909410538121106869053523357985682805928123272145524083362788458792307756879083769498983186415465523194555351531174666849271490345690112253365334300256506073986620784509538904317919056120065465797763225650421502464610205207009445042028396977398790703980284893286458239452247201119774296460754135694413879536745457441395384808695198333582820939721329968838953995902169444485895457522776908142091594731801401996138103503919053746311163613333891056913328769294424067799560919794550291150246519437683852412132456754913601615766947384256679577192614748519978280732096378554740147725214001663697963408739178243659134948766084757680255953925970438450959187806964237754504983590466832130599555635726146700901923063004557627210345432269965142575519122785867980891665157660982294303056950109891450526718150151367155414907185258988852541810699624530609577670088469631589895840126285387615360167792160557353568425950220671214259242218740115184669237429596003152291288333272810488694095007051192036626844758681350797525093383265868157738460920428944391552798580083951757133837463975115602300897825989323212178802767858988180975185528681475044922996856566536945044531827115512493679627457232062513606259910356057988619709425194125325787098121763351563221121414272138585075279250608053077544429496424818937952654696698281485657618664298765665045887736474300646816122023197001401469278562797908869261815257975570422086073202638242378553258504394100714246715640596765340469830969180441009334093715491953125598996862058650797714820322987470977455579003475526858225942470259423927874620938947632971647242645930605217893763492436394225514553988318058798767287716834039732422538226206132801128372549825229895037748177684721159633709172495596364348544093940991644924530666149583620992359208255227304270061042470071618104117506414171540782354472464841588085622079992482482651970403473778955489034242850049219658027028337961340460337764720159960516306518521598912058749111719985046323493449828544667422595747658785581529617678940583124248097006332037708098532658234638316894959033581102005967349080583333993262101343648956238529826589692098087439015217369804752829396415257838881280883032492402282922873296867101397185494690618645809295002361782218900832013534617983680629343560172347199632206914816699083905529549240340439609871847606558917160487984681419374602523739786798135009809284266034939906164986262478646378538602356694771522466753312760197622640529532794782994126609792163814017854624102259835870489052405138611758595340652167383708712289469458087251825497098513130636422299604516759479907954104405474071959993563855013627863491079903021518283552584723271118571938864158099433861237112952014467347679944955469830454726140520383974771467291850822124824959871547929119026617853386741321612378688514846334685626543914192912074190419184536594312236058923583663026236175904451916787766183493518638784478420088879857189600700617475175351341003151296806825034366895666905403536067740334828824411065061056829828513140250730211445423187641816705273949786026008518889159010871876456388342269029985063174554026189950935615604261106541117124401319413786296651158748970502635281355502597987072049663903770019571641447206454369410109813319550735329855373748983947196755969174601942535935841983199973991946959159230083887745373418602681596242042835958148253303837057716465043954141512536862051521521516259977328080693251202555696271372885538511219617666243096621359312450036125480340740142943329776496582977749844681465257316749202859775720214863567737979943632007608089927416785129689672418705317795489696087455774931610691695512607044314107258686610880436124993414231946540558011517854715952193785569955298182138305774777773757161981194923010517947878432578486085436039959146259006183528362513076002902575040513639106181912596660280324242170135355560845197157208865345574903640595254384014341225896567988170025489596977992469403404835450808537373878953857463446806470149351557607682444607553875506953276498608977422367946624142235876679285696637982904185233685257923523403202419501285341209116383969589720512891691562833689135622101323782407678463368967458587537403216708760134744148345599880645878907138867341064157050597438778272401220867915292736180085765769820593345318581533025416005503579193022558218206810648166614619726020777725721361984400210605267645155404572969415829157378146870081443463082343694782051630807286116425382762197454648450011427916832944643530768049089121828454539768713010236890754148507781959230277387492876077827874128374151014696179141456248669031250475918760031941741108849426784694808495720851604209963029473384269985659385323958003344751834670822999271249476323902454771155842196272597071190686155257883779443387857220302098843964824032615850353454357187577421839378950762703190366650017292711675319211319107309468421614006347260239080213611941400450874010615074388523080283745386101676512998418445135094579385247990085345169680811919141771650992381166108443063330139814838379927590009375933073549232663810999302604101095522280396622660449528331219124203047727541163165590929984383216441373943737653202875035352566946559916170573357439518849933855926395618882397284173727785860997975244018810726661118530686407603221413371348718206194602737085107050979874648436282801588051308571490727256864983231279469293366502994921073719484183259350789121754985900710222704527475244395582543874610626879334975889274728610553946234000422561457364413329388950960155421938162737826123193293817261754099940010774166407924311729364149000472674581338985002491142529694703896495008122309118360237346862297995853770108249161964219804733360054331400173056070182743066059433845654183127418840586347507970178614062921231193176633228534388297570165197982759220225800324260809699878423087639154115954351279767245222215277639442637252618426059103477689222791616814610958389738236369896361804339323400510458669355964165969936143968597912874865785577664577496066730521410107949291946558094854078753309940746570651454522716084651261252846179873271086961196472826053202282037130091262695546794848662713425925365300150623032962098375105516815925833020461542841777331843471934349081988280859952550967894878570583811753956969111072447739587205882790597304910555316717041052878053949251934865547508617180971919672425759585456948397827773053959690163113550891238136024442635969771217717130373682539721563818197182579508594109887030234479612652571391790040543942469272570421837259753840845866700183734526627623655880128712426267336942372457420195709097173776132285589283765313998249699975461851656169431785937493434748479201393453286971433691868748738166071227794492591847207716643461921490899803176579421230793574848465189437647142867271277025705942848006426149301206646145882034398980158117692609380931364402997551956719588071220543801928135330613364885997168685301104512231368921121980789923139651408343311637093571749392426642582788124945989750488881419673153609501044974514520915528883826641618130301824961391156302201267424128627831005717720300140015937229821692998025897092312222129442032548703242419865952451729694485781337500473257050947871684430219940234300012169455318885972994671320586113343983028377777864058759348384492540824585734460748570904156530412783242946366067897187367054406771081000305034825213309126018849062337838764120794216146600375895529343714014260152430308713028555537904501262468062031691828809187146591863428240169202153974817563636869483875568077736712128680032640725994572844788548449701369193478297174885486717924746689138384491500109716001504580665190248701314542845442120897908296567234994693783157658584028795600060006870666259068412991415804036782803314892380174465639232747557431930717291209505325717603690644256305022838684989956618199932697153630333173485233155148595384182373849639924057737665250734925107466935657773716358269438232565819557111999982791622338882619136914933530038355696929680365368752546301363259132825695377356114793332818739806781960621789357463868891510112375001925356774743666842867075503995888402413533638837223748161877955318428075315633549187748634506668125475131889083149433651069817791923840257352286182865120743150609279821976430757286432722027011771727223044356410761702583600139350003988393956075580634629698835499367433174575103076411839082762919605450223781600865548155094139281834996541572474955527815375457336695992441811221410912662633276224929990939968700319618459372486494522374832413261941848348866566896560441516901894793146662389196314234773796925023343919098168641853199845759424858731039700786381153534693096149802635837247283197824701558980459438478160225544407644977599677021625590964891435629028151930046464799364015090102176958777046403387058513917176997349001602832040822058728310039939183581968282832635750794430260165641632385342201945035973180758658908338625482888161333154544749051278220751611161735614493942735387383573927978500803409034484508047332471303914364439811118578516333708834136578781497119665461428699618984161241992091964924692842878116812616863850954779833363331728064771014038827419037884435432424303481571057140447154656447450310968387325718554446136057404064948390386328351226771493776360500685251566535813167720480706136881125653585073096200048293529353650613010670939364823560952894152277555784402507683842260311215202102553503033667547102214969902906048987601365587734759095172997645786415567602045243218895489142313534121922144898527068999387248798011823183625720705887899960080192390998071601269683316786076116308641859862450887425688797112912268131362243795472185224524247860645297851538176971572637242828906899091253312364822711753956192045427656569855764018056835434178989629610180609064727325629914210809770887124319166094480987375487890043927008210690291605782404279179234013636859561517104024649805838125556811645774906386733457262342176121133253784697418806872526467173147016276357966636054898970851674811665352125434272549258537769057150774613803978444351559429820800199973195548713959590365726571716263404943207578211765356212729209783789596115482351286381312798236362708594268797143173712071095679341485337839214537930790186900798236931024306871330093786227312164925730813299104598079908098139938535372123903383999542903693836226966921640907332138495001406766994324903605091805533044448297287983758969527345893907316218279460861166986284858006417636682121977972644145552862959859670847213541656615495203319030413532257841054780948576091532877840815188191088358705255987496184018577263381262837792238900939775519148691997515508278249469711170432721402160139191415955004598716915214299548033217697749444427008503421836223470697531241403082870812998717545902713040390393782837893583717818622816682055159121811460395889116521396039755522717227785987860761855411949012612190242253168134288515078398313853379024884218692363019825782238541114252880000855190501293961977431660312543582885593651011120243548422403087265193312694014841500684603207509625896077560182155819594958988731952118190037757111312844462102665133532983144404038114498058505923595661287901999434467426280726144302737283429773276764062687389854785985029919430792850186072430571340770895063753561646972208605996384270914980445384206737972450757062915859930640382494124704727955069954500018891396668245576377017152601013761218154034258300910184510854995974225885077551024629889123297208905111346879912117094367256801279015863094690507225699961786397336220064039025694413700509475909342777633606394253193157902635610375976934970708564267219285716874875186764296396957810756312963807541974370495218221930541037300926005038588174826933350290191947418225298503469179038454203548472375099028353207878552311694263557164962378988483341969148077103383302677244102763722076410655121645610121395283684392303249015276759247246446802458512650475276935465142609687293010657234215608726178607823880137130307216284818486951244876678563340024050097505142611462125205265084810610930094435055088040782897223900885331244268977618802665786959084051058329079010203165394810154206235727290748567303865547506066634862487339253108706540063402394604013988017268334162756553795883212690355114686332407239156131987977915349501354458801785452797851809147936345904738903275531313999583513363320324800280158387908429532949369353925463919967069411234266752195577485830738861713175365747427549533212362060825268352618654266515166076315220182571056312156622710891099262088283714948135900823302899494639819540345438999123678943554788472731688697756240442664422838288090429616610021420612958515827307851129118966228016001608794435798400066207409554695464496678970863647626430898630234115996023474979563219297150492933127301150961773843204249984137990838180452906460610828467625040737322983965159578150092812948732263387176221786719787712890420148101080036680079843701176762986827382765309322416998958658576859264803764916666009468052757382136414448229266894539764305747949512465834110234189129518954565802722268546895305890969629156686623251888268525842812274862191040392515181016060402929305093644760152693938407693714555022754979961984198935538064275234766729585637918034890173283725636278166641299623235322434233806149247403307424201939777920880132908753053099388350893789503598087349862621646415140819530986700849139712447078509469613192847006006372742707600617111015909572371813903298583804060286599950681040051524108640481841378374939083711968259413406064600250556016005985693047273474610419058111963040571317873180952241618338223330706214959549589419533528593949650553079894801210368167178757660722650593590746642016670700277343848860037565594625187915824061416628197326239808952433190739735549859728977980064567291208864486262645614385948664844996506813545777154076175203973854850450622115484109101661982590331231226168945854624143355024473430581970002173368461617756661374475822400990959844432356287006260635430790721547981389764822421204487673775843982340464778272308500063114363270332448459191303642394349466635174811811391401415263554731793451160929158114223150247512671492346360377606669370804142535245549120304678165737625370408636143222079641063374642233664640381753418981501294882551656139972310565635029646545646647909050046422691009636498411002415435464541665556055945244729399575312452955322782621243649626865555287734541687744178242108946059079521058115547332211252047629923913044871311953370619564435300381699208142043001406580163034814474866148090636134008413510613089317641739655189774204170819039726385047050329692488426157926377239072387034103375969174871838965721727222787243615951361611902043969633122138370204940936960182430772221375879116208942853567691776504143207215396106246891520544592825661902770539782519621410495793535405645375810428599100352151193992991158575108716469593956970086617327693917195948669784714254232160208650141200289452166135890190269130113538159247478980892536635419478348824214226327640921200561616907583243124539185088153743211609844352611197497420920916500121010861721076135645189700806297748822869501174368771256518348714316615339078658350451395635313181978518910836887019808432797031532013291970765653892415086407416621131857958844395589610393390023431720830949643130744163317248102791050366236190193345601797448884980061784451621612808517554462154160766429568261130570490240247764011367604744007711377152897355268966388124964141728861101510796200767018822335332999654974446602259018630865117736545824772858432511262450386677690870437698121787045880343679679733742553853877435030811409634117368718795860705831365261474163601869414670164848855895727204420253008183555371344473275443882442927775311660290139271630560881372438569083633477726805604074686865433763855259258901990653380587599968822757744947637900335634161420009132642305239947959528138238646586915702657754301403097863057537654633694400950510631682760556525499746062741241081946207241281122223164760086911764754710771666486510735022336356518659251298075163585887923634045875198826289558939928048184962533897877514861373630558980309674387357473576539518958240555238203550320567234364934264786163272610982822655929265421847494163065313090657186628985983036973019255694069041918906411303188686092591741584714063588266649945151806065062862557265569599795091449285350425037557309644592018474945030052282664671920824313923638287597137640286430075050664559587995593855425364540074882304047708327701007278255502164458647719755212697302780987693421007128274224095590729499379769148877422230420051218270685153615635607179385825984220949780359332323420799877619030574516499226986541180000122222102834904125241481917362438650972877989008505818688655864332994584597023796706709204078884727219532396544789513149797229796086308645837680404766590851412808656531979771966440192327628228089756058339869623982896401636125145515686508231902682012711491932013407100876054571288329248511761992443180795479313320423243350435096051732839402342428951085942156899162901043177239141850401074111290997146648821042382245430258697647343562196901196454971983022179133058296345334656479863113356920235787206955177177124766241667086023928292309681518031914293071528361203086134780280867376059320607900951407447364918858199692786714495150104002269429425036851171412307864406556399135179702920188259533575139002964868997525085256489287381371969202246610575196763524985093146589892064062611379586696719381637553416057083270554624310761410674323103858772818135282340725322611775818308426625205943267493464544096338448954621871597938185302793106709228338369102060417954465263309520029954898811956554626766719594126772185997389311192484065571101097626355508357342919318675376008490589372626948335938898693411558701496850726600489746257349160591620252651427719848945466619205717600808160705951641092172620363809460467835425911952994676292962091914366443147679478096729828365379658299866815618519646790071379405933149156803244273453753985650697270966977861295156699050587788272416801431573899664397350837132438083487154602828431340834211777222045563923044159413981262225154491435377914910282795146376606932996673959742261366801737074782217307859008669705213205411614138505827451800892293713977588413954893734991838264575357509327911100410333241091277269087418808528584488354107814034769165795989532961021088498022502356182919868236541011355441340603851242070040319031851195658171914237726479176865959383775060843769366563627851783713102158821111168570395502720036100381004322852600384926011876071812232561453149866066005403672237362016960170396113045382655680907216592902470417346519448396561004227538894719346445547786459217506448180115481968749752863740598885700482816466519448598124261001113968928014505523969898894935496176147276600852810062355663345254688727995932386949669154762156288491887069229203651500671580149419603282975490863967199496144737598640490364796503060097281638796568622441499091316996627221674094527621152167507839891045296563963423777161239706531136902586434669400359433406997765751791500746837881787085275983250175131965288240778753415668811163651910118221969119268614597211167197875213599704155664199590799152751888522638908118556348642816209026685690423542004215872016938860334816017978070595056734400224971777018765630896516671415203894747906229954298230466297069264846824280978272375403221666046067011612136560859667124209508491017309576036336764108670712469481011803989309291506117317241344858154509462684226851822944252135390120449211954948674273018532103631171754957522222135917765746112359052199715567630631764124027425453369823666754256065505294808247559601169305562142967321306775648233264366484879841372218021253362129637032303514731964596924580016577673098289023808968756988589005792699840732308794114454564491052551385372495350693141672020890479825881787831847094398121875678390349173213914319290287612707946688425027260194912403832269316920573183476046547203319830555482508300524220793924230911133626810516054645469929963475796856805694005162730879448116650401703079386413074420249624636290536734941520420996779249981765787237231637438816220258367914158468341972938004532775101200499624390645197605827477097462041357291461551560853527882761071299944507653039185933528266868260776143089085237034849206821601989705543186807764232469541680074498023586235876132754869750061609341307171865956073677661616488357755706633662590027651497159611074494299800938977982723676993199522079253756234044476967086225335646810020619545511718536197112265257985998906748329398898129645168377835268300132101849395980897482359314800271374304581622561751959524142548337799621044107090887482631451598328139687419186595102266836932438302261553254799921576167430777975734629705596429290341938982249165967699388441000545007309142956238170070595355719207385004736590041344467531978330282271492670830002335903491016755681094801241475406062382455792345713408700488566137719862324184864120140668843973074530217923884782022504461545196941007910645991422775398747978844067953831407308908505916196123806881412330498358688194358067824250440849747328647922476103882534042968242877596781302076084016744545757539940525961260903645932500878108241482769147698105443693422010533853244112126409223303287028592352479800380413166301721147200005117825764760302656974163480022760798722417798633246215328971539797123226259734220062514805533253708209530237076662878535399408081073681072974167330115104955245301999218378871875517426172054936740439039159104429142814739743674656406684249268473322145002320979736207290774249251832030157501133097396348497440291052009504544835423811725100772727317406724600612263835673412517561389405899192999670598747028635135907091889091759850400649489339859793651919052663859700738378725653949888115847244377623086535217680779764855364560042853988034746161919451814593638499011668536280078875669551096657549059372505568573682016633056539491717197290819667399428449263268694373909961609142269630280386749009927643365191615920828688227144981560624939999682028195359955301349159553485450737284890773072944150217549041362882042252797759093688231698886651099677375240652788099464259403353431183684927646041612654782397646231583572308330131699006917452856514997411801854848305055596132278693127167228009737846375890424299602221680594499055926601834236398796946260259229469421087126014673087392337844204404944164784093641439063343389046459482546440155475166746872737405460855086909095420265561125788339659623743850617257822502330234756722796201537321198954217243418212444333791276238330586987759260792162786559264862954684761509984745442987812967328081181944945802679851769803772540077964773895483137400821141366417186373098525301387763443561200123498604277639361663521121503714012745033854052229288810458953753612041332412434026775595333548682813698234775322816370240706803510128199437720821278302546427107810831952263252825404726502492340579784284163742028624058650073855203632574608092664454525045334352946768693134722127254029930684559322192935746297506002893777312635229455052870727655281803170176711059725620637779332321244468778892128794157987734901292705157186940086039160854115391228900434062695159136052272614673864635535509916975164254353227375398125843964182353905908412008214795888398936592615646784159714142741776643152583622791409066916645146849799432246566839992128365006598469325087278007840196173898700706790708342350122697946289755517688297050920410396131608621664064989569018081546939029997201273614657216807059418605836750275170490787503706278292178996482420985517636299144997100374268836781054670727556239062365019806951342926572247380908877382918307696251439132491922091755660262401428701952137063158432806901431090937146733521959277500613252994236416764801166386701296761324698183843317799156404503205472442209890802694012240619026650078389772616061891395922656230317815852027532614130368834719313433504058230971715938221182358858298282710265139535540761805587726232393585224649333973105378082992982438577355835260352043002149357236232578402454120094227490711368307562091053843720481439871290347191978865957490243028881621838223791845878752704819284546342748132603746606222377879544480136756598236163831223261504671860529814034475781911828487921460137175890719905819614609142824281405980185327937856155645969617731192153529552247806726635814743665325055009145019981029912733008199558129370076070921875144753394275565986226273780433615303899581259600245478596431058545870839578963008177380663548324873877858829974834128746661882263803287984371607806282825802915122852737154224657351078987244733248709981026466839661122592090762529613803674517610229652513426888643978830137114744907584879156827359579184123890652388853135597949330610227949444235788694625391655839885851082724142322510226788461899489836961964900697895185339319932458652386619201379130451751207990748986023382278640986613020826438840727918221857523973228213584204886373391175484366936171153168190277942896691376623543581266972557506283692946648023553510330379625762547221656525310709417934003880298077583602069303128525543562942552028241251266453476756638302113294455635013292285807114471628462517911545263781031917694726684233628589921372700684457249879543012728253809748231754210635866074058460694305287896012601862028580916030573895181314953067728365103263999257290632302962183073416343747183308996821339174945868115736112421727626759803369120535913607977071973421706123314866542875244140152499436800243480818336914450199944459138222748120385570073159791768488557398245211253774941256350949518651147162705645444067008555045257993022459886651552740205172362677208839110434490643517552727390569942592998174969834125454797686309288407205582319927204841116402968310139332312352288607201871824434577412692192001622154561455590362861382209570340847181479864903860582936332488673131123603425568202109238516122093966777230880287258859829536589190578267662006228807549076830062130251562296953109969685484948982560414730492853759732374272308683490944113813211233499192940781668904941706808685566523798825943296708272027524219747946980628747685000443446263086573606386281753328383886461396483099752364248878584799004470731798374705927214793677082691442344953647163669573295629050675864021932213297930890052730978158200000487114803278111639947349376622420304321092227729231346730701588026745819276310423750732858683748035895487607926804017781182142318557728261709686976986913759095604899989706419956934180953158279396903945960679840943375144709578791019067773001277327357763524877221455318113574268755377284355040713787037902470486849194219170569967578129677303357031076477044344035076395916065863897211846871414492496741527234032256972998622672501708983194136679875118329416054371555799374531636615819569300433127292510424598580809861267103297557967445645784244019227011931749141016959435673998534604862425717808586552617767540530230116380997658695713699674854481544553809004261536026338959295343744290099125206761044495378103711098988704319755818680510117458046494356042892143647226260903784523542215613722972760816208572674194916123903792346068646608864672371877815216589185815322899890851380796544637948963711556314417129224501555714390828951553649304862810249980161447365230890520068411875727711007742076431164187282227267176047411221898735247496674516633542102069899543856464246444789597944084950282339542343474080415553381731353854992888328203642303092325938470367782915138943841677652719507041952087346817717351681087647667400442246378594707503494101238462064670329689230484273255464268321364889878387662786581437727840651395595292228110233899966891403170681190656934015889786032590604367531525465123419325681505450504042391642247064948661976306341243407623791603109533773674675552073725147055906738594687923666395108794011396356679572506638959677643676140790682128880468945383726403982649117457942395891215239156090299104610074881866377991457727647229481568467500528162234806789597755238845082700575389469519271245539488872935318578583041970565634216906675972105406558713910659256479244891779537027750385008405536608162134954149713414542946754682877914107408488682015592352522929165800961235118100857773913491763170066087594029274991039681376200106002197333088954957920145744142780033588642532430130944828251471692551989342800811725909602845623217461357173163240059517070424716506570007448169831685619684164655961291589971488186687225590595989894479115947714876310035546674325667970522195099116444578634676439232252549345968239098045228403060871704418757227871410237237052507453556278190533140573527214193519322277307817550710489803774269505975877595660578087541313573075972781851423732403208691125098036297043278015960481014576315236436545418280311938481325161059945394351513968771849367938921657453957808671329061819259600216834210034470112614906560084217470533599828712627701925008112109633435784512551814356711513506140724785096901220512052692310038653721412339963184217548849954849065083891508960352693727137405695297176216079390420116170506770096185569990647897206028243632468658632048304723202739343147622355846338860070257536359637947873595103295933409534588669582581339634824914245914858473194052563377320849443301746439364311155413588340341284812943902161787751057669838327822483163584895305887684349405314688000463937006405541828518288142872966443192215714977687216187935851632745777694754757370569603911346364849385950958523770313211448084905700568483526899118102148148287739901706414200393733829310210182641373961557750339653967017787267845775460146865864191049654343963734463528366243809113523578423495405698503320038917321483707888962208843934393631320958168764873554168433104496399637862646274325423742377082310942001205535791233166665751705508617102717439557796761621480562155411598183860958428447585758438397976930780118327302811327754632925914668865467223365856373467249969719278355885336913443152765014850561096605609544501352672369538266230521431737597234652519018727093193715518892520667191083562117345635551953880359883169741389697246785870165199475668126842132810042295956452893771508329574493664097374618719081507732161133179837082316007055600693017431331290929410245074235118975833816101494271075601317049196672668777577327697447846414260588226061435057268907690496231356166052842776708137842920938526589685468090594717913469512097553116624229297602072267410954925095481600834266678950599519306799066582049302049380287121372872544138734908348711013594081743586867370642914205784023637676377795299594199482729555482773718034959848535383648615647025888304001783099947922644682896032151366648565258753152797167959095788606438511564989635397691260838679517130423368066000345837798908035127569587745850960055398752472481588475851404749449648163644374280512098227762546533237822256281438203932108809257081009381236582694521261270983973824698477496856680313303161240807930567789715391397240106253235603907109139667713907766981356776932957405721364987258589123076452307358390156190193846978216337868666845297662427398083563952337182541086960474850196138365029160133998822937144353654719360500901010859077991458203756019246875062800591664474910123341759531310484829779901629167635719175815754738989475175530358231781421720408219040946103191645926060207161615204232520711880214706408568958662388165912921055118411579827756500103456143593967742116718912805434310663651600550167779990496728559302746250717825795088206572866312301881649719470948062177660865261733055151056666905973570553222774754323302922454847154301658222428181991389674740781424738485319989011564358770234723608744018973109711497257121680094729627984485966805963794207682776507900745233706479726175045206471162513043491262334434369300490112780304978606074683527883764246774950021998009288125177676464454517081261844142084806492387164862381616903219789687746636595277865871974099266525898078675327367932249598613508543602078648341732432705449350467804255155976758830970711200415852212765325842502933170659868733829569893906944465825891929643245772049992491893930247413618538987498617921451219918032236420710067008047941537862736180029625983787901597384712436372369617245713080028567484094617776206203679458420424278144050993481227990470964457106652000444447148257668669431545365683028323839971702378246377195478537093968678052197023947323564818251475117280294084271565781004275123448472178424256275760335030113563474723704501291607602895697074694960067651383630442083619178383081330345088766589676900123259624422287159075364094547796785500997373489803401150131751785774288654019160926238672699336716493260524148824429031966609094464689397224570583250175659069772326140589067577953914829114463037364635556973534080166310795139575280100312415315666240535885488010894861506104511181096052567336124817990411530876164313164479826044992995400478759663239562575812185107616750784757765041575340319994155864371892971670628197883677531702562137142306613750042896915098196695042349666093131336781313459599880387676109253865674064204005385795528624822153623084391075079893229092870262149300600621914940320473093226284242539895772169104217999201099828596006761376047986382547361902122182423166552967919497037027077406723309101643743308641636865430690981425013769947885153044373366159692729199406733500574558383170560083440448030298321874282993992666390926304222023811826351635383536875940272468778778658583597308938678061429863988229745519017692976169812761568543541801136091577614426156826480195708410632246517551169705038296483354914783469789399433530076940747979752022263949138346147879740162469673451992150705826248145519730588516978808703348411247091687713703328979236580573562729244233867257500078594776126795811768057010025461456052783295112874670512118877879217582935041772038953040628764640965326712795471366905251514176917036921531548405847585750166425868710662542485890983226360103710424358991960346486755045175639834401443303873593655952302810233527861299236663009931520435207989484281023704038095690263334383392082848087404684872489582662837552445103057472265194768203404040990558449791467274572217486348964272313436224966791627602946039112630823258674305293300830353964288848839042014139764349429673431860162775484254115029491333692590981188506808922509348951280560912904091181255310561683518060576702791386548967924823717662041311320947985521893317317086115065201496964613373986393326962525642184702315530723487002675879965390865401888588914744568487139560264688865682518794761244902686249889802209218893586506868388242727075565823655278175618056207563556797139363671636074249144283835149635881378038936490572838194720959317700269997110977207896935797799707841887196405527775598953076805997445860649362037079627958152263661937352347688196916309845937922729600590639558514920834479175689534018086403039762870595908662381634349551618831760583400638271438451685749635853086228874068133306369065799473019102866432886176745434756542181834381861837779942544384199791789504516685275061492762509737398566392171474699408459340404997774066051874935899315914779366988364391789426477137797509840253859515158609432229257504672582569266789693780048673849985965516468221453861097132888678203975072740702032467985729163166587783513900836035396257177864664478690166474318681073592468566274414741800877057325464461960927123471078810973023930869603942901078356087991308465244071575966583989170618784326957053656867744081592432852619418554170819249002534030315733648768574322508989456919673233288525443506271170131969056271181966516811479381488292583558350782016081918339678645033674405156879399533551031548734137299980055062236347943877140301272082953757394568243195199692742010962140097449368859925047688559289292639561899355200672073875831406173709829983449599567028072173723249549627833217954412510239647277897653805256826992742858906607079922207582819376684217084609570461800473441939278582271445137707626396321035941636806967831403938106588938017444868465524016129618461713546945180462136821890266426023004685947063599140433365059761390820496417035265095970962537223629716936633492706796239741241353116774484629750243628084782360234209890666380112680726850508699210224104688673939996898055263525160699829158746419407047466480837193760772958907200602666670763752795400852457818175273938679554959417572928760522538915418048145803149666036681597857926448208955006297433108538862997633930371397560255491654643262809711673008630840446788720401017396444017924799824745601132297468045166711557087641335202829080274317881418966332673095246466735609386400336631703120539685554499123624294883525369379156474453932209903037083948017674977524725822573011424971048019147662435747793769335619550594408234115350251862969717923071171911876243446308702481678712982543038330323796705297526668350156320501162803045117864581546650739963251615992329692689268590085869939049490908913639433216090715556617643353492961300045544605127581868642556910101740765883443641840158381068357518813783975185939667371524842224487664850169905988382565546797920240648904408765437826953329297263557785505210717505072942946086091209740857095055538518216831840874515292801515896979059574352694933005016880931638477272597382574166066293927911312282385899550983722374524297039609538392762469080077300725436116121562350430604109718897710403969568470279095713463579369184904722396434972332525626414757877796431500116143730280663784224251981045437201213644290157513713393953658634200433953098770573129004755648906231215643446836101695844645284061877971828685495810731334111740623429959874418134846766011068721750571482896277875342446327568210134969444404036944201599229242157995195380641429701413363415250645551256352041474167866588267384837859264170428607382599846703021948054335804129145631989526198250652396405745945458924486548370751489068978420311320353656494865622002351810547462569970593985967052951911900752504295106104533267080956330231516024444182962831805050555279009689154100024002965429816926421402434114584208712582181227240315140958301099590216551385637160887714964026738276780261543971844985123360610449603907376198920911828160858739605445110365786859703307521593176523164835172376326098528453115234230850030087470774196257977720483922201849001648478721133128629482828839556025661580106242391571942319236360173734802164692110255507777154882223920849799676569297256096352022384675074697518333876035395048722633124122319154062568130714857950708841607528200466323661191430694531107618166007048939931969036093411981260879043368460228504844613629417936655453664753764502372575328694886435652125382774762117815814068716105965695340862071084354811135521616174317895116645896943548029440315969932388617091098100586445829910554495249812144894104637620770078971979743889296956741436505898161743307362665355330462120664665140358889660904688633821620355499321558473105440213346013397375650097795980065996682715448399051532139413248383325299026900377080314057680339614478695395975365174372619790617876008808508196200714313394525919797896900029529890136302633459828162881832930047338073153605846286379630417807231186134747320363657399390063209609313113609345000303699299477841166476595934813401699804506062223101435963907183014860638595686389974017532106236930585425748121372294971907953990858100067144233707854109454141482823470637126624662873979127726595187909912031474882957132045491395000350553303815227383187947946459304578689469339129161405160078368083290234307018968901927157838352260050393479780726398431116607145580810534736351771141070890632282357546750213469579079410977236689564534068883249940120503190924987442685469080632706191747892052801120891545729496060640239696082104226959631282457674659951474970994158797668163872486955839771878335794108310467972575673365113230824537180506008030137695643256397386081619661226599843322313943513637741630284994969228225994368526936443916592726901071546391902560762035323241861953371021856160727879723992819574067734117414318519742512190463938886342598982230337155923188753356952097462450082722968567536534556211577674036702292652744242136285133461727588736656956951602179592815228129272642849572605084496491157572461481922553853084473065385355380634338939720191251845485242074205599841673869028279574049175548366377477796524012244912271716223485374313136172241840824625437610540298902722496925996869920712337577574573290535060406660898365691916001873109917488151034029022735180150195041921602765095771310575328840166557433182192654690309192070033740307779796312123794136498384173511673680179219267212674088491430953269005184280646188883201067800008810308965331307390104271631526704588222975578437605621551164944027874503184444192125445702627711231672463273195090021991407377833059112107769134006895625828955246730685271257788814026984311806290130016677365467681582744963907136286773632044300420172453907922593668007748507996718499005626889694358737652945060295113389347545888086392956377520062129162636428502137297831835417567484952827049732148479295814147718619617082204862202462577448863320344583111526599188705711967813616691684479986480247412069106785834420290412220685445699723088973726201570243351004866284293022602093212879265377918695243422617325606140791382648900580478779690756160761570745728008551033768938953024806528731105269461650343252506349101105919425404734828498848708082548218902350831854037449324214686150328881845835183563655408481306441847948211048428633513658028547564379033492540411494862340083670493954722849406515795170229561393917124853161530565262355444211852074312234463547352436399645220775228281506964584255429303744338509733814388651133770815873790925712817184663636539444294485491722382656397028582767016619973940314731765633724863142792770280725412639762938074865664811311685107149205477058926940866780747172074595327785132473396781894981457331277398062121195464756588927652917116532890037819613090829827017517703304231516675734571466758184911127023004157624864050866261610559049289998811453917520596705997318711498610857338664585892983393225422548666232759545208629232676746659401332968636366461572660734382683530865261173877399836894561151078565235299797089972851631208668690392720992132721687342749962495468266652916870334634179308209296924674030083561309210514869647098261385644752500997447980310585324187366297175883059845157384005289620827919622739540762486334882754269098117990283512034156363242907565222785654227270862154239257798829097053844012693420159346198837910293085142373333439348301731003409332140297147577338549184877743100184121774018318761058896077994614070480852098183647206705153355614969382390370648957540147382384657635769201494770920837691736310019123208915911890551052214141342588967071514604236018414904762599897819655686513347771064991616141669432262178061430048213808786910517792551275830933136241552990368609951134467780954233228216467704976650969999124068906358610920092586654785123850400225823673638288632019853263280165515737939000422480352119225160819733696403546476318975779165897327301482650390721336639891885944330152541564666798319926738606271051077295585249089520692046183429391417049107903267656876211899587109095813737807044089281444758668172570404287445832421192300627555913069224893637087904046351093834276124859342278641576758732140703787540116037990562304063855877134573186718231138824618952629545509720437032747246878670866846624624575784155679756840865164999774352182519236301577258084138134980864265341466606478145923225264445693088011661416042310058757254968408081238682320242891104515765111877137122701797744292667063452972740391085348743312674346770827033128767066953499580656862964990101659370152715315436542895905451963545514387835062138097638652212773110201744519694303634198339004681084099358866000491407196030145786924031986968754926705791204980956609505314889469891041090801286359256649434590239607302314197676138957106874422709883166682298025052255977101017983015292717674428566747559438558115402819350193082317536222357743479360507611660151231494144519590823770609373816707550130225439384020814797006577232941305258081684144762202105406254162978102894459892882684416198251668100229496817402589633641194132567079610505993064306506237138586924525594754963125073105292347290041657442852279343268151528892907942182388740425596667413338419009150291327373016923000743447566259794970501151039141267327795741273851032662714625090333831978156966888043675502322454647131165988708540461706855009378829514105619535916214240710365368950666045307164102635968484241832587151181253746467528556046823338532429579418808062727518771424467095549038297324762338447241665828002835050677799924287050329493044911143538114914631141325801381012090125376205520552564958573882137686766955353313400841630706407282415459787714471102750680012654874202552436809947254487922693274953827532119703843813344995760237319797626332653301247335625336103388326887627359217277511432735432045879709858045839270349012531333361992601064701015982545328043267286504240668443665650672884004131671870767997859099199060846420266923107743893031616651633096171301189084356229241756010056869734006878016833056217860914559114140541792981487084218238146533153733207510284332918197552132665890610613025329769754853343053992357705996650628520600349067269843790519249124057062612770992389696785262149282031911832828911162790442159873597417438129640558462506440906714326384817366235351329297014261849238701094811377703163208890869564835192004462079778882358619339846302890890566055755494325723644660085831710483323911260920630542833261946416205349331671752842480645134627840025282979807416325308483801900342723381638234215957856503631855564316314155534179998689187276596254539753755487611261256103413645936702386758891389731255332661475371990828727269372299973555763066479808631680527996812362060119871310908403819616675540189599803412358833504490968702728807145881669031858239378979537396814651726186675033836641702010447765170742337290664916271874849132170897441786888447604604660385398130817192981879294646110133675103805754541125677963983287661808593368614882919005823492409183491100827434401768241105701573323439959513754058982112935636497871783209650495158149054672612065165253830557501000341701057152848079182116719823500421684604138520334736806983643990827603636544160031275063197249264771281285379667592572833828385301334347412240600006794593486554005671699890302104188144956860102956709770548187920055093948945645084970724028028013842939892756500658589791258572847176751525347065391433874641013869462727407284673424902721913032173325432935167862747941301252829938387643135412096782264969936388727623100497720350038932191548760060739433426442813727550522989218752980086733301616620102065650708219595065114732147847224821839118545609177347633439920253076270391866905112604601677143326687313050477208770359386405038717788771280547697958423151352363924542664947844792218783234112152292973122827188411538568927263362634082175522757066846258269325069626609042117630005226094248268359899353416448165031281747207260377600897372296801845428283964611547567294407365543897691189158798532798540825268612656787486776095147717680118743652222770090980202958047641112790337310554981595209695397359166658055596744652996695810312303292315273866790653943595711784217152077547063120711057030829472251742729491962302648999559500700871929352883873854746762539548469596229643421298238958968026599351736678423349423303334313837782018599293587955007267272989541825403242280568850530969475618303956971034143459142073792977972265226754678838273353451077524871447412544814402515152545203786760182346350067151314004067154113538432272577107858026081685037743545414794265089903682733457771559788385913014733720551173101685168554724227977482173627068384084980015668475568959016775510520902863273232697396488285133584492645171188656129269825810011447278246299055698373439119966122768051498684258694093282388607467793729875867513653938127477556387661893070465661009989017302875184531419281566816294733256027566663870679260480585870172271456287339699206932689213528155125028299976748342277033111332682171055455313351248152102566994639052535511054250352034508749509234839341024845902265120984362897262368245339386344938603778888135524728070462993509117790309431306058289338085860109831327252425176654301183817085747209931756879941540164570964613842993878383246127931411398528474830188419216793718506806377905263560528757927257260805111289468048460714026251031562191976991090161210735084774390535636027367278819950084718096559712770002296377034859959065760362575560984047166993080772953345277667912351943555149557815537268239466955070223812289378729532161808596885540004495291789318175334866991675410271710772265632066299562744684160014060035402460393351056017853959571606947500723139333258593340152885203699246208887380687928082383621151362838824267205016897191123618723486749896931401957850365146013083642489905864920230721156985559341189889809300982898760939583331368465689200180208165187176725924927637814940591779649133514870190783563547838055389232461586345628439216793285599571048560391230748809472540655011322713220978484300307882047087969858950753261389070530510769065317243623115927286239438204740986739725979204726235437079419554430897554439475400672365053234776047014643656582131640204550808074921353303930312753275560167926228389863922389501172501300442767525845572917366626005572716004812613410724890853750658399139843276350128117345528834292563604213898083867005775948997927703802665896057613173743683033682833764014746090302543850513362584389425839863646859909871756696378553492286402453942963333898655011503690064699884829887530879225043313803728901867890606595071601962261985149998271436110356256205158847982782883016895647541451753678089712427114648740105433133145770399951534147589210496748484272616899961495565856606163343554794403337130008853508867151529728851308892465547884433907982404582924403304212110552370270404569144429931942443305030057808130351014074747923896265911344573004578521406132082687854983055033546047375742067942208842768320453678957429618065358134412308027206290390809155970411985419838453145437755745772894632388011426274117369754299571211048133836714938404351357978328664353997215001257066853711790236348431105180433752356385547056423129337279623843560811647585657119797016121016300990230624827698460655156169619542880047947963278597306216230596770789025628930935814571222893087120072348216687257447306788478261014658153147178134005864300714902389734150856895425715086502241475495166701329898498556415989583130772218358423949816349531555681768722771044978156114629684566389098894524459485935003197247455949465369954062611122730049953778123865135742137644495954436953027553148477542136151368563328985941533529069009866034277552431179769910954921784153558853997355030680790630468518726723379852046310023112179549066007150363475611825490014132717553176594378921865652130537992581744761343996786669362215734407190498881578079542266494067716405471983323558719470797621723802603071448950403748278191202222465600195871011318634210851689069535774691461828879443945232904989721399430341206305033866969608057906875776035609100533376492287710101794276455625422651458139874707582459011940325110408721411668201494892979354788729454690812886239209536754550698461510034004360571274708415248511345735448213429968141526562606742644024752666355002376240361272119626829135600656288752826577367573398669862875103188371379126901515923742793782229210477717352955997938204938901624290447461117017400836472399524191014776716862613096994438031192626435399594525867030709493529484804886742632951900767892029872675814139001666200617157109608778837522813106321417163102537849978874247563766752473842933147345403772187901273588780726691287090168769181975783649057652716305681211571222848245659263458639699087285682893722686650655860038804916222138798177643143424100227924404197620065143988837145118476095134341441323139655529430972844051537309852908022522145488766933205547597261461434721388094406367451096045500401072628965072105234073925796936549817337074323999068045551267027478443898416627514854720436266368882556324244793510623702822962261075249989819004996291121326064598578016194801541153108922080497509514101435113372030502678679614286409495837649880068516814962016465617963944504025085834993900898622750573924007206232781154303267796399428847841822222051237016141558391745189661126158741936116215988861437676112667565854246424195085961718101458478891316443718154880476824870856875087489878388513371048354233012509352092888818134146970099206374606735855651208950551688221608921454689763878316266824295811303304685485563106998001109002072776258060611148774542856400877879795465038316515017401139934270514806843480331705346657625114185644326300970468579743121545550974046491660972793179816661159052222683398527854775026249945042378632261878721659263541661478316444975803384692512150477374586766479726654413597439065801506598948341985786044116499164201367115185913257410012319324428834627894546267181830241354281056779684949919498763882667888969407735639776368131481549334194895001612547873421881029591469363396536858280206308250739971728647335322732353892989304525216022251831402543612703615082593977966200872781041648340889391195354687812187091030916474930166563504547717235747051514351185570809067745860315511950560746185065785487567929786049920296388575108891377232010924566967677048319010288476546701282330653172763528732823024583506912205087201497338082305995910745044254263346905096470853176133019756085473880607572332801660135204542805210161018144187114922681306197229217612011413154206420801845486495875984171551255121760365960883852673934937125503835743775183034204152527994020812813741776075587367150112132920315212540441072181061672010914533492377374795341179042351412478426426355937921862075247537958052905987246024197475959422839606277894915283924526510991199850571903603089099387886468900560052511446859438995186011821096391483689354178564304914502219911799189346961610403023299753579709359559519075285922109620095668886308690810025147158615983309778521421369775306619595177779635359652323846416729470860305269455024664389135163345218926830845319578737115119731044566596638108297854150914863218005792806245829170314091922902044396111967976284125122058205626077450440024770259807522462840421965787115852357195185224414129016220226507436389956890564792677607979699943673212222879206699179383773975308026487146951964533998047952466564459429637351166354160633699532856848275799316201143783193775693539538104780457839300720464927150118840758781615926512559996678861474882523250174856202085407488541181340090173611493639495914461763024939914815936039120386031900773544411350268722410607492175379686129016825356497548403316600691737707059194983696701081046787871162086276088018809895194928288706263608682989125966732135940937429267199201272104683477372413820831940280230992386741609886715905588962840517661875387019921619604341246391939780446515476052062737797873072264193058204649097049964456998511826771275298779904803125610941280128674238217046799466024691066907079594780444018050864513895253279741850919947169614240895667350622894989607002434909720374772890400457906705058250683519938379710698893059753090741489926992567074869781550344539513797704439433996145238685770197692196008314079375530120983047760283316643736880611036043251099773618646149323891633869447435496397876390466641585665231247548297629188168308947474576371032559938137484992996718211820025633052778474272556434400778112748474288794122269764598318817723145065738397819628033703604402939584421615537874604725053035354404953678840508027184815734950549696568013575298116186366760559484099824372697261930416517891845260122717596111207319701399235808349414415376317255577016705254080665960559668229796860442958421457269812239884451780006549446754059840547970784400066893056999655600471276389007526837492839182757016045758696386187056795642893574966978283161099828371165292391336383199479882973171546614838691960149630186096641472870691043059681022489902789229578270950191313116440159303350495453658441303762992834852546362034234733243149905118944142831249000773272839606357490147609742096568747291029836572153146194095978674566497838194227703939863389283142427406195524525547462416500467002535357596618198019044308569425313524381579577936710981969899364469249752866527596891184391708147152582627051824482130808659787676142562364282340647722145038910362312198895592763528883419053630697819362773005251381426154481196586032335428744519994115563185701524116836408301826815862515060438961395042416439959249894798963976890747357631816723965736134436324710585402238599080677789080970434815269642029271044824128820722388240064394315220345094696370553838825686978504211936530235008249448614520820502939650673118206431970341233569580859610553494048709833275397220332866732706397952495377352391131858511293174675323252187134219609504820097936818242862912221354627456119100862323619327322028564423100903390164817765919448718113681985441306756024824402013941176572304081356936745039823154557192898242370332681947706750962692023451171768802552391260403702559731946284692764973968054470542046371384126148263977453679874781134993162454803073198942752379722304085565939631479699737850239247124877403323274760014172650446209447435051353051549291845598918774303011106723854906495642803722416396365551448183665883724949301342416538660762230942713788281076258660037673437002585157679421138504554850388466391269840544556594527159694353546378192585499161772300794012928281608436162567913156318186942692273744365720016186749806515609001545625916919050818092561572795951745470675307451503773231218709916121715865433774636595297739043390239659194152309415091846346632786975341525146731073560229213384214848553341443697769934355946883682192471993942218633122590996157965071120129799258511008527736224135563056123511873090283581763017877681626918531877071192252382253401389087700034152302122717280281255668098878856618140256404279429120169184963595855576054931586137317064421492725153145386122542838206341843924942457314505829503387008271579093546547210065528824956990739637192463206325370857537069806960681154911211173499609600758795893717759933620295221760149798760760148458585572022983450897766859243972921773853936354031029998074123045051562128550821207600752482822698879922419750081729987787087378352904837143206001663600561896560315226594444641756601662378374394623408437756163463840186631812720180827964077700771431553715063546426067309828937248803758832551693969295915673611458268900906945020749262507370803547513167605637116896304245326434033701674117553596900575419656652699655161840038797720125210424379804853956229691820326659212940191215846610032881031253274500551925520752122849778066100672909502624637010712713412445549437131426210757441752599224420101899654784803854234997664836351953264097194807973268117023547071572638126258926204189536156589277622992179858918563294590950961666503237550930740275909938151722214646067054587786215319190654596629255176763871446657883808457581462450473023201610695736404309025074867511615521262732597790490487087120652112593998706436100810727100778492921950030970430178691625784906875355440705038382976797654751445936566656607446877704520642361873189438965880315901547825094408976222646673912067177945052014963497289076999895867429905851521461998683554551211017230828249785291472339431373511600871509670203269949020402370761708891974132012048533107065809997468167242561935488152176547396229579712556936066977183748788197623104080296361850955753210217486613976045841554530398727537439064652215454207282859907541831031223673248746902031433708598271203761344114101745851213462984004355992644734547952337326612502141716906340920844369979043406134496831612246820775513349068016191698056213935114401999741793757821587264335760829351090672446515089706023845320839845829799618237972985430462914655463278310369188430748129793427699565355220612304541154952216391061671303846148401354313257641372163253925201003117031174835655602037835859796471232780688556286292512397933985584386894903845138741780893189920882751563770415700367448673941259406495153844935397631903839302445323603168120152005323948001351261550795219608662034994460510697748866401504436379730704652674221580607335784299898675706609285036116456420217143266728416481344136543435852064551873586211516097551658722755297811143575413611738417671540320143047341612330959545334308813752576732962564851741536245316810583197514270263934325646860809725370671297385548625163688869932564871406652565489666771549920367154410321398198016549976940398365503710464260995254776337485516837758885113084088437394217466060174919420977937626792815427383774453923780010937593848954973144788090408007033692445568631034792651943909790676009113031275234036696127735710156722539194049706327592848726382122237867450502995460071122904060267546534926001991447473075234473980256851796771385982363451628805907776866111067010637000861849418212493785484995665448497009772749125737198534716394446399851407420973286398309123919907403922071754022308522440186138581334396131769759913793584090868561318346519398206866249930867648606481132311901721235469319888364606805198026443341524683766265455632298071293168623136892974677494248668516882270902139283486645560892221710184840726577269030250605685489683432374501230053547444830828647618585784468672903996982857436608692377169245378155176017435851339998679962687002140098486778393958842579176250178245414995135848822824931508972694675566821537912948965347521732236549013736216549690004202394245666216253299533791560063063652083882928970695098120218492440782509802658857630252103292282523488200155519165873600264184528902698816503011021998686442502292636524915205610671727440493676984688252705373485697747495603620634514385762073974731324779027923887621064287171243925526139328219520763361669898963695763756479563858010616875357731391018501367585217196571093507963451212497658270671476615537609628689890050604751622035504040663496301414615551450400107751568791088468130287533086509817120491098603258750074987831669183148217716472616122505545107610533581905772339013568799687605502974122562422548764904347378261635081752511320886285749002625950943777749866334253982680031367907408011624819438301556856987084320587160555829344416481740556715106216232066150975224274953834152398068834296463649432054294020471495244303182228234501315078306004287212315861290712452280537878559494508799664801298700935348478146125051524529530825417934698217535632659476218239073324132080377298398259191699805523883934045463967420735316655931417574899732046802279375251626141599448644409864087763951902425760614463119265043756592545863792206737781220846269939942626109409236855572153562063936833460653534333406347446929047784740098869902049909088350358916283398763499991033087079273558599815732587959085726683650415732129557346901713524429668275717639482371394579964876555404009143694583845148142655063820615001973168918799185287877262273577748098943167760426231262946111885941524692148002727056319177453907183560442265550318338982475522032433761402398392280799822233843150200212357632030762212985427644599882774006722351672442681429088356930645758839192858875702654493655795563509162132659875645454774155249906293684968513324946307174693821904992108770697122096352055917096525963691078025935251792792823383488547786723947194808421417088853605469551714397837201733085669289094007963397322471337708773824694261942451337599560281319719398800954389635316696368772638481810840362438125515282048786733732925400745757698423796356182121229494023368221771839787426699022543306321812493571140388265296377591649700748223005499042277404007466851055910889371472555628263930781265477366708475827408577448028809966743973559602625395565998356584601775723581935852011986101655763067613765624602437104848454120513455140731533607338287755812493103472669054926484996275775498766031849881527650323331589687392526567565131409093462077828374571133728721318705738777620633732465652755823705525484461790878534651317610622565238305816578925649437703636666824349980207678891329954883933223690585624673115960046732501499136497719778452014957723945742464869754133601021938625255236697403744880617222734973472184483684429079491611026234816497903096955568436350686183015710531504716656354746038073951548341579211917808735273791569523124002989786177034347327592161904520420696656625578763531050395303328059600542436202482167261007120296283691573436835894418582457338112690218557887080457179328319391352543983503429851608807848980573071549338989944561351203531691471876539074675607499567522604944367945753148847725563609519904045480950755119458923603221699499292703988468523578400148720596422986524549608569699493062525971590576066961924212467359386157441563706601876274611309242120641056210390155122762796389880477355155639408182104676967402203288828009934565392451137123203668394756431603442081596831602248668858660833876017542132480616313289082041894226613504028673972218006825506195059624066263502704819951259774255482536625080955766710503510990420011815793622134750761741649613169308280070041257989123080809148569643793222082756245532020191940441291483827497421490047167067632821964116890843131723422148457673578819449943169474224887772473919484806433664823931785882001607801710248733161660819928118883122146788187312347098075139699437640421776674674651012239452145590865447018763418494909828241520614859210297138232753469990034559281600934168901578393825955958075349940277602518859006604036608091530033218010959349468360369329321077686014243041260528802309626713259427847014203190148855348215331359619802196396748701359629284128056508764767552703049194289495799225833465376507075962732597345169775788480071049964899276005542982257793066817165525774506274332279404819295721240297726713707460539206636524364615153683539950779267091740381601952391305077810261396978665515975824395274468177310754952575617413529233198524034103148263820319170162221661894957543774851281266946270093605382508053926865848562745913097108447252788948047118878628688184327485396556620330221426525431585104250956858940362005117972879125602707152325448504364647306861832063891929967664983601697041162898613193986116307769434194171671930575348485625318831272263860778969030550688171691119793356807278114842165840798438863589529650031190881590382966628607861860078822656773051906937400919005369749659308584870917049665571607781739721207986372258859751053493336116092750454110897875797095048770930087400495248892371609856594399477732169854798430311289836544803494795980492570695487918318097276754514561951866311037913950645548048184899370871237170073214014556172431479692480718561617641436091226263226686266451036821732995061195976105120822992078048813538301572685846581237801170723028878453107049557054022719871312317604497016430372518780531569760179952731101063060094029526091697346565410859159946345221890547387714638358377872579431847725322767720806710293833087530295055673268658918214090567041122677994068524955821514554706786634113082576622470970771769627492593949573217004552926870554063878467486778257251844337491602382890160991871397299643264852788960166724846335720447953055595681175546469093868362688527380015283496392163327105648680197486516846036207434196865626691740989727512493752700066016629603517564776792201545702268477172787538954626911502474121810562701416562625711618141450173433590343697440750040490169135817669292288176597374679810848704069971112793112268421728890122008631908279786737512110862242316129752515132321663137586474637886541113358932232248401521492441295675325350776571915211208913340118453194658094753435697362023583466604322460083407965702224750633280554469116279700660398911289860866978403765996058712545665427503563727211725301946102096778733344586063190039222507940776942660532111095661003382015881999251530420967986827122751973409344706915449220173215069522117759078200821767644719596270576964161966639033006838652077186729826547072062022847699967931827739749538551239429134359807388238189923503148526217553661358524065809142130945834974344049341433654124387043691826647655823556881221014524922241801586018964233934331009893205362809280052686442413197217302528608647527475741905528449094839697790882700626776428596733752936480391302531311115587814625945196280275804654646237277342305612756517099136980075314341368826821917875592658422437369507265831858600707069487966698023910608075597797447074266384714887541141780078587240464773693046556054071080607989088955405281606184252067080904175789888234686560171429641435375355438419602887424013076299648730323901511888363770667662055384812238167589040527521382524884074294199322977159339593188270669548473434080996598120669163389756364181099138866012141592261971199627533161537387635602933140427998878694666121841201927900390923829613889009563912223258245816352758863985300525802910654591697126265719664114385100181010629830936335153701195521735580940743510019529083751529144513456976666430922711226275355503438855195732176178993815456525274159717412963740271786581663709745938124407124780740270480722139071555793024442462421970460682319280175819350315435940914877444012562315637697574020028976440167734798310054337195759260925641289211984577977893461745777648311182695284093224046532574977718546978915472039612306801535164460409006996464775919358288132306576839862233262740353876084994203613562004290282264428640889891817518835707551263314233296819198707802185514368704653448974534714425323663600263745089524716372498506632232435566525021870358399772240669284082565331096257659859474341101749134839805281148479082693003631419949425756474715310524398664162296305527866379141618632359133107547746315282525867494578272884885300300019780815718520323432910772955440766467303480452947490753202506068000943345349527313998193881109158720699022819231721399054369521453257429990030572870250433203459704575061253598785432660344243569148423288382952510335745619843773163755569236109027048878880827602131396014008078730851041660389456139982453870340311269835399044957561077789655664184845859071012298835205431595454425651297424411976764628310481054980275612390463014416545644524794931603115292161720600544037662468430241120315499544681597520571536616701211675363534851993643235530584379020749729724203771439263558702831497057850419811368241806446537685363920182392843146766683678829072586387959160839866517654216851102355886268362548919039135735039099276015885316616171769723044151170741226005442889475363467952588653951233255614192018306157738490359390950010932841873529798948685546045805838161756134541323487088163616157734688334574165766054346309155468376377099630283483925173980510531358410581988240012662862242665347327423227833432347697947939737097908296547592727080057561692599035473829060903688488315644861060761274016327509463398377016675189962378314419403992140336140876976783552466711448029337460536415455666623500099771554454195934582630278429046109149205672855240853368409440267497992889245272283824881527080079651235530627519745529145600565318258571222167151529933177171783788039439146905217663002605922516846923302269995616959670290703208293530943349079763635383365578952531703430274483018982065057483329969682934597830933167741465364344948592154908662464616873671557856950634608220899769412666841741628811818163557256270501696607231604173740021184156955918292912147770968139172449401364433248148004556025179801270515378706668299228501940653409356590560678166313114157515376287481494908133684508122490833904148416444210855795426692733558740704758064520810211938502708025919931753890354012101417412723586629103307404813464950514536686363547309962587998863923003244144875540031047265851076675451520594078565289143849539011745411144849423036788704505168328884276123361080395600202809506584766425323487896891629640384511468234933641338175236068881518271984674473153714767980406974815406642912300853481817142771694371040047354759068143166183454064255732582189033380929964491302573640475655987454272121508861265279987164084977072818572762011472845066444906225034049794430601954872263795770762746431835123507901476232542564708793375131140449938228699784802524043510799171578698247444724500058922484474671920745331975919103163382415159741435841305603136986292907563254244721828624089834220115157756611553479608177612348424751551681394000301554954753718294778277763749369052468020558268131916453663985870434245850602832919088550781176311922786058488168842091833732606603756125907731862942627645409311392959194444045806108330532309110508664925976692228353972261144317881693157875388509163767804204855925431084543245496960721840473566233606428241439201602697040872814480313958867336981080479690760824855922567001449084964053976168538960258881358087649743628872438501918542609231025529123395388446269104560179033977962065116438397292400133053150938890864895980743925670429942308158832815445800697931033920733701491989990004536302577974519265417139136002476989021467911480476020249055205251843689381285145959694350828340175095671511695903559575587626250129073359140911724214647854529277818070420507132931605379771850042621744129981819571092797713016764427882855375257528548749890412064699609540093169096953397317356939357587784986420778294555542560360012808442321610055395613979769897299354913433754439225441260966257435858214580794180336874233586102193558926671611474320624630146934629653437228456322569159437924737909482935038213228027372128835179106761812122858350111934544695231171831759954054882599127481687023927884542881250934436685959359055347828754335058192605771318725770354899967482218267181906154114174670841886175683375763314821894085713433161215103720918961972167796714165435706317327411062125366850851973689500170704929546271657685272632032391302703576791998486096434888889884804730689010446710801474097249104091177491119176596774563551332144922789889029807470376289953474157376506639208735180624488596619670106197903742501621966411860723935255658105477681017474867570903824680087685965788580889048121104210858414867523592877279614923263748639374893255344451597407610825549156566437611207826709137443336364451488406310850755465094320770467748668251867388976006306447973072458228429211762283144021443114817736975274719056177055696174632148598262679602918784687708867236625887647677356302104869761441495224226012338395005981128350711147843772784006262730926494755032806375097824547151197315577015311539669782097444029450168309256399421053395475460305755833390131188015716028691856037385395689949293613667793264962946386871309733031941551804251070152031823521737704831280136466191984981678827181944189268309291057616176663238145845608873864303516284097476953734393546840275885411212049163103759315294273304145159707482016627448858358468979495462790835418114486927502626115436577883910504236198634077231224832167021325675951622585621509077580346767546195614243030210133415555297691239036350295850467836149685895457164098074318240028236228914451052032371191717349345970426181045267958512025676535537920704304280581202178717182022553922492457104505678861712235021306953449198653722559871674318465926589566075438825967834716889079731500439057203934135641594454262226753482899632733263454146331254710168593087287320660804293674510121508717982337002609440196682147508069625151770250855426136125577193090348779488114716058919389501956482438561646105235538852885882177844187240875179588671734104687194270592210741185324372530721572232894773003884662960892929079014413600616985805134923059080198831458543597050246702239922918342981206642248242450618477140996872019220330405840395719787084525915742423607019053748819724776661846565794047255814768677675157320304261444863074553037621835091634512841660056513485921814347430946587899027678709434615933857342386998017109758936759759494235405638323004581048833193857530185716650640040937144284692106883442269389781171764058958987100879100116181740933854240645523322329102597884978139970611634342687464986531666855474684580742003080675271223866963393583349062976587165829971172064825722246566566400476641719411423181601201556263157797041517532006105099254244400158473954261577332099321260273819315097174486160604332791323024812726963405271250215089888727747274958919974173182690349926436184303891816619384595877466082154662140865086606970221463145503016258190901303979182172238460119515662800093479402160629382258006312536409497278436815573649528208525715398902771443002715185603918513076877339064471402027323803892139510240518999555147054240041178352978579317623259876684892314635046924839774564351711488021570050281152959696802577689206527204345778771793653431732087688813442282704586589944578369154399957480682465684956514320130109723886496155954006957673071276592772858204384261933647576613552525329804197901213264428969875085368348502091916822474198899822708332292699964851860763818688184049418688570200569986243711784744321128863272876693608973323701097970421571827198769357582039943649846205564832204290704741954085686686460080676514686150283158284677771524182304686484766501520439706056278524617767122929751814695126872436329077422521304585434174715836684401116094490811883068952315410542738279374876358362289396704000855131422124801203010101780953457165207741049135969513885906772242660238241842736857435996371755928029298051531481744848613325387271684640566794539053181647570574451363326813432784334483815854589908733567348489872604493147719862303400125080445108751868012096426876406946316197958759183759435197338784469829003505751070019116991303502665940874408128913769467229121474280256004719821325551147066848360663413327407729023375308743278813112505139768197022808352850935610865529458172217399461401652069525044653780189810745970146755362144831088543855945808358337764290998194099486218524002541989748258360644094928092789922433473363241202427457188457341080121007165440357781522835882616107750698598312369221919903427153259253397439017107258266425437082338276687323771375879278462056172893490579662699747364106974455082893314155813185412232372508596404458157327338368680252562754201631884605381573262305214197624199984931597522661869015984743830453161260757527099933755794661578795464030788244062562601134067375600955012613814047057937731101680280893722042911888630470400460491153917231991815688066167833032420889706019432251136816862325841187408900123857580376945138868029471627514998474260704778921660675079010816353673430999070688567447082317896743635834648722439875799968178731771932436386583975595653264200220308956355610168670440251911296520207785340599655409398978144143558416693279482618749828814139543925311653994410775625184900465894283507860895994951961295603853459840486483375835705436798548275131018027488491305710130779806808850256696169489009574850466039461104342980309389159845177145412959315335927139762794207628822630664910633599923694293201140402301458129680099124616329127841276901559533596484476945992718482176763830055886663632312424398592939572956020423624279609591168293024439414850062123026476913344139373131515831916277565859170696435170719984317577843844226090034469100875318639213428730442036766712768272312825021082141141990145782148982796487346035497179142060943897864626540685222532030008097406450617993332469324316447602493482776523275593101641389507657710877983538586719924940145300610804410566057427394874603972695681856999535711796748526100952495397143297319831885791347976250146556037357401792505921881823802392450352773995506625625599261412591857828327739556714227125790782092055984991806189512104905203056907932667221721394141269321105952302197112697070119249592732724950484329402393150044753150482390669223855259328228828385396492415408421927232456724361548884056043567690100520383381156097431386556138568913392907071475563486938789653210027401911176267682803891947094896110542750153808706232980449859406187588496695574833606259505231987123635004398750836471223578510345095104820362465487460556702282308318763801781198069865602796228046307762386229130411068434084634746338468808957820528107479922757530651399901022230714678943730664329305972242093610294196247687805379863398083570774307365462925828546905109422160049495291378350411430692189950482123946927371903789398251281006885879174382217469305291421357163073962826059919258833087195440842154229967275636737213564605957573695982521476041185278518857755374925254080313144217698118755033204785881289565973595960088497272007031953892072005630331866612456246527112925192662598102382449532854956075975255414695448280157500656383091975930927261926286636419291892031064498258082887609328605100817676151485668478448893447560512063687058520692943092867033824164620078290599693069873911191422230395384428049431623316540405833542961426993332314791889795414562396897844189279828929716879313067732331325292833410872185149535482465432860212316888387833212439637591499830735704393547780135833938209590545644157062793094834880088653428523537013408913345187407341259177389220778360532354275514298365512483010395292070940650819146576483397271688982221228757815436450771553821328127725665855698646216047720691007758447347648406745940065217496451261387074940610466611795347527395220667369110121822577799339189153992623403116864248836963376096433916228516728630229011030657613479531396037781882087146528859751875812437192670888093415740716218274523748349255110422785601101572278298379640253261694079931825397366976677618876652969577881883926469669304487977046837952247652092250490017429537512139843887274902039487195438437814482702849050014888689286472713955373699356382027389332550353622611198763731800456363205001178926920996286718030855681556920239437425896286875838319660582974999004052415532668595290298200878709170801031648744852971561711331321581012332164855897962465637549326073294781343925429598242547771584307997166488285315211434890473459649355469444558259952350271548344624465764234030707105595700721392099865902942590477804651063543485136236834829042893181912120089075591916019679920973474776812442865367631070111518763434086756003912446474614947311700951267740499482722560826437427890241568292187450830431419644702017156414027133927991178478788765759271038174809381221047881844344114737493712530983931362609284503045267889420947377619538890080709380643616134880803665254907912375521012503630608924821214147147394189349089622896557513165216757856451570249448641713290695729737717611484777383567320368354669543648736253617356225517216852062615809810322977042550950340113684799815259022066504703973440798044321750550430292123843022239227966479013138404361761583419358656433496274527609698111064594674365032521164770143116078101136374329652284931551038449305911410652803172881318366208855206628835972801510702166565288385203349930027588828992655776793631126792456962616827628587399819518894168258289235113953508159709698688568908142594444006081830815504287182860412794617452083999327962171831713823397911191736165661841059482533305643341446691257448464709311704834706574854146537382780098767020924993170490228787732743121161078940016283348628308879836282632947333958548352411703196008763794979370225282013003788706543398322105749425949734873454063715629052450428998673495967747645433986246626781308547920647995050586448645101981015414036255868703741194638789800430288237973003674593580190555889294172998867897124685322334670703147639478560887333245736882113572124839354950182902292361258559430462107181534835356450489323381506503608464016505166516991852872436670998558711786721315652742088481451805619054380793029261945890907511899784677559856432249370325904265616712076748490529671852820682154095344702088849243862099279525706017841440096340929984908840072672463250090692082298812903864009481755972075613248918053971095912871453076107091965029939445549149762528784178833874723337477775390607980198057500845694616530060042158333158560495066269277623924336495873810551780516427598089255084985411235145518207677733662390730563556035318972428873555316371118311599549514412849631356730684979779540370693578778591221595429454016229022009095251395988058580979231163987396539838830400941265889825957126847190328461382370800876815540965240174570940820222964203106376971323237562556178981843180461998262184661990447691837879858743531050702469912716823017373464528951200228213888284629333442662655357008322807163675851420666149710552128888421974387502743657465268808096333188288451780155845622632050520290050432522575788497301999196770218930849647340639692447744510269304018376019270800982969191341552894771045643267672386665319632147675188612527904214188224161859441246421002724510321262310525266337977315131955150205365580453578508965166821232065930603292073957041022323439524731612824078572363071158844053956537165943956321756517292659135423030681535094321506615192615223654900605948715567185486936069129145398162802763027447469507801483280136295444595956793723846405281476163806191485069744855729776323140483163968664198916060341965346423971139436471601712464376000850067790054200182775216363153620859169937537008770079755034491923179914151748918603543219743003495155742537234949229666577607595649255999861807979363443348302074732873312557213694229561286328364983714941357142484857910643157004790211980066340111532545526300012267723253793343205047566160419321877449904300041244609802263454226985767689086525214916087465087705293326778407179373010521969554529575828108058461936135736365166872685505244837774829235052456916764023970484164192882320812816803856474857524895238432613795604514057306836218736841273511184755626719615949708986586702512085194451986124945149322539673040357676372547954269104199071311587814590507997333500662642479178899820717066657531278388863559808649259520554403491225843129295066971226880918076724364768569203890778455487071286280067527806706444611321763042459050013996905577178577721140387599522820895963008166110988511749832066334296989248060687415168717113090332932321346395283289668943093285287969039260645051768488651365438774949907734824993595529125701849108595022875790817166244003934522985782840260058801245076506370110727409574815853265028246962438292530938967874037384346578491620947562123036751938936690289467301033764235000031217547321591963054216375140747013773585705840005766418704062397483716197535683483221881990555290302316535988947679304238197037972851952534391449180931394369518159423509908960546275663141243610680714083759556408778969203568806207442649135102300541484571702290779068376871594807900366958339471408012069416114048767720220878394190361527267841311465594570221670871579240496304457225772966547866800040141198002516258182387522063606540487126332617400423689679759220379157362751259103923318388174069625849284201456841021000011536510500394905069802506336248084642056046228666819530452213332377598717750020148714108138881175528953208875772640623866218076007914577883804886319092363190472815581629602471084741746656929250369671841090022395246123780569060189409326138417384480609171998693356128669652187644981194970660798118425927714805419844509144669128801290726326953694549870878960560717970481373979979127279135765482564435352904267324324027358742452375270501888273472433284417862884363109640775024228039782426023938862492489740041047847149480455619298129712182126420062522467041925024469674702916210054439425485125550751336331381244882809883841567045415154787589489520170216971145361805134022613183147691016965308686539798300305294206277818619298062951810267192538454009294811271766564040124086363985373087902032082060185536766640902289339402367024903537042363023158329028927253997515519788427006928535368506200811047047611905825503084785017327210792603373736437439847682531773762529271696518102142426189145249991183582605016897548456034777353078787302890166125664716951106961155757795917794817753920371480620856300417119619882971232066737628271652629584781732640744916872075351439514017598723860589861179544385737275237373125205629827689373072762285772049270115435076672046871348838284037752504065915331158680459957680596546847693421136133530504153318779109358997192281301825495160786756813129219534469492172896849869532800961070835856405077265689715656530424145082626292176220030275169413631805388757180994850289534824566813065834603467885391682405419185194915153851513307115223404705211143459279821820858648050309291082619565329022946143278882090331643170971081194048359835471561855206791675175687490444741099196639889469124587077736359077033111154274687164167074218669196093139645678105404990435864494033119222224398474366048587693235998493263512840181281669630547635629257798402525000582532243833989280801997515210519885567013810995168743768617199377725487229024961924127030423053747312596396200584749119016843064814373579474722046655937231235314049726240159123502879774745915783681352611448849088767636426566305875988368858382981665608201499353600280486632032154196248994545418482076046505866067401764058723414204109934229235267687457167292773178234214133918730792750098501572456056776181282325490753096755156656611727250176942822364838205259177489028387033151436411865786466735359502252925046499253570935772574244693421245188979919734928554078032451014538298624716883058347973126960696413621600929071827272326707736644729858877496380439077573309070606257208512147902409481259886050834406062691257289109236996694329309279154860818723643754513600642764287491074899537332486762469701358398306641698319168810215648602173439228173904739043840086235560665919719783361605987255817612695163171725628607643835099449094985590973725712528080794739664981896263450918927275437865637204328188162752592471612189017555731545951326380046117517420710713756491916977742404623022460442949928246681006981099669601317847339014344836677762172240887381876749015736084363443663049297302836674611506150869411735917828891180831840038342845512596648411203952539904443882043166915213433141473560817725788976114143789690665169824130593854280545736470947713077753084673163371535051857595477015387058056548191325446684945548977517870685244173010620155487069101972927996811807482349766179481802832339384076601139034971600576998661946840220607858467938850952616244836647455248229770303267194016830612058008811098075586462754854242667761006230512192174977334890252983149094675301082631119457498682196076350587103242822026682769962524389197114659853197424739308427207598231675791550498750771720722327583980530309187918291582160659212641890143663133927589146485645278498865683936659957833949780539607291557262918214148876691448026251525752454178314948987327855918713591171176962771623570565320206435397548360252464399445233502890034198712015120497028641983154321323636690026627854120717111505534869102339845648794526982310897225748352535382546652782988203622384085562723042068357806787897192028857358347922111386210033997059118194585566586865037844820862701368559337688414711124873486907589735017176946964589418087402654501207626035139326322402185947532995487370916979282221670379479704575618180271323270893859625688514103172207085161376956272485832657358415818704289627309362324365728306556070894280854350724052985806533001940514558413465594678243630120568860312701285350313943449535840670191567033234342318145993371823959521249674951238161487558304400041434873000670318589617611767970522372869286481451357006688443890382789932866768284920295327092724252946273173766903782942651120668649049617482190777038504689301096553581686102966492331033499538596285455295223053837863346742173399855181223183778384797242313915831786640185121700181879743249060427963559006467952801174322928128166217711101320610143161157380468424801107051157689990161979952972261522261140218282232862001284306511263704927169771679954988808183687856844526299141174163663564206792250072666067466812514485465008678265168818941141592507865172459930172330873764116040353065387834783907727934603084000950165414429548077625211279730416283715194214047380697123708553698436097498056502733776215424024007236069096623743087824224307912673787519463514886471989762371152569200622946719697782364543269262248581693710187454364760311568906465008041231494275007077529852656509117986520748023262389311718410054139213099676890168702481157974746949832218011645452305174266706647092456977134483263318393967137954132141890998161410372578448684095786734973253103673436748429649614399181479923857849405754009201272505876826717196120455150044991185003272513607744869946100251715034622059928196884147232968337533092356839541873125538507844846448976848911978163428687688291378134466062925675899291296376696360967623918164921326250533553966095228709177780029209816574811106136863549248555316454092303483444061497836248164698277814862890073457132394514229948387631932735575846374015968696600256936048173653730389155748664106184402932538375100943685862488854159650808489327028212891396920971142985453257650858870574621547382486827904112025379383884024286179826686808838608871390127287646862893572711874198713547108391400710458011374584497884979750566410482473967432021105868182345178543296243299067700796032428318324915607961004166055663741708850923522346075379395011744739568516094305026018427920659555922551921905606279461837799146628152123654930100291939324922394139279904726863033216096035180416259115855214072733209442330834344054193404089582899002784799282210500552347981948699904610708447829460475701578230417706037096154623197160869595012062824420122702813134477005959974986093163554908931990474437191688132023798248228321591234664524207363379171983167431573440469818058339763631786439265363639840903753202885061445501009842758736000457367115104579298479175314400621889093766455078193854118393024604951652864182604443420452597641482535032531169286954529456680938140128271992089108234473862762830872087827237386861250812604528110749143447491631698766293737281659171890839657502209938958721598417374305406697793615340871511508192418103954277851030327917323040056544611191617912657003382123943657049176063862708183772752204886279040344772747579533801744803429072838471387956977278032289470110305748760277097302547582865431109975768175449827545765712485771542158457398271863423065410509773251222556478271617435508324939111956495148556097504061460307709791477036490334359500677798008288651386056841746698876296170120010135696677030913169152009434612905404883365921194689600029570976560752018696128419305909847079112342256803892453843098639434945070338978725722471037777406337949576750585734836665284497418118646417477081074016686647112025265900577013905159217185301231983591825732592800281649998887098245251101618963709989489361071423854569284722631624154843692413153518379409888131197910925281727129892982649669379479952036801693674309312651841216416435659872468479066850853061523219472014236221865824460170458710949616430036544424581198914918668672322387895123277626075268405357319190587526807293973534826952887611187028514885633410583612267996035092364635301989244014733544379348544014627158933576944877530204853489032105176499752409405311014066302271551311007388912109573633165849119406856462098391824744402308226719266183125264113367846213103909651507149873132750938582744917849218999298093393576996450538681386038802184056757997491547636840896752023479767664673411295961649715543356459219512365930346034643004137573948285936428547983563529366373084199178528180849330097292283567273200818691484889154632620597993996311513041950415865580601071608825691254291567163188123170496848286684128407764074380499375943310279852822003349976078096261026017666519572145829081928188414682821750961615864364043433343994950934284096465591823836351785680362345811690268188605030693806311593395342445849271013341357284712417625401600235463776789505629895573332057095223029033872100810873797338202665054408354362000338165054414801859237266646139915991922885377453816780099972271764261885886838968755986406821910893391798192421415248013953684745602579129525691812237446632380375317812145801780872778372656336842651159100575412325133193654873327451854384783418900195990712462417152161034869645461398762130907291815084809895722136164624039188585115762314072943057324163590171730298330540009283202802370069127121579443211276863103399732528865690915454782033955423904902362136497469762467274301459295114387278909865154110369590002259527585334985617583375073273953033356020325335111188194404839969519063252801420154871749366914973722289195876625246690783059896277809783679392141706630779445098930356828959855521738245769604790626858460472881689563398851052042388978415891124526380308023963628910516720523583354918245880731844108874724920266144011252240740374550327450062389016765267227708374223704432677472103003964172958117792577036538444693338518981765795380697268490541981128546755643475264800152757764838318143938711640959213175255101520580071226906540213863676425294479659883991502516465644806617146693778031863550317009459074405960952141402455330901538561385669198311984585486232330553559431670401380101767164064551839673220551319756628050543150433605377795329979349185461223222002572555476833958406310327722640284922071449029736209366395823340784649466788708947616966498165873639344194877068001135707087784772542437587905838428480523806264211784236172907924356049287333687379143902899328491847199798400937761102031423638133465365943842979981962278707355811552035699860403122862371861490864990388549956013050644613787027708651419449671256766084558296038814304053564088481094279629316059845803542793505513712092105822368386825491874464567788885990720036375654917989322075649235235127759009631568941641985011946801881143186513946998493178524683716887272499903768734145344307622673669841172633817026333884955196418705245176015231299524127632618469437198401272998894493285187122999575860234279870703768724376422441866094504159000886927736021678584726696210192411010283448458464808333131397421214109907828264265544524828345008472964702678398048856222762304877889745295148511309019562206542114121574300431088665878570625067711691016172797281073506508809082146013544470875694259566894115899029340770118848882015214751098835154698989195046615987855561203388669406315577666462825335878232607585191221837516916325582308907134563978673006573996390514136655777617469954256009182278059091828634760498545220051231137015920877776604011585289052405132081563846422858519031854877492016480347418469113072970847750775472365195769748121718257113696444236587398343736343445387591513901819359224293668503732764672261437562236848132516812612282099098564891179568438968235090411739679931226443373084174714597377153401054265173526014583277350493663336946999138896896406191769775651222426856858751615974710659179824313800433559873307760190769270005717449239516621260803226659647980019543827503842372608326784306513293419148780338231409406282553630128343849815839560023393489141178772505637770818393052760477146049850089900460392628822865579782512001044050906154209410115360270766853735269283479154981589021607876440521178975874400695782150870268033366467621975081260256225234274876901374071151228746388175014958549684794853688186636412965832584460594061654439044822236528271959415911620538501210258842386356167763320899664965975190518518622744070910191097147983536159756150507836475452153389205152355488735698550521202444729294774595351204692385777627406633431034942707865967956339944645928740732780004304646763703225482232327236448379162760896807917429112043951600787514411114816509760678572499460367623420859814090889311607119406711333595164991519359219990537192381887638628325859830915740236538387811553236674306183654404734603543848016902766745721639349888439940180534501672138111694422434820355530255980412095161196873961376887579386937437464163737890046769997254802888210149665774264713039027447691051767745382468937819049076428677467389365881299207428713724097867905979943670789919042943489984812610790804090034447647849253864247753502124755196277928339271577394923999078561460151879007373291993286686219187217083931429762091700719878228416912453937272666244116767177073612372974338845706011756717598835751602196141431073087505643069663126886088205119758485452430380341213707483999116998778786323342977577489427168407533837343691676554429452823476213702506222763887814668139356875048705561528176892090933373602599513762907985916011637716714535826785885006855566968427259308813428334240683720393388931619295679170339838589479588747878990184474188993997951561245523496180867895367918547284009604275671573304396300086810943119378993000168228929688895692760005389599959997657243494591066047541811115365820148358308173462730770955943752320647057762326140085846226168789103901642245622891349439565092769538015238782231420804013173801756950635039925853884217101271546757152960952872903615209072905473202298880368335601902695846541105752356728000739626142530206064014431598368849481151236617715960044824893864870573967043302950303821151247363792091676645804392367376468130446739625472435469507277692344984089854127853688652508320883197186711159808993016143527812057120000570872433961103488330404532700323352238799439910610757572873276507444149929978952061548607278382924575321005718081812194174031166699064493785566896849629702883205192901126885657539676909271838353414826520565945670489548107454882228186782171980847506715229257832353866722996728043121381626039947290422015519345164267156808723443178529360341536677372754959650023965156748180563218129351998620186173703242207616873603216757133303633720857685049180124844526943902785318588491639680206662008225267564941972585879950948470197801225032268920757680339496258032066534605891521292723749928947314749625762077237531619396468216271686961087933604055298605054469280242954821776169804630332860643414920618133289462109989473577895976983018735007610252310810534957378216526451402539156731838041103984026923838379525390912350664472589516980670509959136191339284651770228413570713000243866232166633100310749503702749547414082383551171320478116030990880395013271926613008771905846690405530842069059057539010387030492612998091457157468821372075003505053980379940051605273538401761337957486919626807862127737120939018251986913493043784953253326583153642068005956493018540061077348339810470249041219268575075597919071866205319897829271104234988131730277791286676132196893804246340051202841098955293391853287905660982208117583639375453205547796398668906580940589488368407871001703639256117977245120656011616977811953237942827750296834086862960010558971027020676744227975763868452725464118430976039004146780446533767899047581253491951295099915948296741465510305991076246598029618057707861950774238213968889198309335698437642473451285899535247147236010572950732977639305110513028743815585566779533078844318029569839417827447996922291114933341797304377445765381518450001020390429014381187311543724162836730997234448766647350186660623185704867231146994921281020227275998370799894157314941560723930290700727948256257592778969821480599130545125023947550241916988044492169104408210833597839335504356178469303828744630874942955311273114584522454273632321048340180410743398449804581051921134932542230960704719382881038119579170330137478271683763496279042994987390871226997020523798692676325421011175492945571229831223550093462368323048625132802288403472845304214299317792043716177420831677919778284203669371410373901482662918145984820089043764092131475861023803485245710563541707094230148090898920620512296805366022809790235858413488404940422018316490501146701627081358403848355893928467704352629378164528900859126239957083882071917966057495251202929981103522372074893118790664067494712497053892116890611665451868556739831942059274030760537906714954198893604154244660951059296792563672497101589250819189439284506440785682248318922989407187204427349540584875097995549640514756424639705672910715423745936818855381048609501485182270665184556591763483432593973897417932501099372482142902456261020281581009348110951261432394951718563153004553716571275927877127113809606137923948735071801787792205920983405206320364363131670319345512006871472273856641261150628804015145452821873589980633810056403581625778151741847733808587153825366886217576208509985163461431196368431403356428847571879759048963841484713494879818782164694571396605606333653848051979064262370834211294916159580001302983143830238469341864076694639317165980399835883263786681532943273115002758238197919065734473927863399545887560643923449560265474336395240888519483529181511647268389176059757267019854809222572625817806746821120134391580498272046591232651527727573331695635289201355792382007305828392930096485194307869088366101191500796192335826571151660425346818691806680244224857697990274611012513218617434531683638651539344600858515461539231723998041909010929182514513608135877101377217074613224873184626218037227228036019247955049256076091275214523238151163084193241719677024893405925096762763538116008514115058941809531093432001022604768420218513329810803801806635869660244724882266782500952138039344559404927088860687123833439872659328939178133440103810427057804708662409927279360332633120799122821899416631451897085884756871946359802042611390453696420872131895760258873382019515559383945845364880257039366784451652514011307023767670333945714898363947854258098323954815856555126678854680048714310299809251688458362849277373863074950630463059431797551182500551161876795861769323277299467876724468671751444538931565068054630499494026820190182132863666113804052100150256024183335014663575160213253187988585860043582239819561998627563613571846626191692212895523880942339712941260064363910098487260194124191966011082114089442303514277681611225942748201248460358818302856969891918263007200660319826301780564708753433765358870395491621651039114028026031116144832762173277419205052787892820903196649581158010712300584071074417374620500451299096645143343663908677066246658751421531733955764177833295680589795842724057279776139299326599489774648157729849874985124605317396429161624083316362399048342748221366108540609864084269588061381833620536740782612920108053997927449728972045707816073482721382205433396576044821971489995480093717836119776791947023657038535123855465210948377822794340717176462587011475327296049916513169721627926015585748221787703569151993146658270097215842682374534030789217885718769005631605768009571620564520612304777003082149190422242236541761750743525271560606151128645410340459678732231072649196264234853899420784662318151521089045682695227796390121569501134402525874458116525548433099939413415442638981211725723330993092632055170600235538054421168170715127781799115863820456943764223851996914828270542746586199440938197996842859170437394401391810518446989819770299479899967947053801195447218345768443552637356653998852553061328718543912938522882117240228260380559359353497367403944319070584923906172164371045985076169070971080891491907924554295529376429068514619120102943439446469143627819703217621822370589145678832766832873569092037718204290406518397455114794195682965601646426033107071332691909598432254609376079779352440302971066202833723490989996540101467819045040749240777725644044122032627934990306986997280384816476075012956812135248726901874498980731282213285318060932079437109858087103711178331435203781363238162449116149014301560179027597100270002941872595413335680596650020643038088859134337099423282445658942739188946036149748426206712400033483365853831143195556569803929366812475140617023875360008792068164862534683355827178339094981715866005893326547786572543207985883869378042558591210682199602530699415343580988987062567857922408121748459639236808632239260390169054937388272196610389672562307114369502196287418788385549953005207941379412970455855278925549588823418538108150269602262954893801557882079604938427161597547033913688588511284542817755898196564560181143628102952926153318588635436072199675739285182832691688062870443708584154877952898291829128432084399937756244602057271340907812206615837194092751022334779110666490137913638790444142228777151135610182302518360602495140771597163757080361695567008854641512787302342254137596213294737402966658280903940082273902341020007384252694174743773368722871150754551303653294204406981938772300603037618180603272755508169138235608940153373116200166537114632550535989660181871645645110766207288342988135423141564996639767298738248208578640684261684846173042296309896408334079268143984421214596861664474631339287937608457882361319169112101291262794050311619449352939095419269765482482889340822624826453421038265753468903117133448903333679897628151146025796335069482655774884795268891655495300069655569777374822704174752509629860317248741460632719894575955469353636451336782970946807265925522796944064139779619124458259479887587108756942621555121049173644032935569822976493428396081962837625751346396302342799729290992376282683830371975046679807533827912334479281381185551152664430334548821084580394316165622633533869365152916387081549814362170732546854316201151092286221205927111262738767072057683247684612749304369588100950297030688491532550497634565114040654881341048580867783580444710391071805705841646399892834410049571907113574406903780252882570787321885997461617276061153649190004362321842573851830560274525655145308204274362710363830213831198594148473591191947271208719944631373701426746282966070418469904858919694227752488826330508997638482743559628286788566100582165634819271563039154552544088890550424808688753587944446822430042720980208679865752177190699644722445466483465558250158646135860497216029085607181120861926947207170929833395002818023415417317248746078584245148090538185515166566537047293356176811639414544137646936507882807086377145700718388625144191360688433594022637031051523363662939568599081401671497148111945265566326692105857165737908142981177991462372923515867130784800088360687211537908146997447369933258470505222407993891481096746263410680910940947792252035566238441253405902850555722923219446671421657597338211192915490304163204840774117658139985470760261033317190386155502975120201280964730572884500189008229592731745644415933236650032313786189984249059643764102502299560694958833564902736197445219316306657180919949058216311866200696194105904465221129583880818157593681966449059411964621298339731158708914577692926526163766001571636665429940715385893663906250439894883146898971287554750387711795053261118207499775042845374348991939910292560219897219930950807467650128857163007357381896632132599586434876188196125151293799119399547624170412770595319871606479365755369139940973014319300555578998815866037027637375813188513448895018688034585590324009717653607312512699455512791947776848648793198552320927818575563098241005609125308179394657041383812703734330873895146027852613824530906953334989818260919979351989643221251002571801088477942170268988586123898986991728190239533988120172741654356688712370723098156843518459081562876313734098453960828969167241204666903061746428880289076829637483165340998636902402521373667428026322447462148698296000673365973233928673182360432222267479152516830746881777276414431647024994053070921887671302828235722225763261986622617967655185688050761211455116642430285614855939772040897716810250775012103701788492209776564876703073371335875871025537508273941894274641032023152639318060496492800440706806118028712754404098120186276038526023909832835647748508951624142368550218059727943267274596156226188598850167624018410005735181258598203861466307902587377678802103799198731282038497963122253656102817046548352449085733906911183677792135818984345086929006162111068092727490725239180211633277658739926841381685052966756774369332052814493012100885482739887757609376292172469399309432281271341480175041196066070111895340724422482039933782549942521502487589324527845898903711567984566281940303186739239807396567466112374186401961313643765891747594256168167537637788502684785164224334996118521487676436006513715310046691615919642703898652931521036096106282558036076822660067824708688135705686222457788827167109031507155901733621160336876519215372401635187978719028618925663585824981934530039941357183742618180349900977503956306479943977334286693418979017836910565603466425570377041394307386827813854683090395409708633971627871661971715568567884633297586943995540378231614670703609820256810508560466966995344693919506293613205403254022636407916856936400270857800556574106931602247006171951712675035328022849437654647313121237388026254105440835925634888600898746581347144403242636109481014490330489841661369616666259674799051755554844411795095875189102819381538708513966841429900132015030270239691722365534644249478188674036209107705765571528242839214018470171086418319162009328968854801917380089720169431286874137770373614617826151296328944364467939572211776197064271261766692946900768401830230972669333840260749519192608932313517858396693760558155771598068488746947813067925575560769229353643291883154192186563593092942484769761868048595518300646724945563212801890738047162800603901625611420336060313795193286204229486577640016272261320796937339026266154974902076467147840486181161794787721678466535069016947534818679684800648713092448278469381951162256102141551305409796167394910779520239024841414294443816811001053505556130949687401338723262442846164866602504938397128354361200936621658939946825017913817157022539541038669476521490867293981840502984515646946277204264356014447479030671635128634213519008532308695834006662448717475501282804406417118611303752569094154946412262820371322824595728272044872474849987851240020020515186325472532908291334385033225703755192925605319624396060806617319182466244277587258153579331736159154608487553593736898567644038545641501346837973928273485571902085488144299838218561395174716237704710090996935571862066612388594956741343482326149511756890083160101019949083726239976726949083942817945083898764751252539622796151545227189375083440533989456796867916705007024208247105958452319889133104889812176492363895515910229506193686175153950328246705074797753600037937248689661025978135566515864331575085484476434233658499774860409850471595503625267963037617118661383096573976923374125770435985402758447519803768146704420200836783043382027748015744341215234438169845425979934336118367361774986031615803732456252281556551866047557181403961401533746339182508497746521611299697836482309828937227586215293079937976239902118075684865210149022862672529125310645246849088117801574604568893216752428038798038643162249789020090840164241761891532271853505559360839079420569828536968626367457973550581360665881975354422463889628265526273471504830924888385777109678691241711443214925107321819889406182085255064406601337979571393089760970301976338742510207550152670994571971873310612737962483457601041678060212143309261016062205931536070944611094236118101931496867102717319944258982560581653426798713141421531317268363952640156651002180767991023174885580407022512618551887685464229173692343394080521843067979809587035220622150565040214849993166121620482035797439915552630725104232178345687180162400350013691739770420118529738594819719414277721186437984139666848907891901339163150354453090808891657575409277291469858066220915830061676228476302257892364353153320964169742510366856546159235467425970151130630551039767551845444470920923875724142436741404776868320757855669179515462029309158036823039191834493998621318307728032808266395884840639834414480887054673569443667289124324732898587279016167083863188185633815248517854176126222923828594503608250222492606751638817371407729864298289743751304909654176146833769098770921932952244378752383313903431728771533425419100633170196416730574301955531955952104969336495331523724622572986735194693138226073421766195058834003565337177088879584883954218298157796358971420539766808923982498677251581957340650017710445253425898074603931366841689660940573299729607309855331272427206569016939506784817580930559017659535160449128828475752103345915640587529087055164894755438535325443613449181352964530600519665163067763243476936651166197849170181624329461505991609591691406673885766186069782026727660642919708535644557531479965415399309215524562381751866617997524210593672043063040472830885851395971776815570928978061065485800705217776068041391146702098651432810079392277555924209561987564609663379253503541017456508390027106960393012789330874929752496878244717397135253999128710472901077966207393858749899513441724250930792085538035176807733512143802300063746600848959919672454741911220367789179127379118596802139052696120756607438108332198147815155478427119852561798720554694474133904874740929934582576858326130642249312765569623416935220994416390492202055095254816311309130330194406210987976208155036400294918436876502767699414567755698740325893485109486514436043226285457255589400866279717008444460405164569364220676074582118189834529634431002839437769288313491140124260381249947589849586837897102015323493034210635461021611584975266065606993807162083137894728414147757122352327666253872780910751336848329022737787404068440829768714027547432069148510888653419480086326595803198495493567288387281203583232174563294488381751436633587786594094968329943397950555218548797100751335829112734100240480598888802974753867412028904259771978862664146334374900140741387769514175295224840472963996496077088578963689715680032471637667751802769186165238820011304459783241643528157822027231635019977644719529446656770584160587907287237090269603840760198813160773836648282974976108778467149970629800083053523237165012078702619645263628616611309034051061449594480897438829217246935914932974540601671537459655394065372670910912847830313923616597426366366481961136527990064420253675315870242870563452517485853544789832519240608130022520074381725184982172057999350454711605134436503686698175389664324960176764549613289634604366946823423175384338801105456229119978569063410395579427386987358261563538424284704061422487637708299014993332680945499502563177603531369151390890999245054265221374609415780983868650006212417693485287876127263220012662663672227319388925394066839810221981207698578411395846969869572268878571224815346021036136858523067157214905210809674068667223267748178784088525577819294176570186113137781189823329868285611727777024072044842328175477113742878325508269205829113446291841836324047299841847553895181988386475127682507189344989702187131157063833113840698330585051360168655285775392871533122808513929927402685751462274233883957447157568227068582333469994098782455646912622881824625565072816033189489995289962401841191668743717901406641645207064089661659134967610304620591095304162671082210011131416226471830725148084416501648173824919638489236128490809216195755755406407843752505025846019160039698637736935214953034398390485256427126587057666406471647895591992298160565061713221132908268363379580749377087328377974069281516379543521122786441462872280982515834156653137253087298070926369682289836093570100586176425972544473681702884618880913043582195042229043630321054523019890774501592829244356196357250005530300690198386262634696215217569603463240106233733008356588111432118583360026992602636236479276198227668362043856937646277489992918359896279517455869754785651082846162210982319316644900053263524530028408268445771623161967250552799768072484819951466601280264769543111432209712337493789080961930283578204605250460123361041959724635704323884738902790663107745177178787590295052387766733094037064790851376006873951527113331365751126367715411127870024851778834253763537219162877807316340271280448550493919006328837843453516150273003367452105666920937368376508585284077327929105413741666396467244246259346419279740527520521939606999623101435831792791307640882317165833249971985081619177028752563875237779185853515822714286763313640312912488283339204491972633276351230738535707049456552086415108819514177993114147310497431271052212027816259891365104454633257315444526523418702026626357920179634770845636071130686014590478352385347179676969634689865114771003083372365406991882832953510467287805259777752746185561885987288848023422369962918492297340106383113877956036486688783741341836353281133201138955351698166299633557664498271313121965287850605262474945565411063830600402510314067367636487665052191031472032767132135434334161307634302228665771045114849091948423570144798804502253718631175968403474543955838838925199582319430585765386653004287643783322678275349170220673870336799437489080790165467533983134502235753930345707653896986024035475840378837666869541908037228890422968427139403059503302899568800651026851410774538231599161378850604496622306948539444071128101691650380661088406570787126900830161198916745809197519298685373539306141146412591040898781226807166210690400115438582417566714958859200424608950110311091927717964834129148837357545668302714713628498955395132652219528077555169580338551380397107811520573356005922274804016039799763712267129171856565620939836932932638704855702407460637024680514748502958300438317339936494279264978463575575223070650597557515344140435884320358904888757443220292119113507627076032576057529287464282653010729629557879863336173736325409292880367270955683405314412323587166002943813511618148531496837158488073183676351079207817654402575545379606498358440758929355550547224289458906792594450531290493737909469191641001873548560833696636723458542970266581082932826467315518459138448754199176320583803120506529618296125057570392274219024079787988685900753615942979263328680372519269051873793643371229150835714651607003448513473463218658944053881083423282512038188573308362863134040294079291557329121378683453240840466278771818940317575778852145765598196255297822803968970009531078970916796454252005763573165893373766994489764805138103465116189076389920163029679850208174993943710820189615074862056816169116350841703530894908954551942798572748951519611292980052638402597934165301018408179182694189569487863978703640247070094499313094105890458322760989651274931353258088437008222550708943995590787977571631070705300906501830164205191795845700000939446895378568235231501652670420346181117414402875151583336559203398015678828991199749176649477323965363296502689811886774351097990013139659713955150973010316294570836289232730468344343824930881671328632266282956706662591120780996184658587775843687787431611948236405867810587097343685397550987502425395843676404762194309707924932896052423967775189609411105434098213684643681332166740203895860998382145741556224519306657443672870661122593121647719284762754760270095180299124236063792340251359137390375261266134344033908207894982272941319649154665381029419695835700632023884470319980604874307219089946657043940359360275062547283245558021558227244743330834278945508813991706933227469300529981854788892111259753907275401177673190323070424929537556635733919502495383025752493655151405399312970936666994784442394298996955136452634693394875540697367886708805322975616809605910292974084338055357170646215909190139286843211772087506127208294588551267129363721651889883061723139730367561023682177782256048838736709764506493675004104092677854481202988300689785360418080953733556368520396292837653941752982549790367073010626418327447040930461839633709216103328319483874678526763396862122278442361204905020725138405912651772779476853025980211045963106694715375166031839446209147144462712225073709399492990528339610206455293479984508839102011624611063148223613017720723896456398042220245302233279032276611322593732059036029759918163527296378752530510455289245955784122268835473430695377021310537699851019440623122509277130689459403109055379228185334965860085968524095881184293649664772165922775685772542144029660766191249320854827555803052680052486645418481085328498480413189423137094421787204221986486408030567204297844368540523470432476589407477762304819544379256032446409016758629430756681281986285591413072175573438213667591208104371140299157808919007778759157110662845037974251448342969862308761425959987311803712965135585059546853050889081878740570375804911415463528568304186182784497786048794107437252512866735830896362988943611593395102133822231574603489703603051767806418280611974448163111875665146636562424126193058334922978375959930406651843807698807684856199707849830323671817960668551689275599304646484061398135564758497150816519147080395635120160703192038800200099176004303483990724225521554352585105836265265435653508853346945376636224301140410640169509686500202287468099519695189017110490526603090877705348399459152719660783603095233184639856740584041714597867747843823949990734396116117243159083622783764184735395454249159025609626581452728508577924385461979348271603167540027439068041499970885206498328235424318085064809327957291401777639530117633615814285495668399949883234782197365605911341688588966144963289281272635754886545869652252486393700081039418171631152840996523478826270381723895961354475372858177711527295687628976351973464653146107455045292970341477897624383303015463550185947199051055423732215803287394601192532394199480586641160561044335641248667874722977728853038953936948684692259890165857830914157445400505401196643646490211951055941789287679367985669198495777802083913202241605544506229030144826323244174483281516796346769023308457032762306784636149502225105604565382434147742552141933789725307262409189583042439262190301860810754190554561413897586244495300279809240059561040227255724864453943828765553491182389434163168073181155347015419519905124424298607464942402946700757796625117397130942788572146272646784334512421486066661179535327450619513654088092822943566426008069976874622735654782891538827194834772528652838131119611047097000820722143984962033829165828163107561485596262935772608875554913102518153246555966843838841266455608074827431659124118755657700949009200172798011281035533326634163779481590915657869035874458383344954430363533245637530320359498222031455572087779393931900766979707876329203804843906359357914301947780912126986467211258871109785485655790337086145224793347254264507365614494802295321358774760325220241239071698987125391534865788896333148960816858930245744388490043969959005508510767105341464635952148860792999061261639640117821161982671448099958280760522069399571205834706900263156731843848061446294735399308008703249613089041108102300832734832045290864024685563632875515570333839837539679610325264290012224226367579754260167152502451695065682539146860725570926113203227701235296873853261984452806630865837229668579073599477376483518825072057117237546551692550950390017559901954475968482713056416641567864315812330317264044155023828586693473971904069391386022791447558316879185582460623740093844967878710516670503709594166838025061925437552607304092329630288268186976847234716731997380750910573176588681036631662895503194033054502042681179484001550852150105737833208524334520972678711307207737021567285625975855399304751609621297341209390686746343789661682070003727472330078033034582544907142075903435132073015944907558091898515188222638048830135657631016144910998493822922552664145583184917420856118488746448494510057202495531291720674071326132540425062100974713834933148907430617883917834640067216049534808952824539362132180989657468044212818024358109646522291378564440142798900070129556076787522960100533946195348167616976489814177511585128023584645047936667997301395866712868749108950027448956464164329065583948992768707489250108367144148882572706805592768904917688554380661490127914078840405864061155865265148128650628063812509537731438882309066349620705018939489783175780957512785568632755494979013115135237305630454237837657115239866253965823566514117556681834718947124226086670933953069517775585965121878281132738349057832219064408241083697393623757210997748232270591986399445596439812432563377328229608376239680812251832898808379269518649850726749465597538678457938865236212871672170670187776150315830030138801093749719744057258383753739292689042197777540781475391993104996601918351730893252789255950542026145854877085247463537798816235633845706875030230234576680038856337556307413719014967880957335196968357049599144561361346859927159602131790863374018233261250613475626075135730205395804633843701358170479472664168379787757069183619797532704171119493500889950890316600193316896997984905954972705778472433747360392040420113259676963946536825843669426203034463806123799944003629623605808108191778864920973192434701677066272863620465315121991417166423164752193901682840847448737217918205381609601438569161265679776702732783583896480785718077235534643630623939532564765491529718388338817803989916949446637491471097184220638979111290060862060107496621093636350304255915620945296256681345041329045833060446195122531232580678629308754975949194917845616513787461959827147734233197282793773290820292753010614788751636800507966050138904756560840811120202771851767050643235481444087308237979477497114258244570111635614682825935755007171374178312845606749852586069124361191133621818083425632631808458212746205602703035446541040456244588229114209447317576912721474478638999090275386719905074987504164251676507494079868112524977402111495048495466155607163410649922593962029472715461439829254817793740234292524719542740309878073856027328762432123350298705665627356472838009261265154533871184977737417058523395043207769610192279213850382284687361449820121825041732463939479682663955115666906062783147858086749989115999833383384145061037395473533134555830440828036899396121553781409671583786934672606189189903285420975346026857707205891497478595472224960594678296025139699448097249217666842616876091218383477855898019549285561287008212946749901794316256657285017445419640572875629547162610014646594114781972922309402520997445446052357659060006215858341190834765346314620922131198517854526975291051955416638155495020284568270807202445569507959073724067302914393485548325349814665648865323421057918086730582165529339583225042325313292692841627912032441299570508279165785863624789639608328073131063471887238388682327147003375373052741345726726069508332907248181402949169481043687852290215773356608491207454571552600689676569661858814902478995815078534256706483314927162521560348835595386371316837624684312433947175579101330714228179274256328485537202387029787889228466758853926158813988521372840127138115941815301887032648432794360481921843085645069736410055361248778638404743874953225585253259704333310939300586107300527499169619972806885522756363047249631467663678932804908801739188685668418982626923865363264911078531383259643683753826436287604328137942840848246540616430924332397707153414999225992566687953396915583184562870878195647308192054516945845587063132364850400983479395814954024704006621566648882696782207035416385313648778044473019805374356952776143166541738703148102806891987428752887370584635940444376419596504741045437361794240261495026834654109483961408112230588533476778887988483724267275553819955600541837955579592214610087426473240874767283764089724018305060585312823213280338317330468172681428587787845974280833271736852708634264442114174157038078191462499107093732727611540350617649002883274356575143869393037112989505305215753778577905409238277005614027919152633755322485342579824632509247162975127266634439224002871276063018654184030518087927044101185683626828425529234566895444156760841467917048327535069300587555394451108972095956159490090866233721888517687220208182876289156065701580495774397902927066976001981149365934655716584193232642119016434378158157568583324531998136175895415909125700719820599142790084994277105545681862210100974889399924305571526956024348216927447316963575002016241408591608698444256603498765210597681672629326699775877160583293724942719769642097276526920417477980467191708462061016894613744993729753480474148863281508583333549178346203798181229896298230812451232957697251575132542568795946423704857822127753681551238025600470192109783949393993980260721730279952057089247465906919537561689901169960862595627396240287359172591971768432824928542136172107205456894155519551677480192824104190904679568655403930356284780898160296674537791773423998119829356503634482821012953459477052464256484476921221517068900983944369417614810606283320984078562244853320964248893110103994485100298667090367934266742360529931321028441346985218119270855178183256385199165101302189659540970865389914531446403944894064826452022121190998832046502441500060705761316395754853387785892533325690139491587463130191762642015560043846256396239045600614895118967032168243602962838737621479838353301772271418065507424413871622519481829261110311964578867348431907099984161403227197803345851913163001549228719041856103649961630893231419741767372828314036768062024955031992341607162342718441102297049736052677820217128976483246355271769917889254917397528869806093876247386336436438639287342828987348750299824442069250184235138614327598751417577276341814881201622559198425328638942249948496791281830691586306195235191730124606289421588755019542385974121346269732061953724738619597424374437697139512748058635093867232766104808550034181889062297019886535032156930824923762488815788366414351871331273869859414275094449277795618017297267888106765767025309483207948974254367681645376960013774519289328619147993302739606508792844637238546263081314945884878257714062849155753176311251645967583829745431065463894208864097553656059702272258595566701712445680179651776088036113123618061233254076693327716544345174353541616001364527750668777894492094880800946844939963158223748871699525965430245187220664410784131585829136423017917702180104055746674450654664364717057540494472880167751854058884939303255116148288007732476475649774161864414838796202096577368233435370718488026837395142643965359100083811814632258905422198590363427560847600196323874991313922812075131422309601702091463784670883325208050440053324434230170645262885471375185239530282516747450661704373912893875917365717073918235918190092300305473081571858621232391420794327143440945573987577756676911700743767812377853601710710639236372156719545200010209754572147415323109491200319245760504903883606123025005990873179119712715080550986950271053877532649775181380891851370811406758706480879205463662109609706151454989806593051766220697609008779211636707116374930437440141980305505615818858181940326898855557110672841522831872109069786087046568554125837309684852649071613615988243219565185807944267033870584893682554917072100970252460566246534698393953454468482528303748248252475051200404417046626953982405218071651063721511253602583897992289382095166778043375030438842381470996900324138518925386995373142175473383303015812120452254078718137686195250787870683077678937063870759341535675820645059055142595315825005667655883684933808706147585979077307823098200720009451021953538674257530702429247628679221820386716713737770727596876819733501311963136548583551995153133880145132372627712981624338677702763228156193611384034939759809935592105444880083513817125303429832017023127198695951723079042029729854931289154119038743365697822568158989914869214807684361437079069228427491385019557784628695739497057300290865309265153386675619905769519351080261108063060714878159594386496271520977362420904710225531124708308446339288312560102639020012843746655486344048563504657522073904380307085631666581110971397586287595474602114912519036456656457886428861356076195253006031220048374673276418137764083344359315293634030985960131953036604693775743562667809812426913707755817982463139198868087499802430869388540821973830329293488476545505312840067829447219428560714453477731726613560933690145346801280763170916317916479848633875386939484065256096524413295413047594994940834718752640428657701472017661981532128575789889831295910411827816221495484295988360952318072396422758590980128598258788096105264802163669466354607755471646009670367750089277509014615107890481469887200966612496769420468528923306572254659816965838820483482983702952421827489344830945824791842746500716066704344855215418304764275202432115129899605319325610023067023286880384142743086514072545533443618092745828386768336175781603019936144730959016944816396411169897900101971889969812298324900010751566214699334555884835698722833571510586044785011842229502921590104933326618891710931809996570690995396693640272602704260991862199755976958447459906980095333747779263453972737871062263106418701356600856824445157406168431447118327886614522667378336484649331005607107507766478630916499679236738248674592832389824968458893516998257290934511794339432485292367907080419848219139347180953812694041784183151941323917915857340094242582945967049353437436265510431312476710673544461002316737658639308310057536340545046371191597069666495814002514971928318984026024412610497756977659020786598859315545121755393292586728324496693194659303484631467401108313631557451060451806615987956195674290228364903236163577326219405679221293592605811567743877845787908412788658709888704957159448698833198331421050289217539261460426380613785234016813904949297460438287664201336521204712615676060945053660091774969859408478102808182019550454020717569412777729092173586533324386326067121329840603108212296202726412759109353270905590800761087138927886781327714149289571246102898479806122842681383915732037448646410688095059032989853434070508705894788672322293556448863222744981786126681115431019772512075236839957740566888697146100964272523127246244562084764442775364494138875627178472458236820520103914160396316564085492808126989623440753911301021637713930847559428704993921037152683277192019565611986063999246744861145472785359085822272739003382023432800425429271687120048661509670381583847563545396061491432652152220562018836433293979969741152294057144266791553783456583828948441358788907576260846302528341560983547794158965479621371121329159427584393380013466537522802889142971279201857453814548460191728120901037853328433332993621468191924844516931108839136735117453893839830562069511090369531722806693901713747233510985340322988820060522102906468157649471388084036026280813521864936963900561240067188042441835530435674812700766584518975830738645119471250513973199539025654235481488784910142834719602337972435254444801796771496200472333610145855407277145801984743674120355652637850688116894270099419524956805318524637390401843455316667904782753749569272107243248447213311613531763334440150455899594726113949056027449571475924178055952953301423897530766899823481304740406482676447245047606401710236848595414866834586986923057915371857046372025527503456748369857961924252043079655932404248901514807868988398821605900839825262737185657106193936784636967989647130190169196161301132828289817078722634831255019260582644394148751731133197322170807756172158956859599781708351914589561302681949360257746560594539631654473883790750214465463284517593190472495940973859404658932715486301601257851929665470137896509471818361541342578217077781016283141417002025713706694548628905744969286493744693486779972938428330709967327365440803566712365733359323026644385064075061050842452055865648753978526438563633428020674939021734668067116051768828700854860199050770608346986673486142326928563460845997511570421719648107490555148553221095926267172626412437248067422668105290305039369476630679622021018141901149226233183168648457540941270483499289338695953223634766573002245215070261344550790988734262451614841644713178805723472335202438843803072829920193311311360343890308542974663408027575313425893292323206395164131603341115959844664909667167708595702302877365808447988012919562859280980166955622547593837087823973994907962825035622591900889306489760772261438052712387230357559412519331856836685577754100893775455137881858635142421457016019813342876492813930054808951545522268891622467058775841818820872835350352801350561465733548882693423651129009816865550237905598795542627488258831975648578885838022119721070580534331681615636344242395521849255496081227708625802162936322112296689265648720420533659234774213582913487853253032703696466928255652697522704802327758398017156269107718198684801802093752109028055497085977083646399843190074123558829465463772972546139747431301260226755587166622576631446364069068511956888262722684246392139866085625192973691838550196042149251367969647636319041156777589128376173771966632913134935507688827823156298554837461242931851680174672713821331493543608264595999147701238978547943996333614900100947563248409023095833238420884483426611506334368546788642439160636522929967366185142265539262143257327074532822205058723347034130567013615162033539600312982415508904760710542989175195475520692196666210084772340241923823893353476475297278940054784163266198407390634262733962424230311900679844933197692957667573668139340942668732182378055203430383614250136230877164055546110113431282493272217240701135562784580505472362869574499693618294247638605552005856756365348086817821536968091710667764169228988639360232316519480760828777619837024840281316266507498707382041264634104294811209129259375652144747529336417534280078263391724166796022362177456940116873661049764011802007413626349186119334192922668670729010698910987417813629489600710587124797364698840128362895044280867919343445734195477864555611281464118387874762234608293252167988112526962436046303649382597028368195228240095286171905953532688960857858113631757268631169497737728296931464639191593516964401769972115711654298019930680695631677156605956303330052148865500530192636052977568362573942775888255175073241428897801449550307849215888751244829908938775888241424426410007805406556310181816210417082208773565237308806133761886720708239627693164106422836914755339473811965577442658217520385712785822770491337458774635886426380239917555990292044446961236998347344015359978535076009243943362581005807081761554860855596304115731262772534685708826556751177104618333064758213704648083652499237702031571177236286859089428007257019864387330167724693563008098352792636352795530828570045878576570088959917279330951949592269670122895546685400841947536025970701107089746328122065018557201394090065858706038172644261286767404989481243648191854890487583194444921812858422477596354022096845450389876177016925836127224714334666492390840400946897780411513372472247080851475132839800671332214689627030077863317220101827113363633731768455640803439322498425331643776308163476537229563615715977650011235289665448009912976968756083910237322996535142831815325582035667126431646678782787643084445539192739211453260341397284182105258753648369975961874836912299252522854502821598799543069795217936861751241726945300930369359413558076787199750004491100538415634147636657775187010893269257038772100983160667415628045346164312503766257782848126785103131665997341332271369604060007572023808296783108568219298914628815246064618545294366839995692894467668745410692585805748063393966747376130929970735425299762219716857046091387229183865777290208022498989996651681875943261970496628420496598381914535925052323273317527941098788330017606128624200954580732954411035027980493633924835014384075522831082336807625784860413522944383363497811360965200872376564334816122027712575798081373712155615675081260079266424632621625067545438836562322658443393170361452338198567710372217252571990014525611746260792282224744483313627058639096290509913814310859516933261831719265450698153711836781144583846371735054264414570561734524627775085853911515062060591411435162919957557033401410892124711339972994428697775579481768944694313345791483046854211666741672003063236971317601870518959148759383925909162518038248503433743799858999263187795603984015063632386098730726488897307513754257954821284820288289805568033413909735187657402344916500223854689617334210091051487216739293287445367618790974358647086709953929730304843895399062803959429666475925322380212667348172953063648270650374167452893809833632963519028927277238549739750673874761931885277961586913557658168173722880878676891947886747347965232687586211739504502045552751378812153332458584999410058361676303914187617387981020163152046866364581495242046396881853609571510671277966531243870643450500315971646261423620299535407393087732612268449003986073833771608876179523466667301381443859178778197219637807368961461452816391885136827282073733250229476383191193434281776895066418765440203653155876713309746739059539587833411574051813912017347288760824498146408764381299214944127729153548852340688508071509004927168091193208084044903339648780055773194066002876502270772153764979524749108572576799478346203641671264584167961936852831203942540912393326261383423537396959663889169574161298083745886737853751349993937830077440449501801067819195926069227482621650032240269529485745893454585565287805324663120356280126420043602000784173659022425451232212255941111401454821589225155191556868443679836693656351149484614996791300891333965762436045171586454047458101189944239233821703626053694049627325241577774623771734557024176076885413108768713726409126536809003092092219422937860451235390196077121343627721032346515819002614014730944838408847056572844316841315171784348988684603302540872788312637470532536749272885905673189493914864480466196417671847326039393140659052114802024991519343659679564446168110093840308279643016957505499767548726493017941345946049214568440945827954082752630627574275975807726927108988186885345629858046622098719389165253251404427897732094341035789299828256001167212750506732988765991664443933300298895680547985655899025743091002600286234106577093354336413078426697935598968190387514990632077476318453714562420672018169297073971018781266749549997123770946949958965125321079911563913561676054788527653745335391048372833451919380374971938030233700736818900762828494118175454645188000647233021132492466306739447657965712797956235366116429688748185947008227645310428317783961712561417426992054729280093929660998499004267127597841145149640860173424790782047787332126674281016843369528123032642076102403106665711487193416928031757171137428743794129484096272893970562890471548411249771812779568947713424955671196736963227411299576771008985428002713286291288466590299199099115514376349169278316378888821812814369563534720224595198915207757098982365001353183867284448160947459962814024385372356402499968711098023235782339118965648198671512762945949556972952112435725752480824561785402328713758134748478675956516420960124747511575218104909589812162418917411813209869947950282557667964359185273429597850668794143946890709727382450129785898607392442614504347512041315109933776097443059818097208312125372478390188031824060069699953029333172737432347738809499490341334389831722082646065084357050147572678716145211143576807555058346315912874693265937227795056821644332314265233368175719378829424203698952034830080082311612902904560750559477922440882255460362535045148400709498941708476900609792845828567811340201528692329130260766395113212509893237052994141924826257949781791514429473345875784147374859418071100618009687151487403361415096683712124817434485326538329160932348023063560229717059945063479838341988171789590490887402969044605815264636826487297291501856001704151093300273929859586746937037048670983043626786534551358045981062043725428843380859176135719751299146682324882042120503653918963082704857575700652865696976722950325442919600821555934070404940085654746324997333134285460421054550328160664020013116690694935331810914617346041707109018514147431522653969526079164986472590613622706005304707408248515382197677921238861257792184518122990446916446462737082983782499914993319240593438064828790349220505429049107827715834484215084240285562756836224424744537561051756928758137897821241444261790620830067677121631873177016361764312464673406568969050686875946965632849012055054445152537742768431040480314947006602396487717441237394281555573869061281991954283288506708891536937085130544401351888026146464514790964038098191062922633389735646202172102135111738486542349052535567707825032376342249380971485204156790944687904135162043712006637673706108129358430287650143566614772569833995940765042053354349662988867000186348483776859391362874305184892572027910703973756432749564866161545441087674332058772253259234845693208760368729419889335522802066189235948805491235907617078149017852028196851941834638241024750824759552979047386850023154156293874035466342207938405003302356241479915299278138836793272550904087582673288851277269480444529105994943297359231245645428108700406651594614215791219914512760571523715147356066085928954768405057573511895621323515725618873749699329491952354191200528719271329551288358635271472561404092670423107490667461114839039349449135683736432884097879672353053335238659563290447235836336039166954084150458737308858539070977933341210663357890462878866501848870093844257162928647136741932636245779933680325724994265785151236022446091733603973311872759989991352879401497865564384619869348824240958366420379111469888497312632300844016358748215304284910635151691455592447172549641706992484319288191073697993805954950264763842034036697252957123352449146878253683853351044521159299413568604640276182402809268370664709957459018994750745067082019030440088231102676002525903344520166278951218543581428667254813571258883588033200434311549706610416321188611199788140855202833934961917569042987066404412216332458833949092258686031532299824180147065767438945197685770943165886271255104724193554054647717494666022479257902429629926813160094712863742566711655229613362587262096341493984511461143360812947038701677320994950680387521104587703429367684113291723730018692443887066635451324945214572478377152106348210907947264076277568853420965243891872502279571497128390070401461061607585770004921423854974681382299130354612071874366439770260714726908602665095246821000994781413483850188601352662488298364561944852631430980801789289444528721176538720746965260526372428180393783185650226471731524458895715294119667823656383320684217587039472839409753928961331242592516155858665890435785867052171603004563268074672192332001887661592747097250864770642535663371736845464143103189571199399561559986302815523038380988004668490168268041459787612727342604372473469206878932648832287297671284021202775638217377798230661961114563672382564087023790048680580289960641057636493197940565955237559042928864637449269133882994472241784824960720842614652955530968298122960508491484171316198487942244585635301809759084145989222531961801941163892192403530142134736611691660195398795440850997172223777036024254102226931320702815051851187460799797441981076353255603761634816758520019257313386669168809736227704964009101557593813186990613612790071482420603531856110213493003072703298412913321729528033670714164146731466088674082634359221003503413750645045628584150399367069847704837204253163312489292984270917133008825836333831709750453300759161179023250073804948212578335584759792900032315082589062844591569590023031986506853727196042041864029099395944388938188207623853946629940978877223607719794115265938561426751176643330959818894458444936532015174134115292272153580235561554217704818387011199940714482828750295575267525197898013994466570491649908895419381825685930049886078452866615605804116014655970814880109221603587209636754928954818861702459851129317518240044224557645491490969185179221423111653888204406858113378357273617089279991209968857933835499008013908878454767742135666831909362411408900916213764445508106044744085796960988436300376312480212563218665830127717358929212000865854207246466160083904343681339156960790183336421405592690017443443654890417074010048817750522797995408930688014171817734320149211074841905020016722004666814703168449324193735802446983792159906059229073293193294178973424045902811514168699621921640591510643188800179828291791765103178386740247436958865462495667134234090969033363917400961971737425665635828388348952989183863195124904787720332298727399005921262674532383806904004581370906918580948403275395576401453077539091631466174601875279845721779007152102457426791193260171854689747120494469238393811291692976513968958931788705540158211087679062900532647141269401082900215481726360047838384183464943466108276601495092334123466117078869497290891457130327555547885835198868662347208791138942576237449699625383925215124559567216709136459939368078699942203445384366593877502886936471155087900492329230937549091975994882482816988704221867636733572568930246372063091772047299950847266402259815516714700657001693389191091044698298073617023723345544134155565055080390595580611847286801286998815723603825935487215622940128924831936511552296263910995669235072751753835643301403797733037343066339634870432460801226397805453895124403841594296115275595404551295929571499577878172428592899882089610431117281303990599649383814675809432400227925662640878293515003196974292699418766397316740561131594998814641558351709767225544240464388129401970413161782242850042226110395978702699688334987061501370620590557237022775615482077619745539444717906943441526056652406817676611933178981975031748074430900290354538454946976225930875006471424080737945057840635090025502613751629167102871910932280122625403873558926202024690896939442552336458887503324234411537157775881592878414639472221676962828146119610825880608006005237821409963727772798424330262283716261363230067356979990854220051945335724456906055300466332563382202788924563739787311151888170266246693029800367012856785110596574030059762624818122466644276344529805680622207085166687014783981970835891565700328655822670745644205585142793427112068864499983451581653431178448304384275926066211192052716257087533839555691710550048638567491693913155396880898812825243516782940986282010464015711611070949389813047064072114751367039525980458670854929890756234640595947483997609041230461281802690341042962369223859519105948721945607096783927528574634656382781596497362438926479636651895945321315544450759344457160768968024941492652425440896831602667895955540176976079868205408570281923899273463883672047275984615073341291961522386131271813677930380301024323988600084095826746434480157559686977192421301968791453752661657789257017020171800847528965030779376489418066000311167251177084195561251508178034211681891278495907582506575618217567983798770547433554513731990276346015480884038028861485291174729800734166253303925220684266778873518607393059752114498258410431542479300078426900459564064934014682609436310229242066945273242390850636564410886887481585999720207425314387005869745745701002730675913346061133886729811167437756590340763364915140516330971719032934417010356082887855992761201431719871295877514656017949879665488223767425030615380622959371303345241740456921875220007782498748427729237291860153986133691261300421686811247606503933982945646124749509978558921113698725367500724746480937610662946525040024445526878285811517750296316221991675496505860872177712462603211786740295063810670978725727482834360247450832701400341989159759145660461244548237942691373281637276816158452104847646413599964867373001502282460468732665468072818739095894185200364057900851566932375265220114322604062844328085265292134631730882655119461131026322671014765167304949903213867033294530578476358891788992221910563642546574338911566294390516958369075632181823060350272352413388908826554186817323903052217355304906292753363514437277379115837585646215262837228473884354104098840314466762294048851637040098987571748100890357555796088829228425861127204686758696874302340877265704552337746091739993294686337852557409481404509939189246916236203908419974352296618828479294552606740631053276945036949315516728143192895504698500332263726239089341343044505561840041509304934438847007231747941266835237979853037691209912495299172444776664847481239268918193277568341616914810387834498579846715796006479317101247152916896053654422927942146245918511806372377475638656782982052360930600843790894404747878595006557112998610530069505292362218036718075818499741689062987328493930173696801271584055717401647696810333271082715493985277940832013509240875162005255959374995202042193084422502817390901122780024061170711933785247340054178135553563473371934397579581891738547791537111717655647855843124290097914195675820205159648509386156436488816012064078555849129554670091783506517076721066780768714307242312596829530153148356257673598072664012763586965480972792434424827622446597817742310770875064040089585286910690021955215512096223534929509737338181707739635192717956408199105803128723845708421512484079625357849515353496264137124847201304063734119515249066635482333538894053912862142349580001275325959127800590996158362468778665117270557839037257704612431206795399889945124940963011859618211107994864840389010984251953732811567151685585966888124449747121511313847417274636038878407907703448461961397312862214276290904401783169525573772880119785382753024124542396906303916559490797056911384558354879628642258693196049577738997435189549539455606047630600947722877352530254841145576463517214624668916527796963790772509021362476188618875712758241204160841084578597076280757636886115102187544836981247591933387709789515597247605013175470455491629869319867849508005229408266641210087694844339828515166222827057646303495820645376143528594972436623782411965522699861298116126677453629538345046773996208658806815798116598554086339942218992126647514100360696949314960439385267553359804825630124930244025299328934160215407111276379922894249271815833805220087839796380224191015873134494703135688155054441745189325412829162735786028607070213897967017915754993425055378953755444962818193373252632338506167920855531525492792430790731361873793101301713191693241163731871736836093741934364906018978666222738181564582211595596357812382985021208818657497257125959531824046320811264887909775869453319949011273833499788248941907316787944114968677398849504778448753416775794384091205506634596402702805379958479495281611353448323438792604161179708126441084970362300476732143388020819947490202044777114948931511534145685372229541702863024895336587368815621144206886382918136364860416604184921983903227338385401742032815669371327950998550127866665367628339041433667802852279875542370783638640999123753013625966646315744050088059982327188979962061483930131313530146323799689803268697529165950797210748209145335198804543280269941368096051899804127484382699960412476845569781301498350782881715595338257549166835649902469396164327203512235310842043931105738369801638862208520071607851591217039025679448945298120441930377994642136877786383843258713447305856220376526683173023350289575468814102247530579521583203180334731297290465985343378711394979590193145966762653184135327739944995673854498089031578047407450373360515076874545216796498937626625173825013834383502276959259823394208015980167530208085709313726167062767421051083543667435266623344905303840980147487206852340435945730486411996835045687961508363922530156747320212968939969552813360455304918956843607555486220518549877632683290069129384657217327256568357500093151329514075354151228797532245571222991100759309215891260547495523173104106748822898499916522169141429095611247000763985050131577948003514357075318540158936475561226314763943086295778735978912213722771015868598624466873135102442904457798453702775252645606038932248098949999763037986466952906284231193374011692324745097170588639707641575106969412549236038679775512659807701948380692699979748330215673731522426505762632617052501013391748560382965677610892865806878809047355674960299701060222171523166785500996585159714202080691193969222828256025780193257834530680268573701814106849861228587299907228249376907777097466104018555263702603843291477404061787687865080349249815569892425367163775814108966175797268121907017909848620624697752941142707383036865307415067715054317413938926302859588163976120632002374333635872233266053206800155411888197642617089299625612598968124119547420445667013884631398313684633949154481595834099125228431362319645295114173080370424716245986712771609488744037374234850890849046307421814052588379010556019764599357999076816631933863077808291263607554109465334641670831413204609066504847639687845992475404317897653385667547646125778968656582842684192915180521210496349413662531119374935635437424303637533937489982651303735461998788512896204097806072873422408134699124684238213752624857182113824555994788583704585678317485435169189441556914167493680060996972440874190328722214453369304717005305926067968189893372714481093142097250343348959548025465754423962236963570478123781164825476096960410934544684824392946164713524167569217624610350182017020875040625853910867744326652959036421828573930279538171512951668258882493934645410180811922889564923899231332371431658454982093968068203066719557471167947213129107455775330943113141817957100434854867877259850013962918670652319946655406095725354623005466269309997062104726245322554279815813977561748330743734522837090478057006114969454782299345034868249379699223649921061518459056008449567476778320325324980665326474677493577771585059266887885178294562379515638362282067669733500943216396140870011052306684991981334579893342581682345202663347230737809288537850006783126279489643428854197166407779396230177873711606889717983280153920214084979724139568727186755947676397490189641872934296422285996541877924933432678287347694324347625347974525069352806496600118820629743882172381578943044715257262515023160480935021201152747841409262485765617133533455527546426030766293085912653457517000026799518609348433668501031265578935080496292958845081673667616501664247182721116468207979128867454982135349588890373906163967711372130576685100581474173015586079088872543255246687298364438246556799642249583206408733766378838936405270966612312270671624867513291262075901826332281337081278246285222922421472505925415762361583833445988561404854566409755863602798790594210890367409352506595526180818552430849169829476545687260101055000831071443938050289244946093856851327171545560516900234759038770077655911089381368336766469758058987675900584927337863246277635219610674973615811843255755904933717564389954371329642278366523415095922135379120968903969840857776332168096771540440845879319826014360275558663439997899778733992916833687191097178499422552730697054847518219678093910193700643146164809707636373324142466385392481001182729344592370493435107805763521930417574102190435857958126276554290237513041943373045149160756812141742949894246043081639253656181920022467353796766872506001208681022021487247182446458359682922213360140298854941972092971492106308262043501472935486178470573521027151253731450807578009382539104766831886231494980880447112721973742502624267193695917823707120171363702381661277892583976653260856489909718835715411781325426648126080826024990189079245006874177018108941820605590617982220999355415323066410409744950369371889294352708541392642364177580127828156412402697870004456907158947236501515544171344694999999161578260219877695911963101637809194413109652624158164358463326200087862313998317388474399400868287830266966756713145728711619984216452946396872991240762146187833505350263794914115189973409012909032619192576463940011030632146188437631984758620726162263306590669752669514109893468006919335190784882803459409519338681147835490037404567708806367650934795432416385946468790532877383054950195423420420435566547401394503648795900840342268327204226557936310743791953968644654942942283348215686824312953175826693997653734203436494404608822131403113938552137950838021885324200909696977619306193800115502752635127987973071824242025364621243304315601175191181872244871907456676645906981461952141341839902032130758395277398991443212446735664551178951138620985392085696934460564859690947213966157951678115184286733460417697704581900961516419657228767178335217674583408130982766688028471355115583022114189642450312695077268557245105304095651639468300410548393965849308181154710107513140317454526577997367500074570391095740284981652748127359347275031049185618343615518526800263673253307601436810855008473599387872365535006343607764982194611875742653266377959471051278753715174363097766472818387145733203080090863344647871579385323179891479096574385919336552017999503203701238028912485838004696827833895163342707567754106764456293994245312085984562498699485006386985658486983160445952790020733845508642658943962149032987333848135119156057751399747460193855321430065575280311484712344842056295218347180454641138896307025017325845146250060515647493634531058537314291909735547453034469331287666654653741805293564051030128514368474759383005599542810714925761242756373003763708396962034729600145880429657131217978857713123098327899122836940725039763116951158065365666723118049155470871607280984647711258381729140440250487514171859957088767880765677774849146884371408220524689352024402665629316315788879000440511849528952432913382616664037632069160931944861653496084051002270333053099757443601165188874936282536202673990448810558225527265451793245133097539406020798760191819608942132399750218295782500683730158212503217822114422358332508886601433864273626722776273226757824223665677709247514843624223092548266601521569584743848363105351371528467044129834393291160940613587796681963987156802563540245116377993032965676645168009175596110012537328515447773444016796265585537251413612722956730657912062403490200724526708973209614213363479673463564299773805971026263387601914854316379325796517119331417977904786196464343310034698969210240942955378745271593271047571271206689103950087926603459562923443381190507057259181668482773333354301195774262513569378975946627664211183485178217530843587704035001793595155351402980123958434889540167568423413271488045363704748414612599964500004555661740504794653125954992499154668048344867415221500785387268458948031668975244299385248228821700871263514235838029464818311996246925028913136138810661252310638227376145320191059318689004627683996953125224843777326278206311229089829592905444256226164426791411427520075474695535968032875625936805942666520261428494085367492551883442160887142578512410767972160512194473784722667988313433349395163546081485984395000951920051342777413076758219358665367922900938603716549837233725636836990875140398963790920577697732323957231631824018253547952414717291049792108670130778012167831411256699452444915477179531314646527271373456466589840287942580341478500976998845929929784346746561226680849592026043829427504189908083968086925883624980289931395683655858997645982702000680544857251836333593073515401823541602627807285076714077508087534484371705366482803142552198236677695080489180338118662365887183417318190567818951344270275351914677268173939805316087604293382798431011102031658659926262613401921157724291044762640045693452337541852205494730788976886218708356188329359580276304770866453700222013632513716605997004805993425883819630469541712312902999225588297709205217466150511485485321572563140444129545204659031963150498462229333729167956013656579559254972895692548967897279815705212951932507563618430936545878567388220561692509117251718588075682738188889279367225103617568798325621417497196577033477933237890900137964605810867461964664924021999509559705946675837800259902773886693709917496017799008908897248060727999050401087907184010294059769798125282538474151921401996952586580843092519569999914846790890128235463474084100784026106941564515259534435219707339804447648260262173464932806867698688220093381159791045576132666199944815956234520762469684632404268567555555465598765336923442719966770485275894726711002641420916547381360666023020593800372166774103986812817331612598563163304662788968230073535746599440021509968746207380504853074273633746107922290260240134575868022431250173589373350173109960994047701944265189265740013809274193126563773220906712748527203275876205142759933420222820553589250982192019078029400854188983863084964612939210735717418826110324422390843249653544754980626880552872445962957966496722044618223663049542117049199619509223198487644469851714267616858689398962776777332344062767094791936841989439865309178544345431313621739441238106621614350561621249850286116570916168657109745634167289561041252460431034551855541005509782224286889931857387000889849436373035760798470148206322596373516591621012985763282021715795028322431267326734061998855689429900711650557760924923543464768942248774946951177599509961749933431019411622453493163195404388956886935870974819832044137427784998630257828497815443646638401899668757723168835951324462918912648517014607320372424151858755801380225901923015096401681910235842085129901946410425715669326456629381124963618358216311805177995421399371054588551469021300908143346762404532197261661773161077659979731385917848415318660633385445373189036033766363545619247226337423012197846676120099476632005476683165906578584066605292147847899686739550932153887937787983916925598198824688366278852927751294225767111008661756748988149070072826478840380118407474975012714275802657570372941487276312331671414555195729911662723012161078596627221171650359388622462483409451136547836381195884112240843962466248463390985414558121539026547342682675922884526613350306052547424559244887027798231710421894687028772305839656678076777504599657892914993132556756563598638955920961603679736707589183695496510030444694589344573523211293777033294281529631576437496409184957145359277928809421169593315930005709899589477764263871280511196853794066809464478697824446547284324769666792793664948552468608589357253249912024757741431162783087741450234363947411762012031511871553321830170826023049980087246811339590206842073384145771649025994698602599956539575238568981043655843097915571064808556853297915257418436637738745829986010102447635513150018847027756220642906992945032813441212139309467776623988046394038934275245502028095384062283596157753653796941829959743326098397925078025470018778463851428708571576105634680387207981972576895460221830832628750750012925502019796557893162694364871113846348288884568072950648417543502294558368403435281043446669012336444459893928095361283515415746023287121348398197435712805692498735899386679389385649166895736770014677422783016141248848472455411033947115521459838783432721378845171191229717384147697238157473610191069286125934143341025776626528172960097338875046271382716934636124560557152350972123114445687048345675619704965097076950681579174396474833799449665290738419761508140755039054111544328027791770033103308826164822145898030542174438187462994083303274674808171159938698688915560729009331509767924206721652775266098269408056111654178371712696493853375142560426665978728223940135710286640935696568764904280741653789140073946914098571587389502988791233354449739893104505373541424079732960851490621233827042477020275213939555823278965976011495009584989641726853659328784476638017476331605929190013046681994134085746656961895614171206273378248058653196263678738221794666735940498539636632675049129458206544565225325446471950804435326171826828743350311220875410554957610314260091935260429978372569861137785702124851913036423506051791121344724796378030336972135859269181522369514069600101766473168721166692034594416964451842675156229622727323865160896920695185340064345244653483844087400957418662993715684060269693044796082919831823696237915363511844891507765081884703963722674527605960482836006130140805720114147699369506894104432506363829536103573076887008839914939914987659840054454812903881466532132038263874895062209993378607358256750535618822033150845145458133022247826186450023085586165986170263258784072787137182557089985405126280180280517736793608072420942025029839870592497027784331469377086383272171968057147404716556304708682209719428496167216076649170869252668280373431508569043981001715794627813762772032732909612391736856094364803741678626342244253181012745193461015230459328669336490283278970948711101082551568028259821455207795347138756268016475661190545204825474791430094836863585588716866841696375120190505796160180290606538255677091882872610307552012774203667932191081699428296430995218488936787150182562341359685881118621373155850768168877671150432871757662296239213499558291876593839222744713143218573869025507474788832181967106390396446105957886263782573907995904879865867567094341794221674432196770917202282580067597049075044484787524930365792468160328965254523293829969514621169452972284931484598814263584488461998931791797535379649908024470450958783085958691469425860651903663802047293954632225462091102058420081488128138260631391685312530858825511197713382583417878316989422597265576670129686578464240877248386813406737748739927827879728609074240618488068686972328539351003735710127353073788448178683030940763084910061967297396555360699155164913240922805306685666598757325854844095763011767597284650091916719798644222051857947407415590500584711674655145057711189968846640460987267657228240751142745388904236630540623185161005269782923321265854848544071599219174872272379494137967796044915912874047982311440333994597555386261879057217530167768321850093434570839815527828356028324369165516722622629245902228756641826358031436886831787219027138590229244731107474629492215116786840199918807437887909306044155282084999735457155653398713975450293878831314074135929760859463225448343964311409850619539654336843190038319816908553655523237433305630919013516926846731876755823774999079214885326435311774821162541866370099194096026506379488157637906932411992586230305249627387273445223633450008972185330679471449833842777312659316578676783355456480064584953451362925265283154044822775651127923287769646391501213880408972402441911469452227658621828967063322138132913088879440158612179746391706368725842354044424187110119279618138167914691959285664533188152860313908061806443164383357206590744857689770628880184969551042822576701834721623691893243586659880111616177771074611050134196682088784772171742247200766378011184095625815712835887723871696683979687999249104275279123940830929026075162357078154186679429328296103890665864753624608276361031538314581648477398875316501469763558473517727041656080780325752366993554081226495948211940544599864390797713044280164529512731586565773898933385433128705734778317858004950512201013946763884329399916223229347157377367989586274286607071874493002043144829383974306858801723884791703313262563181741290054296322750396118710999156925149449374413599334919800131751312823497604772463498006636832501357577330597172339900994966289520250753947926158623134227668067818318810650386449270626116313014485439668574737222315911177687454146930604939767706232137281617912528447497424339922775641007700832559008377485795470420227967115883329156409044262645493244063562786943215381743628700250181459207417260095956913616176777182540447853210565247509919032136304605885394566095510826300634395475556891273081370463503840004708919090911547189460223642331251078815478067487616511683730051565802796889440567106188824424188055591240489666742016403565955738114217515493923238325378426839272215871254305579612393677411598019564483473006868097853251504530798513374901352591477771613273556854192405704164424918112417258520510554536091646058844753928079392886506525696960180716686444367417570247205638845670724238355461214201943940377827476378086239584883424455285053488696864531963504260362772614047308381297589088202810042536693218072396875019873704678626354696107919692946853710944374899368215075671761592692798348673291919098494182707788427894239958069097689722685128402586314257109572721914341913840359081688496954782207734099325968765067754140241976681369236030459967660269910140467793455079506621094902036722180780642691508721800278928423203382322007794533115798266969180202308645884262993636437974795736287768554019090140572947035309066494297332120193867043119805568516016427084210858928648352814725039270118152542316947728736527357918815708828833457964123433214538679249376796032017933203097226818454766217180192463323114523275859309589647332007972183620984291637901619744385315231765913458391701691194064826367847501802174036818453600600357806792298495871123414677841347899607467810022547779709959558703248569926263322110637586568171442432741779515445309891062493239138887094709499395241026044905147543702555148088955652898648394473372840409968851711311437361382845554389072816394028569426134581464990529243716177888343782630159254446984404805856401368282958359556166237692277480053650670517347409833872702327051101607246365050591740076474468580382863111170436682978347476338759888533227347817266278827597802260869344429646838370192744804167382738831550858038823606802248201378214150941361406679690627366576831253495954054980888780046754586487949671711205145282050062178644409451071447240676958068896146139773467475906662011824893947340163007057540516841128261335738133511146486068625521024941042718687599594141097966959403412329449621768123752382822923607486972724719742107926878787882493062222104843062776708201115742078851662639297797222379157568743791816849836216921404903858697202875697324247887937654020555818753667982154148701441269919543221572411946832070482051489038782979659568404880784715799157537161382324804557712680045119491535156034322108359280804026759257348041309680781062500528196787474983972635715376837409332909270499885397431691613347058942834525972909738963123113267006683425551065764938514267028607443284386637742414166953767242860302371505901124718766675390596096662493628412018507587274328902181285243415035937899399680708260771739254063473610916734247414253951138939574385287620845968626047854619244454600220905673147767674012868740418685279297606903469015306073300108357055318266955154334310794616555655783560560145801425046378085355130954149543388634708288944121137826774588288416289661992552224538298550470229334838418007764118853274158417186769649850896887644872986678987051501077332483628267676206524617188317075289372558599235447007393534631664763734055243132484525268108658644421724392617245200451865931329663022551961672606412332592212578611989839756276319987461441005433313439871673631626522518936677795921884338883796426994536944734659796169946293593929964987846488814465823012890387905405286485546952451738871757273469776840291887499982363564498621323698773173646840029172488750733408267211537949645947274947294029900985223211819335135176375380172808598507339273970924091390128437818009997644730286996041773200422121664073240232499968062995317994364436578999552445151223890383066602968287275963666848960124532603761718930516161021806531921788399755111345847670423292013623128091940264642481966589713342542386708650964752955273983670216320963331988596386263057879127218183427161315936843738125221832164538277411282219220677638819149273289837163520484329899316080566575477652309471571077912312831726546244533691486318370096147558610836494731048743506140176650084048474800288533947404767538055095518467807636307614000368328555171123922125464230675182572684340056209815384375976174758922634760035229287346358677361525911235399100608145024983209474374490054680024252010129925500726952604772984826112004218255206859933181906145964732698873637045957977436129915637496459675022354797721922278386788191188421406349638355745652806417808470101137930700482220626954052808578139447065871518860071794912047478560450141696419339232960272801242840734860623289332043331200610482294000457969467513506853100495959356078136458303370209843789854168633503432311578323993071858931333777360346162122012655646224316776926278302721072334309210394294991881182175637491783523093810345613463171911148366018459714613052185977045530884047716525910001931574562021949638333003921962695342266007688684195557253219972914916205811740917449076250555689276578070357910558047463479981634261921196168162530474330849998914310118996936003207188262817216177183459912859528026779713354865661645555429320942088491623467510813606944839587403497293538473677489803657663741734736124274643278978955773478081428536641502177749262351161113592501408430889313208592991062817178420551366113047905241616808942045092500319491109105211328041723230607690783170700230234366680199368696104303715223702232903550311586918097164027994000414797887434200227907752696826003528011704835610760983958388613644309574233094305016469904060174597140043471658328100015475428236750978354481831323291126063577621865954779398130971669678641596078379011450878605857523646659636726271774412192611079704191874815319695268622404717825167064690932586783685713982548503277130084123791293704391361372890111843634721898028989617090233078837850201570558221063217301775821464775636732539357767616807916195538267463456103455530217705588419654865042213202846720203829357216234566172472048533938623184245375811011976626538701714164762182568651629202662623053932185059624321253471785642503002953276752180979523604330457052453768184146245823452619097203067943872475274029716373406196174737645209019864749212610869871812257402764587719714509451683370846128287319017178564750565109844801341714436254341222431165376489849449462736904376167710596093818111367960125442807086368489282671834799411172644774954353583133473980104525466123316905105525469633095980654906558774567012922573046942939407095791814736029522959931053834021661371498512089905863636329158473085002145613983507685452661841912149472181002405735654195853427052483604170204027726591494497795937830399153768494766122647021742453617033577625127892477057214747296644141663557249117275843070119684672476281630159289121731993841487604208671695293514383758317750104077220101021102103436057766142687516181161697458859696462963547529249783716657142093990866894813629301916748276581867445544701468644363284980507499417997923590628270594354751246539647063034542747233943429400819535837916006570553757575055276738008367440807447564179477407946652612066121627250821329493165269881808176068013949114317448013715567122293416142068101618341550670869808380335112578733012321456215577884161318623705041266846209135468462430236082796762091703154995521096513225862529534859984554541845043758560183126981198615327758587470333923649437371443640916138838311292623717060082081371860930753935498193757848486180192526560131418608721459970053862273535074055285061357010201098825862461472266720973483166495699448661095790845179925730224764834488630126728661731540814843367615712705211800670841202869057998386061108654326149687946497139480262170517928534406268003836641265476630941181399184066196935226841214922992344132918060904714715436483163734262434986745520495772608433619673294840288816185446226762140422826247750627769342444507636345147610774554006135472395203636477212803539246156239296758046884948085955502782410644518837202905148158166648057772040180441684451798683919565575602528744400215426532622520493806222171415684089428167409471874158073557581048514383099397372488050270125507836402721054513240460460648231847532465145987830529287381667472286046899535993653919709982769482541266415237064273622586161361396440349812434482831274886595646975129290270589745274302773838546384796712953429890070219011452130968496903664384908622775546673642581581205557212762102661249934959800425235273284131913973183209301927616210611388327657480109613986626653876247219762780470994045828952913437134566133372890107021571527237031997611167818788643718638664597486928958501662643428586935394028064805552857403345907757231679491903337088538491498394267383088613191539830661503272795003129187801325590230453532407347290671786734571359431810534586147196834412805409815003029407172002307045209241441048989514268733238911307710599454966715927812694893487339121742388316700268039314181342750098168308683081225121990183346493578260307263540042047929162970072334027770971979564261925431500148861815967924958810379807526821428118836991512844357545971971772622144938172462810122581915243454894414479927554947180667481223303768179450399205301725412977141596555717668258479064164280520512568935084617602511995199821800602318329268462970547402769565491504524532380423361484283261438820854653594216116337522949895419223389707384283952608674525872775436337390967996497754892584135379053796072940651844795133518295365229802897359653368891872170162032786789198682680848121865990992870384838106139289137845990257284895298223905316531116547611280887018338021252568706282802304278419332291258252452654910533103240829995253304741378923060947407512025418882336866482816935184871150335798339697534670044855264030541858734422875126210190875369299251328673771270604083880008818311190773856337002172463046473415162712413011503867391311328381580609341760309478867203353788030569963814584237107622544977450214519421479169832960709948729664523634890963649856532541255131709107562236200986850649554594566936493794193263548313420571344993458594595141869529376606151099712736642466170374334257336022516075570323113597893547039425207810838170802764260258818222225433761818026093267851412658487364559107118616595202657746306841272350325704110311900097804274120951032398882542529984237690682266094055328558622135943048863623873893277252932802816815851542764803822361624526451616309517720798783330321980368747496195349748681621118518105824877215666859519108540239016705803982638574181228643116865750739884966046962995050570443361675672237560424450258733448325531103338081984088122027765886229269706396383852972879031602702898187535139270259555147439058198512272033378011637400282201402028668879148955181005271324152614558836236990253399492650972282849618362971992578354266135679848755937400660286973067996885563417057129227277819075146852800122937407809566083431152331097160911430482308212070603474388625593978519255664014805175434268577839419878390716535238907943574707882968273525139616361463370202162086074827043676890395069638773719965078897498052974117072481774225503516885170497447642256066526418419359443849843918516333901407530540616701790506836289041332927241199040686176199704584006476808510711711053487377470990612202518565514492984160078860985627211556965636444323374482323444872481463479668022840915446626682344884427864332921284707438481831653955825007707171300379133294794761720008745156159626945964835263672939584975296191378779410353051790197662775349242201213746487966073102854466281202768552902257311696954999994828532604159312306804787938253515589250861494671109721857700038666289429377770651655340956730175419958049496795732839809580166163112751690015369167658133481505680000704591683078983418546204611391303926210660171117032528208473739252627391779999819100791846296380249794287272644348573918431590075159203303987403293200543730652150404207533097885596248920655691396023608193856194909654870270045119240151235131731526951288270865868343528207556089390309843207591662322307279949089603340232026620602026271524079640713623951398351797530449831157718714801058031813866497865985391022887682769636357161134016554759569795645626846635926696588455895486187613484802102884112004377569388575255091924308760416874620992551525294425265628213572057104228633598831942822623356865129474306906750102057467359512829111393585808066638318254812114598116681090741443689899082528292946014537145443036520200965018580450496539828662653895078283285556772756690581328425019487459271513677820209275918461573199893430912418488654714740494316887273055116279478758796705647783050235439683115851641953734299315009839572234114543976359394396961556890942000473703178605861581307382198678391524356948502082318120668408890252635315500607748772269494431322565534487139645533992208803116345088202744116464698430385907616130915528828646312687309514435496766781226950055339377051028455601423063734502095504218869893408356328678727162610740559489833118416985371950408060010161495456612954713814639881907387780564504412565758114022526395031213961298205925121909203754154280098300422709970500836460289669745798819672668635100097697388880174939539908071990930077816009489668937125106042851037272113340514563665313953131284743929421701869362708143586004045297890041528254046678178107317051999060539782685349969974684981420631179898947889268302225939708131397443285508723237060836739301676694012982788758675685798214098481969951442752599183470750836768760232766685147312726483882824777900108691642989947173690805781136321444004858576086010068699481517738679392871902263000621577078190303733953311233682070620203327509138541166863882194064279244829479764862629439926203074478716880244952376028809695824092461340482836202307817593193051314576730724166588723714918155963851551252021009746869650528215319715994831377849669473354950282589909474371997815128340233982962840440813220664785839667932692009221974899718286150199145869791441877663819236414098078442482715117226937905049193345631037163918779411790023136886042820132052198525288265998923604305252715454186381711318693962568153386657058954618701531547665640633043791690443226040013592383689056835948750260288246042934348417189639914231737776362972989569410289222540594232957921444328878649785358312237325793429571009086544905795895098743766213594990581575208407901583202609610823734230682909055663039491183358549421707215736983624978389979095486457054092461624712289244932606514040482991458435510190663864149667595450554127491571495202400313082659760428319658100348515486657156821248917146199260706177953120760611626378589215645449707735715178710005622778725106484765692765443558831529659081252026489659120091718390174258176435128928941259442187135474769053330343456436854308871958906898606381490334467632588736454424628961166825559860761353595864728071007446235921083451845026449484941666267424092720148217060431062875061118734089978572129315043418975927109395478935808989998803235583626304167959105728812892688487955950027655808241696889451021110642420770732956480978961430037227731570299393156828782943269496647152042464257185825101587889612604992271091827394685774280150739570449072832760242810085610874307587661606838343925975049761435403277296577262918273945649940448285951647723695970379494932085911745678923488047502769066744782608402779139845000845118926572597447125480097600031351132428210197783090255330533250473924430449638183297434780846700589529690183590928982462517932699698684894560683882804078379515164290306211858808388815241180892775767007573707405627556204166013484300781449919996325855898786654512032063833280662798872195447425747733659110701570943577586526026490528244593012847484617692010764894030004532256420019136422166746051939888860371437695607703085213775296750003869020219076840935985885261876266816044404985683925183310692504627491769418060428441351665320412256252256880565370787989213390983198772717336541075129187497186142069108222787690965210867065696596222871711225864293323224753091488287407841318359808478907391053817737457351755078630205352584871108071307253402458066898037786444791124543528357605090940470813827424240038180128853602925520444635592796670205020821880644245198127950486267924945680012481262756024126872908341001716027745601500335913338055226362476578771221985583947387070860247520803139214865183750371352176985200824262761612529920026948069528251515367242358109178963370835669282528398325247994214499036309068297050632848772789066403474169351568722887847785521589483424553126841974535145787924095534351916255430558978879935887488125735683795187376024450343824263359121709774919312236933885828305579105822516913844142968241783359751869757290277942164442568223572673946985931124018202246782052687397846094394827539853330911112126677172604156433506714725855847220904950254993103111580947274825288681786040105212385685165956575511700968187902284276806640783262343235020594950595830811041120545688305521312398056771694476991837211201485420367214481451881230408207519478584433022188516747071469716752480277556318421633810133197639474354619774905023950433972696712763920512885685697614352959594796990262858983849240309662704899657612318285212369225398446589067643751507924633283737143606648415813553639508251438325754383831171988273243875950819869076469919171746622473042607838961196816672878301503789068142469006704418809680918395821896241765621296560998212196656840027404507782000447727129541191761972580277182544499252281176892618788705907278289389230778610655778882486944419392943376217656921755099172923203852603029574915833781170743746756269760866131616000677130943977994991413595599196552212670812100073648386427691637815969002445664025435655561381025411856924597685745671885115805522544460440618734699841415223991682919755013723012116964741778776122314735145914355437680519592900700442979506891789350340466915997339704243940806656877547913210691229333244021378665820613082894902051857402613384978114240668964011371229917732879142502313882812427491048641433676460701311889112963359989544565354959348079073909672437007245737018330931728019156270424864867425388591531546319574069800841329921038061684453125179185330856402208507769436674236373738555187083275451182995574007676945324314991089415871388978429741234044250285192876293364440141569396377852809270587036644011620826971300675718369727065900561111987197325113931995339430375356102915719742078746917706203683146094077979680586218461284302203195843660807572224832760602329376319480440884812543182540667586416348118031546998507013526759691246071936093910262206070927146492730280277831212131924001411904359777426013554187522414000055975598841341510006952694148740552163113772754977483866673770603184867309094849362689741311095057690841984714485214134815245176064924875484310781576102432013873430067245389792553520997868331148434454766620634931519959457498148616724108724164593734712792142521971183804463585529056772797920219295969591468409313315897912265130595210755095499433456865313209113128971029371668268016071587459217054222394738546239469516978148654983994194144555180566478857653863840770967934767149306242660482329228008425085781071516603886201593173632749401728141186989420922040402959898544623981231934649529963820455910816860264539503813474166464656733028040249971245116854429740352490064636577855220517694058407218608274457226731267564448386060471796663291915758070367247615832414653334278745841848008192937768198053791505979272476243850580930566984619990623335653848687997489757833994360902360705712533077925145176425052707864766002438547686683876117596714665262039452537967869448141840102249367603445203945476228818757876593799966438850783414592119892516356488783808406748075147493242728315315705979270336291521152433818966278083436635844217666852060958554747441214702835603797367165358572540555689819840785863806665638086433132804290795313581778812563119881878073600528080566579337073650529374332918307792940751741888053840703473205642374379487413059960920588898377175363117127613443636744027409310254789394146473907004082841932042425234852715261285665970776588832177582179353193347400886796693885394194266786221200037956327897456219108770187618064404525085529788538656062053666909636727224338753201963219098364939417093713135351626887989323944719341718959382100625246147938215112942964082323166600513442212263253934965790670059372856968259106915453930199342781909723304318567623341085836391982739858517642180198414283123456281225000181788966158460093427940555578192544773938694537692278335596807729701752096326653156005370363323774910298435382302714179746655917350308582921670317975058821876646473496673241962605282849823712776595173082999183647042980549682672978028117646322250847950235655099002002599263140127078967127554438730814150946628690075564574501560426717217901369493320266130940628647556901565080209708128789974060297646486613819386785340074750770014161683009321198407328811767600745524524318349109437913202542935159336956536779475693596780216744634525059036584045107260290976955961645393878445435070897454308575526471697942027539489106885698634207759569746407527164358928272212259333142753422547908438077288666494724831474617834779932878091348487084172346577524489793492859694990251942271128970312590292771816499837623556065273190980279581696948810200712851349017556736144875994787041506144271780856053519713451560658163838482006531888788779890623911057396138287063449297388618678601983288322383589319930911323092083389057507535889010659484500113698424006052850426891162849887541773972313569368686440319162975183865494203445580535461181213491074362112071499661268883182138457028292186339459949137452169201067951574116963597755887485833400628397685319065649416107181918641171894221947157191031469258607299932190692409167810136231374298453711495315843590055772484662163023235788779035668764169811587434082925564647440930870541520515383313292219950197675567095883919074991349636688288474859803169575903075119039615796318034248566620921744525091185988841450879399198261002443204751745220557804764917192832011338543844934036762586094407779978803900095020875890655366431062126096827510833592367569394184548095702845029736907804493395101958467922679708120918154822925697339874341882804507911225019404742570098468505005702985159715406920255326325876952501737274982979543337027931276473493031840858744702252676013156490265445869446427617603112995788086427219410895763712709289469384863482546066282446147385155276605820030870626829270295206800673576692350992158102196556318701166879192577615697598718997858416442755737015142928967263253827248341416792943279507628901464851800555707679002387368272115221369973898245705206672060254638841676131158269254656058148037808832063379602738734527207993344249978804515753018401384185713758412129196095346051226511284596124107079897163373874200660065172015380627414765831452765636783705823119399134301968196917356695221481614373583804385289132020708380902989684056543380491764192166370156295184023436354014219877642766288425552855777991229681735389711602395088346637647324005633501436241824428826783814557782600781173782425938894250600035981531599737950626185830685539600144426960425501402951072450592779137988089055261080147089481046532619617272373562142673007782297295643628784256232170827383488494078680806252062754935519964390657851100394870831709457889551381062891644538681935910814326775074256181046489706192324310005108587872545518030860041529922331165165109859439647434242767097778707146075598489488116470284481068235382180961416300632812654475623906190404869723821411782614800562050847018821706697833147181392863889659146720870545376871027539239713795042798520911273097663137896002536017509567851319618200360134591190832723155618408268748085307474736750889241261578136936280429080484605221293540194371472237211191426494705544743082296317725034582990338559809132463665435120073309931513600739993465434840876085951629848474687848153867217886019915026505420603464721941971567409855498937689912695574378267210076290447572355435501083179400152360439965394891579010444160608309316331335095996566834741320487544991855866835272833557299234866373279384721918102781662986970867499359722320853657016056615589796210489899055520330199132232431941640466425896481561496421936386735086599418889039337217003336552709580696934049871814852239568824828878588862223150461794792486828817590096456414930156802514606504550096723277509682601340717671505249928333594505772929384961290074742894367878711703644443482883178484501504954261438850437766737867902646713752578682075488177851137997109670711012901158471513450566786925444547089138854044737446924203059027834800113757698499360210549775944736969091174538686004401070177001789945733378889601871044840441906111540279100820409733443030598941260341398252051543048071815091574784987526753517282870154215112447745172734367227508680935572336212150982055176303082507469514788774045988721413572592475136354806805796636296728372233878530762426863682822324483555825388791400115708567551699409086173538067061917925922179430974484044829578109572090847762702548341895046159527791725228529885194150993442005807974524456586742849469036550461010458383768093970279602535945306161869958978123106272553203645898800112427392640432274472913466021422035814799234763789574667063467251129985029485847546596643210454543710030472644751239592695259360446293770190192214950555658940259542508341487935907221695275045179327494457839124941324616166932906068816288036471923105945450130858006537441532415352433077463552475452666343897860694878142843390465686168656659344083031821083232625303412512617229153062219589698898416954276674611064842508059264940580504077569716071697780065729823954959868382992210570585981094773271370450296356081862385729528895703919576765996377359549039118224606404455036892996942752553099797893711777140573247524656900716491884861215761035816238279776004897602469081658774976711378092484809881711704438682381591922966329656556617745037685669676905132814791387565722392982105768156772444559237686019386871177735060866637410040721602518073833419857086355204749967264126306894482178588571317326168101771306142333147028783993270473259500596977297882546437585619372151673286611873864727868538471363076385116090007887845076208269784386586562652014832078336445517094862052511764331421773135841814373590315494071928628077808158921067128278594079109436010629320989423179531210173061467876792068233821961969649017502666445740741359863702353731374727595612959016727453720115549522807478119707059757201433058163662547431033324593295090846403900980275050956148807231563627970259603995770567665566127962831889100497433824847617501829628464877587898193828812510965284363338362737512829696077389537802430336798653212116854125139758738999820506461534425369098901839559116735846376066968707938064061781371755972021356375485437068655339152590639901666555616607486494105476041154448393695084335640779668330084501783113682996806997726149111792347894914559725014816771901366295157452728076507039291957454531542771817331332573758034953157339032104857864748270998334423583503020252625987716937645709281708499555790323621168050061587775553235132610966846438432018184933121763537443894796771535969706709978877287838153510209440630198259195743753281190782115069465954267028568044408333598391674730321490278031886404827961671770965931206129611305254222900558731316649258538870852372150435269807322655568630431045817391432830407303133707977703594491361112313578738908931832675519588331571132423086624476685813434066681774990272651570264297604579927693585280616868054854453186772810345276912693311821404704841982074669368517554271262892329164153008539471086004703006366857608654292732901898486435329734554274269701231629838393171928393685762367915470839184727419464623709935114517809438144032470140419752784848960558208730702157799513006347713936224744313862896159617170510109404443103003100413205501714333499021321976448758427565182124329169529285865389076634003271076078161409297908639054495853122970233979049125489942501455942226068707737306705592358832637277942763274321989081252458074730901771745827226456872327878707166028028528517406714126762742366824752099668591294799788800245144743783389217894343928863911062068450218168543657637481155152153401182677908509928822877376226760857969112062126091668227758463683705032914639849210622398635672520200064966272658499219593278664068253257177158377622026697859098149348808320006232492821470960098422945828306596438467961572748659678880170999087253718481293072121563889801953925115871196892860632756815391875414059855045403585261369842497649096996059979232555810650852523954151068519202492663375889472968004194852160062242457960029868993468521642107186640988199211012624383264994415935589888308454081787735479699356008731989373942949062910230280540398463157547889553001326087167600662844900646617228980930106092909443224100550241921613051972252198425850430205598239587201935266011092788407770933974742490427477840981304091390681717180472520031569653215119998615475736902645949702750815312740299803101815479768897381533382057221790022859851649825392163094243137781760153635897752964377041615639636120982466642061009554031698623644322068720200006869090892108524878523792216892737714033255370668207780610804448352722247762901723168164109131584465400421017852521872875299498713100392837063003816306987935973117648177907156438789685738061467595810612210407545178528686322748202294884123073668794459824814251430809320977624238828503532023520091451702258388304640780230299078577170032587344374980165731058917632469965999213461040012649638191475231302792168072055399009711746956147421215917715697121047225447641618411625675889836778463536049120621927290425648902518582546351889494638679995849876443247565224245602999410674318086557425359115510802192218255101233687707306331655595656670816995925413064032354734199468146013577376228327266161693127939986924378683519053560006681217000239084206684035376118394974306685182993493687704005908594867878372782070739805744220004544405357218277304762041923926435402032264641960218741237805647148420308328232373406886599802615837918378725148832344156319633950724904233855186569272600565761170727489371978157959970202631797487702732079551306646937816030400303820695430175365250414391420163262087929397377522444327375884736499721980702522382764822678490338944498014038729724194511673723849218911988822673064961909345922390091802678088859354827502656961271431537346892177732417853989951202300647708112224080287343286439410359273858259273119218698451830981907951995375603091132113617413288557694567880292233616249461117225244312020421356846568519563009066657649804572350089091109520725290912632307786377504087019416034612256701249826409943186572268049780055683109407772987893462794086034877140986221489650746436496244023465178134823248028432465766383618854856001834216462307976868236574179205967809867598312918935499631585365996000220360627303927475115670013334176717459519061983127533894982543576677476689786111268098570983674782752621980608148008957279089342687944428437719231238198533336039873892417454266139280550692660435455391769949169077771401868299382644967142877756968441986063331884144328920303179595966588606905593414886914489166527512273371340743966839369856087644857471207674716821067237322724803325009565825791209553214713024860268859979763059686162146476836060488209431979584992965183113854043712935731477734319068222508006253155299753297897298653342917554046393922518740047784293691437286754659713984487778887233093415692400736648087772798232649599610669680313553205836291474368860096234253635650241954880482936632720491456600916938968348058182801527541653406360251762316348899458810556008654150055358702458432702689163178249381025720113476086392237367312110707252370724576080199116015283880989797754502440922149023199692114005953989196178818295250117782565356555531124187570703563555001147997660121660355145998997358659098544181778852433151597440099456952473353786773046152150260961424789982829891604619220501767121664383295692437016683381672868463792033916046268155562143021708929878829850309332471098129609431475591100230598520133939433007416185956683624139450473736562535301734702221120912097300721978581108296011389593049054529018074239717925533026243552709189029556935116550620303500578836638408591435657121085279737635933017810649213812491085566423628081591360669576004486120467962850459647319334333941385389321054465348605730999514689299095237344790216024276910150830655064227174966763992732874094495335471312800679472595198333758536915204886840632728067010005492200652520615839644976995950249873587323058484829303472176651089423313618283844631673215588706952580154997487808913789942448308181428000261373132017828146036424722404421589039754078668903244789504484283746261583053188079089857958087555484898878714307310722438947469940009653094783802050277735225586694338447786067310840943732704761096657472540370322892596178679157955632842330218152507282455343038733136713739233671942680295273319924315955524727229884747625871053113258442733548107152137842164732788098145038683936408608811129280658753057406587159361114003556437331931763263889352009924590173756330839983053558872769665787231552405702356259043782480521783474900340612789745691506473881091728382106414406780356186058088778967494154754856722596829677362282716073193733289359506637830440696191727067879115492802927428574900467026791351252977049667469807319013636121136883124157134671452218793092985425653208710959927369896006553342650965874484658043490329220733712384016012068701419564554283954506602808347926537393211962264709181624044510212121223062326849466256020678261285930376139712454973694913260714981094890165936646117295001421546525297087137621855941287875260932157906696688888159406363097130166276576266800568421560901235540296126931810119276391681246683322420847706486307609769973879176661918633502696212683366749470797988266054372984076425442935458497369550198473619569359430609857786332491658037476650625406782877930944308570465053127438596098717770582707257414679421481190419259789671137979725197274461725011616386131408115213645551221323265808421250785995533065666453092138683477528530093047463398586225307736163490076251500755412083708413633330188458401639427047690748448062239903329614190629488897944813575148831793086048262448546965619486471751414836402445405342403070653394435268662828507219929288629255774621671877802234404543539466980650721113935584047449739888595740875494028017598755059568425684059112224725853629862409761763233538279124227440072205701890092297915139338014478981051047325174858141115651598574733035469148676191041117259004358020219088245742619091410529229178968770539830593225072385714506867789307686128094919972402400799242157666425260227230872122074962490313243964668589405190337738600993930538466029046009007927587234710403441618165457180114983059665234267358044675526348253243180277571328788357320311147729755396601818839027778689927175847923626843460567544355544570568414790872482721759448520149624864682375892623823813682419371028327418973840483487134300311551402611895580036468936712039760282904959171301286020972070664904158244840502217175702450058911010875082471502968789795473325139341420666231408006117380499611003925888541565505062845601099881856533726623021097901200458034260836841724599932332481079984199997315350149026458243791281176251548139185940284382194309578554655368754588483483479580688946066120469426205558926764640561689603300705619317769762326200780000628572519538822838312137737718483776602321059600678318163642720104840110786690560373587093698483649042872986364898258638960006351049797203084960050175576479598369941892941220658260539062614933259751242967065585818466419892083023319775032683521188018970817773053992854985738522068862259918997762975533166361679813101003377948438907856182046497302558487571526044886026945343726267276363259123923482042592508076525186299358440861167055017864014543561965001399167371282444381406478765257999032122844998551561613442726195598053794877206886253640598108823175254005843253786161315538038785617589522688133806244834167278233689305153435186006077591525593611081296494791552392104492509758446792959502948370970730729147767078767481702402681503054546651098801172790358442057005620596211152995073411593644321157202193937140829045735534074543005420253039189087797936656481321205104027231453164342127395728391952256223423870953681686534539461181966523230792267595728161629994275227691404419229546030680454773640413728591051920787165854575436055787502018589900691543814576377274685369624990395694766887463502411413965807863946845937973306712755991963016303083602314021442174577108839029658348327347518331595254121632808968995959335990721207326474355294632563141554757523812436019605961219964409517497691789553526145762393526414604311980573100578581912437283954377163754909773138247928055856994625661197368395116216416619909269545574110152178265786822170439416123631738959836270143067506094022137271089164569329513865336855951333909749398041502461483509138229334932978324870562070095995355861210436512090582739957522689198327986583372794493070185362105272598041023690846586263888067383178005611728613423456446111281318781480834318723884901785292770474645715530398454457048664315614885092586735454061819600892904500684586628032404339757683876959501708314136171269699700952036276272523298926316187284354522027980964326176346218778837610002988274999544418483046432967005630965939494617956377661557021058571667817419576424435044184327084231352467093191395547783415647997290272202287824565564995982983219922510240041474181868467117026450448578101496561360432676194939427558742604753166137193906654223891105268518932392743990112514511435902170448595251902143737258153661919873672689127965212746908009040099833289329914300437518033599826337329714321148045040175137733309181272174851003431202764247854548797621500254346998160262346839787807214738367061798096970688402710037539871488211473501196882597966113937157115324349523154257628621481813196098804055941376620287413138644785303670151854382053021097113021512431470906975995529766911062035263510946333309401266431819881411828445749261111698739944816305254331709710637532747103299835488021728680329122765800858993064097895801591012920608665031748954144941619773705786059861998813529998517663598941525240097668104611764329057999304142832845165183181478904566060733424877505488662847070243615198919828897797241650253461022971376607052832638165127193191799795151859333597303644514280195618093614322891332903294184411739077094443857403047521457538003201075052199341447912801990190017153312846089573167620628870109358380290318364922290941586209396812349760591626587450799886212094076863242696232820866012540937380602753400496965511510518461555342757031875880978004619400067263948123669794949662209783027580083045729279039207611878507548603572721306879603299732393484718604726771734698521262487476734940535836020174023437413283609406510885013608782522669303142601525109562842108010559934374747860117688284416866989875440052215159134342592306409192394461094151177709813533038447776360639312616692419432104946564767188507589947072935833656927318107790763478834438538985344861919873416761024141708940184813534245055431093704348409707341836242571500590573811565267963518589267722262743789395561268116820107047148936795259434236220908560911212451903764930595322937935971422627383866678584311508275473702123323076388791457257722761802455312604624949880028355625336793127523012081087815055830016679162020746031561584903513211192363647140654763263856568221119619855162097835649198052225267584010682654074373959794448130543220213611385126861882040044490637273724204199108612052583481112226923096921784485745450541979096947383988317289244722404024921369318862978521921733774490983490119505625998797796998650560720206140343496984970459845875001860833455335341540705220350747844599751897202679096756227874833070627927273317885318185471906538603315610708141146437187400142186908895377786070092567607752825515730668116605581626308571645984090067667186087359409463467444872196843141400905278578743047241332027105383698320563079206853716097242344244847285849094894188593124974789386831415099348660242664822345690055169041692397043266842578101821888426878132493949609776586862205009808914666052875755942504205375300451689171837616410336903849570809437808926869014525026283589431753017491306857105549696125564696789891831726821635809540491287114612260379103327904166572892744819257424371508444187885914856391523553244097552478025554826094885574892596056270083940498630061418612373083910814134240984794832672778127498448601005775628779696563381649855091858617278945734482694575057400881478242270279713567920039421930057660775797427045490771271810523748093017896956000899627541801360236543734361792942442830993080257980787339717408612849506187815162727566287211916468102518802319994095699662674629811981858073841829582149463643627520965752104507450198537762814653559751052410131341054349705366815575693604220706991607759157255268817469894639674225411583309126333115260596121006261964057609231410806594832943988759178970968540200181404468740219192836419675548388818255366219418726437705621874405292673823642586880504163238829675703055576139824036181305497817218447768999795157330851650764858308142335484536134221459749054099237860923652481706235728522095265960595501013304131680884380438230414170836557567749991724273002846271989737900299184425034406345149204367174597877115653645057625714824151514922421005716129457133417256785913150193373535124022558386976165039624902488959554906455835898452161960018743899383398957749113694318817615089147216782865842593687385479228424838074458252999190764438313356285896593757624718752011772175682503683145338986150805869138055593688487854170006999689927034935620227214985332349137192575635922724421356787000303974349065721899276462809851952230063672229604039872901266405046516903634373186827684975747285580094154049322515243758238875765147905071802645319442242194625653857056461100404736616833241969107450080064176312567981256452112842425420839234273126181029593063380006718441493763694217335592880317354875422259644577411787478783575768627343641005459776337802567834624191818387063232762163969892330361831116966844612207224781897187005541853426450496579557607056145030751856635430092651480706796497909108762859560125706151878556791949017415333613774502302859582201874623011697129411134929628199386167105277636593556373659575200684878125198068516432942891736683448934141521784378791874599907075350172241197816599118342296189276863539871450267261734858068459969291325248717482693591652805445945654978284759793303310555426707484700987124241909616426183502102466245015493876260114226958217461633115302579219926663141326783655256125832808417069130455449037860885024698024409557863260992885961831982472990550535204266396762327986306026131121343853535205105582581413018480483368192011613036497674712392918912658567955638641297653868574104611728420194374305609552101299884500916450161713358367760881733805245355308489990782746010563174557410389050340070617922939536112157277902119341849854611987178847232016357873579795185603842902752273743268947967492447454854871214830498145595303874528596215917507661624547614159198749745626019972162219846808661889945016242632060992336184331195897067663289580903718754920172801701633979107846523695971569387367777331524209028576819731008531193845788999737989217437283991011089489895964489346252489788407713539045923278829550026884870823677739762052561337796110140420447789679506864464557337842870641270455641750438406027709727571734938829756105852232978270517753567618083542808011994999210039270110807247878327731506692329170466796136391027575389853362125705798645821080521372215712461711502337506542554555242590748222907590001688370840623081196984491371275802564831878410000095201590718571220993915067596031052401777970052306859763016077736150104371508209410170235185163737783344246877331420905978448007702924419917032870886956689037019060517429391421686434506612167804233742172544351885781058331820989692699284347723430633662044399840981815422850032312872255261811568543534835652929757897269621166997442084346407212002113227303765825247172925372443508868761296773152029725356212849410259760041739450051529521778224150983630461956295188124119050213030580956034189941884899878673963611105424056980999274422790803807067385142622333501525718299176046540282160173748412226690638269157330981157180529753772095002846441598326812266086924492358425715916179175267558000857596621719540449799306460570068977523461665808169960920310443412899988430312402066735922395964992309696759898374443701000733287541160927083718793990249404054822259505244353387757671181403186711182863822607099443298165425841067444669855157428339830342773534853159375158238025718008306996966401173553105990924386703200793059500579223625016447349843111879284461237580771312203343776952006188153551181329215717297228995765098155946553204937398265129449460309601785828124297947537698187911139370353906356478691081600011250978565881109150205807413062602796613550441803579299518054806064916771964380043622526949808975437691512358401732849211348061552548615269406378984374933923013751778712054111139165307159404331017609771050233183639142254354321396502146882862603030694676474479244844971980049650658217025392181534731385125390452317112063859918562111107765574142433780009612617340062900498818747065688878634531912971659350021227904696115780857769981267015746555017899892467653943974897107188467155354302883735681263971626647194098448686866698645334428520671994019971441335602997629688569858303156415293587767376791218963682956523339454349397405673616324454641444958277743897343499646935963990085867789751207711317360651123190556456787791924979405673434418629541078045679913730457562292855417252105884572243359143861740280546892993451662910504036655911629149849317129269646632774880810545755232652881846534320280496297272751789527843179854153272491476162958252271923464507800834979570437581791295926343064031099159319473632124294314953000054404565019212076109945878260265803026982000972713984352401357592707204189913042517693985716403358383845511240759918512598544762878580715562940784993633261307656507586988612065045811632006830956103248292972482054053656547322681908944830849638897716405432817751288236250845812236387647224504919011604356076003725694900380842972531391408506455090466058279905110071618520555761334437124708897182729497655803661562211720310539939834298063594116035751386077004039577264081651110840154494013452539456307294841154029534437314527958664620564954628727838181589475775088728415234339383166568574848087592873577099864666807043390748836279428081409526077733252242349511619074106087278323307504427897291164473865046559537954362828424107179038124288620714658704133489849690065116182741487627072728620898671271977735383635369334636682903053662973203560530408480479421099611479620619300690652536122085113936460029549054391003458437727327836332653746386718890166734089003122977006692550813702154954482412274397773584929476189952126700016707768765808817565089784633945278983704778158411516931541004278790585002019845322812622817488490293327118338763046034629397664783724933471693123045567679587279946569780537495867564227078604719161949729772728479673293738957006631515129436740568464163524028450888409775566670660873828864286398027092303912384418460066337133975773557549979519048498830431155086553751839970075893874485282324079490058722886263653502516062747614546430827633547683503219414873546548867037529163626197032548774981982933808842903119854424201316875931460518558602680331458861879506521602201527740365509507399445194450365184170383426265721018921783632726584086320413285994250304531792679461821961164802399937795543318770971263565935560721220722389225094868550448383571919511662733749119007508649416068684952391735023472739883592519852633271740569134929646344705334839844952586679564922142623561888883249280147467775796851253378285398961809267797723211491797551302868264018980692146990013179309493837581373940230234179317253716131687227713352653811893808568813573815047836927394441548082582304683073175570668555813776250430468052002464872269342839333698528616993744647056866263202456138546612112397221597790727510407281462955043115211986019208973352811151354807858539049713764225266284157200480057031096968773916697923765767006981207994497797992231385276684712706064152204461421853842501558420807693975770973019976355915196860119609372916510201654344571059683426373371313555326244128853889018599903452607892425221352529016004268623627478878681398997353645689298888962634287522430302992469075656561712852241848336100129582060250942492745175415219267887083121135608327670502195708969511903868404778052354643048007998686241849125916960078423286059878466202411843230689059545276465440615156585477201897899533464728458577215809954341858140808057651846470489230252959470069980964478868735419615964379737385090209027888418527065043402070153455104032491932638077997533393820610296959780444235173290304135283917521024117044919144757281819171407470141712836117821914299556630981848727787624704400115042034540617801587143305095324083099865877620599940844295340285834608088479321504769960222600604871677598330713090274018623177881661638044830442674274449266349090695542413161143894675430484999368921609748811320721279352114754923119514672970654519664807171590499215884725531590805534576233064709095039554684953050471273954734893061370232601171874817418369775646825509465729410068610132707396268142452201466295946426260911003836907688128247319727902723727374569280909123874452400088357204581653000457858757974199555178327872809854660255734742409013703198350474759491320623602245744996373298653510954627792392761325258117403168735042167500372338109280942183512050984204048474243069609119297512706913157817787473176630435078060124824439394292056453771462245603577830232059017077623872541565489457376069371510536150088774802561458931127068908105802259555648822935368259660471151615654661968881702819429797433844321341387671580200541670491821498451279269930470695727922907267735779700149611352239792201800306762274814795361575923538911065255595613841387767322347103750301579615143525629279567520063480164377675805091557763930420618969561713154975744509641119061424947392939837381481819195104843930283740401472636723424467534275505424612491947507318409543260640636148699323304125313064958142240824514145949911544981556047811866624552150156050565442233145238616972550613206451015644219609700399040874095641102357174402646001105713433316186217761038968539067586378602474664694410874460531371661417688042583896451710921083928562843324290528352541779855113628884732657939685099260278828043785696360694964530109291235296111305206328130098828075813173028522958694776084669720026978877342132303709966198835108130416692034130727549848744575772819103773272390668006251354974740770995758428111647537219008360641853983916805398354338044545951056113911500959793760965064831064503180502606698400979326050791859809384912775454131859606873248114266617346203087807586497141971289139061879330559027024109625632087347792428061143598852072688515119170108834082413480072378661462345709209940615040327296156292311818275796302213742554618146518488232337513392117141434857811098268971151372156726026046738786581911582849725910270653754170991540951078265369074809502216959493674020197526912859574283902635929579396249464942224776757274007434968131673979938032471516694205997752536501836008205108638673653434810767678362798652889980827912157236687186004922508158113846151096039421152210985219242298495933670491952972654975841989439706376184791755348018320182490449203082939342928314476336189776656947158317936020413951384900779452242482908170948504207565907556285600267798696849491900975527930818008067453716948053900260611639368144039399917112753375998882877948658403586609502052338408588001219244025286968189836754745594904367482832149789387347699802319644793347346251794029302937680044041168469711191968071237066123705420159930618653702977644415417266729005214603680201547090518240419901442101741624406136331364445031435843263345761753163743433830420587939972755711933328293037403721211232047240114297405619014586389518964711673175054194583185870545251565077759050653170856789810007089202808096785325288498623532808183258138458710041225164844596094173382641527957367082502446673154926083272514685481876768004897418554088061954015529691524698404574344285032142382146863824339404585680617171772710221444801036303393791877835860173398722743452891698711529660730799425649974118309533522912486417274987174758181511909145179943663464777725735548747358903361739550847709481532636279665741187768051294919446460838231488692876985177560473292429483771678134747016091681258954519031818610153510092404426421895098740969028876370381225101216594642081131623834051778092335906860151088350285938464406945202324153584554647698273848193979517073976940583186896451492668841046668007508439984499245408871711960174283748290562317450119492376318168300177496342460973708138661769066548654301544296333561657552557290949874794152589187401187633560661637745876501086018590388626307159531863287966304966266286020170518460554460804551389433785649124242997844951028465441758233098177632253067256586683540092266018844734929824357861869283471792383386459758137801133375073193717724735389515579421408184417442041167332965330326912448043042269778568679345255421469273036829177865347638796984619457206982104801413989112867881151247256412459594823886236388457770878268389052998178297513598508535306110867598951666330557125639906619411711844034655792644915184322919689663435364620348737709862052731393714335549141480479273625933219339401496874987064649025098579043005894800829343304968353640267067156240136906245977066088631348192083182206466650126811606501038552372247174140271384960718293240099972402352197659815560735885484146397850435959250206876057465150412162800738129446929560179109017455099024891488838338905397286792317500538565057653043947898476222755544837275354060908668942163966455004500087973584936404271724091243468000712505088831218049355708896832658393631897302138548915098216032471267752577285315154484194354788140911710954704024332663473420003702917974101556267748503254637676024248621911483049715720702433109561816589768810919593857619908307190542564612668556778695471247309989159203148380595103440255419908765234957627234908644638855427901210990870159527354109348004988690539516157267833966149318158340069137594985565396800188003409023769431268860805165485757825239320569942340934071169061568819591626559179289100668771070520562197986790479817402821219595771797014629431932547381588859892762902188498703254211034180721294475519368682387249508021318394403990790119494322773243961238945423108244345017146404079857132625966383653384820124120164529927372093445057716097256368708352228653835312691942245550889635071071202449940365158587324502080692178922578437353285941210438530281818252986230131184440845784971365253419356833133003613465680274742190490373866797345130985990001055331896146356105177219016354535101094722995151636662784295878813045659309077156971106438071810685423285713989617278155980260888030858516446763043666806012952618452567657301562514693269575243888570909623345170447700986117953800826188317459735944789126458944137064062499833529694991172588113714793062191520248611453886636623299850740483684350401900524483559583240744506156038298543029801538150570528731897820334956888209404262663123671000004449138551836264147860367727223898693853102038445642546386089567674806323284510396620317991684384615274036186497478023592901105239981352071524488241816089826817168373826920010990250547823961119475318053706848116862330289581403355308740357122264844183725260744376898526714398182143136252180922643292476735659104034636190721248775806825579530537354072050683997562484876441590779600158771201824896253427454904980777156691558461065517692975484835016446347207203028791727578915305900397398772033934494542807933408916657048065804108477248378185636594436852535027721142630689712806768951423968993501303621053253974020978516717231347009176356393200266630900293370182656068285612458784327596818970181363085956657759556490408402351170589139078582034152715983719037526103151326744017344403356499051136890018283655566034840896894926718206422991508207154149994352950023404324584631539793531094974278205878567846527675612380156239995444747405550323633117958314895463171388821984136227974520937807454603817526837168671952372036054958774231574073473267464279923376585128918576797336543557002980895512711236791709923575574558662100032237323442003345942824878537278999431187547702632106823489833268521181754331822347460885157640488523691535853603243852371375278075716721668526820196218799447978039353049597199343099720272499332836531781174374361372860977954303429499081537187282943980232299904704353948718560817510797822291564477821717098782970857409578867436276335122786396708512221766120370009249462879042420349887462562786201201987377542440886152292393296988788400657248583165050340335807173710092185994832578088425814148981074477315505591431591047075804560972413908470176779120815524753980439291081385629733746481389618566498284819582647902615340542803574438086806498712516808149755050622011686567955251119091337036011871386408945868361271685816891703836196088009999937680434894061440872090127132889622979131222648626064980616950681584059251175730989889037859127078826800958089559415811807566094595682779365823861418458097158541515983316425088307704107990445138619312776770020183664447591503149241597260274032793034009161725072497834187822572408199636342946281054667992468948015460260072110910006917217527075085673780711402024930080043420323905489613320324895119789445825603363731777041937220833144320834908474766629891555756509102472126936070860272081114615398698241615895703695387772011653357136488656905663255901804754848957522703573389726702416437202187998576703387537263298951303022784843887165296589607142032010969871103955179313757579875140576022227460681073120058361221567227479238956811917430660172259239671296937767669347518626749346307172394508265290345690659038316548304984996317768106670458088567672717369671297824450582535354714632823877490219844962938870076274832163049060969424073143116989998542655090773698477625131610497332224877650000246183632676933622748301104897131580873276940040957102501860333818858527986506409197847899653949137245366937704676523138140042622511295787043153785469943805813633282980990465250741235584037412235589560891337070332686989043828126333415114164522070910358874041285705082715489166507129763917639137515419199075941516882240969899629996312679932244750309306137601863705101033925256584722850359666463512590245004195169547664763212999213460925829411653238062625023419540938114325855962782290229304606423061154043560321627523902635731978835822429977354670697720116065550340620428614853877215790284835037927615691274366332303374843930052110622136072260182114945979057775439315052253338266964648918033368261798056020278943269254141205794994162113797793792463909178583594067970300511030243639955033214941020166050307779912530524087812086919548344925299484845629693261027200896574336065424210298258448494894491721278811845491065414264953858692942690774397176095464549483931895494200153111843645609858522236180656079682930139476064340588846213981823367895865155192183257902848403642799654663989685913007014572648939002874312391214411261429463817659740045256436403644859164267713297695289353630724615204776223728152974820284406240522355055959289756504624422098664456950062702605126771139464532048615804800966432660874533594753658343075789262748317276762830660910040841426285201436468726863876358361433254336918593289088716155014745490574657520125871804271471118397746426358640224436266501721563685716791127842511209446381157326863769984988422310661855842886604595953614952142597819861742840282878537933526201144395000481905932895209366479719403051680165904713277257225235866382536381297527248106516973597219277805081438624397484594494108892445516897536314065237992987852873090632673913681910291963226208522877387381786678920355827138948586191384900334297058944286199236933949469832589204563596407987620440533341891607597991374977429078137448043884441248884804059310666736319675487818757023786823796773551719049068782850936097235257514139762361170703772606431119971147612267874255289671057690996474867247454758604239045669203144024736675246396920996881539260430581575983601037505583550420369349694834863413956303368479764580271149239492545290699234191044191303135626916950801366780629202136335086966547698727673219459629535152189688962730207431458458408069978586411770701616721639624316459621864044219559371515040609673953634369876152223538361349946571713820690187368197608831323884917425717150814491435250023285729319982074703877320645951200904249057427897953280597644799722677739640308973394508396654965988434932202944354378581343802265349393094492286995867935056009644437297781251633099683575690004164816521340189416509225985924974760204539474760705107677031926708217620611200257911778745358918185169105588571896505236729128602035556197526700982116651448896691936800118510154176220429700784433669414490908917509407370796968590052681399508096013760357457170047820155358051341834309776939018804631168892137591080240204188531881527450836237664728577268330088009549732546285526374801462755462763432164455887189789322521169057315989739719225277806825311557121141897100604599964875425476031936006052466511846136722687484704867817629691946651089659319152594299313436907307272094624010799897269725080212560676635017254660692581205742455988875474674946829220897146922198877362149177712815974528207357973215390550308016490925057048336803376052595976640349874164877419532613428971212735931219713977128354375156115511402721462946128185710508721037179344089264510524109178272574300227084635722687860842809280155786854513999893051408042566726389155465384688817293106731614716255942941828998043377374039481298117540752928315626428953543575208980466691068903768385092946019260419593425090647753611528397594249534505087232136289753629042601882854082941817130417351712044831209901362494151939838231820124839041239869092765616065548060484310045857314412937975594950354170536546823229152681702758682658532479783848332543391645035953314715827035150226152558526487091324601080737033655140474013862448067125666442635700297105899903980656455056496286795322261884949678127824475688032074154575407895490503099375738649145648630580532186662676182281765186867833094375840295363548190637010716810652016970486803173739129132980903256711261365495234220120469354741939485690700431475959001857517932472147958079098419641895402580757623069904123954261745459760308907957768192923998984793863923036867625761078419646378634029318640023053024992814754089495291407381181843079003881736775602515175707080508924836347372285957141977310309672294047882210840721603301082474971285896966857711900168095082281314291293374333565084140571719996956960590201067068395678204225102176412269315061516352382081178653918240908135868845890213817009171544134447789117516785760505388873966495570994131297581277203769310696693983583934429921283497965121029968307703725417359480945615330879536267159048974904381086747114241763235142448756374648241878643874025184854102085637042365823442953559377827265647876669229718003225354469612452639585620408462978299106025585539401303520381175782280797016361448266482412018966270389806694955415241540257123065136185971163838163500520687609008254254890697124662995107342186847958205408319684318739751422173779996410709445439736638654046206483449099930623973302901195295884040171833027873214081717872340278066341268505711084546791203583902515238190848081674932935656927853802394816922084121051567936091704126475515505135035672290289012159965236999074226695138888832919854752342186200165409796673726110833116810341726214534989633687494796904052421405322586926987080956176124072395320837641644636337295921646123314864959109589329410255021853364236483481603850407474940421313099401716623677354592894470928852730791023106917682292700393506771200313680249773199681159540494294435550356026874293902547185137612680772121380243364750167735780719938000259530622089133538113932960019241116315080205666537584692175387178117674668197271696809837582048798855842951125319057633894341178003433110336633208760572367470752922711395612266825113528133702365160385853966184946853068736162235295727304555033546221465898196713550434437562604064793389482609193292965372424425960964258898361162762585686208829381326678108811100569879536909350315177797890023697800368359729817631885987843155404765060885782258924662811561100584185260469767599520334443375292147506242150252004430535236382809974823313498740658491898837733058890473318491920933033682666260765024339068880116120185255302229889950892696368644594321640514553839144171297104740409672289012868986843446917683502001223288483282218028744893671379221806744320237550517126512128917329753847235606761777423789929549629160438774437417287958498603848492421203427364426137841700452810830826070653027044832255896548289855710672767971748540845925746548048336916455950241575218339953317340270960860655603810494717879329039163182579333492718480010724638073974694026690772563813571691628366935489213868234572256276133300013467150064442532721247921843027746049784048986349221486302636903131994634888327291380835731867076464696564203804266666754909196092156962581271826875958427050176158778923389239138371102967880470403591487909730271598126601198724587750461708084453644147361830481889966509636185093778958623847642160997765942226058261869590000685094440968757019412199138491451011192050803292480997812169040039358668859319218712463427218672088020177599415933199569627298055559934646995757666159388925949388158280616889754828931860254927984326508344658683734969029892379032832476262032019451567073532483135140334519188908529311570918204788462188174727063314147497211165488329068802432087856854640065151260385131881469986022030736240838767945077279921729834588609719245746878908214995096731492180677431840983789473438316373875504879535897404566574404605737066971655041537724436823492236008493027742803485950592588570237948907150578006033530645368483536191324148564363460389430495250150471553609220205271605118567205266323661639463270181410208586765885486941102215006751809262974390768435909720390075863001608319826182068423264302441544354566986707334075472539022264479207486008652422914400147220242059157145968810414891819918373395128600489165407509905251240328973655944104024091750816091554701458246753019318207067062122053207115651691113416181483001568131827444081356620398631009805482300048486773376702502756015829060039884331716960227800747321132894918533980608125272272923031040770864259795612471431450404498718185819386795716601145445518982685425631809885955843473297052303890177491439842295785546475841561761562327687376440188421499692148775081904381540199175206117775906236214020332240405639727241493879666661698156837280191193850866565033790373303384106868879445460515083956101554223679971815117321833215617550177050702759419455490753156737652022172973267511343402807593066157914628283265448739501666331590568047439470548747337591429609704474933987485321809528490433099610741628852251988873033012128650978495065560934485792788881831230443476567997228904020487998411699511666809726280188576094466360018758238778726255907302915639953137223784700587529813700047668694601334405826739870600033524670966181724625513363515600241638794874998036344702285377377291511759620259064510887933813065933050724473039980958545042115898975691508294194432685223473137781308858668059507410706977436627538628844961639678077356544481865086301757588692853372232671411240664835101083507602889489634912030020358659993395336337222397034294801299542492203467638543831840569339872068640756244341498530278163003983890562198067525376436785988651767730738874122943271302104713207550837084464544415599857817792223382137565871887557741747662138259171672555605350521137858326001117357137019888568864013647145283985338503613339395348029637625241819863928985842993683077488510661755773300612850496186144331590267023280534416741569689639474469925697112935274035538754813851020950606492042599067212155346754277589248518540020920269484256916441168162366933037206116063708563750264065948760833933610194450766808073639068664623505730393036240675755733758715595035262683261819341177196250351156463002825332236095306318418449860728132819932677002818056638196807466108170060861705079529680358970216988874730367464430235271753205902103747426017114996696125152796504956959983565710387850934403813556900121278686709434564950716416938908201241334366898442390776775258576423797964267379937564088075872501642240496370706949897718710813654736506510365118913906491804750647811469390977520518312683642440208204261327945680099487297214048518191823391772673206580949322432662978000535139357036148051585988038350528905747980543647937433472506521997495579962645592782156106714732576424879376389385812381893349003696833286005479766176504014861325636544809960065327801387258269502703639881347397825116932927367088273099252400494659784265056587073242083228655024606069975702236198881718319576075864557724318335476343473281502874270359379110705997188770380451216207831256994545184382582755289043698590075103890516349662799768434181859295846586571754730627949194350463131160842786697916515885257811442232762844927355748781300530615353612960142115474602252297982725989080648738616646474728405388663943933652535337833203463608853889942248527543389620249810062140635686660959797137626452510094112408998195792831267137355090451895295353198764649940778814398529666515618331793103818048906322851843747136596220520315157093707270389435416284661235358621438447211779857721641472430376087825032678326625659297111734874675758247439083214886845059330111899865945608697581894589211785968827920984611106032818841262254708785749173545779861628439100160352637876610858177453870057321494703619012580419805658978849448674821985854635017921836230696495584426931315382924353417441277610679334798879882379277994173311737631663781838148408013030783216562241687109272430610112280970825719718133107671188255826401652402414470124472540538753251840460753376611516749888197657296116666613522165947314373692061504106705830823561247736227513173187292640849431927061700514291705337951644560721420421490183061988185281176602804054300023503470570172633379479424082147175892210671520357782559337537921443561213714319266250060880739828693838494978789966686632510412705396776615900543090388019894995686054014958182893643634648760778781895708899338033595438993697291858929531937580477973324012785885617660733161360772169073443753028222094241689696495470679383812640521218249154681132067528512183556890917428891900529719703502222756104303470576232587346688739743680108279751074650730446511804560617908141982306530524447816530203081475083875505158478792434875080058369762362517970491057561181999702161958966966953565476256019196673828001612375148887533523629090338849487848087882724234557724895238277216173208121375650580386644101561080398731293236603359607435041567262116552261881860749453258483233423548345405931991851382382725878720667764418655030054008417228139190482977305061433113407035938156045102372104361078538585559882317065329550643844782920679928670611747163693535352949354846040045911997832575220600482410674310691436137610963702945926499350839382928605263681439760443629903100094767785867422130933868121205053932320936305414051059213264007991660444470373194553394718842408248618372897666744205508788845215744261155475724794545711080336019138093852094222126823131227569204660221173099096013651672927169884798153925937694251319684680893087306168558787469681527893721733919362955069252605896663309128096809295256843049512025274834208309818547842388454038966109280520203835550606132067605223357384727965577040680487374862396612904285537605594521359626119187302807642563730029350927486853204067290066545489526890372060981323400956423793684015197077586860498895855238375117938203134911550449840688877092210482483553622173908957162996011661823363784782996278300107475659136835814313933586948991802538613520054761894975006809779874368041788096441832313698244522544129275756560447303502572815149846836220988729394737971919196762631925236230799622228154804173706988461891088211137729927166368491623710897869696144022227840946058166235933760944475178865855079147124911809306906834169150839324969999908340296872619609408666784103039799428954464467307222218514940866518244563302142997006165488150638097904410466280165380424345070768234052561342702507794006405541213386273348296265767116852039657975990414586479283716285546571877702225889010867928353546638106014542688622661555633984473532421293594602011382914516817111431150553953769735732348428508168011680459498868004289155075372607388274957091916324515937170273854234620660835100485842565090350737201716646965713284768075970043172297245656574023336172161181887795487687445490866077669620172828676798582242574285470564228402938161748407485967085083678129856637899340233816468750922457765479097845358762536488538349520109234561279993798090370499796147062784513091536910318460429134837441363662739632179647735842674688142863484164424814317537398641807451856686057210056018296559383180300639377326269001584824514396806011096878070115799003940445862447018099531726414253733150763178020505779422228146167732998014357135934615509731102910468425763240838495805752014792445239221374629190165542596233154068514829950566526605581160860812172504795634805366455945699895346548473635850493654678436536346368265960022507006651006735911793570644801538466594794251491907137037765690300783103672577309054857665281738729275503775048111942676173701718475931114654769148647373250606197100475445977120892229443744008561821982573282771162627321323389618095567922995994140866749202524021290925965511615274201537870570448750075044023386649650862089684927139459128964065853089117858388263196672556839718819808483812190708485550970514181706110321014073675134174498527759347928447775073889867327881782949277267190332729244732157944251191478190093832966212187312487039280884229188057231569708793672042327660014729801234813468285550810844780922054384775092367591039620855051343414162910392158853450744242090352022059407176728652928973646506360709549755291403109406662414200754928233226454829953417301413120305745401609340103351407412041019983051093593099974850909940726931883111459649868382964157611829523341707865388847983682824120653795176142922717141220187826701100326810089505474429879224259031722892165224574154705764021038971828791821356075831038418745635872107158900315866165851572266087956108327632412295714052647661900309499705956445759977156626432739522696519340450736605074725647659588407623299210894541348727259184675723162814655416936529036694459505331399800121467006020563931705550446520725822089421881410563648957235731319868447718317742629136391185885230055010730919412337606310357566774256532946778004281401783299737362936236684650187931322688077019919320117158788271971502847554477189625377936685294414049224659781952812411925333869171774715691618304920753356902262038321807768039238860573076531661037235355542131489827379342394580922629921562489378153109744774183938978423200798593528244831702539483013208435505933772976670318451792572564545596637294700407195918672357466121541569304506298962766873800294118536981372426157062513053257597598045377791870038637335901335456085699710839395725281290756795149658590524968131763572091386014521587967787585029749619956566804868482304625587841579535786792999412839625036477630374076854691669517808207050797213577246724283460306887169858668373109495193931035029784539706498673786361128011074643944489336342945566192260329774766263117586428311820568509218850330631944476592616176452975122321907421585474811412121117069240689590047845071274107398717358590261613647165927901511031384887459319540478600262145074019831022942791875924762283834927482948446222083013503916034082620064829147010095607211749053261012450043086633334106705078789939477572772220838925100227316064632799027113135537194561615943173195349801249435396439000607307393049250101011499809241510025394671124154746605104975112313276888651614922022221594807930992601854804888087911204960950024927632783364078248224073134305346317303389225186788977676557423543015867476244153932476257163328720626431576274211866743302739526325117458973394109604321079684709323636278030966258691071986534058787585405157291318365676889157082079849822666568045266499193929227611085761193164150908522496256876359387224802159899852063584032624957473209118158751708510270489687218851250781604398197875427471415017223096997606110214637600992751279149260987753895314383404554143923091080786442975030501586629895126845163319133958302138837921082746113996498764962525494071522773141953643806626062671977907800275702188153971236147256354467830217566530857243945511266337869795344450491412375991333816358227161486124523871801100614502080311401424779189864635657349969299632608882308721033632717192169720685948517636399008072509580336996941460733314684796241402161793586848099412354295122308362611834789969511202126494461515663172119481491837109117310804885434281326770850781691087968768126401539237709805039399386239956681456794559153483806010787751126336322195231965282358461459360315445475313945471490559996807289168155123056879344322501229016085732865490057597772793343344372555112976995694313597371743974238934327434734931044259031426006452108779462728356255360528413077630295630422449259163798587043885945721188495522426244341214792036482600468946574505725673926485051833497068981089445615332658705220516309895801542635949701512851493787741124870330816182635837942913265430524690583531247866903034416519991729100692478269331183651386378320273090246981998586846233542625740272575828265033467779609140811672516379711485752497695698438807897513459546641312046940704874617315371207419631165962222933634282433826089291458049825807957823972643112334741667512992288252681584103164970514627114964207301533870714126809812927315538294674928041116079082315290067579448485934759407838294884484870224227835495993387879173246192793515784371303897716151902882075405841547134478432942521763938184894983772997296091533006416006360891998774255280363290865414616262798852524895980998507903891780915206250387249942869768877350774895561472558952503299263199952625713505549604470717158229043011828530706648489058356534819197306392687991942964516071251817568101983327232389889099816386449838883895523170125128922707647456969443407260628308659322520360871177293637229300341052805125847919502623839569763841246994978965287831502588365976245577149090135322365643702611657490555620248173815292217479728175139793783741255929179636935935694063174835264493292911669541733217874690543551113306282002543050580959849493977194407666026642651186787390515121892165280496995831741921165688162667883928330850261416594513524794499964030958169253778103662910080675739304131116207037311458960163265853870416967447892927807598732887118051198185913173317070204314532724972022175436149047077801184194095668417644722082327767221085971015799549722763521941452805783676720082810332464764062335122591485114664358849627242499663870147440655772423887093313998157713015786015292460222795483037390136806346613789742637192716948599463917907164761079305361395601355039654801824928052992742903691129569348086977347417243387708605198760734240090737134445775133774795763281253533775818819460902766533474753698714335847113997697356920057571293188988122741622776607118796425435324048021990871863982559127133047828269745620099293633769083630371772841816112060214396464920743139402132198663951490051462532993525748821161521921874677733295634895781198408498841802216286766020463580458025006183821439945790641563145682339739024885232959565206936176642491416436162592641598693759724470192765008661038851751985950025521486074720035662634853864575333297514344062335918061435868205530461326472681612094156133208154449280324466168526833827237660455673316884421017921032270513108943028837769250546933410140435273519200173214734439165349829167200203217600739835686801423038220597835287394645868207885887742216733738348828500930700013401984940822765457851626571899735707688696707301930831066526872821747869020138216795132356016842884744687838832770813000476515000718493847985995324701370262857823949095544395680925245989913903390802116686646374497810625615857389617622638535944986242875994807704116635209586890425522447539027889335969974279917594399199368655638504893793772955622304873147747729725028690665551572446903855183900843423778734611226519259265561057289374662593399598722248886670265915990215039186468621557735951607708292342305491711044702577717241866942951524084057555815882127643629869490909860621645447857830722428465442047099559638625722294124185526185192009729698074082139645153327765860464492958275500216491425045885620007396435672183167633549094757921167119569518408462526839409519077679838918593708813913608973125617881090256624399217695308745342785106971419393858579121871374849051203700867695373282082014503816558783265378921120853229634262407296356433784670889179293566817713387163566409347999012789772540788574449894969041707643888202078014049333879523090080004087734816718645685077494688513739828170109993800031082876344923319550907183835536999086782604446320711898552771663218650194575213197117650990705318295816870462454371041054848357883598929500811432471707423587476826855785449792074250500819907215313012276276003121623957475319295659231653991208491332864532155165433824736536858193608974902717078565060255387781034900503064655418265664756564077056260924838187320906931978395841883048807064575989933326186455196549433407646029556967053810059345940989511315556347380881637476290759946295470294057272986678085676621059692045687156494630857142802633229144629637108323525574969212145426892184969893439715857554117886880596390668403033536141335196115202614127483044496032876947340474481265443046779295358144663492310194079130748874769158899980979519990919917684839958002756457347723767775563777015268156620326625617594312929526199369802095543649543823385196283273546661919043821869348385497069815400254205242457660678784040153794355035526716172513321529667267904020350247088893554603763566158805487972058033009378330600288964606812143893171741518829489557175921643023997989031380191948984337525041391663332874435716345810609723991825048463463694366487968335312938622179808411309170106150544475964517888208396495292917872532569499517419819166763234096207708068198571417315212482764375062216617326595089558536465816212254717964880823890679090436908577475907354716219336254151406717625383488086881908228852683987706686342305174713281514108864563523874813943713940466745990407536783899385609869617115740004184909121612763512628977239813259750895383629044206958434635248623275504465007240832405692467701344131287418295073230343111119546262947416111423843188103256106057288975863848216737212162411023268664961769427984001344362735224573814777689787203429502763198365360840361122185747154350058706663770418657563845183124504310504068499102415449221019442378121725467334083521273278053256104053045942950207621809388433091092397059289453771042229656904794987227620522148328912922193541728959119668663233656690875539594824573669337111140226709294156763793454925869521746573563052594590674521269121913835425060261423857401078089306553354394916229007434999286982785890694610667797436923046987325314495363757694591134905353365358495668372159772741046870668815180488473612161834951158102387150575160046238621413730461314627258838548701294358868872641529669639442650938293350885434520978678054374345433077054361205828470917839114764758817982744833436231312488730360525327186786300491037461669554554296833930064547742251258424153519151535783740464741631563498248167100650954828419774000540829418566188079180314470197747358616999032470707212443782378172818847576958354559799584088463670469971883695851316714785358148878077391317823019681867717826326706554806756428244563983189135139943080751337188136044643500343498642008223259503403404877385269000296844830108267824334810492767071977221286975815112859693947430351780509291116691386191767024254949488161048714261787208321282089752421823656697907063018432576580760332732046001546856210393536299502784907762333397625308354378195555918038134705619210206683234145690641096154165763603787372487726811522756656461252475707444366547818483025874268529976140825574975730229756959703389545513906018859497107805270767626671921544327554151031223713723423178176385380709775327749832648149641895470436141734593873759492066537207529632715207009064663892830108007335578330672964865719540537402865130017826225407748712237121229862882765848706740333867285162461905232094714104874141711231322820113514755448665758437495412460666599826309079824324709483555439470452194554536457830840102689098696796479883766108090493817546402761132929096214347521584687444749942065169746416957631831070378330480579292874886734587757455737677522752097545278694903644686335464972842958002170656478161488963726000771625329699769253566646204458034946857197537456354092924113746420375559273079287020343728424348755502287935175614260376930934771934682266836835910248431734979959438199380740378819563471774015372874438277549183273086717794054372494279302600719263456792703448867239250874264568769441062883980223606744313205591284786788086064462810447055009999028891981935095152786401299253956148978815321184466905981855935941458117195084777236115515665762855886890363237105703685383653772868011974672254305535138724738024027932137933762421017076186428758625282263288511559645344369303880751721592374288157010435813620141924772853539279869095696289523836732176553850283740884952181133576864894923552972308733104221453915057633724007862153106132158834785818936996097577025278314247763398723825863391178179415599860629950802183026161488746307177450566853986159301730909908875258151494796954775797829007780506232897594775306919866596364952801040217861173717776610840133061659296519533652472254329495217839251322128377559249189532295337251407308408184514194561374514701711334531198630107897442413813620651818654614726825758329020107879610122701418741607657431502357267120936844913343473364048544829817170706389189185199086789389606258274915536578449805869872492433579644175030761740595936662417107010124018873949355386088136327566281665018071210384921837610075254499815770308420302485769029891342215961024582979462492128931053967976437045524320854241962243682636410237172240588897177032840446651365015385909213286323127715870216102888306587079257391823596085378699876884995723607185498965276447193879533062164571301735584051374041830624992815010114310558977604578698282213602650971362382276711054265564097520299862633756841015463069257504851447701010459492270540864963622322755729649375487322966119676898366318800336313215479213616174867736693570685162982968177078786231089283739293248906804831559333681928092413390934001731261063718398733224318159807863964395769726967415397696976326626392821491489947520926688193285641076840248306921988042325169870629610663836106730155441758384576403776579846821849663611727342383747963904717186502384097013025627128168252533885059981075167181291706759229483332128745173628457632822847580807609303179200821875705613503552079699591032298875691944411897448406646575936035139092457347028254782563254871476826717119430371603946778675802301773881093020878963190157387597122170302965821459147963256991704188637004421910472592705587643530482115889427147148002978168734833185975742523291794896641602953563474095619743210618465830711114254250493261709505598327649527293058135406954764037099007154964922144444090167201558569986992972755566351548085178344936550714619006399928443452496761037113597685295939698625500407859397965460918129126729909318227024112156127004241564625956168195195495842821787820022224225349170182642982394847470236304416532937186624947851628617800015856090929304756599410181567123425406622564186782904289810556657873535505522008885636089520798729268146993207653816754095912250725798532133222865020731204101429805076736702109429344461388087886764492597803180206227006900456447864788810893181567891255643119478811073936883470182855086719665005855049254842838973964307627194031166679894237337541729963320788771827994101103400829587922178877700926303521168261914465377643195682493439900955489709592749883563438152474965563504666145292883066585361771515254654296875430917039813359566876916859742271225005701611080828161633575849512212400942562013013799077584435907870143220559479588965526947600091910485588356072419853058540158362157204756827337403219861413462892893779225080585303822332076167772530142018206358473371454650670363157285566614363713058471576445518759258868879554699129272373350240005934739006444717143679786947640142539020315604908800173443237579097835151278822727301924725684057945690683660558301964498123122698432794846700811902825552876050711119606061136799451637981622652946415724631980241297869878148330961624627895594508992302177299994934733567864735707999974742588920154508418142711575370510700423249373678041645625931339993850759955963309233868611088999259554297124391720849346151622175113826544652715460925770728492170387662026491039959207853535392270565076193940916777828926536887740587627925486056993953547029874499705310710363019724165814018684752509212771823221425908141956166383409868685313108749000545767400551391898466991522059685009841831899345794278843660475784813637747127477826676044175321589524117319045551683827545051625385801355678078370092161694953801222926733907182631159098526106414208713398017142179860400363999586731214224281205413024953782178933706192199106373112759919459968829668240270445388437027142387225137547694474606510873783581931953953298219037458091662041556171523253519750978551208278917432848397674114086097806719570710895537263413194280061743729150779718055493895044616447110933167477838190744206858694232453056935237941959720549222968785916614971887834172552543282469039249452817522979489667680092317695354368229010738822264252495909629184077323753762059890161559280612163030000077437786196716430788192378597175531569687685584982902914475573372428506306426171425574434171043650247514504548165793417291687885226306197131502352946696553254546825050471201269619117921059601899970879043152431023411263300076344071441873042003991484536747767426660139580394367105312256930351974664641638256836814689653808495022844329886901755988251037541381408332521987474962763593363109904565458649020272772459434646086878161629469168589407973917849007653658424610475530377132570125865157786420207215132011498667756789946583544695828593974717941065172221792865349725491748860195529075991473144699667115610370959120348477598929849483347604688650018816872852594558226829991139614178276950730958983680530110576451233640051701681525274611372688871087223325558117395392408284871377156655834537792265076858102395601602656678238021063925224309586823858640462833273668349612881316321360793270378693502877014657764184959463121578116695557854987275156737108461177911620078303046745273633331617379633823715732718570563149161565349456037296686921156055839511673584947513883169330633255959934817180412438492615028630010019474707332818867222398036897315047809682359954038577153002158352648834035591508463234580662958091403486012070810432809727583483103846931887497753609056331132505047011937035256995360012373886719905781558012536499424937021361546667712142373798366995908186241175955513776669375742385611457780945376383169901585882674877314884664765544952410907072935472974659886270951261457437759397495126969712899373976102956377246679563048622672042535909073817705837195707326054916581895512639203176263405005783354560277081544718238241290210580507319121283355088657415574902058970773314023182016234625044539101439137030165898567444509472330320248555335752347866114832419015056754804889413792982262338742509754381534087933119624644141731003542794339440108510307357529424584914927263490733479426616453484279391911323395195998021392647163141659690619834113480774228111866027450455171393332261098666580504178511397136435709402415462017046271250975508570911398061493542135632517276278485187131677098734611278337866247333539136124424703997975458734104230883656489659933216420480226386900059235198849755389784240449507381094773969460150916263581779806457292367775407938627558939124865435658681585670821396626198641386040179303466813375871164799058199183783704332760892309590297596280612568518141893112624788714882383169552704215187670363387464518061664975060293181918104365329993229723174106491109242540896451993298497922877579549348291144626878383300035727409689719459144468593615678323402290666003275136904545779279956742640265124667044868755153869057329093012274445286527173002522199962868975921854215988051714753848577722382336104294182656464442609501307725614651557035709654630833614788151235333452101534812828309771639264055950536153917557584449351678655743502225592519016959651008562119642671864621578139598643454013078771458434018487892983275596336262680946678841487068178456601091364147049623709937375752835350240533211460691587058406856524756931153908442902430887715717589497021711840762974496582661905402996897966501726755417453921116455917192871692328386554303781315238361878691467676817386810536205051136965234116768875472538983149434924421135324417807021584854803011199798604327188362761076135624778389806616199370321903970400452413860048122281773728360359394638959745120008635228050486928637767613564940845836690592720527771605766065116485263686178652585229418222990000534789197563758593693192027628425154450337172734554663775421677846316296887006412908463888259255452366038268869756475857395838771805292446519073533009305464093280862242862845992091758082139198536204401653641676042518820043792467599096334579013549888442545219619222004593225681111875045413934391543861610598892200492224360729704900366666689922824707064259822583734598938029704723999940659003072698215806632957240706892337816412131567657496045780847327289874002415217059343287019482002832616015243921698558891222926910252395884087301879804618237237750399022153831447911753639204611884105584482839287054395424301338249984725640724626831729773434822770045908696819871861694093053949031162281541499178246278607190396220532111932770299739177507168771167900519942487993626709368215172082371782321176930690092942973834290306327782935604551163646113543321337051093836436495899756909054421321461452332625230344705660909931649961370689754715919538134389963692795717782500991957475676453747460975809759385901532473870622744876017258648992822848570132170656687166835330361623294663669787535089384851871615625932103539987487338488724685276042957311773065780101695328342820078137011731565718012539048767450540184876434116321712057685011599396729894833892074831947990460190871705249014530831557064571369710481426680823394510803884081467846211547139102221931288861459958431686497097595154611358531475628561017429741715282460609383145123437958630449381415321921605892244056120915870572650340691674749328652782322726199589188300754625820799008311560962028697910653952229952721871595651164296069674229736350408518595904659743983793967803622311676464852849228290465437370101072968637647996586560220972914843596492488917835977991814035674649513480358534037885180177417802703798048210566081955231147785670737568403453133648257944286429286019522363985833896113078491723408359154983017171559916141379067596187714774625669704504926475530039138588291467442747025194822082445176859022428837877051692033673894917622465253171287067589188404331770855471651095374384652337503055648422484047714985262611614035268863268048185092111594077108694247638454265346943787863380120678090694903265283946656446754706624007142350618249360357252664788723679202241834902756430382177172371683777904648991676983547912402170448236337094434994700448308070615380369599885017907865569843339410550422798980700066010145766648998784061717594405314388120502393867218883742540505412179751693570199640358146043869556406692938237872055527702782915788486827821468309813398417335256554450517950120995344394282110530367639122174986140066686303621097676418970705262988467633207278808250380284816910969170892749906956145459745577446420664517480925631032832737776192696841184456691922045012771022635640545044593268315523738597489251730610009120069250329584802944238499957139323632840611298660828007208659897825213529312014815890258006480311892410428203621925933877351716632651032723964379694968297917866790481181839259375113412942321553960548731932025794705747510296477062621578758797983066715154671391381112207580417550555020358973488287274507388753730504331520521985550181803959307229002728973599202299028693112357776888653448818038026480433906207864359493069566946917000373928843018357074238729130328675690457478950712549418542909171533216763783015800210512535140154903272933798834053288920487897571033589903878199428629900554988342217271982693157190179263470281550335666535019639501502638251550208598190064281683378002969758025097589208026227166617678742489988024677097131386041564061301843274189113318080700030399602260888727484688251392793558479211308521885274718632129161746362387787260115881416589652586209041564844153706405163122572208674038868428892741564673455255112057782752416601294338576344610408589732247293741731522253166402055884788949410988379658902102309413572733786001728941097128077096969412926763140985235445607114372053698613712338000540746213735895289691775995142067518038883755971731314399372364498610232948288766740465855557592494899005436575210979362381256569717960534626985925521982147122074624721997302791912343379177833231599192829978768000626114109942104341687213405649911419254862155436379126385743602323126152246822446909558175197662821156209461851490346535824855174375907985708181408458571930411285041762287473039832054859134776920258227044463064067146592503657578193348782852998554752948244538169522921195393778224928683952749136411510346419974071827286652712479405263843470558620894677248669373957974248800877488612624825521639324521300542882342904291011840048196169269832313575769241715427282968179425562004690516371761743347136871288114191037282198030282402860193713968029660012212433977390911684149772195467714507542989837544744080587017689655261048484427346095338565673534330944573033920077833537399029213217867821117999707262124443014926728425601244275786291793327472987107424485825331872207322504087896986675729139330009805591684188659986879448632155738655388498355151961922988322448481119470558296646746895512904732240834506748274938621418797300880351700180823837178949837407738688856957887462796978593188546570456483444758010551586981269825323151022426776756040324811951833661522753093754856310701070161821988252335993346521153408603056020269918565843966980688001307524906351529373094248246221634545012775329475096680835445677143472777785392338345952250075694660916032618397711590545208868174499254811100812071567777166188857017477774708796096682135708088442211817891630528730883380850770546124051611295039699245988096883765022703493979673421693279619338039568546132656535226270462479665252446870785378146979196015066344381742298202415897160341945522415403599528727029872446469923909939818698469898515726571030040996627621258528221089623601112115493134161906740114820457862781774947198488052093356053981066387175266445821035844784856318938584759368015919805162050580020140690369980252639613725327326404352221829889432465352340211351906540722014529881988454410331422829748162766536978317203823411946272919516866966459050418846740824648848150137723587801921018382511089780255998535803170544738351344318762971248502654183769611770359942633034769571835264107710481114464514590759266073778512482175655191562026401751245996592852592905804598751797837948328350319238699642786803254414339112957945882098146519734267057213793878295489208973902672872858846994279635303022244535133133915266147482161708807143791537151966190497897974124699856086455876514178478641841742168892578419705775342421397384791671694869174130513574253583500903488849533598669795363178760704909066390374168523714168008890833915484897435865070378101558120343296934249751971951306091379197609378527956980725721722428633093047495147307727729968168173890243858249901025716292195032884909441520507461585571673337697139038791040536392917009223567762584057759505106676985018417131263545065278825832523039728223582798097075712284049963366647790437949953871399943177516041567924408456284731817528862088895683427318979274303532211337987810525671925623027260285682212505939932403706250064320921167235521347634910765834421498311111052221576045109909086535334678359405616179567019503287870343936269661933631750461750011244710787043692790015373513003781113351572400395535716896896888995296312123928479606211502894606251575686920067275273413586655648738919084686276305086629712766257731696519642280078924857218516218301051363563294789715640363556717753314441050512972747118701027855270715455387833786539274883719857638191992145660826691054147260192720326902314219820051358063780015371276895986542742305098626552525029470106569522596081446420546754761384286097578271031869243184241796920864997593966077208913020582593287827373059728829536282307954248893709301243579163761172673846170614123040763437268104370870510479042011611086699472751422467258424407199630526758243957053666965233116078241788676996185488121055205900247859389968550968265775774498939482271157880256779423848303316127323062746456374506639622944806014068995423544759451065017970566336308379010462487484157016236115847951205822596787131269490062215109663582034118483353326119611520772659203564489308664889221352157807028901568742617872889997849558662766173086434914946203736146604117385649872397945427793496375321960073707353184645549471732051615102309575742473617887438658373700025375007519862008787168891816682309849543736808957484296127945618943798105622323514102200093745791625649600749165436912363301584802157758191005408359377886564242181445811618966445491068494163461272887166635249896402667065237961754949718516811347963469553698176747577333125210092805103241449222444975515796531620437405956323602308230796869111121710163663466692153948265663267970117444465884965265077325420162427781072672225649318041724429583583098075084087199443110202962840758163948839713442083661457628413122891340173344749744891586612282871096923104461584107629727021817161841074731872830244598312514610993745814753184158853191013535808942757428377460258334117832835574552776083952812224415390987676032859615173502656251902207089595294659597955543475923211875657661502101760213555217882942074284837173495328099377839315523385255542160512763862704607157858064493948959778060104106540937203974124365504247711398911084642533219695876762945330825452916840133007132133056793912431367956384257064524198719121852787853315385978033821986076203085776802907060377346244080002233840291772017284623154373032230484525412253222094848741325400585202483425283904721308438087943282190509016081068017011490608133862115251553368329089697029613662432562632785790099277283642557902133543257339959473948573223026753510659016875862522682688823442751507891129084143602126409998996643029597377870306992922176194676126405346652996215334821009765772247591712713098269963094541443038229266036939481154520506369190982825623908591878202118606429801822128732029677521731837501582668901604890455483736899243502727844139480944633356780296351722871007807105748470642111679276068775351286725818434001402808016420627365822951873416638057407441390505388167355425582007319724493916891667306224516518728788242471856732593613166724612488733972970861720370142371652970496513326311700770367749499423770181033043689286023672141100569521502746708423866990824282346050067057786657629507607133300006309580145553372369919674521625483524741670751756283285091932820409338471901045139942730207665896157572941457935371319604167090621427033335126951631158166564914345568274050244056450397733968941907524264857749770060581678789475088855248629393979806161383313248883150224854454334339998839588610141966097548167932706020482214365010525107291951967319761400719698601292325144727898072108567927995602494197473781003663890335153444443741788467158912859374797062136593011313766970952715021716574018018115982993080230042794671786296968149360123900806390333948282707237221178268123883002674332823905222107902689250210771307068016199144266910468675240548695292659100809281286367402519995214606800656656942732913478652358732944801729662655507539815464493381573092396936990940348233002178804079933615604326566200171413242269998791884652803170925120915276019942799445577184856136219928864758100690629914334599763749605393664134494580543520525703574045682322782045877783874087710865638933030807780053220766752499393745630250297603966794335606729949917379485261811697959259618614209666828471422936076402623822424487706211821195692933699788391601965558698257406600708151982957239833312544040421102797939507066712786744461917920350662801768745546835077143807088279065386924434591769241563277393688618346409964579538596417316511243538633049270044341318751686573265634897402259518827526959504342215397966482427765059004632540053450658502261689084881976521320114792914276400765226012125033866693387609314503226671997971571210444903730243155884976483945459157407486409509041614633818997128616360227026588729079278617416609398801200727444994381658375712050764900307509509454703408645786430445236138443060943603324636832040537935141051508559575840991474399210442277629030307045469900331132415459729975373332481512115062699124658934088455435593077028453451068300413356194531386887126263989104695613800397402952211955005234093698868779394556020784360433061812227066034197277701139586413676914448920757365047135611251896979546183907545723428636325877418289577174611917969347618905731078003034225905259453469986458157625427175684340675724684641680016582760015260540911134331017599299317871813262498376349205402419069135350030864908699633289530521810931726876779946568254956074618477864106847065287398858978024564884755742579710472530329232797633572515876974177148010518066545028742042496202727175387304793885860267622996957405829981348098554237036954393743356995760760010468331271606718562246677040860737843161627231332978681779762157696542543547864605074940706810553634238417563161424476473289293539750650070325846191547881304468984847105234456520040318281227578763897528140161295265441279821964453277656217697762132674885458823023665268140366523168099029210036245899916092592336183921509036554028237436279363778326651187173784114793361162654800353205869201436012191349258679285193594716554962239001742140618141224402672895981411027135964471900410217164102446523637056094900143136797313757335056118327095488777956940898082990473056361438567411318663012076947163738237091615510151716935218071731849368458296518069788345605824361136480649077090750936166163576093534993986876943696048983090045553312452721711062121654962312960730202033854939219782855461781027798072446259935980819290998534857798571721768750591155230974332103855316265885010531456297002351471902357009105661992774950404792619481570365850373229247447245730440651769027491163979120972427122053570289850885129918739274549826021263651928996250591174088279110595074137297688374225839624585716102777101465729268524876295609797316949158721775022483369521337792881217152168002599429994904908046355607938465150325303436814876938167026481005679764068933884506441501067711328764886010475457416806390806091847554686208900452353171180250303739360058092759641647370104839688573150923149087972714267435029544627370045428948654532804275885427763850415884381918389197975340877556265414859459532663501702043461391945576808681091404349974755790844293865500247621295322831289450518275689648868900078020137914982395439070329995712319538725756893970599326644035025793725958107091167947088522754613574708469096110509595024540887993524509558884132136258861628593733272616870173961187896020032599031615207127543154476147616682158528073121104295467425662396540800339375016291663861012229058761276699598618627750818710594344029686760290538719905683427064323754204129927304031332830575932805313119933434195429541246954236599530872071706683903414410591452375265131849844548748881981434195199623558000200936588545899605950912995869312924704467958218760202549542023966706590694020135762715712394597913477759022597945750101323863838467813239941067143992731848572899834851053535373050073556646187979845501446925901221330519928234186956240598863636547283232052646988664358735159145909511093506900087904496058757518030866470285950370018895038993943361137978982637534285169672803754304467911650365959508038803800392001037822615302986549495921828981264101953815622027554861361326036413128653608625853183699744093954605458553008879413068827702638650435312074379390948354419308569480631817719842521016691325214466351544339489742501651286130809786287477480449285887639790941904584063899195615585237330509326210422378155470119675081921296645852531358060292008181779871317978568804525246619503642679333409822536887316347733281968015625395215563910544103965058929057758421072436443444981995003123298289164171117233803024695907502257041435850922942284009947928019431906441959325368957371352746479293610938660548596652162196561869595881859569015830995661500638608662079064548455663932997018340510291211425125083733484982651655068593146336523583588886966648051439511542584074039109289283933485216238530842579094591265196127555089290823501010951924457224301829217668125565971069759457428342137628903225554806543998157210244954131688254982495111114111112760699097840907800583929871951601141078565419506989999397024324886060553391186718861130980237950078376255452963155945841575390198183519090501239513838102822279155118994247883848783257714003016556135146514699678579802462022973987878480668589227323230464540297408399019636965005077886314177993636103627331071860763461385697284987677991331327190655348049569452948065743464820503773984351984294689839944991768343893713513556241263977621015361436106788906759707383178419942411985612728256621251513868057656052017892343818209505464409308643721193957354978470784976237832350067909347748860842523373325335826740228209052000907663932944777553471162277836990254931203661768161244356168480342772018941760881168790756182657847354678615518540482625569511650132610827849737730515891062900553134753067499086797119986392200192356462048855604324173274656722377491912696645601512887611309724114113619265814504880559823417825135831774697067499363467641872693521020884433597054279090043303888286329057538608368777980336104829769213818628255624735056254004482930026447934748599934057066014718247235417351161685784826501358907262759637112404158901675028053069793855845526799208643877269831221485196582511191278043591696987925763664399102791495170091409346301686046920773513191814352231018906159549835870615683296080298536379437547855768894929401963222948049641118662111910491557141320457569497482039686293069932460741137603108545315126635355879528585309917969964528332720416067936302416151856210489155624790500464481616111455199157441895473791345931081772038925062345058969884900023704264547538269072707761732433859933039276132517058375892283272713319171823888150380864888386558543923482805449137293143355479195366334732349925630147380521968315058439290390389384223981051775745041684574046043224837690753916484606013067345604904361651619037409733341676880807234755530589405263659784022030710628314815810972401931579797867917993318765328843390404094560337668532456391445261757465733308336114365880518295312572980724384830295972489795944223786448018886495382383641307652343303709883599306834633175966765281496614801740389403187789816754080839348080568705399927735609542324653793226821113604380742975235641307897923203478929784864275464832265728794717655000237923852996929595760661080138330747732431613022887882591324315452634162683392011173300060929083574494449918261266623204610526872470307546443584288547473550646816335788072203737985011009180743142245543421955972227546568463380303821319829852871109920646077556882344539986736160729575380012338009254731370470191059171028499012628125607145323382074319651877043970140315654624723096224492692848627978178054540957444657539925928223276440988798355662701699628504145165408128349708282702616872481211338347629055036007253944446452248498177114651920373916366879973872803105522120452067466032084937211926370875160982484321606307105355217855171533806626334142389781206864514456768088387135415939145476450954683737324589485957179768475650441468756214730377771865985133752780840874164793140685043490673645786341857158975001772569606324979197598273497060584438420214477106096674855708810064435562913262829647229308156557499942320510757504403725229284046414819634720515825198211771172611901298117531149367820177386681186463787806695403381276043319105704258384784985917040318144594965516536607233965706653886635512331087301259081004288133112173682054987745711711116511177062708989956234088771130624028922932581288961659507821659441891143572218705496485714916794373489093524516377025204912854064184155152575611374326228935281884063827574150213019497171993195859610040649323680440339607578078683845034002425589041227904554347954837224538766522118668773738541054962920087903657576321954407597846694747586652709817216999626423977716077256500007762961609129677266055148676251781722299279897755476883509038638165816704136275056471918163545100089021917424534144919565900411355736416899450076446675904616903805106508141662004289104464307838036620557325700997588242761734039671301831805394621709116487420922895410080261095377897688674992632288560762853718641729450755901487224071658585166032757471721400379797637979433331133721130751123493155574614932399006138590096303579237120555214798057492708894935414358269201264802049778151926240347572171979874594290046913499903690397297812898831066568768729971539899150695941108666111651176421223442294937866876377866448879765748026950055215989248247254698524608663727994189307478744989351013229513636933579191189816277449433291921989320673320652881049772766243842003405603267863190107931002361728399326245974252207721313888042195202003449997752182473735140519242777801388202796099354530620946406707493363335095127030924326056926405500841929538113627598705476210264484578720859630979768046115872969621408113860859145409434513693553637109913447146471725671275235069116217607459571815102761104361907839203162708640825588618856688585511283369561172969652315999044308163864645765536352322796100860324239834642288358971941984804658833498908863479942075526874845990685312441862449807341498741456030274481006884019450315250447377743859480874988117901033623015780475047415698122758601433244609318154785046698660033600465102940200062486225845709928089756670526204551319670501399673623125995960554912470445700601598235964911955062418726657553768284457636178511861700522651903562847540033946635444378813993452461912968380045135127995885034485570249652911481866312168241244510915157096043762112577706179039543049757625004462782764361031988099331819381594598113963471310836331467250202103223334659196818253291489980030360276937576598984139011713118288295923692470948497175704968925967118156181539191539737203736894372261103739201460764594385213959201946107457285328442516033099223066208145276519719689352272868259755063596565387499678027332177010689499230966318043246866967906286411185666190167567904529391651701036477751774974891333005198058475650007187868342089873624096898404354021655253996540972371673204201651518295676589318362231808176310321007747103813422420490429639867460463190016163488787167847985357186264853573277409781373499983230914146768345524587302385364148445195141023184595237738549200469045937227786599134952255665897265751424422835745669735274275592618476320567809659768407822803436672457216924583302742835479317852886913582942243749246495926900666675129940541703325511665841383416127234931494826489287280952612524993047888277412339600445246921265563621129643310891997700744709838612162310916976573413101514406474248120298389485680915866505947253807073780507884113354747649607124901319289025789884146429418197899154463539743927828338239183673866691779060351145518270607701101413988469363745009836850114597338313833649560298736787344345151368621887702835515823267775965117410328371759612849127431411072833948459001808522391509364611236965577865316042797011400971085133832804325346934943302095708814438618547728161786816901736417825187609454019704397954077101066730904188575825854101183804669602873034421392109666164169094363648001874106945989187431366764642148644096316927228991830421791078967739745856565022090273879979797322703892047205452080997422753258794629371626146575015844367390588292822960620834888764464633373263391444874533683733273975979910727772088254692117717493675668931525010453223180649617062027354549490131909900824746881234514917843109003885455419232741389176114025707172901668749105113691413337028443686648765955618440499521376112146956296581956041258646339441048313288822144634285562652654926886480941586818617225871787371171337548139493497649867044819416929986856076687884679412449383041154395637842005768523174358035919840907050735603677044037977865303912150197127223071126971048856186260645915636592609968165563018538700531082115069663346327853758032292021525133211357569894946597325901879673142653378991790443499260058343942565949617503425769619034585435941112926244543002116204202087564733153674101800007915730196399908201454018486185824167381871594157688016244632593316425431636476979413038299547409457147375383228426777330006269012625195913147470338390339173621039345971077254899707301083353306537686293221584979675960241015250350295332951981000103986366917609156563541211755838570462419852887498492486265548903862704168995563951233291539330747310241865554078987744012906330008650973033405226050443486010311563405863483513028016559195597278189271893207685320599441191366469402892224382870647902001204429432271462760338021895439465851290342594766679118391527418838245602643039880322204864575308335304083545169660136328692341793185626152836659042286681251750479706046801410416450159779351501813125563736615379523277138355586578433844739830515560475535336736707424872945268832681000181554721009519259976833325692500549969291442070156121030630026992091172490809983393797892355126320292377704467271121298419377610385928616414709216624794640044473711678165800551919740131893125461635602500367626547064652104548403190189784680536074362244725683773627553773205349609094154556592452630915553577960608780735288247218349658952478830569849875222977716032651661908110586325105893449483015921347504101994797589040770623985968737012212344850324763047422479280230905852991181691684033101271486289975977036070208787780729222166465000865742088802160906349435284644499089643554729359894414619667738771199340913915388109016341839455786672262480918292100600270402913164368924923005845638426169661969071555835537865934637452410426170084908012797000006312221822567380181314365065862391760519130045657556448029258290489850156012954659380293562136935422707804408831442610601576051695795844494586906726697511876580399006525780207876026746128302428514807466651372865980644760686637557292080017520043918459695526587195235686103309487154086991673300813779492957718813041201938357166450792351013739879563154826722874004194410678974375092756007785009493594764828449065427926212707943267343684023392496080423760944787596598153811982462899953424810334277822881617146719407170788278957185404791439968928072658781111420306418639654074602753513451976388884773319942035399915357640204083146868508304520511948885338409773581778194677803821404854096791661236184661861201689514706666043337203862373228726873239244141920980131992914385964666641465019665731461832850950725102096089240670328432055212815041826013907705262700481309191957686127615169548390020536020669699582194998813409102019632782546897060003817404210412407079224272243005927182188687917094523200460760517947040070086817996974222112515301405684763075125599727424448000433010708946880874626264036173520006757208505283149811322254008198064115654558887253819806513517534110039391106738443733584821951165671539795729887882441042354926469670000826718689987995937782293815311569235709056061413737071621798946282214856348487431173598240152380813614422190616569521856387736485646695395667479762153249599384435350258579755856959872284947965502070759185368744745365286036720623493152875876880098684613927737061121411867614858531344530667540291349862647571773012585757833904090042714662458198065890074719927365366914281078828250030497968920547899982139783228461637209434534876432844122452779225929877077094060966174415537913229506739355761507177711096856176102061446929571374545698629969876856637834816255711796390484351878921515978911980025115108063984761254402851980276279439513813335022524359594069240554443821821221478078170211672984630570366614183907364432269378897972800778582982100359136513001369356028190553372662583744090907729097797621272894878179472223518151885883434800853035187168318703941184558172997140081813217803573194354990350022159078862646303744309815534223094939096435344389187191220581808667667495190567496836172894440720785105362153160272813837169808360065704772777742912722105327794614479682716559107113824394547702430453293895633148126015870280511526782880364915973548626591787204270560156235191851216232286834150103821265254150125322241292779830761296679749081457764009812195776371998515224219950127758639684498555567912579784880092344879289820521859583388119604913623123268504974338644659925016286447950326709706718562797855730800521542195196108680087269014169915423990037211183731527948766411665766566082519773630513879122724451558250013358033154255405230554387572325747026348063914438114934828478993630385409723916688166425948356277346421120957181534755073790336864652343378832814439510908670922379759692265701777545820045671391726702974986411332657887533638738465752429325982086198547305429446755359802939263961513862519348353796649250556710789958690809595049755987695285349680536832620657693430896200953129672359632400822353220068902284306411088893091063331441616088219091423302604650010686838245118560572838088764069525713014904228809815359372956284375850654191137226850795251726462061448392833840207441994909565107957737838297352184250363451000677173565477770301638258416069627602373703379547817147980992125948414607682678342765472460325347603255986665617227150828445467658767931836440835145488829779094914802081235847422503440590803805873809646287553257569329793994205568022808756278612932767710525987810927792505681887569776903958862132827460069676971830385423820172526350064772473587407554694352055329846519610363823587879840891689006324608370668751380230949177683611379108672590307895465785622207325562887727070879373271465814505145695028111455395947489446270922373531977260776902017140934063755748505992241692512313611464379900810557584055158454960215154773025103971371262133013426542437035114957094693304887170853982263982882400203928201624079252381815620534337037304446304570322312987005978628436444322554944732189737532857678682916604769052593206337862672548280404587749041001877442938380314608780993664447532045722354631553673428076577093622728143520942817588469275779854801359115594790593890723629217969007575161883799063419539613206359418777608178348915856678515743560628553233370062744537295519441478478183797357107512406070845481705796616801808354887267573145866143122216772325559338091621825258028404779939357336910334229248641385437008116393291477036991332690629739993462837976955146596990758258010415600010876038484489942117861025453183384029082794564609226250912348416781948975053456899610537594373226271753197982008774123638378161540377683222756191356722482903168316819100393013592406466140547583935558922844195896433464037437229950560969321417619148147333126618935158296362727357180241134446825580937509712993905784039319985187046938572219955311348287534833710739705545059783385922882586887718268361329065215234864761107681588112022195731151953868059116761639445044122099650659517849935637688597198969262321722336475831592037555611796985050513659314958113495605687488735036526288808940442257632874992433465198934627141838386435459681694891836429605724961207931875017376324096375868941660823139460771962731929590789421323127964403929144034858477512061590457652956693213570536218095678510007919061884731261625691610805863535875083275167029951692033146916053614692185803391864919078344872252525161726652504458037768274457513856151348565840446683844218916530738053876246315395845368387833081636251652445621343335902394232086262610953437593788657780364123319840502907277764905896258961090666292960797111255142361336638946286445012338158214575560058309552625617574468506793958419152222517643906969517472503429481665289803196903948531666925521491311151778016560655230778956802399826746410970666505841525264009477526711243698373506300133909446140137107258264832909810274006781761741131669758681875738708409095416126594078940394090420678168255187292868199780702180763348261550635485941948479182331070129798124498659306064175220399002216618510174683114532118304616781701898163376628162047552809058836685631852912031955731148733107795271170441855739121491000328008537912647213823199850607777385874378880346570316767772892810092811547882004159618641966070153707216207869995166986067566621215188092608979144720885878567712717992935914851735430115873264419675569435525953237909771894885975877452804169735534457195012005410188565354970496998283175133122724644610942545690785396360129170704644757520970018129720728693693000639199614905098372141169953082545205725002075478482615694834315959744059841375700363476959153747969151845235092684719396403347571990738141440856848484925902401193835820484302388443838913893097874831149687649986888778157926627626110664805146966501026694854571392965129739442488278418013916933392586235046301905603065506736505266413116490462743975427450725629701744587315222042721768273792403208517066381213393140242993644744294476091233247379360668706933317098118472412422260074650156896277081895779551026280912088621418207577177532763387038634768678736277247633357219266498599264019196803495228266489347541550837958451916750306060312964154132373117810299714875663018557962591613075767157003339504574895028944276631612415064413219897180529843121141606019870683870923697700158150860171516980224000744543446389696546922901820054370114052633306011379040109339083122646194506377457246613040696687189491088041297728737151834153233636438518666119613097804875533990517338560342876044388277152333286940280429141090041899003635305931518131132181510294185952285960070469363370940431555848556871712127723648862984136038814547952489305510593166685414666950511480247425684787811671963809802857941904828895887727889243817173675042977469046949474491350483214689286280790213634273313153181262930353803013467908112802713989229446316472570184795994439519899100866221577992097094839330935890941866547353092382633974673515054747965177127361999941067836531878054742727674324039656938293564035915419641493286094613762289699359837427456139284803516913111906963780560840519691599681949838169943497322617388011857383380463582771031953471346366124606978417777098085268547701082167488987937070783822555283979013144614920260529013372597454124126789812995251175356315102343341072226815585517260464258911131062428888096201840116305864539927669844363016630167467378955147650373220354415925938191602120443720864317931398963888404692679406949186703663874041571535809703682739816816138724983621242869153237689282450012410911141757185880493205429165445724892076123892894151883682393116543400021508830575055501769029619524513948331062249729489459226237280171191092361289864461685079754592739813033660235290263779332961944481203448593037106564077276434717214035543075141207804083831581773452992247173407683727933797080690860680511826855012860743823340523374653356454807766813126296174272094939083933438706116459200821321564905355765080990801967030290715687133111217056924471487627627756802121853010488430851147202288974754581595938280924261369520314427464402469555469109600880373119913181723072934870526616522876054198179946671108850202927134111733993373598532057323318030747430627192070776308460552221976542936463101069296847870038852750578939853551620245521425672226683962631898024523872537953188557873413758321931681700561562392106906080937107535521236566499853402415393757437981865868603109818180794215510218654302720901161717839392247418618460728894336719953311771703063850801341051833953508801880224229177282517267129286522626860251745593410783644522808604476656474792156813751287782637018475873888411110189291588878142831791760689959681524912256169468439562704653975424748866955934796487383316931993586661967113326659459752222013814498303081380951643484396664239855118973843487376114613451459718977623657120005669567662003310824520509537534426729016900662860848143930897775163290628995669789802315308109783740908031063434607597611362619111060355472435222810661667181953521056627552241394977085091454435776124884851495474455940765294180469526864421449128359245727208901433058513887131418836811810856893866688277036310432426501209003300404127064756757433974243483640458790624712219895111058760652716191484513947913377843707014603809294326063199440413395725084967132094685453978367886955958529030723010051195720536733433380937434657299514763929736640886035266759943561379370041854867472985626100166056252413398613018370881736024903617169453036543542003335649658239025464933142671167041258735106231575928205314589035315776394933793651621156644184989200004131480343247382160290882761759807629620253042014420066542765559411571631133486374567843023961153547740786943767958431464803538399734046700136800303142905422696594568739566565075355634946470389215626432456612998023668242275135183928733681101945857828358662724110798273472253253326109467935357667519154920702306363152550429805175586891194627623202035978388120529353167159672873118193784975702920849915876060143978933961513738624927132979787322177234744960222600562994610165762356398855345479137816402860236969824332242473626552020092638451757344214349217971726225398556698273414169458231193049928397593696714710471922405111839892632256197328523943625164215565977760516054198093787490271799021382287398735075002962679619420496096477699108258958465763446104586353066458126937911780788815315160088095149256597509150042887673597022105968209824728035707147371774745679040286713955385874989369010382265199953968528383313859351382882203763590753997599649123221601561498262102604452482734727604312953719651513246163817079950497748999839764134443514258861287268165959815118171849376577232805809764981181098540854136617176594222553036072689286614014444068379484015884822525026595442699498055743422643465383207289978190735545596152753702378580915926336026756338733548188484361816960824050899706909061818357277661063455763523033136402441735473994203704073387069803835010039386125448073008865168130896043319306416115963540719231609981437312165988900699480683124203831275403043336662588688258870117592298206614018694205155115457641106413337641768439358875407110095963525199662199598165841679924420293548347862440142229691561981127115323616966578450388002847553132532602770356636756501386284622437216276445327616466438188241353746283614747264427235060629743053950598245930967403812120328367294787681391413236994414221429397987863163668206873419228431728223833070431301386257970602067564579518985137046891804823644849399597537917253615245721867341495918859215391814979193824394907979969347140978065968962018375077025473443248661082188851098738786501491468887460676037581074502677566860391872588899898831668130303914229029082225254923365339424411992911716310911234953022882136572308855880328700581940400382387628683674026449043866721397061377175585327946529963361620801508687408261531468770077419136435415629655887774567550767273040774644438971534233748224552751454173561552822556399645010362623854664490895342011064052912209155881803711524648659756995555607590468313485775364767279788190218094017564752838108042023479501692824536120432673701452365494153323237519669775342401453219256934118421319773640138373925828778233563481139442160711711217828394399594405993565924655848483393566052568300826449224355033150316619157406541419866278940070531907405262034743421797005447841145071699759979821298526730947120702296798534243388220395410457665735263017379419849875047659531021679424744897640057394490257475957471390847609091639312495199619206654751220991271232300127100457021471330760660325423407046150644684317645119366862489348296767354300643145248725523428454326138947580284994182339393087754736710075003071760271322117903087284270111440458504769613441671346538511446657990857825597525859875402463983070633447432160164422865088138147778215646766792813937691084468693853360366755124096324985179880237214443042618502088933127002781807528040416839342093280276254165880393640108697926281862543136519883310077853373714053088112582626902389925658129510985082679302888811489923332102659977714362596741455580213459323446354345041740554987849819490615450807874257280488124833812299189635462042406326704864814663993635624540428879817435585613292641251056900342940158114759950937671090821125753377612219531914892188277937503805457066919968923925264537847061028634169941329980699211463862010912179830593254055570326916962443586304117076316276593716545561776893144493545633091593920520111712884545488271345861875150949147055653478529402968004521551804677722599050882744172781063852212245027922723993095555525197389222750473161995638373922080584894966107037953013132742409702003333860917308636654294875137656438782852901744800281205630145626120454711211582615489971462728636263190950835404878182700600054936860650108800902987981465525889851119535084467991671053492283163843138457634300704591339016282018612881980878521007565477648384089629143894543046739033101431275324857551420341348856117921190604312976180603774945778805037949925651107891409842729747587521466991193392853025266807656690743302071278993357655156103723917425002106661929702397312963033372096712079743779559001188661195073639385124707227347527492718556490259851869731632162513237119891057565002504987076372489426509530560957177198642211227243916632124403181792511423677951961769396837618149295047892239194211940057417651926159387200064299831256897388837587874825038605711160837596056967504123036190173521167894546227125735766414189229541720517754861364005751532375367678378570467362975718580989307596273610640757523696403057432680035101697941643633129172193796522920897902032316300028271078385674051934031515199720238151216331731540668229016519870629000512459213175229040744787676901022017702531776986562879033376152256433173728238981279278977902010092430290114051819188715760889587603979421572110440857961752953855546249533790167445320255216476647168319735710288502968565453831058956743163785582213232135978775789928908108700398267800346721975775747733873787443020128116966407063329634486998354976191754768758200602353595149371786821121119265976025359865073740735681358269383609131310548458014564051575457667015705537997685941894910094012924692210941748256948993349347876921343240215748200700204935878996148502019122020573355028609059655368904672341250542036243745142822518257426929107978680880121675747729532944713622342315337457131525023058362010288030565683785591264751704749625088237125898831619245670839534669582167626209311197471362996973020963809043488333565139122948717210000115149955705931715639292776801081082864397232453883978505177532851869954496081159944709133096249345875437514807171083517177838843878867895236108169783377550443149039294133578931082702470795315515811682315556359464775682945608937347227079795256876095922834322478455380684441518176541312413176579681087029437513344286093684566300326626171855054345822275284939572227723257954428061179777647996823228280998848702195999703216142222381668365258000412868930983499312264132049740983840847646765946818387806767452866145266681624929328486909149751636747052536304653735498829482307977390881466406034940907605515622087003492156073640122713713788981293726598209748225692957839522401964724514348688989731339600061954158965795595412105391722533391574548866812783606630692882148355493941498598585183184954410223011104986793106038482254726698847673704488275006798292035577996698557629327029603206349308788969204021009154776241056310431377025734658554417268528070306770402272363242122527573955211654491991758265790512244911286869294036692910107474461457639685488102823934508837599548796609575869776718421061863050475575365830991707081116111156026631741632491333176015165504780480629644246284323974477713838714832823755043031067074873237095654405146028543178524434124521483130595098715419742935822853641338458497031130512735124641388865998328009884364949357696798058001762231112358317748347729604074877693093258337332834415824048132849744696269883797701529244354875191450109197480643115011713024413199494459942060118155386274055400870885356313282814722053727379472139860665055704239896443687098544042570129661957478839643755089230718895825645126125202993699964575415981596955322963458539281224611854345363208308363001141522358774317383919081415630167735424456670536397293319332103677752362148658756053250341678599496826274074729390029378131615080037626845708798480656119700523913572232457308983658419902904894631987778328667194492110705521979698533565425840206584819108304470952308421430643798043550308627928924877155447629993560696776354293697662865523366906756948382903611332494339135172467023219007933094107072436441003687556913797518834440440183030696824110032271090333917439634240529968290601959972078046024459712793765458345372338855629488647435986176628390376840637438031747229731182200664633295495357938480430592547103730674647192967526434692654644180174498532228477906193313038192727163180604256683501806801698970551144501199922792625759170649396770433892727533536871645844139278427309882181454357510237856490593816825202955805393625268875566939718795857516919521702330730898965786076313303967663644310886079984818984647446875397768209234777494967602954896319172843620438119004593313863437611168730005577559220143365548132204837786110270500610020654622769824313465542578965168114195897011474102851218675509838210102483119273864850081441696654873737941515561734216450839969477576767111793768554625787417264797979571638651424047739875850995833010526572063237031111668461975423909494611765405750295322742442906941396168629013913834892693149560150753184318365372141077911775184081755719728056286509104323707059808951047846247200393572464761975154860952728168684803975901423468935622552568068694598652723372304507469428928646134278430329420108769361202169057504712362192746658957478617440827114798366243025453587531073387968242659610930899496393911716094996838615706491675546224085154109152821454542343152888673001236224764397370939590821408527167341666827254366746356825869576267621574890007467511117327301779598723106883732621863242845935012676494432937851277847390668271851117892670965923275655088236073570618703943142557060126905696537398446951179321981178914084919343428631500311731087632321660089027839117500466786069598086332603729985625176323722409616754642988590994327329290145900683637132256636793939676727956518281044365768644004469871032988353899135619846464367204339487659330775568323492497879834153946799437887996710587975828703399942327857298388278577408618235273490641347574414793477319461032812660332854163207965519251973381456760370732713963600186598711367463507154407383944540848791156403980183164092241603249125049339573544449436298514552598905533688984308299694652289721491178112092536610592688214571593056869511138629817815221976013630351250344492834139075888311153904987133635192895352099071178351155833451060796147870793705971538941390680245237440269594212982458552270432384064785946566962617494003806257888669850439182496532959744697238426938107560326561454851975618906313935893568877284273323357431474324755930075688555520775254414816537195209099475018643525772734007237378289636293767407541686151355435074424628033980060942635068639743597472103887231088904182452136936857014586985395120450972163231268937643644689002517427726481128570429771068907011731133698817553628700878951648853679925362979686259067857837973047024524236980593171918828300107812409721123709997381407395917527816175260541457640993925127849851240936191379013638688405690900080265084386870082101873015810390095065625187775242436211134353478103143559630044416125708996209795838310409341731079580202651439422064935878346794500429262915098557716813836414129526229292771121662284443037162416667337832499721946201001557073059416120224042284948603762946649409299787404468488103579534133029865192825234904468303461479477362014784228892415099811765596915541789424032656442233179329653529085692672322476550861204491739567978654725709317191067782180397291242842989317551916758445854146038592720485504718184086530275417930256848386539138276976261707680559467164429543909489253862227796727492199932207894483014867754499175199422408548970817597662697979642518496739601427024097947405330989815314552598652722538303327053535077652801532356668971170187146538190969403091418063526029279559259248069893370944507419155017119985705713906861258271975511977892526941122218994427337174616354722387458040162152437644424131922722105834161778613814336300651927499100780868146640310545357428157251767948201279350813484662241070463507910634027495204313088262507123325676063217921553055015091324877287447190002441745263894226918574887225823705230109902038688063445062103842043427766753152534011436013789879115552259373557943363910657469959606824695668407350434471255943543989677774288926384989948600311129083212212010469418180421354504207606655523792377100621429069274526709459007176582133173291180899344059126903333733390268081444808465058301349577888771775815167646767005620543272320146259079724249861684800907452944419231344431257060578967234921585358750475858809314918316579322593060165273693441853771702395018903522464338720860921494821163559336803129773936512633226150586732225031792680074201294545665044320635122491259649045118146015488002078867589121917912760515542002352148176797171868237924321394936094133678781599056502250554505368754824424200201420431535788988255383332513145855777327162982429979602590902153766914125491557362760596142455910673617395259320054074660313497299983250202977242146393963533005813033290139335955539016428235042411120664676078002035675629745268895223355973270184337953641396618873035973973605992611284439469898346978109820087769207940151257041277239530474808206697879153673446790018988151130566769676428403777755685401337481974617146408072959996722691936233237995051559935000404664754039598302758234169930129588153866544001618130829360937855134487619473044369428562303541926090336810760917006742154604766117559037190018311919189129723086374490780006609483235765179485237546406846435147458074246602717458535963782309795222560207114733973502761119172348265266851064004734052692465557338783109616645103476027966640062238011980759357285463227743929317846414840701320314320688680480785743345317549817152631244048244641322087993014522559821901745264187003072727121240881099106522973797887519870534526224585044908606108304400427663349206859890835097318271104961165812211354019169912840276014159785938541527159154881550814790065497184612719707577250196946875690258795919688011353677180826925143791535297220266672195123306357986143190996809829388443499903416594261288477347344911875329691135880175456409247359879701570853794240667962217619797451136201783911254935510558847350939104264678373408340132147530410905055194586204405427127602976390667232009879768146682673839819515911144459330130033512705621146004331028398571874531117243606906880729783678584444896556416909166010292683170164113672575984051823264193791014517946950654498174622938492464558444658633938983537210830957350345181145874945271630022215046514509931966207039104508775335865453788416075750886977360759533821544668421182609222905189471159550094953191163565252238728158787595363157146614690932488728099945659811228366456592647440039936195381314895177130559920963513299689143032711141673527243324887265730198068638920574840062368989158248006684681606086536091785787444409717181319070098317077751797345739620998253068183241951272362739924745779688949204732974413200858086260813346929543718720010199831474379788698153282371350634665935863274034477251748126737259071046083170587111934674038915157598497467259167299981412981459435684335965809750092918537167648155484147302778823243377420938898317164092884674310334476607714082710525997839573380581153036776290844654566106064439854735658040716236739610986396633687319998289568068313179437308647279499663584368650442527234720552303441895099421777048839390246465224895027045922641493720256574835615591109067185404218348351625794426935727464391545047026873600473189793878414672028683264679410585955553556615945876369208280126618366587616451106396325777828017704782265829116440822281238057946464359707245486516256374929013716942422929116332331300219551511704170477565399830652122382386051658818949664938303510733819895300565411693331035056682145971139722866649415909149069668862079370170111943920978852266798315714614012310297398547316589213387604077062543756524835047709142291750679944573580049101308127573968751467915286424203097759192625103433292079696193546286804278169571479327929656744349278073545680062486023843325387217141879053946551770599995842256338934616403354930330990009015806071838879013924991526731330258464452135182387447752953944833461813680975910973994572301204321473686939655654587815734969810713195322480787085416950416950557128061638196819635287721968410020988118039699056930397267825640208635540081988760995855498861378102997606563803275908402874231808715005194501533960892072234769209501502405838744537807088081543129011501277077769814815984490352055245080657698134852398859832970372363200189246064321420158185061417814496993147210875358608172453663325587600134505731593733605581026970317930914329667826130138380854457341230348721338776811693646732067294799039006460314344593935019382212825389750432323173440126124710370546204633349486458179291326371266255745788403571925818483964086643344302777542721215866591367145470249765087973924582045915822729037344510065356356184212746830299513075489198294964515615165964480159802144119906196520394828001422625198346222536111392071643373230782496981567960524916177025103153118228731462090506740749949059821335051860507155823320632826600088070409265571385217589725404463864200373367703401921053122713163808013024345504602568877257556105991274442848958024867580819976727246307464980550357046735243217401589791676499531416046069562295333079656233302623906057103433973804614796804663259485316610854974618440348612562330007882490109059946086327354625016108352372038336360784774647090026726686479212417208530473442581280747392073871077738344208962685876754963147956122564381169064795768401607152750521258675293616407077826894813127391685617675295078486380213688466238296707940838670046125572696052761151733234310654390987669253055495693056349945692866033551926652773296856138238496488476843200698186099774669617085994663446353327965381159244784998392240078166660813921032299887383636270260350941154867155520286810838837655872006899581219596504195255861788726141171076599760932360065439939294611723496593399494710366846964865136680481318866258027778312571888888520176746918571445514194763993886860041427632880153937558788209657021456314017377415288677296222077906462150288593893384981713926334343759653188238594677646146925408849594109254727534272610282243100807463811709625975302568545749339871324089837749655707953584789318743004298519900897024193076231722079222662418727766126674777845544603757393835682897397595937446132909068466894742097049894076103912167082954964647670665348697678292262368386427657082630110508397377080086537123524428559020026082205909748307220436977072944212278110263855428009960418172657092058459241641961857214358599123101993233668568351574115651951901303452842686521018126480719951732555492455148527032980543312005603670049766139750727489023571060845321840512113331923516162492345625230599111922412520171138558992147262286029002915771976976078759966927853516332376004077120928865378754261056598746373138131854285066679126190023644975277756371938719683512063762953321239552438613901199838662729640349734718034644247915175227044716593521148909922623289583218583885720433452959334338785987525184667924512832934953644740420284706676782238285231194728708974170350046474380092983393945371370230980281847665048094768257589851870547597099056352888039811399272358486623039550159569374551730508695995802970538276409765698018082381009403280952175510012113543794018124798527365475503916665007235706785216030775633708252997744616067422628118013008779813789734093001003036115012613916338202422527722303875855815994045053102720325215749299589616262144632875350910868058743112344472152613747119634566339198568106096601464176221415359643836274389151583881672547081190686989636975577395961632056364585223673349855133218174070345810911275166234529519731129631080153340082220119566928191105398395899987447861793419059490704255552510506793572882405879113749570231772053332860337467467705686657167328954501304737585098888594518490909183331386288188197584487960899144294321845613931202277247502890638895907754953399527543107484875665121248600356890568629919775708296101576427161295112877211146821474325567145829057297858466051987253131477285743257028486121949521476431536461177624865559229194367083920101821038726880928514785120850022260817528696162036350730908934703567807347012638124245136963856594054601028608622839416057542833404360129153413586181695194114634765831696317021661041714141931263650363625225901146809199004119439519034647889611615773935812683394420404284383635908875531487777626243079973678831450513198658678727310675962034342472790678196704474617657606031842114552729877076475155279269983509398957200644033066875131394037498282480894336342894952773443753987853040123799522224628519537483054825264368557833231485822540811879669194561869478033588587191028019212540172765977066813859623952988610204744974031983045539986661468937575204746775381751348244538760322484308413751071330537460834586496692987233065142938267030802166163926644749389008567468244036610354366016038570116917105657500348862823774683457288869846360376242099441451346538753517122264095556427657172072069449891552409991982265005934010487106964177636098278353244529986737656133336335949073147736721675711188634075329390358440135044008343931117353756590958517821509450390207463854277432468058368295495700277936480210180946230934550497027707917643738175467284158676776316451049105221779085530208859725114194877662531801727046062546339842265096218127041466755009768068039148918108051616117743916457997712528044594612755777383307310494940614920991172881680862751973396485061001408897267090291453439330940869162127583147297608614852320385581274421309014956519174170974565293767732452288785486654895529270887003583849225900334260785174231883168626566479288935725444222264215152119766568537846509301778951118387508693109856592296681838524175646246137642182006040727826338016098153852555271934976089884953088460080547590817046939196717428191210168032219027868104549416592590709305619521693828823859605297929666258152173737349465738037760192456758277328077794289711705721039568017714319950651862158750610456745553965798969208233569238766890366290026613005452581070650594420623456594743655598389793469199963453713182302082663799905414517882797801785709658527118877068046677537177877006348679572616708343961005232730833548365107202813967791926899488838235203190633828012002176755006871782856206089897261513140477035129774553073349710660815350989201455443913182041517847995746523724830209312306100326950248530339776962775671545692023676313281348908473713458081648467296282529428713286588311692605807701280431385128736901991594239439393707901610920990839546883510708900560142042497164126808592941087780728022167134442574181642370855441885885307423788270358589789269662497098807363192755136433158071243315627101753515413028744232439945716036083700390904191283465537919696935136593874615223920054148804820318679812834636253778518519081519932802523439333395962309095282598956521621923627034145418599586760794566149993984717473773941427118140505682490519163403737125614914681391268960581891897141010824200145536724572461704115215447506697117342235999954878124454557717878526863155019260203254688852727812323390199593273192101660089784146780984049197388335860177928531277063442745267037388199866600797404058246931170911099562243517406874036098624178843130036799020469355144601029835869768212246375979088771005895050636355049348605288315255984126099580011847952926587402794989681155766492136938057093870394260504897018051333201169331353618351072241605978034130780765247880356589529555008729237154052915272488840451487207811458244029306790973806097311888343623155864652491228564113719446095427468370914810392230158975841771065803451338122260177751764053739616116023597333618384374519770888874124135134587247532654913984895100167854252388678049229055906433003639043750845510536305765329073500449498582487164486504060550814625712557510204174134683817458549070126884137890077651940904613228891465452409007455116127952547970705088535496235737021058431526488564875968732407746381493618284079515944475238267651000272134925923837340681663880126791451489764798434193791087178496068735778606860564530437819483655921145320155758833819952329490792829660929230623991106483265467725730704642917685971113133434729918848202950911528076008673652561779493666593051032964080369210386810103658618258363604366809255892455043639754057467506905597370290379631647122937549847391846267906548208047666288457193640128863806323884284272620337809462775614152952808573499739839212349304494833438820647584894731031859446661059202329541517338490034201917439255737314780172892622306656128792030374851248890733144775741917266471632072001041402729194540459700831385391633025079715237920638250210297482238032683874445136236884660934954354310547959277119956514392682509384779254452564551401949873526402115432918726415433107068024321091437460725785770935196883645461795208164374230397376690509400925658732701550560074600846133498293400693948808457118184027289962243144750505522021505255900233964127870087020254262560582984683800836796030698564702534218801007610254862708266745686296817896204628191193718942339903354445580875457059275937489459847939706608417543279312281813453896144774631722623126755776684705300269970732233529722141704145033297889400399313157177858724747015471755480126952443835229429377118030278845728492036503424729943886135812188537531525620164443447012367781376195887885792489484778689694355369381659844772772221149120495997795601454961560371800780745709697611949581504405895951079775986326124200809174380263898498037132144874293432781818900537407081642046447682940676022310470442855623553235634648021923179834838395513820184351869574709964871664776825229586716864156932595561529654265174174316371172499865754244560759990226623251155863537659810516150877377350910231367264404667511654329903388264127725547955583200561944544758051738639506002769954384313571337435478477218885733597966548721375680442042992089360328333283307731421246460065119765538291918888135767709404374765162712677038988650701600915652639684572761307844204497069536732913181337100040040097984254974603555554845895473700794262045901247618335800154028524542553081812782583253107240197923613556697296139757995087332836747534626184509997023263965307846446386594195904751210394988029634161626925128082929319299672592072082209503198099678092092352860351374507169368972885659383542802527312779222801680640869166572729179476195614417991282311368809830147775132072453131634921027869368983867524074373523893601892408074596467831652762000578095151167746563568570167074835911637471122840997474397927667997002215165152791809039400851248598498628385285639740700787144279864418585982124180909330099460091326354992982024672063887380344166260227984395818899342730187732794390606511924058186493257183737969096271055678916180053599507050618231828321891576472091665978949115754687255739529726548120753614082691778176031297089554660333317452211090771980200905083353645559558651981194791530321993968556868768216191185041290256230635281792261065606729560095041865809783990932437134273129780800064418754988112021549720674555757877550410888761745110455734688819981372376801136698549945582569035088063844953338790629771950047417936095486563697074491447739480637361830013911754477825888626088032013611976128901627105465865194570892646257404114268560905280867232861207524793061494129223040911292312609558714976651183493855199809021456966033320457039559259428640566574605847678725589263951930340185308827813671004072316700144001550152086422100008164979345649689057703580162322682122944128283765359394019019452165714795193989366283453219982016484026047519606111156703938883106073083023572729382302503680572116090705293894552934372177054482814426504267714222341917595836526388993649839267946655598507392975505691585327415914213958675051938991862790314980792550915010511976784121063157048169555523030492145822897670469025984048877173820148423116306881655683000552574071477458743644646526123388163504698130360416735679118775739719194102579098083174103432017952798660536471123669982655612477903796962792313126308029113230838861408024319359822023993428273263847421199069199920413381919969667974775161556282946733243844103923704054458878124320260918291443588565029209876861715579101958285575580241406617623728748861063794532783096436686024500423231862437761996634229351585661881910751651276665974263254721852870284213702395635958659119322505334392611624396257506555261140838991336018487236092367667282521048173754196631398249037669829284383842575308459962991158498174335077338378236041473803409560888949447362125147531694171269432027363882001171679524383156726739286589944088469077039643219492095593645230114376659633765743874223781184098991970023229942937883883598015061677892586790106919875483772298444669769442367131456436793197369561978532728738855326199615849303463808551246786647332173173155851479589415808591203714011819531210652699020254988470100145373475149766241383260091962526888501068427891814624911692656768702066597289007402498385740563104335321422140327728666864793785264490738895646393862848371732395302594454438031046854082885417525466731046902224590268426579864108125722226459604097792004049901237027368193425021135473429499441661472987865771831409572900780568669600702613598228838550512745740457252790468366481025589664594693168016903099800184591731420158043092568343574079182065322029629575212398885970196356782629894741280343924030438589340921775345807885681468956944614648438925119269638356696031558388534314231035441706427781703472630163176370365527175779395724104520462882496715458138465573551788703162481304964332135478119285514399007784161419672750422114794524761742257171241559036887825747057136507777364221652297158597235908777446858312413632504517114025468329645248858284079246120134086084139481120204186242053404476533103257630698999454450528668816390996784413202655644284999615532806421157657792534223235761910054393513576015890557025293793420265802223584951276230351277945380442977084152636264790494628765166992816236775346039858478932764770427049008761566087172819076547923561863994620148263322846966891869658230024878215375023191788339679376689540192838851681446618505810470116588250976260482759044259178222810667532563170050965343901493979368482274451565885187395822550238640456330109008763451630397963925996458014871831892979762128862386487765835460677997598259507313558008270771637455426134189348282389544785021887436047541051292978915433165642774916866672997433475413388238355672837211900154411782187138139520968874324142230647138955852218010314158557654260313304554866790127022150998617804442948513458739908578692375724352315794942546793087676235058315048447583115658419944529517511772330729797103896304945983235977312633730709097281147661792052838758677060280674708775546767968628037539106448776348564381069454414971599584629935855117546174664413435001401950194305477841773440578948744626122277424461047936909739770978610458497997022230508054027579898089157634509815637753769265738544456073885180837008245386071405093837442565724748023518478825691523892976427212961575751192641679411275849202935820719897885408718799672115692869059421651166807118089184201993986068852531005842834112408628527448429512367090322161632634359528347493016527895819921033092337159926168338068172192584877293441042556332274483980583038811549109749737353084558855056190163048901274274168180352193167144576549248276756260404464832859580723034973588251007929470962761240325206278066372690211050655846580905681690572854725539531630462098769817931464781559181139067452108027473753915655193642126660155315790616755391133728193246617378824515387541623065614549708667077985462534739548647383718866625040651273365534225715109322160576716181770764069868872147532329117132541708989477927247799576381382474999815893038271221406282900628628569778581572486653090387358189511676593472277892818242481517215797436951674635563979642351388085193478974728663216149304921673680034019821635118050983584136462343652891045312538940303487492295381488851445849191084376072866665448233812415905226273780583564070316827455738513764455116215114286063179451293244805553456035207073066826011976956530187756592729979095433400386489259989579651389353285417984175515992408940764821978659497061235493418783989106082322712325924612795154094882916646124956353015841984593940872598060295583805044052066162605664206148560468502338963904390209523295415093757004900307579663041169175499372398415251539932738479467946132843430411633413534723045655048222825807022148231312960320768892987587714901410943369263918947635136418078550952291593450311635037433293186203967408531929878107449320586973773733281925868617103725528657676944250661946496482804654312614990848834281655132172903515700539207479061203807032726061028864085074763443244906608510545455957013429583832388101257850712449966158085072018224295181507674358918254539276656775635545315966926717001173461083588181982591382233582357006687865086952263129947870825040560908455952831379916581155162492623320307887512606957418942696466837650760064630149075926627045373712336013509137965861798284708970101035747962776446030527960793892532894460231526752473127341489642430748466488668667449855679244003529714219297937879902123579516384956396505327709620146075990157481584956904515756063950629944866255982931443189378887242069474023735113628959301314774830317296807381964978000168288738849760122856296408588751367739785050307173864569246997734378919376808998370395586978024701260818611717805899124415859782349986044425464550446364865642127280727232904431363654419887048553994923677952655424628836997797374823958859701151656607064345148476472999746618647936892109397930328888111704142610144929228219505214392042400814488857839365352981065850629265032021696766916733012344049362929076295709337312726425863075168211365966422212249519157267491680344905390996004236701055687098595629459459973295556993132076000187505033196780108665897029596000720097110060830383550379790409128449994537468467528105924705506190022352973630359899687399645360047396188591958363725401587417273207455262734874131974482618635002579925860572353597172935164669832034139685907277402896500155686649888876281040094930798224805948526712474791380710045693361988900702497692556302835357363162397837055929890937303517616094992583923599664484992073698931857262953411120926230404499337591558616376007925122485657486992461627283445860736054647930856446671561765871899226005243277907058890332331384672818197796292282187799959368081693208588101284124276743548725336552884558647873094482140679828113082361247618950975829509509360346751681282216300794765084428070476720823988379480012377933560695653723329477330076052021635405820191791948793226764994602824541371792069548138864324310384381507922567446292719032781236949394026564708346319764800969169013866817562665904453188021282386396833962452539489054632689195261761768964493829435083490225298428739737740302353978705439276151156048880706018105732981584077226732831212802889915468810251694124312532011265261503587505030379550629066027478665040877747029569249030637460251786516159103140940252076963202577636809963748114354333633438311678738013275086098259179292478243126905837469077496192554447016903834914444829643730232278455322211087918476551909010068961535585913263325016627912704211511134100742768425046015789937366349591975020003766712809904286333999434503300115248852374317573970288227056387429903619383298404597720753301695050762219606192726418878196975354176853265640071753214702600112795154560393605994394618220441526940804555450384357619060589944701723113939868264510164984986575977280805732901059237147122705918229473548192780934242002702626645255449150901230276521989260891456533058064655271382891264443394786835440991444649383155404378387932553332958050705561426165295479491187790902775483798588663924596813874393239896673792245853245082015286493447437210681128003845768653094957776053626349938182987006689419433749111676907944357455502140749741167622810487602742433224664532653867261915169202267887655487969636854806968947773749908708822291782496833302397754205616900271328363297272509124675590656844620451356589937452602961643157116686636473724333842354529313549304137072640467781877804013342620014028506142214902497126877519807686642017465627126066529769099264455631869518120646020979147708510992409073899993424323220346472923479674839973532163913879823118010497769561909836085041967774824043629255307565373959726395793328138782249620674570057167390055389574762636987333169745185494066247712120976930428613945106017803626886333362087529536878503437776860481130632750054151065655645396543315538470188941162405481986814116396013556224011959422428484124942008810573380081906592990548392567239838885188372876715017843393257825878602313604049909545518483854880140793173187569126181663169143955733130432239225654713484700952423399080495398396497879051043287749568119926426356737053394476774558629076170605086562954122760596187223450504715438137960657857633432649113728397639018292523644829705723683203843666476150174360640973902192434746479525768089892944468812371174418754158281090028582632129917497632591110544660123606382861441364632413659961669501535984715213494097046676848427624083669071937580894462191115745533962007854699026050200874225186463999573879160618645900388383770167394261981381722522619760340703207708470464358571677771181541551914703503356813262202559481925676382698999052896353637888390283315979286340771223389087228967585276828328223242861120490243744789455627462729174314615609820001957825287802500164763921499822460242361279419140017038104748244860662103527845757514154410853052505251552211445126374827674958586972083925008965905485623105731830501023179930121680036924506372984825841122782803306115173889646380840266409047864902235014032722615346390661406615462918312650669767213327412988682025980853775132903759005103369438319266918813060979189584686226090257774941172242843204791728385044182285632556179543416439801644696149974046643970911483071895352343972988446115198695303325751402480451956448677587674690229000317060581432751054745649042254061860969509671520897789380416961132552526351220323152772271709625481462901201171153673351455036343105957971337383899824567492519007363252741737044924295844795668316222774995645482083499651436348688733644361286251994623235987004403736322515383704705549512725562993898288044469149637305266951168544561734464867527787544166036446760229175193635146349944092457404279536663659616315665068433392906387904178148495029270649369423053324152816944930405505769028479803677397767468312171461537059902878948491191702714032002829980072253551164449792965725454711496165592405686129687533462764250065981640488013964787308805807943677997256452606816365940368449400182528519490263096160259490915720626763196920097821934393745985455697407232110473759736384040164389831456940957530208126385049804353539017315378648367761314550747540132166130723065692442795218220964745647145950369907971972506424341453995394856262261315431701230758646581617049717181716882415330690652509866115816707321170492479758401718468879610031146332132070799949700296202993985432601860893257526760869797714508649114427818173331737279666368713585048555076943227886367825056181672523154465520551369220996582096889629767068934984775717819973300360739204456195244263435564631435130761122031817849184464509451936054729533595501473965964416776881057879160318130519519442311280712580776614013796018487744300969739152648415085827669894950477870794783346275479845809692734456502370961505433745412187475730546891228660360352396332797519966402915334334276367788487370233997652624226680212559369770736697106282332286505900252629194540362444242175302476050649699723853142208763799995279224868917281265349083027596447995179409031722256878480616965090532223891488585725059330186465593159620498488248880534920577372202299811903684796539796671694497587397195599589674986086165976209464981324098969574617041310265606815358769873458321197127484224785745173762815478004486112385924291274587703860032412206776683352661352965794700446470464509331040320778290851921194653685447248174926367364568514919550716095921842625025383648567683922858639551934359108047118057463188807776053884100255890664160637555550433904725473544016137605526250998876054422386165376976428243023601219736022916177561577494971059006644161561634469236959580067844181528303364156704023724471765627286944064124866845429999243973850791610213271839743319327041821170148552880974780289877330024864915651007647867762642150378278615972439473919741749151515498557853651549581519631249906442626859720067157135654163269909784271473474038793100866474396978272721466175560743458534225896796621128474418670827459293787979850334424470038050831268079939089050162570502205517426985486009594492007325317056833147131124678652404252372646976654325534364308984642880768029632034112080457515542478737577497900466950001691014172290126187741138467969653381040699704975414718951026817804619908452444593359315835402465569333380253045103158502035525424145485117133881507256178363963450994083280147022045101081819813151406270214450340032987096549765535692984955917452391983964904499870892969876496925108499292073344267900217768252896335782243454005984955532053004951579578732951355054430036223824493795385610212541426820728578850252703098092016306197844773170010164586500699137000693272138697451259948695352805446498075418763048006120933040588353894419437282251298178489673046659811715593196551360107898282151573090972110138489831303442391036738782561287255139922159681782659556853640066252759997710014570970151114344129010562458751061813882741957479298096750158000745102117753320646708076219557359088904263643358468144403545722360669921966225700936783820551151662768585497167928683430502246271424079606903115060870577693549386826978900973103669062713269011032930082506644308603457813822152073300867592670877096377676831768724258763909503551488330912953461784715467376461974114896821802890955188802923862275635805566607875050589237983061442076116288630512808133934250387242938761267030247918651390722643988233831629220905785390337997254581568441732810642544980288199981390498677407153243639529153642557658101028749977774905624098484220898379210610492802618070076845839665160799297651865387128538349030909815533747401812884138298591951357748932172813528798214212904038820420746236392930702311889170766756921501024676015223204488335815809457292070085424474944445623615888860911898408898914005521723080961829561769928951659708348123083896024171176937582706294288818472492933034563300473640379867471573276666462375232597175493640817419812558922674755258523021090499366114905566940408773697057248060583026149680534521239649919139595742584389190541400867135361583009792622588249923320986893593581151266688117974962845650705551062481601636416886307651982617743269531299845359386925323669512585896808727338181353200805308453330849379414945298513333960307259021460455218577263871287636246696012870371415493130981950142460722372215932034967716215919274596862526470863761744825701762246042924235837597144978426969738370125191841236241904543228111210631938604546021025618877152781190659087474606106979042875389940698119794837509438322344562979034654650535486254705368838585484738708163932105062825693976035635284980486745633001471862931462097701408321349936880738114261290705530628542217908160685583376127632218536601460136379957885618582748612793945571015375976007161579662140223108674347479142969561755451396665858058057910854890888888817291068756374060249168727039387134648579353030276975257768172944292714273781470421345585974045613033713668303955729132672757365298548944835140055193065098755353203428347336683544676130055158829598719765563095020923987775559090227979619171096726539550722143513414481280717986343475031478650880702143239559989167841939545360755918520232535099839546769744016625059359987387686359752466350722159073534879638154189824767252892780162461199592638869813252934968175445226283313411899983344603230381292897777196758385399446006080065178379197498025111620909041835135803143175416075346716876748854519084029522427957870629404582985071975083388120186231101950573635618861065277649584577557719492847147532504339140860303627588677430965748840128496986607869323634350588663958784293971406109202623777917170524034822009177550780458802220209367605111656347430443071014789969274921515182949199308418949588979304496881086358744409228973318726732956378552446712375810080719554759644137170586683764569489447093108586332388753795538617573119654979510596061996927854545313798752494698952859538499255274764291825049489699580193555345781097121712691672661029903671540143623819781816089373201168328372259737327559279613776304262323141890693460744706955868805943398294750008321022515734069436848831697908779481191117682377309697485513729451050093689327206962881139043472507071292274009644745563147657860772425555889283925171989785650896537209805296364445463152133480503808016562602898235613305184142686517112259507429727952220142408445774553340265032819934327346166492641091195600963480848018651328533931374780485977318340464339312925653031693193914926517743080536535836876815051543764985180091997470117284155328547329864020191659331303574992417961392730205885760919398790638726550684669351638029898085520963248374001297557322207796375924470446364281731706553720304986898639015900632515990171246218213979631290204779880296032231867481137645327308766396955190575214715721988277916683929884847364271270859160240831306543899369334806665419131221794827035047197619854421384691915136708970759004346864724854727163050276727591881580474933379132783726685239593001234161247273106948610556776037327831447483521184038250334984723271868267195218666527305718955029513020067009417788715120669272202447865550413645254406056497978136656445677289702715515503685522213781216693765398082449524881832035233945846066353449121383626057959830326077602799983225736892293132430923378042325704901573935436522656926627922974864173588179321711283081129059149107235208730777435186947252191277584332236778421182107570243749453242413609330151899459722672923542081013173825228784312514566570359240226600461383134404971573066345765556552897871673974883060694359979739406707445410889209850162380377033482406661032367011703755774143785760332632741282299486573930079040716060774212108702766126560638974014897532094542682131509743264226853442521277955376784923823448788986455520556785300782970240935380771800644125132709696029227246256035461585978135394603832738387023079037940778666189957061707973524540670246239004755083263530940942878258939536567361637092871606385659237660496025882760047551359223148987737889437338596364365682706604520849756484746271919658039578719042370310021215407827983087065046911372014158973747582070179132255618387447323594749684062547099260705275737427521727253827183806932042576715332272800542425811722309653392292847623025138059480571311792494145004701420629638593612195034535271697861194011509941794921020003900854867239996337011294790285639252907295723840741080692433561945191756626844926549607496423212094961939417161834831668281649159576689648684781207647766292808783202658130076748170632420129285744854905824178407468142546704943028885719731485838726258333912881942418032634215300266671433421059730359014512874075994399582996019215646695697780460052523582072813114777242764942255048252988328804672004795935052319157250621776655623736170896397994975177079884927329066636558628309662766658925640272894331886689525767643277831987789517545936147345919643142760170694440551741216473221759766576076475606219188335516224153555821664825774306030791958158084542568965590169277486562893057489979912674857836680064919087018599155212156466614730556961801188459028350710176656689877485820106864843434805152318843416829339577813152077610799380931555228253907351114982381365061256952304592932528048950049125921130283478894471869313419816885152132798472545269351671402121783419516984860635378894288830669592600998651711896790585658245994610815863256585117964442699091742907683773015158529050251172136351977342595435112224094774729315712800008171198379197431421281067635868663232372691122382627550598509595531522441839455434339645783165671698863821065546300323499597314560371678522845664159216848187536656391313337112919002277873914091672338814485851007833669957767961485885296083415896146332470931764038934570076724428002353463159057836036968589523576773258343169816440138738756732190772792368408661532863421068938271237650080771063083161837207227288619700181282160485146597594240250370583236986678443894278983732991686597518308367494751075303017060630344075421629576513817344170103869129753932595320043363233017346374802396288313514081082445755082178228186210900779524501848482624585578450387490013973977547436821956168757609865740493925971677941739533631439612477429449105235035711444016922019137864529953833036756113548252765889901462725523130038500376455314326477838708788372261826952477117233015188768080768813879151070445703786897649665864109900128828879672705043357843032820535756464756682252549526575751072865697514333561070148363352575609431750717817469201833963510038649832851503483518534321422633368592643231804754047362376939452566937305179356955289481658177034098942138984860919716398491785966457919662422178430814332939367226940012190735521225188252386871773035315051135823463097322835799332216872080837963926784512212075817777638871693164133352186603692277803149526586732686168480706463894395476595634503834336320777190736532517436942509847587795320799428028931358286229008264138611386428608376252107398851608331408254785170858045469695255896224546798976486468011362285557123087314912458429310409324486861418728252069882427560354301451906899835126209764592675435748644867751918043944322783881608633252117444592956186273072299973190369382975226202882456897044867023036340107235910392585283292237602253840303497459013624841271101241184925179132302837292207509224155406690988216953990989745493482598953761258776550174105877495948283999036525492198355555992707903505085497061351640439928337325105439873863122686773719072775636101711575605781632274865256091192574007755260617469991930261429185491235785390707162606325154850837954948926049284656071371118052675876727983557384953684265089831042708084515954161578991747766677235297066913728132847798427765986118107193124196597492304840647218145308363304991230472879340832081476378219466618630872826681351173315038002793199921408230327392534258453585940927450416407861403528195849978668331488479803437948509093517553274398623382550034495527425292658663830490594668637955640111567831259436663458501870637880650191028319390586529582424641639279821525895180985588876606632701599446440315737601637713803157925837678546986903410701668270271306213438508432046809766032746680946639583914548047735909059474213576207804432507929689735654237270427250207962393572625124764377809323144972589871610618929032599641262644015910458985189097369181595308609070067834434272809139470276168187297851194673368531201294427771771274297715616495428151279229299501265860386077624733284859770337665475534031228028242205303472590912464688848662745684504742480420438905497632681414870896786417925768941022671666891501096888172980384700131981371829448132868688890820171742529068584117294711667382180739187370773095264482378235154074579812550064414206030122094926044119244631721190205083103403689526377747869383245871004351630052154144092001122472324981952090384037546072368951283541243035054328114476217534757541007995921417036432975124901540713378844935239988766556255608360897922628666753260895129124493253020013264279468000431862694501572942229460209271993485286803077167488518183455166620623980924833208675894285143114277370559269972160566902031214405109929577427673137739924382999773266027626413843222183368172923119699668705428290268377230047187540756110191407529755862847493200433776348832867356927295478714480658863955520112532501871169921277651660825561439979859379844151714947411506690980988757904584296675182414556071384402063144381722033709959990712160570213852302880695370013534051320071616003151167402385932886184684879607416415358113002813424305774592132854956712805310133104948108253723200865972692459912912843532521408952908819425828998788735131679352760575341299111414643177879200330492689119996951459241059620301226056997583216833764340125287042769765372712457810414864991429763896727665060379992911664965883775901085125143468452684540528413208469884456102944869514970994362826853057063376483289357094069911902568910044864020420213417497968646860526742214711600290668293362207777496341773320590919646881217566527677822745349677909417897641676265001952869924935126867485201761769979326587383721829100698488684798293801658898362687985657226320096750890963493930047786002384769260103700235526372321812594032000918218849535467523803731853095222064207110423635041437206264680236898012987035938422920013221954685326527793410349384605744599720321333765941961053076937286059721736428324982836789518032922597207020024094742750309429287997013148164184851181492037763087804454183444885854194564311071824311760038171441437158562955120547234594617901154833557892790808316719222054226910619350476938377973595071632918682306876903206212597080166514554837480364337862636598541118380994174091170638949859581271284010304972956596434254848742106341319843444989667117711608665817170766677437628248075886547328321558914442926039141941140952195206567890894447818479145112032266152899067190241084013979642733580014047307170738623467733038262007937561169827441641854389277024469365962607025192974567710939673094894303479388377815042901065753349849350099844877424283369610030127165455998455293731236782723334840297960452771017620616583575726954097504553777651495570599385591127877595579998688213427971758132840545072152380050934057444576677306602460930937705615646490330312873564875301609816732136026126465841848450312313329845228736893305098903377200118248452236769776845927123337482777149075886359892814740166123718499249889222682420717651450295695610550564267804308761584898178792030024716581777837195164207777635513851152865551872893173299725928537820073126070771614579659460963915324402844219732642391915136841433935099044879358424858904787786014725876797873684578761533564500696709490708024432724080850011986519604118305393517716793981410669639956040187961086118731252164587792832079778502572777090561426194620067244513490259471593192215811956937232311646645176902246353084933152857120478070237955240875321364494552883154001677980500776667344916371104019840316929724738227303794307932861455337235867502271306650902786261200915766075459251834598801363631827075677101902816574809274039593843996472095416462617621826864045092858514058597797204204380541461038976773699029679242849167053797590037680753189508159837260970056849066840013549706948772129019228837176807558073587917660562295083075021621699238113405779740738130305206641614065153289587780237365158759422659277921026743017155545802698397295859650029389246010611893428808682179303592652089870646539507544805795156238665812710113476835806082305589108669105006175000645219544439371333130629843397778557200437273112362063112580256631067804241094059831767098037239929746555328715381905715615584390287975474543553284911260027720198272746288340401753518014862865588828921916217823379305421351589331979103389373221159365442021996023957499568778934902931173317745886331477004514520699741036818179445460350927454180104611952029029247367808895046044660573542465581309236911192531937164403103707562281770453032961398783036048187515172722583226905705005200609297763987050956277581558243963922786380954751457763950121342417624076829741898426914132759414827252203951561893848020367827358573994036350478924721920418630894962097954758388509932443392557830473554550300164681629055087072033888070994228151941475209916721879938935335163899626830323781781375894064520617586940140137143693635362767750470112472248827087815566668679892488205415557253430614431152112584989677782343827089664399062946615422938366520892693602739535486859028457647643426223166166642317320522033300191643812930599744047309007235060806031935578908996623324208013821218906326358286686345430592480821659763551087902419766946452172797699704223336604574609349889503667867574007322663356109683853672952066543819668051455635063815307043141735041799675205090455199553962712564312113789904024100460450893102746316298893316583821699746041600125594076308151958666619201909351893938879094041986337345016217585991542721645517521370781601532257401839489353190670580273307127143671391926144031421921357217544621865917366413677056384578969981493977715810983653032343038878606129869457922377838061559329607345516245708766162598437412740012277426440295613422574748221180836815401397489813001046889262424742399142689911374090505115544798755350743088399569065357845546884583198792294239372128766940523192859182784729884320153584155221386425741698566008351621103840087121347272359958175637264748474420235138565650132323245847139287692883256619630417030976241170727899142092849209102715512767563787375399039521772680129289840013168985014012016261048377084294708022214932656158170753593883496879174583118577428682218645217105344841296195584120299269324680728459922353900049243410191105424537931632420714318158500357646625808583690734412125450891240883414997135022122158308932497241445778294574179972320866644423045223478777839532311410333284070075950548312572139919012556495385207007559061471185267016991163360565912282876289190452290720820468991116788505258970741742478161504924450887801556797055487432180314655008452105926444560810614346091367957262217048604963160537885967974004059438192011788225322975482268615179247184335519812446626005654500887983182391658867814799820294975302316099441019078210098663138683844183861079423012404856705573416258307539809313810019688260472192815662575981729366040390093710570759434883296434974066390556291526947333394065675783398108686048389424735764192708665233752423316322637901680851499477800569940233378223257304729736641347783741263946411672293344204069987404299388140767475239889212748246339368231340226108322125281236156726301797070598740072863816020215394644423227525817798665465505415518701525320233758370457641032802918987197773047357992901506679371113953729425118120426313760834229852969811238484995869536227660580237596049897028054886732319087498852809717729511669325799849862495842782519995962682842101733189489571712242495798484262879813844688556614982543151367968279909353612802180157065442674106228597335659791921535968295882031203644443510078258258548921683880262022988378119482061344186963152967061174100125816559914890305271149973400041275063636416764617762662904105091836337109077395522147239086405800915919219661704906480059206241161892539558064525004993431585642225409373411492594424544072842835009570390307443065173309558922020371867549151310827640657674014936348481528441508886600881148194357754516367278167043459750047909491448303788896465754678291810039685273855010345758535416914831213266079172167430499206668419510511547742225467480011531301656230783899484042991892548783149966979599735210268972036862929942296268953612264537042861250329443343675124272102969411151153802899405623399107076351462172413704930403895302220838520881201705000603495038209748281965410185832128243923705291240390211286885516534334575930359575044115967642840581612240754095115241927345521560705905177140072561292831182122582649075749309163044842413417650486237060726982040652656426547796909856130142163210399708746749672471554711119995978637151195812486495926194014568922792766131544314770369148407329995731966844752809132216924654876215270142923585807218111984541394414750131344290944119984649406045892925802782955581267426519747516563247129462052396204660550790182670560100325949416046691910313844120544856529447426528075280524765972717647927702443627463828180605617329905429521969581128976527774983894660165794077363854733535501614717059544047849704595987543829709605431003889762292169673164835411309413715801247585233596669111641533728212164981273327830230842483360083643056623882907210591484404850166369528287004880742687708380822247767447546470467709817480852437869406703713188860217628478645091927423063974051546538992605695316222921433948422261860997645699836525859419277617790717825456228921443451741179707783695139675808478721820102966936282694286426962645920973944776887973917809728982351672912685358060466772305431897990316337715732629578841385048311931625592621950511362553086779722345301439440123411215013350634286137039699447145115706627503493299582200818384379732674168514737160279782527900403450488366990249292131101039274011076547667518348893942430852154367642650798717651730850265479557978653367846586870609241559049365776702812358851973234930393337693422686176417554051641004110055252766048809007631038795058332863755932349924107166258097790083916960824639352102613566907906827271896853861673699431396962276312588139696358102123091313978898385663713301975369936038769785823397665317977890072460801583064579929545607883342136308579233769826773938648147947350197726635441764597379264046618977853157552750038155752058711406136602169329350721880488693291868546460567549332175313496858089925714792465602515891335775070495822455762652937087653224255153914629368455528796003348988173270540042603300771779080676819273953705009324072109558734191810674930303741484785377101392923271361578179653638093894514241374108901682571119501393686833886134368914493829379238734129277671867112364381587730047729361342919083443253198843308163178603177668834001191912253449414019327408995759348439777518536625205027848803931628801258823771375479640107859451680661827055528864214907444681613002245506882639301036950353936113539822226621543712455232443981233365863252158833089943544630838819417212164528665328991429926466094169104931083362556093370112205528803169241074886483105995926872200237800823761927003056278790756059386028862103603150812709078893167752893337420041428224145670290704500141527278696357569936228783083204133217684368435986465836797251974016736861968082391626469707609315391136019102816981271980919816227874815414156669523143318496014564424562158063128863750842534317906843612238662970174309929165845711525076823021880328499816957234803726666281145367211267174587939209156011178106414621397677633901795433284974293594752222497894444402600663940268347432817312554069198473771045973738641860280129105962729729685625747918694829578339750593279223801935188995938801928755983682635996578836304324098298825792610432811187661240577885702218238572745540941632074055276143970387432516029939071979657268946425115627242234273545343588896214019253467794041458965951293134053982402347518393538386845203223963935100671529906561851475055462130316981193307911235936792140946447861844154171190758616039105590785069765097067263376251031631355777481640325944261516640260192117891874972476130327933252254063648209124963051360229658780109032442149479690077504055680051555132088186166549588868200717566543583507582675198610824290827179172901699029033748972568782786018193631593719384289970807867005969031507131880152324319553053948841630503324115246632581495136051756092437910204141150470018876801951346289162602092406164608917733981524362772504398792046428212608123899996783456096379061910583384310556688177731168239600083014045436244404361557419741997752027992081944158603490177432567976813925529833469542995626679589942542247248453256828869588289250791416512584132423130638023765766113169657521848019707699633085495013184155993751505206321239415575963830840500357624985161495892948760580288039162903282644348711522934071010676763541879774226003201247507481639481470627787779689262863569212433918534676580059525878061839232738039531619294648267656876653545254844913826102223807467889631345949947632052700755640820925150505329408926449389977872705284728913284814804507165394392190490464897022938739295078766571287197995565588557468748399996705312378885485504069561238590992671605441897895203277131042868856790811419116401938450667269340856834313112226803983119992328667567093182951388413817222038567138444447241018039508923428207043118283010830473654656218012488786928494142681635384807205378696323908908675572865516128066094307175840332978921428120873453411109312781946682595211485114948148924791522154230144960954683558380765164609796935127246186819771321167631355879950383130319553385147248998593964107831544528423839952695789016816716229968533933814941788466027069670473187725631003987582668414627193564598363825038108250217805128721530577046369145949976683838993018615696242284804257270838512686766858337725472652757896495219115484262787121917535699832850436879839334044202161808648451899470375521306011556776090574797716794160215491077686103203072378425124280029651169570675833796548332925431937834974249551253130721167750215755790116399940120232649712428516013547208306796981258947020590089276234998355371392224293192706665176548971256105983382429668568039449733702447564742040989932850103495426754303443082280621920410694707645090565905956906780708378751246762919827755162502078656034798776028275008445236193792412496081654766716604059060471329321276702946909268514506190599622943117148074883678944697350945723886453488764907332214264587144184726549451651606815297402049609462962877887917810163561066651232872816582561830460584429754962937066574294229241404402918123110309829798402139298698831857834845593484539848879198177129092455285183161966726995707560201212397041636328350867039840486382509039237110779371299575990013924361979808340188946542163723952046055005854617484355289514579309504399771045918129092403882253485753372001727712919654495094435601316659195634204323166330897388700561042223788870483262641936178765578587565761839260397283765379628904280295037153425044468990127644816965230274179323007140646344581600423136613229642088211925675253192450658859346856671427495239401210069793349858540818147003226065393211637784772086029729653791049810903326549278845597356432926940704353843130929858072930540587191000596295744526609882248293579502498902764488011403159941287340700182592578536182653991164948542623175066738000334627739652937238956735976411434915718383701864683274293401654509520404326596678848724660501086871058100537660825275650808577551831414134758729772076530645779556350263454454621188170837830606761823724450653326033563095967592754241907775103305216971956618940107329126377617558442140844436020888618213922968519001130953540878035109389950204258609177314792609977153810581365531349354740772843065891441382013323529044036630161952723896418388308829621633161047091542654506499485301625361871068960365818056779076543371943837158967411085805767046028552324614722093579874337267021603627970391670942100762700107968743576740817804108457608843708496109761332951928351158338479694514444013916379798820607817130514766306420094357449772843716174856918020419792091187614064347760339579341472412036045496025179242480570740161809244752185085719582603737806314818958102432191611996207660611238953241549682597254831442645503873398502739009167584250595587993937790746128478153217679839440802814176082550491028411939909484858908023186635183148471773180034398936013975921089912448889187601415246909906286328394525478385059496973898381301236100666992142084667312159380081333638316975704838928604073919307255948773077202468693864570854389582679105705884582853198862956634983746773128260548911861024056292350563074489632871956149425341817587429969612049573209975596429574131041199262118482846707498933082387931356624908294248175018478510278282853868044260598818105613573090918047744246730723780405408342258539198966795808040395229375538944073254249122972444789111106474744020662760325219193010372229026277666767962652466672002104293089251917020502782439893688685599651884906837909471596097553731550694670397053696183768481352483006780625452096332458200394593479877901586010480973786251731702427465083322803656610822016531688855098351626797586750200048291767563113806769822004687070398955187794684535104104887588725989099120398925580153870862540922235010812670424677431534443244235321751278321139645412304071669989106233520116208578103886093805444107013941350134467433334777821118135735818875756087112970795979529737972085716855319638230662340581230412046511996699186218767836330261845796087594625524325534082846445100679805717917397747163765690232741001147856258281747487068837378792900029848688372655392743652718814557164986476771705857125024030962029592561657049062568288905138352708097610747498058540081712952602997641602628897538842387978714479551446086005969359639122205609948840466116917950814432554502173821163545552191268511112548259740822845596015756505153714961910710438466193714745200873378341435241852313139917910146932352294520977234010688950877721575238275429425896359766226367296536716838884769017337518462717526628109023389702108910852463701298974379890392826327175599569891701234820637773118330154089183603750913887506518151890427049904490777894176600652162445693057506671365010236840624828391956646259672857098054223811500120733791365419350689780368223353618050664934931214022455256633514522728891741096853363210032857559893450082184794734558822576510637112136949553938608710992689868145676825439371579028552603847525028685723728140359495485299165243078089016223730083617171665348218142381359834881379465839350308025033514507094277516177539813805108408186676231140384192992085485455229995557307440227070558467048571492689275856180151190321047411980260073214257298600842827455212724303051938167625798968635477658622700880847520716355045343957317730926642001213284451593863675471014616161070514754222154626396002638809817078278043931368357220342756197000121110145523308694274855372845315286148029930441397050376218041642882991347963545389313419906760301261858913030222047136046966893034454205319632196786920478967964598193405021521827998737922380124919846458333100935702752377983693001979623098934038667177579004527004040150524610105232585111117350417945254061945214548288386679119729791996222033111362892352087812764685042223391918630494143575254492084393519413498308598718613162126313152184532634200123288508662563192985331179474919239151633618827119405247391208708262604222305242719523425434767935128063078075510823679780770704612477076817155782348684212556435982540229136705074038407422173540083591008928597683782266405032417325797778582003901216335692144786886300107963218602406222450922106525668403754163090422421123883157112502799700023033706885964464139399895691408992361046453650236948298074723364417179868520764094183131397183244416673986256749968572758812977878827658938210449128857788494219957555317507873745785912762349903158810800033547975280530419498507938530781229465929830948965223930678246071071029314366371227310505266094207592369944839730871150187357756800955566616625979355552958250656971405420736572504001852749651775246696967431158365544242459870293281507563690723068698357831753349934100211868781535966432087750723215544338593970247691532740898386857335494009938970737889015612592522481309011166859117530923386207464227062141905514777055114757622688855312785821765515146859389650549027536185502089193015643160715418269393743121257091227719485970490629504371961351099419987971754161676877844405595101171492692403000252528939657931181615619204499750779447129245308637647926603873207993584152974172318142232592348874455123442333361908761894143355513574859989284347383181751174342590050488404565116109179699795510106863479375650760376729123201779939145953471495310201598216757690759055239277207967347827562420056327030214694438855287764170809564249496206005440381356340630877822975776157385365516745276327709380970604778345078140575132096628618448304778032660498397913642814111810293325965942294824936060826075146117914961153716342933573363786747017583936303076898940761511140164966143892023028793616568535431678968387623224369298548943089058690824804615181151150883545804242589183027809205768686840132205482785826880969105308190213782793387710096117682420758275230571890906579536350205884387719220955542915536216047292184810971081976738008316511678375165842097073682237752299530194223855244554081151975955707892417201959130050620942424705265737020780773111708205669013133838316182995939043416811705259208562342843356533853771564893079358144084100177988600686596731919517396927165369516706968820294962131463780626283847556768240797068015400835457989469107660146363573234099774597085301290337337560784657056040704566990165703899668284582141329654693978019400210936535730995471002788564866097201880761248808950296663528031447328752121506310230636977300184385615467290592877771466433076051055459697433014863794338739619280072786367867569949907799137147868231744895125721011349205421689510427780993272246660625910425418294421453470224848969982436394815409564726392936444942441025562561233712629481425739501234332353211055897307585213607714627174883551401950420669973422119680781591802158119396860215085299219262161563286897554027360656312983011616207959000150139696970225861464098689402936515907860916788703789303204414177975713251046647783160599786429025436321420130683623156538022970153467898252034420192342093784765134935661414136823807225031154762731527670594468264409473566948322910455441878706651047408937187234612525116226054776925964830581963716942386072525502386992254459321937362599622947211512164887090846745799411799871063967859715692083867586681522954947354863578181861262704712647326279923887515218967863598972048700658181764884575690002938032626605267968829851158425155195009358116928912522555024465745591738742091146788485645969622861079992008119936534749357239406800122847644794669262209059793958000902095300833084250247155528130647225403205435952522628240636432744199456991579290440760921169573062704136230994587524402352346018700099256709031455845218495092211280852944047289252990081904952190448929418521840204126547002215255200527168932695621651077741094441655830799816610122308732157932277650906524347622561289167516122808135133274620244055096794176008415052579193806178142802384126285957777062468738413637572472197922083970279124060204424287303991826905078865799118268055053383745515132903942188271051646128052490391892372397654191497176932160917043979812242978366065580895796532572231390567215346298912637655722744439020889779907185863907742723172152591287250105911100155218902081375631591889239453364887397665027904682575320219043531725526117037259682821824293326103866158703283345068796583488985098242185936172255519580292213128066181297787191793013189041709358008446259922100249636454787950680446048548053233900083897725126345633500885416575491130245099651123169018914520229278238985657087222751287469525696007880436302381359550404071401039798123501853944690184568689750154115862471075905360669852367091940678729260092740793210260588798539497426194286408235204372929805346160175351522035427470240856510382251859166115889456051873349278119014381572984526585427518441981172333628256881876776932102575749797940758422861486605359637963396812090135113762005706802131527879853919610717798877939920111054394169772594110452889402050626370230990970106125939362221000203692399130765529446284294625526809026814245161972162074822799368857341471658772298287692572105667987738150234973055106147873255596449535704335156209994967394920875814772826339548797317338980386341523481958896767771048814752057071236388586648574364288719632345108148009551845070978284698309131559765127239221976130006146937386550828441367836685345608172857242578503570672411525463683268782604323494962353095128014440748085075025714290249591971750323926808891501833872698732576425508539963207061399304700402322979633824590505880405529265520689865644857910036325217795921870998846625468451467523407046662322239866583230134459142640819431530398662583153885086436535346023041871886394589057754679935569391403621060408114575288554692576532808833289910015965489334582544686742510842774067463724050578530883345995397989834218407174032367436351789941180921770909818658359578853179932950332268784881340734558160780245549241669531284437022689230255883369559080809407213988291218318867487852347065929984285236506123691800586061929460591968749555998551704980517478588834190253808918039186605948071831074032151643884488454842261994719400677629398318922047149830419170040445033688006693469762784948670716561582650917804844222864568401005962697960794157139857553379853229746807098348512537449743377942100289896727682861815613306736609941167271597979836761550867719734560196430542373670877030541128863838172378391164037154068226590262159917702600757404461744315280935490828981661259661762317028064161559391302557134625396456628390629939627599444220117611021560428672673856628965044815585398079887471902215985508793268417725935133023116600042679842312853145287826337516758771563591672938380769454257734816928569998354579996598326946490867790122159375112869232598104764521053037117378522932388903358503125979598659719101938693279918245448444116786881215447182001267887000029978102486376037779122406171170714883314866622545324929858729006529393726081778130633825409258823219340612549447832082519344303404743454185080229968685159433679426030419722619538535330884594517913034510821724977061460785436512563605723188476534187380587943822685067184979552015292849982636311605089567885830287242256986300611647840875685187631353401340113746100089678261918154394593564923960375394782520812852614504186495853843125725091047519253074247708964008006369050640233944455131327573589804153741957477307612509746690849679809282976815767103086449871656397073054707985380752143707684340853635457388403752495406593910578342528314290768442523746990655592046218672577590647920114266519851335818016889380331009432878556141426247416034353407872707778117028049750965109718111669069739261531280848383754176535624708818622870303635701798742157435054957694411070779993713057151725449489086600085400376709333659071017404324057545529565801319799379728562483772200825092183329856066108435274896093830145287728487052058044322374764651338911233016458576480222346732083216570836683307668506911653246665207688444137527715224894057478486572452179019055711179196575690004230290409025265723424947982127983135985591970441380592912223345382037207969446510825216444719158617192033391707906080256744332744311098968779398456840579761153416407243342747272400672665821702231935211732173686286131361511847681788897163350088864627191079733677541106799974100601134132773401797299558444270561427138560012435419521972025625441087696287979576965159750631034445244834765950455444054253144675628772412558208166291313831171420955324842007877460299891810700464039826819077044931889395518407496186203045339838195894136818652159194547163616810863690541557966752641831645901637093879103135979116133210803929291065879355992312274237241197258669146587405660384143300849943570668437385529965052636094238293206032411539474215953452879197074810711892140754099227597177788581977955271368319939330415455313976008662632941337882733259167621942728122061639188991047934219896605283703832687895520870304993499534953311000689924380517190455740671739426900046616592621207560094670940143507385166086373927663963075718156001850125436294069370442649737400812982618017997589536614020438315932357546892822651270637923568100165416881298205489631020477388709271213074925586152271382839368265919758553564407825771127910786380292121740417381842517680244199955818355397144010681368552234529758821811515969950632205616658505051711284100325700819744301687478979349899601548391736366273757487864150803368663430353058574633434243056548398302809911000091951306264824807467766776075834796461098783179580457896446061387193973435813709087757285574323739732683645950390891674684660858034711736023212747408474675545504176091394871553137337695219650621741220755055150942746335566881881389441052748590789171574005336591147423548594685086930635500556181705141023942421066961853696568984502822353217792999453816528655355476303593066317012779908707031543593864082909654477865134628368133162082033446702497089133025317903306051348833664670927852281095508618295048291524133063220936839147193682278103017533098997934645198634103808586491740250796516039048863901428836874527233222750032623158671764564779013168261017161790075988420535609403392062274134360078020211394213663532530531321063335274568438826834505679429818983376269763046703312723203237857242306134078502911355819644160668783678249375572771828176870399071347362279304946702276344796378575052585738710594552043894081303050024712500468639916836524982243544206129208898252859285761652096581604622738665132288271146476625528070095449300587842374766526500258173726334815842573757068771233643097304230504913189087681875247298394740163203429997497306145427911737123630645783817072488311162402990843252222587670900306713788496801647845157296032967128734906308025091103076398546915087213483253984897341314642072414089487040959691499920090590731505193911927193848031972566436063065834246977034364213343649253114237016050582327113082438057021499982893262847340529290985382046948066108430644206011699282727273330604047639802899630391620216742102199932563953237624539978825759762137152278632419805123380030982662115267466732713385180341600418841732021717363377076673583388947631400843876719310272440964236391959168376230268123946547567931935567156959620560638460973870997176176853096889513967008316441317916041176631535929635372382176306307285856968534385684205964281890346687450291566131817093651658132938078166777470077256288451279437934275838272001731234043608171771048384239459227772534725635814448380708847640979440627301231689839259352057331594147729482031924787782311136592558232217685707802227997771492259978228462116668842299597550664155323545137929310509605548735248222952524635661875866866396780596700678200595018202260923527490777728276268933165142907910914809109692733142502023627761716536088460123717308636617897433416092510759846872424239193534566980275836760777163660453536272574617603345871016901214763399475026310699860621623657159396500809331534133640525743862394857151677688350102945458017178227449384989933288938989446189627768489064338964601069839170909305263741248050489312529265913176811290096367243132802252446042763351402326975557667108927824450214749479564130651784599853858015401850683039005336401216489991022364335217623666248898613014300297948448664070412452377971393804482097370745895360152123074939693588243591344067675776429905307247682587261717821099935767396697214015394063522464272802125739341919644247525284396530180416604929964811446091826277441790397567549122368429515453186151937992419358097930099375924611168790503278415051979327046176414076768686710827739036415736538683357661988869502258785199672955904416974130599178636903876368654129473714838320447539997199971626630742740123199691965946999838557157628957141764670105410008709892501908511529396567859085626258134648767578383656631497179598697206048684507064795063942412154103167702720637382994723978955101235782237327045252329393152568122671791604614938927756844167360470276625296125331381727722605523012293084690593144091966343106011585925219193181211644402309331022878436014967132295715230821492828892765075512055396635758822162099913807854612244501952426399089955136594684914785215726088926952785266013541792840373613895251466273695778444347937847326137239946806758118607360339818817256472349682844931819135578732114834767542822053092661804052256252260802954870135107153399260165299422039224643314362519963851835954407972686919813010250141287893330091516753026000025395875391584718509840254740094474233854802117599820502161936084159083370118982992523543910014801640893905744484334455610273400774378913647269180938391775151147830264835215231552774745699199968982856528981048056876836605847117118749966190725177159860339150419213263876002907139072406413384022409819284044393323907299639636721685932129553792466361262042675033917026061282655549405054854869966546105741874583323836767528021547911616840257175782672486648853105242710282797415686555628148496671276002406104488895110728404614814076920380308423343585820611457550899207889913747644843670685082210305210467750765017573081545527467781097682743731955376751368863029690927555375759769027014752179863662848092003946822361031186077868087689017743949229461916930482727664696110306508615367688066922812537134668174769625215393967739594365732305868329275628335920097327696771337307923902157216138174456919028553179673236869286654237630668684162574204987767614251297516161220458051447369653262342788032821952982189989223028471273166752965450005166887446863760377496889029922502248288958557640471655885011769601323105315353801053554184403052332343660762890839648990808827364388658146721689774781145835007886641234288555418408639318300582198821098462096734606114967403916244374641975071412834661153865092503034249728480576943282432223400412598506813393342754507521724863810062152897549603685051905883523826168672823153175695472684706008803227143421657529413391126820463094251729794645937853409834295034574419008830024914471923157862001183140652694933323244096796773023118384350638928164812385446573813341320043100928640896807777412248518799483377299371654387936922516636923254894240241048624779702973960935057427048516743628200049399377661992906492886520707414124668008011401422218675815011194765991363932180340667774362909542741657301341606397703354697777904187835194965598167825655037560868081657125005131748598667915315592733269399326223107567270794040640757094833753316838015939057247399900476345487678353163026436615617165858143969583979260960504300057583164519593081189450018965184453755779889699456060151015458949329584120696215293518543713865294232428699380849535570515223742297793997924166084828035752081149737756079364802794686476904660962120686482364870121737369632750946455390273896211546515186840387338457610741848226147401492212022596423398482822059706979815009385193933876365703580311637012012118347403204536900266029592795618161801158056885785163063668699095334316480011599028923512633000398907255449865662415823282115986871877586722720434692715594290032747817729360743585200118470976059036923321652061927385988384211107286621999113476888758717167104440147045249105832240320220202950608999334149466537992979726537925197321318768585550726797334937835314257341285368827681780621293766312558219014102832954265426094797917935208577907583743794853847813644448922683852443272497304924474081586667493945689630052507816290629705610764699661331140760096601286746743617837067036332521663057933027157768314960958948941172475314757260606617539800782143727269977667556570043210746087512598659644537126005938360134509055200674779415817364934904534385436470074304088272968133769021124789582637888577930522045528438668704264345705146811105154065329780640569287977638360317943965626177712837058402843638500993187920144155666920041600923617666766261721136806833335768290637874898596176574944357991413423635810573135296061514627866716280361327987525531255138334480704609763006945864770217750665884585948648236738955041878510623677183583675337841874272909948904393147120043698000495223097249873764415015039191246821439885758077901673938343163579351966789866581774369125262109843326548179039716596160241421779776530674341498479688724596328150320200761841557300762195926451670322822854053738051939564755597972518174155493557013356200268563498120364360593487241334331795316935234683074374176806144762681515404442162102810709264664454139651547262181962599422868031312470076910089731757601080349822691033980237734652566234606293942380301831545206692757307772190747268083541881113647559303955069698768672468034058333030442406334476302549993459060507957748208173654219083664885570052908787091204278500615831234762129945569343315125341512631777037238687897661885119161886834566139613921064427340410961799347049901120862254674273152815278610214247438072288781901533481759696420068599997691339995397523036578721617278108607057508735749391998625682035684101313285576195789879839950369482529857578284719409112678264682245500087420033461639550995317993740662647828051109979612112537885680628908574469251651303380218086375774429523884738516196097339947275787025526925515343367410899574102650257571273000899659578249358091668756675739439411395722619317397337454940344834084816510894441594644664606953637291348514784407030045204099581202919996212861887537418046335974173365809496770962112507845556572609547850378973231690355140347574420784983294302704096280395703675596858889798623215824309096593090718278771807915643147804786149762863441561455935667367732425441530458065521780421507460618781459096066685377841175334871146542881733534904350865201446461614262382707184853810823440023158813284141872776983924614919362531879480055315720596929581077860761179383737190483163930694054763514217837088978410687574883947251217291284081995479291359934016520388662975095866351547047874159334261931189459014859437126388576507362614334545352787474039858758720983690928084704019815174884627932010072602193082977374733964183324449781321128193942272084901015568155063292627870642962885049478232549512383258164904495591021234938442686310926589720161454803011125368217120196959542784696383458950988391144256055679381567595333129345832401308579902751963087667123260270757974048346976238441735442528400693863104258632906064230538439245359381951923442206012376288906823734986616912025246480295258171422076665989623132481341337858648074190635264120730803740689063771617382722521978047133186288591225588179196058270229301113991962520027367603988342151431590380602008303596442526319073684927941077719082308898230009948390750395912644913516611968210579158320260219514386163575151583504418053733839177010442367194732766995562122470719597397453227508726854088529369523240379927479435706227240431979147168871895865372522102171609617238008771898607736667581622006541244427874403117985668821956271893662630881667305528725216746207096423322471291607528150754701553270701712682727376523349775644613821798252414974722555800778386571081660129265305727413820898941600518753308640942934675693799608354369992409263886076058350716569408675768714520162682092263276018139740592759191663600784212739326628248954566115678191352335122074967901997841580684606674258431409760529178419200596704622987861966835402854675534302589819421623620642735139700471893187082986866926953544499168852536259867649984494455260051286916579650852238048501593665956910723234731121789104105487574596524561588486741749861817802232800534959723578269553686401593794028649304891883943514551057473624461033039851620048930376364897611573989182485729251551466429605633585840300621895559083450958380291596020124892756145894488081047120553375126669743862204060384806742495341033381240139933697616760821492034980849209746686110521748587852888429830792906661321704555155325295059307032282575005396271416978290342912980026246946258067125999179192961634446581607801410278090697260101060496429475701828007002094847221628689972207935713589243254971106454374476051910344843417575889914279599791342858039516308177129076382090167351541210026684709977939231910463783186205097418253256266878670634465540688723298181025395328218651815092429770762153454942522591743294939693946601469186491019715467335047659722440309689494531586618877610159344882300661407381780454664684573713286743570196520603977487995080395097618378159323671145374820803109905600792640710871167497891273625613749419071932882236733063478126462404636191546778128864221918993378099433090705711725025574117047809190512526974253267604172034423664864848284779677374375245093321304940264834764318432418746595729608465435409292778376685590394939880631339842724392027573523866916528690513736713853717279611895457223516437133647732171773188032144035789509359979200667376306226817056156312063927861693316826811849781923694605566705777624809876375065424241868554644877776217722362511051531694269541090181537316937585697045261472399030621792341097653789522602317345726809941642732814191643669015160206935864457587637004596735185452412744909056945037533931328771370722544160887841590041880890090167914390637120227595734721781883732934144328605404149319154066496406611668414672856717298256743435175686826751139153440432060595625451302735554106207647665513688511575659191758323880028843914923195325095755354681136864521498342763369468659417567776135516046111580899132051718025005404265288185783342950170463917156276098380650951716977378757043358330128523550087716740053797456632406939506266690508352430733972662205201706552479001521406415139606597972321616497137610765073356283185006156288674190497481206640221651468112465832464789604930436031071638327104939051982841073603889547704717306153227555072048499873587660322866281834453339477046678912479169063757016333892891138186080770284997677150419563592300208875549826575129024502793083030460034364331953919284509101112816371310297593936996593420033529824791706368415930352129999478197018797214163873552253661394504969664508405599890404919498523706765963708875829224570746097409191088421650081698104586704844239803840756070455100907624639925761476106876267736966990051065077183175771433885067494144716963613562257002894375178350917611729659878214693370982284443117221163730400026894837351750122494412082152137180858985214870187070662936914713362257272373851162842483547246260987028911102588827668819605473710582501728455204644049577113170624577907532095310373553570474161748340548695190154215437546221471545398045517120291136391626722293920309075818953318696794436544248611627016311142492659973453596196317596317712195534431726841209284810202696720679016836537685754394779974988772956595135571409228782577807118413248216359472924045818796987214365865239571230051631536789514290963809365158221981735359280898347897525514284481102792051043467939428810316230665003414681959474911812467007884950486256311522539728302457409464401795026803210649409094355591487155208161922285799753598390911874077858275277594714377208551001429259945440097922660653350609030864606755183686019231082720845803407392650922943944666262639087080253969680819936650159882639742540853411523147322565624835821252448202745280022121066906602457740949811986674326319825967311458171968921176681878816835176771181213975469044992235314291436141604881343532404797630963216536442876302714127235082743042690644332628473821518137933884331498319781202307298182349132977683230709615025998015076661101646764708743475695860098905617906283910347169175290344966149158206674583981447416855516459248274972960775294962507975772612086525264347554690626243575501369683930455355705413962104528771438269768341841062762705887717844922846515055846514702838906451859287330149721500263526120031916439566918505713423276837282392984226543323113885607286247651363320112967189313335809496828638783838059660164299804358507474117038346000217484632093143329110422581770603961379131530394394910182932322270419124865098799828334449635936356815649457411408448986525315578788825674316166068648045336851048482391779034635032501817396689918936453917158150039886124228680390113322147432764138657346104174549410485312046867872916941478725182434247445794474431283144192954155940966762865268432961959136425908177491647919382770214664766876661782685232121905132993126432523918337172724618129686276020935944775380876746028085470914997944409472567202865816675742791992744940207847038689041828276878637585480371289859252313996105057138025186603810334652821499822301222909943597710990085628614464683171599794919820304063501503624810166356104602839776751889698740372026640856392801913931824180288932872658501841213986492810086855032486755062156164039809213918002196155873167809343402851832126970809366823388761026229286341454369686833291696051868601601852874319244549846122362444784927616821950661148542255484265303836671535577882560262928317438451947808522535396440532116940906656777505968626911215650547999874596104065582294917491460873164162389601361374211194878841570574409346581968142605913448699019880905351883042143739963243195826638216157786179232340244887793055149944496097823497159972723716950657145193529985661314981277680368417489991470022159115149536947448509278112960831168865002489719664279654806294927244235593442987675933813837560159050956195590386280063479397114580110642115992825580587596941654525912794773045513540304348096784230728539130863484748282196032079410451603879938690487620754642998032115678994576591695298016376587408480602903559229567330661798375755019186197373237627744227000779423579876957974206281938609234997968378764950437188560073613702830487931462367034078021797050899310386711618048146981728711464505247877149054472410839397457475877952269202845473411539518785943835298185400561285552846455860251393176120796817184738192446681606262488751459052332066826497115459220216628829464726515051331416469766138459957467068941276043201390766327182179101655589338259740104974287146049117374200864318575606350696759315073523117279351758419175510451129847120584629308606998708676653451071897331989676945752364997935766447830545804495198994269918923769588992627323173217169939140890889935448154276409692030577598371531769334758549879777994065225483368203402259669547407214660704899904392343910059800550887910278945808766466428373855936031620570338715827927914222873340325802743052865448221230930338151233564103818183874346482228216639091312254770437769853094297363498717454217435756285591079362518054858933227627755920484474186458796467447142479727254600640222180696990878298579821902005621264795514487901769611275548199360977632992847460077690962874516078276707343753984894877911685690372391171174594505383268256541706913491700447165138824333147098701870425440105704924947440104378117033324172251057433342408673405441753468568645858141422805256906724784913379093155711688995130166380856948712232604676609058687182914387858508911131240878126488281330602598912189215191317423543772851868953037637405776946338855040307106238703504433337378897981238759895350295737509675303480145896125575689243429460003570780414564370607284650596929668091340930731560940677650063750345926074859642160760011889453977316500962679881739650721496991042658467698830973177059726492413585580881104091569123869491998542246796882567192466937261514879565633208828379899901611543549364464538696109486543331082973982685331872958162064988370452599926337294998922016400553215847085384529265322215143799792028928857283796479383120247497204583737678736160764678655467364554332133406004033338676830359304241131173447834145979786525589197893141649505516190219450511952275105363196011163118673366959708692632964692344777805023632659726613491541378656126919983867226494117868005038265754513169644886212356371154842271474346713926836526841214600742753152013352692517933699689603093569312447342849928829317339012123857770656354721022149362747328584648285478249118971205629742410045848507857861736533353427927036592322486391409486923530433266375148820509620805168260787150080539133143794956506055232724577768816907769585818781252748587219809358235300235602418879523483071141817584192226497220911725265613005788097183324974546032589849364533394990567610054685381227415228705071991180539661820516343416748746788321866864600447190927684359736516956598301867464084587965055738542326987944428613349077882677810014084652383135427260536826001316342229684323399096273658036895700325144912094192870155698168198505282238017470874135355735416377869300837324476800784821431196147935935509007483534537996534721194094406154621020635061661182797076244572198899391590672319777732513857030237509164819465609982596994460796256417294113945366399885692802212331284185636202574237054056391889165013604824627915387110621953805181094644884803116196521362617718855920747761713556445735420100317048076653735656543823473443079410326873265766508279445527600854957839081170577438995569998208894425980445859140024675633113543795526434844470661156155216879955106370680914926940199472391856746895588426943105825233890575539507574032221034929954720345310743118727422058963163247843779629446865949656436099006845239489461006316743352379274974795817126203661226506471394412530074466486195675503484660591706950251949397712564832589409078862280063530155850833276880883864553525534856827427475047987828660790512414990923172282553156587910429849681174965922035225645048564047294740687136051679717353762477179556159960125932123760262321282054730328530438437601434094337849537159895215638463171471781116207683337046206151354785613777434910723065421808595744123877046254331559189281538681321307761152724524217192910961284759778114288551846140325427127218060287263817278190820099463497184382019994912019976504887409346887475259223722834992511733835935247616093242894095828091445121302742073263561939661034493662816939756496864266550993273263268074139262006052595240772778922787265194110436901166736101569088466234364145091921036983292494611939730034718769553336161825712776916338610200192172027454592384789318603674513141344662888440653810941865413347788404266239936268007430392447786539886221109183139171337617103794720584148769759568629478888972466445275138909044298262289960935553124138882948619136021362762854811045580402234238716598125333094653589995317080183493845422954517196910547706030699503852600737633556467627653233699825491614453568221809678850065025731497775850253501889990281695662102662152267771699619175125488134966343494453678216488667868203935247604291565906510241735113207885682542736797109988879330387808585015458601360366851521885008993294520686049953978871851854924647410488446781152922331482839903220716382961281251363483115811230368615857026622014751199860702453791367182058292400605330844056165415990521436912341465546699181242512419055521471965393694584135610306149107670987781795952152194433511527534897607362825010571949106898593240495629703198992282067461007428687373351172350837315192311673807849735660972325097325224544385717107616960305300245736055801398424077808824237446407662852835446103815519899897946285748943155791864917998939095501736344998226342272149785744364330619607277987411762614831383722276392073050267377891792947743000298154102788614025140034671665305741453069387256765350592126371494905782154920352230416660871055595193186821070201367220350140523074681870672866156705743846728947281751787218320025011820621072928533944714491942138362663969989500587369862069414397876088506036314971562074986312392783388895935108175187439647631837306739997623139327166861886921606978585139816558633577472177274903910179568836797096408916267189975447752677644746305225293285133905029543306117729031514108092440435990747625145314684116861178779200646718422788279344230839421489852185666024267899780917215663622213843730868864546906504159593104891496466464176455957629075366960241472521913499834843455523132657729686482675936405307650459050997934992927582040898651139303518738622409328758633374729040392682734027095222242727168272785243565691163356248580879601962364551227786515783691030954573990175501627164885772901090699499226381299895163883332238702091358431196645693074977594832861565266787968344881179214518320558573051306406525032762425819578358952328995784831758848650877923681228608908622194666894983510420794786169900252427926240454611166716963958389737142043077274269724006925036640670408714728336206378109355564489311320048935577992730429320398971812801421094636051021330984839004165783996546037756385004006273049865063738620855205661920911019946777597757397577588220460745748090136933957956096515071422770665066776606681902886594120997104055696756460868467413711250840744158231423443031555664437479174271954597131741530479727660123398323003821357950964305297308528948659883114177283285057417091381584371700278366344988882862088416892815759597950285293882526017165838256321350320832553428862717360584017202797307648588556669199954663227760132362750907791432373294629233741712601225858255955123454016170462761351112826088983680121213640405576466576001561613820143668367123710390140466202722205327082771207634797578538827981102669674586696321729266234117998320774123092530842024147306162073049624874745809489317591484214215912679755086766896803503240111745149958106587302438920290791816099951967749835129245693340793743808991990560966234121191770426136965451065010883820187992470910198203315547436677571553037046146234698513890672198065133134500982781362250378507790109003431581964958376730752895530657005426766557730810986406337447073272815189365266014803194484745499553237177026784414020560315496466895538281054292950356866996349974304394959955454565749838428670231355927598799077597610273298997961223562874941304125207624547345997231725781546352411350819729936820363486158389058501918987496697284554327282043205230248323258427608524427347812740857594516112991632576344415165643008896732703621242126494475858961671540429680830632332148640455654404114688699078765438171613622870754954375548454887827473506436381571464192826264845918453329107356300097673619406513632894089942679219790761195443115634303373114673347026587949819548619632865254580121499392463683876126052356641814044336640275532013580438966955443537408365556192195109987224458535211451813906361232372099900147464881372257755239577646378293017052874086700258262392037309197332150776471353900925773728192814052484975880579803636095542088859504301334091071618699721906158331950582621939045381114401144555716901548454859153582647773065833633627780732467270321045738476693847721143786424378638332437382493225488261862063598062458601101587549431531062638145745701070558363232936290309404958502517727402135845025974180361792926403341384595647318716217872534997431086887315697872486493973895031971238182355965126462175113542470338167949310476746132943282654801998716218226459108850118587792982749457251168487968623410693323722641053792598297794100849948690880888702609346069188257950692460733034750669448152797303351243425573666108803535665573913639772479107227055605570701675252496199136233089734753275161358378857341184798239239664591993116812417257084315749323251167927901498305095128371806914711842160538290903160580928737672077363676776430322845656660059213104816788824365644709674778210323556103254228549816791752313635502174921789330629638098699482871242830360407699521015714220389214667132287198572902007071822741992664911112912525407155950090043630011744624738708519810002244545082222148051140276733109041264631509857392987211494853066717108948295760387562310611556522865463218416647043476177224014987142215136833058613794274270343343112752316733618884480998575490241411378694237063741471548511145498305729176227709809309411763588124462338575922152548450084506624347752541298998491908828305448355222374129778865302772798731615592260731465733386161658855035640123847162074736509273278753591468333442312264657268785323047813342573421616958158062154996571567619641878101720700617952329305184225983644381900881899527569988318646490553570982911307225381071412350096689146838429949447358102433969022442315738547026365966953021100031940711704190077384686457311274505406094376966114755134830249202884902099032476152783601672825831643454678772120686913214420790975252943377690248175997326743551871654436837666036763464497478773893713187817695884129191311464271918733616099780640896980227787366057150698990489605134849812494252335428863539549377919679425341851008272298898199425952849247173229675549531303922135938540651898509117411931821067476328533868419325273421092759349983124898614889234468592513982908871305030328979189215951413051754575961268187708241140017242232196200499133631850291738402301555623900995152297709027259526555095639720531449336618471487753263154318581302984756529056117276176088537857758286149145295704134962724247472539496168211736831893234300308050172987644289898329170567931840046879113852331487805509155489000977320964075605325761041876390053127992806993208197256907072451964975210112965428470820824263616860724845917551504236247202103491579119305428213866456711984474468119284232984414795400299429075897739488429839101363417191179920802213014368973659354971971414256477836657945611511774303144048543484926656280721741296207584473392551386245027605631039485767098902753936288768262839644244765248005597394037140130494419850140583452269238792283474443166982312557377003058385041515407992722880423952419666152959045376274237787809598079614506276738624977310861067874687990864387404469622219678226066520407414633970902756086028336727162574751304023827718056387984317176772783292348973877359413179730034463916871987243917142996467115110762645057655227746194589804704480334541029938171777540978225279942713766725044612334395356920650515389830944321273544382918796743262361429290224091031885752576147557010269244383995051402049719402686743680022645799681151145014032153385237174215799962232992145582800107199058772925123375934333593367912959519029422530106402746839912004432315870447454927531007341187645929675622867448017213688348179370750105848386110942666008289291461640216935193463685317179988082432645166732631739261993898089400799973550345049862829439379421807815356456825752619711635551687395307936577241079444577606219165349486669346597270832733870559194519009500298790006694723123103371922656621464737661308553884962452922760732925430201353122383200597440111848475015667675151922942274629975075391417979675377125202935201679239141214762766315916547639310396834105213934557219619262634543075361848083249830742429823747556470735972686438968767921190962499788726821310325315728957150809518648414105668325450911955123840786401268256997174565211788175630926134950269754138036112371464381009181715637712954288816429031249626001863232263843527917397670963864062320213080127371648007599041835400297270182736463470976161365687871412556836587497687740752082533961768617880907898046320298335494950402395466962388805844549595814468932774100996495810292362335109766779148436400671938345455981719908136422882739439779682058703654568512326989730983193424023638104701008116154280997784989590452269873817430256305367523814826333290543554505626943826284381675203857444096207885406245671468328921917620256186299597461287686039189582361971800332997634296508054263532572009289320895610831734416920970322594892518780594551081307567818754787568236079995846320726535279939005962842726791817256156185900167942275482946532774275308813725391504888828012050473677290255249874209666254452565842051442114215764343251280047956796612129438888295630896378647831235533114891284943882141003977416078805941060038907052363613084251024859292777515036506649869807798912141952330522505300663996043606058256122754301070760994506359890180006508223654095017401497659888376241656800732512355738093825148126624588807602991449546061463105293432305749410439261438998500713869276080670782716609708032961603066427050078784041670850348664772345976230173200673963350599989616712077990635121487482892943249630611077384085329688961914264545066180303426918039455868236051508575092227503668164927845355833446914250901856894581786069101493269185749905707623067122122186611954239965332238337126645508399866287255513822350651527693078054486400186116041929563058484040022784767851541383064776748659118788485847865066946075042196037573302212521978849333625456574420804949026210208427877320894736030621809237753059346220002450077460973467884352352757707696461705553705666762725650698813729484649767321624342073866871411432473437107070356376459691392469265437154822967180270162377005524354222989187846988299372031413422799491543586341418224929492002326370254204922176456576799491637372372285321569870253788869856566455499220247812052220002498562215173814237359211665756405474901080603264029323398207757680364041895738884316152934398346977874700764351133472039577321966444113705705133759983058714709870399917726076340042060302798504086852908077465528561604789081890409495453150098101212570793227194875010795918031913824432030991098148946454333361641844515409858513404270293919712612423881026140374915820634197719076807039967654665826801456649378126957865955888807906331016663563888228607173751980939940516418830201528475363057848480875960959684553669198976085469707217270238852983212324801567207522863923748800021234595907162129231960973585339339397381794817838097880868332527370010054679346774451244825798960792420797939435679570726850105325605206159457544046841537371110362712269553081064780839787113685129623971517505880419593074644892744963749442478923818975193374827447057144264241533336321607100866556918257252140070935404704092217444154849014366152640706578973310892840701813939153108011109855114032759723127746446413065441095711935158260012913657141485878365031580736733568795349138661713994049080689822835181816306757259138712486724640464725762410437538749233649326709381155734581936241507523957317656868178205131489015544262626476838658540940426523131476877379929254050045844159935702919488241882710607541519593932251242399818744832019304963848599228640200451990969975947811554053917209264377712369480437148021651192934331864464426894559940765963092898574092772222882018751488250165194656254732189805037829244080521732953426800933713206598761499607448372667815184994397445064022858114832103359867320686701406171493795586556296537202673092018642350597214124904733068586114830619519905289622306227407155451872676744106898762476719912942946741353282339822380157995964951087389723433686399503378104094748119229189528337081985921318288222739825422134735882809620747260813155087369467895660032315717641010234489067583406867907817559789616368807194398947670364165921628012650408244845364509828269281030831819943516147053615293326092405970915617633587863147571677731757821955670178233642154491377141587975593874305596857549733580935536547042106644543881501769317414636656111549724318615936060065411525429708130344495945507088400078250309516256153593448431909372575605031101192625793737129928608094525689918475988955213010091167453459915544727308333717765703454834056385049525969662681695616935505797281996868726101072459820581019810856477614250020626530320228726619600050795393724136019037120975189982668650280814437477007992999978987336100001454523627292747310071731106373767123532028604722717500501605957701603371359696217481112416717070553880979734914576304612290641364390824535056521697928747491250838363311735414061359748695031233486093615935483390150091831763883954097647975242171969899300083825652275480102429512101230926807067532420074498496608253529876867970147101085675084854430730541460887944642697830336819512553486982522286812841814395155457956758766843159047296271621508654197663259699027046658095277572490579001322838425211235616284018566795765800154766131221917404671709998145914514062421131798048387812586366243504095479385206103951984398290591815764134217071876416142981214071777102281635597010707395269196534990672233666390137978136986988299538781402928094354771463575627430131310685974685469968606988577842495296500272473250536951104690399464497042274611456747903892507008748111492107488499131648006188741839676279042359684602089769419935478359655509557574679723570481583034885424824098805810547447459627420411608723424036349019884252449324879311075834775722442611634477430760290707802749099229568693753070807201586784786906267066253623221286329675586889895664857104974098087387066693483981917092246709578282474597073349293243716916884846551546453361523568248649445502749397734280031925609623660653184937675821824692086229626446444434223641343417626287075284846523902400546273120648335282146296324767136374708951516520630476834202366548924880749405518946408235539480410447703526602238018896455202464109905455105829222669780715127859220954293773938128989967982492989484322863585545129867145545103585155283820403205664091611740968810334268098737372161463499584865459081846269777322583059626749964155941429209944910213398087259437701138511955620440711020708552126775842717215361439161702118525523127957649607823686227781163161933917520607075078912819522767715041871048788123036954997698905348713884591499121474387621966983210828294381456776491651502302907843311479790196259462349095434833873181109743646992844857100294752888391096374738721139803526748983744954814874734953377266994388587234233963383742117354837409482556879743990587026871964498493404059730216113281068026072015031001146927122849082030382982791518420145738347867564317721085323762096798171830891401964762492875257055606340377789091603163086654443819275712702282035671013294208394090840773961228260927518669631769122879759976013321186105475317254728093200785923444069077178972835679088492784523184879723966352254244326981155075929545201444732818574273442120297694548959214272518754182461193878916323906613423187211992228557608670662710023268541032539322233958481467355805109838573832613823119746870871930192932197023676733649332832085071500362750422735792169854045535748021456424798480523605181738539442520673318314539481133173633072188962398498253599600074491418995615418761736005975259265122675132666541369372846350177054986094766413803966652926651396686823287816602185175118258394437862853346051965019112686631193952393097931997544271351486565443856299107639178293039158353354310446607549306145035488087052454452675403249581831220136296802205144891941577742812692614260885351426064789202872361926333879129063002861416344780428712071532345638499048076372975430517191861393452157897940861527019874272700725075818438846488820722551699317300855925739103999701387536495345362376548495949962725360889750709598369084831039228855321212254456708601216289223870710317962881629958706323257563204338530519961976003250642422156643673993003609713396791904791922610212465592840257517951051708744440249257585594822197711544552299246302384993571989331088949857637795326990523309555692288695245766575826952191040757966747685201504668807651191046074026023152372255008591290668089311780043799686944720697066749522372808601493734451382344822914147265333554109296656267329381354548487500371153710459509887209293464066933926141579903647617395653472495873650628647059787937137946650357698771442501995870771028839259716600443188910068906334029502439061949802153004407834969956216395767818264729772736951358049850026091381362830457354668684102985314245301057099796296732412313946689095656571701175915493439823537542706913405528466116473277731770210346155680318987015163206925518184070932493145062622544042734747403056459675364475418891175599544673043998997288852518163758696512575700010545724497906534184600283326734646429452968925841257591167341284697359537712835242513873703386600331885349126630280073056149460053037439991344980602407206339487727087630450381769920437445734953459006785427700227996496611480145269127880654892949575062095596274819024570792378738961244462799619646241542627865248186593060568087853998032661702862586122700346571111309935179247488021331778431686400052722893154939106743560104579186182648752718994254547184185561872085995281650597974372434504984666936537846920478375465053734672347397264713059072185146539239836423394646199949885169525080883505003614423807003409955423021665103078556162926739950108881482485470465534498535660393755699824973313980065416229437974685484130765298966643432708915127810902533660466949670356025908442174094754849260780968212290639580559975219986072632233972589629823908067687566603470168803997517941817481742802396085810128085593525558133336292572649471970458367462544718919642345399357618572416878429737399164079458396409957005069798709389092820555018732813064249851302033530622537816767573660953137879438575747780654559205400940631973242198242283729542560097714482069445205152880636738049577956928274973289916847070082670628671385199155415123610040721576149248336424808063709664580816097998949312093940481650037039417260289251478823732924529327522472790430559906846101605479923179634537610760552940007237152155194468270564678286755859599136941836453762474118993598677706123879640383781800761235869017804315310747363302971745668404855894454664027156124205815056239371928172352966329683164296830563038590318258911360141791955545889774721793620564008635829619148685601093139278717534481504278212737192142336103364251058409738113442634008067882382805867653143439438465649769742824321621040542049184180734647886093408031131587765251438216519154896217254019207747419547413827919062510171027372831519429024915989863225896086672114094785624388728680809806698330950044666481210572033559247225270052767534466969049648662941035251324516387834033572466519673773680160714056651517853812605993396910430375464586673717684800542739936842863173843145432000956856037150686020445399752602539394405120201351106607578921171592654947648236399118228298591339525636582753322930121952735072569547584095535114609462303825856010233147499021382985359097778429323218191569544026425184619730067637941380381171160964362175585622251003471356151056876754566129187856973016878884555845570179320425055413632868298782971158008763007152284922100227410914126961923161849831985781618260363748571243362425798728498439588324409722582681345045076349244925009706820985482018091527437551287215587640015447122341497381823549170679354117728735173807672913155660874666298870932480980825749514861421203018431038724571149484468852115593863890819370325128447362029353743830442381794771726634478852289337689576078324652521043706898405976811731073736811325064993340630228718856125693634855878242602301104024960396198196810898685760123014762984952772885265678421018637501988156895346431449301619432136635509535232325482607302957602748167911025795872505982875531441549042897631481749792706504368444345033501811560455330571597414809160671338628334857528127446330466697363861371333393066654558930365515618776344681441011218124404258285544063008423165092840792963757749958823662325776638042319479506182058715748282417836858072068644630080285986778558104387251099203697398166766483083321692274103153173161859183613315974710880211717739484100950379681453285961050756274802675769366575036792641952202315448772992866027929676031162000710846968913586966911668927350657159226569028990407605130697844978723378307171425875806030897317401135110033736406114643857658032430344727772252605381218170043178257876552757209953137120622075990153274977458582805776818656862394230982450792064069591773873355535314601296376666379339383253697443136014905380268774617729057851743740484482721510345592407426997413288363121633095101362303380303947086940207780777851260630836510425520792116659493093917286086097933188821784324827754462832076150390025945105606937829242128931552284248031753465174729769259764073309752290111572908085292717763594138363657485768602047269323704237770590259948046682936367711520353358907132443482364077389385385294953730221554875029451941389493832819028118557045740426077885882657959232011650133918199092975210100671884458842239143949903468806681270718827746614170529111284845601512007617255383520840860453865002844605559487102510888518923321445033824369608742570852678348633497803011706175319883927646304774047239053262904533497432457427941205690527815102030976612491131413129244735354344439033611999453399533888742509453920555705426623043828395606315587241207143419120771856221507081644225413043116158777332642640498242196424716899465670015728981097002861821632974699581446967875536059069243054135125601205307970480933682514719788837491669916826430579984272331239369448820382862140323593227200384473679360239286008848102221286042416008844266277035301742452185035244269390134712824807788736238881547213188090794366013035516667269967864409375977737977578508932770520743341268682450409253573368290986105855401920722078125254281348393676648401924768235776123994331054703174271100077681268696611209184041599695469100983011976054922628871593635781788813631756931326702151765855646118168399936600394286699659087408198431913841195941633799043832099281109098908478267179834147931406488413763245225682167406071992174032595297311541429675791286863895620931750268455805432127464422864009022554650556495832538584153221132386229312319682676649438539997197137896620726006956672513250044261343817612812190290694375725655594313062956430626072072078621659677406432433721675290615071877217870627799626371746772734945277743248894140406712624966664039620433382850512294114684859533171873642695671406447692088911255627188038733019061987362954361360605223277129153820755262387648369027897426811391609874005356589838386437442918429467470224378909207079217409003055570609431927765430660969489686296091339003756576114698293066963099317730554406205641819784314649815865300356940681801768038284195476597531080863771498041507774685758850578024514374251668578692130093048232644849710585400637057863305305882473717476673269628119181573329454808986313356743203588351136031408937421843701692675677674374638154756788027933921078604584956130808581358071075609859975734601851660560564745800080606817067332816276409161239057829280067346254911844902058325745903121731572899907748573145396859500784183474524856625232682858094929245862320433272561525739382067270961016928171364176542560614795025577045667497154312712760192348142505865120233683372584299170751834229106169110215196367562409655141755593911844362949772317841520297865245676581276274402802904536742522328924028911177692367816040363503002440498554252956050496787133388495668295480476092566377931862299227076063193324260615116808285739852350749885510056347617310581820001264669199014631986332599358319406817875976079114095318791075230760103079707025907829737503055418152661033016492382030091244710964959081164480381660104398889692230744227428817953700899124822638306594036595137613331831316241432693295554753710269113377122146698601040279933087717146539856950034921887479673616299281468855232632439631441664793147071471895405901095954060113913566686869916943694537787250939111370216912352907385911067755983093832051149632792547053132901893451529412994307010202510049434690001251486757086211213405858478377501214168083870527113255304095966155124287896806303384229606254272500091500351596982411689153955319035536389091356808752402420868867509222510537928163013337316650661906538696232493633466319314850079116904861385171987797248038863911191553000342666890227908678761541809590817564619467266654489544452559852009661024563990352013160682545620744178716619125544611361433645449567120440948439289398874192100303426019149619035854131231374601501757462631149612897462138699263421493534427088008214211789588836586810855034393473529620083714489324779747059670413059731252108207272918542479850900681230801414893766673923311028040680585409139906732772085447551435369617522004730655919450573964467443945092283986807967471504874697645588473685710922326835075729198209700016422260923989996868465914444782941944617630585234300577096885874634632240150571721803677635939313247617765468880647858802064492772334163775652380555629811005804289520658167551131311068671864311458977327669885338007257831809441226935696864536074180017919854774002738954543571144131678757761944369252433452184461512008104051869814012199805976429598139659981384027797997146876097932744755805020376876537832558657665748112194099399315063576982376191160744641413199164903313873833060055755966243400753530362424993526884353523907987847540919537648279109472970353372089662366391965358679471758808564020322114722197389456828802008885911516277208823614230089785152127844669458823173075745649266508652212626124861569620004980970259237329760287177625281589143043056424337664099491978838525154563972974530394388638388731303128423645861915325122224433785244875358505697307772981614898636908645416772261161331336061437522812026588268001899648895503511380214212379193952642875653076962041110967935354364909266188800832606921944436053842962422404041699313844665470477071275905628254021826375032180628621796008250690754442896789349478002153315857168793891972319832659857539472537952286777861892456968514213913822592191549173908432795960357619821672545489109151604263590037721753309489472771017867712857363034677871319065545243871621901401680625251158520823070862073344375575881347349133888095664285179584635867993319797980274996021236674992277648842077498119220446300009611981087941824097456726200445143438539459771443402533086127359045451820030614652040817818604039436980753581013233146080848661881115776479225262293918236502434375231453164557198250742493962247712329644268712504126285050667299576955107777838904389953452814084293430539661748066946742665334129779255276454395407287230332230898548097367582362797771376476834712058568292491371949661430675501930942650181878854242339283033007533634784854129813087718075582217306181058588079717120432018172807255019867936381102140331711770879331231076893437887573866180475102956771439505001537999846369579612225051876991000581886272673612668184026348988928224864491018660179555759281908826406340494208982561484284622356720407884986634179039745418952044703326371018998583919425135175080248476383617048801235187664473731314487604189496285501300476403781102146839505559097330875556531488346661143602787248837158912177827976803729032672038259583299021395508849136270430401189486775550121592004386419678158004662064142503052468820265221475560824955373058314287758905431575780345406481054576388228132046249480046986148530013658745828383279978008128650041374460508252736894943016756367765817810138319351519116479413609745876895656123551009284524873620799735084067328264424931645568542510619242175693133423522075906277437140417552717323639747443443478557701777273641173402449979212477965044118994138105236173699214025720792006108258289481785592395842840269460371788604950139766215624847284717972491701775404523261640413533007025746157693210551996775292246396764429980001773624826345133676718516022809093717658026259753298333658344391970181736979930169620581890897095787673910101724890633334650889279700190579890363320789034049356428368826244003175910039084560327423776920052875056518687873717973142487290897213006228471335619298574685924748331053587838304514886619892802861765616114431047743320655561401642568141751780503376881580134311796869549752290490249355899688437985231918433119894919828243957793985334709010691988359587323790957244724552097379413556825084595512682613034104004180739551706433705388408147673667357406469631840924481712106052283724885936990417599148614380467578538854889158260166356072902079695848881202019554726404816455388355422666538928968036720143024439474083505636667613935022415495990693794669020552206189997506800588419455215571827586734402700960599797804096968964278554994614411351208781399407729598979387001513840198110655294280782780135514349822402472013627310299235192470555873745952565123008376495314265970246545455484351530975595746591336310364062119674510788397930836252613734943186076510699360725932248680401662744070387290850890792845683182841824449268961927852564336813721717072888097852977190940851970623956468622982188508085032600549176134484743129865815236267074663400773272780243933203166156206090789220458973615877069071850901427789041737528422573200652889058461356038018132928658785510740997559283186551972448965150404438251006804555496066164938438742703201121730801459019479260611395038133785281631761677717080609999781899489038218513593095839748457266682599095865275712351211798450153728320579786583847598712703397878389495035690218504030396086850063462917433436398888664308986331389465822377798486517270141828992491455369910272324397572048305562678222683377430372799950162927468898196633477959243776663904875146728005443280346841476447318087840057329498464596821856522026185550174930139805197784228500555338333569887660234427198089773500538256329492587728229411667878585023154693539077577992051049427856120412427906246565792032005669903819439002155693219127353960741328803709360309051609978936981881351025027438368108456400432843522449027146461637598540448771951983211724008217281960319883895118787553296619013423050971161244179785407371510249703390410411556736567226410095539319663188896842887864078556327767470070365800225109045416794680227286978348958108820146125552164608634661833913909565736502771727523395034311558537607588511703516792306380870575834435572133590610236123917639758029630879872160708552750998157768481957482010097502748973147711775403538495003614504001247879362344313537465331177213089374005160293783066696850955046842245784946885469346157359040078297011486352550447840833058407229752113552411538379490824394487727786110929232029609751763027152292947938536630766929460611969326652170615068361945010368274172138020928971493542090143602934643362755496466373317469888376443062887609598876344564935315026257318919830576487132313374882636030865300286980741583362792970897586797885526630877357148264371572573497166337617255293603289298046809772811101471901979144865334300239474215332373057489973552851412563654818957169947228126389030839117036279414669665008838118324358359396014135704782120056821299304425562035642343587726848621396775833469455361597464270798800105218758367300924325261519326200154681639645707976136723020917725832882747555537541230447917376016281441500851870609487513174772520949860836451327310833158143161707307770630120781341833977279887482081390997814276944286742429077285492372148171423862294261527758768564588755069152258696158067884672186220861637992047658406188766781384000047292789617973231558065815500543403994209703129593318147360656599342570813343269840746364885419385653440311358557032982264914973768474461368349391286750711685481597130721544228843410249005660620244238747392880301010700215733998489160274265426051093101315464977291010238284595873419323247352698520794692976396589073879420599548820007009343218061292537922771707256073652098214739031780001387515868440475343020837672125170474976842399140492108602677044105203710709659504411065865077427657403161555041063415403228366299325227471755430979346628634497042830926363928869645444131441746291118370968246916121258067549731163635309385822177075204865266002687880407327463893464030805041483347678964530408945300129733969654226072704171362332644782710491339848215126004694682427595910572815726587486424891750041191453901233415287168579910358794455967061881344685610328024875516440956927373734213603443705640269777815293710100734124206755603284128589648751920594235992584987300747583426838889718734913159548698298295863634910322014028905597255909963066359309575636424290319854501320733017915838988207188641391017953907478394051931250140959013442686800310874727116401274046401907279809474523498602464943579097929437366794869861122238747571846384056389667590152439544089779450268299804673405113507772003385263098241403657204545665461252931718401962455513633408417434889379663080689987383475766902342664596011620964847341896882463557682838503888519426545731516750297802989987143736694403852182332781662797542131340840707279939824413918884201354549894995020936266734916150159134720118614639365255977112369299114619464834618240041216939127830726393515635573200917275192683286324872910924325822546714443368982532463609601505134239847641542971891652039573267788259268146332670043250554740414903078495495993107845374599310055085682488003946777369248991030140932808824540924117280822513302843473912911698364819632359884062295528636838573528176880533571284722635333431322726649746628799651609145390278299550274725012831744320685299429497227689782385634198309240564628788822473547035394634976188024336483858292942339709826668555360143514285965778898499271940568986206763076404172935806838432060581411126878009313558348898258830162252149761619924735531097815108742429464240116989529921666649479873708385610187172298383860893372247612461682950061513386753529290410512086408554547038381605904101463810245750328049871827978179376975677259429611092226379005681400807077459284363279026493752676933005091822079959359076114702204087188896431456595708646068324314844853882122948009381205511630043809362599484183982652100873227483968370239773647934816266519338771867116106603434987909570335309676132393611147464069382538524905247114790115175573010538003872302904367998976863832492895738480271286827714723398813064544860031590160364576163015502962742662403505063569519374563913912017044803775530506564982362807152140949501266288089422295152461899751600753727752944635635346381795429359079345264420531323425218246359305785529181376935638860470432571629741338555295307260674360528175901584797754230056791683824488180033535554437852244654094771755251578620145336211769363923827387339088605174875316377962317272425840497801615529216802815239732198596001964998855371730808081806511795718035881635112899781254210244755184882590650373118046362998726999968278688975959522106754726257284121133999371892472712368525738400891654613457884930819409221217637119285170463716762668002875899908529493145680271597152861623397901589524278580440696525823681177995227909733882662149252382274119499374789607201229753061703669500728647034153525593697413167557873094118993052359637821264215113188144639316713617198055590741113275091791494127051702542774728308103268721731685831132783428683703742770649243405439231315709299031867879919055335309466458971916702865697006788603472163070465185255612259452461422553012232515457618491208646727179754341719411748183850757084374919076391568494687747574631726394493876923028594437761171699658786623242685165102453407033266632019494757837307581674574639931205110203086202151462720219888432246753520291673889127196007217935233979213408259708849635841627903554926433572775857348068349543506835121011554156626616128580131093990549735514071570127543258622659582987806055023208468502691224439258442341019368248484968896025117097548194354407034915739542197737826649475278190720322843486478505408154125828317028723024419145125570841307654521052211230519370220783410902928413456331453737023038945178905426669224172607354063367731602626384402477661965889434024891552044745379024728254349281539657313849848053719934523007408374066666157728589526576278764485747568275894144523258624371850825381454294457335195170830696879573718875302564916132638467234770640219712539741535946790725159667837920081139590908961745045705465128666424827691181972072064554500565891013477915081506826216064216026747961949183160530009472410347575003652285450274479514665307675917929247689764379190274695927575043672557625776387061915076992580189140247007797212134373871858538124177602499472169461579780229464901030287302565830614478796015040925452398040512995184961306853330158089893449932464617123948900562499483960287306043870800826094425216232305391389491974363842056679198069331022496231533571452248739111917870812493530456601684513934911513870608919107192193772472870685742994592690980365418213304202104615216237117503106001695562014287263978760779714315340371530401190758198526163615473209762108416169627525124225480189884333946915489598575276894208316058385615862178992039243642452430926907641211923193173195375513036620492670576656416417485518349461631157762631166262678356517359726254632079435158671160307240503700152865857888015595107667175474718528336859964585901124804643444870436993949110147207522982774751426013623064926054644486651597427696719408405751262646099784736623502016155010932189292187835947585111951980480015344486026892069741985615371131334689851982122641686912718967784964935217395403032962227330548300622088404893567574591476461779857669107514255610023957468377096358287765115315676184025774410680644590347295681143443064256963901094696757071282360606537058929669985959979873286902535660131031395097071882899875816930180959221673834553893146190315436967960100184743176184574431234759389819349637824643008168726387890959314978642663209347715200149330080957529343017884644500420538163311548940180919955843871267312021932473469777197137683100807282378424641147260121390757339189504647300740498689274264211629848373819348889819381602530239329794290540023620614169569070888880108632533104345317631454362448180906029933906280042010074309355009116264403919011833413197444043389411299075625967171341647790137152721718856993021516249129099724641522054324028416348561733809882170217735648872724208504319830030752863395034922809124683800685207542189907612986334435142568003264264747081413812199782794062754868917803817929871779244917904365093387114626369805168893171990990191290881399544197294842115010336574112118352915004719991235572252764050034535543654582789324309424660905890420817922238247002874861467406280110656714243442261431077427459878104829322339667479990657933483318628791989104323177479194042437089659100244501578194988916744234878805103520947467745210774819553689628861262325672570647426632358290643493063615203046835023908142559970631755763470665681444526209109414492276035717448507323687465411128151775070846770478591804274556113519008742191011994311079838398317026159193711314830960021073252207490771572201121728416816888387678655869800577586352975797873152010813696126327310843678343499878608344483509285241728965367252808549384145049586504600492871437798582565940595077665989367023218279813563521047050503799214052320592601263570155584714874266763396399139281685325887154039823872148889654601595553226249420026362245298763039695801900022639325504726768649521844052865709864961770421088959851254308464950175243203565037880081112758362354693242161143121851026717355461972868494229644915165247424195407586338090415649710341495093249868279080120294313444140851151125409865780424111249170688140054063436619616213815308030099149321097228369325282408593897491016303950439178943586416233489170844233015315613345013473971173209148238963011539249772355455151708335652548904091532091311157780819100473700755340012047774659734468521436788305392970529296504112658440911169658975567905351905034647871968680355045652720072557232103736138621974930548761840036049926977673988866741355636052623221434102574266878957983145609976791872422222991515402781858951806758087492114941013424674421459585205192048443569040622490293937955426197524005449383695008815332377551142273424684707790337810799628383004490132968581877245984504147796299614816402487808142016876087626720761818353643139566011710514481922708519840863941253947469811408144441829659419357018429701241817583576816808635092330847395300650472868976976161810259767150334750446190762942250369074472451544152045391062963541414199564311682701854064039430834241367333554787195699329152809551640291886019724364353891401406113998123839175372867679457789352711554564192249097391075012543290210415668680026940453171835785325458004884250921207044967474972579095029114795223968859197126829693584344515848688364651134891441559924256998072295496632124440074570121123890587432978776221992495070129015404320371743251278004768321117931219344342441239054623000543460134321046869448163924257769161792199937357650552663354083038365303454810291368785024533550312823767260201928004062024050978888320584467281634956801812538364500894451780999819292341426377793780198863820471151381638667199066120276781057355245289571003777780645098781626828132722357747187857930038496170912921590728504633379285813189226712414822179395054222227112376386034370311139523847017234330379324670722237131149557623952955876405666932072786564190305545291833057370986840260121616635635674198197557989771376484948224372774579335312475366143271582763232050008627252793321854930831711656929703267499847310293921545242110122226593737574658020395423583977212517038670931747381215381248162593370362594974327291301835295878207487185334678414635224027427304951854792984069001410321882885412405169930533898703182726037102008163097472870913819598676330573781086918276396453923065107168887405209335198128125484148875590465087044034756658238622721043725324775372245905238525332428888645387100387633727308274151523675928408037943473946770229560306264956478199644976899308613453864798720063720126839558309785519778599015705028280787252663291416593956532043714779822076263044401048075140851312101549275815609347723696941646520875704434898613659969231458324993697863734478636440324818731641074050624430120992660516372266519700887483231074669591159037428026083742748182134862414138165492137471600916639593339949912802025567579889566580353775179025290710058311470044368526886182286671162937822322849602198220377847025250272567471604578959073594789332058035131540899688248499023477524280447521970107139430763142322712904426639093482065318253208690699982962796281892129890623808082494959926740762604423244314172994993296441855300533144983443619896971670958682577800106715960703473536065654849061077985032200315033945429208735257033349639228367841697499652566799259084204719746811460426415446996230068719953601209507988771996868097028358946009275646798861031858474357175838399067904496646846558479685608529159560360471453398684329471858744934729985043486925084121350372204864150903109605524151121981978950692762614768456520986642775420683620549009556842909301169883587995779849239011772430456514368893085718623352086288710374287617150759928555850762509413259787607486673145929695321290183600657637631328443667236062423529223913259803958244633938716783198395422141929135961903590301420043466728060253484939025519879708439854797095069318693093333814722036032525129887844404260369770631457368337590050670572664459352188542503665946797771275599325350805624010899033348430173700521838428809735445388796892093648891611726185106135346084553858538806765220850222737646276820759940299006892385917990870312750957600133224428442435121389001054964287482905465275484261424235623554103075143637994095001494175539168352282466651561469366950917699524344756818668625847189030525250138715409191796954224129248325933619263902051315320518669604448978197939447122167400594321416446786062597952142821058043002373564468834907359069518646550589763783660600855711047987892549120280183398628796939488986931929921816149106404681556856443335198085208376798675655065444298276174213705162412688634098297796989673919404943925017946284222279003513405739742585664676479820683234133187365804915824964348288672480046819460872367215692387612265260784317535945678658900311406463755281623504309355940873467141982782082616279262548585747496567227376044883247961641940158953324564736751002402391094977029171419392882018780639404641074985241556745291900652005329338808630483500579073277461370721192375203643523081553011311382035682512712330407933642847619781507018087938964559858593175967127082573083502177963500777046349909033242260482566834957655539483531722262803667486092480924536649378842094140175323237686352911006412282855516896825308922266011802639622944077634322830190169439739671252627073947747565788691619323676658929826960867552568968772230195176165426280872895329984136340536116224590726434979736433257268585603038570115688335355921222685758974393895807738659593855469968473558765170432704293451775363299104369246101174575134205514561897566640585445740945578073682834065393209168284303548351230562445322206973823641595694837927220935343053923876032018597941815707847848603818297436323216822032923809376351012862862142959384307326167420457406606141476527435103779821510559171162632185757197239747237612473240226633170412056231891289609779100925618879689990981534555445992272090730533337061704685249540713800885381185972869303615526274720912989946251159094028040930206799690457063690195189147736955857037898402217476108501067025970389928018122604271858573115963352085998798955228838149638854391031161196265084965843201879987495546305991740984138008284853740377281956171140538763585475875213268164621669338161662826971962509174633393562715866227203742959738372080152154381765256337389848218306446936611757123859673571297862726704398577245509788680612127577742614970039864770697661350966181116367342048926043165389885771769550482548121794681031260038216102077268934825723963202677396115077779500309567442711795899322954379863078364614440469707453320379007071132698270525231941996633188589470256076349466691573149606063931812053330593948372573161224748771243520309780281455634241723434022192003481457621220372592830259959827447443248216837776086233540988119131079691528265675250169098999463502810845022371193566509614470491889940629756397798718266178072345861923196703885297793295012852307059558782902261779083989415368560106230334999620864929382998876952468558501835074107316599459351259547933960200715964017620153055951845332104744543803320124510697827040015065047592162086043968962517055377719599903059579335057648397537030208961899937329819058716422242271942600825027151437855019804569369542876752624088134487635193860198373551812083320944358625330472004026731581570069553166152919563533480502544323497565970571974756140330841107219096674880924035424970604080298168376289147731234765747164524504407007492382254765844402849256227991717642230131707474117616401435686463809264050433451636356900028823398016844386387999728648646643544791219620020109055359415597292045322284948091491799987793967474509657431422551837309979458115369763093984665333595229783921232674601560956419673496618884073140508777724132015374498868913867647805193328675692256547547460068284985709650015608069539446617924495020013258292598817568721322015386929754716184158680983418539568257945572588868887605209278860101940444677924316922472642700224395517197157536038185898890377449962898870804984623764013131448383303054312122385890197362741823013183275172392726848377919330320427740671560163406992672844147827373234141243001357745712381613126520235052015222590693765245246025054222730886141668495190417487885779234395909468672212596200065119199388680600729984552178279710298809139303332230786826591435685070377623739978859376739554256620162241577506076038378306347953747013510694741209919472447768392395614907790254432080998667476993679756515123352357008643855083818675468415413790039604096836794358908027617189058661613722612806088609484420600465225169670544232535312202845248915963654768992679703491808247719353838334708892149351322187938663955176571729703727138812460428804227278487328361439003784439913204799188297836359712258090226951234474021328132784700833289824318374498288968697200279282221044003130236758258541137112598320153918240024003394037230073048835929930818234992251125149714700724263600245927749395226459316117398646451207350530154028220721139695129366816366188993360321808165065170566953526115390596974118143097976393006457365860756820325739215960995522697647986454598679288782371602360878616517530608792489152075169939449804125955506034701282850800579052402168053898556141788101451158656336456707077520826604779977389478256447753262895412492408058290259527464535658070418034691509924637425287016440956768988706664370727976485121069233778342614289279550287495205320568176135122917242843391707811223039051967664503176690442689602746669479687262932190118170314153160081842803256388404259506336279025677931625801147361045626573586219100212423942293632509182701286709906269794994125337472454264586447476550036511168269471371731172292818720393403379920677417486426899784574675758421115792689892698691187816714689501526563120725431594905667003076937494809250394035037962117727442210336713916961446937248343289734947569686857284900126116517248741236239417698367249409931187041099740071549004901438297280526735754014849342640725431299374777354127586171657238322385473367566534134086101774839188079764690667326251031897355587940671315949220699225601455554914941651494145874237726346748509810388198791996700785414521315371453450785207666511477363703174074716940207143882806037322855821232171870830910169922482724535271187948421314877151246984478859624357416300468778436832524111652878418943231964119187439593642390252862928983942462997261002933283493200581419216535931849935910230683741656015523587181859682917433893846250708124305423174665292283287251913991260027645389478586106365390225646934501769402092119677555259262201082369065409418301061095196308879886488436963356051581188386236113117311286088641101787742838310137819401411399741321170392695333337131576617834324460681522120301039183547895944096442267751267795040743816019133407116748104519429108463835821864316231448128107058630734686099954765123622873461712563663641511173367928738937316787966724020879086345133075546318329483955752295955636209297670112841870808857048268905646693292745721975447310007759875080789871892417189288089236994764650345309901592856118295396663879606694307966394861713363984683148215736725244497931272889743835834383506541438294275272691911981404564446502088319702257273490647460769137064001567604376989378934351487515144325170830617714649103871259529934121381152186344008535112212749148978244218902032461905815260701396778277358635234098503342795190413155509486859875232213493283369654671673578997904689436331818620276374464008283416335970023464840036051098982889738960300453496691710432108129395638600695677046531716470701417955791116588010335405915639709712474719668171906474053798679251502940853720338178342227639307958731307234764766748713677863743358651759988417197621491150569671319732288888838953379010560132200245085594128862170980869691771622033673823307199912449757416974402413799082600958544907153900546119640836857704928799167007115279178714352001836092168562669736286798549450635974441516095794706768464317278646696094005668077393188563149387585802118823262400025061669793001605774914985638207428995002403621451498966305575354024926068178203335294504969367222747738684372370213850524806810342900153815360221005834645826063573949438409954293564238364565411063055848001170885065816726500589328819794042593598540470083534397016608117407118763978105220951767199455150595901187700657541875664123205336979297076958579303862943695319471819927746240974290429597400952491255735929927263325323749350407663651362526744986321140554279756012064291177456028024549173100266243879479080730928369582841293470762597227347085022480771466141938855793193656678873090681283323034710077658226814388586347720305282271505471046599068451422331416418438903824621180462086648840736598471377230796477065822579249064441472634385223551175543892621879100768271063590694052745251850513386821173575628947560448179116569172941966241064780192527767758727890285558832532469238288674071108716726351355408495757193813330583148378138134306701173914943261620752655127982041608711386161583490144768958421849515812837561840429350321994854117011494424730495522253978771253551436333010050954488364907666915996225273520397422698267844594194564360225326071872213652728187790816391074553026653731356929055763367013814715628221108984323112648884830511833325980178910202237324254456229070237562362667084073443230921851795556019748621931972742903935077630489503010742330565976660650256041432441136106898702759573229378127896968369663622208607115816030893990466742294897209894271104064490523779765279073622544527392966086816117047853005600052166194162614497476476867107343744412664147637894861786356592782883908415869535171116783192974627718703984468625841629433809413035380444656558623476771404698604010099191727454105338813608555232709059859624548621540664272922795701574806655945858108723536628156389813872906483073417778004471239643285393522518474379936206976321167448843170908900812607563434385769062775840139887952052078000662802772524439870400518337239606595652747929957510359206005352178931373896922036125373199854188969297850319432398909500840717352973687363942996450417352535538255527036766533442760274319906661114673197208110938695270666653964379728689708833740612607803140769233203074721258969136449911656943974188359896144089281216815998771822229109042660220374304850639491339442480552895539492683271025244284682766926352085009030520084968710098436400520028842760528476892838145667895045483737485350686463494802086559380336781251760092879758463020140137725164906205905852357221518655944332055998396803854569265396859055775620387706198702762536869500471944205220119792055580146794494151455280076784881939730947059103190061007647773960027227561203904512379981163037244024855690004242891809592065985425645368766013961994142864480728332282798062522981104418506952813100560251519825159009229400987871268736775516308556841933255393187291730741913518270682000011979979943414860633520091639716778448627414975763133562263640454708720650790373866565130031001597784838545540203182150701685111363851489605274234313489510110072018197257673968259342343214531412100743335775185302281691115681117984631901804352343556124591584355715178358983602826442415578508800413962995701981222906625974659676629069061502355448185884732420674433224789296391594575227878065803369986395283507558179601211335812375727408152306524477770257540645258196892877116499963615621050970746166467253307010644785367398588299148418670405071325937972548459053017494604945053633565636476727149600085680172824977441978800491032723507501860538104043514595886749535276999746443861073079488376206376653560239435874166608977321721505167715686303409625282675799227122880888303108752580932083697504774909319127108857331182367580483213137356066955219098637398411422703165457098483477904062561524866252712432113695178132229224460677851202864193326041396729899634535009649880561892698158115696823481038127398024843809597480891481325441816519146453760004397437313781413610778569004089327431047958668295827161073403126123863654088329441090164571852049740656857297108494024778811697462935931773277678733424832462788048759109708178421707135951665060071469770695200184444391174802599935812797344920561618206822530625923502309199403171779989559318655947616717718503853980411877851933552792130283260262105036452290856290795458048535272767813382503304586578467523310099805998855904454591970668748414311391309942340850909740644890308978850641030034658600678278669820249692367464112395397325500420691171432865107950602543594985880527845437946389262833948057361604590525343785884419969227044961501557989188726442806017346715128278469617834419093723649088777078813166970619650139211951731550200316573282302797752013271723527642242092516338274177988500790470592765708996920664308734085199648484236274734774063351034585970860911370913925409691013629743745581781050944246798141355041576950963827286259143480483765997970743966458776342005620759973407066362203991148527377399792030082856929897332347813275498063512539608074787158806493837122522782586568614704391778815275761046083191412564085683078774007684874466376422183151626729174368473710772182378370554952772695572132390582089963024329914512124063248473077546596217877263492841455691329272878999166719429904068597327869537156073194475571131310133181286383943429533920924442499809160602720527044109066849911169288306756561123238809038795714401911394918902959772530532674577152745015581341965128863655252145666595575666085556626154525492943363575986847043527979492715963738634330008532555989718491555534079940146875806295334518665037082364549888817858541813324799440567639082196383860058021266654107748153557679668311250020682071474876947370326378440295793297807446381508905366856519250659291925143321400157451463633657626209773687905446515291849625751151788302103993425084547149162221415519628914665639465958163029473033572061226773599599671392256569772115576161752841820194158748553527497946064800893972301266359823027265937998223344413182164268871528412422330879457778077549758188513001916567690262477409523600690996594428665505326571449219433935040366398484477558479335002934749344281838299812366703712316198404639530870256835793341863039329113665403441343136311708912346423749442339795647046888120636887688548696752731360661438524495282137440966150704303994622106464154247614056783933225170518832363496375770134975414489646640040155827385688418350331502302377827101715331703221695109323965318010122687653077220272157697447001714090954111241856666830137867394002204035307648251777518826590385559387980160047735419086075241195162401285767509688801534684711888887778789480433094741728519346061006867678311667042316931150779760420852268947874126416881695022103353892912107559437219434532382018913397857578435277212640323506415494882076112332913395069540242730910571111990330336580738097930536262903285242935438107676967232941277676483413466286285999334703171086007086608773781594380193029510740960012986676039624962002425043480360713408119133663176378464538038785441954234440439137813970741671561982634418766985363012900975875277751957543036914325132448882297639141499780127736928779610902666396139988135698555118465878365393638149735669046239170220179155570049023671777719173719240822981728289702642975171105434183560247271415645249945111612466414155914636664834593310990303428956575973481507638786646922576829145504108217106229353737547586530488279083446452370679252998694959255326628447401145074491371620874399359576180918465779365039900675275736253365692599924571206623604448940254290714625954572766891557125557623942455355434646416265745106478996688820593802264145382190891252716986860122359626470937752431772111067240118989885739855921039152760129780236824923228261369667237529915398268448435971937591642799397917239743610272004034362520978085814182218030449424867916310986191895194163102677691784723275114559556316783332992877864268092860261592150165557912298564338277069091748113646744465720785719826120953390363810680379828837067133691187235063689649703435422857952143989209902830601847550466052783085718262855209992396994299912387690927103479188260915755114201801633921599526566235087811078687269957802403777074907088093889784357246742992516334830959456783751076466208077020003021227665151277840297660090042270478267204791217498866152191919025807241310955108619410387842101852871566132832967349181245813538702174066139862134301336356779981999179460287651029110112290750138542002327455348806059813711420183329312281858250033652112893944160425463549846867435734323456809937848734287248720872758198212237944021240652729122650043296134227281016299890157688070815524303449869679542443707425691576746375094565952807320414717575537334280043689618031399238024746186449379773224789379779006208498567406953355360781986142968823854623072901691369746637371619229062812492443245748145208503026524326117034522571509491895291186474981833745905861135883347441025101277733294221827496518790388985245112159263243737691878589463312136883361976933362630654924059010111079305089582461261513526406256549262440117981563758345504626888459801877715106432893584934476124019680197805750811905616749604356099261504871637239767699891453077356122107193817588785305061525105093908708031563615154754470532307058409601028411967973995539438151862624579817085029271312458290795487506971179682156221987839899944835237297452649775224880886799113765999327781512935641854272318468620107411618254951143826905649069768571306130370141346886062030274255968317969163311821661389288743780209111765150378489086213165225342019352142032634141714488471723357679227846139460477856625255245657839482604508540462482386921234293330918988548511691863805767254005870065760305705377165083570803847282628162128886269392363813433836363766476600933308052305127373974522363978132167296755395667947447427826367597451498505712216982946125008461081547253926752902088288445982690840068088327896026191082718969154550496042958151749412562829022671894592039457773519478045173533424788987656461196152926321475081830041774388895103033480668274027418347890427865686484731836414155568055579448786502411026550666033415574142423594460881727948074500002713040592889704123409219565415629267727924833907123518398034651700448604909798779419772329192750509141758457118498024262164139487163869929058822183310621229617958259380343470794910999575467885014010577117660493847330873208296509900403116211267778334429638477367436346855595757284250851936818643418533318554861435483222348229396551467468052921100698639883097673697141499031780190603788879781642679882722287471848149680777736232891644221697408075574589530238931547045652079873609555103848473583374851665340705652207453861821553239618286494812447484508923719979409472637448897789747369158243187208116479634894525271062220010548996257288720342601498302165289758641263661939739545535440643186943384146918850913536019428938265290307545781466826581044320033400506190369306727124960263570773300823283124324649468990265857576597169984181649815900244468285906835794070438936707391713557766091534713881767221012930167030121998739927437389583369520365014558905673307330990996455050624634186991914207722296928242730705369581295839455964205935130207712911497006647946567840926291203032734316064677164957019231252397039703106633750418423997423269573867447430174353851009884791702349884327748422000763917222095820107082896077174618710417879131705664235998958302678093973102664197413125968284819719004267216098273592400633555354392297722376493336667413282669598436828292152601462427529273148262163136470035464955336307827751048704414717513570921406290138237994012720310061657899073365808814269108563048945405877167100813003573173451741687364068389832804218036654518092526872200470512184908983642815067843657300352620979258638244248426568706736334014926101538574048124723800790707330262458396089824237526243729706171497309927531136405472985133053156420731072463839249738249281949313858488503419148006833108612457859155744106028053701405708223309434159385037405723746274906393411504028314731139976788070789216445894006443615053363447553545545549758027981350448725434960518004017026806476896521991653724855904607435996165655443659374203550558385491824045911438473696486226122774093008744787510578438002365652190463091966280647641446914019015883723513225759322022133076909801831961713575216653947795507240266138398721608958303649637349137748940780882980016197675604571039090527742807498776881950371916959735534179182143181996380372788719739237195713056127808810633239758995713842547770132279478050679538853523365643067160092504852514656316349367824170667924406759396301606257862146258131548177815391491936360789269416783736376138024687279071802355129243025390166592222891996560559100799157134451158511049317309079944868540215472457477040030544238959425447657543902883512358682221091292613280609387553933198605153854462515077081755944110118334390589509003066783068540244834743856726905531364221976044527160288174853363474530548774376172184798052547260714475039715004131710481673955039755859782194970475264723324773553643486580801795199971017869162217641059508156015991233868707383938758935569295025391957661614504583473099347137389243774643823357829206521222574826935587965025003557782943636586104042036046729867584273360081356798089657150539816935314005171867538760352174378550006800342456644302988345343299453993844939917684298367712525581692543826281360721729439298483739840129886494868978766755154207637588805862388579549822320754765163982308608283376531229483719855975973665348640108671293484656099424600985326092028260162183192527660852163743009252132042078222095321181464037895943174291140137747205121172278591892059255075299149672309071672856470175607860970411285303799408791287416527796044656178908833345437129122453693673998041735554185628265554551589678839893979257300177429360862655155793851897731786733271254069060291387296346289851455558866525866604183511031671908306047869286496976520219083724357654234320429629683193265688417377391123557933304581855838252470599685442876192239045675241072202778526530479428821377209339085803452311257317067731873356096762436499513643332866273856471627096383607199900679170862037421186166149731249601181555772926032989275810393795994545669265991580264109222849674547276037840267723622113585118127331813233607291820209032223704421273603366621607940610774723323437233662935786057987257901899597420143911803115984591612381723993216198722000559184524961905218107959498157595149794951872928330169594029828116564235093560670502530036595701747266737254184430483969197305720342957008424997841597818534489132816004494274529148202047357163578173873523751739750649471920167084952396146046529124653552393399377607746183764831732908781668401306388598633359855149407241049874717621242242772252336307269184025258523275676089562833503606106734175232436358076845476631013415524588002174088926042985278420896919295030694427055054872657885876175330712916585460515926965973387638841384754135733139638198134204790761532618739389507488247494419099854048353655192492196925490154878853442718176477434677996341053744723803749647755913444103342328969253669799730655332107788210547255817634248674105601002969928912383867744570981476988282201585202379852032348841281547912690934940338558711816956856369677362554142143643135827828489051102780062680690998524954440275149542663821782078721499906759113931217676805637473152434136805913274231592144110498841458361333217749762742898920938321196437356022313880315743935943991507024177966586215857195049957656933632290306024367146482317433612022791481823481158663538038001055065192072957083476308879454370552709745872717911312318071837512907778107270520064355725216141974463084973256082568095062954649855340619621031026755599523857724343330895612007598490494897469047867431840233231974267545252012073651105416070054139542537230279632130127027735628650130087264126091283286804414943757093097929397683173920510120478396754473551291509235082715267610606127196086106591073620810553903101342238587766897258329948045927196335614746402596703208623620492614741817517824589639422016986510369356239639249156299124501075721753622660523392366352557380433123376572655634925353624686022055811869937539881265149487028714602142898334134920082950343323957607503158948348611244835908211460816198424424823779848164940617863114962774958500002815236757437473602840913804119079509539687113927001457864996624581984378175952037408074191270053091044817415189453423498504698115389590023016341936401398616956849466238381922076568168623106943949305119438552943475883662416905109100882820199375836785862544560344152109604121198913281845301200753497581158651802268233299411309493985086567608003834010626840167019555168449813050618772937310061864427615306944066129736037461020807117908364669104353913209804444119697233635750231138873099613826166414327431849715197514723914853802932004216377752166693245139094214446750735240966993005740651326663571664788839896349049726070500785433483696195996966128707563573243578260595127312999618324196744017770831811647143315607849029291419218988878189562812341484260585606579583266334893381340704716864044972424096442842681259180230636387205475232399202970200623536749783273390143743892192950451233403649468808368256830092605034879708173878712832442130623628652681922987315727416032832140347420276205696261903456978668508955338454192305997574303067828737241364517101516555497204860926058620123394708297189251296469910286599575112002605288677555904191659202777479118236223096201250350928518978182650630022830935828008901835962396879194737460770845135050719313363619499304085989442689157656781208690324720515581365619867081203069315657619895856861708746418642415297025416058005751058013571305747030493171014392078250814415468781754098349919032684469278304247170493581663101482098751864239082627566075864233562395564446196126668311847152596299234890416447371470077882424678015624662192510036045804583169199497005258589958986553448468689906317470077498374280262621735586375424147010431718167794847629701486335117075522276892884494452731230992549317208938785419248541491525688230097621318205170043302155773016455578802756983166937904476013689322051555820960626477991166027633286164000242847869010033107570199013863895011071664542842573996650626743795083529925618834886351339039536126322180579295770405051236845596080586168557347277998433542033389736856387911743754065486336245207611678134347040310789023844031353307060450959755041742228329414403055277475764536585036569081263281288377314643838790661271452424488736074118014292664548311540524266957118621862688113569252272186368263467477100020974511452767782754134068728719153042332479875943001228314002997409731858670670224247903777143569493089688891237580217116690307883308371675309751516421221642702147515166330050393359152717058632470219059846897388880116392948839799283857656009252543155411531483718826806708174727812411710733279096929093338997520507520402488852972511991747810500638137573337774204962765111781326081684979273762294068362185649110323023203540220270448776396061328325133672789301737003018995743848263921070749240949007091673079077269034991614872209206092629694428566018482419287175228971078722309942815512219319953572750167595871976645721567228107588979059608414958644311579310219605344001460591204601619044047503944046707784894283864835687450605998252756428710339826328021413955498908991095886572899691595311312416453211582438051474521332681449682691106617671678665650837696683471308952538916322784313798647795910279135930411773537580987340588118900591962933203131870835722590543840599050435120161716561322015065836113802637266229337360717241444171721969990904632016157605986978364809831442500141112357585089346789953608361994905645758809817003636097058406070978350382107445872234993481996241678234251990119791444331412207145672840410311884657549806884328895159818214260846961368102329025765519521146464991235264956593120314365313279472127299482253073985541993778026622647172094824984645702143965672936058951747944022953949520914764713626484635874433141539568336926016677287682845869671404672549030707797506689955861794671493314048783466651617239187351951722711253964372087668311000376305740715423168750801879706379558358351673548094258668859468722948462279155476962301580559205732977899044218592671415086836816779189870175623262425291616751858524662581933028877884443825256378902870001271035085127809512327641345257704846282918904614281870466956872624944483872390860561981746092659565985885428875201647895668839476861225054609868368772811645147221228556720184229315800552765780849773227225643174416964064230290300504078657573272431626892913019528390633158710054779200516750984580701294752775973137741416879475004560454082967824881198232748588189150549051291261560898891049295424763471764516466604575727015764763033950681405182846104179871909818821057149071827705779791551444871090282279016894457854294428837162670551858978408115668293131595043440162886517678721472181606526547557478438216551621467151235569854952742598550126222544225816776685492945283011292253054928894479312526193192251083956003285861070535263197966375844341855047100699986902140335168450405888059929585563002284669506032390434890991650443802282500273786403229161190199916066675247069553131278433430032446179658970218197648521710757378633498246830063851389203984567272909860620528306934782435413538123983996731105131083656637504176993575245833790076461152691096446937340835512223993493621942563921023726091177269521725387766483406123234291032848999109667837915682244123094291407411845891317730509038404579900733057600613287413806818908207253725694914475023739338584545958498743161868893747992097551618878779308901990914393389808430526783127590676475070639458473187137236764383946729947935431402982161063225734638607628801344143524482688834021614594047851581214646676960553246018521894405431360616200685134717521068916532896693271603461803299935296619210154421802639446445503008831753252313224957224456594599019132539228986525946445527287172003620774643317630810210582686181695879908561076017198577364874849232575973525639424537343149514114016636486847819004541783174432348242168137988394151573086129860557479227883029864671897646323114769277065390949601365047952052820768381651529476792261526654127789842155457499212932639885637703378029249580350193995756500380571203210612894638783535991714169310856782817811696175764851958029729238544764124153246204110402664134332866789291099145295782617813899690054214288489706003975274364542337581580914691908590809687097252445268467816082525391963115503270961638273454770719862368570084735164335328394452066124008921297926298113754855852965722121319826147272813310839931647576205606361283639876140208538805701544323123196486354879558252099171450501991458484945145574803111263304384159312758436073825116416018026913002068058726611091118354899300318788564111107790833517583098353327742966613558558163168432388650988092666915816323386982889093213398417593169712290219326956894383603921532656044594977075321350339522102505474365096030952659385571193379670768786645923245282577052754885765883859367048839779971480885620798218320637982935965355958150235201536565967247457447258204593090228063319928399189394190486274149732862126882911733133531258306815464525223422579276491202519982502519191672623786508037206881853960077801316216484123299924582410456978464311718540856091973436526639558247638887582356126461474239890931230669577836591531631316251643568267723807009282228094745355579421841354713981439805335341637766297547369146992649737075315901937039484990694245427006547821184280034523466716920483048322786197580409644336583302745908988610245763379649838992455367322282389101430290863915687648723966997883636542236417316048934673832217756379545887804005244584216100865256664205119165128191267122354309035230561873122239468626190516764956279135824115892043183708054663937544997362275427973170303810444338728428378673815321257424212893372886682384158406724861646436069615811421598480256061868821491627926449623460207485155321042245062788765091914254321652530913953363323998095845622435748284151356590238191401945563296327086901856398394262835951781404139073254140837464050216886469082554838289077678216445043116929308078051880834765718511090682406355836362741792683573103729451970898750217018362512249571932666629803842518212415585431957053888867840341904960088910543601611285305774509836749386417708830949261014554774900183601665955181919643207746659870943801629349046262951820171030614881507155785585929719688098731915317126126155902393127795290092276911971385580786450006552005005918988242305778126070193153673597341333418516972147957064257682070338334238343673400537752754940895684720798878580569087713400360424718637037273782191937289680881006620715541210009112867502161282816892166409357157308364231355293098692733598801796369077429718199882475933944193974345516483644089201525444935778893421127316227911530353398320534166992948318336349588961705217374737903168115843997527792280686724800399674655126611623580017852401771044327633666776868285127417161867245585200667060909319382470473266370693729979203023925991944994402968202373109952629395381898944785509845321476692552206008342819797922987584075301075136092574591039622137834893661163174290975116699499961500022116195693187586085501619618025491801941205169908024303970639399742846727133527191741850248073500791978088556260399068831810522000787150924763026089122010034941095502076740135347229066362903694028219310914861333364176291144390868388153547569046150070807734095949440267465985843253900263516749844082119832722414784142099846555117183996017772521523157182272354756999015096789716495621928755166019624778398092032397375885707191802032315859699429065869372551039342853007688716974301517395582673826556791093342476723162180378019264698610213054886503415227793927456563691025826214165982733992148236589728875131881995495228363420626074595101569200433366158548920764346355066778217900600799135625030349528702795750178880035163463814757779368228846840505686842847184335748962285336166920111288017163728522847585758851732964828853199217146956742777920235372346779146998923244234795075351362374133183606546965220995691375302432795415836405170885133197345951584543014790021790756196245848028875995177332632165277397016561037703629255604915831504592129198332866503742040564207129077597513991949073201949429186641381066954988173700483897147382231145966523942561976292390732100948140197993353490456754972159681902348559725699139920965662818647111092954243753190966532816371054366658967765741719331262079828529376273718232546899925528273632725852709891889537958753728459964760969088582179998087153929335509831235419488433432443062357334717636517476428569923107486764067518504110485510186454304895478544997926798268667915971311588170332860343272936134785225284702971834852212982471111629141315349204232825246127349157660170325976787523048063932995603382875350167788429618533919490783369967589865362338003661050009231531197785855737434790874960915909499203605529522769651068000858633864974453341792579982078505114286528315772669960132378783401967322779280378968062292098183189581323206724782287140529513625311710250409571602591725868976739211395571588577219245330761158553187771892735395602176053465838337284933158272507229102661476842165984062148713229604571348290680207575256527885331330195556283560737761044489602444911485445484709771801994178770550481576582850247181589858131429850369254542179484925697580242875307897780502782406921926929180637069653716039044400458204837125391148558955533911167223044179712673833169892093984453487460058315789625971593547458960523747371509639382624356070446193865555415036896853034986422409455417138734344969022703325432333477303006040508989916937174620560827475655013507952139307009770839689803221551475660566911276241860479096457890388277897476465637861748591813403747005226031068945825777044334421721994553680498202146473809073590010587491765966894241648469835293863537093481813159799022930573940286175478523023158677627362802575068982977933541139832046011843262846304604004878683472345393419928803331037941416435838886021636075004016025813952485411941972986950530155178036891317663407931490168390932053009606616164309274004162357671482174410548718176846846119059100777194500745942286847643681842943353982345120406432830187971720705755974975583303819030020519673180633661433499299282679883407440067190023543920550277947641615370567865303292126071843968009088216533106204626834860052955407813828071114111145472739949432046493594653355259215463729554041518255360754267447967689230844085017974823460039566589436364994249867300332811195388872482320893040524284633477327482035528472934782225300226391547353663732966698858582348892931725880034147062722940537566992378429297107460461370128576845566638191899479541770252401338250101070554145499038595945313516571968734001378550001898943999999473024177956218503136602312957352910228177814942295030735480182948530384043035034604493845149937250548851471739207129639332769951556408074448028479939335894787897571628802692105194529459880646391515680294222967088007335476316086209678935342289817715764476233042191175948151134649359518069143091688309533018642429571156821471757545733665125566380983113976852175757695061907253338597669376633117405394985871017931875898783439376455930787463992458219709317357827295405141603753571775021728468551442432251841246181789645077615796459133175274363342038737229986374279745727990552485510917251792716133321851235121428412234701016918678994008965085297924127757118737246525719569064585262561554398792360606484610070757058550090706697251998123337009447606878806515393215580652523838014856135586810233267411377619518942280614643503063673572119285374574550578234181185966156399146832335206556392572491233099170702574556734889352785545183080667503337774890922507535387406741380795977438609565416992425300288427197488762483039110698318128014032190289142554956188589856034782680691944488036941110133763878663804522238105730720110464541439573909970457578468301683936834841794062618229326638509971267308315082885796640156132571027246271034638425043963991182341518265751834054254199471255767693200313845252894123999740945125851739517824180748141214715365236946194323206067694721071983240383812104375001824060962208834666134522770470142202623606595837388362058222235057858996995770795916048949662785284001399420405510891086709775737852069647679008711150547945987985488216335959582378405991672698929915210172306706348100808898534457883950231968274744939754625465362810302077901499168699417372096491419408570083335264710344354862487466532943993107838017630780745884621039212083610919890797355525187902648721720449405759042911196477509710393101006622564676602710070095644113576368376435594543648021904730532327319925896660307993919170370710188091552086443739277344389530093666418256505722879857503080049112466006763408336596870359277774926798365450053656894260666040202840785339116155703326099483107986956759695514995064792333598274923899191655159564123905775540983773050286077557405312793937172975474649388620263583506384792950292947335915010244602023148447730833437846081479609588360726699835193117853042004277738632235867727553803267630815267969030570825846174894873090429918444167698205111001261724779199509360954131370279038257408672316630332531800953822769107676215756847304433264060423293533170265735155123483445326154463068625932145700230315400908930861008958153868350865045972591166445296735323954368942988396468181392524001892804625808386979733845444376233762563549013668031488879617090123792259227877870201704605325982987975470863282754617459174331467470032382208978666067811480862252295142661467640534247877104573741479204415901485661944377746427575326739534604360243830898192418542127684084831965875113082505341846650315031600226427481557445073134640449740905722967307879145736689866294805442094844374340568663303252771756169473487200760390535191482106777317430206897839879603931307325154341785527778766432243295729202297391993894520417922176109218185862642893137786285697534100500426705584202971895914298948066755693153685443873331386860394739920016802350462612809795220319600034943520742661572275036412173494111268087510445091550420727626091661947737735439346212093771913029151616137586121861026015889446226351100806451644388031623743406905445060901410423190658698370651547955927360373297084473711883969127875980357868612463022091577331413034927394760526573009800735221307357726434117772425731255426475292145698063110618097297869265689737900481057224948846352284364365010220894037466414937173978016767311833715339551595481076687006393749797572125377296743613892660731309478844047314480646678078393643809730652281409267358941175778204988214983506249473244099267159587269736948593671120627394641257244551642802936109715723245344057635136279932004511480661716422454297826435057877532784846517927358348664524933823991641798054183864664916692904822572687145070870639247115947768154628275528620891955296633979680227572011128093794086304795565564429700975362247901459881305708112399422319287336360395515084247449608273417453914072942638591274035119088287079067787603546426683272991089710907150184588760235602036998149709311301388002477724945844998739104953651819877363877878307430749759517126707105562415720664325463655819791418411717790627265543410619252608446891784131879576636861251923309629146809572800252312492353887621104515636872173520189914500216964622739813846281300826097461628439741425172860440654593537192120451122851539184577424439498277592746540957788693698982282563710477259300313470980163997676488854693153495446596400489932322370464507190210169868284272962252896049243022158408802552040997339788475350591829197215335746335282843847282338128323924307967150580215428358556723818188055102434101323103893808287066991893386551763851485183395366886333042830958699169909026038594167428845882670799707576327076798599416726724912209371576739214550785801918556802853471522938439570810800828668974871390608027775584625142047193766019313239288080447547954971496307435809890689206715158421712780085095798071001563623369535176831384794398176901503724083711907678480904250518188466108443441720760611717193588808375538605167425998802204311293880950778991490440157417566588190636136416793181460812515274444398152066362994950986156155255683866654084980244195892516017989911787900337577483578661461734192400695403445645810103867255526489498546464221959811045144226211575603681982706355238068256155443270462255395454149776802195622015570613378887875446732546167604009208906388973289631471085967222725058697752574833620163988140468851029761908873750681635242893473099654914191062232224050624724471016332471547059578957970302437741616845035615480020846344867435679902037776981551962778208632334784461805078612699095443413554357239433206792656267433721887500354762482369010826999620884267527608633215527471537052750167491072408784387122951914586385821176710047730295608377315258789325009455196162484488606628948225801952604475376893061101754519664539592977953394180789067164502081339029682672327528473509350951500008639629611170749006864015622238423334274470688627745187935067877100413110619051948450512477036718936221158664030348822776687759902979313952482890948151880235702631898724154477463518351875066823507145881205375788498378986304679980666075557248248516689490607965145732514585758607502963006232304609097221021384768711420640380708127834535155492815121217083507588602779302661934935870976700924961855249540913413775195098441253115479847686257775798137765365452936180351310682425525282562777592329735568263898627439952719145204492271087626741263973060709781572257353908959654114130630245743809180539896766582730510996576505641379329874268934454694592995869992214531965033909309648710816675550317162698767220563997359853882490710973127468908877307634774965754787188926942276397237304887298063694390761675698111111712915739736291402654282411004442258072453559901085086764658476221950990924401746322991663021317069617105811740309680793984725637881892982199012137788635300157697921184814215582928471065059716313029647909071808510035405386818681105938623971983659412845380127647083784609783378404402084872994005577040214286614183277765631958636314065410642925506143791526632602022582827545418088716542670298279524561996153397502955844814817898793308008478325378074178528304908435233155530498864456446291083880509776603147344049706198570973360562017462350916987282850653984058316706742269919867695208464016354268407755934907309532534693959218831933212736678650248160199385691309019789080355592576212797117476464984994651721932754530756108285437153461701929404930773912873095580474066244128597690344987995901464866889405384595917812403868854634885223182006913562642311556990927169570802214969047060423481091729637833734585331157995511766147182899047085956762788172747585042668831246312407642812167799526325262983543027236231599526972735548872660416535188298222387948251102141447357553423987978073413187645412305075290042429217284747164241856225602569213916898179814594341439555739069583768501842180823994486863579375076235047231702648877329214088329573893470328731685084565273885967892842210448859762852605993235264649390535829009744681681354853031674073428766886710802890764700766494492135079767327500817250393528349800179363543889786328703949515853556736443131157039907341491944250622107152500379642911896196468948962139285950116902293701480316791103356737092864013623018347706185643932234512298951112798616980188300227836411668213869358379508523713008772360394246514232134835920425144141136903727359333268372430434235489874323659755068280365675894492485316458946584313293731001750259963117530496543422658483182632919663092924013341252892043405547428668424161292805077718479689874876648192110565579581347053493959437125987223258969913785667467636387617578657969562551007034250866271915196162527530970152345803084442146201259977417671529819526370209807173608811718691113734643049860687972941120351792283075855504814368698873488673546123168379145852989925704870190573264303464508345677599543170038879949477800831549054142847943052977561679438857160872926514578835846421586625890741991473871354882112855977759345750762179632336187325008913387259723220149857592003911463829406973277815215612950601568622200320017145831926404764678715910405378987087752735720850201465262593330342998668207361585427832807161081674975779003234842028429071357746102722074376375411825390694243326963378250972684203928128114742140911934595151944685662506418417909337808959419691062722447824125517400797765621089910518073282650603062834405167992475228896780756569201476900502569259492700909722279120232096167257630766252997241987275256444511551554015437572414376751133271273665692119954364610710234065053179064114965833442991329336519982516476101773295614629889832798625245058059535789305625873748648947373086185636521495261166393353245827030792911204180071736835022282196877121821378996400164120956766106932723040509148871725923360897900810323147160658213104777482178348271770121079047588813001304551055147503892326882017212540278338693103104162319656997452089152957956968648909986961393988932957768259478045376472991154391904391046610983929191139798384448940692192931314660018122272523397504783522080692424922089244002125423138137675418221413009841684543955855685643130466128173284979658146937337550009291876289625161503002780826977522561272057125969145284190771907581272266333433696484804962659096834419369156022027418994118270799357224356993321048858892985135523478180109415137955867821433286802413163954664335964023198106243462279180137401570167231525016138312352085250101958193676409898512060129813327055218177460988491339371700101618173692073540839598623162682192400332599096846333867850573636714208356755514546133655566287903283323253726501024624910351298208132818703486292916707152203843730630401303469498058617452300011476766115901667639076115773603034310662364805548330068384312302306158502839280113486270867112385620049915403758030196894045935795587174526521093181473243521527831871824785767691604698010259534593552900163915891913371407655691114386910198749511567084722848267416861706805029396327734084042898140630153466822969826900153935993382720361011093728915634474877759531340312451485712840918896999912144207973253582105802352825500901221679455818019403525935845953069428305799500265247093750886943524974187950901028972877223682149763790561609190080620194318179434541531872610034853764333409521260807094169620405275572765142566882679427212526768262107630965732687477792302475380384266427600045560849504904149500489516983356689450369846636217889967410034660987654213683559886492123711764560602155747583459786166301929068876424926304390119612709495152581092825678419344921718221829450706835776750188906372544389149393251467755947810515966282743401969752402049209226453355131905905500882553724231913677476493542982991106744059605664836533277988220866913340863849899377492968281004980155772845044031503238948639582438769714120023527255916037929158028604747780965716505982891852342094105952602419075672979445151513385223359364660706077696534811386807452739067137656982011719060395522269188441239574893331013234012379627694679727233068785917292157116509804332197603270123738379867214830412815649490806917176775303225125045995153688711629648434100234960141439569335201722275183420738012067833415189216470195129619609276491647220725390768903182738574627363909829962988728218070624568844621750492593480934400234622252771620438054277002908840911041020444527146267555695996043684322410170665349555792340756499583553983356572385047199948169301700629358697014259398866183312766798448380143550969619643277938577860793329525883276505655289558772888873850272992855392557160572785533908511398661272333780245963195176665599622689744057746609739008339190396366708059749795042533003304618733160499207584173213134651429911399800948402580908538418514835254114214198272374420221258078557722279487150088607566582441163177200518435439857379200284666045013811655458102538812555246522722837371532439856547075917031618236553199383989290657189535131948582783856617205281528407174073890093383169113685218048910944492752334049838778631121975844188578751607941967669388102689402613238833996027535656880016019752217243911645570755260603250643678412660174460157868539553923251734745621588966698411964489333158798558468967388058245395861207063068385065247041445217137672136306171344699559346944512335011457605317383752725244117731193860827985913684774696021595430470946592800504172665154107831773196333313544429608584844714638370369112415229921466049676254161090954382746325860245012160936124853892051900185113972977436114504522615205752057162425010660581088442867873793895489069373190954070121349062409182550095475522501700360234818829703410138319892711424944304999155549629215629852621756863359085361546505791759454269204090746464559287868329256943668399597996666281496731052608777334188603953119777339777747710581562633442985867155960105906892841381043443204810863926811354041416307894446306495113834927699861734042771353435826771642150951956012590493772321527264335854131239970772048092239824987945899553170613624669199154971941254622969847454472221979287904925691869436115456820832548725841511051923308101479323730420643993318459433428552836165502292731355160677367883386908766079793425938707121031558287086238557726049931393387198550114299862555509607425302821077898070950686724483143393425660782348290437524724020852573149686444468079101224228212139771786370777209954575781463938867838480945417559223054519748945881062251647975956077557949595790040345718077761378207279742090699248111435178704034621109943104809356622880973891290242285869130847861960905694835267245755273455829026278574006336157778565607323593311575614419031469454444249168157519205780199523954321032976664903962575352016198090728157317228581890306046956532428137575351076032939509455782869115013224383813709084393200727632581452232093151691638227705911811726456205137328717755418332011292881737374462363115630132600729396937560133440411020397687882231976772375869845290326503634967565164991629841942449526410533156438964529202785284746522219027287866290143710097276046353573656700471572759661545162802798904590678526077743941030099164463367328438941916106303734249333144591415841513817638966552840294916663350323729857077316496892899636793978218842413892242551229941026946311512243811289997882096831326300044085684331140398025890559677563700532014292779591802355830843989783932512809657905408480692811159687436471912964669159764559853772359925921745305595727333497450423623888678206090337960474074196497547942038965170391128075007128068450175943850353213536501935770581987676493197575605094959467714100719934596469574042896831191765340383881312416062423407731915126179750358896096156882008509454409228394730073838897459606633143370537843631650760037532149540090619830494330734826320347746671091059555289386101061522072612998356164203149445889980018296051694712878915949006000557836580284263728435561842636887578668472039364553720777982694676208602180369944913916077114535291097100379132502928883555632252385232953339497433071425953448633845843261103655865809016717186372849578251706419062030232611023167222808820633463658801970916556734582649646889824661111058324677341097072135929174923194707260341966963001096051059156821075055879786813576229889278904397534805653824121892086114423456726661607137529702416272125783402149550500635016416973927988689165629762408403573341531348430692210563654360095144076306050485081931731982641712896711425475171558256108075730516100420061535534501756728299142425534823659018437109390060881511055260374333586564287362476130097143913139238468001257221998437804062463758618593639955424241589696282414363388114027244407515383945042444250644948383452869905160409998090805903298798910780774243020399530664552415357498878807740782877976580631001558711093578219911935490366447932429687645594701179297759159293247837579559556042848382205588349146361641564719703994385181494443755465213583632504640237290031101804195468426891207905488010732409552554035878699094302969481601675998003506409138585979614209250197908910857872499689343087946485174212116143799312758407481113448555792808818745258000802918653412697556070557713441479852851110663635092604686651710567690044280756485075965991784207970001231456158998134370298459971880728602294926272995795158986936897834587151558801905371770767821580948744462104041560718522154470250649616680567310818891659622249856310149139847720575117228499320968565831064415446349844700992725091303908481433984223877110123905943264005350163702657539478307372413180122928620555382980954725007271190694969363277458194174253337540376467875230835093014862444571947734817100575332665634337830746998673001190624212427057702461262863850382527059973158580515164605958372274333013010771296368771825699176672572585573834682329567368472692024518259015758942538408910623847060269093097321525981599039420357780270028382487829421265634249246193125867470429258508535171702138806733928875067579171669469770094366990889824121223816428387385897654637450874854495479924279044440986068692789667164754292220363936955260785174799789222974062582243969082588263917697767649069652640448184036788755279252421201526135586127771686255919698098844902785843679346387410970231437132514375666375049381234687176055801527917899159177497523119960763258652452876391301907370700821513378718406643374672324366066805598246739637693242471695889944553146343922079714564559384321961137598676539002381606173573463723048105214103098704785048029575422282648796162322970460416989767817816935049577878063612453486738074101464952748281533425016329974614135419349662779082741852895029609757617271730743847299884598318276834199854086082030540756854218829305097963693883089142982064229043729224203398189391454500029739121771449894581343084784049522196069579898476139534961688736972775410922856988998674158650378916198486632368951143436458328971297182254610846698248558916942603272766794000623539675622041569900371459491093533825219084122081728392029652497712974422848997103744751233452976647229775160850994430378591706405894597378266948145822569304696220384198866041556688592725469044584051163596341148265590388900929997245645222834119934069960747422910982102126542399784150699475554505481120022463265756814844159617119389177522667501835826968258141121766375008673296690186777248218455629033155830170181662662549414207810867553772008096915434412994277784577773746759218987600187350718617573000214127021690339157858800866972890208174955507469053409490060189940636377307054671104011469118840521399091927704282896083445549799817958728167521799682038999911429198628670513958452858492951568323608095634627291708039296674754427706876885496510483197096656104391072360619194236958381181500764103460481437940464069225606596652607575380879548214319530573096901186070643343210816373126020883359417893308092911145392658520951363007132564132324721248117355581828456942080786232242478936759215042546171276043183927753471105423429474058587918043519779654921661414357705088120416740391437725300365305197011453001136490424888402486817927938351004122577182620024525101657515389137966126562007844533899201459535936819152046012973409429763277757101555098458602345496986384125315295692737388923519262096747969710920894076253529299490611431282458572630309443757729668353274651309967557518102254594233146195127239742378150207176241634379239672133298496796880394191779659576377971298273863408724551600629167841506403872079084655364179514131682548647376763825626422555461306290094787202643115991099075212155618026208180898120129932459524901340622169037005573342003088903293812395270496451750817368836516034137155287943899263297512310237574182856427023196004780116085260473928752411127988791481175512078055006575906875109528806318855609373792331265120273199843883897688142525926291235823497529722799416301454727204541113916510435386360523902308914063389457184967130062185919126824036539260074573696731427608052483127018332571927766583831914598228038252941727210938117339416982538070398573575526046943247161974249196587095690766063314178395116960696842521330163423058079966737154661842831920856569111467980182948751202604334303575117159964264080960517004329568818231168648501169955172240434432765939117996488453678531287531199816780144045771418419646591083495582390769400480183109034740375603408369613537899332620881379243490300854076214534861764578826542561415614105393122668850057842157756749136388492972039819110173318600534903864805217346774786712115764154688216706891978976639125917384940770018110833257047398870244648211435890148365863714587542955497928297367945493640512741137789156726388985851243782380028039490617140658057171811432330527906515963292008586684076049699687046964397674585358328553016032508440460202271668368703649757353436030200619166037228096097241705881480987261319421526188716835886165557695108538485474378209948833133996277333411031757253690508099937226689936796329141845118720214923774399905655802527110098493542711765332482531477624121278274087742058270559637934008394592377567422897885422280399081780990838730596911549764668305887133626464276184335123649023216938012236804833619400460040940835541243159387479053561188760787975894984961119167870623733690706872172516737713079923090869256637279125003543815913122615098081098625172837028714748345220463614742772312523500865451826931843316557268646963991608805275030843122375060037568353971700135966781648961680734723847588180458603307129322641914810509182751162114534428537336796731953157546856251898744271570769586438587141932337286150066599852126562353170307050506384339836632053469941370146343724752592727192458096631959237393555283509849257244517666503814364570154955868443053221093826120279066765643280750658379770473596592324713308114692257570665013456004469647025217034506396512910347414561210270927395324700081304971680960943097023036415088984594521123963132508581782856823298094245854405025014724479616093507720013831091479564806905686685830838971625051215052244550986656468753884783591563326216047610638114012722519968841153511196017920049646470554760620670637691118473914951851225841357750268108578459286340006730778983243714602545755946525682850221316768766138759499858152476869182217733029846496924154753178919724488220469770514776751696783077547495764467043826148197946538340570820679463192807192560457188956886833429341415056611114691378843412235141752665918902594118211187730819084691682988809001171630241837536462756503331205481667325057963970849527692244592526807622313891065122533170212204082593813005361218317669468924327119068895885269438626001321041786122583232830733703697882495232108045551692990249802180029468896878254668424718533250556938639045430397968032229730360115886342652754824289330779070578666798823388709517144640020161116043650117313776526781279906323058965242391754038766654262008717806338653429543571478679458499263147196978421131874305835535532771136949485391610419036000250473853010140200691001784807982543918387216029225634751245209106788422599042634939638700999634278808811864951076095470789362639233393954970481764167903633186143678821525241946445727861220831445611482017443611427610094196618228565720534502782284195213447903324364716993256985525635008915155129881900651087961681812404402138547474741620762831946088469289030051166692258938669438323787450331694642359417661354906481376969653724703504891151711114148508401850640005491057602706429217168046021127938430997191883764398716529389341787047618239774563474541921957422084535289640001474457990711255932522427164711075655802505929169092700521464460308875718877022500262439287875122380591591822469667516214832476467754722233197633542714225553947709734728921716179188480797159656388818661323136451521803906531914100786140193013647986904666862166800124228183226593998580143897094788217070693301330923966538626316217685111739241740347345549292079542886523979071348475848736680092321635076060913983667688187062791646786927783873463755441101457377625288831162073794443800002171803564014358817469968127994518322400428890670665263724687980744283620754052925506430024113977951839597007580808756135537179104196319775840860658030998500854105363871303839521430823750309505882693495580831920440837445251696347127243264958279609106203846986682544376610188175468484751016846421199641680715525168052640499724693262246665812498978445546426139716088861743447322884342538275678483881252180308745947147244642934920526969699291929478951335805897834230653448830010794209865160962538565262312510335336659024411203356992362780998148428436065078937719760723673443458886573932654593996124952086461646638569552039494962153518904209435206413128351978820145290992731572760185977720588503412624981389858787635579285815410704144713661258120222326684865173490901719541775349161594194784024247093559505877760663175737041827703834104708453651657413951372079452677758614853472488239412027076532931007130644147444622797109846311112767129119948546301815041378187477718439984588332144238476115767232277602556282119983062955261932989487478830943078113120189737672461660356899578362243385716152045022112364537025890545029640035018920029119210869654370696143370133639074314002170012095114860999293951086328149414538166082739791389154433680131903187122480277523262162700762285829195848693731523494644157187769812451576402210303313876770213198004562040214126622009804892909994067769639068420113514615580156216382044898980808900409881523506777613862137597443728281053242066411375223967832283775381074682635082987606164795927212441929901441417263643218442094302870259747962058339596320905133020158043710658534669668037279663247046961630783697156693549031572444269267433274471536992513492615598257016330693376282811535039545566534198438898065054038623681261762456627502820863621533125559868983369590864805115862358605497963002806051422540011577866711214783060374403966880870374675833107893922208203734681868770628288805493060736585857805165466087823489285504818743612964695776637991168460845793023150496472280604753066065216061114951595281603078425238209264047259380438973959404176299059391367411229419150877874946142627496873999230489263879795436814301443015088719008945468665995614218749030483755506423396395069592760508443193196937145097109861961437799797162601869225601519986720925031686959270515338622331427801537198383472031883220676928982924815282523595649393687288143762684011680144804214497502520604780191307496105476741327921522030938065987681644909754166770978124503569478038158530924654710561338973298329679147353381290540999369389823149726974786477347949487658328494554022919308310688611874893843596837037499507945366784679673515470737322913546710574493541960480911824391396256199089441115734217190907583470487053647783835144141823223687320840702917882731130059527398220537817027022226722163742022999889565803406884229004015590733563011025956154978144261353668384245095015078250009947249755527034136558162828850863021285682833035430543620504395110012129942994723221328389293889346198955045117779988988700752471538357042825957810903174946618648595079531869673952346129337266836802128552301494376229166414217875675086881369819878481446353424369953180094648705724698230744435878292764405590536124769562035261539674540200903807852773573353752144199185287224860930310231964535134227316477158450687356781100303640741840448132681697717609230508603846419502219258813960707014766810567653511300011812013126686552838814405355511627463924137716122448652935879575236640356415181688715622038931052335868105972033964709667064169167418094834275398251063937475430294955406183892502761240189570587576114716587882784638330441949425221472179171058142366404400002243109147765029565211888401038002717186775290718624489177671591898818098698020984393508349536710766688300115129053970854980976395514747257868159304324757476447611262002877693340145267410330923994906368264318928853868568141870690484154744102396807517060210379095639374556768260652747609627025235600736348073461814257754914241348998358199669182235212162348272743062400686343113302131474838120211079444681957073650410998243278294512155809054890213670671005291376551935718305270032620985078983218167654623427276987449095427444669709867040723394728928680454967653297477767231018076775093582137313321776917644422941995572967175075387432325793841828770297849840695019322202397882002341070573061659643386601453015807522827329274301818815931816038229130822710059553140263804268197611023807955546121838037550906635399530176946621179999615237168804441616128034012804054370606192452596792123321788458358081332034629538228513219765684410727763924226689086886615747300389567434153579908455611628826615666420949727336438518075341714260040047893721311186102908325601564394856283706959923092045637070771526976464574841515277517579633051172419993787545657482285487711045812493205264674192586920037393995431795165597381283923504818725509387235499061121143508013636386531731057089754630618666801488089810432679789017700181508854184317699778481172531810527372299006616450656368575076108476010023121775547338193260750529567196283499353671425506658179090434965888777969736021300141229508374635865273146019480439302139609001616697878699972060242694510493678746406391554672394669016026753905830068883411173665855483735839435343298249189700504919624768056265585740040519166444359690836489617014957444792464312507866787773305171778610517328862612896334453699662036387939279957057645901366905364939549436215619201526451445181017385828841401306971702703717060457221650705021326490956736857139239809709849092326858496277770518637037257372131400324016279352607260529878098699424617468123843429420161509667466107367500883715595578261300004177290199583291085137292262970097550019092323945332726627001898883033941203261625861423887258801486901032665313497796540515606625703818197422137813758416282689433814882925652362963414855911509286984254810543804833191002307533534123429784822957106910849949603909378162477538069845893436370884934211942131655501679709938864674063221537384720440761597432887076876125604113631616501731414914852730568655513836910038904583820515340298242654663659994783305504841030546482302484257096259866412976564770782338397174732727259061650422639334112902336658587655018894725641309401133181087788722875662595283345083164339229964320942000092367625573915807613044547656088574410541045717754425774575876283086225447873350212513369195336703232851582350111070504612658705487586996796887364169993578236109250671582379235751912731533466101500341719547017934676171636813101629586666449381789862668251199630073379324058541024572779507749006964420287714121524072860870424924122350809957729956356190141714373776369821727631666540582639562596360887772758050786867202614094104659273869921401265354407588989073076317000898034141882399183615759880558912561381685196822044536103032388671228038870145334458566566017794004824474318700788325424364019795542441176473834976461416320588181862555813227711100049213110549184072479245004664783330978099016241714821858887212927987664047955757838058934256573957013819520663050161604892965365339668999806706869292295556263546747760219568999730706634857489373259150899810601414230167618388007620697228126853873546109481049573593034154716099671936849537457789266668365755865303782805599655372691309815667768767376764409905687518668575511967174796651900153325804681174248513386922241398603033921416754701293466002144604079679531878370435007591933765134223905353859897192917876963511055299323063652092723146935313586627844684258600935171047488091435145126732711050943720336441068319210906028299370322817650214095143973696895518642185109940745346892233058191425459605554469689286506924013323270976968894189304656897307243881024354622316219980586910668212856679874059140550850975308829942486041154556609043578731481522402248122727803985123852999198645139744500679204515897653228549121850055606296377113988626069713492539740689316547826581452821496660767309376952591044903632141530445061999721129569647069919264033582219238776682117082916788020744483319300391554067778600426298822246430606977214429058521741200146776148398265812780348984657141940179583126533269152006283415960646158566700618629513613979339256862934539579661338483954362773144622468323174334753996546305519256398606291384762034249360686272836919900778037615535420548726636001182985645733735968517451638493909484165931362841876160382607841632550866771211179657117725136076687643316383548764432662938585134280275257192512683012894888971184398951042261542509080960383746896500003735577383283466211612404200846613149121107625700072557618919108094098635383872765093837807446192516932698156659921437644277980976467406687595751651338850730324993602006266748976136298279451775852808146709395869291623333365948959711912988535429975722735491727441694991666209458239740646564687410795041765332193101968167263080028930146978747456088815751866629714580925786175685417606779324006577627196905627478465372742484473428042688933644851068049588848639694969200764286591821744141276051293656198162368683754815708370344494290346525787912723359496340223409758991982944283218548695640212005822506481876226322908576029814138262677452711809085897827204234878531614148958419864276903069882100814902403436162458225837717836656792195912365734529520177884769322981437409394097892067390593989071967860690194145870144269306809727831059191969032795652509729911415924910099099232962114793569307843816369256589171754368675565166736753901412721525531044013981850111688938399441423312309382034141332300496532722439643781682012284218034661592979947394820101701756221380723845536165935691250651390911718520140041139720315368366487836299371283598322973661316763596908689154197752114468299473252612715287001069450145413930443587698579252242081848196593240373440804011916808499135051972420876376411032543451431512362632490808391396958157076583532334938569480027172783049808299479940171177472346823923938183121140009843283391614657209282144698426002984956532826006810433412452411901408646859537022004682385354093578136070338313899054413920388406549046079029830958918731607677326050531520259287815380046269059530297101581391258647379006729049153931376941710664481635894562641469213636423987336845670834146943771783222342681843956677745734381097436146915382618053515988824359315926742279207954930309429759200345312005422057366954436764381901556541126212223176434402864569207282892498149475426288665503171083405771156629017617109628059930633437556475936258955826394134122126973074833916882037801831605160533869533498159957718999542256864805184535095094992677800360664857351141469511253942753293886404756955710914825350560621225504490967313981396472037071134344205550099702840024343196707012532925771928785634627570327332643142205882057951778906157302002266711444421286266092545785826483085473932203811310789533998539658084480124569830855088973887327353211008893638086417744707723616073608286576954678378305026520025430246045397665386152674419299055181982677179828279397082206090895387733778354408103125562108559657848097815391739856117986883937501786085556483199949080770557119559776933910207834402685722853436439514851329940408834782979137564881290406500125385814453095318637138479343461477513150397175347026940971794050110117363278853168303081709733761146981163694097507867700522471424714337385472016033457481732110767244109139142482055036836120764681941393183064636414335193268564744066232970569751375280212263427073086474919535374436196271325152107266623644681797696475206772715087180130755912570455478642510092970760564263584050509149819684513721356328650087526722548563492473381156482500157698504075325917140383437001195862402050858546157465267189864778697358736368871005330775778244470920894343670135985633271209483984295835998725788058892193425509999354013896512767411924664605020619872772832077416200172545572937506310875041617482704676726194624621748962395573935093124198443562761240657516788009553399616515736472532018181544790022971803062726738112549907678980139846487114712510889995109858738003686521575097882068307984596592583254367412417210437476003014082941389439201465616326346403254053364415226222946280417932326181614220227404654857662129210345096301924143726506783434415332999866128525241093288707046906892299338587182962830019508813829627930706329833540345164486837626214022918686608921554289692628687732882280659821549010909967627170356887240143997877953604223038148751387605144720312250338814211699036179814230411044956913142438153430205472339653319838990126250745355103147975422503770231857788898376334844791332402365019179147535480124250301441697309421689770513706823287493453143409706683223083795662561524778779468293224589504125568182526741211580115355113239954365374599736859421634658624102024392843052404220573650813565041585770975906985634515691931065848620295379684452679754213752462321869448570397208289842640436187950234684185799395550776856596199562141110240317699756016721325319266570921554569352750046366444969431693899284829490299433642530228814418303630362608956500157069009783855423200747377758977086349119314783243259815507013090852125975477941135439023046361257068925106546633086332083104377616052390974104831566445164043382627186232700705425899557413902447500991973625619548819490330904966008873843842795726799958028069995424743555345402192801106801009946404030520989802140441099973774898586086724707456619451771302049645443655599105426402406502819213971758502085205819519076479930252890325602776126963280068720992916320824922840523327044205973491323051464551356530199174530792935101575193130164555182691429713429370716858890751332050627616939119346721049180612213973024433795097018158948686954502860660062525159849472916305257569415263383541150367612551590138245684267362402375052243922046030641052556222822095336345182182268868716706317048210076752237124396139116962199663001814734318227707840803032375302807507078431810457881184960505185926224435396828923040924697846865282224045401880074832336968023861202216735642793116332337570670079045627237033042287791328747552803993997593280311075442321345658332862257627731518269280025662623112292142766754187897837101661080634057991947625579562548934319257214781689519787335902332857318823530748169409339621150330550606076973330771013550916183491491648567866023822782975261376457152130598637988292413346122330565248991512257410688593698552207791222129786943223976783385502435273046649536869775565759295590936922743735902495137945530047312566722110767777140059898379887446039679855591519537207010820161809419516919563262550012445218714199024469315778199029740514831493145589952654679292194935328092981316457049187617275897992064033448775322565284387355825181251715193645246120509066890135714133512668096880188464781086290631432912605963663912044577874131651538885771980772060376575791862112092773081078938572940865062534154535223631366349024809135749224249808606988181324583542761555240948179020915531069703690617566029227288303927404003921142201741597684175560159928782482056823343174249438555977466884709125090474455872330004422213214855407419651694347397203534802350124098557893334559808176584073030290010065490444796149456511299118667775273776196001897860173543180442259641551104056628315389684253774912131833717080595346702155973780238288378763789028980558955009319936546135771460679927590733759932421694877709282980335874348396500330228452110532760906552018796646282209041386014411665995818282060812257899220212010508594157000446188510352550696936424376075338139175411559211315234427808441166462076536359321350165752663718413196738312475335576360682785820082062740516125239119209243974426858588059275108339736375073203827342494991120361871145897699461015000148746793524374302889786984187085703577029290278668843167957821981570336183228137896011797733044971604072555686596160669688814481454052855756830849920886414816376103220824310612971162673828941621869336729494596369908076483556071206185658598968775469538686104475081184251328114305378943225214713771127794084153851035253686529962554712838323024899860067367375778010521519094941562302662409659175914408364277818339676904279618739416887397770783007329558082104315279938835017105575614362922904032662469521139747574355215746624264866602817559353404442825519045477316880009999805912558065183443856722282998905462722219289338801517415230510647219587503311148120995535711430363057813406828316340475675729893911513383189108682955796455766200036160125245107573325498740051305871622030213729878849756020548500899686678643354828290158170510611174727936700031918856621200386480628906316666050900728645745196369463086028236916499103524411916056672234455780738601475554417500142510578648055317871846618421379030458529404246642891384907755894477008422471913301268717395053260621995421772934238665283278028909277036856605729077158969916567941896248175172892671213229805782789154173714561610613032596936187747431686078058290575686147022289049460209341873309962888018891194848899724534520265768805715896214677449381162066774408796780397666112605677096304462952478735351188192348173141968364645161363593860296368172666020808206296604881544520381317336888538418694974227997816229837815655238148871759163796987964740138145997331105173696128725064797290167790593655408174995371177798544310750235604749920323536548644915119904625588447463864150523399579378701011579143405975864582855378961795468640443902197516854130923126616473464614405026584588664412173330729541162767074966196919638396463067509191847765113169527137552339158764168563509128381671387885306563794942978355554160658741354662198709356389430423875278796919081712506829276912265439587873463798690993884343600052855136381006900443342353949887203278447512029244861124720051121862122110149529249920314419506473968343993539822929838200609611213594720831438951076674133527349821808513598315017257627288074238992801871059197235297549217801925780678322392179902671736683411763228740810182018651667100906566831478720356517743472213486484724297497657789067521659019590462661533710377170019792439366461384522328961191097163351038312067502501004857630142355881051321558083351722665573198578803964174687305422442894023059532743485318900209402660385832312038127335915331990692433673980084964967879955419034995487814434022821496576014085791982647519536693328489735742071251122628075941552925053809367009041764183727569415358726548726229400000793683207791468776306833476383010988673626517336234589230950197182013592041921182840291493467336993626247256922859991060461857812183730878792963214090632139733438342974870191065600020551271684978665931274829348032349355383303038296343454590430284049741694981011012404615153987959831508364665902361855443621215294197108578076205776359183402814366150481967578080064214728110066660707314601876241661303440268876911945828329264973774377681455338512221644961676088294134163645661199829052832665369069504045331527188062611049467332576415995253091259477884718126209401531336661555874849809790891191772186195412757706024506021474644408180964374808651814005211504570189881997266364448347411114172591355670920379775386808128693578477518412158525542102934649232874081292531447429236783929042961159840625334938693040160445040599655395986456184993280448866882572163537329182040348685460694492388681719028145455165633839103046018193987308515217743114944084694482503281664929148211112200474570096248873294805687886831247605394820304931769427226200568159719172759241206340905755365564438724702313427151501693143635027162157465669430525595707361222690621622270305467638035656990168645217058390270872607288364091439613865793929829862948501430727914346885298375261859266206791530230162317786999576076701125968950377812325017395716827954023904966380078661292477769132679218524766358590379235401184323650465348833090033181167682501630140667109581290844344683352147797778969627363724144671224197920741087584666418412518686174404690000328291292520341873770610826568160843618787916342986815204350741978725801228434977999795876993432454141126935525746588279944603757181364952419336003678675396841800195228063165774234876676769252734587353189606128652922382657541451259549012555150230608003980413344852977608787999133123650243429683173609705384803665517874992625679188157269751990206912556784967152922388050548356145069441688472083738787773240379864381296851778874656411187236043807388570766436921816721838659729476217404730321234691862424599985162052772187358243988677494426451796484483577550409863262286913770932316304053253939073470982237853379846971642168798684350032022018594665084561518603569577601185705275301969540195553991930931735717851554708224701748250817672486259089012914782051908263653459824438747113993605883502501471210789798902645011157494753042179780547475104976220160035045846374277955928586477764899323167480151806733255291353941328834630762353010090740247828166952397565273685242803791968464904705483351457631616206899549663955857357274759479386824039108934241274744022340830399837767278215353724995861463884208856638122549845056094679492189111518663303460579727506438335012430802852021418582695774004993850377636149922182255566498035525785059732959848884121784149835338523271646748961865639961231473376423718289265642970945096782720948306313348608179470291632192764110743011205866871717024466068619983095446553202873111464968002240422328847948217236005377813487996284786494849162166382150079110694987323360437507799929133091761194276426920754138548904851924600846057517159591875291725737349405591386836417120057560408546510600487033767094067774113465501766266178485631713061465641009499957509318972979918903770492647396167847966530398531546078844539824458033928660436888174859547252452615081330375420905903603662272821130691289900862923579544530043716426323741660958022202019101077063352072506333118339894756669354954228218277768005759702328726297551367014457808069295604961420691106065248803244710016519564799635267744097738064018181749556836460422731405700498082099088503664652838075322317298970485480547318573874973729748381378943780812100662809601163331945610530613207573817112895491394156677556759039735931564481101676198071436587284216100960640668578978977923610873388366558890924126645069680139681322965452490053079534108457484335189205995897483928404460260716908611059909977999508999837033785761225778135350969567799491211465656550450269532231692638681809683474024109056451379015253477060351634584033590314830961995239333045114803057255164754656327722942561628065354144840201214172149649170915651435286636985362041564479804110482654635318006713703099687747380264903141437204209929776653248678260006562314389647165720369058382360963536903091338876653398306566934524611193063843851885754295977439497441007148396664908993822733019817223411618358291922736750660214554801709373834029013989700427302512252682690329917286304293155018745393086846764022241014602454317383479684535963071302684767506462226632175239581832317918702004546771693710360563020051004086404605238714782233542559301483433349585899570428279056116695680795309441751996568585122550520963945837727728876332400456325366337938193359240689153015514258664144322880277675434899878644133476176314813876886991144009749904508983355309156102113729823858475620601061491148129648189752150524181001245795861053530483135880124246972172847104888648163544244213135455902390945695391436260856311916563844266286544736291367143447579378711048545027616505098944259652504349996798481662719895469599277899968323639348872741280450319989935477551322230235191889566334431797026841453809573828349792509833582921696115666614020080504707454779871099833726134766716154896401903039401846357993273481405461822449720812549426039941055981814770950320393267081814410001610476905785860217789300024367142456773779652942916605429750422342853850189601158258704407785524027016803011062541223385162009737238754649723125308799891659357734652535417390388405492696142661405781309150363997844854011119229906411584113388589577549727734973622184791105755917077638267549282513191219398839434795481911280549639077075295056897210324227483858747654187223760862594980629098177100162996004290404198447826723472819808199633257428338906737775586120702393812284348403242715193519612750771047455152023987462789351968971067781665147466952417119780487131728346458332521147204855338145933139765934655331611688992764354907574565204791900237996204344961685937549955718239588172837342343298535090163288644895171311632576105969936227376568393036419270645156654289154031098258327262432570323584345450195964833658871028071244105140661166949091707280992701447591670733308854513913492286824088279490688371732738155483443303410583780354003234696158023321230826135278944936219924313158301105917473172778595380324803405177262820670375776584150198667406933634845191576578203602626403881454939126131338650649760051998801094944059640860424244965430458853641693869084638800854435217149771596056251260168176948927344501515480619959244639169193228156401537910743610854979805372444464135584169190445487225792841242264375813669187959126639205635583421147656680953730483770161549709964188028821712681540283754695208420002772577381581804539524225157009345080442787668475110874983892096474096143715863404042301784872046932040383121268548722564475702684223124252582705846839820991096548172925819372912706810294105616890581697871907018046953166441651242989637307397347374522596904189643390640708668949138728899284683234239334955425808076149596993431966655252768067184629684135889741474803987391311733552475112043696918401120587357303597533636855715503585797173592536130048641664011203120557851127770117094073656011358666552477018792425447242325132097962113727449202255780458814102672294018828736122598650002756506804184297661984320346808259811701127424039883431362603141902404267294945756621043387338419241091321758765986028989392225777230512798808938828760423814729517940152570608669834297950627100365695911312444320088566047789219751904892497382914227611215390969048288518890969517982348823343463154936689657132621557256061574568156105026401159682990051852288638054051582904553945888841341280282396286857808204099298006145241239054978429181723250209270795095107216618770073478526817353260511994675370370681289525791161456276954730126970732022979336791605061025225133660934096099217483821207449664041401256671700392147244898690423688702431799484044232060041449307340599772430889245805355094039177350826059410390064420850924088934844703043401269490418566353270482768107988217712807908005455901686834049733921544908445194449807516346339574274558094124169935628537010117473658654287238262888597434152210598860718747696876793075160323570189822249510056747121379416963644047370456614660802964516780329553625478914899920333962558459669420568709658523177840916606321159383399422356847338750795935675682304493456375874927369239561778765724250833010816217570909332842812604316643392917059553969230537280912231673289293700992375642222484747306101900351991210654496606649820932662641157742634620842888926958862426369033258016486414927750443078861680285579324720146000991881495367451965628438827383930621629914563924984652180835192366410708624753987196203442879449135513320743227436583217613390995562679330571584580270219585716100902240063057495219557662377503306424436883294753482357981796467926005115429026439160183721930062530521868918216352725440322826171655958922546937593659747837091905331110608041893920931563700102581149240028226731369223050591217059555743101697118427562177243400827437748559253737065580246693334927017295035332651225444797156949171452453434913265168622854295782240450180711668204519984970931196190115674535932679000959016522440447862040769131478821458068475056726411660357681226780978517174814259449492299946424367280673595765577723600160260936871241883054401879498538750955493993086767173787793913651109385416701743034275298063366179108539387680343172777062066133132574317976336551794716805824827840906172329116397731132414136142692308348108767981950659810617411115474496093571323487838195959817435310493815589963708588644869259979862226391337339038301403044387976162237287207790416860592058035103000862396359599231158337404181458727106827055080625917246359842713277665593538989994071063021762800437252308686820778245632834589563284660772199087641391429053438965385831204417785082301691308108224417966151887166333553578002246940830268877664584751038607098151371889504376657468518707939333803785341501310024812924022646141999725167215182582098050722568452579671166445550603620667838664110699591431847392580126584423745681947727936564734758294459009185909169433114118092318243703507532388455417600148297533127736285596649359168797390077295808544450559570037968037878586581814178731049862265889919875319636402009316852661444816585537690216386818976295640248075512116450664525569888795869921222411507851025019816992177404930948722038933596990633851568723431259429542309610704338603179888114201138967701850980931020219826194796508372510769990561485018872817664900638972066871449684202641385043460796032178487796685438384041800544914123518095656284143298273156167860490501938471671089688333851989793106113653609456381708521262117575467516766011189656906235699896019710399983844859297884500361078393920153510674116363213228357063980588165035525963621258315986734707430806868736276254815879530038708261098316387650022648827021327549465236569253529003080712096656171249848589464164721367129217223239729287241732711218876700988534725376543459287849285730295824100710453068927193366200738574798801196640489311043106284542981576956055294270327387738315088058366640242212321915196134420202642287986658944151259041056269326925267847499393665777966542201357263833638514643096170924467329938336437291016173247449301427030396166949532817441561598120514869775616513715568488451812786868470405782195155581532944054609578613221334513470543114240708330283250974206041121552506621907844946059384386078377422496024383412880875418329847820209094485419819916366057989673198252356535500061065595343359377562650867821347816734435075200124683444954876045278539174040550567982971599062958823819618064902157802884228203114136898771710299655456923263036878033614908723501641572044496177839198237345339571095885365324886513281928959469984638534476555493886373223620128357356726185125600720221004372255155937970431531512044166828291857823325884134662229171746862484127991335512182901347396671739693340616066397164439631761993855153654559839553462198444785721653708737856433044878807404570465406214779764963400654112839830915164682237737922364343519964429039672384515171119243591154010836403247163362724794099639103381142008686586993000065631924606211251004205235562446896904510213134039086640608089781663381665288585824338382296187212625562979027522863984659944391775504075705857737630451027964212562699070151875150951338165712283849086871443058637765287605504012318130385491367830002400075020660909119092003431376130151673531054470432188878777594503200128058184352651135674959109628797869841398815207084916811401379939219971280463755640973033223439551873404321153678241751878297070133828583098587683923790509503745419879363104170915358166298307748420538818855720361897474351611616895589977938302124673109684610288323942773295272394249185037777793529425999582568469676069728385519933821000240168587881201401160217825794496414416531813015362514355904818997150806223091147658956653628986675126744937308974545518107335774240307634459213527357353953398600403839422495462942405718566918003093723846834832979168941703845431828736895996868355071576730673052653932814097964164089933721169704398028686099119260750635537180850922820856450785857356401019482866572597339945264051787236077476600274899489068067328261131724949693128547288455043371529116768064426912598099839544673690849308806326899247658892879801116768989304929072986143009943843132136470242089056830745702760073012194941994262429969389659912503641549976975662844068969800055457243162007529504785620712307333642071025339876705010888821512680425433431550359075628203033488261755705647442356623089743280608607478661322182443170693551227756347624420640704319531108978166266995525374908853287368487110872241731253035560806663486796418685226387537183210161688607833806322931837429671973725057343724684962752616844028513388403293615596779212702357789377349183029782392901192098640622811729670319374075737233144358992851960655494153898349114304386648226982970181772269388033433422145961630448284982590914975380785779318473527855628061922868449329478815134389966454888743189199294574755363068091981145828167161186520553728614380883670407537559644402008261775193491175204429866623398459453205712897320904982888422778030500404735281701830217572814480773061174432580625427110685128456659824538183547192592777481934820148622469280916570888951546251334245246125438347499758698780712423132934467682940216250215281731089818845123894473968588942430465671090572669266697049867268780896954123803038645000854764413002871714682463922091675915324113180656657695472484949206944176910682805133492098328600298689204182146320680046558396530013309221407706230566905713251747021953508426725162402334247187739843168108313079598266561002382646693404489634095315510781267274682091953738809949036753874137525487140809929293643764709658292116779822316360699710464521380995075131941263869496906783297908317322541239882464778269221921342320892957639889978312003207094551677777030444178807475339226401375278327755278799095798323845015768029406255433594859393486106142890724976196396325934164557532512583948765808043544376842819962729063583956899451523646693613241588037258497301290210225415981540108331036091606268997857781579995124523442811692208288385648617562291282694285136946748785054868489677526493867175412993670438334795805048796215542995095079703256395013429854200792063593355229451002027487880790644873200545888755636164247406292819578148550135970611912500879239556721814331590088817450103979317695036757811649137216998264821696717213568333638097202380679449786619573127642685570268827942944651905658377711209082139468725742707413741778856519003517106636374173943645008726882138340277455425338255370443841732832190199948912113533276782655604448109478729364294959261781667367299797000130776534571968977660584187495190242544467925105539650931233283761157044668642944082065917590630887600714710293390310368760582266744401648794167400793564149803926753535005217043384660674756109457156776723269338007171073917408575387932315679960886375916044677473754347421669208815599223154752321895542074132712880421330451814702956027353963961214685993371691007870228243393893219126792324537946007882310811204486935546120573945012374888467609133761695522394453773030533170132134564484140296238182486039516693241951816941165789665018638216193684249630903445709437415509939803163146255905962636945360695119038580759215881942441804951389275349540977596892326514732610526745304593825943147446470955154549657417129484052956948599226934808215280236413583141467298218546668458858190287366873024152119901552769580165779329436789455135371502292753936059312009647240093587020646211795334253152547382357953674512638515135628933219300094368546649923479487329081933947364169786019164728055698150820946169568545534380678097434225600708693619710547997634495697622507702688182234638607625301601446146717684518082684597424887348378817278218604143079002302482248836309952131253401388826195081657118981380246844254733029087635158018383482247964410959838149823861907051995309512094836978926077410488513543946571479090506751145321563275401864385232927427930796791849166335664235127162104543713509500663833330762209757463499152871067537889003954711258176640679812999864883452289242737002860766025843644648512033970203834182095638822115096014243189422658003888559576719241705139480607946435009339486149908123309388279373615481605235738210097732790405241061554960752565918374260710373894250744651587995747464923730126451393343963767121820153438277547094516887423389714916953035226749352078532707957012927550729708434115537665978894311395482814169820542646064388790568127948210689037802925657986343106738536159522998428115454493103631793824869245678393881258821937044372905880487210748810039693837318984150652935894617961929088620737748510157720817688983419966997345481990888406815326200537922112953634820634193660087059436544154168727361956894129553910462685429658815239141821816580080947268337924066333326888300643565833065416852713865649441004469085778466484019520228970395103042044537678932240423954825121728541854556988828195539876126464969860478675459587509891245167138672799544716346265367108509250406831018964360796965664738842833173131446417269594163728532948027439978147797402244583614526324594978870761356892420085116711282357828962578864028681393622411253083806999171957071620287797722322219019907650618594628512374605842432461352294990264723585734942311722898763437604646281900165176011764150794475086546978153726998128857134144601026966787044782842626091189363751822697963390856622498287879880519920509169036142703293395454414901036368261542001337699817216113371116451736195163560617808706367329278120434663902078244676005025230844459913095128219219206474127836454941948139111829314802612842457406708988481389963489308802929980533978338282795644387742662553166926881085045080988768217179481227466580126607452764985009228039393202501063356151409275390224002834674966876835236866426695846962407262004310769191753432132424420764499355942289690642945567732506208479158845730201580899633489527168100797611868974498822098082219041418465839626680870497785567502840123272506969338424984433781888913038590361731936206245029480434304923232581790096417964424141463718908586570364401846675042519606608580524245788471905380726972445313568289760533901684049385573016326132586768529862409972186890861924330340973430182526533915099641234432447640703656769033300721725091829948805067812861032450325096809167995593934965218477624877377408634717263537223121009068504985199921606978926379678417214724200978589242253045965164728795920358164596300334181751878103761613889535335273435577023051475604169144596094982497063050323211869685097218470118815442891542100247868033646616699503536686336387212043942042820835474917049830956294701099299209050610987958517624041938931197743056900533416129637424588641287356329070282734191776394282907579036268915384323298797014847128720415339224946458860576691877926758159851136819242942758052708127460786268341016090194113832232090381042025421401651914556481990514387964331468311198347674120122405695231104711315296529140957147740125959482983224678616253339021473258136013384852286241691562878041305404734476001822549120345353143026312428591036934329815534953407727221121320684158690019983286382920310797092632442407903455095386053804828740010761265967314353772201511113025021436472259812335256189741170574232048802219275877333838379098332191443268356085596692463206188032701072364791253048356298827073395554385353090764371528314117836602723855115118205513375486849418624651371462899161730666863333937608790642282529058639438231462244749052724989539533719466765294504270922254974576497772852866799257094269150025857558696674596116283194338953287684569838186845894860171359197247690662799015541420620549336488834861673264974919144021907298564683013377287346546940689744620728908708347769907525480180300600575138607551164471951763513489031484864715049826552957289410416947803144629508325705863130351802908385113790058175039574795733040599680954132102105624020097553827749107566610883373662695290295743644457617246079129042836956964048695321664264687414820749449655111002241820129044059850443455601927869545355575156447499003251179026980035179670999059485628938206034956725769101542721766560651547684417598750446526964229863165805277455119028352843838256643469685255621987725466334817605157224854161045182707099547388182599614672576693277283294888641543814457858275721224733322920737579046947302917179827879926017607048355148558692252295429507106757589530935435990893006863338602055736022593368814346307589320089941386119151091118044096196973097366548505636294673850361419262093438574458238256122347602667636969326194514535900758154656734653725172726185441659951038087955615041455512286936744146800088028280259238258523325017223258058067440002584248959621583820512879277775723415915459885881068819262928025372321322989995129392911436850206479330675510247388085545381645464627334594930029099992375564786196259947669266160209746970531744485947357084332976152326739712693576084909315930771347163576508957491628074469443562952978233482843082898887877538390605799408939101766604935481158901951528449831987213292652084745930431353335834707605298437689206800235972369364616303838768282311755017680271598876122098352932119256855161171967614095157391365740396866679883623537540104295894383575852017636584117842506371848244841305034037732837876521629234376638112220178315178741021057044178210184678741850254575148712395146390963631969783070661370616034522687922258948276148241139638428404625999630824462932859795624124796622881481120248696261118385517396018852593855933333778902376464170303309000495276610855807406814312756874040289085938636256092167666275591338085542975368347424036311878681264535732890145623083844863034276574185806130481084056209988758827985557034346810915102258673787977868925700585330116918054008371240432658275110480604953580260544512242303049262494716210324190894264124240539675652550852593328708936044617007624196341064162253068410007551482680311965454291213838968360658990307404991931476512389839074537414116498266965050362958406805581153172127803186814332771125832479188706517871980286100788284359824359727110125597532447275805372061465242930919226374497289204682522944682375754886695685646085404123267400448460386678351070192303292582286283331597392653204967531074599942093173134959385575113246859973974016355663084900584800514572332871373114416276403336395500565477010265118747213615467001789797874666361936835291361390422249651991961218665353398695603464738072734055050021435230173318912827304111378973003572750480927276379503183959757034053129316057901014194859779764044746615926219021452040495402133313431361653420536812888640054961554132577258219563171180640328191848230559129591736309783522775692488892035265493012063367548883247169018633407439314921016313056081334146056785452510719016730978738729653443276671957182549435045565496774806269977186310650906561743820044489958624648038019437311382961914939811683234659607864870701265042799418742208862509305292838822200207647327409036116052795459939122581451761997269205405453887219912027073231066647069605350451478114520349783453059495946934379065897544446932592122035790369250362891584145372326004385224015918759652438317076614102213434923620438988079451025226066168539810414346459433362063339311930288284273172036618124058140601343017805922168494252504205384252969893681654738972625800431358777845311395424288916899118956391332835673679800760666928985163702709937551784282523632075614886720326483519822801616034796372176999989400904662502399542177129725308405691605350231140653159418475456041642236218196350699711587692338233302335277380631439836108578293647529823971184140066671204557916126201874147279136093630448119140555921980785090838464467983883032779170354230067743005751396087865101191209488999398078557413534793666915359527630386360142348291834128244239952663694091737861793991078262629330722410802221132092568055139743638675772170283645540574647346202009760179949239362379208877449502783539187881467503270504560465369883249723684060033483975810649453357127030422890171771521424584515179848423510850385750449122806348747960157723711013171168536525062200935123771154498672720845571934865962351405791516819534616643320814368129075542559572659759460345250808463133857058965182125315072581942428655480772118383764729796252533373888306528366032736815293651636420255263375183513801149259667554847359725446178745207023152664221347975585430625026165714659136065951010944287784652944720324141499789790647655049698224641985964631953809103768280396902899461234935188328198171275531890665499789340229576648231018322436394568259733708669691191540296775610207937343563377312293939919332819768564764326712605553410082624949019030658245914724992018442903136041984813495920389798225568745064307845923614160370609035998956178605476452713267712418789424839725032935433007727263685500541742418140104590933769146345498618282445800302906719234334345824897905199710066762909009663288289851533205918913198013198642146986231592141493553614190568121476592319081112168128570429409372070079701585276826652169290357198868537935438734970590827148262346119050988321691033850575966256726813097620201740039927541871520073851687495259756360112992035515709240906695630853021079209426371570856489755376924292420769400600050005394826754446608189336196583305575609475667480019660274737619661587345965760263947377617173923721419185798956252860158508110967188118961717212624693634260493558324104541657825962585708635763613417786141515516154036240709806609526852128456895654664071138263601039905362311979148415595880196545188729829150651928978185069733500577364060602056229448967317766888084806322271049661586271448243339953979132112922194452440199211634901619089250809390063370103742914881377212709263108340270184668425171920347143469951642980571709438848733904399855048489986477769716523995050216545072979132686644015701710435671604886262580099119668975923064064846796439347100826207781221422431875433596417516234970970615679755123891722927503199192987067840293244765609008244096907052231388334437143228799007166311207271034041046928797420635796662812806022694704714213033710949093097117835989025227563953626075323556644886180336534361926140934543626119214463015967611910356093346396253944410454618057241337083944087670984248907760788491901561275800687498299160372369208245054526197307542952158109197117164326780382291645702381251040729438482269450587981250956702588498096428423659612023368499369834477754628630487033540497461235564536350031237217398440390306261169498380425759839441590610235661539476474047159331813452990919816239514621503590413123812944954225560467295500545292374594430035165625280555045909688371984332106147365599278680209937474877744640952908100349027184812644286246864077396351796180707053215604489161618660800244038498282655374603849048525890201190025875921608004417670495671848725476205813217794370065434419417284152217636171066512844914021325292753005107592354054927088353116664640419494180579354709504474908860596711741703831902015724424797556640165618460534038980502276191749959052441636942574720013339158148816834797313209498252507606777812817353326262131971784052493686429741497360563244593445706973198432710320462369015500262688266091916882896707060639618937922441450346219792888310477330829633592095189533783548986207775461088191748908165942488674753791415844893771684856662905239221526349104430652580098249191449699371588306408880699358854599546634158691358162398483724949318243185795176407436678151643381997761621072584390414776314175698883432756201296327540078501499394014511412311372945213737666618419550340737683797827999173573113147195532214033696976753561874180988629193981457815074451239670616080888851000425712040266334036300430961024642427019184312628050404237074111726722382358630014484118833625721809004615929065857103412132280568441824301005397587195284105410405853797880908104895012541187804536956547229415670552051282274739781437024450231922566178287835768704409258908161359336924795640277027472948205865699756130587196968530641766364501056991085007020951955328019102132898819710409947404596441508602216012669746840918446380963653612141352810248612642555845905590013199931701450723467048451043002236361453171603732355267167862548118505442758478947195565727798686682177559956964460261307421316747918567207969044505580186691534163849857993774797207056450187637178748128201574869058592842255444959148678798081568265468671541283962684269256086825483572916644924221933091418518520197279236008522415956563133735800099009054969281214852011442705817573486696232185887124513142972740528408246487771987993041387029664989732907426444665605490660939109717734345069485662346878103832259956432774882189660222419848971229573202946988029241235520600839401047935620180045595867286104141197995807911485601616125374070589282975993597443040923641781261655700978133579304650314252459537582072580353254074882721898287157871428899993141790341924386305537179796181025698126437802146441425082942805109655430329134135373099946595000399670706553486588774123897646161709358116342234866755678134210269617696756111488943596766355791100239515854565809297447428302876644038444918685764029491799430228819474785924486853478526701266753608926199686002000469631607419039301891114373518446225393801344551334780699831573007418326754092036033658225977919047845969994995567072542197987190755979627853365731559939807099163299450554425579315468633897422497078768078490707505622299976589775000253191484987354378118745384915114543608557660608301120543881708529056614795241531152091337821602429024539962008767365416708010561691621152476302295442491169329304284525641845908206735040144332751169558275884008005660296076453675229833895805122069752409632756972780015231913321786184024612889589050127186005775456862467459281461395259939418646633367090147546706782499733890569395464525553599363157029884045513010037642290878366954817089627983414682653250921188151693540445412438969706338975032508235464369402323458169716182161343833255558497113474724667661363411180495462930031840594828780407033653512577777383518458471051047045762702824269126462848310544380957938463598093411717614153134840867084364086667170805774703244435360000395097912466287317621260920347513801485499254054202002156616627062502417910404805430583994492634102466462665793026877997025868942707925970242688692529413704193767845484696743737934525370803990326301829056513471149803631742557243396401491570300266999757208935977358549887249817450859982671458989555367381479477334420318430854188931933604725517364712492150372065763874577146259459053214137300187992874422249397085204784696924687602026846964959485882367049806484028186708739195870403679856963406070156232020129871493457771051996988500261668618144010111551988851351152725931485295033443315760874209534364866667845260339230185648899018247752397548743443614851732455943201675885246923634992177763785702074053148834578182715974991794172034186332616755894889397226829740117732929281728799735586602231152720589864721989343988380650475881493447469792789820785205032961339044725503007809836263727897905421079093336803327056449936122476653810869072330162338084458204083977762494560844831723177462254787796614993082808007862638991575349791698271738712386098043041934402192223693919812272348680911866767738738317644036440441953560938575315254768043243435351776680370803668612199832647498615980761691813352892166321402670531286698700170945481063265536652060976082649148572536140598986191392982122650156026841401689605318507829399604326883574986996193383253840419397149101860338798541667876638155270724722344630587809359192164131207911818844336354485821653043478585384834148511075794515882299412809539370734879792412713388015687206436759023228828561650593221369546394006461112799700791716382407487781019323393095157114328601680582940666574913422205459786510565737136924689008909397450715341009114369073266975001483533042370071400589368569519429601024288003576406688574732364704290109173171752926274588559334273638821684931825513329170444911449557332415707838230022842620014204497118694838936800542623377018426459279140431511472473393865808186543604721685168385306924324391625437434753752618887129141146097467113231194752150274086892262541549636770981063640449732085991504877096894403064197786228082580415960166928517193281897103547221577482897904531033654531979080431373371397449662610067854888113999440753555624279371950072976301473701092011834362893714132311080613684635628381515570334970502116484131088490874856368771610367187249391409888380269117384584555243802630680773470104503101428230214131484561995552093699060943842549461417445744824419031762055888078670077923280714388469194839708331250725113800519615898374176762694432835393251260127843745576276430815886910885308401262728687250096311383717618259107561840555497709933876270569631382931873937093985849949551215417921720800489520799179453461589278842761998923929094674857763764030221489629860443535821076358168986193496047405141203180037142266980514760898504530848593027716733568232262561691218805758150644421189450401966982959413832113057141711430121082526623577885002237925378037218945851310513419373346921156949814392618010371387041360574018556602437874989978210339229348579150443372113329558060901844636839907137587374522749627695296854153453908356655030386014711293117050637358120808171008844216829204245683524263771703536523560309035861614176755913792601484185442836099009421334714198108421018474566614725496247536494875058591392887039474511101669526841904052206053658134939441886917672433230686838872545926485149678493861942145412213116752468837310513788789054976540211977880049406250003122072060507972251465503070524801715656452791305401083905119798877672319263800485132709383226475103044532884508140122742249641523262909267183736656763396855586661523525070490447276467502725237715779656326092530512018013048699657678829445256737993136028751539772094980192416674660310572228301863017018407045181032871710144911912372814424469489557632478586588143480236177381535819709225325195373483662255503896686973763120148826192130355344965835220242373629146308726288233655994842934993076961073553550189761350740013606239714614663078761750323511908141250518491633707558278377818428088068182892972576675777367478995207784583535956695339506471055680140017050545752075746334019442780123879015542462543925274432411176044132353994899425811670086592878350636274131851935194966454567810688759477170822741565874279426211474508189847696865807969973210761260428330481239918836589462356359305322347642282824731409526922905549720591300254019937501752968581125895049210932690987881107380929458787051126958855473549493375678895620255295825829109154757525715971363656641407937532558422358831197289710790952948200847181759868840929225028750477640579744721968884552177954584341825903836867977260494373671863904472169151013339760965702815760803786015859670249494446067646765915209216686511521451102244370795305309130880638172306205478849172778690464838888175588445026335661689614335252397831544263376981753963956806376072175460661625597947517663937335947003091327540548239848800420124293614479876950300750057060356616459268348671657176457502949785880479228228569968609232371036157333430596724271242776253723404709799230128097771540530539357989642738023148356584688663264387121805781601608330902357500633697892098274560529209003317760787207233463616912986047733303933372659721924840991261928738618100967142908401156640327132259211490947691565923288188862236230261071624917145288111769625725653452898041870177587489412014027405778889271554685352198583083964537094135332104694344722242726411497542849994508142128102719113324448642380312425329313623048792262824376545792959592208454228449564668036087746611803174101066187174568478834234568958672085471879339069763755906123515614452088834569707674428523541114066104957909687326054900017862581008948878929265045185809584955878656435877150841750828312625288298269461578915578515133256703038731655036469282137991122428940062871889309731300145736785066519840053212156919357001000651134566252383573614203509592910779534219652685062178851207827573996775623022552019026218952571294336877005735446553846216766093946760094001912265818495722021478571085625571948354426211454794095036660501615712832349381733770382605906085464804645969165998506753574826837828920606765200335646101041855200355589237678889963078388744419046180477647658245252800663250401307083955729842738364159192502218062916167995901877968733523410834755922984913100229513483124998152168559076368780990886190346427293238741272916160651941891812550205805416089946227177068087911088278262612914020896513354247340141473975596559029942714071466370013459607298405810629270962672722643366368599162499577065041154738663378743037417104495397480153314045648583585292828978512083719332000102912030032004029934042088164796583516793538105807906107051902545232451085397260409229237865241080798944258589319206772782533704156506621496465717904055461975568063147560804448745549930420531568276106899690785740708613346364183483077359598575107407368188876820179982431710123986203011797915028757840033858176356330539745955887424878799837201033330407258189463125449228045067050082222249281315573687788578711312971853184969508541768534576643693994986159644508509828105494918527861780937107331874930430765185614754037028085326818730586654211871732288380079817803245736496323103225895608115140070386343638477060872500822261583829325113043223131364064252889723884457714536744682070717645526036047424012870387616315302201264547206377324114270246662357792410443100934778599729612877333386772394325764263766206040721945057648147565415518727503975471735510401895445766685655845872677758564448843763428929205520152700391153584608715733467262559896008839209527440849675295798851341949577810521131583718734286908838460460371413077494250668159787366270907173769125621721959264621455656449936152153740327922766199178035478085144495689622620102424299252193976852228845414413043730651881920102605770305659861653636579191379193216832486414618530326047393209326248977496946045729276351276161800586096212277952057675250896519198747574949643493877069557055198037445668529906108737819263579373679323398716503988422922906114848215052476331112040528099296203301901335793057254046301913013713706758408117310975238734730912952947019452967514045300375589751882907003437519340050929337482463587167419242207053355449395401379810681763974260096180981091820613605261928565060332273876026586190522962905622268630926376160819646261081627603242130688983019308719412469358525686830442480286809878121137867506589530777962570188290658510632415433411780599187236679355420686571416986431716834548720782974059630471243633865864018040717005794212947007853700990542985912048594392456257249753681129680787948685803696623437030024839286389193409515507896408956124387666462725384685708136212176448383219229315300400528673646603299573560986106765350876114876045320234748149367151004876649810826586618687087946871480140468273215516454995019325833692853582104797223277885477735863534132889988587897362245492460254284691850959734784526726264382921743930246662633685650340516606579235064981962422346776471629052326794938878044658511491377339098526151964570251777351615770006448226978668793865011106446488945114421998048173326978524957912343074268442206518444986073345443324961455631728978814060753793499011091355084540068720590759031282552216642713114380315659036638383829621292458773432394173408208086729440542680723063136122761256041676659670302868737771518487537910533238494513801548646145011827059161413470025195011852771241953782685443904364659658838609788643298085026706654372016799402014293952787546758289056549704555392856014146106538212785755762196566773728300268890543941676692526200623833894187624886472440403854032791617144360372576007549045542922560356068567359021075484331582764849405284400937239411945268539417137764433690832257401067306785616017141616462922187516541942327961129234996098750605503694204347121736772352906375812854588686135795486848642490500532868559069014397923672596988192959710994576413680782653450322181601463708922282234666964978842662181695441891658748000138570214485963297946679021247263041193151885428037986318779860525247095206769573647823381071945567312451711994968787330343140372579010344470595833734341271275097567571015361272265550062672614254171763737007665071387529243920061872423572504876870470732695426646173775741226237265405599552104859575604144612904509111219080591054414270205970766703814642606357193855637698208661987255923720693048971126832194887149172182261289948598362231527526379889165736036466132688340206368516090865453911563321507461294228466522357920435620852515708390238638302188611724564609481096908874594269890268129993363964025230905975435539367502349953197439998990775166602864190397455270733973499105533541430233197618122795090781293851115273477111562319220940010271962384807373456213309057972803144052685723905184262141926663851973157690985256343350234600916693562556840643088471441287433561228598779041075010064722631259359627351147024082790638277569683192702695443622616314989973717713433021175826759431392170674656860405343649775016344074804841167936611717094512252301692975911677187362803406889185103864371443246690019367329801234746834285943959093476370626373663612228962579869756894378870557990592124748760790782114143425880563779131690943559708807616322371192000649186952898244352179751717237627283961650941618869204074408562966328706281984871600620568615728943841323206726484680611972740640354515856689666864580343903571783401842550220208658411440729138126816468515346877781035109366017570531487142137305742810371843789987329952548622432948396631070517671824745207223821639181005829668260685440034911033355254726717902178737105517147901557863184109673302401608381148198913188927950250495610023230673871816737076818233232516432510815552131094914441864930343012702306629192951705927051357050148917181565831305664578668282298896987693612502252216606438566379495519695837112634420314078824514819046127743364812980513297002190280944464376299305945879971309070592947175888963515627187258787220429299559051057082841034419658285590908630256416470920307226654235145689255193843181416253999673335205970744752029387626240142499002651056724846913090319342185867916993746533714006674429630126978742014420117306328953366956491018546449579206828137553258263438583422193602906716835549531323388614726793204326306845825215685328171523540660689695008655572593471284823182594846997543860032233291700168112559271217911040176101022602439155986167820382958959764499392854098163912338690800137722195840025900910537486165136377752319233384940498021742729332601650030355441675262177235039061675890909457228066147528127568325827564111008915472437458540385522881459951890859902509879657385440196442752543330579206727826069079525922206942476602782532910059751904321108124260305714902836338658870481838049528492353957582617621105681093396490100028014347913818926358373466519441417228922161442918757467416001720162010267787869069720421638530317867215257331938683425374717915509820965190920208420248984609494113004327880057260010117013889043878813636732111762645015293329166579078918614602119213880861587651279689790952206550193796502439796607873837671707451806617397817515742166082329036617957810108981535740524094959105160101491946732400323681047862041096815319145115594213147999830018684846780725736984855567615303725295176208071769882584264918817960037258310068531930478878236625964192573954660593028416791787278237107794205911467333375090478100193087978082275828467844667757454820191769213375878942637900159440050689021423892989762268716167227516300575722449103223599879504977190778002469702376186495351298018327353142667030388896925269863295304771386472480547564158516285316050025905938009863190434808759237353678821879954328452958070737087696956528934745748102806304404189016464280337402911792031598778316249579251147553569503357078861166972400092717689515686401890375135518540814415725136669352589413435905094835713947475698767182967920513202880750306525530242005481606305793780343930473822705530122465205387531206915648423777480716556086668469198222875231764796179311439179374806772992567194796749681530439806416389773936310800054275737565352584720300442999950292939653753933155902625306210581059575767620020602696985213479060317567590025234369299691672449656635695506813121663034457365563318046696832635370749606469301808119106982066507106896373320832849739992878086674018507824487866659257783458105017371484679558902588911623032620393164185177826742508194887534894232198226998686407076539153525985886570168892702931065234292854528013928993775019836610413817877060675440731146311320124016462816005387885476508932669699856599215806906230903928402128670906749082877857124626104469811181753240705792412458183082199208136777913802814740494327015127375330949378371462048403280335468347790584749908981588286843898052423220496667774253031347860970798159578683904041095040479940723497624214560752290206290825962713952383189817101534510461405202636072540140998786625120031905731742417716056623390981112932571570184089112890080268394017221390285860404544335344842249307317873624419586430420488940627583417743015222900946151604476493936149698451984634144283337866164880330401952899545986021062457408633536938239697927959136293123791436154442285203326678088793144124044293587450626744351450061858000329957797049480411291690824801644552966696087621370798471974430513562374845591199743850191134995951166205484898872881964378121346681100620014390165381843892479360656974798308554100915733406116245120808024718444537289951880220393289911606055874389827222760162150853595645664205759832664923115230014761742354703734237800638627836239659681636920570955682223703032746720123728261734257548307333013635403314014006788023218515089031791358391141017458492358056691130097055681775776267857245913300681791110964329365167412724425560603564566598692634435578997408088342348459330214302050896941587841156990956541277180906813627018586604040850980078872935614831231022629738995699430782805427187301028515336723191600301897459263308930130113269128695519755005632431982828271906579194295256126990800816517759568445061971193941487784266644294119593194916995411347465764187032318538399321388871646540717325937563938401381112876684770710374260980366717374616242697568861295960541127843803044450954417918384473952958616476898052106904115372731059987348621328508437834291454147499597534143925084002597881279395735499771635674173049848553112241242993334935581789334774681541258419479321376148481493796669805418735098771337665441038243839176973648090147527367102273268663606032685604813432210020039298774987972018242809244211828153693948269738060067778593317905508327361793671784430804090660538453385586559571657937359280721019187055819687152193838551743055798138492300297171418398589168461852656390179575544704582637076106892621215000203360073530459056347635727003259532071804915134130120616355985058411939023304213834303858328307160956394718688863826014970131736892953855785666171317334159986315596675080747631633656553158902049676603704358972252941130102086729252261490178579008052969939866307246961453407727493845021088274954228390162844902258980546617195081231452807138971964819668590233459890821601489081420841267493780725182639693064347417988867086485861695979605240067200278278682379475197880948422978290470528307951984393481517344802290766999109999597785146222564068809641486434822764362765604638480557823221215490107970431542955679011960241230478805761406363182237683044837791780163357382824632708620328197161905800412280800152891642953433557715818079889662264161674207711525629628264101820064229869610662115045917555285625743048789916012066972558671743242321969266901460221385949933241707465757584570960786305719894939521911655283607130263474273155987730587507556097891243197648551433210103978927810493825304382368896814549088086496791374238492230366893735446819745084265692856704805317764324132885422541205987398815636769232522810599600511494627357460344938533055480512168431788041010842282862658293570372630908933594911188814606497791444373913689466252447717181862065881001410087371048246556824757693554412736310201754076749509057148841350909930829562072590820981546162489872349191752781390648159511046607294858293513419275007991209264395063087592943250278575566382321188432244628152059983275979101142145228774960619808962536537101727492606524294897160516314092002106136150082210991812602234703623763276025647143647320967274308746858500682678127998727612255124928016616171840025406949937090796696251842222767536206813958304423301878389319999950961729313540540574114320887569586544979947085765003071998495710546752507698613718244707235634563187310444507067542050921593862407090086869029206454793149708053449806504031643894915755809018897857484077204388681569869598013241866162788397710391639947538635133808436943302832966676912544143552118814925016864927790722521163953504623612160246492181412229109648133444587907068051543027029353724075786509926237217442041614574177751682551774246919913207309696178763883057328055905670060963699226628342537911376495835581208027552358257282579544970211478751399016765095729294200686313390771954121116267678998031488396827210437000760910494611022647377726413826696536659161840500499190854320454631525890959573268494142625713863958608632329247177561202832796187261890076263824944633841866015275868017918627530931022984568612005637535726426599310615196616797661333956508422525302245393251094024854619106891661109826938093281894368396993767432920437583293275445787121862892765053834597385187896573276119962518540166632624200628429154853558697296828021568285674548174274717229642079716799228552463063164386059647138718609981761422735668832451172862590913267338192448382093821464881646838528912871841145644144400191249203585894229874252385000390659140063492458916892856871125013054040053682149048923535729684528068505807349558704962129329768661153339700140651788431672383686101050978431011201051224305212873138426375406306992097858565380039737198297066443126431485539680532211122628905747146770334270290444899439471712062585621237127210007753299780150415986626862011912932677960945374679675378055281168343651781903688198325720427395958419644010886032062011566251659415537043200496458593242926126717153445410304234065060832918576017679332378610321229112331057592177027130125932035953898562212490849712719308306232722948916803668122175643521311396691937596897179359092762836758246190963772232836005449395444520773678937299295258723164403414059397503143883652231188165850705599029941453348593379777245546622386911677679394535320946217979784708405623579404044923530615495139147742664089582043572651904997797230077840222463220826733885740090950615362722938035019591231159888673609488327226798996495545031952487221087406452709582794070823517686692423758179935386650234942525354901377376551743793309572420973615094740131744358222081051595899373316664433698530863596706708419242267257187596634045886123381384811547674138775161487381058135440052392175411491953172676398127640330002151755642868305250127483067423475802149650946417343107972320473414372896818670737852869411263557991745666131443850100804861112350117678016073574991650850546237316228831968784868082941389070516849211083242305067865719911546929893565537626789735136499538958337990419714058404200220181647397321432287910143443446582329167437370316086475012737185431108772025402276433589722358827105275233512984426609316272974946547102954957265315313160341338305533387901406512451482546550290883480523691901339553712422481398150429280492014269513853763517591433615005571151958828322896926329632832922759377812879085003906660471070470528316345978052673945971490741975725340949167323213152545677265034162013368253232499100288233388602711244134790383878753243099524278632862177471563611232235628641037654132931404637934769943385665399230380922020871374821559714108094594495253909449190059434148095751870976561937117673069732429468603325668479585764837364296308093879793615420088287194134447541432641022500454637788581078703727059011006975049268245804429918647842114435989055023095231004806005658630573245070266164769643006847603970034349324881414743721765641213112922209470897302977789357890227698046067837769715992837944420229482396169368070665057399713426059270735231998900881059153430191584627328969962325490142902254388456528617023259978911998030160851952318990980125124736873331794399870151964704436806048619439247568731037015783836472963539681144237201635532086708023684209857189072413567674894253850174703053865031945695701652522293743338176571818174810968908512800217345069655031982300642254907512378811577361215208276704502971113974022138445136705993120643609980814827115471380842032022123612973625228948705373520196442852014411559356087464648452695787603050762773650172418827417578329109042773612443871591288464997777235171788630138671974953063276592841711936737656406166370513898074622935813750345424193358668982599932258113072307562084306403209229072600247927177915573743048261031071503372545641965857275078163363758650794816215228952166134643853591565144641058271508653139094645593983224864430030130395255209315972079034373407165646960578435135824163971759111384283981695474014189472340460943878827426269673267263613464098341216991779489940664848308132724615099866919099425126505745913606419742318970635660938507953976663118506361043045967356302467225937433472862191896245170726413097752741955320628255780837529025063463933965740828028496016976195518750932793769593757406418162528711148392377100237277291560438885579954335024195510631202685874577444400834325689123413917080733595953298127806136739917437859038230437932017788892510341524050319266979117807766242552769294545577236285014412129557397715020453377503601478807805446643598618394633116279996978693903662145030431685490955552058497648574359913621434436328624131416713390016912340928224873740198377928710340778093292196087371352685131559728576181121592144313397347001702962288730896072022885577709721144942568963220080527108862982841581084901272825134239524284160905103590976802064324515389776454487791849583670526503762903902770885048234107565588306962520231113373451383476552969064709984931440602229731619550902193661409131097390395736525344296161789504760605856861047144700299956667640891364748723402683364162789182519240832503794816355026179429002512639212839408578640367033515269798098736287291006931703987584196390001745597868536230350344729493397616392734537575896793711713942161394783815203352432001912112314483873720029228537316578432055561629105500217256768133835715763343665338607653486193580592382716556632223137802100466879865383821650648854912527350111833524315748877240121053668715876669038376346622510060705553526916668627643347972486863664576700532214489481950814717277957294426034020586950859315615368654633140869511063082592358067499031406363813132713506618841232146726184025453172227739147391700301158840699161990229717766058196972539534065864799879499950006326439508361799944574367760932815183242124851556805169497401324312631765311392738694070208551862334168713413405408809079541878003572039348309247170491073998295292559912607354757183833814268010667223366374934423163876328397771173561816331013761653563182491477932291443816637194266603345882515408141593237419717971237353779547558789542041518477734990382598302929568416868805371831672371244250622331732928019039559593278276585975168014838831356202051116626768736823684682776105981492950665384082669170578368430455289478635719031640643824114785960652770393738591874986096725872966362530812223502359453976252220243589844786449683419808228934281377539204353171781575038623624037234485929170162878800478503831328007161712005934225872232310730263208023989124938108208403947519839095927922640309030928155292721887523555170240908862142835236706856893920886328691427359275301609532114266003605288730284978072874736658611283106407902424393126191491844025060624940698065376425334903303326460549435995159321340620148998513998197928926715881345538389306614768794974956363832874031411873443073405373211588947939660985778992796821014182380266016929581764636709908912263432521894477133284643766708781251099390262028706252948408005830856761175727003774414842861034891014665611262122387831453567353994009047989447297936027290232814489055336131636819393132749009246140967532478664229391758710270359186469401098953082556562330259054536298642433604515479761009955785409977211204938074669666925826080290869979493827878733251065719560872037290764042485813018765156762573109158049893218005074569758961497325437183565529583924957155514971183840514938740659403886646418300738493634285442947715448856060211604859969755582894886594961696626007650732739611645472419433516810345852613199229104343742032774083530789001533331986443248786511179294304519676968893078899926417290097835071318593336354810383081231425524877813158534179231214571766313164505608839069108983668218752673382169424137751775774125261721751017696600031161641397528741502694078780842278784760632470891252640366487116917469081748535863068062875147263364635269739944349115868949594393808284935147735990397919268639164952997793882076564918840920928064959447657017528272200031613930444757833955955504196722470499299178393038514451094742588087062109396342630053687074898709406738706328338563154765388161680771203467339571776741444687372739015366955380244622124073445199884190842840198667936005849538948541334715773024939396480345286395589872688013680956319872606696715133874068437315325025162226182128383208453536754240211111004977711727526235658819890508463712083832379311325699020698255662085849724231943371093494937616611392149400845641702211437857909445733417056355863438647482521473538845600324946529093564031326950809824650227692340542975513836395593059577822622870339119055346342498023619379168506872193303595038418196631117273244499121878971445412216079862718037208339927896927504815600458495899154122502517038301523851651867239772918994235892309258185572507147826176313233498709030153466763785860147352096023523851660385069210047923232049790093609787424056669589462177118443369968007007880203801185575679985669423574952755281403549818151851027875835300080106772446397204687651098601287548942735260444179283757450833678315619024133400444020063214946623682378274804704141898163736665724505390306716736470977287775096594261758500426820085399601013104926809104351020657930322231809878517269135706056564634305447453238820086977806269996948798958693745440950392613309204129578175379375434754627221032412705546965157766257664900521191052410041016810453402252807192432090542963129074288732408918267304240363571982566472927188327152308229392107132572206428238132016937067911513026801785973323966360683472760508880923816867380932212222327931683300761585772220162829780311785098073241666240723452126095384921543152032765263372995491303662371610859823202211579157127674051105751568581941845469167424186522694034845802340213698479464410999223691667484267843661084551553162501116754500464479343042378346670054459477855755809392402759395934914097443012697415903636667502042744968834104800319169076791915486256791661039323106112125525290548914256111960314150590266156477323203277568968654214445424514960437565101079261282089949807098888234828161710156539741797552993477918055371270011743881775771095994347150712228663180563389899055013685616650588715780627611742158299025855502605021980996146367541383575813222078369037100044117061907618430138235834087677055954264860132312824660508338206809037938208407273932104931883492604552059568042727206868139003544325703796654887679773882949278899058535030570049504874867826389830701788690489112516665293146278687020224333731175708182425623848828188558729134372212958993435628917045399799110227227370695950169089800477357422865508373118209566070615831358651390125195717840078156655767757767144677486832324034355925286590677734048004530854072457992521209059732380363220189888292668527887457795293879502167949972074785763404243971552021170382668470174905138823335062275742166618736885730856946739105218597815061807456478698098469374817084259532281454685184407936826766697346294895352132754325635697864714614938742692532482200246523191556670957858888981386851290820515506417311729274919936347446467056813402669095181338254259205559758634402769118841415750939597480431268636048080325947531498786484044526269517960647110868644872344443508763477569439295127326004848268235174109579009536703716676307735374206421346388456257585182403523895095317919504828995131184834638292252776954892207615315833767958115830406509438231222036558908907222072843771533313008569036814543459341117232375483079644554218748530998710432671573895932246742033900921178326177077446322450802759409426751621579793664608836566863253166958734289365750899967011254064866312630809796135105269225292677851856123148394837795005036618771554312264146328073028321706082632157112071256303934974337723119895862270246250536044663010317889766677584428066838586300960861593395360622690914262543558701050179222489460986474181369241281279575056246679908852131982281303182760943516622539340074638890941509830018952100015475878532856875008522956555330954725400506375248778247432301234457182066700996551262376885559122425531079763346728356678043158052214357211540331356575762029947537508595525379330086007097210987522011933453787267126549379799697858007684698486085239897988842054648907594928551632256129210797023671392829663168777556844480916089490061405044746560197568799012927360567048359413290793427550227706541026623384193050041153910137384192097421661620419121383001453593944256642621833270267070170205610302479828665179542892143303783646356644658030576549719598671254525835891538902395511907525618613982829463118444855784140943729660933282185692141503276866646907446623182633661912030257947337811180149506242356395754221855418808943510252531641965811181287164946241607357758401659661075368566318646744427522814902326304358729731711522986801004848929433178651656146660339325733186941095298731874888194039824309047776178007428762294485287039349573100200159038433983721071076829585428974956839993764638849515712345117432421946431499579414012507326964843182000270388200944425056722578392644497665008883723358019874389893529241457151665059421892645643225469802443659958852512513839942442305243838690782101619052837976087014031627239950081273857181367118487037868666371421650777780700904918441424643481126427779196513961952891381994912887528191146841655430295382819753970188577504289984751473542497047724232385186868685933138865461849907088078594368105968455685097797329848522766875792683926881133381231933268457581940218531701506411238734951369067315204661475893871225205973636058379909416052084551409107203108154010155268711689020194748371040716071951158998628162462639814439414085692045305004904791513238016227571355017286342991454232869666771404559620559395613369694901318713100213098467319002353414761886957140147214201046514995706605146198726935216432039329246530059473963241869573911887486377658502794505344555378281554028323256623122149625353284861300712276626835810047920448395060119848134836187099442998942069562841489824901059554520386512692582856198378862030658633931987729955418113420163868734644466730948079416309430115709477269599287561372041633228140177426321377006732836743273753465830574357495866319067732867656916567346708113930973848809540775586388730958003451006297702070804293808673428148133136738431867601091515585221152537699235652875931803436728785807200093298253272688821831055002153270217192870489897606040877354111418137816522345097535713753367283889816883156471347702257954380847730248199110044946536533967043556834624175561798038800090092149004343366626296607282878659077174880745641071638651672711917484893667283979422032404601804298873090192454383085872992621563169734684078333355945660330301153419760537928659780065777596372026583207986694301738432399959295668630190480824360399033852984001675032288611076172894597683852933827683209217844274953820148036473712067884172604347672869404788438654365670062205543535029252627741902062140651372551461446610049125448992515013749444561739295711977174126147523088548215067954191613684443149292044188853176882654985370490647189217950952434068795071153612779533337165147433850535535861668088047188959632859114577212678636859100429772065476551910080163384517765665410058780627519619472056165499936371363600293698069448593910225433328376178484087736693050535668691697048719901075401521940385332864608041357358084231270244248551663627182579524507110289710116232631836379049029757645459843257606960449137923998477364069367492141900548494040561304747251407573662049661623093796000965756312146789695291256979270271742486247825452702024613078050769082603712556918338142288132882944566326911006313986933569429220179158619653877836979142703121332682045608697156171370697545267245215394255595096767331000117575362911060760099078625977915473145623379561548617196107866638959246954567754591403000011470474984492934646785753846605990348861435655698500165722890134565912732037684003163375102386987559076540189331327122718097690147764860485964730929072451941641018263595596316061614778187682007652383715260262334658287808002682932187652319472084833559459911215503661039918750072904924953457643471554105131039721036724578556003926853217878655361467484970967604866747106869273839968830453359281694177166963656604001415113142954618263442699498054234916601898106986433935333969442670745732166259074996831463892218084770826149530068409544092293199423795014337410538619954515589556573380570038882259180390955956763729831904181933291349533472993620851144156045133633981491007386647361825751456667259825222002221967986330725314499293781202270560095993443414543422486094404327569213261489336117820982552071018524532272737417289811468614342490946252748433090784727658177420825633835437740093086564443613522316175307749617601993897574828209607321709646662441670600483191501444416896031552346349205131049990129162679399945020144620801026646760350504485624985973321457777319691470327909808006744914279907655677306065672064294890785841292132874668148893746373526843876763844169520904235350094628622541888599353703725461045950431780907475368637018638104697957996186394194697974599864225927711714972656814266222031085838357371513233474726042159975040337353362834024369002987613691591186885491892028775273682717262076796558487929494798978371900626992989171232623239719856191886069866353171898261634450031878700459122822124062606335930990826482598201812708908037684587838492581997442609822583449149244936418549985110980499412313967432132328173864612615363638851705964316234891339831171788517132150915952652713426178887311420443803294027858248630875805666394658388317717443495297332931075236992374157376524854334272814450211586542843895295859119261243523028692659195120991608921233666069915415083626334365271312871363323383352803984101868894081622816930956543479262369526984289629913562640812898222797610637201190797352389965161684084564631486912336536259064080288409598224267143933702666265799726371264339607949762031082863152702797421465844258413414389478883819752102383358027897638263119591428305738292825677294087930325390157168117729844302052626497161273566456819768936055232676397103196182263710912963879024565342783002307180116142476228483093982552623168010910728889606076812979832605089693814594627977825504565456197916265739059604775971075517245311498808185400077655477428408444272095528970649528757385389447756580645680639078394627243396994511235420249790277345900295457937480918884224240348140108933991855414015383502655305466587063005068168827527029489050100370105585386042917382292452839931378942636533273318159228164508171940183446141315523365334922264909062104607142333719718600555192331961380505663016209897851707556775301447190760107753047923791182426928748392660792799264923900398492531705846331300903422623536399075653226319657266866441752008103762483539839833738362526419789760764782395126502595169976156602282438189716559372620218625732630579213869667294393620875588086717236516452875997437640970779679214611373723547090406513291836286802944387462560132384218713302416601284671273040572755648975273282196629827829685088104054353433935883597325481910676878695339276939984700780191127322699873220008141953992139799771463609831094908799367374993581531466205969095781674242175884061335129822435388246654946973658619999406104546399379461559401206008881510846426016781888983310634833754973394932121133421742804818672611553060652029479418844954087075675316905900075173087227938795351337163486836608528705898374020416408848588678621330628227288549587057060112352733830026631716963636713681186475416618976949165320434799275220927163682764867905204071122453294910349093125201539312395139515404756212510831578320361056334671247610963287102838888223224431844247919034589616683642526139318367774768632953252434285901299380605799859787067413304474860393993203496657021484786245470343520036570188734978356353024598579872754506426078718596179335104440704593960068136471473400513131405688347310268483996554016118756802340270234748239499791148490436769056172612235443390767545288455599834466991076692944134302553062317390141995769488941174732900368994884096371919239038090090901927948350522653590730422174017587650776970256926413593467470164609357174406718930384218650888922746787523674046205360996663063336082270649110010573740624879092371747223856900769330841145948530292989835731767489613244889187336812088057498892353395489816996691012996829479317531246906755107349983439297016609749018177574065455523067157780425357219340617899966904291173226431530916087854112709989837315875995093624087935346836902993610129372218715260016284463466875375180753240639721074030533976624365097947188900707497791698015136605696972988463187660289934516043904273999801949039147317067885483243555756062451956241222225330029380283711744173009566065371045916738194039334902182537080658196089754931140320940587465354942559786562845188674168767924113203750055105112239722472199058202734825244454908643340531844972416583829401622607732331062514073424502926284499947494823822294690207643914674370695697253622399657778117925785056342449182225452283826791600373841289547902244386505755063336370185276192942124171435379507628455811052769923067251728299094667430631963243272431568043781809927230787393707667867776011190130515990128740473230212473633113632936212321552963792312623422252384240651661369010196771013470663010236870478394675239961166619299449816880746433881552153713606882545398596831541305156118033310558854154361776323644026486894157758776324317595981863233476608803096498425414393247332177424892471813511900485036094113623633356199555943013965700599661752258487982439254532280495480127583883853707466943844300841925083111333001585167789254978566490856952591912344341012606468396079430298776782185896920492044739438021286359968524687805343620973199028058078697488632711414434083784600248439063513657608591666461731067516318281936906498392025706103476088508849429046839754352497522375679483317799428077077023936534501470075449290680274335659135764326299365538207253660668722158535669910519364967461410696693390799347045853539259421900669758370010859841488915391144935426466329335584663890589110010897422172489480967646485034726636760283758233921182433804052289390907173261674451351686490686500699916307561955177600638891242741207075992233135853409924993257179893742157719770549463488484429652255512198526865265756108794481050206219406001678682341138913074546435959895537009191649631593538645089101953109317580625150760741611882171404396576665439940740670179303819994064120450255495706952620972727265598173779944465142429659477940386719587064862424923768967312659426356808139320376187716998011839721402017034495523797092117870788242263947221492327924075175001773719510986920861784054251214450565683404185285561019405355898427161382888013832402094225759560711625729972815838511638047814165654147783819283872684359118698063639507305266926543855107721957378011117428588201711853598316203221930555985384411282947641123881287760039353632902584912977329241806373759919517485461329369745857602226899727881224026459495979195810377397617714591598391514739449600228668331511668700486479822264848615700769628197555429887251562630762689758832256207166275682924112549626484953273276565644803646573764889649829870541228967567438322089751002231328544297553893198208568308066941471764793267556896680477599084182851026559432770263721985385623993334160910113293352922455131384159366434007694334149410405272729980314796506465579518463876652051242566762906023076018473486630753761677722916059346566841481527931200302024208460220652691991061695987338932071332612785550238592055398134994734206675297981844202922430831165837774167661212297628983298117155467534988621524965898317161047705501850278043361608588208450645868956734041308508539081227123252564776223057385100361599640727546556760190317179435519361143123578905528671528056737369647856589048791494596203185023743361486018493840727151229644335237400162742649736578195475209681202160794445239553449096507497777899446566314261156400632055339401654522097714156449220485708190784037091672352556396271092426379268782695456016979104156201839813831937174905323034690212973997918949722160986913038328904705408675819256823068286768165881712113296262612943076337063266099340500768832423236618451708978410451457661199328746765896228141447511705320861718592787391550250936101490789835686536890065340030559716682573867528897642295716920951591928031294676462937174896316425755726563778675801349421987955899540303423433860968689752645247764201589425730802017280318186843431884885641446817421281920582662871703051789782922622180476160669080590433669686855051960783627939401079248479799918916744589736361944592301019011877058833726005923965018012248451164067448087598222969861172118834314257181484081997419471352102503797849423258689830113889360777980722268328091662647464861146104517406235284871010463739939463579804913943951196513805903668845969443299084071786015966681687656451237425492775647699240188465092205774063807159825546658216391228635232171040887715499206715180694889140278303341314552995696233506335683284184103667168211047228385379052365416530926796852188714777599792161945581239904004306239102675734811749549014672034762888345499808141993717155966707714246582181719463058589652309080676223499975077478781602605830341889737249840612473982171233882555586632814824544063585777144761823419486207609825583834612314052529091388791042253547598880695395936066669613690128205740219687250832365371450285659643383933426585568008454712264335412983426519898034269275622641622501174065398594383533666558333873551932770872829784053520131827910027111905389895089475176580793243141331585868819642917771577101957812963926484702604216510559093602124810852753105840186276726635026127391761912650822537814212847266021706539369798215089480290053874884919341215932066637625883298371141400795891415594773621484685166770034518372884329569172284174151060766330903928053313969899777189678822095978796013135357981152919847440034815542416377717950972487873995418303704757272806282035099665438203448781205938377238691168213660787422724478988955149832287314293587736076870581643440855880654363843645916590460495390588578678373461239201386344181817551393508298041697861325031190303712346634507661463967598663270530591059603410977864446364750271042769767809928688464976967220606115223047425557796667743192500511840135316132318876632604479850321732136342747236998040809886653782189038986653588155697369839468650507484764806612582450327244425302048186607192103804863757713011191701378025423829217314431298055275635634073702072958225672722519085782545297969359375806204057731866582497473579688317671742872404312192988746511945781136629584746759287494235337066359870433105470298967557617440372497459837381847390075490463954058134794625941147397154837500941920676836248711191546677215641075360580932985922162276123581633971488277938683668377332807076863721827338606386379243854574457634431420934784200293724750505425077223198601786742922462770377335240047143682035022228893960314550071906148960282566051819372213514676929522453823996433813863786269116839904094457418080173470724968818904353983287873548019672388810658349693676377513544670775005441919501275048968754423086037945605995057518268805992365947149760296183533380184240765618826884230419055524304937752142443717134397356369524058387184415435407982331685794952572755367672712527422915596558233739915621941533730989969219390443328215052116034944949502386274950407656725884004484180685079491360263696451280673222833567814941563736145589481520603164216271033995484998865179276034131936362816789378042289471920749418212549346449229724927922425696944180969190940998635102324932458200288942267810312849735516903727019343764558415929245902023730437759358669993163704100242762553738942337317867249399530941141418818043290210643293744117440360387817127341821434837217012620633805443657400854890491058711349607707994601772871016743649628715833381150891196802798564264870568636880839311332602020339453658119941898536017659219835558101591426579601385581467423694135150063530910791206980504775241553341974071598487253748612598726123669802552753554859598499070207698161220874929795165796425730889989078626046460658644651501150440011348683962191963126020964011401147606221930758217187058504260397935081376576477049140718559226806331076530408376482569065144099709790673528857235696712170491670646325917595384708876098189243384183929903468449402877217192443525950564426550782514578849517544718413319559778895470240623549565566483435205679795475854466587640841445655161273701248402453871548705332283502030714454263447691780208641628330962193807307382742469626466182357903673759755972766093305158480662204647306363687884632215608754897788595599779046110778754424959799162662069840374812226129946696985882950114458509090060358566442324767639622518295694620552044948460914939295532013112102932711597792719937675904315180812331154414707591312951417843535346338130883720374749893977044668280877538433805212080479600057162828586454921945342988855914444853250702273578565722215670462797021269903242232634939828350640344253475397960294382144063884820548298801874364043574507360217520770679272036300012092621636836938915474222852348909036851008050368150761982842205322876485093240613855439875513749115151546569918162570051187250312395903265295895358754253301761841937181359223601829143361630168190958753969746133839019763143495631577732240610116753223926610400874293107849027442045200320919848942518770468705152456090289508465412406957174487117877452108313663461297973865070279240419692640059470924179066911549006183848848712997075683937678063258725079549444263838478265384786587607041055410566281229238696714304300072037246539920697755795626378467317957942250132903478264934910670630343149505060772276704116624884097987229247678495876943834898167512830613915311107239025725183253538259899968707071431481327376788160847248198148148010328141678120311879039134369572829646240991511667660816590904724168377958755971121685012442594671818462979138236833966946372172896045069163646607301038228679725264320970507506441254560641364054704370352612680810387518505201748196848320658397495226220409992247729044181872282885036413058788588099041567721443891171355941616022678035467377370064239869888538737721857792228868274890654956781227997211746601416253021732434559087568471131423926206229719856907343239782587664077567681752201948241148593562989844501195972099288622973181017201366030446205335056238638790480039285985615098999650903369856049814632175777631554689858833177458123465858341988837550123340863331505376114744588964594222029327163554438915475328154591005606676198433253747827543491775449839244779452315335921524663719725837410128142271865464516389282979292319613024078453754906140295832968249299364423604865917516370852990894454710020372785474561463511844974827130695782939246969993592692964627461298494975144051876402054436897158055327846073298784256402671422532321294621944999324979106731224839990009957437783916527195846751870326144244924115841477883102561072301654475343509090098148116187371446337611302382592694874322761433992367325312194433392203743849351366899269403721901375854809597378118838595898409529565116101644437323145381773281249426707322301462615239617933094128034953421326362206748579670626529122716900172899777005678749895760221679421785202840653959162544497302339192575374344995407923485848489488881174967402003323418717033298272553048685112583052369428788850136969231420020858363537503880203027799535248188173208629269330495131855018361786359464995331232697381953777379867429448066945957969478111198394197841500238142757167523174867067320245392509199564953972034536859662038941739998452227507780749420195710333305402462802150009322791915263672582848346314991691245163114645836013720967892134768642829038749977364638526077732740888747884819825516565175019039006310150223664151576315228935993650258865147535277949030320926069447176118994527975891480545061077874639751958851667982158285187027674526256174448578288225270876343692804857034844577612929487465570247445182442606271103234490777611032538480365713704139040270318779491279774151382220805550936500314820209109653537903617107794137832951569125130924021542307508531368528229032595763694406221174879346179287322222675246348860593083775269090274118899601841627360936099278968550989480866146623364841303000346261039773477096272930375947881175456245250678044251912137513681524427819173011248806285324993521755503826081228465635411826557431432688485583494610190801190239939404093075333186584993522703742777296176933854023797240850119779328251653318099859030092980114606022962896121766645838879592152341319371340953539858231978997083442864108475173597992253616936880429049648074093281572813194989655486529707262827042089557545735329152635821473725010826475516285762498510266377541591870162149815274765065388264219931086722485694309804247960786363107335523672117066468263242138903679223456110498764300857081105075885165535233917056245485377586639097566028365282575786316634672691611630626486072757921439101455909396017302504602823796426802743033733525032024131600629411754559415740393361678171462614411845565783182716257376627649139936313150599257622935061034967558062310892689918850704080077647050328393951032890502921694718244170020404055687064913103268587513814117536509370364373258643028525992483360763298789438213467896875571004717043548974413634640959691388059069258263122979352328571184575100729711703186568118064269378048419011420654825367010261300917663650076326957166007932310426511909918353851476329062272005688639550532731116126047417561127927956802754067498143262190625453165785992535628697322399457809870756244103124752805507000560486123509741655225114997901389261566622914682879818666545435858230664741131569299384400252789509357411364454020966242356762528787069689734702705769691588632451548187677394827722445635120691913834313437402303063554653151528240289794682116580578537745720841869031103344006633677409561027218298928140542477462178098856795005987204637550613423915648155138705999014014169218392305594692981891090968764542135724871072107311491875563332891714317470092837028841834780526737286842037016927129948926476234398128130227063402389230164041267660296839644123263560592816104676781079645487594245878145321083952368008698084271144713633819586460194155276169610622106405204513339445776971690413542411377266945924559372050484346686927582545985110380936074554622942729018025412447699333240230454820148167834286685061169481146627324710579780729479639572035629393998596124599792133312374013973978140055982530905779364726357232789039933226966581409237142119236419606983833061707811392204107022905904575155493582447737627578141129952777266901857924692780333335906507552520534282026871474778193591113505359856614605404687928319406106342700965879339030447609423549819360722824261680413402727201121949425328153297924537484357147608962026629221321437142764762614987645962208861090618760016116976648478494784935549342128832779460100848461175688658200490762096849292626104140680598779840400692049002759972897088650094687561754210086811278236065125434221819742081804710240218614297606474874719537704879152643688903839632736751645910901677286185553768428762762791777445322176441108535715058764615831305535319116189238522181100908615595040894187948167083537711145509301623133571284436065565531678571538323537336076292179449661298114336931786249786689710309214846140828769082955740845933413607996871426122728811442644511064325664232890949389757521647797869338016032898957224164114632025143981368127904669213189663977327064582497593105432962331133555844699710075796469955908052023616693437718157961579711947696831803088949819481719744341241044126160146748324103791255948962536140115449010552456006743122917336890385251330467567094755674555240656958517171756741373687828533680194744279652763256000996263740702181669126252556893891556332472455465907386467605002424011567984921449155011050539049807726793037138709648944808539427271333907341919740665717141087848722399039568724798915709929060956768354881777516124181950234038984782163842371456014952026536380408211433864569006060408348369167930039492228931555533846899156055662811434703435962969152352241645503580156987333687796135804704198010060850933237805406373138675836143227758199687391722992956852588859635183605302252208245729752215359043073058822527425698293072196152805051231727134083671175681020814180048458068601335365507593292042265644391827733093585135759425622630836672643127353574478354380304179329191502829726119876417676500926080280430145698098534758292408644691541426516942432859533760702610027748543763826831122566311265320230285877712729170034280935020088165274938561954162669752943302364318145842185711055167493622362933633043207951469633357859239756504859310998748719138568772967789207785981812247921154055516090731247145399900076557503494680325964583633059939967868532603208799416607718489113021633702576592369025673739560413079406689561804275228460341017069528021612607685712446371024400351738967743257356483088840288871017579034223600729077322044844413200615159093190179837448920339378507205304293611504467570671849806017267243807714142553293835305819261312422567549426757926990679122706775950257686795340808535627067541163976530239467816704618270517683347150464087310641614877356027077220214783595462152543707247695543822215986561389974107254628649488689930028028900755592520967232115891955048368126395730880133711771869539186862713194590381924004419338082313831287624106980271261994372591110330522561134947401835550751110689470001146100860977068518441156800277181639662334689146611729754437240151279470237966123629146771898072781853746458626119068421550036662316177004362294946718113719171679130347423665863223553070943996161844295061895602312469296624371930287695483030936546744430505536600447991605439096606808857242195784844670555779718237913217991543093677066089148176096552094219600242757807652301103907169776992515046230821043362466396635056748638928666162760749183650150198785683121810505441250307598178028552353585784717335301957118129631158262620219597702266868520505815196816794939772818879986301539264846213708626547346471469193482230366182602793396533060249004308869942940231086125572142925921957674550202273632445016633475788810361662933736251476936001555757051887434370712353435049209635200970089739870441263533730681625964961475817795669271252830273364970056028774201608806413662340497519197789783780926127469552146141593634710784280728145651405069250825728065415232772816147766826313830540527651609164011847278478990664917378355432436690227899456973055127489097061409636996500443447007966855581068863447579623688977841900414624913970637747750871055584129956033259617326108128515427347033099702716396671987670003784148311976200134025391676517335039523942337457530418156126594678044837631137211562564038026924079680476205602831116138373897904275416618685415409564516063944313801139693850568916560994210776927228738369114764791220760591853199353839396286816842962909941888982268257588775324202183236011140457582455953911916653109108118063244191914339922824950470900305738684263038393030903466061918898609855293575720540587273175952676930668544288847512886215449929802505501546205584763930268793858433879659477202478853995176720199953233093145862233339289950084446644444199664506300573850498936550936478031653942095894807067658124392404350695859468998420733241566907170096565925917364048590436218703879172282592167689071085819741308561353045960912944577628217958809179598665108519717552322332207804768272611582914003678682173432068909665000220892457967173928344689189078258731648056033602451641053955558695842698620719037082647322001056980219932550476558707614269403500919360999163384353468253613697630262033570122232145518083498034630446901113233091049000884131028717335909677078938396171880351676284525530018675222538336204839857569519933436288237136712456642163520687345387071898687848117539770504660086721216187797594831054412606067555299066135441021895199554819212923087369583055404155442409820534669203074965616896956501505852883561118996686249711706191968883823321062258292538294393482119980314150304166814634038297348313677071622592862716418266389475752251784622111751043049425464766018102018632520215090540797345219221174945381114299433661159046794218306601958407983163493388036990366347479125250402696246165924047207214076426695970118191929536710461674757010367413037302648241437602082085360924191766558787082322364921494291740328118027742356843798661018169979648739604826173774401893450523860396997891818066662291877185124100091793132960258045351208444029995786350027934482429216917119005645232346685745310452193474412745514222050609994318618506012365772827821330956566101377186649569594828876462960589846347180235902722854620970449044152123292323684617276156383338442933549179518065886163469051129399832701343324258996726460615861759117798545185542390465633958368293573197490117665756892537672165979653607479197617859349069568054706215476591628363487332994059026594884248568698366472357346574093677945028838459639385867886216998214146533240045055646437781817491410441687023215999641689490536691954505909441252094648252812595131624028486140607548384418705654153918312124006991854808716389700873245435090441496493644386807642016913326310097277956970989209288571469395015585218277018899668424646777690709085845141821234069855381271702460923380974153005386103284413077675620079897936014693562693513533810105499477155117980038349196721508495944804578623544382240539821223751945135181336253967638033334833595038124293216286478514953843096677771716619169407470321452773464656177688690261103094526250651966836935276357687377826588584703302783144223648850069419075574652088066492567055861132359489107384312145991977854302772664476633189239949222406772823058481918098956183376319761109633775376266163994600458829906906710888410058630055777075261716780482695003752564087781660232051989016129492481549691738613052017033356687759591778419770733774031382157347286959950662992662216790203323089493358404328405971845453495705514046790446723187219663853113566106012531804144622944895516947356485932282112749080958361163716856722699777951535814079654304712693790293067219922330782119539706322039802434376649496804946354487704606042334063308522534844823855126000762790595750654395255272259579198661974499597533178574471586832628583553989252390323204597871880680985361617789379433912252792939859931082286711989520358891137826257411779478749171904956784952802786305530915673054459871434746494524183047659754348279045848547001031855802484832116314275009037776565071295573197757883407077220176502368047837871550374571877982792851105939228085015740392310869843371079629841299131707240283658826806376828613002591784039820181877143161588792009173685792693858072394020004545304779297250885523923549044851558700947064394824117678602066043471277141014051519733052089064735035146966171276720003708269261380437960082295689258428215090769082157764182614853923970309793297891698389207488886901267594760342400696567133894526930622230732745191959104911236021140443596558974007144902143893075762710972531757203892461219231540774988586850182517748604750403462654078148707244441644317714326565072930115108777774117685178883187925712754191519188237371285757358216141548016432137173978226409294690691358697378151401419336706831828149888955264336195869568054291778605838552960125418561171747889602790888525789600717407415115769397531691275036080153196381464765697070609367363983174729801746257691188612565192914379276382997077965288143391377606945830927459665048619283905357788930446081408086532314819019016941687238022030003988512749904571897670532906109113049886863448273941353431541371807121973491260692813149176433004907920498198473710677821150601037465896491519009804732202220144014416373044355720772387208677119894421345967691462632629110508206179372753668995770830795401755477653695715812160945584036532047823049799904839506378328588721448731044892858449271839825676822500490264525033545444535453953055413237312291369802214216667252223184255836183120668817668430086971619253438702104004634067414539253940611180672414278093073296678119465920127124533307682805470360664654542636237621605264051572150502180726416871787025760819837439161623780293204320070845700829465567884963649662979613813165533065110060232539171407320046850330212375923693190571880302900230909317095401785163465121977244333889217778151876042875222357580184187853558439051494385898850406533436307134152254332325408563782475045257134339812491159814828129368469694071840719140616948862183899859843902362977918238919982753013094871473893788899113103666056269757199446056181301372173621714478076910053339376637782307508328553127698831102965336768493237444329767480834910052722288550362263688069537843665364258868965161907163960241002839759924149822613287910981677680829729474124715144572504375337289776806890501695056880940715063363947464414408399706139628398436622283624828628612642476681190517131265070097685150445615316417347335839306279869700420327387128561762008205734587267962625179273258913117608835178694001821025954086051131259521115725201956122964801486742440235555130556755022168131589978667180358702711255897650121395392504107884083783842886984626640126917756002491614277741282875097882512037065095105471483656185985129196675234535285072410182599783835377534572695282857978273003544715191563989664546726347068436541667628778375197359625661636162348717721365550725024921730568769560718040731565066475901654143989794387475728229202429109991632849654409281862629789164057103647882520274897391083202529718627052129692017994592381775182613397331543552253395613670490129398855435312070452732963230690221043107020292555983584837620758444154429522010380398676028007963332241419541121230388344649896998660926983406426612905268101348793847456760257797392134931656393010144205221474441492516986800557597434560385941693545180516794610209223185397529304582261893805341851302102094316551744726391182584104972943367433664662694328881551816349653079364625853998675673057544702102485222414019307063160530048866385841577582861688412267887880011589165842196816940445095028839927127513009276362401450678809861708272190998412424010869330627849199335241275705013459334201793916071032506722565229563081527686539871872187318478978711403482454100196054895141035411877415851096117362072752014194824972804780873120709615564059306523834052449554090717988381048336437625625987376176149882579407583250747481082691993865286696795904924657409466399337305627581802549389102830982834401435871678431546063971090158337050394677397728593828935659783430443052301898295357705739480045342743561138916226842853061183298839241980409043723411014166180924236728892331545477072281493073955801417826897583209988136419692589461639742963996822434506102886831720854146252743838395991177861555624831115699547722836361620149857907440086667978040922048357820088594097826392812969823459279908368300568626262323365019287461732052847815296067199664108720968538638483239457428182788917517691075427752929645311241419673634295138951997089270683524641227672176373696524046197768155778694376018470105897975303810851322239100162959795661473309582707020914692058990675456823279359730901797146422813748217791915115782263752640033099954234917894962543110440175015037428015794842890831801439288320143723644556138585766082839489158973199792430530449544360640356804746294775946912528975117825320148294227609643861299380851953544355075042541866629293949852489121834590929577231773539981711917232135307904904392536368555684135267211594592481172021478686478160011221128646907512729849151416287091745178087872535884672925633692922939924329112066366221043916470193429616048545083871680958834770203024366482144333095337143487447185901658327338484160643732996617206168984340301491977739277280142690815408174998960327118232096712648936141102022093115327713457585536016046890262800938159325033941186280273813430938333164549768761526574885698045829907060399293347885841568061392665478738353374271093640985378962681855664850447164661505010352904180889269450045687340358925911188193639492531931717150476699445051946352781900816204854142114206127845991935415603837287525836014312732858239969662937960747226620294743519988660067570929861121094690239459172648776101041835714342494419712315220782458411141525736558548995824789223198581580988864033825650159179758947670045141113224152692446919000288264414120778922526291663711063423753605280539576020621997797731089470172698953633756931762616788756975774997312312032604607213212613088528531462126459767469011104226137632194906233480559812470486631515230441627750382537484720940641243026564187186448544454430303038714831099543456166271184952577688746063893242796302832141363332594663650762841520753106793900475516336399259945516901913362821427977686626828148139873382942109464797547967128986767876654369130405916854066967714432496814780865335701113758375629445422461525948712019700765891834693843359567681672007744066250200362303186258515553352218856183369590172729436407863230223488819372217132827045543543031353446469016793934125914669954091817111128937028893409240472784192776950153230084786102478618066746499581449115788416581460267479046261993997458548344939895200280715322499806573165245184098130687720525736867312511339086816560327570832793998529672821010967998569650227142578628799590418107079846582481657503526381844714425952125308827939968743202603939241107248963464610641196155184420071955333075295704505657183558178400027840191246833302504327530384468202967438822955845636129482290593604527462936189565130868848178842881485686367343150685522355759342152021773205452690821573965795787260990633840352511202406475362341857713586130008908493705200349922327676454080573150555852098273666728685102442759782631349937536724237600769313042170983397953750027125100925656880137923625600054497067755463911061228309570913522574762684345564519985785923878216587564760138578518005061840177367201464359285780137058045315749058332956746164266329654170426860941777634193780351993454138351852223667044672501905490476223255939773145440710737229908190681591213224792999352335406070564077568738256966985791177303394572866443508185217882257198352342821773104196963363983735880388301048071166891045950408703866621612863616296259858106810639438453795412488998228097094622600235103356000800573086260625943480300413208923122221605527554666405964543234806753674446855347984893230544251714478297025139175774056915822769736089237791741563515071146666299579448157285202609895302754469108987988694165324593813145576898295696399921339602003229810463598268188422537050818653565529537867760757121170968229689071309766652775831154581564687320259179336890827434914071800972782176227415975991882933950339897570193982769768320874919807970667940970614531160445564357099251486089981083639053023076881657235359661086200437058249904122268355485448353676142329058130179086264779593513782240735734336810385591408779513181994144734996315757136215168633461711244405573147963340658836301256552941539144069282458099642832281945291906841709302117519115135776281117228218089662153680053995003816776289643066402403111144413895056787312987639153940219384765111054460441828812684882369506477518116880277418065810698306456641544492166240759936672334726668989764835568509836826870681779107079065106527758277012623515678711976591426974764980034911237713800761289381091252210577309160729716488844448719843071297132294521411069699176266284193039668678981182146229722083266729411137378131504387324751234675306557592432311473772239915808598579848479994561378013523598461410073737545300919095308531696972080574793514106901092191499864205910012426128208232301487102927334578914831986222018269899967281796870958350665312850243560461458584243221312447279759801911362885745042322197313474779983488698108562606981744987475409407964445522784774405149163865395196732131306839863670721590237675722975042383822624374781613146901675858429114139514555781309397538915414666713657839618357932158554004381664489410767470376211792824731363776254792387411544027491778564197023415305267115589474758572516806891810253364413681319196858676667099264299353756512850732262811981705306797944369184412865852611576547640016598029213432658407208300209239811960208164664777582096769562833644456231423071451431973408978680217815658345997926881936068030593447912676607644402173920516197718590657412292133180146749368435235266499381010955614488246881560126083294984093795352015547139208077632432645310614331063239588092882594741768566745535177328706131990045277239100648570490081498840940742976254801212822255817829710641154059542196818804487821994494691844197813479356510411613615163856641228450535905166829650621001218326414728126394766364982246637898189836022769761039329475280359139731855646175681759831815809647956650500702487679413784117257672636801988689143246457247019628179071109373638381544610596814662137890764309004888129714337650761499376652856803781873711812760824085206753575057639359079410083050836017889509633236301409176452828021241196238629250909095481010679254894619474063324921331742658720479946864397796840684372090575034267218781859705148564671196738118859548778879334102573789422632154177156396056874521981920486521327610192660557823302738691492967926777482860407269071037835989901895160681453402233983483266311498172909320533285078752744995207940354295091271690574299881327088818157712581040094285078434967608629066343431270761500493359161119339058449700228117984416102132897452643547413408948568695906302664665439285182423342179749752621905172170141397116435153585846961708136366651927100985863957198156542657488484517207390783512922426512086958968355334447684631420684145359974824750106591983434970723587125075142931345556950539814684951087039955131348334785723954846331750182175837812074274130871689407970599745031383127927790600496584723126322454700939268411874186148761815814663380434160824306463428628293046870046439545024113006571100685199134619800900427384024349650197172980243032739496579243573806322299672563241084800658463517644263648199707478399686460512413666034764436046453859791683679652238265236544278745185038787173297764740220137883577607061577270894869932476779733842215783211487989696261430668874724774849422111758589996790157050710834773849038415055153640583031104420671056784850021934833751737662870556441016086587416093344873667228169641951199472209261851671821434095312528700381391849237606829197794488053104077880118269361652451190773618344432891203384813465664041645001020685327187570165592721186676254590798449777889364389930113987220303669756694840090169630303141318934609565559829673270082417183707603967178259159708099357643221860667614897584111095208796878099544900311717707195285537380841616317389844377208864136277314938121347895931034835690025292746021520556578590390969769316519218162434333667113227501596524422193883541494232870680807683701607754760631007110002409827720955052186527512311736481096994850454342658412693498693125672545147799436115244574642614131638838147433460706027994767989076700688613335411235244660544736753310678366124108238470466069962576243120961332444940042998126939138764221300908670313183372983937937012729842390673473034204599283700989131977628608995594975254994032503521934893374752537888093823722944602520554131199895769074423676046089092010156007557062830169487302255557715304430185653669249551131174481779661792714536377043923654593929223199304469687406402909550505229685196455825967301290585306105481658580108158961065059878982976541544752958808145026596389558339110871302784003099624828800165587735855417592713719429054337810024922227503040550606370219046621263445489142704019271024794222555452105696591215756519224479072591185093959538381250716645788326889394955434123906041964833557000661283823222637732376567894878684628028326225907717613013655567029724104396579978322264136308912251940743784838937683630380091423305180829093349970552529675287057630503095757503147194551260434131402352320622260844300747887997591631001563653529422518802963915677952512442205081484780169806558210929708512224088807367448980858710099044150399683926429667783820610866044434203764528123880299932047722523522217967126432860580149721272642634059250309904607333236216548064352569618636623032091262964233683093782564248000467566044070411095965436696415906123199904401990343168613342951381112472584372931441811978253712633856188525573628274483020467916567894507499900367967579095699461826324032658831990257533900956931498270513503604283677866473850408095040984776486099227040986777221940440774202577325275939430178361816667232481458219447756821371643652801102116552680185240279971920878114297304243275761755621146234110662448249668354137485613970348544262660680202250579076218755491916556292156762944118918436147104989629477885387762884311614690068031002714931105228887403650951435380651019296888629670962854894215942725889711882684354096106831277470763440167305412602155871038823775200330930136635253899990242844321951254394038440764810707045364108158243581123838421735874481426371902544600104482540688658997347858669762826228242787152118737058156905610813569585949361447942490900789299996291359226603749052787860776219824999524351584503889375781254662285268933979405591944150468044120304069145834045486307758166864783174630959378829960430183770346535306933930883933316437880558733080490719288897484452443032778236903080918386603338936079199112783870295953077175642401521042847431351545080630943505936969724050514855572212711537113846751958926643392095137397655188452874314997308576393257673253772484774585300318678280343537066988247831140835027829548128367587116221965962954692847609321284543265798881106622289228386514817904267047961942255744420675331400051046902347399713860295200220397471121503260026194726947503602401208416859214288084994433443057053721818666405325527370757227004067842796688748541046070587776639136124000471769874735127908217526895147480885499051712244994454840569776417896260942122845553712121105530849000618039864295232162447565721568814035684146543023108534325249875262746718254056503792748811613375059739462049703532740525966539296791464865797267473809098640532192492669522307636817370120811444219282554182856945959788355240421628821893477819962798466764390510189869313996653544496418035714287881714259822664251398918431107204339011220437466775523435567950529513495453321342310581801029059474018136348223237373883074818098931167345341107580611682032856146791895328899460733524823537556501588153120874641586611601845778820137880146210299772484662609797238873787427017207343599411560570513361098173351983072265336671908451104622063035431943816452413111030662917081707260993028623592353001382060043526805731697917193422998031484769337270073709145972428347978468308042668219124451968862827809677341484378419790125674935457009460300665793541100926873750332491827313329192393405822806387793468577913780220244972355562807888286630020024342110732302400807613639699500501867178459129349398988905604198651883688105846324716465293755700750789853354934859328221504695554124332153140862164655592247829972151366976756241581677444197465838323860491761805649884567063791575996581149277543058739748242882130235385288722521338887346062247457988457411545666187963698997742222801293483233366073994431853850265459601430373435259344861423644347063652363621003566500938205511654083701540545565598788839505257450956971077794496958113809684504703484655031855750704212753247668846996324201973036149094153086573531044743544103227354889077070737691932153016785110482954638173395204036978795256845533755840159276171044230299514028217135958387033523700077203511568547709269463134208784792381848604431282556680579088313198706545124261221227119563079892242977551756879745407847956897224529344159401451979968867394604399468242305437434012687140978588896201179760532170480928735491352441777620842295852210263115894964912456658645507539551969847128536053891922220230437166258206309528068012579553120205243163024367238601137605104425854688268560672289748453388904066103968635943333432298810756097718492545191692421715852563206436702451897952953297588037514205692194212549334008491434702828293685814805105420004144503920283575792071452613663805395843519932001987436101989870770336369457642437567436389700085008514082004126146476605144638864868725589538194997749579494851210540225047657204457557660316060767848519491185937996258649908300186744864394684151407482679188548903765869346803971379549786923616330529784678764049904054598910225159677273404973387751116009679776657552270637454267911708281137786699153872151768297892411199696170351350873261716991773878950805361143478568631386483244297658733728118992224162500403220474907073018158744575574993464429290080271308368454466280605281641522992120922680016425573378367595367930565123663265150386588698103817589283971063455362012273403341584949808599501549279887051630373570497605344923245346068093722019689893828781248159651962632205447278551180681153722955759451359658677217675879045835414325626720586751918460029869387211076804090252555857187856221623978758224901819877858862942198168805670110108582314112698385116114617872205497844642738643319710046471783157105552712321134793504720511289554159306710102047539942454922609286441603688901184064303741120992151878941331294806528879258370949688194815636821654213417456213411314700590214095123607760054362448857149188164822134076593616036500273492530312531661512936970951975746969453925839341568128556955678911389581455439252311248918806494803658092168510011411605641389209014186741826434339755529728243393542964947429537737860738065457353018699991717002360011459662168744629265792491205729238564676565363400900251525442215863042764752161835045252268745339514934936821375182207507009846687212294996918700360616438787060916631894921113621995896609939018227213801850061064041896070082171085051960163790536741440521373665463698281701089294748865842214031295378008241599748809609963798520561613949806226825415747722843929237458116247290220446028351929104039236765219333724166311814426335897737749093407770929115745896976739206645259236245136589308725374903835573974503281105887054511639937101252832189236054950216786517993001389331653826842580650851961071632008734061048713094831882135672264481023120139196281369209403639323821150085826310478496427424209204326139988901391580882440344147650989186107727749921668613058506167483089293598152037121324832527648955968969478921552784981638368589401006883054189543783862515593214015295128641411556112601640536193266464415844625297472518364669218537794159723501484119001404875340638612526223983208953324650504024113543656952142948430391218348716613356293114622501854165996312199022564716624746588231857070992860962931369249141110406381434749277120126988837711968583009134836014253303857795884943009554601255919002395059066046712261823599559232970979042410051757628255817520609932518395452526247048677046120984705465147620807560993315457578688000267056733430828565454860930488988216864633061007933906472127534021298824418216083838689750233543862900667688308147240777433563309866762027180301234556906142144692999497828224270964359450287261004467207098119757902327193165246950519592000981125162907519156074887846781843303877278590912454565851046770646475491868498423503740221170104263350253497283248318592223009572912230032807087121779647111918274912157865923306148133330821383152863101055225815056891053365454716355439718916087528120867840176589131871031313288455713098865651722643073768317800872337873317270851151872858585534792921268285839691159650060285972281013455425054641054441355863494624234704066334477075495574101676789962662225028748642751362732537850976212455063186508505109181122011030800921155231249010322668985834490203199950602747327475325758724914151111960606997103645580365609489304922903977320541486839070639957242214995273186909907649105625152918026504926371057029570597672828109159027842456434580579551256063609143050131455767340940849155782475337379041712065160909667223564564599916707168008031279331922043802794082510090137372680146882267359378718548589511093824359223058201008698998565472452068469843098407143368213966711220325872788755507666245543673684503826111485905310999038313951625399755711652385662718487051971208298089285228840255423801293761903335459181547887015726845684796859072282930442188266370430555479655985685612039585606037383509328544552379033946291334916117894404028526333297873141901464740814008706680726769132591454720453018116543362860239871934520219564469555711139669902025670868562537853289080590105339688300748638326702924810597467976190680930581868604350195950838789998345638899429571402542651886052536512691668080436197361975247806583331690855537843338917258625585713455823912506515168537011549706689212306973163811548302488934748324190425253438106758354341155126167804266045027971206410118533513749242125501721706533083517996868113355620306005831985913265655404826520754926068620771456568921111613704695380833140445993746837009459123889841369338491134654799961881406370962447856723036841202704812783876160318329313923721257623618277645792256343497580448066570464136653375465873253592585419679568119351540295053656386920514051531779499020225677489265241886542775433957475875531508073541059212172147600130167300674288522905087335479223867886358525301493366862177252266991785086856797189665652670271098459459309866853288662186774715850290748155690301562400246274562639807642147367906852236588746069164284416318502280222941014488670367867679240277742255297497554729845492750742274793509344497701276358553405490364260984457630326997658266551557509398644151682402262153173373558374600156351270663436745006682992123490605408700922032009982223108234858005203051654565269690394160308046214925144598520276507334420924013617727773966205768549576409238429232470339571588988597122315706934294661860905605991093025916945221884032088602985688653446375792866513708534064411363389970090934899638067415587998752554929187593403921384331550076498349383642411212911542309699479660943293653839732295533644197752723668352911278340740188647930533640819084713613798320638387400814698068995729493779223426588677925887646826657617660492562958737109456393374660207776477949197853793453295284430559128043336697751065175700621287212807852657682955776365065624474293474561714399648016170952551994665184867956839928169233815781587102250518587722775968307484819212658732839112128266470130668025089990087321656084288255194088190145361199718369990499319387426021842270796199481665431521339758102296975964961090832351659625345381542609748915763431861236840183854332063273616865371492416297000634806807391467408191331822861224975677908711925255081434641696577853723917197046488549621798275723964244231214845895866611645462311816333056759065268267160247427936959660541030119459753478588819008371383382731222478073320558037582216055941410063659553207324935526010125415549984032872731938843676060106071150852404934535103200966118227193954067107755966350914241324451266318451734180266688096881847225516636963451470984682358136438596045572806952860745480891017174061885432909777872899304535597829692892532002191973168899172924964016733273352864627706947289872066249933541027830433481330423389484907808586088602622568111254867228618938968664310575247368383520906159926629455124015779592920515242606645019700361506228659174498083115100325466858440117985926402646872147118084764336521106651285232214218210644761598310900916746333502547333553229011511319606322758758523042518899946731959772557209518927355515441838835184495551842123886597719325797765208628090919964451022196923085199944012239442238166017777762822434857007402752082057048029589386540136083314249159813704035249647717932435575274208554679982940338068649870114623721269831511107208673976337532912530870046281410756880403927927878901592101233237746010311628665170272724471902789517649021313382806660339829050500339049826932240492755034730749171540859302353940006377789978156169449806065369875941438699364565400550314173224344948716853909521022543498731489170446010667309796004801465125325754507078776423477425087651633514539433262962364152931788681236790213383863648074428083921134052032067765514111621397141508367381990357491666746123323078736212017694357898024989511597253791363386028872941766040052911542893865528823729296504697107414786729090269140349724161971542062560168491390960344130840281793487129690255430055811570224239226542153911134893874935460006840471387017532682041694170738725604962987005013301516887185667842112435448751081820775262902840996495851316829819580083887004728171890943654786408819816347806174779654506610833318584549440979154261742379721969074036959833566299978035855596613896785287711510817597391471116713082078213354497337251149810165945411617496451536550173091267835011061420830637321173813571910194416371850422999194224616237882486776946140251414670565517957783891350028462762866286169653647447377044093985090646477583223022069007850107330200647823077236928955696476648669463695071340617553978018417688541349960951809560508297398050881161060197493046110258364312978582629963745747241687390124642955012848240846736352399311737360564181267577674813955685148947866674565877097602762334899014170871602375998344330694282476204060567813895917070966603642780943314154538503921859920434287863005818857176124340013996978357500076738591597718625803581816861696183442073085109186158051680685935795824525932130942537794678225122053984013299122863709821957039392869065879427860451323414787021367387008322279661478260858395490377693020549832664383747447619766602965239923727036603794046935125772834455047839516540643343074372920123898846132405263967909100659480811038582983703994742789166182045979360073983700261882468690341119141385691111294730777144980476061425078184838315859291914420039195825144516974724264453560046655375215833826017880497238777692332023587727655700074279174371417628142197686373843897404691095256695969081070395121317840469943093154708312221395662760285929333734400472609634838011506102011217267241229363547284580928742163017074550615067204058665838292569074025929433233378087765466381797235135951175533101626595234364728343848658330773292239319950803336399638787946032615782970464164765318192070233742960820792021334201310319602132565221916962716450319180825079837561864488836170540525360132047401163972967634402838024371907886511645324146977897906519486170036435748731350526446724613759771154195825878869692572277965406100685993278057333403947606477142667646915811333314504102424165095720752851138942989142639759279905519257880131872084251697001141473162261312220133671360009066741239963091314191238431737548829931941160969261622320050008325904428188380236835255975471454946145623944177976124978044101625402030482526420773833433133226078576050767004423806630217699255836885224225115225224114552016223187026475160099575025657141534073342972813808108167358553220116770822814020756552285257948278751889716609082916606087772729004615034752642858154951652149487319156830307310783937630095256109986386087572101939995819976370837289162969757266624891979524197712492312569791097400393469095493539336608264574079128805498633911021771564360440994718740642869729995076130890796311377166547881676472178201687202191337795973195696369423956141381321214201153649072341703217719999702955386397356165237970899801536500356379083233311077853274119777538670595588681443998793176223701594270519916368977138387057442184217051930969711588086932252282813660794007233087223756000375818809170594877490675893875966503043856864355518071011387511637437435747265724205489056541970357731674513969991029954507179016487032077474343808870156269135448235345841266996495330210677311929378866972113320626679777156168541099387036978348143000561217776492485470969264731439400104625566965410198343465163073428566226383363102153463749034506520408650682108587872315370812105096403821941357109636044092606464665274882664037386029597751101943881519683620296019928639353409274180082566146474171362937231813361218322672264776525431894521766697206519425781222095072830531798741352123182036356420021534695198699105162988640802232904572911291537325512136631486564741787482637339053213355476568486689457547546310627094863597861481505245328578701924455343241787808063581122198899844741727546933840273437906185042295061131828306578044599468000905460115383696571308729679318391072449915144889582871336336848734628087640571022042014742110247140913507241626304415315210303625216140920935249529385246442994692242090616014313889698379711282199451380075720511599993264965006876326324406935310379421034319908426835847407823284257489613995886871847158411343850006403994502309575051419651835939798759661492325842679222840753211547830719627327601131828913393089198703451234902667880842858953974935881758535234900313057963886156678798070273222348903845432611832918052189050852948275509366676934903279442275339769407190114065459653259358942843687601010396408494450787993356816366447893742255413881965394077617800632094775016323479092051552760264410287733013194282712307930417796798534773286564002748600039538071576785671087290353371134509917112611347945488797405399827651455290980274455573201240344202508433960672705881986983341991719331144615930007298240231703663487038127822540130235387899718491019505997851010632396498041115539875570598771949130479742741472841465612322985424880109903583356366075155210203552871085450672939938244621069247519406961971209682934489738344343032185233770854490217627004689414837378798502994758764533019278516247446502712840899006413106610110018185577019436828519093132218138648867378137804661976345226150307739094833429234462208155213382147542885289713247788976185170792422634124162448567796707753634728102919988768555902209154337610024502896266438858045836007113489455419955451572699891051236092433419221919725827238964619896038475144064948426599401257268961505359271436225327399933648142095242067204060436283633108812480284844729471128000382689955843071353130839858520619028626743169039956428315249600499040319570486328656812906474962264259301636595224102246563225943784414423991253461016064967694017689506181643485562001462823982333574629979139092489188027882530394873972281897957108835715604963202379622095615717218875773177016765610203446064837214940402836598346434871105025551148920051153648510051038961094896894361900675810843191022160652823453545492794087685070634172953568616204463425739142827440848266739687515727982943104562704908142847028110676161033220806055416740555978600304915347347752191056413129647134343354220939324387910176045743151319136284560732069483374608019946509958687006606208819776821974159144319167254390357693540911563451783275683486996024891049537852971270479641267046696355007474517851790228870865474698106233708555147017253625095137953005542647986004767841703187029696480428519056522849076260246557904385518681935017656160560920696861253913612560220687112081276195925786083777118533449400318848385466829440231941177478404255990170331424307912527667882299971881957475588136639405104954503166003965068670036097098267435073716936986557451867065055295050664437644548260215843597609708792512753129184253539730297873869711406984870132160366639592107387840117860937782780180127472708436468120475996964181665152553954042968057196762429674315289596796499780065444989557212437657398012894843755296565520445997196063489010542500859535869573497563193612996461108996693306103531052546180704409425259888026689181364731408191008044021322691548453089225706724681173020306438511566083620905453605623481701517353751364694492156765351914743968405608601890673676291106339628571155177193031072720414008341473502760672247512637102936244689477316188261665670612079566485205337910743120264186493202055061175128714547005497451167699733847188440226751171436918419295122183777463890046031948963857863819399546497555105138664918817819545779203019740533334118130966700057323612587257915096158924717421791672769790962772821376861686841012598169701120793695096184917167682276192578241320461056957136604847066456710933474897583848314078851259398701103310113676516524703381372489003713754060647499520839739390498593914314250706758261482342499958657464696546792584571893551496987720058733482007615091866937324217861208122909628167076126563473868063677470025764750683518914735816593213887229672156251737182571784794442519947622552947816136778651271471544777014883635416743519523107329255088361051490280493238087502582361790604147436852321390009166575219702227582909090248961156953101143594886164839502904405380161195726755742161736674186429150597058406808183058285608865403736700275130290472505062984179077075301888688512749738677487233454780662715830972207547774747482186658943243433827411190991883238435218289913305915658564800448246575482255178820712242704185389527032432485326000023160942551904839445433995285485432800524789341208584496860896681920028203604978700369760184201479038210134333292736094019827677639177538091027649384743439783956424371960091529308813212251888864239504619464275899219143681581022098573522070301423643999624229303850167220892304717274775774612452631986882441991632084111278288978676613985255570402135936463943122522477297869855571590891556483575536699957203425185502334536696559598218590950551242134934131274055344768345300698426418922129788016237659010886100621123538764081111772577283721462348766916741453921673910744843319876952874778972662543882792979374290017526304003401130766840317821407577550804254207200440934496012095377710043716746961299055442827806628460762898508234133863541061112961145769020342051094144071215550665877149737555864350159390312426654279801941692361810122326655906223278243855625396830561573036696317806569397976863338950701057988323817716100809732166532440921089650973294165867516687611896963127749525298265286999126107509134359745116430667296630927093378878438921459469109734186939226622632720650221838244047247690203416921077988840111335257187946017374628368556416100974779314322746516462280933586185074656458517007213738622993812781867307836976067606035202702122903050833510226871111223396841667040441425795812713689033784981849401572442346454627565709830941287555808197067166081785993974499653340441203569849464535979525692784910422105046527838096088434492119479027864035789284950991352437961065254602349535261045636869822065907979707950817462376147908920128832924437042651802382185437850767541348414453387030239431601566735537671811919380316167188978662019049609490138317395628979197385081674884774814918795413843752130881614167714953068793000773265513626179500193183678160854574984123140064827399895972470326753410426669844567273532866808586430838627026668476774457225553533603961240044109575489182806827734927486575982462011060476293314155787204132766247397994273048217447419110670691425562999660243883306895341102107195297849901083358989736463374747628814987062398453525908589036145705940883543263344299540241016387102308607873916563067035736890389968960908702703024353726221723913972473319556360079010192989188394944720760049993169441695016629859707469563913439229632040612669532506086246967020581354529699972229218176457070603207740443313024135134816668821501909514817930511128977907036964223952451951351427204019788820872827392646030318821911285413764138041793651848950641001999020507848253039090758206462314609048395539688686974001882866307225244014513866135813405557958707692789694893425093786600369706765140027162578414234958318493775565140883331139485972774987427479248493237840226757835919991629797859278326724374561930022320509669179036519389166278564544545443765227583239712967793573102689221179314840026093731778054958603489255666876407294664739710725528932510194176429494056257566495801414643788916774329481394378435980738980654480627360184028843175538550703493367568724024799796998912746528260332406651370534597850031424953137661367656553972011555139902339841631740636241709311994794353348778971725614127831949142889998153645849377809027163543673974126191506500169091900047438966742638435628992475477580506800427137890284475813781890617739229489201510075092426586656852080879931876393977000297217128418572853231651016477812180675529575429122678119480332924951377491225808321982721491766687132526912777131519861022697039123149390953685816539342467201283393020048354236518957820735962714490386323770361226289641206740130531768108819002742177534048447768836008001047941905909495495916459832224688477039806071445352214737215255883329650049870172201027730964775112464085934750453364758592735886682619152748004686840979866890643881679147454893155647368726366242840459867880461651341551304096994856025744470720372679477372385324755954519023411042718347137980515988653688817318976278962668577192616114635835276452639721823097699009182326168508957739635329311852369412928105422803782079345880757489317311496164759521608967506065109538011800988091763840889411978826332975225886999863090778847842279717260666907401368603950929291781896075165772621819239451205010962697059018210716052407513453721486574755838515883338145880573716073281870871709045080083141643143727162721107205070936742624753214080778689712053553250407270963530648791713931457684219341073832194137280430196284860591273020296842126648405243621197730789767894806860194669525277208130163006603687882890954972827649298924344464179328787709468908512705123178141734815336022931579492892272737524438009883574723583981836132060888095531351158215220666815836235119697018420799262997567829029224690487607318659624876387283751030045547836418861466306736592173793312247409377920525637727933628694541197706944124430770442459932652845704222552198785545297763247030378880115094650539185631854470278011076739930164647481470021023970571425840131050809527343263137395526736131801630717514790926452978614119421847643424377555986642697040172853085107720592084683813357231551931556401206045846889801220451860774985627694827190096630579202644707720365997519643358648058235936095291135941677977082560183120860589366477936910711356223000494997123404415497154949658108228608045621192247546124566829704448525065508966274387091118977143317576888317845820249039748001607751821638434993282328540256941312568862522742488909257766560083964149258788407902970692313195409353054275292261400077072066691068929030876279853706581701675967057149397884012733163827940299579692286554931364259980857576084550578375166637973052801708899420254287031267242878598078233422623514922493328372799125268027504130506329459477946333254140543375585752588565124994942207080739226445218487422324771153657411569252528308918849907224230623866488332943037535925657636423799128580317748092692456313617116439135231685558935824125595487651423303365082439906794489386623817173931412050662183811031417942388883080087213986541895674907022828073351285617147418574646065692537000757907757875521129188615056834517849445732395664494117494739320003666235117923428867774729993729734784710691318135966865587286357933708015269954783074033265854509412505933055065281117280027435413531606371946192352601698618163434829816194462306851801583760702623635601037127119882241947408791862715855457170957664637757897020288994555558344881565329248303915890263448164593600061726200942376239725925819396716520809885917404262590954544692585740515112461554391415876128821333732812975364684559862906502176223450360444865156237441027380815134647298730885941449763064933802666054290635220821717637477963570702670211155344598854425974479307764793381224681437266473807504246151679738185214116460728854328767674009966716792572384526299868877303252548311784661937324886243920006893757393736028081551122066811515558106993742948544195416734239281710408108449594823482157862774691945640912015626500903589711600611420226527382661574788594023928245831373291613031016779843513707419639523698789618660778537747142641562504567288895505636090209712878512600538824307140667064158373945744858987715910602962355379562664380032736650620350675306519004659784956097186567013069421695370655008806573607317999486018241732141286619206746900600183192271302133054141974048900471818552085833921054713007317047778189024626623482599114361950984765354967419799011152030502188704679714283191605644084019898243979773964832148445790508169406975845366529631920016381987672788984666249004534474493917383422460548386001819931485886938977086689990034901615859053523112437008936384303935670568319963310904580629066336222567163430877503426352037445454459916026650192062338724084748427554728682846810151980604962696736909368856775048893780688161814356338991645882416421183697491296706537531995679007310561354946676641331735236794234424160969577041928367784627306761983533551462286655797964594378591775738837855112529758156165596176604313715771590992601003678798220724592308719249871246899573659029063843044597847219298367378324244105186876789479716177309457612581311088600885559778849175053173436520892478314868071389640304780867353611512620465290884779979647562822290255432907953997030937748075789365842332603692289255081842033374595969734608975984649479327158519655213958732622609953914397065265345707264203683855430988654057545277835397611648086543332456684364575195421740748613544317802798209162855129306513785771175194921274151503212161452525956903056701140468615199168532193256580748565860750579253375551642889753001641806359227026005632991818952709560569940959640933368197872153713229912742683082879467544095989793748036683744729240412324410201980274257412680587916759071236825380764098373149995923968802073863681261194411358831087848039781699315908166821000784081827347193652752959624081121393288163148655538180871129628363547324756846901065824538991512308336622355958002854678758822448790211759852078651643171022484971641146072174490063637844581661314651405751626444988998852145727198820331635040957082119827031604818883012437159316784935387300387333497134810164960285674368410008771722448140660429690588430375715095816640897019095823957295352865428860867678988267067916408834283642896639598578478029554680028419063912728914159459655413686551622896717667506254427195660560418806836339737470987527563937146523046066229768471049399717287821112978855467728366477357386627716656821541167592207433907133207590468583086258726854400225504766138495366019821585795886421487930410217917803560996949357613393984646336458154713727295258086927666020204124735068908776929565511246178617422330035534018904308418702619621289976149698480407760302853965965235225335874437299859205569016561361272866395867504251336228093664712340278946057719924284967696885666185712078172586697073126202446877490223957597906998034399860871196311626813971624311716760427930505657645858101266969994364908478477983232494920284116543631882307271092273872937663493846823820810035753891675950609158929423888469677856526476288435768200434486830892150340171138837146600922342027682994836994576477616731222036148377776494310378712497540548193570705163930603861845291145561803147047522132629595411554258661129788902031939467895723238447784453517194272395803223676357571931607621382699056454166215089531830220303923019908798088308660006794428393137073088905060904226298052295990118121179024704965347135232237578504601258205392479304932268242939777755436567704648430975879450682305047063830765269804728821987944404514141682306252501116524210169504645495864929671526693345765337475428525476510218644412211333832736554458519285071076934393637012902266113936392739382579658197291245743730737509401459443478869581576253168786805845293412397437936669068595199481741785484013989594704697586606530042191076086953378211853636535699625775751232732822511790054579895082482913525593673296554918286643368564616995489397121847269650069847386744274340179367885255911434780578075076802261717680749723666045167154080202896701705791717185657470757961801350059872188977669576767971470020950882872195386552384382676949250198125378305367001017684452321628369129566895352459512868339803133523177976473014481240237469543771547372828163318346381557240223837501913413660099815138217560144811144946017583641004940110396374919927570918466162973320267289897506217117708904180434733422130149252063421092696173046918008454641647500274902728959809274733061709515670975169513151571113691533067662259628389478207937723752086127155633504352386674190990266608139623121296201765084135455908386957203489219451094105384337953612408567230527164243166738562619884716807587608803531714484129038605108235292597649410201935964163758588230520978911664042863273788148244968502466385296577189976651547674281784716781326884650220750684957288070043267180335717870978802136674371900441837068562997484883209484547304828729468978656056497900873362620346332589414570414095471257759239150860642181968138184527458308350307169309822485251161324092396041834960175911467674305251271932134679429991866374408248493270592554852259491679487709098956419732210238311863833546229467493087048368554358620478842949071818726385678242576784476074087461590926289110369940144473719712335407609747146030618884130768335004700676075392802473730212197711324170048889977182922428359399887959893618101436580958531776961887958377204481994415926292093952987057221872270368174505108591978330414722070895638699279873010997809315471833105953162144686171358094636933643185129108812309663738656076067436313613647073355588657665859991287139200934632057483269021758928997532447118613424677043756842868100069254681853890690477676336501533093035481518838089560541098211541253974101917902430083238514767043762754609711935064136470537318082160639082848515206885118863292062690830367052373300166768172955444168392642458841821703821180656586463275763036175135796368046643495343790180940567899402589121056314282585170835597861052086163474764304602771964946635727219282898835712080226322901727101416576834183745227191020107653164998614846459731177278117838747573233694288862948008266638800668041896101928802838105932762431823433135564775625571301829739688261084463876128482207962133723563078081749871050658698900546700501215286908375096072858979312298684320886095351001770180443146110822501185930119151778034565629334255976088110157384803998414871104984071783200442447666505708004141821680015929105166744129890457785227893935412844507906431137936034984971775648465622005789138210816906724191116258118024381010638260530262062468127944240154038469696041669181812822844534426451571908699419238670506377863548957065325480188883587100694226765984501792716582672750056227519300895328891243109019791183340018370459715408717817609776745292185446221955108920108442690549187368421729210256861411843157478697455874366578808945374350567976665090753702385144592132992029590829247558679638027209045479591790767024613169035093485772962126065785302610347565163869603715705012247169209741907805984098294559311006651926633231128685934061319364537066898068600697065475705853098703925845587048164852335483493794620087783832917071372203226247851785898866101675166343141517589341299383837098173077778002693327965747171912385366132635603299922381008393180736282704142393421413992830090178257387730676829221353856501378758085968406145876048297209077814696302642725886855152771551253909625743474692386000697705489133253784405111668275738263473015626906665162595525217597704908633416887745954711629393033359630944532374165196307596326317082533177024404954232076384502015375166762953043548957487709030163597428360448681297286024019827853102138753771586973233421939883270303969306415382249406526336257562688961900955271247562576744764163959547218709668482863107717779285759864444669306822171345527038566878779216854503292964397969830040816549398982799513726803189369917697314996953098885801378701612343519003681827795360085690547209100479252023655257601609819460215457221749439613493654680614880618380986946930967655156903070714471799222712652309665511590738188572890741607593409789637319870757889914750617480792884110715335355774120967240403875508084798548999860956863068936656105056623001077354763192664891980732558418965623595232922502190618576948220429155387515344044541808189304389375031845191740525999222788632863772126730354380398689717258888069078869469455101528099148243115568029763622445180457519267239557105611378544121811659399301017780130660317817341845474669973370045956964398273624114954510766580469167643178900998412235107476596739088312956919070962487285154733954122531019312898307488044406951472221614925185151515075574613609229972746695898559938627593012892831802240088065138036805366592269709041621486864160294602140903530392460216739913485190761602751625829763100066641928341167540216451780150485107206766222842586415689690243218670978601613433163866769839448603677006961815609636653421953293668961619076936785169888825081537161626640058745840779639660310166816414247660784004933340627416518232114550406193266137021223099035697216804317438711567285902461953328319505216425235025932339868608126444357839478036025870122948145904654781703414637274943727329892627740648190270538424044189205217605808599828942118000453377902425421143495858378469262088122010075908325729039109093873368724316317847429985792105263547612868883544300003224890697648537819532583295560008470342369191755891222373168122678516265877966194099423510569573112242013021086892884610055393964645996073681685058686326976182009751790194901741093873913224696235012728030545532901856469932989230321123321692880409669232752937347047981032177349840049256625119472253327305314936490181332339472535267920937238049125076828787447837868970352661087768562082043257369146057682530796291884664484695937470066667305602927172243596199993136739806447705830290575516103408950128039200583057731419422662001926346837489699437673259685607492346687167570098360828470722782469534371386682057589996593323531499401244794293116620213820082400214641175525998005043315780703612110442372860586620573761628274531597805591329868493824172851770739695422015037876926113307227758028448188497852877446206969075632949440938752724976842850819880073128486336821403713960626435779258210769745937450238945744024209253078111695531365026867697935885893367432611136327515259480522017976749639196964133919200878739450955620782896807031963805057830142271476303356095288858925170281480724208320196182820088433135497529773737716327515860242125687984992207002588533077051041735696010351913559861119677693689726105130124884985923619930742891883086310935549691077747169714993945793812569716465917288950797850816689081611801136357056721352976543124083833151336838473846081486579651595423003714587694938742756995524478421988673160490938957726285778509063890436234830000312174055515312943881169529074248466003101441008162753855192020983625327675706230620155501202046069175222745033256674298745913148065773349754374142854079784872179294446391063151674583240561777585789432095463713020134564723192849637822475951770140611355022453235884282358511763319163792927358782665687792839110680626621663669010035747732710455993458385190573094795852747330025112223300026571652259496788912506442515728238151787325656571784857569313423502518499113515055642472224182862934403172912478824039012524598042177778609015245941059454845277865683470577132084760196051782292915238985672959767088157379148748405032143707945369739470878283406246282430729345803501371072841974481279444224514407620875361407688243586491526289581408635115608713307552608560196109516641945179693935265831604566558480896848049247109198620097165949567590541862462887871672506387199280797022495405429241345794459927503519264601700888568743064576011329130896674462644993992575427057973748675981456740820652507530261694368444128733178724731590284148576926359977130329983762615480836431221142187267958079018652936972744573609150902602822534577579888767409107615153737534916907270740129597904850956208647075969309803830012856216083517506764002966330658652736001378780015545520707065245485745851381334400581843791792788673946184594171382151240035397235469298954411950857247384821815809395427259273249296533712024420465127236616928001657217021163165906480620226524930200326489368451400967548208534715023365989985720466855613124657234015464777583262209383569947549310778152859107494830994631120077602921729614594371509915928123869559644495062060525006922481632777635067497630004584384016593871360120670291863969561087324817155922500862810182000260721855086140818237168380832471161954101433433910754251220511415683839479042189817256508491042849511500282267742541460970549264393823024087416577991644482367954951236337229671267546685890777677268229095120631178466425227708240279358052654860068584332395660905137020703468454442233463938678338988545937914383418851582387561307002514119112258131297705684447532231524875428576872606313722830051504178344398016341636723489014986581591858896096386737722170952767071205492038288253922531804125501647957465003893590956194272753277304596184436222060754684494073598037500695467318049694064639756016152212867611999500528894096626507747084891619204361673277556105856694305497499291551902582903093982800443462813631622633724703598657107228485567671635529687067774007211851112951607276043128051732949427333378490320492665719642353179572310846046582728163914856341327535601804626845030049667254292822970188594261405906315428433678177639819130454186103064475551241189691596357578448346855285195040076633105443711776394317160002255704994867361392325434879125812359445519118356121716156200002652800520485403347806207214269837890242615664109574177652156902302971630310539067891410351143877587407893155909547373648235366826455591626537162426441599011225287694002743571558998503224952004170379995370137960201728939588275802826704879380993957789464829857612915719043332967860916297032984757791405739425571076462904990260475737898320631174416775441500389886064028041333946854820736037048798567565781180314959122005133709603025732908016277724522525245423698521914681556858384915568550713235281086133511600877662590829591035706386477288876143976743044412189360504465397596767889833597169972836202919175682255599182874542970287507170186779388183908764059310331790181984813514665536107720302873662320656140425179157077029314690440038288262731056926129507291766034652989071739856596666120843527655891272152508945283409730056330640982003659955834685502096348208307422723369701612768382027688384971923488226895279860787127003583835696851841534533960619750245799215885907308311628082979414862054486421790290044816553450257592840109403259121798122949704967351466383592348759666673259059862875724256962795880551467104440360130964499517253644513562848273706542434573812339672560696266319491833898851965881610617990293421070478015333244402803981159138390070711465177797552021402849399843574679618172736979654146141405258902033115972881157996809670471454641744198507035471818844222410168402601410689118512072080660059865415245636176779077997676420094069649349249319646905341214237788260375224345653723476669480246780138413605901321938465771991864315576436646459107230571540984278727476198897915065503116850004159832749591073926218219706725256180693998054318844306945485550252572972865145145175155746736678495995910706602698752731385152260364786376069725648436844832723223983752343817718838249394475731263905712587226717838449127225182183191192469538887244832797415129269778896475705809117980251560199301883338070900446630462920117437804945498707004684744026897235566996612463905147064530694471100480957088608263594905413745915243229623926236708621175223152945216101209161801390338417951835771774940991024813328605618411231318514847342118448773603532694546431019902806471961477224031476145428821567821409719163974617647533981137981785679824063319385157261956798518908609811617433171792135703527095559750367453489442907103117503113526219881451365694645928773970402864839294246982589858311235477161367786007452915922824131896042273079621534313917014081482972564597150786971977892719799366364688955520803064538817033505336176500348619775957135629898592085147754629312038262932320248179476337149234194622198363778100381243409487677672709236908170203647580805230608614194438070388484261682686224189580428528263658404090236753183956307297073366039078196086143612144420187904855655222979002814356740039939308008682975082654147817933408087817792831518423753720971580157152425807791121661277812590485154978738601284824865601294329113677998882316379815559545598691351540143729999220295522154588197515348523334983574683508960683958447654811996771904075284657624579515319395332135595193165881676765901295299268918383987104120148701013776839644515787493382565745010667728275683273860863810156154012964483915014547431909628419176913781776859005837109276144337680377660540881265227845055521488903989050886260349875655800132975844538807939348752977002879475226279289260958649144727802072282926741995928091487558491432188197239121125930511342671015719387215571472843238041445667366915412592683359355467041759300304021685157137134857849257692654351172207257846401120997261406488098200647220118859326700466809274351908928809741571689614470946099309904725737646944926692776315374449943817393764983545043754772315686300153442830351894547986325353011744685645111337310396332705628563037396676775007841077982753489594670586340950058327991029302119410659545636355810963252415653979628409566639502543372333465459599443844372137920448184221585628416625972960330973759078840796054341579289702168887592705345164102442727688141267685835713367559021816212107791825503774753557841143938061281022217964465454009418576365806471852229289758420092314860468386835815381818103713454282267575558968737410358962485030287318378747766240496019651661440054375449905300949717455678337554973371873014004637253505680343889382869858078442464746366790353670612766794281493906167590249187968792272444233445057341460918479955452312099922962112713161950678440315450414768950499538812583137574614287343977892452833855403279748652679134110261178014179056076312022804052895094474401556014501849837137330915623402537561887361968324985388963845089278247320366766990615930693020137326518427043049819786952690936450130155718275442540494750102879009781024644789355518737885938709010429220041410970125264206097861710052518043383866932618588327577802895831209884386579538054706252488780461205724053072766692025344886494699598356451915547748910953792108467503253619797233737203457886454473751496562789394546678219853654664342537795868724536712227777291813596604753244268959473067357756733470695953462447582783055152950712200936257629363519109364688113812532467630181367901864863572912797246885558433217347898896453140749338384295621307372560049072923374062935124415967526158297115984855690277362031019553291492068717711438162158107523667964603138393514949928347355708220069239943030697258556908559932239584531150565369514869855153318966819665808893749258446896002442979386439485482010279866007969701117112994827801378101739488963513907909288310609338393278859559932630536340039008735068298817833588645644737832441065506484697026517088792163912925354637153748037640538706477438364807937947372141164805984916480499612465375500573270671458683566119968178778496893635581729607796426369265007400178355680861095188205538225502157241463686097192519768254276898203738631835822956069292217477473725071539683417401786479615133541503278887498053293537136205985703563912027946502871665069762779659915101171125173258323199095809722835133617641864307781774052499126204523988598761082353470666876859242260990245660394580125710474341246446157101303866325679321303153569728809435632777441236347699571811484948597435924235604432912342638449012990178970765451184250655424430141514146503928525983320532158904422220428081702922486392793440539941644735286528497426570816758779426141516821332900475033849781733617971077240501219493882806999335864050689662871927927424683740274028061406140148763206865686322425371659917421149413669476167624510993150501664871769146846604486915809925980887131789637162912719059383736930340256273390581404876922099800146001184809726190500083953513848394209689520575701532422208471266545966891420120369246006972575647745606127783128414984508231546936786363258848601293215878735907029067348537297483761878291098642552370738421643793342504080587939560594580616546336868451885156180389811679429075831377911937913839619617044665634694269807306651857215861027980742830174945975264995090449284303468446500036940236722990141709653867802211419375235959523695939619215828231080173785558323962719576196585648897665670819622332904254504536025179681310011029713155585882903020082917031663791196030479096280265893688786413777361142068056403524268608652917549258562689213748971473512346515269749871965453204080588217877790871867157839049191931068464194751902786427761134146895258913693595688086183720481604771003921379209832460951341988927013614012719051634142107487746134079114105001741680220911569841341522339647770655530835823770907213761882416185020475195222157325393907930304732177485420755128533883528165241546153264412950426983002610358012817361889013338872522728721506484203934407977924164904812087490279537545126541204584174294266483939950682658137111925810779682724301336908062881570422363735100591020961751609119221517035824867964133881489889880532620137356917555301117311689145662673460408627248565781519814225860850586922345305370083174050340121637708467726009580371495445459694820728361845077908782910738530046741069507857539117693085635821770736978050719698648723899413934956532582073388062790341306906483752246886433259120034206440448474018098002954523018241102399320430859313293046124872027538053881731724336561843680999824602266013329539180091241693349688168369692876599986025328910159807345835444641528109216900182373241267421343630041770808953475327132259813713019920940207326694433504528603911070336185622158575476294158034165357035698689183096064078175699794549983238297326099338272663351086666458326123937522325391920885200996649740424249771187005811129834867824182216572427659736176337948714050077985948238658235157292876041475697203823719293885296282237074936601714924367803901513886812340489944805461056507914755854871692367095813112911522059474241484354940823179015046408051756413103973649760196521679980814098892845295371969409310686329079976232244724762066974346404073120365895393042075269518975830158160249985004925238156831036840993933374678309685232008618535738427410317323242479306605687179037150437318873253102822353832577845606758215137224642650031551408285481740409209716791368638144682968984125621356846950206390791268432041617229870674345154413986766266723644082315933406900381236915026220216089421741649084187900585963103580252780445436558257773338692277190884804875982564428566721289718949987898826914064351672211584509003277332575353978960128657993969385361894316122939321700740524756243368356277300185737840592264095642060285341897625489899883005606607207443992549090387398016856789361476691461510232957554678350575843482579513561837007313942076834047616500895832943138075670346908567065627156237275084051722565825235613879636092473359017330922635937875539675451655350985408485759789186192840583487862971204013575313960982891387934674497841348807577205223067674385977846423530822436773697173240585328258194691768502246515738692654522966569040836761075533975233328984894747134442753124746860058549539998993242254169039731027705862400516055001917355494896357092505006994622862190242157710370409539284780931081382022389033737085093082051743251395363749351306427798952508636905495546650604365962588957595843954906591531733086089164281125645350427687878855494866991819328694839834278119052733505267901769038372481007649879688261482841490785601119484947109736186465268992166529158579941988958310360152014674546647602411223429946246014931436637609909362070211973950025252257778933601687280028971948808028669931624886577267444616392870073992055645486614494527991200706226072826572164178078406073877102850676589789680341431879425418005950023223533141319380242185262017354787132946893460607159337072579606582004069835913051945676852083128270524258029586247204133415869891803247125423952434719950973601637269232248274696322355048735444640677943735391188953448573042730627096758217470714827608824544834917693492590164486856590525348523756935685971324306245383035467767508779981710537028267416343293412956916303429288125607978883646836169664690848306800145628536790263919447058946319470330375457943699604946407739817854525744436527648414811309372818882574993602766807208756660190730854591301927768646265139425474855576788205401998168401157354884742987719910888375370494967963813548327547939221504555184238969226077272716027010077447974501177879867591942231982701851114737210444910657518663343608300276575882358568920308048988333728543457362162898601006470676909852078458321936718774427034340421928109589738405840286877778784897946516055453765464342609940344874617355557371957599766596017405142544561138229364036413677871900865878225395429185015966615240337181872151978535826098373925175854988776920558953872677238942641567969308003906396035510300669106585701117311701992119101258140096727850351268669754714024695060077123222056235500902996718142209404864668837565259418438576064508952625743339956733612692524507689238481590722006539522894493281878582674117218892718688313270839683913145133132879158053299332322842935554911900396104410574117413466064804531196419029243419241636761729236417748918891673749005957569193154647396678124957287696977184111260495556862072402574543384178444510106814855188801589897515270658196965264519869153963239783583922779068813489746078153880540694180009665106238742681140824571705928943532098465517927700714697066330687714456373538341727159578634934921852538531052525305071892028517839907540261480795969562068564622559106182335106341577161573262394678745260788109462822470804594732937495848588611305078673636966254315868695551691088389522651443471074344821154712675146420423528951663564243721880490075591430272183316483866286972895354711709709166313612216284684861752728542952538096622728311716758306360641551553348634778010323366028746678837374635070166504354743319651048163802405290950375493312483299607452514311671825741585814293017350518325293365730569562482432757555670887725872087737998655644862968628253975154129938078922655955883630615763512817120472217232851282511840453078287306268930460602408251781690372139176739787920210110763720546294891787196982300880454044794645953378547873556568082580708622889464458996684964331395832787606116457909583021566060246788780668277129388675953064025141690297770836678912096208362637758984352299846866341661047916540552691748607136944112937445793029060466796592899481109823183934841842529192516404069493968803135000158474173168462296748409047434673216012961586873811617764928865343559414946047321971733058846896223959766477515268200178430401987694399079693627566489906647979573827530205409225430582480522816570787212998814250121871123494973756816777608170373257457929919598956324080168247089168674191849087676474010526113122730878507321656651803561094465036065070436125347948203920270192279613046799356263348639596269867034556700938733398216822408860574268781166601468832901472223690041769344381368354136726639443164980878591626039468749502632626589496038751517854930108841386871375791025166859717961442040670861801503703006714613936424583962154085031468274686769265938722203611596155519788562410574574660447671054372044084128667267198246392123822445541916410242801412233189618286868158037375182419655486742763652901803183340380025803546840137617099445220765672893817460861760907927262563907428916257153208910664083374069552029147038653766795096056599296257825965324968817352776432771279079845274866024963218590066945880742911651607914083562377536844973616275006659707550611392830007769898657474536397889325779249083834324802483016800320496393297097131425060138245674748032985650651243490211540593005888823741838819795817773012338104232962650452501016217259730231996581377215515062128832726174347457328841631818463725190638003425250863018717823612340875085158943859606337351483794198994370820217833294592871507100640638154061005166068540897238709616304008106836739898699181545805140549688774340329132868652207868609838183065671297546440516352674362791243015818470563490327779379501589485729762838935914866103064422904477873784787311118883282505265964683326801097964174199424417362075563208838886577597919948121867575488281313740954590105272952453498902519842097250606541190953654598416891599099867096985314892569201116678712237202558294832555437821650801363645748372260814065628313999485971351230859480676399378716695178181409871624983054106638690407807488424388864895299199239049145711394399176876106116546609829829917189312808839167988349323621708235235770534660962518426354995807923419885634421329371230448445086352786151550240571648373449143766620295396631129605017391332176794177922389094929473866960147601103057925009435359672197613173382796965065663634707965008862793758695527544801345417583099836891947890730369179272216049758071710908625426876448804061770568593925454426505098613498012384622343185545107363174429046082362746758589656069832911234231782609338540079339543495240789418218444612690268403367320436847330853674618653240935415599785699077883160122345487391223800505217787937807815747849466806597305137870520126230012881971494828196764776222453202882416009756622121773994865084882077638263587135784855502249798050163974990434692420938245193175463025066712013496069215594722116258575937617710938703686235802111667917428000029448598463409828485957991001588388200287083969405048467421835746319791546785731570989704901968038907640078955508843403818735636434967122734295835155207131054638165412840270255413407076568750760370401468357584593007828751270462031423660195341220558032801900415107439464542025789627870783275197905603934205348864061477856336367999547261772563054334360741202468237630484820261107460934284975019646683011058751297567658668750618496678808785709705777909432197297198278002631725858545901371827223837119917065783881915088797973405769308111988660570952597745834618263712296392018722426187149590891177637756124237227162933586397125447515689656941103585454310252664312204718814146295434767952677320094598756180991126235869945394077284074373760661481125425713705969355376419077140668526990741956751309871602096657472589264958372839623420506352738023144576752139744284084932436761773425197485533134508566497677404149841402593892858373192342697039554011645372378871791982579648010344819003274347592335438704947923002994092885988690749086826076155192736707615393720472191673865117918548930441214806922272709410548468237581327333387007564192320515094520339131898331480584457182821459253652845971695512839089025388304750566835885790007550295183237323090072445526205987891750405733791534344318075404206726973203590022471323933977466764596792809520532457290640604577853913598149964821812755598621133066298652772407849415552022725108738632106658999226560338334194071716418832980694764738740035198390200466618265330323353776883273232120799225267107987163717482022847812024404414086626971351077245897100138173796040785208666704082499429801739393257955983559735000049570157641863282637575582307499059014662499150036078949320169395411774865449601635393166504421022578430336345795874687753545767358328688343420770016897108511540661485699106439756652897886461111023524346706393333855927415134838618293886078427756722237142479000828750362009757515373653894742725085212714854862647393350921215275509169611609135895351806302984466450417921526041992160981963575355273860416543318122673935105676530716977596689366137801542724922681138495386443497838346249453989223067547587879177462274041845778763025285150785083878614378121952311967812129006217142210645294382228517734981294045997962102628029202157060242295079977132448850619237744766906621104734503745303489489375684139932513032914085990182606191859570192106221449588417232506422713095116174285825794152642025076518838519710195183674917688940459100543950823517086629337490206856004214799108872126390575124424679048039197634041155854777265334412145904522940888822161096111521453001262793612870608586753056900638124703259981920700620301558304723376538723159971020461574342090881066600591068278569329372035581888348340375714242626485766123717352041611807552322269339271124473439795290172188307135941236230162900500553449254945735033871874512635682596035405798766407533460030965608070788743917812510581141573628717735045883477448527170445000831566102682380151999674210025006116035054759145997247712485302827330386040769470434136916034486157707164258129679109115449936438298320952868695047681434796869216036516850755159232416980690789235934070841875199130786792569585088960868005715486699163655527240019576973918379616764632642754169273458727821202195515768345515633197544437818174472057867215262794223947083870754477629503457352633151947274669983954765436057732453921631154984315774815023998866085027006677853148070320823110871975611906277374617514413350589995223845185774073906231054871103876848252585591799051125764958256387186881538653540487003704504978593620897860471991691108402376479453370504342524688110646049036916194250639638729825896822543805283289054853204978201981904149353640016139361640790342570039391369900436943130809749592592268756778781001940236553860137306523145765480318235181972068991606422010688802214461157724217037944776591669064513565242625701338337184027806845353440388285184359841418077486256962843705818319242695711871004924018290298831070879494125404076951369915082257819050642112868590711509269380524951511837901177109253292617438194088005044576936677704239756580113786247382437569579717181741420408910619860279203756245516070871450796859961323518699070471113201254300644881845722929698097567094716281519903723983403905776869910943221972686135629085484048240707734557741958160672302937394897472115889100616876216077167096426897183871310647883025827643094173995779267541186204714240368979344586691672692153012954741624478699975036363898147755249241693475598238433391638726856213582276933444703051965723455901559677810754548497143520868160165837804732943365013510583901983610762204741109370951325701273842317434085031721276237672592097974648332831679668801230853438817061224319882939464462679084087088870640356847952007635854767018176330318926400375294865713786596546244311405984593354186432271845493696964901578182947616740567176790014646188576282217491578874458934494852587547424605923041261209304665845377483505546704049279715353481118487120331724823736677707863968429039630590351941066145880563114945194824392390411925159453573461505369605976578747449983737384394156950759269595455454177869660493995198091136328929634982185099726327778839093629551861929167558619133933905629196603477150115593323554440941513088765542026846071987874247041274093282367909584824303358841420940858857502526752839205229621572965556378197549713652124632461216007918882540817208090468438389326489182585417111040470136538587546488190304084999987209883723324964045596842571490059876575504405640952254417244760251299256168981070570850269634278840001355099891210826888329534063147680644239415218515997600623314898562830095572414654299957625224258712683398670485749270978466724888650953911175939309080313381619867148627327313875511471845281827587492327632680372127290329030281561846919556976253739283609198218237357397126898901085075888190573048649488931243361602730836542004206454841059053524039416465602031054903623031613232665376951552315311619948912323738697697444018388443857315040192883485596836191040806074725612796899079241536542883507089557223453570582288140222031208620140200993940814215511492508623554205617376327630395282817539505030925020260359653508013806322536480933350511129148654389528256973976016454121943858346388226614439466591746043822411767579533874652032015684634314921600673063566147337073468784053127766088395161890090144374279007920137888949756493403255954289661577987848413831018743676173795575260587378641579571460697187107086602019507323738071417235815541124138031261671086017160296706212339513595935237207091120190093267844382520500618227718495035194891572101897949582138914180226879701394334177852310706886478491140032848854044786704452470241194434860832687620977868466841333032835539847142163783410935137502832660517547283783966687983095110158928154619218005968587948008050322903658196773032090135303878911095872720342087109656785742998745455032615495527528983404649516673125888449052027922154410716024011138790894050400579432336731975817835500444709923169083991218229538592581711856705579686963423772375005281042360219632328681034876993624597665891965411631622000369268829769852852485682766952013990417460871510341090807551633898079081812025426369029067834065045598264478782441201233385839849907423092768604280686505630464256730745961820567256229439493509452563095577592566953567703358464417016530816518842159952842130007731296286596074474408967986432454055463868885447976771852017439410700919098885559809397561781936863805022226834536281624971342811553118181136916119309036924087315725187651147760883711507213360251674097186373766548210937624436959440453585262120843523921018347801983781770493648793265042331653112887801248427069753081959033208472514301973089521286170049415145588524389400182928711506358167745201140086422471324683773893646218091007283176860779195391375878133010524636824060123309519966256671842234963686073252194165430856578937198066650863534325763866892429284340741207423530283750691796889532696459926763675414561891159275679212303991248381135518348129422382384695269259148978267874909443344080967609865655500386622316778016164664015793677698240063110309165460429926402725316832095916712784812685506098320149093455092714484476487114450388747340203034294445629873704235361575245139607573691002729643203873074529378047420391490305486023991047559935781300086650540845312794975197411945334138610965075894939817995817397198552459243413675145003756967420966237630302318875551958473111541537533707891993002311120996445616869890626067581548140568237837208875427679847040058032947632726652479897660078982150809863827806703477590405310803702920866029251306314611220322042774624512776961777448165173134276883604335391905074999814941730589909073928986537134255254138227366627620792765187427365806697358181534528643799653224139177827766156800230379205882629787074719182516198275456711717741092681132381101203920930495003307333159590854745446259026047053532760390221289725599372096503566790596341096307972060906154866058523422377231567858239635191318080941798928021592248437765535578253050996006751498853098509298096681954661719632212200308108456707548440951392801934094712460989517320747236602224796056194753572036299069933517153283783126576827213463088938026254310685159403810892288640185778586991723760132763028584788160003163637344583825600536966051906078966034242830059823147449930393273743745342884787083081574714249757004683125807479847861306899018622445669269777051225354308115552453205362231432285658352089856082589775675855722316912288164723290791154717432033867199522461343078698847655594536706545172147781222093420299374638959149488754981972069845310249695659787483986769212365922286359166299873804296849964719429407148388491405589581711248140126636298487903602620020348758044262430011540307228844032059561887990634154416082132429761414658334444737386217415785742381976705080639386851782096625178751736016080453747408978965349136548084049695585526622077019921754142457026786256923271497464212403407082334312355973918715776475500470928184865380431573659272112302887139453094657846801406200266352294091580931782017027018337237718071973570983327467368171720551211127175529318295542013193109299999402888575393713511328782597562697555449772454253564249463619220201425438072836335726963330736994098940444194894685121628243328853591726255437748422522468954843626957774931307364862171209344689150467399684858578659043512121078293200309608832499283080156919293458276332562823396460323920183982750417928304794401765555965047714005028364063794564396780804649275185311078583029451996517943936517601448972688411042906845330348866930850063119255419574664272497179873865612799232521806358624369701624768468032289208325108655086053278505397177300352451915282362009584087813461610888799486872322250742360859178628202871466378744823952168639579843854964285359061455022515926042369726074606791545726489464570064324801528673748564870599151056425107300478005724881142752768944482368699195442186618560850023329560022567570017659492614533721813948308445768462637779870564520222935766304720348694027424803648020657396228483802890964804385446728367730190316014120041459719650043614602880717195735809525584492505813593414578172369659519190805769786003647538786248379838546608175425141432468247467502148245380467024169957744452231579594583783182409713189783341066395812852880820210455865083715908846205732547414100326557962283906669090075524799187889019056677851157296726791230592102254184165922596808548984848839752485278869400072878118558112603815607202722219002577135825992896290834587180105829785463373392528006045665853235300810694730170314708557836192522757978601311311173049004283812255852313563160603620638539911958851446158642804820812271985586932709708376007157643767218749687754531200524859992398587292199091169551958756326040376300744627735541329546575289357860796687906953378663939215594949366130919999136935054341315022982100029043811133745015806401511457844738193084356678597238681994515876519005713400575463116921762346599530702943742297880995826847976105149309600874353448512305761773584566371925225014926643828620907113534610037126562361544277832261822622110717663864856412239139682682352487624411556105076305145116525753806827476952936183369164000165082962234709149373388057871191253061985217933239705265789554454894289337872378704898973972830309985349026854463004476939299027642373717519932446239506735210382965240750036956053930994171503476545320048118584482082524962356855285867676881059470222134239532770838571807674506038534322858792929843615404757263804937227824084285918141118867473988847139119835931974937596924975918648334298468466780232846995844962756497802577119021390315386803776914754835823167252037416119820793556944995164248459396996868987045562172940652897568191597576731945307147174612533779131140371040636113066322615782072259012006099765774413778939199308071631605098744997440759565396363760740452770472513536739386073273037496416726789952086914680345873768406615257830270018081883758804860788063994372286243506575627389657939295336906626346625539409847325067444935391127473106844962558582852265655174039638674349002035287757806316301696807791110129773386791394887188736399808453162686195825680380622881773280176507421152555326580430759795491966061076963075205914124084531960595625915508680028554378485237472608037696908833984240431779504922042386438082398879570590625328078245899239159843010511671316107496519650907821835550579719698367682783485195730236157251379486932658117537354251140389370203004284099460457783813499367990763491093638670992755151100724918580284664007843467155667775885971777817129348943721148058126566343398994328808966048549854434898243760016221933738820068225655515489839240265153062759746607537051857791373937044452361667619389507507828571257141251955709419019074718190283856385503633004930458640770025741136201403368792993092601817534150203308278312080109479542767628573568622261381315910248577070247218739230741901723842474870781717579419620425524483093642995970570026768635600479119360019124950800219480299012403129930720367371221733827961943566331617106952358154100173736825150587658028455890641116346190346053491244772804109847224860669982966473566615625138458329190551565034073305766923107494097485805222578330141506397387889958298718687997017430429783856811332134697691553216263033755439968634406839293257934403535693617242104346956568316236402624770778236694731121544795182224094423129612772556230987664871176261994511703332881322063464189063277010828043946612762367393645658453307839380008630917781069422239199106760154732209109973240687768463180760410428834060270058813773386719097122994911633849547089182119580511155751658513396201541521484387144095921950519709008804425992942067709492339119925040260187052348866356325278602622297180919887755040572426362543647271648686625999790090760295701317479610096095749616381955662628388049651656630960914554384672710035716703171218178849856421445726597616806432065375066996421199390574383774499018329811557390086538998654603740211113735914912549699182547981109216469814107949441959086640600705346254928854542791853078502633196026627622286606697388189072681167556509782846080446717690898363346061611820851872989876569917387065982844163103243749188688259709752435884735274022173582576720409288387936599910505423398876366090770652909397889412482337155265533942854838584085463816402234457649068717359791243302825345654734643256859523154248353142158050435932222060535118711632592562692606199381573371492482034563494510719247870506032028882248581808740292894733952993514842948313470279687006391377500364478609450378105296515936179849397851243768912428967787031456560782374953598157278190685829818961063066890175380080559253885159947739195831399725128619334010768021713299474489905820105759379033308436387367361740285944223782511646183313032297450799910102461607880632237632684040445010836214193223774637679638131398661919490627927327229997674648697869924678914370926917830202998507238214363107509101467993859716298362456186284974486265562189464656903298851588942618920572928796522986034816391006982389019419200719826648092634364770762214750140210587409247539725327489082145876567006556602212115627922337724829864768922892719176682711165951162023715607619319892699715575988821297544390075452287419893765047997727728940073654037442174345571864516184959624095539855991599483954770176014844607156008859971524699993879078123280421069040395358541443123335717974084439587264238723849739278900085189511101282456366764897207767291829856319135520444794359007734134279494786163545276560382918456986545905507452432073243738350959883398118374641681085018676759239189077734412870324814268448901218322059030008305334361717208702159469137486432676264887345631113272198986184520533534795650769749314098518297872119715731721051145566159665983057308938365733660682075951457211781362258966458256202624453451654985367951505843308735433662763615366752357325706217429624758545983882417904101669283706056028936892284573798421146819342352621051084877474173236688849926348813323736385488951079975258664176029383404470220619147701747090815208034869424578647896601961669626370652500901272291450367042748704101059761941525254882864588260763578641522665655968779781460464148050468514762402369427117192753034104357399110642133468141742413672939341209847392449943440110450632528411462687876981197736342947359439042071854686607903400683115681221060335270793295755061377568906702587149727681228681315009631450563518839625612960813961858637078884590332247350838898503017516613533913481476168818878519531223423020041046290042036279644767111581549580174584500395411174097444843792499484780268340599029599616450607984245395541167669436526398876313660134846285347042880256783643933455505294707067407338706676956272998865427231543207299224589883197821682911631046336115552196474401129430162045835712284528689558782513080287135222822662914030859817656140203249928827797369795814297591219620219837944921576633184629897509227357376158868586242209413824529640572419394404601703587249984525645197992320454582527282158939870103289825552063976601987530416297458136784897082726702010646083088158010976876460436735315720685904879967532834317479998962864031403501118597610312229806840632151418319121167257209463067626796874750127828908756548984347909452025376445284297805730196305042487321489526692709965755240424893397472924809212658539249445620705824678489780067555422656785074634691941767418540620187684561622851167732757396774089076334175283112170633310519073460861730561968129994250877600135149943433495349191069329354181312431527588855665156141871704907454432181707550394585360562408577704595078909917652484247235901878690057712803111570329855747725419638374407396091134890972040321847299526257768455282514102504583776371832529988037337894221317582476179509549150725038067875034925597911159291295582516699085619653968939720447788591238836257085939347710188896637762460181745302524173369270582722868318691322305950272111815037624178935009739091765954289161265821949420152999394442000322690614958686850722589020253697100464673127220774293788352458926740854477691538808422330994591256610821481948546186692106336690517919329982742119258824977900202761074557074362521581181003372504143167712290545932604254900021586402526508726344934210600021844504054711664215864038508728374118364613183198973667717584070364861449572216109877874443041242936704339507705311374813027486736136017568606917796028396281277711176743736645561496308419207933025654115269626204471513357971555920803001781369982450296811143644631407889035225616227272660191244913372254333838748451757954288266828865405790412478074939096722825507374466734546553561492081905582326147398074784703351418993652017112661665826870437835049341503070275580250036629934867780023191081218352668617363235149770385193230189875567673374235381756892499604405929793852352848984831973718437787185328296617094854683416922457369908701019184853557786498590632071514398904212653825091655855353866652732643123584524884593045362237083780500433072558346034021949986073633321643909986007645803795122387740943329287034808691612400596299497055570638198667571333372950545374379043722800537447299015189425374709329484329102286499294216104307427188284974417107729825964425366228834665041734666923571054537491676156435356227970112379897648446716030093529483865886139310858898587072287798757608533553531794386880717394038094987359822194659310962794180365221548238537333282181104754044906309322699875568223866496732499398801952560308687521871887059123808447918436086324404626800589654663600123516364125747438222896339933957266179539542905952446153799278960641735399660167457426544122082966946501671835792667750954946107802543568547649863010748227750658093595161666358433085778385955872947982869161143974946437504732231848759415138431538692175882814272855435158808179832364891353649677077149605405732961950004041996269923159821936893255813595772776434543550940724917644149504243643554372027374457581172689711179020503197029959064225539033353496358502218638096405859730244847206368811671917601740757346556800476017148016176391102822098114894270132348902032324000548276498917947814399929595040504967255004487655343124428129269485147088939476127891215893041889755861105780523191404737869286028983227045990389790471712913164870022708365587044426517762256067393723195434138575649368362535368551867551491489656881473847729936792748773236587736504012411315059342802159421999022959629193771713852494175925233235629842230272436084065924824901206425055148303132108534056440195583706220274052807076247060044701041879284276205762359095032256621897253909231632815889115194330097152483478976825539105112922826905421623767947486674705921766928499902749107287297502464593033544698688914181763612916918699366669575783729641282024087153745312410784712594012814747931594981419497031046606983865615469812437093528829839013218431946975550207898789085661439334504546342498557059341924570389109227425061843713570609345932240496621599156098590222842782763761656190463329290289606098680608712664848053260749494291592058226020920096463853333355439795365872867109804181117729624862288501057961975321829511678070025306171027353696202232701877649148811468887420830491121232539792875314850313090267270506404890625518897525196954675294552242017732434600130799047614291916878135911371001060852950561644740912008432557867070923714651750519148821639605271758043895958437095823752928076987363359871889082186879664498380284716286894083237243808373300645063868582028985055533524297088026652989877690024623304674349221412684043888709837320885359389459881925519823793110035271084320432221262277339733805229075640426996482627619581746289140846845672484182055691380030105181663886229399262425919538200481031356378394084324197694438231396346278163192602164127128434051619286896086247914682369378922728790855048092655576840871317575499693502333490544778993844971183728654185814141622358500987916043076220865802268283343724305578087742626988493532059743364678179682430383760196756837634003661171396711859222395569797255661013481957415712120303761574768465059762821774017879924255459362134814231124064743827788102496927525516258870962849069861221312424214703714972024566163238134543655752132046533347588379564292493503759222311875116696285311914279647834489863191260476764242483811980579148986890426154187013626720406097193695289693741671730876111764218116947196034657283000618096704807584392173583371430998717293629133444653029102153441536732152738011080809910744418956692491994169346567347250593449829211512309000350463489154156650164340952427008568052255870041562288440546027071749785768487311542869276135107113280152244336968233144966181706873729828735256550041026737313680140751502122025910200812807661826439062885353835043175291717862688861612731395863463385844250882985980496780986093678437283914136347882221194896475499424876523314937687493495347169395579817868227437918482109548693023179480214009333786615711961680449052736120952089687931264240375925464288249968997011122783808801888265954265626215013195925539655078051778769090770077405344894448031439422258869604630800306206019808790678736033091373779854992647800481073652425452220289610438605049891039471486823682299478429239341079647872387138704043951897184563589153217198202403843225073138522850285516474633901377884973438661218041824422117591466410367390471735198641539856056434739536378939698575224458721253204811147920987093360697755265463648953041633947050661683584621541814318805413256076401301911278662969285250632727339280400448988588865697351037453164198172705923127649012500065081317821345271171685068349684484755810822857909933402775351896739676640386430974418212190712931305411916675215886561438822393496611214816325306514124556962731797301459281758343180476402300235420849465528533986390348526285951560942238444049038809222144173833883822719525672449873043464822181070412782808636164005218230580382581487790461798361837311813463264830380533353851020495996868298909456377301682141537025731826045242369434366586495442201182945088400149090196379553641624511046910922299409253426097741144775095500244505828834234949248346010761082646956151639869336452366576466228070029403171920366167988215680502570411877539775483716931205442948756913085852534828852692690759843439088878567522552122400720078750201050542875271970116948613861418410812319147861990054662410329992064897211876502241270135756228130395991376940013270587138554208683221207614221925197971776638163698401514441116031536424975614848256453163211938439359035639150571469659471879796392234660767661222914930352590049598953737577619161894708276557323388468522188426688734099410843311759997168000521606557322542717400071873137559586207478566023940858860699584056283768369066892601217575903631070731114401395774442312390735142284353809392225345698633059859306857804035425059199243161766242830008712867594858404492612230075581681440997050182083578304657282922798326028828080687435440734640967198874156979812842777943127716497708572181187214210525000975021655094118786714985214395970208469805038628448436505499501080494709803336756225799038471557912734730136277752475324418563969525894955436131854668043222499095645032866142598232429442224827567914747633735518416314120865324655289960435842106056994959310317729713698871794769683394552164152811408277982616052290945558960484483858499394183454593526018102156310496420816537309329398340164140241480259263273507457798118494355501475712554859701953285945010374918127232328899739623331241136677856458734407480008796695650111238788241434618301445611981354542037608411949374864048388638966106125293153028268567743400195315275861188524003070212480975132506921911012715065641711563489306222341287717929338729398585371588715094935037617308192977886311697948240621357287299049422943083715904908574785482025883441990533519322096520265733276418352102803331256976141241600398216677740199732480327693111915735944898824570392570592806233707781089765827744975662554889823649983985279373543070332633613519605162225513395510559477976582819556975193294547531267865235243305980779512892264494030198342313660304123494096466651269438206336502775090936148294286593120846357208980523128600314237176312948392349398689085942284231118704019481275814410557958307972623122759341772853706294908662226049326213154353465603575724542458517769639090752876829538707130004698011871731350878746315532591077242106633428087058499806896123889100199241428456662621450829812077453124344533764112284848319600809893747238725044053447053046680993993768372490720690128294774710547763810744172383135917453911083216253215815110236099272763822018995037038949034004846275537827199012681750591914834451368805018190983244836251115126834419364360780193309041577160846753259950789188827752494765958412734710678590587696396695288863361323052855149660931443086621694536476352664731793890518237511729636557191706383701153312968496778498604209540487831914994285700803148517098968509779445815865304562509468853540364005538323984236746304778818137017445017122787741625931774000146443786039343212953125550537665390778822857386478293961794323124423957422668277534828011260556851183498736377403350864994890019742481755397379321308468364057880005863437874599780205000376625195567012173383886156224718621805806697570399669600047010028466743160670627182097750010683257869245367023285733369905516070829493872835569558424304128549301800148361124045749076992121608452884479760055261365196721582495881101081098275032852751998133564897534775940529991998161383223905247463465125329022756973657539165632184109445194297955683339773901910620131602342974478630634498137595522162568333804668945565024493819422946380478046966919247755473266297244995433787630203464961718290523496426041143596201516142084770057270635204157845965967507950599324143801557597196171754989103492126432406977853832961674099805646070320353871919393104384075362877775845711167986122579284767062993388942279865072958661875647748861276628106736393558680293310101872625424429971556632973234888441199900195363312088842136086354793422595616055307795301513841247376716851133372117348874069975813723692089490153432894100457398886522226191185652012603820841349383139933108059561053709998985015708880852618966274510295657155528983386293108460275496838445912091301862634548886900167655037559913910751011444235393226853894670640758990303929796213046216467285122283000951098741859600389745707729274632233853128750828757037196218789882574425216760324303901221467370787875381872599329331147711938225324437285099560970055235926467139555768857787585587005914770737756570401977840816675116400336059860231746404560605127725505713250212391746204240661508418320905618282502404445122607145346186423013202899398187256358016504753582874322770754766007431361379022763533620808741424299241092947314233682736628020039698787896020448307775619819181328035763112676897510698842802051782715271984832045167140737225989246472388200038842545261143981601710026137931767081387395648967985102185544086687874110503180479869949999663437793829925345784511863265202433822435133630689645387744368316063359560295861340635556902841069667058509417432423550207592510657264891766724298066165785294250822013049435554931925431355474708880952478482389897178126443526874270680234465130900126078356483221327943311025847777407458241827999724783468259614693989281020359361950026801262304193393458578900626552167872945495509113381503990994350025178071726053274961387265401594954131121895972525330379529436530241783439289158382562046414978035479953710676436849186366434538045812686290360000142062942840924044353076945438650322371465329672429148615048298893903515537262299542303656491822337485935545497236898013067569876933312977920829761402308008750523629547971898932621523561285821889218490424036789429705590754772412658878740751090124586340785219359097260551263062038464402042312731110243836362940715896926490575417787518344421654517358441213102543645608079767182904293792540891738406171625262902460924100649775886744569416231938891467134519014689178851675235032535766228286557750725695951371384888934363610228067443827089945797724922830241672817200610625908914717539998909913064311966748722789784739731540128769977080731613171808770965624407156682315715637782856159503286474575948000005178153235411983609205524714505644244137608798280655945355825269241291265866226130774713896781914265273835808355122917272551799908255352761114884172323740818626520538093663510132940016328338041947713690006297433631702828027525819146084729763231707599054220832121249972733355979213095159983869598941879453116785307500046385461156679497364392728114434415016458582725004177586395162253897398727242230518940108017451859051335556720978948100866348256875081755817617957619835225060956376732804699374461786252895788422965275446563744867806563352722267677494629570411493560335905516599681195582627384953429079532283654385354201629886021084566966106572357162918140426578331748065533410703491357412230650949037726392264889645995373674260182213845863680891540423717157729049266020275332533690588630242387655030772015649495161347881735418362452338059833600450951812340173641171659814339485226008520746409507132460596357236472702241642530795043494666959238493108153818817077514076003136278530523213631153997368887787293278809907625371526998799232031773791687738962410030104799249662679842656013021949810260938859150182020869728774774574855928098615939979534005331443991765815247600414015895722360345754983731687388686565087266182717733990043997296902175778116185194262609056800900654824338810642406973899951733069937486172434172246985180935554329079274858275489800270388312049478030075934412840586430443909890731082635315613066376801381301698634932235425648740324922265698693456648759488045307956823043065431238022799006410446970159905460128152751438870594134119064760407717170025337769206781225716002909527645953915289271726957887689533065979941988901926009429225545709871535242427617121405854964752663023864611510519386216627424551757818270742034614196512328335554248712340172738486027491255215023134182267623862143238280432003310982682782833181949136636885615137092641157964226365386912180941053747823705734810102830552216387812868358368752319019290715376592991169109352236459659163409354756521973816263090170744555527600973488426422970323889219872940956365909807159994763488893886504946101326748793700187686328727934111897999956168239023970004908229203837203418527042687453762941476734523231762914046722031976105755834737904443335079856028224833053130364671842783201534032384832547714776785426137325171099358802007648266821923343221782897367903854392180788843400880851861162403598647843876547137112971998504191235810046232204940413190582979319324246557672368650089912519677790161897264003204690269402529238341499931598393871541419072057065699967595654203774545588698472860064034487750932352808620180183816591872939841986411956215317541402986564780393038910854776863528757035792339424385717759239588018140217127318028058210379013726286182609593935895768495424533870107515633251222031234574443831383311954358597100064431376942545615331942098248111429896532893616291138272344851642015995389224122145662090017251690467227938181252322491642777027828344262785150134836091135989074547285900618378377774402664304194022280239400522815945853425225039403167210438197559062890474374671627975958081341791475481360569441247459273611152265663332018105391444583602646516081486397505490728656860339415915235908454725797732235529280858006565340408811538281573774637446610728475160494976612097543581161708864430329998800544143252947531475718025158392791264938167237827462357034695298635835493825947054664050114047548631334639766356771441638882635671996576206549127876961324538354464697178095085752032153985919304524082206169712388757395906317871652359679637904058829201595261936083171563760836491082156640088843988718445888664676808011109608441183882355913711954067491552125530314269063416948828819205392911463004473034366729367815766351065924388393213951499191908670449695938243350698622658096927379271208842841777063327827264319069137783630916894596707907411154969353715979531881956671661407292367862212271808260108811285455151112139322864617471861516947012160773011442692745728535763715459897367401469641181733911904170076513684254138676140064761623253165291056166050839215404105186793579565171168502074138218245461404094121952706370173712376001469196958935347088337407093485485480861116692809764702473655238161462570499393531889672614818527492666742822802978006213939083766510945560259025830334291528800704557946008302696268735059617213714497720529789991603367337141029644056620372891194371741121195800707944037405054026381475897865729851376765743991659183628952922555790379186139119539704931734375299804275815611394191545525946805988045626282240427600752857712488699902337566500847372685875425581750871861691294494044046695105761160887438203159738780240733589223707715995738773592113714271509130858088883648189381341637184273324365310951810812902251083002341263395707290145066160479883058072714740937598716626697366640093688814512593881474400415182948197957201286400964389289542524747261035692937545965000674821693225468528306789599609300910953896033642178906932841624801335145640781902972741505213370721064228097817940827894934485564064881688245975703885258842433378391607503945060252479454795001657951553280093373536066495057823002331248127095479603077022689686662648695528911799643833186306673190463529481343266310789083249027947647540158200983125379746920435023585813729167762133802054362884533418939419902744985398676281673097770275699235776653158644424744850550820101373263456913733438295429409068271916545298136696969406408019235581512847769941080339963044449666816901754161799670038113544822352913215921212088642570730156998405479884343331607304234907864474627243932494002511461379802114704194664128170812277003907233899353009200559031767937127076185179120577514787799128116844197971857367883895602324388716722645193943482765045035284698392995490951445747013973343907007124042959368053806485270726253992017909826099282836493807108801345789310242543050420920248264231038349636775119955841347602251497231306838640316396952367951692809257935079776600238397102169013720901571264497514107291052405477505785697712183862189224909167520841778451634332161362373203660051628145101045833658289159326179424235173467776602557387754613791732727273586904419001641006081842971956733922666854226078980244729646618782790028033756177923143715402561092648362810634961490823951590139509382653911940606259947090746155062570519667703785565367157347235173264198909784518213915069679012545574996641493579780103196312427654608078209101917511939044800824602363764239363818282882974196575225543272170502056953194282997649152952481273152332636562637256778674885116016796893135757384983135931538778935705192075747969829283058148132237110839219551957276513975412890596703198059811732329259210844964651775537762467523856856995091538442410098016635187223102305177862073905964985079275449331819983855043239797020957155376104474458367814317479584157844034515426906012972222992645365669917195128725907539011241134624607963564584471861311547084194794339164271684442220781686990639746275445664931402911075896180699151181483752931796711292435492350741139435902774725242290406170176083980251083308038680885393466170511242547694346410558045996051641808770944042073662927623332984893641500239534156268323669279708623876942290461627673056396035590514137396443997273165855073607671835059587637575135265315371384413301034941545447229092328411210595094570180530177306978912221836764679507629313488810741511459215655663756462472703505387098895509525318355555389538261043350923177591912932505255626807112761344680148197972852732705034673598080855865127808194891752072281378983024294997148678786637444011571757665621801086566374558585038124212228582465981299370103311166015929659849211340693629446582051897136823647613496641293174108180597556317188901963653806175067201634690682858175879834855409237216328003526180807124129845225922245451717608561637734993283136861535212292039698705582220482920113857002201994346319477188800952378170736149893338725886716268486092093768151185216295692335252438957645637271718998307772362206265101905292219187905794245610797566290356297346582567347666150223673972923835275291141856996179837511763327933450544314839946255795839210487272060963039386095360804540734666195701708677569769743394416032101007877638047738687748171048559185415829459295295971058698026390402883732620592583437156429439388027236714983780967034166363794434620664977308714513498427448847350319056038509503991834430522420103656383414997025919452250994757232870558397798252792898081917103791482911169637427002905857121517066924005415470622134257367865606061328791368149888751471814568352427213125653636690970766137611980436455216088590349037533043870218368394077909574976686197822886924984359031340313720889463707840856594193535041067366471774062093505138971570950060465886113540284526760072910924536921172323688918912644594685422870264225748427005305822184590531987156109844305914286871384817297332043901069188533568144752783572913337335739928578651380111530421845141106604589140480510988072163582996919631840307690924616362547710228868764635387522154536058727310946811952767862675962047650503386485918166407870551942941051723126724068997906774220668315782273367868368602745847488622922727213481808636112873445609515549756029555177474306373731878466109466852239541240356095684090695009276615987742173477373291164986734516477919072953885267787853883930148166657104466289804638946475045210794283140461192001680008152829111696281578565221130148147570601784038834247213506695284942129236068993743931881253307599012892086536509300295121957883310686022610230375428239004049310495111008526180427758700715530189601992791954808430729934326911557175241878819929310141638549520385423167585315730769120830582349139328078037171054571301475224560570063597097005550085838553092426889106661291496551647774939689093655308201616265227416699252036796217583773871159563735236253565466643720084284960934574730727958360817274974920031097325926331885049125608421704614119894748115388689107895182173806399433274190965289355452493871683696611804625387193364354632277387129032903951581435831969406960104279250478658877907477448447707016886713239315431792481624585330418829060784155465823644651796710163729708759559966536696712394134402747692947514246183620370285837464257689442890316815294827744054670147362972623305215037522114587757834044546860186112153426425794403949047399633938437303414503435649125763214425453336920022172695248153080595811191274342287190219592797230875429569538987490828918076675376510330313288025093331532252031994820595502183961741402260967737826789099236361524787894887676826076511805737229191348540382707328776205854480471452368857173821864314682026942921679160746857677546250677111463918138232220757314991041343458411228899282247634183370977722909342568561060930497485442534290631198027112047136570732949841441808726941212340020677357925171468783538361702108272509070319333355877110619264715540358907488604065018775553502818580462302983138734664989874075656495031630534134769912887691756362657551212836642715489676735486025704033012121508221281898096848407989814131953082793509817355236497852063160117158236955982466114979631608157145391773458904576383761345424836667730466637167480333852421772710241096438491900532380133543563317474558623545951000209386171973513675241401703345711281289008574983600789255576870980232681278100919949030814956057024672490704390312568171637532732137598609694370216762839610237719598252533596404988982626987014265214701174298484968398547755409733500368597841701837786103766355511483919653220631791624991063937724561352780884250133226481271778001330833087078778563660122886656504162675144984462238875628082499029150956264835946918647643475252893318276906008066501432424414019907099006465671030639266186738981407095231712773779062128393635582042434205289384145639899980935367410215826786620622874375503884508721474552432934502675167575048357679283788651361210571933120569799992692215233984921908042637304323780741358925534574313672308624994076337521582344235281382221626937828079006054359878040421258684135482435857834942044933745016761706639949853244047737544011756222428817788843486848982909678120373160268524976803304452259483450034008948065133396502143586811991807622174415926546607195584454399016513769272044246189364705906501234182662716120879401886750263919276214581394398966333241272930520760414370240643937972558521523074889499083356069986614503543619294847669519589442718375104449980279581631503758238087479060194084749753020330028530709525844311218493563216789823394411170109842652464065409283734449766268027933097597200103131982841299904570614400175713113883159718162674395988475819468270178291896981205480425535437610371106200376473051451935400306332250144361861473960953868916813055875970862438249253808716751265804006808532021025017705802911518449203588511045012340140355133936332608315051784662356885199335395811780929330841506074819328445589407617855519335930167758794553085809067139549359354165027617416885483761296373767691445613865275546289830845523335581130602142057468082557936855246361523081295700969255054278105647322333915009320580346873094485854158165850995318867313700726346540707983516240373539796459102449242922777346081964450168991518767554407621929417401418728228310014533545168419286744131586708008144165938300963396564834882397192731417879015312965925895899544670394791848129579120586832357726671346876873809983144054518245204071111376926799284303760796636947153491736781826885432278086279440726547706155724864657947535851160692563931916353058061595081705550434591415225708775562657421930019770112608548658595686306783094265715407941905766428752191990187760057059973135798858760326537661695360903901849842034088791064684312994580252326165359857641276784458798088198739265203165604865270762650496672029577332665657519532487764762374998851836116312958940632937178028367343201166462818519614268337084223231128547522323370544261620295284039833945625641987485605705160535388576371696798139004539999539043537934758939614806367262239883024063856444614419846761428062330578934422140630758656780505827246697202973426880061432021145334055888022161802580580358381568830198756134356234244681342119660705533595129042446621136269412735326431391601433120009276825805682060328572304425247375276653535940432473301086082548663026459558981103864833098400230153684758144255566865209194998804628521539826939721777295261248185838216941655239575334029859464451654448825113028730539767427427622765817522329362548400700495530315625905125815869430189379267294618301643952168428353286149482491978600199750179059916015057682249538907918442333774446795932432031792647785210474354305281426081714627208246708141488473545539889234534960738814548590164871222720369231175286472626933126223029413801467374180415062495909898894303738181446630535155850116811322445212664168522239721640623591794828841353135076812898240807728507632330645650495201943486533110781806044942686971617342057749849875563286998262616248163748015147260539883796390385536866117319605801928526237134870757302324286294555709518675483156849925204610490492948465727077459194107861982971629570047688843158786784600721793023900716032620800056376052478335390407497100981310469369829173154446799597744823686434514034534485491721693127566242930324077310929829755667583687855166809122389743500944597318372601503265034182789010053335546171243311348570004609212503543886192753567930627914475710555523217959443141193190532134628847333069729757836588419757084214339535480617207520216259993032583152926424634756324067257574721280900857967011556299596356736153529562903921396668105172574278818727233488106767741278395275538288841073867210185130009784353688256427062363441322291332573393519801910694162417813660899869221836198833927337774045099046554264922335304860960456540876316736000459534978805185360612785623339818188176327213707206187236223079897338703147857794490401103370420583658137337584353705833849104624778248438305096396982183358354523454738405609753944132964596419466079746004492962707052987410680384942576630346552175661301123508962737192236921759424964781394832909941755443255179204799283404514947429095538102781926861059826448691347908734295950793070371962052494089984186637781810521546600582911955259602136869021901514061048178763504816142577999096322291714534112185797319103590521523772562370792053749706303041201011180784746587462220579635508077360843169597638514710292258843175587614679122748657158785356806889305138745459374758336280098539849405706190297536422205491339670149546217654051385983754821200480347200543734832535941037866883350665583553145218988409563269732883809020103578036856447657237748499656275419069275020274164326586759269715354635657850715250255955489574512918336336479833356372315136863432647094587541177636136664711034851375163608395763616475735361929812176205225617006351611640794475824410215323619546017060172960565975075519334726433010692823463141586636450761666157070276112365213453545111629025204138461077847096879344335957420735537388388185061274426173598847208802298383433977165642634903991405759763166067320634070342828922646451874825540702744539926289607931404592287070419060009791616010782545102900861702631079367266603779835741627928534766152312357763486289177055377639359266498331200706067983873568827955220162297263920636984154033732911307104278768005915833557365608539153233130551305852473994249466752494155840321582655997808994054032668145780685773369476242915578128130303777852001252686777624500733280657059731300229000169829165957604145015345526960321509893402362458505828073384472783396398266165842395162408663171457558453017944619861257079581530091190168782293308484040059581339984925851463824824000753116406691687340331742014930939578362049775432753837287949080738349910960369724683138421621257936305459795351596681111547033766969743953891829024758026464959771179288881314362249046830985527692011651893016373578294832182242433403386210740430992993224464751239019404625565213936205241713565281676772083284639150692158502769006189186197449711099955278051190875640662344193099527001071694391089525835520494889729629819641655814318410129279776346418959554551315251715411483849634844859510377825000304885160034263712336379490824468240189969707316471248472677194654342045764642060078324432811484605799479326175027389807235166219434389395953278126342251162421499040084827491148967174335729546550363116566193629166819214370974846777293322572638754472205605293559776905569952037281261667182550709145123552200729723636440604319947377775422872192337883015518749116903565966432198932000991821957737470766523860823922804848919843493100699918301741166872849572725659435771911918868144788647280114619722495149814419865932004339631878976450866737113133897509869650310744747219362937833652215053638114679153465678247108482066867289464683994640806695776863411712971427018018726226167506998362466878309874864975523749817089398447220272023813784606503283176440015057461836349509739592060049377187138881977796918107304218199199888039217990962503726249967035731157044110606913139996498982058784189724239732675415564657958020208574624259088487249980371306381901804612776167524543282107995505152571638595597167814310800099495215951595640683650194243120377990547708957764872419164896478445115497581386358887767114166569188256395497326811343237150855663901243898153813950483036219406173669668731140435437945209430072919001090261124478050639020456294196632412827500285030807604424358804952039509526020309075582366766679700076551420157533485024933334053329599678905426368369302178244932564931192470633342018774692146377661410727964411402412857514835672377181895068272996335949570621261565348743572239719709898409475357323300548669919897056934028439782823164100011711332687260321711761305042764505039062226793479524438688449883610969185231629551482917821958326162300358596914347052689559656638905191741808277597734174310117166223585605299332585618766708559707395481420110460527489625867933327109498485076609958124613500435297129777407633956961617301292938044145085158133012003042625448148707565120252174315607576973037037747228747792075547614950820597157659402331169631351685645289051249303373230606015171587841982177671203954852928826679064638914269535599650391049747690349552125339049011608507085707387313462512977821821695118151557885867246961406021205129483923422252876931278386835746344755538670363574454304535238385812199529951176554356493772031261972304810057462691227518138589523587879090304578593281161514650989879372177746059320255193367777574551195568562732803536711179988734746789304470940182859835218306202987810229440124824585284484570149730473057116513217993618072446304647750954801184621038616935480287926612334780741645463946792488929346479106602914627750514497198002943326289995000011629409871961381087994638491052850105206694647008757720820285439972159476522175228929188133957260770254808138262881859969920437469257562413342614917070524227724315965932034290191892330217242450092068925137048178374185346012971016400132836169396507820670949221177318460386892141884899401630755888740935038903988964131890816447426527130673919349799405874784047747702096851113539596697505176563057612681478209357567122080234278848007892885838964036213474069490557036414416225128761740454953299682641777912026855546575619541463810500446053340492198796681526560983306284148924038202443510079263307856964083043244941750607499478739636459821140563911051238219260728581108409184999613747323462318201762880343718849989919542297930137882574440288380149062105510204123687166755013851062183165154173074092454236471428106824081915028654056812683350946777164339665886798921210528045741579604276227512291256039381792958809026506940646952600567313271234832876713786381386073385923372086390378167350787676303380096792625620066974695907410719046759049125074520178936812041865788167843597647901442165679103857149879631734732208180519186278038930570287015395298819846595309236871213685934714377655172445404255295817611385385799301508420766819951025060620115557530450562872154406844406595053521595432691859179495509801896673770026941225267211645716275745694800192246019542394408320218225610187478764394325207987633928709258899464568317951337773599867577141296230473031902679595777145978506135048221746090788914063247103262663299956545398207400870496677213007124411071171219818325049667839932921485752911534459893739826297227356426532872650770698861393389139196596879916175432019815131837405324125776358856433789418886661215206093927908734525343881376441405247925227601392832956352084775350114883988086988603317564724111507757165713247982062360445001316079588221509884836834698040123604971275134045007807440098281844803428729030177533982029518757797524121857360949526007241599372160261488389533610461750577710390424350905627859760288207888098871960146458245525977155079691024390499398956667621360413233019376435815111573851493436333685533633074344337216007126462189889507653586652112450660927203241164579900852244010340104395042694450065004253866148004307480080470150203046499045510439450076283830362496912143531789066130171069907977084371750843872309579671334720123113874747341285473848483879418605034953795922531793944865379111236544652883254340126702859718019548141612089359719845181800593379674258374827796548668556808703690436965855316209282631161215645465362481153129503569983569304966022582607653826762961128672359173683521703347543659164783141565467984742541864348435719024443970556660464585989704803633480325851799248143069567510046108075468903863137253505319856249936032163835213951676170389808959362565315526064337922249443047077445228882616202312185113675528957792875410422420187429779177293130828008550343036678857945817049233700956426319307125756490701402251388691937546748574569140969313890846723898982550027605530156153730650125927099562618084224697295001742816358139239121795401167103683763823739916182419991289825414391105946174894140493560878251532906073122235232382771553253052280503578564236198201523291024902464473218093655627778463214636612208615590575619037344106597369038520342136821612388425643913364552113862273743821375432322213589778946029825999581447565356749937880400225604101416732787537762624199049753693172400347587686875898078208391207945196585830168409880442406139115870411099023358053581264374382172797696274067489873202055628959614160773805482144609965523848140955031923518575930270954342345184952967174665250221913422448881385561701695751676349483541303890406383093115512822021254866709446147512434077116623582500288214894677100813397089948292082974004239913321408162067746112878327255752289267962490437890692368452043324226419281471408172029406970353216761084506509553331691077651354785420234665835026682387500789345104121276737249171661700162633240952944523352165157254352580155754454882506226712279156667365119734929738366153356738521691721016582545752837004923643954466171550082834525377084540980995973100480429630013295786855080639395564702188005256198341586882022071619744271835029617633314995554687667963857007823689228484235603054611348127870411232516220792073165278728433406122819567716451149706547369040205777539089554585826048897812951591702376653549726682446957233700724870163473408558687980687997056322518092166062720689241718374205624143343370459675062135913188395008996459396139143550274610040549904378948768075317072615292595909238538681819932410234389926926284097399844438939983845884439045135543138375479592279661973568810046904203349968382713383031552664203344996159736788000336058890512839451173323853065825028665461421672695889909651042794058086847512209686876432389431147005935990027926066031836621071285777165994569897996509961514139241123702633277057353535897393190196951020204187746618334546698514043717861005350323677201425096145907887160105965124766613983433819578979725742202042990837144739543182713488439509168981458856689423446089728619264700793731507006431523684274960908849678650828703314808658167678425560653182282952235662722747454558552361992540633833509490630848538638883349948449564913131789156544582420560086937906823522923092228736935904245194394444154928820857054790900558728226088943715403139617124310413163532154250234363255788316318459254291010041840265546800237684569475907387124552529775236765597944943025550229436936233546913641668477074398995705631039258007110901996149350440311884080797460556170937396018996639972590162859788498647792246922220031355573057823910297433956403651523372182502855490977403441722372326823119147600621233964259530931300753576272915752143182160696927870212607993422991576828599563891071042874670711736125080515955629242308235617162231593499178316321896577002778674515312115989085357639436046513039620820192182338479871338244807912017703594578036429101568824210660092939934423976733359226173801748747214627321772276594269391639586494492205632165616499040635404520093900284335941925255310716064291252750156856082280516173029826424617003595171469910278972817330015233444854477699184209584834050192045976381082925993981543513215237464581159678035014093366605932877623196278654367807868516178546212609418876256073457933689332946747268534842124190939838499011502784320007500200297336172714540793439330775618283263976195041457639041523470201806991002804722936474513464679043986120414303633863712514304424945423927916826106923414207880486548897514433748292009796930115898061295636508885266934761386308693224883809505870586866513850447841465961522891020746906172139100181307525603448950353281528356120776364564740767110029345723302843715406345054869423919240391001691986431826425691586389111185403886900515147354123882239877582156862813453649920342891170421279259385295740735683028450588414452108202832225088854377139031216821233710110969722823929678433983728486650248096600071830741195101018857413747680723909025921068170605810112042523866220525343804485402547431114347806865899150813775202232765624200167958146406207996219857777219414861095156749616378362867930365123411496509976129379102319501929861587602754882876157053199373851668277664938432377029380526861931566461337890052073849704452257269515490191755069205783087426458185570324629528430989056792990030355191436464369081898437298973103320676625931773598143874466657612313120724533091288179496783692031960406764898822681823067714887980845111369145059770800436864143712405254880794168926217125175238484156323312446710382826660935925680283503638541304052695667446820150383301469957766572882167576342099641847145322536744136461673733414920122041650114178007433951138141226597988082846145563853043963192729096751263349750666514537170669639026748607536906846337000790762647429550320504969882670192890112617975066654568595090422740813242440763530722754162096893347167444382310577702457931248826945579918689543037017512720388310240001041631407974199806136542777495882929899606110282651135169623585516323332798940229538442769073367350464358925932753536624655631624407925511998898890103533950329497090137441596047022890480679282980631174906583294304421020756214389102757035963411249908561742647782527949448474742142878365533708395360413836629173875801968512977409523068167498645420954088521606893791722707858772536137888673041502549059950857544093223129224176019585724866243432904205612976273891263799115663265827773762432487470561661868589072708624095540455995776707039589848161224703832941474179414860485604956956179730795807810047813234894237724739525473273951375766067146372834147871088766000044887842134022009322664659730695479857974056044874019604343720311869520630105810623042660759380042230588895335144831300995953047637961359475641160837175217687704551510440533654399511954367313053107971045694258008928009882125025007072572875484935353197092301798078799354823457796374267025879369250187293892617639127467705915176101036324326235504551599586902637582644645481798241279345137995505904886938943291233675952488188696762715859440893025536166163303244880884599932978733902220788175146102163228247380943756582319161567145094158988797712541199581225537469441264931865704423170360705639924996326397780958178852081341931611881365865362989961075832959353067295677073771239720346204339152805611784060837447004478278091033927084583521360806222108010758535083096021663922040576334577067002968406787721918438856199962556095619861428871355323484316838302087176634183967234429387980697852633826384168025743624062221956523810956914634594273627503808813739006164656399045460167972981437193880074401655815974836588518219931750062946949829792935453399140483152592343159635113169157130894593375804556234786872991601386249420597412277797545541302733804454181630230988301705517982356247123094122022705415920936881611661952068562987629876783771755665504592433390032635803822875792895155938638079435154866158808451189359347650549736014876747515013831865066272638006140957465698559099933826259726526564979686476674051120997853130135633789755408201423483201993970513554251432913585304612568773203443295926328656250012681215349323369090997053113052560362347970691189852385526289952167515211456595480043720290086207502952315969179840412948366492209213682786706882402689398572522464784979948856119434279122014268096248968336206935515112991221223450849727067086091173621905081485660611166587915668499608863374165069086455548185529935018569145942697136149494797740686232785731367672864247956511563275345195848102751563084258427753657890826377711383351747586327697654816365645918835484971218612425052872206575765309630073695743480731266122547421401393140312526805259913670590922651109513898196191338786705664187939417326801219120267083094540662620530783878630665766323592562195730159842932494183459378168463967357594751866915575520156513764856613111321323152047572813760907856120010322898799805581566731705001319976824832982822562693804397144511366279517278739292844667041926812610979245644024214313547470867957874655358529150227620415932035511468028653506285894671536589970046704524238270004140751982758620731649454901661480219407084667557515877147225879957597453179054595963123440386539081886916663709417946169045765217608054734279298409951173197253109927642596216993331716327699590994340991773721734957013848662211115566537528291330891456764171747048228326180051629806446418231828459821495798251393482645181928524188500393361742418687464171491555701915781742295252537957726637305383933157244204357846547915428574755890420615690723675841794392425452556775973419410456491595029350520165033925614733256091642025327869299195122082664624268702180528685622847127470812419263802532526316965835663013092830896848535586199258903701646539599381580318164552981006661774708242910888836280272192846205073131601729641145889810464028411405612290487891885750382288410880840889611249970553337157004096715671842643217830272299630952586857311408872391734812512360410893017794875295602401555421111828545880544421052016456406893101796128643488120383663370251711889925014267514312706430496691618697386118262350912069083340067361222760874814604865760129353723515944929407715609628870360469872749931884931978613205409514778774304079191824609902017101129970005464278810764186684855924517379011234834597684428305410271249570939510270435215508600759611744028561276979092012394610060631680947453623372405666560530734475813730787313511660166454210755945233288352915609414670662620540630702237878771819601814488921932694497637266204110835537703904872679062928533147733617029383760387231738693440198328298618268460998246226983084955569742289729024497409594333984733175737101092585244440933775873957853201837235846119302117604217756228442069515328555423980462475339997945492279585794997834340094415769901274348251195526273897993585749347014858380808808813502905634666787332409742877182200652725072639355857506128643835538395130085440310748356427946819423071990822622860673815602565550237367780486689990631165191786531206557348195327594901931977732144345767926374274059897107690102160143842976241131624331442349843118755396930726121138187777740661311518428364921792275808491053536946423495840011105523357916486202202942548335422684832949934344102843337559939932871970648432750650937243032566162662673038664573577268510532518400032731387329533050071455015459418840331429761423693418301113666363876506538493858282835383202003536199844897100431634912272405720998921992553163556337403941684187114591134520660187941950362586355331447679275004472919900296605238700231001829265099337993478277613442983372081605071670894193181788614414211317923547295424802566485086437923488876742385826478380759508318485072308212853645981337880324006876467836264179478605755424266670227744724585716505587661723919108535926999880790775473603023110781472462615878986553759314551883639008156307058066357564618786958085436259431751154640782627344759757491770276285748884497447040486880792432634237162500673997870688040293831493839177686885348290859737472179582192633863011476257056579901291020168213743053695848921012959541607441026744377826149650507606224537752860301738472147140988435627358159442394361265659595108423241151728487383320125113462391772615861030395708551375171266403801609264012959867907488275139710069095551179165999968851263083467321093158109550766363229687041738440285098412793195359493493461918576666457697583317105360291245573154146095961778805543044837110171195811288757173367935142886888116441859855340034882460098844026562312864441951058146248776322580930464496699653314210380282826888656257481641124840802148255606647696063435694863308183220734351007805217596883073070345032624421662812614371210903401497421207549304141229399941483818093352642991008889951676188672983535626911083476624788245643325961792886811039675422761823858370606560055033425339025138382452197033095890656113627272676202605332050843620022623538413090282036119477924393967854366932847565135026080906879673578288541236468255137553325256490213032944312591525422858721998783711671560955400502960034226012331544581917821707288882316586626338678342211041437925693452037528112642207457904014485993489354550224821434349670473043293293676819878764421882862680286297142496261646867072690643405180586962757875119031787895981699571122524155390946951882292833285105201562751178684022729297400804352322376081330824980944485450597550372606692182081585825575488639834497391605349033526962516361217766184708190970940413019211445002950697840586839329012690797963516945182483587908714070997946083050055021266565102090918659680081853391414114186836490627622444478095448347822404160211125598852176431553345280843067419541203616835989170301604016968126443627278189507024331150424554375405319231959009303398396612014889441232323363078208275403743703276050295023801055416845257565036318971392262330254624193024540957119606476527142777383511187243664884172835682996067102758417721124242110055693737933103912856739314920305341112059449790827261014084974867066236352388073546467889810753245290413169257420159801776482433301286668518666069003844002179838561521745547054448543740720590083951493155194942348289863091300795894661901290850617522387444902891435122108362892057277945981527313439848236336128440281079937430378557136561236596252979951902520439523985981738959004910481169798689427740746189883747892676595716757096102817316618285065652731061848846295370417937369342235185774326275141467860905579804952830745085326404730785703496314707935894730152081289417584713115640275855542677572884953879518364095497513386221345919781058988267051271943014379241709315220384277477756877853205825104298308916908363273658975001897545636431569996863288584228984675097952392553776663813563068670387333425689545243342657254627364908328169196736108456384125832728507662820005665925648026754287430626118267104918568530737682321597978383710130577096756374001394558220172723375909294728407201638397879292349833219160140080269129938539457805356620489142645871171122249416576028008853697415863701120929919388529214017736139839580547336974897405144486923988659194898064414486869093101344070195748423102588296138707610895655263420592034935464185414458556827249979454504786824991460521070529487725055626099338646010786837152283508811858771656986624637744252009791376625981822733116825085900825394584722446034080297732100480538619680635327390440874812257668259648620668663376056692533129380489223927205238587826508420927371672412732284071237828955507961959006772770052463916764903599911315856090931141794004361707136158084087910715473446640457238952411078302851512632768824041111213679413273749998948146349283555980110352181417027002938880922863858482170992312181208717702086609648159958749401506669706551586516185871720195209828602020905513379434736226564232494557082573327688995899267701762942305628783486545546677049063995379341600394997662746412131036157305067569862938284229297363810525588364720081103794179851312008746135728160183044518117582744380281591975088987709005948979013629538363152697371062960724587074129377560471455115159603752211166364601452700447971003353301538236826589239487189976645138142492834768892767156247887748273662484291746316919090609296939067372303555356998333175826510290804693499188498479636889258465872893516551525648150479573451609261924361148406687356639383491153507664734557920107907593471731041583019105016640605894370276713842843458016543447839640015037966844839329589144535065411002451140953308970902383176657075915757308923960402032537025158023737183604898469448067734241201097180910977763588427779598251190788895159980929758414212872984459162157391980197286648055280849081682906908902286681518094340309630435048726572779557801556864601636471796783695183958426121011394749462886516887253348175802430873178816089803217045837261425283960076145158507332589771325372298546371736765230009169637254495135196907116600299575515804019612387801524770852424902413857924306063854345874159055170339635776694688524632948223563491955245437017308313210911441912721750806160139864544628942061316003252433091478135024424053867002292970146633023060751659632884550840751045167620470848591508287816521717394212606847510715283798578967056289726430471721412922431310167504440334470611578978535977402707751083909806656643551576494631061703191703255604815451114345992043445251409276620427002201334071397355305793565728102370126408661443910987995075820243583089112726579109622359640827364570082430227332177129103158178049290770334557407933553910692874354943582801246783472769019588120133156392529899610475924531116372941994402793478514960876075267381458825113868465968744032498200590772955739762421349311629224306116162353264443723943220071638083488973650725355679148543403854878367626056014792946412366182763122849582833231056434370945520586793207499577010142163484170102922725296315800439593850768753500703547375060245307929382342461106644233946873638608848859168270384967142872025502298686179287519091059265695759916517847931371281954649925351244156363555468015474216700850763525096603160149153270407429501663222817198397408308102658647157245649945814189544621662087124881745479201770429864766983548673263988627688507556846877603371527343401991505792634337084330372022482668831540927258720386573745711869819569075041495686035949855686579342824353465519329269339549823479476736624195751295583059356249441930866161931301554584359019058997669636193103790015674756851392531308377131901757009476809285486566173921173135988116746322179553098213085504304327438814769382528737484254003171184746212410495804124041284743370106107969511643327291859524915147522507021361815494707367918306019794178670689862887685062461408756720248498649537020451256193591489986483148153000589412438968586389603409951656580188229590745789008163110555286408160645167074647286851834895953576307164150163191423738388157146770912286699960846319233989176315837654989425085035669202507944060357361684565181894879289304472228489663137133293775732687103856829171349515569610231912491680039644938648403230124992494638370010166020525082405709403882433155194414073087910368637657571580554779659682874496462634293058826286781341543474895518149455105883692841844686165587421577677952858919391247855332440487439763128225634275401980231117276705732882166144148438407905024757133536789003299531536442947565252565226938677955266670325799658283954427359657160831893437676619472453068932259849055787430107681180737812838193390958735577403484473890730421386647557354067738771338641799519234467749990588731008936005959917561841513067454463276262613721543414963921633896000309177167290667979264338817892516020541999776820351794880549628850201257149971463855532660870807225723269501730921886317407687144163709922776656010173908017606636701309539520690332244037566610835546758870043849661317934912660171749195399187607458431871985865199673227339377631889952885414523621107732319484973298863484666614747290132794710969470299897459450855504137392769146816598391215898084221803671267216297735084479381069128145508112776091894187056718058197724602480252358475551868099845213749059063314721104281882362189178228798563979009993542358966292412586917676791561886725550466738462263143220421204690570274517419908680088470194732886498343393363506017237178168351946822964000083703151680380804131337811585090308549776006551114940444794855404102789859475733717357329759609107282990504152243242623807844854552622183277757672557949927657355851891041924589700186078392742061001863674294240239011092305066192040229584981562642195193883745777841050779935208961897061134984984691426796229936533291868909684565687058445240618307293147766813268740555702636426477769973870672629525280757137387544048196177618662958351832476629201791169889566250424580389626869206381857876795893534599387779635485697239730561186924913830605540051931874776908894422888291935158711364020442822967029873535878694580078381195210881891067726847681634196339806712921391144282724134453038896256717336381851958657828642127429353204643248581764370249191461444498933753251907034764004882698535379721174573947246202529328248433419854906440805085380228032103923025157435523820513269076660580729259311237129192307163973770871815607966930144694085683333006051511307875008421552908274436723153439602734820714126550569456061090725895096313721927542633178711592783965448410270927555689441986537091789624229196660882904734289054981168839503409830812029092461090949456198183085781212702890858910357742099210319170238753546730088049006471638717335158291862701644923330165301825113692329588697208206988972084144588308712734101338229842811124097653930397779317965064689523460257845177523145484836467188210381694125443198172651128508679807919601242371859835465831888127849197671651607275991364864760788283789824309580095617359285725816993169471209729956495428252891215373121135710322995880055261150235164970648705493481963316980768871603008350155983495865352269716552571173584820939841541907566334190624733425453001051816163148373645559571985061630871144185607996632664030936004911851953609407576858359413286352594966827417889477465377796198183886245739846670598973877721976936628597379576819558610576790221346333678634898357522589735328082522409260847587655866517457262806687306613109563379996434187037611343987037077742017328477879946186168144804216132791123277024338311346583670959977583694236736066050736325116197975807696067076435876295282758183987147536731722550066576585745550752188261450352923681647634439807302572461291259421739691890377491336019557991526392274673655915805125641096103731307964876770210692204807110736616039075613553464301942180940319482574074200753240801146194576987392511209779230096472716528617396859361714427821658429842173000379959735403927381360075846589291808980237021415461094395659914595990263513373587964863185349307456555391960714789756938752831093179100935941914529241195091505624165064883000475581129442193586291589310105698591613638556224847450576135783453550856255308496364803512333708733637692364282012555710328889536497951030015329548579620136721525241842438964092393340965219270448968260801977423307721929175263434502754748861497963322433772264354339996209960244158639386615776551784146600915851431532537695146111141660773884840224979993405759026745125199093974532773075774208118116293483667030755366673609925299581391013471673019585523979086273790607888095204933756361852273811857130435821640555284805792805835589689241084846277123354046299704425743786469625034551252278506930263819604226354503115421839617350127103323252581701168551829974113826417535401738894395324737874950557946733212374632762026789358434926162569324520743461719959769711896797254195974655010756530162986766416073026092325532225191304415714861022666235509607961820811246476432478360202511899960159024783144725503622522375871716718041061338103289367205217227304615883796863322556064877129977849196883467974007326851882070210305564897133226174372102325588608580519593857529226136110802805746699249900914632213391841168363012552120639941492695282857532926881230420132600756303207385552855343179162692378574740355964841756568015341843953339353822959399924788396803277117233969706634961049343039271294918986635809530974913312029174209906240025768216396522413670069615569703052537808571647955103272986666178695990205123713206935746945207192275247479585913791101931534151293290825692206470377772369247347225962937276575362164110094201021046545375379317295256736922859075579785586216834280901858751665131533560681212345101572106925447220247699544261465368136575767080010289113363449665143996785365696578819553559833469853909507950179325578399796642665429359897346927396987731591711218031548347574629015446294956444768770014890704505728511618591575069098494855802126879106988468247032887720178466110154517306410628715165622022016970936044872311618789880540662281313782554961688558951144850354758182360553920875210820378894615760347198578737733110050552206247993865653734860657049235382012284496173311456416892255301332092704934606187974242930109203277627753425016747326874429531178797680980327435223624882279523623218762010762529760825489065891888004635082938917009574666196900939562461195365292619982308306040736034930727617810825076906416717975128311386853583378841976147278186880117430389358000451235487346699320843670725737456806664968759114826722922027321107351456482459431715576569925416773984637253549800639948315678530407427950533731179386467442769062849162502975097369155412747307333361870825369742119561054396549696250299667940603210546851176424091211538942132359645941023518647449147109197562280957805296104244646145968941940024978907935743356607322910882424644674493615764587166823965271152359867995667190261903811074158744198434837384085526640344459153967237923284634040932908301298802517208565468016584716228293785764357850392262051641003453022255692696880391892784339442581329821373894443558153006949511104845817167645547301202847004944041163781561635177561896257357883090237493509424254159851096078497458244853204527611824841168373040346156876529882818186793997473121894990836987381979536894580081426529782445181478895298452211681147571327913009237826077106780908530379677617026024464383614269894870690919934534056229082169215306988083680397323898533915212984696109536577080287900516191861263440793733619538657175538970915819544492269222496879780715035500600389995820577770137066454435909654426960647014999967182034167954289261359743044188761552896840538262135496326279964535746151480274230880178434757025168452672877590445373177747392832230301474487354803356990076611043522431607534788704388812092236893291122598354851955166646943300105120393204212959850576641080077179979764713953497334156607774714608260706758135907701942968890559446284188050890439074280723706083761706154627401231907509651602824407513709284374702740349235563755152045943991920770083174908193132085079771766874782547283236850704068506001335982232759561127831882010797557946385826753785456878129354274362529040445105725796535050943248172632214654454960911032041430178886702630674812266281527008947036097739563095172110671997072813010209549642914397712570138840409051342026872053073542376445342317894028282886001992627790658980661095918022585108317648837395737681665966643278592781577330386470159753117417793866109405131282622476632502130451606417727034712131095214121649390707385184795236007238092433215954091206588427083077657770126476907192536726129318114562371551937214723430726227989046313399059444052819482723069829810672390571790935273975382853188305633029377298130368287006659016941089144794182624727094498871980653564667124420061296872900656158802476653139593232410500060977382308194064747277145012513872194353941262092792587116246221857410980308214398955804638277992791507798173074615441320667423571796229913007884590254693139234912953043946890614046038281792318487735224113214322782129395650541490101850948031819857898706709418116881763101421490461455471742017737922021964530081607872899821547756389457166334617753978503724090726806341568070936150203318725613833471375113446131288355495621996348281459675669707356524303894164179571822900215414803594373327799413662026270918771603586173014224396974711646915885478631226178888582591817536953692104018580604912241569604908545822104783622908900820696828544318090888770224127413177485082710130089609346025797265338152986872111023492929782584505448553493576842728801419060825486074721611242260213609615533496514972531537961425178003349558403861207994763944403844746010249251047775904138723857831219280590857891180974267825072493868594251524133919833374808532427189060111734309400038297486296400753942662835545456214386518978363639776022822955505590431930670974583367646498374065359921731531635527893297768586723800584068543684018508910021001780004482647347682791654283971857016052831566353922252061335467087903734438132459189351244066953899156674167591952894099373740186150993731859152575373908775256523427498122211835058440985320479538306790804476173236477372448476182606298444145715652792685368744794904786628179236346988094554887308881464487865557795512204036264107402280932316545793595153195412852331444622358935971124079487923817963380341868681101821377601574864136943271841773069196568717265420601046734761837297070492013131490946525471651246395340644409877155060825973115871939185945718897639701632304162480721537596053273267601967705909897326263086566126342391208664509967186671117424963223918087890610117000090203798565103274918295808074829649999196490194828655517384787253259830552773821107316606255439811040980302192433485122359794970048337549463213253606206654912540536475660319038604375692350744250341147113794020392477183923297132021088725967123116328917250566659568041375446041655426562221109123153970739614882266574769428402969192781129184713196895801424752299838958744252745771898951612302750053277990374929441467427148138402508560385079635786524619286966135753902763927339277847632914680147539520044183594072675935619350408881075259710500927810163360030174411798394814364442404794587585866110421554357864065489115862135901315440283440710991061648120219123684708845136397014507889111222312761521949997782061220398424609225279709703554330079522774080561527418566854426921200096338523268538900235628956547886798458833698781390102383346309890493543365570021915251369023117361689024912285082687650346775322515540247581109604836815860752917472975807802291964451357614152862426079311754364512063233252700458066924184421889354135026859636849793007282282600964207722274074833016810860453000421787865190475366578910413374480136968065072085606937075241825846510358733263649091937816899467481368442121837637497739732497442725396769213401628604049445338721556493379147957628467717750635094860243698256390372890765450696821027472414830392352818183868828949171524000217605484388057628325848788940758198989093739762325437690098617297212194177398984189876971905796320689531938152631119452693005467176804877474655597439040224009585343359478656885055766740277186710129618117359019341602598530891959728248770214749159184916747303033125303534420863929358338829010637108371371855952202674504636599128348123294508640551503726993909955896209281478647964528816608001507800256680183649823070188197221083332386023327597262999808944396389969007875946547034154705668816098175265605696071593746445295030969437699371101777805274169620907657475939219018640380566879288761224627759385401102761786118693164455375130452357191504648924217973139253151141444087230741879679352289015807568362271172480241440781540705392982629022024411484302147065724222637190636513992390337666956994255614978745596994092978441059261618269199809355999675415747669837763786745846920235051952358412612798542687668040241217891335861588215643019697873977841209282733588534222329467882699174436927351949076234723635915138785613637205808157925787611843673240363252898453101147379016460200903286914864393434045846921447168336655525057628029581792282992672343906119478163361544345714147994515970488045465167438306836505203070864471708592217006114340246559115999238444108681217325237158742395087579920545653220419385400168982572326365890024965706328281909950022762629404036371571529833791723339370596113753196147152595035404089769481845358185162485530237154333427034388194561332505540834238924395967614250261275105836949226299684827107925820320651030066002507574701926317519903213828847441150243998000795825670611687279211998482379011312329616485321434898261163258819751752200741267753409985076110278707910181652283329258710798150448451426343840078718591625010955668682734594750894825984154960988238339543234513736020882461599263684270539783936627289388810272165660970855251800973278581578634681682119831142503350499957427410768354514807702706194658885580696249849281395002345255126468281995411033584679480145923275425786574461157014608562740285021257889035711855379106132730037801608227224075445703126034293320448592929039176468830479257273323664977162869558880746926194688532549517200356472711557572874836958426430915070232922036596856705953978986574421091471771938977576245716560287357358321344487438905361328751008911076566852149867722129246465369993318842209126291127013448714085557885527885492674260556899519101133151255468631874875708807570901839580794171050813923934309438780534997184246768976728476624791964108001313889636255121073550948385078824551011995394186652469822690777476975802094010335045185737354432130293729037663377618673877135124518507263662927855402129609317427442177346874415016799420750676542975749412918314319377525623702923163405735343993987983701997613227526186923409281907617406363941178549939528089790611645517764627899032790353419894792254913727154211055424410066985049795366880404358233828599215666424589472104155247771073935273762811934044132460531085545233956714586730575216650345629561449157982935724981769385899249607160899827014880088204846767635539999340596209994104798268171050007919765326271656942036313988730745234437445245114991953515809258028339946836112341814388033482274888482960375829305162261677131984171245531583952972357877749649473706509454701492760564547022761654480099442023547134328642096503459723957140300758298603778941111535851293775370683801362070767378578469482530978949352582729045326758711439326582934313288953301370334649135190656896570186119171371693409416635185293244009893551135589343670478248906810227581270228406830134025123478921451987347206818231553255985103812694978473938580703851562074751163897795325511826559734462752129392685263794377293357959707886892056308165851414146868835863749379076821963072252759648851456930469303492677633925498335190440868485304014817831399588540570146757538182405867589824078342986164981080880403847169046751428586579804545360139981541728266153475521063518507292233876241514532000602819676902668491292333648651382809911083205203561450688647899441157442290064633121280841191053127277021436519328135057464973256973863226779206107248969355706988930366266059454335145686570593981335451921030723600890514725038326420212974778543029122936582615234829517691129151741913746898254108413126176566459610280794282680377704376002248264772964578683327880610570443150951754381167070621269134721156336762870651066606257188934675548575961071658608345878981372838894817326032253678941022291595341470660665137249851702245043599218776397140575221913003747763790138388368529265950389515724082859498797701482517240424583742105568739701380313062105774497851206785042216673795555502758951735373714668116136292603471604126312547573078479677324007854350998862691997340154027031181885164103471198534996610648033184840610471346825857124366415667782293800343751842878675049009678622600929913991967704627579951342004011794005824549793599900307623511983802804008788629172461836263564427600346997243241707264518411407341178601149954569010937487155753570032258144021984710224441937983563479986094037741180713341003173343091974924350276657102439003060877059894947790851178700224519107739399718731135367279856920885693059715114762835932134429547665316831164932069747708738473665215197591500855396106922394580776835059381605553213408443396020050644108315109329951701790864593454270441010302550987657163850600220066207259594982211051374852835768321455187701918037619329374312458289471710626830838477845579977047060570876113762825058564506514105896780893805146989817991122771987779615500132850694904937809080706061800319782728101130183082859937268608477701080275863582437342051712593102673927119033969390947908623388276150058351000011515325630483617292090299377077756548982291537216502701598224751085341826736611452429495219695094123717654651156757935933421191251647114675261918393863363775859891950259691082032062830648675923777499499245637068665465675038892975695631520323208844059589186686772608888670625824399367903508434213628870652669981529839485907785817949594954520023760812171549157232969624046935382394301599579199467797745902683347424891947304397088887823401599471446223600039016879282648818105966299229253559801778113685183606705296205455412223295146851415539326730646357208898782569121873174407115087855997539538788466881402500556958316660242732817929822459980141629413723078803457670612013707754290339866576820263909734213131249121790099081143066612887597887013996862968144135269572470473026544404212870247231452200216680525788772868964261186389188689019550977757535929733458342010380608196778259971637787306353566659921905930903960044163362097843677667003338417328652411255419488877370368512955242837760539137374663647716335050667751019384593227410868684697254022263449425406436169394983785637753992362182850850189480989592104399695168349250724454681593774473707675014596497405358994393856668121073412667835934215208861900530216617063152504462451766223137057975005395870936307390778855794842440049558127109366865759322147396776062379682330421874312083659666220714960548445635511000038123306843877718705723486385621985457380945957264242784834784822146017139754945228232664495513451111957922820753511160803746674123341749995144878139174236497451251072544324059931595959908327302593891427946978109044163175136992827867390490749199309335576642132687046667774695079038046535767648626767215034750586205822703881280404580000796535353894702550033003826540620244857725681022319711316546304913576595860289637711313329830733019346263302460909210689618851379901463026016918640062180334802453688247801013166395015371730857303734238626705466221862363773732118434562929577971977785954445203178648739813768989784550568871024574019303380307872431144684418124098609889337076519344643244078836445388022967706031896850121674043645587486916721543125727958198822969043895180131178199964842294989390172507581817025918845008593778661647890037753367282350621092839762421005687755249362824704985036481642061576650426255244577500631174746519198336215466203782323345807617040284384285683276465899630162476541733933756495885239686372571858554032785108066392298234492607715401290531123223008079637935767564728094569476253563666984578659423906496706753960263551489058744570399843560632113691195917011038721055437782829164015160599172899660896452094319354784827798204546919903221134411307291800748463808529820868320112694110161693024624916862389312696771850789292008118299822809299053917954850188051043410872641593161522286862332976309377860079382570206408149651628103702414225468385021457366597537470806095533569880248645532330996867394503347855871458120174501406402188980849122753348298513879426981162595983180056957149707847140757533993794262945646067381628105273067782863999631600665968444705667899329143086420256464100045764910299499877654783677279671639678411609941457147202130177508655346269488200346932582250363515484841509887867238705413064374643152410066470559920876362470650457658527429059480800947253066955888055901110562807476636673882967607646473282913518239373480042012773493008870159568355641078763192326419846219504371804303281968735126795423718779568737550046671036155150371420269562463403164173225151491110621169657304609872255205969556226709537366837849071724231082477915397760536853414616117651020604616604176555824896402790980531528925024650535848673736874011308483564177865355425817622649437675199140756830994984509067246030915542481135371739708214338217283593302595559597324396930443571974585951857524245465213030219642797065121628201440193301880595167824730205089045849753221461166175028857471146001118265281756353702094315535784844273251387585599557349427901623567552549446159255369351349638206603198968794013304149257849210976528189007377263594573042445275370239596358417520941390637278993464976019413676666799986044235717750751040545549298632027781479461079337272235270235467424562761557959638319368290718207703034105038470213523393205331906782540599154372474658919794800089761847705951634475289022672351264174093281651914681480868632693303282347326361542112395664928509554710550716538619042746194731175254316459503670406685201038621328745475473103715981292625198951518178749480332808535984406506651752667554019775219315415805739552797878048845329326830220419010090616622913821280904777024965704498658652290394385768902775342043127448584694385804541811742531949858485323799539653443864437712753000821641402029878349844292204184213580692244682746909532823914072377258806609037166709770247865827770914511476036779096396957562241967370300968237525640488003958778652231743394455714412026749837201133435023638793761625712859980713215404620389551184216035669725733828542716936928670203433638984247488931416097904373846750777886792051892563118967730476690065083096797056750336681187666034612434535429872557332105964578992040170140668850501987660163671913907498066564174557695414130773726453553380646959413705552768375044215560102984282091109165898463542405690989090762887615079154311865467833615065682122835814946983374192950258733270707341707557061605850613066347190755503509057951045902765388124255887827878236202426125475961825610448726770117512037568044238796900331918296289766840425145792030701551138005872785664319717788382068890959662097839803312990872232747871566562450694487458188696603590619792400047988462290154086555229657495723342953648861712727176130537941321832896080060874551199046203125623677971075279856205501829635275875158552500769106698696411725157983827594997689758475253459604077628344754719816373082216128219731273640309073287070968770335456803547307234327307417296825418962602939108035863964938588546727057442988907258471684861011559409558039068921127164178696276239984135514287117794319876662003412510093467470374408807884566512614186262247325620601490453971604811392087249690081553657126019466684246310431958115344959791753398950098773060194059857519474993056873789057204180210597053849503830280486664754009082868271251561402664588664630847158850857564238502534041774447772290124387643500903185911993105995188218608290420178588137846140225776195787543419791535220094137714065174603248565927680608745948165135313290683248122728163949761012566378830639981160629402061450382889368167049436163414533532980993281118191368931727697308515380101421185841556042330445239782037387041811556932344515442420619031543591889779034937148852314640019421255239057780385723346944281383256753282792416422130247956058739295401630044385944770867902000021234989864734853599605420132155411725089708774151618498905198766789684116130792939367902408729256095767372519053951445061576327462760519476943531598452938800240376475688464169663348010485478807132240242395544093704822772382065104843791969878369573037880907222288637582148186414229432625591791750117955092761019870746150074419445088913951944129968083910815914914380879630932434385978819531723763551103860402438638360971441082422191662359554015322371688972927290337220492226372114570368012737090296013502326105043316968004095891592277924716609537939365424916267584400965367753815867144138796293444776919938595488840258176855798781111058756738610823039903717309912838001047598382994588533942296869409723342765601334803262376485600536196062754522961202521340100895453525061361811875393672507438649671059146514791524380691027219060005633774972893979025352551159240844237407424603089257877878545281040717703286001334143746410067949009778472756490189392998806968090422013501652615019778662739241919058677735610050721134572013376754131935861912287544526925286113271405952715932698398846924590800169790354484537706824141064600094950880336545459254647040713561281096364495867591249610349430800902374775060278862260434958675894517623581254921809930651886082743334578838293072454435489168076998314526075186969431122017615704875135322670468576219853575852734301006008050058884707550587086122134917912975374650377152709296005690222476401292552225551098571193760788938232625547584815609802167277940831840410891596500133413297330973609604810669423168047590826784643094725746131530286575510979714680007359663757860093109418573970797222456886996904861964255436456126194966842965605818846305945759235994565331369618247497780490043576533333246159018381395418763432901615963666438526478605214840739069648590308191350698595220518035209063139356980311645376190925946239280323355074692468583442329624320349489400130179122255193281706579506523563545309749290328441059078991841284666117183352624591527354162555072518943823415202678280008497452248530212413954770559557699692716514067691801607115821600862331977502654174906518316385100539507770330528006919014852319153088217366786255854353397057638601468608207015833007078749282062262880438700973418394449595042911629919185927840553503404852622736596238595894547119491296908891983515650413352129604464234889837295715820248793487804503636165199349572430641627313376497945170014936657353895569469272734644228895751527101295340181971760957721410133362816291689374592023000339538227050767813469349328913317208559354288129797524599715836978231411145108722803266545293892789889147067391620449856561438686608247200975710704612698136678739537356994287102020559762825408042897285308956772037063890037200869531390153204255109175794993006351711489474162148753806406447831852816369212974740168887836926242721436465235784649541862464697608673282365054789932118406255611122958839684124235920043875397345467859967855905907760920375872264587991992168381046706221466905328089251912770820620122912637410352700311312679436334466432191597378487920068187284601520147825103103155612916501955675461859587521105620818369067881561449236862910264667469593639463697260400902560338446513756313701157389825043448982443129147702675954532865570523398064933139825085625476556831109372098717077650720127943395115152567094429255153385802864144183304824579489928731315325677718318195516468005518280885424025650426413006698231302414615214505317291027782956613229218706408055887203476797935514819449153641027503319957186189779391848730829059820477128857780710578968037390132120719158574847984475725607979297573426879111874277877798865835748466675837015795215876788128578463398040197789114447543438538313759794363613473825853945394062354273339334253512762569808801286694292001240654873563844472123443344674536518959934363144116614063586550662600257219329516925708018553326127596042593296107307593859911365230705959992019807791358866865232730135873418419458345349831426705839092796916176881360705351706197150443599914145437648587127797026353069525419936396956411747469720501435509227755044771054396862046044487821695541251580947654808739598205677842437056877389283201544412815395044431377816754564400971505676108387368589091766089626703521549917640868180699562610006776110255337527579956759996031539578124197529912527213818932418316384580319481685577110072855863608185619509848320091283644795405626982402065422370340995796890916498831013423373823710307787561274733530027252626514554645133361360174037924974373466295847808839923774568196815699865080518377276411568663422218374414029878297099754431211952462339707461471285746204757258527068125560058017433544419825195240356535095408403685721622196432667744334506518212782969703793663507982602138394930811588499719294624904434621934853107057420971388791572965858630578810205393091145397511236183799159707512133864247536225410664188546896316197859350524469856798083473657543132321519152154056397423965777624857832325956565786425550164892445771536893691676628981044690022141226796142855688920586761777826722110134603802167917271661687821438312315703798881246087656314557069630443598742933782299688753299968157494980118418585280334995371555636709213169487913514760877113363973370220964995866020614717113676899715284079469714865613084527862609209792149366280825193451043576199079451469341899840633998028802604347425675539364589868969447811385251684943552184203171568596003350870914291917763324861930240103779510380608389100136471065181096763114086555509627204425169374895062153384632763832767529368637829653946212328242839196159899793552940197496036041623724707018265635581656590044612041499242804157356918220790881368450273746485796214071199516302137043227112576445493418812671582103678892460944972370280640181887378576745756750838206773965797531264977420485945392698462438637604135404605135735625712528642817600790867988505379772347385558832047969657568486014397167909821302368584862389789323668444543075052800175278114783169663144274268382027704196451182920545494924320773863609936693155153893401571519039526548843803545498497380024990249928856153927033026079140132066742354073354688133269944335800630958424007303847370823725502443019395939770084237222840674505500724332190923952927629669783942940406621352767502491198808179334617164610126314257202856191333996788415186873481959532388595080027871005472146449531306344053054178747574333404847043234549207066631904293715365032011329992068538222926530606455205707252363933061350795035882675080674451467763479429312384385645472480894317531075711320716163507219432253709541768866083707951088937021422152089730792497417942964464695729360622938447836429435470646238731096847347414055434245026352309283202127637588920310465454735689452520249067493075044797590266823034144659685574588584888529194963526354928828102955264246009365848400632850769044311413386188420027968103178731497730408528420347868561966895025152448672681725470058740965732698095486444060160733354273578230346308544598883320472274357721002975133701143288763789735140792604005948895929343802588567768025652442127441620703498965485962131788521626214567366605899792642100735623632681390699565756373033765099408215164862298816790533565258742846143843525962320884598906972688045317664882311291707480811515593097413449930907083057413071427953704182299023774881210604941139182097761154049991106387074427060433837398057492086713961843794319084876720855458891241489961576001242354817678338452242996500947810011818689233375567338214238809001616147636080866307449324372730868468523868063240165522123706495265917342749115235774000456619490309496551946609670362722635009257502907398113180509132219570290809990295244617697903966043476365250491772909856949753317078712572775549822868700599351960352724908067375698512607183518299633878043818027451139352269095217240632703894599046545343383500730634829440691192165992903986530637309336173760521077500735377849715784753809104790105555437987658858448831436479199897816461843670257164289562871842809394791944677151172304991702181392353520378539909417597209128422859126763471564160854930726360794595636341013292230265291813206000409830223047814763764948068211323528176936282192283092045452975335482292332178011739739008724703562411394087093239453025672382440991131361139625037329400475484027404348995764071367420068880586559421470652310594884160849217160821273377235409631985435719898947482084955519263228282201522550006818112779650115091113526216935459481773535391695953432171205468921969874979408701890709825268811117890610868062202161288116026368686837610202767985944346258174785115808837566068145550913129734936376207909416466113670246340477380555991105018054398896324932710302900415785565275617340497547747220936971149047066073324170233447872991729568648931870734074802832750406313514564501291227137822446634864252235829289982757580439757543752914645886852330791058203793547875218939933470531021245656672343014478999893499730169498879196754257503194809682091517388040171346478278257659173915400393103375816293949918443448920225001601251619674173369262905744074769400405861766404141489772935253335690531114880919736213263611694858169337651643163050220365961054840622351764663320379614932961846468665307086991039246808507880611186296897523276167962706355705781592590402555831935610984607530039016357934228792545684117557103891513760794354089926862402146874466729138385560155761268543304022047007358053214205817274969295034905557047314161730900170419322604560652330755760876457258170899464848961572461580929822390250147812161160884670027944339723317957444425096524928633553759807331104933586823173159320494418205545574449620035634565597345648116529606518334487031476276205509760229741643239905312793895416613587017751409303195321237214703582493410668186994831354038045819420859393035543547291466005764471263475662607010151994365668530795431809578268505147198874187304622925320440943867863474516475901409168710158969165129998427101863526519474062196422154689640358809033600521433378723750832073664970591187474932310146565317726761915406829477057766090939553136751580026037171475442697347409039717712595396301129710386976886268379365466082306333317475450429149524152550671834210860248485865956317184046745447700107533964618341363977656133932404650409661054565294636108342940181484484814965959705531814194680888563738276325731694265199880903435606919673259080968789738763973059807834221642864253344419648866274611269280742120399823607058489616509000433824993085254022946053830387616354038915477431911431274233938618939476914282097293747111399395138601671452735917576961701816014055975600043630026252023567763760665983115928148480590744593528859699415448457969521699606589913630398470468730327181817515096176782563142402204092784586242047772318552716059631726491612642540215381430288266943236876572714684757762318055882213424461881599697856358955077711088416605247543435146294214314845075369663776979309854372516727186646619438729664955856691279557249260147470064516232941497837920705514811509093714062481295033338925943688207256215014299870421791964351350073396936738525169147655263007232444753261819803405233725272964193865632687492651953359092293618880612395496911480177060011962451949793569812718012532504511645812046707958062430439925973453167550423743630264005415122422888788776149996490730393792346360428856964310185970359932107910703751254906866100389525407160256690219972124822921072190799217166192474318791584097126232791304135407651453851773547501956239006480379949174215775324657028503484271078701461726458877750099866944496254871897550610048477076199462863314048734901089040164779613330802295210965591672968845221225259865655632330425747331653993289895956270241083677093366987540358960708116602228250891469378455812586721005081500346493279841521440736924958449849222532133653428579875550311995027144013547342086677295550636432341860461702246111465206179499667474377332378089622254696487854756329616037335608688839516995549165824489748637533965265967319328692292162756883228888752551296230257625699670653122132323917766757206139576641515020745998294023544172929256321468709305574608969153692891512994892442469387984285016603403524354827332456396592353052725623027193038884467001753170415928753014782002637960790590881502808875500756724894961930501299655392107955213562994679355148839931546686916753475406172062347225491956822453752812650493463531496088278690511400451028139186884522017406254876259096126747954454613079800161900086164931010477073739049534786213484456275401998419484982372401656576523718213512640915553440436503526097682175975368863305578911681924846799594066155563315097931250042210924880634895433503704028363757020755414006746927149162526617001490732885614514611013998484156613471036756916185093950312611384722725909431264743455524031911490752797961597881293329960292201793128933357193063706752192242782619345143850488648485423441933457883978061116893923281106127597406216428938915503887467967076071601296340788547833443086090723369453705372341673556462018565613700765341060444707705369029278815848332895857943824643934850697969039128907581695401705653538182583140226721122604009428524821672765353268375094727260108129708850062304272472570742415354314412996604549594521882018312519391573444142377546640591578798348333674342175609909132600187512183510009558981688794016668239170916045376756755314245935502467331236379290741231300236061609505206421561570345198934466413651097768768573063119850642542984760122744283858388657164366431593405540920155670414535572214273456593552415392643618389827844390625139906046385171415184052101452491882019877859131343990905083530439201626350518773907370082084021523887560714271036227019108248167275336698471186989189524214588812697491468800119049846598036432025730306938259858547099177325391378527289984782646968685179087491109335075111603571252721207735661441892264893049868118569145000359943306774074149550052563276461128633151462389249729049578503145630437107896244494924848960091865861222775087493463362577641672733086759223459065380017441735918251153853645099465971385064302625022626945897670071653952763270826699752466428463889051573785674964613280478607546630865426397303200328294735600872225801268993798281265629362567920534751014129250789726291607264482379920833066364688389581180642125966530630989495724847983726629321486190328585642051394223149264073085172820627323150016643835613508591065616195272294790280329595341803994827476469447017571355232548362246970152550276699421747167975044067899778332597425492858087419052225824117799691176441838773051915519389791716286747500763033944509283139635169075730802073329018406433315786436869756800982663264413225114636320234903986692357468392186874024692730813466025178507094006480699451487891344343586331582187206311397751753988452013288434061049498509972540701341584055194409946393925094185130659311818696415094649634044818877225757498067343138084038812139369335846569727188290238149882663594267053927866521935900444233208034644176231981136065633383680688224857838275809247396992144976389302404563570571260716337990042096329880812885015094751530367149216903193441684640945587985335232003216607228100879337079702285109441689878616837001766318285189501727515778168176326334066163084846383841513658331004176515002101695687221841253741422024665745825422558709174294973654867289393817846479896256146137435070925813675577827790987853466062889603011332859594351191967345177554562908322372799131990980878930564313047303270564758460399808545714598793320161158082436055316705451786106539371503414798994753207734482794992887936768325814352259245941175570938059316625297549637567578347570786632306399383331736154542734448309931466788541202636103191398226102468112558234873184523428967556128448641077658418487307155409246289910600703730867812052565741056551123514513166209038094723367371955183732037890163945533133685288591068137399128097821454247992649288950157259851430781799558667704913178904251182780408740829315417854959012252725349087988393626097175643019054822434099582411881999189182980283236917022000713331075281992245205256484382722595668207998757081104381832314498320296617979012120425304448058484208247851948744359727835241133715422922436688269511645941221459256358011017206103949125164206784860884769373812890829398304969497386225060529281014486707079871036593226346419934813992804345792334990039745014264855615037316510970874689726568278834343143974852911413384671557536236385470322679842798023476064735442767921398955521875986454588821831232268129299551291967358858500081068843675544771609182189702676054008195730547958655228979351859569096917755516201070903991823341581198059092233336990658323581191923304434807160459010360922460440085203945957342183267599096553360825265296054381617042558309474737063154441314747556654197646442965752316311988267782125946244457545062837470417447033885396117401264397742701079036302428093205719987217456757867832395537847992433256780184649683502501349310439274030236067791925876502032145074277351502589723515495122973567612220296105771083051502119431244937950815562409043738844260622210507340975241380786946815567638449714978920350647148799605116004529018586771129589771177393709618002589193878995374142570681655274749747638538936832625075609120398152033224625717308807428704130312479832058512606251110435356441427444741143991280322792885620572791114252863295767374691480907246859165235462204319664376467638424725577371227252922580064065007227403453741832681533728751183857618568702934781979343940646050781262455534619681661418056467508404403881732770338948593349078823958622382208413903958286437154109483493529873084380541878892069798146434170020190541217250550857028234442992946655236070172656452106965213122921218608376034602111916729945246587957138898697183225434510373980753742137346194621025793757490112003644752221223874028143165537468048178100812419699683007210828017110236220587662045736596781939905675697300513884592023082674410043308771020664100161082054669323319613826105057572102756660190103214036208063189830701011092165536072828741347956244660113368738296390138619679629374520979316669756052549637180910831459963877661740730892098249032084671556575996650530537315591544589751036717564670938862397224673641336724376807510371300973946640847726459697322308292075493423090068391771408378840489044614329551881460770436175786327263725462759844598265676412172659063755651124044628149033023604921777952657112831738635225413524490368797098634287633005481068149776843270947863657771027327196622924638329918468744363830822728186721199031914726915736828840158483086131967413010501960807731392865176232138230243234792392459552571816332161907759127339255616868301673188595603799660340861477840789624187574796189360285175245471161007423708746398293265608751206288072483364700984717493268145545696267592857355583451359477071661854114145136631010743797644248325276134847687321004776378264444224935854058748873905933367516570044599766885599022839670922399791059612669603147464492832560482604978880201385071024120723187301643025954683304579121743010851102827620237657006343284201119323739824298166496436777193888000975256015843849738949250481205333418977989215933206664570419180150793996503445559139447569373825453179996613125619813057409304897273075648258743531077816693836642558146868939578625361969519672845667475300348436093730962595453314368511532042042744545038372255322277052899461330688262682400522004033836485747592752735782344113119297471323753519223627324708838154234534108417031646660415066030697853664181341539006556234914050231347817984337704730510908854002354559737189529320999376453127272772047796860686671155902986488277060242513275952481736624085271005421376981273432319040440748442539760427429676985533825251337905751744309638988811473313703310612540780269728078816856967343415424593075234875532645217711863709706201123885450407490762622083268827218173588260274068344897207176783390228686848779078919335472171741845175240429383624353801987869257531675378343460600890937958052621399332388861804415434126665248096665030991950312372748035206478866962257357102071092217721293426205841201592083824823229948875438455504459178572097373886435214727378210098976870918399438821363868727016604093692863286815123470004270648471644188973841183401290271098900509919102034990945774958427326817571255728202774816624685576673307967585634239782181562483547830877596671060910807080326753110288757587404400968115457853741957425207241006302232921666769966446183195561293537611320906907009377307541844930883918140480571873339087573148870817101775889423948995290754824156092803089181636041283232892860483603298361545922612054372761240539969753293196846773826697685661404893015393268534703093854702919400257887946260352744923091365790197751766661016426253390003504361638985884044268670493159179182019707076983811473625489002282624234398659427546352292601181203975018067687109613036550059685907083601640256749477464829423184220512390983544042808718305200805756491815287736101182896629563514759902922262472579208533839420134608970997123881923656663742380981215803509446009469119315153991510035557957970335069702410601550678422018367419232295992955077595984573677330942782165770130375715423492579322837011151270795408053066231124898718504351371158453559579606544065836757015131197612079360829152742361940124682372485544132351227435038752976493082424721109605888309668053733546418735680431261941627788161072318572439904911397934928634278943161599654613094841257764151572909243280468536551064349313056196128752720371889799648345844011146211716600506504213778686882195454071522994682763653998482442565784495312620308301585255264076635612439678083717385775876805545587231998805433168998128562604554405625834769698069320971714574456075554942292730061971865325185712955713770550304152099499839073228768007602203312151221180515244280176228174863262042697881271578442295877345565470278022421476614144394782727376215771751272019244566153940119725416216869625894213269420763415040050178947016250287769937432456235474604155209602019541828222190234525333495354021266505693562619643452055253172145907077629551693165146606800305904402322895602362553916506820542120790739305688282596120006454031646175317957308900019868407782004529813667991193849457295071000733462562722402197867314882003204116285944887552668880393759861969802253403010717367114458493302565186906115504736085106482030076829770504389425191730620586644059836885734183523778292460512999654893149708748962549009444124230994012280240124090903185378148066949819499835779255561707668084943810697932223124553354179617696538129405001671034179209338317144027759218324573957788325580130052945200997165749961276053355488157838940970346195232202675020736268147274783490583416956058701824517161847789642509520732332149840972973599148266324258855218834354415918299279354135529168417976091405827008743552262892033059904457511880378829430373673003169308929905325668431068546387089373452369278824663936894511591036554981005421048562202036737130155490310789607139944920779133562766253037719966578779505194315338471040741667646655963878856274524271640993072854574565938476139245777742413996225661438064462680751782772137759078545274926182142000952420489478276832650671510441181736283302745180472470954935390140500484294979173382377579468447199490237475040681090089528473593469051564735984340674093946714122832404719356369687409352253393004534646175849934376487349187949953829403678525849100025230460866085910058273496141920622646195308821172398213992194610487313723340124839086366004251493070158909778815616628701666174038448803226206386776063086791102465062822095527840738698159694064447967605625113038420578133659122316678840315809606175617957796163583748510284878721929105263245518642519332617218914810998105651057497109519749128505016062244759312211887233729005226279098397699137944065151280391641993395413189314226706820711574045559431691397155988755535295466618777866910792453387683458131732854723202473269307200536402584177057021755120027421890016502268487169662621882972149252725134521050346079151363892032825539026986505982412374585914167439262696064335492267762030464958388801294720119362547459064045091880499417214825938753931689244976281853637401897398603808111875560810647084084683596210936199223555044403051948285351635674468079022181554840090342580105989044449125877485504979496366284309823550643117274798298265294316806157341053240563449971155056592945363761557657799387305586083160323576281055011021528677419073937217289421738773667454930410519866063521675959713183264979119349012717539588717539910176470014350412832053394881109677964374279867252929481363530680367401145843711590586257822913384779104031655627497855747984822330906231016855816729396779418156674502623016043749511113148093843969883207373508282630632107947718764734853569250646734932770009807961899146426422398399200390820139296173357125303163203302774192148716135251940100445771207835958045233262028058052951985539433433192344714553378003203447337045376294987177518849864490976144370476462662510551659633065902926929664698916725059543226521955153028164536565449582157896098126992891067335590939368254469605370006421458187595244575121891291985064500579533319727377982932328380253275934028353201520433466295686097733506414536214372772290747025773867048106490662223958310647239391632723358719546157778949651124110986780432155745563986857564948556322424803215532475588779910167790234421274531167142397577089375231951805896992899383414390934608000659834015282275101442759239213484898363506066868528593172639367489921853008728973315760553883054808536833793998909037730067413419832561370287034443802620739229622148807106740837325989530188547559659900202287173354960823475690479166502777886238090805084630254877170709431331035852512798671532527646895807659845879352175694009020759710407955008554752682410608212999397468318635412937241167470813689931305384615289562020732109779758260400692746083336822358089078119210976084426264298643495099954793003607791018648409276896200770397610233468082002151705595277665120234124665680704423843020430123042763886855261514699910763270577279170643237672725779966387746963382552144223201068455934816838988560333331182515360536696048280208178651960392245982507742718285326226859886849343973275161547896988855833385278443926208173932398215951032096964957882909473551490513431760332174415810841029425518503191197140339577308598307886920358007635183196346791915650323195652204811426856610568750902579315607090979796641020023295336341395024488422273851463804269790540193069258161068766671575972540457350389084263637861888477845673370342626933517023422044684309121684348762122583620926842736626150750695840341975807950553529339166037913169002146440703734913013320203319479271237487062672338849039763095938876569647009938779542568214901232969143250447177273548410143558073983622973520463328793361176323913279010201506065847470658668758718629330514477679604593957026046639281978563920275065168817236513365548430728955416685117075386700806062123939158977963278529686738790199134061714273018237967055193905957347736598469989341335664641224309707287174117935835725124181747965380604469646988075399988134703977288125328332678802545360404292243947012837862304878067432653328557820462727636313357528966344010035635028352859338020842065240961654766244223127521537536686213170791978139589561562761830189391052804664091640777970096497609798232557556693399127155612266009724527710018232147671633687854805999781911681662017172473818060339561275038815263237850999331017225720369602281547683125631549076873396338979233302062993173438360470163515516277556573292638142455057052727676564667375823887551805050509853468798544975700544064968266194237576143347335984406608875522663040430110008923436291940106308325123268867960999533477837311180540924423868916805422294051041359813857056522741578790476773255852837526415659399565732165377529483923117088187121715163722037198900936759483280716311913832360197282062264627337786117386349762943478453132608029251753441085954383311926872310875333919756962975451580760938943660616165928636687373112524871907612047280038889331113520567247261963932676240812430564800940064434596705153884553189222551239176743515257001868111268460189113397161110352002172711522879042658025313627627828632147879892957055887221476848407348366959655341423757578970632763920971227358834856811192754204519659113409315687335438795151615403176611542430508587787674307111668238443553134392151118771337376730656418968393555893197841390499789615355412570805119659646965489498277544384308122073400732198609206957508482747078940618982331173906810160855283599291645808908792429519777847057937573015237484788268633418805186314559233950366575448403288114072253226767187115935803594593538483951120115477102689395366481109095618363923635887375271917989892995282472892748419741414885708140091652455242748911140657231476682346097788840378864787536345146250500607141773158497555937742777467242249079946946597728881300408618696202107939241597125888801603889327814771893834354931439420262601697688248023130663949282631761569562467386390106323706710215025812131689602213894327584370195484204467433673564859657124961908754196462013933007917359783661077648866106850315776965768508091421018538398532824300517126626872176558081040770455129877902329353156632659187408539814940076898627964509696256496352415636253935746637903132711407056966210863854582901017620509091249363785912431912258358809019291700522340121004168912912855127841010809869876662087462210953609426838194522392886327188527991942704664930956782516900668590642651982357197384783698781375184295204493132837889317852897774836414601184390005360538876908357897184104593399331159154326163040755640076920021706848943685389008878407952750904910911466122616598110079841217219650024299855789063019811117642569671956657213712461791917085564833394070151746898222367687926176456379481736973418745565523848205854296602278534756965922422353234953479664006007300939239207544670529058159943165607086394183319331654803668666035504556359509670678016970718530481574997530704392258817683185511133145318390091112776902595667960338550466511393402646585788859209668764944866647335894136131387530370929858395344120459341091997458460096017523004561984395801521516526686771001410135067121126660611303752194254384838774902576166272218819456629297189150124761203856975912873979760533188303067696084160972080991122647457789240931572342421260265024926063867512029718053240108314848505893799364196501663212302680523766042423347259863182696736373725488733450756253140804335714471375667896323272617093723409466268436333029669907204704245248519743516860278847275106252331740753468707101999602758926635560623885870196930954589800126102450623243047342218353392271983418740525078491349608106886347957045455595438699624455579776804134252761444192083675693461107765490160240441770764744671611273250489001540751276592186779510139158211143918235536702195278076611929177461614744461933962822125689823965787180815240557927513727900979026215930193987648155494094811381123467334601213815828971700773063949176789401065992149892437324931963571921876537285576246544413860485807822349936214146643186864077463507091890596769996662686450755135428434843251579805136131249213887317179793906475749018805220625851935322080387668739852366746985171167534464456817510786826346953434351934191788901770622493472998510343255384188551866594735448032688850723573067788367748558483648456270761347712453815034778108483947735965070132417417694105996840619436890893747107749702188789696284624661275732517692799881368229372450484019745781990338018605784069632615649295931888824447665463166980402147860513782599987797789389379609430375668657409698440423600600333400997813233617235020439983805483147602097272563300520013917715309795426156278894201590201286686287752591486149592360188342542357393237055299515200796890197801740824954052746141994390214762005841733569352348033869379271425704759937276596444202840221816362505551094115551347205942244364951436437189248494764379706695865616635373949329215685865881387959018004322904342713051140413897850250553185050723462035642564305842142789629980737107365438563527031113523979892687235611695036054057036586448101817375538393420965543402035439707558496532553747991885414964633596035652291415809259497421391406094518197256661424730262188329680102872820275447344871204164196998461894804414730927250523812709653716122715154132767105887628051710415327281782913952849647445715479298495445557290040546461135440788419099276670108262605869163645540473526120946462897185570739931563810042332784313263658464314342490413471875997156657037107166976028807329137311798701336349246834553389858102031110350147512137479911245801030066493473091155175150125660024411688670810757926105446744360230282229391541114398416078273265333322010285657011759047598366350373221243635778076829022156244407167363368776986940448710868738674011518974597448668001889164054947324710793811273285378397959897579460699960818832633415978617037046830136317709276908866312583416589600773707518817475433327604001052918072971344782557639565010231616425602527656929813985770430708644453987742371366878214856355833031461868391765090824542353957795557928637805932386981951019420248405968642728440514081936272032278909119060964862608965855310139908309498031155610857154581106526810047959863629961570869045038069128641451070421744382906185890067039480591559746887909664864790375543198180156946752183085419512288225318375126355535876573905668138328514000658880889502547604282601976479252407269419706646641976385257745116616119484030434661966907216017067420736538813232237050189784506192817631542641491987911413087279650736671718858958667685058824629682544502832753407730610342525154783197210531350706470109421922390379900697577031760723508148260311301001059746470657917999826175913090270696086829231875636248928131975762396858571414898601193572546934071810745275597322313753122666872580443560960879704281369577618878252987262155023981537628190906419737125480499976812462055654644057433756102581893378396278718885672313554615473021050168039163711421233000816795798320542500827567358526908328448785656496467280361326168140362204125199416857242249227249999377812716031546862342024863397301174538451037260209916457354830933915166696053071872885457609991232082267414098825512669874413827161403214799016845356248020926506674280510109570910926548629384016181412259928534560414319196535474862352304146634629007945078313023820336849464966467315123457039433335670960752454750506032222320242174108477329256262177851513416286200697999173783235800975040891383926353596284799983877889986259567965433959955136097004968317120825967686598491397731719681318795653649591568810188874127626016900045715993580368149270097777615111440810059672273469360189558776847815372098907174983973356033349168934206091002256272223644929315147022427781048378999632461401001353493348481930181123689550236831010725847042699987960196856079157893872423917373217578308370457465480744478434727455308687510412810768641040880320415645851247704480889884033622335053133895255935733101660496228837246398805841981158612107020985127315931675012306798755585751052154461067409247412793846594309893386131740374015191895765907080110106974754658866670897166746498164020296277283708108616442060183856377769077848639580909456254977556901958600954631769385760586224816520775662661385564492259277387785656094259263209816169713026679252753958441657923136092488998701076123033493283275343228597178976848017511531089023379527510308638094817947230553573068216096182584537665506254253099408956677830551893213857482261643750409908126342432220122822692299890791865567892549793995491260346150083800250792374409506362902074834059669808528837561101114687282508275882277147060409318400587843774892056038636568869673024271121671571178580033789631336220082210453285112821067730352561866285842423289896085225300833767231925371760176233391035787419618682163616296778453882137943459832780428212504937907328725604510144819674474081605434059947496801701651208599994349221885642478896801879342008728841277410740270769034331803291571152563232490647520326666738362815958860947629477792371468631290093300327781033612000460440302146473614702556772724224651927501705514023132881904422770223487746181331528228416237548093681691484094351545804356687613392109342662370472424620537237441938125644741838030714900582205607088785229347069802078772178645616783011695590143611542360059557294289304933605560125434673629880921776402429289277237771636653376431909579298971449645577908751725138445997485180418605210656457318123732823992188524703224287703469356036631718270841672025762453289343033803987648910004470227351204831898605882125419186143199428416117229967001581675457417048396812569964507882503529518435010410674093864510590272494629749722194347054429178508460045252111277168483122223508341984553910780359158160618103840927212618131705678287611994626821927574388330731167353858806840703145896097592192088430711728375204802505133611750320505615974763796550310968490117030145754349748277670947977237453271833526400698087348221151381816054906505989801484183552764283989087815738069716056682570400842558250296138003966471868899632695500257137936018752176072173463758315445733223710381950280169733274758239566969860196287452385808498131115975456172812737339820170033842287871170412249217390650997531476819068147731021306516342254488120436526405474657947566811436774457433563021110121533607875091342059144842943465554442492539163815827554446774136278714462332638300556765556569727083427034774715109262289009086422707890900251186205333623069878703513283905033738106750496065657639323439785480896775245707052294577710136624020638192677105509117721852222181032703577350804600186550509219802911402234308022602038367433782110301575310424687200077847602529874560783389298667530229225936213916440376647683649827240359624915914034728666253852295856708650644612496298489259494111464601539268929354595380461713000424542119054091390615772812729086511590849063349113514156196604380220138817545004317431216653532415060612186331039493512872647247247615156809033153860219681564832318580888564670905450874980916567274124847630356021409248849201007904199368541933288712710179653108128413108180766002829438021897363278890280801706186470055380626634167257977278445925055353469487789322003127013316122687267137477948832188124566545040728027692798917905301628035831583493608449561024607720516269330367252865947846352877779000972368988511403945742800190209019382246871873668674254290586540381610878256736241204178511483996510994329065124768158345237174984831574891182326940738224345395931923558953246525784907615359749183764397984334643864278126471310412412284871028158801029522620833318710600954496531704946617676462043831217528339831675105719240654394825219808423896750413249604839858147287031799300741173280027277447737282686330423689614164990763228722224380161862296445237874012132031470042220859219134728057831710899683334965811380928434200873773296430193015360327116714243379683226374589096818251873445482660867122789996702794174386234958835416840957231083746774682399737605031096564339999008017399232246749785823149617234055874457629167120039198701452349830712161562395095010451246906163879879617218559987192954774044234840154925702775294013770194972364204562734585183949689901654182594095206265367055379356168810324432298694037002992332701658338937844751644999080941597217149831105966324571822742998924700477479796189670828667690051435982515882923790312103373520414088984620094511259536369431782859611940813881895100349913585130051733133744514566522467208160987804550168272598979233953312046148718429750742224061851690295102940398648039237123454481395678371078850874653838628058975271927575036792205378029958603270696603001198568762902606611171067787775901075464868272580540848790550466411393732411071249699067346706520327678830863190874472863712661028178771050773104718843452828141267089112671393487999748208679488606364653432303641919278207419251768505935473787691911629936968349771873440173841253046729527212556624805543909543859490366195153053122503645042631800556762282557106205850190314174620758105951172138724401690109203837491744890253437941982613170985040760212370425266360621125796197881356708649043564608544824802007761255253902825044855385311543012925286962703853885439675358120590389688979789746174725438005096620903747359203702797780407661195699282539631305077666232925909095870004421778218070001741354819936437506094747010926689931008189050815737866689221574089940698247181724016603490407300303323929243140831582885899869574300568872394209417204009596982886695422549835848025490668098070978408361385263818175035586820398013986024607089768497235293176405212163215310415286764561034394316323544044541161658403772529549963010538163578183618512697467962704354305271356942089343387992374336119447329762964540284801763292477455408494790466182385685725421132415541793325465408711329241013427917392285071886650974445776742826407670622854510484207585334294069848287731901339817017948462953114261421104238647031248077627979557871687502416628621748582748589106708297523708916259134452297763983209854476391461848326356759509168804214769401747215745551702142661421754383850703735151747322027789221565903687833678172214039004933662920756668644882991586631052729373106111296684839618121160346471862503863435046987356833483818490122658695777175422608289994080050482299275054012124574937917317186103561075279857507678438158947548755928035837392813938619375908241979706204312284053850617989115884114780107559512913114373345466928221305596143889663326160685299057681882558947905405393350741456450678955555872235772498044454723093935153616312976770773433116957707569418720570786929625864086724741265561608047330306469534362720769591620763932895396856698872392178469042911547056974732969947063955470938735895580860499704312080233387934935629822103640576562709871037533471799181355043726291010363627191928940827815131160859725740472494999285561884749378434003956234111670060761238499157225980009408355461429807087843752990530789692022231585884433556953782550551777233941064015009201103954820574018191147062013765227821534058910727788471616225849432689317630658012384331285055833435313247987863055860190604872303039103457877315898885436262743988317997349685805605668208184652716062160853954117614111231737760178724082538164598907776767521394670170709459479422884051811752138260910847343482213847403343112944463570827680328208241042335823476720018628391702989699658749318465340846532519756304431348531569986166801368515522704648484918874551984416134750920878574031373707009741773215853258922539779079460203257051953836149554211320404886587936397903128245877620417113547495723871894216826909346102878800223948947719601214508167587431812980611723771338315429254900763550011712907562821376620573170182884053594773313440995569991160489709558437734888683778334336287829633473164801880717641699340208546475137912229703735079320686118661580613655296941712240467078177741859831100643371207051990900604312706207696596262144591973788731418873211533255372589072384437497947221731660677020671960195285843847793800543920761106812671152252044792276536746866246783005937259111684540465771675251826305757211264480456801971030576803998831701102070353111877216025018890229448771543939036531278802701090691969632213115642000468811857392359790506619777112551848658926507280005068331090884645085499421489835833840460681128841804914466164014354651116431251573761125041878405196882128583793614532159468688488759033620862293890455351782432089506909871035776119790704763499287958132788463400484278880806027008411419087803351762177885113008810721476777889358669529285402952772082006382575779427696916363301455195016732672007421576389712144468130500134662570606864195891631635926486628174819494142165031924263947668630766425008739966157351747746541761261213046416199015186247824853794709026264598520559576384140360140202701911487404226434851190535174758834179195766073026328989433743589157822703708047975978274963126210585407408520329891886920422113470915521612198676991660145865863492863473719625761519209742129922376317016708648704885492719315731294005767011272362589028652462093648069407419943339055699197188598675036205611724397314816795444018512583728497418276540798550153919627486095571392429635728200826437635311868098528285123611809557199309995273989232665336922234253350452934478673391990298233514779452964731858167161465982169670140916030469941757331863233727146318713173900382777380295922443012046718832057344737762591268636021048478237145108681914841268964519948606001278277545301422741788476521562311718529360303953503635058523784538929351932707565117708384854030314961300642231030435334397873064975539724877465965649061276080235810182560653199241551331272857491285218179537806292088998979847818006376922698650540396736299819947156832160140464272650707489458682326623096422700058626106585377782251515342665056693788661962547802805006830280989348552855556153313594755054781734457136523460287384426776905143179716733170144873293864329394826853772443662293148338460740842447574295510174809443583052516491578088471978507252718873278369442720505054841079180133504785413979890575052381784956108798185645381701953012455893272482149781207836282552765554904209999508939373341593456982666722102897870363923140481949408637739731996157100960287804631863440132550994123556335117697092175440243824235439320512665268522007868678181009595988153648703759207605379020974464764484994707498264370848878133085307716257940202157199734239637513792845708336047978070875772686010306543323940987260563041062964486196107523488936207757406444114187087420888638347854779716592036227915143167070814177725329242233030929942739119107210378240902715666049092241119862363087674293651568693319153672111625626136065857304411496039444651470018559940886532996696044138910884098969256133499050126775403029965771461637765957800680007888204135714249902708042475979580508463578992193683141390006133645287366053061239833873211975548249424331304355143705169824420192453623206617936116314154653536580602926739745359336594965710706245778541360492227736905635327164955491183661518711069024271121531153323181246077133481415598824021705034745178909184291629521201906197622385911662109325030630812591462643743356318302621513075927420721509855763051814517822620921977358271519522319779900071545552965147938073469333555788405312176770958951128282132166728454268330558201748505550026506402947685663308518239157029752399066129295447697943018547522536357302733240516351011828734103713743412249528705076447943506393466319042637318493486901894773763895870493289051310599497112635059188856700482101858563824441818322246506841705909505235178220563882437385177856877405967181746254370844181345731516423385339151649308948637437024751699629270452699502698639000578803877522401722702680065596259036586497215531420564072706993150635169471469018781019770420836305286708350983175457352926514025498715563961414351954384604099371018194592492064240709367279729006594635241836791761377221983474822518102127416040607928896360473763233348707943470829949402897082009962098840450914441213415007406500951209215533046523303252213980243326395488127130930734235269295183862795205985252143279157183803549616496319957132986635336053384640405947285547834114848302622827495061346550339556724231019713921771312030633575054355976805783282636036704888264567168154615172630540674873500622534422577643380453808346641942653908362639148661605437458491530590130193974489303745179675465553234251611757584204390807132243138608507303023354979627242162160847611597061255631352090110312473420705672760417810876376508022072924735213094251422198918112708342672651910142969161223515257327622158384552750284552595051040814290537657456029023025701542631913601436541857060854026453452562390329338225921742519101613012439914745360594211821449001264903681374894152379516584302190524545844028349848998682487171381373177010384936245650048600278972615819193559008443627507682751271303083557632847862348336100522600374758338521237420949004131637714128891267264252450478708642375623727440982033258487176942927183403624235567421351525968971992804902761418404661120030483262933496399301731636668518812104836715473343996055480138701326857561446500932372747141717157129779091784821720571099558780641154314390423829566546854367073676364087635166831098884181131322661743202703550525973604218530090942599812697359387801174143198858819438556552224820655355078248861243537463266222576119092380884404587005061588546100853673064909722716023068993038395878562943125497645493019044579661279213711316127358482892881541951341469874273340241049845582611575930420607829236884280768180383500343570954233235078679455312548813705688984233494539046186378705537896976838507419850187900638299096751426611665060181414842472525401233226858898315668829939863408689908562038795818767359229430203819847275118243144748434548918119839125126482708672014056768733902653315039245157946230416979901680141294955789635677012621011106276662342448524419288211595790431766424128567097422098080018936213233479337110871158301312602177253997920316799555700217830887707846617379131808233398150572173099049606332771614816461966633821523911598447466427058422358640172972214199295662119065669261128898018415608294390896129720210920260354727616880386901659134624212222499802172846958967401734450824446381358381416484922059649032981255925420718117572941358840774668890785394655921874421477651238188725356670444018377752589677881863694568625404826531190501305029771787408523106976315431610407352625731332805752580512182055098891886310920708230633054226623741176966962140960794189994821266187131840150781172804299714569105932530433988940980930330021069278906493067721419444485318758731655754858742614451281736511184590281194854982581258323784787345669888564791833907393456480631371838527174597966084589388991521098454639154739386249989535622934316626077425879067864268964409700958171270142295194491411083789024802305811086069714033439429472578522341980774853086778057632861933160388346549853739004565250855916007995830162304080515535058736446122099827293358152667516900365890644833495968737948180966937343219616567873286337387525953981050726056118208947917969407828700781705013285646273319732914252464056348901141880131172000711286192025769197827402604759606583512138503236606413618361645369340888086054087019350787932211236196333534491437481776103928918313672368647418082388324721766526907825153830254996357511824434950841060221941285692529110040308476817124365539064433162884455830710199536146978583840381260522664286651906749967278394959775192999922956851200709519317424040630992544335904578503806887392139318002946273066744656786571019529986125334353397862630721497210120820730419333500044319867557550056215788204439051111694187041167950207102592147502709974525443663247267854123816287441055623210210014238139739018618508503074895879415096309978642702983227017621708414516681303766716157631858879779650347471687977279201067278105447044688112109324744144906872819259589269365954491345097175936683126673185588609103593650191524604344609519174463079544840664844153236408838918721060449407584112985566374759898134479894384403926129136272757545002953447612201604726354139445232375181682195501948544054602458235850359487409480900773466229360344304785743473328465269628612700248330955094109254989508186619642584353207360220952179878851246222682885351289822464640640884517126938717077108733097320259132505841846279291919130175433401554870579619485417503515463641448626257584444223947215997205816210706228742970656465788648352425916071938670745496608084266096016875703917870381643999062249418119649813489187519827825381194628199274526864289702177316360229277141557691715751739835984434470397251241428622226095416310947833903711683543072008102219270762074287470065219704048702583296571139276099365845079803745487388413112627014317311334249836350684231405752092772251210035316805878907357450340577485908246808287775603642301376972541313567056282526522063084003122898631060022422866182087782911678493716767895435820431419715638571740569493123700955039133052536353603317748000559581663800908025721622958155855174397842114777971330708273918425703432182209598984365293665735853065031595702769458400390694224583189359909546523223045888915214752397718296564677382815550100692374321586499831029809357959984161707027890961308267637024102159374494903885418614012620069695183431172697791547005653404325364455446965157036645456485261022578329112261092569570480419382998446562566497242156111069500668225253431153270652551702082094553707498339217345315755335585647267792665093583663866451913510963183605454936865872325487940064230379469241005367978515624399320470747817341015315351266504700908704303423573143818634973966311739967373456026387498447972918423789672349301805007883513319885410583417566040580766403773048317860308506656142585457864245746153982435552179227791285491641438744396388730252870607723776769199845418512889987519546724643603314270272544477332755362939252472801581788622246703744861800384578468524906862324398674576549050078686252107856400927009880535299126258062639662593744438213784693498377063277874603610206113082170632693220992219718438069941998858473121517900071152168444446400687061035439549899696469183538602400184777999983214462952865138422486032279700298429422664617936647194260337897857917641100028572009111013080578849160828879126062821063651646425557323656341066212927994440926871480984198360310876372425647567498762179113360522793387029278413959390081895322230201866560785078919776332771148340038016872783936349842822790638682965243686611057267186590159890372776333907634217849092577367198178532977886285226905345933198868764348647584722426504613613065819578444544043711990523811232628263415243826283696267197532747669957298405391968492054222998131330477153928367316706089513411969019503615929053295853349464320086530504754246018531559729675061998035589062831925902256294016656722432574296135583345769048670112618005427949626626153566316139981511718323621855690100966155596329763027748938092304315393431353661913012512125260147757913132192387675747772978156608725594349496357663659212546756199910782873006080606431130729538371008584298520879904856650701420016310753172414590661143231766870574365214089778576272644004276728780426755282415249748144958322821175068390797177597017461132660284907429303769588849846158630672306437284538297039434935598688931776942552430813789880319466321409745979248426055012975925911364428651282529862249972461764791871569506327277906021651983564586387059433153673349926607944637624779398834148419474505310153128790316963684325319258827774077969189323732230625462504734405088574107874248749468407189030044730328751673833579126815545171327723567948825927251170356945585127844344866607476682263260450397898787630376540063000888804943240104838207924415527195781442879955723810939135105872249659865673134460987451570849373729136103554289745522948118009613133919967214714775443402349341571639805307253138590537182002293277005422766934936320584221011941770132675016035681727436677631708857410018380769845195171069755668796745380098066924846824037453212405769676894873877411356600522198488250315848263597809525120048849729220370600207822985096956522177804835670497088451293205315050343822928433452701130617082309236589138809569242304796088869704154787013039460676414950741089760266203023909004736392182534557063148907971937380626425552024005543342028483070101255272644100185755242958354081498415621239430137993722295081033501340448101548189903596445443402720273871381892339108130468534782570603929878796329151561058919098484625369174159678660159402430665189115412213904078293781231853638703001021508562140838304462347674494813534020447564834928936973920831144827826656516622842726421082219467340815318120162623450558851428319418167770670001456564687416457738524518057568820639287559013207678466530421772942286269123907213111219379148777653171547304552647199852654767896406693362119485056292564181012775322612401897679817560568160564212657103190650167126301181952781319858820000541278516839650724678847480619089419725914903840542653322521369599890730311275263240825253111545851595690884172318002265308326216114117617055718494958716691423858752677070312933035573332090075335977768816833797387921672041251043399221610400425423527385390687954652733395936893413380440153041111876358507961075395765856791062489998863130509974079981386031374600921618981914206126312892630983808217435134456460034061712338131997517321073806568641237823371160300305685358119820624950092001517140032867131565898983309599168546226545776804245812759497424140659440410959562420247866883236357264225379352924004348520073292127293652353958770611347882128209266474072493057491631827504397792850211117854536945195315373150961754478598686341041833839333675041470067328146802170759735284987600431048112991528527097055423608774112205091517082944192727658907995662147697021588986000955734048903139654510520308986880872632569614241373230457356822794205471675813247794695356755007512578557149641527252910713198949921616559022508369692608265868675543011606132989280033015867246628288001479805719192317059185600862965974834572990853330959065982938970819607954190522681548555162917644167638765540769679692809166075581066687614216875749220400777985558425734456677906187909419528726133898222471094191492969425149523415362977923817815618208510236531524931600227789646882066068365647531603763378910176001305600847067446258591948216099946566725652534071017206187351610994585717908450667259483056145498039896220418405482080074361743558761749720673917369663159008174772202625136560567813128389417500328796558615720889926649051817163969478383777207532413427976767991124950888694442679042024508429877889209933868105840404864971913957069196792776360140024626826151317767470430654121881556974738208914846629610769861963364060574036619959991387451366936102622007400909805238441164836918594862389107545862626549956833728556255139697289727341114011332318794101200286229275591135263402549893468538026807899896305817726672246462660990258827890054751627795357315581362893188803301117199553612061381078128949706586200137706721173526084714453517120948330435090007663712262031571276270068124072544913968594739542095020869200435881961099451342079003637059700552847003473532465929101679205615289355975123610196295623015159542083063859024552556033308709474156249658213640056278468567461989445823872120651875892100092886348992559676101764254428805491192942385387955400488168348931352604754249637838784064026851475180239590985469599422125413756639569497375233724238518110135161810999475995860753208819505207878215451427245103828722820487258375000576258287999459108375914391704243837497306601899957798146220946445535021862360181667624077837045612377304217429928615422369083544611542706491596212331398225877439570116460999193589776647609709686075661195735980220019089063615607945195513545485556259376615325065018417261569339838136552769778810336232300655163054114980407287031763342495314571377523403856419402276506890411541717507858032023447247168145342365014715786144691885904984873420077638651585055893824968461742580910757167471710636467315428152170231360155681407025936048256976641670700075950869592490345064590642662427715393599728052569307746186360317132496636323272109970088146736694790153760490224112985188650503748703523660068342226520567478353044678361446055747080443353785406077613013884278459699420405039546320697756266686197187081537200687419478407444233347019531095631646886128580523875617271428586950026388408337818452382405871875629846889758909645303195337270208954880859763399291643285222635597923575418003631418536097143515958631317400815265689476554887161759903485314354186622944944678712705679488069658262904374936032824868333205523615818377530890252862450327596580680192401846411126991084411294975645644006470993419394588410062898215664595378700223033279811281099187495501153605690803989713261990182409225350444274239865600886892135299804099384575250726312716416956410566582200203799883657733790335574264346336644068617745047183717436261164465117242461908665661306057331869693216481195276749590493979114961466077616816920300365876587341536412588321843773695492773476049909271785923405651949031625695610862633995108848925668308077302639979919151573717073686459919828922635029913047822301466537123769610268699144075706199903402982857613883032416809981827331059627474550409948200867543325430540263282396299483293802678209388660391066885006797402222332205491187762915744434424960023831034248865280712614669400870118234641122818846919794448147700142971185835354647209768054445615065423573535413695188581224160623026691587265396840671264110158766113180942509483660282039126203877472349774492326956304915459116979948163950421017269269499506656798890373019674344552591404058683404338187135967355018385884991235042837113384302649771912553455561587302966363612090681610833059966044864535308964175882114288748717171627041881361522585875772351191225811103628625984737813394504676846281119204527278872866028567153281205307729277781124033203611123197991922789624885035267698597262786834447429878111124964902806250756134270934338735667768084317495401806296398846091201901856849087443730433584074966541933438895628618774838224055066911536173556550223655128383430514407155928823756013109165418426139093144700789526673459075953008739384701989564655318871572492566904108614983663307131243961814678637915306001506475723767055281360114856264068149744749564131911358031000544316766947443600899547570397444263909825387296834757384081018618838214944970562124969810191127033108290116328839786719182725915185068069541936184666942742832274501462955362004666269730064257218604753971356173925382613409117918460678129747085629951337876712360122779648842888906990072052764785013443479045606716578042057406163497820924798553940387702057905710510945561221079956093380724948656766998164897783365785793090535660260472530692825529197605665161421504104863227245384258477046826199069481863881569703539493552034971552360505722235549177751502079196065273547640923070034618508857905035927159500901215253232134148064568996980753875622529918022227060829662145582149110277748436911971016670111988342812609452240889520163881027090687587953707405957540063863725999303311397097822258558195358394278114362636054281770561474212052128889805521295207289443706829184528168549300152192183155471026424945629004981715409876143393005183091069856820878904047746305886043031643135679151204927453175397745395851097539914757010268882764078316617096288521589126291146306597101675661030531231668723129348868050057752564170675577656681975256883608362311998807058854232962427613003470241215424757711189021558570437359895822563233989927764382279732000953489318661490955355298215823303084373975107990370028094427785862807624539764859252878188969535934126007165018781040968023886043813336823714653330749220176392405741969588192279443384737313814993918797179626129569456806792148767174692484294694114585240608974257935536702848080514147604292171184973291495394620290437131860328533566838762427430596560727765847720170999821582449187069235174277362609154651019941140274729096112289900637332736198036780642053572465096829075399302991083941341281516151716238732072741683650242404610652439558905546520761488518410118124793487605729679009026537509505238824345059001467571579256395883921618031237684135610616647240550942059861761754337761306532295639087522577618173513855998738599704067520325114358519292156053792164183157521181473403162623518297492681081847935311297355973911374817347904464813239721261469139351885864454859257475960214806443980242856643245671826336479376678651979527175617737662376018101947002607065504525546151600848008571689115063875801190869204171122491798164108055346912250237489747307495775315746286778606749265007212283574054287260162328879129724344279016069768152236492915084097370766237564663385847597745002080305409521421360999791672805374434729403724292534094532292202126991703320865445781065243575533660174096290907762111657002746724142222288370027202063399908023134476028461191457874791717668342707453304937742062283278619161816996831427447840359587698276186439458536123896933611952519679578046690642312398996492791839931632672532592069975810547366175850212191561177297218278212420045689143037097398977038770910893363216401470679543506259090341756966644678638070362030395285068041504078042451295465301523676034919916425373223921091006789733201533941295789989647010892760319958881427601524484275034705585607165213092900470415635043253259213913490224129793250176041234922781953861260279162178334300227141953289844998394069593900577144194125669639097741285407747382212172247092258930811740353535312127677039712544754352598928124667054759200008876208437483569029173738459670207259726854117702411971587367849027437847987188888641907676805424312636922119575723330814722018338629723999876329681242631880634286661680980960384592020729406347960201749540591688685567532236544462109670578784761957840517194262393412884481648267435572318269275716701387739679374184452836697296786220828232747009755437332193674146808603936604548585026482489156896573712167145389770455086732217366399931013570723213936601967245272285190906435478681195067289819404842431554538624691368103438022100812794476658812394370631546525304910408112375580192108128358595736789703147638374335055441694036152554795674551658284015354292654141568238932103707690321900526992153779790944778836667782913338590286380647504045937938319066316478684223476204122740955366988189101466826505697195449900935124268018666380585022540597491877495959579639993169626857939620581575410536238798054311837717292529626418906101916002594481068752110585224149439829030722371271499084376001438008117978799183216675893058047865852017494244611289026806658093112615197917866575252519890166103435895566895828648966355259819061680423420988177487330347221589794448762995197125389852823801384996223683352677512795725837723199030888456502181753056720270166392873453577603414649980735462604992152370901370003028353668132956933613372665724181233338779105633149115274427247864780095269324868518788108800563426156958112950616733791543692744933945373184607738691525651442706903966568322341804455789369119199764776498999085556268636500441109945091474758257363298046438976671031373695588431660838206836158166082584966218915047198069477823750814048544288987309446116008434023889061319473757810082682828704724210984971309283404712314372026258139934715977059109599399873721945359549127114479577827430244894609309306377089448796897884626103280319785251029353937177284063334487630938420460779708559428208879451472049797207981808504481944507118920022439801282243255635044811287477072444113666291808784743512714043707520546261064448053914417632960418007883284011137464692234967231212877517714984048129145252264558480702396566246648369450720673504444460361760541818905310061295604066689100222798277363292051259288586487425258071670514696645019505730852441797078996556138006716750762909723334704090788044931170987732773369049628706365655414165286726615142386221361400598382634009590364653573837735422085969050227621424657235876777808187050576459961839920043516001448571134918324462359066422851268812844464988891431423737800451122213912976462933717306800121912022520596178182859755129996429036098018095857000789513765620717573752238705769010361142162556622891943755349818728927961563771270574950866381365435031623210222386253337911764950919597881040130459933457230105611566894128688939443717576066619560598648533285928184689810568665281551064269416095258696333569155966850361254975013540022582383957958389451420445618813514528730572602682714601966068312855600464521624315734874777692508167393834263903165412600717990625347346328592713344134457036709879622353866004696472283074726009605996081594059405077363273131916550400300782024377662787771436014056891370707892703793324142147876441488561861760183302703389375255400005858234954590697243110398131551615722586896483986550045422079935181090723377570520090385134733344770448372857764086329086695786865186675948928192972024547245908606182287041948753384603801735173724181053761957876620904454026992091563095525179562278320745608055351814685526965790703911462508175347895483840828597150918040870040269838126905110549931094058473704880932390169906532411127281601881196852337032104277557160745307415383234098181563913226117712699273163912251478059380624239857368460277510097959256969753814861264572883420227882980477372389519820636524474131863516484744855991080595037338219496613656963223458854901575404966415477604410416229370182638474081868776393006671750878551338411043254796739269484178183571072163474294801757235003748874431882215179667640010104833558519371376090964081750857646968621633215934913518732619181788544524903559479815143853342319683881181388353224378704450171656065389932802640490097139414727974326140103582585327037975820667226377976093561788373253029311998119521022592627434047651317412212903565827057635338274422946255503642533697417106943460534717194975468329263245875195019294745461104697334120068309393230906067521715618936751902609120181298886521189272401118393750756630613728791163824910706154406360877413126008407819552735104674987781729830740488448777804741490373618993204764867624168675924598434639954590548783007968581659874311321711350234345025977551055699454981287137871773109528514983208132141635020467518646693814926796680723906556090817689573783587378346538716068021756447688280869725439793826715823349658214950262783140297997269056902865745268494313741904866500966428101130287157677639757637067372918716519143772790008201477792945266489051691639053595526438899341041134792074721093246379925412532142973679560699397769886939816278323217198114703258688281073988285398336235452617268122649948113590967321599729729884279997582359646521417569670506471573452372634266438129157640944940173463735394160038578824774919306537578677623926365986320402307663761249778186574113080358842334213148541333367041153468356218206659926249235322384197962747323518924529636540810313896689245135679180973546939866203805895213126981128416959329454256884945214348102738947411250157707579382181708875045903550650401333352915982114773080875790018909713772845180801027850982669172177145379073652765089102244102292280898186508727606995838077908374431779868064934359721907445006201092320908074322532952317348368717793630982752123796498568675916194225138264335363284524649767068059407775966999275151893477500455187875383323090710787129026081797547979939743177996718097983750981070585906459860769119872748706876716256262435918848707996867769370833540800682612082787845572537138576103878379585214187282278364488618130284095308651670957742201389404443794313182670567317432899667605306702889014698193838251715946631487354754491599382874862078815083222966725945278719263189212335877781630440895935929484918575388984613418687255408986714779559062515959192103904186781381752889084416718639251555552434716889410835038639314239290275116627390360084944167881312407586834724999961810115470755782524544420178090148965050268921977741993890927975599262360732298378551778033118246193495413778450494514061112736152063375153227324243810919004471171349591359545164428251595235409106688875464552576391137929325084461787761423009013560897729266479310229337893518475826484574767663934013863408999662141138582079802802618461930281287229392946152613403843108570844178759279410225531230402937317226963844550575432145084642717950674113504558080162427276654414402785618895981135579303696794148339059626370565743645359756622945902288228756428138675110623573284287073693193051257655864386254864939885161732657344237819100046973812438106634775268975320286007977445380515546041743480911941406225771846421453956058962557357646718191218950868854153655435177324021083058067919663742095303260156445503415982846615774521546998986972070265229373205112881746587855133813201499279871978115597052328999037469827536598127592170568219960902902707441977578551789249099283873976029329163630906268959393693160876495429509101760811121991008965456166644544425477278470532169052112424520760925761942500907477671397994480355724591438272752402699094389250965594558232400400397874944882622866077558743323525463120002636843896789135275498557428235418831114587172294526858551353858109649758162071299441905825495297940018168337533807077205325043388938280934132264746743622008050976839993288761993959309755238616130023848098577724332407377837923646440197271106070081909518948855512926226522530654274607303219045158572257458585935786221026021350206968266787392810976929385732487926868234344929300603725869220184206993436170265447311573708885808886175368928859897917646262335300131704785248353597843087649468521951333873591113406423135864025633094416116904878466105061158036812472630775059591760879897457283767416135716092379269812057830399562018762037185881998654643616839728241906884310860975275375951895917999919724951277016450739718594903858255427874157759464182106120575641521296053339033296808184595962044595798616951993772567773337897635944470943733723732595117657389801853672414386035196400248590706038178163808650655230034181331821897431128561221999957714870416766123819287426710381387514119704265820619053717595083373683632919336351830119877539052270965415169530058466510927121246305065754237502206915606841772961274186278208326604064877733495938171667753289954542192633085529689473942798193308040839940777112070606811458140415419908262159691832768541602378694679433562020603613168596155666102078326955763258877688989243112760540433478124539647921620777219317673682556922433091771743485318309004438343723553409297132691193179997209547904442386821508389009443662309375331691792468722217800452157403019462321039330017557934826479757281064289696196007172115297459286498337703454956286949829297737931268288535803247389404653608716270746839426976544962891962817016723873384626362888730651355753251906073734102320138778106465271299575968072874844164225688130504218617560948533238104886981300860125151498426016253449733938063858957905808248898154198466082165841298372611844083457996326952897970519014810588034152422014768411823182913868140071298376297829951334081256116295719418335500884665424607148848671951562247012805582710432744800228053254732418939124029815083969703052517808989399417702761788523276861789319515959909827295224839223610156395829199827798579506533495753253956052498698106712918269341692000101587158550904779259301712388590527424843677257181775606249120604957252392598219180752386132605223680944031980951619256318476728109809522907412211192082261820927755408680581717696978769841303406798005493302857452775672372387131576023801305805566780576876005709904752004928926951523466343016049439697299463893593741457665008313478415520063479651296282513434721493009530697500652255983875577716498888107055506424537762770380909152636828529676108169108009322211509737922080006450394997383510654267376302483794803074012362134870038873222193346157884849400900631650050034028053148632605324144118713880039420363048087186576273845860589272577900449041770552874767026928874088090972842134052759454989774174250867848007527880255960283271937841899448915705839691141754579442313807748267999205608331499742731584914563591317794489432859060335123440620902565075939802790018159547311794035413910166048772341447122504082665900217658312943020147924103992424740479197184375824399034679865506658409997952937181487506966308829576987553207282657208494327385005040269851024388578701804908194655496557297889795482672331217353037104052217599915548305799551321997388672402096096321861132160715318128406045199071211846802895312875393880474707449405403349789101529709921070462350694916142934933539550426098025366801232668741074492193117783201450580665908362864593944394206288150073241978422700169742336714244111196127204946211020904719643640235219622696140339146705252514028460430516313719610053300365558021606165378114798590343454214111736855850391966711113536913300532176171317993715200214046948927299610966128434298280526377768817723162581783700610160754450619254376974675972462240908518675225692561418132037297480405888884365566129618126669369166873017341222347175594975978450520039161550864622768699486354445108714189592372986364644263486802879688331159309995711703746089185076711074421999033929329160112090174973433698133902442392730698192515970380515390434530095955077223692992764225506748281763832048800586335039202237053426008352848047695017314956330968502877859582098985687943419666137982850451686324045580588897310838448433467722664957377613113347151461075918843925891686041642876014759469091114316795288838894864817326933082873788201785481828353099952569214547413528152372732490536463427735958505516868152824334912104447573610400822954078023546895572620890027378680691957785280010237862173845426380507288006870624480811879189966157670903863908610385690336731812177385873535276124045412957872515723698751995932282182816527691230013468011949395933461779210379799446185433338722236075670453821342116172011710831915271208107898712381714385635374877995212666390829551585026660767961805976855230224193756596021580384255210205814740834711857031495476060752889267482737793452633312126006152716505972501951857987215187462574217141602930041406176697351584857443885334330534486357547503670122397012687317542294789663449214591312555787051113857060602094377871229195216018590953900005182111083279457577416705066761593947158482253173124289971671584063199200496674779080638567872912751168111610970293116306148916356394455529326036420458819342467798835837538527634472328273656658505014959419636309183106912610938674231556547631802914772862529352789705870417500448609265778825216695014737937040173660580409365015934377909639187142048249708265888365243872537253418804084852858260417883663816843120465404985478655447020373314913215632711188270590978631904826884419707482610424766912652082233023450296231009217278896927116977555670195407374546944333781286622563671272013182594891767208120547332994251640434699320815635066741746656646005181835739252310680139472310233975728747319808422695948693806823166373389822971711463277782700527955081024166217245467798920075117865304592748665920331776403667147468871655171416814656920338404863530161651614636141445278956982104023614284473897921197914578840115181722896075435124530709295003997560410688415192214987816955161009541244245395241155469647734471202421001610689252754713304881354815032587833847911392295957188313751572952855160479429619667782581660985493826234574508045782080456457703847578505791690046254916168740881476701908593434412578921065339871030264792353291771011333684497828540434031324021674881289655638175006854560746104831539633576009455707990130943583546273553711074846925428061266779676916564705261021197556139212767635230840869205727810890729038729496159489872905767552698502299827261143691458303698409081707158606852567928335327409249213002576174096767067122304840415409322573753893765884803505629670110074708496455074413251739102736974829899243670507760086810042618499503950895844873789168009500940572487483232061247473922591470523196073027168968913522332978442876934016196222208025297703251322230317796135839685926522288811143092377217605180928926143873436087537648323518571908237045711524200817723298875142899427707351301603242688660394731977404980256174518640928376781967084377482881407808557305733392376368085547685980640583915057295894084281803407749632014531234093211767817337553488994383054780102705364666447986776469718177018245432952442184121130913399726789931314631206731271950255481067875190173408948083206924404639500833055443691298536125132568677452967554510596589693720807565028533345306598292386074353549097316238553025063569592388599091513138577865332304093213655359591180004676210384755550249742972895051735359798491567065249332086202261905058748717856429801106690050402523304300388062922466023383323075309228499123631556607012498869096528337850249491119920921757915254425543783150935865159971549930183275953516679620135507327607995473695669519301032097606573653130423774343047636786399566674037610175608187541658587362974406017261789177175997327430524949977909073038969065787564608173516770650752174157165278097633257835270566914535213580377883390743003133568904247670433580087827253642018424531013167605631756372272897165769229992204969960493910962801909313183188737577492823436015861975971341930785661865000593770980205844412774552978900514280592337248679412614184344409331654458040238954738780821409237000843974618427707919673105364409345114827661964905636496974419883112848215662553644637462282219935591347075002098445181635419943495156589616434574002525872312151952594684304858916554752976533537571104627052488768723457017456394270312422251397795699063401076132703626564296535406274417913115075336900899488442332636732279416164524027762457254335032523409057606879935140089360780430002729391137759419126053089930735794531229487705359770285165247596800596798527025936135128131242070693659783285204662552998254387462249992486867227221656054873871203495901742897595389254156675027294781431949027086603884215751310898565715458128130336357149568886146645578100851570070616651804476149172655467106064723706677618707687311311867029998432522307278119394665707970972862269952597906157001494426757382870259858911193253475181923473700035799897530418515598721524723617839036058742481069162322788709450803426677562421623984903382440026420765768903926351627070557785205140588748917184680452342412847418439106072398636096304459492740434173959022658526666484919415273930227119678931845096930411964394347649446750318474050504873448203045958079008441170287673612776312469431231337322110183298328991732428022852444925433513350568805839999279059594563110018296511500019810506345741593046984306425578820886271392808705824005886794020221755256944288339507983444229089827698747084887330956517173784598132121031325711875896651991575816278298577269970820517737435857078255028033204727462236394413467568273574826630102335844771731090200571523114452925564151312951455687229439686665927565016125565934462843391853463392599128375083837179305552163230671116313587621114822831525617548018657097547722393164807346978072280619439402633697679149435653073692123977511656021326006998613183444785026033884800542457475044825247239131437986307568217948007569921959089972154720493747464473954844583798864256937762744863919804612541759125827359767615748924433066226524894186910723478117050358616012706060600666949013038005903328027457813335127174113858228332331919977537615411455366346485199463283497219159724551803657112326973682032609171759213256439106591680686721223965205452540258299147351819712290618474305157657197708136233439887971988948786961301540407692703268954352613556027012241389940115363298720779708355425460946499371151968996313803079613123092521895579967785888067862399831878066978164565158718922945011705799928336157445717188644387509850699140440259168446481840672460270132164002243142096362663892660239878375422806985542130514540580771190285884343509076482121356334838432377988326291720041459757998352665964662535468293670023913204788011074272372562020631208041143086686282806925849362164177486414744838778022643320355544714159214521800982855021363664774448637062856275231426928437179461132703966812368583758377637817576451411617746624490637751174862333246512511471773447045422736464191735595786696236436565961633456966537724935719044088570471308978492310612496410976455440521011525497973197720545262530695504669902788014807009602026227736193691455695632854759304752174786824644743249169360220444277073910785459291839247474251538447286088691479766523177147698722324056498342705727304654329708044506953621212767293003656472494792085103872577785484618995849036242503537178571782029579583208741528720131282535952073855768444185468331049675167535645386906489029783750907363362929002390522196027308201756225665230304201506423876908169030692957844898029090696027831308337981587518287528392893154289801558659955387397737213218625945051995159108732409076325254570995495952329410282435102639382871876945257265455971841495043262454196576983067839832562210924189558822405909160271007374451362214864347539812575071667162100869405762341844978513506077320739576867492263240513522189675703379763985355241351567581434041943883535959641071365921268087798679619401458598634257024633533779098066054060816852356986511193016484915688068847047619878245460729186681019805765518737212398985447987023569051537840456975088086011759268536111684557409971776386449000734574493753518563841433518158539641851950166687054017846734312443920245262197379409224829128852205501880665406468633480249227633534847156287193091864887242283020896557018244159189546143171728868526446941224782785722715593707136455507424747660027376337245763405525625034410369243565896279093376089916876176425568631922876073206092577331442972368517640440885291421825663721881253251824425531765179966456344555665098982136620012242007853371738773128165876891466505927215499200440830706088063900478946364012772207986256386020110264015745557035789932351672179154845616936896097785882572789980815590669715832405000798336096857683465768947450344992733535932039722118011520576903340132459441492665814404663400309983517371111006880419039221707799689825481486912972497588614496598185106473666148014815855130407367909193444995642241522093328950562213525319189573425375153116023214616978524026777389028623104682737779342065446582663987797936627109129387711676633629974086287869592654228443915943512964813460721214973465966925146977310156969894845613802918499405874671684401637722135532400501217349685074493314228871355338447256603650116017507632151246044473765413784342155718424972300991771932401653278915474185857184661161977359212379047766433933645947818474414806210377651375744245992573857395749603280801634020342064550411058708784503124246351951585238713674788317736451190090178510761139536495571587136620158012006019636637735026987297384093344917426994853971044853582979625437457832469219940320875457911679980665880636031285116531407452984739020346293368345024497473502676843185028501555808646310498489737823417498631983510322613789462238547673190154088386420274544036366138818589636771205474864966167779645704605992398841609005874473716359552436723854099941992825358498674818198650880204250245768443105875191030323286308590047458938373043848631046230120288273156695975026388634635004614428463826909770880821264561170940507317113847532947425887500172648414885785214806835211633611361632534939594671486304272894824346704237171149749610608900257366595008100751178810261703739487150050088280072823100442895565371155746949529312421789036479707468281694911759034546680053102999873003685711304609662798981813123869871345343433058795723722446880116242049379444764239951202946914303841543507187224780752379382065595568265872840636009360528018601802059650899833025965441289830563551086948135047632707859426243188153487640033824993519594898937109434725751060823297891652399826544655296830234503800649167559772693306094569454816926118457665955197817874087155763000454321647119238592925001496326759122997752546434275812748723774764078764262246549636688015229090652528038010623662069449323442511776021125206219390112510381257421394443242176520568931965834119926344459686204740118425272615652754312927980985021274064783730963490748523774088629141096450671430236945583774658376854739316862666573564403292298998735381045208351529591116205865674002435650630570920400433938009601873655746389427357992647960659128646944750755441754486998245302748828941675295986447796088595887244268812129965609746451941520153498632413635939301991394945603595991947325559516997546440908739684318242011056321206739253691293748809319012952542196728861026040570148370814923063026993735079505529536627884575999750568760884433734119007319650122554753850627949369078921715424811891296305193733420479806744300974941129514250868567782692403026412589544084705852745656881850270110623033517101507570447643951236146635951294661900070093638179309627239135792524413494722568049637391187208996977988301375555874060962120892877983299133817498190430942833504821470252782359298954967304944309321813708130396418191826144403804003997852726365399245723894399718545212078343695624939463858863683723709141926656007448353845773943456865302965340790360612779539130118230253359721298937630601456391722843974648695821030425633325881040683222141949468073671007047649033608284573067070221672476134193105056390091049643384949443478757374508978727891039933478675934508173839497716352005286047877817910624871425978101093563632748901843941795993851035573430442128599198827536146105641960839698390739017474046914447107957963920635524105108746133646133700267483089261446328420355126347928175845811145998539932480035619713462787665514813510519428674227673181286028633217137956484724171555823633673481258961232780995264104776325407930627534739043481679515789951216715041299691134274846541467544077155605085716635271555611613854089073598676677485702873336570639253532056657645705785802871257121587052228684446376217043075502561350408945975967699469458632482481927855197095557710418218540751829353121757214404364004001215421201427452576581490815829213106350123450037286348215850739889630487881298359202930807345947360828133785810477471815028225547171701594431414862333855100656820759993766583520902512764571124857330066377094225703111091277207480933667630159196067446443378589386437477784819984119614664343452149659567049501542107101542439665773407321787761239618848766244069604189675905951257548918412874087583469400446103929767976795279968369655523263174086331790815948395268526945611362848049269735514503740194273278356169903944724712732039370169013225720262243411837521686379820745833908639532019928788020161295512302195680999275562270971637285807155799748924112681033343055135415793075995418079182303405256260014852281412813586930159102353863161800538232229839798465428596573511561911644967386330188238428289055478697293803559737259607717413550873901869023211773300544454863122247902720907928184425639597540225887641030400407371948301553981510285852050504006145811784765217081433322218142288118795305239735088618982197170670941446887550249932798888324867319151838267160541047894136839213003687523146827370626058256163804879261527477641845418512055328664096825110758927923973513070215440118172710668866376576451571750522095780663726012049522141856894987119012527238146579915107687273718350276965715307939572669301907464805778931284262629226394105205342238166248242887418648928723075300560237392022293988562859620020445203832110542649445511886099014555518804566556492543505484986285227707214108733869428660028286008353431398979626104404474521396292633389831315661429546804732975712389604733507732249057740764388901192047924853729071681384066571674941827186556430946305197681555578126172254278739732055649301719737615228865421168577307609582432491443378101535031918663788897522369777239655575128753537094335924629188975791182319633977865950180705584375735562974750731912501761959974184107067494340942836356835656485565674080051681231255309730526659860051759283695500980738491646809590019357235383009098783672725043226307973423146678700632944615702508886491762363296793329102953716927623572643067701051046859949644401898936454922072112013514172116697592200902699367295344259752931526602653477041159696500479610275133742890428169638454781395082055364971596959476145622424983759104196931932361652830946614936746973355198267730415907972438732568568163727627742910429987764026622205973211247286251824846975208338530447567239973546516797172534674053551212231772229065792316528586724821095738238271498573589525823976861443052883162195862619803696632175666642771017049613002970439834395619591089384160715574152914670057664477837488253466724629095487007053440180077162170272034125454137358636753882561598506989500988502388936258750726267030432091450255424484080221194498862088164060330990548922620865211756802731173174569624001921584514403903654235338593965748174138276068970771462717720993826859739647221059553667209587113626573599790684926632140658097921200532627164363678160372170976779859379038431439588455916922720976186022620271830565559843094741657108149792984606345450190077053651813344791866906073393146849797229540104031137493231231395075118062556444240799386928872097407727852087749802194925067204751163702959871155721397414216083358906414674414761991796294053615391879831846809758003558397857661383085378378990006357827021269049951248822967768049797032235559138182952005194820150806034732799435613806851280675514132626101729734344345302712242510719900564587840364893254619403235250548659352496646504033455782856016381278598204356861565823901635471846418534267002860846002388062174550064965483043563362223255676139304602823382205351648919668423615515963995085732040374086709684806495068143756418840687220018868172607639243492987136826657589138333499916795908150589679401430260018841981644646281722686981095829906185110702820677418303586947028107558978382096368985114017018575355322454360888817231147080586888054020028576658866495937030446689866378093501971148006131629061879066314461943494207297751863805843841642190573836937599450685282969104828928740815709834118266059731266879569242314849156473851476945845227407053650191365757662753594306469601967355303979859188410788964112098270641770846402464757953420550937762899941473678705351142811238227863344189491633274903107158926109868944422964454194314697743581700166580561082624869890278993071791584882897830523966526351087028229696806620947980262798356255391401637324203968542588304790467646837641859921664994728775644043934812729699540911715513054861889646961754396329925286050797308908945855801980123667069446165076145901356266225037454575942755665992912551186589193514592926298943972946989283128112789459000157406786191948719709088758766479787337496101160499926643916540685458856108944046146354759064505383363571052570297504601681287483276833692351059299189900437414323471660517081124784153268986044445799023026990990770007495109205193526232186794750580293095270855055608148943745546881177964864129733102777882884275352181261720203027303950432373959412122674025383259229919850905633898893183467770788415933143302460411447176186282481026420034433414473035417682428547255762459057733508094558312422485467331975537648131355751421768106674590598198895593924120422563871789194149722669949948657104286404993432904661327360830551695503143927433370039152362289892245300615104082020047333590689897953849898062483741277040788470875984278535940994823890909764836151573341025612171548400227940841602706628309083204490854528105745994070167615209957758337125495690012835023908071842758770956916020610348846555260489792046373685395012668072033540674566136729183491459452151650088469522375242790446609150988571921903209163901449710762065156730511168441638916896929556455465979592046804687592605701893853097788811610000679624442245892946040947296178226439624116154461461423264643310037503396879075877983764931076552246243075802285948482039722500507102193579166253929231713458487502667191339289353190025221397670248092687418766812150107397732922266460359691659105928484109618362861042796524122944107790838080115210941981457175529271546041705369675455024406675947730534341607685757512393594549248818334322897017682864972848918922693671143590706050589626234544798704420156795368355435046117719766128760680346873177550510952080041829263050915331219829089486897085058947580593581142152457810631790155918568554669365933251961056373023927202935614696768114669765425635031465074293195531566995661697080461344893883043969589263161063595390937993724674115920281984220312125275737399647707498114280389827568907887667637090081159496998315802753126880800607808698140858413865998524066964526510597357648767861795178654289755334226334660882594822931868719179694888469127947308328808109892051951516526520318401345223419119905038557088406369724677222732342462999880684905870982457324892348875232431186443740766255502775315618565039307939482572616686240345734925728406000202340002991197894568825019380783742920482851899049379750273417081846284069067889004746917464844703778850346219297097487332743712889509310058213953262893144402512742469191164362692061491604934640304778538874836641191572518660773010261935375452260731627328063436635085527378203726330353868386617488500933979523602882953558985687828016256437485999538007709606281911908447734002538655412793837586230862874320853540644947838248659400624658897659895680048613958550352857597879049698707570861433770298811350130705696919878878631778684223592908508621499638855268155051088948455445783526660188711706192539700724882760989054858075199693186430022212554584624447870886547528494579871527786924857518524725956288931045865833401358045243366100300850591071861261675136613004576407083120650379303781574365790391681277670436765441129101826895573308111184609037206088340722360891656965292257715044649504486376257825854618150857234831320344380685224991098209919807285122740717145047964827243765801643773907243260350659679946930197088375181770152312536583157535772179036734435605605834496901438029456257036058638318015778713745051627688964954615939847654801129307825226574014689198783000614199726217461828025486417200540929453165278045150003044585934357688687263966474818055986228915885252222033886179276676191432578366294051321758967375842265590751954560578252893815705752278831647415650494839664799714012278434696768742925443827597461626846787523771844041015561567906531464186118605125820126894225727327851919231626354210555490137017278228568933128796900328788736171970460824422188646265130960631241742265695595867436092060977284413984512816618705109981795603696762466370465687487791794374255131040329119675572083533925097295528944571110555780686571468404616739975481014505392440509662502840268464280365915062340591816144964051225538199331482168172274817145402882134382058166976477401163879395200518165813502501989425120806197532443894967278378886497929590404839420549448763015595225940944387991349212174133994031570079817174433148128008750079692929203612489849667043880925821992993342504074399968567717206502304754553808881829626399876900888897532887412617897873707407600049955826809126182747695227824308634903485133464339067312222946631086287744745366845851951290720036271637149107828000114249739123093104066396370801528135291144810459595429900171856348677661477338067632689995898868933465197805320739912462070108885618557247676409063561499744039248180212971828586999039009813775957793176013815096798266210126167130405842080902413207851529325359091622385921275495029889568345615749196672687067650397204855299413723978418405476316664975484736870641776272728570269837709505545384866560483434314748177543096599564717508850152938354863888708470166183164043314777483106581644530146403426524470930487193408772913586276079840436833027543344330667841368205978623862531888294075839265246161100332297437542960012031397681905904221703060476975944999743801152843428022791046798559085225820954791996454453243025840797201519500984321296480330059274304727372702428021567119672233359568877534644302185494162462723366813982757466219341490470233163142771841390555379299241467058851757862041274842874027647086238022279812950226600554316777117058611755799362795396248946232825060586287956806962765145371929765831107140905879450875201908302051537477702685007975250033201296772605978734638978117435661683207252891454862845821957588746485363319797182099327272103535232272899312757190613361383617939079078878782083212397421472386201528208132413669627700681561106403450925875495155070098649042946278791312060708028239173114186000203510708776458519616538968136795626449500649958786763274498398327942805533821781339747466275543086335942330986087637670014377648407996009107554235347646307085549270944057686384329561005570357319173978225595372347394489892286352002464442006540481899331619011550524071834636863977723460839192921742494097869203383149177638505376959017284554144119976023020666065608276449840612262072083140008310963208058985436116507229457731144739475122901153466005317466956866515647612105352379304780861498818779639303619467450426789955839999431592631924208244198779512888431974453410186339821921404968426762279068764284903456909907716658965279404356401126816736152256525752890544832117565126418089714073604812803825119852798923183318871490413023031737784000355836409407070038410376366124379202916665677133540871843334188792620632937889415704989384511226368376454503805112827370360993743064752243040198840910107541911752635940867474200303480453431591124277280274903758863321284819268603843711034681418027404709985811700659530809960653843063603543599765279295907965542213882098830419016437660970073121096522394176529020758750987309951107675841287994256815238982062883629185162614156783610477631205731469186470211531228505544337078294111390448199976722165037312226429578073326695755797558506776873293033645068784963321096418847966105428822194166901272693391548805191270111368996364041674290005427816523998015133646750140807197330858301097066173060638793269871268987140040212836023118959374857302861129166250454579934842748976586551067312933989727537304645037401006454257887030062768803146903190398640347707496645656140020475307240059373664554773871645749613465084179795247760115929124196033138639055446655307211095315407709380807725801582522585498236041632348404037097143455269922266664419766885393006763377768625847654774285060276670497355298948745387501623069280442854795296816345359775879121605787476906887027908483437789758410240852960130753921841464965672665402766785729291968497519204422802989793362668836907339781489082499642917069316217239825723965519416201244227365405371838382023724583406724607670130769200005393695754707998904764669162772571000147797652353186882064367143653847250811048455410132386377718031849211083792701693909699264010053180448914719260623787738618016848513599822652531801031069028972959862205350733329393390573741815380031205257364886261558809647368847105866551289037899280392655145289902255367255640190230665491699898419344409756927661353338763550525887337947576293230215762998559355891407680575165820298834816309130393652155572933805829262526577972426913381028551193065670018624515439938314690355142355362305475872972743117039064483839044944449824005836134692439327962777232486997357170718714650022185081706426056265276035085360146849298909029131988952240775667685904775885204147799694676639232590869791722066929148752204986967201845713319502669493065317747617186109154557574125453770915966761014578523661105269940558971613534741680284516944386200728104704321368039913575565327967794540278777354622135466764195685870123446689305756164015274878883250823745862577819568211098401557383804243819214619045326247933229631503163255968943857545736874842373225559684701931132310622497894270313529357200655516213427363139642296228982723240681688432867364702187802434889009245506584265750945610568569152643735131589334643413565621450786807288346427038866940483200670362710906076417023644963781925894067491295555113744701480859618735474094775935910728697246284873470617119369938357716568075526868016880501150373779019600702601598551186206865332300891164591453619961016411710969227157532281002993408371241756156174985792799260526058311938613089019865057159358494874802593142233652139473002759972187915709102896561180704748610235885890654598208658573971435384665190899897830783693763642403169775818127807049881491486486618730603884684317657433313420855334633540684828394133865497826573294740443635923495286781875885077195563245980241111651675244034543758494509204626179775392254710200568259420677401148056580057297067955893008767577186875910212318059323575263415612058259987101832371066553086295919907534993262356302611544759464773088100925898835267950625895746730232792044706503772615088047691794584202797331211627588452901798532727580665359543385720165140536858907658954006218997456980130260783167285224895850260903465021306532336018096515177614195920375828840896098940958428508545890903139386864415001650479936593608619276004452669067913920934671048384202573620510240783714906731738014443058419148301866437327533949595196083577359155544828390208501746913719125058065296206252685644086089337558154471677889339899409887565524867340718798787397349912837133198238279357706632208526599724122243599210562599010375343062296901329174227844520207212248962446151324338794651616928817917525911982607398299831589516982213200261089554377272734683252561656889491365912621023619712547129717749272331165927351603394857437102856025643911144155441195541628986173170338211971995020257427676596123442898147642076471407395921563069817578898262562930339788662386240901286652262263629925142735110263850001947051895833774752613585883619319940717859112799091260231432416356951194455728636972899090192527028780816140134303690919308912288809294405673805419897009080936811341030074454732899284050044866741136670436780429535720943059734307295991492675485716584027142076066467633601007623295975272607368182949570204260721837971897145098050569663307233006893919298530401262759262515405482494609398353479187051130651269811003777480768611899547621226017470419046612489542194270037614846018695683632571619173910705963845195507612636482084385327168481477963832068730853622301019494402612131219043981971089180937374161016346572518584214845770786277514677421675679231036048908319130145980365490540499090115527966127987803211622213693300658661610101900469511564822807357228415073716588623623945548781508199260381241534145123176778454185397438010041649827624208044772190973344968288386892701279851617836104485881633491031221210486906171472080929563679202547898524187216140761415060903883114117337342019070875591084024928706153332555559196166756846659538769048937993230750011506483037952713471494581496986269677592262282736396049156993626481987347952341980109435510747375050000091003657508045376047515154122053237059292804523956521775553419587687891570981945163257277195917965428688545603537106797524292252869127993634992293984585361290094058506876914743839877114615683780220688357942786599863583283176587394374245483597413227696400923037834745117766737837731066047870584010134143437851047842432240631286671933364388642278240418676354060506249121487884411909879945999910611221291804453240975547370907601166324303994267772756067244344239565262697503047517431396684285918311233107545479732709930790816301087143225527648371106432942613695998835270227235555940964494729547272992164354087904081938172318648608712082258278640137764162497448890059150837732715096885200882484558364203577391961174494747694746293569447237431247741044181318408196511046443384013727027079395853995002841972538327403405088823950478397848837628356637805858125595543372787157758745916371133599389112944869833137982195771448236346696502198046536109363082456005772558000345816063310676513834632083725953973665373245909555270710057071995163026944004630782260375130297635088029590588598577508140951499794973973833593417599480712934289701348429262436595482955924215178013756656565519989628622820168137039955090445417568180176521346990102798414108472068353049980270033308182614963022742778334385404249504213889991804149792073763020225592801119017638553961079037153847875504285920472617943337301421203291808283682694324192272806457307988737677237543412167055010245765711470755247630758507507633114157634148739878978607783598059831574140707034795750261782066013656672363795071729161430816591400377190196587033159561067717802331829999374998449519443880747649264007275403186762820432676036728227513646221065472493153898864563797226093313933703628351558508155028669031471099624241621893261651632615163543170515548978622015024784827132102764509321226105783510724812773109329430699767975041771297719205704812659075629124111903837521329602972336531856425299600617160317392728192105706407283599222284246130603300033544393242270047478341468665116333410306039326087776037983169519241839319143045646996361323676998202132866409118512916459958172333299731818269499316284355090808588405898102887383274887997564925484843319665934331912943517261850550240823750514467906658103393040133589643950805358693146664706928005926377730720863120347780685041122545657236952691436539682541928692891746109056479930920187834291373596394964446478134648137464532039252800331416546641869517656248745450513083946806862577972263027172673717462086543707272766495326292673887331689548676473214263749778674090794720744980276969751065595013673867824452513388159853684113460552624570663979571285598058184142501170523042053820196156802721424512169754403136338752527139362547070096340412297961004107753814841457673432660384575744806386175161223981505277318139546037240264462406947733756326876002955336577049022291089232960590279829084476414161976383102352869294706673883147698284035305951999752048683221670258695887841704823995504401989060551965575113176203144024687741447411652286959412202522733487177603275622528554236608042640300850379055883353842203877975394164332438852501340663940585327112098073344567805628923799535951694427996622225279947035052172600134295374854569056654396648089035232685734402979152653613179587438432745964091574080339054760634907270222223245996460209256853408058352118858020415064244393625446352481224650859767904076925997343727074442712654826456906113056121346882562334092967364067771497176561859822503927231359731618107121157626466369098509062283087683570753095353951193485740896891735069363855166590923429440553321204003045894129381109870613518034910455476397579405135878214085235821970959806267358592432312420722384351793634473822074572384474899350908600660567774187735050093012090747019539937484283100523002210115764112387323246174706312685747678553425606124462292093183621198702032091344466305864501592530394760441843603792532023060171444653544054952423067504101099576629315053221524282664416161905194233634665056701127335897020335754489614529253597316696407345652736463134709923249567894878447762976025716376876481888252521005045377309611342907126815292284530047029635778262985917812766011175403071849284142218390430184042496353355334601076477207328822968961054842670671525398953604783311426441949980433891504262926599860259328547667338956229759829494428383772834961365278261753970654090812209310078377741917940373192672991380828413070819922647049525741022805454767110896687185271506111036880019819489453012651260460629483743468062323429196616364960189082972586064676123014614846620860282809932437741975088153528173408151864928019603316446210730349204077340717452874335668579519925138381372352933590811816947384360812933828673802161021544908681867657324667881862800000373385643207148961242730100768568816387988995145374074545585035904377603929906825505700030586461780158434615292408056085108650113226479964559692786100176359795720878681357739218513726882727784039277910598099181648169108229871610513938010901361729102137943606773813488956843209950994020429287700400319502491465382055109647224597962248958017627671975795596178737696350077942854629762331958194832853022310803241619928671922138272418384372627209350958286432137837746119949762681098548100430523547271727041736673591623713205091934938485292014161068604892234841354708341896823630573655356625433436139789838743000189845654393940453304188221685870571537052459268158730082976099611983160224789232281438869659983092575677083002803993460875862237330391923310062385135822570913881588211598523269286100495678235766064439819463798258585261130199985945168628496984833892593086393467344298299669192464920195946991335958411631116959975288482382818687668958310057925972398929984343488938665401188741933690154197622685284735857010023561010316276777191461666032193726122531459992115246477375520803550010254907325744310927418131837338521547860806311130678368249098477926918443745658984640342010549834153075842494458959384648046777072159175320901334713330884622936265729165522999690824287201593858507677316297426353350306869816949965909673468490071391146737884760215835718779498904721332695515829453514362034039581482827792520107013833989785550822853359801434407261243973949653585458124298923454692152856946509121903005070984909817652133657890245129099432310386182913005112870494907996164868307633218311649743889375809674710877257535454862188790386138168482826225031189475497532267468809698654751147406534529290841952935570798103343639293598368862879269175179816520059126832538368603410098440199680796229434369093841609701341056207530349928406879185227577666047489780584969323405475167980277374395350108814022483255420902610416949440569514063724376172739424749023852550451564887708669190021098796698719023711476159610293231482413869604272581331931784488222315113666208639313085093942971363593372667438808089758938145268741117041766448454642858689621765219809636328049160179334517724116655315648029933015287112920554934244692156655381710774570468328938507727928076882022661605300119027428250816301966799484289232684774449035789719311012199787863329330062059150656518029495264670932793926617176656099207621019313416032462982553356577299934224667107385345493460155440943217197300085498141611872322259934706001500261632415469881872768702858608139021650025126650694963880901975212345382213386406077892293334481324014293585054818037962294839677923820488952815308807418695348829634632044162762801849130385807213194537358286871453767626018829093939599372932720949813081156473510771931491832900494929647174015544434360628803624363043021057341274027651240013302093630510173443118204877528355283308156878756120181339147625643698446179963174896086321335075879615281050196673627879156108524971633114905560297940453491209392555916445371850867524031817250170020313806248729039516165429804532154985237457527369856637182944262125046729182305317155949720135929498685176293041429515289701249719102936552593784078971907642201111569680183651237016277324466343266454900834562888162600972990633716440975225718715333234229238543621936111574148427344136709407910799218244658623706898736161781665868803877611013309430522541591500754069864603692774897652923633465544573810620165029558813855858944785671528121521242026694254561665915456120523802982709785389164451731032570138694770455085811969726759809591751061823126169946442666041332665712642185537494014125700630622217148360541607081619281839346079831684316173416637884293129288019099379536370365325619321225084542711447583258370998718496289359562942865520454628880268774219419185007538530990061638658751433719170581718632717954590431273487112082665792600927330519841729316414785610688893427012741435152378486308780744084730524872583658346327227586507225607868567077324372327762176468505942372415863694278173927135783541901143849595485974049395516262401131862805410906910697154741831757100700108444402344029062726761262115960677518560528731243244864445421700542135258129387603828013900808457203462398121232155547118275781635516275478352311193030463355216703698206352165384577777949349382580351421987890587759021954771311620155667127277532027229574396978192055944173738980565581691133059008402673885338226015813466253085675449468346148927641302468125623893156727938525662026442619469576611307685608158528742845016432824677803671035904207672031323506832446609054406709821945122987169234885546616761734599285555512778525464419810200481497782751985287597174260125419306471593288867320990333387125404575323394807814933787397476265696586790217760481731025997710816983279242010243290963744127873447073369233962706556919091163848308899023145657680933501790767504405135010580323626300248901439237531521032285498107266011882349411112837436951695648228249139910468631602433863864257060736352474149377227727870223850377648290742051428239794055064130116357766514608740164122870017713703714645077807648751963550875810588070179277592334309856240394635764223173088682227050128143058236718675212344939640543552355197276691276916573284087596323008138259015993218848770836760144690969810941536512439647258856591128507101556052140206808140983545941631387534618370233327014646999745268235394489736617359879926617248124451936712123906415151339380853715097328232465303968073415291651835453285361182922102040050435685978216479881038992556243225716119636868786791043344317775583887635037387598500263201908351021210745443167744200814255801289124439983432270309917922738405999495118438194172290401807555796250374953846147301064423154229805833310830549704831585793567416271903064663850641370984860004183401867794412239087403612608360375695998610945780955322937579971788335900975114281051968334225973695724952378241978765739332131603072691524426834638349933075060252567129405439774391975231463641103878067311115692786409452777545773683759540926450552645273051648525771107003639766406195507452136858613955017408432420265429878057517843789363560317757905877854374973121642231300944874508812293238923746683551897150048259522511613305169669618353583297483235780260501981639768741201512156601207411047578253404879866260153984738487558130981037101977026871087155515829341972770196205936666456329293154975174616074667565012766366523730260603792551494702301252825159802905075126333923784918816312179318520999354016605723642492420122132941799316115291596379605593827965297305542368228819592163662527671678532143844575988711004004210871996536401583702239807052678867582725395758012590112466920319638368161348019965158473922964928523837948964035620989648166518828372985375721366995850216293018817680595827017137606707892757383954091955592172952297400245437671424930888301176709772134842585737467898907789688015277025855980417521381819964135663571526577595030972349370455334337988329048057389486316885764310001628824167372830089761375571587696319396106601793700899991048341167256708478918900139305101957238125137862565450170503163899049602026232573646314996924644437652643107059659583073437142987576468937387934750983290371918000297532289776242382578291632397938471505802496084827306215947184278234257986465761936681397449683698991355571181090335267769000694563590771841717988504297969870892008372381034012475566741446662387066583942738385240444128015821925825101647377752293785792115439806789774921303710644562411654993208599083257996799832802865845145315919277504232182402242497656115258891639647683584248446311659644515744717110436810364671359768957514505376251729864948265355600282839006040045240962982352214433365583952315994266237864140173146310278445314600106437833025458316662566275025002461361646278678113427095440663738905555784448562047542368793669684290948492401566990648975083710992175476986724698831732789415029051584642315954459325941919785166985659993131762526905718905110467504525042825723580559887199125278188417730226257017977724355852203789319898143525215377283652370144940550270912681531652941633263856654413270652932936241174383791391837596985401695534804121642857658214852018981738025136759844883554572034419018164624844200223403356544694287161937783798540236488878450679853488670623629111779914592031720212278794768644243087201647766969059941920028224031231378467959755087585940609064152256853411280818654262319982577303696211675775588498562477117734584507152991161301270388772984660142702785371017255309918035249991064357341978939922909315835119806751663973482523737024768040406329162116023202409943266667975093840762892698117136954529639409322241041924229944222423124419377661983624256961497705500521527044067492087474194256461959161958077958217676857435440752086929916563363331393697910257861233998800733327055231980846814064343005284067028599290449128800960222777272678903806373925043974908801822179727882340627603006142053912522200088000998156400517144000260588245415365258723372319127616320899375701558451692630810514901546454386012284343741509128367906278643468241400471605903460195738852447895654948745005666795383027664940601215192751050978051594155466146946814416861480011600795456458489775886371754159303094473187332038968214565180356130374593395536690813768009602437041772811360929527729927886640798330717616440550380822860873489819913595853471441715013156869047575774932339715897912058361314180499271993972305149883130855837297563956129937686300483219397712090756664991928774638433894118231370012141960314235896062970894637934124819769678687203893624558827668370864145914329908107689760744114432298841362784980641774054347381987762945301791454596407206772569902274438665830564051268087540181600559366168680325969641059066941512901620094102173304599791107458464327200205576024353990623658633944790858575646292682676588747230679827721845624554620000843210565777555233237461563989167249447071823160846051287580773280682847803010635477370137297954776801079810448212158094055952472248843129057303352283311121373391217708165488104775895331844395414817524186883634368269879419398893426521208422409046212972392111382378366952602121887243337506235870509206624526067441361184108052554383267745695042219248983672725411696704591329398096273165226488105804791697020655079943928609381557801030621570040701640336734549816305776370159533681098589738163215163300553548907291629552603485167619220238551636104208966540758739417795762680532740618861880910338556428694240329382673478822905168845503846149970890245547806227986921411295834904788204618071742470745434980939141716625281559958549283681302415197275620187099648457277505642973409403212279798451845299176392356413514058881348583338167085007899154659290513998722139601223158802122607605222897960192844512868474604140754577413437378894134966575829388769029420984486802868224257425660217759603075344640869911456848506651147476795138095111649202413473089386902902362465347602800948388235344932975235923396916557558232984440665341202911691430790418606244520185504997670274754256612819413574856521555558292792291362348161609572966850090090526481192080802640666276372089839606861715199570409315489409245804266176629910875613387816091518095142518530422725293606420172766336314162407288946445146530075430275092335783388041288754583504699055960292110380941936030308225798566391093373698663489828749832892975173691483058520974503092865126394226352309473923075661388614030074138598631475805808423756296036698551396586137039319266437432305062898414028165488429067448236822783438960565429645685307031536271940345488606608599716681627352498873403559812082177674299382838146267007293927688959819611196966000077366258903863834166445682876772634932860813026579944857049781454223226581726896506764400327837888496944942081080417598552087799936827093857175621736833363246812760952697498492949127389690702033323895939498960082938155075719699767281476061371392053522492586303569142805544433466746098167488691433574750501794708669504631949464130290448704441845141730508608488152314434483644516254020490089159490748997943355743594648115188637202780510588612209766950882604628156020926506658910485878750054213116515961645466479411862861095273588072298542946115833113190539675194690202541430230068469147905932926382348552680892574359898520891532917477101879300465914713150468128322654087221302155844651934135537919217246179527316013818610815326505864032469058634304492835359879058622704717082688806146713556789973361641113332931933497353837032571582218850500991484396143773493977290716051661014041073816441934792636010694581308420425014778911973085859538060569277088650205743199195873296239369796831861649986320636278078231748353167995213155683956402302597447130384999857829906866863785041409481768208160919992055782233011261848091552518210323769759873417680597518589026330096344692156619320578882649129384840847712265032627992982370326604260030961540852964782448681416250802771545857219390164657184162610721417089657845108528217188194430450563103152072095004579799940791035257082045942211781081646884772168120674519921400212013517680995239180181935643530596334518278258855714279298095086175047670419093756735182391778884506451152279780576174390573705386930364988210167106658778534423199814115987113276030181167390225286222466161916299808320756477599219953636774844374433950357153474502010711980310918264194839452614937209010465942095059098254038892590017022906316678451837443179131264292141243154137357647928400275539211593414731119915339840178274390074190004231110094042791947403428561839377062091072853100232943415892912859063353920532265246706801563338219331105715431251362038150947284875555701151225873538129018203975209359500900728314323289791876044782762511335555217253369774109146795113600847015171485075211361893564388431986500903352913034552510799421988302954960033498878783271273823944267248393159598737184018050128900715055669146515450593043913889265177522829710164651633310635461410992068360836321415542097020481046855408919544965880841790910229096857700883335676783972329848618097425096098401843721532583898078689410682548413707299623697671933894710183730002536392285581296038098179357254495239490388340776741226765512391469456384556886794136826146884401098605913836308294049698546677863317255074605888158892769336320665572332057520224230450240952920528310770791047516532360898322510139793729152729684196284466645139681299032628691715823823097340872878668168366013965730991795751942897313408844444631654743861076260517821555768475328100198561172745586580090799961569842116945119336351804790645164367182127516877845841602850878681064429761046380011399869892004447318423354740458418576431050993298567029996041715874938638669178774781686530387057226611933344768786475505320920190924993317891774208344292320489796279392358914225555390165109723586406066900347435168062477085009316680737123862164983778759570145870762599150344170526092454633034198035559711683115704900529563792963342993071588052197971467824368149319883494132199190734128956710324266713664725804133846546973464959096297386740104763435775317850544228512692934720408439132536690285752937876839423005881681022374685753071186600573696542444219192981241609960314328779056139264778994302901066773618642177841502215500091540174850788167687270988184158245131223953369794115941308210553978164254418749681768927033930545342080268872635795283185110988573738070609066241708684124564996471697576340511281588306174535141490007624937928206845616524749237273687268990494487518821917911294247053458487237919492835880263416339907365241747779676537127311448750744464493828296875988077135187961785160737573047940066451000255189891322644559892776370592823109806601376289560821212064634874593700534392855263706761420839440536609020429305642030565396395736957091968675288724445429762106498503723453126048637857293942199400914946334637846965840353408127189160707813070899307002691304337729740597962621946227848043277129227749792122438046515549997956881642140878116458198005299785088761464065503630440808463377522881509774705019300422865869886116438549916392284953214651017080354159072536917253150646824232697020757076626135849876089998563455913587966674953213179685122021133898949436181612650174057889143487104362045020055791446332062407807102848539628724154586243600533045813347469534755693189941766100506906278772896925362682374409753359015475027604803338618263113176147469134359623985045832099668759702308960585591598516947144411259064711295280296476770714672762824403976477087265522294352855669668430471049685449784288883190602977200915723326507513234058301261829434598713061042241482686182531662875358234541799907174643619809753550904268998832670316418348036692957080420905262555199323495389419625713244095206593075243314477580978399107850841034069319129691764925812435426398612162792577281161117985954511517481427727910681218514837332503666579273967522661691087763572809929937888585189777458124699661168252825297395458356387249570692541905341521375934350445765016654358124412266296123957946544407364763272701102118304848746255962035021149328927003282420524323121347114912608735109801931751010325977037801456967766468915481629539591723498371567856697408583338908800945470688094489824269698409877865673916202974222686161058702178063098215186705695568056639951331519328958674265717817732196337839098051105001139380767940346684396313743607186116460538536677146350367035429253768111179677126355008267194409251486947907455420681219881538364458434608890410142274573143251999966068901726336838508728993422557503060329904124422539549106508246075678179533384139123617141077180130171876844689222534352652266696334712748496036175443973835285878277423463488023228799708806890804011016979615082263561263263830367720362246676829710470972197420944190241387669886416441817670826768512704413293513211538864526198547977364036692116792149850011793479628342021061130621408291120560043248367885621762769905634189450298381557570587516210060429219092499175722051555505411290641144566856429012476988128399822476183904664618192803047024560845222205866593540860801179577101213247908330156798906750496120037768845072193633089531099201800616694062482036907914903757554542901154295920897904213560812012388524492985412343689406420130243423371032512005906120232941703773337716133914949468549979139340221085425277999391695373804496720947925718445477946743864592370049102901477198854325346909557184363446465720875875566113790918524100576057144351864693893347227210353021067665928462935543369462137776672629968888210238846561162268252261292723781415873866707829941895353223084920522552114111284530602542360269312496028560411556007582878125409771723988291088608554358425253226477306334937748462511429792456484290991362480007277292469511141091008944845883183486811453438067242089315079898294463347020528752193382112999154556470586027272839255666112280491914238425810243064777295040564697363146309207777694439459866463386946326668973840927040657345832295358752164726071544899038718859776428373317982166160892513337326718797798331026423687175199944146863572178787689450986201968813726038189821111522048972830152720440100887106713395064877147774470182788833253372761536362770066026207094108813327021959529771436157190971681060724598698001618260587781347590864086122059906418889943785977247635372782120067454292580847781236684268938537835799911056164299035011639753791928359463214846647044433837474649981816096762369336202711380103846522764575138938538479091458123339941543652457980776552906232572834802743296802267951942335173067034057664945124411619205249582186535086678010614501099039376193286484818687383852329856144115817300293038067669290830242852675457075174314418340732120438319946681806062517048844272225688698761541810278193991055732624392184832595317520765878690925628638176125264997278231997319148431339283940115584712619798738806033197090695281323702272374608886847464653887166640298375571908328058742880213079767843590482579101753230350077006730656035068292901561071890720922494588324844737329675364430952416232746645117502480188293123780548774059901750633775591143746179936107310430691444380335065371554002252820949598537238615064003542896365365579829112998100097375251204126795643067541946067277371592282237283960982360175574145514227282194216311318631503439117925814478907523644004307833642377571805564475841313137914442733428078347767409118383684278303720210507227181208848232747944278150030969865688373445201044680291574394084308031731197435196848538018080813061048299612881938002018492964567243189454207303163402465033573590244468702383025309720657268688542637993659059345681014122707825728038952093437475836804841710557993947663520654771079941058719158884198309368228013286615510669192807615340965802313827427612961021426462857299519462348036621215909620477659246690650249889327587213018417932335688394208728020354709694785201336754070546004376726824146071572804879279425937873004509005719597747075963892083894198179714734895069464546831701474506768464108807217186107837418185910174144374980441693242516729105586899640701604240940021329888623035651273232246175539456469828509716438547224834223507769282543951526478676596320257015090524881613440672060528693731445138713441787004552484755124017681908440284842536497389615056202664345947529931261773528415156366145762091179352912546423156506453564676620149537016192823218309518621599885535471896058460052681876443584917820437012464577806992826047909472809469970204331994865623143088767302323388673565115848103506677855637616370771918927486078958159584337858967928890031007267551964209444077139421653063862876515106504541056173225124565404432749393648243355614626978611198448824314243675868252195819540632169820967140294371473463407092378424802281582048751448214010045753134147914927291166109800550775782290223255548062367883660694996107002621833608698007296398924993545933815030657606281248799180038361815575943642027099162525012751355181562584844525421368619897341839388381735478079926902238931570888723647895894401741403221330819149013427518637981060802783223102059635093632311686968580857732921342764946776078677224525886128426848020668475065563960530749069438428874706963490030819570450957359707782856273570063361039664441485766900297270311682387604723671801430633896107679705844317858833095865789811999263822223002128076193780012753788377207918559519413313321462126781489044208769090058370081150495715513688045768040210704857781023097727934088359362800542764498031571606137078283548523438532410502303094670077125765056434652160918950320508619999746234427573488334303206890917499805185938330178818857469670132524361596994697689309985332545913492771731497113172799357923488549530268704061328863127451572254660130587539824317610477482620586204592250308477002136323899840768830205533347025816319815969619344764745454585252944374952170573234870225366139691473595012187269205811192341019045514204269953501777778556197383917011156871589577626946368129928498335098668110577086848851739409853415614433051652269122360774835439902962122499526335208602847853318077503843096878483652689041555849465537643410128077183626329877524240883508425202630899619129460687206900876396024864084091999676624907380230079347625782217764967576407088740596143440887345331267578893263147655699626843292233414340303858318766724710875921531797743719345667975406427288754960252981391147113127875882267953702292673712105290913806605490684014227853583181926028468905320802730644947681238381982537348258220066832020816490780165316984564871342987753001018855871448170718780365747921347445428000635658575077418826905840097570292811069880626096000762155053942091497027853903012333252317945947878563767289681646191962246767881693795399142833663742007294501664611141677109139518641592719005707079275302020000595033306875906759825974166838501219508691060050122246831068178601651213183607215172154451396398781671361573378445630248922158332553132858843577593704395903911243820279988546328715734458454085628765832048584014694929650678367572465779856317788667930199991637118731354788988310302610455126553915227194919047881337967001915299408406996876264460208312660054965252867039568607619945733343522026201909995654188295875294513238346514008656846500331358901519337624841516596850586462741855775490142956508036040521189290553403644567233293285508467942336145847764969104225420665196154498143721824389658974280711720339384215114757691963782619129611171744295572498107339913468996379896583985276917946251189837698937494631778569024797578158271532603244402082463161235626037506688915894270791365203582780386558730517482253189077557309623754955380936263392667799180201085452834781768205097480108251246780110243651103742567521467903232766889060776428016469269698568083182166322036897424033325394603236262982493990601532934169087729438941649629195224186632893144048463798889544820690005505593630630077885233288920053954961586105142317197551424399515294627561120371085714606510508426985750090666001225130735310375353091549660430686426339997448548740046161807468301224739238032135462190752647683191025982785427989706796599569646258219232390057767368112814412480954150301019908588365424208658412227033308279514574381980112477553573309704446657415297844478425286318517839465558710651953590020318052140264110921467010717823888197353597291761655479926915017065538748559571774525061173229570715340646121472326464980689745487638395128922301003715766231325127943927731710417115034245943635050979810583129148761690443488494464320889942728805180838663731548660186660729391658337456869673908393018345692138779956114369710766516263272681408163485662145825832306770188721151639972414054237654103274882040679803333924431007118984775817903934234509733684475110694183204381756860297093503752335234331008441348291944436339640846428370940014652479508972057413701837358070028849279749623911871512404105813658460501718035068281462359416554408736765491578127038226088720637849700966354867276141865749455488638124843589620546350631759815490709530212258107851349016539196449785054398476188479019299863311984387012258135138175349714785275348105123226034650810197754132651332655482861496889373223350411667487809205851032566187931878579424229483617134361521073080253638120196050832499864757906454923709848705271405213454977064759094132655638865243081733696042622575864728935211096776623318838271161371393627570124578947164338347168273382926110256728926904670692655258193514202151908713952543540844905490864596796527713797487033578808881834905586805427191575073274842014211989976402993351074414260277602277583012529592744887912567873129221628016931826228950496396605817698512370319985054507029567186947821622554370140223779858942782199258189749859770631365756073116637022534574354196830387278469933796018767316752909788454455753565258067722730410784230695901061979262724116228611404377999835397709890040882523997400157541229846391495831087249684384514559908808845932248227469465623672062549632213291555949770845218244812364139049691754816809518821481210593385128875730723849452865131185727534406666445722487093757747084872723843590913193491280278412754374894832690956859401671205127725864870716395074051103172787587310329531226924530763681957727836036642367456793113814690653460853495083883424424364974924618580186564340586007752970279649932297866593548814636082261172948998758089754274552872027980608620750334675223843139031883085377969264346885343158626928795889671821708158889691144318759945502001718941549331201426996855527703066497748716926145980164715140853915199926905662713576618805747383940388546770730344231497779145333468222934377848989881937526004130287521296659950021551854359623152974386450609032197943354951166740827427502386986041278210361843818558286581886416244645010795633740364204572496104947021653047526421533410155167257331696312149951752781467018336937815338844006499287196571833350472883823810475418492887436001357542696619285900528566244483107188768607456036669580114418402728924923121780785532807048409687332193321437601740206447528820676897047637683911826194029088035870792847605248006638376212208977781864849820248362563996607635008576230287657732822405261543339970023713057656533655938735277888783049115611850221008157713149400607830096374953641312258114606196176962295220009779468669015141998764085909144632469718157130478735653740963735021480536471970501819167700087467481013381953507177470426531210693024927046095533644015161150218987783421857364253788762899294957032054429301719732977316780960631973215102787740869697161844344765444611529471944807513351166632640621885350079696471220605196150816359640536283871521153853268714121135691163931968642228244486113463016612575714181965615166029945377471823268294935609970654904247332201494342212871079257424820568217456774720927955935466491481053902589315211506337447044277227144702505417574396179280005273599584396241525612099594460257178371698548451441887576975371777814025223430548842862901261037898925788784167892808395582057539991331072050416549348265628660049258582773544743559346231413267384465438564472920985553724777602689792711099835110675019233924502630993780336394371765434057979021047515447166815601723602279318723735768614900218260421375040417078571737228453061300038024991054339820981246626812167862190727681230089683826578508357821847036379415310787236995464884050935938649618996631396299948731598840360691166248313794749223292184309387290912290815674642939003494333001137883566101072981419139506603720288526013075808242516156703537323147577607869881048093426115757194303962810437377014504571248183625265709108054943405641109382865002067635043248235936217576500587142032026785617847475700754059032394324237810524894866740782945311034987295804098576716305116181567040437770807518922141293591891325524079359790690712240895792406176560643462870114494880351381204516112796315103718716761091562446609210416243349756108315065194802369531253069780641453160931782098163974002062193450772960384632806038670977187828688457878517667519059291485355651362616464380453783817413302999479754742408036842857861001688048717831387879072867011890994819288724651763689140199999617891975842482618167723859425362520251672916436405128509862154125478353651265233607784895850260004241024659794957630549825982818261987415695427542133868557639917010918230699500617177457253312067988448159797092246096963685920916959647640532545548975909604466835843326342873517070943878126528909122454325765671764007879114688454363654334158137072166357616416950665895364034326910564069675921235914972044223118669883970500137795136133748385523038143268700822768607412926789332970087140969273697875577693844875043088576305990139544353786707175315904432754374751192769490063955403488312591350947464119081440697904438688119667908632420748603135403943686457454105474052620969126455395463609231937940698204693842126043930250526274406691530860457126708446632072284762439093735851865235783645236470943881033896963053064559782944103398176195085088150495274938313460484681818849796060695001159961802280893736441969595728945237707088737421609441283801377926138276844746681766355788374583981041806059444680629578137802808977431458863474368295733061971211595770009181954194651404901049952610696088982909571326518958069794065398016746562244518526846907162793992578140046635370865299860965108978646849448497880820304377454329298184236689782862261955598227960615446024086013324414956510662638079221926153029124553510804657885268461290991883930197705419017386146990495595331802784161887035064528742585852636131922347742846501094176591392010327843402082220017106367511842155316558260315471209296411275804580677422090502644153857748193949874275964102636673249210246530206247712068632018920233504957672559394587619752925663841197117353183140047695710402040385877658098889239709425774774277936720248733012456614128060150165282877752821800414069636486243683326873047861017287413509918532761104913155943009670788874689848744307463028803920703964792641301132084038350450718796060814613373957763922267277382063202371190130120565250311473434344791205078119056059626505839879532939304890735799771867596234108468537699529602133725330916975316608917361652858118372993754976233378005150217245657628908037639285977797417007936587636714827068284093357531778528650419251058272893622573402493884409461147611754223543842137093362151474513726153970516882662405404101833224180292248709966377296042877828542777894000282802826272080236519753065613391555415613452956700628783634465132640236995482766559771757548464426379757708087941404920965080633363213702693681238803170340112143162743902349634221785090129737263210296269247504755041255312029124803807320696171215590067070666003982346314690316161156788495829721448837910156167260976800734969824638858239450221870535032716598715153527542028867631512662586212970370225902393391829220050876786686011186028897173123642710219681318633687321263211762173377473819481066478946650715766309047580179380164631608863595368038951078418281382747134162794189397255002611481133897248261497804359216653843361860146283788395729496712229654358127163914139847753825147488737437793763137305405581814062250270588366522666797848331770030416068417309158730716209195552923333093789917070998119930427579356424287211228245790300076837689270866937100644390656927374473994408917179734227767930742862200879621239294076334000446518960446968837162244693833123180774466164754392155532390546479878709044721521909302751018121360224758692936464195986378166153997164782296322511429545924667406526091650080081109271691956895888992473268557381045921697095157805733690184106840832905958668461731238508038839221213125463047017388530155133319737377980553501753477166522950608520715008099274093934533032286233648418594332462036062597939316842938513543150025130823068887392334490004485236513776155731383372225464240991771873994277779621413344657380944745932811246843335191224179677724330518243410066600708098519694973758470874402785536005706330111783217584554425955501382185866884858113985887247515384753651055396950448949187404628789402961621334961663245825836721956332069264831271144922808866254897079544668731803341167346446596077125452720733346431273288322862956813323290763435607183024526468463357095189335689362379632296148351679606498443755957941423610257019033529686357324711939518588674810256115336295860217323404477470794359538567199230361261451043817072073549286474499272261154586590577476112890013657158203569183050914402041401880113252520775703959362616492889830613011293446159648456725830045278149326985344564391698999911126311747709925791480891855907507374629929507094092691357404768200969391552578374770406768805355372188833741360677844679954114174941727933354242103043379899254899020585329525720572771381600261422404302809074847763278213495311924376051454748358141300966582434064224720166317510068582836845057008336622515873019474339571812925567470314993304871879338294172108622590807235443716617603012498051489108735671261978030618539656885905189236416341028223568655250850137608923365397454028432117137052368590585502587278712531369959708615769695984453386243397796477435030106035952044508754874462596585913989108357992931035463722325459916861493198215421575392378983513855947127483504619960839627936454700687212780711420736283387129886172702595368296332581027251304900270560344649153968401778223927774198337624012264967811819272572306876565617679200352160739069505857516528682919808729963836341615662664718670126582262187921185386806249150668034954263052783575979794540205353380479416667026304295990602031498819868203309012871560192013933460055224160962082438531501965441284931208924143528451701419146820232735384262740383680019995046419742724020867924808780466939168079099126258523951478109807063087321953239033135723248016018751947235464779705956829542777741869884786942248576007772719087939199609282020479263939860066774468160528045320959061914588835935069701995456347025703906362220022887670374092286330518614430445608439476588220410158098948138733576477547720612898519897285203233298988076446159512396187972465417474156224250179630898852406921792220013842251024643852574769995845492510210547743204167622210089779158331549227053470165312462174950610128583377233141174933817798195341123087302127934011707705493248765576279394658827373456984668477802677450545387861788556607575207623729588743592574802622779496926084605724587083844675774973001369835297965645110013790449343080667259934695982698510832127220925942597049600502507014782261482614573728331291263602620164484519536255932646693409354997586685000935852416435716783051115583100998404750525468311698714630909467161317650141074759194493645185606754629332376564634019565938720056688504241728310252773688749784795981132047392926180770103125114596974776118191684889911680201140657910408786988694387292963915435550317926638472734558474073247874537900094143108827621619651169796178164520082495400621558430261967048650733620796348718196667227461107557186153509555111340224020978656081161627930859351318726713759865870982135103858279277628146689825593111570102258248202438549012631782675324174058044554768788133671062133120661210096833726176471363837962053721539558302836541496510723697125011203664308860897105030420069621667767685186571372549592805152185486186066961109075854478831602897168428265185718542408197457373255683088054792265242765201925685127322666635009997802845127601302405961645449080798590410034700860422940759861407774451566130229475464907778042471589078265516467184226592259342967134791007268747784826892735212730920151510253653917214837988075437729741373089023163608378141980604252243513730101381262679381937992154511136588631456872862334668234723415474228166044912198901937039971758377865616242922891124308650027050228798799546075192856539042223743983612049026929916435395696328750271785935099912629051525235239217059810902116112713780977906509492706580468883079822461947350078286973642535029436023239110941037302495585644498589275239115101824298068173963616315029227649905516125845906045903696511575641269854296846016748789389355524968992507033745965081453780350273364193573223755098896830436751605946066747455893428576203712758799260235193817253634390543336954591806975437806131437308126240217917721704645467818210681352531462770914008219661454975250569467782351378924949034589795220759781031379135566816487897581469926356830553848068203593528953327549009329093557378503280822712477873952662244665820984502832966972979875713313030470570531012615921481836794233616804560335068698876661386101690428214732254382653899257166858899453384276346218977102129485669658392312530731666187134622907514509007150082325837448802087206548062595022629536658869705931695893099950931800602232905188745757872677805650575581449041031276515168726207315241896183956058985436035249374739495005383831857887272996925382899258998440842275318695219429383961163720081573418299345818697340221775342266817373516186407853270413483486668989392924770937260819367088663597482721469527099784928079308214270498501784513049974955353835919362148581482701527912474954666663769501378417524542229058748467996410133183528346576179202011704923145235214074462054839610338977477583070388963901065211321190282712313923242113270947469247998888921849609073426596994435855844128615539637425504796115182715240902472482066001114226443762797997288274357992910022656851626500031472611942927728268972079552367777545951027653198808936427247051124477372086600199174383565296376215637151009741711222372427987092984814377472893700851367403868477723937143741587299950222848550223656008324248064405753290716472676956528177643837140838567835543599751050012780098869013487387090379381027933008987606874197710676094393854058741460887629354824632190991256284581818227542085201028747047955883348421134430423820190228435838924290893634786524560978833803132018181355315584431440715783302045616109361311728654880375911652411686315389392302917186137569310039049899954742739868581239652526808934386097629456860934299075875313688243233790105611774806697189147506180097702277367635038199945521409748724779835166844541039241927785871513106296750828524235852050551130360319397576219559554519679044793221214854409209950216564337760671900942585528171291628666121904633741658418123133039788669667109437853550674893809972660201123874477428615343972033294510926573692226559962611452725193012224041017105910072274312305982075778829034002841120771755340292551547758848997036460653929996043204701655005736495777243001560693154162523765721592306979867835643570621394045778847495470390250474203091577886158228186555512445935173807745068655830534005049835000894691758795902448822601652763698856433645015771459330656154150299888428484138514105332915587237948308391581798989526681988577366318034037362623838360288624582460533007042501688905865609297447787157214478419831579494064195409024376468097843462277605701867654166908310099827976168334811358068430501118834561235494303207214067204682020873917679639095728990945226895584838479813486862581331025907700917444024223409828187635747538854974124589186541680948988050475456573162872117897763302802157178954526661287752421805029120052054785053492190565604141671597869790428808159370068007586422974309670747156768547823552932731495170355146969126936785712800744810539114581892305406402826722729238161218445466432401111417420617785987648923398789867802800628075586393435932625373565926928374969179499076971785085125307437787116027876541263428715516923170330877933103107550683010887582050513264474518290059070785822320598293560368038655165147302115037618300011346359959543036521450826140746307786851357107071492416200841434062938761251392144576069958754149749598716403549156194436700727026212543532020142576452039296367281643985256534920926728000598481210931931151451977597483715064967963457369510313156050339237791271912566935271726548780095026831714591725350638257798150133657869725474407122097749749510122000573663627658902009262334729229718767118804214393414894356324885787024545124758204413798813126119836159964515379394603699282390577637350849930838326016761019547152816587166127379311056909220635430645420785992008240671771691166981007641562715627026762829439489763639956329209749579445175518211059860588234934101756878380601821098676510523210025012792485415571513835340411021105346834591529247059307251200611103835384189299873625032567861032511203039234871211058282706641634943010110751520659200568139672220485808553292590709898125541530052060396991422590933614549419212425465545889474938567395829556766336977645378517490882103806741655861901857880207390987766884641272045951087945754261385798083691086879941748317117211302668553968315982433285526264543047436391901146864050982446586596932669981407163256122898522295314054048451490901277628562712782413724601061510205998760751166080060372370117675375899831907232669785091039854932537799775506584194812902095792840090807577731372277866671291003042191817750121857789041156023571097256124496305015743012326808284217721417969724268688080408414506623280850584032537602963809791930688025658370679037974714740539666248717628270244378565530050394343715941097749114522786454703361743231896551081295948501980115255577215753043518419413053903811689227241132051382452017243052675669328461205479948961557937928557675546190459588247698886339824187299367258623430397063255678340802552177628128996198802533055227060376633105913587240736995203604197698624174448642189364807937773052363932250273928650830066278433913234772584421930443661974804470021327031416203579280056781249258727643224350224585509827687230501859178048032829149985920273461075637359191425043118137790335947299731757911057234051378314432763118526020021689272104342112566520244984893839714118531910228722466919947523217144077470326376139804292104659733052983188689104804728324380903927185821359877300137656200365222350004358041944184631159223625158466766265948864035472771546026928552034899899068985231999110402508699902788846107367614629678610385366668728983404625923676198694146478968308220412209631539950234328068283651427459980540384769092098703911879852803554469478218902376643483716073236910797500959217549005695167579542798150057893673848881080576853467877046358575539459244556639582004337235439322010503942793842070953462001852094372112796553262933803764028616234204956359600590683054600907155378943003175547404926270473503460843338593651946140107083663592621267466238730322566342415911541706724130904347619287382051891702470155347747715062470018436436320019391304232799082586685996644424601743910201741800908905493137950995703758071873663669692152746582074774425281117513392100073107171719962229313812422886428288114234621267279502119656994385406083946015858676985465048237190182932687429283418407860903514420436490491586505961735991582123871674075819360934498359874630329377479074679530833632916880295225129212683309474928831378851826356044975258369164703390368528471486885596071210213901214543384846759365925174970483468656801205820440737237231123016147162342546181432828473268754176227470820254029161645889421632205078243027504288351203544131453928984162529806462503986783561693804189833616813216512504816467483471191098829127425658124053956945776667202115619471593863481063447308309654837436629239308279713536870240330797725672609349516245385253734553381944923868464026621585425154014388929247810504698409385943400703545648750239312248577752620753488764019743398176248923554806171525100987433377046988789148038631247682754073292204031147418332359727866744039722608625926958802062667046561982291670137551334243391504098710583498604033633959027167773760633288221663851643165209744117678059334186404073052303305699340920493005228676436126807949251459291271957519753693864665279838004425081225855579635085879437272128279215052849304656241757628982512582165063231194208282094457069612666084172723717035034562660307789940681318038275322539519560533643615756241683535475496902599263683337621614622217864483906929027026494970979753205357408029164870645345534960538883435039964888164592684503930692574605033664734982874008285733557621241952407835151520156659265558666124505811233341477629484396378101750068863495855056537661315411001445950132494156959726527846724391962538597740767021091545446959962932426661384345963570187907304921703334216045502742384866532212244147705157462457073292115215794011711880289041422759612810322536187670219745891184101984995162859022810619999269638810896424289223287621092833075426064822498428411292831712369917166912559261857182039188309730276164398239668759862680178973239925499895842357256021216973780363269452265580696535073490824602964264952700083391441566011557160918820119590761233073747435280969698621903167811849505230879654713510286618443403130872829358717771822359979573518622115267117872217995860261627239860201503120797264559181862819288602831534692427413976617172195152720430925167954047869061181742197560368473832442663474757295366622127972383035421304883523719722581165241775100786807509922361348463798031797212246925450690848758082174604207888436650930705447489181776070543056055170393665265211870207875773952763734939820078803748514724332212362606378176090350561192161205293165917954965594500494508302130899500586091149316902461951978022773506540020558361282117673811164197162729568443399306119454888971987335202403195555314005389830357975484764441044677640240481847298170419719688354826538841727754061109476501166985020411258978605160326192146365930309151091239096638920150504838329788005284627208465042409081495233107416669983746950155076130427756440350070285128759672062338225490858775027370202805618023694490381895454437447372633116791692323573919176247873427365844629053997329340105434332470446548357335213461422089326510924419099818515976799969254084678848401205840227304069963720391288929807940303777364177388612186758347026248534510553743374111643031655026840432279672902795607398135080205796513673513713976267443670572418669855841418298410944591466166019069728359074571133344013918237162901230431504969888129707442148776963269364371917894888128229202983301580446200272027340614831042389930644677855424686974479914140788102765031987179709605312571730641699989549998452562259687379812189173002667250316945848142251966885192858776743304954851479579949379069826660474653361215404875925954243749724949824886524838532020584718198518533397842284335211628954429378686377601820445026877469355537620082309015076175097497064176392081099333697409771956513668972782796432084206310342575719724744588212116779173053360760902443999804860939459143216376800701138310477866635883729676053104303479569424843201244047693581321961403892648916500418991944984073069856758966098270620546202363705093404135035254441182444092393221558288326258370140203666343275657491469523122232527944749389851040379426161979592544939089685630215743094308962571251238950912574472271839290801087740806489012413832505278011661759021004873317911086979827607725635221560125965502614360740367429773161494740862155606937509371896022778368892560006423969711815651507559556405608700197270559862071497886698622831850144181092050598591959028109036061336186707666494425671504473627404638045315296382360549735544007253964702789228872797416831334224464398459247790672982734005538792449014332352503082485725516467679317357762045524393535025754719963720926396560785848235057541111890893549016293610218461491647147858730634635763233483094679451777442896887625585795105898398261994484078191450089217450589640441420206736189419909862746143930184722922272242367576208557539138980045174203067037678901946051098471384052911680105828802559741555673029771009718412932452444982108792149221727778313048384992906103929216336024379630454537841463433097762736722302531385497727603376166751330546692635948298294294499565451044187653140498345658553771100380011472957479014773999608153724487382939705680749739793788454913703309415077255764952630940124753448159785392820556560925537884026787642995897048269079404016142606989520070852637077518623416076506398794373168544344699269175814516137576069247276426922474005635099103617247891026450146731203082143554573511852527201750623059005408152498267463051639066467682901468941434264948424526905954075108816466924379013149537409109318009537959251614521962838095729230301857279010269141541390841998128569766175483605929471026231722816302576117231394467258760848099551637980185409550531930395438396059436255322013485885579646015154446909028339057062167624228198571299404889987035552350417556921273600309113637126733342382171137461195140273485696857361726260623531529752605334029081568240399064944435439201568572044072290953142230790194507135672133117290464885916055273323022566343451286155609467312448688904098775935014302256812995066545257191262049102792362338242070578511207884964254208221850187126899383997228684492303631232024094858335288656764715087210436861732375670080171528900680797977044500302931975504841945551074803223232115919698791570124594702444240699671006273841010994586327584577095963153179504560594182169839891301610618097642002177276498765982581218587491116178213691563580011876746196257581288509472229616619814570079482532902842752282839077644660925258596386436100607136887239548047074928548049274505032357227012570676915736455864122760217468748589005586651831670064527363019117679365718539896309572058390456114555965247741392815985154122219778758775664618972193049399253958952738554699100066222348491658526957406167509905216042623412880261910553187848000280167625690674751336074104488962739336504179608533755754210341477659493366544127574951741830317988765918121560591228310494185998073116683452079159046469107847284741314627163252956479792363763733631298991957304082319006264771571785461736447193528747311003155716305716630901393087579423543291120045238006034818438881515224677078693278825855751683332358939456432330603480085159601315740068338598132371027406203233673864958979307920891175692883979074927174838783284110372781773256829539321781688942159293871061415680768924757954415968968435835616060568402364915490587251074889201922675653477775568824907636288184712682078873287912363986161131922586074293758931766590153970626818769736812354399249245248362778688250368819253837601712719184892249295899639991168709937276924527373510874679785364552806940670547049484914093793666093660236434081115297588720412271168009771436036711498729021246333172495004186429247632854592741897968083919396830273112322070162549103927255411147429723912771011212722985907408787754137421862234909038692990264260255093940635367102862189372502956212333080256430610468085923636036715553114634766909602856580495247612158988561599395041073694668125567269517275229346503545655927305858288532980758298421972659146484567194410170189366346311179660410532174379090789820588588280891161434648262494566065154751869440398670852381886104962537525769253193648743470647916894484508162998993649679755031308301388937351309054773381953601199735908266171438411288884878357478293094493902376553774904605495055291876924408374954900474095436803295891169708586700870740839238022265138157998958751189436385807925732062884416683507629927926493776341704402780179462914622336506618610510415337325778415573023574060069332987974913478641234579228911368655430091627576301442004927176331753748996121088745201270860215277555721291333797873884816555077478440658435860689087246402577764862229950942725591358656895463335030084582898768119065040515191340458076879055131421915354560080149187401944640202625414938473823266576543167631127876040954435470598293749483998799277837132587501651236056595544348763237209475211219813974562750719217664442302543440833492174252092323209414867232642277590464328171551509513795937100649479155337089869286203740650853576621907990972767675557360104392101951283985711848166160590392683333712543926174531727741452483373466330204584789435029967905991601837726702545741852887249301023256654962065196431036649080013036728917934994306446633457421505099792755271626912872605516186206974380627635645747420976718620082805864271890533075624018553831465797503811768627871536347598271164031624550509460928730460134882572515036838549600986073678697979201341283258212623692758320762702853815655323763775691104496094215617459572322906539388060412695438682649163425669937974755539219019545626872357303801340604154741438912179431633153998052060149278722548394912967560348415140787537044688980778761479366518799920034970648975215158947020549179706294931480114335961316316142029520003000898660278846624490564689265764079718651256622637045806264635461733612404221062618513674060272172266202527686963350834303554318782623949717325494230516881319367653983695917510381123973188819534315360719776873667530185119942522660382802036497466244298611420930132689708875995720788457020186230583169096973722396374058537538639298632983620183377582031655503853708183396205089783819791172034925770563014246985872541515183586475383796096452843999244208467351379168618662213490296922651789538521413036983208080577302898151341546198526871845441298135394589625628587810511154068081718819449079572332126849637226221820581730297903695620971683075903969779820130933715271392508007965785077356139424717888615227592548292310824514370015316969775286678163560306203079833506864077939969249997193259580187581377082449465201038904233521477651941888666932964942514567903012248430706251685311025261355911548899225913216350263843828883098907284724952868363741712584760610836758188891775686146646101957854632275996826025850819841757786100041816696172415345832239756161681739884819097892170613969667879105693894972723344077295548544248097334050687968124891510922972134695754140532470231641138600230551327661450797854532862417853808141807242720912407335600524034651096898628410116853243449722266283834102466819995739438120017868927177354188319227361523219202177661730124410230397834882173645378864448636380658679664980370090021179780822324701105462874294127214217665678466201470279655846068196034781339913247235942612803559220209224355069673072005528756698552642391026362246165814262832230719404952521955815811139422018216844536626653952230190041176014850757589731355081017294311392032529658594211415679496383686361436457630755824236108846401372731465155993407771666912707516828760074894836471743926156057581961930646106741696746573679100833953697493588721638333652410390440605587799381641788833237097315038923638936706449976384160097270030213625076078183828577539680910666301997807097028216542667510522357584885043127751149460027908301459175553858169980617036494789056816158719087834934008606790185929826784874952267192484128084697980642706822760198865508015208767368791466919021361965063867278292622117831249077721269938245380745452305309025661516444941858668307689100258695892022365690295146908106212764672085939254975090133140093626729346739466568997624621504524566222659395802052056471067087115109689571765243313697967412430709133617839567395982545324718055247140227486942921598423033807956535021760005005243407802660495708549009579013052391102895884329178589945731057925916496534951974663351119913142208311540177601015252574721147919151938690534348094068604319603499731092235761506781687323229395350209649695332994927333645359255757655329407062158076737955868342249668275685596825151669681445425075150302941547980744922118670227574685786969489138311950631983103305567357748451424896192436501503628836787563311591315845659970078015840840823009892811952294222650347177649699700423579905893789334795843268588024920005072405038092465765798753054421574878890341955183335554429633152216144816200432491909822924813985155423430131927125952515921854443786967641160999109144895967986369814099595929450819779668881246768959450165000876978032247958438592761405138103014076137318338482160579580271025360777325356574828790636010140289385768069961183191294810904749240363404503148315667937195101649240087588420670674565501811473061941371675251539210353529224021640890860811559704845318851990693358871520525702562490410970104426013825214526792792417007863784360412983884514991076782855209225579744143785307741082060487647757212214030281332732877662052309338335239295082567034454868082772200145120550487396974312435800334462864194889111782696508044666751912959526465528919754685035640507630660971523443852852540998308718359583748189721710961690222978167486567730816460629066028080421715020705318500442148129618073072765246698096926623555898891516643681481515196907021540993318516501915449889105540037003368979826684361104037038004000542990283642017244112399843401699732751913448103958158654463797825301694996746352354100686381929969864873684247938187810518070354823501682125312248544096394661178467006357787565747334665089346407298828490042471778318757947841507118595078848095270725618544251277859252720198907581885147953978712690809607980813091312629509893233791620032892408873016563131509431515698658074815003473852828100301005963295127023643664059854638336279781536780766702923807776262145765820203694441892536177888631908449482897774735471547657011279496397012762583149281244574655450735730939314337439234186239438099926547385593738087163072616419620335450612590909459667919989528416173592525234472082451698441258540404397405504591449809206013290858232357760100768491325322043807311624135767420720556668537190903034279554613820125293518572694874665301126963269325619563162075829895796117178209976732138566715748235531714236536329719906091922266534155236474297339407969671262311823419961307790202941488255970233481485695592775807404448672208500324440577459996690931851260304588053115891089765075643468763455041358376652157079775795815415345311244169507553428216320644725595711110711750815387359176964440892252191037829487081858547530067108372607317377631422215398594079649484985491412239197364903236499980032648901761172182178791600804938410472739668471732331700271221878641951331255568785389706766316772127589297847187124847294004316100230005791501988008511289874274260342551523520243554556815824926931983584017076976823569239167853632553441036861798987403082318322988562781766276828673255441164602495406007857037688449549389923424670086863907799935317100341065468434394638552565616352532566556982271023467287539744191728429230355587278678712390781441410429518947645686241148044065770671115556255009419980316056426924212864046929504240754071173679832541576074157645432502398406423671106777098233568203124510935240345861416765190684576807475694859693630878221842608754675768408931279161118268869696954292256930767803637704351702255020999249534410993721123321469603362209463820287532004836485634606462950420120883247487882894656424505855472930646582166087415152604119296179528558411181377188618160651524550190097103275501024196521640282519326325837786976686098209703427766515570836226368493264413425412850939113488981003914658435601225598935325270328628587812398706102973154566515580126003018251510609237106239065432259479312706180809444904902733910823027137059319033517889713507905592852521358308355515080169137334222996745740115411331836501776706226306592869595327286134158183682293899895278540326389267676201481162772956946497006604348804006999444512093651990247129124962268133309050240904312454462118841555149923751477266553497296931319694094648482974260922180040265612851244480705640341855312358803695963956627280927072604920742018171599393145114361328328183442076624740261113462918635385924740410259283439014735502885866219821218755735474754547040089034928885682240246812789036850461698643743245626972226049522409973026555864119304487666106195644013766838944113620079948113563942333157772117035840237928251450257889067142407099500922763749059184440049889457033321907177546101704024514097162169658949686563587900284366209137756402862036676637288114477959943445357677934945001151331175396528827307227620863671736279059716078566471662369331117539932794230185831200560034102502386307355324150443654776691622332415718894154782972756808503883525976767751029209274446821828895346618072309242043451929465449588375475421964149884829317021601927399228512226060838661479464909325074406788859063776857911477891260890779195037628971791035791836789218502018404261991162478023129693535661950166280276561416681742746033928461911257998616476069508359216241757822631130896521317457813386306489607782220002028347360995293841024707974435935538727389807087702688986774578561094038736966390536636879540195982118922415485300599837987199682247312712914338015370180831229505380972315177301102827305089696513373095422943877847926794859093083528576622529041215742615164976536153779511336911657694325491543092083079710952023593251724930756742924369972025130103416010285016811962407673227947628933908857902796590950660219897091288838222239275424725260900555872522276390074010521349939980250123424782973817844492680048021202705942744583747389418519950447317004514684250797978812239430384762305697113111128454820679279981727562200191817701293451307272511109568880844716219754787829710646940597541919525708795600993403114068286751910292043323922043916363217983622269039351862805892895674411528030972533994894762979277486953714558663692469094227159209961087921652168675508064878365760860709302978607624016476031834433431308297674665368152409415566014900432951353886725559159041011221153086808507058106096355984358609338533718518660425180720205345008569081987808581813473407476914396191091858441765720204693142617321580138954229315035128619674069508758768454694856642140358920444859513530323383632164390161910604062940868791775094491244990699462143150697309948842192128498504928317037518560969667562797747639245906328711706948311314869435878833108259417051716139299574750381338025436413450042413126167924015350489724261656313472005190462541059320547565272611253471980062106047540353084829866623110256480165686095028988822169255635986824668082809968466971081625515747859894822751770453016766651115643396953571100944532190197313048029628159855430993178445967057813044000357521837837956454357866216659810378827448290394156283854715405760131006597140566470762889142710296431843552714357723209717374548493714826853730191481721705186313157983325830350273038876199272194514192009479039011142640603935359302474543838860679830319276663036659398683148973207790361536131827486351103460160522701645624685067679877313671511937087894182477221991985343699475955174000577789950935920714645834450986966062868904280551504452970430715966302838680433097719618037277955506061950206151489648174486588039463110749973197232925360188979631773334660117527964281482484191051722743358324888831746591539393895548089969587787893220891304307719538416389892542603505273893121589158185196585076182362534741230664638802724137382554046532917835671099723757513772095793720056643508766453951282879340339228253819672005492646643502426961480532914322611032356499196433451556785786251200200430493993637878477451534598969781147197841112242897120519079821640047816452898395868273760030083476713202793555795256243710070370767423154427153805178574449935613496229474727538306945796743549534219076162605988279526592658781791000984779327248918635494508004614619495523889533220150748749768738456987901539673894415413725863039844400844708400292304790573822504104107013533891943687371341628229519783934071497726080306694038024786279800879064773869086968416037715972331885166585978281257886801668994494873245057324977965840308715853106210067362244880719167816646026643947822166828109386118028210113745785849401113504814727245193047416173230233259563496997497089432021044848112766640979916198414144790454858117220412778399816116261925994906305254647579448055059751628300677221973335148547342205583397595387418225862742433713429593777634991848521045305880292950996268127500449577374880019213469954760413392795952383993749214621425804440261816606200563987590058002769050861639319407578016990842025800871643456720909661199309732002825983214996619945600540401158077820243545119759610637324261376371135207750560042551869547053065377033933605681873218128817561747022634800069022262314049849037847060149111550714992610123182056513557925987986175830784941435945323528977517445284725383796808694052985177428717079784259590157097180856432388664953418978808267833684733867991721277327385055200229432007717722878566104052107477223448650328030356103762640291348127204405766543686338664489235574306776897284639290839594632131451244680948465919645614103484886957150275249025941355937502497293848326941730996937188009205665928714767806338908514361203990413758952471601938634971898249570371568292936169222982019092373178335721543965481515250818865418149505509608720509738482057724218669448911981993484544691727469128280562196061543479066697248377319724745141682577943295624073376532628651430528435142948620897966390575705836510117181095489912887755921307246216265722495448803649457382240399505284971445532089575998856399189291128407143084826192846288204248438961355355312289750062612459652907072888567272829773647292906886167684778155082412313901382705789931202706421610338977754970350024924162539604406816128770845829243518973212508366401556620998688362622305174315692154981809927769598212039213931369054868610040902836745653830699625289094514602719737091613570862483121070253958534276407529102988282778486722479491989159166317252012144552403042940675988144598625978236043305581435232837085650838464564338016227760149746627672920289563996508796647038738982846811352730466220476461697444530759804554650155008892624983284853246085690825497119614525226023202941157769709725445153475548387700765062494894489422585248417952956885571855826899743611570660180807952800372524715439780594774542286112419536703635710506639445967588350402911653666672035091635365006615250871330901925733915701490839230549557870703646715691431833406417749344244464317690837389437933114601400915690062831790106644582447215712029400513672495638676993318373567989086582175948729825923514073398477735025611223032675186884924138015880659966676435855392525585333915993869027722395900147450018666777722743374779385602760642587928292447877738117310288747786260525235121224883633477126293759314649128784855312663218667393033173046164161183565145592159846671242324310366974057430729756886272489870273708097759317900148232017992439629713216181819934893263613400267229216851956800562922197713944921656717314246518464920108538101097419508132606100649690375961692535716640946036782487144220447904423726570482983903966722590891936979167246276948335753899877330712762363742199900041480482270543236858527411489283934052653258283303759052379656926357218323185269080104481953278030599888321282224165119826730985529850463532528696911661109050522668743223156221122011614330920716252229080059826254247862856550998635390879056773058371839787719217631574080414944972224260813545040089346227886924079051543061726213823684449722005606245367392737477152534933643796360709290224906825675484802472788154045842525183923418580879848996399604810689561684723086686238438338922170528344460332185035000281718934330219364832325380317884710928041176369266538441204324735535292361406620656492709693982169026173926383202094858247868696867941594685109142733372754117808706795375418689438720867219988730063638194518035091119459455387142899558424279503309497258224866751038394209511476800976094578791773650765710347421650247568380308863437677439487305834540208455692097614282604909627929958527934343192440769935143915404531038023541260847204985231024089434285476452602613111325640720615729180970252038130775852616627905021998171053068697864840528466334259919933967375266943787562998866887955237871773048834391196899444946877081850193347551726895809500100328764018641705427806485108595376229018249325526713325536911715914419207294970227266294702189611297460187116571706089769315145237626362627068674582283035677206579593356580436859783846924006511138400957243809242995544052599442417084482206397275325211656398885088268507528979637995824244156647879559597859399241938966358654006753633789202177791261941092718915399200265936058959217682644986180257872276761012575482870806512685223945545884955773432527867842085143745759076221976503294353185028499100091967335364582637399833635419318172513266604088949734792836616073670840068830247536794893065723484645689714142544458939981916926791861473845669461001380933775746314754494872476518983061218314051621655333166729470993285759633852664032444566909172091735626489153514433723211360905836890085298988424351771766189499683571423428912783740600386965768133189043166370028406353968092628433706707841177792883794359741324516005505313654057394728531661706782120288096797594491309320362689395498949611662188807332009641962978790875614899498819787060197416388662740839224418185482453845656912200646839705776174715217976589160254037231780032730808515497511253215526829338082895685317042173481702194757867369770920275570078583341217590085301781149697507409162177600260586385643741512936639504631577726145024107261999695930006671773441461105193506833209228664862907536453791202805176491021608602828952257605663308758783198547638772643346243931525722569247531201360068425004636892026945787197608377411424943465189635118057861789974373660674118852467660844771436455981560465688774996717104391050602152922865077717410988062169217366134278709210201008689729549464186991450612648242751451864352274398233678032863092632608882762763779383389174702104193329524557609049873231454940555823563857648301116900268110104021717059695590032355454001139554005405195996040697648259144386179811574685154284666911150075481487076019799808523310067793445288207741504059288720556601762446458671743585832752492111324516149799385925284154438840493216417944998651627263436235973329257911855058728064758669232609649737778614769609584061611552456693777921143912861372767483124584377359541812474833747245805523864818613739131255646506544830679102991144430165404845902315495353708680768973537661392494606668052063245908974827968486052321272791873967412744211550648972197644695707719692842458524085931444004448609404478970057804111282333724242010186503093680985836345028835011278233792592654155080246751382848056726710205600120245699509645318367200112134320742925493317284658672730910559058729570709406232472074762504555326544350012185523581721671161827261729498531603678814087732811574694747984548788135788337983610904603286340345747078379661685121138072783208769830364097085660983237247891156352983935605523348726693997536664346566389059169762749560702551359818619672381642871071541907148610888674866005961481426796983805147891393833549952490659800159087006200317949210907817518319480548839985268422828764378387455652455088993749880314916149579366044292502970902315460941008543651679717337948158037652823796840702047453354756364010385637404907234236252252224495040837353942816096947622727465228277750492139209204578889327816824840956070396735661217844263090569504166219901380007658277354687108788858806078808204953180463391846488017330310155996088111146907906498344009109011239533212648099611046733382703084407625846516025440279461336739878210708042240182802482106871080808721157790573471426951283709345967316202047806687793275515517099012550747409112274938742666941411104479597549918135554071599859575064700470736889999283954345218362354890392197273308058517314711972768678848454366401538562884827151505097853234141586682208033626122901983039566547048512598492819013908613934942331318806040303015365205168194194735690564933454397909505182289914362447463838039688089867005630609987728487303833704636869967857329726728256793022237188828625195653893275278308634418647456735066875771559399050152323378004703159835297439841606595717756803557150239011122599724064775285007466006223277113456430670844273378352094650969442716965564705134131332998219773306722977328059706824371871326512964342963226650792145715582328637846987920420703449036609481678891080510759794950851656215150498651820562489249384145696090349723206619835137430631293106657878563329659801318090553485236613570049845106465154998503294868818282971199547726383831924920152568647481043385398959722898510648956483886148307861237319927511101249998632339455412406475680339041167072016620698388019194967301904278929046457836103929248507643847760741730965621569245640294095652734428271785890267573127199013861496698862703846835361678375876677060740452929466304692900961679625963595027122330797210748647817995887697920709968929570857039049950040143248420779706893245973706178313228936000509358081476337392669951310982010485613507581416622080103946934172029245207698427069587986463029997418147435780703442477756344500260653843602156021342996130507954592113857942058270771147469560873354964740402808644178481918026317457430855053133356449310223236407985942632658184309763702092722174099690875142832470655627626546430557369566822126272780093764691559710961634391858937535010282632245771154092440488609935911036022241426846097149380597842498995830525137390069986580158626303343619743468013549904645603694142598196948670449582776908071643953335127222688605361885008193797055468651859454708382671800444393513458966343282285472213808728489584130349940477129976438635712041009230157588369081180717829916961889173127923291724977119520426692607806716266608050630750016419163371953355763143326624269482873229427117986883889995838482661067114110500996121229687089089269004478221008657595007143591869024674722853567440485343490245583834679695122257073383113400590096403702982483488064851070198483584511583644617692594578395273622855200352213859505423523880460457320347671270643306035403081525583125768324771787316600234120332159738810853881311663563527577990221514423120336984345701121238131007026012954200826934057243069635877534428914083137044129694469562277595336955223486376240317123111611304084821219108315190221829462622331656722252141160664313743114244701282607287629446289303423535423698812059048529062354805326662093551525413901888615192297395429796770056642791185195425822448585671042800794838906641562706433786800477479131876623119421110722752749019859372213322623528673748899665285996936437709114380017970814215354078886552302395119508872319592372895343151128608820436168222702117280177609415427396778125348915537616135589995490337199354171026784850626712469798677574500781374025662565581373624175112267474951304407843129133142379266576262743348403007187380461711075081045665789344826057800732126176872876905335411956990438243839142479851716784032042852308693729270843401344822673419320278251068876743830148602716161532712498134231393539162251693696129723441842141596248483242211339864351538515662600759669481296892477391203851073719000270591347516611276558045885223932511025910315743357095553708292914931358568247538924224316609415039030739455465227896310341109972843518879813975205540538662667377954554505805659913181305253488396139890362954949667289068259387692351591889596260559257472946868628492827770055048005381704311658987240457145533907803051038427115342048799818268107714581469628227030786866494530251739659773349686612220478958502201854878724225521296619956130222788388923311435427265072072652322024517038136190048231806524438341157746830324862470416218778408728448472866637466670514887098830832394822717608743587178319859502383239984386724083783515619306301715330472687138919467551170209353865032445794392345767778381008344584089213047442513768845293183239990507203220821953246247030107247117955253970059437866969573138230533539529916606795125024778644883572688899749860249718315966217674395160862819312441762802746967207219322553264201791856202969603691657209579887618036221092436310391722880959485968728170145913408381276850612486039543660065764324071251916855091160153300641625395765807759599235436707135027152282031718291265286646949034892687717308886420012293087213992089508946697486306024111187312648072351021797291994086978894704521666075937998195608183588044932830697061937006506629406682276022652673720629185791201559285689229341551299121945010541984790224276345602391732198068156946695229169788412001695239846877788242726616900965046117735736621188067292868081874735983110500075585562895720203082323532364931007722694335516511075656067680217376240712022026551433773418048687240250963448019155099411190015753271027009550390655266281925150996544061840630006775474392638868058101804710790875817883738705263498434440127673968055962497774824808273245218460571239146526686579093747368484653128650285009429254959446568081242907688218495840446443768119861771393587829501795611919289277593309545975654619467021108293216590827351160068932734730618235268925314719767202633995234406312168280325019876343315103963020863391664029665960302793513800365720295380829503778380020410632003795186141477502139245470319663737102988478239214358853112485294546765308041175093400769685351254770491207834659871221980569717526385486384250326578345310290608146382776355723626806371939513537442494034669062106626420716198732917622842585892254449295032150593101050243496682953836447032386828253338122738001306867318001229723554583304744444129135097914870483701696688987449361006323905270834228540762472400429353773834509222569551552514270566055580496349406325564223401272952538077753281170105860950518084451723036277039599217764528499136971068358173297415489469985041900513826088325107218432285256906516564490538486216671454466930229485402090619649152195774886417204018091180405507641744074674994255536262418460840933965626893051948206495376790060982940755615788854597307111626483085896859180124719194654186661697378909171231619390993832224945934060566335600839099598565965798611746448669317350339827760918759100141784056356433888600777820926969150459460853103905883898473306024620389658904286697785313427930073107006238144671354622895068991637578826630227986022845667693041774130704772285408084339270465735536196023500695613809023983745034341794765666818137196041907307483751623089059520691064924432514564988888973213898286205681341688041236928743496675886884929017382081382299659043297410225219068368927156256654035837759368634401788378345741578766114820572130256862646133167052519625363610378672065458289000528983902098045136470559269176716601910242271765409665627701749209401115147781626791352705867616275121609568336474994591109919671599894075789317745426913756140542425623458642006856958356015055031072733369753561834212394521433784941651650000182532090788927137322767001968735867551006343663543948863293187190519007544504864873332676851756603689380356013578327923122706704256232206074921757789782504770799686672401228071396058377231591753408711517690428410236449594634436721269705622593762106042203120425987816363743923033586110236612505134824037742513074338186433238575325120072956054950693673426846134664404014863320624641182854632797228078459250006726579242768744478293569310344789523748769845999536746679083854318402315457618748400047506087784334953257067559013095085201264105984110973034726944667817921634840409375305627160734333460349315015374273588497768504014436069850902015415680674593395943001805079366707925602951002543426320565312365013537243750274004233918740683233265713080949424472361349567314346306614024452874981874295513296405812700960767821221678644467362751150537456930999757780218309506280586762553771116688253567384581244789837055482900637582298194718789858129428503384154904088323532709637318905719822691877511894356100441218638673715147836760930908329454697183390294102924905507977015786105986713835224852359123220304389888375334983855419631563047137166539451348087189785035023375457295514716270413130652929607377725714194895475545968575306564973428619156831694129852818336642491677077420009179125550874601056622835649270844563463033531768299302439202190779620248801629133376597804934846187306261112046402400135417408702439672382170926968040307889415139193212051990402667835066110575501760299771260638685379266054528604226268553778452100823399580145912600146090763991866305110664014942296081696958738310248299703997203252347573587101033617763249594551134896702034078096138793089278569597486801056939882436735935207665822588225298749309148755325994141422829488510179683483987304899598267736592906853711723329654136003813558708683395807046428156263449228207341834453630610001420847863876233431359017322894006616641824754970717039449325819228638368181265144990737554746766252712741912201810807699363593116676730002304544490967938975333734461920304528155044350321609845968130499791789418249082553150768973336428758676015561552866627810335742485032517462490381906092383802929090814985283560059313811648006194742716237106859759089621482825693992957814786501225133039472100694507703641486572508375246496972116372917226507582672062753998528572204059103013835525704734656960706880704397556997296582165531543736287658513128371102662303256125744244719019007161564292029797365242057849959443128761945969000049623609746849120394057159550392364200095587641376529458755755796046522880761784892278390547745594070327479851622136411155591771905159316970138616116653155174698036999481627150138669043120616194450323701794002444158145678114825933747963791827082537939788687462180773084769731376698486330398242697658196624671563816406959473651223149918323047493498760581046138316223761452505818164032303733777946398577250253752529341521319031189047196221238075578109836666084758762249440745332576790438651302049326213699363475361750077704065973592770364839445791979434571240232084687411251012160875070709638507621473324005494540261328862661300533775113833706290772318613970281768409515042356165826620130624105262292306579856441603947847391321907915501348382344389975647572564951967676869378514446205830579672415807081556446255982889092993828749298104131106589044524536033009289208982235441876166968415991597496755433905589427168616217136676514344262081410441947591153144565840607012119409746362228081664857255464081647781980269490431375875070345018351753740871242379684430701618189446482301055281154557922412789428457975090684911763042550542969415000733791554085878389523081510683711086625487695275916433278899637861416748607032246727647284014663113403154230453385949078486961014113235486441069679633385707409299914538511775801119003116073651105716232569807052493002127499658405553495736824764262376884308169152907357779271981868655180981599211881616372627793722503557155272973626371057113310906457131692605879747847267724431958999447012699624183816278260909516218706032132632295748774434361904819139334204635038392655358439217465611407282105394845368682002515907011634403183317292666816951478779880381318887997341298091764128040276831914781245490904679902411044204340189507340160449421764574070785255381640553360458454024002738382826497345148241022266730051111945227939938188713784889397390704444628778069600961976724327142910288493935837175256656299121073203606021239148209849650788705768752646598225036333659608169223288385983139765585689416668904695468818022743327512151403820606813946198935782609766485055411633545895753245695020722871296838913389726306622328385628202941454347823321544024300166994240055298550923376567254772896612411571114601858821451048575889089255793512404039582366805486901593924740467865262853301543829981692617780360177127511834145185553021378130496046092075979452122118712249601297707127057316204518455618873916295778659177383213707066736533798923330738850337255037673631765439204687992282551457391223682567173445388792503664011789691361761010238745714913777551141113945655081138666868541671282774430095185051768372116364861101199566497321711121709207263580031842636796241601328675334779443410994879923710172102355872507200431754163578808462757624009288641804177363971060777746675678385356679608617213729717509257949615508568172595765836301690865321248844857565663267856205986007235166197903200363076537643064930034661095856904717968951937420396143240853111008514911284728138974548489503499397254515805812572533954917405464719286589211332433077892263693811346808607775174696767962693010790903531642893393258624496698531884477472329752493372870453079443470530530627264727246552847419650514537653701456301729748253923413012633913642514200325805960172041707500540161503655122661515197878219356534899414578587680627542192224748794569971109718765716161756227269562078926236086586225084527083056048329403120464385831707478604867991292966812957457039869897068662115844353533475773383700188525714205485296290709778290631964859815791486036033415654842174575160814569216787370548723020577257653716112213082855306401201409525664698102350610803725252524550494349163324184414099120758713923970858326566989185485372241454767822358648067631576395811535825359922664244748075531952991387120054255942528794742570403811890569331766274301070170558635252799944875180911183733255896573143719896272126069589774415892652860063706873599156971948195913944718562890801981660624435369069916809851541512258265163202794881267723349164669392745441417072221903936944514968030278352014191448617670207973400425139517105786010836221485061629699685679460595009174839493677766834845653654978939702132068350389926229815690693931869879237816006087857987621636838731440969258888211783080204945104184116120620504803408882154836518787970224771204716101277034619885060919715939359357891968433200122882630017524092966152555185419507436092624338621351095713385574974502625033939474000540353966646864000939214122042944599097066059721400560822384535440938185540386524026023950921866938959823517004118836436827141771314555145035494294640582514960636941524641663711109826002379538433577198083965259277044194979370717238946159504645588986143165071758567735054954106743077499572360607693993958319319842622290145205061827733842436531057285156698484206594676911416460074737882230872309855545967393166870094605486588195795539438820109077928104608327263865318299047894496498114920852364980375366044713461972327070074681373901110658810557334660840608196122522763981671711141267003513236672187666341988872607893347857434095695539820893747510106680981720280948847155051247210388451692166070414859147355279465599666785600137690518017679737543336037048144189696984994452308056091842676733570783055216277593237583863078225295227647995763498484282113531846669466580968000779442387867538981107165488329588301389036085974751133420718289193228879689282736118579316422005713554461667771087378636374357815723057514783200381669283412205352923793476264014425931791665510249877149908831009120059081016611465748768745678347813676389116105683451989313150084896448124696988849028649431518777203965986754759886351961047894592055977776448028481419037322272628496614865646449808252921871694552137340649296241005404987903107551786980290384842016542929928347796831836621554517255193354975467960810894030806830405149281363890383063443591026748637391891604107357902939998598942684135419098408651631790766248404759148720736104254413018307736544172764353188989635149292886237914248564937171149713429709595789594357391388019735278833990397182220483081614782062987646065926783310196748704189153712239402670782582418826304756185471520754676561219063091058383085466439877839503072993235873355576407324431554572327423153162311856827585747269477560882814816904318829043102042816049421943662034121045095573300798969994153127878256012819309078434319385357765328479400901323830137795787914324548565794662218766805773923222232516775755624318487606165991550138258738328019910320437511134623377574961619825643118580021221862731253078948884911342562662566527035324997363564732230742082909002418141709931282652665999307672857978460244632781377586529334888146525361929551728966455591026843481275010288628418425691130478885513229026791710459850534631727939305678134252988861854516934242899809659706408969379942726429209032826294456270102611560825880942036361984075951727635246297784598340341057136557320051575281114613891297048459713654095794833198713925802301506392949599604108230599334592576861300883857259460417693357112481027299604002263202834650766879352375673752978528432520428663158658417637880320018076147219210107997473697829777486947841492289711495442272491057196740671485600841546647970836830202737063458603145170361133449384245102098394586488684461640341098561769668977710237386456492017851840903898290685003826963411794772509187375703444955926984754537651010373993203915662778344049205164405895974881794276402473324250242085214043784447119755500853656240548763049989692797582984628001691857608642283252083987855846957152743480930562226188831416431691425800798267623094817564353683547749039873777007403267079637447084125274575296844649608548672234978897544045184715934373667895555385877288964284848275597583768229335726620801497198283343486915806289646313409353459906705450819997735731646452696735715518952579723582845389388291458985563858002308570846400658527997052494255022052961992291441718852503472237355059962650061434645703156434995014683759253056972151776948131502367165021475988725192240073109439923787786528904049407891181310445961949694414822062365731477015161054725659810399917036460810704237289031899523320556590911564370897252729559399402805411031909797677102834505327079394545019098724652339910459312908236769486360925255101488385338971335106113681287613885180431524317617925874035406313614926498467760232232433909933542611030617299452352198047969588277415335751880429404735762802919029313144254578973909347932620628589228504277897404069536413640698002331707977299456848391639219534465196146175219852176157735045847214627840181321891600498744620262948672849550806424150895911637027120827783159640832134846874368440387931769630866536451711371910717130854770575145556135379779932867850984420315396389693333230499743338499005532579630888830835172793703044788637203125613627163738387297124325358671340714868041782399933691966417404952818514332495538822665754067495952404417678320819227050044174734520932211491390780816021344024172256626498684830696995312219576267477305524414007833163535551989701857894773738786382393344973684188991588604839390453225279688978934135997586591127506660434887218642669914410534706910226377623367885105703684169017642386014699118557828005275060838803433748533426719096687477638842894948988746158240282521530982141996063911698436806219380403242945311768565785910144575995265959823993061345540119608455965277813268276111321766510905070070682131888787991757326779231017140906809006079501100370438622050513033924453672025230475314112564311617258171810739911371269612682287559375994689869969199036356585553923700439037296035163345829871150021982845903988586992648060931284889715512377674028793314263131505875529567498690109256756496561690530445242448059076922165257986838528488519237763286532459987793889566477817732813395077003162801003422290682328547183257379193771470640941618462693480044648612501054553834038981278198761071413574746089825066137660774601923777340109687950081669375991785626514921414201409349466751982938439557230950426726009072778370655765843777436979962739729404899782642691453696620202083696026032529953215862050046729521498527951069618655569828244397186153069761770929424575201556608878617701488112689638153104488112480947640722884129743414850122825547625035479524922035172782755249683180486024856872649980721756398856143478983901339276100296454344267411958745850192164124684054915540360575485425307433689899170297206293215596353032360974931342766965311073828020763063622647492796731273869850447687106219882180138389365022375675744478796035144351223929785298482253643900162772582332500106049810076065018578418063782845820291122718003263383784310820553772836889618234157675998586850507204376047197560915413461668188604660316434402789017371215296071278233390062345901519155875642475276273306216895215007061223089839475258733440120111566880863296814574236373258168258881893110984786949836346135995841539960753607922267790201832461405013726339442869151608588543672013655918788642818223041377125027285414851911532783308038577500734134320442486795161296591215129100605598979751886511054381008283085344918676734013860822741997208884087820795544298643682239785904793850162426534286023476347010563006322517127251542357967711593593281909369495135203916739974744379997261712482017299199636000545766892163859914623942245423595720307961191043145037727802168961741724165308966844598399567859322737636982106328357174811306405487276919510007044483676407982678494712566348333914455227596278046231821933338639844722431995371924027474380791676630996951981297560855351151812217202001996168550155081110275110468589043582128871756827552759037435930219293640505878037273055716303590537507659626224573820113242037608048288598883448331255913343050423573516991785496600153941721804056802764946722419144294135916714805911492784959631754022992644200753958840874224488624018855445940810668196112043569572055570546018441923114613288683734576318426346120968017985047408729999330456311144630124999669159686926970247948359613263293442471500663707680364176634452226602340312205861943809711212877353571854693878380930876520593060316867063398705164361220960842219180603331610716357127477194072421768748802057473076754720458401273471784467291810180665832291290396913625996145762186029635957661941330916666964706922169359441951729100053731727459849597817867100427284841345495943377852594836939207715143487789574364967927670171999956819256735794302538410329578877160812142665330384083846661703698535677205224051746407089167794682321918285376998105760185186387524109394094828262571057203274445922748076872567226497046121390677862385659082650559167078768021613176123836810199986914465190403598932007970537552738791854242427451924701401701296137546187723712388437438902168006035894378899003432208168581767935252003064149214107394943416621496172264451650963199046378768619689377808365762352802530710519713019082059721287487134512452595309618128052708718056736151300081718299884702668948288595787178201948555381482739262009904669990940061400571456865869284758219391302861999444877749206756273996175301622618072932488790538870081262554807374426669725467776362280017811161430494651922357269786056143189737149895956142201468669272365759632543255801340042501995033525165978568650711279641563398945206617239320918677290839636780206433346400329132440866265672264024158764756231294388482047727581190041263683206103261791767578779703449446673110529919227848379753007705999826385453758422158627174222945889380535917317342118289712148669043242013794946169399783449292182032697748687992573396544042698859070948765147875567586024737627011529280063451193377826866952897021393650527121262612123392112526964160911240611802590289528459034384962060403305281119403119519646807791958288009397993755555298630804746712627407954635700130184282658187597062607159040275077405581729885798254657624992473505242423930429697198690384758947747596025986105198619595622348978247199109526842777244359990224168778509844278621959391032891600186648772949601904461973709009034030021606878277474677302357768327334006206680775387773557508903541331709339696912989251743724095665769762887266827670895984628177099490657681186610605255630091792354241170671071599988692238527372252402799295841666053223304261673895993940160828726045568824253464156780741427795145420933105019366579181511518458465873168640778015480020584080067950446018146340368155806242674851252338696503167075956757919452941443754576951489076202530506770258675687952688191035282401141849777712965717266035367952097858960178365989188154557717338097918567132793523910715803542627704995710411017804489726612753823352272160150953019369788613783009018053573590644631350447945070367636988484587687611314138153074319927133778423201680421468425877319831211879720973217682358024130230234911821989368553159377580985671987043247843586089534811761577588589427202275639070698616493773331137312489265404590373493936838013248031537787325504388140751857789393137998105583860379653852364692596862602328575326288319612146946832532672982787459497964490090827401955635460869324038214506636111920131831254791036269449534787979015603595601477688128269516040797258911558023163615052927585940118744312924639288627942129983714011109308791311503130349727261523848822488139664537093900932184384282208789313494263861264496208554571458254333346612040159387098199332686619318665006938179943365373182096745018190529443016361782134785023433044129253048910700332714476797150252160210649982193119135240018490783735702340352992487873345968455538785610945404135602168170490804199957830014922613101953946384283907818329057474418428266620526751739567799917047675690926169795720294420951841282234309409417789993537797943853749005905947720121772186123260867776647853549626518799023788672255735218991086650042667968101219033784527461544184665797874751616824624107042679721525299958722106706956591645912797125536630532519436726163445528647302941947192898619205432754598793983678175985723655401658220100218741085868192321937202399066293501726683126420790443354718177381702175714424644737993055382052444147909947304528089236237537158320088453013848879200490815831654286807526214192743427261003139990079178451824877023841044626179744384704368430958064906029475525328936686272091061604209119516925397019315438926429168672995116486749114144875307502094243380364812671405255195997252533931232450945382280620332468332026025630034333447780270245447232350325372396043721157315839787834157919751363143494275901531491500262455481696585489309925923848767273401638712455950845626843243782095658055912538270985802574460244150895416693173371114883874200630707291656485779080296356747744550313650604396726510711979587843552849884240110448261035920909340935018449928794441655922237195649915663054027052867520002147368615319422183820089344310163563102969751006671573314513671287484793458264987989481767206465906730487890196488426059671834510918389694493876075546234416443109138041092786990595622293114968151031342696548934445020261478195492352206008247911169647343457906947713852738906738231809533060029847754913502989951929796443896315235303494053628467288251269729644031185406647914553370862635022849642309149765696145635255965377762932539989233448166789255397437862018841687335399196069993606279792495179769469324706621939732925240248416492226154345892708545679732435734666223521837624945176735720590497790788640761067755758808595143765534973681617100501433152258545779544237781167265543139917724777606334297011178495348356826053462637720410682180407935193704036391268698574146295183259141213659502712452266393562341383421249415371710275343688237201184184042866053197110455386781027258414630822037301108316431984453706728936167724539298982920898043433575691316779657073103696019050653569735584248986917749866561811774642241642310749409569657206912204346759364291381319553184504443341458567861632916259988411020496781425471013945839828133602905859019981732773307722784893626434325624240018984356501762329635150740155075012504532363242544402468097410468831357251266988429156692674394906320855639022657134291244965380865980241440585020710406394482557853685012405367670416123766570939358843542943352639573043466490916622667933537830274489176133184423900164067375320753488312422381670588067202478823635949734770408330144625230554124694165665238628229712864761045887794499364439492000632618834755747208100345025699103749522615980772370741012517561036895639640397164532413617584911705518751962865957075543299046196899169478904326870047441775532218551992959243165888898258651543666448553712383711078384683324669316041741601705532970745296930319156875270891014083686353965895297612581544697381166484057165113129113966142817967294364926335584261571314852292485396634925471367581183511669030865369072268325450808724095320067761844549305976480394296317465400965861431276460190085965243109204918190614967321879877588303565149871026233952145339102800982311082904283447481481073313580340375178954834545546622087571926812536909211323658081137235340707082725430164303717221144967069404554672952660057606141616192256744522447444197564760253261749640315475228590320610725932749977183591955440249152625201552741293608085264842081696139780032642172370154003187380588209513501627097801758629202939620922499155430590515958602344642127670059538910436605963689085875877236141371805927112395997244266089978695796649962294615983043552359569838089259170098460969130467189749584130878935952921194638610905162335796470528043588892986835962738867446819015469835165962603380887954660575819705784004652414242447448617933967627662906242377224714666757139193458565253185585072075917722614746377445809763294430506490816495749612053504165333922524845627155001081902441460942373252437463369533427320169865117302128401973225158636204850401600653755896012146946968332025341000205803553353390972225121422926028757016763102194861799307494121870476319464432489292888734186569157126656283619443257945727582852233671828791360486296667254254002602658130266050335032748702150018957121587172575476708846100927755016188585574967278029529221004403489179218334912030391740979836475413658506689566192903604722203689485830091457974259845069153520968887217483837829970513890904408251987795982790926857305062605219443778791137631324992203697970334416408226702716546280566034421338372309696599709328895799168929375570096904550545066332782693316675126055464746731746946777862465950383612001372410905922964227958846548512123380432019884235098918220216103848629643492209743928467622737343887591012681328626685649318141487393290785003776681214581385312771618826693917418061727615460837871640452168114483855335711139580512637558112621727146976439423535160203079383791047624160686152354101526534936353914487912576850965021677242870416067949601091836638654320358885014306276832304996828579053277750567266940349337587759502273055981662460682646313709744243534304439536753943653500458472517534822391012639482350659670051613178242006271126081920607939269683230713739102385825781917749857314800260256397863506508688604178563981070697797133716987301152541919014127884034414289429948209725631348738512803081147846948266557251087170743050023988129609554986615660846527497567235909745307066879998246196059467948110572437401552569149849836427978048234214481886728573798219416415405493602755388008953484598731150092219570300232261920317327784826974119142178303817946903063169404213226507711448371910660368013565282660614976765192813969813608698450414397237286691890741328710641045337737591353534360978952739999729748101879972862889036364682939239390973356626220710288575362684535702412230474678100566909007419014220738214447912034367298184938375711736773468017678968092060696247268289188903945262222454517672253006280256503682396694711150822475428531630384796727602275365839886782815607937667756283342907361142181497037217628396729510175439747313942539513193513569891997543697141936048060234810451393967873951597450313242410712415214494732729071929300105972493478868191145956624287426278948628639158498295477074356675363997604784752810165989941752304489862527228057726505618942368015112633259548066096897279290660169582786838409765279247250749984370450461525030608326734058260071174381045088481655267801923949605072602490856467908454688211632791570541088080103781210480867475673319304805006901515390664442986014047154581171107037805936931096977909198756754481383692629336396705138904858268656154133629346215607793485459688250702293472189263954416547045833211335390232659662507501551443153685993667526103519334328525027518203906373360074821991331001381168290321667104060731857764360001262573079027816474024393260876619803234288553168044230511933867045599618991228655766143584677707616791139975766457291453086526836505167281452549594737113061121120501607411726453275683854289139161498897203450670644743420080175504222714942110703778557514174615813589395309102174573151981778650056100524879722807783534410486335707166722678328784141236144299674977076626545263889701100382154353367887034413272447005264536379395811915563626997065896100781870743224216514882888654086751260031787137620372873674427366500584401401509367428918857461425962261465248652071463031268784997573732502191225967402321783439298158864361046700406618342264828212408423796850141164010469760293432936501723977207490520759587762616667752965950481833496312720487315972349372626533772031550927039025326770249115856115809196972952847594094058533406996563962648176480607407579810093971118921408717125101879102998604036607363034711921026236084784402519882684545102032113093026815772761464658127229703709800714086367983685308855356564574612741166057738215145754140621917661767069710607467075952886859341206847115736578295810344968593007411662233205448838794885045016928660570714220845631653802472733117469138683612534930196574323345174132072040209492607942436900422481366818954775659796282943588095160755352042869897174651196983209556900366045054444287247496465831430345405848116340566585905709936758476544107790894783915537500547929756688221625663723656679191338856596786223922317120834497441684259192886876261126083748921736547657820567010453475989913386422291649574522008228627156933566449374875061274325975055674815932053526303262836766160511531938709219282124934662035970121277431421448301298896368089260369524627545541048306524033341002817355207466459769341071313989274862027467272932879012676844363208212275204073400255790048648322301472012723749433052541986730581100566669996450590284777046407325540304419623766435672498720059501054483905382651847329860981179345265535503892602738572624246920225796750969588202844483917900959015833136447751917423198156203044032038678768964634804924407208295370746334522265447329880532495630838965745000431125931291822377222644919535197033014418858192092636018709661843679658273041741893901973605803074027240702363364251066440974845002099414981327872791661401770384441938740678169939238947101441954854921827132196112405899655908977152296281240696467439417786962879044430161744682520672170532223935109220526782405314021112174785662367661833002493731030199374343096239299576414407372475154153084113461963546705421400234110272439959541114937822656864329883143164509716413369928330303448531925666687220451313087478784919934796454374585183977151666063364427775262319205432660432402060897419711419008600604183352033858453165590812284154041750110384615733379565548985332137658079844415149490544768903579857840114686409870685083785157673945250731292750956059645974537289508431703818069632994889318224883615335490455494958570826974753819669079488339294055765694616171497593291946399385248637581021675423328778104915605995932096541078637308497250695396721692501843909176159381514138843994628184158134011140094886291288574575244715906920522977026148379972402838538911703510335019183634100231237524151678141042535980811715018279368822203753524120892244384703966597365142918700299240912968641859528692942649053674316267686056618799172852385403668527795699722533390686320333175042977658158021200770989546289005555737599934223838766959270683348104183072015257923346524976339686617855838267084050976022080820429345002008228697421359487598359332549964987234398311893302161219258968195766456221623703941810986330975163320185645189754114266308309857312952476708512355831384781169579779917608132408160513472435991232890690861135743829863197498456149207824463180691200298737743376365079299546783011038309513208433913951589537105104781451545971672252947544359211192715838770491843168516811195458210291892000806413752647529249565088024221338698231403599986408664439504093813294202712400838993384844246643395378406069396246346986379335296856912674787937348809365271261977396707373368297948748641386845725798029991260168810681896435611692495355398909699153388882021030296310245476359622344150452017050171880958273028241012526591877681884057432110817417922710743420255394922213638448996615263549771751973238703672701509077982023370279655317567832404071150915028249866459531018939496234865188331856504284808344979620143217307084976712320681645225028884146682457527138738833688439140369935324637445828513755527211575484366719148004030213704222851442412604640103633049183583413492304302726453209644063334636430670692418306388064382595267020521229375024845228518065901760760136389421656232429264829474217033529247370052835651787837341022781931481912183227946737340885081271395707866420695762995251649246099748732886744143719364370819678211475358331175403671042817922255436225148594652208842866658390760376239033939519677496454084124214367518948771058919048000573965652820878599464609426734514798284156616687326356635110759628410115889786042913867696861514732796813191377342979671641023016873688491986538862901956433013637822453141037861253625133468409246946544388359378507827083424604380910473674650812078467382182022790525756971308397163895014254772722453829380309939479318052922030982309010542820794208502190252766070986740370935125629722343413898911791499115541683066940270391668545657589001811152601318417346774685588743621596930985437207406970225856549531785340670575211727778817601793148876533887809700701893083454782523125617757458526186105526005470711807939472633172465534473131974634177397410904068821294897443484951049197889552076917492808388256957360021521155880772664014457824964037425892662202607315702105246643548824449606274890278292358344868205576584580530141014256147905679073994491919222204026542616649553324962656124046448756298912915830903381777943338301605338461258796274042560523515464756081802199729647272630052567047285385882166851919706893939004132404272279042070939499403597099541572636863681145567268504230210829107646808719092767512751386710148127257026991163039880502756934421424229977210336178070218267117581501441916227046843025460994209911275752781619537935914713371390603945739265997043274038864645390440319491395586020925868928671248813544709078357144038087140649299404367674437105821655690723891654572664105058005128749762214721795661656889835708865515220006534626024679452009256504208883981310429150780083913321701764637543080835827977256406178048125993342589458334461807724774961595960973723197924167526735519679305109873623521916910493973081879128094625175425278739998243173926292723623638750915598665197064016124299367990626295813857755632917223824772329514907726632535627554364839455823692314760183756021514006345081722780214806342826370897226195421415633887730643255752782165115071560001994948812871697615849428405782226252259735371036002374497430653003492987840870909261756388488733793851019352676359808342441168204437158621252969210125218865526748898174887706919974911998643479834032297571591126249349483011258021992509768587664544877565822405630849682366347900210442836299672764832869312513022401042352976536469661834293989627739677514791331290774735924515473640436072679969764030645927692759646118141728604662113896422363095164255968832215483971986431994031212929662022472986408878884953960456828796614844038817999523448826447834969874413499009037281356405204700159831513251013717291357313635409750418905228529223533393386122823796346364145277735064336218743990504110537080098018563071110082396589219342297573481793987030200380106084595943598268376370312893795441022406730741412431790942818783954666099362625653356039679745203503927082552455749347769081617749174884939107988539277683950197699130602195406049050166847023292754343908159658179343337340592081713729533942597210897815208311572151967071019329019566747291604357088897928704385941050596721273444425010660419967407776881556006387376196332559363302487123809737605445699182509183230199612256737270660563615499679672836192233152679526811552301375894724191794364746841722971217121086574786348981759723457659438292599880625326118968127366423290491333771819461125091705138020635129814678058741479404334422419117628535036670660243728000656087217046098460415194708261689083508126380539663424293502157734933465948569324250095914054299741251658516577568788003944918892921129072531436615198456683905066119335422323748079796740094979410255163102295010552144816772541613421166774970417137640956344492193320407217116444337666276146609572157095015508748536729815248576745228696289997735826760944241803531177219724430132635258418371548360803650481669902469500709972948248222303372091021026862530589522812789298950657580789319611425319148701090897381872265298594416273934638699841601798556999684868102739276664359357636445794679807019489246765126073967868172153812864557753492741480411820635561699295522016592682639690777605581585414638762422226600886285325625014761067042800742121953545042601788615247495880447422616666371895739059373462253546724396294548231242254324099918135056010510524575951946031762795728161166651557422001722277739939059436327641301803273136350515075802074443083550645733538711272189262338103400415882486750314005007150470556810360722397894014652232227356701972873726728055997135434419888911400970241017218827626740411851527914358632347103620365103030789647795005465136235900162872572836415346877262981990602003625972103700102599377111445035782558812301239800555688398110253115841870964801645891808114625941144114846866367840838820981699234470277338276664896666183119603488772180290878803959650427496451493624783629481295701615162910951416709413990902978395072712475616420041866065665030572828510317997124050255005012495993350765203530723175856283657548714194238098561814337681175830177519600854271569249860691351121972808004723987268812831595045366638578245785231585880652830414926647071272282433991768255637292316796642830245247498091640527815981419162981711123628417622383301644244766788684052304857037502188894983445656456980957097045374855876885532772098276152602124495946699494870121319445434595525242964607628158548749239090156351095427323629345714172533998428084322408252049910070691148618608646236149713029585887921105656081374313248330683111245064112286124178944291783920000856530435513692610545114000701795542183354350190179928160217248984431661696320216937353106079132776489648766330581424667582725220326177351580348352944553274136777929369443443281788446545879384746907898433605584068495011031612667175398997560576338801723243820923371271837583731004524892114894137572292648847576626630243345546025233258696958917099775997598872873449530678239530507794523963202480469179022859014972473410509107286184615195587853932681030193243375060156813081885226568655233336696555132823247242996867197638956328848032929257335733877762654100072462577089893767089334059504466446176821987384189829646725214860490802969688378010385960254122116003259699588122956549725686413269529006152989704697069264935420466366531620021044201334273546918286863818963042703623300198473610264798980098667159919791092450507134090975328235708410415125842969642727953036614553673006631716492616085506122906359496845355582716802119451193787224558076365053691308171570919561607336053511417323382395838323954004821907512243405178263616269022670084866546619118299716336978826454950576782026755335792796572335285483189788785663832922397960276946647183495950869867476607041581651124487573445553555700978659361240185379063505824651423737139780862342984707540588752743865961337061191415142089001514416343515316613449739117491862846166725358137393131187277980999164515947711245880273829673693396283987957868444179177998228260832613232694033784457356085474048899215209041057203466102670512023433661628777142893248260456301096620722090480843700971863548978558984777448885041260941268507057025890330314143426677617372449081812265456858292188791355056985591249797519233736886803311987033196127443584715701618270692324030072018803241663791471588707794148067558146322766184872698036330417825268371429467880341519475230296377765882500224406477703492906536933097142395895928541957733544298604930054236744039707759326962594977031176981834277916279206667670949504163731336124210471583774648797427997479041176493635060424335068346674121176194065533290533153132711868181948046872023240035522384207267702302870095580536352730793483739056544165010537394544597386247048029624370819624620141199006182936930034386697606603388337821316162695346704183710707987341592239909434093669384883247756603770233870957017994423773880874596416027430751897670499410834233762772009654635061177865606194718114553434780357942264364730800801381810368510225475566830482801244148300298481099181307964692061512901642237823218080348189878825749101034033889581707176311681534014252324751356194511499194882338505491893180790208578265985225704770209387245142176339479415729841371355979621548738271427883364614916451379464067770826387008607473566135430431462056506244534236096001314229799842235660447829221438460355411021047695689703867037959339654181394701779162697035792657447594980690205795556475826275268643322868713339680512094969996950770012700329773268913168842185252676326661297894760680798224082224689011164437870015719666191468585212854441281001635623712913043527333945356391721992118293264287534320619917710698149297404411221525759969914609323272835439145425544635449202713785720255599482376258074929314286186650637815332562850348788382988165624832780202003738448447379059923016102399826232905914240913032236757394138435349283636908297428519996586366047908357594483914415213859279956064991702710156334958634734496910762215495087346680657526476488280462629412517753398069158410539738436180776203193618085046618527494337250027796264285319606691602469260279008365726764946601618554549486370728043098537982937789050376252124823984368101349258863902176428901811643030106681514860043276694675556638185561885927269152767762414591151533312591411457872712447174551432652545809336354557209745749102543458562674327914953830119913690714848918518187447252066380296712736102472580770939997590638017220726072026960046579201341835788033685880908785760972336765896679056924873057606591094699161210556164221076579347083055039659312809209200694280004034668064302125553071100456377354322417631453160188504037856289451356576043962863743949435594096130057197713674271881919102841414064827865607489951169600023899188106357976152561497890543830536566108766046041987372829706905574200960439502812498371680182353571774253370890957641041547718037344737129438544633132421958054455497767872731096836815479897747724702574298614740656283612095392408394932052674929876437813371067964969828491134876816329583890432701900382517404265463000627499343950318605086624945401271581861105443430403341356771998147798486219566265719213824098093411448330587566102718621210576733354810864957616650992880022887560993176827098041154023752443515570705264737071746671739632754296753366784134513295550398764031765045942160206904310159830256417627671948602808279208310049984866583162896114706384356504401202980552034503855467535078420528658282225921689629639221518564098346768838485599551017806120333279922414795652393488959205521892728717423734884884571044318832909602422969082422470213350443356982924253300047230400163702059827345983117953146331143555743444155504216721062042738173184038765551556741690965836993415170038805494941631774174965806570164729189238104161024851501659425516643237450963373525254267381421199682383125460740142998678677898885022620369717046478662193494803433875712052060502903213742040963097987898653718690395840505820763806022149994014020925416814817413866539568221114901733161658057636855649719554632031917273339393519880176270081207515550849220812298217709484067948049861458970144865956253967573336058002962700589901133071291407820633552846656267110300730045032667184925406216948052983625142602580973682283126519693606214016834004671350752043372101593407929447470827354530999090335772213319179132386688326270205010916248039997843211606406931097938289213408181129169062619851841891966526371678033423350990119904984242125689018601688132062738861875263934516906051263795441949715461507515794214422259982083092119678892598431503232563165300505778064063344018355610048269469510048555295319363282850110942872196767968027938477390806906697105061205202509862678557471178355581122821303244165826099308910508093205034969801160663142039287307792817959076917013710010811021169793638439329469286197032602579750624825072757343221839053509193850823665784081168211837056053058662644699061856885500637375401902312891976942974126082408687031210613815951052031078558992337302667259802548648680404996817632192437100291214057382498481399595686071974431003392647364084252002266852724816793083939008501217423922001596775364866898888513583769535782321776223986288098748148159151531060396312585225396640556840596641272406633357108875238036472331728124386316047280994635099151988990949377684433490059026454342372213302217365276713167316304992146417609021554927534784805546558017183050374996707786913424749536428754093807175017117995452455850233651439639717602344684594404630543490962467441524112765598252474231848488406440297482300136071782341387592301159620490851767197723860468361196135083672588395210013811966949740525578448515624387378592814525994144521592777430454411172903848623885344852521140847589362206721886133958784731188203161567440775834114883133879312233829788934381221978156951111975717202287838411644985660505793066424049029135950742687039517137742897334646373230883156094368372818026642604450569287754121528551841696590068862216884899064307137798275233801542867174102238143989821387637459574350763075875850882769018406735588983215558795766519640052177091759687009412901749209940905543692911662976359064683313753513843737851817147126068624307654290685595664924603967999075164709783625112538665797337944215083849971639875264546320288849423901565592343189571384112601934065003810791726303711665804581898003359274902692489281405414731163031428290926218000192941732840331784134202247749749344593760152393214548352824452409389655325436854345457580410954343745035468535236941348454453565623667768491058043138952267722342472295311643074668237355403254932200355945435697349251032043670718411526979210846791621450608114747012004477830084144190155004031052820878915972920496786179283128436884866010420879691052322657715400540373906252408553245796230180976442420654469291074367439730463151293381433629965343473067325854478281947078760740736836648550385152304382024763383964538832079758396252633113921923184473876403388059051714285870266745828383356871370296931900765618628717093096528648057793505572662739339779684852840647553642892702524435027679363971369441623884452335612629597170432176678916310233466326584833332879513898554145058127729606282024859136832806025640844003595083345092775335978748715133627610661667595957166815188319577258372171222377246992302068562526887106262239155257576058027277234813591015953498739827462066439570115059661423821436778967199544520212127714940956492773769480684322137340224809113831831803957270953640210195275559388813688984614503471310655561142232604928408866004538473826399109110972613791267229481692211594049059230026711612462049832767506796652754367929742799693733163536086783376919447718386569160790501101632804952379655505128376347284942330993732158560078014482829136680742878186722442757538927265671212940989789923401816619121474184829369449135543078267959545479371770011042833517334392258417454809741394526574930912385975936149812835494230076806076091516039271467712577263894493263245083345791596254386442916682376988163061418665948382017836795641786976191705715702681893623493158940288733638677966875646041619687358434388710785868369293854614320314279587546365980281653948026267629879525969543435406583628315168533252334143930893503319054496323739567055228565387409884723030006616198228363327908050602944946478898822297101553015418570858113314053389586634995600025381898211672794482204170801085262354993692648852665479142119179126863679378625664277981804213184982653152934065520955213795867851291518174815860039577704765828544588137946885907944780916379118789571454371099287639110619536610463349164488107824207050162827477110352455487670406157568464882921328268744979774113795490285354869467199910716214176559381401385780578911338417296512980947959589943518670289406255893538679003324673824338775286104197278715341756735056277950034317685114606254436779113167977452384653050744425641227225383465214211744817292408787280403157550483958734013853157470894074211955976584484988784174389514381603908223215950270192343447374295221313728647933834403682414136627415840023324176690617340559345089669458157654895094612578804888069020376063006458915944485678847872285079227520531231703892542383955910303981475310130619776439578730956560232831616525148156531178365311103366866375241654528915917440371956017744105327422644442913923091951762290587633922873344043587178087015065780561946483809124752152593615914273687638127863572365050783103093116174273211461672904000128949031452305250990826957711557797425723420676644715903348223467449086836380961608492225629131133001031766222751249927647200748295076265633097239998494037872224843284711951701548710820805867393187233439390990724376169852658882457703081652551519042136600212315680229624869087925687090973674420315365038454917088686659401067808741932040804542211858403778671320740584662183705564908318595424629624472398547330373650806517756279715613866327113492692831414399477127664483902680456637634051772962025620556835503744221337317314636346149060667894908657903398267064254604912091131723321342935498118222738262675957428417228972852788419978854859252199260396568824018881150193336517954911311989567314755530837775485549469157932474076650765001266034595970970258573776537328172486960461342546898120822061877658972329809573892850007533980453025058676607125306209974550156757146795372666147721803681138966328796460432872639491690655772833685022853321217529105622905672155921293847421933684157276036490016877460657435129997600369621043111868140170391828342969074967104148551569145165765593240117281058037935971010567955632407615860110293848930950413833664205657392977677242048529079206708076824611761462510956201279987675348490077754524889898125824497499793843263355781082047030582356946831984101813888327851105176133323816517912082947671331946697342174176113581536118418823225581939611806109499067880574878658838838104237310707313279368575516751709290989920718343763748489667175250765065836845452421495109261173270292920233182683692261280379048180752954553866514054198869447210558194049197282050434311659364781005263740051000683607005726874201700704478769670175171836568723112250302032360374202151861696297234177022201976414892386750742537266650436783574461850863302179510705534056345598362259550022893745178702323124969353978863808170445489581941146145704923973660715052901268061559854411545929847401085574826639923803315374807306222377136978847329693085572456050472042482644510205860741528192367462448306712697677219425078937936939701255508044271018097584910250945321255926555038684727959973605335380871000006272735583646812686199943226555952411653447765508755461049816398754807282822168093969346447791923917314200824097515277617829882019671467231505435756120906669136402663404291728491903176155337973493763273396198366856319839856938447055646058444250163308914238272054111014966225551230579055132976000751529232119643588679313829284580616517585336579685016299040880889473065663697160203316898131367950521676222018189809901256640325660483518229764301824402094289001161878804561657426913660968414549093418680092259487173340856306576073193962684414233485392105238700486931027296450485153286608988944130627796179525012768419832322658318990245630292724828077776348455301361705214858183646351544712596842180516946157995174441467169167070519543203283372125212794656592687899829241982441136827231136902895923481559364108012565196967646887406224330006194412105073009894162740614965870136150377270013396475130024188024724845758622291259414082435855867970284606739499722476236950290629172028410243636799775105181122913187361020080148514082808426793023532711040657070330042290872599103528474962218005241792299491815097875025902828540583494990327712958388499721271108340284472226370023358017555665119747640551152045035429548514139245854398394299620887771925216352335753850374667599775909024084304144200235250514413685284300739515277195548624159305855502993216171591017657673294363243467502550367006742449781468228147379979649395324711421382065771435455845751793192614840886774431009775248932364558349702891184990452562077135474520970478084771023564902294404777252937407447914956641311204005028936262663891364943248856484992551399567528868872489547067721191604218832224249644573597836837363572917440456665906709831708691949635363703581930400895484669623847180257893302694340243408109595222273595767513595351975609157277267048242015797994491797135267309621828385960518262015890111138413684774319068293670068394258197978895413590221311624370945684419263720883379402427015879654811456284685886587203054608565119009355373798933020510796611975827250793719668069795177482983203299131939755160173617028392361487404881144055769215491324043806158927319858282962084892933042736188566922476520683878609519578382894360908389311118215766124631003686094980624705827273256689349740024207042571161231959698231964262568113175045837643577558140755317200157435677741525845681092528819494676209052073280522161081801359812929444769001247261841699402041269828087873913324273054046523685889164508316005994934088708515451471227524673892003537564682395896583045192375312259172779175580729584423079234283569002912160345194868010111910933083336743799428066813709877150972177935959867480687811837976968553772624808365439919863030544708668776528115318556090694346103488015577754910031069685764307889624168131677896967491477639260752883335809912882394305426674703573111767424119246893158906327343996278693066982434565893859201897643464972757151798192624672145986848384618696140834243059157011935695409682700563437532718911819872358310328637011447111668020955907077842443862242548737740217478453147880097119611989771299413196332087716187953104411651870022553962000048961591914954829334043636872924976444986453171489117029096268174511696869540358916849265851917984807148017075685402591528104188351847581256861886217021067838673084263035357882837840509029615664421538536402788362260015182580064504113359453105702422992073075561148397899348317570006774405209052132870401956444266221788557882329312177159710467656365191060494301219701230994293194650948198567534644901268963504613459617249429916012999845040130465863969572668864315777325970975941476712049350980355912482807098527257808251770123406058272001597482864143545655640709651574495021623478682128832807225141929422539628002664492715675777615962643465211276486090709804156280511570307849184025933726712867548046468987042664841117167665618243453087473661115717706865239084982357200883830064696345324130459114427776049603248912650230408356266819835210919185335317153210504620084767553760960518541613650147655456486036083357746206413269011776074976400665288475358931332120375797623655285998100255434838177635215835421539929477171851776465132009597527917546255807449828384880865105407394691550240128562072022623203457780770856945211480504873846241772517100109983675932941396727650029787408118724423408595817363982291527899286928529298180385390246506711137662652282547913865188954611353965866099480269061025592607087082981448898756189106692257688224318218289477075859523956440094870674600735869381332682978560542882645449998011599340206802011553344913510421395271883883657612707708517042959889089497796089229506569798010991433564615629542480540056992231612885902723386486738442272780014964401685520956812427540119403656152418764665456389479635588416129342498730040456113574654060286845033752891280845703096635094254645995155228237474965338727239367097336580082190074031339358959397170514861669863947581884905703934234467306527558897376473067954439738615777276612418712383484471410939614537710213600613598166649389152105809957094525191626454906843601417478379707292162246452872275009398740416975751991349207783158501034265649029625437715324736342377850551045765746597832282138834450460283091141684842498254848511791468608750512074028100706841762273225381951913808943464109612744949369122479988024053657751376758555228869784402899631998343829283353169136038053374836585355709310586221095060166744525592959965046173983708248039058266819972860369458890316422032876758956203146009392981954921601010725051230277321293778095742965813492143646642458423010191446177614125680997478375250228722366998920497292643078662113538978806354643679362218901559712726089137973054061625942135489670817277978012128984337606166246806209411921314196911183450698171839503626438657956903410173962092090245537793727772631511496802800749995363198295011561296989319072363860326000507445753588540655922330356488915897183499615250860376277006413657935629995823920424861148426799494255272153807891471646993062815932339630686863125831748691167108085247897325976307354840521726244101919983897182938242771647268437784209798637514403027321284442828689871247188207095408359049364508986152367024582095064304359111889006890763373169495409972340534529376825575344462327038074021517297607672746861517604967269303068175012626584833479739081682331297131123432172438064022965009138460416525980811283598976227306658813108503307721216517890465362281784858557788972745566631000886011332065865363949350636874303999354611305797365099442603142395391670282324519376527276171251170949027349363238211083989439522299219823024992786857700778803899957819245432517949077561448252370548465699268840776851658566690483855304768470514267104008420140557715425366633023487542445348910426127313768289758508521408419487081428028429650682430006637699966542928788729197956120842755857707985821488346434151957168668669460935043670223849976227298218183863612927831520685379486651392949102835002246226201709108845433469925106477133441450443597431183478346039247354608133974406825672000653278057677011500984489809382892015304109622925631320144170651874166521366481995356587535899127089636034835996135403186776658338850898503354413130700274208916092420501312079812992790646210560887728406847380691904240348926562940147478649428109845537306670927903823202071056315615053944116083726798295776387666549239378944807465739839674661969393336998485008063125682217702137754099359700834486902412686084448667554936427273552671799541832988646500808614447152109925535096535514082668179416806588895024115882277693607077395838722492973828598878802505608088702891463909601948960133855142034946755963079670607213394067199947231777041635332104107404616102637104329521196420568734732558073567591554590319404795671638103505290967738401255157539870799519203737619263048838134612452310075411437567025370265486534451317767433333514154520794336634559956513415535644807763042785833871947001692849937682656005570599656308634855052608351445387288736774463102726182253491720937496141428715369717077999384714048612916458190878973581311206434913208411110355301740009656225923446400780440924951219309446977175580214556089031240793582964588155970207122208074897118641059802236402497764726065510929301368550809864027590242107657380164004112813460673503197756991775437120489654664688463842774930775664476446704284416740629903604803600789198855001427411694223533773839528936910801071066348664747262408554850848878980182437306523521198129898756473506950545754180888624716571298162369327033182669427238872073459586392045451857309907683187574739438640428927964924461617051893690172612482506940365815737181208796559261426583047604883990762539484867118795932680285134770811473545158478495097733775822578477331077823976745913784689887081355561820264492032278123091003303494011221498607555178162080518643799340293676535640590024112834841293127439976741946846039358288825545661182463677564244360429251434338328292602417503671086115624346981213627371407134381824100369289279624121145300734389579627101676427814400620620734592438308721893682154632510768115873048156652027203043656607003351421786786497204569554420779885518328093416637795098279941774932858953580886439403708639737285323644028552467026350373616829987099832736658398991597113838290362136418972182446477226555569766295430683976471554298296247880978834166866637443918984940204350929525204578382594174673484596048919574359638633338606072171892799815202348768814910692929076731943118691205574191826866230476211314762460431998398497908464519212951671408012532577135900255087258002991412147258064230845916506821266114366972302516781697713007007130099594896778194670304336876253290988190764089731689299293818878733253161932336847686420384740964009179149386847174841488298386634491554692870200672414554857019251311462021441012016923615618956889349630956477776274841617204860586692513878640856592751776530416633062118886464968190837060613496922295163303451504419253196238054937515598985700479446914755355136168931111714615353534660071764506644819584358432203494426831354385128953082763291223279169983027735748265484523382187095094109742529776224831679860503704427788901918244710888660151673201216506929357247305152479925577425305041124260117183695953187935498880371565685974412750679494074011838908971296563752903396199124815696426546720820022321139452131056089906197165649493509260330026223708275358388477081806636352331269584342172743800797797713767521450249397630019369322146105754524200464913076199327583696879962775453037812897778396268625038324856809822672615559485618539051957592555643660223909776625407063074022252838837418667919378467595123645083792023481274823520098756627331941000790553672910924532214762733881787983542373845888117507478929981885101728455963515850773790535999143310755565829483769343765878803726058352483327202050267080857528235506202731640450005528947597784716541527949066240261833145492337988878466991828940889567953066721336188182015400972070794268289284098688400872258409011272763156155392397979578212515589312966102475444577762660397578182067018206440960975927590330705975006591194687465429104342698860470143401909607016204044842503606381287099288482258478233022499015724419158996042271968265307718242918971029071603744218382417202619905912137548023229230385920887616280242660290080503713638736424127013849353213082557640415508349864901046327775870722104869583763842997951001543545206924373767383763053087609124873287381658446770858184857323530987152843609315040007245418703536947802941942733779482361443904531613106354651957127748802474711383617258785590929888015545400977617940620474556036186495369736688296063695957604584505929689369914134462765654490697585949017770618917232679076775279239397857922964506966657230462497557110914561886514749198669643343829560699500704446881883084267744933945273880405680069919840474116948310660604494435375360363260417971785025668325611566235478688406057146816762594210558561598849766325430477474111450900956331499289169986863196084638476374869766613485850820157863746565370339110298535995441977838682950247128312307451359865646855970680138095553181227579734514093716862641185142158943240047584937686390636791060208280126307499294196352681283831292532927166256565378409922379619363495198546762085838727995008507715302260019215046050320136978268493384603552091209053492680197970958395332998299307699392460649514461690302349342534264453071152793757831614042119826781787107670453616867371530217395419371859605953481935398706464072045490471450914062495792726191208131579749069597494647167902078513892262080882732598299647885479008238027650303930673961075280776570290207582444981943216069455000737566181995904929676460370469930986792440444277702440404632424812900336691568048617876266577432391994590606146380434145538539177015164110743054059916280858026311006246413430110042048615338714844903885527127490071118647308492419844803061224974595278140981395739132586488374222423817062812911373341526941845591062835901284051949674278090768690611421731789986573644089907812254122618370701084756081200380972946670130216216080332359674361863719887247175786611208043511506633508300847804115776953589530571386474532093477763314118312019684661343671494452654581767209558854333277736668253295713133691339075278983753385533946654786539027635156030910076519583451138607082948574305481020188380563561491250357384823972579848422089927723839516935270907888354053689922437229123085024600040228734000139230183046839811947736036935279252727201777128127042409785279754582684152862135171179445172196180136843571615748635297311693327737913985195676734852456604894300074125974342150367194766784710007377349187365033062083624261540537558604449863269526025978743380721184796822297323589267012036261069471239168170958780478741044835002250281883011345326885851612609811506973100260269149102063755184527590333040167674018232825608708167573868742360090922398746025405263810665937066370519313048734378774571111307651096815883153164283155492528861136498038769308813951923976688549359443181116506813748281509209395360413638156574617547552300034227350253971935587063004317808788055967208124487463003569076933663084423864341541119208234749576082856490234167418039340468892932335974018992504438794636553695330401957702686208890841229086166352162684487123778180253804360515369556580077725808631758440892710427261677990862597528085852932030028572049654125375124638104918460160027857496477949977341363605919560692337683162361941068470643837318679102314436174638725632316043910623719014591316142964586905401327964772369652967076208171953053563422058683210699538721253899078635076307752389044132089855435152015533285971403886884446601946976703282808150675506991888237181532635036317665554171313161251875845764975868438413218925809096218227162312102907126997230961587237976626793402159242107620140465003211667503320784892287796768365337784950314494176852635082607717503836073239260090892924546443163063618848231581054927452266825597955626140927829508544261872877282772132086760834843654477377639857097974955934231259035218619724234447662698478580988472972523884207607780790121346053882386228118448689981614381731206410518911734418281635787691751115434676184211644841889620660087628496625234245758071878401305027269436481478561672353234633444077958095033082729151219239688054985132815675534187435701771347158646078664295369432772777647681839151796541743540925041311170058961067604147609860820693995472987919889808779033421939505709896388268615638353521711698917109303049768186513915351480554424446798953376213831476089832085768377993556030076099558223659311249903557846590764576568193752945870425848987179094417737057362326346848913758829032410696393294845303909339377392048658218917451519771515762304337866465175364091373811823032228694510850277008991002194299261577229992671688632426926656783434643260137073514636434830770398729742066491811917182175657035152215233308992965027920591786072939720307878574831120268061914312573922510364623355509435787088563657616055448338121797036959312872821558708162377129595212897582830020307959130772385367957019519975621577128045427854112605554472168536133661719346770082080487467515520174399713654527414933765319237376516281248044886622606018989631545263293280648088858615665524963183820118350901637004113341298801380837209809275920987086745837871227714607030825727923838991932504023601107854211889295058339616260426442986406678298162032038338369665251683344493677161351309542388924291085708639073564333803022800311770739214159930076045685918883339182855962010428042342663344701132973170500487337238467937104101641382689152144493794652636785820288798702464511355880513433034299949246867448424161004363786596206809723565079732541405998448427664557613599729386964648591680422586370743078715173411940893221581578433865021517902897865589250298739685270901841776892530118207355013975568318642278676466812918693713136964194175740293256026635318586561176518292899701465516864642710198268965936151314517112034997387799143286209437836762157000501796883504773926344383450601394375109829024259554553166325913523322256245479037026830447980235028483728334915631752916718784003786709744287312581621423708558684308354859785926071224711344809332696444365460603738631231504400303722876535172105892737501772492327255200614470273632288628639907072947880067867227118338345657118324617202521770534228860388507235383635462319401584394594480960157752096816062703370993279365895748471151064542178457860772392796942972356440316416329643545378969269885923816500674263250359732697385413068323539624015166941444915813300117538595175630817239262192077904066279415166068098789060999686447760315493489967069374069517776426840232129155126126897518944839642585650060303278660637207763693606105851754906484039072784867791494189486645814346029568285538225276727825598652663386202490075270385592611184377464014661515043043831994828278614859098274699062796014044772458534262129272632667910372739491780379531206755479842498825151311801252143263848748952333783678797429959861349542889501772126999290168891403250799264439330655403297490875594556682580303489282419770218322928084968512265989843658246758328444307187797620350459035107026621424080229332762968675895304050456790220896939531303867350793338242560698199721609975934904055458108624559187052713572366601073692687451737408786935685444326353135874477461219304032511958611003658317325388414913897271689287012220427589124839042442728723457108978492380261308576569273391620108340469594181298780405382599940807351434695631500255276871327561196808850845832125635162322551237814414738069168959065622362110689612922663472913042176018071484797518490089132533403357451503174848232286811861799202767373329975806296947474136995549763586496092317657083237196690076754950927353766228988243898206792175608845339419617587970798623071327852691223185110377774646698967236716883100061777848220436108649436839019898708965117811916110549275740169317122187778413355552458127503286229542872509528343036467650265637603799597876282517148392659085835614088392390502371651879746371153218246911934584166362793801188821094553019506153912122856066028215485976207140534796427317731297153536168133454397429798831677609327941672114091140380320611717216000591424438957885513442614935822132235808093519174458704705308703718083762820249491048417053996255211748572056172149512071580023002751345830958833957342162149465032326653864705730317171189066786882945540475031908622325936053660727972047227978330182002136314277180173961932484112821878884336563774091423765770505219229970014413817964573622305182606142694706968987813841330448416443199694818245742870852554122494067178131062452892224927412545186669131645461825568101666815791340042820036981572089302576352849121730691465118566832177784379407020564203714876932651496279697869197242143409710324033048297450250853703358952410317076099984806804710168021569862360472647281503246593321178136362542878626498510578085916161663848678043870196976449775780121963296029605742047285260203046438158772004186339504830422083921650278918012593628332635148054554159554631149836804808737377797842969433600005977870865797294566130226898978874326892322677267544599099673822853364655326135405850508453551736763772614157445059551316982623021301465135191099999435430586109002321693098544006496974354442356465174651499663200045295677412019244990109992667484069484510687581762189818989800901305344747297384175269086512533835380232327206152138157083322774796042935536856806196145106911209721181751353914748313148262709358134273780500632308756385302995719299000968846147445711308326971405686051734623389268469190122982906331847073358416502422616116274134367773565303221265142619385600460191095817254895380205072608139745122127610199658788369951968391603858155043313605341243364983678641760906781340067068236365133129356251138386530537906599877772458118611437081306314371143552889493972993467049694708635972134795675248421769717608588730514959234901761831756771772272083966772895918231947624651142128241805694859812268205800346867865916071154585630097368208896112919384203473227973083188552615789972181526185869012082785032988764510412586765686247218705288236049363955412901483349463758608671308410682542828865657727525293131823648095453406756268462522860417982532649499799810443506901737002766456670792269539814588028322474315621060883423661138695319442292902718821743827137068118975081755318052401388139088055461796624594722055753864585382055697338965805701876266846708869121912164590640892184869799084346636700658807578682171479547696562923895087224298316818884175107950749369678801838738494283040916674342471961724810025980255185301442774942460139231722442169169105844365382165118575290340128791926446267338413750836113285472873861361500003046289990452061078717647001912987055974766676774937306896681161251934366612308040679357172739123544462563639062654676949086489805444365934028567894339159951306741935943374508075816884927827953165205124526191382926279403920404870027256618601239907644568201328567409762876966147747991707119074222259734802770998000893000636584661620618362281179651312996218391853790690087682956477302307081957191654777615270346871219867194995742158282421679784220105058786999002302050546440695733359515445012200015041227898028900003381129392504868880161203356913435543113137381060632417782901410176227330399495677705502674506672057194075315981184088254802009758564802087999174661151059305125201732262640072017917269365909206253566470793515586244292897300158137549798806429803961224155409468692018336433876337588271337922335184051148146161444736105364227960209799933693776247384867105698703844647327233042009708555518504354387387725655880482528269733829810356620160732276335455612223134509704920856591648009623442760694084254280470285635816308589119200753437399621436064121908567623734253034106679349389470570530774337241539200158177185014854062328516613067457218041173124337381269391458189242191198239389726992648411654201746685212907927141676279803445528266653926716552575395824024888327293040624948127352527600046277583211923586802779554267012647662331196251272910442571998112773955773533911752837821705522629815921685158613883717710374107482050236984578265234075275991541459072642539698791499878591231160017547474923564108348244764904385537322290717002577413433301988730142402674511533933208859947398930524632423190728355517789469601982764737018017969335854812516263937741017191169192174399968632093511691485810853770920814059819887019581489366126093144212445201171762069598696470125815135517407755043321151644845063065884704150026380111990496598915243564487335670992774579189714330497259344759569047164226913733821677628185641774433734631092322878576642848973022791567756434520584555122212346007961525642270750195112287027159124948948554800594779077812849727870928012646223730665279633242720454122194098761255262286509230973408033976642089172295299026897893273307028830172574651456504584239334954449647777970224486218078384257661322303898404758729158703609483372093936148747936331934559211408820655143025884931580310440997122470542784951070574377714037518630304160150611732755340020864308496543441751215445464546388396235893947547655732014258803018692253103602876647376899215461354910326814586674476777925933421728241014354072921483402853340709937390376927165886612442073860189586464215712644785839191436149051308494614517162815652960736457401875099917300314860168311807660995339476427449633875803026555791448843487457351838384701041242219682164598606594859846746869118525365201470435223373452063661707956122064483153122736973391508104789654186680775132497165093734710923960601092409733589634086710891322512777101366913857327236483682925906590428482140545092614537379836576817825577477199106311281946926396246593806663164843932022656149253741763315421357231589788059561357286923047210167543355913190413308202946207730261751922383716327312099052652536954438547250436064904605391063889599958864277635477780037240168197953351391747778765153030862144648529727238917215367912189028808079838487737052988881286749164098951026852425181040230057018301393852600304255281705683801145368521115224501098710827145646194282445298230552868962309974173703598950277314166531586471866135824470572833957313962168582346632905399159657391641216290027666132731705027681949446586968551561183560592813699163614447521615029943010942400568638099258082766757025894435713590574159395887488046673087946711634000287886797400473723677480544596554941108092537796655984585032538283109024643949325948326573925360021100917006467422635168153032537712534992761948053002327011710606012199540603215449111906044984484684542070004604907421645729909525280079564993191180630553513270702511456782236994546632886446022126052863385489853513982971265930252532208645758084538651076344776753982710865257833297726845480920055906456171022643807766541181613331910580627017412497067881065854715741459415825745297486863933115521705199840370467198778390187098887461906325800694793278233926553076106263007041691701345511992446619746662924971008774888387313871264531616615534233852240909568563067745964055631906498201314269062027930146248395660437596539877098628283894655020428181817387593840785500555663329273435217680267100379506950082639536537474600197775705452034721378095526976130154813522811931260048224333009314097058607862767080795057537098463430825469778987763777039851365663652902228327423448146458110254526343706779025576044913967927028705602071358086579098715399524144535542871177537643370911485849780226829453338675588202024694651288018777070339040989363364091445821587911542026785860427419309253790041234707400062429429580852527118286557689577331504012865275414617468699669046526569266547390909490652667243582936866724911551637748190050896092848307099650841506007469731252601386707593544494903602200143935011824027159126847978926978172412588125832031706857904762462224948270284068295802600270545335294154133666538690149887656133257026507557961976359101488042047157568252082147956660550919193325396862220229875846091603016074137566898431659489309612121291012085459502250251319370995492021666799289180431409111212141065859436781754880862355498677563617552324394612211620305070196284786543591711022744467344005743116299540378177970625689412028845031532538245560550688505155472464821142780434425565434146095910036291049905858806576330975692708119655378526318528730639490712844065093823177306751874131634617640655675708678982862564119309308555270024103299385744917570198399627529677775604402907224503888011104907454439956565196473466963426482279176724056848151823270639168713932262335904630157445567679273036459871592572176979171411782463500982991910007800946522169727813987932197194697602027545768200972533849183419804869215354811948909616349266329586710574026145823376716439664481069176642362715275389502933024467207685076706146806530758527321132682656139550119242315348323516782728868761655645025747400806703813081858879380296511733435137630923353730762834843573198863542378525291537369367524931668703213796748555200192264444288920822280653268456942744393475875831481642191905615203288345222082556834352772019679020866593447054771907538636554522582587564234228315792218670814915039333664124761629991800246924989980710139892283823335619593097585726484176097119411709793557002755113365975687660857570869896145774908203879413560960237617268002934947074674512742541333620798592903704872822495769719972906585238668940719270329873697922337412683718889366530946391312572610623168193414831587099452152726235484981634494502107145061625376545272575209617933008740106074842404619154388963074689556161362800231055584746846630375167590435909632760916817058167738102073180025849683949765475273790625878740647650223931400899666363019233275921063312892402647686721178154044562117356729265910501765889936035249561428063548060944251137786984998062012452899767794668730140279269755333611667164553380235749132166146056799163054497596976201099037135734112229267192779704062892805961642959329243370813772940829201045969471815027406646325782374175399561900404151402322869391115260985390987591944143095768383358443580810622008869157533829150537058013267026902186649324481069688375912636612607879351464028990707613299341253226255345983241162810332791324311381404647387969224109903979023699778593126502366772278274391784164056949373452577746135479007341540674350386117376768646879293336065819129178233955905415156624341010069001437576228990686921697111792480781522666050868678398893445626289111389604075907003699731447378039148017108479810046960336573636505127104401280939821320138869847544098064611106721224496380549161372931340698946549464668433163391467533124316724185801416044817168026011909426634938870110680316549319220588674431322386570004529186047238712681778075198242720825589874325632334912551243656084468767463045831182572697539949823557762416440698445143576806240092558513612359410059789575459470479310992436404361768168310523702592440732458289897386369330533784950304820668108510378215887534601010120765446548007396360639220517780623320486063601499922603659869790366485794877130972625910011575133431850727470058108679676073524500487875261488411243587748634681160320728973015652778443044631214908773174585250235552903697119508423600065707866147331459036366356172660939486834627564257037193987164524261234958593937426898929101404281071979080099102395428694229689667679554401753181554941790946482566296337989352740473768556800314528645648042707008893324963031548641316424089332798724077607097354383578008858258332823338332406560610588120279959349462952437823333611544696714107481988046806424565418753139975143644316504512966106915963407328146071454846858435279777391516581864526097519809821402201061439328497796523960336242892511109398002484287697248944518307951827778713680016732995397257708743715803224639738258628666319074847085619419416761730834177514411861222201501724788037804985207634006441631499324796687078473110034943942065151258387964913369669571271301686706601230199035372229453809571463378354895606496600515857350762303066492265143848354412918824103294550217884474095203768813856225362655690532658514009980274915543003090916908666934758265982997291312290472475356219434931094045663741476321870042031362719520467509686867615001716013874195885014215894554481256729144845432233988887659551361369700697655174425952092528796983915843612567570202729933549656099186023753796544333358552597202198709398378571438289476035238656728539977966491019257285001900965893601697424409686358463610985918701540637135701813316232689868420318492800026319758336824354650570389780019578882076120566148204553897475700175379062249366125950573943155121558027708674494313013792486063193084302242203117796555529183734485761565578015348265486585377854696961787298741705269695563299579573733445694912741372993280419633303912439927415231315685004185433867898352178600787923677695889499175029923666755306978859463866627604643639928549466672425836137460510809283841103163035630532322826173863456339661809100942196607959908484535636640257199862695952116807484112799007953440500404182723430295589711655597506570627830731557740015335011682868986249818190432616913565580009892272681172852174564468138998755910995288421224579477297334078363477652976030227634743880014858502969940433454089365365539542619785203693467714872274215194411684966885074265289567376084917045508668215612777462075845245673317171680735903067593682422986132786633319360309262882226142343816837009456117407578059895015037158222723031170290053379094771372880968408403790423236753677188902023575363318288823082036886022954248332928796098533291475276506156548752235241341702310403328741412212788846467766212422077408803268529656040321112456325011906010698279046455841605341781205223787298718643553365155709821662100223060602127004513422055388142958966789665750567476645375113957720486147587719591721496232924558535980528674912093378440753221241209020476447855636535337734983590343410467522003340331529829326612512886822771963646902726719056879525813290323055602243135957015813290879030978054910795391931817841284817442221168281712033076297462050578119983719648939937215594022333173081564078358191056955803522331718133960292382521892605975193362700595739659532156757631450254224554097138770140315356584644850507288242448147880826452288490780291650468193932986450241047203624800405583763043244149791266436547707347409598980939742513724614558089889175218802869955412881804951357158221431852546318859552100498605408121989847947130221540754918590333367239258473255296793945332123857429071406730719939256238671583590242977958224432489322908379597349835007982367035816245415683465869416020551966224928347102898368184089400132117549771000860331120917632936094515848932216032577797234976035834902999931371390590271327576525717451601634630758752147363141519332517554212754317938824309870045134190042331365049476462127133007989827327343014931089298006562190348802911964186884235497421901159010083580577915973248794532917158651739325180988402101468973667841202548739353692126264078434332927134021198903172478644118571529255857695304113681850027017566819970683844325409638981657487587535431211880560793802761174627295021033476009911593562241750161588122649631234240708530883513825863447007500148215663792747990268571504514762886019327522413605853035801722420490071608099672794561173898375924961167258629545895728606131874716259603595683344716464949173687901392298126482199031031113959437536976655576238381958161598801577411295743961589598718544090169110072197886579421715526739065950976159682951599344292401004036740793583270367029992363411624217747925616340928264462440373851730147765036438551851067079577382408950591027991765129305531970316952398439763645617959897575100161033638623239089634510296093967612325172738732661520104258667571492314949750540216212334687673088560274070207531586394779916831867948207002649264651255443039189338104603747910765145607686220535557237526398033728981330119675762598676105059448774397194064257507751064219211197971673411622076929880536872051725139019145814027257672230447954233466721533615987809815319375980805673663130962340095528215356583952112557981947344475466790125956022985241112818671530216579765307852962684427362911684270180775760088716201757926900657863673694367096500546352689009745697056287165954019478362035124891462630130556349141826236253257186894021889721246915679011906999480725189756930022469126970888263182099239295382153226697240701330646004197984860828787834455409427518075714620641492395440728098458308287260298191273979675480175665598392542163431261634619037202438442312326057950485624457821332443479986557984000847222323955716864214095843506720317555508351423458837689191219646925816649349028392051738964648103266454821625511857038700290384054019142151975397439515901226164674218167907837789146475265893804910755943875246268562401868243662582727943425877932225086619616978180066986500311398391154852190578115289434438535426483862959300298584120526433859693383712816152616016543515841362219235523911039436250536360312975626054661425000077010904001306838410612820832477955014220038648045355651045583461467144173111065731136220602526539947255691561782106369171723475685123176493323576178671583274617470471757574658471366524651436733754775906804913992528357499625188777803956112400627108034084631422394767812238124042569691512225199530213123387692579036461333348804894706626462637174691723005394275740491155810198391726326367072155123478092513732065301019579552943771423670484720324043554855580779552672894575432692236907149700890459553051710758078138117674731448385616844366803900821604885496495730109032988220018198968332804451712379569635495701833053815431765667602152243838386023911520180950854294740339060881906026092739692388350882066372448089501974210512927439581843577242382934414830538862178320886801632386052208112952654600119507569238649346677722496405036685795025664984189905650726536947413474621977007110053353828550079821430526192088675146919392544795001062218260890672850933557680211271696895460700901851148043751908044276971904678482354176581139732695150990602517148630041588051077355520015036030349238667692044044330022095122434889384908824287562016090006819573433168107101915018766711873720899418074109986176536046750054083470954739039308029476088285381679915270079250245192868638406194839464489978857166408544446527758881820709405423500159830877406065547369695461475165245051697976970188645503096833496623287225271744863135380118404143614173717506692395702946931423415972414240662648817363623011405330619065765089386588201803990784585377957137763421050779384765218578548018430079441803324091921588487477182131496651606558701380241502064874311649183739631170976795626132757407415868701249283229510396719565151178351171799750257470176364331733005800189691291175743471210931324481487630058409811419049719879232076902610516779017923244209791788431367463480814614247343826864960032854748256689531051339362459150713288578424586380127165222565877337589623796963065697123545707254426084783677069141389896358668725452801361458372037753728152609227754936163364120834902680088875323809594833885758088220564518032683269606484051948405283741020886833023377485132540142117704485562153398787611013510404745231306389767836787193196716791180685098605253287869051426896396596738531485217882747522028285406771498599010842884711156200054355956799638176956683229160199960349615582177787118337606660983171686223104136921015437894952424807710577906314965945490746184355365067555752834623735548135255808928423035068738862886255569479932873237568127387837395089259571142405079171307172875349779045418153121006376093984917677629624567808435426331789063772950863371271591456581773508313777150795572628186131161703060871432317939868595765736486009566713537558033768538970522253556608196626676040497197395312420816679311837840690406140075175696908712297372136556203359659182516856692286575910150504090375459249891617815285143918832971622322535557437056519427102624609474430193244930203153678111921922454270490257269439860203419241899074313691694159276113691840358954983692030135972699898598977621343814022847276715789144237475545043558132632399455231856701508776013953976451942888981401298537509322405297135690221952168457923274916722362112810962208158088989149599786078903170942704143750079550665313508417652146919159567308192735202705748888076177512711403102181263051156820961100140273051523213392765712382462336421828892884110182720400928944766870115730725067589165744509493834387267933988135089635160754340910522580705068984963317363057690048672843566242687685540624189337033700020452042828852213047676613783872338911100585018676405513753198658674633211186506392329260726532770301359110783079957148562408170039760069294900719455756800772599695281041377216913920642649590619456112535808823174159992115235303987976328137203252365615003711196429302728147356303009734762982318062984534366867470053788947075878649451415273375109744097080267823695655271636921107440328308053795703763733457049370608342075788986678262197208467351041250799324979396286973938367572116112163859565018664775222235030897953458068696582776192023885768524894836413994514809483037384928519396401245858857543803652038190114147778318635279037284353102300686292245163948425313407354307609353962394124966769917737289937533225074791026173552106337547909366087763699567155821045800683830688764238998520562415103875662185327857071422758443153584666848054562458971813077160661588197838430762515285350165146439479849234568812694635826598782701746281668871467634891159959317579609977896607789489712225542264825978808882257087588630792138629347656284491624232880645661826194429395688803458833226705197321919802406286663587978400367804437563550452393687370902645313380763013298463939747874423729680514515957841588071415454913301432014077770942527873112258156526366933668131164823319582371994070233285881843797598675388352549339944599257929991674198677923850621755698780950866291292501282101543542172575306325982030728734719154384933594835978174140160014335426282810061125702528057510092726581881348936377119863068228106210487837125866864667439162650382253113125719727641845576714277978889901432823837532204763128542522892158717917632244932000639483114750985400124661821921713255647092687259366333749847077985126120331314880310238931170615859248285048883374113161419849965343479974264817464106994905390038363835088085194767196812264089599621711013891980440681458958746417626049988331003888228361312837716953279724599773901507178177367096336414168313597064867583703649514787201479036266414984334189215245968054206531196149848672528321076940602788537358843430360483458416511397299676052689834826996036397143600849256188044467700687477152118779486141062138179349506462427166740214402430418738015552887318184944172682756108527627250969065183067458295043496609644098831442071308873458965038760946737805961844884008998847844324513152852579804118949559015153301506810642763763977359794230108371238403451589142998845802111992483990885602081012606353433546722440521599596519803382050670900662610275210897197187340411631887246090076203762903108326383284653016694732888387706526026927324423282834193835799646257823905735988849998471194439725250523309806869459983387461889297958508541393096141311632220178332471467885914801347448183349529363162683590263279111531435232549719541240982406309454735746753923804687336639036281966444385709003510571292092471615975763286780409349155609580217594646046209823630224406478926845881474466993506259597758474882883355463184022045658257093096584774679203724513557519418808851834636735867952650709388722607995081261646482736319644295783149659076376357052272587442473992371876872108096242091946632902613460369821206526624110423735722885260811002216918560727025833523196566900177313817306791610333148837004539120877948250737055746916700009311434491260524023838291627456728682763568157102114404245285999325201383398976094861914421800830493155887385875565447871899461360126579856245901000655026815321693090728476282961177505532532745101133982244728701950608804338740621203219676176191148707381767361771142231992702917619542533938545075688321236251853524949982634438972733095289904542271207314973170118370166525956579895820746657485964525608853799491918538395169316952265718001702762167504520150092753146851636951965394434162999315911575438146546562693949664156587109344097734750128286552196701369363810384519584960950972934372603820684205066346039482235774266901455512415003978983591982650402062417042708494572044292313966046607252673568909328720773163570948170847816624520734082452122648197463238137831752063832321752968442677810925151487472730073327366943739100890114168362150468281512398418942514859993388880562404172766836837977291868264557500841174246191585422356699622457296538467671573927218104531431355784276609188619332663835459484451804468064282014187608517928509143084583408240832624433664071901076009655228656714628786152247306258491118290619979211916404139203013080476734887568809455418730630113141654984498401594697002553681997372815191236168932392973591766306540629651242329472363593312545608270796575570895938729459650408303834378674990507467720465887797179594730040586970528246269431431914091548833828425838307204015534180755073810096273074514931069997460449708780010698880721217896298104975946369452987302419950815226589394992936867651177559354437296508610220013026296521636420123479778993434803096184019474763848339289783395947631288437453378180069314583232929597524376178511719891552116718856579257156735707836585016978996140353818422821883811089506515548580009570315730281082276850873480844349361746261522355475022978207013270420246254500536938387485204868695468976857922524768386943456595033793129295470337247850675955035359928433887979921322518318329227432257749112362541264697760074621454659856816459340947153256107060810231210950122659214207566374989451022228754945862193450450070813818114284938721941906220864580791073846908046587058498660959406612652018446464424049469805765729348931611768132918934338091720285185508337222668554729600633530338807671341065814028577400097611408049571534777019265367707138337992399701836867669316596190594041014316878441827311354160348797658798070236661450823870436922008196294753438658856500153225818408102942299973766842017098435512163888198119159233067181470090470721966520571995270005887437146211969319411539978792806039243133809269563636685078180050442243411506664327431942416009043599876962486267966066486718198214858226414815041465205043809864417954733414703496816495545333417551331684522496399219249508856904224388997972692889666139641453468752938244222129317285645284605607119141095463915089017300786298829726970376883602362753961375885932746288228214574309914617438020645883732536427669636923641472658480528540496170279899987596511224260644622689154591376481578761648635009096794208582606698919539880864019582218789664934830060253952833212051047742423424673229286848171917101403230192243600598479640023903999656295528519051675025305410211251307349364048432365450671576587100745666702861996551287905983012663767894362005412162274743393068963849416038910400926757895642457801095942491843818660350339604674228754305499668940391559979144571148582850913540491540621603789108881335655850004031769867573775997807046009665413021364402893658259855308701049539107430477521632124076491848021699775077843824317699400764054708412889119810589558834902590046523474529959839751465068684309120606032993009918584731855732669247514115030001958761341156121145410276990131821469908986267066359001595406834212331648249379890523790458338938292335564898502945329280832723685697198746292152925572452161845503241986721559174613077604709451526852099123499782260872645066456523588311590797756155426630751681643151330166398822683769151445242688161244765387890515633363283142347271113159514923334179597227951563534117780219721476892831334707582590699504621199716904033173107611985984605079822072629121036385694500793705595693538940264608312549967868886341291665922707732293430874736817120305718967068517283595141909942443674677482132646522280912162522124690016595452853549029248681251074424415650044608454349829986309754370407071171308858218755881138787275971899595481069687799748007437864915614628417746641626638768784365055166569000270490193888050581650098627283481415669899191150864920933091182789275417733604328431360181322568163578111892342523676736339091153943946005562109415678013798234715057880686382453819163147840159430126526653115213281359337401157814562377908402331638682383921508833587888264150303675804015920599586436191228596833286509077653397344537060662456881646704401967756115166684477826766190554445409692125700422306702604878258641734062147728743582445742727408965924942442696067802821163948608420557534278285477857760296681122420205473649527507513212112453616536124837781625246846251675403704143512974386838494065952028805464350993816498981236565102529878509988669770667897594457701565112534212752669146711580835702385434445462066160811377199814815999402829169707331337505125961411643978324417322921796589769992354607101722278760227049475541214845105146822051699584968382709449955329418859798786256128647647349353578476884314132626054949178507618172996978345200298867937067241472844198398987220158879812297124828588044958568208822275793455245719925070136764148433702499343152547894100151827398473312806945044343541078963661059100006500944205221939748120245747228246665838742094742543445946311521420515711557199236127701604558847292360037958101551620673530082996872508116811533473665211224612655097802220903134495448365477781771276307736572885142887946981387423048271879041409008151220539298619117384251359193272686151743463614201400973237673378030335501496913068492840560990306357600537999426074802629297034237442147274387812413718090934717378497590455610010355106772395977190902608562557354992327603298407854485529441120014293216026090291318822161838307732144570404708996862193369713739749655028022457221181757593017612798129502989297784260198149394387913308551474003135164363651921512096143269897661597414873126096589792980629019122127775415194607636684881718570950174528800360237137828005344706978425386776356947367189192552830611021635505296543386570705039902995536535625242924222420107998729215777876953991245825683850240575592587006627819737337906451781386189504259688295118254264260227265419926097801352631816663350286326873793278065138825074897017726736329418216299977424565666871669415357679048832356665178958259668296589468949726779502231919083754535279614334818954799684985019940529097088215438530149537310469010846372956558663174303217077727571777701188689789744916280355576493269450838371156402097162462973901289524133948883052548784796344905572438527318350197431192455994689983572703662380027451870852351189390920450355102264398025689079121299736032079726482370574245924885519883622465592386205821859913659973776586868200922718765510614449745279524348446202477286480740859600402683389584941540851283323734141499460012200487079881189026684291239385138517716285855675018253825616310120089343412510722254119222731090321937659692500628050524341363621928934705754265420463353112946980298156963676859693694196586695730259104704390037065561531072763843416358788003265527393870617669628085100837467525926119451630331136599957312992316242199033538407369032342781864900699934003195990841295627932747389162951420003071948922829789888074000510466033837161467636696376456921376627155425240078080756087306454682564478249057491321861742275991985702124990457557170934336925542420809517463308231764526869313573455958580659688991834256858858197048070895725389967749950134493131714302300466802671122481064077610061192872028898559665443455019453274662924555083507057393846927453545784917568950856122259740272178923787793458436915511170063438933210270008988957512946908767299395240618840045358184601052772929372870471531444863601514461174446965502850374013401973551124191720502328110474053104848287144152409095969991585939708614863620621767918706910527546591283632520838822292914495363362073500427111841552068273176792519902096878141959146049665155319131039109636474733885881245679851787964185925190006218118116170944805162839445159459425803393240690338198823730752769836405214909147215175189541667534695143816922742228899022558498112149561389550225587280384215191639299565772819508967456519138152823309853776291229580252623494293239722325076196756282038225928055448361983450840949125281798464794239199827356644035582034540450840207077927643866572884154168861693845488726945646998170341311778434355581434827945803392717459437444236557772820939391647379582724892680254978582045251199164516422594447838091776258702761118744578390329702481082254331981902836529132978301477974670445050925162347031794066361508231889074895381718708925796396992315328446784193745292016536704243935458027581279301927577496538639749325333534431716418026644891403623988529815196982786851014605298027572141274702160035726517204356216882366737689828537980388135337519933439484326226504700891601702915192901300154217764760170616498161288004799387067008918300093733371631512226190194231027798963951106679535817830854309095629513841957551783448340070178741679596758852680358597143156147462190102315098507545488765840128387420258438613189274775948833887487233651098410771711393301409488339796499721509974253963903645411026972536192795176181048625960860675951766644181836339621894556692141759704696955250807245873472020281081118285101083526994537620962380968552261923878314676098466468907064533686473101407037655851512073124542233209428950268524564899450630946765483602174141677757537474992567388780079565924348040676273412357681158042568363972669235931550688443178962648374361070349881059249010122528902646377253069058624123068922925403679205861361347965938465196758533787910775713423668251033100584992778765559509880411558987649831461236203716722005912853319217435284022893928998457863777929914143769959051102284581916094116339274725491676601979807011930046242220560976533500470016356567322557485652110314451787561830090681679010648958657158704754420619701739384700879174465346321203029693506766226490326170001222918709434874794673801968716220309341037663038494996363237461784356133083723440429122326186090307117789040929720393044878261748819987343415910213381010348733433503599564364807029471855956665162941354801837116334036181563989803430681027234627551420185964992178355924639210456306863310608370340589788070833362225521747239076859709183429446772655047060280151109213177247911797429775558054343695139035123650028050619097940234465395998639668198348036828952424314056972438423967917590443575198991811421901573209523425360519580809792668339446134309962390189391753597283559720474214414180283632050573612590157546645110996203426604153990025212211515639691689824001121114135927640278190194066107735092446270271749596051880324302208694907786959995912565446999930814902878609067635423129769225708810111005197391875029887940076561795049112802379116675734498353573937721853186124429001133340656248886173150244657256045141310347512657620029604633871930938247445653930204732375043716081093251875897262632896164349055038800884931647958941916597522153014286174602975801004594042244998692247453649516389849299513763609990184997935850575704209937249181309014523004390954863827941957954673805418330035817417380175467476482110552255996086630432977962869902711291776495742813743581642860270155738360233277710258069617566286014494937948043101757881067197090163846057701588024402697356358778279327812804064539702466813358386606089236887304805074525472853186371632702491450191663829859891161135959852757186964606283057731099956841529316018273562360677816788136670726627599905693760426328306220151526602440027539803545632969471710243552394118655148473428991102442476120291854592649143736835079656051688757446360484698455574794042810657041715166319119820571541208660408125150294108077825405565437780041438359858111327235568833955169234288692039436607835709284271259945159880396601882800287471001599046602563752067381827916212239730731948382065769893197822670728827695164703482819600721604502647725612997879437750366234412473922643414659119318198215883921098148270408585875626124287390564336830141519200749109226962422681619715267860091524890236115748303448550878454360594896329833857197318464661322418237217285158512528588262499412705839457515167809917199716535401628220887517701728405404016982374538274184405422664255351673293135802532564930274010367607283915491853026657568529343175766836028981173808439691019633278590862980187988164933885725483036609474781843351598990316956792928263955358629759237211641544705043759315050013791864431256786075300762549719993594702825461314113490601450691154255170852770734137032202825093817203279527685007372002366958451213684886457484006813545420321130978867244315534981423566087977722963373377409914036813028185044293812145825706698419289517497113449781963112098636183421226982483629639105543495626601927492547468061223247924290995975331102047376867336738066343483812293625664259260335769465432533356664703032740087677693829031042017074717344071710754280025693600695998164664758130582735651624434833952978824702918894176382121914291023272008770306880871139622511810571575983058262176877398662639296269636868938363008174669459321826625769493828615708752457506030650301555340915428602759237240657563761642047596858725739607968495585816831639225512703522263992887153810818820737351526028831767618289540931366950707063372272144737806168633815198797412923727309672858521149181547811950064412134716554831078436137248143709939375080657108221821163874937249890271967135636211891830449720248380663531566174846626467273265128061553524344390258723755193007922036280221465964739872328073419829769312154805150523151014994886446820966784896641813440420161200299058123590758981185121276760258324292666848965502326913571436272353962993839098096027445534292585585417521784787717447374583989602530200884390950136512480564419163020352438600682117061605824530026126014695047834716108943653274597836708790332787133120118640164333404370596533628587554544266018948129565342144541827556442882020254884370359497146009977529879989609927484039214781435687477185257556633257021285163433084508991780173435274299690344112460214367412460641185068487307297786958353878103311133040409015181693019295285709270174269387117618005175538400174113181197348019455111097176838251714809648521475923009565496083945967712484516808205242088281263619481409412225088860393307676699892540392415767333174891691546322159067698062503957930045544534083614696867365178798378281783068575184914507703916279279580323952825003455729869285841163433147516223299412024996792790325026414481280021448749463277624198101008051774295926363088596915556592276008176430566478878471960798602406077250685617230778890239748554736122966985475891589904860660081962657667463112209315294993351404984023920075029977454792226698250605363118087480529463087605132743833529371769752456491739325973643594187209691498841183815185390235874540922956714126523927623366318829072888241870478462062448355526617545665150431267674521000637853975918854515311145215793170870103613795083835169694954952290760199744427242756772145749230774662884537236274182784481028113496835730536398959961719099904294574466945497057660784216043145965550835618891843783377255930472372936669885272127590466885452983328470800180242962932909385413548269344717938076694659499096742045309247138373312147662539028939297262050195893141710122775265300415924512043170773136845950463210835516819339999982297269901158849774930211149551525835658304367367094127108778281888497946127768875112697662281552413197914452554496276111702414722291348648976459946463930593129460323028916429015388400558291002973493032236467131458851869717982420996005946248336886760511311810251056589122760202688637653751788447334528803559445147286142138992494280212860956614320413668750954801432232078599865119044662508292219747744838533872400744233368545117185424496698355421415135059943195874864265752713836597431951217580004227143209809460972313619851000710793300709803404060530709332226397617343322144107213491609116467094410409451090915755289490529872560152783462213639921844767315724813791769084460689678503211311757353876230662017362066397609210850947247654458255074853562249878710297186468730661154547870988918583628216589384496815783685986965923794952379758211926384682091026635134340223562109611656167417798295250453678319493776220798388578522450333263885273225236080626491059641917533149068882046369635485712162445586465482223733107077973522860248711629572508567214853105834830723812093519541123895568740819404180707777788428259501543405206355823797593308958177671878841247787326382221122063368002157505829451761398261022394262074296146106493973025340382580617647540633498273265908742868510029232790338424190225634906664368222353848475715910391488115575297225725362693913761467306323590766102200073645603723583328917998616545524596720047922178638582227448197714624707171928214994026952751148107668121840151330646962041619481088676333990731457743142853956372474960282329952859200969570439140726907431075361284025443853103860768939599347919949247470185520132583892255174077644172356470146859752553063814317642250309707963816122611845707387011252876884909323343401395296916129802441741501805854175516126083113203090557329550244170621381405071763408352117916595330380511716134720498015990081712759580926600134036076786233666911725960728830296532010266920132228321561966227349569572292306077358060293334743149281169455255904495337608858107318710731970847173480077939892340425215631996105033434351097741861278483310186961963623322567242214861616886045528315522329868003174696719291173194347102396974077988843561230947376394917301194647056293558468681239912226482306687490323880105678052943577129114650830410476545933645241237547740297964377321570537941356070452804806732811972050991842142571091932944862288457878641764419772907974447305366217885193458467062837701728667418082905476513481259637745196261524423855805575564561144153558667475204018387090988106439163390015672807527824239389710845519042995347010145154165313336281410184972752772934249479310945402199408258797476476005956149010670705083554500477122943416950737545416729793802197549495223419807156232651950428785560067724649239327243595319023047817752924261186576262482456228816518680392568687123016804156499802974652962515063343291062296104281743872327110396222606769649364491059479165781266698331541158800867924346888728713165579083976954234440848983185672654260660261089824952744830775277882821359421526061501310656524299108155627866662140577055246867872096799276748969140480797489383936505142997480460734055501757026937161476652501900842186529625521579933260239483337523724234392393712600297906182796724800398228957386984692976273817356809980457308623991501596108705747684915348122741242813354541510686098597278756652799771759666114375609572096920043173824370523619875388070658180946486258259873566684542624988400518112870532105967560844504502968497821127837508962747167021770583602961813515053207609595047539259866175861802569920203174983227528825827223722131423393008610526262040905656506343670362966970374223337069895290118776099736515022779805177281911537853128233626157217099745821329088626688126962047129946808272416768549337086069396604239976373508990634051936508828710422089773710303922281792261280145615809827713248671032302612904267459829415637392856126286735268832085953780263679721292451685952906742798981392924407702266598885366576833073623097202418363453997511519617303818937796547681488362527872358138635375250564003823688292610359146239451863516050704731157024299162571034242564677839888306126869062550471028615512459421924859398941262183913369148455909911447394937232710721275000069115521108357751689702747446272938336602606364851920800552357720635979005159898036670992635126572598363529062369599756429914493508801499519804354759217899520045314797184075811487829060757554771923225179493832920517164559210153683132900477712892778009381379384323563260578645748983840749028006910430468446432942581371682439824191544036321847291797042377424000886313351988932077332300565803787408834576011396183938156926387543552697562936275517000355027631781410380564478483196189039734602744879914483597428826591165109363124083894591734601652523482189188146035090966845409819482593176430823275724038033157846890144934470056579531634952048799040010288019470569356787300658038564706046589888617297932864000652146941039919360744249602223416003751241641984710192099749035458102492664826260941367890937166296718455477534359619070977460753371345623098970139234083811384513175514540748852398698651414155643196979612367101155596730752146534028422158919581474381066486921243641280719600046195243374163377050643050057645524333340991613590481026764504736268568048344821965393770450558898408955634279089233841826125197804077200030528277179437991004645947305953979091678550933544727820414226027844735283925728421303594274420870028619823925101753383080473792023951700517284095320738080768375645532452244335588977083167557581754453991767799140977302277589778530120961740414718874005623911033880846560155965003471799306969050151067931458735887188682922813768710147865578521326347154147248209714250732308386616568562760489707121336748070784199469116663041536584228503026492658806413112475492321786384956478992235852185526764503402265494033241377260303398821653498406045718365351519308669953187802459063588457991900744771070796585812259470168578088235504084642122771838617130773417688808501466887959335256811076048470514289700391199832740334815876535113268810674945987168593276448993189792304995049985470452121250376267291448652376583887437258448639728353908869469333874047331646310512224682583400571622960247643531428499000571898162053042239170641371917289633499749582718627824804011219980573586071118583874215692847365236033393226695545658330370470780509698209726483178400530271611872908298778600849652656941041515375752504579663982807442751890058473595716925520338026746015417063489257870512682507093475810736581254872726876144213864305037005848345223750946619732588820872341000819243250985228870859530623307259733922491240717865044114451643354251625465349945588358081748921590276594237349318264848632936037598879487128681816833216727382961696463773063518463001761670039288571703725618213296817323552435375272132947300899930868733474157458134585810259170650866499024376697686280517235659018372912384228363503330868465033132180804721344433999125650843859584582985727301494560797882653518231543975753618515730661254941562740350890940561439227257140086641878334882512888212702885655014421992884407156284683894257258961443281334225739666016860236959553731403728429914600008994085783398031291835415488923877661407195248556097736838639959344980139955955646430860284074355277403467203135208251344103103954847700329745101255253032373201416222083746025224265707912559321856353085890952850747454284867867866955602284163916958569837434837757329296340977386814182820052761854440526808559144391071568831537902047151607191276509452707681360105632291201784039683701697556998806520748083804135864787493144249651672157197363739483155869608138354620313463304920857019375428974330354279623183761270421479301196945640861736694453450754766328918877602983616011670075082920216961547508708000025378944108451040709035113444548964086102541131024860203005280285748429707302592782828818078582925599438506669557978220318340301731056555264796366490943277547115911063129497798662171866745513057694863928287966946210535683474439763493522843184430062116077632654070763485759355794868334763057613314458527508048889130590366548134646305518638253668074733505766363756090536562238384909794296991084972575750777155110030940283138411473626974902974837233775660783850172120923169271551563211263274617767492551457226264838396579630153347090763953635467431056556234856063657985906050170185971915599527010582171963986195763538882913497916882269176766202866987126674785320129882551447377775677337901099324548542877152491829824977995017602649360410379441125433965510448915747895582321437719449558902725013933321647408664635986862326004249710511415868650394642712337238168004131190270114382546232802683835380301721160726532141014250812656882362953151001225101391693861242663246096021426148649723210050324242123693043455653269932707306622973283339435525575580899628781281986016008355161702639797983177967207418948437846547454406065120310870450747109647557917484021384525510416914536409239119201811952601958615884377037996880994826835633555537529175235135307211380361960035493634602401374115986024626891279517366483106363304165132146486287191706583148442575141104849936822075369654348436278134111219806279872001894224248080783303642544741236078466233426691608187531302853037097268813814002689160694145258260163665989981006267076804059369775294721734973925240745147068723208396853203052999906419707791643096318138961604797174935582179172101154095409074835894356066219140347790890275319566745995482538207935780643966589282639283969419516690291827400357479463398094875342407668730237466940035482549070695689991157795395622057001410006777818062737184748747392637316805227534186191778215098652995649937212262763247992181621473692776721173812273100452720091829387796442584691292757989234040618328921039289354773020926081310766109680668854619010538752603657093709442629251768771867682275535403492237866939818311227625111486912916312034736852075433094560676500492616418128097419332885256267346208686650823656656478143966787679324145530891937282608458195534280185685180130281254162816898210965990661233263865404300622716313585085192964263558853860863433798430778242450809196991343165246489244520252341993874527111840526070013635807417188580594211274416347548195865245169148731753467174897354468698007685843112085148222924351647929618939911812972692230038884579330613789225455669654708704544050315073533111595688219944956530832262020014422622040642516548993354130249151830101361296953581595822794761568132082738793975011390873803779503589661085024210924819495933379997119803894584571376484478882441199114866747619541593489607315784891030896184454931839817021413902406549503818850391134345067957222802161100675253620128158868407793049666160439874336941573775486173807260385459423478293676086395588969575577149332599318714191560944186656506707468190688726562734818582310511232711206036594862285937681622798009278939735772484533074644261729138531401848825413171504944821987809165048809362383531646814299206756650078635631835422016032455077096424751017910241620687490737440253657164289449161086807976862195295663710824107563905698690240245012082735176865019331151225184403896067881499167292235927342744414268839126193654167590540336995039490788837415267329012229959887762762438853232378884877277021336889616742465652433053874523245761006521423915280388806239334142219084981157958960937289365920912418912455495634019311315156316622722230657248065071837653907060877926210328568797702684932033317211386715127392489127948803601258742192582808111682377536792732186660824385562299704250037173225954674983811663766782152529120524294753716782005611434630173290304168522249113065995509667052072412640967854760710444344755140945444226185702124184860197739106309348197500924491340979912480181564839315234642296984884110819168585843101087860109452684714148044268860061405955610034906545084348731771077181754231292593377714644346815804629110451805578251189312047906062165832095115067210442142174954579885711561279289440063517206121495940008067455225244840735884658019841559239853299344517354902088764285660855788326537960489012647410475624959252794937237126199270692571509684916676507812181563252927952188555732831951848818569238768125333825832815428948202250895476765329080974814670618721821063809626603995407492132141940493491314047871387182507506490152994225912524917675730686623242614829940575867383761764802107532087552176676387737019885791942465527032138905037040808801625966487422640207914124994385840747738267934801305945172978072682435955457978944607467207700900319560897995198081897265352660382243180100473635153138331471719038885628092521604134350753332387998274022553700457525759743972505440522399715360672878421329241844878436309452891701894447063357507279059849020636089083557749935592587731681143904797903539089620659230208399146738822837253810412936936922907041769548195305021428733319946525375994141880065595435942473905299485563660855606223669473874307153034346211361318661076441932894367467186434554214682836477895558465279349549720576585412087675489244901245785244601609256668203675414877247917034757105972199415625748837469760643915443237175942630446868563953389196979225213276570093835861486533459329105150444842208421094324266452586794737279726272333109399249086527142707305645718048351296884562506646188837218017903565588315927202402424543201295665848981810546299658245382271015836452408193269384127898652309483838430138816522753079828362609794867031767016727532789325573454067253833046317647214472730900809179844897124900469569894042036048112175130627799053279780033294157959529437751022368858848444975954853454645381733876891806706182735584827072241836427372060716677338369355141288530750843061296114154268710399436620923078533373214394371185291812158981098179341854623138309725243132707760920324333801967233377221248937519317686016585605010486709212895560381057814964445164812052490136229392167875185335372797041888069234567263556989113110830476900478102532286400847438745704069003828410962882204976587825794916370175447192289171284947022750517318522405178285190539424424713763353434901159737687715549123181302070286318856559341091798098373689073871095385176750727628850261549189445507762583404426841206952309080829365010459994744064395541998137742910850312653862120304026862520904755269349851072387668136365007772709760475403640066051875382613538269140187293093853653968681845824532502766691671578579562373785851595702101856756786614095386506625453013886068374826491460903775542839561418580706025735423293600309361307520480886254688004857735424833161158045475414298573110305274239863558498969499435223412257865563210827326704220536569990923201954084426343254691761944277854731067719874838597726310873925064814060851134805683267001304930209220526670588945832653106903288822104537894480870147263226709428677917080451648753400088999124609677474122200063923959978966278484126967635987977862284598728217875235076494114992054750901432956614158176956696122641165829990767905989723947515578394769917328971866762699815440069280146582288750259283954085448880204857510940172937516424868548247496130069581601720430763412608551136304285668769479596727677384432052824687818676078761033782989087828236516471868355252542871519583550094808093046690617290161082480918766931572059060799549344399434428883360321431712434051221558267643551257478579316911129888258852155912967905611091179912765854531382038021941081390624939744302236645865587085966873342221443865566719039627541789961097802157723191548180702654067948704432079355358000698465408022504572739248734653816198292853124091075590503267832944090027775993363964674047628755354522748993532815996788332399287415124545184080666094357464121046650032895160275245418797785683255859747898610226631556613921966405314471718639693493775676623739083811987204744758174121006753001093657388635381473391030923446662250886840210281700455161731825989397814624193043010250725135341144753293183612814970752977976152058140564243449636273943452407793462603225217757021569958078870587623594574719419030568305653067531115640073293334365252038445736953264531489524779429511844308712029608467102502022131989033505095851189406009529559763229950590158454843899093710070985849409221911158936388518395058938070462506450621438002782097701171790748032229133996789634509972750305249934486357319750729724152465235208883437174041631654985688215114311536151316726199653158822797963837718061016614102862764856199941732603104338507350292366905166160606902086642189735885364461030580163105258987587599753222821144062553576217542511942232794293205104329425937656775507950315140341070352481285440663047210087708800657813392991886642774223798496753121325520904857605342335866258104790897470910235110925023913852645569717328081577158741138007959959004823476069031078975873157023438182290192423768697128707852010355319634629414249321108657150894250761416601098510708845749988476857794265992829657525081182706088779705347266249486039792856657867536200533072276960950764986242656121623499819284296229678950992822609516806292874288654972724427454607576862606610636723082573317778519670638584966545270590942685324242678108458547515923495811825340355261633200395079401586724609255700065525492863115021362220391727336273849321911319953631493951700298803479200410404120004840226304702581186979298866723527386253113800376130038074824665706777803908107314044276382028566901148121896322727885929908905029344847563383567053202782264146957005681328724496043833910240808438694986617345696923199352370668668339270436265309529317101073168826417922749780408770364822493764721421310374088771503838264640442472159459617610317399557780344325128215854566392562544177853717555334721545995905052947767110785197960101291682728712770592336370007473624606528007494474870634379444278687106855464567435859887705766102170224729554299937149329847662081735785892073665181001706989553641033077580163673896535076013834989493271882689616528754540218991311477392033690557749916899058058873488970532665478717531682744595481006973142711671100526007746186089981585235911628701610084494747848097698634579856232931522802681591482594185677575563638733979124032786731109613765609383780222808571420296998229116215774882479339275474625899919260645776141409348303780934759140101230915229083800987667865773652039930166941418102392429757189152925431338196149043351294389912634938158580936531533170134384126419018151515414567293342093828078100468302745062802049804651785062999327861671120916957691688370724017138250661311055716813894071675185165938061423099481669564042841523463370934618408772770839488663952054117775830948792746805584805353078564917413888593067059743092407932391188539594354721238535992238906702472040158505999542796973861534990783977295034156934161994647881018225159071140513685371062087775508140709988266779458282647488421131155697175497444715698935448415839224127466986042920104977952195130814507210008534244505338584154834183400794821061709999560629264118947011202418963376627855049438125721014640349442874405055087147819641698045596576233151933281735503130053863343628093673037476579954492915563630711369126921873562613461533147287668169050500000561625709750130000401910907951662120766988094555676341848171909711550297506494547341168989828984058337368254331877801239452881348708507782173004858317231921257064838365721654645874766728476800465483738148207594441152292003190930826165874983434446148448286447983563020392000329480690580476283733464497525514703006715153773457965322835384874989836447955289187853370903815815032341087291465160362653209213024468235596749939078633506860346801036379458179034403035993323128992077609425831487624325164694780780758044560439949118870203880201393785807186313575044559178178780475357105486124527604823051044123715748894293145238374507604556307461853243150066650151756619460851723071231866428200672427948534281444483048345878071462713307688763066447703714993457480927687942764828331538591078868963221799022572575064976150255908868370068318917910023917043859087004617452765918741491113765497060541624737143699847265075881373344100066719088738893723080444902600591541640616851688656498429671602001968532486037171817415246128362907286884759394815761248632438407857629448460926306292787464153039059088926249060002905811880020522739841758523278571913976460864815196278085952983760357972194173056521472090531838815756482900922342372613033522242111770879965827984335826504975794685097857301878494158565292412523423461058945327347683696243636415328186639828722640091232789087658813539337700335773503449827497982080511680309337732801316891474380129422805455029376140552476616557070398672144493589052982349394355114098436481234240224571902640023673032435390245258752984194860553372047409747760895042339699307804506672521963352087949898603864095148545631140113086799145257017769785921446641519758145671565815172484337243262396010710579239826328784478933620804905748616987538881785685383269799231653679733486931224634644456769135432091913007086410393033953464645386033558500065596366996092699086736295835703682652894773917227573768758153786929170824064459054681887243282894223788509446633397954077600966079016041482284026888904755281981849825763355129308317790766732953387776735639609219499459439404643519640277743152859402790469205090559080872580766270251870523223113211416273355745619906632946049231001620268599197733476451128899719381335250408563670168176385007275374555464852467682064309184692517998048928814546769925408754017071059676091999430211927059928513185726944883381958256046467573714993452624837295279824951192677147836033194540302450926495371342409160394018110351306727052340208754874524279992460832127874161107440021411309668624738207540443891751975099300729479753294984395763857615920977074286042141967553447497695469661002198498303819788106619308136110401086134328240395763447449405324623584215209151528921087742348604335801313265445120219717953585101336674059278366717384566678374350051572447746062284018216731436849136897470810224733144899584436250096795009691904980412750435549268725314814181313330123595082591386235399122516660819912704890046086496957586548699749658524217312380893433544105652383297045273050279385794534999603061065126458037512034061235702631930662745875994207836106509295521643838096274755033599964774045749917925838818357879943306543015833135467163068810541717834416175690372048767131783372926638106642469291473742179540376583776637673236046418741530979251732376547164296553565358237620821415511099946205882316871797077112375303990481607325617460811404807601268498641771578652880673501044025398503681061934434821164969548096973365763334581541354832700886603828264146269241242966570238500855064316950652074107001142637689285655195158711422714847757550623504962968727289409160919505629116221908558922103690658295112825355800072800222093334599589126987673000899099872037111172855269584911926082897387497300680190906385204656105527399726749194268141936700520129181803310844552820451340965320751194737534491776275643366123089514726720458156009601558160659527213491923035211864190037408660099958410893202431549623700760179502286212468018131656902776725132148071073376533539103656256565917021460338158974998006041591695753673067133027510101036475488137627382404159032495604733565692193342959886823198351155358169921222367116381849153501865632215262147425868200068281357894177296860357880614223122268546861221977486666840003101516001305604348890234001210173899218478891533789746445576410911706865318930971877766031101267592862854880898429469717322041151432873414033306092994762363909114938585625723621111554462899726606691225310883594471906909241856966507808209088311036140159438683746454165360362555985085917585316746275919886703229300240148707450401312456535447075609253450542327219060660613085790442325104847035915365374920790918603597753740962791465032209896288086018721966532862486525577711684270766166715982902623943721699513431997245040050963038711290280473152800619230916861150362429309745228368593764408208182522917536910554928679253157840638941256403512467525324122055756770724343605772758371705814419635883875631096650579304839996033265963584549298438057462599979450246961154394631374346244042247644657011372929200188917759758656422781969308577946712349708079317503495640624292970674574790839429455625363642271794475330099667381230506198353354474788617548338416121277704936501179438605534570134831440806122512478046214161672145452200670854421396419324888691497262494404729367229368362904283666952823512234215359112217347704550374387720267971541510728686333838276003745086117447687351399978827832898243923677378413734939479259522554771215496803368362950278014693615754253653451336951008897158880221669413658350887233131557068311194172205028091245173970833770637594196222090375621368176586706271983887665197933058885396677626589155532242219720258734573369972239706114008329630643344658302290930658284430681488880563147775109553261291361832158020484151416652626660832133114108174616694215316459152794770509086662277744413059293079588393954997866499885133610141416178694945375950794885051252527765400324219820438045376910980220331590167382859811792112973596440330387737617708339810923484879857874404771582559847011669053196715234863498420985025709490153617074172739865551862214013148665634937389591423437091166482308460133887927994854888584689413418855762197461304962955495651629595034659581942142324239815541149011646200199145728436057826731985741507582717987705154939663492694822767079395190152239101297994846099808528418197145885139365779071401592372373689409574738924411494372518650328403651003478973688556019929134974076076411632029829580413103263299916290940364875422061848512022789727872363802834437859278661000409768781985810320937178157219810468036587618362366929367078983497071757080696030229861348829508960587466117891735478636762436611889623621946301781479970996394033595531984152543387705436927975853551758236847711023994105961267040851270593490660961842967960527965232934310351195819406258011692845660853275351097432107540405587456092586320804835120528513168425489900997333167156669956761981223066022361495230402511080250181044010423974718719535017226144825294861576883773400898445641297919603972534114105917463865462237269820495374960000668281021595452211296260604319726569117966920762612888200102068222041022950364618797582348376111801750999730856883363200315704947445609287297516732956885176360448255241521494085286592446702607957550422555362314734120420720791231747518384564829199037931971068570295034935960176249767461130727581354471017274107599162742430651648172044938576872412191553745633315746741857187575157729774914478596554786261684638711327561653288776890680547856554109912715535957417816638706759947989077637912925031540976682197512795980751930405468188627744042547012697068348615212411387783151886555013243010556751700586545300190997185106838468981085761191578270655840179510028944044001970914657845482533155217758953452385394365387046793912245117927263907936078216613681308367052727780648877617481268083219391625825934805279997914364880405264444813075952196051677994342398809269815470208294481751442948138136884097094118613233038259316678263259056785442672985298767311056590105437266414352157193552480176235061498950574649822586523177563919679252204862841046704512346505411018539132065123464378589371454312537553121435910194366988210151698894600751193025330925983860013659669715249791056534611856741091413041470804471258899485859165304245863362388142351831505955855018233406512097741126941071998515435469821525838771305853057624890459915031433990228930409053637680906318717753365221083474077420201306422659352343641611995851207516577421096141518531487086235621950948001504281170147131954281604693243811783514507378173810756387132220127423429310661771744061076296451102423416616513059341799384481718187205947695609244088002792133566558497637248621349076140766033120307761639869375633936991042507975138907364937734697198281301617235478374933536311211513311579691993362327341040359407302344096243779533435255198032307097872013167682416600994484881306231994206938978817693592070593388554621901792489830781559058430477095214345828390339593956059366389756512911378781768424544670204933545358662948177603064223925844381218991598714149402453073884139892275799751702811422834524134219349987056523220811692176422063174137326951210753857518604588104534720936602821128274163823284438272670873529509275640539331908083596518086622421095334509545993038514355666261959916722041333885553511948317114533306510391039470114996290661315556818534894605704944231367904982561055750604470890405807388904700098661373294160848492726305549155083729941763077814018201164210653854362037238752732051569622552256834729612310002389294045231787792646303724048598434559259166470943867681805415930312748612600061048642306756457071359532842892323561121441820048046773150524525916044164476356881711736680302553556175247551594988620234148755493087124558723753564024400256134424083147937157945775252425906066248859736904618917676698898279833208979823978294069134078038862406878560742108031199343703090000161869453162663571327883721930298010494740929899441562886184729382844618196564084038642311683975360471470020561708749975532264839755392665820633034718183489101253311377667918133981412854351935546180189178669103854283840437964705416915493715400405543429502830709099193498770400545042418290214495586255252208666736642591772747674516121411401386170226987441631377247979346291526437599156029049172002573921894986477684243265093383963966705658730064095727792721135447394560636374402631487174547635680918687499505545695175324134399107704881140047511732950013151667051427607336879157184722265636968400071091860406123644394426356587488792240987422819863391929782421003882569073833232461006809695729699733187630631906794948698139849338733640538080915811385337367348356211649878689504782349598081946925193744003526610288181961557069171008509492736360690124257949379762453269517786313312379103179911678269816674303851382657797902861569595822020951041828320221905525104636894329727341374702419601063104123684824891260739031182943115217755020725156879117901561147064422815045159006617477245642960650147262813022352204583252514913187097682487678689159849651810164292051527856690252449669291447791302918094382804964154217410474283897495167310513040908042840528914450882101812684276784690224238415527919671074151034930941728082809348748006171628027875740722834986586856521273615884690724964889276257348866725085205396677235516975556541190697852054131278548330849280692551779571799305557675813797915051731235429579932368051297481565649031914805474692561899656455864283562324084829287419323625203488896531352255517845614418428870069241121596144506433978422253610074437287410829586045001157449677438515189629893342438278125315578972777035158445243691945186121428949097218462772806315542132165210023955908782431602087505863962481658767370191534214609773541013950809941261990322973084199275206048817228687326225302187735805300872979597138303121842356806321711741201648832003818879101110083530261959702344836472644930796374200906481799897054849752985451447577268847305915615104619421662285729612682129194424927118308607405186204316225203063044158208728958184820238154277816867224219596120950349360084764804936370621680976158960504751415466428770630969433638073352938135013581980071942480008472196934779229595733602097741356435146401160747167687508733776864853338101273665522637175609458356142538108940840911776386779018551413822873000377467012343366336406827076877720838381691861660552733124837094269147682747094265538870133876542211056628676364464329690389699659399996216727034925242992656834662037311538847061216452648479860013427534508220418376892204794385918464846069035418644254237755047120953688498210988886821494713475058478839167302381260871816419429860111124766569215458725702467656356185969967307715046682440953261334279711631994766764692252754125294464432977146255505008808072285700790457126987573499545683741734001426107101593421122096984835098205218653985349508174687565483520522638347628849092282190513945080162975432037030737891927899167515854583526498751980966665928307701114102538062074091318235283571682924481226387629111485934895591142673960686430409561150734914104917270671159907059324023742472275249684533687892292526099861794020134283045710422725665086840075234137646421616310081935197828055823693538930254340964428251254580479392013452501185836758013507676496148238014177557018576197619509140825065569622510933175821211454463674174171987785033028295036359734755421156469658394709849540891699819217881450207404759285538090516898090943844986912197988248408714392313527036239525642933505349463557260702891752889795237743196594795135559134340209356240806248136822437398020249230331503048338390959956812064162893895649066593211975513260812869089535401020953153276559032898534130706119424370725694958134242522507086565074267907936727787110469825410824976639612959028763908528965444533439590948734163787744475379374518088445586236215930997626223412158515750918382309501811323621782465164457466488912567163628582769157307271178627491522289173958695684205008679062876788693618225199839344980469404276039477067495118238676633025379805396282685171499096782995376601659657268202983831187284452792719168773454591733731576308415099528081274540351399697781370495399082819494232906447931565085548018887808613749191376708876366881870705553111117368860412951835965329952617108226261995290228276187236623426656084870063070478096666259572104231887902555923253264398059736147629382129424180085471108687751893993376681405389364406080794346149066756449666623717972325853492259651567721871909060125041030129276097306318343281783805037462718185322158293526957249237405037049186736840901661281846957699041383124656378238666603137658089985415370138918566964430097998010456318926591332073348500474163425580300527687971910289309198540919822077871893053609765201830977885215856115203152347994653691888685971046283490238561332560233684031414552728332210766298061946670155170513738698156350295753919559878284764141748925715614664261086260373778157099175275217686003438139144173942026958157638708281229791644422415115577456428768425601894188848968262691861040894345588396526800723334568897132438937687103915682571267071284013834088202934098575451500138221458088265657510454760139379140410506330635058596789628194673950174264508598539887889220197856149206720696376714916286371511384714613446586306032754479443156151555760335276827238780105732221690556174141399883460825767966585350944445051506708228325472346037788069612183927159093693124622667878648709397738557972999462715328102754842125730245711496302186059993213972569465440354911573643021852596774792481536690774710943447610608830935557077560307864890455466044869018143181521981006601591579744006115023618324229732799520269177107986968022045494988171376919307058149838926794087075597578366802925241285484666693109177893212720147541655765911925956766141191097527359814284887951130093486542214638469703965368977099015027148120210219139154512306255583208051906061161246266529147868442831111164375505953685981000407571547266254259663325084925274242701141967216464551275443017471313875874630317088911488901674683475590346181432850631549646657969443233867731793060294876557642929734554517306365834789445946174023802053628455277416073505225743528553722378140068546004484141291957860044356103776575984360799009895208184593872021417136717624037393080350431289484990368724357542161551950609324345915051351117135798868339430497979031081525268697946912315070759147980093912300205128669502168654944875189491142736539463440790236720732597885541229372447146317373995937598344770249815308483574470170980783160346473300434238486883319981713582039549117043452791245267341075814707879427348210781840298892034321808143683050344490950225709603661422159645437781731950861065889307751823323648049770765846444888594961864830757977075904120120870692311111791996868926203219579020067078226650629167953523159598907833682055670721191047699907626348077998268505145358742870821339370035312454579624633617372938741472579993686218504303774831592951061507010012676733188766532205629892009929285707749684564608712943303273055045742110414390474754697846540873687726896811131086618135929098088767694893840132515040787000419345146943237895723597425528643005638490408232494821118456048446627480018773353835609990497009384966927063282453844187805647331723771837261989724118826489151834301073294182827146796757960148439830370669066707818283327968129446334599208677913572752144592725566541186697200783166812828264341289637824498998528188087337686810908888798323450394211503573603313560945848121091911772455399315731390806889730381808821984898314289303061679457803448966467015222126690372795230161993260517036926608802366759039897927135724767956040841625456230370262518648008454835008601155711303866615779308221209304129887204000838740012393505383686682504105198981028319462539289448948380858478059075482005424507560192295444529930883403607537703311007867908509085761929905281864436570166124670131613424362354834715918950703083341693391536593857966511363587288431041321927482568241432560091467841087947508547441491154443199519538297069513097202541525602007437136728882508505605861247362480771366291999102210767308666412117615491329870052239625901053022559777466253280952468417318094155334786158088067134016492050427613205898505883993461106266005845214058690536370893475113292217910251544600944879802583054391954276711307856649616648239812677503843316451189484205714788751853724006601300159740545775749309186753173024326097461661538390949324483788852658192665616586286221558503405139257236626305924315633049744733264323180962890928500456872095899748901040290766338542036883958650258457110254601790840717041790773532420462627576803122271547839994448174827874156227490781251380173848039745551140002889840992990839378230804257907219227447056742944185193873732311984750219270030487149994052643978194850141646111388645352088017205136802575775836483134528043218490554031383341407116671727043688001413588660258363521882682888468912912604860959881916444275525766357120634647944939583172045735285185150332352865080845570979145759744683117873510909630278892236941199839925361066402449951056815357677215702477499984385803024751316462780922773874983517468915326871371977467013951855913457459125391828104608331806869376567196767567253429204820187967080543480667458003545239952088765170943623067173530998597815203609726667945593434777325958145877273519349217375110877406652146444321105553420269667546697391748736515547457189735742006311215934811492429987682038636994614315129757290914566987275201585469016203653132298841113077117389190645970179105119928120662782470640912787682454919655175500182715084207667230704446083033130141795947669409098695566716860860147348390321503033235297037590630012502809602849211842310389582943280282940018456094978174077431888578246033599647580715537101351056918364346719124388158042416616330164623111071108027327941464449995101513236558292041581335929447791458836222334983067031050445097518625940377827427860455072065518860377447478365615284871132765707007205190104142783097884874134017010523300110000391005761234618894435851023052668407552241514020721337830725544090365562751047555881481426125480519544687601074057504328385165067393837183234002538213901538483584759689914373344484866812385018501139261608756047083917122576942007886922747804983337431399045256475078481366931759774211577021312690976863291363054503142997587917450427861600814260294495239559683020928643449634403614703457827590639364874300062543028216339948480867725647488736575263856361213345855803370176024557190695882014431854670690919928281389494249174863526415666314473943747290835739647662475056259554643475891349640520318931494729620301393471233050112727160437721913205343409970648786145215086804818088267707607007183275094955472000635065177956728275155227245157229633122443014625523176501343211416940226415429744581015047984466716340347168820392770603519661776860284428890604624273793108333344159820801256225507140348502388421191930103392403857419080609722180847435105970406778940040022924471640399641648823527523000502840537394238684026024541709325485231528256160916212889431340999051366088407955615688481315196361778224400751880992346335231026066447324014972849020046741459668708477784192276506028819808644119071363717486816165507030671482258996421710496115423299297304863021821539445227427249135621199398912523684425256673101346841585216723733974390308975520371823957690681674725365504966506233081655253554598833942628198578730664146771810647397312464261472146998982504256277345199614539356105089527418061254687655004655778330187566852036030658155146093775005801141186393804937211963879921085709361276976487396050179864538798541735832468844097408264972204182138217553461111671770267562380563943749766625275873475383413831245067205079790515354019286331235729028507248943617507983118238722538512383385414478142088098356930101756386587823734873019301313102210481362755470600056387713493986055511011141614612930431019831625892757137118858375896181367325348001787693356249412021107318394094352935376483052223084794712797494360905057816440956299048509243577216760186099884611869318209572772563628731265579727966722933213422496576384950115789494119473707195416082794202978292267980610690835391342124929242882460218872289091053595355439337660362688827094486359754409237244864604476854221244908737395246991734493414907103384942919986032246903192241138995587367425646369670955326130942528027537548300456629089915312250214361938128007899104352608063179284124299775736017394473055522255581608860680250796215909220653370744906036465515524710862537146350199778472772102720050255862913731147449877144000463546270887717378468222348412850513088829884438570840535588318035366598987676634736547545490311798407937013717839371465420974179904620996977861190768332404186860041891700512837414690565185095293133819203008651760278648259788160603415410625199170051472299845005020932112713787331647061188683930230772647190411837146799261927689141730108805083551995023351362719041840650428717380353293439793278482165262256124674118184263769380826413081489210112755267851644641537548632242323698707888442561287965889451830580001387367973811321775024516107546650161882064453806690408929662629638186589891995293834500636450113470086137894290679138399401147647590158734775375207679445396874603924830482055778895188458208445067811755282128067245661737454082872912604223861146562824652102981262962536297711722616653883285603044160843158195483197784296950731800865998431335585208560980353415707850343441836877065978973361894266347190006328831543603013969250262621737407992971384481272119973563400470723246702579474522623968618193835531802182009747121024266694907403869956881566253939630972460320271702692183236969214953376286843762551707496587806349602497418509890007786756250107289787646652322893555029582216184685683389301672231889337180350795091876279506429201028066840668706795293230724321988799509791092378264117205458029070274566130523715172159076000924149254309695434912030529489530179050542027264544436706828763395532947341811370836754273388572267708668542771666210277124324669783096267992244516468436904317201885149214477900006546086868499051484930876179475089021812433196500517166611220126981038836861102781784953408498102240937779792126956619226977682277878538615057833471063242018310369991760977782007752695389865670466564054559366364549590487697386242944614658365114687250405064624063852386438662045455379110158906454037623487316325856695960533961454015583013447258516319324184697440918903396762119333351250999595470697035890601895359597179035140686392039094682258682285906748115223631095986940775505973557102097404355931915370506993395798773670741164777630469035277529937506962840176267685229758226477476211802763671175416517085400310388766665614528241635388861372236467691163526047741615830186968439503028230947760937064768949157878661591379583015865198829164323156385242772274711660916615579436118992172813303715869012048985768898055912656252598570667798066532544314580881734589714669715456901759164196926165750602571264883873831718860488369278928864568602762556939883228659046464684018605000602281306931339254952159043478469744726999098101480139758154742462809618765651942406021553368296390973472658921805827223566589704364944609948149477215936571339258736649739687608876007446844668499752777421370636934750122500740789376945310312542386095708754180263705781591263789429292967167374007913840293020448137529024803577594056677757261992984294264971137927688542792842528685856456783914160365493555626781126638576017621021758266475870303975961591498442208536828605512675724580599558802077901414915336509850203703090285613567078507700518109399489611454636496337701425531266760982098160644111706049391700282986078073266289024956398098366055515327357884378289226994415316761529210401159663679083700168953927865372867225029794595972290946894675363408050200911316727732027205811161248374572817539094222277279719915892338530867588937048231455696653662205658889622434561388543570921973051104671199325357222176386273777736578810035679835330935887262777708805573743932504905448996998268318854420691216897157976904375248054809540631111684193309484269843097752062531470677835535266278963026804545554109725937718678980502420329414858971331849164103036474265706197121928246542069749187618438400190112218984070335357518412612180180974338796851150961055819918323740280673174404829568709938606826437399140394582921387884149822150492519031996753428764170769570726620627281613465550355795580274578359903693980149288346852154108862107939637179160668817556153361171272201955238919906790921642992574461237851194244357771287050618008715424936126468928215354642662628342992372972631101852112311618345395706687552948801118003204136771059821430039447806489121786596937408526772118345732226713636482483141533816006905111346357408321907239756390799372196420927594483900179446015976472087421264314731789354298568877186520567646102722565175284777786030646032972501245634452836026223673876449537972553390038143464018229641473913714516912717502703565110079495120829630639814519037153597630792078620709329631121960590610759617360353338370544393998661877788923382549391066964378434301535770361401287481759898411743389041377726780751634719167199739425235086598757283038720355580350422110891978050870075236142944539478545370575211519656269466230325245144178433172245589812547723042754453843128238947895204577435990601146999383756527459895175699566721126989772002866516581309227789114469846002655937431474987129523741857376695487653410217817197712967414136787439319095127770882052878936760875289847894736838069194043459160576246467536312937295465995594522825165775031048785196369884800788873204406181876296359037995228572312888172316352463069882148828591401444752753715363016454642275287010545035367353657010396818547788021798661276189384884335370154419634683483733505941113103726155831161412218352597306869477475311190939255606373909957683783061501573111454891649014644345212916222914654058768759666903395662250881659603782878323078511827534464882679030926687257912930499244944373549879794578885932163380638637967164123441060783153781984855866292162000319826048431115170746168492906154040216367668532513226658222838940658154982748294000310227082948639927406280555932011431117166840810056209161131561973008611934217813429898052565643952031718429744422604052795814769877998490940975709344372367343390936951197845130341222129267508154361655731018004002931294587586343973825278606709384724217034015853962154588544125720152426015377960688860794282547661352749723921276861954752283304858919209689856221344487544119718907430861753738592650365390427646549168728186155051447943441865552605549480112215116746411008451269265826346713559647609620917679714233489167896647032512432951597547380534765924533887220052872291232492444587332313798551769330989788556154702289891810958162978721591729429157168622464264595738541987244349385512082994948842492204675037136875449073455364679683071798503849017237468470670795024708354887117292746167107909840079641477909668052205783976767054382885245400710540193173757842804555368915455276229311426879557444564590239720446545528129011952402412431257778593476775726159350523857161735548428856318428651502425691808474081341357208636019682794374255326529453444235204680319178237424883100356522725517253971942498651816562389127162547061683841737139680657048340344487219246422508601648301028665568768961625595612199316859524165390001611183894122048653123950839190290751891069850896165471346374011052403790914394398824513848988719611181591265766163382498448720895147876056570168377146933452942316698016098650428406213380820503286685348436334964894255077404735190222460562087576399497479182093108795685987139855337354170393861376687074937717266409409855969999747771668834669673895624662536962671353207982491470848591723904898612271423767722784102003214638693949844495213987860969593129545627932345581778669985786072668459569666752960911219755307155489980702103503186576778672899699499854002295698294636794143189858741325333115272001378095828563706478686436973448812264057523656718624901070404612352846940884744863534500044173821647989197135285166026032892689947077734270173273689729657593120467238208273800964788739818138543923286417055070721712766652734671495056730018241831516657816116981329109981688948382141040971141922487855796721723775451112045183079561303854144638450219443379984416481386996867078207403615374096716681525825447880126061066192400978724934753279523548828143071499670997463409869557187712532812215944505416134029902882357553727803755937510160606738153327621348202144375087412095116360533087466705058077700969438962066846817323760555848649441321755785903410471062057519818962243316854415662320923823125443012772798900064568642009461438943386680186325107442645996492517273897939208316205850365974221743727754882472596326144260265576713725452771732757283837212596714204508037329717823265359403851482119142789477390976372242035981295870889943832548029057728383049390097635651769972179375616344622972392543988859496158391528771631088187754636083681911860623796814915556781685796943395911558223760798583774372517761708442148715710063570439427017444947489937256093224626104411198046336939666179659556127795878496280617431586638481270727878879452457589535057236077235359630094669835319204450591937501010312284723704673752392338154020270546500024928343512218692640578374856116631306772761940934214202579949711719506976370336787696427444591106993260436587855839073784010007302298499664952572377239402752175257908772781424957063434900681390850391914196203636359121569356500204336731469384842068353579051208786634174164339744086906883476008279941132268599161205524443910352384393660604977265587215327225549985928408670070317512109960736208751290392624172765559972204816864874088739606312343405749913583866392894508984812468932610254523687583366474206979528639367374679718945003844205807604218627068445225052687582498073445063635354523865021985596906791325897777177096058678993022290149532282493550723463878090280646003307547355873775306545621553488916500616639777791296907112238134221185739246549455124624498488265318881132228449660412493447912051173645865163477063754003702575725617496961475693840505047865203935217090552604651731328198707091020766831003719424243591334386961096489857692063372539480442934426097222157187199218381098979277603675385371517248487529271990233390097628607138811896029501094700489105225904738550832936175932511095778570933284074227611720444139083117687452301428169394412564110760866580162487905745388733653363183004596478822256440310719787710588246490081582566550308453062453306996362013884902767174187398372248089222220742486741128072187367692215062419753954471175025602530155948236324147322379779905902893961018899375625903868619580746680861902894804288086229099116614076509000911998141357494277552239178746129371593946828042687181499041633044418182047190677361889000164257312745735272318823757157160821181979671341304214286588560969678887099254493876170176569615538620459374043041542543143100026315825372486726219541483126370362007641740124804887885544230316276711562452040353492796259162170630520784059973419997448198202012275276655427564813139787122764316840375132586441058386503593146440639991758264540189615632709448201504268361279723300546615864349447211201528152936812563218828492393475240792845189793406212210265542014360131479539786987729382051591717541386610061608783718921221340633572666295650971331120037292603579772089056193986999940707217758718395365157282609472026794524963826152631024186742341678086523134207280989507994406220334619235753178143966428808275390055313812547208621814482733658432523217631595820520659839039178718355077688961849148679925290282230723835711157033792963089982517607518180256420708449575645045309959122047976418062611454470173130830418148142054561285789585399113220016797167468010388327355787587557975144294258196921780868939359212261761832821657212909446884975775301546266111840062553997709561009712446067865720080258275697674814417045092559904706095146919821847962369926443761850073717578004827423715782136902758088356828156633013986689621747966383028122262295376360622194444775608586127173884571309857823725612161907063618421729928449089499818705985247074646371914329732995108866770718149846559179976853880469498795577973857860507886114069412650129091713879767820922631573351250150813683416502589014928339295558752958112656701111844818503739357608506181727302222272272323695479834366925038621991512192349712470471507871670379423837555309460020317610344230139285844686271153582720028151132113510473035472520316256497311829027599983039020017499534595022819281744228096482530499107979178565049902465508333123322961979255124157646846773342621139913433174071475853253342165629010140773813531806718006952540898192238721921952321286215357112383065428578883838436620343151831049225787563486239450126332960030442634645522397601873369740407926015128275728185866485221320286383331946157933734512196927915673150023732873902842916147502385308518933374479427173288298481841985885717243090282402539802374468874435097785258939454121043971415516147652151932243042797169563727162134778952703647616663354772784578987843774347154879843087012905742038914241993927894305869356473445298310699771285183370438625870475894321863339128087169558378232326005462569469224992618638017010368169171933348654070445514364358514331509816224954902044223935320517912853152676042803124830736868653391326406054668826397467584325120352380971806957436901382050723503099749027489963806717197164714969981878604545868087255816347896190817117098416907120702383885002710980641361464674246481876895192950111822950601250139192600517333059057283565363230081208727904242586679847783617347501021324525907894446106289230455678305561132922461499347377805666084011758212803996344631823528839970132124987333919875316947282777604619230750760243754433161952713130172204828722089530723110377176449105077669501968938975920931059685299701886345180936621846324390181459573684645578191299166780455875271889324948438552455751565876375134348654475475794088316327547486902931521324995987370923007260318616466486834155032765412374106791272296769874675851008814520469584484208331887462541819574154362382549036310304724193537348575096338180249513254466953956265922506229540446745723408848567845336140130603188055631785192623867871049285527702029818956351244344253024626640708761396797243320206528010687861288876491874199598890962574786422662884639426952509338879669201675303554984092819682854882247857062245534756490652980441430360633278932133188860497167173585068584804699857382974954996809243888311412969612055977857535153617676460440642501217822997197594905638025046838473915092166197591769329302485723130952203827110897286862937993265641877976704994122516295653943688687631800782851329185511985920914820516624252804003980350475872185128803362874123297924888860765124534120732588584923760016674293691715214760075266662204966574363345237860053401585042520649187882993330655648154483468152188672064466694590551369474463760324037366917846496047365481033966837548146815785024948393475527840398411694697180468376374596830013974368012146089790196925822569421751900074733401379042989747180264054683467841569914426313241885687308204491544703951695001322955923034032702883788199570174214840731733303068767760889720507772314143577791100557406693560405591443146349772489599235083967334167983804500841324690295700418923317294112964611012934655000252801489523962880212516787553938448010014277231673387734732796766998034611946481605276543043922519184201850203390849400682420199908083118220075923413021606118376173329842629842279203919819227956931222741170137154092506274071484830480932501647899183333296872782222880168250507484178260578140751651845833000069090632452442137229222777851308889498860337856082689446947224158940527325088720318015388016511038265181015812540800522762001077106382931150446992991074976814489646548507812172175592813799160405098976604351135596514624359148105323260242122919119698761442911359916970573101100455464803458613129777104254500518432239290068052910700407303867358971734284765247038324915323982904288348081584976608875952984763001956236473426360176273995378955455984023349417764589361608383511134726975283108455701029901782764247089891384599912837965345634793870394694690800615466630962439855288826767592926793521134448394081570241811417279147216235291228773560183289569976675425235495603323490913845088955972272943108418622692086687257012900352935244103065574232312105296557298928115996291652383481497187432726440420391017275880440823100030539948154420887954856988491924485486316554580584596508992882437080954874250227591222357365180446116383736175609655662870555919084221107665537212091436076216897053792608587518503498561987616680271672561948102572014698154869068733636698259319677452816887862910728034047539763852351206708801350935954624659845201711442040668209296843994718062863811985631289067126462128563643191480160834466957335703537536936891078798370179298845262537683470481100757023682013846345614767088509793329321248570856180962374541426541634394610062966989865061371748182450614768612872710946391998009385847341233094743987498635736217136199090290025966119009587804673567995883569258652850835604915319378257947094244566259660352803963260229278547377313861394121619782645045035325366263761941930778838954065158407693968029937951100714025189947988529886674903396765882304905539927948925699574155122345607116048189200385139761568358241706368030294267230672005400102411603603661396550063367318761522754134670937640786802043357201329341933265849879606995648325635266540233681520274680491500542188722018832099633432811323532170482426312601937918800864646954878929658554244528514028609003869146834947157645748691069812876792750027860767680198051862284264896802694062452475789565870712999028094041137306765998259732042344108805491305010460643000948105843691088431569336087057667294860474943102888899509904811097396448279015275947891676210299859121341933254525385578970973108158221769230619894161272750570868609614229029387086686455222011788682831821741709398452272665355942579517718725802602068801000191998010882126566792067062384056672038470776639008714410868327909744247823805280030262071738248270042972677186254287553741371797800205636919572722151190496935183907450852820688762784144872907683658516982348591307584138313632517603100421406166855188289910310402801288945035189794543527632873709480974811145855154352254136011865767731406602620988048781630999950628647558479974472875748067747375062664845407992292032299460559760652416661413297000598945180437615119990255188638129632478888001340728766877658940710504822050049840208776838211861694072069132247095243380882663725455658567622394884726474545566291836344316329665867859627807952631903785841511943332115954144474568846116557502370024650407786954059297845652216707099536338122520240835929109103411922792635976825429406573642099895164153682142540362478902998122764130034107975362423988977963317753093646613659980438187024516661385909224761755728215155768046210545089405508157290861997656747512751264362363771845131044977588077029556875417806244826211517491574960957519084024319859487754844720537817121632909726625935505594716706614352250820481973334941080287487275629766708397054947210768908431524912922882797330451656310691410044687486043234196179576938490236002302716329294892454883550145671532212173810515947017547659944666150330801923841480288703490091595615714939761577715943038805661993574476738824671938668786453447322656869259666732206059485340645034180042968642431042470682425006088777112349126774689766117626928617845328978447255887225102247802905397429987051996482191820957826091672906274028056908629792972762788640158304083435687530242420820264050747778551605362935574286696249567796792432917135818879871283650345271885084125150970037846638875779951871016346819478960558365273712066364370445439649917575770438130588348375606661978255376976690857483423167906305330244692565875612799628078657294072818469745426542178072554832039959145913231582312358320880085811058258632651940540670708316636948829283229815841022201598626606126922098671027793726817471210293186300588847869726060216712704857835986418175043927236084390565443791418973154358916237963305451929783651587721128276193838260539744208346015145546003010594779870464691103555590873485998763721945768424082712902105347773959091250977329844944702457062081392492011246000808958104911401149268168294451573901470452896351535398345569284931488654900011588955849016959570787623777465625505585084540426492503619496870542402865185707249283164619222792173437527159849019996515910536527447097464052633155441976337887671755196112448176000346967867471912988717976905227247016600992183691276366572478612039781057097990579016481692458077794690777532953907254223805487625009901481185952792332953678148186120840328939635647392843272425058947400356534076874280337883470848587434733779947876659491456729476557767432759000041111151163854580735113470625211447389772875421705630603758790905484254666996687192388367901134265295102268379452787712415769384421768118318817527207584472233510525690919189728484793762628524529474321498904910081974361941491152413218933557637698188610392079695295343195754330750108258283598093260290067740814039876705289597737523771788484682475866786338817041297015468319220657795489206068109349854276890791485042346711476869733089923531744399834050808073085744644904848531110674829707646935189023223554668025662677202060982339209905272041332962732789073461646566194020793182698071999278784668769904457343688536892147834393358490580306486080554558088959169254382673201778409548602895003795823364452120353398607739486829826011746097410389973057666057439078216744992983474421146240403814546975236065935604191247340145476876141269884925409256184829842419950057839881081141281066533184231752592246581564106141858724574121061128085131016670072850308471163518855121818130882894736020235190544984883080972201646969653135595812238168088384522289187785257929160747265733019672944142294058705022222301954373203914377567494785586992123162449165374433131630053112781245937286005211025330148600108465305492618847602651773583021197588612341052781821485588426845957761883069082725566701176699231867093640417351305491677461916047955597133257861838246832514405212323422430795126816026524153581193280013029640563596393280024405579259318654225040073655343175300818000015169549462038954195965095423271149768531120635719216007974519476664616233218070750826998657095666947949347332849962740115071898232343720650402823980666044163584067460903296175138003967522610175520800294495711399346430540692036180178831746940242749720377824094198592070904072233014922396799287068263811509995702354536778839467689103867763148801588122073260789587081714581944474481365095820152410552835420360968007869070633492540556623862718511796992725063681735576058901226064293404974679347366452443579184370259622906218250064406523862682381447780938035981145135569715758129641936421686792274790255050648441766851482085301461758792078617925667526424769037097072009909678103698547179911601576559677971252114359852797284596867183677509327836523761109033759878268889401065714115087700729080097995563557457634522276023390386882117469186326854301652470770779646928361475824067043958947977183996159089912176229097867924513782693434975808715925938822722159126888287501259214085642675387327260217013290673565224798916788319601604802733678549443930521905837289897962847979484853152784407595088036636730425586006973020788828684987969288632208417612908228004974875526074295581683630184904155857051722682191922477084836822312753677476691900455760996122043868962434089821569002589478136117351830103614757155944393077273211738338408352274484765762699207131681425728147135055683811032457667362848682620949859947981595878754646832753059122478866125541225691364787368410904844513511359503540201709993921206025865135633891026670678060800786806768317329353831681601252182718846407476455206909453982082294145965647145695598221516203894477363632411311139760155349426819755192252704912727104499475030071635570949532856401707169360405582933713261551346195067223755953254584901575649204655497869586780466598962214897109598426305344460722856533261612404583729548345424213286665848877315964303718750618722618283273758770902067335118881156295161256153590252178560981537691887450442034824088998117355779893098227487826320907084213648628052181468916010087703566720584615163990427459568436818666760173871477408113915440164264510311404443074595673552380309154854971203003667305102337131242679991898770411975456131116680544633756193517611130208033359073824905577801751217571069228024293996612967000670851728092036999362353054768653998908831337870982167396373680330127636674780911850874934156996545231074110081084984769856475583290930467681557312211075699727552568062491806638562320880008514756764064909758241334806193650436451746263607846217303387853192616203610891103405900301638029440665603738735408283717919418553739489339001962433806121571431173576747409448743304158620583188201080926208820298913321459702963558053214105356323585771985240463546193038843832129892345428421973552412584738782716526379270937673583857558397743553503976394589580625781787303537036883545440258611757537075099157834330115220772957506534506509973386271513094348117142545896653300494852324117391080620926580400829992103213894766787617228741567304419479721252546197042943842690983599250161095198790480622287168124515368912769409289993572176575686686186886313028749680360185795084047406710985503720986959133452038417348274212414521881253652790317179352267683067146770383016573638279707005469706122257397422815773145820028660137470285814767391247218487642808787783655264056388445232888970729947481135884217312945347741232047807585589382760956300033809383925778114895515455594672205534266897520757333907559958223272838294320813821611202440955247713509261006821209304758615032691882787427007339648386431915433068045945794432906431398718417700238651258730489407445139897925807867078514857416523768706926604149272595105225715271511511789823213546001095488075706812047678475520683476840898605176878657886707452427141110644727649538731168991914321368119000754096853133925254297743630752534581884425721486718300464913301536491304530159883381231165546344772945175666639913022914189843054768654469568677396319130798839964088587774284110483293034417296695239837612677754059015471071978341375518009001051266894629556119545661677994512325750589950986788937817241555154759023677246545883601886000032735929370524004283734026505764602123289810389144460052470973096338549590537921896263538503596496689498253190029179532969749220727384598342798056160080817742314345298950788575302207749697306174771211100104335027070761741931230280894412583361153871455622788824071001857026574929517146170719805071107250657025261130769088044230376857210476990152174214162832536357566918991381486641254892662413967571990410047200927512445409244136819508120120319696337864471520346121010206819026449150676276423895149199747611729958352938913524784423058404122808040354531499495547935091581655606819868331912404176748424669053372156727689660413082370903637757629885458968924717594811052238727107518604160335466070289276591717296115617677260554800519148627283055670512214774275027126698026275292281448518717505932373114166670891993654837196910995474404720704012203554166425372878488323524927986102323586184948450631510880251259756108158401743903730176558468858940098972681953040128052598622507271572615450407919264282244607258302674193680559859184569775528347095684338610577549993733876797384337662262598879386788162134137414305828932452129192804538783523415836065113375159865142351261106325517748693076067160885734155223242405155999531578390678097339920518785847208090871440955122432889353786890012665106377366669726678181391596168972434482528986155055805611854720768525784943861266097889846314020248629614349965574255625765460217657074251596201430247242051878970613413634540082864662591421884741526035743139685902967152434692220207756120969491351177472507460136648203976763183090410008911952787325331476626304026270904055121790381877251722259936837793286053258550808123309642670107178228383704172478740177428406919242187990260975577328051434762072994101192979931157276393373696070112054688108199265145569130443917599830788529965529912554322767439281116413140715271030273204279495704977984652638428554520750455429525763909280528147658195341350811070213221376291909782885892199256025729629489173877044620019721642400796242222242209549630092299412398063413231181565502687637863087983180536031831924557600347691997331770092548726972903970073684853770856314556405318257348496935239844335621990597175252370458299702295585848254543292334366101094372972545886899344094269186998917247891087542016594596813237386100459323066783834930761726414720328026034383132321363373359205063428824843664262482893439669973047574599112148867302387633962740417690513989383454518314406795278136499085312020072969570945646570061606002338625276597042081299848124262691340312653306307426592229043308761633633781796381267207926397735102203519436866153085686314895038439220068081365111746350116212951264382486155541073078585228707982438383700963201438454577754925297739136602854590518290483665853722884130707762104022527712587195308400881037288102776247178953140349767901848472640234276558795770440675223055167957471974194576452542403031085765628688620935109144633827560483883864283637849048996570251337893285558909169558553533178729605328535671258968047716046821985669963928620188993965687608303596982507126171847121977994321113779179354753446720398735995230769055306859803689047401044988124742001155116267802360219628248790440654344442629133067906041459087409417388113023085254208977051022132766205622174464067016701244484536628781400242582969861257709193819737996504855631590880991699849926382065793018767687590672576996403076952147292686206845026128422616945565642682832820998242183995774604028372168717022789704877641407544491044399126538456774373017757313983581567426247158874052049712330758721934099949440289838387414651257270777881810587547296575044565966569781258723313499967120201433087535192329491467362637127033302041970708119452403852720350713782235650622550283294661198953143923319708195963992212748743193615288023357285001121663464601422275981289317359294736752763625566994338367163394264776644379858978055579427754094549698731700387646141579785137187959141692553068137019397951752965956472715782752304281875136927901976051566216229752730774709821219114081336331469156442190659096435659872877811676091774415421740294614122671285270042885295014601772908671812012520946567833326297999724461578930163074932020098093431335895415809957871658982515767477205342242766658454310420424685056816855505759299077732783247252423269727707920966945152424080540248884452889317330759070698932342232462836592583293389031908040689537559635210975352081051408787228721822638887000156557777049000845817717452535118775807654200912093842822273222250553051253417470941389722602365952200527304075024793444360407585531794989032959833426010575788274713320762926915912454510455959806910874713837329680712902288264507771336691381049624488475333769043627161581539569396372115604884391229601296364411025891588509072578889348380028303845040118587392158668018748613269741016104862538631892818773232481529715931464311385547158740245640733795076277653038864599536323351969767710334526326189213027573700983672294806530734912035923373808242602045592702827872105319654592962149545549252615364178937768653013670445225145909918846544175984160705350355598723627599975902135968108350142300826423519186783844912661865632052930227688917519779356156941812023542562805600464194071646295222038811267366648268494737912047438319304032236774486141905698966023550051473566597660828339521864738496737808106812854135654078833787948887888730549181078565660292097760467928380463651600816868452867211686356270131685303597584827326349316956330781107825730071182226980481663705821522771930130813094449643132001068478718956114190160103772160692512933150897903050710436361466476406017725505372847684224460971966137692247102133452488713242599669340756394947396221901144234845876190530071149816902953347861014053255937452773933676844655497813593138369794245693223886229855157477401106913916835028418896168896093884738608299664365408706906263968727546838293043874655124321800787806336872318626765786803563746911444799554199015431753587700825234874903203362719518779705712244784756776444624271309068486994189256620264224302387928919516384730329395155153764083160665341034832994162028242318631422175390305178206729176320872360507780926167033619942812573281627342836632292065010041589446822931939501743795325762530598684509475238033479976265897253644045333824833266025085756556005499839181731369684119604728979763726588781087304601714617556922710486381904163354796802393783186950603147390747795709576463733463952276385388406933717432826457861117009433533597675463983433963981080190158585972058226901244176650904757671878428642532001696932750253793592072328210693434506830314025392197542000764365205067068877157751330034753557150419593160357795328818041586551937323484459986994481262795120118117905782564002865623050455754354854077860205642992699958016484850060824466374688988835725660061346463682399319511248726816533107329262789358444837701357474994913178206257905383033217317577520438675584094291252577461331086011873109100124143679047827177510046207542193759004991473752603016021142933297890559355476949862971144839047708912544535752823264468393901979587248692408581688703483475027358079592242864761223420333312834852434440760921830924563987616746231549835141699627072066239193601519026349037705548689495018612139660679827460713655235211284925377559520239255056031442125178109230738521914304053248143817448779982383449049151951360345925208201997483575887967365838298264426379199261618601296808731577232959424775943972154124493432140276141404327406093497757319269148253780608879234457622704367218477644105448298009603443482000303880531078935897301377297807068948489110301949831504234943086224675168369002098611345625316358742121405349500481997989225890603941923990370083854659398378304917565746481459219872375235523616224511416578201281083856316901665051458688217774027108274065108196193262183412750225412706110918469965520277574661364754673918632545105017267790528497269061416673732652437453973928036855764599248726143989881275007045590931210375176279542092876442738366639858268168774722024220787584978273667685713961674391390229906781858551994929580969326625811869296196944632638607332254408916701231887656544863987481607278646219435875080131135106987508276917375328236182765906953931671113986901536407700120049352774287807021940191451855567967562113168730890618832987173564685737155520566140621967426902452586387443883566812818407632544326066408476386080057114150078882163866848605376298896685222514116073435876642442731596674939750635982910100653338789349194658805862327452190393267208630069773171044280323170028043911398594128022200042937393798361255152764969447312048779556617531330575962987384703904438749005289727877700351154766527401889345768187496798616435924787756054926226349837216856901994157043664902494168463475137450371630427103686164752075399706889830257436908717916121994745864452679010304585060259854084157502775460228124228504529690283465303477443610756175678132245221074173036663320422174640650378589142548568985474501657044251703252515621825584323647578249125303340005847620459585245092299753236788428325636925548450222094747507592616393011178363243455707856257053379523753800017961303720877193721362871419907281063589099545157930235115016151834792708656033858699475347462631141403455743541655911780892960929295931758418221200636075788914427945705169711804027808113335790861753066791411070886545062928077577316719562016830554067525197175954486759303796182354060468965884040153085804029931789264612357871672907314171344373789141424360669468856262058168281225092668268639353288192274388790392024783256283691562342656265716427975747177007213342960818710053834387502551677137635976107209697419835531937959721153244340007096389029643913924829454029694326126542607779655596847476245107031912771176398076281760640420735216723735207507248975708196739287033043841971358736980952316301147326996606784252307800656849290650363995673936572673455030877819392072150553136462879065488220623375240985021477058550013514018480858452498153415371995308120640672447578040133669089253588631318938429083328893108096145576209683678989328596278414514441736999355900586113587040979224797598454106171141057725090635586087746265708835908414394262565578859498675563689420688479068511177452044867252820994653835741953353287731034276497239554923451770106659935124300229307343363261762822866730773322957112270749095288075760774797788098398879361145421565467943800578359892561038478718171853117552676120716427557699208978831063675330864232867501198168117855060317280813191255092453936763345030220400369631425824203712273908811716852087236597610703948730767562368300709533608444737569988853434782499632656499772043009244844521389243745749525159095805118626932653974438451068800152673999867696588528095650966278442140907751157557093809827280696191091858755405674768095941936233618690136955184725287717130095870937393491136089197389454951880776048812718724291987397256187913514160145530390855337097568288150878850335916306181436890533452401103355536681205025184451996782739438462876231047984754263203670921680851105815972127546515988240600141713387465619973654660696583646048154269839225998579305511706795501910863048218652759772867289705563108236589309181952720686683384771512609779409813030989815451531264057380891104257408244626470764818307662410274302965449863111083949701567703962487760398387114453610416318888812393094655016587259436624678125403542139311827552111329181821295612124232800909026197625753442384573316839025555239066361962498803675879100414202796843840290669712631195155407043240584268857772113886486836741464704813080635406794871146718972208940699426822672786181428941624890952389342474765178988575447937172192204639722527453485971808244927874674827279541280640759511587169049577649908012216445232128210951957871605737270186522238747157871346257904809798534590994531429018602346296076205209726135707726767927927931868753855610288608605182764861045357610593205634471507351175074726093594377320648947929760972289230161472906975787991460492723463671483749257107016872215376930749942795048710230601581865976228847443217438427204844705170871379800215011106078776103839296606178552004186078895787480498329335627156258394874197834511380543456764403206241664085401706609120547489836722612025515819663881389314689242048261296969938428662160025064840412494674420854296109428226017153116289691999971003304787867353016598890380304538739734301006435687169935849605497147339403766761259507006758708320666180952350670058289612496607847476384293955596555611780858819369897119901078526030702160222689550684650632013226549608481181421937023780446304027390063691478568752538084122885226772950482706082002131119624846908962976841283237058594320946872904144725097279565624013246856630200596878328046830163480047682787163227070941433671623164402620992820736946853315513677009387049806988039883743968916329653986827526332163371106961200335197781914137006507676912750927005857614719549181899789590805551280942338377147864178771672757134848637300901404147315402018445844602288735111125157200254686707357302549726905702935752661752013618375039965141680243802290798169914375485918594590553706073070846146566900343342331030357238847631646767272410808489841108013968712678543968908086739053889495906897269547200857605415391286647388439421951572629027164734617147582466543715753763993858436549627709946320946557334823269309873766823352412831930655421642975710436932385276572451459738408194312930308252832400067879358002159449670201071713717317547509105748994861233246394904710972764888051441644764715666304712508317594664887929333153118450817841466789783463538330902940241757870176874718163108967894461199440953702445176237206878384284936528082882286017501910040877633462191893847556030001197873237629608507557726717945470548593783490788682107438257732811960252773348244167881523586934019035542651657213212481707337576301849918453327817872926685228524338545381855479122657850457334021148873863384242836189182141257955527290965850455989882752211174297939102887394186361190243500642816298472893238765435356602817915342363069080684082162888299935481651938229946680990341477644687816825127827515006616178884976409778705772033746842715267307341782093361659459871066084028988172059558431972528423098242937677004507715590012725588029029192668603595918849944580846858586909835741090395139292664364332578710399659279098903719526627727213885592503277488575388428433575748236421606373665623534560211085151546565373403470953014664950123586611113339490511351767054161986505782044380868122887434146656460567981159517611806550953977847514486584810555834478881150468983781435133086492723557919834900998604447217757921054716500836180553037711910731016216993004086351407903681710513912148515864377524681269793946308742269493542716870931549982711318049083862771059113509010980465099900909952396833561092651674716848345231947498286155531936329513127563620878054650482754159076445766094890116677166027898542297296588608222439102319573368333137264943850749185781386647224071588876937229246077665246366295632013187340283804339526643168388947992333847045387773555283549324917963922212283472640999814695180641530550462865705283326515835860905110467281255740358254319377168884930307023154105354751300757931199702327190861588126418934316615079286128224102095521078882532354582880654808484975856423017253140067436247291508553559177950602608661858905892651394458007317764114032806430972528950441508378441567202615054500633611099491323207983268581920362466579578555618440548066903005862023491950896069251604173143328710898236146499722663883984989710821509687532326353625046468114025099844458422958579537902933523864012229977736587487875609501706131989729417270636103039104347777754711549479328046953139940221769781533802031124327591866152017089322940903295270002886249921196698726174047438220690024383110748108335413925745579256517463856685667015890737359892930987078689681759408046445004493496038807995422838412727035371676232424554238511971976416253589925564491984945087361503934747515031382662174513942971343856405025682861341136365046268296999483896390702411122497679843541267782332985049206165396201348917994160295556780886655572578723762169289320308274072945151818597134646464941940974124360237438654348779523133572907133994575363645314103695632179694706885552092536694364895990562681713602540819892647329989439351207365144735398748092779440664523633736745921528461740234292023809787925707441930873049349982209601210450868653672896761266317131683503782141601781124097523914216788957718560231851548142346838289692280880443493319204341620577281768705452910250367566499233749114307324580202755518462895907771933898811792999917602887462892517476666191478977685527740262729254238257501300619498769792575316606352550815231080573327811873173098503463926329851502181974271145350912428830053359639677589706025908743441206513986748232420345869125016797188747436817493736616406721854680998923740331734752743231102512525789065145108651782894283823190301570456040201752970295496081913586513904040501545767493418002738149327837082661224095203872891425938114058994279373851146574724153212372110053827009000467246743205377150415460740382822248122708103532338105357709983238714913328821733564955281270393619633354914538033141233932795552399657386917698289982329225898782930271408548154520243283532814697698576671190250457475253973567228341498795801753115360690406151305773950203567301762303035504266247510168206222725646436537499543993874241084631676502257887246048164735835458737875822632726181179463468477068645836640527257885963364849275537727443001995472341769365146207787402890588590987870220202188009547392129426989366192429646742280279647158224027650168422392082688468503250767072537051191261809577477716366071047520052089433525018401370013856682434105915683152463201887649758749321875220668030590936374068158166827731496063752574832933330163202679227506421114825949926109137961136386491387679102716478069881785347967832494798073336141879764026751060750971841877764376294877623178150425727380152764353967697879450164734323526195278797086714918320627042419767395480952933914684987438672376269854142364519223027063929206040378363840929623875028124535900127055671467231362762131057804808908485120957219306407153070324306960713854162767619621192508068727204030062726310750660639641891542578920516990869027095638089356984685464216697553571100435234767703767937547669733222986233826835283090055313930158962342230748729276674897937683245936444962431131446043319393887488591289671759096197475164075217183558398401075195404212520952509697525896249624073902886472850882133967054594570587410409055115144219276251523506809313105736226100845260406266560959038949490241850077768683583327795527184772983023947431679521592947789126853126249627271808448651180301682658087519426506624470570098138543876836176114861231341274653737549838917296080125981649329063665351646409178515708300992112321688659998667628607731501628325049182411681768895310936662769898377362240981748938524615089182117535009862995890887352444275734988453249070159362349802648580940387042626474985748128227518300088137380702874254160955153105135889809534886229660036212357401689213606423689436244397613291172261261000239441440425137245767510068480568968788387504978947085310679531617010568127064725336050586270744007008048882899705397326810103813103671326397018749689629302052396395139421156478227439770119361001317000284127497049168290769741130097461676289163142946648559992350873949927061238558960434884655016725521794671050435748398930493428236308332183468443091984721625532480246746182703010408903978363760800475601917157987808738401740951187272707088248713407224489988986770020665922189337050344753119795274695187802684220586547036991550426122092031530970519671930792911880823876698296346577644894059220973232818048595844891785052211224495951439674115725184681115201757903224271080047669635915531099892417610836699397150297288061944024925254906138542007064795567297981387011510524992929890123574501663377181370218582077263906076284659894944614236329786189924146736100988147464350810505733338785399315243256954379564789540110329165520721835132935090656467740982311671790058430689002537920847451796288112426784465233933401152214697554652091441378939969398040624175033682892771014529741760724111143003183374048384412564897683676141857244979549169361662683557564230278532400074161223963218245754827062415770899923011000339250240436867868122884332180696801656349808366784650055578132369946978222783603545099804551388495317354797340859961575204432201952718362161016553792420490298128230364081513242291963789943130399039024337572455803441867466773714180927781075101166286856090079529488791166555120608543277794603351571023297421948076130562649968784415689641947628024044629638638526962791192212673522227801416359378505004661694066963789984118393220965277880978118711487713322049537566953542182315091358334081081287347422323207248811157253808975060123139037795021988166943799506447269083757969789785939611261506044346734975966603533017469732245382742028234254510484160635704858607001335722517796141380755310351089317109519105486185469339045709155756621794172466714685495008208180905624053871565367439077180653159018696331718062251681928692651180355271667833771582316351791122261542820016699916356235732527994251434734678875715534240958301749015472296867495474495536923818001095954432749854870361630391293681070221033734855772833868287061357495948538316466277985707016127259409818383389963309799129117322860436216857197450397737168800184937690131779561733903060443093110607058364236745588742292046860599442475691105631586448574823052371393010926918023341658627989150277409971633898730565313831076601981700598270272460466252996200031469163688444506609192121369202642972868427924210744132491576342882117657659234629274731942501408189587255292781349270621578717604632659126536983425046241205100671414825780154511938329082821556012446510714349662606068267434368327649575458800574166390837543032343191053946457871615955097770986476080837306523137228158596732636009916463925524216509975482523630142327489582561622220392826611960228224001129725691612476823858383479788561693812499841071691717678037459610173278327404684735728568004959638062209692565453154879472135118064571700956443380308604444930343501826028325833188570805842861486551418609601785650657013108368318339608834553874207051452448408945765627548641813841334202835501034694142518864510387330582371491359811589291169352078028202153803459673955492230033254092110170112008359004789195477401122436509318461864482308523595056920958195253207460785673571390952051721164673732437854638722805784446893703858237633527165357058043659756635042689900480513972004761978289901202625213866037876718328865894115614368765578169184472466326222569866592696428408349853116062488670216432798681865636321311387154887884422770486908637765884292522487649326763458587745526577766191938951420234227686433703131409204416720520521629333656331783386960025382400241099578572795266746762686902897427489282063693309041589404537549073752436256008276720304608840071900226547398759083312188073100546432282691549535703767126244687337478964884360896416957305002530830655994161743535203343058640186930489237160166290417400027748961198912032902617695254990819309125851443262217003824483489704164458529138607598386792377712223621206093458373372833576568481577918250552775912348433013303928102051244000978992323947917519059337866180418359029546764000557722364535764417873852102524132097057706402983143205518501585273607443297727844768194215385928651329980571274961726394562972092533914855413673198486036119092505372042698338180310808815262850772179049496631373535405645890255786681414451257372260120097814473075994476511863203461523734513531098552985361704043823429271474495229580217303680103526959489777823442899009877601284551721018207600509059555334240685380779178604068712291059526075346275417776547520806564533760270462557113771573547639769650229522292674721917788308189856160076223788565726559011697821606554231241233251552237741636109831473541657410935677318581477490205079996930179805792480288764061305333373627591016406417869226591448303280161354054473129043321371904076555321460410474670271444902934408607504843144699736402253960906442937810328577750475560627681273877441952972357632914392626367040534445879232985280407556619126136248738903487537039552947948506797829535636974837683391943602452157101658797549345030763437978729883458483978492051353281484650015165654008966470848074915877490244975121655817699303774683430643209913436873226025588924934218875200098672898893410443575334333176102456697646655529751649361743825457376923265866773192658108571031828947879505362933895143749705340009081748077722902625924200475963327101258526154438536475320537466839921985302034330895455309353292067874720434650558541277168822566933042306063294314589503651034937885906501404185539169149067824327940968945676523256876245566125157502396687985743102335759165687869076077218666628917512365104572976839113723917499766123651316971340201888730636038569009452182412634785880827771463666108770939782997153883244648554109305354544589587592185357241781394478975410806390910509082981447142594961225057532663963170038126023795753558613540108315274582613095888148932707553152010595920318938215181288229360258726822479444290435946572249733184092989076250468600266779622750028493008680463815349369349787598002060170752568633884757936011824645800767230280180004629811152641443001507062778937934806097322444024958823906104158213481366836184608948597812715508268410483213016345794336656963774330449053659243417569348046716242855326686866632492112117364846444277535034430766682609562576088694869360443704808523588473646546322802759756151299274947086338256792961394897608920136053516399874498976497435699608267039106980264844140480662828283046035864874979173387251485234749485584091836285151080234995070147681650677071921639398106427347205788348880202059174141726644793688758902346326611463162234404418329442318239772727106049057217502576541102667854010718792027856594742307658558954307322631132491926003126365821174200791810257995174413114940037977368639642523289378760806208802213605270825351690269564007767867406806928115725972503250142069858539898889827389413944551343876733939886777561571711934161368716015643308913272511967330860652559842022409962029237673494970536674514535104774714878303496355184144468091139784479606071637340454965222238662189300296075123976618822479408265534525991724916747246356558277646237740198739635599551111564628170415396538264594129814659709603882204593336019539003792029617982595591606994516960192136518993259680880493654445280060121543391544898375799834425005869610374778742450813129265006111026499197696817992470783584470476040686473745993893058908510881542736628364764834270552052227779593220472738818355987510019916750620775807227556305554763778695974747142632753475298442043455085215625939887922248038982551924289357188814257593675131194879000936849907574713808095444879284995789010492365001316865377877060316872960959458294776666338072789281346407153152648285346799945306021595197702374209002639688364158235099058544478877908625051854617474144860014164947679347955698389913172462318725961144409815965739470930141325116012532774355708863607968162175284510468939233471769359409777386498441344459591904334246173616371140576612442677223749740610897818368070273628034542413198703735922462280728749823415653285507197334074405873360889708453967302562766267607704620275825450590557539893881292776835778062260614359024492077948959165845042906948709504991949986211988658950897409384090294017500424552807933082980205507212274875666041120936421558720395622135554820539804118686218975164548552216330434862705624862321058521358748962847572616356750736955399705733468768249422695745355364010894868968484920084692162275788816145999950653073212940376713050486832341611314793284991713693333587704309496266017011310327687556104694246480102940957757556146175224934885505672304876045535872852046359089099062144466763503778677214055987612357132513467785837109745589037851526166283183085013459062400985049275997733422326967143505399025074997538359066747634851877813017966309662533080784281192630029156240716260339757683163954359297665577663796043585773959392042384949956561164533061616353667665102796148278345926784492876066126974423382355724665144044686340530425175122701458238148368674408112988575668607019938413774993163182242571695775073950457205722841845721110008858178654451715787216564353130257754790138193309099103498257419348098518493828089556175452878202800234391857896538460121956305338029438759053362004260097049200136340833221879110927161588993666565595490048275403862446447085653420124444822638583064770296446394096886600746606991871644271616262223677533145779775616930430611742129613115187429710164478090383233579622422625944701034786769689979893477291662543253443326013131363623874316905510462642670896035143651340419605107096405467323015909978477786977578149698220982032687810742448179485948017911041771052808182974733370893580213426820431156213521514375293017978383547016086239238256031061527302400317355645121861057841702303775428253122850616813931396642007372825425904436639983955187159508473573971760057051765954372772992628955421135660298773636082311999635873971936274893294888542015933327559461070650386220167243501953432660639732987757850698333028370513193390084524487405938666533800428456605050452264094837212417499074660898677769662799060414853358571671730653244819259634400190575042910752763749094016256518100586631755479964903870726893327031635068687682902702498384190305511434756827873063103940354228878321336056499000214537541986724181523195429204629370877794671556806556082857883173092575101081484208605105498942413337682945416727705666052815915613085698809883070868511845245960405892064244390269163996592127231923564073408531460939748592694976102537700448622279262865721595770424351448901329242559565217559924376664276767274466142098687632710774672784249487310782674611875701991175817193347804340547783305118040883485928833690278826029047168878351137822768883336398114034302235886961275177484672025616246548264662982381297142387202520638961691148732740108235902114968754974273124134898135473356235724331075430120119490470582009428886010568669561243315701289163492434762918539824215875656884428903857076803719169698140586059995566076972876924182357160085442673277195626142192708850017851795727881116721361319292793655671612151495829278721291584579036114602923313399067174700579028025582378354032549116380339543628795538938170846435350927718816449552031026487446759222917840090864124085526955755795166480229292309080464798424955255242012545062030726458026679678569465975711016910956753186311409614211167628683698135237853212602302295703180710677243047709501528638237703031205581345066659531053178324011871614869519857159673133121574534213073891405420298509363477406383456813705775613994832904256339493917763912806849318002286668399942780162151794847011849159937200067344183862517956982922709282106788723957970597878139152085096949132113353082012979947435237970146258869842521642685151180190117809330797350642610740383206099806934498966872738444357687732931907009690414662462166874323702383692444165403542317779922508816446837888531179148299001132417875043504432822987072978575821095530664015357014082933593648788397070624026017169331722096562022963714588023900515476468261273961344233310866554939695527619603890278455862187896163618181363178214885699433085569904345505293824625299930800857911242471791081998259717003186641021718418334930115720412038090545560724202464697466540148324823044954953216315678999875453763270726532108579796878098716489228460565712558489726919287101704312478051984980419045775887023390865199739123122308242590956706618184579856479928519143891743831166025075649145318077256352106050116008394818178642694078892026077330351959563672520562626492726255730671541387061247032829203921785998589010507328888983535843171511761178600689236221129750073847830937640682217008068976561852364385480582721450910385248577797206909528299556289227056923071341038841452715764622965160329443805718872205309412879023146397852143759966505389198724516034004401741073604488431015710307027363794117408108687835164256055587205860239793945985980805856424267161352068706535162648486951959086120069711660997114223821387614643296675114393233478848763428608089196120366135606866060862291325113837916210736369835329324452254406904598892410620925437224348421581618649517564418881244619654795456087309915189250801713105877272280852682521834182047703488288473412313250100398013953806948259484262105190335529067070031268679383745480838370864568690086073784771819311857438523961528500751444446537476835051254164154933076530719548956946112805486311053070315455271089362706376305294330059790650096471868405589998858812562286775447684057550830328998401823200376955746676327737986264332892707887079198816708728791148837589297379271675122701054219737088994903981181833230835016143049319719940389306021588927836913629828412529524472165467076133519374801910931023742584595016282342070139622201941851604925318525531769416112040893179411909996190836391576373538897456205152547919541846642966443422729867628763935744427177831794649012571921121157990642003038124717503084241952051966641764078229104863008773154156063197601562880760343027886789516940732396633810826661062481124045001719773915978272627954681041762460669203306082256919197624943278464678832863511180990700186255569438542039697668986142334481900471418030744151510697439339488061537342137136989155829767174348029000188195717520922631098382754654756926951249827265931189106323285038829562237426483554492719304450241209937909196380200354188381110504365040069581797990844359671498398431665148481165629703589039336282631393355363223397599422368960323475730767948604744492148575309160931291559988981438379562548149747010650070260385174934722543391488300322558123901208203174048497280256106030989438849027698855208700888550922621075514870989401323590748125859128864343925402432753982292654310389148082123667029466484321239762573496174499605077308647826296468898357051854546565103795748230715254197254259578957046437479655778481757087744247400192678554412672853080101782291909482993633519991535459830268449075035249658045694684437722590838799428364235188733148708192761212407029430757743529440645305147878199200769394033043971762613500483040865479179382974260203640332188710885972044289029964078512850645780725808974419965755124067741299815854201469073196299711086240524005764286014676098156956399572666376227611951882036003385750102528742583962416859043958145475084629183697975014806589545849928624148005504325095644020314761264785510686759820867226844764913368527845356592869052832277102364066145204540757725440195919790593004712293983361488953909561721737814177074853562062148630502847386803865896493053280974702307621062670228399446976306014358669683805978138122638285431616029115990620034366768025341770766967873619516683350033275006726276252842327287209468947821278048602795393584467743161743946496297858859026910813040702404151775218529131690485476275338114541784035201152828959399795360253331330974970374602755734584807836235142922268906740886291673414919205296691800017827114490168098791474005119332019424059117731409842178547413455268512949465084431829070536191244852621253655016016657659219608422713608856424199314121814690081873173900724224753547332642624482063603466680024543694843599035178396074410400981233591632531436950940662801609555442588447365593422159599941286069221938453113876250736555045006685098879902723480137997540768232560344916131065894992063479028007305630286153331239267940515586050298147446004464715189786317207601524941984791647863436598225278164053150938296230039149708779757892425013186296249044982430306877737202023540944417544529047570807977599570613367616902131681327179386228896844944317571647400872390021557141384414397438595098337840982145372243169516414217953435343389280981064987918494579918875044956979977912038538472344308641664811173188609171294416921109174727802237714463002480329012780311322098018188315905196872311083116546021627704808576592279647078464008809625983713187486114828768495703480118293047538230877973890923693590849925088709555588016936517438466988382993481216312862483957662276652811547123420633910591325555728409375418448761009286662374629967839063887093823272275949410445595167985491285368853547423469023895888027838522952338484523117869503309946780749552677213332593241626867628161068635256485391685424124933364959368303616531398036679483425557056745497638606759583988991113920417250623616072845941912870823543346337615793010642924382435614973874722957316421402176131250363352368892409203206959454738710285078395057335083798700979583174269137741355313127930477311471659811709834764372915604061494641029409068646384150722096981705659649308571042462461231198879328523864730621252220740424253960002860807968900842286638879974722529618067712894326995470551126407420571815717591359087747447655094652231724831781030399355102275151818377043184417275166684086800590933115561894487898799023370621140592696936675946013805603038641056226543563958562635576256785944767163319420932738162152655760727726854843615546684035255370153796257702132099671651955149604637596772170313512594555981970621280347512323052109329592452699558998196227491801785293054457908280489323795139018908167481874552510715032417233533621845889226935247860733712158373748920003793246718183714867516488693874038065083400487916270957548043700130197735503877475646893239690175524714371379392920532699953984138781428674540136633343752990656091204990777063635250461574952721717810893262815825507113527688978361015482541357523685649104614324524251610496074279922947991980435634296371635328230660290141767627245781257124961621443241746463955516041032060823803821325835984032405046598516251882409071367077945809268466954383485301437499991602796303307661007653787980944572848873412321976380441591256976989285173379439429116869823147240563178574743350256617151525574703796353435375696807862389840202556069030645368220893054531215144694388151178599756593964514074954591854446227720137163500937838209954378943201477566325433835534084289096229925463832287415426880998950842036696510089104368526457521175744350612288182700859608335371144398748198429606030177626026570426620232187929468088588397931051811110463961912175303426847708003955267896069225573506371868304398205099972187110515815607289737409175783888483252378898648588335977205839822642396281134516929665975389963134864110977491390711436850827671633159181090628044589759972044090465252182167096204798765766386718656810483337135148257977948910122576462045481302203854129239119795411044169712015735402074928791747734972877334255857897260316500880119202336152659682846597145408418633978085857128062847195945354381821746025858358870548039223870049452617525880499683598739535133522377857834939431981536339749548239360956569490795871161807742991769904949239604147112710304136855449578657262909285828812567830336212658754872673700174577507012195150342137538157222924992758432768209693081411298678895742461337167927177514697576981923938565749791279122990814549680025475847213864609462760091766636093106640258429504775808686005283975139396709955929169655468826057313090712397061949182466524987547926365956150059902434334570443183052033181774011694381841631505951665125306459241345435658079200949827152880913303774765699022981334516546251135853416260387515350516015695268063259280769241516115500158066277500648171422877278030503658346531078774582857931645373449794398952523793735971754157025396005464176860253727708967474866202668425044331751531259985994404720463243014317977236106937813492668615137864486647545956867172246893919557895923656978601786221426922359691399646062703999955805236642261571090466493771543113240056286502114488658119586063638574909173167289916100372725274309700846173707080371231122098153881667367691413155215718148361347514612759476875940107625431802638901742614900785686882778889640271796404962870412825355466434909008057031738786570287200354229257542984059436051032429910378388601767033908363195030122816412199903474624204792772787257336977924028619024310505280184821416143676269491277138656978111045768359839841669252525439418530990903573494537028375794793956962824204210278493973645192238784761117212491602743029510521539380754656181004392736307958856963248705193226564259357671816428187951432513243725985387521392183037362318817292502080578907929550354969773827968549692482350289022661781935600463997186290705950241158466711089660983743440406101870173242426050416071560356383597665699375578306148232990433640762591899856566939165301204960832035461416185899278558955673119697028776314958329113452030907900263433212234558400255788636808787514224054662165131620110645306876874014136863099250918273476663929337197325064795544264768614279072228353819093866506045012376830691270720699152885080250912477337111714550624180027935817944278906274996390719233498032773052530820279474688339099403837930451301948922286754413584586310482450962501285983669413140427236515737847448266515777795092168707343280528516742392598097336912565695473162578862850476667824925575052197209205165440259607533562001786754644686501818240821396140309966398149281596390453944917168212575126199910389252433417998861777299958151372020919154770367678861478285913760240409249973870308640745505637942372778606432497619324651617646841370093349115703332276721911951999674147550852884376629689690375953985760205145858740839141063065110503184333365951968658945684213965220478651827312684475980110172109387166110656270552748664852576997181174491211659324709960461372894259636471731658547442443011534726435237803937378730485319714040639351190645641479899854550194114008945774788901089273396834799609613151150024296926253198105599336651128714605734988564749620663595187187384838487826939127830063976549269433572145316552460757104450582496246700865137637028040870690488697288918321163898202267035083040849779151638802872027022543716744400694034776221105784540354222768890417487639379521900093318949849193157759209936958047145772351679255931206736689552477795537219692417130409980617752685415567346783480553187707280447224665765412473458435345150797055632875041695699270749087720346979099429876265603842936091978174357855905503631523337744143503605543488297273702361853337181353373167682735366755041111920282905153794013116822965468996106270719038702706968853229076537823293113833914189645590607789093317591967310840915625111160905752278216057574406948834095397042848661181229371058694865114674419983033867647998619297848160184473476711488039979697478687991422792672806814131469524226839748097551084375395473449198163139081356474497224115871051081080266604985027173994520651731090557702896365122477241314600172737401456636379138809470328393595856150426282350123458736364527302715851041333719415712662750238797957461984068005618653798834733862801150633621357240631791748114153694892983849826711744937205005089854748233037895317828831162167599556116929699054995958195635808881665512818647527396619152242915363446000739639987751365076465589259955394437830082160305612335164400697346206075336256456173329454344172919025650803818937324987729467941851024827337249994785389032484416092208740380668949247582248018920672536743736114827742244085421835239181116154454065209248533673116133232596785059966835518450994396613036631223237229596648502624688597082610626964047640528842446092003402593804648139743475788247595235967550648711712067633269510201470451636398512352168906635589999488807343280163399355926249766861665746413243017231319925772030469406109254379831865429117834476497117085172837126800113762901078458917129579186174622405237942982078871411819251903871130267742181947883098033339049662030014263059200937042921174168383013619238734307967504046748023406715141265759487479558861073690980914707630556859962230554403866417786840692960589197750127218059881368056816739817797563501701386579505044593112347241231251593038687540335217956993285782266638400446816437418327821351506253041861293727504360666106199270686664297884934740335470240039101026632814218308179681261816070849090629195724631412247604067099370071172524200599891227264252581536339927260614177244195438595079732565976901322306117847784880660264547876318095375171834503834130900817073547590665883964890407324917775959608942383986711582754543346211852956759048772836424219357044551989037819476704433835737835521784566765352409304876600253415664404757718998491898149893376047509861412741764633122373326228287618125795454594966245122759050485281789700164904729431993116042284546611959431834892410438355107669693581476129351976579908798863359100535741461032805930906118528063713462353511410728239831846085007145860510032168360920257655579343646755744650247962923601696572776148511721984227270726102252739520677308595352331256441711848173683159267260334014677772796164521652220595460423929238450856578528529437872340569136216201924576899490054718180840538395751168674277668308159093278486387423102416810157260800297300035213157530707303372243460514122432805256165852701728926766273728523978360998497072227749705933330414750706003542569838426230472861094566737539453836976766895073626153890549918999184624170933404607600387180925761622645690492049521994225204958143319516819753981034128834497847888846559023409895022299378967071179065611982808115400170929433306651046976898408740467801892379372028963137784338811987270657609646023102663312331085324723042848966705060742371544832731792621464438474848294077226747414401349441773543131633938943476731347365623209146253955451628422118728515548241871586684928781429524015642213833024805045761548715990262765561355405523672122449325105963067725915100763867466972543721620240483220847266970634440361898594167189687694721047537966737521887890390143930022185145740374779498784330581542289250456195186644909494020608893259075603215413465846428174726932411910361566438214848078192178595445964232368202445407344587853556327343957687963793666843743775890493458622592438227764920923958857913199143607853908436852922493717097530681074997590796627895739416417180840513788850292592117244801129233375559762806257742906183726560112383861208571239023959571116097316802680111712236860250630773085676482127774398561845420959990439573928704723374175924184739804987335552553522430084787441033576744808369405278620838820518330099694572663411158198782889509374290112342233110002937014845192931026487168586367024295174827678297201989769258657735345151117394105274848667823036352168886781115350391546894929722546813026078322883948175760213846437559779914450238583494374349854236303275211782335317775090880163066829618148690639838681326186178229091000256812761109170858899032127466814314506909221586870529177697050889813114671521219258991653352903325481757352614352418832274620403642596254978615758804434001152446074379727897010375176585351377768405533230492024835884075155065894954777889027071375298312149741520604634066415601559544428338765912834507309512136633823133539615273152830082058498097255520594261491387880619661247547867122670292045358483855903813006535340002225865891691666995308400794512702204679186363789858619075933683454089900897934893781078903063309601547246810272188963171015180472389901329037948149566478704269371369610758168685821398395927545681210243692947395493987782709164386759352149697014004424444208554102670385498691111833412125643579076727169684628406442845104441128554483385324981010757516854283503170323050239165541076743904271409343986636461317261335499414926276839771585130482891546737952265243748448888564499489497089565452359607574160369341315167696626558823555055796127470405976543850559456155498649289765145611963035957031600569516442091525052525801199783034501097094475638132515167584453780110861211677080108479981141210538752549307457198470925611408850906210495530730712319380626213346288036715219611695628714994654909271493708970392377254096285400915526586445410360084287795713418193847946821757126451944300510725605469791793876805920739449954139568169688766486037780989726442779534114760098607945962847368098403323197223511781277832395309974258876432959760183796030958958586724557884031652224790594977003197994746769329414542652162644066979072862374968560025085826121796466303965461242756001749038580971751355926197834108405885895391390414133377588386281189401701533438997389909465352716947104395264851314643479720089295462447888080773189206014901918235255919073025932843764596276513100071788499525101459429933987306186580580665584941305871136853954979839599962474186030235585930526653276390478676318433812098431418079522343856195846199871997583310490756074534478577979540237491248574454339141597314395850285071510709252242615499756684655435550285185243684913321843199584583949438003785213806736852024938983813761170158345497614783100073154232591011505700260856595130294977630553222089027483190097284555057995517923714429734728147762519205103587805081624473072285364095049294298079532561039704361288565318297423445626254454719184569593563847905135383337106133276089797423132790548505181253214749124352538791029703512507192384453477936971913329673777261773765722977281446701352691873907024617652058446738208360037047923677027919245503229347795440507654570951686311548294661417034916789011127540495462569182851452079674590237775011459476166633885744366865983806817237131460281796056849572661838863466110881001473071102581186699662250370968293610351128103742319340779207204323489475325108903042469058066546528832794693340153820606047887151428923875196900316754236092648365707303102221885522443521055249295881851130759267815305588198968700411673032724240787050035428183993688347671669482124182591117529003707593027266759616209527490035033469730642093973113170567253620376143844644513599893573678702353606160169233048348241798426545557494720876082096721193627072886944077082527361320914686011585837829883491318658420507224567446510863585874013550716919916889068598380362413038965402183331873053833229160115949685421463858692619664722901209102390965751063386726028946078787193452275729004540971875610630349972470219154997305162540368524175612521275453115003636005990026138570694812101597466356766490730399949299793425303425769906745640469002155117533523341576052215303688454913705117814948324293285017485982991989724279274315026974036408771754249645920741689323552923916622798170831164963250540143765172711629052394702423301953564776352000960115832840937927550444315783313207424184225499538890736613454245149770426736366868399299839788010242451178824296921185699803948127899291545555860690043446809127658386238932451512901478844925048951282861688089382940318320246842801384200029566086284938276904265278666863220458360523098673990568733378949847421284201438472455548579790393203049706729931934984335238608867399130459184536966482227501040545017504767908533615516510733500686836986521348883125049822227142965687961238980473911879474791336705336412479495003190609328309317047482864664798286984510330381324180364450856970391172121833242881019945983359260382285432322210042765412262113618288369445133604690186786829922591299449987283467811636253584237505469064099630707712199567116818142309504472692349337809296129968615558630510050786022500499591331229937359070690556589217712902077614591525926370189083111808157060939659941518396669771235870341542872091529517562811010248081724451232370729113283749486490754964421948148766586437402709588404736397402948768975415537531012612504143407136377535227919908573674704044052277395265670250372210634349983414081623941971013865840923434513856507474048835193721294699290649364295480101292592597059789356608081225564816747931967368517832520242010157256425088261977236639793628772339438003189244248086558895686904733999051747514898652985958658961365460349423883764377398970311654522682743722176205415313815849338916278579500721972477631126476424759943921836022492953791190760272252357881902224972473295446438403773264846602032661249171135702378606043027630530850236243129524369508471853656093525082674866657420808114014754498333163780517937799212967136078317182680411277285864202113699537724908796570306767373013626557980286142706219836949631321211231488656813474504953312118440480623369984800306352366790551047182866251515785803754097618059405127623088335448830562350566829124729559829920777315297257145065156420739943885093494853513599700679635319524946749174477007230498259085325868851156417682637642802240029435566619320805396244925592653037225278388534828219352922188160379801344749015392984853171047532221206629191165993567415803250348585748738167843904397021255582702687490775796370901923092691778507954868474961811135028325130166195332726588025910780257040543915776424680820864076834469741058545830583522886437066679217268238565711516411323121515411817657466458219713729787218237419596650581790661235027720665692737650562562750704005133474009984118512302519546995917685948515273333344877229885991165791531998789306211575836718674145628545744484283593658256054454260701089411605514986774158769323920605011442544366366471603068317641859361756398172093436379476127295643289163258833489472599537291566681245055946275704185631310456937390720307782452738499448613747410476486196861625661470160599768286005624172298325075042355024683011432376892709140273509715107527695017013309969524397687893428145496301832639212392861449307901677298454432349704598831511268394555732859171873507527658049535045926819445190745226838029138194595165501134602099817452172798659508710592713517480711011586887030440956734171342232243898866990883356785231680984485720862403564486322784204098125569648603546218628761742246535368423964625879332613973508263153812429343734392965852333307635783212993154887794711563934109733045065159495290893442308908651202070942140300758334054559416785628587732093722727567611688126988472079277694539183686228625921946771403077644925132665127171520854657288822608868169466606235163976528067343871696418189249087239675405511540940381331268125675116199446406497837541312755157231398374838599687664241290618890027130195642870797130076738432815400510906519327380801291365146069393261585149151004492191960079583853696392887065760472782337902467999101462575710325465120143359391810242803109379406374122388382597526132479728762815038253728477850847388522070756857402840011374680322399437671801113849995718535260746002007231111168511302949090032870157385799219162752482284280256776334246349394908111184982102124708295577413358465880177620947932704984155857614213502942289057653338161946569748636970811224208636733798061750035894202303463821264994236846567140857007764063994300906070498953826989494952540104647070069860334583730652953523307579696723389620986829535986411252306689925971903489014250377760726522790619553073910728730353114108451171207840803007547711338562396600773806885415799336948150025907353366418685113451407645415531412762539426060804945336169737255342863975913723471994699825766399648791828574509947489707745144181554239900426888366862806394148516019225254211784547278534884448373323076938452762459014783776567805831031096812391240230463044193818763185999943750067159775422796183107548510882025341752443077871347626695673762224010617046311591168728754359694043895878765740902393856517179625614888125801146410799628604533327709698148665477480589626028148034115821382320294733550960304355444036961419928285893217706290957899774007615530882645091352437885122956851669764389651155479871084769879757097665375531620903808447314565135942072688522858859343567405525545489448354443900868752737534722089214025585826236175720858018796502294683380980172559287566206976321956553319112690563701134640652484688699694215740082939799176647931049061959864105270262112726091089211028405497295347618897542581928855804022634113665774717748636066343391659256225144518945830878731066124452438723990621018754952702839615987184757107551473567687970692673545537217184875736018871902543328983177592123017793618331966573310516446525499386963715581578274227193902369770978035134828996222142577328756075371957572378272257055491156946088309347227313798005130254000511686455169759869018253656409785583285897455353042821484772484411882619158780712087601052660859953013256413553405564109287212361520845193509610717995982101200390227610453141238092661069558915433281811357950520061596836046387055031568063309416175214689263488562667272559278878454818590576547276164322235731145180843292518559273426139511090443927330019126812324784731451145745564101747140496105269342660199181819183767538961103147469187798788855333173440213572496135155048253705346234947233330461018123795897951203840498149650501091616923469523363204533744540788134834026827666384707910632064188429650811096351896540971955503839126451289343864340997970217231470154831823457822966954708007469773374199746832714573556429080110177451022269482309308355755247057261131567798714291530421494409862863374275487846370876973177305659837078448828116329405467195782395180298826206209281652448280926773463943938040692419214682655362590720449882142728891355392191878924062809073557838758908078566058632355918359224868999272493310616586619376898201414300170986035175971296350889957369196415662942464354382772261348753994937149480016628467242704912525524604186293545219239988144703594567353376957057302563890369284999090131786942247889605555036172282210776955157842595899825634333424573289060575940131834925869194384520530597344056064800772501241420466439641241110755465981621684079106473807560926458874888018171836675291143239156401448560333128624069008337127275908088038494916004224263980058191162580336850352655245151025552522612650520636683784131635132792974681136402510466695215422433208192078375703172081983998711439272534197542739671396535673022679163212384041027093244768809549089648272179611596859795967513866824929415271385111200465478416649627017697667171579355745527011782846268943147646543720050279544751174223484505280010012325896356457995146012405915746928873224625949471755371723782160303454043659609336396785436394158413373385601903220075251615254870504530275480911761753687247029240463946465682958303231294054292240550270102857139854890764708689056635866893126118301638724323032385092001416646916023107509673725809093104577124110442507520103198604123309088357174167768574057049596413392194816051368301804793234986807830921891824118486944945203658932036395699049364729251471896181202387910470126877881845106195635750346492728545652940276838265359512067050244858218287657941434574443161621313350307746303452337429625363641789900488095146266940792957533364236860538966763986060996857498617611658459551625283705519798522587956006930851569013389675790080249160820895662253082237290189330297027908266036555907007473921452693672367128230081524733582744956952068833968134728379365399259870527331063919962959579191299779530438020520813755230521766420375267822929411381505232112506681996421465100150661801650249058189803086614221568567950229413619234489980543457632984616540541400515254678562905830928828289457881022328588321680377289047937508588302957901549911154439695345259803601816452693522726122131678129399417232319569723916081990563753259321809192645836016814623003618349329136687079771052870593386657890810655224559317784344606967611027937374084673183972990050339939715432067110770239438998673347913039741283564517654359672352287996193763124361995512929758448480481224569002921616737689389713018349522469741705842907376715320144224874203591814093488131023385115185941088814056927257180224820672713734534094737925447074040938691521449540309593150677918555157313498233583568104874022576530989091971578924905862745509508455315563938489613638803877144608986417057267247859005436165323328548226400260871566245991855051573788268289889751132062685553216744044322234388278432048695554201897141513239877433425994592738780313753185616374356342968162553696997245278876732377332469778512086687252884495728788884610721700487645291175149368606853484964896638155136852797559025229863206876940769822392855780583669077528323860514671853645157121742525464185695278299881437107294205927582913413914034372272511785974604129606850205884208352480544293648039666342023950275388526514493107953928290550763518972056228962545409204045107406784662941173053751838649499421928355174024502911630306443589734095250774189776442375231664616827086258157465617784821898425267101270059141435105647342320256169227129646025431281080080443350071120230453375529326259096123348492341092402539436458812701643601653688101322396783984664136200741402836002031923660404406001175253283610849935357900095423635942424085987322940502938468826884729881198868045584208731484603049193655989150172554945797956473217256551164819159149218434185494717752128358653213131092109100880302209053168009251808398731814560193655830429572925755603540384021100669537314228224614464424102386687631730614745675799100234082276176965462540627901267826218545998584386031927683868523806426964728106112728470808913200644850279398438783126958706356273657171792244699075048305705953994057442374749224937879152187123070840199816800733315551330017864997629101769038313668656915913619567901633202519186819647737267606463112680927150827638357331511951418065880321646014906097912998202284463869803423172822103784904645835048963725688040808965260081459172131069025964526460047005545995746908167517450749615083485281336603687348022609157488411063278372828797555275807491354390678126298084566041662477282370925531473593252197281151436346366143591831729943839270900155891953003117013244221768185525832521434951954673395398273647363843180160122231358276598571768413067181473911140792236546985153553162203315588038166875703296937011814363789230544257674892343495145734463947220620484504726986088236765399828872713249624998807534688495542627837768145603443850692750944358232870922761035450056359745656627559294907823542413498802987437290852703719042266151867356632211824396422387884537650337019797543224335639635256119280591337098388731302968997954218210805024612544270941501211249070096886797068517273969476686764484582033213676471801788839095623775654615837791661345621610848309239645681603643628983671621587478968185052384127730533859154606799433476737336125870639182164555642567506813261878013014197996163804020956378677131278215707287468964605698213073028826778810576396643386893540875260074938423336430903750614461615623724212434155238735316680580721956054285469636479376612487053915223224438603364985310343369985438887958689004096402923325025040609706549877072494686028848514047521937177947146303314497139450474863858291415234514762437590720538659473083235859428815867359233815715710269558703335313010108422762710249364441063313317061312995452863211171670508048658633764963084604376309500887372581375987687969754824417309093068155563746306061363430712554448706156955271456811544182363191871124448458300341893062908688665299405202475893053482960917462068021180044886191583873182149584456936575170366879581011850639082496878886286270885402281011675777157210867921822960689478564226409931855274563963090148092539756942517255461826557991194504887980394303792657227019309724285771518544116157463150932760105371744896052949690066552931664764424717576612776485732599024748145276226299507695082410653563338189985873619069971681483429917499670502248602871970813433772442987808283885398244842738953607100246941451968729219488496563388354831366462329545032703956490121346845855058824514410357136187512089924379633350273008100372938998232970522889625415194481928069816569354079524125784845413980770300964570390447400320581923067635832688389901912891900748538822120271229276347014134558104922540442083904003847139994735201075435948416378918603164114053861746466801984111943384267122561663446986670205527653826170525626358647391395591964816160973719599226339708362504204604656755116709348738509554730679261243038091619794034617351928205642981807999316896163090303696004279016250383419968607012160294940619406490247939365095183410182401186003812498518267739101546183864008506758612715920575679256709800454159530224748107314405422348212647916604233164499649139270182956306438990364065228882251395380465309918004605746561394277814182577443250760022906295871931447274123644438293528293775213051380042515738965490645639999864476019200962006047230433262697853641918153266214501689044468481428266115603969408063571597507444913799210530394195888068036756404136305869714549663769705650140114404062926129897152044258795271248487321536372271383575212392373232568758303952274484446629402022992795149617365915971852409852691599077817278309310844979334583663999614723832994695488208735173303856823510431158750201105142531736831226170442055697648689518073531251384153583006118917225787892572867052200491322122720890161550954530301165358347393593304289523956966043232077490731612204493024242639997383680319700581762774873644397452435442424412257506834149333025334124298652239577669247210190044778272548105400973180548076651141605036143230629314619291004042101862149427969346360626513819840091751488267628079327929910689563590389774634874895586003220983970216879608316708051117223874488583603960161893312722999342089185634194635676903883570601634721287735399513463490683586875895324131656393508020420293820520591479673336322293846559275145458187375482578546697131116393686494866972093010084048387989545726622640079722856904806616119610279652590196470694907741021207647228063169018371583957720160486845773973452138416218610861189252801494707914057240476981925100835409015308326145100650501172342537142915986883657062457117434473084453536789641338170107142662258334406879692748732570403547104603019213471404435727279728908592194727619007741102129509080334598389346515920560220064629692369795799990213642872780078299213465752277208479374731803853743537788072055252354346277850574189895653805008447959672194918726441187578181847519343265420942747434248803968765895174460701591599086805570519934134927713726012375957255497661210777858629357568232105429750439635453621163504866777532697953315726586341281189137141946476044391041472300876395587656141644161120942298602988108621567436460239922915637193549754747307417738574827043150420796767510271333805164051666513203362626327947828985048170416277899064887761058988835137836974318989445504512495000479895562567444448048521172094595817295503542422566453808332215206614812152606547320930706493977466785507898256883412458927320233705263264410915826552719195270835005799517408140394123675961125886816617943263487861454181995737074986392096527124883928044219934581252503223246256103642820306590613865211781826024237808349931759431619478745355040111246842176461276110691232036095917944239767750168107416488359705784024547400291134933229586367905062409222035392539792244446387072817101877854676561438174724112316411975758429671448126668352027464418677572454414953597668750401733685953654950477800646593889146807332748277866314098497011766860325767801458381265040053982748223906348936229059530872034399096905448028581790812437051106819721926934551549926378150738497181478996945514124953229653955078248940889620405347566004721655645377041663081653781444090274939917942013069152198252025426297314781531021035167535097508630310148845381253158860575341697810810772654046180753355589159416540611784281352584134084659116055495522655234579032099683242007693538469290686245186739061715708055738924516486700244920316201688506244222425935303965882879674982413330876723263105661123200617446799822442089413159638356644190082570467446799422274047349243462129939963127323618645442278319002707162442972834336747696031835419507626891561932386521126081282911825846996496485887287987828414880793503663232660289330600431915547606743154920101694623695326915745770845319118132616979616615563586844399479204261107392358302548887284332210467740701848894750777079254866225399476153022106021338111899320945534867655257371638268129818381120914507439844201941752682233384329118810563053007405557929361132272793717517777803911314335976033101234578563232735449492716382575255164130987774756414626364795814621677837121900159435364543371833765595789912271160201793505601579839506040920694662523597400900337002324294921630744617185123387953595951067431990716311336476882839550290196947011325717540584746746644005405610726269162483515811014048404192733137485993442881622311899253480064344185161961643866789399748441611848999558673953018006980440157778475651693161351929249580100631220418886438064954138589826324703026369640366477716873542879558445365921580981239313441174572653986690905553662542235912521752528303938007786488543593117815470211561567011569877348728569040937029158177385967093924441723235073357480343670137899140036191975737932220684022868123088323801922292781132746699831325268016671238215194498887364152247347987196839858543592924893071066834503332613302536038251007359416383989081340078735158800663584622718704884445801423605337362986088936782631668433937695241066213476946011566391759016345279689746514014335295448133618845421908052121686485758894549145142223976417815594442051971912261357130306183409542197561708389894095196794475729045879978353404215688697069740052999482454699907460748094846861141246551608826776875863428198440497991991890898244410275667693320116896997571701207725512545567732188649353742256232553841605835306760672459452717851869797982501498800786401705301789403014796551868975298672286945654946136439058731568176294150280584462202483853865481579064097499776607545379502068967722967701127468808839103763583182522986961295418318263669435118986519476245592202104927241837843144871977264397524839390778648535782171153794438508233617800033295729445733567948957604933746539831916306790028967403499962907853886416398005735758096598625721793817268799470830622869931992395492885576651418884318440581469315967763768975045358006917441654334653244640470836636920132065302270747736933170125471979138852751033771211097365100596926467195280144994874396068001568518323316723595644100856835656216580153282218398516058921214895018460976867708891821256809031147846662873815737425358384936728472344710090706436713399642728152026407778577946004123485316309075786296881221436509628584818929069393733316815204549237320609379456287638265483704746150463552465609411054216999586899723283646875296734852875943740783153024080026661261243233466679697376271588594040719235337869864008068214679544473303333606041436228761769442909000424355281216837120771834755722447832831008564223955382065619249783695819913959676180190523758327103272826340718536822575078220968217943334152085542549346783423325925456112308240850149109128322567669687331569227221008076190885762223944129965133398278877469745975019337108106103555204510082769371530526595539811742978073239696852222207464215979152054753560451328463727061648279362532257355461084934998840302678350668555458342730623047453305912449106163565259130591288841196702520264424531652979572417021842705546048777408911066826619705101536380492489186536990176960655556539247939892080960506237632890282530637794484596290247841452501818642964464389916234140227620183110746561268171014754722277499231745534732700718487810022242798391030493143946394958276183366279268769562984355508728447210621613356585947512622557509347392599605100614146059219222083510987070386189753281081855661421673889522257935237180849732142513279424382392746546515682457286698301230943066777930583194612446787111999947737730043554733491660049767372447633639148494044707945048963251815543299516575837039997562804211973426124729886828395854849429697432399760235955280519742015025802288689427210331419963069457087464771776369278761270001130016445384673565943423848334731913627752508571557657801338706420815501080677314750995750780967908608221997987996501919872053232502176903896999120604816764577838646453070605281711328822373267375383053422708911930397992633835442682400035018368229408784580281189271520006325415744720861994226059427620163227575278292144968057554605556355843182061196829659095607449419676553769266098752287927260717811970785196034398275549797381583445273930475980178045077692312316161335438610011870939645044043847297338800706993581830769069059043199999262394554621258634815382508410572269954602878438903173255421854536969566442396430444176891065691321624006915994633022236391684447512791888557027758951368025227655835496081689872428092434809663753513156019300313634281089161689122775219629032001075152677774508093967937615346684920519646244878065057020095430008170585830897876663102929343897715898220913816833848389598431892454917839144248941224031743382632088273472301397881539116951740278088296457410691812620778984414768194112274505354910726749435001185973663484199007460223775839429595571982073068909487596647243976323405538502444588672438482213229590133803937217215122754850041626954706062883021823408223392317773489915119015092050590704543706808324443971229132238142005884679106254641079290513562048271529523299193267678717927830880149430153293516818663513865507426734828302648822421518248915341624986933110393072346873586147164826354474569613143613724001082960186206142236277920186766703728341295253957421870115517573176243566349905686838791207273675007359658889209971925334377946387646685610791703502219170810436611522063508209261900961309919607411199183402376429923008632867748167644826915377963223176972804036054436450705608796928403950905661722630278289766546324055622890625935265385259888921362947931176886893463145400770815416648309525143034192340179299193283201025764544249076345710155558484586213708422541997158784390727767889721293998112915564939716724421337195682817023578455756210715555800840344697227217503902056810793469318938807305007449823536644861219313350289443834331867557001532019281867948365128005290817572295905674956956287614816177802000951967586696381287139760882104176565915480893719844050612152266743430693420985936165661831210518089243669586139211456223246433689176189794004410240145272061153009371782754015520538164338815330480608528331386634305288431947920595380356175051166718496356763059693514249706276013763034517549472487033588454231630178828715827221646775239164184005320924990447537003170256294583142547274463736274240700161487994134589998722291308160848588641486786806109606224254226224851905244162832150863630528504694802016195759782341516055513855616124956087966094242737564504333799150173500569361800458915726069171301455229303509586125955734947460490759032528832188769461090733080011594680880658732149630056287292848359197324902663085917286453208852556340477532480458981045703492761301090785424065358908486021070823591693171989933755803376626861828471093077391084560467719161443461550886461720491287979337999940709109073064809258930791611132347696740902462711181951960982368119572825367788237502891461177622059152674930924237558832322917881152614167358740605063395908871977325622726495265279124017733126929911637371867275692769859917610947817548899375213445226542309912382510503410035754782561272592534498346703535512500272643864263349972540930448422369846449037609313182045530653355416610216983773241680193781859675991023108848024488581732818646134458439417823406259856050855220129929148472111449185431464696677674618953405041439428611523010137675478903974931872219937015699008906198728031309895311054266689799642190744292281490362825253222724624503034920164342900428186271489268691819537379057372308657391115077525009978373350991450856938529968941213725217700512536540531998493366688698941468936544112974238339771449241597150275379226960440125500705233971246381395522534137067861838952282688707371663382423561788526579137474354427169317590672965989008056705392213709065531912052456000253240490405948342181055295904065011827166198297170513961736485079540990955385467480682230233522461199209477929547850157426202478291494429157584132526042277213581165721559067456581548939290147604890671448835315679313014385931651370798950438862166138828555325049931105911607776639762603855476878139989831181991430018562067515466916043756027229334000164531085080420291776437106875085931525555101000560276965133538161090748501225166089504431872176091925064933621892453572493277065249612038963784153709316950198772292135283437679730182768680661413002055039172241184847313796424156619626818937633580469211864086914264104437581298111023266314182299780185846487400361932480798117663314670628949540319228581891965668032531232037949481694043470036876882246960650629869041270763184491694391413473222433972567578698113491190977218059039598615514592649764612507302756637370975343983667069314927107220807927967523692112670890040591093245612501806043087330881216561820153349754944177169272838189427269516432519048128163487279563311743282821899301954781280456943899177050680327599798948856507916381546657634984182801470905083660985220700042974061059550090132211808604217159714167759415991969346081001147254024646294627482537735483414871763978667331768059869638120277040529092520981468354316585421552588009082051310023627875220322329981553848129861247415516014856954266395228392348028599436253929156992452087259131928233603986996124837027767082360536016260396110333050855055676407043077795352829136115492725478520363014498385534641849869884388073706958441877406195552352808155959187267831764540910121537446755326514159255623784077643747661549000298624219684795631505749344280037212382538881926509191430762190444709381444082812861188175680649387514045634743437143782396426873760642769011236991575342775706456733925335832661830188969267502493652122130004374156455077397607661974268570332369006809535051760835811212315156017211767220949017834027127528947822196585518326806436996228125508520187054467553254984485240440384737083092091085410432255816638453943060078971189665106831218648352569387173993063468317667605069265313958927499053371277742594293790331443925852105728032021269905303821471117527317991038206271036534691944195361314591130117671361950340842047411723668862907061784115708297867386596616690603601356135800864827106150420348437737785315943587751991872056148048936791976155051342275454233733819848676874907605121729558371119217510032656460574562857630828517596241768510931712741486718494755085623015148094112079612565380341098077598423126327918516022640182546837979257424919743095858071939861820230941971934944495926084515926266122515204941578514532157565871563638590195446460938159997943005242743583540644641819436992654604916701671330562100229119586888678839680244220541780123227464642957011969191478277656118356499021207452669831687891615311246278205255572778840750704733867281077096265458435036967365642703103536461483659300563896334371188299922088619016511429886624516601832239950951752524359783206077113699017910790449738435727054334757950854555203785333158083779224374098731229929972109938421430668088622597507984002133256903572583804322001125878667887611503922157644134790311923899952384508129015692052585416402362458519898163792929550686343618684336656898649854456006066848100817542183570584425575761130371104957572483135213069663794463631478451175274369976041964527815574156624031050718073296873757199217323882402319411629637627529991585648861026810376672918306690379876468346888735192860438162967353417000998792708683053726837807490241313768372237269065150414904395961579974081350521095738677282152122974718711493582040172033370201700960892372385241843699065072464755448478369415417047003924927035449230314954556769920784572172483068068363442308512980430452136886014017811458095225642648448914890126485377285788784291564942348080229558728684145187257652639639946454623584627751121162224971395737857797995017246600382867923740259673073910646358191571840062890613696245553899599813407844121269625123169878261801131200322381412775570771942165741043793228191357389844470056534228590679700285701029549078362290785766004311476270494791046255235184890402828767879985467665189695547098247180725390450481804413709201986445061959005962880914928020096593291408641241628119022518567642174652400099051199545837231235553577742177121239910129311580601634425287964812550107312670834667083268274967521587330777851178914318057464620560548474191537532211021897010716916415115221821306448541874204202091837909853273469289179090705918425806194714905165136761056625411102072204451916822477506629142710726546303467352415754409462534468067065742335893508556838128201155345572586274604751775338373487403692046276262903475231357518747527248101254963224519520468883446147074526388781421805075169932407368473083900461660889378514341789250036159398080308949620040663336340581908422823519485676452430686746237380181935519997600552297411991157435761830727040277591023518201910608617628119358382206040303355457634578607657443520840137346665522231061788744964629411080153685292872872137885589326072082090856350947556460270255355412284233787071304904530754319763838966017113262396577862269745418448155836595025464959353948341479880078378610141215083374799811594227119819320434318773673454586406402395819803695134513965703112210831793912894153823832809619475313223638734859843121084762777574774095144853154764454040590127989125496727636673626753450465514600502584653715090673179530042213701772981809508915167829809171079067038940745605981329724290473726920915027488928190879064218421100819484243002947139383809777567684523679335881084710825293198542646808703367854498192776168431286162600837836857680387778542648147695481450647064805015028238276201682425497780155129496090385970651394007853017662466878376832680515720419211033373778442885757366159353111567991101677458824935342770765048963650698489149720662541986825416390876339105511042126949077411486328252300799485627350831003824768183525744244197564181641929834891795423537249722915313194751105239902157638036162373498916369173477164550440401336774571267851995229046189716640326168043252311201413860956599405504604957779565110346890758025531073354125402882433932353820402047830295726183967661221251274221726380352830326720705660870368265700890904895402098800419312193957183381304504640916093597501250714284601644661347061143667463127637750271695574692089401702517357335312895292532856603446741617652098953004748271077635870743415112885047957562624008834716993060982757563635230392592696801910664601838140863872683057563066728147409852975668841734610691012956060454645736005395452047168878424599369685883005610511798335882664920638299028209957152312219219535918104695507826270613432638906297112118118872838475395604291144809489000630122945259693331408144933563370830633036124484554272574244318138414706130088258441804228482595329820191592439354073375235923750697113142482339982802147298826436085629121482444481240473401294139279452455390481092092048303515759874493455955119965852780464883103078838860202125455070576153836594932743400444653779099703961243382870234121142020082374731515464268348491505971096877918884182630206036781940609422380877031325209371872494124664577289856333241896834078397587820851118013832621933933693362544849336304160789880841508127353058864380436241187772585559867652973527710562966017391226241117493886942084936488213233429941413207878351988806685400347181012680969573781230465027649556982825995439494902731177989234089658698255533436837581059931610372534490454853187526651877637798298735706225549506056331974653843573703984974846358142222166644886223037071822241632325863610854819231666850225737669858875073696519341462603748041980424026215690365983794076536458866207357709804561439308783630167595818405189681671562814284313061461120536099815638125895107758876823744442621545935933402094148475204602246106833719816457748768061435851321704733191888744405858714676520111960409087742625775412673866257814820137269000262616125692944007255088874665530770575035908224537685049730249057048664437327068844744530274197852263822941130251588971461745821117077595205350881064566018505449382807470711798258656569935845074424851876974281897721783382239052769029330848958800802429642662057246601292658793185662402050829005131952235939343671850268084799077469101612117962316085120954799210295716445007538473759343078857217495223944097485270189377465636081299534660651584702055032556065717136021961920255709548365973349074309384828949247600920811474538732277186230084525560225081542215741871853747985579192808152558478330408232575123819702840416170288152398328187852260291300412559302856193454064422701753314071666673853762358502913465852876182803853079902343403935177587433180114475434727033826695187055076672487880834100144968442803627921426285661832955047761893046668707266079062107417548650375230896967407556021628211938249576548175964649207145084261939136356663678665658645496593595609709912467695072232765737676630931578783702498071039981845468592281352021126591224625096826032124716597071641739913095591925133961440432110674109281052425777916226747221424681850180248327913339616592457552867555100369898812521523595648069628292473952260920174241418378247242738086308129961562963400672875928288716057323388650743640105108501599400975366898935191560549997441003806498638730876669080677903717122220545351233203647103671956228646185423513541653761634673583634522009941449220414522752287592020632338945065503658925272810138053134061799977627504296454920286400056225819547778829950070997419724811350868212798234898875211585097874170423424483640974949832610071093426076201601247182226223688487335796072667359428277360467009284041477812972576400064281385060126161996155484663190138127597223029340982141839928997821950368040805587594352072739185375581898168344805537066115461044243157084002251267740192890351512747926497890888673305797243601658625328291774983887279098526736416104310076986271646312187883101284757985732143398100599470649767503467920840659580937979930030193907894949065847979019867904545383227545283158606206503113958424191761390767359531151114509111127869449310941850527605566782173281006244288353897264597965967279284975842325922199411262056784146745112097861075897942193788117146897908690561912206209240540390889218902110246198707549971595194499799231425343650020931297463650101304290104356688804506611832769677673383054908000297475036880275371477125762470543480286115868927228436406986808875566334216721848270683146466608098450304665825832920466896268435669698093118375318523082422205763630486456044230839828808192483202498748627302140939914086576958264789741137382150298729498259575808036747026955661593105364320880522701098856023902740029987346765511074804970468129617031703667114542885784976940380230533975421770941442663712516416681106184144024150847084653948120454132603571822433236213957661598992612590242500637877444888641293163198651821220803315201900408064269754162287174005312797131888674335392014391717241731835598646193400125749720830814486454531540823509791930851938417225190339872994814588163447856866455414555486572435343911925717107291768918069591034376471485777683251922186685659606212957741858792617823530801600031950146595055775087734806700743740487136178672604411459587449589142842393830655522437898117061527823144195489392224785843596094830590904978514672685740616140870957692378894477539304099244080192427943851548008186800004365932821067954579713723367829552254092775327724287207822981559172772741037679692664982975435548385522243474187685848823555568882463808412091047477581429830423589853279469855867784519835303619666134904123462682861892468655837851721375778510419743042812783682808826580725927986423428941618105275058824067183778285578721848227361943176037874331116206932974409638471167968818957094887868299515138288149419857907030694526666489238949774274513242847295256683242742169563264296053478427122323746184018260898481430700141874126435602309335660552587343523009343282199554352479905263737947116845762637044863650191531606753397353153914344574562839448552990234977532815012723633863584210683052349380008700199625055681469239809383631831746226275566567438824918791366454161584639353039335341735606813111733024647707080403592015417564924585736481289651697377364715404786675282143807100290944943977242141403610912393965296794097135786445839339627464280581615984129694575795561312246805221811386831165193024661105842450023241967915676794783925309619205561652584405807070972612454354979411684027905661781562106334755885829435640916996348984596591374299479058328408017375333522582026501814309582822594280242422007969714485264286230193491918383632730249412228756333957866664375471342503942799947091840423398154315992689689445497073063157734359323552917178412899300368364543832602047095518910257688867665064893958848983807716777955760973078769135077299184949233160764707634179966211559154282176544877429854243150697403425014296779811995174186609468537273595362919488539932059691717393899833003252137249814654524055358222646151332237095585328294188413735729935172053948533908078851934166320260126366512330355346003297894284411114889940484738833601298266622361634635771616471638483636873351357474578654879335063463454891436421881972359652558338974099405278313152507551755401908008667408992264252588003768733481694322745965451329769090995461106632856847077414114222707678675257616328920634716538764865463329906680957807696734586120440327232902301671058789212418946750957380539741131467153201448487026999237960577880014191243438847535457262888688181714813468114680352450850158916979847546236252222333785848643814928317865112175243388122950609666663079637852401056453264117670731050458292322334029753583646208217668876676753334546043788976227594999720467945021143214916955888911892363923989966034967901581500760758966127879041805333277158423754062538464147546118482724177330802552182631326236213133481567619795855970464401004189333148158089087765972257998399736277424564649960678571171539433153876596150298784340977731356122181673879194926613076661774070465676075596556157648762908690697868968734297480969785661758154093051100904237901424687831870591272196149303322787520547397947420341293121033484389242829327624031051536453536212870909515842936036713704848513330699169077104610482891098756833049435500437418434231025844659606517239689175574329668738252680442806030444425765475018504558442362610719616659636783410316924032928336205765492721936291936739092778648292181436941364852731351738656355824821069256727679944965536701465992811586754956762034247395611884342375325491234131779593349745637355545324815148142049625732298737284720513161308250817649122916255788116528653055718936656528942230204028038327088917488246444373655695808752191139469203233927801578481995439610531688270872671946731127292614053873868487964279705442268111124762590488922148798549807362290435974610925619737321504882147988773134554667377345837268854147914343103075639697699807490113668246737399515232352059175108019380923665712271350720577295048494103048413804154388553523380905245366939507249283563059358720171481583735803814533924096858925935975729625764143193618572863676752283883017404890477181008747058921675800045393141679292965438130258830199783100409538247694822232728459193283246673978259254874563948040580871849360345260243554493043388495638142569926381228686179912540314193025492290777428830624368169119849054224619911536274892727120737752194287617105865286211953978065757681993935205131763706427105295883219756271147026314086817214790377504457562104522190742954901324209358681362468967267159676078516228643670411369691484010252263353327981879242290587193458345148634107312394791092434261612035948354606181823992720153876032838091531129767270923925653811284025419365205078596985452202336298722356170737749691323550677534109796592695956910552616230924478552454558911245197529540258332680690143426425912806713387868011547994856458445685401013065256034948446019352709097049378085855403326555594678071821817501223211022098177021701317208879155769443223063724569047754073921852160949130342630736160542237074725380339014554185785972228352452001045292304483616898369650221160008869102414311468315325395851957616570796258351284998186860215370110556465281851344696741981302951515055618890675279209476667761314872239968632215016821621276227387019793410596547457931749114378559802651218370638871690669174316293959430971920762453420252103250824890223552914701254876438341144735524327358651285835928390910018755010450627340826851752499070499360831112200824298934369317508943831067592699533518429194077945330986539758958577019594863578852003726901620276266572949614851237935583821931393270155241937609932717590297627428267483184670957855103781559778524201482955105283161822947465218681120011444498265453870941466445460467281968497925863320302646965576268619896163128817569618478211748061674853745392014780333295160806744918929174358149562161983091705863066968103061684031765795661414515497979808199654126722206496398761048845165248974862364189132686145498047406674468715914297007998109844627671704328488636235926867507821613263708091580241843300566986573351633747571070677824232253974363011918734284755478920641531444436888352472727856443472241955847926843964504615652863373461514257509382902390931962729907901967298007964222502313515564407158803550214000999573293311269683364114251121209844796938228205424687379361220313848006839731103442745868694366695351401524537038795999710173241227166751289786211626866784980583852086790963923749897051028898442305069870166770939176371667558420404665182373999157195222702370836168297958832215272400801695001184339095940872183495028604355166828055004251254644201650894510134321463217696132348734735712052433427354377997622517025335142604218132441905920501756093464539929181788254844208363891144362323877797076393046313478266321026414209610662124157185192364694024341561766214613834011166629568501729265049181569897185367004775428429554890718652200559973696696255038894093520427786245996762959417577065439118541166805062248315742605955622566947782654383137278235307303507968550608518379261825204325686304863366245516496932799791894141013605777763337024392872697201693298128025493423200322889435200066502641629071252854294612618356540424758635063527228015328089502272867555709572372752767957546394879321975527312516661324385002397875108750265917374124180184289096913325246631645506844558206988201450399769069594896236527440303709616834755380676275517220457531128175021153721771770102989002819392831713397099358173358389185411432584509111753267765688059482242728918647007116421030140165691872073597840635843794332880552319661950379383810109866211295769516395932092371368948446082159532114998359597515094311773563487394184985074801029689570931988213422872487748458146456130735149548941952391999424390560314672913211198100887959037753373657864899040336193384567292919418858682729696673502173644826153426861909789351380175205298571747967250612725733580356685553444187889805215169256426783646905305300305757619293838764796542541058719223433566656614190464543534060408560483415453213386296184996465832089791947643199415023100039227269099037199827754683192008068309091043637911883378681453030600623828044174678347853759593749708643275046241999818003237460145428444006662108692796634001381993465116755698412766577594793310661997648959839148054894119763599871846437354443591036140145877247330822026075898237959977062681674191964830852221321061716752049168882174366196014055750558998015201407303344347267711941491393955734403061838119397305389794779822294706131379894235981316835720919129593253703216693494233308839373778481136788688250020529858370438832822734458316162209465926966106967567198122823617534084494401503940536299624469172400344070256821964708666856322209471412612519711483697598949039000522711062220741628464577910579687060406524868913801203158083420382433081094044283743020679603979804357051150012792933477488377536857022280491442116470379077805128325825042718957405531912159127232061792723509728788695382635119936526605706245691031684446911089845814723912996686822816190846747813314034102587103373024033954632320395269526881189942573952736180381001134325362612888658208217789266858983117762735072356401415482236764197056160443854458611974841670573644460870446821652859972605133315072562171528097146220297658869805151084244932066883960723344325665473873512313195887907484351138948777875905963004797632582784429970898621654834571131641588890500559629262767312408802291435676708785799510712072153127407969305275664625071333193361834112935819120676596411673770714636991366565263666859349478607988501750881481685053833549504634559253767072675846320428457822022044359084111809174325715316311893963118358049537872018707629608818630149847079677262400842882936790964769840767140460222337501823864946324728036662864463338595969489141020723286496930470740756300718717609922579603991549155419206292307002910652215277220493421121309962770809434950411114397392517116583116683725234192804912264547349981026153288537356116591711293789650501547742442872202785181098394127773592402402625113324033348339845160299065496917902674840320085001564092737845096982173435488475173879847562585593473478037084879181252936533480666069648064347617610239151225331618392955457710257562762110718964408201052472710287993536397433982402134813859836180650945379676826270669577126665241904008051887163618499817267886325916739912223921753364988103069438419882087980954301828868493776697954032655723220600297413981165156171624125699442581455649126346889856398038632584173859964573606921272286809322715527374566420053284206648994711463722620972047484534776758112998854759295906256478541431017127746806879823836816503576402918341104171456534061632285519494303383890620925669407629536019884790451841092694912774113287038661455727606127967619909381735339753251643493654186274418560049208379002715457034125563291027548851648599472541150147510579617425696549565931908089229379838830248263404912226797250955200272707377846719013456489594260051114971959078584260847088562363925633743524540367127916602120628012328458960554859010290175182615709093266114750009493360167627062536283819165658688192553321678877583651654727169146219114150746378448558520968962530756217661896947223208386200590095115629510281520564554216246085982994802359962505299092616333257781630114558675672189939826872039929965705912614901597286191982272880784531570732256038271362236130491788864471938021229868827692619673154528220041560683343297937966300895711907062117285688053160938258903994258614298542662317009385950050779571831372786119728246171338738729210396602377216768394458225695295927508130003246192898517537911305828428655310977896946864906344901672439544358886307481053151322760913470605120770471492244869667330652485518475677302245229375203382832404173766893718706457074575682878649019222635220980584688795519689072673522400637427680356232457182494182254008844503017848459462459058366023882078895570930224172301454260408757730438138827199867295726736498152292736954792472079261226581828065014094036441008596567163476043147234110554968743265852755220062918960105550798931503588062312270730224798638307429307327956168155433158824152956582242417339176274111497545117462437450899066359047955564076157523992377140862709740818527772846190866977642442151682494026367351003992416770767781538468562638570800215133635908884837204624874524698124840316890370401832539367491264424415674639939300640495762025033635987374848195308110763174978081173045518210374957654925874240892350017664393369472056202804901367289429412605501027880682087891148555452134972075102996262103234390420242972470203746474465656722099201445637756775258899418503117270901728339370181212815964297587513331529443327909162224021419196219069184396273283617721348344301967606854687604873788490109567068103027154408891791793312777250585243828816266840355179242849652401144928404868881909471704508583215469735686987682346401288209324304984361427900066303400478253248929776317663699403265500553103408510810470337810563457224453468843423298171163883230884562261832346196957305873841167578421238060872840043362366201618362867622431772583801910746086126123093572818215132328941509692900652849176196293766184521990625169719757470923194648620716638606953516486544560026518178818917522219260504224143743488009106310337711972312950519388723140047913774093811074390692928095382215662346254622371449814941332693706698176900182284792330235257265783639444750541359730449659009608113605699097491472252038441037608847053175889598037791780430157988212882703258031803906076154954473637118722715437397550619740494712154571120534887524091600224278440013038309126058998577342544559393924444557955967232712130177142806944033387590390095419796595999565331692017516073080633814875600670219193627537828335762888811977143973133615071114412691141977838190612939098313738760845208897861692902893170549222346425444569126620500803706977810903801424373063517673235807045812879382682029753702651947162994054615568317578196502733527861673046659673573915432700318435800573837693436932893614487259452894751586531837391875394050550032446421338152862960282248266078198629993672095705221981529593694656797510820100434394445124611980926961105177675094864853014474922089465479744499732055784877522226739088982919098182315368124636440854915546459095172905932447533292328148112129003853415074327884469891675303899452604779319684107663936618504653283517642298949686724651155998562954352593691576967672108196875951659289450670874530048101337091160275885636335632562274684770033444606115296456827356156577442858780098569528580968121957025911838401452474977883206176270185942554135201521314583125221191697226495502820079923586936377083781054963159536324130867099281385920039722590696546187989997596995034008920310955775936263817198572472032601236830748977146730076660114663127604592630809475243858131115452657141571527319282783397443385131822166411228586647185320768344010361071367957432378618433446628993744804163956427889989340286608534948424354405668592900555101714471793944314699937158350126248273121530289793186083622032556001571062509403039203945410207118630339710012408424073892514459745173333876834556977769656370770913588879018121543476018789162858053604729611711059389784710073461488784609819618759797140775474196830518852085137452455758582884535006331444152061413379208539054815263965383802273904455021620354184905017082798628128400248747756517747487692070069460572684084771664575011643480197907313774627884534697366863419350033270786498033877656349388561307530564740619143295257934206191645717503808619864718898983363269493486818328087831697513192694242273693007032530067920541884644769751218235132459913707928276127246436025267823755981180626715816760073147121407226511001830948832057486583573972430380720410580873305950539411448111483946139680958133511419992838416512120092147931983521738575235526729297272859743081121065612876198814389290074847274367949586579364108340266097621116123625077844223533205754514217020624737309981599127167041965762192795934262645444710465296626913406722638342163857088925040404240531137727297620174088349497452763461431936959066446387474685550843897590453456546930291511186247535826083983211841660108106384671684493723888423236965309192769710095669313413815165862088115004659015744920099529456552118062883002908645575268045705401662383682830947948452449333897245846127779951189206973212092571542721750696209141007082161276063325183938030554586898135346236484714965862929469332017115818162307422343443187291150878519498809518679615957659143163702935251861729742336557148884877555151092040462522670196441420678167975930529167042545296558110238871702724944419759528796313144338682840091019195461333371675093064603519024300799965927548549226110820449674821051317643326980357348715236204996025777121336612574619876238885272668041737201660455212469440645134490094887571185317318355832959655994355025353080844205983396177678533960644270433447432639692069142917273918414371622760510991954339585472662373636735771589577228081271505636916768262702777631624265307583675804815762283133399501072917828754808044856352513678887265084288202994593156881317930543536761433270377365527853141502434482470651053905178350309609088962178916444415215701624596317422858461743026752680086799306321700154447768753657463563412046617279232459503606489966741522881666922045958615809079473684859350385068209370757385184262624113461898174103076688931195493282413966151240939096305183772079786641417654757514261741812218468995846473173034869030263682695826234860618650329112620209884323130378737788909513415813054062602658113772986541135142385837887808260127306783331358328815259272947612808143919969071256309985673564162989490680064176565152982741112930427201310258025554597058672832463209590474310327372234220488079878095034941685208393526654206558113248934315549941642311784837757886870195659192880903614492473695056182494894165317247236772541071039896401177336744995192643616540894375507829997333994943911982715655242588457085701648723996057873615852334441719346282020741545012681878978534966805874068453785656465824031710831157665656777267243921502012868145880744584373629432960815204667080884458083149162203141364563596055111304531144078810801315460061094331338791313704258117264760237725044192791093615938628647778680615083178167531008901095116904295270157313569650923338833563693631039387354276517600844388595138790959283029279921433417246242986393441487174307104906513781539816190877814057990366010165942092451310360629413653094423869477653577378755077953112415278690463976498924125163453633820837291981558104492900468036175807099903058785946048354570436869972471988108580891475537344425201919812914867018103001780267026884857408843503395254122301744022700342487415083693101519445788967054666462312660251297678457132618876182751664822928852153370457249125047639564664786197395789566531800171358104733896411662162696853825731298113810789887634246765828423799609973208831643707158651652914857593859557581502903505753480303059970470664832765657992882995823711541980528654723521058746206671454163598445134834851299769572139528868563523898565211152927267694492187953256406157725454198720650229056266002301399548792057194714591652075982372914748884710382114651685899155443970594992029405596341326825009400944162143847566504177855576494299834217587097929875059314986847823059841347193767783870346149811704778936279523979305715124985445620314975267437166873912387271665142435778252555984664354330030521443334600546942422349893848931668235126528601892374667183441308589421554074147063454878968187434311809210342176964691788011799615303203575445173532737071252760567929507354094280097455995285383472081875634558042172801888847335330948267231620149185522058806494128660162171017830168449442151817275311513306847237056942924879225299081738759291706873921840850056497682491400942208858206127319490483423262212665953570004228724077168202776300365463179610552423001157191329051861070264509327259122084565595436244535327594197009999044946010449041800532735806888425245227822841536920977680900822278948771821166833154661888117779150193634335338501956929490799055715404269353071328049270022263635424095774762874706222505337204339662244001132418314463344319604469577001224549504955261291328064217065379993036658313935553093802806578453371067630713564582993859295169097433363581115710274267819272597364651255125787899082568898563049160612447968202506827284313526383557383262019851526857586696932522796239977191750013234621487074278221081937899996840797973320433519100559969283365889068832729605469624895681222333968455373043821227261849382949223742758058690501936132175919089272603408296329751419364032514153283704822391115478155599444289645227211734541533370176720507549141775424961727718203124135987906764953623387074061500316172443571403348587958358551755251514155268695758961961776991810222229371913029779028085105798205618317982774420973782026270007296358196971798977133188061124415526170841160699823927323421292231899550087655601294161532551443892429528255406932050115951243507395716941766899992648348542751310076040019560444655010900975401276893150750917017259243280013738726684516678809841123514860634719158307259820996403839946515061788704754422490259919734394651579477570350376289146879745195771012822973970110656189512997727443435252513228044618777372140695028603732181291261811705077434471603678881149532274255720522232852496258364350453814821393839710759557559583422824835098731009101605578618584300774707064596696566267358770259428459487729105912148229716998705274874614777540536326768922068585105888916410485780744590825078019373755583320942629176989545850237852580851392977306313060862389779280214160715251976837111268734799103628199918322297724871830331055205296262287819124532066373764293133732215888725898863763766102505705326538541623081792625023456115056330523235572046426391088989915725697228814482954453029733935504703871890075509443632439331563949465498502722736426693445539566074424931940126361496658398453046784392677993956721885174748070946891253701940551330620892900494463249517266462392742811714057153283572031060419228475923797495053588272166787475529191322930657832381157612993977665180791823479685567814202898679060942705040843209036802332804011730725271659999582040631805741539887397462353417460234304410587506742325717828088677231747063041052490975707642722477616867703489580249933372461883901451364702826483544955706958006941435711169530974224751756753165369173861868262592634321849162017552812991512627135525085280162218214990104195962679648645445032494895671346640541480073053769832363633688563194449348206786901448763007779017673209569732741594154456253042762153546946751550988561661222298211002277264149840009900361305180173237750855645349911814473267617063391785046166745795251369756886753670914837134404476528970583999968796413209940745322690221284215604356544824115462931254301859487778222045508788042787604610270461128986699247263251087133589344572569375940038235149430967868406200704408200215009079593926852367430772869869411902925855334415225621215488518766185177461066518240269762139669619868884869504199344197408421404692376335118894491954572670325196691608442375153854243851691076342573770210968023897737507005713939311450530371070556683854698711820136385035086070922374459483594098208782510785262880390851408612758577425963597576716382904982774487805717809180959851534716174912117919477657020588825754312506547253529366342496771380597571921171447157308768015850507022543945803457781861689615695517602231561813449541188880239701544439899095391945347403658778797094701878453973064639870496502315227964613057413602416058824544223045137095590207156104753812222554920307193417739812463802693502577753378311859065333066188490527575207617223146563464123512890540275572826777635239327715651047246482899974675529502047171703007598045031070161716027119078123652986466177341489988474913255787343482066681191662568468979861704165009716167718763285422771789503017942049870418748666802651334182568540993844198241119196817673731233755465232148230671139535207695654389030872249826740018288152334835836969257954842146588704897453540501776620745977063747178988023769680310406858990760475600766272929503688053286754403643308544000848900893842433297449075771850065812732935452549404370141769772090411974227546402940013549670066039435657549767298463577705026764782736399718211082353390056169849038527432503784363881152934994465254082016241162487707086113667373122634735565331479072152786075110264208509863053869286662040085233572533703811491375449633899689729164592352940723997730142688508368338384984167950398749958543986249012244844438017225072893867215901322276107672612338686134700156289855882466594001407469633233396626853065226365332026047573659244965668647708233097156116116350542987507632405092009610271504583550621732678112343937435770739230132063863571734262380870110433010296671864300626957513483757952636750599849444506416288425227136100884868396352754278529604461669450484315966696757132298465177086273953131076493816651267056315210178594310842191680343901922153279761950880663008516459356922726573805418230136296203899637215120958537706043263421623282970719051124250567342676594043017107345187441866908662989389940295607024361824914972218642342111499562306038193531680781366497129437592212397135235771125109380710954322596446223977123955146487010855568700022481815418710447699888322405807132363273434571762658888019467067382391094070402785819268157326040538609991970644883851730337881548535797236114868143995214601038317962256985196711103635389909140661326846090181047586513215056308637450801488602898117642864469373176329855044824071719686519877551265314075897291922296238511057072726016853701225410824567877031856343439318232416461907479382008705280688399633011061018434221429110883598294411886697580427104641007019509630728012066093905461963430722962023796638853286325542344800085416035507921653516188632844103489915501698278779954690816933373942986283232808765847793951488464325527371594415809028163057440881019291035559383331387358841504855828912667766869404373846888601874310768830668512077241732968301222723518068989749904964740723594653800969516073264999995196672908893743017926688352944615634458292546084447464992943657821654071998048264774434422568083991914740394716413575702737693476507295577026119911337647940139528036486729647410890839792035681562623561794193211648627500703442783093293427078042523186789124327111294600978394631147346933299804019400399176821174578256292648925591836192374868930918702759316882623311770085493913439119273274916432797767852730346851175387205378309304788739702739706905769489142939121801829862501208415396296498697234587586966444833602202337314346740855687462146977300833997069300525913212898324958642589272144134233594189768291473846074346030415019528370908118726901365655458937400266451184331699001644152804739413826358268321582403070166787432426078168502986792128481956541562607235615740402359440872805143994522275822518738748552043291689867924707631717318113499742383553273237446579158348159400998691561572720019329481446788246955995858974267928038278626116071363516002648040302974886721069194379941163868517631031325512009059604804527133292938119256245403298206575984948747316407897264236203058894749303630593453254810514400501100657242355202648179150872219008909379590524546067920364023240447898468301201639490142205236345515387986619463350234411689028838961504380965419965578421222266374438136331379995537919474660204299450575576730207115053884367137285971171434613198802299965749117462678044739538770042631085834209221380816209207999400750698072208586338361919652224739131422366385365681350013919664995969987161900754123024910418149847943531056891073395774926797548831343840086969306573128449177623075633197172399676064856525190877445295764691877707327784104773399652383473999121006591605410604433031833426800269823816463736104174559105437807720691986869287046904505362901175872350810001237498981900934646573823869241033848126079235441282018674611659185790730357139394132332379135958700241793774114175591757570552747517431009957640081009322446205547206321335543992255828243954184766658681949656235587059431980096909668473099280232623601666042295696376826925526862820363661012695336086939104480621193671837594631705051576342285493077528453305252390324762496108820067486880878776880052858324641460489531302472385602005895123407488135569028602172861541849362416262313154757188547138495863610766024743764059012874252590501675727937179800702967647005912564555036717748365284010371693027387630795453527029532275755877928220993961466481151409293239960622271362402917727431255401646629303189002495480793349753416324490806993429843547410882456325931791769653836737219829497281368386767579418844018134585289010247667172356486557347001729993395608226121157935455953692291904380791800087589090287191669423397391801385893521845199664232485868710593035705867688015595084820348053803787375802854712411809983606227637267102237978272411121884770677430082335990208854040321455943035350458321872428103652153635434289986330404057390909288796195852821960023088876719597495013059810853894944083071570483111728261308076412880711325516768568047644599278942674198152243433383145505633705762001147368277554213412412075401858574154516773626311300386030766828758237456967093114621953230413690291338559618899200284411874886491050775852698318658762479748340353758770524324082374163545154189258803686408493709756064957152964332051189610651640688287115254468486650912971953467912297631872720986900283470142239414540533476284573536399465847277633628045762958826698516155769741538341384284923486495067978280154617217699154820022429610016312649991868122077473533167023842998838360168654774658307508440453496763566353649728418507921758638917157188423236820137817799457940462013476188680595130061281362017216063824689329812324864996557604350713511259145199269112909368761541141979157118628539507301511469549166141073299480097236026823568435982678800238172233207761790088315161518806698066844689546497159115155343504581361050932024166539200765562519989008201180188365311077485547993000377451484313173034132936252898091985456753543808605215204114047952523236786997639237722580996331429470428276602662351225332177969054764139094853289278393435234779735615433456272174264185497235392320899374461684800266301770036466849621699897887339670736677755279366582056931640573251998715719602577154681827762820588583322856643191071791965683693883675259461050427310809697393019031434141161387631327755149637385414544734866992885968074391602922801959926635406097775358314461720929814718402844913153869433605710240087135786239644405809666529382508053824194822889607729307796286301341796562200440904232405308165386346574621618713994673118078459529347649358248292377421546647642013242978470835702560303520520660169743511047281618474167828730029690684251591771100290724280680187365570343027330065163600092209210698404723376098954890014941264244569680467735471760998397464355805577942212122192515523472354919041870110570722792005024468064097968366895083262122186891786390694883795976197345545702350480774426603691299054234875881362344552974159438699202764289068064749981604228546082223840162459135430379585746371223973088242908973101028730692556390889504748456106779956891352840604336849151888503271949826029941229629725413178251622491346592720051459629663275720953421050741659135321316357399532881736899693534925852908274999142781905584574344619094782409223318688795136869179178965308192527253659402119437591015144119399574625099269173298800220806630763330064791231727320099488901943236959888215788989158238299820170264785264488779110011262477121351777666035617823239678103042097670380170243886505841327535020016727485395080484747753132818641755851879679176935664834407890211521182679766360134729703801307053031252072732686568696717298343255719470775729390006130264816205221893989754019679222185019070672700803606350677477266242013734678438232510139801736768478382783106851776238167226862267228655260514802873379204516510944551248298240707552027344239975973830986427171696902883876481787082340243259118485281437840983191000170095756796909800608178634276035225410709683062770656316096826533963950928971097109105593235467550506574616117245833875745079248971969936452436880665349162702580610293422557992688924123951506831433267318396379656807787995354123213071279890720457985650407358546236202872884840714895442805459421272316505323763346746400626361851473174307887876283277461702675805842647665922140794700868038235810388282307541984898882293711173709398207157270950159716643476678006842427338200443353791565882079452093276695147328032752857348300782493664806517960800813991278986964444376172933624519843108046022426820893430296887034319602112179790222754670053205444412261469770702381835256091907911930233721592271322264694141983924356956355893304959476711527922091921575889665855848007021305880598125443471676937711604834466594369009755732252829399197488593498388591407521178083526443729200440406121949042398288757615615318189709472095942119262184568514684616771208100061135261565365384969701219398510215195771213967459380479685710143482374780071822893396135391039618208404773258833940708492061040266977524643073943676029509617398554419231478635001925069507292254206743311058520007526146883003645650224010919834177957410533427771624074846661967014186483999992133342706623967298671624404879359756135111658209261161037965274270164476220632041237661004687216717813713545821514158654732105486433696301437572651737859809947304563979466738668517327749414677777366471173906265244810923012181974882566851385230849787296394296227226167083452835251415488397220589255911456831646304680542048442087742055025660480174741304963836311480344872717796478278004817618159005764047377605783477486198336811361493484413806877941818359265004200986273025024520841625261841864067477819005177420280409542573219035442163858881777386541652485534361908740575339951886327910736438764731111022923186803673146470119183225013028779715188036545066401701016104432988490118936403926419415962395744501855265671283333214195694650895630833469972542740859552419771892856815506497012221206616452913713348556023536780097533171560361206337467415344873967383564169601071668673538971141943765155279897731193544774540147373571018894201030223960264668454296057034494506566263444312860233801834421491913826365044305347018082828697786467129815525482678549731318302569017402902395190256221684666898698991788689228318526758525617910115425356062853455735164436284808141874241601610880057059422049143199274345051075103311699169749730191887340632763100521645150718459346982431190119259578088201739069772108764074496808708349205481568820931062676301332702292050677726800055969031703148342305287682356875191743658494735478350236123028642399578453836777729809305284910096010830560957395267969844846851644711281554935200305383034861110427915949651594735081969971043789609183963184644883433536269560090828013177362587816227488330001734219817778808762583024882089233116830576002686311325271417961384104671095329383353300176503185032806445756122817487957071240666308593662171559048653084193742900719186442898686187421535561498664592197561674196447372952724514152635388258514220622504675388462725245743404219051905695993376864334439317550989582925921756277454317677063372848716612409740753653499218901511221755616088007615227867193710657275884648568976852560944260586834880753711476309411279793251538246992196909925001909586435243140737264384471031341309995773062017055128651191415688720799386449881101468991736038412002043898207940743413204206900927585723809002331298134893672080471769914239887722335471834854087868887989522862947197214480570175632745688966316239095728804702119249758469410937027845050356050939313983206010635164558714618112075107031519206488580061649693611314984004200172807396598986638843648761152122277659876618280602812280231736446220190336929677887598624878265536923069386151381257900258828393636753087592871975626188502693966009820772787290149284934559383220058872680744762766280501060869231903624028076967206840671793197899542807107994338782099325041040102746699603499549547552433502762690808209622175011012223801353872220761691850241290025436762572436326531333679908239754438199619048037499406769903700530201382339396730862174902986464537042125973586411852291372654531105630059351473858437091311825249961090377144383657000736538051946419259584831622934383391473244830442422227795825491149032718930514443446023586773443596034610294412960728709276172279085069937244259308104741962143431964443999550027123132801954636364853838748781959156648167338830103958038254493671614353991479031140759479921315145118651676442115830065567404743191522004252367253034787551655046659006853711633299017416339661412098789897668687503075226746705267416656399006857692809171365117075578287899413916132495419982017191963286177656176734299462204040259801240430776987879390395528438897177314121772406161985350322670577383313893797933460514142430851244734734689531377440638125941637409585170337189649127611089698783159824208048924587559040794541080848151170262377505890539631308168414821844542578338204848828137736506732068872093145727502928988801965840790277061856504832383302740661580534395984655373938442432308259754567131315319102626503681935907621992749910448534603994546105879074787055132072971437327102795597979420003885250010263590628507889873308595836637227163006590206422564092710671961719728354735307392899282563255865586941049331390997324913012893311378017089764129304234456156425447375714452101640185108738759986453710065152589059434247616783866691249832301042003536920720222124626119595869775937225515844884218309766798048281815825263031684720176778850732802146490773213337979506287413950189482722607888271445320323005992506203232320609216670691251365226117013843837478960178151181381676712570765704543522241196713905776954865820350909903816433860146550951512045154935825005824051095379666180024420648888077184384917704162666585138655029114423592916899364898321388866860275248335343442701264246799878436109923661335836546719257312027103462062830753005610600196314005659919122678096385215637424666690312626331636079962544767038297922710896379874675644623938176076351636147948604415690995532936042414103536239349521249814361088367970254557763372851563848669101038654945095757661688928343959007761347500983917167497738022547498199960634904694426556820730504904751844766022630896282552637578076693533192718164367219129972267197082972034976981340027705021245952155972745589133499763583227995144977607420731792665677014815056221116345358026976321959203260590817429841773618507798257413769303107062514108902096666338681024824886474120643424765620318707229335181932955746328737958028944969318471504344506248435537826826217492780499579184379178722870345290692880396289057679154785580711844363794879179210994690760279245353122883384421592732246872183428878926541671477252513300662612835140254921197602475688081981748623951299591701661235545673275246202712504572061922399264187100061827752935616937819603915988041203631597668784002175426612328416616399543311988563397379665702537344494933122607833731361773910020710342781499436377674225309358934591704188995760394567060050915292250621881499073458493262686490697440758677205830066157800661856480544229420700728816776431003644759783923634342152497417947849508840103819478833131139527562112542870028362791978776158842967075365048234675115415100658936751682040019241302450165137392741648855563965705923200162270898895294177307214289320393053773199396750833728202199599870079343368200456319312964877957186201514490204304233189678912868002277310619378460124624095039044923482072602281720135652108513714036310591290676052480681510938015696227262271412186617152230266341585599558645911304964430420227107910644399491084545379402547225731030209971050347925513909465884810681406288254975466917355309710385635742197999906424952639427476914458417570058496503554397954108902963236113190731040689291460558866906090178694887708250066462735152993838979548543925348785587395523296930102113933101405505519756074926543630469552706602404500075880958199921634095402746794666322697054849555809974745636773707605393276688968560946843248374811825634184187650157173275569424855119991707585485094411585578735549340173086836226932625729956770145525546151933936220865141755616176609201247512446690895498502153148154189671170446794238576670432541269502247881838732967072313745771760789372223085467897764290227092410342383509740110211000804163809559319385707240519312091796106153628734949809166738581282476727141524455280835116634078078512096906554958948171243345777724933892554449601097143836032149176378739871125268295253090372882252114435063635373465910091752044966388650937033305732605716922614711871416740209997517377863553170691986414849445749726399492051356752264041021004331620311438866536772261713036977666836635935082062873894956693966964496053983320603976357648088251066519400196154427701968371735218374197812853020220019490565434957167079120426288326478992817911074371272885559038167029105795320471842122407924575630788855148117065493036448446698944162031541677426667323001706957904882061606672092806883905554807596413082564140491339035606310021842700228181546671584943480976626421756597938399253108702167291392246548252500534261831153013057793145667169638308288761891604590308160815628140108751696547086846948506118113840244903422954434093669033409186957580376068691323199374473142759380308087860871008626251748265341946199280005411339594241407265866922663925258814937912454020690372330995569181363472274602846082948732315458870474955612976883647580887516247574345100914875511458103857348804801599867126101022802641921943521647028236483194088776685304720560479174085028109392133356362091469624922423119745799888456411547269001418644790636728155995248394105321356485404750838896796055071625089752247580779246994899802402045325370141129925818160742073484709908651155995565203091205325925034244508380152076042400254390675552115310587060504403991702560900127907315058840852001783853847044284769508213082702216296237009113319720201738233703309169820952942630600226449251476743005595627392963055997489246073005410227966905070333896216124902163338089895537164529520621367353279139465945799942902744888587272606649848116673646553037447375468322050214544516024573151409771325553641882317885129589936034162805244769801404771780244570158818325080101159478504334554895700003595816068669766316322760182703965447804479426406010055877772165542916204575825847581157937322066736804336811932185984318429085055648800927420976414362293599332479350162758917006804528521677651274226620483781114311655554293274108675896729335407071781504214772844650236011052160305865236176197404211020372899100307731309898635167331277104407787059945387788447665010901027197513753963826799352951072329326250068389864125940946000924649570701705396674630294389260958890848936596458913888446565650916369808000938861276050496813810975734567805290598681877842616361476917188476029635955860536353573162735843142777478349025807195122489862463432258726822918094301716926055018127619913906782392216096214538043501135110927804373380626600088338370356340259755469456006536363944983754147621774636754116433419565155356173724411579104200687536177669252881965264190818476970965531136734413223818133468789021120865028552794965836665297827993094777847498218531314380482173161838604096853872385172299235518627994503115077807482154537100840470773198021624883396676773014277510103909215945980667953378005955858840242211116937873426458045309386208519450909419714460398342093849888993574726217721810988261278927938605738428743655828951553015060759341932924269529834276129908832763078384093422761901339494771468201148047438509565615001025665190992985594607073298305907427707808264049136364955763993836683862451593582160847809170661328967715079865933680239981374869549953397003489075533817366681685368448492702895356139754438971671166842285349585418075101515156490281381957550521803035027959116287991247414453221762301225068048117707569746439978620265070156751749504140975868779190359214891532816066605295331994357097802036237823785176521543029851348014453865925001716401178281790284270585240793246788654972209051601287401111139887284350379561717354412294193108464856292364507761685498713601918351963305825519185379242630661466702715371771658377087888137026933428531388736983134225100232980028504112234101121780371844457469860413822028217788545308705726301842304778528213915717214962581219807442556262613453736809935384115699973394021926715178179963908811217790878149825313723881859146423821059070995282932521731279008248551304925084668466045621623816367078946889786883548706965781142280242196702408561628261292060522088808356519873334895627107561877396947396190387489882233740942259713574367406123126238788778564614184973458882853961559930962800521775108744201467698834638511143153503169095286900637276399262712237313847207529329218554070699380675471914428936808367274528806106011099754342660965198694249894805084610548283083149351050374491587450786051792817962490004088624322222467371622277382313494383796751174955562694767366945088048015063226316814295611237776419430665094334689004949937144108603396281176023505129348332490669595905534667503740942677243291440973412826256445069571856818050181307594577922932808676476374212747648833012391978960108931177683855068612049586542248950634915425318247346964347235327305522987972354394301665397856291285490753161092507640435627971977050723064750151718507810171411339160761048340316577911528450954502611000773543201124384443348611768433938410325801547048629385335543644688411888927919195698847752756732174030229729857831340823950023291414579888802326543419904109636800966917568469571866730592870181003862239834976745953455498438442423720500247161601687089273616763691236631897726497050209291914353510124820960504696765399542356682455988370812540630264758162489942710892937077492665959464354626095891451931308384868600503692231457369164119636964849693639237132798297569751281627523980742163981485487846086864894238457537944246005195672714048159773245748785442049620177181896140288427412477209519229948665582896269821401815862748890198721069144645088812679125228739812112164849219637453068403706513572842266240972929244452767254766085514269349762890796521884322817912277399862351585031546472250062385661884774672211367960874241898437543241716855384701575377084560075700798408339274075489384297990488367987665786721180975736615989662046925070621308689194252601135674809835605532272207867180191728418006984477813417775946316937275686266152772853224351316080606675858812667140376687496493409149645350943156888553070834918227872624246747455282251209035420060212515582541196296624591062046081090416254670354268302570029086865766696601880342690933587276789013771277243683627793571666374854564987005527786066326298628123640917391297338895799431027409522416633169544779909780802077885626264555907231473698888673065748899554392455939087165397353876030884364773114818136711904462533925961554447442141643111570722419124293579476519624158010717063934999652664557442964750026650821038682974609796646661129440953448389682648778518213385813576344611748864442166026924654586724418303644209377755925503651460061952489628281202624446764097355184811785587141713070747114762412341528196831419769808325813975763787968895633866138326335570930858134370677506533055552489961681819522022675516004092040217108450151976199146255322300835632417310963621657231809196708872088228660249224770048699432311971730943909866779919869696794148409424962807711363394015544492747396343925524975200497448676464742922528170960456559280938961638296746654620265139041350005629392765371580317236726763807757113617226993309456371657881297849781789519335766873881888169029425390902098881058161339356964638650710716063422655237328825505108791727917929639513381500636831851093024256851039552683791119919049436408563370197562925754093876377963534442659124336353951427003429344304476499113256981058930016851970578774701848608420584794447360229335837008378808776869472472525337966009467203590133439419217175066528997206040467909477560944372838455075993272913697806820561398439953066876500417713824466014143358696862425179525459154581647012501286545629242738477055955999028321033931554593640723139810329832544873533271615588902261619026956111755753694722849060179624861597926477377273210225495914790943721659690698464208285946833822898643284105928177084256056057945794610422672120998257035695721385972421832310423189209817428330717906345591972198679697938566555543985635047336026142895377954553877573238801576278585753217812701975960932819685240283037057158257082771031895530080665994222236340927789400885128889181262200000328152997279483335490509809074075679046306875737997945772263582067425318746502801566942100499450069951517799461240730724201719047245823834522335405875091352328688873881253799387353373296455407987671173188977952705189711372816289385676900109503498073356323419969234842134704472656085815272804373925431076443526856736814713110067304904783103938350005223917352892645778726286857076336839477706396809356418274114287145729921265182673099085241592783329863212230686057128263378503440682137738431878738451094838672242759750620301933466356737745645109572868179721996783664012927878003031310011333650599568996352817699238879397866812568452306234394468844099023374814249227922317476481623700832304352209433391524215491725394245115457098613131880562615226525179071034823434269469333374366098965055203160176681050902780148623145951354248104294934410033564209788670883946423521214594896435741225083852184597171637349967480705512581949348929367687572645107531417629022162499286392073657755185218353745112875008915349166797834828539239717205943247279969757843779572463068790557236288462885701543441337314114344594262932296877884118778717817816832711123125709692921790950257649613373839326278713407583611024530669054400831990957644536913686869027623771782767794097255789679704004946624450473544245151828546659879563288687843455991671333473028480338511879811811112441635551819232704413153477572579532162916160392704704520219057796675244250429084390871271279022307949232846249288037816799039884149812864411058933143474563354358948831828680569196988529476075612535321686608100928174523167682328797023506038114412157636901814325436384167075235968093176642387774721702882485328405850802825352945706818004945192161953678413783793447751269639613548947681324470345722090319698647255013383080158502480636397173563145357615272972693229950468672761624184208937188270609769957572357630706936797016811009292708286533545786296628918066715194930076821980329042758828264695530638033663216161759503869080179863202894666382491074889510999181084827084391209271667674214426508795196986295099767826195041814902987347394108336197154902745475602111901336650736274396414118596041020849721351805455401205584237872329481000256965338393035013919282632935780690300118320406019034691917693858711210873441071708051907547710572470602947048111838308644701671138414456130729591626454392129835380265054979004938424441241915949316555420725375648676420747537308834304044643572716131613479833929154701670701719487703900528612011890045008193451472043868617156129620305653730257789656358009182300391965899695242038195514511524054785436099139337378965427440855393278000017019553806038784905366366613522737426764101496646125855655363487817158793720253531580819738457682788826823484102841442308055641595829899439095830692573225230141920731421660670000408219636939797878959739127935789611533054615873171717803492007096103414116340277798756583168485444164100772374280624606375060318899757791101094680633962145802336446834320142324688304100071269229602690942714450140519821862315431362218352068633685428416675714421903406798429284793916665871307139080048897882549023042698598211292687456474798325381749272526866704137859131066835562903550103914823412088790211541835421748231212297808969903610050256749255301175385687643732663652216504934929295072146143528104599040813562520581691790857301938404546216130239084318941039326013756937523519706655685004913459688390457183120635918839322111317266390892728285524758117683252974916185727282027384558203597121991640889663664624096439246048457332056328046807071410706392018309180670689073515262177028295121907044443838155470121872707170945048183218058565046979275782962977585544587066243468204633682361363726141299248830595516545298767888040330319436399614735858214355926715997571563929901037470514207318399912069191182155703963219604461973993241855757029894639716944788874954118385559308994654145050505379211032490510013481922953596191885045315977760877210289487466262840384308808328214740469628393501966344312988674663974153152529539662380655048926427372249755785880352759125396442563773640821133758974799950338620672385625127526097542670736793445752852803069242753546917410779948837176353805830915867866360243291859450178462586374664663762098439924678838013877285341634565650320220012632908304282855079982274705764676519160561601316277440842207034080096686846123102703053947082441224854789719846780947851008503621682763238235361524801174033880161371795671994356583412887044510503554482152176670475640835515484792192844129239090724608816072164341136380800488183366988134153205140741518079508441739139099796726956958665047312275689779326201792910728232078585975334914888181267220254574248990829738696620544048707164520709277075905558086079637794325500720859113053721781330717020768527851960418924920495481757028191170054665786235320536108093640723215897069615665062879774284782519442667124332671534260554848622110900507915465537951563004017578797048402031019389658853972675346544955079849742851946018555349091808627915438325245147992191034854920482427331169944278382983032171454294411285376570980000150671959635790443179093164730033305676830758242579968662687150050358629668878785028573200678822466815575862605804861871320060822791952005617510203776210857184661120850626730341847087006335506313331254045084638227257136294274064145982458055703383604323780554219838487075440184836827160857041069781095793084951288912399629468720106516878335893230946809075074206227661294256432699539213821063176981652442174551308623095538874982435145867636125533836976946322540435011689054199201235198684404960214017892908370401085940823179479479141331723666940857254446164661133691536134313139614391649238489675182006570780667647076365929849269626083927484243579334856035148199500991715005562529912024701226888841891088346788359959472187288508448703528752010376068503379389444561379288701267737500093602439996388134161814054690686666998406431613048560805334272438163644491801706681033684004039895910776609733640821956753879685932739400842407995472103803090149013477968400884677622699582957264645154524601761932168457548364682483067932039214648334228447776419241420623871415210064583344317957078342888486201756872634209566382525464115932953743410819952373007259430798858414705157997116106404977836635983542442749442964707608064159452085118006249180530370188536561532939646496077282871829091588078465756058610996936791120060726133962423946963164744502256980764177180624609469840209897489113279154702251544786638612290549418737899307744686306435904380301522455077099361576709600663019274736087877821690231119727869099030232841584008882795405645253250916387045822480179776293469804858935785494625893590036061618614245800956537716360193102444796060818646075568087395984103562355723425316892875329597300158675659653080919621504132050240387003751489401907180430231484301632499093802852042936332126173541750007521718025501788201006147917100282034084306921564492471953620777832227434051852508102362869081718685939771848514575172924516402825014804070965296130238723733377835160838204569864168228158769628722905972558703028676460725255716020991118871524515996235948549461820831432806790877574237036089004793753483606850653811807379053440828775686266114513991984334031165516589242315754827149107255802551645216439803700361678825483879437766112935722161710246951155425645978378478865076126595667847012764166845920585861986027711883769827662453793961828114148472235115570510914217147132011686875773313469258257974986216010299081049353146385585712646584146425625564795498654845544460828252190898061080973637995763140592931665361400336528594790952220469008667527852342026830747104867788964397133268002015881844613031261467068124367821178082597641785790350495853480949157671766893615774674061507480515811339424602453302446289601997169993572390890973141242232758625584280942772370914660546943651162701278561439780004382895017020675101325761149417657742957045058517677417315266201028410024370096124743970875160984348793522986395794422247540444593717109669529107641658709924392328882398207694971384017368326978468503410398901252686772500249721390699621096455948457703882577087641131631122513980750836991082673937614493408983007224152486316936283855349069523000233980951654569666911923010413585452419738643462205749572824477145170643867176695445180161188119063769311414334830356985868465563681659966650455802171677928984067467725989888200321944576447160670345700078491448169489492403165514670094340808459129744093747332723515983615433501980197511937807971019527502289240663518805058625736861101832035829531705065517063623983942414359292799634419770192894823433098356873507615120360613842090518837650706424365974606157802477189725742971609167465719220353877576919662609432845051292965783209913785354416684177959912140153862536638729391597255324366317205164013736430368651647487755137436201014053857077229173080377128351438282321330550719325785990918797033201408156056292033670083831354421114315546123191372098207490143565113676985746780594816830711613159248474050810815698878742435298143615607938231793959406773863206770103509848372834537425870304604323333774275273512752636108922564916507146126610120646737324265595881046462714680804293187224270469424271754849661575356435569646880686190714769681284179800991038647415486659239247471833683800029696898831697152426672674129100900573736080199834314415940693118625948601044866938250343674667548920595906452200520288548584206158083051910082706793864844876084662792938570298338795307083004343750931053508737117932389938734672471669751392479492940328119090782445324590334414447002102831226142868119728193194825133910364660304793425820982404967826798526526687378212300094708183962372682528161884493240840560269475180234414178721291549344550557671140420638408607537356144948590216647872854349056819296681819231650635555548727778948350753982752458478496372873164239617440507281649133278736534412960130107280796937697980790727073810355664252678126182643557079700971300981399229668942374196106082042279777623288159739090897484808496788949944632396077274606107135387815350615433447135013966794047519222613384988535894708279774099416725850115828305574339722977460020503119420672410364745514903624489110554143630613544571306029325163727907856046116835838708228533559378629839610781328690209278794558004980376317274028446877480714943469070055863388402051395487926616393498853476743669139080175479379989381316443147819774452056704766753963052753936429876179212419266810490863169947509052167815924316290269183519721797989552350567751698586122464485126353808816603849252424622261714566999129628157809512527380240188600130894916181440526358852969961701388470240232502453278064291930945278611974201784333121887349491380270074498423169260712320091680939227867409268120611615127326015787268203959120212057233523007499028898357214151440328632429852013954141994059788864408366737478897148127434574315654085546424284872988439661518791266686154828157787080630654776600010494262001790958792342859355830120443612222383667224315723324701608254598774013550562047514763940365241150458779709089074278903310023632166320917958312118024554785620409041944717205656950221745272817449372536297489950994842737259263345827185393633006037364199476270309067069212451261725033104124671264624765387480283856416966157547547715227046849208671805745585913253277667048191274005149019569383565863535584769512555092680162788421812936741122654403900011439145623071712617958884295066670768925524873642074785874340447916388415521007923422467996117299993856273078555780984686457532310975625319955534097960814248889945051059462585752254612109577520065088043205614580579420401738122734809613954642150533689258406405853660180113917110081870717204466796638065089442550523247602498375114117966837273459288259084558331021887896655174298962619973541049073648559643314215585020697533061553484246860629977690117781575577254239183676425951475859409868165238305319289549531779901345962834413978939722057867189158577627539678733985556438973315655328544259909969774910243848822376969487282551942319199128743318029848822737932447976421281752420113380535123170618993427971570794173570393880878332660216911437763893070352778345347009348942473976386778391345136361292659112774752582836459739505164459923106808763011239384923004537511319394741884587772042140773940957563868449459813185200428321808860196505771046456659975534182653332723039510185863859439907778696487432271832322404143923646126573357108338252896925904223964777132903578070377532281427479068836688031485509926264574787172411834772262586115042689173484869900791085763076672701361496949813518441831130069265541580669536691562922205623040800821698777120086744666204723704520313069518661634811621609566023632179016536876821983210286149382907408558223853368376673577670081031564048091411287777836986802181465072673836718073423895043665422272965419772293467539658537940259763780524055934904310753798941230231408786183248040849169874817517454109587540310106140469821453306492687790947949994376775191927847908028643693207659490330594410550805049272830350209567727074803318300047862566314536249007802918504849791973746228906361482950054214664690362151609488125609319152736502875014373791586489491669778881365039673062534819666462782191583490937859479532716129189281918142106884794274711132822582344514139806651068793511147261731675405743640228067349390242990745048595760015977671133747486794683728965797027477581782190820749681816375742425356113401215500737821309532906453285948669505170374264314766117261751156143042354450719224999585739086791820628376287185525630713131872256917605599756307784846362482878555110495949407351192801400389495243709640011211764016842292122078211551617966431608713814979022839013242360179386114204822918707019969779576945595964131858926635870328895757930153380537807977091691215909077532572942156494685216611830594505029888613525354043890544700258653956047028120795964312743421874653036176464961870649708543278157151538293289243595696452143673241110796149270770418860855647590694144168926959504156654307341684991848007692905899564863662396556853759240173477443453315539340891235906770106135936626431929851811297762984127160954394141720233744699433194292054504640176553686372012506873394777760064475128479761729612842829416963146421319567384902320218698398203260925806701869995693933837946175325983391214828494310187775851873383266664942373483147276318141266567343509587944489471099164455330286494864111874727124672715990092189124510693215688848808917312672861645827145845930350738225454268500323291061333309125038581114988412920597938978063262190488020581986520197938127747787022187724426339204941907123871630087224376567307526586969147862112455711480250904208260764089833412549091375018852763250937796780953578670566419222931282330992001058157315974861771390626897078531663262848299847240541227882256699344355105399699849751376409227153080420477928922118022756316943420176959799399860913394815533504343687895765866105430130040282793263462054609462437047411722447936112186323184982217959504938796463739352850547510863553243703385278211016640920689671995402642271997829752688945928930338189243619580195797083353063001524608472071292717014263183693629638166316304928384968328829075232711979577214448480420291485827502680787445959779247458242840206677262516390103288798871726897801619130581830022784071879965551162369747346254968136399997242443492999084614131175837286705302620325026466219679681455267319104269808127162678845124173157375447380639161646292114724331117744978731774540538972040306669733161507440692039577001654185016253629350448943243911687548478296295505458918630762563888717584641780514885009641726197275934274216714847294405765137792775381019379861694802149723183915931695512132674069175565850473348702207567297250813020881894840026681849149084983523314897291800654853632054477687083619005628229846946775976517064426782743394339318172153902469354891848165463015380812691597434139994501840386546930065013875026465064208271094982193860471179320436570808651872872385154072963034223007311880447615433175965098430048185496692540317403504577160562218890646451408070180606909778785977774920808410807349822258049106873433514543371276980398938110845237553640104947650499375032348833701042073779519387044243916339270282158556213459543681668833615063440555009664676599248407312409314501076204691244072891583763129615738646128144809213513257552128852037462447631634305604217815536179611874644408837945206567306913265513311785609661051123683947282953570257313577622898235562286290925199242563725739618714227526450568656187694321673643029178945059253112202401877599722726276092165092884384924109314296197902543625586904155255199151898211959226877689069207682188071437609230489771243126205273174838398054315104699975183979559140407679024240733690038777254377703980932406449603210158352625843305512206595059157607593818606268272750052400828699273067802087511643791346133286838610046569476446503329465460122289315307400839637273565628007994256840153062342122138351307294600334169363903493406977040671765914793634843893274398534341157091261506410020280723428359071502974490674670856100422970041544475088406977556358212820126555629027890025640317451125092926280462860223904595233019431069097745027240494292724158314340010824613801810545362162345423953119416202838614484270062478924931873714685608702288594728251276159019070074903656954624493974471918931961783711530778960633677157494126496599548017806015250208707211270541540619479024107573651988189617932434947720031911721795500418623129244235691172554020910501098797089516608402546489093294653736358901557925943182525341530900255044485466262195092344936962517032518063003933618740244407844605158407339328032115933746206831571777796414920690184566897238622710549219118688103524090924988496464740503558231640406128034409035281345632867866074320158737982425007652584680937662797427594270248185556815897326849882751256473361669261768939975803771382487962129695853974446902062538489698312989151656364651933738163958141098741225536286746125463497820381980641038995425518171014052784309843944685037226862491486854333990516378228713779025921705173002662113530276161250335998251407749884852849300575701299476567226540752950334418503544635173711915018472052768804077315935994621945528696957932109797030453611180444416473935304352259660425062354230668656086350439985425839674728338568409739378188059388756667480276402814125363148107558306811822586637345669306576772792399542516526529123694756373711980927405895810739992901804315612791283387699573570829533327014568781086973569768441804181939687090768854221291241225078473266177587044400081326318344947121647506018074390663001769922934883815340646312931072214894315017545156138068966246875909193176037517917489302487533576158950404823330798452206512150973857816686576473734488593350038394661552683924850761667207349970585111699498330351052788980299328534633982334700962566085971158490668089134634742295898294333992430961086584712048083520622785017921793980483773087787249819089501692708274085263768467948239098523056766999596160903558681720608704309898299554656258817647568565233392979792291502671977405769890618239250402192885446489949920047320273796058755120555091641202743751099321046256016325359823597829256431324034276451456611211137157027545783266972997638494964123067503057853749452915407696741500984688376127031191871584630085029913088611040541938812136684745467372681408869021114837952665369813900040840395091574030573753152694503453957341433971973048244633162591421131041336447365083792885581330497046878324275373357785539748706108569616806939189187677189970737102384322603664388295010986160197107975530519740441342859140680904390892058820106473289891878371655386667359468404944861083970975284806917252680335301666833298768138960245087404944032859414147333203226244215871134023732580727424964208322084862415112166215618611036950209478665856697594555514422019029349512000731153787344372970706740888447350234926650083996243553989211744994291222639089619301379791957987027195970617331576150109764677876476475925383140270214494156644825217987023144540906605761261483285577817291359614014940931157913894930186908742762070735813525078550863045309156059793347539164542560313718951344481448845247963955662656805128035507188274512277599920971561298143482721431385240879609171747417861661182917723807490680287447862228196209473462076699798098559523139315903460336143515031126091799885787557245847864739893875033625514358362346811303655742909759329609746268549515521255935657919234137548397506165663081854695456985837919323008959811342548010089268738984947040784635504538059013767991080653866520836182268872710247979942219856618209122179730054564824081085004934443124256892731872673847464988450651915822307002925948263128317336086239489678957431011455280598155985099863764937388634749389825298581027555049279219953976535581479196532625736540218097070231707336277167016253006106488648402673458525009079989398039952886673638753942664617806240517068180360082165203509456931938575858913676174410648135077419134753062585479189073778324473534908200639973863174423146093201180175108459882698386635888948115784018048374887391547459392403089215620812492101472982223023942076224014002036169726203679624387857567353128015614463413115082138704677690873585819070819241630340233490116150509030349965275255606184285272021398538276801832548073591268480847608919571811712185129691307544023421681685846027720068220090783594265816731661387018408568514920864233776227947628341227064410039798819731688482590167705701200527654103200142067060236703899475107618826234694772432782320404585393233898387458091235522088866032181264482589289436963107450121150879061005588009278194459570189537513167147955120945856495984364613922191222090546052501116553966298236072987320797871727924940648582463330228138820611255628631886972138433273935132788792731603702335862838375123753041830580113613840868705648809657433126968544302313930236419794044884575019667692559284806675372582729859075964574298751184934558481241549015253199114185217038207766548062354513912119849144654316459186249057854978384048331202463951213684399381289973134568020932238301629407372739451469354522274051160431714019607915195538550549978464046423622112307365763152718971173846594455737347920919016049762673381185884320056271979246062855784188005700276971982645353299315808341606355050831800658552523560671876024192821616461608763342660471100175295954123045019701786344363857816207094609914334495733579372337096148826325422748806489193405871399460727198222369753486484596242084837451498199521031923475302427218486409901419924734542274387219122021737233713750151569135525803179054860805408733631018901461125422037298784749902902026494901799960153427738466648075330968779171447787149138288848663124768495148936237869216209236144312132731585088357884544909174218583512438343099246256886365506090332626339382546369488605883567585720266320477659027242112512101916304393720466031959782500240675031038656404742895552490302569717590676290982135276574982580296160355100145596256041655259264967990492066909716984387953068526028999363293817136662369529346200990147751043436245226582236414570297936907602632749671896536275224163580161034358462827022404882695433232574758026926432652171071755631594954375653075767227268274440076232700668230786901250390669331335012838504185708881482059436169245950909937037616052451797804795029533422375859692354186055872400005396114822794606365667283192056609159312537979003698250355619846854787720568488205967903488961877112234480832254929382076830985036636161624634717478633482009921755278278158999682866750529096776636925722827348317668331353726430534318561730768170529195009064819499188636744220456080463610302268492974956265299619812597086799678565063207976419645937203127924084352895793427374870353515588178932617374482303495214049636027399338123908995330040488778610293814880565643964779090517306257573503106875360917660225866836180794081137948151215165604061554147344738056520216715774214734738551690825970059241014365126575224695885893280619367930836781223553367522801633668119006351526327311561345149273054375292227966140644501817432793191727568985228742668042120690267728507433939491439874726408254629969517715539258010103150106378175175575407111706216539362467604100643371386832393263237608727023121907051681542396662095670834611862836862595393636168416043552825453062661503206954745382403437066542363003557296111082220302295332144404079589756353699830421467673008702996520309293478397634552003847559684063508800435823945101916036198983089601538138884981278169818789691396604680283256063449198818772605156277684381035784267072006975822026975986870466263387449060876705611821926256505626295630870579445167921104559765117557789233933449981743653853681753464426687355424737321555434806776525318983047966446746490911568611077069070950424626058211593253863299980635347257814768623414846490185641292007024010037719865464372642421323394213943542657260648268317840533905841019683527810038464361803977715623875569525360435892621260432737879702963795724452822015157604859330827579352036293960886410305101224437681625175594914712887533539841064658618833846559543571824741198425106002722054266746781241765617087612069457976392889730285030065425784959197687522560949409013140909963155187377005412537809540532857605917807862073661543893340625802382620694807343155981606993058575850205753104847289023773744381726620321716983344560628498674605746560943375594362699089628269500892968381768011971278999800424420701072286780914910910456483663226577410051053364447406328281520915678858124507773939739733927972702411646913193038362859773564254943904187428304731854271966759302666836770520307879383165176871240748915127595371808218406670851432724236020712879113957960882693892716353194249869487029852666975381209144347610223902062768280528803269263088895443931366170660958955906284996784004971477160796857635097479504884045950222646390899610855284160544804964090105331893786974664129282905656658480593626268364869364064127986002252468039469321430515723116133981895142181225203366047416899232567964790116195200073581756444648556094397479063135267193398834113362154504208219151295789021240493354585366463364345776977316219156809779089126493838977216049739718390864384964385518105233684013918385818837962299225956479704177872331026722997393756821878368559857111288698010537014062664676524587279045868963349819846923773387270844058231372626392821340769706421821541802407299248427126196519570099269165859473549559110673039160602925107654286312587279522333911213537349983984674597008443159536024844545339092079533945217286702384825618072451865994094936177321796020246758017112166228549337751806812157260793320121727799445093392765049475007673847694141232168703777371734978567689686801343404726276395895371274078233667063927627837404668911214958744562262045298026584899000597042581760728589622303971475040626730963899204296628033312845501448295117933454282956984199086140794930898004313198194073550501926943400458518570282317926763907128648924670443528585055960514120466501728580388928394980867779192521279422713723154031463699574730201161598688815881777351848707727690041147727636018702698989735139486605665771198013514635255173290095604173803065606996521366519278229713738718180362147552422006241117979601809138549433471415373881680811957780228174712956862223622286946165997211288423882776424480754570335118518007127819451441862802345325639980024358893769302774978425256345944670059424857880389749771369762645341133799465128416779361733553773799660957016752124292237911766989467850038137294872403393817284213626937460816727654031799688764089487236740177196100498073139967304474311536306836909510085456303963427354493789006248044499545029245473684432612839474949054877399186328478502027175853542111765777332547515498189662347545034384076395841357440820630118223603321077075030235471978608621947950527679676231133276643982290249263146122073283126231480710585515226639862707887802782196139357756094236886502999480890933246015057572726064402377105092788532615278205783840433937936383741804490677075659934430268375205007353243079159198040310720363425085495255420570470603795372959046149258287149882749021218410634228207831326470092839595625819023758203800039690877145732891039308678065578758672814060724293953110119481335784238584931636094955892933807679160177812078030583707326397886044065745433779152664383873014016729208014003255641504501264139991488803895727657503096354274707549378514011918179001492785016213188152052499151661447740704385295479241123388080319637133809163464013362119107155056389408840407156854226635512861051291218940862459348569961176694466684078005543463997716638672335010787772355048989033988013602473483536620383801565366467319263689581604806202402293896934449800718277843974575031464304281435078277883150225459030358934543160052574844343973696687637280435903143401009540670334085430778662925018688015100161001902785962056578344255617793114886566013567228268289042419275599563064343999481062082438568183715021681982336758366730981842734051266186636883051985105249388604659126309614523378482194234286060217876209989653850026656291364216972031902289005584800335934384287409720409761109640426936197682222156472218649976223684426076914590406378727567175044244773314122877960488340629353794455486947009234141940517265588813545523255276635143588280750906947357152484457586691849145246450984889218755538210836592647890588476463413903458261625584140327574341877235673556598949635375906095375483636028468985220176981851123703399660708624931811194859771266021708321692624015219011806714550722780145116160807333453212548374020225047485859649455180563353338558829307808878925957173042336437370251274313412230567680455065674847665577001924634158354992708303799898415163967961988620552474090983379021042120557612002691827228884627169773203716547348201316943507597424032757038583910692085456745760885829090854524438894140823452929952084749656297233636226229106850803001798369972942675466717325543617310417923573913129986953569845798481507379739150512181468255333588663917230756865878495879559093816067904947121419191601896606519961618022055623327923500227386663275165322281919631496393777923520466027097284469605446106008179991103676616861196293174331758517665014530491393904245814259492842768838146322318488590160606674342559024882502963292087913319023538391085385615951295664066582400680223601855937627201745346337877468594091955160506209629094790549073434456601597600995582432461078068905720380119847320313236766171562635411058281363371481400572558612073712430132725918191128592271064359257713587283766401655902518888222988295180934315059084855055683587234912983615040107177102189021360094901313808204226886512669007774135667548294701775330542038541350249299193330547043576681800169174717359948111385533971125512783296125420751889627752585082309773363243677296170044302213138532862260397300616851288045110416707764502986489116375857635165515750068619042609342999939417516457482888010367116569916842419653765322442998948606354999844626332281426251391835438586556911018044791760506907148510421374131402950594796421985582313554394118503693475667447559789621635999466162473932958130536320249455252213667038663821203505228850317486120620828395074940622698510364731226887198739673262824220650566620933749638873341316478228675824008221849697145067664755421197375109265899432527336002356932909761810063231605935140191716355708515263278982402928537944277344780599824038167564753295572324798377890932477188932971577554398083154578969435585439504921655661212034661290075942946001214927989568329191343325204639104191506529345757837118995967205389177866852004152530784567025461912232870118806436797399990685946479477469515756815566822944081018317703019533476980689073587915887751355352536030672737784698033368257371458109019219876334821957561741462772091145494945763407683303869667724887757389203819858225589523181466361908999584354068860560500844403566658075314629809842972782682932118834582118575810100950526371879083865657303063002883292260829856755433419633351441800176271792283812205822567430024328940767813868903996249490152708419551326121042788155293480098103470248030774686261953470125935666711209852099294993179075591144267851229881322756769765786665161941433793808902133211554834117578251402289999261768992345794516260861507238784311348099839036650395943599631964850953884589037477336035399154628227007719599079344341717271627642221945270309127160901452421694298934964129016630593655544339106527150566559530395922347075191540138041686930139943674188982714829129128558660905867426866660922278609815393978024926515038408102367104018174999524029042702035735055096466401248969048633020831623790751309029232066136838629990383221776008303905613124088962328370620040777247669488007329546614901450687224495596250640755949039839222751884700062324799603107002784244124178549746848644364352623609417936735161495107382037370919207427482855048088678801612989109593863654938448809875865829152461137626261823969043603277220762858948956106884833493775641907285804325014749217203645189218624381858193072520912650001531654996637610824765036465563307311204941947852225344529101895183821475800153405143970754026613136138724807612234367923593212941948180696049862679529746482426572650056202925371574156115932704903772452392008755562565214179088738706093049136891995086109301546477423220129121322499730326590871499014935536652827153698641043912613304528321253921409822256415908613850499145965849411212160181511595718110004388759317033386605205086550095264771365960527005675096504597646060495025404977077738307615092491245627810084467724416949476746559481580437927244872806732437951168921227206110240157887132104693661060562205797417385697340774321119255192051812052406469619438062618049020197546186490046963628873063324092241886715479975589776616318357165830863677962086663387264266452334524447323381041543243966257015225321425338384649793608980930906994175809954073859150369023204325309499019124934461514719228244705642878007258916436246405450830912630578935462946902809128747742226203837341518179215676096272048497525970043737982530110682345268232270588347383960839396802026080674461595467440757178566584196791392587296714683590233038003770009619834521057790993491113111730054655115332943850566990985366797210568824409104164922024224502958549229846207131004169778360332395958617136859508147286516789663697667638084627956718552699513698828614476269861154024837002629560023480013068614043856252014490506163207066132391909168776109199279360046236167163314813779482068440321571294092294002654645898202932557759763255586787612898450032517689485052743234171716599379918487540125142956028436866283984065664563777633712326311424900840238625119577902567954828108755677736130962932851629282085636696568523637777830030525472292150260966655326175203161908764136225506001304328638194038587615822758133360935993397634340356388895087148692827570253292219642679402013824246420397899976307904205965914619986310640439813800713579126625522605109403159444168442194669593038026489289227240819811219228228035364371763611802391664022094128072740786783988161912687547147858426192860457162348998332972846911602637165040992364333811998433764588863411351191267788880528540061357825619241840881267132066929496748848999809562580782172198301349034624383404089683538369767376575159189030091704062227273088727447635223240692233574462696937185944776786392589392133528631660033712981945043766047832097412259829703006897275705862214123230357110199609632591820276277823853589794379858244364731358315915699135213479164127103799534028875918994519652382337883820661911397506006515576643257341055937391743032753371041353587822912977028905636145321141371157348443097804058566792765063483095192082661840368389016216490736478470202390698143947222567472232416703728133828331480886498529087234768939635766514514251503186323866669749407959290464296650042328843761347631893011432897661907529517462537411799957513296142293251702294782317949349589291990516887564831961210515257322512294527057426813551664707786216088656618040031696465552856794723987619742324866402970112078427618251991889535862123112431984079215986699967982632616053850694937906390218577166845740087221766813144725352756277253267670890928475299646682892358152665216493501785413455984406571848945045469418535043002394371826698793018691277181505228263089150944357026307558089605801024849282712305353698878461013998090160162655798057453577580595442295406152239636638219903999686150191504608139985046262686294115305884159851785359940289232722757155361186228159270430881934320945050192954410298992950119256466549266788949542159720279406102914459034247852194012037695879242075957348440086527656057784518217528855195709365714052300963646463505739564101266406971457563003347105449723795530065692022283510554150384750667179903368060477070873191025401514810392965667644661829656617333395007213141154780531866214578205529066401407159715000013004893497823700261028223051680067027979287719344593958114874255187586368261935710100030338353283593313238924999420512167760681763191756297447059125080617721289612820446285880188942380316009273149171180350076952554682455319527826392429340057009689038392606586944920135071786781375382398047266979030444108562091737787226294067073682480119444635927673643231163126794372899713140566750777055491765221265437809842825782370405076734074383834935578192789776319988622796362559117899162675984749168975888817899891224969357063932508708765438455154231443043318537736890923798170486678628731256405644654335645166080136161375947633354951190857332905113197752086050709180173029443710936219563696773753621315643117194172002362883212661875586888184950266395638758443977432167266915400326457691703823363383458929772283658545018686506493786094542787115651361331459276419909566991278488060291833946042329668788276566077925952786413935381109793891728770651181535627474198263005180972534393207509277118126944585482019573841198701060792277557549466745039174131239536036174124486667773514474252873445343257573366832610554790902089976372436222805529157497308419311352123117484617486602180183168918612542951139985511752597951841408911936367246251395902572578756781928709556225382502667956536593233139156670763265480313427681156694468148238636492664655031520299577237565435880908170175864771421939404171438354257912019649421087051484678440466000144748455796238538815629495476631496959756406728316952465374161996180679000652124713251948866850172332393329207509848066299518466354103129679800688591208601434196952094231563752704194545948999414639374303739149850213707262686212289817650732286281700548083988463655237990853180270321464116331806295937120785222944110371388146973548444577886807591013265054525097240873597968508745948083311111328750162921667995661225319822081149747867450832702242581303247909045094472101628647801778399358449225386020548974289283892742912810269695392451736967814015250495620073345983766978694843920765506402854363093496222651424513856261470452589946114827278307699805754261425005121482629653468235034080219030929807314271702783836396168239421553957331007018520798653004159110699958111336266812201107076829978391521095901144488920302254307129860323563505217227940313190987322135451001217980678662479789822696239650126012360448673470647161289486929528088359665829978156094834179040985030475478713338091428441301195701643019868679489733330801358563229623043214136367256409668981549020372594946558997452511387331888696814304893700452379581956506120730054513728914654883618729351846154732614851813154824696498505763905532627327825551247385662726999983904141837849775457816719811987682251849101523103057720173800276919596283715402932526940837046382012202357275501926549422842644239386456926755933166090094957556248114236950399168380304717264211737447983868220440096186707017562121940686191376281759631990990288995082722677193965868379515516870369924018017289440838813374916993475931762481128501501607003311551628616298241480845010255967538379680955337846814937012618934835776478743389714587378567482908211140434255876016463650815600385457742371772714889628238569801030201345901997676962598681436907650163098062709179237814298418735807472317917028354754078407447684401343659257957245482331668837536938440726968527728319924100729417627089526907534451606846039836757518497680469683362384747993424874902393153669729676266437452633472360460546726639549779392380216493008071005855382378779325568839262450925723048952574510625374997960596996034955115140452538952354761231845491422170328436785057074042901262455933328289604053032077939257984887827804766361348466862552616018660373882634834402604250667685569374570771639909515863592104955019149171402678758306639301697888994016216656642583584345585317383209377835566174193910684315731821983773205711140500601723282194517281644671969459929450974673958554144388604025230431828895705815120339023046707081713487314872030059742797162241450844830955899055648483730355991445335284500145606631138566858919089689038337627337080511375376419696054973702528931392003530678751407386778900920666476049761882498178746946230899083785395277708555607593403877399945531074737948962758354519288360696801280754849172560364724321464388431295954990030457198056107048573946674041681322643363853912906590293794686324614367201800714412901303922076862554674942888422011771708770656266163932879466131765332320783565241960767966500406184962720761616113714908882824101006353000424644865148886863004877718025673818443963076371514156403688799406725952142518719815267945529143985545198779227057642250422324388908432766249236121317304459349083731264728121181416526312737520466756797790425035893655247170715806643724850668601401205909232031690562670811490153336677214285966887331193653258107253666108017936695170975319437390408805438396252773776753456312134219296645159786362236328111370454125029376529113794118658558968239958876862843439750458972151882066947009999973909054524430473107806252106942161987915779135875033208104043035244309824714322921760695229481821770080591313453430403961379302138151639937762002837143009085260032927761284676793030958741433746024925394678675900784955429949787447975193313727954586839643415811103141331942737381113888291145512829287533447873553845964951297018115737859029011313373756240427654698859139053977298966063961421157098783765068712432656803851481490503380602265903409325955164292771668772056718997544793683728448936135561495273345681135655007666492974510998994665717197622506816044767112585539815431274515226930913287460608574441106499945066061501740693212597359669093778313871515927326974718778995396037792833015186083499560537872032633024122066908534820567830540402722622636004986731800193932972405182950067556717907518746932856289431728901865889932838081898458064887228448732290004195288794087207644889454848875270502697053321153030363496128253023890229431927943745252181598839933654351888110049705450278565377720073538230938619284267231331162586943334563840627124409308728816832696890992532835804124516796704192088007581406044725559370594127973317498144651940137275288397636278635830950674012747104249924981650975403356341925826375978223234173387391865005217277514282681850412035384986382177655026388001615116245291187726873277790469360219478120616373539597223988251927500091862541198446637908216973474457643837954093912193314936300135671409282825532723280511807993188198920078344278291854790206478753866446322305096190428140355410014411509771620887942810219873412794386475284823233557414296595453531491905667858803401781912660083482948893684927402930338272237040951123994289544423347159212368376762321273810123942143320608640057867776794967759788858742113153595501978626282524762523344847702176659458036840016505954970382718257606327295364287367554222142918790988179004129000817484497720851369168153080766023464772912517037388064752694266244470750687927253099073135656214543405359903767989680694559032357869310115268230265911858402728559269377191402563635449521046368341691511840692849373021719540706430133158043893342498173905323458269400084265523762707341342533837757220555808936040457565605457057451699433529986490238934057057192515577286125964932603613925215480422966226854002993349660578710523783311199741536822539326916412768060121025951454472434271060313652635474458961237010479134394151298854130274208601540836802143785240529896663511564007602683835737420141763753099123421276701369395977460341981663506578141751285673084458870843103202817082839590104607965780540634363993154411478739887405672998855910305641367134577602642552174591740280218914281518643039600421762724968292633263822085027307488639975231348964074159491666307320906927328119871723339357844278529224659128463470773889257208345916467932064877411094693870268200431728866594940155620058628819639653023613240857401113900234354722966039892046585913642211643515449017326546569078628050340937572596913807401821044668741706959006206101543557612619736971878521808392043242584869329705373180088719236500619110070497137592240315675034507524349081764514274571717523955580161549920150648112130842252443834935024597286381262825902289657618151257528363022549661990491421750564883039491240855360800246209621346336159868116824349688449318415839993543505053009534985319395696986439940136315467849824511914995597510351522475022812664425512890283073667136865669950690866937924240755560470754797855288462161296536989668046063453638436180994629843994874983361166438981190976676597743885800298536659526029157353139611986288347051043140405688144898436520659729011123899123782837738620111604184854837289724412371708980961712526216972414186045346148154375677276453016950447397271786585589907532054878987099899877958774630132891175303598927193925038130481861449633848209156233127468760503743646662631848806236859543452959921033711145858199628064272560508385947957344776425611106044264298854766079390356784174159535273715279926395542511154355701394376712772890152830534447177016913374147925901372355683761216829708772917657894545810012880003926494979119396088873046845505611068246511285319803928255353798600980515772759438076608159778841504981611576978507820480159709868067853156846654227683246951744651986691797879367313049135573572643533827641775003289157409298783963279083335216584453904442706931521351540652281717076425898213775133701138069678667138521332746373000622872482431240008918278896982473000550840371002838078472623157339291913035960010420046854034996412805767148881806496291165876341159509950508115022002703304021492708485914682009451587985451881409285527921288702767420169557147210433752818511427780550629707951013607134419269505205032004126452804082792453886229879590636075013261553970087160925497944913329460153255147484133675318400422650499658786473508336899396511551039556095117364322029412325097548016126382391562961353100703270446661849432042133714867018767482782262663394560633220201297664980099343689368280058466667175046635484784594096503541118347274048177224846743830498780324224793912701226121241454625647208132065341796887968083294396246164698882153760410622095234070259589221235796614546378391518864249151513153814011210637481734907935466858143997844685534754188100464776384751038170677757206872256736642872201331946248594844568617756870419207227362559980014955265207633671847336692117787760433693570214600133101354501382776114077765197092594450706029543066220331017209980041725934496047035183702263690630758903114268542310853783295258615148209543942592460459250241600677922426577385180004691863820271261112850931195837142149214155229320635982199205275231203483150149213505469352670809640994912300851543018063405699800715849193079101381421591952566118096325230283120527785102923099248714505359640697448030912699500269989802695788271380640016380458648839877422137735391355734470750243215685912151487650424466781793710960194739873049186532537342437314142023343268513733040557542658463597878908381457602720240394337789616564540071132981011350875047422378106919239057299638643625279336807878131347877436685413028674659044014259073182147239796358579744846816525489260775228024234591688469186759306281743890425574693244943805464169165630637041859725973758976272961827034893445082687154847754143826314818147076661097190059506932474300631460118786349943605591126321261198572910640033113494454026108119295538481969201890724652970457963075838887588915215329483091652336162021198793115194734974767674820918860274518591846766149287578811602204758429969261359871754836486066347169898971209232584430820796849413392546434808305673424128572307833185235543902413021034009541551663818130820110797568086996868698131571289058539825187059173290328623800353940490464893038915677775324469149123618932112610620333559818436386932760565306889407143795477043944098246421621314938463835332550344737293041130272200424175767404214682385419500191129196104940866554906213493474445532347123037730979060259242261763750731996759567701576447238591058636540995258742143939554703988626890175167231931638049249496505904873241274934525234664016865034989027904142171650658447166192875956784491205734271612502906780390906760544865764903091063355427530096738602434435331525282542663302407286132826119858728659987577026074842771071740515473475454858936444942839829824872732528733130340841801288204872919825098491126000977258605849163096977210355706173215180895158254148564093643903279370263884345323541391499244883609321179934061315641138145174361558427189550498416082766957743128255908239714379430061308685853411191747188506826876018779412805872779132666236681541964611736301562902706002644204940004395223317577187367298662965091833020379769458780221438999614746279703912689934875208664614244626880865387172142606262273153538288959788938501265419547427780818022220179163504098680565639746847243074153569281914304439519999587077265928908493890855930479277274785692819000774034418284229538508777553459818777318408452218857401004779762019141613656665679429926604652778198200437276897846305116728480822767170523212844370888332294070175047519531863537749363037890754638736404263357521339653697016083294085992131958847064161885842236840140824763104451255097211338301329649458323525324730637904888972606517630114669410761818723227438843381929980716772696617383173290643661958667829110737214154222576300713566064149763743604918966755331838597130920348273359652486418071759154143021912812062801691844388319773289595327713440435888443656181343853384898888237070739600350338092942930302567596896992379736121203629937814404213744536523262519876575154438983648276182067147722463490005795005975508343044948710278549319496244579187824603910814644050902225068838778268515407255265423007289681073498928927746231725349434560767411604774232080305345728471906999275115575930646722735511814397649285662447964196587018847404773924309671475974109363766445171872366965602909592230679892282878496407340674857826973649832559812504570395189740098774017345847577680157017549576464865059706091850955062350108555810347017598309318539851396871898730653044600012831273078633690165299840290407546725475847610812912594392377737987862604413679899543005659045411660582090169847170471869880373804775216871175032714888658972522243314739704498827991615222005959983351404933424289172110644665951000287132450053484059669802711348439771819590357194165614160476401587034558750569885394097749053405280755834937361761960164377279994824871519399443650702691301959355778163073903635318178433487111503978949504465611255212961132792896815128217289425307479771318777007808262099646317616573737810441904081298021850428903149331525323058921395055199776528878920159606033495201591365176101579578925134731006685788515765230159249253447190859455023602973816423811165247556429076410790520233526029000073157732852842544659165357921534940565355508176207813941454649131837589740189695389337306875464575241641594453064604155373326745224341860659346645217024607333364410155333021792881966217276142812325786016150703577563152877127112657013913071620869712906125896976591519785390855626159143124078340764848305723200659126739768661751404508113634020405013226231233983036870689638366656807515236359232365748733064498787974036920923723460263419256328795165934652960051456095163809882251070469194473596177875176161330194769012176509250170989097913464425446579112467881940659191515946788711364140571351759188124218998294715718854601216440634608583594505120269962603742506166932638014450380074862759656016128331407352284139636153875466006585370496965179650108549759049465819903376030234309695826049841552656275479929798831686664048064678716877314420557217353677863139334578912838352966958162772795809273059498227621163214956039223814455839253333502862779806491861296982808825744583397671796751308727281939601036824147353953636334950658125772179245316475120963573027277916017791270380790597055671573574441973330676507381702794580811462728862218811846858589371431306511697039468902779281381963107640824045302334145949710103860558600054712629345758885578219510200856459833955339792926497046002569393341245365748852219035453560617341057400030248752478537260854908177253695074293599905632788426693701359384825342086076042204867398415359184515974395582062460471601328126349319497492125713163114983054552983444888278141120691625646920531422056133563524428052822425837630982665211279715936850864169176006324085717631623980589968273449261717083511232560199088473206477294717315236292734044027413264881550626249463435137947571059039237706441535722810862303498023872753336096081838404743291637904102999428925818927480572220456184818136400182337600542490434383885260349317227050946891023101658836049912922601963880145272614312043931456942810707021258208884745370709222653182272079126687606385697082550832850143487892332820914827203607436495781849208485012129023451412885239919348221968162458910815146520030561465046501051758531018329369353874339467119097935744038383681865975602672809995555843837384181647461807961835513547316389294864066863455900745587381678164244863660063411003692754241302857167055978329904034383110884243914555256095386232093535353011072107558176831468589057428122950548567052632802428733167944873253539260275529497233524149782444364079219114108833226445598961335599479095035540616833058581194619392415189704591543306218621925479750123040667249845464797777161042080630631284512142409215571158273353203666644882065931447493180933417573161487859768055875493794734330871158190670106431483729580771285197413235130013179776907259547778282686854207402006794382450695398723180218902826169895644094202355035691217248999683570017598224274641705016027339701499589748915432198444866701875656604009528700284088109312223016141932553811320988418847068104491698032389585249997496709484504535494685020559128239968858752052001221120951672235173834611078724516564890367385065887861020346896865740228133804333591035406111815924678758880335214752154691878997748431488470011738467986004989279025393604020658861919038796126477437912721077623856645403297784857793280342056354958433994419630343163220885655261357457558460314222572835709737037505349163295323843298360755605215755242057715527994224911823964907911398995844448654187437875945609993141792234757772196284796273958603874493668554279094918828747428624832775609448854701708465019497469407968299673038645757476091687772366940129518763172448377831016215137960308131969056990963839755929426434843398317805223177886534953097236011413352692467965408160406734496385955117780025032766489467531067008633761379442444312222147882112955517082607313937805348282144781962745989373484997413976779458229478957939540499433135849725264736632730351748296997338115554214455996939820683517061992494230330102726514724191016787670559382670279882416131572879018824476726272023789266097761037949646778256944977510979386140020389239680831622357720507886483860828709701463459395695022706041603605218254571089058646863482269892059800829956521931558175266027460468365374334346483022602966497647622298922572932424908013544056873765748772721027013060283540935262445921630330510630839608429899687921648573067180086736101416940061762483480858855746576880328383542119383903423366837388273209171178931199042487056541051394978615513709608688132076624462292977688269544092712341876788901071365597746657126820692919424694369311559636075742180575218156272045926899637403286681393001571931140892484244927129449927452495806021826064284027019986986459866067943889520994035936698034363342357747498328864038290549175647006716057400444199990748976076379976820469774893629425197829660635991276945443794361995253686809480945947655856476859020111889084794983729168675368727020659679568274274100839862601596114701843627699158849820045730536854287745485563417799273914093979684616887634200559034539026587237724043611416474963282949625340471043166176021229369345970656551259728091605311131401592387915665993858628504804702067468143024064601666173018689365579331121506723827805638447404109545312337334588250349901049909061256862101017264529025745914182146780882959575755020427396173086709203870346975714512955392775608633476749914542076630566009295672471444701642323123315032702035924372061225091164110789890476336417145287052270781500457780408540945607104457413049600258479581951795628585062537450567189175410467701994854084398123931300575401878060617848927614784223638005065703229987714333423873787027546093933567785892552292343233630907489401393098170997137649917499487024229824960109929149964605401559598000228619705159457581534469138800267675102425297005290017585574772526909816977205139211701624157887266234127905868671382485872264468364935833057851074617321877565485298462976117993113084442177884494945395248928349928840223539107558048406014604448113986926724097879057249701710398289755542290850101735361521108366075953446710077602751123372205598403367852417501665792918277923240911491832655850814336081763177000301702078021480221352466262668825254989599212345625715325751767825496805843515971337370596663910542756499971236913419055231029858815866117077235071037725135676791902978674501513190094273662803668932163121676460898989842872864700897822221305780419801702398241299181521154281651465049575534497619319839089739924290336069137398215825782704740307569225939995004935131191329434669836626970102671714048173486014383368068670585883269616831233358873608188309795429808647201133861017053769557563709523093644175768393837506181344557109187640642464740131140706164491928842677691165756242111311362955645468157448465207618870879784533689593959255079522274186210128166771897847232395068018905820591418277290989439494123687376473594534372954085812519539916489417883077328646590654755860630841016348166641765000574786228587752983781471122000352141388542773671376349356081383091635835195809802225777899525194470933837058791791165782683026353965096624459608433084360419731734086014170293599851779115873534479867904535162276148478992807213437897122198344347867498236615834815306051553950665539639813044693284420804647349260218836218437911132327099275497640438437070128759511415929287800408492425021756704223461996485348640419084795962040403418535240881827503353181066271911395572851311295858738929616747677000404152126532188990619841169997515670034781772377316677689190176387110105056372250880128978406512455106790403158627337933315957219788866475817563324927132680362416464261209362249520623898581217181908005377389845712201216345539409043994331596106477642840905512239809877896350759767802885648105046543079818254622451633153129604104327718278156820081573947891731846033247276734079376376086380482975262916166523738403484067981058276066820314903939627716131486763878678151656321424321185851152092298928714711720996034087574163362028692011081203099382974602151807407232210873266389385897532129677164573912496953311722375396881676242737249813232606502458247677943633225001938539859831998945460623351155529304567976959464678867493502270850321821203498832661259679132393940969940779947823313274087159599287773426198768673529903059072678011044090156949275755011260622891680176682577746178899627515943330386941927692804014286129469854095360995860472083480474463464190611418481604354951921086818880391833636862839572687428994167397345304785194060838476334131640396659888415465669944030326274726182147190783759479178731332668614376765548369005132635807026931586680814470777238057554094477546857120835133007298916163965923348211662588770632651791161814389293989513978999446908688304295601165912825377259828473805594620442943993661672574296114401586652773616991500711004001791676044970455102281820729076035155808761203500615367054506222463657188343280313202409038080555954273510876523446462843518961851977258300890273805597546314536247402771026317299900240481598420999294929374239543314165001864199173140092271500704435193898189707725844734592487293184466408458646252033187422664229174911527550260701635712083560155259691548647594227727714886957713498431165579062158765575763491524915690318387608903943102814673934112435624348781525760340058678725109343901040173281317092482878590489851696087477666081014653296077618305682512887901124886409518700198572567513906374019868604850924382640672389253936381431675338560532718163667388778341386107007780869126494168196121266504839457571959797903386457826415536481877646148405461630480615607249624481495768530022558139112467218018008349559377660966360349547179036324123058192494932653304355738681674409521008577862760361387206746666921819193221148525030810366207392491975132170664327062398982703436893651746305131605426545839462221686400659904550134805392589012307586710154702748918763525685388410517945992852449676729617719134465683501103591708000876726823852969255475873673576570096767784337989715435879976026303059366277359667131175967358560464851492488224965150567479447733820189087536168601913352569765754290685783671086394060466271234072621699472362975605264110870394931037955025926955877870340736928585434364224956793902753347644347971354772538321193490551675640787212804847103406980427687843558824139761921097089670024658701316993688724552684136106629987559352655076285095766397598688686443471449433113793191229281219745169851395268874323933672053404992202112774042404777392530919238247906740996369576278499302797977139873405541540382886429664521040688944540378422186431881446918526959871131369945040949315988309044504920647181883070291078670280227634122359021150464424235895540151284147312193542583112287251270840245004875546553768092438460019715500737159203443860472735543925956602870569127340953196641941655109167070543286114750151029218911013717093654307276511549704447084947289763717046462095022881233559873310226588914274940013688303310917635688579676439760249029535903359394027275615620266132262251383778711805574628758053567470348895099396953617345405174457372911057391023428044850675781046481730943044627382096202223520103653618347548413857047411198335612935357991458211878238202926778600397547245654247564107405155644862245635106242617823207737123633444411761933319805955649244331403747340565190756172106899612933911638705987581597727627762572398083806091498477581269975653660177294059853904480422876938506005239905740984247899301942757009342929797262762899983151895310754563719755968285153932679725218173998664147504879539041675355469418010540411922902268979999993071040819388898041552636903641131802719162621288234688986500383515257608625170136489751178865896596615482350847384694181188640986721874084637562423444215125103392260505300442590799083824432633364705855706016932888402927489974022596176257787528095156596983296410673574878294414069654473084418350687816416148983891544247623233799411021944949098463245537753123880250550429002054286231468176135327917144909040287046084353641159705119371039557757086876409629153898258170400740922515832516980892888564040329610021077536493938771467309495776186652643814075901806686018910816678219988162990048758545091492949806370561115159651187758639212106601030091598577326557695918282354420711850372219663554383281836154018637475774606715230997202298764902161442324640657079485764752653800810954252204850757643974977961731980066968130527424722032586253243721845545743890416578587680030686158110678725636604377943942524284453289772268741425830408169983071922292688891748930233916723811247865082451472976214005425433767106666318724548505206531493420235301412852804910453361512659634662322719289919981861465761446448527235959012575779495556173737490374473416442861850625859588784714636048574665410536939985927258964660800144244677229121290516078633811907235941167637976581530569042559664254925006995191274079655147988920523783096809969405959220663096862031562328648000594851017102359038020091300673073151188696978502764188536929719305968085560609218867363677165818956431857792325359369981254493377198081402609827883134926689498481138944289143150930505506258519193029810625282478129817838217215378528612565367268971343011118137114444076963597671838835007503167179583874953028180678024971514386272745891316847970465761229287856801514558381224445941431327985045008579504934665259738284403916086741298239514497827634177171903425590743614123189288210154790743201716714412094927498110591977897804608893564710695767017345430037629132894386604327156152887132868711329229488384296272076332308318034799005991755284234084176119333945173517271140492738954325740013254824608853935328201080947128218168363683896274851446314567570577287782054214078779719824445446761555818902514412007755921762617912288896303272001843635340841148833460109354450696654648801231637779483151732397792019978618036022203869477472479805401635679683424097904886088483084184322021424736831365405851521615532578330881285598230584330652914478364066448443225132567658489548434651022436094948900267645926617498825506973330286407777344494284108859750114943790245984058414171203022640240380050587084681572273542514423167490858174739532375355000282863255970337664248938445583251705739716838766495809257249025891934713298022989635775840906849376122877367963902951073588247948510592341254383782483926771006339891910718041807786864853163718241746667936771310112241333683968849786131940141577381837468903656680581904053872392806452997707697096921323526370124942398180875475318735121024803804951402083347088388686721175482579964773753273110421973603440221341333497178698148447181375144909224171240619045685909707972422986793803330391990868668877573546800171291796956453939364988604575857440358699254011907181243845695850469287031579358977629264969993284580248386017693015236970935430122819014931044052945174529669856614428056283627333417775062413682181926535825665499018886403011542372300144564634973502639352567710808087103817399416039859022646460472384218835435945765910360149718378855034093958601091139409833543889488614499424757296691690686424724770742123133994014699820953360836099522238736745130922778734004122719766835148997849096783544656150640085541265201155450841700224745605682620349182419870335351366162995150092893242238153593210487737330296043038385042470273901309159216894880391989928410244021539072628546276244797198861162987703093105208294273383593897033018443633622311215266993859435364892908526277652270636645422084737806427707070218622491617593991955416376906461341333528921955904568354228213450050889330738721608363177931707895601037133994751188765828752926478609139802368539576218175633741198410735173915422422546812703424789532241347114736204485119689627351433328325568192308209104960351425534613443985271439723749721277241175177106116372937071105530053773572273828775707612542502979327130310035171508444332573089677630151066386480935565149475524712338861294241132260550100507345568600194616181782761312188150805691299326023404194805637460738793734529742534461998405071622336174323313477952423677344276046118127428190560085093409498902280838499729527025710168470549992446752058333006939262680215529960886303282209768550085695322854898167282762955970099382937869397401698074645369959073904036920074952722434356445417919072453662782680132641036854281414703803953076015454400292515531321865774967387107220629026346640782062213439754148085391473995321465295971612772676101616823843713410279263402684622565853198492682962522542906037971169225796052415712617374360902025300197881638759455030450294157495199334316416120576325633879802068113287984857648345711102362550538888618763358761980687099393276944302104830253074539655021146830200705306723632029349950993245366230301186603564042887117263733984697863587170103263196842894835179038235524050128039387693439139730825260293065564756023380525716236852597033197737061591315588442458633186688764428843907497044748497628031088442231919566897267256106655097446842599466370691284938741935451043850491797101713909303741827781797849021403879223628081674854857501457295977607189285928559262146145840353395270802537656197489369603402878443884256531972159919029364310793561274380778468354825726645049522823604566364378985662702095618064098582258894964910635453360596195199169096156682915878201129501929628816644835737041324318849018098489306353033128892557560082817875162809172209347359346347204709082024865233032751796982887731197590265403314223093183349725434717936422981445495132879551799046700296877146137750167913645451975705715863579061570160226450121777938638395131643044604198207781470638646028408779834336309511577610153792015403216623857793250783543765216637209630590199154890166629299040489655086418153549884607399843165122791760276057807845898240831726414432800035922023585663029159464323704429608996471908083293517549604455483231355444573184604742227330582694935502913202658259059523002285744003843331056268403957347773130531511831841353256186096403405994681974446365190638606645589620831126621411637720834641696293623258626395544934185785832019794494151524184636190892040982616226296011187201076217018521324984938431048388490713217450034697220067504607034362675182735679821826580940732752631974940167097796992207852674584998138912928659898172210875604741684044739229520052942008785809859320168818243914739894134808465210132421651910260475137576017170749816739612996203068766091312977286666066911895701204561699215240254913313562470373745442779796472471218054277140207338408603684073143189033880121258649436491276868062132390967801127086498101194595617678149764899333525067441321818825299850139472172116127340492052701614128513696776867225917472185939685762847292911159281699419833622703568793035874672170563673010142033425185864317322411774431343942610506213771386323168695852514765701594062826396595671963755069671252396801101716559203166018701667657458643315341839782846994315045281076680980947486620438973185293030861166195047139628599715162867904548012645222964702430640167373789742540462434779924465389005852690233905186115639761274180599701495768084834642376634799343910729038160383783478991385826805554859199860792758997165574944984962410267658522400733439255029668925533713551590381808435782528817736290340895410431708148923607874020853774862577232296449031091149895577849575068788775524303294360098682299397261646550277555639497532998643080855118279797484136436213837590622006685328861853370482716231520536250642399786386049982872172610105176908897011816462832527089143803415116658115325479476756123347558758541598456271654165159374108920578685085364928203980153613002455686740962401634904357871819925079405545728471609834824990396139743820797750487398533053635746929599380394166829303125805663790228083832829958357014420468865358132767065932273039463951799035626914364096268960807879324498637360224364328227011799192125560777419210165021732935595647321445443082360700159334356292407009039334989163988940159430860955399578057017632969855347411164498399728907969759959767545489996407777066956981431463967507041405301001363320542492103721452362351055635515198500031810270227428503865071229101520266441723146714799711670061694156751773283596130204058305073881798560570858755205907289731706059186957291223035405962796209968799109507659645216841418153624261494441918471450967463230082962374206057395937154328160039061116851994841338639583457966399910085030426065242422763308473892673356391905052817055871652505922293781413530998047295438492308861797942611789646513410847092267911738905352213175611186624322827312473574886837851792302184368924673063728670703843911027062314348296567088825868337732150122845726086629949414992608666718165370619649090227860333690216269389040114584960538572404003133943972276652972627144570209043672135816567392279361089167431492888891607596248342622201623560858905634432219639739489023049980043590546006539818126881603279493818389182539876956635121915372440319458598581767830389879861825167903914657709858552923561566837568145004136402004415429561591723002241166410558944804546860602881102301602536236489547822565492044078516964913000520068089880583345930140165942631735935557379590298521581754528884442945791550155481076012747845889882992813883333490633775289562424055241287969907813434688970595948081504400219411540212889037858952854347594999215089342005200924154657288380282537474240283698794798613883719524224604797102978803650637630052671738261497911203746142330813535729806289479773794471620604845044168768282511879532693233217846834674540501797358395946930631487060110132976042664433307648034295883159035355771116546293120550889732119125602503997260900036775914969655861552350546796864295460928371815586021135561878570455498472008905092786293434639418785698257721641975109561114143209520050910269385987585425615719160281671002655575128632149939428247016275634188240425389332926137524689468416117686528092295017269535827061320895486157710224908665126513880982847679550097877196440874250393398282654464916697100861412556153409076542172974622934251619447770355083159233417310540712484092575050460779673105805655113425882614626955044948830906409382887998846765364792838791905795925773997992098408248859547256935343860015161605286133786947488816290939314052598584011566855960371640984012655066849364906512223444911452130792818671424893895069053333350913443870840870170758493051606286407800738280714929812731055943117169634602940610267715573596985263711211996789525045524908012786206960500624848546229676959525266298605183288681549103265695967843425686964516063789958688074899052997550733142642365288934054038685622203446849308330241348969366060249627847343576324980823934082880659256204074940539661150360209433237293753460370480398321686441873618775789719416559826341310353122360367129429402008333880149845484553601644273175352679941683247492092525779340955224907850392355637527705282927247944581952142452469106632479531439978600334595720256444721076392612278340675184860751142802089388653651786158892549647169524146979316495840637609704784577881998859857540578605526069291064360486826561735363755091624751281534369661453806656008752707758903183730316510574888448447367874234859223495851930926861292997318012554270532331183792550419402523995761784512802177244316852307021802716656491087392161164687632789476339144333539989083886399635309619059703154540630463248500452664749902179801743606997298456571862463108182737457680281159391460501341699184899264413822294139510883962368775957869232396350496546524768293525051160575842562677490096556943447723553441326041218618391471121628617358624449032100176325547865214350749055452865217489283064783165819245876980251940001963803468099106910028617921555429358509872501114166774597403797001398601515069971546805474758887710556357692433747416139066095446976915239813942263106361420479509083117625796703502288820874827203816902509218494687838651075017244305289124618201187692162859973412692744947687214623056110150343903906512311116427116780123937054932985738434331377466240754589822430628652540154977890703642346350991522189010403029755955180833753444978439510586226309315697157917816260785613870529546260052545793309862904706446827368353542697024379034012952536586133853673254843289307659857674721622614013770187183255705749402902216017269604000265150581513502785927369697609475822429201434946360407913599563451914952254072469841780667918730832025004528764972748050781173338602839509926634093800128024144645409839310727860221946427600028828987756086579386407301132850976758392079815965393116769226790912015518791308238959645592484695114069507337489976495487359954803717276968562577535302764007442506235685798550421931580110600263440745040877530671917571023504267544345898625525873873368027323598654106773644957990967102313610357741218193142290213653079713870357201683456742346971337291310908004256191613021894192631290167046490202984963119725939991143221217134332934215676045381223552394359697698255722420033263144132301265992066904768241544107971229541059502417235964650524287332486474144544788950879914428062792761258452595274530446259886308722945789778774784142438810271442146779122694798163202897341277958675667870261325374865527133154328778977506069936545863270823012175396718965214304273466491937033763857474200719924716035786000422141496591287191797571609409929922806854060036918314856946019120428996756825548044540924075262602908980979140871788480404488510534843222486765110889292771986722644872754542145994192765450317659121268293336819980167924379001373919426398238167862413197406719052816762924955138030230122370470768664698851482439885916659078950054561630645754583365844582223906339237876240151168909300525776944934319774969505094625324724070177372249572775756613976619921389286747416986159535587748857212400623644165302133172498013229277174390491336345989617525331292776795599798737844582977629117196360105768539490367229874611445364272632843903954820917576524838666977946654608945514670336979519411232583036295957051840185390796638263405379291713153494915753203933063205571259472046909610484312030571581375527455078600164708434848036716970048375719395047705247011380312945159595663859539389600166721969103101001824506141816584882313868051681350444500380600605279110995344578641282172757085054707737805452733937905206354549938963307071465679867845046502619009740792158440517214804397172623456628747310872093998363907628741166559765098156777593612296902467686865213061088935686661751722038053810112596094310083369599983157743734271308323762118578489614238017467858004981160327796807227390477365622988867485770314423331495907592285576115845047037339796495119973398860075183458737626572819544887967496597177641687805273413746686500592426799671892120981907621987100165275242538327722862581127690204412075859373480365079300989150292407732942577284056856972921334330157993073237197531437099606508094454328348411865041199585050588903766808623538477166450152183034878956866050306310997847450960108245637027117009518200502116074855803425544225580024442186548109982087942336575334501755359199506052091913305333442637169674441397626615666368060444959011948783299039125861624920072876469210660293845851699874454092950937086730916238864802048588319812483190464646782712296140812985735988822083044221258188391990701310565611664651430778297478603054839721049402834874726270620703749303739629429471794487616777202422602687309701226345093308630145789113174151438666704463298677378501992979544546350485027714828678733066265775751116220162204901722748742834850004659354279581764143989423752812888267185314900707880546753306695231308489899361497392883188776776892424959442780133691945585220063187052346815378844920572476992807656077419026150252042058848415660468047819560107107787443005458202108981689005019969547331420994393319337865372260783539320479668693381465362541077514118916470320863836035401749772721624599759939513349219960680393138633567060309817756862980608725984077887946473177134219565417785607272076412342371941489545425637598169584098212658076689790866020313717899137365934317392067942386301676887379751799688858931531890215131379411915221363479743941601882318047596290562086470932294650962312073174543930954267105778340432749520745534470686763266798909278176299542837630909225799165349290321016284828306243908324502178786569808618752776443498524342392223492127908319457453389375903850942846950990596253918462567317967145333333660270203660862386024069442867771708759815970533914308488405877112357534556651132149846413276736730558352860334778628270070205272705889710838441545124869385515557585283066501131404449196222104553925942412068621538515577459319239580266471579895130987528183316274712557399087171580190209249220912790829896094866090881136142155589596059364559763656518295228316776302928482039615146656929890182577592536782989352043174610267355968030303422087481838195324424320698331753911276369290595212470537849189144579208560605895879163559626378396132915197745585131839903691074222400404113378878074147617419186504862470742947322037482155849854527565743206243232268024829719272654205377946581223562494849334731937055554157775936812630000548388968958877523578115916412298329877819518678138809142093373783269025375050852269122988194908633348736189283145039146772886024217734014736891408595276454757590399462796742358730347333366827789152834932336772964497870670769847490056612573662416589782193174430655686799089269063997048739156016814834398357612510959001350983113957426546689025030167923115332935980107971432064259790312214390187566102257951532223224211392495810241124980108764521578463232895194834797808285800875080270012436585034439094161291618780172703897859394512785642902531078694935620263703556970903688210005592340006339608464792496492941368895341046089747008814069242833211273652693967705418652171283605890102762700382045307512627471274787341085942220035299262734514614610359083014244824587906886779967659926721745583282765970738717032132699813084906444088743680299643209136677011076614640275891270660684226132915001686058111164529809725328819179410290208021758124809921707233475472083388829485534300151573772795761583144464353642906751378307634756518790550618486710335368143804616516479023580055999506726167631199693782441690575354879172996660572160016534485768183241305146009257777542829421538928142911945338119060269450613902829314496511473984550304318194719301954968966303020156520524818371963509628537999969948585303018842560377781715229642192559324378146327897441456187809191594339736226083961432492047414633924979246965709444059309598616041766624606896527275773949389639214094637919048795928732535240149698294959046252738827436780794544481293761455054007576936823995382820889336081996090005262124941205797084548398762758610389338976801022848317607902091881427581124482460572146880963482717727152090666329749675746025995812433605720139504918572244201943471369701448298230404619072228651920105973381081976219399844930368376645322920237735284559292147144001822423642005936692324266285155473512668062112987360384734043820320513587575013207476600313762227835915676585655879061477502881744930644727627898978445228158919607834579229410492307758173525188589282126549967865965626822075285659646489941005265191046491236900586929242640457597771912969477613038215604575921121138841337372154077828114883002682862511083772148061981797044252145492275887637893788419373493920762750234749203655499965446328336901885943127991480294881384702480317871880779122280155132038171245509121491579173394498087819644921163438063225570995448853263652160836138596408230463983555621031428792202211623662793489074088542276217040904957734642107803276387331291676234606996550477346235630972051336052592445849256861989421525086610327372716509888439884787282372850180530067350085998486995505036572015661360159632252389568928420552770763861197192773230177273553973752111204976262179152864436633163909105016547601698733997660814025718447982039819970813524324012584558254835380212020818922023890884101905878092053948661679297007658237081894761740463653729027711554976839637834140945700172829334401744790614161120777042002324602909120095252085220555101267854197187282167092144097831762797314195809740523733941616742463511537755266787542638358856807922564835275108195356808385426336801407414182241870770809359144619354726254265642112988223522395842695345095354248171503668518764055722139579529993751318895695727796972701476256601464345592535491844900485600562778220201789491954932823931102259767910376996353800904354076411027480445439014136927111766716835601782365409648439259173720091285161311547931029562024733414549658135177739012641760080156687734482991934802798938248264698517729379773658952868571973609873922257928399614953858259179967519622723527524476778504523998903570781688296459952587710479193378863063926461718624240901321534171731079986717547564375851763908391537921912509559014951137728513914480213512764954809199982616335083606872548799542003811802933252618428174204865768624431872304661179483723868786583842146700321587394512766098862028669835558531208848362967367304760666054817319538798722260069907480662578327406233126991165051790264064427075141144165985568607304552939960012425030533056086130500525043126178160250122577924877066770336824164914515076915708036164675746745808105789802954606609458337619476105942189767437107067862399218001464346278806444489546725565503481940588725035413596761633210318173531006566788839514747107234734696216572785274215532909689740682989438306656818543829024990350131909417069898443562677482672307365697459764914159888350137469308770494337929209670856295951491919624472279200377318061590104738617843843436166501209125637472235305975156106786024651054987020815837239453761564292675568872708968031245118692740149443019030485805257116435751405842890647593640858031632098560465183204883852437544407623842923935810715592744673124414561690171893363291144441576388405802842216155194311935947718992372540286336336370902513662088404955191155874478422503138102620369582337172452716414649090080928082681039751679880356329080025049803620052245312621768286084330941450649792575062498676685515435531067625706065935541094630936407710587017913887075294985688618175313885874977798094910566879088231172663562411845454744596198927030026013062272165161071356559011737586141135978886774451420839454778189517078833935944058463573920111404256607745583100122203369625240517408668699767056041857983917383659583572793014242717408108908725837555819842772955111874140923838590998792376776569540437559177557987814830094112286005320589424285236654470200054275906703379633165250729786396876809257623045237750886667200693956580690826546014143028374612339901177621189454286693286786957271931393991964614878079038232377278786810131090988618713067582206161005597294884616035496515108781393112466492775783633718262639967790258445338165200429475256236460905659046322979451234860106903412578693682212696258799149494126088368328091631153555184961414284509703749853883365003080905747601938375822194001019794535768850972988137628290898239242707658251958993392517463593030711600966678708408460621053463058113525323147123808915148273050583813013033184176376185017140994011286372172690486727154977186813717458185700845184729190393186063538389176888793551653133081826314138139286157507229097592020436724507842478357368098120949936109072654107106954271879928697549171861537843116653146101182659420622789055388453995415461356873128685323645065743072784858351093994417816669560109850259073187778029308787545037211294288902461750993887534214614997790468147654621925593381601051492685861906821412325028420905418357404353999427847581378661403716553499870370676680735770616629861779439622559630486962220262132842286345180626283005976360363242959786623301709565109706875770367433729482099189889755324050026664726403428293726444910684293973810070645545081480492772348015702307860240009816267151706133252957135421956085478941342949815889922335532188826723146604247750150974837711050140967054027748058365976946503707908721503030077285773592117307462726839252042163447970445374269507239072760139611020879983207085431359409657577275348760490653606143996775991792600679845163703134678548913187164805625257217209900751982325813953835205224579545655291614499790105001951095464900424400499748799938416208296489564576719138933822263587729728161516957109454640924763145927366367494355935092077132538131154701901932311439609382661105369179495340932314457023593815844959636587331963487598593618528717700631709701512740753041339722996935470781643196812366289913697097421161111945218511376008189935014489631944636369881742544682641806224656229426273595437660217203043577703237350500412900653252476046434622136088457835078183420943550452840792777818740196245064330979540171323138418320029064088685352310015457760835588560968973016724521443211942461417867659530872213720158923863475135044420324796925816506802857102342540786305620800541694955599611691003211188036564140119031822626849830492772663589165710032786320421971253435289997899261561188163594507626368992848836957268487461200353292846286211669094382915588799361522700257370499399689549815306811090230427975974884663038680251733613887506765551570417758063697494584648091398669692782319389099335120172459966768721736967462681547197282673823798320231906857317748561511708533292914474795187657346012508605942805509494824076193911968278116312164277707861565630171030250874234883963103805408968681641449201700906064196949398411318090675012212782230439396601726771511967947689362283862527102490740595620770817468868457819828495265826734091384505949086724865296406310188273197801291657287336083561871074670560944656265185437911228765921562151543169434616106584759285538816857590821039005862962354554176500735457348978245137075650634709237603108965359731860348932405887875450405280469260510486450292182475175580531768057790143904439340188005053996425773147845758731051625910949066345645046389466024412043811783155690044256251159900389486592356364300204435819298432880381914597912754525791713762730618726833908170971005804057404980843359828153643812650609358792610546483867087731274104350588655598701338004446907596641871282981049756745287877072910236255269811471010455432574952713943127465035120897388343927683330999065552018061530694852877449253651577753274232439234810777114632714571514210578864779350328482509011384964379003295825598554773029401415908000899982896848262461899787297404545049260871888494602850125199170110045921813530206492054529205137005439063660676318686126665761901864750294887210443853569337445970816048892192079361625636218197938001354887567347037424511869509714933005789127746997135010297679129887420479412038406807700549478657706899259686321593780889706606415499007524795970306595834916918992540369375605047866330902142114309486227887421134726492804916180927054007986575766763760566813007898165114603916033431833667760440978505000262624639429066574497635074503984588557125276545777099965847841298302141226471937534445768170845087506228290459516288608773175797300781723337608685637290288118462052266698192636044668060723952394823622851403960608081993543880908361129429642398325796551037360155607413859048317281240585641296498734337156770801159331470590695226765717756337057317302881536458996222758254441921538061027051414093537136916431086995393935826791800665841716207588923721738345355972667175885831234417489904322514246331895539425366170070540054274844434099207739137890885558449708797855310665766630450814427902202125831457250410130670525577903842329436355688536842276155533009633146297512399915570663546791343965698574165830268395923535793107443765712664264568810640280205734612286443963067327229824010614599574906922371960427496621212161863783550438815365463834723401541487185850289858406248891212472163767542130414845472013157423109911862304741882832489842836542741847133086761784109843143166682340595837905244062669308880370584885684057255147875093805512032299599478842487311467747968768750363527981822522502089959439393289904050250189456105001902336524727177669820234185281498719485918954092123653546564054891885138182536800016557161827382977632211091902870575973193919723582370070685490556564760962751208965525461007947272194022359660438909880247975093569073130768144986965667323983455633844661291721817406622378373928654235744016755161197979437425158222533233350677935091937732698984464158109255146108397997530766686154953501844244786696468250136696804430753814466775779193952725755800971597929533137305799627925092465432306330406912401134613148533609185944760460702278692558649022527144759973521614370066151609974082407508579306962597610036728143606175550056301028294920158747898652278625859966824874591567257068837602349437543686683804839759552971743632399328768899980821073683613473455704433757654493031957254086259571797769833553705769531125598147277519667783634552449238142879683567830266302883511561512606854493271440277007842568070775647642145020640599916727863892047703109328136770785601768335173530525314046744766103532658352603140379122001821300660262225757876388498297073489287530622643539334126312809357800956567094424258093113333109303261079304336742468572616305361765108052632185797993509492974583769511235669102561053488494981279250004400572126042611644259408350142071648751696912172868718327463483926689118579227304990053899588679290413791053340228999343676963697833658126571165244468445964641996610000421837740998741166529869483987019445006230404425279343732625458246951678625965459148010761798047618778546834595806384581038535060448182816103249471177320293746148403422480831519927800806813660663152627337835581261076906141928896082915272300827779031549620724900349533263184898714145351671566930808047104144995946670525085445598477218401843924805654927568619441502428915051472204853587922990991458523164257401193846866468572556455923456801509757543294407078145577215294795652883818724120968065208947662115454184326476109024546605524146619864030035824861476104432466041439301301356698886146324762580344915155979789225874866128185311551819270648158695547006371767064346810420117942980458072337146929444023097716904522875607571041681745348673757491332043700277257025918207206113397751698420865988346414680426048942275419667635048933991571972894906977869894343789615885940936189868389477814376486485633560164217929039905949711209161282849103128081420868405340897562465976745433157410710859559559332229261855222132046520575555930925786783600151355537429346343570203153775372755431159968790278712435700599799361328903590380763427171186730629210252119955165920997681844195478769623141146420411111394778494365325380126736218233297011038714329274271310996814144135483175209158378728515935754456331449854406252020024770476986134494892718480128960176760395798567329107960256552784460404712818604458661110811025633714480771641183577097561594685758407897458750964135262185411646090777828594319516693145960124359258451287092796652318867743232627382988702455370500855798778422267673235353644832176753405356285827167945385755599272834871935667129903039761793277747604457761653333671058307977411333847435788309271716136358282544588464597689172865343171951462541873865645603411271745000092613064305646082873001279389884440514395302789896391559156901001381604103150717292327875462921444921743166126430346526510930708249246782162111047219454702003756766820041127370528780379966073727348733395242793119392813035236223809467648647008166113668299787122197792909762558279403894824728961156480586271080019167095146272449488216768716209258276816820392459578706187071660471353283704240933505552307362517218225464737306945671724079471918089635329375704153225977025712520666528456475453255338254227606002652538459226470607950201685138760926552947962601166887167856052946911984687119582564843962551870743702725146277387852176722621015322336014699098108487218281499005992902915482630872204452540105242102759207049690004503196765086079683711748871560815821031762770243706434887876093995349806968657999237855577119332167154519457197724784368294914817907312336445511062436284796785010858159690306698755573173045403044844301268885885091214423174519626012828095672331690201536407137910028960559897103981385725933012478465590438508611209336871671519744202879566019920071941324631108961906420051674562815717649932663454739002174873690147991564861158294870257061173937079479573890434658063770436531465178136865277329587672349880927664104720617493799604168952513404601819683763563680118616240175899054939219700263548020780127116581115517843966671200498913688488948759405940961462034401522108663629685148623038941755090097100245247890242808898563956822046175031717002833490251895974866203963276313887335482071807901740530912501112980885429754240443788182060471777984000503150663844883586268172050061653907359914888204068015886850814248998604840430799786991058969835174007957024425502191009604349582103958590051016742965923872961139258979476721689876444356691306651919405616176660122199553295188550541324617592437041693043015044393909084064209605620190105072317560794298145800715234092144819034395413527817477957196524018400339487175134553262398552753787987901896182460552425899759596292534892429525581644282826960256060975588356095006030630464266988889256986793005018850784822005055105488888915907826643990917703542622335689601839317860501796639958947587279272441630123314423006296491863920747800106590234219479756440627426493548809900232107680808030196204627739180767648789977215853520469782395602136028203322466684319613569665784316847816537756987037389624078240372275954034275900542452050615647781591310017665536350697023956740952342026055723925431407007555915814109752154077408767039744754746876558646243788527883755135761001681416929689942858868539849852045906870614698759916902689922039820958243081987787344490160814560352348489634475772422146123649070404349126598050810007006572687892724707366518269345171976547649311896126327622091781729967213934120441299728396816807344358419788412570742030937921152934479331460321868273533495911695311352699282222325010519125426036003535526724232609127291217876291599156518209051407558958334858295128254071110655168709098823030558414021495930819382088681368989466610797298009774684803573552956685827680415474825351897001370475619788073243365108828333385220958870076775598230939929056982538200694489272679089340626880617615436849428233561998296793188982390560797781940386888740855933330870245516060684576191917518203622416160101613555930350229733358819734186481994458154507658537843689242950593480323383941827427297766689397060213927939221095352409205212169410798011480960458789421066922331687897596831249266651512522794528357521774846572034305487039613773689310538740151015151057683291521184947701522001436740276195546874281484153114560952871189417246638425397205908289410335922649774860361510283742899162386492223216526284954886810649029549659956270979596596836059845832526964118260713812772270766669493213565753636531992070191599666405267464697016606938482333863558611520558379364152666248061572840986640110728725942564564516142343004759727381674603967582454950589212823384182479121221351152932863964690089417145311889144848281992950047689503812644014986164080224519007768773910420078309552402212393437897979613666629289124669694259772242385818197668262942652158096548334068596872781186842213336182256779249421251024168935253908835483071443286277964909524248792416422999787147088875318824911776182243927890280554387843844750071360980660619900309763789646554785611943466723996880303075312987934838666176787434054393438937547283070840124471583971929609563132236048860458744214326057510132287143649428562198568814778409546447856829900076524046367935956634683800733406272489362980414858539603301746092524535828550322900311888034684567396544934003201032160149978534242495558055601244010937392690591447139217118117163191275260827528268255650730476877507944244613313858611800773815387607249535293326819173449155291628941214688414445697454402829309341906171169630708135221229878015279436242804359703609417753439921232116761662552506498570646388672298907372966475213942128167610045880811249701533971589875064998326964375262264534259515764083736239006816856223284561087938435513565456850442911844591050029605445720073388686422441721937745783731992299836494844379102416404360226855817362718074759813187115114529733507449975794772518153081918906579428662550507144576739834357937021555602782064856753434032740157780297002983726872458419516674551278269582539955611624345374417513843617020730720712796526784577227860313214484698599039500251922032031904345858752469710233248916986181118483230893797262897678395823011316332873429961350053291061912520802396698311156112639001587907873393905198538789318798117149642807630077619049210827470735197956413074545911537832510551413728933131586022345629360604641211973126902077767582574806530488932183498960260723542571071449365912958018294488004904117401717894597620100678354876275843739673284236576535399134366385360555882633971695415104673932577003779894439728909909535887619597031137943205569656303235079171345908419317532539128052913528952686129322382011170286298534819366511401010669113210939557709291722435743599228252025505443424183263576807420279944444668891755621902397061672177231274989604122593900012724325768515370121055131892351937297018193661623135674447851946380650955066960999372201508305194851173204339908077539873285705054609917324734980326240282472914306168622829886034197314154143813569638889374267975771619012835022072864793162309032655239205762529403108719046325201024400237018793415950420454975861367904482337171307602725539808659249711578445695927150201835505631459729489973846155136310631618153123399288124612401896915746537058193983547728051924815976740322374737695504750049302593448216835916609068431889223173635703685545888657134542048824885211437863312861550712107916683664012110403397137074419485593090182156927227040294798971677772337208515410258974872018190948065620441860483858006306222995209020767366133439980953254208227448419991767239646388505725610845755373074798537011248647183175983163522003176309550248948019563489151988940495739186406911342426209500671763283084736052766874454019128830999007556207769387688623031112839504041728765815891667064792931094539971171647605012135363892991326664135240362272378739492094854913454130425877873639814481798002489888374237930130861827964004372394461313346576515044538908023250165805135540566963117649551985791536247133328036827338713158318322777490154081422480661631757951339871525704650647685193400472990750070154280109539781672090662701595211745326844547865494086935814941086686247089615604780480733333490356033600582310855925925888405364243434372698878090930497455497062639614006820592625946011721359043400569909427184070590378022313119033959930635155363893518093153196228401834244784334918185153932839464218577064998773888774744188350055974587029403226023589639618124679793524360035282285878286606957506640557699368805342841995374177386156120931741260086083638888107489695741186989453698733982477817207866658797703642888141391318307651201581040477039544732738825761683203528731199478402861381166986967231611836450429839447697321194627487043984120757798757195346568581320007500261050306369962561031174976720256257194707223879288865347976691374026307271532937407296090597113580012487538517475064171116527792580466007173847713276054486186671294251840215725289114819255764799583228083277038394315107924099264768257270704959214650142985003829199718742844505747155857797555485485526730888910160395243200733739586973672963246041147485717585523767866715557405636127686467027660981794492395739258214688476293305247814644214526029859309721575992406565081431401581629604212279043326054682182960977309194850176741367960741455026833265325348953086637604138842050618281133375390344896479549870651182456095890180491640859554220893581659269238745665149473020273809248684880197537464140597014952632801296691165542462900337530680284853162777067631259997964238776571287840965299504242239241344551101828526619391955873152044672106738876033095017180449060379984071618076845076946319368937253404912566208884437478287200365279789746895576976301123482441050323660277967042433730930613733044415907775848391366001869254101317299664695993618258279044728261628126515941453487058115726691235575972653333432909426132955490706308018554488605452234859042832778989139302086759337670266042025322451583917111110637779031141429043091277343004094471852091512348964226330484957190791742230647013318235262572099498501277005657275352485425151355563786914336772330958996032751286841820898525713177347318106448234638638699968850502166802007847050732523260020836392161041313650358536471301697448324510557209479198112318576667978283679130450140920649007251738775242002113145287736417319183656280625067952825380632609341065597305046263140891411729468599625536667075314710850432389516776883240671354513553475940710604394861095911382158584899822813543340718192509275033454727534298172914181011270267695070195511113008504366406512601890563990506622574250004872981359576361632830105914569041611660556273308371881987311378509440348389266956402589453589843425557115199153165169908666887353903788987823565721563299599769009406276614704076621272138999075670426146496675308564464144350952651092221900009578795290348514877475682481436475953633757142589166199410818789475727543480470096837007059182810247148073623940012079396737678433677486093526569843821162171211309419374148104259054199880942881419591514624967588741993918631577049133972314103627511300846022010625866597129366128699945852524256881970340741265963653045887418208644719574055268332857667720542615782750030567437918334397920690223058325575005973275429078058821807391178860266778569849303332967366087727324918734501982928035975807916086461648068066457740561692478376331332024769825952848968603112687362676100149558488968416355138392635630589489297341617810608475696642991674988267703488735229976442653347974725283056314670106252577016507119105737367750095750309045058645986308166827798051851310205302379030233361578907787473104449675096868606786961489974354456335658416430878895012503736540953821755258528601139138369673506274869115601450502794774220016598517713248460348663926502035805947355450584390587432420225815684723820600193001293035971766217552182364796797219878563934106989815171142325453830039384802913010909543396782462656020134346810827000791969351429398740424066585631026775841862412489543102883074103916867251184442993050914385474275600286023415730349873791080952140884425390553145567195988311163412401647599021139438737526463962311715686512215922316179414649600904813862135026918534807412049824150552601026899799845860011063173814291978792173571015235482409308444366081340259003146533338514756811699459445440434497722399683820679977154348964716961694579417113361099600326531869100019520910389760420787974465269657550998691628583338058294681888415989197664186028470651882608496809898692438007242551650357111328302992483193275588282530486814223003695635610280826104845660089557198482885179333618387024303386868295306521530312896255021903683035729542016756930968154107559030775550589188163471721891774319151628005428945905999254121329291029331809324580321273386025031085752171025283959839539469356110013096309529033000725540957698808110966925029161334441231621795158732779836512914197091410517714265701798256586564287356760882304650871711324156955785518785698958586756304042230836449170039493448416662514720087017642660742815757355411359278243039564651401085758750550566787729266536838771246360550938664880026953110393503219369268946755160189398905987155258675858399966918315366376742138714652409289403606011254479659784300684935368470055388721831401528630443070756177347471038579113376254774815482179533818754324343315373820398967521434184553464027795329109508770356100309874934664056522696935825399369606789565143063554891952028946615810554207853085512044384328582740714521103743421232529935384384261669054124502030399501004402929355569533599319942304903236950731690338672404552249413281489126116800726593293953768809905128436868003404068585980377323942901757716975387907326560115194093443499443492245241581636238776517996146888404184421001124238343369876944049013176900186217159543788546080362086211414491006251173984277944980836727612601204964135378812388866829249237830890870276226799208977969955112127392428014938860202908866105330048115875147712490114565613645405411406997259555311749921935380541294951114970606972934677276047922690736537891285908618652803246730720292715346974228289650129120999925123874523445732883830010777844626264976312179031717245944672656481330218943447671519139510935392869492671267942108432651867175247133730491179510811890810672047788355108586261712844620210464306091213252630171544918619458940719018392079409921633194738079088092465520886004488606939296671911145087354331706479933246454962865398650485438320164575158896358507677558313833781662741360682470718819722809850849562794936223444333244574963617681667156123626170731600468216110018449537671797146627977910690895167459999525780245546878824725565513089566973100830338625655521140972062671880896473288100395594544953967713973306341557208807731823145504115013119242819566795974352702234724918831107658646584667013536341772802637911987570124831430878160910311589660007477138473278674280345961129379489061745181750002721679242491470134144503113361425106473635040018712983048188726478948545134178304760566070696155782568026609971408568308234297609246474278927814220986741238253861488025643822005301365322142199366111159917408150954276554936617755637688575535929714293384093566154576495214682156121020564886794570291157985389659151948959814710635430421769217677849762516325380238642386399326231729757016060055068164580545839629499089297357977437428120281355093041782784663833717052157587420659310740693765375173281075577817120232748910415270554597400798156791063236863599872072725692595813742986162564435069819118000149551653863090472715467138717752458660759211949396109285853769782099403785168053484125113488307534730346725506757376773977321664926224680737557723131131337912696789483231908165764646808228934570289790240124904403221139563532272382136577925612526618754517764502578307273534604609770959381457430919936966315288200648349262466499809410543876274133240234581991387466571662194846433660887346439793600526620191379278216354834478401457448108842315010252740537874215417223283736975207185762731982372877973686301909872377878589821091900485370640352269080480248330327430199572029762061682679035090399410874513197487001932101142013562378384511217291019516050967935969114383473162140684104703008005403411212185989658694796498742973629252100988136834793426021184878996536214442591737888572403414568796044119233255141498742869536051543646775967593650296516235782436863197210437794568152078126757405480993688872263155797894700774174854076422176974493179994534468169982329722977851793620743109378674787320570119442348881827728413325976187811686822078140599894597156211632924844336222094191819724962570083246569848280055500304833254829744518809954384597723517216080529552365155370851700664853370417389787588792326453469519814409300237639665340617874180617540665496071719003004312392846765274369960157520010979166098220732062904780291341462158750291675941553054015098723644393196869022575405675680531302821611146628191313357640156050837051991445421178913529838618271562387656578588811178256630208127960396041798157496652659444468199906466665935612755383223366096767862447386219928150959642058381766884117105804821691731279200017082402258400450812185833145308314437962576779057800956590100811002428533126507295309523146750354230234289391688423855651300809969381769460901337527155998429075123354181066253420292544302627991226238202728286726081102543771923693245176248931089394782026902417889808673199241968473300927175451888324951957165432740321478271461815791641939721020187829099173926155123259367859695425137645274996066281930471700033325111513565074098249150116593374100576599992306133983226008123690286008478604656931650745285072269000794297057577053409619699043055893195591394838934563172611148565448061032126062904760329526256484483492559129398687649008393133678964333252989087746293997767788019588278338857441741641359748126512934815378350745505841395377118629825639084456403225237499833049485934670731282250042372721971088044059725720844844835493792907754088699659423329164593392783645849050528852956484137154599725584662509664443279136128312491866002434646809610423109738737328063874408442924438168817163476271977531961215032434633935612937593327375534473928559801125020002121575972725413351462203108540412920532429497015343493629203829722685724248071803594777757683011654689105818783054249753540239208311417516247938449824354833301345861119209315847706971145776244850898321923325975507082983802267182015662630506726088557858176637570347014814868433941100485702264408588048226972624319010630328648909338346098851893072331549269727731854663360328664569828339562069567900909525690723040622084620554834563292541856250941553412809602344481221983921586395651200128414989688136204173167972612577823767281327522771535361683632139967990783859274231107696954875715449417569832750491183923575298839934289558109337117642794156051185779310904452822841004328526784050009983351101522481778700334953576569534861859982060386627580739011352689299847866732678397003420149971136806117461252629620728017285364511724937878515249152576544413081221323026122626180558244652587740011650390453265672979558520404611561120449513307994647046121562975912563526312195021763837875796498111454519326247735377195990273445812214123123905854878214902237648226621457048073980295157719931833497893648730303884769618745145411992528306258120006535295888355941798509889643498958147547193079920860344835870594345200225186060260450471577265941057120996055160955828628482777147922185379621872660583207927533945578088430401675308499600574940867844384996503473818403609910759604936948622751641100508473581633274076457478902145915240777316040947237163381932559911143915005107023386949700709560718411626402091257560861074677442843070687959337009330475990679240333216863442309700699794149204438081529843312742735344794960280088751178977925609283377553966778280128198773159217189199198782356783412909382942345353698862077616090783770925657858594535303436458622862081766274657882273433607781050821526184230140495079546347757025011798839519770332688232853842827849498732196281854498080012468981799752163909927633057350050922789954684922304576134127298234638805470269529315684939139419479087743384406344735467071067791423044351309304451275577429258676755312522894353849467371785049015694675089367878860472932303435988721745865256801530389585029065472363211578122503902379140542257822874293597133002215240128274393912833640738660966095460015889537571733253810721247479483101332620161763097224136716085036792039312861954356964035582880693426233688456977413168649306575525188467859951540768157132995508322973429587155726684043331381126549739770680040459770268119132939826042848662293094108049016589966139905445180023402614260636192469853854498689431659299569342232650874797760773928415167368395220743351939062475076926420745166187254322676587711717334896924088394484058311517579841463434898539962118311097900753508611437565110976356573660281516683966675832244826423466740089262657746696009745224567099873925768291904363395432061264364599582702223916636090485230116863477374285173171906996715991068125431419864794184309364971588319443636510466167408195090276661046320660495675435780258620320471205905307541098721594838238468743186489917168830578105200733533305816599802271979862258445155072462350444490006642501095672509816120141447942515608500197017210100352708982078903166921139846189647593379537922330940228262640501820025418876549620975750600343471479075917303662329561423721203664904815801309167426039089317720326211423649879936288979143660688557627907200553549717605835645373079041907780782672352878664957912040198417289862754199732436076769093300832140697093984732955487268522853595933884383405877754531049371691355970883965735402984516520505014194577399257380739694158109391558223975961298766796606841769785699597662776164788807961592412502187091164904483595675979472696418580455972040837346701411107397257817817808291634681101670382489109444491262063074061797922632271410683678503864527137323076171501197756622606634121352991514543709374575783388446216287359246573339269873064414427408100935946283434674853579213217286336721820449448635189246748858503536694720581266603030468525471766655532584555079946647861212222746526318328754165529557261569057992778324662141547558982834938625786387602929047585941079821571410590494708166376269448606047547407844735298525891324625464078979117047582568493676099277197889247290896388122243157924608833679320076874396378688554635162833085390436640231946230757740851833484446403881418115401154058575829045288382422293485927856122706322819082993488193333008901705561264932622909088010439238710611659745128703384456080308025727143168771387374772925522766016217082344002502198567506071149943103667899516733891200381210782756185395421864496228429099883569255036889458258438716681733953367828717807493406626896524664152161053065241552037283043104164674835025529182690538430579010146764474223607667633584361515201029515984958790993087308071678516756522998245903701952040506768437340967238577987122172513376817739189145394189169933914536618791201049041787343242695020428731896006558748522935776266076156226318829330492662677738029849580398625994885037756815691878057051990016338641058981676990336329282024584781394169230576827181134214425777159228961419641161028814132908859759599658255576067303274081334965054969888203037774796749259447072458858515286731569355958703408636235668388181132074170162757035233475837647500008936254060273822404367843311601400300375299426079123001264655422875544977989825453483701662639771484063590667686338607021196933982186330643507447961999344829283063617660913017527130380020200268131938253176217968519164455943312455269415272027818537326223655523945684135025090402997396784623453097170295210602562266846136584020671094660616310600697540353430521729485673079286141489780226097003894139626304951002736712824303405210409780145631817616330639457030002659863986728750727281647240774499187512365826255419334892676963386454765343795723827980760702717323598546157855725816675663155164284929957557097732311706232813425930020698327925160733965882981037859337865261444235169694302850015008750566818281241231400938105347122970014948632927502327743152204965901573001960103397679895562268849895752216827185544205727083475504114668886378232621877396704443749882252469209000528280557357305833357019824069155127510970945599048634360506984129586909054737047401125711180254885115082863619726327915412317650987952247790428396052643199031613035165334201343796600901688133825536336229331705128509591597895320087378610287815940913673133320465642538998977351513718193719578742731968148648861153202506648050895097693280387951648484923686764350665983313379324354555662684917359536826357988698903780495334581547277479941806403637411609196337604536138462233058590705899835185284349287259319922660402593216236164286633701605873299458421000946065437510825325334841988209862566079525829517623079735821659293581391544592674384742710622296314326979950142818849359138684335602420410603025644249659656190351796092892367002395332197134556877456209907645941056657974927060332445520621583646335393376886410169725803568437408853900813971343847674812624986611427770348543542487507374388678343294756155778276882793193004400230342353068189159111905804626972395074012973419440833307728278428477703567150290095657294516003937979796103847599693598973317614387234596873780578844008149225472231503783835842478836427576622933298716210331592879950620090694624961223980980951113069019629069762623644517700127359297791187441919855589965488190628413252013936950132406996780551160018217785157743569318043894720144044772684025707500360890832196063122424164975132182443149069740000253665009468982923423561676424052284180322186409741506352682048431801894552213992987166837691611914816999403775785348024038702432319072949080419701749495171719605515637920459568634373403134365020813841986860165686324836362211477540374194862143860002480967535362739550748057043712859698477172725593912374512873257642852989669774522570921041883758192569994987864902735784197492731738750598099167972988398064961068261486669954470129537804176297995369480937627170111125500840123217121864225766616494552753876034961366713867156176480121398082067110242432405108526875653152703178625877319245760305088891986053429822318449839796596906801867823521163291623234546655552286316938226014249848161297783430758931588372464790005201671646586461623221132111961819054584342498976817724007891886448000688911192464719977678061735913202886029972519720785861705267488349977050807366954279142981107176268875848195211626549646148918982530379193572425356537259849884990898507109000803503119904649319217035649388438566320658066816394532788186300679518091043810162309414108073655699830487134274967224070026386928993874456218388703224059882152084930485279002664060650009133268275184258401698197774348392684193510824277968836991378614086555460253548003392544947388059748836383160977616246987659465596131870069280797008842667106390151206773460672487393170092718391229177433006299265249324174811276777021974398017739697665299982181110233566317291353113713300288007339448003453595528784105008322779787089801115117122218399045250890152840712674038040683549255235912411678383565601755639094164363086954152164870852968158965504991077312142414539044304075554678051937409783939881658070931336162432669574118814510813584087352663524904558994053103097874746101270393783347272612597599469154233419412658673969574974915311965789088891445002776604779945886700881836969921622218011841269461335424475884734321374912829015898150825055510395009794293909935832335789748991855940119648752346085284921813845043546487720426175197642805154885185155280704425592046375760449853563942174539400169255967493876437302958889340509367782062267924667793276985591344115277998782235042203474315125240969583825085034575131321226599038578073936157122876875642295231123540405006862604595928415007461199280852231404667918872512727417125168076077313796312083768364479855258333414073921664769395974020938309088248369064352667253172898663360947581488109757645448263590417644455124031907742299365155156509533286245744303785842677245301351593838398855619147325339090955873910455494510215071453195242095696251658408851378564763159011684931609541340467982596818221044099720096002549691717070648466974207697074292394547524043008279659137329059263830226956108558742629592644983606196307245570655131228049817618489835408849508441806762185449897191092882011618855099786368277140195724424370060168211497871628841474887753409298314430467121659915984236295186064687820034592812330499254640127734713137932338684986448333143364199822524655017876407745953780794039549339536959652943280000832951560571586177781495007137418785085838719226311575382917676611463888546730711883919445401174425799863516443372297807901403174133548733007019074062099596274107952404690288646159224845906366084880895689501662430221506353014390844864469080526825950348760407908538375563551458170508581939401010747219295079046208952452044632828432300224795656396660339168266763430440837578002669354097951523640323324153772181858353699154972274036048126006452865260987726115969650131410794411219216418020125034208747407910082617201122583867787155290743587475169604939357780847685954028211434616155544538614906382768820820330341926598192528151692836877878534843997782505226663194228655056437459531576111399883893120927354804845828253628533524321318386379785710616774565472955787555018677673175308163098756265374031121579544871926210267470792694293522992812394893897371720532113552968591158653809693704643014651264001155495472322811861104478784475087665057553675246143033657783751142895492780852038664494555327634461373889999557999301915568506996535839534982970799293675465198230324483149713201228263514085215947012365581843676983475015877055940351089964740430870715124615410818032476121887798398807768522108478208706198024213208716928681894564941082527157711329431518617877061830466656117552675188589041474985596316894916917383080072638931100431667792171597520900643106000344914663082123184526229914676914632849692385518181317656059177209233446788184211267164656620268936335964876000691027448371382243653198543759516914304860842510660949309871721775148024086180463832777371738719824630838027326429530953810049688729617411050220187554461922149121723883875376256938194935816163857061939985708221725448386971851725909393347730018710693447863056969325640385133132998387042343893193362943299548907686798278478325269478521939960695265496752201647962843926390816859997764332497307895491014028053342904771053804700914269303499325651414720250733173563169506754763504313817847736485249940444356334922175542388106842484049723933376386777208717130887137796040847069837395044749821012683996806730937989446360285946929979354496258388488927344377679922015305860973600063536660563362771120954962410414947876317220645603106608526973232912535499293881703007896028682422476544591182567433891893828967574593333087623402589609803057938065478880206365504067931788221812468154707211263214388433809621269690819235685848431543396233772027569473019771467088611748514126440198151391766427097671711279797060615302421340921905885480622553451860000995512385082288877672568044703822933362999354278465987268512347489179394156335993270394984223798723410996100083077865764003229626892971726712617060193983852418452806584121121872332182251458386900348278598809826918521978201696308741382061749055406402384118895036658651452203025400972676709208706136949100764933111843633588296365219565315897600620083217851122126908595647717182528974536680217523250288722028922879546592071271116686247600916231319056591011529093453997231898226924011462788198144643923580322650604771289558735644043150608156315832789091713598684056567797311830463169587563513595712482812669336249227518005799394579657809041385247850667420128565544781856798050062086922646924067986182865007637365960523556691029707008176365376236490452898161568236040916559662342170343803624093116537596320015932163432037351674114446832320309586132068520743869102246465272786158077818691191852890642462847703183873463620256064130362397400057342130389175181931029070116514733593775021517707037993516612888576105622882632853888302524287817321545333636668131446649378925879282482769215646855982076640408691541841235600937647842877181455984885310709630031364105366707459236218718118758541799853541264846383148283403118741857484513185737008415416313862218217000257730809831742691602280433764798893264438205595249792079082312801530691471686097084426784327388834305180144083627469513739899374282860524121431436239731586215513105941693608249900391678196231796600190112911023503522045518557540989429992672067648146401881584719002110831002492489031381993734490910118190229447617403723961696518006368697253947585834983496363515741243605499655281006429699223668434980273357395724736822748039484400468774432653482985628437899462466239699102636121566369324687253209429653254702364487953778302294169717010755696040874790512231977103968211295132930443543040225121553273538590042075426108264690494646381582749889474747941352209138778908212763982486756402324207330836828772071484507743564731991638744988432316409238927850580452017248270468552211070210378008752838375990485001159826323021289400568910923553228711751141797699338275551842935527225176884771562423602192192933247684558788057995208383065373653048807113158896793398437700014345870226108809050888297992420316985836299210235623113692797963519953552237148753987309070686050171435711491577504924422868083638208509924561090489728631132045112140405636408156632991231326149746523365021956976874302439586122402891565052286320833021578819956509662274153886554770645446548166939754081436123378930653843889849758947071068921703716385545450864614519830836911428508576423600189991595827471452468923756213635275609668260688819678549506272914521587511666043980313124055872277508621309882288116305485891842173836394226672208774676455962052269558330348644758157200497510348368836143671569434239016496766589056715481980052489435027424430256096563105374033641159777683693462090777636519530114883946400186586759016561498928203729816456152855897475989947165814412073032542367102901633242472337358495178144633707181676168655857783273786249421137424557859884296182145835887088386048424525944621146762614534121455412684475061720023813506316146373733522017759836712605000927087293496724374677105878069813325603608499489271991067696062095022584111107924758177205605031734279389920414793427058410333715836890094041711987742214095819792540945437289112847053355633813520047894284572731856905374681722744763576395555779571758653072365020166840463196578272484458669813627582256155194519403869067218399190908395617345265165158790971605806948121128115744781482830301725219863776075644909047595822671970627219388410246502406599304670087379145182683405777803412399110234374840352481993372008124498652074292118533255642570924819705045985048373975638513604989845760569094194951990404697516827553784635012279019270641983055329940584715430372048898817386870538575295226144933542426335410802438299553525943553040287984032275748160633804950646448599275505895360306949927161992725141255055912131804636119833341109822965189565464377409396375646664136763347436020510813745747038485649236892769678857969396092311188303132863355853999995718377251930937356382440942232562012361608640684328191673324063550748106240280643074885216035968097252617591764863949549436795361547574693490431714363844737252873511005162230359783879702949776092673539263214793447807301343311944314744881260380406614007642584981227212090304460039443213084594656996175474379172852245154794933817399764241606729946513691211139490972071154849577250481242914739972691668189914423269837588525068138546543272929660815941893570243052137053817822525357047886565331173529446772784297957276610355700049903234322332144320367743354494480525624614096682065646191581495828338270584636678081618585360583680211046518649846552956596948671591405199228817848184714513192855835831890234237460203756574023178330085545743418473303362053979774852168879620255531579339584088447831106681525123246271962180485231866432729268490810722813175612794346188075834153832413295928784007695724182427353317711318124765226189047356451696121279550621749982010182168845203012339220239836704374638308975636416387066706716475761269771000842976796478228680309188470780588720873599245772701635724385112644284362068348427453511113129098101782297869765495789293784919196886565034075995566723321027584778838802342031361506107023392496475125148826697386073678968822600719393495082750759479727432023467151261520067598231535495674564716080994657633845820309264762183135378512725391842460654357783786282375321143182058858256956744518161372892814595143301414809667684093985414027363644285204073438554680088552503171067923708341888190004279573647802564834981645221393774187260076891298020334816181396821289647510428043784538646900063190404946170046881861194581777344409279114756200063556071024963040741569089383276778610888992700557797239939755629956950298943910152981575538539227032723191968912412717166862962116770928820244253987921759143387035218847130881210228798750350283666547622877951227668237431461781921873087931362271675082177068077012909286850383033865036394049331369246129764204044546776157218299221573263686000803042921526630932023591953105150543630160301590560588612352052270880316595773408823308605397361419582378860494501299953820773493188034948224176833934736143828634008118966250982806558438089951911267325534941556022544662821589663272091380268000105983168092552639079561212846624607324955211918089382686921468328382260019988094956753958783723873948466561788135771653586703789718882929411132003522306812749068812014502742150632356531112820703676204832201672836052528116495330270118514244828995616317818008520943707857250256909906569112046493414034928948134636341658201439898386325469677559948927699980078106477044226842284570920237590578637628292807830194132631418972285407385974937616900935394965604412144012759352798367153176143918780914361678269987300508185722962649639857901370325650755073943563089348861909740353668943239428222263292021835817511954806503603469512411372493291801984764747566144674169785497545862809030877652285250202474635096737653213889547012790218420147495177755011286679619474735018864423428627756349503861046397582550435289178050962257012563097861105177717198408230574302207027210113688675803600124682513146795031195149202345615350986489509881115645540546665647459863267144494236516408207150793580268119453832618973178379452701679397024849423499127954598755949690717038444093579653829714799099090953711173137223425022552199926054035996859136726556635413831459030320455534489266660849743122567935277590901755680773307812879116053395017628961956775994415305573738276380037109550852176047003149293495436118791412961576568847485852597159605655025025654466435253389508633037211393851421882511751355679092626351797190955757990654120889601123800742616732930658864824361892000159297466746642660980971402870754631696692663060350624966506817944661864435841117228744340443233679457462124881689768260383018106383644125887576591559666171983239676740809466618765815988151198769817815719823161872006825595370089277786195487361410890783237668581611838041318043311599500423529407313825127618452937685725555700130133660353116584054488077585986957037840089705726790059510813080659064573141316672235685222801648661806648639011991203365531942894608609905652705999461755825820926627695208921654360350552325431387378847875516841577243523359470925991947723550552594447398719312314742492788308847520978420921954628099393025742216814710098571282473712144082690265829172376000878663729515181875331639944874823177015121413136526462720108293856939832173242959975641680763247282263171205882364951114718578728582897129148771781858376386621401046558887834615427541277725332880673392063348316887554381633164387286134896673500110425414106034477666564667914071818680699391213324047008029988745914090324800085716337624189993059401257420568305214849805667933666384315899277866019151584730809459493918673430036891076208714301925392641013213978078538544243314278219348749921263108640197958849727590821339150387239340747123784730685023203055797870886586268808559094501324938211234036032221126740690860159592720544939360276171219778533104550422062622386393494400515738119506077091100394715727153603232871364210537331902928955191775778449185622613205135540819596610881361226286268776989900320483116949167396065330386653653569999647034537948325602355965167185324693037433728880030608094887599783803363833892024850374185435897171691532452899760873179808161974513108953297819823047853837122276002773839267243880097962908062783913558576524022382475685623321955372485953921833851188888777102117150392220598674753069734021999569338810146792246392572344728465196780895284748813999204479888050838885162862958286349397519270338058737910125651275254101381451282739045293239492685099579956487991882837449771004453506742566091945720225794292642778077224377814583455791440516690422288096972696640024873510319553295575891331423499403839385575656553249315835209274159584500237100347995451759110750224033459691297653865685175752455686802871411425245622462922672643515773960807837621176383635602008742411664033021872637050628853879623544785336368655916620639560004677681596099894324443771540947313427603955325390709437166840296521056265307740148994855906538231988133663963329932780504326457873851266600621513366420631339520503046477405713746522463518589481335650606864118529735262603237090310380981300354939552779189040413372727431521299731616539975313860996366517427159463302079043735309102492892352781552336017595894035459630685013608908892741737921573502493558027758169812489020299594016110165828269784851973099190904759881096655059421348577986418445236807320022039856855547866747258870554308557202699314610455656601807236451035417491373258054910618088184083967053045955618662687188180991619859861120372183526152530332873003276688294472269787215919454670638601672292987480706355167526018259503177900330367796571954143348494316013040292266014553599872185210522362027741835055699684804178714729759465893358087575385672260056253124686764729653306694410041768525626083752420308931345088156573700034733540087066019313665834669371329084039922714878754854080014642789218291474368416892413262407591244203332034056134521986777433268180605086922347972504062999793398000789054718653032147054402911815540726073212159490371923761719181501041167846038828718224827836988816905373466712360444893139170266520291664761173877300811244811633097632823931025193404098775687890079909983957578309999271710304781255311427002016500965708137769817128869253933176932192807959011624427299190391964111151806400084564085196150421529612832382521542895178088665784795012158336615571273015486129967229478814603625134408887695707284926307076441448730970184228128807285094777163021358613277978660576900708850416691182634153689805459315469564657165796015979509299621082397793783183198299779232802235288305605101814966765079801437599070352719324887915244131069450492057306983529177476436121588637489691532514605498547261594380764128255719536755692288683313150365215327547603791558518161469783547492252815504300497856967091322234651672920410213819178814313795653211040411103196195020859523883297108565326476391740754662138212797860704514419435800096122188191786630007809659343764263279691494185687738474123927574967530671681145115135410273505079590057965558290424571759247829897575205649231585405935044801630754777938302973376336875262050626411444133112836972172454346695704657816361955325621432309496876845205232652556447809673931447513116867857715108176196161793531381381970369518801431608817180660924801316303645499736015631971581006514720890248942021164903133038671643222783948697833552328572659697456225633770266343407622828558508813767678810707692136400957338234417759534260956713886677395335261633977130315457739287161576856216298222459379480436521995750882609553699633115362071058070441266634225153559976250902988584867832371880058518315272709279631849056109090136499426615001377981320060017559795702157620740459713497957375896563712746863421931522689654365619776827134205737978855097777301440292549610315306056416333472099629488713362575161217345422397347289636043908966737306643240243264066032128599174877632827927790760364720470282381115322008150519108061788759873772096882243510556734403050853785037610117194104439977059811694201817926956226368355510258025955903365154164948814887468397814732579391905506465348964191853370844487398726940920843025319595936337902192870966964598573401256691574539400005167818637049536277608480764564910080971874354988170543657735929984388611680911174189840551058294055890295191708377941229559940531517257772891610025790035990663187408813188004129619759807601248047879268730822530993156507494208649806352434338725534954966168713435504919734037646521817845808228466114992817487032564130433053822253591325224113075897464290685848998360262001128115474887477128488327371038464521423249480747181014763606994223739002895727439954613335129770710876269900249885559731249985129927480557407892345270996506307793162757922988323190710155770599204526986817495984362693469950193440549163273101515054286725251078914370016048898060691642779649137598968186892091209953399643819418473542944016426289029985390268748654396628070447027592970167530204805890288379852239692202540812796254633989343121876095355135587702478730145658952065116620448626022027710661075717665868539230912531412984090629039010587213128804830460619874529139523009641444025438284247961438873222910647856061396983979560516119762660722251875232749283462263052546933399370666511004025303849178284033716600165786434546942480808733099372213900647934174711551427373878064659598271486181140462494298647136613039625090823309077592683873344683450662514243771726448811199704987575505714935581948774409998898572866180151537942160233259708447299609919160026645863320351844313930039113842484735045977090704061117296896581907860019689578619669188101257657299708707885903598620647754997328346364946559725266912638060374115362816398179812020698312521845935012446638743998390683672238086862333778266283742249068642164427517061301317401946450996640191873554754685136765014629323339938352625804768147239571352977423223779068797401641655360685109176679661907151141791506921459592229738454132428160283095323973360620088994947814749387140448065942647830644603968985096705985196530726056658111096916166357208860889688053552967305313433737092072097741435963856697000170686600911431203999828456032639276208221479122201594518081655823449194667751294922642646603415005422972042880580077684160354827111596669424184375094622722823759865176323755946626796836133058268745641483839755757674266328877464909819285227217610590783656535322011189599746967863317426566764684842040656155002847029986809979856836237550986377278006685569552699978837847359602704958795835714862166587054371106066755367443212915689055877210066664554079269818004330837129747011001424855305346873682278302515862360881320970018617780502431054978518228901814062784127806175328506338544018003894116327719955508727385783575060445554744061533307010147904245215566189751028224187947754097878397646054088999192561647099387873903235937495120230686865913393255247547119752147245614097895627225003591877156848987993981889773986814911404334271272105555016738424634725067385588830261693347182575681813321367378597695143830442216235520515499322953180673486596231981969859641220909200939282183509947099884016987730262249851310322266779749970805240337640792935575165260117376794920407629076780308022098739366963632495469501686233965405498260508345668953830185607623180217026849412564802562618266559495045119393152002446822604872306764425046333252413992265064785596524353731656954003909331177511190771108283882458388401873218018701738982920331367254296337951892821788567696319865608757192132875162415804906318411920576997294430539418566712871266742453791211404657756432090280471003134545115260486289437806320869397183090292221489507861308784596952351945019687198407612603908673389485447368072374689167846733095249141408972447493971048297218457312359833367414492254655127595214596425646896535131955003886609120693731613183743823682999343605159404587177932657407175831810963593183919461831465299659164062901582570966889605939541834463673951079367694402955574350021510237465277417693478330678675085113059190599988165105911998298464949998235148868336067609067311105010318429689410729049946191670411407812542386556294623031640507166138171837296373450420712643551420494762262540889907803912881408587338494147977120597720381960868176361167284505462355302829429661828425561564267470974780158226736864056082795461834344640298861326432974780353311212543789898525503052103938408028140560961081391785417825004977855050040741276796306809305653970942597463171536022703405147925568953144339447417179530574262004465485790428704211683951548182759076494189542601355705091232639668032664184535880137745975526796976426722382281910677749912986529369610332767238706992504984450384250053531028234092502953504942456562906297632398219986196998258686202099975201989923727400944146116098531799262647124394439158230183949377438142514607843117951900385115854704977099438756188134010447957451180652013488019674117838900233982974185395608449113503987818454905703729407713074677446260014500410428433761647892764629219928175258587227087726095452559521029047445764049010232729586202628033265874427167500523719225054934824506441323405559863747173050230065678067496385676397862245455922155882589490588377501213317014951719835334172169983991189572713820916663129811410285272007590549504734110088487273590282654414656151321916738609551658162235283533702848442560184928482134243398666553342615665229042577207904722154419153915529589627402589260397919284976066536126583478933000011746440922132181326024326186288528590139938830262559570227499694706476505556864670875181291639692457609888669627593282815328160375632709854464767551340045624348558961666895734071974229542594020008590871848046117514722920685257031155173188026238533955725395593963519869505441677225802175906062620075156210437013330333212183722736770472331465391393278846282663358158686924028462095168989826387353306691316457643390115411636193139642583920303691462762394927805874540263061689697616497943829338487775534546495046843223032796629017430359238828776949536804869528088131040402079458875042311648434150003170370764888658162056515141739840553148161895040427063286512880201900316222393976687837429624947000014116139001598741233697222604698454113948047883220134591728916242903269590338737056101547666087105472169070518487978350559428151720512410678456242272686839732712054209826628864225721043765558823509030784841328140339827311480627732328372146730934712129139113346169247862886993747278121931469816676300142337044183776359290232517219309852040499359286443637463506901157906210866178730375305671671759136556832238637591859405871437722629117728280836651144288479152148386304565275239285035936229118569784962874187117531326798237658572423794233633743017393555661317851387342742930837734323310822039101470556789959615349254759044557102231138768606457668235164229081704965486879037056782794694480337613657612755369150898686024734656606681653777328681377120214143186101150430857713749209819857331388303674852744889661991340090980657296856438378665621514582142544675166882329044108482499567542484926407937258660568342520905903608646985844436394065047983014453395500798903482339499826537335928619158579915034234654658630117668015069084477825518962607431441197992065994333200424442962818791699120468904494604442415180411408715859927737868636012577296282695233669175745644613048760464185354593839229592340707466936068359419439433907011982787985514432744186589815038192619373948672335672176630494901899941930872937147963032721233571528911377862032374756788998526301865963002771818869629662981714866156681548515070270641980073853379497689054427862175153039960928911174086573782373963534851860779728805661382141033924321500936380118831289597105185309900896314230212336263852896858377807916042569039597670554435721380916913184175456612303929089848155019985296253676139385537680912734092158876933399268357828302832885792647565122923658037257759834441825378855343993335788409736008903641385186832913321234129976563850152583381461298084653301103032715972383009441147959834407729512893931987116731051379459416866330970399288116771278741108665793497664603229104546167900488665597409354588634396451180968184460628324852159520666082550122643144382714002604530091830507171303786866949425215768952466388060663359362636268343223334548109175722962427053302395668187914957014442228494566312260293539990226263040326925677949604420802908861897282134559841238989804595264944131036729864303057121149968493150135013681822480562460673663171293926820059016378753255434862888566390384638132864438273120744980059544447034405510401212285183326144576806778070251878049990266785962029779766417817357736346661356255204678980892190229563998992957970216829676863657929242451776602188430161043014034694745773708339448381398192808928729612401097130179085760648352807784272190381313382402587049066928139993889111271027922113324483670878991154618503468738096474728704121670637810867229662574724238576958055221474660332009316020237024455487505530004506297177422790381967870555194581823302350622664488126996720373603993047078804106853667382704391530809778436905087596275577579531153788615583401285069349762922466792787271760080758013567646257368093105382436725777604428567588373317817983330924332950734598526951404255284606839430092363025449451726238516090522106679259996644842435465665857125068935660024900515154653659102849787961932289076343020505077470293300744086577024630581469328957483358845276386702812764394565212519593719131129230184718865639225212218621558159291078518455182375971460566820038761857080213150489930051604480361923898701627850892538881341975733120039025542939418535406349758441803263609559974109034351286661445440291978554592669844347757796874083996430990144213104400778687796306848235162813266538053951195120025704930335107828671206015712480325761533193288647847372583192122034422043851996192390455449234859388140911483894373409521564899243206570610022538533314756102073157680686698800788473852498126193423081990867984177907485652215973629215524056320188006835177232716792933538810927381769597000208139358281910494785470585539109842335632585570161558992999214488291479926662992844791278402292252548340293502496680177413290010015785778740586650935185331131140849339819601535495800535613565018586979640413206936674623485243401543611744481075559339694363391775490205714532280289047377736021123267184707002850686480790666273303613874775782023335941178459305353588193102839141260448951320094626419617934351389932715961342920122611131840602838810115850758988590217831605449129041463465654513715480991820261746475058865790836484307379114727610789500653605870234538047556432917923538203658112804693589168121264461314006567330636588978534005284080655816115886812542894924572981806256159375729727892850287262438221765838411845646634598581165680543375331164921369622544832276223522574393442028849597284719580720916176826013777513558647944083923336747697965252753653813927088078232027041879130271042403194548005259227096111269217973560338003482819773146580313788747744596284833228836841125547227346184849287576839297317556785819596443383196382916751046362144466900817118678976993042289129231682983538889481630825564179674179540520358475209274196557049632459210223527324060213915344454101151712392237458096172139065038724899895403774299361427123395389849875059690118051123678819140901716238208020224828104139459703212670074100915427812708698357688237545582854366357812977609059019223486374517140728725408346756652503862342394524231211803753716291625806655135664966252261449656555624210178977398207300197294266478975752805552780757048088298027334458105787644371953152662175895194956991787276554714383772589197123755463768395240631751286645631803043235247186903760538225935538349295897710793664594339053704907235912998956605757209419073757304480492119255445810373373832341283844376455925470027773361320528122802102972886936744728772461485654716541100945414593489494408238326625488540457249283299884698872365263121231325179166816519688274564143947855788105516188528647150898263994030895852920488660287578230189084614723467442497053497546268905291250118003972129243293617405392722968008433043309962215641990200880781624747844867706213184179454220532678594031967263109717760418016611614658802208368203636635227819595029629023806723275431280428573006743037655082177512106554188034056517783955780994919342508809407331671304151812756561141895413909345397749807176546870169746931707525165573579185967952384346905043197320982704632545855950954343712913762733453324853250944951907777304037257331518788733114672297668640375942934479700240664883449935780232498914503016136522293098995359333829164237485858355228013256752856443577927728534487842025066457869090991659582850999167650779519959766046433714650412889297395931845310602258922837361241865949709638889472909370684280973635708253503440200844824433331411281219427509653493304061684532582436501551625135822819653750650804473560299777958622110596153990846554999568225934203264194935282043527036031918243196836113377009447539014557709894733507058160841770855115561380854769000511665792357087274599323669627983844966878514631675812363753333940912116564948685260530654757935384571087766720330630385017199829037338709330155336127295389722201024270238625125303539556685235379618266995835567329535621024223585550695346150747489814289450564460788968778818608359488915155147251314937418574526173691042641583713637723592512377526773960564661425210509558689823685669407283527276977019066739090908058159389171021088622566849231965464182457130784332595414630113619509855913919023463286962461781041225019036842095454092077011539522806681508057587425117508781545364489484757385561975587222178961707169661056499497631206595026866219505618901340646021728410561553238031775838652967082159777692150751660034858904360083177131524508306272158178334233871080618132980508906457098866650410660845152664529797727241704875084853777870479752012584299340052910216741435819732327277788533637424368734233388908112423735746275755705735318602097188503641378093858990087128842640325241907200588757839557446580403098736703670292829864508940214342921141736088173594670954807416472369859851699168463769852914786056674048914703020039190057839562165268027684365161399758859687441316344290076740624349236890399304399288334831137454384050133468111438496916787013432693775358378244663602572674676787054459197787402926058560738037494931793762069297432211189008218223642586050221899203599108861149030261089108337824169960148774288024410308096677409842400253143884733575619200754214763932507036300184321389944937673288484968554931615751341270576763546473417205979293141909651620055422827529854072981925967768359381696279385311577945656077188303565855802478883848372543911990735040399967003319459382599567936490717498314463582595275747101426671626295744194398797972699165652187888770555921363074923214006550320090616081304232554272376122248999741168152144459207200044580769997717614562612924460148568073969750450079453808248784745380973758260829535335383644544424793213411077911581095951173254556329979864207948668819801419102202478971653354238919144234911557939423383667815615691958322825870714508516958310821934531551692680612707182829020443496476938782927970145313564746743033715233374262506945148018416601628038946022723964055270411864830110660386907371471299461303258947708125557100394730274281667413434121024609705466071275007581149477051396069176075135840100567048703685394287168335127845460550043217880307590248262820235275624574884086342755433985490031025882276565272732839965072863426622787895491316299358592867043056474347628396198623566340373967058318619392627604963407947092403957168374112054483907844977792042981101331839259306421162592939329461989781506026541069312035060935576813665541383900537272148520648494842076308186515566357669140485610755533846013999055566360501700180713188078161618622510893633534248634993465434444567562033077426780477271093103856971931846561185922578112009039764166727716808021081753029333386554090960411710611837370118011666673887030849232097906790239028282842225327430254867159603103158236814245613320805834707326094082751768803832248797710850411393735445790257975001152989253658268345178388821697108449277118479223571756484175262465180898344199391452525317975295347481330174823784392762888254201794535598573028054774015610213382708171223012587045752795515362711507089093775711895423244073024167264257887627177838351891607019125001211315528429580125810697596114793091595886196293357919330016862931442743046690037973238849060728693626181541789034385840831556562053551555993925720594999041104751610610031883560607681846408461190207057135376259039816605350229609965275327785918814348302366198823210133954100730522652858644976484325360898288616260362804279182459644647543551598377054580603324261460606343951916273797608078602780648037101954030728691194930388099776969021766065207191015958921966674738774850485823997358793029117502427119519868156305668313794801624115119564373981767007763269186549992554931323496423457130562426523470158251037096896738513126934143144625432002999294579554515063712196494953796977082183952668263907495137881448855211541929886435959232435285430418773925649035079539659970879460154492650477719665575293727391306142430371534170734940307758425704723390505374766980990216892533508203417807348489825054369045681823485357580593422922080643063904804685289874225926385171582368146399043943210296781237354390557070999298423220992093700339949439462689555247957476242452334732505934691548373742264427938389856606672198423029095812247086934660584419182694910509334484445728700901436343264335512002470871492211606392068549900978859851779864775488035322497039406098496300282101517202206283245208061416821638678333685815688056664405055684573167112078224039146613637389736471807901773191167841952793736687353318007019447758792254769591371002227638355555980974116529705283873261015561114529843609169827193132498372464281734368582669618226643856277932640256036244261687707933998239938523022707730366376604778185056456314953930315656261065460353808780061678044303268929049508732236687305256816114427207975048096703656616243875229064249370410003269058150021408398032047494366704045600854406661080913758053308956061526080352270063096266181832086388990970405334562634219803916113076423205121669455081185329111981788607722030058937120592687215894628287681498977351950342081665011702093007796443396001327997611315038979067484168136139936881670141908309639240897870209340797847653319697777774630895890547893117495226081375371275468819406252817051092071529465514505836341454204852897221908688891754693685282417097118297280923067232884307594731747917990784280954265340322498157149904866697300915470876927767218297511634135178007831981832945714527119197595298024126442044002775012755554498035546459665107303564721254937893422993946984035134688308173342326743581467949850862962780259562624984459040691232010573791711829076999469344007014027996102033810349041300800498355781976469268292356650314143456632580403277727198218906245128627019454068892528844670457953583113990744907738910489042879994670925435088370417778099470643982664056883716778828831173276182889186624698733981745736883428374042009083823199076545060923189583131622172651398495295073558461201588725459143106112901636385787573918932059582001520457829761591058672796023938742849231105211612344618714642895219536408380121216568888811608651618375191502728066009636679667544826677271156057195178713500748004797676876717592960432502757912244227680434797201975910259833828818889685892728563877999017302315508078860232321300030387225748031772533395948080724962234315491715555639318048883948079692627648263132652029027680004108428142332950101983199561243963165991986349159339716926012034938115719532281892161189365315952910646299836491827259256310929335155412993665735195133661183798324899963682698334670667399618628067787703765132370051305810764766955702256066992824815024873620556174972530404069939116337097771245713840606655388159529253218931917907274934268357394069384542937343258362375909861879574859413993929782380154091419042502337401106992764060642802411316062925411080824457049286012221423249477672825925738070375751028100464837703839084568806054074416786530119194355956517501287666074824137334801455170859698681485405502182220124320986429894589588305833220142539391802737875757113883697433849867642450472616985114072513966332447494540281409512856236025786421405810151308138737301377860313507374099604165570519442364430654257080716033732019837633444336310901181183086235118943226838344437525383004198007411503525046703336380692687331706307820881420374580410371072842032129773331509016234423681696064502607492974800697496935753808358032141867370659455100290921225733701342396780604856425271560375546030110858020238333321576195214319432733052012316629053551885661863234027611683495427680271656172909177993597782968286758649250664681160370310242078461772674332241540962891800624669340277602740983845437505221658847382389599506923604640659326903481461008282367140441639491704377228598851566766172781203224796200300591108257913662799594971487592154645862375655211943588460137076619020212002097248830529763034417391899275640712155107404230041094105510289533295032094089632307090678195827002643886968859729906544463317951153354723359199492726247682277240202008075841620816782154943906876023603201621354746562717011991584189851112660497099914879926248333425720693495260371509011879421032471214639828029141082543952850735866825075318526385605907654402908162055401671822943577990937673531275361089400898056517207766892748535297151773480596112060113402996722118698453209139438753932716211677500262765789497456716044434322497541025183358338332057765270815387741690650801404484406802063645966459656337130155482428097196646375532393566022506125744194203457182072924029522710771191831561533888905354764183460672170660741076917882085631968214844874657803536901371502007170899278321575100104006732515946414617513294752823448160448317830885774350943067707947693132428773520943768758188932869476530468973926816689848703837595413116596787232759712476929875219007512092872131250673170910798662876689306669531388523083780194722972833308142801142167421003281845336222104984635187849907071282805026519270207449232457709304538332242036700547222293240788738590829337318830989327823611706341681919927694527461820564222977393122509809927045643363170199695010472599069153551401413297386643743752391627129337467203804139955615145382006100775273351631434161837297294879411562070457193053735639627767725337030608293649048662450504860602604159662551552451452108423277535600956404928763730832546948374626563011276308628940220676187643140928271870622782787472394878371284557949815545694280945654722441419755001880277272756302362024895056728514040739409483866193270713873105571665273852297265721647647079580750841530345432005943029595923091337572501304498960988738852305462448253256162744982077119886033842691761119151658404393650394718814348174348988722201305610798899107217740149286279117335616569539862624330622929920225682439436558252095559702225853171342226644326736826588634345613856198163269660357886303507696356268061683415280662912785986274756545243224673189168962139858405832174476258704081228574023944762561045456745752449705676111404583965037961371839384879395647560605409760882574209975997588149941077557736841463048022678523844581402089473071432370367647597996031223664966445137187318867423838985359181217160960465217818244918973737971235907927227918863807368585409920100342108904035021631838771911100758930455368174864575421713278622367657693692337955488475793117991345792448528756200356272520199253420960587681994720686253540808125261421563499353611891622712160403440610169585722392393867767219144037649933242395434956291186119164955699004859351107443165319462945555405279211842218192359618040247676298743964410990628704798206773203245146115415389333036833827646525751491729961512386374380129927097464123826566876592120484466017807846786784225608400909739699624436187645725945931374847291027021675851852867843425437750752049268952368381222581192452952494652965388855219677157148239415477180995583237385165973637129054124903368161945722093486711993107227178755310049516412349363952986463633745843920874782333656497522298206557509440124591352388388890808375453003641772040716040149552091525988525578006648833578027623107626870892281200652013787439994798380814331796861979043182403952020776915086444677084728565756695341982518315460352323605609117213293656245997582261643461455437351156874356010929920394798561565642519535836517165098325570126944709005091946816297968742078935952926204131273399504820079950142300012772139847441651456151379177066165348320672925257767971678144419350832543227598961804454172532160542715478093136939109572537626379998782659567188310280555331304495158951329155929860883410385351148358339536607223432160023806759200136052614805688188305929793963296580279070500602805741852170068393144870937862894873597334301842643670808156677924573413760134341023581894761406270365912576372822311379822173596742580568813342668231729002938588526711810352008769654934538662733530739304343650285605815730611449955866423890318508369759724911709227847302047714867285561021772028684554732171908779208925885621270665414655769098955771073708188684995519156706899946189047113094345926646126921859066276316486015607387225208591436133788795702625142710691409767433270005815987983350349555793051340776412454245848354308849911038153852355560704067916469005332737324352899333884821168761450725935610353240632878267274031412802199061321136312825334184114428956081545773808674423958187244818725768449957041089625401092912920717645382285892862343096088472935300230373883105456192919694213051824892601312678331157797283335304681089392812034322664923231582820923667010794386228198340306328495569756516326207448351255490164636045401102198679159922328576129817369953111082020060069859337247215318016366957018160150355308186749781414572802108407694775018177448874178410068072764884047870554427882335842707459438074580255026687953275555867932404138497619351402497872445683016311006399533029207848336011903407319298817894329413420810896900945300345110903575911230851401105499688975621582063520879094938924608524521181924111046147473107577889858408836749225566461938254528900017447102989728788374361991885672762607376932904910708033453844318850148662548724401265537785402548769578598024265011028729384982777055750327360968371317752501729827483704252928051526560294663152842005099164882351073062970901898702761209803194105766869152622460765737959899863972153716212220433448096874770627122706467386842954301065643566891915628961613117155639791613077072789982212940660481132284722169911212943514998526198295709619292079629029818550512296993227019105607338370230633419468579474120676129767718448182807015443755058947003684365922344228425217745051393507887008964458931460332317159907742711040352287771406124008994174127571408390703055348908722787311973960641270700133504984808591385599401032446771628724333421303104115223854919617307989838304962176349572965718026359972525899530823696968905689907293040386967690756653938535016261105999185674455799335639665891604196968152906579465198964478665366363413309577798005116407609815136568175441960956939761449562546559030374142227236073321884877405251556159232546616324087212241773750580370640634052412722804966107765196440667862944357494133248487694545339143083608034280180708155276540238795278801739176902169766443001248889285794885893129330226369030791913864104631545848476582549906069828592180612276890056935805433959985520225070291748197551271393860217521459982653220087520435680809395990926744851862011360723933182337988609921150814500465362278288689033078820142710805233080714028372061753471229312908908229967179634702408223235460336209007686551884433703378326287014461883858545673344345201683160990126196269840325992802370851048854291992877410257557458939892429225323187932820751162183503200363935523529672175481452352333746762915497570509462394398813192224760573375662538955549151332143279050391130103424460577832305982253796594002626112713649351358148876745690292659620875063477140524897029315490444703650814625630870984341512856938804976390230096482628267603324856832730648126896455395964140915476104710744678722583803494879899574447518401911327404276273795143105765651167610042049689978324205332670678140191774995750887764987648893108981911245071550960988909110599837470990956322141189485497028997853113292681017022279355466783101144965528482408691560266929970898339608522921386886720427550270716440414401886929547862010961791419943165260882027732552217898954602029161098154721337329566303631980781265146135644423328160975298203550154321521095585482503647622281444425843731754742237149855147114452255624543484105372992511303820286478905928863788005176776118912762341947008461281601186633858962152159130912303624269753308365663991924525678567106330627303396472303988733114401060310632537737072069350211380351870621098185177282277499901165985491036628782930816522558630677118227867824972948905621835605257431872878703844309349295879861472614484330235182216679243799128679076306951837462623899924331925443457862704908064549682947810750457348917179283896742106122286521844805409391183370325652124811394817916394359379999850500646736534175404478989561363483776308954000131939223391115635417824171885542037190900676327314670606130959618562783653708817201745969077787933190611439986830642052268298254414137290976324671801127040811672361315916369034841329560880487017128926220988264505183743498574587202894272157298661254049768412573246295379412293526374973792834752572541199763849249449345643445292132601169145354420081079418377444687068575982363373338565831148486445983624953776232901921263104837577889750022034047082114571888275505766109192016685892581671736995541377584060224846627253969014889722460730384965648912460366624432960886143381539119575703815695925616308875826687898072471304355010555434061641809421327566814886506874453977448264155021692515243366087985331166878306670321600682764802730710134698153339778482756616152498210241347866468631863495945577105275471654818747443563812511624866841950282665762961257981684718981768525383055005149382636256411270847103993098113264624565299481668261195909291750278344633830114003168745818350867191761869455514337491750619231646250683525844571941714743356739905839414156066999684823587558935726194415552222696581300414898244783016553984729322182258841358665222954246193351507304713717031888839625652847256300017908313391877142275081289002641093625251121981208597111320264627341343818178217663438897429158438274370307237857515646741574172467928256692467788319185141730599940496845850588535739419154536864002656410205715786608062408826422823709233010185930319066625406846985156914429894295347036857330733457376927305843238604255466506329233008589587245890810190924129808932026431038755095189426557571602538858300969075560631428638590779709504494563298292837878768847150761712888930354760016729667281537372285592152387389921747910098121426389598994080500202921075292369121799941110188565855198933706762242997924749316820141562904429931426044732871222776296804846475169505688746936907533689075995566089625545243996737049376659732333563519830646636585233029703980452131084080704184827161882403530849021377235536365813875790726304509417399911567836695670305028083131849945625461421511614392998187991392312706400058270791590936579208343104938591847979684766929486918284905741553717550859216533700048257794750518533114283574840398191212449124463103084755240215902302490163747906928079704295613218925034015224784259396206644056902557973013041334430309055070369233318726517719277958430714900864395844536287760252938428867633368447941869187983272096243743105474795029176924510636028061397757551029301981314934024839310440095086578974813059139441021724859338697812444664148350949005388930407236053129487545621627922606682955613404059874192903491496294761824263500302672657788968555207006814904976362443798931614774484307529523303341969046326855574613854459545527781582657160195470820208069728056289822397401211564204469102536069785573107919435687907671860913557772574752377044218675791503365280308574118803641369006029661092213138829488590262466831123038330043388403384717229607043249754823742062189228262823713664319939677202166955952828921453187186711104505474179767367952984168726282182930979099496594309909643623403137700451317769869056432980765406712994320903280277574499718065432481855985829204332950216628033793352380650646279367263101180575257989687089110613829165765959818882475597021966051172031760735125002407233033384884135414118886267758056189501284288405412697849557589144928738483088815336372947732042954273869043299521693164191359299112256652102274363510929159636603144337132469019280155537497339524567170396136354572338583792002393708521401086824957868627120047351593594907997793300056583868715992866138144023509542428180416537763999811196970539375066662830743892713302832262800601739555863638702034892414654122292818838978448206378325077225761915723527500819737168216138582070143530204971630897876367388434654870846936516687860299935936906740033266324514236855228684727980069826871589795275604835878436669956289438712080846559110807647735012958744507340924646769972199734989732641655143369216640985387125459326492600389701773057635991728739190067523812362290626477408833577121386820465472575968238698688711903822067556007991384557325434133313488116446867821572776041134591718087614295671944228972034815201761361379826237685522504399744785493131525963467764661084698339148893403601754757178048935490381037025549545982746205349378495674689478650776012358804351756856559279306698569341529926780052200465443137945811147632866183299243486445826869768500322420567484141670837653996523964110279750010927967541672211635410600080450788191223865974706494049194525382177579228211468888121641958579464190653862172990775763502974734266820761847013944617623941593960646306327834814183009663909818663240463504852432573605472740161340006105983581030094084872379220185196189182833678765797982118973443853642392419159820675190455944365147319253795166907580341199682460781555382466162952968466353260575437100024185943515448368028360230094945459123759987850614159166393795511398012496563258838916896420257770901804073388825355483814297203956649429882735076996504040536288544874295081832322416201032551268894458532592531884971893545701600817112466383282942637454616044360887187931968352483844630105879782550588657486566501340414891659439055682235405250919951521385981791701481715019041126830466970815392313391131442030719299421232590353849896572219990280042975249311747963601685957633556665851407391025601818139478672469887397569309560391178317300259297034798578139629828741605203967489979155039999055437695701144953142826863924682309028405618222513037357592647922958570409606766458702937290128395911457748107598404345794843569253111465381887424110063147636237357998836257273215065375068259117097250914949392640297338253523959644923246423245596102296010110995846259344853176450663307143047687428270426376557377249564110880937080839119226094604032786640051617044454908637945624738683830661239611411027506660650424049424210504992953256462862500522832079518246126030181907738880943869105878366176036798504142994611953714071977914176615624657552368933452162091400596189290634528107640608362164198903071552157577008852298449203573024739709743672458336888983870456614541501441978802219772511972624223067044606040802239154719376327728694394658560342025025455033919535000573144824264533869953094779320895454083532640810686707747353475143084850927317013395008599701297413885899016464134471249836768624768789779508276272741448825696740562908691683984550353018025914686189622369796365658196778241963619843232889252331662868054880777530077451395090000952955861498186675672074474311951457794487625349328009795043909381444801062000994970792545655942170956021103345610135717223372461172542594225981340070420187860941055985902315047896759514855002396824092634081113151311469150398826246022992533912426749403293499033979445819013094858062661893243940201225315471002183283328260838858147546509053455477742289903576581218491249151600150559792113885750744752624138128324351678857401522965837280344141198219143354153017051988965794753949154969249632919616288740612211614677884274742029300441373607212797628777255458074316395415931242684543438409749025139079065443400479326590586515528209580278811637911629498995757948593030361781464177615245668538999246529501593196353833309760293583393299443813008148228400172924392120006302084516822148414838450839372347438971765918563539312356205685743549373412249804324931117290097916060424281601029268529941865177757332403577059639148776571683726499006340041130465304780267295342716328885679912315403354255974163473788675202972975008591720768929973371894790812684605166259584306932684450988262905320670573753580379414729304026695489125204182212898012649144914329788117264659837113004888572906690609055230618692099178317915728061893165699978853369343034154927474598323617482464576388248484036259587979172300788058886643624503026484874543674034675556201814753567336137813520791534766670879731338269509401746377997286699111893045180520321094051524184485279143086280969726795873513456794517648870393638002562387424723290829088560658420110966584666264119322034613547437373742042330251374899607359903989366093426829568877281461648575524489202127028915991186927946781083037033535071653089692216038796483042639100674648894080487666507821465091552965614779621177293930248638980087485767933051124287300767932065506396307854817407508825517996420531228061067028848102806731930125890681323081503889878006870105287829670382058232141511000626308255433843883159116449117399834387500370753078134385520313456530989277323257578268365046585451967313741138991295570312250128931031005686657510076967584361006018615009569573596248536287124231433230217510543770381926633439044487479017110389248061223983041181481805543688902879495728652147669168722925959884671796630047962969811696115346815967416641405820496926458442673881077325142561653813424358221986510998984571070761989607057396128840599001518000016687350389389524203314091346325601041678662205674176710625184415656924356919982044616044712560850617636154132134503071758751564793733478558467148082147210825070312845578737466969327217906551632756729487667172620565587176317827582962164757678981662253692668098805950163260183769068867064109208738579740573044800690029597347836413497016838891405807003483258592350303978188114172085473360590754295722096615764126478261215179061228978971303977678886042484995983489358594170228306954214358644562975907016497235384685855627030424418410505524511700665719692230018046260611028485438883413822630228497837699226595556911611043491078683464542089319842944636204709451130532740926186843748822466954869432184612031158998681389511307877215637786100390113118019027020011535847316353325495050135140770599928811624601584879098530032400434967736998659200774820020747625962924660161343498706161394977800018025090058442440084751898672288222367092831191791646980036752790709170322548565066630959650928151875907776573238322075598844556074639501521960013090162348999282730956591442837340597600729378230446233017021030984210081914562593180727670612063218500011055528272540955606996002749748652119145709541298175105950558783834349431753826053890382667569305512494256587360161741078839372940062044835665275373121025617192524590508760171322849246482440041013871903914391477686809500939382306842520591143342506328348881380904493770656670269259764396306441305556216022200666753940150777998893437756340145142724778674273132882190773716794139825657439075118859209022180956081731174978174515040051118992393501167723536452442351187285687465263631541607429548569763674031117211146599606103834663750166044557695277060180148398940599109193651384949807067468743239987974348593791018449548040816570551589336021487927922547973806917693735715169969398449226503964103274928922840342369288990887103077185309434920718883595235881211667923261174607884652741909933831229629206418184047532339331960912272062964994192823961621312124992728844687857518764746654323547033553548153110995625791635514941345558603761769104653853291572524592839011729946703252288176205237422367530104417142518378141016184961290918516929032614006037626837196632711343501041802343077265297586617174159659329991839044812189733169986963052395819546217345772370585065054796971461146833569291822408287491921341200869882039156392046782140213743939221901037407776071906479901293596639335157357818090572922517266888846308891616547824514882024819697526639849727089511598389183552409033659768899327991536611370380309702370138219030549567270739198766440094986063826053387093150211777108407854924062903540913088054665203474340209808242307065475570098373108174484329641348331769617936886419208090361509375994549846694486422706209385790243994190355032912626221874353634714052793193360702599371212516445028373870196179879643034672319581772756378593495034267372316751784088787371048951407928244792536576806885311879017777312946228574907497642650090293327793629063498824704883683422017428857163992231426921729437788129275124572877047380717353745333255464163687336845282895144793845886097051884066775127123765844103957556621076635690966545044563821225008630542900341610889298901260719540557903248891241907260141439533843981505584403084931641924127342000136331221575849973002545157041675911089424253129411522869976166739709660515601719056273172711707918997759548135789226568467360937521191931910062873780372898444539452448252791276059823423233605680690690406306034635511706224632244461720885666232981641545751467169268828933077761666271324810584356643181692414602245502894810714187343230845417628772776778065085355232405030411781807448325453430622388123349776053734713592056094822835065248539524572297001650959114011723150322985342949358478535852990292908773238734909626916700317240808300437448338955651192357952325131687470305407714285400549995907127972611190282141143192274891659312307352022730929249551317279087723216474489469547543852969163515778390420197784162234829036159110173286237862078708635037382295852522437110669086004872631628502544417439693165932365820627270526316357418741228926024417804912830797017938248375493110748852660471243115199460303617429683374797724736452864074410760474327315253337771641805684608103595312066617253709602760831811108906219187221161357201910075918362682117217904213571197466495583744757446518045903803760933761944706338869684990382046596535197733262494916678157947865736860916202694535992639542213658592366919896182238657784566761363201820000514207809000715727780857519944414176118783519083997858017555042636374074130013614921821307189991984888366409308331533720249796370250951982030915164747812758759856395783593168098873070018314620342345458159587650496359525083228550201303464995499909820395206023706441104219688595672815027101808716740621006757504272388201015510211046132533808809490714878324757284317065505068298075841569915529257009889171298224501827950312194039395142294715047894138189720853585188453976290167711244723995738437150429629823966498108304670483014259957513794367282390794979012583490927491307059517511387634713993123818315470075617151281645811173456066435422330211593605472432543466250344575267062958317749173759261105404825895985405869509823146971602523326813090229683093913996967265086886626995155515122789892145672421182088041187104041864874870751951239976874977998723745440110073931682439744392118275248510342685282102511577935614702894017094727192733732275819330675045307072636270355997794425137334752615785450064260066422026524653995818931143183194261940797848116827804292432199009158005235334822209160334073992275387310777494767091237014457287136075873014949266574721821041938347045011060177268264366433433034178861611990275252196081122059312408064956941047762261645671959627720140055528110471255780590844002281155439737324212205398474405765013342534777748188902431357694605744793767188465482525527434058602373394576343094772376753180471002744291828995590983770383811614921399531059135792993902740931374476878937711734513090360296942928076774142494237062929221880266525878533683754743249926883661200246669063301859464307223721417838622002210743964404645170206576654057441543658920171592627851848604380775700637519197484169057117754104253320882556851115561082308482328737021459886437149550172025027460409907179895682599318493136662009606448272778292318050940268135306984122072789736337824558815532867347433479747137229942203808804200944527032435887185940471284693369554341550017464975703551974696248860519271629611600857406102432082127403585469955786326545180318774935634556994723773195889209426590157093138335746961685886370988785054048097384987162932454273633210399051731718927567805338040776616617700319744066172396630581785874281656649532165333880331558263434853110369822735724625691384676698878835993876211786834388270214962940572660430916924661097399326112490942746968504192035317927197220300774075764048579443670654781901531038759324587754774968770366562258228344091913419482325967169042360639663759036026802207997254267310533478544718066643195277565788523040522393986205965952080882560507118041130575031509441199944710462862005564226847128039241211408563150101912467859389189746125036033509673502823397095757560291918146303347163193777861945091082540886942131167275982188738768004644477645810243095135124232777046119199480198401191797589194852913426883981842392755904459177010816141204523729270406317175744596498062523689218152634089917226147154340823526521944679861965351290564223734696314551036257155994129080594959051697570415052744883672724030307209578760030603144721164419002036984573581769330989859784686263234034214522202680451525062816898289239272302013076813266447264661723714273887909459280942512704423160409217123201178513835988924736957476794336164197626903135712575540229157557289044802279264513849335752352604818665183429300044740706974273754074104976473653443304790852838243392829643558727347418167056455467948021016216029344907864754774321008975443088498452470106582278296169436608512611456744285726158183835478410201287702515954453743831101312519879029145974132793039950702435876398182482326592519351178623878372509736418300966437348272529975672985269511017119446654384868591620049841426392221722548120324747072432220548858284769012776558461706656120754790825393465584238875804971543205516220675907990242923305270207735371200692525223669169335923957295827844361115537191617055858342940378043395449421587191872193688242293083541431708101854317378471677165883836454114004671789973557850834049794291515610605989052177138969501582758063718658871490639865200100374982351378334239002105598726448124865693875566777669198048945466179051678335168774954148399026495728088915341752647040795922009144550555936741517794073103667309973525905154713198903296893171095642305429872521560409219079811835220397682229671149692866584843559366375646803960888145997934886548986759260492544391776154137441898602349436695598199347036098794777311941443473189644115686485341284474457500291114921837997411881786584072214020830505006603927586660073050301066830749545589701761535400893238253288071280193015860614564336361684040818733361308849084107389667584419165844369290435525218865087828885417861345203795840482760688403306554095012945660777049870042250349597187070397423555779455091921318489295661791407131575344831069018303101472981227510198207664682406830584819357927343317601092379533750932908655154499388916247294672937321663395501834965913125023191668525387931236230894991161467146917440924854758258033472011161066516243741611084629607835781908384147185276382935560971470988257044087383922210661460872983090326608648150719908702281378807423674798654415717597540484701834540330349001876127335962337118801657994090296305182676447992620889354719036662560250669259595022592735050664155504654846317550174232495060285898682465728019804835079292664082007768527612786300112657365460358089459748840876509266074419842291143491295653308829257706121122643914387669659575879949834219794786503193828022355786038506083046505911830843779071057247783879650404885440226312315114519452246351576994797446838522500194584166467778897780003705529249929393470544931978041619095462153155616828508496179083874123510588597628717679908885496787526840936141096852283505191564307568611384273148779955236909445865100804049152044720205468589623815785629942818822870202768886909598892922679319531448583849946271400374341944296760445274204902403029975783943464558584766802477213783628839382347232710618781859891165227209750503478008184818089564566510148183744372273775035264577041758349245458930451540356958614345607857133356208315315263669768011523157882119781806582637750419184151518019497434338659045843304893831806580056370173520528919560268132205802867419375080722276851028304178329814246446725570530125313302053048249394962128769378610536101549720596359118806759423088754320103388752968153650232839530321962460358749291983989540263734968644041118469020995910549997074604591783835325577775426491577786943703230995516729033380880903038166072471499214004071750177663649124293882689606010403200338264919230918722867406563635144832973896804084428558264469566711736437135677977455193583664313727762746399026745915359827664961323693854629392949205131171860056003303510413571844980386722639711647016045760504958914076807234979867107989439516569167965411880656005637952397640357510988829651487252001968650943633705213774676399002542900904250326255115734519205165304538312791947168745502353501663387851804605245190088377348811194667900477254296238426139453497155424348075828404998173152230363137920571730504650509735715625007431006200120955377431438815796033654035603452470904100918255989212200040388157184351737669415020769047350971722409374177760010716423511121679250589036345840294624472442612829368956205320203343238283295928449326410351208794234912977976680596510166705605487604660915382776838295254104704839851046669594239210364642183357407614901576951583240475457305689022712728083422476458259419415133464752550843097394331256706368788405694286675345721288958643835582083669959323150084545466601667019126417723525251082493163696537410825551583654209556446208318969835450370550554055548629340334958323686504938360033157395616692925680422876282177638272678015199715701421345447129105522704736428306488202386331833008934356788744041522721951596772487683323352370959132872976045430238213877859797514756242208645236940829271100154626478153605100613518747282000610834803160098497142538348896039918859083163510852799403044831480590102077504209972093918765818109400827087913394003491615444607160300162176738110996966051272979611738713607209743198220562915240053929329862863144905885293900445661746078448961515416955589974477024025552850370610017795497891984483088507406361597981093719288139094494803828383948011987096492078998676122824508121943771706355345795667151067809819182726947258307125631844177526541257615829157135732327101511995871918148009228485134472022068062635415123107621036018642101453140121549395792582070348170184590555417783497662698618535240440599566621975797987299096718660594760294019448259398379663571668206919350036193383360936094115723852617640093772695807472079417692275731576707202536801198684158030256667689048329633274901408041770654743124367070426618377245001798140203448052444649417778622740184165369914354398178361440660658301773816080122378218165329408288384561127086616855493483330792757755744323521718511736507281225542524759749710205000567283722033960705943443081561941886103609299376101240862350051557933650484181440505273733708415415430799633359690779342591607628544751884197791781433679998129586334928332746978539442171335708439072127921503385063063880196832467907925402869621250065000293071688286142389565871553063295853697632176990215921390632464455471222730114673871377886682242611514755883626120313765585318468081573994956790525110240365407454629285181513000495849823293493646778645735620241842510230352441182910921053627714109501338363546280219375797020103127283562686296224529218340428215250403980733886979444075288507501257538860461357836731925825310231007756806557005329188114261666580445606359770046428958645479447729644450290794472795003755246209703855899275214407748320388130328453420677962949319284704200248634821595069748188452308165345487171350602822281032553942564111521203066977089842970911694184941885335796541288727979921896379776148637171680924669406043163384091287241967870508091034615963239165063591168784709345896935983008118108134159738540110408889034324933836392686331878213782878421668000204240782744666862433885406846230456588763966352927471165798876206484135141212924901439104600896313616500419874319417775360157393917092577290207115237110899442781688141695505618798648621460425931709309484914139596770286857806150885668661354683463142833975681779457115027130695389677685701374660417877056430517676218892893521156523772668240056942049041072740285460716990815440458518856143400060119358106867602413401643396742539385871834945683434948085237990813604304877239602460250977583038758590333073255023312503174556367054561779032304746485934861647220895886138710953749308414116837416347034923164821217989743468011023724958422847461430910048363372951644752098818555083962229315901256432274894690857502045258580833000676255361040598106885554606878079610024170097308748981803199215631997908849109843827769245602813691601196648683801882413033976669362846458032626302313623902694666046208459151374098169974318555165080783484384960329085421297504372921082626777022350383112799041898744747428172271953633205821848562015151069213397149072771307570404137565979501928337709641341978148954739065248295215780238899314952256315233864878915311607271324734933589052075833590141285552507117333043771449063379273025237510957387820197867654231411527006083438376459164302435769346848434306771724038979012165944850246422917208081293129191947064653107309591364394063116623084730664377169871282327890292136004194040765629209322902223118208410550732828191678438993390751466321534664946991812086326508538677194475654503724317319790642879113095104934374605845017406817518628799767774913328072123992001608465044750776751317566783148319512599234399503325684012912136642749643913511860368362343742229504788052737373697771267234023638458930133346649681368796825303779761642354301629614843027839063931695919909459362899698210604277851417178384558838475215556162864008457468341317077704294683288564944426187037955844157875991861197261415923903771481636702087565178533764814923707976723995417456392025696857792897902519178693458264196958939639609168588601905879618686159252823778707758302363186339381808785967207105718318880189486756365631887706404499465040974874568074711816482077319665317229449446539330728287971320226692280409377652697327439264061789939590842467446009214578866294217678600231380246615994695125329798383634804639588154438129547101407478940184071775012904923036089181101087218459863397109349062945589204031588506735919832525536342233904310146335207650698719020913258285800851689569237298993768273085262607612078296343214567474160764399101945421806303265454716366074693876424394017502964490441065870804101129767445710450787254142472303119755261997652293515970432281932134450042623763673365204167379504694246867066395506509556009288036155516427797826759580286286523400490252537028896387420522433223105193546556062274315679454634820774759602692854095251219662822196557395879618665344112241615796412083668754407306496134081128385909023958873135085874994155931482515904445340727212538700689508696770544284600794211556063419356716580139294941346409532286728728779323197501692520557834009204932166554043203132203516104511173138072044392907194715284759634837512276782450745016910016263564098394074562034901191207978103271979485850110946747659498397491528545028495879568954884355529910024434072480044665868820841020277626658686098439127235889105847370723081156783466776802921349517375627741232772456943876683451534370409328664659967929647395172058125321719238164751814514721310035892521161934655798557676435752985997154061412713221592692368153892942727648458768992661699311492198020237782036134181445463192426130300815025342314073072732998994231272908437203002861037298300415033102978667689448121397055065591280927390696505418790209447988234124219398433606851716599499670290090460120892543171615509177773158086487003992425921221287631140922562595614479403778313076256615479929987058757587040883038336954507698848545406323209789359522885922843871319300994446009658502312997345818726184711454576820814891006543923170778335890213450317860283941219287833413429867473877548814319523513645453455288978171080372118045854061149996868098456813587185405854165257714570557240986827128902891214636843880860242432817224394288577323720145974811918256578140616659182361492069831118154985826114504845694149843700020377486129285905710660585808497218086443517521908075520623450869641177565748552317300983425833087874774807832991229144660772253818677433843571739580218005954651064016289885561168877280614484607317477368159664909144605749579438240443876685554087899371505966980879094444239022638745427393915546289084626668480112383245315606717313696879019918902954569257084777225412762968391570000099529065370264763423926036526173934135141482173232360619260339155553457125820242735152592642022652641554866880134106352526409183074766150268149917994293788730937719174163570416793517649654897243919496261471740412410468264358925214687134536809448501677833335354540084780271551277525953110133261314485177035504257156047533901487574597720215004398913857363541650085548042849419504254887584271077760090839731623782806675705145939845669304091475558647932942875364340775872371842079023889174801613293157657197601842731500904006966703224849421486870623037357208819879486833606782241869767672756257122679104947255723491500413578508831181259775991178412642984529923483114344376951381890312905203214786278372130097273160818642482363017339180260290323536538954006877455581651769754519386082374455760814565390671313680007736268323520673604982332532449666686952415795430027059137752441291366387249783201606641756164476371927065871022364364602055903912827078622203513029968788206110391008109490931616513298619789157186211680908969531188411252836743797914432534674887836965432256042250697168919623637852707772856351332640577605946831060957742909509891238769047295981423835336274046479600449967135319284414156059385815440753164545292187599727870559912460307508168421715037907351237615313875175818247646778303806139143744204653336840243740738368279222326684992029040565171087682700501971632844643594893864304739728207022447026657257592424450256159469636722944231095697455716899354693093726045860099083744052321557218681426927972402824819158202267895162088452070024706756776818502920934766661545250228348652689187531499871464176137199744473424992836013081509688561418177142060147370546408027662110064358859330421663778692092922211802640796427284615424489004712873798504433397818202569191056623046132618305401471533249251132153476827621132486277417412059303111134005027459218017570309635000104339246692555289790182830266727990271350499041632546526201341916827016554420151323466482262782190227088267790455901628280710434493838723489205237162245177640271013350904307596699591145338140201775612929605500885873471404608564230210836156216737475682670945565336708606083134520497815232279334581141201848554621087568007118621060780728355673578095177087297099722121187581314386712065232734242668795602142139583414468122042859474732479280536236933131537628346002209607905447235203948623324321764555318341746089319336830812110588459998774848496246460385724264791516716752042648691727835413365407614181816534483196910221137828589077891965332935664842118794028107302919726138515361902926437627484708591825821917129449057253625840321151790159940431271113809440715061386576911748901026148847310320759794197601185739269409115714682650552317089064608704007585526271824486359722464275688747068439552500909726217565481196340366267072860557650522212729648386490961159788523237729211500460893561074230443911577580623932438114664531908866436268904378556868256299364214376672772716723633485578672029524928781915949349308239662929194625855493631393889180896450337779553203183902376083855769285113908834018360929596608694594500932651599489199207110188572212346878734903917421823555787228131116413335022727482856570891420980451544518864781589028547916998189345754058277592257682423334723861185378798974048420108492691424321214306521798026742829101410821415133251106492908385998202703851258187102785851603711200263370271019170664750931439886707453258099031537297123009113663035443228631983958654463278892774412777315462250905395081405218558272934959364032945887823568842627391365287106963390611359097173133677378310604907676381294885404326536177662059236469638807007012726136255632109722745084697255285748217634846627551427148914934227325310429696649273066545543257935833319681353676566922183808602076204587671472593394656288950029852672769438915523838395773609524050584774721368193107211705958270960939618169708868498843840427209756399490365201174147215459299879285544985848316335316806630618058686399686568343861826143704883688403769101924215864273971596270261870125050567933910156439634731769966274623985170288506110122005191520267521975066955792913338608908662363996934431603843243398925168784910448430244912500712370324908581472005534481643425416574180261053770775402784837330676133565067689415646564065126425174934409393354802690616241336317353898872148653710478616162501607031082441289447586503853649672229971353787410168305687163728972635668805921146132844840539518810031868875861515199447635008246377913687523643879958172138148132044141764801524295235960408291269745109804837937386850704006204318710585961135084902710552677340583082817507020350320828141503126109019303237928138770027700389054186558800211510482498664079940683719979626616704705196324118927768045973067098177002877910687792498570574405874524511395827079530363850834925647878342899608835669526165187071816555242502478123202647083492131225892567390749726754157713665270708889142136753648477725579666463167160423865176033991112733630552223501834302959938698850274835853530662805984972229822459965300799247639810146989044515723235562186281245943356245691594160133130613721680359397214984322960179551085869129024347084513133574831116599299508272499263462297825600801123611168002137425833454842206268160417383955073470959861010516204225626052852296387097608585726557504253700787639068117703329534185446172945622359830633814395024108922681698344711818344294879330656248297514465542343899632776028074768339132624143883493970958930218907899830960375175800147672121784765502140046248388835772300779580574522330814640447025837197943143449791726081985551023948308401989539356759323864148790104143093901603881061526436286106509832209038535765027017299965114741897488007338927179751616314794556220287072359662011809216769240813376622071425039087549800396253775095632899878275520962210835515637101516477596505037858139049464044881400571525627832938315495435999663826525286696379124101724717246977106971098575418309991773242441647919334780691308970552019860767683553170556693170961185986591268839888614710900865728059721639320563081580856446868437592663381623083101163400519045008336474466301567507857789600968200781895176387919298728459058610772542968578849074830566214596895957759038221579354082740183005727643023954419196742353625335367567222335573865049819227888096602304851496469708400581070139139999392046443446440929002130029649029305617709823279802116172879392442430307257886980866788284438059527027241711692832909132822412844202243935415826948713220972988748888294182651370094991440423731407317332285059821038478154814813521848622559250233570994930753494223024548560538375877548970778536570055972319492658089168514858780718749730228274921337365205335089010661571171479526807380753176975128863494353281818660247555456768874728394308922969752038076868091390726100669408826716737181173576928214469200091771352852706987295764889713393161977823833457084950965244154868299364017892558842812940638712455280955155629399706375799746940897762555401636932342807995643581962568492619232637135829012054032946259877104063836692232229874993739367780815122100615231995440511406560851909208196329327336992844823036978784969573819837017499161978479094858484472280637200107067535800185017911814031740371892086293809590661018955593372927984879461402739032076029835219276314281092029414205237379810176141943084274183040463689264254449376245285192093974990291187010592854541103731895279526386450855356329249292776018171740911852506208405727879155431074525465185073332308845098097573760235228676008578233626452233412713734189982571713396646819300006219475180021767128054138285236230961139881315363179761933210624230879522629362555529585585298074105257916653861826741324936093166526891893138595510620015491692676732767273881574852760036139830693742936411583159879767184328648558290157598826730703006907855077750688640912100014894633239713401319851695232792756527011108871503817812814812668627564035379773715496681962295449094874644733870956985474481062389339371252401821014998384547585595916139745391118038344577150777460171375755207439781521373987445263917951135290132853690434998678861268347933329603738883606120954801498089018549283492561763825382302329064500831788517597742177932959618823601615969966761284600132771296129878596476607183715777697177382763422530514573155322254228206564551513008160422629381522283340404803912231474992278473606122026876979942868959377674744384445905941889485260716857338366867753248677702753027000803767081997288491255681049624380645819256850766598328274329280105363182176216758694210962464292631671530766794369248026738183966095466162094993755907205969038442824828245741935320739147269292269449638421752646673245674141199364031889653618646758710097421060260576651033567777715716081283585553598398380180015256475959416409859021371327964940370943236274915119250925001773160480563943798128036436556309668864390894825105169560487118857158056897805027067957016080792554983098593042251443780008747358641987259975891849081713214071620312121585419825102017712663602006627784794712925699317463568259749781034964508872508852497526139404689895098788526606635393153025958048753340132232641418710938572996474739258597528025650760432171927290835557798417305350114867119755216479996942240668036047444273432842216304221854491769016213014239030556200775498749932416326523832205681622379062750028074179455307336357999805577081198084721977863581307275315288263832342810719888915492235291130158326195770574010219354200062018292337027800223492098894105574032671466433313982470138714691496944772730319412056032749285867761120744384869583032326336821210228339541183980193050138398266537285529513037237866904233014712476679026171739229286148639342708445266061906608672108811058815897415606778482016949359984327405849598812784262803113125041705065824169548840558015328393385688788871762843838846159480547434121124534984346447121582803717104064410084331480138707073153171146123013272650136836530723885897637219563752587883050953275139452357403138015663274126254681635995821277021131084660941179162565755384215436631519328982156273303598310588939171085552424043650634902193390272361600350840584674226445420296144696055383140769865100542050790724437042651407699257074455016562854673653758799084686593391459561351364067536195088869599688981211890193403546832643760929883518302359882888232646764150338291160657280228483086300784100945316664897171756850439578434207790051932681975326268487260044950657680495290100502993992604007685361113777028677783494986575954732996464650546899279089639460776493437416397125672742274896602545686131170704378077152591454537009942858043593622190355701124122378078122494715685447188740685426918741437268493222554648659282280487804532589262428673999542138816900094485160395918613174521011189568214235977643357632471188089644227768649976340553268107008852958425849625346111415682492099822901374923457369755151471981232743894091254304111225962698772269185787889893324385705770584200875965868290084568028763962760726038394292638305813317593711621905583721219005634095962188823891789097156803812127939473965564746050197109954020570733775204097707608333540073391792062265279091447166167891619551986962788116272066289741600200505081212995079741654572753807163412092263725595799599417386968964738836568396085174017121011071483993736677501505919930390746019521208123423129483897144766711900175818788962485278562698595258468033457802823885379132598048766038337015514767525618821372931097179454176179190021137235435618286743941699726540832556415415241394109891923986009273219265798559286900738325090665212961924847740665373636234425856264761991078091514109412296732406835562130328610624256006333304190811321173139876518969301723632789055312197935603276811760077708486850679392793121673704929721431427952619537373094517793066004806465604036637690805279307381645332666217995056925913153749713598776975109846229657633462278452305307429937412274258283029073816813818001350022985378848702933724524390439344282290857663053269493298194985641003782223423958994980905831967266704667189987678876794602552711301587679021371729724475195197219757428076842906065884387759023329550457936485505109137010662363529279474522395432750405069630452401472541139715604257155509166678473337911407577889991819927710805054300809426657712451687579365048689659097881106679770030753455450167284324412750793228404743066269551028193396518389615742428975977662476330732723466429671026736236578734185924237218286571605120405209964568754497546909634612870174443441985918270178021914536589461467649204442160451687139022237198226370939404917784043775366152053508178901367773207155740474808205620946884051225503644158579660525415960276878116324519541823430656300898837994906616377936094398264756140097979209576129945497441264151738866640569801881499176258918148596157510058674313503538167006518094215016000822159576811023111169633485350718745350463896558061297675646907469778019091864009704698359958802949744392823678190282541685058903921846099545177072526542582329652941646494362109586255381956783698602022983043119240883007621112514549623273073565587726351666046466262710779999219806911745418890643501319800706288991488301816997217942686195085901409992785049173768404733563773254624484955223529935825458790613047194340748565260030261451134952133432464838034462296935587698942740114873449125299864222723845906875884746091876996958538254186028202610457815259919098180558940449640178240513276226717822827504246193238340660687474717224399739521035535222069309849010640435533126622707126197722644320675455914234198117704404447002258009980544965881277814690298118519726626082224669799681639978021521756895401744124010689069803926372207799730056618040774965804807259150441098977639196064682480891282150723815865168339446249847900465829113309666507416999422471339741071439819566397080000361384221435756116494280475762162417362239716643207382672914916148750524483597142884592608567449083154350943749415261892461258104632423773115554388273548591425584505996489054458233414721250817008062456332535383817981570155128610310125406232349184556198380522373685355455050760751713404809298883030612379308715768649876541934426534142029193056974329198736621365537051790260530925932608932658079588767631355620843462207161793991548634975702833211795697897970904096148064723684122231942155601987672318286637469152989679343278146416510782703220610687649287139301035183825326798193897865981480998003234655290487313682276184060853927015469892075772331520076461138652055062794692786592362378526818534932469767991968886645062703176928779550743417837627573806034786204669478666633471023606040555653715863129037637061710103177583010444233947199733559249841457284095238938072458336052370240545313789097680135298372383034294128905077368926018794689815957479765617028080817405442861017591813632720483256127203222799636042802501465938401056446232300999424594536473866758866323796508740905331317496386959205760988839995169191986872232216827578720666505829568880107768545929193920515023415015079574676731228806129138322814224404361073234044448899465908693635590108836799193088357293632490934213913066070010390892843378103159785403920804041892111317639000323341600115692722205553988177011520852167432003822019853467107060761937762917805770756176502624948171850486008132685488902458204798756204794634255041993068668862748252195730278275123682657819760360117814098191831011552862803838709446098521943713930938024306691607673126499380451221993966835069257590421309077598056364894676258703296863165946454922800071362094805846297640321484414536597866269113524904777754575157007705072171118080798113103934843302742576420878490312986138315329890940331070284763636901777230913337375009162430996402164007425635734249318711855810846520859181622706726073406365294856697373739895019834289486719928217098467483969263813481014145542716641690266704717702699573388290190882183045719096304252765699210455490326735261398373644331028958916018277031064060871312446162107928452489894622178012393733482428202404925653028943097133874391982481916330878835695433302729181876784296583048868098219390066305310063049180143588401092001457737452844265059961297406031891338340434048647276207492965587325306749683239478936698834356397659893659684067228154029301381114379035738833036874682434464670102314749681133000162034729261892502983857052095220288744398576654948596007668598819825527296167804344680953611320594777558682418704104667041548897899000448806012760651294880369712587654295987061603175163747995810139848758104734810280550899237072269675422168826483099783098327281221255283045894236026688035501054731006485664714457237584091011813765841191638965689997073814148106456517317414150621699307839121402885058427394806369203312148638740067434430516799712737435844477198548365966553626987103748429602759083384086386283878466812477853587505306476497082934526531020383927913719626629493422992902777784445237730891063270191075662722930704959772404155705181392230794220033961799503233197874727061450019168769092841557194677135584536384823193821275930878723404012559235745670634885354145879323711180735734093447605462765488894326258378290716698760576129867200479256371372175617670150259685982012072226774603863538191696975906273061463202440475503681367888615879288095505771137159878643494224260977560440282994732231984924644382877033183757434837259321357841266969968923148406099427096882376499545013511193924386813255593183008579755514185268345665487650511486467187465400766360780670371399474205640819155685753588216975467846665566552118132315690789371611591892138831043351237651889519068817551589648981642359165298743009604986885624898326162916757708949208768138795768239958038113677027785688932022791581275582037174393535857595674474922634900446318068801912303358282982662778557549745358334265157798710757100048129994971326410044969968609004824266807448503120244536733211707698542562255244078424607014541776012468016282483311281266095989223581690460149002992784290260043570783333204888858760221469742338415479960711106121439437881662924362952842303421124648736332937362330932218992588967768470619831670532080182428220626478403381558390815463226252684017632110089019749779181720509881175961417218339113790187000517925290297964987677042012413553512610318869519203256931070613063915265146314321792453741173941503891425471076400858210736741062853561173683503224477170049382006879131820050947952704347174518481745476108361733691698652106592869363877721620510714846445208147665301094163783944672807018494586885557437623043791162836799044212513620385569611657590503621844618274796654900409298233933803784075374856322154712831310139136693034767245919676500190473353400982116103162523997036762212968517336283696550111158799326942144743299603530139653601010163614921359773954828523543120832780933632979969293984223215658603271506278161874186151240327759889580717743839351222106347810351894396214758360185323420136135432725966077090316177318337706796976190286598711084254681978983326969232712382400139756018684718592248486105497099697986403334842437385590389952623085884449309703314856476394638241258827175166307535852065851611106077710986200392110981797317626987559074930242810277988123645345529991822839129158788255470114961803893658066921945890138000771594737758978714024575721486000573854994035782511668938421473403388519587971974714701032735682062520453828703985323141132467988742671356384543078856596391897744074509788348702865741100328185639152492477764010329628441569603153126311397247143422197159276073952378065424615774602717972680125539858953399727481249021852641000161111780782218538974059313366315610457728341422360467116759287299297624543496568227232096281141544565563692632060529776965932291678389785593990032952002027594083028981698274344334957230538958252671325400998972665775506579704067624134286719612486709518288826827614692343567789550365200695847593887795756627711672274476285541466335226616273744518197378718589148220801976315752892215685065393116515293669967063337172817545759324076036796925151836355966990951267541765311689120204957908028457567201304056630803057941089903219192849984365634572651164421590468649397949684942107843832232001501280687786957065855284053301021008341903682598396517233178232749252548129943894728471382140526225663186349424049826751678492471428006769908903152769674928010066293591240702105488574703353420574391392589427544522396221267845065461462743230135225369995739131140126916678361378891049470638029567042640536395049409974838022500884857857665368433576799537533687798423521794350208674975740207688101801390309932123510722364467497645506897108541305464976417265026493381141691741381711919451336042925410053055668999931745166473116573621576206739355591212911983227822111709477754119353200255898064218674767117895546932592385480671991303243150687588831284033067771347077658309888352357923460288175458234088117901227306672400759737705827545950902606974153248714226137282107807319192788557767135677754014383438531852836551682923870380777427595685087566301247252262488366046751743758294425364313656448316460327523639986110675999567833884483326618126229507360553601860442501193782370978908476078565665087268169274816585536091695475254349743668872462136663697129838744399151569386396892396040188607118804741580775317761523926991654641670868445240071370074917116360186195118582059304725358526281388032122745286932382891532751584868273879718959677953938130342624964267628307819383273773893373118118460432712103401649042812533186971875571963412973825002072798330320636887926620300968011987779974705955478895272734836608718294154516166243370422344638184055448619662642261673012912472637063589253559896626099358293280289289213991350694452454162364002137355007421559078728824668924472933971750504211685117231382409477640209730596008214654481465302417583530000261611928688104721854613824735958416615564036687453110415107505592385699152670179305739906438148551652499385415136618992815726714308418559949058546886220935616115647136749159275360003655945245415866161492730209621603751949514323560640901670175793858904932503241512183414639725858147482348837389302697146957824722868641175363973165118486028701955636812352612375036691420266022241463345852673533295759780793752555184463109216739155431510412824915881098746501150748306183479131930597829141289600230668749458225769063872627734666154694918687627469616818427044436505183918108235327302233696305484463602818555518700079552244184035545947076099353848513092601779669855010128663795430221876467211177041330868481243513099778625861601048413525744537569268214089918819262552450628199439376563565015390760848616884966327522629329887157499579179101117369675003142837148537886691835210254880404944291091617835926257750685097732442404490407703227651214845169821865287975433296828496594675819697862236092513217056346718425661737586333545899094198354639014890549666457798609591980557253922682862045679201323471568010045992382748977217499068840788051444826652841174627693652471662357233921142663246486570036717097640925660880313935818928322760479489495477771434643877231025473661389898579482732988214190712604555984315326317012997027728649875251944583866623719519385671600936169943585305692868633485697461219409310548196928056528388468933971859364521875107552213233886320768677712360640380712331548332810663365636163741077925400626161452650723481926446557329669548668081975926546815496150356980821678355700973945336535279850986692539250097933745728468964198671408064104863191137020145076858651479401326457089549724110998581229110191448694060291341347873145683451122414536139612833010910017364143539581346923054702421346439337824515676784898626803834371422720371727707676989876325297813920587683729109380853465922977011218988249702823519000594744437964750730905779556767187381562104624468941495613384314681157372231261208168075672715964808127953959198201415183907323093139319692146725462314782298568262938182834930207521947779958722891359735181192940388967595348595571675255280159744187964768231836227019212142366093201682492593277130049265410802981830978098841628661684923023233861010397809748269193424002353660679305723864273221156766393895835638186964718369147858587614743033622207442964755447844809626198936430591512643351446950605302333608604115620586746773852247861898448267435393373727100733667245240952348529773553002151080052250833646209865968360792716192163999434642233371681146892235024521638950682741818947652388710583491710724360462018993510499277778142794368041468185210761712888342603000588018356386619589421425276312476106367316283935877055086148889213947823256227446190223945373315448417194542517137677672679487850165361380898444361637756977382998511581034709328577553400571587530777700098635002685951739810644932323405848775099811025197364217698549528711776681079995086600027886447014929077503620863917697498636273455515831375488177472542134184624098860827642569574015628038167113827914515971679354274394970223486109149477272060209628065545541772456735942541836871259147538717274799698058618599691565527366082887702497310971870531178531473276003823755868937325827439820782548384163223470076962588204903818691264588468516827594923954719979871216437010822878588942734659046564382151590579811612107825787743729997912726516906717450366156642123519435124690830505357414193352065588507655661546824449576614798475757160023691883290543180801079370678188719488923506681977855760308151452635436912193813374595900713683448704300815763712495916118554240537778159946278999126139327515068332457747365955126937837894001262230492588286147866614377582229596646576863935814981132897637799364565613974737230409529970870252743889319392767626480570860750777830238182488307103242197104194639050092687665730684417011245292641381504468389974196651951642354799190986757872236072069562334282348884151666126555964398057146090301993284094562108810130963099357151858881594320654201139970639640981328390519616963210366993329891154016434232958001252865194901570774563079377082354142777084734342175944148820178192839999523130126979857984048538826662339303615656226087126253862239665407905463221638677188334489015473334960983484950014267722993983664665716908017808812994947432935365230004908980819488465593797055676935034934331116002979085412875249169094854338381403208677713038198504480115829909279638380952240753563414128950821347893904732307437511509840714253204807973998140708938830579173825565248125959494202640348075605401484138101524368921498700410746769867396669300708072437757324449533117528866033943330977338749993463538872384863517946235914055851223166245874681197421250188438853099009770476342655902942514969697627405373983609568991085661175497775231176493262733593034043852399085081947882516595796051705632450281890167902097178269521230655970840894800926243139443719927248569089340691754496016262605248223438124887225224446729992203010132919088997739492085131054866587882443898289174164114088428077488059053403701107172948340890178259486237395587656988171530898112618937416742023264771732943904024890854803070028413902981700305062691277785098794887286867849829891287364859723108725843540284905586394899372713682996293899779239208162860290859470041658880485680234241125575819289966457124301281363529699455299874285926832209282960510885883299748733800269337161788819088837073718713228537806166513115627034338180763280116984728677192669164725796783427234108454354760378968911604279861311857561887510859746128410829836208348851266490092750920099658601188922393366335002633351142250654373059337331585717939950545908738780774106312170817194641452789888014497059872556434547082210108086585670921603445174407557105273138972775332655051591220996741141533616424158467801508014492177037684627596984663691980486810211276367413623167810071747551406237049943963467007173810370963792929737041215758713320178122134826561396914646372906224963186331342946532778098093604032940133309200486642133050142133783189854969430565712012165734214188226600787047636762071976720367814278824122730578699597953629687603397030478569862686842158539316004667727932699866133320739761295446626970580783295656056548219566543473047425603632675977471612806917215382700988707771890285197871630777629754871060946696690115169749677556949485970699272174811243729770367386894821344927122338042670118913363914950064688697527416873355147313614258091658462013972147690580911462451054156499917258860449529813600454585423640531265123197152273696061373650108172081405406469703561884285543871104372647618882726055440820249666141890252438538149880228498122708570725647494174099246923174050079147453260578037485125346781407954532896743427983890706829233317378998803711873564120413637443440761485087271030015603408845509956884967896614994532773617077209408255383655320227738271344802105470811657233208732818182003516610219694341648405077265189987590496427479581804649727975597617529309341772122856774858720647813222914825624264846634426341069153299068717644193562802578670181387529072214247999733128441500647410859597234408576028583863127744684298288927536292410915739028170438496731000615744662222626497275823701243071504477361026804133606908371918499301159601176874255210625900918483612853774936591058543570381922483373406502945035019079711858664407560671215877969312528164266660786620205437051522428592049967704054724837222977532964428185749966026142987211619114594223974294891100927445304033193300586802992619819090698322435456970031516153754660241328936053441959015379933845250787289272359941535627596513817701277690990776268792951551210936029783184182402969032233141738205989034864443197281258985394247964601077176108523947006193319872174822563203137340527367561789978217328115231691407542709584653751180545926049277304150367991800517330360494652931271582949498650807791988121695390967695539509876179408085124058321087798533344924631593680341898912771788003637614789649343845723835613758141711514845182149660040624760597772564834265983441663644946383472350971068729073982185007647976593685693940427534215726731059734950472025752016164384039558023343504500422908659746523712514761836411234456214735827647761538936988414995266565097814667865444716397683186147096489768510726487052401350500819671190503372453588555951089851643730981508937040220111434246752719510424569008336852924594177617480532158894365263268072086854708056113242172490716471092325354096268537732682966637971906525188974355769704807886820502744980681453034665455882900691516312171762081364642502859146818668155958058140361377899360353716291949342719107415273288067851812455251570736424547246703055192015315822892391508532760454563172230584319232757521664691359781866047512270473996283374034837121205170876975742417122377133612136172614320781745703318150735878871501565559880927556669228614073522017424595256059936535752941684065193813053096554453314557419375970493616907976360611723645094595892316514966876035089071346411871538781933560478978189769218157920525132122139281509737227641489322697591179284779660347586290397336453168561919440523818722814860894171148878497275436652727788232530234445760023095735678643638161564232894141400271727575082234089902286212913953093860578948635089064003910070602908537844172660620350272713957405552204639131552360495885158478604520866769492855648566306134612861269600500078978804217432630272596903933401394641929947233663204764909833046403020559450787908397184446002069999268091963913907286433302295429548612815655167049035876072708114068194688626494455030947749469306009803699360920674906350648567754414889642720228651967955264287265300494049395221446664084809140222185046905310458186280436709185211781222393997640016259040846882539885119073014200316061878480561594747025585474547465304530389950947176707096459322973070439902092450279268235391140593810586230905609311528734546693797921824158184618121401986219260815397866060796486180691265009982279888791060252733976844660289030284579427406914281766666959782108456770421406081831283500748775286130246122729025050270568160306966882946691898601583232693584961147848440143791533606916724048907689974725911867973184392073730790030072335983886233471005020649991568484641615552874365880083828403350282578393127745529857993646552192398573174111635327703161230098183710394642626875622577261028504821150555122847767125559386248234408353287830394915355734355951133973328482872708244511135418789669637968780751844537632596030381466517798014928975431197239798790340257644145977887953646599052088098962366959957646711554302595862428755390415929824345592860417324327861413384722717332027921269181864982144897610133775410241051730721936168238719558002604612168740605289528402808571744556997447620116336197440573775709025278703707807399444968656732342330909205779545905268158885855021632046537940182945858989433146720273458277947731411614963422398469743040012295652880174500648650058939823682850085806168753825737239647263941037863153935463302712629747664343265022193731581374864095920320308542505202690649336860867660574599554813808234450944666937070397585066664411821910447170288251544780146119911680824553378127370729425638383787153425190797857741034723015333075805798005002831254473340791725554894433864659457420573864435331257115343266732138021909284141925260025084984168413487486288056329435047449317286061804246708184689367553130631083898639586183624882021340389638605776941281006194996532014586421036511640350338133982145196326687777047013176941237881954439900196309351382488340369080555342562607113996705686154060460153445703809988177979919138446122202474970799746620209165256442198690947636775749336567686041634677903692425097597775990446245527639672884598480180588823230383985414850053273854321788685313601294760843036473570470219198979135326390384688102067318758004932332695522256630202333996500591108617460645420915910525175078381663480606573662940380500344934551181507554650049565185145032019252332598568697967744783494098092717848959651219163886696638904884015460104249981041849293474461909404533751884186492955492004942528228584313182197486155503513611302344697953871929150543003718267390512845049558435282934593173878141941724034833402472199313891997076862405618555430037110347811409568214969322943886185828093769013804685372499057365486906695073370817167345261730728744185118568025818112725597941537095613260671253818618835102233772153199101502603860606701778460115065552155670717014046951944243728087933877344156356054510876345808718862363972987899181229338355935361267838777989033679464109277063845735891073494273851154669983308629932495925769007248316268636839514536104227396146177429644835096267842916094981405818277440861295135440012444060544839289778438233778317513197432644808720539629990557739482020284479453662912954596973873403706112848314007740841086336675204356994152068408401652197379231459198919191877989868351929403932536977198008608578624841490631910025795905349475903618492739077600314541234789867268970453801817860080439079090028525616358262055253547050263954273757098392322552675822487011649569659833893602168082037960002373466075835939195733545619336704786613593033316108400831167872800600952771027426740184615973133498825011124933745982703335068274174954965736930586026493274932562287808991888385345351529697646047842905135441883724457520022751173763729022635041747671531805172253389410239811039602178821399288492806244841704699379516765459649037052432179122732314168761700818493499521404406186533556174617896386039436721813263537485460330622083381415523502548794153037260951170956900540750158845297996929477708853833845696207465186008767530395909855146707361137407227803305971154909935411035024025575267702430563319042447122003498872521964261946334499517771827164288039779229178962007548009105327454274236464013141187854914300442483242513715779935449480626134595848262118884388320188064757147690671152293928148947545705884093026317273295523144993222525535869657643223536581887463493132068811671224973254015103317509217421215247556468562564128522549274750102320948965271515758569866938325237040679929614173777766055700916047031487225314805873490743008175709453618170341955696705263214634013439583655971606515651388554410077672618274198461261762791463965967006463985645583412220920224620010840958013240660695875257795045190104746504393284390080919608316489490469235831283870863809241346395508478711815044399463364588784926486803833540243551132572821360738601268971833213619928138427913778821226248107639779781761645861475097274096716406169374142149903354646028586773587852660587037792284011090106288735877510478478466512114544949687505872114054585188987164796268431191964644348622657297844787348890771502607437739182948904536874865994340704040785522816452709670679839195423869567674582386279555989776804237403494021568128769028461238926148266641107121490626037269054750600965801802449393287010935904748147769649977372052600508875074530507803998065205813890111146118591936815510875649621541454793584758949532524773449448438146992166259809490616904990667276356821464135696808417898883446117893111890352721072152022638016259771112710384718103015094986031165524455745268757385157516819932162622043325699000148058305107376854620438383333875497818912226330230060658514125609961270392635805640907058501843674787985798416337527209813349829782922852361373943119968006290428752190554370197599394440941803712531250399235615724781632266113849156084741387300504164976477950289887064530055837105733114121521906867044414557031857467028762692152701244700097376015752305840807583777791326634393906227026699342505663323391482015692976561181914054869627279433521122512322782962714564528457104928757351642653531191179841440594778850884792584052523951754480371664078004486480187138546785418381307263932640635659686919471865114894876761163793452976172035578790236253245243212236713772990603792545567842155736842974922377828817524437518717561986922791603364410073945950415853271126819795738257004633157281424554895884866473748476183051833526586444109970304508059560307798896859949852544417854276154294436059270008649424851913539083796301650990927236800984224330013936707402262615995464404207306562132183944527755517106530830574858898178471394710308655249924683005447630395917943281744804626653505689418838745644684466611461951672766842196777990277843517619289929902169186593543861096721484144536046051391343903962032870243037102520106682967513719819454586225386201279671301599974605603388947037229236852341018396471219072930778597464399714408340998764326700442364372935514044905318231961146239912051916464713856266383316642109093956352190858297334405524859508097525268738751546164182504947263285152584403060506819025436555490743716930793382199862347972650132611661232410758035621118881807723716743983749328095528130659064647174732718479794895155094642950290795042813171125369286067788703945662290002477347295968971440982865434442813136139973241579170336324061189292804737427323839482135303948540680060555261021106246885503960204182699111445728070476594870653199533614626413889575444744055449313836260935298722275538227875813273062043826088444087814482422361578487946892154714516644063539006556617969509276734046359646039365846350494317461788059573020131068374069435119860004583813133580769336168674769250745640385463000180583371900960860083928080232062694347727544103347902492562407991384631486440768258002362569842334646244760149876419246757086246366047965498117177173482299972631952489871139102705380221004843201706581848347994744129945843528565994999069682199749079589472774656623935278375664322709968306430390998776859374921137841917746462546544172206304744512669655396677923309417768713659802821829658614341411031652503952597435542054339034502495054546460221216678604280752158144124711103304747492945581647920963582896378529743105258760250403827386454278385267401388761770740321463488808275747633908951740713649124370208443386034851959749247451690081796714522336239054843904999647994385940791050684356249286186750601579360865463520081954759975106106421182959341113873854861753840979561416477152194638028667306595461355725777550217792399175312960363137077101061113081838502815048828753973765503899575552097736233693738494640538465228734599602566821407592232452115348448266936521971302779016655009045305798810228918582665791273917693247531230437248802954809730182130622469402402142507267523801690773595544398773212219355520074338448184910869808720433364999217061792970226098137760405862572173267685372113895958402288312005018671705718478184708936575220996108190681237521809100075821272213156844623569325158368204630528673046781311095084142373617535531417648322856791391556513134823812892999957040498034706664942287922667948424287087510211606863337461681464656070386652047485100156805665338265311551245492274577737072781717001578120175096312862364457557996707646891341032520780821126722251366929470817215620447700246119333233159147814709972965237922084514185260451336973804354078668166978689831365978269828734146357786034377047468900157321070134077134449545558124143878693756615341315640953617871547029006333405371288985865798524386531201024761722512844375517609654183264711905785319185574886618293722137752839045158664656390814672690873422760291989415193922455344012074882815149497432655188256052103683147536648134093321135435524298418770069840232738139641941503769532017432780953440871541503713220952600500011076220535499615912801899887212096740231974238864054901927370929979049599354284067258904725961863991149407518511603342028051791173330757018003290060554853562401410896504230698191887760292859655411475293267634114170834089532730610960591290659319149312756525382709066797265353163180045913798834590048943955257874277573746164538155134044633342328686327544968131965729623026287244164652327848610524397709674766068433233856419726447021553929898974152085166001028937218657167214805401933301981936500816990813053780330743941214697049861289948888637137399997118521073157710073865768945519552624733710969974853102259871518158070293072859485874131183986103909031940981683487355536773680760991689474496275029505526028812668156505358545279381823667098107268284189660597056980640603103270457959615678869124197213507356538686675704207432784766361613643668868472373685406465636264560318862008198590072604111560689232599785401658735644850712503552349772230369307686552280067186168659439337492670223654421038851666226323941138023159415130367603973754703728515335169847285313632716596516317994595233040398660551168253467073079413079826251742573131958954970179467262316593819373795473990582138740277913886296911350616729601564227520478020298399314322827688332688634336631148635164992559403916684344293863484391404908841519175421824410365366258989002026523340161305851003688432858077175252851292034249716795595386533610212776997150923704693237341166289058662819966181519695892107409610429381065411835086487624750970827641185946326081014700946002217016171705822006323621189834511736549927535638456651639225354963364847905446130774401158043914873093271556027859832699739229531977394181164037051288946039305141497061328100135772381853611159039855921178704717124557851691333655171319417214509466314256314186655746714279565485737619447085991958829248592182931738907131939122481564259119041749646745063245460053883438867864712860213573157616179993174919199750220677255610996669745680091118452685504715169706133373851198638190645225325518168448593145286860968833851831654789779942296395941291057358532112112444239362260301725088709547448309691127830079844162079221600854893587198398931661520475298009375658205211402980184088516789223888018280286907556589613845862985757515931816129309270105173733839513053483778521682832200034889928289434711263233298313667947862455485255009865027887110724479085168427095982329225761622101304027612138695624119361143109295617446358162706760046814627401136378184268533995511508792940760085019123237800630370395302040232708755475030237505002691617354450663288702159876566725162811233909282168092057100676823926738739933837734598480209994763939238531410515167105783436562640531537141917060363396501844191478567785973697107325076396085261979984040565854181276551650718742466432707075286343232768455504622856386111241189805767299372249789389627924624699073977234168863593898420955288922438538833181004519162164459211584056366822294085954480170395842607670908103640609819149174602344416037758752496139007477279923994899944194360126159679888694845585646611863586063493788561468596608838936229699906876078366227641458251764583935391163208163162204836065404322027186287792059729023132307773554487814411262906493006822580783934136157173881250708688732196639897712270017259957080870960327905435657252178949651774328435454704518062835802246393521500138059337904890625835420687326127149816528364210673917596068685644693278782083284863108393394859613482499263512755246440686457231101506047438623769191212258490293663002097088684582904545164745914145720783958884345269576164473416295165019063900462368768061800914093951792633329596099085042659112173157393496181171292173840049880042044214652667376118419440402951831196057715628576030590637914123957110065114576188397980371532888622003144988042645627065649851517499638385589651781348630227053375819890062874563591867097520515376084403673311435467804606946766661189170392014040062898117121304892928605130346874896744845593748474513702887010389027242808650623189979932082637209668072259096237116565161447507970716238984160951977026193279786414308305028177002042552178144085598184480428752152291495925089693535173171631771805992420500560446063869767745448277590046818668073484107434655224477674621354645215283266540570503375873341813267895636277744650256049213369824707074990072145837478144500313983587963851878707863898246941066030319241605791349094190164054866798436420813203402023363552787920713655018354083838294764673663383619618688631368633159167220425511286612377389392513599562694648180856825113466310388179091746599586384956473451733478499137947589443496225675697625382045628304650055883378850616882159077456255528230250569180838791829769184665255732802637821133670658044718401838571240578831328023994524440820044803390851646044270843014414678441746822812617130562892135846811733035471474273206942321717976007822180560681284150208252266909776498852183989092573879850031409723807812670184666748574336612960623459454183698957765000271015577877021970004502116600866045165883367978426215909373074732243343097134202872106245754650192439928685075941271630972689053888302712629648018193770747326752503487199303976616778266585472184856349960569749147639103631069437919950078897014825386195221749246334604924094467449958037047157578056758114460746547595778952452419271053673934126786995737845097312444772821054825531254207652577533835503872910060348484530360922334944715545072159326319877863253069406519142126428390191231341828718551932860563392943103074878938695740172765328631939122063718237827903957115610918143569599403828182698315269425631117567103814284094500564485819754649332243997902824988374266139021562241844768835007916334106536648168401283349119280512817361872010174045149577721101085090717780805527101071605839913979406240630736650281342282857698812106926096784748791053109545785305035198486154276128839164613365481691292742404660653786097475125843232161482633999337005703663955726146346241216756791753422072805966635983304381975708660715440391713981841021354800030314075723165894230958173867828043607715624001674762742768128208157522744526101511098626297663515798427764953486379398943293042100120533919465856771964116694916182383426844417033748228257882177221873777501169845252886601123878111772433151361278886094170070271247455189676546479996267471339145760520626581548232719959328270841390543655223708599797198581127012418893979050500780270820732870414566815768884096371310511369919231261228619014559533386529069436307625095496483795680526813684711914376669859336774351774292022057124379424634783205540508321830561968649560090649509693702880605738524610902730726752979856590887889551346900719854993373297719101728961658095792730265276966505869950388109208684079800098617975016705731438710446085452993173967442901574060642619388895513743407576855379703881910067270154001490028578206689934080887393561389221490690938867514742297120418083151108156071144677446818516473714682265788298333546890671497533145333408133472015268056039985723495733115333150410372104509756874156720655655119514214615527233217411222537018296274086534077723451307317965034204520614921793328133267492045047071207520561814639288737393779439268630088746989125601616767621706119589933743728320714598570687570231552217043542233256191600461153321012117237148168382682299758911631321777463727178348284988022845998219931621719512030891555820959161927409960531372397079234472868542823453541849090476691065014959480774034023847575025476861262370222577402803519397211405267709673043599644751854155036249564909346677351242449227001871819946163182405391080561012939888952793673836916506266230057318580527955271393881746187494283637949528360580358558918611914390318983826824144707032647893497617724436848953721430963761660225045294664186556845792642808983580114896999764997811617042066892576200386393481908886269286888640328559494994645994841530374556257142188099303563161701104186938403007884849599552946507321655673291822144749237234065451203021347839029992345471782794389917115249760910348510539734387127736786292509507127202474874739347886612510224014283073495520850188139854922883036821994372300183094388146971099819382438506449271410492754402928678623347520375853510892414685684371062469654175938306370902720214872351581696494284289930620333719192367118489683128670594100745047652253792539702772053145676323408811648469456388348877773964774941498409206325441495289531110120108972426736499273747210598422050329726823893529676063835570412778419622693793679815246255356943566357333045545302486762185645574168212056347680280258120752771229184892398969845407237019624072282365502638665622401300633281716947472679981935713938175105244395070857934397221718098051176230510021974384785374217231846374050587606911742391791626042165880729549433053335699312663867916509243108756293119733768754846953128173911635414901992477563922327650818008681832431567340419954805351338759325701082373002392534330648062232954771003083894240792195425828327046271981923083315712177347309250683556190209311000122265603497398048067000928866269486958798432597470705858115532421393977762447377933214091451944627071990188908664534642423449023131507782093732593515828752003476092610501552905895221853429980591683898231603447517107169814327255720316568296826749413376126730447876498574169801760292493539439444822489588622138330909356640296993701122260290463746965101992099601990417199990649877070076857050423772647543889164186718929280526991346862810902205922895595842527815114574048296166387266600351589677998736422942442717648972179232655148430869726322828859037127587281831658545822929547993246345598784553963080770210541384449397189241182461007028718290637339524515940891922890460294074775241722954383313106829913918374938993201906575482498668448298242344502242913839616552977996257546655861100182301020274489365464391982805571790723491192123099844938472804568424521651316422835753083156406063983656444981615952437997837241805250530757887378557121881759059110203920754847859969686394609302952339040554866456409729964332375183201782665492259245068659586024485473110416753437133625653189457204936887300097165384071833363728255272613032076201701456666080830045979712269308693427638092188126232842024682602658980574971748663148553392976074487567095174989188437296015948601608452179570233099570916261942067540370234684180998114718527717442495548015899448754275424976327862942464199421851442052160125439132080841998234622362858288271155845277921100241615952237621688384213739908977956135009730166094568748663787632031373042324462834714377550079185180276410478120308716808171563053582272567585431586627865841544503641764583547395180689956479731648672383170758575842614323839746438681885420862924334424764022529976131420804335008547197930041927513559662874767593603267440837000898616233544637239903436659349525040083862461199940479964576384788521690785337143917378102917952359966823831562604159375525277078678327223385145698014514738198995365786151850507395049215983927869475435791019022851180872520754825828306102634765809352450363061220608101110344648471676552567987527845981035537394627636195837298388224198608728656002195825440751411948562280286696201499604610974302876939450294535070901602243304285646517669405425382770725700223806764782800497460173482525212058999213734818296252236831083044722798350499508771101878358135696161250567627869144783891966042296612943798324891541143385472768184973352352153763635987854565839572710366693554534394921435001362438985529568357287220830983667209827336746098427503943740222106939139807493982607670197403708854576830113625431418110486996890611217945947791347967105580807500971144363369914167764311834697714837150516555578617803253207201990193649754638936672949135360879068904986136213874673445744541578243444811509532116233548531142171182739343631727956591723434158128199871851729349378955885837099523366713141844091111864437398293273699139282414503141939061277156752710507686195744172399213712883410586371672591709300082108355943178567143989753903818460195173365037725420692357403197691851667950716529157148651429323512325382701911162460490781102219590822878458752825753444326656781468182915491586693813519716024623675035640122491473995739769203775477133440905997625312528818059087148731728719625258109125290461917638781844125417816018375505834240633297157499645081780022217747867919491056784118720441823627831085046523927505378505902552481983884577296969196363820401740594513360338059973706996635416461152898548156703701039931534887982207094422879841079325710486051460832201601273529840761196319104228500313426417277704046851636573944973979332742786385739868059114271720657145818491290095915455421638346634049838400950892211685578243679921462750860697982681253264742265635379823149882250461950780219573120916651227448507354327405294847836889221967553343981155125137934315033402790703223159234584980849401669865855828106727530703121093378836509098709030327930894065356802118075059370766163053707989717291459162897300646647329514805504668990336252604014526838539932345871748851553074405770496745123948686092844600330663034232718838321168880138531952497799609960750204620347871340278213791370320760343605691685626555579593179990520615411745256930236403121443587648890488431816691895989509518942754858075879525974774105875138814212665593171197265774524597156292716045892810754404326552438291378493600556993913602030386809897803817154499392284714068425673864090957647089710614289203903322130143357656347534608506266935719878458363556858226964425295282301313448017987302462907383493372920707406263476694107665637337577539969646474135601487557410185926973603377918854649165695395584473133651404437311268460872553938233028117936598600260986436656109224598265458025081830413278398902359120455620931262482646450165434045538715566593550861375043044781934048742493104364281907091005728902222376769279407311234091935667033208654500064811903525281498914624916740803663758567990874178848367741476516282124208079908929735679975214872698985676489815074143076774771738924491185028882745941177724025436359358554035678014802028512993944499024056988476047652675799750098514303162510281058729675260565110028315558675188455904326249490960037882471120028750774405240116635114866327060027831483086202395674499292245640655686720432246793023010278402215154054253418631966000720425214054093977238727099129068544910781244430544682864823000928244481747353320448218213486403532015350050311627633845825346947147522283838793243093053041130022102394191558197565285749583218363704940821980475722672937525803628538278894350852481784082972862897916382980526878642332126755403588170426462635948984644320584643138287669508759502572293218979781212335399308480872524587212019788428531050757100471170729201590177703566045426327702763382118197247383832228380715169465107389735852590645286383988096369873210240696833180730991612293648514507085361019202400821474115933858500540248825944185403223611813066083549308008578768874193876831347294516524169035747294757714450163148896562837372953566678892567741815913492118815174698545700913870622271604436623212849258271774208532138753717810104056890897725640636462325819368188156209495441977044470296741574017666507473480936222806842349051260265156288585787702794853606904202434254830904951047588447953388452401993621498206773299448115099787025408358578075419004214340205870143461911982631453296433154217543748214172127253935769351133640642935134640697272232115433905170432667480158203295287900193209068162072110819934595885041435160188121687754832965678927388894459763957814099423412535619055765856979427147319182312727020505616548420412866465703937333510366971525274558586355416847313533657722463961894229288829520609714113444131377562619865463229485680846107126293327545130047167744412215084398697539412834433433196146373016164156022130557576899614128310927708771762131544243025404968563033667850306340338868091952496785629736173332609686518440931978147922257433837867590997193466100069905841239449699087304405605258071395650040452278638775503202607137859602320673983211232939249223086006475487107719121932877389138169064051889478867186507268895081647683952180558197067574856900804260806728170723445238866724553149816960204366411499661055783253732470977721589326122831415193162353766257877738072246142044617557362214625204735449016294745409275576187213734220249563266729933162395326609245871988985341767913558578165241303126491199415039094694741502338818077823542622153283891850161216240691715896391775091588089915234474565771289345148345530891707631337987161935098801112801450262646349002128449804808320572000727964952184959491855006667426917330028609357475032124844452285587177396939249352840259170833363745586014422042679311433550739255825806664691486971553478600824604802023385798398359114950191831223946118710933922500733116140330679190255833642669907925118978904684615608525267911678914295194193597907762112042265505328143183187064145408677144475420182209877491050277595794142840463781443445902129415250051455452580653865762453238021031017610538972978454172884364932957272529643321667110355489803269273526464133665624711803819335526237406886997068045177051583302312366983304348561339880920269558426337478888799277060329643393503576150876881516044286445619477851064956974168591565456445261002392271641257148107415474317988022823391650229693590584991137098187311621782640245538079680798313394571603189956085398315099658874401336658058422893050517315704163244987308049860237666587506915229083260172720854290607377112279963864953960244196563208588427699215006013499059516675584921101961075539619743157685423582586368665607843864925442413104851056383162196473269447229938291112607189608590404692680111194398400257567807936648938724995350561095602102078785534956981895462781652336408525551875973586088377292238037867121049654498278878720595435110940221879313639508128951187716216291218720736113722714396901760826508799961087941911469529521255986788937395880942447124801113526789857253799456854382843861640491547423447345889615902731458827379072136583119484190083184310770801985367774034391306752728003712346366703216168716732338171746549433362412125735388396294779337049091594569220015814767440525184789378202473825776554176309419258661308178364657525272751489678145713900354523856995207492089118598943410328431543305110126693877193841079532662234531600459064143769849309979937807202610442432213268181500317498742047621966388534127687252365653231045060723872984165529570843078227055057172690651159468666356812149619705999690828739251206500016322270913864536726250650535175643100388148636024863845763382782644742693926456767236856737460925540453222746568248690176052922986339298999884941623588934780690601041317422391877295610466254546228999376957739808420687943609695636784892004631274359254597232462219261699589023308164755732992449145457481236856880104734682664676603636655992537429139130598539478604071403191061896180050720161758111149311488938817128006705124007399041341958205697007627271732452019955790244685240622628171576235054435936160613909575265152213907985968126993727765766040023023832984033446954791249727314497224051473877114083657506516965718627692611488488933674129430155427057330499348897186468253685069329892163840431002801323707571306273096944712629156639873362115996365263752022641408322689785069501329744698624372786763331558380654768651715699223901659774863276921606629146231200648839737114390528374003492956618227910476981543907518647569547365852641691240024098753475656926638798429925669453189544669456665424746090618935214228269254941654543142207303526708076027159172686985329090972736213906141240852771662065951526134789502662048143802225268752950109664194211565570345610935992483656750462861457673291220148422295767514717096223148148519288906658258960107366187378712717857134282079324559641971065158894724198603905208249290450252223285684232591566211206501815637892642071739681343027545852539130244831611341442357482071798990911031393812554508174197508200538220941087156895161138794102968840721808546025953657276355632376351778432150533829050830765785143018799984086910807516280442023136342104954422400767107589544868763395894319378940489663657278699172696291383643277430345789885216825546967948123492291776435434262604924176720185240381628566672523671248700703142260885501910963367348011477298814851523469526852960169540180800241410454070076842216871206509966061096182199933510412555937545820166638193734502740901217681886046924038763949144526220736859706055947246149264594401852438978879273287119938887866602536859105061125282497797099262721569729323718109625902672574899021075385847900677185060310734863506994479393106840560622060240850002088164263851478969935664490640875965134106216130072839983049696368516342618899678361844770559627370204112380132397427594761017865437573539137027839457964072283105933281015952917392881530970074763245405671473827830551970065782215042006996598426953164082158507382542848220206264224791548311979173043863421096883281505049962130038628794188223521833764188056589883189536998406026959607183944457832603215847992996211569464227006215484462408284265231999850588377729270116468319489915962882250591078760402781002678707167343197503927707501093152463427491622571744312770832715974469145272785919636582186121660632596033886750138963853024358016992375555909530870631652631754604732676920005446751595755229495188786201667553099151588744803854704587713752544610555301390644666583767411787806388344782851234646201418105418174551423620017748974271891571845813079095324803812501381743377034294949670756080822380335501431904563648506486299903024115994696920386429032450920776980584371110118743128161086775851710636206528919485629038047649883077599210745215530823684894815322394462686764573534684659770516796607518946706411782540365305138852332098135183296039717778841007942621153625758370119476049346213329004344888953030458888453142271510749248364287697573980263913008113062246859129522571152155812506449806393390274015803949884926397404037016216428578012880762686248287300208322260694313049795030363079779501178401924385809894638652124729929381629891542669460853825242867669600726134192884083617987513806524917924943666549336278789754945817555501928214602182412651486813537349893818561131267939986520923972046920960702477533253951723168775396767766840231246092855361874288236740472506762539222097104712993790759660053565427087990245842358384084665285939083805196455689866264223730980446050248345463952622052097141075770047150475359744053868450930684973736491511214808288328833003796938358941184996381390434887500962005819758877409831987696275811337481409782264855719568904160827162800885430912067829492547255792875154523518776819968034488471483283910373630301783467124149474630385769777739604882804704741849337787474568058788273148152968529378809539271752699876559054128728818824314926965331188710668643566343553893817801392664467874694507738840675861160380545551694332423635426573585318594285331121526417669601739943635313860034768956655727963688043127898527194921809985103961637348797455112557119638978514595042232048250535802477697172996055329747548580293015624755608065644468985596876447013416875259153393672178923776706617311916458469512271126855880566344418612568354721268850625463533250732388083885034412309068750689300101496462148861869329925533629674513715462552233420368923905192220884168868825811436074811403181394784571251044020337572048892870632114162049361871512316190835212185058403119319274645699925906056219746600504509243975460660593725070417020349396583029746129529692206481301585707885407615552547109067749226957971795823850848344086499778869900511962065179820443046521908629976711385595694674658213984679561711096846447701636985640987119360012670313534193761199527881600944873529842279338114848093209896694511666632427614325780645469496872117357940824408923295420715186993513094062493892304449021931316059533116240130208677795168167203884652784033128421000853333331107373974335672528100822782837354973149263694687368735237180998411013800678756461968848204965517422549295266942688138173400486180695970781762426446479323496932637928526722196247125249859209439959113315031582030212693742882860747911769515468973895770895900079817016932368395417742115807096732350519731756863157992893167442663185390074291266657176402727185093795663448758127281963681081934670595790269707388519714823339990171113517329432903011104053267102702762125107987865469851476280320463154662607091519918798171672285901475332100679546813354579773416681300723002605485203658389573017853709993679832978298379044276248591359968512549433444375763716345412992265200998858602372399953154290674239019481690122232239083793236458626740552666496437933475689674027505408345460427000664725317704401622341659126870886981328452300419294284693704022906172375172133454470826750765930708890453040635865782229264224421398408529457057629281219277151212167719255749894383012585651485100676970240142655880052467379931864322905020421336784106912881762323528481397016524597734016145716605420935828293614418881137189828596539912520001236000315388910606663692251233174316376973547995205632975864954971639501201018186485792717044947132279710755741019925516856186247607829692510264729090137519473443405143214831480324274209933913447941624314417087887569942560900657938997465946732551305471183641018365246703984733964268872457107821961784298008529718044643147656598738292851909748133392500940584051447824460406775675059879888337029708885544363294918811655534306820287302457324044443755099870328431922884083024665643695607775538736747795016231381897089349559320642170024112266943156670438850624052759547701664941044968807048529734893186348915099295223772414556872111495201091250610851070810697183594385156975514789290270875964901004816819692287662200496525023589908292310698793961401212827321238873392467682429619580375031865384366543222046869121973029365594358789880193573583997534142113087483016016057731387972689228556415229863999658156579894718135039568960882970845669610485210523454097939150065502645804271865480557797875763097145855187138207892961919558467891587324049756235869312275286855373003140031021061667445355326647325529191840708222777827202617926090887369222908887987352341659663036440727179534819374304274740027252096322435796878952657323250966657781064850964191574732693031935664843526406158308948055639531875326362006078380463000773385772055682716581970809384876974629358186494026075697286783732143538874698608471062912693059912747648803802230858365586492397992782963226728471878683249023075708383528024338140265726623502171385075513005092661629939914351334551330923597823125297268353088320905462359606939311132424150757431916600245326149748127654630827926469908873970651310800744390570576897191011663597630237235180429790294287604480500529965135706949436964857113826904658679984879835363503518642736535037578019947359933560171568568057874278956771585837129868021536164091547331033441702624320946094651329716603795577681685537603768052556082347057803935884806730590488389578088758027891642501861764300486045966704082094078732646335418465335783573700847945344335238918680916344374897364275817059350619904027846352620005359574643270490258178954992131292896705450066740938529424109096383627727104360525053292845343602122425338293840643389535462263667182109792741352590539355190393972890935769035827760014641111315030375025690695328726505639065907607412890210120856766309144773952945429452122307474719421925654637440341662833943431436753629180573013239101167727811532252382248877357005884487977877240854020248504667186011263305321111496383221347686545044709916033524706298991922792306105196405674175566041870552123991038788921769927722570178498370802702939721551942837085230042444552493257796902471915973405146854337414427350596691882699971016205175591028021913752940869666436054746075404874860833842487931846895815634923897597042446562444795575246289908753299418464075966011395375713042058493089168659577164712057787713298421705840067189145115473204677262806097833248679478055812011703788036158759520836835693552708976045221250221237723196991403071343636625966960084161861510816539242600123864362171935862458837881486394407192617555555751714827648661506441081583650454953801468089698568987918116948299333745646195562667009130408119422914530774543400458234027897713213027747801551519197711058297249520771202998696902436390811528075165907047430555920768778361685147245363343904513915328524501762873948920823610990480689801890673585192587982784740108647370167917268290138867262942633402535871642486014157375920119079946942943747872762084691720853967304406650399544663451248592868725531469618293378237293075244307781550031429716404595352782463328440161565485302263016485357151546163710287089805095111036729286620950443078524257204207415012006545559639879910088783758620090670943095420285008568307942695670279652668934083920524914172075694746520519834394362428638694843066282722250460767493941463241030574051191027272592021106574117173971590868196751212326792582411356617652726286784458185027169789278853203995611917137673877759977296087749046907052226748944270419998650905674686368359944844611235586148348733629720983366258598589244014122896307141928954116315273699745243684760582341532940577576642103845855823116012577577065280648057929807099763858474106455190693965761386085926817337518921588982603880188254187538665832365318790398083160598247891928953382588470420490963322347118024053448719609163020997451563216875036072162753083330742769227048532482702309240723766031295668167263176706970895824888126832586066420924245690933498392076031806084311886512447090537469331669427090645293567456278696503510640900904437549828624074253290582114952220130396389452524288686196034538956848259641607258633541376893206356624859298622857040463244242742096922137007831221272105606739307066397955037171407188767091932283746550285557003326515175215927439620869010616500916478702387046577815062654574371547270223285546589150537639278910914480415075530188129793079681711967667987226936641630464952655687218856268590623873436894706613369270290870678203395901649083948550649534047251605237286861890463758936323736782522753197640903991078602341705782498741242527917689581259715770075177006811887322736627601087241927783888658197443431850144496374494928988254830321993711055065811483146886117195755634456358053463590492176464301150407036354284917979560276256015347073696367496406793741662071454141250854451374235416808215595854896904376150316646012492837782464695196158622298094697705795070687374165940519075481553867026750573846257026381704990151573176212670984456884550384935250248958380486140787136770651290677639064779165210777652267160246452719120581643691621031822193759750986166092066679770527521793546428611786337136498459220682110704545018659214403977434588170341616247953070415773418390077490001470211301538392199039863172246394417105719369695680409391609562837007283633501603198306253695329746566830301108983543733951418935280713793458850456539961878683460110382085855798593916940968607210083989298960887664628587449886563821099372382119673029191283362612635695233965933768237126186039357630305830033140724053587916832546182298028570320156070107758275195545037709215113148479708027017351209350811286895504831744480141730459229611470219758196731692532695448727332040270363039848069240560370341675425226813205871386432946569251124600376034441322398995348356758737962344864303899299208597850890190676718955747647573262137341856424574156313314701785727647989870609253580088959874974308296637397131685552056742657223010241395702013837119287534693660812433492932468836670464571121825516940297375742838016429223377252595678608432736308192651593802521612851801889013006882360915661944788829535085958502125935734847138714446148518049791287315390938215553773604941466963437168679328629281887967104375556690292000931446191102897454570682247839917370448093193008446380346249184678430364209214758574875623913494447346155772624913842923202087680318206545578804726895047310079468099139961788693504330065369657889145803578788228224857518578459712311647787295680447053396991457296518112956299839686691614308119870660079374999138831590503559466244779514124165429924143682716155294414211059853890004662149751532777082243797183304623421138938988830029043159509931953329568511085837486915057748211588030882760491381807333092063424535663140054843556350949367480916031175549191823868569182568038991031693766574090811628245102963464603027780937791475768209318949995087892063067830045260235553135306572946496972806410409788606142911369974825212090492130674065708275422912150370645478272508932244709543518830244020051088257394382282621768834546265882707163761883176654946846534227848657326354438117564236248978145288101795762792169205742609907082061219688734732634615678436183454041515215937646403083312569151724229767571119811470231694498872360023065907215565177458906667926158779010096087563342055033021279940308545562174191838677690216421775025928654864348879796887004993655720852042888605026859788250228492279624103958891084171512456273013831617982121400102420137834465085195121257726894707906425963889574933034126480530790040453289659698975533860750256923773738643706969610126721243954565048531296095412584106159610751107850192166498708612228775224444966489512872684286990933756968076028587505206218303074884860233759346399151468187400661568965838869747804245363123093858397731619858950194019101844203820726927300494027638547382982649548294685899241819230779798371008587715417909467052545396805355582662644808734857691824551898451980906510337783752386520562058718273522739519745625308309725272993256807624329466806813844576330249041776515043505078757374902544733383736943535739757296172393407043640139050994779796828034567611098607495456283819778772187774483365508279086671627848486908462652621918500023580613183382124886747620559914458779868328680253394776276060241375700535886353983730178246610130108217039397533072974422954386807569768709948685096547164232316209046980181918703142170004577291029376871551599311915136789821119439649274607396859028774632560876631168024611044419278013910259543649035578951031354703100178820717569136244645980868393533233583645519485304789188070686116138384162103019361176021342289772231531505240297324521547251539641152814268945930710463163833294426758846455773465505805767730108460822117422301307440896331699106764229322709876182436718364535318496800942160433711118903087863670029185816211415601850427016933666910898635361683246605785979673943376655598551990027851634149682117407430454889500759202254335661700574513446237095111396304120889792892703441384413052655295621968180916883189820839926899557023098751704363410818565384634706305121371679485308632176233071676754061471510248445902265791423989608205825375758956522236837912877721952314607069328607864985773566301399696632946894079497414288160266315510228749027499735054722772284919269348401175720841843640694472644651960169849670500727173546304842952004166241073680339538298784835111017218965139620138718521728490449651218450307461256977583503865973575086448637294436351067397458366881989565618151721837338768095342484519850692302526657342290918493278048736288783806066627663523541435142153592836706692541488497440917904091502077273757580578535975885476874138187409817915441058356515959190849943474082980227531579933230342469170782140201548562502703899646066958467572313305722973958996236449972573457980423055220495328206294078303295495773776129641818195225412749807617297424415520123114244227339527896610498124951943580336242690389921271468560822890647846834111886996920741416573505880737976631870421229945191366518263396711167682851612227580947604139258293536143059371415478029739178797932657308288813382983032652281658845238525501365126372127428534422710210242012301036699607274497060905990359255793279283484822903277533859244122696270445425509038846101286848631287380838146091272055982076146336628846752576038693926579141563175259645139748960773994486959309074968366643987642930764726495520102330484981234892206475445637602258247393085926504162008981250169983276528052983302469890926936532221034706101947596575655332640233922225774415374530938478509741000835841961171328489638907895244705463462304112916147175470346860615773448113496975458300430186975588127049247783455240248370507589984673740862206555673156801331182304518246974077506546400790320696431556782397978123118285852933967667952597410776091996888928330370263000352101453706076744096723278388056503413915002822032481809147894785757456801995022614813243901091307887589820227392125273341408922234102365507723434112705537837286301117865392286426266299139414593931775832448288776708308756365139970068802525387921417703705827350428674299250490839349630594533943048454233229725021518558986109277025468274502574619853533316149639457611556123927661219734627749333768335718001067993400217976714753689574531468949227741807942437027980405810518273722137137834406321851212109510436059973210645014430745253404030730676180797930053542278183806972061058182352326602108285506847118641340061458476124496418381572420266032415969583151529343295256777251254912324678783506859573193185320365281716383638360114428933834080616188865027902688576959341810553146233521498241338933018403834316152867388976080850741368700969305895595641080734358353847969835962270349087833588398610097116018598623412819808856458032161084752326908576553255256527473154545754840250056601870448794158366859058032008028544651109405057991337746685154857799656414408889175216308558386127653443148936794493657079615588480143771429037996254570792898263905827572131352241865444827999605404237433923531241323906801040583822108048294077605240401316924956742060590484919234239365530205757127145054995066970524646962957700134703627971904041726361807238347146982432109098153295220118520401103178234994434351228304868755974127923055278703851007934026879639444843057779723402770321460647394617551723320493326122230743317300006178633553774281623492537183173273166246613372407618508425787755170264082897505963114713185073352209199621275450662637623388258151969825591843328488966220359659959322688816449379258159916789150750764019356463002825841504565745116960676637982112347604105883363127942175915041907168651511369925506549538117863690383221603644991004876918936253509425749980094648611405967195094295727176727303884294390069256376753401425405221796704946309628472872233303938864697293705665739981112705513838035616566366060021421505182005475987064779458980901555217690995710769415127904344509622760149997508160827663035706577130397711001647946428025286157899819686344910626824852348094867405818866119304138224746530792249519306338721621534489976996167298929201347042297435022699809756861786326434006569633574572315564939891633780429295997470592356877015258441895061874994035353178517498836496671499535463683599386682638011526473183294104139035520670796553265869951000299811072329098243418967848889588904229843166020025262381822703490830321597629702368005389192453166342920274184435776204215877528444735840204667053641315519805010957909689010743465753247042495628245772891455492755936704302641999494817543681375078223401322252840776061203593003317139579603253038411414554705986992419664677265997763981486762451548018947080407464051143353011383036973450370827328222339543434827126671916248009109132585231320957036816860567530877941025764128595699876419325354417740856462105874649703242440972172963830202508330043662419072177035734360933716688703094282043781509945355225412661705075521684511382917137389088531487203411618319145171943765462953792092929913769917670379254598608399580258629902916428830755861864462755173556418580942092352570540390836686875952413781070472663988063236119393990404093858467753566656930088323315647329982236767571239178088201492454146486084381900142043403493605369062094548015866161657681113157370505836842572176113105758091614980588562362117426355554622978867315410162566784508953536053231527199094546243650629844932780185054050461389388923304592863063070974786468883547970391567825666306623477520447318145213679430056347064357269856432405461270957914031353719605449427543850502484248831743248382859577001638811554822198931056358761159554619530224461937559805041996626375210795345862325788438854558031969208681586566104010707628726433053897811830021428485099886955472612885454483096595011891112230170325836028999143169916369945235874837001212641306986984079251671042576698196586323242704767947816882883983623354007881303401217484590673137606308560963988146502994297064546584528822695666450693064276285796634760446433074909334192249055736513333289113525253627359058499047710516624598053879995756505249046622929770822955340475834289301647909342646268461061846788023517244712405319783179199857133217183416517167288270979586030870704117027779076049366228241315988203803855353242300609101239890810037328216232369971160457009799680576107525948189834192495837458800177811738983504394555724228923459780154329604457628438074925707143557159944594694020218528124381153447120874590685711225001005535014226334992990470927590790677407117161091115136327544884710809090729866460874346448149725462217607890025045307911297107699342171694040355911223003859725687103064586824314705908483558975809416995578130417226413844955178592592581029289202315996044896982730879515825609293301908236622577613108268629547509750093179875071753988839746459973869022784137762764117174691758913980192940937898368084156478287987134630182856880089207575497646410747240521002651846372972111872217884466190425371161439966988341501423272995052503220265329945496916536867997375986081275562317497815232914397576617255844866934150849273012362557285705321503962488298613943320353070769824554043549757433549212287592756695329154600147340858705720471563919443307663904257630290216967962792221927002324623500589547442847565560840265816024712586542438080379774109399521895922535545741049534412623142081929326717646196698661929676915662871306639221736172048576139447652642557443852439795099012365056878809543844513037057761859392094114244644872832274754812527525627712723621536177704445308034890100476675390696187294037211181719080971357628019432784120657748060326905325334449743574969007519330162203157040351096713465740574280762596828511177610739031179475418373007474283151319380721300361337427439030539948507651201264422962166287275356469090864747043108613197342990659204643613214569130573322214524739930532969422778749823994017522133525997480816966014839191798026569177170661195160825340240696972701791117195277139009395365712502886609446325162298950657027525495845279894405309179579124318984061438945616515585123878570256268939236456762411746631260625743913745168164988264149465272877971621286993686096783114824919712702019200019552641879679513165523758657886203061647083019685721156432864131810217100054952808299461176173104821975659129424086972614277588610606455418467271505939829478862532884474478905924599670618813491430660878087806424628724542676814246148337447942402579997945778754070105135248072858700363375802866428721791980077784788796915410774006368479043656005841295771134029683641066025059413786621009040831766855551899135835730456456392818947489445686405229295419815615077185959802884151473637998363952438672737203038332262615089435770334877777461566566108184148116896482685791074989258463114182695831290125818726823812116470327687010207272688786440951530590838394131658842340997476698469681931305188530758526135582144887806077023235785830760793888323292645071489821874402507468942734081714573176805538714747922902034865614738893860043702371226114656446627804353342315716075811078743089589323366205284822404629487799807649347550965826697059329563083059285870506508916840342958872765166189636645002860443048914518303586535704146487835668148703749076288280155925353878852232124631085383889592611081225857707390293424592418632549413098793377623309907843126336127969042779839415443741348707747094852584723730790378102533639808979231556153977079686824393658915170370029770386837747818781318666789333155860941699095416613125977575856019884126571475158027407391553171733136577188087901318071184618483238327835864132999253521686614642215690753583291098842189059854702046074542962347414985444089950610290556986328040226765292700846085806027940891175220007900721389451696237948996154017549355156499584402696264169766358097250745776588252293482463703306873935662871712410830988405771133308940665292367434639320248455867293494012088858446388580318512329727588962620787775278373245395679705040414526183568428648437031773028565988925507071295855645019789359804342719236717279342730540776343125390691434041725058517765988189292899270694790252858749956871713450996473567243722207804399139898210245038498948905400801234285092936588549712618759971125292040689173872955036334030416243281637276129778077797484121299049345913892427688538132110778750828564101285565434339156990835609634236237710988983752972470658769389274515567872916201710333747183377350719457720602912334665540587647525614932497494863466918255919296820411146310317902666030615584999206990390528899166564411951307518222905151558897124065957146903474987199730147686576247440962134396833944551606118735786994933466558796400890148850258191090174844375885602560716838013645837802162185702058377360249951164577680383575013622534988948806666286162818151826085728747885313580808185926052499177742274854105641187257900782502283217026548161661552767003097806720560338479752376950057667403627828657178952271356064803452757858897836048576836552437920585498764806435366350328040726464812911728921646095434300807930839614800750841376652945159111525067264717433190734692157989221752111437236799452139870776872124109805135675130001840732065934269387919053959976457810107208034108588764735651502282565867792380126466793998719782623514768424501794445231487985970947864245283760897860811911980985876030640884193009074879966998486848351310725724834329190227688149659382445601135358715097768604478413896678369292962651029541180152128895150603527739347797878927908249453889670923214449522742586283820904972936552808714640480166303913296641709268255368482192300218184882588957629832781728119226071041960819615491483016706787683083591075303769542216991473846912452110345839466038393671105226482794292814497971042847363274257855648744727060471636071219005854076014278199065072581285725399096595125564501262532886954287042849995528965134070853048789897209952771445009913065232186262237316028275840737729694275204783573647588022997827587202426247455627319298286157687704839648861727878138197116481467830476929446379748937922020321533980995620156817427668250089322486247630974525318795158700735720145514897570347163536261825765888376674036133021041970487246087798782030480534444264812462561728119672100515359996677601238805365366533804971195260389081660031264805688263786769370855906879299707580384853442594363462643633776228741039491734590924816295877870191441301977116611241010119527306432499066409912567750638456261316791632913850346921185862097111602035400616009233321105171882963818432879211464702087520827861826338710789071512185203041917787774039961237000289409992521735261635825649458693414954141065452358375152389836867567700602844674871133141017565205729883097266456866648612686896957247981772595675622635612832107861134609643969823638325902643791369300463739072394822797011255850656911591282843505829254604590926274021114383416124104661409932182678336647320070892671651653543412305344052514344851200667319683438584045221744586713163682322892778647023698301467632519334165426809927910953343012159628662315584669031244707396093233129788355138410564570815580637433704734816793778244270201436712727970167376554323297038922985096503556667877803622256059138695726894089812278121959622159049836480779465085756048815878851831134283872786821536419212856025033849624172830138491280796447439778509288917976606182965946601848857307906197486607339593253627172883828592020732432039330000262759445026546943903143942855703997370359533434747111395152130612107874805221534288330387022615985791675205603627104360973272217053334064198555059078591453689369931693616579359723946000414396518221793957431564618439530277589617898473478739681577880177705269455064558672839572973614215667123296452223162269445666731750482788068971697246538617754231499372539499190477934909799393304680640444166786683829536344164546090814489416161139586514729221024630402225565110404999242878758306064581865080558685282611845793804153057169472463048582305140839716703640293381230934932737392355430687559868486098769022953087644875469905709762137612543096587588665888970280991427030218510992891893582111218761725701693655288978952057360669080182759557719869216039685105205719107498509592229998817898427780493668773134221212568577360360043455034490188328479468786882916871287396578386511423477907948537572108807810375770718001074906083459221434595677888060691487611225303128721392612133123944880655876670337600918423220396967177595121639885618918407636917509532084979815859112337256630858411299430477633174878314229007343553628279936132462603224494093277620412944455031404478949160714400134532787043277003407215146622933708528528979865482133878037270843642125398358346782738899208567962522361992630765293634649405562040463657124228026290823930846393645834544655377084810213512319330006605509175162306981307911738394944786994455876156643966384482490531373328707722703835059645865908100709148701582635560497778093079860253025679092902311113293704835555185620203261085262706582865087646414051836643387677000050732595798529812490551782861044984006842846591172774559440729036889720237377858182334391903486799276501802762574465267494059307576508311731309392753143111881824732557926752153463630576155165661490881802285821716746418103415315178912984219118750514388104170287072731554294277824956872211401819510910519637609067804460615220575627008557693620957898498376754709540540165849527107035481026227385602692723515115990944958778371904807686649192298758772564360966726132591912853208568483487563415385137261013732675242099734486372085049179032851191872085795917238787532653840375860954292334681003116809760252526135287481932682886599376300000279535531066706672484161391064447029083475669571726876799495193296119557437244960100213897615865764579439586251874582652879520401300041590906991229664874167267099286610112662385585768193985327888130296165198900389136646253884540156788134811083170526862448690823202571621590474414029452451534047025427263832611110371339719280987696249024670838405563959779814972279964722046070514711902505709410372554682737068341000836110061838221398031095449689993233051134346475270903304841680787842914891597820103876267115776237592185496531510244715141813875080405269038351223018735619812767101915720496186339434522864036183266734441532717911156826487560008237239629072918251627688147182003204348059926150195322031533651071981371727007994632445807495821329228719489273224162782327687529792761956305154154324983266053403627253417115450594497808028489091918835481248066879460914198182181782803072379510696595141191521086595725020679567249351353777073926136537485990437098372586243659379502979020449627054324809249289754583446976678518048021822668763269497879953544193904761160632220391484653203955825847354534428823504615445587762075385224675282012122853663276241717489642512137461731242833954836882367413254427176246047315477141061481732273152283272572941359920970234863237861777112902936434815503008584672241993033913815212658591775629739803214553586203200415124986963871382195438133168578727683722704548505035559039260299914574667253909833816054517447453310910805982747693388294224657012825480755500021805355467140282466261556429698937533342663840900689969839363483789528737287050185190578264522187074896216833270339068219619131310769492583406411799629616591849060591047790632195095803382841805136929194821911820724374706060330488374298794543387311621902138976175123246096195290384471102679883581397869914938420167841018053951046509784386988982557881670229383664539245603747584506055768580065629407169652223130170206711019097421283190335498565437802528795027584523722373200177017448345878836481569522736642809027166934122538773193507426861373096310478872363429547597915607995608817449220542110065751382682842082973144351123289993674220783049723763373126059007550283243411748366098437059299684178544826731881762006913687305148934532024543024798793871004324173035715516019720975190731650386437287851935512972951827389883858325737298744473154559874588150621821853983028549192897933218834754421669104435165930410911264154582577074277705390547330261168305174166359534986433481723319116392621547127925328808606227971786354101037513395399677893161985671611416915938989423956980065156444415886133367136837905876117330368696261268943305327835636673024544598617385801642017728415508730029625814862368953021867653754260850304889227094946248418425409609459909178949978872870410147040655753018920763189396150432073248043535262341247771458239086905056308736707639098127431143993285127408565966372370056059461256153425155004705565929907440109852797867944958236849822499153150584553783069592792889685505891897987690089034091804732342118274156995483963033360336306546573767665665300976862221808937876116833156844815117547839203058962370193385330713877322668032459692272828742036429026907063416084500388205459108024288497790176309198813412557690509071278676109192958153105543138438101307705274337233653857575991782227070043717918755364891498773319372743777252187349044690727595736324743177349572921196358540341107321429255310736092164096678368967340251714109093759859239667918401218562555067662621088230629022948489512736705709570447610384518929113900105039681942739627327870997991171300989131827062413531014676737141321229510028263331709213013823074500582606333973272447619712871788554002171293562099155556487270774927433122539152826936621243404269538352513209016617458175564552335601427187973158517061217789983754209524978001641413004573665849636600439454851985705203423731091364910154090891969452947783261884699477713422950106525003541885792397761153090817290244304406804255258610992271559470311441582908411500303974612896501876164995298883744876690681350507105083659537521425404039939540656045888962781295309380956703873257507688910304472840071578666318779118108293175740470413736272033028148989290292663949265790568258356020676426238324220778121292539275578545137982560206659388635374508133877248093324808987141609080397041575163883075718249625757059418392679133871225753612484769676547059451147407138912528917112867138662264246970939943766006040850328659651276381676342011122532485417057224999677698203672780418764103495201887505869124216735729431878173703383216685577055011794190177180287224101920108528745667189008694741620877132267811156572082021366889136057292209596898415949109716972945560986477868745132918672686120262200729212217723800843521842943351698317666628291401952830033680277884860152407676864231294138292837407011850343814654632823866866021324283415402264708359152784262757470651352929029540896599692633804927082318797111563127535890105298132577875711142780024410000740079888934221854291147751368043459778119532748439890951342578070890207729554148517529864647384893312490959690368478562392627257384285730434906224141406691894329564291889611201661158769619952977056880672456840357365097331009106175029797679616266676000789684954892250810548781097740075726200929682743844170181369441527806262518665996416844934068669607319684022037615131693603296738257391181471201755791431762533775532267528195536648065024086139672329590678636075868604278772717716200558622023531169124864809337323962371379510597964563205060208401045575403186756270457208709835160470130612156165819111549286588945283125971989699076307125408441044314567390356084586778574517749773829797915823421173190667049754256531917324357033952631441321843669764996166116536470623094206190500911648808683741447631803377528103865091898540160164068549659284128543463745831057265139715215743565094153364527736379307785918740136766740017789099554918476282306777461632934492965705026666241847821318949278572894911609684364037172248851452542583620361038441001745099099985920740285746917357803253091076272966167332944443008625527208969579224652718309732178743437418628834862577547847333699383368861805761745538034428337358397891120007561467187370897037491914188551516249832122346683278947891009962399395138600245573344050042763724098677463343089227988549332075950686778110095169026731222427318286750344232160987920870364543879885945189845259519555383646415743820798993090730594301858239597530174973148559555663217417696804639929308138248168957551831496596148650806564167668003726924574590959303875237431210416456329614249726013089002598043321518160762288417320506921027665385996334787761915194337845908715160722555674454162806096317570207320048216918279636806153905756905289280737143965713313494243441965118144267359012284829032750143800575565768420733367426447408135595963594655449324747524265179044338686306908641441949080756331892680992443692074205891565398984668724039966572840841188852139948235445692429953933017129247595850637795602343290849150134516298652505100014706126972871732494704302509259639028336269187105858279957900870453366613184118865794168671563340277395086530956179937496542740816217867420436738104133747007579961622992108801111751341923882336569766776480543906976806431763774536482930804386369914258567183572376166481030146211580998471520566617553897290073094720577289419966529759001244277321335518202882825582089219930072012300313337680994562666326080917880720802273602346313603883554051534103593701163329281791180273058625151101594331001342116072878587465183580238500665905391257155929791751551899361789642252842577030005948197724160525350439398203513363332937411675007527881900188485031835637891665056601880969892027373938823809566395897311453185463271739210070698179012287527902704388081374648691148303553110157981474807944944359308720772374337239997909985312626142928220544193250486750842979216364358990250775417266801430874380119994549696220073147173012413213163299594460119321992988731550372021198211997283860707881914477252229406556763191070681221550824759989752162959510106216549925646393703418642174452189977541254883055317526913214205669948063903693494193118271342573545768383270531456650486213341225838694428065473562601442207065672235771805589175505385697094160735088970079764614228854343734119100150175063528118824200215226583867776474176266845550270882229793466702025785519297279206013546196726284663530263305031565823436023660106272123287626160850906765809280761099565444984487005480884222334931043435101971854118791782357804171213582290746752847676213755668838166912760639584093887315497470740486475613001500544073731603261514067475146101304397163958701862506336104391565946909673281323185003404351457009043035698068064560155538017447896745696206449280566973985857867044413704656709351207560071598168677345496511341363292514082883307557337688768843647171322878139559913890079354696569808299966108798126160494098265576635144379393815823876826619186130548679105193093707447464770258356875543841360805224512876705203424265377203576770101194977682503388158560259560553192618390640669409725666643358688219871414604061955251271673443018612271023742062126316346578431551667838982328515250731161050570979106936857916070008081609440043232183997095076807579162010848928977030456947741883114150819413276240506920980200097363913251449685047777393015642777549180465223985808884484260192017304802053778335482361557864599430562621697786817093519185077828890617473214765689871930611558809578005968628633855559724916960296703994939293745060261801940688338271420568135258600823037428230733298377278764377704152724041639026357822565682578124267198064800865691380853226004758013906496297532057381419587981076789359413716025425768696175620556414990785554766700344526372965896318215102199074793562621760438053810598626669802990319993325002997835366121457346442169473544879920395598729458608945315575922062788828181480711198240318916779950105878884896590507431149732627141756841630033635110086708259746435034164858465880215839359321164782475405354107129093492752857791834856983655088756186016496518064654268073414463482421669009162077512191449868992649967239074510004827462267990606238391919994953024278544858954992989392772807170522756801253565560061236411934478832531773025409681725551405568545631035878031229012892161951279688581829240279961726290294158819827985944137177437848112888765363344322565450626684191918211546678141813567960417331970787690416528675531962722560240603501871065079560021554430047422694890793217030854998721842395458661697715320431412298795102046766605269925704702163583163110841162944579963521646516690742608666338106116392607514099508039932480113890187375980215307121825223601245845777761942470004401017999146546860994474204398499873043420117526416806844831716751363534656004466374537712191458567714711671557063229447546116706698216091713132147200058379336599960209347005562806358437846223138404082805288109304418780399297763850055720751274716663681274262487964353715451478347933060877495266608051590749291698099178100985668299715835839994438771228953999915613523370811036227262212728657444455776924327469915454082187284532393357317138536236504604429407081371622657695304355940918939175490618874099999821357592645622724559744482437007774923063121401777036624709333259549662779572286822211006004792898229567162884007128267434235258842690199834080827681546203914241175447840647411457288432480639259186639291598798172709903379940369282635836621542193556858668831780133928386174229923197678449344544021032377912785315507784423695957518712049636945072087452409498966903765299395532665416787466466312071010790441044389675127619071371985823824310900240760621879025211134670536835621177706362173433477079628280638085539058306914172433756255154696458029805782488209359731831397685868598508645650001505521318461347860707068408850173685898838803253359343812170718032553807773630172085752103080700491461297267801327778721921699524085958594383253558905654931041656267628376126266056702639419168804693747819575515301456096941245544818380372878107398443746174091699431583816636806967984199885439481417566031063694559569304026099716265997019797611163147258683725434801412738470100191922503310451197688788749234563573571536376922451654210337810990866204607289329408868524758409695312115221952586358277932585279231078298342935605957147707739313526892306582664704800506077543915911268877263524849067861115800822465075715161272214899916945709636702349193017450578609204730275014015578169851977358210527874234624028381753094452787706120554214027344266660475629424872597305949590549677312584831758914145350224857975622382752471038215513399355489563596863955044580532395385873033924745584021956487973285620020816937619323768414987856448576859886231742492860307133559115714348981161358426109460437531193647794883005455439530377818072339832991959355627197548825341379986300830218067818846188928742277545651715685324535825185363977977696027453648744272697550257917894283027852511222049338427423737306824219885456736524826602808634114991176379377433600720341588152133769157008933986568091126991935386246184125707965880069280585360937249486738907237016575698492797380575147720264073101191777208858091377426729529486976088651085979143296355265427311553163131692812433902109012571266856451592980507998921317775008317071910649350943007607623015951075352621562959822709072607529049015699123435828602757108634731212596646004376467143157767684760243017506592905717265490377725484931825433607974814334724202244347522523481582248588005708784272496034535425237575787694516438754025611562223488621710874699328814288382905331644695304046063242717273425036202097956965789633241981555855399864810736425170448307297489905567696152725779873281706092464173710385676014984890426059508045543546420387872806805091566630631893780682894544968451802396650243138404309216447275736485693303470959256653096746135722595082482929962815779381199345366064144236533524024242226015005915762873075867300701353016952648292967870667634721509985814875890859050591600146892797199891686362145222458811116536057669759464897179494855384952552075155728940050573969323976197793279474981676768061181386772783053739978550450759779396003497432584596588242473468042457668653910270243445990873390558734072380690503683694861314316027060866750094092363682951457359001234749833999225730858398641677233261482006424628663944379767652742432649814316784199601463804858156093272140763255728216095249705842216592313511777148909625328758432670027829426725811601272671520828051212700964163277150828722240452935373829168551362603768186451347408962935642711476791529632628929958400571339917758043894357067038142958205091848461522092051092507689604392894054011290536403946619641727986748274206022546327346649108176089716905730619051526548349602084934886380172031715029577618302175037154262408815489968297979774085955491170698846328307484121974166034254697049034254458341030770550653584086453753194355312153421865656307202131368513207629900297995097077200501970543703232977110371546926818380669932717726282028562436341129656454928077075112365115311669996680765112533888341722843783902108859847061723655116894199168776384121940835801616743934105911045533921165455024771288527192499331038514324949815019125576105503181408676505821493848373029460782578076099700452806459069362939955477212614330036565155275481815002985168572383459119533779360830118968201271699814101998489856940165168543099438056369663063637486111237551179926126039780994701370614147307125117320878851459938692473549646780946095499628499875678146491610367078234391918730936693811640872415990174994903654727431963427171469631116167712076566398326948456293031545453876485368534516056690495790607210587246811849563728885770252374086106366804211969211884546419369728990730837115378747543073424374345508717627748470577709013879093721189409819572212913590435165741837982492416027298779958766068936342999061019513116965184296548376240838876248704051004745845318428868243551016550059854389963272956481431041115853775641054321789505617907667931268662077390212758135484316826908946423854732763216068436839990002757662326042329050308548745242706259889382571103019788134014602710611120541585035784370365881485418372681753722409621860203393207460776245675275035612953933876786455595549227697420048418459825544641895871871227755340457726852519367655713628301364069527268042918444668482428847960229712226050082698926408296244296168415508394111321393390308012898473397732788693665549862356744967671923889445048145660617011488889192712667793137729230970719765857274298006229688286332432379356995735491161571430024283460677514958513945443910614811738302196036141882134373066239806911575803553458353404406254228338143047298076294581513876934418657529470502478929273052765864356830138355950428446308581399270683010702554588799112964259166857083800201176935891433395757690959632994735188083434856650119341045264854647724671191250124799174315740674424399122278304716700901354910898872196981955559831858703362904897631907485038014277958288260020587174981759430591184923428160286892023341589797586637302138035026187271092463826406932422646398511983509409161594059004634069229834451195849049139570372174912247009588418844922968582492940046426781898293717093721852666202322110856331180966687218100438857003363506917203010974324878170410044208547124829919644531313843558186407624243562161231323733796591307288630009984186258658694964347234881583891147468965675783110453329695567995853750585256478983024159522020290266309600461003395534540599997379452699787627749089429074132298865649222746343608487986961138489999259802976906509557251691105842257048109679179449815616176293189379043891176868599609002332957259551168825676341308355443993196472384153077707262970325122589692473546599322247464517594577962431033673394188064635749190132696460440495892160403884781446082800369776375948587443932329897376503312919196301621614303743442352551946011212279369305839033868104810058581791154372559836519379329220661880228761223747736296598304372229951410736341126647138512012361427585347250219171636417441648053984788039809799733700987695828734776515218310170263744313464710974956733924272439160681211849063919284703361538620092449475305674002568560406774429528253774979098784108026012931058425068792797934776076187640734966834266406163260691135818598470878294695286238259040624380480645400525939654485196556876578646319671343476521321544016307488495558172105605462147622919685602851274146920616150510133842331421739437342670264378914910708675251893046488031168660628005405133193521737257897608543374436954237564093138446247206647389326227640547476106491175524242456592125201269663986301859321889569231564666204695694789049144015616584277381900502513865710262568907319108523569568146045548914006733378838740547495149289534990250852555570687200085825417696413983296738477447731974173620082953538015011467272332646762639649167220523822615271653284557584746220915488329470751962476570367330215163664048407352815317339718266475918805888332865527596661287659679140993814594076594727335698490383264467614538773585952447595070585915756867393142581668487034465857783803173579474508589758593036870503878052613438616443774911668928878498378290589217145839448207981250202736206997441271856581458757600363008994616974355382963774172433746751531255298709858427027775077599692627915331913295586368057534761252223505946573854468685785129359233408289553213852448126702414610438171228003785982976135812951615965904662960824006242333523516349711032094049633077304301581958392785732984616124190721893344175118085263663733922781715453209568480208573048010825591622369958622738604935758037508515233210159980985400451217362563630207134697298578398988826011743846334618018185667933744060572968838038945468274398894320248882799211972055947594681166204653863861548824460062702202806211619527494944044507282739512655801329129835075289198806128932257771304429004722149938927397702822140232380095540676488139626419857142979093131448174244760503338340744883020716371460479753151647137839936016563201291444021759055081795768701896674048853896999764723617583274092276678793937665362451965767798171230153795095980136939659981935445301330647699408912490274375223133714432689127811714432428615227638249709750037860994069054738646326999068529516309582221461018838372704527606440747592906671033225999893171911874176731056251485615015872796336667693151388757656328491499151721122578768451171451661242418642780973982986726082486457445324559627339840120536505264944051559887413509382618125442014020997865838297482572339304839465502443717581526373051123636407956653810135717767925245233992168855180069331167414094808572697822365535997545085145164635266578973975795230757471242112961225313387762788808852984934406874985688429996433219361117247119926305550889591159783725153214283715249266591973747760947399164120301524063232856823457428836927523155252947921136315290042564027840675628952147339656889566796706780267375675573663348835558742796368435035649943374278717143422164582106652302587956100028035021941936955919919011218845566685408408650305724370014758854878635236989419248211176997612521234509410899467250470781165040076591455519518428148246932753172492046193925417648314049892435593762794996119893482813362038620914569549565480322729294137776784614639406908167467504945160910054135541175611004693849289469655571795474476075314316589401178666175554334682394255377112984038239224829761090063996962010965592678657438638734592074913888391877806543871474654902551206542206856455064930726943630050342680090706775874983003927986077739181435810727232044825417667612429346880719620726866723545675202974008543809014103182614981584712916940859138961450227458521658536497485957780709876547549547379880878918953124666242056801542289430836977891144358392636233688602174789712339485370041853368366772870397191955299135136201898475929292812507027212007467483552230982865421923534329775768377947791727165875257583338561200454717875219070141682275135203860809255106481224818903901290560167502154266257402458857520155194909989987736497207426467698078526389376437971819785732417579572815915749290302345667027544143438178521065080317595839688223880464437475872854220207499210825640641441305700425197674207593379439019437085393654268671252349146222231422689787492016869217128900012234658608980279666177200916247663876255487464618096059967444874745139240175959145958509408873061505987513543620480671563474620854236529819164655855028858245525121143163650344464349492522011671558174345901512848839745119315181330500076513423945172086162095587234106736486665781244011449829058488879594810173534005162779725896377486038051230988963189282145727915011125253217762839144813004161168430156799010629261808953280242389751070296133474073169430380556673802028293691027169774112073120970444030433825043569503858915905828016899659171015011593764548209836693579350776713010964576886238151290120944033712912075209158127944903935709050384673560060558169422715591638416626383993598931574406526352806947281483369687147396793080155152213906883230452665703036545044231974845649942168513134051621182377409528685654297082991168933392349942204078189800021071084295932138004178247890492236627135374347943449533810915529018511579813938619479529312981765842013326917650684706289379823711010056947231985832162240006649350138567695561484776206529336524407701326399065079626309438615741465588701045141312485464961798666897531096511097387054246242379956879666187005761314454449120789180445618588396486903737885776917314344110083394071431591487553360978305522857618610312785392992531418489399627101039247524862585158915035805896116297655094465858231830230092287030390581212304717296608705257714740263621448843121848730296723637832166888190118595253014113614845124500887328752764125578059015836684138258223345782501631351247273358547470679485858969609272270803892821035930918123891688446716518473509381262256327813604060316047665591377881141397135147824405323432322340174079603773632444324954827900500730834528738319105436659504754015984817488029349905483730226417883559236872430011496896118401932389403083655313912507117144246519593917866456338138081794934756769881039932726879358802706475968988968159324430068204449613317181382436187166640652466899195106379748282845851407824826450092898934242033845536043634691186046762116665060764103715141523992057047844196898325279332282566941419731441397680750007539661430020569695936342381057564456391572449345001993019611003823993477336407548893325239314837810650386416092161787701519257557618026485086266068100724213021087445855805032719927035801550008149351411884469358042879636651019474037300545785709696834022762553988511102562304359628572660377367204690365034378947243734624399744470485680042559293161749082147780096596408845106672488674189043374655389200089183094258011957205087510965100566808851272388245500439529002646152882887393845171517926694441995803885669616687742665500561387577874272042519622410419239565816291650977542344324219018378586947704892013321292311730741076825495657070158988546426208991062195795427718650600749877519738701001286268319673258016574356333480230949705320624249809490818421990973359820286859183137069295841799165138588933388343990949534490649903896875634896391587453960140006038553961368646553337329248781254544961633149483753092544219731503123139008143307717834437359479379767679648652104901055237270255498606874049547496985364387848967010269021002425923513192037638134562887731814183498559603274715530009226460420430299983140305507826180214012886660395935890321919570627609074150225708798711618309724782699697914130600869377989350533019127943594611389227888654445007041431363172862901998200755176816627545865967024949358923529863442871658050572091922900976415348768495051185955172279760065785808213952133049142114062263880681387571290347861234075022277396591899801991523955624968710280800444971986807447387973289549205565333610699866551194017618843114770461331938600092468996136744136343297996436643228174031937120444549489621880061901679939645698438177449448428532286574892492134803315377573949709654553375156201047309195364490015863369697351144452373269565030437362838030513939764617196558926457020755464963952008159101749288211057511098510234226943572298477755115925732569632470251201944145640507021375717637974524941228327461972828201034840541437839755206010054267373808036645314204563193187995151607162958152939417974783825686039383464851830084806862833225345940657432473361767616987600253565718451070390153444924665539087702799242479422785517340800197373694604774922706041666879949265862860172566653634337429503678405422465671500531305867763704733407989637189524532190443151867285562286056866430740562112993892326243504654621213347607332908129302488375935530745957574109720008580207775497897256337658422778633311800045603168739020671000584736785759568278913046718227408887304181921604908217765168687730891085566638548414038377672798130450976492916433238070195942052244370745222952537738678668914798346167134532712826760537996932343910660024613679867786044151311261198005585801246134102091410244224908252522230683281953614228421101827464637041651122249338634934054587105437891526399473880810021275351304142775383080860100894750797713768459737782385518423618183199866950712525739980556115469692643447830317618503934827944002279465571328575886876929153080756176713355788055045952680578618540246778793915386138057225044705419649164407310090958414346525625385201585378633247375644853464421482552979597854405396246014830091814603861565172902634823492517474830669343644169090679573715094505106398280983831449971662545554540078420563723181309205859046556434496343929391051316199060470175661846212828593550260439934700068773552833947881780083510791019288455881074584824481939308103623665502277681733889327173447072389856250004686363624213220572636373393575256954562539158407246134489111624984545632473307464337245779472962054135990034898183913456943854496839009948364334803107638084918425416829023831674207010180728542065688614465167899740269744477392250665611013732135143587301480232454713288046074553384910092138664475102052924771820345842628708727673880558040568978905648783874044998936807491603739257980185736718461527861393155761061132769651934241771885930947381121055961201725880532557311927983317312722715373102614004048604224646569598843782125776416236102253221967052293206366520215774485853243666622467063356136749415143240167387603422812987871807440267639725041009531115174389437843423778325617963280349219995772016619496154727663557981715065880221850069812691784773856538618575748842170457687351489151363926828673431566440532932315553598884098987905526533719630854916147013584519290155959059827277112211075155767025191100100664922938688849242956887795767513589714343652465063401849973963445554834879747992662356113062009951367633806431499616400134545971984577538359748831674212501455830740493589827731327280802795682323279713585689507996735989386353205620464558607233778606894154045197756990322245525083661558617465592118942027886996148995663525840930378845957171737285726172267510305375566897087250074364171498836078260113995220287256248858473787261872038377706818095995443735149488132252031604480054977621919666510363265990599394954834794006311218182567761744540247834040303421739919876947219540766155215117108145287192574071596335658260887213307318198610425657237455750917251304747519669051942717535936390847329329452615258364729116929799799794264398660669752544190974752086603503924501297939259197555269077632897638461640158283817211097415923372779208178759801383107809884490057149527941978746793610536996895695162493072407291510765669507364658104565571521832556612547635465113152615009870643795721476201418726690536113898466127573264997468730937878256570191720578384359333462893485175142802502881413808858327506436483506150061875107162566513332197282185628741567034411926092202751821648645019594713948912564569555159591269083158574321354416184757978226771082452791233719978645788433024826110435272150434357461666042227810054897864539585915596579600561680257451041690951175013789748273298943558462305949039417744118138606871688331363924292050979699411952232503027186409510668196481289482979050685588504442858399035873520069776213561516768106986311875628747142963188109771699128020294545901640163002550618716485406851751706289283691432677244482214727147852006307629013023799444743167434490440655225760819835952932501685918440744042571081366010538791476345450921541534882420704311607835613366634420658266177011213577159154576726088511914031696832369344201420164823111004209206159795227077301769276545179016541491412718293946293015173830168655843936261516876007802359567313762394009536254762165327251961524427505742732592271274557896036012582054029533300224933023554830115169480669843672253132311228362342574786585215468801755677847889746621203795254256269985590331141717024410511183946811373091045504845678267121842652970530084135847114247443256737008813309349077876807397713153943529296472305929750641079461332950757519975078474621981567284819544137832302713370517326233364621434057631702180096196581088109581184922138930861381550628051930101543348809378477867302702604882133450029160000635162010083998642437302911098401893331319760927162896559336610023264322108653297641323351721211637196543570515774277844578687239750118650281484975285805281176459990619583009170879428495395803494227539394803579571332844034584593432648520922447930973307580433171191523677259930063317026694310185108619998142095661984634029399061893835424323612019753171942500175304897563476014012217102899350238588695065688959653896244707486876029792518617598230281797650750655941078912113208094380199874650615100492774402572295349539225074352309119086817192239979854203134918492131047853743452042532457859844208546950036629555619164855596562459737727839307389415024652398188249041807151969767484488174573439936507899191981791189225767984553296314269035822583740278958205483223863946987890992446061499552916454303938121448349814128552850731827730783872163615174787249246993992104952065490744404562736713472626673793937679716857464641370117649634218705655869014953482308687462930973486177163062073004979678292210649933073252619053679795172673535338324842367501255065447554072754085756681616348399138077383874958206533223274391858184181997142256570189962899921194492818460793954775897250665443760064340392703321413369255380707559834727701395071677040032600858477251799721889829819008894722404320221887729704319803389353915802888785773920829285721331748151951932332729583430743279992930858457118483885844900962126189345558346149995356153033465750181591219538514097173899281085024964527740103843041267247675992613398595838309174666849028598853897975088507682446165168742622825321149417033941989489938257986477809190161020081334215757610732504363403272929398346017666523701176571456335821193743655416387264504625053115570997287055381971766683659401003039378726245124463544077670920990299603356201787099330318716762010495716859615029176690865098342511502240077893313007573637433653973711612773403645764888727266121376822761060174573955562507554192544866958835868706665411126379514343934171106179390331543856637129950512745222710261319735071029378102222364427260373631046176924025433982254652590628782519022596813787880840747855613602606999633680813638629250253743335050812090625906400625730830406981043154400679054139312229815709327973086692820316620691699215387630973307853271853370551884079295117693409027143414585577270694192307157944622489568807362205848747881644229643115850403686644320515464690786401167490003117755365683707693106066707971009476260118890548050166287324706550809088795656415037553353992438218456783766244897875506011747740627559621885715543203830347640420327841339196238044348858094252524013748881529377747416945197919510883316699343002649900266884907866634424903581457122428459183766667621997739133536998422965312650708894643311735637274506303816036795426374752775654751086731684846282170228351380847834861114971767429043430677708848576996361255549077453450719992377208606627003258527555857795014186038201337319358511120251929137840146402051433855158540340429608647576855474429787698707688154297687927028292995414396968487463172381878776429550733857681885364545969241064274800335177032596890439455648682878792564091456144247143791856959300470291454546714771094698100228806964380320152942650287638480304952089616403978407252787429615126939761061805111433718969908688922988545032585052497488352168989017240893091040546928164624069625366539126601365619330295000230377842536609466092738846453121518341811015924430939462622696136626308682919348760722218932481117695927583601276088928818753366441609902145456163426320043870822101132137850235295702252600679754969758655842562331729374316157024210611169633262164823366540836881340144829653756659234043222323365680060693534554156478629364534873536317438040788717765107151010724465525566175337544133364297960097808294237004233091584807757880416711922682761173778739081317221241224212028892160966057345681780792829322116255515041027851268370620524279343156307319668050424043771769481280462507165494349841203704348450791084848446336218681659498832509328366685185233575768053079995442982150070471963765886131132595149415476446417923584913954249104176630528642984040045827014985013900472179036376733188323865671650440541851087974258267295516642907552581185791879089453017186464297705193328066501739141644144112650122131744186360238049215261373106182158387168104204581556239210942734923642709104018348364319173443194816807649200359036252844183343537823900685933441753960747253195012742665404549532616750082548684684541942491230769569677851084126229524762870316167744522127030873895650958465987217493840944700395302030668545625375578417231493413936574933857056298166923733195709409677357131761888742873814916935965175929380709117058668424233197836424340413527521754685569047847674689182056458155013965468874507165995958253289692503088667419871474539111510960034151176399521573080508650673767716452316469297211340927050769777386535996753494316622290880897217314225445980285182225773989891115145139040132807367232957950569657411536622285791027469430742805749777836143015560856164346910684930182241080854174914415899437590504135119155182568359177293930336288940403560147276046290690672182183073393578392235718281408528321922177620968320297097718798495867375393305050097714311885669518460844118241696893993652330407590808184934529143068560301841374913140118863013019556850685244194637891601846987749090728609155658788195262451388207143969421305214321120778579201786075535922267020992326502266529108556427186787529321855491273936615373377057383823544391179193810026382408665789279657592309831063163113409425038779760028176716392502368102664730916801237314125162826291256357526754526131325372418734960018765129458692023906270593783904645811768439321175954486890671403483393115107654346405590620013205929176476241251324335839397170280334238122702238125706381669728532024740206239045719066021215239873185259220495841555551381374279905242824721041488995475671485373108915173279937807022228508896217212433610660538396381289217079238587873803740775406226509054987130452556721341900506304754282353580172635870561275596340860252433537430086365085982492675782683600731397883861098210976777760917917022822371038838262480868277802735395104162225817547088531820767458672896881532322743785885410529803419734576083542929562915944868455290231400710418098774808984094875364207486626377631839022882321507807829027244132254848096453015404028620294886464695411002519954244717008512818902310010376483003645039690099038696695917473804700513354648030052253769166437509629139594545882824755018612704972736364004347539257026944441335770966029565044126967349296123037662529836875622551704763575697355126014722355472471680681190373655179966737131772619463089056031989083374192979221536416165156310050855903647503073092349512992886710065984003094660411515711282193191878195407763778059837026583224774195959767872810916610102470852764626757897658659301112059769097146178596130972790612503248233628839266788907936505341976703204339269340716131355390216152584240200578753696702451375930868156514515062398301350938554723823181271694998939436965623001723413250700410298479657918148752632452761312303554432386910148527671838996700063048600754681854833732130139832340589078021606483391350159533713340842037090435272054337354322206824891784888859277151566574390221154288101792273933933351469370507585104833076394169541092044022944293381311313502749589702929128681897246683657346371530835336341970500815137072212812899212601637992087001443467672690310673922770668356694466033919223405830064972336636069997957847317921841277760883479036846381146088395505213961411451615567616709721199733205822016948876867595784184241890770177711704085916203464834550954247837292874934891671639097514052810051649214875382621306085457529910882888221428974174688811951160817658277895639855987992736165316354502093985796552553640086027920785977070555565714735010993955433878691962235096032345229510787428461314769589727344828814389930482789000395835147041703862797408136071763231565392077328894438737281538870449299952296067317932319744425017530481281984892159317212597510378729826172675689862226771961338604582596774087361926853731132651605778453628182396087936201401323022523679455857802031817484620798299181869476037071435630064112436211380063152423397976299603027784625651996868388093315251591892203697033750128525968194012112067387664847810024297136994246434860782358193515772417911270485047226307422019017695857831122671539016486647560871022367257687326445842821919054151712632600126541649821306872670231339176918802125171252127622135013150488119665887005374965716565309819596439758435519810928576035335343589467322479292482070691598080999518746949825472824367232233423782897015556064846833381540815234284170450391384288348300575913674569322614739727487116304974967687193735119187995716156483862053702944825705539077639632521698737513798718026426038927511604892015343714721031499920152050139013306553293358098701717586244413926736171608153335921358794397497225458503009180124931692246841355234447866976468289569158606142586208044870712399700906738315543476782562883172181155234742091788137952960772673387501259653941070919248316332229493861427560740311047768962148086409805501629202256289394920150555816821154936658058762862637027908410284809765326442926020018181481326303428574890403758202556574715546297696223390866390147766389584041538493896837451534786976338829291013048160642679338241346155219410452180687471436856658467498211511539560000994457479494552797142740722060274629349525472797962420677697899595529124369313475920332675219278456914040480668573419460147211853971181972132808930036508402868953860051324735850081835019222112047330254413422228272515451866202259068024244630999129899800457569520635888129376525012946985288960435111042863413023872661665131605035644557476134139064605080820813192132017762637024413088683411825236579929699273942661824635080922604150835236380563736025319761335418100552185595334094367686617373605925595031298527278815581903672478439575882513004727558140591889810135927723643302164587809125848171406674201806701476876957664388079038667400647720653711311394745448245731560910847355908251328618841711807425537116736605089770892787693771679376819440764877903273331656949554202300070560804742937355907625991715158739575060980750843018657386480542447581554639539222472704067257314344651561990018721082834729753174098444145810465048741929013959543387507944184562808595124618435338180774839156404072516166949614482034400293697759971468066643494312930721858821117434032948898318795232560301449413101238427569337585417795802147547846436774654451598055706614539542725361039620239115295098878920447676367438191646348991049674832622086886216097352162109885879443437009324369376710699689388796780123792664085028997022901223796244941679918432036259295983032130215385647446397363072530543757267836855923666183351702737936280758562688761596775732400334305982312762563146258598580605946887920402177429347155284383782553017881590381017439618127814530277589818511178118674541336482594233225344191259325472472586780568205630683021293437446900578909439090199560096480729002612049020528736026987028036236687940382754061513707162272084091486728053183639779459888463982011377357473778329903292657573987343463516929776523887430199010498185095275410309416588538052938350776582727235420096765517395421080116158129271662058093285435461207011947590794904213572599866793888619968156271932240510012002948203792512317410301230987628380187852512866016773597070126155994143466477942161606520552767857312124906142189151821685999988747087350862528557569754278624084399340091330373923500054305694031601178263435412889147996629838482753257507220900664885799933487560712563257161795659148819780992494364745878640431473111544833768971330883432168784226578167039948333364906325920154840223950486799746779128556653288182303399525063726464874309704890644299924203266704334187621761306150222692006049655221641503102952825908579062644752563955475329508783917788332352430433770251490964715464360364079921892113163351065111752116474802570274090279947614873054937964096197513801285581014270723589099513367630768150532167620036274765608058570629578899086690663015595335634396689002961690496720081345346418058997105637912349386412411390837240168716132375645775205660982567584178795069586342807806808253160394589503590609716983228322939261501475663863214595992333031982831811881595154887580006755534923538865780156689228384329981829417859893764911035438947300912766369325897619584872342182980935055393774633992900770910659473320137939079878531469962591238566533032377704083076961367332905175886143617297967818285672355151440593471902980346553337791634109207648723366937542195055727360952423050438415185743739479307025909937849390752378656274575571445883957936328498449413724997276486935613228972707515650527044004820991342808750904116735781226447293546217449286047310009953460948646479502546938103077613824223788687657658271487494614645629652385878656869887391376552460684871652229860146174558003412893494263266006013998253376594502325226078234323754917397840905039147045462472299895779001363017015580611973834921866287279420782180895235728582775191465404826032077009049186900799395605108736740624057088021123254847157744850330888745190253443325969189495355201301549049494106555610874493477824928943784913190459463437031722037248321629160580324568245007124642467566196741786879968675157101716991053186886971217639054654860807663880040001221134221393928209538626797293063617585674848828675346295497946785926253317931641012649085879294852008198466946900237485529092413897940930495250734113088585091929328201410719683518349722041437584172843294264652800192651460314063700495027764573286396902209781269943478052329154704621432590844516212685351135187418033674151375256004558281872543106378099966622183390595745781879966659738650908066863915562723394022571059366606735838687175680382006345924532065894850055159961195884370392821964036539055097823160470494807386138310033005700960698853622982684803049618188966608180939652163345644868794286670954504324270263253608384541576122354556340656048534854452158225292969700804161679403517189859979790155534884766319781142100730108081151724149790146220182048653922344281444581140376408925906490664108511928207791756634412065970759842340165855603124850120824711392730093097144355167475713439272884566763085257650274691653089017276768292883358488674419851912584354090873440994238638700086625856374890829024891435607335634427888695439598057538494639054621451887815870904386837856805016887360500560385937598100780519443936804739109469097455104611175361004710285318057677654908230065806886053874761910474961843820522103661944337425142658469665673821628729694801526294100758146232251557968204963780156050821171533874704921117724116487348849985299130462430782122799263313152891942769180695388743453448928719976236337295048400577642520231810957537112760422675486721209107094603992434838716104843968022872653560805629429287463622384695835947110104667998733551075158067818539632639163236086579324983544305265415085064463408680609994226087775225471767831496653604006363464743317719984868313401522709252361432173890368325190166253713274487077220653743504506766599869765989437408777470768948285975592970025300816677117725487067471251879716331786322989037498592084131878612544885824305888484524651828191054979765760881010292717356965433405027071615275706684783914474097175995408198595186147485213838707808716154857704050992399525357294168644634567765029319542322112083026319695112590600555345858033517851324995894080014985524993138565219350340783022736992055738929664310258964205056280824990939744461656048182001791377354335517946611854601382030567064787322710414127851403724631835463079477016047296047901141092478518353846379282849598593413474062039448692699281156012167951369321214503168348722761981365978856345683784313754398961869827829599242015726548006325170546176475916351502140992843805164884563921320512276713488323267243685968040536395278158518805643621502758217766300647368289950424993562763805951781017867002453295503113621733342408255971890376142153427957008447156714302055291844571904214867122009042532729708937196210201133421880153348368153369991771518057669697532125290411594028242947811675853756983782301738744999320113425341585581357554355091436286581799667825873782952099765020796875895385022635758920332349947516392494304756864180368240274551797621467569256186145254065516487495984220053609011703355224878078989167303989963126687524428261061789397163093682660524022448304921867179061494681145460798310008536793993330187397996792670398722402969022743833313402784370433715954758066067491710593198113823029617650450106119073058805140017093579379520442956461776581444567784938088204484642738139178516981604344605818699046401510445893747382300403622366359983430356529159646258208733757391747190047673343253187308703257870638169592707895191532070742373593885069693970636222942212421994813019583165853236030199217586769796812902540620518385998895538969250518893816051205744066724486524034573741859528101199944773551239684639705072796736567712031316148851338366760714073721428886012337755493323970004481363000897511051394053025790810031673049157654025727187127798172710690185218621766449900488941907869410964154523033014759325075709090337626657816316317173165436395352325424069526805944376785899188111353451946480167811862723069885750289480743514149751808923747829343893352245378220685244264034129090483729967234279156741112921748049893319692069697786082146861525812525963389919234544797121545538273483402356713886816133565226364223096740887958683630960309227937618283133962717207884205266853557570447894108827057317243639025444709389014153891020625017363181257714336666816467095449108550236682429938639913805269041755705358228973669194199539988307939145067404233134488438815804672910862221626957571678202359589050174274336065351210940017471096227646341988150880476994906053517591481440352757006368146446454826868611351183032928452494805084428273671894318307974684777496289987312863660071920386337715284740600055442714700199387866489489750119774597730681737985601932371422715306149075011671981212484643207050440060591145509453517137552140074000561463329846226505943604009173239118276065567842486106637693151398619890303234691792820862944850062525438928883976909891916673542683521664723392166424860984039738357899121625780035177476884247119402872514000673021781198773772832355942218015726190672514883384520216584614400672134438179694808986141147363653390150846245516766240695922379307182595233784055970293858955854374267298157914653663041466140210315980218575705143333266874579369582053190704441912580264409866695047554836465370917252839271211789059639114713631361465754846250200812350912821601712859995136962063160349523931107308190459470160830997578649021466687980351314692578165841484200168871122436519655461605676894890123550637412048279027414517732463832253369158675120043800267951686827565348452309589846088515597658382768022252420217895432037035860711236664773478271159405023530346577036619283582487283420102628313610750413570434453107786525898176913737875228871599347106810733437651060291272678861774199109832218608374214952676803755884805853751564692483590005436195804809808448397614214876194458764071524398537243636437504742275743442050883938864755507566971636265434883292160685963400163712302208883615977756376922867748465946643099770632984893445532938512150023734770098487596193350931771863024075491501366445478874677519496009702923148426683794780129090373255552522796533839189778523679573214324545646859261953340351018305122808307348900197049151498126110940347012131726135150583687835078050651534897191400070586472341100704866254700463132732486160749446834936316883697343303290656714018140797311955028468450372955646919121863152797149248206011941348679999565584695635697795071539063659726917134132149625167085956497044430929851751036615867232325869542735378976768424887580396249634890560778262078009639757251203845682575675098447120468836695052351621190711908840862758773782592285528729495539202085574979233131873613285042171686952023422522546994891425541804080356756407526674468438281822851099622289394107540255980494164852338124542472932946533934719166737423005331596632011799175494228895211840593621099577142656789877008955666697225811689790082766344251109417245299495594423187338876494169422602467969404977817101198648270876766075278219244306151246970979527344228068757943399477086933615425261807493129456189425386355532499973852746575816868743552552879300679820115786144844667887018804457997421566899980046481141600044640034517095507840032815036503016181936396777571228813002519440674948145087096090301398660089356922126201432746179646662110532025773426729921657286273680655105337166241183431877713424454059967374716293669726089301466490242848088356447001702145384922767337577251486505795507324143306893316590616001442787113498376074628055933665882174375109353754648731578804021736944007495404138349568389625015981762394942068548047265283817321580582749712295392980241771430037141389378717588746277920963263489457327177994566078537550327112715016370990642998851954610461026132920418990237287771016068498257183822978647796922065171457602776299965050758568991013077459852606742827158046740831914852407061551164059067065464761905901893533050268526418332266665696651252032903488305804518216750355236776791134625172927648207541233137594743452713037441321198836573327341851216721512428460545523914476301120514317467619285373329790167140204645768210769278224021962803317180522446467824679386552217799726631096842284219073127382397423935182006896170533184996626737697907202202716144880067083285018162382906188251095979267103588397297355610554077095899067588478169118187387308370909581550421917899472538386900110272343031808449786331900845549209765409313374556459419265071804832401912726173026414196441737237360213642722133163980452330694872588643145592554008910338183594979519882303406322273216586472864572197386359914943969718124325436593889592430260069030926923904221855223330882681435570358378495814788053572151073708831862175547894210622731490991918876043923719468319559863405811938775573239156612248603672349627374793673633096016069102195916046508382646497285311672795934644753302932089879247971252062962085526898940468995416034343007522471678551583334668366737209079797348777621965266422324338634121234047903806499118349476795210472426277234807400406347698688075325406883693076346538538804547890718343894751035152268116965497065138135600856892034838264923117460792795766111495150594943966750042454847444539891216478051660835566766349377200184205607206022320842999427041713384164869353712295175436413504735009921254647581873748843271125648216715168966563427499071232893112546773878688003477095480386657858685375134312025791560150823206362057613919398083022138853823562303235091451765389244390479622171056738913111208348657642014566934447977367504274544659539232533097096743976776022326946257725551582426490709644535725860429572739667352931655326738953687145720883095636192234799591839628155943321062637702139270760279395652689685202530614773313441766864678289042442595104711270642864838078321517296282243228163090865270862793397551881889108161250736401562742702519051683510250673626611371869042047472453352218867962069989514962347892176622711988954763964112870131700730593283651591916661800178951608504524593469716158063831417499631025568448881198104313265830516661326921378304650245004744444430635208871382720414003853316447818568945844105308198783779595193740120305479161825740091215864246412715976012017870640713219835662386072321562561848362552600388302263831018640746813098774350011274147853704766742136938124821491405154204172123160472235853912515429430456186576388067616442802257502265684545451152009372055151699690148560324635721575244057065246185321393283825901391746576941406253216191317608043715050237045784096402032639109616141853246776660323311004234194676552045017725131124129724263131352249042664034726146664139063455605386176426341377006338260705022270073330088500340613053376371717483598780206294538919924399515796306182436675354668211834813693738306122918971625321849688328303739211890364284461172982625628441135882788998299722348229013032563046076233107071005530543968554914634627541260618919559884605289353242486006567686297175923965757516778982356458342111476352021318711770624657057954238472843508567876811590176637183691530689159355683827204514704749488875373203827087109192776479820099092077838511589317109673889503366702362577469153058808420306562017488652339683427654219994857166669225245791635879210148267114407759495778629601882004913355885073807232696919300706092501157467400112139557815922741705306199161520088441938649666199116613773813822281482186055323583740364644684214035973243285480956925535966412011407995595435020395602583130086641724663042823112420267183901403285445396105165838238486664175636126737174219690194030996112361226127845619381995932129655859469100641985355560342676187361305797364541044299977239622116484025404638840096515828703468375313070469032441604577160290423890383526888367414198134272673055512492555130372817834964173424286362336882416381723297503718425592247893514907133629398483797619481236359317467739527415179668535193538629640994251031554130281340239859498229072874472251829147481423244176601830387057901344796212755730292521906658385782706506930850475289911832744813116256288174401707267392383490223830747994659739137417595400752086895720508842141331052534109556384248265101447106939014426720756605729472597573025244832671609073262845943796262865336100609326407513650795555838991830658855631904642656988109778108793462989203531256991497697372027811714877701694205367278801780388237094628046917254719419974601586106543695460946163885803686512103675180555003551038031595843005799613250218690920826183274663105107058550830618152635289237820324876540649522791481772212665256187287790104750301541189644288824721803080523451199124707174791120153364611422202320477448432900666575249487098401394641623792989357442781770283702292483322340708398646713068986355380846296061459362417502721746920351329900730124686292996976356187640863946203037011343480980172248964129999029350362238655247137728588315823110243740422119630843338498542119248521341383223458760621983762893153667500017716845649767994618233873320503459800864345596621150106154703968895730363741684484036630480754382072392211064848347938718581500846087959253928038222695632340844790807470838682352967722500227366579689577548878269627348306936527001183528582931439783256786207722812912026810718749075191783322145802549375443688605318767506405260027375697517145914317463549115849643487594362669215317256468821030384823220771660553515084274690123593353183787817014252267822540139562044972747329175247261267084496821756880238901128604383980708367874465016763378559002676486605574672246049030420917969181842173833956525730211407369232475669452079292709374062463309426958552246161482382675397338222753325933056276745109066306751843115902723839409739970175090922451759849252465470927320391504377334970940522294468007177003925732904771891214547237739612168727127140299995784286913058740850724365288084103102476488294482079421639801893668973001843878260081929404270131996561165941280881206616224282567864930969049614732774750953247007021466344331906291685067770027741050102060080483302450976312016111872933552488490035335891103476239849815097945005535529241805366698663649719854864782133268607494156887299325555615852167083258099153055331355939075171211860776537558030995934639641800908923390363861862570040655174922222392975009931401379341654047628333624085576512308609096863684428237177579673145770934169848191658754920099668693917599137467789033133736366633767519562555073967905726627877943274005205902346794651205968190927881557094411799339605819283023109579575420928253551363677273333583997850418171648241266472423403912589085887555237185583951846254996096988008025965625291407562907221697569561020358763981243651342695775771134651277525156566016836782796309356525977292902273448478020222920202098434420369135192183187117395501879231023194750095379455613195172403314906544688806638501579873712956407567287066833821186527733988483445464127422752448761162980399210560697942522867907384316502339689495264846257443742594872989361246256015846941123695988491701304524878108743228479882997719582314860820300155527488116543124186597803160173929914050038960628274055282789125982288641439430872911418654758587776092789916988515536071128447846380641626974443276234884703443874511297824550023115003237115249555531509371110391342979876445874929639929590535279520131369377342048799705189525306512523662296395160328412686360726585171458933900833055873897391066440140065108913199653988179284776758381681034936672365270897017450072891716645138041541409616195898962863482237204719532491247569257025372551678976127909021571768637222286343759067053516610025284637503833987306440450609903377594843483423537337856623598014222966174537256380525017248827630342424013492578142551032356492519852698825185971901863496602390431270254794434287427307309143691891757052873961342914896409565993771687543891760019993697034185102195322769641815650280708161204405710888844466258728693917190756179793131641910013022036209017615203094422564217850264339216525182822297687077243534679652515087880767300883521584740101523845846469292634690220971657146901301124109568142689591860941390525467783944604546307054941628485160053854421559249414604347089134209656664942715915120110243832924203751264668859443509920427589405436391076342635103231016474279157771394048225493416490712452144966163175383762526524420304350316763223592087121985190403839915855024604545866231239247039929342668219950370602714150223677002377481271604411111532439617903721375660847257407869303658178159544980560154379268205984884808431923636797019253648004860467917016014158991590660867499077513870812428963210136900405255111890855897938307214859207252507681334660057255406800990629569121965665329737637322987979458971426188249060340076792214154233008787136317724276263978539274634033067120620248431598336593685777786341041755367381558215476948687898931813634785994627661019452316419861037093981680768358678475120736511502373661757260187884003227807902861638249513079827891939972972355683388101512491845810770149430601022697686804996147504736769947350203316045081390031395146503785237588910180014461754874946886406948754676896229089968328352638710131712229866040542552877428058623320618300719669567591879974256583017918239327892466814277963604162723599046482287629478300967742839708778669383913248584223233232585258615688349643527973821120819001970764975412143361964610819541601366889103957106797713629085491492915136521401186596022815141032845379080968984448276609486627689386543391721302883839403911624753625913822336075678319521490210575085625117836416260586860329633074065225045160344766869266490019533247639703239501667850450408755695061334660951481948269430038175416907120443096272041600385124429627271970466733243487983976908388570435239059173844950279919426168283268137187637344461232402917463354942240955429156126011084865865530398528495935978903826061776273891382192588700607713048411248312333481679307781536146175120325443998165198677190121949973829761866485610554373103760880836587312127607938892718318020947787565905511390864508792373180577591459617826414374699891748201118649998621968106686457054741259163065173456040594222083413508577947144029855377781436577578225242480583006633074746122109505088090058153107687147859407209986242577332611363758855384868741790654199075252959764367588332914841400228298278291559127843210446171846121521706330524071247252330397909275718324726359036744371697637962942110531909776050575619522275931883563605342516629273418879784483077241505314500042112748248464749135590406082253240290893626339823126789080846148332027539752659310779720283707066777551597421885861922799308101120768176251317128747704756491891455049328157398702689352469404915546591101370061436741557976202893623602453687015132909636018712799794167335663572436454609376365669647708890545687061041483764904564585782565767001462467268361941477173019628162229420775095283675230157220357731194236610557801429049371073372224936294342218028125634990781537735682369714021357671064791871868018397311135859378632419023721864761184631643895376900592859506533809511177774779897923168111100343022799549725634596370337740504936443382538068095863762550584554652175446793844429594352546965189837933245673122762082717623049041884521968942204722476962732377653427682195269696551443619370029130753656144822205346703941126084875112725550107169013924570415947535106746355552437282932919981984575778897939827130837423712077402412078537176402481305856716968119408529542390312979686425281891561274974611776491409236159750164972903846565171735635470876183093632413157789281014580664231592196992704939556634479496487933174290316319979044101462398634261611728772559248062777014281910457359231830047336134370381311904701645532844791704314448196746677327160347773482414510328594383346327087712769562614033446625004719139430159085443033219819493673317234631994283373730916095749164446791534920845579782625362163283380512988671629901453393633874994190272515432205277266688169721311028745763592270967307183689461777800483005109570972469249253429450420231803229224682652762376252549203489235916028023410470516763959738927893201061550740549517126001700228568979431929340725940658325076647560812571997543072941977884553289732157109165472274023373423366004795028320111140569105759525486318561389410841033376483659910212740745116701675998998218461956874564513288033198519294632517325892344330075550783035020461287643234261241788373468986608273836152426120526991459879588569198595658485985830075681778281433044749552709466459678281959300584048829555907354426266416285756555558002296098843038064648663336435482969825781388617239391483285283409556148776370845548744098182272712248949772646628256750740923739992871543229603559188074792794168953558535413970147811208240502813267333969169206200234160873218243741422788436677580988479371598125050279813007388144807569060362343750883227150706928254951032593544625235877517077814645024494228447184573414593678274353172845396211537890886684769420160262766376113697001687103928278755284287416038517146635183104206286873112424556360709874641928932119609341394921760921356914861308495012696140984216945408360153368045324667177965837731463634152738328044640866498251769517104549155643036388176572720969223955590404851192023084424689606397689303890850262239771059266521757327407930663403082995113725065928252394847937187512147589813657450968775478673307371156518748832292341227741393353979496598179978159821016074360206686443611943277205255265407255454170087963259007516788436600484724612854758792709103818913308906481103068733684298218161996873351897254962115780045855535793579085903917235904025298944841816240122298756753135584494699412643144210038107296409160894270359648864367435558293895611138361139650307150164628088864451857482025598191605074306856938600030202527643500488616897029058481665632120489345328571440966502765731620156155001298623431911246654254928972133336556252112158324735178605065210693895176175148398372996631731607587033256494284397442302708697797770845951542555974498074607387569381795826729313941206227267868824268864464230737475671067686469532887699039419905449150732821573803451047262111251698406043049671739018651835360561057206580087440156246009933161227517757969570894834946699286635479585692521371549968640306422614520010772327219021763752060228167245308136398437424303414802312938659957932287918959311731199107779160330890373486981029292966608246155715553090587244502334202276218432230934229945315242641128551947040564097253174507063327107982342654601295968501275047576901553188573228678185991328261247117625937387078188288037101750462403552732608754373771163911471378958838791610571629380882100764879266426672273259703730886475063551410278037053863274250691243061904590778607206883303797327382017543000969092183517140770384980345589544668709960215530644401315952954060294122221768407003934233623543125628881587889149910165463680657292555958401696799177453339381147475067085406856544886652296622663380983670436284011561432637515145994912948965641643992192151914430411299175929385584382064167734900713952690659371768260606082210786116568848078157176383669695755648681211308603861766481605932224460293821071362970181375149508585136192753024277885664887196587725316870382319080389184702062189776247574575280815994672087094154724730585319183706161776997533595780490414943206467692599841536888148899610433889154352306455023728750238849916826676307848865055628260414001527253651273227356479026204632740079752873539992704649666377750115434399510734490709059677718772833863057686767393825842913653571941939193644373127033481888310942444763092424603244683296961739366718562657467498670636310880548239294668535356619545918744793949844450410892242982425977984685781020693750969224823454339691661809420544622756582519908776008752863251854440386002775802881348063957129580225150860046466986375821314096224359669779184849422872684675567647427520336316896683522269196716977452807264762534638188906185438795890160147037181243009613121509035344015062349653136399833859660609379224975964687227416214518846623087732360867214425577390973035004067222053689154509822854079724846018433770054490454884173003121569312121939055607805980657196734693612059988315367345098723990279803202485709858111804664058203928803705960961836429371644706742189187013714553636302742287147524098625975396248376298305400848559435362527496982534679526038586215273456627396754956896537812149255535021246926864045718805000562771128001821945128422519180104503149765681337500524516169792802430920947548112328221276464324194204179690758712874775541768059068430493749807770894472110620271803137656280572499990177732780602014340418896560531762770634681687956970724669035359610756719106644931684653416858654965952692535648453801501962647985335287483998618058063159477350044785343582003089976779805306057398870880229890288064423855835043694037327908414946961194102663989872366955119839460592510714141354559387366929691140355001529056609830651173057243204138010729677273579906070690217017257037821021476723115624196039489911190556112219431424813293488734897888386767136742698393328323950424018076752115519616153713811660084679680438903342348318792577629582038444577276941003062025327651688521881161774061662867611136519778799370434064463916432080929878073615165968130058200772134659304845125115226337511583113895931873881038551277586526423174825868618660894625176508280184205220655024478484711110410742343398635818846502193709434845338727180882722984257969079306588352831151137678269439091403670467189051329242459792839174711888629975690817222544664134758645214276123634878932444751482985834496288895408355499727641095052781040001069378252090084365216755656809467112217008874887486821086498497978174430801740178992033360352301726715755788466706360489706851589413016004614259954203382672358666199670860372004133226271206895297928456444442789002253138033864454578967298534057917379982138652957901898481169233992308220499701700793113829661480139501885180128072184390826098833675379698313252788588094532807501454160492140894630549069406746460008937148029299383700851506317723873153243515400776722736200535376263898810094889240976214788935994233612116520703020473636412673656028311058367900413780550422844625610859555045063425443552983216512468230043253362675686282868702539210604239045828269494057106583221231306939774233774839468376764297024289789994221920174105935565525687774243459253913806247641011689018443718905376109827028392538932501395791044191932803405128399020827942002143065230497230057079423623161443573950743880432232149858136550326449224816515229394276305082735874389056047418665510553982706426226336123530957175159839451614172951030449760501477346721412689848362870167363845365551171588019534387587011316222842538974963282467534901473548497664577442441700861034089694770984801769236608912080356103917836142747042635107092091565401251361671219036219864331015265895328590067472239368221529362722330738970688166618895264854300072724650166070498202065691910979058637787127493354701929394317058412539261715860876822065831575177280386508977209604512323926330283031677735792719543697899529246165455253795784856998696889076848202732653080169091449094900218125205626812583002882062393395024437039562708612186726787159877086783109063729027874738554330831824594158975180298475040156554809583879512524788110732688082553673461048370975533184102537788389999250272914401619748826171441538431499758603790235584058254767697711000796015103314087235127121493405537732518328912177903586662659662917368872731346984213553560825557998883138464341250240916821617761557184340706399912322871758243738870099678230019402137878710884999219455771640136144026355887827801412732443043938145631390387596593685036563490929834639752088416946359115800843951532282636167588896551986001717461939418349615048157081802638497426354576372913535915200154770492835478220157487656444669901599620537747225114134435252377494733292118695853230281298801429333083028388829057571502305036521440631242334600752599130591807960673478603922806585681854651840738575969034904036616478777440684453502890805281794052475269844884692669283730040951520078038844033269649734550258755360556928418214396137320991563713235176835720147754367622652446440663841849926876968438335551622836398474544056341857852847985245749027399047922297346109095061180183986754551679286232849689380001768466512329988417440430577960956933019149301508482529668699663555898162125572701653828282095090335722013039771455037587967158280736868916039143241962747569645839068352336344915142301055603333606391470326742651030946481002921438700871046257082078379294420424071215135876113550846603955856700348674734225983351467438827552935556068033095088186650729925279376410001594202132881556463626614148070345453413672560214218674089947942557598351811987103399720476247553426893364012128075510588633763431389946337438477744396051830672846984505214853990845150645680745070164090051362225635802951962578842294651334735665327129805405540901148808608632100439949016682943988600831505631756529162046420055332267365604068531371262467079414395006793976280354286916459978066418562944313561064575811760947373398059220057560538588657778846787371088179171629419268440189924062532144455549065867140029365534578373265785939406560078254999419208477909650423570483969612098545841100758614381845326266270649354597105758561548409682915827188625091295862910159987664156949103510126908603960194085144152445539847041621880349513946846471020978610088956251491197197403972765460785265977461251072210055134925691889850666816493963386245051290782980050877181598310867882002896655955278127790985538810976422898917899933317850109207153280570199264457585861098281353223962887413589792608621978956053745739285213481622986125902758961069899088050857861585908816865907395003234315977707114730883532186005769449616357738501888224320979949189902462875744327664146242793899124537075389884011155826636359877193368120907234645011093116051973188013665851541253173140390711196965922508919400160239547243108242212376482853284482079801586161744089692139518203081451091344461977815298230911164765029764794861308699198101583875834192597901556986288046826028574757944960215523933561656425613505447834289280208595801501928055638095766869887906087699189507681366084477832557004480591591235204826812387115290151792776636399757525609529032199893518136222788095939734303736442531479968472923433610809060791590079661532440332491279563785192120472095754196036634157141033496498387700514837069949381449323888469888008156780487229570370048696715822074012396491806366460472182679242990548000772886834419126030955094624137722145444643780438401251437537876864256837938870147359261638069008611067135224497587088354677435335008329606438852093862669492458080535662386706910317112185411442954169630666303520588721318544045715845892525625941972957736877923319428965230101509437380673679909986855334597971632107713915840975962011569208344864168315299513164894927469055651928781911031047050003311555507214629317032321595218746320387871795654736355395199731183269390696164821694247624747307650184760157263969963715550918267090696659318541825987014429204125388029026020524580662184043641001484358781148681727226349854228227362231323763634760974418150628344881573467616358329911871324487536699366470287638981168588745502604497821282191232449362419698234711520632855051783791453349370145894475730879538647994924431456213590617186198162900447860810945380420370523593889823313595656620976416155066984149082523391024447892910825734447744764408960454413429923032552051495289715047970824770931371926316124098606048800649265782142926537895499488446766134832571651275334956289435957194476952552519825031449675416848726134376920836427136642794109754035561429809292266192528738433855049916795380828822689497924392150557895251552977569407016462018030655400428269085450007494655585173816880092164628491521855453813935887645832828907700883621134758425009870128510663885135357603851773293393783057232131099465227455766203280305223426538428547492194777756298160193704592017749475132265849885654260622981129060839413608671103198001658749802309534612518395396368909275981379391569072656536458107373342833146549009409469256898999993974276186894708041782632738475556385686714189587789631887361008165926819415538492211169701252214694897918589402752516661704858382117301917547441687595688590054407071073279972964483894083111856290469954963224104662248594883064360512687365572784849391848376957817495826267057930618650141007745200929036187993097033588005543615444207927272124800604600612385571627163454951437926970084035427653328960339788131368460273696839446733234001108518917463197226497348730426588824441045804783819278594160422188655344782883427781435398155082191682249991052013978813949172041387790294924370961538405287936747681352353237494834462967795140449079091627662756957236213520676862832061792379806769137897562683056423857587897328892123349223739299540147782669889981330122565370624965630288325963687623600525670144034451965539976960834021264642724675532552636100716026637318390749084935713706089786169925444844895757116528738097669035817410975151503487533106418572688688018153323743023466847918727442913819540740198384941424202351119278826926027382023571377538575328056721521961447731954568556433129620611510022050291026513658139026406718012209202358520274189597757741277505963737838787244655455778610896595898204982416305374577162372009572703639883906477096897809442545031528583822618713454220754548977497123184111362133680017817280216119440897597550575257860820313945918888341598611607901927730581478469313051934685055291524317830985824712294289912364509216313998777833449361935349633033313026998580991209057467194260627860547576205700531964263205664825711800125055224819321059552379978221071334554548861211763045117979141119022115394712747548210432722038986291135435005729612485108203841155703464950037991843491075526627768443205600955224518331808027411465077615828258760040694790415085059679853110951004094621939502190363150601468904948553300151589995592532930232111563922257369997218662021068589041995678744159359705236819882098844388987342879869828252237228497514742580150077381417227481605475205822360823676061727103124517135087542113064783550868453603541198220686309603270274319897576710015788847093286478684801091027430672145312463193077142431601139819066927711524735522936333634426259853813347786395273128470985139726039790654486926091504592817949509021408090186369906209769893561498497628495813992873568938576518186742827758814599129367592464134185059588287975119514738119339922070459374021486066945465480176249296589553887291838535942122557191775217701941261346929846668901560954882726003745654222665058812031980438209931183868754816405987340227191118957632101453804855055229423737693797618062973523808261865563074278805922140383384101695768143736048117538672508202411453504504827199922949134617920974005969745295722505010236027257870326508363074105000886987056341268102963217670301770993889115440554717317154807252392679978547101379574732860638067033912207284697065859098990996753363692097490103325710826088741044672641853223921923451934316403110000676652043255712172393516917762189907294854954862436459740198752000170586512374674388027846995660183352439954017909701181232244804071680381570882486347802424725927988101614886895839844967075758164557142022632675984617398231009894096093174951493332932039832716916335483063235602039061691380624112210577398340233503009206768978423433803183688582823100078532130437367916975725638272300759258298785049760650878160146466225465665200292728710829399080512574963832764024817654381794809235576807695803213183064375151065266105653134556531931194444918878336134364933405680222927668589879076424132634604719584360321488309793060862785292063827565922073539640945542478161919515550416303377558626096335049814934293691702581869188828119153714381992475772365789116917731253226630183182021353349341510078811517434490649205767712851244597212187733508114551899752929767339061242619404859974152802157109631301908897737362344100804429200005046131869361753231051723456775225628727212743243140058456786061484823814745432178154583998427087336862014857320855130491389119716202214531296752666259316570985841709063594944658597789904079953749307639946874358526742788362475831399495852700763602686154504783030089515527948697443024848352712827787463543327104868143220467656808414163893041367515896731581529252920972699644549588310737408071664405021715870324498891046522331728564232083635382802510761322206494439720215770198596019440081442340469929478744983102387807776441131537326799500131272698190199896579130505438925371238681966241468768425364700695597373665755382308231727053889370826316717804516999414244422462818950734636005273682571690442935291129727668952096641249106082505275049455126789059819052395388604124856991975198317391598687600424998527887349684595971699721680109827475664198210679201640456781290179679772629575189184488519125246626867119534100950060542415401782004132857424915071501902471436850146047380457164727212921418811230868034263723641180186795500623264888695141383680673236739844148606575891429694347462012836815885849279346464400666322765476906228397017838451035322951554496886013385470321093392484700181314842485064821359785785862951633694904021714570764028103382564458726557129479343730330155190006348376914482605781096524164325683391762660402292790024560895259684683941046670516493854256432866970352745771071942014841481586402227966453626054560793277228851503582521465824907555262201888941980894058087993556796736288604305600643149213036043173724640197899917341627478673407958470939843576741234350851317932941178142176498944387378915831317069871126942251214960375200543901549749766347725928306169247463452938888605117989481432866882661439202139756671589762288024613109893270338928396092307964159045215045670349267615886686640491287229104185875745234229510824381329903802350408385493776386322422015268639654346412883328983717367329836758427553319751292344285852000012723771573599521505354251106372321507893766658921231726301854350570063153785896632661087591054830131349615378506996399222783766053040086994017822293215975521004955390375068114363212986648292911373323867782084267926500434579184025774304818561904901341611533868809374555778454550555388042104697925538624879460946493246368120909076612145680820790430874609805270603655989634990940878344937222286420615301683671491524896706785326000348709873911530835511086665574176824240151939921706235397410269634212113189967517490904277091998079314740736230609672812759769347282815706132698380473720077791617614372128341681474102974872727898324305331261160731282586985532406457419525326876448805418409392995049923245622589064321641585405283992768196665933299200751414173053192518959367679235439706211184963736722160986334991483272357701334973056327698642792424295112354513093562300428858348390182591326023002815090376822184040464169944845283785869997246722964990897476772690518331157121065289418546490673744832026010897565247167920260487418858161486126846493613778586520276043688151351779783421474463611669781584779498968021118130985535179855346449729721433944661424241107493801614063437223672250368382031193128145409787231371977099720036831679533446864049032441590197955257322423797379884364847397752494677038519708872927358596686138890002631787218011407508225075655503886973300006377481565642711007424631398640920230867344684937556286542641840829003261063700787436946634782665255297198066286192134398035563873559418526560238656660073180684856575667355155992189844774332693716933879210055897906443596710655681788126430171119573598342618318634862935326816868681704394365328821955613149200146086829221998837746830972223281808946164674542668025072267601723237944728732382997773319762145866814735549517832133661079715475637472103227639543016646710181540247483066706775358089366205807195071508170418664430013517634523192310731905774268629748456782443148385974744026777200309741339053588078474434366731202865095338698380262109493300744330276276371663684466002507161313118798284103203658349323362504091303052869020709277414457179864556623558042402015945364297453320478970173042432874357888173579376966631238252926463071940688014548039363643501976726654816977655706538054694348150601378955201356182249138928970966777480781851904164856373723076085215837836287575537740385825152757783984017309855170838100537323725605144946833831717350775412027005557787360513491939849878793668240909359228286814703442322159176913535948531275140163291344983612069908821496526986838067467206376990262788327156298116372043381884811557290792373523901388169802801301213312664660284533679198363342085709881461151952762353868260694127940642193262265862469696654769588031615690586276182326153507656292771111073136302551374483924390673508379436702972683324558946133803714795567605452127588882594386848989299799366550878383718608495550947964652238483339631618807635437958504690741054574250907559101723744105041617683256900732190938924302587198195005613064146527102958908768352252159034376421456398923083784615797232944600158918372466715099364098524334632903421017634519688695857264041382351808448773094165916788499878821268968100830077301618854759600638030060584119430392409624370931270815697540610707991984911917047654037895533890233043047770479913813200711188678488858444824105964893107008633336017647878920567876087826925532951476816610092976587528770038967612726163459217695246994816698092850867091794273639736294191212825271772735629177391739591074186715266336767501506029276934591624867739360407940887698481906613901432826535622044750785496875797384067900180219470891707243694514235126076209746081535530011892985561682744857062149492857306519309989193585359778603375327063187982141564490816595453937521983371270219148724661996529470528507673586102965339972010058899295580394142219049840817449707618385662955156868843481285931024998941481227143335552138596673119527234696796153350927888204355764111765812777572370357075185304748139611977447774721047795828460561563791684767940906057494073870269262772962277524452133632144529112444961136534173456986124105742159223787923338689990493374011185296299691425870425109014854453800271218936863474658123587840098909539806898663599771903095694711181039581370216907090011379854108365722615043679755293040530906685465734631033030785681160852210812284880018599615924751593046942164065853543205458884487045610706395532018204465280735268027276754049224681872700130714366988935034009776195279146579631510315656973385719950354378422025453427492768117307756946497590036245476640134359473537076498839234293146964331136490381800241000020101880547006849866279487686736868874696117313968592046744667964451305673667018387786955676090368587461170165114561081705765004985155793303967771086926759946342261300814350749118370403683437260684584018107785486071497452791319026862477268517490630746342924131740328762177483338145318236322450050670469313605005839170714362236517758555188463265887907615850389012979964223013095597027382772178797796342464302279402231913022357706990167934771267573604809371809028938033471245165562155264747864659317749512058884392935594829924536575187801164405106344877821940107464213302385744266589211295797401923906232959384434637421737782493307284576008455773316608767144831610813770210758173501641248950649981237107185150511434426866183581818180512745025006076007364560018723258206130602794884968869596435427058513080678951300029251217495609655179001681305751357060891756913893370718017677563462295601903129490085080051540910963323364759034109958048957131911289870245213622394988279887645663412520403258566331083886704899613985258926269989088504439440072599944867188714864857493894196541075798296504721784636412394140918123620043783606459522158948234315274230109661207154163695504892239332801177175422886780104393141278341887523815191555899075841687247967201830398765486150664443889529191002127230042952989654029760590134920519776489552643566576013301259172473156124793514751188212889147879052061549831236440307112641383487537468971432777501404310168721905389534716005385050186917889305801663754966978928121641793009102938109867325473578600537230710747554126282201036319083440385414337928134223685193044638878474387244953569238556670983592455825677573976688441237751116136387483391864760332272518887028603621940744383750222779987329835131402618296461351951866587190471682972642312570310412131934592628172952243007043704656785604703098349833333925696172738746588374162777072349021222753833295023041077357496467927809530976647867195623073488003093547052287311318229882973751896040921699508702695022993483233051232652050167111829388133007901428467801182126787206453385594112446454928550393798440620946673877691221999625759213977506857259880580136472923364221329131115991404751495869083111033159241952626742354753297974750414790444550045283465963114873873445611300856269735978368972173818713011098858155269143729396825090790575093617109568777990637575125158474722930964170057896383983440743296700775302065307193876553749434977559542694782134586602466878065275845857496271285421686369167208980678624413231269433044823997941123274712970603278639160495412935747350579551768435308533364897609920858189831679664539597991075820248642912198907515934399583015047042990399906584481662009994812522454734376155649883148783358730834661265621553359272632992175259095402342091888258551080697735807169934705000952541775167894637364318923965815459492991613665921690419096053796939561897713847455168214007401472681868010903944268545067183696363398019200210050611330075427431399172485122865649772032745203955830311034270767008250056409029432087672753800711078294286797702418138953457681437952201552682569361138654476216782520147612345019400246254594364800857701352057393447312385887501553192665670194388058030197528440133520097192835653334337941917300495126477980250269979600496441642584660856244142689271371990697682230755362237321164738117435149762624424845700250555595027468125283551476850372733073703123280483646246258956055664834303811423257753348396129989592017002831543985836179537117464564911672707061706717249149664090427364487778689472361662593789509176942699739293521106612715944563977865390866545819690713785246951513026756890717894400181301243849727582914232921016832517357818086972536136734268838905362787449793396657381334519117410925947302400562691531906299143050636819093920287857598667567339654366452283790566264886277252210961595002243150880624195220314955346264521524760051674499595843892380360164638460732403630894415875723628278509857391278630565481844955031836324037093370348047750629016482643498347663811034095996723539992538417081670052352875906399710057461631628349018999876439091708307951937733291052427107831893276916229533164632757424597653721523027818947596808612379913145955102635156527505856966499209600630360482669337961623869226381065165063617897922545889215847136266544025437361703565822575984214255633779650489591083076869389134962792423204719628693046665559488154704548854188107058405778101478885923719771831126146000643113655138157532084989022914313173698978244445307763891033401885486453444637188466154734896153938621401498428440977164348342979989111681880314134097633130142620126806143371923099299888345593201376778661844183164199822643855041992753600766508402340667926060879130966482917434015556031607653733656865765236014511824091617298097182599154813422996414652692269795368286546127192140926920357125561896466536124527634009597468904762201472918573022582168730589949626814825467439199562823234976482366400223184614113222699675014649816407644766729214893255094137633463308765037939135824270216119650610573625130512608394351007109195295869841264893760941969027683340595015602610133971692641976314179666853019828363788333556289278944777394986891430440592847144556817516317486863840191768184124947800801364534770752465820641180508191751015537696022106261205991086117009484158704229123881469769886551678838703770217747963995143874479705635123537898319177267109783587421456456477939950610572119296745453995297381916688867324523830704056886060839461332430563126136581015569702612412350395920382243517267169958537836082810070352110941088737698617517076456892515192439815347823293414384579298453094788545418397105389336277546500650501282615160253870915487272688968178620872928823635506283213398595034962491596623495475209741292277125740864142985120618635471814927592406636416886725214327870960873632210741479189732562431145601354859680597441605020103278986347733719957768411310611472149879620081222970804061433032603183364101552567554643021711581569948939466314827299883601388445152599223939232896365690423564429220774808436067605702326493928956085329641028545167908381409169517901979255451983044528927380788124464899949203167914128603677884922203291525962612059096682353557659868678937266429056170782556076554208459935966118675295509838497993243167300602073496057215832169838077868075572878278578288345081772173480720009762103252080576367220288777997699986052109874862208717670294830310213276268714146633894909526340549543867388573068177435453350957580525075252882264901419418447456675973810890669979223646157151440206264995917695473162979209540759271491937643524359640407385440429938153155376444638916672241737623021456187493472828380174417259534406136712776147751446201625520239742437281029188754088851198721766727785502385165811765238537045310345533903068866677605921104049759725850834322189103721487453636706425253775947779208286251285312513491462515342311989903108571061678890727640511800376070014558021649851753323373346060602889576314491194519483450071022528602854365054966006247438551928832605002565993636486264547787476364694156308421718713708096932626823447171076581665651620425119339381461541928634983141735200155118948060612438518589527823755498449452867521829074308186540659603339891610385900743253501367265916015902462223055836169013396045460820698599775821946562760257008943692906831768446547601737750467819131838214576500545331545337449278357435587109170409158601137277557074440095637058762863347183235440627760294685037975352980826232965046678745160300391819224459203074940011652700232652536633232222635177035512458696726306604841451021327031536781371704565220783349978074816058059830721232560236367142106011987838047444458660727058845167753124777553085204825215256065437146178537626953305251629915383815982396711171490642063801032223618454233066216210833054490020446254642242936277418539849546857081869782828082051728182576346815680418139496294595538118571315375568434799925415206105753426216608391917596873778111495277296574091641670899834272607442459350685077683960690805315062256237978714628304231154272302192038018001865778454110875281407153137638880655542448181755868161035812001817243485959777583445940271468107934951289867104075089298889404184191986337309180334504576197995362482831514498828461109904151492968989352307579812882320790552181910506944106609465473995113053627599958399048648891577693320942696995850001526775930179010169712239640316436080080653923998786167239206878758324850651348799281404553633232935551677547554428574095177345361591672876694370327491222243277719214068084465786409604112103721441719132280334214517337613608411722491008554221490346917847154095724396125544504199216389979274065932836543159463037768301966211492619794625199219151152849117669450322895199757321634140721459120983926166635525243980814178067150308646309526521809445167543295400516036644279181708467606543892436524207751067469334099674227524089745445067540687566322289502553513335775090988727750803090170274787429024941069569812021513486293713211852198328466716816117324467368464182855145216185001020501006857451053889464801466624082703090830268305350031622076984717887880629043515866684081089305764317730672111030939922331350217053084870826132926793140902565686719265067761515971812432402360636985686673248641036675930182619579782180369071478568106528778848940382801580502667600161114122962399095779396499936117988807426134104671133761819979585811596398898465887259248824546266973406845221538684570596613480693464310165485792974398567503034512157409453865174665880361471106849450280770968347441247224003725189514484435267476571118300610012129533194400263052633392116611977760826892232360251937590116869692819757406616001415128715760647552700666323110730504294130128247239535099624439496801642835926327625761877448119221441038177742029813599547773292348369427772849633808163070650211920416028047832641339098841361655849574420913802785412268090858144534958076902623574093250528640143070729400231343235922055432631547315296938511426330583995694327238426569578261345661138092828096896915720388648825724148876767000654920729939190818023265313306502499481408246533076174815980118631375624988520016659843612014241716717185198144016657293197917903229048466440322200209103721404013236100970193885253001468554119813656415238413430209493198880629121947197923232170199004732285689847824059568238397548222716789897892117470820453092092868731004608741654192769690590290838149190044350586084744832921764322767444084060592850648797254758809205937389500034797898272885638547444644163363215877985612847646213560540010013513327727959439262280817031013653976856668792547238162459250665084636751831143621156235777107480213711491852482234984645242074483894419585261174273055898816480697424422015087794741391084219205020294858481892647804334121201900742388368944554962279312112693407648665303711108312704884890183976538525739337399606702524324756078835345669111589167622635446362625376945062604719924627678167703305915378215573255151947570552866672490832576487466006744196263409692090619886601330835790485463205307382169369203948073095071645288281569851923110832660143343157925018374308397315205919828778345659251537025816602848130797464738738480859473480649369581363286402268079535653213971046075850526147021661050504010591845690678769750749057882320106197599518573562527070247128831964757532609026405481733403235327544512230969849746961052187983731293375608106437010912854946008893895996075354728886175487663611471668994251509191936152017131615233936346618910318124101553432873959042249244679690250171967333347278300894374990542154932041027588716013188417022913112468056092317485348735171016287684761192113051241770072375091222132699457802934414088511415307369812239841448805029387411914444126658632808267548020184578860392955101815037750007758447002335847900599039473514279254391849023771876372100624400845553473642956977092587157355221454333710311604813884712462008079078850041921702384574427059616835644538743185153333656634756167147697159901692944536416227839659461439887396998661117381718986880065264281794329575748955214108092460173699295074675322143474475883070075044372952283830437209196661300465871143907716829961099787845898646939989536103392548312350168094272396929832643132668623680485723527347743842548504855058346123452405877418560129154612720744806211312213692163261376263309388814854480627488626485191689134960751654797564362653343456260677922682251313893081156164625839966156664580119008824708984853177342480098905518034735919994515125283597069062019797055448847822024314395456345057091032731630870793982221411308822878445499721956473534251863881268669833232761809612030103413596915636753093698722784551683023274269096621286250208181122358176341039259770039112969826353121069775262872075157950946398006824772743834965392144580896641656405686852151857762438304424188603102710554472065474441775507966610198493898987991797939936608952446020596864684354897010416196574184831134972451499671997253480773890066696408957748440291510191652301316345094503982088562471891834212440262240936826449403525194491212236539659243304344875559034193827075917920187370376458258183138365214170941869181451148808300043503267205854816880465890497916730810723259019320984177806325277179206872919910202433258519858206758303039284010975561789561435848792085902321332135295262565612129419399521885017055676684962106929939268487767243511022868092635903824792354779574111417975294226987875267022964797850464825149853925288689044426447776645416852957811894560390220888606849123351622220710473223992911712360112140397017172790489258568471822028182526173703502307543332709701498434857039123200144902886756594484952331670112562076197722669618428965701634649022814609373518399435603955965014339235032491174292098488266971847050828087177048227854993931398770857474937948953535610028651464169916415555096687536503493722125107600233339550437127222447310803027527731660992957156629071623543595912194041776592103632086817783343624949570110785453810267804823318142508430058915942496093897824624269909914388836418084774490241099781213400583153096577646483549631539915469335105346461297442105785031561477616010382841608138514013879063555974729423609096572805619930790287714416681567746479979179512789890888609136286284393951189044282181563132812631149264200413004857827731561892680016548081590403181472465461670845641341208177820072404371034403525690811639999582988755563833230853436082741695459724779919815000222821052807689726254686230302407371454934142455914054382919276651842667107984845970605551338054334123510497556156291405848971741718128172076219763357930559516039381620945031466050475632255355059486406745665267054929672386425748758530985072883722894896294039691628952786828102935025887360626572533388243231766891580074878982788129002828887613458628226575758016061169419649987561853790992508792684494975109518020831187589824242549203248323660858957595133716482605261903809237894577931679100852912527282616316741188660395991503650728751271104307331512263022725087780614844093948093676585328338522373235628981889627816085302289974081457526339290545379954439139092407826664238213755826582961151215919637351260195928781446325183771795727553544806626436290384405634577450417870101532785725679311667588541734528614291242378439971110633975665223169180584385380542433561613730958026857721659484680350469527579132453208238581522712515196712512156411670244994375061496951656634050660844217972361380599521698074543419832259593247507442251949470164947020935350508787345485029513665963164017442494930361510209290949267711471837149109197148926947221630933990370612881380649289141473246132307598256249268708466419662178513356968838653591456655423210872399078767243505356098740138441149815962976729773936747904358075861160292150798680383361901275412298223044659260835293516807182658192738404351646341773743386483429021130781090031828262938902836096116476693050251503704637320832320379174368133476584732847841545171565135806150488503157124251547938271772115245105766344126330003895044210534339592119695103633652212581529088879547326743305796107425132030380865548892010264170169463716768670065968390366712249814849597178701087111202789526232341957775937216334328885038338115815846995479510581399153437006955430941582026309774988356997614541748397130909100571262428641643041642909599755701095982960141137078354842024214837067930849285585279731234860256913308342634348173366824112558971315534743129838637635735071541456621176118741997619741639168544019187156670886640514546390829814348779009893993160124146905883597422533391964397472796750527732212562316980330454867616405828011915959724814513418072183611554502972468545960319401260235570514671929196240180694570560047502881474467039577096768807255435815163181678485599241124569289447117389772672151496573487275085315681695239556955221800333390856395450205430601331223854997955795572298107801874248949516407376981188054073278219893880706362941898102760330630099413385584213974572190512434135146571718439611497854742785986038735662658129229198064274155826136949956101257410026239423508227946099680389383182364003597966918414255969782325731245746965090110550489734679951157056276035011298096111734802507566274081957871324568512055715571143808990525311324623176646849361692504977894722459725761377674771736184853019446135665515462719612923177685136354523229165301004094575036786230931792768398668502617105217094258260772306380849299164902336328764231062281715806595197176030999480220371115854549951058702114619116852032988606232355940858034393821142711551995252754936389697494087538702475079439098996445306114232764719262967806796600082536724889022319909987478828194775889166457948711886946457839474162361200177693984517559062059429142508515122358630530030238568834287098451338126950023234647459118217903437235592120825530368781830251309761714859440005219333464601371267787351909482847176045702294540277263932568069572351216205963639365958147446391848861940442618996913106270867782823375597550180198532559570412329996829983136602339208798955043700186609575624640242895663278473628243497866638206757989930411945202026827354850248722961521527212253116167141818222184378849105171208383842304905221323933169719426684386315494586543111074481824077983934747730892519714558420303741736668646067765578911049777138700947937869961281396967320063765363110706143823069381309300964761885060617087394185633863505319469802821894034636188960546762967701832280585406697464526004982156721645159279745900452929225332905744894246599473324130507410501814471831751256235333133768679200015328429840596506475917204290846035980257511799656507346643256222647493518588742516419467738142024950836219362187408593577241477575513658539629980610908177580477998420648434636544295596224665224356044389732701755316817513049465592274764724844709488413132078580807579437723407794461256940765718726284482636234091968524673056414918026091286035689806750269158617960874008257112541886819666867284359863002272461769662842186804504003788345309429422558674018136167778743142802422330664955464021952070749476368534335937847102526771267136184984662282769756282920115312119097282983037024500376720457781319601868947207661351971260427424001439671164099903624053565479474904824363247565879719588285257243091604348416688958759139281912170990921503015811394063013874733677957320239661714293767068302468139813649709809706156080222291334473655155393480474052370455742133442652209156905629746320035419821152185759925904943785013279626437285658764314711489256763682984248382581658583264632074413528436796157561243352939866890809636200320278260131129179957074317111249962534619563715249026274081171887265767747595563418692948576743780329637409897709885620855064502563195267794571800128126811639373838598408741077749019675253856952529006908909156569696261564654667110533479099248810693566660752645321482714422285753459445751365485447609871514417752678331701314023389017311039571120901250645926029822508920992009074674340058284408217785092277519943385907735516850709302074589522168755423726188448962991061326689115972476603587144780646796025397225503691482283743636677181950970907879328205905591947925436366151861331759089014478182308448036375747386387898532899887309293389431538068366280240052212613741557473663545662284773906877413196899419923212440445260067686400850992751419162357406005459260428360152829406908884982958646827844312009491490701206311564118338800186023167594164750339198640415229597404749972291673470796332074251946673874905128308731405503454715695445718515946849668071817666344338239212949431099072268056247319602599950067871466006267786202478440071955482645793886208350500974548447064105071123879160323494378879543374089576780320694911917630670344936592874597823957134317937772732448465353710759841756427894687228858796004126392167683170341217350892046398900257038057272339127598240096968025768930487634155089593494008299320385798088122073493049209428996431042466877049758738315831099808224903164193205938639464422208319905362690291251074421491806188118967230157914461855514613280903296741906906558806194873046466055849836939844102611781906264273524473272844779293367258069317924108769324669151299185227841275074836680833083811177934405683023511327372071752806651876076182156590724350731457543356549393536521351105693760894582000197526596566083047192404259835784904459883917188460487625280436107317844427136204762777983620638143145708830898910474381009014353996659354673650399263772310796991055957578479595421242276836369551808460241500721290689147394202396526664083912612908173352884190890576574640939003232147900366295818115001769562054983006995005661633672511336371865647306580315709465869425679247263029526386885563183262662964912407479989412178896212870946652259143498636333836309984788052019554708568477795257635258566209103172662919972759437054436069858885982793131051231758934333344100898673790272978403565145565566005905078898038587449165254230481648504110409967357498780866750746761925455150047161302053407889536570646262608967338257775291503567299720017647319471219377566433947059558464186643503856023953592421386497394097986855385467805412314275086619226143528026828766107578049333321315772329882233896346038053644838820774913935820115395542484366649464517205743557350563579322841221455181322929416163320475214897467317068147652370702289170487149717118599745269109415763293540475535214090711757104965876356738025341322249061923166030170045095158815026356994976726360072065043049453479028973689151931569502308374387399959018264875480668211665525458973483803194897947260805564727560287150536373711023054267843921925005852589972770563765748592864152526012103244180868178355826934995990975920323295860727042477490611336649903661138360940979170218001280380811166743434868033503329781797766981959107666943398742431608441283233695328376062200257574484668182686109691547154074483361515269903812702165730248838845202323436841249149539860041115512747612084280693093807244946784147500635398300710306245728937809628497421827259299701380746350237841773017664263643550468562069722269619063905590300973893133743348397518583471730798535254701238327384840657714358900424647695903718772040044695227017297427965236342097101828235162840353265298379971814342219913282795545464853893236110821463727479344646313080714343010055556739064416515776250494469572068064400537437843904381166950346205741060716510508885902670000352143670404108558054207924950720234126046121798784093870420125249755569295306281226691129982445330885583454909217449773530239876660562921054849672666449797022204754095661048922160590818569834716900698289467831563322725585088760602644902638104151157188267252852327397123693932711926963324618753002351557689827175552133016832998394277551415954130061330107028538466722805174137625520256361620534821367366510611191398955576356894152847566438488199257611846058466648277439440617466308701818222689233083639402847130085215447017570220356685641875516967755284007331622639175063852432124673282349556681080350551988223784158032274840478250344425973494119832221588601157184972531524330630327149562936403362985916622980293270609124926614283553130978823643262358464492790279720959178279052349236449594195380124193096830355494965177933382018367816089643367616512932116866751126810378563397466957486408219718182081255980984977321679466903599629887803335536059564979897756727890981712801956494953584498084834568407969088323548951310496359971006998565426457793654140865817748703476951262737336558840923294471929266635278147721183827592163918094418256070587971521080759831602636840632533601540449748998115425997667251262750987787423098733409925673146215694458474955206840953794819815451859972073706833526876590421909286062966226657296624990940613742607359450514565518897927022822100113795536271757892543793188077968489588387848088945752557878018564013688489286638624524676197558867447442955056219915065900686350410766653467265285571183572433548460999298968825571875783669288408481879679062257376520473186525010943345074236149892620435965608598948384826460769541033475478006095630068323623368478791195325480441538345920195985179311798577867342059258112194602608653405526972936230457690543488439747270781487598186622934773436359035982273992767922877294292972967888879886688129255612119023529438313321051916795225548740873234277230700516870465550518593299362417433202120975749024143496188789680450763289529048438860710218895643855425214758715379942970834785048600632240351740982062084275761849345386605998935635114430967091944031386779540945112299107196266017654671383737510538478070941855008303279479194810945852988360394160375046153404192531795793883134739352079123072344860905577295197611188329709690040023782893206657431409953863298898776160224157896375794328695539530183284943984802910932918013858323154519998031656827630309385386955255735594822266032812749605997804404055169917456400211441777922949543718447802967913156207598846514817326170689583936953136988649384494803065253309077080763438387049882526968795133813642278106468539603406952635129129381164992063923147801651686268426140170228999725370327995308619556447980248432778743405959132430460096848859495012483376549471532959065434055636317352972341379846214143955101183230576517278458514680713895728460468019692686329438963259501571803899838403008730609795899500280153535392199412864692467667488005646542129821779834613997751228549715236041846218910769784091783053953567543260053911915814041337236865285845007529293247385803350681534916430781210176529264603451378888675864477876333312582311283275499945805248413173237163025677246285372466075563079432314396296259344337882240490509096712041169335658366587517351185648648899205272222924982504069759377542280473824814002029250588809134126430896698389331812035343322438320367292926950955015680349756131956146172871474403490336991322691921642478132641530116314932017170687740512064196013789281109051046953069914985562213490884804601952041863912364013506505549631501234463058037833921083238550019661964489114268739587234746619460057986908293075419282880630811889143494208662849877859201608047434330262696356193212693703265118432344297875132940111788300612337616129059247878650120410166469633314825809470856724343094782688931136821960938756132783090862543178595206225226554681015835412796700501661852145333841280123532204821553760139779160855343953540649673033280130473229716838105040669181018238039811133389199627464652314462962865227098370396970024991975760868799985248479514576661408674421409638573536510413574974071774834302316517116768960438086779045703638854952851034216594341303939860751545488493594339270744021351353515038636464644709291051115054568010168218946893597545821408666779670625999496444165717750215737808612639737791226825905839899002270868408636646281247467062728693361759912226312349426044493217336894035375711397895969325151518988078608794393040204025685017906555396391454649572248751397066027908333121800890730631344481914989651639464435532210838261366741692017539087797721600901000263515299728684399505952025479859734023522604995309691621449899895034823754417371591960608460162571079019568944484738148435958180665570721528719793088399919941821028205310920795590377355723126212139274651461311854327317632448415441104128032639558825306962131174436385534341669447186237505103541350588074779792105984352006073803696119791355052562435902499084171573416027759875831311509379243181597044711005225074192943454904072887380333818107754937467481882945291577202448094153039457097347027072793126411896131362500978836058072272757741192652745140362982311622981753025415469721594063974365949390536749793227388169548354421512047835859592138382916117693848940760503226782972314973451266250375076538163724063528687936667026280822788052583458944947644717689654064046864011972168438897480072882914169234453141231036562846251748862146854626094740126796079172000011331964931078215525185961232190782216873954418059666821584135480437965707652130922428173792464350880432009786307392418811060952190523867450294345552052262896243587905912409132303362537162319842139050980947763972680568569201115930892981390262677178454520245946529311159209771644219612788142639537819654575225228847061765225587609143327554741886058229098667804280695722614795448310553817322518062949917582855205393996561733690431158534030239997467548310382716883030763089975625966862081221321776340498498665978204825308550343314744877291975728335985338296162802498664215195562582435148463163023527922430428689249478039402876043328076064821116731126999552376508316693307418638816686430517197482807749237666113193182998748101165506693080501035917511498625689351921434501123336347603249801078896112353844570680542369073203414619194640673977081340341442339541808946583234864973561631956584705561317202934956611719725676469158563351724334400677899789712422244301440946852979405635464423962716713804149921368306946764592877814702770458774772099087419181195221355036217103823202512403267201519644734496336725544973064349087330304424116684575379987660588672907423952035617285314927480414032515563113975918689016261045241057653707510672730563815966080920843340543149577356496524169762838525936230692141819556088060398330095908234548860129563347896250980651869171968964303824177527098055603411983028139259125007639074958106954371396743592586180625986419896905459063695179934365069288540238216513930809173584689533039095927140998794934419076608352590954402762788251475482414951062703525770181664964579746400562007814105541736007956796964079536126847990910604833824552925509704132123380969395771465683761109760951650042567104802419400408862302554277439412267753947385933076302293177545674875022444842828022637249085960811983152494940094877855668688038957346987007788661832865629291751776545511396367446222153385777669976285790946529537048061592904147516792495019886887520741333268846199522810986045428879111339811041630422934049272839092002225222907530279609030346558897477578370686739435830427984612938416566115325178757298456230350629144330858659296726032746224039519736241525919600808970728835174439385785987068848540673668429293725568055313643596912215112814123391237441510979605066050976058494214737753134095233349048710390383308067932596296799279300943322358685031067042223259233542473030077456723849296602132679940365373406668521145144907280619808470863390805690588169851204503425571471969591932780340801038056263590613397569235120978630305258009447966900780401789931607611632493207240395482595512388108396921530161622536251368834285240832696689154586670501542332071815571045376474552999655007640187603438813403985218805564241861701340269687268285802809332714659382366575651962169743411986801139831417059371840105671784408550603800449187587764640394316198368712988480466716525715251730735043723765383368078575847374054179085281241546824954404508009798298798211828602821381145383842504269918837109178595499647820808097469147779956530401991481984328903316079814923377683730483548177244569177915474072745871969740463053034312227429272755349160961875204287434719982896094545006609747331014295820365343745910043550313512983986302543278016081636779754631461704043145915187997930726924703723345900441691940886454080337114706461248166746072108295425885751660397609257491400877005811349629107232832073667445196181140453216873200867666962595101939593827282031976676670179512675030678697681359809531756168241862846279077397539847614589898222720182726652851217166193223509675080376194769639118255640265657869707431990219193223996375422658376945023511892754294791704218639111423225335717850486554201361471072451132320639945706050652892750905907015629719045380670639117380702073398212036722479499137103884911976510368034881217544043614720620286921964902741276298213227906918956390222412446717547535577604770655706969619657447007128980373241813534675559382759123257655452671147395430590768493713182446201686357316615885351460314607351201281962892296366831646179040850419386564238596563274742248468968196068504323957222153410015733262062209269901047883867089189523635325939012981421298873206207469520294969817752994782454143495084264666103275546846187705358622302890924677333585549818654556685667526559444933401637601182119486419728509729493892894903253441123590953805755593725815876950624348278792942943786432981662872824629557074553059028030087188738637788491157873444986132213827545737835825490144715393215363297896275586174946955179202139341433910791600659650569525506466386844839635896205935023707123724427611728143912205123255783828682912428592292935369931501678496777454289231454055950929900584019975674836152074970651353980277084569505870511684949939017050875002925565925597068865541645786721544201859538457767534013103135871970426767085464375673989725493053869320857573698617588315342056723234975819826713675467098989836030449982552576903882354252902832044571071585103609258556790926125940160248683609184205978585472219067159414067050220747635940748870284333417724814666436791579336005423870675255117543426295158690908813053288601842115288525800326557339794987253002550243538549957855364177930930374966635291265274752892273823972657236700356681876561446050582681035052067284156910391382677427092378699395406853752150662038564048290795660201113251357234991634327266390171963597958980768942701510951256388739695982755822042833556418597320500924836816256268445303116269682283487601631807281427915086504431559321209056980734038189353155276819600588389471729170007317791587931160043575491595268237226787437561532896238703049720172004192782432446799542722021944656141310598519818043416672871476877956436842911782305956136694409116528252796103593035512281645755178050201855356419648552314118427630372522484751708386573806812832870327781715361120505322553257458201608472679453929187863783810108841288006442253556277880012764898579731848814712101814174603781969860981951669221045724073529470624431318283781046923297621034075631249933956722627470281764721554424960653638407879948257532937902837510890580738440288518031454645648096659644476229574496468187845960066798464050050838672103154781874510218706269470225333041555949133100555364593481987130475004287947576972460709793493769136150486506524415043777971733684285844957503559020025254625291443210849548947080292794790108336897553234495938555960663134539741998790623546594662202168151067779133055063928341378414832274031761427463149261977861874950872759321052103794273446108230442176637140421079331688903357713219610487741147322828918709652791632807648374475453585826200177760764462468166763398176379589333680627443860843967662405015774666265983272994414152739054510779369553915267040694910155071097878301196037010687638050526201829463464176984903807916557239234522858362697764670839296201104018650292478508595936367050587711253415228003196012680970253566125985918444874639802876788358392696053816010415144975377066853954345604588068162162740824752473640800393026886332211938185749737471064550331286288720774789444146698658432549779056293585488628838121400431115904284327148226717488686382275195928176244636720059424116144081727632162905322313875757488603888545772547593011675907619470233258881337089457500694303717736049206546781114375136030133869303905915087117895741081039592726558177375757843800095305485703660782085498377918876619704805895542694054705729015608207623970841442093605679835553092314426172775939501337805908188049496144388876488103716152798317946726092963544850976372124439778269176879366125639762665446104863776204191180677642742052698830655636538805926465295681430887188461221569813709404620715849432484387903836710655804912384098458669561111845220831301979613655270665297778063388141840453130181210113651669157898911447663658553016977600973428997826236325569549264901180874724480453408978191843857631203680557306387982682259260390788311739786986618504654503500150881234463471401464438641672117942268935385982378100306198649568252236118970745489089247477458028932786206887613055412101544718920051950064250852162029691012894823597568041692157828868536524534150200897514561312433483783220930543531581946746738719144307463062512525343429612865521660052971694047221115889848744939869808478846722556944295756709139231194544119720929437460055413915057979341493703417679918012034064598641336009161007235231633549693717178544745791342763543143276277120518422191525275022874424127136401445089687850482725143922502083961386640067006191325602263610411986611598399387214001073878823216199557240415535657045607920775557775569071742543297299748773105664245932723480248263880761442710996566506013802059064663345500852257926283510567398275389526063444035057493953958153371117362650036333804812568231963507141436546898177571938410377731566924715338879675291357942871929602738550649924078275949309616069210558464383013845885255844995425676171259104432169258241815520719043133341329391229059786523121442761424079247762346117521581517596375216285864321024076821444490946111105157779511535274131147483378275211910663700050418008655835918275095189846192108251148647907508159828610520495743581987668682646579556897994718308748582565911280228155641700405692217380879347955166556322545475455970571661623377721804103491055155076532900397406973452446225850052821577454322383694204250234874326531131644512118944538564336155314067852902008318931037621029842626219013202500429789122330617214638762981858139177839679098402766135075025650223498758154480893441156000117313823901996088595923450691462414569745123016153706317755675547747081143505869320281928962877276745759545569901004987076383877882544932002678799350959163263704834362995310420365107725611771417760169676837476048690603990765081306684316138953587891395812442398818753800726605177663823492245249466440776662745825264048479357629767234554017899513361077487473882819796679945512732770632879195756699550521594797421269234717821049174451298427305962646796435794385607269915139235695240112323608970505888765382401618480423247940048598784529493674074499439260350276541345967680853795131418581702334083624782470590893317215892998023675279334373633847269538480090773276621858243345317623291918574287941423649955209807485426375602377605365660264925007238138862611942761236341283412214186044215407711637953991473922413484224290283558430339209001470267396140013295352846041109859368185244220566690223396815023189380411473682980277795651111050404624225321857350191907741888248664460181352485105179096995751011355576446913864037833289888658810144756306183141737161025571953882948640924013006627023948302990917147147372397155505896704545535350557116421785994830906957328240949383857382267534128671710415916431159636756001505673241415666817602301707096382676895159148314830199380923542393659071416323473797181495601573031703519597977043015024155331581955932902291922512076657073826562725890822540016718286271049422641695834210477010090283418953923767887985296799010019490903045282313508382730268938017406333000360996439108890348113576637214381573953147861217014843108350685841512402141262904836213755155511587749078086639511128472162035429948496208505557259389965499227811443551668636892792821988240724823474295357457619059968026521877705029207458400563134021217097813026676387078903843066088991865052834285586518867360849749912964150677599622143576657550644562476376023889403316642386504007989961459888113318480982222981138559680859237802531538459409919543753049431178494621258339657671832182983451553038921504753115951991958062908462880744018330710091838418959586890712881259937356113783049598724261487291521647736505448280521486002483767302991280202231844100667811393148287281276311094045779095492033015869241014404534937265042666244469890225311468523336540399969037399546418441699437821309367746552892221450553275857006526804037381938933115765207468281855105726378594308091997614112798000580756214030019612613431852828143363009351071977079340921442186323912885710681707271074557250747637045293453282039170704548173810541557651409643403589057288202751953492129711626759913602879683379143208037090211840366706073416621238868226259054442313698927044473268656786234895267331673151085824205479250919126153864459526163174619250208601797540876494550558064209546856065882850768478857132502711965116446872167122393597025062589254685687888719073280209349951167056629961411829300272326039683171168422713959947107263060476521112999710711981446824547794753766805136696742842513463648927168361619952196127677832494986629701381194515460493732919766461847943194601351985699151507615843409781056122396369382086871646303003518166030747844618633723742122905962703553739049269406973152276255641751144122847679340413455254218858226106399286837830968476526791370998277750167098908269582359350696325046808079565145150242250569037027714924824086841063422259620491144906137046723523382652830538874578709164970982705283751483647391994994028631547804405865919776564687826883711198755962729749766952730104964439146450885180665666239379088531798945813268788645019991450339098440365024476815980581780584724598550275167176936273218990416108832572662608486441412033963772846598896044033369427321753895456697144648763610349765324613715891260411777260137577914160802650234055212556898807063438783942878366413751083555199364251046879571287214183308261260383132836479777984767569643857489578783638858666452213856193576883260744364848337843539243948338799035388977986031958137888596244704675233371920906932788067599296647315441034829489281214341874097965874107349625811257150306879576121478791535416639000377447542714952487888064296565537237080233365607090877869669903460148590120323545361507659518905233193094550492578008452140248243224270939294575255163957722545830598083529416186304041268227994678694843820691355853904035370067235766813439784330703988854421814245499705804667810361809766882148370907655460353191566827040328883788281739896522187871241268278520472970897241292960929111765936208700845122135490773162443601098720565923540374138696429083851622250342468808594087326285437977489204976876382814667917138954866859133652610345828064109289464170006809374590495009177581753419188758772624683675664841155219516039710794867783068859354033153992925408599067447359621072123800070144904422987002867257315083516893901631326952692746677111343250678528984880410257219391657494931778513266135639046032862082718168140847081290589455527392387305981179860234056752014305198636375963174746947339017177934164962238266744129987573697676525034809039111792552451157086474342599545873363177671829491313859444049988603295516829127223514507561413978167964992273637072235257420188397439489045024361003039717716133094286467027562513910248907329542655202847172709896152192545077926957127748834962148362345664296401113909065975568439139892976361906507717145295968395447753522719056617764485031747531492503219757307234892805677059355071176365454879383096802626216593921031891204155532110232435740768607313207725552843294032426719308030759412690674706088733643468485762693581610525755460043778161287164706080605542913253690076527680595901040843295549113576788149227820689009089549762239503976832764147848707528633762983923524231256221577799167197892510304325852362679006308946152633892970907045880700155481614578068828118272353293458200326991561488687382127712895483715530354443976151423991050095289709884205911693590781990276005506957363230783782204551773812758788004019679464836978037914342103811421883861060347504855962308922650165865636518981457073207599852287518107961053330210610649479782433026768685172284270918571023741172737831501338291133950424279262602208411299842426252596020381573113933562013847413764527373482586813869760081774750652015204479384869590469553583123232018693044089080823756299959530988774497620051159151569682355391356114308924961529428174545541808485928362991031088352872572770994323445282570794019342520633082671980684751020535075977854214518876623717489231492134532996241766872192054016763266504876105973423466085692591878577598995511092340037359720119469310524041045291620386313976540698697365252828208611973585388068713814769028230387519388473290563243455859468167671278211050494709569944275480970323849865676708854830900203025865379851655196879952781321768257069570912612887286109846637496570807870523723566748842251030116019272580103410087864194793643045466800749206322199753066662251381452155409668726385875755060770275134509170701877244813632952618324576437456853740564065855836653413891562196158879811187429435715620055142380913713952511473855349821161383679750094321615648552709204870452770362012699852890705254321784210317398577163060124213827962767892187364908156088427357868064742384669295034367293617939879489884175522411643165117264973666165292084267313437948668126894788593321426823594283466939076048319745093209774457591307463123230473983747959672321466324772755187472815043356904266489196396149435964615670076628894367166693252199130622234213463534039087485132841482474012333479181311489904786039244296094629545903878387819403196277788099822272126440938845262866499572018610642295284190337008155047917577224176329130011838738213801806114002430861563136724558591439926377738369568596224424766833797027037487875321105875923158810505090081477620231021335181575100262518587631685553602662804203785847135523259559056643969913200269861129607207991366360353807088241825551215320250090572862541163623170386938964490165438564077850316021676877952640971052087282414076837624197511849394384238906875518019780418398380613844775095478806332420124836840949024098898906604852145003866350757432409802004637213822516983916825436788394090079600227601785917540688616016382549140016191695527877021486884253919855260095557202288318265186670622163760312808367086198131947763030397499305950006831629600198869543943798679056147757341803756176887511831165941184084987981212389263571249394273598591179918175815110817957847212094280840872675442690911603556374232993100731639359995750899037325492493221287993867101786318275147291488520108379717951388507958149656923289563399178634408452834181665318339209860965716500059210387283070403599869724342578322820173824375909227714310043639703953249138689529380658020771661717592623302300858091826194201759805145611990641098365855308756774266997079204650263841226403181064704709059794824129826677071673489310473724442654445612583592455200823497305280307607837432007962521464762043265973725820733585087477984546885786459935978268654264727011008726592333646298258486990389822798101590756534102933854897528360893123950588579065158680218566498591227564565332860155032413396745738586456926093785405244031275201494303298645416155649763300357140318680409895167767313582690405385975909347762201542333773906607265628633152590731438939108009421717448950922560814334975285580641273124184692620277633069682160095650265611129595590137728874012564142145853157454741131710280723936852127287595273920392395032719893559484326302811088451809541835435242905684951615141199241208142091354013189096516440711614508273549097990951571239806917052151966496379302394314604442225909988758253764290330075728203222847398461068929916891244670579278476680885675544582537440826568679148665342266861307949892421292698463816081594262906803180375320890427798623157965311091375680557035328539344331995353830838398295386219438322669106760205109871015337775696873542806298524321489089739000821743845121568430538211409838597896569587822963637936713276367926546142994917703733449172629783671535995175256384821240096666702180877091784329691226061956219726172771341623222852971043084054149263246769583304208124133996537408886263043637596484074736433333667770946434007812373334424053431655954019381800427714075638423574787460280306848026435070650359332427022949347173992850237797674392522671457020722963428314480297874504199965471226746244821212678870786315985396997565446563492171422069959013430848308144993070130660565979957951159344524281525290762323354216965026106913957890941189023512662079910032020157535180241494299412888049472040084147247789605795039448951349217987028082743105429149183987159300387930955111811374916168957750222142591169568820929325339795404771211445633273519412230690459834223941895680577337115469589323669725459431048190092588600153335853286382872377076341225397905141048266656387609990539528773251947439610813353449828384755175805945943407065805386332144038851823123244389034647234526323335137751726563796862921254027622540640859881476427405638548684327506577705133537136638872290631128819226651828159885398825479901205688818284178594123519640416258815954870731413957604447684755120761174490308688584549577116624213030551604963519651395950131137773957008763361020247269324116267456341551614246515679908079337001118910735559700940737048271775863979224568509738252879699119671580875937508509617416700590039945676554728562836182386144855256799199491456494859215485947506850198256918435681779779521486670328616558581529178444547606619323893707407229470288696124878390036508888190728230652531036385717053639316620000488609082685203600227877023551942080699075906761044272894619910760330938610558052272867603751163692794864570008411026381664177878497786288938313482672569628606808271409347494285229321498557909532668025543622663684180270831989924278127694596198104106775759589062125049963814531263904516748589827585323350001274822041189637143944715922647229400860824560980163693177717188564588653955717295902279239520014661059258240843855001050990246924343246106116838508268974369245503266219344346637323229344141016663701883151691269231318784723165009731572506132283633815145786447448896366015528003589837274298635813130297058409524650537747768337966714827581555105223832921903852891285312782927117763552756962502913632481914500999080172641959015245671450959677800406686210012876898596608766592830321908599867089885526093023731697937315687338235258940177502172695579330270570044338670907580730521038586559159201947052305950977163143169510124321076558986714816902360440830543498065858230472269288094400355969947655726886349797963302654614798917568112949551828931843369750222191494271789188158736406326594228128823386379746223904134681317789893842714010863182960266937284222895398810661275043474478057783796438650640773555700480888263041002711259799479055033687976252496866203648510780321367595428994010014083314258850837898828758990143908406481936567061117836967169618708946913310993811632873982112676672824265917818280515009564106653325192929684895813013580858558054223273220572611225963648132522173909043093976270182450572086686580205018507680473110214718380193262563985035040481054408547708264916577251240924429492219238401805255394530598114472620235148220692153024286482949078466957697208015978020158811821096840047647132292339340073217801678732119526381373969551178346901911237089588276660952485530659978747753841248800381622964177875306571500589059281992265845058571064816664298311022677266408795261502341080004101729864260882172584777219801400643660570443764322755925828552185428198763124642680456167552593817770933082365739950426340543064351388808016157687420976929615417632275290614084462981985689989160232686987031167304604398822316758389985314932658676262215750452672555158273444687662134127539935902500141216186018660746946065826135529654429597837927330038789987873987155168085642230942557907504956442349715060934842281175563641827400558632968972740218543978379487156103639649492393845625111953751057591014307278092217832941323466740533335324607493443449313066508702279988429653212225720066500356540925609384705382290341464894227638499502102761225416481065908357807609606488562580663787466213296643604805499893032957577066387126430044211990993599941118784223652404927903803416956835786078440254765102203242511661886922583357576146785124249360742580715826840595929682288342645238982085740626223095219297107092252114125698940982460974583309503837754923237300580145678610318416488516473064168152446065523731685540286095269521057252560343523949322967823886178459437203202738616260862226257742431814898852710916402669622030193758512985225232016618364908090815035133631097593072277252281161395991931455212821835469922643451352005475686642047635349074573853323034248018134371145360699672667060352552234505825149079404515202010659842257253577393335076024093697601660010230619749135790079087977674889831672126079797963347399245902942689358539086405999972943617684249175356555468514500438740311869717095890871226750452755817857456663347364279771808800187792050632181284884364285757569629202978154212696616558922766220303647911605370303688908056686955591837286840418062782037357494312584221531045699009095893000583326410813424588997126836561963829074644456101809937114135189595569848630037312627472819103167461512792930003078040271847411081379412199560042074603306285516255920984473891994249122246274285926335155109143089369565799338178884306527719559789536720987246132588621732301508703168302730585505344289422537366931159982109793099251981985484700677202700975202786180837636041417970933982639490150794602721378649897878865400602565806082152207694429475904855389794047290687810010110345943022848960292344899669513185980652619037324986142092263502507096069588179196544575582286810385863606568817205107896073080331654543666396697163697838119391453072354233653499738471516344386636462480807435797044308683805401207736165001243333556164250025825895239319926229477373769654749603781851511825897311555745691916493732242572817039800422234359637033716322533386205299644629841727628884100081274666565757091108428963215593765363199543945193126349006883926344819582309099897993134605481201390255253732141407523448891380399575445142464457591006701743920008749620281271453731677898394892075492545226284723821485992572972481061547637452257297382751582293598688141162941651595436105206934267095602643073919420502012113434335378318751576720107531073316981240620348631072621291259519186303462542332425712794738783286511695973615987336185863166405610501590589361763019433454324027877353312779742565334228380765036375999889047457942330404980972331771269175672621962384616476451663215703617700364147034481272637385747319351657512756865562048974040784099462866170318590544984764701182918246120829525325249413236365388031523480360482272708828370340361560054700372254403275267304902430411151453700722826733377614446856025350897991865494682090597292549707081022089313024052251646003308526081965697159920929143404411218435043741404407371602588035155389521139146751193205841711216151201000253397455884807470143111009141730595122332903000290933028160305812588125600606698008236372035634117089160802330209021878311319952795431531293738049544966444302433032415589482952307162437997961211513243050820951037158687351735562490251319670274061710285521916419419082085445100716383484981487782619786699957266875692074309053754117556520734502412857733253225715553668571400242463258007776576744962184327791667754038198902989026139721299055700085477636954989152429480378279775643572767710833636364092694058184086011444958803334342956353394251884858178252817118228834254794174540896350448733699798427775410913514188749991625788249059321694996158031190547332924348266294367948960664483271987950647722026967795914967447560193452990633713913083999466612342519097105434875369376184277330721115611390997881868686753197326341008767057516940966865682589372535262585830111616235721770154242778840443217627533105291306566668330513067167089800260236657327340713848039148514447189362658365118391347375256457205221081234943725879106334725523129933208537446832639804438203048076408363532508009332580592060283937170341524534076093184544173235009755704921952490624400812418190826998339106042183144109142775975943535976071949261285828950258036574867120495115943248028749065297960697944097398793776713740651959006703679202427716062920545999464462512974097195471054746506047865592309658589171157690896805702865246649983729794150701053347974581622288175152522496140422966096551930885344131962941824279846636039222867024642899631017755625155562873355693514328757646662106715629034899243937782602935112488885227366805136046126845782105960700211613355126434713735885205797229949710087858119714015631616740408879709548310868545664523743802487185038036420521965847189619718204499032012347884617798749797488077794191120642937494949299861619470522729996538274369976389357509321776571511223851908422674151293005998684977267548088759739737038184643543559405650508637554195837611226883292158070816148157272428160172070497231707472224550310347844400882253960556843415866493511628488651940341481083682534366796212102765480101815079596562697411683977800218808731200621868738304571885830630268472648038224546990707479965491007048050266231117441484115901886131184425638659581298804777847182485186260753735997346662804355048582196755704965256816365664690382429000640866004638911458545013772429701996180879631506088627103801849698945691815261159216646044334808032615563006742791291313528207550360086833977998837944270472963332411221816774610517285002162171132751553376114666357696770436416055085282962025345760833993022740425190482875108538278847134363176797347800300050208644848381517960793757105286533684990132516063117323754971429581022354605444833368782104481808681535897682247245197802678958463892364862656237052306253720506764332123864611732080339069479321516485962558214233639356947292166169699325995487904685918073422360807795199508653836047302038699107341947200340603214637928797676206766540521986120101159056438384242692920346172609915804545893762640009939385117299331266519077627818730720769119136768017543676351776736356474611337762111126952770888862521033256959553439345582871621445578632095490869862652384538302738886614068263971564917235037062800367859944553891205392537889785954499224630167220037988712325887443571096335225071820739098856268364402558961769777491667919176763167613213567082742372388559807468011571395251584409231388902549257645409077753329773106686567537135757550922902322588634845166769613233477332533841246431372177774219981083823340508863564147509621303220887613419370722032948429696240192550438761766339374525998284131337047145374639117289663553548757422129750981324637071463092142949354243525171655246010738343314571095886679983213423520126446047757205889617038832333014145890738648433840098864988119329513810646251084985989086049014106305501631150413354762678293507349718163108035469263540811751181090439636395418885850477914526864515266184817508416331980778590200529370765655953098221215496642478230175601273395043053326495545231218358216388057107047562761027105760268171396465050400867758830990173035968217923708597390412756717707551557339344185260208141073479566404583426845269538315500217126787024726106861919743803173223315501678203110572479326585624602656180892524619002005762330946586833131884097482709271033909744662240240343002430465273058446082690998572615581917877167609703503155161696369659908074189054913061398804505181804040473133982593933967448411469693849581666317146148915084239566874027936189303446729336278323960861564994200689843136371790115472907160547803951306355939199135397902114966574716048192409713549201526732477601095327357045188383036775128035805979798173503178988922289310682298119240977075207932812017214703590779210337548453996862405966150327986002187950557231810063275812637477673244786096508288507926858098041315071279096011497070415129820529665688456085783085736318049582631289320921766434443235457235392328026560004092917892774954296009451327350409533975707696086046816224438430509551671344740280261016433873820258249469965794533884052094379994017628530048752794954391321417156819906552664296419919230847797402202617046022996465010666964420498967716726112951417981988604820662346001939413382883567529628407157736644419842411141452237945432838437633369361175992776481748140488215892742966910747228354655888085711431878662231884831186738355377540940299212218803945365448435284590020884528314063755832432264573923660094294233070723036891736358170394202742510093399557802124138318522167507407236716474255703135227830107452033696222714749835677733036023635617379874805266299371985025627231834809046300409151234482381013875374535262880005257695976173413409377694822196416011043208555820047847269085587464235190154880485872931513178524346578334391770936285862232549731879967311272207004680848013866806733682370653848504921810064521602086841000738206880305724498505684330075631840949373706958320451416684707886611611823528739313620101656961322478205746807776722383301970584489512184659540418602112475204279385665359679361936048840317013752951169600078638671450620768406757145918557631023163810154137394276287213514373013541584178990884093458413647763209608311526619529242760683978271028148913794846435979912480959287460479232305462843460359807554476667471423773349638046900814711906672291687435353440031253376277693436398824387073853928201367031315925663807784074081727867459807870591186515240996406891254784573745151467265465250955304216612965808247150924353259884099814933740272002118647662031631485137313947079301308302447747514183750621195920786350956581557153829340882139979999622472654844897678124464288698054193122991544875108927734593071306037387609101422976338545662586538602417413028452536635281672042627988948722579873828699643410292414518145316597708306364487211618257578449492208872554758933632869110947899673578486540387756284296411529057278349211416123235455256977862544838729453439304325291358904125873252784921787503873973497011160688824318399508675624648767219816088478162515008878664676338519433427260179117364016178077149947051509359702160123144969792186512233866859351529792883620424079722866737146468520568729403566419800590081295633130680603764860229710160639926137670891776861897318658538201571336783987484741397794936278726721928429462301663496591331223478586950264132963606173850837783782450522436610637837687572550697228776016754935314903530529901104184300466816265783814464097418580306605314513677501660671373024673176411757233184775180345888540249734582271381262772211085731118859803907423633791158837902990391282555981388873842335155202405802359668455707509700044198771627740322696573071888477288690615029198503872432467564897240368821033555380987266641315427279284585816982058044119139414892764188288035365026491852507307074225203397488014199793691177834150378615045828251107855114757595453125220218860821977484393857938087545480951845459760132364888019965910001070065753735818058156967513254201810671391288803343065020215540704325060797984397774653550268721730704122619747797563490386322115414065451546291563507670271460011333874688553619037008353526562128169315543279730906809659244865999698903364528938891109842772426182850871788909147663823085956051647898650645070193502168030494149101424837181192716583594042773453885763414477076770804630597941644593674131076129358265448120019365167083209036155615524044225820919476023188537985928023720346567084856529431949627160869286297884082648846684697367881933971303130872385608441401789880783424800556199186886968880649777905562382447830933907471565653416835227247267521252582765972168504977001036083155654392360576587158457973584287951701025203048724361772915113132990190436899299252828195355192433635120525275118998020709845433496381493223797642347666139788842986472854119856240434394395130154685014661171758676988200652260530073047932730228201650536819444378101439055068102057653511856137184477480951178068638044297701601027366639300910343407487807605982860661794306529135786626960232364900806394415419935095041862534854256843830636247228155168968092865458597082829328574250515090825911326299037413681756730480982025671556213177699061431008353781306601245023505860953874019840373440676261428669279780192649563096358083196468660119296451717608866755833272207525474798264077028740776591440804903437826223367147691026886977268644475066466749370894792410971795699339131753342968453192022680427562483228442601383697692799615787872722801958445349421319771395749775354187935381044821209186816568388266253514557811209225729928795954478808085225907896995404564046214201676263894638208037482653788000454708638569449036494743998897426348544903774832431267110161666041641214926349112708251099488233652813819773011632202413313477215167129649058958605262741431521136909698364391727353008130474550154265517351372807983328343479848635039551231138976580205836544527450926619253207817423816750533000030970473979473425479033741665450574946432615837083735187075539264224298000153191218565329800765037548599879998579259084195401340172922710186573589423384718523472807412885802153757183505543147706305506225878316136074953746393940114733249210884918346158882458530897626911639171082010126693661561307818990781175341080546786600969754870832914676471492088823248313540602237774372408553123509434192009077812940097827798176938407390861065488851955010033986980942060394880602197018346650176996781510934456070865492378684677914587896870551355006085157725113118990499993726651838292690939201013566869742166553620494872504214145204879182850911764752377250286678217724988195408265110086322904620288110827507313392221554719536311836190583372264887388318742850075128580289575508475212961995512235985468807305094872966300531726636778186174826649630536948848751421562186739844276263426923088519945275257857378980267172251095670844702270180199073222308062072442083730131640646427995314955664996376593286849061053683741232459066760112580099067809398797937856715493189581925619198060375440358868691411156421745747092613347980191455245922063779605673513878087596570658494670444828356298757053649837569173644536975487589465031076502581345890822406048491208069317409372500375042997580653321219432196555615768428079478380391344997618290764191673901744734919115060625201011070634637191491511528190245988886831875508166378202414918610828686762510409686777871032049985314528128726280540109717043483428354711211646487696025180092706481281811980444356396263497624540839922669467570272449107472947205765484955715980775833941273765182854672043835508126817295851609117691040674408535941742556814960633145383739455547497841766188538008731294783913859764169082201673189724378103907020286536055260287073941198172878594253173625637361709108537169519880762455056542861332211066637904930513004942206145242853531173428511574474800068219456832723512801225698355238909489742196717576293415468568059119969762522364509955597000024562725167685274407294784729845254869154412741268542587576006476406936823250592600451883943541212191319837115312675910248309068265772643513221161069871423534034832418798542719797702080476001675939984422463670181553555090990447956841675384748613229674886549037271005602113191401712319938459365532509309036233259130171343264190739481272474971836375639666969125712278959721005648862781514782625701625568373957824107479238542643341583481475489873912249602832595649218308960619661120796477452165030750937889118454920655216169187151626568903005480694778491437753589833550131885953142157635116939091333178959820127021623961487775781655897514141028566930380352104672481869564213101316435116921802192041241674518383526345908689108615778004151145147854079975283466404153327977063317680732132107098343205949955188255773206803421631978436970761087679368371266468695379661163691033629295578328322685126746009988528273911966942982301520436386733557926924119614054573851053100861339851813472639650220684520736642525906230535233151505353336238775127294355226665532422319527207479519806024196445352118182910571677145165531434912604645692833575503288240613086202857582257728621588408076732703392407737693605939302616074264506835652486761383961815206322693921357970458023607481792650668425114183939217086862337916376503891109010052377431872599089706667779633409879934609464699920306639691964782592775994983063244367445471064395910589082911512015888551372595705361525756598634290232776734776870934147206339016223622589695944662192592896516920268197531571530128329917891261532867581621601014506909275290343829751642360187006343146244546294848246575817242814288247987435119197877673027601355136280975728034410493307541509359030992921158529222748900694107525570256645486650752474710538717773895209492452689708046684589261674306880433805884687434933662330880240388920775835458823964597858044935266129944313797832741984811361748476279436733255455450927062050891055127790402918416392303694341946984761489016281723206640319698330360371031969034619960024425291378415895107570383702464405348971170994004686506970276968761880239511036723979601073415455541944038335492579534215641319352916409458391410274493160021640346195244820461418323096368325882373299697840922911186500733446852935762275692677514072620513201038683927694330096173743458040279604064522944683132883367649314954478703497327254106064802117151173642380899610862038298227975573083377276414341469148138706090731655974450563572789977083260287386392236934061498727707615525858184428921254995461787635886130527050771663650231231047713474765489459985761845054155530745760110378023229998004395203017703190303132693527926584325191333372633677420504853540485037672417073390440812600816015007626356310226886637843590478931849276144221635611843638522141473174079157857309723814989943294438626902374924583841766392614010918367401935190130929078985068843421637756577034730212817781087620487725109574272795881110724872791683936715698497100472451358202831690974600878996881334225421500454438481954241281455641694285568864104374681710190859722078781129414345670862165170495184012033819967511708120149908159509419959587530193997805363797247806437717103391272635335878222064203413694200660871654968992946604549407177389899959040861426368941731476711264876953892539217594199316181917674786731988170758922913652449049497158163383737706843113404935886778765025362668719771023088111496305949939647539021713783970664747780634790987720781149104041927944379454969980267483300136323918755711047135522730067468033229225959519774444219002801898771941846733832414915328991033078066610628618240531959000116792966242916241700946074125155480852326133707046160562128533653726558313186366068087356815892781527817655582824981373365863114747082054101382766247862716078259463747072356302499092954555536788279215197780344696830280798949190142201871183157038233556877213284448075167927569036399635480340917487117292883972920581499064649432531926658452154340367397651369039237358310022338430112901020642360045392383230018348858566976944700509814853743238812831989490227439035445249560816078881296051391227097327466014249194391756243511159304701270838675537487054713799921409419750520133446125637071078842453913840801809850783418481020884168311698775133850912004290656391573545119852828084332591802590373208323421664414524799898926043034636270373582955633070954755805555758837557117812958518373646955673309135025354796779233832359301910025762767629414449787485986073057542624629724204958120897152829803059524088053855182751659112036296780899505228084837213739950166439476764382851963787697145688865650160717402311657111072797461585199782734584788357888858987252884503673706053304024246451745653664718839941051537275017471624907282773001803752241234135889546379790370633728928424903935474827375910861022108952595094117211062952335308226501526949986477856533457195730585572346825069307554421315122657266119131579852874089065186008604766976859804518411889695279763679989401626630161389010040783825953984210863208646928924912168383827215998256141140737704206063408331085525176218225650178021709332224526524094795431708700582053958539938425121528083630645166226181707240518312415305866407602477881435466356044068373403741551411895266258647277287890205237163603485660076955435296960753330734056816101743305232400801323751579349931368308769151382405726723567024471527714982472614519708752096649705615829868355276876463306360470433060945549542760786978568380524057958860954777703031816438444865007668818608160881543639881098530220735788245487007923767186424608258192840045532628245393008743877215939470364049465069991960837426218318910006116876121896658785833499318149670417885819140911529529738295760678724006576775901693963975374395694387417456841259013488731629232244451128635405464010797277644823657377156252546852624395082583053323505740997578872972747689907145508047611742553837098807304244133768095908729938003946083822116987500622579993698449564729601577332369696697850348721760577449463878515006382652670868970585399581964045271254163346211125508571605261132614682414135096138361368693872115137199546276210940165270177171296725766359515317366864859465589390010575944677756652708144469458925616505493757307688763931996886882611361481026719687245901746458368669918346052285108871003897044848014767364403806787794745927767697783019553974272080017086299920156006454513496954792378236431268568481964673016386966102981405170525640468180471240001607719157960665501311519358085629151848531224487716719644838159460015238892229397619992110574435194450590198215461453179733017676767070217024908199446950816758966254290733796467442623484882890957189452278885900397652107227727649410832147602260447225200831648454822990723808413575213575072099390832512051652959319448713215706318992027721050960334572384904111488901634394286932751900469994755235570021835995930826219848537098173591465652873139807562593881456368253128486129742089554497352453315623644399259544285301754506049013536481495343465492276474443093608087987182791420938997357207688210299219192918519466529482418428298210006857350977716092876681520282796871870083621567868378119504245532342345973242743273666163408354684360368166196834736637713244851145366336307525742283593380254997764268858797937054932879617441589985387267883431454908287450397694181164123946701895083784379579266914183439864262375090129101024372332495934044932725438753644191044925085751125866793371119402591238822851359477591443221034093012566981862226338413424100125475104879397395615435698915227961333177967470423156311310687715664046300806341502515310967250821895694655034256384008924228833253739325547125892144468775955173331686292997591808808022281813977525139313347795990794603989663859986048017291379348051673429737137300900510182873636658015835105341273165809277188441599064110590992367452768193473321771513046521671569130762617557678708585038631309134243767261168436724639215058210679573678768305567512857469175400179819007375483795237618114948062224093120340979565033169479064497345009796979317877697839417607063216791580865574901604271797978991642128493682774340566103057786196767566887240846328137847064372811351336288281747702357756934912971378814874297476847364328537383712755495928165615130951519767402224082136747983123077466374082185844363106837865650187194776500160521137914346727636907397654240335675486498783299779501627053791830900540221926847293839539397176904813713379815777429313344486240871372917134571755107641097414002067053238707174982155049322598107119686651794265583610294756449723654298253851699853868939153811565025008483165193254987262907695493115809180111822610857216128745151929971906658040185587967188695814183692150959454233664274760283950786737266719469171387970112238848912289564888164924573094892464945427938945870374852735752147187567532553013716509823061702216772987363575293039892294664555030108472903032637322465284691433499078336131203253102316091839345714739131233607447904588875044246058825058335309239739587095837384901569570452173150678475422149442324236213267925525731349537293402513191449091421346846815649008214449412197383060878364710010651380292617473551325250021445929491199897678775276853924938654878131709434615020780179352655460930590442930360098730430665994907691850834341460116248215278400537503360751438726897229851491891174960255846600217460595304193165951502765785514276645420522081343429079739764692036061442167512184827008950478051734554477988686594008442380167276839258833165543596980799299329275303132921715812385895766040021921322318129046714236690279831736751143012154228505065365899818657951772467702822359669181469535059850228020303441361222649976220050596860670937174607005485297914187566703617431361232736239143402988009143416098533972137851095759158621376853261650615295586371887953969212967808451141008586573774888383331247583776627024919260827562778196204881940562232114912477411231816789842428846564249933874594083491897361198384767092163274882005760554157202221580824134738228727973020024445704852281545061276324313489698056896756045896229951221175327265508747481445448972736914892690069951340095475027017425619421840140544520579914340494303584975292991994554205141019525596437318929624060197648495446824115697226181601806077509622269009817945528940301824035400634780896900500323084853570324254982933483353654585897210957178911382772401469092441936218496615481145202961726990851982903939390656847255505304500433501685388301772966820401814783730332697409297569548964167506942837799883295603330952750490786175245233499692526059577466215795409002578311246292840983244900736549255925662874907938047209634441545142110965478592963255325774003216703402504913576044424058733094513201322110414500787711068931334065308340229536399322686666640963123236346656858891571673385814119436898096138676894511364607779049797004206636991386583391654067394931610473264443874553421302971930563702523583970601280094655067324082102484803506297824635176446638388165158474790955593510840224780106560424633278366415735048549631236708430529415273469866360453581206476112419277936650501898526174428436786642500448656956175680484324930269320895131409035860367846756689533766341807926443022943233800057987729224419612324798568693669527550779612676744366293559242490578217116434665281103266380491120319106374523642056826429653302951737058958000203810329471532746091136422035120682756361637837909297699084908551599679557850310578519799448287072794272889531302587646581186920387312135423152019516166601312713188499725397557834021107697487332142597587227880922085017000821910177405478243259831412743898168210187872179468642764408423233072674425095968571408723163808946863263798235523647940113090970834968950618834751422919386186987325686688449532929044046872239744941615221781003594946009215258310515602646601185949879097580286545804246476705345865953295511653869530754775967702375545556288936750134128800636434424485706073892143406355502811987556086424869743614937994547467057595423262034787658081529665715701566575007631036175022608474591023205152521951061408278476439584445611361599382719838284647326320945976480882187637515955140177655576058671111533020273903813790185832156131976945672860976242082750564004831333261867272918134355808771644980951170837007762642080841423746854222169742236375271388815693256512958099300284966209888846128453788724322494896768595503191220456136007645621370062311056346087943698565395614651488022589286071971120708425784828711769798091128309696763834525662891805696962075406858372119493314320185646315628051712143328720144641047293186866178848750265259416813834655484297415868575280981647898549052854179696653283799431703856819590237693234118107054007398809841951704790860871487571707412267899532354160254327259868186956704913418246476495693971659118527283052598915686250367796607560235966336942554518095448335765548427189039643861397323792674526262999563958289891019437852074343924922838940809067520700627345602530839002992333466564733649106387749070112149479567510669494925271698833611438915954018172383087406463988117475031408122412336291976919339405947252265235246806180142963964816027311033938657827249236939888023175566430618380902110455140212156421125568995679931426286142599796475613611570992702996210094103857954296993476453377019426287985284332065857483369098489562649465661159085229598190942918950084464265597567889714863244554465878350299960462378899276939272411123059428794016881915026104507400632549653329233085444013779779126196338720529163537865562523892037398367693769347437221973505722649583999038370758900477472157938491196416996919133965336183347495457829099777554321058284656527041149081382402212778158440764084018770350286677965395695416525578830296716007413131851494863582595002107868319652611659196043057224661344698805602104142695753134262477701313163823589143835934648282649751058162405405089819494153791177033781023441595902324538187721743073651418898331321373426711996949957679045621971208590195104314883584143068019559815908764757337778766788463749688148483597725143413326598606463486300902636483887167475315706394610332623398104164928187123712069918795366262441456647824917139964219250711857455654038879580334625677772423985663121480971808779944291367302785398084837116735054456818564085786744982194508726729698394761035309678793555326730831885879830105772827767944986967284082757114455734026866544882047608616477341239015339423823093941137088793821793265325206964552794425321349477549082177201566769888922212786109313911470420869585977205575694012172124655458888179558461184913997869851115964559013501451456169910550921514885954212160073736192023160994090759728889059778816046166159990573967074160103700924371218705951452907584503334622653057498809911092302226711618757099448041687998758398515638933878873729832688576658333095142388527145283029248030085990123168246799561900700363600927428447599010949660117739263708309900881163129097032042983172132012897952535100735451994650708985085868014408161640720483572323390554816686988158702465000925622093797044037299934381890090407371824025977228186234241807712825349707041050204502331715126369579045579227588262907647454333515415892293850214528394372662074751862206552833233688033811312836877570531341173211285794177946753459305070226058555174164599487816861868216492151766051650934167035686328695491422743297485497079207527679555578717335091341330674124060874595240280239740474665494926237797118436782218621974846304233801883275771756783529361454201981601659925991480383074515016815269994690510812177164806001061030346558500829053694636915502443676396868283642583032559224383477724102496378754876771577105882143518333135433675521125402246824223787041514822612014022361767859445827917245994366661564779818450375800909527182367615875654225864267190433068980206081998459915914906778474964312194965236847311800793511344945804917815525269229566995596076721945412072024960113763533011132659459050484351361774908965487947861145424302280732148046850739170722531246774111855517298597488791089702106364969865811104889328239712521628251826715061327938704920341081379541408326243080072711110748766795564220547072255413516374529451438445751510011176452943546035557556477287707828519646846552060591808914328484872371772685151376162005825002361803621143429565676885740763394387974978925501668181020878460616261554855584936584196902045301965314404952623998541514336778576730743266122873599378210612619348771619545993557606510527941699950615265058746498243768538232182698023132550979557626478971249625242970910682533549911166102393211963424304983495319608277258371549096674250421595331134077403332340649940060083992242026039992618383353763079328225137691026087347081384631797368767415570940965300420935246334757017268654543110150571106596669474038561035878258039330223105995838883420498934696770447113906498105102872080890294825249783739654127791918806149392997549897672001749962435058964076716539027783648711663745083974245307548120296575347551298522090222395140815261190909360294720811335792682254609979046414969362407732868511420624416379976387505192917702077698289440063895066348267388710497874376650269918539837105743204864389943526944717781889950284974436292748109197687372768976551528129186727974060806226249656354256925811153251876655733390064906760949179456150668273512566689095141298411265612559025651694709292789049327195058529059532804221197163212660057164271934245512816205975552312438262463367707217012868132554280450289281889465521523733802322462737612810064762500638878617202341704737697151436909454858268107603870935886921593611694305461210579458833293350167074706572102605087655104114156932776512920521624637371774833353811803342960547484935463962751386233847226067889140910007685587284337733888946073029507040127747498040819867667137868896665597608933284504938275342966855218024954681242039003075022482292185231527343339854227073453593247457185496256295690232451328111005582403111935705107497116579244226115513419792506775503222476951000026950486327126496651102018117126791672285468776091847365989512187910145174099419974660586154234813106028603241803426855870652162214357707566517535841431244233045487523373556300912757559872712439777159736327140500364598733076548732657637529624265622989489688219803689827649994962867857200236413012877295348461354010392824620262335202915430647112375627569365551878420882202377508710887627393930989728840263352521301320729106899767606876102504315874633833375014199305863471765491128296618137637211042908451954131661344791430502343657938453932067137833432972359714095540633744721443031629000317291202023225192721575181738620173407630536940385813791009345976843533382006716485973423836455835926252424598700624848150579856071618617750425941418845546455784668976297680452511356300199163114460158844846214276203793121215553398630514716059489360008822567110009193830036156661319973332085601810375956460718301110190716268763741620510601968933468449620347926901159617054019892739205014782496905516721525508874770517761558160204099042883616011787897742255330837724532292865730073185608724015542348320510940815878339156118633112742098027407565054599133830229768066403699173528960622010025850569363127521354216530141400002155116823686293395382471351783315015223517687011649592556331911225506437700897491704414790539507676894262318992396070300924601091772610900201027318921626273297096991411324432279370348808402266735512145959467611040965658611896107846279945558402319988997053292409862253378871579441927462278775315431838627630282711534802389530678953751549237570715989623149189884780604092744788308492941833337203480389310606989520277159736786666948516420650025065476477107369067717250760117751654817160895294182319429667270355051663159778637339484150145933737811219348576743941676898917443467600097829562296145270150030084534892162957723279118275158390956559731044444644833173284193068707005103384619682368558630669001876389783029310793771656575344312263125559635767476469151452662903391834804897610803984032197112079116782614739144204442496015251000886782741322173131712222418738019140946263608224469604785727214749732212673957359770623185197440480716152344177952661457169806799518586798992883257679277978723364925590253833696953275664012111419466631798234043422144224816904938904742395712968798316003731817942281062850185973757171327390484158840200853541070622644469808614361857168537234484554481700138255773384523458719901356706837708747535584336408606609892374230500965022319560906200508864779454326665394891644600830766048824415853671002407283357530358637487509509534002751891756001429763691184659775586677555662739343239035744136889274436382489368336759707022965939490439456098860582038347835484893604504741771379878701586729240168456186227973169076870603765213808755597675707524298011585231464805644965381069071153633305096081746542230500533582864158926100124968417211300444488908175368373585886533284369918017969490695607315822214426481932012046205378193165468049073835440996543273301353387201654335583750121384733100654941668539945559486478571344233280217672503324364932986110618259807724346183972874670204476209644502638489803495162986450670506649230798085224842360977167961172290338650459882971672279761753752438756587837706189374189791076808028553941318008435514301744286103566739773138594687063039952772322436290401147093764323673394459746294521298298424255160523065184017573400683354531673463257292959942501593488613098341193165168559900471948433961910135244809264129197875100857178818001323125061837421466678961615644275272577947563537672639595982414616458115511204271063857993126091667874577080784799141675897254549171058477233071381775382129961903163317786844784104726785515464732522374788652971132780943798710593251427891157891092480266487373898545723540720600487363088342753652957871376469941043588880349018145165548026703204169401086557240276285541530730374167678460353328852165355397268001119741831427576282750800360119375203871781969069074612694308596985358633979311784846197249314837483835541619225898634716817373358502970166426613383478748322096925864666233868840753654230859426678628136227195173971757102706842761470526708640692091518790830816373090343937474623791831228108198211645420079764438202027593170225100670290653859890265485827473912394908079301441663480193216735396612077384192290435538078761342446093047882105035388948517120497562783843276847080889701407668869615843991830433667361241884062575697113425117295461456695082629945379570758178006037274830037689957632518763917740647650644804176893257514806756801826666751901567885765277793427071631757565056203617248304558875649532931832130052292483595517911499564392327731761122868501464400960299116288129660415751500406034513218012467213876344963842479634023442496323089956108269782889305590802878319869449594306405853256306070596791289181839578025938779537117388438697048257858384008518513783237915247761812448945722443174024057665618673670535025247974949540527071880896321494345016063173931136258145502601634268133204346021117770969040003867530494726226145051735966719737582573147141174139954821597291914762068840221582990911105572306693566601687837877730643569972462168456725791858463220494052909856974725844561822259820745857687692863006581136593620051581429079568201679868760101959526011572732912903601721062937253368606219913424480828358717356592241527135186332477515607297769335957979644790069337406609413694934762249516191278525891604715395466414826332532401559400451285821595544253186021726968042770647243871399905546887106221450027653190397195240363223379950992725973885632585301129229842803248791594702719833157876188857760473879101016649241104002912124694221165893012525537266161179634114447711037547791694846812958785932307936348489756844565504062395234919084749824501175736161238644785841517357731331918588400371270330761868110292327338874217033128461600504104043172293663046396567676419905668561879207851001698371402023593039648048279001665005513834576747889447317195863718588083952467683354602806657411738253691944959035065924196033030766076422706192190750690109588590633908295126199347604962330902025485615264453158961552675114443136569020469009702202875841566846677009631674191838863333008797532627982337793575072744561797052783928976223168811812858777710921393368839206092312890880784164691623190337899888765256822630570343714474906842864807416309431939400417785246978782228881705671585308871528614277767450852743111952000124800524785854106580655450486654138123496076950327505187529261551435735284920983924150720108341970678016010990412209565185691502779701108751687856413125675636612743179843666062163868017945894989555064143011444349360453856074851527079693881494399523173961056413686410452189436174231419820447791570027986238335295219537780578153196693272576700253846382164631968388144276069310937424970248834259215860264220752557284547677832126396401559894539107789018728636568152111521745702114369025533214891179158452366390440545627041476577481915669830357735120136406995893660478138160097212819253906838838374055810799055258345013289792533379583077863102357570675911729017031790967329223757158332728161804229434959094289397436739839022348480972230904423690536850890610924255418610380028701462196062858466869320737121797485408712279895168206623215819623816821098671476929015563218568826066429090425988021643793124416797492916539629759349111702905538633397510865245535299902579898236316464112290870554048728690129368152329716164729686985442445075386867221059822311821218124305916645659462622733693142758050256173064606915381796762125048574631538431723775638792986382869102034257652061260325968960172844732742614253531444330960919053339462975250429091875500184669068897630964574551112545904679598622240632247534502136203586210081014457190406323146820406405836269242697503548604596762037131232481787746208018074883461500415031094247055283788343821865176413224607530692597768301607885264884092919487702386030126657461148024166674938479602469800273588659896619514320502145376002994228738645660483156367741623723108673724569508517694922498160015190364731744440925583181124429291699779869117815336060030349567975300179119195674798594397509329944656815481856620351169681466857736247246406270130719103585001080079804335375151799984815448204742010286833341913413199165859518903983306987314325758451768158315501955041348967422247549873785604825885327097447726499428739696746611891690897852085294727858837492818118898277270403850427253992048812317423390528599806957557141551344313731790003619794515969988098197211074162479860720942811143149366199004819620760596655516634649913761534644674521146611141649284454384520195977407810230689868412385885508177652870595323987007773190498116210727109009941579319654396612823486443896825444138898510797845589042966473619318097724349767360265147060945389994350378320680887174231508467412517488843678088117698925240701700463463281092956424522374703845019311800779394379196751782355699259332190183335526413340498310381040792295522485313063863445178317426483470348670373784690603507931500705428464708779930084136125607959665765139073307324655774570348987954869132664035932534553683488961509468613971051367221748873721381884240645900984681751112405031888945619315663939975466563046520438395673683571821329524794582946684003359785024302345888648581639703998414559486418168188737418725534231885583920854404141142365728336465404819148781815323324807424618231259613444299625990682385366950806320601326102701166427108295751938938697340556869836571464123332480631556362846745033477353968682608885215391380676810951371684211518504411346800565616723610942641604512953968950505803131235912656062161554828397296273236099215107334082295234580767193555801393304419174100748185517359856269703635043340247252757850922909997945021242600107208176154451256122550930197859111666782317024861093749801561805579246854110007202534847518025472027744937404648647914074915841246731335130366272078986148177590381581518013820304803914258747199359234374743638848432526828107477400111177400490104402139113884352888248233674656680885557614275010116571614691767089876691346366422010860987424129114258729912503627995273540576148160374697906070283464295318642618774928439080420867351240361807037419351463745925958218930527897350779172440190753968402243549901122402138029346218739946941746521474863430648739136121652911752339237227599808228309013757853484501309626711551326582041940206238345943310933824282991169514888599792438296855852938869654538060161937696840340937810221897092171272943309795570900402370932506959537488267804291580648948928450685700374844725675758764110493067495448100430555499514499158155023093938992249821802294073296636300344890048320969630973452038483958325865899507556545079408400916355262760782391595138169267752598723449063580369973596953312635301876592053149394523388911635173470467400223889469847295133587185308470566512994893515365843459094929035950409729461429106187388985497931232543884382107521275411567503504680552924473014593492959605367740985973263509323153661961914922626150274909065210847309925128243491883209137051094872157951268997269732209565278420941158662881305345666982893166698058181615302931635013141601956485229391663514698854592354041405105640616251850355560755585276406988689143148989222648322908689585580816464505804421275381953061883014170565746318055100656611321856068760095151458175627951182188643186388909284825582091968752421342123735808346906462074825306090950911180097347163023450769589673903191965279343823352395529744659477582120884585581503057468640631343114004214764049190343840361506033837625373559295756327312711402299800455768477194662356211407116742580255440088924464384839331581682405582099191759074915305008145703958113642339711334737901890290077450909473877202799453838155408663921733205870189180699771104639397912505368091202119684956957389035967365371676491945552638925156799876673904162956521402256898414664866638022086551411418794975778573356061104107324885638056116450376529741801855492247210359328347465135241971715272024371956476676204830648444052555269227281234509096111677779369770618757075011715053272449782652550403045943880949855055483835993924528730299287389842836341662479242550294828523843043776489307206994209381761440764187180514103518653794979785949647744715794880464791953604993829904580499015382787423763065876550693689718424223576470518668858056147565343799809243590240107078203741609591266066167226975133149124669453437599747209868467498789547311812624873242948899438512199423209265166685477486601268678262451160472471449550157301520870521026010666136288912710205332012665450958230671072355642196013922241888763141643591351273263988838048132448276676793681858921344840770563453587175868777942489171292509522095368198352403092134959071447707952908790220801291231916979518388055035513730473432222622496277902787490685055236856593738670239530865860680327509092629190797853046498926375911358216429859735987430817667703347708213164541208166973083555904521112124208225201482458535019633697445318706500518808433767020317525140705987128761744787670722458751636278396093765392077851434973041560740887604534357923662523152939521277100494662349876329978442488417880161379948497355524308650301783077357985591842850267634941148585256881685230626244242855023045262341626292000111640643554286406882480782423007804096680794833003325779764318280704117240197392988066500527242882696510699780233402334423190603731587108047075455153800040601205949981558385719838316753682993248086234180569115593368637327561112951255786145288143415184704315586532570128236051944388350027207392831832848495629405151678625605577094994414450319563520945057922900862297121696311096314267593130468471028630867359853713318580404984845074283874972359531419264715387086944999614465277352900342615058824449917465842223949713395745014537601215189129868480187776495985968244164950115311584600846728606624823971032200894411163631044740796910299986540214453533962830828376666721948358550476519077499670108248619522785048796014670375111326697092406813429134095915147524266737398297206324600353611056858220415856129047455874079055388813112081400541718036885516733027839582706257355045477625992957842163687254168228425329699002360282114553763596490018114228046533080303255159519181442298218655251136155496089483514965648814993932498712148621239506931672747347043789010180806141758666647418028666623533601140337649940442557882266966119020107943576318896486729567007083499652966491389069873754929588643292461299107851835448543799399717593980181506802294758412453012473915278027864379796892186918161070334926675217172482276485370023046032562060148617177208736223157469136955066203928413364512894486310496166678522064092021063509872870190318718416111752194102615301467266900105809860158498246041630486295546870852916678277800414122654640296872067526258567611044030513819023140204025070601413928699948735686681140273007413839546416980303664562668835661748399779719868229987510278100906022052979311036571575841631578802639199625963087804444444657078329160934342644060888579818257969861355001763694769412910053965091723547069642253494297593754523267489543488591382038086941985851335654439286489468810149332075035705290571923039093178208871787337822534986385321287031015757763310556395168185268845559350537173667932683738152707291822494832813827656774811487125492266970246498239068306868698592453083176971799392151817679680145887589222547398246822291456814641973182656497791251723086777396188321289647132247658867525767591874078468089979927241934284817873230374741737253676279956220770102147140470352122644245230098329835523780471094945553179955108415377922139660430331469842651094663912092496846935555323606086541707182408525059651682593228926883070141776661720196284994277479263332073936377509043246777862762549145523113930191581965570284532363600651658992151909482793977122126905867696368561162144842399894946192891205815840587559909289423808514680816358941753695672449675689807256297608529757936011026968589089143379546966987388670581957266967646220965730914505041475886519360774624966529508893321141890963675151553466510289248393397147425041327043309617773410094011979252850781749802386544157046036752959026819762834031951078097391289379791222257393085467675091461438751291119480203188445991892346417000218382523019914813465528910974429950503397890969577992829727859737613736148157049157043674153930891371737383139132604381174035587164226448198041588628460474743673343034473602823100203376510788592421860678004523823495937206155979037915165783984482756587693219746214553113201989256984412271936737890509372112928487990075720216918892047279450549159683600767742360753860047525540199486504091670496089787285338404345098227546261663458433569794835046787695194851255747581037613762294875975369999764142247463697856452525482675729414664390366612192633732919362931732835659660938567361408049864121892423700705293859350532750157449514435788917737929800542650226468995807120606146391744635587643880636070530457186481611865756493065766741404521544520793513970207146076590823763799763350256901945426238174578028851921839058151111150739369925370046902194422596411099817583261340038634564065525388460535579289105163717018547077704420073377701239399827011021582877065096016688898730685930510871308488540118554484843046052031634466219997564132136844143601688144678801577197962082481581927860233955944873891665071535228192283024808607531896634442954798776893911037181592722798005782521462225897670088742020138252338256442787742013246028908881817780526864542918851828806791453271586642324475203581523784671539517958357781304461462850864938273985842854396460347804279701456017195168761010206295785290006804179776045517745850805696746593970241570732906492508009856082496631787545968013836996415878202491249634746114736806208480114542075989162456785241091215992958894616951318768491815668598721635200369161980509090184238384519903486817767718971502175298542785168544690490661244773265285634497709842072128344188223142176313918675599831604371565365465057937129799965573377107747663832549891844949335227059231027014000117597787443551725760702142822611985689029641023336942707942305209114778685747275677998990737221973504836502126107813589909921126043720188683042958562187596270511844605520123247043761901140530641251858325605142400957745469532768013516070642661174004258500010004682152361455769101232421141579115254892701059793367375215758275594835802030545825260913469011916716439328733173847527297136612511023095577355651040761367867686283195381959465117314280178706060731747172156014991511831445131366042136395800699119154538253897528106092646338179399260748854901619254420405625250994812237930406248807296613366723660530424302319833557856069408718750205339946443836797080443140127502698653951103727584510666431811824524745951398144590162712456568941557889475547920152836870965839924527844985160723493614846065598167223986852485135360823877938460266742997706072828625499906700357459106159736799393753410579466496640396207595762805860932555376750863578722842997540012975039490233186605558970421965606139276206546021688866442561059505342788923225352515523428162978482312715838040998414431339063240579718205902474435747574935177956473020192641288001635882221671919183065341095841415210953581955534177595129308476631530410807097699170973973814116999479504811665912368116619043137712129769345792640478417750091736764664363610651343173668937746619557536135687976065303907681784622205321907315247860592153160620124645704285585659640733319944644125888794526438214114599399568675627624349098871494153559579033740301752591134986961001489243638697650756933903442796733490428996669375627709031603100280553497918660331803777213130677424849533828912960687075579877928845273904180756249660263121726599953409548471381936316766919009624304208367904102650784786575121669005955516968134278493584286214069434010369229603284211629656047406451251278753942021689989934939923372654201598699248241490838446088019075551829932498835434388833166589223291725977162560629088164669779785315131618202090408593706473735980972946712220221040160303557363729860351362709363489767936290535139358403153976086499597329383709319225020121325398627269289754018285623104055457683096000333798367432421218088137079986730441184594472455850077143526685706319616778901681263239062673900442244776332194393670129774276732413610280898250929418111220296511826012749653794146592619234013191629155872047196682494919030258585447862419959103103750045103283245012573311932426472967893621217220293677532747102085187184640287774159739488464284203420639045962480984246240857726939610996146889718420374800868133949900543192205283384953600688366281462550194469808013643372603197430661374681557661203770830119293637185722192123486025821276027759390499415570832794410265165149787500770286289245105606628998048150968245584930553457865248853170345691255181035888799745577055559054900279687486024100770941718032513221860206196850326824245878734113851085321521650999520695924586128682161650376813675543024829265046669349009060486696482777027312229306501527701885135025216239820045841908622494757366014345005501723803583591687801717208643123843845425529465859865731853626324770361545766720519519163522413667183493127771052445940485503941094942387991313851952096760486370880606472467748721200524964911697535288941182044263730956040181982713211859534752863878602945457387177720228998849188133047276180736416781107884060680000007455054235471572883451903101059111949797490835030394940903620240703838571161636597377628964677327384999956432036230024902306341859155323527364197260737600347059456114072529735567089954601408026527764501943859971193276652535741947090594427778306589783270261243827404555751217421586706560863284322665251090690026847061484831462819305975755157038290226185373735116137294564995439047323526034453446234114872103440840070943995072071704373782681668381199358547546901552633072238362354942845718947306840071996705405413853585293247930641995923665149597121731349539395122113093748550025937092140105698025284237515465058684168332913233612406625144179588673312009853013077308660273031482018646435919282548264856282732784498966513088586873181315817546370065117340989412491018178135109408888933522688268303367085563115942502543732264510926976508978562758870286295963310351672800450661589095465326845756659048826574938022233349978075338517827118602913501238308460719953498073641029585273657660830332834946632685525602683013676186625955749419969017756155231652413459106526581397772329475803125276563244579164506953665777477097389664037212757816332587594778206374090264879589759503057376334307717776897202811974163528427651409107600153835958852887365630074336679384800788110939644237487515508402303877671394095691304505795827925939691548115067518609208983961315951581040591625001748630744225866758895521096263398274405723519616579235766070902975289205617220633095893277136466254133996636884571423355851862360875356982552989751014289858988824423878834325355507297664562654251930655329078046671745130346013425055549835637119875104460208188116000387178810116026863288223981383908302802735538171416863677060033190159920877372175116453159280537613555785620067781229473173914031243426251885159997338819810938274188789548004513147154291373100937164820315390880635925044665015603720740972159347395067049364326019000217833340757287805863406228002321176601702439913983317459666876160169173111522219949274677043776346268664248596551875182448493898013634257584731782828429927167136410070507980449673747343762975888557371202457810816632313498293115777132850444411840138892690205622537019700321328051430707863647604468844256504229615134016736060837738021320040885951828022776527260031497568181002906239676476659137447809152497027275813111711835872090313961499239839896180069724980456057876119736079293735356202450084087447640029406732096555107378472346273155459895076187670730902838924842534079504126082809487965364451174697648130124840454459993012341708117729736671369129941647165175181734351429645563138609643224192114848201986428448037756172660458778436790217448543011649448510623019465759103443584129309793455793353838541932402368248714714163979359643621367433640698205611597253442873410743192339894662041063679659829942686396055726219435691026382909339961451952272604567726921427437018612804532911717070842270071580098868746668285811414589772793840298415616719133942700438313486986061659862127333851175546202583081585970499617519959413241780344475345509197184619470087840282014183483339603761611220592780764271640050636545449738825148702718581393554683582923313147799132154353661033326470905458775894362999472563673033009251922978891030174384847582956674893111236598543927784459015870164463872927401102708227320558185005360706217229261316861270264186886295676199178135938722572850797760652742369980727335072380148620611233043724668661953059371700290828603296725070469477558749694690007901602558192858030302336463741799374632690376033829463426878412311721188660950320811478233608258329023197596582253043655060731606735299696360561487899406802596075894831849156393037174354525549533151998768698217253062919162940212391065069875912700887007193084826021478224027213277223876701961955598263465616626797260409556933387201211380302871976287486369905787577390154906132972875977646697694936390127663438002576304762461142387054570258473909102911292192019089661137403936810452153648176284299658378212829932880254626212008869350136245134177633398478281013367115442884541580033476350167315931348335100852647515768536396736735378649469747372294419616540069984729888636925505016086396200660329131188523619913935950245810644598116606324807410682620737640691608756679120007280465288576577110874810815414400624167289711841348144465607797158309121128654311857237568678980327071807346177840865279255773963215179461152157224686334269222113614877546502297737740742704398176107926672767459803693175772182561827456063705715132003937485809315748024244417070018598781292428980005280346016546323083203690427341128993664058135976155631960109987973336536471524908443891975091151838652027931307721642732482902763813282689988097936282375820554061862766662945545491905040218034488223841898473482597370511994089388600187674946338155371929773795958258034364686363111108348596513767208365775721953094308552245943620316441538455075338012733090891235796614220757386816681236293838114768054241565738779721488193669007165443472949618000119351932771997792750697424755887386635349812447146232818748572087416343200951707131723935050934724368300891336834430470598163638695119878707210484807439107920805247658783144881231093723124259108724073184521982884048484556947255939840117802234132605393954526146830671086272485225161413251067296506808227410093081156765640374195475776625916308149795803183167753187076714784270531700648258370768602831261325337505710819403527503563106250893069067195119980523035948438466846445508182554500656216777639441019296687223981653037559873928301397512725851846901535496341740717216917470469275057202427941798852154388909862178512091417520332779294831672724982117183022883564614709447273808422287283450088788366766066870844631619805495734931680852853158817920083401604804867924686210352873992809431681341925392678919160667398841387115569366760509984717763775793513747335110614817536720125093045865188388417065345294933085339980583822617927739696109131890911271831373217907743697159739043479939569496558387580294090627299048323898402623740036945347719856794266746845924062063148466615508148025453438890602689443799261807566844334203640485951715395378102098463644518499447509347901360480879998579777666969531066068777339454849155328028006547401989152204812237451743929751106365800061592682643055795700312703337017701915460482857513199367397901125670739815459326138092929622249334141587940030048233904064482792358966804401065936351533453549774857845046976021724071884855414115711355445659890253521800646751239319085149352980206961122577742174826263585522483308558478546938744324104825548057042128554836436430771209400793774227920270060212003631639524488299472523937348084991683613355240550359850759636629240959955299979463593902526245144215227356197673311731577535497538656043594611567122486554743339180791572236985648745378832828720752506904634975885150482216343688796783514662404868541395904645893405938589589712475416690176854406976889849667794554286136053115631018976667580439712014616132532800415872741391494779434268163539324611086913102156287917286322075279105749409860732653189963965691073492201198631008664892642159441070170041085175286170620581963443822970347908507311493834045443308972688629483123751923188022382895064538558331949045520001837376357857862850330228431992616035582570738528906447581896461083867023603986647439674393385640454603472212449870533089750808769793352165312053089209039423583285718682161133538232940670050741921846795350336450195727295663424908164416182857983009684324856280982441622245491612377596343406350761295273481501021575986253773686348138686464348168789149044311263853143721524289453136554632941044217451302822019578446151811278295343383271264654412354808790608485939747319766658546679004079889110471304743312343822950161668666705557588051262935743970242061657477024088162096094565843091634485112039923558053847803738710221733994900871007170725670293240021861054960356200596923546406350599623121700903935949410393213408759915213490228564397450219337975775628528349310241552439871861090373547393011446663440842163453984006390071166036878237637806752210516539733842786582949441073608296824751205391999152087768331371600289611825757784895509692008900715005668888757931660528307804272587532978275999579931506456959505101794606898788175507624767060789064680001893935178356552106688137775388374988903982066360709800362956256384937207630828919112856720724594633499211153886272312815648764570499360406281096539087067138095306846268563552568354663140683597917483646958236103535321799724948315624521819398413109802283071344802234507958159145019587508673935596497458107049810278843737138905138935141505435864753841897894725740170780761749190672775070790846650981490848533877581531707112669595422594800874456571299418932181833450440091261292405831337289461357338903537520754996754258764631821088108664642142568102950765505255472081328374103507057750541625127719561084009411355040714631946652243209340274050561358568608895018832910355328047946051382465644533795580415327242049184065359538056172148753128128413913058826243839602365804316939551310260882937188090177129291408807205217649142365893782421038716973058651990889614629024936744377036639352374817798231412561789854981162745394084840903478147459597023263862993637087660757994039712531173539248383097993934785642325560028347057844068004040692984272238669650546984998936694844634538452430797426929373586750573169179476684192380068427491819732682284304960971723887292917509220184289992260387044208505961387249949329083464541668309891400506211633538035180363197614243187294045073727726830513554525894393382524248265913900010662935697333884280289813867133282375369436716792257567013431928079691477512491711750370731760254435200201183919722734609783607015793155975552844549485158640935373392603516808351815929435548116615914299951322644972584625017151755159650627758279911928743505808244916468359594342284823981528105566971881081760004266802153981889539223086040304603959017570767056658736688013596457685911454728512215278797828842514573151397859498254288600334887752146210934374143727189068309699335614561223907525283556746463240928894809678524664588073906432542287638524295043548322904588974810926060767265912314725889147592165430001291093237398990937551722051914548817684395356739901490274194265495138719459788455527782965528497962814897968005372042679327840818945575624432413745649424457523239326736338503011632965502415724503150387253264495733736192410053969047298357375397903983227735484969800979612509768727623372521308596426987940131365994378045623904422914222417036262567507128887850513509157007280781724340878510382906969601819836722317747194139276298611258791026050268150416937280158047994111052430610862474223783137288717063481838589671237454181331383366660009438821899127446708891894792847097100941742500292442025944516484496203392814164582372054932322764653921060142555651126971791497596617700787391472736442391486402092053471789887487822374763811585981915461320442747665448687335910957943036309999234389050005039978590637032045747940151406129851885363367396950497115033124767910932530261813506928457019525708087289598350035449618905190313216828083283045689058037007224883162973901972310396910452331357804441984867996555357279357411017279240395026759901552049245370925270366670436159377053695715154546802227591609564605723221372412196155643560956050649864535333211887971144650551914308224323987972619067520831558483765727349115285001992915565999305585916856498010445524670087731350024621597320195364802781494930678200024499057072375223571370294495821122543395898639675890974022573957912167229801274024763201716817597604633048933550983435201722461066370073127734480801453607401647735209502639987397957524805602897940198903714669247208379761434968534180220257602776514689129217713617847284388940881109396918575330421720702653043215421156039823206829523174003066960435041670347525528574958045877040745632764232843609412794787224721728735565048371396258258686847865853951835424921811829874373164563683852936464549722043817519238889338989243486396593045806125784388430335363183670435834879694826555306415048922124198791093311022873518991543108371037790198409690689873726016375861901751775454018885999124367244360078483287699217017182046718265611869476684946011972501283037355011131626247942608003085996631787275559595051131744695415290277075289227531489142940638337094518300046015457317308752633709923079238292722684446115079083377540869361587280434055245700750846582003653841273064954686388614590404410626063572892767787019665381380034178969084810385329681952317068154469335437950685384370357375233482178444066670283685664594320528440335192652502783470813111406667008569286152204618879982513086990469358123366163482120090921117884849632371505433673276056913231112720641960028711413306795688169309289407682988105936351591115964912390396333053842031695432602553343726404149540674695442103924623230192481974133993896440463972316872030147578810720059364847735298757456132360967758057953496433973769868597625574194206819385491941531358761286733172183598589540919717729367256098657658182414670026862712927585180636500477455632994911983800771636211510189946018694260901746577750786823672740670561213352629510010137466525754058006270341025442342954596650993520249450543665514678610050250279025088139244020901552483468316186280409853211245503456617419451578177505622865872057698494413585086170560344035903685550504479786394884521060132898010854420616034717033103548947450105464819761248203413227644581055847968237923899102405805247164378332210646534835309873991483144377036034158766954264474491316921387612780885064632575262333274891583588399467938350141052773284480347027693656933771428360825762307485873798173211445260876288191792329424369269530975102670490919462656319449741826851098036043382439101870525128488455220304128932468635906630173214970013645014215891754232401112834464266049721802400088573148200804355641912525253214674347122766764446936590289349075631306936908922757563867729850690802941642141195268625222113374559615826639402528161763165040233293964285300025322232871186647585303865225444604937767423874948058666092950996901787702123596336111519886293504280695519047733874088842286702083770820435307227675432375614268672408210566035198245001095079611534903102406541436806317743783409976019733862447321444826266552904867027355466826399835990615252591695288096429494102770879257518986483332865498576586268033486583885169479362673562730291617012089593669439020170138605189727984192614200937915818158842605653570705963920183822536316517102368958941974857352157067152981424562054720486026912892366595557468342076160798819302922040140492759540352784926304148686156667218385445975209728212794545411927376749289480551334107424568613165780044080213763463909764906033947168023846349969104560472537308462604434236807610108145440997740451012881551755771307575693603749400157356942410416739338406876550824864098234894751448806598587204907304453193785254654252012215783832991972592204382576357867161337238005807873435741905686340001420595437522698050079561086641075743416340903630346193690053897762362972984260486229877193333520907582567576047703670695478064492028827403513130118443322762106799435733598694130310119296609976586373499863324316776758190693223878917584115558735658250960373830234987300969104091504100725471965178718005220524541946572626050585110673871926196418574340343351155340709316697468118573067305968336161207419348392547552529578682246237817715226619599409344011050752941681593905550896497823203396603122303348272460515265845636269919019291178517704911658321553440697896270659903295642820938365745091933072615431618750840119139640449984127915774234785864383056377252033719631655261764442727929747033482473117771882338661868497336400203405413802523955446165237671918896803975078191985412493143821690552123833965820144672898982150458476339439238936018674488840124249109598900696644366576927530831738998842153093044059061305097027226727311575788606328541886460346732154536798679174773143574304962272866853714810121235700925303537607849733411229963351392149299375441241929077420480917416306111259622533084451194531015711465052047501412169946474265909543130532560067142568252373349293355684880413922545522242373713517048848390781583592520913943340265351639977907831480146671263034016224054558949422493774362517645779180548484217065855487328608034374856988974493526499520236167852605333232997773368885603933474604255077670986439127191656746788467102830698436712661399906633017844080077115844322957483574869386881220950660477697330489400258145873119763910291848488649242112669022805051934547149652142765459972984534197475001366641311803655247670536672788715395946312522684227296680986624919663084883705563117227177711466695973830271840552622472292245780040529919253409333190165601697023357357013685741412980851881388412645509503703512377246289442308440142235705818064846970594088675716396298632436579155044620227372267679572151742143885543483949852643312201630334494731695922445035133345452436267218272997048969042650018211366399856547563073312742038616399297639147902360085306980021792374828324990162556021006035176791205706978095617430897444630449884022516697525899396117464410298598486277708640046311208417924130632576884578915836660216617911611473172198612282270921743674951199683431147087018268525901495609479538483872839784714495837291669546410798737543973732167648794525571603008848260515238981271442516781988866514192926866850944387383631043214184557420313375172633562816397647763184320980906063004338886454771730273099456762200355347204903355860865617291745275911810651693067152685329965772229247535212013247779785552495318738972891559377325097811107642475863887647705929553344293482440585441944883495970255839895157948481273235066223121698400025818379835268214820605397945904666148902261518523646163889285658942454883573540360377893616359735348177483606900837050115759693798291179363036536943379560280143182486212400151379799588223952822097166786236569282323147061174672911162393370474889912695923578284816820662481130679927381380294184878966586943703233552196530643020390272826255103774530427656971447069919922585277422841459504258278936691799990550975356115639303645852624240029271318514218818544133246612215927972983525341553132975311196564693744514153361368267664365031194092645580850321777385815861086249770135467608763506742589176053852422632771181518997858248273860163311281462497298054393415358612497846260084563777160358944070987302216778086768783392867863924436659960942288822312764888082507970060428747385069146989911560703236787399956360365070974877106688648048297297747437649776040756177320979443951989590293198868770072683577335971713307609831623643189141725197492136330520675227328974805069353757858833403126064721570729659653688255103937595998443149283709965252749026123665259607009289925655589318308384653145020370675233585020346565493560993176672920483890458322819777754938273802579654193326816091593885116700277619750462916531359610402745290379002629342232573861479515206832758332491560689933967301726336606899035108220469740086599805693172938114836534900183120321455210769101213413067221502933993732411683941392722967266540810968654763222168197862467908902168904575618257784506739512565133339209346386438727580815413755104394724793796969562060546590584948081137288496850272486997412382388512355657016615204982934679103888174158634333451681967933496054586154003673269752729718272659390058835252115663861343827650075721563477714491717550665623295179975714063186770777529667716506813703723567635974686055866304158459056037553336666154686537830947447895531873814050489779382886423788359487193797578392161469574610547261601108590974624463829906745961027640948869362892972909444271745038624754683538843639260740150832929215960995885844868399925850153688586670241794024171867507518699682542241900628161977421203586182644539291173299998572756040476632421512919864228112323922766392756434161059969438205352900940385833649274657305994813882610770501669249335485118826438727679576065147552288317979631553439239894330944804417280339556871475422170038443308085392000910357351291207544094804269892088239875358132722853318467867962229990049340016947517888320874428521242942487714311891534145378761393732144755474736782013932852007682627356066194322095477651047846618628141847769805283858493795443809144735232379288603203804106867345117746677883281931473569872207824330114809889342790228178032142103049205484594800754718034966498617260309961178183613795916443912357028107552534688545611513043879013294324211071581268060746465922759691621606236981008807698384151439414497749905105996448490013517042009529057268710066182958429040540189100921792992464203554661901827978964990887785776162241698892460366869956938909388610781416000964822109565549000129900540808449583164114939853611287718100906100626691027192847184342476079999942857765353581118606926828605982897534928988877668907311638493844875817653442428976502428171681261898625675764275169189184974328186520800019801895234844040808571533994759409443546160320514631229269247221622231529673692902619985119395766637956904981460298525557748585238635149867088477932259188176366711431346657479367269848224846465501947271436475954328413709350111935518818856639570740312560072452414759414814151311876774643083660036418124857097557040248226077627845027655694552362498240771745342673317135959794169557671637469066274384962539178810719225607877291423608966094384986425785696600470896163517067052608815573743513370650573638290281238726398846622528850934956336185110430928833668464302282506767431439647786444407117486715294699136885227262618099547656914283563686799497916888578308657649431294103294224202704263805524927558508301434898652670288424041620397935203638996379150154220674914488103533877721338996720184015811745009172728392048458785843462514825301396192759750696002920009043372018256040155259128050051453910178643386446115811113126318510384016953590520491652096724773529470478297010836155593634136269981778589801246060497365257204828268793736182669325544789031064865368566771697004297579469754228075285604129159851807738677048692228422474584874123208466723462112753853713764864104252852729744228821444579954143042170510145465957891192346880964094002183956567000968059461489432911147213913724397606505354692294369007371189691262424621899069343271174685473654189849873453011333560727897857766142897461035982629197721221063824520010392211591688513612927037562951989326702334571254853640492697267848374112924237924167795994263601573226232771412867629926634720162832368814878933557402480965801510698738833676915267138041393044241185005031033323929839940146428548438796108901809946202859272301971284303391910406052501953655453080386978018697174628292660250048434851473777092851018627833102662358042170792282301941646771773064557681691572042271597407666543608341048357922458611101408670679421045168563360239392956406909510948531884820485678627597320615040858670834245776881328837120964871362671311989461776093651305530178730814933669860161179708734895212886124122763750507084771062301715837760103710075770827905353926237675629789689497354715685577113325032744329380413331612222232299539131979777426793502873586982900382852266912775717984285958685126004536158857219047539642643097982009911179028471019564898146411610076670338443124167461978881114398331943653378482685232377115628469480857705378564682381160628171827227754749077914053463964863621183614079772974729257688026513406460048569644648663538899244916016064491771446953112743147464879172065026735697205357288250729699585167789065484413461595734987691351630028858945681499043810227444438324233861559844217058901074420224278123219212691547572400206128866873112005271350438809425086229776501717154032278967873671829463710851723366497017708006919674103689412649063942987071293347093336860944453084011962494878490894868034278950162296617458588134455223182537075823024280537817843403595283951980515366520890360336588393935408522399518176559906675877396853068264368503464905109615049782384039871531544321212494266019314301847438726335646781238061815010237733416141990776332022703950624363522394321846563943051556468618198854963503770475238879082672752643373689085405825179562648054176674982029848713523980354569403974558639637344260713817582970643215243781712612967172285289593433667586284481942194451893009317894760267347445357100308873762170126746893943397436419862852041375293168147616979327566249136514374456166240153627844703168449294786144157875935594661587927499206576943651187555921832276411093298346614792608997853118209972095196457531883064044562103655920472321629695783540716878730442289403487696802128183930631384349141613833306705798279429713309222611929899806272266281820994968946406358814435948310467553239356298455662180760019714096421077050471310459318553146093409090041493037223498555140198177770218062395769839381127110265690610592646496790003871653015849140520396337539118675966043239014992221288606004164818530380377002662595398336917478751905321021237122117404883886424643619315128701954958188013123266775014087076500881024592300323667745539860009049733058146405112306722789178688920813862033911735758939664188339224531748853787647647995982322683778890537381177742311661113865891765499989884463711956912033743584014455107539953737896514017814264069088869579953415132206929399472479864459567421772167180032928860488472758479679544938321376223775347900744243053310971717921200726673973112695671089240355883889831777911873015934892486629856695415651260204103913066061471454992934094793178424813110957091851150925669022347781605631207352860833894799051881974526860048323216105774860939972938145069567745582633361352241834496480506570621886490806393140279163574008832553872243681598932667145538228002996295653745623947163709733220206318651985483932920997943276171380406675106843769204608126652475871440469837427067207256392863282605059685988405892765647386273278101257764260037969703647649532418285799909665784598173745595352662376378539141551979486112886868747227248634021099348585375120912895151070192969136667267824686584827030689477854265295303952590032686918937391209539556696561235621303409357662160349868957812324547117507819931956624873374097856937236056467882808403859794675786991037094877327152622896458019648096755313076645956957484639550721492051675899253314504382073683407625836062613773470174695716428266753934894798853335584396018245685924275374319620353733068708016171021595103095104215443036166844419261295032558296179728067826938606739341852539676112695757835359372052704342992419812701944354290672309407800547034912469893817852088078262734502078694212696986283464193470598490465908018444661953184236212225767761552809827171471466761392177726078933850330733794076081199785072341881151999068749987095554991757031499274704039078029868814612302213690574033412680816305605654611260542283311098605811802392719521425743028391780014709786980504396424561199295163185469734380270218596323635423075399376461019476071347777875965612225471212562931860686539652133927576820298624115209529360754835574110182266914430102839783401288910820944974043697267621693662617276826912489340518261214917393713750422079806708423076105606503772870688779636617207057583789632476479538355335908368117378812317376679777079700245780382548041896203913582575579689651603087198999619656059839674551633212608525061367343551205859170092861226523378241681910475854389279494084554905611285054070408547650330415719209457899981037076308157658724175989828919591561273287599570944084241586156135131060319934110704292883209263739619440932224775231296213956270939162322716268619104852755088227752257892533996777624534016002384246661485494575307690871747311853424383584439709260068864557344025936595716809952272239077393525493961617707950169414866543113488262663300335066933858730473337718372990783884612610118954036981705481899953231900370416112075989369196332829126503954862226272527687150087694758007656172396536760447065089665511652410755219152277176351329972063382163222622433946842143858972728075888257258636290687384399643998412587742684766795451318891877538037448294832672261147303701508339939608193642449166480736702932632635289625189889040491079291208037672910485431372766468041337098330499384272017846235015986104233154818445609020603776472393891520093675313011167343303639847609239468798187705774759743563919135672017754357468635809697836091268135151333889138179717225611786880287303235224747737927704316448641658241333310083865245548833672257992230478594793466960489411132736474985475075030827166771624528489859799846168638765886390395759530852502688883737490466409304402785336774250401843137249502193753078141599660708402751656056740431707402485410111908756895162590642335151693484128253566131770170080004467448060024724477409457154268212895575090373921494209145547607692554717327378574319866526918760179567520920194530672990532835958658403114136738382240009117505606818369282447400567625330951557217255352328569103671194364706845355222215862447230096290833283624402783716660126494812877261734409366031452587826461384900073442773563580724547687046068735234162313695057522917064249065473514658980052646856779653932678736566731018370371023770454448930623922339443014848360062672519166642789217979456290276222071654970750435443448006903135168398457219887208701987371413082618597497858114241831061356717786310466850696579087421327882482207906810918685798260947176299233175823767521903645479855632351444832189797074924144867656785535473230795690409946013034544477981871267343484630670207872867955358010533699010576212590367349702186812679706928105390324288686371075912401526555585068723996913174354307893374404017426044721729303438981854252993594602223995509432816220939584437891746143675399063954261002290539761500807476275975201943316230778129399609660142193610582095330174921156443942475352256947264219553159121276596792846412759660752902764129242428524632602418335272634734876955189510198573784889959996475846782270235490316741212387312461838361062082227273104265729824735665557949928287117812030482282187952750066665469881135130243478694754559744769044777735637058913814695136890407318922705247709656960274474235096649722171736968145557616261085463100298953525635959945112663035312495939237951346922323726142566542230331321203216995007555862693553737222051290467592372787043891358070221186565166486831650142932203564768975295183293389387052402818298567651675048782023953649378224856262294816462988057961438195378040397445197001249180760448130695498341616209028188514315030376641756148119215240623268358955269422796263705330340642110848111343107848841115992704009458910983151567487048733545532641678685104303359111925548431502652111506523771696405879964876818593775872213778030312010391527942726962156533441300716037118352179754353654618845865509254400931786408107618272446598796606520607995665926182533375266508981681302381383533437677159421700872258814203559909143799595430084299487636660743617556039445680439672959601465980871916920258078474941800275144300783154933560314634694173491772345406577289885046789333111632241288201970266267199316768603755621015042956383848332850935603108860466668556274990785890812203078970832949968050674751399736090962578231835814984245003113471039499331654838880528122844018801107938268730515326989212525620554874614353093941297287335718631514181489736634917888017574198003219963632314683633700193999559646688500606396593626221265507016875858477763630209476444388282023100753048281725406777448551085224805523981604838501110206878685502102690859224022810248142117167194547002712298171887430823755169287011535332795941963424648124637343402684048132776925878141163970712669397430356266435410920370809702468645764967775149955059228955543929906007451353097776549382468360006994127175168245449046218209940879008675797159138593006246287271782469302642972437664122023892695765473504157577583347066135931411385948115813808669620852646230107288618302156526879471828226999469188204712591464771761899289148973919192074489658029804724656813553032514735481892887177157336960786374690638005740150100673355512161697847641879147129221666143610983867336522876806790399178339880042068253509680515908140238953070566098177605985257094510321988799320217493656882524143520503465700562183665776651337359297277649066900069589375536925481399811549063265065867313116097274306879410303888947316688206295710909326473442715067134668094235116006974517699370293322471539518720083690276586873749893481216225143785284072401726228561250567633352193756514279735207023061634674960580406004982718641833384755002712826598605143752363807736740791277524791028836760898937410090504103182610726987806756350275066929808999814633882981264880163537565820579965726754337033461558175879852076409201800701031535472173993870670611189811050886014407156582675014431725757072589114150280349104894273990594949485877670953144122548587638919475558708492700138857649082117955736683375722063259608492589446252382397992786321723614111049770242998684190116849287689480297156218646436970226048257781495955174618307600466450742871670693946552475508556380888862993170068403332702891692862055795870436477092279897574596414824156756188632340850681391944620274513076258303170110805627622658239606276544431002643226944744282144844144940122688050629512586228344930772481769220215181575688721393804925284683019424707315387064463287257152331305760086944782271134873118452184692030105619378965964145230328825058505128405872767394899471223959671495260791960137314969985627654464002456555290278369996187969540578185356714896397398019174736168077506235530637897798238115379344046718673329339147809174822632083460960246762621793037750382084857712384974857550619123243086660324975188876991884646300346778925147310009743588460515972937273560402238823957069126846606305200306936933578170166080502107373567658247958083848581091332211703944610729934485959329468307633742737948728774240420883353221276708159518886477723715790496418201658606606439059940788420747474826018598962429275614844738464985008718469773066461935903047699077434065511489655277540048559184747948803680747437148765858493090707383780602717853718152514661990846890430195307393923169474018516672315773626444234423181794656794590944605165360423782998483878504624774867015151471980497505945221695590038688289311175867418739722861673220747544686578140737317266190452768220402208536561355847406830514413587031203419992790311535314236313436615655576073244562703957600844854398044504932529401763733255606001432152945290207640941739276974859678036566957505737247905103572549668338439801133722103026818243269231802382734703359994719187253659347535175824771626203471331344862424041325944357086798710874131549052212774897670154105518296661773494568825626392837710700508002933490794834528658568963325516414212663683768816084538729390220625081568939406579801667997643217717491582623711250509367470749984365160018289255499246317428176786023349144050148253526817921423904605339009513025131332166629290264526021668727790067701829328292692735195331236250564869788086908806263298680338316652188066446993192871109875513397319115100792730071526203924225497025823754886937245484260570722911958751234799635619206399637063549075452185857807883800605968865506636834089623082233563946014130959298770545025885832329635117682238128718746288511038336964565330406911532533818067367544791468702488019640193259653879016328649849629427071531409970638346999271162115876618373939563217791231701291397282708136138899274380688502336307837173199737152949659577988226938112119208420900214562072355800078897398824785540918399101597626358912775349516035611557248553012415424261365241465517610254052249839107001803330760515803561377160058438603963190266348665663779698162872225832809108504030547010671427506943376922919721207462917686226541085770114708534512909767830776645269490305554731024716580441726453078734022127961185362211154547489597685626061244608116844517645726858123229794557318726803833609341698761352828079891365549170119793757124003226973923727577737318943044199632965733540061427848624707365909475426967507394141834466151626930880808539162756595779052341172995590188568845628633987082230350503931752011423879538812501293679434559128937859565302579684764036427886522705796299155909856893702626933793758500829179744900452018619445454584900902390402538383167346276431625967944913543317572239387207562630942497082007457497566268098253506178019591027365994696516307731970009188287427992134879226019358689893730628796114623734978385613883816563034180552208653641888112180253238071218108580128691325523093025587949161850617176248926986363089382112465302616384273786459829357144016449177427842215346787686794128439165990316658956620936939673037967317578461154367856629214998356232552836580591908252966067022735273226468725898941512072326782477314943901170681068228032660141527932212675278212813250045165098575884202990267526466488886674075241774969505962760362913969069424009372445227914516824048573725892786357237768703497580985038887455429952078893565014267915146818483652135863405760382599696683206809997873304246517715572557734535227503407528927096367008480586021101444001644559088832629940217195158652131208304969551384608639747707406438378598802860680705722728766416998398270946348843741644858181671283700416797219077504242804160944087842058880542417622194890610949897063418414412228074551834403567277814281439479657829031466287089609313271566247141503947466053013244972103606521185978682619217543428924096262249036032293340911604545051303201364330334881985870539588137429116699868539789950579184705607690666854303307003349085119000560371442615351145834789169456174695005361773844204542632788245766224966877343687437648026368029688660466698794946874477242400405819550439747344635472611565170386671251819175973247979139607931718141147604485159905690094995179503511600185862614209106021562512699195479812262242316446349524794671507384992919503235111180853587418000968297043721220561081196315386197357346702632881202756271658375486681863488318256490723249702890566315546283381672399326499888040575494771521134985506573335352497700311118310361596108362413807447222853685895621115754449091818530078796480423089682681391182483798287382706232996444503534447599937533138398837432661110201126342593559338870694603788003074898834721141988023695885800345110188306600194329760674910021818780568606050695859879189006789554576952017106922261736304476688287863641461086530641045315903779751677554821826013223511656878170297959424931278585068116496925082576239492648862400489868583331133958061830209670373078746069989257518921750643611125349959197566026520518841226462206437956784647483023115850939451968704739195685781638393079823448045314025832254975999931251967233141171441195062634126732347673603972901199751625220956496486636545701660241466374544450564864993176334268961980245334450540534087560661014939092752296061704160663137437980751609208428126678905823888411250935806671399808760413464056425747588495542234720969235632256655200263573786956324039405874065970393085754456618282723812576812092151655224984928251720968982491583976532051333794375717242364812541518705034808771060863175232739542839771463909270590760097960106256983179608240491766391454536224714577486191449972360412220144942583991310494876037867409362940204937377356416835976115294878847335640153153521622134595123473678780294627617202226444917591623896342723931271073162799593272940855575024824691814772690889358045521476498189989720826723508187708805727588839725072824404492861755613162482011170689407289651984869216624920909254601722071604910049611420952918638592503347207483721441486812901290813693542638634604205108234737582493301142284984413422561182156780071505807771145760517279663827500517864607923644291864422619104849238901788092994053186872945131886110150070055588663119716519150969815047710528025281573733591221593355570596304810874885650377665555365348133965892986810386790848960694500040728444436943201987433874942028756047443825779059373515478192369625402583006603636263802694275894440115182133638280948307720213518783976230596594602198318998882726731655473233209192189868619636625932123657188916943513160974519715600514854994792741838581392178068503319206526611149104585474206930073802195542592251413471803938276347262337849643642660976788812204246743877127699370049284857161144610229184590423848118543635156969438857868590069639110964552215945370390678268950329946673378914349514344638143657431918755488294865029477128613465081421553695908582304005419125811860071117172122905664630871063876005437257471270112053069376879705211802261447249773145379443806686284295094132341147467001438611297118029219582742918358829765288407885614108263119713414886927707152165854948058169513555082323820258308177716808813414309013443530005466121509035041899951500382137155261285791586697528005404319686079583716314987399467877834681495819027997170296090289922981399972011447976746713202444611171516854835338448469859086565580086024983265190048324727997733586435361948427896274427636934635555507954797181835910960257321282344782967521535230209507677397358922328592773448008744178298132138935496162504858312378366090107464011135107020282539505981803027895384183448682706250547361252262344851980990390156435242841563443482398829518709321332341533403073961264994849876094472727417453045575065091674772112080474150842745838364335836843242492517974991398517034603496856511543578837361026464422270469816109712970639178605294629938739257501102095545513876152673445427756511040196173255610632126814725558287595592174791627673330206023068328707979035207953179979162866871393008692930570185159279149780349436898688948563063578475399537400086940219291007884261163780488903795708384533901388346301824970658198974982013239472061698373911472027454129021247256052159979631515941120431168927569346963112814750961168106027069823596560281612521970928690470093159575091650205495110002880560661451083249787101522443792138927248842812134056399483203891352357135445824252198877991436907400658613235053448156636573667713458868540632527367012813761883952386786212306769987460040725879781408322437052512661257543857349351189162498235388019045619785337263406645700112148408949514670259720556345003554366670390502580544072062033503778108989433360836639135546939712759106350580727451500594396118296837359172965658785417879492244307674481624199067765214535742647429743081522453156008875300233425531978411965858258045877728224868472971202485348613453415160790115128581173471791811327557554193674996729958074407255708767413358746610240654428233839687970434921640434217556242437196900258942697609109753699217603977721631077224534492047280995182010483642202869441287273440855316250334213482733516592341737340642602299160795556809985188599661123636537229151751871764066776451421017326543180462110474992143163859524302829043713840351728807419354215210641191565360647030449612841445839853393941107911939969607382212816658239136177950595652784218289247069857256559426300843831666015353805313913016332327532844395636267478558100525319126672667902367277867784495084509059544285673013933436623648304203757245477337160302051465362807597129031825654260310370383145098341416466492753237333101895775259483542497746847442836222950118158027246639220245850836499684919008159236554210729218842622532154330233641274487712942518088963221921364521684136813277261042377457521107719412937955926977624522378575672955157668894590521187201672439288297695183298896670915615008160414323869454474778490993630265997589743325936416142019010060679433829703053338389380261307073902673147533736821616719918589642009819180256586002307027367621995590197445302816013830390086315677212315191758010753601669415499576915896354880217296609667456999844158648572625575994147486461722574034918626644613818948310927850541570571464081242989506707917768716684653545201208851967771964590591572542179132383947326601231897681472583544838984573685975068528519309161837655552946892814435241213810766021921662041400127827310669121527833798099693527442727867468770659149852260453519534577649864565442421184205202797435761652172404890258679513975900685503865945250667326933986350471468804338760852377501976825913871422711058983409210667984009759628986468481871309784163948390506414556052940505997391011870583222673276929066673665099734606374781792483094552894868258867373382523694290159883913736035710096275115558669721402760780316125407178160936035555420519334004607990155311390417434530384087626963568653750919621539545431393603644644219929340421797856569703092046793142335340586384324470454138288968803686846868675997361701033731314520492373986641464694563949083577625360716123227211757402764770543653243181334568751732447800441632529249392692296260356119570229762008473814641102847811499440102735373256875927434928072207303491285428561022287802146432617616604005586254351708540789480511161198413744034211807386782076136824000963903669614387411899018036804943440716599798938367966867569024458060646038270478049349747285865611358084569747652482214825882530837789358128390961700616149034446814667780934174488776797118325174880400277012215451736338025696756829912042124945927051140667210135634841406404807018038032501584631009424423112448154321792405272599964634967531543043069083862647423357980999431925814826680373651314203700124319445603796506004509813815580911339901360184593089170183456550985026770983742548037339224813623811531020374458207737599546724998410147561405229004598651952247395096528203716811020170779647239405312623971289907484034727215932419954463978626233783234719724992632670429070701134745170356648646001634128864208395833233419117064278686073660600954541359297464882965267330092099225088635506889938080841746571724029294661229824610798431751031522529516434542015382503186840938700162282241614639351331723812313722842174182411315695317585294019436433999227225174178491422200391560558580171774089745014901119317446616517389780727689608759452080169879689200122943829767915736412851193280028217262456142831131715436366441581217248928601994921381317247119281954583899729339451009870353873477889787040774751784539322893387063099701970498592336271492698093698598605930338891177302254186494704900927180529829584627940844628717908343913839050256717333964920881927750339199775361018537429568103668678189290209441236733795353872256892392390861762224608592310196366355124951011957505290227385500906013199265057302144348254261031277575693764819083632906582431499282112825927643202913308396873105066447922569744499883943106962522512311781129709974067304721844137508777277954439430690299464482481519539845001941262963460859692033087559648679508810905238576431367842320330457535449023500293617973030491732555904721713966908209399131796658169505022715929337996703500215010611386444750970768883378735280341127585498391433663340784418719488539253687411724330884500574456225226249664214684819079022220058730605220776985950768009183093753229656690188189439147837696965833039643935581355671726189215195095347290960055517431237929174147426674963783742094746435823849050665205917160901233254769614873673932237928416065039186098517137751654108778389000554806314251305625510321603824419354182710026258885368289595190002901654676182825216680728212003888985045201471763198533845322549249146860847329089371677311959953869059555005266298787307002344852731200822155477352613966251731895830094739970673050526565521633022749791418910986267309218317631784815739471618042506581212528876313880172277234651611913250791840363525218043395542465194939523330544726699513543005006894464251821187513693932308114546886614354204216942873610889238765158942622285487157557905355551033794824500944147626296829011090739811736614161384737409674552420381452988755350500078512855289857604044861046321589567165473527301794243734941805618619556176803385333996909415313169145792975732050468198480763288175295984758753973138763405394472450231530061764313321751339861298599846057133216241838295419872369481998007896294141890816609133148051332702500355845344753162791607754018156383335476668345733041682916450861622893415544448569392712522389552093519754462810615386027160543785088142595710138158747523943047835036045340816760577833852631891384907117023168557285755690092491965462607254227834209432148586646467813619648592397807295153676038208046709305369378344096977267589099135132834138990384066534111285564883599034928232768630576050686030665942879178784677678136382179389670281366431486757990748550415403568823172221232809994486306660639608889129529166051226541409912637104130832793732357120059694236869678902426910210579601655103208561156775907017622001683856932308345434312435692946116340816375399367733170606876817143809394774704308240714100695378442270426892732492050018593785551614896049871993019052704009479567043777672942982038289121381282923442177207808581413467241565658870433254272228908079960971355219959794254486783768812292750323514046106342207227143620747038568603033951189794240054851587751464596363193085942549876539525478880594862813957478377545414518780173633674419618063435723446344088197126145502854462527498671499725562189012893739600725968905045210063086562464427513786601097237066493031557827976980239068492202800029382431879868479095607738506901762173283558517082860697798209466642475145667900888427921143854813641497887020366732176897761425833250727495820908893981423128037257216206185825927073499542074122954902320326316564251465695227770921952089772769746515439634632432704429605484082440980893586203887038559127020615297157343806147789963554792955433290634567073424285260022631613480315134229640180980509368214979833940493190583860544367658332098311444881791811721891158425853680098490948059690864289754068803060060326565304759280567592423982616449824123359821329440219638025719924985447222767371477016267025227829962742658460496716525786859138407255478451149619828608624961820213327992814948865933530976835188118878828241305344029966009604010702445498491555458860105994304580581501213856966590880958087318738449439616376331934033977593601915877431216525805793830712484181088185675792275498922798031741316645604386181738611713934560585046585146932114085019656341071678700206365018373852062153664704520303741747486240417762203680484582650925327728147430235378505011727960056608303125769230116652684279821963981618567026257884684900953998553300008498028122493269110914129713666544005714503690447880795051463453763313037485693256808353777478505383821786050289196073354977061722328634019438793972101119420664648920628706166036230264395376305934799265161593368849869241794100186924670202243571680406286774195735433263562552678167445194586355464986298348463737911786679725073698338197678525489723054743907115036418116031089004746919643587010138962454482999075365299512395064256207651571339830022177406226853323057013749966866920235824513299407157441442128127752415421961601335888637083398027718612176487485813923262582179663171495693960303369667860476184060864302158839556380403760494516898377760513312656305466287167404252522929707059719836041985570367404641227486045169833355756696222200812895087232921489817282443634185768520810474415477278976810740427204463358464319778200180268071140757031109523713504317608657480363990154891082108259610924592652686964934460767207736361602762431482163738132951983245817396649772942883963237433661033515300086315053543783890324977290068026300662816358067567456275950487711775465805930158957635110589470367365091772690623375221717568398986025462080553723979453143145656516076674037372171829292538234615132755714774312911315232841220027518005280940885871249796320356473439685028203926925701440078216463789910193590636848784543334209740717502617442329597837072569961071845326070186477051788946589325377963098261838270354120980107797186955851193281778782620857836811787006530675217518030737798053245270950504314693860479135942334923315766626544098204235756099468350199792623008925797175932278690897149773420489100182584956550933846709943237796303299952753686060599678305333643486328851105848675291781746007612867237750924250284623204985598040095760961918188491370615947245361733842821331759566538873209815452762076627032364661161756751631608295161911319126261426055384414120692952190666786163128653250783645988710496039601438976205769269787856769182976709933339065702225362813221671511392129734131754863837642138908919566036370465051129620101011068814607314040121661419351060986787662430319766002090250612229447700142712250368428952749493783658157258339921875757779854766773211695286315230054933031224283976510103767683591820893520124689605425166735357641310680782032463737061645102948187373973662028088266288737597838053223127748391532297601776195251665368387920554915163546771500126391876487951986713556843087238709802149012556719857553909528009462381848252118472939679396641777923817444178601522603259737538830079455556913605328551155785784136892052977393569922480547102642825649655726094877527621730166970906294169138571927452650445894717864051948924338494374087510475072035971368096919789131622972713680962433588404108619382988827439939518697922899070262602094710921703848433997877113814013615799680618502459768902369099901356623677142996852061555918018029730507439309252770855721193365291918598304227599756843331113862299862301856371463451426951818416725846203412146629836463571842121829476799129763371887428510464913071111791693403000743113799451473611707869548235125659208836435233110468115398194604044370591624610947480176223886100438605099920644667353003287746333299219940364587198867451183765334887948228825122867039665222564135761509356896768732474185268736473414279454600270263000719085348023422521334798059768299391617476469441073376249889666474108626533585198813507926770600638167958536813109320034584835400199925785640206168635181881068563527885359915054014255692824073968662043657215176440280977046478362462252361362727608580943751951275660772883552274482363300345115729459534877943498046125136068285977466903502264200159341247060682722805852706016416389708324645097263854618150454374470075480908377545744322092042603444973752782646412189953645715018194827648571164089079583623577526027955271086060612785666847356589811206218366761692904851282850954290501577293958692791939355800337903955244228780426368106709310503744275480657254933706922820301865125930294484474737005384925841009007145942506934865137776229995794159512108897913829361752180622255205185739878232772019980180971058900738857578940093371056301616359018480194645417908615205050738876223395047495526594468650279031843201227532620932240143040402648856113274969697528938652609647249812167157010514361058281730455390031022686780940510262657541762339720782210369409998171772926006790711554960552285076613791187614383085851559248773207939458670100647441526596969783267851465419763187716841120779859134763296891345966156753261842069477748438265947159967298715564144362185566538185304930821265860073271282614849187960939662114426824145680543321508094747128841710813899688790621049117459380455230950791340341337056257479406297244108598043855392859274288713876962437040681681752806078686265924572114543555197747001665142666633342007277995146299383106042435914816551754918533695610727716991900844823357476106751011603211754252400142062271499641611384662242352893820446354139117493258566093557498348231173540768838651005918536018155094559113732305253388726769119274908850029370239509536153425897039196457073541318138647999558541769928264514633408837307553270729073358176764292962839436882503016825572490875017171061160978298395605758945759241809294311178675775135254338647708911891157053139639407542729661083234810774977721700673614941305735775189871177041071360703443477845123926986268586076781245284374634187691703543274016280700666958088011299293414475121160950099270224262562910179885775635407489023573718368666271559251535701557981912515197021736410926210126346394853426327937615900137356852636358341596335994339431619943086409450582580361388770366378318980883715124648000571589055621967846035659835469844420436764051493629318185270226069555474780625466079256415769443664343232508339427851624321285193737380984852162951658664713845738614980333080263657209074475018336677841668442553282083007042319663710010408758092070499744235355995032905026431534110281929354856883152436517650020280761819018003259920973721366446995495731834423801365990857768060277741781345714531088700258523476869628254626585255446302185650933120512580619957776191138239274018674282038256244743486091419544931455343702830119457409456764574700872964554683648030246354877214390954587193718255662925550508042919242587041740179315806551668127856504128921944568702658921380306047381090729098323184673074390489211931490459378425707322848887595621643591657406195135451415889609948443801952567964421139551307909400633288573551659087618474575876324045005690444339607805177229458586686509875052530273475098196202330175352478271971373085564005008363167988666022458147436161610135398376238207499643135152987074803772597613910132457142516265393075574972357093661113021206805360793407213336932534048939239205496491932040795594516245854530749876303342550448274509763143030913860844766657875511442218256751326795127852413025823134773224145498717853238181789025927020675769504036106296051842516929401322627681771625617455485894870644701767216909568725834807216390795372175872413844940064605801173177978968007414756854551252994877019564440586256253369813466533480035368741101230608481990922077238673143738685448366643302850630079107643344347376603963795221556875059026633803489209585850265758848252312401027544120831407987747660335896338271016008394538754878788479799176076183812228418428755834091107575732708254999070257904517843368137819355353485062558545436382707618819752867129784854334017332639485608560405113310799037645383191020104207226251469278102585608806554984608497385957313375335290032701721632205914010000770737634701836196023722241546024502196546504576150968911592738457075789023454114316344301061335081877631313881944701407038093607500988399449307669695549774139711885908380579646615861000869507140375093115754781924879059253859745345392609075353913971834421316729184824791988425337341551390247207807231616172992981230087810374852209108612994277943759452182880044786376478945661540748980281458281323943792365037165166722854728700544002113825782467296709017392268051651532321803218575572184516300741374491002648741417402931919295318321792261727630469102926685431013479327568662468886576305109210241729848123011469810114100366036129778202285204271337826067691547265869488467644882327993104612829433155978745990743206247818405801356098718229100269136542274908173865763357471207537563759066504094234182688663354412145085063591452657548665786443384531068478144854875091024898396942114384052736423330565015604758780028379475548215322971867344098993515977975097087523979471680274696316236422027542903890968212163719893559459318050370029927416453611468672861277328336311892461916466055199122933474566494238700529114738916777763474431360106154509938689881509783641135483409113860905145235723447063680427988759805164455089006972590752151460646033922599967720885932038453185340003121424485534845884469937079032729935574604860286401924252582395414088643379890463725152151137747638746549624905476679692486409574252575190979107126845269147253459199309761487113218486408526614057761881507358263378525398277470880560691319308773369801466437521985982470519361094495456592875007321070669473724523225797004496168179940158512089383731649909733696786010748885711342584922219458188082289095056009201947685780438972192045586507902095737325258830648798901057596878020294772153881002112846355188290974298633987378110789714951852737324083612701584499808366237783378399404161034448623102517041757530737743824839836316287786620812322039640537195197593240496546723159659343606942606567373876267176107515468099709002161328974953490958837025176470963222382670209931057744049604693067368451373239681891196382668189099030683403533480771243002583146372002880789429642397336836052094274838313706422117734927210306098740665270121251958844745652315996418485488813792044724550761211491250731109003300522993385547779991861980589845076215971378668017380879573850287412877140019703461824189427452515188071294814470476554059220941574446721114246261499863810643812101737212314135490659222359637344963391325595887919256817807353035460258946459993870712643117186900283222436591818642683796082252598367519020083512680220743086765996029151468232475168255428874528315178705974816881315704386099331756230779992562876745248187181220803916036098165127945359695545124089848603858638602972161479419720584490996722928928298610213993194276369918243724071605199285848690664753934987389175615846029988062358056632215070415660461694517226399754629617145093868884136173242788544346469972314625617965057245246377554939571139164716816362334712312796306256861655931655542504834966568509177737165780839524485708216526066845396627930857372184044502657933847747077250575547693795634296948641052537250713545132607174044407594184661983089991249279664343753435115061967545453921989729715725954737480510896002861484621441295358087675908941558021396929958135490856697896641717220235348907424308045693241424084927958026358976907295000801298010205595098795266034008017668518421589349893615807238892040306477020889059692605218773552040930811870020894889078296415376132625895231314104658595985060164310031159487380605859852441746190426099635808237644959045409487971945671851304943348219150396086597463966223314242908426500870062596442811558215404594186821814643796954948817764769571642187604213507722845829913492895338555651381342172742371775664681750406606444977804251795726172220810429419715174166355429001861332276705209350910716047598686952913505485137254969465395825035207173491976719723914527996298528314456950636655009524009763227484388759908579940248297906460370219475998128311687042040005328902333987345101635219147441577734690285908407460086324069516595222907633900188806945360762436013764131814430664704001229429552658521928689162080159262059948071623068112952139617559699352279856946994851720771461857497261587672749214171198568227544421623287724285811473497745416735306801105597005983272534939441196067815946352140053889063184908601371851273759266403188927651325391304232570421357620623388569470538705896636742098869432716306003963866160226905403247006192006923446833497662814748277099024170504682970994641408606815508866235644758619285558449025058786159494580382270926149855909775011790134549472010205992567444399803065061670209859665116404250751644827262008044652045121684320206516156904329554333079959442090153936974123727412023002105123596831124931848571365460259797919059744372478267254243529768497781872651575961320031942259851650738383420804138305473566285175700955371629926593365687829619963467711466093433261534122672175490793540830199262605561982405205596988584339272826741500610432235850088520481763699208124913485856082047671277808692802160417578784748098437332823316687012343661415952975758251538281162162446773890260861246412694576067454150699136635971602909975904757336358183683555719183748399700468231537868890990626299254934302616214324300812104698574873432542411432105388878907396885422800367057345788308689040065056177417944208475389686440051410412561091783783317641330807117388381785993894391332491573331671898195352386355616036303662124667999663385736573382501991479654073350563633076413718364997227817855424969608603677068828822425002707029271630696853484844784755647020439679075022375421482563862281577156104232353516852431940702406892315515868502108135932126199541890894031884765435787100667630355309748804552445344170392696222375520632412606908718420512539926142497803550846212424649462236217080739884781290566760812375147014818539612328377405311248129188413537621473728463937069488621616723801504355107045408362827132352710341268981121802693624667434236638736425277824250311078805416422541579320336519077198973886022684891556322542789141798442543254837871031096320625633710875379129536846777287542571561027327014278127146480486540555312636508762155400993249215955292585372533484229804599252505090563316474414296369356566240857580814251682484952142356687659691077762316407206084833291975998113804465845409909993833368496252409211745246619306836785165517144297602930881654803760630582973060625753493191115227071854034750908435031433800699417358502517515909930420548521816474515212013396005928584377898622709971218338425628187051365393626671767652838053585217950714113753406203019968602581777729342059755458066556148941319146096859290392977341082273737290215589937110267134564898452779068704880657841372186849344501878383904613681574378396843690896233227970470926535659252002240342509108381199063542092655946947038925107734974071039710778283987327773871357814565766989655332075304071283429651986222101614531924774545077630213304625165234280401266078291026554080528720069361532289222427336625032997942282405515738114208801538479130947098805094115665811300939744312888884855769245354303717192630487377031956776540339166650930684311149286515388072889371676960438814672477805684875475670757275617345841065055140972715723879825023450457448613805497737269666194358721023072516309576022381532750874690454015458562856911592654744633046080871519717683858983553911811817058721532378459203997099003290143886376142316332292634830875818879692011039811274317565797456427941627463168526667669594935648786831542937456388307968026334851713198725893695570232112874560138400034233628763776572889859279325794945273995590439740460657670765346025313901221860005602014365013124427781401126976591600206341443953220720383042834187737281718602598044033667889500573597275015501617356665991414558165024673792148384077757628677768366048793559552014016202211324680558649370123418878533942666077599269298301776296037612933073858208627896997771107789886887899437660086642484148623929633974488083351889150152216079338228451554141529373756997568250385581740378677813315748657391753165852897477154954457192849984986663522428774436475249077682620638429595453342692765246807443766197873504227650076053973084981311365514383844448745274435753652674570211537793048308099568387222512724895605799451611696526053607232204022135240032217166191616437911695932640757526359432627176831153573274358963120601043937554180493139407026718756957623628386562832058964199897649752678255994580128852689513856377132243697223511934356368249249506486601374347903129587101937752786735086004999758476072354949885829882153073960536638587547230208789729239008194690410903627595440476726246294124059873422979197518660331059907705925323372848936395656305571541586589095834804319050871845237948606868579614253630417492378377760246386412447291055365124515709770813699001431582195471212002068716599031748622496622479290045313048485749638948476280583739689332884025327332572523848011313762304588415195849992757329027844615922008572441707257267696512772210152937389858251420183668391410985909815433420523016741984922189778397514329557083858204612906880618486677327786965919523602993758857500728975708014741224775402621535653931521216068904549169367131892749867891103749193657772023599639585271070410567009265679132791649248589394807830878139704561711483340077368542890617030632493611943992123872560870674172872820127703039564425336144548176598161053342410299234319826472854357642899370393351394321725582351339419776202463052167961540902690495464048206927596533534473695595517546613369740608286324917444970836957813784796061423716798400433127090222487356301272015273495729129957818626080555635874801862916827791378570655532666779328461029477963462313883973567739384297258130029481362467124144232347554911662826047065394617706438917459878538680113531770137942509476943194912399659851928344390763820680990125345855960369670183181283134401618483206321044509002708559084335459889196935677750093257672133265522966108371374665904224094127936068830013915794459000454615464608814556156952183295035813156476515092732133907343512845272185196550842463517112496223387104120872238205965363288672485608939712086348086129054753773208825562098398377880620795067190599403949287191529851750307607126192023272098899826605207808553473741463343489861717907904366073619893008294096093140165373485689458275516435137726804027707423765160943957802963711849700713733593484965983396472241460818397062461153929301816230986409513404493451924750380124483399781301922867140692076684344969516452067543667956688634440340330313748384390576772025208224980062741826559777481392604762364070344804875616945474853221321136636485168700172947019757283223689429235672098210019329190609499590196398092993408683864577085894679750810681156319221109775953233097500393379910625956730206432624610196282989922466168907131977876399085106678325252847588104234289560774348607006232217150593573123588773734321933168107137640888023859097161403167879157002134634974342269217489892135852283080563712983166142440202955131338193881785567293022381945049480770248982209323206403136881937570301988414085962514982105185646183644041059516998384408658080027190718519221991917628081546806262349082193877008347715441328863664100912138881706993156958102135873090443301427148744471778384298278316221288801145903123736523224656515529065030453234651191406417798713338646360104671095591353851691651486137168671566764065059821099415813644940138906638824335699091111871624977626967720190834237534373361009486025623583421303571992036628629934357023581907685214228914340892310271429824738046678544269218114990775775259504262481656586894013663123963547591397967743962628546550213248727378446955566596321682924404388024396736888339439223326232165008356911805597547014970665864921811150875837402547285310697335808151379397060768703236269112699642708424078531219594773323870293803056825382746436163747164571990895519683887357810989112124648188134492942229007854259598949373706742252785547007289364974486750470329209154897789549850163094379681215705292346255427777191489738025084502358354699214996168438671087792839368284199481788650233024840608150958758318836306077501516160165354847427346084965462002336403888288317661676006817193782636534881560595396037437284353510012087643892741110787235543089624894025203328724823189951066599329039054863194531522507604432033680879420931846690596707204223226089820916391666895298375789650119346545692335624282354519059464168169682685019054804644514822806813004382877411837126614964188419343804198465198214514605688149448222391798840903007402815293017614659783236784134441653575184710495006979667685003153467328669035922692298010693641609314736581348623825611337594937361632758475062978556324994490023864391435917756792949272314947709613552281914186612129194108321521635050599445781049095933496656200801399355972647422706122497566993081472784399854427871247458112489365790245586286978680467903747983547640430094561037996004890752561330882024269361616756103160757411359108252773619769251282925901341368482340504619778610043264956031379039164481986287233897195403165143286315365476406594769581623148442346429024916560261196872270724491037704336089724431994573374888144826762668397118999836265654006008215154969439049645853401913023309446018160450071008173700852379146475980314453702726927215428627631089323346855893562431199642373911400203517876251728623938397291094434286546634148492782938674422835362342211528163310831482383996220428835928509062448459704234682420849233777709535686382135980303591960336367292825306209197449904487877841089344384509249006369115333505659195892584246395815648431717057185067225431474321158452390377366361058063150242392612412076657294757559055029639502374624870400161975935432087839010078655224278603841437723597262198419775418189385561758337840622931666122469724642188586477424105275366512249550122642245305675268961780975660500079605892068679614982632791597841521060698752788369640608486392390372499784837953464292781593722588083638252497212054489151329074648689206211922793370081756964666663761708514605545495134087061957381608555804451232742485487287083880061496365981378185801154346791114525008015611186191263702500667022158815237670665136688946485412652282072367280677067704105940561908253717447035775712497786594792578450563102025483738614906524435183399742232660732048397503431186924384575333348631292737859383206428826799340952460039369273618929419990891182844968202061574946107733733780904285926114366168004560730214377325573822059356628337529351014525713140948730342021907515486194411205386882542358234820788497815413065147462683222954398437353664291861021961230525242740922924600768202215272644718953415607470200291987617251250754061799674965534857391009056617467872721426834005470740399585703152162773314784430961488054797242145408233576648239070592195398765598135293824305567930386648752698843825758478701582132735243135533565577624808852690886517181526539604491076205733394334060278828636891168330413259441817235138361818314951908178995722516446997326548908119505346300327330261743475401838207577534179052403298552069698894778898256993740932785218049603121564969598826385045613057447659682744354484977535708756000915957458484052385292228325949581737737293221981437543744329723607606604174864171539094572681792738667888423775969605342023584923447504801931050756794202319312539401812900037504292840344941617811623919524835354278057268692118896531897219174618298419502091215210186520259211274465365863101865305417076050639914388687499661340169280429920868344771278205585500076539719792314084547514918943565783919127690118386536908224023805350462276492427778633696004384487564539546203612597516594131518469576914386312064003567250135786167245288899889339347589740766353846243627525452909076546905060127773809637154729187954906981442475176721443504985548490938030562489857764723021886429313395056131372736477700743607899601723266323697908872101130193067351472480862336508041035578325659405540721685078064762867254161935120735700698076646258383703281597550829220152682670790077630901024875047423188389639986198433321297434428903922412931807676186966255556949008449288610535227359086985925844864310973108853765163931623755929428166038204021762198714090765099710136956200272862665973442262823065171559429836802923326641940575052928728212574269423368413413672349162469772110263456781384087579367482674386664769441686337527856943447916865305752747875059061239858695700493258914068159139805375853708142927635903182009387556671642940528508394159100095667314520842794104304532519159464722104082907831168496085138078013445023295853929646547942491387075036132375621709193731530544494112110710918228590713432460851306793645076386016267586492083223664411679842758447996084497501763655211391043661268134747208573921739547010615287286430193693431372012627431526684023529813653801757946363670183378603099095688333819904363063857354977789002566438974622131131068150540130887761228938184783098155292178408397271236509655580774032379570683645843307345787771569875209635413179191096632807122407376794447294819998022187274086640088598549291533668436225919928052532856982780173037333768955287651417211468037246291997245713307296184037947940763062465454719279689208107161407420402499412197285819322738033538275593314369873930832309678860021754922589953239161041912845922962319967690030009627060322922629998017534587501940689112487069567800396883815536381988157596787992691644100931964164215732950539295931001074904000854567721785250281626735333791688650564276381126241772790865523649067318527845437926478483425300494379744747828824394813268412768696088778633839736473248318034458771455935887211755260392395162063835965295913273363891211714788446046503736348429295664969374884238895640953350125403708964573357824699671160938120959496279732798504840075494519965807603957104005729409055703654452869409012746097564554513413425745075330353735192876795290827853259387969868125707356092493979996943452379411225219993924627178199577788980372836274903994534098560314089327961375616244074069179300075013337835764901770013081360267797331478212442370438522705072485100830357105987756036204871071680741117847577171719008273983702764640800072239223211758065082223768747644963520335782076685869195827346553851847125363306143089442808394027785641745414077324682729865746561601018526396308550525219031924312556468997270450845303201935607181222344674083490146344090303151686264551331376265839000870780950915154619546506703826550268680149843985192663987288885466947214694395251124061939698946226493872695657654315769642663039960047024651925848802408806181423165875008745980162810334840991467408671290817638024569757597085871531037371207691296607013143455102819883369430138507550636874673617222903641193249787943950679318822086378762861053940512446392324541996599559340440448711420338823304726415322518467959452152091308014296597942845284368765463500048505738988037497687506158247543129838965055886454501499793895698540088762892181074449533973818270476957801248330491772153214395454841640212032183810279497559449092228547523462666245657133360236898180660160313288051355538416914024443204720878178375957464810560077991146016767458865026871123902929894908960273260166650469232943926871230666628861258091126752552002639198669341515711128744148053959316574109372607623802255277883678369805399981374328945102729129731271575317601705494432032724022583581292308178129760951260078143716699279108530793506183051399791737666555018600045392126055417849699013172554835604091527010808016128051390742612012982048181831876230824018674330192375247469046330578112866924207561951904385103277424665830783656370275288096408128629190979309089391109809301421514601055342893545533349489051374461892832466191697056419468367599846537910436257392248613388724131780546053869859228085077278712241024846645318012097334064083707448100360000372893965956354031940276291484117180019155865762346696856895563959843979332460339624062271860500676260852714683863161569132428094148729029127470962742116178710381628343309336675208443601832728090893752405892527937845202752291774937389012352603656015063459322325958543119600486406071706102343167209729288256812593233742825097051874239696343467269754996406550278474344590190942313672665703890863155977904808057600697577233125690556496662625495834450716716071237618202232120153697425393150796953153091970681685415460271345833322840096150675386968806645322184840529523818712551280817756141505380635570329234787477061475999801116841889431838664908421652193248243912092514572095281773099716949817291614247504177160606814647165199560703504929739490369431382664957816576584323377145374424558862218546879740111522126123288525192319964121749258684069834185959065142551731248615538775780978206307512764616184486670068016691316277595110718959839248020064271681128413894058802012312472234941231877345361642824086711767278885367007791534443186983204631732368448575616813662196328691701635799870030515958182131265715205555320165742656959334864776991011892562644294199346028946781595880076910209251524227385406110150494233775112877179746612237907900673585450515225445596596339521415623041682796330546579853002825834267513597177270421958049577289649831420119601624052397507697108199108553086045464664899565396725454143230781670487795712718408717987907121709136279223450615835365568841354952133874266296700577291237716636058117813638092062210532154741575296103135558928814009059927295848036857400216197365696731773441646576292902869808255698235006167549074292637757308218363876108264759817922990485842659133357210687520762184555690520805156513838831853375859068594035215904287517529062602994691139575928300766655703583851970803626790007507004639314477702904636164855649041068449383986345597124137256009228584822189399273043086774255779455839470397907528409134089671433481433137892042391067336336085671539833472633512623840443693284477239397902985341551805767946107492451140731991656561207133759627087600889337392756919389031589582521247162469940107135483392636012687746134530572835605137912936267823959232766762256580878080370775809979606359414827427881440083302718432132178517971125017806073210813533007854460057352204860339442745573498914972780521516998691939895841665007165462234282936141351775719867297391347230401958912710417723129825419723438535912950320356557418285348123592203982182322143765138501825705872165006013313175765473607493585915132814408598118159592240983843145218986499366483801337718211313650954723711735738600647518789894677961249993368205402866304477726106082526998922977243573748348943518557153426417141865150108744311968466839767465790795195371193977757518245506213884983190067357982506012709635217434739437814433730152610608729787468412927737965856896927422403888737551710940429805371429547954774849046721829969761747408634501100963613392834445390622530708239788729125075402961659793126941275084790657869016884725103100918992986690694949559233528987491260483541318314232250865731116733738571593106008808648840259717972216782635917882137123891827170873577373367402281918305871955165194239269865967433865692963261151280110854004630098793825269745940396037505023342809807718973110758665642621964197937169150408615350097150992050980434740576977026311093824951830497051575297704114811381447372263443557248117306002091468138311354372206359145530912627524940636924255731280415451934404221360048009438553759945118913244596165120456759331561322896770302807310299799149281852628590484706413899443882798020524062859241468051316410154263510338879197136639837505692482207293743897313973205305167251566074920278779486489815946054338855319330140687144561905265555298344155039714221193924191037655517258521083601395869585986141864072324654741889461698251446796756704961505695814846435643357762782226589760289118584787347614978783860676204044305111346635535412327868106814904874700977948937749031573023116290801384105009548949616403367478622777184084545919826221038752174333462379869467438058903870322185827385064351301195619825321861440302719348166683309211205109768052015284014074426304224159535286751481128127020967338121110116812356540263276528755221010514267193882357766071058595989055973765317538886792595199225675392885683913114047996821494832490745707301356013194864515797647254656658124190652202978503225187160283893187401188435860430543432392073422233187418568876996051204984193649743941800371712761408218979574530886557626782622835755997503493732042300106066341093557871249551071481777756190364099349342171549694029207386564824835882196073792841319485875439121388347178145174472817322270848452515177871079223276726631134686715739227100230507537940761315087644254923541682818350722534655481027781485032475142380627065018554263582662355408488264710912692327052569157175125685166493661843695135834124444617695248160728895443121888892850748950939967816168469523748017003392010397987574852750096222773257043969286406782210586075255767687055974405572056876661510822614616801194198540376543835421689490109550392041651263240625215360747678957457545308284599393305869346402585008828772320769714200227046913709814906902286185357485531532390488452878294548983884762478039291402103630458771838439503415681308666074997317582600448639956286000427498416783020764585896494106261764491778944173816269593569039221573179875685127734114998166770330424213283355064199789304362628444977528303883527435334148733315530669404171593438472276158987378830048794549129112999615318469323014406320902820663689418088918444225756111927066309548712939750157342183980164753399956164206341637282775195243666723507142745959323580968868931376924061717242628037792312403313799720669294663972005681997311204881929804628989362572443300197499468809653214047992595147051288231828904766286388406593719131025840717984605044449680784154722348711706193141495163814172782929905773632512739443358248558068994694765204863003415623110111651287657096074495230659443047097284597965338132366905359901152401175990987701058205187350942463192058107796032460144368563924338687979139644999116172711174921819427369120231653895287153167533389220247464464991193645499751501863754896039813014632697377062768278585597154394301583088963279918461035421224140198931654500717135605650797205499551102111518503655542587946882227348180236602276074030665698110163629863031126309887970315177563578390440244264173248894015507158325928229348892397889062115329161505298357847383468728162907507729056232777618578616844168858919828454890227203891579118790479233882310935950544160610017704384373618886944804023419275814789350813067098658476342433985200914790505913452871876179927137578620475012294161793121872516854511849718952427430739182138093497947110957694007732878897316936761726428760836004706580981551809524858521560346374401576093345922749921109648125803616287317452052722846148276889888034839533367781718469378171259285263210882689717981422734274542603285166828515265578362800085231449791681958354052983145231244833183345177894462540758432795402781861857210989747713510075712563983268735373422685010762808520883079361528757525976310255592573009672985125277557165723110585810085611203619353101557463279518561804028562280225780355495644835941202529134792635261673800204324943921608407792846391313382188452922609194417140445371629464306995841214436171793533012581373053422799624006761668550950037790433715926085471258840976437377640325687563373264252059415090458522826438630375673801576951844249506432990999193100023364198068785185036037286815949914948452582518805510363881361604236266242558946381428753802620859423079287339749492166480728734949688290297422890479311594114631115142861918482401145470183413542358881783675213919422034764494212401715446426428855863932213387036013751618853506269663498500221338594384022468499409308838157844484305057528498644211296372169937522319390575316010920220010764444036500686877955633833719450157307011959629177441490682956070502338353210215196844365983764337202354460113096747878032327298716034910366797511598502431154111713616856129981878007472383570957686284676646499684282611443218317202976035252626561868011699711451491830216472176073338646640168915036530715635407762495268522716642165485617368706362254250123093485214709506032866928960682162233332561163604744996544473902717071799836177494809725899661238334177814535026146878107296259533263901184332071491265013714331239246629397025700463366174084081570182624750561444174879224655134282018580933066381255928013171571593311018808076798207390955512877974207333689940857626768276059192648932009805037365870654947594254508807466150584917587460069436813685472874652514498714977476605678226031082826534297323600970629397463821980958939974458621854063445422959615047010769252129954822138995826949300931174363953191127195070686358404203189511764968094561441288707732196798952161632506030431468633183708323656505726724009231038567846358320667349441173469446150972906896730478605266228036987470813520524319110014976637444224529225514264139214197934557676981844125672928726898951975225481864158038103055458823655550456895781081981582704748324166872567550922070930406896993519057189463268328083796652273083703881698974885831979017139686385565514318848932381747193155110522256003104552681153634319682201876806901994923540181008300889181932756629662814384066476068640411789763429237441542734821284032967628605039107058956441945735272075817597350522889182935963977379224619673718202747901710016061338328437778051718864525809142667732321592231999925749805841872722335536584826509847248330255574571649993063735575199819177806100950521090187445305927993429855924906894396329618260957245908249297801923601155030810974828154876248713007827977245742243900638815627902772458209181952018278509921225748766098377155893366225583859566364496089008510592919793404742452263147641841790325745395593825431800096900615540772165407595366732541470568552740910077940350936581624876359906369756629257997049304008645994345414215090744573910186070224761651575565647539745778334956704400040351033661971315283102102321965605700562073635326549828501478989765515860763329765658056663021163967453916044869446925680500043889148366475409845772098602946731159916710448717582553404412382526383526556621703590459343515298933329655341384271953103685238941196425741355461911628257134442809148079194324761397690820543610676859530892112332990207276615149005427570775845410693946943964835381916759487049697239185643744963315331386796830531978989380843459859708460434237394554293750101769522240209446186883600164384491466946841034249624194277363871527937666075962464661679136938473531557475000831145021447219942718148514946621032640291604057959889631873187760489056672441058053358523366373994453903199784801158125582930388646002553894103316760049353922198716204478113109215346447251368549296195610336737196345264674826025600693706828585049515841579857733543841773936118898919453436277480710120022939171714599777037772252625360863279073010897225540039528566451721930939553692816045591982514113208494830191776920407523025065779219565431843767498256717201024994602711645546706547166320452493221340533958007096327457223901115653867231393902387180143415635730045762287450557777025847268182376711596565075448990490097187017831574006238803707480098926314441816434410354975456005378483157470232054043811530654083890063409385863216258397290342225174967171654400426255240829327100787463211791189289287290404096686181473527650978448075411475303368817815804029914314596801299763141311756371366368398627228031673498285991672301610329197031347312297898355749719063047178597627815232875007544974470151855181185453555051958738951440919963828142298834521644151030314524419681883885638088382693575496456008534606547558888435201041652274809221355451597263876562506088776401428649814529684001912974158617431723119801808736649832528330386980894948069512607006996272261056718550829267006451537942555608894293342888596267806104160509438602880784838529221900965335256988413765445751638061322001083352506410036776758371717986397236901861494411317070651497197826529695196831511844733268794993317804690099351040005106853000004513863810279342388083901780199742875657069960710505769324726391032557225420460456090336548383036685000281267482810771888238245143494227234906660223557487934677805345108921929937092965660952803238371442934077097835948434051970262399329840055877414827184343952777895233475097015600890871198264057325046949384582106525228811330884544117900937606017260099062933135750050202781897838743979428814816266282944449205239461693416137465991828268903678425393897375087175823683305295086526741470147547094648971760671701958499020900945552680179228152572726210981121539955100143735381893237273978277453519535020038083685489574534796407088972442512110012809916043814784014074388388703962579836052762044850489521767191578292006470028710359613711302211527164100447606702905258081593657982213150448588536066471697692375378495723510931628824555729338877363729004649600826608847290928324761866989110512940662324371040215109105606138485323197957478067179406246510393605730758166693027742143330979614593595191476973054164184555960296565046809676615288110217766128058949194861632540451474907526527093610078245844568403724664015959517317980746419952097915011486483414958585371723853432586912017147343424609450579418963096190434616550372966148960743974393263914944777703949533264132402670991971453344533064181975105598028618727848975758913874800488415227218865464781962927733074197858462686961461813949837796622896131144607712585262050812768297054637322447952483957421545141465446529038682600141993167315615042138564313093767259508316608741534672280083736805662535023726283012542986790698281486713963012700933091139546010987100740646239771225168462251436933299720675763586686451867231776988987351809287049351544277079587685599388936502491443711587669604140134304556530431800503764356145780395741916214931576662775175016620243954180952966583015024457727005812414332530790931422802585470014362441859286910566436890688226655844924787047191406977337065436092478512529697177098712620738222278820940428430686910299517363572061748625977551414481147981417051830070187020655613662582576033459439148176827069010293278752833015199130939334312334608279830304348055960839562033969788783596003327394875544075275449412394952670779017562141815225671059323742325528666960560994552806457421484574439576417459741954604621821657118647388800989675168803728890939880512525285533697111065534222301519056006591413898835673375665505836697653073935189386384674054009451349744253299798098855555456952145622402340343328461576767322957581534634294399520091993020151268120243809856206731935178671716560871552336789594683432802211553393024642408172004382556480022602950158773925050089930561871194967871749270770811709258513482507053493290714702687810605448930239249211405090179251988055649078307599804918438556229246298158573882557017755442505970099688310697084718738429055122010724299298091029745466874508447837566245391331398649189967746887766027129868059162655979584061124354282736661163487774206256988985142555700812758830259271905524755855103992637799818750312442182030404163648813450986564591499806445059505472854823054990280860461024641139979967215354625966615213879243869411098151263887861588948521315023924961751181667696958989800683850683960329711780369428426163707153436607086297317334271660551575643152400212901878420664285680969658172405004282919341789242407467993431054311754707233183939316836624796560007225290411063771838258607358914741828044095954826158521800444072453523293186459187555220263916244897557321735782175835251744016111841814350863591086401394618608738782136004818383378644160432537335392832320817287246778692958516335778849366476205559180925753553172157135960046024917881966685618891275662920084709953943468247690103086330161510176276475313928524381098484862834144447665527888472714562780374874966943812837210233814226458805519007340877963572824376732642188334093500273218425833355574784686717288862062736616557919003622097271708523849969850403160796787605866927256094919405948150659170172285159669108372606566093287770378025383371223897209248563969150871714113534073100425922269273169022563682384635038995793405695107519297413361588608741327793072064471004949820758903875714484150858814789932896554954233805412313007100153873618381996171500048422414339833310667437799064912789125123077024929818759118409006201194098734737073925416759339007835676619204368243751529566326084831516850602925617557809472934773050050443162400836923774685575531788000288403300774065321718990124538616776677433137431581075148678506547673698487355946189364645060294104567392564766217213610358188634478835529530143990441897312989367678789204786005678975229204875962519254075073497533224372175701946849677308337278078665249009025789566591530685421967576953008589976701250752788275476686778605465072377241069685624565074496208497134007959181310693171337416570747986923811793262471716050060995191017173513163523733834351654667104125111163871916962590150596377521656566150451120430075948356484486766338072570434922977021467086361325664615417399241421116606436495652366612710977376190359325492060754568186956369133291514249493721770318780155957753267095225740466229626484640856241647621986278235235975462992725752529404373643959549419028884460531851111992307068817754583982949147999825787654850093155963821794279192528942613041688625004142166568745440356640277485874025637483443766722316203624845295227489117975542456792425179007964611057292563623811500892996613202768146049164064137071290961526113015400264654985388032053115125262803011720505435155396021809448098659518472316063503922710042566291412654950787223108295063707229145055591384448817813906071751104130180049670875409706699393063427282866092870103153293422751007333808538781717664344925179770622454408298510122057108484246277178857740037225647697868303953384500221094650938263379499370147203520217157979353718133690212385360095716628310709247195324026857688164565879699106812763767617338036069382887620874494601015284109515132932821476839441585021845863688643725074762362162822476754212165444772984366837165620658522149138068787202528095521078446416293937359099277723012969245639038882781629927238421668783426202978721088945950450564492449692939310831279710301564791447534410876089123377804295055065493391660773012964054025303986029614334739211093627345127785803621015478100708206397778657009014731677645775664332104901075177753178294804197981743354538845608436160855499143998172244205274436700586776391400583430748207885352503333740403239829352305120643680080265739423832157960950396762935201647942420789090551077173036607484906855890509679869053882013910614062433785022171009380763033707978203885867229221900763826099484632527624768202654990563683793577628688055264898621973989047670634234614481148996073145194686747712594669770493438586561564249885601082603466082789492509119449442484898201820928271689712318607184980881538267986348669448833733006249043204559459191689884158972245106443039859691956557755752718791130565901459894588809502218465188356471763270502650808127442652337979379696816030432810617984046340047314923267528685931625135229748433453309179297849461891618989398684838637489735563144624417209257025471604920574356840589840871964326771498092463241297588395480075589156536245537587192248558764850737936762251656512084844176797437846863775214143221551846342121855820143808161257674343757796210374987547351492421979891740999599137804836607275672430199320488200766367126017291996234286851319468892466738510459049094014970773799020408688156380177499306501502798719498621618677653427511603398690547021855479955514538259158245768975452304366402830924295177522413181573259138920602836286460436227816814604866464303874847550803772065991041320746704596905899282558075887457758628775700743884030678203537611107149760873879576721198538835132438170121034922897591442539768359331363265753826498659054333907777947665474764244159914729402102462922706767297613741008979796934614018969400984640293939380187316453530007744670600782503690512132044927524807408031584511794629330884048252153643389979743406515709758330121246639827190780691557765313132451958053729023177244754801464518437434765933687906781368405197711727062171838977486114832452459194142956617181874681725320577050724646746655986425933783076558760247660070077977939548460353161797879937172841641989075203367198243324884147748287204488774316686989845921142042713125487742483258015045966622863692935308484724711848461344077390183773514519302979300388546435242683780983019855082831563634465195733536068444123383506951898709844128588950792082891009853540661801157704529224139559861736833225497147214865284433363197160594302848843533574446100256203483526075502305945466443617100712795269916246461803490806738332992908130719845314463827540655718695157065125244910344450583269867214112060817066357163092215551579826939731274068552773770109237751227918018444555753723745293995380633230978848525505836675677389454496606670082867685947322896720362621695236302244846428244268724506571806840368889380413074473916327034961722120171226667744142039833755275783356080341416469257075501275755427910257843847214057450148727359263349768801814387797554664267711137822762044907768849868754368775875919168167737829009959487635986434397737245625269264411054699721504445925808255694496161635318558395878715853185248607280093241483446789485495890395775715714595386285491441602601853430198471365572487583221595368704968684827009007948793891560239194728138783955555362870841007478702121926494555377765098950892314316547442011546559392461447105845460500030620728396726113956420478174408698635357277854997022600179615722539551916179880735327498029690496358132130118110454767376513305003050338904020490099998465416666002176072756657545572761161388186263031255534932704230009737678509884241679209434162940712179627527887278610299727187475666474107970758442478899942462972740345038406567133935781073439442135203956849777357512150356185743989961139530882234201106669981454099673982752058514681784935511640045202492043614481741597858961555599342492892172185662345624076577546180184896085453003694329491702763433311324767021657614817896049719244333840516567740440973850765219385760890810621391159617922950292099697616373312602387853903522154294101310694622229434698639736715582616442151244921105432302376618478053160986930912664806093816356874023063811924728618575187496828448177929450111171832257184916443100252632642937495118393170744009410905837418776437440451024135378519336604020518814326336882920956429983748457041624966185119359266234122191518530560226226079466615736032182025154225142457418025871868019452502191906134653877194634759171721894311546761814016868384158625213966227225730402126439088177914886706700113907938587528133518847782795005965894143981217007620084377548629341210854684634236888855201306702325372610952077506595957120385449672408563547146879894060225153492273208054596276669556720342410248608302511560850709141155826154491679254926507081555438883106659479402296717601010878872980102828152980796313166041567554249471211393046273720617104776892500027114118906300805632573311191728054487927166647187079296525179211378529374723078090452917485997202331241488267122177408369666835357290768395189177999921633588197697094792195743551772868668131549008416842665166845793470530153937090887407906671508372233404623038863586163657213495317307270855421784561856044657166319399016281922983267826711903807614955267428511109123872251666873985013315623555730280660302311886403187423461827367320150446742707687908652782141936247273809522571681718877586419421019602747266548639394315721737129919060659970522897747489087966334377013705070422403547354325588837534179787854091219114461142757693546201441895531049861884260217237195293059683693437375906920357199123494083470947308654783317093939126609994730153899727617835132011369288436134496992539763147516873992057765398041157796465789276648198765363602104904925062394166225687243261678111302186575849726574806288498871453299391972758104748516524407797980448931108443540314621252260823547363220322185780097313415607541340797699198885041926076939754205957234560950324284624921696437604357193772309704776803226511854505684942911476969086323733351590355794187807056405185901301618436064316951464694559196190246293495579577044254586758703860894307268052876787675473332580327207071720790416635458587386359903520847912391898152282034866338638373367032126024395184584295681056268804445119084040967150474203730567549165513308317344468834629551382509395490794477303968634440329092815909390409152438296800456974751473768611308476707612617509834879730906166485407536970870371816716063397885509544405895464729939227591932147246595449703292948540975554171945903866146826371314243923484612011249010126605916162914332522784824335293018844643696844379886920778859596408299570373698659985313191466603429789854695137754909645987387090502771038803545737124689960767065037604325881925140677247284161896351221354479766333618015164445745425213378876167522023234149129015999687177835097110917404017998299417861235196406539610741614877154125208905193247624393262238696479531241556429300463030694905193557825643738532689366365561531622688256545528217811929249280053574738188666339089649415335430425609087972833872777530117025559448251669831309852817000705287944662999535487210613793804900663201798328249353024647112063633705133779697758303309055211147759714602628180890618173064559312997113546128211674561372787567126583933935263035268895363677058614257478616764550814320450369610224999126756811492371773921106775586698451582711788917283750391939523386971687147310744777376696792425395671215980881080347771216839790410614137640351139887146641513944832120934151537554998325840514371065946588073560597241836555706973319334504928258091523531817576207148716934466209435459668067007093084432997589255122194908269326171303524309483704205006835577372462678469249996011804144504051601544660162135331333923515080083934055930830062439860491831797143105286547446535288050664644171279300667078669003936996470511696430580283712110427827551519276943311185043117774992664499290165459027314646227766238743258894460902224161016590402308839327771933285337867438979258284758098261344053976727609662563748061167081918178498627084730350153731343765526954333734081008213040497051160939430237629402640212395305902065368825910463048444899250106875921269791223267720591458798902797937850760059927861103703369179644370054869928805084423668799114527502459286391304448038781393265765392940245292218153034518448096642901010922259550301746209709910360214500426030294695043305687441243735030358983303856528382531000545871003565385129703342038718846585810797457222986232821269638248518654131922029067830885068637796748072626561495496620195599618403102133859736369893627770735731460531540967110543771661624160718941744263525016528147301819579085973398221984996124140614067806909846557948505252777429877327394069694929241744990169961883555817689576832168627599364428382468789092081981935019659638908846532471433876955788717085355828790240003536781773068259435664463666630469752427624024960153165429906425159501040448631732569106696962819843570742621038321911726554508929329950904230712263904074758307938389999275174022301951236714357271798021272903119272469637303445578472181199794392268231576897528231150782772934022697987037009226677382327316602646720317984565672569796170251837924046117638003123780116381637168648582403308156685324829020699108213686822442019968286852244106972754660043057511690584541944587590115483557826080188599816003412540544185833680012713686915517728434702667246156918308022160982641513052318252286395847287492288700883880600237782587343247384825618694310498168474193400942981419341458674550669272939614959188408874887767085303403327708800111424903860464793348228497041217207354346316743060840452097343599979276961428643635105299161844799116768344430746567280035029173351682726868997552442527005543680652809345122682867958975891957209740149243884906782864949236752306055165998356383885052477279380424789014516527122127519603672872369554803585029339388630613554857487371118373530889606333880283772338701840191404379012028828262762643393354682327315439639818140262098097363903694841171882750957511456095786945171003744171473432693438472317789287605477516651969573414468688103106475895324474290346536741988586576638360509415602848087901970700932948690913452492305833384185449014363644044455059475054495613142404250487912009425318673063300377019455312084711431943238500586929346834310516410392313417782052915389699930847592733370318304615285172124645492082701527295600744883009566896855606257651265207989215961741773874512600135338496219546522177051708768744617175604341173811233011443591692860000623442224499730875416723416665588037874201563242298755364604573145966618703256935515231279774398336899408352485594191022117449817858137157589884384236203466855563232125365020159674800407802631118960878343447505136416230169862635837679037312461585366656369160207834280063096536371384280550632031075265126307324651674218692169244600174900601685673461163329064019716210292877304420641454740886180164816908073541352702628376169772990330278904485372532410974182480284953612591135535945998364835702153301924903029220807342578102964899905613221588731730957349381454616388583836914948116294147529271547376703219691887449632827920606388320521914274954286860185047972653973478353399226569546247775772242494347327640206001082815813133546073955683692818601402797454067847478679209209688351901667411088060862581474402087827501321565454423749780193701122703679127422430540280656354016677949008000959529597713828639622734896797362033701984458213554387752509639078152829549271737931102241006615663304067114786688810004533551208905300643920288427703865398464090161087426202285058068069300460176852955025016197867054019531986933519883940388610579527188431322889325334159404460830803001213111710524576983619603328387470370263712479319780578083745663431563077635538708530085224264904602987518135072875500469615352033258970280247015499937319876322488952769478361895300858263395097622071581103641284918887736990231385309230844928449745297178784647699084195542857956746568914054019555118739143572282210606210072341260016553403848257570103781014648237629523597986247479885613326468179027304495671901832799323070899121711885168073073996985487058896680289571096992787044413991089941611709778386493755913717826361476125728757530072956239631203819643627665408264092727702371563521908592565718167632349658160947575461023211724501128121071715468879994638849329250364927914539429880411135303593706236101272667675526003827268765838358102085524341303717298875445797756375226983207446115501111558197045257799425548063696146471256821876550596600771121054156694846434993880077987927769290286168340346010352834611696559625428753090513890165906896181511700485085527371329779628905529076630410329209634840076809562808678222878030314121651344990046497638790726518835479935316772621884166368159265154074460727262281280761119856311412624652390520323223962296945924438392427202998838919810898746893589199975226599750443480162940054653721419354739004400750477616284022167553399499722973555790463058472306963036965356352375357622194772910048649536826553285867879262508841043735427410469047796281374105936092401395428674970484104727559607559550419111313284213586240925919758388325115232724179997944853932606741632290116248264580609853058947906031576964840760312006636745648948807451742756560038822155998285447443265253149686877568171853660945281018415135976831044450006256906178281005037186417545972585644313665800631368906992202226440330177168816774983815884490665419561391721487080344612968035553098170177561679452284183786313932235394545822835295742102973879971087113104743489754164795336154073761890184071408665837505924534381842686704198881196240792116988998201691372822805217401980873543788180139233176230161393496331220873582894993813104262909613447596674829146538621909588901098894809948181106572977076764004173663922428595794250754691885267064824603326818614919128887731378356881765325149454501334838876410007334544753078586217425104663462934397826916054646054687619742198181549736290222137008378379810359090420304614717275306598941238187232371191630092710009078165234324189301053686424121461062197240237308564198830096696862306778419558637000957029146277725348146640651101778640525301377292349540117944183016610862895358154353049395578493383259264263895170493521693017388022868938022492446096795976966118493991397063522317094314987598711371680269796643167636618101152835185126044119590076232113815187480300610266408513079319837977719519652901326457360871905771574938973408400440218079499176232001590954625950500019822821509096552323411744329397340412315078171141414135806359794058589406170491498322521650712520147654741425529485404391847668380952983376900043537883520961142306628198327870141204925608905855736620633722241690764681012886318706848745817408790681485800368416022748735027175176732476194760140395594394046511233660559255983331838345956808716870490269944564723315242787067222899796939902473584305409341859355265409231535446447098034611865082716231412930671176636618510939816753624075166964888538039508895676239422131661298434744716852759789438249209789518984784061033798653268009606775815283252314662362884795494405881994345622517837980154311619222904047409462651564971312813942586576748370004416817606098934565326505770196904058746574319903281963579683890662286147541318637422810927180641039032916768145678011839766872789972222233608120882199129039383056210899601142305791416583838754117751059536347468183581105513295153703786760630156910146256584503096529182071980604543938703127306542306385882588513166777694430632136914569337926784493139557687987786509739762217495593145841918884017507162382286241467476755375522087330890182908074529682946340221826334854738805602139295918386378497896882556933838303035382271755027789624299319624822613490305775059061313173929204636097735888679368877105313516695405922233299656364463402951616711076125080788644792760747749944312614285355076076317094114509047372668469197589819140485120132775851187506035718407060367456094159911162606064848189779704711478013026812252536823437080947147941782411282494629012973330052588653156399706994505737236248802322472458516909150573452513535441163115697820536427816584232725283449091500896978452608220616267678826433933812927880872999514315016014593202853987743954544909547531729579935023915336455819310658161603587174692605021638213012526823180340420816638652323070955635622391384550719252244266866330553395772426102616482010452538701492744205604313653308066570197203318462404085855838350728415580153440698350820260847720849445663442407201683217670070865269415842170639755360509568185275864853406775681919193140114730446430340257054704108700395787918827289788440872678534616240993564067618432658081744898902477567143005740020781440864996081664544772565038624417388003949153576992797663805418318893587074304771163814068756851153858737616360242440761933622509472936488579438182502300411860465412378882732998102498230327771722927054393686287433037915711072977081603339822461603698922290758697784224556296387040532504181406304310512659173997859949116885071400394939417990442692153818828078439349801568518795674443790270598710735540614398004007761137476237115260784361456728263867072818054558480815584350524195098805937681143207826390437358229344221928142474219956473559581496036961727148055014320379004736664190673308807100514054294555207682632823903414729813391805703231268150645595123886689307502803522213511273519309432588547461165677186913920716931729532265861057993822464590015156571724600977850688871637744428575455930315616488959114746488761820803505352249757469809774311563201120531659511545383976798115344700521901447210767990557284110466108473641921759607607001593029271097397820838610692201813369135213576315016174158530995136025410932735747881023032859861664496626830521615820857677003862860349570478674344963558820803551554217996240491180953497864763429708702949213438551077518560993527073642223143968981854715513263288392781116076852613907233557357318535135363243020823535627879147962086783199259224039924286155002324516034129155732767546147232908105586118454349048444470094943029474881693171146367632400377236697762866745622239898791191709376435001484148100055392897566605837767105075490165890782777133474636895975420172493808494123500321332828282879293016461999683769659417914919895735117019508487974345669006741906553167577390644943862584094703025388756091033937612699759328498940371224425406636435562511720146024691428644108942020912327430584509162868037058251683987079450040252720122645098309203930288503392145664663486604566183859972991007033072766808078786656144039317016277440494962978212706025240503768522811810869841386795191762560738264467359636107735608662965154949877992924741186793477049416455066038883403555746819921383905700321226947873808820249424653398808601385513180207244970181355062066607735065892160872145423937743806278570640373832440957084777313557565665115463978551979858608574764857369618000465616453876138956961251121144084244777095159829626119461007100491451942352611868487119440161412423660705527070909572153872279774496777895335929552257767289415814215743775320021676092331421141307561845680749070242561495275229975715013044355192159670209451890685510794612856217023658264024764163061499356237938812405249369016960664664174938426067921397015577926426980042661480232642510029500222800189794350198135221542992823880225466959072268869796781260828006683242071897960691421264067786776287465847905321786623385293150820565045687133175698268309668419632155637310467517179851659993348506832593794587681346303173240262133543099867321308523680031441158909266761888931067120040586826846612472795871593741996267835366750632813047097820255400340185627670572911985294682881721786379017879544849078250215371006953532908343846049659815215244935201731916772977418322343754688127668404148138589151894266373606617287320971385707297848715402855037692327000327670250862447195750916038456597536388551335166690788317729836789231984837261434298880811224596270657166213444974553541970882816610297190416197730318290047845060125735516586783135053886374489181277865852260774872386921014010267943688345441427178018833656179253747065544516576351718976195458640571608038054417054024410007447718626787635998818288500185594937529949145132213483283755392711217363519832204319496183058886665221923503434883008619222508586929251337327925511166093974148133215507771187233961473913546898850987955265185755972409752285881118260794289863704916807110046520582472114800588873773945391634041127738223629645425910665851733005870877012882991781559326218406126311922859839619552478925201067724401321584729550526490757155371839548032239652462458581523358086437141091078790988235209130584260149571801651491084318387702719082877601257480081986108703240621356782079597108959705806133492787029365402753560741763112751607009821169050038500829531026765889983651004045360304259516331568305462383045459781952960525231695518058190314620061346171801341148353975142907564960529863391673204459918737653941335952305560293684769211082995707185309668319849270461262763466414621294068350145786536770330940753813551840704448387073446931140648155183027247498131913086775115523995156169817326427903566419846538644399970036026275582617034111834771140461382614962627510287040366266500537308904657094821660905922503781183399830427770116566809244933849290933803511917957953175381807186693488147685837460270563138934629823388257051719240180486146677576710556714255631589470120913195342101099660911311626433141567335663917020845806599278292603837562964145791971567392022247529639409851220063852466494855779063547401110882689319433947952320905489231501039508876040344126463068418978436315454311689092413017589639811085922767839318986195833355823072069740341249573276567873844701644986971270837617296099324089169523532459752867595117388383617578676817485256933652557332393842035602595654175053686248032321306747228464000402365457581277146020517786778383182914227884178862131302581025740036645421435106405876756674905949459200881397605013159975301162764124201106668152460345373182919283469710533222753056984914034742488667481620632926035515931017303268642297140020722438590245080549714188690407137691443949413042684078547852330096293222004428944673188000748318189630181868132118999482400253469564590505867590286802698921933897002745617881516432437897597847623947203779230100795337667906005718838544693255052927222864489783942591657486030811685508169448690898214093511398556196282969239276847491761300718858194901338696383943876035703045141601391907655221016462483476130510821174758068287322958714778911370399880338130311109379014379805706788425742912971061012272203113145307111751603930593809408514302207024072586294372484416956521582539059653713453427410935047296491529115619925995705717429774000297366352540379861415673205441542818714785157317827658541607093152062891436250968231753648311415400078999142116906683612190025224323802829670279977908460230352004473782472542796896319095408884283775101193902177297985195426351350401164815608578076869306875901248905103794044387964579185320446365767644779156489934291797925449007943437170163262042421189894176227410667381811530014623646233423229925188995916292489668653641706716020723981960777057682007518052274094807050789632167272875749737401883285347140323258762608979219445293750010292454711829800862805432950422026602483818633451058285582475860303492172676950692023330611441133985274480186430042398245294028387445777696022211167491821375101851133235061055673735105335618186188579957938833956276168222519111290455489437007847894894751820096098301177536292155688358350359862175173757126529167793188251295341175724215956018598258142878526938041420617440908991007434098338099120703800243290475355939704216882055205692327715545902207755323201731883626002749039345783793093291688981020201429014324029552436494439234516439903933820736191280047898682317754585333317474867226210958301040603013105631701037506631803322152072233033431694557041674517520483930510689590256119002767773377608671946867609667580592586906567133352490486528373923789446608418755657114708555392323101894630202263115335851928456896845606987581164226436259345652623087389977105327038188854789412972757468766391672363640691289050351877375899598276981000169032351381652133102444143126862261675665781246429762664589302870354754457627777071140692253808575043844026711797364674394207202434414733137157820478820085674498092881745631451249986699306465799349533989221131071298156997038268006414291757672716369483383488743897134484841652653724353765422460275373424682461252280412696847909653424332296474410458988279937769188225912447945613854925408937706981572948837848069974996433114215348442216995636694228227519850966344594134759272620103709299418545372016794100239912738167756633152053890752868410362493137471020952945561465474831340088433678736644064065775205158917864629366250762113534011124515993386181669864586585277189025020311029061048254187907811104664246207864197674748298790797941121628553024808230957487769281567284771519762474558614698091840518732167943720530425337873704682392403968020655028691720675399486300294639840767484623417977836466097918329119800547166399289332708561860371506711496951709410444178941761354454070404240549422796540954961821996645365401527878387567384010021641296151923727010681832310116416469506717515448911674999184032045113228173937053170991116604751159535750554991551864347191162557736032166734851050081498953288035574994414430653550313488242247836132775217537077593941355068407203778056965271597151058319521306801247531582570011101073753690492457709695317288532281127329706025336517659553784549485582934168737691657952070627732323258149139640550061685263064968828327589461203552761397395528636829860559096915312726141099924258548393023282009111886070024487049252220197316040343088087825314299559543683227063532932899617773792322554954166669521773788677601769862949848262559295525603775685370203159574793491729743900693691050780354061431336834278255428422369405325238445057113001107622404761254393398993698965833702078728931416639293213063469923722913085057209594000758296576803128073761240195116030692102056612367047331371666195569943080925928429473024151584280416151533668693221957790660660981222143051939298507693877627780936402420069999879287294674551189479016101174936133046506328436755434171325565965828631134900502209163467035989473539465104003036214932000226599661087436285291839775966152643321324064117986679391102393991893764679159110559413775704017396248062233242744894840653813261483484345203485746587266113237355818380813908606958977583562300535674968168793322286208064083877032320212178179082262123268664952655333351205417889666788343597724938438431281005574954691736422804152134056198248286217812112596552324857496573697171054142713715379100420008447675690826424778206422390503323406100645638565707713855559630431283071364283006483658459064728541077738123697640038409461909590810646751888489228674002038141064826803932113463785420920450590916868924657489040382968328387535404272804901489701171053309777453497554822481330565036587207606176709992143538802802372830662638998632922329838945227776692317821114677683691097953533801293640683740749098579794360985954083499768409986868317026441542008434464064474855715098770414131705763700181940522345541578059817113520583899511356534447074937946740579705742466154089821103199795206691670428891478935431781147631091334233156185372973328665322374843856414077033437170343770747327910966759375066326190962627953136101591597172405138381101332369707833236279390721368528416935849473080474720886652140692749151731634832220654833465131969258431371759564486278873501286338663756624877522195486066960318172897217619473550612609310309139610313977963580837978679114944649560463876972438333332236975178699926057470096306017409741331268266668239156589292539474728441846443456482900564619586713663329645189980219905546408248804716948309655516744381554958191234637429740286483341574484333203812430486603931169853166317161535743744464044431659962680197683536878696956650200763857240034666858505967180637807835776735625394235210445594355511773485506624146697000782972091836443497762750758519265042343692490516812518334526210877133328371212451461257835175263450246310070291341294286660154782177899026457640822543465007797501767082681516951965587009329620120681215161513845320913071451870935008227303903512095077435089833115868545866490038346449126278732714744102654891661351458294430072943857904253231118146287569200894261028703383227194124313186202968442125796678067833146456038675389025042768006570839085781918955717765192631633338389570712820713072574391931152003011016488715094652848033428862665834208997688156916015823100540939779105622158515298725284510513597856699763511614972423006258979667147646852938258084517530627684798334011638700506890098365706939134413533704450861649505695625314358735211820676404181778364879785590350330528302218088648414512416299744485772508181865402903489471816542941352536846178525786046153221357786306793007303874520518584501913713323682484077593658836877692186917961443750819171731972500338165199564899138661959919140620035952836086555946447510037697397568943510228446070894682474723878819025037943419866030828842851157660661024100487870199213917198945252937816018019606982978746794860100365019185118618464447020092056760531720863355229739722140138354793618484632338974033999158106336585581379812552294285635812919953630802029163463893473001901987909762126427097635969376253601700089602257343660856425145245298722086071488046764276243184134766601558546554175702545876362861493200870798777211809530283404448348390870278052461544177645607376086236349656797859505723736859155294372275285529354465216937978317148115187391499552083333559822671442115824489885168408413075844778944685338014823564980616821727268644988939361125825987285801347357094836477238451244333366654092316823980752897247206268348814124110126668581421085023529310421177932851995082104605986613228450633895707537877090297677056487336896598433450835908710247891424037638828665378627849073719826589522831845725070019793865806792045837910288500826623401213298499164727422738736032389066718498024942434399373301044616653101936578642265317402330569841828073824120954693777446348830284700116638388405732617993411314414242464064237116472837019740299655950661211119959071025246809887653933833969711644135699179791357210555171667813725675590311214017777039298243845580679882916434068235459726381743625695836497935283735097930604662812236269268221946724106972260055682709508230817590297945923994962359103125425143100893010706087498338599341770858479936187557017705494379161121326346757414029661357571828570712778115156410689586222114246873088006218929002875590947825093985866685790342159061846112308349590816869787724671139911469607093623879992507142544264546350161911462538594773475329315471042841169379056776695869267820687668702253849924993542881453926427338182348552035143882480281364307506351520690792174218988938112414841375698955081369361172363483942190940670769253913323062652825065309582207447296064030691873859728139448378979968380466129008386180822429580973246108340523539169796068007262383400787730502705406654830677492320306268078488322302889631167861317299043620860594720142378722613201410158715397002313378051390277837261648014347196280531399347907648415404099766804422905013418940114621411763992688723629168137130122791272171505311329404475097425523205562907020978744728271127226675216859781529803345345557368953123405255693216103811007237143803897170799890916001283143759706233679483380082490220091387338900891446919150302450382537912343884895045508109754824091723735507060623916629500318990375162102365157379245296806285486942100318202929847836263078282585348007478000592829467450594569293151198151957836414546534228441312020436999543345595262147856704395129219661254446528962495545027177803715255767490489888224651084959161195466694045080575788785283076188735343292779833981528913371267217607428593461745691043251559653659387614080297601929963296063308663507405381524851493732405242033990809620563356888221454225795887048727263043524537873899856202031244362904706975524179417666379210404560386799150707474874914974886621355633886318907481906950823645425353831641949371166656233133933453939473969140103167039391430808927363870155906601687932272358050542406541570933164141345268364143645124406427562676294089179957070145154110706987080965353832032615876687750036584929185907097630076076616876522521748293846270989644997480621461211093245130569864150330289953886487991465223383980290218686443020000694304203670784248393878753191043700535873429857262291528703772496902154818814230395311507524153703643355287317239966551601202184935247800555270676789814161105391389294638400480399565905700846994448195627788661727943348964769373298737031464355959707735305845905845091374213308926107396669607896685643935545923688812747913478078088992009617966291170651674708062288082599940656490200497021088888936250088543126605997338868734916753545557665524565455497499985612320940329360218432740485717140252332402416973919171931904574465521682383914028461284801369442086409467043489508469404141279700774018179130292396249431299654118765015953740621589529265882782814906763334540079454190749164921577213026233006897359347925589650254948461580774032145124304713143901480012298155180103028210096444882995246501702835608609271966203066811082697854889698361168404137180225579275950606024765955128195982848313775978750718468291251241675293765762357465468209736221392447792787891219603430348606381258156254707629519437990145219822877124455820923045701854585421778633547492563671101864408268778974592201558434038773512594255328504492232002573116595017962847302602450713904775194625319506045543525336854760548167262564184985974599227247600570886645276058857034425209320297046103573444920629667701842539900153618141995152863324928477655128901136257191028801191622180757611539331544365620001638493737281311980287844511045669744373597979146480544520686806393640735151984393865374283862035547725736316411365429540513614087386461967498353682801297345414113181867243903521097514959404059233796978106336166615329275345481995680048608021932941630157355589389020988135529041217521089977972616250266017292492189208730207026159416935946283069667888010714605141587673410755152103427444548906536734838923020377876958856366204730543864001508555766527127555469840982963290347446588333546388059039225680307356752572366840233173646642800326327653926765678599355647435231669888622699163288981302506796534572122623331647026804176144384668324518807162008738448780525631359799540648129123626724208349659803189305528053484868023467681108438424662027604045586924963654000322982481538887372399573972489142122563258920070854210903296409006943811774012174004657728721169208943172434871865246771182144376645807223266393357867404238174430709070309120050480274412866310096219050503866666778971171498736929519445570803690390089404315658483798600626045506075823352048847273374894821308838599488248902294500531934292568337864541210445813527849512670693227545132184268983896987878905581324373274744400372175665689672012888372473413174758373014119856949046981211209444679882204525994244942526197961664514611504548057429744348157332625006506655411136206414917778188230601624254831636223291294485496444926099385171704783517896580040167220669619467229386381150014693120323587800569057593259142683263860296077788510275477291746045004492476040944424257451612711323603917069222795999126060410496347480764279906599389337123803282978184666886370529980987376084498933659864471498929591589463720778902769501451538244405349744733634398951817103406460159564831323505776073996067052266738422553440715620515437817632941892227384262879496000483306791407825687695730641259873402000392410827595815259309405855890002663939495437490824436196098233031423883797715818214677535772600306645648626100048663708472362335152028408848056649444679446176935456348775578536271383597533041433392938862135375388504239324068255274710227687380333960801938759480405111915144661109382390795122524563731401094063551089981401308104300221590018568283839115810631469214942781571528620417883823146757137259773569178405646399830363741816171849023827076571672575869106221710296155852402304118943060233037428997073430679138474758611128330743405418590621347801948542076621100151283548003472936252261355535711402951686654513494456228711415534158307609335901746652798576410986936145169689740897672629032536329123792826462736789627618969095612171781071381435823674888469094619890348608533153306330232790174946369475855327654040231583547688756578168453241486915363788333877563289198924668264730296444321624074094524152975602479532841497283053938944227709925996459523242285836055911413815792600327111759695306489203523882223891341819544510177422438973697038993505395878340023205608202852901331153956122469256084813675296592880527926766014448198540790567944887392045776356306487293750990572832809263573252167733571775383606243068100458528712131308320836156010704937982137851608590253067096594914312631651616175399009275873581451735394416956593727020413861602548307977047636535382618150934807516049342994269273155715098651657896560143411834236307883528032398094613512839697400264741483421045464415469464266540870774394488431111117303645002294209725974698658287056051186510439428881334258464025680156681095169059747232962775397956006331786833967891968268450030249764713094958140681088001021179474668651497468316894665942626670776990810126853206575495725486652761582658082161031462651975815239983381219416677785213537870222107106648570113605769153985896703161084561082428930492901634063567387336159579026150327322091846214054678191056293644626078725638633096593453781502683842769840783887624970763463740620501113977918025396974053440806779432385754900895022754675588138707762375244105623473695974926081639716881795132225964244941894323701876001666784563318667381350152138043133688438231574997135768531419146291737200028288559316925659061245111529148460727443475507808906831580304465713548754837716733268948829610267819340477011629098687383987104398833094207240851918555744297668424759131732098780944799160843143907726600680682431301664165498694602724539970325903882763526322120449652162231258169650993472150651796144102074934792821182423341740976528645586238389893013660098255355031730061049602522109844994056992908512487593888575199466555293351376655983313991600423167262791848139287848348457119205837325032630728741429055358695874409746614459287411721474355628691617847716669690352398503228460976427875845910187557778894823447439234350054373949051549561831271396960672801522299691680774812397429852341676588756853836036898831528109752681044209341418231729452558418376865405081152211169680617061722830604918303585921677970611203987002717764364433144287220705742160618622556371952961814717188831721496258012011290101764551720318078554175261669902026464813522075844015127969984062297422266050294738699679795214617706403254729691333435949799323693181786555635006685264854907079515762759269761195500790547922456972234813273457048598594633654421677726747114297951401126920592495208472414116632224338434638676425079163196021230930357372504628245382583368933308207032149625895642752404704201247727815473366673991646083954380385815001046687942346150757030320666513421605085527912957952824129288340140763824299475082128484650463696178983199291267217788036033644648000770738945994382842500915831613420107408622737191830894976024414303047035355611674100369454912240313071810190896293991369064988360639070106682154987154759856894968909151140096068276815330931408261358836217594228865892786142397648017223879726551128874354342519573774836055868820839044125062842791455369266129771632805964624154960910089993146688730860156933096239209947295196697697775728560987989441003087571783007828872964253691424463060437174316171302354965039808591338606260717604931710607554982760062363670848353161304718803729535777172029662091921325328345951959871537905147024591579895651681065578531040082998180083583851392158787800426020470472126565434561220058663218815749780370740480213836748162892594870929149322691311302812469278584189565771788593387640684958383206811739205897572555978692442049592533013937895473003097433291487319861058385875946190934839730300982863381326841214383643650196090541353390121453905264966224097889820206074720116213149078050284063557023606748729345613669957610655153450491438275279365033416161374214303431619161310904418983314393346022603213608301530072495655072173739498398329812607783562119943339619201748994065974506394901427717853722488415285376636775673873840916626253705638147402628039524481603973553839873588743441211744267289010855883227909227031457383299485664629196779083430409031811027589167202264467708340090282073071840611577722924000580981176082549093499623361492100544509230144583012268866694358219095595808851665985864612421488038580984728729641995574592316996505609912314032069334057752827584459298960337579675397900039699315947093038120889598880217041449432205836084846389737807626864222165033329049449673346718631551908559853398378354265938238625765056549246391341239840834047717113384618226586630608696887818935223387018451734355184216452740198168390425007934197117919277584503146437079971061629263782413205232988518716934418702395697939867107792578846003460352082990293576191073157087243425792665925647997011836989617441214093099769976928179053637650244880824100102340757494082137923403769044704755448434181390147426742783769932841461762588013536844113360981022203304046056650324659311509795940501207217695526665818938563695888237815809140076958575842407594858127024997895966445895150049795312582363200515844442762718672443539548340689995254509488653274546597925671472333774787479845565962776114654235713494069394792958252095700050803933082940569786959478971337870903296720358702793835703266361914520508887800247015020779778580838437411085802020967471957804917624672213407692746624005976183802541490420728390641649261050260110032601117732352860747992358065563046656212330363426142837582541037933038860947120960457338743505528001678963362688269278834482798251868394548617987853726995476599481414472059061126837077754001085559232010687687252269316133370922320050850931457486917666841960113595780736428244894070766245715322509849324766733124243989092330022685271817377590438529446964656502580551925963639460281362667286003360590190582374569336561049846164949337747220534280609617220726606928259121752754028892661381900891883674969919447329226823750339673795963792109054216295621942222001223144276903632601533611730936578315768770505403467619694786861472926857060946156474326412006683417387027308317997522944531738187662982850245534892506885917968878251617497812516845816601040340084953293289910570200507027436296476748124518716709612937167721516460078861655751335751206105632759718021038384567101076112962712953817064435883641045195451124733610724475239714544296904990634645454833248988243596146913463979378432112398543205039210101339184202247171568591750783236445494981545488279809631250776753714312815598559597870293077230942281123381594053298201386249120117745212141656182537562552623538433765617176799242358389443639528105031834033903149277517014371631999339967474339459375662706257240544160875099359500700683901280681882013612256133422607348256488068574576771382157285571716324335317680231565856656858937813846407533750252988462305539035448278812985346505727799911660019141135655800930904944102462203534924897129936859161547396309688552263411728681704082043195234314939396329788968545777801308258280880357501382397279164017741872855632310788487666465263401420110895742075375030584968658006895432913951407725939831351698591957235089631594736233507883299161330280080462323544112164726161016738878207586950084330494322303258681593693925433329625383115687294332935847116729840312705981629768041065081732740615037132011902456938952197808562442283005752568569095125511728316550589725143832390595087289181675819381328379138395601673623324371322940404202696681636648657584892955409513893368210175542385858296274986887157638481075225811517546068028928501465254698617576551130237740291779726234857317827559154460129852146805980416368881792375593102651439152689447164123026312671359136667582888544068032695151638440560171195033612369796314392192059984177357442350467433532109088834758751290255860561130166994879615198339163471703832215326497231212176997424281390965688427204777445471264799809191798958640152536660548465301460235746903965103650969767516527320916746059262040133440342507165302666512571197079710956771463624592850264208980282797085951552003069213331145398714103423722534435453836077532989244555649510305305834560119038483205383914087516282728081893788740060204112280602045673959066122908307414661153459632344969973532812965333060805472322284243025614561731143115064491692880862732320977532915983412212713806837523801030046799678373264221088019651805399145858245535529882927300868997740663755867201880713390366177768756872494637488578345757730742151650135548394153843912053597235011440057068940729715675955930195357884042342286725522496514983553806231745925354151471098964152114527867803708946514116866752254528448766086347622986772277750954665118621337592549825524507570820837970176007251133156774817259350878119557316470380778408168062127759386021837717291691800346371703874717645304432477818504621375384379458613155004460219800930684827243325232625646972363739492406187570586622088817635312363251289628866587094463652645386023859692814382927899797838791418735868364791005790229681985440298002361467619080716661164330791045814683100125707945815040848794099382368953366831079992832885930313731415216677130137272914679757797921387182621225123753244398667895878749338037797300407084496839741654627812444795499290460461581983837643856854040698480059605052376633211333776021089278978328552478587465081039348311959858979933201680515916335102648931993000225534476557660791589613679330019513492574373721300945746866323351993515521030789146649479302085036367253114086617498860826432044758123144605090414922690293561952559143796133275978113071699228838937360137892081638743724978976911344718534075909070312674114083654489587073931072326290356454154457027679646738591325081068659524320961916726329030709327965894737476681462636223649671802220187059001785009720244293570776046120311737915424801052499825160069959532815813705994766653751228301428017385046384757159770944904047504825873724722125257675512951432455047633972471261761697628208843353867563085020347539312668657883661541754120674847299336981320284360126358510361965756076910477683239375978566734995973747831200475491550424869684127355402924682789381628614755775728527681834039462441786101790226545157987792862136933331162369360414755625163254296250496267896121915968363842718029719671459225922306746073009869733646889869569964271136728677809607745799326163879108693990538267585058203200123801779379641339170517160095062759545542813911293694811443050525207399705818194434929201516176825774620635157321893718274809129846896435046644581914102329489790683146327425351832241058785202702055348360692715801346737212528986619070522969011160276917997887467802343708263487374916420011650552894692128424170288999128849886470153593254969565166705601037001254980661849960011178782710938438872679394241200992845448709764030838289917758342048194573042762931528829858785152967692224780739126698277037541780158114960364850534038268257126991305447153815698954988445362580918558171652216755935677106213292331843231603739704578399046171606356499375751732126633169793855076063706054115847667447585968014041717874357607688429674819865351269389304272520683811096019949014798812570369787361006844937297606682200120075026101789426744197289838029392179100128127560261160409864697664257696587685903931254611496286447252996935239173720439237208529163522639573067281390612546929743946804004609143610516980902096826710561521492736423846419141692632988034037204013950021340290825888442589690444061701198505865903299413173958861293938574727567074677019765540490057672904711705037923213523901608603337406068490689927788596231632073719836612099407895265515532809701617469038120140121535565932088089129903152149761182616727755867680685048803875189742580839297311995028635807653338484013486742704372620965757782607226179838306489841431468790432713358546784079784896363454912724893187094093730557816585772626547440779669148334540264902129970793164729152909696506397405137350930600514483231666568983231638740760900240559974047701627135981803608743723952607799161776175537224783060150490642904468246375097357630279073802588279633727242088159032225228989182206959949220196816559097294850493358123260938162722818090708516013704409810998382102008737034577092785051724655946497099800205475945593077790561628871347986559686940047358463550489737851398333496027916198602620045376334377252341501269238807289188248730784589939378545493271274144579388218224757582466545689452713936394475443200180563876763581762685923164592142621331282150632581768431681725991521186225205877437114482614375226712583601665703799591925706069871389119374094356296512124251093069398957431186807062557078677090454684418976030457617502532537228433260671618773330636915306115333237816984009689921482904961563810072636642870821872286726169082710095280366702854372407912821083254936716764364315623911086929725662405436305082767362521153964396857137426640159038932432469047568049216445667800724330446528738498759564107264047472752721543261372287257762156744413809872708667894963748989099016715304275792336349497756843476322336197053145120926596891021156318216047080687464483847667628745327727357919464225047297933112958918631223674093643930501851597357776387745887497507632323382853735422310854801692401366042393270254074603486704808897838068368443976052935464771944223995624886535746685843451517366381595847789659343672757136137868487136102493239184086328077505676704371753902025091577240155447924008712912003009587337335095115738876335137468953916997208269550616118798444903078313935833248929984388478886828104381402154123189695796301651499984429694549341604940702896712581024114698409052184498093070764910135882981075744440392992859682603379862814881303012557090670189682661473990027965120588934181247142629432483728830421458332696243491835992135527031426212537743489708234325696003808739491938187695085586671197599606898647066498534653452258088301315315353121958129389416932309972412860533223270327178761105842070489933381704397768146557044322978022946451656645701663034161454026452822791751076812539450456621455209720148301307178372123364953875775077271954948737193601008099613088130699954340704832180536600020789630828463804460372264652617889234270709669933950033179508737139553896381666732487205058224340780140684535363141971523434624729378277491805326790417034216719984390264819615282018449000481040321223134916992115597229027963628852805531180227135776685335892349795210564398125266748156127611320189072468873054022184372318072598918568859886328131374161780191037831834743843530748100745875458634299900539470541098020513541604777031424860029560100379060748732079839514716429538558377456517970122319706556306702370022825153038744431662390250706907688633896640019579990385655923463973500661926441654207126022819611799664174503072945663823266833424055915450344715228101570096438669866949792311380002027436053106134228047336288607536276560212375970819922025448028894300300876642112654225950592659619157546873594837145041463268147584275759768504095012565591646170271132297435755138749788578620031886674247945299784440394401261362034663382295799990941902862375022492490700197403291022842248561852811131550985516065750957516222642309944076091375740823971207272592755636899524095106521096120475316839770090672945723615693275071206894905167961981965363823051867179807760281104155377253348782199787698757895819937206416666814353801591007768823105779552014054633288601337104761014484062984077450425918557964066287547124047512477720043273847768592617202490295181580920484079029354179336968382238381610329270702948483069517181268609891521838253252474785846161431948440859146765677274197612139566629749925398600833852905059138294419622505078652651715870272238621566327758670120928887060172950022754808254998915178826150893868523185541649446181299499496609184387114559015545370936407248698825616901897171897147494722090416781226382637012047135592576542805525043547295726607834210777981920863181115290057439182688499742838793863240947411177425129601856654411488427368478119750247150653588067273335540222925330311573671782222796652606142046519473087451296733587936875524321749628009884678245416933078116152713513714699797982487304417321897398893659969792498776925807486116499884427076419969730460061315779798632062939332771371393455647542244591642427654556662343510043538204797656772243953597279576550946040941450721542743263503602961777559616127532555381326363475508964815581290167788616446102562301935126816210440046843816248132598917573210145660759921328325859163903851501155167044560846980043483629144800869668647942132231588553921021725491308445982066444472211414628247202900081464237985000284903760127172625268938173068661683606343178741763768811785518160649531883555639630678088692719947712410565932825837097335482662681475692971426058593051232093542883934992268897783215055239150284365557076194278363363823405825681778021586498978293395146166727181739377559206008004475435004887842495409141732197517965415793480260101954312266193784690716112441703802472297193988211120029411848191692404990189348953225179032065184452783622752146807847888103911795628167393171669911951446994498740709631295407566090745132485152354922019249233545875155916547307198311423809761712858218267125419062707042341214764953523089761289875920602995127740415517354162240867016087871391281073097631386020179025842355785126997519834123849026721307816918907284562149759121583081405389448882811898853206836968180200747031343152614684852160057300882286099937607201160542900517676208015009317367660583030912213562173533848203464891457751374049526764131350459622337397494193887639357374051099126664443796468591171059004722403863222619568417899111483241166645935501586109709296063499466535607282374851208596248753889473566233594935823978746973410216264189903453108736345339568711625006619884515957262987685427169823134152395603252076933972121927057233426745952140565303144028082521466549939148757487715969941567984118701047422796528156703157591778825578982943041780631966216744954255060253443796180049792909220940441580183415508077540992154858381004412828802480292633783065017447419164308651030291328593871477784237792253421697771097325919961845945776666347175257228760695652474261124140250230236992228079062329139926441259350199343096843045222819119386584937538532946027624862930941782793286096900805717897751787527480128830981521818096581054682865271995225217911940757192536953169871507002401080141751063100428194481031265871009962250109628392476510550920621408168749748127548885010201974008555724872138750892543065499126663346947190008213226597161094478960074972212647348202449469679772155308977719862832122049277615656073436284916115953639161049782601412582244268758684484127809507016336918984560447852558070500896299220222230973115699417193900375268488713876135903263773132430693895605624079554425135243726575522320993612104482008716067739241813058431799088916738461139544592685443903278939920740015422208506077098911132617005041372808766633961443442507164398342459695148250669930130984990492827783413235395193890042508566172459913287572024804941740082575062528194215757803708456879038294595380558537260694027449735186117762832488432732095977832237076166424440704782578905990283078981402876007347265907007656564810028106650718545022784607505805558090649488367097814863879104789388517879821100737191684589752265031606314292167998041776052916008499890704216539010451828051080122496284454662323617059888375122513788604474394808564139860540572086464203605006968723683984073630319448672875833716232434054588287162334856046547497222495734490339189470062854119508837800520474133023829591972852960881302127558871097503784106574959508551938002702428209267310304316024324407044249291886288433008072946421328092631849255246669464620850599147388790266340046988029529447436911469126878794410349673390770940220460254101078159869623810700686853419310491447731243759295949051900942871989663297682338813844587361697434883019947277630376405496565416733331660218186023313125922400555882285943890049359582526876531130533737173667915821488372326487338010073765745429033313579704220744300134361086079962812343253333741374687781445217354809541196952070500385749930075019897978742423349969069710247390467722582044739421941407651478027062702219728633414577592342504874666834415151746496755372286099804409368437966695052170299472018842067058800558706547648329814156550790076952464750405615681312916882596003084996173239035875715671700688635306072239530483983354204395480344717499108611056977834445864007365737235010267731316929631387462651229447254856199788635267676002896314184111788657892045526965061659301110836822439829215350328472650049780859055408395133014648797238721287047384198571083967284492450541695002758223513314991668188927928944409340431008117580416279339654563881160325833985553963799950612359202035405467477712256478173190333385429697876203541312956911880534570371848934014989067642607946557046169335131808461488682828625274790055120187618634374198498187667748223467040350416679518914557074712594870463634700619700964438550671022240667634153725714170934664232512133356122652401341755423627198098466666893627936477687195695164700370132318270529571115773817795363086334275656429279697200627230158824302009401648746603841229480178112147254001857722391175821709055245379376595470044386907146232104928619797797395108503545185060245126120164693132291199634316746318621265133447512622028472529866272003274225285906311015116918880373921076544283367520492485001741419480061410808685749517401135887741285969483070878022987986794864076985409105113268304131667010369938918432681295431508700460122110958759337715555102844393921286724171409252636366650388493902653609133435055582337763149389939022608407030867495502566872104250525758151847824224853468610905258802387780304692688113680809705544456559904978938172892703910552675456877970973870176962149713314455378757291957558868612801557049844455035049116125032149921675224879629488589219673443154291079254205605628501019121187925589800134045230526651925365162033677270135108751312019465638018279740203519155412427836360123232223526211461371167793334654563818582017866556184630597559229794941007728879591763576465313579111953398595024232117523210798469201554319716840461601757009361820884863971689651614876536401362393681883350998548032295500868754378176349242396470574378854550777872119743069843824811651705341124492448664933636917411124209037823757540671195800294894552330877935890632781288724164596391102331181014891288030773965302453614705833942454427026866753973140790997116083723272645293985204405352015283748756721786058448022194501170795501465570354084910790461006671828976785675990908930921405807795650644321907992355121279395291381434986750696703364740135589946028602076390976914402679776735098511005048425518309344575450780926846410939064612848211888327069131413952501213722829285123443713512178574007040952886834704521635069920023886474045890461401117590473642619785903438687344958883993876889399539816298762523254930414569290880129424284168493524113440875542299890904021215302493548528783520140473010199381732205471160339969368808737629569103237249854914175999194683920253240902616622168532801675135051696156332857284443110703988256116449716749971743966054590999363740740876925793095822566319780136773229140751610248641577197828809958362991020311761818570542239161794453222602573975560431209724471731369103819920332681602675190791599662452192361748267157302401308770032057396074839022663590794386736639347729529187980992416701913975494630085215081284947149637937279041864348732499870056567668619845534503586857682363900911762769616195643247258323247557297053033944781055800226614718600066847235180520863759636087769773115330064351803568513067372007542782596743523739848070597379794230224176118021599605368590521254678152163690307898707829877431686344646170866827602760497177203032716107465496367580531983319545344158041892096321853671079250300286366768859968966321984836669068095361648595051685603679952535259004796333951666187568760392957288424985509854103099373010028759813296027215065267519296844113302417842005699838605027904914691893319533727275764800260842741573814462371062625878692361984846123131633093741587007503644912680879304486176493204652563949466864109113399976155253446583727349796375524049022295065377739606363936597007262703309106988380503798418839204433507144291095194254629532728652807006757130694773435349863576513690225987666060530278731684454517068734615610737866807869066350675076390273907637810052805547677697351070375726397982547176996060893270335149886627640107281401269277986832595259357518967076885810517945186741038733691463028406194471263863446484302325790807754406871269378144395897165054963362766468435868944264925602694102443480511152259460151058258963119180989446458469346662601729615830328626693932501583906735409187853654683773412136827539631387199686590087350263375201806082656874534487791746173912007726477049885987052164800980082848481496189843959196051647360429711624345420526214085577102816404733350935111611469920959132147768671596642365711082898120997949415352484211686484126426653921213971510663109683066522521555594267630420566113710839167492691045462305921433266446862944747073795138894604438107541852402499204013864312706607415430702670741369567132099016369957809237485751357530619782105977453757127175893230734804278454826355688790738920878796009595335542122729283314898564317300420972345032168501115173512489122759898188259860132303658845075180005116600866046700277925509674004144795222351621405759520219993634121855995700655501684967022795141422085475900180552898636456925779437568510039486100636578488268164122501001618582189183293872769211438555201492016596975138030016213381815861652497162053327582001320764565630546975138831606887736301664697449957796097507227381436541612462273634920951509742805576727697433153490615457608534753823482216626221363563638610094630244174619452939971938748966862710187048412594357870699393599246465643360722188549422315429759851099494459489905430498060554722457281505292273282817689732760115484030248994617115283134672956149062979041870124276993041440106767729227807235095022906326540422682043327381533192304154668623631207365666669749023122374349500008940140643377692843989680749559816702378118550106549002012529296243376094429123093507428743462754026341684914523034130520097211457585564461377950966007870310834951039006786663967661577963475172835597816262349993161765599679156866228372580873815136544993174063413838464323186371796452838128040644067004044634537134549206745296890713575621887536411621011417922953594460550991161005173383877530860233834196653491764060224386228464863375274124347103894124827903763661155249809527126969262388946622118544972614884685786592805000379233331147601687666327321946305487173367833314138823324914583816925490975005793191327361026565426840570175394218702454916024790137955905411968897463702605034154539129251164687492531137110710904106695954893952490674563918827837125551034202532371044908998390753410321655511230724949115996402213704214368536966755111939567662886934692055568929753372482747870803692019938225449070177582411301858960612494107513207310466631555866507324681109771270361940396660843476786304120100900079443197266512643908717596440342797261093470275165320146114764271452546322652329887952762933772651056229611877837848026952448625486579895996681519222224845194797595535505324965991861122039877041280836786467034877296604928839873874375190509393895006819210505004019439052966258483021458454624739648174295876786907562939012137207301430361710668842012049164055147078537021899664718339162022921844877360040548607560939646110953273735473705257297516233488115700331571770777231809781262561867037684426689757408423553403890721873177926872730510371755742444020583154557084873192607724092515940045263635432262765176874630142887508354941228392509574896864084961578499030394651322253354582616389444607677361085436502946507864704504407666817713433758950750906456906882923180233626791352829933085322644644307470703036801285690131099060896923530524269570161436902687636110590267697211686332388289145470854480896223019661380059553832141615246669573904542846785746130033380819733366180657423269403007869204180323220845941514286064306376352451436145457310998336893293874354684896563303106977675350061698646436425355966508073079253958129451779193014691034615268898160689096537046164777697958540949548035653614943205001682504409517099294097116386021205310155374612270867299112212361524140538090543648588239259767650564418778977384759062587347277403267210069945228654124720186142163845477175383512507138647377245170946879260299632203691876745378503850248996794226699205452109061369960855004236169608673913415596902410946855395570052546613226414546883762459725681551256024727764612425674853964576209702772358675228068485223069180568165530527531014714681388745788999538080048053218416859175109078316998241411999631298566586964869313116908146068162558152198856252725532293466318157454778005701122592283386864978668612258707640401735290652580272895074502268330250912930176686487547214030557187370776858816819116585256553821392197388455615994250060827019519164639977117918761791660051206010436173774791086695083724302381555700932602685658403191479701396106921959445058669123326746666223736475815651791471362951466290992425256710049562353247119412878750413133494149645867433972803555223245048412590880005447169346986130969283125682380865412975016881975537083891826490908073130556931001473670847980819865950686045434838959676826112239366511734782817146356815685441208428639059122792818535974222606116340735701781673040856517398617331925549300860566167927891581612360683343304770234526804974969299962530184602526636726906020430103499434999715699110553003471076465138735835265364953829745660540333564707389327674325824082806965561554751229199149629337922705154398088369229671418788497092119410403165192300249395759019718306200224151475407239039146085441112785692011627994616613229149031746391546146117951848511327304956460648328396277622366149840470978096881729199019838998376692693033898960338641974430638171751141916233725774823248819734749813273713965285180044301014556545737776773886896812396912176447199593853562993703964291231042579229805797639260993541275974954482402442333840720242057277963705816045755676526141720492237869084706842093532494727714813940250486471967304222192912516896321583683654891866039110713362109694545820777555894012458858860712397426049943136929672195282322028137228091479256418487359979110723571692549892517803263372731957929721689453239506289495495344432947169930512004447128804269316069340938199926562670101265805155998005025848407526074976167348632768007584163101182593797576818166184122565873987369915852894457676051786384409355072407898266296424977142101343151091028173286561541890352108477414346416268814132015276263481246737054996398638394783360069055592810032634071019644601935871975753157885386920793635174326246473096953295002223981912942451107495905102207201502739826092117049571219058647788763065993421042040034521710247041219605019662314714233190704003489138265760153336940661210788518528488119292887598054998229166344565792654857479239337258067797964862790421859994923983128288535394424650742301131196137894082997426457999306932037117573962021646771546821707055656522457828827356377214555019044779915145639783018128990670644716151943347359661912639478838327379079887485140484148396559847275336489653154883777467089809380470524622773699318598520153094222581639146908311495539121534817993663093947481137672035435907572547005683925663120793277754514402714377168569381485806201276571835655084899215077798006383295329582218369820009384150199586919713752334882562678670011023369259766920667487736061339860874361695864054560487042708431693214271133956745927318416016514325016372689990494235033705230681165384907809624936354764010041967227277960597547764639198644480256407907724496618087533104413752175243329212140714646870525765190042174616189701415622811585715469883237849550121406948611090936680753661167822588543521436695933065396704242041608162989864812828172575028520060001580551281439175315760364598267141732671574848037213954374282927113085558256364854341209943834040841346342552036524298913581721619826622510847719251563160332673986324664784095865987896046382810399825436217599978317832278953087859754218008244177567724053658877767931508965301236507200868210472799978300311194730612356935701008267306734353238150042940982580552767927453603648134812029646095869221638351707646499220794101490474221634019785538681740100223022884380472051831134606738939671510479045931220997118371466992481766915801188711097607143293403897114529888679698474494555629190479397180615537310956997654384777583755220253547119687113741234542880711089664990234954044632888144490895773917123563635168428910561537160587547119938858470882052862100255271133177932914597617657187419241565199895248048317090349455694892690655074555851148419815700431462158288197030590173918555232634803198124810238479061703242400770772918798328313786711691100428685035597265319091478990623141689137513289005953240027457220001761437856221758578884205280539494817118069793332491742837654053927856301264772998680321017099550092821018362824170607261817574586135341283124596447235779779378872786105670553412972858297064316418260151925124451663059507930161497856985197186642038781360977816942145987916355754675481556879739414595977193035740169114607567389231464085185703916398447667830344465525633864961459243219612556541495480327244447463177735782198119006117719329568583722881515585096060508381884608404179357931809699882596223602784358938595891812118486232485961040572608261168694778250649728066910421235051479061065790568400641606356682554159830857455636725415009663540132313372598234068346421563140016150257998883793936550299932740599158415021373299757528669560215335616978639888882234738243492356136530840081117324343448492923486483061636523556686586686913396298130972489330266358034175402065389332253119426839970654298685113257893348319200380177630652506779839710305653834633272831063370439683271191378771742112132378491566564740350891558653990791139956845848540292754404524574826595870723962417041424642388424990592714565941301359218914431152788921526669146227891728325036741445611289170961149840835178378155305499196692800389928795475142059284549602909494267212783386607699176724078825845559567947668132301173685921515685335610715751629529514831105611234738467099144379794499148189906482214888940359551561135674841435397622750000274863758676056041152836600738779327806525454806812396313920704785647210518812536055796557760435604170066363259563631253808392758486184546488025910226456861918946586545175832356536370766224441489371791706952825348122130108255527840248966957058629368272858202861788887610245076749575739653323943507967358880045736642332825637304511395446217316366532081623771553510895236722536770859053692581548916207687711322886197281741927035811347929235995587936912668709231135412689699562986104919740999324394130309575580669756616136665499675093016529274563182358752260569212451839011876742758954388822688650895479759032336488336463365033371827084904167572088203012191238013734598652031386683289257998336760501806176414584210416281377791324425772497495184280503565705408931199177470804221936495850404885772130818080137599241107326130091363034407927425793972754783933844285952220137392793386607774066683744662292020890015981527735639192916679164678580396333446711061956683927055434896668163615261669676283179272584241822872901452054353976496763752118159837008467670002862070294380263700987294585831211829921595217324899931239454087526950740576007441246112819917372466285695504539331274405363111775822312588390445333088747171312111584534860222602383988170072393965075904039687970305004567054655478090451267634818700089490932001424776757903456115061299106924338594889861097117864165785505647782673787772683744287802872563905760248447995684385070796748647875737054518057874848778116884877255950845173111945035443906356489005350308023960949710931567665492855789556021494752832953930935566874382815224098338791276136427377451926467511444983958759601749157713849958290560685520738759405672439829404436644153839854785199923257420115975402621714650311303812433268945225467825009313004364216656127112937408520665586865007965304060061185125581210035358090754370688603786932893606670779238072493621470706222564419141761769554803215134296356001720879276041075916662186958841220911071810235217002364350498990809974392575323672181867886551543968562864281576043648671559002862931196948119722333885955762565276152563363324779593238070325047771397085185581999277679171290823104400661335040033984035441220070368540883585062909940002433978661104982487594427256175943564866976229407648215751067362834570494197499998831027605204840164155294276274210963388426086277513852203966096644475635595206856073312620563530270355919466215122816154770608435774756661171701033478582305998815981030543400921597843374211530014739616613060662500352465761073634028101251598255341400075947566327367039062571670745601202047636663894519815893753580800428515038223170584800153035009948250021627140865665345371958988079120603911793077818851788493108430399116555819302266636523078703457785984867742884577973388611459183837114401861420913010953499420148461133030748005679480096661267754712216385474073106120203688724188940808576135832253450019220272013362217822970587877379011051884141520475567942353305102242660964419002717852970367644810535801042747780593736337356277974542706305997883278347983496951153248230064972987588728118489128516351636687535351269163971170292284488290233147859823477262634134088333221091212165545115349130159566599585438590817416317693292071392323138463570934488038921920833644018713590828265114012026001560126124811620254328576985096549622409722070999556071424752068962383098937227709642408263926867443987808235289457275248311081056304188905431168905431156610876715989990461006586222003097716410104387124047598763518434398194629939372978252367359773159565722162433029920567894453836930758224219255497066500005436119617424838752449637061212401644524598591809349410461951060455332427442121075716680072473748880132238680866647983939063472219166514098406879322809166877514710920806340696701238311150380350418062427207817144988471207059370295355389369777870487720107038571371621188185246892713455524478454255907316928858630732824689386682895429600150403840743131128984879612231515859059936149717760933402009649501066629423017661715825838723708941452694951280766827334863071096693488917971535275231443359314787605608035970032611978124422385466868365605888733094208499199872187956640682447209510517570324141992610515715526379466935341768068752744022858336906908555956986929674147947639214519611557347353739590566916933703819984440412312965253705842582500298936553309767810111013362204386366110210920650155400883720314763778971870275559985728325897781992502382092842592145352607167627391123846777274273610341283287803154390673886407990004509814954214989845490814017139607987888838390234558652230523359984953386405559277133576507667904344853033103756961778682334543643105886266713125054867576234849853123278194251567830308605691725110204048813670869051309409731531154528819618025131713313052798769338229165317776198748045371659258752192261676787725378273894658988640343076000832250232247092416228103530945282644936356981880656768599914399330938301576042230022193931050066244067252849185311726743718193745820506050247268420851615853665123977026832266177116006796719217280854605730436092996671800114981663583247454915770348670373148502738032735045288852774462580233030084269109097866827071110990719625595075701029575998742869974742892606433569131560280958265833136201026134471495149554871171172916766933272851429400300576564801963891614396071736556811241138249862946760672684765207367358405492071153997269272457781880459356249204196182739903016421224096544105719779539147447453607934117571372919925241841464795549660767734136695900495189253898505622710922575016965321755230087590368856655129903484165249041149029267902345993152423799058502451408248756233156644983662911908370251342354739610206493508279674127472666133032642404354485031588784089896735945257066709843517068284742425630474727147648558406693888255787639110352680631623248644674255606601748273739820253138724658114032130507717749161246968864479500663323274202933922133834836385814362702704529491515345273246595536626851208902745732362015600416163631070166131875904282691768861207302304655434575872469516043387459176957255006218458756300460205652252690546101082799243280331793069775602928689210831028498723155044606458325907114128794829756019590898958506828328972293471753101713541429942338468000697022702315799960114601797812483843222870958162069931324506831069598015880967141709091617635349514982925032976350571828346826967733182777553250880964904604039732636397728397668181208523156919501490535845438707657397090603112737293006625759373561987616798651049500097269303443304631248761206853197666401229169103443819464379722955751424353821587676699552390835364986115684518104406694246021558941723030878682412233032475045168187898740049543391064432401449809298960895491020242870289816648532002485789187408663265480044364262750709852889361431143133139015680674127341672569067664010449621295953494832888178711852938995610766438481635053649158384027880418657398931757966135624295365576128109554265926705622929419986985487223139682366564184281086171287142620796600503614940274201609686354671982897454155863772397851531862875114108950793992724994716476196102937950932301808367865222791316901874991718471517930237908814781276974972309193606776783332061812273611743231318823304916265703570615335008338180482889843583686914438673510091718557052468437818925504466020576608352790929073608048571299489061564131166996194126239578877096539701643981052038804059222347230710714159748866036271910350686901069493109781013225127084545469425817912451183991248808448360638137981228031498285255004490353239825024530334598246428038025944864421133388041332680593815924786863830607633604804228665538010201130052442336182106424534784017469709630225649203292463978001295534228951518647301135949755589986185013102310311607820269361283378701255402159247597213731377252289939720033343108354435992003705011560972370899880345558070975075857957826773608224442421309276657249866157075879473942383493167626078059598533860273578915820703296226538533030305899100791409854892367229575794201444499669711497683247945437913129004815051690792080349472331457477693970107953048255405758530772026673899271933987827884598516430387057012158274570079786417218429959470390316356121538738378421460876502031008439134377784934294023659832584420539670209790356219010239324255335395030337326771005789060238503215316942164679690192838871360642171554251209496618483461642286964245885585207909186914157129642864998325818187136360210564188000395651348907442998000682800121954193323471362239128644562867654657006345972367330550774418336028080959737580036078054031333580289720013217463629009434863783345531018404623388864897866109200258921564914093204529687594896020808775111137579790353074309063347949013050123072149168191881045311889607710801217961997473376143917036332263554291577174356664507161340374455320473658413468450548805894392373892529123324700775131039700623734179203683706104196361574834793519002340149704883309315300981105493087796966951228157394844595285185194586070587116603251690471926081274424885835524470964730620233071995572080091732275104493879614983392163478486153320926695720462642663954660322695286770291767142316622367409336083460815802570699818192751226815393695302632459624070967598021105755253272428974885763525871308805984447920990982574713205568523928862474338874882637788642115073670395433017911542037686518379075039782477472267195135780764158364700442007558775937514018233142359346499708757055721862318891007450900219373451753398284022140635805960799789250142351886816216897425189664098048348538650319240392595030908303108494584149213837065126681101704608831292137652649552424579511342659760621545291441117561432884081600970072211262497625767955616391751070752192346080433574052041986125190041535654890436650527301035423972672918532029234093375971110636889442440202494000147913879070389480981479701289161354167759864732034853198181312309670227816033650523198332332958670224662235978778337745523164542760968766267747306679062662025779176561787595012478688432132285911077808855049857465170480631311124541090155495003974524617856322538101198335352434933479853854772283145026437388765050253751540430046393372890825597090334273834572082424081629173370095628289178965553862250986764780263363234990113287589843496660584993296070742082398358810876479991991931491623502154576213132261793212052157932991113318403602203524070906611168368915148310208873282490996464085485877711224760141424753479012107627019695235199177181940896348089453500618774112530164644000477678427147379691742149965733081701415167500910939034681423625584650930790050396765209589804113675984176646941312108490498970405229847739492598874974848360677536292708737275980004705096934014107635431394826591193741799338454279142922498461874965475968772969610287530084328269179926431264385532003113116439895627323102639402978399473432362189843788471213243082670170164237957194016230362430562878033018824333923095669718328101111825978821481123441960541168113096397471213901321263364790339534795694915509432310153622421207263511676649458549583428084465047233623004688384380322173614397517369108331176525037853114772499840374913787096152773824194448530270852372778501903802708851720452112796379432725573348502634748435923555433163188056783512661776563813695717557836597837076271523550144621586870923591833809347145041938106600682647808934080643718434571798614545963215037958319107955098681731130198977074692547260528270708698397841146801351198176675311618277521133078024839440557355187374149318454504930307342355433178378297562854077271780874355069827390686812907263692923367360163333279937502528172363092761328024497223039614888587034471211256463628100510610180041174621007262425455903088169800646316692042575980848120794301855472904204326035740201066648144286391391921829160842368561802479443798913136260284068697888382135034531518010741237034490089345156395080892792390567466317591074777963033648174344925594755820425594725140177429950560158512685973861632956895657990976549590457854883611989846891460640976132173177685510537994331677406961373297897878922258646564165642701395961739545411428053666936789703676678699522393383243941050182163877072751313420044051604465661756672759554716659936640169430441312000957505633320942930721931982147175802760552359683666957406200098312115283885589829727393620548297144846886189450054153404503859253662025240779393547019435224509353767556735987385247512991970736724657872365583852553309301941166789997183260204755572923653731123364594606190774978377784541141075895603783348974520206460614062889123249072503141038726912656656928000151965310499724643477943955078532066970813269914278049577459143480819059091415666544128536088219068959062661467792661398234276674591861293704046428901666243885076907618523853115508309042597902779001039562123631915757491313623918916218229429810600012651734801953660092944572114075217598341492023848130809915332472382036304512339664142649744445966190425295462045718076185049297940818444783497342945811977093832629314913337173061046523032400601551224267362753164852549683650887005080366149863859412119396532543649552002234474636384683715257908407370034375576714517098828429682361785865170401586671247916546038928949699731908916759540855741030848409268791771735860760330887377909610466539153911910004494902322728430106167371753380135915823172772635365959495457652853139861570839289326338280558397687698856108414580965605283032423108061920209524613372832215427853368036063838661856418904361302426917332754112065100083222799627451639421847437304236214573389187177079969713920449885031980864753823068536709163503347337053363779205092677475452736981392663879589643133024774723236003298974429046903493688310841059048015621424048865650464107742115066319365043534692462342507793194976608741454649515086284758762544731572391269265602742608024172130345262444128708169512383029732572737871285139795053617766487753931880576083095531068139722788030883525021455940934296010499557788417072837471453273617401598126898357684498256581744452404280833907748744182924780236914668451831395069895258032275258682007495092167921030678573848818831369792170394518238018502633326965760326322153328805086364879942892990165750232928802870019656351034151250928801929517264731903476800516579606582264477911193397253864916678522684558228510591181791139240263660609473582295595468761489053225908868569222548599952995655863560597015302352036165368930110843631553426266381082723669940780790391351913581871740664358434853823444994072196016975830305818054537541136506653788021359620220083571845085456589505849909870467524565882538130771938542117106123345512191654691246555031907722514899006006361415206790973372139799897485202320525353559964980761114908142727963822064873480105531767381462097407021056804080535346053651682725824790968086441979104213617553315631084215841002610909972141868318386631600860928997113390239005422622565381884965501271665043454256454597213945180306219425093079710292836685721754760239581992488501313303518240919592662093751885084935800806190179101497086848219486731970245862377605405481910277682175915583660263011324019485877390694420605735740940594085347223036458165134384187891901937599544593249065390575186533594675266123695636959193324874296271695302240386105723506608570575770001863025659180031540627007429632582941666567215654779353364477236641009821416881123150106434939082438373444770835955979910275274041244457342053151773631494912190223336974158844220085224932390729665083241418484373240832134790228003071795894575771855316689754660848074897712530408041347568512299745008682800102057045431249742667342685443679379506607534615122918224549357339209816521810041019480312861661399572750973570520755787683988822746679136483978319416434813296762559654238733760598232621507806178919370656183498469275061473038364751430624597719800890441292209446560492475581926158336399535161912322976844871864951488136930085540242615210521811219115817064283578331036032692273600435160234779910123069791570031263810251719937725490970494403206888297172058476926048605115084611008387535276731056366596146814417558335001224009933886305670656227984436497764343645164417306315185242947640672361953427449195166900799963004881389898051746073100794042749851169654017484475554114303726288862326513424956896407146053910121649971956789486711398341455136822024443458012836872321525281515060824677313764699858637247337788789440725611820620625927800351864972504599410031035041660667633001856111485170656533714936605249563158124239744963147935438680036241169772735883677075949757782386679731018039690292800519011601956765388531463222678544272421258445178138885829048693450689394063327274337904941991934959315855632804936712860764843309485238661179837456260921398403520228693222507506156069193489831444300878013118293803165168133871658578373177678136526613997015823415344286259673255800637830721114776666268178782592745060726356879020584471629153297876805713887377376642029178081318962032134550804538816440801198210172731750457439008416971822815565502329496085552934185217587100156708872133680217834969329056494145836685987083319500876693309564508765057748039773065882531932853677903988988773477771515083247202827942065158271846146729172946875757831627386316565404894095623721875621105776835626060838587408483606595309052212457644947845808876107125754785502784105009757254858224101515017003080032330515492649422672538303734227962342220726463381068900023382597763810177668943823471896458824754982091999403230188167126132548555220959783483745085501188811141611738995576642730868870803540455667082866757390237894358263995802792914369894662110377818624023376258417351156718889168295674790860721926064162201041429387999551649844886377348780613239510735424847641782047044144704266795066404849796951587403947983993815738274981467958514702788126280974403368764664358633462058178335657756670750259304877363516369934010106171745779381024425187186430470392062518185859714769414360260447508073738980618422100185219888165352277777378601955787777815986543223066936432967765990316631654817007334377794451377813166728272042846588446887164417305000587111635577749392001108355331529494447125155448878555256651338787139512071336964766846203552785575585659032825152782422583130264802555754544636361311914341379742142985336306329580699779243400402332409869626608067310328801576569655523153385659030640682756765943346624764219416094871764110473160202697143472016849404970825784183698398352554879469119900537451350161092026345064979719654308167780323995454094863234702607096742540593694576191850344280067030699248706531450662139261305887196518762390592392602010076433548454122931494990659493575439748692928384221399468394007830101295599361975844306875350414372834084452408192732650261002606414212774912066172406738064396349624534558149109661020550681925194462872547385935097472433841802632241178149722312804731363809254145452748456796548902310099989552018279318988032220170988292985329832202070295226242804101511389951646787522015256644160640690002221157215875182238902523646035655559615078896752626975897916352790268889318674379384950044066934583805003122643356635297741393850341923469436215385138497284689891401464660355332146581771519464623379485981970252546267330306860847148439890794552114050196823158415364309237765506617649011301869237978658742329564956740349248096728297338703903878089216038193520020314087330738225815423257771142879663323025741402205295607481289679877742990968997781561455366663848369614203253403022059967969608480781437982881018650699916474772476801692989401678837042922277652073865486214707124876036901988206212284877552471075748071431473149544055253055911889884714320691459071009821581853184862933555776295729753905799193044932198150637857140203600879635172180271029161249645578753041473443483385971212860801469895044112908876604223971661470337110238100981865416502779027760943319670791030784666957252801148790377171063835134278468041227359879941715169641636041317928922004280791513876480462545785295845966231844628443755687287538508285908682721535149572881197217969787072484743234511025995493135516834719019733670654577661391108642896273382853389279868645395572574607427059291383749717844924997851323712098655499882782296722276120738307392414841065272837925846287811438394686004252521882058828374137545431109720356761470011565849714010120073162274742132415672786373442612807700040486478809058304649687018652660656306819775509273201158496895916472497772791317838491884580936326109378305056075882764629953997158157264471319587538216165364884743344161229223928270162283955022260261083026096512564765168471316345663067475135489633011109460935777524212987813269039230869921826445543816757286681054779416848533524541013789140221836930978138839445984893085651600289155843848684530515479274511872490257144112297431915890174563771240460406674336258746979743552154907506198454370676122578164051310966718860662224891933830635940168380266336252930378553178161144879168684361981582734912867403035090761909738064954219062294633941453792031999845076538103866638777274210858616618987578952793496009236799240136156223901063132609189505224367392661764037759574206738971035549443994782404669174027586804276226726346460911872316658773463783563222674018503276861415253733573240666245852407643437633305096569949281501720670943379246326714649214824024945668156462779985472778700767097240703284663455789711760765886347789466698087909423027596875695073957490907975759618274804492521543890762669396378231506814341864599076313789482566447448923722075527249995482858604297213955430003594668222751072604848176152319095586208668297135821877269352237940101068622016341582792526736571749189217432836584840742631804167007206030336281126416109654760584851458315798067698654305196120575257145059560582980272771813069270151402077931438914238860729618985906711432033290938921846568647785530735625433996378658390205698389207976860248268657584956529061769207257458805579457332707273839263570118258862186998903768216928911455273499943841287485544034385532008383740799749000151980668852589105530831295905302011092078523305465249633614601542555841195461032195510574660924458698483462497948455152544535235213037200485186616532240853414292377038653822335803775838608650618796399426018878137229586844363938126282463707325237395576242923361538156067309760855602921134780997285634467547328965872393108849450827090629237273672934451706174631339332363827926277828602200625516257534085212228320455869047643385343869874186382324540541741759340127046556471608729685343258657001205990854331671334608668911680474503598573485588220571995152533717562989957408036924758367254364787600102526154772029613868449337349717405030184763688258361658218760128491698319403462036976866324028712961739523608282915528780359213362210518412847344608352225270012430021745395153790650345027621227074901283795869361433690715315593769276528133898092824302455165112959251924003071741676193956909015075712902464474058494227124545564288881071388199385186684830917183323715012960522852731072993657272909471508835161851771576346901628740585171722590475967832425014037249979214116910358656738552745958268286348829843976377826422566122932408155796748618804323433550993351252396074066491563142020253031446187031764303598950827336760457856697707053102503945287821714374537437083776440219677513114579653407911521278863101132668047060510831955710517838849971866523289014155604032169752043963565430472034183244107470294351046941663715750250227994251813991453624481597822295817536103270301649776604898651829303959150479226732892951167520664269452838700575583786360921988499246452097996616062715170873285085053785561167855537599751300746104397221600240294736615459215701412763324930846147809964858670033227627739243787762663289473192240184560561092630772808920239419205156528450642549189559066865283213650230518370055065145381234635764870439129986437052894459289103185830793206278362444728923882434479126433036196217930852533492037541317084589104027989575808194433687923692547315922674653632385265206367256701990062487976172856669950962016179513024447240212211591257927553338461304264286423841417553523378522197157088682841342232461299646044781570842008387265072762773635318614656858391846543618964089234045188450139847416052460827684664578235548269550964817614324558566692994737571086835234183389571647561614212841831512903143299623886124735695372830039078518065112273282309379646995358344481913037743544227251762293568514566772820191501074507373975515600421042813495963546223964223165053551316812025331257624916487477804230586737268951567017794510713698410375550192138265647125902114227648889839378005297315990692783752985541995877964603160908676542398692084043739671457977179165567363823922835300658095566629003476751637171800164293005923473823434625582181696821395859628924772491023954729507087660246382462204482799453499578689034810945248613573389950624269458098553109650961781976206831637682087607912411026457862345950422430825847845662185413588251157679081501511382943950095444015036299164127337941164467664403383384074643172071003620201067212708489498267998484715192716206354831409242154733878730843395342193932278119011246154826168208848064628200216218652030698778136244651081282101754113986680227521883629532836575327465276203383000401010545243301668161845259288441538636800764668480849622838976804470200654222907242586794651271096582045541877661287980262110885006456355966645142033519527856469897541268890745813867186420579281425464297874708760366654806638838255605648765109491963300670025295904519123851386417662997055042499063086443469233353515134792198642514444787627198907708847374583097563055451030880664444554420423536366038386025183019785592503680685322466420705322795445334408960739869451764849362505994597249296070513516295347198165062373485795590873425980386227612145804888228990703507998753167932807346157111348390274219949369991201993348754447115986520329371104092163578381868085514688703427626371355519682491824555053763296805952593996098766419817041478489672141729754259426910359633350777402724019344934168465945598502033662867090055184397402431797318240533757276855657901948301297862671241863867767949462416466762074359229030244205630093491830837851526445460540630395922495174982057268862118375736701871446319351798881229389857295108554288291116722654078642690444546145428902985550581137282775581819528990915124123475832949382366517365447966526163312799420555199427661872159389048692266590153906937632614865571874896903716921234734554789441002402518175285061969125360129266988753166649633227826045378224481533453046262291185612006268985827271926089757251218030399074306680079083068333724167651443410227108162849421902855163665442254152029106515342460920647362541884953266156723972268634929309566176087266558531854602932077749761066365234689622019941452299291750862648442912365117777396353172594114982401597970799182055838188253437208968109606808337182972723993741861910401767510447012716041139582022455769520634932632089832767360141413774661748853214780041490598812667579554186430223736884950595066602087844001774581888337932803126835988271142699265760655430012594082058418200582228892710063982709062439318053871465666203670547488212890411027294039109738058523855932276284646083562073897674758142883502147860478485861263904407946909580616691679317029232557925325078587201967309880011106655022743267974019759028720869700308593916160265106083029769826888376965373698815773019424959213543374647921723655500910694862760117547658488857072431924122119233471227431865207032678608417925224428766566210785502671656640018606408539086558427899203834433220246314766505866427344565225823782259721122525905850461068096389089873888036764468685683517017552745930956784649864900783743544237488922132574715743877455139312163691173506449826011132381980313794272284334264963014525800060106276006153690522695379015876710045111060991159698670872300783405400504651529302364120344162255943124157850689671450537688128969961097119415805113739013643846716222501800893626331855804121669272822033024813001176110513542591028144547035242108828641598631572241881927794923981019201797434548664618264977290538864885660347306827444976151977864323492934730510393865823298151906148624067755813503256498957462874849702200687924293501100515816024142656861787144372091693994995062819707841827768160859174745419250051714727474900994800898652566741442744552415099707978694959867429362637262149713576576068330431211398839673142930528738789958305133484414431425391454281328318275961428310191628050410409187122501216511203371880217795145262201278925334269093203114663309030275937518575322419896481774729584528163420724117165559276644204089038356530951307249085242105829789942752748414460110868222041956630269916371809395634301889627204519228072162511281744614064843120237850927316470235096447294561785408084437809991743118649885967421648849150512625428539398996732874866447424037093946983337747786554294144791268909410445730825564244172270627056038085832743041657514384731066341411598013133557821561099379145365769741955589475541553038551155093551150958425534239272146323271352844337126849014165577041164121347270003162468775703692990480412766873973378443475815494059403155751347823126189140920679133289677986033494456832647802806595866556247533799062590034970656352870248848944884001466650258753507794389321241807718580418359885486601954240125501441474796755318319139218368163614127104205603626024324916520989332859118477330020054888973464335033973561611165055832109600784781250487364752503160083376425194291016881657700814167066999239629236943592287130224818752711132807563601844954365288943563380304625553361129400226939731383439232460216111956498075431290994963496049752237553571112728014338497879052814153074666171496823495510112983548181102008573944787333903861361135609666294244789873972593280221324621843643912562590367163022969102507566262411645840884242412002593953600840719596758302663597742337238502644406781896122351849468040079538542833459800463101078545317903819202753893853933278154683679641736941041172387069188472943529094718098795737033210457027315337801482043955293441609891599028466116614721317336235285366632849654358400246110726918690027565477583453905225848227500302445765891756355934711531547669567689724693924668680846277699833239428127605135195769453905418847105064847044161604812158534130628791907057658759613282083196425075411508009595297036186382885875498101151711432143873533006909185099867972158213978169356839585597896064758356092353480870110907125607027453767067974942611738554902878142497344861627508967017358305646210469560572192950929127661193856817560321286294352025571554499283038854225703497005235430102008191943036799691439257477315177448757264141763464412802323968264237756368810779184220266719296077445691317960867101361634685411283539405912721811470368441452235255566567652877549939599210634944883659187364688976452053477346408256453997362014347916158130642895488265191244877992056021340792842167012824840541023770824294213275718298544275789439996449651937484408600946541707290852202175149886073583550924627794969554823882660635503307280861796614125516769570492949346759172071207056964978464570569172699488521295652312782614496121906379507941138089827162046312800688687506702799037779017964421250201666769511748479807446779091545224015406514082458273114864582984498275149076213195816553135586061411000169211847774094335872295475529633332421222165519232716644198334039070586649870647609267611786591202482047415459465692048450364722603375339703846054250500505809903720964355566467729543469095629591914361260754242383590640821153355094381599445055258654444652009034990037182075380277067374497382544703523193453317193430408109126822594190401992175620988146502042954290217752435662371747939117378324890780780143320614385757781291126308878388767880587486133413855607188680252188735323970771884415513167079487886065550536097922865984689838276204963276340890281863793743480728178905549117770112423390735060041686245461783754062915498565217104284819694543473367859142214790140498942699323674123680404019709391361851265235898145897534300128069030607646030473675358328244625238805314449330981300116994455214566576643601007081344720336075880728539206172289780711501544528329174274766565375491568209108207445628296427867108851808301567179957866016193479015398163498821474129561654780162305177961779493128498590055885926295711978597934462771686734679754773644143113911509803723732979334597605175049369037215821857867778292284909622628487612288717968142593264815575855946570802264000290170858813545071838180908245842414249993118308684423646693048373087209421124428620513846116778295725894928373716405384293842190159532232154630253055667119362936652347770974744803674250057952373605387302536429326670053019170185097157134018979557950133696460684475636814694399532794629737250870951809807368151481519399472888331259897810563923621853554512890315621904702065337193155126310616512362644046656778133924560680595345531792470590008825672682677655235777763902524865769547757367787807252692565593402199651509281798867530194737985407384737634964901795959265918190062874230509362997232417896257735618018385551168375111175355129804158027717116959245205503326896890454991826183936640154107600943849431598965263850497176784666517083962105608375930368703526177326510356351049009955849894018179025638888919369133539884532897670915506846301796802762294987137642472681958091472947197698098672553912995837872319181559585335849554257580933732989475155639334560212934215623277458663742990601521666302104736279934678298588474272412094762852776602165224544277270232317764361455637931516874656086563223501168199631952776614036389937206312008575453562550044621328677856118561328181971331483698689619794879020799519773820759677773557723341368247677288939175617056363097887288069687999442830868905444923138884170143875017295657728076025663529471771806412844811211601211421190009688286117418801575577021697647480861576194184791582227583632080174215376628304876281996760409774645985076724579622979615984036734029666604060148285037839764867792680110944774817784792516735680254143946129490407219952272014961871236479944502338327316073857937045476722041492515843567275521256854689771938762245468475500291843944867910053092525191142742639277182129905660836611292378348626378826384748423897294510072627686035526456418047405473891650892248688731817551647450085868270509856822831011666342646609216686588900532482290095159310196907582289985252269727639806138921312818861956731699101289256869859700148281106979980077646556277349054018836965914022648947772844016152190393843193368653645509396667868437735466765421170974386197617131110441300386894934581554532425714030141733068260636444640155516858495084380807950244244784141376701032749251310773495983307320589792867750484349520652474857435335144087767892185890274661493804276097755435237846714471387828905167998119341252140228733239805509435096578335141801015680415510211256441908307541430994494721766011307212008349123633729808475090153793511310309308476637512158245291569885531004605501137177667057542203314460079925090511288489620755584881361465152108222357905074530105899472162026229982628978012941918583947912100888704188526214176257806950478476249229209781086011482015925133148200716950297723711727062029664006494582170479813483884648911577581243991478122318866492089818104205015441355374058448165771511802412875478919992044188849822531772091674790047424396740512068996897286056665776566899325266825976714532936259443876747940523272813117508591515891659847774320382068029995408524375055570871554995670220525061961740326345105742690669016927073258909290826179656531154924178642521399068184643731886877020762381668633407936013599525372127546094557677511910025639696415550776868563465218586488558001749559440680519690411944330187727603962820951095309920216964490364223949978697249884264538213055559349554150138268799460323837441362605697190989184190785639896045127775849796426568725755157190557261010391851897464800930681658276923825902560069830880554848562450075991949551679862427486309574969356870175647925225771726762814490326611213787991803023097714798997736078391640252662186537012394739639824386962528153669885634028912237887672675542666065967969577583451513035105160489144045419690969232367750973039973404665786679813342108929388797504739377446749022761426507405901112805067266361880540201481291445268424650820224301553851093488861846474401985900192424445891665604835649587512076085061044606427822738947839966182047720012418576991691827610314764535350941428408557377821857630183478616405496940092517605663798041941180589009363421507914183900919598830431763810915548899961110728437060823025281479068006448324090004051244293625714937189967199057860515917735802353222564943856301235095374636267779187997712417599002406138303814990209796243828161987678075603900452560153636559248623054023696537710601026198421398866513331554749339563769379575483919176222063506564006488184199727794552474853155675239865567520584413508843339163117052740847189173305532055973133773849760434207922557480004174032436441067119500740321639539431709957011374857131674713690539702636377926761505147109897607615720699342892132711802060955678116848908051329526438521608681884311134554524392892225207052806105489186258220347283279542995257017605531824153173600020302389404933791445738481752705017780185455182086052758904183832382829729116015118729380222720508470538419338145005082185198171630144536722511506416995351812431371681316280229998874121158791146146284775185460451347168796819078264440903997762183482749531500088227750703946615141090626137126461872170861417165185182763841290237691055946692914150485201324758188428143522212536057965356955902425203221661287390234296921165282748770208091445437255186375980033399125869965693607793255959199692567072151997378619482299575021616987414831913690571245192638511339757558345680574366406623050649454304307020703955077383249033209900862396613011868411244180336589956141740366474744182838015884435235758667389040077998884106730178215727534158576170764842645352971511452453513035748045423832274503375061424713041002680283052534142300615241867832214239990616510475647480154637728290545383475300950460802605737840866352467750557885958727472237131539543020409849532004572293194215924384541241595593869396973800842413769128613520470839673044962918744305813703740619675115266415822122442445673974889328042690207875884034601805585320697653462127590506172355644073385556605134826804581183104658169586814122372566887725486137167850342065502530513159021059240060663051296588320235243490117706632814565684841144851727821391368282004198467056283834816260576245103691479689717713022719933431879509591929345863029402122118754258657880608674679412914182239276412251937490964461392320559730367400202733321887366260955425435905162874237232931127528410484328785977341678208315755248381572497905201395627224500506163313700977996444095637801768446204872222384999667825971527054908018836795653313801284384040589066921283363946235168468965417474859504905802214235723038420588431967706826147089155145885601786708353981412349846056899050217589247254328009143215890276683070223289002764271968858515702837023478794275266709304203439071982164639375056265464344573949014356792435202374582235010166216849596772064969730261925522679151538765844390592567010789036917441987424218320852016249975222546170737535678182387490470817095454875992614294656980068508638918347523620876065944322376351218322463246639831212438420133449934892548273529425159307222222592731846290167924359195757350801071303042216783026569647124808894803567329657219921891961280414923532725712742834539959413670797398409070475384248873865190345526457253445321528873675607785737812131534715075455204660068130734508759355125989750572642741038220949193289604525369373272626589528540877707689542678742415492585281292325213283196230367239512784690355531129139726122565177224395392747041384991576816874705767744220567401859328179316878263692299411528020407576757653626131763926911718868374486460229678781719040021595354793649403216120769934987077354118661159234816687555953824413649118749738657112322665822107602005500452872162264567610849608351786848045921662216429615008841795289775051679612170763600173349955472556632820798613447870508628614220922633740634503836154371981754091314758044623537137722864061094718187610494617273776723000071822693259293311019495941898412320488102072678644678143963365621007729793766566724436426619538958258186098560890303533956863589353480892468407267160801677005645151410365267121745252137168909303969436238381670852214018716826946758482980923036195914414838662583254167168917368044894667700737529866499035232475492833707957659556076230382015599030979350308423989547458553818129019264743238852766810797289409481831105147603321400827611335568200799956986028604406537536648771290214968663886689780770805874428419724376299661302673075513458956754551266902158327213907806460538120325531294730013603045726583166291715035147918832854746291431726825542888079118679382225588146135062304193230347182678139726589182325002707144580199994284019885680988609131507224462236680828266582877867418888572069770608068813396963134145366709610315878579485094677034851922613345340397963327029026496769873425798780049430540435409721523010546350403065407870398498614700816544985842190405236664872355637548534497248408600190404387473185114375050052557155591032498605413382804282635614768182649898844167471066854452296380432264781397182936648349009746079159307967752936355734212783653003644918307076249330763880699664746000522624996391945333991585625454463536504987963850398429620396154778693456716254914357891908112983553637558000183507313009012644286935356266518123049466203650405696140693208378594874212899605533557889094235532768082526621436446127872664849461120288604501241855351133348036431292098345118324134110874984712223864921005734470187823761784326484737036231634297482176585807865135810728185170893971654686307581348147654561980629490032286795063773200704180223673999461025436630536037961534838182494833271314022903286483958139172275964749643781467702882770733215368726212314874475205966405507924053619228882995749108907927311736439521846051214657824848735163389952660767487727663776014642814128001195490446832479421249860621186004532076030880230625210435314494679596922277982932187506365009043510314057043276796454911791446561409604088847509892219826853475196023631034239300360076753963023455047349447421397593071592725038145900241727982190938369355525662511573672141810764656359579063718902678098086630665960390274492273740648956053319009822303120404799571813561740208976885741550688281700196564378691771195541349759115797337068590880297279913667344015487213170777329089585796168564224550579671681601349811432611902417252193943668514484369422253552178200324334815446803487148633289250670066398031212559553163857282114283220340603311613989305868854919288360111596891080658859465522862417635071892978615341507207546834408138138472498922446673436457801244030957441338324297785556907745452795840544915204846550189659571788974325769578804209022720007290658215565809985331676892733961685086527244410479396488250630187496676639717241882059136227788732193429496093312722977094395438026993027945293585820004398204565116407719214072883884331502455713692837063522072980131492167154269222775786399739761958073074052282093016746230178103478387578502590436386511140854574752129797968665416150720416516425186628231243515706982324703209985495699741594603533036110821167998801773103468569365804902366411848249762186826824648863959640895536991075674448536915664358836384219432461271759201843397380331871447006067267874303131363010610551809245160445087986155624121461387001934431312419366669565212985665222469350263321250178226629109799941937994674005608768960651855931134092747279587687318645225495776466261162813105084052999929044543318550634291066173433531616180494407119239806643137164538463221884308622321442988430864663167972655328629996482805248702973007679599440622174181234900466022807220693509053987647168220315672486972904573134596063366786907291254980993589880818994424523014172836905486943017835571278037943285178572630098430299215550340948802374505042528209991682342317987948453725866019328643836702858471225520476797095139324546767830802538232911580437049190262395127680661501157930936700660609742717982814561403670288604827400318346560269204236967463517235601317948150482464027367916769989146563624158798964801233769648166697050513609967091874950375403050606275063662436514488349625460054955314041129319517683303437288166236230018462474021046560720002620325228914657111814108972579268229416939707732929758105055602328713528136274001906187883613065051872009286147798105174602767140285599588790033812067152465004094390453133485810012387040524622943603361116368141037127690314576150612750079165522574643143538862825541494993761516175862036071070365697677329708096235217557047123276761244185133004939796820131710605232415134452305334538446026523907873055413747806377133250380733964793675844314555437381788486183521263281292212691014726558856624314438273389449043161084326336236617346368289467059979408673497271827450850532183066669220232922039875367959882111773554854478329289402400985046526321190490631707999265364887495701185649874457476499163277586422554348302784318627782296007167113096496037357055631555523934303795753925934497612374289520342652175063031117065156629366251484914931859227994344325892692919270906920182859825976371881378576291813463740335026656001423263483483034495970141128865820928109987636579090511535587484587922672771715755433580377775131111621968427146556726562734390282945588157308642762182798388000371128933831622686078049455739044928889884638590924592477924249148701450646715875177417065498627470302228953882410846230327989377521389254704579713662087991365230836279231099683053091772314288302455864447420204747034556612132304278627396379843703115922742973525736927379521604566381398409470957130235706627208921831017208893609731742497698918122963331501653436923824364820598280537264303570969852139624994883802587591017839316740749190391745553185709786863033072045469875726682197147114691225117910572345060861797842351120673414957574249788760324870834348661807405859329706809171648637139475789781991169403454246070327661474690821604761148073253058773668461215134342441833897110372031777868397215665664728544535923743086256756988226729074184187464581556334763761771157919532313899829926206201009365132525240157170632995766757810681452546497715627567795928423960860617260221675362542429432483661138583984146531489037861532809938697608293027117788975942252928885942738094727674961019272432672755934847641696826240080129637176499715330115865970542668764831015028409592950232307499339934674044941069072894078947857832485394990875393171590084519265349816272797973842832950534407495708422074188513069471737045020250733922098298669187904973960145777024801452957099337608841561426940994666325140454199356748083375096288367581335209230505100025503659377420078316402796103056184706800924929014293059415045283796432433880195428655103129103530282073644322953185703240778200354073604279996189383604223083156612012813368209729503979943085487620440655901528186365473810016401364695220652859302153450388147912196311916243556524116068538976432461846455711020652165120303037026206673033228014821813889512477620623569483788651669311750965218102965691888504176508277091577729400049153779380491043107072523500987390606504685180010916284252700089341574203598488936949264704810184177475697870977205953097810324823422926170014534061992181496004242936024086984412210065091378815584848497567460306966440945716247807196098532494095716888075506152529637770432392088522615046788826255911917060866783141063575245717057866358388630500075176672495633083035287956406487320863535636592171640699996896035798760872062554641151532709154338958569882141310860727646588159633352144553675915211772346590767795763629842312333578760033777129322991362137732809450515670352950640527443129029934718910864671905661333876411846971214673289932800089759187217137207557413078635313285059179287412734280361920612551838308838481789481082223020284702783575625964742699200052066386577502971087022197822600941840359422660875873416173983341103943009389757132499592027168753783004717102899572517812676219154368423268044194664447968518945517581046622463421013535583050342006736585097416911548857380264777626843607033148815553064299627431509717953880952839915304262249575016371832337031152459744614083821436234382118972156599986527511166334292411918514424077905781052101022019265155504675313909641035184966048663747136852319306242168771761510291167164656849481737840575408268910437480883252503738075664396901082799848894172782737930338366000649030196733112733260578317285776921670699799580109908050096395906473348460534334268555383357258056496583159911737053763105267749579145794721047109224672860228370208195422410957401003848624784257688583679097538725505876156232339780361629844021834041499487514357986926666967090023923633977877122992400235276265078244362537967015365720482192268080038633521029371690442330602205386555418936803673559386879958801249339582099726176968794177660753021493117245469938074078330810088374194561306423110359030343364699052785769244974731462025248490992810389065397954725654504590126759298331247773220760282083808506048083038367180604804138518148957443600856650751503960815023973559379938559241522788426930421140153069988501289935046311406721605592921037312410773176602079765346684573200027393040405710632329904865090708578699611945904557118599892549281025195625443180012749272256719039301219908993179279706471974643781675942225831584855390456134272832399323273492148803840536714810030217474940772120951805493842905623035467298971793817699536839233550381704894762037823251402783147884082648417100196293349521369476666985772421036690104962110280506237923004677910014262543232527133522237968022336586104151378755703183719100491303521816599818709033634688186547333199859265006339918851946657088253042433926739222744201005843327153399761873645944462769394665041611738368105966511859814875384537883846502226179232250091284202656714492018008937704745875674541240904275406989566679028675964467556828981233238669998495414581640002835855443571995545553524013314222583261729278221787105400256550275504621935253731620163979945717989601576682669323423414285134300917805509993087209308725484353235449877646399110724841750131314718372176564486189369403093249855763308116019429604468219493680533843107285007952300965622655437984645078130140570160085714773824929612441149368073779525795366501818355341961008696333421609171344910500771795212292896211136143321972800958864076240228901494146846188895021556617364762617960935577328724144986568446590248828133572204879364436617553562581732021983059308675763585352999583423717708661679301658639769009688646359663200002569699317958976262549895217044801344941452825614847834505749027769678842015087699896892232382334690510249473963841089305026151764280901875521880975438043930047536905109847501760074231010949959318942502521435516041136363690724609597627850565653834107932915313398052332299662245348363408400985964652986853590955969726481133346452217408463431468512012394144623854786362395575100257062491712675799298744323193843797810283801765169933325453421346236211562973955574877978457386779010189819416883859991926222541494726780982520444471766995467823846101850754776334006814004090368486789457715422337345626889009176829307285857675978036945336348604809670718737845073988711886654419278265459987781748543287400539092824419604725511299641795454202285284612859195221953257209209051090253064523892848414287479525185291856139535587087084436621616589113742356308690885991940437095078993841596626762791402460581802382414224993831613361823887605937480326149327917591062636207220047396032313088402035844324268647082154104907286281306800709515446443704976152207020687695302475620025111405277485270472426569281475058035468291598282814975718947131824800100193561886724087354758956001663431227080006728781553018817871090102981539693539234101041994961631640437376001197470692054046403627280983365693539727609216299270563767544865862991087885628630278125169635590001122544647790990653273256141824731060039462606845963962149573292569102767313147267926506292141146389830136381751128446035086510546427891709215514782481491295132579490406212623509488818958410004175456662575810504094238534103152327780061888913665762713239966817566530832263162401959569560277215973731383380823534520801486731253251921022239026388717052897554397928472362952328080640647500220674309819185369868083899658415602917387142771474074534302927143639599716157398782363529656201648146430582168497672911234269446153755688455411029683177260913640440352880419702717355617345533060381728517727411542884420623338077584099854190246620745022537628348169161548958070267256545551786676257580111471191471434933379178537334617596871641708726234670519766028890403542896937493624675654939144814369331662607804556335113635291534046076777505105067447809975165903104603368180000714764321094650497675074465956673493439186229073739671691516852749239730395600506238162675409625403531548205854094981277825650549496856154048128399510387888752927400307177168129999057821060281792873889518313536969998619215150455109516864639505418816754409332761363665990159580377471002113091676516859998467083083937372330864080916184447717889492436323312354084583283002534404576379174628263812942930221483572566979146423046818655275017323640691123587643310066225734079044523042888723666038899681100173923791812779010258001365820971626746015835608515988049585509643180518946423791847426115545842244854353701791290786542395054087172712667574021500951107692220708203924458618736304823246389293427439775534096402754594146066922198580820351171690866493408125447994368279960791890662968956665930849485814962239291353297055129365987039360686780478175071231041304389601056845445499033277319648572693942866037737116303788352372569791191552271410500945153372112471075786356237137504205945001787894107151973839670344220597573636295747901008403998897711314663572572194762055896182532371805287331712307341363826873660193475653227685122154207020030991195014236805583647601021610981510965060365136345093066836797647826966468775481040324790957075926737757286362828288234910962396022845034772256405930932163350869062927738408721566186056901688254946892395906170605271834047013400807300485910700492866012367894496342394336588653845649563307749641878330052695338126117184903631864294493106752347887381821432280146405932660033842360792987716941842725721504454715623300180448924299398176673171086357630315797869887045590341587680579980313838831238940386781699473960710086778897417298788265160580360161823467515795849949586648716089839106972979359788330311829763932712202079429026693150121023271286399821919966412993962724442836839340563855701644115374500425780923802443979735092527453579289858760085055475503275304261796838973809363145537722411147213558566620591154383760986338111854210274358298199856330863178757527457045789658927578190108467205225660301709404170609274793784538378754109694960675321212450023552981438294810204306907049503340179860654232804393314671018685983800736740446830222887298461828647911822685384402155800723820757897067727936890359371354736740956569878037912711161924282141147324056760096473170853306833694232429212966075956314305797565793282769854457163710250820062658486471197746457332358639142928089594313585227614666033177537516071612528975906056946758950064329153310431115481502406311463649042837341407902887697443962765693594745611162460492613996657140052532054150851001670074679680699102435151522112852378248759343560585341889425008114464274121768674700181745122535690102693198310441419854588429968256932462923533957872168108362674713529064449482216477365625054146201341009691330126075514884785283939600289821963334705695932888248027485935288913965626548798032136018548581609942346976531918955092707100904604298046912864087057750186223616677070757194983161677953672970975367960506969247677288301261416475311713124012622760753563482175634973266691382806200400345156434581824976867460435710426770789891991109615039618114974644084291400787550997213955847225509028313907127138909200338484939074625995798093399027780705141989328580503773994835972657705498677100298594444489772324794983172024606301379975066462967571879906545475705291906666507813313308710026624055741051732193344660899724646685164929436353998414906423496044218023143175055561157469805857635503218751607542189957012132967703683602487137317560871758873325757162642953093949689778029193310218233776676656805428322473556462775071930342604791576075415964059552086837843975474231699428929418590956287514559638475993834619573627295250204126499578011399572154436510084398606708299211509913521700565168870940561837294502874514408911541154149293280649022948705074658450540637345196087863431466688784690620457991242739208870091178140780925871249172745338565791646617221954000461633710779644708203471090937535113420512340200803904636669517533724022332701478132811771638565881643586091016956380496034209177590254988003323451572253567130562404248813407906581361933959593196149960073673706420059686316736044096776545332474992301609136954054400011266337551684158555571761656133618865060709466831348569791625992873973077702409034254690764224880771444010299866813545364262797606492662714832153998484489680502149983451646495617352495428201999003162444671175795608230824385106021270944688178575304262446198737209827826991243899184568841091414737148391275592535236087959304666393807888293314619458168540445856669539287188883987052686133241099768292192324732936015225890263950968139645364543376835860220711947740563664611658467382305373861917865469738652036551321513299803595223071636452442272124227170467970145243196159543697613803125627518715341261767589262213927673379360953354339092478707583946918359575685927764133265175295715290394291322595720435417125322658038369402691729061907239988586265199425722646007813759479242173521847593818180668118952404121264314130100707361300588016960838610983322576758850292382897955985764302482828733623525295026349647356423302221728647454704619557117678546229112187632135768441617239413897844082997705342103808458393172054067221364837949723345143545397032228066773607024019444835733225608815005716999028923414216966163675205255259872304494712510685329706546413141214347472300464182056264972415899710774075448575294249599912406895666788155142116940445752562260707145575775487034504930608755077783186088201430712037879379522737436549925416586464158764982421473339106374224749043455683555797357676920110568272878376604419397556138203952153154106786313988564158498379014775129720632972509989349878518148166442474488890868999287792888712764666948073055041664874852012657665807595160831730508365285852402470020054233586645279999217937948747459089479753493143418505957735896257754181501301180280230363380721982144013944297304536484530265479253951514141395390594608652983590096541944774564671142264162214898477877965907441326285942008045903082235310608093027513763204396389386200259059395330671955896752771933414584080174158362954891241038790391508791661297767429624895558644893932065791675366331140276039723135780701370092054224093001729570785057586143452050005556217127380287570063953248918792935339589305201839542584752374291106414268946910981779327274642927642120533570338738294633146464923016827474037790613286661654692293082288055538716150248772315119943686989314424491080474772929882860531859639972565843041666755641566324805413410161290152785534657148547160432978236433260431261366689952429976472888179738279735626775075010679704794866926267060909955295001486844224973414405126333140866910187574724978276991607222366308866579504609000731037747854283179949993549433788801348723434417746305048276988373928838194272193482895471631193561349565451271171953004764136299622643068386375006628924745897089816660489635706315667861786319205267491805554219709385839767760741424564049932367532327333109227633882515009199469913646559549937714829866330410873269719391775110493212953172730729865209767267800599660766087446253786692976905253546962697513201070880335381529881389747277875924977194975437500927019544651909382172135888346310304186710014021081666025320404015019205257936575826028750719809510494122108503691212513516260799541123660432454181417667659799869040567271304434274207325080170486285360490225071552451240465432192527050427173597491984082179813277925215857791275012628003060117172959617302078974660115140148381562656868268872510241215686654977498376852294986662772614047535276839054915097102156447936886294425164752388999042706204212465007233099764605727037815383276053353214521284720885888069841407365434054904660257882915264478667224883423294168352272814876641079777825430985733030419905530921208591149441015687981885729462823057431522202367096372964503611620949603877888654417683960757728956097933987135915112428180223454404953479679170600668059988683799565073788158504299279355323945678272778792298204813238406485187620456495497288789556031182904101952636987161844394624518301177387297136761944874722101468620601898816677319757760479928407536586876783224699671060240553645171782932831388552201949807214799753687467887600498453596751246277325243181262826707203286792119129777043966948895136890490442351845592960278066221991459952810492634811170495120216683627835418897253069062108546689455796430491372290446321442718631518448677338182168703222368008021561579413324446150833192101665111367276907195544376911436573898477896311627774670409887229859006051562471607673480237226944155407921878111653844805986266587206901718756030882154965711809060469568978568253029704563895411975800604621778215997976063379278148754582828968751521796518969812764150323850922963099401831984802776135054315734803220463264423762753983775777568309592907230632104675810883680805778985033299567783210794162491749282388900034970039796121984888667861513015839080998962478732507324350013498401419992000209521688214482691518548615473974654246365051234691019431432276090563787222917845615597788936189634797635534176223497394219488711268036942744940047812426490321799171616777045724635378734892530883935440448607673331512270515587277594027455640531966712837071849299169205651246970258013541223034265164114955864566380465396377552566635274482776083310004847726337847383184362654336635004043851470704405691958619937885772706428188503387970840635821731368893002613610633468030002402785590985516361290781082681643164138933542653419029400548892294390103518911038741933141505360360558706294576191859925947743932099328821787561269544438589504375365667728840812753926004150076295071933120362550349647649048058683126908633239700615028546235503974876129352006248962406455104582007270418180719934899793710562880274853847612917497735499619979882639153985876693916989766204350924283944018145001601441136825310466864728428782912777313964414848181798569990214299464928974088959632734362290296319452843820121851021693586500259258199913564900497865233522304404210918760888841452495600505735525917847344485058577482255857180995960751694920335473881158517956226656115558190363303444140369975670256756165685526079920005439607256174711662927493737918338528160922235535199500105491904848043797737384299495788412931698259250346539051694991657932286543347030338832130157289721266447741244919964896132457216215896702260806822286020650015110642083379832437067202789782328363865614943163916078970710456514500131681192785167652831774041777978811631168984048617732452785677659071416165661015512178527223307043691685063946589102339174371445775084770181963978649561809763189006272919796950647739572145393178942312823566942353600748358791178168310113070933488034474712818044943955108663304626760415791319338881197378889880841303482370055258961981183512174015996040154339945890376363494895122705812711342503485348543256459927306714539693640431696922700731678581922910459243236810657988185198837952704402763088944310336005734769702973394202005638119356442253394867540516239755375856707715045503509450051224125163610447281310209791626627633501585486712589484788665525345271411956238218700086841543631816300268918719246149309481715952110568435817304826370350221124547304851623116377112976965515670991238606910949922542332147854410421502888948798945120380066540120969796071475782480631912788564726246747070540612621331005165130798070390345418427760748486656126154424194161828648746924141660751579177069837895781454039559033851292766979312553571567164950222154190247554098239224176370249098756937570257106186271753352686215852801387124354762916160620781335174430737380721995077379964701668040113525682940067895565981438264538357244651428261908033346958506600989630202130222496053433280712103819126787606851073802340135253536403549582542885021399074462180661745657046614048427877363198341381714472421259723060649050407026796824732439618585703385267253551902031197449589724613190121253638501679013096410782057281140693506745877065479905391787483279561019364546957941151583199118027052699848930172208130404098742363944083729160283242435667341306414749597884859370571143176450176583053898407550482023028170175343634571957720185361063845159937273883661904585790669531419884836262091131605036000278086275645173104140236874089391585175193895851224163915115437302048627966051151086469695890404221319215840116228071037315689958092724148957787107116111316847015396864924146099842387729039557449221659014554192587111131752912542399138386596936525389535651498399739569055909733645499281190138329685419973620123774775916082947632111876992944439576379034575817217198064980549541164430228379092873714760499612446743565587132706377299080730225236558242548265326508111243444811047897311553791684512068007268518139271296303239164874393086629848619420249785032954200921156381898923292623125739408922661272426013757317121551458047303146172404112209644458889992004146812114108405711305863502545193981106467309514397181950750117966493621967398600416531391939666696097861714915081357843147404437526909436388699452329504732645927706418766314988995388257218153274169509169505192726583679806719423493912819903621649192901851250592911394804510126233202700926202875583055344702808504690970172186418444168552900967067115670150781793843752064537686458090181397524916360110951629924412785987111633912783342831783799483109913715137998409327237206403675860314408973466736740051328723311633564223140778744535587572444327564622131896704969166104243555944262100224199574527806638426879362549891505521600653596290845789853215049815714372573681601591974745312863344634000829164335552959236400908000692935443914163447164159114431655923939592527896859195728686702517593368929854725993811814711634734163778790352559988577069565486311821124098567893657025366229878942756716415359685719936407189454399881554309327456361815144820856331790843178246561500702050856872811926524146723337112883288913859687589136210947068729169340323736786892782966366907636397866835394312271430782884432503790688713795539058485338254083910925406816166596771229963468442605333897950987415105735496728916585672287295512668008532328888372929862354140962884943796990528387735748322457932929979120132285349937958731993820953638861584141060309611574529937787565326754713018362539319388639289473300274073220285985521493983471843130455920283502903621405257811167504547372644817794965890678019203303332500534146782503880569772403736011687467653515490937264073248786950233972557913369188320359316848446521386339278716880353763721729650465505404115033806934331942754445606065632546941751627464776132083152120346359857292074354416751287446564668658814818354319276229304147579142575517882864844925475572265613929401337056271340253005908872381667369439693230819601268160063767787181691437429347981479913369568176890964239726774036974070535178637994866456519165342403696876280775687192261896707529877010105794342071179742688128756853316138280885823588941091974261576843275768737760312866921232911438067169549984903668519338903814852482069784370363234010193718313406759284905941503764643598648021022045009965508280895377260115359836986723149204630047372101237975897747429241062535687942553184570435995973897707648544106024178957439165756316571612255067295837621968116705239709833604993087191326313811760142533297772696349014360905098843558808689529309884314674844311213275225692586156869025251296843857699262883957104600037367787080856913137781522879043761107134013566123019329535167533655368350151192044769100555831181269852453881329019573714810335246310649907200155081939580274968711422232044493289577838605675834322315536897277928479829094496151227305963053101282657637845121525337485113722886753630284506184469096650994331898123340727143228291449228251169415750906432569263239310525299586594215434998650819395936111417607501599962965317409659611609740842872080988330091647174913655042312211381285432666155502307436156278221897227807723328430919754171601119553466954428733567213537730338556571225176476709202000793459790374516585052719889355699258690000982404094816750973474997577850399527472393790087032333139768100482412383890195505176650992177295887206482642502204614945894711014505934733285851060103556160839305124511012256477252365283879758161235721355162521074886268799140959277909548345255965490609814368273299344881776364407143971283846524407244101332871263613524652869562917382414508135158040363746302298983501989575913436115183660442064934084409027123157933810863073270571018886022237752960137695006155357321949330293737327180891879384603013478184483044171680994700718136927221279915497006928319649379415863587004945582152897419550483190159277095599663879850885114952030095831698762471153993905413013149599585774889172801149125064552195682395341038122764525246210217949471660641295457060586216803008742933439221358242251987308831387590654986770953587030631635686061398826316412641523432489249109889427366760365777144589245151216881782442862471152113294490520899506160682493581335275167293848279151495246422991678592580646392577317215406132770538363497537150173162099307656171418391981480558418142398255626698351293067385467315051809928340702301635242112412124030162628048181757307715865373242682257382358484072387743277926519633612522225586133397805368767247175294610502486474716553323373420806515100159961706503574319393424062637542062921109720931762776063519545273253235062772880399118214812420168307109359539877675041200471419129768544550359838328743634804140391023768418536377589716064626794520414472656079894487027133896224858737313082919135995304113144149103712577360157972841765317128582672335028082199232380580271764770877266908333153918430412234676641942267512971181897454949315467924070024830583833426616677744542224639865077126081101911801057079461120732318614166380202490033178001016701311747864880138493884402218223780738308253968916271542427503922340137242805658211536092071145514285355318398696641342820963102217785359229512487695968272039773559670679885528220196177350868775504370749595457666186217375758811520525227887499779305366236006912204267114259090797000136456217419770899610510353595523826348385451718798339261017355268377015964058070964156147479377530555026657881577173519677897949123895957395052371867464534008921426489856393860948543515103720589383814841737764067637540674417876711018436140076154790528074251655112733645952027033258137673370657595536555642365020753313414775006521309680336353031541501715178454571343789664941585017193216943114606449620305997332073175145994925441020866325313286018317613634754370611609190329382859765840439386500239886819371187517559346288331018116745269774108963436955768845691378316147872110841307888563755141875142241991707819111590565023693136363131597319702537176550349636493503749616906594526159160087723216976631607067075498194361245345168335001918154980199677230759548474789145244087051716945524152152009850726481627207913219144786267850009398488641338983092875101317678156110893601364473348347426152040173621839967627034211271026199938074870987280646903689957027654692685242438460904948249692208786623114403014938850585390925414651721048186894911590810121305883232635585068245094600005164327935477859823641961851987399734629290651791220480486974413055932714803938706017173020012402240178910215603829336096639557732215450462292578792637095144152234884514835408950954679073799004537765836904073693101605740086843172477257794345980758867072457406804511368381082190655303587588161084613027023535372439969786892424076085937272096019379953210332941865500105170959250987806998381879412063027694487278672077645846194076058826709551262207257894597209985284239997851650252848134568258916715470725313693643516364116521045782869041931933517700834019074401723524218191927745341626465458232552704309085529843683109764474841541505860012498260238466681330721512093081992988115481889046897625555031760505760193739556739170655038469728061247399877328955821521461756096289922734284871061989133586423169274398877951715940261099571300065682594524956434110487955743673864897244938201833053909897834035678227245780098527234650165677510320359932569992353143979331270251484663519371574972028072408668156356100244234473161512115312060944232964626683218843411420700798341441529269813762986916058241026893122502650760054248827646021039824809437622126513561618944144555356582179171949310444377858436606268343166061558946792278414444229269177037998861800368708454161460016252843113949549937350311543670213099515929150755202623600305721944536071532169699326475205994024533899903605608216495430844157810659468656448453485715493210865942751892509665252615680446253690027364235256806689723342169138417155702509736995390203616631680604934420218944752998855140269450004254404461391026182387403154145513522300433589835347749768421422684011283335967584864570419669001313156290453304978778840176765098807726645074211753682215013068474267079754856542563917689585288364497872895281560809445690227981141121566277630983828307285290671969241847900244866534105522835675073770642694108851067471296147837456088360450624983830734783751936911161363572336829950669099289084007398434412882499470131069185424411913218444383492597708709350135102686749849190559101352588058955328497183085995556340581021897763616617783309996299019924589445398296642549468432759252442073329473217812210563767860484491560231690140196139714082490034789252299914023762673190280637462124085953343870661687938708892476419619802717450450515374020865975079226657060125379098329974668936148775331200269650307726839251491167453010991537072230704292775893596455434953471130829949366001278174491138447551953552895014931648701528502874861992420581848430046349166636441774176064902527116542238011733425511865885908719812961898601737338271513617252267103059363025615112450168195964086583788383283262257840234016244507665781838390325892782014830112757883460397181367520579546961364768205755830583793372739330135344350134831114190273742772509557010510424007451421106332699928791315093960276480117321527912431120001494961858816763841648569872891894730819738663990725226951214312704967197704199459163153619321079836719721129553922709534356646121236069303964268609845399733260863780822626968875158266437388760680060225969901563372491634539380770461851038053796561452113802386807961900387052896043173742039771232416291669760188427964857340324913330318231707992336075901357469832899017982025687413882789531005280170795875628577973772984223424626576073089117471557735722808166328023303270451388422632661697365492336984215455048889244009916854197280869335074727609544926425232980590474634334988417429318786798536584179364011565814766151307362227543246007765485095498428652894582387148894682415421306381182427798066389900548823013100360865101425708072059185936669721644760079373586375617195507343386289334209737679016136473297959997380636512425258835357836388604918280887943694125979112978934807243873430786841574756839474007705978085848271259684121651769692760436475835680781655044555438547449137517162411876876444054965883042774646132445006694206715679535997283884836145018569137508651154061476148655092600101388423399184590203921205802156809607586553841755289664113908810208295462629867374824873485338923066069877467786342444686151176109858778582773347054547925802291151652652361377849418483229049761762684692811795902322284675195496039287249188644403041574121000077406799224826555184995474893262210562930489311139239330866325101146507016506714659498472387362412946359226380806245523128897182132293143447403330418808385676736733467124804752539082901801142296724862233184528725151427330180568107626546065571927930540140237149573855007629844338586879178199540898328200666268172240536569793652335089772252821355244988464910592555268916736845178114238558036934279907218644867319673580635966903835924038684962404362350049764851759173080575997716676342585292821576884815540222514348639863603907551460080310855520736830770004186284581442018236153385246299054536985633209573163947504023586433851330999294716919725476859082862577517961422797083788320786868295526374130422019844077728933992996252222347495391813971541164809693851919552929673831045380110319313046879652582126903073059661630249109098637125515040152316322683034978641120955673060784478719858208192689724152791934740665949249718536512243782526851645422891477910818442906256693922670464866019684444282942239879499455481292911569478173755587405693395354091385978984019326530908858660588209755967181176080467649187865255077211533406193152845906720323106831824563143133063705381431474414623468331102522811792762359315255546285447358905249801798581851725896003104731514282831792818031791243061957846450710344684674500129081565625041247124542578327619718214555525361496464056205045704912864016224047704537583474822313934507258593395378878937436860381491996861370212561245696375999004116017362165248711947393487999393852209289218799982007992423732507906373362105613607839530612327255939692254407964262659733718519856914087540924891058192858732254224071530055134847038370161612039673464478460819380700413326621806522751150024334475020020604817639744391317112865753268199926753816410814069018614064654642762853231060793227028057079137641548999749199541565247702068373704319193320861153986409492025265935362302299198007565738353658770862128044468855873035633397066783120876466028770518550680888101131246447194912867682155685802690809840070057765656046138453026254858922826374536347084154760986982393997530030405644589612285092115564225550808899684757966772101219669032597434876952774359826852348156541585089513217438714686474413040101226349585531436334864133331953274960667942848254469678338371765373321678850766725661540956592646119309108863830191353337246792698299301704294246055343820041967329610057393794028892467141850030202998703928534587120635838109478430499911482473400949812618733303951200368099615090218418768798199117435480537700211259510638827494264431836011793026260720366427339010378579827205377531610624018529033952396914235815605046513915495497207934267371187145862030470437416018154882854712923271734636757445020444916500409559895129769720289297628646477318258377930729800035388468660441128590614672662966207380738627776210337094583122892508127382991727268328779151018495623849579426232298682370563715676240358358804603574984953817571818662052804642548495493049242630581291787219362982144292866283003267969458822874251485858335979582368377960089870469772566549675201397309025926907115771724865178570177962330507351921816279242575419264669666785426055605190926841975691337430761562617222030883557226885432210299324095183619157752871136422195617259235069992065964859948500562853514823708895986574045880723606028634649865526399735698987694000646550452728877835828287041770174427256884685258134313337395930053448137013895411554733384577305812465678376876033261609249851950600791822974474114530196564182438613031444241665050476506761445652285752908675616096500645425307334461500646824669072140379696946535055915541450719096933866734397924373441086187134229371565656925937676450884198422365970132717578398515733630630714182698921876699207807898520960861795386949253590015202654106163808572014274577545171502609744973656169274073516652343974523820122425890762224697959894341857445011048779564551582693800860864485919775888322650586816534811270445651088207619539476473280114925337381378751500416062075586702811636003005524946271780179176861421411395157298111523685794331300275019078843387972355958944068695151243242391512768108477998804637118276135772242878612518939693388385648400050015894574311424859994993850533269362753118121058227688804415950779495003660587722122483771660045270012576839361852868785679689874958227012459613955539188036501896914128926507037872893272538858660273838601530754705531354689868062914159654769883517061272575166356212702611753785288545725529102109878350919055448475681618683387368933145954364617787892439250474383220808334874309237462092339440053988086902267597363624069730532770240226830536699062058391852493131876702848241796401341344480780991720389780384396895483800374293253243071571783244616926589001973520469533709231452451258110069123598285587380068147828826414271004395733694758288134437233936288258171387904871858474099015016752205231368775504147503700149669689777705647576408565046258825828497371125548605467812672509418001190796770551873192417781521633192357376440469187664740268841272106043272611603679390180676809737359396383428957760174473369504819457262271172915791352375732330149987668913517363546341393610258628990883403006905069956862019996465157694701419111675499821582118822783312362125811520490873388398962857153160224393089603328512377379207731272897846706923961319639419622321764747321853835339589839022925035334942247844618679163809825966839179854119918522685189084132707394326245037282817758509880552250128580544254154751797935296609801568884708415905171356887565044377772321586423054207769196364974691509161418130115380027711683081198742188786844041072167487355991212980339462382136424384155801670942186081827234442409648473848448072946262204796491617718031077171385150027280102666276021643009569484505205310498093826721880277754996671559902873999670246863053492262156509043313865744074192678896360715793416091214926377920708837785853842085239197130158296686870595912638664729784671406848089774523734107604287560549741287138222739631572794470819108333848644987234456340454865958110256854430786101745028172122205737924716933782823050879275325638895908935668519308758881394878158107389486442523348313886360649493191146383711387906917715080545753806615207709033889474966279293418304999383769009576251851506997691020864532320892302169573491521352185889553211690082725115160046124937870491571671559227588186684754728241640448231821472898530477615445030490361299055681888349715921455941082942159670098404203183659338394860530288330698412478777280116618119473179134505385131122297793797247377343226312205273880953889662287880326589943498403592951108971768186431767031820559155888241190123101865526571271402455488381136458927810710738026287721096907868723745043110117894759034637327086477183637010842100148969621742902755361512556741032287329713199428761614174969968197931882010009133376133192548014183384657900123778914929566579965795593131873018340685250014482268719924818555099079110679370190338977678088124140473638066478182260727479219977697557700825948865564119317925196142393019497714981536467859658791179841835862430821052453965376095820486294103349273298358943723541593031836090629924488758909482781986057792308124257963754339074842917622649672374002806444519518660962734844575599530377527062537824237262829835937915721635967128722153893777432032466115834507453450521033907303493964764895339136549139226305342578754082646910347314702516461049202321108158507578881837693472661412722842949487189452177194069840245219929605405508180605066908961718209073547934946409857446579650699874923075059742995377566747897333139002624969496807187387358791836537500105139502265583033934066788677395281805810495666147640802502544962015774697803699040756029027294195853716286969665370223446726267854283933009033912231051393391759697227114687099331375797310856012487725898812993285029374048716921393672951028582753653644185617833308750390135320335854014038216890770170909810741601425489970452621534212758609914404084037626689080352693495677330783950431662908414435273598989127654889579475151366268324724814679711097553055330549130482853125579212579971392917188569363339292563210095439548208946437943160661031650196656685446983464345056469101243549478155348355455925103773154490742526331195247490294477848386218332248426061384834983548839590031522848849593969246012228806878164167234212771958317824627098642069916075638945799600249630865942735953141354707838540464455016891890809205649225124638190689784541530096884547478900909629939929767114545290793310537442341731460889577716188901115218250135862543688277291360207062656577130223159565984621750749440845895706577109281083066649667763430634438069993994030581232697359314616778823563202929089052388727886246721890533596619361897024631991162390490111943709885702060203341471670870104300662429694565489286043277306848105306346469922758547191561611994374715739947240239276813991023920067376976895687468785761933301942621216017431876018315382375143684877968985085929775723131877695356234196872334401854387526706039389130224377734902230524951852576762962562894177678964781503410627088630332981783274954141486211820380384167209263485096149268032532385354796502353949756749507733264883261865175896734540924172991279104451010680624640164921529088939550911634734644754274840439275465112523867645027821032388478495412286941855495719470527062514341304706702724305799339874963090166675249679013568800244258070674929755742486905366841268949266203826793584202866658813832567150999161092699699961471844120131473450025035613037012204366069970061553888542040616298355643226204199561137791721455740287719685445244884224101107106456621613637785289033974873709012017141975537100681111623863247749578877841455140769262668065785232901720365881578498110788994107386658527950931061198340572799722063887702088687732212240879339943075302578122173791298792482734202126986681809327859960740458916860942269608586530162367468313604267150356884320372866861555019713715018091822838131749387665609317783691467154105032464115549883138850819188869887065962059778220003894667601826348644514534707936119270276865984759648384148795532572814247852139404820781001433311147275983403485354668020360053949664472825916865061400326018599677559863137062570816050893541089731579975562720511913350835025496306023505605086065431169018867125342973577727732218270486938048777212493599707393556392968945446317009266019152132740726546069233887560960750770357706053755708057161776198264104123421166737070986589070655314086807747403712061014295821543712496312166954479133726848547157411996226391213360179350987867493204925143226571974223753392295609996055802775799920649519692621203409332878564042900070087669420136993726294705430631553236172229301508762573431025858874441949362766774269260672044246655623066961586527584583299411264136670088156499485864546619462274301027129159302693419813565859334101172463722258783761081263681861350318187465033627917803661437219421473092601718752336234431721316979226616299370328142845431219335153569232630259132202173359854006593382875670719753366793431705183250841780112592040992362840830432718913576427125914765128855685921670161058134209307037248774044818270892412863977248216062937855682544870472228546497161340066202841342775144411799778144985186003052587566672609438510839679231764382778521666738801266784708307767901367732220993734470689186516981899792887929006387863354190555748166924317323337140472504867949117076578874864789405750123167302996625818373275723380993061957419723719811411082173070327651354798234088523429316787623377221678009844815179547887924981049068968054873981140059443459970353562954961016893088176361885224431458293062293211556995974479462081014964781565204045269088414992540733136034183071994265859020563919752300975698509255524700699816535701330361851469163457092328400666550667814876205310997388988709210387820625399953951415286595545320922122535412395022064747036025623072323241217705396426106897107610760920740305404679114835387862418937580567350230843207524300304975590662293806665969175274299822169999501563635596062887199607129446680066451729685810118815462149177133068480608936041894709493096315017914945394154285263023313916299694948863213165920739500239517269052910140186514446942455491060309694831681799745474175880518355144020077316709175415566996169146599931500374881846243166931682652102142499466883505997655054940882003731684237267790282794508433231167938256395699069388954043190367467702817334236032343463126503023312364820614199277847031220418610817755707913474757291822111225323296905421711020692139266454420275733111014323743439239914841052317844814561137867938069202562836975455966896211015166455052779319171775271114741534568616657144311716645500520575480700566913134731160417045523629703559422685177195154496078906276316333053803312454989397763265899879016765246686271379851928027230080140122973770835661765553113248853463022977076575925479029278294006194814431611644658932648073305832022715547563746691923305666413602006532743952271876787166961369147033594959294830251095049987433351956376018063785505061297045273202686343232326284190351018134538712744786166164298733059812668723703536279416234167614350773274126499444946675784994008859766736522156680934133649365748414905542454792442389559644750158151574624030058321047302280778114840579826226739216552906904841966105586229585811252113588489369444830213227306215456706597314101467683184117549219080883319351618855282957641309377209699771623614414270139289338960742230299886083088642269917484124921201200946688990758094757979257173006522061039832793834947008370022341017833013870040794498565263581503540397490458581772641378543238721083198537242742713370735465899877563305753942726458505649337492894917500820412953983098941409512123785356423483554423309520935694850403159668583245563576976573750162089891851974956335649380391159249026028783964431224576617273126708108873942245215363425459668695835610616405609709754020185011615347784407741302601937262931179432846346059564597283953786680299296406728197166201839765483124107157849007076962655482817658482707600050908235661134100681665594434048808468651659395439155057996086744589498553872925020123273779915321300202602571312318908455826774566397107512025476098581573590977381081848712547167681222978893422564952472683667775777428995458468874340871473336340046765691793519786089087693289075974006208639842715562182550391842254487884510572301301884802674099322154219917556773490650964524520887030626060572843059799254031725618669569687952014285050149299171262943909162697128258272589922492971620789569881295202991748637943215612088702030370308477507097931983638521341482479235653988015791030477351111039229094820889891516206459476344707227916557891474267356912258744693903657620219838354414789237839255208548461280181940775916719311667296855149258376319259543712318425915683384363691673458572801892722834037949627977547595217526698621524909405050795361641489259521970359195012641310024890681690942421427101530876463133210991004757163027149430831341451269827442208368331540500757386048628641946195080412332060404820500780890277124438466991486701923372063746077673009304043840947886981840849059527920218484663687851215429011836385138123582129152151168148380163066024999695759887406148922700982605684084052445324504872577422639542670054945399313057992561693208025147778547434564580423254068105969583608107609907465929427677169719959347160027766023506308921730463809425952877689855062790042755459293168075249231303964354991536688456408829408742089201844712708063134857981804938666220280991532457160201421561339222784824864566590107858516299536758118386381660239482936249747845795260767542200257745887807750432371858681344206770027539515285970542471652649114097416935482394967425654526009577877515227276757931511696121890369290608002391372254364630451798802216281698548984139668780543618909755171476466058989463037957995132644667473710518647661618386973299356983221453917163989168395732330092698869838632331934984798885535638027703103037221718473621929246225020800058403454790313671722946356213391256761839936329034752067370690115505110923973071823290709253442822450006897685601641014716668945394529722262405724949148159443386776302080833135759182818260481274623939293639194206536087034654494056510272938917276457385275639200808355959112480521401989336271973047393162174905948069367012748996906151496175395708231972112069479029860442097430213523505003734391496944410259426314674872523146825676179219133001426984018420343531278566501580795964851837071618298633822915105914479178740354610551676438911072772750987368395659208568529875971047650617455475312529670858640858160714461354972024106142900084547972757272221308208613840701288782243141959928131168794038422306980861665119414297521806382675808807451053563173541062927472688974700091220008765837942943425295274426870108917817004213542474454058761604846166426992085326639322606732314783584995905485801204576949446053300308532582318171659000259198398035415823387290607043392336891550906781927319482561506548585306959324601517611495385215480110634313470265014639694719904077822273625434780902576778949785309151540308965216602740741451581315287939029171010493879161424767126658948010405021076090400353448160229710886536987583651951083925866212567532813891528624590290422870334438637651916883168764092747312001075161153854448551562096368653775029641707523283579614505678834540808900299839997711008603442004737855015985482289166768649983288847484803818547164803200811741983626815416897519790482509139807225425754089998655442934768416645359990083230532181718088639254721944028513961185298371790438820972011403368299308321777815466134143279065842000888190677502709936102697678617055241265456596233820599294532854927446046899382054986638400954283880161545727560870808687550848872117372944460796551434909799703143850361449414182778379412321813699518639081104795088472272711363966776866462666763400461686827840172143094829986173911905035991791362862037933044282989261140327217666569621720984698731929207198538450193532647013356901169929020491782547571344476900955690870294057641923647247873750681707962051761658106669483811897541386339838105898319230041211834715757280580386446291768929199447274111605730016592270864796475777093263155462781920365265523233596981500115967592158153252655972049999758742324326168579267278987340472574265315419636827849941918574733491416566054244874462579509693257136926377269141373885568078130773638502363509960642889855146822180998516291084448975328624226122743302590580348452084922169437627024761949560574166071790203447809767279201632124911679380202364994775659596637378271927614847842253722103896271990230630694893318892230274511493138886820719336200526059182740790674106889826666557244342847856042271247338003109586907226105416717923979731554328786434134680996540987336741932305868284831116178910205270489088717741600941356723928508265685435198282827622998330171365687267266190605504194040022117273308794450262149104110679187232394833628488986659481352906623429654984280821333820011658075822243341959973068819219827029145683698082825137504678462644390349980302465400437331260394660832381754817924364937997296090192303424492095919065386718299105957772782397249182762310124803996838424821408047978525270386194808694435869708375120241802682162964036782908046457342804645392642289223058059852560637936050891152358495289020231151072171559261905120983388936313197790591082826083992987779448022385526469879556243133760134380564013977822602350026877673989692783641452952291060240634631332449391271837415757806874384416454809822709683068922340807474673212107764918779022334111117850855442844024187663814299663956550687938131527570344092162949964254101635302973767752269181743442129398638378839813168835005051844926577612332702114598292962499750917787175593998922880643716157366238905486175470550986496817745791221304005869170290103122147988889843047829223779003802008489640660237185092811070723868012099605493885322439609514940695337982485729597400567443276136604559493207922815086875902161957186033193662332519364395173358446971405791353876806592967759664177527053285981193392963584065400856703178669246993604287274251087989741383901074553311810362951686835023828843149837113988800227647920392209774480319148091045842889650638745982900036573901395629893542653837942722878793896653064068538060152072419018468936415114819033013109927321203037821750393872307224180676551003024260093724215584891912547670259696534737329767062780772780462777501330850027737933547901644737292901648140616371977814987773655692332451051923998741588423058891321279217895297048240829504207390315273794666942862214575216538401679847570271569474388255707315659505661605853556757572421518245506952761477655290308421885249542797058373460856073381176239929628950273657784822429631248200860180148113559813529573947714532952079464813966794221006518916307186715791926828175614501222737033495880253711671910258056322462226198181060055943490904648665210628104152264727290544311345469778232615694084974048647302211242925174343961111881548918911925586661288158134435365200769892676136283060991052992613262689413898972261505927607365080117982696071367516106865795897262276394153615372075002971195017113893668274503405591093912534634653334755406242235808564255116768298982960445277745743883795745978393018443650547898715243159038156609321394505079947763048592234250183802022852921544953676655643451682298977904858462297031289358607368456220896050507483659532280091156052825638352844244867328049079100760579457265378569367175089592265393299006725408366063109538471694090981345557783318866765322535683840227774202551057669996252693158249742779083883490765442935249181645180579813262517842957491529960397809057695638491358797628348979940720606962195042448434700397084825845751322968314903538270229316875206688346642585790992360343519416861123379779947417740517254293146804741170883452326852014076028250131396647662347078401589914782462464209044497599594955783496830864201404504057621200482749114385495668759453104963529170152410946894931179989332180266219945873501900249081543873635481015062412765780652098279025729777526107555798671355498282458018457989907385137638576857287041446981544781858675675512350322147890468654999244648201218790266060139323249776136376981047269257816989049026914439394885452024017781219675233769812530158036341947720567965244018962229476833481018850023863523378040425618741609548383494011325073955381967256005971562235622747602891317419160826279411473208376980511898156408776241921189956558028971085948675100854991530389606106067887456769350365413742235552414438868138757379860018179617242418221466727703921515144215677239426731707737497539001787336069790036433088248264321226934582028616963068848846833780044293396472618810615300498669906990364944836416057380709838151149267361450340819664525832530687931805830755144069510576678672731332237491949675091517607351195842940003131242409847266064656032276314651799750704264874855252545122326339929801412153105805328895406817146632257754781162142873086765882901494162991215116829741358344456244513216081010427037175798442366636333591466580499806170727100326449574642893019896197319060828075182873370085038238780759659230391678711836530326035430173481019884902103715532840464295709259264870631097193046329138999327585731961854651636447204045577957972608504170096501401337600316787017026792406023161691213047647412719429407746620147322833056335273352231909811821332127098322484518277602447628066924145428162619835812077421052335761936026384433970309185513159260614547528452565321802226570265455888899553119415523400199562247695137834872865477040834285814621574295195972216946016964198014512718785750538226891147624874480140303064393942703247404289197021866650680872557378291420276717346884593403364132751423874358108020054985377227241783481798863695208097608846249381931507067527798300369151040315198924504701998520921338245989877903003932839935076551733255829777176704116322368080009621748185158912981475106998205222845589510363407474144992919368786838605372964256350313727338071586208360548858662315108681649670823642301286996556652097515292567876198069798117385750400745029319549841973821591540765728166542192265082351583647434979717582346208549918136663789644958943878353818522972874673345741846433907542454673687502848851833002066429688152958777252483258812218400039986467113147851505298132591377009419888035333879573278557789782963468373626037766551498588436238195262221113007209587636712573870301447793703400516552656251745744116099457301283744948447539447387261383973215192516738811029902363431301910719476071849145932419154974689405918073591486137816244033454759025252857316766036832527255044157525173324123151766176753782048483841918868402619087570708047387650128653101199816142390953705507714872135344449321088039823207586725243425740100532542607596867147105210191086480612420698837545776074138401962057781946662982087665966014053982653619282033493453667785903249174360088012277480388509160500885774007413768518489179759477191240253231290347281244225869448988887657929925274512137260698944945425731326822013004690253108038921489689057926302491960550652550642624773544002686547011141930800671318345714656318625379620029555899581961200855460483434201241833843378128826170323842743685346773223046311228755522386939884897574718903788137948063817687736251283391914520176692132661476137776511140388085406912768870844170887244195448879894037032361830340341052450060516821690491524799906782976208050034917188409080503553904068321518474762164112717472588333272263708693957278170681033471004374362789247610384578369594446639000911289284497810723162082063103979946834054562642461186429377336873430137310882633707579919445767919570423204782977242773987156550343874289233549479365860332336001727822402299026845636938164778317462495057239233863313367331842808936956805563934547015455209169612247261157530850803649338450920410269797883780975959591390593838494672142347616092432133640963108820978504592940894815052617180696084236772484073883080218685301336841136047755673443568790575576447826354090027335755058805558458964033034625011677010077280813005677399308180157142471195533181997205386522329475496311742050141578314398431659152666099359334963143980794086565089333851172422873749816230986878936011063169273894322142582413101023062931041638996431351282263903774111888035607919696412012289278510305761313260999969834410875146394810833692852312590421154973292453177745445312742045238687201220485030897626480840087885499834111401400324771086103505747703469475404689203701886201843119096229677913115638309058387449087674822672336199331839986087189016736879937792946063867344369174180914416906239259058436715764480027679334557619562624863081998772032069014731966709625689681492285446432677231724093240593918516107726149715495596782167615668294980741675167405806816258163198884076594213345755407620386775907867567588818630980498063586392492027242096404343509067837445026126292704740320070427585211326035870562683579185628370923957007340021823623387510299003981568225089600311886828542960419879391856465659427574185975670782437254865652870405950805633769123563764653787625912756095067219927001464343126209743036304081399222525381773376189598933593544635639747845707343531864620465750327558655220863003507656391161875462647676658743424064528588724016893936491731802860645937243064372385470122463525215465734703723607409363267127692430506607371162015213769963675128498303931970526423533761264118510809070283352386941936409676387841878356387019451492780820777765980904800641889212758754395043391037091641489250756851335377657170947453484925045656596000985642362133379352740954757370000309354002684063319282720243600044514305997875199683095157194410658154913203109548030810256372282551021739435689023634150574847849108285534056086296356984507409906682192816193859079355203353765201406469248619011660569421657324729163176595200249812114577508620577761217557083639037411126231463531863786582846465801273908515821765624723821183464396818746294317263761002044606438288760120653124003763665116691267663660860387474840588597433384667847184314948276984532802316806399150502931700649180665590578444480119883546371087063176820847317947609444167258453440554101923803914387709035050865389689044747730525404714796609072448259104730307910597293713835919865862781783919505298976201516337584018105313203828499501217538581235994780533111086615465835640037092463189712461797505277099437592396718647938388807304100733400459693706739605641082842988584518048465024105344104532071840646585035643832419886260115169559591382209690863975274267823694108860966795029163402426624696752499757108777034600296290662480946516425472669533721745208502094983029847637491699987091798961079685029135863966954005861732964610994335376043955803144581465280339832753844355833878019095230326519464684479681405023793900900808717305724870863162378720000569458955832732181846450396145716439067344914437992836977562333761944291122556576750533007657829643455949400161178026558592661322132687153138026891057244913214069683165691154219392539838029968518102685823910892635193678156260554659581213381210444869455380028986988676588900351266111019255302727928078342212055835788811240916485439189542022685542266847300642156118344200783023301005106810192572432932980101073935081516695857640958686249052090464302329851439823220939780365376127853341040600402995597324460097127723852846556326949042012995785673676712589293219154226998758559764807910536576421456280304144985322452633257012729778348246990234139580916434447814656363250352290062779920002127169102321929471186778685377797086523481057914351506749047706525367886198502533869652659909102938781013998304349917751278154275750595987940655765860790531823019838944420679659744273555618188320697735913995636105290591181006592458451493993873326862570409725487567162933729568823521023071361896013512467190846148439134018667421030712378714749925130180205633555244842403942761190458973672304680969539611931986208461466959494646898514577382947226203432896570736299115950529876377049766763847439132614959053365341744611525617875482237375847870620339624034571490660252016294582906252225669729442951006760304559936717876188063051430592431981732188689452005034293654938540739420027511947655975451027505083204706303976820114344025565589509075035124494707569095435880982124138164787369860182720569718782100450259814267336038949235018573687327112655345040288484390869332982148981786482531661914919006133403491761589783296934244814765397167439484180992270350933102898744355746444050528981733100626584588839146328181336161803260601584956984148620729038673543712786068125788737835629610808089720955179465054485910471886237745478440378945451092750832856118050997873249696188457885547742465621606134773410736094102118630128696625508835516757308897893289557594868660731533931960000814526080584560097717792455240049442113404868213770409674621639528651757106283853250945646514412099004431081083997302149678631080317176590606713987300857719280749376544615275051436039229715319362883389775562253736716054032849485908143304405895104598666999454943168382671345683198350715216587758789718232242228673843948469753431468807859466387735013313789772252078154417500658123312446759954520074563209180155490393702637225384129622551224065939962342756707706697973473521899446117013153726760822317190233726917750316990766857201172809872342409780384134467039429492781251195992018356032689617454189197967964273406823969447211393887532949527557952767078226773233309047739503557421672463656095233935295355347961223534202962579581638459223270882649842498296121807659508957290532579302584691444800868112002796343744296012902034191324934683045770774492147488529049279871561989201508477500877790131136982692610300515201302454486958603343338290328245592531362070405636697282727663594019233102641427580290134748627957472043706575178674956011536248566659600884030003967984534080558820526068092812396804533931023864774330970513282417813993111672499927647668428862226884983893876806742295844580897757355683031753625752003925552038035240113369673472706681547915197623230044813148865065007910012739331870798217815359023879956401709682677573824454399230486692993909410903753592189240665376244113360486048675940478427378409585862933161763780441076545803099602867369293381918721804096651879177391508102980588598311630803896420640018560211365375763741078203675980948556169350318985659244377031951106690923919443096381836526987359477125151537317050214637486934866707959261250591019828714601065852829745527612328122198038308664346993407848447069550157723527536268988590582926700739794897413354230266895752112198842498504692603170067668544645854406824899779310301129721088291471025673837751511808405558268865554321432173407087554078291208933410393491333941960029832300916374874906082683934315794726587781484181564821881398818585402266854157823869431711832260840875080552870118339591181248012453654386980856402627099272006239392798059991201785811373102044936606187602456379341018783325458125872133213273713453050175617009056908351392096092527866314245130416528439193216669150726175259040983797123699512956981090940825177994499034667492870649885311266107809508857836595735177267528533973013279691390725352778986793614506051525043093235825238449078710939350024309890027432832049182601271317204224441124152093581822749768893891968412799796283800417203791529753334435573996146959467012763994620618308939925015283269535027045533587858033735348555687973528863418944851478163729742679216903162217729094119430964344478409889150976974447687776774704636636754305373107650609329218276006141191684446133267582501198978887963460293563627763799816120553628949007960417400695635567607637060411239809289948510402855232175471356943093420730564053007151186728330068887193188232255745118736456209926035796429700688184416281778433510730246985403234529537900339730280263994942725013573657823819237018648165347305277005027013997336032011447603055012678930578615611782423522120315377622307202935375340872294953885673567476543546302366291146980867142075710849534424391802940039267389483943392467927295021754066082692209806492168989085806954896753598978697452868343914335971893754557522148776436754341355807806836556105923049120899847269897710982882873062111441965138305128367936538177360430641092973486124657700121685982293554587579822676647038717193792923128206501393009422864418477555101001259195798809547500813394912813062340459153991286071697055532580797643835043609934438587943090960064161057570811401222567327311447054249420700507361878981347176344906473907070940352767193539436787993925896073961629734987117862665842555414894504026798373109673880932021535518306799629413206989388768301974895732554248715487976271027720692432487521699466746846933595359778984465887812647713129143633739486047267716067719972682162420179336349605211171537273533539937475835580454808490457133287631791302371846927147298963492654133586071796471938900678762683858797266661113298265871078891185768231605087568296997323610326977796078054119067713656329112620323031133813334593453804904585954534262061797469522887434053257389565198637679558333045231378969614331484822308995316956287604661482037740686258272776079695711666851996451031254882654977296263611428872429483495617222149562455024934626219521019329722006909163459400082412867329085598124465451703284384182822984238265378929488681623145520777143943838442240323902178264035961479362777537445208067315514944798332685336384269122976725880928515123974940946298243018674324822651034837686593048503505509783640062967451635117948778085712723198142981828598248160626643385787471901344070287165881991426021363196558929589005799176891408086628012700929725050302464513517639907375332318690682670459445211696801782792905805018546076610589946559096169884137476710353634514118841483855541435528094898959602650088505243797721988169354157778255657615708889097741982403280346557460854841426986752344192450524175316858911676542584202691717849930231660498367270310633366367866320834543003702675618164833717214591764037101063344566202289453187360576788831661572888443591488870860813075490250792195044579387700268009284763244607790204718471597226681305791874793354549804012207528253907462635492857142435421339483211898393609147515081601360016288419302665239779340710157738416857821048760292507142620801623967948140530363389907945241480757423043473204071248933590458913722545986619071009747256742585458401493863320705541215653563483944223243092947423299994960560579602304765105509891121086824127706085170867659394657941294356607829983541847107423992813154200703368595538092548402447074526093166084928746518989561083417882551229949009058790283682160111196089834032477809145089874341832008148241001166732422270551792262801514909749140330785584630660252236456986548496533700531698356577254744822441264487139469521912151829439368640600762786482693430658262967710154177571290225636343046852512299827478009757661320793070050929026721334895146644037480036190597718927803727850250585648108968201393411108067398774027408321805710662738063018566619462970669157005376181714843006897606013683170512249200438645644713828752007264954451931895797763184471251858941981996650252662612370568559149754047413655752476772306778165407707205519924976896823488031913879830462478257711989852715464919050544212433335175307027518322904071260918534446377521558219975639695188857645358193364036169041207146216824340334439690450848885222103095337918291866224423708422047064244606978788598316274259722628543728193179656922381528976200898979510365752072342333813245730711930579091246642215105231724461334932512702507775192005182807898539206898934672768857779292115095271615134893707703502698738895973212691156557534638966478020368150539711152252336238242910513384240542214956658477364512357062453405648366250783184386781105050066153827381384159395142096393390660389209441553982759976683550085112589833150250108656935843556297300100615114476693954246616367922727121435224010059781635217928653919276592232086149426615907493653794150836183368836307734520392354198100189653502534927226904408302266392996673904630201332096577855677770579003380845429554864772682139651563409724622342360001095234075240384053089279575367126234850674299429454555567301703716367484903176717323924943783130508946678567471401431080293862852692067837717117979721726721639359138832518066264802145798897136313808220632511461852073551751723085854307337096869759740024416260585795208431039596806105731918283072911140766489126254385459506902270903350244699622566714141422036174403727291009238495646996918974891409836295586024006143959777129860187761394101671176768280281708759660215397948917591035747057924144845475632315758184206684820863919603601534015460848975673743300275740569553899549237277647271605573640559321470986922603042381092987599686858974553761856123932592721682961686167530893373852599111601205023854962132592339143640660509548300980281102772980036838548502222558480031723476066665150888611141336118423070968931143077141779390773019090048582267461785094569537023027304331654652771201211511962343105653809187986455571295265892693245456963092317001906170095469461879921052614241971211133656042196664998854960834370568288919044283801296976826161470062358334412112814512908688420358841320840969706299434222619572848020745141663946570449237169188907177054718844144228684653894957247635160024260995974675500791045174008343957684867492533636003671643042298043416870190892462357783782052490180628630232777479296684760084785316593198967877245428108636116099657633673615401225500687516242321998382318725833328035508384460359285364113844650773382462457748708428799639041062877105681666854935218169228575577896705747010631639308207564172144263989799803973814627461518126637665680966410915895322804172936238283298339367728170858490901052921223325063329000365821018217749878784469989470565812694831877791079161954965386196202653935420710012716233367959004467163639904529427259000732793228881735639218351926987238814563298892678748139895716114703682621600332596263058648978036877120748815926613835398641639924337042507074116275913409084038107467369144681173046601869645250562836636316613020441946951605160189360708943073252987277788623476715476651047877266981021709064147928384868602663764680080439329806676245660348093968531547649802577907955870047230385316634479649667931939055873799679397670175506476482310435273598431790939007613801188594405377035701108017881725811625710719415044051077073479911552430734507533800661114360125487925974542224921820728741990498044689907336392977480736247183027420139732128924417030792505608967972861426516772465177645822475274455062974086225199727338436253044677580417961034863194121058399068452934596331624076957167225105953097434689559950585571297432738653600495572453606943240106909941338557437772464306517695731009863913737719195999542753661119386669103174909101238379508572886111582616062276966354034022792177114010392475610735666106375971968027968538727994203210634774011858842231263270591728688055124933283266037013231501093804424685348877993487028396288793048125455198662662199546441953740683013670926086813599326316289696067725496454442341292104629077801594623864761998218028379371580137561158984788160586933004220282300075360531010361650083425664438637890440639541410553770781598910209862228281120910575250861846432775593808267443449563252007658557471731404709900046477733550746694898125883250372187815735831852370141277823212705074960061269168677371806114796993033371022677065894189226634666969035279844584667140064238220456274808869868730388502266318508412509459650398359322584975465281661652018089824419176358512208175783088243988148623066258373677481742786175968734770858417442817492160517332910300979040009019931404205863793139532172530963456316535013339474754734329612557150982719311770246786979525113218081565374145368595678495783059595916417501387413645827201988287922700059778667584702078251368378252095981871743038273759930528218241665380427522246296397067558312218516241008757616517757784132228503866254621934828126225454315193386894598098248803821396879607563489124168662830887789877509326351092622168141352185416497630597631372953778170480820864563898983389399703196639761081644472372064652026146869846209239032150916873362498284544123542426588963669252507999720629306822425105900161826909873307720170836208158290250786764253873583948824061656326800884859018611179270716733530817992512432880858512660677816636634970233673040717232281520687448410650052790988708367331242371496405255112549255095849995210621270799611679015058492349674878926346976928162130553129417167570985063196993520471675167163306240381198171458962503401707886010517670309828225769728859800380896888810849304431005317474122534935345206838644224258980358304208092526456171376545061567383262096618568547469162762179689786248189731249036722082142259831101362451000991481946106195840609417762076872947005931435521711320858200271190907828733192353366329843109491915272985653640265186054975376602509032707691506574719968212231784778665799005023805582997732939537691073197321640059088107692350372086518570474901078898142496808157143978221310215106023835457405771463700442912321984384532013423678610718846595678252943774474480166028434726945175096808079367435952817473945368732841820413762229424096734324508046624715303527958448701114032590774464394888687362449852195718857940816341573368347293000747370879628503042421488279222624912492525757024009814642797444700947474738273463129758190469253331492385281578884980220672954412475406656565079040793497389758649418084061696939140550164269496958351463836150741496800632618041987657317885764792999530027940834723659184593506322580780281171018942606611442428359013528370967228850240600530640547556169676991421392577263546332664194977500440272950233543748158781635681354380248726430440906104776753901158165334578190462775007327547329514292179970929362841058340146189686868219619437397517221765143199577489060470789740271994470274549440505059700361214778923988858507049996007289286319081971005941552957672381581368844054664601575089481233365738741800830758908724810956117464774777966217883307112467729777729231685316488688620830502327603955175698759489932756373448665094814175614838581497951239157534780129980970901304036396624290761592572444064226765122868164278806321846456626692778313534489959144853671239757894073127628797049840358532857751538423015576377311888685023218628629569818273050522078825208558762978579992993077036906787989815919307582258564658793650488744320115038015539173621680102353604126859518563782661438367736970112677564775361533733518833233077343243871437881148342409331973461465965581786146743160571163334535208697075267310568955471630452641775488552955741121425488015398719880380758391406664557644446155513759451100860087837504395793973481432869665145177830956253937538771032829487986407970229012670215344592116238202251902669945714083392890654296048311563710722842987241827107190935572345788787489937426705092339650369923392318176008215899279899142492255838722310063232418290251169054963146742049229827889139218025592743786356697748473089370801198212440262160196448372258509910300365623730818842906892390561383521192179930834270769866076929629937488398454294297919717657223509728762638276386097404626015995931773296719188107738402759336894560308562648248551435959852585032553478620439496562781241818060131537955598074562523559021795926510695791604972629084560455025027527774850502367882613122442765566343445509239468124894763826302485627150580187675197069592625710228017597411678499943125545483912150964447156279529164271551719044138188596819138106403240978848150237762916525970695332688053339008210302529165860391412938248102025941695343848031070402546759389757414908998024291591427241359269542914524687365026649771542206796739654801288338964086414735116408558901387296072395076824572400093280244990493205697591591080612876906910502142151329649999380808452509254489645543754549604528833683653536520412871838873264272304221037865730295309679794217325522028479730794542233191620041142362210835630477760307410290774013393968934873258874068415763732810147834380817184266193606340700812499630305412775156545811087026067426825242418217760384564628856429971546808723745261737803215098492293663066019748486165241840468250981830140955277473409341507809745379960018755385317898250407310873511289336671545499627853748610576365542653944596642856724460664220693173889940822733860835404383541289954042659555731782853564030731001264099923811233301021046304058960373137721637914669659816681725087412662139590590228101455139909128134557142082442692986424942698393711685391411082330841707224931617775172566600732332719249179749134446791419280929580976193498919445368207557253073336872175868738139569293787729722913784983241056278879600939023572169645586272853099076331310602272695596853185631711560146391977297990786933819884252874593012546363648611227419070639493677952184360325109072807364711189052597160661630250338585615411202513416936818622352800769914173903864812260569927471990461529329083889392491272978358203664026749277114183860224415545482451495875419559007532123990677459573132568084749997361793730117404911520071316234116416744880769091094333570840841323389325248821327158191733324929821318282163112651974784373737798693089179444802816549512135836891121418029069908542015530970222906155163433147882449878253614278205478712935206889404415708117832212308094809106013852360195744785927920373392096689466457596164451654795973540534154523178617358629181508676714746035004767233782486300941040424026619217548703234098655897302604399884419699800720112860539892587867629976953557290051359049405217025411659863685023961892374881664239560118245616082512520240466657207975427611953496736529498008457222220947543878946234065412302939053130400272325395703261717128464667904362233484473052087754894570334850751707074765382723037933965249157059975113954360158910829930703205330911057326887903029787981299691253650687309941162921397324920821639061150195653799948965424278099562654435432759288021220811543146563945597316302632374681486918571847444071799535323309426866500607672842429293363880251835944250059461089272999845048779122261864330534160422212024087116116621644098616711957167830901431898804827810657018206967127638987567948867422306901552736866824519108986322202165124512297521369036461338504582725170805795645967667093212709863596541605034520880316752392992086144865261475376013753655288498781891275878934512067208092788235890967553781259127464136941077343099672208310098364454244970562926854171479263700891116097321891001407372812477303017623112472821708281685383462169741796968991380692043221765341278234243621845331054624784967582255331390452102836977697297614175817289503942734890185224107632703332126443663800848348475680538736328174447566708729098046661322442022050392798934078153877767439320043795553748423437350590327741599867515740853683748983890633484694842959514355130969113403528741460452664881873412301938605421905223643729219135724218343125571322858456026138563661539445397370246200932388284086107821345960062067986295419434312411446531461734549307717495230328133454617078907836145900817591712725878626621658737678135813120774198433629021518130392968368869217299013307401478635570554252091419166388781190282488187537434455333333572568266883253659110455143731336606029013037352549931339222483793368513625370919462798621024294537573335784912591471494242775808929928801139637516308460614416514923327640329092506075304831502394684288515325476276183838493026861439336978491115074684447863426074793789483187969615023461695900999388588418230982598793475182902481732713829052499109999769437031962053129888143242381166567497783404198819214602459106941866943530283774269581920634790269165137848763354432849094109205484728181236267541998226844485917350163151521856795183451125248950550024437279581770712968843512861191650603246130934390387238462146713316167392493743548836031582985321915798450563591610286698546532061397481518186560295214695701801986664307415935045261223932002604228294471937273398717725562226215087857839450262359735683058319424040214771743076187211963951849854360853273905617791601680122449639241398394457616662746013974550636742168956731756374814467668591806383684423101632499228910493699604223485581178891381166590224975977399170174948703845180909012662318373936638611462049109134147347613581435632806583651406577765335098458291030115446574687677935009901452417043380479118433893300984065723513827160976291023944444953853124451254736525606700779865695322085252508748332899905159866370342430056015818757099597916314592489352249349356091019906344515273584964306307442863067010637461519620784420042079249468382542886585595298586248791641472794311766299610009116184735820607810407181065481622438447398200436278187034658042418130929116443826150534689389218466271814171306244127381187690699444985294245289510094714598313093963985764081482444508484703086569816182092195201916048179117678778757241107919838954758434272748263294149208755167103881227782269314038438753578581287328713501688021156187329979655229549867365654051063901434655325429686729142910562408901175344460858543043941074240446957676970261475292086625194222805804153613093724556991381542776641298252449525357062763617645566125647912792296226162704554127816926197015499021353965524842665327684963319687582304187276780519935809840768211128647059184093909456619876898507049513550205041997934710624451019001273129748355190917563007930629672890367976383930460511622054075673232886536411855286344144437119799676208241649897449045924346393789538965036095343770779370803578535039027224376675465139391374412529558337450028341116035272139980347327157226965220771256340472440280992871305872846235847954806173328050967930544628164557375096571823154913633508630729936250385096128132155931019273575723063688106515147282271692361299027368384829147695539947756086406477301226120045770429906243253191424953619489970031313336480462657202337433648763121051100299194635273250608803984225524620448200752727301275565914337447745141050239364794668446497377108453306436627303811747866293560842835417872757014751147271369700722514998437665979623249812889336087115942139672542961337916366347371373128309920133209059674082592717560716542039136524789204462444858053932075468204466717936266085827219467241039294314623330259738532261402382011176987582389025276277155968923958335800568265811167560185222754327147934123330249566001292523519397817546716837761506394698406465135988578868759669079206153275868863462127949478941371594127361174904461407570170984837380238443165048632991504268463102819984855253209197650619395673150351835492112563771280629273859652415308798696018420495455688816369782945810874703421669603173189283374252358922752984078139992195842598041924659351360473868815524931372942804233360205059225632042818909042139276284280835742370658127726509946923471957401257614104755418729080451701016532274038892274094966469785581276059660583511471169857989752068922205495141773714668134422081226122948232440747799152532908414226934490749519901632435321742763981106965848788977694971553155099383699708805095892618979770470791701705165489336179208241823889331659934035092796123580979659915350591448306948827488395895288135943028818927081246887488352772172664805160339953606597382943110564364287597686248779337930703179291052790007900249012983212932887466969811226925307200109278004339772291932453537614179754619242068644135149087614429420406169426416748258262206649680850599091168823673469117191263725915326274926237857440946422545790755940305488928279038366663604831000663805738691213832622833013344914103083929777778044512745406049104825383560324467960363645315908267420986929666362434117415688608880614248785958144617917756382015817398548685671321979047074005495765748505279379352780635746672159902538202140660209025454322359310782055558415324768299374937880479101766973679126060978380616788309640291707838619084277267678651996128462165040892884578361756467199877137508939968631896773782399061426324462986279802472340244747596364641330468571395212307555752425660228911165738516811705669435425259148055927943140335748192775721822191012547512237348019088173642113029639426724426849917125471280695592236155526891938955310058307252770415898901152928064674446293114641132577795620443405959416407310766974933049375834237576627223222621066222759789038604805744965772475844835803604506853717476129113059056188551195648966138836905481669538363910408463963312854981138619872352860476675539390543303995055719821244064757068984213499464786792376123553388425576432344646687511378900200397674104744161385543971373259681854271689893377254723994946476932584754707454891293056545373967944648539237962029547289383423782337090054481882722822555342531915869125805297475158239676644709471732424546706167704388658099001660166731343580437316119256188672975677891525370022084099154889149367317778018711655612231430160924374496439201756117263573344544269268986021716886850766027400652162759235747008910689880940178046394629450047476378002762280908136321227312205089270816381340757896868435653055761961734550656085011801777909340090774164498902221842366843691473539018911829191864903371884528663674252449478259198491410693378087366561743299271472364643783155944649025270173060628372438375079340994489991524460335351357937037605444767028778544700235517982826220628738600898843622105997763076962803911635264346794746882900917577181006252347708524131327333250224647080626282673404948286747849359262315875079008589741271178957532214552915934067938949203577484635070805654957515879473958801814813910730830711785660238574109603787140367265758297628772393946145480811127585697919043760905629617759801316807771498525941827845662786356046078797877226770725215170351472629338197260742331393342736054715969342769145981940174243372316036845426386809021648108521406626545392475392902745101521249767482661763925841753146820370559480641782332632396440905012508066019702876388094198697844830193161854408886636554799484267074254307355231533737560840594661028003875446841510723530221593217723465082917230819851532360604709750942323808577949354023059336089214296952590839675393564999579574797085085123821522278164846162400832309210297174149768605804162614849822627548627536090190129289855582713096961675898648431338127910802984181497525076020959191056687156380384882384886211000159945731249960649969756613893250149948170014343909855442823395558844186575142361438414241873193667056630821327827468936244848179961664640758556851245073030389536643277086010729799845747134678611262136404023985934056614926549866013906419296009066281347661723782117656921948551914795125899048786121155217262433140036261366197653952371286328309666886434344326591670170355083079127178597881786969148222448230135146281849059476668665946302166030704403259399335946486631969711300131988141381334072089169889179572056938634223960196156072701173571159338805439578763991801873206564285586258503471442231020375665503962306580415348231139084657027813089419198872995181621297804599258780909501165198310181077322814947491294724394000783480400392011635885669720088318640117715192671178110903451024985550749155464430622388752431731643624462693660244246768591114212283621741730941775864915226089755161523857723341340941441479147207192788549744153592563722763717155880541715106808095172083433468974805889710242577123126263269203642786443140556388471506277994105033865385419008522739581514794433271279285881562107289852048913247853556664622560312130055576827572909433317841155781438256007497198732570535853858711206948647756521266947652283194150235041475786878025965845569450983542695308040024561252019710189647312410873116085372323364932910061156509881575359628795218699153938682157634542742041179359790477945917468903759792428291679106551134963662734195230891083407415770208926074301810649221183989571405048258954613862454795888825613551389704685983006254564789534414515241336977985449618513337399685178407023766010871326001576962578066726203488199488660653296234418813638404932454209632701630026346457025099381375654147466490842837975009712886221975620404071639956136689155619755880816814062864010880848830088773970964775161355759177096119787979236807348297849317868104126197895649119030441590207908818598430705534128070645959448994102837846122933832251483108152931016751149800684794001084695789658785266998767730264272603605396473412019022939130013032181942593432769295746913905535043174915354849364788253434342246029231980448414164137711577992189664661848132517560525336337314622808890461857372285559216148831712869873676811797531007754363370305091043802340036023593205137043048458087918609497439177830597749986603943031957842499039322292235852280132668505258810881836886058808077052247804649786837906083900544595243363963303238042151900641790269646214400035137429525722901273110523094063609100084781164215187925791441196411790383779752775874865372099429631879584119635311851977789828384251448197899000051285119195849120311401625134097319286168971460527165146163454312521049518184180940190652380387331798367700424104915847053174678410757849329761350406299683723987086945952720591551950105403101369212119112439639034229594057766087333376309917243257971330384867480378609290373813011894219299000455429906446130960529997293113554659949360095378237793468236620534245327045317196364456580815959347947439388904753160981789789166183607318031825423957231122502776046559994573835166523114962222213585476819683094515015439591146150670056346213139785397406339642636558517531759542112393203618719485665897185776246662638747556061084458255930328145700494744031281250555058483579904512384519585963517551833711396656794598636536778820794876534243441045031755838776182294759169529865247603886737683770663264158677088790461320810370191701602187054113394685004109634044057912244614988470177562419115353939512069952749642765762503003698179927549143689846958283267267889559808046955698815304112707974230686336423251094379309220121897934704452108970727002431327558885567143502673621503392026993765450652903174862101091401981195110683689935333428035624488543320748425788677150004011982095310504101773986302693275887562879569424495879424568742939704916519356255211348821901949360416567968080552277724144176943592571621319751713511716971011206935152731792659464615422424827872879543277951513053843810811259232993175680506881862886663204088905939316567317648528435696099184970955377998388942742352495676375674338391804419348140860943771040402722534265365674961966098070193096005891536158097729766848496333314572667916435706590077143093714273963333403821418314746120517801760857821168804563053513131274771197960952283839764037055975209320341108781003370037407892099047899391271660870634348933692071642506235786030770388013206289748223520309230526307898379879967194641414483340404113981682986726798722900499482429375742810027112732573281226952223841680694577573063424626441116130455030971364805850400561105439836875007228781124223028054392059382313141996758242494461553253710086547143551054741396145120141478359642637844894296551170984604271106646027906684605509376921116481761440929905975878284142775882463030692366068246001042342361644083821738912667885647721313941435977751203860423659745557819032468248465110901042161779753975655563568308470344148934599114385586952673434218844951274887828985721578078886363727575353037777625493177026793964379109591776543711887283279591639048577435796438506132012028739982774142762956771330971722672064062427864442703028621234740474688587337779977720126805821725744475564970006333286790314357243744589501254606677133507295752702099071135046233720332161760734317937755055236331258484969885958766500154801084309178781402865038621124819449151905120612133842461031503472777483876657095550430951428048201222015605173237175397182374210810821291604248148307491739764337755199388500784549561446954452394467930678502525309601442844455798580029535684963071163690364551601928755600179011134927862956867209272922112562928332326839763413839600486186425221840212862996889486881440702417951443828441188027680737619871268752614711955186702729309974637906639565447864918919641591482524462172514719598300374665556527622655879101409266761591240010930511281947863245545908534545577617617489617158997851298269638158214244360479829837555996363637884743772607622162094331964050223548022374167465141963582754520560982993787308121005291995378364770928815116753217006866083398290028857027827135163801515381791883416997672239683958831977665943072207819666023180491388725210504719640674484029148593544641692083881255855429806581890957192655604229247180546837979945559760576500328672827671761612154361734410656485762776477561939504184453718125618674258064906148259988024971667258433994135782397987138862461603393115119619644739699894788788089949857701166827418845308888845075666564351004706745692259047024944383190870693187841590392815814089274296316695382449220865180756827782345066636388131164076482356304356060643507417024851326257258013968176215599716372235020380273715737828259779730376966987785004524121354845884157693842551243382501798567119888825167594569627340090279290603469745949757086124996949385796895874798267273968132397753579039689482211979883597097749163774313963291948201747049300471870136973546393138942938896886029303278316336911197986183299804786968446089725510117864730696218687379194258877539913301662034585017909159298383011194272138640422669629385589107560257908418824882657270079383340467850339305267605040717240428997058523777628291034474619666199531411314287109443021628028555806808872594767302387282806180161068111063483964138195201210731840168325245757520163474716791475326496948883704401970354703565796930370695359811363254898324820744593258542417916688536416307693854150690728880120575121082166094929536090408280803638540735772538613356309954252491608983087890684455862474445521504458445360831537230304572643888659615731599553794867671322263918565082696213217750934569675419159587677353173375080605281440841613570588152052890999246275964817306315443957994497273342150150242895669508295818893263670781285281464673217154354021023650559436515584066378510061047409009856444400890910227011441257591900318579122144487212125788849565397922273254171264133386375323749258230033268371375652186975980238372142685939123236166958238910644223570122150318362286201940498427925839303965519929621198124125488785966095877767925147840847145945353663422223637409457302718360875748027719284612377101653639278853211290082691360052320628068696081916488428309211925600858111567918269902001157546929327103573862817459581586476630394842282372767208673778866578221515380886477431559028372030981742116581833432206859860235630774273417268399794032619006495641294584155718713228074034678853486662865418003635214292056032839063456815207464268464489374008158454038283118465651317812505420038491692513628904361841398545874846481566710174877857029738958696564873720346393628080831127954503481932184587977644215400933216847821509643073964077239693335054528962810662658556033921609848238192598242178319668809405620759947612652511775162937469906925141704022575203750936091358657736172958673468455680583638963120140378944001049863094723838542411240708892674458740970296867439184020867552260114197229239875942232712750899425136783859493850104276978639253196197191314771013397358768478162516161316156751184566423142546274484976858634170391456804649163922941166464096747001379008608330333924152376931114275733546840042218868801696090074641537966293962482329145678856693167233567122947597234121723012616085068806070224155183394516810687463874222738755397606071867229184620822543441045887487483736916541565106678541953969510869277276032084344254291667166508304290426949791654678410826476410991130011065930078173100313620375768742898455731388334575301827547849582647158939652161372609371052944702939285449350123134033853891179898508372727096099882141470146971233582247390132907883966740184093565938905959747495712831776462001356707887002201407063993155810540994319151189548074388317166421009064732565528311122025044551427996760964925982157451538764496204013484977741768107456628886376066236524687583371516362334082173835426119901309971437770505862351534994467068848088913259445315646418950189555871699010728468693032596872217418969813269469490260628552096296547569856134728007859382526399156980100038621956712698179118172744641555034529568673788783564805515982013665000344761016299044320722468503113800479837124292819311829439716983273587703907422616468033864937788259107624314606527342891225147453045573132383542261679772311448298727522161057721346671331200419190746270486613079743600937352260259597568506299174160028134281528654211229168481397371662870707186657319826929889082162002107630217923228423264457351450006092373729777713168401509299067041898361317361728354314170784470054421381107065432945498855148801297398906996253446917929402721246133826986401537968062733166455628532479339491876184829286551279006056869502513293524112547742752735334565313772900966772382720750882316333956937468168823779454936242991995680901658284570684254382454291389653512396629791340692821281871767828763863092628177219246933038108001240289014390503486621537882842722372609006652784387157905305106366567373392434334616854998855519634885115997925922732690696526194498848975841467669380667267644291002420927224484213865181411189840915686584244890368764226460973725345917829948640623609805938755853460094110337025332376875869640462593371259153269178126195488076637075299149522762300327943842967087140281628507789681084526943350073847508546314812245356954725739005687259868042771858707293808436701725448375745961986402361319476864547185914464847106482986537128401797133743437091334386888032186885384628721294144154678953687001663879015312261143289673605333939900184158412357989942570840931951492532386437653284744757918946082613421021270898796482329266822473991242472881555750634925254174473377679994945346964777332664111589010967072028464033254481995442013371801043993945901020235771003471917975411810701674020297145784167391837120174797808593186279595296973718502852997390852527725839954496256615599935632296604015102650400391436866131818323765037233274252713884806909321430921195420247034703116834587380868425903735370677527587389324041184035434323677320090031671464084522565958306702882105110297524075939109396518131576506335502613657395020108458784511469047895365336448733486726886828170881478281874833501310968209812420029668118671100064969128133961696634799535685870660798264252142053836969321390737791755253371122431451758979948357618942312069572371500211492771191702728416794955300458785262158133214082488404326477877252962761801030458249053230724364976856109623661329229974307520331441545147901309527600466539245517410117248547418739119565966443234839243690938602263710903176740033156945815204026174721244386114954698174146206605265840551563197469376146716680238663403151470508128380905558043898292779315550937266421062692406810897811388635987950529065752865938261067852511913068758583772962072193878881360763384286564810767369962634421045068818104057251482901916296693845216530583824945197748428918126899115900647914482375912211591170680760377471645270622928573092833586659354963018812704791568041849406258975471474860224440440655178813435901528072405828303950839738763292495796848652089908497265652448655415767800806412329660952395655196399722340524563750640700260212026583402648708793965315439489949800530560512638826945507132212249689060809413422822652601491660692716691532483652287417965521305227176966066029976833115672943444706670811025127187754420241301826775382558264478483617076398451590941106208502725641922240917165973394478667099352395161269097985992562736783465281334284182779330480702922112576676936678820111061104326942824657263495585685192653958628955781300665188408975926124044902566235468207314943958204447101043801505349695488796766031059890892302844838432217097442123873866473645154737996054582493932650950106342481542150555575281702330663016901147877582055259421148982476681035773993241634114263547631933908036333774948380905967124361431812506842595109794459018923041099482703821421341026517650737992201747761701690642704036541152941353169466279704875512017025180567459620540776421772315983521162799470011074080339490133315717275503129984680088486005312306332321686625461973057599395553822933007131258139562250690093401339162445376332262630037352122943780388884152347820844022581951050434887943778342325210350380709283647420888031266735316882064792064315412333806502106242177645039747971422847824991811411385158182311438945311949339715472219410716835389512482653219245126807366917254536302919388946350458128048253174929413219261191235945604670295781252017241214571528830949188076614534891563512208288250547790128823638218342313519364411284380649428323395832776844738922688690746663514728250421586643736777795054946412214867672241333884983630724566890484626698912664151266700398437652983720518724067697182541368906304314958855527863729005271980888104510798839645088531848321051681779124583903206317510846291286611904881036400524432948483115296168510061473259509742712855243698106003998036690953771853915806530039223591928408285957162937244827571890334309553457609755418558910493309654984792057123162837809736357556254274191732895835473828772364389913581899758431801032749375598632475772645634572679426907295434672733701637267255073339066116676176450566950890320463719519287172741645501844669126701203449020370001255087325251767899370429317139942769661175937572010896254448100934446446034401913973040810165371276340402027566092425688691383542394803228209767368305381508043087726587064022426661581960321923317948647975505699825750555695665164239838153681351814231128782166115989729127358065906137650324627371524569562378526169693931365737039964920289240682980659731741806589234218651846150250725834361324430666431798716089380324402703803856769667157408790447903438390445641741436760304671955191412114596283642394142900423646336786707165259320063814182152857214686678963966290730159125242911685112623819247345520210325650713581480180759834380126641616856945554253031809263965113735084949390073586892354934821286419269761952799859524619983034686655955579241081538837963885875484157423261698127544563162904738799319262280708263963786421879221504167379555164575050500219094152109795087336897818904288094646934202504593149614207932420720548053027514032997986914124310880133999004279823167606003498072642492629452260773041300337403670581150040403564227394674421282442911053081171014593625736991234797527143792085608425799401816749404811039482598392364241567321446088779816170882658815733096676021546517505288635811306820570159731831537723396477007487686975595770954100158801348524266690211735811468067969871000061217509551490430288268685195803540857548011159111338521703811899251726223161367340888757100545478383412713393462090325384321409009666690952943550624600133708300122989172994349949456175173593934943687757425544560780971324021028447280697802687049506189413576578077758668302906150121617886798664450688352522417327513340160697347716588526988014230062284420796550396271512874880333724542381556929117563709480280608108175587342641295779720876857810034215315904432390703563305123138413937144733727407595115423271361079097251388037334862103692697029556172092943012835217339023818033403590349060185085773706477556432693902523123363044740208511307416405005626210846699805443206342770054046420467377338026176685186863428727105263786206614101382055173891457722057123932145333425392521192936290951866194853238083195652285423628428765397932159833030949837999747272892899809771613573213566067460335533049497828927946408080601448743510374090500454688311998043413273975423587877532558564407743501304218550090261252217150111404850881440663429895645537128772360505304287710702219690209378255540796170671952762878071132043140595137825676300830677944598121351523843530735811811263123724993458036096603000535866398021021273500441931355839475161864924568990354383342150023652809845396133239953775439436608022447917282548203549927384582341858058745339995427528644366834256721074281996209712529674316822828164603452470876996035368630590819509629795975541541952065437618580327656060794124194266137755484929802957006385370638028776984028450969039024960767779082562967431457824915817851898352563355608129855803786783176734914711053833026212318287139857879547981189259581461083001051039283859005853972895241908714293856168767283914846380094848888067020309270521194625267254349423179710377351277198183821028377209856863350550102994692565041800687421838439134372860811261231468289309795562240347651423228443321186583903577566301042949456073565302362589034077889147435383564359220412038127194933839264922685979312446413536603355827987148956682304612567356776570025773105482627772887786843402262184269025805099308556222126080455028862330445958623516648243391401640585020070589009234442710357456044018129583163068440862878760691861540896689035217884858432712994213284130416067948711624222214837846693486090352534548215264265579054857340603604806021363828813245749813395851798448497417875891382365524617812595637479245095778734320424262278416085706764819656299834486219375272103932647216568965042020999223999602206896344935126261914170192598816538411618371718770353701153501755418906416301161552471902103716691934404632388692227618632236002611331779525356204958116472664018113141208065384744845944893775607708076065893963177865945505895149725964000490776440440819659873116518807295815188238951594777745675475518924474926089823593849514332377824044067990566325264212663824111640139656326011345209827160769599266356653972472269433778607603556713479989514147574347553634042621873782408185172971311798253124158201711348384960621792684187940083992566909082590935333957558542543015499309061771840878648743703930021937742122960624633494151617857760292247764213308390468431564120622168039069934431677311633753273335462187632203053040461592955783232160473097367976322966514953607789084454972874368644761753424353819568683709996428685281807349118231425364995198216210073520085536158558893179159712583042766644887309974098280761645732419580634685021079854668371182984042205385370519955990691541374223330263623542936782270322039846479785002957197309003138672490295725766348787284141339629116950850551642186043247055779744759336039584860428553208994644824709497212962619383642721194983259969052303881602575843150090715851844738350461408907447447737791932009013529520443111697158757132131322913075534516662522180386997185084636472809314167733344693244628599652368573655428893104574247848688936667313281536066863189904691026552967492830918540979828731784242878722564362206623098359356798999965224081033731893219261095185466975316051372435285486284728483659229479979481973320760647032982744184410415551755156752773008564658218609658290425575679690860832779199535331588888737915793436269999842858066641169168195259493674595651305811879866761763488763358158512096170822504681648772462283828150074756444845770647381804540561829261212848543389957702513996557351150841902368034287846077146134477468212011906832241209358262397611149922284133894530156483879335951967695136566773145392232171782136330735408859522651422886252476296233877963697211752375313864250583590374124490312714835808745407063706024196943973967718639668668436411264474166657395272458790439040971987762288052958687369823422675088155699590885371108858743180748489404099880238584997705518484073985735283372640040079741649944841673086709969899170841643461044230584827151295354513916552813544156120719235618130766585428036023719489846903217025562881444964944582759385108083054040616732931624142086749698285806469954306607673423422526368755838718254822232523167571807968128162066909721067752840910950056698796193263031895017453985648116874622100464301824886498007154066333456689413496256419498828446938014178336479675632484939529098152719662974687232390077671462611613664698095369259710863075177213058788686518359708370414074956577900648294781706404321673483377318415337165682667858155382690619959224006384977801412048074472574462966322632755908524815304546163093323577057765514138235236465637207645555188278624629532366035391616744258189416571941590115048709391133076891446091856945518695486520464634323740033716894321565011953705528135945211126507431976670940981936505699889710612880414233161158255421525299783104884876504964718465619846479051808543810630535213423491598548663614135466961643509485339601002276817493104339930192284844087632186887523388676614112452658064868280625316011596321870034007658449467390733867616565767775374063679331867734802861971120082720551315113008809950090090288154390471795461714719009536618731124699583792400821961449513309101641279500167731063129141421011177344454146260336374412637932801085488452975200462959978678392105238855527290286863991910415893030386579544342873175033391312596192155082693856233389040354611662294035177540699210107038307908380700279066073491233416387536983089936945247162533669933391106942117785598493714960485584968307946984811504167385494317359751662482872972898402643077839846556137852897878598469588600633722207664203797567875016925479796529421092011504182311972298005088711213931927397203830003800606162800879654124387971693518613181735550817924220997138385140648378500653134292356541176732661057646409990354937577354341236170543808957122189660826677188029323313344187020261733741254856127399495551731357306939793395616966481949219026927933284652856010295929490874551771686444850930279169318665659293944009825894511583728606043330557224544376253647820950638534679311544884125377550901791384172212110052039198247321185326596808328876644030321009614793786125615294464712101574512172565430613448212359301438757082653160965785517084493001197541006538178055005976986478954171446869979625500235850815645984062622123400158525648911409991454913653673061457805572281876271680816235365377213432465942836141220381868798030517570822782735293174129425658143621650036411376072384819939559219718400650898283921286240225766865610500604599009117757881010934554026806552466033399257728311384399625671649357175330888209598503221640332491803372963030648486149142905188589165455225324084836509731173620835449273975050715681184437123662310075701372903105930394387870028733361195100706076060229333691664982083784420202362731223516598788230081452814104242846068539014606284308862018899367438856199574102721150398609591346062203556348305236415094850813464730668473345093143363091889838804529167726279928321368013684406102562404306598055030871793253582057973484424154920444412160544246549574802346444882738737919017255951435386865539117828212847176585323215772931684044520929583432332817796718444694240195814020137613968908692698598953210854437713755572703294304761962828135308086397987378844737285449264642784707194906346528568840103707833447004159064945500517222396195287730175654773665337781147920121924709646038647024868371997735680673099359753406891419744743392893726324627853082806593068569140730903673146302453550656980563267607580718092277006630272140000349180160365271985266852479413636018488441137106763758572237162554620865608899971345274181883642548164066367708976383796607234345751731059647823256418581456018571586690482761012508451936252230729495220550646858747946987255314255868157878089845348099599724660202413641485786095356150778487271235233660217843443142818027626826568236303017342601070235474124200777192693737490939181663431235795150820949961002879666549353062520523222094614501626614056935489867750728641595815243086996918973325825615925778531645201327298560846563973908590811694961535042062503077928808687918568566700821023932424263424035553887150126928116880190057818087053785449941857298653563690168947663162834817473816304970439031681444784577912263073358835488060476619557844449594575577506741408560401799474639454321595387541294845765741298275235316692798865946413050473334944234884790796621968819790568468787147649612223001153411837480319573282490731291578750117107042290903425980037099271661770678741769650269462034556337700272509850482349905254287408026070981783735038691248024096446654737180242153779044670123509449250614991708490207281099894467687239460962995777770454713927423423968311592168692329418424521641801156786723430143838537966885334012658000467726000244708197846075807252090693690330637645333426474961863976622531785916246661109457265886919043085399062737877935657203314343811727555848831682383154688853174636301796468703408419359987401951059598260035902952249994803460108328856396316404192559824635427461257378454878615412848977737958641563062732294241846637708820607191903994221821974017306001875869988008700395239127558275884586961977864826427550710628818812181802968167097498315404955791785987941169703822064237259871488194866146907518181487736818028688046181470293390275870294234572098715525382969928287082771047803569134290329997692755853047755817462073755524064754755137132068491051199542798834573959835534376242469034328612828053894493007904416010458531066928560436033684818652077812512526576949646428505572880935860559906190716791849346927331028728890818104738952498645971026579862363909869735016948907880633370677355412925547937810522926623709860321909148121371558392985572421671326067790831424789888570226965947277560410011904528305951683499755012116759441515130143258458345121363010011436308116185257169230324170311443770009487646330669034407011116130318857161777923674593169932113102593184808805066558011435695712717767765951736910875781066564830914921161299745345989903822499605631237654739935101339860249240708817516785055246164085615543268061186090712594005142621742035341969820715429894762415399626920695413050530853034941143215060104968663885620720970413440647380513848302759987074762194510239619170692402026669467217555310080364080196369956290663918711255666790627083572960409321113394863140734648969075511520594174683643208822158435475671507632439615826321667578199531624967658859745123456097929026400812056362412051319227302010096400235243501938001851899782925875829280477510826700171100993936524858061641943642829423368087556225710297109838895315432374898316116572383691735999737079358842841620970627135983111205440306772462018025629052144430090650570476660335310884925176031322912124632276121281071931067278445862032057803232098717751460907764772982944150275295667377961450702912195285562679004010525496874163656161166531732348496630210371818837438009013970174177386912891051729194937553873751456428873144328268298313917447338894794617143565998132698306894769760549082217488270827184663008257498886064349975526806479490634923010484953420066484862243179492068793646742834841277215443521208889167683075814791678317261049942047496106918482080388056999743072949960678075378774504708837469544037927776898991003414251524212916846716818736753332403177310423046087668270102126778696523261099124324927861231424981755347926067289682270057940268591221779332696408795132259182082808731590099751406720061077261607195245021699822421050079165440618182090783988216840233892405705263184714335375304905165098234120820930148970856956110688050646870641218492425246582029581771553879593772165497484372917987287571892463570838576955161534852858969881196112720024655750331053303067508196208586579033678725784413294030067185945582778450800471911400947811300668442004698029269320790114990551074117965136321965277426802326210282944527405744201114468820359339765529948244823409470081636097624175693734652559168248975953663550497678677973606345515098228529945819515039702584959456370800906268729618389894462148782891095056885090201365545216211621134036073276262234800179257482091422182513782560688915559143122576809392345142181030249448480202473550480614391389770037663776770652618069022967387110184142747023347532680113760116846776150589461665928019234691262572687433419738546259709214721838398077764578776225909412644452947982268152090306788601796230137640143573045869503211182967365175053458791485073306210265989884847147044956377811516260386533368050546142638052913029411454117772014695674750885955316792048504575484913505404112677969193566074018697353719481402366018164167091749966262425967201909737114478315342964717543194564754807259655959815749666621236213550389608117177637858264154032095746185292662521674696757985596661939630406642660080750078119585445300415314873058413308298807638470372146267886373182230335020727307396058886732258489807237658813172233231741933611652092973540343041808207466280748806609743288105314589656649705207973401186328765796532485207727376931508831199473556759938809702654363349274861057119615601989744846175564922781572188075531461737138206887571939784296408557470306871654047167847843611088738235853789271344881249475387031066461199901932035296382386670514643431285454425258219927206865788132910528629745683944090464197396749636365075830219090206503441983459242943899895331642994993765540291338758678536002408514145857941728024747101706674438638765769466907999311942799365706625692627049325643630393811860083841320946576540302635223448851913902748034091412805448028377147964096191419514229105984211714926649692923294186480484314963299291769938630389447866425606149192350235183625091997322355082948688801316817115521418598246750660385479461481947072182516606515298447605981572895038285965175973088438430887216229158424359209748053357917044132174743850489934062143031268689114342214237805834099077202869351726044603069072748224459714628042779733766728906067884496420762783384849747017554378548297817788286092525702987923491557434169465231154367661230498987948355374028538059326512638716406300563726509700676229762392907911891708886972389651188379207644084215864274685080939627770330249078301825901357428884430854785903756977538518050691848430849103608676067057253630345905841716663091818152654977265245211331022300985351222840791103838620037742765392743643122663080223850804316159429560105535974930982057919392215426482692522495697210474656185392451415536415822953178763388666425197188097957353871569581798866035519159938653730210117310740483011407717498364441666805041631292278790934256628909779758566157196729120678056718556639264138002486019644910227045675504281357784081005990902647211862651461917148931851978335019853588934295230346537883006389310191732154828511497200391090765429917773786397440390190945308111457783338033048307165638603893281367905694658198049138674032192767439625480615633550180520947993501733547757296741050687621481272215987170426930982440514657605927358767906187010293528475818762639754164664873451576421030148335638207043657765439631277321734894952618951859861103436494683987078951415959425053678855456505823523161874796608328566932669844598847501258470418017778028383555318131570767214106489603301819038351024459879148100130914262847520319185402422504834972572572322136333491421460300553532966220380380552336384186992659632684190596511528192206580912902873827153795450686703332119081160203235202891959808230637586302456824682150935866245240879611345404695245266338637673723192610932419649047472545899221234625556092332971454340794419896572535759602486779943594514057583859811175286077012740897237084277344516924886833524101880203250802586831501372864352661241871567315618343957277532257483032983151934110926271080078606731195445141447765824077060058904432706422298066573977556971210847692140646885805882238765774526445099987926928097231610543765376129845579374752429215981565119313640639866044731170833835191212875684582433717470538520619707679710155217382116507994224461530378886531616843556113461170297821558285422128631695517321431505225903574897994330163853185524557964772488622656621636980637844919525860521962677088754796618814610026608411902295838786430252203997169576114820551150433322696352179133903673494940997208330559649432890968993248672048821459190080144239683102404985016992294954544478918880436012596604645962642322981548580432180664993891182589929495211968894676457133920113865335687464423064712114086746405776042317900561032203651891215892888038242570160664132172424188716127892666635080790060763574262834473970994336796640422315640602675523843955911804322342800140004268857431958491959990662107883042095188953346128310216821219469989631101339485521683458229270592098571312792989298822090071439678203013812571021231688668893286318768710970872369634030250817000122723585374883367869070613240602164020384547380059626735250036231564079377807247325176292305208967523648330092811805788584643732262851005616175619302402718333171482687733818560793141848817995243267449222997037712680656946582470818558057279414270788483884474295516585734264611678299472591898478754349986343652737206882494082295225156918951241682941622220069182170433696336115508108190063638332048990994220176429032788586187171499267000562352165538251353513472798535132071129005851616955018251883456769743167411913667934869902458916740711012641749064101404501555225237053238435655750029317492794663576068999162501157798036078170894919624067205844797552065323197418018286115348508897992338554588987917466615859993955951592164572114756400816693335139231235622725025174984907680091701047699088721964614660943373330731999479385061419341603160907093857325484137376527468386928071902477567444772265518974707788970508360914996496612031742311226436404335719845572363128941155444303427786903368024420667200589030632556463931804499834861718717010212525784392068526948441086742918042681204199087910412153826523709198844148010780454149738363329834966576346894129289961854503700504636431487032642902117160131009210910842515852866250283504742907039735093158445500930542256376946141257287345590569060259108693990120286333469558504631835260027978934963878590265434817479455257005206306893058435653118175050882516212830579713741450173540224131341026044711161773139126570509550141016776456070780400581288993493306051679436109398069514629015550659726042457623474507302355188621092513351737479927230985306205113325839247939414401818043505433086375976218949228561515059076671911648344245281651036608826041042309417055890677928006036323814490306657298952379846999463649864233066501905753382768049564705029443443789343349261959601742725359533918827703643380364916638938016974215955165117523162530686515067610605927751172390780507483880397984855104382125300926591298907141099950936395523790811838334043906596559919692151169980431834453888260362320446828554518272924146813566106784425439280289035217404678900179287877451556569422710877993450761054376695131228973369288025295740338877189156151621143102251439546656648672407355729624711618397541528399164695925433112327721312785965784624638097327347531865715843744040508594498445547736274491249621674551653374006861164304527275437313305151391211294564147188062593398180130491749631926735671631072562573548638143929693596879951585606544175771330650337448580324470910096428979999752842941245343789028570438172613719328619433267650033050481091130800688708388590035448298406949973743975391962325859951000159131665863389855025458956432797782852184269111708097004557483891626417862060452970448988955442065052171654363869154730190627281220549528800735365115141980675180858795818074107792362832256044004797810766202137429434506924408817925291647221905530209723287406367244152842567960455115135569531819563319549588881029470244559361908620662115919670014732192790003361184230366942753062705146870076116074447652103239832208260517696775569604635848788051995238332893798167015756714783633782155731766400719583803408417157145961816568831490292496871092409699579685323844297250346545240057471454967484246737548199023811919114998707075877145135109035034583941413132978971398093898346514394201255954265121854901027526921571123609472890617549053392390736267965361502571661382356452274769672486018797641041395217252020655602665802594778481701981174160222901652779360834701216563682548205159615768199928192439421318635252655174411307699083609715535390643269054145699186035383456463393141754161785830850807559301754868874182688532101666526539981949586985126942391898861064119144290165931549499957834300583292233918183202768221403982609261401686201283059636648938255229772295060253054322376358302307284901290194224798570910578692292555304244871616755256677343368208926708145657485738253036069812751051721833515674130383878762192586670793713596072217636740622387871816218272283175676691487316422181997226919506714961796349842860327345587461086822989026098280000196271978220001084345677581614774173773924413188826032678944658264036539417295533372164675589356498886805226650297360797629619417099011632012126168816788041902714120072035253969350924707368246716533559664436100821230702415272491357924815141067302491527818752895546372740587242952601081570431695972039312088105301152324810720553473603747709306323928086960567507231460298695265702938193892515703143235609533164362288927556552850191299262115323269741274322842309526716521463673927484156010788016135902705200671984318952621809345354184118123512928791680220856535361754032486156037709589549413718466208072414803610131428245908344304447402322627368908408405450984519723977156882348578141198581170238270500723233374725722778331909425607777841589483122305122551223723800237119637774168956389768460863966104149843659672178510856862232941313911982389695967685172631365597971122337128532952746204181850689959619786963416823848047535627346011563540717617149040021322080813662655130259109260326475612016229646114965469894073697518725687747630960648138045074326304210148090244682989295931471689328109696331092900015653372610735623879014900121446954523782233962641389867801169086629881133307158856206902057577733546503120172465566117572298179239832330098744632997230930996288162857447061819804542955841002884109138442211311676165277412546920770051247831844539223659137125707404746202971604539851375824801230863248827785423387587935455434774906795966678894584787705408683036294591258334521695706277810352249423216209034127707907660996777240543426331238965534292097262082573869126603673441020164964830710519108929772392533798107800972494563737811853749445304783911455905472600770150624907175760152262143087839698934468271630428675113455546319651808629294845211205007444071553866159240921856185720496290486058493878028314033194466125886658712935337383785368547242580359432459574210164691900213331991350249151904774731186515814504284148211843528770802745308131746876507375296742570854976224128354966861269591100995101066867941676235047483017996729409141955190415181020272772183249488329154424770935615186151839357065669802240169810624420020726318599587903276148574224901773956990640858425849413952644092401736781281472753545155690692826253679531168220284172387144050771027323961594959570699094701132675170055343059353381045310452059543207772510570632129402557805114768361400065952984170802163334303355775046476404405341948920005418803354662361808256257274903218660448508707519227962333503035976353991324108911501331168797687126022648068514089295119885205204289266419334371564522395990152095218064783786280565749930587888461577094860623337273794611593558778476691369400448414562346377643389650597935797071794852757222701468767824208611188601219026408330384682652104296144786096831051765863074830128984303831785713555582214852404518954627962205268946671222704120492698663651777059040829914105178600300444788793073923251415228061883852867602312604212080245010447379767586113731122643125211343963426796432267531953211136848978575442021750070028622649727684982249920466756917865846905174093696605711861511986601124513922778680870649303518379957098013218635948141338770273455753354573775747792368883715691803092394346973025987609085673260881374149096838603100897994370025722123064972613930607171585467524420828839259794319859581497923587753573067649265964666455464396169373199326976367085564679718180322166049131914258931010352504830175304932636745461121172315933373751163717196534148012398328474638234283017017850894458046456675160710405711186720297789209818803281629351391846232680374229103835623505817939034280369876517797466926670247586207255857034412129155733064623002975057877171432176682347565440857719713119604948805694387092677422654119934167617532764796372657802234663413029649478602825059282305475836696890040793650296224581837347970135085994597160761682068443725410278032458767202050089453535571834093282092640625835673149161993737516673697986768608335834351982912519484698379071006914120083753967144837770756655183145798387533551338518826887202272162787857672749551067031583556222238315035055380547716438831365097232915821561596851783514731449791818527466403025906504669268110589851161030611872760578155785505180186517397282645472367491022970800216138529564489589922610853990892088556103480417420831685397895123133179692924486127821811636761055890240512520533425032193149135818260615586373965594688023418310939195842730011604200772206723552460996293485769780426114866562431539515371243798167895414970453172647121694023103950459943909772403623504927746010054787207137662822244246590045843553846489659579936407872772115152525273686709478240250945146273134866612600417537788279410967455202783089214381534516143846981462137813924787110245510550050651283205050666127445141456397588351977681083285685881252617853983714720752428740378501898705170415686250601254707101100986862754707081348359918136866073032648920012270265512200814013594465282548012127169891720153590906112802998496073032265256726147365640920348268310299885535931871811585522722907663787148638607378158344106691496490526704757419486880218619074035811657800988682052926281522655214611424159684340730085474230050658275503141692848790707289577447184498315018365895313566405163167830968974985457038506656387497561504932529878148516407520889590994145914982145046083736832643425900579231956273395785785218487494863542443921318618237576995292919544351723437722086507253297324587812583346650212840697054147042171184812300305476523187184621286486186715241554466114653871182500830544214416214976774006887260564091710215789038940519436905687699587841935417897435907251950361221591180406322742125315404246815212867992181391998928942579645554135608160199820266877014604253166080146100839512419421969971305622051474428014004227949158908276490678648479402202831692768355177415174822544885971374284044320834734758448709966497283085940021142719523545618983406268686333693905827718830724574514367115461719587906431769096756991488146436986114496668801780044908275929568071970222984196655208266647573540174291904955081845582755814060383851145321353334694856156969313590866322886733468445796894926402653306957103647309001348413937996915864973844218487576158464472411343049302115182440264694914451861161030163229039285635476591247139431983053157974391921723881464097595064712117406140865200346264631719753629369263942914808400476916666688322199286296076812728788918565468659148471724467496548998819153336283099355987056270413488410980991927570129121263735006288072550452799863401154708415808709250254687919731464148105430341972376101373890740558058346433111475910267641089670144250045500492154082224731631898802398627002522161757282687019568960431054256710113461478672452765255673427675217170763293315822774983259378150164967292427912703156436242547645637052164300940866761565213927557063693047821567090412575789075206817365374210588440369868624979669643885887719810176392583561191643691446091699288880604938932529439173970246749841968319764616977657966692524362171000308546136918819939715657336448920032453046591940321217855714468452493372524694349713885139823524052739295058504325995043593259251932792950397350168043986693136641299449796892590520691761633577676899582980726461433428499597209654403772995664819000053939123444487163309033575853137969956327546697934913858416376530846120198743947885547805587309828393880408188612073985215453879279864931239800775384727806286349434124126851523279379846961530631258211077178088175170741240390199375031317146978103005790503065563481376401566214473712951296360681891849770448690138334920721954191275235511425778768427518746421926913175030100994243043403143572640925911374966813795991278195292073670127433850928143498057256835992302675815982402320646103909948303397406541962997227905699392640754051799079275888346294280992896136437635021710438637700297264536430495782561869452169359298714049510475213606754267968568065435941684208438080003084740978745148782043959620037754352469825354516798854596687057806368757243839463294614790483834144589571362898998163462000164136374135518318051849755168158549200333549283364841779116592532510750360520970403590381780844552314766352180209802452796930048865216227548994379063068879989142541120778223977043139635879623678203156907837421784409942898855511938196542491970036411332863496393958098533982916594004653303767432110255579128418910866186430756846209953689298348422090953495445148027530568197040240726883935690987269022446962761157892748949799872815279112787685075585043907899682922464417096652031806617973795922788695656876405611389367846550888846283182429049143384686152069391986639268453601186489688607209538578289087605750430037544551985864842952542089309066634694428802410993988939189833069411148310910859100250564656428124989445409437325021788309423300727217565741112906896349674551211223939760228564757592323489571598787119594562314094535308243354242254389263458031892212534069083801188085014925139444639453539545298236331211021846494804785993036601319803527715453084769602416392159494578027865815013226124904700433800186679128345420916300518031105550660084250658293643149071828320025248905492750807298940212385828771745908773578989490523279592875185466620804125400082514916654170521280911078089776997269509116380219221680282580353691344777268190268667046450693165992426167976423242924625464255037479852186498603474050506693579988694572003357598098205882850611111701512674883865374196611177995531208313782133197266920928537287416930228358415831436148304942030519912623932899281355331107827265262196798899568841011194112023579112878533460891113106686547960625344408219930353839040991478769031954530004975867378324298874840236800007765357643044133443790617777566379496341118657479700482181685654375257160890901486467820568195644440582244626862062797246385728072330248568067711199342837052590520269901537130111858404247909888201621420639309101524058574680151626627580663764225016396573476504553906421343739078888836262786363579184177870793017320221217675680411505399972523557993569075833868119629323038991411288209416166477847299299169773448080466255749694545442047567766714935000776176095733991447589028102294149962979514478039084127160195685443668992542332946539776313491819714743184307730730270622675612455655051676983987121044247448888985425979308589113793774561369388947977466670702800629299950891004742228008515206711877601319992088016048807082955450339076495621928959475547174121066880209071805713359152551897138233738597331609051637085601021238440421766534348920049568573583286847449302365936888115255322648454181417036119296590891723765549733298410573024944318382848255838122552052971856020743144206148950560394877396032261949335770528238289044739592947603429162976751446002566419943170987017686927408917320261977326451977692240653194043152977288320226899986124183450228530149425861987086855402180534037805605643870507992106667719122587242659531977530048581039990809910999369395104081368209527958899037613167814892664764590543075331198243678432991677462209560952839720794623859813048046867513690585103386225231169027123680734354847728437045960365253314672816907729493424435304464380861179630436493813524675353618744718211707368096942080154997586488794090296158641450144583793324317201119443289030585762336474614915511014775109977022207624990514752376259747713812122354872204641199462539403223906929150138079629638443737909103087422183305252324768947314777878651856373213931217254211822479526464237662571587385776390245244781214446279830982817097611426717662990223957095561832883788698549421340519583778049404114665803931143550927696545191096757709711752195422909335316116521588680733047681756897299934287898800012055801121361392503410953661438833667392645474951429267428500291256545136981461383293234081450608948103079868567797595924041002215825176305234065462481544252706894709432000946152541348050512297506001183352596818394709199733000688294713080477307795610237174390672393751085046311612176343044661286943385053706024776023830661943290728931708859573380312031104684807580550151451744216187902004562192691601120782529916145549945304817188974194580381975839246528319590842487399283829754813294754070008861811092195552107444036771117962801173007324239317025803056977555404377978317652969719398531166679563379682946478259783775384772331170421617309243550078198018672472133028833375678980612268348382456568998661405549088461545609833050295565665799992043715950901075811219200118332262278604973497395888085037819499312232092912658502290120109810441480655590336060134312360816538615049038576247806343325516974253641585163370079651606434586429987579623276615978600026661553839634993820089378740071424419633829732773119644427463700648788409123214944566916198369824100982916171619679452706218938714386449624555460932610378458409085466937020261967932076252667408263826127245448525476428058017081928722666718752352896444989746071615914482494816687672147480677857265634502553540569621467139120414625982810616367537599027031801641457649441892150216448048372598778293743535958325840826799937865611634711071470111808080795035711834551988924768726187750678852050780889768790899998429803102630943786401652853073056593958437712164843318504636490520777958928808664281579463618250712251943021354061442867420372968819661833849392874571943854586733720269267250663791668109064724668931239377196735391766291011842467446171691207551674882869819061807518371726940757968600462432234805268148846411740145763346524506020984830817640849373321741637108715481943715953020627802277487002207094386281640687737674944678611861309701389913973568954093422778261696808050491904665752442349710868820312423675392331119853033260260931049042499596932758261846617590333216288644496491322030426929790258682589106023719282199764082841690675738579665528123013600218971948107502744966371747895071481000109621478589918896491259665427112162464330665332036737656074697721069487587907729937964619520669252205349681373522398491336223848686178426100483849212600363423131672178491475306070970323966717735299646448717459702728118515543690853101473516408111071586086541155297992197872211074766583119833926506963338876973594707445627831745540629827139141524419861360438032192857544768952469469927161626256259177122109986416509893966576073159891847295112857208614802516940826348081523360963233103120404743953863987174242300707260618645638565055911732414448867007452714674729139935991590576085946789585843107618484748518367970737344936919773371868879296230944128730243875464298725721946714599142720863557297524949896235609897469650158452947548111086950771211385021338534507134867203386094469167683573999346375788458601089287015758515010316891804749176320031079706977080101200546244958867812405423739204585510385338846057021284626717951300235570927065891759964958744267999670596486906480580211127689499867873076680888429374843168872984958856364989047807728930313264988126290541083655424460460478559647275746637007028383129254698733115888887425701026867701579812531012831731681913136274120319881924766488555720945946294611852285309731568951401809375197149503569991992085286873909035700373681912350028583479436077818428583514358589468537163280694767284793613580750050018576337175134400487589009671085339076952906961612523586704092619971149990093882221918050583359268379811742237891589735612553786219104708058113266530362179703662076795200333260846322012319527747867821555418561647459866094122556057349151328566368622796246162375087032589491354825032925309643994923612276229902512726251300410446563699906239128212180135733038434773198919654260017633173829896729035235841185198730018064527242510277037303644798651955527964100338755040998322752581426933364439831270564241531380539278232881967540029787840600665629014683970685113959407340010376116080110912760494432846970954065379216305161338769624926349866296677495953284629508410728861001898208596577845603268441292262906841105923998068218170594697322542524540475090245032504895906826839251244057657455816323696687708212901143974940788333576684931668557944238137082252592274232516073074058263832832843212831730630993180154334606027851922738798373739315616304561961214821496632834056090351826748726120434672306016472234380471811887968757888510030724404972724452223314396058513325629404659255879698604952064178959989865279272881596251909470507090944661166572876604864603341592155055031506316047823028824665034443939032171746167622248908535184341013788442630677384548347531018983541318421691527213205008036680390000492859867741616830671454442192348468377995085128017149628348659070939254190886452317920247839443330598543896624936396548500279105799423119186247816756080601721959928659635641100825464374919281806220004537061183600882184464041874125895148868508098195913864122563451751742447352934628057554621477317798842583813224542224982400979780958936168892064939644260685466361527158392954473685379002496200246744309443824527168664030185746078042210546002002874299976926588561782719588423220949295619773274744137127290489404152708376449835897968329172235207515133216394641473530151788268888498161304743350333218593137193510801929284081338303407778018683900533381774130590267109928869917543386854326249716581927781309560639193182789757214270619714345323773121820572553074387336260546732453397642401612058495196536171420849126765817905230240452324485892534025193282348321142308691113806311578267426653385674722675276935260238850336054222337002445707747637429727680972953733564144714124087396329517769914364189913731561707594852768321006037471753365946400502908350015196102011898154767887505828789443574622674813594349984983295997589620210980725768584315725215873027253082098463849296128564483277458919670777917153270067783513451845679623844315177400262679793880608700689676335150114604183058767458473422179639911350257820088183306750710583414965217885800121131039995068933332244529731406679349606914430685491272036062660616305459296309721616994226592411763083745079762158683285448194708951871686246835041326614455243689329994803082271504905063929791412245129176462032013471059455226496367708843885492778184462108433548703788966084735789171922183211506839092661246234946541392153291304861268415262350907154064923100340216062488901829871094266618606319649869763948422682254690895862520817402340274747845751206047017446902998917081462812267762078664132869311013345853597976710805545120017324555780331350715909124378195955239774684743325525910658132752479344912757550144373494892322519686091106622582446340707766274433969204728360224640706272250964881359057199060906912800897136080913045921984018155419046032943609871728353984240073241880233253123263745833074716114100746619465014355160484196479835192041738207103077537459903317532727046147994639712525282515938468635723567019615905494385597321423402455962092582789765042284452877099855907841105472897932372056687127771972122516750238895192193342671310825191578216911350279094873703544670370685959991414705659128431631043512272471287980774858670319412488296986742101049612671204077270832102408111189674575646282341983138428203958627198789065389422273951648806640278224302332767999597198254682367332918717794790000835333534565679238885368386208729056095071868837676096955032255316039382595316980329599770767027492767416462617384753943457260304090434124428409496247931621307330411446461773604223771654004152883064319046107141473055658535381823869200824261726215815055620309950383498669513461688772526179538965484957965487051669856141313421009026382974843896905723318229272865314728389931477161260442904312207465939492769419607430278045061045254601642976459970564770857957317292401368367303948544478879811620789529650512819943504224734173388089256522883563782630792109417687099191554310896604944299728203521607781951714084515817566514475306843397106751539835396011602286517329299717390695812525598719225339027406882226326139159968120707960310396808321749769659669308972902449964309600800767703988973375833327204572798305813710799233060887215835321303559251946527958249888865697937128600182074295712360819146567917833894250269814679883236974055598964755055096695559077835029968503900114111703619366621472924377398245576095816335217730885506051986920421900001315218583154426944905317992896932288355015692079489231862041334426405083364965095291314816708407654671228990008756942854342796994871318216609270681066703518787659819170520415178156885524199761070513501034630487316856009262261171819912722361852595308062555616656746864744303926965971466273576350647618186656459618189747853913447174472308598148631386809416447268903620026921010319547896754295555298162398975797524890386305483574296295867905669752770693645573386849580063680170668013683688046781755915284283347918951336807200409030524664674166784593283609847674611270869982105201955728344427974088281313547551221933399769216442749439620400494327126343770740937928472671126324442954122661068351909479977877101570619889225720982162307130033746273736424840715699882781764581947081121503220145560703464939257632717902299529218571240460418042795961559035415386164884831763950874246477008828646899257591750240150370687713707901777494227407968407314014890418257142596320792590427709572544193014549704177371047076636378518960500193733533901103955641654892506049221526169283955877284730500045015813178613568297586710644911972008017541150412706561420231700120117959128384081306459813168390585083834411372471734614943954814698268059487418284841715723221933686878823697237474868774002201150290799892652881723715272688401211036692532376465159182650017321959933738587336096408541288838645439035086190207379115397574158326016368020546553624474767229470464023354917238632907706458259291652724447332724706031527929290626007730376518431404389978661888836493700772660650821166862742313197953861438123117489947734061259190888818507231497052638495691742023473630151842606633055609270139054301478780098815948300198451934365448816579817027895863171690475518643810206213472470576998365796771650944258253629093885405009028984653629203841821654006168773498832296171573384951939963039986628754302141946482349096470633700699665336158613319823488636233419620489394555765122470531489230758591318211683366426890236620498251739857749521257622593822611233628561845325273384051753903984483667799919628454106454444105299258918579217240987337457844684130373148426022169405704266665047783172640298118605118184993082825237603182933250489778416888153465882178325251588639253742433462124833426702049949635557513194903177287931601249582461045335301413980182209315712977562479196011476909880377046436346250004350265204170007044052444191170376275855473042758325396056004549121933114911975607722686670697670600536902365004849053342246019628007509693010563038770819969967649839933309566611281705628377326792616803393729175015555575201756162626544994008035910120650342489363031388258111075929916292389082147219266828002909727523664091982645269698474389162955169829824657355726822614119144376547891884123291523921929932782745202065469451564513902051291421304691569552365020032614379921318337429271456709335093883845071316826805894598200417409548774921297998628740586037763979194817199665349659213816204238412705015829206272159953184651223357610014358806491196754974328661822623659461718505028994390245546579255570802014622683396527840959661942513227078389210486572792250655096720186465384264779390388838308448638441003482886959702199152903553515508792309828162357175526812457160168869532300422458107805802792298896427180864982494513297568844326366892216886683784467398647718751322489291972773025790139210079871747381313690053706399687636908640090441769440955349660030922811129146268582737386159710874248762279017906124346317396353332214101064145742093537224626850759519145392650792305288757212092921248418148437254172159618506615119999972403715080861921697105302992744282282643890011961152163186106022114145038371318210978943837246316860588260992924682859178802319888924637531217834428734810929399329667930342149118885585451058690771271879951994064864270241953605657433446755399609287883998574220208764564941129487159672302389240115773359123944524739930295958119704468492755746877888963300947097481731432001074255172358218524383407341279946913197182965975818174185960702219713349796422376523915676910258418010557112670590101570676403337348397695102188729554079921789281304414616080520609151155321935426099066355237515007341793050980894997704072567015091033242692215325211784490629339396164069035178523151057307660583254112649380773093143933831517298561004852109384880085813809605966401452981123403466608153409834107317733737611149205315330989618219161494167731684570479628385210545587594465711097902116721722422128916098124626494212200619178708753567659000405701789829125569099384212220246915018982618760978202424055684431299249185135574060701566627920510400164737168980246026106885116321824406780871629018080937517536620682355288859767525551985701244838729331870445970770043764547936669550308717712149752624122769327150883377961393438965307387869243876875871562814966896780839289993503027294090600432383199742861796456210030743521548282564017169402604270359047317800159235670956734769310181459324785809382794116238936167107633093583587750058673678467926040986758411158157810935820537931501918450391835874003685557607833459074605298481426982721878924802294194746322590824875164389377262626949080583435084952317642117366829246476887034197041063343548964070572250836585295714783275040939847890524389436254165290376926920566604663863829289021579519941396908570851380944246040711886755285891171822520525613704945679085756457723817987358527014597216590993289220334416916617021065241603710395549012390858790018195394813493631047536078153222157971185839089048816545689772328683690309712397238682868244704199724020471761660065256452301487168772582225856255493982495268129267503243462392673677616456899002162720603505384403821230199521945220537950179075670776033345359016950124998127115316445309284295302792283757445516048202128972117227077051391619475438049590827496872439640224512020422010351082286053287796755195991229291266039073586204042326928973883919451407585365219025060715843694108777142834074011157707134789390046355205190744030709365389944392471119702386443774635480808819776836963646714654675259432031776879839366870591331132620680532754417273851252084067843150066062616724193721694235994014745391368117770735805151443226408488191980445022992631480219512274235745345646591968675101604919087616247954126960784830600972167591956004818790893106495368125171420850017082308352762800543950097194760063113985617947984222905858409024366070557128471606637863044991281130897096867776697115802720091141734567114033230038713594640593283277465696010365281902175506549084622144773911923019388899331689485757343616856706317740407973208844951531823970445211421945203852014103124245015452042088595334802802609458881679606601833062596598606098069320142467788776549966982353913513370938088612412936627836947530433457766635957517772738836097922860481097896333004940490448744887899386923365868218137258637970458797134191396748707117928786937508144390776675377559894364593914294811273636058293196440699303466500542805101447250546010912736190336558699226424238607852637421749137029719403532030025046832695281734267462574603966352556108189919753209383469259081701265801510583228731697127283826513824530020300427773227435532289550724180764649249560731057737926397182582459293461370546799930609041341071274744369119542649000961085144123070122479347031616588353910408422779739996939632271266495614492630105727481790821846614755888680174566641286851346038840824004538793476326755242142178879278748817931702390963248465938884094951811689919835416869361069734604132005312270615010366233424395348215946070866848124677978425543562893355770428283853893444005001854761591299565024475916012498197477979131399699645863076519093688878193826252310050650460629591233442670335269483391109537167337853611510846859942102092100426329427616204286199345174643052842329088252039461048092788054610054133412348114266587850742802441410191910405333382594425090407568304678648129043930504496117123435728237465289329426035741335326480487330841886165446740822457307586396653231589786289370986584075115234828640376660039383178270501457075028265621713560398186862904024497601001684214848760650960343449756778069773968343120872458104367782288217954471149953880558966662046206825252104745234773559361747486575241999063571922217355419070695504758857665019583954005520049359754969004451534760602451497921016658100009505262389915298489621471103429693795664199986673608920786581898545788498292083626371931944400250501350922446925120982887488472679338307949474904847672727086814168072439662258540320649831545112657898870235214277186705063854716746535043423659667214037123523036514273844596302867818320064152646278436284828844839152022479618310011222004687993396551586905512841930342790401401486351145781000930755312308752974802471303521407565696540355771606022846133034079371637646622074169125489342718421252714205723767470476952793196487895670934681551295363881759163007506447513470860969473321823359267096991476958406261259086094724560464292913595872263069535497895970792816706757200301639364796746115893900075881043952308355620309043686253940579589913312664889874206932793256287352791597081709582569068484038385780061312982352620717407420580532249963989914010214766064196739174464141069147414902037407150648634767698967612927508562133108826486344012838642743193043112783576707309764907089165589211469036434989297101859591141390792397435424545665812356958196086100403655022808580721766732365647090108209485748090334809861323955389781656390101015606815645710159594674719553395949106652745579429780373066474517446712494237208148531786851906641680927519111772967170073127665495968016671607214185855241009511509515133467588450828558594985197968035398301217153936510066550212864754720016256294119339771716999450337735025129580644948930525262184388700877700107297080830866275483939345724629686695003090918053862661999799283098115398445105952718300198241192549656415994787269857643040549060513868777372332787875921976206083331782911653767552272514809102528092065478384466434936575112426013309620968177624404112522700578520197788293324406967372991658939798490935081780134886252886843015472535732504651352172495005198648964450589750446921322818180702494103464774427688123187159745611729050108569404294432650726412676869399786816501725682245276781364274875012836385480807670205163140440347202627200225633913850571439663201419305617662719701127201335455707005896137141500906077517238147579647186501541257017788137468723324173821984043416547984206248846787327573422091391391327903309891736862852489651350388932671787096050566229399238700780863043265196365228672023126614088855669989649786727783820937558659916578543467734573222561328920203754698802450269052632212872277998316725495571506220821777350894254259466779278794557642817478238779845335510085673174938879345139224564065824774703375586046236734132989619936165037889820881808129691050428593297537317868582330266320229728559443914708990046855856513418535784692446562330788504758992582631084963220390526875316803903060203575247911052524104209018064734015662315273050022241095429717474487664560733671603962411377102608253735848386874027350087161045361395294171265310787910866689903832424397888036916377338787941390594269935055094993915208977051606786830713493277591698227059079789488025875701250639184068260476599247522900202264345200734067517610611549720707616770010533083539494509728182916061144408894418727250658194703260337592358768802418344761146269571370246316141065779479694928186927196551644393227614468149515778155465434959025651436093152014750266906249813043119074372348883492172950230248083738770676490882905243851532743326481511861515126299076717734297876495288584332728758995624034272379683902442826132774567071803534461729135340895157640163821164975173099773007260611080869817795798603748779735509846948657072738940259276701468709659141469976802618547480304382524694660500912889655669028078874147535579545367743714947728447509145548206702492800165491772562379596994063206055654467760859708273048871985911126099105062472516279069178260698747811667404492915624685732001046443658722945619328570716929516518243515189410125124549211033831132490015346371960019235374625407859528132049485973496897105974863232039641172719809538150370581447973515688121579769014107026896362538523665675491230446186800984601178016963672379129130094658219893654374359672096801651918867935984986117988413002720956392182859810706167770655997608590742982141645737529872723873952151180887627558856633308669610827625522886501204913197810706575112997159415302873613385064417118262257578537361691337445146286653494893263048968018600894400931380666475099157223743845871912132873995502546092728810506619160978891707121544397029450444047255556694069360400350397975511133261608203879984073958891266509362522655463846374884845922080304311441434795702685615919835310191265361633199914040133225945503998513552449028881508878173199385440013762567440929153083147863995875708750018255662185545376221033060984274083301544489378997923382591997011843724310280654558182649852762487896683868834788484028740304850233558337807110358103413171337127230582899090440290691591223871835245757775449751767657695944466262912371364741837864562180501411512040902181065199565972507116085886856288978197536619855853786297794902087129293027577945967630699538537424236291453368472468782809483180794635160896043965286711873360586109465697674650960616576581514915695817283780144547838886273583702828193595440328507426287005210151657173397029674560844499579688462389207199353208402776890351058103913700540287378936652650354946298429703620640567701910522525638937477150277009519627984629349440056501436695700915890543614938882324422317121563214618030194410261348558019139287580094524048174026770696535723250080216400400570556700221731050759034363370510884943563944913443584596605933933537508420477679854155742831529811155667730676579904757118700944743538127867049356821218639712673845709391685158237159812153413081073988531530340085933642948652473420087958948908984766982569468802317733189223962013038211310908652747159495610012686620419200120137905345138407465153504514737652113247916354882489127587839569172158727961258001664799146026915635902854122151524340450516371848429852114252206989847860033265850825051614822766233869935112229987639733318394042977876388861498241726087894596501228632231057564672501488421359848277624019571263644481431608719534918690129747013026810418569377545588625972656963276665498071172465678539327108245322538206623417215410657601644768124670786975007668921467140282850875395162944388239957619959198161691587121965505671167522802268120529385097032372184668991713843534888520382286380332047616379598095642083857869834309000058214779384562769246906192449290388508540306084796900423091732065015146352335000614818087042808166147905254520588740909630259695530227893863438899456540443907699981825710576757565812550028153819321073804719805938857595165678352376714895276998045899448500244749465413145709421195732749527005521830168846564976755663320198083570601766889196819808327427446737801273376731164713049444872931389730403466303405218552064085386202241289022250714545552398177194695241410375560755647768713625911290161421110414528049813342392981207803425270501387366190202544058329361014169610909048966415482547817251880564477714198862695320077118424024985348069016875691367814852497790296300123716355997244779283629378733588664902304459160792914965503691315886632701204051131475199201274206853871165308992277429111108798183208895670045081775964521017653285246106240654071306160603490147497116108863595386633097732561218128273385825005613184053040033144376421538809856216545485175035815116715572168565751530879431271163278166298798238475512361428136592929201337031058068806784527140422712814540352978538407980005582284054249242204080976781948817114569552951605513843640063519264890077683258614651277033713555807873801393804368345701098437729258489711802215792183096822971415801636096344492244742695094679206100306008603015925572605166938395153947986368902518493204192099237343025819485100265992916205580627858783040732639507369478438911493067557246365758258980847546754613812012828217352505983969864454624644501076964115454117939659226879664709185676714339459072464813077865836421344329325052004980569838771815656870155305790743506637289334043072960873991555594160135858821078123870886661868720823106632429812318226988584436389661165332797110808212867593417279311367412726919981710410328800063460124670379077735169259904170543273948519317324978640524669464603253489204802631674072575878259274814755679859804850069692184676917994872713793561516601264496144215971328653991491264406425662401854307235523572366016237308411415011593694800152428509140176669760112675516013339806670024461970078429991035052069711950950162049491424255538478238393253924047256142361704572833326114706976907463424562911925169825595831017431056239401195529430416270684841385629874836927245853559433106974440751701162019934944012816062049749464871807520730422993378138472726997991441248916009077078840161856212160585603256023645723340020602909799941149476131783679194576749343496828715172759179198484330284832080372030280540997039803892688888852584262382418043807383130513350394282307928483504871093254603753918327623126743863275885270805519649002082905385297619305784520764503399160173849757651325498401712521818898302737430567910370857994378993526490218861498445442753431511832131804166548495694114692224020074054196828872041241432802809778533591588221232666033597695632459278985488861384852462481978974557315327284629782114724652366098315774672228593748882926318281873949643885647187760950484039452960616625084018409615300895961262977438147224440295707338464553447190375686761028867260275168143431564550571486418011821534664522790643835456990506833144521504337497347700258385963863221733920175901189633832965528835318984862400109720441788667083522104796243037426433427078103094684763484822713285704490475941585270756346974769512205662871652571416537645046712390009247455017152682043449824471858099543353268581587766506330229372017179172022016710420889223945047992016997288129302374614780092854989121973203750173736542853472048738786586381193393255789930251493416814994070434956245505302143824514385433361065340488844031592647118634630299570401357585490113433761848020279077574495081521426222294891744373130207990178178893193243715883150426749309629274469157332822699230831253218500282744367728446943814402092835281436686101474078297407338518666297562760294639327536367034646578861133843501960816552928930309536444451434692595315768930021236713183021011488313177987123991505129349744107105443136668021994318276017102671577469205297165957768112654589327433154595381561270408623744246746674716085211557721245453598418920847332718914559416044379422189843290577832648002188254133381263986329926754972137899193390244898190989101548518467765885829242660867477444009776052790464212466313312523616415380775802532113329389245672254726206105889120617120843965373550013397487867492029661217235778215199405801196427682962445835492889512994241572838688198245184016560215608138448608592326539053321783972348669295667554514539152030859573519362524639831634278058186608794854564788855998269865850679235078282365334967434682785112021807026544383288301184535478559338043346614132822936553458946050419955439757982145551134207467552006659472654680694844095804065732061205087346212436198433427774492581258786415669663306671230650047305228261640508014628443618239044693297716660477565412086877502335885108662174491460073389030496022189972913904295258296396761419908517752457858258097035728236628466436261033963810402146206585070089602915005310911672937186739764433431215318295116389870070535281727239288000137240226210867649006801174119447729030835306849302831489800769737672311649705031037841613241374234118631657235424746682966677322447752310025431409292727378919115526206143119253840774678219236534071172646585582796182787103743169405477452789866646867159752003831296509826978017150788437409694994161148573443717981964579412090071969393404921660338141394952406091877175143269059583894528947970247964764208420385640377441161719852507819849073787957585237956620814911438686678416950331048888050594218600801090715139838547804398782302376295915844433811549310472303455643542002821327833723476281204284339787268463429638472739940397826999291742099793261346673135695488310482108902870914786465140920706198237086115893573229851209859683314421554496144853168600450734556435049967897549212127246180313926408694899292765695620910664768450342509183094041565778673110033652907154765785437233527570920039812433760858562891203187127159215498391434661764328874884613001216443946560421054667926471222786261867796644257407305943410421793361460033665739729773623218981365244797551980958660595579312547396214514407680361467273488690242930051703349678879091198704256705528144928051334857533799395147329264414333528476951684411382181388612832170545604089820086812911104940369358499925352232564019458490974109094474184577281249868230648238211243285782113407763537023033131706108939629033908796193777861547592030375067425297418731478812814351847434809828316903640978941823735115016238784379914542202633515982949950317800298165295844236585200762059849272061788935558984521832361917759313848489848884031846667716013170780203968712281577148993238047744078239662091817849689248359404412115715403039782746552419188867245573897770385113384179789587766525334253438994622609133048100828124831978438509388139459196448458733507156040236856397973799859709794555068406194487864488297959131955035499389047083099665109505564447900173163991041003922810150872495684065974483667274447856391390774035044056396893086332197185785871387810982870802857259691440787950407303427647568904995679264300766112707641264098569055179500946759695128894857705781562455777095630713629226726148029349841056752971893785467906406800912229368047179246728349440424064485452577400725745403127353687804076558443014031354138426126471704767611242067223897256132942517419025500963858921721923879576246971179652064995406260850893348648206173248181700635510263094397387549425099322152832197463979393127758480710916190528865053152065798760932061930539711394601518966514558989771032268215557627968524152075626689631231467223923445410297615521484558201352646195667656579359787735579842369669098003283316916335956806661174958799838445203405073313953182879824166113258170759447179814870262387884737689701386825158494361005769529405042326581629634218328813359504303821648267188175872361354251184391211867355928646095022524174019040771217935292597202292113502259669182465323383947482357344249495895321977842212981735051494794120845142396623616838523804420476926923669853676370651014029439310451226352367916600132720814402622537849336425281336452805523292797088945695607122793269668698276776744044080751077948079652651402720749520965320910457400545181700046362718341512194761398115801564022750276900745206825803862242875089164847055734502654382047154303826482113616922324003265655181647476079223723864261362607236825307422097209162298013588236832569387737897573068627974189196973031379890217075308517684439221803658444745730980405705307721779515695547895700696025455133964266517223375918792616467254809685492013889522273061247516003165620185078835021851664870779624205105545598699873748881878367345510916421278472285259371137827653414619235029190446532282772117304217604314318702961025487444340988556334078650311352052233803661119379853824334637022225443480540230095422459305707480269763007876688024882318175523428328503237197514028944016547121383408994450233136818259815201925227483787096199887492835764976335429650395846175578913364358868177227068856798859562656752991378398494541940955526140613680168752806852299191092106767132535966795553373308126159976667551738198900172813802869686951277968019734361355776317802436392393212257413634143304345053015461483758023365103421157463951352558726807835488083225486673788794511233363149315095676211216560365011217573997099445500827627684966792671184144232262522027049725223895375769639629543880551555116278204881834855104200281573529129537911908573239449816929821472213385188120416378818168061871147796722112088667071518724422072917485972097050457708831524950877593831965327489360691478065259374529168713784824289435471185162433771151042366279540929170577277017453395004483636775290570286180154235936836957848946536480965549335595352585317419210918658354167955488806539795407631714444146971807438412428844250699364606344099013051812410650153317973690249421635650540904365600578184030048679473591105147057234136432851775704840755944424704495351529996649536422237296585512853407744356017272283439674796319942555177245455267239869841451542260443569588477273507120823071887418192205088434484595953801002767853402500446163853606793160342129723433967201785294079190542171027866006702088188337917925915724038426907589140599722807611054962415385228008826804645927847304817788973216595257423118589507414138999555240670487694820218833593798639625293161459057560360492253843393658914577871963772096086730069861014390191843543604237169678680470476269441367571249812098175717756959052266650672150445343371807482950336791394958443667929918036047377592365233470657512116317628850400664436831089816443279166046484363764895554691399404431159421308854269989659608762470127098597002130673497874904690224148701516225190801386487465137951791696343581350279227608786610340795023306053335239149277266844416817377368975500179096597976173114214440446261003428655625259271553006992452031183015645825415797830460739444515506124407832559513172942918245412646477833662503025242457040159729719392845785269125673410359952478675095943557910300436930366808080355818702904056298814163372696830919082118664815801339076068638634379550704604641300559312954776929755378182749115993668203253352752022059494091905972213608178526361510802972595629068550357403283449205963778454892848921029760022319169904503641608085960953960706470518752726253613056101295143483521184206402670044776624456202890535797370998218345351817841866602242749690776020291867323949753888613561965984270202529646615969883261439383723015334320721727080032084464731988744718749329064083213688004256480857493288197233019909934782124025056677321635675516907346577512179113484828026986213317815840320194749630846710415387002999622211261598609383774616669509684219796500691099600984824578962539810930320208309859167113255947614894607647369977676082766424220773465296603548330934684521167902071892596930115208776415492563783871840611060670988983112242303467729172435728060464692772795174997677261469594382231457073149697633513443895657496825558229194346698373781142839718807720404793155288014477581769755533000514172214706319741386672251711515938634443707719026942801885855130719556185926036995804928663253396339450132976045894910884273386013930648171374163759190846693718898847538692103620701228023286884555674275527630319792293331637340462793514073011308091916788890303064825370731387320819270549892761751103777802705498803914557298105739331320720828308615404891217779646403760211829481699708610191591981194364784188047420097765469683867995723366375776687280831798172062614849425452385140417710249085151048610363982211123748544904127911275364274613343173810972845444430846751375601004856726908979091389930870876450560095203801674019287503418862084942142158209230931402393329994538761866888986409818525052906078294982780505149944201246832989514210457951514363890090440388487219025157469526406922392581354288391374115896761887577434848137053566870869312149476305906294498105611140201511960762320845839250848876196355781279452882806845796287361870547613142289965916953249289229716104460458686162737215311105717859186012706393412667067607025234399627029773258998181666363487488726875120999080398069802874301686151346760080769165562692169728291707988940687083913271020740871287851132490962346963568453990969254729683240259756437576121554115390501108136587983873471828575459516786232712374196883733382290435904526590533386863742745135051888299029222601695616628277153145691586702315854471330885461568819931185951048342583359000423772111099786329457286105346102901976019197031006698292086937652026718418713235950142108379896812830611942088941899539569374219411021695996118501758775265824383397274877003703590058711961743698748932529992803321386443308100514556984125664811335635743758949477324417163966990630455416830201600999582020879094731290213738657020746193023461113260052065901438273148455496703033944425665602856622476005462584587645429738108632284980457756834846419631992917613773489640183849550523588463062578714552136485475974135269179953952820252850726256212654892781067344737957816958488329516166270280583965508752261473888461081110339650183980705208779740766148968020306347365490643133122903809773450161040339732328251606747198805561338566922852366261484238251124187840449804678498362599413754990472938798928695168609932951313357098799185683221313109144981523492949980146150546544634807774760622895115272544270001944400734570622557187799047915382423015018709901441608314040833884946656196772646780535009245043601320960137377689745592903226743747920751946282744788103595083286043988523417811946125286212336623538127899249114973515259823649720777628598967819796417620462245161642370895676364077745727397184078416371446008789548307101846984207912269879301601583077560395592550664528035533048429769551390369941911270422128840671937101164525933328591573796012066328288703753114208061764133253860806130492696249404370628322881326945897692011036841087987215285834936682605500319990977700435912562653866288580307820058188519230878171270992413077055596537367478740383864306230725846218600541451375286965181559891651076324930730503124251068152957095799697679010194810577115644333256411354243124488404136492698477960538478355921904073721501189299622001938107718963052130325767214878218765183680661129504475717672854667909248831477610742120422821618270843554073364325568196786993771387324231604154620064047753310995434496581192503893166486657444259497921102779924965482688137539252828603130019046159116385847688731407765290128687198793522896323062656287992007923678744524297426064748482037095885020834698667774352512372328312013834616640421360574662818120515301945148536251537481004112828512705728759489234099774999443510973260017324117189256930702652270908426252976314998011193407184282121244247675707640502783351589204438456091026886144822502714221474732394522317958144568481156999722522538962991632232960303873372507411596885519225024261293281535982751373627929790195608782995584243600647457415010025485686827361594956472446581432168118407187018339852526408447735268490681950910714982890739126683480153200635596293816419410606221542642651946664650000230289776891804993443482168486758639516700731418715280661288599295597981087339575649942905322946618353963559961632711072158034813538885805186276036617960527847560086077593960655676822699549264042744403758992019038476183779662455416051940892139169116221751045151546868401575493783028648399991717937082038972618455339531181733918301506269332243718755653543893558822409981063204209011460771654648873867722268931941758527572765332725483824736866952770141985732394583175790224729002920647660917066956776198061553193768168192567956318698061185858181067771155736042476657905963741510680329922689922117080460091164961254524337279061577511461925964019632697284529883006681097362653122740111978017978797414561107389481963644898980363628080205125801716076834313983299925640603689458636176400688565710563931705399443650703366889580302008431606857912346916488284051170902588486777079259822398768476456467967829805811300773261764593907380811162209967548530981146181100609697429527721662133373333641846357775655346539789461804606571249698303562364628173686216922382394731938014745963707982151843936453918060795659323408484792526660501373231207143856372345652641955400304234772979853081344520756518177625844855310378497266332974132110868053712646281664382803884002815416676027086848252814195124599508448625320655204989140894901402371490830175261409739174137464696232120934408043924491774049386739724195148638193008972381705755011022281578847093409856598594052475031496750368093757366288525801835892747854569172615068728670818445734704491900416049077546887916045509103353034011782202222688829379517732181608068921626889801387687847287406145934376483190444921911729561470408621180069018288505455991515484870309850763376048235528842623173972969991786183329890020761073141814133721068428450266722963114220153871901462923898881814874120302903303315945333000942528004711358020621234057150083618380645267270693116033339042107423343929687030223056432483082363189933909107876823336825776504391252931613717871057641884462251799319023817940422891675588421442546617899405641951833280344157147892211582823768622405508641482997455959383033102057712429736430756817241813297700350124487551692881252661177405327520574111575975627619711579029157751934113096581679858011395259753710264195666807252374000033012276852924431760214292383395401194344684266441112691083146922548180759183669285412585844675017337231338720525198105506414907761481532405495887535414958882220519284607883678744782896254675562788040625021888177359027877116489708429783051692876908893194813632567388966729101620640723493004231078041739523665612527398110370747582273040319510134679369738102729169989363338946942176410784464122699671365666616807380857045255755519374119223967873787423891359121544229557201989061431656821044295371640064461198082632384942085922848110027933495462493088970763771305251087135201894173590534815610420778906917608724824531313530316597759802490701933967724306396497554901200986779512278007160430095757656499949625172308720389443642459301768006623549133535605765442850782672470889986270852258663991203507433894541228069656611090953367400924349837749108700642382784160899063839952285087919606469106879256284726295721265268516846444034972548765780008565609230971380071997418767637649510662795615486139210175208509048012209896595675394365564888471701345286900055909125410537412988671014049597848907956971191237604457256199606422498961186027810078792500006503138541725065077850176547069547459889548298494350324017641249745276500670015924624689195998855183091658200506454813776723608204998399205888828905918783008657402577507106984923054466763913100522746818110184363186895254159604581608970987654562553151377209863426356163169018878296530353009022393740916118146923762407533090263817006109821084343680606267492747991795723503143238195278993970983685815141827971492332058759918028997112076676134340777897108433710773511958257653797062506447110491632917553302864612549578614474462445179099750468353273546867836959434396010289184975434565007929539983839035908399044503117762124543988789988346764940272403639175514430287999846725155611918821744384275763296065473142647041373882878988468695933902929972019664674343213462136111960122125929987825954518203991191747202647071214930375520530856965905259680715572224147377288074234765546355306181596563288458049193883172928182780184385849762109252284684774209844537527290602984685799252034716506063044126851403617641177540787044637403219705492120438371270560903271701948976184759712582491563226455358964213452717261608141162237320019632824832166723823444876839143752546962153382611154503439783198079122425489607296225974725298195352613514249749363745421986473574167146167383794725987276233367693560082598691988313996434086438805468664974589016612860289428565481852025306242138890349497563538520701366517422683955723782598865617323988367203917179518287855014047204856372878428380784364240171076772483161780219421081366994689541999308269838400481542318129296638428339769803756920784801731829356636245893356667900527540538808837773168826884475841364923282736718576054445988875674523614681049152749496667499980276132940898725459649013519103798041910864778944161759746256793598038785876330121186183743481757143886419288024657132059548568320666170703687695833831964084217483884716615912655099350799543398857984606985518521088772951546261821045019985326212848920457118645944985073095936343615468709258120398761516969835164206597890398861672819359822428389737361091301741608845381730676749741702082202677352170462305790940525399791538854108216425040139751778984124235701077468270675000784291108814426511604517034244572329820189572961199037708049526495582947551203411241231331881249127539807725687641168718090473355562773335249642023060192556697200379999802350336414880552755930664197333206800325700260607187321215944373222080987290053637338393370442043315778228632382312162709760007243147891467525755515179429666395164209727862890699313206656421967026591574254982769741089316479220327316494143841880831163317790880206277312399817379649738893061559857357555939370394176961927759147417366825514184572945977241627805763801784704327090517125315294604519302844541043836802292555516065602292087678017612241490301757956984465519100704336444355993781402215959516908373330113276482368286182496238655275217893186122850007866077387082000590522665624358387643770359519969742406629906148432553370069767431521468770950692834108774386474694270831280885546603521524377024133292422562849435078828403082406552514009305730951078804989045261500913189991213019796916910653910823774248354919980445566145512300940554130470067603006277230772762071717204234209050396583151729473818188789088739399984691562836382387571254358950590664680106986982013868411724762348628589506270833673475279533170953019456064001198501855222535137925418018932029010567658628876900992914601439797280830461100345319990144319055881091103544477031945993645300942280454434261253955170149475408262167050061520329820070183613033628040445804624649065070543035730128921398513492132080277876792094208770886523600217151875692976423757138370529329498878884538722374140339422019405116575398635877868859499179821754912990298156265182904547666838968850190770011979032508185501398153477584428383583892065772222727805759841686714739703549342975483825054897673231691694431373885909312266050528129604335075476238844287008812074812606124399683178461610889291213669454595967990569660533531245231173287818183199107238802313004963092317717187034710523758687111968565645496166564780879434155216692579944285951547394618680318663848905539704480210903420615674779851786970766395110714898138995772427720102498164603172889435990608951421881259655551008413250103372796257862999236614710541664328166934228954996597833311860087879440005808950800273530612541164295823032000036944065287790646778877416023895054895505301822755749471198490551311696986149049980604108836054307113960409832241002648123889140657266528567357288473146733311251949314486504320601870415652852196672885296586203699354215702821441020946604651049920318053163001121368465588179665760193433723479952238269180343342884368392829947248594055019468028391952663149656300580819472258293351296489468547230919795772397613073174942494965336001616176291698194435760798158229310240305824292995050247916857754097406824181736747160675187596853384097544768427282783924829968607335038689176539761741366999939695157403865998097751583230266071994005797893480206526218913371571919005626456537541386860072903270549357467455261222512905080281828459750831360288673884534997818031860783276513454894345887077783742548943918768802212209551286024378258796252827328237949880744649442177369320990168499734926481730127262807871499333465175117107263674422019565605641275220126142593180753266592086884796182793121987189858413653679033226050870861973164103630395728729839500066712572782927298909611752914925059315746278857078560674446101762248443290930325538013713235354011328462783118806671656151947740322427058717925400008806775001533769598607163526296190755533708545933740510581223281290008112869720118826797083462855640441637410855840237040958659785365718867753116072826613169401956256761951633502652503153101901273777241578351215859109962342942246217002700274556602054494340040439483126832818662158876794965716198978553196189225377657565613298556755304416877120925348505129274312275870434799925720474086543320557372476962845634511418368469890925644665571413516248596490377191230161363674144379346626353832750517115732831980602159670308748100554664026374779822983591964159699604777492554723476794757630270570530652126037422340946736765293943758008899012293901308979380596144703818711094737827594999470919000090570957819125711955316128490200250470364768887968573491583267740285995902094223597609578881068498805100145394788199725340860437953161361955572509350436945918090149876533264256955814919102644210772257270726297943939954766098882653442235877729391695145994682007604112949142632836917043340467771602967872856941214016806153317473349484053671247415020900007366798921310665145547233282231057158848252701892353457735763106944186498562731823104739300284795652420696064458662093945214591189414985991846934037669930729917125369733219493865052963531973770406604834099665833997364881194886317763323349428916119924991831224870349628632385608998296904002884915574082560988549231579900597358198202246656396021962084870678878283669110986012213119525730440850063622809282947394009033714405437511240910238022680087519097556125777623664927999565186904132927980425485920380354265752786327667534437006453812712165338373752158057124179755912327092727742502010641083755008941302718873949336806018144517762458323022783268494212032014424962422146188610475888319696711294660430389983851522796344328297056209646371099975978603972511350533877772086458025510785323123515843665683160182739975164358663259872512078918422136386174168778484977130541243406404294045938621102695841335957046844207403145564890644139894577251503863692345807687698538920190537639918473685899576970013584211302140601443654530957999795468856258380747244330133524934700637518605835974436638835007604431689002460554425628201217217193905292754112571973844998394513859228046793924718227373153700260579299353222938832815433857972190633358056747815545015681290841264710175226988479036570125957967072996576895579775125001085136815258932677905293667031197116296226270239714756140645094602251971796850345476571729737845128595142492715914062577590107944556029273648994047399391567083435558666283345439728464436804778777354227905606195081786125107389790900159007632522813089942530250420533701231634375595484834787251145504876684710586785461210937597993972661174839671233255592791357164552904849565204679953614032947561918474216917842879204569021431171186322868350674229106011301390975449372392833819640463071847139153135824856560235135664629105627387194708270982873402580743058727181198146347310134678676460844672086205723122487534153846276603136683722736319739270345860424996722726460434994429381520319463337065715127437259492990430487633413177198865599365308609426992755294638546054927905360795405360402614269346131166827246852915482654421455797397675708648342650935769258661310335177367887921517326947039233741152890687793858026801941904760297081485947040382159813156592026342695554991349482421825298198773674815395895379010118363898792602004910232851419584100027809648081530551402201962650104753553809564860426406517780500284765233102879458156408702234177123949519563688489149901554937096789258235231060932271438890335012868537384436612379545868313296637134020039194590714174236713281897485401359425291219002179742023502739746218157970052319941296007932562578520521714315555345242158454170832170316383523383789404353561343179175371944781851035349343803212472875191043105125658729883197703655316791320146669686576650352616508288455145823215298081909695875465469213105461526489524408282666200150956812617270439950838664083488360532539336599794053229032553484828424658623147136979969374574329976828105819926451051129110299300387624494934659010025231156868013666796177467175696200555703996959591053579656650440074792752349103654730487315596581774954868315557293097404128010692844640929924845769943491436733647515497950009090109299612030488486993710571607723136439633207979149944307540595922571273301856184766142423720974571309403243658093995027007937473058960034138322468126891605463550871148869156263659001518338068963368628260078680647748027791383872088459402390604802225116255931988158713709735317163331490308799153572992539471238377158998947372989932444911802443982404279833696674068364319150268414644652216411620455714522774631939127554086850943248640075649645926680435803009024599314813540753514271483236929690550079491246262960174996237448137188110014282309702986288802595578800930891934364370819517768749407327882956653002572061288356768341922743218428515947662961559236237959105975541616416368132942792190830624795058300885228287902771878420120871318865502433600091751684510027192473440098047676262186462062414605443316087575336402994404810923698900790441478684511859265714193370690447599244876840155466720336414484348874258318441205269722899680153038801378237802662012472597171072361619798867707022262380421066035592763241214938341953794181926871309962954650035024644851761398278241494045321570866251509457294453146017819906362977598529938036497600386279708586845281920695051025099036230504977950359642694303710249081317028102463523001488295625823491402797253658280100500045922911705985938205725752615461315052345903300973064678633643296800381408781415914212839569442676841393908810133524815346811713589282916825847636333868537264181704619681913975055293654059973018649190221037461769722983000109208666944810733455065760094934672571380214235853627701399265851211796606178682640459536042368958777821670011785422759806068568105706572999739441229362134159043477359046410462643444434701159332837183438733377819147475230924085501150307059699041114340526480805279922705287141053265581627753481197816239930093770642411073870852650120278145311865716923793834995232348727058487221100889821014980758882372215060378353901512495607270984422445193749968010112604909695347257065930857974881499620866004092768535996776327055583818008363224541227412729248799507944814006004996352496164906267999808631910121090240711647040217916932200924274188346568454995572477511914472673787202802969786559878794086098605735567626564830278068517247161907950962145079722354408042095927733829703134339480820548240813870911657857822343799067501897774276060807862417740554642736130658829475525531632118133821718054189906224657694674925254359910052557390551598536500367408435785551296693249188357701254002794620496819576876723261532700647749595218989097597556881401514041236138965802852421518171622263084308504863208194697835770190039357648596084480935288860456721071549474916703016796482873677213637611694486398843345202467306460480773965043565281313324565146749091284767009142672572471465346253115312294322831344885276881400324924011178408721154067955559134218350450609199443488829713359494457487034917809455431917560317702557764258222896935256939809164482216931422993550284725661033469221319348405521197572440682986127279576470681663492119089897003036874040207936371619423044126189331609104318339863443081673629656951573486658030844986313180457470157770687470157771143795564075956694625629458900941993309124353939280750109426705011862970437663747926052297534137215409700861000603669302660910663994710312264902948272096319072152739459658996984400742006781065324784311141587954367263760560173747320173883834998520644544120519891171008134154244243485406815815292619056710894901331769581552779612090410434565914218013362356638933134247212892124966444109857167244914338969086306328589264334894723416823324845365623923490207127081562872776313640071906998331427471846448910957415958968511834913525182006262018166236378508395366871318069788776224193106746177391614127976705183740184198755903044393034096685436761032961124097699295720718543239192584580015998919556580909464558352931606862967753369696174763782552841810596179835487195048033959211481770335354003100926929051933595661176541647002869937844570252669295442822568032634671521642972235745999854625154266402980856423869549831224881280950959929083326065410615889164821785827815187761758913623320405061977030155826880144659835880195869759437057091536118711331684608986697736163661522941103505151892144580401442594978577601266199886441191388327005692586803355813201170552421854143158466203600849672090122596598912152015001213154897835156009102725961089547000539915129511605249194743407117108214530824810062265041771534550672482319611301295675182998561308865826281567405067399144949867336550543817955937623931693204332283568767300359312908631975367671918108517170604803487905546596207081669057943863474185647125539102431737409962849546729311862698836379499571756559326324845635757865079742313744193008941809862711198562440551558829391539906774839152942606536477082358521774975921995870061995156625654030800485527095804253315777742996184402477646002487606992133341833481972643884483222155742840179120443530728116481962954947942224074252793773578353324560011392836833671184671137293276631876434742959228458407562126541348159848315075864010372913428320816459086038531955877805331135779117925733513014163468505179067534765694532734120731228629514558214983563934691836685902351825643486298681913293582417320550355099898240998443730533206278347906173357188197020857735431458371745817466318582509504755976914449437420463832427378143537022609848703703316036503900937923162801995949600708363884631248015671042265916807108870059250826306995375608031849320698455940586020616749958919657729023976936596880408121540039278546029378496892443758460569221899068489472255032820392792696206796342438736020914716688033327472453487948579323251251143875796738076614277006511102782534514036028586304506272807989885205563165294200291671793454951579173397211806379197805914111269409989947847416693444464482734286245601037050742681110417746100776114937588729513111376546118342038334304321124821275094799392554184485972527439876142976458744916592842421611906638188238786517143081655821986548727549867815885657653675537862813538362601641162122943057637194114605407939875342144972219897917802103332691357632580943458157872351099493827953825407096187267005937964585264858084404083001439467943215828420214384490858028549356665283141085028106560300303523449017317504419045772598549102746445704800446767354536831828995497119514101106565939657786517083259313581553291752768239667803121434021042262710258155416483174092565734611287569564094700819811955097690708564028927940587479915406549962305165714455219425426391643231647954093428209027939736873638669051838983439496235620781118135121706131047070937011049912246300501761736711392264671390375618270125007373705661159259140594826720510579375351991989823905306321367707524782713935489771188179249030243030894428269165247110390867170676685485897441088524354445695647649013021506072234031182172165720852592851968622110232602647562195328266738375383320205398351436390339343616117625214277218954955710980144056848933553571478413274239754461662534820435740638910011022859515738380987408722677038785954479835565727742261996812279929321349241980359414427275857651610398039913293617442160208803640655658244930137212912636352259456503388694226629626654233747900358105289524603118652950111114142483203655711554190361470220415476087188560039602396177447234695017213352818550488513173417478041108212361603250367721491635591896933718441538232097425239231484550201110639386944179529165778576890265151653063385280758005068539148383163409215848674034986282619608561820894048163611253649227802243349255381720386897160334305186585671745702802972082926504613243305214506904329626236938524876648355786622667910728606878329835080869517746307183283987596004089768761937280267439625199556781940528216965532777663069687836203034149268589552011639244212555738421309015120446772857488128106990668202080407002468605989252372264979768025445234483221031398337070877668290594073910122472875964423986133068160986749357198632114245507941279132532483300060902713708757258205254347248562994883416063984305139508188398547747161861857891150310766823576278142098253693039822869420272371647393020560049953843784008372689216028935748065130518930018810996497396904787521303551286134908554474788561616136958487254246993613608801731926133962590628499522569855924774213856427082599120551002421729594743343905560469794848078182799820365781367517463413722799725919176181108351625963061612732053539318648517417916383125103190244783918364410176946935378011590827021900280053153950463186034857573448476991623314547370742994806065911661216863568651785562837888389500426732399223835934984470088794559018331481012740300719658168555247993865472181081180841308746076443587564904859524368626041419360785109757317818533925384043033916160107135612550347315023684507104096992020927095509446946067697189160913268988287787061059477479174278602747696877776956969071936620256319395167713584659265918914521754999268188160206145083451614141550435875162127819281710404979749036070591241604281945264355606255105964541177676776130314549445260540594409737166188497928840400285184477168380447868772276657960527925396317182070922078911939737231082109822739840546801478746508068275267178836173651558988971692087498840672939487841924844093491573633347923924831478766277071022458194726718509177920032213783042583962604921596760012832693172836989989318101537357584255587899999223855637072151534875756800570970720454100728045827100661163956381485515904274774526952909922130997095270130389054558120421383373138501294525112340943997512683677757759791958524588632179998925265222165353086167146562300328411748830216396887909988963907166704747602996545415925597351861124378625480715790074241815454186379474468831218797852971246458024944373392221347526726827597614023944578897164131772652838933382000930214712571580872416018457797083612516298004745890334674194547603573153211852575832140161984410760159596425879255892953530994601025593634455454983381338738115818563810566790623940157132629390218689234390812536500290664678408189362356398368103713260371200414207205072520223941832408217187218510150875564669524704561479252161661112131198725274182231204391146841504381733421312686899757190177303925982590802556042080772691452523439627980759922502822642113976677346478294387145228221842690123615706756190148328973053237581793840146754270008401150951891043794716849097888229810681812492747342704387949852431602260861969172319100856074375053468371728009446775353809590109365958648527335309920139961671323628700938907368227442806943106538978962228401781441413327975793884971750912407559308235720161299735192689069993860189793511352629269616719802271631549893119385486139727005626955129692754870444776387489804321733557095168154216098396489495615167848766149620373952477326026398803041215471729192463712210635544102344358030856823607712791565032230720244249590616461051269753230059141067875603156468017474240050481286979512033589638999729531470898073570349521968183670844148506182094388825562969441507755117818659923505201899304693828219749925725374521625610654339999588970586367968280662424857187308508967702374935344505917961531627496164481320143961751105680729031985891550840655292357328281308805461479373819165851606884833384868463610419280343082056152490450824553854915196847377368763353647555143383118939012312155512713605602464505547373702670823628404351834929715355031676244527285999721500789880024996917085023022006962895751298951821785128467934113498912966059297264509197664931989399495824420383241050243234765063208599802673263495346057128957269756883091008239369510988607594346615411162749631729315150480489076439215419615619911921587045129126989057036013037719103889724240373551234392424699006957067018362272214701629798821654428357168212144916342267886187471155407911540049465850203780479211166341687465895105221755073902118089027401546059483141376531585592736531513405965079665770450605655349998029669120495627811065559621426328236848941783487944431803152056278019925570819225986508885921682480557607003889957697425527029895858072360701648639352134859883642495110873478904510964240942154971300401973308210537726282254649358321961989535925595215945558498142048416299474976110233697518385290526561821676559299930731989247055855329831042538847574610078487060887914189672349392483196725131301967169211646347039427942976606586520235579577580331062939124416188558387442832027033494350100411078772822855539562993227022243558568687776334527653028847471711160444141861280133995875553911499510385018747589503874697714712942028553003632947483878015499207964980508459958601497282682456472055131503285642715510394387993654683905260654664877127025301303595545660942505755824967370200284888356440467122573113039835719610381100194437297120135354617042370167314762924580885997909530658255227089102910535832268994293944751893496150952743807111953251320700687437083019455728722904848069472097346101866448489296082290042774817158989633669620424181905596108876865648753397321280990968617286488639607638329536206139138525604304867470406457402894918523454394117329696356593911397253839224398589018988391749969413743403330910336400383830285089776072336027342305630318088295845929637988724135576132975256335150954783150436088859361734946612265269337301877760697580951995152847325800501731689440696640531496058521687676115762050315822684086487468036887550860138407331616667059614586271637933749103513864620126403988756678065480483743232284177677449559802699775976012274642707728617552666231047674550600923406438626025001667124770527207624337009328042366374188706172323514453549596995873156232758808868554684965803682657585967121960572025189254457921944047302632881591598921103499991411951879003090868430619230785878822617746390007927198045497925781750045516085336075729009006344692503322580744106995462565257191077495101222430376098850627755037369222575788839832818114465822450575273475148337998736714130326281778621671527984391686190203585777596089183461752981556579651372565030131701939615297425340119308685945313138669711333563244443244797697286858786900359556695289320471469031107028727499708798869305707764144213211743054346045251509526575599198767059647409403401533984113831307367359049285984498448263077222972448985947818968297712352443346230288502798801346049640766384111838724039872779415056701869194191115421616315581812071422248441866986016167431180600671206437443158490150464444243050222983048619207179017784793783632375866378968180492845278358519256325493721091017041208297695788719937475060197136070190721527028946410507233419481736064479518436418103094478697586408573420070106059698318176473988856526438155616635066835093691808429615073097412894158249545192270747654514120591185284361988057596876982184799265439435475860753241844153035647201891938102337995104655096689736426209981150446795111888265202634294113589179190637608657172143781672371933281343680194849031931552488456609587217176359758596210002303512893902685148549904269114395451045164436818765838750713146082153394137250882464624315458886945838370698672422515609066529531209360895299548663008789640698241079485638735121261095567646692203016638714063814751260659706172788415028190876034003304706952085428999186103452560225437417164249833055164874048659047868742068541875313489166862624661565027077331150526275805178904153386164976807085745835688596467072447361934367783700492165857218542683518468694785922603103695591570123391782098389792049294669369229178403397836457789293223668063817754793671633437534840529493425682807753142167805123326755012121139232617884442103583580521134537818452322490381912735163128104633983485580737342571612060237859035056121284435791450919201327519171780114490703579630452397849697308661887534109384208673300206510971366092566220578941471774717682959522358747675679272592343976945373250163853863930170258901541668897855813311055174144703997850010976522549290832514754003814701335933935258335099313267999713732660148169447131975037479894320195249304336996107936628308002730039838563743858270599724828069066829121141735181313377778590154040067584457303985553420618434429384328445647777240263933978160257356863723707993699785547556361928556441167969151916762093196679650426117923928759059816469449190181891239396285576976139165504168291234377011916516596209288657073058439325252637683636939853535133320462130250222994961129547546682619294821776720412118102692954070635890304038279448844668844157510157017224846859397393443909868364482070026190369942149297036958308280773867123798756935872569776012584908141508361182696536699938745105013458845846311302815483308717840729219941710436855013334518387962256004577294981800950738670735109305769936213902272037958598522144682497645111226380467104446362250453425773143391663821719566852351578165558522513958199076570271602325150022399488658544601153209650603967359380539323689592315692288305189204045499980298054381450871080952666098893570787757467910712744222487969163095648269471487860362720984731846505593317373607552877857613941011950528109354302907074766140624488294575432243943671760727967785147067986180208541424209504988370313612313295240164991488058206353303713158033783177100885176024998828574219836506119939553778205761188801632643802422133866959527131918343590993397412158539664226974529487621067014065297994013925683877756044017366435743142476856536827759202557498406732724666176694428893349982638010458439268832249481387812747778693916015573057200381783446263877069873022658487266423654263726491484043654984028301905687811787767292421896701200239642366924848385854599254234243264644269979119711947931635226750677104089755100252856950064181545865353245264265052930301183687974138798341848006825280889958268645282702280710081069743159578407953059690132457238500507321193338994892915964749665029345844505228270493746561576788229100559438272018153985434948865818871896585485109252426933743205081686210851296612600716102037669617876169492008087001361304324867093547041980697693454333807331060280964336535749121233259745503651550078998645157496468936441291420900281437773344684792779910781464485297090102968349129874721067841077766878146254213599326518057388773731094669583249502879123950259790828703997753480861454326711632233423870797781746153621300897989840968687806789191029302680911292474003502572489054693216707549810857567481035565282410183984010420328507259927249460088234417872954221633805612993615425047322949960358769386037589614285256076062699827018948788850456198936417753544972479861988576197157273273574480843925321174306265026764881624897285481676435691098504099534948575524558356206537302383659653195084584672619520210316056460382069197723297884818697834048057804255532416875870058364202162110269156765822681472296521180687287897730277411317419735800655628406808738824578847465132416262576760837835413228033968454100803633715160668114705918339470164438502227190545454107650686225475864413113984538901395554490215140202545910778845538040680247567404897817136259883730998651901470724790724679950896337524450182968696158084290475855963033067736008043899686767255447972380262603571405272003334554005990756410351688402100077214171471542675469630996909785474597300928292811742512539071632315631141313460514802495306700635166355168056845972556552116063438598843960054969003813384900191306510817259958060930312982757707784698096427726899169652640237936979811549124570473808743449255700112490411543369017210259516554571000556381602960573627401296131420021911993252534210472311912601481523633931933988188982607299538916674325319977550582494403783240415350343467919708181476585521447435050122184542802906995830205695324981604428869823402529971203215298412293200588000164898734961884508441115316311388571607993801485308357125845262658244082104179476427856867677956586477396999833829387187028949725232947962190466450617067024776734135230487256353525744587327802798679592745885227628502210622424391197480353355807020127968750462701988154100685180022192499710421849604925540882480812237380053450401181375321970819066113105981598619713261713947366917888189681238860664996275814573648224231812839305134255523098730860150088501938630216918854495044340907146086497933614882081822990650131551288021978047084540234306145563451547317558301655910204086283775236732940622029988673744092058068029453124375423662360231180766120715074562195805672801425162786672226219946666191195833089108682679799590069191167676300255987342133908903010321047267749466987463427812004440988670660776997129039247421910755104385765431340068978235267010557811055296805958272879791049473832632539446712124768687570636725751284447503774041241665584477606613407628017021709169709229040925672530852931043863128749966240839021506172644806408036535444434855172931859110181431870197105184981196780311579218367550969142435138855276377634636835752139791611526385579139220797891067466736458467360929603262274318356601227850113063823249497566205074660576329065967704904563892677676120465760459222361550722765380570990748215843926385215956353857492248392984915604793112198643494816527650846824555435116741915772129258593182935488912126065980019262079527749363564648080963605254779407839418593281199073469585480013853700114845656271570045818245930723534398903000587174340753504876431765299482638768423877938915965512222115558667473361644876307144485173898644177509081640021413005910447585285101621205973619779885465237175754522207351883440460442943373099312199274639251949048086398018076889292321467017222466653274972263710808978881630082580584186860739063660938984787693776005896749368937887232243548208342796928902231482542235195029000854172313361945303020236167736536050921363918198347846772900983305841558982663695100710749830545738091398517241527414182092417790372188042317297621721470530421995883995869638159718921460625799694962869632758216147043658660605055893977665328566763851678644206842778725683299242222803271104231029732932117593165387754907482749358118982145630453452190924874245989037085078620116907565450449944225099497628786576898147161124009203037568871590887471950377536823952653414713287038500992866021550542526634287133206485802456070008791220691854415470103797336175038691299599997907982959042957513892744547071468272010344244664240305429231591513492626625223112237258831790199473756522617991365640583224825337349157374653692218686612051056787682723504705358418693734371916443685298868167297220109008903668480894730307764209655700772871886399408986043271006263643406106151726894755902291129574260707137615163839848626423934522602928566744817566182954269957653934352145828244423367352753051841386201195180286227516296684063438065481564541227398987548329086326398398471562137549685023576474816770031848081177388110041473329361416951875996568152889988510978034226670687236426097936023125628227485909891768900210431778334330067504293863665495989984577085134334529104027739794506895039522943265314023170221071025328471181973894077502245470923140733169927139660134575210679507228930007024880754425732853325268121156513170294501105961755303669863960506460015362632511522558885700688801607406174269653398052204166436852609496669361556383477307265893905425247196304171386805068827211249676861894292130204722804181967409758531970257698280434656933833718075819726396720191660734734394510658232375215333918131280896554858882704241899331663998253397437536138598271961165342969655550723870556869018058924809658895533228544060625479012662771927566543979727671893778800804014976418692268018838833265359240544614350306242844743754631734895505088418711942920854271169325741707630843831152923340582530488206965476336202992229010742212654068896291383033955688363919140579428442164497872697704831801011694674726530205958280443752739651564481486507852688829713544184927598974229551558044925088712799672349374285334988260652076228257713114673998990511595675815175786300364541050766414520606573752259823035318328220565140943726066697537995103101545256783787132394902314303866296568692747877891516294086303270584449189594343353782355095303471311412301868179108151761604761374342345649695865426092545851492145212157101573410710258868043893892389353739484186620362838430191570383762053076532047243549275331089650408530486704368748732041757694102022540797474394407160074832901034760790007314208037019274777110618333938195923123382911751641322655826174842780916763576339004656520489506582130360146390528982438708828418306187831322942586984205335948996860788374330584842555413625465035547181701937282486989324371146069724425875170430270114872416574680680607075138379048511848583937557653246076059539893831009805211352239873230009205670505434768760942010921358748982869757832900832920694510546004933306072885640430048203822755886408666082095423807371202008548325740244309298219410691804755659939844547703487909120193068650976140766627046929137540665692750581612470369775283070396929809189752326214879802950986579936683550298922324097651873225186705525199447051624505007141242774357111552788105815826193713772805807004213808066666712283911240358481187384721064894291835299290649770434319936561874091981486298963248901132927983093612889124521851507688388753935987039792120190759937572199870682193264470972156527366368915871819912841093144926256936048950784863866108829970800088784808570124301381728438700884526611700444767234155036268907527409573636066326955489899628675920759474758421929819451238402666493037440829879505020044435872569925712012358206169156760829824294490986935896106828351811499222455749032684441749543453393488913045082056585377080876330743355288321662125143222363912604218793354487771285409211328473004007457772494570540912768506764536981975590156747288643526241916029305136795307454514048487429681813012191568674650402917738120830968041462978841112505078807071385503168398882013651767984576708890321808670448361651938657931768726713063734441424403825251781348744662677274041519089522187158549486758997186715040691301736797252395580364103521446115472699822048864328898746449084753334858482091198082525632437569568306741823178780204886978351308928931745093355652199537719358226611746049692972859015981627352815067069588469932274519527993118166950711481026716097957757016438024216674268635510147605617320443240595533410768881646718033742221068267137538209153033597054040232266899655880592167805271089943690352247872055200046257977191849764238824185538375961840208182901219135760317138278706191351301771567881972443712532282935104237955910097839687445752324017193629554182063142070876035333322665075741589153917620727088209334456779195979489659671741041683849864165628011401061875359460765219764200047619422275349774985093166894594917745939975484849325335012987421380477674702097905559255880215158374595492808909421302188999109333616343345535841174801556188602664567795453011161303626914973877733351263008516711188398080598962214677740511184951378258593129181077402335104564853512115251073118450178264458095527755610224898946671700820243217459765595980847625489933072697068481806082417362426067516885667245890355901799210239431864327439334046859835477101721329537115673150708060165034881555894226025755822294641262998325333467336557849559888502491674407265463614278044936487681531076676053007703136226269214247909535085356858444739554922892847981236384089067782116633698117616913672943988998512148587111562385093401605301079850600178569787797790536179892262492173405985148249233238809696339743083528698983997430255875556401937407379763634176509732821345855017922118074382869679482985454171444026494221131194274214947200974526523813766296467365126458302217412343086091903430493495486115976356024757462019831984283933738418932761947032470987637479487246825628020666451347429045508977797441802451821407796227577960645015885557507787623353324556288367232442825416222143594384270434334600321554486231489112175336412954493249058727320277070330611118887307073166568671455775630660342143385177390780992583109708406673761448140446046348158474290286150945551914494451152424592232879382239173637104499578578455040780766710473558366635246459783748360518271766775156420713154086751669010278394257028932622194928501576801458823665828244875350041660030508298518879902720789028075374950746542318631871160206686566450239341428270113200633633398462510496779504943468168778031623765977242357311801106891233761907535358325574785953233236834051492505359586798692988998250888367302346563028983165238658562017304778726638980987054018047737675581431346947665704433079283706883689233514720926366876249241482902183253132164687416913039150646000910253147387459680201140485471971619701305018379582657449712678616213123740712244164914111748310760792236144327281392594307279284118757366295340595693039248713366099783054095467276111787102330936801515488204488134321645302235160800340147239027933138138770884102865033476555423969087853463691296716749618971708483888273449786309738028885988350824495252066941755606065864509835919609431319375013988393348148720271421972850577211832276813416544151365027392991397812889806768370113836756118101408099612112924062968121272014875502178205460383854348161700368491199744665511073854710611217637450263220772112387261003870253470480675922291034853313979315470573741745106167653850135357201165119147952966253176316057686369872848868602539937396635268753318424536122728054151267929330297559623616206504790053408043061439704885495873609342626757586169850867426824124884792449080379053407743892154903101872759852377920292203326916270663437181506710308202173979924708581050646981972378310700516855556680262162943985587936682590331868419557162422930974327764547419281143258799843563128365330462422762429749017202775147234984331187211380454170924864840736127040889551044804215630193146344016115149852467203123433362450867288573731400313307876152632623602200848783057809154853889070694522811793763085255147164511179861112458178948304401714372707458708585816311119884065256941628741063037713804723987405886938427980099616433096059156508566256071322198174101526643333794888561777162996282984879933739213413344085872749423147139713912307872149295671468592021221247463560172547497801602786508785809894806088431364426452494139126874727951195469210397195918596363806707459972827694971955434495824496826221700360876757799751922115168277529408620706923925525878107396003505454627564126236041205851176005437424521403751782402877165571062491455720104998214859478411671030523899246965607265476862248912422494403609564991257867992203331076359047105392670377535008518826082544777439446031113232917862832307326731891077409754766757617437594585503088597650825327173277019975739025818188766771714803319805862380273677336918474052755396505460726976491213800194616616688959563820227270280976692829738068667071465795430029628515169696009666371505065151224647963437052983054194954530053868880793197606416418172171646490269238967822730707576720264423024788284503014358022062888436317727097451202245974771553593955513421181299226359679373948059591741149168582686219324162623590740285288362511017831534945982613449083365787650233268487097423466836289273913629675114239970502013120662816410292843095776065602989306633731181291640647306567091840591709536952917979211064075062382863536796658843662504483842263968046413630155187100258093458049921164783064146603380499062869855588072264844164379147459401545694434594312336178721691713273371569193621045537396014525180807527437458899002155535771473948881735082058738124613050179338458728872611240719283411640017646383266299696011007370316848155321115616281144071087422708190369096612035558436197190050923958571063288729653325697810359506493425958123347529689553268505854212823055013326923085062854875303219925417326584506134246636590724058606418717601384574211017353541070507227354146438124669851044653344517156060631473393947736090338769185874455572172110831012885505296347284801016591234322975768644581366101820567004862968523679727784786904462587615251554981638310092094725308969210784211322679712834850841598671212397779965299973053205778420035185748103266391023213759451313260323172066867913840607841963169133243125534557772046697430498424752421328137565500577155546058223069562483075525502962860987979469149831103343125947240518404037394895989675062720613774592193796248388627063552043426500911952662401187358791777413517523516544231436493025760540889235095401793217694446612090194432900024914384619222909494091273576287484897125994399570837846527433653280932762271499031177293419272953721867715075625868492256515189160831151953598529176824019296789739470914091384923141608590140559242358076780837885441641658191140255846819924256456838237162534352522044478469017368397687134699869636490246447774150640204452174912568557866840703419818994145770326342885949144699558164148968586808302493929045350442375900320388773502054876887524805693076133680375735680214629148252950211351338502066329066565535132047647013360501637950943448368562213001305123978718575896829910950756503200341394888067962299350059506962073330247537262212136580934056784454099556190077206752976073618023544969101146051334930055121899021606087723133725899533509038800289204671149256873575355350898252083278445056718631366785231442540247122460452739696939957432251857111623780114123292531956868344181097630353193880107434055798245081356570977789090698733149880273673038994390926596700717640664769395151015507549260294060610000154053116287502869312820509965037423441991239484327478014129566085424682789004384029133592927476072887443964447990626728553976805521810392723597347448251366360409495681322761026355319632013016289139012324733770630736657658739132358507966583506867437039490460425863763589698978623812123710158648725670471081463225679495936666363735915894778782776647424511860613049212067338452862163602605050006650419669394785129085215837497277100298998725425790815827973869422797631440481983604371468199511560885383526903402271800846262627842289450760270315856467706336819786660828759590483284569696365046887724777257626144114638222301299885837653304941298103471317916526333192128705279105472805901665595522334132690330299938804619907448921630123268255263916357635661832012168240347679738710114548666167802701983370104043562335939502134977959956250113545277286893396510127940740531545988084989382421776120978468407089263999962583345654458860694176528468824587425505879206444968009290437489078487430209058245902907148876805647105865847753888681879429627816977353465913834534851314039251349071815603722297280327631587852955831138508979206362268773866469991911438167447766477433235013797678407159856411195277655499726684766913582297813291299912457157869840333960661958136010303035175674159850842553885841012133349619599072263838105121373973898020091024223186525926845236810731574304048922518971235188310838622779090967140378252758642363572075120626226935500149232562058165382544739583080451202685944649534504458324350610677901832513284121118492006211871789502007753270362138883877218098365584399253736207758253168357490252316592787502835024330240316709041184805019221976259454005784463698453212350688170160975961888504169095148301008743177950196436838554828737799932406704234817945235088082363865918477320263921091762004876945768558142925976646290087606692977645997642443910843550126208078254904756900832916695504369348852162484140621899853308959909224671929312354571030356025570985497222336913890054671811918975069079081933563051759559258167255355646763347839127586853138360876573228442116774205368986832869042967633143055294111433988016277657032165829868129025847690307190377205331922815504960208672815860142463712240361640435706478735556629007237713803792550630321128652316841845876285845900049080700812392823614469618770792353628322966510958195865307776055763819191320793453817225979841350055265172623965836102034116998259087522679033083764853696241386786872376913223277974448323014735604144852305375848465311874390687543367876272300117612402693210915876793065828108228424111759792315583905602200961208241528105391169097129188131543710135478576301496646476371502909759894568022699551453967817284869054309616100378871240788171708571521394594121613890565927169838033437041361099925881522341285373027059652037665985264502831998530961428962658769900072814588766516339935323959866989670778080508433356264929093034618416711076125234415722512239338532531002196196905111726257985554721803824046476413746301268720229226417742076316386426226960648061041201758384082790984925550122166469479760660553278120976220256673026189891980793668783249443764835636052366072599956277252536711846787607365176557638735575255802065589609996504187641029281327403644739339940807954856514596454150191183578736854579963448012620653114540234465585733725138599712681977048251735463987463385046391326082514001952694698317560057190926709406078126729576825294739936668621480573998959806079781407563841476980934099370363676275617668497499227656395158686164536407889661329077878886316591024753075982255726401136543221317752205188725750662446474764209603821409844334406176149993858402774972053086573101544432000519684925194808917430135058472566510272243447467239996357198794509849712905059734291248103042319471622205218519320895030039970318065634858855466197041529346093762124493060021453842877493923937022640959523818802775163163868537446077920326638601690783430903665602757250394651912709974217034387748372406177854029973210224767344191646274546483591891953814577277415979250652160601923149869076367080844002066317129499139613584675270255608515315931311331309870930818173602705557988425672085893374921355047780429243291765494815524262603390307524237679972346921929895563206231570435472412785201240211831144513392955189889625373554514860897776937599077353008297375450980764064613081207087907536149863156768300382683568251832191308008466924983097644186710714005057110162432144170007684909604561557730072885848187042862418407561613256934111465044648014291811232023884711232460300534807654888928704533396572037601377377042892789565372890290794105835316637317506712521104171786141570188970499232546120083759737106780068821789444274075872749992602216707892056512869526265916457872567973949346138713966378563426200762773219061436967994862566715151833252302781644306282013635224394362505482532884123258057207639213822596592096525463942151036589274912958700689304665296080122940326886124296778697262821754141550419744947436473279592298039079625222894585600001191903860172360195480710477203573271061074723950037025406205815129923666292164861085828309401098483266276495073249833958672133281974909078180851923468476656681264916132968036938673391816989678707941731650744557821671546887488974722157161257240144884752533054778131187226977327842781390904320759793526500535828008590711503238744466191029719716750673474308625164102032423170023312927190185583554388599370602931689792684463257568712372669556702302921214215132553516139162561689664257636099929301867947196455206748733735073057866024860693591951480391291398073076835455353222845366475694733556737414748269016112129079536946603125222847126121023974883116162048198702332006592249806022832301453918197264240528725861175759417961022950292939037682146213717872889484570981653300773795575241564571819002966468660664956974029974762895572695685875980334887150940708884809234955725238790431714575656755346617580629434374689559826404593355068496559259389065335558656331934420879364352367542531991050722367091285311944759711387750670766031622669812286476928300760406500165764303181596385230826033108317418741110799904337579885113998489343097933090621275309983985195947716539902168373419915890805720437663684100562246436015613523165793937769032724272801857376046980974466434107393924194882326890314472914124445223152476284391473985348562025581933118432949473339906780526118287430749319632836209010156553437147160459704527617695727999952916543071346256082070500442858532410765301296768455821580770117807564775817103203114715284484756882469913361808199680973086666143743809297530874029218306782296205834033658510462533447002338243130484265911265913166529193302367301181754133439504516188528817812866880740873960518809041887310524849163156251501559190187619150737626254311258232444445323833745074085558343598083134779750378036339467704511180698376909621360981637249510757659647197847706909790649501410528952641391483257574247276646044336771309542751024603504452593737109509640915957658477564584965906114834231063094682934608972182453730205523901080942918365822878454618927085815444376825945103342328627113704382573836451341639283489857121633577300208274181520631889892322693848823930061933452163920136646938489999608771028497777105140609650204143370255028588155161289706680390954396949713581910577019757000140541463316115478249973967739714962169531964392888490965064774218495247575351038707837952846872636375492440706402515498634313782044590325282471602660353837165448646787226564433185533019425400787093647316278332197930505291203445581206658160284659934074788371060342047825884276057138711491938151514520493373365431689486223359358520195134325441874853171250795578473222500439775494854098684744656106705056788674512092331940947076766744736667206917590236610361169328138194139419979384630836294167754403227991141750773622894557987329960162968023480231011864105840153047639519790975732092183698439217270745166128672793577786577930686914607239424637670361946995213596940980838250387033652394893458073872420653823898563404797767655771965964137865062125540629933623942433255050894770760369775994944478100616692683756723633677060061065490295635477146093805978860019955299073482285539793110052139395176612686172882938195819365126896209150285309990071008200596404699451814383804886169289789826971541144807975357483318899491384706207997878884097357194323311380545775772495376473141323181423407851090899437421643439112097975599720426744115702850807423551286505757043849347362562421598416384522905264374219302994093129169869416422651547713881187042232819047038987934910257655253877900777750196408296458299757607748401860157859718792597610822214485552412431368664381731362054825851897426729564098480626976929416828207401329409103756687124461345962702845145954434435913266910424861475662844857352893129376159275064789078700603504349198597987099442595002919857605291560234764113801344119263327492689409261274664553677438843497069829809518163384710179342146048032355158829141325762895982984071005739782935495864211261926674256323584548549655491993558971631624347535929585010797057958064691830884618029429356485876309005046716379863666817333006417210843640154514103870785335810550975548874162906313605366916876091310011839906174930665398960000575222980556884198428625430404745931461858957100233833733674466280505895247938598246724541630227317585435861379189330512618302351497125692108593233284965902144825482421952856817052630020360705070106449694811168021532774985285203004554748340474955961574635577996050940355333056512140905275188252313376195261506850807331832908326161639604738603818231652518863518280727902996111156081411088333853702776674859440198835382898333548312876600767433688797722188395885798251242269020500331823557967554026277749770830262632709885475042514697277666100085808079537339782942466933807043870736795164365321467336686447607753961871566559877462059306106205006518637667527919534862352432578717594095630961434398482671564143298202737172875075062203973156048528129335606790160242028851078387018260030561746312170587525758481479284390047609009105106506513070186105247005920464121939938955971448980625720136235119529009576175529056841309714503487929093994597739585878556237680225445803163719684859063056009383531788087478440067334533799578523841342368003167305251453494256174561174313708780350570492192303210606622612841675949530729713492321784141884980013008870056899309308262564644323573964605386833765042840311453943543869798045177000189835412977798784601567614422423912624258350822852088700196014004819632427897139018750024206069994424889663417518994806665525993154116473807984907110714261533443787177308130082473304298659251420209522803265257263873012907324695772727465087830114959493667729070672344273756091459652189661451349315725993328508533213641919163168377687296988260280361065783052954167790233430107742492498928393820771531134575458883097864027349462018242195484689046676142045398954361300864247150295278255970517880327297841564362875637179349452336814938182876396298637156103961430459601722964267313336399201871693337722867825485146225785118003863775613106866167009396384787705245076144330767052734109824586600437807605387235097504917058068121803307019403538090399347392215361825156996043304425799432410589688679469574515451720775846082170025027800880481476305832867994037830994910347189274403402863970779191886485472472649581760936857150082559083113243225751171055598420940130198524164555058903705327581647166915877433717667097023292773029322543892923460975891195638319011403618366917913948267452619118688716167695997609744791813589844525842787655122670788388586129043053281393138526504247067990228888195024767321798670214180327421006778953258293287885363102161946015698259515794196310932950257157317342599159355493129301596674644097953959937426160745996647327457219676446555018893922937127444882512966050063344795745466442551547322318081396818815301579046063815860438105806982932952829144435400317758342611160667077341041125100445607513820554774156793113117420707787534420998322198907638593952960016955608484604137506301008067388557536139822941896041448594287454986356306684937220272701507124573796931354001858496318718762325129983029470537469790672090201558266386319698263132402272895229303840446645421487263323499212117039701632927655218228029684176765931220410309400606441790388712896003615481019075093604098786828159222213303914787295297273701331777595449455995514750160702490719432541686539125992555304049222549994179158586307028147054228204965734356750526778551119741690484516470912623083281752964415655764318366037940140727945635826917141761317783875646680379424565509312566023471959879564530370384812280481796914648244829568172090805644304592672040123689407604932358719955340952430857417650615800733391897134597970654297144683230777841429267660592119386740619893949686040929501197861975932942046652261905166263110956273413575309582720438041987179696124750356792953993128496695131742060402275586569168242129899471671254290578609466004413795462499869279996499809375539291689325647696130423016849895445541422996746938546765649972024143363294087176752532868800264481204730879942439121123048658434867262815230278854187047699416452596630530898225894008117640602159598057296545554167671856702152520225097451314101623328468861453787077752927526253417424969606607746273412390155485583908142875098671864692429304810809257582789137126673555551110717115989016559001282235076574379219199518274493018396349969038481679098181074303456707121370034322765510644111818815270794666764177935402252117781456280309824069414630382731418673906471255246075490043394494303803579162366459339080048092243944570841041009376618747591549121480924610326020863250617370012823943556681692166671535671263999380455990281508074484639128261084303924395848132771932769023312029635168029169480939605922427118453006581101153675704887739829906191192961086740879503003967792322545482612984080118404002496055577321185637377025371351354057120527513207884517148639175337258705553406570476093555982406627977253933752681761238694569374561132840748312339052962701418730792012839585319572832124729158998278522569047505925285695193590388893256702172170793985239460309745557549483887819868548357945157781552843059608346750886874513418039524505456183781578963603392399917023627573321002900514735815161304386053338277575559270909599643902581912212196118624002171536245069947911000319560198918981915336497542662958446229838214373608992442652463291302213093972026134571934397299619415673245695407924803826713382888101979633223930747093198192423436521598081410340967208301695357579514992601997052408028009654011033814181529337145179114558967996487944779152745668750020758654922821095088796071331701662780774289339953620994362670761245903864544753974927832825275051724274756292515477520095631056311552364221223105964925350003815138843404123712626046992296131128868209933110247012998737280657132603359726067017590891983923730112526607184069930221913795278786625093941526639184631595335041497989214449967106517777845367614844945502932823157093911450977381962239340270587366996882437457183276390571449417653057494605449428736862465353555368098823385990044759227405590848877674121256371678346448792472960560416967023763841867457608598244354787692590226536109601274787345275678846759191964274975925837083792575837992621144288415224784499344773352662482476653876609817159217068928206490587016662872623051396422294390275499550958951354007745998947203559286791122355295248588512371841940201029004967421099768333153023078309661284230145115362847084063031336203808777307799133577539479920942394317436338062141869750063419464531430306185581806854723602961669204222967601183907825464976815221235403394007146616715572683642702387397626636202351241364705528023436903361992136452234976775101293916797320099444715228976152558703794851017275956495619310904806890490732979651968982864334587654641831369430579191131691265405235340076102341252042907295328022033064388123553135018892403179434615323699802863644775922538767463532418896108231766805288008976196785249774386434258311490139011617372320246901388383480555783274484519772790957097878651618765920040380869196022332219448851611891282903870605128067927028918125043537627821963460242601291307971335268712726531525946231522596861809507168365390349893273452985012374262207097803213422333348146259370615239011595018802820162568289059980590417029493166396101578611598601392440176669632570669574782523526734339758181273411486910125329066014633879453355957826326998314675719777736041477815815214749911902893791001588044765041643023314648278514466157536903748175369128912976923986911552633815022205229575014302124908642819559332365633084497358345796066773123023730847134836847763739825594580631285073840107117407538936283620236207016895805889185614912762579868717733402816860051152329905594149081644617637652753600890233680513684310241155531231865062078249357013421285316285412847569032070151087751658946860499864101370916459378557477110989716916706546130239510110577676157462906043717997298938376145175970026390212637520909510399682931485624606122638226511688545582348813093899181639111696456868581975808078490613478477645309063701408278428236172312421268105724910472269904209282581260032016299343692470072044919191665144333209429690228077319512526706927585238176874982219091182230452167578928973367127286899778114089612885032876493233185947774504220607699687901051700956374175160823824047884018888066286385340330989202337550149274590663063197159991364320945740298950240418161874246168448540984643173616615314857811681349872599700926519977671267052016258031811281889253938274163031463980217860184583420415986623686869098840284497580744684147490430555859118099237810472512021758812282162129155230412881824658259472816702414263207413338378060398630252701246515496040647892910534198698424381435773344084497279044966230723716378304224557176456213447587417499470754804233215909836333554023553952897577885198767833564111804141095109532805688526602831280018899716103640111600759928976455848563755465030898633891025810207728208052389719281179761069195246596133278713357348971426538282977189916888919632530360149321564364738899872674886302928910792722962421155774069268698096678866429147425453912526152508098451905301288089247514064605229939252641637112606235275202549644983453109479473437276531297770223812902099979872093500875415872455810320099397329863128347737748476066519598570172678979249385940037136001027186653795561417891921993883188074416093557305902092644216683492304768662285475998900810182145923749871774113824072910258391678253409409177513735265678043598489883154334753390771335987282473639315706497263398904245066761555962401769080703264854337815291888826340448306534930450563142341449457356745821398269674862710978410208289081861262828057591263493839201642849442776535480298793386673173149352910717398309967421566127214254009088414048202988784000489294957479422446873265020812499739352124130943248541400795592156205063326393014841152427641577853360570978095270707856113127873261235535600043501807723898498851664718365666686244663328482835576203032162061982893335066306751973131396248325296227133111822969498665449267042059944163567468065867219315748658545811601446069668878755217829144597175153909193702783755521202491151945338331738685599953629855953005933249284655371531172194009045795787606712853137942796618581362643888830901656011906192187697054063399777114040232657812881388017187199957811374663322004431979500180835792514834701761642319758913201378356882449538672312403484633271101184539811345696405325417000782377699306700390446401494622606769681319841888858869489614852809588210558515763559373052495559894570810808537705947995551290814385322543403681578428057960995658075109257285188599629988169866697462593516730944207957564593058261690086406572413570782148870944875048154881109338460603605441440086810741865960621604175012038954334255104338505396092370436989634049126535303841968045956350503352065834002611818462009806882823726523373735026430430964040472499076951878534267516087988923233507002409728115227024172253430538581612167500997817295406292845971751006291854454841531865797305210373140964922497953130251126319729172598175766033560233867442806002480968039389194317234381909066954153721946858254516551265565701403554356012673142041365380606496780140311547935332422799651868971417100104419963184778657644276957223143797730905936635901276737217903025872123236302119192918717443972550764594993307279374921125219856513351255480354310210926077663757443830012412536976229686378361184083613224572921559935921561521546265870262707805110886818360829181562386820859858674642905610185920728901680215374246253930298553156018141432625166445385752122679773756344284064051541531950996225645192028970515758666816587699020971536902043674669761773998237677393532059730503112712964027304410175769286007684642931502840506242635837036149437347916643922515967655507922649264255340311503156278990962948495062603760652506119269446760311821893819559817575978334251881295519276877440096398974374191764649023155761916742772714697083024933407031989683869910872844350438020183241084250650144408716748028802275525367547374820491061527159689574044103090601641905043628876312428884564007810920109689665388398215467220236477060317469959319863909688221523219056013992852642163372421087044935012054421932632639422812347051488002669019330637378066719931750578364241375458328278988095047652594102737624515373761428643855915478680411937666705122166555874663802286045896983069682556818435062231974177506395821181264603140160865118718171724898138815257830044361179211818613150765456807379094732850725684051681353826590807572291777207717564857210111815563805495776100063081630135216325692204972570445865977754104707056665052247077881814583084781226990021187151984029977674110194913618662932380943865327465896496171644387681874412797871085208000078579902017668664342954480262342446782992506307266312072747984066347625872842384191870662000981080147867815526364496275855638448658360128320098451177735286027785132397928959738425726662669434024008909631240209001983306030378817085469024645504791022075114170659927328718935891118227939808479204104294010859501269903597249287742660301230534268828765093816899490064982912772542985186248475093553132613578226483213268059550542460196894919033385702514737760421911950052528729664462177321126842087039710393526744725113867651663207914020070197140068773023703368952394710735741558800853306734493657511240806940511312543541069626625630184550918945493000780407023880840961343307763340085195596805926222027995498529523870296438958842666182461078121547378071973450923307190676224226280957092531462339015493873314064648239254686307253198733736082100750475177131473581702628746685985514254849219190343550934636154544040754310673039795050616566010048585771653803518498361654777297018982315066048098855370082661096673638741884514885475184057655494001787663942371435415501128370484573647347891901171797986496266595246941086798436401500898922861249723141297399282437131947738561496233558563843056723746195266028219734112586068365552259595582760532645861718479477713244400124566708412292742875329062215818721624473234317636985321429494590420045650417536043035122588086097642875155985632197823113817617208577317955104660765451708651837252004404195284812164694297672594789413106542956069859360569945158222998940078380880232616853707758323222596392711936461509113737900055812273215272088330264005912157925097907892307199493833938548857465905363037142605591789060421393003575199263045613836707097245564063853126686891767277314702706992707424406060032517809500093563933008533799369137325693586940079225625285668558901888269260136159500974799297840142869771719958402732944205003205674239686930794245732922837230996436744849322701355936963402029421067222289968932558337070746329637179015631475880430932560161682145843170655561959847636204839992565751423550104703162843735444316532898933957660405267783439220250138729175398310733289947159646596817853279286139165903040817692926371813416406577928703513838446592661410679201090708988492351165983585344271585664784602840838866872042319905948701144716814220569373389944822809480055388177044996186396400606578840345845227218875427817735565764145066624276640409045433153486604121947700377758016191565560409845056969940757314743079175461774470843592813699702516988571688833905781153141639784675115615053360154363221191999111413206487258109364685758093124241152924655306750861374212946545891955102294278137270555568628604483925978002511592090603234955292786733723082688460313271974688887027806623680072199191517366977416279879867219052022764340843169672386092969907362579048417286369353333023499035857869608752590008133183306844897763377192232459904173996386113420269834376660134337563274022759670540688992670321535785181497874388673356964041333903177558139822406287774301217519021126957765255260678775782980182643095701812385620662454324306440628458834988648939378914697673937477275828693742993264884040846658988298012619461316260572407805359069411157726420279735957179364359398083285300257863718994331896397005523026396748189416630361899923095608662215337513104534296331907978988199563859759073663199355503869139839161495234491534777845240145429800918620479697676244185473594732016404693446677604344502204738512465865275833881364621231412296397832852159135497037462368526542495545886059277571796592479729585549556956837649687849973589493754656729346128790644129130479235668349988558469608254163294346868675005803731907504863594497362654252101152859227563381744355163414659357376196650875879612867666891465601992061238382623931671606508683125863853703698821375536756350080991809217354731671011966680997678706183114419722108041155349722236460464813171016083691023267732302768429259628568127052169024176537842702569871006532954097442769955737970321069478595317575464490881248761175342112522195264031017689356306451657273737468900954012282731598482306043054534247408275169499566890083907266975586202014940387995879827170543958916854655435184470707505268741293342623752640468640757589607629069958529731556893571917502528365903382045298815874497567017623712970693676875805118753011691063086678511987088270021105004858944007479897389917781580323051925755182267692079509993397958149079272218553627945749700853188524668628356083039732364163817875774190143450280475393114812330486420495577693367567289352332739293506989702299628445586719576349270067488891615757694374184883343497789696373294107857067486771160391217468665705103202275080776301497832813636469735811636420067660509943276971862849105197530722249996424018419790368313610211871915448588053733095763470543998719886517057947703945308951427617656857842199914153770402127289872128870845666882378635286642608828809575089115171569792709595030303773597422127826893348411769024692398662893214444373559494571748691738440909095248686349660428207649683826041539865330595526809042534727488389821559254756836047407582034797872625445251075211590006253613571674921436432349246888962599023498238258099440238051789382708462534141593757394242038454063721608042271454526215852854379240135116547222898307847695910497848965831369948744559838390586909195835400759467372323929372218325368074035150203575702387064529350765880148744657874198684514248245590038149689903582528697682545861878708628864215511695411887563259235451490519862785903938408062399659690021889355216654410319434894816551983384219585460479223250547254661605195339637267137968797622278209822815086091827708367094058375034209877516449047004384791885476471213660951804170457289302145513922694094863082766179823609145949521333410237467447608286438905175159451192669401058264941539544080513905924035138106705035706977438355339081040956000184137549691808854270068456534872471943429259066611574511696707766119485726509727497508391242749281010227555185020477917340101426024865275213437623902727318649324455936906423389225696621543644473297187910122452999516783270749561847164181253049431156721074825257415476743595400448416548670017595680376997945536721640149533692160834959274753983088607800696628522786287093375072658737518176599280481055242479738664485158608020117550343464785879049375747011815544414553612543219125521922944752600148086256276207163444016079401317021790594927716203973105242252684477911522594086074322453886237461018496867777959853261234120768258582229490186494743321427008637115430848562653333529737593895111663812316477628762851681826663778990099268042490234030501072828555890408164757258123075695775181487633319796508176044462739743875602311093152223204530515671933548475046329105971018778839746543478564114052684697182675683436640499977270050838887761969435141532610563535235818821418902236942085662689458099479455840334524390603648132938191102689857098636030991066438217549466176731883951562512927413822032979731012920248896707021101280950222447098554966321788291794907621154588944898301251242516630151887203656803107207361029427804315094237748075018908852243627733184628957361993811982867105580148347480133237271831986130859514132879215629370590605785687827794816299191518536603820949780083418853233071158739604975570025150150968071766314691609441094869110976694488884153379668318377756209970240955816467731124591714381972960783546463000178026131697623690241434550463209989929090546308897691304257443165971439562059591700357143254313888981788658790886669126734748408204942061092518747092699979135734277596787356855111924692812735115178859885634363632715373470550885294252075827236409262573325227474693677451175021999350445801180781595896542181880678614916028303106349255584601246097201587399859579945892994963395484590227118524787522558660771363519586641437011450661008525309760272573166228597412742295587633147047762753805733320948117094410230291659683974743635562613846090877470023563145239232310722026560924248576761833259439184214744168767717868710400469456125605862690023189501534579954608001575435015678613979086007948191741239348699095154027176587040883346514754449860645280124627054314027055658052112427640353938113469937101226578234853891430390157844098549267116551991351442321155506047574650266727847979619293600984684975556324597751874277522916416092167567564984053049416713686276770049498733316685286529757425153703158554756875326983393654376770006616346829433019186148754624553368500802019728609138595376086848804732547192104105457982586920999259445446308817120447873517023606387703192329410690809830419090040066929794669958019368609085878423630066598097743609584058131307765890869121344347343824016344459626953639798692363985879739610387287894410934320844447216648743504714437924503719383509578369741767123311572824279627302862322539081745200246007264761088287034862756919417050715287436354543308171130676938043617097664660499202544466578503261418930375257779882866424036741275804674415903492891682488715276723166267011511344078411660385910249473275993243183515008168486396764391959953548596145709278222046459774712661687720194446113619316417120627080674090477055957856335374806421733309055350370460973016089206147995605581460236820015045723700743778831798966306417013940898531248764948298633358285081064042766916837210576571298403443578552818306691983070072336663176364756137078662569399129575860641292112930634692094448623004554335783003567543371125321592751408700494630289414678889668819870729375899581247738308527130620772551861218449581288824076590309016170070759842812958527828935342207782370964865890899215273468668927376578182549179739601378246883976272381917875981937031669112728840613220909072605637181609435867166128598945504185748153085559305083901654258070045630540708611261129360955991776801444150270503555294103233361385430564193167936041852102130510672682939501615582684226510683726851714357558422245297750310343060418819996717624494999194657310888017159607972422199443891493083189424731742106516784810591533219893333081827655076994533655169830184334661571048063744529018186571939475395140341920979226435252850526917255844964540735057388371704667959994936287676249955618295896509487155925978151527603683461958579920001109562280300724562197524104472306870616030733234475230323633206736509603422188454121712247493090302767911307244044968911610273223511826498212118271733297305308777513237472106633489750912438720372460908311271466417210976244070964455329585798049800884307555394467572431709343597414391107248214032946534106525104610738382787053910868501665672410698088530452166277504094644314037233536235367382316749661446987004556956714566845972778474460319154323011641952868097007219587206589091987362166029450687383139424090548177176709965441206760586629919476451129938879640647155619067256944970055867329515496017311463216808453503546443130723765282197808180871867677949057924307755471385542863855799199554026507618180011468930162969077137147984200200511993938333180797352627893512251453025330050344915669187578737329732080438599454209664547856695683681041826619218746183204073546168948280869854986736344977469449576635409123081426764806322552094630765451881213607084783063979266028405738163735534609768431609126784659497549638483065519330350349475925261031228949257259708973881393139989749825207953376105509607785941658144167735707646761563251162398879241855428904118318791613172137195933865914844138288703998013646340295950711317724484948302004231318018542890284588628120465410763017123508019819658268581537328902921441746090113425835920824949719628668121689341845099116773401075758395259004330070327575480009093570265428748095896840429276023278967740085381771795366865511968727510178072012605913711108443706165351612015831692690799162144495743361735689310401101573467873017101306179287292609703317105112426970598194705773032537831497485606886819358868524188091199586884685499390808671924796200945287628922231775455312546887626245316750132103722362236062282504813819521088795245489714168039738168749140251637865074709305722387554914736978602063743889424916739017290287671237903149158464456172665616915662878074010066287533816087331598941592872255579317199187206657925283595217116209342863315260781678428604621148347505268504363464243798449808104380276083168578174960167612168347097249860863206560566821900593569346546703068681426206042674928010603458621916042619368193422292041974653617554861538381234437717997369942728078081268548503640927337484207223338489398911662183422872008020112962632857686729976355311555196722974470898683751375643194884163827148100489026541633974160219338596477568019610427857190582918233254112268493158606839732446386348589356041812704753008022188892137850235241688726113835366328685314780690961153679472832371481798899363409336743207839422745139730848788846781761577389494999958233000840702853647511194933809499255843046554075078277915987192688020033548018497278529771636826582089817670712279696839026999413368739278179462346160179192909375803545890355569256448950863574681782424714695635769114565748262447160424934182396346370843189345749948505851714967089464543516119431839877593434045637214262340267195197346541975386394291291496648755199582314203956959602628543524752547282638910904688728253989586474004637680744380170373383803990449332565263263518792288494726992876086842675836663924958261896117370590668886067674691872798777374929164946304183889887490980778146864709647076177743432913830649990069521506587950704570452099527894802237929180701103841545812287937211778821281369951573203575512005785680816080729976402109779643882576797958422711051899998562745150227967398008694688428785041379275880810237989060687288251747931957773364002589713126366653185195775062471930066734941375771998840462103130373602063740767061037342956395817057409171996181620887048464193578102917771761572266206606457954862126958913604433963947892440654530003586274371952975190028696649515489210763552504744822482362145270283145046251321663064946731691762284258312069079022057531917979758879928902450589775990250050143105275502885205346548542957691754503645577606298004905479510967399084144615699528210939464734085607290393031114483594212117838138334978318003645577864563920749746679165511786133534180629385752290651158679868936227868935583488874011625502985135850938063599735362605355655176696792492812664684787910485240445637032343188208531007022741986465367418373745610639618518500618464858301188760350701633693727335126016144960248586313925511108806854346754047310357251012325775567133626821019709484086236289698053155961978419051522387842362047621522223885159918520453346611408479901068663941906724034191258330984239442221747408500959878852501429149106649951566246697062381885502173321031833655920499519116825420702870194558458835009093871829371754417314294692715457248750876368621923009394907311777945575724912704326076868842799378303803558154045040902628490399900489855187440567834130276270828020129340764088987746857198228615413339148184201367035740600963200467274694716637290890187407650238198242942708120853916145000332795596097987566747097153266448263070664771270500760295884807356088456792642266616292385986544539477707553611673628603201869462029135001277449242533807095736823241855286624952508710983257932435949408373290970606076037669570653627260452751091989042169270392229138126912749779445775869064281681148749418395561580216854853443137046543083807907196309149770332149336124361976316317792812350475114068869077916610632523098540047811629387017958904251202562147041552406686304874400093542830654111399198085570168269892399747634006229379192942067549813603737149889672881588447606584392024343933353880417051940898226960798007890844953239322469765240888750184884533951791953254714332487128901517010822145259803534822063152797072400946883206061210802043439128764511086168286198645352792285196957926299087908713199410779677806256872275797988168870949025972217506414726671163219020713815807067002858379229790011008864024247057573444965129634788667349297912817301457122176956905199798535004222077311805264359633177827637908873313200611948484977638211530152216609380947279632980401655917957975411797764155952072567393293275502345290085610858017876206216092938144699152409972583405235692100821317275093228417215211135143823718597790500448972333856098577379253088533587582694100469563023677258549485541322194036818118936533426428789518207958724751628055335765666658329978882774968897903387659666619924360916611478093242911890402150526432016303319066707746930419683470791636032708590551204514242229106418867744556711506763897636340813597448357160316531408800923582807554989461768863414226872896654760799666184239717767522633384356246712753782974060357153494633483915498579917635969024100215420891930773924781712507169569254119440262363364608402057245525950765766252250873741904080372123757310750508454204514775803274725488135721867493862823280825730951049742454561153675050156087108321315462690273370631782424013799371249621804198517008738978229783534721649190948190613322484249449274388345783802983433417494641023354614679461517812105841405854686798584651124768729120730544178105177200394317135811609175331714979380079545225160233472423530155661271894121346867148030074743281648397343834216434301291733376121650579094725835740444222337376500340856426432896690125217555058597747284293334279640716984316256658319564931758595771867505415907393748164913887366749686153028250615642956430549353740708816130340641333141468924322571570927813436440318195973985375416836948071635049633036987085285449051457316977024297312758549085907658194008070292475720941869390836903625309680192710677447981316212794577238175469813669344122559400411350271000403787731060750193802184588114880940680452719933592645159353791951321126394452378427901528602891815393022142252819817312636865335038038096904655219618824152830143250568263708281281171272739236409315687572206718387702570764729333014452510205079197436130102306904078203876483993815356786657983603718394001008819273815468264685389088257396995073452731457756803854967452407404364027651605718825118942304294398251369963893557184726991328355859967316225177426570388191679979424352975719855118844477791661882745038708789869772680761479114955925361840323833880371858016788101527300355848538293752208463403855123822394112454876782929066050972677850080230375635097812480568247472253389224355549717969163895712868815714471430053921958413625682746735924964395601694868456408687293561858326510414728142547467009046838908347232997223976283646064577097922397071365773982828440908237577096100647205135940573081592440375631110865415649311844716711969121975682465806072849760723299614356980553734093901028600041774094249450537979341120513943788169590228530993804417906003227415298625519513492648675920367646743158026317549227734161132074615034063861966106948749384458391584808147929488138134926829066083220310568501705098700292349904604377410126776732482545707036660103527761776555158720392858112375800801403568657023375631651037122298565647149170017931853867058458916453117288234554190401962291294983149067547991802555647514264348665018644970826592564952121489018144888320024552580607185530169724460109820982208276706608753622544942327431123940553061984327689724235296231119649448446707454420223375498904689926449432000544167853944183878172801856741489313169217004835587434027581611744585705199347296915312180040560365638242402374429712079016211361586006351428316823945019302669381797254694140885173020626521841105476631268921298987189783932635936134022827624036026669882015340338349986870605901271909547925012060744046647043810940906970872306213176455219090752135361524844400942845626051384245356175692683041490529693355611951118085606455448272867970975654263275463280508984079255554642984065315833489475177520205483090028438206811991471893717950373374374594771042390109389187912566626112941455613538649310530574533062099614865185319313674617996404099556303366870845900072633717683439726764333221341150979379378420759117897382900263694184037589955116308132465077986676982820021260129482168579734951427813146362489711144842900989897351046783832647756498313566969581893629346191693277437317989339176988082054284953537446093251654644440310542031567382975683731006123267178871696040788490679310025270823991501559406847288290393701837777959211564527079627071834510579462863802807748880455571080468654498140436239006191360380585744903451074039156574493984273233507742986961633301090998889316756767941020118984381912011798513889846869132177255715302452723906066941250207881197485150158261654148650916779979558170082851630061163059807339725202782409663433770153612020638574208898894675645539676195927069371037303287321577175634310839843444984224594010379016129610468542441089621745369433259021368228190992792611572883176430181548822621512288755101465274354319837372868701709195062678959733134702133381865502887510665638137449995102455496593281854223568594578432821836722661338822086382316321492354314781739654276111805346037138313389493676132381300510701010281933447190184563316541805090873596640925693452412985679707042896922627671249297708678280327994094495446469902701596444821161698853416691369378738612537505843420551063776466075596774256186108871470247395988380453496173846269010935732154550664005298282871733771457905861188772094894953863315901173289466928320682511754137007317637669775932122030545891913611373214131532825222848951274398121486915219290231492506670913666857833843370215341280924724634313671023569846084893902688007768087674858116849773331121544240787664515845116653112442448320603734404387869417639119190252403886885948430118762604473628716684782080500759785061185315407525125967362569513247721399010063734902787132187087489403953601136263379031343449384895776326646268049568586161330468145377729970108399112071990501667460944687220492948727540329269744085389542354099922846263704155970070117784448301280013542659024052335807255234491478399086641708629989405655092226282804557550840866612038932504278306961526859164062264855103747451313282776960475184666684959702311943260226475652083994173214152879245023036801332038152445196178056952545939172072094558274412098277929511740513637221680804346255557089483698778879910456260298376058447932695465197702401593412795238380678236717654524856095786819878336689681533874770335297900358199759366451294872645220123739708562135178330866475272058814151608998042434059816551670799099976630265647193844741895768833681155047493260595306426009570099989259993809223314415795891521017650016150147497613753408520710047303875334438659372740135487699939057624644246774460914596298830643346456960711475135886975813897199249415558515346030209470070519703541447018465203027450617849153656460121295787048650154998422709773152603945276817706384221926060398630318416558247715329513507493722217025716581853122668632318336991122454908855001728447944649334893411917661213761008237023107685515611692993365979308448495797157035490970426867825211736587831737995450409493819089114484192923432350547582617534010447012598999459996827203073047556627446906422732432435094777366685716752546474492483608900901563566113543221236712618918418588401963915082175880928392159054806224958861892548178727304907470718560519089154531571013082649985279431000470499474547042360070216663793797961744465759731782504095466136477083962871747845803706413532114428055587587575511102333208567821891064525464062098650951903747865892717070445019067560166498400710847797639738981508852766870619658984347148852960819815304492833801614138117180008179671482293830798654496412249045200867362564837157839225221221569377084689051047995173841670847493359598717975922232580757102350375173563666800937787591530384072582199638940905756274619067288883194882166192935154891358367596149609151443940771546503401344274702468613766486889691511797773512082406209703470437687068811532759025827943292150737372466527198077019859238958365037470192949486705143032271859082221075076078546093382248494719758162895722444931437917234420635000137919915617349103151218651218402722141549907364445134682316639425283743739125764349249293801847704665373266804803388069987529469170811194222848774261252580522603805549991872049903942525134504086264396308796243852878198309359137349873957287637044668923627258807737254538208078292535204714628448050075122728379168525828263452147847819018342598372234717113666773786171388911164688589022372460357015491022628387033432714431945356643882088633291283480326598966726765520233278312319291632122088236211690490455697733786649862398719145840831304202938265422832049574558069178770130073408826561414861699531572557337413526924742102021610826837132236637210803761537720079824878082179298688010526548276602065367790493502867817247544263007137203163820043653798981263995566059583542781208905470475451096839632522907125051078344086366704823885739192560745952208295656759017357752833125167540562346631273147085403143045445189346607754289357269361331131642399464337709816695747730418388541089172917438663284663149094419270612102055044887678646393311329622698530756580195188495539009727973908478160290279439579580978172239595403454772835374803917128771009401728753822525837644827211114612378211545474168650673886757958938753029785858134852080441464183321681493181848466289019744711761572882294116926830916817521454994590478220361989634726736675356885338935624868411363546378201319075705931394791781782288131790006741800131842763254719571831382658182887909877504156437218656358683960979222554361836873504914901977649808075867838201824220520967408003557292859049340096070928428918798013534984215571784249845746631762418962822263088235500933889526233992626929796376737916800065615153399891522550459122480634956032757713399455049780859562989774447992138912079796469909427097849659001990326739626249220265733043375524006033732910531058502073723006849643967870927300985008581626220555156138172471097494502883735210047914052543725174643379542523775347980854150166470385255008135203325028165940958410987272806390038511050024972074029159485678700456151838914088421414065175999765185375968066365486453675354241694386419654207691558560487801867786284211063320282367652714820565386355451253843711356484719058937422777736292070100670870144632282251926046280229439116352860500288404578741489795661266068838334387605590905088322469799825250149550702935478405500826047877431259788015266148421446847822687087954232070106898497473139621998200603568137776232710006442114013199990263631908981339336231649999120588606417364958518099172165650439005495127058817088596685613161765052510592652736986341092442388578764766414930430939468120416397396680466598947014961266107694990278704351646286754470508292434064253583312680752417907373268049270548476139750891359270632265430154541421553112386302949591100896629065559855516388685848602885137100205454053471899677049700464087832077045940644160130118912216011237289863457343151343760900456648524882957591986730197209331370661892372166081330740046788201943975574282453258803969253148422288583579312403864254150066799241957747594912395762511976397038652356005716915502559231450478552142773256919105946796872189813507534965636983484972382495115497909758650939901343800922114166417552492384215681506916821572666810744195559997634764781134835584649178113462974468694443242856872640461638364564553345651315322482134220921625269622730552744892834552443281838664684609679466776612933112253101589274766229633652201043803167216967734993079734264971214140861529030770622368460645123333653454444165417920423962805176065002493546518913223386311201261326437632951014377550949485830516295601950654594129319179378452620551547948999031699175782612004401738552445351771083945266663713632881184914502020500373666231090148810962337801750155710152945356945987799753055233419296250634589715690803478591730034136296655682425092204758735952104447338632339564074300356422978465123036842014723710943460723949745935649677321722289560687931627798735577171653124695118731978782257102771658329206647459837829048927210974429023796201844126544254455972776345148580704580196625320679752355258356812388788021779719223697647519894141110286305295405736403771292089977355757007569631686287804806283976040852269847289561030967614854842343485925839947317496291774205821885892331623689998644036769057691632555172086165871739322522663635778580667501160079365776030835054100433810475552193830210059228713792273132352520244932287102246131999180161240679842608992800778394671471017862576958387216898831961985182399773315370863356840930115076457386037369602554960568809668968049073024696211409580132073588933534310357527857459634701864685642107247945052052096915294847898320573680342947999673781070139805823684802122095415100480367166826183147871878293484116165870492077482661848635051643941012251249141263430129920215807800687947003628265635017206093913629751307708137526783688068757138770936806790167941101950575589647390857289319921850474206423630227979027265826697768139341341183434047923740253342422077153261287057080379927151209997231758717144317373968577599379193443085951859305194403427772038471610182004706102819275061182682758964321468817321646899389653909459455708306563129030180990224726239083589770847747679542600525689500292516202790002795244714503499113471115175179620996733125073850702279657666848041781014648522289718284153801816026173332836171742219141066061411274083518928954152464135827301085186346412143720813493486325825173688120241795729343269977058574440421795018619613049663524353591121593948796186108277450237979107489217841917315615628484420512379301427215024613171567502904379009234066554813040808376661366631758444718139964366243545889428123795029722112075696061745712140064509641156228920421858358572777497120622892036089391768955638007459736025134796438100626959118007984980038170581145859735404326127310052790832392835758027442320791786129532920165577372459334624029803504361791749698629150543628728659583972583736440003898612497864649219265358430801978075867324216347346018234897855061063931506482059809469864788390857022804683916316435069243401605778664259811799975742539199343192308156887808754796606899849037491677222934492276682048327958724402136111099885815584381020259107707779130949581022694135051319454065887056932479441079768076407382600809283289439506678692185995472056706875829655030582558925816804637831960906020220827267455811214395991066041149263679277788218069758324043559707077287615102121756540739998648914695111738011107511131580206300620652893769777543229751105162222763017735571551744656993746593472903687617346083163948954930792238857592308935566798241497897147946211209065811363189774703537539788796056995406861052286649353030911910422563393400240753046099298865016461121629049410093822270749100733853333099061566388403161566310474809428618128877012206124272387015837492061622068903294417701689687211417675781143345780599138461086518437640338343081290867547497921665420648187327172803142317995613535630706483571495856541500103645126677111383192201767312554351241404922574158398325254383060951918108826885056573743938691733652132124138560093499668224290487133845564911386999282918127771791092906541115135942467302896920804004069875232237035094584520981710523037247471623144974845154083944041416425544568854060862692831237801229364715779805025487801926698630974152348810845061288633554807512655084512560623692318562716465420012885901408211811579005441367420444491187283778472770953898564749694539048319936691931657595406001958820591297765804292212241480216583504650915317089049778568743794331370762666294984374035498976922399057538748490701495251379197912200094275618505890205650680589021434218048716685444426105073602732669959891153305262343311849120720733419893235743663375823114571913358091877974669802253353951769104638790404954332787918633813797348695959097152707488526823007511846518091283470205866748985939432070737068007764403327601177660947571826403681302810904645370352404399375478761146463346263910036185647691990058046118177929462278279033309284188105176256251792231820063873388043112523885201499248398232084322788959758436443237714501229047760454905221281789317321839656148911741288105321720653776924805999070048264839004996400577491587612020235680125351227519453174582094648733280181505392092782592121261300396536324735587439430565684281519561291687071013238430632170246047274178878768511223651118042529378793909735701973221109054569473667545450426437980768276846094822585464226476740082976636553041748710122826754677540765340985006485182286798413966024600181935409560488392077371337786645572742915803681123985773956510590219828527506978369932046049819091421987433153611229583772066315238521344085007038808754961968810634374563677452369329124687822812515332808012820530839288636054104740929299214713642547984428441352048807576697438083536203974568348798591025075883474929049353626153061976940842828361763570458396897020123923694379201665254789624673248281478596599092545586435260730385078921323314137926822961181283217485237928305828406962315036666486545836842665485909935722318616948233025454701875687044621823117627767405550773641267316536307271253471871794573963430145366515851216840496095243895964265667196484024589600612250040966937727462316781852169664811513710280241958834486878037862126570697704710889256814084323631884267505805587807448791213737063465856229323480207779274095867473735122565369012364129520632086169283270550762780585223108595680721965131220297718880210144918278111591863397250319985510329120349402477299837550416743695067626622996517303389052249003743807988810347700115887043458844038551288952123844840390316250339521112292340378100341700446747425411707614297298395208582062848096502089214467825105928267411026886297032633807807139325379264775442865703429407676603162478353091662343700846259759216841949822026834839834042271754560656677173985703687155599866258470930581426944567773792897983047517859757884738392155464112037933710490762966226128683764260187234493563251635041301749605328205474902684262777573256884481238085181615758952520879139262864968705623226022528079448871726134653284177255512702837185009609920104513910585520104086278965322220129387876925751579071547615465239867908399574243278610855318822958319996178362875297416525669631592406181866744109022602015978733344657691046345446563950806529805596494591159621608939759128744580331833565844467669290097366564683583096437161648603936332528094472103760184376544649433696969912453811458317434809809567446134531042969111590558322416162631695214604556202825305497862268466602790123872878707764940279764111342301794565613339892364804471369681083741439248152754867383096275132406287329635277130300847221635278153585152986799996440938377270068049859136188368402852935236913901515193985632703927147869380699298814807774602684351969710464677214172033559621145443214111585114855735494211722784040603738806243589445773295171175190848463615466320793032845519669707052288879448789625100700675205689364706084151751410269580240793378226130598650792866234440979999305003366402224303085692504999372940755802908539545698654781032010513115650630902567036057382189963612822911714960506888617916691507515603298848879551848930620365483151973463637536199606518167561467302374890076724737913705902831930922341716820945174715513983302232894952187766838866139327773880178519091842755232819297398872941585145604450113241327618049270470794079182875427325270206654595895765517331468645467979586519008828629474537490734204439632756482219754114746742081293132087007877010918014093500681233979157278204389226030544706310182827951268246441300417387305037648368608452634621414882308556390219312665450630945681093818905147215603794920081742316917083155761513093715500529924787516433236565636895198618793408441090374053843173446654235445035792180329856458404108675106917303262187066799229478376948468167683368750941164284512396413624071444541981443434792314929809269584421748975622479354391014249276014912463539103316537478306382676676220859378650453394935061521503855878649518554043861465051141474469725521189934887765286021889070652572563859893106645015401991268083067276848585538580872147146580902989058710585594643632012775996061998830392810600429014521815041687384978488247595903924885559571835900156338352699927804122680289802526949654651248417741587688006940143541841227909239931051230098535226589675229669604521200647503444418971522525287915169941975619870621784435330480967394822952218606717488113442147466380683128982817280360621733480104533318977117432358200660453624415510389325406216377053207457998553611840778978806695081833135302916351341533569333492343038429767006984312631235232374909196318825365227460645146228588224273367377088670033315154620767387419409456617810351306804322585561348030906265510111615789628286095659927781024153790936207407716645421961901109893013728850834172415412722316889303486639716268562540183986304614139627676151192166284682203732988777191835719167415993414321260256412606487018683759884406235143945973664350964980134750627456785016616185211974930785997969838531821893584782332929522738291197065761378440757706101842731665823982159064041563238200253925255547068665251603793324367615500852816041093547444030368577036065560963879335688182290863223978664931719137494269102736503527742640525367792662772678001577189087110182094031842342497487121530419231394981527363588006151786192846267652743788386768435077464466786719215321010059950563499749815631193694420198783621293499630581979918151655923424590762905763473351670370814233030420676968262266213870017324706585334196423731717678879132761257639430105635573303012801950698190390697835807366999347835839977730358570621419397363121918539127981703114158389615730969788495672472045298135339432336237543001274277713723851496331030840952587644598371116997893067369258631630528202477087034877515214195165160026028050835971411744402200694325047554008531450483227518231734771754321082974700858018409464600003838357032856661460045226086602620691602249650255438595745587185399122014737187967231162203018355359080049046370362443451487832704682607438261063801377131649931700697033530797288512712481992571461416331478697489540967693619595277508607448935930650190664585320475098172864360002024274878282586182423868093252067921976785035175708812744985759062151198019149471118223960200856880501658286892973825916495913514319981331429323855294665261596169593409077670192296712439893551313356302234445164380917170817683612123558404474015448346832417339722918697309277922232373080486962522487638862550736867578325508828997753637159569520618307049482625503290905046410016218768422743671552262315857570493224571436493321774036580508578198042188472127244613793563311855498906900372390295807083833476607949252754995162643435376631053771873921583317935359241466963882704171589860911123657385655858631590679801801069176603269563053881383119498541791140330373452070625967912097336449320336909024871594538053322227118787931980199970407258098985014612029208370490181744776365011632285666861936698591407164519123577326088182929788022190235875689081080955238735186736592496444493803986194986048861834410134267376098054204417043095167281548656142142856025279110270187557478519493998795991670107097620797392222417007718399514484896538632669373667184248870024941637558996354830065693506654956084182693001899816565873508870574326844117030491301149550851830569807763240450198109377751687428660055634443708511719172361938134597153133965768493902196527494005594088812201338540052797352708847320329609386312082588168746458515696311081429022562354544024986303938312079979739884308348993739201743265627335591549337275592595652459745440828680688448092661408559999392675412702097797523253569470365483059228720231801244582074026677384614487016701057502084300105339677658641502127565900083878906189056106085144808666998204337129657052088053783337894493715183751666565306949669860402646543100792623145743327052003592018424362538596831157143405444321591026298642178558718604424705086497827424740058354234205307736377656532336731141697979342742323417345375276872441767257209561421615701080139155596064452830711152014691104854241507151417998652594740196381108224622971920348430868619572088424245662904646671643674313158611953297142566968120484707342451917784526727423617921253620356904983141142710356431483619759251029359011920217222711006576048455767275438714703490259982082486647511071738765650486371131375387614887728500743221064586847965848500624318973137554820418612647800579748034270647293111706919051069080148318243657985841961437755659217966862929345081534709234180299363231197641266954091128639083479089944412375936156861648932996879522574515738112977747387519201986338183492624860212121900143650979564424527943617763262243342717599851921426837368422555310769282594618149594833322991904135357845985146087451116507233752313502233887927725158434751413354118921353767793766589647763944484298938768670098589038616071385965431929001191215553585430031016370474484485577763104293920954648369490408004294771700156905917919313636566992507132759945364056887699090980536524576895607888867588918983488607253092588770622928379670079167552885051867062496869501420598251868250337187180175293236611364086475785577748148330641192653854618710544913711933770958727822695584926996874964244783350759215804251729472951324164201924263557921044378855920407166445533059773089831543326438687826911735882819578500973267882119946523649711686037844808440891127303825824782512664968466740973680759396756713492395038510462376916807464172542593154659439184921072974863590222844030800610887105335529753885069174475482563010072981874585271541849423613863930092870381652649463747380799983565792920294198881923311918605684842794116145437243348028102432963722037322675856378554555993238872244617072631715240399579031362932258665363013702043441322963627900163896398691256326600085641905858922082601645282527585429596931186763062653938696441212968110460110324213639394000845146864511720363394063673512012077132598860731200605288533005255558267209770344965233700586555766170029616169321848244567894662487613337103637359884470891161449549513440767142794855583082916387952635294086469319236326581643309795366734773455509855274983240960767832206743471865478343121159409545957417220600109981998601665326578495445611134979353113596765239109967647260627342254087514148220402705012347506342928918346322479955652969574769883753670203517207054433438175209206509442963601555661128805638560418246212130721043527057954604827837053358298338319884015822039144752060009860479102875585576594816810818567036943299857306920849317031753271892413923851770027572715347827126112843877775468544032218337373335545214883291014624997352445996961838120270265434770360030612986001307484490332166433250732018647913556310293908309772969708916311007446830759278819998827694868160302736659401245985607729784316341492132953046940757255360180460162121831115448607674319117875108079740718085111589491466596071594606439923605989482976965049534408623232126951694054030881108766549734873550787402849728376919542699754383648752106216377407032283644606962705300618926766578969077844804641625016618368922333975759317277044945815800231305012621190348150195709924535839996067735293964289715696096842712399642100098369376241926267461618963744227226200273157479643540861862026195517802839134912089764574100559201551174019751989666810465183148490128572918348094841313350273896363709988444265148688282149269427403507599859511001074384880821121361732389746941086627622439444359121098959075171392950068582349629436392881994631175492134061983375433235016545883172014464369404916618994536341285259583325826807706953971713014673095716178257231671294654507067604689204562170528190348885551630218075451926452851102541269315919997697355542557633463424810177070442298060855354355314736700671605935625769671820041557377214064024789653425748589327452362987090592869349919949383596818477346467709286100378232202505124755155471882125054179316285214188281660157324854711156421243066014881093628795039810238210550810253428694059588323780914282817153363261274024180171414630588280125055817599396364236019414208776385391679518481420557616911658648867264702736865741765675579686677065816428316476733060940136551550136276782759814121664184444551709826364738690142683212364397891742848649492697670938188107465480971323389782536479272810222925842094922292140579799186707925526698404338388949488018545595303382013514539712312669051909816659434095825178485320433655816261571138462309619783515314967807695829260863495831662043352719120459147012051275462916929738939069693422017389512465993784169047939931491346365551729993651424292370009508504812435299751523432262379834959584841096598423348064782563036558086761202717143886200902372812825541534801237510381931878162634681322478056657203912516240518943797108422712684384770502635223565222876736941245739736638498021872682418975752131451535768685001370158608080095190105275810750479868170784163735757504045738981788814671681840428230856347804187815247774177697584227749315233784721794791061240983216748489977738639485320716915175353021351555940258115616957859836040451725430830045455090419393707427509066612796325800145083717652575157504068278580955972223338094814862799522874712150250675963975215836266801241937060757130985571788041030903050255149948327955053274096271206215753301566839884855492210183735047941795556762435259636478450818875303331650000013212055610238645869449259282544516354861603057800095893000830873472880214578742354200557980246426930083341874619958518848823080925160508154834044190549520304810490797243867605651328913622700151155503242363545631904891784685135746502026024856713959147308875418915504793054779864429510527446669691389107472212277219607330880820106673236120638972074070449377003978855473642572938177080169907993927301200408415039795659731251170273471493276547942529037410851132833832261319684605678503834281070609431038391148335568074058814511702553578862752594369045736342496990239261558920176013385496538479498140273910383428770193939040205100418609506835642507806034412655738502650752992596890872874829136066364603080578990299830328930434508269785905362229200245840532575473082887480302834778452353443152893489508476370847921037061034319430861813024825664595442861099012416061646276119955676389357079918522261570687531434485479627956501908944365969271332905299188546348478639678206784946985130705687044816715984399997522734562911921357245809967066484365826551042931056973328255837374085562658390824867199263888571972531838646562438935712224972173760988717974458631854264801914286322665067395606077536591306802391580967760920474118074658400048505614733772232941370698289501935209111793045190469077309118158177984052458595761367884656916244220735761156328383828353074477503604172313852097859233606597197473420620542746687273166889839612001507418075437385653447324103338886270883320486535925626949518934180495211636123650179991846775270882931257515918914113894010767771657502732808992086011067635038814836888010073890270097680872194009075014999555415678367326179510389909787293155643334603306627222630231870614802544173071936903250779528461070020686588554620416671237419011122705688040366029263928021726198883971853153361400921214807707863277126731847403044805947984434828730891842438338765166198166489729658963194301033533488288750447547312141144773701490002780824892111689808081157437907811297768604389232267903191783506775404659486365825742185659379680923566411431083643326666906038846121669671328672864259798696124738910729103463189802606173059032577187308542442548936791537104931693248740027523480379157361159895959939687872855211698875614220506937374566245259202971058724243375501259550832640759412686044561246766427473503588673149271801078017783777226175511451825890306051633131488421401071237015357309102303677163880593322884149435584544992686950133780725506427541565190944062343992441199238421708099533425027723895981628730641072478861431482757406698823717559353687896134202271361960469509701953859960200900146505906175334598270886397812090551861409866719552770403674591164950057770218622074584194438935994532955539712790419864798148534814418536755304788995181511415114236518788691606477524494344120004424199148102307650971891565081045681378094511922248450460747311610371011236573297387989826474312891932998631269803661110441021697898165585614199451841912030940176677097840999483593860829588503100119904451756575143199236579659937561239919915714177735775407301518177693703184913475116002648476148716923832855922040534464944070342079730196148698671434176739840755872038442780969185697311557575654712183075217472550122654372546710502259993437985594338401545460304933040297193509240108191795030126982721438907394276756177263516829421785827585503568786380667630259167709249716657162863413654630296795913486723701617564752682818189452490106460368046926946701638927241721176110865181810421486833680612460632371088366725996634432146587404144161520194068589966659553500258964187452606341444389620112549979307379517623214763014433546568185526105090636200845681927735936506984942667746196578152735769673115402145368253425801489277194454770793179612885277841532791218260247631625685592999986311464807717690394787523960933629514916500456678064293822220001262518746183607897527072993044452928225774133309493043370377311798519004525093801036944397607887775976290661665323794353329236017115606941237886962560562025848118270949086660534089037041114827018612787982734708962193269521602295987336758182676310499357775194829340642077855796917901078909783533554066254884885811228461581555902586419687902487363916351039707509008232515003591613846557621357107040574450291024417116399110754192435805683079973453518292833204069635022491743837453455427313333426641848033487363144189458513549789197613301517722966266470140768238464963758348415872791726210042904578301321177016158885243353281825475366557208765462692833668579364280104365850545928827968057283589435707192244857292071020490531118179201212788858454253382968725265970667963601228395218157767045273672594161461520853777493761502955833955107808028569661557604993850722449414583676739542002146369030004815974304279759496070102651279843375054677712396698029777293885803209366691608931648036163715859879613575430420088882334892337699687127062562223587546241455450164353312683830866143123346740985781286612801887325539420847111778275002566945327886708297296251793742801295815938620883993135742891537101319714568715891256962564623469496594739381535665585490161414371659035529773614528800202798086935319925288082021984608988424237916229145778053713802998151945708192628656882789337915697949215714534120693965848889160680105683438128482962338679808264438903768600956126849487062510010585530464652246226972122959618036031343979836282025592924772135716032223953069938378068964673048082070638430413212048738773817410961002894275746688993606261677132494878338001208702923351844863493326510769057703191768231569517554164924614351955540488901894258232687044719663190406247779843450366273855617906676860445435825669946338299320239834005340564125919789618767142350909699481260268800762991356950672337899473733441439808444864664537852001462653306393658812868978236605474913410973323438995352409021174408093523188042069602602044639441827578496120471100464952206716338132107214143984841044818284994471349110543201961174364232065443825976882627477750184249755549055343134897203693953767364154417721560103925071110643950093289933667955129161552254586949727255954998504621871730863183295430702827779572039938605418043710409765735395676816066158579271410502377400999390140552059984926175839837007546761938924343467391305778010558315050620049508588897660940761981924891266261343240427126904671451078941664336097149702523555986740716072261499726149846847636931465610523249311359685630797130441844470417843863713376192710320891519563213367406654942680056387011514663773454614529998607790624237435620144525527697678921806203833252792981465649893116038456957365954922072144645108792976296520850190426445277209525843803090098090230765456896401017379658312520854734872033730280508888596573791315530683318711931236988582912697184027200233379803531426712870348370059750492156143926861244346792498068016172058027487612319164182626632369309969510681202482408337590799176394503978524363548135456342168215825275910096274199706980319158525013973764002746851066904270467827038316408247152349037675144331145355057534460888568174445416807131915574693243954410492806649425333420584827109914010491974232201927736613418262377865662298644037580105302299844980136483931913777786836217776143571745307835193368605678540286510471481705351748332658584448811808157775533102901747891286629247888995715220506304240363371704478453394518808556839943290901610046827039211143147608049208866793241832231548407718351827986279775888516899509040524811159272093188953234840019592488756556998234602202788565552384915236482640451158748100778458204894293257919222406778230808859129652167116293242844263533269710623004894824571732358591500357789585374411079118571292566511056837303811253673000760422211389299508775230859358124647872884726698107381124574401071098687905031472674649617602112615980703763147429443217975078154398919798701125268529791988043176860899097083876323636817865582291636107252529503254906690370895074882840493464414152908033526765064873567700599032425881461228614131791117067635759216628292566109404383567334494868274713607673652236849602674554076934263693791751886685134544975803175508856372996167956399655132104120522796138193088257717946851487811533224112712309736153287638748278337268680380207148669807519711992355477294314798968463000047442242492251526115288354575687257878584308421853538575090594927392144226272500761983982826465229172755812974012845224766505888417657338418946812208523498979001957602828257860011681546676621608042213530507982098662894056238401545881355423628163788426398214729545858971752911751231292997751088558091503471077419912324242435449628697534005008015908306377701350540133511419977183003137743451916956773752820600917612237620825365768412154290989341373972481815503253160763472020621216234114977347785666472564660190283280927559092727931188083718717416337193631630822700149122050189415202437366819630651472584005603307182799024846913132467440551770155848193631143660394843267346820820946883858556158011279979200500613594267224151083759354275940446773683273361470185373862247014582642432769281583693030773425184063873363705976537782494491517385854784696247760175736894426535877385646893587393856166296924363670415656084784004227789595445838001975366082333909509593604110994917962334679492218846197163637828360476637535301521848508823367460686187987510389945031921549734094227086750776090022779692533607377180547940177362827793169948160250543315550247664297051149656135018937044905539563762734196995115767379966701105505494134508982384078657541986625101924054264848922552008060074143100597826015710494451938609532621663106785002230197249157987264608101380821705490190136926806330212171064542783063161685846315727718740259981273102624713488913457825009601395153326564686223252651219792572533116494560542957158843123369237286737586296731246387657979465478912468636962627868083385526570185442708239021427973297955322297166769290639729036263703084892931261847459360847289801963848306809959159246937296553029100917231415223421301089963133103708550950479272003914213896532049269778393187307592343914051345528894465414899010739777634825632621586961199753164647575417317455979014013952356510405721306168025373789463756054443397188789629641141108565083396247124051103944502663056625024667323623513094338229777813655668206456648629874956767214914249352600288334651233130270975118844998339390715527679202250725803682669924906136617930159530339196308989079229105768869067702065845198721814044594904457205885709272578815144707544610983035131998655885204522978499985099379169041884150000800742278305754265376924368560316728977726084322655216148640728402761048699367549157511352998763216633268677314902874157002678148429700513801070892432937032584755059509874894869734416335868222360801107881850442613455469934852308410186937260488149476146086226593451731416450731257120744391266250954551858011249423894595720586563268252941570621805219029917138053305253971017802128195751486355321431490916699061916127320348155770038834402443363961131158866701942067414737348354440028098446188965037735629341544919069619226431590636339584343148866774267537183311359535749909947655057691951792031090534789799668583193340442772876153452011377208986931804449373075226071288229301755871045242651763485836420639384261607911058518287211010106090218652827503232161476556774661791029041706031506892186851057186970169500306475292966471458929325115129106637562512981508370127914312093057957366914196795256277460588279101440041405695513574044197258888190138468643942912239654679967594754554551723177660464886433740662783482931043605702652015925863051265837888200824312590057977533042856139500433142264427374306448827669968648623313670029355738669365884333513501463140125509429816102153953429035063269817075919602213782977791881310343719616206733663995888734686024617183375186513995066428730328351719298224254578770116494555536451239248999455422368468263258968271771534405423073071713633933518894841046002518474191169194328503508924498945899757745560602416064399567266068337225225909533690181148755497195870831386915989594075084135523028278188509590281867442516135409683379182399595958179126403161480378204343533875378449422880845786751642162114225385550478778662285075868930560777504045121679390929993040146509335995206904834397821008876013746412176843174133126456861508056450515799690515673571900745885319432390033244881071620363498082788442730169940350812992733170089679414838731396206954816847138226012933721887733311246039751477416332813105830572366780702473796219825157621891128089186969059871663830404946278361366246393340664272152241073834410300305084457591815418639991564652803760550970596229529982416820846944355332309429640995697134438250687685981202348836501536080968990883064332670716908858522967722044844760390074070888935794138087275042101122299568043588319724877708937230225864940311000512890290085548926701418816488352834957951525571318292008090056055412596528760322307139848058942531356177346123506425202640263119285455375952444541361751327701298546863083916211780591933539028063328413127465312844708924792383632819508203321076346200489476415282325828689600774900521507909848300682036371034587316852093417403189092563001113168602095403997753147737679063198535980919362396927019657931138427776785990421196086152497096481764808914275780935013320573926304678608044392300818307463458912632631515651961464453072890015162117787474338075538135033731715460575376777973309068976466443019369323591745357454762118279932727875680953741443855341212967093453768251716606380787635149249512918368971106447138872869032978665500154386442814897923792248315536696484962796629477023912254162692568187700745630484824880054803652705701288405060339844822882845820302130174262862869259194551024454971474317830027765255560543014085483068490039934015105327432314928303386797842978684298203509167706034256067674828140098548478686391056995448487705457288743500779326988490727908570288638844159974182558973799014741026576701568618474250075747962354403527574422492754564265259976409207710088339565851988228779255130956418397937485887015919419443384854047561644858522889483508172040184149951397381582894178751007557843384634126159902548281019578543415294607312197055284207115162005301721269517503366379884075366295538311437392729415096110548606934286903946534005181792306258985512775718035804521998789589044601645912445166354198584362398515409739237266161797941889884726215933570523947979625327084989372032732222461201859810301444778796114489177408577517185880929203854722926054150441422487198489761351549366873997431726953713521534373975007300488824187834268235675645302108848367648424419699225714936003521802053545323320635990395462549581850146698590917208311718756501445209656761899073890743619572278053396269549215689265687867138168149332240323320388609329483326046460971756509204617441093726774564702374708696035980000364404265561100010602447002650473483242026265406312259789676586563497121635127717863354596897454602607384976449963665186555040809434903104605031344390122429466679487408633569864301705361550923160928079507521074578317423075972616782323478340475769764257047388798070798933401900387366200609385057778050794581604283884427006370493841082815584215254509316092271159875753794942660171765736911463423343897005653631839440288365004291345810503992793884601375200364915074491952647816825086085645923806821471124396274698729586659360990521745048687143117837097089917970249869243776908140510327698712332495341657053207881323072391158593160330585767296884820395652417538861374295460785661163859845945046796541246561803722161930104185967512625331385751519013292635366145326170214533567543305867396260827527045478785821756641832194075336765269760456302988471010269120060816318687599665420627222265479421159455224213467109109172484845435278995377009128847995002206800251602047476981034272592525410796253725679083792714895949036923286173636836028409686120011033630481557525049203640572489355556386615000927981484724366738496262346635243083409513197457707503529379695913293391932264114640553655961567212376960608539231260180285419299047546685656550841013911199931936400275683561433890637080483150688944710919959388238459143051673697551927696006810305015953300981613885889815524823590566774933496861993578192174988008075363620015640921589663408813369920358903791546096993798123856091101237108937640829185388844113818136710284298324551047914499784020269558184088104406129510160093529038358606178112860315289094986335963247121113313497390603082890034961552434558620762683537018684585830647769615688784664124731542582874535884304044668159591455426100588008074165386346348335127678404325265871138939087560267239919626200927242892553690688752182514395651925868506208790085643297344931894640654555626770867413164978332377779994161951749264108625292073906565146614550822385246015824227416720951400900671520083340132755985256890949725368213193231669993767599757635120270917067807894621767820892272622735950527831643177678031615913398084532581931038581197794882807365092978723017236316198742502678901714464583652244549085071216241777425394112759854668461652595090450395790184539240071238273292420411551172073763680283373069566287137367873781576384755234794017173241727739542606571436365882174622770041283400443287804524779010258277854968285301750988956007510506889865784481084014560934026957480608488855682886438443475441642440042045823510462781593063166193050288549082411742980829227584507116374860127260502822572542453869191123150519400920234754050682459604402270357784640001439346271707070783830163937229933961348430705492208612304323298480174008068871363039421800663626554704021883288953053092838658547095695677875236207156951116957779211366069724332451288971769816376555725167664496442561337859475413066138025430807741629018573120118389691622886387006349624108685354794137960944814071081338813760826039012417780443255019115016589639857931166831014761259619427449211635994098655782953954444474347928709829567767753294667738992712403232784983776306006735824655055620270165882144261927363973220040427248948910782054383288544259975618708620400803398307161722559552953631325400698951212495222691392469836656820670898042695104034347301331434636846148502333705366849913895833465210120825056218227441136124201283802773525103170299606905469306720912599963056889428168837620029565698722698339071611114009987860754077011606040822548244598707867717550556575481282628633775690152361623865716111277029010124842230679325718822994478545022690005573952379369294965907536568038794347129472127537978638122899053436859550655630737847687007819650713999112460312418841990298633517829421183949944886049782293278865329388103465933405417565878734336219185426690853271747159777554777779451208366240471452062530591938957437480507580058118201145239972247395799518348852254246830818238636620531090065128809100288162548414194849828742012384641522919709621547525220040511480542539702868235113087029242432459126334049876901217409751685158201289195995782875856647800543986411162976105734151534141478419434239645666959942425194717666041237890519018073089554108339411266148324869941883886852272109444365938035047678949407601666587780661441235794580270140628559523307307297584131568054850105501917897155867664316182158195280755836106192856695843026947082885821048206724703564230769000990428765375766548298742314788969972254260899337185193841932671244905434150664105384672389424953952454010070496328389297714147976191929439177041523607715612389899085208756012340603248683132972868468958463660125156367972976823537336302563909964464941844080368224134998588277487050217056633124383093026843468676858835952225745628810055923631115415772948872446361775032051223954817830525553894846513025410488745557531476370382306274730747687142332084991890416641626849903429205490619015688360912950784731649902284646227767666274941923246657199200559012878462631524506665569397311744010753529349491611202586167105821674503914768955483838653137710341293489092070394966988038641639375381781462060472854773697518510264485884785790907521445166337959607867910372286018531204651762997115414187546985074014552129951357730343743814431372937642306827794889857899584881614650946710984285071089268250780179866133103002979688478445476827686640767553583098022145830628084104695163973307016579809781582760655869779233897095112986189363927298194435601959765201144566499642445467178059018076830838214801785925931911532283361266070519101463647960434773321536817225392700303438228929564074146632771467668579357978759332261317375204520549551250493478385959877405050260751985794057942402593267027818864945574259726169615072749301227976782523725414689252036472528856191367195207883435783557271211679583651958185952851283286991200259026760686070413178752679845701355009417267547460468099397242613814587772225757304412212250587912136396939574238413085488852659121474746463752052457357393413561776998645050107745568811959729497074413575031626097143383216262056414962439520173018115434876968016865972884979903844174044829367507310595028450471163042848245773540055359627303383838484919783541391158197289798763460072284745834924186116095348653284728192982864843720567529460973859225211749645796965995993810405173059462324763381144143195027740091843669210700052502028692324735375929406592892548684146450662235426612166445818634135671081552802307323394919656100380587152512684882509900489559586340347040549462016306344814734228916100629422006825284476257453561712078347584172449988081308963775013951985131713348040561922443884440195896581432135054443927959316192113101954153268187445048366092493000971742696449788416163175923542506366652583960270552438671426408322260927428814711870959145497699282335582955815620181996496846079334570516545885618772532745198898691558806610904933262859692831512353963332956480888429040294771599892099975855503898548707455763240998895782991248582518575861558689229622965377464550899638855714780311867909395479337023384614608500342691260620846182151102330760632285478118493286428323572912976606723631742656398185592767210323211884285190242175390002860185413702081213612458298456305924556123707114865818576310530572617810140014229789088284255308218856906334660648969326718211023498264076081216834783781835852832330071042555650106876051903876219921588614168289870264168971049305450125572338788466729499472514751053763334795888536396705610241543767182151269502544926652081605424153179599106642569823367539589800906396408737732485193149553821164379170090976227812123767940423653035201576895702366196824734641891527261777812535729660752113481471565756877411748432641354868414005211774775496824910583397964679229800020578554265084877421722197006886497269833985077319806077235073714551659373021240798449579138099141490875965448034247899879365251148992392853054810484816035646057869791894037267576252899192865941762220105886342101658889043536047091117174940138898957920523773486258865651816675618053371495040454106788230756422405982509928508698068766774685592403229992827878291310119445970260795081549658680298190888275424063075218409551834372360371918766640361843861146297550922345059765523368342740233107590886332228360113699201226181146578577734092390337883733018652013825059644611098888253125207721102026822069177047304631563076220957881302704895175226549500059242844682970741243337394047520731979256511552652370538217647045422217779573067455104115702714700385672886072787833680099398064414571088188933353046059240113170786650391188190960845035755868941479262148322967070085571385667936814290203619837198600112003283656602804492951810423699463480763710783091974347206129667239149292636111436276258310194523405182632091905540838967333505291509395906628947018618152204127933045826653311150965860921167294496451069731199271531972962503073069832800932028391904271504205984251451242596745188252235108257884260197255193394440232813125647396268287458004726037663679047251526989028979187672289530706851084936704386676320619740074801203926305030140025305770735507149069411375037277847406568274139150932078124514568923797967701308370947009453679907317149323162898230728665673379507063536806691450643864823278529335153062290540410362894973817679445237476710188813768174597494348408524222481451045404084435476086760258261272369447479792744393347873601678683689663542792298965768918747734120211147579389023036473499231071566875189480987757993238668171253734810367906712630528449099720510854845172280260579536836311786045929905062480336411036144249554945279635189970592373283269997446265433410562328762294187820565845333444328616530666905665024492614076229382906399700515257978803476978693397604073539491800863467727997701662605394149447529635275902549815897227449799452643408886345394487047654233418064530940692598239376621652666455524037037980098448133211334391007916880945077044493993583019115617228665782650364153267665648409934739167167939987071831436949626960717207553654930228662622653045891607089614442564056918228214451479808223631960488629647472378462395655571369999058596883655477570954114950833468694970459436172086137198148224076472709494689856574743927238178640367366774206732179110723155654529543020645380480198124212908350870721354730223600988320680775548659828342809311329740490969332674680462929358282636817089366703290327379686734862575504740799158161821837369583235161286713796296264762793191505741431441375886216376003695179915619071519154903085761694392888224869413561433602859714882003451650951295734067884392367276957731754215499955987092532341776462355139149323629675743244711357749375746256206179377355812625123648537689639638744871445684462521920217622882963895594841517139067822145912574590307590212095162564492039097034833131609482149116915953004758167586272543626549978741527081628754064369936487521841365580856797326210472810750338003002100074674747569311990444090226630945234893723092520973299181303426807591053115105907191557345211466047372480678370947738026610830350256588764200479974396627633567135367411190857749545896582708474448088377258329299834791873165881011937300941319550664776610774032695441056025276053677375839532088697336828744999992274912126085115330742293345894877618079605517244682277186511226556422994147297785535458779151817551518578779079255691429864274193214675156034290061018098092810484167583314459514046993493192619709447326537395313690894978048845461668257825585044629093240057038364588228299303800185424769088285404685106693967712972293205208920756802509386263671571578421424839085828900161125924626007378606637762022151684542898744174206967590702494718770104945069732339283477147293844175520726121768880836810990729970215873868810118612901202231138036572900141937937480015298412107018697231241641057125293285578255055634555809178674047221015850470244676391033214953973243523058566204998294168019624734762335150291255136856160712969752337474875868301147805804233188024017257381928174283748051294570410796594158677976127915953154078780068573697479791261021997864866442742388058664501067595523245679961029660816488510490687515704271163084309017457803966626943155395910046264423511790099007013314752638356877287171662855566500777161365541474725009350363719122139214982869019488944945368334074197822773680969490419027052170882572715600225340802819265904672093165513179370805029494124916830218013431512369752342789979330173233267935552733023680092510542455238022352731452991372044792886665545899943018028507934536209327823429507801605053710458972821363636829359853249561322592053113704736383894792336851588967264429964372685828449686371264487027368026354216364612183368876408432665739345762424343224375097112044870601970134323529902382149675662234942297014948771133623544226277858520180406731949164390010962625067296326916399980826801568532916757563088848331456176701940643645853250181954552597220199077780596536098147525008898382130367098525900167722150298093756132270878157739334316638738717445836615010731077744463632157186210594021107516080243137097511424567729971614686319563342873437027972942063029207983070598670923540816893624936859315933850856839349188942482992802269020358040774363402452606530696881169202365654455516319747564882088875130388589209543795392559189998622480500795226531786179836256598545811177985326428332281368262464906115105765129851614383955884958116208229669212532079233427564152934545009717612124263375898244733080430362471092884001301396957256024639044502831660037600125083245232270717558132782625853389862313733673460244869781812490997060007952594107791826068956242623086230265576856071487519421762484017053822937010710280585255704777846740407043513989912575452117048189411921520145194490192650631514050294274018734150301465043886305085914720500854228311129539019509416195070890861980548936410071130531991533462959718488372791664151529190566045407829558483360221727324721456095385483060989058808375982181941248511163373465786807037723779874274397765100944648536964546244629377096261046158762585334749867695135427750696457461666837672328618726938371811160189992136653967253548734947123705572603533861802775219980263042040142278025858856794562343079018013213542959841239935307706961231282271351681532640884319596842201156950001721657654210794884391027469329022030381110886326723710854669474153254219063164100708772272244275271248323021179460349239734578575836929546744611577151427584737981306063533802436666636090189363263202495888624672585695624152410563787552523398986724284117517489643581670590232877788266995105313882079494299926627999360155144236504067760754462360128008322583959096680180162909840494732088512571579020724030380453448686605599243199707856933712521685716108548388676908621473716548779147528928955398637293034949455236088828854122285210108226929284526684994507510849930137169713565101968294545140684032096324093606907490920966796577597993762962582253166026388757644199704163032979071304805656546097910199491587635832751568423410878511851862617145766675492349292603678176935646083025668121366098138724421321847775918598595608003139704131242370349370092589065212721427055871013290466084253531575796058843087642339572103133287572607039159530142733780504729154371323349206212831893520016790034608812243528834584687556939884572793229872708598105088110690801472242645316196247519762681216771445327853339558147372432588070348262143399479553580957616028824520892751973979019790589018140327601143999845106244136938422903855871540467358530483277410702941853957518715943196541386851365042520973547377838278656183428028721134340802711111538423595446167596237897076447769845431718871358793459024326235471469796174007840441432856737591097792045295918726082477410204246580698427663111045642590125404391304013704052294618769924628534324645370020208114990132435713907276539283361440648342050861760482357924653019553012506778612906238910378310962533942630725295290931812305673707845592725719239782946681486747868147344977469369864977920394178593588734025591131252898386096767608934086690478418901191116405526541561635927078629290380494454652929818349362403021962112513694349435561353159365971951322368540529392847709086379055261956404772013603853191662635635915018643116694254097689034632868395623028213313453185555927650233146114884007988751454257638812497388552219761181806189429561239466673355476829127587446298811038128367150124823550415911167703311817478255724997459239056200447763980781058939463616497812559906197205234750695452543715072808332975663841853767642390791336686223710362740963311800622980835574345267334790362369531303753216043229576490298156375279297772137914698122987321042325144436354156473963334047472619244337800867822182293891104349349820860463417543010658951734112494341176389964449473541775272103592934092655600219220017484161409652154773650277800311972860710778019057771848588442708003097541498790393818666613242401637120033799778066631346243006214705021863061426672314516879253225133400267496724411588020677497078969836251793982674484596704687649940235204998792783616084291439889531042707984918077502440606638656779626576258643915973223440672465078348126740552689907605680091953580455780257187277945827629753588421850711171172110319970983573089997042615997381710700595676374060399238450891298928240842597822947771024936130518202083582656608572489026690930848986906748122603073063929618920760792259124435766930921527979081321332087461983870900816318011447221283013383809641396368712915032832950926936795046593457471657660802902816113957574418331131495502628584826999859254258761823690085626440116726505833449607940518553389585209227928705155091137620946438645102986161685709921414618240154781131157670763637357402208603036694047209631392245752594698612451168514309856500987940991591900791032334168358636334042757946196116416346543324745642686229604987164408545570225723517433173646707837638056157130646104075818809061847291938309128285809656500205680661352323165376585823192679999382680719286075886203718578639786135618943556420076837524518208284559578085423670171454262260024463127535924322090125261285400824484466114907669491506875306302506992031200404481075116949745392060768470697123052781234221489999634941803302642191905944294083659521993173741619475016210073560699871669174402092941604292758387500165545498216875588776565218825062072899482712275517979956321223507378328584003279443735706959717905089913337897592584482813524883616021611297580481167221599539951968805734447153016149594310746604491863653055048283699830225700217680605924607911945554085885660585667112647532842982430386615370827932058364475491418249716697567505626749293464761359638640623771223954775253101657495877999755644583158288007564729760893707500035953879647885644292867051784791999860088623345503014535049455673579570190722435993145019675092998859615591308954382400705268602223097029664433546381155071699876352981378452671702151118760323637271538064080581262405338606951942291774997297706142170778227319152846933588361818469593867930412108996232485207741798913655526993671840471555636409314072678655725673758545602291103870816850900762132895006567511269298316664403699417933311890692829974758943664252836690580596518350989290738422198864821710951925624177534446628044144873073850420363841054116019207743731008046242697242827811407063909846290589561447858004554467912612162960628598209893745900849886299117308886539668374249006641299136346143484494073291400617833767570720161924638926463558203602089347287868559247585171328765926516492862457627093713886006210072641763154241266567399332860537620865197353814180908905677007761760363174930072140019381702325039378062933441284660527809472584669069217666813405646462899693622590269590033688134748191206917373891898961315477525605253614070654241051487636905691892872247502566230948343241193712145572923821668096465202391358636722095720388664430822757219670947483356375356604369321755858413964791618776580880732067485542084051223836058424995796190884412845296233833143494327618110835243715624489823547922588864131269000419590373720905372641396557506136994179337371034894518282330329037856129172007735586515551528360335723111712036529042433138249901046486843992875889864061773506327069256147428901190771982429908421837459011839363205978153555863021810562967778952437865510052133309845891729573397482201762321506530597645562674770844084709113524655898151915617352471625588894547523497940625410732489067305436856794650279207496054602294840067651874908140204713334583772009750347383529469181074802201013420280853147195362954747126258250873050588334362329047457820072114883560802753345057822726506317737492944349980609431999461500174941383670641034986125325317198557055757795833612594867997272863724537080031935158736289635473259324900716075167972644777134409927643837914206220764766778344699121669094972106739703021576631894146657239135879726272635772142771495778355214574103818827350936033520543064252525755711507997580947980878431523013631426422688858049149176154976300709089545293026554207612248682097754125503694873143514059916329412677404838838499773681376884256368656591473488741685111153477331552895558175571256097746675541864285087353629274664201053106648265419363738515892295459243241668105299121176002070018553113783383028259151603975585236639497100253161336476434529883673302899888513551810336956940092006573557574435519175573292291896306744920267303540827444345903980547839479644566097683096466676384905016900699724003958566106682894777719409930771020643137097811274947778108527009282521803845851839522819796620275770523555451375813546243249974650693693560278185035043611154265214914444666123311226589757298208678075129867058927346029073512188865612205298732530972874546932791558920644134417542662753654712639311615031431492898031770931475473783525707690530015102201427073695311467515404699576777824944266808098791221809499673537192239658543227418299831687381102653246769331470138693100815077080410879581244022587514868244020836018194288889852707089251094293915417403641712361374716512615303908428340555647725307080091137449184587383743034068856512588829857304695996275406738748980422828768433372458338511673321788197233294394295665591441411464265140962846804580050833946447234243309233883526015216648380873368562118162290976429985343962147601884113449811789237058313760832883790800450050683008116467912490299140187900785485242804694255739037365980427076318424622928229295788157592752749217756411273541951250311050410785936273749144860523626872757956649103126781619241543677848402566360040087207338069434583826345633792069051181526777583410510640126063824063926427349615479585218655453967300637963839918987705718045258420844817446124774138595168919834881130592139702175869275944464219757045492010044768613828610094754940887498476663469466405481810170756087499107655051949764215119261592739729865478304462818282832286104756656724064516542768424555593797404374896190794356993280995164712155441102828023108244683787013719899690827731494297397941822254208292953689793291142717893298863052466869888475724421949351816203704478693655840270500542161856369649580367849841394300896748108053218443860578059630429921146232938968533209279750790548113055215816245087245007220459778200565267410384963443345225165731870029128933156401769101835449798393719200095838672454769428803766181417946837587559426560205364220721546348264562489944557937674671194487511539073592443365344211630363995724988151849712156654061561251579149363413477771156040858262912126807072315553370560503037555015389098211356394072852440990173872734523805514940361072731227954769318122708950523005622083356475282096272043735446715890824371849706027139468726528726997083959039485441076959403671567672117069298758586031551981701656494181099375255414848223719807999453157942782376731808794229164509754456625367890318741820232321930215371306475697883922155426825889109617755324785456111339602771961589195395392995776707101985330794769138749185649558585057801080208726354221161790645641141759977735611457863237807494083733504616741828009412180240503579182784427183116419821390457066410509229111315081801021805962612722289141209938514101916413357574097362932377806847095438312597441779471735358874924039268836921431242331786772144824736731487343875979607602822422007409043232818702415153260121032471906282493980338101830099979323256446429216263580081399772162785524377420401404194355265389990766938376647728940769644594074670959899209007953783139011187478023954606312205811332370481733091624596158306245515230902040968974386153984525475936400145287237273343291634543665248594692641538011501507566215308599765380265815645103217196035976983476261203076954496489922506738201609757475405713646603573023709806455894171123200219714034561226514018618686858545187643104526097839068203933727327299008152073073200417210339658871270802562975083879381119079674320451226279594874615619068125174427779143535408271798662149644208123208353010115889287459325070901115879976632038314142877382412666330895267948039626676674307493095970394586609835412280419286200941416796025365166373712251097964884384537229348346479834684619411654643098727867868897709691995272591834510181115689455939719501762239357330279556184267792260174285301961691038056660561446359912228513785241063177903391185063351403375808366261527027189785123779479679597460766407883443739636857691857973973806661487058153021875265216984315922566522309167435807259934164331339253968819167550153272451633080180196992381725257698194523038666255007704009861263590880243289930214469651314938084092892002219670067592590854684835338372127624782981437108117820727396813033812856755631484698074938649706600670231931986492235288434030847869340185527333962817540013383481088189456337594735137518651882112596054947429890008481623048604132527320446891160823689249766519582046129181752481963997413154223324400344098625459760897596692281066282226813979171112542344272281947933185769890295385523119650628630352808543904983791965871869530573945781904737118210514797231531265196097039909198419285564265260510327921991338881460689112272382768685262086410535831176723225784909476947800554649914700625186389915705508782675635041793213262790206222609277206105276429352032740732774297648454496491622897974955350604178449607534904571724887386621354325135093848692906485522073944773301468143459903997953299270975437851908495512140459351243259686374314071560123704297624445050499112716508352788908519739918813462611692475666078622872253766766763816205319823428853492023369284420626208326112752482508561769845386841250831748245404132371949495368669695024572043163594950163259671190011996637401168530775786697021553917840794988919258317178983803181242357532955822798050046605724666784833778268713343657174062404186642392456823285590292923368557305015302211627739313706989078263650145651596447205914308822486093575122690818336164025909930509113725073317785467334881161844928833877291481535894140808646104434713546725923991703943863554366545504309535817685634258163125853521558468517332106805256198700885711121078687525860022126520595158366362531563688340537192210332104324124214571345382765379087344713676694645809428157259702226716691811916703131665387661572121414506969780496360410545828115217437836870049559099322735826471990174226937211762364273817369910812491770614919196414081743104046079185334347862195751598491606978951721852839560058351773872358368218763197219060744134146179533213137392828652616425759848130753204174042510666123216260726930260729210917426806358421997921761418306952296482946122382099242199428485323285405596829775749356434287447340019945398719173559255241291087956607549463593480286922589384598921442621216514161042240508205901621360583264453626017485535798950078608960112405918708052872679870063587163680464569685294924500232840846452734134832572723736273084307862972957321440088633970189148708502373954478698043685609076543271854632085556363170282090615127091423843597204846968767692733708591829875799191679906297790072960293062878781188641192930344506517185457808005197979164363965413480733480746495902761377031697803236657876717932329206350896445899924781704855590855794842265482133573018124427263485057986753429167567102293182148721427196188521539075877394498805143154390117962430886342077737042296133376529034870618825543235442310388382717385755322267663585759381452181636490921485710140642901490398204770609267930748163156012361639680054607698195610251170505647956304628217318207958757263164840904239389839627279859131880563031651383975424233239962200914738943463485787004377522841942610423004787525371071021570647492379518655327767612730018695849070187452635409348820234826951546102849044455314465473537143298526081170231797456672454861274786513695647803596922557846383847794376112915656290489797642327539653876090197617977483693181088392642103490422275677440551930329253260820079170806898685340960698047860544098468636987855310442672436056041430012211699911848833551042511874793349371451878338944695714823255430811151266146356379684052622072532136815885224918406456021147418322165525232861329489837718013590217361089488011517862220998609905863509336356646222424226233080829915731965159243291347705106654304212343527516010354221620487943772669788760637135121387025357595920920731324781612798418713096856277029667155062826377017948680300797677977498526800196941335373105398418066815804872891441619871401195846311857329453986233779044046057334139258340884470559284930231402619151615658236648937466010256693802068591877037921503898634819438533939521824459086395151297205972157716985697272538041234488937709794778442408183061708374476189693759068324723816670200823115368789583368397952795254521504104941803844154399255411362700594347912831860935939539749195086462809981140480068984266615361677556996559732715384574648967232319421825294421196342038550620919884452081376512462469251785125749282578859349327832476633552233247039256963271449767763749258981081202284914834284554217281887944654393780672145137885600570964954769077025173260554641021541499774781112240491340612428709448173805289298955945818357412019732435893333520085587373672272050229571974066658425224030893606337732705769866149991871011353350102129861800639728696175386392715701160065517380474706685962832374701646281498079569917272800452156143528174804781860109402843810837897903522728550590734379428748916540557519527755796437625971871051363088944171125655081554909514536986137658288526696828421311870254804937130686181741656778237607814404351128798210788583226099346232252037364261584847878999346056849379648743727068426819901044765570905826879268150833275719367036100980357735136753250599353452013458450624225633996765369429404374730906417156845744740452116199512779981006728612976064897932496745733753767026914835514402937397864275036324897644647279536919492687450322556215008222747723678964778748669165848751701180263741930989569484245461258796254719102783991506298923536498079566464387497725350983646049490641463774293626952300433002672504221107099143858819308226545534088529342031152880237422345814190530843271822555168938002102338459824018201658300498501143428724358502028467517843584004761162310867053869498527592548865125083157777824311464708164250805188529797694622069713646714410037366779433372723303136289740593870782338281124871228113694036554195442502941952486874332824582302066940129474568530857980079366825392424386622469809513633313970563824870696717705882007808220009957950330193696664275298295443150346180965697717329645174774258818537212946923811947817338648986072798436285128439666325600663759594840782523065339235412875646013488239376694309001225250648347739004419182024861366258144622708136150074111487539652119129118559645571952332960008301721899660280539200031495655615662858000620662098750820417082641992463756191924242759425233287473354950935471311722663540998591964125787997530491212091786866050420859837576100460095652903081728842386659485530247587365823762289458073219366434211649733808369549304900448386541553229332090909185713227898145763933523618872197057668701979569489341084338999027498493153112223504658733781836275340062203088601165700815349821860917479713233155480490639618521645140913487539686266184034794883042209045415626079641989000336212414700449200862001822866462957203209188942398806844167765409944632083812011006555437316108054965395517378996764697847271547750184122175071463525234150201678324498763857911552671692169732389797611210256985535809200806758561987924884775574355453909378670995416404829056354222547547407198275159178269562618958936435512910258596723089688981479161234385276101658704055590546939042948878224454480942587873533223903759821357890165994209227335342763328692659109174260968238960160985679409088046604987760890684805463236164792765407290907695647642863855924032480017515650398099762995466404554751840562453562638228110506043931717116642959034989786569779399989537877226571155929961617305259271872993586880231175763956353724727592132747629217057944919920929999078271155263871757398877712034605511849359684418213540035606647974514792698941995241644011835118339851831120740081353381730295587419045536098180812830962331988797169967527855484051884024678302448130761262608791401589002524744440081321208676675324857870015178070746062176637691158545745593211925615342731279637547093643665235581718800042395484726371621981985305785335763326018124236219453013588004838357211235820380788623884613170545946161959263160698311128138220580046760690907478294155879745524774930368955136485523554420162614004757564367167943483873589260517411944919034422619137752019541535519656786361301566911597122313637674694653462350348110612945963356132308554616801949508072474902297804573819290255680509892912659861706214867163922309193855634124117463489979556452932369198559487180282935859392089316192532363204630230991130741000584877963460527372344784980444736768783783084795603634006570144122352691164155458499692587009960070757599883724952929536306931376654888324920040917340417282006791540608534080969223822887376252092586274197031008139187528293903641573784760303394589797865731515428848255617159845072546674286513194704254525603744868698655374089274093485990918519776677278940404463071277009651048970833934649487613229233191256830587650048532309477908259807496783326982809919635268757936531115358515568868715783947097762954482593140991738233864223714386017591818733047225802938383460677765597310061580136669846614878116071895467443892118065340857084677711535089384477752538605767728297898065531898367599284214889134487819312805312462630635908140718712712658772023546981270725289200352352528596343949182237694567038342560275345876303653665867250599375693479051084232178233141767114141330521034548557611495792723643177802151974720264330497897604045923353471762151101739247306352239837009286277214492006909955897489884725657497612192012298152238613531221905265356914145007276296723857398041939430061583003107330018991396620861648575438567281836787353728486813285263231042773340681613440609930059989669040201855041472550248202448029009215528256018342764434079346699317544731693523543915772868147708400053017800303060894040240944247950957874995559003569899151769564855951551253672807372383273192213681783165311984549552815861186483415631320727852683948041948771702916294504530217428785345010745689325230683271300569408366564413759344266874735660848329049575313893210402300394095903326470162999003820806990143792856661735171954338567483494613098327589090144652611999096382608063100626066987651060752719216377669139608500294735790019606220376808523807918609940037929174936393698598921364335977438573149415842942659920328877502949718681982496804821832440076001045068426088318276598403164016356206896446222418407351903151836426023011905117453594509926135621901463574189035752543773482073975582878148589364956920354926091455117411126600327428612529410895889656858909195412824343307029983932801863010905022239436560704916255688135856152440459178899231882475410295100525135413308678664281155664489335357657994651502164045439286409086849566914475318756703647663662502561463219867665986712475261339606352860706062295047070811847146533398444922134637963171260992914539801971289150966681511505101949549602966762387377864760587525277902085546915015793438807874473105043087312808384807130647743378478780693707900867775575561774388593307798808627684943192173459329061531972667514802605500990985031225786834003224740775799668383559490251846540816181324304858638562311461290537525414115320366358486366175065881313059471122679500495033275046036338669178854898962214576508099178658409984735365578569455722556325197404559103520330189087579133971575047399361177684842237570436236146174953646288575433325282348103321290598724042023613428263324411202285827338258086308423600502242279480518716249895271731650405329728070047893449959525668424322754623779108619391206233574103146469623817525496957360336766546123673371957704450523670047326634437820220857483722410108580910671454268183465300822110869754626468860113944806129393621750105817835448471915268704029649369192737837676716099410506787201452287778416506035383018448153316450668865460532138136962614754599138243595147500817309333284205612336006136902482553963053105205215392026254596063512847232265843255035285112117541139738529051849545178736135094977982480569450776573359299274613453597553963416662115576503590420083411819057074193953229416934983492648223187900666571062552331160044502420836344404644676051903888287330745019935505084585859516974948613760323096600724644538587627003079312926495421219541915864458527069712895710195267531238252212154841693253409854483763552987587052818068950783297282819387746848401193731226656375673114341026711913498177952107058362492419237628376016780126083351764211489195619544739810996659599498599207482464245585831843079274295743663563100893588353946004620401786972579630014340562703831552826481636020370484171128158835727143051452254347129168807338787129817048763351595604012944731372708798080020523938857055356210187561554884038893012147023631789766076285494380541204379704171396760023679336803965773589386383319628451716828493898076829452624752964352287047263477140517400699773947787942913397814247708693058388195251023732246073195056970962413152728290375489052510081991084361407942384838481367275235674194898159574719323956671792906273599666931799004842672248957463457753791229949508401696084099535694384891384512758040558299377696004914364297875913080555183489655084003317600039431828634680550493205804605968345161234716989133458870543027316171582899983445544579448245015613239742003965673332670764778508477358865794994942310999544378869472190827557870774933798440249076358093006592748564929093585117213717278220236950777839023484621380375091182662645351947330818740903818657834670028409201555878297610766110506407274364921366481732749331181672051079669509269101911416898228022617426357716518617651075511800041436641439437827507846631155237293960404116765412709216122976860562377411572491206120913698929383381317631789070449402825171122976886037172408951398354249496233361108713278996486605062364386099949914974250541766644582352501767358795042342069436901748178009867867499901111703908483040841839395213225544901800830646466977238148306832736216525076672968238586399134562983564410597007970619290175394299129754246701755789012403358489407110700977167951723403997635591326052949658243420010900605512820956885021924416020223952646581318147408117659338108446867396129692872462653063051202080113846549202786463262247420571159638325072207943299485369271894963150647204872872113318301593008690723134594803433964477745722627526710764983757323047067060424896952003102967200656840991744578068149784614951587211507058594818926982736529436856299686544733105042541052713772044220390768645351451197151754644519497315641519002022434455421630847377890219059476269866282990701865083979727459063454691283279089505344688552959348765641592967119524245270287629421644857960243176919696923416968429744290837493869298554027783982496753687793160740870373951822254534390931317470590049247065470657108531192989084329635782042694271887108232664778090617075054639582329565373305482949960061985280874192873069151264245181443749199767205079171301763301837172147260868592722323119624661292306396839594912429850850457950780680781281848171306218487046732295343320676912207291708427135756443655320627363682501583596139717422844889043941777477521753501615064141685416004689561683686755562321264057382977125982470352186723118129609353386767709769732187657701171205592481056502762108954528531229458677082427960418418164713622047480300090454189841888666725616363093460286551541892850842513516350097438491594781106328872628172201775728394583734121845874732654618831977302560650861600649882002679467515196364197605158657877515039916645692277137700195111810774210075542910518293369301534940600637669883377476746727990724953768200613324789278943214965949746935912217685104858303288558763305350362664214366797730003740566789386568894437960140033439138236401951238241800410348718849147307181453577163926992097128446940105840572773505492478734957680320500998264577833841962627122975675218610105985555371006355723753811424798771266132247431157472619423388166821443941596176870470902461160721897783244640113702860686016016056051961739257757022618348863674697288568949954856745793987094933313465130736403698034630506102658884076906346501290489273100740984633246170396790733035084402539056507449824105221332738894385887751820537303616203847416450885636391419526455574977832967842655721884516465318817503063049620542679555060576999587810667322030046135502068580670878570622435776873235278151471235746547153264668123282694575553680621170810560124340755554038117380194191734648103117509251946446987955036194850730406997366253077537210308589002575612383664070138995117989331816655602030756943279602909437527004013510852875433904976314022243858918223739804535497251458044852019139300274802275225805578060755470043775797974726101745440951690550840625484377741308797915239518695183647683288029975112704858226032675460811710060165508927820557704162885584098524209897704163928147696906681076868702381959642889164807299235629210057036312959847751155515325098954975558587588109257289381190361512207987889004636685206173312961974257604613034614857546482018317334123337298865211299312159310957429410145844742819360403232276370185119203154598270448664169861677867979886022390640428623198739933789768017222397953634701658925595024383424937552547404781497482741183937734468161499231459947879429300497163689821488525882363357548273341452752885413900344330913068290343331955925148351032176993032360989698946155856745362026908122048300901401390608045380996447295814650044138674015174268217334379766141144308842219508911772461331605429632959642282390927776894155201152230460318698245530039406586144931176591490638440451619728406501677145974631760557947001529852598050552897575207103337719092141291072167050000842266414482462706138685028117130613258534585620411726787199065172983535957439909931040119568718019256987669056390883098576362784890712429989126387046254839240332249525095548854726716114332189783697758596856995256474706160890363919012500624241923297923868839635367681010568837090523366211412052719798147233265896397618504366407285749331025369339966462415222929665025534426465770331605710565152797600720697266580651415584736250762942449616368385831852006111888136907095266565096301653252549208150065006324534238384141031345194354325389891844530362375488159534657804931673974947890512801426473267654146598836628019103887048346321027820847546923084510499486499556730953476167685193760375398746284634484851730852097231747989886250076220179600810154646970799583432907007502312765335173284841527266470770727531225616034491254075879060959676875171096518846156909304054364651473421618536954285462981931068675405388560073661067559658392984472409159272518865957350121497565894958350210428252943600593508196527142099416694733121342394754149093904944288206051229510457716434863640448965457421121914565733679337339652044888688684654514514528474025130455435673747465664342113593203392990026424489281720051697382003472689914348115376045956889300125425277619026691204981219347676626037146841961812632546904151357380895281787194423949031976369947479942291390006526348149095092890345188470566067231573467582541834972614261624300023930212894667238820127619482514852211037043816197825725159747649536247474506024226075260911615061601846389414935582797344523638976044512170979886670797046625883424603751481287443333581805126922253770574088224056417456916875304581017362791499383027705877826907675042845836960788748458661670181420671252199423577869763230487340284373452820015928508562115109060077870547422632367732382297209107689805379463779838979536842274751138448530997679266875449925697905000022998931685892350340979305953080592924057687789201614173927349075462781685856519199544591724377383644765243456131672517265807639990626091366045994999040480356957286130430024885574009896120761900149768174831207575302966138747932605804127716283146095316123713075501477448644013646548224658783732194175778624493622149302736576372739162901677080262611129103454748840446999421161048431314278132050195798095480236465332937483993878404539565041856080322917090002641884396428602786949606678858866002447543711119412019860613956941368780222747333225760647919284682044295635784229211697869615146205981961566016772820687167071617367234959710638450813680253995649938305280889862949959291491046405571398244051389131061671019421694774378599782153199963086005922463043478096447063774829086006967733102277203869519200449725493816649587861152073272279425991271958777453827249646272416049934503214211399129585223623053232045617615922761472493728726673411241249701074652064670153968325286251494920180441161623652611177572992457982371264032663772537641483168447692279002604637581262750064779518231318292714466350084463653576057703338679960062589297728706738119178067712697797544327416503856301518709635321136316460788165298928773864637004153884804603005710788223947454933881097762402784370643417061789642244144986700006766402195281982062895245324268911462503140461946370881859143010050112470493832063257659928240329880208295033703792366460833523624219715960516980212811771985423016889907716549675606761881777206895993738666178797524260564090570116622836597916733268338384865530424006035172673066058273930188545578304536358764538368071605095963319313704451888015077531319195752231186370312656142686781553852735375298078338095045072024899872116760828600577743350524523102248380831409575360423516323965121241496080363085621295427942962645028754694874525446764145586517848308763794672664502852979275634794198502884362507723128476790275745796836601040018456308575906807340505703509633162511909157346783013926148372894284579398128341314583002872642774467667985575230998689577671184331668202890050712479615281487293135303387103095807351665255353509584548027915021537423234589904263934224743553481836868549962887641609710983406691882435959056578532428940144767348591645224665043566139012884362837293880186623973248827352588542265465316514698450217130780612202144496284356096877389345266551247895373800466325102235886013562701255551097329283535791259027602630859194687165458003952287554480896520563605756037457618803851644918304552756012807532260034144996375276299652724839517754614218014485586522001380476697900254597140388248263860672972868559388784529016644718420432795871838243648592432877641646606759452078210605038400168916786539828876617836630534242789037022337989270790562051331821779038587455188784126166609883363563547660445468098512911363170166078086104247974848777232543890229637519324785509434060715061284696436326516617360577325469500868451036342383841436682620765374216013632502812759376074270162217565789191468036192318053326974376513708758126925588841348085779061953629613889151771343483240250933454875641714905854660528787842490886044526957072288055654443514482430124367853141454067536506499064729440282337982264924332964665695339454722942078936792225612196130316938849742637801510012184214686531856538116103179664457379875408577210218423424813657889240698175796733429430398788227296319032424901881570866508098745800074412605875435282030626100031107561722145399380878404172636127259440097846873978844849754560809317477805956245236365272321608210238145441616230799461904832836563773950725395802028355889785207578499046420919643242443472248569002029483069740237476990401190889541624970255809252175915536289990963180457546747101961245907717831049758169969311362232288585736209852236627369841474882724297787993022050384114295132262261649274273154641647078812248398550081153541914751074708941714970723235065879113347045548030159836437994267575324499902174468073484165173798077748182650147931529666880416330235758072278290723922091768967154311857812360255149981036255015065893163500871137074803299470053896965302495116315553142530174707440033409726618736105900226308801762339340223812525255730477513053827152387552114362014836369366122193680320429647453950185462186031259142891844833043563583614149586290224699410450431121207908544108141684686059510809353174723624562013710373426223405492347717528750963805183297886799768330060557875058612213462876417940291675738455607106773316451688090949815935477931172789983052874932995165699420395539835590070549292751651999661017732678693823329841853387466581063554759613897638567771743846538130157725011701110131458659862126625106809164783784874713941625192333328698675318693882589173670093497615551222784521682671470636428554299097477740203359209847690426701873811422312035892704668035335984251427268750787234740245119672599363808973322549629317588097152052285084541126346680624897664412673830537381424142880603374276241618744758296758308228536924109981016966220837703016246028685831397550742439285706320277013914298030006682706196492582451861861575562660403957933502093994672707506652498347900183647797441497378904497968213369796519973743802724597785897465558347524502273873420921437811427898498137931419962502950135419525426256502291561899362093388137978175119682849747365225722640284998675209683226585900285752634674186500409410053893621166749500655635518644516811249091892455215350432859510124138689885335506385001309136642826156280339125459294457779697076741091305779842101102855563751887302084754216787150745315202912455584562570770878762942185430007914022633934593643698927235873773709735339675358655086359609511610169553197523523713681269251075255781185685248618545134322344981589838257735122443358825883445675570858551627235288090031692711610934167392623245194550290985326890332556803668295504672630253778267556017641742746086409868858061196606882161346351892716682798828901888108284480232721073619641860300666739299921989640943919934106418325459051350238519027228928182920444911463003458258618388138773974231137679463837856866668599661540311387692946513556037289954575900789697835222268435504320606532782282463677714843854886059675044724468136455869036547705279112630851563877127093447761501800849564434522034517153410919118376673894970600596096149211471270480309295064528110859038524273136419541010153105639505871655524126412906499974149360496508230210967655612016503203126029134176322567146659723903570422054704004378328592576531276044089060852844469954415018549110173919810435120504053820296250674647575356856559313836416538889074358818408982023418478442582133904315811307045215843262797707474592200356067493039037005969636772926009884185357698974678821311303391530396394385339078836845685516389049308985725344562063228936310853432756834531670841151532611323182746630250531987561542279188926229352510834037054415868380784885467757301933624115591755409797182810988672967972753608712632480522615920470104349365246171181838218290322726249833100720945962072387910551207718380539914899163283895815871837994723938349193481905441784345089333437082510455007867676242742128791368245757247416455364978969789619430901473564565434833924211837985221958392537488507996256732965382730924992673882209395485263531523870044105017875341051713160107931621026738300538882323925132564771579150473233195925627599130989732834379411816325827422011754113429445414585140339480155420394154859463589086763048998685602494672718043567267729037328460998522470293874539053901766402959834538039175601655970360833845676478694891664163885088096244926636684102519736648025050756861182583364728999397649100228755903047093966672839920107790329399679123098915489667359517857598951813133463847524344403723129737649712786443069569168729586065274739639825483979572081321263021460301200875884843199479563901247194820154001084261016611012555141780144966368416606740553175119960409261526337674844646610839060764870437866485064362692966545932634766998771754808687263588456997813917448260364306562524510512391111064088903627271029176554094804290410337010461788009895039120658743518075275941280409739338130459724501813177871006413239390009041698041899927022744384298879971346579402476350637931341127227654100682455773492748145325940919237290892956835785942239415115169421845237151998264178375700055856024311224884415809554467366423238935566988107122289204718379213419449218203787030542099304344041160871261279892428040132570117266604768367029699829365612979807112189375293109909491967134131329585056219384758753618122656954930335333838174278160723675589571664278023865384979688303176324100457820185285359659975854378749335967228631601295035279972924289118818788754925325287084062714725321831956600340193986137378583880367855368748076615148795400508908637121788008507485596742251375116985036925898129666980603723221022569589410540862304748805017600607533188492393626526699474874346113136915759388945853086582374152536243375131766883277800154643852976794687957330426934711320105050174204488617778925096979286023322464756436040149350421974756846369994402432278166702878242602721569637515997106912509458121068012164027045927742697750184614970220388209983236364121652271607191017864199371157368598276723838621977782462129031108643295895485678578997644025127241036445484337272468783464408184591717238550058978106153910804965678059774535616769143156608117803952977772436197637582281409954275338429838780951055815982220729531014116113974521689174552318070477376295304655016590705069229697238728540821539594187195114144061543297231955198182671613953872405468227333351051506593137264128456136200807456882406994051654119486624411648518885756166254958121764753859045338096111923919787969269603320895796738498428855281801241206825423449049697729326058301586540959835329572700214772449626659447184612218224054648489272766687190389779625672991512490591897416511266414885964600991101179785212321637659649582577134312293316268139998973532335160203771913392485518186530413718981022565676898595420469957702013035100221785208519471078769914596508910025491491878527863275512826058938486002958190609441636660964070331716237254766326784617219725595024433396103547363755425480295704542445217959397649652132129044583353714551622516466877770907426295642253064722648322824986680211920556827682886905020428420821387496977732189006241329407834784790672242483265251055983726446779575850531492968223939122075899274236895615486528506743889967882834733642185566557075366851775771761645969671579691981072686861350888522853444443079174374006774879238679676479015914259608271597858927139406614522534481481857165938633007791719567108034184854340285894751091154801258738206988324946963139797132673194659264561239107158364992567354881189267018696026541690614215993354419668589263504575368138408761934894474841789258898413151393158612638202783202175050347659735221929704875907531070087538441727583023077872249361022282177222557440102532433764067249316197664890177210092409998002671372606797576279857645984103015880307979529489901299721145880801229836147517671795008988882007531416515036074297091542007789158761267519550083468312272597295068157144845673890541632586191024380420171769995271429707093087745513008605294129751935049229625179666865102119360977213876709286526832701040336572421707699710394341253092195433754215556533226082609348176855950522490958286271799832351227447448660016638130284862513191042831958904576759966577178583639150059585243193886244794135558771497731707871024499448581121083032952037989681832543975228876132534523316816431464881944877167825201931810038641417195668575061509757755667002286292526305649160871455303408268977368527892353914540150434128676325488233071383139901771553367933150309152603191629477050484073966221423899387621850904710717738256968057506255464226235329998502268102403649557042006780370468853235875377669658275503099457036260688283540687847672714183969749358417562145633704453661469786458418319806352052298222901645343523278951247488055081489873607263788481026058120847484637921701782932840448863635944490450816330007710333137313591136347559602358083215342399576411212687151440474001710916084268153559273396110958444077264955746034430606692071204669151250245208890610661541290779232068020744894649413003926603241996457220074310935671339420558130673707453179014351875496072821080828759917595833580099072450913795407584344709102449882658162853390816233351718318482077873694123423730183502594718800226203578642408351772782271830692351983030887334245536304591192780098681328636216172114496440343813377368354426917190923240816050161340742774809206214222506065403600582603723649379540100168867375082697593226039811861030923344289696380151181596547925507209953278461507253978465883819116639786773830257273079543598860369793924488090324287085406579571395070030374593673629364765517103945690801910223282190406893013721917620350150149656768798791057227856141042358951858996213124021837747675157680100473697032328766378184536418620041664359008909528656746727485557962807380771271553749800297134255532112269073986501475025430010611211907748750435979624865800397336158534379860081630707262562504533240045355595851592598630909977359350304583014064947307004211541814697356748577265060032085872767906975481595659422900945455428684798751043341447212263910514754771794542366724432857958272544617886630901808979744150040646489514390147448209485382457960093222252796755549452704749037439553479595590943087396837269173689009769854055770658063014054685598961213561144322846207221615068820279353543055935989859061918519249414058816135601499642905180344127934458325163159734710016717508752210912730311172804377508750349088732745640474610159768440081836027921114033292975846321155343197616932251002269450171086318948977053766424359342217116243778959219121439887706495923044087660575970588251220406314386465385901194016240471632973215725378836616659920582751347520346350275554893073635760816397408743154061789854499180992655607967933633481026276491347651795339423488100675306914610675154139677034785704839905664976632944116576499486280444810187545102649321644753406272533277593505402599004503320088601709456150211242059076400431390030070435359653505104765170420650594915037972247188405001043302178900768690611769700204020645687523638081127603735431194297698128009418314869659882301583595012699136640187755036326432444337065057384523977599181428824607942157335487024036722012356576723454079108141221214140841503483349818473083505984104206460605876168582952766065279550271607653525052830354282167285019302645460042174907476705583480556703082568128028823323253607835914863264077459182727563805519916801298204854434089433640181277874006464368153244748749323554999570010265152105672173182165314197911814961760734871072723523909187949161450975866112459660797547440474812439085094779513387402528831738188304461998650388032427383209319095107067381231136873853641374851992834538792027677483925629888174332329707555210608926684714886579734516441934736480973568017386540042531223474384674826514413905778467265994895415708535449110339208955185999935717810599054400760282593593520477424239431619544697404850803745064735840279046743209922479680571589641365301412297747978874518535922934261881095694282538616691573669884304652296224144498278225859292985650616001387030489246685006398480368108483760206579775920576821701765624119123014196378419264234391748541572747042318919516996410779694566898006681948193674970702147253506582933290448201529761113880493349732644846507043607061529941267027459125766205017170119063583734975369152347891492837860558444804326013211151463902043036713808589123365956039255797161382448970956209525163272773799915142978494417782925099078040191183522895915991676596554287849909475565213286170673596936752527213010083681998787627814810346239006475174911635122809777989688725886584720215548413206004885527246507842072178319464745976176082200494681634542527604929516427400575115344593729194914617995710414055472057256683978466694732314494462758833724884085011165921307547000353438118796025317464568038751687970946379957626060255632162479533697111417749887029247912718306734727174783769374875563167159719965462750502258756978998445188286283361888224258750103492461588548929456473261520215100652854533991312671585926381977176933707146274411605056556352664217422702651063743156015478196034094700107947779239241894368499276829955785536980398809345392996848194871599087780031593947140153084660011486183478101197746124605875358002483198107067351935186434209572090046075616960204100275680556226300052753319618518936419357887505499741714815444838057747140659980285798829929288819223615142229560290025414290379864739711192131796481344674422950561988839280124881568313600761117907763474832415514049476617581130727057199878487785368367941233683115871922216957831958242755086199431770808273968971574410776714688989857843675777640328210238196354776479606170813602730421163825768451847065420780049274981695018999701366558532950594975956449534929028737088693703228209799602929872483375809952576959851910610440743812984948389434259471006029832760927065754977527843054884621058487680881475556558901148905839187020278733264829669259885468325922323092947815362488450808271870771508213446773460874712552233934325427572369243854979682258869087543130680372677563578049390273009819957966683157264620343518098457463995447354418540171751278353570543143661261425409122563901805025428891772545862547394430748577077827376248064852423867189050738715025351345021196573326085112703345578012660325125558043438183284109651071511120925147129260523039105153170360636453570019356763184389031183511230644448979583655438380908525475496620462629929308808137624134543358370724063529217172437266951570997936565545476243583640951261009733095205786334253422140747346365716782309057579475220259111611305067262415635821217067122324149417148238632139325325060644226393740859962873907912136776312229076960165132780774771182962669129167353752067011185656032082278748299585643153905149121436949842791758418236929951425132509224129049569519644025368675585196968847211825266162963322137928956794559567252968291744520905293339229486543155540184062391845171176479866319142560194802560062806433969247501341326612411878040445468430420019658659255326234629953802826141525817678075963745880230012629502310230694455686665886866704837442583950519033502717891648796102443816509508032434297396351493031154461028598601592368488895272581500655141179885465511757431981079132099132569115863897251334509037874487168963231298881075837381744273427303366737726021233317762641306159629296259361264575813627743304354218557903540843271795423339497040829300224701480581501949169267995746029744914881414472086147754169961745718907273230360165386597077100932281473553771147466013425086191133142088339947533680105692710545824001736469379129300109032420397355510806237032215361995830925948939151195047658205742413189551201350295388793418129433272232664519884706800499722989949613830035294966404582128658263854515687975875415118939593538793019708100302852978986929222589192891854534835483973015629084348308553387751783454095560937574232787980539516523815032812838234687408301208005715646326679553833902001004671415314944447279134727460286088397125676084406773003291612881317992227285568452102018371524539242115110008952118133967901708912803096478815738072618419389046160652485544274604376979293271374557510520571637906583703819852678220391584178296937627392568421726784054425452255604779624628054401933654988676930769985127814239738496879320105701378492354573738420188847385277288554018274596781221249532795650532881852490710340182563292795281967544716507311488399193858458115369594001544425709297182088767559180219523707015998263181107602474919982562326899530185965201283317585380761493007498111771759826414910041082480985929825616390578134866867872699403675295332595929018081887108266339788880802363267746046709820370462923644491654092430050407607235872110669503443809312966987769527165342034403248866008980445445602852773307544296532734077103739870107723759956904109984992842113133117933667487938274892703056064129308508913262539915795669381573867402211297204734427788800994921312596514440813831844382406812833156285508824075245115977956672139678274359200318248972463410126979481744047702796960655726631316676140923703597433467586860963676270825741070508259145763080419883415812302868612452430127215502003331098406688851324429785706081870366459323674227839340452879057541736642841379509954981308985121977113865632104654508847468280018306060071747646281982158377993842155988080101523996719256534115337200575654145699475271615875558346178342022732831959581892311493564728559504298382493834299240566625937377687282885936377928672090228304948220458440035484058626229889431550498967221469029997982682620198719946430307981976920853646562580990329053715805702232418950881301522228263107001921765622085712410352648082531147029796516302582054899892974199209946204164218136068863387013331614675578446608884131241523249955312151943306422240591423678534948443460477359705306103524910004446490326971404968583289545896336036851541701326570301672935377011750367291552346616122871567886289743762903035403723884122935934582262435045645518911750519638700081498357792685024508894025108860269158428587582456299805523178284428438021759533141751678743684002941050096160613240086263924051033369974739177947283030716990425438657526792947028730854607098826002288988912778011436606155782439574974759784647385999418466442668143288040512726116163567700043624057849871550284394285044246107412979887537821975247137688834273247556818310264407157455978832071505980873686926478159696699760827597613471464991167979114240525359917310201573809098470530218320313098088077799054815833809975046154347149841017474981979372124621406423216411614058358453662339294563298462209167905379500407172229035429363601270717414716575626891031169062559226861166111519903158640438932802690540995979655392225801489786216538675309624800139706471811956216203705114511349181750689603761633788354860938280639098646631212136932547118275790133808781453694701722477902497324814249853230922179103320573707124086847643741586595751996065348807515330033321016551808674623829620675310210769956210422270839544753428182811791757507499549012323440163959152846085919340178346027827007591538506577128409193015936679733813537517910015116230888427257390618420057267649055709898429975823222769917296151289050097921918385577637411394751874600031531672187831766038691941881674434777502724547985857654614939113082606965063268258671351384804925392939159324803127829310922153739079120658721911050293387869705256522834376730156888084499962507153079799288085968754081689124623791863663436693688750171021638454780759681501871181264155898523846614136688192349963461071818725583779700772965074568529907803629247240311499721757160193496690922854190323924930122720150264699016771409831103536493377851226409755094155676436720712029129529891639151654247160412007380032028006294640624649130200874278579321102112031757002452539734176770687245736278689045337031893568520996433177518715918291278441359804243702656074813872728502466698710373642793214466532425995612036204612896376885783768490131284951211212238152583298589324429732342969403265808912356029115815092723152636537468394213642680775466836161779810255973695817573897121470227260968475350787222314773320794415840117306273905777047899336669067924135366836671133586129706649875056403153179910764517394532707227073417422901298811451965301436746667557230194505516672765798298063378314686144874108924490664852824153108142455813259304809671521014249624694778271709811473304877350464313580634169441505248251545203856310965244900116501551114730700822317055435191320281950680424266325553803474022076208863367845132848188994598188501820361817966772166751504419830373430647955705476658328603800485656275333918787061128930607602217597591048510939461284039161444523901054066904798005391279024982191492205325469986015513814288484468902101798136131785015550960884267099073777052082397247746745189710322233742826082044584378003274839118131978227948763816891243247292296136749449667844583134428594719550339208980493343290581509176383599502014444996473789952077273693712762031818914899879697366064935627576742783872223546876578353663526909444022172003147301316714985908911282618387209049024550800271430888896368650613651978930851610468277297878259533388977244748154078925225779252052992221060322558816180198696042882790294166399544302287277202722402537574380413311400101691570894746984139184670157301488047257403240300146621922021812759454717621679839344092726818112691884736121879520555491820786833822481105117124524817524811269909579539708518350584878003189174625687839424191027633317236187012455054254410489766195250599735843830971539798499884827555923409418694389763901424381236054839668248381530136974930466040910160641906939076162016996410304358239127090346185027604062634009854171968695391653690354580164665085804824562833966176615601561067365126500818818933217901869183333795430339581598667778907140243347329980622398729261155049458956634287312353221698674510598560160531483111426942260743891876981991577883917276401638820337092502339314068206959552775747428461900482582436075275949535843838248730185863649146367584496262505168970348792603050433056137768977164925436456995557704546100615250605676530772346500294327979817576409145270730793354465927250805656114848963832989129763956101530191681579866821123606294766402019768466907811095628379784952005864704933466085515409303150899094638427862582330142715584538484875454860563557144936229575692524796942042308804260581037006060125575935003175461288907679411715463621532512614804785762648497571268493081855622810346423927783197998344139306492257469211393975616277641091931428393944306630281716075479890936839024330514944902546334475490223541558708353585808620375522350778397902530505908825033775406376931110465460363277622641459242635884324251600299208120935589131784936767379016024856069281912389198681553790857689128556423271079146005410958987949218000443146364077367860834104507317471631779079572378721614287941256377752313792716588597005705075005189343194055732290583414670800002818699124600402888665405016123909975677484548480941583486595563588062142159001019608851978395547115955140670148793572645062151409205224797133738073815452557347899664444906186092847974791831294230090376492216554908827603149910607881903261973170099548985844983999133692889411029669007777883931348497865907320944447889982008937071612892089804519612579199204500896188783426756987623320626965684109708446482863657706347013243566789091574980435356767591724471340709736622070616900823768435528343195737874527307985673580075602338682529786394095175888250110301054386892483520949795099956122224119479250330022178096619439700055150764050960060158172364892872525916043979694651677234898247351306273075449461023655313987749721853953624092068753109155605850221887358298102181974386531758451369508286682292964551375993189357986247875301482314956366081323975054270400462573328932617785482004728163162823526977734770465664860989912284853650548386754029793548620124165796417588425558979252480141575341545050599174782167904912746840615516605941592163655819505737124718281349686906138365129185466594292772522435766518156761052026625101791185296351856059839799055146590151788887961535761499318660309196534441559215531766550561005263389325107229482697578298909163826221420079317415633928877387928045210269295846908042304715316914287315668637256020033666948705104924985786475375089576745422865926999504226995905052127755352152660736230693386896963236624682424328080875174073070109975738050023618939413949962669885751976343233635051570384687929959718536446081548058977602038671117930641385905560199258520275134691271270483232668813706713195999904771518474528584709647433958342784746554681777915419890895058586366305738221215337245370510146748566696134232126315539176376467038113413971944199903692520501430908766874811418889152430204874242064423966586188274768572402151773512859863936609031324116503548001704348092237054750216708211946139983159133544879807981452323693120141547148680661298621139390992828361592205164596319018063481551000408385401019078350313670768780839964721467023094366834839019699481500248352100040033846676179055496113939662217772173110114549998022100515571053828559519851405515237868598157391154811429923232614209890957895330035675318054382773127399192312057181494304867397029459113560361218849372279268286034164236348039781346018038024056135724745344406347159206794546283195714680033259207904355208137666998956825439533866015996426952637678162201761630879900447339716132091833962325077378378538870367479315037915022507788205495958372711358032798216237335213809693261833727455191989315174701964176149674186292809621976688791077562091492378615863180421440777899532661364384041690062309726683655163460318948995635390112038803957108735859932704883056143156166552344156435610658497038111496924074722949084389800285476056233489398019839554054693362953399767404257872008085984511323549267872793010199344321389396564578941529805917154014887610220295252912476058451430553770081836930755862690898108644014577040731024743276262483433239869051026140379959441432699431079034411563721355186621554968996916932809817641599659817891214157295833441573354880903738251407238019496113621490888795858268997439436331156877947102697894088583986186399004429558486187368779791264582390333634954675918266876814451274371713074865339757776681820867978361920452387587653451846943026378396548482723121924727425572216263553968099807020762008388848665475695617269547768648725016243537875589279085048575852325730113134441318573795563628392687919498412059230512044464417293678220541407273412784659074717321499273893685588719179309491835817905233561989123920162714064608998000854346035359644528254501819283052261011121613595942624241252702676868065788752246407078431264025624655277797884280481781586384290545135070865552093004410433179868306972836513166618220730065468259911270093122992825237163448928016078550664681712533936123934951816137496680282246833731750091316600628775489079419038476491513867938573765479547069305080907675977908188350706538712342769259115804249997292997798429369775367253576087409595142367138980094985824799534946433008313499082159195887234475315868874062960185586431604992194729074706572726632163030145585590560008104672920763049329900975831317121843700735035517807355529362031624095143898750774329808865794544008733938623033961272358210950547089539786592719679649699406524450800652610830435865777046978572992286848700004255829650508923878638607797567528209739273703416031147323674726207897983876772588551904640980475059461275682543344271761782485317395447392247116105205063061068421198143727752470665234798639776268844552969354178988267804605745872285080605691802017645285316099823433694764169537207636462339755201843501552781119334612436268119076050274190786167002273889902866974761058089463926415415543751748437157628496970812364064600047978936796180451013432411193703086426348429182730299449458802348978444619431499634222527801317636697859082149284656770701819774429062186527054378161154332895664506131163709244174171391281140655425196205625697076430397862240436941846828915553735233090707797807424128391633134700167140061067421216583039276044004034109238241882778919363586999345358999708477689947584209157284156200194663353180390612096050302544523677950082922493333485646708107151230765945442468471187804764357667586246013911176641169308731802857700896887389591180099595862028928089936125174827928076783242632344715940483113174074387879802485771825871255276638008586772457275634668595786151551231646968143034975888676786553046248566225854680327549238711159889453783423384420144264192894226865802752344056057922831266700984027203186263087284377464587285068338660051647044386543585007965286599669716105981468933553528655579562320237038286867848493405039554116699607634095256082802932674632460491618794014930131082338739356695283253863154645976887533245134977421519037048531411713083981064694420270301289867850964495967013669869277188883195569256973007246324905810616039126898829946981889692397153361628794192122493044803052718696595763530339175428607025876763753445030845248786357918807845635601733742343048442890888716190527097790299977920692041873891380971826716897854504378079794347910958876260934394408162233948169402114385596833437668287284262504150678288392635719842560623865675645275598389899041913682882017856493549207877893931311526093498824767536137593879683899910556869727451994093050400269653074545522571407255846927425340474182061623827368239078124603606017556308741241653109958318443152024737195472216304952508254263484073025371480814244486825714977599043605233348102941472033805630707757112348581648294592749927094947648075415534454779947829686682017734500482587152416114397051392895336122489703197759531805663872554252182487358117349781432832710988950237711857155903698470347334076157565632871576175806010325645432531487281448507663036505603048811308426903106942138871458631687550909023984428943035660176726690322837021667560870041170325924853503500214618030822589720891342674033958666402586479960028594494941308066225746865565027191110699794595921742847630307131252727496997996031858131617186105511287759596597249721842404764521730375859351867440914488359471944017315490042299051116760724593096402926505238357230742653742634379104104288170879215972868282370838732598953172155233247199959905038399823664951923574505579548078919051143103070707334674357694743026880929706322978202282554653848016960694333559648159944451844751158455324393112707607176833449416671475275943343678704599248336227257509533115188650302401679089197071836310172622930844612996752737043657977707750047662117222650417940448460413066612901261326949181740472598243603306244537681579031466466977882011108605601035402298248505889357380488165054875777720728015368287336109246344943363903583061483417890785834241992101733295083934086408452525555578177098530669722839055194206064659943601624623337632565954053355668275310437281534141640160551156761778645049880318652565681163528630583149157268019153406388364919244551823771366023748241406363460954202348702468329212877062764174881744079367229334138992342064882473566040335348230557737518095950755656243351164878097321993163797053249868459642850860963620325538949804681440374047406045467750754452790018371067656775907018386453859304398471735321021921700469256922216939262347027876617275416436799855564004109672419075201011753988656140960338341139617049249272217395682890724759549119946778164413235960833718171802476354737753121630479203874960693948115021255362003971503965127565950627801492884350374773398484043117493272718763480696794233461083066900078408876065324319455045165150457931566936935721311817569956944508579693923063592458096113172024267853248271660291404585083305447125024907092727908997684996067460166574101316956985079853058217130221346909649659805860186446994910035836329866045065268844599796581734783479460409215568743607541961545850942512921532946557929353874568058471322246852954766329778145900563434212277037005031706594761334887849037631249768842622781914310631622099946160694089329767181748934770484954993844509724630288698733214753445678329227930074667337337763115089371732328871932923037629618234606796280360919548024759884513645208601876934906895860784438967715998012687102674299547643073093998663497029528761860940855896217209213699125961630190292333282203696441585109678292012536043870282105074429241318665911965235008787822978595566773274657690901742167009464158810497826939764032536461246384899779579993338118197178449804506113161936296418451800091140089302091201146762205144063038946958614460003124727542710054705954140644906101561514973589463402700071876683584271268987939075959949180467118496112880112654158014784626796687011287519700160887690519078176954625391489445782621196221938963512421990072665983088096123945926320310903974260839034517779901821403008449685493773688115374316262557298191095928205045370728186256297127776535490415950629373227678693954724607469416715008946606635096510964122452865626717520449315520878121650308632135550827312141016566256024810476648272973890555964463520482083019782940060194899408970829173676707535963882612775217275207918277848884423221550404754758317860320561012418697559060913223133034255256688572666005469432361493124138440513268560819085373854124725474595296465907014921221677945343134626177261974714892266726237205711137877328901025359894563760615306853094420963761213688983973235863999637223284413646110666574862258792301903077995715315518178511136839707726036894604406307756345471127080211354987993388489255258834916826456635644705532531766977094101079856049979147394672261192780295555949380263952137780213747760304224905742499450702799658737141080526435971481023700036778734164926428373582454447452205209693435681055357679124391940010058530335277641008799128839057651415752799745280159445731591976307394667530577569031783696044660973320424885734395712513671301047301777265903053493206278152670327459310750513568299277417436556276916413784162864291395485965709120453754599313373114252372126447929720753306447050059344755101574143478465217124642061700694345530162992410771236800150160927539075772751241035884180537513985233552618538105295281210077271117789883454006605689638377971232427903982720646185551441802408766237372230255099312171521688380464287212070292911448915009382132535598982744198757095502001314233629167821694856928849477979227655592028236397994328854782332175364091494146850231542192627190060519853149430392419079299310159849986243962075862457122296322260425795511926275232633042680491103061265889991134710785936555422393831620223671823501618881204643096716302963282120864721158928482321860168805321207349493839228928752776860546106165819867526825977886373547703552005184361743703467131289108963378006716391840227751964971215631050910461944999473426793770055561407367181835039889854082995735441135030999364218022957811786333747631500558018800855678085179943225183238950421725829194409352648686545247905106157343152657484681304430973587986629602093563049594195290791697555614376057902632964249012181034970916744764382071509060785450515517204002860619253515917068971221771001203045712422406826315334600807566084935606628942259912205031148565146666439254308719807705757599243483873538097101173682785177663516530614742702354123660999215550653125426801472871636181965133556788244564284476147782498157260516769263160363315388553488417047397963538327939463025716481709007572488735377134922583335809217356609408117036964425227669255912836896694846875773159238694758215914924849933719447585339051727848531840126069648909586662712068477799596328649162377756636973880851801443361445559623781065798976544989646045320910248795927881223302189588305534866034142055580483518007069393648704978455581155740459504930702679852332444149924303537537495379418764635458693342397942971258706774357812888555112755100132488000819801322537100244364085090573153573908748580192652528282770025588812229702452794175062404118964544774664604942590921158188106197195658994941734902387720843514891969849742968704993094286767937292268729101288814451004839084340968110565598610586041483744564128419036365116853890651272897629354709075296403819489732427073292986317110763433863251287557054848819298719428171639550988853666815500831700457242502356048135180244954322106506568245455466087568721238290572618072594576632618082779528384739538088118442291322881787445390694508505479560841556041126303303198935463269354935050263348845583446856436771201056585051961433203423361710775220257028611721158098982215993119835550959229792175472569308699454853174181992065187209162959075358027368045390321011543300622187708687693275003595112570920180877133614823773844116151438156020957987133612813213298012838355608433656297854592734072173159492534415795898799867987013809326877975062527835479430820145588886903759716042419988682780867597108822276045904211376569300142408379879468029334636619740008036050000085825506181003348530589659660687500900348299783013283963902257387378221158452287324007853416553045092239123530244928700445267363472107484469875913273625672608033609913097797463763468004945732428724998354317109907084657476474561052426478866698759415748994509082355197965936413606339377261327597908189216839976562687585418860792406709187536670193874872372133583725459443357412029789497036704131675501552968435497726756228107683877689360697087823361307057205534938474463050329313662841710409877214773885860072365422491792753471467612221370317592809392369666952589479506322678697369182256610147772755537576153718325742979489538429857924215619566858216483884307905244156391058110200801194645388801930335123049984495918438053558064994278335861828583005974115179126937042634563796581109371367227719100777673674391248930622127762937185392005194105088652648366437865268780888818399389644884480817580724636025820376714719667212110759036106296048190718532406246012564499461580696671024979227965121745871303149136866909516711883087024751558960681468304699796029571674817518952128559351834931443970340345701440359782451982141682179606179578036521420138036949309154345894300837189660741770335450727321504069776512857052651482802285382917083300840286456005363620889836846266420417351534683717954806163296768838818453788927639805121264556948085063737297310984472577388730347114096855705279424399891310490059359971384308022392899670536139756349378048835138633408083294512059518907221338099705826969390686141034360900968496728336345182702604544260461192522460845925648409269924632049147641935929821981361019300961654499866261554790751544952535838112588911163928492361227972846468483979619223297064371690387695634490862645265279112539364588496310449365563584835576581879301303401824875237702035903630564207962479020636583871729758852778115046524298577644773245206144232829591496980949553562337813820737793505860526024201764408609334187337741728753192317585436834503935123282269518653289138405467676977082676786760701976781329351109221774772839323789640442950223894857521996281212131844831587303753445870817032321236107168988719215787310604658228569956691984054879914578498506650895740541005082262479049991580697586872778190140232173071729770728522092298234357423411698708163868136944341591302503760361569025562097146456643333805647833802852368750991274725527396833245489288995401470208016391766542559487436922290930994496297142359222325742039114250364075290098780379520572605526584090870930647420200136200195375889605437850594758199033812760156811612886057590501602817184441555313168013732907560250051333953945956037973128211234443661250495777148105024568736912410839419488317965852055578775407190136831990890531634505864330363157468960453085593935366196667866414868055507523480805116488069007813283723783094037000600481867307605850862743828812130464789396173255637514452240087760089715691544933146229893785701940049558278068122304208443891388251265879213426931382700104132008338199546481461997207003179567023342165662971389927531490855220631675916002329427278296872440867012439919952608055599971424840397512647263680314106309244452556851315594256712211708408433078927633706031902076599676381424543104223313756657394308410828117092686412190457667905503226192372763160652659868691451129160149596016362814969590755362121875099849450964592829663945626109441281172084770541473570560683769401437430234228882057859354683889893904027216021320049594867392648430459123346939343913393617690472557271678301014692944372257633208205776743643250046928580861472869989007194577793114404260214801047445115403446063512878215586299905225939891721426022427323270526468853856765069018572991248112632571719269781212269047644838320381669262905695702168846010102766228927722086364396560750755240583607901798245676747047681341079728758612888875514957970268154051883717786885321259941258386299265715074908873324873008728225519520659317838846601697657360372680876617102580670961465053032501698030983737354325561215255797202221191394468905049826573473577952775343638340259824230984867812836684749539723803554515739164667731165316575269368090018017379522625712506176261332661521292195939618511702268639778076522852237149078841656702477437729804975045390887664295599531828160722299886500353169250523252317834659547867146701533719764413323375784405405424884993599784193292276754432205357092407993359053876391227149410278684566592311575416586479361958926216414354115450993577648362576744905661082459814006240396383297637723285693312646715617706933294088746197207458807143952341678845902380269831073301919497021330994847383951925991935565363182513263622405031788372244898478160628031505491001389760332885566070468815508377669337597871786258595910372183088440721213160130350128875662947402855168406177797910512545209145152099782563933586941864262477507877215558898191235031332909645910800138074866671806312296933978813936302527461518150710173123486202923746979840045623363996625941790721657962454143036378775145613669051830945014509495634776440439929057173281341483550885438953506019592923233655009891810540045392504095003331340322685905076154933787158990570737355042278301662086107745635015200819695280520662738187768000759358709459012346589407845672492276261463677097837944992911392771845407407417665440694234811468529225471123992253547339211963803577268223633743970194044225947661268071337117205462372668907370315937505001317820476920946468512954108270110891484240528254975339181288088794643288542555648054999817308209419174099513159846761886992799955326993772366557980698408896069223946658110780573547177058419390474383188218942563596079199084424551237241202488809005195134051991523793402402358670896717660905206419467905434435331756349795848938635654522433800090859563843099147433684325165799078235366448763227410031372580254295150342386819249283427019111288886254753430047344267559569918669542157606472430997873259076969326973140561462143779538501951778151099662569607283268805804379117627487996681068955899280041792610506531428182408236357261371489645248580070408407072450738057717328049619868694698056296776895630961345656563899984477121265129775657128107923208760207816883219456006336634215025240544868743948618152108806526276206676712317009509502201818815162369810496159434450252697048040605597880797823311414787893248666612189522602519429260836919962913209869794113296000816306376674954302812527867220752492344470423561307092584239993488756716175138184499544664937433899542759384515676113735514588230031609101556234854499715995928857472148206971001932342336060353286839633276235611562162565712696819627689178593016161123299413604553583322603827381231776755046374570842026539429706676720568394464571367783059431253834150371130258510179169994298007519110339347292410076796216566662959771941861659933148806877124719022996888615892328340481415141316222137384955351259731815952492891582829741862111319472902726268029556638170043244508576242775815876122938974382770699499566597008320409171271669733566053541736961655595978311929647278256157455652062375814598552022093338934670997790460863815369722244336008561965288300085122488906478903401219304669817160780484806058396091361821093633589809276037937737693176016323144488469807123710916945849960750056869684361276760568551515398053933490580686926391476778759052438756309954432421189089775338829042312723729577384677965919810991453247042808830587592308246049548216188393408025281799315255835508845610818688875821117391960325926123492819479384037805632680712511143448803105402205734504586444737126065615410620268333945805667303795853057919863751974741864791315028710946842416862641216484355543718642179721157664220305099347118719586939997421141615332020188947690571642122198512873331284026894843211012591488056078603731801947568147906075746823263153573201406305451219707255642249324615180424252429584511110874151429745456172857189609315313061245110617358414338130423325601871866104131970214211974317067235139542207823864523796670944446975270455900701407146490380062717734860767840643761978857690104570060506327784907584933420889367522771010618307791619460536127053781440587275224625868320278957600250271177865799137769116524149342085881454773893801838904817739488732856048237418459931026409612118158075750384239332639991930989830375481307501221372224971980729217265845283157615291408536330130219463894611358265738545129457292726695674454139937225285596618722104196657246486713868720879889825518498569645261308112526352831548652335940223917598921822196936689101716678239387778409910298157794670885817185577550488098518748622449490322967154373481943410731899979074253032224759252862403674689622191157646755687648790577154312993119651584702985195600795641564341330975544975747999880415676741379964811720528868386656886604778260353235564434761240393118154762404921181435868211571877333098369319784792997872087884282099625841778073701261978614837191588179394995896043717741754460788181614560584608005492194265597716768457693397624600416555455122730381536814721321257386695082881065052653106415075328976811013794607768590381492925776063720262124720789717154228341754122719309175138898216127020998858291428076387254834265265823591538252165284652659536865053654821599574150961484857404060866382261813429780997905079721204475787291845962205387425653492265827038195089038995939476392670565668187274531281921760749368338830822311609571155699627970262315867239754624180062285519759995252485702264072957353307125121086913538709065290127274066322341264747431669297198846082691959334254526593515656583179702870023086946142485871383400803823654542929517350783019855194324026530497159322170629545647252072502421396694083310088052482043751314236918896540074357902446184579417175483099736757256516992503602133484778611504787169430303783367041562961473538813202033226460519548733748361317993910446364315553975628620528945367869670777406589211207583474614160167579319696077743663304530275377881679306387945442359933047092851471296642846083524129308532253842603628437704468847840264432562787154223882450284045500176923128863581252816293220525543238257383479506841123742023813370967624407494090631281453690938228443338731615142018690591683714174640316232416325662892994733509240433601587862893593519490879814558809365939475868254374715244855044620643998822284048880892431299557929103049624164718766045619477410200902818540603510191276092949143329068137406642854158095220011151001218974677381699156505403531728073402020986732696648287475446194717357500615892527662910315271221158068760819011733350213854212119324321676388953414541021586714822219512953957874870751606012322702037978544872775009455169008503274967707046478592696946313103255303523180029803826227130388401066102431511370646372599692837428782943630080513798015654093764445536540148471106653873963637693078535668619786767780407167457098706315545691903544782336771588926950089025939860487061617877042282566770284889039730112345595983635499668843287094509984640935994353688970786894253110998803899613977186082071839714266495674809702422236442857099879805517872621477700985426327717941704021582691622923570051859001423618655328882167086770917912974725599010898733800142770812822999834928847970640307942863519627125831037183949550067123640480249289441157404077563330070218948702209017956402785199157766963047974441201627501846093453655663899254454014696825454059371396997975444652447866745935891213794011566239565363049354275594717128838610387863112121922237000201448066084921064217416412130453895326268375572304348747142178836696301211667441290815081958780243503146406194915744291381786561937155247542965650842768955296645957011009144798770112024291866474746841895450736719553967435782856965331844840711912967314818718105512397565344440835359939446739977393065285163656656064218520384490021194813980063551829975022864149679530220684965162672626911827061774722159138639362061778616541428626409507227151813419358661550559718448734460799522732869081378024787589551582814756379654884718725526643788650779768798446103361135058804591156141737519684609624389653716075389208441654481813935939744688788416284107542322662098194473381321359595291593066222072973391691024861785201473069222975150468950585451251499499687353005649305001449930438872492193055262800958808737780514475202563948269648604850216105833631078114367000417391066847077401528657592765276775940396131772700118328523911113760800036266517155142774133913801794576595131746895658961226059240276455225071382830331202102125011057095814501317823618892889791607123946582756735634921680043313535187890126388469691391757766221174779905857587354805232431343541035862714283378427528389243284677457290813175050051618359001358203115036072297089618149218318076155552130095555514004506521355806147285866941441678468163693249172893575098071520351447161896385892012370841867632810731947104462203049397882761647071800793014266114881375160215352226027216150971230716936411394636771802297365300481756381502265797704989595813484422233677271230889517345968753339059217508645425136124843928231790185140265504234123100489192341263285536482335479953883511449170563950903790727804839649840272383735405208377938746877514882178691170794260955806032284439717293127198336296310697280228414968535799075369279915074487263626656273176115486996730975627722932707858229444430068653558148560083366303965400950004789426003781451694313535948273248321546062148190804156459283745453594788637067521955607790823838939241496059167918349622347599902605032699604745179727270069084381292563022198491303235088411391356173851027614310623703780706745724499179758558011437217484678006228678109507063536115209460872766360914875665756751095816730585639929715273641639979930416717664843239044328614346389099210717535328347770370001910000935632749029140083325979184489341429120193001160329137595570277717747819696866472153364613128540537053641802912687473007999754944732875690038610927604347634237263715096379348860985356246461869097788446586645471984829768243918496409053992328338976109434810036444532368023211824416502179176405973143976095717001567522713954052042955637636538425089964347723284842990976875307495054611736733530010117813342750095112399060314012362697239629405350890317531705096911832575474194523053295863498744816725150446379593851444354351913845251623730972645676722051846641641388861807674792995529800433177937117311483372338263211724250677180447451029561015100961282283290901497054912437426057221895672690265467518458929424157529135158199499578297897059816241302310099502939813602162383173466913234439164721014313890157008755825950653282546741247017578600000524296303984190711947935031101663599016843659808368579886963950687535380444304691114082574588261516508641027510610785038846737699911942956129912359944688457757426738398920438844720610073185603349223674161463313984966399829566935000462848583283868918017772123949975489847706099346236562457748881118801587060569440992157387187793623882844557521156311357839422337132907041104877234608001613101278744569522400576028995912677371703380227794570016533815815642299721141255355957626407759475866792327300032425533862507254227123082095774557820059464275788091641674350935900428393458483067563701598100609315293831198818916720301785406217829199657080774109717885463638392652123827143668266746959145536556246424955938022044155122270587702600380347091602428490743849288889423191353631961775632618391790848403493913958085781671136894693193674741933563324576887121356428764994033815665943914849262558914162385281128403231039731842711930768130895626156644363921862603674642731778151492586260721785223660494045815907937591915256371071584194278180687806574768750475523069481542360920448619131949588425970861962826544403565245526977943108858576883854873723138183224782607328945098491161261445552875273866600167266865205608865625509859330466985110364327604011406913339440883012952087525260731315042739264902172183594603126369416150577391263019227141935018923470631940060300982550266514631246175599984355966353524931166719871498576676720805233609833990923264159600273596617288946524341481682640988612124223118174364693488385007800898544154662147411668130578658638164514456968940212859762405227652589251925242627772737303348662890382409803671678228289646836932077168392907732185420614345072774473306023938748557632608476785019325637960880877430002878203207388197192225093355015151335829996152287889710547526803700504646865589825178263966458427970819026490289435258919838203483092534165138595456461622726509919499810827704565767990330285265772178741928755158212337961602102087415684801386320255206325685156675413338519948646636904134769986044479234060513576187263274843685281934784346089686595984695930559733588007051721627621420734667775204116311568126304646522698608004675391608580115119458614282676308158469018528378885989635657822033243991070093382890500621731578745401589263084813578926659740142185072213572275015357056486017396309457959684983824828813775265245228984640687109192367695340126335908770650226568852559360629033569849571261393995574819944845180837821070276987207555176387123867431477476618493010547488199900129187350222780758535879832695761928090417026892059818209149124704226705638747409247427079614527443077018391370609747133400934198970333538851447716891614134713448459133562613106104768774216100180059689961727820608158625430293713708822511669549029925620383896636178379989847157734188138508568567060377952347205549911319756144145227604435413071062288811389602444917621531122905893673907621727205309674418159840214538680086675227852234726023407972857876469020999304437094791546014482905635868974014713357183968413439845356651284927673778498389109545754181681686846775082259663978646704693176376459719192351605715063869626220703747088185980936261575766528942566056957805816587447858798492423512086660861714950121346386089658962939527836641029776283455948569104521333210055231013418206094084458563270839886797638271783689203220333313260222496495425852070875769361224694023917857353676809333792579216309127207070359627368660026331530695105854136747768624874818639992468574117706980479259165107783560251262273491327940010135844003015866261079687219823690968070457455627821044116038351894174611278366045772454850696379213608674812296116723270074744549433863685683723722110009203027128545691620177207037686193609093174379214787442477106647338487602319666941411794185569542319990318869209367397435113673235912091662477010285620875830234045382124306167697027018157631954471496992595954765897478291177268957525577901449625736022398479836162382506466932223801497234279447346719837595229002987772006753749812160351395724116510103706961693014635414841502752091601190398805966289642799787467978680299333498131648867593122991554469994970055847861393712219684435321514969249267573871278991716318825316658355765503586116283406420649406751622863140239817028909715979881102016417850158444874603664982337178336311083927393561340548918555899710114829683676149771267516138556259331099554510397934496335141364275464843577372336089703258467990013060988364136926406626497286802848372325596708223312040991391363689740403781472572364413202017818776915248726731456219789318516338022384530037019172600947965174751251471459749235311179489362685593944808281635318998430874901876485068349465803667827898408068605681764980482946958759169777177160634608379306563648226714101885503060622476254981258828662853432495819620044428944117222464349044642870146973967412453503870934993953032126351604390275362577721999681614920237992107987993710215500921420584767780494256155760138940834365620835982994506576997395996012016810250726788642019240892581493494142666481452833791301414391083286225952413129126040418265632650711527385243727760702609339305045927267111290336746237332747138649170453477011099722124510860374232661621084769208211942862908345238217388736236844641906537629925973192975450440902091703650138408663522549855934247781583164796879809645426979675167675584159516481589881820230737986357943410121707845434952553933666406637700597004629340605623838436416064777160485162588531567490127309163798429418482591695835490075925245262634615756194517501545357071215731151688401832350855487395015033600399810285007294778327282341149821342733229448069553802269453783050188150987808803937934467750595349516941741833630839685702379061000496037847682634928814378622759749876362532958836630161024982079377084690882215387884773983040448524776905918036118163425276704842819724198607454631550275696843965862235360117351711154700125406366443776293654180611913548432743907534641245065118685582975157511014802389523202178882290713234299391278908992133883078401565192332036823649852594374160464422408952729555730633019971685840457521429228877075621935178708690663062678509274795904924503039443003851826670603385840304250932101993125996440184008837952311334324585915857127047424685608344290373169759720015587558192917065213587947937991659138178285167600487079439948990923846887247979442223753799474035521822275591942828935154646241447790581038198190465867724857086200784686509699830033835635172617605039011551773280562809717627129858416690177313061865803214742647567518627639045314270408187996138174990707608117644021125615385744825407356848640636556560626017943807155222039690275488880517913960278543200693131006172365224281344970895031186998754109976080249874984440596504141879742887641140249116107782004340673782054179463597145616158155986520747252591603621974601712676838105976349295843786752754034858738763023097936484168398350566826483169819114978909731519652470011454758224204744163427813004323426229084886772583556088157654104055535840196256069099579243801538873307149212644176124181875824086790383457538176692462897608499109898350356982414289727433745552774570481809570627710862247987560473589587249649185210848468757287739121912481959309316852976949371357663133006079002015035155720998547751739782542465376320659688051476308923720157971377701840542113450026826223360990763148885108676447694003495219730933672357430689771722299129095654214537722207925615431913289313507278772774959588054623586692733981964451369202600078347511880933210771738317991747358203743170578451367095911023828145727116925879590944216034533982631536375773867316309118092422573927628723332182766542174798397304762014980340640035112083016097564234872246289674593056457056966174868195291050992866612287224160515350730687183722510213198810778023593149779249233918807486190041211177865147305223948539352216884980931276028039593225433451342178851814144733595531737564118480425696454000688747644652636568245193236386074936821973426395920518300228772325150563268960191871176875478381587022909214854430696185545845857454522425092024810147695144414229719361020343813380238044519304092649833045194663393474345442588362214618410018810711988443724572410519031651733090386899894482497132016531847648558103543043704644051319431504089391536276904356451946645493852035069413293248345677665053151850832840593161390508342875235075707700026705140622136155640430813856866745204524295298707218838287527816215896788092140910779357838800514681685449402065959731003315378860345939766828761746645056694692210981401049644143313773287826597512287233875230804114668981048176875744737424333878766265247233693846691701062702049445435169519430576249836764486533217059231400644046002306885099066506942132943533519829772011531266224133197215019925011070425730109302925686860600182476580428222809816305088519304668594035806037952115938961727331814939405394617348214367427547310032235228372249572740551312397507272045122558316379659460810239028612321142698373038268183413324137047225967275354113521604640832608512878474407809219111663212586662364674575382966114602967272526749215911371239792999485752829012263508993514166717043506292432685548752268647626931754194578314142087071957390857076005094107452422016539497941064821249036200994315279998394803944508830478424141658692186041285520278446544153929067397737344344785624543030044477980681689230886298076796812047766612963216232927730659482944852133958246251041813351490815596383018670497326740209936316704539116305833862720633251571569814604879226751829995710308862337943255173104485472803757892596454718105416497850025400874371561131369623583281996755383208512359604382460570916798943079924495390181176430109516451330243762906802483076437593417495846277187778126909927770599577308087197449508694699700465247404773674222591083662709672955305285689028968194010111821782191653686876096499141429208186028220710799207308963022340321727248097234790610055184641567532723013549261295185196007995329377760202010130899642728654430435345756449786091579161690052916918136231739229232170928367255735176212830352955880555515946328765364307710249065959316830759891961977893415592078316946851607793236637279533146056422315460710080955675740481869187172834752991296851197655147376758022263781136948720007451373095856290808929903366259083747906204292962810956190858367233388097801841110905237183099884755920899629597554789386488868183703236448347551888710869624837577025036860842141036135216275977407568656470131053605608946468069855287263785700515716818262555182019975234549180141096508902269702851159284601686170408896568670806422534899452240475424480843489425287808514772744814659488199324863832854558004841409328881466201062890653184300898636750845308519400162512910882152144138977444373728727673917953950159673307913592668639447676817227610480520999540216392915597535865764980247570937041701829425902415931974600582393402429705910407707598617349661392610381251522802368193131798566808504863858902938791403410888958235303948809972196313117281849109515759258836297865852441661482991806712710278273086598799436811143789630919406088488379420758432340839473795430275460588455217723332603373872902199437174472625425138275993743956963641437576820038976327885814524268782212825737674575033653715787622752484638415837036329170724378875083396589073338885625607452440543575999490610391767571882217535968656631116679862566522572767511034817838743392008321414582546263270155676426233863409203680614234699517923875501555064493568719082034240832535627463833281572664899992682068305098219620839562121326453806077859156465030671766195508205959361527512563433928394937720806338374631315469343204731180147646991890757422704473800022892390033973146848541840557585060422502236009336958165115432715960953742734409725782807945589318141578508278443686071945114991046827682263723843622650410524055725160128581705239372555258651485588767938414284709916237817150232778820941222946354263945571250042252962024212534718557265016740466190822331944416283839900533466722276816463330107572281163325591289075835303766211012211262632942669167420414606496128404797886065149351509167593788740243063054680877566465596723370595527795735992443216782925874887868581835223665926228227937810286179732105583006850147890318713542108415129494000515317929231548236112684330118358493549848812677563595683086528661889581001555792637241898592047019783879392668263226304101503826673433375789874618586432125882907704047942868499572599070456063806028816863657923999701078696693786204783621500871433905963377864744087434160553663017069158666731459490164031923635189796136678973628917659089673556774198270298762068707638452153178602889661196298204334472925816396994007172389090906697852391485761679136234653551068539639545287597010127517476074746232411725060255230055072986509126728434595963716472497710136221514602498036843479775374937924370852601376455887048020732447722851138720748450286180964798731001749193163615325001544512241929523663328464429559614301979210896483053145741384277923537859160585147100443298029615256014310121905879214427057464215945174645899702136854800113668168990041211747150768315835340688668647883415235471387257492878029187679929083030208984060555481184401116382326674603896518979427690330216122211959475607213553037014970033524078122762971377203622905006208019531215056997093757935952328982287525266936798995388762046949409611813494256318037100723805141469903177551598930290843509308721577992811728873831642287075985032287129234947188781649357466455735540517674355877911346813364324170370729168881313306774093165660831169949293879470526198500568828733561007518824259772434389619589202832652619356989255496335561620132477468838510341938283751952506355975516683455778692668929264877662038365988814263417414141375804276542923766257855039594655893028250541704004298772001203145304540891330887100700015836316142466658247942074561867174511498498863489409836765220259146385177538184939545769835187126917034151515664986831118289868643924827907774923318483984515739325056562346506803903622852345916361443553023989098802441944987073309034541460472270795690827056203951315684926230539589034988112814922592854187528227283467980938262815920770640526841553852469138591679625657509037454726614680307749757941074739901871954443562170261888686799952947655174074568711906059032013941594919487253773930771732382335607987437758430092029090318488978830432145961243720084931461843235555873431238042388830241433792455847059963202899203690965503439061081932045743517854453165496598728637266723027190738351566726273546080443047531528106207504916749694654680426845397985070840525723910362309135710643809347329249093132318462282368341205957209013906176071675097493631055610779931878917279671387425059666352160371267531540642778277945538335209233662712473405005037294004144053734401161170903977729621212795295157519388553233311476629009804221355964105784745991802133884488809571074384803514449856056327096190192050710309608862421464165449299076816401618400093332952642650169312775942482132983515836453062675312168223142898617247431116070712859925028934643236782019785957748363213935989408961892575547475530184820513452386539728331814250146604815813120957883061185641955495039183360110466906540655044017598789263238251824276225070172141760320188671433275078687013611109045321412674882655932072291330361560767989830818241272274941658398051348637543850776390219160618467144610320208661821338486452969139384780277314959867661407042497712530956715718782961366897647927301401087792221584630303209862792930229096119642110182176167459017419941706776857607795204798213149671026220794531561772830396975511263669680349131483774043008943072633392159953393868305190030894674543384484586900491493506943326801865278084591863245222709906734480508348596601782794148585134393343531176266451476930346734015856642970216800048314259912674972240500687711507121624134134611525625168428160514158670385087138219728283810485614805034801506523290396194828803350787033458283243024851099976304254146824101483635764072320635857936125950030195935785203757128683465224957583772521117515993129515076954453317110263336330618706521560573317148762927970295741675899204390625461138081316788798853782100069699376501511490015424805683508715844086916477771133902970075629300910557454626280329120586377721325636446854685162917490936518688079489538599418112483035220495364457870344874540091278698829408062417293753573721997048036273443853089417789470061929312162684892976412220650473793265164169762327412624631204055893921843918721407597873667070450759406090667678019616680327245357807637757600896802497153380887551018987729889062420890929735712871642155260567149118638256001378895094477548889505690523892465541866123450522514183808937778728466453959066007213177309482669824159210657084978406413251754771072816048091870125769822741428266459103165730421214009590495948758636243311931923121877085489958085828726459660069616157279800600023964083551426171766786648165161666377973960634382625064741163278935746643399396399448866083249021870268220223674672338681965984077354410126791602124453244517550781096985796607923648097638024073796311275786765403970728647019316445062949629437072673376716619876039939900904239678929085441289315371104816442029860391590245246631331771307323630683708909722139901559867887762494619234672001180912839134606741455767535535177036456981885427596489948123911973906400410638051277884035089551207590511317309449561105457763377682365260267405350605309988529346549021611012752558552941603125094466074690870026464016580924171326091353010270891333217988361827588325503724732353515494968230860226502304590757830113182126826548540576386467342672260051296180688738790545192413249857687406823983465111174426300195156662676971756891339437291726537505151136659962774886842721304140582012725670104805490314912873597700189585616051287669992728618279898375058340354493713989989282803475916924207486284729621006853483034502336325215395647168157984662430368468771216614053416550837787394507835474612295053356753328993612541484836078761889995278681393568650112147793566780179596932553151816581672307118987981697758032291240170651331022768332566173899078465382343241811837584335168795875781414943090639153147104063340922024523880432918281392765666221214864691475299398810399330339487491269067622217722389721253038701548767880422270808545342963935556512792215915961289966859842199815779611381850541737449322042449578367806476046655423103128585575923505968729324740123121780529471908655622927441869637835331120391870285355958319384282513919812074419212186226370219589465230021557836648212646802712665113566118381557905737652284687932909276313795751041269684517925962427962523481944105744025676349409901206238543800935568148615570203596304789470739896804667353220918981715822253482233919161880771952510853153907944675132123513851011549559514295030442535627766928962088900165661994298953808255066055441278134765572427425683588357825683907319411614963034930003131205163161363684770137523839454498993205197999386511305080608311861992668030438584325698762491118891864388193892127403243976209198389528514318611980031520108704798034722088173773609492069132539102704343656378705185370262478986791931449315676930785652011602211052939111057558688149485355991841047625809142508881706263715662015124742112387231092689401456601809370080773722814242906168624345807926440566561785923558712129528499811469236350293651921443060554237067971559297258143677377365131377102776033827279801883706849433524733309996682849185554760469343952609170372904834749088186890691167683080520795039773890531327727524913529616022365049588595711329799834605206407086802221373027919206605229611922491318710590076383787615390110954307654960914995173095869718243498759778875462638722534143413329939180037738289776145342027482755817892432792707417988501983307909888329568718575447012281817113501540229786037120170152851987877938658662428654042632320840897852781578736402030901607569370366556987923628567283087624985599032107451003344969084898426751826199078415995055433382049355823695197955403719025292588869049334061418411464016388805859438763219078603494686898933144009187209621999273755068080862653345151227982378408789841013452251687393701296478516743908816648957401903972828828183291396894880242373311828773423301176603893079296201211482607192543206185741193348381689618606168356800299435546265487125300478114947945346275313437536990089260948393276225835249823558147513723049309450226203646444217568310784885322175405146108750150757726140853556771083694899231392763481969957888717040430328501763170732477220975682873203709060785289584613321590132057098360134008139689362698494313253396868186902658160473833356279202279025846290876807367524113491620246274606903140419957639647622022285210008746225552288042217416724830215663285639561521811932315637603240745998481261641436372471988472692840637156417646936884889521545376853512220398017693797460024852908004514199653136958558008340148136846660228920624272950555705382969694521010533326343944570120242174779025717184009587528885809524181749830233371345304744189383949730461255790222603039698971875364804050020165385994041784617825734574030858170118045177375877363219618960480496427425136484829478354119042083208392193278137350137879078886669373542992179714849053720127798118084527352573078751859902823994636066252555326341126126019049089937806042042849666177587862632204191234709680504088542303373274469743293000066527936731360463038076255464597796052190144543427306816433655266386691156261183110349059978922704017042672892331940321520904720351019939167495904998872831735767177834404817431342800918448465597678159716018199634163716082499709490984320126564327287302435191129537764644180387973791933282219537897002690876523550731269685772664852201348947100526569521888615761981759123751155073379114008789287086799220943323273998406775517024504879468659268002935965873137146486806545954013843870541998397647869943582494842313010452630270003857894188819523094805843801676341438107753506756070261772075238865738583835832362733407310192546242407341900538177918453443977662957444930430678156496635281773272895223619244318202065391564259412593401564911891887177146453387455671338520736326738357353019443463173162626081655812347869095330114655865534303436468924304652006818820532734175551234568736890028303026928244806900093352537046309882334557776398684932290725915043635003041628561037281515661036411316097074690760221064553655949118371650165642152222310816712487103298119191481242473583109430845381846045533422865275592793130984979420175168937564252326604187861811784904110431146316458741695185830847143028387423210482336973840407526898882602661787083037378667783830979533080295280753029864634875238312152380309839473097612456842213668175853900722745985831220190012768283149547387423263319921537988662343871306752870670065719123724213950678350035999206243025257491519315741973197366288423871444784551999355320631679950501069516878321332214906143726683217475304352888765390686605228479340733384523173406068155827625471982347659419574181012556578020508724614718254903502134278009863581495522723610068330047834107896572142257444683045765969751833627061430240574906149932567452870905190298554227448875211479790486376361293586994635626953899595191304193513582307749459046696312771869766598917436755095809790172842078379814485066341213451318801039785200679311400842420614771884990492479147040847967194066889577388087481939881182138249480188434986394393878996755514042018493545567792337117935113030716560541644258584426970142709851331472174201913705726487820897948950900534066267143501217472634277704996549602602524620860738751722783508165910061274560466582196551155429291144561559985236145462839353038026168978913568672918080315816063587753695430804748044407061700746711623046630919126451422508482425554832125654179093165242499919730648928070222201220551186993340138804234966487969993143879657449014388488243003887386232096983924072550208480418533751693095896382997035357319435491803217253408541280076243809428207412984007754473136102069591364234493274521054849396590704966825589853541391582929776436368999534935822764522297603747469542495650693107341257170099178184625508081984604215525014482785585556391184956167864182902173154935607059793597182610420941695762302110943525220860164628517395321637077553810470411228292532298480795330603897275714894302342371426563421479574432689368798065757814576304442457431363696323755342838295150135301525131093052152532203769981391881540833728477114581172102500570396011520836064111305332040744314643092466436364972387406306241854784269162994564125403179087127587268426117648014474813382907993582818399142441630971400155981969632758054660163665501706942477593454388117771228219932807498101503630460484801647128648478322783504136436102532328269919935220795124743334261246090120174259176723247860400042319870689003399761578490001401987069944445120068883308310998087220570902857235104604131215587894701284363895485182299894288993952827804921887277167240330230288219950927185490956604846475783566263740367464775630065509458714586980362057060834415618543135851430663578866469708596325472743535836585042836832119973369424808664624994671148215122910788345663215569011740416819026021537198654334413740849954330600942245116545304029172499038337790311365698924678516477686000695059767340631423665167886427321283673450972218582277511573782986093637949636552204193336431588854517287358694098224324713077321420115593654062767186800630144797491400308087394285776453547995627697649377453009661949263793042738817519441008777646184005275347356587488221013111691517460933513015267889208702463784961691323149297225983547715153596671737857259103454192597610483231748401826672940723528981488272065035585004323409208223078114735673375171574615861662165162318215305600399095026292343745215991186538444719462486059250799405900563819445737541460875474411477547344138030397773424077615835129593358640635685411594045415538688357484386904571517441935891039430348127981562459472791057238830767871538463927103699483200132617481031547193533106536724893787627144367585750075023961075697824553057751627872105627816340080499650919251154756459564867032470460495007528268265447027242555282225405660725839831580070578017902851342437440432068271217589015257885523852973125720261159792756391057939270600974867411154209223847500207201493978134268264265079837631312696652223543807300151240091394278174066991201056475010452773157380588817708496698120852840251649924235344277988146920655701675016818983107923276265768831011754965091652909045599941139821240004296784863686200374396204750866687048996901272463139051242798664062460210601543491231633905151290905224311611035653405208980950556835444222900244820242155025959926550950058519100599809273273995334212775402046089213775362052932233410094585617430421088446361478010944912755571255717725108211568990707037483407623720316672440335199464263052549969256585461972319713454387321563959490655380350985159643568104210149868242523757212368249211852063801218718063068242532049857589620751144582468457709669844097183674933931720070468267678602097001462373746587629243309666410314178769591250751107927886635091407706907085130692154027652259461356686675202593511330060637181379506742713068458436398779284265974704880842856304642222998331156638628119021650258404329698606135539386024945160024411163998950106773438556735223253967058633105005563913993012103142684358696271365749597422447367383471958307640917997883690285703402952121714172274938440288715261938992582276688005237685435326929993963536075771191474953892372366156206054798766971161208335628300444867061009898055195473370224778067089424101946668544164308477193424490920948927737062001709437847541059557572526050960728341977289949070415809941813752446432345867814059552028799473570566925888305581241057943236780370445837942066291048380074073933188307022102657512663765592895752072832896709917855675351714065233114357669862385634360058108910084098566550863580158714892316022277279211378888393542987082862711550756522184651566875123828826594317505119174484906439395564371719052966376808576186666712260301833091396852228121857729864111004415019243407599278658878636794951136690410738704182575413781622401603122484081331492032946925656458164700674628683018775164918035102498329667592787474037695522401794970710900450730692972059594966211866387790612177339090782067210248977260614595142755674446255649874737980256385949448431251204688077364945052406087113696873394239864080122667069615728054642520851453386523736168360900532100247454750420411071969316062204988751992271304729258283847630441158488705611478540125581021923288359652424408959668598630718005197631812254621767092062290063263411859212686011312179001990774617239309981420862669817940287829226123957383419392767351261499719474921943215430038398402528268873881219498189185390766611399018178207491354420751307711913266780312549746155226004493685807356351333193082179106266929882531800032117249111752195951427219166088623400415766586904611425290389625616096214748743947336348008949391901561385650723136624145835665279455976538277251223445378011348986207010003366230917914459204685836530379276943907348694071922002471633399640434495220917411499646951625368990390026320065658671621441989713799716370072832144027667497530639065602797309001520193504917607802486907051783921932128650470550665356194730702118823198507200370242169446979594535780154180828818539945314935932490823747984072507781467491524181069991312797693009552656883944238258766536946594984055418379715069671409302456711320953213554769072572090774752950262865941353588741968115136689634806085320822248384814863749826602339668320173850891031145294950552754839555082032945393949968634971384428660188966017732388869321207977522387069655477994791253346058370644907687401904572678982976553248718914857255041892301475021114020955572490656646903362724316229268469301213110620670087327128248660582645726879261626670033990044734436017879434202961763933017896757484197409027750296360117131466017994627652494762597260859925294393495966699970173196571369422542092054298475683715354871518997632438262744163503143323313375093629451544114842569496576232166601978418095892760583652699731776041579667056346946657510042102484235047053893334925677550901434678815915012018956654551099819128820754386625112392835923548162822042157849113739257481099449784825635202692543852732511048532434451101481832847268020258041779403109355354551813465384990985056392656501726076541408954860400787834113332572533909231407513222403320513096399743911838645557744823112936793268193422484840452758850440213831112211068737818192907792150923426275016848683065603371673279592336124711353301881648898046005299079413377230221948873513524593098150926892641382229640203187420431024309943986552796657365123886765888380620398845034264097419095334211837560466812358155913894719643210893190971527316507649225785652085258475570686704448652897614313286167223134860287476750621150911848244481864012586332517300769419509115918882155809904993205406897444094525460817184229130157615816005273098656720716287687305200075575490392880437271194369168864025024775384588024048618245085854742376075257394436712432190053942063209276811775146194523297158371283846590246383285011155682875708804390845745826458892351545050170187493208330309015207908100667435663672889397214910553716508281516540488182307381264638938417489331201073369931806556247531949044831889808724925512709334567568994706122549644529239331823346646737785308108843581605265310921300100652590222629671029638633150848941663277205123893746737383149206044361542492546661741616461566525445265614538077245149887425654671072022618801968057793921649047698295894473602893235928969007424068234761239037618087342553829970781270353592100236359229271709766391080854055495807980019946673669906972301328757642947971323335514994071083069808626014936955447910704738540634999980219980787845363442239810974020788466270607280806772262047505310546097027281316613332853696845432664473768548889681099031362824480504074157373153960338137622485575953745070989600105206982237716745717424367853479674226630887983173914496718666844948687175270538025186396006045904301225498521854350985432241056396351645030066020866123011811370894168688580646658495293036946475730334185352854128924818684506392745209737616586966582655553208769933668111318871989713042972975146932148454181352062075517986041943993085095557636558789268714836879842495940545558415957135362496506186954939930471611165647642063892554172565709600505197432156250457649726121884656746063734864795248800152785011534180180737409498079611812337783901396442246995987869838320945267173454310434731024764632995517448184935592117030295804471777175568941401988271899706447049330904609643893692606186422600875892272937104995955028322712447646576513427996603536730467842682084770912119564412712291928904240100670921796653047587067594844595993289311035102604828372249261629259593070608974254197819676590988243885123405033133986621653356725229790748943004539448191405919264570823663760573863924607646622048674469044778866898423283234603543906942337286541157587593374425968070713977817276971970056278319630002686954585693587985602654485897468856972727661374585185534499508857969269793380222513433450971584474468584850647712723394115882586185260237848672239193538119632286761066539451436358080864540466231283207520508864257620082023068768995588564359450690737482862584289770392830845760311015683933675335264878568814454960251037081876403321090402489014922733667677209009956858691051419337999734745934322079448962048439212011822064385365324127150939212350172096069156045819006202982165655928173129702941387592087101182137574680648082215373741724571690339905380055090551764815189749836735068330465785255461389407073827396945804094484332396131797869002623501161061175738077231218456389748141867125146616452358908992034852970577284345533406938177424388917525170880203083776183306344637854556611183627717923486832769192440597518013051785723929063652224080559243144188320996315895285196118485069091273864750013609455366527227809160183374812775444279276060977520992877840016561838690147203527433491878868257384489708031258552592852427312570486584998727909138996438669878074416001613849040764725156849646926530926974876897610629924681281649718717731470140954230242615312589919426612925260983622193587715540653096838655978375515120204202566594035277121246086175358627964775907923987519892993024721373228808123388018779079301117779363844855875154485666113999123419685320111249314954928653872524669002865163152311163208271090509649535185642113122169608574860798260933159539245876072709694391672664071479936559824936353283123980514962488622230463778410770049143896480296232346651676937991681689064682581393305080693409008464844257272504229689073368442946578466963459189777260616769561309091914887915910977331250917546075787752790156162563201209520201788821681395617078032157300950134820130133730356793412399785572045169229372338732529505305125280884308638655152048151806657262964394212263163721243199241274076132955886638463935951234712991718303489160489776750077983108060502012938264194614135319703792225507099034656402836377474430849913767686309556515607620424760461914361226070442802584571426778405913862343917192114629210185569712468686625381233757629882596377447072416958780480670652199325068351551793336557877608200240077534173524489115537105168846306363435533910704299376247362262541167108125331933834867059319610620861150078326152938736278260927758231017381396515596264228070757574930911899105107263669843377603952443564102145940801928709318966134551065215796732516862298486413693535383701430127312005734616154239030438332576397660090334557691883704450085288071598399617305131653871233861520261588812021768226464823559929706396846585104393308507271078419938213062445947942570516669906430155643481275080062827018666895352927183879173295006570883399895034372338519621593168189847543981287824809867846313752062748634850464980012970025652032489482369447954595126784774734023226968769852562461334373123594341179331458233234175394731876568223971940717032118311690385553974558150540648298176392363744257578818240634496322694788045490644234881140985875874634905178966680131934810631544559418063704225741523207244071438623919430582213343321914543365374028240714587971354513394341856716684671804970839635906142861580796396952651492659890896751443234778717140895170026759121738899120089168745278796373298877456730485460461979032036947099856681626577597612714505766686678142891964470097783673804897502052017208944796958954409546894724805870604789631925369271721477904428826349638419672784157390641047432304949560846964611054891362689033836292982125403537045017054967423256847309795892884391946500828520781593650282854255598233641701886067336124766164443197120392542383237932138969606463478824125243220151724291064375398680714230178773273168729343492819970785578090224491893454986735311980441034701217601241086753675259423193034792011687184751232670925042874211937132796099137558208722727707090074216455625118167572754833212610603682535483812729707271293257602485395279669277806349437091192648670904015647758885895457925030391710700816690040005849326564416118653280660288421924601986023228408179948266582181278298321865785544732201044908443109579516694314688236602666243422361140382846097985785598691100046880553846102094449702575796750137218384590898583282831688062564165038837332460789233176114952291385432083175940954467187877332371665434150678216392398328448549989362700908916707022525444705366454049298602975090868128664275889588070370694516147204701523740942485387617039809482864887030929032794194373053673154051329153813217861948759992821033294752506990464626728553682133779378632982114066435575710107352891206265706820012338342187634768129981555507173353044089655884662925110458693939984158918142100471670747463439123874008056418305378336824103738040310761936002078488553372269341778638569235787069856047835309396485900095261042565954899088732905540189629341589886567622413840098935821388551718029342900431765710132282885811020304821805354293764623719783593852131314794643130959002987067816009643707051067640340190577448988443408640850326079492020881253637529920044452453559358713086000396245987371358689082491838898101038330463638751326382944815740097841882364100331000536572996034634065850142259499601891613100655146690005041687954574515732840491278576689716252750355570789001146368149216491729135587809390400733273525246517113454857108601937700886156443248897622208533306196113290977452046421363017937828003091247788079019399618204818922251307593070619866243213588129265480757207356592167142047386671709819959116478255244625513685662771308590034338263189357658363906838699538705397500181398741563377562675331397599471754836033090917318169435331214697237665604105333531499598484387402892157204476229762399274391153351429606777069754335088506401155782109356206676458276227792771521126075591687209549562754334209794887543485425756492387932669813276759202969988620639813019694951562671240841927291745526812087056541038240127790978706675382475307729283837073370261188316946043874005252136760327057436888129281438576109187061862830312408908404604613163999023759894966422613522817275780084123276752844424763797575673666335681869654970795810336568731138537993230852023057706903001120528945073860807228220662953418013398485009999781928305762406432909824358736814891877953840903859170653337124466995151059427333464614729928866998339371570197292190845784967949582028962932797634765948607636169730157513108142931268795173084857255854332982982813346973698258975694807192356193785002464632722346382299525738661563072858764560781059435641011998223674355828156584088031433835244170824119100353081427233413906249982980971558455014963950844726763270132250216231456588147607404967043875330625695024117815065364616649983180598398584024398473519586666247997493803911610749497846729399252281757651508049057513116083406808221367758720539855729731474688872660148157528317704061519734394953981886328862581777096727512150946180653312911610255618999291488909451383270171614784364926410520623431124854189625102079249386159388696661500637676700880401187611895954629120686562628934101475226427272364258719248249405161921024737834113461720630809868741958649484136838219219647829969628835739878606483626990108654181526914954459436474502962171470840969484051439831585402634927256239830860129171858186896526396950343442092502499568191537090026437119035826115562205830420744951596929293102421854498087867458542158506114214633374827418182881443330311280910545256880539782688795357027536659369702749962777665327610624984040356654049961562308227276774232491862580403415654480870279885319834573680867009854578148233151104453779317472524390754285320019014587380103939315750873939907233917705421553229894176058144390852900277011703236513539180695473437190046737344965331043365475129772524537649474967316755461537834950519027436529596528043509906920980555346066914032640149736636612083689367047861686317347298619344666189390021912091297232671868549098310815046453228689721534790505447027280415461245226042687331688856587359241298879872511865195728158870423061887180358777031884409471488737502333193039763619279281684484173042221526818965740858900006470975206584473387100794268055188450581202379638605248496022560566313413668632054997785753369418334065818942799977712889220341247500114614754139483228922374415064729851598947376341542116248439235634365526093401488952663213172589835605069103727100863381866251949542649546999465257431862194310312143197043345750234281244598159587236213258655989970964602890332654037455057713169175044595648277102018640907590608722405996185122293825918077787130551507701020959216948662228366988087407036897630227751764652395045853618078726373271181044875338706112745318153724812781091225284036959332259206212260647555132848744068829474805121592702755733910786963209405716418847326284040237964345908648110780740791543117357645432288907410223961566218203758309781062267160107034484108983085113187632933588386914006067600989806369826798720610426197174947734927389974265756011206775895381231441465830094041515796608903146282596083976020520563807819648510134700919348534217369825203167157423855284495509250025394579727285752718582555837288948872852115450413953277001182158251876109097528411636785088989331296353087591319638271217658804120739997218546512495462375995145941059751442687005556848785666236615989975930478313103822125083985979144839877790921169801888454071468492915026261431536307170622767297435698200292512580846895578941847966452110771939402980928461368943909509288592008432010598759421033847964749846499094323015991815494532943631996555036062762156612858503131987752497768909702724138725477113031145545496203807769511628269191812894441179806524403827324556874078641475088642631833159682153816177231715918665407824803668209761405462076958145955684847251757111285556373365994761470775982833188819025453638347761504895399189904880307773103114436074802666367031435601323091739833693926243454034454787664485267018894279982638084188541400891328018112151840530873172251325728851109889813618756177274699502200740745634514357118394704838173355253630237959984785478061367054072186125362683044659908076174981796875119425592049692350255182842978897199527069736978530937917906496921113989847789693687813481947142761075219446414687107083985631006349764633454303773513342035567761762554139324434324687434713982240363915810395792801435974824464359794120751511658046654402155862849789131017530301285720455403633446296237132173919459459283744721106348850693761520449103857073344001494531692037074849707869045202614210917821368697068703955910104830386960662796125417430529705895911384338598717607493096497712968235200276180321655126849337706812617567395780255123776273901603075525296218075713852900302488234408812662098906946963953448111145158511971015905435253079121639597074144131452882404629547415499929866340590602073668523169233788311948206377208341543133721232624861234436712585470290320092292094166369202023287829012912306831741723497623834421313853217348129913856460630364220542987006325404219287521731639722579604424460921774116500638836572858060937788212192749736742833588585288737971780066100774480131967545497751305790865680651968617561384799767112799876515614935273398771022993420062723814725902574829984842766020014472540631090590825541869303807203701164452778659218497657590717029659623872455688309575605980930559720051142819606745356843956560415986474976234038640060761146393710404291865013526771119842326333961483266998666358682240011122163007812149372845077497076480874366165052931981716542085387608427394867675392929307416852601044938309219042946658888451757324145506076554178527579582298858573470435483426558853706648655561183690295381755562781920146531288140409315120582579512408908126474425192344058874910038245139825063445486455703143219847654938540639564739605851559451584670227702276728200490737233483043416593449038132006009216291527463515405661878184641721209277454456157651088899701610106589619196943784013463298626186844976729386587838522206227389587783713777276282097532565591547500014478297643370682227495907466665089226287057107198585399960161916609197401104420288856231333813167226720783388279366567919371080997926303335504909456896551634739752163740526162777377875832698160415821121531940108837089253247844729622259176461278816996608904691030545308827642205099004749847524466089687178554851685744738041552463857744052121492474650880313050662884575437297363470237126033782600154813265182104976421671255280805024800521658484935928159015364262370150690093736162663549824429410791056230464073817696064244521993636122624744805195452272375012863732049681681263655214823397113918255271423955803367773060853159371008882052177574431379464917023935333426845918479214842813584669040754673212823987359730347953624755805600264399008404670369930489800286084457010431417806880953052640494466894439816493990997611397541158662365992086433615964369115482886452798251787557092611100957524076341451344982815580133912703943893278282408573385431667907646834997133046248621530867352782545862202684561659827139301827483709607570640794003409496915156721055874051830767363128499899841094752139572838528148777229795201054002593886317022248568265437880086220295415464417791541172546127663445841332965442172271274926296009032659828063618963634369287848386725908312768017293115777180614298461776242259866194903341832573192016811776478274906464882682828501543903374426770867411874441317736472189949123690969452175966191271570840898920344246985310033597809965637130774357534556129201430751892633603564837866101635341238676474618443963387071823142120034919177604540763824665135658391125982603306816852680007744165897140793353130897794314537883818556952490655806927620271341686993906827474565885715017670039991008919234631641565218868302365567836270807930763511250443148840705556408382298558263973588489967868043609748906508616405928984067952910493479524054006277082228323041477822286972678479977725565122808142618445006519676964285184202634463138519420540337114943503170519341314331977946635179156102798054244028360130357551059229067712468359313568351515233363759654174542360949306081696514662395190589871970999484553884031836848977965956980433650451325554186997216287250187962532351342585313966013509930100443265095402994905348223751416099834388538253677661416047830098534208341411579327688199157260980026557485908927577845330701601312205332688782607542441634504104178988482586212473781498980462558395016737549711773217045232202991841522722491185432555870210034087721969735954656243213362920074364183048515689176198286259250286490661351246189155408052711271733289790427811501272155168221650946235048414707999766029134614481499291748091802083627870413241368200588421237777355895388858414480242297729347324630760978054995002240190964101950729075203923130891481693592240457051844656223954771123800499407193165350257022964253460787556866230771788977545071536273432056722837974997456864488324404605342887574186208757552675977419440425162627403103605896289523253800888773010613664433225778078929530069310363197126926026586977075251502170723225352920176860611274436125764298167066587115626779473875721346197899264273087773682331175598728265941195911556889792065263920446493610575136436549123948588575320937218977415313590758630416969292975701868374004768074653489400396434043116028182912677098848804602602908313800520897121818931445949383546917077761404792602001635642156612182163193953259171219143263698797251635513496915423253772642501884521284009871550977559267206375579639271308414994968269162332996799622035913566979993923095119212657386395435474449362834570421492222128649768074682790632187811234986139781162257194553590783367073476889937350214320539494357233001176673703658562307623865616647025804888234098852657941224166434353802458954152971952886278914596637994005871103458797321680860192165052891936865029323555298299100345061957335156912673078791411032453102960493368044625069882431136198385487861293387235528099036886294110022056975144726480820322643198174948037772496364488760532767727545489601368111969378400670403451656777193579292197946987475272954428302337332212051081550747569183190278100263901484241042370592075105173314540007508832064756891257189312903135285892727020443834711778608314030179121442481513175349520032277861208389862192148621859194160653792133549722135961309062277955406577019988700612984175886762616407752708548255296667152558808132420659629686138737886954858633158357022320380372660892806115501925967391145345364834874794140968772752627425475528854638755262438092490876243997135622736668355144365078324746137775789602962288983073473331608862679118836696981465288632943900469143991869677699943400615111075628400848354801629538645097555883998821572708794962193441127229733214025451661881726976918223101686099407307027535422193792495097043050116375968598497523789280796406503282917909250789106118761496059747265193020989241882632295595522363896291051600518006211649588104609303391801819919518593261559300379929470299205789024144960370203181587587314791423785875824179672437083705477117548067137848550178223137954526354333907928381660790664900382794957475846518323475047115961739623788260161566516572509545352981002916750706264134147856460274827860755000674823132850840416240423780708077915901693346264849736143952891201436900607984632221568459798292805559662836595606425375981889371643697472685410077032770105724724626390900277389598880467284725815893547799886868348154621271551523724599404916396979273898858233231024216278601081780192651041867110654072010204328242082236955337216342508738405779265174143966084816996481927670882291389974456137921656709776385355893135394584515400621872258955640421657217306324432530472673175144212330137935933033169362627876735999722883724342703171845625433644606596245361488995768770729021946970748962214359710203279946114472778856865814799478121634651519522241518007500510622610920845573664480509744591464927350820687079295085205674146210234947533752652750374481836780583517661981293728992379331468870188964803410780277021823071059505568891979304345490755127710556409331968494612948296555086450524340845355380487666529025571716421627839350868922579173054302851553305264518424685166780951585010736399244548262955581034927470248986573461967638912430441272721466627202627068595175645739474678023146679493689593896892055495126415682573011824714564520926960624160652272071476391762609527928344744793130845945618760025645213252704651626579187439953605785829638206655718741065326878963970848521675781099732341101147064070239228636868819920020133725877359470993820483149188426995971841809249491679844974579327558011668320463618954074370156058405302204421870501559228926756012667685157296013290971602824544752594815501618192629718125876447436804339633319113919794507587052309530962405586946735220489922858035949801783393073007120792012594593150909447732661010658648067813026954875927129652612704339056800543142278441667901121377430797219017107105657699438626668397822475199090748411183631724227511241917402492556794707272431922544502272597725205284360348405818786509366220607689622515953462878049217063486049249403310136653359834474986262143035712754894411933693824637724730773655196602911788622771540421098115395434248115175071665892927451160114652332240186882245688056398399135737588118655814587346402585849147074460848210358587570531392777253524048734959710873644424378766434226458164595890025571842897316010211121726170867504474824959056544391874116156667986936602063226944996217625206005395125011452851621812437184414582911019575750936610771235878585918314829098498030305160356953333019069079445581665638877830525184682459184627793762684050034571719054994873750775314277921214314844683783922393851318170022940625691549833154484764789627704742289173204411354885314736970317078109352011399042686513576326095038970321051708320073508901738606687757129682827494409336437057306437200657421640307242132863037417477745233728561193362994119871922135893812380940474092016333516890495905201920450702468991048365997297887837292932150951831808313802663672539396598810408678404762009056408827335779958541236809814089385800826060455846563773176561341440174128545025927661699235450722570093564270133082766719350779621447951332615595351506160480960144510800636066275879985532088411218811123321569494231513529270845734144138933569849107680705851369458711272511540011014158761964856582133782253046047225555491457041688193898381829615433260581028019964583791985325057343647603639668123397852500316737366212692262274643988445433124653374421464202370975265317433070024977317210855457786939031485905016247191124481823513654797236958450555350966619688354619824270956942101448528453886405524356479511481095258450899937542028584009623166266396806237750827616071586096208185332048051824760091023528348665118417126108984762428390278017632441622568772225728567634843511812608278850305162119877119426610582832480683163591387058366031809521477260366779435236948443205976188917819363627693183626844023254908810135499616726629927895587165927717051087395490059508148307560125618716668619693486528273311615077691012222118303776713143626010304398284816659621272303031298422713508665257477033078717996232994282402501663873648477163395287290747519311868826407426969762389144808262519417365504705996020853837400988136837400586195198740168178518556000951267579770493932971771671837720483001542197848329666411892229418300575985439616274501111725857996562542623632471179582016389905182651161021359907556281098625520343723770978771136878051812050107336206550036275400234117913115580942481693181781902266694502572334353231280705467195609090401588037979275051147753283148741011301355180774177099900426953545192021668676571223329398281163716096224053658825258968186206527416995902852759718789889565604302510736862979923161986105599285426019583883524728291847139463172995219465082122323468376214950988338293943258029923766290355693363519875889716511594359829292755687959784705847677611217614127186029159686104603421254147100351060237724816116079228037871077573197663039077205727466507929597555005006770875945523163686261450716348817308230563753071634876405346249158679176252064709846064950721553757273939881881481283043031765003187766679929285021681155872363128326777026042298718813784567332585018736375053703409169295832859188537313997266693998500508992955682932256898598420126063953740327864067605076204330842880910265767723230364408125607918221328447132587775917131200809407961272433049561560864889365399275638010806766214217265464207841628364534479329023764175994412312126453721064241193435072219014394774904449974897635902812053920757903032206758431335021353999833686279338234101467000348452179696331079865039163026290537363150642558527801924328189483409007812532906352557379584990015642635148534088830082488709952391216495024482665167694033689526295950940707641364750877022035007679542047561623102428490139001341833834885258207062214466547965922003511507618212404734562603007946510463738495042927788903186863486816392725092411707758756418265460837652021740094159691943083196362757431041966512978307029104761802530885849639638613158403248090093531325871476731951024775236381835656167811693865069624411886751252035133798416865658031356974110937723274104667590816637481747884747624992253413670077081218505922089452620354508569931968551872716506851382574480405740762267035519893206425672717648992395809732300997687585071901827530276564723770601632412678820481485030127699058402099372218154136269244319914184586065862740622537519448636747253570980506900219090443819257558134226693302254438572951764508561733577661682557074773367589694287213366788816938348389860772154161278120733019418488167061379704797323044028972464534465659820121628539203883942910014308909041246594578729845448087815051113664013424933638300358953290812469476657484465957473682103538827213262299348736779539842823699437887260643751632585388812743432012652316384677359399436767535460086665840171162415858139253126391570953393595686859386789880496587188543166955252887237933736080546706668006806615841153301265497057393401536323914147588939348126493888369403699042106181162395188823972578405342135042627818575224680509283418200873072447597438412780145664176386453733125647251076818475072557530991907844267070565601559664156950597288302998724531682729416466382830740582610283741308949527061114775132038427438504207372006595384715366938194455949470535268292630615398961782186599902296026668625014602329843910457722516417328174084155519077213935510940227911177983315815969953884461718052573341959663618528966054374262359020877180231268247885560653355563848565011727515228251142249554349123800258815729060992900003958700267907069752627067743922414590876006850471332965851284972047642858252833269227679628139540658100915323728666076625275038776090233009124293492234683371785076282192874505982099601774804561116795081446094354651539691074882713901500797335758652915600639772107824514720922276593409908923809096550769311201857776987415827338650264030386764544978760234000427332151374510015285035687430553328041075332397733452308566967220541725818833509542405768928878055522241774607422338232649672977141077557305446343203429952828422553162926432602883018557449757190775049331623975988988315769096012919585214483528647865032549908724053000503402866819010421603409707362391369545605514268369115091432941635847548512175600497669823148564658790369496284020879768927409531144309679225438941551355673938291842480051003878815001107309090375845418541181477095404835817415140818882883812164060576967891670622370272441520819794517804442037638756730432524384227318599341923361308776301548959740823763738924549255005652688935125568539937769011562402242177754714938919693754473800682841188176698229435802040770714360767662582325013779060916123890127552550953767547011718670986380263569982476690496245008930448717998289715182813343184853429418476989102787990525095416364259220895741112224345083928481362589611656212714489309453454689225783979662680039032385976037526529236623361817945157634802847927072377298782910966954776106078231853254739073073394787344860710854872534873066515588016953843476206439466194101632299569393663693532549657021563011152451980081228542010188750635929096696921634991651569846545388028284877185354093784234436886450702904952268056237821700893182623104878845534152912865514554574582573341914143859555137143109316941553209946005190824911252897923976670219530568511159470007331522753745115958835522657841883606910412156635878678863475287792251915592459501473449490483592633928061148780472697487197840634927563708250685676801930026019298132144996400158441668881154593988445180304416447673534809204185671604633644524431732124530909279400814349851010643089907423475061210302862437458891047639281649357993231433907477891317418929289329478185036130841851986833482904275340947216390564242964531359147647799927945475294779478825380920645268276702305374135067497072790153114338218517498456153034602237772049550642039816764984065036185386737343049147224570438296161520483429944630837137125030848130852768795805438039610913585981513914222706892084226523253490321993911077750407541255747879484638365484056996490617586085338871704911251540170870428609050469079043577514136996879935355865335461537407018975592895579203710405961023653103187566565301498569173792765681169683633323512649633915600840058621700984355129574624203707803390435270355812921130459400340648150820994574344086969178828876429517528003927623597038178241197581728172453628134038186135310992788546132753611573803543286017874301315214993416030404847276787299453736170050900833788771420036827941971169963411303834092488041566989973077872210648136955205782819437788211886494910486306214397075117815727374281858447301854562534289168227186269254274719801463725888624426493665291133429705691770932018070699709043977942089358188681685277416822349382370553981578187206790097299050457198754459417082043091747794885154971179142204295637181904122055870230373239359584906195088407888567424395756395512655307927444631650357694969855450672571366656819117516918994388675557283684032491106188950013643792392551639030746162751436286605374644019334191532316533089108183143907668368609582247665858304016788221713500530487292401204606257443576600097883503004601875635262821081210776205152375766200071908603963706944577978684222231693644474711817846760553951671459283413046762283751667014215366778522930415757650812702332823073726483332920817703590425891064208542038467218715662884062050107057401021787783452261785413346918927187879852989035678711431063151408488352453076817363720134676449170683401237800228464164714734672388900939912312268935295474039624634505186619183745226092653972817365348375240583434455362589565849681950481138230811176692648378081118454750319465435954638488915906713487912009630752503986569951280733050991786560543233831301164285481723772251863452371717696112327345787047325511593831928206468212775795562678654433178110556301271756934045474268489644009583518376045288959115566515627852344603410191182210507360425334271578978602926114279397075897139442435693372064562947833129716055834485665451390144143882498070810068372626446955018434025770793687623691977606298305989106968709202492979420187292678606858169783783165804319167135453272038201565769337590091078661272640715194478909650499186749266757848433205214133808408808331054451195334589753307067010167063003947586907585444873906651922633511451363110304497799355722532370242156031524192903460872163989982813860299750294824766986505419689861733257615731368967213979535459364975141230929105238972558997697162499145794803415705242506665046975590749994218828531348102221826810509120038514474416292593926036734842170001193436833213928483061166443290234125508983096658198631709106665979487756480854266360110865194302232216625712911279598552818209201425743030958034869812446806522600654861254510715512262518657647862639502327324134940924062081095764892024358332275074197672398742467570760892889399863278709993244948456771712924782833976060255729353169813401989062040214389342058052721772449600634415759230750338769037447058004754523621924604312866594766844249679493175197522525784902217839344786345980652121603331600966725790046119263227635348095103874758688470456848139518877297611721203239443801752817367737960540599624313893243655892653451605306599654625635308904376932426876526846876580690948513878723089849140431634725322336912125948557349742747436622878001045794513812983243232037559168857826062821396904358075626088100909639517442871093595290717120433450919660721869581212957929302773234440528246694780003655420591403805087693988921476416148866107589118542048321843282592524971462104507316748142722213513827397970168676978647232155576811264556111367812720944313256777480042437327479245126804571054184035096797115952368466690995335827783209546118857805031175983181225362941216379816307100695278465541903409960540846061088910076019141801724950954247467272313762153050840717384891799348378925826871927798531905488052349378819126447851712214468395575136163815762665033711039795256399116906193677288468807902464524836518123024995912436869249539268114822527421270514574982603446107512415168095584641809794676179805062160032413115398797552068847452045326255514137442002146878904577236610725529004532151485403555933618476448352426499964860996797834892348866010122261692288202467648877113840394924258690207847972522963148655156470084151841847289080932938909990184187156523260593501058288094443720492645196365591881313844370790078769098326712203228274876785758859166240225726730099832050119294276082684693478193840603128035447957703725036763698740452076857347057329696850286542235194452481272247982109947044524036447461407940948276921597629203052556532256465860166373381467089384071183802969712407795436282959345360977171783634049849476943286197617619629065996487452849385554657447103682799201880172730535123065571765704574939096771865107953326611608060444428626876932960501207664319674259044880995384023186886627324540396102508446536375342707589885146288023601152302493590536189027987390653544029323018698168164771146695192061011706966410578439417995034437254772024806885071406883182814394098949078903994460562702613084773826085068256218238025028789305827410460299758518843973966473698653860730324301436973192591179070206916699842982796013650020045837099150067377073013246356377834191195916851940941258978173420135656127292468015302089577933754271447377075707366319383660155931465333754568381234338016730824561906689356285506279202961756665722099005487302495911793028903140437095437404812285423710347546670304152753783272756795640448842860580539358050974030065457272325706775565180839977635228302008884385582008060406423511851294016638415322265653863616060736439633531160694675038679064546054711117232797336624943764200562832611181730291040165434515299143690129510715508493997888138209548094072327335520797501724626865096141222461733846267284896101332596780764090055047896248548098832696677912684054499681612435374175448930937954673694978780150074873314262970568344263496717499105812869768596071561873181797257312803962916307456229294576099281511572582032701631434375435343910401530315980165770342800040276552883041958759030023668794701177975257807639408882792730752535792304645483302219519286170142412482176965628646016227859107791100524105076807257958857994458920585450365759530308381491001621362992336378428935126773617047351086458811399267593801748625494340839720598914421207940597116872837660219359161346278097933955954749286242725578584827494874428696567471680717334044389016950474220394378824977967816056950486939241823413133210382469746669012609003467018075228842348242997261511607490405079150347694663435353085937958563694741877711413912766777316885620722174224906477688308901692936196241504150829858540579044449159348138034953003889370004249519741524713767249114940514858631207060031348107465010188440277244119079466817085041628952427883773666073225063653963681177252574700353062380066920437574681435281622148478766355768006484976617099445597045906131839124114366698063155387361516319557432493297615126247952564534872552630171937778515111897748564098158931897805985281907338994262807173862388533214057353198791638886311312602384616964642153749569781591483741071144526475081276775080794152893242899888377718300318988721111248467613703975421078512102470078442049743415879571120871624149931626837058663224422486981716946152673481778373774621213019424249125178981420612703078639051910527574646705909936129655338964796506601431091310465914433619104421018566858904487336792558594813849293440062253731651351315329712052311157762320770678016445882826599421871999396770859751514342286437080588717811811667468175175823797264095096613659939466371928115896782588181159513601311468091503431616326723296850610796782302692847728254528351505298701408576845152916232870076781494805066989739656331533023327533372048229378535375877568036354113252676246108696775229027063827324230022509863220327733899351252823146237928207712909565773011418954731662671441307354411930176566431918577281449988467112386964639996126733063872917265382635379202195927745062473718558233004219070624643814651985270372956280154053205182215416742716994580454216993198344276591266412928762084157570094122616320607365925864402310702745872968824610647231167544586115377692573894667456042342074263855928615077387341711889159159034302229191860204342576055991829450920771614290624922173668180080965698179908310957931362774652937369813351963157504876115731003703118970209755270571829765701924343601515242738900695044092961740634851543819716275417176731511494169557148715005338042227231851505710869622278787785865889987014575076727144118182519709806538936108737599929647296831380313588594426228373385018163205816534270560878854312531408429251377259683971419967142043106793160755426755293596399751559516248768700692345674607515202046029670952233561012664175921812822107568191039333204934973182926393207832282678052731985228511718796783262649825870405402931370556966438012461395865212607138988978832299491116473639761358609363984998245851202569071297687499775393685401167383401004188798501118501828678345600604095037769113071365809027599005639409987484796661917187791829246442677544683834588145901727404305093878591812685798091489056904207992479453642374521577477938767837772627800243442735528078750168868759309541230465812941805764697211295129483057520103311314565109557205909838011196715144374568262658887189791220224576531809456749805778198887509388990123138463727636976364791952485844101880504530802712799170747658774547564201490888682913783401209620078914141917342394592190592504740547541492717577988374169069083898605858018511656223987364940276039749043120019127191176173008294056846192661336917855636203666185800831014652616491095375511383603706208460911341194083632650253341967026507170398173575148613353724423546982356806447494444779243916676672511535999740059551439826020131227483826356987498146250109844011890631306522451621331527638540329720938261510396533140642840573330559945308547580329376877211283677519728553024843785168419925700300368243589671462944680324726147936785965622983102501941545205464506939564354169905921200306600877332420677014452001416750916686805318586077154523547382662639645411456989838993498879398156783422386612208290261618638483735473941884732354870257237809286169777516664536486941466800956260044869992306560783376768243799022406473913398291381698648780076557766292690510804888190304864000913473291574676688755818558048609323588271224041493124289070855514038104284329003368523669645102315253384505374941808456946818086307502014683646532206010878541235022261518327354339128972354356801407060751183561861423668370213203995694364000992031863711029732540363504240898531067242912344161105201146415940022559894092273338072228687552487137659059402549042711661345830360121023570027656541067400286212383355483804279157997259187991839457257379300543886132348986362494456966749705396145399633727410349933699415030458711405955384441236523933928760056202698646782303233057106107719131703719540884803523471161075055899782663299462201257950845546621840816960115616442271099952189099779520055825735000739790198731366915213578905386626998081851328930723148130060716647991140343735951286805140391798194366725877569060700696934320700932723097067077764370602886539324256798536918834706798563600854350744281356680850943880953233546789926317678184979962070185438790614214580813109335371102665356070869260319605437290932952922995742448845630585121621675601413108910683034404508200316765148689809260434056822693912192878365156441902217947642112826190052978918405503757449956368793875742892273599183470546083414533734132338972217313850210012765327172734190343590564451672792557680663559382096112256029326740364690175324818220585127842504437856951435485556996824612674309395290460137303847521845132809300463351079344553244393452335442666995303941677689304967871589060459021563687599842629325645385715694688617675665070343702359419055022849750234744440531808822297686304109183669934060692328862937734913954354332510227525444336591852056838345165969244016351294924659409998959757681173262258292108564161641995702855390508319386724724637107147447297518626682256384388367674852942415983605523459508663973647298856820954288826619519923052692464760784552951365223728120426994066568299961068374570693471775826618057275927829822628585854851290339847552522377593944141850415069268385036360479270197110727094887447609138285704856046243599687379733373680593678827772379725720847752404669445523202033834617744696138150257297929718306037239948457589980157896608893678233427547135763253226960513860669865576172596711025362297848964271645479885956530515066139664620335085492113669690127779942238093958855005947774781929946198700029027138045683688677975583798084588653220032016402414726011349652884480726928496247805622641765134486481156504056598858944861398994629325884416457783525401865243740848291801461605313660652903548568968251567281049923311132707579537324150885588041826394028330463685586144887481256229044890935511292379725411983963229711369616731247091553311291532100201836551378913916361215812655656852852610874373708897861943692469876196908923398650532603553962182571600586565554562437495480320542475110889398791470642456818131289013488114529372909236291554504099863003589547283633967417286829875955145095427595548028225561423670915740260702340201537190573663945121954664627246123117894123641452883778751999171832342996041361384903514378694385464888297111920695687190696231298479213770867901430043590640685710722854244123097555443624916325882490365069456619601754612451287501755543898911063386222853623637932270646443686303097481002402814775724851780063107271857998953666825053879002246449406181577975364444157662478212174210386667431305702997165739361378640706357917094808014091422939149258840775939901945545073278062171716612013859001314879374435028991285996101485582351261917630391843994590829669116398618487846771733014443290359182876812006935389118643273090105575564646814384749213838135794160152852913857938484304931556398286533666969817193594110027262012295912482878403980570785371530018459595607208185802636912875023366860265328624798458973417763512552829529236110141599028649630759329409134289030264863768348725381583673536113790553418569322198914886556806179211249537282131902921278618679909068477036067255496749227064647604836295745606834611816345963830602311536254218451019107571509449820723412945033123202299693317710585611508243442911606805503809390244463787766417834172140407736816198261889481439387171573014917565514620138569667849031312529275286513218726016258904868873664177435283066937154331524399149889690626776258958466172487172562778098728931559558159665946070500110501578297591026339939394380839212032437000425356087529863912984358975594853536167818946798997325975493818589424464671725262982695252692493293528668787869021266779195646040099445570805551921652724294939282795446438951040129959445157611268061866586241631929111162275463216805602480053185092332712817932964736968286963670136638231692039796103282103973299494203330229569181034888740265664788452626030752193174276886448673751052439792930248734828623735135403273143958455249255567514799968820437845724580920138983216989209634263925908403986732735031820356578055650065529415276746970845988095653214401482878183160024931705946161436525567041908959996857650908338746665483354767063923122918509531835962932937076997552197141126792976399164117107149604724011833010569459834692968098745132823558206907486828369009254562692433010182896126816500505711693492522613772609703493478984307734181204530051694448735349692113998184115470594542633380981701531437915329434135170304295723385237931786712845420462334694518786646664869590236179430455186733281774714886017558827723437414027797258499329210493355617908844784195965029085790680312217761090143689222596859815510672682845506337363741387252523681307410750867272157653676196211087360324311245251631087654656395833575826276529112146698295998126084847538745697560889173293056517593542112831025278032832459589856757664345432761283006990215754486998208290822327057605812757261054145671240543884696454278360801858978425379567360961729672642847749287692477332302377323652118919124249872081664163797461108193275995474106601398062026676826686709849815340795803975679119627689827209091376353796580103740713910988842188560337521943883232708355379290990850367655246156831472418347686413518352423556987238873146845736187244350969898208516180330646082947956122642414860470905109078430441360683317975560609142143851122343858611558915755590608414442680631742286812125876798044945100801399665134664046186193815611804923947460694945026417288945573601270905536325731659554949530401167230742803561762688920350072788546451072761367104769626349078988714684704178285900450716084914833293007822125967897257770405004731176266796644869820151207773080054032912534115147851149591862293156283260808691181543207079896835338071843423916430526168848218161546876361757377662666662408156264404666390116272652946772895641882285553551921100181274335526991555681726351572639758313071014208684951662827902259903095875464368677594981158424572845314997564894611534222923040499173244280774808867235005549613211379171196195584807415438835660339737131229942733647199191307464931880885928014148230254611531087214173888610918480266563408576665816465921593014039654111748477060676575830586298267539185727425444707174028734079597994916075255413009151185553288541796433476284249414767966942372018436848925513740983504472509178100576892784817043345714588405805455717319939534645936248976044208078649250294495342633706578427087987277160446299376990735442754006749220667050945885632790372586188418528993841620088712483228186161885036035297467636962569158324542374762518777849995816779637909199144140952712318275093688377311849216554774502833939774622223712503582346791043932803612371524062915196729509561541374022287496585266614788338715679866684136650852193231058723931255993470372425541386254174367295949325133778375266834048853832919062642690898672811302282047995588974098114110887479386833153487624318875022033242280126244865819534439688784069783814277756125478050737181582090967816482045896598553203697423923155757821649889156761482828186049232808979619166797419210051015113212088034799843594476596849133273947175573270297840547582334547212651292310556390470673054252974030510775093002063294565775464671746323177314272565884357650385347498629714227610207089084830422873711574067183830066971774160463343487394008191831349738594427174601793302888279532835411680534006308934716825470362337724661283225405742769653381549997491967002538831820977892548765742644876328831446114016773153841157879120094085614604742023916139318777660934525957730357598294901462400817364638284293121654813756704371276615546112386018848501958530087343610989759370108909528805006913092293711408747459705207478841054708049962833521184430916025043299686450574642478525237521771587488962172202204577052686419925456809267833821771212261895796397451649959260608858629268256987316440134343342677048353213081687506601262533342224809956576786498089608485500676352768382683644223892977106937062087575367300288191024966062924175246348450966986835009655319651801175304449716256021040910434306509679855916704813460619922568527197404615042485142693120863889067353766350134012819597231756364705240534104109656412404996025963445013204175067151444741479096301894597301396196254454570689372889429422422982227031317699818433982630993477028082731316158877629924840110750369401004740361073124379361479653004334896744254156774669933134114455728476640743458360659343364269408225974704751278688308181373856126659707353369230129138783192325603461954572898760727360976019293002158328809206929104467041312719981172363088898259204926643510461128371952450459962843637773181991884497830773560141397368212971169110015523976761926222404040693410129843387628734382909865052295119104600687693340655974931798474558551228075192781881912409194984140222706090200489918403590834351767571189833255631079802347431726784798059645806552364978555432472016080598969462372749032693303157858522567713621305675636476675366961718602445357740334235730309438472641728015099268919134139548398390695499159372952815845479362414103887708349512042730414221670874847265077900579133884181182271359802721492077041644849771247863211386339841628323583551777539422947826380301821682037091981674245360760439205929196162788517091224310669430065078882763568755409733608179602019403902472263753529389895614003306682986251609850667064104710666643469624602665470969970399884261746476105237080083284948830216662398229582163550788869378696464746287167042387784209508033184237089753092798634581861344378111049159992746946797247922972930886370089316026480996088617680049150598203190582471922105563237782114948143423821926178545188369252355466370035172682259463795817290568665595151559758173977939370040277997805047382597878263301066087742431991690738630212283198867228206888784004694026436438955006591220651407428257104533813188653979024966575741842498032526150514151792514227292057538022041899890589970752901307538552943444606036408765803915376517767118438657774839562348264216668398250354734026910733166760438487521363321324119700744460260947922209527932501682570422145950964800118889685355177956966485520218533855531376659941056808107820045594850997413949359384694939433859667580048355062339444036057927258408816834202962711620771969693062454558875445959091567120890631019353265665245497458244386405407611412314917329285919897553535164726786762535307085782734289910692310147461411241763929430885083665129161578517147972983148425613939539331702218643912526333550548807819382753431175871838780864954464293194135581339196878887376999278703120724492788886886682191012055657928735203098846949551167046657510657591231268127297087501210388071335341002988308878296546863196489142724420222998041016815620454765052278734984113073086796373440624702705972215606882696316681982558084420293208343107230153951560836328472964779082772652786546631985562907618698296958989672869049401689272213910689284781741490298843816133416754841873552398689842057852952276836667638363287529740702001889013592160362290155435615071614744441493429115794036243518120500231256869017471065988014408992344668739408322235138376068775553120095554412765989527043515552155733209759969342492896870221818386537284655350800124944955586822604902498478912178585685918232131631537490224722581151137124387331329843987553047184559723409743437669024465528739167736980448982417216084989974057290980547625158756958293283688319413222114811461075845635903368121552010575336097970008352310937304314874927314838408651415930348182125281426757525679739551536790561798594614773362141417658468016320913755248656653848151904396204287694680825610736869512870381950823373724628603395192181173601613973939718922000333396111256948837216806022824421115376828046224769456795301936514230358269292373288705328778176572686874187454255589213875211254738172934280836423580111051285699309550113640006975010109372303870701146411883866914306012580796980855842687633704856615793155514277792133010162330925261278812892480678977546453950843602301066966370761190330887325649179388177749725828418106794009155230074334530196964190888989653860539397915346981600090881838471833985653098967603290537780180079305642157047370111259638846716015356645728334066659738261151159546372619580725976272105388993812440991725126189597255631586249476392156683797874351634475815695239690466075576668145564048244576609145893356118823541093074875613727266957620193897612169808398143577285491278786576240849889679777217555624460768960249209765998715600303147840636577861038441754503570598175061861859643466990031117021195669418791013937662841674683245302908361267078884161490387495008285004553843202313773012825398928720151059343571183065125037911946756794670126558356956823034341848094636698547397069577481131408913140202412507184542878968759482480252937443182977373078366759121921341790888340307693897376483884636345248815702261694386285905722059607643592621427123675429917229419012195528500884044443318923582388530478181863018485681186676624946527029746368874572961181273219896963248640690121168035504206059511480635275377308420875273490164084524274803782376518414821004227480742356857976305881456857185658503072892292093439438637473377284368718299885091570360386686081988017332694593768001563709565638613808428442622345169674500969304517551561524240285539292797552033618341018331969112106308923259293001218861272855179578638568080486220697719340801989906553615795755089492154753881637970623248396322993495883837271066413613328766618664537587239756712739232075261901248383890118806416605351571431811094981130783070296194539263012313153801059114061976638590056573998861858320936211571316964692595455875740972927945632161790305964077333030208931583185438466920584029904953692532112171104961885019759382830737827872342980051557776113044870640482587332851043394008284670010068304503704332225241696439672758501126950467739013701519937388611993474896253188918895968104232593233708863263037378335806804749255856476426907752553793624174817706880526829154827232280294084754736444643353111504428291601849019333807795018803096375671629849020699506254639753737312445277300702103245273860120324366262868473537904411105089348629418020882451054981661275717535128269041049177234801599302168036374764349230065657227254474886249881332460782241832591539472894524706504966722734737719475386898019676640600066219509252406949463274695674422197962508042162423783859353828186877737671324920154439411456267470684117522281138946626159950545217866082172861172523018301035538862367509258437817568887876086833320192411431391490582238576450297420362811000288763822169480552719956976010545967910690540095018035093813699250373981342842057445590028048805341911572088954409318480474041992010062476088771227121358259360898651502810031369349579481895590389396674255496401241279187488147974511818764773795035769442988167335804298815095334504356923029483821625840824683345998092352601416639418412574694806196143823585204628486479108827221463007284886713249299132426450595301192225491051649243947508948474485934437220040264044707615238015306758778120083249513245858918040575790932024550970422539634418749604138581962052319990869229086164488013328372253564398406338050029764150738728649811419910867717512804181238444379790692007549225184346398797265208974711153385612729522522997804518254179876970573130022116293546347833061534684066699792999077740410108402904298961017494338157225507359686189421825559567114039709174655853382916384037633672869599030499924787340279059287078714525306997166448629773336436911416026087593918783138483716157362572298232575460508921045479398790709999941255044349608298662228536969664295782788817288870164288833711002149282524153162919528495524892018770959773696765167794068578250402269230341819932962343674708676900568319109074215064010426781120455055011193626187697467063633490920826743044770001564187016998451731293256129084011350428777949903983255507656301550915794771756498148337159579536041948667593734562679983980855739832895824591379727389360461047465685307657387890145941888953197244989848131055804917264601441286846405501278049986031580066905535012421714313603953081853185998512521636016974253872459833530985757544296380048114957384260084346837027393715092420254625713244078994798840449951576618537373507778239800193823102316103145484954996314202424827054382187782236599256419685378538434916936822587327087615177002774802399043218571710630873840753350736797995326584121080227330953901870316129994139340443258802141139573618611379493592427886888792450836868816217159408679662910560563966975856009433464906944781196998542383090257927767759092562943466567104666988826508090000531826458793345333781749359662300615426762000849929859980828075629351363552160641554322414823679896065683352740104662779077709367137031067773901353207595166325885248772854955790409039665799077229923666280816812285290673277922445391396379862232546006303437392444203945210435016245658419751377377519682572275142763649925591975530932376654201042315557939973761873307083762557125948674446901025926303030376012107544335317960508720700208904300696624145632425426588968862385449172352085461066514046010700496851445274903551149765014607560646218886923274253405182067516423551628767612630495225703194832971529901310913168808994482134582673637875438885736926972088092010813164350041819965036827874529497512995441986730142792377684541792262214773721385419404196267896281578295264761280552318379056065817008856435190578387145121776749490603372126943569918195606927636521298749025363636023641418893972896491593634195457006973670207933852910400931712209923579977423487684669928631003717542971630974468802655677916001929245486117903397802098239910452512296575036495785847210267076938975884433044414283725635237133396946820853108889172128563213263324762621662308648015491039383283226262312459728944626886680539264817936278694217623573195101131076548971238311963990448812492971181944064041949168589176602360083255329282444315498654651200347920609259011751374580467791693457832574101901392847733833163631557794089918531075978838481862949899818181008568184244667829798158663847032776769337193833459525480432090595899079497724007112929364633562864938178344739287640244242879713172852311386646456234000821341511406995431350560396909582004720655468162573426768199844645915351264127566188186827045353264488609156105102185704924809081478996707280533770570621555951416649397516510778548783580954625095496976355165812192439501136227807257278203968415107133635019101303137566284546008594905128248239098144040336811334878273152474336416738677713763478618954344154157309322392204042609423478430802330404455673465907802667279072539656532383083285416771526437676729044169507747405703714392524118935500946704717157925137247095236797603521243513383125867894898997750324292686100373832038782805316390460313917355972641165748132936744221461598821475525867088425439315005320873513490417026992241208389049004215368545474536553144446709311696130913459163480648571161762116572413426552436622226330159446616440974230168295484710695695011294386259738163538191425708058636812147869358565479245102081076412666782792903847717483302025959811206912978438035314908800820777153281978756228889083321160800779404818910942163513515346948327053600112418674306017927452610402189274816604503314147291403715117211255518663467261022062275690897763762981850802623266558874293162163149639891481883038703558374451681758275797706261697128201850627116021626275911839403485703347718025687759356879330804903402608974768365338979147856877774001414233266871676479356372659293808921876841894750053982514170279204931208079624176371778107300757298959856229562200903847474020681939269564721130554496108301492677576777322367889050395591247812540443684697342629103465614263212021114023212173854670867533641123269484967227145708289913283241835707356302085324648266053896968619017848680227415001197413161663413624289424850582360850480561891991384283626465822880368336246799526376309732967412376963451965128139168052776448465985785681535170087718242195694520114751743093574750955575364925955394329993807287336799814475151252812097689757832548457487980216246987494452781759754275378603435654462215233749295787427317632556922837602510928746684101948215809161172859045330636568770173395537972611262064290993738452530917654637579681462125361480837667302572692809015490702030660577921729012475374917819320558874705479421048970634716645162145109859596788162181668521367715500095375034506706115329580336503044931791563084306253266011715215473339585378150735234619087354265849012993311229552903014522380845422497314173471158044665477478224553234815631672361423482915302384439461354245910827929360853278915985483380456209312813082369083877054402723602976588638229145838199540052371817805820264573239956684929298698625325419901061935697007053139089632624635688383125844174101429931350691903364755161430017038242148939298827881209091201563153088820927738997727764741805415313263219303795223882361279071322598629110990791992630975664740883972206020149792304896232810796445615900660446395387851706045045532721770909283909796826268742031566934337862585524912664398035246687520059622698244557648383322716503535873273199387951605798792049292161694965832949306882918482681538206026138423253885912953723438202668555781030613703149121804350694761095736934884077884756797638247784018601143098774313137927099148911336314887458449101103837634174736261204103979231498745001122786817383325039963960006277131511923512542108286175425248116024365563763470826859282229343148650354570595923996304072753408189867886230430825396120775272647847112512151558811859253181322985819892847096375781810314517504348457051489046562331037447818663866925236823396377124065136378666627133556537742889898488758262947968833852819875504474352745300644314059078063586044696776007514006880514392986626286589027195857850811014149225805566432024747371827850943300803189437101355894995546046501935249827383855828255231779876712103870965705891828390829410203946449285863769482355586690731222913677372733414570498721383968299662719600644675309571859517776391418786630921512378773873537668661240577872512780909039011248815510739698166229199489534981223060341719041719554197537627742760666155762561366313747180087515473199357093619055440096456569433573849309642535412819440517503607033314616551898826064376408747969689425962444886168408377941328409120756294855069974732979926387780265778697724459999021754851792221792852401386355407335676377802321602538518888089939597561505499192059447567286379103300339263606309475209465246118377887901714508375044742306352138566552448296446572510648623218437892409495749888773178567265636269901636325886053442139406986956600486896279053923312720216100839076571391773365592022034680932592995458139729487747899188452190076872906328156889955800955310281696602299674756404551359007458211341238119735370722193101601023750246004217925616282068766989070446191270350383949503982189566093012068967155166507283708737695253834684954955463984606166232844247728901509491741371141609918605851004402884402305461240658703851741585799204100460789966363007925608665155003176931285363308400119228881146552418486355554842955584936510398793637466976792354179254389915981724454743053757749956053899005078940443481348395349835012559107738640903766392360648565884681636857746438925556144772116950899930542051133366907457184716310260450034376869001244852904285612884313281584123069565287170131888655974322311479478865926200431385116254687479851235439622533472714916558877780018587625890427779596241412812547066991668487517844926889209727427791119537137797818307506794674301984338271540998210391682452374809248515956348147677097652217152943825421269790226659886196962153851217718836200426085621103678848221347735741999769825857395002487833332578551415506649593967282173549911603796301828074779827262848436045268045835606763755003812798920772070220800629138849568522604005118072400875418035175227622293507172324862193547132318077729955257490842533717804682672781091765449454917767423863799745052107625672834354112456408787515011441968392604611834375102947924755854468280729071046583345124883918972307238682430953143181831245849219001239905191079460575345426467074115435891489835979843399151548916177609976643772863703272723185896339361727921435287905659709466797053503392700321986798495966313493479808654495230746167415884452454981504121227366554190014133021568114651895631981429055160500812831105535896484078961846307780975015091307137775424373635096146083564870154072473356189873500090695940440635599062065372626755484667926393623821228301900141541172847413541358214837333350745335657802841215442687672736313518660501533496051861949347486349661984824860497612274987938390639316074252213695703154539597680750611786618679310098882000766465079905466258107595340550230859154706924192095643619872112848779403932731187620255470817485188727668834539156227614805254895565961667414354466732985132579953219506041114383527964149807919237923694685462956802519893432267534077296957338609152148695900166506831643491133034511230363361218133944654763928355556157244180117556155441786787366782123269441945345015160758797253000461409255958039017727402203306437506519223936721053637954453080171847475352951818762679624555058610937538684792484556588137647650162276667594106799430070473438057525140779499280898425510901849734849606882558916940124943745280897459793411632550276412351388550593570900035896081883359847037603566407808786479096823695358153542358275117578774084810985149347605037540724414373010827333200757612569125366030687381474234302897421854664308377474626711595342254388171017619807192249780059745631218004034934850922828619296647462320469906311112869676790076761015647950557548042342272593408829111846157996296913914402733638431180400039934461258984930542740315131782334920859168843683536485619646401391780702687821095869999592516284264814664666249202117961495875299274358278965726710909405094061243289923805975150195403008746981927306873427882634316731810270404465199332346168991133562463801713996321617313202532676427974809015580131607726241962060884574156198637282849728794639658322973946156201381588440810271559773473639230959225043709744330506112848369254642353357167261406820414739660121712642583908580512587312445346962889761708212091554300556610507841667478050951218179705042379417908125200537906062477280823856377412399550499656167967718420616760661659934923446591799383978604976000541617963113007646137078781790498150880717754202705611567771540066809439483277496273229278173752768892927918667013137897670345975286343385806344424702037699653976521048435681837013046639225700237903767232189734399042737851291195780937635370568228082054836513853330202662429253798106971293077662284093332511261703819572881778036446770377466933470973004067126289747115791367682181765637183953012279778404930150451050389534335394881153723713936834482628416748053388109893662126412848871288464945889504826913771635140262801341863263032303380952529334260436127930097041077195356295119979552056965684645619240464466176134971155380686983134821868426965958549997728295751734918126960798930315758325457548769735054728924187376057715540941433522404479314453445243812800251819606046595705678366162115612051614930884644512178255707978628365527827722681464339565015640621725224389333190729227034595592781005185070804900459978291711895542718423164781375280572097709116334059360886591841141771415066550970894886878421286906510169966366122056090880958016149166123294302948918609659214927925875371526935578884578994233984439969369847196225893709018164798571727841746361822051222430798416373734182707305835251287742032212825997215712090805232838690996074985897184763082394092823661096935297107148666539768856979794635753974614368084091437482684177719542826594101817510570828492477907125261421145908536359603414609502982058378522458732017078831728311630958750508624619479374266257158615942070650866463047130900205102950232996641430231807024824533197511344866673487308884376921935888253988070320443861463801578271893336751536379200248226629504100521992244233021132473821715119478811718998478659152772801068098903298282246740400456354655987191103470562544011482825558424237002453948755690456700384351057345961145876855712087136529311420244109137600814012455707569003027390713157273625965167754097295017535462982892335224449650298232629383691216595331289544066525575743611153936997987140110552997790007182830937075150199324706928253118538108489694861806036322210092081020855736324074021558038639570824843771380245790698322473626440383845428329478467417488608476810875556839905538731879298641101923886549527336150759923011657163298000939197690783185587299501373031234723319790819884591681881119715437601176395362901968009804531015327326870012625507024552912519906440543706827588425590413218403536027837401947341599872280814758372839427269735619052311182744871683340487103323064644010759627860277750623515670358305295866728386957333461172511933129699904390307659274291155932975456973302503755791658407941858829428056786979003465681896716350671364446317479565362979151617440284381296572626682847955034739600904042221318052650768746833691666791982165146189277574161538449752740304525370323497520113171078446131940536302083966358452665923853526883871986265679596819130257911221929370551601091625049050205776989817385439145926469728715988132274965819568383695387679108577028191872879248090403286355812483506290018445652933398604006612524961537633988664851968098683997397006368007631441179339779433747565580857768575588943206315369544778123628754356845216563181715541185012315457612055473055748076833027923520421971294835437853144701809589052887683238866109096255703183317749483413095578195306812825826112183725441388482181611169672110396041793748241068253212239777214121042383179185889441075692462963782405346586326458546954054878138742260259114355431673947457755894187801416035400855053486970923434792866568071816713470976134320633329355250507929416275055010301797452966199121098261979764713073186506323906327611886458618952214717546513984363186462355532293748253358422724475242016635235329143507248313430197743243975312118993118977832038527715321088396883795642824001158725398679624977156702247512206722232678546400696937027904293533833903941668379818524641989994167736647543385676992266631869356273597283559028701461409228235361856347467129496597829784027219317317630307528357723324223015086308127371183219456548349231937158511812504641496864250012372717567032105519130805424919187157794525344213512686534584467142944661812607939318087708551630143734918736309973823735465824768312447681141069890251084337627813247758381130700938003800499651353446341643164296690070453094136765063351533791695468076416741464660264160377287200282836124608694236648828398675891797285679993486256309784579437176587312404571972750231376152419800632112255773121766967982050531435442327676915748604874262815993240755160765952784790828295925506991652105038281743442070746257422574017907125033763422636406904183571305423677079852905279611214661095234731335536438595537688994421435341588227318407146318049679754679948423103126869228557623187741687197421263173810701252023106651427189469029364675473663812218236413167966985563868106375709202679099119988189163626864807240677413712548816187627250231706737380533019913425695685300379094706959785021053857242963562381317319551300164304701334385883098843414544635071576447464885623010551954637948284250720316316511970768182925571459583460320586074243268077555808703628327568916786527433680868071939146027706410943832093249131831499537904833121262320329922759344996720051781391796397614304876773821790603846571274327565920195189508885523078052999992729685675561537196805394446479378265362927152612985447590661751976660160764959789739213269788164438312551956191829468490253558578706220250628672734481139870763480113528641556241407552302267389290116791105569321949420691276566470747903513288882257793122899649571675061916411242444883771408976279899123912041618794698102232661752178682506977581491173290320227552206536132830279863641045601002052623783878592554698129038460584321137676786669769343746895082659767180116212341684303116359653929877998247554743973191516599895875865788044419122605401168156818726842013979707861188651905202488510403645184093630994297361008111901854788236744723678661986389227110477024832975670470525886300985850092221341970181734749628738751649670983931018550846109091525005517116352106149576844614798185017703741258582138779626756252727466603798977285190665592615281363907154554659091440660447302888208398824050659247458627747589494390803925662048512934647092365759521855865769423356219117531858640068669799854805473661059963012863718674165166822652775111959748684010278022917553007362979157455925724074476337089345288858868788618968279882264694863835285155741811388392813859844682554360214363443344098824653899364939103329924871979456274029200783182697725152496155012260426992313318983175697805924155338212293751667101415750697306259244789200510256283313853999360444357187462459065378715991049664796998225759307480021580661561199554272100066434005882414361666078667537843089619608523474073053694596179605135610976876530090351732480687722223888024224659821882001379647561737980535529182957774718425429158888687147413342712926938434745962556907436911542818538936198671267076339446529140847200485553667911377104587916271091006646539057490758219700860427413299017797358673890723976464331820029988807319435675250982227089568892891641950549395674812735301505462151509884273154069572463571595702038122301007968647546793045982155855081232081279846597074512373354716321372750516409326574064262777939317261409142257804728621327116089377281792727026466788632562906718922382177412502020050395337863027742856423607624125287374453813933631906417790431206288292606751928550140554990362443380539248107969856742316644777248022845909298454404153385506566146068170008493202297907345380999668822023242428252869918016850634731631396702403747004853353719331350760945031044089258008575430787653283799353607050016765129741719236147927910964824321724684356184318140461606888993074236659666627658757886958838950184700075563126205719161243393545550547297866633884517594491866633431752586397359914164053796578345866713295044091345554290614029605343201367883279950569958745053292913792125832878965605135748490139486769087172858383927489170226910284830016432438982159729375204622031515653845371359211177185209953575340661813540033382478802313992790518404689954665109247090625381083828039625345029966671036141409550295021268754968536665568569199972986573768779014156942622897934041307466322751664750952199034243618844082600196985364956251880830546266481315238346471593922724927510700404336371640401742689096973714471670347366580412862900844237593910454836820845260227109277270135421787349851110210257153574530492086312949617987555332344013746000457490017910578688607847936754899300407852864146824514300832084494288681590594994647997787686057000311041352888510958794533654413249248440787536772756323079486871056283744684572451236141776130119163753607371937672959090677651409853921283414421764410907201032386770396833343893102998804972163950869385781849313906893662684383292685360153295404175715696277440694301428707577983626644841639545207902185316042483396226530193112027187349610859386048956638276482509517344035522344928960592044732420787724898039137147008439693933922818119080210864405357071447401312653584042358340825460081957953968578722938705427551347979699542444518741070955723964168253349495022258184148480951845979768719891076050338560318482943108125943117370320696403501482607781607137283872305877196330407086558209070035128128665359470792089466992270817515989388014912692796995655182228584887521763935414443146501304393903078116145676098345159324839440607076836048302343711179223710183649995937064204780667650615032855851862100021421778887222320483483601469347883387811852242609892834758979641208740184796565819265812481420072847150471527938627462642211859167050786361668707758465733205425102246090098917559904347114565547318947259971660113262925107974006675853073914927933649815534938466282844619697427499829796656694036551785149501850698824675885029627702983728598501329268530046538141320619482680610053785319529860996288204363104787188748414772141614012528549676942908668708908521478461915190831677927175092866295151278480499870171507866246786558092158117215976799088580701063295040123715147518944753515940848524101619068910560526151785051260433702226206666369164191294518874107948418842012864306378532378019901121866951470434474408598347546864248648883324753648908375547750507474920367258074518252461874148170565596388650808202890087814878509340199144600665826632959303982627661077390004450299609471271632140056948401356305815395057171644069348852658714134985804188470615803439088138379586702758194786575479099819044447421558405743787054545189366626936052870218732115268840470712508158970937277266800671361024768573603365916340576382080689147497638720433395064586530544856946292621413622978232248530205018778198707459047052390914561506853855161859523410985946241968006907375522625753034385707927045366831313044148047846604605978993753006727559706911332883060615780912287444738439239601513391442858731837590267407685710729026487793554965235661287133160797186019419800638738857605645910376417271588127614244000348195470669085905511309596754988783667347392802459169976206954838955787973333783621447820565211013522989181160125535215664539126873235391348614414374285473004489982366323023745274208436857073566276951493124725125034448951536972587664784744730998787739879619334733948570236003887313215777312449364666408364958799942989602334772932377850016229775541762990444959579017469749252124597766141996327511961384204587095275528112722397211311702120024348862743997778222174097817884257646330330853822472219637610268375505705559596448268797417496495686243558198687564764031403342146035191837507579754549920134926544632045046398926311531032429079171807599694473054595431563220325123802690902010375793744561596216325037641579371589986262977197649080386123925136866205006285247988424686166561457740610260308640665736204541704466611858473041112609737236429549349825646252859054728600428461449867594164032584084389417400804498362730562841243910153287194993207860277198326831630464678662417913491549483753886508001880650267224852693713365053913201601448524070424275138970288900483832533307438490868722038896654513416477063196197348723165713207764190269681180031192935438595813758626156115031959031980111889228102473451964080702239847959093077821462754260141971643063189853408302151763133909916253943397977765828649667603480328461876050598990536931274914303683592129231713139105573694292560876351269223690425508680991567243805390786494835974324771317121457222676026225878501941657353629236456129264748475512434421768449801559522849284412286554058270349291006563289265397335096512173714688044411361391598101602941428529220901496487401254087327441845291530755592824925004328060246634384843763005190335742206157520626824726682855611092092434422119046189470331703767752694666987385891792953047978582670920236828258743765249573768824806877948308154502391926363854278329410365249342079912957451941590443767882808763794341692251863077761772618501443475660752854642365194594402052217352389156339275379210677012456117073213322976880273649862911530882928830508920834045317869908362862797421787845247698663300948217443723742134904202084854211521840556614676827888862922201220211122463538846154179061441761277470683042474198115494699403241918407266494670906070851315083163703823296673786791485432585501440134978490244667937501572896832527972064307094030412006312822130697119162397958816186446788783860457492033627644564856660727163571751092004436766769636757427964502140747589220606191008680310747785975715153101998893221828420663819877444698482061970083191972382118102428604376736596397023910567355314752765086370248612967838573924931360803182933962677012271779998268998818701647964207421239478557020123787443881881535550908067097554751869434478898178584276671163679307537648997712148503324983493918384290449905223320498586252395472446947524390452359433071272226072286443445451015734875668342226050803543375486767361357227432532218862395395847305840741622092199882986036700532598728808870169660084563396110686715635970739974905515980062563694850260000425650860627701209381522166579382420566819064464950953501751639912807123140637527162335336598613721252668667038334027297625093443344117047225765662973765866804147569277315591135361107617778850381497625045715311160286064025998471735012555532073598629285702231350401052190980547860850345516008404186092451680071473267594463685515378719255061880258236514546709449096542438498136442187850379766560743506346743599761966391679289876731851860249247646489671622946286763880315422313374776585914666417087219286025138096203354931483633740582292814631287575656378525723927481954211369128254367528947001067520619524619394677963697957015721890513569875828750045737289000848668618080019223051439852818279498636744024015835745940040263577555538650125748272871257418119762702351740427537841883542798941180674384222112171487544040163157944985041865811991483292813332536288660104811688115078042985089633630808539743228616458289227310397828604191662238759534876852613896210739367221856302659191382686335307944682962648677692103408576357557003539419991925046451580278911471356943633445116813066085509298526538020278228267324798805968101063557311913979362274147682228332194345975703832177351924969111456897682553234832963898927205365700979727869429258766412511517057184349184586837051756467869982542301129558148725840964600509154428480340529676897892794862152359681057034239850135662196699780592422550314207327575870904593844312079170316666403128650575868020432283904536669948954966376318221236760916847206633657187134895180609992377080336182703435726171432557456417312034150423524838104541716513077718437133709516861256505094606710059480036125922315562152984230080675225737085182571015873059335510973075144355139449642927294118959895841793673896180870101996909340287722341190705848669702463889035713289968755946123399403323345343762728438581957880206350361056648490801332865320647145097537620179456283546617118652843292966253652705941032355112141701948109826674841514086695732468015813811126435775268671267352038789821298212140308124583602663739398176661609325085377078379681720237217272949477962596153898603510812233088281812682284122161713524506922266791742583739050726591839462719432801585855192570336222815271786471094175942779553788800468156329993701862264025361520108002128389777094524142685991615821213281717175488148945439561618507764438289728734048532937566618304240971774214221205669823184206798547810066530850687826661180054654885716136227848239481261607463385989178867379693915934871939689386950822053767281521871141469452012732386125609116464670339771290109161519679555283191035752862651167381954145111735065946916159705258664417664074397920203086952914330612062334591416784059077708548837021279413733503951276477180804034215916640955984169894504247161136146981504710203147227456156918827113089099138982617165424853484861080159313390519998506205897514646487514998490873391318179578262743453406744289016520448124406306751547511918675633886105507207175667848857880314892135822394689317279832571961026666316711537585125797608677255656124302117305693975813107789350351537629927852168318327900092664319096856516870081152776671935360661827184360039154110579530203384920428688634119341170892478831522897272605715082113159201359870635574507960670562555334381600576108694199429108323824420205648231425846545542617683831322595363319385791995288569259002533757689817763054845699397039657758847821412661700951123653144338414468728606463718125566630447988075534718511818327430596948472885248864993597060771810445335848451222742804063970779388807010495350714109780429123533162147026790597956480573282534700144796660884532176789038239930172922016520143060970471546507353714229150717266923552445324039217191287273033790158190195030667340419504963261673747369853639384182051223806186173124926291930767061396357067214738139838784768167476403992817121879412366529823779424623847697411927472393859896219290049520750914029784452629226318637053349132141063077115275291118078841555213831627770036041685461793085464231765266432557871220324502226696012144875208668056056031835808907415658075513858803289488143997710938909104266684325659500344473671885893063664679689322456431907011398785708268039144385023896213271879731617556737724035229708885405119551175914692519518020808944653802565053437159777992160626667651870554382453212656749560111125401304402307587492090750209539322021579768610193670471007640362077106993211822361413554886767986206817821040811100452155672658850128064984579505804670852191577833244208676319987315555748586583806506721375304751905830950786371973101639772303371256335006394750740213996551903580101874769741641311799961921042705608920025055651414698408858876077866176377424903300164407428430066218386905937663419799203114575378866885218209487861838110786922335640410449745801940554882973924982027994249974091241027391867020999490281916299480351506330723955027651292648870931232728136772113199546463115431347545195793788012054431121041208153983235011185553732645102819731612362877930934068085031636596013885281253453735683434867692976773581457390846518011893533046110151684876064840891075593495682958467867307004890985659480373122671861720331748907019249121812837274297767738076497654845728319808012672119751903146814246857524396231085883011483136994844586175766997545726510400058487580799021507528470089930087081429638073398851497260609735314821674146286151484436011142711034730392761235501572284992840817293246240432978436025195686244888598031309873483655831965726083872471058010522541415951900671469367275249810001587891407341683679879412602187082007379749168692395525107021020857621795186648895297159736867671337207784518402052284995553228208093375005781992065102710069890705032030187619939232609094005848408483063909356619692036017156262305363809221971551993344171313804519584918159518152203760694785968328525284370024660844082792643106667217479930205674848142232842342183137664640193176314519916068525272189196676292754635026585840375584754909407775458581629664081065973089755950190912938991220731552492318005591643491703544105368990929672228805677715089478314114869228236996771644225622186701656604423381925998181116223193238121702895418573062510422656811484273771298956300165449706273849382582178442556622871698180916589478822379729080364292698424074036582123357694963866102965924147403101739956408746409606513480532922387572509748069858319039357526605763441379446145531749753402544545878515618373329176267362547854278891047901014949470073458556887410560055152248848649933291177276591166985529205491920121750274990221830593477806090946998582245839821084417285044789189227198094414767764656980750406059239998480687573376382874549950843961743222484572625844413498028822508536159577556222017068662915815837589636830829523707323107023659046649475082128967860618275191248842738214717508663606344154270663901063724493272971614183094587040873809836764183105301544804130640197962571947529276711476246788283680961467264692253350175537782889028994880153097587411164949009448605631886358723073953820828224381581146894644364661911474675873179526164586572424240224154368993539782987805628190316986182725486163053054652554642366498147675744916209176920403908845640645660603073734126881757039970237594340274961679713581697557026154277453118345862609743963740721760657966693876243575840969108876323327683463927558084665322381382103524811808278142916534564141858276305962687275829733402281627136916758438868472207669517209757167012558282669717809641021046243149768879222710102684250093937382428238453129916767787724540325697293014605633594343427788963386884294945825213576019147521521530192653436496853863799741721971669214780485772150503176270685183366570318766846175975646383743742798454958311377077142098457218025934130199611939822867343331145137934221030117144313755515112562625462942770011215816662350640754754104549616203389847891799668721448595928726924787317205687919374992679258316721672167492199971528438413388548670811935318285627202618276524431482869592482536919173236648862155767746624584417212113876988451508889063191270824317501815446957374869941228736851171762237084647746344098845130097717050451009513417629937772038549892656352611488616895724954536138286274675123011170689819744194099907865821940344664049558202175635723911850292857301046670994088381256508872087058195159476511244382672775507465870186799855608358890409456080281474215039607327522525097587060227475729367114833825483457430540255323100939315568007274082413652388431511883939746441657901856500118229379142947824094924060098493857403270163382239206190425729859116009782497766801029568199247868763258328919115588588256360935149276055111529692666012987247336296133660819304796930705190760620267762633926094324260459751063805561162645233029262587646257149396056009020814569705497222752248966483966257607525521171536861028424429696529481548594851809913361475037958145404364962583664828097767297059576511183457086509257264465714397972421471925279181423316451706829140670291952720342061718979782116480151905925836969719374399932911025297804987736336005519955699888151421491336553562379058864544166693519014376883707697120139901477700458123076896960618221479292177198366184460106049448134599626600448740005894820923842206505123372121769512827684640048121794006949913122233359942740293781549720843386693396061270336137141862859614203043842075146269831348323373348790084629738279090553670010626480654826875167649201992050124077453815531662266410951127859873184722171332971819019822395216348030486405480224189669158449788705948489646436291409079082053565581627741971219628599856331435620979580231645356715390515996720538039120457190979458789268597192811934526538203181475122753254472992340377985926390266520415000002421569171864451793753398055466925885533101288695491632533152116092551391923702491104570021954776197431699423646201370443775441051419681772645629142817183986815914540035619560585929440838099673424424420331092206209825132653824165753235806390336381146601180873293986354250786631346629070546036739327258390244141474819088546352948174034821047839088814951083932389153787563678897156221524254521886398779730163414522383200980208682545559449332746507163156628303620523592270596754792290255191915530631271811269620904719620575893986682953461194261963090314632204714937013623345190332595544998441177508544018805098052143393941362278042922189942327362661901011575458509617282797007972056831381098816671807522056587382581272824657421559533088779146768369849329908473287285056613128557316487092737678559510313192353176369700152380756551620769854854055023381438359470904464817649187510742936916331836378675393172407004849377242974324891884166593573426884601961140840786843262360229993759908944220132341812987677837978781214357651446373700156169766978354132142270894048142655019454217317388670720463154069943164523585707246513734938442723260248383822645204524494660625252029437776878014674498219664005346858200156981343546681378187475851932749034027037156645397194247353911486613537559369096356635132721551818270274377207603848585469907911240801663172806860107728662864062057391714997113432764636789938224777257079409300715428044306035487101234824799552832313715334702775890174949997872777790599515388753881775878964932464091014941154149085998654528867930998001793525051808211643648972633782950652281719437549614803836525759118767176319502917576659667547166759173579351729290514250570696873430752047714643139302812954273145594747056262329463585860802349872303732788370214512289896984270031896962878907266467576246998341958121753369871582374396262882295053215628496315278844794330666262461186789742623143069067597115361120655329125502036802249103992138814542546578180681407675375818615049059126158493547161376414358771680149305940720778485772045101336679235975781377257185722029987766696944836959913169047808218743651108065822189427954202978672499657147430899115607791654701408672144542250289323192244289668173922157928485158807637155509384025693055018546883438136413377046181469884241415062475439298340851325456259089654601014468341893113233086749977042051656373524816805738781101316854188661062453889578218880442615293988685891605243066748688597982583199436502432539485118104875874639753307604014952034190798289319736981407054542792156080642048200261915193940669050716416517140970195677513473496680573143619110214535296923908408100341430643366451387620421493964430454012852103773829441986679078016897792665207802384427784400787928521350295725974586170603895418335949641889347462873847543028430808376661306112137825553298904656916110305821052914217467153190493208975241843604197347939497321123463315497124259694484819675089596700644148559041259590154884356354315564958675243910433052642315737936864631650284863849520940460891960820088234459177085414219006895223537217387087547643244040361171866327938532976582756829148330487253335857491336229729704684068432598813925720568212949834164456623386515160613404661128914317265791200334995989461772420925529694321514668298804190058627676165528873707260764087521850337302612611830304218892062802126922395289641606914288464899295786885151145639775756745704451719275754886707067909235757924367557926951015477028634453829335292330065125290893486120273813170291364225992603871043710554311426053533130574410251386344450524123626881792154240653324355054654289677152955429420613086830119190587095931166669471547113997404166104369254395044603810107220013283889759823559433829354690673028068582937135532969510574279187852922758129187706324701263625722731484627569365576079029114072335901752187812292047820995102119420474217877823434712709905166853023693810891360573333856390969852586106272232980956192787246996389937534987386838476649357072180136858547106895661009145428570703368264535568162410374973269639390285487248637953189469689632382339220563917990505662045882803625314967274416739073042916048514997314800022410168321885851937105576200678405433994220057818287774805096276533815468191053423910686840936672908221249889954775235634393763754927537147858188161872613604464020107997704650346017511248307745247028537636690916790398829364932468860347047578628026163986730407631596022868676313807695586202081551906146044801370948734232548061557527314313432991481543852208955493697409204929886420297006129370841344218813462881685365800907875162695705162599834031336262813847594985937810445643694556046218919005417796089114526546289001116782540618972456479642348155524620814441812545176177143383891826906519384701222676328645838696374812573709463269591073291247262941140236411841058668228942611079295942574038373084328135095120003555962798190678603522082744482232618955171651798281212671558623627810247178758892738588022049549728503044770612229549701492179877986884981654395955514076164636912159746725348419541061344733082092438614671062900785494643172639973840215883742228139573171301099751598321689660828917196248706340022899077654722801187506963900843211869535950057283165654967282915868305704946921752846379990444863839135768009704245801624818234565850759771384459637462141364590495874677829307186800484382506461190538321425421140389495856475406869565536080976713521089632683677702116920948265895282551921065584182155877190186181566592053198504823190922781682682627046672651380970943798715923641686873560752371790587603501669982421658850429240231534025445147687608825840642085216706166039963998566917236890591046016333912270213211027012885684555077153305854361198230067546293895099947499658325587599111858962742461157236348882690952732234040349987090306163691532345541446670038213511330081745604724032881357081448781534841069886904562361446908048103085412661440025737176059400977744212866235976695872048334668520637575309637487481869611755351358286827953466074860918759258914453413849876424369672297193314948129999758394797701094380408225068722161164734142749990190758307859095620470689869534148571560621064817885549843341536207698065608298880314583445798296813297367322759110169171009059863024986070725793618570891494965753350083795055279884308678263057225799247357191269466845859482260561115008052240906193712469936032160386768959128038660123271631457272289540338946189058716512641575737788517679462847959202367343518421893215057620071330711475539368301500074734625392949623760175707602897805633408116856608366670340581484066847426851490750552637634236163882550744264186004232155852985991743065463746050956672544504704129395010847310733273186022132427205633160392646380768488480235588306658177762352048819999051429269232198126765181388326054987267852692541988196416336637928413029153878746646578255893275729443402192418637521290359753415245991173568821306408568293746661561750681524072706399427840945747501793200776933131835581533500911902787360152498595729412880927072178243305966064750997814831199444591835117294632939601139386032857679629341739297844352417167326824364797825530452215915530479137756185022908791898119415216651819168250472781535751045148669491699259425719766672535935379525490712710647864839418243807714844726596522361997291808850160509494866523768077718599482103578774717878483131650694465089984700937922573064583756774444828644161195878744129506762729023383357466409886060633430152844694732294562663114533347421206644662385262811622741930487651156464867818980869767399681306850499429561196492026980595711417484196951600486940268524256662329882136820113103822284052992447032851370856132001888840832341655643149748567381835477357078237365176779746474154807611341688046808855235341505760276873848950585684275365105177391001331524506853425005771415914938781070110011085695218373257846190032912043782714072416114758949765234568091209259118199700827566349516767485672465254610275303835537425625937740129494851027934337732764447682705555389714368421928273031638198389281039605098708025730937365871923964441458532288174348516750142119434020892723575556667232418446567008092591911202067697398152272735947734013756676898579801695069432537896169352302297867745494434567231535108857128732961541472815626288205971000083897848629087944394154237551035742129663288231471887586939526191886483734168863559242015740958210166138445600055966395356905122399559486083153526801812540852689271626229359188726445827417000144638126773569073706787421867758159863348198867310362851077851273658749229709935428314800146859575315328701825202235017018372059694460553713209719165943147985852928639899368835841858574037265565072487117461911428372383864511152850314310206940760767983464225205471215038910366597950688232304895162645092251389022192714317128953708101895554394971814928757532329338772884646275164918069259297085140984119192323433713988921416878729601160176143844818782240179903016673980903408254558851865561428165974591649311689705484332642590260875331365957196062519596108555770483567455634187733093033209815207819114225508487945327684301053352492641806973658788971651302936847796283763513787191816429722605121215445908982029656769384655554611265212272723802132061241160860519863553208559850067591206589874055489801452319206943471694459470157308179309137988929584176255692496102359363139279852021970377498211407978559872783713625665046277000450273416411180275918521416920941191532034730877181524483049632749843875583648470895800701261559784181800509652824393130866424689225592824627588937859961829258836949537994009526488168820254218862998681313530832964862280081079386766478412954659177830675161257797994583213275117775643175243637341659100125961980285384642785382587114361874843230790793233456345265009774678965914630167605625237086268207166903941693033457770066538504154528290072801855822393916555451274731188176542241212095239987184998745822975014148314089490330995192848843771602661543539108190021802678697755335015150499074065432379652122039056235591424854021257676424401921034790461710401823381320352893471163111057991170927929508941079884951890526759115832267798278766623998910570093582766613373849695724814156046800897836452244098330343201163738348825609202996155092580577765753172881274317199776991904135807060586738392590663456576525916506126868066894759855073939927658903216557063654137159989366837092379917679128624480280893875955471687487207323853645617567649133756567692284651548436555363514981889474935552543897950828818567405184605389086475403849824491711947481066252253212493979403129741662909612032271746942096475715656611421629608960296361575181132762145852374877252426201665667881518059005228439578179695862044814560564607865148918005405909426219548469847362778572881256712438641985666603779392061748059876466996460883442085168896107541884786077941563914066929688638321326945522792400386655365073027764592128071529377098383385777529988423360146275216392441549652832033192254113786876929970810915998338591283516752737388759383622842637495168253002261101120624779728177318775741989893659204721191378979953247789580928544079498823202193841129976467972003028727222190737255814125697230015439611131906601141617067441871431644339653333312362411071525103624178188656031056899044010247209787342064618621397374015617180984802502719235007260689287259632502136867339027947522100233843601402119602942261313633392656937901583070957294336572151761830704384961086151965978679523251658891024622563090916811547490900176813710416344207058833751812428986381582268357757409097460359209718797558205818748405327665485343020435498102965589441867030419456251878802526912044265030517304508760918060307495545040821020231400566227283357474040608321765574908712318387331140027518133580994291792302098909251617176164091245863333189355238528250793563798072860682695282780181722245572512888106339402165694695680428974662873094984904599706058100036414364454767593122912000800347345634768155711038616363737435246933671287724166423820904298293811519199702154954193959719370701576244118948449986490864775157909823356595301901241141997265309658846591188316162296610310673297596565794738826770015314895331211169722878511340134176259391559653574236638245269334781457031643251179598768303075943411036517951180903218795475411746333347921125908207431508247026208502154067223553877806156212863731081776322204714899478786227101247132090469212481689012519921635909190604550726958313123899896486125141346578040093832354473322391879801916487076484171740555534153219068740284679672238517847805019232247858972992603820351191118449019902754766138356864071653871799653315561661352943333765023957137561003155861295941418651566702230529867360332478958505788902284009373275187246365171344690913952690030906867799644857605189951394513748275125297208404861467505602010301867572474755087943532628609123805965220583759323091015477183157751296611435489711204680263576571080753974304718387809905052651097426304037545787767309399825652572866188218518735289607116132048603026794250244096768179890352980832047637434109925568166019048464022008458523886303676533014259595503593509679099751977819547257349357039371827643294676571360887376386690725279673312309755225783140154192647216336291565217262796748022574396468176613543349946085080174843407384077378354679094402404618626101598962879173179238181658797978670134721114726910069545775253954901957288535172414606239608865464305477452948612607617670462314949971761679206730637743710248214202709512535166216550082800618701612389561266584887129049285668447703744209870112393977268391281138748910127073297224275129369485283458024122716192749847778424095929521568072576339234295463322833115240179883642283356227957795860284837879543513205981595651426556647964987329115772512888993495198132479297685244263075511061644097913377271584401613138234877761850561685304571645068346441779952301475246257025627096532155697248154069261583127627644380696126231703742681665616455241891920569619722090884551924514348449470261515170403490542313730740207718381340785598374129481976258407355342644097305654518766259370030152271441644833992642953156330981717888418964279547568537375322272616421985109346276930777231377979350451783909071058442069294527335094815811175783442046535908484906769941614258985501868175662425647662490027377947670605428735642256475095408239539116745286580421970912148972819735181882162616785633814378563253834324625985377902266911166038396228210860196977595247880795650591549414722688128610088699611714688678807519909939551728850716306019638578129852341790210878918401128921612413336179841247792650088572573498076437832713649065872117672184799797676707679652683921740563778147367539758998385036264545052165436567629825433141381323422877143024438521529263554737727850243453191912454529782079793087393864850971516706000362988794843254485469680774261311206847142314952118116113473625303013780595636884236132797539054208099552510330810333567215386765977088114495762298379749843015932080838188836800897938689116494940350258459801188908518615288905140121704568279366474812039791520544753322471816907085327457868816639969570657248380455345048640402475236319287106103193419285343220789096532558194776536238663548974229517618707491138493859595953682013088878768347463052312965270300543768574954063228741405745941519305015238995745630265468502711942248610569406280095555229417859716686854708701585400927127104834842299240409096995193666780278932660967245373494174404858958847571409786359650267148823582667607486746858268588741020378432337196069581514058133778770577485097597328722679165917388496412306655854090888148838258439915847900654165877000293007488726763987903095446557595220653013126339144885181966762221703485334663566685523112771627104301750694151163447452058976461963655120671272224845973742545721353852047579045214191790558483338199935097819869386818199661258282395872631787780145140144960528070945528070564285927080937050459466296381034684280193986494542012008398572857508176723853005546151765101995754678781023175647057165364079199284661224021862170311915984426901418869526070305461375833538710063915170001759338902307963470205224983392269701560269050704886485312022514359550570632661223897874951678417017959043501169645512934310803708408916388523158330479232723831994626590065901961332938248449386433334210040657561846549444215696160303222396675103433891724903143005135013851742648290517957475947962800973238362451761602075503239927091887573358635494909076152778239738243452601527511312098858746105116029015656468544263901205912798100537145332609476111592003947758936441778438754486776186344709413069960613034579226668183691688289064959962601724712376593203749051637380255366338649849533952209220772763886148865505182390632913225750628786827331476867720144564448673786204825599650683043102166558687168903888883148522632886147646663190954236951749320417398553149638140576293978753786347938008472966720848813574490489646172501175088549565964813952146273277929053835997120663496272693502167652527902563417700901899752557292459032544790945935829870481330539190819452582997578894195355758938568564282203393480476366694974505603409861787537253175546497944909206633446282314643185991568262170863286914828185699578875882676036490223045805917097677914794415338231298412625167646335870437408053552303398248835935154335509260906987442612835040216315352790065194052602546018358745184387690601846483962684161188930522168006355031871264763168016785851933859412431537590490839253935535028830379586313779638702218142847240862557326185685019333802338563365560724547204310165157479782680529754727023015867158889930305117260693656465249422762522260048937567910106066357245960796071378664792937197529466888083064869421962680191810633802180543551422668881368668477822953451609792438618552425323647991420506816807044008344416281689773703314922465273567925457668635403737070687784977526601257642954599465757152222331003504797044750840812165952771071167779577391535205860381477807385175310917722860104318066835363160211214096925487838727580336099053700740230891992064186300338426057256261215005819278019807779858562018142910991182829978699539974741406907035665872541523094446555336293630379825530169068134082563236616398477840095090245565388222434207307006093280015154809511324326191421441364725190128553505928254405468863672772613356925945946906818798734862038379123119932895933921458145462137969824610741792160559775404250892566546646789543846349260111182640591744377795437434661527695778262734554600651072315724130304299405463075080131449297661610414129130174414067481363837251618124260641285047330783906458134491628710134918416071031792040663318970290222546414459892992772616210647678313967719716988802868600175830778069099570717439825800665363435989354787630362292432036384736240226538381392944754821492512291739720078483484296987107760244193880900027332803079574966317130205945654189993875290668275563022489948100365917956869088841019249970641608109289549545653913917581753260593643496838936123387295009409450816694077727957369915287624073370740062667886661537259792792835407309418016457230520153851261621743760582638256250690811059913187422538933581371785839806367222210538459634736806311656050220319417150961302949414490023840594130257491825843450475422861627722095844666745834457448012821485030201058565029795675350264912160432371250643722238068216693840626795400844432163315774122704491924860922338621990276436933171790436713415138947488612774644450757906196839426450584749646335608688365005883908629547683362730217524042254695725968874986519271519498634794079791366997663652736646824344734926935914475694948443123077042600731123183924681921979144399329102345217319793967436358214289743712559898100258171141080238654330991336352868753644321758194536671548438769282751715035536898130269721543787889416956104675267433431840229614532171809613433476473467616217234516996942958972819508011090977280495214860694144541026343885096069817542288031124831257039662223782326798108090925642859785681229775839607400012212820634646420164166798939295393586532810494034449915849494866450237135194369684916343973110966336165535308935479064392696756449106000004871815043210889792251869053355459574493420002672819077233209578229192932315645478627267935584551722552225080649409373246284345469379201942225295408215887047259219583419996498568313495582444215137191791024287016446958801929600369792531239644397359049132269240605835631055358893664327830933855856085887296375793010764384559092364841646015378030308714466070212659350362051806805043566653197046256028810343678176580582893998682678695259560542231232896570153033493102928847033349363471666166636067472469571135873878557420647725050026942801409215073470491464206104118900295323098642063482437543992072945833501918351386730978223432387554756889163512312690108622434145596360606438791350968813557730741416329980847875355452113861272093607906661578283197628482350036126550693871884106071856001884937840401991500158355622484279234602875879931179151194064379902431494185544673845436059388846172991768939330718553769910478199740229015348133996216999265621443564475741891977197752448614904808869803392018326531743609717338587435484277241282271027238170392553910841653677163595660588309533662335109744461170217191572265432399830413173475027054904756780616045608682433163078669245088965579003894793775306274529351392267901505822687944731897346870433924030313124695138160135478438737564893413953937317080031969116435299841978145788194213021843127165252646588158057674202410137333365129053604847621946634150307735094412962244807881577665106230247342540483511939320932646275959284626961412756808835681547673673251790591969334498682960938165652461440206586967941047642648632012372634972929584916998513230091205405531083395386013116060760207918484076316612206447046903685218024356653264180389881481333564944102739829887997304796681917682015505194503093478400039861057514333794426916653514296784877182607709913171054866089688480966124148264964560286541549138866166635858919346886422627509039281879707527936150937117466029501468502417437476753723338059406803195096636259288907855964969029726203960465480554022501634879147400633924968753623787711519716829680177231775057414708508047972980897949532535917036426838100076751165783293093422273643393725782008233910353745131633158882624308182153908550295803316420662070139589081595956563595196184012835340544996383897766958931442774784016484017252810156493577913228079796525889691714334403661274829766483881562786390516680560899511199641876639753067942164339205642001786822291091168986253511340304503296470062948063970574569732849185205510162147976727979108488787505546751586155817922265596055827987085415381680357452083687176003007474312742999658069266142492483318496223083068939674633308126019053096460947225034307533387291289200255303758517014755975203630757466586682561359685581463083175057846875365504336687396595594033706678972067134246038659345071607222560766116999018813390665994491294789378435310175874481096555419871468953951119065077559886781324527382735763577685606872250251937164428473636854594040708953003867855870014711272169101387515091523625187335691435989318768422773259185026246827609466641012071066683699597744986952406595837602564111484327193338197447566259848565214282943064490267258275891232612893231095942145406931337568942678566187325840069405296222290072155348927098115917233673674863324630030983685838210711969824533061805142817650519470379866247810476829009254793275658624828091161341496515636098369245072471234749635136033081763993637361964090929069386060535237608562237454958171675833529998807011545529103709264074559518645843239668621962142656933103956924726130184661107284627070176448083366549363187175997460306547804736875608439876040905661423391757194730565099965760417206399102503882169419943784220867284492756088533089477275048459328044625478983941664303414421651313554045250309901761832263184712057651959638484849515671376951175965613306791654536730832207506005518459017820113619656200417754424998470837173920187239960197976032685219179958408543781539338525166923617307998540217348443729862196059018002251158049263153794651833222242243977906946282480927700143873026199685263744298513463640380554226184746809738303206125121304819760565462475385197217779473810652050855238857385701118538097866901285283381524968101802850239208600404712806259313930000788141416413029523713393488900904705589537964026952171118686558626149552829570291395126443895445252152577873252623998867907782634841122347218614315811495346250594378980844062379822281779165388992243853049131389794688289037783392660944673044806233484854600110935960547847218586636420869855662318046894582298689979298782719297546018811648284428100576215191775479218116794970426405028001722469621591741086764056168957843496860981838530837192698948153396058063898838638580415457784240614558086780059855963298579819458279798494706123661854805047543365552654381318897023105324069124517183864889006137778404532621498607593626371633671747900058855551412059572479306791842646922757189408039532253993249775376304485494767475719299481841888322475433471704798522877865417337998355816497315815809901840882372904231250742699136881422871890005065370551057685594816241130534995212336453428120548430566216401786510605193377678193627315059473976002574092562157052673179893971380698748145199619687010660014041979439375133899950503011389482686950452342002057726043426281061589504517762139282755486580812860946543449816635277977300964711416690592169379813429535050269720865656202710688864570346821020848641730660061972977659851437702859307035539715122989669960620769466191098204053188598132524923832380901737857141680737409604309812797306895871765415013826672067662383108696007260745576676511907929611100820697542676802237314166884428922955227336592033388686756132409421789812836501065999592691500059346069230259283110128761180648865595029611585123864135431528267104208357433638246063157317949103301541895263547772843400866310246632154608614452049480641833993768902142012035808438330682403346902933761045805034078585380081094747353177622162417730997490009517739895444314899708064927662143904652579299148813690078745471496331444474327082265183984421269094797160583318351510206309407085353198322954516212719024186471525031442722505351645903261448934069510272605049532675892347985170967013346139274587836773684841493271962200813599988148092536673410898796440514742923784441233079045525057014940963258622599906827389052427044476350460383891334840155269374823427914287242420049879184492845905334558102135926221941629637111822342596759337944330300023622478359878465663865369577326067851426120543103325455924917508285434965181323581821417916864284659046564746968441696900791321067116955110395424477579398052575992555382024327327618551743395210384342020966743191043596648975353916779947985763920134632599486640616925697282226177604997912424265963504836767830070214057491232160085691673893428784383499570161447952056833106417575710712094473745951580117439297932865947359279006729457141910956251889482167989863125945932310576633118025030109743768238844046374700466631121113241427718033790050501904666205285228273813741883797953926589846866376298289496982684365265443965686022348152103907821274852589396240174411550129553072014804171659374093419807182191153941659505546851959094309838843836688893277006869714585889446365754864428916430011785249540314358704954862499530877421625756262582915216526761655342593887631608795344724303155016747854288108820840742929873026365023525677847145927204208800153096974288349370336589632081238677362038219969700638195612350463138323908229287389142621661376069083441619819478439336358455525785146409131025287088031145796814277567527928890366937716039198057676220578619976576653871870825880327414396820848363196745193514073974400313278984829155913520956643299460583963908800863025437674069687788733370881560922608106134351228861099019589050759155000353861071073980256788775124557971360108519876420464584833721652234952259716398378744347625971258086290811851013648558948348156445892909714783239314827718465958189313134889277400555824152605509201529323065348764343343377150126006483346001634975181547135015720368721914132090761428939865426342596822292173857050095128376627558819384560180818732475983757702525259026118657582023256505431204664866223880884143779733409439143392818556212146663457624436270497302111545605314535655626238572316758749204085659698734287795144828296971011820706133908051235131718516131056984404807525996634430130811119584619640037189826193730960442363330020481783799061691594696505109519502820205685442039707541117952025646386382588480950523753505423834013980789564950695331509772368540882408359841761469874278109984350127286481418994692205894561614261977720187164786941066420650817579033097520849943206365103285955845644260872823289688611905125010677668823683035953901591023458098026680277422867872334264325618230545032233254993646314907220358651253851225335619437560033034287335374212102551375750362126429710489403310485092769369409276122548818226566065496472923173554953069713508715434660969987118973217841575160306174473933509366315074707518769710355018319689260303942658409646586580967274379066179379950896062475457347369350598121999133386859942142254350412817142618728596621279885428669868389741572389025773819291485450776913487476675457056201838852113508527185284905047457460544584383082745196564614537815310095296414691650819856003424699685018703001124466592060539296447477654327896159219742701663719702033198229537744655137710322427469096142880109866416212543390366189569324863690045674677700471828434870583339270724462543084054709111183179123519574018274526598400306111469846727839552862163733632380374737047036416704681161009892764961235191578732972462716934563574025043631869671497398354414174599080714777623785103827509206956676116171180547780770888947615337870362367448886926496745459684488711004363383181965455786611627963759345418534678681846222599856083943147559940172242091437640816013433952192572227470856419876993432642207485919516340621553399225492069369982613034119279595371336469153677348357968381867533742141157470157553249430135616840269436388364745190563447231125323498270508527099363396043941071183442721312891365562480926736851978158371268513809918147550141147055992145269495562538080055361702055271043774967725526776045896298977412131664593954929260585201112574796322988830907539276857353808103874733739646383724755759095589763432856330694336790574425866382508188102612677388439529915227354921120333642018300830262728202888051836654424752326249032168570050496225577463584785147701822042234791684862897623404828635632864418225158070020515066476514625183373111715690539968954133418401363615440036629371819085807491357942688237995042677060847520533080017641803731989573439743303855101913869713295163498403889610458821747631140291622122561375347835466284957470257938962696244056245314088750926550230353605949884835952121605092798586503943928738147462488528586048093717521045377383294288352200908303877816545245817060643250047003749628209969613042521843964520373767470863953767556178821763164161929151463433764909223471339310043923527254620378198923744402727320556396749597685511671183733732273279318060025622496565911953141474502225732049491366536656845644647881310115017469748222988864407448531329657368884661399384411599725400150684426582858193311686637687469652160473119696978556378048851479523970449761903416015578178466804949515627486329334919696579448099246675965124326948432321890721030819843926434820123738837452759056073657112351252461020949994089992960373726869527368422824929358433521820169979878265439153644701406028404145758236435279688203608283698087658944742604198621131299356794822763693054069817673287538937242964348776634860367764129208245075440724582866715220715112661593933581777999399410324398304559977776015790696747332214237464073181174188788674336033883877288569400619367279347184983859097518489681262955991477313860891690514824855030769865202078149111014487232089412812002452964116150620712812076986609960763404452719486079291016873978219212559039284810207449324659418895127352487269995989212144125301940027838270988143632197747379331362706560805529272377776412203613305807036009952587773704827172345731602787561636703717679123013396528717336632076075870434348914548724980534682871249658480023641917435132864683398320144372366196858342751271188795114979127084189589860922049902540810968838198038748555074424995536469889459045023093339167248450889812760032922865340434471997909435053211452196413226739911462964741434656231274310510010052890671652386844663907935522863468955412172977009651349772358724065864072159974936559297933745924892295761728833069150916654498586599219489561755482191301046966414015483109382276960417582766280213993875613540140148803220955568500209242394661774736615887255765486771340322773066455104858528335917707215128363501625096376920277240634314138849607066596771085182940288656105088826162057444040132013506065052538762152651499783493234661156008704235156361299025261445129199944772645035820363653074712631446820186359322791668666266766703941691041991915106898565950619382718805493969973896566074673506000008391749660397685730166799115136566877751561383804290580144150246168575885068202373076373056063596177170451790137308578992079364781864456959763800353306355615781858928132847984096035087460021884127744843826586840739037647786187492054443901474655542903655675327235385462603410790855545006942073509885682103354253979194093759922076635159083880295447357614960914111513415530056668046280380559559854753383717431214912367811771310214689064809542314598607671692978655049782220633337681251188332721573234030690636327422821063485237673703960163412306457932990592983139691584867426882802180503710744456945952781009618451867772205777508013141592845556420223603643852978726230749974805671012791236779212569552682272272529169222612038680623389119071531088676818996074206661650788995416003045147649471293526634694561181240935823997104271648224283242107201296660269600414423767769071829538951092705564875822734211817100700668994167769400378843194749205372581279354754506371136995237275520889269471968192048557820774373029988518321753041081209280590287965518819373866834892074514588060262102463883391251520214447353955911025176487590197844189942913083687258211795049979573541329189562556068789999908735394767837949151657467322318894788902413850933848292898363663942795526858942461946542125744626663342168065657885481362018346662137546390186448349393934226040897596920499066592079894346372420160783583658581341623318115481968234704081123082745082076067751684909529523908791876126561419411038913512395779524283703341078607256486513987414395624815830905059509480139685923778170147525059578926778111397641303840490768755149221756295208946630087226407367397491028283353918998183199263102233484218876736452604192656787475041108901153771386752497006132220367365218128038103650624163277365766235934000648634232855461210554209650253049812527538605749608611159178167180527709657456583788165109143021641611112784038091450703154296610996630195533140748354049681026695896796023806021473559780401829400838862081420744435960801320736559426690079269342138280147840778000079612079883671144329809566147534209839829101127771995376068243218301188424028679614335617143344673134923950425989818930893801518548176587364650888159065190484282676559644252090300898872818146231720558640344723073140055090496974405272632677084386362252331650499400484227503911639783602247130285014873609219300509053090805341587426636678498797787946848570679652154710533469573242873039414922250608564982651521687426043053355573426208550430583782819061176833316020747627106290001481293636368430423573054073654693850839805562983777279104254860827521531404566330965609996574628323293060519899562823116691138377569764461364346115282630789773126155437675749301674278406315720985881335361202620147921896983258533009658180311761432287896170457787443324725925448679859365851858292625028822837108864315164513526123027210257462178826982777287384187780604545097150682679705592199722263388427836840128175445483354689704631778676327306727150055407202383997506536850380791405993876450940532449255205983034305343176401562245598823393218650502505926158017376813987346947034768949870995882698443986559971571371130747772268163652982256911833124332070694726385085594186420875205890784881732982679249365405022987066527233247604031898023485432159130677048239247532588938746476283443202407950419693392267405503113455120126244068043644552781621266030467020204588030983669865061778605412609863668612186709323295621864267940549413475596541887115677378376048368490571988942481137739845955501263778821334865105308505934597867940273575983122200496426789769709226269027732808139792063444007491568217323903517947850102459786477092100488726362254923403053115296553179363058103692553355183224728202348756866983124586603852264359840538747946249350401175979774984601178971949508358158122986167188283171612332103456445697704495102230038383028607084820368104332210553646343599333212436109712257027903652546492283317962748077155389939642534577828961303638716400448747138705731346493726413191446926670456813344043723882468159066107451022026448608894700082913970512410878886688856177858544156621178840257841932890717001198683843897243458387952093496246849293624749173543917891605811282116846095667678633792270011415132747932355448029206306798370768350282317833892596884377598233693704244191218179280084318336205589034554346655997821767012774062543454035828059268506068255878711362389346729915631482942784486099255774170736579112311958927892559168185408855747525893334851753843102261438498569090936781805956558172817083452994293025835708622357504160591920121748656239391562991596842593545403737828135088491055152895207382709309975034734744033927131694352502594355771033555318822666861101011082357060626596407161746601135047673912485279799501193491334416916060757625938893799815018450104917274399177544232426459435405988316021239317980322588199832992003532711661658261553987656241218350251073283284478431468786291508630754410054317380160624926282636161465255020631895274456688967175949050743049393306834086019675128350505016241819852960757000333214068066328223417682823669244573183214042613064960310058603306648956960198331056586163601301675894361596932571799069717816381606172841106102982251506829320640038594858991409200587273535960867241562535274220132807381612651169877846394780708762310925707854748138760135234272485391218749416048516609040672936126793632667735321459481546285186742952025449211650166846129302785680238770280964139002094076981160809900667081980385610147118693584813799596405645098975936679587650445547047645318713888163217864749385541563307990090353001312620450758124801604852776030076191020006305044781301979528585534501899917519741408513288302152043193768330849260669833899912437605546816943965330989929071005359021491788383345276476289300054913573915600644501361218569866649058976498579157214701690153585983908578092539838745148704917527647598357198051545184157305759832097522174715036401694952348449404728603815085417654067852074694983451990680205383459517244996776891421165655397433500871874010389156807812773365781925834499421198781537950332133367752298756331445692991705303560933895500582304986150278723580354760087092025782901526863438821986052484455086506669474248518566385262701901154055325503476510554620755221464344926617051870294717382893978359592553940181604515881594057632880270727235463925834080906491494132205763345228796490155132834055810434373688062273419588508350975942076961782138462647080487770607872670594049594119881711891412700039003585243337111994584012259292765677884643508580440568941954355244529794314812776889315244962980119937903890189259546932485625871400954769630116203031360073948356467522390962714716198302732401327227894561671704641880703462920656310233638235866165336607049467060743739171271343157231037392658121111593462356136138487499952892563342377308479168240469518375296203699327346069877397906626895652883709345399110795480343748760719402458439593877964313998405069048183897062408478863929978600631321661452436934999024357941569678010438366300910990293453627138569633468634232760148275103596949487831201018805072369265114406319124728835098287622128523204449892444395810031335975907010176052540286515009716235520989354744734088608921929517741191653514822397149616894382780367288454344412078433932968807943106938076542153810145963650793710457631966693220553983112545023661342115506078461101286704250246149163515162482282374390482751892346956828234643753416464881054537432576352346586944722232430664430085867927032483593354558763895895812479533891547410861096938603426982223970276419843037703105698209340238421349991593697634936885045037238945085575841495810943251490819912890691906569428570309889161314435216956784519197916567336382972343249281588087108735689459942130179889140529530989129558108345417896040954364186637371669607823933393831550162786931200096018247779128948749513100398393429310937773499423794272303426714957823666314263239695532702702207425770180648453547533427643522834907027821038946981481824650652380847441839585236960345055681648962254759692818342155097740978561678768682883581354549838616895988917645270444155763702794670385838315253317440929710961857944141277777211192774042720699365309396406717615422096169141460938959145349385911245071736761916574428591288506260404206315065034892598887087890373440205786923181651890041856344031015004541085443691486293810276402799656800143501915819386422486991741386427617427632390088867846030576986189570068921012438384020121722917737566428369477010246837554650080089563846355456612883604393769153276155539643167213718165648548150474832358389806486122449813046013932961846167304466931526599406139798840526912335029113040834486861773609828753349402452431776695052844922519900539684376551521329875104234252441917754190549852063569425386918554587474061133330801027519507825533613086573443084961989037864407048255816574147980012140667695449072983244834580287899185238365316061740590922757324078566117131897629672837101778110571861225626391541019905437534861817059315358749298509416173546409739807062171870297123615888818008769844165404973534135735376937179632417525166732955964803025310233472283430350152287123532487580048014300763485226869546080591664465061884141602657173708878921629953182138094968350469684549736778866022839697929877522231809130814330106342088579577393957883120207338201772327799717373053997163446961237389822525700386395121130962918214109810580843488594488126816799103858808045969353365926088695926078008998455656010967238783802757332319351908997751711791340665153063925767970459682195806701090534251629597684408161302245661652412364842128275379156242120338957602978533091237757896808297962214717307580976057350642179894134559396230911042222975528997845546610790046604130640739887827980098485180045455905760542916558287830905879965328961626494909888716746252435168131153211971837819640842815998265019503754760469702680853424232053704506131015795414105529850496782536079150624287552482110354974048863476052749499558092136864955562123239143209871856934931332055341644139453037053285871240801680586267774941488835794593907202835689628804003937050345814960944543690341799463635098750262011952032407430730190672520320650231567938670560813701168369031479988579525490490910123994155413187917711799583815118566365685030116140716893639173932129998950377800299710596694585192225875451880563961874879362106736831870542249646253840200182991554044881596321874333744859157965064623851847335499180268436026880570874475998831956878398689100532121150429369208063168218040650215874040415855486279505744104224324324649201085775424857572172959113801718648069323825945740256843952575150618077152801572506312857577972958382133456716255810272725973128606658343264422590753989740622903908510539639299318880579374769875230592095798472271333915641137860710183696833838564250463814739798086055225274723405412923837809730814886367731608833591479167205147767112561229464308768879370897847043676827848923126457793967311308748126100853829780026916027394952226999159516785560800630662481375574968948200000164499037692996263428039842404113663250200544741529154802144662236908029559956858670162466559452772509418570817336385548627623369583566802533257529161786129913946657092357501464820645440319693529049488703594293487490790033258779119979344084169307471642244930788745905189469835014252836544432392379205924138155606127894125594356267524847212954613528966699390929176664881895492532185630724672336913747332718055981494739594813326013733488363087666711872923158947427468383325688563414371804967584148630270436172657648463123135019340693775994837151052051233412443973828422631119804715119437240146849982769428676071866212746495145619184679543301742717863171136209813810935065730966804961859839229928258629315021775126781004629055502056874169613354893699258988896239535373488742405760930354268793809801951750617924227755640520572851597542926809895746737272856454984985719636750183596082075125223828398271782612208003913253510711538410912708945082723844081447542763085989729722884704403137320791346557328718882265801277099020750456203775611962214201483686376505596328273107035618419283279898075006123485396787573194332299196718074678512179121840191609113551239145381782584245047898950330799574586507447625419825391929926338781658812964437260406912859881480359626683974693225646391950866127177228086101167728394983915143041928360854225984869825974785886137978440783954236322373735885085895371678882951206203588242771704294651696152862658848424333598976777535376523351210313549098456735537320633059732626537366073242065266148688515283509545375093841753891945232324378380908644333554154002904188212478377289956062024306389969390134495220321132531748651080192250244796196844395352087870516856518144904029565710467474079270327494464261632476186722985278252752614076747846710411955667462104226919213060587554565990135802530327786828332742535043408201371419472169851401358250531498800936589108607604737413536282708913597244136546762142379889211424170334387281265021896381088306448160228952552419636980498826045880164461009071430948226018576011872929222362544107658821881801064024075347516664470562085960732380623098689170778121527196093745862693685857287123762599989820631077547097239576716857311123299690663132558301493232529150218256867591027888831331725736313700564260332512628145582787377481272648191406918587760181070336916422611545832301624901797257903114040706451246853153617994234979450668268873897904849332761768558938597636642655624857869864593053598208996831853067449546909001392167699322651137080069921020077395575942328483876088495505297511109166680941477765176522020399784564248849327435350340138659049553851627536969868938749164817699592448543817248788468838225626397019322330702733941648616058298125050704132602113455179537918081114842692500569634219692945849760267661716253311917792553121069715591972479240142519626006579568644409416561767265276574656702618490639944280671080983052601406493452821340519572029037702645869394640534212062863332515936193113467703128737890902360340644946025704460820621381365876523436924963550983883396880221704854190279245121661841451978504983808042229774901571624389868149333270446997598650098732509946332732138073569481379750907550496756009375982257007052915422902408690954109265715529373126813455467552080049873834475654989893322425384930615005875937162933882024788986785042714957888871714734568116475153854058008823062009736585321233573229333228616154513172996354864972489581204379881921004477773146913629720437921496157491834302947447841330165892798623155341653524638772863122978613120391209903093476214355495614615270076295243782272436869637771833293063310773142422814507166059497550363823105856150620725142218826171159217468920859396595438433771622154270081187235154116523629349256879867973774966699316820370740557473839225260271912983713823076414568392554780632554369897108457997702604975705826421988193967333860862102705122412745597262525711984329212724475341683036676261434462380007188165339129946002183387875734234382326921143302519516958011925347234254859122673830244894309289485033015403148674920149663689721665415588479935062156982118753183499180068042223177949909949243130124789159673202219576880232518157207382420497922916349335434119039732077368813962557394749289031213803508585351840597542154040926412462424009376187794698786810685862945541508206950798703509402243415867557564177415602270871909143714134350837932194881551311969715167868435909291203139861558036934386090757978403630356551599851699617126813872781273555652789584814245450552580806979797875757076604157454772759274759897682107969407348120398384265176585087578119713668583506060270548064833807296555158941959766618997663669545003668449411743788914307425705429892768922815410635287737784689165256602336595414058817970650391895235256380673630479183853138502008555968764799611796912126104561654899699196255817920420845900686781330847858681730554386990645922999272056792401924448220317480507652289294577096930370021137492370700314170648622223863571239969914068594794953993717490705894369621180469820397625166789416611881554715173756221631415353502050181862835441003165457466251762191455108950869165891415837763361009982835013564180875940597391793595440038520843536565559629323848508190643284590029530568199598672875928866205809944188849707734792302430966843847934286425920563397105528200191991753313666147061807257722854475122466802056927956756735549163950888932644764388571433242021011385048568426598781888363773944531844820439057705621628942010201189388220361353178772167912049333293549936218906685515662136225316637414810988476485657290789069064414186295449829094666389967390303169911939895795761285114464047668659350635289233810289492995150690124706081092390140411445086249230307458335837712973824362900260838682987827247661129699271893097488528838303790502142138386993312724319910644632227761228362062140858664743972201939183180706355007895594613616979038600702933618321507700445404574356550888494072853298655799249912904837488629231658427667717662194229188770780455140296565229596971145239502910372970955354790626910857317359929800055986000166600769529415198379535491815138977839521573045311617221669143700832197370320252462737281112655424822708932717856657990840486972700229183518128532290099662523402565781407829925945554322397936888785891876475569947141631258323644805305113802276910289984176282657493979258371874052577820740003713751854113652228003956414096911280115868769884134969275237763348449171529853113868575683486936684061907929687678945367349501636960694656037501005008333941018886150956219254696792026818981368477438378986574765504808923280633773153424348956011913404964440233752433438759012532026874908839221477636062892401101705589431066843107761653425724962982094458639847575594345617520653569545764860437108311340988098406146232100216509188269490981508259194765962736557423370311397538202104272092419904378286584139656563016322139636367348501291108429403163674746999538884151758275121754914191461694089172553759378640377363756609546340597362206776698262490103943741851154572206145620803102823351940517182794724183640585891428504600253061878889285756699131514979014880120848846958085177813717344351900829734361668787076978941816291208042379727638388938813878909422922734670147984263815322989734957022528153992405833445808499845571783033442771857861319386031283260645387885534856262914155801859686997824023031813676764625471238832374030828203108612070332830851219415474632636379035175367343463469006974303424605203205541246639029008127874817075520559759041064414206572354403094839328537230221149483049588317844758146781111624331664170340756853894734959408650719044615845120948771142919002669971763501314630933990705428935980882680511877255763884043245552149926667049120766001082617748023838535275549767068774950641003186145150244271232077610387525768960124323997745381403165441260748938759859204691006510924714970650424340175002301685261633494306439616186285877254631229560663477049336210530290108689317831060835083324898342334006196245703677965130774729392210589337691666919018895553594207874406578888274899317763878735895468920643253906795725585888131331542337669878059580085988256858477146125775874843268856527611973741819715915756944721218476040277996529696646595630250215282831428978313302020489730047240564273601002017012515600789923938783623932712565062694972022506524209859304379854460067978137757855546665511498539914282132540674990330757570557849530158249647103516824287947134302816435398748561842561018571307845296923233770390860845044072420778299618493780893532818119414302765172548374384739988371755191949942758757456996297234585265077383076086123772199226376770852107105947578734552128142558492472356277449361927302782730692659988802799924099454550179073048801172830983822389349707136865900333160548783869930165095055452530283450934533423223455613203295665573660677436605299346568521986228600865845152233520348024140374513947796051315114011396740980359952790165773111604622178837425521704320930378671147751535743078591884370114274063900519417942546898546622478873125180011416259460585341772073102259140498208212294749772158221999667967164079777399652328343193314341141863630157797432729055799619549447071309982009007593618335766730370277150984468911734004422776681586830385621708199112869310478079365091008047767797105056777362900117463459654032065925714335024320478132609830449701609468547816929941752706161075584195752500921261373827873321483524239369855482695366370145932112509139281625221722884660747251348910893125301703380824431638616581638344548701528921756761181007382912495100030151025866537826550615012376097492434020431342921119868051699055934630090596075464908292394129402278299656662217548838263282594644086619106432521258677215734737621762839300885355400123794346602820561914001377475019839025187092291161940655667434455969525955640221538720397137656406581682500690179756235218517572995518741268733483989282720143096078985275126746066586559372177080667467399632804391321179788765911763253078871388084117774154875940535597082610418120739020533105146856729708203839105171203588048879849371612719380414000226451786686956593126781985128645565542583861559086532099685785979566689321527453737322671329190405644506992818330543400256223965462094037960030609403510487942772201892050994130196090846583807970174847574462964931711467474192146210277150229837303631596840522480504175157136006006231558942484676657152270464851113500010426970924545021911242086647308642120008299005951012438045466554379750877227118811661708658421659003958798117829880963706796300745079261328639708291537900205884861260128000315547589321522785769965550342447388808351884488910382456576771480078602221961087845100546170809559171366898732933225457005328482074936003470897473958605052440961614036491051251464640365743193197964630981474252965977106440390908414344156581004629655507630467078164904734978689507102069243708926490690441612051823577056425880513624132879481292689733009430685689811738770066400252116891803540326280284238419197603092956011237519836498227103672877486520130111279430121565274341467811442875282615677574181048069759821795600186336532436056571687307133647387105720832749038498950191508451044186097010712298524196556509691619020409744573010519720772014351077743223151958759041408200796281051779758419143190050070556125012464935565491192012892460391280637352324049180325997180699970956652015924970584932080486502666964569310816170372109732738090415616940581799181246814686076877693172713513047726383031080717994703513629180874653261131187020467007236764324846983821810255471258527807005691047744837564178421495473150511625597389205602956074260222895743063782430939827970540448665419872773874635095243324744212764775112052503969624480605757267319127352380351965035867170972705336222508147272407505840572192007891527570897658035454703774907800518167898752793566357827629430122494560804472484936336272956912887141940257597466637808564480818160664577598406252057923756292347825418160755057536012008164717650129501282402522800272047985373111592296475507057660229883138495571009528724084619964139517575577193615500159639497931213614798658693808558293973810825589726205166019245863252180952941815479218224513380097609024524931582293579492415542809353547591843216347415106743144029337213885157887766992613829654223715170208147564813566459960471817606192217590806566957372647823151880052121911700831508281228934342292592720448299803020879833970522177391895510253204124600228888005809566087672023886455973270690626521613859273962394794353978351254250446469660452360785390302683791569026399851975565903604211692559501469727670142638081172007929329484488048653536631383954963299664534705241140216203570060930671051617498156772185709147957113823633850466463752718491593314248959995127697122834712073721397118023681558643083573600073801009272307620413167504533601125840067493807209707683097566769246405850594080746378375688509505788585713147786271430498173127893813708829944749300050467063111339960111048582232681710901927751456132403745958393411870303953237380317379874994805439595678233444166020985431552128097939876767926242836346535777280091966737605449198080219938071820193806739008915236884427147722304442553535074113606699269487180595142894258448091987557483750471701660472886756680789399211304031243923700512981023507461224790850817156866624190569192344736454822347255990751874740047534176541976532160874276865769049917593748793320271594584818325125113556364187200201186724042351198917261151050259885134777612946822609121725477618380265996913176552625614322860638782721081048855862678991968963132035738862060537553353716845144734424000733731133989473131846476835628233073469484640927230755811159278627574909714344653593440710405849438637777692114912901630839981088080037695849484898494589324364836196414359187525904578970372439068793796638342430784620142448189298764755415991281493127436731535353957257123822475980899956175362700584976645709766171494360264134914974105246814359658230735394553194460670915794837603004007823613802486333515141485644507424884338051389080877091079893453812558361293614505643870996968565859382159941457265373510464195298698443868444654448344020642833574133431481006211280364824089185180091606630872171995879955616110454206276275972531939455945231708959018221380435059715418037653803261764131235534154908274566346507363979013604352170501389174370959888563048502131730365771444275002557108248981577173939347510581824097473480799743306102542071556407669698544895712832969722442131425930924497428035300133140679223836714941766538469599028057422407083345385985093271711898756652910161153599420691593363553036549845194514575624866091402734132598527800384664283497839774890945390788581419389581079943449035083506981261077650960673234547503089758657817558969516018949497642473770990232144743851253571421133416507556051552938609916548922661468603897374058396214775182886113924571021724048636183842694352414649585368748670024172896646761840231880240721387345457718061747511334165545477998419603550948015314599423178853649387916042416467097378864125107520330921607496466600554007510554971070660642001913291728045072780405982144382338797460967263528664928048932053537585523391647495677842197478083750273746223544825730814001456386808123977621930549800479774223772354404019443697979346221136699389831441173187125409248479666742601563636504153236774789525204613393537163639855047471839451489530872849590097455643269601849636889231724621565523619508292289008986798958846279581607117627979428974859261420677720384594513923298579259701084462535673585193909459494455134635213146523751571539580030565204869994613055387166882469378512890891761827886500314939860720363960126305421993040449238715382798332045595723867357984377851535830975599331845793650248610933308151763075990232454910187092602600035117420508397593595212149665494622208438903385383973068882092118244157190163240194146115092323351978397345439951200462992474604213810719995172120722064098227191229304744447116213324833994484628475956416010486600931756671346438911232347613299206320352945223412599103538091128960394011746413061571762786666078237252352975595685137216414529805493319239500197091638329348709805147772990840804488321635442881039407929224611156197085422218615995414954823891895571616763453594246114549299122067582143634027835156184657289025935667960114243041574650341458135642630182763493969862081475721686033018040750058077130317189120547167508704631088084342906391575224194433334600826407499379110477638994436837871081436551771871962173068679890475428638998101152607147888552856057535864778089265249863122130020768735158286688816187953431468777004579594380840613154638526268473764327219408672881785604951553122922653230446775323269545807520802243630549919676910045480352034432535811738131922537540348293710551319885553452162788176417744603526322609012034374043399347327326622038393858255280173145635513025966340226337567214692457207492287361598971001836771865704468756527383669533532309522238612741708574568420474213356010882899739721193212593675391099765511869710453323797857383418093384617647281085881782086604186023096953327258825495550939540788738071811444031750678447007453101302654994985058990472069742889572927516231195075547338220063930840130457471000515253372060388327285018463275206094526906443924064384540086217019628500449765898230434325223271483646329386259760125362520261654861610572268695341974128772891717683852461618954841093957961046810046871405876907918936190342612078927520034650328475699168032922262912811734335063023378464639815113996095422290539238435047866056048401184846883784564972540816714660700010882028723318989425651093262261818625534732923114307039072143244747800485124312564200554288955704171767192470858506142947274229825054638488635811611308894281643429941327657409690214208402293528025285839377572189537820251439069029560883251456123611265900403133976749355941006392432070326955340870400178334409019778767688435295804287382042864480288568888976071073420795876147183214220659021289301777086319447354145869332882827682156747004085976686848966074955337219444123308838154461113762254385983464194681849956699670929297529266236827802900216324960281263482008247260432891792899508359506646265528402558217026355637625599488759769571292644850220529427506709627685454395306072995613308856179128471545680255821196313758581016969265067645641671025503686606765270766147572374502443607017991666208945345052453560691179430370445592678490698643917703611272199175603818720946165403158845971259605405216637723239705517794849306938768034984921590396915137398281409321259777850395929214791048301583265752452441084868111424773654292533497232350246380952885484646555762291132211327400280028458437120695532794284660862943360283868642560017656646924151066145184914081189841324458477605998844432808406289577204269534682473365896188158549614316165692385010612611508039747477876568165978270687230421009334916506082143093854025774055646806138905163340787822773425532483118159132014574620957275886272627786263997649834073695866062235127977860241839911119857515859941521615671246326282249630267472484590402464337865580876903035388887919659610899257166390200596232295112898985896981381914728869345223417274106084212913434555676955958570020417777745377764883648941737697201370475014950714617053105001662442933043636447493775590968861151494619373586969709490087876020035675542681108091297699913705177017401224804783773010751394091273478456259935159688937002494816283753715111378071497163028754662067792587133151887296748617714961610547072947502571605880472003076013372794520066323150035476492603495574659996017491321527757236891557015954874551298931325108901308919488587534124109696945896124556628889304272111533211173731646980343349840064772589957504312990507337814452486579168632344208884519027327071647681716599345803921020603395975957836863626883764217144643599982394689353544862504321583295144034870581117902134568932421984419107231972487849934893985413488724497761617122743254873549841921408612333722381145205312305312926356905556972781049532926373372028154193773101743777521571023958279750625353817197674945302931088787187054750504113387879912508045826873141349660474743360699711610107190495028323200234624080466453455232475642576234124247026004595226378492062916583134369190000655300407899421053028629848771214796266983718605027004073710209006153581703654742632435679771479857458361615927738575694651494774310206482671283415970007073169380376018690550024410951725565032990458786702098591563092358066618642135581048441925268566316929305735159352627442669821301919668011217011563998590314810948798701716359330105024471092316234849978141203491753993389764012691032886910649069925035874082925358091647094923433993907369548913790029531451091591992721795731018883131768097833759851960862188619028501229416059995810632278282784797037030933087388588186497563894891991876504964787483054825853772786579385931548072220077295317772288791123176369225718899046746344718533815180853064413674383067391440752422217157132796222726573766060090124172272763539556605295017707153230464413674227060750476650271917964311476191429222427039641862788056351762559191395372675396119611166218209332916602267585221164312391551764025550914429624188743707555360778848621319379309158246606506100445479726376501314647005306029134779705416121880861304199304620067396581054723014602699243032640650878894022467938460811318314837791180997149079832692545499425500211385752759596851504843644593049180737164283247657201542622794914622049617436211278595510622105157512398766175436837796625474720092194401185556642907246375037875044406304633342153241830357899395729881506088098879187458680296377724873588122859379565670998392478121028165168006274809856448481268988245771140652083407083999604919131517217067566336022003750427767985878642834248663938076065637445915400596428192664122934624289405307141210467825851547118912708578375738220550525181938677005939584664982433414625245635253102596300850722581262083441875209758270944768738721550692583879749738310302813435802845659302096270742885562107162475283772886072516242439300441187156765693674087229165289747018261293438056897446409135887956486437448764813008822060880010001386038287775199043495102070701887167986042441128177621155309403414909617803258230816144993996398113927788386490455657761292852764675040155925142413692193715014942366639572377802091364429365340689565508369121124150350234025800026455443638563652091672158974353373872387487580256361720121156125927566007417349835565873005162967872900152852816148669517594085200653817742692844429252337031931636204946993747910494988612770395691836081032153123741651923993043454951405727901314477347009448889032386670560401171443051915975923534349376882959930658106635844802137231818668202031714699151757736855214273720721408101141392910298466537807091972318127042020446969933979372445539254894275068233614023011961134290939550595174056100663860229780901630143240295321557618805990736555717029913681793434246302574212357805267692441022476983424270520104683602809713612881757026080659209180833694782482470963216173387923274197249214636359454035030504110986972766016170271038954432943471823314457063973991426529010643154226594164771707086616651986373792630638661364082432889607027235972855018963833499150017754982496757409582028022148226526628353618260837423853681657043671173795858930595155543390254000195257335569190171824068791847454324391565750299724637111982622934892922317473299716476313915726220090491022428975415271868767400249136560360465482728477669808043510678027440867769862093409607331250496904171297684379007396932090028579338672788863769282914236858601122925839840066767600084439863514884545939842985807665407529701739980882734053300774624465071528332273055603289827484931809845082053819996919511756952179128501652060897672474853651214795537866656471786718690116555966957133209427877748210920340853628844368750155335719942000064563738688624544247332302025002878386776712031591308417711876458080168412084499167799509336464106242470521106643604866639989575153738372289468814510859724141120935340694615925731000968956713908963243672663429350895643719862370312820023771973265532433351915233548982104570628140404452614430690394011717739767884910444903990528994061665934119551538282162992337202759628338014216866934321333037485365547427856002761117324037332996280815832014480371519901251244046279680025958105418055637841629711375427873579241845624358430765606262111833499946386860981024899409090578128140530072663475035135695447547205683923462463844797107323360870940677476375628190815517989900758894084300825015511422389222777477445002912510067053235112079604239399068865065431549418733687897985534681830735016288662022171124807799547181572493826584670796748606537158456871813752736977617849179797199324556746390064297689448448168250407430009013328545809132194670810908851563123187566292924929863429379211718049245378148181307504768928270644197347360280109133584499562320131549882433019418953102043067002185175702796332077331449599229779357888695713913514122745772133669041004848836047767154348278644059363692128821021926674475429206233829281753402835940622934147349473571361745570610936083886453687201156743948075440923827878315742021294370975339730586231570024436135533957555468261542195609704975673121034574220404892980342345464595449503384517963703703303796762988585190048398163908105500467712037370453007461198313731100383633820487043874171927531598190319540869823570342338062274872004907656655118917178089444980302436629075435705689890715157795908668853395871739309807171936974826968957390611034032146637004647141224134833577721806563391955052784498971082485865641066528258048069598357285134988966100218525277400333752221503506268530499743458797848785780587675580922231282271492689573711504664712614201110952461249690047602378839302956505093695223605277758441439796422309138224344253391271110104925063236264275285392006002810937681968637847413099682369969101821326825495966183706874941360720606761106497392171974065001099138283428283859319201308081208077751482054921012848590393513145771155377107536909229758584283154662997795821700115492793781251539421220170146922111459868094142995297560683206976331999972202472427688444336325893843614175293853389605372988499255867355116601887881010748691495494891031004678071713510529928603926772875816732643528137302110630913032469610875749273178624671172335004202618150030792999463831983443475433255657670673130962674093180351532081409472987917549805911858340633418067187312424753987727987963302539100700740718478882655450130577976024034151779494160863909071965917297617468804279238240007258666416664304479252084990211386257865250603433687933524693210374617645663523192960329125746293067366542359333732014083325850218560926350361546757807654085116214363172532765811999722498851446486226813984384096328565351181800162775300097395176494263620853328889666547293591202802071427328167072477611604845375201310419371482141370917647739379054432073414674383784370308287152549102363125028093522644243398531699109776703415255227854508700327350212737407575461970441986629336259528839418728315305876970787369001514947313958788528423933135792212817426971514727998046929323314989953720097425623421127951588693009922340511769153159179489486433934625203042725352391220602139160838311165566167550477032391302933804635444547552517782146221658257968364854506750870593340594374431095788775305240289187912040688049385643848662962322092633886901904105860598949898559773085401554460280625761174066625000720276831016605818360751017683327526697836653236339838865574271888234354314860941990573804455371160553920693718331710244079961600826793510058874911961202717081366358823302541687893761927644567858707774046754017383952654833265505608201315203602876462408419414256723796327477309374188375106439994895628736420205092518631663376431189689993158996116057206828612340841679888043523549972838202375713479783240119424898252025713315096930158450459927926672681512296002176214538895739620247835032534429870373626688358017358849142942145420649742298675644920151872577908284850990159795255446965548883929524399111943519053794867312985033441848810354581132400840836484284117798740860028301226696436049802802096631995234351688526390948786118497929694965452582742292530765058714178592032363495546838619412594065291115711461227936251704742873286670962911113254122037444675072129234581581503327872906549382261770684210530802648169239871167504411082156881481285127707035663483016022210112935679556744459445213507866006043911986627385844142137493772587309542416500187550761139838335423056493969605461815643649127009682039149569213709844512746368711223675452700112530671261786522853826959940045301631590193329969282580348116935604575233924350494375720639017799899634999765873556407261722208998778722049258112959520394156736810509403202057037458635431570957563413391223930331522596297451868572318906102578455131808665200135819444889927348711686357893712179263035893096709527638137125395667106677637531919933196857698325588279835563357512234906065082154468050291098700451761924571154396164198329309856043908770622741501169492470105492541575112244286035972462948121741839607996402873112422048634043493335124783568773525810301185231286532457251674959485030798162417857249704095570550250702069811087713761516429022548598994452819224048286049676012708662976076857050916728148602871309166598992560232273411445102602915698620110980648936270934439390727206364723963701032597127179122596110607397278615769877125975027198185142745671420059557750061832912039193795603934246582333820124654587372053882664543771545258264688003734485825681344371996942505486185705096403075153982311845651199567917386957471678227411741777375414498356017927394862482170819712457342318003449488680520019571821081774848308619594435681674394284357226364334577281492443259927006698958017596972416463723074837353793003521786776516273160055304970189845980722821245891212313586935005136541236021746615189576740682915011729611451310755058639331360719553683106445748542421336292494181697039976995293972384679630829958592062276044085934820757503438854767650630613103868017320451900243138837209001790051584423266118399662421555217931486104691873112414546914148155182949696250936353287085073312205600063189718110124725678302479607118989356633459507331333777051619374597933642814185884023620651156351208819806652687933213993928923152869787551268800677523213108072744525782764991294013098292096614842056782723792144341305625262469059957041646020391540989027934683558843112410026730212594314254849729017510113297329748196196659211762069023986353665114011042235897474160176724146053536335367074793973728081268732992366641798745815051193873770311127688861001027445659336339111597044510513735668345590952853151315757248371281030051240391705426513446370693939033117366826859162588605447063440663159932357716701864022237038639639771154186310162617047125369150540616930132047368102829484449085589526075040262786414520986835853272987002663373267132085104153764444034754337400011115993595633269798397645539691654792464253606845224188105419901420039149716306625013864856843055242249682166022224509009177451580804261396565940670302498523954013346450638038034026428700213286257156747716602012664363353850068424323120335532186324013221363914934352847356802454710837329423157678540856592897056083197325963711870332899640421104981017571883061799506220688869736598582816690846846163094082994956676187269028231606689337713630354426755045676286303525906953120892655740840767016901580809205729459667336698346079931724447797981073240275585327296314293590667577429464011497373463945269410878408584594421498366597939163714618960719559631465280706252623069648969981783504784056890578728263482677508880227931080410922446800600531722738601131826294065513016031880050398223356210454220180142924279063104332613798752265784936304441312531065859930688893592467320404040777267020290979884512838987111602987691009513180723744991308580101716256793215554708516314809556661335744516402684109279499972688170841527715261739235448015494060097102905268690973923880877794049932799310484880170732845296674805071172657701985492173789243756804707481085529232945150052533163367046785796250944392994635781800862161179084761006192374616642762447506634803833869227367969854668146785748546469098444087875721071871763792622355355642065524957605816565221562185665251146064631912838060214944532868865738030864473200164944272379854953333347358076003514686234845309732108420348747662637726270928432993755464946053047035036563012449086346200522033422289816076235555599999810178821149074225061945067085113419999130191147279403339949912900699361237773769023394616264972706203443825260737450414664950875568748728495585893871554770098504413581763437961852872973264407346992529057476881840515483834846291643880762603328696827072754022745260572191043881810563138589963963371569592300683988684376901695277843343042736314846163507363931223119885794776883702669334161590640694026384178055862083940793748850673112912692003591530846488844086817862021129157240459014995721468542912183947212697617916408090422618016515211524496130557009447082969332952250515092970285812066976311064937546153043595488871240024166826346455257996393812471533892769971182753953228233861055570891749965430376733825470440996635147462147172342442636250332703769313459007941843970470797156496439029036790309464844833785520773422310597128835559123419248742455816922596471766592477180135705147167039177209025533132861670060167450980844900097761755255616903695285046758718811107467487058311448797706488489679648930069304296890704707409813427867028055809219650372302419557383885706174960672491761670211009543097266144884925443685179076467589829625378781052799260892508089556653566439920947638094080658427043226527409856239940488608526297157453545919881766439843226256212756410829252794159364861940113565712322092385104881515999041783803729267070503051700244452904664367896176296598567217554340908544762705735233071217217919760651483605473296280505643119040981085086343048065056903947158156744418888958449321770973902145812641935934345230349286388339888128325224351282620220348902294340699986802550324787175932208492572721693128085852267240773927513758015448651092920479219002810483406282422007477778617120762244796313607908609318379244418762224221130271465552210572315828626983027478760111647257189918266586949777915392865699025328118588224908873385142283352330594460189393433871346505110776696257506775509724512213128173718379942216289588344710750231382445944052377320856095487874507096820073070404211947523689471676189588659102623381931828246797734068585037699797069295850004233949790601322950357935268800775377508092859278039555976909779988186344296954026860162601466273041483682137972656512624968949220176023287839651717996976903779531034297221137553430399040973760339174289112189445060049412046786153045377683299271678609064059250927844013672240424156830215149637879715528579790123496951352041608672322688263123924599242659752480015889787149781706593916029851419144799977452611513617920270136996800522586713552758709071956979740824150417643810325828320174515205452931427130636717643243819149956835660434350093358101376137225963437840274161565389277757216014615289804866341229257412475103973400697739137026427027532753695777923653355172292458455919287911581516112228183912912561026114437053963344906184077708229867869625360165504948561194736297195834386289486401562967463939451753783229420602531882016133856164954384462939578616217166384862919863077849561244330152701334848833446024380082091902853720665965590825524092743833138547758418824015262921460645121998177413303085912023847493988714012981986074442040295963189974490328245508163588973440584223413321632027683757198934622834892550287797498904234742333357473706583448298135250183940674096033331984264709308625474090390518824120650599046451049254716311994012111081812586932017347596189710625352489853953335060768661932205435186598581156564827059400666459267171920692862695983345395779397304890837487162252110224036841601152357136790361235124330272508450086082095347849604546692402047949268442630556907146707400895797537580370248308312755537202825848356538756629546549949494681875581773155297552721313042793822177777943985828476022147629440410304303167203741293300934181597987802613219072986216744159242319459107925852018001585216687966483560126187290841577661773446948279354135965025362919675974196177427920468958053602418962436699600263931952239336813480381581918518024822301188526604298993242558111712023512197284086128965237493312695618720616647523334995510761383750469638453358486882434570128762900172170036619820697693704978013384322694922941463175619066875770273939795451875086752964713807735716770803352047495298297301110136546617340515356084427735177431259302086061209783433988429315687357810604289484125505840487436593614575575810787995234277525189426289940417904654277358090389342837287265742351169850636962413133767803054063620575056433697758879835538086847988296597555408696694693621654207066273325560215057415448901869928102065722896806500463070401514156652646709349887208659497890309437619219590232642550065272684413548686964307408577295282795423122349330581106366859921059238408320964931414054413654742872018059798069671385539243474541140814605143588004964153430121874133872276584223950618948165323615035652444070613806072745074121584246670860930667614173579935696129377613160031640203859539082762906357865615836807166598590333318046104499956040853852986134986676231902978089176345281124763075886269992466175048849183884221327560901268443833986935024703007284477926550541798484047784371684597700436302688401960789172435211117533511414718573083309850681431815946420294098660167349346505400657665049294203879450968392620041858707025871869345520798073667628805513628477604325659861932628194874056377606868238886329864471930922117775483930893208743278594738569511700291640063872931234805868137753104775763666074379092453149385283113965568785014500369410603504422475824320471416606524849503351802336746644324243655136355361802988789930899915682798892399288559405058900514398837123668596517991712090830653800804508569782654551197737982255766885923127919188723078897411156463551003231715839640758323098012557373447754643257312666947233438149655795623741033787262172448432682430810154979823885767190203262527189199427395152102948645438935075098090309149566416688698530409141904725902957609673794647564173868934917540799893740148511637704842969851051245542926231881563963659056155320483909581534838811399658354645184672555410349991009251942569400386367412278953798548114347800456587838950679558672441812411512342851143462589493152651376941665071927097157302466242230197867347350014934356478383017056535348525584459965508204526861511660110272161196627955507782377497884867874904521366223684316862721046695433074362158835827724591414128638740480635690310905931886762161385904875089645101246359790022025250251069989743062766207002167574226713584280179315465556241179502278619645978520514523849467300336156168142665909683383759240191477485564061209149682318108049855728605944184957025322507392375442368581301999783235051655446112977542459919059745807214317231568397310450273553715764696426636741157800353006882894387034541948992762663137987077492432918418293828880363558962294346621105620979393714910329122164108571390357485473519921296701266059497836857336495943742993695556472913137986145375213028945638571879134896839049214323871832499014975057351349302935243013719155073263076837032557417508542740058365070638529512518535919142778282667503478695693830240987381382296366903361023663834715808693326952450224029017278779825734808804955999636891028799878890945507956005079487314707552017250152688913508607440831873757990852802893664337393862033258875061125258699728359838828517976985540615745459118681836040575400234189153671603397877332115296866967557434874759915176268178014213364593527076218240126803925323723176970891745385383384505116275986592698139672553693471236175831685179222060633009538616483355117773845802580702888926333328204656928731976586196929790585496808681025967667439870680436518878408127044683946980184018634659142906671426037139225950069409401537200141941630304369583042097170502755158329577982120003201596701442184467687301593030090026410858374668200372543346203959687466291990931076133600643544209428898385745603478931229351946250860264332827758285618435285150613806740738033715956558844140761832865779831948230096927465670776772756224255222524449350295436875879751643017603661197250249888229177330113678837629830991052784773483735421194635737346696833992303323866847367719772855162520586758993661762584299165707187007773719269034304323203385873732770288552996455986122022821999448987658542208796666301423778315273401533852800451894519178581130480225424677038875921595741505343015784028800310385548625535099840813251452357978100840495666162773900555305236629076252122215251276187402195266573612604831332619229855776090386286775194587733366490827903901821741876785809251966025729759760927171953606924444063764597403767127346938648388411453157323545021200725942426707684622930577869134551031147489359804318498757875269501628579985818484512328306553430067980606740722318005347471371625953941732638678415892445437679124561397810462959480599036008703389975944302708675221691488887232792620814369132830633955475479385951609957525223512009823046412208058247588108282691383612127826314083612868938113757664481823663263249508612699169584934074553197177405877023029526632129049604652063414779743529434480087873699582437696372343586168078537194035669841118250719719508382267818387787710033894973425518654245957924611313819592025966011975296144842515492836941111516324789416087427335466752262051699966964037210482459574945404960355452968380589955015611888320342885775384053127880170919237683039770019258856734618564934725272289691638983619191878807947278383473935888616595963949991680318625367242856835779143003839205733430925960172472799891943184915779504101682544236908033870680541802483516482387611153938300024914258528568927947281729493050668138466215159761341285854686028360143587483374440354547181607021141349888201487110853209443215564108739550489707191614962168336009579437688925306813868769401888480933122377384475843563090048992836358749333814538887700142771673005065620899199983414280989386456730357830017734467294482230850992403745162769021204815625121179638521001808854791744759199769313406410397000131578632813605550317495254684260067276346660902980756756955066415256339046076894587538303314016533760782156103092072060363300732634424276312756233895005552709671516209548911059695983624126947393118014121390371414050142367356855820733422804079744440823974959669690234889374483660412500720945421884660493785929344599922091992045480750847117528838168414182418115483803608461570895957629680751363734821193518161707168824155258174687989916406367929354073370258850725422109425687328593917602878332329681340358772553086782239507195414064659400576669460258108581635573520384785049133600720800954820617735094836094862524051875611438871036254474087599560382593161398073890605563616398590876953202041166025818948629888847688173409838398898119058368784122508002428882188840539657977887554192850312434987257531405578055010289304701705870991204170766913961654883013922734486594067689595281279681775019119459881122582788692472611276281403451905509085176646561372749000305585808115104137008953657166312767822380826836918368638625284367716117727376675827636111213520269984641983459560992423234878408330655060642526025186551070667948663533506106461890859091288346828904477234983307114458660832845448487458900293140740222071415758093705349279846633261163876983091338713600235745790190837788326595626497328678277080756730741896049254682683537599957542181507382037508024731606216894128270782824691621872970938165647356936417897277329305955626675471290136119747723691244401546796888717075889890490704288641566672842021152681873571222682550034956956503814951200324179490320113756139403079695665674885708767836200919185694947233209666974986174467809756587449923326238288922630635874837999821104283403228751836207363955656529621174787613158494531268901264443497928142739218997532910049245286849610083150900992438880774851027271216849363151189930253616606199960007863014985136566572841173303513010353006900208230894077323494022826070672323598599180751538695505477971335821881906840409508681282764827387103398056346840347010183978920958701175093664694326425925411168463937334679086504662190262423024331507078288646012456796997528388628478632862058890378569863958891805480419170402165424025471218983419162102210998473079272123897286313787493225640188252289890411937228429115750022944974422652768106523133482312037107454827955871691170944988355123809693948606877235083555067190290775379034442792838618799302318561484485791055997419141559752127669084807265922531984956746926445568230150708275781369024132613950100200811875137978737276007318353224512136696566715605659909242309470354263749758981108226244417494270677581607204904792004573937286856108274902367759603078978559386342288307152623800842267925733459702805828067791470101657612590182886668168949737942071590621899226102224768575312244920773692920146673296973698428884234480597928456385200984468332857359486638997058875783637935034519956598800055092481037884080213180069196164705472326504121439297078181999639428355371680694340840642321912954991209364276248215796225396684628699525021422690895560173330475479734334752383299893900926317323241534510258592396086957880126190046289815130246270169496314887708523970897602973658403594572841187970580918685883967714328049409101905244429144891327597935547665634771735048371214965064442241693084818021699272284095758367487548735298085228672242815871781996258829843773343284004288865546910988362086344397440553163284829243792825684878221353794695323659048457365973143503619862696624215964864080145945501871496581411871330536940421217019922521199943131489720714590104676431051410204296777793885620710743127874266946063576911073777458201713513690417130221037713799861264317265842733804512794251782691872996558591173400712690995724229379528804998233771742720121867969622771950999120883386401506744824485260859916634669724684939189234990989749936667783157025266868412007025001892043916312747854715094863922160433219422207868041411923829644035506822770007269292598014350091670873611683125005350615181612675248154441354645263887005823641485337519953230047480735177949751818952534232953142091111082685330957716958097297778140190034067191561086776822320854606289410230704388466684115655989521534131647511447353171595387061990072516240044731442247692070300358443553024735512040953795405140083234742817152833923856634984403123075478247254554219817518268569549090941689275774402701375426769664526290289679218076934047102677031068550485526650553522175621925715623666823185668803877154154485228458378657012816751652614864162606795548316142979485991005358190979871794845756751785209727319286724462270176202614090777096230131405360708991921338726221207188533517308187892163718848772621310416075889800977599605059507623969201567020259137606907848110181674341978387082659265686628176029091826876469491760103312556930859460365809242239188308557289849824555040477612711908857266861113914623941479264885985467956872317572924348403352178855803854813486616229849696522782751139363929984887863869616113427058160400056397451343575172121596002801348007941526886004223251680884053200086115587576628230061678998535569548573929968387874268902027194613451569364299691990137247941758235132383668143671635490510941796084971807366026001079811888074437817258192421702755679806583125019191966657472051732953430248633829809299554771698461328122046164844792906095326169589630519010375250809281061094156104124970792514435766113096509211242474691023165366044155136034863496770323871533026618285223897616440613438358051744550094468874033935342945353410916662308428079572019871107347056977992503673883421177378505595094182422559640341070176493017051724625880785179945686662579903579510706048885197804534997527426843385283043051054212809523082791335690318741655551081530490379867805730748107003033417968344131345052693132319415736441227958500284251148740362091884697239240572127178556557432012210179746321661039263884025118805446652319861249961664875119665156139955110456851776336795340584390999194724697121757042480960634568652344179322919166370399113599642026888196990443063682145211764058125875794084212249319000854239086718462508638335701659279980354873488922187361115039758109038748767124426080934003575016050279457396519241298750938871110104458368563976531844612442381400641243632930045407610647971273060616696945654043559760776149209285034110043435607797263653700412826149373505722342479176481067295247740476416794971557893230207111341479491599867608590726773955499319470753370891288620340905959794206897412964998666562366279133515900969502079997701388640664660313775819198531993561721231904420478664475134234341400343227416069449013464898943964448062217751331816853635739972522461239642789040081008576257165322013357975932199778155114256359211924693487521115175862638652031618620588592283981943622999288736641328487451615607167875988300198025140402655745535953681671838214148897824372826492540784115363266548842715896758582542382717398554020556397554701089669852427199652816551392711227763805129791191494508250832399696496437083508500293122679977143832437402159762645730838449082173275855747586648270938028605390950557081686221703262029468026602010507569897456686203352328766185955625123435248396495353860524042615809443398643946638181484871165629699564955009637686764398798954403201424332981491204694468863787239634300651719489554541054708361958767232472141358169064823981553033239797546446073686502393037472914271596693488121224457126275695723068788261548080941217092152759658489802590175204557807411604410068106684708631545810625564128383547361763087342798148493658698255696363749461226546563957576701638971696434867451072207544688633571182893055653252941674927796890296767058944869834394914901659274248974451096930942337119677232289740841494365518320715506557141183608474868963062076715962968915838508689689414266554067371320664288912681538661353347196876219197984813640346207904581895102157592051472505157832589393890878078976814990409396826766238313212253468187825948672786860566135576780278806304153388618279385227324701138054554600393738617379591144503467338096674505533399148910278534192461256099254273788208180310620363122355056121626710775055129441191490498893067172772166088084166332185223586332409486642476177873900763775456724674203693583857197588271201739936951038240970979811816907998103617882973077869139273207934692379051677853623999479889116645197928885818977510158341695549124248278166356900764134788815013685011805678378515223122795330419384567560091565162400646151765651703555147501163433477975567590865978788825813453290078243184372479674690089501391175216613340314197152880908159829595978423124355640050276386255134048957741200550820007201057993777474424151168567686508181944644963670455542341295000095920961993078152119664138611396364483404803137086687652112290862990118406126817851230617638249307058763235448179926858527869458518730024276591160245895944330646087671998722864549441055110714247495515944863636700357395232840916882381139730196742927512344120811611949305470006093594672086659916959374969495922657263390455465368037794186125860850212919203320442970183828759242284815437342964464199273202499761590172141704944733240650113185082703595487185756450710748268270909728671807832582879857893871813022398525375570949532243147696004548488171598541732602502128558693770730386582959439679985470705346294682267513202637789227836860515900196132699606280300391413353339150733827537372614069874035316762102029777562105590571131210781428570988927852069721064399906615175310614565562245681902048333724586084117586124510118830096178212367757113544262649629374765985953784847319083697142906764378912724734862149328873956288223087188558401380949815459339407900676904731162463519694543622834702526891123899234801733444441711566619071502554014880323387944285333176808180415078406383053925222926194030919562066437760351636384619272422867933363547251285599093049531857269521014388532869964994210716300864204095474516749995997484270336809504574600933654789086944203495246624021308718259167492000857934144462539605536222412784431080427894749637915360156212095215675955564071434190089259035963636989801308638724254929793674009058491177567512501110031611651137725638947861969499767701186466045050953553213744677308760611882849827243043396414449309068189853846394691544463527621960906818504634546985978749870038379407401277173809364658054263765984091458909870326229211561603438848001136971906658813544685546394855842441879462121494125751871106956714150336903115073662979348331378525459756153667782639305436644962443995067367757241467522747876047701358274526601104354529630293806743252449431738020532310761386543959304667188203647110842871248332071678570249623874321925452115245972047832199701267499829108351938496757571057278391339154672438938192865427241424160745785571375639391603189456180769272171754053124297666450477295046135138250401947036880742435031656782151104821457406102684649326418878634203884697451760058068036790308990823514759671172458868751824225154231335487694365906798537362481972310577443132156401516293188538031299587691244526268423636722852343629986356939664671022231908950722334039788773377316700205333607804488661071386954127217382447054283813229826073422979914358611471336371826733407843832302492369062460406770943156505431903259095412930428638995659435254097256480095292279767883475039571079322362066511243820750315023792783983674239295565229628262992596297980750852868921209087161700380469160690297930663511121809808846984487885786683467593039693155673793533503127167163036354277563048146693630352171834168401740417683395508082397963957823351996864044428738262949803244003521355394913991374769180588589338805296967603532783231246477055517911709804553031315190649519549431174712511818765480681786108813507765316602182870363757673668203557204178838424822355846417920992212931980982244135287016193642283053521948766275390177040347825415577216349025465109850553555353055976103687840676645752192411747878003455944232459345686557184461412394797063160136467690390631179611386363824777732317157768078603302771996742506769671456285045166703650370547610847944283300195652298304556030749832338894049126017669585545943124341258616834508993185576822288867702531242829701464815518662091308024389518472572727994091297797518427906937944724923506154138832284821418300921160885346415623728125041329845154227111025876991827154353623287759776149632647283978591322936681750369752003822042631997012869665644104696497813832956829766452459495647516193426589379096309986277763314870124150354982334383569290446716750227013686403923574203053831293746349417523530118172732924050897660322165847910944126547380805715332757464281108215466925587033394544666153379392124759581071184241436153378743677144342602018573590786329014123291580365987133799644390186907629396401034427380422707571233819680205987588203876713293077311065210641171823140535829975152335697149092238274976498582243988727225686905156637235394214829118706734691384526347824934700717897981794301765645162549152064738972705704584751939503456234773541363783024277186733908518137652036338037975581550693523731832987061065999341209238926260859854303788056623057316752189422265178609724635670108119002960147134452013736075104306262367491054754694746359626143821511963090111716694581006637372208179945857614132240246123802574418025338056242589259709121017759875942218414656065959741345118441517737076550371046535776062575692458853727038594399260594301539792798688696664693561050344931062771337314070252927742168927571294813230764272807045175838838555829372069219039007917233445907925940996346421693065219872407870379433829122085821842896676582877976506938796011264090115321871544000018699745377339794020576042445590676008143618998652443549986712765974199813396167068647776252867059115665860064139374945675167491055984631009863992281303582730072432563980686531335388538842614437419604387042089874841035269325573101904524535584429092306657115960890658796136184485760128688329275828208508016335312324169899210330227991494121830670643117793292795754409305181083132810720225233591427731772586506392606792009354943736102707963308906266738515846237592261401887786754467337474702905505527656652752495133707503747551642828567266749459433984529701023147530272056068734132975282171607685410509358543958927155419213680815394607487704620964911315612960949178507452297432023107071473264892952950292115698688903460993406000923516184485133216981304549900415753340703262661301501229274716122587610645883455312432408779705926241155623052824879752549843601345553382941861570719770183104586448661113319303733374916770849390615276641467796051025091239021240094669620948526404623821442811774378629570026244421024967415234253276946394357472241162581276584998333352959670994868106546264821265549103521476459820936929222827622288344655862527900593768381155721577680030386498712688110812310666718139020901587971539714731588270023886153803184251632135693269351956038554511456094023394743905993717965406671387631409689623165375613050498342022709949543429633796758521290906968834944880749188345168448918557609103981990792116412534975942881722764169768465372268580250908132363490148304518088873022341755403574064475885119016825164189433505938310511833581587991165009753790851393774225963136036063236896632129016664095155244779369188629387580855192441240245269880600281595713796441410272677339511015922654464822345849030305860446085176089213973040005856711515103457472208057157049556481534649977559895684893783809840467320804971781037323029298256975982454411101138525821667134689920899844100117017984795474518278167704838659050091395038393158500228972863221790807724413154599345704233833382695395706810689648307913825211935419911825983113269816246947670783409737234030592455829896112049605736379805276425292654559179399239515852050669298344293005447114888024598369528588146654586625653947012525709714241071428882009629702892669245370660719154563770977900858219262516316527470347258908213000268554542762809378761671368345690267700317024027748534161971074342812473439510696047131036213880334494123013007559510765615288925712203022368663631697939750822698923665724391540833055666749783247087485698929616234952234237414203936241965407859112471547437335455660808767997650135340216222324508909708890804502024976070281095986691606442058037195026377801931064458207915763714901369568889170032403963119947241830448505634424336803747773538251496444867811656896868787050995611188330388476022373272159269257352144567991950827754404510927216127589821068422254139668115464099515352175276353974817650484537645141273268272783297859922788757285321855982704278234289735641205646639165877672325565819165059709358783379921177045877475831529430016169802150958338559339579046924911267732639840665608161254482712533814453068982848986939355432744335764598909250218810210671147314715338036177441978619496328634667076314189545118321402034232615429680074521287993980599537794176166326494962192210315302289076713398663971050792051658804690472681126602878952830668923540699242225347394219605405758363580271531687887432886660566162388621353762449962838856898521486700585213860212487996750997640216107325703245040177615914970685439918429008206352360635483544955827699710756907180039474490304554477580111094710389191327805709488577845351760597469741954565796223121337462840250829014181717525193747393276459848634622038290667300488605268082775433979374862874318663816406944348582518023208461401728673159128450960346474045220374664772486188507846572687726686816458367473090340029583709367117860232502018058839015278330783666770953542132865128887429371208069134798418107182030064434012444684879418297482981080059225123857085783245819716003874733483931791605237298852359574289657636538730020573951220230215515911617013673912396248848931708490079831342358990803853027313426672417004040241860271312773989868058025598640942357734560708423296278952574557532632352873829192106128571199486318452173425054145993144568622622597633197538459031585922701362475290756097588097630010018895475469355220442104787786415030777178128459376680957326949438432673110027171348714242191745533409917374357499281508284821737409946193508118706712382338942550878998317751355476766205383658882635843538778311785130776789901358239406244191168897408714293408972846859691313687087107625695356890971442104154176777374308612537653383846470370103766426122271289872150384782513297630217359204360636111953848541950047589599793774630874587101248145298157196293120749183252723538619022391241558169975729032142876848277862751063399611870474826690532335172836218106006091486116178652871111881810320706302456118302850452458648167088086845937238829055962525708521205498220517296978671525234845155322040912043009002808260512141166603182949377812073221333730193454071466350765510091412496707120550929802952376801656724170328341380283087442759729605586360001004702519918614550425196924306786131321304937010715421025819071964507840172618931331407288828192028595815254271231252622803332901419639168263577457583273183380139351417283872685537095197479012402648918215037624871955122897803646511045461669775597319588501967327688472478642281840195005325501070373280368972754210591378682497430143212768829680059079671266674885260084038909705981232839344856984349687680947836955833293183279796891973159996525274535541421493418128457474969558428073344133049063041113792619101195955174937762265059970302419493050295266155077758853333546555064055166137088176863057099708572576188586472875116667957523510603223660047242602777076437228996885295414208236610338243159611189053237736898479886989881514107236284031243447120615845811871329778772291482104924504359301731553044707944939965989323929086305547316695058327648854290275790750818738033535537731985026008522756399694935211972036771477359632416629050627620164477466140543402202513491957313508642569365332655068716277043954786021484784288067203452218058597644566745533783652888779915485146521659561182912335244795643546905324877563358598928564375595952655444627108935007405175984435454229048957337740054062302439485166859771933565752437587046688814661342534639425512153345044405981239436260192471072457426918708521153325532964035097726407975578772502341376916799107297110227699609994665410879995841528623156844516078198724334394954499656548242455251685724495308912021898666113899697997793802107004186939283024355440023244537379253153755750172750537159151741761256344112990908913718763680537131735204545987824255482113526686523087830063112235071664626313482921200490695439034360593578837908227201763408667176404790917404704139594431800198110036072699345807991078412815649793305076692157002090992669114707217565800775702121957186965609430170154296911359785323643131776582711746730394402932484808317797235584459150902423967961471933907677280583570137829512295119486592873103746623929670447159673742717409703419114231215622230027389264175085164026378892158946753723659248386122081701944952327868225854265170550201580991085818871172237482946343355251276440110971914901034039635122175793838237200232913794315665157882282995189165506157403292079628449026266977480889753720100262625826810554824082651214840588940368485476279672132295328971422947100448064485386761530199876019535064182225605692975445232192958776731993462984424927896429412789415520248085762676954440407730576208101708998285024882775964301736293865835176402084651893314844225743511568188943497695916959170830808596370755727606882313473724240859813288173350768075939565036190429352534311962469484995134584982249903259295063016020383803591176814258534028116947935966573155053400045039555744459999107436116496601149114640614248282138986585237071927771391424757527615750076641448715991956290301657270347170165444194255488189608828703849551449400479870645844306163133768145135544178393636608884047099446551841823268382362584612872369396043657004872187136266086733320480215020036787492111108318628557682364653953399253521936106469395508596979629944238957190855807943782844987243797174055239030154836063633545081739475205664613695462409233519183369941641900855277575354872279351997236561175868726746508848574532929227900537220153986032330157344770077247814893453421768271347232211800309243925044691360629431237228295084320150226944605269206120787811690419861584788423390687657989542980858379543806120685513591309778596406243370364197602830443380114191845886379191437156518873188848399180219043657870410803456339511116873920581091611776435877313774740499366637503485735734322498190566195246731747087376394730883599553416195029083647549216725816796268311101741803673808587668672784385214235106240564285912866088775046939537615236139550087031759367592684337191885082566306057012198363501450446928055131076135113739682531007162370553207594664498538681126192694733645736659813471456823314280202287575335780923859773421907039155005336983149928580785424379007852180119468260947226305368459684882594238291671775904865463256973430460558745464321747134554185751010046512837649480837685056111840786780813792623449516320662800423933202536808359726029674562746445849537871274062100423107412918567037681303342158582841205325969558714662643765215938256603252792608231602277651778652566863313121860728170158259619158220892245979831852265435573654466896289120010583430502704977190445469312670413363269766713741437708709609972040259639864083543749113860264613607480637829622861758066672769933390153998527897617606736738715514248552935292945593167159796642700642251185770238851014127018276492746926422195690329100431847093966848408726075018200474064951882965296984217596796883605758450087460034635385979654597925399499728619905543534921640162201619959005418452738125205410822863219205328249295208123547864227152799372750084672901172117501513629201276534288092648486981775930728791104024331753121133966425444023702377108252701088914066301495639052281466478234963147995161158135277781723679441080558776273898750862194618899235834225486523051666985197598742084761398576945324586822284225756296207913478216653037682401423296463467809171562156503224966916857419903066278657973025509465381921773835554600088535636263849526992891928721376227725487291843279392957732366436563941612574758123058448031402400535747002881090331416146451572019965190144074108050698212578103715578745433467293169561004615949231481453004856775165190282741523441346855845248060187933235667728738792772180076092082951142532998939156247231487223822928523940603349428572171721473009450592942732790701458183546627139656979479258135312029111553001234509451978749205027303666888187732835114047389248431630090325425503353820069631557581276208537621292663299249994103997374494407460906317532785270973759288361955924503910738328000151597353055176166336697492655899287862293696166749048685396439746308777045119397128759891507011665956107044406672948436992315274207618485753964247731422621379831701360000494168179509197728227868496891421742302178934608230789463912167504027568889322820401800269838780783299358078238692493735431525184496546815867174700912949973276344083008537699865027670399713393710772695684772979864697111787896386563491558547918867394794503820041115080518585844223279842666188927784320434632454972160230940083452371535433531949666206266834043134407229636670782671819246424040308959610005533459818573779200001236813118834252986965463890743145610423490554442936456955327730357921429398211629805883935376089752312385501201676976187532786014633428220796377354180392294190641765710511503680247870748240519427594183195674211450656411336329177671532353638065771367645697352403015628438969544063505255311617786622773239976256542939737385432399711656731390111500259981577087383249091330284906647314736084230397783873432073243071529458978207303984915873842281965021190112152191817720314630870443496239859889205000667438000886844518866165759408690765178066900299778842926811243790415544814144003079358162864719543958751357616282891258011980112512447675592810888251868107539318236171834443759907797997849537741139909083341626147701433455279597318215766129043414329590115315204834255622599482748936603815586955889177023748236914137452602347012634641823182035676816453807082915240758523617574937596790585667919967045262479828165867607524077028708892168908096543203598582213413340884806866402827862491264770786354323456123954678110221302486041733978387613335978047682356175457169351154136309446294993984041148128747673447059496258743199693557236812031660587202574662194235702325245891504517903506015492928680886229110044225108999491294630593537306564327577547603957186411744511281988420453964079394740783840202816637512145657134980235621503558233789548302594518729129789048608930993040176106715923363732128618531150557611587090205691312822674371069623943335714340887647608747011772229595971567402241647913347723902212903128474395405224772566711793262240071851457909006204768792258704493623218882872008295024800721221322137865675711376799960770574796328148227351349782920512117774989689981823541362802982738005128170673331173456215387132217948306182647741439341885773765953735479947592871527047729175345443512419653044140088392943950463694764879268864737299867434899562504157955661254701031946198359866705631923087835968158165459370990680149313615861961295496621491612466420101528649167382588993669110813835684078218235973074985116369568101881427044050614067311508119438460688268101289566569078001715124428046254941830567098797798726071254140280414212856344375187096183745101157594032997549556871893908220987381719876306513987953287213781630655343668302085445743821173885906449712179865657315512983377933084490689475795360828814892672033271888917373496170112682834776062241347909797946375233190243057333899339163588773212560898593293461499823082246940181715887188278005226634719866229437625505116235835924708884040387575827889457825724247776618462475689769571132008085751961803325498554155576382637835377285940720919467267376607922249757317606844672990101782087554240377472337841716119278386341127174681112789879865280021954334777401307323837527446205135324860094327305980000153785406651918240820631345779208316928331077482132677273206875087543643001564300051360471318152379273226639475904891545698869502339440598441546456082786614012844351634782108421997988299063323755172198179840186298835604103340007600093257762237522331268584253413154510478283242727403690644306020078302873624014685890241154412436032637794619244604724705332646243455871330511881546349748044982291479238231815545814650586396020288904893740100306405111272174298600331241193257808442033139830353760049050163377287445849828313384782156536249489373253009784448323227510211537742231432656992926532645744687295741644999272797141893174189312577663025059945590917898252880214986104461873171653181657409642325715796374425791981331613520489542501279759112018935355923122860583663030689016291895562644331636502216261890386448005849353441342260488919238461348287621375676841120330393633198189267214604373989725514981285742997081295701991225769596249208262022996678470686324321294717386893072541821295942161873222753215285324969490148736008143945138987398514208178597914924617436583456120549222425917805358430462993879576754683047944391849794323303105652742279182573459725948028949083379081784248776288887380620748361385654689802688337711595819519846639157410477760399167713534653878662644633493804278578193351276770917676004892283705357294634184453384155637026626508597637486451403779860943301171130460127195364997729830716507696575319872094831169357827562598671747487177959684994651807923505940790336678134225003881511229553460666846135856361307962373185505085087846046257279389071140729548105246908780338411823614518616382675999032275659984389704784419809786053973825218225968140451756083997636814252094641888863939042168588084735330211405547386225290141318638113684280020473479041521166047522706723661226456280268337317664565246249271202364227402602067972021139596623018820587755257408969239785774880194638415134079634879587244249901981668413466326012371429236237729175454394553558688905496537071732243473766081661460030478637336778405976019545550314754987793460495005129345934306562143207369986027466898368057790811701008264639458103780101843854193551888378223077884315821976490042149217274975527855805307507334697708286348499398322687980744316406098311432138348086655428830769619030205694798601423786273586882126326028181696681099413246963821645618921271563773837644836300577897416304787067149942532837924639729701913849007946804790118081713491428606708069456027621272501808535473453528800768902883734068837585162654252042680034304509843389475276254831956092293454958318679696382768764223871887702753189990720207915574934409684447311554649389423361814717739803426801616794441719259073793845210151621956270385298934340548630708529568494367193796957491499496356166368678590641556577526507915656203660005019086779900275239202158387996749986800809935875248956392986334014896909900451979973355840695541310784224098996356433149927069219654826552465008875238761098091532953050068724543733611053346261063108786752870507860272039626484682045942843842431309700826550524240523021998680619913975867757841346255175634318820778676396350177615488629823993530357596027962169496425653385932397167354613381454158153113466436719330100352472329417046681916906521489558873093156768867707650600952200912370132312952018707711372719921819213201906132297520086999893671217848222066025668362114182406530496109238505980252777833807950677896498961832740892238342842964736301205766388932676329829311209912118803189991121317594381245745184843762920282869788049032202430787197161099646526684204894278204683022638091733690589362548106110046777385124155491758466304971687855098931291344567884015070143235881205601838108244411882270589847649377103134516294618804800390933939610095713860170219582323560923308974146807636520178901395783231437099471780545500714796919982205758582449016717096659819122223575070514812541277917588516223564772319035997963055679977707171348246672179980514653800563690535561828923350011014586162197296570232689799377212915372381941521839246052666116294932724419530601607118157848646840878461727273057501176831979484516280382931597997388796087339960038205175892070944288033113014170859609426070983779633791578124611285549427542753505965138132019503409116469908950490831048125866428743446167207581045697735950551937519056804930930981862801626429880782878243631117492361182837343425202286382982261744884914014349272011014401265225027369111852609312610130154837026499195065191213976613276598410499705765098018872738049327566608499541963934457749428280881698860951314820065331767780644510091418815345687662945164218883255909245780158427131032704361984652898488636541753371255089970748175956865775534957673459700987159630349382015828451216955191185002242930503791358949087779382549268591193084439510882338439752491391770801255106416363520169371484872507795168814880690588119762676958439370068335650834581595898373940081228163298483101274834433844356026248058594689017099288130796236924449666484340226440649320238981820430369260578409916339056803386534298019791947267455709508266465543606418201094587893066882752447048692882046002420532333320569909567215864782015262638841820485027106405064294360334567873006573876433165705276772731300474635006788147686774532729991135028867897120024189167172035336177789588514066800795832267041841427178200985888305926177992681341750851478223775150151949040396637783296924614232379490422032142743722684735378376835719836108647694900660532420766566529105826852508966425916558016959657916494577393199498720566788860807358828681445132133041341028600480510929494698090510277488909887645205428904382689623276574639736927165030843200126962594806546855343086115687578481774621677197234031493383753103354073695236535781982961807891616327241684322375630902358491753154720232454593688335372630955441620445744779865664112410646957311844801202328515856146283523992241602766335027423568206647112521990899855452566654738772474488703757976331237921450461419001321141765401404108348166132735610077928889628177048712378181162633843601478980448539565180006451358530204774729034769753201116229748642098358976734111639118022900022962564034707192600252221968057512326879932616725640646365302075990190030057950955453913239274235405094208137599495779674949685761771493452134528132009352878332530719381903037729539016583355430230144379723508227892840992385510712508394551650815116385798043092804556030651451388737930823392767317988960407724721079989428191737739525590000634975772213032344076040481832439163250530695618415798073352829273789316193487152126155738913831099319771303284821231178210880777229860950818305101227658928886874372550921636658814761764491318213002669067427539220239190199917233106271278217863658848176417701046847512590965729189547848603584772763032502959533071049193227297756584048098080573147864320310820522511532303573179427097379160876165546434211719314751662573137029627995079658573291340186341502155712830241002793650348220212082504925217692323009707542491669170763886842692378107171863197438855885332221262290191499124952656433927029303295664623616679077964016831319902501700874391483036092429895328197996319766219760720008339574050167217218899565119915780073805937678052107910684317183563055004942077373355746387396369834800898866936227231317108571158208248898977641744050615581430090155175761376761773935484597444766349897851610072074070270308251119920078644235583920848757967006018381249008659088863440843242606582573160004063883729953637575555778506902220863674801209955024759269921580260956298216085408820224915458030026355448916028476869773398314012553574050766015386450589106766255884457645335250144883064135829152947368414935519323925863496819293329909215852131877688151335166686799248341460307992280106868144793892230912100764776312378148178890671040555156274747264596995874828548558524543802597709091428202531828116777023271101522169398492726552573213356270975585191138279197628375940080736927734662428229212341486413719299678064062702491003688209079280095734994036878009152695812808086046464583613968874801591313260667609388570682633752948789120823419980326120696026196584807100025914703040422703398781265969816913751456721842643720293438872793890202097127610011917688468469290271166155214449853832645587394703488488431755966334964081596795834239025838219516537146565077171944926418034313443967128554589151912898327194971907565566146826876402224592534738454435336205276394780533466686587079327164178338914883751720781554876039773977841163111033492607128119715508406991011722654351588888346703299590026099209415332831329554401696118146582914436846634593279717566750526689593827884449864626228482379418609495783409701301995062337732851497898134891159976659049089078833995937566101127182028822068626769595236893438043941538754181216802214099916914320116258906402058883712639678907016077094961448799038306867784707818581925558607087640071269378315178393244398031462108514480164453879434187950198180546124562515569855283701538802478661355908980651740490623324523190153117403874830274161563990245086261949386066070768784163743803616230633869224673960425408144164440250250923675651286401318206309365561790992012836063436234699154569484550106127491913459297365554637618383003167166883400327236636780149166857881844126880515869906875679788595222227865886253849822902451380231170746806237288208623958847866480165755886318585400719277090700895515176751245070071797016357339980315765454657084916713653382052948140246068919239894780434395025848639004778011196964429528975107109183028003369602685605941039820735975002910165714239029837826510559951979395843225732963896566734733340771320855966901983053036973972483778423138240565095142716523863360134182611381293220194399737538193850918306582299170416475097144357916115784042321690439597159911312994326484247615763256253733793513828216417345480808157962576511313966991605063799026392411059204388612085605969934825965589220745900361270378946516091843608026881302012315399007798507324902089142607881535078413890511706587701857809782189114397485161022216529941296157833734904458901366456927805412860411696963631893034652384996896624797488046679834305203062139020544847046166072346320067361882348211174020894315850059002906162507820971740589476667983704834997765285138754040989536117781341631262075012329250584915911691310132010133458965026618909519573664513606929620729375525807245469488710593233928812149826898441263150324907862791982564924148714140443574889723147641239661922186825155694262698471841272212084406304103708738933310964720444632501083004073300497459762577922239945880709020004946364236927530387309540850247972314281861120392907846151384437887755335491415409443524490627151150502861085282503859642395347795552613818914256852262288119669152322583076271703735098943760652821350898727560496167003334670840829523860282410712264120042842585143613133041065209663933484190402813622030702646100579348372341367326110050112114708633668737947408280417226987621756761087423660104481297513749012418897418323904813670077412612956017259981694010965659643062654997395521369930618135944315144019510501747359739334378194539840329539455594763949173635417047578983471686941981114692923682571420225974781615340156009256009270273494644519617135601382498152964686617962238332092775609787070682537732455980782537901484463296869070086428545951128528287104636229566823668198541971177073480600174414026479067939580825630678160048806411244137516079321414331294028193099248916671879486965062055149745135099318603746185017595319267762226271199266741501519619553182316988572599052648149832119106338060476407767528469522873236987468068507401898072559762053564966869631364651873988842638693712631523923328152364748415579361287715679974579611714276853417488870161614556748980839006479373537599091528531621055311567094692991501485358012881326980174658207315897222916053693134521627501185937705516168446746721824917850994305020145991340128236767729367459186595746006692733835938635248740541053902019131135611146866736959467511799255233799908775259538438812835446270410712972209516335005233810519152501284429053908688109306354471284298632323858856899157327897923852448926912160335644683834058244426339259756509025111766929728114767552321186354673697357144286064747005800636839231885461820840430664323164024669635205552475551181510909175335637186994195588516665760720675744704141739443647422909787590145548902377023245438988622910746465872588874421570675562268392901457109229233655421013138074232134076215068789897716417171838196454473154635724339662931450569216333317487714881807386990494237930081043141410850331401346502748024166043355512510066362897339738617731485264367835484165332398914816091881666807898079223568244260775930750243371174366026300473252619657706019043715284125369082882819408996726169499786444325600905977663461718482572846808326270396229924750490576648572091611083406907031269504345561631414717901561541278203792657724717607245298539048255223620330533672406210517933527871670118378896802364981203439408249559894145198735680109261252972150727780673402102202261103736504854967901852446494409821391411697054410491711067898662193274629338469202123607877603193775936224355209556021189627726422885253496401758740151157095222289033917056079089779970088411888055625293115019990820682139085563573438524852789453970215967449246299697579021929074112531791592159755936118158808118589887549713630415899099026876795997213557931983791799609194381364354022926432456619737468736406844304602155781047011031390892881447429937656914181133319276105955458803789259829233476456652568697064612719756948606335554328506617331213440041770207109215292492706053974923712114316830740379536034911057476311516417932945135355293370210620950758667661106247898776274858595414774592486208223993802315008923547079877912155342994169977034074626466242420156485091282361089941667110544709014193606425624752338677024777180220661165950328941689017742694117495235419243541388152421655825590269697680566867148316764473344181602604141441595613670550330616130804928329941441767075140213255881199336555751164639655038638814702295763449054617928947606628075498914835019438263323931876700690562410575683776418455023047607757197635310080077496373647107804125772793462268636493411498815048881647909935564056146979925799269117846879503141586383946836321050930687948497085927109100754372953879545859863234783892261046158120972190866665879503246500576894041358532712003110402815404377957026282390358211494255513778743013521623044759329222530348340366064600649612840229777170246554519145523763920063954725009989464411233368037606055153244735776684160841763040065788863685331383532394948079788669148598846987385393529666084523589554545284123425036538338123611216548977581539524320832066718492753663024836498633756426528553902027046258396200898432937630235086301879150022357475070619115753439803737453264733305411122991163942604751016171987770314523164904418624200791762298503241352022980718074144419213880681709632134522818078262911592924503700024614263455811551509491150339263716385605638338750600571221610477805318200980491207348566866167077583154791627709898726889049051184853350595450797973389637777775377145449549118099581396148416469645680047405505175927960007360859270678293096212339438029132232332012373550770360824332755031430811594546039726429465811613285667078187368631035544577222086636653268847568905733992476300218828953763960386555184230833152973998795226286459779729764474668513042801889073059572457785028989874801645287107646951022485115954101432608788388470381854384723548066595928479245211391900793539397130437857136356609352699927290939669773481284593190746599777065983664723655395548199405755619272103213795779248380016087833490609346122812248374708167928013681990123697588655680103671113028962959919861299294262804326737394247515051327837074574051484464894085592444145302601068419549333383491633907849706662176606532178495097480457554004929648106865686752921910521569115983132461279245400963538122098823835583632660469200006165759940331529798988335745473837877321930280560218698637018960818235793959662512359120638290075521367985465804350852863802918980124262947075247193118850375856389142400391601375597433705064407298728819527702895483418258804592244078312859885464391564145066603171512362510004465927066941799127604219380434370226158963422454387884199944409994887203311480033591006873440262920503649414454551873033917303134931515143638458225503993933032942724275642146072390995776378506795410364297294815559100817867641858263621969007031703120232923624096121561652371926998965840888248570279188862837176361651260652417085971735475549764879881468646249949613243415596279134044990040279410408627388033100036436012028146032454866363602363159770379007944325154837835627901125886224214711582548910680648860055207502555067631713994202583941925157857888123343370316669247672353246998316131706675163572703119656905270186649364758527256214455196461435584261629568835093638283478501774017827379758561063032039677787439409567416345759663890974040794725103057320677438368105155574656975676461143832526602399517763602604137171316745705548418316193156638157849371901536831847836895087831777479787678777461211879249655419247501812994257941756905502165059044421240563502350626291389668103875274466597313037752130509493802411124944905094443230128167430753791789038661625673490495019085219876619208259926145965244759954643528853251207198160909980756310687541138662835092712127822001463644489086017525603699913600035068506000073316119594053000354778544506532998882813082432660166370108244828243373774530753469128791588346106121132440051112416937676649426658504141089066656179220960458234053070282237825044560780931610515207406435898711067607075583438341525328984522345171699558833189922138973944842892499942496386903040626067311849091250097678111824784510501251755958157759185721977177584462676188132063534204277165375219450912623158068543799578757539975142810748742446932389751118857393646947097663991354731147915479970780090994402455583991985206976925513977951526610129913252610798503109806590048937337070221591618357213439465065212946740163099194662893531702149594174870513247208814721049334162643092445032985207075911405002852941854280645534605209500234107480718758932757121650934870646581224515545078694784675307917205629482296993383850796853469503850466240511319654560169948308397716904014275074264799954041990639300253291814571564254545458695562277023122230843903916458091595967379638559043667545918467010115580442059198682293230014440105561221065603369185952665934287617773690273987566992270635914962319180474614780132022116256983579595016752252397171528058313848444950612958591882566503305745125349654102841004114891322258301065166401553072507291903937602963383077565369299579300125059544048254466243809061508311367845151825254816038423704420142287905436122222668570169529416428955858769861233253117653866087498209041445965503107289103002127168318353111574034732138155960804253414845749011781062780654702589968174184616941572592083865449308442763931240707576738688394232441916897903687577966012620334125452411279199421910503104380606160877560278755822894148999795854589207870886956697241219470588573577462331549998869450593027360165577016966865137307222319078072758625497009233911003287722531882890029296782243548027590207795726939790611305585691188515517548775998123829392233992488854990267408564812745571139863792348173245214756571033384344290457502067944090624155175430220317449120336740731329503922247198747539055277154585241349590100180827732640350749949665316428208494475193356030693390451597545038952096045591408618079600587660703539591474271432970050219856928700678919418720598109460674860873386849069784257175054730559828095725827984207669679512831476878629313551600450001851357215470938014371585030193828622969576530307301098131508109312509165287325157878560652692733806784883269017587076869306487485531385404892322780253387779622348336387689855312480848516933967169917201377922867820293943570770769896374455007292327802810769828731016031766666866273729015660837184323238895384929535691403422259292821008845404688521165461589985377830011591352391064103798713464836115036496384642858707760644592506029220309390164315962747019717087195241065238258953926618527978588697492725204505562254088464830071247633229626599228480970721642374267156086157770919523157297792854196962140538826949950423943597536717563140248630439778690958484762707000030418860019424734491018881787856644559440031762741193285132917790404434009529902411233912784571813578345476950434424225400200580664825719725406792072660736234832411091065640856338490334634440835387120170038882828309863821993213753463245857195782081500093770505917381027304210878183852784548072427357858426468593285056151081900837505580533979879509727411659512281804342705550904828186999381433958636142646101127848147220857908606136018925624908949097473901749683858822945092696006062764540897607531107067273656734867584855604691378966501297050533053789263281077138425076644752833000232309792866543193500514934546738536988102847816743314635619475082487896799829690997693511590097643502221243053500239513206150454957142295082012523185282178614034402833702242569050878483472084763947896403574110295406029341858490519912780370207068158686092431927140667097751552081196894784848012108791410603878037310494079845855494715446651267478716880377485118980637297864498099812971612719110283800492002325461989738312446365210317037391806454227762933786249128947911635630821441644802683479639885812009637159674248158780688223232129569041940966445510799106529297874828867898585813197524523887822289006266279258809882545621081188803413798041616975531733842919304481317843295572122187903221949634190938424953152973059716305733342095201857351629835331629976340314693934638895491096904358903162533322226015367412219196485247240944742354438893844229690221220695992296565672478093184523842039572650046292492009238713213279245979574127546922586302807260118983592029105027506146142954397153150926453250121728461810542501210007122045331240923566989443417666983957016554520234270665665126445858100462781100122480788655850292784687284708476331752296778770613634123182494935465194377963582624995009724245750763400622414192855326617551650239414329213935704773343553172213580688388188438969871116298476152685967596652182665558982609770638697499648480642363375595430697790286734990296803250127078323721017107538190523024696651165203245707068552289661598577448902564726083200204100786616238232881580798704502907357362973004575702911687778240320646501118964649824843768329756743262202301105452458889177675638603213229376995336474597456598744095822666104078017702624893451338876925038989923403975739873948298183090823585693652533306167230073506271425045693143521959347029808217005818491947764412594924167607460977362641273665027391162132846719479575403949920073128253295501377923471311166108071355526383866594829356810209878877683003006032496985491434384397127343586464004358811125981182717481302513076638835946306921465286405673291945221009832807766081559094432183804592642504056468643286163320368495648541395671498725703982253603729984985640111230417366263999827433796544491691344117795197702904621724663983617093802433763544882761935457424410506430797460869774130059365142355685567270589827951289032182636002640137228901685086470892900488362727332590994272577785307522260081018948712039970472148171548196329997728519635083195628850725003482961357898770359954870104075762596319055223303697461215141460413488871231093836984988983882522547484055341106114241724749293586491634349482086664279760926275781615693005903226700856518319696348025594263798250009132709704630617574056531689717463824622307707793789169381173701266188090772062484174165217946135271961941006711556606426787623204111815488309629529081172402439246810329466333646659725692721905181654932756868640533192081793192688382732062941977750858773270757844899667171030360003119556316859260316548813461089574666475026483162099791318280762076680864944686506831806002701649567849400248501159187877061060674326403389469848907457390947614252759174464107459328460998682448835451836147988377786334998279409296701280288814612750636438533571530660886712105577311674906543677135889428747874497132979490895323931070543665711747365567701337026393161462224366592410341960885017860165796907093963066275230521578336011988889049932117866501445984496166759564139591717529470755491903910122317707121563659892180338145756225513503272181566097479312981565753882760726786303362978896918106185363480766219196002956298932114227585942099679397536937054196583210341382331262489211878719166482721923348487120596143095600573405421897920242724631364639589670981510329092049286831117755632001006055124058949740092213325558944495849796482018853959354907089751780414453051098591287803200825303269312157966083835003968812726843381160760793346613451107882633433227493016034835524452574244063816102615812200966926564570453934287328308331185745861480503267716172095257067721317640430348233874281458411779328567343486562936237691734293754005066636089387060420191827258484002103492694428473312065794195615509210343531605853005035470385289297063437922081602241544615344973310348371203279499821694397357957538955932759208564080094270598466496729551589148707061808668788515272341387085775868610800476024407296310901803034256806487563973416222989199954015294987886804249662934638255590946486577423637069911336234961492235096839262910776893193471339596036308088159274170810504049675485469142448647430908123088467068073835874061776221036857995583037892211567137011744894823677557588430904395707285051259756723305342739274080999054532361241945677323305140709174825275490542482091429998590445016444369047723520579787026784601827745216276314059898284290332796819083155927119686031853902718949742028132429168666635133249506621131716308914050392169593634882181689305743171107330985549783160518049667080677562990210937082145352607166329881551859753778931360744677822539836508816192204213239841307842239701227168173608325363252289726333540947601117694360317806563898850020037328179268805066643428381618130628832972015205455038076790298065212243999516199416915376219874534873913929676485957850578529465792083338925724045949406624287891954040269440661676023852530011952544817216099389187563406972235017267104232170724110431032204250280511360584785460795163344154038726073970401318457388186345968213336953117605692372328244741909008846543805053788118663351431045140344714361184257474407749101529439939810536278940089327544697056483268322849392983246512463893056493372812087478661677998907954827855970803678925221458929197840322561481444764231531249144274795541320828187447124692835711775538169167691403407606916909009791019344773486453304205961118191380325338343389529888286026592827053836364775488075519297721987499542684386941677065935424491331134983879792974077912435722946215696003705633544162096651772519905114912479871917696000902915811511179519030777694781539343534412520318790094640806438235511981932119786506647687288977236013068485996556484168489611104487118553435095272378740187668356599831279130078330365002667160437584890009829465395021199315085100726002327115138720481605082250016318741952629999482093771342043509066825354433527903046131624544604704964722673635186753995233102491029472978010922174391929903127999239175365031626077267638415178340813736567256149570987301878344877407462358931244546132654855775196972310307972284043165080461440638958416067998298293960760583979391702840215332402420187304306890690521316704143911224493183376818196010614333270271053551709333960485134844018462601641961517273384846083851448688465051701649082212933618012839059088865575665107718235414500672282831136529465041353752360073683743751937531943219720360060467675039473122609059699462391039129259917722688697240586150229455933468413493308503870150841586412453018646848822093671646152561184546362993360883224867456503412771526771884896507077430538611371741925834648553510992325956669381206401344342980483348868689223876834829623673238675495269983784625757851381200926108612066276965489194540860005327295977534072240020175232718881479767093914399774304504750438346798991109825521885115300625341540824724247978774493656090469026908783082255655744269553022070958037427113027290080169621410406368682041904728589251991977656025325350865548884974425769134523176821796758580795421225440180800326144383258097127604254295424830921948981870494533168481725350237749094127548796077515078524594445708865761735475111206102125609939950965367681599893036084723568552120520346908596513275290121882119316849923385802934282588242899403184271484849560150756128809211309045426874741927449391144382792815310493018787479193468892340554760040074605387674871805157463872559384353183822647880070761714761150001690448109414536238498125117940451582474606366843005998914252244895330598345328940175506658045653128144914585078911245100506062775432140414001721913722258837578480240650639883225195373003122637335499701807852618580941060685148381275954377981546642272409676180276637564257914076131633718196378569817012027270754985699629733908061121888466806069372496105229688705328145992302614977946374161432041919629093947054291242163035812721194933149396814647882918268858382077875363524383438343953535898352869721387606934942427079402392255703219273457582369892689684625901827166147057419952912885475590080791628688930398551843152089187735807258134622467313015623420927482281335716171745933161747443617811106169229271101490509888247664730013483486208164534835068882413007660573841305145345674023083011030099515055342809844931474906318146213809214324094413522777640663842158194889427694691884994757042837900929062489139551563120242026993271366946268643517333202337412787803990191005475562353308533024869241053773815391134290924466460852292003733706422151339623397905576526730754814173977945531319537436944862257107004636564696442803531471871178586833463623043886859595697236569657982496671590179714988749654192861064427801539191855361097904109055333909985519477586346420636397192884209336473777928887806442086302755875461430339511954760102041878658304753162677600274652579109563739140377502052036958696413991230030163301513727659958368433813909186115094280315335493166541146236635785401490966164457927559616685800445266065023097795833580517834513647220943955440658610635018989141182129624892329692047120739694528617045701869773359355155641919594693240447197473148786409318507647086009134363323045353854151782591033584002100359640583018098211350788551786151758726916883378074283705985628670456939187393195923105741386535378754174786259043374317679418818213600696524913631672500065225041414118816797365732314149287600108055695429113966870345173555128995317922078825828017636669658225500632481421616298089395556547448737957534023457426719790774123092612026234001354767251906661219034251086395980601210244312879320390587459411100001136096105951047534346630101675444784756402658575704384542471428979924060747310953133614197478681781093790379850993180157095265294204276777224634503996211739552949208727360992638881485749193406356554883160924391756999750071765284417166153521418995366786671063224237674137739290188433488938723462722701143022585376156909553279434308923269672528891896674628130828156344951864485825275181041588237743499420978444229491880717611000412834141243876391084372191480778485300663527452901065961637385313001832904732789252538985462805392838195971076539256164526686193101293742611467879470587496276914603581669308850898468454622761441424549673189029798344667783300541798232342960876494240146986715984712826590000197190807311905143289590015076550562434373561777537498516373202496973930811859453553757848142908609529714907474965520956666657481704244405765615339823083445669667894490628833916819413794479692372737580005752752250223548873337773013903301372344563182108353895190134319896267866513816737047275913953640542310022766524123881624029764822226286231029518093949019287732965262009187972717575376864240943591934176598915323487727829595070551316800753587941677836532202947511999619238934923582583124382379906082656060958962691684804017247932901705423069963184305498023598341325792993893994718059643780507176001484310046371379383119478761670626006034498240383989776046040842040384498900163166058232645437662963678914635657130215230528673475352845169013681218012853741145404068517681426923503323652649063195639003919551259795811879009820557253688068239947802708523973008123480077503364406160410229883555462899188006783144839847112849168628927401633944909373140542636691872419501998242638412805035106643261123067690122883420684358587127347445233915340467233327309665961070540737885062889581037326862975393438246308012596403534629053663652225883759802853680943401321537929649902060542171871042483105531023045913596689454924213068047564858928358044078904424877230530023940069636666336530062828982795665727949746005296074910611342990901196774997506978984127818432438358185118176280883410183788021171019027008149531524430805516373777437466465822236139908287909748890356195542532176022447043693497879817905915482041773912771521836857595849595838197336868300873646648914612340153052051601646613726970900288052915596694160095518619361461851536161037440165487579962630081164044044140627485537979696639190297002631785825611719644333823906762753694435306034651126694221103406945086801791747691760121558620593903392167244718908663217422638738662102015830088120165743629827749949474189317034708046650219316693210905873204026225530312833884653819806997883880608251846363608345502091230603293950059445960326709328894126950015020253824372467068502830734269149414439060132100189808303920949030645327698648785602855767550639864403340519473529954425637907190542154351042779842080321785622259107363605093693862661430861262659660556190897626437598513359137862596374014737232516337103808555817805191256677588556777205021623214853541807086860808417432110898460296557737033914862302712679755950530832807019755038349632527391918120380737729633592744992335245578562976247699002798197201753487874022244939472706988935979408492248579963922390250514651417914371762483273906712405719858796771107198802089020404072791405999125493090094146438194494275958034237009807206553606996308933108241043729546687574951811461003354129896998779926100922971037446879861313979121662778016509687070297276039234097630759020409781147754266022165711653609813236859581508763060852964567914051234830847931044044044291492615612901348054664198443717113287491646845291474437678158755775816903554192438417797711104561927727394105372854028599339264679826633281467564888320863771772118422112411860634568798240564298384315842468880609871834953269244573057689965352279674236207372347887791097273304928560116468363438586617955369397353372633160888183746306797367828976887757974009093889499176962758790390367407947333168514194072326159017438600172903763177447791760046918891122709191197566500401599157313628969691457312890665192883871442397080890587813420547724264966314590654262392246426468831345218896207782528712238611567581706999602504294827820974514679296948360193442194599846865671817776500227936919797893722993734290769189130748357951606803332424531553056437743045245241465859597349434032958047568392410285052370141620881212107397773803448830402722295487961926823310675307565246120050620474232027726525055408806059060209615942032273255955361204545754621390601820779337441116293520505819242866511309018918046706398810486380388487836826533502050906654992409055449204361341807570238341121249981039037714872669545118542976277173694043565546794750191563144526131351406650973766637689799145251108193902137593019891029418690360519701986736736586410317704276290724636909790395069681767193274534376678634985583279573554856130197805428400646088881811932105492451333630850956140617795651398907375350756948866458052453745501877804099787470471942364510966394394975684662523695135446391102691477662211499583530635595525304459288500504586063650003612696485291695831880097887342506536164071386890315721498925781602620821416482748581921136820234576022521696889332991429178422872642125066787288417140195998232793206542574864511436210159321991145898911484578100663956555470600663068256607377502232928644163678746120339003816430703265082422759498119408205932697469015221575470781700328410988446765705639255160417083524798126658691461373903402031511384622561547498260409466506987257655687862597385212263867806727010571552192009297124191250397864920573748442231340694793750585126766899312927667117789780653125026644045049619767877393997841418251790063148861717634462257725527803998567641577659360425263506339759461251957602673842315974441477963758455376592874229238266574353502203888059154913588557605751928153622337746834184479446324827618222507246975716916131977016185742970276535134922125850632520465958076329607598498154270001387394507903386097038841900805236996299602975825210726958429233260411444916963075480925051103853276036006230260285589884404681454580356280874605404295005580331806460506409574448123087449940258706719048721719234014608160090402293323713982779560276850593676106351128372106166574228768526619888552231105554094198812991880238770084994667968276675898151048396044735654038681859125365292917539062569654550150530214753374958349787755983756091558035629531350221793790303727537390075624969492858065817667212875129335036610532845372358501642411016605796698921902644514106368690023619496666940939967160960621369219875293038479261998667092233790721339342062551647616527712986477825284203295889724342873383550815536667668744920566113295213335135520794467339946222407842234199311197385001085389274787638757589648760336785222106389841975633776942699454461714978001029874385516631706751234897828389941568044580851916876867745585269266763064645009136824578153647383686091201511452194020628880031487749380002026870153821210416665845621887735176826887141334259950795682583339170847272491201079872869276619583220417285779047437527248317964304202318066223543766448235056472952850453701216210467257826286392590308112482750425910028708675402339197205567754506210891151652166392672688541864651706782494735277688129740254753100246885410340252865179546737476733400303785496870858737566191777339144214295147999085394424701159060238685047945155471963924881541791789387491413259023466315828786777854834412937631903312946361636905930798987543830758412606621070999007291990850662756206564002682806198573981381879805194212171134693122056432154254157351980659316804219112490984797449325350259003167033204123068383607189287446511735246458200765351722967309673108430224504971909307663530883944126478888506433390270635791936115071395044796353988591342835497007886761663772871392250783354325800108581460381901238698653690425700655832302380374512640503306141528855831545423436830874857415706277054644129603936408707951484163052051129446372633719777899808309697441791341981624311111137300238116771654597674631983534487556785798640402939469694665012486541980005913902788186499755646059100417664796829651355298088775621034021576395248984405201047604724506639120684203813522120596481889554725210150106601686501464677677081411043957445798988757828305953530636580153716764790587157399365937583184392805762732320865225864781748392020255916247770597462479379203646382632153183140670972078108483683301356551546261681550738041372143934608476042726560091093078503749814229683424871900157427936753827274254430145853518265882993052241737798791717995468549859891031550856459525431750509327582646532767076944419814979219742976021349713729300699923245693092362130352549250840708385624466795373014772638128924369426696080211932422236239379628605990964037757413263227712151884934634432185842642620340826807096609509685249524443539658180626345234157365451754535211783737582977574839164746884413108613097677288780198683260438680079323909626734992094615832688432661270512564647928749121805081888809559571709310956911875525171044972125412420597616446215718393895629411938425411544487277186011466378186244225576050930114284120467674379139648243351878886928377499951255984836699843649066784917926079954437643112948974225803685611378055187415109860742012874509217404120545349949759491504212740665849401179688581050656873191941849014782931375393785068553331873906500198540389939279303327444048163214733604935627506273685924112194049534525899760732587864368895416315306425831796360489775744406367479196081984008968527853954097934360948539220372590282990092147855626756239844905278386727500350331881089572722548833718327207269356838967979150649258498620175879138872276598982498354944692541257239396549172669887262727176145953696461305144983238537344960548194874304530584651284354042732392563155441803974025311709361226643854938390641785108191926536673049231783003632517815792396160364728815080473561846129736676282218823530322452376524600972084563791018449133564453519455176916596414323096286664774443062045844944800899059193925488494644346707526212940311252028487559809865160175873367263467892044121630250190570496630869765819647488983793719939888548979987450137061007436911514566412333932493743378745373632862598824195358996705605184937685934136705034201227706917764549806230019514657313337060922194701952434389501405161968393401278016275023696583138387090984764710096765389696949442297826908643849998973677844677126123424648310307997665997310403540128583810844620789510824188261478162633640383359629323235129483743952942125341214769250318623137230251879727825676393052517128290765183318871354278524526567162883177883297131480541697011987736175650416593093298036493703761621869923845395275200952735984451530260921847468014702207355669932115828595689422861524227713121039347887294093330865072493227988405297498013024521544202453868510491646114149834287613782108840800184327560421479507363248738434447741570117782350790926726287683119392842666020548190376005543364462099454983615425522958736084889651686937267428135514124518177658553714389329526553909061539201571455690667920586593475364479056828220737330525689139621922932652774763605976502223832091157463692092452678059482023981421207038365890891882380376200651459298305714661314410692659720890634934024902253246889599146338032664562817620412692099199788938434214795088773271931944444771987828388622902396691764481421444333361092682059080072512665529996810985637389656958924865583050737442679686286910271543889191979710218100248697989650966980374721434742376254267373471945379280503916662645576143919442179131215294342215711162635500577964692245076585190107443300726192579193175565756315910850122077097452346003181004569589958235951205341665997903761406634717711879415270565326379516068824337965742012591574673331337454707050042538722256982168423823471638722946136256967371296663376233012740169868715392680432009404694396309023866092545251628702965501515830059078500573078592057693597473201777397324390511843355732698012317937098124481175841880080496905386046079391471790255268721401148461745193880653367335655727974219099020506315629670587132649887829744398633985543832769877357676361802179940461255372243292406327391246796105515787204611717663364097144354447796543064588742634770333612817704188790951457656001464766743403118768637225360373244654292281699195519056947085950364408085007451316460966068968138072463336654916900354938818283226174445948055412404345751112795457792682482634935916942984658097100626854754005198475477047513892367855788164879259762421061103004439927691200664894764408878760733602370979743694584929429599142854938872756190263296802988791120571769313091386895774075262023407129033975143020552564141871852569748783319095890580616065127229568671978726483295860929604341012143869078451522234290209637703307005714761364748668341780509172426625745211728914535754847176662716176471617359832544200906792401393663694094376204300326683198883306813132334607233292380138543718227366783620414264703803955811909445715980327537925837694846099804681062919987585915954387854246021623916448428870348042271549207265369103140744747630038443434565437926139867678344964294084972421169102804837250959526324163149810419727644065579673281772437509868680147436765365427097648036032299241521369135303581999218159238606790235808616274920133278073299460462183297840905325614456817727268986179738362279665353315936852806598835953538284742283916727617937720301476381330690079296875141046951493618309870241161506007403153197649042344758725327339142273363441969895018895221972347147233616405800386867877998208388923086273119866010493833697720004576272848032044882461851041689773578695170831320029598002932331768529782014520388865395749453965317898457679481073393634105991741534644617132851701966304092385524635432215596494000922263791019295206525016052702918515947427347466732969750587662130325589425520046990251696414548849517334249484948029942423380559577911297896770797898111341644376027784015632460271863201107051675120505451426439044183377688661495863604752642714597197150030207720751627992786901846209579182717209319972893899428056365932144505770964909777200271293127461042421385896367862877825968952481781481630943603484290727586977478162686965810630874240793985992705530140164619687232585763588014247802013712885850417908182915651228847048005805396482082532445600693460028485983368794223037101078203240102729201892401814116818198603641914038789355658129884592922714498774994207317643801642624566580727145505060448801980796693776246340168888772981742964528329005753946903756671068025698593062303879472668982544600957007752993344970132642532051540476288279544082836493848178782751399356825067618624150296713023244326932208932429094617231642891047136624623172799468485184858270161147965991876742827375742151062989726527874834372940879161411211490740944209889702413656645030953670728009439248333245718210942099882558717967191149381770727579171634357074392290245347298262085585217433801406912474780710671931640550741404564507981632362978158324396004763518016436612130058212318336638027226883870763180905232385404467635016922814831466057275277677329046754993398656419727677732127232656152695257835418720679525251172901320553364861093582683562992766519360161308266851805378047537752099973616587933115211927923102321780864262427865732145665556436065342872358174251965234915189579211814275168473249336507343565358078876596898483847016461583063310960902058451587579424244326037201093873819079354151753757140334680383639645199082709668331246561977412045014777747408801147389850735284506504977677840011909215610519017909168920105710857259109049722729422979483780478038491559895979342839902500742255929925195529256238949514676627711690325870508099879354905223823729273180747017481691534381157446629084292411421235921374803815255557730468533424816266272222389675407489531204792692252282695757042906613812456541983468682903494089676027669261531942625093585251576494563843003100341345358049657943449694454303913510066108918478368385281070638458703228287930124482472983354150226896144340171194319638174672663339952241498168438243424737304353246501708573445487312716142848673767623505029811950640472099408339444008675986701740470257874029560976290881305693023865634228855534122057683570621402872921549945836043445690451016667840869693847892014727230115963384431570312843866750955737147112345839370727861112807159991279280157825872235068998049090973538515482496748229692774890861735486143910531496989784846404189498591724856245589658440392206817010825009165364250979201427535315402511574117628786000031656515664100582233199046990611347174641454015451540489650334063158058756862037510874182260407230426101449280814334959666432869905292812341333181699838210279144303647458066025459197102026754371457180821022791090378939893734636132337601743898125831510108589675767692181914051149351270407601617233463746032499769675971604256327177776605223060944571837122392393857195525579673683763505884680020009802791416076422711791500843003911346523927325935823919176837280970326971702389309218417007516639441847208500408052999083915655629623846362894770815756841490033867928362601927461787361657945067331917168558675939577179682395042825474280573076723870530977738619161159890901931930861989806903073988337292597171595453264543809999146278146226787280577903707606918700966814220922442083586098267197403003278784000829367512124370395631399777656766737027036360692706170602077381083462429946076335420340151850067002152233449919831804620560654099440458188660739706708170650390299472961249086092497091804024283660673655463717777218510342753878250500462455015645222003447723072463843163066372896292299609720475267864789710596867489587323162464762825841542966591396650382298578735071394320478573484121804755475062028523007976202710016113765431916072787664065016341953419264768528654910325556250276096843402729866161975863463592171822225509772783750471017852873063201145872197274540547279279313130880773114287723277761476850806431121192716090505496152881404335425994955097188011304415834373984217019264161848255681074714810090851740905050318907052294172558251080421485922732743226827210511911711515956348484845100103518000431142049988501243133460564893499381294050984754764490939954267098827690391162763018133393417607829971374735680667547888796339078634318458594100816509042871671160573815287903587134513087334950013193222345016940958045937249725404785350628898407346581783936687044060360829299520902505690343861077214988708988250722691660006862949179603451799475410534350693856260771537662999662808859704161471948425748441783216825267941185175023564498321869367931396747706374695409106603237768028102325399408854381206675885335952503099380264248756117266616567351496044156900636554884165313794459570376482307710131470975610253772129821684566241136327413319025447966786363097228639691784508292627347578422549557629965450928789381607300308741122181920355618761029583579096858113033146458516161711028486313317033540837864167479767001517045375376822106717611453940244803165548060403814354342871785177093617247561583335610598471107088096643848392900319458157912584797886427901611697511160546804972716804654897008975563429720815649332495746565852434906078504901276716760347874676825619377076859212665071007170445955250287670885503172547568465421147444473193017618966237350583065357688272168870326018716704222713965125099039353943080843394607667890891427964902890093165900909369624204304494387686062761907546842843354443740071052379651490600088549530032068013948686339596536881813640343253856706182960125440554086811524019795149106123845293224084102490416496051020027756240609577474785893389512470031475613012923781577374168404732811497911989498351025870109940136178922084492188398417292307691745809082254282419474045696794555135318319092787916606531339365391399265488764184231797697141660379954495628785844997907669008307875438088087927792290883412214236868820300553757454291162558021372392022560506912310132554358604131193134750775392276227979811916872187002351197309776342487204748932543384877118008855279128153154118802971006772858669361241583136636441603344078813539443742076771970417791606117002058528320334058511319617000768274519514186120422990007368490729036109273129534084410102680583068902882428047903362279822791788407175439086753602842517774740785140270125020033497709100689608550649728808859564168353344999599372328925820092908456995011635152571140468441959284762125090416003877076823842446509459900612756565944650330766924717770896785735608127798109115581122122484336230124944905072775651922297362713216504128198476187128836431568149913657602544118551626636474340159111453613774795644027218078577141281891001008540595569811821158599335427494216383741530342906505428336336479355985717041501601542159826923008319762850858871494336722710819149027136100575670571415264989922507538797237115237524262781519709096518895791190611818623031746234460596632821501912499319294423111883762079730054094899509444457877117271157762057301530982821710999462653848461081772076006702947571584351034256551284909797507569178998179990215373582520312456622372427209326230783282195763037883541435319233183479949246455171923658404569216440967625802513790901313550235753484350016198889041192971267844772007360303452192655563894338990891690391958747976587366099949974900038998123538744927948709602765582651505426074572849512380641861462537621214524025264828743069197163595478475719934464144725864682743183860126016157101850771730800606906046180595541334787285991909696091679849594873299458016473546565874518440414836584959544584476722136907308878965263239674930618560683226545736124464170932231417983364126457308188635287447893948964731619028452236100343779259844635600733125296289259259563469422394623262589438316969486212140420064351448559270321050595716516128703533841744218581621292717766807121982906906455904854066868543062930280074199710357055106219685209808378519227286063994081181743718822771032075172154101164838354991132126196695694633825216013425758482467340103596103972248854901941589806607241937740305225837604209136751138313392616224344869946656854975220487272985982877329522092943905189790824092405911315992939103457793282198183138533950928919338731810588194324495591007975863704779984710436800277843460532136841214905224050262536809776471042942433042607179327424521118474817697279377129748399869264433198116314585459709028367798322223174059606449349861663783923406085827286881828609522462929698048737311110686798745786385256701349555607265528192002977839506168602155344413894398874638479110741459237144189344393358020294602769030130900287121581892241128064345949768397029116956745730159008216117496212422568171295089398113073519180266518146980807870156400396042642365509134193577791699656406106813595035587257821845699965192438993042931337960789627571532015575703971392594277653974747236247751503795345350882606345582168179200249618697340296833066903583186526426995314630283219768059807155896796647427666065173068636923880834650316251494992541275258693632054589327946041199541662752931133755340811748687974461963504550083059071181447883389781525487279437333866558121946446152677843904063395821371855579180061024923307304496191770800437452101340771753348395343913788849913546247355428332543488114709928531052388915206380148192587559228563628246102181094949150312372566162603977040951436538448444526747983590744406044120338983531756687378853240716512947707569322131818301039233252153844076413296083304432641790677109300646533537715771996193520242706636108169833841282470006128983197426850363990106444542221507584547107585684100892682031343048605901114820491154148566904643769391538291553450354602783728095912600915899114547421699867835035234276900370154165959751878727960451363158789383675374259075722242871275052179559236491626603649142086179442795787307980677009887353205551046609231236461285512212488684619753618269100913568533341315936416766338853570028348915854334810034735960464531813033870654003498177043350084458569997048932705849858887052300496591767003244641293952374106112062232453181267419937025802442762035086597412837564225770309596680116434326409359084585318074905295080291964717543314329723011242524531178320902828513241169498198991536171033718698326623282457363610304763236835969042463851064771158637919396277848436390548370530153959478431700248137307522616817653674852646390442062515749797526025879399960006655956528473737284083929559961810725307345010066268267855667515732314515341745886115391394012347001103423628457968786907598100031805613443701639867303353314414813476336718237278161965024476668913249672209570571138179378130503816373950682688528972873602003347472184429295238563381599904149061323451584286298819524022134485310777561486877890217456311882144423646956225405115262217817067359784123805881854842675510864391668395652599008691529986866964235635512480051450213094365132523339363802867758216554750137808039019775147211281055070516683821267237554861276657302809813505575005129073855733113833731454820643709470382531445679728482860802763727891386399581824540824424051628841269241697439675542054504371979041079871392259701577294519184192238090052175436822915845249911607783870048639925992863804267045845029953981136910605661601619590259104304591505285362177165075319579211209274020722911602215284463716098904733677080060651648748682244747141572372890602154726754311632607860924102911314654408883487500304412911653081050257466407618173146130260912088301244753568916804602215670510945923002851880340681753127616110376668879749116666069197487289047187224383596699352216534719329523680499242617900219520342859192923884582115266490709450294526570280346475122380751685504779778714845708193554160029836604021412329611358122487986035624342039948412841920905664116142770787257902697803131771394627193097063300999149300441559976072519801917803601311268670170335888590175305816947791294362766703511545345190644758748531245607807072259424168650704769481895703322183515488992281577512436629345649188011978797719332213877024312195164723621318089818583408469362438738582845379846026280637139718381234299045179621909508401452736508499736836575853460194886916656500144828948672186190553607131150077966595021963086431571325246406446869212625290854447476925664381958738397490452228135486726949003957650313754248214956584189272133124157482093954317991204658453354014324522792093164187638479506195655015978884696125020789457790523220450329696875716234777341737202958525002618410238598078545777236645848087027395760985003464223978098284333702806346131491576099352811179185703107202555043605035659444227685327937909911677886415165107521133551173900096544572508967131623700402408862380529031680262891374926784556094783495192828655273609796046650034192428075973062549083892888812529959177447647249075643032757492882078365566429546038987060130520840491291834094400577982544414183702357068061942259774620027756965296408446833658028648049681415485962999963016727372750761768446026099387621731770871028551641500627205506015955889815434802645242381765028258340003953831899932928296659645764615599802739690976730517624108333585739827271565202549340775539502778895704931099113718088084656242828318309624490163591826365653816458191000284065549119986267332950770923529653677968259698605719964083525835505593322300551910292552110395793458171058673150634339476153411766724075488779429163886450055533234812063640567175203155013097771973718476665043520634622615851672833339694135899744205330392370036506756712592575226555657914047625814181068004465047009954017747627144916435888669959228652614843775726842121908676286048493320170994309438194371590541133145723351340776451667346581056218224287399020827348696654781334936162206919527443831388979307497576160067576764596872542666749898534199808338291016826777065257866148482463397342114395165375629717662270817930584979476770505972384304641816051272268985385509479219853689298525000657463033555478817504514853300039409414457479943384449104080907712051938517866151453909197359248443845583468203507196842726087933759417290155159309573865836176556811925936269029398205363430824716820074624813660756318200002360636618988019701116140059145147833193596091465323740865174792126069874407046913649670075040681857667143872577793522845100864550912466657290973213182776991857139948210696033099445347314765033959578037262285837699596020799467492101301443140257634044831814603090181131427058809496893093703269378757538975270341953226059763209356326760700311133071401149135575965124992045294768875095467781727818635026144042669983061480309575528167044316632002897557377634031257511923523886229448517211853033423196144678228969831665059568685459944917727381213659595173337214145723100343943532001519550323719760039114254622031592191549053521689757361160613300811184812734156129562123829719698897034196470256735960569243752368701653869257266827641965072246118192176026008016776365714212523660762281321741953849123519810890810216066065323263337745756991311162831447441634951305221334601299002291827736493574549302549802962464740829260294381647556207053253809011947309615004495063277792138651578652118347021548370283873623748223427989319837107217903307935491084614578808179766559603686402406941199221471188504793977991640968407480687711338051128252165215168324448039652068317479634362278922191815675005579614954298372974202634654830816087355243478590101229473187324368621486093995743315586015435980240577027887858777994215296412088119274465207493390430923331118918787389061497368619202109365777056049096497685523853658290149453104997347498992412554818032513737703665939607114798068240033595798920690660256722202115791166817679372167325281113081344015783853026398235608538727708566091912161482067852662247077826708233534701407118461509619933977395117980227026449929819142131626666787296722703506898769565616537516648939464285770861550140665197501200005798533814193733739828409722008826506764684863442563835041563732913072321740441331748415375109049435652153909462390466921142837011681820616606165503069223233046872937056020248071199509596185797732186486710885670933818189427270023218126977674289390536718557500784112933946914320723339140293708182612227362881623537878172011703035837554712274678602674354601685184816020121928025093155739520337363474101608585293752791409866251275990227923388846014057650544440794344374997714925948853865519917798534315735653170392023009135502487676980773383812748028000027957788688158348095379963046077753718386283582447080426124483735430128361467086053835580819228908178096697561967282403215031667447531362677736125373780094900846579716674146351872728101256303792727683399099126574357109070404882097077365714168741807884854968918189906094983589813613893381127195902698483079055297992146226550918913133190891982981200293899172096343172667527021810909148353329157054138084485309275954429945375931693993878238889489676505706688728698809447373438188784140327301579674858055996203105024727802135050497069698959857863513050624670761337909845200544024372955539292467913034792263421344382988848652961453899465528143427639393719567331154979627412237449492951536295083248974341083316911145483884757832856025881399804612197359326924269693944774779143769382438355639052297160812375996664364748071405584413921289421967512462484460334901985351642222652277614264546886673036807199104161270475560751021316307941998662828666212421804101000553894007368068391194894289433539010052284803754517516154073298656732861094157025046291177156920760233271356608581229508972830968855619405299803099367414972634224019046491116678363496903076446952643558014943379873940326197006873664354714783234124965852480702453858935142299589070619485650395031525044046144767960392540218219328651709440590911548070898079227783431014055456738966655820946526170967410828262615315232220921655145354216880120478258016803712203245211020618751242564348890704602715123737792401646298881789278637801868846793851174833441994440275041291031069177536638965605701390937300400226894232504723656849190494086257357262448442492108696039678945491345901927728672797056289387461916105878949309920398413841831108192562545116822172829739123961845595784484204839832633650963919980851662557097947757058502449227871112859418869858407016313990605759695818050605729755819734488436464330043775120634095139607785066063265186666037355167130857904452149438215589560226999100250766735653530893286408430361508117608953375498253415424212904006084063368988329001384122245828555401401594703975005594429822822716486809586652876596164027297410007564642975462917160670409200961692468347625450835918540600819457290874181439166884920108968642671786103442509381970746718476047796732027836184959592979298566137410420617736209045928154860870791289178664592673183512004018496763461878284664263129622613152681632670117334005090868493102949335773904725318093372989327805230171631307740746434431180251876709169776533956090997560618696803891440157769393627365467374942718481549299096706769212463573532000298480906684045563428753706274343977790323451107187352036745817552066211967696352594579295438244901223096766948029117718654665017159133245795537885690173431201718969296078928549062967015943190343761591746404315897643260429102546652594368801572108377524706884870200284925564251157786300547175807824928419007570700686032738431919279207141062625224771772428986465948011722274618185122504338034557306285380504591236301880153900702067749726084035018341262840065564677984423092794964105001360541654527074727031345671950721887574279976800586126720690804890637099133930853781652615217864527878439379586743844550397266584194729204849429532535447777151269313610098481910925548777916175097969316111288905552215772720230982884595468646229759251379428837553910837972521512397418713190040717322092614855935913565557942113902602337544237260123658550397273401433185377429150269664068235461935887503473893007517735373938080403988979361221239155339182874937292753275845551512782228079022665025999230399252502093007200107735545709067770867316257429479038690506207400394010136661828676525827644159380853156197385444422017422150794269369756486814494458972430321337424504926752132258592760617768872366880149742705459388468651345020404534085983785402202608160277938593632342468075414806807786731501878713502895452308927360339135486737308286103483241412087754353126811146811361514683797696961683128426711342877541086837176025381141477866934089390380153061634297814026033103047580323010430627442492598124785521299628818012776613222526761548132816328235430089860487932603547732467247692150667349679240098257188232198000034143284142158017622584647058943661500586808070708010099776377460315731704240948173824849466927693361374638820075320995738705515322692634307848472586051682111899978642326675754653728374825062336232901773903250914886714621856437327337173039861653250080523407520029671071500679109007277691543638105685338826144988838168168728983918222126771862446257096354205752395167238736698063644794984275460639112085381340773167148611827015652929176108875757233350563468603867597440007538370904423705756878309788438896191497117311672611946743442897447511624928095523483020224810244858087144661478413745965967287610524658315511569573699993812058209502085367651207119739664224315453068314096543701938778263916618665024982455745572799730019221004531077175856614019843320731281031053893018829487728655068800566177161465257626418203360822779556819248670854566494859176612028191604816871052273641135917611102691309665008777556914632189863602821791483181015365278059541660139330604423586925125530195447420071842099125265508882933728926378559050555882901700741824599330586887312533441346921349237644103874137171187410738668718366801691153286580214307856494308020689133417193729630515332189237416256896055850037947997834032952592208776208551385061702807829228276443515290188300629166268456974259951728072562863304828089513171171806653592328152849707113974531376105023736163568867955824629098005507227018441066547437514983227615069198659765621735570935785050112952852554331170401767537144853207966634025981315629870321250852736572715424353391374578681522489940503287672442795407392964526294794349086073995818552817499292742573333153057026452558460123711901371967596987172188594559574691275225605628885917431597440833851069571747281826882621354501593887837316373686075003521937621183449839617916482946803528483336826072816843145176058580208921824908477717811164048391370641039683298258165408538449618461832001304104181498571531093088710877856416921172845493519947264054886861664769722421196431965184856425147532362184568040987135595288835175687238346381430993521864800493252220000844056513691515288744576408376276483160843181822610548433715427082377786063133168145332290228246898028884492003997716295901408724171760513521869181856439618822611579153538233905258383617948664183971105436994023182411563781094448448024300689519393594422521691724488680529895145962379657043351095809410946787670474559322839468416717271126096392992009978625071777837446579964191495582436944720341711256617887405318974710851152266017295472707379154116220275937024438904564999674958365377589637226564532979407279051469389813659463753729539738597314454101244859028060400777889211441444484765216889450569914264307421239992004010045157126362304624259204740560092000053743933581078231869365448608906284968799181141640621826927420942257549027400769610062084469424436927501999033003948723917290286493050294827958394379386063541957910317074177234471238408913781865398334408475054926687053217694351876083387175800993519537754631413374968872968720856165261213465156084160046809603615349789573530596029925294895114820164915081386433551914464459948684029639666633857104622908258787669704219008298989830526028293530387042351529694034741932082411562395878333023209757613225477524912980979717397443748222256196072804795134088920355761190606189888356303961966803486992944155989599499603601921378750215277935489761518812319537507615352326953263605662879350336972330265792211775772068850399592336617127658418684954635558633292234915988543058292688539465187065703761281521796838481283846987229059730483071185420136223804984982599328309551300158067118464567159641567246881338360313155620512813253522067404515075363477259110040085465006920144017599629880049723295667425629498352273865276113627290106237547105474438719731595868010613120083196777068958312933468508597051236304325140420181222849133169968012368609130132954016193104355378784842647520878767307799411891223852622686933810436422422976106516232225100074530079102254058243655663042010661407896945550691451586112544028735084654563121416818985406258371043464614427445466343849839777878234960688901772045782825436869650384215663461988903030452455361776234436705470639475420547321554521376450924651849558295980163504413072609305870027171329546544817355369366078733793900501732128807179448306552543089753672718078488988739113028206922814085355464523207198974825362661636882301064676267343169456262832076631396872879416638730213234886140486666006448175516743473022428194851728675451079333107935137431621363901232552764701601150956674589575716713968549441956914462243997959077355765780754636583653144687779897226469347722572434663901747515069376996089538523642132694805287968363192359651202786942353334493128322324974079783730896240888621256338460350572975469629958694194981041176946060536129790773965442645394475532863791252798043568369174116074298228479960800949653909979505676019297382615781235191815453837048378248996277635620284805056362224608633411197118599369523787211552002022710811028159483340995799469984479995404009070578933857010028383124726256399261515641065636344101943594633208466019825932301727448332693039075134982601945374568664749952238215314268980348805639756415637324849496072891416608350786157012005377064865177532217110245325239618967091644334216341946123551308782461705264584585266443383000077761101370376974567124057103297046755713487247239045065870627968365885226514944000039062295764807409000212323395424007793514090547859423756364933426783481735847187958791222810177597981006085652599102402117593034400540935059209712410286756050735696944741283797625714444797132616250337129815644176876607283005282763561545613640861450592106725996069170519474307179219690185111458334562067441772815620532629544642662015241173982938739053962173691113034708043711872837308356199812720410229449213097481057801929281726945500724361168553249220936582970225362768878018040050775214489633636949616152728497721724345663524161042273605500710564283136455022052874946589757923754291592451085946238128028896033429009297105943927489737510959591770827472754343142826014826434473895650547952062961019113251341208017666369771850321029976320072821054164350010349873261813967292739654441842800032315078349905267473864422324325478043831888567113787570929657616811350444015531933320261236543366219576159282901201766424336094581792205899291026972214854856670788751106873272756504582435137512819174324901934964790208808137913939794171915604946271585772291256445152193385218076345382921919801536203236152543089889330574541807002912355767897209195405249822033115207974667006969115371035171064867126658874125517887268230970092422059794573572867041526657542920793934935890067445771649624904276306558130382093138407545394505463877027729461755738200365301005584159238690528178298474322333582007698721805227545516543429720125498865710346617190235784153171979064300457656615417659108350261739686018543655545176451444102528045256272421055105167811679188512725822814335307977042839454379847002266565386597670617496050184705600121205427447780128508100046786324960597083844448929535087494752003189328240026278410199561341119837082623954196059756775478551887720007109673083762379051756244942768489161408891680847009997183359027089818936744618956817514712850009066183292353636229684805394852510379628306823145276335340024678901567670516814696277344648089087879481297381881627376787940908838996454123843959580146560161205909573337558816693071520807871348540047484426982110873342524654555809803553733444806743828592561608341567285992476951926850250718834423879324841971693840999790447251695876885934458456613534012109608169573128641947322361960004854556296566384157392959547205896912725442689458723246797637564510156552428379328925073803640386245088796767507515733396492001484023406742591222515501518309417304939395460613908179212009100801849166035941087553719515247469041607253559037815325103845463672328659545817663106437797897688012080449716372590937034033796010388833644121303230399395920693654648598731364663480709429779333791395524151439152884006362020805831829129751417396557466661057658657312864106413030506391544901235367824744456909842441598104301786637636848704504471908220314073627805865083734530464339218468476995264943796464065658903571695137030875532681471873669629227920664655668087831424587753487962564696235976190983390919364017962037080599750403061029644020884276224854104735846409645099090259672044846865721133705435386024326858699772619110266501955337320295980961665569929487440260186535118498240316568340687644578176270546141613576485599924792129657585193679157041129712084763763561554627595000016090550090474565591696041937463145953580757797994950279608609831534546694779829922333499557686382997605631893876543594243259807656146537787066391203019641125782622448250787357447111048090499470815081825797069537300573770629641097680993040340301018425882909927679032816432417629411905537026183371229360069566152313208681478463665100408495587096598922115728030011949657853412664354347938062255851074177183740374150543998160428327362991351596608809070619576393067496053601622770230852084696201976353170977824212588928935495943938131211397564793719318499323790849406188767080560696515721057310730893182365126621496118568967001883533864320357601874877241303602924420284094082712280559310607287189936188734477308871989795809943530242013132711163506225081379824644840499251823988227418605689666806650969748132600604635031786418793264360081763345080376521585602511556926548136182557864791200036170568184420625458943111110471205682086919376470532027136215168896920294123548714857217164777807316937164442081293946507420360320329008060369970654545440868060623155321576485741125731827317010321676200231856918276358062401297076900282118263547783808599722661702453030385402954948830152202795078074266168186031626548311784169642936112369184634323954349973908485484776364286684644071285752524127479085847321412352852056580763010927260827500560531391546338475303813873679412528789062473617889739660400821188432581669547382547732947105655524058903553128514613137790616625104446558104208509298067463676059725165550528348850761180168620621000279037622767924845961678468530900273596472502787286002464813118354722770353975722339576201975802621771444821400757961859913083015609175911501937297023202039860980804661766942929131640076951582140961317737521500295978791832166361179121282178357478801002441607884992698685739159351451015421024603669179230150423423787943145198744451741604445547753695736453209714568625175175315603042666262565255498908389509687196120923183372581290971355752918381240448871072601975415971837397683479990351969586737580194116827698815716383960249649389627718569892173563577292472317366692843665828315793292171753933404461832042471117856398109339438903810803660897955205290315396164325061666810087558015223157675058994356431139652845391788216883254048991527668240917933454525871466224693502333308389282698604415618410396055896981908251070815073632391394521740598711482531949875793329041684576334445326164719554977719627822557244401757863870763491548935626927121826676063517872415926569740196849172546246386610346758744526970139051505933026423831380524316447480030964825638053592322044414641020223165002161724448103616824636959421369587735104901551035993270938608202562765996849790919573930020174998184513080387552220768588105023197661981722904931544041226170479765648523694669649670152809728073060148597843571594686715703282636738272582546967875918761030020977609345549268663978527606167827351521297614072719345006855977125668871076543816708188048760105786160178720203341884872826006006897501629354332576612935050115046563994516420651226465125643025692257359488076312860228499722887116260620573504102650332097350233412372389200237976678080356816190545972455328190484106259166197279600251027114893432488955122497604713870269843370464298658258000731076279499120172502561881434247925097629618688838392315076998819647147131717748629382453411871466694287149555978113341228286056916762451566515481661577310018325003457667290430971367961234850079200129419901086176442470408732627967381441736814176510417941367601639291586424955628790438009121116041734064664117792103289706672276485836198040486081805178889175437684823903012935940965207652027468728345393810207883259610936494046197939852750621313928659390518076687021199023184723809161237949013146271644485568969502531427874693374619031374648249932589151282935788360189794439988254209627544402960463300290016056373099318007888600545729142136694322745555322114386438105055979874292435173342418717665441836617087271084410267130502007472371943482721608420923953402568044537468500613025279745041638922832859445868689444725173148908308406411852400831358483460274370984414074698056456347638558140366712012154962672481085620133511090454761995379441559242322862702240313398582900219085675179204790358781096013123696730857051279197948403064753618692798049962402766014939542329450829693815630372004591958893464577802958541138814754094816439284998884603643427177455207953126403961533176580865850030540737586896305560282728792145033539860444670868245691521340885564512168220155866314500976357107847145773756280663869620575728698895373542571231909364297924673759626498013663134200189398228567010184540786391454970411541962116713092567533697022979217260354821084108451347034858482877563611198759394724634667558978331176924460838944394520486026904093213020189128775794166207208231774323266184152655414732005722308851173849318684120203773035893222639513612880371567806900296627793822989096208804273559931546276974473044448576872735208665271352164840222933672758878507070329121261072255759939999471344749577051197064532303128628976385605056532261430404376392732015976778619729115802582708156148605833670687309661758543286778598151922690348040461554161436910439658108329309734733441852311234196564306582528291658113734383084851860986284364964156960099098358076682586050935110415069510763530486255151161388083406238718482715032825665823129300545496136389374298331884886856913672830886860000213017428385092237697331210260429786370269832148411101322098182625310231761910834330658473162088228548788275082539773469919647174870994232022581800539055916018118900314777586142092414771613115900309887073846535831453325895910619093462304081157846681249201690148196890359791000099624556169752349779438627883686836239736870073627800364860229602612617728861847037988740431737689513028283782136748418351277664624760600785490458343456519340833615283519512026427607032888522694371225859054629251125036284112787105883258402315402633345442560091488559347108070671217421812504852752850209587838856870780924682019692477556194917525505421882259493972478762491980810513820969091473615101860585157664197674011564539074554720710831335663368707658200783267961950601872547720361024666087564401374507114577486144535597853427480369950458655152125539263297476755265032388623111468475720830553200211123910503753347082294911294663594221454084076664338242160226320124866895180608371169707145929445337706176933399742045275685650488425627043139223055198858201108104205361481400670628866613488018202614647038869565108171158840664395752540562135274135761508921284725639772561074052606337182465071124370142017463485262569112585496828058567787435725756073409360945893800485670321378966265247974668299207375101805858242579952348259486286489425572231580641106305851491796081560106714680238875567747682413124052717473477797255415617522518927129346872743900457281843057377340347358391054884941324094902712916007793049546508020983608126611138368381769318827023515764396049104957315980386207230617238235373543744987835502000593619603703797041762881429083131582550401357105900578435218636844947476082368894749445142733797485421373383715476234983169329713962767451865500505284600084298223021894734714181614785543560306678016909622613303707425205535852039924846098856694345029213387756796766421980910244234020210467422781640509000014628022891370313418726525423884963271386400753436250848846009391143100451783105859912631279830808442478012077657865564633488260092428714053168898229162361353037484106219108943545916691904958909159064832266456589434008484666062909103459626162367891816763346104255710685658784570330006465590532304260800657613924875965384507620224089208706576948474995322255084844903359924653371147949289680751440835625201213512694795798489575734428004690028072818416535568187105169362870064290276099749631989838165875078730351638280078969273721975988177357236748673830663467105574900595766800120361326913919738603128891448601365311111466599904200492666385886253709837700733690715330808194453553906166702602195912077190014983207656334671430384242051598368864633097384689226224028162798409013493000077934293402073101223337105055453859419054528055320810543708487958296242178669224258572588572899546272792225359157028501611718542779542211008917636809962837672491508861899795270716609258026243506543402576292299301763936420151256845479523092885145871802345856197609231899906679942387130960876475723576325007700428284759922087384028764636326364805828054141747756330260542969567910093274334969648892480959525594186622797995995494567276152325685180864592393641667750501815554935449036032783686423834556621543784399212528779586043198573334177526016922918482495432644263768589158790297162503814790846291681948329271482727883190007432716311240375860080643589936487306075863760618778138107110909011501763256991207087034940228218504356903463953867118146779814785468064219020181149796009549720098769541470832238090755621236340881128764362536428710044625583437102111367483196999444081721717301851512744967180978584208339867875651791845792807109396689966208306391976426589289620996203644790650507413696479616982954404174663742958272381530049451227890749381536490507438478509480182501215771906312882472175769434266882731208792947174979619873926015267973064149523323960681365938024159008620032574486477198285939547392987207711690676233072198821877969890534381594495451340973811812421518819242456861652209440728103036039940080433225999529180712164184472766332481246470170507006343029317480431917607532564114245935167579922366008036122975242526793722440206963136810177356937227109577019129633258876203561743737045716114168247748427659779756182468276371477697420318018851556053290339117066640688100300339263549212628253681581937107632713543922894831628762759435678415104141979517013953075483758545732387400116521426478999792871669506556999912234737427638721504821920552628761304022455937854656440497760204438539333410269161147758864510332535340096900356640169285682062562130925217269140849116482957127085469398193299616310544199534012162809690056732672421432782186035300566899343046716695636925499545436753312574546202059313931139129835870428085880280774660187761300973963059521014256609867228475389408977831192552807903186517429595285248170319225600059891997401404933742493130787709741295200922123753910364638523581821851454253879193522490162130324523165837298760232682067064708398320978233491887395531715851201347829253439871211593733849136888342535962160720164730039720463040070701409175381578183547716596366657685609451564015691662714107175585305898278185740310896603014864032209217341425933198398534110996820277255543799031853791488424988461914786299481754000611704309769543873513937752248558032098791240428192854226759037235243110086529079416342669111489557024661712549965615968824670335072759583533987883890269017003624700505430119541145936957451880246462107443101513194542973987129725901671723147155801347614142509843748748937310557923331221807523609512901953701257543301777149056223961673511811112696965886541504553301105941668648144265628177130865279044130704998268677435797414760110776877552254207985511506904409580554935578101538680781376241010423670075947421897406961928982284275537437840618071964574121366217355255163971204604704218929933917459814628796301641364171422048014843778811802763373961842645198272671089681419190818218906374447109947777105257506709901357511528129210487499034008978169474338113647421773632716205540371812698045469607172031343152080365937691701309838400707447030566543096699144927326639774896483146792024956409590210865480290089400882682697772192164122302915953044242922454779165343181521543577860979762594948644323114719821695068432963226096103195171464211620177682353303599483574939561638646309870013495741506664739094385558954689869610451447101734853736489036035306943700626077125975195490380737819672736548489753176357776383479288654737976283243402352205883280967546885699542409722139681162223626329756297036347656249320035253369433662136386110955419890063352046204746040852641604040776793260560026428004192350731896948339126731151706910059715229626692159915454281154630914158606491911804657381569306764914586434944203671515439806106017402263647469208070722442060765005215862686791726226091613014281428030737488708191699591517093076376904162888711376932223582036467671869047552489118540031082872144721969491815955075687124863363215270744246490927942193552359611937672087357254961617826590977934843143674888205419625296267554734186786001050679311714180933506486681988799083608722359846768972507502810004051835786080150470067396846352280553600656634272688899838524075191563490914380905381347523716926261789477143245183779594031618259838378757776875010921070053672277433056828315433742502032684952628741323489512990072090003912746474681272218437918454590820484548718869881820897941759407051332503901980809693546585676294720746181176084385111314214584721417464284904062386003434590009384243523102434225852035522887881454627380860643655555527236468637568567944609497488473453041166797195027579515149047222717121409551080850354325187245292331650467918216678721089261218894534831315590580822052100239880260187282562346529938023984241942332911464020390638298142862876907732288532228775607149589690786409772937292931666578164991950310538417733438541063975047734337586557965602321838933630666648046530568198299232148528971417154947176192533530473814954414315791813513334349621944741299600059763978180506134931747249982769554341703221529464758820066363493218369309902507962432585049934600441769252884717980704873130662002428617801193344216927622494238771688814162749723412682705604306960479463267326302312003059278184090968608529003957303040104535904840130717811105367637879978252917216065511062455856248116532730603731690553856697040968262830118705770063433147868065043058922691982842415409499712968647837281604431876717460306033797898591465573779097312253336755844905440265858246976008778397026613288225981485460819023224626609057462855896020674085152370612326319225449192551752884787930139905660258153566772931948437587283716149622650070321151688797391848783068537200469758482690525734313164847165209663162683381530622408077011554162939112320838489179469936847609336429597951297861710722975546753150482701780851490893605532660077510453317877034279351185033238455838661685626019762223093778963649348063335535372267680366531408559664621673430545931020569871980076947200312724805115620398089483075777624998844389400743794474367378199628478361009520232063729924444374821419976330817138830836907250219996794595252636736244390736212165862090301528886770368739758842709190357454140680437097946778493650366740806010370163867001954831621093401055849684779612334956129669987112616317503358141346790849974344058534321023997137186860915549810126573614902994085627867385231067092873675821258667915198039181506858375843474360106965566882823296894615504597601883075030891107694884256648173056474491758387000763026954297393781167188596826685320434679387244906701875519330207061698620922071399412081134143638933555942195199902726406425693189204120070800600162808986125707412665528696321456326633272232108692434905101269655744805453857307214437625882714481546526071629764077477205887862204723679933887753461744116464873959730056130714958612669063284131381032043144701854288367802102334174011612553867013193744458417967880197947728726135540396120273926473615363538079200328053171463605785475924639330704685183153756087336114959779373130995015512435387827767597066201043462474025966652773914298375960890908365707717300161859224978371718402306297404012633688986701201217404474560309694529173020648241430792032901684036195693593604300798550229340949497195840111530481543397983223152521941293988481044724033750308230781966474098619931307431696065150460548419230184354128644410290703751356011283471633760211424943202058729696976398289736680758197900026400025465109014541464911174313162626987358344742916410127775628039657520718208893227066353322634788484503446636711827771366005329967135321943511142721136307818401452429659144895749724074678094635132228970730696158600108310520233909190107690126273678370304804331518917868697096697643243079912074625210295064240762248855235347482827030009205024769143691233463065193449879008318684745324374321096477449545451880997201837980789230026924126463345789425291598071900749225987836027305583798155689756520952334900992749533077420232708024302074668153007568837106335090488227605264500392699126628566242076690779939905837003786894264852621703973502363555106150327647428662127382955072574990031412151121793686049985760706097773763738301739915340674963310381069056977785617599478527934459792273138939217725699153817226543783437381339871873098623446573637218809274160231306100541802929935916972499637772040016061559493486422676575116672771552856261564566489706896288773855316202900897918395314440651429351321465855576554487645275934141595904374416453441359961383620950865141095091707920027845322687143172896696996590211146078903935832884168481927990214049711342431444221865311853033341704202316590133048485702783945751504980450165873818248938226244590969772129504726855534491150881594594855054499766369974506893986049974068935636763567279028571191082775403065913317719634710711272694423901112605018417929865771579043238081531235997731083501763551019180517008589545994454238851896131002907341316667594238805405762589811575302681737144060133016987412795694484998782286328696136416536838866655993992066616889427703193975255486144074545512148563288405232555224632867470455599101016018752245442524805162088679911744882343989377644127534766275516606176547847934310189631234543236494339873703728777012924435425452199758202020429466815290032220093357395983023424957223655089192556748294676158244676250079135354787598564688014349258435447695550225535215276237163539283117547301699941916636149185311006857820149997918866464083194289098654292631600594121662223671829530176151001011807318534154125691695121688114574607131358704144596085853152816535492449208529569559026291565040108979197632879594914126457633729457644048746065114268901623065008609586526839604207409117688891691088049801445019128507229463033770766461905719550991947800007407258995821383130451029275291099005913753378927001055360609361178008743919105708017914011633384909795186779092956683225799915342663711575793130906660503891215079631324028520967416270198991070985900575451675527020955005775724275053483982763372963485884755028869475328231063311421284002970333456044106350832671724174662434682357442744545323203251113833402742354094401456583559290271622619286699591994705827413811571659312154210721389870702558952511919028422199600071322805649998419015618531968468752399587285974744828339584912916785273048261789080862800977048642536439732662913980555131549749559695649386773016692574618521486434524448323648778045483803757274006879093138034801120231251825069400944531424612691026994065267878284663460322772887583468952110274496616751071232487984544156769440047457422107662352245049727061149937528654644822697397854274281413736251621037702254238381644484853082278912027695007135137679886332655445078973070382799462850908403049856644234920280501204668829299686019381776411182302752773588087148521438106776917379733064607782455358362712797024886607158924339320929101061388827332128233744812955180966481279484757216852281675826428287071647027232170992956636221531674134532752288588542975849499989524732677919968364946321282418956549272515900354552896978883834683401110399777233786592509491906025991341961189873922592411176177326558322882867916964272583409966376794281705573961608533823452974324465952780185625301579520929320550842705064197659012783640072494815002470744397298257131776917912247642063717511912245548485378206404883140454993161950766877974748205322961355885941092734001151620235240206804097768185905331373304367434794505825908376785687179700816387227094042594200224724755286906138928810181245239784541831247643233192931182513996454910980833102467806045225177014774533825501463269454423792095542107421629231527330791017759992183754124321002439614007331924298710073955965449555769661006730246568372222250772017664197088641261441866423315394213414235712961815155258709755542351222152821546325540604999844077370773019602841231880219280884782992174412432860215644750679823533409515014192865417901986246562263983328323623105742512391076633229988331274340502068915449334202146213147467019936856505945828056934441620919713836601838205379275194967466915446575734666157321862907878065992222732637914465379348478223962261911408519980798015871922934183466204568618128974116544025485598614636890031510172896189946157486590304681020928919977972453993291915919912537750527273946963414997970943642223546789162870729292622140001021186714822854212616610141630478273744343704201203803986357178331253672124563106628484234623725310747745939681113962611773392729228206263931227072736238846645869763618919041786017890530574250288307501888962873278945780343454593591374335213638518430670397140888461874624185160407647232158184737159475557333080050195417975573450998544782225653022031390675110759023065736708890068095848389319095635856539613733498158008504806960978240906805259948371021955808380164857655264057694315565079698187557750291660793698523691722587156892512570775813736986820534225200602245983374371515881767535915946918015979435361915416952241288609594786015467528928295577899581368267529659671326417563012059942264824393977239887259228582131010663646412819483463425398607632916342319399048690217836667050755696677882864991081883721087467463895201252044695923973976006434292688099458362680192821040321248787789209676489501048030303941984784097438365273174127365925403277450744294568980051773114915407679122726092160964671445795295339894050522570474913509172058059630111568009926336689343225587143250640617723405933244151124245384685950269285869521146544863458028943944679800589389906811912487841824294260750261162233310475571745403464982674531135655645853894419639191838568724423455671357478357110964850539848269756024138972642138735318788444261015852667630451558487005645739942282387124682367659737229724162763383072404496983153660476407476741591091371632336563988390069672174818773725480542820319334159513787546340731377065654222093617087988910356896734409378302879323187538929710330873716996163006525005258584519896555177428964525935109081699498050072543290129731953689327266720438984429581598082448722374501615187532337762613366180204859423831757012070196171615480527053050472089061019970204696679558839439274663215961312441049453431874038895936348525858476804886235833136692068828971158345546331012961524672169335048664186263436247612713026620916377017201729690951307690592800891833327626913793157447648008861879301994326882943604589862633343907492449746529268809456189211429898828614846751567442398316557577525503774338900239831013288974579970011741617036747820382377175727474431596123913066478603981206726921038911902091955674871081216751924250357360343843003609122478811780413081870631866447096488100974740053227209241381498116523295799454364816925838988516357765520569915759991920847259541532980337021180835496281778086412145492660070046605081774831739777009529641701079833177864338058800633283342011954207651904995197573477543268940594486870640463404376140004955248733158605484256740361753102803356099622381235759014890212330153312157574151981137136665251556930294961243971844039669040155374936070675008907116295119602769369828063621660560028584917919894818129874929847435998700669479063099869588464456537001345083220811760344001352391738532540775443393585847526340214969799239254804251950703499877765768825319237874390373780800657643213836730873650430961556027018716358021697276559003571201375129670644997007325245507948119802534850960154252393800065510833746220772160073468066020936812146352463037745468467035181199647596676899889463619210899480933556352604442567739245606561473718441366846128244879536698565839290845291116437367464463828985453486416346694641441688284246779009523775070687177048731760402700196470969084784901938412958553296013126938615766160563205536815888902287671040815972405332572316398746333666444248315072217001395417407973354513713106329286404948572435739260124890227585488753588514497648163197384873756573974510299591721587101143863449857614598365493097207681259746221305376554264623117843258610114918939973265699197728190233716471026043833706887932203001590581945659143992773516732574945919748651392353939207528701774428438285725163055995645430698026575943250244603362415033069437393684931605228728844307634812738586374244582659931340670124148055419136946562365302911468518110844472604197663511743089672870951102059437537027746780738170330941571457199380763939563987456770611088305829394532622573168238119770096714876059988129318525778494784538184416721402389767501377660840982641602920310471814153034394459891385650082700910989344820149527995436439215422510989271808811718206008497980589638462319546050312845948819761424497791062677484449912195817902131842320053443219122957040752100136594532895392336411934752196899181583333897260056907917716531075840053348176892330401082535088989150469288104777249670581278811753408800588923251385805181933804264572597924368514954224455292155722660184496655694562373020342108781795248192553813255738739386042534890461300568295479516252728595841731397218390874993557978936865479432601464408486506582447432608288967663506782768075288212014844909460949477340481443099268264767423791815066302008857628121761693487801997676450884891878066446972833856965031492693789017790658876690058729254161318704105821875682441823365246971162385891727091495152536527461263396904632562138392300496068103438341291837384249585278690846627763655596380438511553179327736441701861147866301674905860154479588563331456723847562791763706041706949325306674498664429513282535876177680770017089162511349989101898882198071026233816288632217740621287135612730043051273997558178347277878566079195379663609264013633090659658480345939651001217913612566665726191821830873907891711643909862060029201949129159036905827118722801298266609232159773084228750993158552068276604586538060579268091302519572754346756717097905658542341672633166309112867859278080917447818226533439019137341955935981144809925885487660958231791044952345562615177868250528674013329107579323033395076227969630676000566855993217635665521995690898753693938050916227103956529830008288814980836553550509924631134103623470754116377933740104175905841407968496197324960894422636567530583948893619355650221889282813811300624589662215940649464989880685842410344222309347464450986660620790950659775940874690952371137615049167400523981892391009102535041794591296781581970899573703669407134296964673237194216942877488556590361821400252413797580461836005915312759338539428983812051735723368519801623680843797325583760787012376860906655535044969815562962498707675691272135635668958171191412235064645230875572189367526856253560171281638277081750035025222399772072139800083684441961156865556425013813740178759822970972607711816126021825852095614755364298979558721567951006176159466020135471299316481152207989558913583348002899914186618660986054510491049912019798588324119159076300880728510930001891170183871583422860047148406376620335428169960478625406808460300814720823162982819085995975745350317944879010211869650030493904232215435424637916829467640568967258949899330004499391818648778850736922376404947835982593208806903982351825251312569664808983722419774247875326385497737265410247820587101360038204129787551323729107831874027438910925066186654294949269962182602328137537939026184174913390245081733571903089623441161313146575441865056428984530760505884250411021713155310943527423928277228424284570432499571860968189182710479033188211232317454534689620962215262351738646894969566027143077253755298709554292872258946856466191920959067398776900371410242964884311160661253729952507297165149949741933044156564220413586785343663480151673054454846717599724558201012793595727341703433326864431974877897645338353131425142323775251117908127107290243420347853526438785534527385753755298680980025329979195946562681437528794756231559572139013341656680314268158734024845186955778496888180710917821774381977647923606226979310322027434467728938892986835240422024638080915677787411987803689079447044973572179927217197144619334151154755193226736042159552680819746694766665262503658329450922562797720311944731462805156212557181124477410852919095027622740026350013191440184333506076915336778547208162025352262392517573788506735191209331939302489922567326596809050105766791945127430306336527941155991758344774594596659966636432386732646094464843843160457201539543758723223084177446782100092250848525226114071654831405330812999835649494235053692805238391200726352438202665667911135703668707086582519984069207883065130322986511654183203402469650877665112830570730869507407289356646733833742605680037211748808372854940462932843618165660490227751147792934814056142440304852455656705439687953605364235607198833819626195661922789024668930750456402468100417708591800374188820563930025828963631169897851509585229281493570954167024183702257162503303940120981728184339091199328605299999079885334858615287195084787412496758929242759473048673365347862407012702820163398968332661319718792520262138455314291346780294722149050409241122299678360035715792721937460822451021475551892196413591380602799393003720572870711889510543640940950712082644967084376863758194689818562005259401463653019276577379493497113847595615893570714194722696731257932432472023473124956317638600814397184553294387741219133127735979194194314728127329505106015393472358323638934720069464462967196966798754599599717605914762593621927743890828180773784992562998479251988039888191348104243323656357899638600396455869961553354195404219502054926421298976515977293320792508554051506053222962870107589171095551509561623866913151721948578605703640518434101849173323461247923565496018196568321232627339901688809558786550758706006792652858321232777578436678936370332442779918254215682693837076496966084161645583370555836550027685591511934204018356696597049438723846960501202061244186696214324621268877503581776773538122269853348486171636911406659032573418825917913987176790328155709819221138959942297669603994974228248215642715693331236500764299607083716386471567600562842417125354890136430586874456625780304715927413612835945100752951678031067620538954145062551494540032366204943769316133590797367907052282102965864288462727490403585516027384121177750386630795583120413186782597453809087358454813568551058253728258045924748397097291866436510777517396209907888284145452880700227176250408726668279953278743017360191148776177015607665133368966627510591204486027996873719169625013731259113148084078423278204610312434644550220715410285786999011226567980393259706936140938513916579131031474078785148944180950527123000039627284279472141249184935245548978995793241501517160106918545988840433206311829429216232669388281596940989289057367730627985135588413682411319296804295214334677317193831586050201887260068110519073342046887836484437625018050482330332605424430308046302425280617483207411600893350595881201555764623437445994151492112749271041316330869534882498581205561210588102249340904303251212784295102667685966780393516915032973698804123193419443851905014427439056872840433919146734225970842016566089815253992948025869540450254265167821072618053832404845640953421561448931175375780478082015473560154676002069647734374538273252807217153925613682664434503746366752404421794963317713058228183789493773236605254624282505822907116374888811962259483047143727054753714938271409568291813945975081691096500609335253388040680862498358448263872741937040301065228870153262457043526098002326870647051450705721325059761871651373539980505471878355477604045978387859885111949366304804896232635537922326776052519880486169659258538474548024138284956619680221838446639811561781948285994582409145858285652977444915711885001634556846533571150301008527843546841345761527642465611857336848516741809485501534069224021345029003864412458324150527513765383569548255116740746845435620327376226525794891862495570167216555260060809423210909337195353743065996120522726877794612319414132567002902148055343317375452325950211400168470019552923865942199489669651705821884695107841342207447105528111570927455627203321528379113607750982345995803710919206472807326690179670463476965885321796451856966247990372511308135907910865008628802085241334994693649736941561510500164797505344625210140897557299968473263241221863797671209708237932989876631102528543239475236101534484726280310879789459145053441987221207975759847755867236556020630209613364459088829602226680147041909468022497347429123428730379132689734098637891212602641643499353807645884320911389473848387323525257673858167237887741951051107756299580540144890937967150547172541022601924552161834545508464871187462891230517080040329015505727950097180537460462142079103452924806380364220261828888291533203879085511374284288370124795798250152819266757128512835895610884524840787690409454675299360885228226590881604366672505930215931477128414627830164882944220329260155338862853792473527886100043430776518642480479758890113057992065103236018325947340710689920086503749936213426791764398952980438048030070919122575356779920626393284351268118070456093774450569795733339881504973580677550659230300187179755426925829268663038645850079106975432730864026341969125095222877284734795183412752064730151932661264467596537438752845429139835930509239951971176770653722957096611905332881388387780525205558771171195511995817094011197005429101025559023382615756063590162127583476311547442464846460921115919086884241690828397058980044458428901208406861870918928671791314623897557303250793588821234280402065781328296357857414992318410466273216978583480129329176486094273472281009205122891530102643976051536980170611478305624051455022533633756296243884741263403801667803030147722993398052601278961935088251144364453061522965296735149970099808853029274665466882911189650474729453845587010863800539897433760866531478710974031444907192261883631089009830032513261305574549768927443730534636624702717978964163638623730495882361216378006797401411200674688960240423385388563869431833333685626851561966136115541108049036886013967835313528671488809401067912961034801948167309287930999761154325926378806698304290275686907199208443290943893591116755265686437717675683493109707426740376352544533279908465014236476452842339762990963247675048871633842424292817475410638580338596379312081071688594375842250086725614134433800891826008137436928345701708820604191067756913704087589213256449040782058961969732280452640238586170100693563275927030621707547325908149603075662336387801319400222989232646285052849023369068701745227780572700088711742472544128121892541881553073513232589235548058599271650384122439765116185743725040844291202378959997612632157309157198510488798329227400285575358171934815996288162325510747734697484881542009481201693573944102259407623309519390566555125590407545695205785881257343646789657590610995389046984087974326807440612058102099971251589839548783147843235751384911497996954845169701789395268178942961681387444605235698185134347774666468278279714692159055830345047175931104682436735248846420373260009157426598139285739603068111768177030472661668250537577440609653135855053024237899881953062028875980337693214486872251287571923350492772257570868908638867039918796461426165450441409259130759755517654906998123342014262585486368266176112048624882280646041696023115375077902767321493035940583120738188525529987784807997415320691993572317354540379984116655180291698666838514368254381639050668072881084472960170231560541718916628055601946353602796041672943205185712026331911209391796508889125190284293262485193603878681030938557405951060745562886550677074188794382262555449872455852292636412012095530389776726288824520832311078278954466675931432030129201234360072126370883649095040978496736915446554990049468179815082631431345452867189681020506090610781717280304991384887272633427800048367176990422827538920167011894395970596082818547820812017607930682835854122686178079166768054783342476850000195980779749279867102574946770027893035840573412667853657875264064829441942341795897219502136120915060576584689211720498139479562609499277517765777978502702777944128002490720491902174044201379484999447564224334421638501995067497518929267783357805439251688778885993949581550777258266562294676644103174401617090979415763790424816785151655918446622836552969621168266058671816653710275869903167177197491946489701636050488879820947178514821605286243842546682841955267050481726095744152253600430530699176875173564321086057918560337184604490585920118338174443509778344002746817449555166156091636620077806791003664663689450364421304585322892462785727618649105763493527014789481270535863170213724596956567980540974208077406431321770822703207129365451119454324087245290029513960435156599513851419229073796594892937285510811764739739854139694350110484795368709132290096389760934192233352737936572821974956565996104372016547273223779516469607846326167580530022250467381993351182339061829762461507952973952502960416616274385812236031368558645933298451663892442078710079304887615745875363667067737579104623213248132393399976937270190127108080784064891011293363323890054795648341057835829787916755353199335424576507273118614263947417910548429181672862241479443073081478793909441923703725527530582026697869280014451253743105338615253322277057527059130743070054190279616601727724758408990032442734585920368825546655279264174863158071937502737029297596696047818740360718171498078546819510167982396373232418908736324854421135998200224978488876651336542883374076799782948199481571561602142571152846051951072572651999039088842666577979554137123325589457885517232825748724177969272068125499829213642307194846917130750223385997481370065172470301500270213351036350174149992954540321480664354208038808378009907931650721314185536953987381704339230989121879785875854902203871296439956122066685334549350804626595583179335102623970801097022075419519403007792148399802349501912299430679386298466033957188939622815500203169543050783084221017744068986536051923444480076974823331455257381843861957488489655674990566106581313705875140567305229520651328583243574810572097982458603529530354631536046576385171231393992028776057007923609578235131038490096391060215769786498544742211415817092905886066996946766358897220093952542479063040067698337567798804790469685705177741556003349002645702320177031586999465587478966168015113154207453179998527190329949806426543714873882020215288022098291477108955805786230001483976294537202773706923600054218382359358435660519233327092035505508182223272913549333230077852766774525395385867147110210952297545570887492154199449658491156572280787509290189842681526445268545022377396274885157393934155804598359155812105988729327372634969686505051892902157761205982502813883901685118926561087238988301749543059810394411262297273516983228758339798217835853933452658624346540561539231996439976549439254130141621115774557602366707826141213013782531324281586658080361943210389416820418483601357653069786670643422976823647472544874669308449875192502183955417551727040682425980273170104359185355025432058978631224169998257326547656404040954055385402654275786037740916980278653607292399163342351580028182407028164422844187186261707097282183905816443397551686751491555707058050335158063356416491992522193547474159816006461438055685860811491511100707163801430414148489406828939795432209535194831401369484127366743021822618299839762519619311229663631396229816737811427298299790648682598899581390689014630314417533205782937448592684805893902959271348560517486982838781350855497193925097987848729597088973995735588367510250016537753599710188122768384418798166767915500082820412341544126114450015534075495401215934906598708821928147453832636721659278741985714323440395383779504033144695022003148591318197887391706994079596958381030450731220753168753807418767530319288494921687764601114588201557981969947167546786745407536639405054823942293693606210997758991081021820814960724584814644622891053304922302588769711141842515085336988693497839258953221157560085314058843407676688606195653392040648861168018761297564220480290993136535164807078388374067997479213998452410379985299822977203912344989467895902995086380686006689066363037677527595687380556966301927800517641427730370546564147327243229067091761309944609980016596134623412666560730131500670316226396553142489061406677987664294061721971470212378946332430247561658575331805771440172511769119702180896668092954054039048304269589676418872899130391347371298399731310157822009251614689132635946980063537875141251930405520669530463313229324193684122095450074187357216523560020166674149307699168911484138276536651388031424258689368652561178766654438677207251073098587580477580898045717007736787179817249130510236068204127748439127513336675584093963356449541327985094996915728720858067211812445615812888563535308514940940804813852547701807063041515453868992647806137410875377449137543053024623256778263419409942398645835446776728372910593009794500421437509216355587499908797788832694815543853094352295818966202639422335756951818777469432508843265509790718683530583245929672757727550277088386123557561683877690724155987375377549676777027865108843523039486113858809720718238760339962908031199683704214955123398666163881859921331300160401836999289535181828773709390512608998295349062175803312177259138184593090553202902116598783786391437559141819881362228432072167430561484125078621575290122832372476019839000961006421267247573890297682392275740091501261472538762725277792899326025081805008950682755787219895468467774252233276331272957133413687314897437959612488786567340672887771450287413518302319212763012963148757713461470176709433322774589595120825195702758037428431871275907634488107465127305558981626933551894260551542598228133609628507879238853267296443940682449676104937764257428553329669640510819635128587535185944084412568773534508233565389578240085674178191227249624974239671131197989232355134316922476848530211628891459598246744820717129739447883326031121593199505881406135659714031294223315167486587183119185850631772592301561576608303789305483490640252082549109883222597488352685869800825385538502281123755043131919281398632328027779992603136821327163049117181086446867779720054535151647313002911747831934118619440949150080529685822188453742245740058472241626170793511354856293152218476379796696192892487630058371162271768345672418549871661082278665797748966318715097383036099557099718431625035332232283787996842966754000023725066918955187144012962768784446577456465303014511127874463022384085930059898556939380886377527037149979206230776483907387160176434960408904786725911381517639518327364876497045176707343803339843456602271204877522139514812057509555659945132776727460293548045473661122689021539667318503329584008859626467915130146668979970350786980878600990026919024032404902369001161792100448876838859776769236633386418080020165572398361937651196613150394286927329404916510624845558779642777865129131380522803617515274493412544004734074239891838420562129234321577547704453274789778899100061943033227169634678471587715528908267302646167791014925589835389604794357582070232533459363868264113885958836190939372764119884832817784367605100280870539991749439027287392431098794827490735302516392032760518011709119298092919479028835707793885534815673485272435623012161397842322847440808940756556535768237173521487802422062009505731573480290164867233845444120611292034344540649493494734982787565007934539005579631065557188946228258343764327644770363743806900912808310635957133879987349114054575546653397982334826476952655287606630125563625311582345150500704076889200227558531365148946515667049198780661902070560449831732719995431259814742612439266873404075528182049200362242020942196005544283920108879239793959466009683859912022594009191261782568914097525421743748772253895977023247637978028339857607883386558801819990261212512869855184497566357578308245838137999461305241619539513661160544682207045608505652285639930363288101113911601135474518697523737109972202819874580988591182974437545902424770990936011561049035718853475673788993371381812207415940721811821545415752726797613264393142806947941442551261152697748909948745097034158586337072683941590536479130495210971187205598685235317533639931720781004665160846153702434100355937127723920595507882221686556184688819374306185497659051418968838368400956555673328820306714386934723848375780111760010011986505774925501072846042300895137793523013518354164810691384154982790248751485692318477094358556342766570834453912477862832678037377401376484019099638083230486700358874309052840563366379116422208579405640826296437874031121806679537875550106546800801580063118764900139545979133604100490045600124117953313418675484015833605821101014898626889146615758112051528941080986861329521263632381846506126117632021738753805670228468252326465024297500753540888367698932116054779903788826485962976864132147785387241550644632848230199487831092157524605298789876987995305321734647523112665935197687885353284774779628748921876591604415743521114386152422692251632537479956209620655466905535712423772169707633850630897693332785050505249385188159846086062705300471707229045300042603469889924207758088165651625905799956622513908359047093184803146450062416080255164607170251272877298559140804904657687688886699961466932305517982316863291222041035605037821138786369656715093031574761518632666808054158270319047727709623396046405750819018405757512997917812231906710752680991953320756755140558958124891318303859830103573512745608287251306746495166278388679900556976410143496668790177052721577736575319268066717997191381777164973783533198618628794263490416551518977205708720147391789248102583851457050128735047061911810808258318864872257734589910326458080007515178404302548750310688953039176222918762396193888261733044010090508032504903918824037312180434971741310459580038575916159794876951672566028384582327397584134278375105114263113381403101418478147591346099721909444437587896560197793287560948267562307952708661046643874391901493632308874673936813541423393329110023303020316594619619832668879161192112523220286649531313334069464206042766022271967436054679124946503716237921017769011772523888773457510009056261174794635472592065093382015622852003942789837104011624664408250470738878840833473208054342717496123289731742529179537977223444806982111154526119828159275545776869285250200899837028001720014320705713790465515880200863566708369929221677556014695680854655969644961668119506421247402524679224880929220013792130826323599700498437594062839598314486643214524349493526230375423775157281210065683712399507121282576648664189295670679331100578771111963522780791339754575828406157323172420140388263798467707805158382211481122009728129638941298249168277673883986272156419700941233005691691869470038950700756959944571498345476678616950393195007138162669757845180705628845516614308452449230189538964961589524044745938594218214729388082156108615368060924911905734428123876185835224259516343245618259969438413370669167342816852271400130001178896433701673024095431284121989309585817143731246429343392316189723432310617881546554321604793482935540380512772102122734741930690940185349557607950708355714018776879415308912760147309588105466384549975009565213603677302804746134688173791007702301604283243233759374097222841802930797841709603687085983028229187360140251668278115083468047396777648715123499252402627520327230184455559668362953634186669757103023329752129768461740101143732153292455416469334309403882481843944609125808901711323030877950448874945925731977734850886067340338070071205431770543134605463688956815101005546197091749646731118791034875928188192529845370094619023740077485234780048959234934784417500889448934222938178495789453856103616877453372995151842036343129286625822400219843907935377257769679935539365753703436367335798538547616128878584173656378778946048603367818547473702335712422972831445205491297699546582204961953727299381140284054461020504547077904696490755500582297361742758061868082221091089790832669559509694470589992299881706712129164774473525078300763976985366267118063473831715806289590872822234101356206595200261363744633753140347059827093539894789018277984724647368874897817849174710087531205637469434321157587234998800866764064964429627164217305961959748019481677594392216010418413013935975412166518518558722148018145106650489673240068901854331476641716523360704981140819535098596005243651638328918626823009490445868681177043655273703261608587300179151223934531335676316349440706650886009546545403532420555693341455330198864386907633699406648103251202073617758054329218024365757492832622374394412575800109963920544307168260341032969228352552864141681123143557411051373397611030113048184161703893751921885339983100535225887588887963038759964104474390993402845912921703433303584868491166621881799909712009369768762855532090714486380205753830128422610609899320548398885811720332638214872172728587494004708362679076583472061401221282757882138051844194155882210149186404530756461319179226666636632747207851386102835303895007174644353431073417356811613986415838283886493365745270581453986713772350451556539720586084149628091842635768966973013778909470339062175071878668369894154551698708514590586882169280708009095040226554009599989882954840512149949294934106637433930052703610950953880705363461115155598229289103211972625778497486251800280442005760957800597060178996606391225174540265344381198240405322172056518901096404416996676215814477450804146121814489248013908929767495191837335857971245691129326843349375198133545810102945663555848131887423834023764721762272281137148377732900510156296176668124093586594752905077374062347283063471447556569649462959932360590382953607575548576020774128659579963650709103392333248793569772623128056971648842929236023461560005393816504356220150379021775326208804512397194779040168350181458399062070045081664574590211166248950748799867832417196446959318578465135928517919226017595268116364304685388195946582719756076655686796889926628403315477791580789186800807683008701471336151669872861056410288547509873140852514365868954421963870216325653720799625213221920793707012544853152272555703184292518062887257084560598613237336872605250651721435981353268195321561129648981910919428308546169004103470554442741843554931480190152890555864681727212575842162363147922169135282753187349979967623987804940635471999330273726599896097050814496813705157062827404237719933732216008706859919698119609178448726869457459088705738144189354199394188102375563502883971814530131783082358193854981027758745515857665979214643692073165143603123159253421335604822507132487785466868459155958629210284660605782244899546823591819642912318944210067892479215932097924941695813634736013484038092585757604774573836401237120824275934236039421921763435203789811821934566858077538026915508061622416190370914435839443200184548528483760955349018776377819874091236742973540651281177192927087967010610743047264615016613052132065274367028432946000634351907957312234713170585654863997192502212975922966426408452910579983896648057186007982480147565223786042486024109365290454257352810116223940244061880996546499442013188183465994866085272271390885393013133345380246668483851385445330988879654732014669352656433055083297087600719725763283272254199915647776930796036477075675718325992981622677279347072763082023979566853487198218769094223934087615214162124784860913959545219744060349346401867485986333669548549519127315943708140851581659439251207070738482376253860512262595184540325991416885585080835991253094322571118718597012292393999306268747967522905096720920284253754617024869704835553553813457138045893705650813639959505950467379333010696451430335758338565868034325408409324973377626798516783860896321915224077187252172413980941340520091934204189103902020715851654987704713304635038761907903329365011071341444743798145482032795339456810325330827458222340675174728086492438339742179194621545956618972312165365155025709337037896372335673639933982147891902297420728305556332599658248338960962373824557671182071546074858889672656814441286550204655850066301130472156399190274264992422504213858639200420378765542472934428174773909101651219953503363733877003849772920370281405275813341444905008416486032669984950624239456016327193505382153763395200254673455455093271089362669440392355965364756448393932135994900536029718424289765885034007101174560698598201774365035272034019244187912419697760515319565402471198097898219536648234172273264398796445573415737971442063774186349886694911872681206191871058433262638405252482484962170764472520788117655643093187225055577193950387763396112827849840716463455888246521802565130043879253827565050654923268358196893338188982163659887503475036608281173919249766885131693140256964557830436513454934729096164670217005310690293521780577989792733588631162488914131634067540438282022297169267071433964462547494772907401856603858561374967042061196650495948788607710846524440440424429264791886250572103243579506577841238636504956215058007088178010882556992318749957931024934298458917981150839864332643954004889796631700060865273556294199050840228399806988602659398830457400018710841295175850715891773981750127070861916411901961315510922150541463912563077034998355264972979181644843357130839192806474793318399938605261652405659069087388637456440231098883857837452533390688192647026253854822664336743786826707777547535961201754535201282275015782015125566177057406866330378114210937435373194506484777518731273145414307963822155473025554188673255340003583262158155585396272397748404792150888878834343660865523452347106033801246406974941752925929551781026698990341843596463007948133641922845320085131588326875839363795361806814667964988427437633586951608775831115358003213559101004056625536587531177333732394066745057339100896864560243103206273022937152790504453284511145793064393772117964034532637767858369083243143005436899083888446819138482198285748811194889162005601509384408666691038529561024039648254335732263903226006840840358679152809046663648584791291707757344872314259873106669726669914548711006465124638446205304455374588462886974618016193703141342075967701941692511656655154322199867481440480535521964909930002954244037756547204026839536115725048569664428591275463212718474460153907363910614402667929734918471744027961757347774154102829904523772227489734083649928037637525646890936581646795382792796631141159166482207962489086704177295043618258327833902317216020834075448584232399193411524186061850937270011609403199878603706324969035082160287901278561948330809969423367804434515910011750659441477819681736240810213728531805036993727511837773655444428009349416359572197389644858856833407390371519062834171148694406625415027385315254655567330634032788284441851655079278243543148456567269756326671227463263101847320117372461257823327505777893268109161796140582050718308851067337235255537179240907472126333540249427193088704948137792093891798740450693083918634942584552915055736636389337243096945041168896965600937582035103523942461787422250024497467532892993112243184491833614562318721313209531621198525279387921388302954277994853126584749111708673585573984570722264042019196893638257896954140098514186368096752223404612776783351346433036924268838575994129004257737770350741815677777196768324405204497407960495028548009402629156872413413157969910239433183880389382934044998365503620956975747670607994387734638096817150827186652356792153905760770892534812459662987179212493489346359527237417666635476098658583467162079108898795229815325270334499421137480918576947895822445709009514783551337625094231772817661456784697963682117752678602532400123724166422540560056277110421225578441535917652408881454639601347550870049581449478944036747602823641128327102641001172229134195643989115993199029022672642232890137202511672656526601485138161599353581200568789550195076953208655467625206802812984938975713294445640841761438737931516751927648430824412428750031085363357505065207921558309623365199590233799700629346281618780450858102005639397120172014047324596615681073743703309125164770501073999533762428444078572242847125000431317192589165520634085825024473796323979741120693083409532191874278494241451790151222452166981279627545987543118774114457638293509399834238297945727083336750795848355051985903551097178103168943455625844331430625684486149290272301664793082072594196563967044597053006576394990500745898241499566855644315405944758860074375467012990262073598123328578235887907421878786176856008416885909126832476450922285383337373407081974270988377572300099335414838294288620480268648596337345429458546198258280578275420256168660195424767823055975647756616292557233151346895641376204107267783149766416446978621438298147991528475412586112018278446557979411237460011301323807668576542901328798597113430572094772562216330706425316211425659435816889310944408926206293103865166007210968175348145405247211767063275075231250571495560829043351114292223672065521973126789761319773870471867086862403466057231582832996553294570189567988954588452972127422436047372222836646824123049412682216290403963806481886223252145751732860202375837637117354587202344901256832631738165341155750679608175701340375276432377943148400468808889186751648032595061745569345892819704077941172036077522287996207656883997893447511799491921762153250725249363843863851285415398971772979154319486095562069207780526659242376951444251694691664121046495192862725117903758126464200772382813962363004183677143091568363645241667103138527902442356587718883002845873373656799407725121551846117641321010995943393733273279315346579698771211042607422264694705496015751731853536193852266406800369666264749064654832621549687565061344251587139525044212161693890496027807606457678076737331570423102902346715013567379884623623594635994289909949665139621748417359120154458999481765029249645247045382914734529284912719642402430356226281709243024786488660408729809226650349543721572452524122321062983987982182000939787312495580486660432381387638528164138046490339327152203159583509533459632104450686405344836805056993959436259244312274133162129004223920478145496184534146567534417320035049546957947087805097736854500207145280846279619136304765266122750890836806097900784210532862261730001996758371681082326615472473093299732657468879505514678191061598390254084056013244439965786167982509019552222883582707526732565247408725795618809940510929937306620531748989318835516513280790249037964998787707514971132389815300380696821463004125100533899357168381891759803764838096218244048618854907022183282609828326900415605329644876031011887078611283033896658738641150425589113502534753195062046921004323863733258518395348737182982862800912632109950103015677334417635445894931910159707368061791398884813078991596349223374544579880376710468704395962905490421303646525833373254280636533707016439387326997571873979398560812156341866197306689257260325364861794575314205062186260156247475254208573188584144568654796456042450883109156746102212730209519102503136921834179804107030684955661986888843795702777915071184333315696526151272408289293141236906976252429707555375385552508438046767453161722239223484768925366221133344037110856503819162205600303276581304147519069598584936576274307538400665737805635687855378339830852999114385560750633694446313500844643727571457653510405599929825510897204231535925025621477071713066654348174315688294225346818606536869041344723146368996275186550281631459095853322009746348854500828532568641486321215639584450079270805105393949765884148363025640885501882231866516478542970845033066130698552402450604472755762278669423236200229515160511663406846494429794212069163662997221759892361908680090752592697563004588683500770360929955225455049707673309346692793281116800762605994394516364565991109621189978654030672855735568258436506851600064041379820940345500126269526458730637409784798795449703708424518813856572540975759166698158052871158204849354986643053747456073034920972729793610016478394594267396069670496719351338394335580879648235018712651198097290496850573755437421008689156860866172720525506688675439281467704944344819637843624803185709660888289774005321460229589643952066474949189556484836021149356083350163363653266958455911992347661169178735607567233977955719699802159156703585760315308710338792257675009364819409297721130477971806575877984891987345500576987534588271993854222718316833230248960604871307107522988898038257321634736998063398684614447016719597751992197302216692839371268524842029084578620176022307828667114929756029115726139552889491690739844239108053426028730331855334314424231180962477812686056970911312374953068959585057245106034876480649143760799296259460181568469972129811232712308189417857775434959098881335319586298312888077204208014557346389658932456202260210625878153901930081239967297710086850321102962522570114496891713287102940022501376993764097135659208861950724865254699611109456146628906672908818952798237102379747107969372803719437609637179278829416559498818047316749864272132756661218694595879485161292282336292094648169908118238083666688741046497994070567436796387705611636697618506807325380227281471836829746543241163639200450212005666966980760024665780257044554434646622005625222831992718165597460376478890172075023122377550863123715987571487305296079473152849120144919587985512154767352482482956204925425672489081408684037748368126660336815902569311740869363514044450061283746085174549428805951203431495091956004094436795630000229622071920909668176738101425547837422418415042623175720465039654665203825028394297096920646431699934165522043729782661398886438877485094794738605710186018416228467302202153034062507510057647362166725627031154243316263511732110445505597737440339131461144146819322732107211323676169973376728642777613921013256843766474249179717214594201267241955240356496588893582826074918315544436367402190100915768097531421895877125505633108882403022438930573986176880063968042243848733127514405766048932987631856224550288303642226108300850511549630422740596403666848668520768987747029095381164946602407018554423503055081296576193603469535144972399458044262899520490858968454403641405896362422573851425735891471877350648374490795356190761346127678093692004868958701746264879316634090066276961126269829233248989575033352080795026641475985954897468675557533455894462849698922978381051253050512866310824874863438894417886908269115030907404520103403565851126724531040500938027842600957226843742071598726860650004850504029349879367033391267596896593466481002251880590212395402092551182726102560742339097302845282631867208778085599423618063086685487187205407423920949281154001204144498868407057969740574042620281869247047101003145208370981396989261700933334099934132086995053999020075139035375383416893601259125954690275717785105353357026665932190567771437089091323586908726425821733254680654955936788665616976903112570398556804608047900884220360984472165870573850420013064510289985516771468744831681127658756851435020181908770313139675221132112359335778789614246690896112916142860537786576806158747834821888012870014272391511748676602823847510940906848020369309269296904947258534351885436312099933486461805400023590033678001178962549414004236680620091345453734271906370200544464106237434594041664341424815251230432735877614289766596266825915551760925711522794931340238582046216576011446170766996287575601702443342456633124566235090852523776250632546788975193047763688700915115487018157327547979808268043885962925562361626047802253170023244477841201012479051557428557151531586295316876397344244762103064488266806427524679035564719150695539622620487760553541185398839447381691745397374360007570828282459593468438693751958621400668396291978255395235774934337995349106356331430767372731591491958489275176463046434934278506366884470370902230980915659227293771072375561328929567789259779475853938480511107390435290124708881829108199278964414499093125590071728796564989673283908232409042273317506338757148093340502516739319646516058518314129811931396034101585602066021709879836959629304822337402083239647098874460403365243978361805395048445460567542978569590169119282537918660602523848799102747136716646304148535067545424009789868535631967754007003117666121472560786015713372093431765730239399720726417221142835145951869614482631094102465392354323921853072411777386007358060294009166152136866590536842496600090996798899672833398343342005348405051104463143496026766986044268369911903162765715082862598987478976012027074902600650282243276499454311442925345289482409045420556086624650568693231179673481308812806745333285294943267985137969695047643068027389780732324324495066660273556664881740358469562353966775607815847217342905880671857917843623849140982292477620633594311676625787425650521268617867160756971967430061432906748740344584273948592983167727103499705209073481451310470198345507670923625112632374801704311334137212951030306438424693339630574126643239896688153933905273051916003565069165946821574038987669153583425111319896149220152205281308910242391326931059604810673847188402516542583841328743508102381751792529857796961061771786449744801031082594981382660254687358352509767346065047071086122131498724767701373958850803062701219232384975804161919915003589291112064256616589571718117737836112277940669017270428504325721541287210524768119386988569752268100855218005384607381671528614118191703530797057936941695928600021764710544755911102417811514476708522591701502100395909842970824065377192930967158219893844080619905024273387641679387852708811437001149562038335100134224859599856481085030197898725395849301092400578581193491493182662108791905416396903057419230554882910985196629787818422526086795254060221766963991437595981565707364159036374878180911921836651893166309539546038308626509962200966181263037332090166436901079429493326953925390072147332946136967212079119049232361664010295704241572832735301595725779503412499561555532999832165466979697832451020251022925471361222163767384225069208864875195265378960208556045633593024014162147947793328931636658515002281748650319599569235401079327798184207876855801747415449054394802926831045940182201241327730597462545252448799641019124830207832878159608215095287895245027753925092125784368730923607746909216942464588437168046450061361952899634044940900922321783688947714381222889710826653867465602574205886763718654188636059414224765191907484204782303497263237725154256106230053294299680257192760135841897120369802310185024696514537103998501516870213926620227960274249153079653868230360678319560308673286553889845611581057238991224257112365635963002343999001884395253089791578177749261088466068498605574884909973173038218644771804993895608184346419165755665913621341862356160447583493386058151337579418771000094398778501828543610498060902197734430491890992580587215711640504227300922323031774806330278163575408035186428840060379372791007906386093707512972766224650673828316505411843101207248394022640903966218318116777508083350967399732265175392325265792659593187878697819620963627335015409737788232733738667553410014531521406822649622912915652618314106946718116086516119878021037968429001578233316608758358849887698709394871841858275347163050022727694407795876366081438075912354226685312944258727069201616996554229784169573819358877220365233768544170019819615951543947362409553995759341369718294352975173767439932979551357654447077015624054865938896816186247116471817720781954216443884182421157269307218367293927875134644591524630136081635012232056327825632126744359122881227883602038924815495127075262616373144723027205374252787403061759405394524898794856823895384325900138772918583709033617777363938139594530067210369005001337509925708797649809226385481710299144962205411419063962916846457707374828862148092981446624028173965729722797655199369140594886584869579168641195937491163421666152467764050637144277943462517104528048507834271422249719197318385791165125063961822261341069401679116045662227992556120460482653422310040518311750392563747235873061423454250284083963204942613218759277023098374821424699571892259925165746156803944522030026679461134207860920806545231538210370566347623996339593969679931854834952383959167102418104731039971092488226914690093396399593805744290477813090818228735153702754954281952931047536818405954903722140895714367517836931109571523457492175865282458222796990834538329600814193655819194025456238709956489987092336557984419802169963622744647517633155733446708120560072742945509260003968047167530090175070916809818714955255301272348241408369582498058594628394354754549445202357464536032370132987248397739397216617176408836484097291942148479257358831904599244134074703620144040482711611899195564387535034054813990625598563590079738646808668909542088927009076887329159350746303474465307179758166275584984288541302073721216104242881861702678792636871891049129992941135968459010261638436517812397973104252483444060689612970483610023794574108115143149447238846576496313950129072820114917309188738393141225421276027603674435081534084640843048572444146304959645313727036427810771355774922329802019950555144034397470716345101600433479629786354642204324102457422571966915114763760207743362167621240052628421055524235144972479586890418770546223047755694211930813868467320429182538061711729570736339801914195951817469908661341039151642605710723182295642952976461549812101236525511395307992276920044746607521910013623232894419169885154725151690421073930753842460967783155186746246420475770254186259260583788814037789697075912152677032311108480178291784152449878371926128554803012946232229669506573920513703719729133133512547174094596544448914479712913077358324248515447807436200373358408006442066119409644683190318779095461336431038084010998665737667253066073217096888911029752205446437870388126951581026836666379312934485743422710535795995050449835420751149453001295151629621003776712372507045561536629248371989264721154351024371814382039490722823967681635153142242283826720983665917214744474939687903247888008720456183027985873154185280156347938867735929027233844105989925017732772910300913475840808503149526042202192156048406877943001303772130015731218042125510952766852636770387803392456214320413718194321345085878173249496712466514100864444456648703845384344007296648591846728513089260575832842729394303895918680560291675809210388486652835344713214697167967320353768854245179194860393964041648842286615033158648532437784904589526922057989728356606417577163185142970810900591656699477362340261078079299087076368273783615662203139603562414946936136614756750608336141989489419833813978313936143873018162613903280776232883660923770490668473040578878814940861243072192150664295670848083656202559879201771576355200224516492212962057277212764546822959099634317061627818717679425680483713012690057047925876887510930759864696260458447393678116806222598739235185024532063939416726242925695503239143091858341893941664351867597502460355172369241841614060780297070060586444019716642926863906699245762778667279358353964427942151017719779410866557610207635239817340521018756555570473774156329749146718156796267888241181238904525546722333867377434436544003234388125305002160213955811964520989648306264407969682212377579815038352126162201609865499266877249931364772896097879325118356322332434325736541148816004441277283714792274851284989820170304440843404989396477587815962451910240736753795505100988494382833067344741910831071710775239325108267715907698806599566652777055260120037193758157137177453638665051246204184367638192717051750182463157960835365388976893072829342912326316786809424098078464101478814794058479796957412266156887015217908390723645743241898264587538775522511678488353647047186426003658554430363861864978651421300368337574425538390620667565940677237358883006001585351032738991939602310753744654337358894638088443082134326110857577673341996299096097265244331821690619562096279244521006177212328121140391777752807961616855326821226702353150611862283129840788846063691940294680731206678780951995312922085852179810844476404927244820420594772626330675959458720708041307658191178046797771144045243226183339698236803773564516703062081415961941292558501275804110940915756369370331957081074767543660016607023368796476344969714713215262657366675692809809298566053534922723400352990842311471132866874889916429016062764921413732706157579567588899704565322293981124298988606329124783581863248558508303224908162489084812880551061543604790955212750980723481055567787454499733604836355139311700651371302028342979553413957023043555477877320418857240169033956017094035107233154469603342469593037578319839177699712869205437795914144929755575025767375426255979757254584292756502334831346690953543105219115295456479912461566166829772514401263258526277301815904069722994480475647581433568729193430187629229816176595837862737440643837357729492764587651464418624052543479149364958960206901086763410694666804058709069039581602030915599000308609645445752658015831127842971544277572336621168040385403541779219698883577214092694665289306958102322324171767013092028103669921651110275418241001315058004828231080179431162377426792256909231482995264673689128145752283657043872122403024903588309987770687396657961433796973412828695335344330837871591988421373752281712154489534096820542533448452010188409680704994337515835090513043797347201079855367131567886978430106821420464077998455645745933794896965535274457567242260971642465054854010083949150594832863935418682952637783739480995121473018228445906433202343630448128214158341998678044132183679642347429093709174692480505725402723469476819974439241298933051194190484756446613425410054008241706698678310345342428840044542212330895778336158968488666456906038746234885640869445510887259439849518609897964703206778256762590190196851571791916555143304691032183457516166882217855359942339270288241984909124765282612213769060178085850134832807999331399427611264017162334163444878145505232976419630259672370558830132860640013668137474592518274992856353468190683252107686093107041297926876240199080657109229632381422001367853821337505605270240478621519510121433840243402797943207490336324729678308407548028518614503258750184752589779594833139123602457813963032028094008157555893700070869036698905655605226341669742387422293227959668967306123635160092068139890960089570347342705961511068658540711389469482121903571565458523330367109862360448556486705469540574993639167471019426330057334083628905046676828279690416640322823477287364611415644188806930241109620178567834062027606307438220626886302450882021950126045438550827028094751790869493190031083643398295556778373460957546784338587960060774767319900138676825421625870602763579029717559440589958886521745478131540767739246098193149942953067750275134033852624632234943081704693862799505943087331789959603318805976557868260709786326971341968949776010771753532077356491860062046505285813839976279341174187516988611526831492689113067739028776157394052286989003708636689798824060955365612560793747359342222837065566649270042872180118982179732772001294270621108805623823844630489521286057592858691424651207836651734967190065594291516687595411376564582555004400688780044569535765778764897301261566057240955216836239463210975817289231700650247458458096204204007766456132141649008347896902818167133989676098442993271811025109702315171887654390478776222342306242924277746712718415911347597837048130514460679412112716900404192150505355078367668151922400156342924395394683405001835578684687588507980604452761595160423604564668668050754874149571944467443378287301388900914447875910400575015028070256820302827144128124042429547170996647223632420185409351322457629796206964959474354355209486032134287435598790580699381873196126915971476734614104120738215749062207617846314947172762609204583969266530017420558445164341162074379601273813350581763903993635758065795541154996730476395152023601241577499255279270932536040329862010841303948110215492414436106092711471795757819951129112334576276830744686358392324626805345466900871638550968332965390689819971605461805930907274230100468944371442042165862600334231831007558412454510422233686943506846657925724343968348854215464882129342224679338282604662890034423852543077687996836809575046620324710974826844223631436751416518571020845547887008170792563492389502837783075782107910549087621578301848750657783648038229869226380967460014707159819509345757735183526193225322044571209980935053520897780721455086828801795007678998916212294766633994822760343337480765005333870487917026300568214161067008745598837035439133662896632584542295761478539216278667915677889833964629016724043516672968786900364996842036386773068090460659454742313209536368184825279015729507949626996606550882554195110250139307190457852378134053644738359751414104573043398301659257244574825051856918021236655549111956173178673820634555429754157649893296917730310165669125306448613568092982470570513778401001126321100688536304259101636242848711370244669589830479105585636782696153168851857518345901089444821110662565887967381890085243039721846453486636716768376396829965775414430661455934404755280733029455388134179914423209434581310006600551554092158511429414753887036669928765993919527361717612316026589565680341250468171110852421285697220582788723167289507353837548704489022022685578942691904117589130227589264608292753591580750229998716084501116797174961576242894827045668069399247563536169504601355600286278209394771052155777278577010608285951395516047850692121477851759659715032991421353246183196243488837272247813355322020143625367069972667506704826109526531670587723551014785495957825613438021228631353736184318145525516243325465273159441086367088622086421010387243584792662506577003373202950483655886784675991474477803918497211752966698197381059293335985654531076504874098669359781215028225575419408824375278380449482161429159852449796019061591925552641878886369307415948438647598061350952247583549002470443602268196483061965255169627334525255698989539003202667549905818888065596862570901045586646705909981178192612202854033813750964857133647969374683662240685161671486400371672853158746077560793873475786065317964264828077283399185365261180264401016737664892407146700921880026799457895204709491394582484024869488867557248328269231454669425432576632756658982296875556817680663593991447698461568682174629976994589273102086622071284887960276979140947968708812622507002531931036723780454738538731690705118261067934629481738491963090805133541440832959283988492000314805002426852420422001748773246431353356570041040283634013937601597884966149150613908428863379172289065878808400695232289687129973095840268910697026369155263481982793062162520629138736434774447889074691164100511460657503727849036670221055554051826893811214997453749625103650497974850486523454777122678812856937751960173626167671111148897817364434489529961563876187615876989124218154111730093332116265789450600820955621493154800607826046508280780815232117109822491297119702393729979014288232339473462242520529388638051187954611763087888374754444757206462363618689779087566092681661621071856894618947590616207706008228953259375697633035030214600639650491182598649276951726031908587499312033738651163296887188800741120750883074225161658401672953644551075171714176569229793509230735469358031189870075848428656588639918907914135863692122411523976580991692229256123383427145901577784008262594933100718272982518518890492687536754154048028632049800800005008835658701870560676414289606740248703254383202072647086755071358384864642184655690348955259966207324752292906439018929889931634180555732037183669835155291839791238210660023961201002126633156871098695444047937570423279755152802419106549684885577885765762809009455497960259062333194090966000503262773260344450362403555941728349633364981571707681164660450219936988641424156355632481713648984266949978119974995639136911188665427876986696409706175696062216552939814379351514015407183731086691957695068083269432200250256771087529022896757415802064204240917947259761877860313218919005082224038483857735423266517812783048179210771466925420200391216030485275376863612338047280447282553199790490163864412969733575061767845842865944044382959474680862444113906001056645885538185099814954303958950432351001808235799065068311095014308093900263638185741503586421709605890047519714159657560385301242916649425793303509495972136463809321937311963671690438398254998536099313262314964226627454834805213937836054379491498366041630855644935102226133311833344696127045695198889575384577992678024448136600473008596773269524235981219155681470714124304407941244729289803039831123197904900345022143727505188300689536538727525250015486791925536135382231339851588367275172767142056892030651379238261773721847717932354324911002692172993515257723829661881394609543931946450073371151435445017959099250572165338315411039887815580472194810493906816274001051326440234350933692746011380156266647615985513174216276950220814830614469600552208888056773406772772844955256940211355310964215538205752581929712641380747508569346462105965481111024578710657425109945138263606643233598345075025097089981623140836151761236985388688147193558006390184153433491513309890712412794321534915949636381516866647459326081804231492225888983736401574247981142957226567279686854331931228105898212950332400125288453896270913627698734297944411029238411172614878399664591006029080541151433259438370518094915102090384506406001725769056157907695186496354312138954275484388720450836396432179634703487039560691658552249523839296076177172704034804763343552740465160852032636325022344545377096546166994634688341751692668200323924908292806467692692609868606005161457619185126726473726829678478534916453806804280270759025410665702102689563716077353825823827245974021467043140099476956502025860184283142776978894684704310295550982902178343176872163669776090792364322613667262900218227447969126096052634170669298077691570133477696497893905501009627361217244122355840357211835384826970196948101760328586920647316173260004612807762256739682577615780344635685643607334311190754696604257054417246878080189287288210819420981671936631542067098951260474512880366372735613218689148607986621923673810230725222282111221592105038392648927906822569343911818019134315837105599921855554334821207231606805853061318781449567801654380462392275220283021093291183555580664998438435707520892373103744122293318179377095202380910557274921960447570536716766988697023192424688903802981702724889266409641612205257976220042781165293626107633494570549398016343130337278735692187914878357750082969864723335205229156665096390875369342462081374487201783988487789429127762131479165162475826518716388535120612016738747117701117216763845037554293186752749821242798417569711364187158052470553681746885311576978006021703001082156861343763831662774591664751817729698352502687014738895798860457168750277867350585129210220564371356855196156815591048394728552718244799524960778700569837286606727243636117795331486387144653376811727705153872048424034580007468956079020580136440993668599193811218892209671020338563457637705542447295124106210492232786153239116848347075235006573460303690173209999306128589340551919498291011091704650892611983524474716941546195346970020755538384066205456934744771317422529109093155301305029401757203601679112256036947771036435811318781062053148274317464509125885033119389894307427227676706393922780692634643014031832215580462394501092937105844989756215423215660960921932414595156711277578580626114230691790464415506148221164950417755706712224970153255569336483472015712048095599235548484322047070288013221848573123698789596674279651097572542785558019544295035440480779295768546852475251785906109619463235162667105939376889452221512279441741025037491008839265789946190177876068599385521598024379653617641108144091704572517305719902359200214794011419369293681373705050738503157972281423977685546670002004227857508844992695616482510836999062957895818885279658867152557238893155763170415861790610729677230576423023524362828255466684452493674417779232458002697705044073454388195217643301711166315171633490503683093577718086537836303735243398025888810101587316775747869985802774110339239433826889196348872541843855302020175223169322674278796156377134747623412501941615982807384631147278157381692541599221212714029577949146284826655293135333170202096445452200008755760747773046203086160852439543558800602709422009151842244258644347589611896493112872358958781572270544752807822610266345465941720303127825276096257450580845348393449059624667451756887175766065822881528222678436656907877773930968294435400042592516937398722544198709453068986283074473653234385582987607193524958188385415343926960190344367783648822701819579161170158656863634534690119892758446954835857186852166335482345458614016078046688389858873221801341254551150328310229167611141533614274772536544098010600505511076506559910100946219044420071499965624610401483552175429959885973981759022888797783263416235624016290415988520015343836656340118619225696656394011486810333550031970457041815341629844640953073939119465186283335428029404945335357416127841092412337482088260225239611360326798953299422908199405595730427832276267631212920526678564922404488388295770162093487591756149530988232182351451452214836542638452960345790867099857469441422968805200284890409627259693321871284411340812374268728768395023012780996374698493671671261946704963337970915295769567138663296926991616028293934162380771177278082227147779673414536771476805632800207373661371076534281476941408122006998677465836566652833077948586022453588121853357697505287202813603845651255011250410821187936855730373320450420978687251033824105333731769318567884276377051347705037080122100707175908825209529540968930290842103079198992910771459287104294324269368774756640836357374392637610664166030875499157066612331111995567697886498161540710470712504680466858417461911402243327869429611544954839627900983110089546610214990943996159177194368751993218631376379974560016546367970861798137546876621642509812078289110525730655553151934038114923786547710035965302423928170212190671440883734853813489080059631592798751194371208370975897142593378619975444153721625827344797714332367462168090783050597322082397661733243922343636212361114733109611926341947317284137104904437740209249585172346843286564673520940127972705022411781525563583060172800364740358209707603285405615354056841715692666335131732847443782908920259535642390582589496521594620326831208805860491763975494582297894617984860266381234930826972587541325143179020661415749600778083660493323171646637665532767148155715239188461850353002259578301948427273002812050878482594600562475367817499152359677015207347273599589693581031067783703064419459087143054144002873666643988204592234744385930240526814106585561816707271793153948439631678178875672163282131760131780403073728952299800023480816091461673911562571151025729992867397283658683035138565845831593893124902000361140107962361327077790655416907542924774665557421621317411781942072183371678840599864651514341814782633958446106842095615071223568368949143639836518601374609196266309191651018649888710691590797506341697880314113978455537028492271836576058006943263481953507852882040658441114127070409801679371397921705879604377451401433086314474676906997409622185845915459843797956487909826049900318448096875219215391491921587301524701871451135468226892014177270059927825838010452785010316238064792255653857951072965336370960221001742988771576841693808392830281817860925256536743885003154512876955532389529002111287118030728297215856106968861894175072628345208442606137036953063114460125563662253161408340195495983450504871339885647764416731437533020414020950578643712257325586938913499103119839887492596624663487671009414754728940672503431792028359357844210420090851342398790253706055825577824175451495015880944034502543142945947346728167719189154978408177150493464410640280380945982778512628218954315890046005182506866312891092614664288048651462917357711481551516069137446875919900677355207150530173730415912332798498666180901924289291076726001593992566311436219611578128055899741859948072589612240955219639944277492124185284207108558671700136450601215686447663829487952330844895792929648559242529042497785894881274489016084313440288580136180358515586870102525695970361928215600849562969244914167684878589209631153059512425299227334530532849979721745183415215784790619945880467482269944121681642654821505303997948279981882339963878624503786962937183581468123521886737686571671821140313228902440358391201366782764424931374941993452749370255693581028714156305859500170418510927159401181714772508563820221445032267647682658581946425436843950242538964558534901797300525687992962425471048259901924641193830492620268896848806218857560504109195681319137119810933666983295588936743166516675158665971790238481313010309050300180154530335195357508417791611468219509145389590450645705553785717886786687571840670571123645150741664630964248206020196260956805058569486783863133755848915275208224868177447326436433880783078222763517055624352850312236919788630412446143143816667401893619556901261239688243552981660639271357456089148293589272190198349953574400854736673330786504779315206679396945375859729578498761621985339149914417382026294885292444751559899004402856586393628603271036684770475065072117524639496199962555472483440673317940236508426283948834963418511866180178604165183342244470316770348683737289721960191996582574232413497118448195086774364403672181345571611658171009205459165752901089071430478844545326210432697963287537329229158217257191707825693176704367470892103528815089515644355889197721015550656696035581696467998725163453186660307265673399613621286825469797327385046393707588415750236058509342325254622440696808277134357380445794953321997696163113343855578956376243213553389005215229544787118470253358871301850088865317284673771452564314965090584874168043155202771618746729168834507547585905450056905183186308411932287267780443218623208387081765159318171481705262763147817951477643090655227283053549794130693730810071194991565697726275997033750791043966223633338348376466337845812747810298550488914280350386468270938937382459451291187317923785268397039131356878459490745902845220143271699870698880241923564215259530483584961362686719815127164468561402792098326625693422693759438864952705798165400549469687027148910315391074819825372224325637327875559626910060784598904349515462623734216623047520448670986494170778551940782161770709957145329349914615264972660636980968317996331244627331649698773401239996509342796406406524224211822298997762437690476571888921362985516548634570806656924371493698862294252305887353467499477578910537015077844919440883795579157872611911883092878721474381694169423415383722565648727233498170747198141892642988225020787248802875900342552289956829340674729100453701701834335122800056203024510761833366154555094754275847066146174838348263618795638201032735275016568337666851111535362095408306023185188963699180966789585641501862810323428658892450508818399879172300171437574975866291972280347800903391160414983835175401908504981529196378756084149705443528380280413759430728954109830891833951281097856281520893246603401345715534173654809938121357011160369018313294281604732544199776559632760658652045785863623583020109182786156404393471086286811706405363349464843307325478008638783197154462746236969693201037888528115596011349317227730250390005536813400059250708297724577694658048494297142928170611968298292174731332399722605339364004530572387070833279965988403168640605831796213085524666625980619313313495587974907583279369270586575465561832074173326444964147787489966836946664367579193961973140997308135229735774165031380945550046955970646958474104705730668864255351513193888536242134773734501405424980805634273846908997702076163181895302973342027383388695941052749737823826702191636554567246986792231550095794080216715949234647472613739713421569564125162776949862141723116486354076944083991097343598883169778010640921556948536487138677521570630819599339172358208181681677086950924632378307664141754584073751914633871766971042223215634265168416752610672492761565189860360531198681691723085379421328206726388042175521127289685198882110280232650142853989025179281729391822698964308184029306477331646099736220583685603790304354137363626102121314101169112065378089071789938736509212629175171537686767877734428020140265441435057993969057483029013065674047993884343168424260639830607566135367304172401775701359638859288906705924737570373152796444333978240834183324912233559358329683331552973990702463995232570675705405422879898559413145476124530295378311185838458612451611459849870063190588178854385262099088081998483584136263301412026795194846516805078194542963319164516110057592068111508768290619481286647257245997835128315385282432979470669372631326772226845489641239784561219968205698421854390992419920816721685114914158795253449842729980098480307926889641344477212776796859721332028166687584521010225189992403909928209426777756535383325200959253734546466387660369702311902178983300308679288088712712729273328767454926136570585181061825032037258044733798637371945327882035735748623942291788951982873525420450735907023318251756755720348333111275956036382685295962199008227105410005658206700895083500500650920006792727239715430205170819282917636033312016981086179047368924141980954218079879558675637443764892809685383846319652220906365944240183151840651079904605625738152742872903651322603878241554948292245266548109119835603736368850756098801251343816538871586573034984162967549254734673139815510430234100239431379161592774988863462347443317756549784319509459676158409791484882402143509513304128045054904727676191852051516214002324909212320595852181788540415886120768226606807759143412842120005728057827887643062193633741622015251636246383153177936002151084330215722186157828032205347085043628436865088474689052731960071963831314182004390348413068318162347669162763798738869349247953567647961605771593409383713412720260774682710482212419560013250706770164139590937418018812896472853156960456042352548889592143900283638051940510439487915351075687318544906454835873354533144252760945224143390378989012484736595967767849990794030674184501905392083671496212416727159958145379100844607976322623852923438696978897163836800060032072486832121653634635879534935213109788007742588149914620548432006749798027916895698141495511060686234106344265148741213991604347343178607251206006853103745907351595536056953913041697973379177185589055249206489572924268014292663230827927289570955375833915685998030270976692383880749957712522747016285220430187809050016549448358335206601252160612973787826025005547868936532497487645114650651648376109719549797730750145450171933819592229690767491424145887631895499941294872609643504116115444372434146465147121948926617510099977374606137341872571100284754206838101572154936783595191499676800411355168550864438509581528033224640860936755504664355015677635795460015428123149904698215187866313379604246116843109174009189604847901839287144152373454778247440236983828225683191438303533977296644977504472386252038691974493160584468939008636224296404613708438488904079733179510082737749722930528806002218038715358822677507604235615680778039854651971921357372192256223800943663381302361289045705732603232882680423750395575831373049800606883162099738530632268386354080545967525827232276462282820741245021213122592721974987702986661396695149569195319473121956642776038098984832353520920179331524918297784862238153341630685453658607019281701713118780438859749893682792421811185288416312772898862600909327593763078315351014862583196426835445620141108575725191936607099036816127694296215052365288034918760804403055028582884884211033735027805903849042694205870926232958386508414484230667975387488514283325125997999137633420317279529959101407215799358791840859713783003298176548146841691006360612264985087198214781397122223732581373381854726517681866460002249658979275463180333344061499608050926461669986006084611346677338560319400453984169122409178971109446565690120534528383288164173017498023221309731459876364756106561578079535681549793799047542374780873427125557013350880796489740406582872745819028322978097674277344124219041456832925458537733048171287620749517467039787674602124174515176215915445097968582396208776400675681799190015966227532316982561423958860653308641941074232843976764454811940478625804749001946945885817125659487102981201656694535251835146285164676967810557052065293369638168078344451225663696833379904172182339325480255125524292242719736321787818972880601499552267044508005989828233763486409102253636746244162171004880330749495206913121119930365408718694810282474505569700430814901931711483494256156269308207687068048308769159522786202000123904521714327473932849991985074677457021696175236417742058802241783035193006700569264575778948939035179215351388622625564064162911088350312231446284209306007739031548965023941214338898878109429984206887776803321496925450351781642579153481001586771026366030095000506589702840331606624120348810269647941033650113275465016237800253209473511974509471202425894735311427943262610655876472349562786447120449235972805182922167640094106237230840002030723591377070632608144222187319516614012193196057274717316166558003138168628358862600826333141558601778190945980156272406372488771782612009245556635100405658904704701562703263293083350171486754400693743130889785234066434124567739681440530954136736430605324423684907817290299514818715169508315189692927615674697001689945277870536075326993463961439453068298118346017527456367175840071277578342740036511383011659481457861568638198821118045701309625273743834569454649576138577439730341300882666446571850762709837290014305396693720649702742236720216419875063360039907788510023642625373511204326770520428677519734212876050628964287748911009927444404003768220864492514010673398246849430637699675434895090016262538671585226371608852427140891637740062811002685912607318425226597899885578484806824770179052836195761879520760686933235831654353182707093525367250453465569483890041593904802152008562726486268715929349380271853350435042758237300329195037743771720412675764717720885783314214165495296054563070875524017797489097728695714810391884411704491552619678800536930053367894537838025504645249079104878661068286228926600377067179112573832720838327564208478015617477249193899452774285519313753272701263120263356691044423679314293246856333477701597153106023372902361859358141013333600282595165284267559524182554158559353043794906173752671188604086729307623753955822376797781213123441727009419918134807015251519990972978653194165972760986963967651851971965264606124909263352552481773667347018960749404370030779976015049417915817433439717062814868540265390238248113741671362949268833515961605939772844642597810045102707371034664588271216150418342145658796862604286493814408568237494972877972253053792541260699434697483092927611655787247803610223452506833026591238338225569300955626678920642321339892469720691435941849816625484297037389635926304085082483748423848920353355152659743006418565979577977461624589370187429385212631580934346644403806579509105869868718288756370640696533212585415875534513694419456251348677839230838827334943154534231863693507498275641315132786921460555224969541234394187168849532205554378916890681203578467657566052934420563638443014239887316123342359898813678890103424423526477970794158318859091083897209838646614311695390683672172210480735092436838347115709259280628556733680807886002658767315637912627774686906218597874180784412525042986799605639890477990898620850084364918198501023080908826608816087361153291391633205404743003459672869123465659656143664276200047768944501613059244099526085697911059409761477933783033877751085640049388695254747339667019525293739445457987673256401046072449450683154530744030437820527430805719191888487222309392181977434564155129561959605910401397179112672198818515540517908332432422603470504305115943214274363432921516393645301157070341362372659108595924954881978966903755298733474319384989854498722226157934383033515479712056810371035447922431861448921680967163301481305147115223158068059127342490205090193839139317789154756755999504498642804523896212535512746802208857983674126995485842358529293158229190059115966143796505666511357788212903432689115755084499765565974027277006200398801035039270490781645307609540156079503044791225205861476107991623390607853871604961307693778969282466393703406655854351604927574231755975742264399520588319556198703956191039510243196853730937544232089629223223023749626511034124376141920968806339712052042310641095872176842410266166357780201018439384907661324638743458317533858460392832095770901962575646230057911726568307708583421696522668210920018871568487514635138875161022773875586908050652256875027485341813530346120234496089829765042920252179188526508211291422312615312864543871365499427374721060198797239388805153779933799188226246621583286720744627501452526508365532333620105053143388369871795662497304297613293182997532410093203427007747759424168720055328913294189808802810151684371108260344700545945517038627097742532798457316364548477954290118465505528394042267229105564345499654658405497123846000693815544981481832223607666555609682373943481346448600953477931970816109418535675808465205268767526324439802354708266793360349950041175632913235767649423223005916561588685092597085004789716314688554698445659823216585886979186327810974229744854689139165669001877611449973404702938925642075751841510141282226838211794235019607205263343097196077676592388472905098772978194643774436516263617602053935814852287992825805731423945778397221068536265801051003545131810820822979604951614232752200398710742184532916085464089878704130424092449423715017138623211206975104378326565704426087789889378388211867786972303168664294322719169604741039373670544369330575098494130705724526500888875407429937260672449322509927481237631797493152870373966262505930425472991481740023431437050165595660151717159213316375713706715450230083934015400918590430160171498483441708369691108230040454875812710070331365602491347819965619382242845684861151805675164673141118271192295584205909841401965984261958170780861256707186331045530576751724993988545183126877729412128645921706689505991677055604784712220871657265035054590240120909221855116189433505540985415984400971071351814597006385293668780556601281471864144872837640140460578116276468119353469573133168311817078181638749517214514527694680534159617508964397182979672901758899678510743140445769594628985271145969479620893462548423045401667782606795967110762766165600439401313685198603327172459870395761100184909534630258414525532289367883104450231711297121094631419972093405248945183323579358176356177241406205018773121543537295819403138675884831958683545451997126627926445691946260968576579781641099200275721321063192256223873091673565446718485833456734201609542357320230161238755877440580153240543898385447386669889497244458480480447770251238149616329041469568199485281901191125804323177616563915643574097422326068506559218564314291423270384720189347524393341580827746950127701939656853797761603859286862656535477784424754754892638078106801547909929484527966191511240830904674645768784736065429153635860027770780806868925118277239581609589816271204906140782845326987236961448504347047289941975933868517982199765172187540749154617988382464954523818550027208909231943192522959488669876923954799120876084360589874836220733521442458900757166309282269367410234912173506596361412030499704133312544163028177527052829694400574567160449587333346987060315631008360610149610887017828694824025632999936420282734281345580791604508832143888690790661166195299125036297716955523115240656440364303580547422246814123067749761505893468893229790947423724158319961934065685251381678854852815473759196760089571243489947292633609578160604147032859603638003143094353607544049256517459379599534097389696455318109500995144061746160665397854289589934466894092573260266306917767926576361728018178678701523370188069292526910851987669630014341136115356956807123178665737827962582329015297163560920507688486111347264106966041161307727256087371522626887585036303272086159266036335632626003739227405391734205259067982340569161340589900124077567143903840130082007446696746294595884239435469811290028917442973585155550991150302955014612841994016412552147549877610570275036405229160721246987400210317163927861213834950944088301891302531506875887660271250455974706680466122633076128886821968093018949176001764953144278571076877812684126464913377690528910257192198956883511039365678608660989751858221059754111579372537827126424532768026708776654581299145204515889950078108136173111655743448431822893058417184055871332513407018666746793656411799490063379576815468642224295808080505137373861057857764959361261863326314596883506157886664327678627696044729874666604904407975980563665438294090802353423554561227870472086048882832898146158067328714872701017387872475311946579905404057659672509029001287782443859657220586815741094746861292746565477015429482342520970398313094600973221185604733645757964405384496309066889380201132092985861574153904215015755597642653811122420879899190263993184049557972003774036572190467907134229121746998380724629691910277747553015284025446531093907405200151861258753653200034447177157000826511686947292729392785615399652599212268495801511552780573016676523099841831552056509500714395177729676803810063363891396523408826996532769014129124763898578951366501572371847961743224085066446635269899160023341046287468767712450787328354144453503154297605169921862430220411709403466298248598997821073678821958050343948254331519736366431235651049190640204318566695315068488152995895101094013715515232233184771871687107306906169062261058253084240055414371770982191645692878574441735379094312168416662654408459178230584731049564125531696855506673667606262398280341796046809042598694260115332488794409594911663771979223730859511432698367561328371735425479503914908405671932398410798657997234133192845887516220016606533232340013598413929820979433317863631767529699013070687718201318327154290351614276093955218579688563749401094436092976728461284524945553564474656238735617216147600540894921283148128044462290099078580836283457601268219409238953324585911969796948436565425209432922574279807250614374158308343323035948651284501376934037088947966036353057624290319922377921530948922935281372795419795019463792801360796719823614840782795640129394212315906309085898935519853102255860960964738390558410379592523120931492048692437910014597840455503866282834012977878250666948053055291449569466011307170809297463874739261066616325158515602137723240825116667835244754623146076540904930960421455530159306466964434081974634557807099174657176072408060758222417315695955102099160311445345344239005512121158312616712209838178044505189231047225799639261238990878132160021085049684180563198226825921105394862343698785061591858127710928257027864428570748972597029992473738231393645804818347561044291546068813024235352728674404369189239583744941480998235403175622437957907065266210185081768199229362310125543843600747455706202102663040534923207431074895504349502825338387872201753472265261928511355112627175391371445482314127955485416766627249621799315755914543349733841255927626134133668307366097063126287515976406765837115035026854032875227451818555815236572593911303849753292799340072909246684878808780250409756236529112716392780493592677932911378360863976556230136647794829409828843724517418520545648208143066296319074722843512499563716957604984632543847981167387074197484185063705999669980032968802387849742997893225752231019391355965396291274039983511121706841955926694158282845539561617369898783413741717306315885258039400897504812129885021125713970826846469495742777675492174821024593629168689568305427473547085772396156838544265435391943574738588452567289292463687003647474928901714223243071111780495162541634189524419031622496612516572636950203397760376570510859666504276228985044380153797812800039629653905883267166788835045526210870436144576500792507405788222175385864869035329910654643000703226305360700137835688148732861738527037093668187648486354013412843203025510448137962037695016680796808256552163651415367878691782771325677726402978749888216506938621112397147513922905626358081259791296037326800770434033225868019702674789108449089275027846445164469062824976705060656628635361833526178520200728508467723816267526039606319564686123778585453353603016251195328279236662694647504225760504769186685724416448184318040843681292670730223553434682895183446337082007207346329866542387367217550140291908788085493389961341580975100018981990121861471605847458374420331819172948553279830711103687913652920635197544692142901056493023372708102597123270717722647686046536340839461917141396259761082984549481828415841594092305816562574498547745470711398208584417865752965398058819067094387067292831933512661199274143148147745567716069761975634613971347310392116413389244391486836142181842520914260167724787499959717390872755939801366517336431323948414787979209507247496306419775073717377346906472639749739662743681381008016191827397968368115747694652526040717745624475129999057372493561929163288371467038775142240907365507314434305770984040511159947226250110744306327927611085303175186744436684085701877107188730264311587406601801551280490093744025907324185106707896594221352540194515053170977813115832256465972532708562031283611764574044371282418437464433981140691042432567037418915979884472463842993894307409219688343030730986418087734092703774878127076093585554235664050543791481881155014902893853181192491459579088637713827148389701655422852315652287658234073414287103667821207965074195737335011863948958549108046911292983177344735008778780353127429811563268216817376653728655395566164131558459778863087441794544692020673963503396259798058308090017269077587606541617124867737984729251514206510097251494968581037647368733281941372337588827999997594895065966617119649516254794591937822675552692524980699616573311003814401058228163759743732910373320024433849369599788914662754859697194902751830951570203676832963325841539366239904618066040349695658844172635627796814145585874898986500184224570277689247320600069260274154116033682531434014546947264985589488343927239582876872332529413964127940263941407733875777364353961749972332110792749245227112712513075286657532134753844267911168687159709578306475810916754868453119141075711211430331583592561954060553178851186835795655208370768923311863977136045244630809921381109387220057371678188237159760418685858843820976219341385275744400707185676060541339265997933076902276673012172404652516028872593446433150999090280592336156381801774454269665405088846097279268204143138557903897799231893785807628125425905835252198704728012202816377153230699475776926577311576419182046236032889072481341984056787409416657872351833353491258470035175207300908822858590981422921050562023899632187802297090492751673749051156666486555448098041978695649605540388454637444299448523879476797330307944739681141419768714949434347997671066110990524810055329431941197862646727986965448651072294188907188740909512534433370059592664343699973099369848482644554895769816714423897386992600346426954760530591460184124724596188340218592848308134888010388711326821883168938253528222652942994928790194018739653282287834019019680159340811352928604416978846137387737231709041849081850905923633377973685637431680122460669687999641755678244809696926501194372645367083158982464605094416287512405781297642850153573118603851103698116739176884592686434787766385233236037035091661802525570372566242674534261816652684035360130535678112235406534135408369648190333060749932222908079446558391785456170469688761201366267599608302229775397879615511564521325612769006750967880599126633700760681486141628971195124927932146245566634981216408004756862301525312603305298560704371247727012741427605138902588757496999020608003273941469150908740938722421811365938121608598268095401451056983881734130604833410956949738377829185114438144379036164560356543504452323884127297178898450455194384501701759266253195931409637971600248962696913034918545558057567628750758793905960482171021594675001257885235945648467868069070690019663013586266904613145270878872119674151663351596988002938044128321349205826308010550213301616166650311128931905040240466881395894218138124988257475362879894432269523341676122259742607409546727767415087518107194113422474389478699617839709403708952764182642179080256177373363601222147258853638587969117357877723542141457977769974037160256407336158853283912802199891108312986822879132629989287840470559806141335008983602955186900255494283578517919735125896259037931277564593965424414162492594480711098612842514141452378890187267300464259765383426638073501855480616792720169050964638737813844738367235121557826113156439477221235437427381097494923585725927594848260749018579856860325212498095925931133947817915669946302775251761836036299205760094141187926855282783564258966701178400853070506153041106197529073044132548601996159839804160306588130765164129010399919594733143399646596221154337412107430816951514736983145094387431663340392961240761614658638374298604107686330095546024312319354281815841668120865032563734319181455457698723574066732678682961855607889239155000853476838988900745921196566599973754404521137667849428440629235248818697084136855212382323966824638971580018917088560743618933774315185092247561046236743555061278406455089613339204528799040479825430401011800030885050666797856938558802153148106755942548387487014548269444038766664252225158322897910398208106289315151719164250199029081682261405258552861874566850186414651728706189700316261461990634178673916300753252665513094547820210871310288125583902781362519341046416116892809979984710648011353627228906810653915352490549371274132407965466124817735022692258828524322471834597068265846136842985897791738483291064879424002142962256967242353600886132161152174348739263561782075238647681219373381123329538905412838022855931564353939491025143212915858008906822730551807411986728542736520726227627612227125195571492200305120873878509020061474267062961545526493236064958458304486934827368087232336870161172693796885733998928319958818721351742062400621389244318380868022138079644161540388476665058206204909751019405189088521033462666237394821481887000373833838126774184598179462208739404311080084493689118993674233215387337535398950583400955747099688454563512822242581116791583760207432002051648098531395429605859657907612388652595300152454092134168494190027984225389009335285384836437488537040224087712999383874649120388021024824676167744390854685519562253525279615078783621771529443105999512818010164210049519464623352160483175559579654938549499033258888405129529703268558524026583853425892683453611164427438500522933124732268578462477963422091387408812831236288933252172714632298372934109869182091042986575318030611393968764193957108286314056412964141547915152064510604110288118855189487885410986925101421989815971074382842050635162077430382906009640636530038098819338799520872080352603724816177333418437891990060510785354923816738223605056768385656904811833995106665862659344186357691248890586098243049178409749397817087211846479959964927798511552156477733383027744222904830615684171657014927200359820900390018410004844948554284151155382219471713673101746176839483168722783688857506509715364469543775195439409083752122074280212870566127103032631596428889768544362424291349492746570048845108403386967205225256371658244906701500055813526471884189308646369867693000233918577288598916719590072342827078410728427729389635093945059053603888510621825634896854765700614401949253947463173739932500838165982974343448811210319662424369704140389496487817310576060230342919584181286576939570567553287072864553768544955482318837225038747775675470617902798757912324401584741209899497859275684261563880065059367800281343683424984529765285473879867306221518254032771252045665189535013227347306571096639363113420009345141405434829104788824937864130400486033835203914793952104072295032077823486160041456065425180077082684849158952027760228542689828013570295268096001756052894139718549343667577692406696442814043603378046186401620081671531441069109001843712140755198580627585120013089292344577678832345376117200279372953558135928453679134203630530202017386072985059678684837560860295333906607072312054042765183957791934220548628136251046472899220354603379419019513619610820454298929440213378345549771712334596139932751595438553747755016439201006165281897695440207385461938004977061700032350421062521432589461595786604047279629296002611666115769649648068302500925927495006098750368757432568344908435087088587573741733546131734599694594346546263224647074544703131490816712042702720869391811148902246859889650890038826675527507155908239068500540071073560836004291778688102217125025960643876103319748352944933930099007018857202536340543519381199556398122542984433142266129439399724322660874567694570069940582741448098751986931536483938707111831915922192343039984067374247756543437593627858290200662135360320404249786337653118577298258564939124276825831082938215103230219381213733970845719532780763892398186214875234452458919407539542707457403382081062837650102117628651093341191231960717888497199358318493971332787656342417339616409491350444686546361815027961546338061683108090201900646821172220943330884738086499203089170426880076804661091583222982595851748087576138985837558057922462039170898474792511112014590640593788032180348436094313934249728619103791843633717182154946297607948741069671915500919081564894476831443172368454943857814532617342714569359046784734950520333393253926445614454290507471267861495538443799338776049036046949632584464968846777109927223761640034993512723192830879865439440494064526556573263165498493046638993934439303719231790252244422227961295501767074107467343415363658684215385016997944170699415160440470018607900910706785149062962823988897695605300989402373282568041916130624521539731600198636633649464626819698138818890363717279127966267415521984963848852786970798287281580180819937726754830466548150342496644972344527004545807467064758439238741144543313489131813111244281918422047205752838685885951669184847920577566506573624961676208309218037331694934504886595818262198924303297964960119962412910072291683150518797510989299487747973653333891049015507842934156334730687852877887776316702579915376654750205947462456306681525578392730467925114515534587327318315496587085816121445532127128614130416478715379237185671690335213681128250310308053544397540735569128799236708929254770034039545442586905798608833091379976164579094112778585573010164290991746609726243739127251862798985254706249302879684945289133676132047091192128176323710912225152316042670142983966852217301445677165769104367588135266342291205954077548246071056215979254406970910246409915551702954221120803904551857649548954373514797145013989542214824108918949692617064884219699467601016742062585291338728507106711511870139693551948979161315738624303695962998253090455741185656494178984153423855266928560662811967509182220823039205475847524290128237249397188524481058014707261902698074373285730925376648383074433840653041540765088175829816166955597355058025580856237448420497137241358935435592797575333045461097690306146201764842834260782381996506382686647181832139603440568208459859729754628924599020866675591750767763159461770849480733567836382000514627426401105037279352485577883722033238492274803274508346413547830907607244784162129690971068713896144315241977572319432441415591418946784037917712963998194474841737009798542757639044779840660025519515702909122981845108999777914751679691724910134626896701742276537765801766507953419719671922410570965257231429892617244533531900872522903037899923954270984991964138417508962962936406828188302678421209157164642324939926212573988903785171154171185445619256623346153513592388342441242243573605890148752900535527244222172495242933859068468664985465471559118043851701648602096767771094620576420985823194163668017551374275076064693955374761656206214307194641129163700017927131503197198480991129512557876786524977501277238600235089914184829454501809489029165872535789302083505064504240903918353983331031298739429712166874584208737042095864847282035643396324972154334633911823308309199355898085516526886495432423025886660662345321739926441569398065292224311290364964734715506839645150300630224642632071755171572130687156805007266456634076110896231188083648495705706370915679169226777057382270427711440439242626507374269096289087624970123042776227377565734956492942345209952388229758112050266999499128583007201124323263665651234594085986380664084862300733319329727881052344415468343099620835778916688458223847278987017859258786123989314160399767044481668011029641436995187534713347789597846307642277441618534410717442606621602513921415016757725871659033987952795491572066221450070405421223750470238462345400880150930355236774321031635135251221199895606532625442307255102034786235719827622906396265591223486604467129604223474277698043300801598374704888797718621483323608201764462524992395782962959157359855373004003781456523544715210628278181994836871787315647721680566392545775629406577494655508741767309473720271563905067679274126640941370912520417617533958151839545346908299537799465309761847651492374901317524162781977699674396103466208471006148105036061222672266480608322672608680514949195085518991202275755788999980179417436007991617466312078105792545681790420617627407276778767109851473780353883130427634845486039161471627750060178053874334412969738757917680634938688999523696101717695963751260113959549934526068966334540654671767157931449370012236990545054643739786614638400350499125458477092356426821714303341890695504586423451766558970502751314528844106213444160410626291525653079435928964594818097592259377708230699355607107848540071116474272339926227933882521765707219105023365468978850693815394689310299228798515010636388477653626848069170143670872353969060273978665104553782654113412492884032618291372645586973599893825620377373187766918557459614563347109301621451789246828164442131498414000378290337376603872773186410873315310790688511353073761045150422179867941034411811854614136969767331892336021645391127932908789965376906872199227618449157443531732421117097029649577889433265460192086930054366414023696134621103089232898823782548583488036197361096116474353969085084224895992653809328690004655532380146018363023548595028178109143873987550681397307161125646132469743492610141219050963621646368974957728823175088652532162830506052381493674438082796320370016484149779765346933635209939951674308996453007134019005155918032709185911638276436914370325084804952158521031126780598529794463262212687833386392916604461441841986001274034459473063469087917772638952257972778031487399324953375502940025321487140617400904658084298613617814662543451680566867590575139230740780945886152147453542386968591275634478233133699328486399375039495112390512763353750004342399239626800198321329633057522885453161015702093027645219834177863230697481694363780501657726267035015030139977482804180437947658969015427447391480084272078323320742597533899251909538696248065320830595065478680116524095011247239879179607390866891098164718340631275356720306563417847779910467863209131853249180982535115539183097477895531616218903427033371113162857951555267702225873351401403483374955833654302655145350144809079918680549682524963192580485259438413423879559977693748819240402632363286546672172009705282556989155976705275659336428183213903094840477824450249170037258578488465220410084782828869487914963537288426447840532306507835174033224830314084263017737925311165979586009221026945790604084597788788307923111301142114265284492335319461961414156281667327410775377605560294481021563258827977430319570580360537312860343968145362268158743347981962565524011021439339490985263287321652279618843241057875559756203453451164480907456456713259759501141694372986924320274702794455614729418814951066820479825449808854072436281642634195128791840243018352702960353761623945528372899085409824175252849437410618997103737315837667181191728244778329645647580703658275273971447158541938537932076089273516681887605963581280915210902870687716049488384235580650018288444874365048231895716206315732281645569701620038818179223528454622407325802460961973652638114949317729174731232050180926250197071206015728385664319749067869674558995565891540435228385942399195175072715008003618091919879253856840514815150622450169311909718752742950552586509132534015128827677508461739092544362134937629722058623778362897957231370929504301347372518066832996319470536466608265015802538778189464380527697006004695373446241425217215918188994180773915759193117496105194002392914962248316918745651660942169383570054247317700326554132390333069919246971769751258556157239133841266033508283419390392496499915387453954972107537651255965936881999645047236849684758468068255461367914309071850706129730638904419618628402977592066097023094832669528181429230031965176034790576624333681955499712049814599340929565231741909178140956999995609197065690844360088651991081837654974466559782072051956532720925684087162115702801344080628607150579019871240375673914418976842808756017430737680829284735343976738697007406632995047963766680715117323830018728546383065663482203742399481737022371345914301281144010139894265851975126919380633459579290933645703630132951840015423843749548999379993658696515381708823836967969793046534644111939402635622750620592359182951842834199266847192647434922015723555706753934605087567567096672504133643413660493859954816993149644864621009152886736604430529641333582797639309366434895556357222001503606151176407634366003306376542910782449157192185794130898831211006606378216138029615272820259892545956480665076933993245693583024216833741630982843538070244599010258993517624767144479261317245078253235610152608335294987526643881217261503505812182497908295466425592649883205377030192228098439679639681402644454329341051631916932183669122913247600184506413112273587745026258733928981699779917251254945620857912274937008699235885522945795001370570499027470969589390420123545523496748123098266195231940446756643025893453013247302528254353849955613106646326418444961143980388917249415264981493272327563385992853365463843440384899078916302902873830891690681462385076411172439879365102997520370566788965983417733880597981356261058288799125304274544515324951323880090513725299142754957089524546688199127320438938815000925122419691838450994931877473439446088114984646660965644082392438356079889546347459320761881005990782093529074533968925093777440810466435169968393695735463778562537721252507892166215021702825542839690776475026998593013434947200004544548939359064904272187911937885464624331719205359701915946246647392827311045595329353449869659402444649912801636175778355817010100006725469255733472262768803953501694358395895890761764503566555642040683008664513508490686147083768726204400171400187947139718629174899681594331743084999717166590131004000449162327146377339760133328469212743574247908483313933310683543204946748494994569938516153861039175503595486946794322558974364274247125625234423117603193059158806272564381509566422046672163492518076885459598893787470861990714694611615296968636934452764712432294931193095956754491895560749966213301776797989540511283140677605576640657700663264760555976839150662010545124919301441380164115742775992391985625641769057895572452186211390887053367567935198127578168459357596078673854810989080016951163694491343074002104692497581078425456213326045078234189186142671856976714583226279149980385819826261515464135101487746562085687250573121851878402446436957876154830380888916409419583592485531576945780459520219910921019279295904580892439566403919083806792120133355739696963761057008137509941545139612550707724780203350775542206331384845622876481396975273897161678703696851968071207964902971290176737351477126557273189078647059462706503209513008970921670552635265725406838410364098846279818972670939312391387909902292749537513811453060691309386267096487693480473706392630778658631196825237271803506331320945801558318190607288603079987725128112814826758841867779635246761413104074796731603716734253077705669075915690185678907619260173551213502951375806237585113816068513030802074242153948349816418220176622105645330475280839024956088754830207334296772652897593849513596607805670797437622112599549712955491678457104092297571356656086557763984984472590581685362985531446765236534999280746623712472683946924977065161880978370615454505381884576133330924901595374134459599126076726619642325089690591949184892704950449536362187879440417888834042240604282991161192245294203633284009823100686888876206745264608422750811527041207638807224757601229731797209999893381946040057233068757798219754148611728673939342504691404950860901718855694946273992828102070845210865004045884067783487906096544075328427263736916509833483132564598655153485485592247163361209013846688268061040249252096545614097894002608768902440690913024207582750848884510814435766415007408602366263723366807619537339053669426475910998143150898209680533313675626863689426700325471053956056301890475581379799359812181770963705870714469574239656866682134636437446169677385886611250210606854537331195715423827569653003692655050306715077915509565902502257464271541665717175461762797829593216146722684286871799374833845193316125843444980802840824599287575205954239330812103650138236849000964950632713051466674317928295820237045128914269773056282152455352735995957991425060061019435138761934776633722401730391988710530189442877569441974809897621178098602149214923700277054960992687991053893603744817693739291179541924469494296135154647911357204559605932922481010288826486082023804302957836082983337117044259753595529477605254279220162365674377279943586967062305236757789538404025441435380544302438528519520498539258524347740436960637679843772856387015476225561417988802544102402743406046278266439492343257326432768072230702191377067311382288831794023464256940795805042509917946044016526951199751377160289898706741013604412821129882061738860211127347079547332122533612648416413832704017321633306244997721084630360756599150114923967570596912882788020196838129419134103922179453467812889553974065649144326163007703513576205008910454475320669499016289351390260457721175024743837292606946355716436274336509355453243384444791108461842319760614078300179561350647680259643242400832100812449273992616379285447790623185164791190093347267255381929444296786983750636473710104015970841925285826396771520736436964746405096378161559246772440112496551224888517760616915474583275547182613277477240317098859852993264863990933871978644948095604628485304206101995064767616948838123941502093288954473316195040086678163062257000906507227293470709564093186228459828570169123606753916240438366863116453364802516877967397127137565021554285502175414117431469589870391763126027046407523958975993540844889932956265229176012145085890403030960689881868551379694462306570209443340101789417049419672713956538028276351247174134108122631429422494716153525196853683406388571633998603340335855469558017016634744993181350962684842014030508160895398828307021290558062707686793513481094417306061222624459865639770550911338948457102519073876005125327872625967859702122443088584869347732318726828664305297740396649121067046519831367436604115649445289894766144210350280892181840339619198250315000516656955126855847646450695365033186534430950474026183156178545045101457316720236916095643985363281805483875346801554913555572953365861227598720849185987738857641965746713865467892870623517448229558004019912011612907668015238562604767081898643171642140750034193108740195931398111594670859218010487251389215190467538713643945798327987577959742877154041281407539522955510007080234494349013697888516374383157104846720388417467997865114860002696673380653938138807549852787843286316193803013026134785903471913182246580970011775220778719897655098522399184820463064095226777065138362897665419115421166452971287134572404973667850021023329168117475121937106669700177708332928819110827754880111492388885183352360861806645088564511118034128992135899539054479223391707932803213190225824648644299822177303381663361307850141699813552289424008607153042903064733875443726844161421498674087527078384793101849851911755351261382361663635577054984649593605472409702567024121587056736055890245360213051417158668576266177036342990057990220346867821386993981663922624457969460779971004092168954515504918680981598296039824434844945015464097166492535107419811393464934130743535363528213825424902100046816015310652724690435452163841955608103670181998493713455906720251690072162833178490472229772861127213124606463980334840487961511986361670732988865975739833752732226229359594580819849914005841683363304157300785784131632774886183285296442713316289970654231098436873816806426715020387787756720854652833871559135496350187988367986985183869321480829131445920330735204943551137818637631897941114356364754278474918813632449200033808383810778614756610180626122056220237982527338985610711416001208779702179279058993669437708997472280596956812016370357149396594603935077722863106324793098963875883036522681128480682515446223071637259913039111287950430132520465079855902200189309441070703160518163857293318094097115716101484662141584093494971180713206222276084708837283375465678785421457606160321545946928276226202436764939371927705939138323114571685469003382328331356914495194376649507327779123840492528440220500871098467786406305684650019907255184313393283264540130714861306324563901803190012677997668907297443586386373587765564536291070975277004698434869785974017753888991032005286274994462224733189513769094221396224600413865525366085332549034891105516279469021541296087190303038441569559251641683763675745269581780725552026745326938926806414854936812496076203807105998170819476808640746078667542165833705173637522238877393824641933011566137155337530999206305314867815686720462033484697801919663028334120886146741320325207675915108368369078293534591886579399155428712331618667739994959966859888187354583710998011453545493453287197674991226889907537738492522180919035607975671063735779889098375200117166639760614531933496827463304581515883407731627892370323099419723163975878471001378258857995452649345082050053372304216326394930192310395669466730065942667370960217568889876868141995559042055888805231768588820880979093660652548332488726336652734547933997174026154481209215990224052067431401268295595450762301244715145449756832916952386786523674426487537213613494192747790713809888162334857559186726070169141342601226755821639051628925273875984413757687578719657525665907582187793178390963145113042332240656023340871109695098882992224396564522663857432864207794600315444549492224911963604460523282346131987210076839461303150097803885031408053462429144394654563269896007833343620665969757131340283906436286283206064644222957927991446893855640609478237277010584235093660055041379384001136185972486396476640967304355863423868894129358439050803332151093144651419901383519817270212235971120087246826059800002829835827049743360674781713586754524259999251008470070248104452308558199999273594173738681322760828277208145509951583608287852215270370729829609138962436135159701895642791862988510746371615176121260088536689765841885579578613156253174323713248625203141661120782155406863288422382347334772089695537655877164020099361727776696352071192454843844421742243338675961003841450145116427699330577042961861469922371136291730539907250742950409266995798088168762099418813759193416651590120825147154834849044756865945423465071849879213044770784147736390785398537363841604381465142593444602293261690128512755433858827397994382154724512296992898999843320656574923867478620360629734763145155692551613712778223000391732292410032299885992770310651536748855366399222762803814618449862220993322047618068332718516142475093125207069257790468004587945250975346274028630988696537341425107186771243296375306442537476568348937006724404123099182713181668651736768365902314169972571252072179444554486881147821829527035741755390915836966104358197662241630788206152709334380226594015251775787101574399319369588340893864958200420939281773296260837243815274269380440388952094086432402365240840416101510711839349502302638717961558193114391492857058940853039505004054737037345592915990401648500883267116127143468233460526366468693330297193738567579444583739932529435695485110865732223349674770132430769661916095731111305663264162570583973506834938075199570695756893396405657007216564481837094878331949445649153038012409928619236045661761009033261670531243562918494690654913385891859108340937561067318072186967230130065171682984139348607120629198957544800578271335574054844186145072621180482678060356250195110197656747588751240933354387512204509324023403328289746575029083645266106170373850515123142066654779843509314181079689956459821996828050575994833279113691989318625449116050842081733486191253146922319377181982971460022109749584182666094538755813580574923854186359058724102214550144586874650610262680903797029943782194927329168883215654258445110748278330851509351180862176005492232933563721058056016556990198124324731525028247995729082511446345454903471192486032184036991191325790372163674598719583105712271135284752089118287384338885430705916775055922509379261915107507013550201785193041032049042736222342587604727676444899723624452333944192464098341823888651595959050488115928087362876747843335860428372467848968317531424659224573464733343551440855442603638386785663857764216600143612882532829694344889173049706327815823960495567499147420285867753137075916119092775806627390077500430455936461039384552420665370444092878487883103754627847713968700504350608616437644144996901827803393662830066426291165146220494477273934636703901608246574774040363156559008095875043361619982661833650361510214078031140322161842178112893593579068652239576458453654311123237454181150954729053287838862914089981249882426576211222563080593342047359643938615073954866863479676388850526793398028691607809225077873107465344370261871847060293931949703821442152397008438509363104188821646198341150721675055608520729617648126274389331238624303238889652137527101004600250770611017368614685734610904271944973641169763732368077153881993565532365830079223485309420941681347470984769525239395988753157774814277188776086970975717818940080426266354131854724000236905323885929398111358227040854396093341684222313490539465172843590268765482360257812056585300243117502980325915308596332724309228860140809722680889494136339878143675759685420132824988264763881134976075649516621440952105524682150862222404246206305341964172969498402248936074207139161356406292157913829730758024913318887209692217994920184062901104350334883113880544338052601651749778931323762367791247986724158210035446882096452397039805131961602788396348407422522177539954352344496135968778852008310598177207833468571188440582646688462855267652559540463826013079443053183987222060740808454059542282136893417566965276026254106118242251428132395464889054804477409157192602499304444643778517358303940197622222848395367370503708778350792626349644288501874609665222322273001845547584415848576889053865728244350425693961504159740996060913143857555326992166392762036480969354987855222764001204012941599820093119670150060708378950520777288766096993154612175131580914439669449409090046472563418773225430073577942276405947007590424093304098398700144627774928558416554249778976901424138301361134024691897737682927572037545175580567190444241229955651771437132968882960865423458513867297829654241641871246894299181500161945749326341131574908217965203298656642992055592236149767663987450137549514593458095876262523201966254492130597837442510552052128210295875825596950393253293747704511962810639538410706489334937116006656049151276108452316023381914363031563461197735302001288830912522431820080327108599116860309049166528586610535332507803997721277596239798514359767669716746742731701083905172002083730021844120887462776589385784846900296842430177312046295550749234431377230551622740737621204779716499723294150240946850083117803054846941416049982499269490851449350208451358860400993158677659361264230676325161703534485641333485404266594234026471712517499666081602945801018145637345567675551791437685310138080059200180148049676012038398851465907136047921000969957141135013559439791625831837297681005526206507759030621304062816428916713184015609133128078287204182620000336522449752495158128632220333817671155892695394681361957444541351813720317209914085662546097554173434311769439150707756728081836077429683781933838530676604517362883260726636178549620367467775741886219359201561756585810218677449332751063383828342996132493232489569017357600031419460651640424247134855750714009916826651096437264739542185366146960495726999079069369417018653883663639782650460478016364845737907156730914129434581309174920456356400657336770767360734606117265440309387504299672092241738646606460106945218400633692102044921748657492117564438440956856613902558068814299064648122121222973946876620610047121875582125087823308527130603931222839613758981582526314181981910781024083797376250510502050439054061344993900571361451336274857390921322722230907470605409951359565220966756442921411352006661568041668587857939171299611662581717303780860721760226384941982713914026707170545272555750992052985550546745100567184615610068301562045767653111875473504786281412217885520632777717218885497680916054056030841542513332756577856943194570214668308950363867860782502619683707398426150417612778712375369416237832398694144980484410793639370823783779417173332808133306799523658907567678965986741095643327434613600658691230857370527403683499945781504036825858258524190339874751447707752032016099117323308233240670271851622039335751488891478459741284465676715729208381580753237327138576880423461982578379050300225194537103278457571298554137405871019234542567754492697551213088632462758966099269237702144470995791521431805429199907583773161255930179059438427537928282791326065220314410217455142346045316973101141446351522786690260557771995093697177723823410791277562583418534480886064343252022614415001056876191614904747071891152905210273004237382625144120923572987083171757993084753638232231502103751390044130420567118543143054484524564815978262991922099626836078372113513284719142177277958987555231546698230600878545941379526977194406531933662033372056094120635291197965966977338750483831774611318139521049095956677395317889893406804303726082326481492950709225980447477422693034283257388450717175001736605169199115827175856926225128958909439980165062650638960930741417560471214198308662459445220383723902834267977203381941617641005428193263662211088541318702139878652346067667166621198934042559511030986072911314565797905091428501835975630530248863743976451080484923238501206794448767175691408025860039841293099243413578187766972836219345622998423434069756937205853250458764257291390339478142164425875571041838188502214279096881448165220135167665134627311724945398237346680969635090434488504110476890523347122001351116689002142079969396892479199185963467971616793287162451715262142326162234553501114771609973410955288501087883886885868510121496499967634890309350499474628064720158394921636873846186771486737745927455144740785863582442049332255544403519714683211190102861907896507412175418848088126794128586124649906054426913787421513728273548972230663597778147085540968349175740873724830042018301038068885119085931378507667642739078367542069265959770900871970121270246227889843895250814393973069695938936480380964017790753586202026889162591380208410571537999493657877407904960464764265475489042050983810893170297611657201606885049831552430631276027910014429017663145350841153032544337077376318314757521864051358403547900047464164231496426378946056700152331611783068101664284650391781733109626916681508056146052932002008479571855477578634633823355798597721626423110512841967281397834516690198817931807303438618515264744202537622227012345204807737755689543607532027946505583927241446728634754999618418370163921118258481999504351345004369388882135383874856559420263501654273342867606275237870835040738212453845178696040038165277756865191889439071581705063478277703953271717929282884964661357820194950765608528810887326752051580394456987741697638772505436565294411992327878058069320279183265677083540106517313409496189370380723677607099738883591891659939146408944142015366064552615636835552460528945172854602009413908462901642954712977732895692119788285815658085639103630474687602142104584271216155604659671414031407382081698971273178782351951461782219369257872422019167390495058811926312752168701570499295487733621831031695537558701004467958528123389913005862522178674158313675031277548205099813114740646302009943053971881959972291552832293157412823262924399987547902361425518448890350104197293252737625114884590637299291298365273169577514970173604006399388944801123826724594367846952818747317472936768144878962188722230377884164205744891194739189746764399555754310750544870693204059375799836072059896746872505669811382265744243078854186137189827903049326949099861219407098387895251291875865071587690805734638955019023758400060583064960365512478744264207062311336958864563912316943093911332189269027100862171354339273941612953619429476887951808276593223008071396957821782360080700279782191304495870296431003730898533313390591618972067371962983155796052254231400382286513361079870365948202852298466587707042861270990605989908517222068022023721848076504072868139141497539140180108196545095563619573723254162902504941502022396972751816223998106295716913567190238411371029592619349029386485240208606232471766535653341913365066454716751132168903125002819030208531792246509372137966040768392398823257227542072391099756070470200818204479251067933762785678553195481812970571799109864879979677240025631943618127787648248065255930085612678341754379186483974420051771330729375014348084222805477165956784734266283602142914513089005362965900256156660768028512793732629460923475227719548346883427208713552112723416332489613377400763774110103128393765609751242408839038300508447628447100322283372370895506263492868169006689258618309072883042071244320051128735029524573533431125317588477320525806991211474548114413250680126245866763146127645254825318041572439031672152872827445068636491158230404476695250336632038595806750271499649206017360179135656241465918224017818234011122423561625674236638422761861973014748889831630372288895281358809946594130059158521529048987909951401244921100935877812729292410209782052141339154810150046926360155057687313265295977425426027406480017433328528788303109172760217536811288824312166400994850952287947667613105598886580723318075372448814613867413842215486634713735217614345232879169536171022309156989864189565759176987369677790180786712515364753260071240104741856018829826246711803541803227395262999858968529362170009806067824505777922434630682902600510199800429126699585227163043060378934544773892480226900519786829555458452821497253118817014588532261903323177294404547048556779467393478154654048694323620218753026899838715776917757883883176704167670934442149448172828562298160354203323651438792608667423496840034402352581513570477837791439654572282048134663983832989174711318384702884719784875737083259867140784599675895845344787098771842218435923412150603188937230861444820291056483345988799985609343654381492545294248982841309824902669000526764033022691045409974561650327854864149282740447067512345640880814594403890482314312996736470814223708236301141742279086871308261121122627911234411850756212432952796168024683541294151427165865609595752343069796178037856489755841590758934946575099851571685387978738646745082633208555434866380429832604195111843562007232153657364521222751299699137589218865001737881103264970412204510990459893419339628746691829683982925936406831088052029952982117494763355121655288301322841003916306497637525619098806834191372822064079878821926983975279854185027775248458251020777008347914554489977414083114217351363648133402183936730728647038811368114574310937407053169010477674673403955811281082336795170462196697506289335901444908668601663348528576835851285485168047162560664348543386622472858399801201589808077552642226871450652582348991243846952132300726565541161030612960677859638812350418233904020939590193794304510461752069545804648704051058761412698049656531403046829289779321455972566092223948917309895971180372464079818185853050210630196253343141668511199768160810061888937999495419446130431468138783393596350427349427915035948460269711007124219907936789997203267384624439714296918205187643594825684308772340296035221366083556097227865384649058302891534048268381041895881415762178607802109736872610611716772180905692297974830534954868647413330282477746495581340935862355917056962418146071250206295234703860283398010071209295277747048004045698245133080108458173626629603356235310643967851333110701060161138408206104690767645544951829564270325123868050130758460469075021910411640898816254177849449933554074143901329302372066435494431736482736162468498823832613250870297401485663046138325737851413342514216928431307931479059276466756160621970866319719885588494088705800135383142714086876353581971495902644690647025907949696766472190347883330868966692588919200215349684538292254961944020363947751826394684007614198924054185065851110371726800928510040884885268345779724671535396790332726555617700971551221973870489243960611406375735814806470070722443490271972333848301078748124920946761967194321165364424994626268041907504927175452408080384956733776058970843566748387489503704182182698284458054455226762098575537476211100716468138478971287445573387399042961027917632858017740245533245176620647016635679262849035087279691955154753103193779230375048415080549977353302613529353845614543192346298692809014872559055635480901770031223332464378198415796221028137245498756373868702108127638685827983341446185975764463426073741625491009144289283008739201663287511356596981333456578445099281722282068956705990666715173599216574643812252134013006647840618663259462082102116487202612740210988633956993668841197941104778948774900274858930997297372639531546079912653632433308532522654366270730014138122859054064764187226145705739827244214811653870883676680152861358507524103814915148709353607869656472822184314916067862628683991415620475762338194058148212151572164239116215198872873855595504385016037173668644858297153460320840512449883952407843846893579418837025272702974838998967620483536311873658703555362082748157736926004383079706700300899174582245886372081698041257909203030678085168660070453142810050326127757556248579959615135125940211314940708589324048466578605407108799178235019290651753625490681659932281255970509579720793189124272027140410613863927882336184932001768067475887306150161836042949488578406180144022012592534262587912717348237762982957754133271899918529201017299586941110722155787450216751894459316908601287009424323647194402890831678113715931843417653085654787732368236474222852228904649417253227749697283661975831198368784889363387391990049663066469513822672809724561471805408390472784196502223382242579794988140962506515824132519939317708991398949804251357651750356380469063636007366785563731845528806460857579371315167898554076854334537873531059605102030470344156623936895570442866261268808229348002986850067714431909329903838139650043484889981759189403364435206020789797439871781213817812558107119484166074809389641065129024752321159138151068191946011531096634719573268090259068580951049440479724320475819717655193983326088743933631047094332450217474679093417976201395573124457065177679865283522447890383727770162737501676946625715718033172757846475238254796554349542477939501688379158178449763202205577803124438854975923052848583715261574105199540340836891277480949400642851127379407107675782125496872733172574454817003684405800351344102186278726033804717890840804985382285768408836466151057809687553218862329035207211199704779097745706929241568173355738340695712463516426642376565835876246438462072193158752872170414513418368263099036211757966107143561677583543721167991227816441059851807871175878630090064654094270010347469578399227366068576706466240284706721040561083709829284451165154105863829631657700406025666079778444014569606459793803247728153662831894400604957784627875531515783994614945886671605028404621361479759987232140608948266670907087543369244915936081125885930590680698994657857006422404272547547955696718182627599782718415202158864034022335837261803057797347721318161302668913259386280052048958135040812136155857681717763628976427351912678122853748326717014721455694321638937407464115138084159306516021712050523719625086555856048903702461414074420480825455643319814079665107492321682465794537883519508315428357051250386447832483848973688310271750676491754661801252997786638515770793107810596998528427674501408185383849028311108729872513018153629069429426991374249725000421528452939736104595234038164324362173741016495195333275178945008011937869049630620345748600027861540240636891456814290814140726706518187020986885248995100329852832924719258115542742928974564244737321010146137714699847344274478604273392278315344672956569714816639262210325241425344051244235742328398330921456599336224710275736633212092868444955256926822598368436684035119690434127364685147371867361632792426262418303080462565170534544382023366183194693803111302058367139218871957366047288252628121430579156776118074081800680776719203498175762855064246798174187963785259062952234250950825235522921341033121693947463176062883668374396618678302234266024981519958392838792270187274089641420021104924078376245258507061517371443641460365966203617146250127556933779183871948643495835693315448234163754541271356192132896111071943177855007512111385649830769975804548746218128331513190065862955837403555493543478840420792864131383809779114920204049242898109880333820660046008430235665370592357533019298509368713638423097634834739022498535246765636480319764490477068332919967925564187016046721520243063724425936845417763876166157233431942313892689432058437818337615989231638943853499272188515383454406446240335757930957881349373056682285741185135706025174470127357426636622701751119337846854819189950935194522675407797720410410203672387480800177885720762947716987555753531678555623837172316196201850378045765004411586561932231594075823150110350838611954025469420122150506798324609569428450480959777824314682532046287434106989540854332434036645434401826780050655703144424049347502884875997447504600270571406411606308484773346265974502685584529604447641139529756619736584373849046145304730714523703824013447062870995833397443182398162581780589006180449546946524484903158031857326375390585984777983753520953307239420660883725157340943973732250883073353389103902460598641564415290462174037768752680872797108448548227049912931904414991498755788704507773198457103965250919260422426758322298502939566942367818254736199118067255086737141070940262806571329587136577108067766691177978230767812921492658764685773065701140648856417386253267051932818433539987647269369058805504948437084515352614283013040045430054785456107573948343066414474192169305370418602860955780283696974366105921792226647717248062394467530369133741655799268421723131991668626883860104669688192549520418353804011536765765199940119779810990600499481000652562838508648852407031555302470917599116313295241391169212022955094868086691799378722501432447448060243373417733612728166776245291647477006035536286609203563080898421205133360310502015419337981607429148084547267586136506407506182022202036895008468603822090370999743397129631314951770356237806286082389892852590768924199589146357887375004523857316077348533055227020883803769850292470318672310894626405696189473009662379982662962826252532439592015640652990728362473253662486350210329455816026422934241333250573850892665587253954049545087206744852609422671021043789039338515196041396840611352658985094707985681490888289756347606200976360639844943366505270266610490632591686608115433214543020130891811140694383375288545945538279350859689909191049164675217534996665324243451815984816215778200726812853849310896913295927848270295188729261744411988666732650123300514755627793586477597464549425612517380502482990769669405114680507917696800792063987035495399070567641310375556216258739752264178804147188071755601984280191033947076734892224191355347392289145491169005289858825062460343870026157621399216170317377949163840569195221077277667576914901929258641814615738524697390643933943665861210821345921756546857079625685332691253368976644719882311854910337451954662263834912926312030697787648206652650969229917654998061882968542864737804540791084269862903666485220888419601979969144411297434156614257701030093311823970049002926369109824495768559517081003539242070808279363036732827273003863884099885409871988029982098919580921761252773608585210684695624150567627258587136712436068596915599803622531007756087500640836698091056161783665508474731719784828755605663317040203108668256452666780737742210715253967502748778881937865137218954414337960581943599846912324155725511367177115544440780096672556266011821830932290672914563789490099579470448937223214386449095572362882028697065706903262919577841620605561559867341398181956822962260318016465092375729769589386761942944997854497817661201167396426201588622696375385975843660612472912287840560584826412599699521331447975244688985357926432455538469294630977300160965187017358183433430897762380418524090601728928579865074401404902346286021889381507550801228371553392836183502023220090053683390734001084123707955370380197871823326359278495123383232882742825365265819998067764917155795880436757785285970972056298860670081322429616827868903211077815810792189620198993582044455817624721478720028873649891274244599222839306633320159083221270163408867150609290958060766413528916669311788507121404236280469750497249554270533335932299726616042829445543058071382816481571992680592054032765288687277366375392103226488797251676422661960648800502586871902992961526198303647222230831618182243575869807822248261888289604704320620742390424955337264384500528877005934317349740588972597532344863995374937383468926968872945325629908518468894862343292893512258128028090147246692771964757302234810461805820013263528946307685418054301912373207605538205313730429998295966930891553494957440395345408098294611578435098624135372725377644091890736841087917511858371122469919661160005694292645994662675102712747065978483943257290662677202403741845783647591829432346840160025390043433866412685406550695704094006020563900957067377846232095406227761970349248547469394501153377930729643974826470661756347467042893019083506016553524321808046079333738901172694290993701363527249405432960193044678553028342604325988708036756988070274357789771915711526226717490210127115273599986426822944323686155772202716906715591307997834345500525924611475750082067969313755482805907393536416762694774182331481524583344373245027200484638708015018843956515986368496050163806564256842919170332254648027281750689456489944902523372913718559323873313759508008128109566546557637428252850924689684407997337689816863684395066117139465475488554677682297427025802216594011574898527986846629372991661475053295765254918928877555524891795389764699928207996355441674628575766677110404739439944140346785427660413336081755500106206052174882286819816232010765742767671507898577808041801268428571353990157171749900744913473893501491469656438339252811962355877830480334410256002875668024157180566678938615297591646380856697842764663902540541864530389865101288777406124584878135374772147832763030697310653921921504714358527452943951464863401587381807591969507755718570458146299884929916967208419570429924625973612723624385462615280983998125422692972430722317407353135290088966061876529635105642157500770119975027914321612498476733922307484417202009391159236030667278412569011200535174214802180775481256464663951257056940063991848148244194197094758466902966093843861613684137421725122395574561161067026847725226502737250627366980087253106452608996475414823539177673960682141811167377765442078933849863347317986382926619195030109182382339790805387727141250614263529238144906719592879179655432645608072352867327861214009155451586135913165945992257186847656363708622361626101591264885119285217953973760492413961457711968363267825703937021428504515525855865560969826044984536913629160848838540415998562838724525769257453261779261478308941411768997690674512940307127209666242402914436536134367081468866602956124145199657485455935443536384237461467587253741342926505724269890025369417719638670926644652313510503041081949307348315770278479729610847856226166803847344292123350583234388900913694050115069131729463579877728145612394083651821840625757350606519498366136482008401967328453263414189793619476905505236564796284219520688700062793274169093939848402873149417258675897813305287150911256272131156988182356283013436412035476061989256376953643617492813174498434962880719952073645059735544159269311990369943177657582753317663924374709571582714285524215931935632199532176029126259073138911234218011985516297577176800116438001336841939084310789795773821320923932590281643143797164918256211569709697023672725000861757448090886647354070524594963960988021482692328773785878063101875800006040883686640458809438054002993768128670264342255818538376951075847005474527631447523419259306026982710848279806245881029506688555693237350261326381952857892081996633347292266585591107444860339523202640643572259600030123374991935687459825261248146787358169196207851266970050084728684310477544982457110337181553277595021413561848032134329918134417723397519241757783873002936089023741804914430408973813604143318168981670171351878686742440696833576885601612315165110694863914924491964848525485958718811875027480226340506389612216085270919324023381167631086266549823128502021869936479507841892662785856802534811030487480696705208046879750435613475070453119248237353260736563241081545120676017911179980949540968347776339651762061750608036225538022987662543605459333383387108620202684388961669363237234802933074227315435041096418794764119085165572993916836596331554335362636993566325359844883644591595773994181607752670570824376675990614092763513257574600323846986315482966380532355648805016313260023334782412653027236553926611508806576322360539179407127570285210330771338098051637471578755757356148705449071178378590052935186194359380056489057023411784891193023549812340086816544725012405338929207001392015844807269184020973581819203449319481256131259586225114583365302923465761581883722393640773943953049952281956655254263322090024912079293919134335955949149581835586763744963717977949469604009063478023925607520300910236653288330164627325736609733439402112379402026946240062818373654337041923138766676586309894908820150607852882781069432751037383739016920975618303490003847778876007805034264869283759967915455461809204451957969654700125624146869222730332910692203256919621043894402079742048704116333251898443422353875658012254585256101691151503152219322400207626711678391240020871778729859783266141496168448921544930135123621723664101160907536780443092262987784113377957091833409709293436875368596117493685836805107319422968334664507441986038449566856454329715621098467789309747157486628264223615187542367151788625470093827120056763533948850208153039928815254528050753316934312738251865030367872815742682941456179600218082322275125314189072644909411402018689599792764674054509208235788621078728799862593060213322735684905753971824613785580439069704346249316195642485030943436784652336406412981788519053797898062748655019838656854289221835347533939889792467398329148286696569480221131233010538328985075424196922310630229483849950897762801296495068524412229025105152129598923323269803729900587176466933737871306141664547733422687525281088446854251719061755910908881414894256068684475037197567686129127635506011320128899768669490027164530928514836243368628602864371185350312175550807088196499438206480464037404515301837890652554539854305706318451067506788717836805530384573205208679249439575933500304410654820721614374002055894343640436707529620282255364555592703767822120559544033508010315865117136938945441614521298895571246832093608942619807015344921752676841831460944647256580579588679764429614585937816956227852459474560165581843914376585517446979854440726093042553809809107650741962430090233747956807456151139566585606116929843098631892282433458288646689094637398279034957249375978786801256449632846526024707398918507491838647545917196771704258842735285594654027615787907059913155720218759305949503542519723525965836914859898075745460668890805958766590915945392490874889816592346888442133968304417626276636786454194845529232696805704273130357664353641991274114836020459185304845205325984954705879112550848383328634088362362061351091641807793842381455103781748065248343514969588173217655546578203802220474430241524694924579270205165230372222031724159629715250914260761647299137461602373393564777530413648060900686776678885698130103784870143662761314241058963403950260130611451764794981517227735828378750277973175820266809240465669090496296453876121998610235295038910975086424610819152048300528336336212428017864410871219887941742719944542029924238161424216210259270258038408176209932165633013939813926661087945473787897241714290241705591655115523991022930485227626691873077173678964416655564349703730800372243494176408265394501237888843233707461295011444644151457655847960127215877983098497097976072045380243123159783855165513348826249572173893122808878770529931125725961417397520732256461954141180768842630741884196139345989802420481293501351315599897738610774867638248341004073940516035689378241391194164608934622042946212603559857386162535594746091938509051927263670696159092290171261232951929390817900240341707124069693083676126775719296792530406469167058503645864450173980808640918876599429652088768373874755024518417385740687051571379038464495121133267378888302213902804088813482616826588487505795733837507448858006184415894864330434517146713204119903391822173348878930711487984185037421070337615833674920135423440456135254855060222229437703429921437594542097157683341561608433888698793267396560937388867278020881933373717297180699921890285214451908639603915257973423205205300735688113790627964159705983980282867127240552716390782014181882809206122842684264267894669321223055757501716497769897028742161314326883280426466923633379679923936652403188337999190610860699985309380615254014265293437012542139492250082081011987678203386479350333502014823931564163354431545571908598788899142676270869600792012641853056090742743275056117571557547309373545432385977559241407183904940651072356023102480863754676828741244925161444937233489025425369572934789056281779480457136625374951765502836192702856188412610177996082603207743613108713202831859140788035693166393706340840835823180434268659725380155192042768903445738157040015174929159243666089826906610846357730172975287451278776319958974012428794332825573059042942366925919522270205626357366402283490430221347303658920086044370480591264291653388494322741264598438006930910490401403878586193226651291907551079361659075578905849545249144093334169558304506390694675817628091470205663220787890318850794329144431184342017552136594548945591022525641231010010126238775270155149379392837814581252943376780962046067233969607626968121261220988699035292138065070995688995869879890570200556124075070331872588636765401544535840413612531657368125213719816153352964617946555376164223331026625178924730133616704540677842512927087379251037755329896132060775287207870668125270211950781694828183814599734436988328131548779401210163130345020649114270351903240669458687493758103578700513223416830315325421082686342013900194903198904229559674207493928605178805326875271125974124190468186290886830985934595335202217464471117996105633535013362498583898722668633418499374725043433170981008621583797516421379684202423904578189205828016258684293455984798826004600540355185376725429014092593779926986991662380289509153595273876349682929184062689488532552824241031164279903279730308067656360311815419445706980870907330439728279667101043048324185538330101285096588500130638952753018542185571938625116596988221386658783858928134717894688305819627510531984968963082238873563507962336457384862838720356718100685666866839444847344976327622706244098638089324255339411323306992337629618232993053160092330901905265753279007992938827755741338864683711803418920495726404887140865859940915845463476177536234558468831476204210367786696643109272591937677100029376795453235996232047142677236343504603765338274691323914669989234489850780495337785114791746128701864983303718613070848517831526222710192408724522673702131733364934087889218250224522979057979993665692803589136378385142091559741464116897576854465871618056089797217630392328133950755404924562780482296721066375125690242097345845638421263142857415730648236621081678515225453713243180424121024090095056459032812036977633072154085547693049390273579036941793333530994401968833577410450370410296999512323304150207073424638515954329207858043527783857668641007055674282272150032457752188910220059573067798483450029542676965541834507198978709286153111263772492827468019469637715999425840560486557522657476414828139738004746833308990914012963897542163588258055609042923497872742934411776252370073433548163787153826374924380726830014121997368970542706002034953654419116193538763619034056312638102646376656289283848102487227953462301695624957351315343975248070191216328955717039509617270865616792658098790490703819665797042422213037991738789975672586391421151725859508925468759739102551778551709223454934946450870543417159042458041861815776886482594115179631727489199604407940909166231356187158295712402051818925099842541926128363780348853737678960276995053650308752412765616932298855932533466633507139800376342004877954654466604315465069934546631738357150622099017161872569672551718806863374951669817290049943384844210197131688450901581621782156514356677807170395752107958458963708362693019415820374639414262580636697579572511479935904217874904606128561130856906395671522244470869271605355812315578871750403260625960308121509657779120113671604590041176259640936100352865721313670733506728183572617831381910139877607726175633920111165622516368481173833408435221309194199737933060080557473119503984604742461938712098602223967376367258348520009978604904519774102991688913435508352212291864063537483236628441950666770227124771513459023847649174087091185671063871182797685815009138525695227005551869276711591103777861478177799245520774417108152220283394069488247928999347026862373222895689975326290778053550482925593236446969052067796146684264601048723655871962078759398601136593206010256074622989893398993191188576847498828968515049163515412127939186905762050071805298852635690436929344136458224997259513700360870284113741497140285214041068583363277913420000007673970806768641626191624726545375526199964507673244495095324965618991012408276060405162318404790785499390274192508308961874689808833632795897524577745290798038388495596676343804416679278934336991516090078369737643278033117159431923490512436771530883682617642509553602635408779585630810071024589320232978699273752959877593511050570959494256951115175818556146894122868299643051733617352790253339646443775590405789471102353216929068931105964890839362921447033239965352807276430973308528177924745760062144494445217712875338445335641051683575084751851707404825042575184010901813437920361063597777706807540734818193185568783478241602902808045807829403599519351960057524960530758951793865595773043290939404745416438312636935725365084607574647761910909672716547245652550725408975958003195882602658526335704724319151919672900815832650565262648922854834942065087809787810310131930102871240590349397554231366928341827676697399345638068941503388562317088031999620252097461279303332823809803433041707231490961413878543565561037311901548738187596841250007722770903531178610648453585846491832079509870773013144120127023453351364900921705915874918321915477359822165967298331037063488090682180547240841270981534384748062667719322138040194603478966979449583584830197651658481469489256371805321725541592211942071048764991856243140540273765149525195910364868193182121666668004654193823605259756197265594857232028034138791790633741128802575298780166681069486996302276707226809221496580366508325188073233616941241824795660067983999969051715605162200631917117475814284503780877537071262856194485212693021761411353850170151134279712028512848325821938216868160616885910201117074209889734446395872985877301612479140729090630941709539892645358088341287494363538228139498165543039614599014984193766950082053075422127414819144018380709448327731247534231067022481738239941850395545057600759537154885753716461471274730131845778717004243218002346497501606419919134965011425601332765187544802732843421621443889366507554696689954221039847934818330304988275946227269185633234512225374261375445292807671137306529091303897325556557865743605654405091897509498070792354050166076897146972520940297860370858433935127422648241817181766530392424933778059914435680578871590120332511386907901211704426770157936429817279738138999833763511400205471096269856134148857321934766654243333537710402752127773004550597760065834035119333513099581263483425839669906757102962489492855442855960033079363519460159136626611165202157179045322501855746577251823782025022278711890090365412695100896344228081076686884180646629286070651065781117677078969225534541043147935629656208541126552703908259067164432315070911775948347899417745587009887705585732311544506890145004055055546099672119793842851060221405300593618052938931801686723809334566753946481050935081070429603036196179229304206956196466816406203857297109573283737395798971046580578133093287994519991906502181384408135521659047459911465621633753088632334762363059328435181651261286525603333433127372044310710113900559736948061312637110249352260985065563987310942594960648018914732191721472391136175303124955468389034548621560996873189822489077841905745066087588733299269726782577903959336162391642232793908857730129368690809534727038354753912923041733096172124901670481576530048156259583894950794584420657552142016391673130096780076381182206761592049727859025348917627537930000451613955633109261291275413414250776189506166805428119457963869578104720592955634849970118376228996772908631058591046760745683098514278604680397171364210304698656679607028245649929677159461855666960791039960850098455431301853447313513261873422709531159207674567141411962096454154960920701120594747888306775943111023563406012311003761688013125781108390296282435494664835934495788310928583312392560821734619523248794881707455559353316547619296394495616579258698355658781465929491993269046891668694187761705839509293892876151171192935519169501953007499586703288768356536299663016889359140705087004244126048411616382477632264891530501610970774972574071088324985322057876555403297282123126567996131309782465864054826490136058590337015087252143330558579114648807121588408373673521126342258521991511516906883446491558982709561737109365317125245300387484182904644688290379198268483004905706709165585311049919163174501654271546893176846587703194462075507989794167725115084427375044637937289891700959793582538623588150326742951427589852135435043764186143701971277580070327168977755748318030654734805992283638599271681896591264783109858731970900556893377529372582332170547743096954898850689931845061954308530236672358882968047485678204834974028752160321489124311768783038979176763950069312161335553905548539871677689342433690975882848486099432309362788670523215939787375639667379829576034025448469804032549183800718262853895233935938459415649618959674200020148677377509901493081962194749823404233313281766115634868632513436980856274747802902427336522436796950051542427283924097256597547029739963715124865690830610620960765907419813460445259066520724679331429616179375356551662576577245551735196891572955852839258077827008295197435646738280984549650846821704121843913056071898240446713506053316907918527552730111884538876807440761613284223057578338193271226971962144552265996483105586119454820174565072505198013232806490144636873305174140463548596234271992543420357110053806889796655704625756823687943923562107219325169121990498605932760934816252640980311428254557447770160513397412677923134972846307289977783147374242573668576926985789568816756480123901478246603814580797701290185377877202659088532894278352396606278153308330159612546127741121854987361832974533348078228672530152637052490100572121795806188350188203350116036436138112741288953392450038551981204821135290050050283217946523967902762254106522122055715223646757116611970103858468054185233708582005445524756563111964240605978086827743768528377141850685402493382943987598151489709314651698784458214426043884885536450473590227695927295852228188927644693378157222072802858017058840427503092967762191949183935894219845574305333233986073510868001915706544061999895535532041981966379777611188577388309767213317910350918490241756717477901412231283766807580221674866716875535235198588141668485283426525821670250215251571595941079666952818523718608021078850873276683558250323667395528594409141168767003910232634222038518784621834346576053654119695856300226141991000089175613795454946243658344571679252690294585872668692223195330588154390182387789092666566190478082623124803328255060543990615721829102224191279518836465074757080450640538779329006227418555502465668764906720925783142347712999380658975068082756777078077062355059370698972534147230329132886256732207680583289892015573026510510125532289830321789301923707980872846613023924824197041914531760295772105856564416455960428621877602836237164518975145997932718542400964779676558612687331961665660865470939687302618459529801109430044219673694458099557295469458071714825722073652529777809387794329851005830167971860260642578737725696896566692608856116721494714703763570733256136892367566120093956813078928875070145591938986029376603823312812074636688564171609110361126064862743472540341322636750884001532786149444499469389616133372195078053551212158419979976913470527433506078943763812570559919787544093982651089407107826227301937878632556308407440548576928870167711435596886123747792388307971083613450703578026794144379066814499405574607914777524492639496503587363017713218991717079469838877817860188453555870743865657172558503007720617022014208632986196852540428169988094242168075590390729228181691729376550629007400019615126786449634815832600675222346102206548107979644375355788434201485439313207491855031765864073189568076281370127396948930047448677063922240286446894138232223719219433653632093792003826452700401461918383780411355698143761066883980187130463609719204614604419659485121928092285870111908568791133983658317627379553408420438143282010429315154012536118560578069999544741163928490879848433352081755493547706948408197235209859186842298289269653337296140174608014721992991138615106021337877783477454051544705751568472137863747477354234740469437994616454749007020376434289789152046245078454163739973093783719213953732502714435729970088167008601205567515230883356925481764146179679111587068985881807961656862961843379178951146474692419252251898086921964447470851923091569179263056728039713120022949816743826884408975840025576902899335355127679219763976318828097574980065791297216577635494418663320871624462521280661780418943367272723316304780357166893474656790469209448975015376148713420338233405453101175200947267160023002376517086054207890009837848162087115030129745517581048433676336471791069917567219082817201972170766665795357060023608623614908516310239119014992338552829946620857183461569559845774244529896552842858696774683105590223104731553719733788110873895204948464779889208900124283790178844523925660818054691383640031652467734561580714612145622540691213592423107797780313251491169282091545991623278022479578969654274210764527654931594087931496651669490121305004315242660978725537299076760932586074393232288652692372499640764050216651485054262524654214652165581486585903995217947303520507335814125371005136247270210454187045156495463538237647482679562463746204149980506056977704870265566633232127905080337958268888369514106017977416702053346227466642028038213798870814871755490887209204488899641691265392863528502258669523985713459957465681223983116233072904486086525471554321461791707723003463319327212081374658902079105117744654085090437332769491847256065935226723514254726646976470932641177289587619287889280719008504414766773231780319568341183166682283578624379987443161001698231876041477839629805305162731101457274100376963528918775594703105113522503507873251328964807290982718650124083833654015162602053803389104665031295574532958014506992022671403332439454148056761378703262694975092108652026022554173651818727919056995281511167939722385136176218446117384573954221059355158736229093134945208096129961095825233097984888616348280859511204593705381808167980141663961635585732999386169970113729568405898376241324041204199227679777104520643013777285355199367925184165859125670835955451671843734177639348099106076481205209822398859011140422810939423724682360651864412480372837421778405237477720189208061193415670122829704387725731743091891883762451528241446498801305998051978103122203301297873753747219648698391716124127955845701447401617790518225348352146078354610197726888864272601459963261083487480882095876260532024720460663061328187606127924125753778046795558045756564381347864346831731854732150027281445084067956048648770226555404734450723615214980339889633967085751569549082978467813695293914619821241643301651952909577259669825461695124937679577295771569774839179377324790292893853566819630027707577154103528056047599809320823331696902255763562040116638690554849140993781911930756413945623720868766061834983043381462855666173982722503922121390209633552976432167299616772276355942962341743411323379307811815985190144766303570430154048977059546839816839224755081698286876478395939184576876230010781953911932684172443735383084382538508540280046481767561011192502515169767869429700790063857225094615335511465432314191805680770440863648378568761492992819859776367446682009504478956903698979046956751423182949462811563550476979316083325705227517100774084959734186972315854506583944594460238948154167792254487146658539442822544549297355350488117402572122908808327994728846344629744935075978820774334293882937069063941450621566236326910714471218612510098439389927457979263021476956179332765058732989634364821560260799302868327724814947487734234046230313916649662725296098523223930651173355868487704969968691249011725643732506934359019929069012256269204001618455836737530704685701154760386818860211138277295377646971601059979940726522777675273939856933656134466238810712801948959827113046050900629466060219893980160537119120355756217733292664951041937456116468174543143253845857255977570050974420418582656328657609728338214759427367193720203980002303754369366350704850103207881876880999238882526513148143878947742884467005770717971701813237645306539424620183629176910977833108122611697753828877473737713663366007181198776078712507394577638238900146005752180496349636141151532564928013962102857277175721305768676328285818976839182570979744430146974382259977371638392991958382267108142801421164218001200193367573849980132734941395871514029399522902565256048099222933450703621882284151634150342181206998832951218438735958782683903071240383671999957884713431700230161309799486418815610055198365232250743203091354772688606965048710545828531700910195364980015895495921466220825567682664144965402565235624319088939055132253246512999987636860168670495352068306416930295256474986885406222603143163114117358436946887122854293091941388908020625324643050889030742621770171684444324716372430173529653420120088576943166090195940789227446790074587477782593846870672475130595587893557528451491658084856627728003409671913258027551020036471427137441265418089851143727753695760947699133576837091510584319169917956144738340572279345299212151118766306013406133014793199184823483023830735159049479944846636238902744777296939744547221284217988653991865514701383721970146005115448170288891052303530057247993301840685928028431945260041463310412202789289471884909215350910437653152905327833222300780800432545093839911503729080694824628319504845194605934525371565471036183678699063380511324716727423935471080658472056213638549218031071700178206668501217961752949794556528060858599547273113539285359253332465114246048983751338999177004290751314135050974101062774296935071946580411604515656383340707095786516589146376534340997242316559871341801021723442668284588247956617241336602402229013958890723577872508978963215366279027654829488676986521960231656998565280181951491923501311698702561669278693253275368704771660680341229061380698178927792930572771966437938432634609739935131866178634931705429002695002629520520349712534366971824368125681130779736161332990765576307807681606207207559036350308468073846181855388468292985538637309548090546296942725657868071836946973357769976195125373459428205137228659732342451143171264137214801916016102328558542133457383143951058613416575708446962140708667002019752995767544531126933225277872860786508315262617511703335528825541326918710336472072204827158521812653151113822373573754386138831133787803474841380847665513287555178149384842029262135113103806067590992030788448642554638470146474946841350755590605560495090458794645630703661791884749162207901608142121377830485052315324976637056664030115733594542916353622001624959653607570451941133388243247578571810819462011140861800469971710304803954079326933235162314150494580016523902252039314731588727473552188559113715289512554958545258317328608245642078631254461796892644079903047178022305843381840504107875298137349831782440667548061689050312611983952784599723295408896300992889494610290822320893943559811006379664418212929487036020125890133914999093011553102632053073911934883852718137545726478167732807326749523497393165008301502819334716162060371219849510781663750834273115797271058155201018030162996126147700595499827662883978545481479064549466126250371143635507320976256134614500054864694648416783261412653607334028026741890735716018619483314806471630778776264807912656063711656692549826010048438169498482926937407796522793201522789329070792013772854339342598036824684030900003425054367986993649326247763120377292353296070430391370005238364617140382410324880123067295701047871414360994153116557881155609615598789155947261825603903365362420537532710345804090352849880256481156334636090404796447048105425620014963516040652642389151974494556512573416004014376830378641242979435306406725484640035892225806166758940188431400048989978329667327706706305367197312488365402435720567275368061264969550752983711123114302606403577007506342656745235112969479849528769098657774310203350207356060341636744885972903835686490780777380234902552406584774160589038396270365423250820579286319786434148073633632787875988482145839762650910869036498160140560635341095851230062797440619936523475241967648477670792434438214503562008432747585183223259508145049483590320184014484497522954684625255485440921199455853306573169187236668216107604657570343256498239091968675360502114613666343368017958810626315313615367624149510938697595156718782423550222454773006235682548144694754344002672259971734624310731049435532930871448967562220641558793192789592564474304732103335550658080837826765603603551507768132176117873669173558159129736068476219638433973809926497291193893678584603965319497020356625450373188586915492553811405658997456792561426201933900706237369257469326428102988619561136957291434528261784505561522464864147211895108134152443054060421700894259456268397826810090988687888591097742958083083376141126117103892813054052215672768802533157616339794995297225059396176344467041198853801101540404657389780970439941782342140176338244785154173593849852532293390537705238983338622869942875126173662176674904919694147945025387573092631537048992677758925258162745795820261756855539180222725900934490556328193098008823685692866980319190458705751985127004412458802223480063605589484082599854939100866659755389469799790811299511180500004254462641890311696849974840838583617378738682881272632315077986591961307679663179522191548593107012162967858892841524244549193721462642273044168293736917715659832895420038525644354502692549416142927185244329283295088923501764610419218353779097609891761544338784589132466353091108436110280784239802213513288017659327104156966022186724450028261812592104219608279477492139170203382474684166752378767887541492132608191938351255166465151324185715030473585641201194040815498352139358478702908594475593946853826160026098385968190469517473460114637034561497889732919220799015322255433875275247499993568244682473043856186656796736787271226698712171346162391215487964559895352978458610148805026910497562759224346901905184579646685446631693148327841082291216184690655020738720401701728332023827521222391588795288155273182300088474147421482139974997036745217334031619623173379855621282395286897738253670359825831368371609894631080691459890190628682441997250711734276465885626735858447987778677191176722230136801414551778146332816354031054296746424386769240563393008517763759127037695654014981532734443379932536713948253391965004795172835265051954515454117941430025804535590387239191013438778083296645368881020335822032939086648794218310045542581283803481237012770206064477376866886276116550976157739182681368278756294873714848447762679173758122435866710572524403968362071390301030735064225178500056605911973659943306538049610160709212196889128016816499608496385054512444525310617741120129593177446913197941110919064853732488405155720975754345801327201237073506262946659826464963985266358588423359052217584581209192484024597768210481985442807819775751069062784055513662191157547966010166863253321679472014122751984402634910702543446350298929529457497554538762436784307837174839982342087893280239626666057864108046419384493548535587032298674465844592902626181850038637901613483310145852357965697103792037865951479240492575388825493776799778981602511786164738781851468527750599072102452302429720768369228117749036860017649575900773987748542051398612138972622127714321003597884322717798373862197721970779784471810934489560453517508322677431454981571134758446594255142150842320226833308049235184218393713283077226089473662674971845945639814832607359755755996144487421118505390469648469927079620393341755380988301036945898666519634460189577070300658536673438667806574230609337873968144134644343927363302137453203410069921091594271590722749908045290178900737326207781744750809206961901562078981567651850993109175565787115875506663683947488026499741135944115155795398926519137472303135138064795090905650479803686331617237389166146132194749786263881935930876060669373072405790524337988511498683010630731407244637783497582457533078692394823568124015078279115417956972037835060603302498236020322339441889574348674025191410723399393278113372743621439474908149827096616088740103923807295562255853773549470462996709968203109370643171182083125293930619065748870661037392241741561015739966436668856496683353538115365927994568149377052631077888935273405850531308174324845396823055473368741130041879638690130241122700920418175910091859721822909490767928367003054007789055245596139154736499696431151985156475700864916847896226628087570977486485879747530075380682751620791828842474964375014279380418756057156622396671929998824929672220062220519521261868962728960843355994588383098130194947343632740886693747198250074313218270890396127082967673443406891741765994872136027622317146451093033533343216950650917702242669644938893721285485205566059981278206208615479549786744004046108372893184641273239257812375332211898649780947027165020862538357323021969769221673216878879421279447971272047549637262037762082195227579301812283933331781034720916243457167538128043787153541821789818515470317466544807355333615229935514304513979031062798376967264487747503394339548752282631096342909621543375691825577233603237878494943777273604546591996304177701160971960743946191421230581372504938274626246483728391533319293036268852851173504862113778643090412412559169999995640509212345887723458969091796946576475387428688821258258570235458819445237720003487029098748950610634880140025809735651773592393908050255513783299218049774838419604158156617784328372405331962252678973147664032365401586364306684340671433271364887274103974013233668255208964490477495822975735038436036118865573485681278048663212365863643013649145723988090212553556877608016502450106781263559541949802200596311241219026382487471706422996131579981129675876814768451602858006056355826456912831217130368678181764906876223273616054789272762163078315424619547532264031980069755300417355881505321510063371728423787063332436742273660624533413845812316021685648610760571263619055720394209532010285446174231559533638708827117767160943320210667257916060522054883235917681116949479750301563824471449113070109075712083104900847406921750830164605442243648863147059196865942395491049667062437666791573454006369245909586386202212371084694744199029252719385895071696290120746572855462401029408027156953677304751706231711026490985156643032928135551912291703830200459267990992222636960804651872844497303128475460702161540516240018785330422742245291344999445735906381182024281221326492545869045077180308134415687975481392702332352693561229496518166736049856659919406095713425666277674264779729814585552227299816981849597979329999645792558756472737797849703358222613424274973905027942490053941965873968063182007523061233927123059720202414291265595155564563505266242976662496015055758282459879177422709897885817244005819460069891772930693787394467307438864286397651964588156393221538437971439418510579996319363986875617551833458311223717388115549385902931648845284496364933041327303876884061763387148845503718856511414388070900881901490120603620713411782749627882892364850937471879126973275413606280747752757184399260892732176286883646642248085010344598826976981558663083003770360032166978410147551568064416019315994688427096139832610230690327153047619372934704523874576342525194269083585037329917963962550612046255464209956113709418937508077373878893638538938221755550940695673657936832520588740555696179393135915874980368291281235797260929952239398166990612778112426016728264501637757683271139212597148978329398224887892317024203807950693101228612791619949877460356041442905416164152687422558787609988638212385515976745152999669297502469325893133347249351489954148874854696012334052627495321266693539475013586470714896672145609047540134067667292910822739746405749231360726339750569182810598880261496385946753584850622257292699566122327298945474698955200295078395024363795786312253929645271908192154855062054753303754901734824472394114563843414936913094444139254106989011590028818037267533342940647104995849525877946493597352842946509775718574381395638072547369695004403496282313991688671733759744186561249751958807744408479222343907226171361887057341883716775693404938570322732391864670068575573352081166101678771340421698853307300795735653162260557086033966880319116646530835137092375213174122152268598323281972792792739288434460966780736052233678686606049072711391889815825653108805979011750462760690636568119334617662998888665608000643912822922250427277116378525896062755943163591557307484455126002957179457719088421906401387783576972741906274857203009948759197812622507362772839864193576064221353740370154009211641378710614452214152811734780195006691541794086043003263344992571125533586207933896770547355311965446240422117012800523414459113857612027347579850184987037992346812015747602186154106274552204466090249671998719207526702830747681885516284780397878008017828813343780773202803977023696551603882766938397719249629971476315629396278362501592967094717207023898997581862013599891905421115687220718365120610299758128503831948455095733946321476226975821793952057421762641670269380422876654839903329835660773401499769727068029746174137532689112863528307855142982923147302006052339633659498929848594789914266964879896497414255619806102686754883567468598588846707864401291472002780256501442323223544890008915910347898516691546278376569317855580228156501222566215133024640451524316192216107299820289416291552392395197314786399901990091887118485523608749120450097269047589354739450009360274108315586366886362549021599761294348983192365864092710583238998712140478585322655663852240739010336917136060276347386250977526497507641946639506294656273030095913933353415595351327033967453194794280254306297260235863425385760291423174156944761247739777750507535733061575443015811423442197281804812148425220962532025841327162889889331954916351063197943145083251772418076877836345697670208485815860435547031339678573199067489123461008106637727495952320787181584833530670404857191874160107580396914808087502048006688110349275916799299173559781556168606504846270658785875866732435960577924223781806585321243525082949922939752043919923686073425843526770724566735991075713077622572775149030569492696245370198051976216199320687308068821077720747007808575746722026834639447375043845528541358226946228524253452869880689689392680369994690715948195124376728213476076358198100764168876268309064006958832024338373771427080556526519035726841297694331860185545082953602982522538769173202489325532025256129348706588206495351619683400633209484771799896138514813873056879781155548031841548460648651685673929413375168464424971853015479143106393321299651405505260269073277707546569939553474011916728733438598095381818045979782107112383714536774795624249639601927793847529496309353350925937384458753438855294546256250055555600151352315161118609299380877993662791582357159237174848616031165191606419173969775204585993955746165687928355181732573783705154229199883481584281339765389637904991809731812197610893848287463295573403097121517533989346918895662716216527936845002052571415378209714081404243849916244765267271527448989647702903571198804748098029036472078018212852002080749587648472552155259478126117739813195306720462823365643700652245588411154826076712426286127268973830303314967993029077748323867098611114528029992989154980152533567378897208468069184781143981504130118303219767678403125607513046995130989585066704580506347895348700272007731297274938570678253502811167251476672125236146988552933451976272143896433431115936702752993907978177842237894577366944791254929072075293257207728561466084588115562767601353100163643839767526261926746897459905374680325478055023202071405013652527526310085765517103046600743251518579979438738989512628934052256154403587707262011729560020480759527796151892966129207138426276147426252283250404304890733403144579925011440492422267053945350404516376879358616358679636934418113907655746106944687224836549452143114497101710903730664306529669663730001742990184591966981540149276705884471046989423512464844767630162519475147921044232905804600636672503990734005604409785124710915320914381526272769231425197249391964020400418848754532668000516751761904084490941536893956003421466679258152183603563131134251275565183303653025886895089008905804607724175800686615358277690325046419854016224660996560965103306691026406425429336450822179781467765947938721609133415827681789692378763509287896605792114444161349422491700937988110488910672959473204410662564575629384001780868380803745203476108872900147404579230689533607700151694192266683976289327439970098651740768794690053140493098119896936311363228041803161455229138463716433811978994316350885856992913520473919339465949828472299155748991689743687696528099330724528736182051703534622540402113587408964040849787203887205435606365974352639523522941436923485979482245133296922065028751736784434935923321736138891596632315351415235286810237168677725081761611535493128524289177339141196157470118265781088741003076368117533075572844115678085983467640112950429626311669188520996629799918494195584979008942725849076806005181200765806743043299897393453332392649588733310484566582665131114647216487944888736475562196887706021185898743913384728840176881310100486974898792952327339100425861333751184503992345027639929872590401897102793802603962993447342791306443957306566070997912012038973812793421320137720676321003608715531125849551671030488348243194110124678007725734605787228715769467863776608452690544353745021488183767686380565753288321046546133157206984382104422768220034271611837933597669224578302803448064271944400139442210894905069408596934522253882473211566751245008995878544245933197398906884496494029600112981097422612095080026799186562649745972358066284285811758070208422351648918585792668387830716098470792204637004760641319579321999859313412231837541684559065700116550527566674491365775301271991940593493266989990686380560318013456329558625639871773921662513040831658420222215476093749531346847864404491069532513932496900394083332371876855420879717678816804789032374117807646309967651077404679474740035741383980753495445293157351229649121851009359040805521319960971821595214261069779464456640000300184396413315470556981396231095025363300476273837706359606554522200586781517411755399687584886408513178697110000866665503851108613268384111805219363189742095867218143185006752526208752859113783383250515450048940889528949483820152034941426492171655672480857502784360807597208862344771955186360766708647169599919993585087575902672945651460127419338133474680007469708679003325214033677057052495235422353410622373955479954960194745634756732087699537236771680639765464967541985516006099422445240402043552534454469216290560317018181564251731096500196965327927401848041693505606356861638599390571681432462688233277648720876414379331633657137141252432143895076029166505070168994683316968602911243283193206989554248121047664619943199616500397236987994832711934907156295176280250189528246984320992468296806178253873661614327872605280860289739501066006095584244267429014273880564323149140351882966940392411050297667931377603245861170578291453250999211834061637442129991497358268559165747012580754967473523479996015515049654687138040790464319035604833167488873337647141626322269643988281032946727500981191375900452726655036801154754523516301040217559303985771091194990228884031411591975928637610072420418097491938602075713959858654936260144020801857269565268844722835035046960158710362169686777058016782205233948766383358397803140117366504974559186680536009090809152153082929363329363251355948084815608578346555006457905018760230811751760764833862141175508770103814935964241090650832850008251516956499700315129715216492554102344700465496606199625365734014290220201379137104517786658709364034609819752800917787828947438678651927019604669280577958719471721332598775012116174026526141457625285984805985856749266159627934316660666237718141389335310455143958267920261359137534852039339024721711247823216230973744813053056530074612400721570206507802401372360657869046793744742812719138140790918500795221246513977473016007960258907763894799696490074640427651364288704951348980423067059487245705666672094138574991840316138043593400738703536039368073595765258936387918721444183828348358741263917926537311865593557410768628025880383631938243717963093511750151712216469405337201774480351952475476983890897760974104340881969092133328048660441801314410974744482849444702080893615366710770334842622358214235681852379182338208964635512478848767848714805745167073480704738100865998412005578695482403551930704793602150288313999028643728202403756602274646506179426961174640417698611829413195662274781183660868473528758869816862577889752743007575884866605069290426408627765967758425219845844485255743324655710115167420934034431471937448045850749293604412427005397488291717112193104387117444221878092579463517197466807442471820050414550067203333107799454948694553916895859358433905866061527155287710888829240833633945682020793942912366254810120885343215598205728043401711599643688763575063917696667924909277314244346293312855174298017423646017223909024133264956377781489648142556685176319108833750832977496494285237319561676917451991389540601213415918524000342779951871402952375687585345761856575227004463559964189344290262164086352012879351421540433607079484190758122950124698680515581834679584522873062449244056613617708954422115751029793645540864883530127356801658837969181921395746522022607652778664579413529327331102568786727794844447462741549266103614184578323919809199637026849870292978114803000988925571903372797818995792000648583599996948113776959440330067316553336323382989319341281305838255942121440126668917666420616720670418796418694319264125823138582807653639303631954523178428364078638197209285869269723727721408276968395073416788275616054449168528932510519615700228441743231056402548541067173229649632738621948031319277182909191941641810699391626000892230532288572070910735655976946853075513851898566960365685102693857622179619666702849372770939593206590962919016306923905381503128736761310526073637660150714448384577636411891659076035956785606558871618020292308153001477179368022814400014430988017658571201202345212787188462754072669031248652968680453835081866728489741988694325809000668674031633559636827250145681925705614647495068881439986877906068349548261918667039618295429528883497350827809888926316358987396768013363093994149923941268195381963370918885802781630262145643414443881130617689210958439460357546509825222887899506891608517885869030958118005688926686733271989856291345119028477518871190449873163756326594505322759072628188264659267333140000724455700356039666685257866153852170300423566662786657809179826757332610522239253591949588087158841472028544829734894694461331672335468826437852956925313767710233924676707994036531180310306344746320518656106669726659574310423892169586037510034613607831258321815614655599806986858357606990053479909942321664955567089057853229869092210742175219090134819643357692879233116110702378175593515900966067089268502351165620890530829224269951020029073921223979982303765474889957574797687291589399878205450400389047584401056831960916247547369642015792248467044694412068338940951365382650519026477153005267311078476944592972687267238813041596998098904062235895887718382007662880340268190068485192455575989960059701436465664631291790980544925428362523873222344469874608137889440774223894236852005356714077879352502063228472809687472412838985845791483174328072036459709943189280520892352963733844099087938374267741299960923055158297764883268137332684422772341067339970874886985243770382491958770927631417489545154323500921507748667148980536207386574513771444949598520096325829144574182579629158160455715787190706113693925982462438328823109536720411990673705699894500076249681840248106512182494175714794099622638404591913064726457377050426155432701440272328947258204093062056021118611219503516456229934054157241254897964040199713135971538553253980117002157510367656263663371068287849182767017597696890080436899674619197429259036728455480346232757958749606770806303828371818747356108659175147151645517140260530202803640557009243415309868458107556907434986374650548526374025362794937663812962345899917204543627563109769490179213619802623498770832379059541756789145627670290049007426515099500369263257726837120353517312578541285508702217286650124477834811429209120926343255357551243904698865868979000960332203147308423472526596758885947849355475985310335586758735224904406235841756724196232477512080831215029627999910361613196710029686157242032930341106134120898742816362125501732536118594101598939220437256665607706333044109347246754737604219315734560084862074262855049142076417418327319685454139511475450521786971005471606086450278431430573597860388468856607245837083726686809996215676012660781416213309534811668997900557534417638898105267540031139169150532878620998119350919101981439235011129674081618306865217895418587459003395939130940611374901410736803240922880414255283306605887916196598254509795423958396155461036553606122245734916359384667959199042541355264272222502680299854998193099217953881817043270176240143647067746458408672247129819915372920198161649510631495271763399979614545764194006894902812036242022358415522862372646706755532119658454295374546166976089379429888013221593418289713721562766470493540222154643349420283888703056754176478306272161749499999124010098529223229948250985158755307726241869904899218466283688998602500464212454279674239233220515465803440492209294931988995625731786759731382022353113392629695524543515119045550939463608026280732843651440706614321149386908399564729926828089339833412961539552162397041200825488476442377284108387689600352774170791475947684497921315498255630166549251154359778031380356702760268933523742318896337992736147750920115154203795586275380267482958140796219480530918339041687854139245178200869556004273297395213571809136625123260954764909401556271417854494517045813479455194957256783263340866551105094772617250756806633081846287211115451970129407314221901951532571500969336268228664919891356855964773798046541117395908830421160187816214968500594107607408324455632289771465823671095710807245950608538199375443878698827538625337112049315379372328384376549213653868845660624080900363425649973544872067196042626892336527948701593958318089540725390056357747831486161586722212970592843920454639694392432597711629137271881387580838088213031197444619451245135049163643381283473913593570203318023913470484901067238249750692868653284592545031987109401283856022283824237594392698764566976464334437388237834872710887701307622667944346657919383481750624635405561365284291867581676474781394794508395691421424329275012061295225311983329570837141130912648408615717602266277513634067487395969969439745318405991192563365680333709941957583118501178971629711912335286305100158765353349107737423334539887925206667549817884344461538331228337563085939647986810570722734028135227052304164718089740105198317526146547730250781237514609905114093329469375405203962374763472852910681562249429751334093444681783829093494596891641467444150412654536045923659700034945040450554040023998407425649121245228311124690978568147006940282689495943157354107970877848426041518861895144015119305887252239431779818132012565681743569197852286898129124184437683132137728091754531585187254488959914986930229623705842094945926320835062845896971508978760017478974333702384736733215363672907614838360026675280717566710403750930791199217132351294921902218611065857311575440801551571590428627093424834124125288883225491113788938593230236184233484532499960123697806206945628225261719481383700698540728174510066918744565718206301285804832583958882212818168868360891028105413869633119684950283418897104940475188945713971342942369867685923615573690702648973262613187834188858883118780574370261324769266619148849746553141524384766686109544855857036742822127972044634548930270647409273487669227481901002877236221818467601201518422787247778071016041644023846116810379409702949685128725336922208065117292653550402577795436640176259494334393086224356194895846976216151142664691946998628616134111917327331380322302300645825249668431958696810078860181264568958615386289379473997310479054036579550733699466952831666606798422799709234987039030613098844966391106790679847418646248636383947663491686023970305486332105675390914314489273753307136230623915204870345104554030471275624156513631853039153680347038738092636796999310727633343576225151177223691241524661267122239015387521786635731978671046392879941594933075061419344404626846404546923088656392688820559973270947358089113237307762554100527951313907533740239035763362908922834566514680280829159076309706181612311060037838295125168264425515048089394137315105659495473438112286920832953523243503741387103067051888880530989203641442071980661605508691902415822679112052813465815061507887562182869287485558209046741301124654941511543403535312643886600532743656173389032629559037423176296398441347128653112334546634421993283675481020934872022524739233433869200170318698736880129439920487418081114209910647683497644780824410291677839539245255969058267735302064608741488233510237379486580262601006967846660185222912577394472204738974187706969158490499108127941469072537185559723672041682826535955731359263713297278591197699619196421657034849810955265512311367240790553988326391918814245966871500758747030554842099381673423314807050004499826105756806124942941010058032682820165771065268841837451429293103275631211578378575902062966407472711790470876473373704813123995592101038784993359023722695162474822520022496866216398575801090624656334566030819260336566210542021666948563731145115632220828992598872927946669123431475122537676840789319916214556201047857264978935403222342617901132531031004698754889365047064900756439382197048614638048403432913976355927667101799931567498105637035999681707433279151569810130918838270307736138220440770359764269630160255575115180675560764339353979596400112173862882360714921804961162901837365762805325747560483827897182355555441455078627069796765321524291223364710642773080181698095286615079988291311436011795988192291500347879498389519577224022816364824542882463970939674891737612501076632930834716907986313155978990518223250223591638405678843263930639154697898158334781908406742732555401785258956127802861257718688115274472256698919524831639648184707176459616419852956133754547450380347242082197488361211501442350760400077581921768943343069267245943418840998289129984660427431361682824851206772887469234650557453291422468252070643510732473572255332412089619154266037998967099260377172877574157858252321515582618676606447465283019302875295176610570263275972849388285188325267658493506781223177148143624535580402548414478319276987556236814998538732017272290008361530429009061172844324310650964719363145965737379527175381788408567247348379948568287834116469992888905068539178607045141376556599562980520455602803314116984846976029439901655581323645354848588071614277671346908594941162892397270167538615718517457041133895594227021555762569321338661208723909775150898731950246383175831769105727045141150599679074647914236691903701552549292400933341934891934378160599166574431572059831542172692179684600285722564443938943764058070196666437969971573510933717981402984339153062270927769286694804786994912847262980419806915720602026288866907786637633507150800733668558456771384946919106609936905316330270265897362561442192732342469758775872203439298112237926932211505655704842468715292155419634003581021386987896764209445189099865444974158099489336516846236485237754034609585783677455792330894195113843773481000390022559923392623967159885143097035821633711881866611642653278047027398337133398536737969694597328676269126006187843251812792992194144607101783490612962384001974928537261459413814382855861323439579447571708750456805042682771057472544077235486465663282105005913491744787069285481157271543223685068310896213038004975989755450244103746598041206080128894763547049261625850975035444584075486289865162399696794471647397559242376654189646632641414941747889230735152982600658404744449199979000270053321973174778236429910918927986512363803061578152806073240069990046859660287803275501085263022786114501838686690644010666364556235574230878878706612636360666770827805032403894654880640109154817867673403507507371758985793791433958932219787645718338750273804286972541210699518829833022955049819994676541980182089989536340656374857029463640733213142610805184385631658006585342085406729131432377129252859321226567793143243426301376817262719799765003673938151087812650651097744820143458045962301689992371843807540988457735346100177570532001141899601814738481336274872009984800881031069000664318946291263896542387205708966253818351448359395501790396813549974125018110096036339553029340576099302254012646127045941148566406468544521017138336333963046073981547270581353365995770920143139481488759790664317650938511349998612545774127199111919062932898338078725372878893459184568525565886345914065825845681470010256156158267954784100881692706245620179610221034786922636766888934284578055399379214066519547765619201083117163683573228856483956717046810439257949674424928378820843122949826700009780465976969461872151360589455800522754024083433655961776568450702819565540467250960049542846754356795881456599177416315792154319403777863014713295445377183389005591917469394110191987744420866977264782697358989152172239591572252359513228700305026168962575065811498487465672404684522135484883021095078756220711216530685840218222580796571481315632208806412113313989579252915598779448467401079451219596511763679926990108118490905665841922402055914747285590650131987065166050786845432675126853021589686172784137813186201789618995582523751614478982935338102172109312639167826741560619858916317135176801536403461643071498244573124423439610328478053330857838141414799022777068476692032283010862714797997375402202507613511966652592242020144747914968995218171095379547944671395379496530555307209225266675047205271756919903308337605678233203943459679853937024789976663518974403396838764306294484019347986358618423274221363358328330614462509116217433334322873219825333929267127814172288153369823939628452987229389276513918393197247958655284688780667745512990245895924724239659422625786059698146652378504269250074603860843446123423809951309323195531153225121097175044154014988433378214601193830642532813828924084765842486782665657776289590591618634869508752231575412308212607660223379599964907310966530466709695854738339864784386713307654255048370376766105192611448282322460086651256854286307993380928637678682156410166619765913381452455632418025009261406751827252616186302841822698489335729560331867456614141441770580421787281675246889433803838983683706906074377954559313998293758750375958293854582905729625694377107491252176509740323441147458048336675110374120399171725954797714899101286183485535217700924800744524385454239663837598445902484063859256068563280918051820903907232803244219204358108440252210057645426649211725721909496526021832312614968279752834615366407628293752723438660453046933761372894125772622232869504202294984422438172698837627785271459770026506039743376703139603109215010468885844263793255656479413258621642613492774445126671429067417608964782460995911690640598170907339725157026345790743276604498175164684273381410481138996301286541803673010025985189110814428182362265075673838981031752568629836911743128448648611793243971778081419576280724945965552922229088219509699296805952093185505414479817024035963751805868450434626714266908599015511525524261554550266755997076048010368904658342258092567989005590964019408772559937922431338524705159972087634605354545995936042685201253269914924089473972520015028979626089635401746079776612740499867177257465200480602366148099340808165420200810702793446138290062784664863569662032400580995185337674740315201364250899692158015744532013113608059824042680051388748441656404310787429223330973340888276142887620877902966673438766664632859978618876862648371653364283205965704547927773610297028386417021845078286712690383419340633625547717280108363273347658936266726001250887787763854871704795985800980383263165770606034240563430901136923969740134840150494892361415392733829621221464387250081926069651950633152187658300702023682735403040321523030224013415913662525603561468709718627508733930330188276446248268929271452974346831773933379442668884641500600660906593733967863347549934201947286105727264664328501414037578427892403640318273857138916381532425142710834986113267706898692886894370076866114902669189849011475361259417113285713137031852961420407961894428413194084589972311954748844995717409559848507957887679755652079696157708935712568942249232450677488746717554899743130916217230623732637000182415954582462965012321456677093167390991581177838787636008904125224276672763614501373283804457181466587035570909151122840536049917096167873436780280128346236315165425475113416747720473852352790359381481451132952244494111727602093025504554548977350499247549501775705948814825218632801726480795530633879526660378762338696224466307794883163022440934568949415925958606118240206953624523062513313177205744865877519940499997396977290664858803332021927083744107354255518010557894893389459844529269904129848858567020338867084872903660101011871876813953662845127447529187768112174581235242369186669012718775845304539932422585539957283595870497481951658354772512205933621614692336893019153406792038013945761619730198550705553151166700872572662740804577531412226322282443741810848787986986933111482628598669111011977931819159229758322493523907519115549543009103128263432816507709847273926878941078715638588361214023424741669296053477400910582835160417081389794850302527600128147411332618539519719294322522814617056151152676592319453921095940020492808021157431472568934707114924706236306896631480304693400167447908241894164516479194686462224271276116279949079818059049443687314293761584409077184689857118454767382050261567400393337933381713335078000459046361663278816323562782887073296193108358376627798710382045605493566146355791119415236670666114984472051910333352794869714294642457282949734127609780548767783011983143074122637236825195901879541663421997773159573206480324982829126233462950295889750664195684135627197120920223095106827037135823272542517065426925900517701988128734574374303691797774274391973203208689659503518193244572853901075637474624240327841524196668749994291638460138393491123821757951550144174081942958149247355570657349281686662272655785122409083434060304848750279607506202822771375738585837954409016425532552524272651334007838099997414709582778208980247077697669951553345270020059085821224545029708886046122722761979433760126087558490704076610660659775066344416237914429079489313257881220919775226514608361759320958835934482873313738069253687432489934968456769421948728856929832710694256730864468836384067069157735950158384139928866030257532848888886890485153339924280629009451997453372656055110642528783916292036661103345567748750307037580601556626535405320573571551819141292144978418435378611988575369339079290498034269663186505991907904673654993359316773827100409075148350586571084875460237267229475640722395424462271096194890982127469403759347860336551999974248234129182358417635112931127193237667940603104995614234641746798099029373557465332811351034030823203402412105035390071538062234612133594702418179162058320227181605052663042617620436441496518824815734534779459520859531997075070489509472138083205542138454403187732244743313098574930522152999489244814123939942457926020049234272867844795935274327851362271794268811182819063055293957488147626004027500157390534482936651524570748000851922946784061171498880436241877305837103623403919023708471070145401302954599093822253110063627487606678483750864088999757740764932467632489624415459637374396922508440012936961498136852829201927662801152245910147018273412774949545476111744606807063592417453792851607787073570191901922819116156501281589877181531692151535094897396594977303771229733960312381152537928454070411183984014685290358420143335535639752754258977373534486550368058976383765519307139308082768117694247764810227727439857324787696557560074401558479066200051326379152748213064138807912928738958528254144980173673455818579246169542202112985223556171737759852917990994559887812459555133066437857562981992422411929188993720833562221186640806426113181390819952526987827528115402634698280029507392073752355234444374247397075448514335510034022887627277323401689469341702947977576677225447609022096569602213394162192107486308687293144135082784310325912243206378042297434478492699747766068532515324108073039163382620767441898048554765751611469961433819060849978800591405303076110839303626486316411456042523477289802568457409883934684000921139625085547077351592552683720941958913056495462043701766347918410207361413262379485538715183837154906741510282265320932579141965066075865035558424980225940115027993853515891538085661537278673092180329216170673469470210126945616244835022098255357823604642443983991217139200035452747248164682816257266803639573077015720306768886580384708478376291333459439909393940737610715043140972882465925780284137013673981697889316488115895776088651040520356351902024775500423642400764505105038330111970037399864467367645300304929218566031265495381300637202415642083451564273553747280063567520633583767183316045154791064729062758684530041281112429016007758572377719966495985465123142117947037814093354183139943185095247962954932941817818134910461159320568819149164522677315503524851370060550181481097905745029236798546827445782358763507126836453921359034629101426351266728874668579169982580488526796301433586452336898973668920520623402266372472226220790291156337552352460465058182357150266021131063662690500893214106325680180609025906627963547857384717572572519829700261709383864103110030148436866258063178519237136542436059688417947802027657477217700752524696809797977694544090415061758526198530335418862718188091680741164567526720232868906229905807594504603019899998031955986022150421173422278362811003682687207734543501842332900750116647284901933543033701900368841185032261999587083794179398034507531581260152333051616890932058799430747732893593795592680311508187757750248683911227353140257638220241130806811340851007837041631948183422608390936334973421666475485830477025586894476931805005136949545267602487689494945990494683679704434462340762255077378321281907404674910133966913119625325348971063589413445072637478366594149020275727647957866515421488821152811339269468214677747677090194332798040460741597084732228131424165916269953282099625971302492024770591753962540463485280499874325650664243154037832284574967789082241789315497607472452852798949047735886695575669214356265111379320700813599298329578735060601820359049393835486098905937288141790246255985881089936597149747248094202933828976396249088317507495740676981191371361575440258445795585956868571801592226276985620890431636478888384343401044291993252895562978086485176852559956471513669692650597142813585695925971634874549670557068939536642198528441281050706632396124379885651636703225902974082015775511771057237714554670422311999891964630569995123524003574394046426556856584126365821641903860318854972643950873853954436973341622706408687755062487065412448248216684348725324836189781274459853251742058477465464486986736692984825167045154283866254165929262126653075031452886396118733378057852926486211304065173443020419101376369024685472649770417255178660683627624994217705488707991619265234297748302259857521634591996843843641373119721112946206042005735612884638422054360274187681862488083269988340563284887871714167662361369112283143039008966739680769035308360068379831844579245502044792920272042969540370056349522738156627427764521536984682761831515017897667957490765692948867414709317118169542812932783188988535055151534519931047033294361216770854923944003233311942618011066293218792656816063608600413128781917363591382403721656325126358012165902464378755878632573349139682637792221302922159042646152389844163014204181258297164308173316831725916725653648850136828659534059573889256887690008448564322383835144878845458424082925368425926723043930780264145733635083846762216294683322432644095545802562448642894547554455590720355203095287036508302974827852215590595165486789991302397305041865953094168278406476020382307331437413540278404263028728779250919376499157445962926547475716210933098794630953874596630561061837271891554909941426573350945598861951316071224472701810064494029553094516007777600824969436122742584348883583374236973106928886336773881088430636523638238142753862492846931732244697157639856644628242648440334684526264854009021470021649744294450841380597331514875329404411216767591108339762341473579315855727323871174786967799138167212766561833278260249680036031003326290720409889449753092256001535306967066775996493851712822271554557782518536491541857024093837069207581346302440220118294255836627126181722869498666404013219951785283108115856339636914908034775887042351255624114625573298648652851623867360947053095927476924922210894375382324613969830553017633060569196820659934686917859730397177355628671494182029843899647048820740703071121235846877675074651989704476593115706141384947941535459690937039293090122257416200195843755984418520380478147357187963439042523626081474629615652146819561198834649177894489695788565984293435847353929114453276249226874950231386449819471953130465905015550320285956501676535888570482012348386816875658664535865288971754946894491769248140602723989831478044793687471895073212103732714073036127965907855713835539574980764618017402269298595813138665639514458519908266641609107112688620021274350809757135409677978410053859724720429900125821026803856218151770644584842877269807113258117950086771992175959160131570381700663142537042051431279733728791773910437990749151136377602708406396200726627074250683842740741420397068654787386394984907374035079423815441740828524590950561558325292438363205797040947593002639146941529937897256304501836215937088461854396303289545582030615131138998632669143551842713762096855269711754395927745640791880744127790135610457606630741841711148441563504070685186824441905518448084423334583878616268937784541352940198598398121731988208656862415289374441527056755378060337709350024154449342436439437906350698719329780074446460195826088662631316466980770021975520980615398682069378695720781104068390168526973768923542085723988141077714900111821474231024913957227082468746466638763609968860510441064492049205552823465707926634138262040121095911739431700940261809907001056944758051662234403200545188701578042020068769381831779487951335067177035708534285577374646774236550555860742075207881965937580978765820011575941729600300677521319378959597911741302230019190960031849241126312817792920322151100100064707818878664746911205732098858683312193895025267322117213104574767197742497478567039027020665792854198995927871926285752860661099256498545119926330534550078061581101260278768802620270016336948573465987669128666842068790385648018086388680549467536287180456593137783987613013167809380480803770048505750029426378957801984553894326450474232873412725933825300405036612835259764045509792736375294150653325855936732768852672722381113115335420800742786554922950540792598648343057132985574157631291374715320785305508976175611940032397392346958996660751954916592880314328806482180467576034093406271248412737028420810242362319312046082693479939320676391576981273261944277163123798295609476636462856097215613561552193662411057320767786326595431708560719048360664789094598916127167977643139698220173450754754769409416881568067489141913575005930964527137179462760631883520162874830809608329622236108281388891953095426371694206266394415574960107726733358525950283880470879267366083116733214246268556617228033304751199315873185981572904709920033826567875048359749454369946023898955140745676404824554807134151565035587491219758005012116472171149816722215383878747459459657520339558898324798719238466285320726495628066835880217342999292752162896450074140159068922936304879294113477757088957209153533738724797232704780435853702535240124614206845417726071724778034115092058393556365819601597132680428483345376045528235073971784225540712549779954589315817685058136898455171203834836325425544013832448505219157000497408640394385763107430207996724917114631288404399772582197225020814421248401563438012033948475474682675228480194734601364996792395918799569067827925225909533108867671648458292761307351751376950886983247500592420220819661887181266014517953960331004146992396545781866766814641233581597972972570939868579542730040975433725259067934967796511229079407702017049312875558969205647167842801253313492224747385592392492715359465527879847443818156821667357955327305304938022756854187363622060278378989008007133167915156249421003353097020896341364389712767795025134687068120736933341044297754065333633051690647397596796647256364479860470032903477022885745996668113664409831118982717955794097045377310518236123819365432191186894839514203181096851644826022809200530195854387394990210896782739688817965198799621457115154426619112928992178986324556426253944228054866507338560208117185537975166799993995545891980793038155885374107506407073477587258159207630450200347838845744738454652344455613406909155462388269787669112785414651680714722846513515262558503879075028186059262253713192545709322134510517732959643094988209159960472236641737809398328874104340516926805382085282794521216051205953776388153330622208647468477048185525284089583230189844305374720586802175113305047968853044527468155165550355478632992098182438186971648734831354979441818881453898517353765807478025545413135484255054756519673294594923215497624805176897381347061802640536727795642468984196958059629918234866042150740963390224828732398723975244934464381744940884752343179264181177580845054605226215786994077830337022820175004849430083530946012703377093703906006679441900640032751442190792206520536086878642093756498300335602527585293082647808902977909356386211360213146790095192662708086890027725452288402172908711171039864136505239362039919652186796836717589755905013905004099731721675290088527096460386789126578148910589043199692609865168021965665693108618010585459482728224749421300191613364345732746379919069487900569530420926913698649240109855061196385629079160648935588278114652722765652686815793855220361583005918340596030656141156044491232279121376009279099119608940375076046491962564837951303638517222485032013568448012020897165098984004322563964971647333424061661013790023146971808756384216878238823214332742183134639422677100184435826212624860883983590588974086983070641815902769617504677758425515347574933302031573133706931657329008312569730700688380518427579091173145201624850496767887994128182734555726821975752324782586370589328010638206010878897307289081673439413421941934718486165291082626839089225115246015965429863079426489051988258400748424926617354670847579953965074453209411814503297405256768203683832885887720036619142757598292821838369293779416675018950566776724054723924723709412725328540800836769717990730270636510433933524504429303464455015262174058487682902309310179626559418297357066438627528912170144150096730859818763304452293311251340845464083781114057637584940744960347714237806520815046591047622727585521976740746989559089218233804264471915957861711999228385916761094080204162919739451969993508029075016216008842716816700710787193494218874149447891932904996158640087345175909802243644258478407986116657642978242097000074666615672401619812783403241185135581335700474668507825536700671950371236080296448525276386524151830061046904392738353900029930735000067903528853359929943774331676593980686301795839751293346449890128549509037582508336306055512128622716985976245549976759756387066565243774014208253164465369798868077176156379036203855805214865649873205332808086986534735025042245934924236898338590085417165230773898594735202584274965713505276063467318680923355574332733071743021281585827586940409690471941133790042986806838702126165826841994240166092214051828672861438195278121622012071341094772249048166630284992222128082882967358857536867155609820054216819369236388894062011608229421092363436228963462951732088621406178734735506212398387605507249597416898332413402658893685959322188568960701361314789283885955217065885774136315357379699729339510863388319099639571058633028426063780300889238222108212491657226360459620825867555913016975768076321078910996110656494938660596312838168085989951158290521420944678731689572197566760837242801900919873413935790961839152788700368310334833353355016808818695700329965396381593981962425474381806211202131576833416757311025018543506301062827094098548977494794849965657600011521328022818032681898994746101466576459085407305881141728074010777289850194885412693391306954227291931650143608112197953241982206352355297706760830196132807181041706522149875260867769100878665597107286315740218707747735205860231662347385455547085971790879209065255485449597688413112249066302747119963488606851141503353853620573997845716461396802882378160541249928490780791407734570411293425824457780841458460874146221863442253462709277542342953248239670134699443849908693506447914015772783360190190153851701798400575512324556797466651243930169533958973061947660587396411780490602543944038083759759344095029981545575257164375816268319737283841200456365836858691749058301509244869228065884817401455106441069007477399409344915801738489600369765336876293470941744891303361856852999630120267730663523098030676940610317171983590214219565486255271235652245597109704817254977429003048627597194871336359616111673693632816437025800255915060573441550911943839500774622299248167677512235235014606139412390210774786324689219198364641365543028655840709905066143552235656233056845103153516548543309989776141404257694231384709784366603369298388351206782461729103323679392989098960721834958548315584964402054472287179102737320792362309822672952974095241693035342651843660822629073238754154631532408171719946819338392790499596628174790879698089388278222108509627187219663866432637944116369117451569814609094147694845850734623800178967710769428995938586629542804516282161811459734286193191750845558235012715876818332880609509700285724836681526176623722855085690639593905273318244860843532737413519798941289419697233865847169493318873101140239902065409369842009846595586996138784384897674795169942555983812691054507519476523930405605586108977563465805885097258012929825503128546319416190628595269007490694750487544700167726136833208331385139999359014568348430289638536283202543036593777101354033478314213833352712602349860514327927910998909386577744919764940248154662528693525213334020489596333870785616905176115422502664839128647655506212005166668429600603694555774194049645442798925410724332925135133174688210854335962716443410805148982449831557593248365975545050247003667715770819467239700852826658412380050275606160680294328272317396997578805393198814683333960688357765771778591670682567674201969015940238206224309732823841816187162420826920789769890945638628613476158764665046754147442940662186011683926013903015763861368517403187854853443437199997751106867276788372607841865159928754317888457871434644556451242948356068338783046770417858581285408952781359035882341070842024754687455092593546144614302822676167712016277237714019280730339658975814997518654625574701226287192880396970412845987973395444289208226584511246703335564385682116529060882074070410375665846799172784194418728133459777770401411413694704058502207778092844591996060904729397867453235179557944099888708465854731981445411232411662447713768132759178310027705151352189757301506632803230368791134941077426398077268250767466065974043964080380427577217007553115424649496686162955957450738591314611884302726983281426886004122003543567565968566433266959819450318394828069065760026408242336048267921072078396484914837783472532729716764340463832039574783562302901854460840407964818685210784417692740761771411891175921997370020363535880261301416183942052273870374459656858353656575470948895445629963597456806055301572514864854512308717548026143871265086488335962796400383943048134036420874532166130470608300371925593223609479764489747505366125902685822155015569030125940142912400201870675586301155593896522504506782603135393405338340023163565450750597705491896004438699803702339052241963035030023028803219141585166918565568849807089478401579548506232811337408271622520297494984932317461381941443707414726844524514463404672615209739941941883323140553030226609829700236159805101448378004970722901367623767853839184504734037954836849139416827603563691808468749879810716889523899982920036481961216387927557856575608252154708191151377307407049713701710168007044831884553454262613942209215903089406810746289026615137997329935105393880255131722490193489142607042849008442540654637822422774444681999987020872125712141951590561942597949012486394540935513851843130965796147635455454796516036145935611788493287241839998513921912654105838016681621631345722140257840684441124980077113231245724713497287505648543256743075748046497868835419739013983227547575840631797798888827667335735639633083426566670447999893600571935785390011588344968563675837018316711598729560220200427750726231076726389012025919781308935871863765415058938301533503577155112766450448345070887333821457305134452488334662328747307278120662535498582063934274552903077702688033660486951969256864547906704084917931451712921384917419757458112072764337814261966949740914212365238116098782653071649170386919677309376402946686591206531589249666296241603907110601499397392602925775902932874750430897197057657456816327049027926266850751972756447186233626146367047254428644978861919804688022333750846066900937561154143412049040193065614332953800532348118706193908796081749495940343636881311705111857178921618497357820317037110795478372584323757160203452923403100741610723438935698082854955194347930244841428015207454151142214983590114265128460059264970971783571298056868887885133969122301797995326493683820560556588782351636747864018217099935609587979105806679539983105309552273721193602251895085332940774555958266910839781011745836965539878502128518864233542447460835730744447760369090852847417125788901863491752418610480955702916823668233730073389796105936320802931707203888348489040036635826412210723935311440440348796618742773318740271667241075551903702140329233604850265573924366612479511024307484346160168004745429571551091130875798559150447041790016690816511476157748039747041190968555857730756141133265521702760074851181240311937293786289024408627807674813221511306788595241603641965896881238348375293449182615545491995171121948549270760668181705472022117260809814642104978302185225574901798969108099263151424309919325594392391515230064677295593990780276136943864149131172521498947018992436026704907983502309908484975410198420700999820510100766000115574277020635295925607107874042174273103609023546308707533390629535994043917490823119242221827062676567062051962643567293398370792101524446703633509934824167285781280030288012759459829744360709770561258081503435855129926855792304355266684084979158159919656939065176831756021104417832716419512450804734416662477570766013866573640319008175925976078658705561546404448746035178258441631687026036524328483796130963633031985818705219141193189635721739427183317974606671617184549373532622343930028855238596886294096522823802502745615971026741366931491205827481757285958205558248163330586578456116695908917306697726516100869139101327702226891304140744684086477724985458888341463452946985788254025562415824658769397995047770078257485218079539389766175669914548692381157696474153147996401051603460901341796333916180123241606130098452861066047525329515107524630781042063983570735492941426744001866634684989070192862904212333652105821975096104214280886820739580380162147314472327422473164511742382958379096329544826420388211884959814699740965167337072515714893632915549881644534097547836631373245205906380992862328776246506546959061686651058371919005114642454302888058052461486680915161412703664369892922691937070049508179684626045392432912659875641770135026345326558137981756215903334104366723175638851455661732905224200436653007279439481438664214255306618275548183207419199198867709537732922661159265635545707870904599509601685626837256316910608049737551951034671860667886659397731966973374512301896222168780279174307369849832453387855532791590844935891988985178843523871281274452609697865033394713550955940752732697249409256962424303099986691031890491607336068602298059635120681894350082554664662669067411995581801567259299029566153588174581037833961783286676350616985594651046724321810074010541026462817683727010822890321881759215307712250340252548027369624226360010111546339074494338389118186871781014873071377380985237340706388959002932449581273921364661555571505173111862472841543222524135854604978004093624617421417223774474590952537020384805771621453265320771007118990351284769355174262169309249327844241783670140865495988376676687330107393867660962967624164492954451075260527779335367737507254753753869176483112610905759724692374536196058457390365389329078457211736834304043237143132011681237748685154305332028968147286845273693243483087225130442663774667745564604106763047518416497145551196398916111779065550463659362896069808153235136324179303752185154758385485650859353508381363931489337520438069170040948380328987714905976260505298454446880911882725554884928965572918430299225434840159538030569492480786784383195846007982029124089287660345718974732720599589149952599201494115544769082356020471129428858353513451542484951609750363972504470061322527212518861164105198016697421066438186098470316777216776539546339685790061272185654629706411647867054322736479957893468979147587705548128576204449937061107960577621087671154528598893780908728073706354811253000223334838853546247114392945050359050475832973875776265319128334548967333206774865932185598085145569454211817900265484930471378973676814160257606605423586336513661487653453152412838617118079468610128245505499107162864466117343162929095457177072658871693816669168447724134157993340582601990589051327110840682480049370325525620368933327866094370180057978809538085055579646488127485201413796691371111573416336634758410618620244319219292899654697830564624847089016538828701428067207575047931519712975033308786086823511521337536515692148596817162886258738636394690134584785994512640287652614891296451251369996858592465284515225119288109783002676724255940300519650554896909808575122770975708198330311786955325581149581242960675886757838668742385474278252681609266294851940846260857031520028704133149337415661975906537459398969521930634471384842129256770066010517716777593241033825235376863260458608968218984748361621644766250496643472270437672636918033178986835396380285035555014042696272520938392898974148440026879294986930964351224032109179264138595792352517494057624730092218771261050571120825698951937644102846444637040913336238524948980905400298606864670921038572635880340813280442677110754118216765599737056410274066110708747961777362777334561614400338169068635478717906274162587580232373731364309330820457194498597064580437643816729417851028820488911764470122553955624500801500972808246116446548692934113059796235966118685298582330561936722628423740191781251710397277994054830996472423619987598024138430115631969314431997932952138832483844216334781683561178438802572379872231962278457699101818034804489950805393364011660795403654591399631273221813030580912089522082556117689199324285763463356658634356183940484431869210730732095956944190315062937866963816450688885955189833552548853884490561682354251599480009032725648059923687016418843048561212060295433644975126225747843527846000592427313579093221187149666084379670209130075386868007278750044641136996820852778052332915788215652584851467613949480929507899363906033255381767305078856140563384405878318175714656431907299476437189738904700054587759112920261570006564582397074782248920902631048135527742568698374010918428473937642773469103895833854672059065420186583011573651548963727016821823894916285793094231966358889796539302840357074629874913915183455913041030053170144088421105610302581859752495366568086614628150514999336287936404320926112469881561057580595263214532913962930108221518709577725042139386780711716130148463467648693059728695384663986529895367152310842754918515853025310844258283132726367517395679439630547176830979662729165077933248739882655869865505425874257775364039972225763745059960073654662411118216965764954978841501836511272199897676876855278714754278149642833456393351066733583576555105749868098113269432638916673381904126980678576014024027779114148016022350593311683433862562052826886488211956959683686863444800618368449837252749369864718135283348412474001605678376517784126876918824033460441664945243477746395257619060512195600190255475209976186989277334811702731258186951701195717102816030079560466130074161720267846294362583638696973099675522526628051526718650137465514264433349029028716991988750724011024699343281460115227447889515653255693890879478890409882783452519816799410524777816892089573139641926363080566429438914843336453891232239845974689527880536875433621536752001552243434288194477909231872383412536235104978224694085623168853559538347628888486706780599419987461153463749049481263206133092112852809849376953993460587560822567325918742715586358439527822999595705750063532291615961848997338554682762882535612033826438486744834774237766594066945501632259555995271486934231787229242913178661975451055007814708528141208470582158717070123539414800843399343046053858262501869634275768053734290351520776135051593032928387029826974917533568436612878995677085143350525789535536534214559251474337577054949794639507804636114455937141031654220012005806465151246799158685709561110747923195399222396061431885664895783107674716102790162633754159586533207311785444144561392287197404728283736639430702579385051940617851360609885943815033213329168201044973006187209651742588635723054655210217145910101884838291786329515000317579701775531659302944790373758822858893361108007106088283124875680993003979417504948202186216769848291036096657327200300393703129062986587228404725831828211650241431517825891117545616519973760782046571505667827133043390294991643335055099671738347000034179912577447013313539885065802627478678552856757955060882509406480494735735105629800070643028167944414803646423639725314228923534811506848859223104768593487773928783781133749955494374019154075637358291885728036972793451950334204923639517328554990384594045050887146266070710905629003858470260217222180917939236162538719012382007220701051736196175401402994859876585824982014934878564836523463129953453717063651746577285056436056025916906329445930107672604175891113598751850015601840552153225746154403097593310259787431230807642375148883831572016160494131861758299399134361529690927698002514661352354737258723780228625430988453107109755748295722681891524459224278804353620955304946697869433973941877902613266100201977143950359090144565123488105942760932284446783563619114060868827862472172646283712925898491699833632577964441634480875101608305646663746239645012675639819500796559219799227840297811303556274078535006219210121393797911183145882359867142382334286708742073985681792474315588854223788162859329714595780127666284613353955333782998277637318948658915355243020085885649025744692041481955967383160490570335446567904402005318539742381146079212668965012532540620873352845397553203223065502739709140050543911042381013926111550768211312999428290259151273443742030559073516214791119104620152155759485286284318839094193498969195451433696910071876697651522436859977922672098542898926208574606411043123043971598517569739521901433585909799678770272569563214207329703487582068021063657992533132174158209588688386421652565382356522548709871967429734650381907737571494248817212131873171597670467776468762839953207191032276811635367813590646743002937874822919152313337735973476005123763149102516525816981126895631110420849151932514241618081322097161916356999032536262694802188185272588040509628207401802638931843675376960560928925398289873957262194202280649960490592302175654343139708481488842532665164916271173560734837670373291531972613947604451986474615304227323597037095954030909893211232701089027428610145761196113460018229913938481393276343698666250559505158661900678601517719256514830472505485418775230318350180266041789186954241811036565833049574514385932808564024261768858146751814000721706543115888422692494574146126047890401140625432548288111838424057493211538591558578664964901257032006269522190367634975801310601579034423121497166519850081324292707657153333126201102818174522368260544588328668116427349073171088821401378877979102932237612588117883027139356269188721853689454942517020389440858831528319593922289949315530203862707521937746301500559996379310020951682887236029035189612389001459012464767472278908267430737211551691359253937198698988866519213360190602750121152351420383959190722428853278534477226889458231729345007070080214533418772086262762225404927301522940307666099216225884085961079023363033966925888568739958732519115475924240709298970868502983541690129077627940346936177593807314375398154548855947467239674001055736382159082233159064915892070711808237763095081136465130033658220715002067886986822898857255689777901181873378615299014035084244432467999082236990333615330389325466690219230714265035992697302900106329859532161593919110214141135257551359301943889674540886058092486287787539555582427954869211729806613039334225269139606898064430272464165525299399688496651893067226178767144384865322290812689209835486846417868926255641004007750989832533393112433677304329042314082296364613913855623737032692622839053236586101493630014872463545782561927957254501061416958022706311534252859752686397255906402521636156921175113615275789948012771768860595418352399666326968123939798660359031979217332426387059236241724442521068699632918091259035011105520929444713025442629639527511809300684920288879254607035028846065533262004801509923959452369866678977256151676884045186312009129977102939366035475298870246547960619272020658640906568868810115052566911304669536713124369847268592661747788994636870918128489350241525341093025636585699193078393885887291477046700444241365303524042566451798257676948288906662893818395923712209996434686504319234507686028762871458485905491145828664760460867922110533539651023856863492790047202138153062861821339832385331986561713217260977865563528478584857443626037692885110016851954222753678355682253354625599711686228331067500973631137160371720231562993404816281045398642095374105657812470008587117925977025738687178096959795690251825022141829664242306072222107262710242700269388932805972275306989380117187843678140616291914562380925839152742977842674559332836051585481938836907337633345759751356314432921908058783268668174193048340526331542219817891872525234788897916590954108556922196518414161332645007804005670169626748982981390407421816177722908566724726704953678876480490479734080475212492022200984134811343662437205065534010626056302188361541362019454501386034434108475438740576882524528042693549513109427636532977815320867328467340958960937784406731959218288874012810865972253883065540763023606393164768139602212924937558635190214571709976857044479240656221922533283968441476743559371516057900467084562423986912884808671864500777121274396878280104439899185056738126330921670299196929337803868283878726823599942169647465733664658863605959968740275563959247124199935490455158028159101705739041834450830266903390980700534850324465143337990046008624620711345393657504749846121508869851138076072053468546347993448199331946633657522879507575077864824762244692903572824367179627216598346170739853534726546283154023006488711086243827277866472823021408461204694703799785476324269725677415384284880299866137287547176020134588238320144924355416889493030980846801825737834673293238922807790215770789892234515090166562360804474042750991688977022197138686535185398322973147703454519059218190055104815263712361864960140122639764265906550929533329963457984426523441914798390102892083643128236891697360113832537317654633531875553355411640854275633410423383055007642442144361657244206877038100738282618462596863060434150815456835550279671754022375792309356964037958243531222983020938977133824304097023156203635154893989946015299340815895347291228113231645290625691235336183243394744555434345978539705967822422314633202503943419619335223898300328508455702418049739205827370321379318569485062067603348221080774066689198913344239483910279046926741657364373982313253329429564643185278183468377385613162052893895511026155578392331338641303477893819332009567786674337755174814572581428675015200353089139738048059313508795571209905487998412284101337480966411057684774144138208989314246268119142459390710803465894534278078901756516248451229839485753207505013784241911548812268590945266011391443496881564171530390477394990928083436193635783148690238873734825978787869233332089784349070485618231554005370930866102450694900105815716451173324787282489000457762744449058375454623575314175577193376103776357577187252512333398869986597229192150979364622666808332221715285489297619859966430059444949840005368048858451546982868962826901950115215476535934242044310704395601055713227029124394868710318832008449744080229397743467141086295594860531540869557097498745508744345806870438557183617508230906195901695897549825826729000735072527682781671051018930874666368531606114468492118537762786974686911622719013143131033881054919912675222962463365469574875719375952360428874322356568886853713082904514622035356491705153714815180319657600474683019365914876237598305396808114022677019070587726552406013337335049014493631046159440796193042976391885325775341205533432061194049999199716679822218828325409421547329586227353540610894586518738909213035803846535238267297412171584705826699404725036305354329487899603187992389700632848855622787286312168306884079881329371727617322707775001437886422008441716237870221570091875182787716629566089411065324483524793913150343555633462706639779680987307715071437872087938965450517250866424282391118794202511182677373152253269711752479963954153438342730327188140335595539011276462069359446343589498688281084837505967722283056534538819275594393822812808612648350778080303572314378655526130554482048772442819724569632942262534689222638048753890094694437940546959282736659476434595578384924049785169879741620635415569160956519915499993939192281651075814955634650372478014735320381805866600099588478908282951688471891269869788223307298690250310014892930505665958794233765217741305557012865997608368387622217364696793213911579598556543852699633772563495866751495940470091394583766703827254730043439298020515065647964799658635552940969061915063238911798213257722361055166773987222555337687064210537481389997728078613005436117004139314099977611747506505709929937325210754861284462792088004264276921413243447320093988617241177427737221759424955595685417053070029882887385250962883375235067755748617489153976138876078710399225766257977499152646525435303975217896172845603282670538159822960821323399154904568492431568623118679245325173782458045852832641495915048814030913782187666241317164840936282800532262736979560099738508830985764658239210936058308145216856639495058979708789986538871004176880070272162001497599365725799354507353037944285721009829848570147052850853079761409616760930835443899560546015058411159088867669834498621818858152795782752286520844303002885874598410766112709501917468926060992043180422344237893443311112700156580415729787630151252441647404636930285481555866864356170090236378762142169671776936606384563893792815756719078855323811715423117469697220653529162704598247558118965457317341164668652159275534722652682018440577304378399338181128491262409785065935910819869762989796988861481984727425902581182655219909297964404849707619969306026202365387784042260042030436247354256658620713054961594158420055164602254970778128251408953716429982244147196799200212194386722623936608101290400873340175378400320060080267764526502201146888532167228626810957161136994143794614088640012244305591194819562008560146455483120378929056721387187053059460055082535342578914009253225015469474708692987520093476897151572786209148569909891767557210053087707869776763630040718196711304141619090912510180304599025940326978495669054052617970500151443524876329532729592208314806303560683465231765698225457619709669299635200534164130390289512988259971513925566076419898706561432945111472901461759596551621559436228370433138720332946663876455706541148965412384671791109990327806138234694094152461834863695669562183186429670602605229513282798467349474053930306588682797452750079906621023373157573147708711394987294305264542143360496257432474865717993785508038288389855125496373345140146446711067570277298049436913397443124344185281680420987525960294786923316835601456199726482935505017523283826643145437292537778455118248028263001319701584473546154908450118057381666388347664963344503377119240311773891419538212323052102099034894594534633306784552587976286375648972869366110808815106626478142976751588802339933314023442015341810158150639659396537082638617145990988877418673486087774328141181696929895212596058066635032584975948161623133674097700306394478331988873667920621849688158304620160376376829537995836920202452714643434307897293782131140610195847333224312045482195870086531658690971853440899354488402520121716286809951849946971596309887354492596833240535838181657492546115161749089524457841976439373172737823271335742747026063420025195277202983064823626167413707286121912590283445392657831618680132267138266693199923357507894694210625667306750940762659924381276873147958781541714444117961022169831803775666089951920271490558302377063868889884954300879552750895765279485449244549468365606160175397266042864774966665872094293476218899233687417878724650436679465137491111527604661640144679262437456470914455330430885835122002797302695410193097986209947513556294784305716265483204663328103887107428588570380917877871855764767331504479122010790912300365197806073175774212659623574514085795976555822691076289743864171307891787383148222593196651870535966763288784371471256285161539135779759733125740286177191690251789856162552333844492004163786948137910138872854428626375838883607850729472500247854480913003443197876463966818312487833360097766755823760531372155267020713417311416902678074639459393762950160146435094379991539980939273852333649339734643918265229386335688426717942221325878767805930817152408218618598629605129911514924646084588742374294305143050607267400638071338260661283870946812412646045445998042888069496939902467188209978223778059330356438388648949570205767349400560616210749563462630921494485333822448892834669785706271168130538446915416799148743978251736397639446900782704875552232745585335557483995072776629840557128584247749393753608390332190524150553481470759395115071578805205171359074679882131565703261836448846674275144032346431991992847670847717130333801892589959067029615442389957150308795541238294755031274238416775184007757275973218394510052872954682443332874486186792836074498619802832746694785550793177699535832350134146005139516383756734326138192222765621420461070490903618977404575904752179373531907547360828937076642807933677962465787256896161429101285178394054730482128216837345253630545612987397187220755965570518215118224398350639153174125008752246034603790409470005683632749612757195186995452759725207716973154157191305061240344916113671093086134304078550243872451145338100113904947995102450919338555260280437718565636240207559884882555736575305339639119626424684147611288666571797268420611756150479932586632518558454770913139784029790254818765130832756637026867304685155195483086559179312767954978084861887107019184975501660933774933102040645157999333089943090765120105658423492496152677040830679488232138909194844526528681076538846786112142920649131111452707689513720977185906664808515817135391939190519997228928274101748957999335117531301226115870952230018801916413002523202827527197150181602334245747634613922218185799689029411008386830890282741610702484080834628088221040490510670256612916656837960632794709493185835771483597002387526625794733381927034287995601637569827442479877379719576277511233468144063919948140334267941708927272160245785692455648690164473610330757637759035954520667942543549653743747000021455195517551312270676191713668383237629283033438566725390869905003080900003533997647386013774720145881007770990280501903139665984649184448390272753226825476924041058937352216284303249206540374068842041602793512133705658633717770357861759085268880197386552298000444932419885765979220439947537067005869987168122874305857034598172659257912459479785749704381044135377412881889016732040321936087140687977457076386274196701178742191045171273738070997131265575255238179828800984470373972295477235102923960912131880532708089826723738568328998830239539065140394386502206984015884174287558933982297066613095840199278912110272451592062230739614306313667017752535542918843212540069521763829808323371266140484097934168077643707287401574459259275901089944320250303274351374214030033899599171247464960024098126298105503274984665529632837735398057031121025656460838046046653011023055645142040540374220910556086302689886274359508253326672073851532873104841257155483275853426048326227530190687278209273180814226636988128329202693269581480902291572874076343596746754545312411814140823155316002325607579967695472967305488644359784971388120011066130698252413497756455852215473213185507095895412787917063697941633442338913016914929456552529978329412346886829022259291352897452494476835423565551850887465948464395543624021942641359726996854804841329365977534269415501004408643255827142476975179681402454318006216995659374866939835630532914609590649547371442321070834701306352538723055879652819014387462623251596057984868262015645949936749809131266133682354472192950392525932095734251682268907542744160707251966435225849396099235969118725664734064576017875878189207034171805451506646694474325614562089685749693305495342654196480456384801822260952233876750999145029157492932413291207128210152706805350676406243843788432874935734991579886597708921936603582455029204035205586905257440659165501719055750571631177060096090390179123706441440868020013254035985038663264038964073343883728645315095140695070395125565474774017463887778413522532182721902507734600187985235032009998760109352555421327710482535788837716705621256260612958462884985855653178325592848635248457822223776675935315223293299736410416932526131331606950401384233910553628558161461203436418435445634282342927401630713017254521833457300129438187700363643374582020576653669493938782537718608876974436190828460652071300565260202280510810577352298548819369661879267146246468551953204642094339965446161447341347113852554185053236963368603195263822701417006552301764022225113900899298525503354129302286231252463767731067586226570399382245328251564051768351016074808705654356204890019187626734419744696304459012755094621991825299779306994096719102184006795615935467483095891672924306028468166582694023188616402948847023232316833159949486763851263638620377323837027525216778935694672408661688726890395351049521395461106924124493306908360456131616575837957209959765090290427495170651267999837151073992546088442763360056201439707931488220268169853292767342524585565730870826616342985863478678855547761607091583118173356695819040573438751572437923005268459906886425880497223973837705951752998305848052812777132585816028184786831255627750010799028917372948335740136941889866145709110839990994200847105469930735005710374074020548922401665124851212343799878655478277802174057654583338633862563439255200874845377152399173047696222274368840189989995631134582785338182978804115576161888476122315846642693000648917689064420241828158951893985961756024367992475049405636835368784055525134164116503564428807526483342472658135635834053698228580292079519930310801865859435828483958815757264955940518450929490962875300347817540099872597696764706679604654712350183895205864922679311943437054366882027124606659487816813123769747044086765338516159206725557741364445102657208348444587292262507220643423503419301236446993206335672119178161774868293489770674761867276137028840892618602267868809070545993457144778164966470358364150747545674932520841803628921774524122158877357508906569074516784257338322300295083782942809594250314097917406006054036282179870019215421765191825967545876422630089853719973322182462501976371077179957839260235913763030442140650423902326824700085360752666619794588096851533172074269676588359454423697056259966336214331936403282688871790175204310733994630649419551010534790586699285120284785672143779567811491383248552922611535866738575543200085771934303054096801181684373361136700056394367204328053301722449593409502738646779973543701876363377825858477545310775853094037924173774624774495870624065910825794624029013765976861263307411871684040274691150717639059865201711002940699084758064785806467171898918551223655428767712003363776647424680238062281620648269645188110622563661501981558563062835445338843660162249249533354961992054149646916358535402833086023323163762876107407896788246364784726282874232825134625353863291814145792095446114826982501289899853639654888307154948173201528233290524894962648094102703746988099999067008087970460003381038404936416353007253575785284444182732845954089154308113332878740382818026110877379318296498919334561409569351136316715069619970618838777915950649508842805666314361954930642605697744517709274970382492470013115553385081754429210285299778602879532803324782063107456772177291777364537082846400740231875337013530397025203057404571735754609338979672292668863938640753592102602561080580163897740634189150620355301753756502568243521747226868403136843894839435686638060926542735643152068311356060040654081843661841053963936038134820635085650569671796141394104119993074650951902455174515682276548976329404032380152750100514516338772800226889300753858578259038284387298550390712956068625477792664330043493555410637102950321216008378079351019402598869691381913672967364793041155075638187995206883931605512799415746458836981996125920282477266175860990443836188675848775106358626296488265420003283012251183753377755182973209357677055090209142623994189287069552417573968409966052704375746098169749449428498727744309832548795733007482993733818252708390644428519237598155996583414551203616558012863236551648334933610632646783574054480096470468046928830003381765683278330889663614372748507649272942119795959719139601769264193352878572838375264591364168805301030044172144910389503905344497953602362432965258467822384937755977592178024845667118575645752139126313699057285142167868974638054615500561023873362228015651613343697166846135694237751424747008158918569009930929147624988683669021645990236446966658540101615268965315591446940989088804977631941346302832075931598443914493181119229531521621664318310392557203078077796962096329232911278216964071974272866479624020978717452570122989088973508936859042048150641144136172726271158048248242895251298342080834974693859089986623309924094371191876475947916425090402587424582958757213878521709863566434831033106100522197868639374672769640888279003476144573674598988867001733025038464489241563973868976084406541197004708153060947704865516436811063648001761659329229335895698997701252755187703157191524392000660203529105412092993175536549216120105296402456057964073205104035125446332309631901981208423720332978664911520037027078572639471737130770510620240070953015053615038087759608166919779371221762920965076464715519949801646489477175432976376415584751955346144528104034245718166726603422271721791874532687599209886031031104777319511624029743305925096935257972857913071328988567468292682934237992963423628899059305300526842432405396961615202672051004873919402912752012279051016084315336081247693417249988679294696409629078440872946669655784713720353083003134806801607938601805022732650038001037889555157466161683356283313398161962691312366311479966647801573111879921119782779080088779680230855108724763077681691471893183550181281996005037485630911731005842703154445257369304190812392762962231615478945033427643676537675722382589022685173662956705231637025196291806174302663130112098189490686054865863059144309788893970799849846049955536089077504474586955426148831064076644196588101401044454976261943624001072778037015736824468654711684595271404935036548825143013960736730412269818424463544245011325640984586197996500106730766007593958700266225695873219381797339558835667676166766163362729818752150689256665611170199079065421286601602002331172139346813799404818157064628324136535719780931342659426803929439332895329627997684143013421791976123815903954946612001263075314542764710014840078424843470371947534103396361251172118175350931823170485621184569949808083913905243351873515597404146004313749349070907154354841428946396911175241444458621493810014404701809928034910370689602429171672688572948457767886539849699657419062420955557678467644912510342224383712715106378343758354258489557782370652182623073260142318622702786072236811751571473565089164829247980993084461453885805692098408655936998901659641781173096640471014001174880591663614137289385200500556893695676899765546891394668764283996487481952237672524084658551058869794164216665738113515742329364836204056757210757877530722624015595311580079548211025154083792508756367873330901079848197625569437111050821979314798896455508981939984990357316007421091132819723961314019086746308131060864974414435968291561285567125925885934989414709225401249759947426997341206460582654761137894376436043687296389795009690904444285956115142197168058072077475372349259112641390118485315970101122750059670436537401921903189017133266539102498292683605616646764638040082127093386749951374144009366199049064892446785748760609489615711627212867090816672871097116482008164542750335691532453994511407071897103847417425763437204440003666011757459275924260552434182164292450451404544240433459442439083203047102205477901947605868198344135120264301348092252288571091951160477307141184263208815685048146041760155709755143154881852171019420974508588865292101165455607667608096718474779548258114270876684293565946379373768240952811083759957013603014056451954809547575304215454435703149936044703341932660825181848208120599941146000744767477644681129554069446006286567421827532902964040763806991788896529211333212208620368168361636234055614247533283893687659945202084475080346338908530734245635076577231881676579050027392547490871050611835449026238886807129891742853746451277076685760864868460566958451175164270874354319156536487570987062411156947011362823842622930367394506338947792793458187856342501175794663344270214255894863149458448408347696319079110942281508664056711393070557268819215486180628878641239816122878637690885703474650081035152609508789052354585877095806734419280572341980455224687854977669660925061530681927064093608558940664958522794856767292584484814255334260075052806004252204026155767806444543894326076103810868789933341801148281210650416576155417132836917397871255817934013339239173396112911800220679600970739568195577010698891688597543130486937381112909863877037794572265306257681285203415788499204612664793493790317963911337393159851012981098317459257306308850418713481654695233038061598025144324501576630269460828068926074118615047487192413309281828368280235806518704925102640206952133918513158093490801801683244438962577362459301570388122374883120432175476739769563250028992358519633270050073478575108035492236259220999101456097457459634461543632775142007556308504495388196004946811314319525692282591841497695544576665454933791447625737720216841461834602621878927162525586300076646674437200201359721009858793969959913421228082711920246698363739938089383123281874756708952759268338126582436936329211059635158451451864354182035223504509000363788796123265115938113887078987099176346123695422291231897781616509824606688781580008362667432613604458038174323352905498474653130477431059633607457707997743366964277321464031115828264195707537557083490542512292419685076022735712510751441377359976196852750353220989290538440810206195489348023374887944447151511995523637796376169849869196226302315527315236868248983923385296831871909948755298132509644585465750329775722396819565125131046567775161571956020236256728384413070753476107661866866860041598451183863371252233686102513029454521947893133156509393511655647516888395510902660874810802115332433011598376845114880621225579645740798441856977753986666941339952106780215576434678887094658104234320816136508081023361316114080442651953427279483133002369815338894197007579629884615524374623591693224468538739551048663288028496520649357769854558871498510216840846287030280725816205307151634594631964761410088770234045097791248121929172460646734887457364835020793118119464166518934098491808013656375247246976118451895222105503874752239253794088934900337974324705227913438845771843278906824749958089379736884734029906154598694888486500502115462768327660543943891217754098768917861100351528788586278098801789642318423776951489176767369784333888859629165982323226987367704830182747209955290841638174593401959561191881303903205122392148879305311922474189766467289066145150725814832525545054089630833721573653060112827996763341275174970638379930885873795435420147183325236613974252682048783184366462626207276389736802321253389347613917282053711732158415730012572342841588930836031689692782507059040322740653619608903044696235937359336134095791059375573567653010810335545792801420610814542037047104838371254875898775828762526451628100038726933114873382748066596938555941015304701732453915638335470880570114254897968288416894130040917805364639727209271320814750432905163685562423843211848108379529512151238853735520101410921803104810370705801828532046634279060899195486426540031857066312437597849786096962787408847760140162098285348264701580667407704879983635363417860609235865669351674562691077177194039555990486244108423068035943621800287674672008116391831650797274301190992097364672101168707652427275289464413952312525254629552904578393344559741370888044330130970016993696337525646039516811646918471355859414140643029704144250528504877595292203468887941190606573621122987551555576063941922981612800562716857211165204680807901581474538928251684744931669494901967819147005169902823709491137890623513315973706977571659325271233397043573701462797791488759920513681844413474566195736963193799055924969880952525311157769528889005512615138886913145558336030911015581632606118627795440085599848765450975830304306720028445530281787187142280512728829629876449274656441845125041436517851435114560750009354955570368762811412881903783470756796566242797674803323292052754273369518757993578811065737875728710092640951625507266033654811391546603299580883165277607694707094850173822808392190216474445240166881976292920737916172346560256759833062745918666287677141019623451222714466183546836903625714406905520160307707299113444675720783207624842497204027313425524660359990922987537621290338231343582937404459034915069325693300556301574748740459153552058644160357693184726134673105656186000412339192344850788865612221431240573451291315750408251466743392629870286786027424702606369207740264681282060390838801373822926884076853733387874848721974471719081959788353447010036493290433602579722996372057779220003375017533088652335640088072214613482182695490698816311617766113813701110539218841991829943894584860110189250783687539244887035224219236839258723279861779958598827693265892264018337498479959877657085215827212087110327309457261154461534859967162466346302696375128587250229782288561472908873709969393269118518585871708855933549465664677331900215102730364034533536356024492621759744773073532478579362609348648607570804417476564741566967349449743420623091132199076646556353487828317938732541265334284959823353388962439249502136307805109957763039700427381835996471942022782343775054632203490488035306794841654083109331141758946898070461319194218194735719867662308588219931152065361833800127570425917111699959620597424332336483500329278046739192752533167824049697759804306876125856427891918130070878513168559212701504311942983543084616043208601823517349562284610430491539447464260163428568476474734446593567454314388324274367434803798102678833558766751856744371460375345856871497748205552845827767955497720272224324861925400042908197542014330313577264976647160753008551951414430259841579240457485755726527936298138446439249116550263937024871291422992758182368931531879857513523670301950557753398829124573548138024830685754421896419061443122998194113155221124117314617907854554169534731979752020939907061875067681113674893344069185300237401246012943145025940576132194682983797797832633549747915863936085164323854366474375878676791638549366972823132553599495583471221278661541092266187301787669588120683043267121967483986253249523954374152544087582914949718163612959268306720684572752628574632779424443443158674671740739368956149964026957783628998141254396551387369441840091165204747203573686965139505322387430122332651418870058066907110224030804891425315724128187307797145406358505697565456443896607961727149725372212672966443617613828950391489548872417889988647896068997618565107528670229309219328192516881994100011695624887064907214991001795461748684280824043959081050906100803713871292906557162815179662866053806803089206551174196111874736919735811534690819182100895765057881850940465189059717765866682293138360928448299225078705740036761329274192850157986053632551952393302753154725828124743750667455060098158200809497618304157583291309019677954344265655548157436853146946369865098776578074705573967689041075402330922873664560996815977277069817528810643608342827387444669717584766010352419584823416242592878090307406397190557782524734425558639594244842624097765840424905275714439002001546926664420419780666822846954732056418513613407770369446980094348610421227297687536452611864895336888883274587846108687733061096678574224268476145712512091719248000406035166606963160274772072172261755348369191408429734929762836464668049632374783728663767422682961188812349758757361454404269769494721942365604706191212621220950244038615689341514236996099145458951691408325610032847521397362632582476124841749951251992473035782186735083968819095556120520977888143123895706509072640540975145143333379943773151766562618602253509182159616983799164786972144900677664203176717978742530549947558772415711315134875810541493541026069960587238031056858706688419234307391470516153593698030794590828129481687462200583450811776081031021268523563688496459225008061709235570243357121088705058310390986734816343711046159123403638507753930138368770296112977219805802759291131566141216483752390056696104096259378388884027993633445882362342997907015083442694962983442195058277549273605823248102440827700174223571944255914956021649446942944961704406672202790707642670423167106151387625428763359538207288880484180311691861494264618714431477313134601618417705950666773065472732926812058144043384972898169583433282275341326492444784623934922503152730922852838212095955640723624439220307713444774782505263896124791608369577083800054311860958328051673708599173632903030948564673103810113595987829234333262880892092941796863636330782765516176954874789680190267670952113399068829371847199553925786373040093146875019279453449505225712829270887396803176073688820748413015639469276700117763438964509746789190511614455175403593143142252950056377542451596575651064454705320670157888629905585282698638715867835191227042337641319680786859226624054641141255752780872358995829083016410415426639495305881243596677968904360121900084231322295953365408452485818522377706982889053446072265179213684645863996802589595249965830163664600160664430218020814165853296787546539545440553852812762375965704062144378371399087455744972181704908318138495641070578738933929605114552212615770371320822226574927773660793445149476524477304172089162182820336740533950262595180756043704134536209923410686726285366380920576963572653100180609840387340782209934176480618542545568942340059894773749481837718889174529425343725094014341262852693544593329693649845985041985058296021639977967460726041563563548206140793711309601945156947532294204522037586210326845306896906967854132101996581300290736402336194540046343062901323452928086167480762564779869278934128155281926346301547797287008183108869585778717737302175063214901621399290674647453014415098591521428219609025805727938826606223257589879704148510825908657519761441971167662382413461837217955496667477971134036296859100282665035906285377034742157165818586011577501957965170583120675287233184714597153548335688533800150213151663552722559557042781300475077138265305350935552856886389897483998803003969438959244258294539007280944232537646294054040209527041340491683975249538145145603459413340142093720797150740399436300855223402156444294342100880804654981495739333306404643225656868052063749898817422416987806694248322261827908532554733435826960857535010772979577985759724823089640779783121608566084157473445332499203451741570908125518528254824886137969261757989421250924840831244172781044989986668817701290784059628776490335880706688155701765898962307270774372681545844754945363762272550552910999982785828715328384276489763153409217083355608893967898906698176980819634747676020173839616141374211097713069517318374646783900912786982324564934221896466832627961362461039860357262981505634980804543813185577109161163859861107818568726116844788484116815443745325873668861813522345345096403179801599981855935252247636549298062839814012602326744586587153536885163821999439190592599925091665776437294716375228971598603300871583644651826387756743471100337704523065865185427148704113211298847371980288751390670678235259093973008278092406545355680742529627626134170795275726614417176274659158949308927173313122024298803722007993227747818819246508019180809491422192170195422295457251254535526257740520688866791064642481772352339443891911644350459902833383839209092457630010113165635733411270219925040938554555054768553302381775516209602514993969616359521802671802427284191112225635224700285156465042612478790706494631680023196659925015898016689207693006650123972049352337615493280203402374309849639157549662478207912628600236489462113414209320339114737980040821974147663324319621091406694462040840359579572183670267772160461552449021240613289950958834511295463659292463767207426550679726333914437752655783725277533910088096999886624617335069197838563468415156235882295375135459199909980462338506420063851954607025117551542692353445633294971521890574148080767394969539992111901119648754695625297826354097791171978238624747337505625145118927043365755224736414536980185181471381501528168367486920749368476898235894481288050267474931716537195359772041999936117397449264465827907561541969894974409793871154752169495774193385608265399294538842978598727132465540154383041667807970742260117766746095134306785277269177418885070842148566030845044937094998576013181245689994347217458499722541927558632933358521413837444703542489859098438694600353353256865140560283922380132665656712783442797202721149123673407523772832289728734643907517569337008379823289495593925263729348148725237531880227207318204818753616840455150687307130676809301782904855619609691340261298059214232724606866985047860313086892748134082934916428049442697978095996893023471729028892776639361973375716229175957624217558297563546362395194820401123734256007637692033052377803717016219654553991060900478410069054085376868746168613000638899562485389193593121400348993803139365355740582145306975660443886749219612008314031212004714610975588838661246844377550525927036051438763082915926234419621298749625610486707343656960871993658295489982146962372418222222403691263244929781799345667609601573525430236802211488195583232858193719807815389281054615718053009891290644520369950932049513708944921214696027108738276503602705618549677933486139975648372221159813518106437034793149709074317618473488888797187706105890756086622133014005239680373523233859746844471729739584029753947014036163298143383427245418021801343252197483348797550127964676380619802447618762221646905686711073829737682381126568851701778603793665295917139683004405794217921265169737648721303085274056553069118903118481812178561046380035293334786322995646005497489350419553169095046897907294913034898666068290942214369465019676684369954816219868315448300182662475176779969788516902885430723347533063641020603069413307950129513995844720885479555930270184939539590581043709608112810471081804490796614964903476235886536150022672647013273067609980208942814606846993921731436489562358408008495144105457431661959513887918125819791939628957900054691604537690960785497552275570704012749556502031310002999878111503069887274024837918202235746474190521772064351728669410243450646245786560525331391172839779242406092644637084197719276160167141153820467101627473112653520451497721337846587204217291557685069082509244178806433611791105816829742992373056674381770521996996942686144764200879961446841996286262564124538719646334900558643936219053250185005472624063073109062199906474139992126370373839774227278739878635960993149395010360475568209070824716574053752519403935701271684848264976678097440301423365744228971542526486208140594522971053763286776615520809331014652885493672332183123898679318941890342044697650141489748256447301882573389280212825703334161467424084271944263354906923398713837031443224618944839652056810125066666991389518429780938908732384460975996586610206317830510191872865843774655549490815622797673176216882876736019676613448720769369238331196349522881809301563376483517446781394114706333076399951531956328851543728421734355422748389585351694534034164522911574269647605210943925253796600385157698971665887108658921118714786993873274618591776540169082704118619751231281211688615477021769029131618722348701324869785011520522812887533408034004871812609496920954311053197683927352253501297974118227793233267938787938121545482472041251600384786819886527349014868618319958165331016763483144821803750259906557263766751802351619196442275121509596130994380299802149195121780673242327348598476671827565107527498995785218544304812637097562903016164143718778649334760268422699629534306166839113413435024795250863729447859177379118732447975444569268787157250739946514167840695384356945962781298334773043208209795090906887923941627432521964788517083668617827754340699878445583097844044963542026202141129372924872919716668627826866991799823735799109157268343236014656551781409950055646246933360087586142783116274817692694217805323365316948176711890502922703720285816749867954959626788323420041513020676295289374279262660121729340914989793100028555373247102545037517325422973790443687765162109178735585373219125055287625529717551119961841222387545724036831629589871084208960540217249793845876641201703529436610454068447790424502310616393943244928863156838497770976342620084053069534278500816467026920447388271941531613275698191479301265405812086162415067254243436370435272112581013645835924794235083372973087859983085813321666764775310392705870749696290605419752126995515995407598082736588427825736917303433001423267384268467245552337134874236167404528914869126423641799568678528954834255921128267734581263818621680462375808401690338936472573722995107406286078394377887254381000129071502535282344548651015517282731592617938122951792028237447050642080405182769756390698679444613574113134727132413578503037260472694431734160740449921025188026280251030401811244380386879913392258752328289475935962973343276110788579992547830513528353985607171044211123614064384128796352613527045420162843006776298102992541000033474649955141967107604642746190346312980203947661650363823728498388363317443361379735246693324182488513798042309061002904128379882371813811263183794747527429779947467780585738608636068181032943450430198280468888811300055631217250400345783163928363352780272647239117677813776618830469106525778685846152243302678670007591907484468239601918001562738254118586916232365329554236691774514297774045898198531324358930389553571371459842308880557545147089947009061617071184326701282166926608570470742543864766769776827963929492828231082922072657734788011806997606012097939749949868683883805506845827982947961896412227356304328979411658545393720449827294762912437829064547884306241148900489903377119891100194890040311557085358115573405254044924554696642037708302446991725135572018694943912704677912946404454285245989065166498648725804296387306453550399159772826425107265880981442493049034649721990519434216256119117280669256883655528975572268449245083013958034265731547792765222410212824930734699828765312885631541211946038681580237179548074110547499769172039118186143014064867086366317635760666123541429217119157476325073096294218695354273680754372582388573116123033297876532432815419252592022027424857962717913388667867147897663085759464857221180786128666122368320134581385906043456042772667816956653183340453663345486639403361469241558478238643731391174017295717915988059995310760994192347142479986906800602095406990070155412372236393650817383769263313545373297742143643918036036786509002686565088414982332708223768566053944881240598179189979913501318338900365427315848616302450264909853537118962713876464078411593221067113357107662461447133215971566710914178895933484007579817095782196466325843832365164635219100384498857622123491202129709578419870651741874630701020351899348821524717403085512860105928568372027225923032708410914862265351933954716926737357335920596502903779048069806889208732300863275682438441350347194106049238508804877865551374603984163111252247910787735090541797371579773560225726444309202555902921093905513647641528699999465684694503332914921553689653467788283969222999555655862468219171911973813684378974197355115241127605296747097906692725425469520579287801815034853384913241253358244243947562435606645495908660657553785990975614752877049656267725935671172003540059975605514131975935620728642796848734691521010274514577341692059678792272034950507634818279054133767469785406858972647144465511412174848541808422525836249295354121541599607637848906130586233285374370174000036171477988182187415355597213226404100278832710604117444845115865047765720417354839003498537116041543914281502179189556404151377738232325400233714240864812753964285623170634313633375795828249582287020399162261247862216625076651011147670880533964211331915465487644896357504978112106742879257058266904498348568781553675592179140507720696618468418646357996902350463021260082514038017669758071897791750576217391977596451222833244814891083091822059746515764798445335829030433702365848435189296838236845226488928553429531102389942117837573660495832978589701643203472417284637186716661268819043357551582167260934008725807209950660912874497286751766165430561555029086936588789554872037097279658296903035636650334938288081418948822127426841359335763286011324104108430581935191480622442382802425090643821549941660730920567923797602790143694154126255914457540769763873683396969043146771529337296872395766780581173391629893126491837668452368309476876950059783365658534228995570708212539228702639584886739627490144527227657433427097660402198448322780962667421821398929319668663832961842551218897076658660496236039373025753947929075661611107705817364921603798579868527944971300336621222074296433301932039929106801037601397122530111994633581860125485830454145895810719080465988027233501799191703031841809540840797672220935085454015833877061546067444894149037968331986915519005611370066953145215021915636725725312793894507892666496072804472695661014885141888893600739868488292978471912049470302293430912680176583765986650552551519118423598908470703171412084291699237687747295636024585513131903224655232197694084994434698627278286751090468091900039639064970005330154694675494051726779177423274766174275598989726168367516833805967035333152092009031683473175688735033623158974256133956604933722942894241742480136595322630018291191202100240660603814466380506587662023376257452075562250535136465116907299795042324740290466480980334903969103475452881548738911443539411346582292693895973481848743553618149123140644022715073395721683578739466702140236298077758331313645719340114747156263358405870425245063601903000502751360289654377477990523293580699750239511640329176818493029596993053514132600918619540575648498339611576507369252184153496244684769647489650388542759491457739650999096766863734533542527871053018890118802497117162809435277758198812831320383257291427493759236134708295382646699653684581338964462714499105983648468459715144698027335560093632460408301244310097880189880313861146023947103789708277513697816365122316657629917598129860109964807246938673835256956699333813915403348992411454214863343332900339934075438640750218296500451900292041686346300919500677313853583202683292618576175950043803605914005516129383241788967834139552094914578538830612543313236566385308753608052073908461366584959151412836692729711541940759129045188494641218565182993482033443127223288235256197441611873314582628940798692146102139941617001211829855493533575187388428451260145981335653778678799565889658598164235270276134563993961364342166343689768838074996351229347431446083360730473759875829440660661233967335621457250718999326449603827282368551241395100043795318105033370886115261243637179237802109295131523113505651273806245308375274655978823564775219960386836817831034543106232206446657690041795010400968409753453628067500579045625982866128018129502690760409337886012469709428821164554201581638049897214307557109066131463900003654875920074225805292065892320779967037839150423968721926169607038842875176476797284635156699882629566297449251674527989275449114066072356555882365716859393904684890013015791633217771050768936692066412318889474922459972778065730337135594789893078094489801736123496609123767502627478476555163678932378325567597622694251326717584491506859388236389230676326380379185174637231783952200430839178258982410281058520232836875628331539255481130418709688383419666524444059458585602883970839014974693166916894598175347649801220167548536378410749160093601350359375104956418854575635356441177666924469803494925093424156142251982125281447511423848942286456337030029050779752082434176769574786339581905828072654558461897068024332741525384595645669018431260042811904495216251905297299871528143267231488314068497163361812993127779364016196657334267202912565855402535808408227631009027446311435156253600836968115882326358734076604791657644702642937090707516590249364100797835339217920925282354792264196677328200039864674302903425468781277462971129955146363704689554225645680272482154551169243851560632603105682294605571298881173851331045393016704966522133893323106870450357519251415090374517853213345372239735024336758909578245191207291989710900626169207256282918189271041877795593088557855417870955986572593891192480793177311658908920806021459483743119327209918316105706749433579302681619581890437503572116731139375783594298992160368258424772466304081183955592579630769212478363349828668875554505720178620802804110541618331960807528220574346403082257039508883725674553834821631954069521093809234810137476417083256326133876060724286923138623404092332882823820460098671127116661977457504786428104022507285038339093785959616634165694931938832451235945820953100065828412925881847688576492095928169941030745895088782027729702342887529207486100616121411057529848791966609638130075086689724493722019054465690214558715496944659245573592968635953822188061036176827111296324156771202264024586138843653838352360002045406959056272292493164235859837088192021079627486526624979009054383880357726964389956411941073407102801005731256320282965637992531762946376774921850463768020328395366310814421949613731915811557312828973894352118593319772572026367340445977199662657622432667262852514309905072023438831640546843185326967659135780357495088277425768932756192652374792523203145861034990431292246725134680575991138001794434935984890193968427627876106324267430358494326812536682864719292202076725216249182721229283728351296534044213550374462476431401509882448590520533457961689298082087428559438333392947591336103309853136240354669214760373606610399101436535087200163843339990671451785471847247137022558107402424141824890178108493813420972052763190226092944065303475962264411985913220055605899269308321740985373416863795860119058632575128142374275392785494926797265225024837049773543922522144376338762566694436641863297999880909807559328648920801006412893554169299712826800202457539727651773217411775862099339211385386925832988010228394203908593514665394580276501833702573939148476031450265943765932977133978703934179944648761546778391305632687320006234416866993689940655973862971044042088426815216705215034567074021482483353072414482188255501227957598024818634001925655501227888643011411045185032782677961404952497177406451187828127239565298631211215535407702664285073615967719589041070775546263761856837220587289018433974590127846873284326058440777666565419170890355401364698371191054873247990853043702449549055725174579482620502630472426356458814437745683777412876689116072205576188347449790267306076726367281416622573501864715427122670976471771306803208256486889275516663959906732521627250065242981711639484192583108396746389550621012032872973844114461544934667438724659870743947659468208490972817587183006106794136963338435732802123921935401458624076375923672574009533232082947356892793098815276568442194299132249974040351159395191054931098887021312203465536388356613172167641686307818453220072280267161631148848676380472131128970044182206080953622707608783402557027297748317686102460603960214583962706931286059603107302554759566844573714611743360582347663467517587512250441737696692192559477866905503223226407645007447138934205096797422706938900303285116584447513255523213995821556068766421603258810519578156660589288117871401457257772946859159702210342434952659052552263940540266343758893877851609825652817583499107498839565491656069285903636473873747260493522927762656557714669141103848180958699696647999315664363700037984874673242901111408849476601387567393250255654948658156501125069920320079354833307426312948752061188040332314302370910409068729847455788892246851715438972788294320137558410035710620201163111097591168142685754860286369951087359368024675404243614565124720107454547696603385303424869086923340201659086518597988973315984742455308745347627119946750561266786137659324132871593619558617000670530761312880058728232549336879029748901128841953435290262770324017946157365859355890082541097947894758532428314130518706594002882078088656478594171782406833455074266977668070417325409305041201217450453472173444614574026946826936733168531094733916018602755296007201259848406388071057989043491350489331581741461739968162180334216554205954882893747978953217053165588534429245085799467130115595893066641186575441305292332937776058403362335599486023919108470020515451279874826122936619630290160621702915516331890983460646946372797636556578806688448320364946714500742162232579044138948650432707161083781664768390674421720783572801295042801254020185681102655306081915916539354434435925382559661505913791451328574852333892475252453808674153374014865557610383470630178672836660017968052519051342967237232946378552285958521481711843580490720804075403547970473051130004301760182478115691620916123538923391563104848776735224064878070202445486512861912103650148352425177840876227639908568596456532061277094282376279808272750702767431613357167681877428144823521138653531085325488390882694090056454954170462783868778479044983402320294205814765093381024882979116406743408525107903088934574361344839927291662393587304835607760891828947048643057790831230513421986986969806273389768983924340111494005909904959921454045074272799311664198467996430585164921358403772418881602284743418641689616618409880823319421963115495731318271605828393613741113219152481429534793807841918561837728985452392639546520746201803598290488552390046915449319427041161362507694662262100023620347621613419347393236315640674773213438067665576847860456455290711815609335384759591970623199720926555712590974459090269702273287965618050531677282495546082307017462529841540930970553209846433697124207640952994836710414354344170992829601495001020051911711926813169366964985278214629099956755915580824508206954753405760758104146469590813237240939489681616982944892219345170622094562150025087503213409741012036367375314814652490520212562271867352429822294338384868142548031799058008366671408143923584592861483160365634862871775514587020070114792094365703219421120630367458335282250824831160023568776089462804062374354112349907391148838730180874426903003028833143759434722270459261974024424863130526558018671102220341179881266054250742020989118238532737593755513252342722149063414413535690953132185763983765210875099581851910621135506785872914618663351876298926531266278796486040991572635918919820362110875357406602925684779611876041061041412176655117015865756228895010871727643176445648232315023716838518053307470115236254167315649153855511022280701807456551703495423249769226050482012119613397026637249723493517373050721737895574375368840063081988173677798160358239092907576012669889613260412782981378425432385225059161233782895982069044880686314775716013418601245913877903816301745867104165349984665523156901480221682370180258102638684995556447906921949810947657522331532591977493497371509284750687027805458020069990437105317028870485992018589021994644773803916408388658452840526062327509965491112099149331248369707755225111520446628320115340150871630195362008150984224031257853308808651804800708136080443022003872500889459138720849098275613288311753345754509641593433092728964314999891903622921358396343621303589928466399038767935480061123498593322293935032745201484939096843755583106436730757184302246832722934601884229654837693794053869297403046290542754087841130460276517812939060045431915637259389853810216669000864838309670256359390314145893649643093588520179726545316933032607170634687573175983053826572264781154287883986679875804372601282064538321082128396417382811009247325069607231724458364832930684998884212106925425963128596017682317283160674958146707629930889487863868888001107005412973195035390342474298562017094239203196100003398754231789201967199116216817974665198437129024872849858096722069806482751007963411539291305572048631475114824733349447740784041775783768495975875308005491154379728572679489323958724511499862704437676670922044460591572285664833492856953922614874556321114325523319901330973493085178118595739381923018990380995813765862600128432711930049037923254147797566271460160043783469557365908381436160287575321401502255001227708220493383050213388593081884446361965620401887863934499210258613950319854806010905667766489730833735357555477513314567658555431328184882900766213545203840920837115753777437014774543347349642974006569910149838215916169814604332658797755023761531366207665091868010641629236328005710916285501406019599488784035045330527910970985147640735723908702880428586264445161450973479065095505871046392829544067610314134696121677876223208340780069949329351811115420588987336640074917362490623158799246143762578243268395346690069655614993765246973672298428537281040934354328192596988569670160442108672591770294062606302196830268222023753480301934531100403957196924944475430058744408146933719399255941811844594710473133921211887718801649664683083393289855104070949782512651099305627141415339959333697344178203821594231528676218166351455297485218886796373147466447773872369402682575537255940451350150427697640094714622174291705694924269241890731465332557843854475381396618440058392846478114387045955318917968668536204825728756418968500654528566793320106654013459007603908990224076797822690379031596010904456208500059281224636499179722273836310063291721512043637375291022968569480652481000838141858029072822132728380669700166502697884101489951146009232670021377204870679282731820275382569714588335802630281315157259243744173793304664339701425061400850332606057062684360372076631743735832403315932888650772063566959485138144891767149753506223971362531635179815839018412766429794235788318801895271585197159841233408552782932032155840432567812248190180168741563491470302718979950950074734930027300809973469154927151014991397611495147197890872502216328588864356924050267958373526847732289435868874782869010164525930722802407789460294338575628531973615173188781579241762200078474698620131432531333124801332801325798539856061479488694108768158869621517924995535557311345409392028993760277058563783539620814700502743430010691474096179647767478788648247936751999509209189347319600518799154372250229528390921579603277754496405794773596557369844285763310769353124152755210752375532637105256238637353580430698345088777628223113191490765875779262283697205863469857770653696982238220080259948390807489516285153208017667684341989888644300767601415140351113399039911525008692560340768346729342808310901690694380744976849787974671461532487257590914322643276271161691731631283539220231855306616977657491776258950531872831599604662638473446462373355906199517808853474384286749253250286608547965813599114591244600216676823018220532356036346410337943823530826974783073670214519220514786255335308720763968641519142382683516611954110433382623481658576683558923386435359329988131969713198311678496217268991233004406505900574392907634110955245329634473630682671760610273005640385799889636848239475983786924182790121321379637454909913665276051093340088237914660589598913886386513358031916177431176376516747991740094402720045959172936661048734572261695207054978649735810344632629618611618879048141439798251289162813358485619037257255350440283770966456421333580820087502364179259659167337229046208947799175500096962483220365389148418654038870200052446151142235472791111507254080911567326344395361335886544029678380337472953559668121994815962331290292026902267066494724652622047472933278874390841258941595194865860295343375939404429854632107530470038322787233642341048888182052385194224700690894508923263000030355127257341452954733025082649134532674693043223291686590740913163637475314129765171199311542546758782999296952689012334870622036868025179582301988770182803730733977739105267332757288142830117388653462023773515092527638965769213031317892513574347633100515112434991492824837004695080196486867340619918087236380420047342039951462905269729621695578689504975463950963679974331390455526903795035777369969599680351492520123984754850870550486043451749419626709727843108593511195528098638507738848787987704558173333262147305213444724918827097167730345778794186716585860194749951615585223698351150169185218642138216621311787577702891048469087492956122660796771907473949595878955009024590647345842429393537621812215730035989040892902246034748584730840944023752032328434861750251140560380617044897363404915279556484937270178772964617175934674937740440772632961995970411370108073855664605400397102265422729094427133682532274734140871870785173831191976578315660624581670862651035984345858437536792730532383523900442919514670004946086366298196101295064162137394682866521509650229133819138778477977368358224584402907413760137672781319155525511470380674923510786560687272788900308419739492914454359455612528255936105048845073078729126180185113330411365915305661241257683022663662251824834023752966725154680875800275495741512437985228845500651907389205049048066127310409737391089622002994687829313253120576301515246126558769379382416380529495350484078608918470811620667140934598478493515986778608371582794510959928157035880327664359024278266599343546903135046756433218529200951642045994049449252509564341678059049115795647055310037037940239756198268194023684806053988047656392802887721737803339703554159853087938397796635315419892665914681526136954375062995484945009452058128223300716714937197437698194249339600597891039461819051899893843247484143994978975754385871909112025943925046464609936722595266196001652279928381224684952908087531042653391631903421178243141241446103968854570000684235558255376415044953733967741141092066996602245486520899537521604541584117031814357839404426188321962827610492934990024576142979125094330381235434513986245421329789091098097797364506225899092437802420824673334819808172261770897023065004226563740448825675079836140108534322696749025634429785560716187092229655092424896342429306951281747377665261508174671566299433874868614552943251148714185592650272949049671496529845737145612349958868839145114422991131371118859751548722409305536177349886138527631418997417926924221897226516301081751475189583823433615640995528810107227440365535172350894288454575766312073945845878363692986496956330939312615580182642198935469391808453484928407603240823479641293411143794431718691142950429972345574199355752094488837492358874038912990008417527341017682059385681658431723364791798658518552878063417084753379168441283287132307665067556815473508098609767346308898863816616717523900993449612665346032863417880447032811334395215771192129362567616250203728134597805663739616900243108559565549690494508421920250359836260094742824156579083028095225384275807059011600679076756074777888567193643979496806672017199027224571366442807479096308783203929197026123544890073766101265155019981036669870215199970104403705742895166023761648414928908006228089726056405312978002496844870513862942619836973751026878579938635385060321295719643028934270547725531739193254689431846542128778510594915357686643589617810093568297928241199532048714540714411020301809852974982130809125224275757339749165892122317531581226199435007737557566221527468949455789498669673720197436650066381517555661601050445974357048068625566296427667166038465080901060743960847728740217653812398454539851620947668733974112291141438275938434149644972963370483170625178670896198915930271484038851324253908800247132502166754187704579728671191185609287327587238175765244022891425649357551528320156496927246756048130567090802421359331525070456564008179026618557363462906247322562623236088659641612712594657294971046212279038190518384117432207301651172216166495272564993970190949216081704085291400773415953131266579936125035952835540459339629460846684905328614763144075232197821697350013456352480586800191943398534285929706369096287020481777529726725467838051583817003216489367222201972144475638318251969197930801325172409092762802486114700910380630552715006408909775451705572788026510979660521864527760231660443616348924138871748701902810785381830332727569557553093686125281287236010971212866699794001551209160648495850349538197985643305703026173593654631151041793202993160558080932700927535033176922056680597555514857701627652288817890730881098572425674365375832077038514718554605130128560181988699377393275875299512907016307393555891312337709005262412121449681234938556979269653810685149722563237884638724181001017355261161573650794621804199961048643209170258182112963664741236877752542299514237663075124728627567473225373144893760984650078198887508612783649316300137825364057500469864550555543058983039297393403686090349128076906329836681206646465429650961884745755935852584552149158620349326198988649067218314523952737032514271668642916710545395021496036245545055301049507422174733887727402964423950608103253105149473944660838947516849582964458188353465550572478324416709786625350262888093180901933825056291777914665283756241048357209028195934067043878850689794164507223276031975545844134074173743593492798418025577086751813027165781059853013901070138568918705657449799704561925500548588461580144331421516835179812914452988058710193890309706577635365497226250504229176443352283405073788462119920822275725423097033600896483220746279884131145124509560169194269858035224770187933206440762874004014182683287784826776835260271535020325784666064867708317714017017043499129379995307589916587891022007146768295825289342688621408599995920160080608778322798114222389681500891564474600124611204657364072773378930105166976512059606026755727265630871210599506275158895647490029814773229327283738857037401321382967553288738035508065665647798025007431921168878342559276845992989489671686442469415603581678672081774621283124394132973073084579397363205883775159516755632605536004558790149968027721383119361006771303366844578614230128749828890255619718792598279547204256316864638346342877663937792111129794789467130951998383765907238850871764121210610503561770539460881754009748827475815855799474458553611267116184959767995892129585014458308122808238930058752756566232454006171783280540420968938294126093910470362985119221734666120502636906441573623570855044403700590728410961110920909123052729051639925018276010857315060588358616055142695964821918436377921430764748569665130004181972424160576248801584925875544338005917100465128614654417386072657711791105930501011641843511673526987122624492892925391591213270647667935213497447121277061817534994717529274313893759492646625342015441774661010382856457149906904431124723929719069548407774602043702330868514927112124503702348425886302947369131481942377617418371507857091557419679644704233900803635936850305383401731275700780886607830570032196484685755488460007087109369723049934008484801572154916864563750710251371646425004945129983768059809529424562666180583746288093292569541894647600024393150432409872440817522361373599190082603622525581935374382924169089119926960368909870504323436794222200890287480411903587308177071148276128241758622987670126443168371463688885833168589515984736260506814815046171063031020954009866609735663252118600962689191572091002552500094180650403144040626384581911585309337204315204190398455633646094666595760067260296086097092288783188204627794301759250241755583398530647979723312730662036745831039610215309472048638462857563472790739035480598548519616182463312345158156769859274938980644464255674679417576539378989441793223859915003952671560895845506566048822200340920039372809155267228648715274802513572722197506662117991350712016826167704447190237142222467046607100583025281820226420998763066610266825562761628550944159482107132727951911462721137159016411837248795868539514530769927470312903400273630824541516859776306419526185013312668345980687772549646308390226744966272273535189104508520508562687736902375957423928804724416398519823754824402180246048570593125267813612893568936037734079928722887948412068377806944620236654263733209419535076511617603013688307321899389396978199482676290050939531222009101341328269189354254595722896557582391749255399247748745112315931398037248611230219948285642190253974773139141907571980010158928552082548391795967008751856759996411180170572183255114885971448688864666433702633588514385126281018755420251389781014342679152134097810797459075354082286331079216610721859932803339502736186408176082571323636908832276356654035368031372399449748230323504035166089116462297487877476917187942538450415407332272211429095187787762087205579602206008743485294179157369536475720306010228873667417349771712788910840988224107446435773290915797885531810199177530194513020149135696391582727355923460800359340761104112028951123533857854978118438300530665462994757902862994283500237518755609031410196855110804832324740782107768192174264646400939746072578721078668211551520959431380669037051855286229394589475676255468952375234837283625006774209318525911722951512689942626604700248958535594329424101833325763950102340194820454063163690977879284693301430727329802835942194136392465229964198384100454714752112007816663458855070970094661584425449141740938368442574594962015692082273167101327810939375497078803136886353443382893983423625803260351771836394436411761033815280984281648796486631622287588155676037707083036931346908073477216497639496938460126773528885513132298118138578197182917309062563845453565880879895697672247404824734742907792909567901501943935816734955597413223033029460412919221411817792242827390561074161054491812860395780878058239729107453090004041954374799620423161404951989032224325983926808018877246792173535248538461391617347089729372628517229260847993349271686488487557493198319354514033927747341347365613223053209434657544758240832286511477601545222122087667714200586423759392396147827028857764808716364903720627949976356301920934225631377149781455984051639685891428019463529331386726668899317943951414213126885239847522051594572532867593428417301840827986899205003775710635586450558577130836110570619372710058205499067482420104390685295063751248266159262127961571776552459287692846191816108981276182803362721546371417734320675580221411962584865220513095531102457270670161781297198816124719558955118538616973968259560160753276550610746979973113616765444625179831235850042591166353368599695870965801297268560225801448985447366619961840636691976893596090986674726674455861159024053519625588066390885389981517183106032926121322771636893806336107681004965385087153570401132129767577014087452182250658634858426095576163472444438001152244039409720750792063728607809821021868484907655370510289755976174578431321411363414074441041641613515703516397073233042041494388392013977966990190793108440927039223156061652768886863585314400047351745174021981479805988891183079130785401111647069309491542185747268416973678430808937148842784375900096343475778983660758638402226749212777759228110552173638893699509639374710262238717828063479332388631039506878078207953338106921754868069720662545918897636540666585107652791285901664171928730157646108198870507410999607065877903423866587190420902333945134708468975591641367565107123311374715796015117494763661710534221953810397045668590217430158878407893173943063536517978155546685536225415346182085076159915932447735792529684310694748694833745584560847387605933286699320067571376535166165246694681946966135143504233318078671365450177174261842990524645704113570716078051856586806707495699525872737341431456184501890542905906404373587461545156968793691229264728344263977444968501253007572285883685716934087417138088010418113030505427384814955285674047369308341031556974324123823420546369799558509268111930778554905824924110065403184544718140800172218581765190382763967621379950008114497598620228489905463660175084560656203124391730084862201266571193041315774008749336489654524333607292631433142754298996282243462495702080186673798041059514657708531023758492409238236910002099922880509574586455044915725728554620196096329518849896541636941607481913891557745679649327921459351595935331307554293543514339723121390188123716028645260051590204930722616669107907178056162830471047644781811493477154858624880454950262348889535900899212626574774756713968776486591306420738193594257947985680332622565179483856204749631937333288567227865859173743823394556672133816285006611113373956952309425619667842734828551572301031552955285942851313251159820863821632850379510370093614596630003211480492446426451372198315930622605564515706988329316249536951016310720613067055650918211170146692898635759165048372510475768172046184751508880447101878618132995077512801041802945839081575208319548626787553859513700505214813396384827418466194495369844803989920640171962004141228561534518869432637705670329864700870784076445468575777197544464489662039132854926767321757148205775842375288748725097663012144812543149075764123511474944858217970310494515027430871108280962006887929440382924277878785253063921918436339366644273413901862644063037178584082143912839639868969293032379102005136505587494108049634881244775020379641392906259905452686041005782757082938592860685401619588004664526030668389676563813409205877762900704052287078614357381268969863568675117752326356371702339867906235746685204773971284210126743313432737017129312750481341947219163116981351282656165187988967629093328031380961822116333747986054196677928080491175953648714480867136396217159871572308929574062338245177388099581464363237487354457757213319130569649885283899488591386466252622949445286561052384710520196258663366149544561412626485186787339253252083132747258504180665025778335400127495554675675715178523646129559536906240612633272062298211598063295520347498013979964528789102607300981821355226474341291074157076311590202083766200581276728302359658864932629897031905852562805076130631522396332702378335809040498105715153930797528229146664753169299754890944864203929929877061069403161294154667564368874553398075176329930560492095056676846851563204203646092859435276572067922450719532128538551555460110713849159004613768110403859839115526777252617123360761831533196552395152122774562600847222755004283321713303848568675434011046631085013785727214696412216982199935533114104210505685004654092592377987394741608942214275148232240316683357243032800289410896273907861004308363864193992274496697482215682250262244305813237090663023905851004790881747015674489052301608676723085453993542339610349342458836937704762072856173538086579745230820889173030453692766047351004300749632030675247411008074703666339518103593208469951159958838300615474152635821621579771098507690333231102972309356621084870970464187818518105925934178322571583236101583365930439964983908419051615000789322703124558500852048659685878329832206785071261224043871782609614887526192599762759743666946155839149755808807943650639972315307253911201317715843672636170065724287952712973141558428135957315420336892584399600362828992062901056101286498347154047284073662602663546981299067366627917326826477774467650035572560929398057752452671852382120055188833927503274440173347021453918498489763726713712835387807989533632271397514045409956363526807729327353581766801326580484180183983248537172052304636027045556408037399646803705895037288982862182574436397365194002363767298806551934927803996554146486339050875462807436968897135300850124807010463582401110059895692576301805865213037199701720824945083247389030538478740740069583974053582601908796732212568095398491902532103003393115192343713043294169379526559035524994677293414651000346232997786622464248129825724598342576531218865597155262214894187973278990969024891662386062180236335354117271733771528903859417480786378779611626796189863807552007497909678578089849145901109058662754120174723863691952214288559183131437044969417735451206470054442066979321882177292420857882999199793297783453191456649000025767361663957671350709657449901638119425092256932803854541187704084364983549636475363075549691483225510658174874132649327988301650228766289898097608677601229393581890146354444421216616241295139539120343331209956758851331830698901809153650937819942524323069646269803999676812848882081600130265485163201672598576995984449886972141514417394615060600154050315472320610743765269085596591473719611510487394781493099778162156472760289351698416287485976882449529393834345348026805916278179758755389777362878872841702534401363007492872746553886965940598508023777776941225949073630868832748514689955096869016513453192606546406580838612795174108061202049879719515485672300903189460226499911544003898509244900133262403058843473728164839558620224680953032234828633160161577110830669375579675656113100324564128937881368780633516971878916522788018447112500715413026568036387874617495050351065454957068482146360381740146926350922635036775982458653540816938901287025753186739377394571933088913171422903846231747435781024790848423513087483632547672762130120099809514458203893395838891179055440363344841863479667035088015465036806569653811449873339506207770201430258513959038331313375608226485429449988032941156927097996136887186136905949413511038012867321139733514804676504648964282448552708189266696880340043136444500303144741535170107584932074145240189644485886172047274050740415529072912819289673214767270143365649195424575720927631085119586124493454894141724684510964319014529349654736740940591660581455387779985843350328962716017716434760662589206360548731219270708989719877854563007220897036014803718872984809482286054310295054688874536077863951502420140715199621258543342022609989933250596935514803042855796658870713739057126230756912860099646157384971854032002217499656818725401212187870468164229749478176954034506160066338453820362739390999040991563000860655955649422322403506120323818990068185865131768505421822501260993450460941680499710413454704955923548142617982773684282714785668197169268697280232138131148981064658465958322407683513441944824636598325689750220161042077244884716770172450652910661609132744384039711303985002776905813200667483395908500701050752287041257903995502691699065313605901773702078688443358116771223644527812920312643956701645694136527613780737727404397026384917689509120790155437542605732606603729173462133189255161058641133785804073894713053732362612765710606689290371214833978636820095810029171688392896402917060007483682450481566167158029232160897654060133161900428009401729921704741264801811984703804523325043583605735863663471829513465125239468865016858786063171662719083783832881422957429652877079956857497132521921718376508053971639741640779388205879691409195398209995617361069082760967325063738309738429851952732361475526920548953768825370527727175752325195697011810535722645158207940203471217627404767969966380937757960753370514147575594200077286698792356035561126457808393267583967496191223212554650355980353079226700713205765551843179979449766929878877845120787148120622353743439028734004585602388246670384597504944652206591269022050533897901194480786839192319177061706516203791149911726472424164957964190907411444957135880691704576979206302529608082240417299937587546958131554538571699518568523435181751903971369827532436221646408259317062003906266402090786014935742153081428582963978228046841551806612558555635140696301908616892011760427986695552294417034164692569088909387664071578119211186836187815627793559165866503288296179940658207124614357760512996588792566945222131995045800592860566612064637804287900376237896228117024065381976960958734744771092556502407098303980044284570511131938803690001733687329094959703273134986807591961586580545438398599849439230932278688002362427343801628924755503664102046820381469769463181535711451543019063895445585431778254734096210968604961408036241980339251615854689083583633960141079281628145495119552134113128010733027086971338257141580979397904257032925872152746850774229562636072849502120409171513082384345085232662461831910231843872719416070157134081493888098779854101884330973297913672536261781928423142908383681013918493196323221926561694329297018333095078011602619096195940063987739425997048538209977387357090221871175472903277790213047037278192874386711295018747116784519365437173073285844830318271137759400882282936301676086551549789662630156331303046217977538259334780431695856711661002229019843097798471040773514909398772163377871854759168771745769761685485088874215515499105744230678776599896292634213605140567098987868574368755193404982593437384265285553203031791903798222414896886699570211114732424512764185119596740446434770331060372432995689974851645152836824905455976662623050468631392696176638667875327557277572491417622008820526632798871585310299498377104575140096977071339391966444153809490166858810544867528931996921072224005163732786142212004963435283527115076548378757999383319010653315773277761058817138542998612096682622535438922317033714918122273052313740650721442947243039642715499172492301173400746609678500107633596800865930393661874730151324643712394207471572617762002653530722268626654391002036608397679272031782084235716257305978193954303085569999261695964785879067105546905245956733669086869817170064621655179839817725574350493657143522850824649307450559262125472621245884038534230162386530414703740020324690829699030113126421324463794192317236989012951080762778399307798732526628671474413146810115863614314812610655389895791473061984656256196702337123463273555808040067668982492352156321773029390916559413956929258854918718262377186821184019096726645132779975398559714818704712445214339587719465617733215867093367299290836287144193641263421772012836470424595165412592722524028521241298221917245273422378776873555419523437426286253334465877363403040202633232052541843710311340988723571859680211305570887176233022778717809338404510862790889799554391256542410263580744695280424275678271671871492914791524681522368874389981603817023852445120034378857692669425183760965131922997306670831518644660592631978788759823421917743544763938573180415349638119531993136699414434362269744670889552826334964400600730244318673887600648363248270718726880423148603003708762417839351682374791529095910306223447652333624809991590278511962575817334290184685984953812982792998110324826488698856001186366923957016000598774842902292371969299080691885218065148054395526522446423157025924991372614100258993246805920472540361513034892305886028250311945573043051370898650123041791287983159035979490045684818576815203580601353020468725226907532959541752919655464341708689584639142005504280950642813460553787898752917093230982292464539091025191888939216688721913781160924340651532350075997039083554132383252333040830549552859793003186436980406028130003112376885599687941278578496789469202638690805531719401524095458239415548461547119625735048559449634218473336626662214749931372042206340111411734623610052799639991861766371048530204969098022589605038226646655221902920600214010959586746307214594292922093746533326943810268483394006390696960950372559171887994092423343115999556826062997648776957884496035445536692768706261522300046395825641883390642374166844385115283514950136409077317454166655338733332312018653804773721546087700949087169623626045261052024056385154049094359988602634481714490486897057424624878627474457734270690708837945156766654857998803804420712215089704627531300252281207818108277394513328018361524384256526979059413626703453917006721720866487623570066304909560893702117089057762444418933501842600684240601713340649467491546914977842315847104555341882625353893720987093370785699859383963622822137027623318857809112098241260929069872265400980446773705784963218684388183245807283706357412812719212607700950729360594532467387319463764729663878729169297109178578599293373972605144564103238051382393830373348280909098632973748599603111263381258621105205991486248112379538044285032298325406470762508132842331825600000849392975699135807367828141524596432482961777836213562874667710878086033150089010651802063901924322104063415454616160270565739200872478024724654204044527064930298582585619453134806974676661552340571959730283563656107584094772384362393351540485732735914414496399323373068467423644065803850018513350839805339153482663487201317399754685164494030631976928099049445405741451549789074611602383747281351292069236492033434257080942452001691827896919430618262593106505203105731248251649057120578068428219043584136088635321416237379778621551309270745059149838714236668047639000427921367395703664636871618780265796912977078869535572388665824863079762195163512911219114090807485326256712224045812864168345392959477188534381440086974655121131816770882423911952577370002241635178418543374222836989328646763986494134712482213700081002581686231996784376567769999489858685961585610609442339956620777319759815576056987147853855875160002020503364211752594501848388543690487946279848436675389954364597181553779414884070419469572724364579411472925703643331632305342107068128095135844901685260630845881712663273821474014270289584188372799000978867152259926106437121112262068135111714037972416566698574580841732357228991021798337050291762476253415792944512552676425061960106544283753495311084475639760957592238207822148961049172330500918732821364275191003697791144484432520913747455036440678491985501987896112465787052717969728619883420532224957464804323039494262173466203768096330114252942638954071500141339849249404289013196217118106844030599239214575456741034418005747426369849977750297225922245568794654203565475464248785589323595269750309047863784749064197363990201682545599965481064815424550130469051106731749386380273028578725403364949601931754975497107853771660647389171915740071939396865767939865765816674379003742922488712214675538164615429679993623042489977397837957365887488895591750748001896438493006340764618288273284775871496682716803472603059334785614076897645941089425941858491848833984554445544996814448236647728301623279499215063117693251141625845195411049380623625473287240274439929757371700583299984764710997086860998200132652320847623125101905673327534667511821762429687780652644448886206032375604112300184131771932919704902560472926435024848359583554334092017519087391361361062272263042841895851125103316116381088035596540776168322651610357965247446504301978276038372339110119146011298065416392052420827900651573130015851511068699802909924772694390223452195811069869668809104714981329631981366755896452287669282682807302419652300521376390305437952572047487910571983278425402592019620501970300177536674459105756145277614403275245098375803127045891378866479837407807273596035682081578455357874517287398527674533225157094927654002092827947429821905764680388938445380838274585841215074086711444392437426316963660249314294505016711590059821854844749352394402795021506800670879171241762058466916798801876093668913742050779272246051196618164569806518063214840134279181413741499908541883960885725317434314536735621204315545427270675971718916383476117704168042025360418876709241166427346460664130406875909708661653984860226800967861260285976386987301614997763232213943004739424230200708444042922747224800740710418295634323362991348779965322291259190235656474211668971009543057045721117976487127315564914596335365811725017947675115321008435265172133840074014725879045355943905917112330768688521587789775091096826407592940995973470075792773121116636711805999674763246298251456626296397270818377972665961743034102862054856011379038916957715841946083917143336873672103832741200292267783346954534105997969137053059515515953859568869113889954099748649834829013846285367525737464288203803812537958398145792385269428883285133029267149292670275657568686180564244030945931896185266412406736142831216421133032346336586955190781389508169717004281684705598742386978637753529521642307877237663429058104306080016943348036759482170427765082355694317462875876825007797947753936461174279843314998007662015630892751529700309689438446782382972058579835822937426345021147358527400442137188787038275238344531811259146807539547018690176128440975096132834485986575871486538064259260709174762731162843992636369586656384403180084324805718392601606369288071055680306708498152857183842531057493712247231674261444421273878447651441090175120844686865871083702232657853539527473572827128361763303139544168546024882349286894568455648201234114373551388415634411982282225099494830700944574761264524078432180229049310331391934663725567462548345958412777107610636536444509743458383529895312932171756821499577906021401008558560237159097200871767535171082669709937605365923437880095015428782422334713135754994725182049885301834873290199235993309275032247532624098766283655380367722637499254406197632343334412667411220681193551047466419383431546336702579708558046591236235666990758104599311643209057911974257437906640112188447175885297170213481992076069340177453060523647249556004337165666996003551424192062142060535323999996328009415791500151309661001486412957584993661360300270866902256516040737328835248610732546424688793581526756607780561292017037672601255690133889886111640544342377420326980407099454681213042466897539084491282819503113846163094259784564198963278173489083669615287859731150787002642818290315477193058194140721757033393943206991019147381415202214707936279324908687874422240258335061668521254760162587378175020644629748166830411640928702884762236425124399378380260617813482643246217915800019301504158062385060427821658171865053943417412501993596786007593720797681234063632424174741243571343852799953424694164966112824096756889975858961226212545029932322994581741791840040488016467424214611680565531556685166579830061166300322112325747216338581204569194054051388959067149845307136919209227412968950027152326965599948377828908989872729512028728377610074823485184583235074257828849524378155802510188799713329825540295692207744730486447832672129770226087290141084477572857615310096983106457196744842862403322197415852910402141891965945303763358949884205863775659688948171034732940467608952752169704364639816042965310727778523074265195328639229606081895316626992441313478130589719255003864190216404446496522096026588150788054324481439093459261167518843652102331476504398468239804090284934999720778007451421894306625190383859213849077898405330250999206824779000359635026713696667384754388561871622051926099417710406319835363023922518723069537847504497730442408184977492442015557325437229293349043264332877164672634545902301096269454695392138588500948808193136510647742910646279940557948717385803857693183462255926768514682090032828799647567701025539752050746942325896000402213067195171240454434167961220085476143437948834985610115137557536705446273354864172263262593191023874778933692023979024169672829149192821898998607327524656332904803054727331610707803227263342673336546334237708121098952636485008352774902421537466337651040495901969726303674816413246825904411730262690090957680961726128836091470951051106100287185007829053349450616407615910955859190727260813871460726177487846367179919190580821071856721434469637759682562894654010045346584176556302405642870661766276651520347665745765359669063764615591857484094025989308329450011219285855846986760129465351015868649787631200892413624273219845945193800424769619635039185047827054251355604713690424056730442766027428719470542239350327158709808810113597354567680367724491047263605209570109186204857984452711844452260558087458270798744478458670531651041943308051563402070259507062454517017614998001272478747556862153148747767132147691601510143411853367787437055960182519222117014100625832392778535602086990301460968782790275776432707689776099237378570916869226680693577537869704769214136989270384087775862197672891080143603742386116149155084339815633108203881615212604173544120313590900898474589738933441609575272291277960995413274512729293338852365604209692054287223256026395939823500072934446215117448481472619179710895672884744470837306180192865928975462926570480254314284446898359383628302589973966221049432482765679359054804968132335235639258631888997980685059038846707072362463311762453744199571494264344771251649309245668321518918710588965326932677888870745044349587642538761929160415267193105214772637640409227143737213769524758936819176748621389529803683368117764245522461263197834084105060485617331947832955723529880371367374014104743072762441478083541412379105520537205338463235562523559462590504542416091943949078089297023455673792083832663885918394099252402675598875114123518606524109887118779464736611852591714412348338611935235147275161492088974093929148124885576209789941664978271103203211737806950311517372523539761918354366017387835010918841562510927367331466688964500877492162279415726654078366726745103216310049271288056006074110269005657655812593686333558135953931638371985517919017699754573486972439473909124488305580029448386592161357332094226318639517664769992455982112011576819955282850211386012540608959707250737604155181789483782286638030953878359201659714477682708765861668250269877128417291274906909073061750499261460870020713748997819694931957471685502119893274842138265765778696769437844350921644746714780112947666325925355547484826319789804203914107706552432928756761882019748122053123114951319605468979558666570570592735052194368734451338236277284836463508789915394927806782063970291102060337778757993305759948504447099014924203523575132815523613012055794913379619953970069772660809431499178084744885144095607818059312289987582564041854797274325571013194013334776051308230241621283606165941414005056826696580637471544728565058706372875103122486871494583602395605089075132273787498591032272858941735942127077785631282328487699098492628839855274217816161712210998830497849835231506626508594617045536153886162442677796477927578780607728606815945523457724387149618278023071880989605082061018291715440369448209533567683926784340142399528892639220196513801473242574946192432748512017828870713094049501451776255996907948641880802271162964973315426150314563209956356605943457095211484853024182000128279587950623501701067389617084188463530047533482881725976563477290836626488081914705665037412248836465696317125111858825166924532251166546628021660587877949400825348658563001174122130586682635485898534135464092978498583663312776865783005833904165699563735176816148843812038983493144043974766723447992513811842143482248070338939510123677090284432924391832958603480476012695754869698306104099050128319344826444694671356813240422657741144138120980865447309766018976708979838532305773401229843354630238757421589173898052331876871456907336974901426529684159566768664361680130125942373551867094753927447255410864187006230791131438562669938703425125188580402301539161529304028673844633859699774536229488428556827678366689959883862859161183545589632451784921758479922102867149777203814303552494509708026332417059506002063421951267525054756889664471514367298540422043665834310036046876319872979252091172952291735387614907141061834204109541872060648320050124170493978906218630469411528667729852695655241787669209033383809813615359102348992521251363883000897833947957758917566880157835902945122153842605231094051846911307526239876621982532098860108932959150110153711688790391909601626407208484597337837902109885743156234702730682131497970526165926612619987808141726652915155568388352091843735224084741711563225928590651963816510777712766580909892728180773933744994771371219545859801950313788388085697833675147757427212108678573594620771219033839623999028728933601634045110378583627245947845898498889304868799292296057022009696943913019635997088007119866144177573213421688817518793916043155272424497238455427743818975079521322511262562629478954422680221319631022327622790349415862348246610288546278848876978137752168942276391829663298331176595957910065006572032654562552634074834489749963117128057242414327554415174411457123165993078787561186215084687440319347145151997183982452733209977085800505831857221243476798443643680493202087842989559800704674261445039598228674606241958680995607636993722036293904635005892546398379740621977252675778501852308033169273180722455667695628622635129881211437540053121392825836880287848349679067938516991751725828857149715064699463258814033546369107175955374411102763566058711070429302152736596486327146374628718323899830247725131302866545446587021378719800576769391500678397471575669349780134519573143321720517579132490292362447349874349929516903202010342643399586149213075958936438006814435418616086039293470493623835397062517419561897912847438190638231752584943660438582847074891170087363538498867336121812616438032245446784587925199295260539569006937442875062202570249769145015626039118560409268126520622628974256132582203138113165534344857506640131416553449984878894587130259632160160804246573817829285326499328172109492049533202338344711942843726060427404728238401133169527671173905240039473642682563888539543587631664821313980892160807074114097926213746832885387495125074058981388110934646562616588694656330104730877668914065032904253831684127891302740890930489910675395337542156534376596606971969022114796825710919037116377636546104645382313624052216692992120874878654888696500015656329895134014365796445626344855882554537059154228971877049895912130594962857910944858464965540283449965761080770291979114858689764403433683020340546428616629864510326937106705088535320678378249354376959523801027538911591305818519681689025927617456234561683143856985394362959568435697492079982968736133298614345715608303344660596899174608115240721850694832690948952912212021716039691078513340813800888196885008974077310704595985481470452916682704840667593501705319773455165201267692528936593109890516291254378232134484108823350280779013844779376702271031067969107860534464168999977563098464861900508890485472874337875979136409285740482244057642465187697099406744048771455840878920997062512080035259381956375898790666435842845526704663355950707323602524415535142323116250409825938833829424968336030633607919056513822066130795436019475402523996240221220461398906807958237591526687637878100392323264983884668392582323837293698895695177985474497539060813013142499113521891829937802629347160667414741339549905286754910277814402733346801490290338320546491299104617776635097169331712626347005892328301992580292403860433158293645354374890243549985577151195643448139072906772430927302297468983147636683309377066397852581845997308733853472958620248673716890878726637248454859514316663149284309538215624889868330403648671461381684242144295149793974550533184544188303175134196243974810138740000382303382814249087828023066375938203068306042885978267584018198736350896290848209822435934517213702197053068059029586495445421043801887724020120244651338584845442096918216354709920240163736155632840383476964556439613229096551498645543216371600494022578249939966908592764335454462064785342942305648807142715548266751317580052698543954554223567557567611770392815237556878050089217401694655695272558690501315622753722108221934297662132053197360857023472240698482786221425963472293547639391644196285747872407994425901275554589611828479201118123904752894577192642885979983430757078545134056124558424686239084422536937086285831154745047287211888373554719644981716060001637377861709586233651031083354843262020686307197190957496206244023413734744356785845750073096712040658455072226083110275619376881231815703037366488851151849969998238304263618067887487902565427403808558839755648087659375334891671161017610657956446531576627081948572896631137531720912314920263575417510243749584438242500345347432498262404652366611161682489972286670896497040220331815677296137101714313774117750863662648853677431524111468422792779004860768322213894788141010898842210823810076925517910768488540535147100562341947599094466615546423563936373727041445853214648047148535878758730443557571965261547992781875006104177179562423881847504493575080133069527869241689242867306866514343321222171826710236110828728702093978891792141337184640617924937968752056064541292489925621902004007645930980121780785845151850128341609060214837969780445880569258873977467414391236542686416905757678848250236766711839455428711544986140547294969690422956981665324898678363312367549973190924033833209229798158397565318354572250933006394377373350557756545449471370187961190440191840283873004541330459050339697869711580766251342841866550983856547579611918575898591413061101800680858785277448744587063918034646410601692093351274984494828661114455771255510983281369249619362007293680226620324629323771229022586985918390023437037806468842520372056231071517734475996463129042148902932901981208358654744147910616696793414648854436619229895875295790675090764613890913721832870793960477501660513055442376228327030996872938100627473443880696696656508446231952618346702870082571831231651576694059701449655914793734799771137919523437073153923668088642657544119453117442834778131437288224410716877065166929760175704585795961047498638499395151922127662601818819381178158343386849441083533157612022643531591745734340256170223655361036272598651764910984718594444555423690233729487363481271269043222100121590896453971617076520620072444591332562185487375642517621949023536490721773873848247846612942742760992613168421075464704156054984652154764105360683012236994987910537582146071591026045196140534245293209900415803308309134027457657357991307341780735944388306917371737719508204123546284346671737319239382824281028378273581307293486555798425558377004156510951168346960992849875687684073782552453119874764875678177694583619112293312974068269736203542595834182151823489450008529051220535118651331650503119937210780550392775776325386491172072217467659033214622940949772861986109995750345745001753657148375064086277711444202865339307156092136085830802678007580671907049803897398982935524582721239225731891424598794081854632255407221125443252999378287517822202321886622918651867749602947018219657479554720411739059235660180714583885372155198720228612104642268908142129565966158092715750019284059278424048218102918764715000299670741835689300937291581756475975638923420296857051461384150575759756244663168241074998494636715066338129618387824587131216229921102644811410457473415067049858331620222511032597875455788557804730694282896781958170244380208595266091124419482641295383561365494508502330564916803457340751591407840584210126968057570057572828223124837976293080128987390907080317978849016258620358824391057259027099070560432227526936729880458302329376635458294129067851170772353661398347413803542390897780972227411433057212304568712607788278306818588529978729763355863548455670544709056288146291168547662147191773999425038358179529703176100882271615981453968547326525984833548909317260997273911848145661693084182146416511163247441232729534791840196797148541139860030497967664303244413686620130143571538755606237029523931983000357797541345140356892834323641376347801065755569149132963523635363658859238665795233767214610912223771061703504046954375077634517431981803850215282823790106886839370354222280614892460297744600905295578139128221663551959290645364303907125123595991718961171592219789114748034919542361136177963973932774804356033978808769822138985366243190498332072827209158861265489360274301078966349776854024609607574527882169303705406233625837039690743547990441341509617557019563701435568150905622478869005598653000668444497033969975107068549788986305755477517819761743215140322815306821369382913498924784631417889309680152595692388647912507614042600827171263254143595958493653375670784891690922690498239190689381229855612262598589535632098623444400882017494498908652038706374546276118990692734825685357844314319175447045348966689640548541131885820414431033266388790247469263929220224336207820322516475613158414132140594447581509844753520938889008523930225013340163280691189332953106933821239116044305782268386009918666356726632131846494298779473177217102432104604916085625871843490362958335942263074348953309647485077330748143094766745842031858948826727775968043947344459925375400314252017249783590435578085121126891770722000500735974990295136537530141519467544650952259106717747103531413037761041682452353819473286984670761932603162444470319432808823972915445234549446676517177445786224728198365850269742004379426600070509230117387663574416532530658921173046400010264134574777562478750284561161970195463216387954083154649073956516546123026018997480620968971752665389140457098192513269893064828145104577481379100611005167647616137843894647260228749093906203941548072654960401425734537921286498837164203468142321120924121232584762634280809923794874286931882192677974357399944774835671521102432479302226980822887468475260640189702053289438606310823859412327457923963496838161277272064278648964149217806785583451981163334149810576859189337280917093686168527111288582262771345274542836217107852761356287603743505318821336676196343579178572637558972324434575386011182011731886328666210439264233383668805001610065870453178137838127442765849900316287932049223552447760995489757358460649008674310459071676979736765362725850276370538539723246248658429682547718535316120976265251524199917260566488357366283858244111748928873583146092863719149581066966486756848874794805157385290317489613373311486405012832980594756199550865681643616262669966580681619905781211910637540732248135137347617758522980825915369201652146961576383168242613203654428539702838174718371420484079413731875810570542123527059317998354808695101190515683830623202068075518414005843652671163870905481155972183306817843782886590424741168848284786419927752067765746488675788397431154076309103630532738495057881983965255436085281524226103368598141124115038281323123522809385833112998996090444226049863916945578879800382467059764079391530157891136647378097842973154855727194624585945200191853519297084886774891045079406080932224446486099300881111553045717755217603849469790827387938812194442971065289230430397379137021358524043447144710043772256749082480326606471347621336065911500381831685479753368782559869226364944297027461770731756026996839710281235302426562570302797449161943275388896364716564475462058622157850203556173447256190448639484555845154586921330395325823618916647204153248793419542449307382850280847350812882363102955798695920038426372867251624622321260354168512652288423748584257870478228525401212625873711700504788496443418776796810312712187545040596515123346436988119096984900821526335361304409786394294137377818760759015054405513512621413257380016693428736872558566216148851754645559423021996403728351337859519965385836020610146452520126679233380879861399355538745425802611372370735786527360129616289686710062341243553000389759369092691968000439178740584565938206685813239030342109960406417129394975907257618599731542445671642831738874525046490415122337764405270820730920057831258217279783779800630914331345711245799200021616303328070424894549530764588289959596551824139770175319601634131652574203325140558723463319082940524190219236714202603556616745890266996450346263223495405840560248218553097749608662465604177973879785689168501275507837493515492369132935906936137373874436014388531265520504869498982150784410540010548530924866473033403325517163000104750589812711972728035762396807435759609327402408626682021773536439637228534702632415570005945671642375363635696051594924764230498808626584173446559952962991371544542399549415713140341278963234712783465461733586209354646414531187626811891656164369713327274549110517278170151343110445207359905971425870897312340264410716807030540972553699397803912791497160273788621342108752617372396897809077521290666392144078256073211934093904099587261735718027527564293560251514676534347298584608991455123087497245095428185510465874817977013081743104655563702421239911794532469699879782994505925661338055713378033315866612805933752665214362677629939710352145109171639633840481156453441622863589724878424400273160235384927715909042275635864497709276671445986276377635368163119912408550546738111035701121176729474856468497361022195446093380604755450793289583989403685605515213821875994799578402944309040807800148026519351577191930551822992890318056595132986548248706566266003493227184025714228864102262539780618129527809679550639174968287395903041180406787197884944140381486290853136826748010886899987705693033134620362276319807390622127163403973961106060289880249656090032257660298941061170163780700114075330160778965542652005918710014066026213775155983669256119302784210296848231788544682377125545936157463717440517907234205849809241515739054709802420802109854146272777947484306107715590098825840406395339946227361975509039000564302639981155406374408200443475471209492033204025409809385511156802057813494228199179909867189005996977609642794821326515567962724902124803723927452749479856227202034897673160443813856913420190662041269132800814927851086471191066723926181820121817257092418239901402855333146585988398719541862572524547554723743916610382614586700772744048127382546564746263674747267433622160950920040909977248612787834987306355459737128924604638830195016518992022786080040224664683126718343501293598406638118003031033440015137296178356571867829175163590348947312698582260684993430826968562018053858645032714626435453101009428452858487677572833230022485993712047343357375004839138577595010367499934470708435145033688075166969324866925611769015793870127966951240720526203782314152324404201028585874377711472950913320990641220830903965928369195022069337122267069172584654242706889733502989607992944525150274587183190858722679378166695277411372264131284521466499245862342142826049223525351266026595248366452850951061013225330171311146655141859232893362068120649257811406394412567586347968727433463541784439824961860462279130976863693576363332235335637480344721256431233102631370440340795315617406590299302313124447150130260726001993813439777314917513492937185381111756711083861138298813824156760476047450821604909450559641683260209994746458069155762528658009642981325733654027943656132939938043928351411149346812923089823540238648169435666465560305361285949922761103443762469114941254836713082344070291851024476508895688854761412158760099022313199955060592167730236179605497673967603371261365697546674484633016006612694395631223516353618572929330620140414459683336548586311315744074946604643225385404385021363540485942328907665932105955692651141181026389268431164949379340430407169527054060262223502959332291217779555487468371451984101211927699132688267443272611723896731070159725880483316192436551684450265725471253724837790469399428244928030953271970844815034534125420452389761363452865552477314622308678785696878179676989716484976278821913420230144108954538259977956369199583852227268601375441618010379850158123732104281094705063048017886086068634079209287661770371044572030732257258257555303636331472285661638971160724663827241776713569047497979121591396936657979897658531646620806531673695116012205279944524406635075388725135629672852295704546563161842918574074447827413822886924489735704868302052139095347991380486024052271030593809125055841698064244848784238832415929107706068312791155929594181582726784067261635450623838343528219122347945380164053183049177263727694629656120779109556061445184303058108434288153854087355420437252395559650068550490587918148980278400263726191470582093665458191229196943061499885641623142989170210962810499385668969246543266431779046467733059201693752029530519756061053282088905380729408587995586007811779565057293157816616282793120820578168865421881337986609785521355648041344228571254771448226881436821212814884991814602782720862983578848704094381876983080562062077198906728913461317083642988264297407606692433809302820758396863116676457281577448751268766898397648665002327222415125168068945381933920339976677098415939537928247205196692431810326905741270054878645576562899683759982072069298195190948084492043026836376731494349501795075192840143854379238340658789058257566433106411631385894009070272994876100820957520941199221167561711198949198531618293310315500682741296283361414260583637039331141378272988216805291765870782081200659370731813635011940197870643005378697422726665367170424289954679436844248885201881686202315772755056376548207252881504124320543132294078737340238380129279541267412780965474348976161753048095023428910810330287042283186760809956297910355863269195639235412343030398009679656979627109053621050734914894827365077359497894248806174392638213014323043729832409375914036795584484342434013520882949394007009809517954097702770858913958598024495314511199191600185931383874843798531764367863185405183110189848656871539675491074696630324090250001584273441637944704955150039007461203060719712808578411908614396976512253230029391275214388747440365466446951250115314881782606643463914586387428066584438629448503651549898424907671847756373095236095824583229297019634699475141766535938077149902632152556386783776574706017335005644105049655345036770076526529545271508955076643710346247972105769166101636755369406877250762159343352434385249060680492248621370296703484986101500856186615460750860717496745150115407390123101605459008560800401257906492944354901257893215425960742976599941747201434925909423677280456696567874251662841972796202734020857259303838481914299072955563533968772171853742310905996207909156934471303360788036099083302917158604546599005135403366931859056061867915189926913394646074456631181998417439608383687737292758047942844280914836896263099903438667314671907496734801230527687779084496371358034349585378012463926759304276721864232776455994758583724417977017128174981505790293562794628875800799496752615962823935189575857742781768832807014736785315033543391830538942226061327037991180937876064026353508214424635077481696031874140573063152671644773016453912404521756786497761885126599372836351409080916117818173362387703410812177753700349224971390804528426049982819866249424476141521488307027966122410034370596593111836849227616188910721151121924937091609855058959108617217042261670166380776175295761762101763389700765616545056384742095288663699204239286199019857944779214143182492921390647651227528944650390478836505371179837278222964341401634716279800421310994288293531138948477827113993775966310258885887685206587271195343576081283587334229127470322916575209749029524262151427833639152134063002398334596536018518519817331654025375184176196110682468490052461784015664836677601863580553943076360312523781114078290648084487095080640480958138929801534389291486670352892022071694729615889951622032026409933433150652753612731096189713277397368922342924091522312949720810917755046212043915663797447058663872488753501203656175475172844757125321393725497044867346948823370202900191595074589653095906975703991102856461039170406096944729489002189145758925838055028599720346880637025100513749040437995048645345754965893869809052479685184424627229704520594184362657229982927861780034185071905656830090451577974915130600105910104196385195135779501481597233473695233979859544308775833090633606876547916642340763054722051854526553742834889620716405069307527577524686239585785388999142596118920618771582507334273133047849060529614893998836775866560767953681227919220146235690543471459034085109756642383962586422512800924178678745143579551136890622826082646957973273353055408150157612104513148810647271126885919107117745032924221135599742337202640343750666556385097567322038361958743359807212146311993376910608866837023979779249990501997348263055457126530468439745091960667008902225265967533772696633957343795899010373667632779995618434784544162828409932045266634106875532103789957853919918171769966441252869559605929904458957278898732147604565409727053613667116281298122106972255454591319556717859491587378988676348099713586729207493934049735668919662615558269860097654928035466317032665878207235251359601817483499442899001216547667944271351878275910964692587831841057599016969569082539644758899551732258466832577219222032041737636167513873736676528153320172761854983105444341457980371276465389007741938712243804864033962948880300939241118293202887782921835012557183177545116194011162936934336798238506775402061725196596555756878524097259305415743448240020322548814445769433586964324525114231527603206804189540809853499760292226285805558512807164058533449950674584980476930233565518082608051411629760650208725814246940431936386312961417830989179590387276613355915462111242171002691951152097753943147196709272712811830505443861569762181299470976769037146129304232336705311417328669776449998575291261684612604095583725529156747344782802500427706635101628886624241650505720088577252095651543002057884109501101870245189479441248032837504694170538259977762525951916543938690611955700573919183527889946247491066375179653892146468367692654506049217794702610857554512941581207807666507003942519367506631629564299103035559709936846165379641329398245127043535683380876143908626779113117927292520246914835396593815426516707837330412725411846409761212553370946160690212151390644247559702017777526064930072072207044888127832836881732705598373066432640592251624063266946139246425710202287732485084038059967606152818116083157871187337494811405638175824898298199952044507075116581081826374773534077428885043155427694247893981141159779813719567499904330206327524582129984188502564653150886934272838247232447003846189080205729559466088162393716506032383195928556923405951945153675396398615760929718051813598149820810743438232215658485726313380619871734891407641038961151146555428522535907910342338676548271308595629432074528149767996114354826451817289765317784022128525471807689810496613212671973937068279674549133949761073463316003212540016847721839531330336695706136714511167090974411293185567844735269207440551018547210927573859468749681059104869395465680729074667396558748877359249752060057831812723942568983127111468587579185476186510544076255302364259188455827457263599344391158892009996834776247284088325689559388530876460948221786476380245771267278995463197025934260501297784837471254159246650426209911869434214005032991512806723199332459879555847794065460482847776668871826617468100126869946402204435525279542172211526414874287523321625242863231660298570085346441823136296770479750469532730772960905217410900327127969276393441241571554830270539595614491990700996941311079574060952788731402770979187615588505760102442102677707610375779080707542080199942535457924036928940347680895435198199664958823532646019373868042295586974682689945697164514715435514069502853781493392822999767997177574427671464327905708983067857914268141431722710837420743664540367511907579466651132661007403415360443277754607616086038825336084059503431809131245350111609015777152344630208111464761050700495610169127499793149079712151571862053288828731391700137041266712011814233023637934302866563408838987113526618074574739825514266512119739955191985466160301184271021997821283838856303296130428539455561995469490026202793275496710697877409016938735710716206320952907766686664965138813970293250543675985942852333998060623509587041609238643271604343100359715991407772412570607427842819142080629855554048141234334698524683541792351920274230834708047261049184659569296226294994513497992670140169192977302048832063929960996002054511813480078401400133343142876145725922649459168898310406083886996309457901854230655792194665021592611677525195838365298141027610601954541181471884616365441105230727914796752405767887381675765986529569178203054684893074102625216996636223912004956556487876595235283436847672321881064916402498087363562179817328359952211848575262527117807824122229471218458883455634943628717612940747174443863414695365174570053972045991525375379000619770958083786758525949374384696374853731585074163380580442086928333260676421898890709152168440682998711082160600021967020432227747966400793547694631805261265699516169155465607117811249409367372798495130295443827375199492802041829431149206711054786137646284764297679881761306981930928040221215107086602928448316462236490101070709806253058101122930623880311873173443140012174555576228401538689928264594859529776244904139290703898592107974879045972988463535746232314348954413896766083776401414652011456554909810305161010893617855587587059894456766089194849729343769183966887611860911503241955235344243368173189665785148198766833634833232172445042773985753825015918365209502267010493292361415358188211276978590353159827829849134488270122686280983687482483048476982254124849062553432534872276141402171715347853898682243440492945059574688891506981771233528362989527683871650809119531107255493713753142907199777830540714871234496217853222733962754815698316807851644488687239128833856487625181547856613904347097638561931077460509515841346386314535503118506844540671996555318226022970586082571778928053883886912474918588454470906754196725730213082102741807372194506412840127303882417282870058679645993801588615904651233953403625955134219423733312852883768668140902183809093851843937047143243731143471110998124656584532844873601863900544458134436230234515664069609863641743153208245819497839192788079571919755566143413983857376069136788778903067427085764317249276730933370306778039343683057335945373041625217780911402897080517044590919396578528927801217798952112795060009998156575620080118994845547820157216078520027494486150326498619884093887908934575312614577362584656108833896146293151638599430146374395738836986311393607131409588102119855807857299361743196731059635905951031240718171242460344037905874669505259905195040695748552414946774766832266775667356297201626518222515074047543832431276514436626308661215328705264069390977487135507033851619123690267760108620343978837552571080400079837626451251058308739483531896680959507194306186920833694470601682234403253921180830631464487752680131635697561939516225742458597490649396462936268067629318236409801875844636694985792691693040230980248167766619034122850825775739067814439393142414893942908403640302454271124151303889613958048130921834924294937803825159588206083834598535237642033653669996667780402176778757915643201059072284084348753267992301444243426306728795504804458063432257611660397647861052010944562338620486177039133295520863745250170842248152960352369418179263824673518330798859126237107871996307260808702158644262884530568959353616882157129309456411309887402936601842447267991500744324959938853313497784749683730486048858846687728934011701258382447137587306618144549890568858154822207573786755325777908633608123160506761105912512754924287519046623497130398515143394131234461778107874155830941028628583845418564910036775184761347947342192699221614497654103855014447144248183429600498275525646254338461598009736277675208919863116390677725559950202490527375032608113501342878740740450592745749980361448985796422974143047995823602320892497067254645984070260881645648226828551607506263345508126295933222074755409924359315987765562719651518307127265365642890080805258644807758760698740663025164281885746035332817930454373255050774875231109170398903471767841750225010302475816501415786338025765630787187641807503264365726325936378334858266029384959690615500656808345280625120386917257933659836374126198295772164775867374855380999656727517231386479675059451185310572564837675609062493908776343226737161517015031027620558078466473672370229961104929844465727430857493206557605371631897038349082263153643792588456417391546886286497759772446642491999869061730398990008062652903928127440829853972062968486736543576179831479487038503790282467788722776205824539231576335220318804489413232418713039765176025767022419623160700043612107606856050544487647370000319195882687869992687413595255072757905173850474896587007065431940380579029138077408168516675351738275811869033232090465435721802682674046166302892210880115770783605962382500323158652118957374789072247491143846084926266553930484211782716077869110276624825551998352812835525024927658342727101138896797134369262848330757964189287298546284251779747557280105042322109903450893836935993430952062863617494835909423104019834473331952737946494287448855997868360309109325845772459565818031773322773835270536280688279759506324540074838603265735043258004442617256904718209566107981930529931998537328327130381771963394544662677421629720048170107730957926802649642631870390794345677140875510472839870482455905461661672812208725961496287283560681225904733669325240344291057572702017538675694939008571099121663222305080168535501713490195083553171642728054308421536267060389288704633723093336715985003893827644281008979520955840359885815940477340375270498225608469332328108511668167649361059424562337742917801320942987754917542050521494779360753776371886504467206217109445292844819902859429955253589303628845319922930108246969027502657734530779106772091537919697478460481009992742822440676655397305826236994265178698586790459110245726418123933477062540758346544882115898619554177377536342127783276364283715739589197354317588365382599994506576526423381030064851197050442214298236585260016882519810279299954517476704224414443641835603599506374143523941842228411909510637568768363444976228310483502155685444925736378379843552596501576030305564963350780134962339262501975990346075434111753874681387959662116605299860482484218367098726759800404164630148182928527497995782550618070098644120559625689780363792063514265831998418031945066454071968562690582389378214530879435910580467076618487166273967380000916042426231509568913849678190459550347059263681646284600234214810415495204022056518809204984061070379365040042146931706269605768200640885257147362336659449202162663419738791775871225913484737406307165812165274742239937401089926028669001913750143042135504481578322996107986508342288250022948692479368930399961016616030396838235704265343624663601514979731341968210642417145184931944187060650770280149173623818515598684512297543310187561187760507022302528684912344601693159197136499741087460144098447137046889423773353282925814460105950214317235473285997429384511437759808318354578897372405821966636554017656601654416014060902557959122145663102483465222269989088151495281814965781427946931327417915119164133880341149704323359369551277101868161505793028549146745312643327407271381776512367583940368302244498221228892154374589844273332836592901054105059127711092526981034497034036762460468256131080817997967091197085140193574862732050689640645442093653749937049134052433316277056768075569200946645810603651334999643927551492647692219651196766751046116424666002344822024878988173039303727414881730896421416103859320739621358572810211274550681110645671055545595261484979628623115050353721641567750431957063952074035169184988536996821419201515008310268203763969031312311826503800128140493105831996757217776091254396279069540776336966373820103437976163855290637402944265822699073603595391359371703849357715679479071745262894890683307612729717332916355847274156006361470926558112686638605144987509729980670277206651694918713462353014464515893517702109669148590391442782040817796226918857831046433727095424014115686107095755816270882979290402871706350783193727997243106228837733156031730359445122243999048043639976040533812931693710362861673638889632976233105363343880464686038020911608321573408432288353482550382804341782642389029291429955383422897774240340411832466449672344665798327850477029456389620428164993742769978544604330782267874034005119574986670016321976229479080783641237161066002803369557218781247173407638492049791348351280209142124549513127041434995935164845023379662355455399673143950632202568221065392603271809607207692843756964224785939877067760711163254388130511561806619242311160864640938290610252884120440075337857244406787427627290035145614136200389767179566502589872389407187084921265267355067962014490278433234569564738041061233137456012879458152683844068789664033599460586838020916456920664330747562203164247214384888691895777876896661181104377322397185332649088304000498908170830345419957627823522078768757942837761697690198108769335673903470712276345088943940357902175943884436372229468236113868856156345383576460613971938847304963921682131377426496831106452529404442010632059325147311511058526397921444708955659052934692952556261409829541542315540921752912538167492843631782794468391954607221708279623759017990458465680061609696667932491048453825149991355014080072225792267194464687877590153556210283664431296238808032684850017798449121526819928724038138024956158605667200110524461202123588293976339135027918643851109245178002432126808973688493143161136552182371839064775188453983358781365106459009448375454131721215826634292078586040956799078064295457509032660223316092054652037907400960114054870519926758292633478497270263385950524484953512678523486175670019731396521044830064038295208334347466986694831816189411132184618353738714819198940456431862188285585911346464619940483417570858647895290631094371744069584159724279825275202709273612600587030496967555957948346630904018185356113131248937455182229852966190649601347682442571499043887175295349159751610413653884756417217377280760408479286234148742169582707311671988312004851648565620070741751970096170212893921494742917760873936557306088503051318736899093494398248624850605041293566219233091656343443832912791557208842638952933081689863823932200580592191258139989038052427106558683804563456534682778382722911533098400680861122957810294134507896299609593629020430524656602802218208502494081556562859917349773276417428217105868384936588652055873437180965529151227956597769608077459802431832258381550732548945891713981592888396664943848137849779493269468718670629944608708463131364870530872670959726311897577158639763504723534837668752153209626742890624094063103999002972167217117454388192195277449417056807794219736599193324218019977147643472834578897003899301416427129154098496822261912642889159851060796946623050821674813477178952633464054501545178815303097200130313847847685628262414175898315599726366722830727104108550147214817347692548443536985747229166787837486743557942394238181003911538959749540441423714180957941017031944710430321698893998219299126639166514514402339184840698429784375104346830828344904753107694824231694565346391380029684075307433170456787510931308192313407664555365270102875145024233050048696613348947131868160058329732020692632031376615999661346568343522238781372922645713387100680317191016681179192980409202207896090991410521941343539874072022893076657932989075833452775562805252143137661895943221332359126927777774419094826375758792025104500226438503079315598881351299143265830776300288994229147135789644490935821450484519399176662196985184050118217624436970067183644954577155683176958689682550563416407190858167614675542185547706544762844900536420896875515201127098521256478036760319028843903026373619400581169477225860889607575762456472675379726794068488758547245786720275674852340281745755207084882210002563173017902570433246058251309961529578006919418628243993657920880703276397076877479754287214484936483693199501134161179356455442060764229852547682660141456582333800219071156177181897259465515896054540894523391279492520664468581115427537069905417630203288941286692633301133571597688344906261751796110841300873265028042940590119226404488738118291967062991494180786821993612631734703413782109485949640106238496370515768021563357157644119134628703873707023032065057507984977923481418896318633814356760688371514330225029915014078216817814259236092054048525346548261568512110028245611673875479579170763327401234209141162858799274339044883509592048823329765628755012172732683952019265985385027183584499630174426847818147298418749188455233132607171101759428861641340622074250700234769386581777178494709948716863864846787075864207806126358452132051515072912485384213846151794789061631815297121002006847572099112147029781252300443209338061613623230149924050169656348324509747054769880244739518592946823391131289910127414624930172364479570877158707986858470628368667683735888450969637125488212861465121451253639383631641291744587440764682161299627281860558877930790003943469294429146274998066838857402564644435295814756673196129880467980687553278038900641197464386154436997109278843091022522540314261074690138291557706993839968475440869126314821442327739637918941624259892882031305151267786958230004362585579956898214622841597796182309985746876719303014360145320023574293140255856610631211497560107087168227413604449823075648968689485929915238878349310938637519091709362786675041897027753685648277742199392844740946272705264889032629427677575947383418385556273792743959762418913359589526741038933500189046178741410443746606319873402039125327585566541810296180195197869710128280887719054178078264448310382895443776103828847263147970171309399377070431318878889649409715556817569340011755622812967912850703275164348726441315670536187658484983082014406985722893636909502267104667348962955309718236239860813019188401156415402995510967301366125511528736729969843681609690512293491201850922474338875433279481210223237071583657461906882043808551549615272484300869412497968447351070841006450566804832889978919192247031768510331279850318324960835123784618765779080142712504302622685090932978437448310142035351428317023018409838451313397427733322355778625065813100419680517916915629978026031176731670706995106932652921104332822894893096652537739210865377942586331004056804604418020692037665904368928961202026058283611513379383732642202998438035127090789855623479919687100266582088788143784918825913712566928559190196920026049362062650355719622580464051374702758215216169185373015904420385925529143343245285681867498321317908268117511024082442926346247194342055494894620869298697006699731110294718218436995083594174827098385613928576804060490972731687356403442897391948109009979298516340998391600437085949643015876883080423395113713410715981179114810880426577152992135871981815882134139846272079825099558443992183081311265584798704682681355820061791324111534564064493727659046922025909816805615568862035122981896557803027285452561723411555177642690881413601536025915175133944651525269474127969882177730700540279386305496675872659001398462532688681964165011909891554023302726278841364446882336249992185662345980618788706415662118715792124621082937904538949708751363022668067571814546414924604465775482727077128416819032811359367966869038798427411069337969866668057675151668326344856331555209493215077997579855956853417129513624665682379130416022907048578454412068941900680351375855308696410438318303321930280154326556100871852376705625124478775442729504390472972055408017722564829225252595586267819014585024031617631636864009653911517747221835960170921025094219235984656744554076197177563493769259624635269510487000909554843787825202716271751243561900307759239424407736325743917388668481868651726127833895198184050694493110672525495665237552725247810695590580010779463295801349570844712981735782359642817080617813307708216739551094187149582183954484578544438010049682428921558398858566617354328205758913998060555378432393904968348108318579233887217854408978051331555006064665481952643413866502651068596766654206605300472308285144683113011669275361196445015584791332045126119687687607314204423286039781884342312583549562993966395506136172483448254453757691944974248143001851913704038438167089306590822796504715921346584336361482830899927207281449610602258094407416631599834961306886001146577727766510911089771852538604707534402347555930685700074516020574307523415358450497548541384965298510402085783984851209603905601166257672002640492414063233445310313810500469590019285833011033834621839014384694382009880918233763910616485975208170353052376743251815920137069680611975512872990931135782361397918488655436177512243614146109940268819619013657262271497393774956046609434583291670964594153768544352065894782037079495927122274931083484080093738090650532553102978469279632897500461505220130967736378833455003176134180170217092977705677517119016405064143314758580370700706329503289651493174635371030913248481097444291704562040667867737923497397097774516766941785533881391658000867041982950201346311848245211267898928333314204165839669387455918406978859719123984792453383775798161438469958020408618307983063426196272529008222700763974400855418177658947624734195583989642549956146130190777547912559735972754338944919066455572221602984602875906980679129586890778773812824298740184549060846568856470457247567327954139315705887470025487895018025832705692913691543255517245244174805897712159950462830144589281221202083695351376551309710403714363455008712716938834332305403251980718428642786622578736896438703694750126536099857946798673626097898770730481445707232423536394958147341149950105453789798306558200152198169606698286065286144639963960867405386181605844735758678895521399363923655650314090210022804595495449091641026342224161779813276713049589089938673769122735609839943735135230037594435741116303029473019856208362635075344595028750887564539486689339777363063862463633072952665734112250929909230808282213012767347581985418845734975329719025517100355602094007882559304772973330121990671944991265034772078880903350133600198110992942420571091634447497830293344434807223520559619562374083517120654486674917907361463151128259487486394654180843705296167538864985247366108110574314074604376292402832514344610100419630872482985216588621848941384702172622932436661371660030345009559067587631076885369780687486761585962053312750731531304428549542922880700453837989596612924328971870731423548380741737222875332725900501852408850262829632746067879885211068624748741343924572943609534696731821510376928441197204280429473789540830368201629033448317799784322219110020750318681394613373648632469987945601384324123492529955773489994365076564494378463548881426483258022261318417592485885933736136522056013522553394302557822012367887290158720733501058998559372280647390201268198427411898696098857193140579468224162735414639094124720804607978535640929836768347248521718176618228426950452976997267780447576594028713989333824979833896741779883280726105472019602850392254783097690810976498791276949457142833779407434886059606158580783799949980565115709444650980530079295348320716922498847844023694363592854999943102865752849841008652679339868976281336140716186168119619319161345904526135038045036900661836241194375227252827655090512100489584282840083018820649198130873958249563084622321429706651901692259277969643475251704218852173057295917203626439426551886931122733361201836764830076559533239287478007480267005061527954323139092888042380839800882219909272199575987230047850459978678595559175335386493416451192967518906216966509393418098013932570056009575453988833050037642083161183296148651349628989464952901550606649385758644287658306865161287666459918505424916330667712682596435354241701448675150994559319894229628496341221322463250652779644655463806425506068524771990258402051261788371848710988350015135827897362555172072706488903625383313859059602441792795927384420025813742194565251211184591621751376500331032185155280705723887238656511138558568072343527151743412294379817313701965226180421762359981917120370974871745818624298332609566617197500339939545374434683802951902115752570072971202810738898557903995388278676158733937696633341468785050047742239718055105137192346429443644699904774644683062438223667508383623528203105605692632890543383334403187454857198084912802538855570223842005301857296566748720623099658901009109286998092481903842853277612389647509046021747553387164381481625988750673721806192958942209924412631777995843487608465573531791847431475871506318743019425215623934971748942132414768014246006015852424679227840815465625219999019171637230821085604359149714461853264820079192910225664841797907413028545623017200242725488068832169369416785449342004542756374468886948462136439998895042638919707864947483812347084622015690223626110302374439825180675580194833894979359886273307356477401168767436833347603486055057336876267234412577775791922632785205546794234974632008970116474936669306191105496579900371089886964664209490843267646022120117511365647620373737468522275747308766959560382914580062936214444257955359666690903076135665441911233265518219306774955636691322113808350745533097628324391359702413568915944505438749368279274662361914611946660064624095344318163661586088351961486723162412394950929034229010047928385337326486954280743477197332263264610285420641606802301970430620915991967986149148352034376913584573608015095249249381393095593608060815893125926921928695902292975068478400347106757540982033294531625654561875000586396718811475621764771214538412624062648252369195560297987579379419649474014069418613091609090213627952668166250830268650606694963214365259063223009259449809988312160519297112576276477467637769041400141854691527060041558182964655856535017996718485632662322501902843222071460916321914240536286529223716458444543830068596654165301554529995168515433804165600773546472653794789622722277179574460516700396311515121895154695791582747293221382828928457282930891350336804114362533179745357663414136655482527325562306747327707083437793804684817098773807973689186029691468125632663752303994039270036613395273298089303362364336016038112143924256716267905591039392013355805022769084979680951641140166630813987965024228754256642707614550831587269620746044526100386783550729587001719628833280541397889930247026615061107615493031853904809535537288742469105562011730581375672417150121129203153010673151748820556738091702146005812827258294617153836828407980703971406425661871985308399655627289540900806484613434570706247905259956831126406138857881586742807936141193079928770485356924961841191320048431384261218567109747905677199368574693523243775821599175125223254013880188067678037521841712421115027232557791870735612546463546920382859337033991291780731245138674566038632794906866614361601226890947711068620767289484646270650356698952077601874328697795799440762509299396779201086573779840068837862146281882055197989696459670369773659947960853625648082341911940835507241545976962088415052808714904008373000138447348875175996649569971169204595448073133339674144484979241828202638094501041270994181687273428659795743861666606812726343178303097272455955787063502585760771217471877238384294320787201308155182880020304676206119369552687425811843406496270923763605408580727817298679075413742138654417356849103684057750792724009300772471325635522949041482862834799685160007941925581591617447267654583063925666386125144486827961317986597648398530634949691964591096742963382631275618396139207362727826999515148621981654258301719065244210204928638131875991795694146589375627305488594433088739945295658782043166797110431037904097602186803430833918590669545303561948393359435754398449495434257724710684152958582704439337283541564120301248417337756711330407626244587442549814411741879271168926805828499519605220325251379405526649439606392609434674958347496187486357271909574648115306947547352898715057173953504367498780069427728138159435622017150062308366242154819953455264706607729015775349984251246029788511463604371278149290229192311020016317898303891582475614333374578321589921541769834129592636730400436912038579579740571391345077859269474968171236245513480748635382539927161150705721369699475599142343366473802092775960672090690942338450741506602489676141856535254030147098196508730758092234195189752285086261938462491724642733899404584688574049498890195037614903619443350347308749277198607900570716023893201947236735887144274250112576036225290493392557978221663054068567362388510193622443590643152692619623184856508820938226112306393628750881210104652953596629074747785368383786280544237941951567805696979293384286820386527942237667522026992630389203296602401285178738602203595627766088280039897156395644625490543202070503093988717572973764457760695103262670922864634978657488112171004060129856284357618022304706280047647801420072662636485133424724125112748275852972991656857806491373550903695646976450447185620571456087669350517942342488579885566239459055746514634842894173880474084892495953188791094003156203945706343577631054134631035919720073234013570020431266097293206610470870595613887308123858846002839205569084888911113034381362717541345436730020780444716619764970821841066016474202307670466952808496075644537145978283993649742639753861786267505297765977862299974409586578934773740913634705265870480107726720559410180015211294015689530326914574065441535882122517519779986206489758390363902784559186780003375962688708448359180160369088193920173728454147438160000276858326200196642991092252329709706363217327763047799548327478639101706853007520408916213043145028401649027979145805278095349240176741967780642932227227402686179584418250385192353705111475746363238950987767969087379457133411142538496259574870964768736542267877507748049366903914670782310801548948312826689791466693677957100170419944837193281873856136313956841318687691934219553454339934144116279018839683253143469477336163376460717884449351731892931897065985480608246729284472813101674559580074240896837563043663265269283013355779924280340787687782848407680011097798569664822251154391984651771674099919654921734547892167646427647939718718593650403500561947250166124963545341720729499885110964301636903280229728154763111801179235303622041498980923130430196301038538458508198530715850809544753632267354383083599160676354292126196332308948430653270992165288224985744980282784647286733270588554793133576179525794880444322176529515806140994266964439648599796018919223713622862338752383860092451835260309520263576161457925049352559773299275769234063555415700639271679609008164053690115774042497276043839337197764910136549120813557265711755136145441183806088113794669450873655354136162485655254083986468131852893029655261936525921902201420654434446645687203789439165171308344590811864274454715831926582599631374366557877107893820850067933605865024506107127034426082983011409911881748139968908475671398993899920184470027604312423406147904873593123431057619555716438839335960159105545275523215974026793516295958984431072459733474329397215356190887466155365817429120791782087328272718983741202715471089866345084443941274980783091684071319068403199795463722509392830529317805478019071300523922065441488933835681214689289861281748763379442276792947533693442664020193258798082526020741273867915352483913088022804236257494680830151069418927578826974162699970032261228531503399169970114691127147540607608702889586879177316977518917269271888477388130978331911404587899171254098939857144762662778572455940740262325274440587286230152432221776026976953132847772706271201842898102157274892408375104957160284254699897481306823861234609824662683540737650714242056419931502746635118175525946382487357032251213250483340912080047540316888535325188746155142608933626735376188619415518230684210988698288997199123634870389104660179366729473985476671673409531497493976085487866948572833891271666057152689723327575161735596485730257055918894990188195183487687164710253005394418158082039134761827371450595791308662474678679163919517528299225336869643881261623528973237840984081547842250170526351435750566500309345403867741805636805780854871129472123232338026989850340732044808109432910955044820457079840984642915995009832236099183548655365490658525729372682304037944071273137382768970673178888562619769320197915881588577669017228821572593662385831719783293935072773366159012319973115964669426566236435191145376094367810157260311811945182836246844777984529288119135037527459192683485333134995183718905751517530883540478660798256026568979792955236749826914339374310714277489408075939215815290373071301479997393566971336510200176536190627847628891880961608203660536076537606177391602323445852682755443660567096770075943687478513952361327818975464854759033799801939808421359677202307477861439696130103488725930597688663368066415240559719099975211335510544251094496964860972109611223068570822281518374272296557873898035019140720257223606135957094292211338757839821886089213335161167452852549120326150208134420999004132495195788049811034774313277100468104444985733499387615825623412616225010151616812677441039468876826242531479362675286431178148794620629448729573550418145919111226838708023422231904398778277441654478613032131484498568344370646808740569686103849161229890582174031514391709599862346471300566121535482864555728956903073431949922357187654560397866729179415479604078974077391767282511410948080458910116608858648299515081800492111581272329855920693635997554917979450326930149414171913740841175861447579064217461415601295650534272942882601558487014940761880888254995663214270704311186184748564123283506890855077824851573213472993732629323522568790558081327059617901621029708913264668846650566516461251492823271554379177730908191127652378827276921722344321341822248307590071726370187171317024131421352322976068962524874683421014671028971519757394421562113069830675879708330327651173680229675606496461577342999779095349973914557339309709709707798876275135611152689087582830449566930790996340078656268721246485390475065642510541044791789018549040235540628773748597045103540009366923401020895216541245315621049454870847655149546483030403953360284717948805167853060912671761795398041153161314700687755296430808214576678473207123006845347196812796748426200938962999183443453411428720404202202864690058324270949011656580323148609907919556365905300153378539828367047108245203926870722423991168106601690689757143556465220925320910166474547141898301036331591190744660340546987609757506006150648300385494718525043204965035681016099828957150061970432756708648836011798764666709037247856155435132984277461266132949669507704732854965166689027653562261072642974504839401884027182096252551948799650998210576040573833435508767904039284977382940008612027390286142397952735691374984551966285890473505846450762685281686526413226167390644764922996626706269116287689247929191812407984153788816450930852524546687594119992821075127857790822480029499111368173009281869189339915216008514120985348939723513690695597144749520708392721870740667416360815336432953557132941676268892422310550589027170276656398671064943680553777248169458462046766987582746403700346595373892730961405960162951594231693774343303835452749751796116099605766448482926837412861724937964893167830985462550795490167057414703679683195568568481902059187936798300212994610580948287682990862119731361818914289762712231692619600791512228285454596550673012848657075359922837347751189866335575755822744275104844466530128881047141026266568689642773630574274351591051708620190665484513034598866452662571494097890822722244567759952606319076219358063294966541981504025141082626242331378438749848392585220745055776413820863553438907679051720348532132095287809549469270514563874530251136703769863463491284295479652058426771144407245911386496299686720167552383287205052104446370878840359000356704007065845995719352965499214051998231082467432977198052869535750815055494388570794135430660334793635317274843160480466576611199590751543677594122181156696816543692322967668856044315731536031746360047690861978306403893689503442683771141770280270713844055078441520229218485827064848960766847707234080351591401840761392079837851680244201855739921270704177016696250133035406428003629315582814142916239713652458576090233600837275253886060210547854144328213103383005466181840394557394025540783046245967655985505371094765836676416374032581535324441806362059424936380148391906001552099279326217393529523153177448124023698888906678365307093383851283812381614328851964864281983740557201395480492325075213053157965757886784995615833799328084563820020122939561209488776150991423182331527414044215485666765070539838491749815105379370890888373698844229810921395564395605568351506901326273254794803455006440648946341128699228360829263593870190803081820646446922881176060353730628205199001741935191490185009011997165022443427681102630547241696444335350609678439238112520675605554309310235494591687560300619708452948709534665386036020402179993562075465056947153901298844926340736382072449507912348909992232602580464994410617470315462624062140406830670315158422795300061584504434303847913677057618798072307564432759553736581729860784823844159482556544113472702906192131569908640473666480405177134227553385932067139500428564698087095293099346042865916009514347300019768448921401915820168380808037008165813563143480729520253851410256002373860119564458995921846610901800358364194812432625370069845950215042982951419533312951736943270383735432340538640531373617450574463244181293756571025686651413450477523736915278590106959323861746525379698538106458460805082907594617825726714100862936250510289396867262660144128997941440203702220271215153865633949495728940491274491815190608211195255895656364802930946707575659250857381852786278005138068301957872634405839712202557802590714057870553637616953813347974184882619084022432052442114382279318718615866495548738162787533449471515786178697169797965197675701626017437281438068458603240409670328047925239071618276689337139026320419157913989427131426651391760808170997744186409028393774374313288047005121726569868727727250061682460797272989442269488567389063457681542901765251658940713985437257447659849546588410810952290961978694539838059360917888021875258767523418446415197613757357216780104896495025679537764183462100172816606290022882763835408778711528915807135061711630839266513081572497994927462600872149465427776650582232299689642670096373892599278690307706803060418274229132215074237533948686531650838110793596873617566280059391161956533135145734647292966684798099707932483678401178907605217295880777275087835904396425385652573018219062339478331140497153489644948650683208121359151968324514145713927206603004084813032145737998543273301273163315554563014034545410345692114645845341620594014859348367080415135783921934288031889271482525041063964659431258910223386560266355473266714697957856119115626752103795014294980638201038316422065540834481016027668536722982959944165863273120703925371135839113477073059097607672245403247996595713077997061293016807996489126641437982962528820786959463855950159992617717052099477329449353724901789483687279575237834404846942239899036690479496029013802316755335106538900416621015909323791262906551575631252879806763417955041915017931937921112231197037339868232276279504466461011567961914330035678522116100698476088878348433397023433537538714617798033599736455049424330896892725525935847855292043328927479275827132558643008021992141823186573258748211457608081654134438918298640530201847610923701303400257893304884539300221799206247493894801719367462886092684229469502669983502201117138203356604937449538048417386557749685997356896793993470844506170735371152175440166654126715686421280784528993793501289508191466270225337550165332075474129658639933725468842479708500632969856925211521430890510304209638773650253860971318256636120555712641661701025695265154700384597270409625268233720682370214886312605631754124611394632001825398137140375440106519644033113172517765010663151563370133581917689050053768190811400027011849809883624569071339641049241759925817420052749717818518939024063744478519391662306682254007396693551770347743440788338734515719854685905182903287791223613227552938846876191766839821304296159644184687491139652102905219525337810210578510838093015282453380084836578807970130964583187548428840550354899707990466684629772408529402075993696080172698574424845605357834097889373042469189857548104871632090192680522566425631682285288318096824874267860467061871195574456392661160252766872724916118208429363058147547401239310382819191425819582727672078914237222256782782540660514109884172555603970741668527603485455690660509432612658708577241322132902186749390299926381355774402293766513174741561469466511109824775831673034735429656308376343586381951602058759702706590662576850700921814458953364195305037413781556762622805980671795932082621415216460151451708190823276285426139317632236208350257091824189269819304713248198984610285624588288989529004183134056860060999556501464072211668082021508955145461684743215832804714491314430803055046940802844222402332599769495684860917468297720451627709813765293701865898145818988223843111609035698498482811665486417180927649446417774666108345488202806673736480633433159713962477827822701226331600108824092292025202806132321592672177230234647645639097396347957826512999953583451711162004341274702458323819074486572180647971944273472131220594210653086151125723253838447081693570504825927634905979246112784492074195700310837569434883242172470579874723160789066117281802047089495749260633785622385837999344244597195140427709433831540421700852618277255715745733771598657987588389267858087324873631770650209101729674283121225897428849417205742430276245707492539775049569412932170485346146883014218360716214470987680019023533866719231458375186845494587258193847641759570458085846057611869662345258097440521651255738867750472627802021401023314764510393902478572811136381631825878061945462786594126304875729416379708464298605083528508496003025490751430413390386920872982854195093504852671588585664043745498421876744349997518113300402442852183435800385104503988630700537812605005627387983922185091227478979771262577185048706246611312462440020348400514241808326565808324920194706494389205624259958746800485101215603391490674335235819755244663722598031726913267106741938063869759926507589751577384817188986365237425104044161361982593683202793302313256504622927667672951956043965947852133581274904341983178938623783189124524945367403820798258424995076436563096342001212746390127375670009970699670779671716236671423026912795311619261629166192026065955845784085029914743188641760858168521839714916494688142202886897806775421087715628578191380481197448907932104145233778120807524089664514222655853164121445566195758447974866395076406130876528616917190729834990160707785431295631552370736974592826554199120335814364254536188978770893450130372786298517357378301311710997052907226540266601190132267275808718819135796093677790012344562604910738011564709760981141792926260963914405395124474582427751535150308195875885444478426820228429110879780572591179343348846181230216055152156654035203174383074383617458054818006318471345263966186903973198709651443076088493085703051992916059693236274616286982376015734538564046998348261558206939851952948312880125250382194953138905253978648318185635031464805728891528300785554320906389177458235017192123565871040857083488021777987308478618579422291426132687753932373563182249505523310299282733399087367251919627457003460597638244325533749161675195247884009258399824110535317367090466806928015580489920700650258755926356163413144812333693634562267481717390992121186958165709724155682800829845737477976538956507277217771440035466745414164107513746051123745907994303824686203398093466918157309926174525127277355848832932323241290027460698663987789631305539067111880082716062551140910139761276223252441766654022787968391940622057261666994098312378722741486617132733732363748764615915826150124712352155185870015165581713333810035673417906350884757946204745845166171210776031938105721759697248104821980848235774673820085862754320527892556060223118059399926239164895427814539576334559522470524765520647321639752607564841601782114650847302513850695203235789107888991481768349475566701511324654693192349798728638845394069966703633536417922167374214420990605921222435791216902079498708089905638702914330814543861079703930514938613590938936116695075143340533096924588249582145847908786613230766405849825088941503438359324905810853178547322387513959565449054459428190076707172323353739343260112708665709349858581980629846992266716636350091571097185657339352911683579950861219684414380153643096055507123880013616913176522787436295302032425432059072006305864181343292135122333678221715524027461072892583700273617829831360348990088093719391537320806064326882824436963932001226760997808524801861568819921217610030073006352987527744604032855483779503047261525046123861741653936852762907290635049375732450674424985225715505492516872275341992851360017953571750085368322081410331778715839084196635962566461205345667089239030303767157643086193898206323583110012498690398717764472702311249235038107647450601636734691853288018781575283514688938918540251026350902348336597157323996031993616712800033988593195578680607456675138040576131974800390399217371274728676193861316000630095827600451630267428758794257716406756295170999098385719841395041699270444932483059064453667646463671485419594222144969766404559350955893379791920263442252228963430894166250167500419985787441604586112572322433809060162665769403858651242972036705825661311226663987504876254838340564686701609493662625125117812003619096911691829623436678811619128972204622452835971410942484874128287103084981785884905399545734816304599071552016115768906946165523516751856153579092848157263376206328176938247093747842346484750158318576855093105327553891662538983287991015491301014491907636378135732328612497819864948438249916852347270548833999607436373366899210578798621607701002258115281429199063904758855248752621707148820488358464429200875543763037949849475742153807785286539453778215679192527522201973055310016986795406143770773999963187071110870158833456907389101863793146378983650256462818601512788199703241557142682000015912681784083068744923111088543509065122830959438649951813316529718152487577446748744173367959645898429634755039950237340834545481680581813764933497486290793858381960884181684724041361317264813068064971095112107499048425049155219698564005964033879703346099701947634493432593820103514094460338342471539663038866189129464566852897762734305500286881853506226917038959015201005661861645594922507405223606253095617569075042799800818326265491995600008667461274927023561344262429884557406959970993403253216645733809255933307004111474118829947139064475463037650536881675649995811681815589514161546829532938756422124898588006030136884653829223604528323631075824133749484139105929789045917850858548243734137421992004999455345210634853976617684513520969434650127580440524995436170803794120689841166422984298601023943277256550351274418526707032000520944534394987495360377082991292765459587712799955581363052241330245863916874286144981589917876890530737251216296132594507313230021314499982114341969018341824305526460707274330656561166758653019334773814737769636578301911137279101922319723187720897497515953606107749524778023466646903118507876563707302285401282625715486431053065155241410551323093326182385176759097388500867899606771463461756725112380840863625674937044693992383576571747595740891672551086022565988355715551112391373888119819835878711000546679115215831528288696436176139274241582016722264534405298352387922497486714674298873136795936425844716196108182903748055596293420631631146475016057711370190640866439754651370716754014782145521226556541994732976555104884000868639485880080914029009605878898828637533470996096681326126605528500903779199264834446362845455416705427442131174976036331575776981919600593967160359693812062252072468188703342169962104633846356510082710294952540033194916659604661836177281435114560416451187618781815765227000906770264371160679950751193986707661489917536121271104760102225824055704483798198636124363017854906568228016943435097637961324360731348125031213260238899843613648999009673465298392681356056197364407633381037974370910682971423840481493105665543077531244730717480212418532230954594902622183368864391668308081232217713439502954300851681227297071659811692008298252384903853535672781768939484479431546396015623689603449540434426185882079454877870389537100141365654885994077455395225170682659032701627714021374189655286900433491874367917659719422016635022146580889963057891446328426298757360534833188838515233661724161505112035226910720142565304203583195211783905653361904119312410773812813432512714554473269644492301132502457554153338003874618026201244081476035131700042859439192747781943758729978303636620843015582653704413575596956419033473900247895900878668824274434495866494176546266833762684805203691886107112907574187530998641480596281036021091001784819280716609496384469785824213308650950741379405620509599191064308579828825463323919511069930083009315291249164610509809698789066244739210875412999737391219124838912814293737590278231081808801515692549116606792629605355527825008772530932348238439906213433343545459305840526422194215834092881644836226290572323709149775959481822995383543888405891679168892225639810859029988803810263839724467244742255452706774620443295203764100854521194324614396321451639383512735564926727790204735644741875927075158332523699371411621825104228537839681700780535109924683802439969397083417965534580288418599297304022478313978164560722021092430160079608264348912555472618321744494768832418737127112829137306190478640077300691083305666579522322563236608478825278878795153150519598032302975910384230631263449542877612040306065443800384156854198557348167390886503292169278332066187890153291440850256985196300023062733034905899772426660315589935904859210045422798245253563578873967479894716332955957610782107705938835324956853921947069696438453384666919983303373969071022931497820898854979346997805476225624227789127685252124897532123496520576521086145823276778700047873455628925722553651228149690938261964914682181239090373236498743906327893544086049427613445981396560018269713047463382043321152524465628073695889365473579472923050752527548134348266427547347979090350185801947758966092393555207220075592040701763510087714591476109586900231690667266957856035964542428908332621772005128382612262885408572123231293381250882687157771803410430358550497860738562210996659409826921597481322957902253028579698012921971339964320922339354933393873887707271239346412497850112859168020266340400446456434739253354290861970510570877583517187153911412104159622712982666226305678509158377803405544595024062976292982116309706667136301881645661298630918285526086951468148445054333106741241885278278855186824544943591574552459024360927240058056227514593305944940177877436504830916641419107850929800892504151391123113159395681573641005537243830717221708658429625788829739249504216054489719369585888238023695296349761021022942257799626578615622434073041467002053161869216049457194645960814389320147004126471053165325954178388328861505818437927097857124266941141238602293355756142007942233580500973769043103839083898884431466168471340315758507028905816032125473805532304131192985217701982080699343760949458232691074800530301968685112273882262235667879297662681576174212618411800693916615364474918063686171719692111973009046986697609971535871174748424125992832151012799230192866776135802350422988218082685445409880858148172636888737594416394343647295516978700229919068235272582046150653652018897774879083211741099670726025321970081245305906093824927203911273115584820966657976590763031975104221447752596325940646443082484057897938954800138223278111887190430057453922066297478639899422306376436752637122028216409181136619402302066450705494267029239740306758583829538985039697666320360241298823789329023618433595785635771739895778652771617482634427237260015230058849062371304585013255986120850986084487813797428795997267051343097667446092424709779534660763563350892271949173490486857966336235856111071610890993898459628823344455053356339933050153865892291608976164204496159049269960571030696175420412933158785823077216870699785333711118795788145187322329893728259707041031610734505486334131740621950713662269779873945758889042264363819369667552923136959059651360769320932142076181467904130887471832400997643695663741300264113832013038697362738187698814834184430687050584597249264567800552963617286480023406262021135243929641583526615974329687831419357648745106923735502818274455515932081136287594509784167893298617885042731981543779773968176594890448842003139023114634181357402008853216376978437588324064499554797951263626317789782654001585149092397894663482128987409089809747727144243652400255993739932257414120648400019480634285017035968220326422459392948530667535148240895320792232750185797819929270566426664221386647784345959839704873591914516478216313543116067549613236147755757115385860706972562415570942102673057168706586563364450845596334518459907378907592261443159614449641851059537028464159213686850091798473160818880603131519692454193522900759410395884287874903110467685617489972939120875615017326409209464423529618206085040034544975984274336426273740398330729040035766013259346457350540613552101780479367573614530454806061250530605123008191384389527336339562129553910534697424536234737428681596282575529635167879416150349328883510010967245199894728891253240042695102899754844258219260341030478872257329248782176195200716379809017844143981188691623551514850382237679530014750600521105987137785637018262017994293244403703112157322379063531697928336820639241653604494629298502437064546814080113407061726678623679175317431517319851724366014417548062991234314818839222897850303726644990440607114750187815668826932647894171369640527468955312348742056667527021622914200616618722636271248955436182714433656696435294991115439802554757880409595427934781986527981420493449910682789548005862002227013421165073602057210099322638676446619465531344353248062891829305588985157579750670576205900783205993581077985958912001778821228730799603262574225567706808161506990533618053745798326268181497340408776544240461517225821394163276478271757966293714230643149867238173523742493156081566721150691509551636718054757368281563836849291758969870726924247341529181968019322538776609469940185780950038716057653679577741187271189571258019984819271154414043487405183480109925222829699535611034631253070504520966957312063379526111585974573947573291917179413071642671679512585038150035479050374513051648832179722717322536822939166617077616276327379234633594505786762978491641168564303230737899452439018263611003015775658493697971423979519952372153175456508530771689956339711305369166739904567314498849642207992053478032000538578534008988239610540405454365095501824056357669838526976016169557858411988375813243949448535378622997142151564059603682601462638633860854500338469087586238861381229101367046117301994285228450523298940466331565699800656910643666318013975353453691964389686960480852559258669771674785981851697312794421827441406605220868986553745947010320648697063144874011291724476298285084052800965952233514233882723782754673161217995484359699828666613803621434473496009712016317884766441451039360356500267698416304621343765205403018851034031413931644588229067707704925789974998882613139590281459502834202634847165218398716084503326653372310460489654286048184489760747491569271482542134444514480678188861034314073116893135462135431510935549111941648375876934295855170776757127589832803653173168577441567334028260585791319273377770742706594137963583084150873667723216933934049578364972476094976510872100367275751111362088882319261930627668452787737548224111487706520275448093739633404625463765285598674809021087280286923925492810488457900729339154649184677846496966474895162941251509876954834350506426717231888868325854192675619496973717453455887887548108946821864979194285755549397649082147933408143039534039191327383132820849246323716828488565473504680744781681130452435499543740493988421283147471112686680121386318971555102722730800016520765237172012860633733033365966700310304090739324844410856846510539204882130367989837659165689265949124558342058652248568487677529547276562447895339653270913100808441696518949200785100409006998505070734937806362184809063087296036037234655789514229841795444877909614524887495350550342516718336823072801124915252883855180178885916837734248760191422220174702381103466228859086363100481056665313677170809081850666707970790894319880309184293779691291186825918083102230950907433407389760041044794246347880139434361651888119515522059338391444591564988073108695111201251153459443791268413927075201238916391323232712262694065567203619629165008639393950283136354433734977605671680752972273942226129655332902764340335637958512922620357152707513136443680542817878314902000045401094386263564233618162239689524357985080495279259320569988705887218613399499015950431870223542217662006214495533398636136441896655287645559523677202759654817735219573073290760889080285908397268238293697290096222158710219133555496865171653929415250739201650064505750583528563475468774193545809182438871312951909227290155816902678379826135580959653298251850172109432699139451210740511411210163691118011523337736296769262037622236988538812145537767710996219339203514670567588751163161457898714345247156615685067908872656116407990766052107758994183356759656841518330695315213911655885589210867116801828602566121521307702150424539058986093182044227657226904804167533395148678415243000951609746125803873207781259394642346226330909331014584335515479044619617521320612279786101899200007044063760186756856517265737191837996973383538998868011381306473805119503031254749368300719103132545473566961876559913191308684263614488542378628524139655211524816300694452700737993314037509768342453866959705536476848449390805151677641746387922444988199934648913144771209242158128541984503047703626994858874915642756794738659018551044902552773211483257543828172948032870096001910560337271637958827322484485270362488054805413915406086506910148203341414065213777065377805430247467701146241631937830774602531640881316467666534813536984064688855016178367059939334145572230089835742257525974512901032677404322931805630193595888187047486902045358893296633104605551293647024560807335213188468556320067002563363890827365283415995804245290076574706680267156672078916523022378166095408009705711631152776431333786183503792293607454439517166648738122725285915087300816875048831592790553795689937345918671024512979135773751020193768003804194578508853644064271666125380693946293189217164568213345119588777204742347667853080492637324151595481737063016807614335766007042425038637960277430961935214153959414560691203305145693989926353396143084066299506055729281786815971445291197309692512893127377892339597876925656995585325527373321059734598811853562340695115586866439676634879988400387068343293044216431019514578619461307858366258778451225468705671789922663181402294508405081655163154259485690417048696522280012703658920518558990679678662531702314187791415348930645069102399891894905119520192697534717652540449516785818417137372545503937941747912436916313792624838269707067516395648865390173274789884975319655717769453141965763760496683346592957262121773154424773162251970666568364450740394583468542652386983746584418707400265152615149599317057700968304205857815572611850652486466552560504792593502239453204702992414413607495565522013405441709762787964080817615688294702324505925054011340052523626590031363974169934587983499894092189136398194891876926654925512004123353046316951880663464632947770342206499575014006174363112449286815869806437529899595644493561474162865609730054118856619157021434371957806467864624524861853224419549354524876305013648742516644093496311176154182727384654504468834764442799723973804575750884225001222791303124742545010972280282854661571525238755577891542753937699146766200172866387842335931746929381542744198382856129805199268639033516289751201583082359512427112814359569923497516929826949084478603152005781324524420516127461922921439766375588590413949978484196356354385998959723528723288412828978285254611719338296509191461306193938570200839411855052167714989057697721067058360612127054092906556133485221888461395232547320922310801807747688839687966102802079843627055572763045085455601242689929587895044495850481918461001198537766106839237438740404839716756518030067177226335887013956295481055864249079794733201711091205826715758212693128673916735473295793912267368243789270515444114271981141954026604585551092389653479567969541465706932942657596525591622859880964194349624125892330036049016646158658361835083015484799199154805525176031774378342475262076757833333942594345013909035432553007025558982304648378963234891488355331396989289751157974407118175490263527563641326357560028465254015777588407962700417110565100049817899127919126990612327633119257782165459350422693092170332097103339927018302326502428458318640562124248874795096964763995805611120716152000329651442847318047017011005275734927217429431386211038898659563357714558184607905660629415528012026344131700163255727826330684272143991475132778544339133359629017004633908076724435004648721912716967467984658308325013194407222384670589837386725534193807395204001649781528097358396817214488436912591904166360367932411739718660230025049717281839129546421367286065180559070655442418304559172196934161168277094840429848250200788706027046216774022463331254319844644741608727119985617393593455267845112211767841196935256000062025940890102617910269597511654515603094095638727342566071138908943749564774707841898767023259478033061945579306874811752888909473014811607865907372720012115194516830821960750135963380690981709256117733071983229432589635916041579476077393539390869567861038307549880694456018797851345812755766733531308211909302870173138776044244268325586850343454103770778406589050076516725876992610905219524374164755818353427220775947856702488040253170575216912814162077409772216227891365842261554338805351464353131376883866993838174756163989392803650190154587891947259099491206504172485398122680558817923665420891697216817185139947995029596155101292137437141571944088848761887583323179530033106267283655872604421466310611441361119164724737289310230167649703672754485966443616140499521413886446994977271567497325592774150258809187623985300528211882580616897099579870605716202487134321161296885180488484004461636572636514947852683658322864401025366694211559041125219793141944718525346027688798818407215299183509753247158041603053349144526829741102462876933344864652279431374816100067344309778692936203057368665696293583761959885021587840121156406394166494655877460012264082535781703663992020483846857654241869344818950760306425824993836584915682107764110187687606455015035536013306738802990061759736436815065586956871280335889268275527257846195285940288643298966734786852753724199956920323959849713605451069787351620029591922233733031655526741383074545365499098971615093011858342154921528154611514253287997797664234903642064782325682570363570063351568216965229666032803876130130420592594917803427227472309143175846777755669766522015636953582295697289527238013868644420020823347071217259872446801437308005220434270761486173734686870997733646400783054318524118462586846869996096734997396156985606588001696364441554751449164109694750431421435624290329301515818478578736366441295816096159037962788901262395381737367294661854773465228033591881233587394630906667935540947878531794027456380964713378416140831452401940588328626135912069143658766812125767990388620083895190307993551996363936956871176745828552179752219464910672711741809796595918427530516212268779752744508364060552078012375267383130845034968983349430868850801998903851999188375589888972027349294464576023813032229539323236553998101243899348757387864657959315016368330765597097627656804020228337327498557455815651914729839671376316085736201928964643277699315466810473319016980579321586877368218086873813844391680288504236055398425235271623694250492917882150754032154706045673121347282148936414703183063271244816599647966078755212685368970928686331747787055333952941909212388320187083998614189808204832805187918938510514660648620411502208283116604201289579705405236185792788188390770914231651760163741230803843027540107366179987925521435869112332592777680282796817587469906959813301216463537618576472603174212547237994396362275680014376927607264248418114111995960691797329621810388429006351703413204310586726063558224082108095005500070810305420038264178307921335916532334636020178651431375979591979303203938084954693490830825766133228929176118964992390053711914193619428493545484328938292252476390690242787968746137458242602043990658505346726183535388167238678513554541024339874812577245934199786650490077667390063547502121740040627470922458694251614940562147775143568418067650671324392312684985710089510665597094195707262577406189029613930251438315814841026844489139665942215077877019016716581135941280427234925824848111209865711184046267449824202227798365417201814953359173394034067661392586120497805459121843778190549008220437991477404240429514777741023635907716943387566562913528637070867681388267820951439934871066915488325875558987092531609741866353361036387651830129320571182747740327840602549666081874154766621443532394354261608250775335537966767217282832362970497351332738201793363691200701013107487185108559068999051200517277137993824601199027904811792715196609634532813101418112298496268498345159916628952124628044821557356445751521948104215099104488420214484380878737960326487087484252560001682622250829098282411906776301500097603031330655237670071092770901060400865840479660404293171740393484832568907860584557852019807150883113112211823460286486249018357827791152775674123113416360745544431766523583385444389341173636940286919871892017189833636945767873443406363846875179760876806797223028913569198451296240523698786978277895342844049332348157368962818815715753306454187451608913890328412714973694913214440602834255937545887138787830717210377274996633212420687717666589107717656808367026264874696196857353200972276690247732898469474806017050180174482599087075811109002495207777146773335650586719563553117813846127388014690133292905896345469236658275948995112238227375961364731265301628991598714828234189605612514841172543095971055766195383016016381999750576045159193853715772252964335928718550858473648706391134500323274181429149452587245833804642445054441000728136586892614617633176614343327062128834949741563503838741199960512701633892622553780279466531359872182022002613658155029644219369186386935294940552472117804309265970581718506650843293876390063863683187960204638839293636457515205510244620548549332402519760694626815029542639662466645846719486353432496732756445042625966681837278557988054681950406751957259023907156158641843605451300810294265451186599000482802131749697980427768397806476548729937815683487887293247814090213796194077386601087344929316117622912306477708283396551911557717166878834678255485310216564609439458876196569795827173621646769133309426810514667291896304703981332283555848851738359623415091931497785761805814946370703382680965633833761008874225893836069948516261596018203903433693132867663364458300292999258339138162158136869646659986524467617014299001570937568565240276373045686123380326936216710438668223705480375957483693029540010837432951799556222937869910417333594749499818012060511560706042762859770916305464598564979326849042124036081724096267915632459966401757410876852680154549409059198757572826334101713040019729212000577055479302521894928668430621748835911170875312306552593322722645805309630608337615828361557530016339655671237038566991841748815265422025971311464913376831306279421652366179900698833287541743646397461115335540921065455269330601318089234407101032209998427040097705267813384619233777075044487849634670938466487276967702634230746124912250958182230349544372547170037144446013732375873899487390507258642165656672893343331612229098303412569245687020596963003026421951998773795814676102039006979730050362238858494354679022849685606125963023617081426303350875173054961585432421061170458702234049363300403403648321360910702686335995188907312848502158125643604531154793193636005912077152463463285341448712764301908758905209875390874650549294260820612039134881543494123297901411109145337818809381111778570445045848138873662776951622658468870932457143172543339529092216441857080368398734034929023954214873212297774820690445242502292149254636790352298098457639748829541862090789867684961889320394251980430815716227700490160927002237342692277863306211369066812021682899934694929434776821804024986569034045097126945461171893751931666774190855278362920915103522699753426862472437825812136923483795918517564296864562314319912340954003956136499708109785887794594550663394031791080625763445576559539689165624569428111185261043524496874353030215656866327165422732735931279673696306345862721328939826331613654912058552433162830997903353593514000141557805608866919857507268831746441537152925708889078576957968050667115283425587355097012058610137325993652487555184049672213803916686377951721165512849233936914770805848490948819566704168864336635044757274281368062337141704316073429519610906890274091308617164198598669088974860390955509991364803560165087732881403447319351649769487486080749396395933589413764481081293555757951195928779204724405097683235274801494330942518259481557806290687519964653001020512956861300117152813170439914619084943135605713536816704091597461910517450930674918162658956552851122865728382926649820892940505796188770268383775592881547985609188348169569986877760412232814033195763322411985786820020490274327280412373597620772298892445096045274057536965519786421118406180549594354537384477852634322639946187302413282580546133728346957082938820763014707209565888760693868396226722388228089880937254994052360290452657206442981885352323356580262365862476857216769825990144933836970395181301388874623254570403223371803964909443357097821502823884277699690818828068944986794295834093109057343828234675975099119050760641120841577562400555788629790583378547114587478985665024827138384471103246277477087721936220211271719342219161919391172611494875661342584137107654143595828656989307036967141852439669407994060901343883734427367941269459209615200567936029306716241064162497035720338489554881806388602116203757312769040220090245955307010053361634927402542523412743597673159432295395266916953854974164915704764525234057246006062204054977680731159483555998055637874394410400747538239438044544674552023097743133805754390386497774523416052470788442462427539541802654046019610134274168232386512745363338126521946498343279990438581098894883113683678777175726741932430767924075685830734271103104514790976075888688664241337762472440998260485078060720761222537513153918963711488932662745592616492288320968330685843919887387069397047279145634771278244098112525519781097683017242115094871249091466299275268363694618906656941002969782690706133163861868969372492873207118813492587547724280863424960143664693406265784256288566533961554162610074196075899890295462674908360430217991317374462177903554866617297039190088931289199122638686520765302526924577483053794537804717686433719216688738789345269716974600575210734717867987249332342678869715924153082750025244049937072672051216559337982895474371800990526462944105153439250850249215306341604412603956047754615589411597190735052382180380201336207228509244396144882941723488505895493892505435029372783114119842707775830212422319677037295749536689970260196481685650936539266828082221294367901244413928254718462657264058362825946200690961341136454144268334173369092736543573076034488461668806634512671650382683319847522094770105545825346823253254847166961742916572258442766099124638374358610618350072589752293332708168205027651519035275688473602433609800813024283788222915837685049951303582469644026605286552664155142849396279793975376433074498357413331109896966066091108262944214488244007866562842995098813820349704120481256212807101127715124473006959139248130149749703265899069597944807096359222408262685471599371198962070982574922563646587105252368309330724032848233587714333014751955741609515665257755431770685592960882782176748338605535889200495801232486494886901805893494999313614399744457554501490453560097477780075652158377461360590675172046196336812293647223612362762177591900986289492124404546943385670654430585364320770385124072341301256149319706534951191577085122019199253058501883919453679765202836999672431268513539029403596520532677675243909149778072402428245253126058505193474232549877263722507331661571538932703815164580717980546603672051440815354596340135285615768697409024463392163935723714063136285671649679518407938548602078899749851237925944671305654815805448453991672286827486772433034050579839223296492197468173286720990089082766337930063769690456426834838390868760879274546288853174749756014296846126660067636625052425304061611687259326701148060287874738474943473788502429796699740240030698152171273134637266537730708970374323150162653288600334360630351118978035249870978026584562411344731655101490962960406115132700417281265775318213504751262635107843948966534056591367416750320787376429538611781563044952598748882860525748981685641323045036640617497282329861140755720674592289923395908351808259913638651597214828671651836491546022307509195783202175398138998553420770509259430484993953782333475013083880037790537139251974575710569314304325472764698557207282760864856892579821933877396137562685839551493293781883570744215574251028389344157974761584336904532531753175419803311839652372188313889452005553134282461324303635199401836802103330786918700924416222651585792902799797257581172152525185019238329718317387191656071958998441542604680148096433197891762794336445081605054455627609749191358594337680178728652236749583668730320068936970825751411375107101629187907158197360583357049637212581144807154333296087796546151692844677892540772225430843640070480503243702364489263826336331452587279681836705008476072288532701216598497013515859348967103482294216313014407878375177844951186871280966233959005994556015569278088432067284586343482804116654067230700877749831536843359855857207910667595804722413319459299448496731071767383868408493051317966576129085159535343249087345485760289470365033803996978145001710911205661202913017792539536530047912220072181475837852910001414209280621447923032071950943752393212987809043934573508078632095086595692789925158681018766286532796470497157666304578981558047801895966696653594606977208723609819465702513911577065006670055872546051744166432096197279899834542880423139382925221609774624968850792415712755026132558404235286006589975840232937007895729153162639692606297250135776738947151820343127739236561325189669414058761052374887327260752258008964164375229506257592034198195563616916355574108289522866841309246600539896466752536900526348278472229335974177076444472007025668814960783614716537358581500271722650571807194687643319988430437796032817024452647016407337181925982496866619471918436083402239947442863612884774342702216789203196682387078922708318926374076914542255779266559995207085004386384923119957386372921722909741183836343797792479744627523631566278958865501309527926989100630230065525357722859256453687796433826741731848734390560435579309330144071680665512381883529770352085277120153434417116458234443040668325385964742021374469233435331737628416361007069066355135952636139211272927080869321873114450684043682640680625124743045932015954121673155230114228888814626487796445272247374874119626740098480228339529898696155153373233405673489118359873759906764855826698696822091991585576125832200498938679603705319419934132993942553789549834349685691792252675258234778842018935498458386826389407422739561760484571921503203542479414965891065046440807921654317886443903410695849856836247654447235210243962127992286713942232158315946560103941667609182207677528332767483308122272452377882397460976186799639712154790050821153144813998891401322073000586445484140444138374554351349686570960806180118823113057570839913318962573889772946984224203740811178680180056829062527534064965417249084932283364246347703412542999208292116419343905035797545300884225103103937157919147001005198966264594426707408869318831916290253451883184508200878091317599830637628080249233798232509023158716612649801783821616461415292565608289127378175586133346898666551001979699524313653904304539185482755904458569035513271463806619812864506019947371158029811854167855595946602086019856661359853974943286537272669066277799246986552721216350950430327735154780610664623538235992195372045215259748016268639016121100126535858351719199739378410675704390419812986158962583681655322362310801556669243208336810824266955424035060493580771249053050616455219002268010597995423437005076731432168365026808035933102965687300374199279894260645868861077651122971514813134348523767214740455099646896177573181001827261053777023927448935223504180783243122080918582464896501428376873816307208548142800344895931965654024766680770521395777709092445007255758294529004675518746239631790901168534126587833202602827265851926807723250894727707872117770801179089421121817696526687911073283182573415837904137231179344459545126098591073793701710253535001327406478945041679456600687215575498807098764392374781088890544909511742892084950857679862515877417109627162468147279479289020621450778754015845325110530196587767953116064261017973120368919931405546211575369025114923979965484344612221065103322653176276997589892891711972686544929408792576524678271263645681968138338313977302507344581987882576221061808509848551611922732144017524905593953809900049461505634766841711118801469193987821624558094283224723917299399640936972693881413550852483994519857390756363507507905020544202203135643919412120058308415616926334787443068690411023750352362791910128852913449509030467388054074779157769224236344464212524562937695802071640794704939407660492164619002249657018553784826077381851210862664831959115003437474140572046136318286741638830143340441813414662184533261463582269824815006737054742839328998929038138926539317628979604496883275094302902479354741039247570987340661538230044425042929977305823168373273383165989592014413046121731718356276267501985953357019230045800610922226994425617247103157396537939724571154434245308663224333802105099469710909259231853387135873417851189081233956132045799907512479128413728753221268758550857792243250705644928818502606586529944439740808718190409001520877727717978309897976432426445697831379652274125823080487078915982970595368180876270484771858836116837871866789351387076940472732460054378042880647979518182201075287400980918670791573751620966852223623968598243081001021386346665727863060647927578770390128844450173372565080735051619899284763784420022343507987823589976207279460281744251056052996557409725699155966511565434131633390254109769356514698536850333174082184478803894446672923296691748593246079163592065366943969581169152127788142338506610686424585893319695300550249985933189176337927881378297392048189640425605893898996352263608737991720755675923398718445596789937571687328511188318696530104682663917875649911793702530112217190684388315106938143126614204922304934497315913105198758344380218231448590586437012046547488568938265052229810665509443417174505254592873382388715028632297379911279215089866588860038875986912844400354469929134770653930265639251570953337983615768698069291477303756287102620561113261193585641353430642581578329050160828840196574533979650279368831649452481105672969747563504288618102802173168367179170572448803300340459617967807577072846472756422879702980732417001358572604538350850475336159680588379417517043969303705075614326315115819014838618990168136884386985641584729980205382943831507361653459818513730028305555772704581544417175233999212378654733663795831451352899078874930810877555928561573172470452514569195644194769142529119616086348326482887279611531061493875354500099798187551325983546452560811468824376605859326219759410477117597231602032936947520887384051985646066476563210480686606826832897481344445856167718755508531696704730919468343436085825088335646074254509471320805849413688232423510306000824294895624629148696843575285431105393006029736624194740969610559505013861544291673464680048661570350508728194477816220304373203036027593699232846546090614055316216783495326593886157944048912419511089856387530649071616720064952904183609437565100968746229042678318721003526287713174136839075884706232594762748035526637306146495494996043204313305475715710596181887153876308867221159870462228783699857757152830582738813079110257213024837297817732764308990525043345744828288890466020915610245844852281176528892268455830678155077349286593996066454159401562040923234147191051143673451237995083642143720768174145228277151269026775702394929311355629336730064074716577999180925975527295987673237440900579227201263489226232224749119712780275979946364262950683480272868600634692697809375458532078560187695360501456223123274536197611202849905574812322871602955825870513103369595225714706913534869784460871834976317474159150380606693084686239040323496040190718421725953553550695381333603081871280244133589037255020806893770287250000121455166381635614133065024497188937968605501015743982629590536740611525903428694849671134358188494488417563210015075163538352976246224172311508116407115472176894128531312056781075434142086382649685129261311117968481585617182330155304623442628428585154161285004776725972845944003979071132284790374388676271023366607438355572123196701955209397250186606252708313815196061055060652685340147705689604781769483713742402045502153732442968020043238289914743267619657726744637582125789341075895648510528101157237150306419636271016475483613543933617019691602348650762544473221385953808865932236950888206224487895698898622660798303709377537326877574710321410994081276808980049343669221232836546912361981737129579339274877828997960215011749760168859679939544720590022951588007419564481200164399361530888594342498107130971818017532207437787339370694205628910819264793079267714727308113060868644904690216144825736615162723957744706990164250044866472592248877414684824962556535840444787263512031275927396989742340148067185247857899507056824740192730425898603340634652836672402209436478540457152758668894398164884228366575231587773747364626704656217339825113679527178692829643642063774925768358056163665494538612354478701405553334262237384061964414795747124726971681403149025286398390071002193667735185937004812200357544656403446896430680838262377462577994144682152359449441976190382016588742456903185737705729779968869503507549513045380349153836296353430064234104948801126159154092313448832884877712389429928277810286477220939596419221812246387611921938961735639243651170674644546280824686903651181138098955994235454703899894599638345503499637496871794159295315217634360923528503491506927338905648974357301308059779367535637250175389729460589287874928846308209285532758126235636768653564293505828172346538483414225240120835251853591028750757532577465585649398358811805807696297133192087656791626808509835200521283209143039758963130085049153713186082029138223659691150951087823107607592376705566923804084903407038667414560960709351429161609417293645232855914151063452058740908690420894408121182350918075366631342570785022408554100854228369449099305502071857191465770859418082384815832220324390089636073605532688300869440045022326532994867498655541045154225361589170047050855174526355869837151320056307063235088738756463870804375371351364953959853062849929714481033081766516808066782890348339667758226409273904393096118560104978204245153508818177602604566589623013958055214220545221300492820475135000345416060534096111512999377154003618324036160399457943416471823884960635133159210891564173898818127365648321923535560678128320926650704619756525635616330977689784739182884998610078792907545285124842965283229994039909087621242426302947555376240797918811255772533618531101574169924519351908792972801598765623356230854940896129878315862256523377830691512458535601313331086758129826668837998866894532434183185716718401958025525462807073645561413703696653416099391622272047923272159360404127100564359332518768401257682883264218123944192147258896133380404581672786416756388728761411242501378390765386490841257223548663261211132177414580179782654555484033817248905302442369513685374388916655550152202220144574942688920441814863928096233299235284237303891523641564741860480959408602666023270051813854690207244549275187157338381630927496010708640352487866547639147015587938391817446055017922231723994451088553518318266194941544015891922141499845870394800983354659331031361370440104535834831635029058234428881283002121322628698687992067667162311970327361071796052961746793489322553429438605717781575900201165921004137207287523978865035581034069998656953210074651641348098040499892820372300442511236645833957759716481875272575268354981531071153344313262615988288778360243515722762734924786443106269750015424825123967139680942573028906455028227211553599294142259540905345614988594628196377170845803918867124188907721506542624942778960951421457206814940300218933824383918674187553845545643458638110670757670266208313732140579513349131014904660537351254019595885672669032994741740464317732615483718221793257248261077593248831557709659335287748746133284967808349488576450548781340380570705787477819907981551485733249376550799616528787423730728800658665178390975756826467006776490455043946201488302000985393107114888405707312404714025638208888176265995505621701396951418660051568416611526918673152968685699979846225788360192087152097621275369510069366816492638953505248330592211975338958060952957196496613967452409115064359484666173309769811393565456477319102965158913833103004481445445155249635283914393375543242535353282819038372751928898899311637593326961102986349814386989936869287616035919013029408880329982949425613813707709073423603370893435236901353482306882410845544546083982560737549414735881736642652031330797451741435198343340064144565499169823946115732719370831530820054825307535541107152522937595213329500114888065058428170177252902766980045192836924420964551161607625566926778870900700823389290442977354368553461106434275632849850444340243384048690164606145643697316615466628944503739524709306076444179684832376068093175260630679868613000666764633933973569706439719286117310309727604325979415916500234485939004595776453202139176396299719471480628494109440918460587891785914016992357128935423893242350905178226812341744408138509010262021663176982532366802747670126891521095441911485296478260405973360313537132311465181985355701590721178331093430639854734154136788110593451217243052860378301841572600264007448743911684234226166394750995968768453331973707790455795906713215911934107612928060268929302079802555002885246797934322228467243487417065125999214990271195808757865398967454812901043358427771661094490773690856763544794310857375935851961418354281670713236666459602742368977819798739114286556539674710154914911759402506004817682906065798843291220261760665670091065290959762122549479118361389493880026016414851846589515585238152541433084837407864818416495948777354870400987825988898892009101496246001031706085235150980877341088473525523863125216710160131292712138516361719660244204919013175094959988629236004175663170780576199033079240863644804527792794253195429043477090801233786412356002925500155124606185298199279644983101320836428473367284774928157162407049711356967176011930656404866047955298870848569708769255232807503838917511699263499680592141444529635061490491972061210743697576377988595298469174095730167502865651841269201762692319860458721404847160592429601982327224389256171245121108427424288622269763792704751977424720382958261166515447871830641962666977725334672539054481606079865647560938409613861486421861876642967239013560143904923925840290587415994369018261440614607376609695160105339080460207009139564388493753012925853758619991623848323677860407920834081380509624209605150155637602578365383958699050412029674460513395716627414033533306215723582557858042260113591846855496111433240742430009591311837359874700153571897357287842650298271279098335202815874458243350705486425945063488376889996506717530821955759302448337638702286393064097995450317216095280388091483732857284860637205094748503182856621888097826381564696921497933460881210851653143835949943180906272754629132891355982196127986838569953846737321366316536097134098042629985458321578387868409300354249882623894919404592137980369691557985807205487314947867519282190038352273387595958521545068094157476467084977938046970426858387694179402474618298778892913469128399314059444466332193629235003252001921237468038893454917041979376287546640120826095784264337003374263754503970495317244481235679285064895514477986937014256722349211184512331816918983148977249450151040868371844938329374967693827198335304492465722492018666379036263203747155809648556216241120464443233740763127500987386636089082590259406358368272411645004896433154887854243049115878081909484394514435634403360378348527735814521250234630661830114078235067854448897790745458036533175392731801270837911031832519864799619005097835734129842913963897964417456817979707858993732736529277802363001697186920951705867362690694367302058199779572335497596043951314094675912872916340899754459733759044987943082131037139749796646446371262433312218755634183281311803953611285112117749213297291492548513552041255207143260939896238754386951171021459262289540471359337434243463761980114108525595487953770999145131594732820480203252156316489484280179226700435401325128346881018794036111727834248180870771424256598914251438342932153887990362391181938925212136454990622388754494811237268925960017018288797798434426432633791879176761388064725902997185076874400760805604870726154928474545462090985157759435369486343903788377028533752301617316622178146514175632329379448285773720644013046873489040250130362442641172655690232148906495603234256665324099988915359187244014303998379337460095832111623377971576033298471162150395881998350693985998616643241608405870939072229885859093978392853838699157998059850604246941184644735125077979510880281253595712436621689713001615967812941043395934273702825269394679943649542620768026807295661275472093993946052266566042414227360814388937575192473120483090852336419176411955575738569285915025208678929981395623309217950065961182485889527255229835928854560238445472320737086819631106036774343148324576162591907227445850127903904235612608028571518491730473949293996660123470665718018968897342944984108427482584369967901642296001010996449073567081264900598313713584469943233900103330756197663482968739780436879600993164986674864241516879354343552551710209391746607489413660536350748006702090870295992946496973988541185033114953608780095139508660035035083666211176472152649612711763113559786122363811667335976351282004524484094231851228646088939171284715188682569801823223582378495775742391504385176243850854740894401774213407497417175864573161632403461834810249485203475447021437719297522346301503338925193346482682614337715337794679022134281907659719135440652264855589092114815505479554073004631277817094382630708646045276367389051554823953130813232263643166160353077495019934569302312735388273052508232115414748944490291564241852384208586746920398773371185696156729836034063200519519393859742680670546557067992863145132663163063995311617676876778759686648517550792416245662212126963338753934759255232542050979583514869540294157352087315548448134328241104170171563924007384436222547033855663328610527479964132712930731359486983147197799043775972648961379044531176399016822898420944819400168842143829455245661606151691785308060896676921100618262787871979378950471212923571348337564799998549938959039811973835817299962057098430194542287828889889878394422956185807610859364494533169908582846537702886390945710139003252927032853758219875348034521037822492807406517563145419954111564005695834735540028055126923431865513700466522664416606104648138459721117829447478890916483038691427011690513898948991399460476506231120743946889473460968178623181416749894856508793033650457410980633852095126891653936227871047998136352608268935656290175015361662809813016021366200122196611526799459657563791744740678846447513146075029223563297209058338913778920808588465911327090164473192660540429232540098407043906909712673186639927974910364524576113956502294072552898987651803930357924583532530822617945147644467883597226279957951477503580172315302993963824889905630589734062286959358987519582903122052619890469939269257922338841134880133887288981439205423844612620643172563198938426804549200823868842677658932878031220214682444934767510910271971578529658229090904353754276413312522190840923650936853862183556679564919237443515303455806616608741766975106936686513461790134652072692029769467692698046291774650816214124131040375629180868763317979886159825652125998841908920347006669562201559395725345379433306924032401325393978754077649278938194614769588954114889491916981586414325293815646407161724194665585434935967934885615302912780897641898006101731761360750935900033900029559335435336274383244169633580300268673764567737011343765402343761456284383028871478324406223886646632971305994538916058955469925358564750466000643778079453629125310426240455782650839433074021287251782044868456201648956885044891163650622665757150190271816959653754192537023129030737326210581953975504067166388518253873026464676193764951650882789761194843230588724658398688338244526271463033635848629446463955043401851680888015070001743187003203187999915033710094345348204819171506439229231286348305035354067167563945828584365543339383786802141494831823102566012464514794522876885516094547239557375606714891167511158574818589009614141675111101888063855624736588137583272877405033681793626546036142005894679313170757024758991109353635604259817647187447743035699434598153666169807685368405741700066461483987940393690892629462491093898014965722767070916237758627788781200506605384376533428232035081306159916946501371219352456865751232677163728324389555932128293179891532689208396212723660026175282394167423713711323411664058431978172519154910489993499555848836896068527084630072590875147529182564948115850750134844901486708969183875694715150393557135286719610715896363105984980123368864740045909270962913643006995937262047521677136534084282808220359376004018294836976622353593575082039646313625114885390468709557292993032816413555005479404297765904442417414430054318872354651850602085498835662609972220051290118045584210766184686343468122121037970867730889227129213381984286694843574413053314429068936266281537257495638030624830525851132025660926751849670751701785155162301598465106614275985160434627156353989984393231053554722502047367699487356207754715462803799820766283836672078598902116673949726469330343966018343378106399282955071476535559193839278618656966599396048483163812853832982405900050940479002056119502394351033860478455270096238852225524306493199843259219974204381044981217418276603086245082249786616249097230162389715744940030298207522686118203300305478338172504542377900587821863898766233058320634012460826581526966145943042008158010407154471869453181061306783394414290508592685352823928182717168907592022525015951521684397542266598037517896968145650143545409822736987006146855290703446124472656817557033497203665265870174403797311434254403330993734129434224699604499234937302749907819631961173637849839363716170472461861976630573375889306947339148350776745998740512739066923422220785914108002504217381104504143264351458852620538735857107308273319196230300167710058759520936885079764281102742849213035533806595457333841259391040072475847916242112500807650386339065887676411148172740160734876087018975703021306791045683543717036850994091205668340500459522330078460364947807867279096326850820211448498788308140642244528634196285143682483019345514741761534128961092141020146788108491981748073515505447069066744501570277771028912752232765463684206019124045731255134902761736774159858053858483908300975399029833263888933106205798681607862334605383835471199269214606428690037517269304992638811086953426267335612879319451548193116772722586560893901140603083270065173618718684108599101772340246587843575423149725982490321850664157542268889902006728435938117687700830506416068388272889129873638933191638720625929996538215666616372231682954380690382789242271310189892055341880892847114343423793409205013732940391288114048727688137740014053149367942717526541956977162402836480019294407583023363761031414773272532150725195160872635804578960890422789813749201801968759005827901069471753547734985420502129195759161772522755824833829909251082393552618812025773254069078466573666305012677064273810308936957420302209953895213087963769308080471634480716385818010725185288995658906886630572328544039638449054142735316500629805583339873805748076087546649305563501421717041371690595176977136917527503436494874107409356357510054761075810568122167050904228274559084086232416427817949810622682926662688411424888202313197570833361332072759272358576852956660534976695652581817469002838555668926971040522040963192437686644403074422598109890358524691818939890720273845178979170842016472723973284027872448990878590964004024913935607207200708955758047906609399765869645169242364892809880851141934884634635751889567053093381514732346025734199588391314255108335527588105372069810832798762974061928841923136162169446348660546530251671183799226884842437687318906507877031924089778343021593823131605825175347795066752651279526858001008711491288091634083080517419384712969188400046421048253250075187172257860986443209665716870376215130722893306678631470721268213966350062120470754049396476149087348744538711949179692420125775956790111037267282617218501957746711964466340206760926634596264496182203951842161061558815957146645249992660151005101626973344577851431511336878797918144552734995120529159692907988260180650663467641050561210589688891205203516432995192374436554641632845738274409997017949314948285663482353934762105291373245733186008313732215729150848319633560534692077627724588254664748978649567111692863397125860539152322510541359255102699380002301279704639617769581805776198384449611430507836362806716650900830831397977266396691632043879229624268445550516939052347568623735955929365192245212238804144908744722965105866737332502173531582334114106286127029733105394618879395064003487941315932466832216505781757250384910565508352221604378367037974515631967169121136393972069495375618547091329957776244988596964837769814061563547744441179931065957966241952248499389198174173339642585545134120700534848581683678347089809568658065934615606795174982711427275826862081171265192752984338663777436284310276527140428845834717283938202624480020288441504096442670735374348912477408110177989215855234877434758181644338892110763214946398280685103407455702951191148156958526608104044333034051859900248318252286910352185419192827890483027522653120175449258007549609478739043875091871786555739445231963879256950990445180526086768273138768717785927337778082227821286027436568251396222539860999713164565178660932754498114358792324075245969830323522648652136152706059099759947359216630888633325326055972422650016873171576841304146957889234766515795505786902926547749627309754473339100277283360298773811970935582433172660500280785097113928263807331628307943396282893562555370151694782146903171104270858115461331210324603926992418929673786376092581689614605507170239675988220376003262912323501254918636770163061329484928855484120539922449463042244504534340587543921706701357865354304514871223181880832248327339863826531442308072741412346589749661160593752324550337038272811745320166593788856266330055532594091030102289182116566668645275215917734963178917281686703974825461073829062278343422768554305430501943361954896714528196693003290553522238035159265706924683157831955698663062635400952516933854875002734467494285568898368780215276943722322749400259512872680076872927819071548965587536259883311576333917327417420103323049570539694820804680541005231297616731871280826294504738818555756841384922909205465771907960191312227259367620465642425444567855427546697297400045333768108813377678177492641373827275768056584512097712438102674316483047280328562302567764164454411280988811736066260359701648721698562264217081756024492594651810417962293303788893465690159362563083614119230245318070647035129786726121504776994967532013835966138694364881324018619829905608476639737084448978338161577627476486911216061761395537341886205390683493006094420686295291325071875258724928561538304492219017631190435943067754241734040271140087787469795526404352165345584565035775715841409305505732956449978079013589237981586505885490513823043834782787166320165011537254982190877690765821939122752810806981932853887198494481015990838887296857223874147663143081423298374942824789050471907688719043294639146399250086873699748331432625689476845845904245999280234885120911522602575971823558358905246263956385476305100362383026113427998596556369129651082193284258767248283220024336385925473714055122257030319253714885259517934438750334528390542517455717639053081026449473817057947716679809906210822401670356491646607695946959223179377317260584669029126318239872144336952484897882572430897602064231627048252177628696653061179841818826760501158398380674298530544409340519804178641773240906082857180895054833593107162357379877307514230594823868121616393622689806566401438508091011944208803445275864345724443285592538497689203298158584081444295161772613013532983321904493982916685908232241428022633640512798838125906450726811796205209150279154273038683597051070988495033324531809508652626294635708713180324267758275576120613007980416856839574038108290132020006913196305694505176863210437509640592472481673682865880050912954444121526256334859684105079128934667275500162816071806532498040326379547522291428997695581488802115142045088452585219912636935192518856915892162283990363833811165749928153248752995151513698782185648670406663576694330019284848106458277481392307818137977908369198753396185753107966102593615251972593013962768007263517151306130088695319121739691444777861252782033902743772057138790296898176955164284058047557170206440879830093119994995353243901122994784178267919715280140004865012791199685318589897391004465289791798144974106737584519476585512114565977160049947706309066150793971476522819851639891024223245336944547447173107921356891874194709996549654736509772305260683121816325911331466456029886344900529618629396313752645096626853050351793195390338004115372173807816502074423620773472499745921679292893970058979698519531598886285378513566316228706305131778874093995974673725815123875849238814955511069754171388238448634241626002267557329406873420945841414375609555435435528143515737257382772470752973500867209258343321036021575605882517697922108692890392173435165036047842987504811984714607841205349455493609764365350019203051294701422159534278938096620513283107235897399949108502961164547695513555149106791056364909802203411172615198666202477123840459827761469329961008381520029976109813766517081126144109291431307466662680668612871112683078158882359617794537667800874968493939159088040376007099299329945671002578485033483570244878661354520496812333810777348988092404452959252296093649154679786968869254179173233918542386561854639269963733712172764582623414877099971577347930085404019072352418242262122181841339909359472381406144132780851825053225190323272318953447948067995719589520039878476861821225685755474797305574492250142588394001513409623400463310524228450834296570598446544690056788478482897770068274119678819427240650261162827338312148228653562558449512335887971153179109834736651782755334253686741573160765527228566243197582450481423929238195055691841891996871838119545660234531355939551892966148942975105215595955814147573248655117768127830167696330100279533359316067481380579477698192971670557629999757508594327351273589098938281172052230448429762976021833972872699960909007176325536305991365401173762477679321183078902526005559973624845850566126166674583938294030136262169071362004339157197134951157520292069399398420747890983003019357918645750454074393989846662786716339095770803947771360969456281821538028850167321936100739041045904097840289891196562769802310447401758677499097852690678937774203088987876200766973208767997871060016746742158175845624963425854771297224240559055822075349565551762076466619985652776507696728677848324128525297683324859246404308517106171342199183230378571353201893261212514712901735760190919988742528933267186060086763839049734872671777721616841335800730486035938208156221837615026225375403587115808609299994912723397928444965150135544120168023677356421972491385839116030203739147990224906494100352335640482782940076456171516856466123982266075734497917855771890897911070399432827888940734926279110617302339435375566009055569770723177748968581252465187655675214158775695822323757665296320711238908060336531831801632461280312274263979405853879127722767433635934112891637863130469882186378312133061677501057457481975558011762191048939200126370364036940830594789514481774272092655789277164121101659914993273881089745521384542891745772300971983996024591446391969094235910777062298941908695653347205832275706704265323597311588665659009113041792034706823435521675223849434858263722023968898561740920434331586239800666810779007864321692546824710578331906286958945790427415463185604723244397534220647177268406678452686819088306123707844148177643054112900185640425801987803289991243810426822992651265323230550011879491090990612233954446790958714719271195274575409058846544580032877810392871213957481734284849047954985795727113038137811290336669545329889486362381988759917686249129758316529696025743009304086311421189902847655553133210151234962651231525861324003062589833077188379682234383339712725945142216994451724890687999227990854021651530926200329761463475948996514069427720091872876238815726219479593361142935399809651931931176704665848753946182974587092171271379423958612986525285485427355663844418279532778941473138652707317931015071910589054444351443102617815806860074297334596662251947091680661274460557147767510522745927831955908862894787501755768560845830360699335718639131666806433235814709483529113165151636390587411793826253295602032924201809124049591182666949270087951995421202586045266017324220730152405711009174120818607754624817551856624591759480512586581526022946708740516122739709912393273077106123282638207198700661662217416147363097162979605973480894028478974477389331829779948619327424455513572103687944828675373350173588405337511934890872395486475582705928491921429793798180316455872737152134174125193347704305528485012396829636557008210545503380325161483722232337879179712457416300319121642394297613932492735003523152468701898290848709278410329483639457781190350357589825050464637937130449232013476189025140804425239179269216934281456336487581178976694732729900402362116268343961198473798864439171411438281270594702440565779178963262084493333264159528052550353050572807937290810532022609242614686372745224215366583051357231052022403903563206969390362347693317583735606140854107104387095483889319143680035155771413266227753386355421971038645924351758725567421336167391687208029280516736747177725512358645336314284708969267938902581095586439825191036740642385924522255634968161275545483913240680777898542445317717248850476577260554394962290752905566890505693944026008127204047102154052982880033023222937447998779132629278179592447848202840511698707322771549387451509193498526659039356807351275385489871809523427120074822939298586209762849844542928019290009699971045427019301500465601647888783520527975598879967154299381114670065403749546548821601671843980843618317292691209027531750147394190282608351189486437188456931638030630608492124388993726621006185814534494832000884921169523527080270623123077108058590286487239378658999225632254361276887765747482153952400994873711052991233158640581939246293299471512897906948911470352807037088397304442872231229596047389827169893419644118107723287802499617347997555712822147894756125486314030879614325457895558246437196855347557465267399408713730039813069969336521852243367609740638836014570935121574428946161427836622337637913025446204848977550614982288987508842441561532170385070801425433329740387526273013771327856787385629707258350753052742066693085603464401070777201020271684472532140455009820406757922440112603891121567235003112074919060846485542050701100362792849111283085062847260150908765821153592666099679890349561004635156345264041755769189410923467859593714691830299965993949598231601421225194078779059224642405688775731856797919261384081802927434474477679051589645231166731323405709177618549824398533862877353418630573067398676759917152858393542791275007643876779125784103407035662273083520654156222246727693961125852620239564344486235079084593149521177279626293779254217454482080539149896824605776350519248016074070194933025853509600484293000453185710801628830561854698624948313780361584360901752889644942897008725036991622256871839858144256209333753526798902197717098670788116428218159913870587376346476671743458634115972652167832419893158721155491231815327846160223527167018682101412227661627084210348406820465381041543405274174111779425709900984004576431237416883501500848626589693839984142934826496370302439201090571247559538430888784997860260874154111389544664358232499600019356512664328158086713314354893450618468357096355435020191347989221565653329943081482187418140333441002434666295380486457185671828029023974130040397034736928371464662482019884659406643293410914465718767936010648206661364148991007895188133705605366977795755420757466682939403753317238490711196081382719066440653112657202567646010543481194788006931797139047601003723477551534834287266388244526750117179332812191434717684934044749370652133634417949898259852327914874651592965927680835698288691320960879910388741104135157872976249438050939216766335172142036969853568960699724409077397259545658401907775496457834798225012349324369452745375825662491035279547323683931159870696550838678865428932176394804142399876685799357665746389849405919486235216149722440295932124452960200540210307828687520233404906373168597841025360991380008095307016529574588510804625382833364387909890567832214971765981872558036254615154908045162637408929966209458581556579612131326676299761252391890931718735485347656419100138176649938775934980029660698881523282892162032147304630459261564932447213971809781969771869308236754157825963700314652485940876625385918151948245144816466864700409444108755722090557270401217177338812258871156059528887551013304801997474251833911990210051134655104685643601982794240025690886263686145917152518665507673705756623698396847611818834708318127111736311956251082753724972881927647250545018866350517821887230556280054511105592352905340803550039256655791010537899940575401085755488054489074097939118983445805250040640606727794499238357762176283887451093924910287209016124087029897644152160529379674488941010647661917640518224446064864796573638926101657185811848241501629857963358743920283502450421052370228597322368549227406154245461407935132909894949690241330491058310425726167970041404505180969503914883194825573107086520657703437491784643510983429015410114157413838809602772202430595325627024012071616542516125366456140451565662158122569933184661535371308791505957816235167986715150309569359749058817917270053587016410290356518808742716605662519504103923256632776878408701668021012647493437649068827584915853357021534318060573035591263359354354313927784754084159151624065885393523315431370722659078843590837684362961565027611375699723435157680229426157047662652847480012005509954906557749398061423481874136672178741440233774118061592585849307168887054041963280955118978839262738699476107446457332777408323280749785655075161217655244390135230924644880630070316717306003177877402565646306787510619417104066426809756623288631223698951261885261986460226698162696894227600624714413045967550319472525570923799365555077889125139592217687675980213592742232475478335605117448264963795923454171537050817309992672014581647575565473120650533822640262704885311822418514674962670897926000522093049592955549178243855202232295590477756319253608316372040374674404333051059027203477233448349857303422157743987778698484940985641119336508763507919040739127163190500651827908994331869179700875737457080167889199534005544774617054125672740856407576574716258547144786696954754136189630264781230557366490134392813540474556458017417256341764322907891895925891863049085575685732177916299725587325242287792947880155191845390843272263139941852853080707998664691312965204575996463910892322955382336241113921682696293665323983417564423367931734167395416808374909225996053860120142667502939096552071966933504722356534601674302849184679029285240726706548381699282470886962647918042811463916725104266675057816622056653829240912822768568114029522585120878339116354384419775852098335152142904700462327364264044236588122631427614839951063513033817994564580193578510250031849561380547657291725828354726793576373564832547840993758958466114272377304361923733338413672503656626429352945574735636783697410967820725868089845250876874040114230850873234375224973071694915632611214082471702123722461910710750569899400483579979461179509994365802764028721617440898414764901784721869998446251669842450497918948771393414373529919310537215875249923048196020709337762893541220262550145484727251007475970625767614805924996847357915940022645622818377631452880565034851656273317172216807597000617443160394836022241973336928594007969756952617315153609402676167847051873946118942223662928273707095101070999312844775165844805919738407163426402672901104146549627017633156191782709504021804507429091006210020931009214718481657002465966513908955949482807173714146087461669548848742638110798787905085532683478569301131550874121893896036999577994439641068405830115134886705185476347585184164504256804766018352451677922334143152255553386061434963273732087585723805384510480459735498565185753065568276727421212183896457075144668825029321714890428788247974984688001013791075485865311213037978671406568553770390069918857119404438116019540836658513324090570465966873110611384879871582598960502017547646089074087744857538826109471385170057896419139647118550415087795825710530577504521323260388716570941737747066397927164086519666167921505690739211603644597989810481580011285673971123372272820562301910777915932163033287398349283100938210441846356913227417535704840958590136889096184406837677674322752947334760707875851449297380222370570934463984479713364200650555968789809565479884188666021269432517853136332707116869392489329022994986645037387442616920199296310223413433394018135558120789580262896657238266654914776434505041962985664475436884084922181586614836114103157227263655393901557349448407981872085574591947042508216546052081934863450861044300065995979520698226890941438244971878532691166734174449313193374699650023049102962305942753354655421079631370901196614087695469863526745521168574934079408773741589044063368758691671337017567911317872504100330321942897472728700519581216954457002001602312131931039494348171989514840166015111541152812335289374676862914572118426111909469968835854715022305355841114596302353527743195438856799803454995915364434182590005302296883394475647444252043313978022557670343920130006611060811563155065071578452760676365265124463548605140857735102164721115825588788791926108482025354305233058057292593332826069544976975724169366620323603206093826736282259053641480966774509598675238919920104790462055754757378313374353382298140778842945599822619267112617242933816544717280863717678785696638803245807135630232205523340890356170061224071600167048256088846389779908722627579754258573157810777254683173651009981582015768003214930374345989835011831413482111416279987120723015481774631377814729121907314177286089965891822686463033760723643572030133914798990299776695337425388055802109671918321542620520165589850656037768974461507294846733637935158475019696441845250004858181551102188895892074902386084074858910149334716722218676194013089701467087411428028288160371403246836605239557789195471640735398996753355273958949869285908439494466812741464112987155174107781851688644247405649795247098068188350499460382064066619424075940609698441523801771099721079990686395245921361147004775693369123321704873038593948117007652864190766998336153784267823384639157333280809480779111412076567663560235679628413731447236443209593695941637359636157517570176964496479293130070889256218052978074090445785427499203763773136285918627584724411123376935772948374529259844349531245168322477023863846810345567922992982577931097090867801185850439562237313791484098856594704592540680955295940080056810071094344671592891549876353826603403084591882033784509603573684637906934770474851792666185535253523104099293098888412951489265292020303987735278093831585343050399860193947617246361464725607830773756076613575499274750628735974924873232259254596025298555272057016960241861326482441401464841596714863429724874681123684046947534748240325072218791968352824567776979653385307731510439945829367993969603990958789705338497180380706726368104953515681789534519964571536882702336299351257184508626890588328051555147128576456626484377998155955800871975175757022861824861856701892608311466674175925082035067475341483958530269298477659145852345915037574235101109950132857673008438663598483505958214673451264248928251810538235307020016181231551819909040364015037171591477651176601614317630660760647509126527008384316607279574786710294349937456275078947930100066265681973524215587832657791223754192296764095866299565053590200828041199942979017994614627509554692654173494654676308329232675256310086452935540419074234084726294542633139207922094009014090964389492769785042656556664933112730564447510334852089544462347944832928242768198766298684016461396743433592338359648889334197786425692249060285224290015209406293192398336332899726554526370248250759273066962144582329445476216745635469745481224568458819803047324004080588944718917017037004207441522278176208107914407958332531497398874064821274173362568717694393621080924768180010042466099863414569505876114935810317283223803057124215951303765468667052901005153660570586414969563542398200757264815126725889326266910591424423615540411598826837490365178111631606043561541607153093502763302082558640902942473228477041928948871020105947469885977865622992882286384272175773421883120772197743803279726587242912688259429371236689869853995567121864266971673422243010388580403630111833170474360079349154770000929656066916867807137528746555210303061230739125429330498244214442550371520759732171081885929708942027788488580901042329271988807760538454558590172940630928121009925861840931672636842314297819708510159617993662636413449556990768597313082627239072555113420916770304356827621830137652056973276093698711549023146113200376980636298409091574444144984878836625074744002891554871615212875755544619496854828822633378223929438169851063862133421590919530923763886696415078942397636125541768692728675700347871630625113890551329061030831463206868102813362954604668317371207587743632100773353959931047627308304533536119474846263705999962315821089188125792927294538857504771335054848685320926290858422198442827013524642233050324840858683182073153089273190380705182479398157896720975573599506691948466675281481922855712070164344926963513193463415398055515892757658414887460747046581182307749293028723365819552542719856500321078435239104391345202437864020814764251367561933091173238699900110090832925962220188673002216371706912847292325022046245582305043907326786957301258802041444202546382996675724921158377203793632172033586252290479873256566900503857705861142347827946013963729024715771323903837250394437507200885521905657383434300295800716143357918050541713211763111059779664931524874347307312955278111304163287732460801298613216240460373974386846259843964071942768011542551067654490877414909473629617878607582397409499353896993703853035622651263441516719075113694183139110489846937991907870226703707904193464119793825315977662989339793224988325379131707005592811581729186575097818922176270500250815842221379868397687763294838320297613102916155513807305385939295072041254394522942401686527593526020367876068458063785114626014896900101146769520674802929673087224988301486110866293456153400664475932857749499373688233716134617652495095333542002235472538578358446823368332217323942361325981923424513264725979483918940425745820618458087726829550407241635748873848726644752567010023034217758881380043964753357250629342591931371375182659634744515498280050912322929069040693596345223374241370820153031074503890494655286845394025205271900493822319183850776273971730223070517760749433689954728306394831034130013860038228328769088732473628425663729298027224326304567488377532125325767142176951981448352180460314616090057498257487105735922658932838863987687062186938652693332791751407764032077749134090721562745700295968214416099612362251155959197842450797371934700379347013830979563873198872815157642989833283986010195627992169440915658418133080506501464329345694681881865910927670501881271492169584373866873208166291484487915695453613835512831131899966916202568883611767719782585040609780212187047510970254458751398679545833978774941857507593753309554745825221439351805534729836401916855068431595859763990054981915349415651148085360384687472441741068710118625411127566293822628937588284816919582290137349626027455150483736482455430632017866995528261717011077518554890299974898447683282461918237851931878854456866679766939497509460697630933523822684462577967221878622476897906991252275329456383453609280807222879017971613658852043345520094066721512188761122683985955238786285104413417997067100485051781053401769735634335728298415694359006158248605113076939955637522347550376646398632986318304030235819258980626750121741772258344498966047826446421966604798222835910298612072723028670876181142323348780812826206780551685616214028612130469848496029157298803435526825860409773678157285786158139003883628447944578609073944130899144072270242400732895494204035348842157852069989815837960701077851279814101850482885039598108482325649451906448342085107168108794368466401818674327101207648860223009091326465711756620957723086887854762759488917087043997964475123678314215519374363848037675467159682150441095321761063898065665715537268141779567193833188408874838224703110544323217128137445804672314056010683839002221029549712169370578946725909883206844976652304570581059355119061447939096446940402905841490335620122202540478503399963121610231593738975074066434234663680208300790088786501553360557631650098868137060338787710906633816962002340761533360755605935210956047743123522930060492826559783204671561231689019195942562845422407515876769624941968862925474106050284758331758860893413948492222103010175143573566766906132668419899883118114691711347630003650409981467960830780989076034112646658857611950285327505366386281678717090271057407388273833820591629036294250275242832635571960905349513827983406899685176028992527239652003076242402749654203148568270045553407730249783658614672494238691502807129974930235431811636283257978190486124389968091367554938497349530167837080974814209485578754967975984522507126960722270708248751804993411491717312322023377537832186681310297299513818477775776256667052545807594682504450932012716135869975868952800110972516265458695759839153840931428001404254228827112397161178558658103914698669408789578343590987436455808783964858496203264101571836405358295846252503852965173339803324568091889356321066585650395436852014806026757866983263991108663217960935094155997082069486381910748479684028369045756416821070656054304620377933292366113033888969259609343795804991204793482462282805802988731220861245430028420736881305089167748232382471074182249665229219235050212391963686498882308491325676035104208382309735578512096103337751696046157815318673298549660850030968699899434983923032793492214745004409273441383757349628384710675784192570806789733193129160142120251204020156578134178247110373178188482937975931310797285347769015989776248533878085577630629809343751958193649221472468566540422875904665107879300134617998896856337895817573248535580933676805451920809155485180890099906261327185906102981440489127405543025463202775755749120684460175114800479035726422386184613155128711602299666042385231851724733153990495012085099682295513304969798185425879289481798288152096089811167629317995507424923796522549825430384381963808860684122162428290598813245449289396441633605065384414372530274108029435919489746801677421549374386610337345681611382360612669781014887396940939339311335114571502752536119960937099119908699550375970979894267939575598000493605557376522892906952014776595348488220710131441703890792148338143926204789298178643973501262539758749171158416042463046537801718404412988657539169715974694658101510409832541844938271338679571758204946207402291305443619098662321779701152908402148227043236676004278064515665359162975879332441118338544220368509383794978283648837762439204590445965472814139183663953185310903773063441623248926544993666120653475930540565747692497230264071879801813133773491684234703242983284006480079072092360504854833568156616041887173950253412088399836364788685998784070605659275779607123067245656105761366909753605292218935987082253442067008413916773217659894340276159024106554055174912770696028218552760464951013670282731877978992404722989739751589869624786045673515338318133565282347606591792467777818032810784386103926076101422887953092656633812086041103317186651742830649057738365076244347006947538394502560876232480405992392574915029688707279844087210202786263360471569320767793194518656206245735646261320898041477887624572058112088102502487724351742282187436749442564225219603903813077382363914642730378109174536440581900622014833470502151445178054103394815583001171300212315679930468570851888623308639881991260579996122435235629010872588848294804247626384557975258421598853681047585746218999817734717969985310294075772103554501610094735304782914775881458176364746310384038636599583655658274110111744124611242494824549885502581981189657135601188549367295049885579199461646652616873189838138263043130952949003879246487444390577149214181031194647228126872284975638564379220972957509262931323929897122992294546367862609516983955656036002889070505974532575765829720678732384752907022321927964887996298866705745396285950458703899481212091837131615141704030010846134795041301396822683911591454915138904605871128669463059319609941558933560290172122428888861179381566709603428266956673546778647640807499210564068634505314245114175458867589255997890331549484755767657406191434554256829840319682661927403658565923957915649156656159942346621849325437553791848768623724537523939740877069836712015004406334345999107360185272381436937174734065915676806785411238666426502930943326951378124237874020180321114754712160884812728134419120494705741147284431387570210433668188579291553292622873105892999423503250565605448543888563737053628887750582281705730952335013675113186451642028125872011529503122446545903260649229208295074573738450707870035207744015627520137192440255900661634705508456947379725307821260907148962747721770361311483995023987575071518880667263285124473414170825296841557352679387295269597820928031548219661683298026476488483788255116580726944099401080850956249317706325904750595715728518615565784138746865499896179329337163991320100260217622120643676166433330950140282485635286081236391693613302948245930648453246757127064776494434968619959062229109456352232565007785173667215498012153975371139186707313716558741452213448069221996636120528932319744221481448209201377819382505968344421588245707868976726449347184166119647366107410635486319849707292502076298065442926611665164282483352841465007279573487222032236659647093064452985831606164237122551552373569388878324432510615529616158713458145220502766946837581394980021631764102925838467822554303078469934323781131008122333529833929118189202354797369223894219365604860666926282031896158483951174456586032092365935787009977404505307869153031699861316357147289605951609496733918483623644964360479858103866337659649905091859435735558317471418391391990880190122150757150135151317805568657010056856401068721603616533022157169319553152389344857113246655166195545721443561444118020048284673666088774182354744986704909150291786028345609335839979289442835588782889965201331658908861468909936261663384272084393083834329452434293941513604952358858912454786583141672044559142942807006522211668072823053162299861957071189906589232584434999658360635487199132800520055875308444293014494935105054070530344415516824860713586581083856696525705553006135646956712030970365910726315866977583993610574216682137964129936603839654609465272326486068662000620614054578886214305795375538468848452037198487397689418720467241496359859039041406659134137668883072045012133322043459000506320654719098998169195463362139243931564424072189680363077209095777622413384200682596221042684084304515548091372773090503740060331218552607063979033762044316449022307088341253484711473132257617170006047426351212880904669671578012254960400491741007225229972014380194012717828856471716928122422481998407111338530581696510591760495133603546289367286387056287323924977759122036627616631399956104039624927120154318816496909180424769392574990751490375965492243726925348515806152542519312445769495822675467960355094685474240055650968689612132225332701847603652984882024045706069487565384074894218778385832429709883386444213813484184364735234746647223417923827114320618952081597673224618600657778824112580839066747809204710128801204304057105655623632108622794136952700367648251402919400078018025242702192002702063043398445977523839995963104022511999453093984938739691731394255750589087519349583816082500684666537830422329973103613278504425317491808124814113451336543396577104441169147343702983553567833110066695539020408163466269131089647604272042233182047445235895839568021682914058874824953691512333224511444448576688305388724582196842089822029967619118509428828897161099255329486863032319406630215668743657131088999697578858757755702113632609527903992818772003839082592557697758667900876396964468901645611488549004615874079857133514273495285834227114540984115482483113590735514721183388957086874043942618785650444705029774047418858076441829274554751928954372299319971164720511405868813479229724819871276469226782613382060651038203794371324046171939980532171440873115282931208586174533589966875095582843097326854473600085598843955928900933855631795277239413784670435328303590469099743493864379507526576571361791185240532362775106045920639729376809393807421021788971744984278414783826956427863086992973030512098111467228893551522352171957362771841597368099387085903985002672571035140891309804326993156829017422500231938489751034236724715890105905757777966544790677085906506635516014896662615888115305848315809252125954312298922488230151189566321782836318260275822804256889784796427200696377620960222876165153866123663142124614232910163242903860234346720941687280647301212671707284049277534490301254619546107804306456549627605778970701235574498781946935345626153738264783244087135742250616671884840819965787683627475722633234108673629281854926567024160682215488218335049781482563965030379494967017344612526471833414733418219310802659961443604022921131984096432062750757951069023462059237995379256735490250811654008741968777902132586097604071837681522788293533711475757903063767522429017044400523802764417850703816632690151309473077320103262903699405773854974325413251313323139290212899199846995843075785574009417123145001793878894177729315375166383613113912404593606728438374438770370815354120837899388116793486798095672078748109816701013518611194630311910071870514208597993794775684000125262170935074325871342945578416265042162207343539684450261264902200635231064908604838350086524083310177017744531696922617546899749583097861160602746594096409621326491862254210722985127293937242610622335791822276279504472902156981589139257556680646267258127683226987465774047170804297260309123719429852539769283021682079402575423049913531200606264105466808874867806268236825898300672938897429364162845132370569887918272435541055759673802990727296028146544820038554054891159470895907463630940139309757515730094646552681620424341689032911733241553207429142908971426221817540132131961450175237957195043091084337237293111877859421762799593589000930232787082044098423498302845072871333050949818017383831219306589676399843159172018548437616413821120327058304862319103599235905287740299842329878307780097846961364352856902452295783514271663880170090053226526764591553088095773652926019508286974866337345947006994818526577992701542337232104886700331546098861423360412976385530144717473633993860172172399320398076225078896677501807593011593729732630670571702526697643461623151998390134183689668133634298469592637852678322587863809461705464549417114664812685171314074371420631997339635496932926408016818866835221643530774030898947528117131732669434019286070235177092946749369657479320482418248279503114982832822356659295163361719339194269591975946105459384310969840459156952902253407140129369873737995886189646115592520501599208520798472835581084373159837753533985018731270434107145020165380112383162777700639735110773075655105287231810118999376355906237533731203643289607980393659952693177207388555712659219400284433061246387207852753868329905471544723532647352664458212506918050269331010767594438875427958530003251909876885562476865974810049051214089505458091038471138163558116188663092178192358231580737723626404106802180225720315180699450017984506916783482130897937073919820811097589102827321393982497419227238294474508582854303089477046762449523362464735632884978597385077625317055291539854027004500044332884920665807425613905931767022427182311259325287901896853712599825308295227837145655664096056549432221738564430314942130608933435248431274600601848423757393144320757141530591050746776602978276184831582458968308692211999739827711280416761579018149217944505670752997660072617743518528250121958237207170294771709983942368241443749592736842379165391526988888907374883101418914242247548986608959863805157076853877191521637716977340498829721970567298979870036176872769504695106183838799803862347458404729762081206160337030777121131755883129165999031071003312365345112316938959732282346950146271306115791995916882973648831870522626144330788704425898034935593445915139665222527527693663988954656566169471820064847476520498551371530468780046637096906600606392040369645150037330597683502038264894150937430946058227147563910498631394200621310815407066465150176778145964046733917661358139373759517099953895316910220013473613588865210135878045228996366399608288455962983246078425949904841729274826757849116748149361146057164185072448488331143040938718361704998568777991173003332525803433086123600448354388112796168377282701204151560436342489740164936303718257880422424815103487913521578331810125885216389581122693641493273799143226111991078508509455176906718509025536026604409611656510258546848377203134939795161536291334357418439727819048628790376225081589243295467830195530930008543670637891417312786301095147781874476539387719933722410518200782109579594757190839948849873861967715668243019095477674683507492236603629704741698821680889760107437298722948518835839217114554418526648312105196285672454422138411584413812665491936639669798938141457771167119069867667628180338590479765472358360978767096369971070307842540680532787790107299646606619205708256229063391243694790184282063801884064219790965242975042282435557744794982200116320881561007123776093315976602933478511654070350947996521992564976081259735800540766677729622227216583823947266201092640808749906272376061956372970785846757006839463687937217437047547470301184254745861454852329159257277457028373319320453928231046864228257208540506548825905971431634222052938914694941379391551562550771551250245146274208852433601276971355144708305076690322561098027519906962054844885663715920050341207823658908235906524230020572068671645550489052566776634991409831770393457555295546881344499887988049804398352087956034726362585658109597923526343245311084947642048132221129959597668632722316596770556137538023711144004519151316847576811396748865181470888629241563443027487972836756944284719638432358356896914120413747851718910249705941110718816346333255534076390530919011819920989590453224426915040169133051760715079423252236863719640324644611838955907877704803510757542403716209510581304578736854550948588026983563739657235609021397195508812056032742942682761992083721471686165846268629108246431590811801643021100994401710195856969378247910430763758170679652829799479908877009797984922672921273770266425631058243969826008884164216167982849841102558999949056385965270278799887081374023223482793219962934992271422756662998708209729373200454351053150834222209148152247311229947406609827953189215526641087731800780737310574478633662458699352985831277438267130761784285528096764017693837456547488236446716957513888179353738033091741055548441726391445229593060413716168230556861965075069817967904674144688693717096949866488801820053830223331439251842353748898101766802851143407438010834209939444651963007333726630131982590896419062302579454380238464264219086277743607810702296313135052385228169694008623693807576840672733065417614927068971291980039078931817155446377902593205022132656920691563725440334635768813206691954517385561874019012097595676707157951929948660352861280377822330887472107938364499667630711475019970947792642205576007120377649208705375113083593151647238377180801934710297360642659724053429013591422401298301486363619144367921273836340562259449928070681725782820224976417660866658556914308643763834279764524251522851840590052485672824039218217639724648049221114829408496357416249460001816449742635178633037646325488590828182831506677808450507500420150935551097518692963671650891162364738007308051265999929330351509933001907609144195900361756288496031302285233383684528688172978019163348882392863251750286483493335990281103120089533911240395395193184658935601198910888253165942980853512856992799516953240363491511978148767406490496690557716409425133463047223372412683435620472591387543609989629746760563116711475694487348207023285741191552534547166589873801910933618514855623951318438310205623814855366818026807983951902082629839416546188812145890751288301643114403130543770400119562881907166839060840980698851798301680931527680307845805424851848165345148361112064731512486613682875186085576190938117962041910787681030393032727286126327967258307179970767781952798141385185482908930587219586099022131325112583144940874215077654141007178629739692465405624534144211463470848055003880301061345487564052471365323261397079343186724153946863660981859400551847401175299386284571043178704329302377093866388158387136303393799620990202574292170486224857850959088339649175115823043020161997193344719431970213250882987231552577838434537276726051171981421340176109099213031834435629134873321165948156321097697888470581153324859002136381220809603628077326975225542808546187754074490165403707852946121408360492968639593453219220973708707896237044930992225039198469372075947233554765879416091834169329165775163159401289852053910783676355693163615559177005941068889880296428593488235388474276942253291813398615750993937127514043971489290664205039910191464712186306072930794010608833374570871343142665635686101137767706106613237179480351361256385078712664905791483855870658909297599408287825416913658533173732938434096425515681124042457889275740568475139743384515212539164956084846577241255347457526280166969578073153572674983761238201837305622222162031632856509049674030846209116834000660618209113332296527821492245089015746017394800538766327999559130577816628751501484811006035136563718317877494670829068332543935389378553667686864510819717972574226078437249888937604967955328009219022822296295722045345230772313983726780405319429054619256055103958772152507620668888885693123870643105026942903167360455773609127930098957692179547591711570991541501434680382094957860624173990092111413662833382633907148741452832744303252284052473410585589770041596798602591581723064660834273585435282293986800244698033785768998440325429754567526308082778056866685399752017218458863533571278831671346857072794290992427736006071367217349467709886280303143693518490753059895849148041103661561324193654511093935849477253222459009847508035345757964365852165852595056411791753598888013984355703140422412554091197131110496481389342184864885695590830010204555722968269754697436335657663597764650462179505532541570731473691789652700503097461187551416210116319875570041121154426614577755877193990647837272560259292923183198070748516903450552540486959698152951222717658126689690196484523417614210612642426209663643059553044066447540323872731977606945544642771159691751395179838004470423290830060016249793821873102640766948833046575048095014358208497674164107511105337734877626888300558963360365634972733725165088186691280784232320555654938135850851093997276634422716958473132414763919799479650538624990186083488771678230156377441835698209333974966913021936324458366892244386810231737824328590315437520369844199460263760657673862808197294798769308789466208210148638968074326261369025365627255499312428235694286288574193840775144554805400768103424659111215166225440154041849018772419864428312412548431885844233741819665366407705639518499241060800229363416005738512679437517806442359212130238972142321184448825114369944701410806477908439825572916872665227564085735818038889428288160039035411214692362583770828658886403456114805169893162204232022779306970478727100055525103376912042984748957199565047188551107545768029169945935255960905462567709824226665598843530931719056158953993522656504338964790850704326490387639163402107978136000516146762110081761188642709248822410711189370008377818935339911365215829361135996962422144544953879383136182160857022604679749699724567457101417622327831606091740468175667869063806078139745969325935113336517994490186165900776641939734057599243029108401390377479343388999565871029399670903998147979623062147051095604301054409716357620015917121024702498844537865403670021347407003793013407406903539552569080519949680290744807449712223356920781854509511856885260429604790801195125558154162976747372976957244307467388123252989927730688432428698543673767250940158961805193891886969209688655631381273569572932097392398386785924741933842901076628760734336611452052537024703166965020344056350583769886282814935727250083986606207128343241633082205513135455106878064527922953058129048765643724086206117501510900502223590786608619295911853588953484006922747967801660879426255221972619613171317072071217940612831933178956563443340042598053669172103296048695239937260203111444391170441214827171285119679827256357516951497399001341810537710872230999119664685293516640314516764173681851476108430801782863782156870581050595497865276083932223244946221302696934104795473994008675087672208867593928812426633939707233990701152556841340555947055549743013484469791927176065801004667443875719502535751906786928151369690813272099555331535027985373614683143543660341177454313144217583433042022293901626714243622984169171869028612296536608028750693418495653871839414402925449088360313246457488483331444243685525167200961606602836466166084099784861315392620924118146606640976400484558518065920168534980329636023728192428167479930636990816191375633630792047256583315631146468257694484423225899698374341719725209843035099936427253721110018539892545176674505332654780287671023666103394485278236941669833181564420386239941852536374662144921564430394158349783070243295859416241597692096520471893896113207786733364081468840975466012536893657406161320490499675356007342477110485702200678964712496528496426700992529887681088842385391674809447734192754560543915707782867731362605457008116336857225476534351597957933014325784905644780604171102056084291635292639135287165892271162168585916713936355554457022692241017470569390270405539219854869081643887731405684839041463440568599809053293635791184231560988863885417279788169782557376984158599409615786772514390395601532622841406855859416510147790001752893536515173376260989676301807483178355887028658377424515742703487927871994981790886350292244956449987128602979962537229712759457326113659053121409400145320881520668231395501207366684390716325162180605884632971312985549643267312848945724413842164720578936855403640095391959651529443554722989978645752227147711205255951665288906445913325051049930512719224024362967614081278383424475123161913508900656489074243674669800546393144777309791071650699880494154042027174549459215415782289220952060176934445736133338443551967454511996081963421251251708609599388704859083152653563589353511321930286358636401106722591006109957421223666343801556807758223314126224504155384721039931991403671912596849455898452382654122276177052007356792985953199555377475998549898041483199281237938139819264439367963995514654819419032375231189541365170122845830874636342808798954418472731088248800223795487301374754282778537484905749654183940451489938186153485742598276871974670311989147112770326375544390975195798875445842745870618020907136618937545145717413982965311720014156307595124077469047771120374334436446097338275770360029043389381354324690388519137097571858767987337657705083346457290010096042819169174470775220785588543518789757230480220587516595280639050608300588007172167747412889943574624634047073856663795724959083098027209623233334187902945179414662456254684547640996829758577184115701377972412348456781575141171801155610167924345949626199373023260394315558996692333003674737076125723128883712583412436597175799666472327504640678455379139146020980894663203993014561022811801396910251259275619580370713780796194242056971002203228826095506538476266239839054963567897382798762266978565731064287258594276578195502125849774160192714367824132553158372625539361717225746109507537436835520107123935030244471769520445186216971937195625055418314060334341749657795693436089451697506159895302886424864128349909304935000607984297883961832694846784471653317825007557150485567531163763304007006614786226501195803080533905044497748869115743167408794565861922518336707522642086432339523172861440980509884773330169879588871249150059561660817639952740201275362250896525961458409491031826471416670516323209600707791082169313998190209992649935917465536429015246387987294046944056793795019813022726984206309863706600983780670524582968572821668792287646268655398323105153936002902472552760809847775083155902152140501719810976097985682845681726791752704875702256215565557956183787628855053096435845066256821604374096234941188946882286079536436933512042791723628649047953633393795053995114797836903204048594965488922122506670017599398741134621069006996117686114975478288012285246192728160580304977720531211485274072469773442353168730010823304197359535371121751427000274538264399521876407870018020114262374106800003165783583212564593132369103759062156464505998105351551115472016698921637729488336240611416497229455893658738040667404761535583166418668043086842710446793358159379001511825508946965320862593973071059535328416741585559402838040849732958501731756021420872509860846490370094914827644405196298572822308434782245544509380253596637669155041380069750787938243286045169778625411812802349062691532123079150369477473573484574848647144939405047763203175171625000372907092951160206762196562741180527957630936183513297902846981295106141342111024161442915692162006950929178532464767352411565542923721765149402305001716062760638220047405984351491532804769767832074004993853169535783796625469936298585889126677491671245566900337881194038830405390080004484805809909225295187161022475646502113479878289041804815302170849871378109072638758319402248047868014011850862952034892453214001929774608791005573376581607857059966855886507456702360512615109599016747041915522281004173642004509854618760598907864471516682346751294362822399257849663827573587623950988674458444531747627483699981795976907309626593728435726280428997907610436340616312861504130809077719122577300413752230035099425700783161473940716029701195552078272699800241318944622072031387311813529584679256364635778991702444743166780637922088221523697421938837675664814624972536967656908945487308749266032406403333086720583065802307806730262797671212664472513754429074478721432919743104331613895319161248387721549571664716923369235137989118653290525462615335550279477305375611532118004223763562301301587920012068843031265685107686677192543310405294995880730433890270268127555793437574363438152996782256212206383726101011510977981225707327316115534728683008363947263414725281752868481311891453888242956372077290364350811943696833580315498839842961073077451813480910134556428573929383571284787503465588224581257859749177665746985930227681484656151166462644823634651274165768644643365041068873003143610980898149833868399001025897356417207433554954818635103287399419466137273787202350990524869395731445768756305534631485801288121420669786105195626809078944320600773660019918706906353157918063816402610696981548457037552221606760134239553948284294923171496825823476830994046534695739773485059254987533873646891911107940489792952161538694979549216427273242661925044149768277088392769260113253301649529591787965605206566351383240932659664836465846541212345706401847119836936087096090250319877357055077269163903310394831176464432708912895787366500386455535196203717735027415566672038158271274340665867468127660236257685348631473071174371022543186745873258063295992137068591730475657105964447716193466373473566088842773959459061751481333188057555582543572146772702924296671336971276710151903378635826086728885643869547480523902577058698561859377243726240614100890023350333994903538245471985471374811819374591948554049231087437340555991368042721118116924899522460804574230283827284415134148242531290174481131431723169630738502847274604529378525766068804076367740109020427019634727189041652156476531143652462940897074284704229090119469060411625333788440740448082522662935079318178554667303938350222789999153354140984020948986129463225240870980782095414885609140463480298872540868433561266982124144358900423681251521452071564970761091720925507332152770126545926239790790454490840422918936916816235862678249901951784978572113924876975967901414355850689249104852571098141799735808058066240970265323083289409970578783985375230926728230448599834074345031485325664283022538256859815895684596699666672224720438680651409858671539120547818553698233745761595416892868610708628767709032066384345115366705015363707929063541553139684707327834326349384211874875500718951240912891217600983929380255737759959372379456587913859424743321840895264719678555608813563490021689001944959273262508789864306945928954843666460432128899754211291476118470486666020564296688959454420076161432068103706842763010048815267160965808539417957040561604566267472881479492724028239365727630798000267966454861002173302661120694785403216439459984419603719902762582707934337780274024864855032124649259340059157642897620490376544007891902925955288105640110898880104153353674138535287475277593914525258533205626713406363329039212758412142875092803693617256905258517872058548916832392244968603825060489893330891267351011949120447383837979802959298855083892665504347201231790428547579857675854744057048464128484100062722180872652410917705464625221315941533707613151758584857350098549265142782683565634536883545393241508846232819876199004695056345705981008031207744315622629679670128569124634688096365743683598270362997994292132975594116180354687630356389651477483326879166155161741417224887550784906876799795800486175399342339141073365786487763219829515791475839985587427391213153123015680543858692246737182142623155577742799906100780697497399434688886080649605207444993321652563411128512105388987452609400505386753679125487141316402769296892393232942314180073789592942144268996011798201117855997514975600555765917429930429492808560914191232380568107460425943834738052958758016187106007427685881617194294670578276776252237707508972227216254293281953186563821129507349984149513409926566296653461178708582479579730678676099363076866705703070721543309238444505104664540815341213572540772721126660490737079662296262363413988374890438806671097447674214349696105280284214559711830660006700399289420898666057152011149703908516303318178565953778079376792424158446419171738911265350550672198269120255718629159204469910049097455984836115569086870102893096668249209039898159519016689393044672734381040620791605571693054906332355655561068234786089160514727693985354803099989815472902891498468905888936140471980313749818888861206014224085901501080355132734255974870372801668989566928206131459561573262226729617576851946328219357580768762917202732323083168504470353663006469863112495069482332733706270439253365802134287358234898750765934906477526913302355649710707852304810575365738386656498281056389169149233604470357390115234718798495739276885417610972922834288339989658934582781711041479486572060155394330736498384402686213854522607141763389027244195476446135718362117414553440211004014704445574282354194245263891336829619227305234756423964880794647969668434794466473453637084740252383947928860625344157655658986299545283292201225020119258951465433798204609246226274904550651703918324626000519586492681294391458474004092080239510541396170093381665646799449256837156924028736957784395867020666941052980138593703533080456828575890164919404834703900994277161803925873635663955696011549272189360036047556479612965188451107925478536232463319136708381770028552228676317656836263305331771976270086327428639467449827053149934930435715067352017793492425272841291158421355819997764600133222416975762298212240479702006612874056757172352980445033861968686506047200234626773545153676479388132307210408208317515204014150878011517970239117277780912475409499578593328366682030821617501548861154182260917269808688288767349340283828809869760233489674603411839476050948358224928569306617356035352970253396444843369998415083983435228191291631850198163705369458236980294237821425307987684706579659803448685487706897816676968708370997784329415457646112083349832984681578459042603130308415408274678148734245109815050611282134579773309778330449738003437388087551627698656078715561037703614658230737242963058649743750893359453760327813521146239182014245919711400547586449425580269111972385839733106660646792422665914551614889373568665432058101374856738163783706310222558150671310983811491314276185773246017646870313199847544229171267588048463084499851423710286166096842996236985741800451043379701717976717920440289132560439991567330435098182372936825166460420106145494417111789656270592758203579304571305511138855356346698356084313873991472884739337107850945728553699132256847619786015590441398281776125638553533103673285258943989406795352316970234962707373121081544796508352507761613639553064682983441498182604833975925391588904289503303958058302744439269392449530900968440342718187150336535366228542464907996318817526999677479604289069781235379516079769117997552480402593397097684792333444613652901576102463832540390115252999116425741606763750699659969076446393032411020318632928237264338840963736780346983251484809643207487794523499892812071303807737267597812879965256215374129672594430877602956212227930406085142247129262089037781299812064804716963511938530532758244859000306355113735675695463109082848532123519183125191179462203737910650155021414270138301310158706872838172339985717575361979273841183614865943451825203324851438523951426146366952835293428740939706255950791816293556663470464112127076819648772952416378559102203158972804014995308212607127708266286115520432852410794220621996288054161621602580140604177589286699184596901733477034200774614180064050057287897287853375315521047739726091560854044613659552711398870049135067741655786138771745481491864411726597238378725824908450543154290260395557841371316742782915747666330308691386881740911020135281639333331055955413982921522283834766702290693903050690210894669436484563962266461815690258431603702252698995402159078520939228762428929525724961405526430104907524380607170852476301362641023809642503543187421372782849373382163436634827540931306163601341917481912685818516971869036860411076874199209274736775601466334602736977499626145754018878906253253101203721979726259346850009132592936065464216874402285627359486426225271353232857434236596506161949728019307981693926788585175258667894490483497740150211125893473943636293490897342484469225697774104578761798322373729949250632441911151250987705427061043960810901968494233484433569917696038494159272869048333571084480716244374421241632949925593718090381168349507066655116752633591289127147358456880539739955473656142800276154663609909462462871291001050089063669055795305452370175027838250625418794502630638307183222564098672544884808793011788559758929305553685498017185953265971384648549565129753698699431560019067190808261309249654139815879274810108126650390482934526152009160128697602755487768002879418773125406756501390348743754758439220142675120884027327269631404025521967033637493348162929368724372331534378609478593577004822070290386546338243723571789674431057754788503432180893955199963947348560955993505146415641255499841396420862878439813969846474634399046611945352983161465676565343867020988277975368666736071011015595624445781111687549960775561512870261215502785818079685729944795096741678699484411716419505950360040161673281128262524851279795026628770502300800387418358376005657365013136630494637465367734207890764777045074401363930499902887967918494523544563856351531539771190821185903447612820061731023540633482333143334225302390606147396274691823245250846963661615947571985808175227291349815654606694709779687304958937047086026107033746806218945887496883701511944211747633969894034126478930512769666801619299872714195087840278948708539132680851312898053316020242392690682500548713179264201787854072793519437994415526199168336370045246344160091186261470208873095227475876925052843655662514270676170025000039099864240054502576516690913575533316925319626617491359451211706264289377340862775629769419128001441361929962682691175702689597102719269125295943071063577506736751532811444636712864852052773238378334438005497186555561021585237695440231544001341459195759894217610833044217537663142592371107328075456157619466555321363340273332038094389010114107643091065894403897320100604234832809674344173526269427553304651358322216923880787158370285537771404344514810281152567061732358480222864656096809807167547577680152779041877660811635530207396556586411783403826863922092434222428245988056319151653015930088432205489771597009039913656404438847407247121773626953919887925681151367565011952773889537431893857082349890818445726927977940325721156957101016771053746631970233723166600614126568160513146888765704397596321562974776582976302241975500265242094447476884714674169527494024404320442677778270377986695771675605233009222046103129507051015621592676985988642741812096735213444181322270471059322612807170616010716112726980094564029020237019637489993548673237584375644464702227392553276113555615470147156183967592861406183333636031521698605120085402125788847017508607255378404700596652159206361432203281572983131370955813250155749697123187679319049615548716013397293189918516253361465121317433078914523129248844923884897437613777613267957840765922168869435354420505417752222892227201053655017162221929797883370965931257621282632264137357274683474053687836865010264722970851612415980886117585711647421866511955876831397679233033438903215576360146979954627358827482782325449712448857852105398967926545174634473398475400778102877485267501017217585956486461673851359121049609536274945799543638041241820652127816329929734748548257819487126654633460897411409106245222428237529650120410860616132246837622197095184567425723429334336590125525492070353380246134378314500142788562928060112422130383827401551830918975705360557192360657326201389130806592533747374435811888419821774486774525138540109363670653341290851630126583854196413852020277328360494836879017323089731778854908059862856936248131069542129590762001395616392363806093196381621680474290628196088988216583218340980808073985125794564735507085781219086942580859011388022940565475046107405555983456406742253292396009236981726523559965319721525942615927840437683680419909808664906705524033376641036540303666456032026516675396611596647451555189236994365870549406494998212699332923632858424392857668811615257061705530717709476997132522674980408636061166384039124335323241088233194114752921766998799938336678857189328128361492709289608672701926973419442140535235327242801149951688886432335301001530104480149918010813102598421069116743862103377833778360841091732881169192967094502870444699397569377241349168247147440576704271654738371990650095038361185214506099429179629095461647381918638930607603347971091941592132074252062661702066372320644002916596941885483236830163976434060819735052219200110864392822388153576927746111812868491819599752019692477850166365415783941622131186259259519814595785037522059795915970064078324709774983889369907138717938189437651323985939686762549351214151538757585922036677670443666149371192082502126282068730471345545940850978909721261583612349726480286476286928641631918029441747685326899185033281297546278364960541037330445353646271440371183661692356182646042321846569442167768967879294672400391957151973727693618551767987889108043635268308479090185223936658152830121847148206184293876150437596194001550256828338632795337775773583427614024107136296637293717259222233522928277630019118954717033844690825103546564150362194874929523601922224627938131496398961538605779881778944787451296015167158086546098022720971573822769337460934551071915860326135619738488498011414924928919295959388745115096436571734748527844711868151512263371686689929864780548069791824070577776517391722627855751967596152706644900593485449908567702238619572288377813261365727157501136292130172775214872589706751090405431720411981647606586698864087859743351887704092510248378671489576276439451550722525999661400983415925714283349512212458600594347618493447818585936376785487368033406219061870930006223628636647540430580642423700480997697255272522236508144103353026103165555037093994098396164640748626602500996547143467577634894700873427182193624105147978503978016315432640534063866224410731246890487237100045248472747634425550589554903063566682394850843150367564513975481092787290649761163418718891991651947248736867772939329445985687181554391681883119813238423282461009702633428266334570855397086650540168240017448535844534830035856028200175367838389525161545347073198204203713624857141939975583028544605659597354618011433395508814687572589540073353406665234554509620738087159539970939557288119950522439929371307893852337924158117319892659803353809552458195535269367451248602555494008786436133130840523461839263184827012125117419924459511074238305067364204479938864478018685191626882587153111464215803520437436974716627924448924764320616656324710991411405094809137718583137979502515413104215147514372532322425255760984842576194637382853023882042221965025911259340831182732797405289710066044281654563537262948605181576164342070213707615819455743792816493340312620843019105256095674777709698442153666431522340254611647773343851008922041222388996368010581338128357787241410542228402727572346693401484019320312813842629543939534620893885450918477441570321039761099182922867245246760815109559759606665001380801379906823033766213459532182406637163245878469541023992850816648238256654415534080221182313673840453170802015418682951754053480737216705073356722207160128030639397700247446798474343193349520846311457373460222940563911427850489126043271909788584566959284691539846641916598121292893370267152519838343703838734323350451741026083364918396343547592044635624635815823071965075032426281516050454941303307852879363507045255042637437541341130968221640746236195011071866682962823440298838256426579935234882850018433481793317624519470011754795810927436034066196456333307327655087095755167841502866749004690104588434032396103598316020602490029452193119415048916468817396364658136493938363732029622749751465873074652249312924943000562882263658237942535858841201780743443276593555172087712091114428560650840591677994881880287720562068523801090614080229894667979987222915474218484805660956142547448341780188069242536120896229089252325717585006967951280567859635180215091582970512204085345316208581627208825577640184155090249289973478278226213383545744014225181410071398087893202124072105556353656439884152974121321110152830976772079835266035708246824406114216359968329709750620877071216385525541147336491914181488308043109953680002318632332276549470822979215223804402735476609297967152293312559914190290282728120159477457727123680946596970002692158879571685471973624726693623497042204692371821040821289310579769182648850559624899102368117380980117257809369500598920815697371196668752820243246093234308874761752081386240350903265453005505745922221167135244399353780397764336154933915211997219082299874639815182116553198985802949515849506874473534462587072244732825637827514837456118652575218299907533227244539039293113381594688454133472831348537621935113105066872343951185666536508362047992045597950096589474635574181752797835984890215829844895042401743877896295976288815347968152619753676356242065234972535820011278591239327283672703931628790528002037465294978464292362151122873061268246046990691049079976656357308483672495374150227606382757972925626625501920566090727131125286479902989391397886191779241477388772179783771293937440152592395581705542188264896795884268495020649036753416934435869047267019534126092674431958616682728835315840296741105488570076912553102916615077955242210701649713959553825293181026615397616917814447917383980385000673694036916786478235708992629851217741782647725889493544986994258704352953520578844971677092149945670452318242667115408599002763005500808519098606708798628826420016211880406127685295498720552086621516230649418605793131723314546921522802200030188522922944091274755147209224289285633459342604660295746968669436164735218354812142673959844312348270771508353965091872788509049478733017612997470035580861640566612898232412275371206568568230076930762155930125920865200475234971806927015909238707843594669243254537779184734876152712355502835825041754416464333843854024006989261505669209697437083168653288635160011179375309582766919980918777918219590216928735484159742391202093319076820439466345694155677113656302391741990680118592048545646493832801028658179684065656000466514635623462788203823256330470286305304793600769281917850350816112549213160916419160223245672169650203346900581956579111866262471405754042569317664659030957692338910900433821672105399245463155394025897606908662190739021417342125551702413153827353082270115684042029042305741471969113696968326501797768205536541565336004488946552241549997933609467120689540855529548432590425796165448488139432342373744695318158079520843057942375379769579568560265857963754826482648165812147866806697840601098482437620681446926391468598284733428316305735422045351136561312066395355372784763716122870424488379211422700019533573289040995783140069011343071127699020849388374944564361720234678896024242864216474692525812988121962867346659137880576232311402374636292111296258094820585715198791521899470714367769332448758899169291410274295692303890937862996454917229906832770216037745908111208556744488805739917181332690966916505203146972014266903796473388889511095394124231142554340742351070012259536851174076785822238286476904512567024554063118014611664894807969592112917705596805252189047897629582593179301808389738878766574647276235815697175210004786316848289580930452647124889002405617648790663567393184248111863089117856162988296695710566141347242579898710181341994641179805153468784081993130241277496882875296583296472593331214579025995195923601706302060817589360964072360872568976104126982155542675196761456305185423824835431920142896981469555958208354527455036693699396747613298304710755865095358212879869736521233095972557619818624138392394672144799863947046300383653164209478645010778403019404884645979682741802384626341354572982059842011715454817020734292278345730304864957713430438193715255328715892850491285808408353840561836304420717208508626295964280184990427192444227065515095339953768429419198089519535547956691475953396729439815595218810574405465574356418850675741732236368343000744030188095204706506351721022569659917510759579344851032947672604974690363920986254086125089603944946552139702885317314317411489921549503840222514992536966280995685254125700657416137240820249896695105631275671328650346818680343179944135797974604119947912657096787028415828596642798488233335299035568250163035094107084584397032493470897214177026621267128319669462338280943200676823910589639564414423392567284639466560739566310984856927511370888561285224502432579293185162536417040135275185533268485069699904618476272935925713443308908229565229850231573833170305003240220918205009911550659937443641999254945434739692045726337441542783275761017908627381493278757983822111204071151970337362621653973696173015619728598812469626304062463602774214113367302948295290601338713107712457652316249639248920693261297962765224063247035228747365961658896094166676854175977732716199928041310735334373929474947471270843298128040766201663563804758513415214993133766772733869382413074420274101489219094526780369682443744604747967256177043964520478921145142954921069386205281227002292098721368339799965072385433844689703703125447506216215543169900251507631065771811532639652626187694100611544939925845510516145836262956536175859845104953267300069428238435363531874994322813019725048507874312531660321010182266362312446614894647316581270217829586106565974343588634911444400994907288248121739779550011128694129152652069996762908857324898006384433464692739134285130245001251022432419743885326160813995669999156778540134222476939379479845993499094731304565728049247071000135874016388557506188818577260910334642426059998526305479875506507080217304065425024047610304092864266377007091035935753977568329890989169893262284849989526342812000420620784130226492288247966954253764182864618823320703295285028026919245064619834361218123716386231384167265822341579457617186002770976179958206495476346504561826733626167514562285149226791739838135173550277429569059500191541927044400534354279728252837252803447434836629113873049250828498158009645536559726369981462394233341385501735038747827041269978890410473828620709683820274255247507551020055328943555361150133725683520218893031252485100307688673910806691019189868568323372975544097525287831497508020602325463876466415426358738487141921824216829947686444670129372082483515147627950380650992017031217335175893252371741946648646533328147926498554540767880952838826426645358361076584174587550853192972144293610680084953234481852474877817182486687836335892380373532184988208600425849427162834082151452607131654208595561885709891218821900442266716281732387565254507178312597607856914649089847830652126406955438360266071778738638920957967300478028921624042608123870220060367785096219548520375579648061855993803500564325355658526187015608137039663233882071825953050092046671121589198866255102383085173928833333301558110997778992262514355491819300007706893064743797903885055922466038549070203544048533746715235024149868734821555789956527449709923906080477273242245231727761013936816876693039018143069349051891013190872619531393623877664191097805644025307125862496014522714056972843709781133238986731949474601591367204955091236517313028152725928292317457721472616178969597456580978525408972829956893322042030600249339157277055203281620524988866223834952945531639594056716629949669836877989467140851795852219374005546538035000805190865426359328676032055263930348907506382027102143336763559433875864891522867960300264275322429142811577301317713608934122202228659458130830660189735909283795572672472372429556918758275515513977714479468273489362654905191281232142816267959955009620391719481158784034494354134213779324051676932630972671074421854033298638856834084682398886422676898538360109181936730969697098819457769985535047998719923328113317740108880897209923586800582592010882718708770479292658571392497055309270184046984075688624742215391689825092187934755694136171493407154064336723257826198032741261328825934284605123322133142672041124134256373550416958642592740072384594264599569572320694190149541834813666161470944891281136725022890202459990180672540196834430020407762394307440601048054804047421426281199219836028614489639089834152811625633185483280084012296837823340479060596329372503525345278887171097745033634861897112659199026311354247518169459495689907823379827941771760970736204781180433920744942073162937353472219673553180972932309762026030050906914682196633863575844916471507519892513929000764085384891170599595873093984567713367508933421753388722329746647893930997184959174472051055619100879820244102483103688955110698143485317912686581842514516841374378408573641400195670037068177156368914823883435474500963355126664957854705625640480636617182170289926904633348637707897449354566803658016542269341893362322566167243172149615031461345477570689903931140438755291308734323860078251951012677474964700640077153376853256075572376555517312573271223160927463637364293320150939162499367509697735795691077237819646287204784032912463125528718707231182458239257104684944264957992911741802321094487138461453619507573559447450620232513446042557474435807252621982259847583794856332838981639642516838629011781959749955000203992397573867430178850453820011099365552126893788874760419828764086098499011075858666048279495886839953400575114057512490069328599411496726400879069012750881250085726952030396671066439882487068219615751013078247897649285713211559124754868155090861145377459311901107734438118093991228853764903077942127281374366569976695235554752862323251840475926289496054295114962463791930131225155857136630973180683408706146419296470624619410854070287765356102590160618171966948032648602835361006855614258221773171010954682153887283982932615891598179898760628137389140052834798955494145877729419006501266361745527373816823802205631686322956754050739832185848582258532755516777951530745410042323947329731219915833533975067115610419303205306490316269363062106082172463302174988664645435643214694764226402906043052487557173408725479438403126048344086162496853163034473682853019099238948297273790513929899354595494365969589855382020285118667525876725560433583810615806541340325485119679260822127574093328518706041098525381125137111385843292563449771466017246351479276439300410414770764274985306768207385068842670722656717531837013349807671158618777715120276688798908864806287723255658469189482244989942497290295050456288232503431598860310887142154443386795165351375169876952001781056703143434052962154537872335353449334591155124204638646987583899543337930889255084071039355349244062458812113992057658935799857911427031762372772169724638088591348062711725054282250674294050703582873632867620675578319433865805346337097254142068944423080426562692312771776242813200878624370884783113567115937811057923276579940837481620586648721907451970404635238225582575712577187305441376373222426153610304253181602847891822126406686522909501623393237369113278691782137454659180685120741493179377407116942063327113857278994769516826822268983184230688986453989846215665812109387098032212841762477830680236828890241683828660839340610757346924042148170389516818930608692101685466184770792737411448898369022278664810170026208449127279009583346288096615389082501122866839548103492268113308133614494153153978724883796896269299016445068942846834103719454311550415118182837775180088626905311126300250896189768907274247703377251575622115605110196150916767463939494765183644517589110848565617805675247636483334549525274269769519039846455268372738819654044709277251819844950477102088321976644447916695917039560502946178025328304878315660166851167170754562706800169846191142811602826923313557466854822982066327994343303092148713077924268218641542870781319967489181870810625535159517347731649546531391158828732724597623335087582030358054717942248411020189454601678088864918583527735312894462293595831595678287273798362042467218549946610436659188399043672090765687405185185105716965477147115310879681505516216763882827985044692624589134963084713269254123785013085724049016241580146879943581144997076990190366106028440839140528243530936502496660244348640417492925639948298670426565701142061096544388779168899986033290726034005618395950721335596287662995729843877350292345488692856074131433484774799343624601547331839049856436236671531844356900881062145445378297792280495161966497357480727990159053249600055371760988609184859733287178274149700868970041053892892713347414279518024901851064568217104710067083040275685862923074905242851151755582571747505909015672466890991886412864039204463091309525748129818828999711365088674828670413759286349847110882140297576822467783575515608510998281005747514236035453047497055997864090157500373514797583875151784088627395474412541999722103407742233574793604660446486797343904991522455488571109265273526352303946052486160649118188794796851914076148840489563803949532164300452899375157770649509603256543171242023393592413097146349277989452480395492860497066678029696964513296201929389413875694012316460601087293206127582308427626081585705782538016791662274074666677869566386899804532116692571113306648605810644617137555632459782188224505739533412871245385857422236839311165699621498440097008474138938764915446741261531942952903601750775835544351236426681052218804204108050282600689363677204337238322022367987403933209251741068756096489608649507124611246027733183099759967935447397592583488449051739420859096213653882987607703737279082339504447979344189862830337414221020565614177153228286922545982018194733049802933698492336619270338248104781519025314987509100082752051431210902785334717360589902233960817431646035348434407862220066146385749664312081504666613105650609672489742021427938968955070169300283169675137507732006462494545984690005205391579470474829678221825548925832498885450113352723634439981140936007550745167945044774216168294980896794879954527159819757139293244885046374992881876473760217253202172439889567406705520243597894792657345625513300170345270328887529887041226495381841678435064555854166679371638451910669973974980494176457049621373520801260703325655091582619134214617617878208943922364987300091655240195856617661451310799524793656672323437162589201640229232452132512475386247713259377466885355877088826805996729116899850032999814077568827608759642595458293043097159901906827332389247667485751118632549417496097405938577018940108529763174584038372544301010936024591809077003669543377798199429686848643170704310290451473382228518957715882815594126134927995212927794099519985261455044145313969059779754577103451525265403257796987161103209141770677678359342175878643293588029204004511432893505000240862291802906816798110908191122727117985099400654348280019964541674075116470146517657274149070642153225786398497190825651594913055725775517669642660324439170149473149254320120214938250606852436796989026472333010439965353895240616343941657767304047862388724329139849942267277354872367537897488552317237661120832390377103871328380915239002685685467859953115383005779187543009310727106633775759701014726161221911370372267031792999222636757720269127021549498688567187254908959337739854779259291241079147609932983397153866320180258267101806301191854328132718360444043793015338653462170615158064109592943554872942734160298711342816741834392244979876380730498341148959636409515783565200936005588464898601780020232372734734170722299517780741566744616026361697819494091862960256341776099907085327220074592255465443541786215409856081298523491132037976956462038131964273243771077818890931055320571155269898791410445666588492782503404992589994333327530901945442849187593714927438844748316662033223788614625500982922590411310446573198103971148622292739971843620937253718107080580438913007318686221523385151079194083867093313660187433032311964344595745149256217340888702890431392610884079456519618119829251042920392209500656270787765600082539045156639185073908117335789461793219789104086165757517947188610181545391974904792730808050123281330701014489438225905827242237387866210244173076555664584536009789613623321670490210238391957448099007422324176687675846617366827670448955339631370484589149656894334187955992424764822954045507885032779833930755755726178684647299953156824122058919676938200768389596042616456119290487523034735836492996730889295428119996480975078143896462855006611163534455492879409087906021363764979848311094916499914095041042582297872420863540930051400799484680343780233079151825495082968609117823292191260791362629932851286249304621758265398074909622924579049746882585057520546489878106398388100072280583113899335101576950356152619392146521640838544585171192846503688016465665478473271427571886489717182632030025653055957524763408469414610371442523780804003627890946791795763463623653430508123310240208952940113504902631057331834097848330735437318214357330512019952604590306701141312311338411883678032821321014396737510874606523924021665813091859203017100561140768775902378629245208522598812816898349563163411532921690930221753443741936544444264640971355122141443911331165349246839821766537356571512162541908398636919607768365544457013151278184014423135139913530376169722820588281436938951587269255454346947810775343238870238690853223752948744522552378999276606220839761453643592100868036784020626510095175450707903398138443920739598287921948965312335083009500971547054873601970616202399411897378907939238830902349818859924572311705196597816052499294146905942391211950532019981081486034952226762222561308273326228091343324651568053175026804029225404130010674620585702991549783259728065467052069817881305117207513552886260022607354463065751912499898005147523017862752277960534561255665425596301376924288428415642449459612132680006023570576236851761746981180830073984556068034846025069362047362880240080648449658685705639690626174810906837759337709420891818010692926931345274944574309265258677250410351758888753036482750054791842906082265076320132157089117114638775310841713518827698571578269809186469141354551396473515564784644358760673989323074950194350164405451263550521656143680188680139118169880986456930259280291939014549647096215936254191880160854564762231708774835062719705121086809289811840563073257226051382672916832626789327267848679945822212549101407799969082303432253478102252199602715808482723933796234399504997574433769560675889981634348553426603902544046791663402002721468056690087431077681669937779927940536682347175208884156212318766757715914699640610964931345816928913088656444635294220292804707812930786174177023354436000993240484545604128723263052956235454449099617856624621819321823986219423223398247078965647506835695708251424544689988851805733579311406829173123879516164348157492953253261895407596394673935237373172851529651532818250738669671877290601028256112467264314399341895760773617633429432312620939966614377026775432049088228103413621659741273407062906472471803375307646430970033491276829575194825485853757087594715129978500211907875883747886556759989318866891921450469385936911386995514442426124039890827338285330408284944255509959008321779451047417012801015525554734462149213162149291376045626216992149905939505995460041537408182951888439519088446239042314569368613220968466869322724966850024553461714537585281308242483920482561685883785919062272172755683557972473919282518719901220197366655907235913027713204807066827516466002379282403541168078179417550495877003192215618234026730302293993606453782618649529101363269728352723556261206308619257631342730843397062580318362662927697586368849092705484966310866891555988118621591095370023624321758545788232012440996336293184852936438874467542782531744575683494576090954707628611929713787858317683394169872359901260116289320310353014823232272148898923409038283685404434264651318091463023379385539785767797637310837376167106258072105818891151540129166829725221258497737312271580106534211089664994370063961272679456641469950155643525074982734554372232254845502090905723995549374039357119287589501310893753297679340157820041002802617786323593288892187271763539371170306490559668220202587495298918966149701014642199737353189412820148009310774307117233521309613043603264119588604236714227624202479447301687545457107647256092047099492856378749713578525484125736573475917028876830361495011822224439198991438315253693956922779675974770877639965064448410241143073617337363911877931406562922789754915377314676776546475511571784804564766248004340838397315880940885597504539039746817033567055628055530258631102069483002363302845512164837184509607799416860412940972323616274218084292404235765688589712434012028595274856205872120604485277580725739219215116368028673499642763738858798375946874295656857314449072710458543875754235077158628054273332006881779284089325219266449360954260798237170928466361739098981589713860460781355838386686545539882977307987956721842002543652151975334566371086214100362539451355499165783780334315327874482401478816676373173145609409389705602420157200241466293993649803169392995691554468474351646080862897143626930127276001933818229181269462769035559125517769300606939338879390665678222047248573705266599095067285149567358605527771844795301730805735875753619281476676886377895437837673415413410933096881202639995183235194466690194875828983831695478123543465456367120841038703505538516406543351665385045725230121133189226245606740782874604110502786909893026259566162951388027824019830082841752061080577512163012545106731357974749368765060506783374578842191495119213056077995603285396174230431443861089556670106631211134806387223276919778413560380587217427197084994307055287021375085493443523925264836712738167674184698468309257251124241787453583817556736695719111984460176063079481119801463898708227992324126363369478734246618789121683919717428227715053294773883605700045296574459797798820599072242441001629947591570479443250225407129071411455529633617220272418124656113683563241081879228056728801115208637132384768548779989103669322421503174510771127773727964018871032922967645428488640389365603102994364276177500816339210445742829461499308138390247823318955482510525648572022064813827853551164141119082280153506780884418005149717255104749931509812344641682846466425274339096234882977597045343394813935796824550893532654733651658369515598278562867678149133974745439193704814854499248162074496459737519291373018712052869821193102717345543891044637776689028186755724426627585214461721643602779433097278834405480593502115516049513881786505241793222903313460378483366243044884732410341115693629501622837469689746349653329564221892227848662776536974357813462696386180791080409450193751991097570479979737635436332270854954298481501966057730850551662348522060958598348686703352241825427136439154713033707623694681420217826153989416857969761098891302672504474639334354578932388318901379727038871417477814644121968968056256668909506634920034187214809415841371954698557556968494860843432347148600495500450517288941961179048544647817368073584585379026433899222620290885265599540703630440074226533379864031363382750812339345042958124045801378948047004465328061471535222447563630892293968817286438284216928837006065658660371128695459284363205107281695289724417512117348292459697905873010903409822298037481211072393087066524794938000806297246108081257485348315393749870532627841694507759658961036284172672878792101875877252469161495221675903103532787160633762479271616410403670167423874788803796300155989086882744353970812107022379582312414171372563609178947545327269754360454562956831641473948078312275210235545299673332351478196386651179206064337896310297603548515476070889477452711933504162638799738472962610100863489395514951735826690521593884248960304852905549032735149337189469424178926919363396542785524803833324218443904055082930197136582371398188432593105661316094033891718532120331747854558517219964736487779611122173529924122121196359175373135508578050234347821633094412147025678565240446532765757284076508095307616019721145761082694097596319194584081776004690620690652360987845964958430633431240321051674333871489719316209407388822514157157717014339151024180809022548359370747130124387041815708669979447569305057852297431314016800643420549680948249059751251314846907438830806249039762267579935883403534479992842700379801298397981069898598988654046319403322932414234166769665553793265073525302018499726238780821216528213440036058558898733393367313221617533598152099076387101377211873815441469496826358298565362355134097685278808166955389969392422715814844068279229887610560493167274292054603495075841067518354833354817090325868054827854165869632970473228190838754630711704842967626479492712568709687407403365051087452330629221369499504911494765204389921022876519872593013858774235714755591328639548901474765080525233588491676775683557606640577593683165826567115441728534712317613198235217969855835861612810903503021654813758006626921625452300173388675814095044390531173165350081272030806532304216760444181283542057478657791529853708901110408712219901935924034269544298876517439614963340686988018923614246745874317355036658833079369860565854991354171985069272076484416676415867760921563672765024666415941955790370320022392009806895986522991537268242980079497778752840033689366050809430767280135144581764085402083684765729008666510914106809166386387865183065689777389182439061047395013811014693226084999827217813172247613947004126290004200580610950091600974243756257443988152878569836033231839449701398336002847408786438106614473861066034539977505114049089700280544352580679696679561376859824794037683067985033647910228926829898071212499842371317934790706790132773669833309339340980719860128645806412089682295497275569609831462926611490375073681380729492501454894808370430837814759841028633295310807439853191127266059754573976033041178756425024697986264678543457161184965061068342511877084659872639070698598209917583754158792432493244439090868873499660474568901981258676935895636344359866345421199664807812807670113223963251167629793279809083669735649093099979626067114937880024904482476027172396816819720396859709052252571012716584706798340529929281214357649969449112367232434047835855374898199124960533082477657824663336822593510612407498035115006493498240691859698344721459908057669784086585783217526703145635042759223450700431396238603582092690699190453918804705173182772566618470598662800383779147562691670043595542009057236326420672015983902961643102531642146474496017901727654831215613069324587878699751679389762696789789396917082916481222971598687320976234217901364977850281911400326598619437906777443983045167553729611760420451951522719360035054475855189286814362592712992786405917483372036337672478985832906752800290244133953720248551274714819701643061804207307686397197528155763958299073569308820426560618642598954150667924039707225307616008203968843870064199444271180009132430517860391548875320455198349950269682080825794827591686387611503193023173312675545093714865316866291105899470637628570024388084278405916033601256896861080435612755194143731044058987313107654549984563971011617232100136047713684513595053598921384637743502072744814147457806510619168851234900223946160630807276913043593710019725941161931199361085684961250036432310837718854973464654192237501127900653274433185606074417310780752448138296266619822989891591255476778370041634094255069001018984475472405705335725122255765688069542010680830889634712342351901426850133395165360968292108840788562105152157130603275613982262404498536813922990786031419637818136110191038389312133260234266335742862162250432556991239079399777187828645335235741183695196068966624451463340939533893529370572837361935281036583703162875833956503456719915076383535767842705326372491868806618493002341978046152226988207304753555136541061705840498137761744073079316766400443107686532108918351994218167748553177768435952984329832706807127219441908391282742248632355220185694868264892833195065319186166708499402196334956390819011682341374982157634689586986181355003283015812235405982462284334337218794122103064977338831180702222495365177694436494910708123050968343782747527261662557339190074846093337797114454463786303795757881416432168631699745455557347380562411893490539242724486322351055502953262351709546490704445057571102345444205391011067015851867746296477565553051427552515357700018049141992237887960086302271803004270505183463228866138067382525600237147699607249471882646758412527224120551357682313429510495489963912094540461079959583563906345528259839080486799257909353967528207645084543701844832372363374509535285904581431483481956454343505262253512583743909248256710739886511480363652468987565304489955737981286832642125118978832306633148961590012703450218158016171891156911257360163775483077920769086751257800601111121328707736774118635281429688335110691298012916722506085929414116082295383234951948145006346299589926842520154788389288455921326064158664803629040009276595700034660169614198372998656516927755855146910482267498219641916915097035394298276386695155788759826485641998340234220716826381875393888538370460789234336899235316789787482686150368345825118976252958706904874696702715302233706805946323453259177704884585175376439214152337655217254204313262726365044010288015913795861311389709408642626441775129046084480938388082217530361130031222911447212759981652747384520397213238429472463167099172842762418685556675874366462138778388366639447043087434279980707521065820997154554595159410592128036837504997766105054800394970568189327524331474982629765016481573356196402106509869759096107822314271974405319734776805064443833843942308953776273788320801902328984260481847550233925670410923680069941032382028352549436799633487519491203953540245155081021091726689113023029976110120422211136616031053546048941876599263235839949603763581273221540783190586065859482535216089652774422167019588916562276172143048823386994786539153319020898005497778309247240756204440581488043887123010611801146137468145106010365970711418257066221413171867254331909805944631033471565468899465138501162741696753763414931243370148266072137058393175111317939300682022120876860669805143065082552513624570608742806663639581317867049623636109210302141243488221725679358889081674652695312639953309241190520554329552512435252579840587239913877776643142353798269876388167671932455570257814135552474223221391788226166501083377542309090048554173185422196884316095037559505467632176493263450725451658980098803922300076060185679865256675928910556571093839190757632766229338809075064106897987345658289283762193425477391578974544356120921556155132504335887655328952831129491493660623939601842472100269625036235103446934500952407975522485287315907382847339963201514413280764823039847253138175349025739663256171883046889090313974596231338673847362777972905379573738793206642325928578861364846502507051311835448599509174728131995044609221788852671587612766683782444947636431912440659067798991158857787250550623494752240224927919307402560816222998587910612442992381556401954663724087291023329837275120728642124603541614330369900595512398467869232538817915764236335488008876568672831699021943877109293799182932867704676233942774974814959375038595537948562339786245243606249525555538241591004118344148890661079395684564039464168521632505172048582659474882176405187941410164314470947199671053696585328003634934755137723064082434344711094330941060607085936133390245945907681818599857495032444221083831567152511695834339085006831167996433238670536415255009214721729458490856824646654742336110931067917732453960942008450116188387329945542968811323179376084064993036982827940053781146015942773906077194529453346577657781319808467804208627977916822428999058112680449488799582833536034738522542551708117619497890982443801537544023742771133022262684694634998116172259069388510427361521411530422298919459361829378324174223338201844992897403468008634986061194779797039269636256538006652973943512212861050684260207029416898711084000375042521243561368600735622720439579972289712776060970607669331708077432588635545020399520545832018940837810640859358559777605582327566967806672058613479821174231134358363538233598789903113446428350824148035123998293173138097105895797687479005852655246492679960424251773640991940756612656860658899573203264259246693455794029982398486251573383734862248507319779691486907403759478386071212435567191386380467425180850710537021605872469151736642958319249412718226554968256431076809002525990160984622076240057687712737949350332738196879108279917231989617962312778682096798069311820025403236866847171299239375298204060446555834568179581132061444289443855481694249570495850705028577230952083480147184317568594664574071943780996716486568406925070852864021392065202145203520304838259761638857264006751129534146035577977642586319879707023498091574584526426276480650529428572078655562594188293148490368466572551258730856857885217092321639801581705061495221925123518386020915244663152053602194503461309028884768960901389741154547247839380554119932739801317748577624053610131232032898873242281468378817567753180385433308925336717513421137330901205147739922106702229405429513062747962625139384866378283621922977221033038636971495497226869262282259830468764854761183129246424820542713388244458600230793533867365382608849542525769666371822942183479795875914980953684672097720498558339876663524762823634532691157701639949956441950603228747802674960794132902302601829848524959391186014506473073723836452910334805788323315184342947045877512119931391448791248294291862862894443262332426901189574046110783946083609198968567489832659370697283299729278009217224891543218933104862977318852153015960771130864457208729649109740635044234297247978302359698678929971123449981869733945631303535193140570979376890996771943501771238999117233715130588438924124190489345867243825489449129349508106529153432143481419352386591452529252954990861208470302686656945790776812013228251885346445378649307960558624304553784485719628266937836363339152289204590652914557873680856841180194077656623421640121241868759564868181946427781701997444210036872919523514167951225371860598333062690617593295521727934545862473509642234444505514248625023580752904001410217956494389226198750717240559704317670935225181326476638138566201164559455526959692169781171162296604493247635950629971481068287453548001549489506236015777035983562437662600829077955350215354298796512364084961200785547470715939485442180494560814742648659487187342564657089801091606400009616760247358819042297608308934212640062042078335954145207795337538181939759451810518943464260126919371681111487523603977299971379096538669507973749218801882034994053578532214820738028391261208760292904893735168752174472568235044565553119622972235120906009904520247943288956460347209651255044993204863698184012809506107389217652070292294942946264449070513909391889984278966217791777125783754211770970158164755075522529684435977485304366317792942819416767985781525260388829493849718913140178501318128134182484785994086165547344349238963566008451116586205530873947786394704187477940063186723946349151972443480789235295389506370050910021843177797233501613828279466188558033800273468246823522776802037117684558703306087577386326323184277078657500672101355484899082075534601789354931705285959959073936338993923531514459161360765331905911459454234845480744405003051365597756803458453506450379270178276838483365944347935972242413812373469946492176538206522684459188212220605466429762624657692247993888695759098365083507234706730526352129410132085930781319276686678561187463611479902182395206765766172982655238067080964098928321794404746028355437948077385557375634232727372856771280417624308849220582671442074162761012701361707013179147065438093023504652141287241788071485544368334695564602868859142110953243205958693793478296576102758318396329217916511343430578816665347024567117904241032682236563460498333352427894298290241511022593611117698448728893154972941993793810904459002665301258645069892951935279706722863703510965836106219848199240607000697700905842931625363413542921637369248034400156447982931607609329327321520057993680044104823069899442576009778628357807650423301178537155538304222210803064381749847705279509394766147516575994630925371077054042020670634508958074156125778822571869455575435695206642421641142803784150144103603312439019951003528436887630385685856734082893526624084790058641057112368978249195487912979680887685752480171446252336766210720650596465596512927749390728263667311436082518996969984048664419374985679558395318219595335594965282751348052862970731357498579904214463921710507901170487146012836327902224225000236043377473055090635656024932298851225186545976582344666801754380052682620887628033438286919914378341103790765532710957357341378452545230246820249732819647597355057034673314796963752921169719015271193538561041527055811988477087893036981107382623669916139435506369395001201393644466023129830554008883419774677803379485801748322545997830194046973735442147715746422987910510153012138949222046348129282242388380141611993521320991057421331394787781544413899630058191633870265239271364542429771001390760626319841210174516983296651956921889455686743052216197302628349797369577228476741699558227132334857758220000620020397149766119948263615884246927248440417154907162014088301259481796491811642100912201063877193739113212262310974611374890673053445939255435146673580053165117138546155566708627756448080039031329197087928026451522435074239369809038398108836369103336659183553940608518780139560670245150158317078614114759360086800634679065705222596569400440796850925946353084939300270467640520641114481213180131185221074639901489291773788089093696420653549177675104368331631113765061594828653672302335863002376857416503892193825955641177808571025413858576096626296971231379418647391586170723810978383657888825983514808800111043923930953976388699094465956534495192951196304792449074412990149827279115860924291663752495617764266125583349721288307521856486625074419161269880449081989979747003651345703839646630221388901583613178494422836289347386567785047635400492316490242907422185192183499147176558688549520629362041670117311873548532049856886588334063683691881930804335273174693772529113552612465346210496956173820507178537472085215699090832640974080939561686393893772217308384157562666697342114521387563890670917062130845442407731374631999698565886324158650527164536043676954337256335661557499089993999556489565746362804625848878518277038505965637462523737351802453189308903607658836690766196078274259445345046789178464839370103479279738532633565905362077556492040966423692229231241021405217404800579889624672662816243668274808792642890418052033274999972688896600961911115066844841944926857663944396907745750994788133199143721500979165421074897286650990194106615009073973920863119528300630727363077503765379464363870124958639323062787258278665735314520581321641592670120609816140191383739087860190635417575123253172001219817296233995898416962530561913445308214781676665199887098992977505773308252018002051592339988269985862297930128160899392836445870628201919205970630704852786674401490399002869082723131194453466090045343385237665191601951308654562839788391021032700770720471582049703979520509304772954593108927065798519300196959422737207169010912267561006229762864339061525419535156553389459875836340535168627636691839353204627233685179479370509680779228057733615079129390394737468421459957358022401369519467075720984831898733783046039147912060992346381109515664072438016990805303273316702324830398708887342064107565554230581643425990185422240317230751658743186814537459375545722396125138137327876924568958270944792496067694357790336426465464777145585824424635099221197994441295708755983319777729808064953041872713097675676783276119172559888205594115309100223970369302620060111565144254862772986469058540360039321148296050029840939893651717934602448974502228132898120077486790065276743989844152066145304511865550004464449135848132663373648627664094595303974185694561515861876380039367138655156753141342354940139663458649123407242265445047224659697968913919601116094674608797490727756848560127865572511714662638303556232077159791671537094819682901755799859056480818020841524690510820815572345694048288413712320670967273855513020176000286688429491458284224506424689256368809451756577142570610007681486952286304565176986703156311250530971537766421329285473258643506126073805327748460808026318239775238364128342407159352028767373472849323702740386506806951544401864829395874075576746958663478926336856234022515359403479465420092242357323369210607586341034555968044241692605989541654304398986399444839113262477239337847181356300095531378414948057335401157155578889392073112784173715932299861755734628413285028680323600122181048908165622142629066298330560360932133281301414105120884742190077087436325736196475744694804269707944759816755532774239267891849546934373125468810216596344507473867823927676787996984787630752115728240428003677149139865833688902397243112969037846779088451069992128108285701484423858222124048255685480314052718830993354967963352922985031392560152473524131145597322114276401795738023359442279875328986636273419523506730619539714131410017580949996202922089036859430330451695406127199932928922584126284099442517745867118617741353078112724214558874968974467588664434512697686355871574671294805960594767524125327761311970081123161382653943476381192584052586359777361396689824908171181621097028432896948454040412396556428830901644446267837361627025634554756021960882581711965583309273474541526307634237388820606930140701980219072081908422705980253314554489575462525240414137370989001451689789023325701876628009989868140357580511272204357678309878006495367060059096702278115936635157457531531792588283969799217190721716685197187366702073906086386591905288328125467598774292611747591300945303945975789288505793042968744626883177866153283368639122267203203141897064600475671852690436893344970367260705512704357852294484680337828773992772027454743277814958751783030721151559838719579207750631490619719890859717708233216058727123521156896207277351639367923121748695490735888359035452468362604700853401894453489290353706123549349973751677824489707920259395571200946697928305368208544805716295025866785053166341093430760912931412498792187902822713437711079822656534827863981532466746746321524360348830428452333782123092355925556539980401113335720829373352033875845180905444792019351394106596946184044772168569440653876271031421973538528573197086615157853005763305134993518951384866692239069750934619544316464224839400988263312821785883361289668314894690243468976613436064995092743047335108589161096935075415171724313475502054888630813243012396694501671690745327216254768480472104894279017981312701007756555894711199026082972211272965412830080930124658603524151115628600917213382092005217130723388166535604247293565908666063047417902400858273296528293449807355927355080762308012871538280379585898909809497996334285699041976999929789815564982071760238578938460825808308665099507932146092332869336629335175836928293759046167313672633227285671287881563379497473479174943919498423078695881671242576290221994088671951174977579551594245697110995537355049749105389889808598891343631398028941140326790681010958507602197004270100293026967886580530807879497902772313366285184474961330844178722261260195753582306486002985639079115054722699458974987935889822764920209903553776939520202488796839519017765089770230618969289477460773362780332927989187597273277614757243123793367967453520649581031674909391501304116987985890932943136616770100557384802300650212450193052148882498719842048850046747024750377511623286024024725562935802524763001917733824575001367065501747679427296737573848397038221026167780623232369892467709890107336690519433921799125744041736197680522204475031062147126299926386621335664017218357073481597722419487148886309364309903200172680862099966085400655036984695680426397264720777182953873680881072511173624703366298150520012019544975105735522873414010045653899511163561878136615193142595014057009699303221654214674697422604808746840551034392268906584200343285921712595748824844085762243027281855493988771446872128334212681389299620384280518439357049923785148359162471328601572344598347931810039215006096021363792210608073001633945938818042456783238591572910114579441000817878455691606728673411171020974193664311008056135823449628667830015450806334378655563597757427417457455655173699860779745604392256622960161320556861024373812614568226460922518788652987423126767522911224246061904119488059886938408998375337086407809180033589124257156083198536728127404415352050456285199513121097546209957115644021627750905976155899519842604410551646161051099533239099520388228519228280658204544332439315194580502305906983300191957740566275411677137960861986201608573591051238515097857391796853119680634356069344129990050185981697012655952244996748426202897316305045110179156203928539472636739231425703439367968679185184544678472420959111400919382766038733055148855673065374766208881364811156496699176714007357727869423250901578564861934389967410233454029624770091210937110473983807469836619168898883268314115592185168034746459203673497546943909049173867302509462576072979188923933261336722171035067542986734375510843602968313163333432815659469297674322165607913848408225379370976094159709560178009596898452984184029060522166375984189702887767296000067265904815585483937413668168770866086811760847331736118015513195389737632589599450773544799788658629512527487392248911231653620849839095428674380324946171039110675018688663325140473678993188715857061076498659137026304505224633528239721693738550346510220445596367152388979768350568740795412804615043830627417076451237037895430689154513182060112551374307179618216993713648208961814756760123961297116110822470037052449422888781282743856811046171872387241337176423250351215217444655640738756428754311551709151542319905360303365144344751339572155747487832778789934320954848526969470126587011436625221750435110597244257469516403099224103358201732074009540124017593251422485278436693793291295765161643951298148637001281967623802104149320135909613402230495115598318759740780345031787255622064332260504342474359682872219275111132013590516552426317739342448734350195649327327849769634340028071506300059335644927938690930698306177103755541641932150298790757770315535743886216615489005831326586153614370657391946397269278694837465699104567990542007018763061448559979411355461609775510539229326605711617715999042737486972204712140323340162655268098497468565000462091063246227983500794265136554736097206917943277515474432271441339592599695728150714906142693687419228153804838178357002525367468984023095759065403583835529683744656267841736235192468325195581966803276926822661539063561413148443302659425756197267657271736507418586248761326899678233593930807940744508142320740702144592383175285734119772780773012458364694098087759091638032889124337680693680926669304250569825281334882240158506854198322684208465879888381043762462139409222088658741276893284889149165573018523555165028429096332247922412870987128216684890276276856084829212103530014512853219881806974195440925081216346617245293622699365531581442961331227404877674434808410660459055058711068820921393543763243885798755631080619592088234853417034927746662038201325996819053263579845308493136578991961515082008500696399242303962856125545231814864612848814336373443653012574572572855593181879096525787076684432876272333958582875892503174604303120586245636630556994562562118557312632553954798383611187499834976925484428172526876820623137732298088708903545295684451378800540584708380967919868378795534360651007671867254982366176061899454404035731336451025086843178767038135310582294248450944737838090889637084355135340796789954029726555431213855605994268593160153344113258486799946208158350431047389263489788354910291920257330049329465119593600423388380088361123187285159817809416215906281945236688307784242370587394293152656553906707920499291552255072481370683205398232562569754939017301558892644542430076238447685332689062320275548959219329543497944747676320422599807073877273399459741474504734725885202738731207719596552671270380535451704583687195560283418786923634427836787111223181108742917363020407740143123010577727618297155304510209336571984125605355008400345161520698892141377177961017750056703621899158232045134680143761061604608279060438719907266713082351858140291713747040315283265224365188000737828413938822624439443298185778942230669148569419676665172497244714689610857983515091782049165487527254197732405115212651935947176405371864926353835016672238684875599626302081263718587571432859387496626054003768285089118211747913205502860236938812224324318870186739423329905823069440831590423309932351982653237875234612746643172074169908915437862283236840464075800068860988316077770628762027693628933445670374576203558125911971227976249384682385532366223991895784204041873348199319950372504201725283953728173789329821741621821693661534741628799728489351656243701514576349407438140938643393668166163142465138062340242191683135557791181470773050252207415896899451841942561890527959243390370206014560487062611709134516454410055911075385162448286442095329910791412464452288555014108607460577613368587721741011847991902225183816165007327085713547974134000042035475503153656144458479641204641291750256637088163062868644162930936215208076912891540127236473158007945172948772783495001852937924173004441843459045276551771006564897565443837389450810989077175481793457292633442699091485834352175223298142514454308373855571736261583521450250605832264588182024292481612162236870271063000269927493928049734727822622931413895587277863991188684331487310509438778252591826783091593408394525260037104272517474974217493958760986973676251256878930889811156667888841924747205536671441698131496730362336078117008979145694283946663385447561012490870828585149871506901351869197972314142030484680004068370560916611296242861818124354874077945689652519807302263060819372336895392349530948793601189622830768962072063395839979432970263892849828545556101705781291803428227658652899782282864823452397533059293217668545341306016377310877943539866932915739804326064251604896415405488277868236642933054960860213969826476988220596173226674727599349960245958810257600179508578251943761148938601332835814881833507994364939424255125025636986538326484297750131258065208213411613583524763118959780765563070635857533920143088817640419023828968385523619980368219020755527320268502416854641909630100298681958299590612841998764499083875212280412467550731124074286761004857942629881506377355124160590479567849818302687697942424502711780727504984218018067070524266147542592264480323069774923467164654733914244230373306999366410188880579200199712514056849681896814030984477334574429779630404097946405942227161703605549038762711154572552622065347246203914950000004327933363172004478016101736788413147015053044805455910602691998962971188576805792865333506464972717831128467386156842327903788240653098968635275860008823607167426114924090028240164107293407175565892433804821925116707797440510722459006202011444022025678707701414682409827446809981103889445868034489225414786835978051341722833859964716315577969102650810436249773642697786731011838123401324178102016003711237918354823395998855398287365201794364457509358265571701335706717984700149575414812330722438704160771688159314777601434329677651860992834149964621277612244011687317053898701389859594681637695551343439934883595631576011070090001630921688269781854484455563178448552943861385016631202631523463774443395491515324864575854611957482543589741089889116984786123056182757750727847202309046179890607932846821660593447926184340738022434315161388536855249368088709743414112140903872258718688812429411556846938295327215614021869360733524772148759292229496530464592100506888215086735557414538938505600565808855750204213490189801310109263933689247805662934441370778617467385808654434010909915947070675052012665688833403320986436730963589482049550677411068835459174376108425896071737602755387278705783120019619601714345665304505066450862131264444306934910866790171693525742924099646815464769482393959268611278348460152027634031465799182457835297646199653985578134845273713249892439849606416369033227720626955799171203442263509301646061461462039857898526102103496301472239191232053929350829425789323145502365357093874106823975795496820817244555690307441441053870365087701900441103865189036264178867647392448418191717707584308673473312931486279844171647477768010629320298325976394245747051814266045491716483031553714690029114797502029341588671402532707638431144054403080383845269626664038871359689663939117540109781742373429785592608748149311966913864605511578285495823100467646085835831085088105777540238477604472806556567376618289864397853581426257044865082404712989153240991257485989644765213009333260951649234443000520317794924878705588507125097772231702755709608444452788278541679492108638637222166765061916447257185601390108187911889257810042712084415766787139096411841996237181238242429557026321688316040937549127525969618986363335114195740954550974442530792720137646237830151174284679595107055151533674614787307029124876267484491065276926714739783621888275742529538531726584110151254049471241285871648581391436052334690557876149115659993832853518364423713361377307646449837119049031364930972558386584448387636879106006871125516618493422054132443954213894865154466934488695046328753045429520807326495334232997872052350361766877112452414562670821637168105601115384292733678839790606465645217401666633951051151587557043580661848933075203283618921297255105352121480741870776770777808053393620303545375161782176684925494745032997080862212411985375982085363804759713235180043793385089890676641735759628615930389886506588009622541185689181507272703057387188860106325626440548364866851089151143984675887344338333507963559400828604527515361480723264753604984523263738837003626667143323645701439102306974547651097757392722966768757682476555760223570587877848569430390630821757426614732522435408458302930147025543400000056797404754576332400537312018844003078821516081867481409654231533698883000539151523046939953087380240594908009636371471128144095249701089587521957212521681614275164925841935274519899484851665840335139956991061608575069666831751810939873122781526458535926378584613494978290212033526428566144202129458448178986335638229695803954675897902914252411814607951673376705281472293362609759819528991838390611020499776363633713431665857439554969269981780894010896530509123378368773939003748275242235697089327175163339311345696376183674053964400557844264253967638659715289173680748458703528397071992116876328433922712311303111181271300582794598550999692797824403953335822670396470755169806621013847448262056669366008744315919866991520030523272178657233905760490887217618725933036063477791142061968380265808026811559447321276886320353241148666767293778869500931993867034961233484891198124902487394366449515293844676243692544030825126264537720206921627169969032187279450077419619231119329050984791005985514831964977380003682152889980796840084747925910611562446390017584242221302291486015217804806574090485684401990944674150373439676212714781793065371071235530351925440023172244210406109982171777204297741088522511958596717256707128195944151792526534945709413509792853275417224046652211861818090236992361696238599162534308720271122790823408711889131793932889092416551350258921901023123418293962387307809991468684229506513846882283918989816908229612523790612411634221056617680358775528744871101797911848549677439824450662146517080198842737723150224343132571546551833587170733198727499218954210097448595491281448530055386981059824928467899019656298794303609688106511287509211470132406025641191701765895468736692657989308042202046994742225764509386048268814387293157872338139334081005017712171617416905364776416010844278757545974867715725733309172096252542367638793897448572546959885034130579298718384904726776264363662657164749195491020973327135827541161791826155062246145605283688573089505224200804953121207481544372025279399300177885017938906317592617130837246212568112462067481980600167196091117697426418108460479539829504421934039279084701742552776371400628918712977305359339486933089313534776042811417370208121722421070853923532075897509323748128036617206081996583399985991997630882602928968839156953668760490880142193598591357426979372748652024694377613838937449795091506464941945357306760858254819970706118382466031501719264760781607781013588908196856594274563172257899831717727938436536593018765643406835584682877843692290080336602100751378723841412817877547026257356567155984269892453869502800681083347027470240633297379844961953951766808479092072940232619190194335350233363737234733723528053506289445464395087710422259692050036181157321333260283047776931446538464629941264819749960995763622715900066257961671066497700513610660553285076907043638123155569980907139983769559715411506831498355888255770869189826475379715854543514815663831315797391869598375824037312741318739204748117295963731161605357881608629517633366464456841311294777060959778397123087516496099659406517515520841455085333697353424780666676913144642591402864657544491295749921134248248995395596006667172113167769001855702357937785548147882624536398382488104669354414743860288953347044789929443361464095203466562317590022219888069112429745284037879107220113835007167257415457626451755033360447431101124726834023581094561486018952921834219323182518132726276727131855073295696687167948203814929372500995732834182167705408681652382377039463873296393423637413117246960768730165637356958135270447693004821083333376270926269236259343092218749996646619774853929423538027464397370486615506239473774251464098752249016663011878811514561013213032391012506475350585489259034411870736952706656112728469636085049385823735226936645936290089871435238212681191986334126395804001995277048290671686093020459657196189403440634185248883223899028017404639334936953693451184545680787530012709283232503159490340376020210026531709130023898945329265853455354526674749228785341007922286220443224444532874008752171490579763451105633093526365960701459232595852135465501901655997273242518253100933031072329949147478987474431689514396728762239155915746784082991092445191597049401820559518963627647877734365896983026395066405155778566124292048213490660777259319208075394646682087356953968793899187969171393270369896761993651339833423109923846331155981296512558283271280290282651547794636396897717468746229870330386662196161036813112786099403209803349781235890039247884200313601731613885466427128550896966502863513098533022554451482798622246737470830454770251361979920484935810859955545520207837902808538383689938635831153960143879017775465920159854504124192390542719602704144049343000263166320347127530555616668211019014947556775685693343837110002453887597677174502622907887365059872350870539346451024955233536231938426134504700429638212889259366113069085687179668045550306834170135594174357279030075391236214338309305563247655172592395662580852621900089295847662915081766585412450085068776518707368075653088302151624343423407899825967343960439871359738258207287456211856350371203749032806482112110326959944941854093371151706629267727774902265470272017070605158104486929221630046570506348378442949997089257044420139386649638373053249572833383323480371471506586446384807555699542641488665929470208187204659294729496112532617537738615973155320742404781210264585486426131983855476106986509472569782983611071416519876149874617927162686485289507080068687191715495081463853171614370564425505664067920431946951395326759859660059952502417370329644897311324708058481957076787387995141455807221258087419120772849582050965437258373979506235849403483119199505402987637067582778568698958393307456065034284304915015406585214781157159631221444816073112522846621200169636853829063249556124219319273414501983895915877276443355221032145489147125054754007941490132555694772727171125989719274242847678210214484952808619278780113801847586206719123445609046557346261015033066363191122040545397168310957101349593915472540170153976991620770001215539612616139710387573766483611822271284676376369892019488319199855130586794987902753472418024290356462713978348360525853757445516355345017008094711116841602784158460796932210117668419615418363564143311928119051274124060299200101931493121456657825740986807088276871373440610887374808441456020846674612870830841377677787143943719231061747650649917736532956625442688384121779374955457287386571266241391476286830026332958492929841860976818831873145094224029726026944528429672085867312575156071933493656132390433711584942159797205362467210550713529365836137083574534162255578948846644417694502570633846614112023087201965791966945104187076092499574242314917492797130479524766716426791083301298279028927522122597150281772832101764298180901186808727846134691071776451942642102015934204717607826221076237866170907230789376723924539431864007284685983586993444598287414328465374753175398756991777600531933460276448279581518254112924896523612885125446071071745775859489719129944662035902924772135819539490038050221623389351954905796774801180657060456517271269655290190828793882776416127064906523169000010355357298581032656724651028985996461413801636441961197591649874872587044565909195234204273800583330114247554993388898833009962405951691105385933924063451783939837249028229154756540914176725173752152655680894343538739174455240229984331312916791940940713874730720949373730334060253058131491743411625551891061451244320123150512131410069613453935308176795623287900173047897732741738806113466555077517581676439172942665990783495716054704322946725990875982754157938010072350600594432451830178872380417390424757144433222753986310976643081595055318150373055648063838845021163348469908927122520918956630763183525090148480511375016961937647564745201747124501944786721947213308592970482092857366126933183235810300206674348709192955940881061326772804709749404331147229175053276957378791695487859189767322898554689169529754242410648596253348694127543940679347977304529310333094762702399640556942172571019229822731744453291167412646787512485319649052910714033875433831175129269966379914763067186634051002418323707337905626103085506893068965894617515213290154314126826904742933629209124061279017673190658734973177502507222799962711922638198313947605190668441483956686997620480787971028411593452656398297446702587684608453789024154053827976202068572229230155083708541580397483117520734350904569726348345761898137235822902207757845582242841001210452614487219178395526016419346707054507697014131566911499002509921969086616628293630815015873481899150304129568577569990683230375108197013041660523071883123505708557427814836971850758881823478733896898909271724975252805226068521949264564513069221619716145256049476474287997363936587288820647802149988726582566961085493924724347667270205566954197326963768579915230961436527478352189624185628206329868360239227815405085764667368731318153915935934233021453469589989025500695929351027467419726408776448537084415286121040276846391675792509984339325676074127911512152109270775895002413856099070156459310953674273968636178799408953682982274718320435847786340559915969664921565904384062791920911858153478212921344547760664213243514424177028861321025755135276351321457081076824215690691440330776109249532409847673916610352980012562415941913967220670436867318314914709615634165615426212167244021579200727306229566472552785682387336877135569626885454442233993902684390856191174640125375520169553596305431276895191349287072589306716743705771059246787077895048034649533170139281712837871187490534157377928462959108485808845255327502307737108985603080288853900166372804125626571451634911040853212682988065745622535758125242195786860561449612184734735156746160147479054461913226121609143308962147411712886458480773105549102529738849971086125241915317611797810928297832253031175115758433831546161300558427717355144766484086288867311866844947743321486819825278525515169433272165103842318322495426605473743734452083994364276029395421031415853270665875580239862552711160040493188516296969277194574706049099211999593261705549687783409499065343054051043039430252391161566829399303610275692097775694593050878070548316448159723883539281489956259456747194033452207984382559293950520285706692586461559402141768800082129610055977489312079692167261593668873955511511963240181829116575694827148409057167458236614683322129790954214954487701085073308150998845224421505955751976708152219842608334450378113229630848943235938698414931326494031856248978238019863946610590282860123264109811424890602313172721806511285970313491287368720972670315291355709435062856753173713748342879060683713035739160904198804108391810125714659478551915802050868703357923952389349510082473493235699557482818795380186391020552630562074867676593634516449772139187327436079943645836405166461213196360286472694806460821863668071833061175191179361962136256506819028578490693365233660145577932432221616498926551620927326449365650445003350688760931722985013483409139599437967915767682648758394730331251683054532083906213906325614981691480870959677811141039829959793879045092810538428912798765097987406489116017866150061501905485030167459379778205078422542533635158739778374925023104791873871356673480836545174380750307771073539830762693923119736716845376119620052329370113129228375246530068787780816895553709567553328238190139567643082730303194769937494673805204515894809487190128580353519721882198963960894809095663483986678887396171504148035372484475335544104636644988519225527265904755036840719610977424169839450016332049122078163360495572287938145016949995445629845426706528389094722080807246781343061670968199151730715699005581999567886508779050494831651495946637115501108124299481979401288712072097816711556959241534724583425514579539901583594634407612190356390096180017067318628142116923351141762696254721084567683064421918938783338584743488820273215662471937335090438662178437421336141010772978965813628801525739646568623429447592573494035609706521006598887754662335499026766859742148339501092143891119173780822632919288484928378196551199996724393806359892434938971515922528412549215661658901021033641876321234961191665498633774940553136867694407727303125746705193607506422960029044295612206773509158577115016343658703276626399262945730550271148438037115696082468134075260464914795269158517862211037205708797731677742142458970062198734713368028703872386111181667725626423595180648614908687472703037126733466499650994639153431104353228221634561536660241523441605622601013550480440966943669515605767978387533830382448489199106865692342635390105402766254993737077652675659621720824858694909937935609164359918718165986276612470951634643415062440324555009108399287315751313271120832460099309901092043718223929200577855077298827644467585362802458872123433935730655668696280237983189611771202033792858891944086849804567605771579018921323126848061116369463398124004234907335491341266116564889110668036337471958017935354177132795000616335888135749957815375512616082151688204701937245619983795194941712201729275717447230315352670754446745022371679780475491861529718159209459351237056864245322667284838463935733225217254738396230834440438137951843449693216010046776528353125465189176211390617945512350191882581062543099003041285102284413198244854353362669197494532631505298862989464264772776370476623730771354361488877638101653059650013009154376896458237348364978351967657211082042961396938262613144511179661497192193867557795719059370757360958433847006305533454057768799431591928974648502571449866416284402353770475755643253339502986561495162125574698232891914595993901480821013199400287941021481622991177521323782606363733035600390899685545642502949371266194986724042039855077238563408108476203212626973888212498423245790246173782900816530569023405664728393711544320857229668072771753734542211557747859053135297133893359769411780061709416715096502073310101032169433645617605119935765303732393406315743338934121703746955500830686780767485582758410449731661764625296671949728887950155800408888511275850076937498346450860512701411637019644813521278404826061115234298111409331673390460864771043237455545008092768552018974858602153075400239777129012852822864616375707010780695734976325725120368922242296689153051451867595237598432233814573398593502608629297114614394706647577634220133419511709873508747894357546595791982818084275616277153009291417520584782042564990518422673035242324141860593989317074630634055761554424148668057948312620532184318748737635570386431497015930592384975192681252186042921094755587325805684569281033313159426078807755088299858525047574405669080117656836496663808237146565722644723488234824835374638336754140453705996849479955304229808815460474459803878369188427597529053348332013566623076196159335079189926580397332588795683800221729889611742461865132286845974616771180326895497021841794495221634051094111677763152690921374344370647017193479160939586916215943887766647051593096607780125858763648335321334969230634162063062002908566964764339825418405093684771590164113607538838517810498697318691179781821570213514094737769562718207429027512364123168833725591168748582935912497790767458247098155760066996432658122726182620652799472288055562643394695535108834210419017556961563203511755068774901669013884907417509279645841578547605227561031467249290715269857299002048162853138427027180185232744422400692896832324466753254274551867198249665229571748707873563548324124637743162642436898007168112701411163462182949471659937717035054209790058466898159234899437855108237684095285501597703662057927771943133218166125346532810195061659206170439224833731030633336530891532854087295132619493859836638494955476340029188369853539233452152983082696360267457107922926181020105501644541402709760552380875739764011542281816739260808078173390308457846486850994367368836571445993508756388654561874669188627495777164686193026910642975460884820692830032185249354176504141505424396665165792457480530308624284290090771998852569085023552035822489417050410443456088760887173518812057635167702634290739222484290304045401610297986744430477557069662949731894814433922079036509236384063192450106385410941237497796653725484377092260691290861487060937700832665845720709642388920523363259752575098310473366340671643708850880494804321498357417310864337145347582404050747868863805164671693424042029387152391410912338026344716184579474199223250908892343783390779790400541625602776106523926714986664856004816527672456514292947269650252527606943684095605328549302254373410147954574278127944324354597612450693450456735264698723472757309866697124437395085693037531467247151524781861961515791279888381923043337154543020254008331821863438903137432711104466096507899084004489096817446550384104316257326808323724447184511263952218864080992024016042424886063873844310600641708294096258920580163675532372545001352408597119445486751212469425636910450961763174801401497834529061669876367207885462714418136418994288040604117155748882963638448082787659384305347605623898984209757039006319986451589747474918025367189001761703513807606793419954670606002197322432841320181135320465807824000654812010844409618665230921653161089960188033629517473807229996638777507601920112165327784315240524037168591896401799250374151191172312732869261179654151601835309952585611908256656132870785385487869296955647849321573326051583034045437686298324998805706740884971978078621543655578874327899703023646980012284859127578214875667225026725608354153804335183939746696493729558402492155702456482703025497822510359290612602496556828852606719687273220445565003490505038168072671492869924146468000902381102129179131989960611508889891826496553806978192545633423464450507727493024426132221122388630276099978971818744377417596393903304759142760270568788623662097567475730445143274182722158339673376190514705959557853632691117485948405097317294011222080178944443095822772478816372012254190628614816982680027936043351943739721116244469922958479578983759514642882935087043071006864441650601546092379639753725934986230629348041348534968542173705032308111090998463170371217110163307500493436297414926900502766693622300921766966552193474422935761617885321997441761126535743307243837598254285789185236775010409087806836234612672562469391395804402797947586180196552948265233684918737276487367056973784327878840231048659208181541868466254263656129739584769013987160331525882058930272697868546900461576158995236365849487140893952778988957880647628170280117552296525882364344212354874518457924952595006908896981986155931794163682022040178415600407783314685393126774416505888740349403701279099397821668854210357632649759077844341007469514322672878733309059655039580882389188159933404435063497311230147856006719117121656930960705836943079884152949889109850100485396515719034289134444888431821842975460798955885318190813326694156632139175615698980600841153457281204785481241716935197798390139696735601343737622998072255986043682367121993264432389947696565515561389322713146055027980867978451518353554390082915657635351757322932445793319339150418026622979055106819055867354110791727792353553888868712925056530656563852057026034878185752594454735332762660677604312264047746229143386476000059656837995940595081481101059894688122207123982022711064319480322612897870522163864669248330595223813803306920025314482889030281010982547310355199344212501690716741851449174836795915820458161590390758236882888843996682225573859244453017621353554179920390367760060158227614319534661966581966480116749604529008148429818948244215659643635423836591144698395540845904796147322716856712381525558244009550944359506478859091103632822532477095816439129152392669851869562457549017863217710160839252634539585804641565484694801838423416144855177662348429060040981470796461282438590126312621930832557035218910271767537048898797726923736584847277194340246643710321694909081962679689734626082411403844916307743925786735384760385547066738567073457889744917830669531718043857129034261058151051746130555533544414041105732551171955436135465951684768225131278553512689675225472263372169419509518648984236121195973347890153274140107830183567431837974290439492290132029254523362784156517248382677683889909570382783483129992073680503421477097696531903565820865864792571446611414394617702335500774545804638120775701942849575112605837850157087310604112067863936951117247077938959791598581661952289810638344070541930684705755469750207923083739911967443176608990653995167868239301008048315984542226738929593737387049671792641265462675963954626034749897592224968555426155331250283376974514892327015959817234906986027143076483885248551618659651970770023069123106274777767995190116812668409577901721650623120755177454236260395388278656623417222939781320585481530951733249629789365687161495155571502877432750808339879035427207142512894392182578599813644685196559571134476287437805198729419007199119119753139899421764380003581420641604415258471483353891831558209736520789362938345517133017134380302000917879796585282083879453069372328361160267351059554517917886130696908293694393656695483213173491651625405055919956210646872309619950307063195847435546137601057928547735122371808813961257179458183618162708428449467226200173804710338136165060376012938160021244201350061717448933977628621733387595697849534542892307744470777666471067920806706566216642849735969235615345203706273436956149087476377940983494264592556292751377982395561576434358463919351807977907686850609354687924768143241742537281763945544649843727836058733534005289192504294537815899583825195388525412338033510565224695140216209455551480459505714632000616081317420296640509192617742313347016849038309060935347411857544214736018473495683691647803602896018643569444113766821553337511146343161132283097543624620991543896976468144787784276731095641296402919447229514576967673662036313534395540573313311044814917339694307063463575820462640389682846038008542802116578468248975162984084202922760947952230025891417957954939551512575086863051615738067696358259442889793956932149960098035918028026696741426972969533235659798711907496828887411974767134151987498091794886444015463330266789396217215295036580691962574347804679808801048075599186529151866274932086148238582416274276149485722270413561538483964855875304100946045907529278534286930018597526469907365930779219747033690647479251073549870563804450007012003921180054919887593081038409726512539410343262106340532261792979952022371163863062662045680824356012414099952298523177647378215584658637428396850913157205227463241847006567889771781024819488421810317415337343121624882869624224227644654515781501765817226674191317971954023527511417624610801379086523254308093291968637499263822515326960010407606366299473674873224684158761607509997861372327851306249581767457074345181049371805673550469943729781507052934966935268560527681394640859831239945375475488817606740040928091475046984451339829003952167660544413623555329907919900808672490176161690776035028921926851844957470300672789770972222876580020114464399425528223835093913698935213497823664351368284957550997912469717829661907498157511244223665834872858812158830607065319125511927582453052941765442674088347858817300371896917187836656310747227748790063428718180207810375032331845995302763340854457894338975371862034342135132598061715128615942252308187499224563436840076217838881101184147593224990369755355406882633728881286651134710425683108763308791011370538948000453846826030053927001716112880926697151072649188650816643403370242727657939101780661049474220658802724903708068805900757940347366544296851152173092965071282180210502155427133935970581547409438700992400931916602975968176110622952168365903147245439271591503203174073941533032040208667638670417435650633676524251308258139324456944792481874336159377440312284393772256494004465580143906159102537346998921737099961469465550468799553223087233232440730060977051345153259870555005923875001541349010616736627355652310671737389000552378470172553119197845457051035834046473239865655884987891115060337980485256535593430511666079563589888575350347713919146148920124278931402219719942496816001136413096755874941777927647552276147957994226664836737001366896680129800306459427912417720036325045650197383417371135718303269174013397596684669808519272813846689517126739970403306728661332937419861120266813199194445397512625622086509556808849944604675689167401488568055274791959124391356341473454831654434283136383490835024299606267038661181582697543443076788277920267873502155159332678755511585542694885860852803406835272506977543488339185674666551155276716929895244548414142957605431377603244438036844475306133675863007194482082624557924488219008754020901377506558455782134404867546497507899000371888352524508971850653480921171070180944570930899309975421715855829310332912571130176876062099403066678624313407005206217769011293458887352798543016367443135248706720572515553674810334005393201317001675820927052542796672528957990158336999675697946672209994403974521975785564095364286449745678764380498678286445999942907329973785867294983385730710289169934094238926791763675544554580846271969569334888987767499687273351048298547397955989026928556872357916410892168708038732328294034182725276457924753669515181893821739372045324790443714974014962809284222190929397343621180188430377926602051028894116916015430519425537592025941020310751046317481636504286148461560360206680526963002150762298558012208546132745113434597425752034709358283519913257751401858220657447103920530465149171059828236319397271645264612535753220466504214564481070946301094452207764459903638804892388814914959795928006028969601711945142068258127810389287935356872238186394288191700608602711092127400687298474748214786111059475304546810223582228739443422224400840818342187373226632942500050321250554521015693288637768447850079471372625797178203774800587161299535998449230182318775629277074915658735187930404160026499435868197312634316672763855401521735622374991173238653749043421984978452979899855223707186624805119195850565206006241240857641334094117241716540296579870647050380265183959359567960596028701496879576268048708391867742402956165955566504969812503518814924058420641930759852699702636102887142776118320555348625567050394955005991404392751669405091978772787019115694304266741901645621298724328630348297604432475731529957465913386152953371416159687593379322339237840556376559827203871440791341238959620112697910334040010347888108833577002164307308270052620879934051574076395955948266377126353343836575052293134215426356719547583594272433296136113397386084930236013484183668197015287322899519765934469978993422338810278878732890894571266012630273983159454535000078468029574917017531002905799426300950356007649228196295726955990885929468843709349596329164885637042701669323877756758238921634989210695248996052575590737310748038659742122616887633955625953795456855497907787292921297527443884831791748376091465852417034860626325176485481995684742838122819012827062756483082691116584947492551444213086088410322369775661657463424891283571580893836846548314800100593874839885198340621319803621457250139374740059336703628304991579703169686962748832730950228572167813327741633513969279836403297661606367960095907643302158510093444110578820929213616152527390184056299612103574801364990542978615296638688508098419224817312236381148578904094496680230491060842875880958430132502607436523314972135506265577018291761166212440454866683109508003271676409910845061042877676094109079902396213115480672897355309419782519995099395321998109361208528252988441149269720728937056385054865879837858547349822365452406441230163020411510033554272363764457132242829482936537140333603933832936568001437541476527129370781560375478808420788207611601555174415877772668474041653715345937635626288242672551278054506672079448683594990614924618148115072068491841930107183083748892390100484962161563646098819533275156104398709430641072350394098230137586360088015012003295787856066796874671519186105469975502721173189616742521904268753831963526874641276759829454852689198226850225124529681812123177669923247598041642210376917174822288642355519966056471562935070631438915423837597266851565128140463703440967673517259431867446059082765433447463718004497263897079052377749137107526595131576027158066347582076998391605105422062384979565038827099558328114563838636779334756009354253740746340737406570484481069485470757019431454626994515677089017584502781670006919209215556133776589814951333658791384529198708978274883443829578088074982190439149046277981743640472379814292248591703256671517687702502469315470243797494921227717786237383965003775406317736394943551918757994485108022636168119298416753331676964943379017143113216199923625533844163191542856105469027515417361449966060728815052745969769103982884623907688228446536009659347785468801283328387783600866813533971204913900715188130947996877277710381150751546446948655340353088085523163491994504664630920801659704515529816027994055394125449845716246786982543549809672832014850300440064951340035142087133182846922536530602206700156298208669894901836830745584832117137802829008653674871153278955824266699707520228515012793198371043455331738002102469336587148379680392696817615203513747419452245813032200011498185130612597444951026798136702304689695034780022902911793026080009882150968771105690263212042865790434933957824734419367319737220543284231846014442108309712284814043315581733741352301884288516904918766884594767579490175303770527745136111661322589454297882197817409306784386959657447221982040684562246069731076980752549299516609975827142681645138287202917310154328419115943096796264880586574895340449546391372694014606757928134985721449162173792719773361286459305127688863743702411693796178421794916422943370326262335449895074287162394362230055445263302770640056136713238815097781784050563368385516763551077525916767991199910148104069856045846471145150187891010854380602295739561061188006405513255686627636426135839760269521985500997642072835583969017397472391720339188269188902223765405533867494474209746850926108404165506671751544858571510842678495880907237620901092759830433736002214050308289313231756842327876886745433965022190802367465727542237732826927432002831434474359603752829432413622473780309640792393104861462875144393132243900838417033334837405065959175825763945197532664877628017022652647683633065479443981009482843863187474742008278430910726774622772538329632788169648222609377462407251345590262504395077474647749494884784654072374874811030170004871104061585635396945806278820351280662029088286977446817158070887193379435422426435917144170179786144205290957747004684570831693839217475851193556460085864569695454731624432660503175815924586761666045793370479615361105728663784468266713902462903659570677356408402463670906814048463975366043584561130356199692069207222807759821614477527318361248993240396024103366572567539531631903563657922847856450370050647659401923773970951627259022087530201397947443133102331516542358635112438825814216663691933930625675134907598979041333780639776570674375068787976476115963450002743930039062585776099577443320737308491113804787092882772402049267833111794963256249557839314750282391790579438871708312734014961401629669415047411800642014617253036407903131128851742621565626628196159112982181572705933810799936602441839902002420533028284658553661962210258932678195581564696139509183218783339103604938448238270068619817250964790742606408101253832056028699821961437488394142734230731165892308200797072830327915054961715684641546490666987001580634894824495339738243004812796656644833599161605438373414829486153042906372268481610432436737811948092205172908483892583614886015744078762834165068340534972414020341940522573589958231262131257172520871102874982831942675943193337048920933661376005920021493599488177279565524241884548047737980308626226408976860690286534007650563267162286307763127740712691201742195334231824073693201608344625917251858603252070535595663088025616181153560213439337206945432387010086746400126934309603058843361507180888946020542816750380178897250055624458751006001775909664065766017210626612003318677183542309036378657362651799916043107848934952133129528594153003893877707863208073054024813862469984674195113740378813238017795954091285641160908040665330641654082447081580340760061369491900447819463908746936705777388378270376476583997444537837552379604410058984351583539693071101277871772538127308097433209251381414926174134670641425889035723629408034296841961666141937413011475880792079816196727557347574463321595480991955477956874834258996852076391821878989332437159188657783334613363287554386908236491797799769288370491675469695946977989312160144398235503524754167831508191543896083568552051422523065020674072131349129816124108780697050529581672271185264019804190090175530754545820070815195603651773294906906969868250078690888250987829249968901472553816510441753628193303871372609833897952889614278365253449520959497863431016935590768645449797235346726806972900132731557385968699599392179473295815392161035524920273152820774636701864042180107901380448201140645093242924743431729251063524823253027643390374666139327289820047934998266701433478904502514009715439226654687377574189084400188233093200161999394987847723575036666323119222830161980529864149848112439010959982466397650387729660675506079573232410796461061811558839531965610227507747641206830654769179517299155995538186175675900154257692979959708835110341450288182783439691054224171182719217754123767273035073382946132176478594840437857321005215834280691052930448045833058032416237333718252338235415270254916083314411066461828735495911143166207123036002129746484080858647411017208883016070871717939506793006641577418151076163551151703307521708136171914621164314943905267561893501306575185337770715309076481531803789663459600250787086126749897566758994469644624043551403277747761381544364980433983442893984358964355888254149105092935735980415662043477835262648555801057583730061505028308469027737594958167900870846806982707693858306611606011356374146581208657301876167833977141707054757497085995539292458557502785068876033036319202039380212591990816685199409973978699425544475966631205313320164055588431079587304263946274889791737330598419900481738244451769160038743588360332856598078020290656593952681054531625478492081851779772874030684916317767267614106213389081219295610001821249715256793695767316274940026508001276133652227451384014248503788447353267220460518573237922973144445003600938252502038236423561416564775635256964011502039707880092103939849562944244863218153182392187783508281842296396203262975419658316700931901718864108573793442875330947164479634508273216396469395343371307709851253233692433236483250441035040163055779591699429056299290628121164635914524111744442206937887935064555481168577774731392512095082015284723835988868657601380593369819963299385714944753041462974641040769014761902429311248991183944833094476705432548641709592941638579576672325955598127889415911160676558956732648112872085257222337916310617547604885699264077793645092205548647799224303400304736675811994231570404718194311162878733730834978273730284630018279180471599773883342845110231143644312543415466536402013714190841930701393945029494555219631662534162562746404441876885921900713941251265428902430357876794450417249926546985134222805222459993361209434905327314142890152637917896448778320342135353598637743913058885011876454776173849209056263400260560542818096659862030489794839878469029668686596048109402957501545534082021481647436550655634048937028982020378891939576040896679769480747873214543465880521142798969823565543127440915369094673619033958136270293955234697392828886942083549390641585752486334658559657754371077791278270727544006665890674882365693316554970615602095875677160562091528813150109978845211137665211341708217875057614751298271512032207526851154359079997018186379440490378487466390136733690502772918435174751225711645112961408379428061269083351655108360884768946048472364957544648305174926684664277229193238708769505708687012410140774977543759771361895536588593946424870579634042586428008747223274223868136665275554477243119340281407603865840363287421212638232762674573077906971597085566329466855601164639941190534050567234958309510844061356467016220389521984084160815479297482333696823364359607665930533438294618511231808428576518342417804429217826706071829878336465428967183112846056870035298599731345676288141988698375069840113068266771738124707142497642752243442531786559531725355897591523360107005184891423944332291785974184042107386410651459662463727330353909966885738959022057898201434927929736590889581069262148632360746029831519806233883559746778621222593966807409287378265944644858636377514352098301615982746652172302241495222442456863027612751016287009496707804532992462714322376852638540964227261970791453041389912666050346112330302127312653647516588089475900804301587328732892425456233421684296953938171056609013417549027180336810146537871269756159710723118917795590315000327882202909749393472383073879622750678366629284694215745474382626638162355932000772757860894426789656306275334419563883861662018745984163451026257933768075856187295584445739177288472385566643956488965674475343397558178810845274522002489521718060862035300550672077844484254975663115043655677970424282584234377147448244858278538824095294855045155117042679636826172105226857245489401292139397180955086182686324228478294404207404662934830964548503843058481311225409772278621170973332018805900451143632221535192908417958095860335951360884697638686470968035456447906621974410099238169163841200015288894192967132546268132472868848044280403797127507609394670012905633639743968797506877705853127404848453219428494768364211718737671231476077870238630039811552374628915604624282573771819819109461799794355332324331914321171331189969434274268403959882236412702594619763273663127447401714488287989926476888430470789709613733348262303563653172368774298810272678395567819788198840843371299228013068665018054182176183342714573611014625176772435928030002894720783210098193517789438713740619930230399370836759503859015545029776845096280875257644256664074483437302134575999777233116616486668371471427926088443550943644653945792651910448021631784695340568175191521328424464705498383947362392828047639807525285744720634853440300320188287667833177200269120882260068345954967873026243124834601900384680106497267358100314132590637550942733153999989948353251031385807526522433999592669857732002166121640906846761326090625270212680066654363542002051911795733889098928884992341846009716841567293462572201165373266645280371911166605904648439525967114132978915914959671720235250743460361286984892344263644981712762761895059085666639895859158910512822147122661825875121156912636285859479750235912002107784898513641922214651380919045325987937664160373575607616696341154038857539977141940357552279219512609024178567342084893679742512663816447939946853145458930891010693462029807090173230521442853715326364788256886130326207540868015304318809796217588672867348595331297958630954090238765364434909130078822316570148571449802389750357790558831374160980451559116118966777768603903834871329766652201706866583655425115683851877004183707474198967879369744583889505345029570570888571747557251968751292925989145409813577424796658757775187644831516184910565798435661274419990275181521161805088641466388359449430129751197333644269341968085225533170122115912195357071348177661380917235148636448392862992563639875513106716964000837946075051089255535599103871632673222074420042136001851491592526579291313435618523375497196330809086242417175762920334002377149881029736511232742350358088151628441643576647558061966589917018707706819966732064029792713179404281034195195759886072701152820182109588760135302855754007611904276737396131957943238300382104366078726159746428709472869702163406702440940855451381612902605006663860745831734229251701771192676901635290881811063815411332894269190733179150349199926089177082041421575098034030302529591518212460614205245181967918926283920077938822439929851695852454655577218096108052175503045093058914483573762816512451893270437672918367712411021755333054605163046556067778915525319175964832826057845995458222174214189385720380272176114302103600947731531650161310762458386488237936546108847545057189500376067814800201980394191413201515144320398300319634435064607730546188855877580932644325972691547852051892652716960821182001802387370884127951954146632059125938894364175405035638260612878167601429961321256483322446655160121279396732921634648515189874009392077236248649772320784605771909657030782407911637218902505673993330697874570967623752203090954588137534853242348843836047237867569523025057278103514424101172025696832095830753419497770077920586021509864004055955836042234939909641074022078920736609741589560305847646901385078365962073573923374579629687263187860234782889958473483691024364077729453289065050283952590535465214819334152370804204250023884096569241944337313692110738231199506543849925082211400910589560143113253097944793268333938541522472869670560149805409450194410073805984599518876201011856715487828620624292922439685010461744683578875304570101082013133241301205386605155228214251073462278699005286164150132691800655787550907730412928296849964732916833680637852473909344017630991330360870689304200772809449778432267070709723399872716551811698460566692431664658951087202519796296476484761829876525563327844332269351987847661181942297020751008439965745248873033289427683311818402582258924163365360531512378448129539009815416165144679476645473486103635567561981413729962502268657223421004991018316476988395988286702209632268757465307206061210517724555113312320767797873149869912224462443386639371120499582520407601569300132859805047570485487251954030430983878086195478648812180560893189983881916470048944667579448772143328913899156634185967848799273975490373152028188463184572686946517951670714193204846790561404204422589316837479136244375180161323797451166799783468715359655872128214897360454280819291783932112528846891206257915606619582430812113655516929305500945385749743105905370768708937364746827211096928458857166797532502320474675089503997477155075204296755434864651346903495788584297594298820856635411590810961398130844192759278598840260585813483384514748109479288087752364276488444014307550726584504003287317223949921568204568740957609824443605569583267613122328230307249725457122660006688648616173622413049188325032997929745159662655049706530271495040779797645685526003064034026448460783973750888019474668034279933012881629586986874430766357419661091244475989810778571436241769628566548543703005454210801274041026784542710672651328499109211216046536341521981603996800539228134733443348093272736926883824711554262889792039012870201271067459287693507276371576651637278877889537868224733940656804299490981195702084038332377796711001182762017457711377661932218155580079103094908473498983999411106055650780825110315362256945665680305065701229065817189370838578491893838698197338186232284796620251733704914449487467927861374917570722934242937544280126629191115835763844161267840993777169556771361593596103779422599222968207337563388082291376434263095746417590224229022008451951461393562831832333723392541173054048345947336014820336095893250843681339611089741396850634396128704203494547297563986096069197743918294718802273391337656930119928320610377416376032207367020000084964940835821360756236644111203914745258735700746001796577959417383654036453853532435925834663220148599325541096262079096427294639763415388395317000134338802845049278411694021680150601644556565705684051781701693016362892006095490309195475486766950443473778132947169938604257599324556350995959503949404914357556238129768114738885003511078132200140717454674933922937015775901273381020021054490378672751818498917672432339165567576376866358463266007335874016731053691468874298331552880365756132031403157416966396479656418531454462180048783389883843550897967140061473628865829952595325840958893372056946861078762912235904259663410175524665620740136938256904191022779359141738703029998376850446484174863172521423263187043372334769524376226988912854991942805385641546748575024368422442074699626926394476208189745741091356524633453041776082258627436898255834572299863890077518612594207690766971903061774912194130780142075167445735984975790039347695343418974200713902032059074549468946128368594752844674563602402351738526092076630909865684555223188492185631012610735009933188498968898714413481607230659558437876752332777527907778991389785177421380529752765887110485734980357339462840453184460979703780636976397362257736016502519880969308953949101441795377278754032377468981950529122167129263320861928605270767973571436730420525075633149280698729778166267484003631301666115685786259825265639352422113927323666059824846094078404567259410979448976471317983898579355345040778207796825555343708466039507794444143594400503803309620750225023577563980694890175976521155586245354808549713516354416777349646526579261165537205819803628300805096056276795649140483847893854796285153880737526178816858731471215288304176186145365596580434699000708921021679218798508819211506878831473468223116428382354268291116113070876361631455001495427257952601178853006906364596130158773125357388922494097368710850741897082799324262465114341073743013349993760031048063363683267512461243624730860100705950978951169261182013769422455624707011756312801505360138437264128644185565373006592790045814088923469438026946081830459071238472780261227660633615107809459606372499766941786280452867283991407429502144317335423482710995350366673388739881240565760851333520344195332895174108356719140508412347350465216357940974970471879048054756220081741670930114383941101802835047138665892784560473253344947371470701448920498368048961290970101364995342104855132017394781063193571152309339567584941872937945523111868664477547436163957240212511945282484575849043816444952738034236149552677341286961648886697966468117337272242426225447793608140694941364431673249251011908196961079057638430536247100893352946205949439163209009522431762092427812988136096207583983365815472120764013087010479306326499926345756187648038176196095201017875759039451238784753755714562690894611252926500324120496383789165113531650069691162498662363107247987640512757791925590746246590137707236282947519101760435273211036434097155772349811300202241848369929215575651851275012003764570607512624055439093415203681713294672257314313241254754133336017021769528717182150916512666770898258123577678188484026385949271205802506054763159570269127944393322837924278713895364794286190216532830236040841675192318353277259243053349412504182132212648978859827470857865035556659325875534834402413726359674916638496498129879323392293567464345581105561366028202137393991010252221060662547105684817306318901275375537808031246766355061279476941675815064221271785437237265702917715731805886066487505314995287491142276109715338120931270849786698250377693015590614871192535419268130173546257049650023183913441050788593597413287191200119063313473523581512083484616694424494901053722274019306537368569648561555994681541544663664157518379408853211217641306727525358327695947148023480769246541350057118213019032211660347640329674680866476503618005496798835262303828224261569787998647721347990016158172434081843557564775591231414281519584878623625375188847388139591628019880294673034585351746522822439928189279064686886183780968680655911726168822089932335462989089527160373644562484619062855569632606751643075706622841282132426162067826141191670811338844435955956953802103588048347240691884019431130978374223245140066506193621514578640824598953449763773815796985601033732110290031528442247879324967965637654539582355442838198671948641529585005926242700633516558462870781560732777349368025842734395990090360569505970178497574365068493410968422854329090202836210097559911443216995853600891735278637859851217350441288383363388848202697997713480469608800851364980759194166240925792424450337508263499210634309649500912135979693860943977413495903815319828306036530784404386385289689972845597998829948014170288022738956133060751921515404836783146692171293364090803498444658892113336239599747883442264823806861527175824020055363748709678942050482879771823411634114669100853671214696144809329550951776497030574218358786272403376911408652575207353325666332441041125737865354136174654642283201407113610538872378958779029296016140365056867730725103806346778037142249610042508756573791318365198114301608346167730584723851900128432788740703013946989773494911033142285153047655236624582729365563770674469236221313829139230649619968648979159839029794007149643537656064500402477606577454524398222038620558039855840759712037416397773016748763315506497774656757497174070624873442293266328731684745399191088743503805332985336901834576376907829337070914428686711798134121189286316245186893010894441622189269252840612704542216845338368615381366436277632745126162392009956398698855430796965713540694724765399663148570055988874685943687271931232410618803299314652947989772322435940515424973869820900623092651901098163658676165394552698501559774192148276643943453948187283072886034126076154929275800798375542049937130845237923472284644623803054874742196114194993214314180389088471598984787194866982820896163570329499034170756069173977704901284586927884642641698287760118480698502885398532385095406356879525339136403154003119217296840944702214118591748457319477278811514993307421167112850308285596490978309651193705430679040971578163777424523419079567163407837587896628527913074851928187317905788790305206833051239818233779498854663688653066608915930435783156838451199156829643085106124451433013104555241893112238471899090611954426668793924551550782478351036423849491898924457209955510876813984583446972074553624681304636229118074146154576923271244448656077253301959043571272806372471152520526428283863601593087693200542311777435103008087530965918131679567437903153481132365487937859674367564847962213829443005183677416166247926248513867287347725688619054426883493346433791671091817275074511870974859578825855774818175579425046943028585538671742857826917573865821886783386173332808877825142194038556215654973379284801386345287610480024684351517203322349369973456379616816664419075383086801894876150265856946078205934464530985880274308986638445540612973059203086204140028487311278355618701941330191468061842282174954372228232315032017305942658715756888873031410743941411703635579642963698969197205240167279460842096613613197043318233554743719584856500985039825558503390194267994601834610223839532941194648512699385323632395626436411184519897132609975689186170648083924701491956546707949016351618666409833474892703833742747210102791219022636383323521768985310343443485001030210267836871887006759611929400667744612174492370481672399088059836030957802927650632859137580107460934225462147471756879560115319718430284803353816019303718980967099425913321140894390408402125221352480563733505049820316298047824082431262901082358065028840016551002608296906382653841879126099947138216829973185984107175002037544793216679968009393586921503259585850389357102340463459108131325910715070544651665752867385464620443484484384780997742720012768651080720102217458370071819997970154689549813187392345335820573341854578332361277782981753714084787901643796491109772645906252813766317470495234698618753899033264459082309074528288232618431446792929366471203817140752787751795479804361653139088226422984321859941163912116920433166879445832807472371804225582911829499812558413920203993670414772070425780077711985214475729430849403590271994374994717528376156457197753439915736937754640712411838287733110181259772896057118886105369529359750737716920210140166030175841737750657856544115511828628573522443193768537238693189658405551812286630197680746106898822622733865824442226806329887714259832820025299788562843735542348876920557931257220292515733821904777571840677289419959193617344466368146464220147990261277733387372434600847958954045746042711862496706581022707026974457360666488743467485275346976478078878085171248076847556478224579428389878307962101138205513100834642877648576181306836847539073872385366122471092795396918462577765177075970056245709097194288039568423686505749128963428731027642537086878696838494913549226018322497636199760668686904607468207677731786515348289694722352330918168435685215485223504628634164764302934906993925037463668502082940442242177390374996492123716090120522611953091571959100919441495150595584583473505151894059111796084617331601819194203833855328409828055166715351933855659678333855189080383703698855252187618609651578900337233718915591058926102049946236802714453658925661979922031829356955956799478059524638491083078110108505468448719846478051677613643482407725336081736233778474590507530200543481876825863178356264489001666306606381773477027907633362550527106825829038300587344094003043804133627194153178386532019481346095766513911607346209491345937760641157602741596081196804878872102488879611346538913190708621874272266507215760460795648202571865476429311570213580096977863523894582124228288833100782327031734804468043189440181170526100693777619825486174597402415012196303295558668927557659673585419394023646697820177494316750795945031821226129763848526558876065817989873088722309345307220149902074739793222201908584752640061038141495175667232076652288499445282499445049850717686332114583547307722239004488459942295357801759505005966227864488089942238037581643340349897179966770462879735198003624361830385733614334870339522132489029460356461765203759419319853065331353368063642202540778100575053552774046033628233020206005108751239130760788462543096123111607428084855562794645816408173673168026020305219864023594457009853783625671154492461491345960111867596034829063013043053269539965709351233024020314939506845726646766254067798721359756337235351781569323560817671087575050396376956361587945199291397276424609077365118527952954783870476068313127738102963460821613911289604318050178362626820304202108618843252109729751950554289772320296306256337454513697808448057068665808501768480471790514331561260172973313469533877285807616963174582967610301435324967494523348626872869702598538057082959519856036474508549640984476382046505405347546384347694948537339611235847946225146975258725132633112649796835944660149721262672937602119948695378999758429303622711921217330723048730292833810948108556675441120702057453473779458452311646159136384911525924571398782154456945430343654601513969013270185790676620279232233660810603451973862724596558752649863162167640679470563494386563364676126464433606629884642942069421202332877579642732130348699776824792455612696106640120693500318896092673127688125740827270505486066976426668978851763581035846053259105586951024692139436375366159656794200152710027864680376971697024052432183580904392428372245044820767909618280773620045821511682485227028127788348046696448344041514760603220215617483547492673200684395222463425227806190398825978860044931573664275183731385471543954711318237314763395818537247881886491005970526094375789633293423406296653623583792448816078695293347545309328183356798019119946932951489105766196562768162490526927394818681427033900387930408938593465476222129102296989155093427893352605857023191947605834347866230989502474625333060447140051074019955039681451603414017200702988035766987034073700224559605617104723454199485942746568264581425653151127895298235632438870233195684012781271394054650921457773987541450773225919520404293406569748972313361071965814364364611127407380033321940823728910476875677608330683214675743232156330545300705958726999454152489472215489220062574073624341682431854229611117388231769949522250305494541184018397558707787491076068414172410566755864642584833966538263900173595622540846631572715614524972278835317622091414048205838820842723434063006835615835285183762841214701694694486784567817552296611574518513842152880384719746166296194361944609338596426570856404673911747580925119438330982178153930911905014065287035949346991491356044572808932018774751955806872619892759680888858651106901819942393104340944054195581949746817901106525230997131468064583778308367056642509173920256040699131084579222669765621649104983755870177947069418029139430762156236844634543410728637452256061573371467706220989220645930102884024314387677171644569704279196701838492473843565700309507757184026214087821665558029042034551052613176494874141243262345092753742914670628014528120958896311832499633054900017193581176605554569620300178492003427023907864254196459819931351767609764114799551045415059264584377210766231082574107763983691933909155546807520922248901258795184539843362521440169004333936043251323952929322087563714549894451927807052326816466796354116589517364088863913430819785592429228722154937225895806828181000660678095555332028534626266310071944840333914947630940712511856563300407993804782525819083968403082923552559191877952866237920985950421324262355901000246849906275951828429789707363570545464011253523389279245829353011172504186371584570067547066343080853185726707876791525112876670505950065324081888408194187806383361333090172844350207619721452145706486855544361568551459988324341625544285987329478628678294808328589024123075817272987607028272962751460362577338237344572073494609575011630476323156571066272618052980401702348181036775656030274862265336338782591393115053200928623969066100995521338141496516036261489835055728543062846991675616223955004640674883398139926568838501528811320363388004066262333436628977342415530494355191068564314015578867856877223113188478797454230376910427870981010365745885515730116655818757786847591107906595309590047521784072242766540150433310113114333092194179429702857917835226086817225313527062855141068938182470300314218221350982194458832501068159796841815522933838909599772277077254847727920159277676652876741273222905832906487739603448524254285785580153388363593444164440037301112162355059969869761199446491598356504711558637359202273185229398700371829696577325853184186766909778538572981710877193251363320389750083006518412487188056250838438649913682688235718960058021555775504417814386080039194111924334239687782123455195235032433135983563604505299923901053848556553917873958665192951377904476137433348779909391901406377000455070829198879098600403535329794084312199808187923513027392861358408717621745999823282101115087489737455188055061300409833854214238438687512293654998131579864229250991926407749562537913050231036584104596613699724582107536251003053030647518119812069970962728787630534303071149291996034665531940993380854112760823100477571310213087883633081576749738357483078902506038579818577795371354335999614940222444783773971230135561718692635822084672234476945817344464117076407766189301036056842818291842695874445178233474496426145754893406680929207416087360697540803291472153282910302051239764111036324210067672267846483303462575780298622228380328074511262669010707057268336545429308944150295477921310256662174168098768776903291342036929905655677944622247012492509489422455433795736216295017374079845844201185029252124740692005757668042149774555807013298406700312010054172888466490222047435086065302041207237938832839729572893181487379242709467844070732552873150299210823441834393358526424341170688503738046345771747900701901282873165908233871120704751166534189507318590304356778706608196147786620008518920457966529756472901106559809353789090266624937896047732187899072716429381536453605592100797868758971865164544734792876064144769571494684931237043373606892411620927884177087395738709873916360740960419627039413088694875687390331531628426743344388825780913143748110133310537962443623419146607721006255518326941768024673297643245760413209394827162968963555843873650187532950155483896309432947305258270498954363776213039315860155105718050687787916720610456863081242786833652568153907050645451451763949281751285370585515648880088164663679378320100962465055236032875365260097215284859305726176270403985942577741429834970115182885186776251870125610297931892095422629109490823064876091655176999350978509361232651664913088725650210683001584871299192668445994907124316954215904053131947406332340425000559739289696948577075265049114790236687787311992513746139888445055681523358094461497158319167257048337674606702217298101202627165922023870519546907142343192671561848876174375283874510910916673145079442418923400964134205001052588574422595363617496360658678638696382835736340107572670935925050486473512049370893577315478309237695880433756487889681922667107896584550727389065694505713423422683270895304923925701833623701194108229068053257640621599118276390787982701776649060478308196769835982533243120442364176822067320336439614054651960732122914401917766163657229669249906336446187979473705378743418487762882704332638985482764710588819245633047884959825811346133363231731949609088798439768012453642933451734897983838757074742093764158843783655739985571760570606762358641989631048999910831269007174369472189532740050515976366044823327166141962230996832960689398104186424108033001069690276523256425559057885052033110787030683441510652677381967796505027823329651276698910194189101261312657370981562739646720012495018711788395260237511703520417905267337782015369032655851917616868393410432578984678032688180432097268597003977748001351215737508030585220129753320547421104058124485832690841990017254519680538611634148641624381267287575686474336829390923479801642036659434672810647320983851728510230516754885753797099206452857219006438665952842391128070398541221414619307846185312250570710928768232480179016831344188952594582239994064091885390340948066397338278876504071590738258867851764611155197091621259035432217642178668123915157122770330717832318913165718586979095450045220633107435044907747215441914615272766382886250462200707512420608094051064261064584313887065021449184574762100633551391305852168393678868408890483254519869668061044966785279311028344409078466414676256764454649703279860805320494489186786629015712560807489894451504960781959234026074883823932032720672386230086956248283319454377679482726201383561013349592713602630369827720583240121137151362223240090351202488508023344095356851260764568143739513697597695795227641127711854458261753343476795213217330579346038562611334599453242781208502061175653271149817520438123973263252589455018167572514917537533026018704734933091405515016528072998362325300360668583122128505736474866148326191906485967938282374203705704417620089190346713080987139254019183094170069346200947685543622370293354198294651069880390834555198774277325531766562910750189579943629062288024155635798449960154169747824473693337281559844585436527848434357647470330877292271270112801747002894742151315770231969214446166092945321662891237366160513606359553099474008062979729398207340550139408466130942816877621844337510752251885538829535480528534951029245586574807584239212894467761755142494120180708817850539213910433184022805645794951987224884873412327028546585603441633785093769775929805411846612189412604174943384387839005894742023955915710606139779944264918831348710836574813821847107253772650917287688815769124698797318528995529446723830893329234890541919976319687238371323144734588636210186159233276725815430656874499674072387543274407188694609201988851118456874991646323808420085332626020237098433726555827340240228693235339587383520612410690232274553939639366280862099280875278595871775422746053541766490192191814872062396835283189345435758317550572163554729262393666651457032637417704137041646927618951840931315677198828840823357585437026592746682183335465781170392057065876530384174810692131339655282570732670713452600396468099628856400117347303328918262357456700686889826432979163582030494494589348720014353939251859936704918380516547250527599258962810871389534983293416479077667398354743161361924847186907959118128511170708966186686982105950836626609011172041222058607217796513966098279964710207657437890552126101502765978373998802905850676884388682013471739161474490025126895675524890688500319140518876606261170418949858078823345460113213753299461664419493528031543015488382901822131255934285087022594552286409133251238275905198563050784017551810410233704210381639628156827307796738385277360441076073633548181921947714904549784116627983545491568668349327461841501160724544631000859175130191148652334520927312155438954102322218693577294745378163129998025284273859843048670764770272801624143849065063764212517540878846823571908217146557795379737601646343274754319311558477412141072365592796710390754221311150057687068846722048336252598684057825558499187545452739759315610178660959595989326333771473591888401101070126938997348697443220217048894614649160363239318897395135272844392067464466550623218663106833545127538665933162198194972582610804020088679103486317593839596715090529546474281532892882064593023704744889504561250843958812416617528368700652313156468766523146930831760976195131527694866696998564602437969148441160516910759434131778426839408624770431084770285984998626401512963606940306569023076724091253957006120664480543071215650717286866506923524520610242814405839095358406048233584207866940173738935253379389942015976807926492735286211498515062859858224739530276468185225760711088740313521623488861706940200194004448711600800705776848073638379019905302576386620751223554225048167471230400170313305824084830072657198642618062900745024724823770148425085376560832330689551501466130847130872914500746171509861657319594271054924207909026277079833238496058100803186064046672268248789230058301098346111382200247863850158394763729667934877831994416798839111759047436191065597436249399816570612826374622269656652183013598148134896723857992612864590237883346503612162367065012209225349259105945141589434406093625184141740392041608100581495325213746251660816862083762722037472905397151376014092337377784236706113288530709740467706618933868077682353237359017474802099631647487039287704777185067168427931164386960493097858538201081057003087507368206241897833400034431734265135595717570751201644754744322700662891640354324213011851178763250658202238056822530853587042665907594834855735337866269370031631135619305450944966941062209121472567297700432226705924872653079459178145770893836463553773539795452897981112859983985430263037992172727281901553914394297063637505778928565179898411706657543414610709889956291253316904714434293928235777801780878759752038197391772814843236242739701650692208340565708237425284826838168890716160750351936756935489991096936990450059184303634263642922048017815897423329609893905722342124023007385846769783184166534756061237603997572901847825811719802771699142620028788416013295911089483464400017984433810709894276312847692307341887404057308635641383679965851475379073643659909458390800071249196253078699634019613048045378013845678668714390026141817666477968338584141808502414552116156642396591684302470174878142232892859018097899037619798699919597546532301274951686158597334568916963587092818339213290556611577751070743026051377223397269113339558596678106083932018775321078754025191824807809452508800415199297837793457820461147011485864794865861658701031162473155046644695712210618315331777226118035245729371244044040150038985243200389280588995693503847708971514248186209891885177709220233339539293861496528415520066388505786330717485304740471000396651052278333481855399606112912792883105941082360367988170474136544391951299709806992478433587589127918831191814463764524721165376884699750059467895532731450342304564756530931459915149609736116398645362810215477934610795519020771498492764397824213739857445222102423627693535327003537540299377779344583841521506672998624333534923406962744689276925684812245658456443603746569017805733703301898366367145698439697346553583430196115451518427603229303596030190018817976195078233924509219042549305730178055873824910527507118938420294707852933559225194839374378173557347582247590014681184104691256469662233750858886540144378582869052679562139171459086235766759777157387237205525349008338284279917946957005801177101431029957735178804440371703101132897309204091339798293726058329599046334817195973467162067288919566907679997166256160366311615011258389776332451166443431940225450652484172555887730994550221238148767751743216101722944654964938844624538801037413211098805783295043851735419689128372213700238492835903640090352943209503838464852722649848644743230332055909140684093913347471779889634504147347543605057783467476398856819621266874091122239457053807358311269434373786367227723179485696294652103261272284291251087965009911643759409325467288973097277296369601845026782849348433828814948922532835741933419752748319696006269365674427657639505648017035999600566088401964690321795500185643002693908348489321226236029507045071029531239436752140192248082406539227585815215305464479293277177628372324101349205771609355612135215586149750325815763236278754734221569855476267297705699325704174394710440234695318041871953189284988047874407271213144951454875299072158818194701236024838727996949881389831974183590614856633966477256733697393865437693641406686926822504726212350016070356575757948688263551657052805316691092859437154325434263723775843448917922231952748369598395808656551512156588040940460436885550118886967501325265644074225696056176654595755445907822919269065021810965822736237523701433937710208249467590062814763647010768459551510213767857369944013769803248324488601202461566549275540170168236517411347343977212335729050371676628007690543398926543812214008840026337170193218088372874770068619715414139906129638637152486484463974431357900241586726065375567906005445018128900741274769660689164276126787837105753691438060738900147531238581697387082918310781172430920228263056247245383136700577369567305588284704126194279560456749064149324489075866945385269107802943459855469945824340502338848623008609270432186499691173310600066412505866729728795720906746698777908572355614520427533282621041665564382597066908018438897350129279547308124724099558611375621382551975181184028578361843371040973071205530057332670268577344506489314599976197187945567043627100478514615001452972107404501356505363315522027415070405005142605634055609147467417213150100212033091446954396915036225373408618771613719200592677142762304596752625914979109344998607388364515310566068960348134269623790078726567663042455216353641834817341033417890334511151091621551006507141151679716628286110331650577325426389062887723620429396444950489206554731502123433138067234350360894150745565785480556629889992803484142634699159653963495635788227901462813873645036151736540640550997753167121779963246977048375051941337628640711978412379819287270714560398851042838458351702883619406896333772969512590636593084868795083878648304921002440739266864203109886430427838822105949689076219849459130911316592718695393452694948181588495056354897104740757788007573392443571102426829869813237242614850567359795812980569322815155868804042108308145682470929571886077401441876613876962113670385011321444718269133208469992356089798181989611837546713778992840669224201190652538007021935699259994144120484151190282621272319925750616183606843605977648965831766407032765682340120562163766530084840264692839891960564701458257057503305245067947245624756645420215700798454701904777989295424844499613683884059804894114724300075979254633690806772430524617687244640752321474428338075034156584575504124972909878300636367519556343033208825327652354259174217964906942874274964010421057630352378211725547217625180240066912905552824042307196108508557549272959373634860341525241470462906896765349209948454412631018968508159349063490268935248249968616349210118907302629599766967206132774904976813476123892271050801262678260234174949261256685099616782295382899404830079935732995113567637377367895979583578176424027814168401857729188405037922305851951379446399598492075248208965008652446473524360410964857656456136739207028643058555851400936169954231958705573490909862678204540676298735331511477078173962187975625497804889680622335568162623373338438587108486633828844160840129519408065645341588836643598926839932660649042512939846704930971914511257785312668948357579812304044503575552825330893022102159407242002480099885573851613467065474156133547885782797460710618249636065278607448791646532853037764942101076904047975911538893168889802480297293464147519884803087332921290428314380332595674498299050271757635969102715096097051986968810180066084920679936328212360533129568877454963373486469453917382356398300256793885161097312224849490357734463578892214941526663416745162000162380110213814386968691719564866023741899486279298558806976313483810810276462021524692113341713270753005791903746267145734305608504386293266994210113616642463294698927218093457339262771792073340268399633515904592786642875672741025850198178469540578777681155594689387078125217312425043099460097179550968822378313050167624364808587519190341145957429061938125622271866823532167363293096638917925530402778583043538905406558668228844396526165665249115025542851507805535084536262789387041364273742985567996288477416762600083403310372050512536286497216827359143893508429276377273370697799780671062764253102743580458980968898287287889039007678832244041073854993565446683854618301935685211287246519396251713399577409302846953569925088476288847992782140093615024087163459888106581892080756881680642916009303515959507308277494519914161630974145444464067872074246372910691556658263295728737168423712869293949554267995993998320271546481697385709935419201201573898792580098525951907540426089517976689019809189311292644774735069302093719156565319424894602096573115810603713783487725031352690257954127942534596863779394173686981229713701706882189453095595370747517644104535461198201024386938529501579763515347141131536453021481493708445901370509616705120792388240869570954380386620328354742218182893567724623325367759176775234622533679135339527166470323423440477537342904511696117759978970525777969912346572071352021307591530045203055253969635793460342565345696671805557416593253032798567934381039554996302429983793456436653703713728428426867755936746602118142363028169819735671992350057468151347930095409115471047677019898258989177077066780491717383100469027570199143681195137861923528221202510533742631449377174185556218686775485138630428310004148418270288050597881168923221846488338775920201946751709202491449375677596569819668511240911549815710385145738218499386352055328638847509016174967249526411354470303114901500587695915803054237996474558302900611872810617925418064720919747622081949040424847154186014774771935908353708828679907672409026575641545371598621607215316991882116405460745415179530021214692336829689934740610368959635300513895175989436581493435534057158701576036564086087214119872635237569170973625909130761185024717783418620881581999438915962499318652305595942136079451537330323792017217695788682600133095622544712536058209513557574270768073848000196151509856905377406149129459655742196738913724072162465877279962105328512961727658964108348588121342116796620880280525450857832344773252962856900984141082516873078127010599750467636112465324458800661912021329624530304398741191483805147708751940972250806651479636173432051795573821250578339146596842173303401571998237901206152222691190746145158849193608308739524928901769674159170423511601353598424806886972182126099900770007304904212031001817607207803062976334070707195625107025844179495531826198115191073056237543358257214902286281051776986527775994878632987045758512519431136395658965669152648882976457988995396756823086116972968332068613421761782428878194804850642309103214833100148614340191042661967138520763529032952137864133570895267679738205630313246167642100160994154033953584677567637322171810788663476449981975489444935309970950645233688315290531927559595499886230595843251950294006175078643680087051322246977261730295395877842640673017924193913477002075693130917988041191865965408791391629280468734623343517637199451634630437634792139443954379298756096974674145041232576545549102784345430016853720922110902030261987131875361073825400548824051672296412130924072212427933295076335092511542306815917463510415011019176206019345919213976194149389170181699285900465844978925112524464518381317652877865349722810854842976020923267463059828486535853913138006204327764076842353380054909165600674182504593801874980066705149663648402785284643474952290705763131443438137362174222508991797865696963067148189988078099129199626664489584948837083267522108178218003027497799685929184637542210783592832591219164177673425307958367062200423365114047956100616486128742426053593974859980130714654546845272197830008836786361393834426348589354766270205937486793517013874844741686525384686931631426341538999359159594875441110369989815865221950857147977780579385795539158384667064133620398255180920785285774300913892840238498077308081296356672573738505856837586817705307181076046296184537277225631922905806505075672863018282384684335797597111018978835657712501412443071913113459369511845264772260244536599406221476879664432480136531096243244879908922786326033819893631827128978404114118934278409412642771033774036257294237643564905486150147285663820695249823038567788537607077845671725332058043915814487701187301337738152333536991969116536570863464331900742276936918566752062413354872930372209371361608267718669582509342757717796670049826047092443854777212478672990297206502691294223142044583967967926019571901603149565523090345152885165639415552836820606397671564239281482384216925640922623676528367299699479349640870815589995709195167841162325494964253295317458070229953816491881238235757036704112155539860484212173246469379389827953370330093780407756656315025951527389011676425765544296240884284045056200666964186249879738298766188722571975419515118060466657303521308474301548899904596367131303118377736181368256388692773114798332973837220625434972894083153084135793973915753209800748600361060795553222898381614552555650681614040254433822637999214345594031816031583399732302618293610566747199260418916094528685238000037039962082197858230823677084638074741130854606228807251139566425403381886983476973919021076156753204994638851765459695356508661341896317288040147018302679538023225387445653570250528299542511196865133041759233093481042767051783180538141487702824476631741827129383543210023229087319498755744297940442717574723058942040004122708373772225829224074422160899434729021519239706440454917271231666986850365288850230537183986854965468812427134277203715802452097315094784934657516971398423137070875014309368079963572750569265489170866223245666120102029590900243764512138361098621368577088886317030332655752437356450901262464644275141908508027642267818286842805540041452055286928544850060111381587601014255697273382436769584390867025503148832717150692649181904516590752584310324222200247668304335813852900075293995036822279781858842532869075017203324037109109832807079995798826616350275694762160198998789033961639922427780996726295202743233843735888172705160242769852067492952632378251137525149398096829989805296530069558766651649715286733647710544232328793436510654057266881030908565036711919514193088402959354366854824608301963986381029380828791750863500278148777249822009897115572619740594443566696503516785208483868835932001962628703165293280417508989007787330262981679394430525448593824632307618620124139350702530091403254830488978880908551529360471377594308697087584562933190271524450189940323457101206042289128360149570343687338808837206405401067593807518629135717388067773687442802002989882817895659475268235037736534969255206920477084347725393788424820778965445156986849724937388409516243073992475227983207095637754357578183259775142328217620979384124790149921758426639726792307583466783532029812802564525810150907042831044847493967391637102514710690776466741950277177629826933317343978971981110707611931071336016297065088302934695361498630847844350723397584790516143837514127310883644488010387608016170536901885902940385765946574730472408555087452961106922591502481088685631178055584849470473245296470162676095262388701322173637312152207799412165084278162668128620478888748924880716605027634119932082863372069649145885663363027052349788532993832336483942723044913698976048226573568936976131652094787290851134133200143512743432184123761156735642033743927418064592958117711293781363483339006435398498624968028631775661868761776057139373151356788767941772786005612753217504212275312643266171941331399081439436553190435327581876225194155046362250776132613699747938585216932781733691846378905442322844889434404227290575606722563427888279451112005761037039268535609313641778267798459960022581176011497297675906939385732345724476822987679132096664955175625585818662087075960857572209946902584186866114828235487372606713557238679981420704715586457104285866876033770388802229903376383091575509780223359984962663445341882840067064607275308338497863366946701886835239411891696549742518708702032699704750014379635714063139337174642020185764568102611372083921035121381477562551343953349836535100215601405137949489923387012131563213375814240907726160429204952000347021892207505744964502982385956071331396323075369963926620881755827801364861121613841578133377942189756773459309171401041844548220337048302381643984754776927918255155948258872923008934748199005152997645957981529772693741973149003825405924113781571973219014870246589333788521913273683931341962909244186649247297077608800973908261715532208914975039560861638013169871947497930790409046452036289764471746475529457748346023765168135012724630016394118669012954599134320793473288966036511048112199889318011806571827997985167903221392164784302486789026524876955756879929789393098031140838228111704729382616488310037337681485103391720122076573639341545815969251972419537055436223803721548619199931690561613666461298799651324246737374004478242182668457185580016850688535964221772350752887776935900155343865015102072912731411368003930185303985822481102791959872198745158661584482491492923108861158750809049450378746823355490906779638944555948419068296663050023621242797984461062258641419195232076858840761008215784293344150587216615005318977248936714777861588452160149482312162199058832978335563738269980610500846776646166408539646382383647335635154102067734206379080778953282042902217267500396946520124669210761125629031798284723783671784971347016542813016783836191361444728400811534480053209537352077059246259039557268049928047296541659261490027931659456661891716198789949459271650287250548933312845870837866280316556121201210423858449543499477160715968389400644953723532715630627266082858279153337419743701524544998592160724755629089705598957107105372366415719017319548497652822166626495879536195173588918518923123764761100746208981770614351648542510885534265534728484062333588787931646242212059763801909771386225698933729057135416215536605175725605370211031770940746581691242790494816499982717365700138645741232258540935088086159448876563901598292557542805579908294753372699347611780331131730724034463380493495811536780509414135825771390968988093540229808574026880760397847716685066242653297830261935930722845675270477977959262811050811808542011765462090449905624323892443565302630682811407911037949104268396908525947357182118675067371017265070360256977570044374873076509376715779745724409443318358469506780055288458747446262473115683740506122605119394507206520845178456624006783449097853970354617921413664417278037871241033575845452920742076033857676234826494887663418156046051631856583572672799799463292288981211163328725178948284263981429050033756971708097152867983893117015203556360968306884469631384287521769919764239206830788568434885746975226950327854378095613122875001368033927401433603031774721607943490612546739881879896889464572353878624018820529335027296085653302335955347807830540081985831953357731880336943670857215616601460245981012168494445984215833961783088561318074110862477112481090055273646392396241894463203782931554875269388862056760829197415372509894465814748196553055138943164881440996641100950682284906518683222820896199349743591088589054366960682258112682812414994751430264585363709453681331665971031906840227460542292209503882819858719621280551540768008330763414408024350175531860972180141406527187474019581166809564796408505881627431013621850240377581348291375543675353738272751250408288806498218028713686478005756540578823045139299023898099667275294997060449938612495480179065639052499587252270081077291753926220808315493633117348385047568018745464951991806467727145438481010808344331890417162827254774419628818518906772933342101884219380815364391464123135387188485310330663976078638018450491040568064618055665848707697878569179651952762101205796747673903513708394540987506062586775868413288189301671962672836379371119831657962606437210098158789171894118401274631930965093812415082039319781262826677924944510808676158102368428525999133309284547833257296036069140922183770070170723022807117727554981966793557382074682320397747045666465801840150988330130532839979101026505660648095285097715662468788855765804630608390395043246155516254044273646112583723987761101414227902267105008225465684872624129319115334856636216007405499279573020880893280364714573783462980432365688567193292225166221134453392643266586784298564320072497357134785805163199316557927728346821249060051088710990216388563210808349205350554777935303559145221382352383473140352088259261262677025647457600707980174779677167648617365132216377043712026259969552659314751225907646621009266806503606623966677914035186952983720551681528758161128775160153812211501995981904323467521829742763687305132938307910616353400548180427292829903822360664667173962735161075400159194376040959638589902959017491987104177512992143857038010000448886221185384278164334170399802143104278950730680619598757601730579915104506146520894498804727835977086452341725654778021610771676118218032106161948656795067570060733306354906698017341570617876787531840947058052988038229598154205305359487172754542703588827068682153140476623330026671415875845636269128871048578201461693719864697521749545174020427287962209095528614940083847962396971288849644042939122282228702875893166349101222567132087825537268701951875252477459919848334657744554702481551644525848534009586558738677548213134088613318344408375090697923929818140096378514472075819374196989580391004778524229528168242463823210801211085554119082436461110992389759414317245400767881317865613528714767155773487973681979441133520007065113974243089272224987257514737403536599641257827446098474000138688234400191836369762292383936985746999113035075663680469773518458118476657302294108130256706780682142724967129286944111603072709602396916465329392429940120574480550551623316750359892269743527374757657935710448601666930922969933188280089460177953480038157132483889789470325904296641798649038723497782532178584498599259028972937776704545543327538516451716095955163377072515731729960549890158584928629083590846278109741570845511267977726914968836892176869058050631091468049639352261583984527599773980822185582289070007088914802820075230528125929639674769096126574983675893577038125158153266976661917882174648045962844510964819339530784404442072745585483255985450007624222641033745695895069896211755199470380534678749541373631060341361423419325585836129831700447359891671417180343159214337670759761236668477428560177813682385332243893086859197718013788179910613356385482300685607673905535438315335983689639434134873807972531611095842109752258072631650884455436546775832087508368364932069791689948166966977304508194945221261455171134141452394670983094335156143823337311888359238240470930968641628340419123915226687070496066885533094135451758526370484814711466602601588935376489432272093969063474758141735504674613245552348845527368486693467157292143400744143942721472676127252660916483518001340335400972018002772315770734980601882311438182112514418882795323634581815019694351975481237023948108671324971287710744550647269631296374549392074407600742206750468689363720203179099567497893177504573968381136915731319258024025583490811242701476224885242058111149962714800050352665539657736027856303454992786529170091397180301696062583210503597594917188863627825731167781463639233498936089189443008118440770973278377220957809124148007517092883981688808162039131285474646597711258686595302841285624417353735295773505863567070406122231183741493941587003375854252377665991512129291561867775898947313902041067565342165729916573164552773997271157994314351088792324977621988821442332757966921562135586492052823850938461470794185544782672047310855391428576564350930821683249012063638581375385451835117825986918132040237900469412996132805344700524006716959319248570437234605221895464320153193229065324102973795502886640743214727091665214311708179166040367748775925571649463667223467889387132255229234461303064137090054936441275220494892044273832215733057777730281913482829780583498823851701653850012407862673719789360803487216893292558494281200290744304556502659570537560001503476241519697221502517945102514616788658990096893782870084060290527568376622395020866439510475652052326702915762047977300352110754551181005208865731188211289172645445523955796824140347207401994731129190828432998462303718815336568652559138289371632792205350591320348851593098886316438773124841230066431044217272928121888327732796892928554192453442991248921821746278666484345771243819369663009278015764409398436396637587330484329815354449812201469409054529279752098106496378242325927931348678461308277873267077070031149387598415406098825628675965759998626831243471979428380703673657052241714509243582414215273819948419059167275353908754017930022449816265279683290497236280196171205272202038053581857058980650532462957350614657140232702299425093976379952518672268419199807650255278644149860966792141824648612838653634159272670100126471441478680483964479237147819601753937444753330461709575795472932706451691875504266364627499920317985499320040519849674667358860883759354134184583103636418307262520773030321672792482225558358482405536574368863174325389972143360676266573331798120959471789560101729776910430809866835874552628705911856103581915748760200971380287632287778172786991764861011263231013106378142921590641917646356092306535143204905132837940458201926334365775479011460439871303701584509048157796932043650022343432394040736760019502641026777755108522264207191518490944899030406382110574784861423873186492573940105633444908835770066527023126687237091524706052754186951483180256144156233169417266787958124531008057562548431749168170420399266914285675320938762942050993799593382526541379403732152420591281886294221183388139213887946537969252133583954705971021366606562234124604164877348809473790356393762143691486325750323698232046142976012617404426908893809949059652763700024625348639094225672759941247657421743163719227114912644638211374483955649208209209772079264708570291791139045584237254579630723360150457056449280249075117939670157433798053583607750771151915014054274426471644748328792990412843749258225231365110823695535145010301472293397691764002003359417961480918603253364233720875968093641642196164618208574447505026964945641257594336757056563917989511126249902849752684261829526184633104787240948235115781053447070352339810717804864518121477686935107576448242286613149618316930103072389782109527993754225372821531953319763612580970741890752153769605753091747523194622920652492122158281427869676777522944734749902178596553507817602025158086000595400642784079415623444791963053807173525610919203307167358522872062638454136819145084067505660793133796805285665269330342999864903209812201781628765871907837854189934732155652192466681026911098916086926846729390820460691503874648191625433227921123991782883504129620102165956684959454811700624020326207307166283631559076984637352756223454678062151630651963287892076354587518641845733772935150368820679693656160800269292130910603019631601491080882852909989839473656679589947789378011750659356077832296255718663869451058436057003657592976897468974173758222070346244606545024446788494845963799256444552395762859731358969395492326058700650848536362199639933920040912172809764022213979959290990337877899839807721211570342948131309771626596578653246034766964023669535185720046812848066501358817566129977413287350661677633032189654702122676435572334085536470987929341564278880408691195600032006825307314383521449184666644266454409337854854024556096405543641540979967238910655872685689532463796727850220772347514192194175209658092350148801501272255986121836711656371611701823504757534406974202285891634968172539469513709457764997817657738991656449671409923081867592912879912548541666680194832127890509371039865201013771622051293988383543725791697090005808157218138943336164335099432098842487653006055238554229403140165718638866788855460976363603318921093242221270823803067652992692506571769911263688180686024663592557988484349833826070823464118296890226470043851687385174800185080948082947574732294890452241932065804587071267264599709417483349091599696368301979944660952806010044898633646328010742242578002879932043897559870386405580564973068881161184083406279578807816001902555004456586887002038828948341896408133870960167229436252665332233072115560776287861619215202685793084161339244409638795154462260367376698025688810821047958472204783855088665254103484820770339030028160715003388361153858068647820301065545683913170864738915667631358044263613110723237182878167589382019420448508307735154989720060925190094313834089331114124425533486396463620794334631183954866256055158106088556824203886632267647398089481969840421471669460459608359658286093290272144163539362541334626255421053738973618754152775527602800959153028288906049309026553365250140309794934185093174731175154727140614702802985910129477635343032337324092558954996459442389809963729615198903152260930449886474219672353095500751547567640325463486816840425256660022635570408832685115454627551086863789388404628064888588451402582173794034450331988093669661014034664345762629798510900779049632833000663278128445426607775258369360727396546114057505839679098177556199445269397543036254581711531515304281848179269366580068348107408742516365248577369211365873706091263718413721025038460913841548790795128562275201054544547120770311297206401014156125601489421487472697732802103359143524702177576245924051490700845376227521937822831933400125182157695693209478768542085625141206306100223634965657575466377677177428835741582694782623742290634855152285143607720020915483697882794439334491629473989873251130908293318236316038248299222925177190474964051091864712818610847607926458229781601494792709128961086764817278953425850567487936517719912487795665772774662796683214542246022918404998953657278053926966966785661331062226092124210204573605265031857381167274822630737034127521770054257146862513612897550510435482406040414424754113732224135223105931312775298727732187346738192525253388671689505203895463030132606827776905125471656277224132161663200646345585871820709498079781639461549645870215798719615047001976705109613938606014328753841839003277259156655344858085040264698456580639900546823450153414385638801581180949548338135878591359897980983043973879134980514099177716646864387822057770658524367516439528654770769665773232770096645332147716734425319447882880183332891316203928558759401011507938619236778844697779441057389309972667251829242574921584488095402556449001994533273473333400693188002835927567651663054112068392208791638235107065915413692960843112147499800055802564959723396520777248297158206576772446004999986053482484918706987553844685459128749186195597461277414259622761083477847369201695538910749878508533053282601811676694763426088549707434717227502889042770289641720627938124739251562600512003079538204338665198755394643849224286444200820640187929548155716788578126958430396685381029885654389165928873389185840165165134326531155845198682701610291396707806709467327005953334429690220109035916588740497377722570511491424112365005933521885568222892312212354170841156087933200667767686302327176776291763629072023473418160621187519664806849787547889721583886035240452972166200623651040384231743052490593071864731270469407278460720407995427980765165927761068931931782645800262399496751620375733907559963451246372959069338100757342192169312523593589483962670862487674164789371410502626341143549975348115764748996542966223108692907169677993444579395042215237175893210594676707437633544586800852815906205325389776043671546702907814984267690273612528602908395009952278891099999850286314277834496101724535776937552396176782820128344594785847619871455193466769909556156434587587527397978055330187067426561082703633759355636245640173627400315866824709354133934000524687093056461893356848419138003716549559864707163728885705929702819663060656076263050020887534020827976813829205689130691228074930152357856484139104329063967713609752124045013303929107728833404240224438164661377476007710922057221115107380998284650042790516905110604587298354247743514716051023381780518193282086744705340669344797983757452039420524250756662199007429470833267026678431910922191807735449970144025572085108541123432916627904814494613627461545967065039387673889899830513199908907996571911520169366843126353412865444693612131728560323602815192476104247568357501613733132765664964673853377120456566621812598184409878280918225141213220562295674297647408226007933499928986288328981490355231386153614868787301259271949986311046581203709576803378440927173448939825752944169811341949517433415639103095584001409216373332521758233000240304427986412066304597205567456064951644654291697099163838304841882176832939372916474894748542947914308198324163259831588067902417339530242077839778411314354850060136832547392847399963163440665093414751571234425783863872711164655862486974732842024161010693422586435166383715855907509033409605636243191115404801387404524021376986375373918509442559940946997978607977796435701794502795702849232960933594108169563514149363012829065387924659779842716880500010935077736318744326596784422876058590441366086960862423811279710198469222869064734139729015036156450315714706505924839775470849341468505426063383869654071007133753170093137531902944698837719015325773084290228695654922076509887684636097773622520941214583543961702072929060139890986882669587566943968901636090933368161375566342509685618211408698554435249881389180815208146339879735701254987966443601681058598287835205796949724607194842831567846560967157025576847648680120603770327859876019877280989862000184005157320600295455871026804385947558514832890841023403434977821468921772856683997506074937175244966130448826896496778333298727439119136977363565132663252581922440386375030092534648963836320331377400235258354560727576449766670700297600241519540856422212285229941217150908787573147188138829647651042953870578947359780437629751818407833572521150999280216394633614155991068138270691849955498441552200497259259960234653930325520502114652085751050125297604963436815297401145528916268584313805082714129528105386631979748169534698229309973931591709078505976546553386508358548862458983709750573945891827970102175981686960732442268723748850213316453556563885707978404662374460339777856384636661157959630258750669425341788895120901367017215866278504583304901008464516634448362035391621146654655396741201356591334907468731566124897770828368969622001129243823903925202920286811948335545633173037484038507928040523094052654243792177507952038343409062612678354844550936607742569711711134224384276599120554124419489693384115637759139333578088146484588342463986024907807116908525785810730506263180681300149321720212301440770666503425953930429988854528353803798286879915263502026158236151223196997314731007855222772786712885293901180171734544150837328653308279013527840212175196905442160099586297992718811880823704259794343678774022445742478753644806439106063269732459834072967464381515839294180784014794675585726217624618122036221798738853766715518527951935838274887561440577770102957645322926150701740751112911202723815535656968088159082176411705453737744044142434288100665271399989573253912779335392000642193587188013949611919444452683951750853084065727392210996912409821226407874307373646260730951006515119759059928210146685198576410251728871385495056736934311685037087610690674350615157512040820396966196396073462264453820362723967375016414081793336643462406139675241565954675416801331008386978561529367397286879729582672200823813247606116248355831345647278043251326876335174972012006102768222892093835286856739526880077307618733550595022829013682677239203252653406315242024498940280888446277781207525985446222497961050226285223735190051697378756183691862869623005925160923701476800568543801892108419386302777357945750126141010422080189546864163321573210284635755778299457203066350896669981930557843373038280482200654416349364048186074663276308041705863554370058461073881524337504906955387023046321047208346437608492783654604154676577698906443058787010789221083531001702633005408142087148713125552303103151659206554358943353349710707992194498669511008971346867494803867334511408589332258574617839434332160119696952722776431948831864035381717235975665519981573960435561402634588696255007229822326031537705739201431694142937954682066666414480326076012387714334586138985674139733529036683594686636462518798360559955654489377434488728445245710742407762709153759793097049094792488830082058247395103241877081537016847665486130279676789844746839312161252657991967427460544851115982186477402220712333450229563990713030751313096686587231327656684708275373689815395454713893474724456249558705028823048614809791637898243785534968999337947672252230438283465049266878316015866274548097649271320419811622579025544840595513235961445667150155091218750115288648423381196001703179615905401278032840672715265718030629249573155302757375028402622153808355519997509179068698209301094711715033487019744175879095426479507667693755914436684040251029124837836966362222540436750251022461358213396865026550050051925878035295487940902956530753976721575124624809548580064820467726575443017934328308468017127331935616255178178810277911989340564468708471287386736217863326654894933909272236711872275911448420906932108206303151600931893733614511549383551249777917483413051378662820619771112540930612027559466621559989031683672532465241721045988673386089902393078400778054916567843851288348345905214795257887989305370466464606363238292757602493392251584862836008296160091180798207091132387860851348769293644735567144646030664581132741686720702943037271186341353306064972089013996614553771120652196363332004588626440134310494668222347921693799120940014388634245590994983996114968771204397379154565021686748563037739997812062318224740187724303119997419968119316135537648986965694297108236956103913343916198195964456137447553959735494849546011176100566723975156600412705942901851482424457908516973765595001529266288014809446297241720458037578815290342335217541628478698555924262384211410371806953129733728990555611455505155663447281627821040283123134427489622515470789102379873452036838518158640677851701182930089521577624202435533924235662905716488949380568682243891050613303256618928689098427735277800356219607939390450105965272046665012026965207911207432598874309700623023938419949023775335780699908345057799621281235815108828769253683205321761219645416016743902483619187958537463133602274155304961083214843351083038152890831868405586307092454709791267059442850628946798120930439617213825972667216777655982507335952565486552578851705424101401134986491536642607059837100715099226878724261943260004434058323012564189209302430237517402446856888290294475295781008997257569313574637264722261910845317336928791518526671435507684151998530995957826256483947089049423130030656462936906784296018514380494418782353263724416696037618692970544537554677189162647741620377674178241743796226832150076469976357393970187270657929136517764955327511858603816557384715368402710348365286275902671022487669778600556070045016471225429871781756135966229427153732741985498293754467034295714745279635135572823068693156580180992412670773723334571500034798693176817739386354231726161480999594491354400876827047650370840216689113713494124374640008782228965208856382027259228582804028140398185672044072965768999196901700578056816432026002395911534019391279371361643362572008117161332374231619204573266537852117095716913379180444898167891589524174378715522729027789107286530571013038165930657072841091063173180100757451654548613700484128002004175943805708060525742597690673423193472584116568221672898404677240380116817479749652589499320634657765817488134974502018629429839820352175054232380088430420426928208533453064508405242697109206686063762511520581562919671834388098889576298577377488429528405793226140416313729794591038389214777470398861263808154112933389983021237765601202886296432768866335050867033233514595298584803659345146210220854623621883092487225890977344554341179233279416976847032604106829875326261390769543678552283805314090116327614153796168076677533716250157970547417575872064938935998685858925504288475894464908387082733275838913563864921705406439458483610813099098015804426887061771247628727011432866057883566306390406172416154825729982495033382788858672519638355896288565205481188140797874869136898983240102462821697138976710848564838226335280809653468837455491573225271692226450528551572497604348003720151289557875491444418180583662096203133332511586955091152603969971787232310555789527298507782442186987587710444246919435193432121954118946536286572851379823267401344715230637426070872787690590379478537540198214356605385358947217419029584301135525704146392103187381346646094037573381160678562896197553256673236975648699687753133467685445889382021148642910131700749633992062642588114310606379333730605701306712333244851491380160030615496636386153591154548245878707130405234150882693352585220648432190877835622947349853932441162241681449664680787303952782589537195097785694740795173492146963415346760761412202546393699209534821691527231856054455293056567651365640535504751148810914343610459603500172136168890433046917283491194024301890436084687177010702771470509793710737931472253568273513124674902375019034281206617850857530412767622257839378819928117318196596332998351278759967681775732537781593954762118192608197409870740363279444331160621529523616666887232891816650707531649939221500767798205346030539514815452653539824701076993516493546953297731562167286089679708770487910365313466062444807705412933983224081972016704079139408037994566960780544679666530729587066038392352304744345386841395747518919664985694074193736984038190596930925805688392032348600156677909524633959497712173831180278132977887614961777466373220568747709833502790049838370687409788204070240602269016822061895318801928383552598656675086783320761438715031191102166562614367214633642737491895604908932645947608484273838783051297466756832527800699828354279981654520779117336940022748781726438556422144951702709340509047461486190677024220350427945985095793041596347881175475034961748945527119835329828814008488547613883555714092251390474695354345996195533164198223552443170376797484487508046494221494194191077563732938940803717330132671679920963085830300979259923686169422875396391560816191393660501074508951659139302415702330150882518038613176918983657917133902314828360749436205852381798494444919276349807683057074412343942297159032925478326961182760818105809939659584588220390922907942683997350279977099376712696571480655564051085729419233881581210196770889231297008677772261262436856922007550458800764710962973413054152982503938315970050298467196269565073553282688229287466924783512167881298729660092315520746548112233138121112846743925070462425531868285545758766894531764562626337160827697609655987277257163785606070221738742290150836942018063233742828465209276470272365524449451607020971717289011277115225274908805668238953818714070154223272469769174502809709816790728030535754994249869625112841927787027152750471373189161281305412301278885428121858456960741378122759663097938759863173516179968488592406375201556116529498903845735390723233039649002623020881723150294898688544033662836286943171411380806467194865049415938986023526211844289816671007779556517942163975281359523722345077288284487130734857175173130153937971420910657444686211930135810174264176821563448885542736137179098248993307018143061352947078392359050172989732004026370368033106235248344766623378687551245196955349993015602959035618011498126897198363780450595010023566807111504898083127952184820842217288567407302647896651531590902577065558233269660830946157098695425281736108165399470774239784559980848657609298193175990899924676814957832548524465821653885472750254619281240644330783174864622884180520060911126358228071602779808992211533396745165786243815974298639666350676256486511471632960003446919915237037400917442483797138887275124866623888358643813747909122583691734114151018435373338866749143954244232855762065371791995742414532929427653267438668596528058581252581416387046363887038715897319433433037468693628400630557069707600743938291660379467784106372250993209013905191915178024860292652638113079966340281952002483550160103783318859273500821217126147649222133443187921364855728490307658873768518730225404926782545958888906394997363311136496639509708538377366028997188574751433549732959132882958457623761882762957646742906290829669227947706115920434354301903718069472908681634239626950698548811316437110862184556667494460918050554284675555189843168945101512100206940645589268971560241271738843761631434966053195240596731598422008971236130587531723858112728744755318388697105647821022971055757605610334953798912182058772854242996134858384921902831338713335632796392511986756962306382259466687938256715431056699040253306275858239714576737937449516072899693988051115144089165746290334540361548590119464735859324660294381584203731275703726487236145531601469450156450553821626816371874000431438802869740460065618370320684882598627840655612784427171730909722829856335882950554387959635251561727387457174500229573792023400403968144794823810604992633207298195011240891191624149583051507312467319871190086602296178333806339533623338703726936054215348379229397765614592473191428152517174827880658247926427478688604416282919659371192785152202189958581861645340886811719773512104848734220914343471739669703542074532155336845129704262888111156769158821641382260148923446723038465068849573983217109992778934236737700450465690135712506217722444815720102625284789633533599961757487707367628062075579086368282945434510425638810080227883106682735690369336145184087079536459472025777691864740654433552052274277918226217412397123491655795834674178300853560517241188967708491623105749511554221481988131633986140581087120791191677687367982111547331930807451777355618230672721944729002323274556668169591188468244396335993504772117369227900485567708415403079119221594335253003644123066221668117825958521342606272377482325842357599679437182167390767488143278314397683006674815979814721898037056305152196530110862452995378362295068950370860684958502112131153189904861207077089960686797058718914469048836176176409634408939495784703111454641571248356010813963083520250366508407579000562822295653808495143972946337712267668693538018667590812664468712351933251010665715126888375585373046116742673756347337715611037673437341308905342018028166825709129050997438545371872226730093452808188140370928960219118821815436430052246301249770948686704893028406089606528718545281858105237184994050437490152805821679206044880111179124280838069980872719792843675113015120964934669277656726296885999712168978404393629299124938604842258986017978765042149212260915070603112459142269377990307453998899221393321072922339159771758538067646974708878519790704922222168685649351280655537215231913909547984190298465408661014617603866183584839169287458494887899158466839352846440834488542348270588797289308946374923387251546643324040762586302331146049290685544858032745720404815975720443434752490971520822777167652489870625554692405514271055976366806048511054070241133789675751211290378114482823653991628780572251329762698794159571513377227091805243516532735244228126071991966359990145192328466895743778866065708922106460316475606861216691479611966056149648747578404749731113347326525625769621069676022041609537635319638723111884124722172374179765260678742417522653776799323509140661783510419473973496353825503097271162574140193899224176188946324522482005033069596702125489139251338177075568201958535410402892396114235597491880541170864789122893545291531227382298026815614449374145496644657332928780626354667405749877374099759903365503695797377649163454626592541543294677390989489716736654890751547939368826808230031023278911832570857656616329415467834837930520457072811766165280627716965021143969606081863346467754232773161036747566027863242514148256601240168263255889104812987244876813433605637641261243539190823855818422462957893408782249805591690790247381436988263398018722052246022993413168228358935271332543768977287348090829372629571545031585982117531596137364584515928133080269590810453973881779318297712748004815069538059088199122383856419856931113412534683970036545830094739519947168369368551072415739808978376326982868899297737769481633088457444366086801437236362834224406544158292103358784929027429543763652017369206737345805893112560782043098088132900919165258291480023835614908803023226172932717139560446245806711252420242411771725154448836226577653832594132295779540108701458586079084762697097941311048200566764313165070592891265157271826955684889539097578350941636892263793183754732028771726235821185320546256414643852377334331996580254495381432933781859144510921336517399352226006570055053186837954878805922500501708671525367318115516108190965196411767782639884459118564658736882317704025390238965815255120265975834843813154738050941373479223052112662991867335563991115391936604788688922299814378945123080870007637091618356314108389796001422490341226554648707519406579025804639802612881955048031285369825037863768483205873538896045565770752855148385922506409241465067372333848442176559110948969113721086660160633479085280929780725738280840769959080133591802994400580104225931293263010698898383430364304005984703867025185319679985449231440061307669121931103344216609323601211365812414209818228257418337513752341057085001219010246700850332106998756433954311604264306858540330375973096336563091163358481436410424376055854735347184090108885125290770521018274113524627088635548578321165133155382630933286767496665181186290525089423365462602458125723317633624697114063718776125041884588870552560308909876293608269335873057916098261058174831327554340955024738316589720143512726845795444272863141379424356078052142671400020135847336126478334054422908612988844062734370182339097682470904302477114880962379183632679347207851582095204443814571353257150542041915336686030860741921709784541746342388211543013151426796421391353850565901792358035337733944935233059070071786658495991704024733559695086528851315765987280208380159217871630979425030538798967866426177203159512691302373953553410635921418671965002881514020372897567688570191170040275314393612282628890061341846773351386064478506264707339933599617422478227912302174147671622659391187824523870079331347266817217023489580306848363303573659017092986553416545726307549547897379799944323522850807501835841839681394128554868099263363228930080658795928166321617715005261139219752120949223258255370864540449275834071712353022814859058857995175703665733724700675205323993873821124129710287474249892619714442551587680367494142127512206572701922009776787683701132868914308823189040706783906444947471149555707954504939274944938831572197612845155761517778814717199636611350520373597688713994062044966743430216124928770458237248839420003019630911868660479726802920196230270826055119987893697402208302618254902572383660681885914028317996702699654683867244616149213441867689457998696184395843118603411618638433031484959108670327428743092296793575898553989260585266710927230136010712300609143730532146417950158392993600981709172615168162864444235453477121474137206947551002193593896478739743263101548460739294081125037081816562802827899060435851282110901619498781622845577562240262023575062391246132083897324914788863615060098659501560214377314410116094774045359951169601328987555485364755664820658892977200050569531913150163456135455539253190666701268994870331959783391153343708922046558831480102818439439993774492433362137987696854865883335020147260707514464653957420114084875945400422019978872142424411281269192051475244374839683695937955188962322456819344051630568081282659677365852893644305072456586193077191433468206580944342944178497969586839746082144296978643586760449575816689523235948222814761706310996315379708149480372689829179968464879880517002722288617844586067045489698548851604378385000149581806285832820704459078535851284874863701831497325868907182065978299924954206964138295628062096179549357446056017898912798881011462401185194773997445426842600118050814694880886094684355747926853184342368200212883555235125480649812202865003812272515360362956538002333341817656720930537825245444074019726477499697317179960450268097259088715801402527339916424947314429381237181620973399902549419298079768937094560608355611731210527350313136294014520998573105284215469821458543173705103245684384197585591057671070999419847293897601434652348037157247739412436442150632644419912664698989093084224704371452248413596143573545142686503419478131539104920795741057584408253593995165749255583181492575012480875170268491944324853766416498102149751897393001851822707273906151598722020067788338974512546100704536364210162881364544910951417162412214565383250641456114109642944626975899822399584548279310132704751284228365208818517408810571814124447886923885253290686024296789924222906777014180604839920867992656089000200946784986022184084051268885424673789746917770757097950185858693932766142235057270156768741291920435184528809743633547019402869546793332140270548314682469142777287554173637089761132309476922864499854410491968368874886495808198123542637109002535051191579477306085279497442382553788296044581633447185818648530847373958463491427583939814643243085904231346190146286697665576733165684695444391320333128880036784848368795674041579853700389680255085995971914894043130195132293338907524512803320140257384963417422915668669354289962543082318841243951275176076959623853327467301230878971951064093303468826513864942444462558350843081424456132776730713188869865386131881538214679968621422728224235563920369175317745748353331123798097700209726856295644005667135190179370111789950617975663352037592001635183587840686876587810280054499229037263242383306446306728658052818435996375231033756493347270817209435857828615706484226291166314278725648847422353057921283158022069363793958356557809561224302922809625764426968095581567296776192552150914777409338819052362770963089710468522028378536336851617159235299260415444475303980100805430810468692479825627465972725607219285333659472013967806208495886659919040152308352051140178553798463501575884140300846206650630327494365465694453105190518315492401805943405362612485733583493988439967810370351864688210987312509369074817041464834733344237783950430124568001726214318964755051840196583462669773026066832528386531393059219605565805161717173163901123512860417138051056280192538828810212372917140425993390026889145767920245370111141703274053342945014855699748976163815700101548344370427340323835205262656055749779260775897936002482351560575082772123092434258962767535678195136402258145497811471836245677375960726072063167687599470305234751208748476604298579707768972506468052923848205321497175215427132923080925921172547872820034584404459551058048592664703284993639847199235945967488078767903557286038698076677953278679232732052764320213614844716710678805477471194265085202987774045379407891450604138693605275119846341264889280868520621334403858243883064219699149658702114958920907306998855582900763781378136067801955445620284792443209224578895571020466362734633452199487103352660255508491275156471013891450911235554890038887544746520816878525164270200501415927566770728622654296136155886027559402835292664547848182470074712304256384225930765268590193666217252599380891459204963011015128310234612768818337687692311230139030478674808135588705384233886301993688012947470609898519748163591233315395366243061048908932900283617830067272795315665555010368404710601438613261599176021023091041410266757141173943131539103522408980508160380891386080818308199066458226898253904114475022644004560761441783400883378604723199756447280036288461537893118278441996803127936479688337320625859460272104605826965292454621947382254316630520943473777398277734215692298868586792889747177790188947647663629153038661806189582367328779677308308560047599242703437314966812533197602610854446322243897409621738140308456057870606235712911458560808988211582511626931578663118275864032988865841258660291277548148121628173951983633975573195110724219457392568990202837908110416765007439706310556779108324478415541961903073832681956766662556332945909996485976115496158635482120203503712296164889539905941483234569487968433438656492472402730898581162891334654370238411726175487266018027701062989749939386605786764005173119184450997848409160117390512543343737955848476001529545766446025524365974316267587900507417594882449469269550066526689846766914621785674224665001078170443438684583501482108173988496170926293799905357397346374711707745861430910669513015911478471050177067604262235393167247991213452701328815962758730166406116608485213286017167377243580483843701017803218963595370364016972336709916007662113583169538818547778413174389129387884754486583193091706570361144402051721430081445392269258041849025005423914772005784304203832874926290228145948285766331341165982601685761462487725296381035661244068602970189743578136993873124351311051212310007464586826599106191482211786730702989158092773919931112555878363728360804153448642330570743796425591029548992097494045232770654610505704416308614846010858188082860978008611848704314679157713437668497068509544725823308363395543359906627986969938581545031971376498808633434500887515147434301489334839585248253373708244113652128884402245351492375644737062831714519828773143248427003115740270320649483074782939291491130433058483995581256315756969401602644134550445054049592174528249321060616020308295798059818968807330313825222316381391106377481057767818162975211248564538443544069870238728300051040865585847726644419498602252402523218773144820328574003641872552924858000361982911758952930993550292786842000277283552237476958052897595998805806085499378925523019114389197116946407929327902557249456311086436658945078994212707139830235451021390893111507733186083037277236603259388348398135044851679712150805198199891085051727779069903465078938918167783012948270447557199365819411063383723926553843227949461692946611231812962348504126371825983443126454078044949816542894849358597510681213085827139402600789550852344118736701576055308115397402592313561831210144421388594228233504491215399133017819314096588659876516526859914000575509460775291011213957933090880133579039645549707772354439348885261423457488862917657529061599645022927367968590159214703288679131736146261772137157291184886755719472395503278389020393278301654172190817512531664991723322451433219238248848318780884231521407091562835965900065478183635046894832829446666129348971721955946167257615947344643600697528355903176784822815509396374007669916118262075572293995204355150856777474862190721371089235853458514635443689307347519193653673866361780298281265199654776847249936298000508307544069385797313451067834062143538107618322646704813268720203636259517557470118493885885705162518341889552109267186446435716032319107985620674356973745038281426595050372293440229035901044829400868496015152166544384979161348923466248146370254625271166978986284257026511304964888508999374002421062800641803225427297223228470757391009641846283750112752355601381009655645828640029906529019348380134413919729270232876246214444638642393200943996279199141878626625828736740394700389008771743648066789210300433068206982314818799911512692863028224878848004510613072081217841360487275564805035694919355023204495280075985050853730552019112329123804426763266650017502538022288780413702824717882290451499627084771426546354951541558421881208011185525368440539218306625774050576114084366929568430356939630045317229632836766837453703699188984706759354865231433594990953824784182392135479801697701898921955733136549627747268803580409592120150257448855909683150129575926822541213248638457105344929358984810273859042681771922027631165480192203610438895778742709975514481631800384575136658192629464053068601337457474869207255352247001398382499163914319176743002936055565984183103667887194874148816657893126119667879389000895494596299267855415030325303679790365783957609261546698080340943401508698953335704005191568992094566402821355599658379697571186461592985236942062095941450207935736193370231802854463401933308158163841975593250488163992436008410395695840198387842236990835083131908422247048021686267876918540305519169734982951327456559790624543818930765007737400078379360403219073238814838993527617489297058051220153711841138390976516058306682218547320409050757296477309473143919290736249016806406441543086336653934925607960184518609580085395146874269440787724989782378070797662297720124423581648221376445450605655658459824013902709590499803418629417386475173427752803407528453982145720066521148669366183742729691089022439264639165199338305827178318263720616236397210613706981107449099013236447867098317530105282057202964388197933325628157991900058903970015586987908572556103098360150681370323388249623436947845658598602926900244282043684982953456316366545884111891818696988990820519700604232600907947209962571326764096397532508428107867787269593073617238227650770315151375563872487862242622235400639414907348718511744945800745117929910717739518894801116234929625210326869225902529165649570807442037161540548129873778303234958296012592278115149650163080828936182306117536919826525770150413288183153504418577904798186554507099226382673687019401451580881804755077976928000351784636295750957260521929252332761854548305615242679709268972963467377295477538017838828677442509849334733742005550504555577653180405545610500486345250603488879719818166305004349943805784151698168410979495590201793292626480002431620881778012166286222248467870168674854842969658297810702741437966409236676878413339551166973036203738668299508631074974216954972030021528131524960710620470363056857639600393534819293320669315802985794389639783590395601944800416904358041803241538436794260754071134143026971702462719935288983943615314073856622462310345884280370723954630588414021233534326879552614046844852103455868550084071299621156854354863897451072824313644137825952777005867453309153741512295067488378641929151571417790656786861588761083042334495373266366292104411050796951291178303354254403988095684517692785486830530308832957238169069353359494170917404499960110088724235707990253225389100647412312564628463881925752172403166925525698647552741601195575934548460618734684091863526216423199221975672283922167059072954215017269224429569424235399212975375580246210433797023226009633958781685804068377936104920534086405923344222801408417223578798667615844683792217317361428688201856210186837502913731795909791543993681967505989554872520032527214600007413432636624803213110145437111024068404173276152283604725365256834947591661521819847375941662726825931933492070885285923265809919331219422499120587439888634161250053496412878116071146808319083172878482629418930301388695269936992594162255623089091285548499688866052752830794577709697778206831677329419052570079009194268527966705583190923187923907313700948238181738900813264407965833284010397220561550299928670134734562528497286852011764886194102508485512144717325905831659287481547612245219109776556322972749471234768512299275063517000100309906110169240264147685128013281069203944571153719336817326114084789904512358526627331785542160119077603088003507971834113965738978092171081773618908566987405335281304694730676741949950175816750534094768054214494309704610910922961968567880909248947521252441597854497196132226908272917104444618173001978309450813183892018412897440754761520478878431646933261600399725872165026759006375253187901038286675399019194405410787817226330833506540572598296467814616983629650429610616787090529489705650578807041127710970138365067803952279044464718157366383597056318254708499559494099686937484203279450760217882058995773808885923978837271305078855295716755863962135521644544690196136365864476714556278278982655731794342814947158587122301757917728555692036226364467310944977449165908372444134828593043623704692566982647430573157297806960959036486289785046160101695824645109218620941938731051821437898309453877671585235565317465084180849516961051135723957384232652580324435896445178570897556337802554100594470623854941695349567409139188410421214264639900717416050144797144688509791210267486694331149623455902975710434542518556863606870331086012507596786255627712283789760864934215155075310022760480025924521133992604596741238959628146961405630078105028299748939981834428296875449736429942639754345662299315196088935369763244140282575394299077519034676450473952246565270083922151404679548985690855972962889577732562219722064154056322401960394772243287019834824094826304131870110980920167976469995942751350441924715204836571444824519769711691681912340275771905470819059791302614768573938440643542058588691690560057958589015967454394599714797028921450750248732892345306627368568344386719250911435781059897362184109473949916698463435796505276982269173246989241380110443858063835779013122022891774280584719628066320298024593954921262760938225485241752795339458534056143706463350157069638896645247912063438696808415082090781456044358105925646673882786646326217443542033921439020108200674492688185466119705611639229487768533287804655906108661058363878741052001187014564193723170522952149815906227725559621808624874002094650916886606524817236010955284482310733757477211734498798581402433752012473058838408711113118424506172994340446781382221265038215572241831798285084635530787962203631104941970533593428634379216674962400935574150857237466643526203302711571641152015774919569888152442011827652528317430319169261117897865972967434407756756424857500724318232201645561206389993899643454222909081849218104947584401419871181761631259973306131050241821328699530975136990980561879343020191338182808141041199226854326592112162637665273872875658838024369519388465263426490956507832031874991488066842833333856959969859100685019085700095562527180933989176197555847784383826650722719825596374067811837137875341337866816761236090157284555979030343296666677751228517849983090095045430231252046520589664798450817426601143208276526038135593229107844850237367970458877262735801315979294837813716629997289444887520881268125780662361358342120740831959658598285692050297580380981218735813178254655686931391336368882135366491774409157259791779784462708810981112044895436813696112219105053833736266227828879448606194314964463307703685796926857240308935626269200205367335687879876392734443896690533871909582676900508081384999635274940234228781211621587127013903734441499594408237028499515697619266464561043093201163588783947329940091923918850527243512258310081795816492158226963362674607750862586647557648400607966360235177802152393757911758741330509612799856277857872671279566924325535800293505902627117799551753824666110936310957324399156248437444773884955594122634977155059294260248072660007968203240164574534529693418540171289647540667971054411302282980557576267040994917802448382120267242165286612336229424043500511327487934902852979957483639292717061690146439350462369324888784151184267271286672579852485151003176849993613039329952434214399344393265476774498870222467592031608597007140090959799854569693445940468348777258331389849048675567922645693876986512144149798859681242647448367461714075630922394484599673147638407452797478057786489902544731686701579327907250234468294168981283122620773969878741814410671356253800669438560988985248083589625784764350834198960765265053100368828232682500721898665681906234374624775138998206258418768927776484977019329233527856553343609847206637298540385684739729375624263589617844535589012538980103109322395212086724700370057015090292450798497330930682333784398235989254831497236162743459280560324423167179383361896614162105486458208578250569188956571811962341665327627672145772894279738803150749574647556691124249073621519529725036701587512945494587336059927276624896190928412102185336841599380652215901267616446041513207493375804081951331931304284947275489010326240217620156091033237993697885540682453958468431234306405972781349631905975950441798017758716122165625157103221921829166217953822446073578964302468004580267941688895392448101052119065377705856809196499054120129967816734894481023818978907454061875350840460061608169391629015125090665053806173440199047500947395298551016287383465224429205065855836177855586099229174155859729043907328313396334294939229918424083045949015222590732255511240341715700397193664961506310640970026318556412632960844827711663835849459845183600372387454280733705488799909235138448305518551306923228422531399860626596467288563979438454790460101951772481868756374210977701911791277891671992630932165427300638942531826792147219113796139054576913236402666768561272068057916114854001644812974179771113089732450554977103317053908814528239823167803335002374020216161745773055869125551964727103092286464083386129674279111504959348187148088253411622586897068307993551849269245962104595241741894672024943440110019477412035224608703134384735976299964879245161143375712676686397114983043927272862403316527421800009085071214755176205311047030508465838318342098056135797371371812267395415923044454035855116864677454252633668344757714987894487694453323029633996751889563487801457323293522455975235655992733716767686879551023171705886438572729673917999641184011219852769042151962328818913286851886285629411283913496228427119222571494241105620962476445332374378709318916784253505017584994817908154334341090376834236703986330165826096368805677745165607027757267866925048230425832414524606087845498895376516733973637121888815085919596791934236856737316947262948178345455413910609900665853353774174102009708683880214590906912879135594021637583520789001666181723536273998221679130630661520739845232289629545396247308702282965262923568443540003755374280930373929213839006977800117667079312392536241414893695598595307167022574478097001291602562871094651805978378286560905843063922593340477327044355938534747424712626113461892673930742462554117568702611550694143202941929928316255042552993215870495100899875045876400351866611432238284753090853187805573508945860606559779573103345367788714270451566882770885097689025687882550329385799534496614505136583942970814724477987526976657538115387625448572975668495558127341695282209302073860388075132560187261412123627252355762641705147764601150103151449624950945669444726302765185547038105567523412958955589855919534805670898583507781053389840343439588268048922858239594278829851820006869220023849209457437443925571295449626167557768356240971073792671642243451815208689629191904650505849692307154127444309548587000319352184640930849426153317626845604698437986081888181369290440931372470328226563369477675876376097612555150691615210728997565485313414787528310471797258403574080775870183413129075679076538746689986022540539449142930872073016735365413792675320842849273307207099234319140323011751729767826420946080598074974113356859508493765742275882284766405564351207660524235158192591586175486841225277368518590335611197393254198038318270360037639933729361182846089788383308262335871193280759397064530778974542739204635309639381014380594882583278359141926031204490876545098201653691640800367621627611037134935647791366903499926694722006387442331538612046539181721280409153285060741211579192073382962400680877903605489422622895538359488903598071991468458297153698274157465713658720920094638326920484210145629623425257117374574699915200671269383614937791312796265798605009819659071693103254847119812045384483841697373698058439776258217475834880654044134123583890635076317581764496315112186903852013106846124781273963063141713380049882498272080117102570011676707404133495263089834504890838222479175767087253648132302250288985352129063373432718971784929834697713649770028967902310278800352290067422454852137676130504091140460751827670871684293143734549400967132463397021552876310491495404903481581108035386600893664689674186254610648618497509153709060954910488433111792458405673176589156110291315680186925531343521148242817236373903200891999574994773313457129338554037745320476251778049077626290257940744265433684459679748634588228129092758270627975568129496237199404248083025273438677597922055158101004674361482298821377639308434605964500076492331908349936978492509310747859569674850106944761088250981817446986431204958541863325507530591405868996851964797260128857598025671625127115319236739422732753178329435607194594128786630538894532822846998726887849160958831077108603312826929436943601433488880475014480689538153468085997858613269986439899754554021690088949705326804556170339525738899464700419525921899844435058570046772338352964751884670299071745001288591196219826192040553083894167808564486552583736432917443649715119862565099099725175585439466727080456557719188159527155154745434199130642377955371226362269423154504502139974382459459609217756797729596516778435604395046941591757079682821641877489844084070149757339560897921778195795976413707604831134603637790983069766959693460038676972765453161844135114220544107809994333155616149566442694314955688454198452539667532896614675034437697938059666168843071244289090103824601412379183854418437358596819863224511441338413860167284416294970526405135840921103303428633046018567281979908832851690855079926715707942659981205800377802044217269152278476441726530465915554338495013794978874296570676167823469796686818445742658197354844926517353920023458192011716707692113565279505819123632272724932396166409942715442438964516610787447423964094726851214277910152476886246992665443176795320391941328997721757083994315197827798423542477549607647713720455960696801406422271890427812809053791894823210890174381232962433100902824702410138916718838024551788084270418287936646220254212516425740838984479782844709641584826358109769623698090841955206845344663106737860567669440624746196833018779067089672485098934669487673631110889466614048293908609403891807678247061306427088608501090123215963290529679148591709988811643652684312232435402825046366676055874247734664448016416321914212107086747292729394635759757933090432305394031394403239735129657584507041873687117216386355117283889130084458534369780477138603452939459543744644045121294692502363229556167351883090112680933431556670639662814383344253665884278539580868865931301958741835778357326883814441209456552598275846668685659804455645986752060385809121359530932307112700248201778275664175189439680983294963260438886424021898244277778852796141485955892943300744697724632657132479510686007059735891413539824953243814900820123292335689923872264174184218515386306411446570583901608379936112318789294178525881366909508859225386642055789431416183152543995859348937749101707928617202073775519124738457206990668434315986177558282256005663666993835335831368290446185972689248902905286244248426626520773211238340884722145917334402518462217621835843340512993029526532795960544961350784364734109342410383346316830274441329823047567364991792723058309223304343846420771938931919095317170781073264804090584622944477973689464494778802703198201786727494333950298132090756272366487758458842513938836401931583812564980624205828415530724294749892501494188827046325538303339771581865880779074220799614412376752125566237313801044659316098221751439331013337849234961617236300563334115875351914157978327851950094813426607899002481272026939335249545776679018293290302340893284295120511676332500568909912129374763010667901878211130663455954141357024851268435982941861213818424589262340924336728763330003495616785831422045586532147359239058562128341660898126673583047926027727876481198262816885982840085645120585540180760464356581003059208373623984817960767037039859673118296032367897789192223997887213695879431305708799795171508057919476500549345849813298847752110566050682455425594157306302398543456020751813998981879684827530506972660176867182254381160753462869424011674874198843575443673203710103750460098818162430518083103579484789278867393084230747166716924270064737212796789292897973992096006147692976055034480183330018754379551722111364449558257677350301653410945066890950585281520952698127449778592330355565937392276276180964909111020442400509353788298160533253307976505581190361228178941607144923321586449575061375887351651464010693287465246103943573142360894379609198887020403346024169963446624039547997121523515784797646087412348338099372332265735943300263496586175061010169327103359979907286540631113899658076977229007329532431055333524694426446886287835945548537634842258115592997223762951782256729421541073910575046569733132332954506703585199159555953186759687560328489583192447585681921147424640915414684375714321174556606831505434325428375667297727534099150852244500076151225170235037002719292142533727565074186850213613341812331528523334490081818486524580415271787122419505557388703327387270131479388423417286105836700183342824372131521470024654957995737769485924235762689274142666905379996854239344558857144214000783351319116048955092099436416326622988907212921283725999635629642546984734936767669174665215962430812731755405726610726405985868138408140351310261058083905996556867149091557818223461495169671457474063981277060816441137841053838329394029745130106547158247985029402134941761048288583698724406717048594101891608203218303191583018669599354109528686527597745308036445430763123635731047770199263662393588762534613665382116789138459878958135374354258914965508736195328638112119148112629082862171263387520112478297571236575086096585995261926695204815243279659295368155216830157975584701589103623934270668586600528030823378288086321134937223728842558909147614336397025683574724538905602502244316932336469687602158304333779126953420341943966538356621632546066642740280086756713523370662780606615364759618443176982596225407656728477828410335922203839345037856486116304541389546015067346589399264308459881169947539511664754720730162361218001815072716267710886131579389705876146875665060593700700750298749207476751185793057166561916902217517514405140573027300602521599798315411292390022011980208587412236890766947987917058698121361878565888236814573143318630523151596181632480703603870716777145268191985360024174442976483377030819419618117255347704485638906427506593849533956414988823679216952009002028389352262712132058697868661185980296754154919478726726050758144911708390916666229282834075692366457634265730883425177023580376818170500167197004625790866186741993497024994660832411530335773015814921990088660861120444653517050573214462561140880715417935841036928076183707837305062915675930346348979828048289995610310599555818890938671771151609765001708637571675918226721232114534503495657502591374531571771856911591381055275943981429418261513885202811522524169729446764863805757747746602622429110576562665741114751421399359360379780319351541325486200194473194257409960441659967524622924425251084976837714600511766019630158647673115321351951579598090807828156188165111951973138664803693220246368948565239291905507035422202924962893549380310832717133244529710352999228075460450243097673990731058945643114269850401539043696602612572003278028715083254302500488233043613337042303375243730139695020343080852227816619162181159360257814458723647735813538097710916488463331063420864579781782537251338640420379102119181548739230249463778789942038602093706258047124431371478665214656329217879063518883167963455933588332198312028198866579289064008123202053996645178551427264256768607638364165078911793600193218083183585217280899878279409474711298375572935189571739898741064548653700153742119327831470369769960874405656462087000696299045004760164920668992069429241795214360789208991832385860661235831463984313692109657329364737756779442036605683453348811779531819716927895845040932754321072693017044721200387902513926310974518362960506517239799142626966257230340959459595436814215433031297250017782197087705207868150231970770522456548675175499829850636751926672191363693134117662149846424499749051105943567974143471185964388877386071490944959809932992700254685463210119220172227260865178884814453551591543818612955385031264524033968469197719894899005275561838778156324751341217391570632875675175864941336702655001643203416586782510926791487492941751393848959576657934897447827299277136558867496436828591320451426461478573405234734864319679913515660557985970499420142154490741119238197645960292232208662788012682041537999713215825706060530106601595076738466031278300978955445565234460892927348197112415199532201895322653163360591656595659753650739353620616490197470069653515909165886196075251605409178040370320049001755685203888144414787418123308330812229166248645042897518090426276840242992086137211442234820289413743705464161369498627018503903073873240104535234373239153427705015111343801022475216465953492356139509877759221120525340980441892061769697542652978862126950072906036374829704465373674747019445763717884125090001723002176213423773148437851997006222115231170115513227781604572224126794891943869156815230018589451154705056667130979295650055846034656989889621403462182064511088783100717756104591165565994112628286853486546219876963753459433835034386437360515511253815405363957183012771985744745243635945266355764255186714756553909820336587355979069149378932977676375414748951255124893437002788068377259234399639045118720366472941181267469051596985331290810806397558299473354761643511594604427930569221723300773995500803400313015153759871319769685971502000284731902986622115349387039502683054991777030615403688048064995175732037379173743193883037426469841020198830923931868891663150699035617938681984961330084214557868835511191342824988551918260835972702868946196161840859653282417918813647829361191932005960866557064242879309926067272891054674994437177893680690832986375863032179078684702494766340032445688971835865978648868715388883559693898012263427500973903717094399148709930885602695432991811117324591533997965420783305732518548571480119209074259464158981722078648329182221462303160022642623090457292613409805413858525842059208929962808735717514990333171410542135439391283510880234178422360468569430075891408922086850752033148859111313290168712823005146159694691090917189204694590367359527572732515894916922379704893179267048519786672211476917682568891152092260766097433656302709217583950352384450216886586309341311960744886659586704130213601452708737081800617285889784113029537486783938432880261579867956561282325342735566876386170093332452233032117648225849953800767761210201261622276644928256197513012534517442863210322547561511987276011379835464700284490144039501582724023265527691071110335187789247300701828253861061262943145003353272588045693659717057725883685089791156137899146948388311154626205558540279081955253153509744266102320332873845733763743945247926240401597622685004511455628827401670278565913723514951115692044230701907790414950290641975894689494952728460925014569758659297222645583240531038932225424268952994946926068673487134319706354522576174961336583589122167861633892326363180206440034886795104380234625395447457283377421122595234340542711028498738101890752747861569168203040640254603765539547201930884344290858271703599054614535473683205852299776801005801796582233616791862430248895755447580028869164126185074026614236109136452417876552703347723314938643261026723570163085885498669594534336738315240874876345539354411189008135049798007871996613635290081229404856205961311736963391610230530583107094762731558606025320612019769693867706707253074500071718438088801702885160307199421865686135722956604496514523068233081840525179007130981100768673901766258774049051911984424633119707039576028603294884393714887874147770665123455766523053902001292050125718873202929412671571845383496930590875227077198531799030755539483757102140581178800899277760453745556561710127823169064024300686857318597352985749387322794898059265033609023259606993835885756912731582763613840304383637565220358191306895594854559512925376374203401129988786702139374466034644978278442366748120210037522063331152175077385767680480345538473383454829172192392414037895925012302730001168574592480236913563422672403172272975184809228072624955156537660598330842941602073680548517671380794874080512550420462332677273188969791214466393729568278933007263227806551678296920937731745187190443870937482251482621254918512592895349305560233323493350483761648320161256653692115080450792769356708856782038690706546631872863730558749957276896708416775016960919561491683490481425621857330724039188168530481150412449524296781758199581595434423921011433589604039209598639721721313559982062128173103743804922048206486082997848576693512427619951825921603975118805373648751998470925104311093637253232516458491409923575905907348611555359437326424372808533539244264587693162376724600718392333786098632252514019082532341902940879290186168011331811514554128372211054698628911977781206116742698066688045311824786451543773059138355647156487665143963296341207255707530466715472287027510653001336827008698828099785831284772956155892636071567193281857818664263266803846790154079619191273339655705597199573092785564243626635804661380373749026281392769271041825316096563251042453254055141696713866926601145470014986016292408339534350959482205744609126683096905741866995191650671225829886497217847506960591272450345940084833411747908648929365259113972791389875907731472681252392164272109659684192326626634536953207129314791821723222320515645108489679586656691377717942773500138964730297019840747786343755557607079228511500202788885810347831306743624563886070740161237108742260779322280725851207022443044829158732798593165087211884176776581512098675486044894872851440376703289605631504440890919677604090754109294563044070612184017274233439064905195781994238785919697732900591064101789581119866826157117041284765221917830743517108290568111985939274815114154648413224578869794019217410220091235912903349590541562167660297527444634583036282160042754724160325038259897354085368876300124860944992343260635640675760387967732835935368101715139674235306214023629802101298285252592714900923567986995628750969152267300222128257102432463665653472442360268517923461010142922912358972817804306219709267356218325597229174324483415834588083252961893610721151325455785073041529800170577885588570640202976796852012871469809867876527994501084777231099593490596711327924554354100323504946290717521672527657901436819829977456100290548250512710364576922160591885408730338682959272264253803827672603879101284781750551062470099447071471773754483970947565378976627187478730125985710078804459409507327819631957667458270863383145884647189495105356034423711545840313053594456990925485360278653684365947770354855368357262094240789012966637487763719088591060186714367501869827036435111329268132542161153138583429114747687293786575460980798162265413278702856723962313313331243089254790665390889952176064697650727006544123327362810499224486257087259109613525786495843216433733923906354073889873018031059047900476153758981468511135298473450465990482463078630226168387997367830865817092551257496074298809099361762213912816298330382457416934639300721823871292749749163793217048333831370744054646840967959431808905477198719950732259793790092044624751762506004796553768134636282992317956725950002116852570253382934413888755657046909994508241380811768916316506171735963630112859877265162373403405873823755514598301710815873555396695478542148403044379716504182374722424001020996624033661111288110180877874439639491817382267660682887755388343540360804065585594511565458228524812337270059584627320611442480593704494355954708394088268644355216936844955494911623029613608021473692189926430390917383721832808060520422726866232036040847028876105023186324267627876027389123164032399217047168231348225306782669980470585622081137531710054422585523875425144298636024723825069079185285715993136057640827001043330324155152262218946908103384438500502457017836249477971680994801682653577957208830901092771882324414428288719521651457730756929758442697130879965072563131047810271099555465088051524288151445616209848479610190828396196145197722640869109049378332230586170910295873769445221307163377419932611599580656380134999224540744504748569148256098846217198124653715526354235758224348941726978986657587288678634261286003290589761967156686118581102215711520800306406159704868443943040287757247531771629169149197652056258753581120458251153598350053936403769134774180105879092752521318580483867767967377465118012932470346776284028934694482224983833663228948554667763738277415767694762452051307798113561052244422102776482671716333318105671436146619331575071788200465103103265805395973998163454659933432591166978497775378570271557891038453549716705085819750554589670857832723001162271668074128861418184381022433831489479346236349018929671002363763634212711426766031482654112104856113237738036984787051500067133205753065129305068268722495294413604677318502538873142140288682431065696947825140581914857079375702645377419570808999113648828785809532401550144771056373859732155791208288942279626271367619739928986028412397765025715437114935994638205473166803281831918778587441789940186371518005952028165761052655752605462056754420566441177085521761815122360199233083913929380100758519770798446845520661813305577091752297566898729294198165783567419197212198231780294554472268654648657913392427975019803230281240063530099503935974654120507930127822981744642889101840018046344099665077588989959352765111527122006061864451922469920007274064681181624247997005668059011577689685569726406925303783592988660871332709244832793110286035702034053405048720231342223717094864347677003820985674772043958670656197911839802366395069193717415533131882320570931195166789210521553071687341306702163638453399075640058105761798992006538006260680442933559553582694029741412057367169906625694381382968713196514181900474666396963221469924995925489416430072739161903536775578125506955931961701936349488010293517809433793450735452055976115368001778618878091791951714037585163923977300490681424729601011409675830366081192230982453480137909366801226580077509597546486360919049275770193219911288918632242630391352552199276380902035646249689789987819952691537383963732108957278334400087966552742659291129490631627397974776596829062076732585304050546101455469695968980600520908972940858412710013556732400956789298304816779506957898232828261057560099079068134376214242566974012319194939575613576895658898940025004787520988813495649026326485411859249348668912385310692833185527345407260101506953302235269693234103050137810102246652441418189591809210970590084520563124164820719507570440009050851469157645685484373973416176220898668813681822323382966376561660228793730261242628995672926068760444471435500641323858626111747432639017996266072362529521091599736999058413043438602564720745731259715924107194361056062891326434305322414949286165011991205109971458953388998026372575472097635261571145827496303385342877988520453177750954719062787719673292882660849854762647858429214705287700660166817167618655440531904228196905836903564130265591520886953606897791704783791941581023494898697090124002082424007477350463559033511995505934441657390040419311088329798063410898163938232559796874875359965428878264500355682262106205637880314931972317731936145716913946599447418636018184107772119752668205798647036499598795568000024192257695598132483840415769274746862247409871255743390145091485855884470520087503081734985092997759394741893222546386054784760862296417311622052493064219519235336878791232007419821641177321006326134720163003392269294403898031111106080518684185630347646080805764705207640478034732296248582755254435689048861433686225442356809283595309439213834311670607725779420058690634279254672727553349162599085956144711449880799920150599568690259122518949292492891500127170134572219018450289181830749469794975304555925668529799037215285825663185276968293374437679090473203822042260300698699991003932078689751876832207655557944925506887510019366493284794489785051604206394436765403980628870690095531635091334848910201049081078413345621111974936850730865770771202865951465773052700203665847468535543485207761775221268919000729477272736976294490063952546485487478259706122637568654497312999206368372296741087577542468099345620840037297302972758863933612913714729885955126241102947629247503612345304274010301705745100863330324461025401391444675789914894036105408740052660726971775244993788539669063445580147281321946027361416367299244308037264048637717240151175534062933544976856032506229409992678558197922599047384820212601474301450892794271235020140821343669009746874103740787323488018403061619626652903500283210465981502714819821044977096371234473286165794858527045331249229659031888198574788892130942171469238782947173064370460132305673028377013250409623727214983872425977009928588728403383898809109832208900581153647215506949033229256568806677754462229081357139324910034048531536037505171073912131620012316297196584577942191421311753673312616408782384345816387191788392687362522203624049810809115013518773337322002981108257623090756154282454125682221713502255686460089643844702203820797289082648833698501912254462794962468653020570588854125221671901908090143267686646496586523783411427179840830086804804198364569631102937553473804106545163103818197000382160303514619850637331873170856715227937798909679012653079078153958556204416103439643384496055793144799043568035769641073924520162963655314592534381510037876493018947195309714642475225379205635386902132227071930815392327958633590361871514511981195707108624483981421524185306179878404817854003278863364196627977790901631225074996301765813581198167357604969473779980614199738439584865670512476665180640744738429708290059820329486124235141884984250841248563252456917551888892813569254831759271050998361195259280093678723014266224192963810735868339775873316252007257066202606339636984734491427968035971153521556223331164093116208940990444679169494874155759600445725513042247236081458777764336339082955466921997084973112036469167220062811008707104134449684796582998950222385450786965518213050957304535597037929870071453917413277406959976639621999707598477731752378318343083118150942800965842600582880436698979314295809927060703662437311146210909631159085980767783246992342916645301948483865754918871082857277724975186968741918725635493874551706827960290449046304957324369959610409177562011313323482056210231881965103004575739118700742045984041636505091194513011367977867569328731569505525691092625087405465174346790619651942505954609024587092313225273936323476560201919414525721307707520411516441109333191569940502558083550388743469279363259060827668854146118432866199234795967426279985562356115121490366486447285296912338714905814400369977952903509758751767234844990851836342007120500697811981822916605035867893760679839543665958056483785737097006146999173604583813208822274567879422785042240625039595063723991011343050154246085584214651248263604866825006286868573291696999565221745239387887968364872065873012034476429692022023945696912664894656966757624088881694234963244690401868297390920635551800221891318048632757427562166810433545752828245882144341513330145095192908230301120689471042601850960838026038823548295542360297803794745939558620291056497976968403107624032182595342181651525773195961120619693188406848146434381357599757829538153425155112096547979315599870809023456576811828866841250003713629943633748335472747683544689709132534458706254784793726353722924571134490064922539272869074807790025487648507192418467861853384057718917824982346238913393954428085456481166893158155710979226740214583948460567681992127645885959459243026337640176736323017219909084607948335047442831227571694950165966081871976899952091946172633156951173649314118453764498385811840200221861706259408037098485168363482064645512280643330441156571578122242625405379940582360652570832232578491915120844234692153934004401829289869869874802729292057262931954260458153795982750466359748531370463733813855203823493376828884868912740924730691067301185524702507825309471157625292432288561418783742148978132495554937226993973487085835574104839014465781807618435773172416862757549229336556247229631010114172802252066354856618775619011934183838122803424638556343835593154620592823380206530156701149080530008400529491058404057233351141898283262944528176816486504134335567734630701039084781990694761078888085830706679181611151041240675241440862179673648760639874364374324261087407711097449869018229630488175159782299155137511715818920835585921041176064485002486859442065629391422114600859631158836644368670543894956777660259856224256022835621633862070008683023851005344592871044141872396064270184401614881549281778277103367295893606826629591339281555576884020110355602799035009895433738966265919667196445571710894509502440671196642793105054655957546256417892007216757073440316692374845751031364667648955722291539257554926299747649670857281372888064308173284720253021312268802759684011953942222288717138996172282057279108247853598487299030862499070010445147573121195564115711930545156460605037433138704225507404622256623619375080940330769069698518075184478622792918937813733298046022629821203587437767835226370057102741068235487922300721402264812996591208107636188502520563097773219782151246448644511279104122628129344491833525486300236872993229834350888776070351665925985856299724009408890910407612591136172418698658339004124049424000778739778881277576251878023627543807967685002553376804271065144979091911290094918868440037341014417701483593741015701509938759729706469709131166867707968619689767778187715555213222352955203503018460572386937689584674274411860529580445022755928707013954350228490436937286159905471747186932054080080374361546244054069837175854125846218744647043262070201887712706573227685596076354318611683142013980823286663289504127419473415607831575293768692697649383673255576871599737002449971190701428443705803786616153127767466292095470496524209834996418829562758311237119630690110771420872129937917208931614858538219069941637694665388270542618872020233139507020701907513841393836673549751371793875485262919891117610699073775731090529964839397413503145238387102245506591159736769121025144296955272195581422068593273797752183802868947040212065973085824025179382298950461562940152659427915895428830912763498754578724274516191589080776958175616710316827273417068231810482341848338633409769447175279261740002581309587295841864440071956530635014934704221515502300235962284969880088083402959772891030517010245924270143630209189413542039109677804157204104159325133398593706388610269703707672253515419577861520578230063399507933811915634052111865115557901866066031446775272397919306115048184425535856143409491742370354398352256502386122340877320812193612512891062375086650149005401021306207170963825579971503167036578307074154510468866768160662466819165362903528262511224014787619963899848217771970986606145220795420142899467692059901067764656641544657628891555569155383015900879539103039747848562019650083728817584463759066270588033132625035902010509887899577873530430747395458695691884322773773993711062939524873562527878418740284573876033781970108286624650233104352002495414143923224523706841631317980712384060127842968073469064532315236476625940358200557620787181188293137493361449691314370884039977443925977156357450667786833294229607040117134501099871989171139063963881313819542956758171264164268598417266127964053640354724366275927062644855196976884517680473591877997096528603457944221077474820149081439637842046010385905317504379780906109698429403653137908377241083646336024338884174718477403201851302663684211759338196933938352928158902900785920864207262574125282158183842135556698292980694840802414293776077250125301065547868779819419482233622309892008586389889507793768244490392989928516116747963951751726166596431596731130416018739413452566475307777364547597880634224623779757845801342146189565912668668090499826201758447427690201879827695989213808742394112346442887851743054568330919021100220125243753077982215995346139854979597073537280961280854060684064116178151236044047720602017567437848846525929878435865052402871098542329022170932815120363296003021581322414348600719012232830552096287984437755171200859628096579063196626904383705358250842076826097672313350215371999008329547288082129885274898339586365826283748918184989741494829803668010436833793104732610737896160191902627770262908915656016383398079049740488257604741078530936848762094203019829317950430382078360550532928044122426275366113920336839033273182907208861033919369808327059537412741118746885087564794232263535144074816439573128960302883681957232415045527852537196787910042696648957846931608288327895119409595606984380401469475925241371024015936316792432831283298887441103021451954368624348277944199532136553389835988857280743144679193790820198989521815972994555393147127814993218665471753691111011784422583854651711540039564323770453380905102326152632616322015524051700622661085845232213399667503544192274750149660310958625575031487241225488539521270301450414358158200482494874068739776893189665744464959818242041359735631723513785191328672276914650005701658962856178770597355425060409158431945684746407217643307003976933359406187471083122372168626604158526176203837241654535688028562432996692585778985457903098229420600266594067129793190519880509603952570615920988890452294531934464373789700507232329086311373325972989345096661009129670214445657179080730574178069792195929186547140777782975516921962475772714506473095004406865903345851903812734881745014481917009019540046676245154621228979774220466423560636532974562900777661729059239753260226944542321146763436855727792267851484661923931419290942121271028145718692181862301639369632699194099516476227870241435613108846983814976954422308783614153309809050071277705901529692352700611420258305678795926912190500584392137055683657434548904259505596103307117656266252818564921925286139409846050022410556571635087033129691276291088065945561717053740018792955817073651584027344002618025676273882802499005864803095043936527929016933627126430225234274091956535341950231931484255831114631540815164094174041884458428676763848498494968739452968315423518380069350498761200805405740913725283700055864166693708924750432646536843818510864708992377012394360608307932619820505603926239756723917406923297218056039232128246839509391581109480014801301525855117434385582053633773618853799939598484997966985953892819077751901548491102023981434588049720562195565167522094521588500499475414800157177743138324313946055217501813333476854862689972759481754261255906114067755633691004892417671632616950122127419236160600223364147162658560487747103158864450749075127805318380839195418097362949313995262185163078131860354157054145486322141318133283645909341560034487622471362024361957191653571285974309488692411479005916786892854181950326505565751661959437208125053385180702847692753687354994791572190254427348351731814405098518108226821477910052580512491240455326969710572775517386995663545413892367315532945359333382216587027863783424646545386220051693606678199909358440705791948829643141417319486416321013931994885218874762308515240013069048445213913847175033940627539644496704316541787113018631434453714602085656451094362234493112816717227246358394783867259375936796994538395509850428982315176551362863888403103273738570379575772899982647953765936122754470358541226754169541206091745260622364264326110327161382141700749653087847588726922696599913332441679138214518076650306531223168443286086936332980200119002681417153881799868469539789509429452421933955495223392313376931071982959847727472503319497855468309220135149765317165748229319952544157430056531301495020363329371077127953658391090586021357613628718317567931773955335857031734928681922141278049488681829949394547165620515599944478496167100584086177153507370444276217372940509375463127524717311478474803951401144092606127635623899391477291956276642461323724298110231140903567719718779618736318371743302162725504610035040424256429728557321039282083008391592822629278759649963349726252518109091285154137316047404724412622137807840881883979118306049448550966328002876232488760363385834919788342533395033357509241254722084737672732652607407243045956800039781225493400842468634173542123959599683932592139671775500022414633816374803861534194279969817326335471410270813640662870271982312402341752855944849939865219029473390250645382324883584455112063929097922053790418825108128419621980133390739327407314891328396477361690092358011458696488651817474590383748334337604941816378287445349866234596646114173751362052122583500721941844244681836048521942253988284040681831820820150552379107002831538331263810882456309760653316354978187943103686173421430329133071804246072573598152156448786975816805334160680278389536062163100691212418865102549457945293172434651828656235018531541459013250575622561113937716873272225557968795656178405334131130888074405805071459894644451439260406031120805446196054803063872926255414590476041719247163582638097501474396248270066526291559982331187233609052764403360718282393573848499668388656889357183959785197224421817252597977236101680327773854087034533860078238451013115062183008406823069341344108036144128258118608915616925843176702405082693387018844133351295009191259919006022964841625801546331472923005979005032894236718299422383956582395775565238060212934088613731783104563873878714093613157979145283161091467423234040067127853089638580731508288050863009952446619317718698102884612955127243958147227520021137457636818848111333252230646799681106271726280463741402738488961478080457795850825991738205468721967622052731413218370592536997862875331496047758456378580676013900439421464071328762893899786602337247987494878678569428334506554444709670373440714068307228862190876790876604537178209416183435300479708522487797867374715991698865102484123829183126131719952304683383512240315819432227243421576404998429363535473244989806472452084665553363500867880090812887054062513428427051253657974275394889975338535226935245420394273797284221894049235576928051703306577741931377264580225977698212270811595456476573527008028641166201719786303736415365451281362457451800076648558311915704024023160736626210719283947266686106554491968616877437443239391685108240305454661548341086260874113456356953000422809745735571018276584610534451752512800847294638407362606007115024085833902901513407386115000146696116921353439924745015071856538533676351384302618351758733156120378945404345696446831750371904402819024929601964210652309428629720305960075275796173484181787269051062197033361803631554447300337588734788410779875337397082804863609664043614196207557993625434820160989716018609648277255488871122975851235650646231593710461073650250415513264176937080039226057002609437252713500455462872032718975392229152409249634102020942159359251230727203666292485702370771456767551733908248873946373630120716877043642401103454473684491866205398936832109953253175778518581429520654061219736432430612419566426726775742507957094543633293618781042798992724096427561611036250463192641930646537675369477060992686602562228431850462529537868225632102289236876546199106890901854006129604949984540978973344684890928078912813382992196734465928824864596764778277997143452210192489101581213457507237219526415613306764218109657653411198488815792658573837776171019769114037961061635613801686704106572954898004891392623611008462725662126262742879825286936069807330082133204388059020713653374539616671910000104628187287341333521110258983990227880305432289558782493519625271625691194255184340216222355339177403552328027154677165563877970901554948020862556429740667421414860102318976057178016710716602887325671188458639387117214884512985662312694847053201257844494725744800888057182015084919775551621305166848011410093135769504547839481773864265530871781817791091874327310867526561696975305056203003750663125678661532453274117135891331245558213185269193748707698459716525264823859895979329896035004167364659147371862839344051843757231000534095700485371772158369324423661380407313920048385999197902232931511442926367449416209499301853649152381210492477562101738605308321243996746942894687287690475637025563101638476641808124825292136052061432882156938280877973536731742291691522712626279066051053863276072034303486074543904484840554967355286533860774344905406298189367680559463857370487590098815186488517174732975489221858776870894365042943374838577448399782622395152720384964992812524673319960955958067500629473086661977823255422472552759178313138324585875824314510331032315683610143384214744911936359635069280733900171837123826336868819733018028569762720041183193463758862161421445113891733427117502303908345646033484304484911200006903077615399018449313627461916969566222041083270331355086140259285042145983246001803201501912935470039625110828513492349458037301655018207286116303826452969551618253943939749797054971308312863922741118813561905296155222798208243528709057551604904936168287272535090062544179507295570238583376364132233493668806855596798910502899279468975334846194330831568094741791721729388353018337024308867292456759081719693639628214815206851906514314775720446664316252534165833358970469090096135796084671539358832672461552826670792109783633067349729795838174789109145402174473977545858709745000827378494033476970142631732440280037523908790925331192784332257630697233791084368357354200826833028011411046827787672477288230377816436123543260576479631889204921812265990675544207509099598570065477485080318674792372088995800670408610851679160753687168923792986850823887559263709637292625002664769130491876101296665007379349880843965542298827217253398825645057831759406317052982505367335419953134318170220068108318951181641196262288027030529185004738489360441527405023196553404333215409765269488306211683662103783807543337348509386239172218263136467944932797058959219228634977348485683513710353415031586450387190637687908680764431122943551103174742781131981023397065787212063859635123407408189539609138661090823017220640513255953571727050798670045693958514705417606231567901841377705649228773182624124902256319265202403975010738949632805944836637718612649381656344764750074541797269112349881741229075140666328547776096378586122044895697154297404590573272999581426137596327717922152617826177165507262227640632680328267706707911048277735051347289665681093474793116638471914671486734753574283209382212180620075896526911383846913832180681235500274649760898561808262495762956933287626843777239868887130437830443780617640238368722892216522591546958635024971432456018408690825012021265773458908527881941101383299590119164307587774600836036102020883002125443204218095277187239835108857413659998938903702055854068137053933832394642742622958364405928387769705420922263871407441037408341726197735163913066721556086762303263260801422681662088814783259644121147195163351423091621173339956947421038027246420334994667352272144972391025478698541856936316657794317134823551609871910934006017827495063227312541759214434613436208631637792039044818500695923071386941280973379185878741735249975360591833181578320447841466159156318276457185409051346775604618277114903805824388995805944695016450474763588438781305523490313670337565868668279405202267557164812905537480654415665583323179040855205550732270917922121362383219288709383822405569826308546233877259705901177745800550400991726080631307108028029419059967686645722965574487338889425983568012789926987223213609533979537135697950783966447926228478391614994507268471738768322000785629117831478797022624788756620427216048449164526956298371368416954989872626662673621282488768855574052783145137762775707799279984446117423782047012986206396596338360416176132615851787395135968166905806095648937673887687369055041461121146888822196672965947695239449928654375652615225204166741975343688550593127332257797500441703224834469360675368610838152479107447457054581580338426040418784027460451083882129423638479377251958788962928337111899387328917599977730037819772286486345171254407156703628210412452111123634647513341023399515391693001848841272043423794412233216557912052793876559420939093007443186763786660483509346052468311729724901562913425438724929916144987610748525411138294255475863091739991805017425546092969773213469842717979847524957801850989478206742605443379562225564998586487876476597293610675418745806472036338279076168841300977036363205181464913199507154508114567969923741637210361507659509802229878694532872303959565412222661945982845693229744919744206904269010412314628987213437681745964946063374211305555503324714506716381233082299274596486500454878617707905137779704856537235003230501558431596680255023790037581636378351623100936406838166109335594319291856311608796796097689910843039560643486960722528381839998975802650165149492563626376544077478785034567722580076629459707699001822348587722577852247400430908379289451858512267068043869744591211513536184405530657004472062984487806438877464149170792790002939287132798263789786682991481705140537685466673735352883171869355626432290450050228700390432512606818111347172036325052967800371443826814505531489521715555076719974855182578472341702161436926039102883788326932164144661702594480479116844605197941341316130374569642065037990752134301462408340579580577454478918232553259721344755110805147792526443789942672526843113429343521075677616606353897726642679356207042569626590120288430023653221680733121125776349506297608929014454129901290551639364340843864773937468156254795444872370669703881738444328380617851345951768707127417338438790813610194268065930226126441181868017296524202576228121350879413033922823326004285020381921162130341411694452553927551023828913679457263843884939438857429310700499103043533133695541044416199736683471618006766489162429499338883957069593810381850963348696518834987568165445140537770234876301671075468517773560095675270415374146474956930367721275970094789357632532338612932625650492661397576961218720425862094718008310756623858093033518848730001061400538898419122701513628606362783569890414934380430209280092893611039387628925706377526878349235730566610995399734757885564787772681257564480040997255035362658041301266054652748689618719617105195192591451801488953113632275145472607685917656997859056299527590083777328400866660405389068645240025129910699587487061719186760751537158326185321900066801522105985895689087781359608345636550878973059356939685240023808463480793713834967432020560394002775167743435597733872326514153948120177442093931874462021276677137505313713335539849747423039052770777184180839182401317589717522638373540883335590929393898332434465707178978575874707277952991629963893317270766147659330434195522275904777948920241224700712244295411445138560868932220448967672268300621034340385414498141393426735330651675904665437064090451866795654640633865191819426984449069858636074199548936416916533810275254723751292833423457598683144193052219130351693888144718471139178510883014065781982728482766006116401296062773698158884054746859760977518108242173724551868327087991825630594573355219922862215044524235263309375275924751760649456067609081694228393778288856511364486805635726915160109099935854268797134236277571817368758955484723353922439349568686317768466040532018895807914670239406591049198801992564993718136341064922351485325603589387130143665088317855176565870601198571694612329557622574936000010652382292422755678327989465379802778286539604424175375052098102212466777485697724954508802246432637515971350575614367295662843703732756910358600356354640040997828550138606196657108768519188760785771781212147997595886937657485044890290542936910428865369794964388140326833351639739924874651757284047919751470796339029289463230555794495123129298475026544548691712743928031635700093110638311250486918404508546933707338852661279532169556469043340842896510951365622412485113649663906235703977684490704335417783786540417581754341264041620489429254235097714032750599036904746710248157987235136536889721152619012627564228310058036578946766821494212114279010834999478915189602593435458667115313172437256860256641693243096052773475952824424632383707167913028376834420958635969143630675455795730857630650396287612092079755302983839062115147107044715290932962536980447276819083874443261096245198790530827126317737211183513147318553154912372327663040938805488644049555746451292222602104475617004255992606918630951026755533774201384089228332390501748453074250329491551139755655673561871737253654613218576698052033765389508914158334058024399960984306649117279772501513322508363156114997368707304176266962230384544287546814252859594623344834393319067369516412061825218984060178104722579949103335872198423617155218808213235622968958958459305167977943292184499706948047122241276696437393040960692024689672974681588568429761046557328597891695887184275433375323698736462723744603137530014946157401985732079200848162862469239944593213997412365723410769139922984753608445685145117011855093402043480212153545811150163732279860848338769871559091850382019090116659745647307673775323718849844929537082516151497183661572298017720016565206660415789523472530568064500566605672789536134851599315240165439754175253271111973843035697595861711181040566409440333422413056175840924672303362882138136729806801519994176137865287795874230922517284818421825982735379021435857469532081822918827173006269378295174265786686486825909175552289765751712391437369578292118782008007033519693505410267722277713409517201744045810595153348792274708457931132187350868414630542963304381189862958487185354173428339813322722613210420854512212452797440284457826897990679571002267285003259660416691149381266363234595516415420753343338007917719869456757305044718668741206984435370544879915302529282370759450349935600280600672622587436715829122559491741133425497327679760721270809062361838759487981088183827852748443871518829930592186682168635521811912036783533946023501284028458364143385624570653549313515223233702020367717154956260724066199677936494705768971479159565729878733081924555445701302693145860246772522186135029605070871134640280662391795320285838569503969855906597172279939093557437839869872304012082333900360982883576767635397359535477100189642027146340089749892729652410258283126072160815612838067092080508113095572988865113793089859528721565589652115761582635677243055104967718372145647820191731354210981536718360864511969406742510099922798605553641221935416515760927587508742598597979410695669906306482009858046736194004346094862070876765701527641020950139466965185443546995158624189491600362947089431032976934021143727981373819316812484328720840612167316676923142859859955701391495750112157210986978306707115423773611911137777506496561200529267581757207623619049437362847671551210698879984066757372351673384726357442309686539919780139997023937005022910614793619204120692642661115229949720407340190519330949069318155482067671234607700813490292961519231364087920223959447330868684136398360613445140604415940904067937178268521273207273611023471896483587304373150801231130347619534099546931362822438232136474740188628719943853256532168574312150500572573725511614232372545375398891402062540838767107382094889456516208592715695813121462467732653752654466057852659991951232641352040037750736259388468910075600524987233134051141325122475085878510708245808297428468016334007222518659158689929320800707780058685062223313917544097174041616125581789345685102301858094714831816202841262586334389648199052518380078363607070463560709374047390587836309898888563179502681881105926850483242446287528779416032581585414434861126820292095293071333868553341478714479345633149929259240786197320080018488982263185818787736363575250937805359664787572719100777842771140628507484756566769779525381370403431497654948163385590532046360069190058186859915652805671034298107210962494155459268706193223810655240347485905235569054078984537117579099273549464758386443235281301264593879108160181562545649686846184207965969555502453742849651085496845053270201004253189001857220530860681948951850567229532588939363828938574456166527868469437805356821370765447463756659880975379357521466538760747281505017553166809680915796725257075213135421696803318512872302904335800733304369068351080447925084321633571473590900818978672874577562246542912683107525342454038858137587682541963299963446798730483276935155774155681077772222006711539132723497440678708619371510518801348121235680163745078307709111498509144438843483491446758607844254148416498294991338151210052889894794207916190164982286426550288873663913465615980821315970019689378889574228034624907502202093668591432388726851387175687892624589246346975354774914961487341016413354889840523336481558455592101149892821577919621494841178637812743025550041210544727231133256386136566578640549855012578013116323535501299536662763644021008870733501080782599161637981560587950327759797998716937133180179759311101447235992457099403149821722525992847002066058074254644791243563276314339750512743483974541156800915631695198760462428133487203466052303902492849054734388859075511256047940186501763776637557632533142465271750760491478832735140102162768457379410644589747341566297441204637729562891494402254399583233629563480569153960945999129933093044534048560733565556059740564459919475853087047552501808666891453670815773373047996895375865771374711996151118820869233862218183525347792158144712853928767839404021767767750726880757245572023288139836422083905644165192683851947431919769156244242450617139837099614206256275728019003135858087762137530613667394538782885941949629454805292382411595250124152674986711579381705728752101552826094523442250950759628432330746452148827951453969057523882038300807503470681662667502479026580316519565450196527220640240930841384681943268628551283204651298220651527119158569783052047756488974814882443805571164345212211528799917123876757760963800274916228823607240253262649494730244980963703824987052857668651524875197366071129529004148372417809810405082806366364716038976467233656497670436961908810577004130111265302824489435841551240134947628915344445977417454368021555305458219547009396931916564213477149342192929005682416674030102189459316629336387505853127685443918223069053594120953147367008483154968763909183404807733398622422084714566743169982739683434974991392594744498225097818589549852836459866432059944548849539867664248760228675295799693524405830746465437020274475853101192570024683230891903464341837788153548773423913631832861345230977120783302146959519887107839791296554558539442562172539745246719223041420553020708189657230391920293231897365988758006193426564682330946384977606052243603536362234815160486184943417899312632062627450002077877915884376723818372634539575214695492144897544826094486685648622487949947775893309829553676520450040513584855325107503955232626700177855097841379911361140488233051973523444018293360645490898542507901830019132388958731478711598715341800163886490586205491646832107224087196126434206405546356808103362049224011969966539609410944095083959499008737297661306862472307722684479938538128750275159436082531625450594946228876888766534087861710763166330908456234107163867245265219999545214638634162122608476072129895709986732427626374855482406034337829721803273144472724052234187762001292975996717939474482296108992913902116488831290691796203483632460912212747702749171420361418599686975893335553259120540147652982729461967011467169780713288680020969724421150235448746559875409516449106865737129451319346542610994194733659002644671881301868429478015501010984856345594609447967340272722905474550642768166910333184739040788503154825379931587866308756801993652835518792099635936823329667186494451363261967539912958657301936304060738463258460367358339061701244753601551323104258721313325199395796801900434480979285933712382997907761276589610432422455474713689051421198323662764515400696028259898273158926487673199414522673346018187843624923352643025047543085923965776780624194423649569350300972100145576440738456769638048228881791567583341788138325197303564187071752048831991587778291874287454137638430131893009293547346412532477360851617815209139486767266316978687799549329761574611879525414691752729847276614412800032106824464990199798079295892607425360609586674705308286049319071142270468534825967140475689530794094218517382169004586526479639531649435184188660811330568499886378439505299518384222162111221380839266149375615184071787505106918162972674990481414455599071952271614111633655016795508371093462348774264401091881197286128037710399146935860319583637306816840540432880054282807716516113506834105918557401663505048615247857668149309177186151956043903267959938642249595571575058970979097009346912985247873197043387024109207788350116124048202002785534294038130657153787908836407394327484925617734087377583724503200612510607286281514146526777607587488102375152705154889483258576059236729056788751428177291085144399927702636392451808992963924370564745730870084435338507443326005324305772179963827928781204853782981068764427395328059914819249182724389411487746272559287272696154236537476228294507905208908858139901030175268750973576274633168407789467019803174235785027010271669802397932119099446418258847759200272820950428293302700762158490945723779021560468004693544612952516918856217130407475052772589329089915742638054159551617213799373043803524344184381283612305973117091736790687397171563040592231314492138842047167115057579034412444758379462791182271311494843182162220152899105226599957217879392177430942528185950044071412438906330254790643875677811751472237809083314617481275791862564962484739041191309476087942496025993350525455448728289803502783121231435218445217134431972234262587278106655462872487376138913352982705174516047037135893801675490315136537911030667704875124172504454301353727087525669359652693894736046844519253739005886910215539528700304478843408289462979615495025423539901294636050539374441434971694159617515448643971876541964006439862039516730811488832779707700683892727001692224907728278895528577289400431433814404811935390810372925783840208219998998832790020487335145191724527043622518903354899957930776939739852334577950133951671599844754375440462032023718608221450766965942376898707868387645902624330902530585836991815815443070906746205117719036002300487875404130573647454819171290671227398092786289357906593556428534248657995976494877715298372561683835137959056200455493034222956256235412681426740345840328027483433429675548637495137107454828873533328145517092112751041819375290243679636796430172079905676571215429155409159556653511855618463268701298025563810756542455459715449051059744988137891539418025523069050463941028519310800594504577916782725911266405458630381613855861012535257952478229875221116317011827367622236396682457036813589318738393635826301297900456792987194788433835320455581904328874065876929988959642377256376282014060069142685316187681286253146311918993355550824445803911234010522047007052355052462166820514986504603378228360196269748220290263027432105733679231403032983500683381233974489843696391836576677180927184958838847989269314094924081253561343003270909423287764403462211927037139359433179116224047238196518446418141576923860449105276696461415413489337365718144155680540795333056345927853656684084955434580867964481380800437329441302027510196072299955592894899707988397878873560484702458679397494947675740888530015295740670994231887615166526803220962187898351017437265585240102405149452708418970398924453016900098120307234614941376755659177138119206299168389506554484945296112664229679595753585005006934750916559679243912575418219968891579669061962938128401949180942750175511485010499349077315477186183842253938257125864046756661442567061176222303119875505596768312646546624894722624112930729018919750102992623408247871520814548069991653517748479631353939837067266734895327186915468724990923843631996065607988211867543906282204859139814319635138288965536851257060297045618420879881548231753194442548208639263281521287036963049696792512013863533186567437433974176048145241752322977673836756560462763243457045483829928453222077843747001654205217910001585992707920587696230462805486724508206337212377887413383991316880695900774081505277962364318607288984497069508158942092414305092571726561774497750065391514187251121654196774177094325621449474957995103688282393489104355146573985601180974214147845803962581181042202451781405814687181575961674175040814327092329439551112926437560066236930532964853369967302861971664185080692354512780523979882738509890836017294645529692910960535077175220931610366581507811868633668217498113136890352877895347610039127324446430416763246586885801057363243185367953915539846805883456146469129648533785806958749455342684950327606256359955836189789862823586692862759865322399094018395853959055572536717235597883122526493904640943093592638168497428712566489538518058095332224614526045486846599660636273854340128681062243141284019602532717166637182797236253541231773387771455860038788676806726672434467082469773038909936820997834769965313364906766354750910718564000898204671890314121598753311147705688118521867289800876259198575876242971446873459994319024521620250896933639829087975991537544020740607354641660038552213079319378600914904171784699453800178543936714998147308467222951646475682944232436530648186500424005724420304528645947502949421969685069463874265438374849889309022738833705966446686107283966137683774920812045004963123002956704652092259986811456312937222368859156296964313187866459458606277226144923090900691643209060377422704091483329721840448735929127206663921739849865453725767840899572750049360231100623776864109135545627563411214139335637462400692149894610263277181344505939072174165634095456553906516636417940909363027999381788991470480740591104808455082492190070054717396441720168185383412602950964748323032441103908122696915696360278164463253857736717700222552026948543087463813779530540823195875130824917826824434904172428004143413013186125099319721490318062199080749022017013852513690933393144342840583825473904148221447942819696235016309438378965267233305743727475935376595076705290932980520030695048172940819866316101361850294185217707693674604833160721512955242872608475123101291195734447794895774179948220246164710319566452097436310643569052531717514707356200633094127464500302659146581342285144074225243800947883191477553902902435942885019768476421537121442671453690521515124830098737283835775444223107198013093716662151903268169419149647937169378346937564542491113071248429088178304937124302697412448999293262634393275743697924995076956915513016703290263688313890227765141735857772296444339873786813582708504179402654789223959790209908351996619323152775463920375072657722869655072375297627407116602184320871076519071249033048940043243483109389118724460085991197991262773697147262410386288835767876516867527820086711607125872273941270554928846551694740847710523049472234671477788350358005673297218788570223372175941280885198247302088332258825908348784866933961166141784058905326170890161004477388400554640016224684820962607308393479862630760304373813992191768483095597316959559227954626115455588579083154498367758867652592448083818313800330351463436205126675531644788468203022788305273701122393107358764768075495855741113288799405199171099131614468564902113469645918747905959907101980399064377452123965690906455114572978251667406201070634782687339536569796629339583220945083200522565752021737015424380071315133397131441203534519253404008968008511508953952207613473075804686268757721605803935916259973773855302368670634640627842209415493859593018436820637442612334476799831911809946117105741968340467210934266124778273250971982848623629429592537898366872209267627026700670200630328434965375284753483942497256019406396973951956462982282234145295628500998550186319008224272350425233523250913497535010996325782108183246621681850587450742008786402437022341130064818128079691543711838201764956766697835672432052365007702467241134068367007640342695343865750263258355869209615213832550658180040421645293746938224695675619900524646933452246086125277240836534646066416401784263370057933157568901746722679929395701044675309867801661347188028381835484915740103274675894316342280995675472494401816120944062849988149121808413029684106866329634457333229844602006209891644604759944065255768073759666645147553910349923627821364102760233892567102280467065866346008703273615688569112624709138034370978213252724640799906115830280620296397672844287259950917873651526566672100082998123762453183279202270485043098949102262200117306943493721609916307082344008056231350053658150714429470771069340668923536771561903414738682901190440679677685429930364460642351474714331463455164675528916208150801455638496310671330495825965098460786360432253178391104213724620723509551402597140308971570682443534550954336706737750538145059730402244159503111296063568330959089975853589813339702023093685065659014898220514253138925782048683207846792973390204248249614765830453155690466788152012864131620278952434431104330025399407422994955270121927923154081051882358445571958146410037531555082681011092502622053971534787128520428112110332583675049743076286606500973912155579427610309059454864650475935075428999103917649356087236929323959252094939277494128585034715326306107312276352517604825922493392473055938223735180606350106956190629271267995640837862517918874530341883428517575362033617189715229053562284709818829666274963287936866215043525521902692356497269453597714390993540961876626020764210405361396972435641893256154521885709129177597584389446715606138690175673902832587195826672570511553310531928504874647239580164672465916998335056745058848000292027339217963184569804674644659725140243851491075478803175378183888241830933021375202927851857523983164098271454432373394768177594027811654013681272871886778017562175701479160255089945106821307999472706286595557629611539578270723525069827149913762798822546932665729826835004331288481954226335405572888028591552909459173346538456631294985694483193553599723763721436570898234413127053569407709792190118483315321255465586083668794565171667101183764834935920981435472652859872560654012520844315001320905628913485552427458390056368686673049864188385422375915699658830082623504537241611677689589705108239378305400156528445063923481178046302342695213473508424993722385030321808539786613582024135567856537767867673255283082913551411399358074867899901197352326447147577781966363304692473981683145216142983772192452290066845227430946484304317371499811004108685660779936262236362232200499028278434185693625250181119854264002485892006042902503082560130526146906452536077687929769271250272220952820608910823480089028035997652170265038007788807169950599045554512049242635775398641472677623820572449294233323892296174124377421071583263755285039848306791443835972990434278665770360208609623595912637600406188413540311216853229537709058507803697416253820500893594964128625501650241901300505074575753939960599983325500858241764596809428047339298294537610424964286661800277715726788873099846427090132484455962567719502125272078953905210232709017073898456627009332213484481241739579914671971639339857616595714405961725555190638562246767995076891582223970583388439209951089989322330194515611645220618879634916091913027286232046182437491802799579674751567094024863585793112271264061189840127826037562158766237460099342954676737374668179729350793260018705946084103538376335829999296503476890997315059746789560275684178507291947101791083352496140797710438075795095068807966168426016175515144835597182141388828980268317743145012406889255249813035861768586200367384566755622331886533615723019391996863772351995566428679337331313424962200699381301272480069116391513846619782118903495907381607895971422218915443076653469485116581572686074047908878055514684015264126948957401645427459391067647542552742061499906258099830730537642220610204732021717537845958903150691581515871040545969296163937466433156188994044915960367053221073312838299444475926004132980271522830521098434993301428582854528138479401697632441991552313556796456820222971397009517769139917574802803444749047994001467552886345715303417103167482398102262636164598608250009212242021496184145424779329383505395645897310369397684137956969743321224528268913298131467226844609569999588733311442957113512767695197993637311355467711712856169225090256758358320920216197968375462268782781700997066414946371948060887949105013681658165999424790045882126531123130811953162432055316723695310158451712152341204469137187732515557353158356726297805147163808521943246587819084056757434248732493066873106839724376753250433422916291926797556553605283669912187483672932019916290090560533083193032480048332466653485286682663405281411427841415455582015053162784605383203143087363659669424987591608355191654899578190830015612287426947198277679523817846812355975749390671231791163778343767137048997542928582903130690611435649061444530195996377762478140410129796171215532074332743698826176351454250293616508138494884682397145168299700400995686465737062198183135275044762681446274016260859278931236792266843964275275988857989307603508685814395291556756823138107336460692104794408269147762267916594563769028955557202620177543044972391314913536400288867452270481727989525466617838010767997090946963958797319463770125623185501976373661075666858353770816227288643308023162671553238637241015837632213498679850573064925242254333582112171799072820577453901787181114605050624020459772220126103941886810033712457038591610427879226328545940831632998499015843067529013693493995999863513439598782628766047755596707794397467938278811578206827191155268687220196923460026956018070808335464571428765585305505716811666454597739756374594974166317293890663719084732575164996620192551562294960178851029895744937583054159473779059427097824383095028599553982350432331440789501094123634240535819028997857761102429806581395337873716506175171447478829241801331619382810717571959566342765860621026047658366672482821477682372719359258447915560407535569776524059699361065876512235414094538265402413588700990090335570831366806221381602834267429988044033561448030276867295868947204054904064518707116001969121891271105344286160242860607039890560876493773853034815688605122551065196716964324351515712405109859095228486567299664024557410201232352607201861023821398278977409653210461657077155249310947643026287541241494486535917160997540276459393064602767815424716205589321558476671772525476493108100853212080785845738809943767640827615729050850120596710792736629462629935316291177739534719219333948767328944454998135346988217789786880873349452458303429694469284545939795633522745226453337301524687001459913308514482433590703547535010784547264705398381684488110238696550486940973687828086406351158831676069013662934510008598644241089295128091111827580822829634197506727646133280100986496578677943191600543808200692197315469484400561281000316794820265244283935602207340307792628515175235211180243939303345954981199420674027951236727003091603343954943588166825973233201522545161522480892435823223582933697848844056731260852579318597272278586586939072754887300011422007634866588830201575662310375610393162574783535770180969845367690148719165474838939986705920945091492346088903519687034959231726597017589337148656028492645054859496002239987694782269688338667362910427408847913002681298389517043790630991538594192098166168226916070580971783326536652116373426221444559321793140216913434229851136059674486782069039386550483641464511802964845952378140899691731468530074357499681732637058420454374435137168036600678825996602605634233380845123073175673571885196596759909594426963127340982651853785266639297515170231920780455446810219964182120468019574060911156111201134633257684787988275970921467277286884813593932175910406947040092340253607496851841784762966721330107572983099364102884146511858250097840531616344395184982596469940026763161772233145902521551712511880700230917363158531771209897590471165728129345448956851391129340154758666608586234727836968754744691754103542170644971273996919678918244324081496597095253223225793329969843870583956054792477542993619270790445084388572858607934531647919228469964611757129836400854334184293593550945488181572008125851650695315254540355745590357325666700443763075033424179917984519630172407606668950404573296131632000795762755639200762700415909723744668736570691245514584592143021173575582387912040415331646758935236317858824244544659588041385783386087850655055400975999099017249439099957771216606023545534487033543943797852536524684776590312160891393849167253341321122498529061092913503393261694156319038032010674461463607732477588515443812339654424079312696457353416537981585393700846782067928822140305270505814943629358649312167456126586065787279993570154402942510286402271829791923750989744947441914490742744964820401417439373128651591564932178657639418088939237340727730000950092811498324941460763516930512725050694931838983953666107442787661384143099361008463760164948022427751402676992423600301419735022287465983014896588733211275266048788799814510195184306648024814600660244609245442749178192675909031972961548458594323829317816311128768902146846762178881036941139713912912216773801135986588950849273066978336402088193305803254733376792168304824515468937199459456378407293926213233683473326337564057307132583214249852646264791803193168823582676495785048758957639683721227110903159403393518792094445009276938156799137739370755601033842665276065748197707143763612146378155292657696774244164449294311382861477579212928370725601628098485067893123519267437515252308163358024984851314267273658567327260042446664124943841529792760220586325674571203627268630867057628124972094567526360497876438003098604338867071277617721448886336724668408418532585166270289320953889197736099137911823044924052747819810640441616242631139029515449734964679939464401197915759257668151362806976158532042350850376576406106845186676331460465868342579360261232574433680499727478364228249462093554445629082030355154479178654788914950642075426207233607064026555437989576900437489674151910038269538361088024132178117891777115544661907887910343140397892181567245295684636637554945221552046984216964579211869185880043737716862293844525155200719668260700314475300217074735416944874776266366125606396470567358799879497299130737955433936359244735201406869104293866152308187607334658285933508973030137237461461974560689693952451644181601990347770798539155823052582082020158458090515769046452847819304146555019969187683171207261499057102434584079074446914164326442793568690168565279417779309095806218593862268662722806118855260420064083576834192668254898806866206518825535100180955151527957246272056135004432637909475572972313029197605767451599585331297288480118480397603866454102439640416928958679912642289636723031719968799130934395979717392678584014225808649069469199272980837094113008690690142162077751918954685506487531759197252106835337781384149528459704739187501129018721573743853579410751770220441704467656253035723439380424958690964837925956539324012734520735360015684524209536435897587434097363802932582558450300055675522812584172185013825564889159038221476118817606881086794657230859251076763732148114988753003506916488473055396792406015228024275169996531596505896282585397123906187527567854033447434908560457786538592582513658525861071054475791358894105873072778691725804683619780608590868463089923906591080995516327896159112495619771451532563294822912110175698790444997380075895097495730419668994989845665674474354767724478288471629515760475688935929542543967229690479263988799530289659534109898806459314038074302119736129563263171807696947909268934667323444822967854316493370562454495325521322128467287407837337217107566202117495948000555675456747167990289495557203318220356102091356028732472261099895016288486412073102781175615368625938102012824784873427882436862216398919270979791932591894609870513303951060882555034730163914435172944020250387081197481888532295052472375480593162939810948486735713912748981131198638337872335075019352193037719113551150373064886473301388099626900449903979225806903812563137925440371159393144978753739146555007454436772600746940620612756177928297110925300999302121395602398406852684046368339678814925754203184516525897098124323012563586639594461043313438751554518078804292438443517298794087514918037344357142403442329183077375981184262562945040220927554584754516070117335579962627538200893572802364036420028742576796354624711162321078365164288626483924661046590932511993143283282429256657423619640843410066147366677728094596868210284827750000457580634453088065307141112970037688216316316793252780367004472694153978119307584867879174347230561479103504480819471809128314643114701575433241249506751759659237597455668291530735950467116174395286578920650691749734820693270777717412855183639063817628037494515189248816679032618284022952953663534763688520773168720084278119265430619766286787675190803030248690083274878899169678106050941541160714657456412728989525107608119437589598480260335449136706823379459068153406354369570770480861146576358185448522012593327393967370581512188425691862388354715902390196603603146409656625533034595243428161181507928962899994481861960972484409482969637766119258887204457041329116483906152981923642929223353144240799189303669601811016407240033332811330681730673652309654199358476600281630090412383043844449846895276284068257718618624548862571231305330635748346046019762834550628010513341908467797031391090143777412264144526080604501374934986978367880142384471333755138360330417411328530445266466471178415523470459424519370404197112051609494034433177761475550019979877533850610948407160529385623727490984658696049187714166147418964277131606912501783293422680746762206510723136855725074357269119441912306129766952961860157332544681094563398806718580811848382711858952457597908150262713644984606218580887208958173273935346781802493296592527881368114760545430109068828633556278316870546883867923240426458624000403036865570652659701303735137442843109987928208391173666402046006117594461084774657574041704893432144491649277678789703793027122118975360545818578564966457667954851027245768320072952298551296151806740603190440936220425339586607146551983761860206601641291211431863235637404298287696114442335091819862558524954357510178521768067291306934198758880421169812648045436104537250110816696863723607273034825568938569433957629826405375908351509429134757424179527756854657342942274540113374809872014730318657898170971026380053404972778540048033208561399883596646080094205993187290012226129590748453968920742374124470494577659401280368021790407841235477585122644986743970397169551156764825245047879921279004809628121934073876296168261371902149113685801127008599354974155179908114432447816217342663406626238353603073672884912519187726982847568459568570048320533113931098377633811753925436101718570082612156472629259110718592444301703028809632255000307514895498337900023859736026176384475774837608865957301202151322942365650397463532365452662175546572719580457347273943751724305297823369755639617361868946779327214176422522857575012506858673094575815285223323142950125638266417370222609371772082712257760597537943600992891193773855709887340960005027665758547522267904617770961246396139647743862991986084314846030619870000633339202893003375855682888397320001392600005811175324591188556743374649452015277291438216489449312575794701979787736980385040957591940337190895881037097381550260671379466182080907936780851346582342138432590520908011296602937810096560865223823365824057585044325615731695207669039249061575817304669632951637203049024808744358787179850696018718971735146602208508810688827999502223721271916294290118964127791955578120207337300758954575990477428541262109734571028535146395986436338772544195071561187845835657462062387322809731036913065191407168791966701559704755373087420066885981923027307107184240422362651974837669372508046192959133875537040218630982563505187285759015244666101905634967398415840604071510469223286511210468043945019951855202015789393532541601628580268428193620247953573019485677770570741730672577171097931527935404330845157896428062743543340461771440983992864932998198458457279391994771295353627012547344001836701669722358724957245257056650776037465806265370337588457085539157230295532988676206561825497880432150190307495379445169036347694670527091341590786438868944377616111449053924653295897657372203685333186307133242763352640511526598261732215824954006389152398212294282654458376683949013083196112109501320263707932066174378502867515101970830089955991548249098807603245670290581199970597747565968364962312340812311145126628411351183777655291931396016126053677710773398143039791424160043523095488525710390339524477526236757257214627029676966906738623190305978986051662932182130060803953777603247268408134973878797490443975642571102207343120828259397641943211346506536289365427115886817784206276434216998940905475887839039454417164881412757020792288734570210786320127380199862150701420293423699883954282160554145574153909954830019637217444553619691413580771561078619406409696845131457709956012867740624851446897738723960799064413860874857263361153419323733791702175251188023081451413100170769533168419475046894408873466211901477548997460523723509712767407956083924669370406851709544756509180443141727656150922247755265059892137342387280980447132867492387947961721016564687949407578462387351961368011080104942350705197610214290282078455884309320858184903635943748078637465343615204633555866672730219151184990485219166815507796583349214290561642120163865750825149688685929292162757496640417921960238345189138167439031595745917272306304956093570542235493895721288700857519519179594523281406087217646891673309528567593904335376963054424767396822844871104868568275809736704986250351529289645291839030927576468312772285695397847381965500669658529001644456190723296901340432029590459872848388719717362961489640267524579503231150461487037064054005663248524358506146424571574550443100125585741407740122238720031618205800156353912298137196011523978252767168862785137530842511306017397894279953800496231568426816207929128015133808573433778401952141672100621196220912082455361690195750334468558972686187838764184204185337044837150297376378192875336364326511677208173231131411486846310791373374550063657545289511765555113751966910833020184671610363146931647708732752981856257673194339685828807781517352093001444959992627596103353490405419113948111624376502941725237122062847240646974468556854720813374745671385072123442354820054284324588430006249145480738268812442380420826611598982131014066949838618404372635227895105186324366462302871863347186109758302243140592775352419614933818919113178990198220072790974416979387874662182520847812183649422760989242450739977019608477571016353553853767916983260590113989893348417069888240472431875738705150012229936707413251715903132284385665155146721300615704898564453719674860786027508543664394867388904089411420938519274994867788677723196303868153184798785425527200910834151487130550076472188497084232764125195219060774300219163645766613574469278998344678735806843237027154860138840385507156717855183654942415684256866186131015094371389399058407365323594961382530545101255809422603443621009328841898718403264114262881696374739867784234143724029763708155587221136082366341772991889067151250290551262866095946867563154665002598898778770348266352600179184608104125020582320102111453166417824027286873185979610666985618354697939378922182921581209078807803870525845503495150755991390668620809951279149526864984052836094078183386124571914377399971924302817273184094861897778803246843283676249618726037253892126452563543925335524623737943029171261309061666166835901336916925452166541526975025342282504210502126765490138559670584466536201256346257841267106281078965363229524597907006740204866539598013486480675098910214156687936549680502227083197616184367046327177675901186632479815956620973225109928544630173786341360447812932168171653653475050146601707845669448710146659494432815624476753011805801308297012804428276980498714554344142746827459368218979215402859426764136581005147158965918057635114757170440674384146968836914124099651527480709437536925537660211345817789758473657762991209313326004894726751533135089275969253988532780557283249276390194476765261703722101506901421400674338479916551482797927888267974094752962773969704604129277608709235156472483195241828252909642624280559483652688160051113188558943926316604247338295829347075959487101270578859676516169312831160393186229791784150838506797631515251390100688339529371502490961905611499377301962854002339429630958765267524866780848913537271034049701138155168507281232371292363069549316623319717978185312326484041456201695891404237603110910327616243915256446179763819379970530149113442004372435907463656684498725115503699438818973499107307810611641313002604556946950308753076782056973307188697778373565263939236816515022027677412064171078603012163839775050881288293777327934550096586550782720781920461420976705311310592428444932476217058011388797111193328152542891346413894709365747585831782828547142632624334389246433032701685514069983728850516937896612954259986672792146815742356382958982953465958428064393524279519967560861342292790240013967713378241371546351938428668638116939853915034245083703512137002467318181814750047642111298684804973101431691724541202867023961553869805960630500593680881775387815457295560825053526360453441593896094161875293673548567536090285943681424007796641939779628066404666928540996111116105465299931007523379626963665918048442405358103062776008674333730654040014776059655079758438967360804677969488220284818117429835952854510477587830251336825920918882758048110383113788212179377198922378559769444221547283102628912273102167059592773315102589043774201217279944816079528906390660813730642365622244520840525380526057002008709889533362815447384958272794020911150297565215266115740332692022678337098502341606582904480396722728868209880966709392586788132975962723288231683597208570200043522581990339959658187314707365256142950842603642573018106068122038724541162871040228496768122651795608944512577576650256696549527511852126906223370339799857367778043261122743406195546418439852374317927403661967997003457280607415474184892686473439613115854390765815468547404501716862703977092858263948547536469534443715633920837778424952914398227794518341156219576205573069105387143244732891042309159985150488207713168696085745655488431892866828807783606373991141649751463009409187538806047980651463934059274614541309547331648025130454323021431558946497327073707611377400019575588130452120736108018879924364554985776946660651858171372052586220327033520038161248196758666023762739706676181365597023091839779153475378415213063925764893218902788408817558465615868330618437049728335841247753048568522570675673130433262735211607870856404034281645317563012228225761560692014448454006278740715555760531840937887731776971624648597416258937938233878635354816116700526669617219174843175066766231079549911185235304066700703055199362891714869070594828190481745604318722437248680398325284533559297306528691077827905507984868578018742939101266720548592043868593590065886118833644652084690969826053619027686197774154753922820023586748162735180951983063683511191658836271386895026333642620333087300989378775930818780282371350258713779846732796803052797356653550372787358828535986024665035230035256299886946166025268180691696509381518233149715169444733184528239171852258965548080025744233806729715266194420685440714850315193651671146258590050165246956535598235249185459634528791450688176817996365771774613733784567179848681962643312091395782216630139459066898454762269186496408596589034569184940672990848877654936754610287589823594224635201054081966915649545596405488407227156138498384102921110647664118877860417203037865433169771835280930071504301249078166891491621164195632711157920776645313226936148978282955018367007540508832598219701357898714087702635896372543270612087404028488010734573266475738784866075503409219706307606109169082416287161815068641667609353496678539237374529500290471301704319440449653638246761300843234273407910557638320188933981029280033325767145907143291612205250075898238460088109214119020354554146246390922600869860466724498428649123696839666784064964289902238637032103050072270183798649940883215770455094022364962813364577614730450034826177524129254256341436993194482158944396336033245251237266432419101853204659172524623963650759036234934720896750574765882362745237832854614130347136268472247997600193521186023508014538949355656347966780003541307177789281262792884387988314518875463642672066677716910346382510337907744968017354314049854837015841179141936535379007951749420602509742567211814876136590475971243964740371327135241394826975761081939790908507298871563435974414409134054972152145291384341591618820439899541157338085087788859397602291317648106763040671280359623711648719766330979364773916198022768848006109084896555019282073713144974185546123622397732696100217081595665023918772229649710914401647646593512822269907121289018789160681666286717317106531654107017191719912397464361987869602784233598001854734505997146733692471893363047034655028303999410503213826207901304248172358736835143160135397449646223381135415682359212871793055798100002090783258082062669952837578404410017045499800707681122308266110190163564515076350860747255569882788640444140861196120904982565228617903199821373693136825498422254056517469683784708362072012135709120960201456716092969898048577115064980401016426745578466311415499194452698579196905803134917018079361333369610859976594911379854392907279135410367722978650946133828881402809318161074891928682329434632566266242349492849383785795166373895182934405473520143895858483676271017900224892827041037212266550243210450555250452183788935859763868582969756876975045982416117310574831744531084291856762329903472633537222550646840620864480873808686314784818829561058595098172087123076211580966031525800966326986576445734948580516654849420685676124179070551252751492903686327037687869080946503059239856261008444337628492833641136870861966215061549647769323817751134408921273284809924594969100390785960580402913540959136435211315093104505030019870852651864009459451579228349771295052603977322657694592671332115476182896737531796448390569492168366884554266805720441393719255538838384234098737878413252638155377497898893689176289343562998975712098514269394127118054643254855954037810059273905826208433689963584190799075744087351278677666728660767646766436469683605616767499693564251323888112978496998551584774806484395460311434801042430841151462321929973784532970905016990298228313515992278787658533641072615509437996280443565406973312326182345551438185850945064683572371068606028157680490667742566042789845895240235876399145241762754021733289344014345955724101878634140549161877309130055933402876153902211897147987599974288216246534855189960612276337423141232998654542543021918474938646098820004146759038035507449136380098920475186526491337908438454109024972374938369067776566268288949737448728079203288919340770534079283886484658295462908636679046761790756283561305611702069964780515212830064009582428928284584055680143936026054492718997012910294425220751417158495962924702064063917419750864652731860511432999876744425334743706265074118269209357689886449941320082715652654610924887853985570979420213842063088877327174047595847320276515278229887102625893389240290140968285111256901528847986105806830896684538627113105857129347731133400728385960240268486526803971807833422531241165687112561491523244932115293385996814959373518650365778122363851385281119242021860242265650358317138803754512552207929525997552091779758118275935281100443163958262056627969711776622491134618294563099428128946668958477927529464426180234459254637307754654040502599541654402948721303485566295812487534022267200890710191289221728981398478627487945819274516428940783708151701595543337862292991778788399767409471111949093818290981017655402559467637218810069381458522850921801172390786758123407850459189001779814254146039566380120082046902028241318534036621944578586391505045270941047941093873182793315491480925320479318777661028772454229574767434109375214741224844770161329634194788670583753752976039319997519235023050871566391432741214805671754294750825175517673032810209491822535582026191671139110893443802958869277795356234535709125089248757867967568440576184507211976865742700357909312416031517271477545233699224267921816682346451188356077477411492895613353992709913376964324560250854849395040416800863711641752709328584266521207142628090097922806414713903220841255218879147106247476492885936149368620891857833192309322234120587657025406219376707195931644491848642438236361464980284005526800948020274979987279562003141002710166601258280825611041522243791407545808883732668638675242468627319260285551561445417059684365279798531573608451614931433719423127724618932866281989999678224988856286194535411308975586470863356259136275580386995305709719530320782758063532900766543913536103068310752955439706926902345262598988966633903318651458839689373185406550029282931478474247462584907614725950283921291202222573704906559133025858666137898199694435347931928260079376634621192356772988334061233226913846506472612226691089756302488997897200978188800356326155894065623549464698169026791575268259283948472622589499985250503856885454264858582388010147514961074776571637369612356714974238487861914136569590396098282521267000324785409938703423301868493122423062494975068917300036942528134861189841285702909452620985888972466323736450021923508533432760399013257032807322397700322979850396706796259012785080529025804380100769102867041855145558371641721171536141153791391292129371302369355292225486490238913104059770175655224152690531715040850109228971254781132702324199470752440355088835204761771065447996064754264167639955062616911109671336780892703649641944450754077182264288520448519946314131109771730171543751042505627934600687413367449088457405509061577157890337698192997376621337479199695679787028920999743676691551082697429875219472245390477042237505215412734049014749354568136842773122618959589875362450566720023904903750137942410197538274597168282179657537510862692943968312579486844458313239716545539574597459673505978492196657688582518099308265522786454713461513543596103114040882746285591157486036890061104846816933125169597530420246657003234390044743895183366866833409306218345996632022219945867179199875513273371633322010698213779185710862188843078443022052910949013922434342675760825393473685682802996609859702173559241185269431547785836493130306091790373464503823000096441643455745973607105507079473509970691869367413895705867737206745410449690531762152472509736820754935800552994197598104857495822692694312799719288195429300754650585861527035084023575692528556564461687559494143505998925139969301662723750972869071946403275066379244914495548928599653690613437644253113146196382672513736076445987658399060438832374604190237642090192434677539410599977801848130536941891581983515295118468122094868778374772843176464240688169236191153163367196602644368432893441819006284419697206161973157065435962742486932854607171794400616995428792418938482368890380572532360016111823564026825205572556894373520297205295370151274391238209314720611151805429566857108624213591198166301902191185765842798683852472468614733684992651511982420267823564276499964489189652887632718335487676214206461119295341723031790788518201197420173581930668262557703955531473973134191791926095246049610947615050730505150962655239196382480034775038779954428544326796335823662418757217141099759154459341974380560539943202263491649543094902745959115986513736385941646820618630009836208965580641134684858839563836579237889957533531412111571024141483258343499676165288707734147910518637044443034601866925026550847924379838371544970315227827472432361765413070337458368464496965862165301315200688603645377179640709555484083576121961704393370588052045600125989272530156583149242320156804735715544651431750755150189602982441389477202557948454969214802532063466711100998596353567837618004472753544380548191629985339483255101558338375224599655508713161413786203117462103041334280073987768110624347053454810547451850798440724951640355587031246947019095495995421564716590453896314302429020851474514918262116892564960376613245642000144332533633425012983957673542975558600892339431306628708755728221804101864307177451041726678896634537253592237226555306759987608450663577062345365393220297602660191017266341518320993762163519064671766428154987313606453046066232282938663660586026639688387127952387484737114251754356008615961468764261802877019700972771961865564283013994704595909014304723417673417270807989059679200658338315333883605216132399965555088153411098122323462775172411961850540298161371681320482477624793929089306192877252242882930646103753734833951381172250926620784699515089583556267362894433326788660654113269211498139043033781629119121331375389907787385189184049015046837622868446533582146980298433399015368311698016263776569530999369755556256309778672094743014343273831870721642361996329169234466541719823474861343722613460034015570576921605143045337931187513137902340900320266604638733578028372496576736323593651436846479505023222434372277410881511098948274056425737660608012378863917353663621798316939729780594825681543501804968644323914722465897063597291880767675357851682294422244565376723852152975358494960468012393310387063037140711869636916004635958106849453499104913027782316065432530292714773174765065685261381270469051747726133761761180388630452662718306008218985743162025197384641632453878436582069596236327246944081614201084519534037752449168751177267510762652854827027445055798546254335968883617836621610770958862180380634949630117272201233324783199786197042382486847375629358634625310899091278223329929136740268839620048614041577388205890565276691931767484475546752826388555750864771327402549362963522239511555238164732361953172997661357507688367926263452377531930103960358993994943925507324689851297411977194288629538273622078133050488734618234470838382845316798425944434685452241399494093425367535276629369618031600179204121176593030623152834879935026336159080069076076489636445341729103442478313449701022543906933379028035742846797410007238032626416978843382957768422962168855884746326617472071443090519310527133124886242120920404910494124183156380104720929793855653438362782153363536909310370969694589361609023545756599791698308803219140452811266869068161033533583076573019356583493429500783403257972912954765856017585035657364203453392276261972933346003941454598029299545333006626489353316486540293436162989457296492737632767086941516462687735965246224128802443107035490690325951887276809103646556287827492834111410826207225428737762212259785338406735979158693741739538103104729581163604825206715483414104838148045017791349234517732440471491264321626294253294593993561258874306792961774132840172999036178077956271108023845778778606372515596262761751035081870309468665133538222141391013951199258523777867193896091369293464495262835831842939552677744990297722779946983214865084066311883183350598017880034667426630784543528706781928134897316695053978383126049470956176493252234053710070079356152046665689903187835198061861637006458478748305376727767858765478981289837383315452256137988723080953316055853897488408278861211356640696194362080699230752291244931515637619433166314535185165845125503570860910152245224574331314515934077257284113620140416150263210339646480524244470212562307795797163595832490919616432415515839514126079415578349712380536397738808567038211057227863412816212882299094126256665217395484585689187668093955012031025156602250352300961912672340959508410035658058864409748720984403645760379410287135765363505680308017792434688026899873862892294865319200505249067555061460159454817439530730086927156662040966771664908440749201975432466359871104839967192021301668437998925442147263622723589845560667371115082649036278677216891718171530784731760485721181419350863444333007117846705767717439513461236514182673893800237117198483830193395682060629786803006649569630448771221978893332785911147671333301581209373719586544966066242737462743787444715842743577091406666720266589350837973638152988296653662958889876495546721182458075740490546559223573132991834478611396862095884076232829735703925697595043791687487029096744034101473666166680693372604016716781120753216533507721153320886524884566422301184532915384232370418273504879185651450531553965236925204620517749818502878679798373242193216097406128720518033796573528895629982968753732868178003933250318974044009545662390582184631333364827850973591611528196226174015965077797662077010918962591938095455563774550514353129945993337929970701079224794092867000202348557183552196612309184808284579577299741235556514667867616796273659120591514428440446732426395418768400143794643375143871467585392499813043275355806581506864920936473572188928829678343898159643390580059799010924423831505823530613994654559188472076958225037743032982921523794235780605465578603427747885910329382199998758321632078320128945046508254033521752179500832976484646093003839984691991034580212009232383382955014775994110781160970697652490773154100184894390690299855773395214424200630705348139104725967033841513033139196757491013510764243662180382326960886333723878519437189267247240140860853901345904365661402292989779111843436503150665739999106192062514912713275161294592396037992270916825470425244364587175458576787980656634012295452384119727731729244301101851745941306774712100461704691053090235725802763438104123461503752779600994492614380096140992615488341326917971215962984269030654533487499710522932153518947343779600485561507229610605811307149055807240706943876557933576202460674305400303085829388873430868604630585023828987265568355147316464597731036073646757109797100128999479137023861669172107980673147450815132513072595466373923422879114457477862730700590289017395091991465200508818930849747355901412029631650009659850372840364527813948317616490835438152989861776004026589958925514542327361925781550967404486507498869058479849562476615146710953082629258827039998339962627801857670630397087370802978334705220174341147728314992978833147513638452342935206698010865965465513220825300244572522260914373846665753518456703296369872462126116008879584960731627269871410965780222560084537922567804497297050416876656922860695756911466001036536938520068749766230327265136186090833824214682227978677615883308084305455753054365398452682040296103939015723807746208804225271854012200622090869033291573885334235511722770792399044647646993193936728204074385877849807590972986355125734764443006051641266595696902671530761090637101141616483613006151819236518158158513287031804001003727188273955598774306176210256608128160580177700940725729699827763668839594084494832115009887956220915716542926935452468787694523152042952823444978273949285402814805485815965315233527383068648737998716046256450273925211768317243616201685932366679846857568069799059897024886052601703468345596753803533465923670064428440710415343154035491809071773134402420984852257760852354901702344592829790460215516282521706205986476558134316638186050280979634308281992066643452738130254805060066103053744893996466821766805139188288133228858870363504051835503670311571904489945266248739586332775862625232785554181532047539701698193809020199434222595895431917834482714314416183735261484216795469748694598741410010029156677237529647113424359717532414630354227219191681367385424230014120428901339105465233864030408554922042217953612599776825017753291269508357589370360896648671034437743006757257559100536484137897873499523174643550189445496227483588809654501819938700709400679004903510034829955283746343060342387929199115781748099110713201226250356142184671904245821896179789711517254886765863353550215243527628769659969564801346239574210042020957697634785156987381413273476814581035535262143914337914789209272427036720740597064053235706813533652797703866173405688517614966966210290600984854337331243073460178949530229310141048770785172972865054405837868735888542477591999073111252508358083293280566325416264432471457309109985884583979188251397912349352637158033715818235158649139900359741750018460424960608252459057214520436881035962159318274029496143439066684701933713258125092202763278707205037502479626773473391380220225086007072776342631928735843016248897210381441621327034381445786670239161309507040993483617836804598829894342808933161157687912490928964037696001618113197424059696958951297335614849225676566689458008291777838630345034557023201598110873198104780815174764035688582172418405341915171468519865463053413743135604323135010761119934955273404636743540747494464517037707117533635749556153882000315219259968571696267652071830985217076736339996201248234901858594754944889512086343348405463836929660897474305626836756671420514901840770681354400005157160768711673591634591327385814025169426683652149568564990220908238109467908148329712039946107691010246047296535826613994322651172821854517989459689554417993491586925965225488964087707507781387547925984324299551629108989063932410338973580151791988172906990655814328608121977092747673370548152063350744572850441017287236566095138151999220950918820584358086090045883543879739526690309372602736139918683253368062519209662361147004306689456560596670510780849345384215329823013432930890932882110266661491290789688921327251499639808417535289288635088582384322050420124401294863240812312578664693797298366646192678118239941553970873132338437301240236527426435121100703541766460836379679387522023658519632205734839604742595690998837204497578492981375500095791947802956623463461387070438022055589304215205994751450788056272408802137981024055765801048576897870286353232474055769256558563348627024263488470692375671982569314937722854864660103762489078667721568561781841563547279649591967948681600275897839030853742224472457539494003874669474331243918036426188574065321061857117876026136591662361252142356879021348169266036921043995074923164816031546863826590517029048032422401232768221986973357746263838035350243984442126314258549846551004982160345320690197949095571178405989240030365935016255333724632767612725907054837852362789103310712031825182074266791657427462074707610912551998069263496406401512535185542295040805290109020896295789076489775162973609810511468319371964444667342732172972677987701792495846579496209947073583409295997449879472358363914439856356217141505656386670515998268266109915541633759657911555673731824027141223857256483156111260710911254743605863875976363817466232199559868271928706343938618068899339698156814666887040362751851978498190649657364644185743268399372398033852959920408914365341292715646263649856711260532961075856257713419991076704359664501169848525303327598838061595990042267308654176307478801741802152320988833940704874634810477856357772826586424628435527351971512456678501648602877658186643996453240401182367442038971112704809315126050904406162294531529039987059332279599428674902068014163637142416781759477617401966078644445016936552410147143554608124829652808936924080657691579970472840265646511865704602196630825724502351751549900328875368889471446036827976168334993100807983242327031728779511096193160195560398561098559337504744393366333994299120812059861413241121002947448539999086697739032630424511451298878496141431223916361930546639304306671881609272745676350517214029168046918213455213884637075925851960792708450237635435505641050070177462350929614609326556572632850337519244282744732002880193009552062197743383411367041430684624923780689233591832486856883388201967531440079216202151644337391544222641015866263458653285704233474287674210353242412422832530671391016641297981104705756135463440578961994945504468886815903295432450953648506822711722619925331941350144549718052694594015331951824075386733214486605637315394013846927756791752660887787260742832198162548410406422379160983071618570325904532068242148670920145334620381236547640822393717938165609671286256789362207729629748593096306029065489433587736784311291906368991348600641982015033201921856081477368693722910440340923239499094179236714741262114643988399994875007986846904082571770201620595288365953546127953666495037709019655165741439540169989659453870440058437995662392098940623267581796887666401800687913610605549760905900039238153042107946476744006526026833839438096681733912382674279133330775247199845019383473633120699515558419673973377600511658044373851842003372599931592023075264250103675719637375309729623268925771432411235605978507011767492422340525196240784136575482892047859548134460970775607977037518795717212805442445139627039223524394995899375053661463911683641332191985365453569505340047497590102499463687815426484241582604693017397287215083716020640565494147033309363845440473506574366047219873517805610918291091396190588138556563977460174432370747463640986164194854936680373143311107286219952740248765373308399486682750292183368880387794696031445782843937315815493678769834042429238257897812371369294487709528642805256451490410196337378552902020038652846333118951826406374251499605044232979704742448478817561827536247356696288461008257454883909869514596067493504703034865578808412931316904421387500447766179799683831483610941940184042685204870422964901524609336244778173493927931447216070368425694128784318051836036430398751902429707304189228633468792101514807985857606767703940744190728075077723158521630395594852676977403482711514528992599423273378838490096333048867779017034157037717527838990229701440807350220370366156230608377476986798832696228937389150607316348396370842111283796592537426380954534816549511358926330835871820170262524640830517160633761420408317615739330639410050806229223359070982566097429971488513543860590158812399954079386802813351365117418160111234074866496266653506799282964438187138458251081288003878549967646971085533189912060459174985962590657165940627475791780933903699789838536397501641195473466678884902866798951568231204671748886207100414114586102200694779300231628836288372486927594543918148062726721092679537069671574644501743737011056403832042850795937438103363602238231043465200366497497704300706366819337695406956576318282949025063107919785930267036397974125264181941161829545144748028528691986868192516067988084159797832551298663856978081104467980024177840277300302804470066617147450294149875525328066575512313071194066483477783837832689929826644803346197804283825571294900619178444738795954326764567106027458644615062442229813227760578687488525156331526126428330967754143110284499013116520463423676533856819589243416640637607452372969727936251832651430108897429230310382715828570986016343704599183473193210688626772839444179112691102412891932984237322112773815473628125432297092787522899241234441135278213364463812070929499681153589840483178417402814372762693081200743867011592244419225090417556160946986523284315529293514667864112291850505707437839381066849355712069440810148836241981907608326845600589246265325322732853496264517952518738993013710898687685419287148784046408124446199679410219696191480204183867234494968310462976963283172796490349674383524923776291031799628468597694953869822632670630184098436755306724732764374851592845883190483359281690507778093615116952862914991856183283995285396169175554503855351096308351446021085365041854833706820548227867448920362976559147686635240377054112370041843580385438387513874486804223596470289708737780035734249874995945283815881738522038359830374760656621347446431774573926158172645558789103440803788465465944558164863512940650747917696564718318695103908083793657836261519986454676314490479087967656139148990841333740908798919975160034746988547603992768238572248934245997857218439068563714931836191564647622433583402926849604901576051055951323448394532714886134567126688293136270356501973260519160741971232102557157476086117853248146100235929271263927410627644805895387765794413607501462889605463007594766469251078825131170914443370343324395437298251512023725601109705081564468324062739884449238805937712236301589529482207781318256943037988166224574125908850798999036906848627030876831506967321069038828406038330613780438461078933503881725277272776622329382248128034788655378259528190936959261274881672581992399540137902556094825963938576214000424300279051853384876933132328948838154327570609516206291849596435678041778786731446248381274170871870503345481380326638130702121736791670555438384675641082923152830378718075732138455878001424882885644585664201329162447667786661893985043534188196772148691202396629864671696659350619520420553869121309520823511386817921079011289375779433925360603442109442664555492904560239060514748907701146038204725724438835438070721855091731051044665347543075027110651225085013148330064186142985098636362559670539423853808822882109999396520996645682261349775005918689628775368906650274532024566310429056878868691853987499392075750637408579024717930026982455095179541585175369919763448236175928011412863309912831321562447792841500339085808368849328225205508001375910605979482061324952092485874708365454653909223712955302747317219934605513797515251124341664678444093896381071348692176287845074329201236836217176394410234932640949758103767696143009433486585526361065121234775843446493036013995248489090343721540559444157060035279169009093132384711557748791576013319744906218359676129629619574508860224484425435632842817628964417172733925765792419397268992277811506229778000800168035692871307368283799324564106398304983276175601433514071782958122941197831352261691012816795416979054048519284435234893973314887255738481279029149226349896211470210541570739570186887816308385047361297839924219658473756547644777105549583761071980150327558391925315529984209084977613365553692043645040737773780611284927821132231185248213695542039570657398160248294216938254755734167329013421254477674349465446550775045698089534588403825931602492061789446894619449632683667255524261524970721902617806682399776956181307442894143539746465422953036848746204285419326186288899756824987308061645904290676649879674982928482927836144576511084584091336749198799725355573343884807039751709855836509871599671356661015716149790050868895119324679269115996972792801099988368183829353661100986950109640014883629062417608743160999084518245328340849937084362371251158667222034456865721954391631711429489136958666294517329082387720556796856943678754751941858381450715781521052112994259039603877095070424532816985085513067733853388290153648531090139904015752022014421754812958741939134869183231567189961183578486810809792175567318197167389209209416450694752589764865313618903081929132675052235697823138334012868902117343115656477314511193793188414139087159139278307984862144482947184154665770967427510458890062781063274323380182187623333981196744930441957603788676112510290864051533593514691577073956019150221619967706721676053075423525350000936701321890943156122093072776922689073608072043677110015500645721367553304815116946750877881165459362593780230337426126338424425766491488454696155861584188749602014837798890667170716627284385356243781580829176799952967992319204881551382649703018468442668941212139999546617736776753297549771389441355944361587652803185596238469841226381649544628040547275577058902855825358906517513070584124480931641653945039431923999675162126936840894277195514586882442060438708369277410383969890195360772833734187459353787227694413151622574389672772555871716672638442340610025881497141952014386510646634256360859663811406523801540480235199287190260430209295813540559931305391472701341192869731371688937694381852460705297737089335309463927763453896880551619245104729326984764215450261607211421045593298770394894866896079830859977872423789792119889272136810695964362148235763248925273022047914244214765757414237747703380097041084891751237068417443546773085983280596693651234980396959861225258770905904363381997396513090803442150047585384022151093162896142223903614313719191071856189160964231976664407543924283587258321310143777026524226927754362960512170141649114944523955800803101830808475919900058504710436135205676219797211952020260698376996659180459195946028777692834788583143300511682491805710802271796581123450031428273023877169298876038456425509463953764297976447178895686157600615079384194879558338418418885431265519122897448096598308705747455242432196736699214924291141337960376624443067651521093793817902245096049598982537562880197950513369568262636469434571192448567557850325354105013858838465054694971696378186031220120624606174843017699522823184400741786019479637748546889010788559251765067535302948913227724669336846035690436455419273547664705198563850366914550391893054633918653539332525048698791326969598630168633529436473216121190423006172508587595861251848337267097709843905951750880302401310885539399161747983905950708933937708100636524039449751804693329706283698804062549824581147352982889512046741588196863730986955193006074144297369188167980226806001826141329608878239020573752981840456996288163198907546066721815601759515116536838360574154756185775852169485716618406101954486868571995777769872245121089724679581072770871522053705998025541911297771651533723941331085849668949168533885459298342072738563236372688484861110814286168753034372007271496199102669128926766478537040287385617985788786740938988097270990646728330918627283744730929610323158370649295663310949271683756996892126714624646344772455748075370397265199583270181820100672916152041082173616777902284987402242624841197873146791246115114517686089008447178646437375114156633422450371710770419642496953524451918933686630397444880866366812240749636554863842364459680761435050091088301494782802001305602546031945417702179082543023210150796781251590222237592761417687017798679381389388345349227796815588269250191025131230043828921554707212734765582087214912776264701714476060640316936443661097710801783072300317753362462868920480270383000409649015653875017353284654560647830682336215068997549585883703279824777579290864302888954369240728541514015751300849852778676305790498359044966617297188386848289431742524243464053551251036527474551200174419280923790605690876911556162835758249951313318638877933480386321746032093147579267866734543625212621497140637641385755616767664647099419046263435041419202052935546986079638066586589748350465347964198850450820032746559388721286964993952261372652159739345935747820005417262929679628585486955212045743562065510417331478989254576775574260193268628845422187203724185089574834124404367223821372189144870143669583334421163207374569181379860801854069622892032576956334827068161015103636089354921195078158648440213971584503289797478385241066041480403166206091494321840045608499828200773759190465168414023732741961337974784744953444709299183069914739871000258432573001313239896583869039675648227396498238444928417984932241301088435789870201898964501906622885054602888794384893750114564173769336386285897559037722158418775809084355076285207952705180748145736577374258706526418892604947097430748280549333509682492816422883720191670082618013222075179328180300920309268126214435574030383248702281373519876127117003364480953258153436808352476123695313745855469593612186436504254163996951762833032247879065010658721335220211307176894251155882051162952195748228452269891734435584094889622874147830717844138053316257804559749185137295157656987694742383318365090355406390495214346108371496935258490782238742253233058270391956813396163084610506985347606891535337187026119075954809343920604609364552589326869231459566199509673790602084799832554597591501944032887800977141268674840590080695567585820703168198930757101540795043331768005142829943375058455174042500319731215717923178338187776417962436271385600887268889788725269967840549014835349855494864619628497740376252677070969080528238465129536996273072895030437452615242887171268179892798786220969146045366626071011445678932780721964439995997984594984854330925839171584726454439998734186018008669794393170145903823357082383693909564178534249933406121792098514094614567402484403357471973799713342939225281728870655775416652995065797928121145133945926433095246331597866574285675029354296493462471030934859569527690791910926479477796274933414522280105380294991865605246216471644581135292422017588390401251921023016271766937111470628782656943962513770710891591773482365194094026554001315866351808767317859850794466619289342664921732658244180967192200143047076051459994209349317542082413878549063900501500450964676934179522076162987955204518848719095277797556846543640781759419728610816605700719442949716277513914894444644555653975745113878652190512317756160065207499628934423134888979437266622900698488611496496876328587670027208882483380399487960975253813160674168001641841268436478709098648752050927283329189260069130476274712788840866942532512815021758933318818740381647023424045420735405575988470608481672462332227176068427870080680915619630166252142795560808326459694802303407391020343564037674077113151974358746742893847055474492953057102939167983389085979396041280409565348581939929502916027203864238707820258017472355303095404632823363462460283807859193202973765460830672583265561307968024539380556309629449380061715220376982885467235242418241962640770224051420930869265614982317337403367718818850140868419184076090418286706221562736256423129499571811887730589439099280566901600106307372557974876147473570096262361549926872315508878284240840305834598113453424408832236878960133582264115065736019939619067670120294306656564741825846748383365908384965708557944825406529777104972377457769354909732403887588749560893886174830280813928253021413183353781972316298854476045550236761670826602297654372534737764614467838983287013820512073534265818210599167197422355204977463830334646940317428908988937199194975067001717887156701394966051251976093124112070524605186221914669542177003396395533133180519265847112803968000528979162478291766522578481410599332271690218802893087370816670565436789072736876305428439524349939381354013340425566243834529012358339031909812672123745932659260047411284214230042333883247802548354649763081384842006823687912956608622794315872756362139110660489106109454582148702830855309411777485459134505379839324360516608480249795356182499812010348838895443153575742632250941797160217939940181419355019136694335631630844438725465175709784447006287149761774729543261370925518474285347692339075566882407635554404534224932579335207345210419959343816445251987136697802171175887914129282500020161303597614846539624330133180412433339496028574536747573501327156645694063411490918262100695901869247954999834984705043603927537891785912001437517007659519870104228138210550254021404792982767328848704361350385593417999188740947763057174507491534598748188230394415879113839912657811689206590757375126449006362288558835166381948878776507587586962462330973858434242280097095852123734944755552151218584368408806888258319179382685008616195226044339361841620354559282262039613107951184671931260778271146455822823192700972876689280991947136358993031850430178018596400126081229474775795971889190880798251566381406965533031194842142063002193043251535290035320705548082308011341098558346621629099035831129648225806537201416697148785114221903284118545185228980193015192482904600989760161618857260299139383211475403164451100645186227780979959971348469057234457265506171210115984609155574361781063736163285178420286184949320889153763977454805301114754706829958261498860579945552731014126235102757714795790184480997774730489522687310198654073285417811490438481968181839444660240901431402204787103641201878500616159865328874393385440303240810599464194235855186271381164481176613660199651291960234052117097305834996718232778468692596479142369192599093395787257557588696552497771411319456831063539700938210990831620351500972350217728754003961846659027551642392243480591320539997305890413365735824558392276702894784936248327437237053131327347916355848073053632001544699101733058535620102486596207161955426002544226940551376655905994577445810611061456273967480213546527223115042814429705848706598041032525704402596294142136209491277684627879139627296690185442899574216756505712055251721446170133843674568697725119083126427986640778318133292091218780765339380686927926566031144503999882756366426971622985887639513586602523285039869126981544927210543607335304952618283378706570354113948897647848279631160782407011592989473074726870811612212800226095143282996523367873815806482244538923478186451074299115480266405313105688672374808748604520148232246717409633935933609712773931414975986751602968554763202164813986574456516575947392406702074297965012559315877150766108548542423507566808775908178359885486569146564365749154073703907662497660251710998551885210394826189514213420579125874589339672372302203464942590729191887108466117509559064769916074747100470869055361654033592102437281046775447065385546033873651644462457861820641934690590591448388957409860844443614749939666810371242349060536986203905308583081166131845638959299443957217170023109558883456888592626068698387195397116496469056137653405706923549083109819558790255115041765617195289459577110423380487464095657733340495442925379034387242876605200318011332314796359564945259845978973258067300229962737578644066550082359084952673096065167358749198283290890294374792019381349448559882760585729977651174501542688232417274763874367471057373427517895604364756968414210977350778338967078982929387575548953339354370166007943855737474972797388545440497302602730641119540841377279795950324179623041416208536488121779349984319256094929796912779180379923501126655508526311460525569161970833504949133806775536017283020272604970468576761452236123092012921046540358521877745102503986017202928022516779837700149071203955592227715372344133122443360795894844649799476842927905802136670089990135999757439795735328812825146628746256078949439487729123722040630194213451250468985419106166369944230269478131395848812949681050539176239719291471357803918529206973713551743467951578721344931332936834265478459956451993115391991721134618426339964432803932983522763528102718446764288464361975037698692827218156923492557370038804408470236766734784926225941324578739261663028566487474131793661192259127986697069133932184898877298130204058036393861382506250688532433724830851456509069861491560960867835549682667127418615814116340614358339850031201480289382343424134579322271149097914339591959531282558715866425021625291998186313791542652485157318926363451776923275797352352438910930198748860566188380611192712854164326524562857126276286419181582125936858777511093142398771713864390894980506359890622918155413197954480517023025613120378347465459670994355918189885924365333773875539013555473532057773012634266946906552250987918708092637595191219737574553149735501276394578502184633644743731497089337668779356597740379705920839808392588936027244336653329895690367385428626428316229276735853525052888600251116345861928616862692244509288950102886305349034977559060803380818577249491413990953454546886788332022527746230330848743729126673915974043132483356827872250565346418098182321755257982562763857969267781545569401028036488999350839965430760779700369624699040299606541486287864526345129037884336000714086252598092060493636787229952171366530143718776418032060722963930143094350592154932842447475288174333581862409603055572068924283537267910305492548471270808439259119713923749013450044172631862541075212696430510069888737702699429930706838966265205093425734832293007083028912095824450523668938160034682932220159189711247890359091574954190823792845668663855511284869355460866155333588866427619348205919945139873871913218284490039718110145560476825268364921806373663169922613733324801784695581057639052075319293325283671775130087750494150334304713671328483830661331772750766329445522921881287317305377630859290592818563632512171813998485626883114425466166524425933858220765354792303550226133797240995321337237828533812656618075827201115525624200058680610255503103418750815219063843857527676825684030585997067281979821554803778017374536007032744863409816652128980918803192077622280376082280818330873420656581617330278665136832319761073976007458926772558140607676914791468672055368271117192493314579012913736786416830361719499996731993174589361480938438239478303429555076182670148923505635824773513330665804790370471980306510426658224419002571657287543177272735101844186758544108183329152431481579461236016497225391748766457567996900887601618271481584633166455541452988433507057266325901126147265582564373488751745721005424458490770114979697416015940277761640825725795435492866748382318253233649776895633825072864565480081899031134655529309488784723219317592740342519312631367822609082168059704504757840968139648301598225572576734853065133014652580794300350174804696751718949373374601765031379188758970160010685754105122686354951770565824696083014156748617307270644143149177605148110642788328798386972703949135786332084711335975946675292055638059044927561478383887307020319454680851472785616828884428006285873679060186906298966497493225551556471039660292280747956094155937853019812429424403372273585849498414038029772799954675469880094237419096573538732601088050907115269033514755130676836256619114307830896006962370497817440538661236088669108006518082656011304637693743632818249365463588439348577924932743127477553604848941024319865102176844363828722864025394989735778985232409256245661531214403107137670036138547560589531924178550926290750927301235964988898740601665304530991641408847052885487788372437340470763371970944485809821095551928065181390443878844611529846828512915147637419838988551837370358715975334979262416812590931282412639866105139921169785210890539021639828821405134402414291015207644400965147031578461952991175434114261101687898668058092217814663693567021924775428081080169996974275666385715418516240871770489605721971186932311456369106966875297609615748357290586429181134738002779374367433331428076735377050891210352915816424758979414585763545511716254522973575955517065267109351251713652239045521930479461999917719095177567874743185353994719521993251280922234357131016572415146754612410784627702080954343742275949780874962638166595968534402594974762289888164097938358863738637857738164532531330032157117472960550059407676894125473922849140734977520840910067484718771379996772177730978237069049482614990436034406137247548841215736960786983235575421462892731105256930059130753092335957895046658771851092323563092779630936595865313932473950558423177007007395954702614851395711611574681765296056336074232037938437207792510231487047631380928549901398938116769369046694799274547034981471699147557598491850028001223213552276799188951444844205573138559276639279996556097298013458929140662126792775976832430813302160125934437815469745253402525737178360616989443433627885397754810264834027053687611860871626793289352708344466883967912627251542163107579395017560706656358477922658063954726044867994434159781202888084100721593104638364393593214397111548943855169074516258919908305546586880799674117396410080488970192381880969673087815629028770020242149354388732698473862974092203861197688997069574414036869190046127418223503264760868746941237491267208894310078806877277535412473535041085056183597569656971130571030681035229883614631396532821005568720271636873580734563929894735366099393270408058175499915516104435532354039742145336790396271738661240089550727039074620747631606625872825648317626876582041259654105706268685305048597533727137514711745093374128409787841523713148288793819264554607949795730537955013146771533391832445979648582019255391402558737423918293073466562568804112891722705960270948041493575719298909493086311033360301634567314001294706414305603776396579374014911604213989662494448113097405750805870744425969089210991800169786906074944475658670302362123355012191894173048470368348759945833915539323655449471999762724766760365505008458406685219317628992033557279792901268321583375564518043845224878009710890991967895405649271243260676272107312347339158422730357206030886817041543836211920595134807985226231955390642746178723593958707029982247863716668067888948197091160301613401895860428542462373352952676970419440947851992543338762046154448465855998014139253959182894340476068918766126131397300818903105542143839530185753940431327734997737389143508466398459072776307280188718881448280832083077812018108594318579147138612113993155178078133344681563406489043602432834757761899081842536387262238919928152156521365497026797907814128643971977963195548223422061606893415830015133186868486941629190259893221882608290644754840821384651762312449333707326813587110368327583834572174678396198204855642175212263840904455305090935810482721279383983648177696159120561830642781406005706407370000165995261478600765696320861030036881320445508836703440676835361462780817675403513616062637672534513555415736593118147522480647801752190326631459225754244665347349298287946937113412774400329635226358074996987628043462519396761509299070756265806692643106725288220016464846030920244379610738929096226313038509616204291828400822168004139401391450315166055372896236026771118122695709994531890027594641274448910520284822379334931891159136877168782374716198738001706316402032907029834328700069649977603208714127706917977545164285398495332451945858881410849588425323121003781944723918683042561053142564814663865555090772279615462451174632577808605101255952693289194856262132514022693021671334041585057384295270573072244761850400641016136080176472287450753657525557378302875008551218893244313633785038677990855233260403072453155005809319355154151309691045804859607709188269161096588212024915124780029189937643728296643128901555285603347839398151563414258793819114180765891798647752189423392649979433328347513217598989655465918755603363886716947382161349396000581423222312291043664712999170463471451883644384059616299721021617531377602105737295652895274179950633878404165926471367296167350497201553494357093010018617293757071335070830182498123746723213675038447286639628353782718677253866594728060829021757736724152558919144385909821510789799564530906583432699716719299357845780801581460931825266735991187552391283352336205464043711392068706966775231038898045210981953514202611442344130019935572923402921554499664729943245783477001837041158474542735374876964165988198424238690638222870708482920278668068973406267794315814806682470160247778269519502621613800208715142284455847509915247585047398401334910699022556828524038498098049562934655282774041463518297046390329091095757353361534504670071521892378693295687370388759368248087267335868605305131636771939660558559024692136340858780686776489725400399243814851360764775602558262192034616673461911159903930581369018627864023040459822997902278006562958683987418216139866224390087298761980668105918859203004541326581908960220403534843679879483971101694183758318054714143157092188730128643509462212900234412886000078867628307853462839538058137957454858572910385929369084311565975751225086954544189697970406274776781771943255269836791785767967691425248958425424681540004673334400880735481770226119723769025006202847128499734719859924038110643654769377583396826112899242729163603326464402623202527494324512259889640176315179034290958739736950900386247823937509610893224920394489174571696369797962656623956947423745111134224502758733307339968750536468238504051295536160226614623554109191477911627656198155540281691505920651448035718988232106097879136270312972018424452195957988660854576493112498972655041417472039411780050770019809846531977983624490971040805195631151130890718461788796468739274471703446020015462048110392532995987770371894251443830754415173288712091768383144144997740290281906778791154239240089947041491510456872645679989609310709466729985658180652446374474392319799458359491097082654406884720826424851308690781283581258027882079536479192140364214706750918344892630566044329991410840597226020709716310185304861290676844629690642107183451742666313176516684357085031194499083381552298939900426313403726369686406180294364606174398899471858775222800515696139493687330739967161200108643635761174605942283992551215663485879258146493441037052259542861474481920226781840619326258970832539494436207160395374774192535511261193351841222444410086120322581951262258964736836487334167823129779301894335466698156499205787528298587090328147231898000486177517829626879981222307722135391796447907490143599195763083424041466444710771623845340624901565365680131348140004287471324297562524051009041427828240217745412286772087863970583281124833071717230790894331959482466063192134764314981282251862833070859299370243696816265058411340424498341472235200236837652728021062821937445983787485048335258177229890342923812219505115648032785024813625429813828014049249897320392745940545596719321488879660613353522043319639735932865045050034666190742844902080099778864099819580088608138588226651559571406610082916427233177231761124359560363901653980806400494141706970700793323961537831437231162852684445139236049494831124622696317413253947400338949083779088277506522862612319529627586839007489077820080621369482173180951405577902277219175511452290342943827267143609869798611136132542965939497800625380841446020998296092401445512502918686886045296377241730285384907868577592755497405436746846034205936229335365856039269120731413594138760127141977552039372115574066358013963913579724763577112635135787142437239111807312085925842508519650287744275720776544092901552696426313145165601228789132369316324138233114293175686374684678857542236163230309716687182492013161265097429351059713718020743416757334093556857898744838071344928033070382709129938664014648506324080509006966373376082418301725387137196700054862363020388805051348931958808144647260230707458487840976437584257883396940703280992615694362185485730797398749248007094423752803302297900127091824090846846146152967821088360924464748375334156570760570672783016691550788000215813203163155387738580803213037016935638543914045659929738946908536815854374021342220202391671568372789902555479480569100097060560176655021858417497586594370219045071315868709853037717635605409065393867484310051400877067096768163659672746130413638226056946994774201434644506612545322843231843079153669615565802098858768031901210429434340263969936726666992749495264789985144773106434891584740130712686862181033213734215956331297586950965447393361285764397469455693031626450653457158899160100873049159912681000621137214339810056654519602609222818851084431370014936317071160965967102858385462415209598295019371977922069268604599125018489607370366892080827622964455412621429770628072603182825781334574977701714803189204778282480850320872914237336412609142198792307133861245426426646920656745393397556744124764660996262989348101100282006207879364643689173760089928233331912653330031530312600233087734414535464729272734131615673134819627038347075039747842440845354805275765586814422717484362124296366369462603986563892196759475616879596708516819652957188835078884091878447778173638882173328432386315086759918987211132750601290630980517892124993883418967089436240608367726156391459282710973915370122862239762000148208114257863522644237922899633031942291337564257467613025926157963648299096005538697628022715941581852554944426525617815573509150989615250131367587036234636824347457705633806795551018611013758017622350069640219291780851982848886128387720187287233229848856335809739036706093915009619251090789826976343098667150799647637626377970500638837591661810778945596662380443726443697962201057931336737829856597162364924170933265063405491488440701531397805125480158438574352148339030148624422674826620845777996825958601835404050824671818198248091549540577842252005949234561004504790228690908882672360405983550958578526009773001437280671517377078232700825776109784763135407649253362566903979678598661628951769396621986893253513164522894865310558517705008194574497390880453903846930716087048611244244024898902700964798574936669087563183315193581118724296545334656284301336052502310222236223187329581578475593388455966431638294050837097584199314094188830781377314807511693765176736238971857996819059694593145610941620171333013292970554502794801360310748452104906123123469879221987461784395977234120163385723807278545746818318807698390526327077604871283821044448760755295946559610965254288236305773032245350049997912591061492803327444923694165951021928469376424014548475919736868510962873073308282453633970373199256811970431929638796303989144675189745907522979946570761069216332851479052786817592371346631828569991159497672238465513775341540423083550972660270215607317048410779169638095715637194208262305432062995181688610081787353445534237567880416126464762938105844994607835393997042893461807642094394883622857427479490752978287019045811893585996641064345879269733175771097117167455906140436942805370899338495251943311016063804362194032366250186300172572539777021116996655861838598958556099139049767177011703776342406236961948279001961965196501620851665600942324592271705272717308884038239704476088785146181921037659215043497612644170582177675206526542305722879526857688121506046438342554941101222117230609249541003406194885974218216217406563765352234230087695575610902997224801562856003669348209436974982108641627869499188505329614154122794794771343206679696827565840816856843051754423787102557231990065647094915909118367795652419774864474730207353429889945943561450848894691534892254322714827000433909540021196095495731915233169657242785329175674956351117095549381531794993447960474643461057330324647532916375459778832433666116655818900211903608011090885233948019501560233644912516744195531226469215702083110993418306900968167657770553804376367949935924971519619608388265844077048160880480359049800109367207697335202870852365434613434922629813316708679412826910390677416649738681855220204626104109955684372532190969807896452252280948211956003226257467202235028763618006862743050698805234910449501235434396299695908968373126626701564348530408118709354350724589864015091289429648262761230957368181009971449399675984553894770693396722464269895759179799853756733590130047068510773542638343973091164631030986081595822682620738439481418500470141420014366407211511903353002999574442783243116957575581923401755462070011978322699902410519107655859425040548760358140571411992629017493696697223082612322535111901188491143018175782311198656675241631726996770047140949283668271527732375630107011475123019007932765388259594065189924376156016110149960394623679487728377692115473668758942301827452985774768992663841229843036843291487474093849651139328191848424560839737860898861544255319518212440378234635897048651820498429449500719532924825353971851485304323637410029999952876108105624368621938515712667039926602135874958759591007711759461876702023741124847721841149206962878317420664782376789551739916851723197697802935977589823639645404535286592306922671599426047361553839933498820471642432657042345589001787541164847731741753455032950873888408543313889189552942826231831933529600960572023498485937436689033350578429967280572281510721038307228815380279900899434654914920106242309423866008012584948756164093850216771424112507619638147122478052743420691277319245005355219022142390900482148884126243382062731144094902139786181234365691367476621808496066418080095033217826577579206108817365876628433573975857317370296964172515446010094779318732730085693079076644894146929124885886607875778939393792746563850021679806466234789184045380490581133251460155227593035924939523327663746611496442554220445801651218503949823698202017545713018707302275063415036249910112742934015155934450194795657949972791250090434315685905690674533286939850334790881963969353991457052975390758084219871794987263403582077278798345254734162884796220483359159807947608914732338419781541457997368644747035070188292059520464685935430717918035376381438763734085396164801436598267196857392259832741129617216974239853995294619735673098387463973842097272626868769800124894358200615844211697840287085655471829387213869680990581550555414149896605543692300038439022524532792773258261411103950443701766700143329609072898523077252364569260431535170478045129029352546958238053601446868613636974109152994680117053920819940264239838479680456763129107461244638946509156197936174637557292120564453865094263844902366341828427392101832572610606795078564511617518953489966485440555810743002746019568136160590914326918506743994621794026958993997564126474604115698215973233961337589327285109414188349620636971315575598663596332872742730597632096278402205634157414663815884718777691440190097646957659802592481271448874680080278457737131622972266148921646208063504357192676615864512452875869039062918603159759231039125439807820861691524948025735451391822001378259026416166652420561848331011530110608494712672273220050058032839002069782266262816347711245023280924030985099325388147938352537464794914615039548894781735001177818263215906718694000034030386660488152473116765116262319220027047655467113392786590794132876109382193215415855766323878336120041849480722424459595229693508133712315902556812785280235181526149675090258889178339405284027963587961352676327453763750549569620911030012640151681526091056120977563353074886555872863815755314499046430903487462084831584477046688081811232043864596369973879144677073958382313619706688305668644786159613497062126422889980586543246263009790459290457681371821154723605940327502786923834138961526427711829729268822565561677875735862349498031194247275110337655729753252814739333663867582276086864094622474913775035685341178501558607223547098719949208199739452675640124998979035753790626342781222365356080976352810523316815452613589237850044211932116232346563933148657992001945759982499834032414120087928152341447101217983904007139099511197721383029281442444202008215338029754866720254264384889016232005852020252012662238298150105374081217941819347380999837872669421996271794946064293466413440323621891479415146981839839023393572752831323021687239462860550537099555705564636362283984825148456063371885429856231991009204194629778918890673909645580792169768027096971749796592552629828255793247540425283946395206138195539011425297697829439702564833665879374853817128274428840851392362580135710742325847984619604804231146577364587637400801896702797943283478521192093823952931516383624906598102972723289660271089526869903682739445493662739890797359813409668932612349761043299718576024531046423872193595275921110647130951800859154546475311296201844577223507914776688633623076464788373514463898362806729498517545163896022736966058262208231036355578963390535433311836464335416427914557584692115452936283107366639905912929802835700806001919035859681461046805548234230062678463704410245475995395793541001238002413468369607151442893875766865652182357000779728444921866356208831628378688542332302631038310295876310707339551368400277705791503760153578949850237757249215970987623801886381415080211564606406767504928633056300161898206058528355020359083127384119445565932336755531435397087356756619120188501406093142515673751978382916178179512728265366432546480192069941050583253926627465906681411633879012008426406481285394097203868924215749199843677152717876022274596055588558362394499356630634497945783181755927016824977470250431195012304893786780466783631230329978833984523543770463188719976273812553362833749528025996056271851539384634701323866138006872576106663577093251391294844672213730620485266155937129883491925664220695829317635453238807214583703891032838344902516709469578666150856281667897746563384762795726986387455291605846781027697151524517966712612086330975749915225480775071152460874963705781740593631337042518041426855892218350403655878981253408060179644407841815609585223537830048626391623909952110716932474834612400732573669065603364928533589489722783256627586530118008589578919575742249457927310806679929967229398443333336894671045707132364395877296496765122800247269085468150482474794526458906010874908403217145047821105722813426004898567252829932877870027871039051339766055384036680608704387584942280261631419537530419991251998896951679514303160278756751235393462367483626374381801571554873855625291190317971095987164779017894571837123997764844765668109628282744341540149399629101706062504359362279513216859285248268140098683988076711368233564866179228836730763247160790776669131178778352013100636691537197593656636663090795463850231399125913951222979300930297637978567580300769185531503771006764972465019078553768260754357167976485120725158890999368609608746557538734817952217734410344319840243639992448070291787239404418039654317625984658111762742167014583435237400014623856991787077828218358715117616160573649228581769279457760200298630595255625640586655810562492438334345314687050941009956828580306511098597038108936521673944218246748272252190622897087494805409013585933578236297908979543194099651264213543767761985375601808834348429902292992089565551399898627756642408612882779450145271908711516183255143972202924099703023277385056190456011400560921062451332492539821332871211687351862631764428554833069601755923624766095519933034524096981028106762845613362595585660153890829374421867918645889977083056225015990983284166343189245824103841706480376857313194279938721816719124132313846053728131018255850484946031725660434694626156083656492973339992021445433727526338588519412590872089964527581046859858941054075494232973118485944154700916050537147050393703378583801888888142141927712971367324049753677001466936930126779547912018572273940263349743453152539152721053131929215927386560191176087670408617341089623039115924624010191629581715561013319135369505697410158976101249829710311570798440223501402813624019453220772988082632343661969736600924832117233609005097828512742950084616391736898970647713052729976266609380692219877924154118195353976820324103250037051584287594206826364231906476054576569126518534120896096093928810985448949291774920053914739274849068468374139903659822678939001925607635285646729524715719140888703019122390866678690015079363073055255568089090610859328733809433746438303836312228287559496727974602045492248677060351810872608772838764931821459646227067711552999481499692826861465682569303242888873560180999058008855994932744897090694981490726565163999137242965797971366545786370069256195808613161338186687317031838327014071993181214239517593858582255803042450127030103206729267062435877420958490209239186758516310099649997426506929800402318999969051132122822279200892861521376562841445253258419646670809186615167634387071564525441570685576960982233288095921273229072132971988702218573743184077660481018660085171553798414948737800657913115908003104704604895910480200224538153980757635312748967013171361320190437875434049827987330046288926344162765526918608053893107278992168760946970232027302883713178503378501663612825836190873815754000835397947610862238586258030791246337833865002669918953666737221207889928253089923144812026407657825486946316620487005392536440239605231046722778631714088415970628112152923687401168406094190603222297020793674367112561839163860828061258071991259888005664243763448399168724036513192577046881695992537913291925421377738378190413388046862168332909437994210821588161055815027878574997077105068995565684068510099210103046316585274075712306402330038409838499330257298187142197571807626137173317314926080969130529232225129717414668325760981205353155656318354967061925784286055955945518528594794625827148588824964666217238100732117246792313634806997694001878536995537650028904332567128450379402418118546775931598528075639511613063843406083120918886542087770433562244201207138262637520841168714087476047302293146927818883095627227204489229852298228580299558638946551455446085699934283825914926439901170137367876317151454224876288753854007497775283445955732850016088318269397122231368469538481475791762076147501247182684097755102578490193017647210125827284765832255154909796392449699192239820894193915628280790521426665109404027471628894448089790351947973878295052056336581929470811669192341682022828508184962074827933716147654991076068274923747746280063980541413207587798450536766238192708673257486853400005846883695596940995818367138525929835186905009397727186048703436001757356586732988675828262294237557115905157998566800690770625309175471507352268768913132413169434608449128343936208248225832556072653511715699038314759380742639576957223747448215238035130013240930896619589891925313568057344674417818890770121287357589457503112199386178635851686946449974451892043930714613234025128303735945441804429657840404087069803765351288989422817041652336793573696269747885220559462540449820155724853327854042781148347497759212959908098696450315076493439007758488824578083410782988313278264410953919852223252452193774869560558513151937158012553766016038411811401413354370610136829381162468857017899395805334981418089882612123873134618530889027954519415753185637142255026894752030606377508802352495789320487772611121993419572799700969713058064831908983558544620269337103644959509324568971780263079017318641439471364306943644875538409739643163759108533376637803888307700426583928829442527652475683518825622918556580361690516244165704912240532603904160147704166840511735358206137799927888678099414583767480184140226180256524548412157429801755697573419725247806471780107864160820540252505594142884926352412096929776817774168163836371645325609332254499326628649698409079648277948381255414632573303629077087229028777348278559787421758685294282567203819631906978689253414595995950464517150469018203314825919677914094943603894350131228515430828833616057629502462833495358793831479595794373596768911951126370946118408619289725316042395924681603015731826810544566509851631719696854376558468040026564575236566300105727377175846822249998159529407535946795775693392442399486634712144522001786462323212099320782322141775260346869087875338411630335101181050760319129611533559167326937972019452327017104753121706099190790232026313807115808227998506701840158625916713168176072596835486122412804153411271127828372023677556056813927167414356811195245906667704111834450373511110471038740009925185535435089910720731529725131114029292995521043185318040242705083839729227111611701397316477988537421005502352654772084167660251348242344893365318813425403780162833061004518548928903942419503761648204433673413082897729512940448923563316232125780923223582798459088490874914386138624143123787229675582854259877315317473138939610880233598783736737777644455146861688402637688731905082294627426083636138282360491043807734316952281024786359548421410472250734820862485413642344198847345214920378489360731733393304614124333355389381650471784744454578791929938909104278856304823117125825832909042710657909416063598572255321678058668515751852913993578905840350146078619150400564234548034746754035157243083643059159069913460847100164811811001169960113816089750626763010442946234619204662142357489403839762321975664698271179909175307549918670222941306242544409054219858654376662103298203676399467032962191206098047837612819633597075535867523031506138160235617111565900961278329353692374242368358253599624560568149655271953092922068993539882856182674014687705811388256087933528818553047431042409394285809388394040307673944685614742356279770704212543449767034282043021146993628456817393122348237934861047565149614117104615881554101936614750135337137264501717259140231779647484203901394652449929605001118360986091800146113819629392011109789518645166369342834038380254782655680451687262771935726349850585966969886108770386040913713634982788152455981988261163061223748672685504799297433790609805227484643093197969661053058610869622684166708608223312366155991525485009576371024910574278641230754449545668221479855482066661757622827229093594711829268362914625743612721962826737150896390742067527141244425416242794305581512082992193947989167365992790427925241569495853946905090903242957081742195646700182753221991006523749818206649519976288675048100645883460566271585096610292585441040020675105826383756956353869250288679813650742309859930630372504998476651445354201659586609279201067512753491449496138759749371946231161723773266948450678507455427899460955373512811578135208197044074276478575155943590465073390404558448683258499780845747552172813167896748601835562143029111113737256709541569015807310481583044467534321065410470576302382351910988607315957455759283849604949358986714999684576628016431608642576804737405101626846882857298950362747707694975254950278030464229462793030525420407047668556639899774083147075471867867181643901535325995720597427717479681043264656626692089243103563652265442246745565546341718523958861473528304149729985948189203698497854358596148946266365808706264256232081804495354061703565344528979882532174741960900152551811996785857138740178141633445513733628707022574905390474063557771471933423455335125752269022746005989216198616971899483186666469668606169742422761637574084291543908493060347465586960390814096475962864280933049774683035426588870310418126065243967706668929556884364436090163331808077468248401542461634338898094829763990049017010437637148677701944788672254436290416421481177872468576041949676227745675477335520922245814766162014783926799041182607920920518926890549228284701791562016673448526059267612229119822456661590406917122084373241716236564230395936115277281389822295255121080838986228099962314408696685361100617364870832872644628932452447528576201540627821123521854301446537138842309620018380251844007431208460590332638960591848825243572921691193031805248897600222951395216756993860952877486101622462585648110087261769980026801964396438967506136567568391498001960380443708439580773915179322630559438636239798613057722537546645673826331293195584349601951418620981699821040615831993649148474010464309804227281154405619104693120950151007689239182259781020415423205674373954302264571246653729474683090214036642258416019405641350490303984274188714995839737508598377626497370097451117142357814011845533679696824008816274553122981775790366065997210570247988439081564597279583303782289410003413192541038919920858068996275613105051632952433337770505182706159931715389155933718655213114834366953566786948220336507874168866391597402183992827139064005252341599652359161243121826336237575523651261589003412216004928360916291648019454125017506852564558579714109834212654067896635083486110322237656904284738999578340295999548936549031808293625210778782657069660229426836957487567805515616554267879173644577727847461753350493192380759444635486718324867009990700000343243166429193473843358514216239506774873333851541294090786958053600062657215694119786107825719403940339861031192141928448892286344833942159124495729597953914852588160170284126297819283682525601353698009550430335688065088184804517507808337127658105737792936900782333087252265698418732965753408441194732658560535478783136766777236430572110609782211603195326705424797292957995360299477848696135808883962739861790162142290466940803347744441695588286523470464168141171681354892717446511554919780612368330409531695500808037054826492963153275492027854690389920325307829802196904922005387522057763728582564693651035468326948235153712034399056395391348268638661466379136672122214543816406158556590947204945662357981542580209519601812875048390563809239766846968414189051533173385418510471718018550754431280677842036558785167832417879072456459044510350365312248906232171851040462062356735231685424294554194412390828738455678181582037361296347632920036153176546780674654720565586727354251982549632088612820993807354132045012463654712636687913269942320320837726031528966947902337862969732612462380723573873275326607508936150878645191203006353754183940762641644297063374811431561931427782023705161802059614233884247339714971472035716552667679938702609948957957382229923936763823866578488297710255104786976474949158552433847244518041999153537545657992656683457382586419463410869999102317446073975037603634568564156777496936962569756523646607970563210293831437149478996200703647849448470268567147758205526299860566075050091409223634221076296110599374810136749410198624137814779875404448236165277138650944819233810854339740783459212008477042835192693194863017785694451699217707801443019480848259404868878466488794643552365806224569815286460695011271439537605090496005235772236040333435707810929064500198938801386410140507063957054152166807660729535366094262808857743301042133085282581269342601124595574200875307361135997387855862387454589443269962924755298601099898490824788099543797661537214094401794210568351353300318287139860652889179024868916562979175607151968667968601252395617551046559698107950225744040713955886456767556660177615422085537211092255349867576216192802806964259729305986094729611744170191050358944621964768157587811872406174666151902522957397456502141933261638472757908112442528492625776017641564127166854262345104682546067934046703115227376269692961922918626094039662641874286659602795081499104519083887173038822197802165767868761409644993449726647268145937670835972258709873477779543487436121676569477546266039270140444113524901082920010408935730404522911908771117739671609785550679670743621131814690350979104046393581592210081159258633359926992661429353073898514661530758544491266276658771608161645462765284742582253437582912584435287740745025450380908661536867769578469467232111654264139923577038970576423353881331636765681448129883498259427465688315757066349413573955031263628512149728702850652812152733941681028920260300132196964653695817959524261937855270995427335623464509635002210383203996666673217931740253564971036204969218709110094375722945719876952133866836911800031185721170231197298412814247267321483253320570715292959532317121898399216792849082183947920116064636580486153518024663015819507722535629639663725898915210015979084010289971759224975402598310838810050416196119853761818993522218034793537233753110535064025136590274679804486474549703605911362193376680194184949968359875971650922284017036555102853697617369764670060844210922012846752127006354577886793982313952129460837978211891111067467797503481660353471718412213912628382422849974413625669893617762193056326447778020146471064669102692848219161888638894649170085179387746646205202329569922866667155809058930103602567165629487539291296203758782479005174512555521376357295260279669643875961360947384589083445220325801935277480524530755721138456412897869945689273261445828389219373435211471810833801808205630955832708608572400613146229835917287788950289240158046488759108158185930197239747872402394233079810692220438481703894662026826057329346660946102174129853976151507077524431418790991158479996417575548427551931422770791028574291951161677916033259381084235562008812659650854762446646091529466832705839036325764439663829874570973767989083004025238252783859949554574170664317146486043417029616389954085887732832002001623135556570460223976219421139803089931435140732325143210213994335126213171484715097107841391788131484172454220114471957583343084603560608729110106523311920774412673736576303504114738862119781805900160917124428003342857705472027520773861122176269310728836307395186710046186842771292618786648115128501679015265741107508097427963442946106214565369710927308406072731485742298452086021187221021312560552112559746620145317183577198582566911094389315770453445513216122724584940588309244893285140617020520060183772517067119074330228459725159567879733811217888976327256830968377050739810966075128688883389001490701167184596219949732524393042216678190013078405807963937134976024541346476298088558710749492130472096030146296311089086468905014892441308162072197774505760764033708436106240726394688947404090687617594508820975496004343353551197938956299991878575864444884882756849954932948183244290139379755643830392455670471624403641298180701882859453795047527976969504667980004145526868905265087537629165995357572339414024433825588492251453263628260172120244962150049779664645195459718391197646828853769124982593802314966465052521998684896872162758441950234886269794306835310098318687727890621650413798250911595160372317032542730590906175021630845762674247736403620120357973722014590276373708536505117540770893968123745112128410112070548058631759426298849044340939267687055092299004567459382231361102272396693154406734200633623337094806062690246573493831825743562238228173273496328896546091386349784139591711617045221456999153015584344021341904437654565556176649952344401706789769763065824419005423869180459357710587305261025870654916280364894495151878039459844568345257771512228335926337748554856588419728443030202748106750766804236329051564825521123166431185855883192283528096899486670584585728271305273209416969258289439971998222931834256522923294539855264284234310672254588351177083936533529928546551838203484026122439396118902952168877289775460374716010176650362506525437771438703782495462586079230209644585477349210648440147291927361298634729320316026642857620619453034440558197230956294548474815835948493734938464471342757603275043477802021546288493937456049050268799047156353668462747096244474106187970118891442624624840009100556359158275265784077873141418459237355752466908196690038773722248777579914934460632217272302539313876647741635704361187124303701205984412207956448067389016992694394534292683718282206148413919177275505909948405950283680100866348272550827084927392674921120752077557965318711726675829260674967657997697045136027956388812812207651426040659497123962705630459506414343997263061143287125634366103215970787476147649012423619757933012408949976794505314074820694058872347929152395357264250375776645992021505849267885305173153305546281135204379973427797079174881014073377767048178572104388757832617802937469399318905839605331094891382795228056938270290998942655891885232084377987092123624395365551885666335379615533357932538784921801156668336699738156550766602989921021770866335351369753342982138833752210884455210534662554738677396832150866003033605384281381793905244014624046569843835552220208149137641408196391490133896817831794131538032603349190684852413613167352432491017214570302241992397330478028695798350744823825437980469884184706066539138838379414791006683363092003269341566873574136795242527506777046667694434604727296151585505056140204228634420846492421832628870774344551128789727871709682541446634416117554041299939220860812862187052695046833197714535193155979703149111238156274634548627273766166291192074622685669723801562852541956965014157530381991111602692784092814713530462070970202550240028709114138361051627403924315141474962935415628776821382591068185555247899617036834083212448411662640612581922134007325420092980471170959579612862616989472606971155768492996679516919101033593936885832649173346801458088021917914869675957433715735352899857435538300198479946374121768209960637204116268808743666663446499202262735253513678048037613208993639769682316462199898297583058471480096885987370571159392108855210505074161976340168826803551027939573394959591880892635404179504928122810756104769219608062519786701587882322884607008287190353075670348534982803552120778731547410889374735891693696256626877326776415166485872619063838054107275865761393246142823605950244466014575655504647627925053041498656666696037735219574210425558203929608076615508984671897639897731550724454085736655897850912655965530148643224839685515924110366784150094862993680872470023608063273114602585559134407282714065387364913437032914985525906990345599061879563302137992171245968023164082251832927985591738851305934502039039973478883935430887803046680523893199004190971547694377433681660574778033725020096005202319895565154283165108854603300061833991204719810729276232398448487261496028191024316514891089678494905036429836292902450043405973707505028779307806791649677003250640192373353591858054558544216297783503706479400312090128253978287899167208792037409204557180295193285232476725439624029111396367199066602514148649111975088087018506698692300897266991816566611046387342620049327155702998576519575568488734742266307089265666138376265982216658458336090609898166873275596461598376348552678973391498715338600459366390479971387873953626190870045698270524536685984355504386750887173752522606772003982593559500114248872339607232029760529781762763665380845340956336859997614453704519232478845648714147908884427868991382609986190433304284345698439521224369146746953922426464634904527103866567426718846488475243389436219978762875808232192291265976603753862444779823545858714806328439685014136177552537653431830297103934192775133920699182601901270272509314435715828717853139748176811865862231880767358172085399917634826610883972624057312983827841122809604952427318872653991911534660724013809952366759820929124621552584692165329636144846621428241444028370538878341081776489893416453658714991337419375451336643654346389490686262155904684945739411539733687615534699672355975534918646673490772037827759914141307712304808433333759954619147289336402469525404359366360799921976777994954440160407378534994212300894459431872855183011300337004962993604903032490075833429638524103456410774646942077249650708378225083145833621068531692710180768105205829416647569763569782268586036011508036781066141331713100428774866894140647253419179361110524705965931706438562722766758765700972612653178529865348165154767498351856822698608973400006740446266345869051303100558261148663939374986135030366197787076811364966930118502354696223454336794833449268394906593438149311302110593586328499526877804141806869120059416008292416776692182382682972097653186132976511292361892857824566356229186921700715272178625621223381641905846195808956646377744848103600378869067107640413856868736019165785111038590557352293994939345819084363025307162709258320938941170725324140221559645078035036821474807800266327293822909476489460883090738609958512000261336027894544318499665316199469311613235204521580395201979929344873700720957919476813394139265665135580351424519282285478671844904508314944949048692173392204049783648939692635182666829460627215490905772473903911253307853888611736911155185982924648568394577160262175272745261610588316343895415366675425638740401690255061643571914813309310751635711933066233921963374631592385488591947136645895363518349087877811303898837475006094046764266209737191807378696474049241628127159659687506805983720538010285349415814232642497737232092528061616846635854524546458038707970339761831763777936123657173115624776417487534989873198896839170587391019458920169797711130244648966319753980087980539022427052350747824075270293914501875278971411586539859012284753165886126450248103433847149733632609716479534255613491070351633531912307619259522770883942413765659914215455021212147997096737880599814909749544924276100337303953726063058415989028359467875741091870953680115433422046982600084496455043456175439733537091474142856200607553400302947864058229480614560450563689149903872868312143603017036048485341135115642905891426825585344233241409194280292577376005220291740993255406363041364551132950439440717026303099771528326557637836721002336507189563365970176326722656344215527621381528712926084182415487250165026761908539583070823680936717557572817663548927367168475966866691432288511308645987189823224465068721290917640369160913165994757306615431819700978927873674809221943236408512022590012306663979590746195011371038948594781706456651830947465907449792914785436934795687352424185148880727562883018887264614279981603154087860574920141548925788173971361888946329378973558822550956550871679305036404554709654210100296603178055472780891730807244240925524516357983402244802164978555246830017460637157784404163963300995301129891440584742059556674792053505980043907747834121357913244848496496610257542873150515735047350074930269484345073653905279861662408116748432461020272758955852665832879741899725287810858214091328319743492096686084774078307546880995405278831484635042907486540012363615639515601013762618390007118945987670138833087983630325247278807084951700539027601568940114395914281008726284688659360120497776393253938280189924820524568991687034315083256067196732853610022812431405250448189269945530132421952068859532906889892206216140033413232673268562481323574783960716126799055776378819202357694918832962945383525571668560974062179039016882541265597404811650953752332629395015382377056207707167387644663835943499278943383341279440487207854025590554320566915118826494947734592849593838801152962582841193385140445116877550312372390659213767537445758536638390643564577919177793955113152010171288683550199720920035365293519298068057687263128833018354634453186582340161930945349477269005022776421168576984223864682712257063882640443424410915495906265254683260539364362607359768979921780006205910281892875440174640064803268603022924186806689232703052259568292182878810104936676477555554111907256516495825021485634206800412632371050700917768622326489362756163011622112189526309588303296491206945618119834405837613470766393228559370495059411606672553070777315660299272134915619044707241080792453874793920279036716890604395966532959760976960121128826126085992688162506659546151493910497260334495283784068120408187281117124725530373525840733827767194015015366704770033767114008737902329211127706072761665895937790431035416851393192891729054637027160620661457686582037158225363068810387922077924540360857537442028098626357594199179835872241085212778514390174192931766130337006060512981439428290231148501007399349789201595933283662455805038370826680619410479020846075968212128002681427463583921368858845242499222407665307943705790348206025078002419536662587574578665080411625447789619008997249883059868172593134460933547778987113539075857558840707166630911308787753466739166278327862257679973370240715162595046886517550160867678626715392407590867553820745256571512565042140287565997670373886652426677477649139601442189902997281628649130904111357032685232272465288191076035192735322947634397655141273396828939213343103762130514238033380566693597096638603343440813357026718380568955741910561615441499074335442307324770198117174790492912179286615793988231885459803780035618491740406743949168796347579829451290095784803024767732927646187303889855077284949947848437331154377819466763468819335506585658678702671371724246387548767785777982228224279465728124906248881633645031048141153887067612261423081009181016891573357449833017550441631783680736281219364699091434820812454947327977774854660534486930479525319876619682743392934905263992486404554883687038206794987132286695295379208440204766685059183480759521134270534981745800722432458250593770626712435105340578104573815487005705611128330704016058579078104923999108767715538789369066089177318669026972411314545201967472061214019128241444959834125230080847505039118637604274191238421206588259302305243700227898206462710665932079843098110276315388470033752967581012192675206753721754127961561406724211829975999467702303534980032996081997448210368121980661550149889829473688499918212980233145480456683546915025348347578008291035330518311550140281119303752613744364377394008046231267756045707521841266841477805886495079860817583709441650990115104756151105351899146462969168329145992001790657899089900411022260806965119055574718902365974883167637382785588104458251306967973280128774840215361423135061513459739094713220920910483856311135614098315227733184380852650646461047461952948053452481244203962444766852083475969596203401104886574782517789085189490364713512490882721071240578379076959515447085726938747939749412171315758619338433057345128929213516044380248897416576619983866504456588330546164718164607726617827815701557963130887838517497571185144002647671289413620848545736198249417897576003235960313987263738492498456639701186532217642950898882623804867984370890409096886925478735985413258808140454113178920117269746952762541762954824389019822520724483365938102162548169303862819027714942432774708747084238889662817593564137057662869953939200162078189535896611934603235715725803318761565393719447965485989518915465070407967806935915591621438536572911227590954251887045907040883032617981575104022947965323158368760172341380675338223894538722218069440917386544694865003322872146891118324410336413933437281571717076610776388430333246371621127139526225647643098610594358360446695291659394354559587758985984928118126327736693768447332683596146374167771705280079549032417133780621161885591159988238011025243407154138664819484561201144121911699501378279690979208147984023371985831861431308207354723199752068660267298709269081954128880034656880386941992050866819757881342992419350105379783135598705430956937341428350885487458152251753195177473986763333385678219121526988982425110570027902712525333435928850684959888022377711394860778494557688399035629660293985300381866779373071801112661840811237228210944240053681219484380051807939463147239836355126178172176234642951114828557953441044001806653742612943857714864789746409882964213431051049042023209727497192814388782507711180845325531457840564113586953579968032488757724024516604146515898229057201541829063850453919410553932486195550853809686090776434459807016386869813084551572039977830538474443440224665593326353342697818164053643931896659169098123602398192213879968075371548224617701640707744855462675903856317062066765114523365668567839751120522352308404080191044972850960589388583390473618562930358435733936042248941575762058567559489154565912798759062399104574019944601675255715569293987001068683414348649715758332735977801610161976157156773577451186523745932031081674179232257931757667001019568647921196947044055079931407903128643562645520326631703662295238775984787138245824735606543369653993451294135289920004001582999852187073145297792311224754521663442544780548072197862640015320428676335235206452220082045384246418691952510059710535864047590997897854896104104114564136748636900540921869353281363353104137520159407406725692798618750256875447200343503933178967469378962151533299385044709928134358814111510533164324086095109916339770559012536158230739227249989189540196092035734393231141253301519424893111209925951865142391507191994828296544576556808727096850179568014500033532799891792181006547041857506239638272409309354155181786259022761908192473327054388038416973832189013763554256159304131557787714439532831061572441288244157788171924299195514536377710157632366675405358273109878941328819011155599297763139756906257914282613937116531474446180646523060586148351605603813436730486705964657173123807203628466003725342694260327825754800222584565331101049225444585076690493821094922118859264870902234266494250415912197454836626276821126814783661066015661085573490354409021470083971515000746816785077406130290395375687874890270874365221616583637721029515019711624282079526643165344799512312075662069220823557452459833880687528237737418315888182577205156645128749404768411048728288881261454356470837574000022919327632973143546212653702370660302379536998871038682328262629646400772056799534882118517446261985525323821156373271659172636336004429543314998721547552504697896786301689708622169683910525147011029364050712912657312245133876545331692392526841857208646441724291275822147965110584476713877284701897477640927348512008016566725618839542873214690821801905854173832005372625715134350719473763522770316806742736711110156498000591615092563899699039389732615934474457439031371257700627087824329690897356974199400093642559483079536481536789731363869247104080408742562607686952811511592344238223264461701105802069339639997201921054654962957379412218172359566194502404277587420931318783125216273203713575767174178170761038046979033714951628654508075143669213083448549369174863040213044597567400932393456566092247701541926684009980793895789413596828704540862052003774029600170875392855008646637708479172660061410878389701074694498657779478116747919822982964142911819089913690606117509170386872946420138197353429184776998534837422548807373847970023864374294643612432736853186153013187759908627655443482328253887022313166614633167734481866541160949131118079050589922636336610813166324953155256332238975278066802198037843058648929175617820334662766412119614042387760579180950025979229307124180903681281922227018056556319726188180743817153914723239574009151836654234105876080683451209515923561405611685870967644304564162015784030032810899071644244725361074175811161683577322082260247868055113388901323995546918689117582560497630264616378757273546210864192220058771811026734759831375543006165561289211532604574089664761861794812274638739703701411335701872045514247966589309683601004614134343260942880033066407977352929783487498851869757133318971288386988768470453990974877634894941609301314944037274949626849445661933960054986754554544098568776645582290335235076399932270831966073963533565646530964545036290420671773765919131831533670627011474893283907390466518028538353096187698322821411264974397844779022031893605642641101324544465752506346008188650159732016528410544672533031274468960553371941823321636808958414318276554395349196706934818407974308431048673171822733668331063626675245769763277514189093764744435423362262331683949655702082219143551988081131971847436940946214868946117975997294579166832300220373197973965743656142961373424842347543495408365863842006055909864939613970792636958605039300586324097605966154819751034744776035139477614572067137657632162491980458546298221772699862596291753082202253549363268127269332422513306275664297583358479849491415215564710291112336626205806149946375435743400844682576922202824087047178518338407286156686538661322238477511274308043832500087914174153682911213535764786131137427949833275672767326928298033509094946145910293685036168568045344661292275046819910979071424005505367108915569327878817915855817144952432835007525405851372402179791038322656930389550899714715813063790540935163381742799992018267169609000161095067386277783247552584134895838623372214873504852784212914014827426646828602792478555101728911589145378570466945332883997614665017856576292741650234432449844077280858170756588370976584780896445255622846635385340771093510586488171510625539749744708419334322485413411646218292986851301610090917510882274079900026844575314528435369519873180850334323114484967599153800109239350294871397994674753061313293383233296600908508859672125081160329656050540293347561433814708281159130805168379882376355811531867755763570528638505938803063634598120385410501447866187644968023723821488880505591193470050092823151290798513548890828312116182378934323838165522574314421650902188189382308545370805269274100533145622102349657272141134738677273295472568423985755590962394732771234722720108971173130296426375584435479482167498672613869693690613771896581267286081848307002009987971860411699294218816772199105522439880847383768086318881834602951217564205694274554856031288619589645881397884432138572714272422503088845886533811563251060000726725168725778853303029772135291271379669866807910306920514507421953753209584318665630998126164355531334009965562233175245909263895906067201353147246775406180030613347440119433156357910045204120766083696310502817609697428126315517608493279621786497442253959474649406114919558040280278840974833116733655163058458854274105227024987990445240175522137819909033261770711440411796255679371274477822395205354174226329802142886047354801966533726488738458999618947672907607397928253150236077203063815370450374174206120023836878055369387564169976233191981213119353110378592507407658984555760885072232268638898812037178979092577964544543893185805260584712033073437121975071961909313258514938460728845390457843787077096887813492764995422636050183529197956008036035987562673758505808189826726953187853833279231287488417979628583667997902717792509111584844331062013358638997064889613299989344617028229692398242379204033700018319351785693462702374832359044723178306200220355472875928324155066679102558407362615832374879686631194268122851447592043176504785108393757191359568106923119160901645518598339591076069482365917542759521278906224854822064538766909603181344251011002317173921773425002273305291687086324726541091822667781662841254066115882823975842144215802614141409373117546502100993010166337374006676664383178377560127418779254929473273943829444960948621905812377691741017803080500107748904582360940909721142662870307541771814791207893721472866322385734735915503234753959398802744483792166051985897046287265701491285605211162908946659426716530513878478525160714560960574546724549569071681006559394520355279230909308102186923099899544421175907319573987737133720047012714245644043921918493909801806067391404886403805365193794622250601393829012521183774956494319424424571412752076787309705160784097050707307558648604142060989644701766519084191319901641081436541678927694945243417589364293498779602210239885020737521282342771468513370192833600902927057185075783103027912954429540001287715491935230680816101561233605184826900018348067131872830840672419609955035705813199028803235943461823946407275162676138528095898627655477909064498639794440733739688912677044506502669175420591347326748755048184858529618149633327311171723226594547505630355980382846546472256925461876361599100811489316496549661664706902656849788061662610825655002659582717575112274015496865546360637146356119092793952217746930373653370917528940040178005951158352245083411611723028024070768150488382870083823498392678313121381186920665214487167178712403317818739517218556892461117689944214838870368598677580410818509811944497268078284864177556890585530386866521286241115111566033331529302375558961320342947809845302185665701735125064460409262778229749956781751312563150343045107929332810083596756723861476632259091693684385583881176020531548042597487231259346730639657621881124203065768292851149051373385397000918245076214041311222903206323243311914426934692789626471656508957133199041934276377626759888017318721227859133095918764786041584226094631355531795905419217309614757776416079175906569248026282947070022825417309367970975005639615252751682873531025413338768025141088369916285537292754373637359742273056685282455467755980192629004445397177848897374974233924449948929721647568923504023362435372093091772197418642294054563728491376239003968564994124717876500468936076587431132441548884094346635451878686775322587196341257959165085165220865438394052886272247030476358853474437413800605969065569849005191509668588723402343169295299152625626286694405578409724448669742366581880923590464433624920742875193817287965574479216146704182377453691065144906303669671655494488927399832980307033533652456688506436761764512074039190455978083978544787496939572913976940765328590311984811774049437632330107833952019559786680173085482117708041832683804806513290672288147827429919492300218005618223020068859655935259169872008123577887704641836385772068327209640245635134275374402247304723595007835748026582160168331893099509309211051655536171020686162164841931791474500304213762888197612858235424621551326672159482752853407651451399753617710062287537331560250835142747108064512256981262186097633088730669491595711442586347394273937667208956880949082029855630614865979291205338662138421881846232319220736144283547649928486948111177651069573294647699544363877959627615452598411406728141332825393765253032906463430997806709262228612393969073058349365565292183398678647983027522137813723500989726104063396350586978152038973905220497350403550145542202175094499483345181424171677604165202620724448754909772962379958465650999429768971541111460868804592971225577975373933037857498436938981757599885565876373699126323324631867558834890887516335120293122034291584851878388210019179290869392199926373143535278185334002947182456099191838058766557111601483438070309496481599015214347250450129178970069589014180393599037830855917045017921688550220615469839643956545062339465217738624201018217046359360590404767889083430986819428566172668997628468610279393247400641072706707034737787960213814324441588125230416823860343005169088983366705306333743731385918860540437437817491366846239621250558692436128171995015491091195421701072179802071047391106555622670941901503803184944205742903102082774026351907048473565865124248822405882367831747140040396899878242293613505703576406085909239314820578146008049552094346380919120387551455134905924928374371174650719463706843869132603214364850725431496363229351709907817057085438043291773921210124791577307155438215639318906098323909604698230987280467939039514684466409846084172833022183704960819548043544117110294723523321619167832178207018225350601105260972766013099626451012382177694729283285018822411658305948011865637374983035349509655937113163428547223597962468142610839964404321234418573567232828654740493089565691025619381685174508113649348744832662749837168151980323607068276732412952179907183579683701345578072914730571627577191516536132094984318124516510383386706267178269992679941934409877608251244894587990212979783704794626704699060165653630108657670807280478550437453689260086927339058339981763209849905543879376741249240607829685689404208570586308760433654959731232403856510974816896846769492548637992551657601159793977208275897583075771255372675876572663522727585454893815435205543902877827218490307945616329057729499476181348723985095237028282490864732363547262845447712891105034772860159659818315577429580990668204641938431296209646020319520636609230762050838886947217240974609949469108058824757837995294008775825425509278801107047884188476171205027220193503029759920593999758626235027048782615893327101812589880464636600760032063161851096620703545232845436669228721102251848848780651757027115954524261318662627079150939426314045218001924547837694650943825880266460669215057993355598058272399321458048856653304688065818852413293174520730870609819909394279510948874997382664719410183138235913440906072619614750489380676287144164293572567111666287086889871604640516301332109275444136519752868794888451282367055019917385368817013844475225959809993672287243521737556343785239240846366114380679757167417207301966297850451900378780579164970173849130106534140856555675739010644945133179975999693875949128345148901831555113955237374552364048847766425757337493503446771807125787977620454889137134139471842934464033802427881478262843200173018935556452275816793875476482556120113593779023610749920185747325306066680436225734199993079488175095450377871019371154321750657064861867763683072980260418320405120126775993606869650789352484164390745746614018502628757831601703029521431626748023992058018987123090286607625562961931342298720852481137223052141884393300811180067060655500643972287102457847895013729638838921847806567823600981277598410632095141635842780177236737400705054410470607088264142790960411222809157368276819652884641032370333702677365556307250616656419881298084256280541175745564122857655653023375292050940943968441232070657449152022016139439478537947451398827203194445423881852821702294515053570985816271473230763061807541529854503419219706733286601908667967075551570937447789288128151595072720848820275298089741639862795554318197895067952324378753746465344134472552749494605712800116278268204756692823221183717755766849793835436515656727864801144832443317198885560489342383412019932634973415707566719234074327326068032933535025799740150930274565563831542863651177867760390384447132979101604917591472600051196018182119989303737902784855916218047475799260988678922265504423138884605985018107792613932047155018568451470532635434435190125358642821979046538509240305464238061250487650896323788197019091864507443686239975760671479616559704210044110786884969778977137137260513048561460102238352630740075701785753844988033488111144039162695408309451797819183716560329102323617249161039969851230732441795765981152015818900816594275963999340866750280597520028697880226007981857412574117553855902207152676760319400772080678650158530985911858253959043271440753184118278455233459328726533330012740492072488164224486195984285714345844795747876787038108162701972122883697668761570840459245116182129747831726815934313018006163572187881274908647143690606874300389504678558077900066931117730533248624063837444255536433431707096171783376829900525638145821654159289816649602870065494558482118562157413958206693136673375946715535883199086792762622187393218448557194950621452819759439354456433355187617403090798151619271769176810397382542003725107174831493507551911772986260039013185952130123387251380986327508571092423130187026963270328803897727206285444769285224510905855987703935828125081047328065771182356316005727688219152877380185780769877610621748436005897430829453768076950386366247804628032921691510371683553869189584280298549006008187969484943987542636882253664818352152968279482213645763279431150984275662355285661420247971879026492702953107154305369242650223608531785120286741483947430599137154427176765451729153311673488376759868055315489715888734699166218107309906735485395128643587829013948643561026371953582584961994716971486561558480277053227325178940219120358902531909279625760594182861928593754541522872807262185321833217428809887121761944877412516927031292719514121701050557733620695109460562395002974733816390165213639348741384646511489889337202629587158432670244115807399585445547069317025579390602751879174853781903160074576444174317871509133555036286569948159984005661529184158910683145436461033516526165327064556971007147441045532426464540604419117533210017769724673478952530128606839604161295883900375489084908269198592840285620782810724301026041451318938288940390820791974681045380735917841006140487937278488249704452824054854839129807531393622274542647925254473941131679332799238269227132523690457046047377134501006003535669110636285713109809063854399160329510456193721576538891260302220311898615504362057632862914821245891593817682585845609459906711477774490020697488723613300805217484520338410535220647981938626514827461277067154429890983994611966723123952317404852815174889143721728906023580382214034934008689122504708095363381116295005744247921851037238990538273260420899722057674467937092429572243721294686864471932403091433737048918137324047848719823165454982217167135810890240466632002760088473377871084764250796853341782804094946396252943653858351841645085796987404360503983929067722011091039363083268798995418126745106420997903221872402650772522818321607383817772104637019752858825662661623319296741241358464382055025275070111483542045282388085672428581562428936023037483393397846539161156017136389537743586797708479770492554313532743774129143229762175515445297848130142509781148684498041518900893719366932606989670146178460063088479676132537105954468905789968437975286491436199628990300381134171902330295517228935061477641045751250660153291503759423344537202147828631703801236020283816002781698095916279017512050004452816397552204620409211642739683673280926868971131414946171094693252468264108815328822078636900579970124552671731266381326049795330967994288809108291824173047740041851585097503889339246084974770715526075958731963882212812948584590374937395770060558115950486562469148639677549401111385449510177275527525252846058764612005482382017226146661905734632747080118624082694160581494441037881938431546453187687046238058984406367970142799574301407370319064161888369128990667777841509654961132004416192398309571607317297188831359287661107537641954004316586331398124227169034564320742249247064609149645861927118720371313882736010184403911552195242160910412580749210248943877453746854482130561477318894263999076717556545678652215719752221734913820884607861709247932017103713506592978066921295924954652393399806500505915708543668584938415188237479607492877600015432615999861603169250482868588746864541339964905398592369220094840987843980233842876033475392238554135192052173049449958278204146681329092475846853197601238287459382388187888386731284174120146427683666840673395633892165779138427715279863613612531605898179801302354312184548549006110060491177139582416251966038009691700121229578273264543640432592988080007043813782127787223094855844551839664964201467675279174219364964325030390784048370442237481487632781802228296638992094246125329694259520533468497149568754505586876188999593781991959198416515371699351002806316656836405249817277115619976905306002341379172089729036515727432742476662081716182855092673669865909367091444011524328448097247036252755492501176255516420749001290561368175774893255284257776792555438509062069698770728968046696275918985612548058364036388908079822158731090681501559720366847284246644156672813318362764032739108394913605192597546345927179633860068447067751009168357896639919320453375137011365928792941313161202627805243441075728894937539245582095641292763798092423286449769328405910101071055245674065576314466084460456502196670228010925978186859847539362788192200374710942910492369776288622679099553182417380839080875998969025693693476063624366385128822217699291286947190315856578203551972340942584933701506102774743620661643374948527422135180961444361118544357899805783363113361099518889860678075448127954998604540361390634796192002468160470291829915640436939097352838771134961435193577770306213152476244317534323811010687956079563723057753542086832045011157431957789261782471092864614212257540375950424313169917542360353771677965604866089778484514110320293861883556060599753054721571466534456420015957371996390530576391973444221262166573343766304149446195090061411980310418880703862844507357752488210378107324756952221578843895561523706577941448901263151573128273485675922140240155694019889474497019385247486425962515596060170700805727095704746912975542594119639038068777613335580007262226832209943094976140776751854013757165491801148065749092653256894631861255536035103377965031111404300162747954133556401039972037019843628086207709068727795662724022399577269272467802308408128238845060491748652053119246125020549428739097031901360197264309190134185212654266454446178060065387086532266646349001957932700708319658285148504133980984575173098027184809131205176634323909692840766184176684870178803485609070788003734717983845445577549544552571529118747791893422452908755899505719807490914623585200425078765373774753993947197313606369049003022609208660679926890915499733528725771756623048085932139135091881807218122908230215933570726939420939856239813895226366890625277676162504561403419895749604960239278470361198699956425057591291176853942245811597219978496994761809130769278825483167963525747032173342239852752311171459794235980010542347765411108426104132867151903871099683635230314738875813296000802983177605769012232674256908059382982089641467424481678610653125335808443814797484744797295588631471253853349333199726577483002903160608183116616395054702211561078519472014538031885027188515710124046770916343799864661605661634370893907808546141799464285081076425455408189680291625083152764886416620748186629183876679081448064257982194777527072924629094511656607331935284181846913736470760881038663188596439501584608592132624622644826825515847972389324008845089421839763451593210642323425605147828656595473993221035940673809255905510112419001105113009995398656627872841536697331599014939799089856081319423873327940796307580981964957586981143345547196800477675773356846094297571005891771772931965331308954500364260279576875479681449716926962829352749051775653848273225631448634197146609061453328577384860340381966734401812916860074255819616792238398183403632351264714851526534434357304192377743544367457014856546404215204578746298262906496561313748051094158661615998514469110676374057651047129892438866378292513894625868984025195832353029542985667439923057292749946723820527549014161873240391308614802741659963372745999252603217360856269647369538593334507488788255891674114688059944908906757925887313942329244577794442598697293682608079529287092264998073633265190549505192840485788991804882340407512138819339835483880043677272816394421628258446716082952527464683022787782316018514052917479632371107122821664205485819266761174321786718900859482626800442271595752345854580601226526646187832359525549666022035744603186086516903179977156330583905942532687491590211373658859441655058351745260766354751716966529879802035554796807530604446425851129087756465709375960451492737412265030232294212516781278335243351573849340462722498198878944338084806719315845879574794458468549176931517588098328009361782962883713591096219990208643601108759186763246077238011990638646153976019060480977621477008273396106273540807888818381650718899406440736947601924938655703937395848274345854998072254382905831584774408471701957365758447594948506394324049374356051616649033799550843113231830265460805008122905201039139457775770025356014117739614756118657967859214045701468236081544125478954419967232786478577839920330261638956869097667552821879922377351593458042821678196728048339450328314705859124149574643294379894236154384817113180299462688328462689808277567262435118017153527712827772706775511156279452155538245855259014358975084747130557114264396439739751787403703068180043192902037654880543760650699298746235028569359141709740813447722125040584232043431004164063337640077050556723488012059519011100713127241890699617075628430365608581570602947627241667913706009479737303061719353621778535640454916632203265090826666384535707167301610146300597215873847367072154568610462182244772558261462301640172039127950935222403224635962515049461527359505492275941962764753012891897862368390444659100734176328649447352259514684566308009666091287263583497300739579438791680922135949631516075491433693156321376223391035507484509799842058901492422115627566693177753486947055314172244955060983922763270772702825226107324580927363570227833292569156536887763440502895688804368289655159264162607651446072131224748229512995483426918388883188490284576284173981610156181832126795949486823807053406572521607711899455384724257751369803049902657666923748217743044809595265157611287166166020850340266020293767678568625725896438273594064610122116829432153386448437331096294116621673799977254031920757675697881966665672625823723652847659523431248647783336107704966746435288577980733582078608823323475069748259088107224574720771982835882962143206225213178347707631433028320039810455552224541306242724620869435794941717870921430545167338601869034584878218180048508223426075734055573391505964411490231021923381175327341383977842242140286668154793183977604820737280873730022177613927122960202017730614211912383926017832768435608674841120855836053989950008773926637067024190865457706348961993973922192789683408974157776648860300425206917993705963063505411953528498157275372281437100980885489365025789847105678173849430250352859174515065842106539311599654796949547514321976478983503912485982929040180744530235633960454861966048104443361532644828687335018718682233179917602178171642207367047405368837816996427940983680007678615015845904667610572403633044126395924838979718967612064810767126661015100820693476945658560084230113864855097132327768474849214034389589840744655707843462059120087318605444809808398152428991012205847491206867825903661576029071847203024824273518677714623462898078279557916114261494389458153107387171847965214386780117768914049201616196767438882434540899297040175547634625923137615766936307439269043419997922424369145697845620143545453997005403905759630514279934637705473114035316704011931634157377235128227179412418351349806224309742102823900582144298449726789092180730718296368437202063390910089656526864919309876966322935816153408915648315799725376311701552524519145811578837836731308180891950993140511531329751633558015520317074933516387317377351446444578669548619116795122074853274248250316652335759481889033726582493401514837249478988048612816297659792237461242427592425424112570389857758506499913162512452963736814040737041714368264778582858290147068110648737840673016488991009692599400029658566302973968603254989470201216828240811870517050028036429940681289776958261169895309166619956255609340994171421256105150874332060756035067211495799075101523237611174626209294528067559013887979178002924892634928137495899661516327341085335057543024274599327645073682919122806495165020555619431084995636943469352074059973447963402291370340427399592248039721347591548472876056523356453359720508163348469270982461819032663400276020780432429015356424484090889665573321742711852130196361669368444287562855043630900128259145772167798041230606145243186437863809516590714520324700827125525741583048614003817314431017832752119044704194995632336867589050253191021202232450778949631468365807495558936706625023370731946958256975094122519267114034681517292982340988192940701341285531094807848010937516348990043689522251599034298104234200915135614484481399111772538346742104949184837661631591599391102560661013329876600301933279002011376900802374694200095380395514615145825913925202318522050397752427613377916657098162656233415431661734107929639202778646358082645614172167489344888085730370017724874114945317025124731202041036324318302115642196957752573872391397472968459688021208264285711374888335690987156742165598729995975954263197767966318436922049903950990678253694317096214829690553200473393801162208760339284973087183728220326666908584114340765083213844400686217609513330181317899695065175554936951181688810411069787772636606266298220709600518922603764540184354862882169640611928286908551258692627208712883435012855101889371846410137470575196847378554271559658382033543848187395786380935091641647177528824877400183593572990032324981769268499356456228405773042318512295150352878390530528380392262912855405245164092884419272502354261675456452996347275205289385448629995101091202079561384228889187921748364481439265943539894910223488410649991870207686063341792138948021221395743676649713600915518432623823945714301590817907610567544751180272268048957523103817912326114568055854949120253393205084225691131677407738108140059543815500353491635456786739935679192114536127221310041344471894478822630207946482799677082202162283803230785519394109970682528765086645333625561093203000756649429667950005053205281816727426557644890475017453534923595014905423174090495623671497913765057603598515141557120583634329346843081741673217489036816595729998725611514290083382144933021935068317054926026906264752507535949973496920597201770517434000843409758583538858973729238265664655339556504643000321042442002121141643935874587920478498424685140291089618442019195007690373853206063754260931249866795778270492717302893430253474393316176237296017185785402500741136917168257771650311305800378948090290329026347766041311583072818484956752492910378415191934077284232987971690789323690198327648288530686340701113496164197634241909092147814202136257010323110718976814626292240321720469620888478219289558772607304285978750443909509087585906416445850599878814480766313702714766565909057161431136910987916669377778723340114602090922583298223464545087000482337764757806012265667299333199957347853661697739398211246103065341882821021174157095149095865735288001875254375885023924290781698473318521411238188666180713148792847632394403814773333431330263394169609598154917494260553027007020270972080289978333695698621756907482298678828443566781055924492327012662712353416740026404381704907213657748401430141249193109841576414211014560379983277131869848983033205394191677750624041643837713780761158239722893274914070699998070665900842818496893311870213577807068811908708340267847762041684578105757346735630671736614926079259803030890074021616622752504371905049276505585316854087933383703349775014402086513726043726515155748054929834539574427803549906397891033404308825707082436523146313020569919902745766079814694414319856304250519334134757451862445857026353104618378426208580504852201530708858010092743667005558723340060975307688563056675892450309021629405238499144057507515325414325397139168277774260069522204865435923257286672571646732615666834752874912494757754197459417451353831834948281473386073113189623869114421832903124734124486547776608985175756343215237331416265691611751626956926610201030973080448631361471603103054629893560918394530213503955468073905914422453173438357539707184093641000289581386537623626310277741031853556956555142036607925637069399682046058654578778722616724402939757465964197076943396985936640829649840257178017499466484639568197242145872622635499382774009896303511822037418820087578479534472490229811495621377471034484750669541661740524679286595426571308871720855992562805444762612601765533744997802501638139175238174152865635867741490882761838083242880313301800545094961725693110627899455669227596231781637979642055868495740422429348153237372946106983238680183856395603486226435222971883231498798619264573792694600139838981907193536647553273428545805100619582231976069225908683092836684032983876728347599453743955162260656464457715225391823871846811081423892889325638885831833690836622080454959652319491079386396918490528911054670384343677952863749492036646090464747426673581698025019397220348542894130199122334101294654997420320628486080906918004235013361184224230679927896020905594177024912946256825594188629878920112554751355304744592381455118120231105273947812806784929732571400218507217079783642172550083340013307697629395638085259112455016757969057218188198181904767221545848713175945737752325890798914463292953244525727276576056849796078908258196662309017594063880749164431243502506388026507233815735630735965329183446052566086281083299132542702459074139674140387355754262436964031230993394753146074734793879363406736229305272650891122722120648781939164172734290755126390558038993513685973466729523636008006216622490933453749166114981174413160859602010673588171421114876738170080695047988128564683681418039462159084859180015284688355312858505894279536057988704044787831037390859368444109017092581258936553280161054017365932699462192314205748952464456246241481109584246970912812861933249806648489285729902665486110494062072730332219430449048032432951277748358343154446744201917659955552850462464570133967230312260824628175910255148349435354189819102494089800936383680025696261927783606849043812709414402821287055202681458682722736587956823288216950999003303894467962640805514917997132540646142419550299507372866375453332730535081355503787071519477518254662456147332281871256342244343334004421398964740686995328009554807243580742451591931021255886994513305507135107369560344574485723294078970061799507605135921694975102604498090555752758104077760834959378987322821702670496904970394747155850427553372967897755828471356689270214197572745918303817282197843053544553733028445413298952447860469808225921267526287504637699193142576848464154921600201651869027129360746605451507330186032724762529921435836731048989137201716022561698682872064633958826972593685207023587061568448293869660313246746832329462831805777518949290206154807427955043732009143073437493908679729541193118020626323668499763332357753387627208857331584475881964645464884262318191642823978105475490852126793770765210202483428623818647077999624725734624874522519558226199742380711059963671476983852565832330017313247538371868969591641249423770065070682149893340248579258053000039381710293549738572171777216425009659316033767557369452454830632525845722281454853963096868970192422162765598304269629595926037615765960675554872390672683252711622870537986025695054435409728631317156366655847267832878051782391665279033550557919925832020130448941759045471876753746885697292800020903858987997981006123492149216974253463380816043659704487938841883376149320969172757852734877253462330709878027100297029692031551101653705204163079701032275184578355947577493472469878123494812589498522399194703437355781027353246277439424755751951134110772517457176004955327728306844483473308471317073402482890709855856497645904954304378278948454095919414068602211055633125543472201756316229096578255231637326422129231198095179420978546231465193489464888839257674790832338323560806344434013920386612083695242502283190334068102620770014552805161111266761351960616134815094555651386887273090482368822882382913420136999164966194863966945051671570897464758644260268871820903688791704454130639270698351117720240095011288097714323411675114105458842449686797124849538946542219638881323416994624713590774386882401155432837535929660172204543449559138051218331208634983219332712114667097228930774912927434767097909030447230385815872268812009521268664479140295891985252473818928157060472871963750160442262181884237049222993096721253776320319551375532439970242028954750174826474723692314461044556966597327035117217245114573200039336173817176710425494102164449374458086987057076564564662626010626222993596172641563592086810424309260966537051341873261268489335627746370127435302225420443920148308358792215239929847728565717203398538555466957332104390505174186930864647954387716990404185441538513974089545880622404675563616704611584072027024637663580726955009046548394555904053263068736229366191542699461296045470378113024719287755581604963075518064652527939202798978648833275799916914507506724014953716755744493053026579301882939808773417695509749494123886807808826590332959132734015987279348439229888218187080635545636925165139345996380403534511895869950050657755869171865080740305867574821055097189861233115030433769641940537133786542096925062608897315208498417664477119288555724553360110945278001306765204860022566904557341994347790129293068397688592528967574780842836252756855363546296501854159987279834647616265864004883363536096964663904401103903488482889303418214784206394110626542288563411927117154997534138188658615759184470398081661950643067256534272171082546154772843385625197416473601621908034398596742654333248879205554817590435090344553996433134371922569185193372801290094022283785553584955862601373075692040156281673923360076619914909485764303145372933418710676675614398272296785880198830751254260690684116106081539792153004647232613936462299386730209644302336551564662187874040542375018509520653889400447078365907344588375661768314417805547000231901324365607677902947629944390709108157167813200046793876138681117825679350121038374638646930563571039544041312256614976300723594455854933512690987546880280164988711894649972005686217767381430078749590362963908766694239394421559946226125317746737035384986931721271594366579287527781763884487774095855031528519818768547382854327692568474836223246905214455766004249741462446030057589626423547848762357942525727242333056819141649658220098170964618333651479582405440780715753029098192328910943981122940350066990229119789347922061571931576325244624521193631564188582309409159178196297531648782479095126834634850717035092195663258258419465508046854901592915999928589228850433808397279027640454055847676265516923007428120521325349344166196709897115921864888645956264849564944890911332795228806015703021266930542983980778214838596415692056864828301653764503544152525241709790858209973143388009503901572681353805612517210686641234484040055773201916106892611278269050289278116019696243209766326872913836145334070938521068696627659762392306664081041523391334258218877328223729000125067222987736483954749142438646681362121192337212906218103533430146350323402091112235249197326871269477293568364149093943841761169221321673330228705871162933965367690939077051558593235094039032939605563383550316129999753146869031364670366731828607458818785496502734237090066460859650336815100956745833854391106885363142548900395255911656212693981266931539389633745063439791071947916967781193133263149632377717772123495449370954262354457071935647202695415938747762677853715034519677956330441000726694514404254905758494318260102619780021131748223173068855994154633433364350111361330288597738533628482980511017092994831581447346127433048556382106315082031655361123821529178387803393713230950793335374701651334902831744510250291981428153140237595193028418496137273391470108514506927090892787642332898782711744789429481695217736808980237394503379794357155765776233640121621932522339040354470894688531844173851004539185628323737212187474487165281410333412981299875971677722260856680651359024066920869555759757647345272576036675385015515170088277507085726616449799785251389276968681874094929336109038016708985532489053226675777706803681199134655753576685492599398107779874046604692578467533540489256138162597746771240225138422145331036503724591002375156086725519048496666684056670644578840387682053967973738677632621593666489276864561697695419687696375572076615446298364270263896532018039652783892437079644919752042883863420180615847577615692616568244233654373671502326810168323063819809878695393541985666848048162003027382206677700712684116960325469446421709233066952100714496955878305719484799852515643279820994972041118468704905730181249849274667441029162751258706754231263722574496105369623822446856171182975387064689642649853185224101870252289857301996926295031751911713885422715490881937708705056151259276624742116354677471210061688787490876103249793133186820200803925646472820531561234503430722347685099471151584694285652707563073347911189425387832162807784090657140283308401988599132109583541023218103681284695814403898752939774916611951236830411205897819593563314519695842211998106015620297002794990219363384850441921782533209531906495909113539961272588219840048366765851055021481051489004222670831422388477908648994298725274473402743713985451212005078368422578334226751857382723154622817379123883030517758806072800660288186236524465193563144870694631065088495928046277921928599822535951406158791656710563152451873991392386937027826416557283529524734260680126021476007026718054184861048667653452872109371932643760184171004780219268613899597295177373005721162695513393160788293535865762772197948949503257569816550065449296396530839453512196258713710194887378850286472803890366092063890246312681704691677032912297043785977863702590270603340954830143762795367351328981660431420054124920802235046813627278434828411540048735200729889343135993459037357447625168640289886602550279781906105107039860354268634391555451581590565574023346418234383259254720538525266598494683642152901852309716509903341835891984344493996741008312021434036274921698463002734529439533038795480789084389985325354021350513721167140769003872296112881121065434949692457171723130323058741761021352849099257741652051523483094407998738845150409131770305322940235463682589564585246330465267447734768909009489516340380907691557400190735975503512191267032533086776737960314818688547817721095441219303655228071406005271934912130409108286467184007610904628073428160149276288120572155972675328477530721493877329449782706499804521396836842020291163392126847795768466546612480473521421163146566816983220624580795813353838678103815680772337144019813508119228285531590810109260408316775164905142462301027012223982608482269014657479488671627619227697058871098249351089704830533421409786200100371733125022605904123055824705005514531858373848672112231061644446193600079802735618721226587801145942457410338080472812892361174892890185221932942752381070535696329345044680665286797868659858949473787967639575689504073538755621628414083983515094584447237704554485639849302853293811718910955986002357408093969896063906268602549078258854581345048909115552788719669110111504522611296492344308217800821715573193473295309573246104189367867718925807987445659806625321921071701384374813446968310674581536314868743509227845698452935115839115251729717909695616633729387517432274845983488155909818228760840311933599585631264509729300122477465825656730576797370081513243645842668227447695003368676920179221914827886782512843581668808043122633277642989155672036054526615476025472214677786659189244755149912440121147350614804222062440535636326111537203569241329384095816093727263050735486182512719182408001490127003086962001426876316245419910665486048204858062520130640447056823790374701065334058520890376823668001259999706995780672979141983465907646357589338512172768765620552896012055559316723328565876173813888870180338053141313940013713831880629365720499200415098255136781364134540889998445448667498646410631943311417386840085354089983524954561805055319980053327938819470962221497395369786452726812110392315855009016194474015154361122521732123884356496007872546283056832867867725952523669669541687449166934164089728486265312924631351732741662094272408080862942190838210023960227731502944200800720285786437218108318903407838985450841076087746712254269940164682078623764210359695201704120953266846770966848495702892031908291372418601310621677331214456012488011932270901093874960538412508351433831190265173347028458766953980387622634996989747784689460439060340398876071247337043499078431624801487217003593205149326139427450359362754301977706243546387554469293915749235429571015981440206331260978774639209593187224017715630177904913792923764587588416869938603303905492666150805595255338268518551017422994676233623663199455403093134619096806520919779222652662872995361673991728903132313094895075776976359866112758426168399487087004710591541662844056775397580768325408019510342576329036189855046470172654773236418888327269100460250032345167358451684708144865874355695819203265771241373704251162498148072302929412142647150290695918072778102248206927502107632555852288917090457582269143522309157355921990945052120124334328661831882612716248438841546167600415194462444324302294657736429952765896657264400217573709936905736084905107515639002265391925530377166311261696526201859277225100511258409971912589464833738692332078941057012221098780534364518627653602245502370114935086381831466274782983183858020658015897020443190381252407937280707702520201913507055559829436367823211530454586302563605120398120274724590031393887902518157201822662599953508212537254116384506471842196670230897758584512103839984620602779493733354491243494093180224065788006692811069668010267090734602351822006560924996506760599008229591118974095976688993134015603474555814090113552880669219184727062923197650924095393103827112471232093843983988862893154439704072494330917082408774001703430702692815615413511866050569339357126777222147711580646835340611259772182838221600882504869764497013103368292506538185406181620684997951146555877910945799942939516079367882304805719594029661446380717030711549382698892522904998618363402693316002104178665174535977966900800499384923140605174988995711071158051087698841603782321682083068921113483575831940839443042871645392727153851746015528261996390624294080389208361228319712814470981948397994148824073178440498880078100917759851958555949657427180591818982379366827085700149497657249334324589932421477704358707765777040038236010136247966118748530317703390471879089042675783014742556674653411598822505889952965161554733913553859410672427747880168295678940146542308820920855849187636447976356673271826076313555348328893234062496134159821793825180962000404940719624369823179497303149837644640951394397691508941528473660891538890884226661917096827774656347118669885902232377869913957604432819502079238791558961420032219285666311658863722019203499356258778293291240792721059493670751104649185039638105431842289095886896409362246014365411235563777071977436286585479402240977610568252170851989424426250835590751988566199315189558151938922414136174934390820404054840875851165205376423233511832043886237753586766307424513310737634181264656661557103113539207945829585910041407986560229317371551332898543614620781764386399470902572124972401572203862554788215805970325834226344126421924143055024858454269150343136261764843025319038421574233469229133573475624321310240685580405057184720074825859965646749018074399886479239876760799548920776778053796715815524182452962328961050244587142999661884678955569651235149266834300838065559656926785031395133061983260654011936908513316605153763767711767300321381687764811382643147690002894570958484048819294131857596694094088009137515596762494219430723330065395156068045980562324105828474640930536183787221607821517960695847433774859124468549553253152585661402348648489666319082132220952998994121504914510896249303165540901229936579737529856241985378787309150895865927831502764754384468508382394418038593436627419085426270431712595329875769179272471447560818977586156483833982610172612893682615760065976541612928632575378718038455096971350504908190443779916650737984080421029954579465485214947195956981209922043273784629595364825510305652071617315034150933510796464512090556578077841432860616707253126182391472819883085260358162229837892253450838288908807895936521044822245977573128077947781906307821187722863409790842430422642222381446004096198705001381945250338647855428936787696866247193649284583491459668377413382975293967440089196245872075592995415762838668232020491681854203449296452854230960570782160983586674940749004035627980311569131762266238221870349400075638532037646876141050213259612032555879238732956166267900774332995368652926099847420584369415350924188742409645173741502565720316718994469947139231269681207796863140846121101048581414599579368184564762481369054811436564305891544555804830753587594256820297926564085578913494254159020628374264884033275632597356182971128394663754105649444464879639028137682894700933753825357129067742024121794315291811051409245435330125418780655787849111215428167888439108617774358899498382554305325818630476572854417182730277247308227362651982618090840316468798493775793535114876823443549374990032370758845440428363938961973697407443208732468432707987307414286639030195126802619301776486063285383850419504622388968328964567179281601420078150269481127506342298654219049956397332672076869674093296461189238350186279433690151412698251314647359934176961114780978418492067269860657409413283323110660758450078077729290992410174441412613192775024789996569350579614879252803511416164313971919245475657797315061136636059847334596921306453861083485171932760258278974366502277901307073904745173326277547643632442969760281634989219214901959693892579412062176230521206616011923960007772259022487876478383276064467083538353107167652527631523493366164835875118726151150591412880644445516475948935739140807747421752346245654134125731877901314553096416190073813877346930105433329680115674641404997932987273601111387696535178423772767629271524365931205465916964943042434629334519335940746397471986923557210230897425272831562617539179663156068663083438244120059610974608903229097873778672231338272999101452661730775423740696230615815621711170245664938408511079448211162782601578608220224944079136977739740104105675524808502310295778278266443820377511538529508546019884169686805235246886550316175160433376872052586479092008232447478565186283146417603835915753375724417498938936779289732325794219485937825919559144949740016564213321603585213186176704112309157420264426572589684485307814070102773801036886433703326880954260602855264237303388458697920734512277067163855457610037456931641863882657091817935737915383772599866562965983421671455153140509597676660655372011506566994275350031776352954538623771438464317246892606978904557692241307516857734059252989537684403682748353517970826138632522573571522837421600334172270749437488584409490912525808568156761238888783329244296417756818008741510979482177423661362407981953454481431264751192620615315613715161800082827096781171810676225068028711807873471250810247554288985037632760395995562189974073413384748842931788664772091427814084025466636065584212137546806062401449838741666291550937039711939720849270445640372563554856922962143258088716123835397405633151001413479022291734320502639665466889844283924991430276599532353129989146433197099120185411439239505232483666241949836593499907197279746626850917530502622094109087679190225483338236265523985511607004739161836526302700638772710067066749504482495686856937385592620857093957816996515178426424298098143615671421261597745545895952669318316581245980663390876869390691018884168715748673982476643720484524008371011469811657895914010106461540658541773043229488030689584465657770491974522727790477814964534796665805688005326468665116950405577558752364261078393966958092716520998040610146567193459622207441389514629728246985615213777237674846613856250260247993610760683823700081601775157998999315297688916806465348850213909039104307501473241785616691703643788783458832219140907479567243610894687004172574497854139451189724079347326494872301764915573736422213345013286297577373193769656697074905918837650128719461472756483764847119847595177296449728913893975726421840805921589028898660145058364837680239653932160563176381863896001076860460113785551944286025447762329159999649697500620155274463685110845938386079310391264057386207367168192802819604763050290537091507889715251992227760905034696517814667823482110357733940952576016201719377392218777905037948784793860724452131996805953927156839442810222195896782761057075847250347071590436671733018084113402174654705441344459194705811814075856810398830344897932344977731065089109125809963233361290445827516487939860877001254207923345303251383798840756493351310659280447967241537734770230451373872327599942041597325300413583230807396259331218002823556189270667158149358269172007727896186219553087259859665639507200417991509245344822090223238358141609472077342612770343886803195930960876334235101790615653225958653763415213311067157210694265308489065857424426282886160223226374340642137533798198215154400694967777623798267943896261714057422490575401994674915379235434150612843048234781660511380794829440117731707673088693686689208027648332084645578168336709461148801131360893064352800985453334062843462301049799418178317621051900523043359147526355720259234989469765648823488517236999852360515830437055761736861096728671939253355835457559643972867485452515981737470984894690291470771418990314967801364792674351332238088352477668735175454941015889648292842638111085163986025038490812083592966199122790801909886977758968236832017375258549726467217272049636693101818844095430697488147261559369166440929825315501911170707022774325014637243935074155078401524750559672341218394232909219102701125258983432050543987391171447481829123185472271952922842370671002073158698757957712463951531146165392801971912144303694873530855600337776957442663926942523527685361210079324390183620955688461299504339347283698322034801331776871209004984588512573178117160964997210772550223923170508881057767094687634076099615388302198491134973553223026477580433202240169782128470877877088121429787760656777658983896632368868741575482453987539610226202633138018991122614902611099393546147017220360679384959085792959776126228399504591696238479401989695394323095192782993712376280876807736638097587985374551344416497883252951700664761371374354608469249459426602719428505803865605124600586527069011749337679471448466694519883973467199650140785794562346238558262377936753976427374292253075596253432768743046314982336416205898097255571937159614764081728032396644470580717753976199743594438793788605868774802029624781535730765923961968119366983640566072943092475093718559898617922207321826239291308659208664235633278566285965121730900329009266579323375812120843696443546718522052421493195833081288715925622748670758258415556947782989894499895921665983401844729346245087178710729380960749806790589437428889802272321251013670411004265638064489812845548346790088114145425513032988337680932426511365594774063357945358306850133609339050689560388594966915989434545735917061878541017019157818185503149451540089394373301206808027452541296197032818582201843012672406241795192975612860346935210804313860458193854241531943223086678618704717069277370824211551571598391449338714312564129317972476687131917347275956748705897434649486213459865765736003155715273895225793155475032921574147065321801942603449808469797184080925976391905226812158116632184463332451148603327712673921317470435833007067471268132798795258219991350940397305556782094911469974483386345467695649685024066409631258549217891748692893020685303863280450151044084398204498011837811407707517742102974840844945472374706470297816496875610377272500909849089741127886299686612733998629991173934678079130007625303187730470811300947506905587655308847054406011113090907902398276416167032556021196416879075044204862674700671747051250755811802797296525367065822623101353840695313637388113293443759901327581854953775044863996396107696510845360625844639973778396849135075302859784634595016529900722945506317987278830730084617076414882743399322580256125479199241369388736731764177687926682790878287205463185764336576912865076047053142083741179532926819067917436002152653234903985122135180602611664446292388685111658933922486383104771469245739203457502203709207935771540416423665793449083331122243381286825207140491241826883841415730903584685453535433882595620849306349870355791825185582753582797763148291707265759735127206487535444812040531997266323626573277964761614859280621532060915677670161903075406228474616231228905044157120818804055028316357796911280089851343497022735510032353373197367455865910032798714039502014005671900097148803134565496308221692551232088770857819882961977674730525475768738923662312109514860755853124239780392712302693881181970769260466221854768689378407787903425149302523170810319240239162581493083939923187081503142175340598644323119082260389059862519647675890740629690551226487987275188852805635180266521105863327683748640028518674733575020998624952646184726105062909877866854846965091803806412936461510986559075271292240053527471238422950516722713295467650275229489116277397275938279923076144973964803651043946762359719756554386072015008779191193795068313647203253636207238768013216636608405485221582559695549594366611739521212583901466090605131080704098558968187367272056657706564695007456608603197886568516554348085944925079186501288329635709194881038990712824653754489414408497850801009315609004446196157191098415601622589712602769549149899428263131295388213063874200889727908308189899086200430891580185369897340160772470442332724706157271936701218423347852332102259500346684997492901488626240236229229812456012023544476309143011453343803005837782159499723124951803622679414330949323202374543513478868689351995054574522863478849133893839944237039607520542628470385355017755162915607121583272847954900596779413188991248125033246800243132068816472553457360487802607268597309680203712708921693783427911417881474668355948716238741870948265410285482638806301817738747003295055486107323535811693683450944124462280835429303163319376409620259454131750923299562663062564846900729476355015432936543786953254539391519441146199293708421032518819778879700224562991735018751393927879575976432053760957056646922013437698331981657495640252759234647045609305166121574833362655468398162371184124042561096124919535587719750278965142371278950586378439079545303552942593105142976543518606906380138347752216146913655351285015128813485920428835546830067227060473777914020220426511516377416112859403808600643678141529016836548212811673637109796430075103037035090564118086015188859201528933130004184868299585999007928784981622202226802777184930840969974192909428612251638198534778354300079095300093267559440705005556858344247264979022698630457102956969925787413133656553754900703484944086785494969969639374455099851024643013727386140629868806495821438968554153380852619494036721453786375547493224754162019557761367877575369453126898608352427481824614311974511210997947219295425106263218322968348919024407886746694482645560356216603784589845463400585999480373167699296916584329184486882755606061190003544123457784231372917146505260047783287718383066821690204082662652860832452219106416791473985152850151319354849875980785150956780445314795307456133450245094728001416599891007383944315076794280643108895637374067347781462943945344858708968846404421781456838844785458812793142249739688890010719319556206672578253480258940754230048232603844616169823159496610250298119629408698991846603886034730877567172575111257080405064841432088341435724073871790315362830903910658592758769677123861805404012971821104198603575266584651144172141487064562882182368754670800021250517534901977126424670389170956523697276935922571087933732922882237077522574965335932733096488231531216481955322068944170909243410537645852363954814214450838194405101450004528412369677412379992483734060898889146933889896013982914309796990364460971644505480240464771086523165879473019368231000497751786165808034212943488168508018730782363999018335018361533247220782665433987234899618738153203439125425334874345301005460696252739614006785017985448898400730303657354545558995383082003645846010512749272183603629753901824566530649062796947361189913044875915320190397150883805568001368159180730059419696826535124234996886676713584504313852242353112548130918977654379912806104970754040193914137429260960316819297324010769716860199319189056234284711492751749122131111878116281448627515063749076435722675891571028465064036506474331116379432322224857422861639442665555796231327056604177212902541120404732719670403138846403964798174368745636273699447285689078261731336648969489687963395814305801233418633655874258461513464695545298768191726023602150233708196396111089457273524065691181016048579289518368303793777868032362141393927666813092372525188262755999025749407763378331372711450080176211934426977267740199630458824689301899475837815609727202750848280903589519790969724146542864320626901350938174542220964891168760972317245909531106790519113653764237995915000375638407211346285998035270544135032139398486977872133240400842517929462004110177751419420230323759207602680932828349979021553640206110252476796323343233777172809124445987636378266529615411837373057422480471409481085346352731774243198105180482027804512283578181902162551235530374971165394552473415973716289023343349367975233280952717362979845001861856754971777145253954757171980639302898893508758077938533363386758339063801780607463750918219644991670938202152368560659334431433125758104305432947797802623052259843518479582951631672184934037790201241366865545380550022163998009680097033679567475753944997771139676313434092859501205472941953389029693034636710995090172925591991210019645723222012858869921503677132799470834622252956855195518798265586365735258189188355356634341341575652987806987680385592188902844165859628264056877767623204783753327891610360109201801007007277826331335129774854336456998367706607311304498422816251381879334850344406843066906070528247551928268300994091199463152312457735439113569426355545300641444762385027454726231177831091873262581893351287881239312704421915540428343617909625178994186037954091053544745094270920679233095964672571409756339084309838331024751829055858863071434947995609124672953809239246582745833928833300945426388024231640771373603192267381372421188008762398917521392409704651601150788438436427042369290962134758790435558131209073900269864504944065888469151276225853275836342773584702089997199673029213751668650873189997911979979109954343238969024278214707435148674310026603340361433836570638367087432515636709402663822560795693188390006580407759422992542684131721507660481058696132663627471651038122465523683400362113437274670210143374340297209925149595640750973566784996479567668979715168436241548223283032486562869893269474578786689512830916501184286655362317875859854561072492918556114009155798781773774699466231532221714590435966425526700493765940798909993288513953762641911017890573860074861180206858721647901295266330052041917899961478738536143949049043392171167229943093412694986672933113191913146544339957979857755720283423083173294940520987082294314531358949440810917006195966590055824083415626027857349014242214198520941084892489973698439380228051811353771424473167297501380902571186124503010591347045545437957681557564476043350714239386940642937121057701662924409884467695365612563514538396865201201212643718476672303312335163904975864137609187846126015518902509039840365130389395356752625297636441050472943150888274975835203650274218329041036922318276175902770423458445488650897717223941995203009376819205288779867750545345848843218558423594721549219040440553039417490383734315108502135767865225646104432914246489065546845685698537693920269855414268743200753083489641186468582480883395430096413865447662647655659975950172989092141140637420500770328839830941519054368371417132536840805019290794392407025686590241024686203812597472084553517281763511562708831744755590476969471176258233582601739920019907129962140634421078226302200731478339738844820461062489253576103563557983779920034780448202307035809542679474631442051592489994079311943554307620287052254015055455787608880919217495701173896535724855490626152829631231618131102075909240354196189248571123388916673452742933222282487762243964602457261049820704784962105884209366673163026376879216084103815051245093550044100263329950162409226681437989612756724342699440957238616195393705151525923763911642433297627050684521133472485594520214523245013929401146240400153863168285075169006453515294426568982532516959003522149108913934214559069919550508277882691028516120357755333361318311911738339551048896088152087304733089306396907028104166245396316600951119964997706039735820198683728400903218908299454499330683624289763180519527583342474443380388883177631376603859329562305128496307537765890699118931575687211846901462897405925567487754996495337272858297902188767505750450449772743332611687953442212809440831999225201055060664748766868158808732619613825535492885136727992088562120396599988344207450107396204545149467183168091023094218561441205065968038660616061564053642377282710772454091241338205282054154321826200342959525460206526859156978928529236870120541966822542817427089651156099208910879131273540318323712516510254199418698907982339526640910189730288178393918784901554052048035550432165308100119300684164288134472949061359638496847642804088904893250408065908829893839221878232493702562394632673765692327618731362127465650741138401946483194773336469160717064254059205065415898337500564631627158505452003441329541195277049074868220003943231000030333537337803059400743906477138954035339846011371022298383903640390271420173954020023713861607349365573652493316386451256660842625934368527393305744638131465596533417411491253122498883943215031525017669357605830727332710170076216978579307511242409665172647819861893234066904509352573731428679049947224055021256906771460434192101299275192557119218718248069658617861700631046224296732254717496647133927654938931158368791323250841748577296066558145067105659177942881604381023404912586916434248023136814730264784045777927134498964001700190430522453229374305378279496221524294115111931851933233195947589089861093924620805085149392947225171798091597747637323244244388318224684379970848802855275106980279983285880715266857594175801186532118874454329428187060289661926022353753981689600046574165252565263173027813316474839920055207224317821884917740801462189774829946190674409576346683609364978717352526084893037007779896818008320053500065214744709695768482565554364544976200106277885976873688869667304121137723691441671450056229302013441856364124604877710685643577870739198785155129948360318685734385785056100514418910994466602772743930159250213664300941795969302509636060893409440250461819525678461797848415793778964382604630194103462812400240407457033281286008075938146944126110240457472984800560098234818679778233038446206758658703929097531721819742301459663553294195747783599729991847235283448326033875799839282841236296049771731477162913619120557862999677594080662339552266297324240884422006476425381433930147883138660656180855033946059876534832678759787446919545974263492116081329600586623630852788709129144700288763683951483294358227144211959503229246319693508437436679816179570835748539278365001158314170959412742313330502752281963416714898151055007808532978658528917830837471486753804747866646110132044310005793725023830567660803552683888917265619120730274414953202815325490208841316408264150946929523930683335146899842664096687570871137790029183851457310981671798811493750413182085086614590563061056425212194689902927262999990032605717763912182447810715546240688081876938295911197219089065989295105240901850945924656747773958306557203734081225906492397801593008658375685384119833475495011881165452403525018798229576074808917428430723615792450874208730382287954424524232116359173292420975810907007652583858128565557753746942362974757219132078676757423115401070135200235164462918327756659406795125741337921284148188074725448279088099634123199845470271683726139314399097412805477892280774438089346283787274023589143280847635554070676109656567416572272081162691030976160875146350929454180119500417382188154808850032480625442400166478809268075023821489859041634103923349627170571505468108830441368389296516670243803375939095440726639008526450710380585644371227245296059197955847347790751876989145302682080881589087541792813276603692227428880077586623776527539819678521746472891102111872884772951409578650718920616082806307841616971614852393616527201609891849518091826870227916316041537199099263405738862819903804570663102066830209416926003348562843023978095317801614907473506190608191629983092253005272482569599245736663264337447156222722991676306168053781497363030650904792696201970993998097255989497269132622464606838638812997984215350540671250083371639358969988181222224024060670353099863733385002476183140314707226189248796867611725632718181456391087225400402706865059693827249751740735051695762112317564000668172283078961738400104560283873235292997934015566163038544301951035934982752689778431093147785410402640948107502534311732019440660635008578641531033096768356027902250303059030050987618125561548776550051066126665479565648431522797377719721670760824421917487487650381955571962972849939954418464074278959367973621448739415449143438441255124305707059665062798813258963272658671913911495999101322961513021271616606635153665833010959278309503077957457499379277909114279446535541563235988432681345684795509982653669983644789562550982943591201503373832908945527158309740695677902020545112632217007897463159355035655454632865477280484885707293361549636449565476775119549790407657944555794542309453421325343576852986565798514079358862416654967369400886839169375313020861207403189615662486353016472951308086929186267755933413810591546724501743818347258138552169629963446965807469094347148933515567625415645317044300349494011762307061375658376975443036973597139430493812666165647150324845009766124627043925690088798872018713237242043095432941233289888296031007569027108014046702304319864464459120111466603681150169900568420917098855720552678818764611854455358336721364001451659944023437151919235434434351293621314677049340615543610423124806821799495891016100656151931452061073580166466040171119653380480020357959758167193578714412895749754276696125879089602739632563813467225968598104964536415371616632014940798992721773414275777939886326535756266603054482808876671096327771989752898195573691300766626225315189303426289056240102249833801443371071178794154382570152716517296166523785321822169603108507956007279534088713693120820421141249048429525671535097890346574994404830941790874566051487074581660881405308682254318104923419675206678075343648110541927396311007297322367204412407579180215012388103966890060127140576942637135410222719798636197191346685530566449467685204463553386726674469150084727208426296105754211173291229961026869089828902332200661063125951064463149659268280344893581348265547667909362939940174621859419623180242336417152044565404165404525091469112252702617969634515946880034146000598598005439032670547401782820205734417390612889930882776169062816195296517835949328356216284462910311471324273033513457779600890065285470759110223481279048742486427273581719833917674811564187955169467170258142406321213270063554454105241301999215568816616073225510008815259289042044381732538051272366735269494235391473254019336209782420647925586159034013822091119366110919051885885537134934009678624462807680698452242033711741443822175979411535648429793966285745159553786684421610246386193902071005824255299739566145834148741983589358067446432714989377454139521859637275902170996339781873260097026274402904128293800009566773325127643005677400593919701550189017610888059105433764934765318449039115680870280512836512124063701491801404896334645495133225102478642775112012928718486093637276885879983369643016030480182699614418196585541037705617135128155072224655478949253357579344786378795790823140627721379347017473318865659875630377252632792007377648175234953865829816389534398818157573311952214019029401101601230229854366467057155873316753227303816658784844247455302188173040276450242848496710259342038807561245537183604842100483456520813685203941330047759230481610669076604800422107179255906566622436222853720185333800060210785916666115574239281345655673221842212309022612126421465322154114228127478449935867747417173894979569766710823578856164428915302844506161094491728508799844662376507958114272566136876529656906495666934938806417079158397762847869386995792951253257582546926479992284670836501165388328565449205904110457568465208789040951631965719815056848495070129747614065601980805854682452723917849003534525057235706185020157294457680438065184059540430256911758998647078873619724535366293282724916074877191352633740252149920528648814213595270353570978849801389299941793579534597207625068653184312000824640403638424200143195519460882681757906051333233935586913184965319387373760448793877086030740399543234518822188976902181169353200216900663883301218362112395350315347870101320699945311022798326015989647320039157518102426281687684665553526057631831950854480859413526477003979670116863146594160010614217367417369312942786164422341697554882627386112953366226684388563660196241944283368340684046277649647407543562688208652427766546683411687089474679125473353312960373229420021040743893165556232969832180115182982805370221610400928537236868892694161587900371396321722376585180031112762861952634970699460266967908678466333832317444578140601200929248163194315230506375121648956124668467729818006023543720053531384522711609821016421904254796776482474819563164548361235072963830577636752587465723329621774466779617452071625910663125460635384470186380847834506925932166826336125291550692147101178126998973320537017984720229368667965024763248103204032578953255387492833870650683116958622884942392470236998892927665857943602710832561846008592785314954159792278778496378846299183585809088250256119606345321021237790625164323894374555912145089602850488785528584585443829664677938942520821398259713665117235996153956177435566351036924849569628228211069827004522915378590206100393690454902775170437845896087710032924797755401989236373043199310973993878573309161707787532450678377496470894868052726969494883865697782692310156560197580279073482177666019201485895647619179149474540512323270957769195417270850089405382916241075532559044959722059692152203422078851148408735043063162896646955407908344686419331613190055206737261371348736551475274821906933254340421522148058709694881397690647548483692844001600727442475451142645897559980253085213344956385234115391716642082135158454048869089141729586741969591720975550933781094546217171800545457512139495828131293138018632559736066589817885288897747403100164930120880806621304728585953912602272560967005362194159059272324561522244430524342120609903002948196577643810644554715131005626117144858445386347323174647072993315641921458155840662119379639926305584065620941015235066482455696715115414459006920012323722568331723859493341268889768900208686311279688413939405437832053380663663314360512773637974730031595421769074107340780719900043646729782608547427935727598728429060423628273357730348743247962284108125211705293019774229041544541241964879787294941994941319511576806576781480947273899405454568711547403741183967465922919651115331293796522606315174367135799663582586137688476658329279969076969273536189165438477608388501819799130631898259058688109065518458940861446369304513102533489851343514183548116177124783755417122436802667413071887574889237302749532673899867704088527529321409600109141952021063412954475800798011150415323267929888839055050392967216157084807134244459676387231468122974793076394139559320270287666549970584475584857348068404641666713380554057483954966508651288033096137944364454163864375724580879139810738729987636998834225208719481522422797400283630050040699139567482935638759762040662140095632124484362925611541942140948303710919199488654456388817984739298420828046268843299031700515218003643173369381433822318929320620166387856869658543906160021711736776905013245059146039477554373126987641784689479715831430494780079183292263331775240889335887398732481337334934081136396808287320070940386352758420414783884839747833684564558036786742035055824679396277437572864032100138715995234110627388759241469478052546620916238629954933752679370684860961718590826045663857535001046714495505402670371842794711128547603650922683845917370082118738906161194734334844107548911048527223472600046600470954105765845676024579301184148447895206741857428885127030074825040454622488342839677368468801116073890630550819036203245667528862129058191444625659378142982720395858415638588526706969044856325058052757493274268428035352554223343153319096299784980310912474959141734061321753323770454985076449767395275145090528940719753374054022811185273741732740873250226871258555188469603384852248141966358888877934977462691916856857856848897840385610026708835039235796556443167874349197733484609621802141967005800440833944637413475100239128442170643209695570134507216831392091497503871623656117834456800926536584307914771561348797929062818799872101174433916034652152597902345705566074260071868533796611292308791495838982562223095921598351724275710314017442905991892152548791716725573718568739881593518596441596584823939035913993955191532046726718652660474616137096696006693494858719349832493799439986017376291915553937501353918672580489286196883986284485441500884354697846428019513070389406556028131440167647170037463827309365476217089513625924002332690797047064964454811019292091695357586288814065492362012521544377791607617464278305461084072847331421009496703219834910691454205051560160966347091136750082625539865057573319717865515389973311442549808977166793991077964743965343659270328932708081822013261685038792768663626929988077346760017593818671612478749240245462617960877251930815533412045882372130575449402335044315097782151827980187808936979257936769244138136477249100062040097766629063570867376876301539177802287151576950366011474293177114774204934933457171263715941949640170478159654591892202961134070017710666000737965774901048396655289608420405905668640175273502770473773212640908694994424025965163097944805517032640298737674115673716475753810276386436316124004152473418742708296885107971747421293522895646865787419085871242044423581503256990110084700578572252384503838787759719473590785724343048504426457706639416892841656821782090473400149791245502914458519663748528757990023172640084889328775008878023837858722125962205260460485350666244273090736119231496652507178378445245349728528567939473382002927207731269794304667143534500568588478336252163558193241794630374784267103972121198255132589933424448288781911674295649337787098431747958046262532105392778181569581476944796640371070907786459308495985161605075103546937272022788056469242160459679045791327023942590890785065919311976043660177560372377862036215343099272374767225617167712309246807776607286301518626739833464064993734147321462239162531052826118584875915107143552993218488198546631326466551398471122954892581505238882708230054118698905228077602996046397683210216543627432351816785972024351298375327669881186824961955883207735488440691503362116940388827931818962903383771599582433907350228250600416337522663557999370159303787689747773855680045269526865104950508614913277749647253659524379308189347700179528085637922695592927170062875300421786372579836653341218993235832974869722905917955134432325565893044437097997864213774075103678899451347008659100292542335862890675546095636483853024199920989673682980908864391720832856517036275422214509619642158200345824987663241133662436965511664493502984798328255303956784637357312556430574407891055607755210686571490177533258141482288070738138129165871750107822886839745189557717436652216586489151796768299953629554108468759711569913479599445197132855484570055083320939178516211562507484453960274535904975744184438902987305221032056785607812773302094135647424544851487571358516824480857073553447304153887410104754084485500799059495430201947599009259679127796024079427856647196547130896238486806791383390289327892230874259135805648747028781248527395879725142705133862913725570530740639228804821273283662865405800966953758644890663978125776397597733635300203906121790481505203212302951154450627864881611650401444882225542892521236684687325661085933081155332758171676073007193974977515192349041235551825737639247602149720643815250685747973281544643479820142696404915814515898277076699400412434577506349195893882958340039563691769296111543801131453179079605181564570597909841763933936068129938847121315275209898547451143924142222247421024389210592136920037025762847004019032282324172592138240904338897138762087917960085366597344732651585385746390742481685116353765124682086342494583336968386186317195382786869322190920131888344422046024148554241244766714363350788993905428542750660230916786018469318830972089252933157363293268262025281167240645201798529972430935138676912533297329098062486607769145814562666514823801171016181326397370268531500977410821099110806401797163749143264389431678152870798582523262493117428780211711296101594831350659752162669490755643755731312075970627596157029393139127997419511632382710402006257952403428448577006949097352497249636447450120527590070274257003057977038871783483092310641962014616852559397408410177749961264999272343128434597860653131873130033123024728312295803401151685712812655362340711300672477847251273290542910103104407485258257095960774839492030467830165110845917840562834073312268770569982193572217637587036306272444611724450053261755110013888582883649229253580896437363982793862247213574959450657231712891535046216042036690518154026498864774225196334287265486305534178721688188475362691756201910068413969469729479866293969795508542417804091385522173351557772481643521812360216767274772520515564880800831331043827668630465436933871964794634892735478834198741659138683579214805030489061629264020091064710111909575252368595808647366665445489380296509839123593932200548529136155666988175376144066254183514748316185185186209721355654213771340571217520520971283299252402591288421892651474730058353598711980583293310305944318093042573179410411897558329547598640299895731072482959065645740145859321728617037264852504035396192596574561174203029001454572970174909172832947563645935166420688913085660392813645772045442516733163137749903684199817380461303632800575222334861918888223742318037386255146611015411030824880603834045777153512331570363531379725944757302641804940037305310206334676894215645185206373718117831889380786687698472504541779531882514934533970682795615010718991643036107312805130255069018250430635666563614203017898246120651087719688180668044959289186537822889499381257469290164367516665985427416121027415581930113382523562385087275284740333869005606044528872156112276345577994651330119687248855359611098497931379370627808610817013737619015650756109384643126344845422820972248934245765837511003689252560263140595947084674542631287346234762120657089257572879242277639111585028361135344252259975625654659412634925644856196411380863398830149631429652133167801721367608488853750995760995837792029520378055708235878974163087037221310890203905694961765083563606382889394611078136104082001015823369844798558800315553803852785190730549533415703951160430878169525656551517153359690839547512654288944891447548443463241486245664624810336275081261118742523329852836447950467350393185619202807245142890919860862569054092683082430081870124267588405240720250385487525098012146487048671008321469212807941091665845957265601834510764100289281745570727627343907534425076968199072480897738426754448376848323298020207284470672631987408719218953981645111617369116230548915961622519985171642553319162243340749813780420225586091733854074918100498787845581173777932241133921831938500331394342061608428311367548223000861990349766609807123113907428246001805037919903826574782425748089673794873968704771785945874341099315879235525179235387866175344541744926286674344389817151055231486260132767821166735933530997321723014992620643520657894209998425535264305610610259827240753908740319650612354921259390388697935692296946639272295175237512526087404601086138835533904731263805773747783289817927510752069358734003657588205482054808670478788417084926307201114502558448141636796449738848272325362658758951813359427382995077428034113955272164245878046603064678976673108893703582515785111331737016210054768674675547001005772525507753914047382992568501573533952350549851070654006677427922476411048815923715633514434222493796588739529315163944290708133546462237956092635335579816525377277581815827062692641636926352123013671448081059920660944458873163156745137801552965793082617522394555136369609782556007676953026329414266189035289269820481227716605727033797349955216993139210299484125059005932539194411889883368647508723693406062939875764219173309886847232072542749090037598852428016291392660398569466898524345878926874496667882070150702939831004817455876316637622844763090043100710698283794733750824776630959219738323108672594204882571185944773897044260644085923682576064856700693139456191036871854582718223909129066014371571630480606271219087572727046163200843115110884026220584041638521986018541796818146921933350337636312780566703598371490689119763094413779360085688411111230967930327221851803425615290748944078575175592192605717344348822295002684500453199045206560078003172270986361113160827224532281856548033030068827921686127958966740442530714907991348945508554025652544313170111751156542014780631996260520714357384618500945087277365749121329517903138892907097641593884451896959380099513688360549175712409979155581712425311372224311838993372135855170672259287626516662605748298237455730976311538105954428430620559798813497856435534176424238719857841249162668979353880886085063372007249911401770828224618204890815916789717446060885212295404709394554218703258558700255289892231614377840679866979846442746769466694322180672117737901703843544687156173567617035201767327898994138519215429646865733075357907269757171626732244669445468773386616678007579786313529375573036589458475225849688868459127224195603947328474913247918803613851324745478676865493813665911982143672478119316735401234796575793740666623669485203272655097584310284012193432123141037177764364294866757079292106651415247727120069307888538603965354491002023523483218667309735781187899312918011666512377677389646218114689742468230237088276513925522278752406320845498287311959398395117938476987823365412699081451677376216933205615858549378479857834598126156769131990592147871446688029154752757324445801363774326712925983065497603407891043120030726739044440500418163842975919493382593005678554877538106467377376721655743432696287929812511991629810801473153552550038347508519169643049185029213116811729634203994455399268620320497941017933730413395396782662469270418096363486666604197177300437869757222429227317326708996596686036745670358384654645529404348741986000499969459253971028283395842161940111087000844158918221988223031712619816504881810238606145353961365031820547293949463155280991605850267913405557248510147472051506394463528391186101619841168591206579440059104049785653695363618732125709839637849279178926824013298060057780966164754373888021476932221624606163515301757770670159635440508791168492800345453117785566750844653313923299044492281215283146529172861380025872406647344435647674212980968521423673084848083352833758991530461697342086812846666012742228388781823722542941292245116793583469981134506233538699368035043412167528136998393158355117356272034344234916876545540279406832859778374998232432385756979157935231228458272422077835096285973963963272197997518156544197353951977247546028421898298450892216199326672638534059038325602120955124379626358819333174951956429830675928147576587516791262707922265144624382134668970211160278201925953952279304955775318709233676363071256454647317789037897803657550458464161178707313231734632440790602782381975777225259581917003006044905496895897041513156344342118552469923840777855070921547567082376299464777640241696646293862894746351053409193055638507298138591233688880765153587145740742012175604986937776572448472651666282006242888441755724620831523138271178021630971431975652512550219888983508508049027379121800602891911642418371579021236125007051779544959980466771677351348475082224302943448699232760994832402951220954323825161572391205354651437836244338444807826762862340493887208688407344446228090925260357292834282984640074791089995255877027009348450172918779004544479165682583716352813991612814702552407578369514470818072430712134013925418559019405200254692167892079201279841404450006825368066937925136445584463023728202436359509948892716579945824942668746418265345701592006603978528016975719384800179763872041666826793685202491598248610134499924739175036239160667410615577238673983400516024381692645393026944669232466554327951549688682420177449557840808580880111250624891869590111331245699830834320845773221827902379485335804952647136245272633743641770352753557939300622232196806107063622852748569999048184963166543635039157486174273143921816045844606219213219282174852410151306254385601681003057039058175194569501558930454921540567995760938830233823127193194143902791419938844552979321361601484792097460498170611784046407239253855532991028951072392999371077105310557661740415829595562712522540619062393137988847177392741176322659474584069255285729405224402975119898053211047347469174060490170507785477964931409575604622138056798278091447824181257192434945971150303238219123980231018968976494336366804160262869571589610741013766412443050176423468125115398971531713656496620568248040780146975938317541886074352278388194749828234696885721560110305040297377562373293968173167259627556671822474448615926680204529981821513824584056994082537093491299017374499538216496117940606504161060216680596080084910321297371125881804053496731872901855793365720320618992617217090374302501226634316662126115339550696321040397789299541912035812840761908301074170448703247775937168430268264469679861901051803402704533914582625560941850354549908898513277990723493210223912528746763138791399651759564014708785448629877596075540061014783502779000861990418450037457891646102005227333618531528979356270222952187421100251807743308239049035040789136323872824985643165617068595789019869803548770097146005399958747063207487949725683203351584375405298243698697910285136319701880795821436879465697949528518294239458759065615166331994845438550275286271933857912718926271056462248442434387809624286044771968927778375618876510284924502510913109028820398145288310567850431418496545811376394315271091653660341729442158925772862354593510296959893052608772704107128145852856456301923641583774514539350329471817538510048200391218633055206837534141289618172837697843214969864202612266854040270531329852382553145503785044479415753045584868582893159668645793373355997384430669841979903216411724039418231381874571084742631950672671219636344350118256167221837454107766358678125644510242741270427241221046021752627072719842396980077413992890042853133431891237005143158520848072979659881932620603842296208544121142485117298299462728699443631761048158169163356460320603190698409492211936791408539506538313282793591574335113709621432385154956085534206636303007658538223062739470790664458916598653307086147246600199498811167174213765076368087182762300266594360222253744342839686246911455403275062915349231995922637295438912595936118239592459772401431970311157246989918668700901300730906200243327798246196168026566692739367033718619823777558663513683857954077510934617895884974724748978371342580239646581278419730761409127791124212852581693945797837321586178722626418201323472825941955827053659349248511487843602371563605107129034369472905590132090445028071717819237867936685373219287329712438391421352515563096019706098281359528003858988707110447498210369656670719818483765739189745243149879327800753157482215856566624367237007026886990219033756422746750513001249996061628095838360686640395911525734860333099641586863640668922768253650847975747326310742686605800852613362051943502055941082627426341641805585658716744742913349868897689327108239946777629264988980020279842317087313389103031723113131288147050205549460854149257699092109176165980917603854024038945052531056006514881750813299013956643226565544655050746226200666443309505070174845772566566896203751313390011644640551571345903533469420732914570043902101446227334696193541772876652451416046853039212721894389455848680690287635563056417460325470404341833490349129090168270978181058121821861110314135304723413770500428623403548223633396600983248272941170254632717532770105668580405015347987725111075741036189838757558967362436260524651983402837182067970100570451002960952066764305945295500169762494430926807537873833657252850035507066287685846083072142595868553143837741657659712751829999036692899486959776947840267290121187851988547131711661669519889723460579068854747683016050537192675077373088863458162710615433058626280407545179904936014594459526071598989061831587211460724896091839517813253111558679764651477732057945485168942414807946394295026770842436012101972333001818625486332974370746900512491524691796760946035185227915260033086679773358873149553535023801369419835168878340184656833161884822270205480525609320509848002345715879060874323217729650456518553697984641875349166773859286301194144183794236559478948329429121977527960256413725795914605768493407530381646593519076045563821369926824442987277120490752101525102139657896196886675727824771465549133845525037240515211862732899887274936122829051174559585883519240228656016049321969076505747902980785421382878420570367784183413901814312804254455401214561090695051871954931588185496978332613698959228166539926163214904740750091899523095338699319823243969142002904024534785122505032190928722929993626791694960261967299412578931901173139689781428489128431310696775412245241569794979197453159187374826268969831222614452004068458886464876294714690320453640591385310851847931991537795223202424345131387003776803600669433059539808406352589908898382889263008768723812381232041043623682588721908727652698616622458511270414129259735695016356297353158095652163046021094493194047990247520026170897061818733050980144602889154629201900161409741237834856959293332642396069931912525556767759464851476104887200341096377500364407757598465901334992302928485300159757225624457690829004472285990336335764334878503910795970143658047339925302630805391373000247106886219674451251267300272257429432741695637322261107199011497175460917901807528038621770907486909684343814737840700768837630807826363268182437495867159669122198085797626789811301538215028247945180686628378188807991654611074709528459352774442607007814795088009844755998116514803906796545097841900857770985528809455129384824267412959445420037497419320750682972772337296207128144982657549055027989363635801154614118900676349811380453588288368858884102316288108258362847706082977929048786731790060044362150135045817989868969762919152143433521169322155677806931873538923079453437218774500962244779462157710971383723983031845842658235424347815714364742091743189448436500681616287578123332957805706649262764095223822792661924255407981090772480041980991239805906303587515737018643962840129615121515488375854213810630680753812336910108765831472642300835788109559642838690728675247837745821948949501819470021155375938469988782797989877096960754734773556537139750161610383479410922421675444440684761151366458275740270713516448325068777710332786878440882855752412484618391745937386868594913740230218660508095933355295890184821129462330756122439843330096200928900686575181502696482086353467615097039542781411803279694677586751881982023669119270961029105643582191831174623627384986739765551869088089085616121525890287760485683791096573528646594624293934416875060546992361125426813574484552135811219715577720711291107946970403251664464415454850884108542260490615742639717327129932974696682338471982105693758155997758096123549255872813090197245041867519672825190507432998323982843376494499955840151006452551966880285214564002811845396171786224046212713815181881869517589690328588403036379154226981357907231051947042342285206030467453554492090042492550475665986379385316623732621098598565432976741896625192053518364618053664089385168985059618840227008182439006259858727112673483736905443466737691827491290090447204409071186371484593682232938912695370307205701933493298573854790545586343047697410704323656030873235227971563902234788221777487387165455263238440049629504472431828782533869107038512368831414503493873756449085387292178523572826886572614288854226877364736505146708317633114433367040890173062951686527194383693876187836968558517082282493772039279199905450514775555564731616861972528553972723159473893739060648082545656256508585581693221477269866727253981038971115130484585929283392759418471446544497909012357471441873148696526220836317544139121336810187981747454238520145160130575788102359969368474273030196963584065816225044552325337495579469090646755889779451344920931442100627854549707188792977595390947300925202837317090865153804734353695215902121291703577422473892542458647375763486207809652528654361586447595376478856829837894672532805984081586959355840425682186987509377466262036812885023848518438887964116074325790948239391013756698919714453313144642263754889741189348710362868102156309168379420792708958094096523773167139873745894296856519349690483235175549685721840486854776870279190012319994707638135194067795328758560014336656100360804784209660025044930340569092686164772782858737334961815503758393833517034646232836631723140815151466663305683703283314437573975684694582410680610850893573256986326563054494669128228198762099376609866945128633883110587972940427876335196890006748411386304621368366086762407915294458884158051855529225903284769677941092019610408611853701635339693846933828881331591117839074475202192622274875677104986441658146236908636147469411753664284671772844444639431107160907897086953808829519662982447165636193623158337768650308093610756604367902743610048639158995944696000948261832863027343473850644878483051850612852983652163663551412142235463999409179782043111052742324217313625471964795006918557797141204322031848826699295815822018235613365180369413551230780902873228240028047959398169492263556301761233722509345666698804256732950582330304211215472482393690511487077143875400096654480552321142258206324804906694503483175185481691592922022816113065839099091955490550596309143045892219346168418416288863559133596017746602982716055591227701232745879761420421706829082180647468191137642842154429139289203115539170255101100837887047981455460014388963026847787879575351017349441097536226208476131407039408508545747495967400645334414081965427772097764263512121684197889651954775938138780527405680601453254963267798280850190595878245434304645817865651921660020111582894530782974346967850773776628436065688745963884707995004608766945308644339103471674516032263909076239598435792447871895127060474239395740400837694746152411971639751847131566633037683741763552857887600326326951852285358586565068874321307610510493047804710382462868048465002480457229567009603803684145178997362980671834118053557127104914350413449291668878758238169317897477967344334945773676503306140997789211882712064408489059976917177014620696082586037771084850339826038885256916234245660721945022310416972761047690112042270081348111645499619815161140906447967225915826755632875114194924654636481581567827160207744662918892947757964382828854651869001494723148123209748560276284719303146212859454865662753137054980687722101728973379958192662133696360047719324003051918066712785621779359882505020834630924164242326915589806084606385095948946788476571285510093750958974374134829582283020697400444952570188941334243386774885932341042017603095114915420282561392859681237173521384491440157784261920279650911874825387370265956459851736714750833167106381517757994432272628375892931797288228756621964784443220987804792488413177638295827122124406304630296327562815256437132479213196770695389357965943902581667364393869538505020983138092045097090842128755902044163180472652314555844363601568915695359199112624109748145635107771219079015012480854915421714424040777904980336340981360586970688546452212181259503287719589989881553308989782382874251268198553566492355716491171044485680327645387755269137301344017259353528746818297459756139980008928812318326947667007238015074034573039787798422965347954189603263131706973245121436293250776643030287577653633028822217700766264578548464145481978272708519777143121383674835803157248837407368567295813743123914469423912720124183918929821130881446820318688991498872392039065344637056564967850886101692998941733125567133538312563238891464752061509664493301777416269395164223409143371892213400981249214504629946005283201256925950224954402285487438188843084478228355425457351166109680117374404609840191504233733843531552396379270365479190815313930255456058475061406455630110041528407222100793660904746416881849379748961437351821082554904999880725973048967760935130657098803240258067077077646993584034434628625895834415427400524467434812035820341580332660141812513385024607603550487611021263791328855772809719401814937961162680616682807719714158874385019751245191682838861159576520372754102384789131129149803059564542759083544481632600149033609465776110567487830029507177362609171746291668181352316809380003540951887311339657404811214334593046634673490208771498515505287231162578036937756161565014417500920623619458021055748329853963164257552468037504091581888864919130981821219429935187272696808617926642165108438915192774078471103089657755240303587592336029580937950596411183470143015215794181200142044518945410242644423874033728810598723027433220000574576932465292476767127056047519737931316424079917658678203063924910964481723109066817381368968590121849249187029501528904828262151903289752512834565153873492956300936840419801752694125715774129354078548463087224814983293270189707070153506589478150055723162800292425633142714699434616356129349921211175157377059178647644951667903104184348607127791311418501055623710806769683098247516471884675612141236668906536568749972015781692753381584450856216549162531337295057095176122122519493945540818293585520917939268617934327444927482496155555615254377773194799809847714754472190738429943586866992364250037783561971963992864325386912919392447330032025420580315439951388513961049734706001329300316645336777673150616260511091333591070536760193297675406982948080758175370951738178315405669614721360625534094847265564826328567926565165851450015084431008127807526759936199390716988626849504430483859166871556274354172836751762214298535044737442527690038909800720872985130866999557607784788763565136664116556115791279906226064463735001463388737329538535880401568919657796693836825568498347692657874154289131029099290687084731143326650467438934909986596810439116886761052837514073985107432245301117545610951501436438649946512553165935336462827898762639227377294051050571313491991626071779653657076203735515649831429258006267800137947731561284436298836826504067957554766810687876304308092022990876645906895060504698328332357498454064113946787431011893126411067496672209531917397667464203046099475439003023517803495071672747870389026821046655635331818685269215311022274826271035341791182672476666628977258347585093039816631413653616001031411301630309631730656112881319381917461024212223957244378641464607436737743292686494152881428873553083989551817636856275190509814555716636734083883615194717852340419319308750900263309166012471056648399553338041942995783519520477789686394598374272212158960463708050067470281158230120813708996338513346463096020340451167403235232057949947838642745912866368348908487282850547337584013797152418924638684156053914046895382989774925904168423387076738404290934063728663589448718112081347115993060182534521942057954597776381785293358223177006240781400326122115031800353899451012534862970594203970169621728055914654495224823253269047123749492808355376585691636347588756285420310215239109608259105280209787395825519349331179761555184533979269629985806512489245721447735892029107118686821628595016938694990266291775507806932797977793456180652928346643101730400872569738647778218548085411607507561694419309258218782640924250082336853199130152889624843818276710023113326518514036432788508729203524984212341160795965267882713218854270460022024178354129844352147696127008004983928402430581047033946647285171484542312145668262859181661633278126940740690749176159166565475269443048263269249880066913564083340456219278046778076512698793724445230139764352382683266403796123234932641505437533512438682658286148696354541252390485538866127967506380020293598756166241655957952442031266699253674004689916696437191159147000468051629464664084093535790178078547833602576911340660519213423590411582872333154033363601718321005910328618436254674093470225768770972063700855616312733899526026907326906231755459628176582508420214517307732181863216521025934410976056012185276592171461465280319659236446422822109163994397014886019985709718633909045649202040407649877908244698687972431874190823689379996692002291049153793005939910286711004738276080413615144612726657738911280900787672837620688027486715902497043673746217627522324213998486660649471668062235012450886791277094987325969277246937517998936014015155412661405171716592113689079191890534380557643468880502478013404163924372118148110756753107343965089362428029374050442377764027709167240423060059934450042458351326983559979555481121370167341056573294645970843194621569134634383343576918828910411032942420943686473346152418724064275541227100112720120255172501337587653573462656497348980205702529240166959241123149599796150905971843450636342671113918218239879725959495012960470322144160003185525868715247805285816338178006382988933312780386734425624555664075313545086626740884868580323262051471728588408244886984791591009032817599596475125987416911116725420384430306688550508059964052962674193263883565612271386242445555041355845785209372359271694952613830143089187939268649052004171294649358699892528950557728390426216581317701155069304269757923353137990371615300104781436987131277986283870897656005436507804268091343050819429897487607077548298628692541646478129961520332465736408589085405396964390051163223533640364998367636048637382327860993780563568963503642523753840278098318906396682090607320240277542342206078624232484969143855496288732239614768431442213392089831587068501638911992107220059963130121099406364120239538419826444699156519744306210289821762613948560493516068720075440933841352867998232760658667589229737783186837159554335512848331945082656776637941052252712091463849802981414296334169680581428978356689626926873371818240494697224618921760888162165599943235094070232194434389135362417867378351524177045379290929743539248289542172790418885799951486330879125089605325137589055850719501068989364908746645577583239859170730286955710700505144417048418806287205670040601877777831627670592968966346168751504756336310930747360784265189866657002119227066804438637224188474441125833235698705808912963232065791457152242842018388107895685948353749779552863106518293773589724340244342844582456373581676705030232158352336530341710653158926098051470516440343359635696016330134525729653423378069514593503708278038906766271544428530737358584430175489646601015571447739977235985169856661601863505130995636424064425248399320213244536549441183916370986210749180596602015842037520043681149078966395074319411094596466561229868712247485569627759270210176560931044378852657059086864628916731551673225365617357235763502477566771955980417486077170701917290074874713932766174281528092691406257728051644281273261375207112469357125438042098883165109321380771913432602539737637541105859816193913287632315444326739768768216978927041709156719073458653167937646885160154313727270093292479829930492753088303505209054040685628580578593454804930658804830680192938018878020306960660233759360498949995593440070902774550505003753956790073617303546626492519921280416699978001408017756182685035310128411579299745976772663519407296248434764960119954225290800139425177841574636224268061435452017399805386178769788016940210669017753156999656050243485512523166270826436128640022484432194461028973814361691357899805489053700283601435282394523073721979323378603865673785613428077999654546743681831714963351886801450949132354371869834426628108846120297582232176754679580059878841286423446423432562842159440474658788773296596245829250495178892840169108401648024502253281877114427901690120590637453038380536073365392042847567054683972531258171019360665291956198765084229236578736151907392242582586011836248739382304695496056647342413426517472196921384315826851920585637812407270500543310950492477126105002747725416460486004127481880847046635355022271194003398325912158937223819072721361263557643816920821927609691030278730176129480922383141622680415202093800002254908876462774237214097398644757973328112970714307716196797692683595355414814528910399494091722799180657835189877989775749848602603900429399675371352466875898349674696693123222006035344108515494720161906749487825739269793319900338093809992288426267937478137930361651950265618233803702734366486895115850668604883027855281359400400858883748312197188045348759405612948355859631295701697853121699314743334943721028143562085185334797687412472199405045083965720143055319004371034950759885664974115159820390132001392712954541265880625547913253876239880928691160979385685363752750852965769448886454230096474178693267003144613465984069800035239793372930019216903643997459623588843733924130537219023719631808130324677061968756282028753916340834239328272490973659609111781279520264815157546357995961302854720197059341088550036640806444321926210991625766284513335026671677302864113619523562667135578623567578187502637064489878794785158132337942115029146595065846092858120290976611481749188500046064703116009984507759011226320968419902709759308685374772730950070216018100645147157958113343552281953701145682506465497097724237697921948866609053115078171916267828294073706675427130168966139711913194335421859694423359828006539589344584680796913750246055997506525580710952413463105448839424029046754787927407091055757104864644922786353242775100199234359539003937920607823780470878187511730898813055710363889177017289331373356845969847470954152942359946541005024035750519964143616512838632494421048665193451639305649189752329106682487101371757166863938794703346853470851601457924583031324036540441978330577845002677479561415338602636199765962471389670400008935054517850176211406544529360355308352478404351469790638632138260756631109351692344416521518353375875840509674920395867295465519558316677892519789236163541937652919203255257345629252768214707880967697064041695277638273954609768871834434748186861384778904090815654740533065980150936499898389539512896838168595036633927291762430200973714992387403906621539115943603829708118988238971631738735430851830625030549263979287952724509049265431820582004685867093772641960366600504718398602972659465422278539174561446576167502968472266233461066307543370904830461280221066944201831300716974756695389245452835067856592346156782859199663330184977464283391581991493378519110392230022030068939175159969442581902723909682551584608924966647216232159381366474785668775922739735857861955747203407766335850822733156294689920902122243673144635990044088072818129384609162264900870004643991312862879199235032079970010392492426055438551506671909515369015684026976828660718040182527882527687690201183484440278931441285278138726660893851274227247934570521829916357321554776382669927037450286582927266661082319565171953255341141519812738939606925584230254053269310298123018585671663698457107103269395539821690885027392909002639365989951073416620550997255190698291868447778359002569480918015447235981123743351062289808920324543009164049411430270946373653519801873667016136892891377186519848163637269861168853745110344544758814564265560867862284245581688099590492639905977264047475134190842585095559480353627958609583250946568772442182115961775487823927989095946838448382206188135686937102070281530423109631109021536555000553449060576542432043181943531865626160205752145562391259597039508195882398054267242040393004384670877108488555249126438191521560018172842834867863566357551866377504371885647160525520207643345728612144354655212845264786156240487931531059324793143318818780453949562128723380524354477870167797391519923928620086837168977457449416568645136778691109450012667573155042199305376298976461462761096558458951969510528820790138562394072943724930712772912308413700312941351694213281223396185252772688395574332858933917005444744187322680635053654833675505814859531343850994565490028962331455394469819353740118495478003047420936897428340875416019853123642617261592096990597013458256813886530993123970569864232987225693397802331366683022727339354197820089030090198376076304457023926795940108276081628584322401425936195397269233185035412321890572507421059852588728007749017981348639330239194230424851972386083448898183156224959216289396300386433739747260001552419078988710879176319571704026064163770084657185256270521749365929727625006316969149492875127849514494219260337568403363652364611447527220499776724705388480361481138992432898703820029945394231457989304018256826047991841233446842266023274110154463046215024101453084281640219615107053497846461164153009832970191935489297785819166971819965276871631882136178910169088327741265944008961769270887113765309558425972709115629807924304490566731495350880880529606339521533264675959850641573885008451294070018722459064347865906137812081172267866177552550590831584219955944823692872233610365140849607138597167194782365154003138095269354154391162730566625277064476335812314950721401302378579729627324563708326573877557804732826123978508036389112555883220407120461560499887740350080264224978234424219798798944507446329619400502128325501066972662447979857940508273832261979558928237896811407138930650783217430394042441884745335946382985105051270819509646187499145504544606138143787085114160514184046475800216948743260453110330759900316218422476921424582345813495664818119158428154943579979966483607474951153191885485843243673365602505795742054757721038784827787055079622009974090804539723448347987183625078242287438492830871451272984157203107679003109359308061585621252498285731724948540168254081588133190879340350613760929587785822318014367237026238725121238036189135574138420948374991996577873268091491257137619618385803212344815153077811863716081034592173808323537505098383632299210111494589159603060687594225898368298241737444544755888091984255783799760022186651458268009865660453321576132273599981626202581998039710930076731307578760634596791859776754743739685341518144285395088010189675567522536036248353173916572687947420638467304360195431203893052284156152148772595751346019504142701991591143223384953908918594214654210603966499314047846932896483734868648274225864759672560659950457120240179112178386271968184304093427344664840292404504269645752412533482690976531592766160548747933649713068240351604917323408727814851045750043074367605763659945392295405168378586388177272688610292823522212325859700059984394678197592974358171102543693156589738591935308652458312132655207285657351730983446166486389891415795736749520134791152813948576764115871105512076271143819977832312424939366867579620918476870261179045075657896112435029484426057715812929954247053466374374774747397369430751153407086350227735118025670799085030264614377349025993549252835113468773126440787968824029836554164053048992013922401786684270729247282384746356666163533406095464796155831906518931365387049660300209097446519306039600240105317225451693421740619662012244587741693499182403878109920034499460168164036965481257828273576513757701989333024133958705915374284858283347210896217545325186878708421611961741127305847987378472106976081132657827127649682653371099849456316089269781642922748713815981615348767605194808089402022749415017028720855111783897349852623323280154429495451526544720063213830168977614787175922665387309453766296267314118721992492641928901052343390942844649374788360756095708670326748943749150770535848930074965987795048286382307477845262207554157401007937084835249309601156174927710556998288479872549255438874406411616905513604495822340201066993871577118543579645579198862715629644170161499364269024326095343425583920200447392968390340624429935531591591402991859827516458990390081948223489932168943200144756200934154740645688968654879793556767905945182812492291094825961510946692312312623788600864807192812184345626927732197828398587084411786251784964433698889701434481408993843832003891379152902611798644517927050051439916706581913118406487508289576372752849111029369138257113970491339184172273495038912277415448951051639123552335057012707152981507697368417913188759216157825365733823602636982240910535952941695415531898940154977602155813477545540080630451611756131821404823744029045178662892010621491803158391250960793978001966643029853916059376415413231970431259335634910759636520898288572267829005612857031736033205335770575502899246110919602946107966950166576186729808031001734939409093875644164981126572909859417542457019129509057286920146606065609179395179218449914776475980682126920502951329260201570148630428117272678994361880544985595812318207849021860116340937783627992788003117270246328081172148186338432415708655748813463985283604007222524606764927957346919612631843642598289706022924037677457273354818576577770045791272313396209670816229181324413188510204626680437427524872105012036594750068598593118205602096279755380140969256811860570239746900051218309614384619738931270494526549246116995680396429164678639623117552240317342517716691131047307855181296721145672108219770619948180861977433318891690784051591398228564569521112929523233622106606019527489406055204917531151666635123374165282394564632865357263215850617578077945242373543651162295776963738950536789359795497326720883154063477950614584575110852544402346346897371220831082546312050681395240030023598257405437150753749421712823041152614915092603265399836539266586294978677341128779945848822522314638132814705701443014439277442257538054965517121253234119191730133992183464633375038810425135727134991527526882954792516350613869931765450864002658711384938864311146703075897666655123318587433145150482058432541998580315049846078310106261002639055305037604447850710056932712028338730228134211779213470276509170495411316049739115350138543490396730798309001025146655468129155034416825193082592297760340616419812415220655283064793007681553507182962275836472202263356108434051828595821788817244707005574224275179462570593403134143252998653625642277941343834200289149622629943786764890239035090287120439401882981253492818948822752612101372228139104402061312124956401019933133561067006379858149757766537012666229487625513866305037269137921230248405003035041544241559374743960528524421337373308214587506066309762217969044525269055974600875880442267662564949177115088716126774174480763481216454247228450356131283297315673905904537519080140629788866769826780281776812609147702495183500850868967308437857322589259931883534980321456090518415789684843957365996346992354099611631461626818357542619369672932446350050809385041964902682504026803611316745271278429917190330603900203560929603958995841394793740280492319458911066490710814638899813126411126885702025399011948829897233368623750499229645889579839265614034946181160368475878020398481174726098785755805776386470208690532421387853467492496281536021757377504392101403778489766902163868684746160167603728008776664981298176083180596817307505765559854590262865497225244053402878719627784069883562789593358349897161298126869052050292376370765574035861747875609156910276729177229940524470385855830307345023147333755144755999617474971201155771943631653237483682571018754287291661527973166301846151871091536561225505864515391104292359863876265236222327495560634407823704879922802853865263975562155029128354574127704598623998836736560574863939943552929428027468648008055790529576190082881687765471879674040945031057944020256846799127954480166210270091728630101631553605298698503136337160855318868898726150706721672251157231387465024509470877445058309086629318606546298367721306502447589234250552615911827864194979251009186831240502553578279103343239495660413067262171588327951783810458020415394428505484203816947772295264312010685934080939113674407663762747621032703219945749233303506812402336008338022203326665888945215515549430854086026312077642714553900530659778659018272915077159564860137180274082301181701473594611735730199853198041610782836101617684741830132707707528767626613849240774337948261308847649423397049132980994557343737608080956821780228607806722468625565455812573221495121605712724446042499588072687426431301836723089278490423324597533060831437226075003559558245150328543423100200206245859652818315174855837313267020022371796211194096564312646747015391506697033830760198137465238359232167270884706957135700711099598617533051998486885168396518142687288459716027419259365023704046296326188211400879509224388166814702989712275582117585163941236315173884365028626801806748336223797913399471995930695349942949552910718642814388868944573922088451122009839310296426490889589374874518026211589714954958222395175457132311762272189570101808405682194489920358690415896149508279578241966297792025991946844664254415382376707571005720851545702143467034220118941096470700793565690821630361554599195757355000369071665399815257971436543280039372808336717543588713407052495860018421699382640257669618455182262374235796219378853889150057322953993767326062337836450421658958365712015151758498737145161381609171131532055404943914680447700853264564471526756606414393266049332736471438041437256347738603452354140520588832501912679788094674243843702304269991704694808297487892483913079371179315562167544650122119291820998013729286265554107250817652656669987321970280338488950543939029287253880324820015919908332138459920592078228064108101463720569704817128303239387199835188449563353720814034915491826630357125782319622769334172027003191348839710528140193237751396192049328323916044129009929496590080203936933355316461496509784569621830130748342266834956803294596116722359510185992869364695332270965314244376083695553380846471518650835830938714712618477215020924818871179594954260932770112245540438837391259733223630365085726424989788478672851233514180313621619611135179231529402780627788123364599108167920576660948222384939396582491282940214919187324825046327439401500894861413054867056841746806960417412756651719403146314540537565704922772375042145460170469647476016308280527792316220420725924778309309421971195706069204215484287209023405402801978492588546894003659161804239236073082221366555789105197974449429508881510332609201579426434169554015659531041055480781667735775614074869699638529053093963437897163423097216936959760269830548854194386985999339136297181127186061605914772796173906254488260478203963530751515748805855635463408418158395450462038850255472305332928631324346249220534611123048101806361816254463244204911444707200156307353107113816621428092878609819158958335510139301317144036329332639294125396049589013920971955618537777112571925246986075844754359832553331285428710310079405391831771681131714755709073957678432111341416748545269904713055935987138711256805187388568639959337505807484348850295223906235160344824435931306672484520854731318393313248335028689426461607478721714433244857791081092386330898238404043624946258070381727029632399918935764446657192527805498240811617971811470014782383423747553543600673526943106360719200856901982728020622621703455843396055335040752689375591221286957073611195288425246874528513917109009088286293917887611405096214222226741439294507763818330409732407807727342993342213080838815258060652655699878496889821849482588595894829062119130221424565681036135798652590042490732129802731218817451189206806464988704519445435998147464687102672382333623250363887337220605261062843432653486824203694195540824038564527501653518403753469696223972480004028786060141296531239797423856012512610994275156609936490409246258496353634546792084516874273769967997257592280600882186052361065516834320240538195462785093245679388316334526606710737097284741855488869447958444268091526149627155887272294570622090729825001393594512839278617716672467662595570531465034540129507817053532181651243453529237299586015945701575714618171763851297752803247755765092641545588515711770813486234544990682563798557444834053153181365868418929254533589541742340026637812488449251833716650584155928332266122730317534542836628150539038725620308381456513747477582593750395347218149531014871799772474348648266744051928116762135185753774940614893425585349864477132767207062195225402249698551361480392407447987363513949136743236791447654033810967802236189992394268319753444845898690638511523682995139734065851295773299111185354699164432159822745154794685939579171915280286312476383013521080692565410714972144208770626656819135766602764833304342312874253087263478911892036102707421214617004810519738944866508384416626991403697333711324360845597657921296480128274785621462977280389065131396115023206434289815567995464705954490445771362717401320027822894382673664396069312400404666633721563626585431813578662909464224704944951180631598713455066616227910616391676265038476515872484124100554571516561243144568133309369209215639076892219549162684689333416861316117016462541663746696887717781593513446275535466047869361227397633044803598167865750249605853391601708103691802844712734371702169572003108501893967936894208436348867639631865169179338799125842357335519985641060242946517214558880473239207695670397829827955780148099892280344696299206044895654491315981669015768181656009398153927532235854775785009053903034082399210278103761813093785917278264951990820048721996251062937675890134698372302848109769579730206380906882383099402182123553459938807370762983003044656777806133377516537587008715898890108655725014741442191473214280207739832480297448264972955787133830444141432011679787149116680494589626609926808251384634359704531982952604369401030045307026653419689842069733328737876201541085347809827434606515212248955532061387492070248570608443603007800545460483223392702567782113783975492711802772481418066652273578164020016224468627116301728414715692821042474125875996871664271580224333686661563143574738889319248581030725088187461975902685771960376320877180040634697359714462850323083866009277761065187767405520649340004305155447190394237271100909261380079234987695513502661110220087547584014770496450202478568213158139010074900966634935545933040671069645174394510171778407975232481729508646191610698332389879028635220435421370211791567863622438960034970634674349332307799581146818631681551071601199220205097968241489099445579084719713402675130950854900838051890352239589386997498439294643983561773419194824753821754639604466607037253422304372667621468383886876937816384255418659475751598164106454677102587154526846492579914425876355398734242186197476284996585355667352429912929126695491146874415189669409751975279142043109141653784868630799194392480223339244157171300324897742934616811551414601366130134159646053629494217070736713766977771912739000876917656213028735367985093965916426183036682100417829392908438032775437207381606078051168626201989361327778083908064444440554660332724082014998315987629521112790759918957288957253856211968465087897815718799010396464878853329013659053931037610628516630589525036681494878789092239256848389727056620301327537205932560288248473171760924236296467801953264167477879104606168001933322830485455819064636864958838742429485857200491683904038947830267307887842422000480574695928349571159684360955164851126082730143321038836847451161338897744617016782752837849243484927768735382486154496646161425867012115838524235595082359594946896875539003656082012309381857569913798224013935633836894256589492491379451288394883728755471674729577162668236263170923282770033019529193617892493873229241005504989142619288453717642264007003283911775306875002470557582478573760376777785397309753671022020966379786649942650513582351179508965818826557478424277060374011649372380876941788864998833202665177654700131140469454462148223546520981487406991571624021433109772064860648517651258903613595831748705195769523052947498146799564967964380959794546826109297567395173028676186349311123359922350524881844870058688666791487134820427496066464502019414985280482720823700750659774447579903094162828398483793594407080489594136490478886209279045980807232845701096251237549844146536281690761021204905995199822982187499955455496262469017382383864337872414370785877504938687093372638199470551890243664029094731686907430091308512499998468196499212106440826523566464007710148080478486730115314145184474716662700434899921383698451435684195141905679396934149443611042908130562090015482458564378647943268184104116248106251160753564815408255595697814491597287016447117713413182204271073946671905579947718508602031434965982447240512388876388499818306225226156374201160553447296543519115907584358129417270850036253641932160377462586206876379300167370627888067881753773075352068774479503274752856893935576801412678010003580808739976076039566707000293937015842427644095273340378471496956791333567456362176269168837940588745224123477492786081653340355280950514759556397213970931007998074173370268866334945867114666325788598551810029610266620457574911254352741522377550914207956442877026950192046465872761655870291241520615233378618502572313716955456773532136928353891660530435372418852410269758423828207720267457941606535774593270554018986151898210683683453067984128143239286035212133817772794901547798020930255616559084217129833806466627917115311404646770151690412995478102824047461698286649766390502330652236593805602511434547468068506123918250185235822702347212188598263679929090459213808854362227489685686063742683581390165814455319602004484359567429310889605080737462847291052620858737518528684924507942739911116695467907049475661095420388414619419502687560134535458077371678927010756597351531620839298561408949348483405215824072070612025632090807633961424425765013099740109390759523499880895323384081264689273511135684575215926723485078443353841853105614756724649039566134379725436706562776255849285037829760367763982101194975370204061383456414737154789679978174524115299445856113476611233553906804657680799165703969953325908947599487881988137888966948702063797830428755945852458976490284913942162696670184725875705071350625734744472444575843491559612199655959460664444667279037591416475832382786406600316436586710706126001275046187251333324983689917831835251109929103032892773533101053736298329073679693495066566175255363681592189948461424793903288349363897977359453380505818681668927337222301866226169976797901896774819520365255768887103490050976590956057895128969671727254262672949340644886530192587586876297995713940574551928339152958834217262252691280568866628188882054678767945355792119770550306815308324801836369866456950305992540014806835692231247494322741400300676109546406757602518819182068730414287432820204880210667332575264085165103493886932137991681165066224528104627115640526988410933040069775346475571876841320392720498931079217064826629583228752031246292384878542955860817805134819777634165035551709912916509390760638868989772141796391603545421610329591289876115072321568970874466363353539360987676623654020976787507742078196698598581248018017796096307304102321071310064875019681557657058322442005024671250293905514178605104529252148579104318532255390076082200512120443197559915644656330699460362114148558123267716530975691249121995523834499395282399118981175380953682484908845754617153499425252143789736788344843694944656304941281815866159812630610493242979735618868697856353441136772104716002106627495284582489889280671603268276609467580220895755284226790043188309275534644458139347189074646751052289098568133806121304204858160134100005957856313304029364491699253502048931195611812327371493158311974827297515804729504906244352075365003822713224403445819062656171956190553926536147680473110893142461146096179944951593555879883862443674562050068947738145225553751682180908881648770198516675219674878154402905457230449838889494008933396621069903704365851620273860973171168184701005959431293864404498870049902556297389429036766721627352306592592363779875909342854941696199964809208618343364606250948355802590908614966721989784992840699992634471520691318827444552670427305946627776397682885443198574133223807165352624897140906364428518571345842049751604575963324587295516908179835393382373551869414127149600615579837667274446380925958555739676969292634798835402501833304581227725052304574542625637909666807255574620950181858267805961828831142662653165636043036863978158618197970281780058228944254363467300817149937773914666487054874175149294354576381534071200277271689136678436991229266028538768702838648435870552367586343819137400105751314040460059167120012161764765095568424763013385089629921286352836865246734009367901486146131737107898737831504013051881082357381717967417774036434947533690383908062982205512837306370057492863971513576177977173610906100573273177883678948575933329854540662252235355661653307595085237176891647903295705061855552615530928840755979098217423070959869003703167629669243934240184712343387963113917025287001580716325614497294051817748009361547734311260996891459424706838101743888414253498088899570827871899060646421284156634990676022826374169650398968852175883579118231089647331678470462500103378600370091761992205328281292385614729243629248611172657339100545882889708953528663143583295547183998834770599932038739829240817843111596477292328285762226611559337713971039133825799268423074746023289097574800832252878395595140403324515123103155681668378823564714830996897139519551229703437169756479895459866794882143391532625601399474268881135512478616059262182244551012279216408054746279413868501270911463088577215309085518209658261584474834347151346940106503699392111165481106065626946885610666869837556471530240160260244963779046411711901829003700486966166451227005202412689959388240295949365515365700462795734826466253236751641868563679106511850059756012255136267414437761200172447461161966564351694686704510716411077844802022813695887045744964836454890051382564379411051716359524972423729308534612981694517411723383578934727712329295913647392315484574936835756189482725423695707730118044577871157860282182916613096293646051567849347256243455951900830076419622392487593910148902157057113636354717426130205618225741714002204443719906976656388382659535570907991020334694553388932771624322296846513081276944249097424077463500339541536487288309654625901052355671901531964221246641992593349171304914454017399868591813582946170768957878995644895958481228163153568265155030476119014371918203178955667105990615594177490881199288193303297201292420174077336798552468935184083878969876965673512515824908639323785287720585367958212490808354116161901870211252721597100302253059851064634343419599780125627873620736050488678860743194028901312024160338893316055991825850879707151285146065792774852586897779961464689693968226021908856380727735609056258775619998476150349468927394346280181924909973387837893994010630320112782367042150580688694055812560715103126230532112897459271864483572066356690438029161451033833607607710557547393229154316516428742712367936467841137747709545525166467091720435425638465796228882318450332137928916571636241730020762254081047154363403388632240746765294846044969678835914472127457188683234300191927630974683773892085560681268270246338227659250457090795730488809935807406395842897153988253150890790332237682787297442881512576327948714703901744843116518259873327666129201385824500352590622862807612443993318011848135231841617129566892047212975307006262981202238433505618294916293834230965584554163297773815807073005196634766623574224244776239612925359287180770390283791647035034419727489278952385744649745029539622324218369109688179706874641609283290516698813709283736586046761651522397040133504970367169382758688968652253226855454809154443466331514583141593614995683025272645350881514776494927805797323193759737090331985066102973656004609189860832888486465620906090350551306712686294806150626757401264940586488787808927508419688173802675895851401799440688406082909467221406745141284396970480112412536474876725002709763749080961518363509595662876396949328931746539719737848295586673933317905620717672969312410773317362918772820238415501124596803999078224325223079540951349503825525646678809241634542360756761257211167780973931640056171877279813956352465483219820775574845757994198991566423050452809955888672605741831161235763361060197380629606096408142531585793309700565325058599068066675099009993194309663696899799920344106656127029633877158758627036207536894589320871201163416758504792398827916575610177346342661948202927414620152895009092524781722368662944280086754983624316332866949121775903911664731634075072506633764678050548049055542809778599709595301083021555577290672924655930177318629836335649672780856314055597520163441309360473836640679373122716472869516453572987029554458366323564634007051911002634023713495563053073630686994728056507562650523032351034109680576392602089160846349046186866885339074837182387488878012922558663982448117109168059310708622325070973207121381487724951264838907771877783027735608520842065437704601124146507723289762903343334503367624387003865981767883180020417807283245070490124086278772322116769535667397911919434517121467236488645695721714681766507381137822566975475262004580135369615986372458670897740121141345516240195063089987909672094320407951262227041341554735206995481701735377412310397791798747714211469010926139197631867355809863384970469853356993559311311780658781781242976750619075019554747511027126778593145906054678529219802390596032047861101967724685655631741624650960283386397466458677524003209913142867994178997180016439400996338026952440648518045936349133609614809952562197524360430627167610228634789193645607661621660079784888566582985182181435539492787961336514952544957807381642292234945357944521960189838469967176672535867884144305486124334978071271229563365060165884551833663362152264980565263249006757495471934834524078779217960347587974536915842546560532559997496709811059565215549296282973013926824498198963769617295102487872585895050017162615507405361649465290557395655945412157143478302800650379015479630824230975740567683737825460037196294850984140060219313240940074200428467837246852360976910857598144224148734175079613741215683402763865031335721051845351405348912298111911329788244917477376110957799809143211657384371785997221662946215712218037055239400393557304250945358248794120308144366140588547385865209985043571662586634954498758337729595235526729871450549588438336669490418935659099311826801720543353654838694501264183933785154583278843983904361453096633887221429537794644949348545050164535385846490582738644991037821663609503193916849008767192166459184236416932565684276180164913187177365722443296634034664104449656331531586556554774174311866744885024058798638546078357310918169809373084117709461140194244212206663933273800950673417109661139939204593271025882257636934154917286734360919071608959821051761417577285365177394870844348504423774471065231621617568354806879288168604996755458053856181649132149337838345831023598204209630550332125583509972041662345470604665273318908165376840271527588647184428809517869597660768853337968794542036201977354118247663728877459444527336410130294255890015329598530588690120272772861829928726289728887557867148692237225773005913174296852855962373809331923675776071434344679662939813595306895816371259035060557538189877129771911931483736794143911923738956912467911224476317042608633618577692924454544914331126136606880178169633959319678503970603161922308661701121555171192211311921779594661299010255056906091094055434604816806248069444856065055512946353315054468251855821546524041888814953404725028152768213489836788745858108747004016197325473584551767938300576595168879819029638485389405414045607020365444334445660695409869311471403026735539364672489336480885038700824204665357442210371791248695408277309766918543289898305261365586678280648754398829484079971980122354988285848924351524009981097101645290317409264530190003713847247195632075709273853339020236692278359019982647066425619444818693917332650185706541812542504673449895422166494234504180975590138656147317632454657454081725873762575632816705254146011554358527270737234875904514324766211195624592224756222779184417305903344244954613576168814718596344621738238242879646025035596346697955539042344494105272877359347919034504684306790466987609937309509389051904777291264965615010134980012971880050594907138383022636344201755007040664649363080162334244839462161740797930709553735097546118656373181027832946334691055501844294704744288602839061185660984784958493733531965337337147835884614697296164258602991077902352353704924862142487817327783314493297342277756919147410228954937637732663879855878319753584298719059201564262383023696257270836154981861780316048959619646606025799278135018794747889929382318679425395978021737485383880548466480739938418764545613243910191523545464316538910961303907041239125869518453243491569834723205744281547847555869563991578915697033365121743955065951510852095724200143424593260349237678292227701015663404922875750879463511697715432236064069673567130257153955525339942240242980080007978280309870950291273875605281396589900618057536288375695417339873543935094981629862503680009689633541438621820906353443058668750924209400401550280608312796675364352732842731034069212312554078178692600787877488509049068154364282298923019123397351258142015749525887309976506952133643007970169931459574758662688096195475126896890287607349219582530517712390661095555391127663629291125227189063796010452206904158369467397575595763406298727397714875922858617734030015609366615851566964799735535412965848769708204043953000861973081638342900709130753088524760053821914332397343376885884249066140339729934013886121652633722708922325132058208571263154798896524544452283028449668931456187173460058528047769931267398363953614179276497461554858620361807474801876000420773068889199987065716847203805145655784720508278205224522493386693876593151900697920732324456294514836558689147233696202928163913073975735785645096911978527368780120004885479908480467106577545586991269774957561093774920848236367467791998123011279238241895046962436891423680177216668817765167017404191955758892582312363859877888118370557723891285856718130337143402227575606072600766273696654717382118619632648772125260807849278118552261520193413620878657042845016113774644885368408739820886860698729084578906482886871731834777556139765535620006107444627741546222273617565194538984812889763951832983885174626739452486708070003384523016457776517979310250491680821721930015867060413756786216874478337698672747780099905507525675625865895600901007473024649819269946225090693484170988687815603759156116378245746128869611186205913743787359965007634326341511348445470374296385278131679778449201550294075346102959022314923937985624206549115705857698563729258284494728018117963820483469593038161268028376210015852566798346608362495473582591197370898998053479242849116788830445261855075806710111208546599993685093297377895496724231418521309423854999107024447461488845300024118012144197180257051780865399294315268166688003068642416961590802630634683630274904259413524728020589414031413091090944693972261071170571828291952617496223919209768899687854886777470392933864273402565656381588455458355314258948489334781652621461990219571664784904149646883279689180685951257377671141944471773593952953650758712203432204791694181734161979690037482219881684533600387311231300775526912145363929970984086103630850913935384153518556325939636975742950470820646097273853214580140402534423334981468767154758507888847892299672009279980155651459775022363752993990308540168837488162032862830829371695215463915295909890499151047331987003326425693685994906537855836193575273198560172755674554439046483488241728569676847591080177847435540582899841064115720496037088036371810976365601697581841745286931096676350360693707702910367849186363512025953173142304049970790394775976141098384905767823200265701311551547585189135152874044202111853070583104356009386327678429951938598525755384506477795221993155867321883187013312789815769992999996397726293765591086537826842575990372109025102189087013374321483237873274242695217366971625825599104688068100283990234587547027333738011185846308973103279985816986819827108757194279140565022419159022031885696575450232773386080062916020592169944134818024829446253598505592887104805470350520090598920145653808562892905080116626524250892466863609808145569601998571207806374462159488812108360515916978327318025329948134512406502950842413850481218826612797811706449387626958189643573261648030667788597117420144270533015391715924875878412207410014053062451437174993859090894692092969136310493153810889763310460998933008646775306589436417843839204099627140715245485730770488896117720174882947687685498871928607044564674854286192968739450459272044208036896445736374402351174091951984089008793762615998316532835461219865861125014844184751203500422815037985797081311847917474906672111022068607948636700972092188382225823046118271370801151506244534924579610404146088292907370908781520053501761221359175740944359384413264931771807984980283908010433221724840482226219615558127620891249654893088290098577398005388418515749715137578957317078237821104016002352920553853533971139732031652143057311952610548562506484431644817438883686603859480614158844189094367054196418332899590629193809565545414805004792882338250398063704950173983601893124256528135776073854956657242890042377076289283128763358204378371038258662164206707494169530971147755434653690063795007283239212315389734805806901410066853094305946845288497102418875358854188799976695688630926527631600106400549876126507154825543026408474588973216943761554834372122802038696943820747527256940203586120365818396868524770028925198956511940894501520048381813201566028022815103551567711130854894513513848887034465582600164833141173010545455334557402024842160116608040780024565105076653023719787316942829486062325219644378145157608072919270255777132224825758598838665128218647510649885752216375059801326738325347013041885330540097853745263555978938679591548819765713583706153031174398486480691385727599343366258178391876562557245821342969836680601217128669042652472976091204020799388887897883726246645255341777242942357960201525481545420932124660097217486375768238150207938491273678076537536520315073576427071519007969637603414842695035177109918516063865188724012973613548746750055627636113527919755330036665327775859401641182666994795091614429185453213702376667954067574449781683429185626231333307489713804742571656064538087412346327386400013227590325851792250424256868527493649936717446217377989396775319756805254226979799775245980582553220412472046527656755227465736108896496706700201278417722646635151788165917564948907372384652830300421785268717528635208244995030057667841089640374903187849694146672414746052628060592364777567611120650449603647369354223324463620168934118555553542907782445951951569941888954351099148848620960029508474389874473439717849424595541243428163160343945481057963063306307976907579741589114289735057714670573520322784063177195999631623998924879032882777354763506546728770620453039306189358250063977256365405598384405889276865726437729846371809742876316964133460443163413914076110813945534020615546086292475225682662862999328144260391900171563933792904385973359723455333612590887172743565334865326377101247586342732319587088942708363845339139502955652774265942840960062714490426852271439644996174848039713940440388685836959298038900314196902085011967408399254041302181941203545051129236810964119036246733795050838418045869059045779758015867622816696403508556321784982696410452574128927494070045047942790886276233641213748004713137392720006959165228451929579846496139575495339398717939761906174015845460515705974557601994929038445169572164493679685707092645367998778236679097519576058938744240383932275638370557998456345869118941666100784527523317431348022529159861807386875835339763410008627016744120146978099294542605594586316342489816814472934246821402077921445083565027489711585574097541599970249734882201568799650690693053006720010031520902070342070759975674662296910298294200232725307813917589288546344257609914531264064178396757518791147313564258854138987964989374205880748330220827239904322577356407107846574190379934348871641708667304106284676527496615460824992555598624310257904979707627839290674186442978343508702104402835297764699696207346999304396943768417818131605663080886503376118091597169195469294213595664079291978075578876917346991410978662603639440618582670978072209268247080039723524746680571626987013161879627656668532957606161289941919130686936890115547682430178245230948948190985146878707825558811087415722803705775292470873637510794986000083848340838311712883419403583841774493044885286550986492249954335351375146407689056242993114491669268917863264486666381971337177887150208207797062310468221513803645994619248198229000370705030377717699801715773194147914362101487566776805697233990706583869831949875321491913325267091059115760936548955233556994224919415093393498282776585023873439092426947756536652792181456672241387202447050525015524329464107574788410294208727506568322111797888277565523415859937884990782230557072855244524537454225633054795943450009152106663099445394713164961882675197571165600762680956324266165012325274076082058057125834494938114757310912277136724645041895053137107375333481741313031636702890640578123530383785216555155961970125238044237617405866228217761255682996143044405867553320268185377571411130739889992820007843967730146424056869721062393314028563087835852360458282748137664864683323010336284648872883733173756073973102892872987093623945630670048245042332747954804257836702549388519219485166112950663821506558711266611825048861429479684572172815790531719409369469092412671525180071527378787397119147181408673153346725117381234128876865434832189731263976270279256479984992657952024765413393139618384848732120263670266173083907994397096080737276249792368146755814985019458353200204082771831396978165857413621956748473556225990630535625661142949467942935534556374541520213491801726492604491464283015462107798335954518156917342644026911204356813695879726295177528867024986624106423313315003626786962286814895941642525456011488835153736603706722963659677767902118108301063297811490115799353283417720070014824106268921909283278571524887428297096957942075163986943341553729408369888596521259123331075952456601974594689481246655884071535498828572528415977792856272141995506382280317172688379906205667715924047038510150288197153386296972847611768235026296980477877686896097174351653474877205292991380901653600094399731061573684810354936652868428490629116421159402846319069704279132456887039811377659676887850198712418495646258007574466797117076358556634186666527574854946293168198671345000654812476371982140250451702463165563281410514721628983263923575920206566541077105648781484630926343637654602956325276695879670980467092430740752510167666002037888862537370888668250075595001409115940677972343447190882939106817084971160475255535724599272721575664742627559568937309002593541263308068841776193147757650784851181696692115533108320250064876688644536707980446548609567472816185866610046677098487554586335218136258041005857879992167770397279876898068207457690416603491550822896807812648663786500692758193155647808784388019227976465182668285989426370536602730600862202233615133254840315478715073737001225226175502245800724743458824851158976113603434766160266957255862927189881481353632197413468807602279324857300443921754544761472281893921590333141676194662139867628230107286874511973178000291740972192986988793647018638216073282535165280096386868677256906710476558028915466804017639211233380732029077112628816442781598594481414749315065673543561521589128970982182094336008231009651006161172702081010880965024493508948146266985839378332481135374817720416430534405347834557769625236591043919214578234561044774944062254524626662188181314348216446177258578127713708337102901880511993328068330017414989693909766898635037362563678289684136035942237011205010835335024683104785110573872300580834097004424919380612397632697837486543059659259506548453658407404887752465056880449583211568315580174891667939821497101023959393596008703416559294586785336364095681072109137780018358768750323061809282457312215049077920370109580285919005003921152088753787272627200478634821313010024710017117335630772023450930498991174721085345172924166844233519187432162132520460126818552997675611152157507984280170939538284436118275992028127672539291985995531550853949984033987495522243194761086992476644693517211862329485213101861819434654944806992962653072107998253892085181557724203286803139616271617132880300694822027471059462528265602772606834992250579780592460949015135758675987064674442797779754808129397043081514010684486771412921050714115991653258963883181667562012017855290102833085568060113023241511142789760024829658270122104958575573567129262389617423898420878307081684942412172506770303734063495129104977107561314867290607786099032037292950749974330576064897606513247237126555657122336413840681490518268386252348073867384491453556002763052924772609064261870844089864378416438633218368921777127887414420347934988965840695016271803053814752284850432169123929474615748353074562469246071356138279491489697519544217072160083496266852677335585413926225239573957155152084259645577425009023736566445215392789429175142031130743420012589766384391976262822449679264412289465259904188390118618730617850465467630601695071144606250479272761132322054980087823022376857620451016437493760971632795175491435737136208482950470689701028879116261120709579512617056086532356814924520670443911171065528485301243375830586879214077464122037463068180845271123031202280097118647923966985697263603291356135163565142899911468524809718976135863322425950753822137147657235489885292525826730645936640273595084386360137580336050687739396495053741398524245757292986717824352083770897115742870465661285584422190857333702484969425037534191124873853733714381337978863845351584183646280693759458381193719897164357364367274572543576486859979776170936944046406838223281311379196422752878281666909352991281372454594906697751872997503707768604398881976853613151238540725058675599648262572017242082086516379510735944883510168907339089294775218185371611640283746276590860135213479914357175304585924220866563128979520946887496979699753263472635345051187820264368476723442771968779413057231290479731390075473788538610792355640420939721114962892079977437812141790753744505964991063008025912893770622893931954719339415273807130706556438567597851114863729002635913309909629163683274452169654308591227564412333547236056334547900598246610351748980130356212139232949428578464294220409259146385951240972938129332235950747318367877494273877518242619993830804299569239537995410358073317552541677351714988170590207693204302675494455557912438183060822639486531717984292481204308968026433630532352623765999314257032418285873002830471808317198372387745989882684603767898775402455754634080919736128411714894377979842344752749890254510865385307502184867031749179076123896704761472945305741834889599022533682654882177739518419465967243952662446200205187191297708440892216595425049631513250286217683491546178701291466123178757252816892907341454605028629595473644484550481212288189925037577340275629765950766565345823873173808876240378078926204805532315620520952125069810039561489519383830017070136838835286303965838320314088293043716525670447980675068337164035286838675698279650233992297333738691991605645089922449416971426571558451257555724018209771429514576083709149562248823237986855014439379217619431783583464671260801109893103358586922010309351343172687474271656523411413915115899708119118323305870693685798397830619055842396094826905106466286191473470137589709822914987810196039983784315380371416974863070132686070468603233828536950404373074543162207163426593235435819893667445340742134976116390690315925879342197703325569689823746102878341803143881687323103479139815479918389033901753564168225711925812099306885479286223320590210678462714428853797540017439476316974139928515781089508862716343271520509391916521097888800270195857278533627696647967027686594365727798822341469595050858702581248352503480706609199854926060274438923399164163556305062819424958890670187650497924022559346101496953339890513852254702807761796244448187952832969025425865145055430999438137931315565336053514680666507745049019021044376849457904327529945678197575724847520349532359845564443392198399989487206978073990537671061188274839323098140405206583827269847503832400454492229314322570690181957460718931161450263296656715415395347980449761788719095862335433889865388874065591776934935675052617303811327719659795677929631513426631335347675123297673464617572854914273594512712157767939165680112463959792416444671429331318991903013122443883136928075550524600972574604129408422136516354483488345843413319047358248008165832575595188801659684779346396967106618201980521733064429220342876908541318840175813633680396121208974367875259304113598070161926103091304484643772010843290401936386728443552526599695296838647717598191433667183888534296050353033665753227582285587868772404592483281534360325660560997493636915336100226957166863051371708522400813624146591773816445631079177559956375903456209829797192831194044068654250768156661725020644967936571391997944994164631428710430830422791058857028539523227420324111389478899300641072548238994268860823497816831220398061843617248738854015535353010380419100106388415567963883890506276878133729015052244543828295779529867508408353754573915847871655939971821217718142161311333231521314441984142708257481599053385231090301382938944590536470182702662081019353955224370094252314742038331590276827091241337109852658281113010862493803046499751831424746689469314604066529177722919861893532756679656693486961520053973939041042489528078503109062701490071734737386367698471691933472769115280304094794683788745278799975307055562087608986649634444809780496295160000589599580445384878294554737031526643820143133892848138072595426862230382064592356291543513546262530181193080031025378406093139481518134842181906457539523493275058744650218935192968969831273784557798448465262741126802395634645151808677888272793383918624677786593124707268818337435978788761675088559881993007094441735704529509192660751512037780039914137868182346984201807239941702122206624930566580808349751781899030537672621360001922048894404389762193181948651642675774580409718957077613146361971933520195130878467533637973550831561553258443026602018306576483810201724859690557899730701766682527245581448597720680486448698290364952382945702737621607160269942874551818757608662273790336775526782958431229309986504228584520851482983041210951951622138086445853255822226175060765547684576374148972635716346221683277230755072337757743080298726433814209638633982580891796093856667345649003401555705444538440985827936938183143833020846155982623352089151565751172415107529603443886155148362654226670221035747782737986348084190372170862024982288789050554996204101358196033141117078112968483213112792026548971313816196868049218213647375442921013930954948159246025077281307382553130117424626517322941155617263205090445183301563664643504425905465833565135400036573444875729317630924152215935978251456988028969203847476651772868490972358475029303983294927601896118400875225983368774256865297156684179069988052882337184666537537681980891906887355856123946431625131172636924680222964734939990139926609321585256519966092866060442432381882815734611283396180237498265312198378817112915529114153472775862895261694581674366215189678557691998026530378065624217549286979462007905273201545822757129358855229393024054412214310637688143722723414227906560667992244232869216609024553387341323069761785702969914659883354872413155289536408965044471520895752911124537243340882352240121525631256765336921861424460053399490986052699256833913337508908406348243617730266897997450236139974372427866221335004817896522238158836399284930586970507292931298432775265192943126253695361974266707786845715339265544240120127804612385631422535068973283092837247504042884882187073783552578423266534690324402374585550939493771680854651684058198948328849880254405316274898146869377743458940686020091076881632284110327485351644988532682628999189296195359464600286807067052761544423087830315085705630343235937511674050340342076530146621520695690594013867279487040527450866167465268287088559176167657766955323133436526407517083314749004068287588774052851090221366014036124008483287653123837453391535645722249194262109651790278530494746474619468541409869649903457301488904052083261032253302879358996777217862794688393545896586733223724502467665517839824552332755687314611188660187285179414807660835805842707738312020032744393728980775673049719782335372452161331589945742135505372662748674784913115742342816304554315838419653203745111862351868263152323732387640701054850121998278143889069976162951338421152511837866038951130755401030742584955771323062952800918842229232353723405954861427232131309223991935098259725887872180648049018812252869191941269491876578613369574399592842576977550007286555296243815282019769248688751466994694396928414377687592751805291438454888917896844478716298960014501777740342374746245168129427460549591627472076999144752628512252990748192285758714221491245033500003531101572528060060439947343101430220800966501349205376872162899181141405178271437350754505675870852606095769863069250776481277971131292821540677416950371427176408324677865113943128866549452128621748127898482563104373440501836766215838233752772512093095159829394598031114398995544523526372168187935416801133000363021509281014639973814731786317586511795148523114183860017792770024065427537729724744227191119011014423742765438735776131792006444377675571622951335160860987611495900790222483305433540210357328292260918931261591213008636357777340792516979531307557411434142439690332024368414149777251050749757889274872177770894301138929474411198732795144867419216854024210568573918149449588293839760242638258112115320329600706454747650804213040505210903213796187859335027347880773598513227155016520046584240425501778173669500067600856464206832558476589534318918262755040272181732762268242202479423622117771592160279489723940706508723360285592970587219686347232454175110363289197656706619799813395189078511851744983426691172566119384956473608701725421253437861514770944989122566806084437200868067019854411563138343951015666234223575802390928714346519258616420397163058944604835368523126738126290664228550269012709576751370818448320531661160031906926224267668724623095784165832691605563471013035590663357074941013633807339522515603901601746572137072539225854582360513673977264747692198352840776696321291833413610944053885021684886739840342560823431384032399125454530507879953143176990326538905646074465480420293366788549321256424415293507746236131292812138132886622577097435770663237157937537224044684168120427056631047239790058467305457416884719366586841385161454075340895685730490464728357675105931707866593207744674289125126355780455904362701980212795222362286580981890025127569961704774481410842086087536192467470940105628418239167938211703520360730433798162190975166936516435619131678208596338851098317521440638226109636333351189781128194505038418775647735876597665599723921378339831701693962611975935276355032158210935526041285145795005730017086524178051095103804085219554611881009506229481482407917442276133945155536753191675320052078549502410489371555275739643967626133102760914988923215186851174171889157536385072116110303865039304944474286792291288551677187632591074012828276239040911759416988411131518845595877597390488349217255301233589890009930607896082781816226799517712631792287632844972538408091860347158085942389710182966611992573944925908363348862545695065848244841847259549990204788457578489303798682005423928060379745407630511518846844565601322164062823398814890700765844654289900322112079422889694180834832223171112403666810344307199114878818918466516910881662533887493524501293742016995622153189096314912972742314509074264646435028065294329619079426513550719101258827892889675955962596835230051802548994760014676411208266123041631001206400232940001848901356713078210584703655122793837376292981984072258733535028927661896939104384455500919902695505902582497009452250888200493074578029176961049993770170246263402429752134697550868646778105035203482130006582596397486093216757523522720152837790541681674644852689923163031297658046731188830514610532538729409300945574887520828181581338571842556150949756411406246928042968286184017603537457258098782327012535516039907892472119060895301904064503432763950202988049835916616341501637883385428269960646616300008287144768282045528021705455121625737892044667999342611349981299168664195511844281740237024330355822440060945957694817367600502590424326594834929355449022902076797312603955742284640653306755550423321328470193054653378465642091573326479412690469880096260507951748415505832407109439255700481261066776846275491777409393276168531962067847495469749754628766845216136107573757259373125766917634262169794383262555354839486115912599927752435110538392447648437394886154769098660919463176282630445497104156486570468569681300986611708638692237715349830185923252318161970712673926007888017320490838675616163241477256308330298353845192670411463481239279187242400124946168964254353629400325494259593176040818980140817928631411622559377304407612939216132885251790679593381292310643630238566154075634468582220329533890484056541623093800680123417352834669944010107145356002588011699390451356151475805306384824377640231712787023750574987627255603567289786825644670643253019273679794849365978944704503548752497178397597537832561582351133792943084190084848887750354834151287550858272727815482327686162842401706607172665068685664252432615398903567930702682919226538236570054359786074212478792133884436912301670121235005208183822058830130930206384619051581855756227160881810852990571148133507000709150087991770307575731255290355064270672447331341598783165437587728655640714949714892407465254022608139899024421817424564508840991061691853969926044095329273226103075333674972299579798534996468542974068497297165183758615731280888758905505015774217324259959302259291371482190019573958898090877445892984507443073835654495156829512494608293571187638186166996084707690244482892239560933407558651978277731716624281707330204200772165457176509726575849656186768527855919024775998459557933562054456323597213667533496279362736768649072580959468930600426342763404824406997477388902535883105597254339078784823987058225564243271207579965535882762168825648832583432710827147884667199158451851060426985115916209438649624497842886338062321315713948539303523646437002701206531740094406952509422734253371482302857012941891433736490142014236329930799322789398812769904466517013676571100459853844643426868994654746359370962788825253791040963635790688273484234965507773337907393158118727448548390532760768251472393287257429848650439597832931717300189549752104558486634085904076428202420131039608068091104605305291552024961903618788463771274665966889409786005971193065765995200781123312321337327911595681884727166515719593766771043102549659646042502507172744599414433563717374511359149959364842682521599672763368453083954896553333342384944813529612304114823565459898289791738342079139021296473403948128949321088390573720764087902268199590858867668352609643908215728132879912196329383208905706281994170669410504588454532604826796609677421662196555179440438188771563857044763599379986917969785965032223953551218574167942205945020942163986436299473731310983024641088352618680074509154458136526965932487411800281512332594197005895326464403864347925083928789370464813655981469282590588905157371611252901771199127070959187060820305757495918194002099690635830373017087192063341083483481418375156346431997656105225116237075606475756510533398246207844624650799772900617904940393746911447536093397202957295957249876510712292572905687338671914091213657719943927745971699322366014114211865898089858212839180417182689960529728831430455537478510256325560659458830539295666911043169277288143947993591109956237641209033521372088544821198723029341057437791875541124181809017229323908383825857565989607323380041803243456500421712745035894831790637934392268148955271508970943411774742914376324925097528691703210830851686783301647690794221084230480201755732792464162356958351056326698521179655616628736727988109638595198570494692911484047480190637906695635673147847717789784112894618183464762682746979710032628703849470448149587123862952570488963073800362654648894791111221137236630860596772054403953699483280166713706095901892992141231703964544379387888476499165702107055568251426433976355902592350244690730266700366421443262794566403946983846208038762858329456889889274037797786806776980937467220250032403034637187508004435997036760381635998625640533011661310108892494947454808303899321364162990669874391380846070245413271615022521622403462812957812788172324459074157031774466277800130550293471495156498373284628619060906022970200049518547182390530057979394699665879956054695493745856631118323525635072556928947335903443665307802208369155427447658157880460483170894656702406100329854937504630836902858866830723488583223598495601117993476145069113248100249378345124135923246710208004530614995010755060982894821308919682642520242975772822138297915766561135169411610624226113259591578028222000248595528585716529031038045020365291687329255940662989961076201118988480487992644554032793662785826770246761769073772051670159172616951874341126999192010959526592938040289553549754783279376876948985986627654423719322325540385453762936385957547283955849463137182962611174961128559855697705697449257438519457050172020769597604975458787053541837696789817115363649725753341269878558955275908505457972743679880456974157082157952769644771647013731900260564756076402615239956905519482320021625385111642549443923101957118902726409333220286834468070777417100884690412614191437477488362494865744508824197442596158506345808584591650443091742169103670578096286903298687301332888169330708120674247530558256681700675965945901284802925801441314563838410940052568152140499422525426127252453670352110218463579700871222125914308801947413765611898578896478486372725068990925469814968074607176449777105179006608006204631250975876785040816262133845245951847192206834233834279044295026505646911205391675195107513673053731510998398167315455251264814939106472600273697579777926823933292481158770809234156172358079148802913967403306021358270704883744201429447919404303871160833580841720153302986434005171469439639439799428305267280182353583640302516379966731651346206141558355894842122130823193004429109703499066450853686532594488886967472374586432194190496815717517762232677444783429800550201077609230934081933096862781543833782847950024445424031232892815011254173470960510451041937407428572472738619489932239599563082988423532673284410284167294862612641731923125954807651262523573346779985651535029875604511791167731902901769385148427293807854733042811570962893132638118827102108530042720971240331609305468928508613264063433131993320162087837815258009479756882217547767029731750542906021186122758491800042972140307158117165218980486045922730041145296499845968820140157285308092026559432263357027689071008272491085576092823134556252362624658932687101890501373903736513147680659418413140747623142158376517621283890963049653433994834804145788286577969271771663495124575074559477621768400350562848016373521759073219482284918419103750347676996604086721156004741341973857434491990145071539397972068334122450563832935462233783829570648621525986396663498605510533654570476742759552723269928757505105338925630346077552908227582500079734610695961317935666903885246455817016239604722681640010677016908989461378921054655539942210511416683014386113190556351777099009914806687849150101280026404817565384845811086042161894120286737136092167155230957795470865011596385711504231690928618318616911344891762498674792942458566467375308112130894215953557420782733027437139439827141990360989481954541732133619588566413254613971896504153361508232196832056076346155141343536002572414352171217583563333209280914880502242485204257484449136767722151912713088924644547699162753811707305500510531037818835699075939613133873072620122889484961120314436814994845952302011473825780993302766201692227128246559436403498807095860150386138343046989555889050806475720364562352788051710786777265544509064091542553063656193145333178938330427759227189466785572123404521559986357894975095999510961996892798632337235664632489217415519678212812023457263141086789323049765833157342100008772976638428018127273555388532555667443106755636373549401938395873126711165897220553669925143667073714357798631001591638719135867522863686794018565383019504291772374563211278394136839645593332277741554566776560288686507516737551646603878196067034523163135412415648583372961704749488737784485484893348991448454233234266885381334108773500958948043060098180698515059279879028797765264002065488323823070132610610811427390835807866842773524225660576046188420247820421031925181571081224836242729576033309575321211628679654587306525419756098909932594896734750116814567443702710892927502863389503999387797118309785798264132595478450545035580473001193713094843822080306305052144862096297268396269526909305261765752001724352793094260844883378733306725180055955426383110689876330851113602904523279951162389222292816277497142594699841562954627102363381141649764018161035909981877506506756112727190636806060983086589267808855554392245825434856324032351199318255322022609610188109040948306475653441772151242910654387443610947494987995318229449531048304726659057474048512266193662137184594668379354518585894065886764752709798303991250900267758908335549139094878531559754491793738930664002692553467279634951475791695530665392848034965242844718652937210418051661492373553490962218656821454242525193072060728660407722961615279406285635372124634533340245707073536788032152065700228128487877575289528185604362874595050976289290688818838881276927382067916273613029461149742530679310514157053359872261316056257595443346628306535122914287393976001608163763385075270828880494328878492545663548018716763091794956301947512384619754651151869332248904044002147765496801524319854713124678817012662212296233434397699324994832883737551168277426711395832569716676466007523740497922431857283423758811876418877271700429829699926152228329729952318939527059294753620709089186475045781112902562234539392341044771364704524158623927602757970037314906481892580626879229995767701102884109583135745039689600739041914419165647254633679535842263867586689507827570602822311630275761029700301830943570020986891067148115624412896216054683859875679588766555530686304882864179253005388439054801811168356797374138737389271718079174774186829576787582263076748617785395780422795555073730970739345026269362483758484072376386496098571872042057147776084914386304317114118030339088177494151640076380708168807451881925433534272766874753389241024032002283783098368221696540702181454883982443646073543513481894522125279595102303020460951144433911078883399034488179376491096438445994155275397366490462621258239975986564821073992753638893921207689075557175629852191122882679378583897387174173876969636221900711243771915415638846292873560801200068560947475581370575465801828870549186132871774557952842742461033718793676891644504660865611472568396670254813912726442363097221706835014569262999255196353027873493198434592603551654968035954453315747383969474726348128059140683037056520563529744144811869304572734777854393218760605090006601790136094174587901403591523212244309508395825026549715314453518900171343815553212496431716035477707989552804512485794826645495555796776233607124503483531055017799028677009085969820199089473353109649229270134158413534154474109986556677313848047554769531772750719553115692137012577802059056015756405499467474297259111497112632560403713255148174745128308994772987843316085513665797077776225698056180613888500268061395233110687828009451571337547499944634251177384486181494719311392743996513397709156151114273888817010025911264590366746526942352818101905860323227930551414946542536265342690573896944621969639893261481729980535857856936648530002130104531125707455779346856581716361005281001686435406055535564821785773506851906446578390985152966074977692276719700185981535929011756218687522011060778689686369185734198420023712470396010709073578588267503961986068620186356091627719341418166194238241739023128006185656963306142588366423964590138885550884870453659100645652725430422369825547229265868736833266056274502042831104480813359697896493148782799656579024595871961313026372854113299734098168224419570333037464699657989374650421790809944759469146394624891964472207203840048466570003917717249279770740022998822503002504368704213303195755026880466944753622390757246533527180348671600152473472421820643445798787365981852785791828607407786663158801619260781897272335093595325516724358212570265023777175352198094503727247440324237416067361407396186606417521325381050880911719283340865746284793441083732264878045467477640844048692458583157453105609544041290310423291188987347113228186053833765416181463830179978614464779539881899818249869446436065575881026739453082311508635572258461222150484743343998680374778701790025886017365156353972506129013865265033536134531633014285287126214356394528308417948514568957404703636080141448052604529624144201314600178972337509177718900658855625185487834494444249509340880465611189977609133956775978799803677716195771837396016182190574258119686494405435417707530858867053530674372449685467908412553658397673827156393113213918241983835898167029524045654574598610111273025661545007996933531986753579110716841079488669805171616484396053349750909560276589849815352117045046348848644058372360788288622760024942947003320040172043565107027816340232699533705521706682200490403539345498672352278524828043112682542322836227797458098800902437324479958718741756518935992209341449340455287380429515549403690138709079465798708555543903399259138418308714568227522694668320690968261922525691806580185534616385710419049352162239113306700404710484120229390503519040925100944144953236456794532031156075697376988230760368184131842873124460372828893361094191468719808336800967876275010711451460791174997722669396481897093435052292680254529912577243162461047224933276582217375319379354584472808177689898990411429914838876928710443547908419074026501636007685246985653560425883101033464792132778067367801749086364685476600619789290917972886996550793877376236683513078810516612210774734109410191244023576161527428018498735785859313907667922669963352937079053873983116654748111106095025047572974848469176675720063808675208938228659186983386589078321479458103043620950762350694939231029859082987386034679773712757498528157792029124402278799345921847701243527739764165883785791856612151060573542163453415198269448972026751977816349297217757212837280906926478609707247382058357053754237414336389197559426340093228030224291301193072827388960356099802860551296890627057767050244069250982628268616461612872379282483566561104624488152576236326707896476668541984920711654144054822353233797078543487626922261945707569465553242409407342951670029373031214483726457412473659159674414976250731004615616514815682743207206394408889203000900689157984218048057586329221748075704385363923723669923142872457627846919034182525458382207146279288610566377775685746099229234320956443120136812597313063214887329207535966364894890328487228579088881112006506475609466921930489465574057091163700953680568753523162347345291600348140952076743098963115934874836395542607365776902216557068474995321622027362771584110326011000657351073648590569607679025301899632078584586128641524263045753172901190704859910014059725335961104710203502229555213518600753935976755623397380194286559175888318242182585269758301584041628981994832546338221243148675125131798655929247162249661824514576802549655509104033360718419140317705209454186375436723241953708980103215800879405719319084824257854996649065646614504623182992665233234484608660378358653960107510125682665039376772144139663912177538533287239225531419022389386261133536351754002696495659390061072920978928037799266472317567186465704100054369367825852614537588127778047981708049592634395329870099658352795656053044341773475614938738505816371027607569162816880629611824857389072880421733428062052806207576606395311108672784811819397016022385439105237566862012462848844124640561662802347634284790008169645328567395314822312249093725389777976255817953550609192435870495600769660655281120423559373457298950074098234104781295416807485672697082756641267848311559928952344631965999729325862434857048257097346666479105566840682117275317341669043018076516973060546362305104951363170687888552110416566142101291116303553862466710604049012521873572437381914312917022672565376472781323140530702498209868583978566654930991620091159413944493569476778460367626319893536370082874457160131820152989991226364157203775137261330447015535589955048296271915636167415723327018522980346028856634960936712852268014741233340094431603932778216301468359375878848160770393271881423466199852288310178581388802116052931753486310436826592439276285995920387877877055079180975458176798715879193528615705740456417085633517665724553766379339818516033437186202282047583187942120617936859340289201433946321955137479835971599681296453540121314374238508467308022446676276637567220401008794093352299222043661652901302137992199172305099212258541897533360264228872064904493992524608416190131329112071738851935743500774453956233518549142858181153058026741221222792223717140399521191899012698998392272773742420894120271682012993245762711119651531955176099044010936655484800894353720025946470335368287721488384260501861354861893991204527207241570927654608060223855164226690394935502623928941947710311179233639763864922693690162338539945215451226996470173313105266086334159722161143665932327865867584342401880859412498095655351814822179999846805154462038763857372364125232794035983196141431128535720098916226063386506734232042434741542156467252116646594069068519117052712911659740102099304280479035221505212780309857053646508156095719014381843688399908313719545925357398901535879744698429112770276380491555004981834728920000424286709440707286497681406290725419903369050497804608168386998331520175673157753436366576386506533167321350849645637404217214632009552009487759101480983333542332720340245603701472487402910544491679798245774139007155636041391442703398893754203081981382382030260836574102003818527603887512395303065544996833763082544298241808295621333613732868208514892755440687257183521423195297763534515657451979666137311041752548702226534772387830972380584292204225028090347130801175925148169036788784965175807509703223265033888713204829868183438316983248479752447369269644618224306145585877611759761941547128935545037177706295783824100729634224373668088034218072908184290232240194527182329022237621432913686472854891772412044789062478589831810698953926857392711798517497689023914328599123280049476371515344046955845082085151916157173755378899639344971402262599503404042266841162503700522445589549248117975994928004635550047429603166630287385555601344022804383049810157042185736027430385808589877590327281059080041394274959531367328865676163599549282911120712101612736407718133379259277635035062213775455507712638888086399985499434785027303278188008619665982485168906913483051097415554996785656205752979474067768619177620938037106096520434687599233307129064452761986202958024878427949325546541955087687584211442322202414671547339690427167717342192884654210937405667080693083549335903426126559330169693276438822480998389114705485131779650851356681992526541813787019346760724122226153508293311245919836688475901964222904424845867012531260408088568406021960800156932383469928827187876102267889935168442691872356074794097026410599692433600049195185707085026061472609879700685874476321749032321020535531554818205427103403242005515104665540614998777024777089557329447684501413723548466594721453977547352679346398762785448857433874919999558527969864970379878307130838511105817046818284808070535565125842104217886825192413181959711343241262622147855557253938224037947768313575265380349024598086486179089251945375505779922198934209917148005408839624223007548681882800832964411529345532072876516793515621096459574802060898247466979854712777028779188608450659961307990378747848961653909958937727148462896958778377004292403523609672863811182841477827875063205097134077207440710147827155025550295393541206144752701458828688580084374048186145979661481041753525532034118975235089096451722981525873856446703448765724835319941453899539384975367235048463142570786451116484056070690151980311262768596180631341852117209738064123559724287301709780213067435227135107276460359994860501502019707935387350044863933522212037804758818728970239155767964616497407877750455195108306562105062745954066101698215144638835824998243084648175942121970617228756217237834747665780649390213132559797371171421388957696291500434836469768328742760932105825849919701316979743131059784984054616102754115917632722751578782336772067511979111076503179193297283199704104058775327127422726176033707165003503528498649895207445260318786357826451081324234633611491937741785693055831177958263576577481860168579387909874153050308479052958569456305943893789898653971588316139576159299934825840334679756007672372207989711840391129882314593735513846799258414089738220410545537431852111477711979408326077829647444742009395641623078155402827340834704823417499369563838652851998089270941326924925104158971060299282473890567435175533775537036364309883286259954979759975159383138414575697237359302323329648107305890665037794043124777217689437152860897230943897690320838991172688442282032292365192934047976716593498472048889498651439686791342097051721393151170710404718922544419085601802894200154970421638334075648346308372894810708353580728709864614312046289564900489234330626952556765966675573157409865574108858042306443593545866899377903316858958975660436234786083573145483369229048132410884552581429354492626219471408284129940563633802083771655339383871410591461799518045198668254921880199839513125221160148049664892773683814991390139058383210488454718552977537762429486122473333252885464634391464333267758370373766881954556620853461131262121524426293370992252210770248452513740613096775300646181741649943076274661763331998199488436945831913375673907431894372098563714899262671460609214861740231536977377645637073667108993921230448145816074018166831202654619803320344724124735499408152851708080133825812291324413443376452634962204013325741231170230021195533101501416342527546100303853386792122309189461952868806403942600162720716744398152531720274198637430963438575982195645171418721889169094375314174712785063755194719777692791355362824009572175477033031541743468498942696823407348416801623500811217531879421232179346192696860459152925223612108917964244886588485244749927363807152867746548678949957574188554027727211557240407822074489471001053758469548456219226545416906937491224488446716788541914682428730200581484150813857364547207949645252923737416120717906782820159504213297163252120754763470635895239605894725241922021885990369504260625599424404645187810955240468584336810135052342427728936154285749465935591360658965377189537732241288671413769871185319134222564918141232075279346524938123009483807162708100766525266463360026342098155476056227275506975774508482752245878481266660319164603706381802873095155537671147556378118642821824048884886158166531198836712590882518001424440932344681479928738669258602385683491550416170309253178413376144941688459693479443227667581161833893962474631538208608354188244017484683839420018743463052952173333418214392348259835889304919075260373248108550284008811850938292737526407185878523686278776162430309483652982155379996127618664835725024151272433573687149198531732498890432765668626122357111874591515672092655089052571910851406382459989375916991254143897645436187986715309901582929428247788922250610107948638556142110720790048621239206808014747363231213986716243553163781060241392093313224265427806079864454497321115352013279651795361609343344265822268357744166332691528254841195139067868057902440309030677214258806462148645881125365716089451820957024410085378037691690598843802271846310875192902141407988943698975369745779452645201409864419623286781034957420742165369741575524009502468802065297504092947640544405333279845408214167453345247769382839343600367354414294594554831305301459230705782227207799200198820351517310084834996878225242731309386729010499743208978622584089168464447821530872346063034896000191042149611363248166417805600625443732052956972481673685499882868800759295602712001582008414180930231660358652631348240722254062698561534543429118049891017736787718892376035958289626671863933595765371309069079763505160576066232397924360353336629284994328252263198432531748349160550164122547017282427363230242127706739038694196191910772819492400792484101886795671142421519675650102185119064295137460796025789002343372368742235051337752985061816015848311796813747259994447667962153643567745788866097452057284412541828180215143900864697200748328608161320509023956948472556076948235540710569161443108305296258057617346218938198426179236495062999122165021959476708974233642596663943666008105868163221676560819265111877947647230256508425761191232885673753092950032708420895182293036636595096553237454886078903958153267373851714378509968137791230181585379764301504780416835906038473169245761599229933850548176602579539888279485416012883840369719898742721379527262523529031351592707328733437299570514538830493449503529924074199579470418131933698588148638750053864710390013810275740893218563238458934598082690120546603356542182814171517638229082319883788785362543385153509232806765340988522591274072246523301799129986529367076601280911692674192190292758445399323937443150447304614530056289612941642638561043993665925533057238115677124103004548235823000261202884520450331907516564353510888442740292979380741115301930343236264451751258591078764008194723765601763170630715488897731408080428133718477963999525437889903271530350724260243743698314012218155256983290835021193504174470652702773049095559811338988719623991674847114079768008522865185825115046270995494373327879335001504714360556229981405415397731466398011900668573907106524491393425406686799828459855777352530634763874077076669909905424946919470252490389489740009251784031524616413364678651238011795119813653234808857870931433654040917170020758133091702395948469468150769793593506673015465583819223498465743335242909303022459947528974929405147477793918202300931013783546142231131990225289177116203350729959912472794119551086148601424535575655191286043034905077835131794320900756249169580500526887605255978114508977330995867528060916168727792170696304212497128558677220128157452916757355622523442646288741749421893333020404514254461930726154393012824469338317363473408640860613012686278019584740469184664746703475061292172698305811194211181465442441306039662646295954589404537169488429857886974482342728472363946798467238373165676786560070318882329791198190715398663519223336507187281367214653860516575603811088053783025278771691465001423335542289902205312043167992445528832213340087699099704604232540260744426765511357434338168162278315221444321699923741772039501138237052805055868845320766227196898169067699255669179533628130073194218962142826243899958501012859440941461566326829335414843799373400847820781038967951304108606470270612266737553605493652872135611644697449104413087854463414937140294929966360967312922482757379550831466778890367675275291133350795361897779755573517516443718836265647994323929239253203689659941573011445532081199395179107597055664510279400851530792463938524136750293285908702964949456809712552181711177687092331886161645168453169652259545822771538498936275065800533103827512626594971237340957425315459241177462258983816544788709891635279656077827317013402399439370025338268089321408977924233053244330366964834623629579947658526086602049307537370654091068017521727017501646776077231060491875257827047983989968423343433402781840016264482856689532069137584563977192049703492236562577929950784549931307051790085026133603684539287476423175444030868474647615216954551590541622126173830530036043436877025044809415809597290213462502403748086894460180516508234657992432825523232542337563205541758459764090697573123623779772382921144884356971218786266480191080055513010512561428163652621715525101857032447531321329468982911607840636269011239080951495030731358325303303665853477557458290229918249696674254101670056435752616945687312946776074884156475490589273797795359171661046889893317045161800805634244991158816642795808143400054976332961802565426210050808208520533002692577153429353213419536603531009698734915080438186109311276936477028826862231548114931303693331051054825219298888196488877955558324544449139145479411490853677519342195415463784553102619353752707592910724167890323442476926259178993523388022192963924652469442710436592116578625697235896044241559647782314622258616460934040675570826842391446227909670190844737049964721319555935042250857572299546038375228860614628130959247960176534655786384268026912592145667041239434620954175897328056169266486498989705697114366690627536685138216953507289521511336426299333215015890533203776352674044247041521376029878430724233570673592809797051838748068240370532342557714792310293729659992796070355187773683300597348659606178999578525428285659724882813776433839114485898471847232169355996851236609976534278345431665162841612093191472793490342346388433739835789853412054316969664598914310006996823078307787691065543197090585274985398050324632740914991814676603798138708401437977728451138152135727192276086814028111663308917868840853192577588973511658684033716246941565240500114144663656907597587089990508182191397487853155589212707081962698226736071681892957003430269491662591698281700609092527165432997577787043205824102273528648918820920980717284355990583918059710646348532702018623710903767389116996120203122838100918582266253875275120178996307042178993581136912103320457585514697912243007430778702404220956979195649325305358110871029325160339362185734068469869786828624932129239146737693422978987946771524974199801742511272584676646778541818857786706924879642502115787064572914757953396893359487151614925105003981681295887620377037529759429679718419055413949584844590727332092814837124394245972875309193682142370498151567022671560642130358967607214688270139322850285681953296723791707369443375342858430569179567936174845722399109702392039018155653048664339006946477011441853408091990237127493559192350306239824441034628291469602139070136998582036668092349511442769943727250455194247714966032314911401466333949674815730862254181008174570708539326483489146972914354380384767509448957209646825688046214509357699069780415328860859026264160447432168554276137761681764970635504842170022180002384115498342362576657181298187487218541232154394479505369907534615213728735448753117839319862995713467720253848714204317306202478532002550515766757062166460040188692507314146030725825420045372805201523040828622817538027547351429570063173126053673995522298099873726763441019106755812402380018135875934713272707880175310802075449867373108817873271743093568100702101776678675191060173766388270698929845798423847216474032199878784392155504471647821384257450164993528129449156226848866842841323102237452746926552029160670737924221211915821834553557598640687993444154862424969308030068993539158078323503532919927698908119741426911504169846028104322816155477790312805966168954825327171239544000173549594479914643359401123510453143555227590715067415995791097602589377556095165240355500973260840137344517646042018511371981470511437875703327734328273363861778187649889927015568956998602230355534708244803296036770114221876596858619301306193376160760889072613527841207451429350553288738821567177637227145960885353624122249282019836744181697013068910048368277816834559560384122274819364084572711317734776858970536093540845213036607808689763526677909016175166959940734108292798312529119635164795371311396250144129674690437662778653879348679873443312380167577041588285840270168331129162569538285301278692998276664368247875405940920870416609134749064760422117161553932664905087818605052000404013207205317628720858767956756110237418453810847206892374154298451117225270867026190608010650306840248117616814716916758668851550735775432383564102089205317187746638496841009166283644448968058960224598656555166663232495436007376525982005362437259522369570887957104139553772242759458036396163647504088883273434374178617308544418227961953579392624083426994474230037303979111827892921520352217852715165875959981394973296694394920053586699942884994198191245247177412105938530699508597158726944569273110289352229359112535053125996573486206392192068377891541249426985692481063815180826990532342364373822986412873736671775389803408778062605926709171434844048907824791019403406229257977337689078356964933204578201769887226667684940162948461965891695687136728043070821467230913192403544382778353143214185118296311054326010106053274601302901849533157471434096712997908074829458056690658126011501096818180569167125427618333802670824671798078032460616351113481144702539146367550465956981094115044110845336877826326635915772284127726232969684006402159968710873196172042133646754302913538398693482768291279158082957968010862827775035475581076240763814319700645600668331666942765535217913995437190737186289999074769198489238497211749101966468122856276096149640060033987847132946198685855947426729304233765578517035072423757210169166460413056848789280929352162447656836137013033181540935342756825012350397358923554131329607295726524075196315465728376769438767600535188276523636909786086954105366519990285385362687828432218081966557358878869089637476235676022372571213803654498578251605414426553356879597902226388610432185384161743516296686922076985255760734178993495899834137619357943734326997171636691872230474919531868294472666814674750476538553099702193630633700791225369790189639825692660052709517981365937231411717947621550524657783974921023279313653988351603275723791832642781231334317393439598634550727733066076299516678978426656411214682895800911743701517308892748545427391679956475100070399214430960537240541720347895796091853464232641375067593797507923479691610569830710349096242614992238599993324090329828397268216937049324403391599408360892441384592959581872698827917435991420305265452797675262463606353144256335310313796691329107741954284130204738792430463149291225158529584356827906549421468792776872271243967233747143184024652417264124221383321041151751437091972302682357149616979764543156847585265838747687327667306020475871572401979699142088632069255644279932193412237087596273449176521388047654413053858594301517415871626922035495720481995712203404494640106586018794749137649501325021420410235575084479566249584497720480492061164569917925405357723761408911635294366693794174527879261023657061966266743751881620386299909506085025048591938638419586809288875155869960503943942959930403419909661407584440799218406712974193595033907802270019772926484716349534584212358334031210588825478859609340661263063804086279274998969188292455039431603105235198879620671382207999187889005026290760746477876360257871378759733358178285730201799525880722641566323434647910691746968353605389347274475532714479519923622714326619346071533037080621412580020620128876706280879417990408506209689373629282731384686513411105030026480491974981249600369844731312757413011000839279396740497053284523173346996027698078898956656262083153992857834238858942155367783989963161159523489214308721135306964755654440717570253248422674066287498748943845305917672990228776157022269502056962230010206383247163200297722390797204294343245092878453783554475156192945500900135757584086033532973640772779033409559333699136960902296096875344847932184865611389507829837138495741693759384256092143929121809385780147379313906976536830587685890015269139407228412978541769040852709733176660645203011817473521474014688629765252592505536733537035072581979024565703397219057494390656526875814651852360122581348261755191625630223286557680870135152125611669791108364849462527190855329518777707863661339677736861897147647485520672624222650731951198735648750345928892276940212834963115136324770356661281928584661876170962286590775502509023606482709467142081998702288456197773035380813040955825899401667699613446459121211992707674397668993185644318750771961001624499858515945106994446490370228772785438365430570681760738597158970388044980434845041820672934937773166307674055259128108040106719339164669491674216392700711216891121294492931008795550984782011768820574547844164157726965082581864231586750858242353300398484836249702168535448121738131730856386559395034064163358464883234139583314508648143685099976109337547179453211109448362516291509518922954201814615581287070488058653955549117994407499066910976145185743429154503401759811597640350970085089066280327968036288658979709645265264984657391577266281805442487588740012721049194574920643393934732372554093435349887380450660600913910206717675387862022692102230904565192208662099381856853168530176458932389694998781759470059561464174878058541064632022696132336346006662046577947552210122854833862959961211684976409415897137214418339197181412736695137157134753370413456120721446816608123838728283454707063017196652434108038478604553655241342802216453852763619815477874650164555944619857465139725302995801190514435822965722905144453052739718732803515729771558326411545437190606903071801971820372129346920945632464828171341704768351706891408799652077857510770380732979397287302655720389088371506215628921837026672358947625769208376012324310822608073167487894358070462532256564745250401759865418891853739341163669846458831519693236642111178579299381286273086189980310433279451046467911218295650458161184526577593799078075035472519161267603406419955511387375397091383164214658720898479341531840126023284544981132824546537630754151736208179072925181114745436774544323124863138635633125973146463053007018030135095231526930250549496099535032615122238961648615704183281052221256873741670618858089790869484952989804002574050186412693877719150489049140430015571173897144234408701490820436250955288176521299916113665465850163474692537350152228605754675041741148221721588583793648554875550770280196301505038106081015666374943641672591239182828648072513654695684230935734285528983407702559937319664257786388462640397773774326432180647918136624471842534245072215279273103370169980139842861589363590909984684822474976998546286645174238106626826589877372436684167671148643077009672104097332373440879395727244378565169612302088950060815668693805898712133794963155617168121472939962403532270877034108069525095336972884998586412088336621733360839199394572986719673501444854700839002807715535004037773488908735086930225888050505950341719983081499200542574932057205387839957613525431967134589500284119143673591636225867503943289032191203566803236516601506708745993665076141840031254736374831242839603054537395680442390892009803183544425606033959364079666024690971903195129937413444230351816436499324297982886015625728459802133947038560106127150713499791001058654245092473251075469678223822761922234607276949229851053330845334078608989300080105812305602941052962987482387109557856017157847604257342532051740890709242526904359516957025009668199768473720330196440298492783142548521209678778476229496616757021906907625109822580342079911595430419373410182962308330557536914585651595069827069910188317841328481808340724042772959392688833101905771904376845729637268317185818217584709240698874788578712137534717150645433532754500044383056240537162971621509437830539832862216219120720320650375203573449807368947804276415511922161911685582735222219249343952038958105152978010243335077823985780702611439618400741526405855094345723196189769698520482546595682821528478023147167050278636600136722531796068203017201055724814872556451599221675152619506501647671537954617557767082659458538842748570946100528742354095310561263076013088366260937717436452475773588127567000496913529266649393600386423602765491439914503936921906059066342909859788193900702548209427838113324497475628146225335284262984747268445834253727352122545290922527752168472272127472845308308445651381269547877527026373682696129160263149029982744327732779403293037384814069730676832319127616405583210842696904972068296679212017373664202373691650161240106084650996498510109651353451173002905162843676931939124549958708619279849819609320828619255448109285184564194001324418286833353884841739817235592944219167785511080036564145489287671110421598791218965677878979854789726593549373756311237260961267395068395379973868114980971449895802809219947338665988186161346587367631862460874944352745099117564200964051081861748085546904339404771045149526526242313946255384302964575195242475677273377112652232239315766350643661291995761611446217915751085343777724227211790888366719547446414064171124801707882798089262509988337754223195194454280074575761021416860590031059751151648029116534017512399748637055691384428895360540747123665076403095033175720704068178962645684695057217046999767854034747217697267598708995123374620598262954178647144616026162444311212051109935494118378915101865640574662804557386068901124392174751338405888788614108605981654003294276573940248695753386779079646550477482101396859566343138277269866709219904531991173088176563678402725979223273959462786143910093418842151173020595601265149486817044567778317862865246352356933698015142807382600977042382462303679676227716374498186419935481614334640392626693915184185831168107375981992682280436700309630854502260370919577312704274290912462352138261577705215582090123691348620619467842266339762644724925814666756096241103138651590908862139918610398533053327375568361907774757079878705811496976883855488247893840511851440782522839381650093633440523382358715830579794341829501844626250786490575025134951554293590942709373527557706642749705361641947349796287220125764136704574904189486348700398061620910970926274680198785358107461930786348362036482697659121174249831992392549187251384439953147140579259756110545024031671785178489001375829467427099232821249898544672509900614297588010517892491339835251733875596628881153764803243793144656534376078817731602998508378274044412995787609382077529602535472208281321060559541620157727174956813165839395314890485403192537232825209761750104452609208241636979751485587890676561332169903173011935672061735108266824211222073913906596423735992280434880473188176987063621349934595250899189241028111930752108804260182053650098725707047505591917231306950214231925796801017748091945701444287266850915494740147618499852989804018285047899631993428943594352887320570636282017217758485807939257539751266528869134833756196765071471560141635894500914669422615782632801230379460195830682708761475767847653373847192856874517598250874033977569142307123360777085327577229078056897280427058024530151892671371825116658496760629525849936456141657100466532352461576946894025558194050053030294067828863277902003927843501645442494882574070139295321812738479268937148529469091400037093087491995277934507750571051505633110361922217741079241058188554884244430971803486758141906007249730914754448190841494924123075457996601317491794370727897018845174574491074291291753702814768134773226375456310458724397115041962544523070650255834429285105331757590824860252507159762165990516751696975036321760837269326046023448922786873090400789469520813016566901335709437018569898136783092722595487538510147387037554058632215887121325674881832978598716060943887276289763552022516236111790081197671088900725988326769195875237312907446318004322030902870730483115751272762965729742990875824601237303576169213015882455724613139672750100895256014296158391876941364680192624085032951517474252748257981365906796571621882021564262863887616546684848614558616445965653906525243988279139128262748810709806385597219249036761362037368044686916677474025616880915929636077286354232954149350369028601653400749015565427136917946121585919243428302911105521245662045770346533670713065610282571609646563234503519525178689604202505936038462623188836504457672633168041665785513138446064878457224583784602027354197614436666683941694518856718216544833306263103328442478539119106676371410508507695132704444713149650879119039740616622700330718791113551064305722571978716608084448479545576698874394656683397475622029395964876444777285285662436119324555479459950410814053606959705289888962168855582950337656147994354783907723014702759174265025799377372671304475074798347762308700534424482852924437445433613297965292496791279277201524446159597591805653666901316266896807718615997769746433979477890559249233074250188539110875528911731383932229512164822432646787454395712975906264267664010984587182251208985561729519772871988847072023945009589476462579699342015316137790426692317552960289217025395127294188148863821011540151838699005403379248942336092539744495593460659983375863800246321564544565519896335856634476538877844467455212170126920075008477749104955969779856168588720353063989357025517159887395403199707364270840225618550032399756563456009650163060239906320543475751948975900409338376779443910706521681185692303915411184747262789140565229989604364133414893114328011618706058818270442424276544726176544990469559703410672673255875423193562418476878734357183749991180850858520836178813524541183909398011801726694619673850196609521264470618487049627837712183241017268742122419405494973914124140175331586496631941680501389609629853888184806925396645774718721921493737273884300090679906642319633590863606267083744906580011606302343889988604577239282360029652871983340221897726795229892262488141355783048055619276313654960255558196503994064674871732630357051973684932646192978495865362476210664766649540734994489944398156883692671747472859086495210187703845294700130509458442520409133765514833471484769112274154421765142750137988588660134885611728016934934549867575553494658103537022245461294717305920466208370500526696880278394882223489988681615795332685809412627621722316036734230672596216556494867065597058138999015238643031246715201896150369632885869050314918967516241607264117118365597672596826982695611422212258085059359489722067378644231232378162729258379344479481403927123935977301480704041709172255437806451460859974657207701012458256533811477370560865870096135676565903903557306911229250976542846710783429595623354689996485594588048306398810383029198874959160943107817593708363520229256986114708602364261894826225102970031902035110619056010812148599110427890568072021159324418173417055132631882370226171101051474268209182308549587501444331195091266580368647773899612082371418501400137346438191909924189985661450197857409391908317753571084783396702647584800297053175488915522966212062213197320986572217135948853201019072491528765938710605145874135251151106048801187232482561277414028721379768497124761410506056526620019514480159695557120265717602526979263198787746947554811974093940149601589589964279548499963790651207110355996657098971749743810189993665813764788242278437816366381434748142799551611878487538183376958255051836410443222907994106107866328494228511200148481835732596369687872660220293324738587553372011895732638995542538161666199245963874130203543510788116652611447540142684825987276997408704803195995137556403326106749987264344767614279343383879398046033631317149735994081354248335004316823383735063760028953191016146793041804506720680166418197160214087753040102513039292837059774277287757872578656601472762119113267447954764376814090859830936767254317097073307666456829751629755965185522361576410226461922592923904348605765022797124703846077414172992232732655388893696946942477399840923592535356504702049846125478019584539701284273919329131532333246414931430871984519175220264747875142308154872568918394515361051265532079494454507906817114756672248577576908369081465435098072614683219019305368664577407735191987411848675902730685967343140129920549841748064836482798282295267915966961702575364166620283746210456790003855538331007610802897158086723474049275569134335765447098107124274343455481553677856675010555036818550764631944488248305033477546440787155302981572079329624634285958921669962009536229966787760573336278459994282383116665498552623308026006347151303850299445152773702845645443318174290248211540732492051766825102334231132322584618865718922038096456834341342903742619840627606900202496028547064174303183257923666306414530887784971406334381266573968768559343302674872035639973773077273954540310584550759467965539802673632603423358135782248137441375735625689370702559172786210465868243395289329676472200676583322663067309564498166161670906890200999633535665649131363101136484361967209449968885881597992724305229998334671696132524216970993971677123261840908501976722044359202386317840960583800670050938980539646849285944425705165345828110833996783019704454953149009615267659303837848982601502643079621238190307249324300200978365969009528252757428185059150861795516749822922285406065636264348699533890685804652693151825649690835731828204738443163928442520065827913760736164118259413133421302751922621978238847651788441116884261597951008351700858868687133293949205313843626169660602882240576475354740140424002676241261565089631462766764546725811486868779164466903961053599880626569538250576640597107373107979023065681550100735067395006864617735277095106072715964013660458205580390512091690447049136617427118500410982931714373247647439043446637356853802457269036178491324131233707753278409011627702761128696037868833936372747424844865706287048697433121014507229614900612930402246593660039175469767891038333935955698923776581990699315482368592035304903954013124992360354613189193267883177483889738706506820231829311340990618565460171578727617136957535242954563791496289756774661568633389019905677736469273994069294605910176634571040320152627177862813445020576846026144449335163423200524211106236878788517914661646652206490607480988523028172190064490412892398029773598425648587595544756437256441591539200245475987646560597158630275231533155761216723872618465112220242501141836326445682967079478749148773396164589634958635266858382574431031100780777313427792479935917254255591857913353460243896374247484320586164014934811808221495925502295933765585681525479667643956449669019245724647156350152672136887759253563110836785253658615344400430278400619865061367673487821429921321119113717342027120715039825227990475486653741918387023009427677271870963798321342138680511115284949050416524149602277479664423421736881175660177384933007888435900055468749685848096495312025983034489363357938555252922433254798914403641043664072443791338954939399683381371673423855391745721152544762928944085567218512659828848611509830153752825238327758005975202922559274828110895356662864915201354358182771542047044536586927290983977328031088496384285089125915238281142025470938821480905283861047002855023708162096842873285728262969163841269302954983536026749529837873794251969963032904058645218559409308164553931384973381795491253554380910640849648906628432696566867749452470615489130080127458056656344255303546935191783431164816753660560866022361480203276713707849046159149463114696373727551992357675622164580985214860388843851157393459711826559443348205323284503871963432806035771022965507630232811482076906090981014703531411298922019747808042432254946086546500583656742215724026872200189316583320434467464060123203135923764830457460545842791050734373485810369701157914337922494460879379756089108367730327269825571444910572532119532896048096236607134582518063018539610848207106174507413038241324195583827143728282491238757463272939673103150837172341409015239919695499027111249052750986307159958370584149716725655326737898135536213018672856030237399387065921093818142270908118961289735886926163775635744064504655775397447394215050904293184969705498120312276377659643905662693708831455483877410918873737998125750252556271278904033352956919609679150941270105507255331988975618602640718415403634321144460133151397047235145464056762670712637853050341582009243709032507638634467934832316454727112462264474188874104023306612796275546333832326717174382760772087593701266036733894196136558078472295246292470850916425770474323429567971266549266333392894472978682399907594349740242032553330107591497290269680878187922606330587857597001795573937740942644255876568203920316868125750995267960500279272094250610613321500348875698965392728885177330860635672784173521906547073101068378002457108363537887632028124614374726188796775137285213598854888952632544225046241678158027175648133778855108726762382099304568840578533713220228074909743020883488072996895026808574279573049116806608743977190702578141296884925748747381245796768498237647894385107878163660302428382172607978427735007951344152964415992264928470041348521913788453492033445986358601868649531547041012782186979326363903438313685346962554692653341284164680602532641824189679475199401607005610582365145671400534931903526154345927968395006703225473098172540798231732021234211623673626037524955272051438264684634774676712316955513660060678426000566560377130687361819848034517267090518288403504776823351329180700197378978608234847392842728894790587702363656038283274843861232202731251220564256274338170319458154989997675991498859136720110440193733211098553595234687437895397309941011207826724116866822093006344337490802720917791482146278503016051843094624417481421982627530781041050890270184324698284346518925921847885387007175907537067038617604827672010303310250325145583401389864088697005246105472842804945178500754547474030781180973539376529293638700013720005005964731109376187445853915589321674211626226121498267243237829786506963001011950572930398034920820177976064770750576180627154464370129757207625971750807143047308879403040356690839825414719166194027146388982224444889928372684092048262441767445120687970835459453789100466820421782670249589403771563349358394447609406169494486678464512617971042420842372316951715719830008101716590878050562066359957560374911111239720259285431857225333389014799876140601306910054848749071810506736318107626146078785773693481010591273660446510788745480530996059926047886737154810751792139399403508399001512612988380418542760191549784943657260570428062149200831789186654610915206698371305157054830529816132402312983800375137602262612061024267353583619468538497922422871416973631453050423630545627187771855032153981223835238033570088654677116092622146917424142082834183930525618367845856614901060441035792050167606736271872956238184188939199267036606118774473649996388428681609491778751921191888121428848171642729748688905446020092170202389596859678786590534011542451242902624570612844706815071088454502424282987268801333747144592575537898103110079434089057364124011409725911301856164650377411433327908666636454683102756208164712608638232995193286411301303860965087128344670062680764551428750327382519487796565889018032607763061777221984370625477011357828958972494841860225173395158218554300721538613454374625410815982338670318407329327031217697696167974154330362099176213336197330579184191063534254966798090807264432457610915366683517369779328941451630286720845757527466357245966732449021466529326716812560207203917129775818444266290857239747155983106175928299205865844756120498157810824290096579778414347047387049221115469231714144019182495104105763766684090385979513640975258740787435308976962449425578905671837651122668245134628792264436873811627714479443004830711074053171348641683301271137474519883214651012218376823354149420527071982434417262648290664420804858612944696966167057233044231092554420311424821466483299929127036868947522824347055005553689781174496079940074205806677965004661843112573885691200016075446217869418576939497112009334178918023615598865846319079246293155615449724499830954805987079748710277737237908399256351200050330049623483732723888300774136565184682861850593467290625828924429949014605610117638443825287104488215175858464050204200414117944708984470217167176308325256445700489550543435640115251102834512152824568180897788253874263129782464606133915292280371474248155551107198636976728947022291678805455260426678930710748827779861151836446424829688275427398782244572725405686888799503210825103055717006872121270294794960903744983075248482421829271195174900211031019836166377632702632074549777229057683544622580927617301853009653430982799346879959153265726943345992691485928781613945782832539906455382214813558749373107715552029068603495114302970734606268388951748228879236897729801217931055841041906257403877759203037118759330837116147747238252563525273366263281186019079099478301418492145111786371573370153087971972182980417814742419115703113022833982418325902985534678578722744990186491064581128007741843240535605771246510496911723933342674069226135584580442995161081150893540691703739095726747289515940046693780760009472828531525462281810130205115092786259811511546555242259953111528383825922612011886703061029556115110400646830934398377546015222681800758867970400748316200194176871764971045435079046447080433457679506047352891015730295428199525653779619472054936156539927366007260946179482880782487610048676240259563631604952864327789757281775494530014135642159307975285214570818498835502974159805089625912023120667735579041419761588395381711982517154792786464608473800702837002540111269174072879231527531259576067436500345120981287341662064683181050546612446054053552106011311013244670783320441431003560009644573960783828255411377388054944172533491450774148429019459800687065835665068852080735138913315735937714143947237275679139790455399322141734322570921686640085277917187311571666545778451361311978241409281809103853554706667034211987091042579697831014960792751567665988403173288359831983765436409167799765949804367907774875853665371261463272830159200728703470823090413909765096829118408785197913075659211467856801864343434598371297089506711933451608508610854490654467047378389690952374358143701866748109634807943204010250377197720640379982536540753966043984370950157838355775930515702549890910885471303758538986320276376665023412292273168529998962993052912352739540521052519962552310563238340903479049828986905105559467818407718884032726511571566516043494617817223316911829248324959120653391616599829794685147795414691911756327486012099672471364866024511046028233194815652702002899841115289793043733707127078958341051768628982959448666833882431266970157278727808265411265856140744066226190713750994835539298283794543461266734572540060565107054137494309811818512388582623124362016814105581130649162451943550131298803384856416781377185139197915336108587267896623743950116864207094187869536487901270604032591670289076771678108214176661751588364141485133744880772333141289224929142246984630502219093969913510306150289358696153176450207248400726245108497857901634654087625654884407959842532348081227771354545839009003869824166709778819316267392076643646271609906724230815333368915883222795357371446638349455528890604527917658542238444707763451127920114159647230048446030347422776269330787511706837640982509274453094314627758414309035816106176236026113648768259162063479134060914140979978020647441581399433784844832604029337465129629378047025342362783631904106330447176913723853266813794058612432878214379202579599499700853254588719927182303660367328650387454781015456473117757669215274285467951065329015583664218990262768055096045848317896608903652972746172648247277384923700565659061570339903997774555852559533061075196840286467101817469147879313271256279704269103436893517472882664197889410350086155206563128912398158273996307113162196855672740646440588533967370407057434344121591406947792768419424887984095872974475163290310389681309990674278661270181417580145039390209295410823576614484222714104673045226779106648973113397414114037729785136778888135660881526480338418852970036905275528228618256575231135980924351742579298909634581438124405975683160273921474965745138908590700744519179502596695250114826970169156741172005386681197060514393691984012374395321290949060003043819904378349113449577183134083952676933436170443049927698978834565855135015475701812011827752378012577696790394018731310293752812084695171963751378592860385336026114616546645707230642394286524296492276913680203510973743453525911273427509462442348072200274202576630320321027273104423761228126215801339380345178955398174226130508661589006443183217717147003593928917992292887877322242721202559806003446390357690428803502121186758603065221098063304998351638526223510270820000407848905398466739698734229056040616548885561552033169089936706364505923902959445246174062945915597327951472561393136763023811641002162291581544011782140703054052947550140049266512223235433262841572108461436546269886755823708579633146597467130267226843056173270700036080967294365888400057605357227176457230564930365912429353644430781022988768261568736401806652441453431148039408793787761700681081672573804533530851818207117229274006731143542225225604866255273397132580882839115423269329448883216634386229668326351347376389706671072400895265004704350072066021934860735206457686533591343787692942883747057879830005435120808277874873136793386001548365200934831174019653018072802303045212487802165193377586844714263232518852023327757123317920100440077632384795412600322685785291783093465970458819809350121930695956905896083921372479633123366359276925909434801219191247402798890662533021105995284437675852198736428921010703610571550862562522891287044652280429933402213444428847507775059804375272025191278110167843664979686284585003455679652806431062552645842562485114340443755059488315368556942896093900363369075000632544473647031741287075280665826014549311377559925324517083063608249160978300729632284340775489569667389689899911217193656077015839741447015605584068820560961442913725884793642204952740732677229829848973362377244045502162050553665413527872309825828140072115598525351347934250521247860244676058910244932971115395488328422827048557077242290463015041067705735699008350341745173330120133230125269231978806369254335401111944675548968638297216189648120068135376592101562415625916013818344964887965252653792144533582435131165539325206450713506679066688963549975008086953016474212952486167203609772680048521157047596690798966957017586710728488860067928424562342474891595654043974081122406555523269547427011035051380211622151608745913606748471182282348877179178853120549102123824119360177371393311590774460613861606722701910410844631743237943014897971375846664506764674009127106252367083976183281875967131414092621767795496203969353955350634430486429239028064175538664448417075403135114900981546245822687106199182174809471334667946767744554906359837434501744200687628056289729455960352187206220165421960204225217675997278161206747150317500764883959551271509889954911921529713799637451709464583395701404641771819845780749782651798639528726988804665327773995464850700784011448945607305929003475309235457166039445335336610758856022103067811826896616489548819295478082969764941970524677765498160848871500452590594318271691517891549014873499687375072179584894430852611769787780469148776070682323340249634361950807219693955757040100422382059009355558488456710782806636893503390879536951980090695421504288852092091404955243997687828859718147762238512334485823660447128917867227553811319443354316412861565367946238579436695198958015822471166332372740530178387430418303624846901251489619985300304771675639698816331203421782482942945802849855213338886212054997361491445624206638337402278580613127400437684313476620462937671047119778794370916009894811427387531714086764062106863300702540197096136642078778099155525482946231399110463152269754593070742202426427402145681179304560192388907922064651742187869058262572849026286955972696296346760280055166860453967136861531101611668719605695001941261032906129029790801375689813117591774196142915648664553881186141420802200374208211236977906356540709268129226634381735449874465507445988463465505302038232327095800760402293472429554905859234482931681031857612038396206724125337736025067681688961778982686190300007843018301512504189081201538552222394273177084712463090766864929769266211822128072711905698860234955653296359553221671409077128266363695569836285290665255039878972272882856752405629745274173607083198302260795113907172949213454535147172504029058393148500740090948153160701217798287383007565323375886244066313908115009287894520707681832562713884862224129722597164540700364896058010426307856477334852280056527255531996955267024265732786389848453938478197413933659925042580695541598198175225053376898949213032981899497559208864277189613859011193092944446129047753827378856538565204091483081705403025082363780026420182606094361248110041321687437401728261028510352560819830236517553337214324401211558015254142896253204922892835531215954119790193439441919373199261119505874928399530022426281777963806983692621246998399717728763410809685117942854401977673947536869030873621754863151810966967618872852959307314029523184285931465932509438033741931152454005127076960789960580597372040390360615241200929027320190219178231964138196578908413566961796795088898049144149304091673464939906095548287606516060365082566244998618958760475175528404180384087268024569089272547471131636000160402602236084205097608108075138945738144997795790860321158713943070624308982522628214331012827198050046657028635237296206273261503107284103313454972882511772715107999973632881706979832160940995075633689460873341517238836781743202283307090045245889957621234170678656626096394156881057052110881333837968109942311593913007184668747763909344732951405410778136567723926371429209904529010464350558885460083815051330683360352213528199823683647648082022037221952660232405128004687695501905900388971790400107731389334775053006562409641739507129184674194521843211083002908695229545816619365698999845835890151300054255994971839306228502631676517628366049167173793499603546372777703866659644377845439598469663059157124825167184356644557042432072602644211533652570898371258168295320023835268941765012262795064465083111114185849044698224966351271925076834063765591479145091140490305195782582525043022205942342252939398564639603602746304350313393951176526672448564614172071838749586532209045817859929455634037242392674602793873714013139209847315814771757372410720680279341257253795903741360148766820421980895950451580046655620848519201674318687037840940954422773811137482663657290398527195759730784930167006589522352317773267522222545219114383166731374835771168093645427527785928940464526345346973757111182914852370718779644510038502210300287800570217216829554420866323017197808183042121125256749953174500759831541391951084687433419464934057511840722097361609522492434604845521918881671727314247553601116768324047259293885187412843159725681916089606455874454512363208022297169889816095031803253799816879644216303640348783010383856570252116124536739569204566638114457696977598734153264118314784167511440081091719916652962812600114590111084950672867495404927684929928026628665549718263805663500586023835219634585632715976122539354433509823349551965632297120950087920017884097165307327972031912040183385320423640317371251454450246717736864560478491725560225494478507296703225370038405462472232149581979958791027361399572770251616893999187480406939187980665471520473916698211505120789446363158789696878028629903752469256445153113200335357982731862805134021000716474616232269477964725287799281986138264213488324546506355793558060738341130751145017984097126526930012690823778333861882343510698167931274080665647437852992928644522794755182018743528371298837246282933299256736706639017671679367834114141761943112076531337951714810966747894533629046238696761489023883892509650961948216571114039874328506631833005433351622421935267015469253287817341673294406508901931752601357765067497815010540793545647242932983154322051897878825813860866017644283401792307630305662987391720825613452106075473029290802471081028508294902405502703344523473463828936893978905908107816459743830004944960607290570438853616684123208288212697055173925033437710632327983991785152867550351796582805217541049892990097429051044239018653968211630549813738859974680451033142623426595861538176697353947943500050372570514969676089301787788786948739015033496645645285965124008609780542624225208671621063988735958335890450822514247761309637609294098172349236481490782661952228985022004756256561194321461532590867597951303718126782755127122726066544985168533566982771202745890337030285817095822700600512016439265842379767856442506444711474861129314849622601217617227376840316963198912010237759623603495546622349322661071914608475152685793080092920981709278042126488117851337011732745193605211719146010754676421403708222417962604964984548523016803960111666030596127133094073781727475873816543952289875347160978762228139354663380366111442844054890700380035987223791423066551633168578844113894808458489736911594132834852747259261221029905959121637226092074012619254699039012543164050801028386612274799873452792834352662132605272819204934988872510095361018739646124881062707987614352330205069435259314001617826100144673190957363912548335222040017034335887027509500379979663941956865087467103666338669858442306141346376283950801042412764993816836823070449108959367121388009493069946436030013753960871920774791507910904763216763895611659662477035833958616120605175086215258201038837153374108081305058245490000814653153491619084934701875510836002284245769494119097342841858774958465669432185558507375794299695877320241178017446594522474377799089574132435533239695077491128304359738271414064333969689266850020302313527244300734589918583043233155458400884250630490584265439477253519171178725238628739202964823364243317447124806510307594657203584640546304331930340828750183060706760990178754115318504378882101599400433408678550564028790684045561417441975946292794049362808735288265141524030833737038812569951104272744530872506413882451986658594725651430287206840728113300348690007187344884487782142110824089064406498281467307213858672940078416251213163026415828237834952297470288480610713961277567356965466407131184938711681438304793063339899905571360688839016791622106504636006514338328084268782858722423708674050507725569802756636795126820422538628938111648534099807373513700181911077193302837682462119582635213978951276020141117203150438130958397957724536992351547519475829188303427693018042337813042048774696942037570113144858491714630092121097300378956440211358655374901811262457788452796140670027490688614007487484250665756560889635639601624069867668733903390166176567351379884263030326793804065509467647771120665913896466587194537345144250497258753748593692841217253866828267092131254334917228944007753931623646831898927425738470025145980029426207356224683819723848729505905898354788068489848489447498625174732776114351456912631830110910379504393615110911123248144249272636346454378019200833981720795600057953586698215270623956336210824237607733670662532229116520500919832942643751694874695351112310403283071901328356182809485003861650605145860386098719690144118229497874712080725758682976642307344369923238855377968892871817738438615178622542455163976870113486194919997590199283215689237150877396784321756209368603516508055360883319846335761921686138955165908489000783840979000752312858479861766504659216940016200954910181023848929908291838155240205889523945184620615369726737724804689147562862517557107735594932380918743021404618852610897922911514449189645386275708403210601263233338492187503640177398179376467032494346258653716094347952175271541082450573822137868680001236234068322075690076634727751004021540277741261190899686618508839910719007421777214463107269531826787941487470221718833242367095422136903528195617581679680737234551154543084181269855960925644086555290478728409114217034360907606710749632145237226264075634161767236015171022446072771564354614657343809589534642378796159088044075706943347308242443787415263901386705457931575094968329576220696949808758919852540839760888858480036227260330186313269166803305875572126040634478338089021133089520859813934078152787214367383865983887165901724274893581422621784051336431522184064193666556184180907709447497673453945176255661057171331800356000558054626722140985864688298671049408001836066517065471512307612316475648004181489727585099240707151284916147406832745276768315206538783413777659182469376679844854354165676170276559452800428260238791768753564157403138040066615710110853955368650295588952334225538175838159840520677386381918824002876665550517701582984277074726023690121247056847086651729105057771884511822829076797762061008137762114030128007991513860167491581291873410473501568698569863426780590195948405998889345821137006999240241524910673641653309530880379317732067014502793075200603047600872517424808093909089078397264000318947999201232469466140059855601902088799755764514778995124873814937213781456553918367338534358798314524150519868652408683522895242720342914150150085925321311866617333519335363246360718862966746686782361674557062276208164483883044100181972144630984950753352406366311585760074274489679249287881856919785027335003858032305742050233430005769530533289350004872297703609421132405643463863445164952174466591119030226179514208526430672198940229552427539000355447287380084675645076952206261344952748681960593513878786089266374133301981570370731571202233240132958141847616647532075335316733800991545019842829192780794290274967990442853946556018594041586213994174316646526017007072234998860869452391522224042858060573652818673397142899964428887922830199674760005307712654999532854064597103111115765499318110905865949015199180022440257688913253875362808941519386198467874500542290378752152823226887098347916670772700842456282663883959022471599040187532511196721165176081937203975941541257171746968201104978325614397297908157754856632303770161820851251036277126714194420822298089856681134227694215936967108332104318971532911187798811986565727881025133375841148835355597811259978130528654172121428860826072271852758186625454204269108509693213186124831969717225178754411886502043880653019842869447181259420514813887149981699143799662518200034115406885225206621227859545583162890014244577093599146444819136479288536553620719514975794632427274573974080995656416473221880360115790356576349632410265727942985492747057722421695578004464023736289385563159352181585522709105719496548790234667124559226107335658248885193978582510114155921875658499307992183031426209053244018120723717246984115801950042574733667033077939309234666070277873837234059252397246082296842732349511177703675254283389850659776162078228406077887466640789489141243247942849099782776417629465046406077673399443539890605478600080880382481437319216914880496440765282913337887876919689596232043329745290033903170794113672565507409531788366082419800734979175306169684747193039887862889935928654067948936365705461935433428689140955510881866509298966110982241385777458793865703830545021456866315219196313005837518083108118266303588623860383610585704788769821567108559962279295054726063155962236247474782929643779070352274010591735267231582906286261007355092801179709730822250971508044800059550257203233597505864213705140017598499705490721889336811367793657882358003114101246896012235779980324530948075474744873619926649599608137794327503336212400771467783217981961413475757541889058975853394406435707370598527038978295556038547750962536452338042561588533013298923118912660145682174594991460871220911736160077510247979384720856121424142691090466754137181960226580363691094418351204538361678367022834934009855632002411439198067668599864623872571921115118253203633221132212559098147242166086990466202344921711625463415659695718770046229315166132951610073337560529000730042348213352016289042718087646584102655931491249082207034687376645245039816112064720525426391564318784052640976121241452555319639416849754936125281647039793660541117085192873987226416590505737451757654226045709975012582825864439492719161498317310118266773003736712902525104453138700551704287188477260026752120366419419502713695875739650038585977398078440880245436625089495900608849656718770748738196923704956129008001343840437663275942505189443604089272564406896825222623921567047145228584078314737760333424499685215698338444083137125648429117888285616973738359834829517640844306531314281142490164042566393308762831355021681013633971918645538826499626468508962699042918849667818785907520554909241030429717318491215446823269384328301538145861387464716943286113704347984083761401642966335150886228436748572545651656704646653893990840616717487394419355909542105024292456247136043787198429706717020629248120842196515373467854077536303671118772753268460569801720231370787797727871706260066878276116348157674721360612887610810730520200881264976333626196063134247353108672299868469613886026705382059315869754090917253643811468817388422238891201704690770582542092945666930392797641845213206150211227437862289526623544288404234809473341116604847420034698625354281068828930827403958294978884878075018389195039552889599006790753934341223848558911021069124201051877488764032563984631135683558563979518273167298802263909155944375533672819897137898442657372973500722793343946494947968085838706982798634465795456504702836151506105823282294048776605570415444126975852421080256515997614475548535307788736959650267412660173977128339174557477888673233989560410785459173290602455018743379959665978838703287601419998384572661874652567755463906578225486867713780515618808706136706181466678106753593311304644290573322967304061528619388375428370340371583694523148868894813498292130233585358883457023062004676873155939059125709807453502477911819339592927626984266984164815411509076373694917226807675803918005147711664171501638166351401149053398193109144427801912699589639311191397113954125923171301788842863068403724836027147073355456643326801287370517851486305799407432455296371906842430196161323448331978938471280922935497510499607056917159784554331170830611723414286430313805487690927595123096980432261387860455056933422946468712875056661237138485748473559568044350706892872126776320319252895729373666695715200317838954209132645165056484878824440336475822956439812462280215337527020887302828187489204150342470004603179757326440904371310380135805094191411982710278812284188307683209959624575442543526293461923854517272290364716624696256598159203037787961220567348803150875362000455999106487934613994223989800920748396597386577498218533181806680190520537958370830533520714082874048083572210468879107289926741576842899249874957047588912433547174622974572142389860598262745702703663536971156316584373943510444777440304875441732962457808603414216126911368583501064749809874108988512175799613860216337621217167478411348108314383234419671739349870496716984783878010211095500031596655655226852687539212945409746884274827809832984898120016690018134738170219358514308364276560564561828989005183133223477028090900096217084221866060522397941089096829384875544120240328852720045125339399802068798029197166068203187709497837570163627428594747501365162230149000156470017558444797938019834097759901055488261387556227201867599216549393092682225742946559340863745064916419199118473527571172574023083305302721711662781515382623097866856420945944793439568929960331074869776061535867325140634913160162491333606592336945267507636993259359944569020657872870146440474513127555139183908820317677473122322368081809258311989975010825770614487817525313993170423534747767711392838810756519631772583516781376556811878960399326855852794281679643274912767203577481684560893297570250134764416678701670001909126960560177314587104732403314362640578123556885267536209870608851677038878682093216691579277527595918680430138686419866463963967894494398366334486145731742947567230071726151700285620657455524830540344810820678502836633064542977188780715072765786183190847570265992949649549629112783286986555407808109019510912037385332320367319871660216413476462833842096390840831314662207008480418544460780990664060889806693917833193586145451186916915863387909620300939454655394614369810910845315484833769722343709326748648460647080331488851908178194886213813328964130991169875558502174200573644219790361331549019263410639969654004887126110244003200765747387621475500040548322163758140109247745209389746240573337413146164644960475664000355312996496694933832641619712683248536954382771321373164004592253528203856153759388729095462475504195646471237391457095758634470383882866045350488910430552399102062793129878099079877861241265227953833642899772362946448168317607530670781297217148848149009661776882642418971048888460292649438070704839587306076642326871020716576512171978688403486380395513238990165119348671015827333085967471544892788782507893844852706612881377895232506478617659742194234021566839281652354902283854221624802854308645698944720102592153411457667777888971967599008963472764614678343512682938441502796533074166789429744679755750453006437760423814316262006166274673872377894447260447298030725753146072409940106355002716210958928785215345840653158693516992816948535915609347765434177118701440124982908298660559467453773023983118107708517609210300605406222054073702414178621983011748759662735595330949917325225102056410840297033877099990793370151668893493006867160634806961620538651092095020949686059339293912531324289175355431008999025968425155139319872232736292028348690371239154983679960390075703341468829871258364289884571780970177171191513686618709730494893487863863746922244307842309250488733526018480322072842362784072515702584388710493782283316120778709063143381243809980188692760358838734078790387630694359534531407629010319097573505878022556585744171982541937966543110325828584558166914925327980368283628320679338181723512599090198510632941056192066150481011276454686162105137438635347015391596311205832080175695954330755067028139612647126600382030924594112362409253773396072456801317921683128007564663988358441599127755035040381274267753587238068163736147205737503546569450642577649774183213582904620688782707823213949112456734224744824825270439946134981637968291643116986157557607871837312688521868248993961801353672785528649302087734397232375039640808519736227080347421234985431818258947341898219963719387008458342839900427834286570550949825709395027743897073768037065865513987072958314923874890553927927748377633776384029905140232179689950933307437620232175904760916673154324686574058473877699582607754168011478366446946320094604306717214888872810572347427535747339015848038305012019131911320112814661383228691901972048543129012819190263090913800877828275569101625094161477757427198921090569445113961003340004902062623554450762404877028849171490363779942639033827691876404009728232840596781864406680174404992711675100449785831737491708326749963874864745601251993889072504497830733242681494843828952613517177252211928580854977364796540550451632225099052388406927384067642665290090639739208725468638066236910416800751647350458445324206194438552386667844233401275462403388368883707145704921030846001235834450556744317200676294190137957466245533521455286812941551840453157073224692745943205361713144614905219816203517270172900692070256187703259526388882971588250996467482310923750073779673885228463614532626356102115367247465673270265776098739804159247972883028635690248173906006282368707785648124747787706762046978530632642873272219895865338625886489158418941862913493576374528669699134758311623753933750659811639480722606706798426251600430610878585456389838644233131995055905289013347327196054397084039717626610661135032642937799427267604026889329069436886711634535676240410626064602925436162731768289275445252962433975472924407638679813766445512085460233306598448730648983532800828350526337580275199184831599432285437436330965095798061941989047642699017761679891995810129394566832682708189643857153921117074297090552832188553151216249951030688219556325929051024250836021592111689978976047057459669541177356998098382330001134631971792711887693601604180191632517202784455737434058707191528387259200330963710976802180345949212557011318000456580572591740598680489724889661472397659619687442608888507319738276851906244116317678181187448005589453716643632893553906649845424500553883603325644795858962597181570247995340460372853881975879918289538230159323549553530424248904425075028796340426779198927649118279263644932201630903525784302913901887410250461644607788105567416789630628827705458887107889252103268346178509072783195485717528783257635970603194560558925892044298067277936424072805337355403765024819073932337068549716997359244568578355915842316208674306365893098607557166248556390372569809721852311259004694951333667001416287843124672794705782444648245379143755403046411080253826812440476282020278136061345073582396581204284728519499811605633390595855444957216121391497359914961245201658512934958743655490992612102363953523854795804612076290141253597991535151909453396583202691262609389493771692601062654781812370736676495392203905812157194380209227358260090337302296388188339651577801178504855111673852646508837734006935862538603343656394153750849714552697241528004066149529299858450770227105084613046933573253846750629041976141905765579861666974955222137195135449580605272267644258066680897432968626207488611685410908782569249547110274509804400347712213348936174549617988932640914834403882613058467054398269503869044209545107775201856110193778082078200015864593878632317529710206045756784882837543541679975743818827360422937758766907513193188459182217160215801074727455302344680919073244024532677383426312931717672966705449930331640878873770559892251674105352141412683447884482846715539305867683833301569467658553838371143465124534532899703442748744047113220918107419198658308890618944016988140218113537734138435770904707181570605722022459884843873467635717097851667135401737246267339037646562686173342576164714851010096625474889423108537606929149011402935797335390452713941112481030630651713867371088058473753030152548107543878249325050592002067044053679430334256615917237591808871752885268733899059285560103129600249399269146337957665462883754708999426011194483321626741335449305185400364686336272094485043518628018182534592469490061136182741404927625715917171885420346851461923616222616651153389390288521546099056385194691634040871923597062991795197712998817082034717310156952902507673284257277470554664554124489659374614386171300858133968930897184162193156875488501807771480545050109186595082885867419181248611448058738549476073515602562130858722571704529855846013904185817900046923277821643935038526407780763517949205879818034502381037163996900035685587616849223271650309037029752367303266578985896450975877231760374704179784606643477556364252576263554542211434458218968527345607764607566362635097614086055480773975551953199944964033540913441025099960599087085389305906698956915459574072969054214555408775447269068707395971028418543511563742710964726031249313426460151532485234567186392690878730882807917412158371515938737242176289375423119137165159245774021429389070017085606266932704083118668753971780560655862145746234853162324925065179814137079046881662797645591103155534085304222261822550466127842661745157242511450403424338011023891798222570632965476639123192532125795864002367821326584458574013939664500692409173156012444833467961229323391289560674704466167505645256834758454731568640944924325709297452272693541553166392330075651132627560802637158808487432621120491810489812743213814658339304573147043171958335149792323249694899184720309402579982385758119493898482265546445540090279476010972709549490386051234069668846038004534021878774204779671854303175733732478370055590895975593765325731845985783032321979854978459895011465984824516948563422275003272215864985720913400167802107534403852435940617737639021374898014294838316589778884464429913767429281776885085167408633095638453298537524016391058311505618809166919573295222906211731141631124658677499438037468827498648841477976386913062335078768722828714841628171603489304955664000168136756539966074202427341569183380180282084974097561313629697413527151722574565396264693367351606866224661914150731558182200345541791516608051343277481886882614630983711575804148731105125120290913754985013683686621283981513972647419624696948456203324634008036757838871678346537634394454463081741569067989747863902255090188191558274781578272467822560388418221983396384304015340047141186169820126455643121112849668574319656460526000652636164819076821309440996351098130036351939042089612875940934829552661107873132623247820274839134458547668515889574151301185959732912881842453917336626138316867360811014559749130467008474312102854927063329009801551442368949281147651903737837929978073434381568694174772964800555537405334516833373380969050651131110022759440632027282010919522104340811844758405851846520396269381205865599164205254427017778519949137724912771591140569577479081242084406161532674281120328192381351377607812388467803694794520713081724850313952294606339680976378434163676675126407299974243045815012471388599207465345513333470385368575866934522512205848340069480982758466258092321014360656323833664775157643984243457763883563607333396455649164122231713800019851995733522315126852603638583878905647193989005809365291948695883203313906740179043358700321717278718540837106884597818393977871157462657088236737857589079108320328694942098153524741643515917589763318018749940353073922957454732809717703800875355235445688381817820550984349888622059826429253529897561100819689221797467842427440125547673814807278376773703612554815281213777463698424194420649454390469566402995711755974307747492027466466384592380586772018452748961052050643092582985363218309290603676322745785199399310947028096786432014098801610859766975447209149761941003355334277622928757904618890180090495135620563615693555555144291251109763985107314351484389124961591214274432008630754099461793483378006509262545399038083318784851452766296522424818294485586499670962334280571688713846304517630037586533759752548269729025911641770108714866682442159834928883139275831144883779225854477504978837981482402945885849565143741754321058072052505658545235182422148831696766270915771407380344040620216573782116803300032461879740272033714489862408045120236822684596534094173110470363887571573394584304586684682432734061610244291831840391706021691800000127714317247846118600300342735688832845423407008250983954399623574561322639233109483639454768486756134134625906506024755498966135461736855561295281937732890793317106027481260794370766771842610047739705676687852241671627257648955738502065003232913014203290973852216289637809926430630500602025081156915294812255980888490129090092013347986157273380007012175532493422014669240107099536934559236882645402197792945046107039324861690068371978544678333780820268172602073952086250226624331436445796766549416090692472220074599996825555233791738294102948746142607612057785588609970893022466816347450933602512309096032345990095866197989569364274588699753799096175230661185287638711266178304300640622340144336070307442163507960424642386670968481461386965005212912122907303548387954157447583157276102906751514788198147554790054653338542505176255137703919779505131649348366403798888614486480671903607951870778311765794963206230938632784465043964832521837590646016962026396598794558442155092378664277373424709840568151257196960778216253065057843336964929927492227809298511762594010312000419394806652302347757482229526307591630628224787269307965670498558359571142489710584100650741695145813036317655479969277007663219734368244577826623883856010138371036479055463819463639251631961568880332648128476093688023458824117897042926193145892850050845045007322020510514347818121334521322800372426004815251961558903439009001912764723246590589098270549506440136031451068115751256977338237368870078211086884750064862008504350356520657118003838402812131245824114956387283064160938926378685937056053086174135886547738369727171545802685773107054779421375907667402632113244979842928197847975925425241166732576196338817393548436091343267224077004874936322505362858741143217371246633107493883834288773482491385807348092458542725737877922719503895060167537406355999654309466219546947284524630086511093085131678352799539947695562894378804764218565791121857627423670111402976089850535670107318549266629567548930689748012821387694171891130240693765927018086775009803266627673661674666234042091108716779581373098627878303864855887954803685588955139505125752143258623433343021178366378323841061066359959070058426854094530619471601550747029888693985596463453672400541116664038662319411069832963208604395648236594429357227785298249494658365586334242469140353407170671190125833017706385996665509341659525604132097538095755530440634238442893353432487743502852794601233727063278667060408886786050647266876442880484594434152133161864298588436965157547462253376824971884757303123030511883724905920996476622851855239409505593662424031958282402159324300465397150762691595519409247638180816342768384137295277356582769873972355397986984625745276236659767801953816559697135400718169837941927670858574574581711366421824133148237331122703772430868065392067386634669810639982485156724976793440942748263306554232064567884709145073747003880264444725382883773899902287731798995152248930107065710953294018279379608870991353080430250985315003615110084274317327155514010683589930274508327910438279514661703703765562640551983412436086811919703891496490082681694026105790721204368848941633388837662212906792292337313807732075196972100832722847364342037183007457021434218357082567257138250406163014449364830396581054536765755911343249363529803420711174280102244365104648186998764658933859199756182283156179160355292996104350647287477637707432676938614552204756290648117181420086616379329529333435202789447529196960975623353084429305112535311238773664198012592546643419154841767158873108883498089788535740004482853404758568327579594333388461596470752077059872941447577431038293909812173817205747930429095197892289345812194913712823543499146999886757896981612008744827906482662561627037406829323218268802880414509471977818222240616530199069222178947010520159160603029145438880588573321548693159571753582871975085085087077424110683926356939779916133021187801720336020552083891931625233075533543254518499923575915567519462902475994167521093847605231051953390636971896858867627723686531080610137544516161762943994024573789589019378857383082626094306378773571795927743950425943852586336068429689780557751122551993121475245953481490249489470142660193499248298363410808473285020316601440458560120528783835732556715990668562698664866883061580662991163267609449367730003363408257935113783358766442233711117557754567559066740679674683504756935587668438664711732149691494428755044537133918591451107152191803431690831061495197751030954241925835953511880748524732614896992220317966921042063389523531727957275918575022685997238684768375332724509198284025952795421948016244433130249241133051288487444118331856317948952373587138355430472701904172206946510362281669240542020067377552729056405326290711674340641030076535451855464948625985514504934497854158271179978453417422794879717319028900696034017585596443970670519738029895672842142402491481995735750124161342598122635005920889827018384666115238587257033595711003799833382238077329930061328791666384689363485642716891129113743437520234716875924702780658314798263153615956359431624887260156328625435402812944019741718165182098778843738345920081533111185886970440799370453824022254643319706894429476283751906003320217418162524181438882368616029163684449388300901517323845601679562158511732614181797812036028168493574361593223935995065113306294827111482585746946972066679334050219709922903996938376219787237114986734872720826817216437865911913224069391216183544527945910190497306685665782927820337158873806090863613254412508181306748121016023469298546801561307849633494600882695596192403926519762915651424067898323638876278089063775862127761040666421427134519877834973855937349422095019639373494005148594135961578007250767137873392341583220050162849571079132630211194550742570298217593135791861785514724039802297635570566918903904932973339879701214511361996491944612916886881212739798351458870883717310917744878615173999497068289198068913189015188723698119727184307774501490798953017745038696692211739739611203175921156818352006187911842036638059487724638531720083138004529648514446070198675134657504426532258454572168283030949464772228945568441962362268571532584227240609180867511848656806999493080579079958613084963569161169511956697103747252202889151667500479920671978797507424971862733219083086990007444171767106535075986469928065383702210910795112185612031808132952583068722572473981203544872365955886590726077568329324275529902810905450818477403262524926045612078019458409866483684622423654770217533189886677450767971768014425223736188064850240852209552791670724727627267928901414063925802113987443887560585993300708159278508778376511983696442408309286753720122299578201945522618222444813589249543645861589411926146058244169381544859691119595637076712050139066669652162192485212791184871483291025513248681074928118390438422520591962776854342896899877035754107783640320570294967699754609963416840497213041372109704647221339911243678071423397229604334276151844559973512531550858119811366366410905771239824572568138245717676417625117278463697612850515885162151678354108983838239576579628934957836539466958178347780259478747305129605418700878560374884772517299249092919789625279663843337710197219254831158130630641364572274752627182699159973820081438546725000746674933261618013420766134262297023952378933360494403163962007197910146853165693442762868939754047193681777913950328254437599298319859222952725879933673306132918612402707687892745279218061502244437935157588242412388342021322352151168482275479828268870617067736200213429397136502263413488833137516449926473544428843904210272184456711542920383068529465849917292293277081429089271488344682274172916821808861504400201949068570886138311807978567359527877458271391333788504671695211867038250424907514255518468085807510954771191335053921835869627693003892408584084157776522354840389350798514458179942377118020077511991328382556497597271506279769523081571024006805913934698757191005912938701825924781950325852883036548988683597039763877383038738884508452651478245480350844542177897094577025516499382247332876612609778443235737952643294922355192441790897683376763587724602017063194716654496910133172250299555598012597897848846365920025195700709786439016118823871560668559404033372645533991950625558108510235057219989068807211214889724734858585856080363332490776427978737123478526528602743108922369392643958475764154459745543994294240086762614171031897164760667239839864747729253790812239263934906807694213765046569949537829581017646490772157401182053721161465558606418211449561457782053417147726555325946394123250581516341823433448237565496201660772931017881512846208428093737751656429082532779839230884716084792060567329221005496934400556167661992646563772825199692991575059427126487668684098438866672887437766450227277071404262405997062526333864562404723395377473422131899934071291284146250757964752186448720780247140456205901820436291715793191615801038150780342149067601755583984358393039722390752274151684664831830768486114515566314949178308180503532550381969861639344694460664150531168109952653220292391597432217237636206640040541216466605274491914767139762829962902007898561687260590520072748961403031607040546170545137955537910257921374316256863757901875866598251305890514209334981203706326753667129005631682019160269672049262915120193188470121448733305941348215114005778021084370930756145760116706211733809625965022470090704063043476846676202085559875422186016676203507191914699428406299607998603872832986862730927756834142862423479855858446492497664357534676144154603343030557347456866437760854326038863302287944551635878934220207350384278302866170795200521424656575870304695151064100994862621205640532488226245783887922726859975756357547344381557793529363835039950015501645012548454076875480983942207693174435755378524111840570413991869370476905865193863144527382218609902796108940728354422291231763059951905469813741655663909672978509749604523316770178500306586682959114311417374525531573733304720788558319328762715269859150064456403995804263768225994146283989779101270232449152444102652383590037145863445277259881562094807179560326088779714336518244632211903838766379648190723453844059916130546067536179955237738393983317477650682096376255266650448278097073051193353680636343977623964543639988832037636712117132704942847925951639272022339903153367353615611589078640848712022543607829074754054220345968610636193244663587210245088744355583098259978308658324361454177429895036650550980947225621121917058630213939069850818862286617051303494499977096458315352117319028799310862263771782083220390752813318080556993260350389603690851196290013575408392856662991085576989135457158337297883781723501137312261314208767703560511325772114466532552029568090223130900621934589851712651218079602141005287574255556633480094706764230187832015158668408682753386418800127826320061751769929168788565728247491859065945273565600800459375737262064282206300258323512844307098782160970016691670196410770299679736954821352891606329177842714985063630916456981631360386940264850400400875388735412522655375230235803346924113528771981776667160562312319433918289120240611220620647331270763021180870103666266350991324993300981781938546710425777867202859365544695525055839497463055910436278589907944658854144154623078962950078719946774573120797861760706796126629425809331559566491315785054012182157173952728210560133739237980859298635605109797768148713994473576506443960386243144988362890286740736640987000852173837285142709266277048223819609942855763389517180602510684183436804803455985567472336198800894683466717949424834309398928682400342063818846020945130003833926290325318976809285814984781358216433879510497113267720884522346930244487341872702337263544934534899552401042375317525744927772066530127326327971090243496804844540790350253379177594843187024845864559350421569341895555871323569426749114849472457592134506630014938181388066112741546520231311257456807934578037123778348992695165046864903479990067958462064056689592880988659304147469945359641880199133515192404175738398475911838639964705468361566439303123844710687864896326278187285586684070590647751050955520135627816863417893850981713634175064703788460026551841757998290553126823291400200963063885386371525834837195475210380337162728421491237305008089832221747749128760754542622127109746402669013628583540509761885520164054025582158122000749792678807771253164962892002974888327024447137402310493385072930002105197386417806800646509848512026951892844027905759957423646593313370064791359138585913630492282336700896850494451782762982721329291691015158474343513962683542069379806118944297982457907426036937309447889738810948553884924492962780725810686959518532829084845756137201252568879250247098593330992958404160117866500788247297432085078694156784249743342945050356891161940190840061195409687024322291179778302294414611152222864649228672275664420512310458007436333314894937200984814792674690873468776378120810887623083942113968887799982006044041851284606117504008709157014730858241770305656665644831547686041524095972810896841065487010758263422429103162410619962190165690850057030478516182226915083511603091185629283226566935965622681481190621668875807196185539148090444215960621920560453751790529445158710465828884116748990052312823413034288610829219988735168254259789674620917567935316162461277653487216500398016905791939367139116761083269745699921850496386007978463666011308738148218268271003939430229539857737646777632741348220596019960938074843719971875684981282399825154051574544098248480963516239143553819003223068611768117224148032635642188072989359552577514056825251138840920008238114194611818101753412772379114674284052831410449853647641306935283989952088010311991365073789066447449917544506103543479505588318012441829766832493522140566421672485954124806201311235015157454550099274952960433274662686455949244777943730990325306344789948710822515769881671353884876641546404188133166531808544892319318276470707607883219261833183945137212556059997697547909843908225339734192044800989592057037839990960348741587978300591639570537938748397378988048054421295294021281124434303955546700779242795214242758743647027260551244475801195496614839751481914896760981353230018285988492459288980358714065235168662738063787016885734492402207804816201745056209269776017964503401429724837780731350190604786910723931071165310975538426359289039951415274990637094255317021946971854863486227776282119131239005777003635036630525582317205838766742630235193691040679898349958953196993499297907178811596995959667366181854941592617586716789115124692612176461628959824838837457146717073862096900311633575816046551847178950050771647166592486718145312522239005906509581334928697278657880921995037165376415739475773243347735242896101692310793432223796348790728013281373500289694271940719829741472536109662671536759235149059525196789835785220530860378510211461045318161585678908804423126007260770881137889338895017035593174154318345813648796549945688420587321200532183833250731614227578165431040405328513834289669326544013234903747698083915609281581096625962120066154298789732043989443486561296947871640549538824985636140273795190865084618842601540016467318357796070577804794721038973847463257135329340386680714103305574659806860638665322047364636333687115795580210263301802365526887253024383590031049361510868433224268545894373291325860410746876194647628320149365418062694079212593309251325654874294301009854200247481002688590703319663234581302819213089827019463921155933564029312092758362829803810008057824707102988235774474616096621409414297271992427615512257568735693595633706136049235887053671330493646887822581873468079152755317942712758619650240764006502098624236663525589828794846654120723065206694463901869253081599638512641357852375289115434943682289697694014246611986439364923398845940109914837504390526610659587654674855468210980295807129022060500387663636918034360509866498098351558882909818185188825482910074958934009983564095581598063464149603713408722504125121491828140073838552864187939462801511078105563772043842255720204384707639148900874097984425247516601119566231082964578617569731332445762610289559645447137745442850572539766162424085018994404849093326270132496741370993306077437783811318662118566488051793519926000261628343263463055296648785695943868145572775670632078545941679501260485989925587487403212405149162843781683385564927800198586593949013794791700414083796096365459860597626324814962031393125405437558920605588639256609108839537231524909265633399750794152147166290909527432172769574284298013872751514330283602073129230375343787899240436326338370846786561638952872434073117940274272346582204692517859654692943886930821191106104672870661577402912743561522110206603462024586530823634105163493280059681735977104879167602295756242163410153644551074564436012710378421617309732080168055416324160000776455203400462633694126750768857139608514068962818936655963552900704137887088549100890014647863485859623465241884528828003005584894388198962176268988636952435677468691910398553930577398857714854575326679925329453177256760590118436810515471145740869873456615116794584776758607683731844443055212253017764405529486535527169789043513383586763752163447026560993682840114554710432485342429887870609557270043047344376072524448149394221114341542389122304042541420347099638536102107555803136819990655041268384747720003001506919350096303177348143223375077783263210609722154098311732634655596736508129469709790534615368747132970179722635014460845503507519000912937338130665854389583167732609699437171686680375215493626335857636260456326328253508720966915460378235044378830329237027575120102604048169113228998926828349914973359995682929059864624679913489701513446460584084373504435349095272548750770212150107575884834180534199781492923387595095489832560920107083084981929757953771446733249979183562824649029499679653662163321954789138095315546878807547136067824537489407126216506673845108176698587509406186430173146274541571654554061749835454285293004352780165886608603275701813934090975605790865020403795905777897489878997629467738560132312451238500723792643985145215816163058529148829926266432636220139807599359522912406540667792943593304334897330505983143959361024657886151309060622273474883814049211138717544375001878588953896694206220585300997572233821759703679078230519628147542625443103477364732491253460576123523651365212111467973817462138604274737452433550702054121080321615535334630346686724696369360269152989530436213988434335360420664550810419974545335008339643270607322473248416310310109093501889849326643999734899667136198505476847270035490536688277059196400059715225155095997579330920481144208032184190532609152239993738203553886210627671087637827521995711430064071120283652431433296226179276629102351349907191268517539102260434717844946344954637768126081692782756108203070118259594392531284124045587983754492398886978707706111505109043650331754868845489000187332425297055297993388082541135626204164296908025942241558827286188870960466293233110471716342910568022034337517285479430726348515110507916098788651203456095465829369812419497562733230855090490207666576932454459390787219363654596461133652377018204883025083345617848343066498861420302329611565666221998970837243367433509551125481322850529243746747478406597425223313714594233016507693933377346920877922603749697077287511539789335652153162509903953016300304982961545562835814636254751888404644461044047280775682973600723053591502141092597023767346721366117216230317493666089700530529118128934516134066179565795809756464821865602844159455857656594341131010322600182616002855303474208357749825661057310151511087511674251119284944547452013866384705001182159741502091700538978119624856004566185798491967210429935829606677920366170630649050073390800812286663504072723950091987658890894854858097182663531263821545863610171099391596678412861155379881860031712566806627287292182169746753972601629421124364634484088091423032590409724177628409750608936881759341086899324885630231481608489724094411768924541647513705417361129904541222063592857720085488841376488362055402094846721446553995653605374212652648536011495967299449754275882570602355443535479089891683400878191139738528840695018264821160419677941771271412832678887158432536211732577930440317222051720105187671930201473522911585613229869613228413478449858639341148020671188164430871309683470865071706096321850928244335678618879618528109513031156087329691842847824563512061263907894229788875833398827106967734312038984519898267965499347918846603230041859208859938632445175302746744206442395090173808055448842123940627713372067766067167683627602573903263488704023487876712880555692134887067789101696599985903949685784965157566773690402493250432457179872344677258577934392204457704590674009365090766767945373507266053647508501070845214793215804411240297686995102005007627958980892504264763302850002220114045544332595388227272413757091871499883791214835214627524782240835165822899287960444306283548695180318440919184587577126417183351294140349435178006243279145526628748763848299128235700543259066654240102860770332241205472551640680974925939380822216359682787704408952916262286982852587822418705244526984039866072439591981938299076164745943501004032845547851451324308217299419610701110386029402720022233447921754781339639084771850711592858492273240190846966516541963518898360970075873610154721794239248666761960611599840174542478671711886282803235713690583660437105308436444947382311715768827144414576366733714400862308961437486970540282588381131314525641541845593558578528840246920394975099089644551780461720628120909978104531896695527926177052919179154347817745255777890228708348614618116640397121172790024162159273261313979585328606629696912718574319156555147493566356312684684391910175544182612621695029692355626870061133077785463781527144061173196779588488348449998330669742637989167676378811495635634170608714325316164613475954478985711649046886412458753036650096686748297259937860895720706346023802123950615627557599162373292211593828850006672979923791679896195317102876529814152086725630147166158600567607139508380474200229687982802174013119391361284304421498655227356004422367817145650571274882508915928129826638723477760500357148057042939022071978575952739603966164002804674668794577817402695670129910526693757218973496407545780604787461662295653239861428845013031656341129580641305924868906526340759452510833762996823651346891628149602156474932475126335085720329806815795190209073767573601655626927041290324870629372093536049800165323064447780057346133872481354627317208693490149295705717642225433762352001500585832126200440353408736051497060118655927305938475799504252217380468979425065348695205107748928109502863365673173034519171488472894888744043586114170947001673514511087455409474527636677379024820358626119695767010058970908583042575252900586047210963285222789519548094393713833023557163786669514055911117523692494771930140268725182234369749572778671108159912763992506442785909448398726639703879355613112109949751275284067477342269974456154486718129567413164479581566077379634758374055595021782976173394364412761966119104043657621367406356425420535455271476797451009696351510215261802260817769772158207613369890260845402549573222573553119686224659330494430924423413298650536557041357189789396331660790256109665117814231423775980268728167394914429269160004943296253213628391723333099931468703831622714983458249341769248662407752929325263799796385262011119724271724672715236161760559584601240672517385706717801324385398599728933604985095504795508704239312051301760464241764673171091681002507591231695514105324877820061717103817162294528738604135648137318513753150782516016087505556845901982718808101839236167878705751414787901085231672673414872905385874018331356421410275025692003804024161228751146455129530733594476730298576693792472521955736464289730426320450802440279212450718135665959190327611604050173429441464243675127862206637355774866637746292070152382925124122800006799954347156976897433473069340968511243620819776477284835292370223399652494279483312942618901403521557433899319898890484157152708075378622741778557550971780718088442876178107983529343115917361618159539474059646702387739635048670964813997295429991937926420485843094137642778625775260224279113147483915174316637921670879829579192485016330666384181088057526575117295910208896238657147317315827180526484547390449852457143306269079291789653229300594926798077011691223650204333154041196763784892691122629622098465671873474780615899304006454421105168475244178718081858236586556250877278038478012356331573876123677720242657390828962257829055381898481488298065766929445490367231171788998142843491715700206867354033068418616133509499699449135440349969673750444854283765042906230461431568021393926770229390903403322129429751204508627353875698264922398427931165875484429219761334982600878207718598877648703212930271901503473936101369904388140000682076273462605084606027285895958015075666031402426296617487245291023677616755908521043082287281209672529100019187297203388324998102339313722233077021456695575892727371791072472907864486416954094981811492827846531732754841793329246168423998048355739536710991803554150264275881153811532080589506203865909393826624767807978057937272578937118062008286460246161233265179067532472717650308266184911853429555220933947382919952141803908747927949523453338801314108108960571510566883181286584045488777872013163552418232643848443259475895084547267887995936413016787873610906069624695412864262613232764590635284891968064502602071994772574902244884070085775647851998740220245810729818134029461477492275099127359102208427696256121135630765128296818767519802648961062432269295304927006882939714915089773041812631691428709560015627948169294300955856933508964661716433347700857039486098333579849709639201697149188580103546218416867848425342554068009369311615233797488306732679620831377960689545744904946758708687997284934901703197455648162526169576761199709583801229666133074315314239458955625014782486023935391822768163557530185084420931904792978047734289878595496620074404882510067794164354700909679794177399550570322810159588179198547442717618801307185929680755298583612294362794881527392825394371444804082720946608938714486543291779102940911538940061628619003848480667426702267918426453400474509202115343757839065949702465232927387537199567727142743443518435909663299911486365540149881190398327930105799295861083654597201227276300832019338757141572225553513653045175785796376019074406008711249873002410541901509759818743642446993644729451627328006947937307599046552395451045362381082420157098283735504985421976434476017305644669697065150627198619080647586123112974035942963588659532548834843500321336837100898828669663705216552844252196795013809367729115357536748234693356205396413636766705323661486072772379612861157281336970106944454112408349452150496288548399070647804242310486544543269376265221451747437836050091004022577266286171792233299479217853909287524356561969212992847577243453048319219106835081671679942714716978771342861092953015840659247995519497307834050770400127100220269226916651521943114821525949956206350850798532670933481089663598110249862781614496567094388316181131939060961189217765998801272428600169580746693759018179780593384536370219986428744404175647497027221300824437416863269258267185847757119842814956196616655532897351300452649029969227753179507714150241491313301605139566821737357282261861722966037697796756507247496289848846171635948432202784945180387514078660662498309484020216082542113790427866335473617123130103738056503299867725900747303482085516268024365514018159835032051590728752911675852012110526055517606805517298806382328011354093030970773881068381169953318576604633537699593998939235278381855412062257042220240174022741670291274904379483008013442399748536523551395688111039482659337122964883032709729995624407323762550742074158295655111173999015255403845037918099956850719751684103113222168341866951201651804878600294130761598246155353306022728244045590498482177490253261225646460618375099833683802619281825947260294185983692120152526455145259407281695640632537863449242581105536216850017545528511342747394745290546433905977245801086907144866163888221881782300419614922601676663199138769292631956309330033943065813955581330149503997599318237113702161788762365710660583379299983982475505191528061685756986733912903333859805387189839158549098439415303461257757141164430378205119370918870799090006841734060156420249338125848050726809191152896287996463118183876592214662643431094988393952029585775748448770558066552856127373129822591837765735158472498388781514483934716386397795780401530735958642369852207748462458403325774782903257063420813594720400434642986628897473115043978559629507216967102536678436313799794075986894271482385706282392637537344332671909300824278027952310111994705768071208221079173781074701178116464174159777410993666437401193100244743118021534142847691898186113990785087300148267795328120122327300064700793592590445429913820368544856557016681677184942823460483297633030173211034266044568867719854084503384041027389958820910530434663010310413223434522249986787852437675859377254357078711478379162783696831099823642342362059379934565823414035109070523808000515858279974302145176008176079987802597996832783611365624319460866191697705748394946800360846294494084517957537013109803141519578300268252802926145917597985873604937187255665352511587736089659589499623110680459380608123100433294115402570949001265039545140451853684950282285721811068098348371715688347726706839263715259343098380201986024062691561664857068491543698052497693443447442024739174534222694652751136269672046622278257047453736516517377464379482871793406409816490405781786378349990370818539762770162172170170054969866418642313205996167809878378017100760769086874544038869798687390257808460858127058570160093328282448286561881183130173968649211524837069798032951416220297456035604774217704735907167519145040916544982577091423305094676795349181699934716586856833935739445331900858166745444274570661798054668742862813744721822630812869181388331363330890352116098509974443201792479725570773726462842669592358338847919648696312268707086325633624019977281352827124244752566663269369623981512249461254007705159752319041416098184019423201576643672833681618466592588753647810182991778272392457564026936023997023832225995104273114336508422398549185066491067513504611706660395832985903548247356506022417174797631690593777218710861049445643504253913326711938077818006992679206186084525146102670671670153708355360907206110810035655419606748141703228165194094683191740057560219829432215380316631967491561722387800103399706497064648380640515675078345257313761521739040505340363044890946988943360336725154103454808603245137061302277299028366201996961727683227977533106662348883093853691981353744718170545987581307492401162504602846961554622770323106651627023836136989185716716664549098107642005130340177916151697321096905331086205946224913298349656269256650683383307538448353542038969109524017512914746212817983502070326367948451077744760234519018042955192874891644780844790873591865330365458582071867891292560031865408617137517443610410396392812821494396921381840994225789238781196969475610725858670173785201050483149648643718519938566735000516200362321912428101167651357796424317184984691772603666549122458905677776168187875320632710032576944156815129325442410762402392746210032089656911475472252502074488868997376893540699221164515985699911589556409204360011100568869393241534398260023659826242110941532918822866284431653935353277789865053378065199315277285503950879118033411563734990026560042109258006622069112972929170319334860223114686264734968913950297935516945116129670296586524454290162451682420304365277022208337893491776587166353346327308041401955307623142424610182766673677122288529690778195362297197630264781484393402331673675949447380057669623380845090675007852067504708437462659032578485421458680867454179569477339410912148539297089703685812776374672181274346719356177156158014775542888152657377078012677841204060869905308039500068528784656650055439184459191711065213674877470697569914225337792863575426267025194708079409381090735867507913419059096355145721430159802406509741437964674431954020600124412917174245905794457640149700925250479422019285555535575456156072780843505048345350067793292009758291294324462397345591635251557940206604097948695307440069492707024911108901074594109576691182116506645108234363141355088112367320019348681491035215349715582262192341587255425310879602488130077402467208452476658987284234969545358016733662764704284684316734692749557020647856101720672872522429537664878475349478478061445598510998845132600060762917007347244939273195622849340782630649018784013492684940663891242295339285958131740706004651215356256188641974113605237054057876720240772658659834487101852493642870650171527319796070172167500531870043830690780268617645086589230885239469727464328663842484014691006680323842483778136036190042146120483516091305197007514403558271796763789999844858144962162776889759858144373914609033326843616712113207823641128733473330003007946940448933577242440314512914811360447918314693074632587297421350970941545125267434430664023023447506404192781044557814702419775827268202435870957335542904432816454627959826586722506834472588364737502476879026600229132653572201578548311994982486266831595987216649933856577457896577831679285319900673314065779494647706965577981594346292283238113858150980641275902927919269362113793880487733770055259975619073048589302871187971668135410667688857953870851613636695185684284882946639111398338219481889314742016225042734920918110980487108503411727232068399514905187371332657599069717248526408476082485498738409376324370856948766617216604500173370710213137087739631528443958179803651711658874661523151377727794861910203755161757817830698160293718835139100560761299768678292549390350418383430665857637987485951044977957202543246615196630458968310779136764358528607893139676082142833335792969392612682384392317022859133810833571338204454633086132146165234809681983349940453719238033811823728972869055054335207279497675995437224034369165146314923395616752867050439373605309740199910431118913913331763581538597778571680649104150942384396747632385136154702802843513691177388347764247505311729414140235815036767444990277076259543871502132469504952253834804460791988584795643827734070657749095930032808692372802476953759341509125637869251412537552912584714416178733309731920084141216007842245141169273314023108278543605666790472247074315096619823460255685200285009506238016299324059620356134982714758474588349629308154002922190978336992445570119999727977423437114160636838845214487442476545159433130089643261512865103663130040734656518390663633339371616790754826382523163776807315235278382603198411516422928510342293611552213738738269878622781173422464425458859717084662305403801514389036421517728463856390168703807790528945312562999834221727886947767923043723042886960156170674297944303101866330469321719155689972323092004534175890384536962555722690204878815497118902940195516535564808995207517779518725742954365025834023321143307344005721557981126222333898016563937996215335511058088137857170070605196390173198187380111330686050814633284904118325740342929887288043855601951409871103782056358122924072643442528898983123949657028248258942359693322348021379209164784789916404042009687712299282090642493569246968296914985835958835734308947697725664604368940437529447875268679284329972828404330369063817922972552196287221568719006045489450360006701412283237338980422221424237959403132189219810146520642043767953122612686821663916714288485357480317380545200167871388888750201709811896625289750507536106999593682347538222627644025823786270211644257728561800505677726774875607800901353474636897714431153305235836162826614328857330814726568932355620712741991213535771723155842215917221586216917096625150410728466455788938807225692309452710776217778891283062284530423608883634234495032027868376952206777198094649300377693547376239483231914273524594749521184287100741115872453228691453210283222038685268993736123060284559847004823972444520204864399628549471726001356699849141376011505141464582033096199838783835651082745498091148429038226381299975143615331771421618283650069102586784099892666276074909955089218615372810266041074110028834868483332901803745452293288086366559176420479983317616666855015682700684905854800548347721969858445992671682615132874883107969368634104956014368037221281130010695758641250425643757108228332549922657182732190735209181865899960830544091498099095639945025697618359494728298158924680039849523247469285777181342149346719023938760976451951620659239286657504217127418175263474609874846271964943533442214237234747369808154349191906019431018031980691207221068550479751846733661991327158336103443828415471587936401590505867475924195465542555520385625335446129664419185297573014084982712988594936788670938454708214074637768137693868642863339966396861153029937717340070465857960565468145591877375548183014298631777423541159388255332380679818904751810061054604535484009829856134268591223718426436506309662583006848300728136816883736284414873979180931343201114037399749323135285462390328513643110694507841129735331047019123533931892271787667038246571704141758250504767575646412091662854692114845675664196393479381031967654119125997266070757179766597273691242522194411312683182368707522664866515538677936282048461474547284100124923547423657735421849488673754883457494282363385872659725032848101521324169078549713959684946422815856267640426044498720924211924694631122444998412708099165618425831645781902496842657133214659818422588942401275943314683313247087037059063898266010247000048801198145852163205187718368728278150033182171495169811896851097285390179187261666546523605213251318580790876355554853175603414708649056286196132074468102213522518141252515521468109688037322071287155325681382847709405020036590483086629104050041483186610223178437219138555819441408859048860504570285863077219225781396075793485734506983243148412041431031610197464233586462345550981976434423748798341323108870768493805504218753217394706518949739031103473027882715601910436494690152957739700128238523104959705462799401868692451784868111824950001615151070241162750027458436953871962157342602233177259321742972962119076822413721196225041266056055480878288986297595100844775870252236114834606239906375155878294456786099819385917809600239238929510262514492962704712496200587516787620680610124605790083633857273578603124265169482112442658924418837708650112127379021966321908211639645248770884699924440925773302894466839528010030046335930265132673498042126956528547914358274615823384973277241418633867868000147506290261202581275314013585928918798410605218610272710578603259607774123182738219842220276360033321094855635649301128549550095647005724058853163453490640840170892208178226153843960333426156999624499038415679781034662481462743918977823503549779630618716460201864274799391221788167024831628749284835209594358918442466050099242566719834358019099641495682077747122589483650236154609311940248567678483130808396181318668096866400576952397097837087765990464904366903403985345063927601783616015299614696195713330873772722988714950252331067115813462929137428288522752574289591114390457800977741013137975673197982681534887057615089299584486479415773488042492193124018236725423244997988829159837632386885674229326506464935110867626081564880722379882806705261051830208765751611014402600195860282187221535237147588420940026182157308176483842110442008415443008426275279814029990066430062925734137591146284351756476777248360813200226561360445862608928575395208099464198608824248148058112795995603729553269324898413940896339361550727360722771740318578939716892866643344441344309393353472913417292700876313791416764895329616921353080396246879987956990852006295918773040318064274037129323623916025817632212131116136549512989753351321546603386147544850064547096458281185790786694105023350767294110314834752617743071373465042599498644337492438800722363143641232870638948814337162967737931073002420635280117268061002220872458085389262194314229141913983486646862384745892421086148166130114627007161553261866348169955602063823832042168658826473739660280786960383888412495741205009004809162461915039355438833268900682757237447090144009077751867880283533714287575729409485631488893972423507479565451863074022061335747558649489971215131199364223622591584774159601823188800795981936626988309704829698921718866065220000058864541481081526344387395246960981892070094105371526914375562328462437426234422371963012994965677966565301380219669389691725538040756718694952714081511808977411916566069674615816138899539677182766452499418919712737195766906435614179371741678912405715838049141313014676050063694491953079787127952230365009943136421610369267331382283430527477801818769698335905939676721243504042119506329858877441695046904039264172046442431822668427830515695109535062300747420077239520882379420990700586868445793061983890786328292786011325282645702777373568509095222143705595617367944143130747553316163235157561485150014211930851827898223565863487660024997794860819346097993382242692458976965309618486561876904018459358238714144863180117568938027010503102911984507956484439282976319687087999574351491789015909282823010000375158184363192468759294403289416255468782098906574517761457393475707528894667636248481052379228475719408219257492547244204329819335486334559110371373231708477213104765232890276538920194509232440920029642057939902728159292289129983855038827173642656080101669924010821165988338025875504564227451729387393957170629354141553664724476792090463568332973612706940962602042914009027028456791690191757536468789134340182248782720139252951231866080956713289815424071918385431544762085029125374727978338425814663904764955553614711013488847277729043471684146134423548113501018744823755025635761785276211005358832843412260156316226505026363202686258292295853439206644757623644469826100054442116184173052317090910537354166084453123162017449612158058197622640746381127541705767392707188506147647835500379517370942774321972207504724719531753043066047400670337573813994839929771245092716663702328220321004042117232966696634223038730649192983010682115877507379453187728811669026674352147640300378001826170861643608579329965271088135620951204624171286124109040889745159579731459903680059464842198167055934012297603578101487398819070100857085992685485989539379519390461736558123640069148643260526612422761233808084117512886653102089217525160925106376539107384001704939311588034663783218727031317572885976182906271039484649094561349009538608220387921889367970088149053886991655547417914369512543968095606371635555117517678663833190842341193033331732618804287382698260522025002819105705384438570638265911830729985257365423544165944342755392407776396452514073618875692960438912176282229625503402398255141458554021811004057271690466266570782745066791401531089825419107935578648306327541643141098514026659542674023774897049042862977883291679871522662105108414023666278013782769091083243923372380663074241575175176239252550520797431857945241193915264001108857070256277572843969932243332223817302632693145195025559057072841641835701396879897237994047735465425170739361985389489244634511648002619244490939486473801864394434485771717802982605089309581917248972787900784652790530301726166447735286350861808038206522879943415028077983756165546582513711488279692186926927811195947357655769427463998301901129923429205741996800695199760628828710888011334550212111275272390631176496289183709559539567086414297729578918584453100379561787632222489361226438207869092491140549040499562700025496023468480121090880036458435446669546065807855736362293837387828241896628593748459922983208263074238151715638892276550458981335022269106053001616421474231218403300787205231887133455364048430386135182947194876629618456870057656988200216627633247542946730964694463166651119312739241585064581813375647840338055402472368411883639413763580203851213553977908054289303215252371324172601575195268637333325815592323833829692945977323320235756549479130319235238466865825233105001096862229804834709712147884202291018749577417114680805334262106987044307290053919387492456198232252702330723729024964811406275793566275290258186472527670492522760562918426929635655386976750895767203434305105228393155851787634410972428243292995889870120529752758915980300193888725722910762440722122671236462655968105357846856352495931329785030590822324769365284566402411401201016859920495739573801623741524465132435013664239772347668291522340522849738278356243749803797950339938554790825192114779463927463393752059040926021045780684927283515157303260929554026540279169895682181244871096342306237244972150871549986313993073080899024179556201235444635465611818729896154039669139260714423999818596902207566067056096776812871876110487751993113466422705210601451966160821038425530524507075203128901554681854308519123156598549809517323078028552375625425866810910939018747470175605892726573507343971986996220680617425291386770969424175584149853835797526328697884926750555670284482463095725773684738037815881533037171458788471480403232075346175173638205314999265273847178787819418331743429871111884787182632285446810489359605516453457214405918858739291211863346328455712984172936413935319563040643687913151499194858982144912954742963935742228988685147383525238316823220468738343257073382755184519999613083461287738243233153928576220452594925294799008592219335242938626743434143459282765889121968187952242114419797792951605625767762812295245938341751172376092131990886437873903562296960882809346297797799919381491181953905986410004554785256775473749024250370897353360513028830188798060596746858772598699667425489635892249473827590854735833640011423229358643244826312134248116313246880707717551626347368746607048788856097984539682904510429719521341330013191726289505752311396049534250929188027414424558050469187588015278884392826049384328519711552248549893900688959458258319810452069813992118110302492158325187991208218491237556920382253868274652903960034965564564381286142361079047447507648316041326072357829462522232139361498079903971906905541475913999309225559401250462297534861152409923280991521288015587853244217058930373438830960142212872956451048889206427491659681418505237639139139234954440496407629325596568694550935729660473117529526526268344855156448245384020426065069034295251501235720891780472406120680882060454094956522477376956598054631981601176067005383935274026944693125014826724266374605408457564233759292679308815466917486624983692961477674924052796805042188212855172117177011189723267074666728682762882021242307003190799549566955921586903272094174376390270535425155377267841477464131051721591965959332919399266686446006340520664556197766329355875940598358641477107816565048700880432627248603907017812977148292209150092043868829323686755199163101240809399106301117085638134754618570133127138796961111475866133029325513841189078838744956524581545288052493451985667466848710433618996413636325917349434582949772721235090020142331011675250875310560740968571507619952214097652305661497247774896665680456475180623290808228550623306853972103909913901685086297684005203151555378282156896520047472268301723852195726132850234943176685002484228619541127793303977894482668052184641722480936692618238171400823693776788411862195198669120338022127931588348570670884835720340656072104559554173974697712880260244622228009622233097551650222205920572199430278970018829118525720710193192587817859213913164600440600641549004172514105938571183141103002626316865728670633543116662753071229425688222015793066127695602581363155203526949238896974765011174888493879100409256625782519245363376439943297001533901802150790599375535492587489931500864039016495461218742619229910583916705101419410148907778197032056784053039921761262038539260790232662195613295279812556204600932714907249959373769274086718863532329635411738900950306222033981404637163927908106153708562726652926063984545972195298287922494081529835287205491244620088256797972727383084771364960636846485893076839326480030354377934754077296807909275440017685007710193376873370675820215174828148848153503203463290916714023377860768374782187621218948499580407703650358880276001358263689171271864186408135581675849659345425607215261791192100537042030195799157081441974961929042199268204238393204943609150921613980703863816634714337060671440530254964885541375055141802551754315467534977858727690954114290627624782908751759882916444708464651430785326814172688227436305864880155026713021093006961776996754347236742401058796865245060090774864059145003924806386749722503592388946648637234619833908297626484164712642312169337708627262353884721121384715620353771289744501289210380439677816697758348195837452824877711124254765647356802911079078699946034855322662339212636226511698382670383267069994514428017007151785622438312219609166416255451397428005542324401764799662478970624289765120293228849628479208825654226070559781694459886110321249951565640667311728399980688285417039042395990819633288094602387486223135215733331992232936862102266033646133106602900396960338802605608388956180720914279419688713944292708241182037406192138716712833265728239904574630162828531531139444078821747365015149689522702653226913573212632560314843620953856920608772456549326635779353939024542490673252910864274718472033158664411348315858806510650704414312345629886534717063027405529310646477676170332132807372297890569453670130381131458784791596842929460425761364794218591799018227386102853562645377203598444692567094880693321464793224012815534390796835872484504021683677472692300652348751230804919914436872602816525492610312656494422756160563208403419799007500446355473564816277823062154738581713586716195776287811001123254410803482298469167469198629978097672216063956890889038216258878845944412658200902967567374256686517103357023641824368700932229620492674133919047930953184853642824931584320047031579100212665453617682858816981246501656872732235828734845659658693668446800003544103823590000192807997315324222979935920068569645245250067676773063908193465635438694805082825766507695499601382776269900186576097089964071327166940734467844040867708876614639381261884059648393320211357285513785697481607906513732130681746887779262458194983619600700927397958316764697500116892002535116485983648687900438751438774378001259036639915698052455757248862862914570421714566806067371209122966232416592946983465951515690089263977668630865341698354333629302994963511082612643697088052574063556550559948806121750543237601389365717539293119989571999420982026801873601363396729782491986959407833147746631186464167896239314829799150625663183169700437628132830787410383106996070594958793962182261870471706887499002281921271686848552068216154243927337938463213403020195871942467596728199398822805150532268884664105770903049253621271521866175280849837292322631097659361616208674015211826961601331989112290092427486264382317269702776576142231895273271026788471655740676758289162077038678157428358705160802607870528921875048635023156428579761565052314043430387234183978447776809244009920080704507681155960594203687636213577784802111472735686028388902889320487257217188088375937390825179255580243514751148355418653440963776174781932327580380848277157774191721809160734088967441613192469174564340297442663889580518564570807349167716138501415674350783468896025254737330050852918323150129562440977238577648992554797999294201732127387488691490210440606639581955389546116875286250118103058334259121120397010415646846936102412640508892880608950211899218781656262371890412086523279788409712973710521063458716600792219274214369885227341132394423811026304023250926543672765074843665213744812978518831235454194077810143430231646588050812716025846269773611404422367462597253673215932111536641515744058527351244866957609658066331809881775889710508437993278535588030285674401128186920009581737304211891075570252964606261711902637142551890004470550299880475731566910055572975547353028423103476962836499335549190954161086690649095476472825209658944988336510701504143542994326100396656526770977007493515227369441303597113990564421103665572482272998161746223348363954724167586182007220636470615232114436981419041334177138375549970231017455918846308374071342829420090891596900189096312344023701138581016397083465917713185455726726052145361031359094220556578689696414895125157391023135774557206530245065394256375274788240255092870926568024769318205832676097463881710447853263562332778775832394620826460319022942291385724044895783664967067458007338290970279152813965037410168203530583962876681586808119960504096020479262085473485173216975877854601787858031453411378753857754497345919627339790970908300125845959389987786917518404719359002501840969078318275618856138352352953459002079879922087901329748870205986236851552380811855754853127162703600411067100358757166606182952051864993126743574805736104324507173038258427792024191077321794562975883145325917666862337665963209027898290552365893734681655017977911700767152610844637344101367403218195872176497523193128187380409011061387835291401149105429017349102087026446782074246258162966114883074704925726813639794978649921639378336514154539222282709798448147509793827498253922967805154288901549827424932806006517637398378018881193366643177846393855410089951708754601326672823924640220939029029930382292427415121597031862336924688958274239234348442934628725242065253321875258419414185786322348296786706978953963832283120456616017188236208953577216985539642110251144338910287511397619594980073916156332400099131035803288353844818211910977943036789719016189496592643506790095131873014172949906552958804318484574836814309964373050454229375533223533972486709001540318074213953657961880267797257684336788055875300718996740106792497806471072527098578867650111612396388956104200066378057851389605451155565053896189585705703732615819338264613953865467704965272073683908620732726916412806238017489513711018262356956300644238586694068949702532654921804229631688615798102072135622346008213748872016792474127362877151770850070616663352113799666307821996697108790690464083992774115599123971427982429429484045195675983525619713041472982726808190570968523581952408410567970578377126478089535926215773568997452425951896928903284859790215620921095169839045794293596577602042687256040650743539097637791777358693960908550277391998021954797653553707699841728822013543480746379952010961176386355845077489251787850021967265163190546371116621082095777676632812450181847963753693974106851827869880014969175545388514345132855375337705523586654607486459036350644959638540008777425900403844359810361972959782728470348575675634505459624859739331283780472899926009944261929309672895709559636061207279045087894603305258936961479646856039867244606021572654001798533425206698283708802248107453982608138155578063610533148126826984779753677053728191925953874109420228759021659658232804458495531572673046296176214373338931270440851841943439651301482331147334638938509244075838559874271329862968121647659169477367883206783200213767861381576187778439744225020753622543141908748869769734297988686695448121761725688917681076596687128401425708446346451989424329107500880928500865277498994065286343089532905808888171182701530652434363616611345114345127944081293269706217756094265006339765207482760312685255471863605843608133604939063202161868494305638994615498335741465850335048549489239425309452357982000093815113218479111066292509297136637967129744509843906246397364780083699741152820741206942799080003692169329040336152888761200005859869763219477117088637562411764865740790934845701697056983195748573193374060127759988958776006878924357217197581191286188731270717003745448948473889769571256662559973188263227544125241517694791268848532332710358458935639108912815042212726409716624468367896688379617481550675552106683433474147806497251731109151249075976209822558214668810658183532178945589579373992052472952251544798722242888528948187105882258685211011789552263395291453918834046587826939067858407961966784031679587779171292276314193052388398820200848256322231971834842175585916629719142909757095941658848864683739272067359226124276096738728110222759216703989383024949346312973463297510593491592855004338923617988317580025858447378653622693226668377612426466868467182815412696290060507556189719102342310843012020650702670242899991966702750024464794114091016306174518833852135404702951098588671826257119734666897674269509312797002073916655688719664264260583505464294317838629589874976187361613999060940959252944758077200165878530378362700452831558296999538514488994094942851807250446480048218090964217565034885635513782474946808502398544693922760442526313409198368864884887930037634270368918669496320003653506361213216219869664705697714694211377620910189859783934980515296624403467190822721782537100782351080872092559509322155984428027314050235063178582402367980335472490966850292559532970875233076608406667573396017211528901530065118150710740659255556345020779357053685955714298548112795078039386428346557207027309700476347833994480612550503603231231738709569521431337154702685243776254922360139048674294954267823262456015390979144173968863619965268018621394006475895126849948463657485533260995960174438671567130594624485614155582109693408716200142130130188631410300588579123344803977593822824111338295961155652873590942795495340338912020343018739718794672331546147684391485682014951461151044001941009352227955664140152505294371872558053614339650881831045412691228210947585390337197930954356496292668227810165852026170902943922856073118884096509676481061922547845965966906987195204139210530411564594609816535034617910642490629056366090124263024687603324127426997861329924388450195410772157579056618186519993211046534943500254049587885810702916245768015239346268632812552632548540898861399840874331923284938891600370361777490279476876044286026147463243671549726950838844083270994218959663696364524836377916054512535247295727078287935828632199844888252720544522487722368811252913536341697560819770589774961150693039496744617894428196543428454970516637256485121056312244526685474973600823529099388631826255795520887283835670230692786409994790102811943073927297836730576256988682814659104853872681870084747339703511993677274290910927110880818021942259940421044687013778775063582076297008411974212193373327676431043693211805501610347763766314272018127893211740075690382748939306182127267763097504062988383603326692145229231495451822499052861875281750702574641980723853621635439699530612695945321718325156634975709171535110044298470482243196008238443614310679370713902212744318964562509485910635595873081832332181227365567794990794149678887509507648548186421402050868418172827715145365285014225431604720978491419123483034397951783753567686352444203230696350180653929880869651863768804344550298459606746769042242269138142381944673674400584608831203779087394104666304141637840447299702282740057418117994677134110601714476599725486184769989443045061189864208578186161186804935744721015645749432270878296487811021938593907577691638834946176299535401203908310604842849639138316135245896607824822958057096176116253348688464326392969207987832822045653315027686785260523160380975654046797273394430984084181951504466499275073877969688955683412115337252039398847079363092718642587059287959138336061313907163738717540341312267101180091749426566260777520765647487182067546974586788554836897766880437503914266492945521096987787965549866885141742906457972107966630797730667252811702277705828474049838680261614848866172182012627694059285621087047534206667087433939088623450191260245513802065653764813355984934716620071308208586307577758087058414533812552013021075936277637996440001927873156620718798495065851633812631836604237196174118417029227624850657040471089132696450252266127701685144271402560418934881777576122716302288698151269493138271189443297344519552035933609741219972060616236232413693097299726482429483560858058732272914450859819789621929792884997046515634706892709247066538882885698265136046777204770625216613193966671895829281664485630273923291415073682657709304196837545714080010433431554069288057175185872700013358999430855776670595794438157301492142814606612679329708177302561187021766133140196179173428126436738823673654905930179664445707932795580773129294241763945609872970757242538582446481554517316849613522005158667053733572042947294603167863027582220722523005498319231069693231066752764261653300492263755336669079349818631125407595190930865294349562592884810132516436020362031528345709627955383000904682692912332826445514147406448576917161042722369500242709779409964607670672427650421851616778617221742329426386247328675606873915827556166722607907985718303181978246472283748584805935326667183434599566749010408514317496202241409796038769347814268704449146578242276799783660091622142871066814225382827240779239361716681828369046374305773826200569070301199277519986864401985150365863970978165276003065655862966086984149897415931091552213223287262958994873333454744594519045545686873208124748734491001375350563183974485189353019171813734966893942894976239274219616648694371257813093015772071361287064445883000585267856879179483864899828803420682481035535240686094534718703629132531669151810755406561961845805795108002190121367368209651206978834077250586713036899768058676490962920464588003932715181755104828694916826098407281589258042793403401439109949353643787861352162453324639937717824509866938375577957131478394605872285666787249851551714036514878837647503474047731956854742462494418390392250249726756936473278876203629439345750215538391668289109467124602341469941296266695990847489855646398522953820292319514104148372376989121719295448345069625067793708808231866678412048532986604192426904926711322809761731441172805956475593771441473822183432383181669810202187715543651145728626800861322466835509433291632924832519822266782266837857536420911764383430862836358106167185003355324388821263272195899768691105547616708928235603740925449677374584975575447638472809542113973682577328744919219837485239709437829702875760805560591394140447579692834810112503470488229370385308743268250861586861219767659362213577206140169067523329569311696362301013121502694368137495481652148561434898867067084504750421760295570099748818190870745705420004530904479949243308811055947455964558070523649942873246935000006692758705234963693294182814932917321746499344571659666141862992819028964013621073795857927105057449826185545608240200471250713639941114708877591060672157573956301922311376215286439703223858193538557596108620500556555790749234315007585203526980093628918024740492260490867309388389081613686921407769475019270983498059387608932698519284332194073368634549530743618274571018620959507748675721176936190704244794606152895590256276956921933715478225561871410651572352293081137207877923734717082403482460365555635838659792791700361305301703750356055353867481551710392664608961500423811406197882908386054104430577449353993932756559838141904739090467508983005231724280294539461428867349774668248715029439433017844325494239087847840993438290659092525238299330642408687923683229738965320368556544820575854692426842374586115553180336628478743450758621746366064481662223814815504773728873244008494677258792516160933020186237953223652130942297676487623984302120984721203947058400240521732234824491828003426569560630651592869669022883183111970213044168050762729722745079135061387819660911992095840405763376543080879378546690345720356585497017914798728688861183245993609021586432671212224682766082029291221721113602123499903878180949579100946351595098600223669158514221140446991977333920253692048664598642257589028358842374376064969436036931662559325878432604173812044205018210363287950850898188848526689649448902639520224296757586151597532632224070931027356289424975305705954267812920156008845751848979290120967367993194336441318769619365036113205335577683169494599561957426648246927175839511682546432478960827051583719996536954828455409575936254710273533168395584514995911778405620969225466490877034100444607273409706985985694756940686829671781911958799375494412187701844785655879512825089718832818300567334136574315438360275803281214189626479060600109864025966472831956727090164953022570363806376749418677937807656921430801885299698829967083772239944877768150571147594247177721175814763398609267727947997376917060097751780266243759275246439483475164250975874219655499451828863295100241397394456630615093059468487170051370120484448157360639001822286425564398751386553851293829354144855448155528252646355745884279212207637753898069062979989618441982875522481157603646620987760414337626975036665727895063185580744733813101480992185488101310273729734868833251013489561155626032916071478040184791609836796454183062635016050558592389280317257811027615478330699562081078219463390670432756933230752295811412037380220901066525660557705713229905056255674722307035681704787595007387751881262833916572459137886734904303440611639474626795647448156384972548561300927856497236476528767805233383207183219790684342187373664990126302120569701813311683758216194010381177258172242709264695139271150529430812557103298671584488921209006783869815764392979038647572869791149333032093756823313385584309912643022368208271379575421374331415629660501668986531899573698788550961419298964924098906799400721920317109047920233095556765372015041075079618172221480024924163392570947754613313648539071123996261746036721368225893410003136163675937598589118120610427804913420706501475132128231387052830700439274770883124726123019198359656385369346999666627077071835020229156771323711207194353450537685613711385956103398320005285744401134976168901627647905179828805071160916417841828355439728179470934931824161604830111048043703091322902760305207053762656934400058270259007175340036489789047842893637874594807321310106549927484042750809131512769790766782036347660514511953628711004864843495373264091531528125054328246024617441276688359853163985391812460172786029059301507098123329490618281495448299385773856268901771848554166334377804306422229828001656774977203403665100996843672606614745514294063585670244929363693003507772590164905647347928916496217787148628681406688643170415337513203402210482219918423981501323442008447286341967842905928771488770591078932006177211100050947385591055303373538322148057636115243993337619062489041035163120597413771137239525997762479986343167946733570415582580462461194416629394445327199675095281024551597372163553339003929104112929203945169147901821018340747138932152041938818565406250529577500436228253293569050141259561113711176622817739081000544835814488345620789937089244837085836926206211282374031966109211880932466766628641469653120398139275559690645051018943640817199710949681608644257097778545140591879297904361798717649222809875502783165599949110205011011746189089209831978256240668629634368939290361884872376582108507378859064242894018598068963426180000343180436052318066254826263672174915599834867971609926254256695527463588768963551307139602099684033010030141140412323223317457732454921444533010395694002779660763308876282607089970764273381762848376002761903373790056285759142992408470139675222347709939549864586600371891939476067613409802093829542935244411913483634291670243407800264339149876325606361933728237202028654007050193190480721947434605093903780925088288311449879766280317149920485526762102039807165121349995148919428435709561377548660337609812902649199518908834101715249186696916162874022645732377639230167728193677372971073989468132273988748612978089578354716168986219188746161025527006756111729036846786515472115124698734245952304437648687295760846423397350871199283648335880109857905316646137253695739464605539600397612612961611003584124480006164828087436767836472921822434587129210528159282133796556688150855948995778561784775421196013642387195530315400575097477408239882006142338815576360086310013177528465750943517783318298705360812737744262704015401549879271689209580403933771459271041948086468143972898188596345964421585684755762707694374131393366924467881123979150466021384554559218942411741883721459332720896108013742711424664440033578844707507414635692986430078309757753471236715968500224944403710616851630428164642814840085146710411835127069000631869356030919921199457228008384516663170637576449503298433216996244757413090545513036072553606737675178859276847456344046686912757139234217689561220256639298315748479929404512479595620600216119056786571516351242931152679171595370660711118855146151771740633753070964351258802094688211997053902039578584737397951558497502225054143207952830200879656704924563931900650650024699766286485576561467874928883673399741372656431879289416872400074926180769415208220284918617747543329214985225322778477615518976004822937902495888061635239047732278948420824400589976293506407019045940720936612717483053250540416060908206717977135678357277899215171134646199378347425485616339576567721120343371191675328014133159013911457088212798308209841934212804308322755823689381825882868606348922861065537280229126386459347847331794779187525240425227117651513937535640868410579294076702818607244618387121020632493400051193177074619211675342468114528410176540512422006431420960019655121108329154217157300181730918548461086286508362610139225095522026949779351650581166954475085284263296497312829398012759878179083549740795288221004728402754228836043818424890113488220011782288753980566907562460306221065725891651121237025632214214518752934132933711563253764566215058927135990830612132879756515822068193156912066417161720358365277004379262886918802709526700217632566740503438453342783347299157877529780401051386417977824072903055842107905355954268410080436876925680604664807898777118562167116966683108148236825334345409227891516210179019714452996288072669102528168474342799894747431711743983748393057519997862677057251278168132687101805261348757446137435207448717641562446986305148841604085390997511811741473962852875278821666340820589158107836700898814164658797416305949811056138196621780671389085139437604268660900665727219149491474233448934972124151520261050309645459315410549105276525219244052922047778870510057861588854872408740196564784899573545532762829964749656011316894509697777239583111238258507570998452708842602752385122902449848220821772964653296727528275056050287840103479320219219916105370539404116435200586419653437185496122469308869463267893662014113255360396418994470251784527680201498073098467088524809978106593353989825116141090166495427565247082226523402148199997174686229629812649534381863006997519402019611518868306506363837818538532551709179072087348765962179345009266134353166764805538008008804788831954806734437840073046221873593678822950525272538163804350235814396640446043291196673867331895073737065478509900914926104434554183880255468382936546597334227925238467228464602937710157482819660239248801632482954798049557681170277119558681733717728731980770079992901800829702118731010861670138282471763176300400474384664969422998122164606690970718070902496106449678067792005043322172627854575092370016100338345151823121189786103897864010783178872288094779167833655597635449713441244410778166113186110156983428884228606017488086968491581269192480698227606287120018344255165008705049008608651059226263667700685717825524366036651401084762236819480441771376191658083355235404183856612248717324651127644654559497042517518761541362062166989015483672379673464213659652906775946488910043714597892215192914666227440839492816416175756768825836746228239920144041081451315173163042590190800642459077350409063079882605291817786393723256857863862594670035085601454530872740251567811642544179254211136073409016397500561260719724902093846266075025899651275728638078928916143765334904549259291610442680904732626552528515358055897994400373975463741523886524357899410434658521894799056113289584590725301444931284418263811028067381522857523726307541073075857649766893791570763733555028112770737097626359745980575797565647016676929385703256802314073371917985460194098835911809209368686220450907848811258287594369945986883664827593258292639324933277525276168301307563331803960612167168660686168554019521463032310437499377298095393892394646217445928045889376181098753793529653172847252674454374606897018673667176179600725633647027693765193182120493675490830071013804367356933913001860318806710041859979433333344565109174010872537758887715278792164691897364171260827752388467655576321238930839830519229993680807462113340991974958131341724683618050726983479993111198648105031837485333011072235016642361505287911790621396262466435184337765589723765938651559956233045877282247824886775844918318779636574619718781510872207559827731744873321883260164408851403936815797726642940537941257035683205068707610015310985096226084651665976872328649412595822334920927562267007611639019340175217234239154193962415416303336334974598881040841757506290407680164062459540954830277976986396307240451711685780585242630973374242045120590051922264570514418367936487385507874012312879255450367362916449313713996650201992348006904525333570923657115504577302800482134672973327659181274639159251905279153007013446657837653335695711209204014060624099972136058863996429776527334644569762084108367841918454463130477299608118213377025566952408035554879365260425122640767105122008992945974453893923612452802613972051642951049784098533052615757531122654681449991574115269442055004990689455886708702372111516700106462568040758476444973950618871330925498610017436048420045875742947719111987177997211380352625447423428026132052782586153260294654273776830105433075103785047109742406136858805771965516754870464631603122374434084764410026167598227090321686751123423482631440335378444746322081676610179315776516209423348474221607789878592136999205984864702675762232244655819018045619887860845434299740291896763163147940564747344787090405939596482212680250297907768326088476164751984833593267138602916193337709276677717284039077475287658149863829507593539982529466335486319373804539197148512245628522414406731996839538077199967722018649235487762330432531834188365580130798927471517480222212519463299803951496311141314646603729245587228745945500103445782242987498162149564776718069782022100535109232748711303393167857605179865337500938181626513884890161427223513243195826466047416734397072928186037787534358351226579556869521190098699431440493300361153386187883414500494939682132779124684761261774205986418589466539847924101023934446715536144657927608639903923434907867397524848897798968051720900574435032222151149533286067645864491872753270170150787952872280126228140427476890883931111744634188826981148959364173612135684749470671333651304198369011978881385922002423504924711798948200841600751358329167025112116266896264776060862954622100291281934806720653804582888230358283643087942190222212307469533000243339804548593404604446925547863970820953399530915194112502589670100813465255517664184811267620440448491631248435353914196157802948011444154136900607608986119117514400181521427810576922662188103988957121523890219790002309739362497982771686102927981409751894210351017513483216523802817264676655067290328193446431899519835871265899249539917953731080916579767045878046003657369296182720989896601256356997114762342683422401040399257073507084242582674008904688205804045545187787663809435892222816811569852364852865031553942633703287230696477160251179387268625098512284873994593992450637071961498904244632590391990561870732783443059109634887015620717692000703209671723137798266739687504605508846638032953549876048389302738993023487345552155522806004623086055089689641499279853062918456150848599030608400416007024729912387590791873095802964041578823672035924611104408952290544749432457682397120118293312329209697724195505337008095657354649342427238357027336366823800441002634958702078309003275270956347172356124076296220914509717691962582314449660431244826447218759273474404266066918867154273659603083650232479978704051959102841638481738744347629426572234169215350697062630005467149329464448058816523524363115479321370492322355764673725391136378897954687104030666181898107455185329028352306797611669006311855464580954690828056467002825188953506878120241532833659596235472922834725153436424050292485211889018038463275709269626686714793633359794469088820685974003189444671274661406319308250764824316780974936903340137326462841402268791602359380706895691170352933498864298682315809450670714474690416811848539133925205374944743311303499614924458263018273590323383230032626501005970475316168996219188974188365439431278866414493514923361127692604417388502514361435417481171594903130842251578195015410641108681175571173172339549831441902412038021589324026809983106439774532724042077127129346391595763182422595045229322595943437701347279802800544987329304108009434340356482544954704482065503093783046679365605995654060175518428948159900951881819693783900975082496932866965887804893844524935524613308390692526819611191807555250166921653359292061859470623572685603373794787376130199451005088616339291418851950522707878539722197271538552723465504813250778414300020300438948462420183404512476786747104131679202957449455959646494851386730209852824646393427553615310668936272834608011215866332714484300070492230663745324915726272126817632192649393171025598939125724147793040434676472799882856868567115165170138639364050915537895994792543566980682991441719737923487110199398593472581730732177948364895306469668984842959144413073552929950701247888326201394320319622650426376793957284017861743649740795627420642602433005583624935832607528367522680397214535200395970863092569264368995602130915463852170956786800928086737878116588879572183813312858192583691451504550510748458421895815229311102324156651285115272664517070216147510486551230169899771028986168814218527277186067422685302995408320972184031961733848352013992710370990393867796738096644159758103301220043803135545667397588637471832876269899575455090832759031562806487560690153213242652886873534862625427197951385707353700207399753014685839216777640932996744818302429696061491394698224576253880340351453217565553229140892282290016761900342026179800281626908837165620786242837764995281114888382866519557710496915152100054422165416089019546160447388007190168031224973139304360302579318660831247205004320160529697728334985064254285022421590192842684514991761459434098245810851822439315165722524785952896738655064087951630830154008090534813581808972502170426458457692029348994951582862695534388183412228235300152616069509508195251800104388222737032028575833076378715058982748309719377560451244910715021024394440719367771852886292502853258016496710873517185155397175980941991599688721499729467257765960625632478121647597405650671051165553643759424095399620307401934247213637912211255582581910174934626748858563628033243253624896550429062669365728097358861008175382814853117374457949460732770110778562948872191001524049205512896201845097048664176782044507341214394889116927945999639747468043745188232897773875405650054142734305914602452253629715678789566767779798729454733321545945887313564139248487735260816404255949552186169608144307562138869766989133507614211768256771760875381954463616270552339658187357683993702833595152369434715323658014083186842147911643074577972567471626748512711679790630164541548220521374900941922776604923654644244298362844102571772914686321395917395721725579206068626078564192475044748762572814908303272746676094989315694177585263713872767294137095588188906816000971103401980829564631191371613356725088408108290192457388192565530319394307673322338157320455787615376441738684150939710081858828989805765469201720713318899299119916535828142994162157058912438713167314415862066530616842593326328902302274723861941405240979776294517934965491191535797496740492015401492369353830926412917453393521454120009937000148871874826211127861654625364282904917944154569759086305414720155421941960838916043233187586422775955528523680781897382021417146081203062242702938884648641765305125961441897304717383228112272601087608982652393462507724429404326719110352502363811197010477290909645343388837600032392458761749459835824287437034347480101368595750559338831085149583462760644615098316323977241601187600661679447470277265578226282164243561615000412341796673122573923063974451111001832760787020837845389717946973332053166551654700099154244578529716129505856618527593543630152936394819127045597167664863298810379175857875653002797466374751963618244731012218666531674236561932867589756761104380667024090345917957548042712268204695825623187290036802460328273590817278390403437873586127749869929925232638801358697033283172329293845887330012394607534725817010381895883710351907390790265965477119009063502548098469663144998233625314849921183499203247093180734508232692014112471463404698379291697547157769717056055345484466612890426499327139398258349263708384700176209636074274554587704835119101866268171123147844164205156759372393983427091556983748521452284381750288939467352611355777201416034333571821633859352535465308402186277261292925353941099300049550539639904799925427224164049298827712460909909334003436850627408558414506842675164144710996993370381066678768504784734999085512275651269501084849145293900935086869603983471098309640053825104800847805833432451626762548746321416525154469925653254757433635191257556544342626552753627413950998540034334633895207655824316987608376628030198810374564755473478080283173001133477843466818264034563030738467758749083395267187376275517495717085639496597499797374887073581668735554040681728500013550449107137897286901535571301530224610072974463890114929840467093807950652244152200146770582391412303952344105554915685838279538984715578601519775423303314552212870192916167350820259169997324256464497320189032562977593826120223510399764583693525090553231449990513627229448092971760919343432409335135672284841567698843706857146158088574135734903667299227209530622542787279292427822303677922835645725319717860360734968558609218610749402401159759396455216635183780108135719689397201631945558227817997977621304068227980075570374262612383989708829780666061888733447757091692260959430451032833832918540181566771954042136598341744496821279442262177135278949827029015377842214204891717405554759703477070556267186059730342634943860274167907558955661458733425284212397938492444745601431352369745040571854288013969887102994855796041856891655475979883075512187279702702537830137198721262712469514850473530850411683043109719387603425048656381049473660529634350224876215866885484765799629029570000404995588648507777426758472376865290879935858587785639821822161348500799410497163317267567884993228767030207331384198944682222977612635750065976244725209984835545314993331061415627893940053221384409417962922826580790742229739024655577613020139322594973593690765122606651377353637728678349503664493342068311738079108030467539277772260670955096899505016893407711218525156696971242263584982615059298534228851249045855183021511883060100423438363461530130869629667065805815175472683248391488996622458067259867039758291600416807483011976702055644300127325571701601328014471267635819319218907894634386869499241934041297780505057995967510430495878860577533387089275809610486183449186342892376938266355534805149378740412431312729783071467514361079983613378836022559587546362992043522882335599895210596003058078984389729219866528106960749441803527750802204534600501249986840379811238364943694549238659330261403229435989513392259434918801209472319556305672298244916645489095711901505717814027569408705628910289955049586982738310787158760564041152146667547967471425015209406485365236580694506587248480550463644690900853948427299318549087472275442235258893100822296848821056769288080069733356357463500731082967433431396021806945726895359706600627220007063648664791291174280757151616100509068716025823047091035933951929458431395021875974284134454371995649350915154738704227345119311382616725379971420882496455328304711000392635190682534982451190323880130595020019022193968185205928949206774461951216487833795884228405786390035919369897011472959027560246251743428714731509646699222165110839059089360688506181118189073116051257377972481081626289504996496966068343622574735937977527806392826394108515380125288029004274096888487470076256666531179723469954402839495424841059988341914250144790365126087778223047866300399051435564584080253630435211767672806975113621178508853089463920440831027065677361548118132104464847201774539124621536960888425753615789008917091721544410388025855451906195027258267849080795574564014532637932918894180945205120506425679731898653796259608327075774336799816682810034267813339774101820181512575617252474615851204630673182118978255823369337755209001644379695121034926198944021512615753942647865579114821016457194391035425676801731552769603034755681462616706701280190415701913882740038192039732818937633651235153779224560104550250298028629226395609719140044449865970012725964006894950084414733066464677643852545287384006661715169815929590145593977162254909498165640047318878130866513805808643976416862464182638106086620950312561167206160255604797061613066364576149687477460271200328980328849026842491782909416981629504595023675223977291294266677236915865637157710346302027745595723174204109334117799922933944813347294477065221403843192325338774256175178347942201451155431763883766906538876566113696238039766557298916747975535637119039685177236898992695001614340805528114120812408689836510036437852601786036218464220211143164129970812643698687412789803232896721382018273502779704127141162856856729554923534152129305187441779046332465496290051468620151558527294064548112401525142593170036021201367332280848237137169252887492170983264326396793295882084721723876220972607315695062062259458326658079494257854261562528825967795086007175632435265464877087158130591671269301892989106438105456069399838669907520405516911885752022577210197197072751075295599191621775557650812422898229488540374042519827927264940975829838237870351401380137178321862326646200196040337779612465247592420787050710946467376329641871967797652454206211674664869706872574404679025257369834695567296734190351583230968306293178089908007017524579426385437038118191746895260784948448251180495853640835968472608585441869923380984418624295852944053022670295038068240589791786415697936149173923721973679076151075010443158129799995321875568454574344608809594068372480664368266151632774015728201470117981037093703448484960319812797367576972770961793240566675669668554528234285009715325713564162516678591361633115119420669867026716455112582945379131576785356471527024528569744460070111477144742445723102873400644044075803521296545641370039319798889769428338731370430454718201487334093305308404305897831264066759784523104574412399239880857522729564777378170781924545548246707792926168083804567967890930453164160052686500370523292792331195621745390407129409534575912854285212895609241901758136709391042828785039586325328064131993329856320006901959635412480400158364147769362692730929859459454977793058126736166208035404975252675933006992750045967015833243073929751545944815432667668580750576821894403970367690836308898020026148363879109212627703508982593956399642362686070468700010853075570844062760468710826746886804614206414481320961395550185482863764683693783542821051118985399482963264013791746597201037253210398017534147518460991526068149916498094132680241905397054680517944340615198192331719864803890586022465905591240076025956068321673679690131570922838192860675560052037526606806123957596203353142615359350223417003463130923185906626324291178722231068104563429334453221022577575955915089192243877492887493738321514246596520111961136026892827286726148854671288261255466946968874722176354456762636530369791322809306543094105470765082372649426653886297583127659115320044404278848969594890628957761033370205736349717862171857619838289675252998958719110591091772283516200215261409870092920881361384008764580890328465055000025739089042857654508167358728367081858072809728436826761086593000726062348815217432564704630743974486514974252460265682706711515251684145831012433583603597059437020464934637100562788743105380192517852367467366654889992526723840386102866001260532907041609737349514728710255216849691886333248535751474326507312209434910105574816302224941843008968749133669592047203753151896550702897795714641053114496344276041607493111389356818159442688594924104771610124086972705519268416059291694973034710545452730926590708415768192555314325645274149000832778422547588910328924360496656193680658326897972995675100295998574134897345388903091856559304395457593688729780598246467586244588690395374883693756284651364998174993857717366920488895868459613629289119613024295412293939329876059713866916029903948816163945414158307649134080766898626639973622143003344927731557204208969253098271939958724604691930558750562098893586461257257657986574185167893936154252879612306936452780767120587209906196514398239618764584315078357116764082783770224610849727317734992005365827058819827954460404633417109524703466502151187944584828862086119329190269802393097335391881577282478146643390052109810552282284119703012070247827927024522772616370609149792903016831866821025777226622767838589113686539506653922143345651571838238078865790404615827614019911073216277029659670833077246155727715906210117977674534537609298779003587891810074980544261480877064343427057924069502188747259503677279405989080066456177863379117884985542820350979185049793763917135499153681622942570137132813280126011974346419167412675387796257005673458338238165493457056778374085122007268275179906840935474382259298170878786500606872023651668681157846131629212632179511348339447778326242342792151048438555436910509432894142374978231083269410044764843215698268204214840611603560749831804140224226491994883220382668513340870559475732690998474282650445345721349682089232909353959627322042698859544068322267272973092768621741029464731656848802960082560442767762008787644158308192961938550026999543291595608754777788737446954311909332183743659406126667711090737209966224191499316706548281430330930193358523968724984409703593882778892719057909942542512479557960870660438576728277279304906672893514331857883036171292772539002101723376350778099868985104329360244266285102975443744117537876249972145831556617705349092852130438957449085459536083742676018102062685436467431608760997748883847032109380977355601995736266883087786672947039993599136913344373313180913195393197931332162215786722211981177880605868729238188823059469885492909390197413712656191031559050360949694696981644699230279895130988526780773728598748780932944076296885332243272151933187828868178497207845329859273439615352707946722257108678710037952996611209071123159999853309106843156018226957501244804257325751868797313698575246904400921426908724775090434429608421877786108243989736192662788987799646398244895993876386055926906751138679361571450451647755142562365271256795972319524424130282203109711300424195350827366630976286410446644864609766406138422185912352694968084015055420974602495273805930825147014184749691263668379279706209282426758465437980223910632717684934445822523192155515188684015998674814384081305841276360898029546535477188374307788391981818463827928632921001931941954140521375257837820987097941039522159665610012524610402876901139668172652835127267145054159363453493669663443087332209426195617203455082095741434153135099071204526438976605190076893957577428331831855877727131821351743401926800668348653379466373808453039667026090027611322306310002676778628991411763460187428042879409773183784761756439267941026383088096439264052411245370407609016804564776254081471758958530926342912595328315495627344464768389600380698029966367946442680121631005322977183938878002375033032329153172351905741078565572282263497891890650920768865008905945769395276543825441945831722607890411832270349090393835252490159042576325855405234372410280432572865426820393025804138754501250860551309331762169575473306288460300035537971170935114923506616911004702464019559382922042861351955390243621556682732146590676805919285071391733156367625509630218788212030708853947419384250189767962616224074924599350577459821560672742047608581485531135424971952161748153481244103872542065954020944583385789776575030818530759503999413512828040717016590154114462763960173736503233040785471107868712239884164854793578051017875969797928644843558848192993147584360066778802261447128168618696948932141381767921181260195187808502803302326459688011044111999411813572983867719131561203763783571276688900918251224535303726487293243284656017186108338641766850913084050163276974738940769321364732346475264178817467917897703317640065212243927595752905731554415757212027744293040245013464584518140341752286608963449042699419680543431008497651235007431150865637823345322538817896263417440871242641891754685579240411803566843978730356000434538240312331054108786437243070853035739768344777465720775930353992522241581379499314984393353928244232002028257708051346063931478456714792856727912375267990618568470710407119825002893764931718747717299895291849791950533798352862930840405724393469372794102463728543180518766598501771097938953802004106849431910572403402645685278138212575340939975697328652130301899110977399619233136609145965388124004563194287739934219683347505408639045751295004131591674764209664281033221005389263771091280620848635717902895545918614089847128667920263239237950925399745960393710671982169635796547859099576129841235008482962314760004015915488045019615539551593005442116848087869504726348358171604277169566384193385545092600134587408304636791500691418683761211128452500429960627941964559592483293415018029374372948298401993928957153719956231133574372044126906620045983517802373297853987804190949763156334999967463035197368940793102985017685261823344168569343278261219946989236839385767771792734954136022282156071102544282289783184403115549970195909454416536296289873846857566874205053219037756006979805773312036687832129788526782708283100663835163770579016619393790954552815231900172413673685111239746433752356359264211515526599997453059895052185829886741414999371528572042583144074749903703887196709365127745214837907364553396218307768531734352743818551801040792612945574174658150884249575887637415246380688590234614228236172366280571493115221823267083310493610900831843615642449358917321470834848560766949297881331430006422471284613612032882142470628665620175597015827722164318929539071058056664093165752527826554452836681872892050532680014594290299043712039284041641308475486029920088076609267819748768585263264605032019912180152338880990005464447982569053489217637726784272724306122962473350865764320422600327194620416674637488064350823277306043032319927042054936935470544170020476702211894858984700357850349149206971278760548869708741959504926407548648073109922665253996647527573521958050842991279997093344512779843878311521164135079221802454855221932144574293951924388278416154568094910865347790690599536487848952543041631762829446499704469059295909851385616308703131157864058063977039164787465286581044857334734253327032761138449751698675679562916811607110074324827730556729871281618484793455106852327659087389529414783725914910301410903578493563002777280840564933331617580362356917241198311599652662078668161483934641136107796691417323577536286036195188270684797505074961072979670736157559109034249730754296614953716234045601062656034546662032447317368319126777456370382299230799772106950862480290400742907085965956535361117703864460993156195602687130277627709247139034029457207599049269458988452370687205626678231726211615002490516268720704073233693534187997808924552336331675968864418710984699494275354483653149035436903171993776107903879762086121685190573821146361463005141404197080390463556450283686038911607119605161785039727282817296674800445114077655883844155295361292985100301735853916339357027598171712774273255113575652564875326161651733397194357198106370394932879848653077918729961382109676635042241522829213798655510021454526875872003320673897578674498816932785848523525178498412067185713699884856414209797166532434150719132742773282555490011444918184690710265056882164110689216505836502989412875597116057930603805878505082470956748214296148462635402101614995214561542407425738260468880048363193748119914042948706763545029585556441647795396945687885721065349938528828495827555978419287633298490859386390269492037819025016968601312992560111632562894018042067169816753861129499228584247108458182505400298522044277300400832862093991391711273893718399990299541953448222754974246836170728016330807929218217938190677946030567535401215041039283245786172951483752233352970150903470096928112028070923535735030038499845203382111945401819678444487953864163906188125487295074137360463070757733175691558060020723387431190083781183147500911077480269203808183551616512674539674834184028943849739478445116770737164938154814953499079923908744287764021027746821169353583723226337152141646133958529287533651114282688680325812011178785643588889292739033276863380689152674066962248326630126658204831584172358899909144356502825260654674664833328171094640311287416049845450868144164679299788486762796887292177044921839829021226287419857196149558751740788558559216032496021348848218137965272093115352515795817890248633378634123983530306973442155553665663038621662516147062737329773366730192129874235574000626277305646971508290884621231337674030527330706371393293806856103745319772530135289001311096162731852236356670756506076192949869378503112675318772789220039748672604217649591421710576520836076401734874148787289294477626124984721473377134793585802739635433399896685994084094623365894893098879232973933218161466732584152750247843281246112930978506474579300184345422874295628638304761852131046334654131197448421754786381816643812277282359228334382788003391704976147508452103867108001142258486729094579223023582323019970719213805225719821552959459506002044861143929179826452912445745142360898800436813927916967320030913968253598541383462934110582067886418680749707336557659456299515987959862320982583670596569477867169334609216499124819188159247778747220871703764468363873442894891445723104328443486979160575797831344716178713704525143709863169895214518331213225332957547912534009651087742254888147177919906391868377171908216931100125649792949724846281500692168399227864872161993270379946410493223812255459547478650466692215618515745189008079551597280430531970977412126375030153936813907861299650413518792696627041301671208643159015277982730147269233714504969205153123491117716478903703969867920307295866208185761781987049338160054113585919942178681799135988083010275702873930214902354978025464542619658705281349230454969871273250477517333191145057735873946331880387419709286602478131681165979013304561554171840581692608674783464826479614372957105920796094704127849462331835849462298543978925425327168710621837084760554891648217023555570780532214093857911380602604894984450817495956093053197742309270217964973862164990399488241311611151566223066146685028569915042112600438451521934369420246589829917501249478962309573041593831980311413696358442282388103291193512079914498056989858249198577894377346536585977184945966990636571659865159506079836945675063183844389489350809029857165900709808052751947310926520718959615083210049831154881364674545455752874184644735403565988554163737294087305314090016843979757595461456168109669886104443893774379763896432533050063548296547056234330222271316143609738373174554965337048030085375885114439535511286527076659796830544691399461576213926985056240649486230124471507369569614100794082884914067492178210152304085286100694878748475247536458516710286047439510419504792027705872904464602420635022049805974717770446533928086299150786478653673467365652176339461237306929145581927260217573516127389605778406712932107396295980663538201393382040066461593219377760816153821490998054878645854164058351212192923434817170875722039976751095253212066408754106124826043058657362775051969995659099342984194449596982302363031236371905624452093193735129794509690530299682310800789292122102795928815816631623736832781444560423545104539933431923586604475579865107557627187236088271790858719832873741977027045075048752857431062104817142868561695721528052138059842711117104166430431624535635473560692062282100751888102918256239809719872782048120348735673679574821825598021974939698699569143292697082058886202251861039249873215985559080700792321872507407263583481794069199361405748912388956664334595236159493065990347626950225317528681962739118690442608588533579478103340516676025835595455383839603441747033250551644987291936271829898713315293130486507430740833402620408247675761827335989910741090316827133386227891514098502921537116118512584378624023501051446850426757740629591204042442670108651606002118479806818294428684132848324100288923167030738833263427326405410662397229526654469540331770596201899152017794501838915446899671158198893424199191798140020555419294232978753522316735323485527241491202361783470095161686292482463648572161180896855115825273438608181947002538201052970947825339994109688456613354204339397081308187497069854295951459743793282258356476078659245704652598939529346119722357788703291184259676782258831890378460303252632362253469761529246218713464825219352048930536863502734716834102734016736274711175329228973113860824505486275614770056973499622592295010574241311795616876674899088663903473797379539872394607804043196873448824845068333356091993426730793661352438433836726882253783631347334470108001178442706287031505830054960270844831961917523495836073115060415641812401470167975877981941867646968353518317093724551416492523398282369805636919095630358494346643602325329850045278937357635807007898725987896896199817396746245546130472028962890808235923493560762844490232466646888507212854612285186000713401440713962106444315247801791329896050326131324306008620836455103719125518650011437797196901370178048741290475167089250531553988009649162934836811466747653436976421524775479346995774344727608244174492527990666459691119793718483816675236389135870048415887611237559332533233660640798980405631852721215686117537717838503442598064886260818706595000876798002486396832160181218296329455059785793505367767091470822111818881730193836469810164128801084877332511580135858292969230220486923774540533642373518868513819699431732476280468047250125753309687005158825190740423536623028056976892857857891000576953704618223657523861553429494913790280992911938793210462928062646294207241962673036683039365314268740924299351956938692970174723366627723602900828645918872514577172877964813664213450729616451256358865168603168504079947183745263247414792074459404138007813438315188781072505821023225436368226169415036478700494856977233775211483678639242164603316070069444790827416193657579075329596264539727779018009899242393093629542223157530081334590024211301381261735769403263206105168139341715859376439196585353283588910654966226738180397147016193026609317618979334230639482299925488046486142827022495375857707923614245945650474517319699499203189731765260544388439880328111237918785653802175521055304741784084792745195560895433973895355780266084966108268708730168474127760395755340606506763892723269603596508182899603864348779497913637989840820732589031732227263450081342172907654029658229559462627072824836120709865627379651754745973902668039067500572656526577491396047547267768047998859835067968393439136625860799526491853104579445831505063121458014424853575864824491907422725817867553640291162549334664398691441021817967924744651208612845402373848699035356547187033288038254784586835261368831953983848346492208631813689722835812097189253506943273980671903959975519143870618379467744773838898184324699874700079023065807180858095126510114495688313779180264021344841441215975472464739498649034727811926023287615292860175777754857229246756588584056631660241162085805308747615504820825413145044282952131687300693453323914979939155163840550736430962540696026634856321925870871497694827706817588083063882465304942310157029971452957094407500220240900650698209016623943451852933704846739773534377458492734352874518230939802443857988665978579648904876527684956575167697499869078088452675156901150373292526105298527515285611127521528060944672951157597194754366469400676953517380837193991467923676265386580344624969276830631165426666488584557121735651979009913131897694169827674577428332197685848663025677106109983404522959985306628150983557675132736946943839235296196746755295270795108108432012028474602691770447970813477062756484314467940926236243099906479903336957130883578591183795645771103581124342832577292680714955050334104435100036198765220076353889671022340227806039746650094884206638708413754234141533649730991294168773321887038517125590927532822941933051366900086086568042922014613308685998169068855068617169484677600909466163955297710911719618974324648811287800476032857465834644598015012564902374067218642372098631605225188647767298321939178305896678141996168406759449930670917349567806841898413779583304092580347842268493281906996725686032647292138860114144870436770302586851095558654283532338869374718869447446297352437042243758855465954486507036001527960886405643194385596313457114033231350082121041497176553879674031258460827745485022805618297518971389778961536178879866768930800500865500623603167965975324251927573113615956528567437597494895264251827387536804694823820422250686680411685438469547457626795452672702117815353595799900575713057164244866032385276338750190334373696670353116026347939055578003284380660926668958443697224940533878096072112039732040842320428370875603633780047901030053349533656343610086111137154929352084578798146924816189504401905777950813969825865303687087269223191189938572412743572421084848600926329250485329099269905820905435799478259283617686307400226657270193969636568925542836278397506144708673201370766446080950484383250348579720294875336275322542334541986217579487410597645872583501341252213463051375349833054057540127287577357980083134874231914154648949187728962467825366536350488282177498056676618652544773136273659952754881988080365179811410656938816866125125896208578871160175591377375237824102666824718500738956375104406899406802718108910628321299216661193901006219858354026646097951369574057139683986150063681590180906800725694094474321820532914672933624830058054389445711701790043027193491633756733069218730398206928278112320739717821882484391417272949064533561494592785302669190964129734522648561564996195280810432134328933581334631060371505071601396743505368886860093388008131445252401055748938677707872311136297075138033933207962468234806629335466978566719698160792058680076273523643825215868701165259927415907067938308828728393679071934113782505893326221397651858960364229964318339334571334623711144771725434996650563165540347544712326451405186342705548107167873565770049570947789778483482529801578098470498413729872094518630855331233070363661480088002435504200004429320630348305708593243147028284398396172847449599399211002070198394853609778359013786867066009479288157604335593727030621863047932783072285346435984158611535066608209230386103680448945858777656494604923407233133051021595279398553336318625904584170063603501818248902125383275439921047512693702288540452299501982275143333902602247856357132889708284487590649429912230598760987940523346404707939211600424975350010860494808750129068760407736076155802221503038019277677024957646593474284220137684304039633752258588907270796888589201608055834214053621053767019419411290899380927068720481190574805579310772730573983578230878473004903581078540645309814434474831301450017162893542849918122136545711300894425677676007496961311764423477274408498007548539020224818100066823554796640258047595075877181425785067873531334481760884274071702455228152160236073470812653023853874534258304135310091014359532538953233694267253966578599414775849623346163988696382368819589869519671552799646611153511173205890648354910291671619630350764085501921260406825063985574969199208961774436399497349231367127414179117655652687667402142178962042784266737275687303796427933619514450652411396469882072144257134327087315516911442457904048000678105798250493654604676611475291711309141692922438397903437839082489040203918991873293619735036427449935138610287794688763411147435279748046095647523490368009281706911304356978085533545954069909571222234120091866374695895953037759879063588726956352681267060328221294212504793945679163280262430221443599335622482897187609000233572170037157724006103166030863313994985016641587589566554989822416835253214963745953132414242555631007689985752486317280221674334075369520725575279571528357359987291395255492127248354358331413052926508928613192410019790304420385600225608590323998933013074581030446619992885716040700786384354792407569256676909009361827318825998886390939786829622747363466614057572591867477995303865505924017350904864935205222128662993023594503785642903515997385397370662266227814223012273454217871062111448775947511421378375572231661059407308806944778177980687506049348750013254635243830331787557424840067003753262389470116636173071477369748627429442153316007518367355368460048855762467783963318867555512403790856258165334521924411876115167003681508079758516202039217942626750946931174713173350009365679947683230006194682008404841055531060683782394563181937605511105903630356237523691697930141705075725988884885020990405614177697581452091923445056470536845649733512998124962576227810475194474928006695942034731449474132153122609701970686982636463363977427699114257968593432715127023823033268856393495297021699713637894846061092553293978355725012040646911691817121098024005109639695368640199695370320079070495298450463586051374591178479935601750340754182117369793913148457445930208770018134200121689375968026671306444153346239970653519768208754520177489314579539992431918900407069563482371571230670418253253277935014684658201339526271451049674588661467466602622367982404228312499299711117433109692082222084438600044651423359014069963842426426664863325929626322820415103587569226707732889384522330030665517254311935012282153035071637051894626340283015414559863014480473541405704923002729154130308669336662261782386203412574092764381374777857112206166343850514191459085013812976476934320139178748169512835920938813885326409251431275330856240299406334643793043101990156460021518227029679009821852282618883020223237508595026587798475538760393977315925617441477490974712473032688057588369844879012828975474531433278679181985828520797163418785591384235760756199206399786288343610066705024778895784010959096536638456739826935769016790434362530499619233490953178576354537626911078506312602083008260842038096157031463434095661295740175572043847533684776407311798871459430070850759922734192520622420023747598658324621862080715577445903292087238203304007194162096676381760676308004977438916820471830859561051404798269658960628487476986537515283808481585735255462685120881084350575401789455414045122497370893387290199179726043535391109679591080327629768512907156140303429272959544726574310268130335044990232037689900943466617280728484303945106873136603925227459408772008992624275509414660026218815144668615484178329761763976839574132595568654324864355932919201736985348792160067971381160218693061373491090809579304831875944628315818015912937838412047913581666184691219082544300977056724189528018998191182569412793644685786372716704689570927180800153873598002387897518105944420824860045187185811765292581878174272268499420347507642745854316127816457065791489704577957542345786285484545398764510967170378690172516052838843564723501809027818644676002817835943361822151792833901532031278391948517991059550445047578409794744925510752184408972083224201387971661910706100825847370375491638718669550059537499198031528248413891743421075308606217128172285878645224332825024642905462888916612092833039023385941178464235236899802520310935198379043926099324587395628024134410430628839389619717976808324006114238861701378411218260022959964601293155360392909886492013330637863067596122782478859294729900699119889503998483961313455707993754683900866921949246913571389634451380722474817614529226336443269955303780411247374011711218952506539706532716474479706378264472224561415096769288324850861115596780713424687570076126198325744190121620848129330093143596601262754054436958369771123509212324528407475316999743598353698497797448057432910335975740435704237814087930553803616946106981124666452070035556226008166933991360603238954794609754606485230932049972163473870486404511504807068750738871866204328954680449201983235503244517886733648319265239966969883500764538574050309088104687797032145898524482993224185870020569245648219430234115557510757666244668394916428015350748108800944822463396888727821409416794063952347050977701085958687557254352423231620189152930339471758618780324076285844052552283835804614044072097974859002158315138022364416852855009855898833069175241653198553600644732373731855615743555858785621167505889779779953089969377884611997454440915636381534338376198927076353089452195186856202523221438020718301818430183712833016002647914274929187502911621950430370099111054152074926902780587429237378055929193854984104113565735587510741069994635770660278071454953076703071849930659312971317623622438600455079503840843735816652129571668958557630282742136023932728994237365718611827915863608769068414719116105920575872318138152540008569530202911435917545110548462250173737946791941175431492428140561922872507332487087402757671486172604287858596302397150738602638731341402074041022594975692196254553608777310821197717170538461986879354477078451399719530050425002861197319496003809632524907418302709787878190013030355530772234343477117096729271327213557752348442954096387544806676666055323177801046469000500669616121735441221153757651898205005698528965065758434026076090153180748444893084429382611404984234854141166200878246374365214822653069821875309553295511128308809993856841783919824277429857486698745718276262897345864574789932719602078159001863897229996477004879451747794772254283692629359742517917830688495470905081292786425841920890968948383926412013556395211487244155371901485526211613425399957083347952258016835556344463963254966338334621029567366447699956328655852523670371777176466123667728249049257725955789415997735178268018855569276021665979653418546792647768383563185970100012452816289925099650277352340680504759373992966585534906645534223779732122481314536613780382037272796648850191719912108429272173341391344809223095820877805307614050775931680632503566169895799479851490186079410105697795953010086401891511890657831621400907683383349515496527397500863766355714674971793549220346644641659170922908375641589550913505300244194847033134432350050906760475720656557083285824225796606234104199531209453423142362761174372516960936126286010494599309977135614626078337820388710062601582103808327359257791291058585333903353362143658030115683237491509317155509244494915215301104941315605442923398899080126897867039817191706986188363723625247576263135742538614656511652936052850357608562651767401299949001066930011948289657396309399057863103238916623822155670806826607883917364530093369305061915753817328656784187253282430990163454326010620601383350095358731981032050293048527870868483351043080182727864334859063744824598848744944771629291435746451350536191548656655681986225582720162727739923191283726661784375142845664840098433227872243428531210387328976011681164643750255615142158876691469581444819249852896157191262273752090318611456862833163976524828385254117628909862852671383818338039908119438691659785316091060322078732717289919569702023302397490962833343512892569381888218582849633864622194568625756250097899172619468238030376317249775269951444475983621629150155527920749525951489580453197200939035590724472575422311333176142141970488127705685259499182349938504565959926283534118604261729440704953288387657538244067879855023255021314559513440099527468811793819491894941104333942225614198412793439725425200548675681655913026875612887337010527211697126813869524983774995684440181302235915077672417420774307637227092283219536683374348260652092554316255317135265899824663103783142338793671476886950587786247370668178402475624305721490648223953500456972682423033461590923136962429683325077579255556924144786982356555717974390201467172594560227438152077133717161938187904653584175188748680707252878432127020111977615322777838420928907799618248623883920805130140275719797063442781538092840241433844143492429843289226784958392105045350119473924233724528571807881644209951463152143693123299942608873917854344974197630578036046378939170901094349153853391971849475924069768419873501589949159433900689743751881195903944374442335262281409326365152239351978491054330938189245978750697491201011804441562025976224689618249148749756946128787320370380483468035817449995356771936682982666914803238952320247148707205093224967599833280139491476553331244439491415522484198603378502046382643488605522761261537464333946012514219024680114445697653845566151897669055381799666436166204500119909666402073481015959191179154002952396429137226203215934699173132245696234835579500230141012849526864216776879767227906422341666231675550086301824212102374055382285094407044131403051170684671183807500476444265977114944142604565646939970017647492585105181753292382337621914895515500082337203295875139349376538164899546176691686673085434742587005930329072467070112692763734097955273751674037974911693824095983705194301551187622624624736187380469576867983019802383746409374360344946637274630042892486718287913989645482954453265850276115769217505798446061050672757922979921951630167797511156943780136425645279486838199728784333500329858979323605346070047408131753139031089505963098839835931401308797082915120437540619541731659091634103322471244776517480261620752472072978323905659222144486191718879201834939187585997071112842390749141605650036747309566273549927616638186930973261908767993071898170818893450437726719880502689124571687660915881884180211231844230512188627610633936567219356613806083296205549455977001776211954654115487446831701886637002523731122547104787243160803467715487849319944352960295605184863907869188012738416892141583800886532722980951254240212320574695850817588390456765835653367292710205431332130189198105210765616107258621834771133098800193240521309379204084074654664650978170922581059395218777584009381425880179675263151168295253390919406230702426214611488163452092518189433999861680734288941785631083684032328720612824448739563532266463658126850909662633167786683628506496744278595013062142866788127940703745266647212377132062125221580965487821206055497359193062497613359544436720975312440806829081064103071135064668521556899595843647626708167760066323082688977062046363310197030173766012248361688481130963139408817113547592100052823530083319006736419074514222400873087227373282131017934283408950064782100409892577632638892041643348754228917344696238366667675200170421552611092189716544392502771221577148341362180130809439905539574799457068225426450550898214532212028619442025712820583682866988269409402470973591712021327631358194399881264781514978020831088905355060009224752877227902206331195305023930293497591594585295432561078988287894889661733196976952569706151274382533533195789790721378975866964185501664578413031250349366379912794488619806220733793968944847390469003605898547178688326599381502338081776539271225225553327396616276158930793624830126141727368090500035049751176484956618675611746337280792107543013397403043460385748490450389317547653637987034261973093246579924803975207892797902282005155796233542640818212302765153653892395322076162059851725900851080360011795298138774459543377955987091265539327397866880158951328027384194467760031625999878330320750788134697898425148485648627389267578512155474335354893034731660840558591478620955858668199022172504217392549891451445649685219354236764655075459751421034119453600367455682181071345506539789119734812501663968318100517578167985671589304388810300473884404028169048337626648611786197244771090769064129559067359072753493850501752703644935861345474936590323730437022163639513486771680888627765646551127090332085168960665039501659580448793322688661995250122076041478432577177205298410885623559520076259776184507941425257047638300103610190198861189671769833435188603236178713190427424139386659549068157019107857400042808094099847235117165966587046179391295111431729920608612519944155104251837120321908028086297858945051088225875475199501206559681705332698741144582886481353818401598398959976337417256722355248008378926107308786709565808421559883065671594506405884060526465439920760855806286847791949069843637112778135078093987629342342334257522026940431753188115640387145361787022244381562980491883484982519023572999239600563470174843669779940298538481144263245584736937721653721137251963277148610916856513987837644045040647130538770664420227901707872304084740207535478314837427913230202016783001303148203805523930162528056156310236273102415927163082532542819555556390592689714955049158843125169273886774444309351342723089900620263286008173691852160322982851850140322318344388156876665511218964497324788843394711528769857023812803657467750704438447407481899130339408936409561507776582223216960540271621846153831380771318031629154719167678887461973086069307153269067716161854410086281295874719906186724242359356604421457623132680968039917111914667434047907859218201013811826208547244819621441113661750314972767710115006217816191539585062435802772355748057274006797316764805750303755309875767683980401008393777322356392897496080641434188041321032975574705240849836649255466541816759087889720322097237518338310771284719912571927174725835536337848142908248872503049628584757074072815518701693344904605154184639065541395301363511483803167514085694822455136518614435433578841628963159564311130379196286089921692594618647492604211345407418163839882966768694338802998650512745257551801862134289886563834664591758350746160805445314810626960234737840351277152491776419858381162616639280935504629932670832481320215201403396080698425588976150266337783264433914589049433062139264610765544722439093680996681361578947641342509143879628197831136996076186061772998113206106675647525813226817735436574672609179103836139146181887978546646721280030180322353582886015500864050020572314862682269784256512699979659808133448916970629625301932202321177785746250179209942024297292592421298265854640586406869105243287961151216120928875071288739879516851555308651277116674752574317451074703601933780891423943232975808416602474913461524393575252309215337578218700557069130932191497113375139569499035496835682928190922529709123514162184771797918907369280424006446200812008799373124260677233816117044248259051523071583104629210214761096719579545624362432689152239767275480995174966229150055299448409866030895615025129032123737933736018680240979064031952331738246227618648874361481684908495940896554196790322237457514289235538566288577162356431852306899179795869333358220530869966060700714867992836941631183258569227405610745878798684742298423447138952777572283136450315562956613284867149743743356591337184808243950061124334720867846110052261276777182276844406450334303868003478747180952179204606847305461398947334796467960261768819753937109827781951197596990751096821675891962017344978841822769663837845651693423722350776535589016639115787687755503730141804251706975979352009720390040884395050663804504989591289137690731819555694927878589735056079918962238084046333911771733626572656134532384059612885937959411160513728431443017425554738464441791589226357940511499662928020555352898748245213597669303789401398913279257044120037088771768507462541927659387763277263176312944640385123272149552561951776186230947676880253777069311027133064180502738478474231630851847271476954776556378758691331374978447389964878081038030176959663819178426574706176876469468476068570621464935553032010691736332359013618265674585901669205217619615498275756710847853446557220239264045439565523352092226654849427239084533439464269119895597230835527954662356339699722380257564489725696929976342294780684811366632378479665509759874740118506241758731817803924971132173566959511938969014102276009771618816794502822791174554042751767831546714694654910186700877658115001054229350817938552770102348099401435296658308080011674155623628970399949621072985705207109707677713416321103413649711393407813131292315480800555785252718268251529020938709276336369570136446268449358858944060942880831028189220416694956062418228135722887145665896144512463786600743149694864999159561077232137148251776712504796702487951812150684838150164275657556050118319679413402065590368612125773644295033541795522871073681518416363277935414637602579769361028142731889465252016170860180119177870619329732035998108286166861211590560402612859723526005414841353408263232327992532015378876466843630369556141801008230505373011639290701163153506089970049759161202020732701240239269085525608142495250566601672607282693273480684178960183193820810645614808830057432685238454839619530701012650440982645464607139296777556566571861453851121302364220328492786819890667917249993137874261433490477998588818643985330881209873130372298972057561272661654070277279987623440482226130623301782751592561419435555667787724592361843157812988566040720131957386886594514158282639677338587633801574681569561793237608700497902276575084159581361749807811263357663678366304981469664593244647753493636702689799831501643279603442604297986840300657870523325834837023544136750361068176271423128169242762325287111193132264930340963684061974597217873817423679462177206001917794553961556651116936035591134339730008397381829518804834149421178313931710794657080356527859808776211678215052226404014089513790174304893085634162781999715782054374352667594851229571510254162177916376863030544396103629568032904293080640117271118619316960981195822896557444246978275689990300902326845335116888235818734287817680609992714018057426713453978198847874446839324629156671498470930500926903050208249100168386180497578348997305720457758556499900073264128020186201613552960839484312661718478256168776255643755767384152588440727890330305854676142300318165315375863532075362079768538111741125598927681873457110587970641818162251590524631850331206523342158599529636496795166444352443488678024219800318410911037673156312414030571344703950513355691534129988136110529374298231402841693628638567228968601543437794005046876995878943662639535324069454096846692631007223960042322088532825112519034504364338623937447215603590661038567815004524867749570803633213479422364844974994726631454962302651942415299838716649347307832078645864275645158594810033439215470802417820659578943324623512491231398234166735225168977504860581745913730183154767498844013286178935650378475069590522632662462681121500989601680394540679569943600212170135092101818786754952787850581610452835639096573286583399699643969067335466142661443395507611789595045046573144325715067587521273162851584821927500302690814900393764333225933470034717215130389962251934355572773171957455214093117758176652736702494869882249523667081221886389022999830979250203430927490320434020312930096912554123414619028137376866697259744092293588749110981203879956984238579749614441365930797834489008034356634517057290860838258059175944490324536664358858398647938469504202485829347714378838395709281818404903793171438801526859076314449619908899843341158339928044994975077725710597262308717332790920664556804411230680360240417029384177288163870991120575843705766223541627239664806600989568011834013396958106628686212624496226155653857828961892014042156794917413053644420132635159168043635370568617691122275381768286450907238855937776866255431859582886118546885668359211013785659591712527732619111964781258566910694069045828608842599108103333439795897220198060993089764306762703377457866527735083637017063042439782045065944238974376206875435540180818100264571768463908011650880200262997854982020835013153019176539480192265257533113542552447401046308597900418781258580581883250231340183537196755140066623419217457631633845392979806447194568362046194576665562082143559273659584783981508028003267477967619963969996662995726484338867126311645350795075351423086253859876543390497044092462425230977126550336968309164547499539909185818400209302837888984857552358946262905437332342289543351927743704491984748980587928060043513352858858494872467444743883231456227006585689974986125877625491230115601305396078891001455273000086613992078045478252211026987641622058859751205588749688641232693696440339183021952742860499552706040817624050192676285432403342390733837699904200452773507238676030426261920641442419595891540207949994802411979801298705609874983181564143852354174171098251035137230491548026845711516774024618562863651876679236724358040949143921956550063715990015504059869442221831180967795576551219929721323874110831339851399299499581592819650076009852227772014716170220394136342415781079115381055092474586401279179089753714036116126138672185663476538161238111740919393294343206690056561035908120959603425351926338515725865384716587661453308663768875781970772831090440945801293048937208388966298342076866558002841796379591531347977908383802122306997481479604265204174668568268975263900339299393954305390431617883786682557196530033994914133552825062073779449203193978784267265900757263772448147938610445689867920812281834081351228110482833777260296153502323865313230292908945988836238568200526353885645534904805618411489836873472127375518138611172918212948607143875750029195909946608435021395013035170169157358369505959506730467017463457643897321858394365974294404888117231280343045959943081573197374481640765997388987412458251220174999841130060054541401802715803496619476079535307238290505945513578741406186899192779762548214133473753689477260881984428744832957936774654486961846700177953813981133067103571968994024488514252967640335234086369680926804333992124817197182885034142376688241112000523152360252248823728233169653798920586934088702828024599731533458286622177914552645070440895155558419639844597838062989696461611883240065340129878786507112872115162206933643804328140998817301140766627517775278145666572923077439693330745101178141218880750051639244592922982127687468077794280065994902329903274120028505552024760733878987316054807104539465499708641375593487480145926073512257605734255172875411702010718603354230280103251839738643465641364457996554868983828513837067606909674047902094633260064167599755695069271711426572661594884301698487647069807437200263094466269980030088848930983331738243969093000793514564010133329548207659633702885939149007007767803478745720835503994066398728240741188064543459638688657557549757597065623218130648122936369017414897695428595393050896998808958775097504738722218895913802405098778303969879064604562346635467911666774728772038711512894514873939514662918771672656571837150813385528866473984218492530210751941703083408390932026790162181964838132878322689975129897360247810230495597061780150803779952109971562423939329523652385803525141523091642745222444877117137355606594088150964656231893274562419175380117759060873030768414348197985147190408449453990710541963510411452239699825806489044480229266167960272976024944098692135143416711767874388321030994621093622322490781165140771852065226829177631123126378350302010416996918397232697308119467286680180336821125201879959353590440287713868561916973702865129780552941485624714515513298916399622261479305311933414847798702565598330888863510590557210468187962002792602372898205663685304396109730014068629582497442926811478902695281868955283030444534396812657382026162326337906897646208070222343495177263460585887337217886552114263009332042050461708755252239664716482656392982672688671413308034097060418752449183700316677524676196055214368634032256267974378909310562262590540639983974883181956063296641904759900790032752955401575813536625278161326553306669807005723968599821116268178867190995256190050680155629767851208983232159520417784244972201078006634140121339584681034614269681224508985840143482292556927804672529414965592332462006922417698777734696895705759442206971668631045870935336184943156774793198668220836185329536130481163678477046732586379268614927613906452922266543363827143410610602346415975405194791582828212833697562573151737942325083947501402061838726454675859003454798431246204646728524240329346418390826212837495951359551370277308246998553413578653069174903740976742456224290042076684366333730718761954445749153643587203923221144067278363624880252688495511031494968749180103173839505696012890845015094466963620877655978077832658318494342325882206393923555454390011215100563458447928503029648008270414333792277469259035421363825894861537223511134392032186863939167135675005095020056688994362581334064263498572220431331296698013366065803773852213793687484468877126078154938981327131312246079140410725269932462742469678557470359283821439424834912331608048223609966906753093969477241370076813517283065576166252790991098895419051146269550746473411175623246782861104117773470275112254119656099800245274144421203179770137716160389079283696121702981892933680891494524279983975109825964503392345606567077574235883571571434478927939519444024323306906215817794246042352401869741563446278026528435244685722174133452569899203669130229917138340025097017036771141315858968230567488214938523629505935028543236130199607146172935157863179472990547901036440698848264608680365034525799808832721434169459993110418842567738377434809748399809633653367064091965207021062882651920364261842260725816949899631014386225112958050941851285417923614453348216024795649066127429695930421626701277563186271808988780108117923032874054822639832081016999255290592240116135788257023291996284429932700140810449462165958732796809948704964174642363565580360235972570298295127801050774571300011926684985695868475388563536973532865625402928172912464804534811146036497077596706408669057376846127319146354126609340521572934987536525442931992384608922203593733573148229696737369175187138240901600193200160346660110247661983375550842510837744978637012458991018274150610027884742047665284291276697968602602571957164022204622890723055790236423494186105965660130538571066664169891173797492652280730859548155055050764371553006306259729739066582438976189347574335826906729589710223089411047368895301765570232021787245161924068727861873884420327729318570426715696456396306720612909236695321369087517787380359645441918620804500761010734038536397648984065123867314498838833702888477117189114742924855022076716875260986129374427779820458343122017010943435176443015262706099082877003597735071851415248803865433495260396099301535414306200580433640965798649991812263261614521354260040815474079828243655032495222459491887398601558857346022846994701158766457251165504118656963808776414755902997717485083589782922573562850551857617125645541094044431042438318029265686757860768510250395791663647206361554549590577106028202271221467919205948151675445958445856257912326398623172064161435882178414671579247264543257225900729304634907942886059208536347435967102155575421700065838143941967273071126261709413792397187795462208688764163745727023527004812116771458215977056780155741534491113371326282690966737857994960547638995319645914839916583004774897632585540119110295823228268916631240557238208253010798745123456880708820233091313783860825074902500169758072838970842670168533361416130677708910343207724448183069256905074832500105951083535869773603240793535505156106536003010207800818302854101210175154297440168648900880701723242128218945544573945532398699488853584009579361754251106733010447493410660835790011563336387292761803863246776040268054367221210088165105994718207513145637890780541640953442817096885469139254752820149998989155604957318597479037986755109530540941828990111699402793847748783905127524558742315908754558730166942669797305420010721150812824912013524303670163509246192841935636647171658870039630844372757712003976488877297745003195741186324280719137809114398533875916215538696978125042941565823592900269556438505891990767580778740250336822844651552644572103953875783125076840077563972779911185284434184758076612561306364945752642625772604998860666534089322296867325101047170979903927275395269924585089266609465861870457467655959587447611100960305660745332950041872079252353978273928362517850690951972908437951870441498296656269995311960843089364736209592283771571417818768111668437765007628044439598005976668481910889593028086690999372889418626557751796732210124523071117977325897463878308506640325892387777342437825767256434401134298039101522243873789312640971423814730834902818551692300315155771456862482324035584164508981697092659760931207869072011640697012405045403972761487422957711141541574046410433035768858550448620819588147433679791372053568733460728205269326707806928185160167655498348702632206994888702131920179642539121313880185746984257155353900516373205963057917761710195805637197013984244923005494068904875918318092380622455247946933384371437277482208576747882189923205079122907829655197390232969551744360720781610356650878687060658209297467102249417374326070976091274056522550938593888688410704675107642243553394153241612641450200234599961615026546735287856982417144792389646371763113157837613306007236735504416550637129714819359819487801779750620728474531211032075088699268225975212447328897317832781537267118711964333324376458393432000587714214488575037047375697473665661870942639500846025061559032565474929273361287745343948601195160584430718191039999799837024792253412156383446045232084968948306844793338575860694743217732598357361369081408693769346454090487157765897361534541575347250183365486139971440090650221962135030327338922422005170194373150983348820664317990711908723195912776771083431355927962520364618149516473851067780194876584777198972445627008470231979659036024988220815431839334526460803296787440099540476689746323615485909577225406259308749250066136592327047973147274191065524748177616921519210600223410475303933074223422539360078225519133728273374985554319801885344653294480972367495186698364259316563448663835578946023437672901475302727937324918989455216293339598625502170196358492274166514558965385307100763771143544226081786883427911331327893777558404088773606629841973412403954613263344203615689206250846936224703774924311784518840899557922359380940285763296640062419192318422677699056196233788252765084733045403664243186667049285332691715051197877802112656343263511931958799185951109149890435370977155381603755487630386359478719663746018409237241748637110346420418595299507084824294551051444327776224225851377569797364219146208315921166275937281268298983200751012089567983049255207168875193718365434392275988365145090842929473422008477780986961837034499875893763444040027024287183650980945045399497056674282908214499253028148147411923102287232483242227726872529885609422291870272411719909699354761514268516739957580145553441787603405217862561086566605690038225170842986719352896886700436908494786049689980607387725643825815711262094704743935631828198304644198892991031586599065658608428806790293822044901512633649975333847672870634439483854491034664778902986065290353677950380281456747816271980342084797265436613094223218112697874364389268785635191860387036805801156015500483718708902939135874520194814971084639430994095453531605881040239200448700679654682467966363292334980830716477122602121545230130754167628177497815910496218166009300526128077978702071064470174231222253102925576192597741269317746067819716701804710963521634466307489856833391457168969557308322574316035316467111557008656962381598072178954192333950371768868331589935616537294919127468276694073423182474550975441625361539513473910562787797034812504757934650920889962155111590026301422708516848175585326086533237556757936835815202471519233579231752071160538150854994369150832848220769475697732298994669877189090951542792320792955657364029005254166303777095435247704080520525386126423493784902361852757320314063793452691211934339564524263907002654497815486300166285870420107782668836648308739556157710474218001716543789308159751747050047556934029902431323252097224940047632438318064795056519312967055455749724457171175517283545675328148450582564805982878746036710823735546715407779225240370376407586256008720382746825500025746124586593206144380680188923649812721763054093020491848016840129984479272891752924334349371791088890211626082359174799383317889433880075444003993836757617452213901848282986216033661984346779867065665294695215821226450981299214819656418700932556922300842154592000602159863709242844479523074947178705960109518701101254245834511982024216094635724776422971809323408759199024641838224228418394248067199322577034675081513538359220604394811306855841129136582054340099697529557620541993336679344091241894201902148496157108834716751821562455472913316533483560368755160575484399213457363985845934345699606025597871071104431048477523027499978578589388748584955387485811387130315464992598441794011613430611283767030777499614215067801805459871178172485410478912240621163332320332053510067175378565057979050240278631358043617893455202870309574704244801045328411222516873228314379834690799777973594198665304667211019843956675895014206078236547886588325945567859448000829275061265120504139379530277559705864843186470963909496759604508678016544143703434310820409741233689314134909124567314823327025196513280128275913732969621290682690272291570987290168583711301716546674490124832748382517568878362200285916314245555508687090567541003254193589432369792515703072308346426820798165128235001335535477264169230642768603861106879238274901516309076048803689831000643944076869629168696559589879285510756525325657987554201772513579346372402852314124164899208320094600657125081206651332493291951857475067799401154626679078033865740418675324420400576994069270656467970819382223872331419356903294924394615864069411254857330265344599292174637136732411969580235117424645245730217925467879552144773585635231383581278561234942872773643485686213019247067584489458691195490550603006853026397295835124834140374165428539297174882376991468938010126511748011486229139297061757262881985796865442492401958168816770224577872326723584429820772740854041814991154752845277810656280599792046505517196460297741205939916716210254741729460734675367102311702280017177248525683928186390830400188407226372495593968746966717577225846162824598762852144064635177756470000726413711644580961785448705566908473708250114160841230963369764530700813545131026919052802752043819785684047235922145175228763465561134962009872724043518352057950881781988462766810022449571981463966792897919763265548297808778063782268415927615695891614393576784305203482881700067639159554464194827518608340820916599847056610234579677831043358695459391785544493299049630310099008578330385254641750898446083247468968918422588193039287084048814294627163325138860783956009371229497531063859573381090732113557392081406290028702334373417151060944516751400407851306284752025767141721010372979698996760296152713787930694753594649137361500102312462158398190002326035971188448923204065400982683758529846322118380445651388487936688359463728569429369504830428111177785900760524729532637516848378360433466849310166481251337065243943772152104365817919779979671407068751152144754124615473845341619239243578530428149703960840526812205546872650587998718041670629190165086810059660718484640790380811890440753454766504538829670560968269484363615212235290949322651246477808808207340577581387923940430867848141573691608998426924021974564357744304279860278205101927053679445776233494814688373279295597231876824742299524668960077632477904816264375132675457893443865145792282560280046557194844160597437443765284494668857415327006382521205619326943434173732599377324128844632875221316740321875330007973578191934881977802857349292460977252753242426576231299525015366117941317960529582458055705880848079297586056374998906393191828811918137966689034015622703044191149475100131461252608171062051377671019174106970375161814817309415626573690755467726816440719768075753034424445610719504399022713314858397440178819827147306515446618123300091095952022423878527903318719827671374790900814404480996871767600189334751798686789878252962138984014338596177068359578011363396175170504466508267686950821424504535479490377972009591708028841681967233809907574387624672169527581911176876356933056193599855161962692802941007583576484144409670360724809855641081217848988078560581075035417845174152741337662405614567088620267747171288459769341020314892082842788683255147962731964282752371173693302880729545939438381451161332387374592465425948336714080696231183142744369449466051347947804427358023078696399582865429855809987518981393100709676938186224008333161452460662391174726252750584273183110592068461152101321576175219451679378729933220912958893381003238523297773541331470318680612529909572532171013450264961675367611687532731316200696197748665217559179628182378959079098252634981161264825702751262791899185590880158627770615053012881395432027484774190012768211736153405112046523846806564823916131576523108719132614350332005615899597873406433922852236147175520545117996672881322488434832038878869762156487717437198371524663097750974581694713569512081913440816582556444936085167542632013385525946243036086568374007968313854836556216084868343918285676735922244471523004110056360105845259850563333877757103749077416099380998296236908429980284583919966548526906261008124459463173714500332683077011819604718257106580059697643489932503017294132551923597619520603155641496291217125898360994886667916463008410618893132678882565294512282683950199790079712458187047775774629566387733707808711100495014116416964841961946840813778619293268431712749462630903555432329856813519206326605787581378906773240208914176315531839250931716100180402416306065420056942298526962700863951598187168198444868311502853991129706842146011274938604455282221361614701734882373807852528594633884293090103087450163882836106179902185765923603306872330916373488092365931307023582027983664040811947565066980590297854129648526444759271138462930371557357847446604872204682934287492041579737905430036473651927640825132218287875254598561838149434970750190367300019835689053651632886987448929146207474459748420607299127971878368484440930553302517016629264303035931503063619668977844924454730800717136763920071414077862523934623627405971170420097618987460191760396493145176278988626562923714824643974091087400911184344080248702013014525059176016224792920726694713401909209758387649862001452099168199151618129069085248377867876941974455913008100369142511886750988654771618063343220882352341761127164315471516519376505435010487154012073379823595089878257863262037487327531760975542355721646603363911157631599187358365271015809289527849063822904930506511390553837077103115437891193348388762679164762205460507972533913971271133676020115675412182139293780249924700747358109632116151263028444894173023166907459851577797266167943118025172662681103782782827444412463735519882035168692053951407484467097558238155424726196749449552464920994830276770254733767168632793663293057209940915325246456178944840064498810186684445812026980749290659206191912018982112520376507873887880040046967000607162946939407467257805736339740208754774175868210550010865411296413236444540541596470548354882224706629334625176512944037274992198941998774366370532842585667955333782087947274253200368718312556998039332446995567839994476484837563887512001516212566211677783523321122011348868598884819363260369730158723555423411118959325378002031481080626053503099873876088489034680106925350851296549733190429957945110416602212190674769143792696649347815091786079984142246660803651104580869682319673416393546528495672288028885462081443769123432710911591317860340604692484204195166572301973629386597709052902414733725436405087568054731268412807671557619218545393378161807195761345562302283784472036151987769652785681816598475201227117777991356726915753799094832001187622504578033771804426251216769481746121881149619031612485232596581324204421071153714153954356429049876539743290717807778426319147418023637167898234957322627463303219269717808627881015921137990639528364190275061678889032111251158032583965726520894088873357964589164727104963167317420001218560426183114400532413614634958300386368358629052636681474176589940140724826656796837394808969562751270192795346821447353785316836165081632097756908041687964325629822556278720561508789935146292080127989896016264691095130935242228248645040435909948294728228108673901707096700467757849153370216674374761680309693396274688636323859438520714203493522558876626917952866255816305497390506078131024174888701256900713692744104057647035424060768546952420967937876845068524713282871479913853255707799826021185145068101509599929446906986726832194895448430453784522642848994098914958141817941930820024538626711095529153862865477708478832444428664014887802939350670655518298081699324120824358322931416166887716284157998929850353109223269524240071862256169857435112814968670978254681822519923870106303001204919229096703625943146945650739168261740970244885183402943621011756198302518981233053719962913626209565617642577168133109078485298871638523582541988143980910081435225830427776739899456920503104040653849075316761187139853966744496209185063120572890281142306178970488666291468938145617868762250312889964655057802590222475621752586220250202740864364706497716363924432399136789706171621392187834812052935656867899837562778737431293041329889441579459610253213148079443454567081377734285314130858213353372700177111900339963323688559497021238804890599825868552017039367547546757785259492691512783154223881191785651280195888997899845868398887555700611502901129329968962365310519486030666287936305629143302867450391748335094593930094425851537575983580868643595582550235850301587349459973536615463522585526707405101151465125760073219963166019613571662701339209323828167843459288214701365402967580888002243886084134292371506779958619634549463985704231288904576619075283147789938090686028596941708776599682794480418031417105705673260331131966835532184226600840220470549246468218243881487380485014456905790908904569999737219196623828032489497963115140744991259806498821620843766921319722744422852799050813073083638744482772687698253668801224563824140748879999715645677320046757411459044870507721563960508208880323887957382472141867156165634004317156079598831784411314528065146459428805497359974460679904664839231054085988492137273896410479507820939736330904667846790586740481418545048789313569525418504153970471398496332272259075111900398358287434225548565378881318353109055226292933701277997392464946850337969464563472775628923310093694080830801889063746629545306052970173281633684760534696911826746822156720685544429388597815425667334656947280583773954764392224787280086280048561152467885941103292394578101720192312428382571381835088055953690325662091741774693326808021356007882316148874959766492715731227932547761106208826995152023425348303050195496246852747365646722624916319951859327713236493030861026090770383385224561963610818178119129623430014177541815929978582449546148878681031279828822874157322848545360419031083029900291248215596201624091327547575166716759375207146554127551793628051351235009092683356691903223459214539435026153199121821878417722073536819610806870871779841443209154132194822366767892483545000563603005987635268671747450789501708515314119116047473124483979081242050498025794006772268685109430021174860703512420427642233018338917128892075372361930729545908172004978880005486387342168193855596895620564829416774148371676524291802660164366730785028871159035537670204431986788821971915436421421307338753809229016236812889300306491776662803455062026848976900150887369385558136858327489124374407426748788271163984639967251684073250147009547912861127555786208473490990728207159481895973318876238874351488178723416673768699533400769115984560679680549176447953959503138116048564893454157170409962326931328180179276635798906661444447339129476986683723525927609628488366429079132829756933021280631264341519719504394461442055247456986405651326810373450630483564785613637289459149530105956047168665240770746395355335310351626557384810212132821432746890969041384272979766078067388490821395935422133634440584504963454017208428243373374459206551392799092102978308362354886831762131616880439619300675277981475904226868522171022592319713618744182487086123903467653595994767128037485902952594778294823475808106408047066443906318304884188847810349133529834044791000848914161946751893335880670845854040281707139033391937609121629026789877793848259226642708761827058731996877191083551544902985054556398656998055575858806538312588046542315790884609747602361283562815413244212309195836889994051562897339019809142761815526835172651443473082624472702940669090412603404676113873715235760884451312425449455004969944708949089184379219869892577171020100525461237345424747154915786678152890704535162056190010722478770884473227511299151858361841828743930342176595980951274513576122130481527282806589406590208267625927847498754552338469342709445823473634345091677541677767694217802013992195373325116521342890962544848318856411664809429285756370824348878714053928076436748635418499900688617483556370145718676334607462932921767448066558225773408147412845764473066773537123358707139245395739161409639619777401303501033208794011880434587647616780042704847859523134203096871762171524163677746626447462678078737617529151152311111379439936454359078272823118005510017496047652785565063893526310408248410845341338017544849944830210428822706163193654663738548118999472698824300311309256300773768615658031687593762329199229244743223062966302789934831119927746348094536814496389940791607005946973124106370887049248724508140342278790207295644486573983063172259394136984227535922041813755759480670926979813069265621820047493047442450938889860716846947680589226850636815891779061844068142841416565529629153696027418093044468702476763481939723156731422385166884317185477334307090205451837412216205737278450148391244684412049157878950874408837445378314736685386687300742094162588161537051057844409140429482903162756154070355503726929460773819127290063443044837638158502288777644188976272802619041361471200832236867348878467901510987872157582514332504678942269154863201872941356522849555554103922271912936262055255914239345292012369048253339051921092804844112567091557952759685879903948172933088310712895542147822333313840443802476137973272463741677363681016202271907272233296821758662848846144135162203573157841204614824831126782365390354159022233255029655483563089106543637899660348376695451246616153472489169723250250821054162223381200702141570751440111345401770406511850170799148084119966766666466104957650868937441317651307106612839934288135397013220763575698559394846105783300400149624553486001829422089873622327499958960085321820856899502391054427900539535979354711735024469964910909042892376362491231607948201682496243180860584094633234306863717449587983723348824396402194054885801472696613899393468809561408576203720345202588880889057437344830819090708509110709399208059904705017060470083319459275850480782163502482586902851944826080019170336428259079082849199759735087137188795247401533023078219321042177123025268574027723811281718547308302604891974785354422753887237658059340768028389249589627558923243321856719087169422571833627966509028583430305864546553486304014954492588206757961189696478678514640959855148992543122490392656717408482516791054438959896687575870640733844140966627831006744892620162623386317015607249457688000171186750531580695347113113632580865477157240023590881185518158291902629330260164435633149108187451851738276002993844877187883864660599529340910760519848270070452250129863212434380431206923151506762112294960984724648921843345965422984789831912740182078077060290476594257418597469279068083162292342935700126346808301887911996399886214843619121741953975589334545704468008143357343104425739757787933085481583630739525969162774769723736230713373373595162576691128625773393243972504265726266918572958486958137941901176267153472870634218031180474507013569269709309638563850105717267268612200452187709582293256681560182083869112043811703110269737972513344069432692117047974158746548896312406817661401002554152688819560780656721028148054845063634442781648320065191026339745323304419701257057601952190053541214571040752861966882643806876388873491167275757825583571699995881086891910151664252242018073285619190557652972042358672456138181097182945530970394873591742783096303274520111755862939119784495557891240780589737781874455993277280388888528939953634696272806926350513429866036864831135946186215132847017702050372680358859536876661418213175234566400258750730547657541368315164994072730380594566976953681252700270191860940187204942239734086176323230953872364862340084631772415795491983927195860550896853402266523279320624484219748954953520223495253789183996867590387481111268846927885663360740805075143935177034065815257876190746239998914425986087936539345420750886258916475027587162936024501354960699495852901359250508674390483086161358216209228471039346516065124315717745754823889708157459808193413345063977658334066002261103806164533428125896669860834326881517519764098225064363348655190634552527150444326684720748724729349098723966302513568034251480615702540769688215000361401716094140786501319279596069888480181216057984141137879627125581760356000122946160000134137168597644727220489959029913065708779616725964360352025635581484475057418524146793239817541953077704481717819387027009204213288241442036135159663184619785621867427672039825261612647685573941853192798446201401179750249810183747227388506906708013948158670843899769799989205823540534720389083945284627817842886745478075931755666997617954570051443277234905952899223195227685313213826660162371486882217737886050760463937754992939949676450997229972677642131452056422329682783144196290743525399890085006967630032077623914439788986904025089002858898073561578705760678229081145387260715156912315752314295490545433153391311572624713025210061500257627420989229681098295905464345518246917633816508849936593592522209252618367928102827324089148659576242381833424710911501417402102530957862458744934178336509062086856889558319983472606908215900437958869469225233629760882783999477118710840282190333263150742634179012559030963829848520710878775817398693212854895835125329730770818916785371177272572256918739952323818190766944281335019056771271041181927468040345807231955044638988363900888433305699470160368308889054518492100622266636896979890218919077716639357659872461406337926371321882065828485747390955064844742138271026361967785886094743674453345999255284738173128131550686647538414496428470597033199053584742295770487424227143132897778680899760714865241353540817341216246166034872031244864027644944535546360578964227548681950968985864294423570981638313096863668213833554731070569458004914330164807276917295880485985837394904298868604960214957182708260457496167711401675282451998396176058814193262857935015877172352681982757928627687797409451615988011111613093420841813443698292605341006269475201821144609996839568527063964813077672887235052306143675347099082741150882288041288517813449727504715049190149418202146369682169838532683768674468151800202586224746737282852231280948968614855232595205410291538946364994499997656845521658774165343038606104310104099852475452767537514461449567837454862788779169826556628564272923086130256943978385807643555385546849275297486504260791780882010685051409239658894186323651837498627603222439000364638236122828073321427410038554255783426760614061736554790808699785208891094543791480555018232996142123774001555885302207730333337581857179361637794275106071341541079570564259847317537584253628695902609958430828694268364814860684798400626358537253159676737018069931020965957710420446824863393719405214782154382094234952416227544222476294305153767182888481689481364950350345740721755677968841373156241522705520149463474514946896369428088644168768713177514306414109651905834722414526710337432784143230704665663623852328057890941813312324128034854793752037072435783730064833337661578214614799053084248083784881493120865970565230569461058598494752284336997278791811957460691111150727315531693865581793986958963221966595379191726834982260528287704850507202876323883411488671600114068469545008334430300136507818918291883999193150800079487670692586887945765289330905664422904654581537510714571534987535991040656487178658056879384254141207705295615033115728003256675301068607773780247467513231262291626996097905703060531703495568080620611431635952967697552683716332210937757261396597729732247143947271854513563870551873156435944316459727724907029244545108873813482210259024595193225133500389110770079123874889670400358913363628790433249048602287137669429822999020858840382958527393784498166605619670768566319079587269302496613497200272420066675311074612718466802774231634289115666126952713264565776249937657129462413365861327494336035168012155013591335331583807039379393800443001220453780032170823953166678698045474606613216749606828583204431088241296742098501648440218372448454224014298623000989054554812325104163023657932162467275527502756672430404911972212456687620498359411212357890889494876626729022405997151224122928729713677315904569544506125535726778478231794398588162524929812793755909302401150988656893408541820659695526147607541129916275022165604113257952735018558559083019601622525804635552277552332848967371494454233226552526681808710509525721114037325658870382332727845848093374193188625777972504508130676004309579754402676991934154325890994941223137330635310450540219089312445618991439726378457656578501251824173170913206401028393745624694431607084396548739944919697333830731733232127109266947435146031307734472408699716961377424043304548865586850593368923390254276977135059986061699798027333030786896438170402298367516624522342512937212640376089541541821669167716299179858315208943937886938784729148356191431696811411940297153193396172466198492166652631493474242771183522939003582290121695503809465016161489380849945963874107212385139714622240902021801930041109955907674383340218198229077364224690544665518863609719320512769816859452305185790963425146734484720623949398929001344235950064099619834384942151523798950082165764598505315775376296036135633829182500431230932946042018612519948309155372984223323291295687814158903410006981490756637224221774189535118202697961592404860879787876403551501238170037921355242717746723346480223381566650485585938812333740336913263189436275771824759992951475078046334950113045948739480908686879476259324185675057866620360574724960761189373541262287464249964953078944451920404723678766338865738369680231256484867536287112420141455629035093928025824562209048840617588025954780946924783347758138281772777424470900825755812202267032015276832345930675508972538856033125209325535078687605311894888717159679314753315495225746200653554624114320868958018430672290640226098999503869581417052559429938656214259735204444975096311109615048799343408560751841052772307635026284746092663736712662347697568336667977833080257509942123238057204095801172350167413888151807281203825519044375962469071324620617559282927986883473003715751490294275561461960733486757044527829551906633065144211146043341870632894487415853973257088419805547482946989083493717931787745083294016560864517352635815269839426195795434709886432455178194665448238959858820860963073716103191858157657971659829145579298379424514722648543410919451922480239039930746992643695357455000952586624912640036519492260526837803615105013345497990478905085264801769211086933388880688879390463296790241663841491298950476055775486180255731066395475725410663293129156443467357516742941989230474114831970894267710458692435284252524512956579418518310745588200443026760567731266398522274409204388887670310146760032805603324635125504040126530599725697619030719569627487757183712281110558265276799532856322428284175966720100766148435036531852907419448085205579705602919414227869468288960561440292002721597335927967184756381522940957622043494077760089090545325118295594718751513770015870118058874858089757903745616441975213267121390564863705858430385552408850709772750877539332076104673648380659782934277509070884108767070876627278816031608871072616994217549653814191503652763574944584963717436749620970015299225518520062262548132915194993635781063493079845401276190966392534616601297269155695480121343887770255830362345004239693874836484271357589749896833640664621257727995684883111540821879595671651040714261171484556998262250494746860672427764902772153623179330121580872862599316305777821970684940710345279726266112302502003672929494506203303549855591187848976267098441766505679487388788105362523321691103127396035106489657993707462344340448775620152281142937473830932414893338784088523963845098120179756867211096548319799584061633178213698238261275258582179416524182883739468436129026995941292693270953011807544257758346242155072930272143231141469686913363803568911172107374580510465434266841089815123363472324040980532130182240091232562380996568052876777145065511374982729321799737826883943245155739616902490961465255454928521735591907957297429522200355818658588941421157907566219835704189010717216043761350900750227349640122789579552360198346685599770704416034026513864749612990048118030644496154807334688196033069815548866993993057116869159652077046876892816482742589971607264033830916866876038315527355224838877335748316610067170550211554561664081964122816103419962679593967651191073099249844947675831173103679400070313718414476354864395727083538315766115825249012881139799858443774105936018023453269700085907993195812320945573303897208847215913077500746949407852737682660034174269012909411163444113301244677213577622844459904487165110238525365055154847105159180058236725587476764213484975214279350790990528787508146628429309403351149233841032948252209174971979898448219135343975418155630451236626242922354088967038661063819029100725254295735087529256864009440605656109475551274126259345438802939690955396632092323168336272757696871705559015590928251056041879023592991801447777556047621879213546308974052330805321083558796922088002306157588804666972159873088835096726133642715198134618237541288612868405245413552365080901704370567620110068218221670031177447952035362278111739376944432096650307437154085990213857054101699540462546775483711445800612532179516174249800692485764592915260756658496872940815919496259157744905248811455287315562103630867335722103151447951445929210113920342016556710285044703938655769944973897579484870500005749041531643026445517321471217840393516898710111387541556190950015603511308028529434002524536162147879075582031076690475599277368425939558586823265743930592582816890355000947964204505387295168376375162986245185762835164279424258397889080368227893244808666693230589326565098091698971376605102183948251117134658346569079862389633538087951485146894977792612379944434041594974869475892400093980055816223720566454948296886080362426712154079538149919553409360043856363920238981406073255631651132480659205368805827632396572754926738994614514056492728483434240513128249456551758907809717385228870805520203945712997193215469928676624486906089073373247088622121175015440793518027275125917412361260345362832956578016145120941288620233074263338646916492959066409400244388293070222790352860740178736818888224561769293140286251203841759297825139154368749557297757132773236850349823441066627713003168384526411182765139456120768868889737686762705350760846052810772579016582829213412524738963796281124542894319610625706765940871657876651758587266408938636053344932569919798926983298443874198450065953751662098582955696870263274283498187355677566658353532901802839773151660859146814939529514138430828786603535202264714863731120732376346018057921651462754069640065007970123303000586927596834669657074954591472220900680836698965844746285601056079318979899175034828136001116994608427209911124225655196844003063917939483072155496303955549608255071720206844542037737883625341889230141245709909734326227543036344317828855856494087134082587311813066414811522914252452212893566828913810665758694126559456631839450957245567561268544028922157371344409080573408106602010866564183783462459366914658558993114124442192498802976761987451362061483918133589760234229362890151844785513881067354254221891968171575717127505224673342374914110728654795927825329491642877397868028689619788114255849554530564898571427597712558511150839149734189491238013605726318883964799024546370082077530791305853988785356994294329113611212659056306218704530018911469668062258846976954020889227201179456852773859795534794448081585056442243239804399418550878590460387372124856624382132587084095870826600620857636080775966941005760666736729742601748158403498520924234445737341959877761404718978954894364884697382947102785681228870920880361451778447726898897301959509787192833504837962052525063481226286522894138760669492316745541609513724397581334269030147331693432689719079707746587232585561285900924456157406111420048286162753025106787798274492775934660166796846459766362920513508753281105172582180587990495598296895629738179705185581548655482226317633622481867896229418295103292227642174966084872065758910488265547221740011183734307738378395481405138358282279561541875380223763073768259726358973504826898567726214473042400089884899589985787405260892434817482943227940385453705190828719791614973869997502332166243860935623387183850269188270203257681164149944980983318845304576923706179929790132307292498082200949709361825867085471266221569701700224632459238658080293003393184324906136678081559896055726087572314802759093838315922611783435806732107448383797604774599474878292883686284326356485870804188679627688860198411136484811143946968186174220079230285636001820279313718802135382580980797020192569409400941714070009727404690089400461871398743723264395767613599897450001194933369926572994980697587788781858500420848080154323503075894068720087797493580878276069816283657081839642233797820358127235759275371751046304264471516508629160345421954774250446524743957082466673926468145545053720230561063491979583065388789748776014108247432538510547426200592416368955676270025078712092125082571023497323690291070426755038976387533799846729882622421019263994651202071125978737839896610993212401381270852044198858180992443681765627674355087234326522127481501595444997631565004322555231578453158030026009701746399938115113092919108135943150616613368154486450824912352469459141034562711528568728857461227810177747567103082554670646137710554245453450072385227035594458678500490133773900192331268753794340820363767704530684472791447755092290476431332483193905680007911584581587637575403280409928793606504243428098193875466249597782940332600112933941572891547123773432702192198997103403144356235608747914883787686438589205813595469036913035350211077172947949782645672129566626811646510301236467282370896828377798732484272349042272145967440611799571239066336214910430873474546139711430770147273204117561934987244739417270186135876500874450795788317713732302337979742194937878985146485425317832855261781160756683580043017951144661776454548513630535441347003472869176740379879254064678680771093761930087613521545842976053118248069849514578870825172404683474373608869588235786954603157819991809894934378617368357157452114247480599544642756360716205975655634788051544452515069290929353564177547300870488844456344983126047220953329236925856169175002602448731307472559409848005734322645638909779977767649724004265678562967712356691376065520690111081000700322724632308657978188881250128240564948776822017999757296840809578187000304219639395338371088143825016045245679956875838849536489957356024458488554462347225773235240284458802526579632312233351870659268181002504966238694817763245142630677561559167929493765439343625610756686473778757141076684269915964329419570498677013090398824592420093931669837885072088637795827916240406933156260178096131244315058767493611228318699639780639825742372745194044104126830877894200354538054908685383045699289634915971761379995967562325402003074136498971978623565454962399925354393564124709458952117958877743717309125635427035736726150193786829760022442492964967634368664967597485556282899743984402383813528944750045870839608470799498752031816999596587019110876879901186316357009954723161497893034699271678649752502673716825803947930817538250322683943878209491886777047558189019054652131901206218370656433986983076260276054184013236673516651521428491790635490900049426679536500906279552463290821259686397540145557824901441239382912344021838967947084384086119762203682751673261697832391059114431127414562147005485399199361577878851664795204399794360270408704393097747592019873036833215043424473468640080387510346284296681877586628458120221991385380364463554757774363817980166730643607658974080926496434231471296535584804082209104027063334769186875736237623889012371017737295551293419282554399546883112953550109847623257243047797089182103995241553914854848916382017540221673223493817306639063772942731888012536938965845490622986840038891546652959880187551719171564246357251477828571503783157995287175378488763542021302362627512423595929233394804965215371634723577101839421931369021482597651916666896958306394362113578360606897758601049505251223274859337421596786332312114036078586976215488127575908238667349897027080708856321586731490694080792671948386923138176706690834965059503139996134341135931252999068475431879991564875771544001740285807465051406925497450227560068394173622700348965093777596859666678507548059634760005832749108815005643710500059103956096245292102582526458632429767906953211118886103028669942020616959884584036927613239994561575506396940871811151100994504651823709257959533584198285285745507239820371505424250872945093605477320498116375541632670633869197041150069508492845096209606665742595572355989328444176385932273351718301940188480865665295975515851140673839623790709932934190310473707237334681052032786354627357709089210638034114885432081534328387812576863174079408479007673649697420207941901515846280451406678800539321743401509199612387861494680903627073278019742235850565286691723297994533367214508780609681230523953836428516425448909223512131411802653985695043236016030747442077819833677860328576009796114339551510178308684945946721928319137744810008577986357860110043976647286814431797874215455442185233746450435745439321853895970101826597827106357700857811039357734270787671404059059276765400110118583470760541106974387884843988858998560457444860182714793098004293358019847105760456166394542186545228198352228776163078007083630770191341353595840523551783979334845602417006307281802723328751982522684235568774392615149889690517735134476017329150530520395343504893484601108383579310557602460459107439675447670527680292848885083064052958534499799137175100783520217017932670739067276814845468950770833378034455390110212871337107798071156141100449007720370377516444100163722660386858707642841488739160133902358102300215520673845173453715723080563768964637248854133101251685842772165552312203581274439577576856573282553946575515930947893560029522656763165246592837938146213123289726919428516198126725278012809882555957501971420113281371694624720277947951622946417304681997317163532025983926654544285364432515302602114515225645193826778486783190698652296416465159125152671767815275901582332410579043360004347206039627495914461726520526885673162053371538196337094620523413811404624677162397935815057486405301948769803505762724108919500937574467189830431937438426866578726261623543591809873407056726727226586135554359259104509275379252007830950992292336389898418914564479066082059018978250036438721379805998108894939284655845184100673720857877740663520958835209409677379099147654058448675987990060579009105351024891494603444756641627128855915148282422792247084051318716007845931960793698650336844274667139512993428937210095249713053646392488095981395281521153673792858915481765335548759004196597219034502160290907096405621033082922666255299368412265529768425383959206336865904438183825964436804534542681653696256664628003725904479957344219872173761477814431347559737234005949801493525132138616037531338832579912054659147980692546931685486816523484739209717277543034880399379013586513768378535766092672096999302353914698737246368061549837396971190797328514516613136327512665128184696320254077813333169449142481936023950807597247810795901190016020205119242657106823304892675984297801829711584545825315432025547721127667033450794323812322543900633865425318823363132963720564205376050581663302330578993520802415625215828131370891590639131285206584465196107571532352817273530457457108985566722296851832322237276467160096181864881264358452460854678279706876971023422366305526258470541331880632676769109471828304127962245872366385009427167903588293450208117085375737736895815412146259376944052662574471050467667341748082267675685029718130309843874911532371242780126566596233979216648394202114993141909912240455819897956049320081252335770594066857016729488874776746256232535540511397671215806957491622939454739921300482240181909441470598673945072302363925913893841582937862363905123658201883000334452002991694349073802589585758905146674975148835688309418013466396823388959741604188431872426326131607263938371052513659081574057566274872915352717714444456492909948178762972302182274183419700315105353422764205133241526851038228043071865859293673699245744509204569865236029140548194829951433898084915930746461587328541818494914439952747605331728700502853106189814812443725837519735933869061806975888274942287603565651099398860063392729940271231491016865188333345737776557011812980559570766561208660336045572324975974043498363980731074769882926297200430170388809125620677759462510400948957589653142257982947102628151113818268475405621331971994606479843448420617463082930018688848272925067903529568871642407359094977055256707434936703600482645001300397092161811313344293783862526400415672051254902220949959835303444848823042650485654666703532144721455967875264778114123297759541966069117795350520013040840685390164564537214219773722238878059819166243391516869871028837268166214793109185593457486615321308985810914849748068791764420081322522666605869407594242577789367304978847386698965864496110156328922435686752633303068845297977673288364898224084931417410393512717068522795950157101371616129675152663585965723919237435394714077153013212768765445416989916757674896391610172744597407232923981212538756218917140899491973572042637145222598439112750145833349750904059029385198119743732512303338194421816326885729520812783159088832360014403564988185701517360066926656962697024939366465570225283579987238086472712002071775198515041675830246627092429787919432408395625504045246963040897093850571420517824417391699450208443577600031775499913851979156661479706414786937986652625137462320491001615332469292372065813008400975086513609747505324429621423213035017737050649271797832646791378769463582792387527488421899744707487078663866765734928449275068245358878126970337298912163031764238501383475211605123669351511454917379541051446816417062747123474229787561516303384927290750988923665619056899340906924580818183325472259321067936631377199342392456943519721308586600712865316300038479641865538274556997204689239540198538255839613903754740929853091210314171536199380070375549720578165809122039642007470807172247260259381997354756539355171016035673396490186517375233520246927762528246319211054466843998562270289794369876145187907466960791908869605334980916562068940097153672526075080511623836091626066860836577500297620447687171813382003386308590713321526537320554187688440433117981543443774735036306061537111491167685615129807573879956041852537461455060089727373694488031874798541429657670799285231747220881980843408693193782777386508560402343247014680395405428264509988246641067775289647573246309981981066427682863185754333091848470637407005297439722132768383743263410889575734861070433232087209627621404124646419948879509733402204036120651899450064080228063987423444572224500560403896590410818532535073328303716249258895461010328070331630194968342375064519958142247079740148742913713764148703370799667208726138891213202711349388618207586546581826922542996724281930251099133504585442246716783875046546969761134356802500859988434647733357933080358556162543538976063962756600370218871728399560801656916551681968935306747893202841132464485048348116747112795558878056456025971910102325722980270928661961149652127583500111625755196321109784508002045491668631512069235353660857855782954274845790302036929327684670191510296273678359746684262481011348548609729093259212106030016276695665225288899556795468216521280269235662194004950949715321454897965642613345940183266770135165544354678005050184886986984084465966612392441001416263044011018371702947918588890704092840208332624695016716429252058308111772613816557996720084697546324162747700857927978786313684196518742579888672681729445683089955978648768290035167372844109895808333976271762245232614070592212752467222799881646058868791894544306242639958252879449933120239344524147417229183844930054866057576413889579299138025371264161392391580070828871634727333876493089754690996943131178869097002382621655497865668695597873800172527663428354262891580922544983810632021721583639343807175060501622635708919113543787956975202625559699714220906704212367067121272578837684168636115867893659498051170577049797288266121967140464984802263610992129370100932677623852631730225502314208973481916681250840756478828974146573550212751689802780317619163154645830694962823362019141176415018582095194138064676484790224827228171159027092847590010231333933644470551038570849297380662077592226911380923186709883727931990832036999426741545409357394996831661737652877207395552192407184353642463602562283783552269598189682771919031710082141745514417782643322091226891614842155137384838216043637840534123980980907597270503615885329543869630198001331468541492667652140414942176096435093819664358020948203901191278236972287104557819482437895092531857010661528325142922161225885485662626286332330770866314087843800826784964141206049184727668501824742891912063427350362192605498134858199056226173266604256527686596762914104714021156083237296114388544891440643898383113987425555835324161857800530952181102218445636464876196473312454115408809242818009043522332255599583987113017980269997433966545445452242703587360644807265394940974844679801048724397062028213692206611789308264399520079033964234915576140009068571712677020660416700160629873584137449302337831460397757493052472828009757564509865522166684953547290417840808134362539809410945832720101135232110911096223057132939262637506990494409101364927128902606438678323869038585450689901270666650789935506933865987741864864757748364052521431988791849428049040275920568630329224989585574304611450935470074063882309477431079615417433710961077242188323941046843993196700428362948073943144930522266333481381186390875732558850799189408175778079140445231102136035133670939768346012253291450382368032060692253421714464018216702484274718813104927033983715102533065472754355078016814849284753956491248491159527611867402188203256951209160654965057214716175047234287079800593609663906772332896942975111212029809736255401855773727008086067777606709912471123261250939327371369073360591137193387845614153101995877059115500570284726487353591066257523028581689909253974698706019968252357064105639755278339381434114382098764236583149646697975455880783477396750113580370911891327291798465374883410615308643406113386356896165491092285967044831843388810300815441791665949461500042766258720845139861320631440272480300397787427217404596580986436489261610426748405531002555459604436211902573461642400678037086595143132814132077624489402713628361939725162506021013631607879244572170900527448952368910890359074081471597187454736270852677111894122639193744318311565643970619636507492007755278986252184367798956697719221797808569235293442082515072148461305082690482487988552825635078745490947942758519227788677124822335613543422363394664894649032749000594573370071286140856993701647477103098163870911229052409058010537226447486832371240249494781365240330729561389075026986025227161770438658061476339006965975254084198405476135566563470893250765922615255712750773784003875713215117941526032940603987723610915253302616613603080351164486182910297036392468344315952491011148531636645004455548505634442669150861065154187143126928209943579011447691801063777698764776601421809200972906329835940234702510020906110429012305751587409435368016227769283454462341302174987870242852015287764610785225640901055132830089094149905272074581212074588766081547114790552729052040200265420915724272094930715997453564171900656290342384280488026034949274573204926817521200164508989430898519059212586574083284481560696696995226443708410670750727415629786310802391062971699966283129467933609541351684236111633389663130651770379247100392440507272272775372879810312150420112836621601212744649734042449464929862856572327161353724668062010257470222494183731612436552937563240518487891413154651388524142605951694891908525278797533249674056401797535239113448262573593774163917109959723836789525957044469388225385561046152559687183548924108577984035752779769257007022183617353459977932061092506810863956619350176639360133382326168237313811269884590132882543868366722074604555639848774160606136809592084430694384706009661145559190423170244132256699515602369216701474744270551706468955752485554606189568166177027013231507825748394691817391576630072121768715943367762790857384605317829575376587459735478754072882896331307687674035773199539355757962591450050105913095208331169026102669626787939511057038619863463891764566625370809952342644954519220783654442565856381883826267898546021024503000981866878614682608598974407391945799432190849805760585786747323450783868879236170206270735285136305880989421425738599745048997307783173756836399847389629888362512153757652869764407874325274943686230599057912643160167506986923950526349788677599800669371046657418581168893326595497360414236812272630901254239857732056450778621280324225582879896882489922020723717960061949732878706983784662881899302229759327854713594721292194427723282684618860448484877785279762746436478054818809329124364456891561956602307573688570713731200041274205692557062078067755203640242752226509014302812325875023756705493964730189781601460255451221062233785277437184361744327878099994447911234704757630778234001319725869396970693701813708517835426526444573221840382386141822074542520397441726102138305849496699470858932698423897550032050684981130201337546872134861049965569595961716743893340730456871794992360280058937553710709509069797944515257572566302825141973154908231293644116751145643490707226906861170471581720713026160616209778045766064061498828556591681489019407731947912937075435558260977869490861433039770145227022818253010995152562822367153871580605858318636480088444606921241244129837016025019953192924469839966248335584182477229545154697432173387344814012250906090114054204766956018897415680082718095952728952537477431940003059579107877104382791093724175558464862956956525600679138832012585998484922249361290589778939730753511773942760630357147784598200483232954278740406273307918875198443966147387377818765417575812102835847598424256508486496617338280156562132058388782827821325947931473336774781805371376911285614930858847078865306999912522595244354497921751805493030695195513237091530367072133396042265626514776873514112919902749733112052095842580749388600315262858267412433684201069140645731668156107515012672659908892675164546279312171027334438547056637773040928460097440615464093549606899528033936180992525156020581082199901192471240548681211882703226341282738920914405336325851304211934319542409714906204380917350296151941102881158868743123051546670329277984257840828824129140109837361257721046393203644319838407586327044769772495895326492601512649619696514993546279994585463040158192446495896240786021603431606740497715490187026386564018833510202404479844506516021631181458581784907844682518708150060630930886784533736595854988855733001123687903916786993833163909520258965794659239090318974282531575071617956632996597290174580919495407078838605824870174832625172992421230824478086130093978832097047500891773311607331560426932561912809038607778995646377455414084453998252268360310706973490515285651760815545679539339320809603133429104799197605691636117618309772030133535891466979382333390308510720390374852217384702846399382456807012513579315919423331193525682348183516461499082792726193565774181186569953174787874671423656077647899807642053935854531097053835139015649061202002343069001060499393677704985403270507532651800178044991904997508901018468486814074564136801626076199093647925883058931499749679830429089062655042740711229472563969448532683367507008700144443551592979419511491117448585438216885517611951090439897777622206097355771573510929260477489084260917229739432809264194174923459744561410596812135588746586206979011145800291071312406881273102710742598440666554978216094494207144734705081477655452081738963898600895949434557035267928050641571603505901368250161353060923911221548638037578852859842285059917308873175507761364406812580600257369617571890873827180377800171204144421423554142587667264865119920451025899474534002993033000015848190757691914951136933074809947818072443724422096113287993218349604239758376685481742748664521461674782319254624199994529335668515208229048722660121377398246855878533589980903798764911801257198153630178082851964782323320638568516888648837833094693666300118831493279928209772094619890603832485539500254001809652549295043828487146215604728677682820224730621352131355243836604922694000048841328282284247428535365238162466602150584618913844947642228256422713178132411613369452924188875112505498877906935629307479339176600894787527266031055504555865879493255278406562596402359409139704979192449063875351367092649133249935085579385537154451419336767991082157265213942967465286599414761043339390381066362695487633204499129817542686013334113370194417379847643076909271016971256550590243153979383699570077517473200020133696244812130701458222353118562438091212676072349360725294526917486643963966284917191962090301390870915124284095738926459045926104816401846120413579016856832233539259015584376125939520903322319816900719988410356176844885271556388247705498422128257131416145848689578198893826130851177857117624407238936503809744427158904823517255020851818336905439158843517054276543744340556159434989276870789691337241536952150120929569636022967872391751426477816454980237349966756522275974038502238008129509755263040114002065495931318474068010176417399835756913586110796338106674103143635813208722334948176130001664873208084452268313676663541812016278075980756515988647679906448619683054387143400770647771362600704925957644670592331318751463058338831674342650912791875593219887244199190002056453329419930033578762337309395948301238628885805067277189751128952115594966037971329957619484902795366575663295689041459865235032679728683708078936236177899027299172626519891370387687595202188988231541586139553882978940831873693596488518311795595949826665544895021237270097939471445682033359993977514663432187023710458830455432687054847746306459406048971152643445755130796255539723361794410316308257744957070353803225294203650752687467689035485415206590642594646824187045565839347881407704042946529216615449394937196065068576897357381125220419728686929839796299359179818189198670659379732873887751528633858563980422370761076928276895448954840577136410129035425264269975150643934608675188277163426495724531891259167025256183301214004665404092103324953267816272273301883059352741041241322836455862515995166680357133338106167196125538309597091045166969633665226064052476670309951771156181765813019721690690584376710471914912476762355855398609547572582745777237853274494465415163736489947733809695990142977544967479492970100324328556411522554269928238801992354165147215870078557755625212295900885096019833897387092433044032852600009479584024490657002795990330644263214769894358072873381382111403648063349353176596598759610465297317333054817976630085477335232457690281583587121151804876454305700160558988602598557928727566526645927725211812229414637768114465855638385463618503144120191939086833674968612140835404128485545171996867079216275846552087042564155357884036500381607151463495949908980455532324442724306774330461366896637108234458703932229810482777996966279260039879975019694710708524553186085810802334271954323678283218379227171014076830333080558387905115381154315936593368153800173660423998592144917117911004312117088960888807424070603400877610015014055338814338031284876524378618809117198506093174134391222967877719388817697987198961109470833664084222389801269794501551738405122355094015657574585490114330731151482902682376189698863608416490895225762201249315719031977561086583212236079926042733271678529665509346858184053280782768042648932728205499407624346466186958464044043907874189240251410845591659223252298426434234778772764805384273434301781423613132515625746105179507283900348558107914498780580365443995888190673314826639935386325897168695531447558947975788695853527373260104207540477158994428009959194042789908396644299633219971310110652975866422851378925659192419417934565786377511712454678218561846984689802854957211581093270344948176908857872650677526451298440856765555652361177898582448197636503987917264308288312423147627199398744621117049445636817759487051141906677645057455435161889990044883583032317708856128965462335889044254963178382268515652192286511964094816693895323030782662040904439394163373186074017217916091412564574160191364705823780571781920493209953288324471166036463618310879258482178289600418977090578044958553469523561401896027143156255294750615109340793121505159354320415696820204811199802413902869583712251951426972496876883164403961219682366764997802252657605055956712458648749309552436687487022089583628727488581493022243968342246083142390043496581466128980697394550540526830695219307880981463789598539049228642278193987033176283512096429944069516844715587104481033420587910308523894261097108182619288470135820013434057035142226515089622508024728551956359569862116727191329850963772287735697894998055814993723188188561816917488784598929704626164257368992047102268672934196532194643329712896891495118696093397742825489943354659833387207550642597432493324503498525804117800250088888986507429826002154153264434724682408478007171676363820097370808695789620977128679160071829572948782561091137549752308417157743322378442618903346133244499714220811096723099352883265936429692698392743421614250887147500097106826764001769214614708211500669991279828488457501617045419958104317103864075869918072141907867560087628994191976810389565821122219074939269852254036087105083093788349375514488724059922120004414977287034305566564290085723550117306712972747441948811624339705972662199297307231822114140853522155158650462822043746752403246349261632550251850424571527602766363962681071168260027960100036193230069025339478737299023254317258657558932789671718583074881118758410690619002290357451211187601934182722524582496339839725449041194621807624433131495654309712351728289587653465941909768491719464717941383751521576658470793105985887419357576632944155387095565217050915146959004467297868584321557683075684229487469444670413791819467068820091328873065873436060800309537159834883790288921371692179755832617478270009009737510825779128873695697708493620963841249183821956372782438028225920587408515055349266697477578369126726340098043847498665090635145467724772128149319304870570908870188858315172072555299238000361417132467537727585126823455001027921436504712137175534009279276178918589826927203040277942267905736677702285847192075500960603170448219605382274492241947713716452263232261461602341083888979136401763857708843959669144425659345196858912135400553868826509806600002431917558771402997824819174357051009030410327698263545839233764884404932392172300388126309317246020893975276550477912587554413205358695251241262815762106363856390492162105538992522323728713062801660140792813092270316781186883597627223360080187131129978287948147557287490028000183531874018549471275201769445357091042484959960584302782169608760939103865795099569374421561345107404223877033427527632085097598246899221209042434814546871676504198115476677630037566253769695875266207289308717009243194537686682129215372907346150091655986236205373117881018397536180699418299252031791473700917058988276756486339768138031233120937855989513895513326501294408320861829063129284151425643549537670585236952405169145768855186575447369351690948641609610943731292986336461530176412408159421223146459501389065508442149914393332837133448032776690741149712790947362115494686916439684594242737719402661524011174192569783951824997886816002471411256126991096164396052195672501301490406833950525946249648402234033449277747132936371414844586242233184736303788834952140440784902817902051836906975612943547175341583279548435418345848854149401942725544483624461830755774534806738267475848815200874701857884174090872480467768413752720086705741653046984838117997096100419464142342556475523590110646381515394322681970915739662342235762271893005835770172051252012405688883409120793136402945713944360044477268265572205620759814337332843929959992581704051965623474209787432844071432733667300147302336133317806632108306431744336295226037637096179374617140482669861418240966403381920878961555747880478537432162123271605826991488800627929770490501568570004642973615435547243792374227203672141399457477076507633005746614765654963158147639625707189792410847258374220615346474790140432665511493633157327409879673996678906100261692575229657394296158234068896755230299388453919273535054000065479405658780462978405994036796109780944350769791765027494716962220479617441768573889501626349350068104604569401752325469181715877882485146064456423661605335025184666551052369246144108984371726485622518609202730252665511801033562135595300787700420750308188630923126028108704768188848346557032226939838961511312532934016636932874242710790615851469960934257356130908745555820029381801734539862536773091003175035184094070228971958692063703126895490602113450608421315142949725199041729315964668551580915171272143044630784114379843200227585342281283624176327075135366952426461580261682814203091063963125999358363325383655323760128910877965892187891569435373888050107271775251387231224761136273054741960877776163923613585566272436081488123319290440977347452186295957864180369789319799254776851411122780681802440631785131168859943219594029541441185369566880846088939299773232709039907805784209134561829366935689347886818428897847150967060438035993532677136382910176363149744431267735074845621531085221095315316558817450646719320951580855881567485391668206235134887978788350897317745220440343873811970763156268457811889339871095974158883217520880665980922024129242998560272735490072622602438497966910176068272561831143293030597961035264986811604720535735743493196423435650173647146007227562216451983024333906801011613946248547412763686839247530582948590276051547404166757249548352184318055156114044133924823567136346030196826967593981314496623134459040146351828291793264543580523513780927298997036218768719112853629865946130379292799765513134516107543542105421390646225856150545793212948581274456537964596132985850694969292479747976784153102232674764582847136374463794155444498716840832058734500353569816591143834513876983646086662258193851587493412958417996510945157965049931936929014949019975827720745838464802525253095096892691703078530897377196950847934080180239394633882286126806400979923673327052800021260624290787303081320709232172961888198819302356155821747936309326237843218699477148934227338335592583912735093218900244917715579044696337951705596351762683782633056759882082009398827369595268146636866363882786475475230287426980423826082241339048608571585714359250005057398704606146016488409715487360488605665322585751829304789797650074990447703735863590978312045095824794783480327767533662625214064657311032548146862461189645132570861313305454300084505068902887271830784902760564742878887212142872930561805549131989054585476245936066249727344948291905470912114663059885160019647968547242122484175854749189799477762211101303328021638676732205661449658658735595739807768534378121272435389805373456296956089224019353153479894636929817894948088940961544654101087810005681196890882897867162689513636346427269195512897569575668621608365914370073670235363493982519669087664838041867407545838150008484630783564681892827128454904721342804772820743671436919159740967624848097023131418581248921097049546951797159520364576929354575786765402841208054261799233156242395300189761657625645431419539059915027667616493538317176435959176406991859861826922729251059794621452461856760048315713505354635129071907469584029230047914031145754740995661638425792584720149018621414005589223445012708602701739793309843366333110116638197439133219182971239142576528120737241954762458092438008369971981013668986900694314955392199399284364899262422102592604216433714571684072929642825876362438963890125027665333398173531862241229348093238272900061438851369128379673278333426484934709097465998764873390365232701253012579480814645926910575472032795239992419945469110372028750821981795601864735298640952533632463335524670845279419735147054879069913890580545540803551014710666995582897254667208848536061589501968349365049542536066553320682896833778693751257155461676130811497311052721742511984409679845714347071055739296497516315810230612229806802020253487408599487884677122107233732385960500705260650568223924443768212654700214978248906216368560806456017145759537520596309507857783052448560937918859510726296096938685648911411407630974450850426931362192700817668692767208458711862803458351483384274110839038057769590001550351406505739887654180731455953220621328525057154199131208504330524850678747966531673608419763867492246348687880765653501527364162877696557215952027504674759356443566640087194523830194752819739070712269793207712965875738027450542750700589112330137021156834369554634091637607491905171860058581443536156078036964158013564297527268381968456598227135556629801311349419144185641367367604693261945882868904699546831825819159630641309586999039944266372307500197262012150075377254818949660438977988494358081367238063341518329050639822920913860291080541323952980017253367828200868458401654268879445293493072375081388224977057882941628680956162670870905962299940603085216437866268975159481974305366418380485019548486974507727673787534861167333341650548659029738643110409915055809477083780515660425943121275979274304693319294129370705654030269708081872685892192585339266914388976811524238349559184173084906435694773476026387989346726283243402501204834495547005033935063693729057403102855590826288879139606421610383432941309218773055416595329989320344641403271296741097803185259522698403318699048822971686922049574139798702883776247755786571408686126328038742079575136282235549864831211841933633236621378132321063239770245342459812646123774569529722560401846050216461954294900980043464227291980552714354440580459482748941084357943272869195063517890804002490714239094369298315760420886817963296652504832117269156124787748032016966340800274611342848401466208958111777383809213020347380773744605485353519201282685982967284075933847520334155106709182304885463744184202434793202671346248709234708363731865316735523021248013212401119206658300127647191470639545243672796253622777225910951859638335161435275306255177257257632430533028332791973337258495261908216504500223636973681671882509600596828913998726714928386748000021789646582946403650847976480053413558832039604302240985721998462709631451679418336670400354333172367135881221740639216983675045374060130242736173893016869154270231532035913915990552271675890405671463110618847277357761791376100048272977272918802370812205084819904330363020862294981044254500709185839335841011675892455961566227522934555488701038503222389442110083007778602831779372134497487397472188989084473734916382793221530783459953364852857695489709162831088976726990478082756265733285973852997499038198495962932239427361968026205121337177772150661120843693906648059021560937334369809614632387247817307472983498255467213971577614092472933347996758247769424566780190881950294064199308426401935754572872960850074354809437974702323875525684198564617845697931503793741163873391162014261892859679155667438237936134688607458327425365907354050053892517350026396477337970232995140100951640646361975744652607710289512480415669022055846165946435550529154684634180942248845947697225496116721464762275376045818368204408120892433113597912083260388834300838178601876337141840176296246178052918968414949895974937803830315668706676792091107632693282725862456568333897179027656124273001394999443678651544019336814987283856420786948095039616815505394029657070104831577779959369827781275243469018809783507854013101321094888292371494489302477062458612409523616701523215781387946223512610616080112929264293332538495019023710762491328731732979430877476069756037210728615392599517823453857661359665919117681207549245425521206876521365016099839831272590012483499867771077428551559362043909183129705563723862330546412064876434619417504964784936552401938723272290528733127195972299889834009527863972767897885711649351311435814970077142702514857988019684672237077809743722274869672737151070806292281720780216185362852960270166261195781283497559573538706924459823344058020372262377265450854545100566144650608709328306560264158566030940180745663086019555942426888218040093689206698829478667914465815081865295893352313067492939486588416463831370627094880610560784733511760838927024064565818665232351204280758896743020431900931063747766043140011743865523888052500667916538230123747602241216684982720097829447854009720410398613453276450573240740034397757259209924508506454402551152544996567518344628038776738642467960044087350863248215013582695620905305158602624607139230212262550362780336394907566991404329213751285485973883310915794203562857385716752005517953959271122442838375142264575636360800469989235526340357534137355819264378485033299397063305483911915427385312383915581361337728187971286782438318968798258984025526830124328575027215703403237348746210426924980140592353535734273928774342479317435539388539628276907708165287976031950294085295175640116226568330937095478343492683036830864798800994950761709570402963420838012853467958564754921656828285185899019354836737708883065876792760509715691295718828694034842588597348815805471302680144864285137010555773867372928104538906777539907328370885887809120233790932301811914611019649117181928798130133513200359568021236349370392924545511802291595742136538840623959367170173540791512853510192738661513793950327781955737799074629424346401387825157567145030986471253212473402634693595032464482559477741766845470810758955795120001509922967749155149354587088724461841483717918475107088732942511267191076963597684328399265278076707709859267680735489985053736180769236935324207532432295908212932746982336726264608343109740707238111438253412670557985711037058243372823952489766985168809140555155160902315738662549215648993343217463984692280058500580234458623339660564835603723600764291991057267027864861803735464385302148412318767425355159326427934757434707875763559908418929742886041266010117692413671748586104691762847068376370198735332092309228037279435927424404555787758258123708324940825986688494762503548950856798820445842038948423227561970165631786843392173181990521584378793205292212995463523379757447629445249277231792098141413047805823986052279357059832624650222125630522665359277757457584877353137701680828626989853776488294564323680900679776342681425922293470492388127064095440857552355471167572287576907829755934137324240877652438770932675614172947996716208506616151601015839165839173564634524587667150311674911370850402751237483079800546497865961715226561238950225787906261296079153366036116410261212245879154220408394234499849408977216668881348116912323172918802575233872367588574636343372730860622230531968977223502726440165473416835357589839803494965061713907683522229673806023921561340872683498035542257278506824151897594747507593566853905333925438079507730492678092972312754593633380998119032494752825662163425307413664440894513957242745674584867586152368455586047458057907744032558702809575753391969651576834326066433466756552908154774132394621166540342119417523701313432864632722181601014210008047690072130679685832552273174263167842653107462893478725320716118409870402034611888145462770015526420504935384283832870897615026492526259294480356287511063812075835838547823749564461094573578830922945300817945897252732637134733686399931172480467735688683957818308750246673294417718674267616099665013421815134005356777737437354833035190353525304295746888488611132777332590310571048229704654391054083214972781310722829998060885657864357339819209787807587223896151978793861960840807743447358312358378474838640674225079667598785705354483563993936560807660574690270365682111959713858597607521546798509353256857770592447056574614399284114003970248920796393548568962186607691387153304641018946972346668642344394975339407690450787799119990761207460043239696322564309239025571048920531784033217738556268162293487849014584580093734832178908413416696047577297109916356728676348823884807298327101440394324003928610119455323143052907940344004633329528290963056856067085340733348637592008205093392984933688383216400073858776343838932716730596694980896929434326534048398677659445761774014203378698540190019876046491751514271850757937360672512017369981456046166087796840727005693451492243515838390328353548653830462013336170927055523916242008858028634552945324777309386478399721918041288651773323888888956380641325019044249524805675708732030284339642664618963737780142760097225112004982242807757098005543608212179973375706993603777949988486199531378433744907578343047775762363463940137904110524532896042458481666131479195087233577188873694645176087895478009235098996896091830394913009070767779745427200440438188360762389500692851280956430241699490624666998417442162505942990799250779620252164096157643443974150287367738973294660764902885626471917059313098423692927815078222301396748546698861381541607899080286165952337575203748254817211247346197182815419998905993805510226765486927580912854503610403984280667651357874939505921962265645729525315006699898352322813160855387821322812634515630690000032793660282186095969651418125275902099781032593891414818917483848885929333781829411818373530472936433613196501563892180935631207434270023009362434890726795212168133943095924006695763970379414650943907014241435725973577578599803783620964426201650568942980531398440485636773968371628161662397667991226407436319627172307306076779585912356338694533017097287879486207373188308989906838889734346056146418025068889954012035876524115140913232683415567161684782676535622697761154025402241108581239907393657526779875610387997858046508586026219474178655979296150790859541801511702673518985684326957824227767180664051936710349281495445630706456168249847893622164660652890674979775830627564541624226406263676992679459608353168208637115994689305934320217010648334596846725145682295122640958529234501359312318512297975611173130626945958035237649330359487201767278333530460447926084250662359423231879259554990318774657867629786106717492127934968358840309936689203555544377336604025122753296764412300809293677651861078972215179638836414179131553425337717869861199732988328001918854081931278648268058583140129650384404898562623869558856271946402141529889218991789309874556740473139558987700765196608768098056614479901384483144374746711242716359356861302470620951004986702916312850521025847473784778538855104912092396060612683478557308864135454070151107622914398408974774945633064700135050425050927181214679744448756706278273629134784819981397510369491213012474891549895861836520629221292685202474860940582225813171046006818034274282061843838084442160435053846237437622424200650617799529749035927001714972291047880464990809847436351512995597866280887002907459242882187358052614575542695552308573758120221393095262088051414020747641949666063345771517863489098208535685644487823352466831600381962863616479491015101491264780174377495767350088888625445362857628945932735770813734154115540652632925458974287500905587263280944397660313254013930184560056423521949813168295056084436777778025533593259280105513591405478430343386758259757601571839973572307885383094950008817713254728823593604312943453026520796690302080948383634711530871499550910287173971324147195500467393630916027792437849443937812897898732362287755308162982740551393450081337993026968554994329526892914140428193063558059582144586879460627252575809982684773997967657121535931672472904587288377303843611335056547022243376449628066779834615138832574026252934416504676156276031520425132872976201704317486867502777634007839756826483187544763729943059800279273051326924109926583093952171270693801162113047217676425570350273625325905883891757848102292484518571745962976367147079792596405545301657874446158996846158158276643391931548251068477044208834968852604628332199738242046707514919634767708058727654016350189411562191488049967135495204740361205993172341823870032323612617790674087305220730122873178190058424665424300576348150592663227022660436358403878651059643627213410402525600945384148733308916791709723255920899661923432447194905705091926049528584622082726186227946514021904488397313269617148593220090431102625180096670265610134950090588710224967872351528992384967551788925430160409620073766408556714287377773637466905391914567646176213908034521426002688206251072988472483931995903108570748567139802758964471915258397844954969306064016052407202827968119597055270926877867171076327764214520361926523191522358814948025539134331992398991758864115990819293494162442495791736868612876924429028158843715857002159975135607005254693080279797823949417348189621769557515720914465023358423717020518362124196219475892809878120702265130612449342342773131482036413363675742090363944803198485520803658644769525006062203412418743678432863281555658475185631359603304954649124866774696836330422985050871549997423641443730966608368295114406843911778426786717469207148961742198189479314205917671959501484311781656487138788248491536716554483531795149861057427629019166579485133876030873406345133297725943987002443942451469393072583419442205001640319454506450536044949625003482960078147720796350848367612689418768909368498298671504085496633617368750039150949833765508858499151630067492463224813868353044562765722135745063665309164964801560209412559596479121247777548426523098125277917066377002108607496412620177985164892782174706700058401916901242394838868575937853496954752665468914875524794805834728197606506281982110132468154998272948539984656513645731857791062446070340004614728715622965358150255152426014064131470725722987266437507937477570819752443266478538599391291400010902820181819915010296193145974256829941112700736056976019991687348119877380906402077483763971814082122757441229199869329852299132734833039731916755925687918002021809114085066130526616279325884367199322478929412220901183009193904847883243829707075731182874797164664195252084688385276943235930083213756588193667549792290636542833398127857428288334136375496431680067351938896566821029495875126002550555478684708088224494963668760083404445688057982813869525498560608879278963634340682019459763083943224825649399750515018656622358586921589829521513553942727541769522749723987755186691650506140677730155121243235804501245355355233211668238637830657418561346060633239999893919363255773236058568292528423303256810420092346843008393758876283546748521878447686693070647024047974368296711258848758303678325644055894967322725524158884034200288042268730204856430756689656186191763633098151437393286082143911611570949732337370132241979749053104156836023589224628082579899674598285939046114318775429584556595862650291263017198995319561197518358260646096643190117253602051234937836044834717001016145872479582391547470968404265105362519552566928567756713033102398214682768636853339995573547211977670538308577525784649036062344462746245504102892783869766039034503800680751771829359141352931536234073561607816717466779950725491189457292092210971106772151354630960209987870633440816853375462603713747067619070094227041040161480618909094729193579911726018985147780070364347122683648691433744843214339541749642522834773087841575187188299525034209778297283186914803434602513202042079555488052906604703089265462362961966319743997061494034793073254336246724126219667373654500061263777216703027544337278233072454726893352242276441620907058954760911241714048957345919660455367645566554520952857754079964120473045882250962287552435471280684226027638793825052641339557641893090705814912806139326668092236940226174752430957470424294401332632802140688933612954278323088979291036980313526949210530186454323086645260711962261100232149702052872798081146099165280184133921327125839738012882571695896397808510046161946536643681477200932532976145382636466113225660847425771651490916017825817473984037687465562351960533808347796413918008804711758252803350166411771732259903791994227329314214543855375585321708158568840485658423083049437951857898968083514933967803095723808645175791911744707964544326413475330633723708354407551121070564961822834152659494017536601416816884447493215547337313093345336543344274548579570508830963717172861787934789932657108986955423722871842679781783601863932542938701586708210539784119563330167294332959326884795333062292248031741524408099733796938765440450657103703332481784746984813002946778040476135360850586839941609044437835535617245119977752308764912728906050980972588732333681055557363798641708293448787262181496843891262861105686594239841923256231092936328563681383215219566882767742543854005209581515365800961391872215357355521367329371346913376805340370772841167663976953092929966986930455066433447087195437213903542769455852688614574559375361392733742297633001311440057166041492711665696035848774820150148286869668522726570622119547011247774269821732165729229742098708171857904866421682352565421203263395980460651788889572853289719308752189225185684147832719304226960091523988770908574881080883651285693981529270233406574085433268486027781435360828268281646113302394759939708077797842719671586044506220531806350443823168842495741706385038089656273140674452766886143171712376001585959321555619191060785595805151244279171775102234473387051438692597312715551242756396370733540630173846517913988368418099384212908519902484261300438644542967746229214768732200738499735400004460256353874348988059026429693412982267216258206880496780791057744926005516760900259316894255236997961824731836255541792454811249226326050970813210350064036160067462078393619729839951460842865153982222242966736975413942910797402265391387797069256050330054921822067033996420973638830893731169006953766741675294367108737079042357048496329462207478051588556081921929178648060110261765699696533056440844157533589831794884426051241894422360661367379831445196982120651107568221560331110596437771988557896348365710581292138841900723292472293787962861189896115002696029179943700113326222867051108084396487543497208490122504966198046483682348035131520842763885793402256250423038118228999090386121541787733040676033505441565570987851499467481497906147643155702991125147034887324748496241315863254256258549177284729870243282475365366329141955910973734205419459380522115262028285165210095006426395889954500218004892080179034729965341435595056182543335009615602835595020920770303168794712367054686054691447584671537203911668383119613130801492747622767130674266189515021450149056487589821434077417055643636875519236783056642176368649031083215517957533508604154646928676943137913954649259154932933533144567784338924072749932825721224644997136844758305045811090210923962102939611619006100391283885681861119581682002499219088588421625777654228426970270347501734187187405324624000009007266556012264773189465473749358081544448963385914127367231966900850513850177131921303587684416326333068560286978211005536844431575400817994843298495855224254938077055564297731915108706264188490560823059059882897678914959480773040301593779569014105648293787637007796145254756907390664489401691769058231027581367277742721681162639850385617848890296197920369482529047342862678892972804089052707450491097940861738370795930619848833176004804378719212187087064906127889016736418581956265025949067171706010716792024545442693677963262226878519617290077161105710629563232931751411789487734240267360900913363086221071514830273344066938455897724996635709344748513722094224500792181889591630001320532702373106435216744223328421893952076328309683908355420044527571239619640710275962047393187550769488468779014410201024853783097492521745458326923734315965884533364343628327725644552476034196547458832289213756805401334393865447383479793412568972047431310549644763311319394957499174027202638922039272463279792923881161085434199724428717289643834323933928946615968906472452555746875949887450749609450828056048759491191010465966049958718436809332100291721584885607774631962866186252608563738455032280239041039900121705903145269273963945411850301639180293913971820380277798926860785640895480567528507615059109129274635240401965621875880153778952086595802629731826325460827614138665961513747669436508482027588779981815026390434644984009342723300185445919119440222906890172105905887986039251792280231485174351368167206086894565277219150039658986855570283938351583227045769474237525073442811193419752745513642137814499854953635613714380646646946012638195934467778434565436131216381743679401971853370419055277803202720087230441440613188402465796631758965874482194484581016258603111712587739845717169485030414078001725833735049347405587181671930775571357119650384332657792108740229937695200127618310348928208569587404844963386560137345051497147566111949866256481003724393501339268980370637622943825918038455745548419996091986197592940484418682015792919139209064440961505054585195876169320488332118889183072888350816104185516877527789734101382125108281550891263950771481810774677422214932896244499868767630170973839431842950366123268342353395556968279344387515087670287867335630509629483937032383698031773375542510686159937529018383950781425598164957193609579021453840145900830010918225971015710826398651686581043138000632941895412590830256833109805459130762315000918691236322585149309338660635816182428949316777877121678044030252387153615087212709330735853647816156148283531629640971547296883972959514327770956518068083722485372505241307960780624315128239079609258441110751481370975165915379971764842654778967654944582981547932209410639052874762857560235028201653071421465076102616084477332565441348132825472384143506124755476097545287507302108376299532313067049084946024015981216442546949957713070198213356808928911039996941828406467899234928929539247910536977517724235982150634696551722414627011406293096403979626950607119384337153342443653368284251306762939781383464168028673617448718453598913107851552373398980590383808625511863835257792496111736743820106283248304732060157123666631763487277719759575051772293628648185412894140110798156051472476054065483308031827125992501479234598564186678144568657910562050463482820207328009628311966010993486004446755788394097954945788483643231861226958637384237977588653606791149234132718724421503585800871862350256020607922337393221418615133214522969331523141966896066958539391143256150345482174838864710328664669135545179895113568032323503348744477606914606739544822679643880628554053356215004783622277494444211815104654742879606810622741174187810893650878212948811270609657933799151016573497912490271723570071040617172463588845031710437742749940428752795265478086875144110791447305608960465314052331825930081436791191812680941929792525832228793888018598368795017229016365965478845111335619313052451906207310296108682240838165057980529239831920217627487331850498590345379719029058343750496462401440471757084912764261432088005265078428473983115430967151126029618976425584741772655635932843517818979417114294244013118970539593907303128926805688176916442128577600387985582305148412888754957146330663281895344071524291133742352920575562705792261309324301540026360514583186636399716516242863407684347054693115302112656984316034664984387501996219920997162213539587713643745801887477493561830631743962266984790645048814583565026451742774490227651586432955081646606843490226381597409298537989860395633561220618094882101347828585784566460790487279579316226761417024187025007038630411360172607348560218120837828604882673995487850143114990944695925942495033053851303481102040270013927433722042463154490473444584709815056268178064555994885414964449928025701168506508212254791812301623160518208578727788198573333481409822138327167027209520782766776028586399577411834808859363762896056703380200959234649471859669697480963751875693271709741446003575818490608668783674214756977086370082777316334198753311736974072380605039310669226188630411662633379589373757447997974093908646003958926632533649353132634787274577596955376476776252597473808214419339097562161285780250419806176307956921017160168692742108523269970367026458352195383839803504879540681652220931767552504291818577740823496824712089753983972316232011238736934992953580067114667368587271125888258263018532264121781109218088272595120613564946897942878409648678303303084332175977091635567818084395647343557177405983902224612131094799775586080888970615873757137373762522209626346327211815265940476557228696850575369687821827361698851787345219146759847805118088447781543139132363721595861266640645156600579826464942355346137369840719370920196214535517001033588680099007841962837720295875871971233066248459935275569261228383286538468760976731066194908655338347068708139405290810274026812030606812494243247865009399115578277507896910062184868085493228642748226129201999369656530973804441427193552806921347205379672283169550242188457540429184757822196494946938888918456232376667898864867153189739357232520790754985727120066857248330092798437390930593395458614023125681828231634798386130476264397329267319256166194861645452673274515817091283024489611435518634009209665860918783541108766707229244827990821144569657391483012237911504770281608001395325759699793848377880964863455736403874698021244031535606763788550655372026925390333277289129544845447031137734729622542508436156550402980621182611747926586888737182791774749431993403272672155766087922149060350318668299542969250077167148237489174208611669530340051063447227728829907428537390580313320622460891142414112572047685646165674162635441936581849211318675603932259523287871368355910738542479644547706470597066611313658647511956392710919331787074844072888132929770810213010010429707978126484635880711225365366204999504106592344899991883395655347592143163239716273428579847471341553861748393629094134873186145598083621053687328059358867737143185599860659837537801136255854118577042774410677370595921976138125033217701696331838805999111294173815115906084330715142040425708423244128695596789417377723680898451378934652320763271520442216582549083250876830764311849879600883928567756100759351023850519705317455088324237427913878148458471911913687159017235718666777432296330722673292616664579702719205017899329483122196981096708692765039229451230191615673986405980005083647722023837899504712212254777440996630569954972394774985131466551979858535592337036927544812353782713227604665416238529355794945356582523087843822299451628399081116747164681558102898558627855089341469282139193833253229088633775845184676997206659530721960798911012760942418089364728612198198057667348391013826635623772805159370089908268853899201978444333865960387969059434717529880485633184032758510579695948426749389780243936519465791644789248408475060162094730034181996335189440452007499986786405359791690681359915484775243841135843566007314925475098106254071137538638812015855337975561497305562641493701463561427474158036419750029414163418065005044276353560154138898808075822826134713134088435423170273618410075281997716669933815282541139294909702055978086453306129686646723129671043362985452918727522334402902256921577838702052398176021446159950111123616481701382254472629114435769335859123300482670219277110112394501954633170688929335190450183334219826557934405304469041495622011840006362250063633467837647148162143269322150741809845922132851088667568829983128659323067533326290063406398462289173156701316438770238205268191033780486295749854952301455113346081544266748616204199851910303710720175473041131110941948060985252406972321636194619136185489706658926446987682878228881248116275927624620001636230192872010724638587120904490988439841374704345688245414020110410597790149027746967458023430373258176520188897949168587999843117371939832548520942328034019147073241773242387893127222740520587136639622331815834026448673788456947142720317728081745736949760354278602934523226297471859973575900234460753514937871176708044730574190886624011869588984848848364985751442941473586547278601392784694548342280664557538924461474899722246959779397567556704429466291458616092782671919749483915957068201827115967057891860099502108907069200278112797198417961487497379473924167479255687331169561131408836558822830114695320780985996124095052794083974004294103098057854454328413315333185213976929892462563800363863697544813124083490510028964092834510412283665670343059878057979120422571894640235983227088476483285273465929268791774510109443958596285655705110444156750538536029586566275000870888968550587603949790133072412309682000412636628001203339367684693317694226144914464685166358609558282096553817615267783074513985592993518525740888785291527422775990728962759313482408595440194579006062059762667733362115600752303822818305649104361160264868633849703354347815028647164739611265691385681571766427470168648159568930735307797200095272987475643319694960470468591604258120170039457375179810904723706861137241261037308566019900381405420042867279889939202333399261073401423209612834736723261107837621742450659261027875248537210098507706553530644424481725599818781141066746799474852576445562231753826595626434600588869087153945463864972644761484871348113827783567930995380060681013925496484813440786238457392111243366263207013941180197275254976297766478091057424488838707223700662117029480680913308793012658473480113923482044979243764953538212103985441159246199038318985778822317246019184576387664075665309078346540037361982962106084375565965101589424478440542224974592430152015104955411665856656038151762919213103407482542236144705607724726150544380385641015749333378556903208774612911583725681792399843727423791565002575564999186745742328161437202730322365306844339378217277230670925348368662462926568157221265978880405149519908791274176973716497190246537145710696520428840195182038821063379512604403888749145926924035456729408018971741870288426689577283773985234417019576135518558153098482926203260894381900189057290579693542974783290111383479506894069591519557314054879807749781996637159120411884510910085382979736805611593893747779093220555061163642473155297401127858786841607032251816858336670681150414510909894035713653275820652711263020587074085563311463294793916114871334131969915376212947420759043936552185879500055275635305486919212241629208214889057361372808461857554067457561409897497827237480653132558979976947799514682745886663379725612789283264590006746068825636963007691419378078422984795834985134277731369505506886129686005856468584243636397601100881602108794449195705381403358493199353770175627968786903790109727669525203726947324280268642587701326332262447141112011421129549267615483568578026042092016636808446906342270580232316158543804781643861581124985649728484478230291769228387841937271250812470461578538102898934326941581111476353521351369164258189059746695741788898866358677615644032700076438221886299768625475614037992362793187808369373061368736462679951251572350963884786087800118400698798903689928383989509336148246208477896282404639248538899295853230822898206804882789414188906560949474264167701494618393555652475691083439252630552562328394631105601967445882060674898382915215822129025360446967603004443070842648248501761633873043088944842211408475928399674700553580354760534025762758556472856206112581850354575067816449240869330146888499020308992058963548815132433221268409547159769707962809498431884636614913376944609782683237011893646633660603785829845855631541899196982875893280202623860051829604402247408411177131718883444693177430883806667160715076639698273388624428742051986758028560546317592462208332826768893996454602704266033693659559479473103608998588551958795272038579090001071302693483330057315477655875716342037664149255410776619288447011095656655709485012686296729862328108009467694616032444741143870823964770271608877511243614377374834404694033910322556020636155875455435467266009736173978769166649993464629664624251520487316853903215832805835958420268011386610641781720095645669829327125717511467894816676414476510375845380479173556248919958464823276299247795312296659277935724297609342784005579350950887824224004829109002128126423580798239315274094010099839397973318941870204588486758006375285522913310496391866886488448861544323922326612378722191298209437869552100013034482590336503378035963591370878609008320826229192154738232015876769784861520555114782586296778624574277364767461028636915956637987110425795136155867320054016946916946146783236770572714509546999858523596408937399390784352471726141046070115739913000838913674817855314089510138633893369726927012931285921490874671801194412106177989988156977405478408774055170994474551855129277661508320991384159426480493309519885427783828797073932906435994753805418642138604886295090487557461303395125292397406266640988366684746316532427411861450788757472753654491026370744395741579023736082012289543848551875428574349733764328212203404408022693042177207996283807977724287643825868661676431355002521243136164687867661332096973942884534840331021092108293090230570337415214037681374214167168730676459625132761044143046674035242039400637494676852457852448154994979444945025336269999595741711584254854042023593708236422666907914655388255847618843234795074820465539084291129928563694263938449801560126143551273084023238067346177352322889529674052768205041660138775931770044299640957299813932349754188026992901833620251697629339534648229557679035577083318450502309612322216005154188803894248791830987095260686196795036957160035785845159124226902117396623168658691555055125874034673950683947072211692472745898448835775962850925096488634142252715786885532962976678099239940370939560457217147153258537039586536307682806834478121986397982805112017485996833298129280601705217862173375990511583753399791340534767741173422940938611973921796505415287426713177440076928725673430219418185925729945644968351448527031609741009077289373155450368677851396877360477277827481878941660983246882930931872826821393118338929633730064718077309222616327115732393086466105826489803003120150277592293823138559135495633276328842221069008943569487604702179998951395060978636637492865673358687164508440872502774057883074255019075108892441837297493091556059244701775411789922163123385244098282109181254758669504410454869280898578776363784397382738360282960509308623691082741005279301223608591041537848390387624355157234079973229143442857866268186013788348937528514841012500562719248321296772098568042611529305837876801665768391889077477438031498901133923733527337411400137637020022033668056486920619121739391121021311048458603773207193722081712861503640750809389433623083783731221736997243168492636393933424122914380234779024647732285817003338034637190646102444450659196768480704457600475763631605892727820799876578127214539121186481102519391455462967280841471490079053402912552954807522227214527479765540453714162140106654708534924917103398230940344163289976686348880732165118493589602624428316068876414237988552180913314035672859216053351842363870130079373368817674263670682624833619208552159241115092402962695177393586837001433830032533000152307304822729521561265490488574295381671916026733226960633364828883628630305734082286560408354757411816206337463076661330312254717434437763912908951431007405357964731449530067395394550177499493506503005690653145073516863708277636479579893979408044069789703302987155086131955864889320017086396554047417914124346149292900175469108341356938137862284071877126364165178774460265588101825274276409075851661464772217516991664146603414762757753573216515173752421424355844885451262673722428545258918949696781552850503882617793195333255711424008816677274517531770669322481961609948944559194209580105745572772457574839284905695898680300730285387856808911277990439525284242531821029069832163771337554818634051426706501129989513498606776307772913792048379673111161845617263743014453917527637196884353588647751383297926651197249956479782253077669603544417010312867606269459053306574256987341644906119269690616460265743506564570650967089384384984879986366721307663909740206098815197817386338015097581535890917605660531892944520252507105192806281973639734451932985081406790885126614840463016635391441693168866944810102986424976540563429147225388095672352793302178853735352066031142118322186953441582380589058419828891039381422471693488847076889933223908199483218641020716572766212906976409316798582120906832378683269602650698061123127579503308277925775317905180248676185504073681145061238312267940335063372095102235055293299598649961772514546002567646462764746915152217063115234157509515889935408114223930846644567935404135740913864500427831497733835404951268813468773603931307646468220007681351618890849356948831316230747085593318994362802736955801457457344831992741413134031695833247455434307503649294795199178103633956528096786178197890240762915737050728654455965013125482246371842506038470923884542395204168251704089980960764048803295540443291091218258446488642226540867716663026381745975798724222572502958463617193448503741053610232849892583165153766630845850125497631493569690810047559934471971968864813435498267754619692617180365175713656832807523635533833853735365125159163052309788365219170846529707843685238262694651256448891536648609238413288681795080105015217744881510490139337131252268260019898466635488040869317689836900438544054684016459286367341656923306373587224045323099767637950759270689102431503924582226109114827084951695379675816851094480179716620146513006284032345778258620292992016402396804544699022570094829547116168723893322993330255659331037929895332740045289493497098925653817586009248037470637942753298245039888969090446256086460234963740325761060857961440786150644215065756052548247152367657332271086974404505969574737831795271442433766863055577592704876881531829169387554356716705225339420758802818957408170533919690006245360834312114004618500956593848716678120421956718871235182973676664580588928938093803720216397037278377726003255309366500000223949168167531935072535234421909450135992880287302964677920361669622279347186691801682117701930016787095344846014931327549271124279441088590694883537107999734038115720072312133200681368651808154186497176609445540923915285910730147588581073342869459807506876072357350034848178585090062420588358096663813741214674387565109673399308521342364822519834386696334570537010727380858298765799245526927325443807871001937753550469947273172572602670004756310577044778482769391464948636833969664940042563581387763330314184758444897852881010403724607528095823518175872344749459698837185013257686705959403484458187804831630254491306059614648581900109387760211638147521316551360073029068875458325654373871748155150751259075093349213656405295696110299224643106885723806294479412188951616741069328193254588082691721568766972905461460759355963757623090094344401451385199939606899673231172258900942448811843361130970589765406163753525052864687131181637770608690357802400835196579252137228061575570874553214465562417249055965865737375086344754536859180432893639907689772244469374188602403253175786303041636890902298155994202137834130976062918097712416687646779417917012699798195753339869897072861126020388549720361224010309754684720158730176800297733327198712032455709411522914588144627622185063549020139625818563088714821285693225621610746982585364359695378155568922172180681191283904742718670716280903513084265324137713808409820640378274267635536944130829468699656635053578871695678197532352856164509981871078915588444513136940671727968286088261799811863009857120223004488082417688817258720885592008461241990871451975005783927394227352323137264112659384869499503561715626246760443772570302612435390938876962104523673077422215748771162547650087151984419389165251609514225369889333629908658218510408098806986022621915825370689393546209535796277372687160624186748789747933169153997465822405006792428898905595806617387969796100120922938486559149457360965964711428202310291971770370387392482607157215816625040998521606989967334720061560055182475258839439587723820652811429696474367155252668815839552474283902852484258192669326792702909622908502487022427541005544264883365846275724060709911638161750571268361485404339911739551841483797488892254203352005755930282028566104888234746321860244671863881535400725364277882578145466911377695695045013515098521057892812547631604524867998054514249057466090866667156310958825166450449104975325437397680763618919306401641484671152619592703494762258661095256492839801511430717703461756660932373812872470711431494932922535766037035003471654162811642338036592638212716240845628760701366769351822964784489920668022816561027378350903959961748040581365828934803025852186240554885262870113762579329907327069177334292325817638671682854391997165769463236634890566541650839835791951662618475328192707821366746320177276513580812145676681262234397947821520320798299252954488140580657720592581491706640832243247274337165241580874465826330809659741479147029017456472062108747301059211090383381270756071918602235892475093454724077563598854840698160016949398408932627801825027544491792759636083197307047100798938038396293266244203653152365171889707179116746225586397460931865736382294429195977636055318002388468580501251158913790155934140971611739514030583949262948569153206846114506476515569299268836227763393892553174823690814586872798454683066053792184097265952156802513330832484210569309239909970312726458659482735820331325240211244223398545199162196029110516090903527755720802941117838088717318167319356680083009630117282775800272866666142327697989971561713840837105662077455283475849077622579259394945309404003066884447175999733116588383292901020971385363810185493112876611556821526347971962239418408024548628593229549872983468698633276042604992149119745538124629607172238892331533223486007983230218321807768963057462096285953368456737772690991559640297211879358627559915919885821007092372635130436862418333891505285166804010052917909297581671694513792742980013725210723013625149222260834309347794538013543361962260019027759135352221742018283677357011318865842640678244561113100968359590613504354407665003261066145036256782632979947847879754100589342245331598497651577050239758861489927434809456451871142698847348507111100200232861648974096980317368866657922372251152420129610338999038043767708538582901659427081071833644368887543267829281185300585879482849888419976781267196699423240547578161599744043219116990966425032367436073727932691412473204177871313083570181249458190476942487461647638120131558148614991955531951076984181234538588317378256663067275790859809364262155145435524318334529336316450010705015160977898113912402559264262051729615985659047990685654714843217856637743936838297072913563804378233832892009426010198181445788118964404619878141153523414799444034783607610226423866708072551364327310825055129808121644093756527557061823733618307379236151651765574918535454228553386665849833327018115610819260656732083795521897175084053609649994841631168537769778001615538324105454904665753441468453135416930729729457219185587106488796896082708510374409275842461172223238143918946957651513457349049350209871085741277583304961088086058802344388960660721841354098805349104392896899206867296399173096888232430552493607645320103271009450013572929378791722040200464238499962503128202400761605941918035645896797250741940501189860311511641698111318802191401785470546091134312815815161473878233497839757135076200881753839153437645818307136558749710954605985301989561222911459285504231757138908545092949176134273387000700263243016435236306560336907754663446655694404438544743066200144259765244796030526425412786706575133772379239306439127461291331389092889940516904997703305180597853743329098578026367924298447282093181051679551021433940905215614022875549288074558772888246023458632124601315958549282597804065331275889783232999336178279275013434797694550998667227254666396199811381430527792572065652885239711861065603997804229525304125792271969886511554832795759900222942253739450410474845677818712881397255677376455142019025853898522658435770495068133692706078546226273089072347205087734327269710189265648670810051701384836915485374157520716881933905401054056055867255977989111808590516624698095233825632087085689006629997274078702158601117833528271906954180348280860959311934556484834322473475898829029121600321890101681175826469176659310435498863186579759123183924424443508585498847733882406483955384925670437708784889065998602112253208412965640282935488477500410064909438874647191528111791615021534769119718692429007631218044626211307830155645548619908284897861127047730022951139770988872665609522999271454339107363160188999595794159234421298035178051118528326569894677681795045449910010727457825861020433721989949399780185289257256025821477201059584808502792631615936581539935810432754876363537576082134419696667125528539624941400692959277105151721680333822073343638088922391590464123691254309221336137115676876696713391505947424054343051174180479152335068008564413285263529363991453794780344690745146462619451227643050956461238642187917683615670547740243903071393725663899359130296950260068316791423656378565903337309136843207286619199050353108021063400159192570099726847072438022879612730222048340156388745677815685497926774735398577654085250823022103110053827380310236522152101531665333900835896866823437130670684117051214799784255978309201352477452519160516142111536358113057384187142428099378320847918857839512289413697846396870714088353054594164161238955163216163689846625915394962272122773804931026557984180503194117460745496060348715691846159230924697019017351337396785236630989629772434131797667288475710048521750917229316349361390051972893100405297925726744409544998529341456635765627698095311250352318505623968055819402808628806124550827199094368384174448984326889615425387459178158073582248673401038984752635853670552234994612218843097351449383154098931243910554895137764439249475568354438196666547749416875797756138765152518372029555163999173546070198658722602826076112009804873747387003296710348600050948093594164062750231130823312077889739244889572010485526028670061776290059595641558912946585225004168593723619064603460516901870964134849616048972564853033187677720820584055958502968228782356097226461308886211905989299329677616112095554815439935303422902168022882384371067222233559969190319513083700945335538538642480942074803831787755075244936513692817013691851223284051779749844060105479103032432091557052801619347336171205612782222579515181435154131518968681477650641697721244015965676819100340525579409601376920291006197525012094200037553344411509104714374407244762089313893031816297767137226155931232821801295282838187559839855948678128299158637069746473949925354790849165037006085322878050732370210357810938758376251671803388741489926479906855307791556332790154317706068896629070862041043471360606324373566158622130384494909458158467498869050170856183309482625163709966858258111009328937098221787542812258963240672285501700212766717571418829706517423542463317037522242289963029022216181724310781196010366082700201817836252375743495481697695776584914536165956943577970124806514565450102730277408647902936625970140188200175036602357562608020504280240115763833419946755146033817288637652473739892682998928672796603531687026561361633777950395827114392128822617163015165855638498779736391151814806542635089723105316121308658681489489438469654157238514916467317044949041742797731136232039095864320507302384973194031694823190350947623329050529485274418369565171980627156104243393076524194796382885334649484402678735560767460907189879830787965980286402043067146272751586594038542090860128237829696908254853826352992131277871382071202113180570375206586012393935813601809896304541724631470351678989413636903174320186603392519266551043328684484127574920710164609517081111555527168908563621320187494129938325429752971557510326071164053206214763844068149367851308217035763992932991483691342848566566762759857516652781889525166182617727109811611804169778617010653351196076261290638964041650569779344191046722736211996096028703494237972766908123087418611786930920587365066931819331275255675338162987014768025900485801646436716593674577098204317310447521516353748350407219697842772305181528871284155339763460745575640167759551558795437402461134175945636172329521734150327241854743793428215600342367219649153239917743723255740409134958146742873324616401350466799266621336392820739091244772885028341608228802897939608931074937410889941463971051333028199555170208514250718260863904390711631163743010860686060243948101538780846169600061100221467177731244741652905487396255774385464859179669516035276708125342335273674700541311776960660200718088515929326287357168488720372158969688210536913416458229143555831428638546069133398939890684666791944065722110834108179444175950180326849838164247142439646509980090765488147666107614204612339278671490641104829905909831703659405924204314846402877108139494815248448920486627341198598352106071277794424620363278671347050452611352670006776733647489955508021800314211373772372908977205828072238364440710888043350765830933270747332075365855822647032247415082643815016628907171965815501602718202257716528104682941622325607740410633797469612259407849908125766755915083871121605380678802452447378961549891330405073442760744691584964910347189052376610283751605128271721360701178704531913035375634126612755330142463867487695903493430440014823120097861591064107553443923369926729731564159836278029910531796054767298060443037072938224953504121964865326483113915027014973028841528607913708460536394439365432270695439604626773929718652524536181541799318432833601148573628149172385047154002410995759140389359331289715960729971321351597247400988634778353335814082060960811299144015760816810958255339111448123660296784941670351555083273594051638000410584154831081942492855866755024876558154006597110819660555626740709993580567950623670511020498854656486749282408898277332820885797424047789877483673182482772007642952379633878950521060483007005443097614596314548778005001587093370359334992563356475520998027451022529245703923317754776988832751770095298364190433906010003276368898103647101244990284219961773943409561020628477348365709782735884891786228857422050153657104949150957500852686346273758152005846688171024936151038118496908201830276139526367851515093922967525008634320040190654948109843194235916293069551499477020731423408381115466838534417536538793762067290059041128910297179480390323654457619229362792678354340131558929390187626093587421186715979860867534170415192715146101453474740379818923015621059890857387119309329136120308764574108299460841058024141480540796847050758117425744750684497307886382899548869170102475323575498506228223128247345070097630993526511401681204179989475008832215566183926080287806031563232533727705790489772043298436319358216198872487803648429924070198039701283586840536412703054171393728411838299728328596295181214781187015701108366474261079666992933541691793025332428751027778233445474951904000228810063729832458639651480718271139661669974947987110412722224781879322618925000502029290039710647678544858642805123169906366884542305699392784729681286159890862177680108665044747354516587147581173754669523034867880383951630215444357450944480534303147079654165779836703557593381311539449472800356561362651500642412937442191959601793712944735560083907918104523331556227804024648091224896749414778526453135321748229020056612364631158055754522543172523702195452654906468616328729634089120331813915299134312618624655696687338508696829512166456138204011433526405303875560565628825059549199560517041332418019598469976423235253013412599464288639736864750230953339784268722414164374158179763648166975159922056969690512346305788300339247323666022931654253146374365811935756914860983977245538700304191957250438961307280361952916906746859524721236123977088955257037257674006661872438101713652444247835934168838848222678618215191884245738108746640871745580107868853700422140199893641294378027091711667596103842341255426139800904756469873196900209280532353358607708126675334507671905472937879331877563476250503465581279319739539518017855729966024945215560595067885549103894938306396199689827306211181315099490644354991487288233270661276019315799519237026196905464323851920272573668998603395540067063249141032871606484263614934833859703832876037265616896492292367970079280593194651116915508023818702685306864392101808665114710191431614368782354257407572694308481895616242294109938889596676595050721271093955311364894527044634680809997355618670932345159828789390290535290174941294346093137485225393943052155475814878441738955116395095158112458190744537023134515404301839240959309456906906468226604374960728072676999922533941824135725821290790718496716735576784669439399494692368982884095538381283120700782793800722816462672754299577000689800425817166228279369271141605853999861349915839693800573703985999861643860050646798845040584324012747028011198296807938381691495406591699828934207687788270453330555459322971319629033802932507844591636971430939943829588279183241095807747575971872313030895324812257540892860885055874596129737133518130200652163624678870726236513881858780459336173964016688515642067395813487675958466967123604023581592074340639371402351633780964003992645759949091320734189160783008662966414270636222733682848736679352828261473968440124393121193515821706590018941248740573761792729624950777092309798713708868388876557657779535393309901457804472637520326493561369280078676243717164928508237425048699609759738382847516836512426376261912401685852198285042171404047674978668302646379121009036445510674336143831131196254623454050309321391291527715764436964745563713970492273814779526456903233978032372793509683305156921963407541118757391119275316286011199956446139745206296149587749752811135820177745127470795749342029410702126133807743409897552842652689675362673268904941743218864565190824082721534666812246349150754902447472759337063896169226314411861888892603450491761883773330006009070424304458629372817754517522260491306100655861283472292340540761500591313042017499664018658407777684284912226093079182476126324562845338631492927491677883435231431253906354861087482636502431730781254812736580767650889294481419304027932199946599364758394269944307904625193361195011989559555422239338235872677419580880373983040828275441712927439345444332275149971486294595960220652770641217667003236883827451410677472287176363114043001270226608678008097392645881869452647136803099572523619951222110324471447633935281322867689864574393070376336117490151759751823770451767495790993900364931804942445520303114327801153767621951849324740573961573384270478390261156719325050109155976840824068564272926343998351760428517072562234126915925416392240723813183677570482274200367400726085104860718938643979096204697666617638708420211940816542104415922790538614413722492454925404000563288200740154824266908928811024291780142751205653494857407484633593230324606126581975920921751825619742299226862580842823884742483934764946653280651834519296663194521128402749498777304031400802206411320769995793588837729766447531628391233303512425064473980629800492725434243225865594119764871603644986412810834547443784062673969353689298951181628417548127078048581044970765117030358749375965182009139119238213148718403950624420235632184997697584236323878137535367326973702318610896689359098155340955140700123676264889233473205585501324267998868771512696463268646470418458273371229766577607433316891440955966367142067101861489076133349167498578457450118016356078685157918922487334742873004079780616617780317850808345083202171163096868559514355554061939936756813655439878185423019299845993131195217731985608559081912534601074504295870266483387629819717007868581615520641892007825485902681446070656987996457795077917982098742049906968795893211527974423693541912913768767053263275254085618411111374795479630978257080221133823709479364640781852176219419108883331601740086301909684888815287104887388133496196205958391545038960428399946776288687268230484618858167208669111853706168283277796711408884674498717498045750097657043820907674351391013699183972226983254671055430435069468823089517150048702241189301330774952215097559224776065195408969724976802998561215881872846905076918979055108662488943987343735781708179102717614009576331991194137847123437020544811574257380123247649123948713268497940826424641596926303088766987461820392453763818593919480774400934574727401320006878652223588120865956941355213611733146782690895234269922426271189863380925576496034787367026231844119646906981013821709613354683691812595148824394348293365403802702929383182187371516896817575352918946841169647413254698840305184309088068507377646551939012958871345632494688697831065960081560982797340787727780408485560601336835837368663354089976041650126683700326022900803093252954382031410909790878642253650806565709027194488606501867397949375270624794745942835615435168789810979106437614164999081555564901812949687018719705157577791663050288234290216799894825398413166027462017503369649610769118568482620648963798380224446974927318123534099619492666808167994498140591444353177995830578895899795315962642652639043291758506180531139452092755762338112578902185095853961574895841157348580659235312838326243965427560045199445639396406372743471423739024923822626303158166236618953698146897954888336828070537214207213719019082017532836237856488505777519150089209373169180174904741252658163519097549218436374248707975727231775388969199598398274481916292288603549087918651652364069012763218217333641211042926999698508393974742853179441443412594115143658453582713578903862727183616598092885256097828574993383845176068178834274113886872703391948991871977514757781288073131471704838335360392386512786675654691963967880878848058260312096329373252080611564830547536391077208390216642354241157315050675851492395143372162230290586932620437327711575147843847453232464205491780192528490787636614039619846902433926796536706836263358794419515012932532828524320462994020675701339147620903935559875919905429573641016639549515341527886851544329760076945983066494103027224147252028709031082507088275398785342781832771696429561336096850820114471162155185554664092159727046709344750884483997109082448600015025659385232381389095216546563132892432140159740578980739769296346997534873426275770370408995808165972855179938238198254711572580044141647303540624339968799873669818442675008734179152227178746337247905761811687087157618713971692912941846233153321290762980803560606432685764915930427387483907679262312744201318314986331666672309578060535676939023839347719962048661732816649541986705919574044434094176786101505758259603585863727735256120245596786475697501021242353446057517463344291532723358074822950030314621041259254324353261266330195559877638354908638672800277012190983324672838901343419801018231886281800277562666105589072087728177545758792598597332957897799373354307002943387404518224161847791506507126865721445719102959287394440231154702640444419322418944264423270928374370935302860822376158803578378640240849336868889324790817696664153772508096411357866433477230764684698672739995275988785293552500071781184851515367122048914375195134079293538517349831620202245588352173534224850558933719372369791857798727276623559539554326884761756636707621770229110407142392142237183608437477031562392829831316318243330863059981314685290698413703175225394716045033316523323686610365954566301023188222066568609655898975472354703323617582203485186349343471440252133724397712972352533385978194158981979316385909526572808139516642490602791233556418871537211078796501405542531172870075503604075471000188309649646956563876978471242957600795048113416172785107491330054325746826268716833235151547027657385932037049926044337757341289348284356166682423932947723199687784024110504755661779025641171266300559661683787059125728235259496455777055231196163101730947598288755188470422598629867677618109059677460828785902405614049241684529747301980596768937958149738137274490891320689901783120899541436514753718293472880077081508377424776549542897289803305827340194211659305491191659754123524447622081594854717650844602864688180937377341800489115598705060321264560101589269907400906751632766199850252921704927283052014269215636029791232223678588716935223318267398557924869386699807248222529093955078853463326778654235334313604385426942376092365070751805369675552545055078769929837176050621053157176598474132753509838852174367186345509509622664617548148550745512039496169684465777211092235643895033042091136784451062014579365182939280587449516030161819326896305478312316935840065236950445638065490101289250195297920226139897885518573462321152027677629770419719206241218296210972743812929817670938574104287303268454610430845347450220889905456534485087196456796729201224500934726860619692137267069948099939248590210725835864673651959970560442975495287493571542138382789011836065046845570125737714132254900842618664756471209510849211306991431721834604653486166851421098055230133921738863904808992424797932753035332614826550217272475915177361253055711036830179546519522788837857214638325147622919003266927667941970743824264594913933356785724810285121094634861514103796089215795367455941936123427559913816204575636676467778499142438416605363927100256514442705697112992987833162864130143983902882975120229949935101419615841738351671411154549701100324753304336529925651014520688066256745913830519904961304645806735319123073028862330441209073717889289595821885632254121604514831251845904396667018226045920890045501077867157325867207789705359499359426675797640679772259277379925084051981420158893140984468069791411714505167635883327970011058914892047253771417691185930551836242415294916923330057260317279075068946592224411991945252549046512990719871953154700139479805425411570829960498029792554284535342282913734004735556084606098893775785405759741542614177627400652954668903304591844302103883128855256136618058369034323767640255953734588123490918077376223463501400984036524922454858060189664880448092534777929358518998733110348982491548495573617770321547128896839303982586408832281975017370109711150504314682515226957943835978003887433857958384120999499519347708915685852173600118604680138475283052538342876273555221156775747807775043126841070468011185656765611954639008120840933005313853385151481806316226363993381075681492839647726050434062303008286682676674621843861649324139809072708908109899902900172380396687731954978295099064536945101400043015817591097738447195178233607010627628562063769935660525241749815627338405793702331935539218854834073060047730042043882627676420957368189405839592728389613468191239973264822138540327823420271896021655192257998401341789199703909439250699387061640901916808237713010696074685832020039048720451822707108778144499962900139975686312474077172022351891129737708111052247399272242193842094227467214992991033492233032870650399742024153451631595956936011761727785940012869664625829378182037945517391915996388270046329138956987103904083156263261824681578536018644923609837748944332607305168293487417427756378828427753733309269600870470210183907642133924386636289115070198313040860398200936979584548811686906894126295050813269636589472394396158117703859591390663690900372603373426953927998302045337782085494618127483190752379024126491330535823354553807796928849070126184337905841447598245088206750959660613903063553446818742942994697598433194448023852057530671365858951369947218138562153353095783638955094268367009393121979220082005202586193401284312896605922072240571174499975445951166344537397810486635500381215168908546741489210660851085381552843646923129066600263658556556772069407613513072311151349252821302999649439447382535538977109109969033511618127448746264880056735146313638538764671061940971777891328876331262813588911524379462521086331646046925903020394062320262962811768198771036238672708707641023096172335928879038805676618548889814409584378882053265676250413540983963370149034800329162069289987718031693262278859996211656031333405847202319381816250198623390899130961339817771574334496428333552602851502904749785118993622838205274496650248632459426605833917917756111365064593772506533045603177593332685018025246055893412648889896995492682275681322168676902902519839219792089526384871769621662988074773717428338231409416159690191854773560424150663945069543798242333382165293772324757357512908828704803590265073405756689496069698642376186807759980524541391947002465261266328748161399329091823013521281415250416551275929914646741035522237284180964057407875649773563443907244533295746533522078888062669029689322654420664406513463345389905851364973551513003614006331421864242273309715517760572060120200980954919616684576118790850060248858982087267432359750386830638607497123426189836664524293916607845854432595637089073011488838384810451737811049808205937377795483833585617636591152909467704002824014879257315381776236245198103728921982482876921120254602597504820436142713438299841757239873679416691398013599867476400003155539322313922090569768499102052411237554788802017107324605827598392542946369010605130830412100945618472070954298584340108727084098660637209694665538870124250783438925492646659701787983412518650255792605332982500011008707177359807704392687834656552128248305567288341808480049964617311831185895273018832452058891059344398273297959166794964945150010618245999582320532757179295840982244768033735795619981691248359214505450394204971860206318724294427069494342616550087014445134563327593777275190107238583154635447914610167932129854992453692957295494737514452160115349470222824910145320262286825002667625113331884675834702341063172384856713272529742595319985997918796019818853520565128529820018062595410703808891776587105979507801540934662943427632636269700929447021640488256768253686758063855659042996437699435687222049329928426484457734569788721796590258186881000581566738478123156134022092491695919664088837616146002502077207899005114499124239986603616261557587314016871255217258769230153163869901727305241546553111655165637431162382876772458612349202658698200429718515333038828082569460989535764927492541635156283842693219141655044545658842377635806743993875997713793700931922458101713169461067109444873085322367204320285746413084753428437295918039145779459561860863201332132530259235112203306988114310731042613288330048260138740882779412364576605371559549571215537831502766360906848686364673317973963565523161848802322645644783214743866670125412827932879781987864606378304077169324064558134666914311940505977496759522463287543824917033225241833365836211396226969687636532799253833784316434449211167764433474448643083660297750279710667236120749231443115607951944044463901080345719047002450851272256892961521778265702571773376860237833946228947453881404952024791191397280222828790643324226770901901921021691645378939133558661136851448031130608378631516463515245211826548003067011250694641847430303112775969793182457211138360274435894738882201461052040204696618348345696529214988744388139794438982621653586320656636013160375813232650669508417548321367377424993162656863545134482432554629130874412684543610305018239197022456108948770934500223091278998938695775866022579063839248608444973340992317419824697005297353523343045378571908093308817831511164228147990523526400783594279602787943395958036663204875996674718595557376054261782261101548759153032743620422095606149736716722541545918600970447617221658978513102375169471613138306792557126475846310525855718290688549247266170851474550079420444462187159600606094737635478594070209291294906595138142051351715466519627421900724860764202380260461696143995723145736688832762118534380469837066276353670382420267347649323845044261602087746575908314430451436415271559522040930556041124908816017282534581595288889753878849680119216289892818346905861572382493109013208803947962749253553852852369696889938054294777359608843588470526162183604352071275824526636517486113774303818767687126880078994261114946547000066042341037836762203835219767065981494300288830091265599720624911987426780617484574290376039562591801744380955841758682767077414258108866814697002836611800682912288220255096621837465229558236596329412496238883321620930463740858805711102487674924841252626245138184940519140742229073889002576190466878693270306832717564997710932287594543683413574957753789034699119026608398374185542652928337821989124623249651550130518256866383369834296637097896456784599018732727191881911555820743666643206338483271128951267258276257959942646388153176801405686717400573193547982725188313596587541953881961922367828054703398366447790410338199163349233859340226506914581264686900089427807854138237786435690347727083403316079739628171815209727462343372130914616921197540727211166639693580886083209044235588294057084072665444320604513839889128340332109409057797680812123932189941690500200374588824396129569836932216401379963011602763179874928609767912157098005276760794192507567346338005662337460398264288259971562387611246165426059203077499658521986528435656557016797674907970893844241723889752440340948244488664211931144506573652300443044031896836723981316353853925135887523501218101979012008050635460581501381406195753432718692279774245282204380915415131675839590653173685767768456102759037070339769968566207923923764938786195552490613449444497018392213166548294120367852350253044759191794523546606930308447664796619958838170457597435918175422907587401403546918366670785634555078199835825007986105845242280191465794705843662875501615081287381490941611787074432699045517900201478874226051037141213759658209816300619654817648318938397236460857985124899658066560753779565791498793479454264291334467474708434397402355382054362970936864090878025362900374307818423836356905309867027367974644287369783108511906082590100300454512086370766917393961006159829206570785279404999719484997227478011407467620706976122084724442327707443567256492851422415716149958397844557684102784130723649801368644574827708741699145664805870816751942261678590887857504072805685803632435419462135186679350666052187268933469077312453249099491248808024342827899305649753752796819718132301131211641574830734718306611660995351033498131797740042575063004007904945261157821079534704585277214019998391626475943535244734549855295958756070527803310637803429680968986050670357730676418588880627099114873046092623740164856466797524173473752056890791114219345029233204979667993003415994829655755026022787095761861404556820456016451799572205247299885745807342428167202168080307449238395179679143515339976694066221200372317939772818241140403882292452103660690738012512023508510612155656038309542026677076451812467116703603135377340681080173176954410081509398827018976239355321039420162229908817287983162413304126314497711424003204875610475233343019983452444338844291234677074364719687351823885908910854927124397737209169586663263052719904234150032613075277140417274765706723905763460188021948468800252098350207772063580825775693825835204350522532339088865578826545324629962314476751084699655869858894270139936712837549613273151131882360843985824944426381859494692907198023107003302699224077407044379173668257108202013394832892074885819205596253434798012417361621859709897165610960047793531965651698088961163139637468957289693736737161266084672201397240886346638204741397478206986180895707025752201558954388786248120829343729035482160785710528333080946228579051891630938877114613257113138652148846000964021158539067028917789617195714522581011414021186450787869408658915607485741077758730943486421088103684038852935438329828183613395359560580090520541068335879266545791459502189162596715871503092345347014122022225785988492962048063414665081513794466885826238622192721680520560625757559711485938698266025250664990284134835015538689784801694201319432297697648453603291317282548428526358167886690066157517661299633924337916918845879550040311640262419099493027307617703251195225170216647563825543016800035978491150199364192363377572766171749055113338249237959660579907484739760277868571101911294515336567825294464315545087146560166718157146473832495954717111029711173247321360804926916863789711372997818569743254907681656255977924195025091611918790943835568076354563132212348142999363420698281951857318745178643455742306615068381847267052559788804202683337440819133519359558437611656161308483660968828321629472239689479642717906614177874978781076503128790192416609686488958168662960345557369687865784212846665594200493561794765114880402661375400421596789650930860581888536740557547087715549284470112582329402987779290487760999685459722757383750364590689398362136396537671763735742368380703705197416848929653974802271919655213139808320047106054626466759248581034146045411176607405920427445393191461967168140344276909144140885323665595248407820759529432596473876450578275894186635056806078953376829771430768897505355935874378095666930919286453825308250021519243108628883875281681564652894373330195778057226055174850679176793462732861287189528644125279723676232759574131515145625861440496815383488334889707175532758693638208916911349241237762775548614194284665921878522812609737844041136094210761728465641357444414556734232488736637255212733994055587755964908990958425875217471879385662698841035260075959704328847381688379673113387062875707240653033294256477996964622702722240150182843969914655926437073389471137831050830075160136956639911351673179244752663258774645640406593879478953933997552466368615539903812070019247160492874823482654244531010153072065844822120677113683453712072014338367959864106276924825559324287087050231989699490458547555464228123872144689325622611287074438709562714806864947901412274169740345944664758685425685180346559343445715842352015992652052397003729510337382049696712130129432339393669477929607737630487758414859562152120127981836088698820921039773812897965002222362743594099976380461929753991966245752948889741067052628732100384076552739851431811587495499067064379447150201803410876051706340181426763923623391878156041633016339626270956873295258405712990359762608646708695042321666941839539308306375234039686981043299798675778050121867327015949258610762993515228367628150130718715161345493768199285411592482308472688532158525323124597151814558929317950659245660916724590763391298659450805904687202074739008517978389403802173174417424235750523649555908154558766645292901814003324667466428134002815954704623606454760773395200840720369823551547608642096230654907204281314604399609218248927431125067786387431573702968557208694736893807575550779969436792249507588405246965086551078691391715215109322937963647827563477931907993745910613817268093256427258082126975186771651947924756566213982377907111514961241185676708165325187136100557522714559575561390514161507846115886012333340830360226920483044154820858451843142935494859135148056820955186946356710215675320600086594475844999228649422293490753589899422009160814782342222102280872195820990003359411796330181807224827807545115308222496200189370891837411452563883247647158671717552970044574147923365098124843216758083153976458268620098757369232389826979639969748675181724806368210418044350918116737877309421617835316979029771713929847459659797465910396602792185641354461883512846596046110613952305235709470420810882640806357539874799511130546934456380866893751941855975943955613606672215025548654892612423255634922817905747217575156288478970698236818877989597299595446942448037914277957174823673572361859845423511088074275959144158161875944221953487828244961346393912006583737739565863536380284604974648487062335237854447698990190343708023051510046134442240847708333466283569606272131735796918581633888621668183155999124758929677840988281247545874263770521104873378780511776284553385622428831270198860248633696089678570042845560103489081752269949489513771760559210625397482424429590611150444536861544548207396659933229333544009986235486750235766699216229316138007614519617370601073290561188841325613323630995586044352547195245339598564828630031004754071900054698679621612246971899141240687214336623730746500153270146420616209130460392722510481162914662778701613827531796117915895775228894634079418782039844648382636165901491790554219961496555382121337801132776064192970616840890418386768493537767579507795048611584429947305584632800466325667956945732145036849747179450726891192405780263862378719888955320895371525155561164061303816497876692928423379447279783365430724605276724649521998035275787123635330070213410824307198752664416525587987234461915207910620258718037197683489488987110036535166940188743570017228182249760928203674975640518431826604434645959109045620970039093400344875009582339678415233028442280893570046315703816144186974553238240853664525636409736143615681046672590245346550921074174193330075641355447645029517851875957906765198680667647829186748263194408414878642707347920537802463644257760241588008007116040447882858616777591855483313034601701669363830783946256742779659829486534296410293919317744240834326811849180096977921982576437379230597324710225078204411556428867331679222192503068293872678598209206838347896469200108189042326419920521894049518000309401644018021978069575359487884550164747497843084887845264966531162759275825488562666668088427998461722014270060135980882750722823197213988399659983708687480588925236152157268586022840668597702507546716772474363192099382564178500986148050425747236990336216546865675852547336066757689201160806993547495666125426267745145999063216337674571915976921616779448507662985766449513297014988994627132124137583381084495537268639516605656028337823907522601506893052245828923315505173479273719302877240195723248369473407869777807936302251980778643002836006164479245942387437415900287690650742525241506681541688106435117542925615835596132082213093590152895549303754393816145912714682685094300600820001917000688276733430878939890954000423040002378864603696985853651684409524043499265759958601927005106678324704347636954293813613726036785403199845651651629234714743551662060385346795765819575579441163702698971087004714036377569866609964799569773406308811580565104395296579072046377141747313394301082832699043819830786387136225591136910734536625034251889896628232574768404358562532077793245693688715547086134796780270145277640926632629018335122293544338894780050029444646340593142391634169939939643852399502427659856392368193401239736259854899767587768569829666640268763046601290191219576575632244753529065162787563027255468344198414111098005575064831606781615711301475026650551022434291764803223765299500595621801645197300549883377079813264874831636972603174389265307386324161022974785305488313254403854109777496925114393609890888070374606368124393078711185338302361465284140722321883888616846622258824758571534256268405981555829433406035765608786321495090206415313933024432577777660698782852054937722951824522972866437373362769757408649607099269972712575228649390089659002250467521357993812784535780453185510360869256030374904304586865465144763960318163194020825602892779034786900379424171417000093003602711662292769329408862422253084358311724664790975834607330436092121208535523994471204304052135680505813347496921459234149725505693963939800138343302633489346134488682379701050048678600883300806016602228409753676447049127395004092006514917693716932901568246908665931718504243357767654554318888697585279892965798698349494364993412901189098160401907478024832585239836609190214491925934384963006982497297024059665638896333235571340122544184729071811273760898287953977828464896521761513687876597576378437657668039466947320740926355323487715089918066272234801664613643855836211700016002618847709648762283105080478866248230708694688426391838264235710810021705597655204082850715836505918596946708653557641726880147714450959442696063197944079108762785263070195149590253648716325082531369018644556408623374540769254033175914793872181216780481571396688373836058282179088567952131455064433704920695606676787878746243226281881050545170976670455261733629559176304283330933861568084687309130102289031138173084429453205844008295351728441203995441803602816183189573849244808447149390363738801252578076678516486128694243189745622898365633853453444850067451110215637823778190801459747369548285600135768261337007942467395297621460238343075955491917107893237496303871276905726756619279257687929585017517880362672741820794688083723035967064176097468461023666021004102681779465420855272726077094088451685291957413919302886723074069003242868702669936339387677396274827380202133979088801182484543703176221830961719260021596806306224497007158868783067851872672584666629841730983833841119950498745791655931434096686953800925622813554948323050277862896115874475283058497725134656611912406898713713137121029917433251076030257819014398133347035937982267657576247731427308307827525571563215566460545603420182113940475085962772221319370656186346557291310772345908928124163052867579727424458460577600795854197714546271702978477029330804257254111260374617823932843187452459336104354871902460169925114616682368613503348569169564911154376926593839008734460890013597619411901619447597042116287785173701064792564573138887036743512117350587542561411993582934727640124685741855873787071599539086497553072548194165583367496078805869808024856271018471278836234155768649981072540118422749861781373044450463835983401064642116097333123254877470654638951976855727034472173660259423308118089741344403494993303192650356134951905850856818789131168847846670427501885757398551263941345939183090028311897816169940476786430286790214970244013114477413089590392971520759665113583384215527974339131365968383408863755750771962253166030178583011103742759378185567116337865238111003444337301955557883039288856812350006913331167165854615703484090927101391191851849398833547030982175836940546881406406431287185133070933961561557268617185450643810035612850438364311541713533645294008346678238743475802186371505090451935089247009176090571335295385805146159420630661325425619292405931456451767929181093921770638892185886725070057254534517873929241202155734397962117870396909052150891863945914545652716965628873118307111830598171347319697627692013884330119573022677884312160131869913621800932256987820424764132915437107909746376009993763578220880466715933311251102122714277632460226800714435751026000962479376462193636577848184285344690382341849890942965438853969041806908314501761114030767335601576029464187967620790737184604903244559140722208143481597134260127608744699890860946465401620240928090095225842803616055441815348110348901727586183712145888258783804390669113190423852269252235094647977838857492925557970781675209398315613826537102773621480607142495882159394046761014255359411599352196411095576516954234363057408099162297529900504347192393213703585839692663994667245343616221761722989765999667293088825407174296188031053453614525482888413414123092576061169908852078557491501896392151613690098485424423572126907100428146647457278388425086334067078343611010539911909789763452259481404007505682172078018810226028672188052176475724501590676850704090751312325548706202560288135570324907776185865561533594927317679495865637102734899613256150700483520315716461028008675987250901381410649928802948579395957200368025809788341208568000263456186817314888079461697857343798654822125860764599528839605980420707800871568323542385762835618170103089735523004322665023052973678378213216989031703788326149985355746625681150211698575350070831166451593259219960642147416874959282548041048785320830052104136231549162833186612262887808781674823649817693680090869994101105937662929642336782254675468632880203747924874393257097155480566907095865461731366025523032218052091484944962290653042137956042706133201207374882689856842452916335244807885591984536847915334392522359118662085718393305046982218165380847571555343910703468263539048807040715310102821813141766839181424220931645039567547991357408074715943279987801042311562968344443643749164390983536041523009998043714759787695290781427663750998830019970162549342729650280132125072436604874835265992496616030504971881513783485738725831413058400719458032420932055014411088433950536570458756038023917554810073521264511898753552707312033261355712044251188190732857921775534048891192934306078275156639429564443742248324294645843451268610708849234856140012267075938228338431475261831287743261754719423926985596896227443579103939101802516064232483534036832987067153968415733473006733020041838319432992447375366271752911299070757722843288448537436626139837215132717154802421084256676323315225761464795562766721241890846751533157020332838043111496967283771140794404605851543600097676167710310683953886406321202933542499763264294537993006892002377054997190251416369613243240579518209779471658746272038624075708154138890583698476863729089237700001888151278006455549245625349645298239833068397431568632936451683969839422040021126322903085093398863161125054554194012812373999532125558100662714927466381448768803187128697722096627118987357602833339743545191443541456525731766639851455732219713817600731675924289502774415864293157047198473778378913504416005547306837203664543188701091919870361865944445287154212529171603153429706673989465921877234325309541521658655176450766234305344991335977020066582079347686651266498072518487361680270658328426138141818490233062433926990025542718546586380714865723968533081410553395321170089807461155744499375366514727948173879949135558914166616210648523880144768996767894067466133508488275073368980854827777627258919915215995293142519644099201795362946006356075268795155898993377181451435498994667622384419842710313269664839635171743779640345221728324313410889699372242012649200749555162213192738734570743694073251641899445723736829427516376198922513765598740167911822112946340614674642068379016712589695899846631535045635623707543244735373887572976900728805915253921892161638592814036983025711295601420235644378827304291266872038816502370149179524247552776624285585719659272314760436606976424217623088698614280907907467488503064908702705465108664339401333082670844440237207629133252247042607136754683560685222922675262679459960551862907977292311356991367154987547638902089435919712694908577287729703743394510712146491261412579696977490326207593468153958131205855837518805379636922015060427639030738200236113271415751721128894460308710910839172830115874265641558033716356148459588879603185304457151599147555644477139185482211048816007276554348864881564561546746840969236857686981070808132024770555364700883778718904134539077963130078213770340767284382225222240599957367714949783024001923882326914501140719093984159881990145081578315017034497852796960299400281759737822730138679785155980836763115187542125628017208052174359480009563302044003072059498744560559038082258291100432045799002423810517963140468267397960187743532127663124418110400575825957068995935247092276017196094245919220515613661669523708628203622794439574503535300863265768521606934644846575376938944658768302654028264115647187133848038720107951597855330358708979870116525966421904422857213915828567657274261744268961704219979353279200847953604736977072230872915917403296347134277382271156903461050197969131980295323462287877053396847545046961920228018333345470151336091737137008740703536564908440670406272029402353228942740473872575553991909339245584165345258989487057491119019580473076780442229728754434725172087174743655924145389431280325832806286416472452678824554398562927605536442743014129300912689835785087645408269752757395638620715433096931571718511150872011063423543433222640320154545327728273306529343091493309774837653713753525610456629729266743310685002322554446688632935388545921188182999305766846693630457925997375181636871084313353416812349857195548094004646996384128810695561031617148805718011519345314467890342086101799356210958014442136455611003986553213554387333677730149453338760372449670006117218991460519204904334265635255056717501720458122229331522561302293811417077081557283626868677603285087702332626364989584032937702290173525984047936363290118737367035035294105993904819893791598878203292973471528540848340995150304989843648692095856440382127882200545187022874868856249241794026611827124453217836741441875105800914620229006799869894530044818768849932778040632402573892335984490172775329646927986082016230088050386645161734605036567903677650124155383855875164215711129500273291805480067878106139513633628310145476524061001595896177722867248419144511994685341985775632756643549258625443048871478894968057298092857977139356651894527373352999327165405081400590095756012095335687000641972912630477725310927007805985766257734881729196532376641257686486660676773913966695369994674532386243011201543790942795421371960192334515478878806104285317346120090188687723151908697535081684560736679764887794736587660426976291341867484722475595978352393081266002632634942711129087154999422109221555786770763831419751188405800173964402592262814964091572305710641021850083079154985260743897726627870281500085057098311620265760859106843872490501268576512775418313606305955200660966310814812116463330859447778405259089104008519495271984115758602494269491876774276129359991725356820149170579216611698689328787892413376541319576504044813053296760990767094914207822076747738063207447692305718092654678129652620344961128054154984517706796684510179565175725764168077341597536577089808019084389485745285420199188804602570682352640131855431820688005048755695824229489311513736649409346845890034819812706584184762059065998160839721113425137908395282895342394388457421029438322061959438820317720227828515752574187739061753211288097851980698532799490848139796281800805886632292889783153120477058768616011233156725754679356643747830712901130785599906719890924685830439322830472569089918979748117664625211841142632951228724986657884375821425282774342536329123199511422680112139432845450286013210390665418313350108791145179550870731427020309922174248899435109311452544133437355713116426591434772937312450261116038728846140952935707269190862684383084566091311096809737461908740030515000414471891972954204077187364557608479303484959219232386528170199075188736184211065897302066881174167834816939181562807483314448163475085628175480371449051947379309387702331239177970372339836259672824885538937862545184822738297111214869651742678273493875575020029465552254447382633523443431832441708555394370379622600521047170328814972758728300868440941235614700352360652091580076479277385999260919384203046056400000258202119125394165270215412664159263170387095146774846173821903993214800774551000307992596411612746865125613902136462037670391411930288485949025460908813474337655877321177279887365933297726765491286297343357008914886543464401080639611449807289637495906955769530219428641108674783081025885916134742236837132753579670922868182020045916860343998118200655228107742787229625954331470800729227819632471599491051786444361624443109635769988149617203027793319678045632851125967851636389041235790032699928687405221648299113814306535334574109529671878734890881265035243509384640531810569174563266518492108688060329192581252893187747036490051362083697977416045838468945422490293312610298035269512667427408081726785808188440273245514865279445912692704665366349884380315557192280292108835301722541171845798957403432239683388713559010378158797759129046254481505718010531456746051551293003572282124327128848274287538463502913238494826815940907661772497601471488118678308440986076552229201122306614254457787094948462071534796724038305314366475308418926554463519039688269719331999543965445240664371843153103548974593172940303908788475260153107354123435124191645542969118974145524470487360367842428832881223928971092919946355911692117877181347763493195990217047377705130905844049833047591111785409841275888387163041925483741175911094035921445381533264603712641912978283063366392125127581003407077872745043478820936362420273112966942147579245899133128152985096851267576750630190421523691493973403951489386334374342216884963023523865433268982844723461062406460923970653325287778420528962170926253687152210163089344748174339301583878764808982739352041171230222609110338566514952958276051052556378151970448244019102962945901953828709550545465915892611187997055105347438921209749575787614970166331998200664099202830423776332446061042371803360834514886046556236170651293062069971113963525496575676971120249491336754933019456749290929528710229121490582855524606504051233597982646953780856081605281034140020391450252415015914700077288660314089638118995114131560871227205257162540492824537752540883826629228837239578645445751068037450534508841530152884796182419172593500212255156378575318585505843449750271504197204393416345021892240035552596075975084908462777687875988677732593548539058071249310538485727739587400488279598590060534821139564540890365368113732687475947257319509250035524975244095697664180557836011179612474900715676219707708158319402506232277179746231926529793858849673222065027516939043674804543617732923326649396920757381302368041118793174835541032725849434244033688686127236914290597168252449361533171383311542802979452160810425355493309874717079444492598337894770432539264534892587314069788552601480505606153369109512052942845344394581923169585928776972419480644405655706889343074914868888744124404801086104784715358861858603173007968938388447545141815443242331039082282596394222016784264667942185335706351083946459039605735060300180930461662066856103846222655036363135815914747435421799731338696085563399774138957889089495004384530239236207848945861894888048212064735769248807336086546861444168466314989184514987331730090951641278761714264245923329053858738890846405745360924750981157784624888376906390519546533819846227835237376926083133023637589827560435074112483586038103108819642376609141221628890506672854857088142248061535510272951373352029237210723668099707784524047015831522789455980899774333357098161586251668027469087393376365069155514321206696720051117889555370069994927597980361193412491180504513696576746398814422530311989683967312888769048232617316485706041046089559061002925875488375223602757470145442266077634856269957243179878220240771088453300964649464242587972952992444066145611910521383602973657384825076547968146928577764232250705764197569751768625425191424624179838257954513909256440699533266989530861888512636559323913884199817550122462559309490022497222117055976136549578957027110364149462696030397696449743656688120357295893003444592853896417319806462897222142230988520366930482392469317404083970818182901024887396144764630007005491487270051259421803647776198395553112259308524469723216029996276164720739778622437166116097108530481462240656729655418544950120708771143865114471805644952468748046998297227230206298110161558082559386409189644971404583999996124265416005046994310064975513085980179277661362852456365754399308639333988806584570574920227003816278372903528195476551500897977686565937343011111377425300685399387860444444703931443945773806300590722246532884396119095956014575743310245653481366510259431187684304556819805610202343001274272186772792720509467041436438783769586366743665312417370151553153386240581717471579310940628021649274476589056397944682539073991375984525954601374330534568265789588542795349338010332351668215732493545264502477380788733545812483038508578584437102676399202963889235060683868221762255808795218513600617495464209771965993118162707006494005485509805397841566756804293455385384519217188311304790092692760351362857221831482009426657545410539927817696604634492081673113689929922216575383432962987119117217377183898078476843380459468974013331412332023603018082029203160855659491708124688140237902869793875478615426198682943979789277650215741010177322944962189795664768130228525754192173181120548254308068936415088747643938151256065166750695953221962601633472183499583755883269349506849134366419509015094807862609147358104774518936019808686722179459256644026738181696703874926436381165717521462443903893800612144681238934355552574066526173096624309521039999003844070483225929434961120369418842444970408451045343413696355123645477431221053250359823045736047879856276455072665678155249088269121143709755841128620070077513773720043717394058233594574657210057160202987100035386315905931998792207293385811440765591740750775167275968123006126381159494571853052008037722759064475351855053771519831012302848907958262920720059097198980471001318334098483512913091723884553414652276973279806882170686610864714101957148103863447148831174404496567032112354352982324037709666487403634697540728388478071762615723009217493089841907975531103215704508390805609228602073798761887917867621186640958493909169813300171002583073086123581441664909247257270564607058687143805447240095830086855285020985014056648756093790033883927654874706389442747415662618849419381823614822771298596805251680656477564366500097989280585344136557274694868215372692493528698322964310975982390568868489555925003705628144185895267351296611355475688516939572315792838583916895953870702739379728798782849021902089593379185905815996632973320960087380343626569385582580097921891369833177959826190090658580434436249003242039144681796688037025373244986390782613473090358663993488864077204387865133597274975096801953083078350606638051757441673321851177776668474769738635342144490646014248869936564467737696694531083064600094116222246692812520759257681442845136562655034496587364059408258181569981082832560574633447925223309902200897039206171040241410313463161063785800891365196775287441376763032992240841383072742253547935503014694777899256348736684690538281678587897803453094860507752122786150814000525805170221247125822348477451578528367592674692989358320185300803204032951533660190849515093495441123536943884596117223988521893507342599255373919073653116210112409922581186106380321542672626527433046558186551936321227191059045422325033841307759697883058550192931503547264113958731321819281363963664187225283771105108957892252773078707794507803800774793604099118402242099552928536615691168959606941099462980408370316915683761878077610276738639050802343047710380585431890753070030009191872632716469285473459369195288072632937071651365110915224429616230445331916840969814035080403975788382661678930949964139841807650596750879552979700260138347465862795617495474084110661715910192991545382751545805006892172891312157594030073995570390018324491329403290160120087529142872828202830066453090943389857913507963327140968767399337829105849718134434335482432105898846682344360787828729404467074752187558491943499162034936138539750048927022779640033359274555182139791890370328997538074045873171180177766881814684128412552335535959120132251817124507213630996575107195523807938046949988455323242610047768153414657402845651029125655848423087122586132697504808121749440476090999612137256687100254063751351231403791449931704792399440694698835535367913254506956176308229214256615949859663338624950064216895014489912460778538932180375758757037355802078032376590285100976868112805631657867874265973970310894874051993244709850170831583568195260605124557952220994659256539382640445788619961456072707558134315713373519293664467622592631576469429379900692995286376807201488207558799507537328550963272561073521166577965196957553985066690629909584880051355240684561296372502274369103806596416289346466263593611909567801504337129223020698140845658893045967544804491897975338719829093501488272104761614768802484461954912184015061419927034232207505070882594401236360581548857613973731773761495909443656935577513827147743258572020358216848260331538960780218890143647125247678356972912374487198604927617977241189456899506939190503484433573918305443850189581512396720604792529382244370559225976489763035082974414866552071960247467587253390711147626392535264869270398907791933570807562448321086046547994884424510211751632706548251437623851065947170051841504481265207083305555812389978252458904268462478254869099361138480747647598521546389316508191212756233624383357041215436646187156289528471587256333639909983921378978200912188624565265595868541131400540275886621456549792322873008510202431814269173244084181147305357572043332259835337917621058605375501160603179105104365801954273259002248548412166042810128249603981422209395847699471814537774917615446255867774083035670768359809463982492862125003612402767848143180940329682211483107946804433141953918457992209007379452259357508697761574164965482943771362567775720368501031864843296021836644372991629456245575235606616410438048305491549839247662180661752497874966071516963447529419336043255692949027321198086583314498576732401004080225393156729384039777303680646838138178096008087690497484047507948482215449317515147510080516735982378474633498314271956580984854185581050265114437514446289000068460668807457777392585307038535192383116767496550453512034780871692959235790523230136287139534404103672578599733659208687062835059090047120439155338106999052187871096442317708643571529013565683414255410571913395059843595294997359008749125246122928547391878559699838476206739838549231555754767960198824459051570172179020500573044662353620991074619900903269803468736615241527009455161821338121889904671688758678608989107409258105222499682570744094971561025539525121716770694257884511843192662268941948606044401850552117844746813774216209442439671893761182928318372830548454385115460560286326217455665129600728518786710109128912128870296069794083909423606013973412067651560730095790872534326763525804763751941675916037627528719115229314180760991254623554593851059957485388801465245055236758685742306476513333780614412796435898448653382560951012137304890997885541787665986243090168157190534354646924113335038899031625740679306002993435017845727504203910659852297689267147372196630640224289135081928901831246586926291472866689456190657511437601271820277438704346051234977818447739007560607201690319557221692817527906962678925736627581913692540767524350571264725623477123935789762294049644682004362614365422213181338114335918794265689155026124620810468796041347618765532032383500165496246221685991933606675420015638870184636727686318964627238180376232000304307861014269837177198057499778204563406273440325931447192005538676388074280314030500996575946112351677428602151372090109517384504759856978749885099726902237829688458159254396158924605302685494011926340913598862378950569432381989168108484484639254366718860230043978985901441820156956380708278248404788674933452864141576702194918889161225585985563471718566598607994669042141812804919764634607347841211092447223263672158518152996540789774040622998679467949704986967583231934559785007363851161773509656090835341944531262079636640497955750792082059605442709129003239091983230252739559582967103671402664895899356783342672347108027927441437890776878552486892917009758021441466791466887891360266178798122397943702804665351095193307680357240656612290018381062252658172025117564693680878834367393405069015285033259326503593125593507134274847481914585615480976036059640784250598759910735107725411607065569258226557339517481181395825493118613047029336146428749181047499755479588574361918968190948424863886398489916286937199059677921117204217108120992073836365035427611986078160360251565430150813354849860978766158978407407409943878573597254940352766600220869637628701601650315037295290160984698012466240177795660554092796098173409071600167106960335418599049175758877632109879718527753014817541343369536516015177280974585294412897681818270059524390849621789350848478525684705817878672058977880131572695922963046570922515043995295421387037469981265883089369834080708552805138288345552356831509295572392437884828893478055567928727665652247951416828945782546841041434057804432690928994400040560715025631597746603225960765950123540198398172716902662905840832264134369329491417607609969918354345870412237929396557025873280417198304128239456322940500665785968170845397361082786050230061529316858807417807344977662689114593684080758396761036074135399734753817163583446076627157189568305993447794335643132076330131673840189097022468770118200682007296178840376903224123498544787865517843108774036595433991827161068582300542206850562667486028887734170773107493660006570319390095696108004093689941714444430181102134958610047421339351580394184126635477594573923900547111032830833607664409133026498464502487536175514017118754009642134292563234926168914447054738340246522711235565942766082205572856365856371527907770229637950378932419641209011846542988069523981364893479984704881843787237667187202892716769034225210342856071891409614621665485223436383459869722232106722157393798161816467717239968474670859667611181995531142198158552077337555938725685932335983897951246171448933980124875011248944283223963903790385779558327243329527902680042480817612957951266010624950853488962431181483028085767473758024590942947963896028872694616019404190351738722789035329044215207161252820581090794919685717242586583193153001947342248755672558025506466880049336197762613908595468864781016888564442117251718836772445983728622452097119140446822962027485052473028438672623493770094242700583325422462876801685604728458572568483610383608145902917304333303301206699210970549523428417468866010780043324762272676303611415745817011770811798512326296072957144882453705272854340530162163194383143594846965303121621396548028135741754242427318806075388874213224687712898485608177803135147101148516099607966968984420195557115981821697165539462283487073656705725690897219128708342645302788354487887148305827752567537080618107398255923221675482791631145975314244046717133566119598907244179856211442073939713462018642152974170350625737686917274164268184429345850198162128247527988108472781828587808766679267963792736803555117503408295488167082190055569681846621429014337273228601864794542833208295665449194276768819000750498085917963758447428544504140491581149283371180798618790296627371389236402302153339765669923565436399523465962695459592456434053330105462798673233211616215341800075898126817822500542919828075730622243878993867585844042885613600352531801504279656308532845263917844529818820345213777305942436834917993259157546055492339169287174722297750026640957705694742982915438676615004792678651520803436690750890549967620218643188298897416135427367077236886030591331349938561939574151448904439808905114681780701547115171665688536762366484372196507840410489975409446019477934939622916765148135138733287378949632222240111908981388607448911037048805970405968093473588646343245461937243133121322011959354931113921004496469492053262771916655641686367214548363389886132642363503482147202592179624306879900326851186919999217752009511374525236218258390275308640793114694888450512849179295487031054694809122455972906752178018100473870695107051717630232154826200702370598612035294504014760516085116537850287048775781877780910348273890187227903165636707911938170415574476048949230127584914476312671446998886457768932827635492533189080372333264117337156700078079735732487585829116584444002507395543070062647670770279337907571707372068923232169355307295842077601137666399772522404547898274897587322212581706743466298149298771864490282510962449744306806933904223301451968193129622511935592925768710865466316142229751122445713245595806582595966156338070759416895727358452242810954790710913941488544489537504395468723816427230774915530341596161509857675320402957524628040178962089482989592697029946021185757739272734498838229604139087102052668739359489952912799206861244988290101687172911424016193734468725382198925338247753772114205244871104198301575249117654971815852495056153978177690600708045876949417370487019627197480400409294541867235760673388883849752251843177873069446466591513615270670989604925185107576917041365026726081807828542736414652490917352421896673441416401062529989248062569752292865612196261784731918244615163005220745627323815556245032879562263863757114774978736450071443457024536239646000191014802822312024747002189268534607166469975917654223594604240187234293823005477476727687412770031815402531140438596629560029146141070189809403962507641367923753260165724713043301570775348240060828471269543136743194582334981567411976662863621572769662946795125768440850568128993231559214047869300505893018997327579250875999804546403946629898473944102709891516240389768152283616343072865437289471315574741920485233954853578069267840455660511545440894838570146898752191026941771611489588351480145742514793804324782948481976946153521469036692514887773042263055618605510197515561102731789479268485853997736835408031440883082466919222329904004382246243250987388542190692601604902401104748660222798171018788681813481344725962869812465058574901664239173846343245630642813856241766816748638426555367458196111999242135987855962779075606192683652464082795432380213048121791391170570111448926971595140571407120680584392338487255108535714716325203398745676270264373127860307501880634413232648361350921071091588206830174732103520116426596495278979250030947866832121913869824041833516874268459446826205568115081367858456021074691142663228157137109725012528025670663791435094648780505645884749093658929901836475802905857880156127039912642167506947194819952253980031128553469782296987904897754301160119011329990487257986379616354032137220194360949124574952454117114397442948154581648870296310294465786110240671483810025135399292901944235562609082003571274054100627544679651921144662889824540086285503554496614517145612115665475058023363251999176346347645823249416483578036578834909780883381037379571928997730639189287705343344322546029687577451775309348200249543505160336857861153170004878483007608394865717054172415737473583459276825151355791579718901180849242934674944023691701673543713737061339616181914862082770215489705897764293174415836527867606319861262117145512710951711322917904687569380312134813857539252290327570508738068484235828304591916687043116489603625621844501410145107623091749799902408243996977942369272120567347989568634936895825680467096823384630717945871508770664599278696252809744154426887039929253268385557849110237442439108443940035439073676418432563796431947218226706375790036582486474986507084832732566181640888783991955484444870094055236145579593063830507561793711577328879395823108590305097971874795605033883004472973736960232431353112330113504672655569504195382379213287473255439256134540604205409920659040123283849429289911664875053335773182044175644626189302852261914935403023064102888763216602010728999699003539654626093147615049527337750087249692238671686600491094592814015411686509947859421992313595488246951131556183034467576387493195300713481698823848439743806377906060095442753372234321649849915315424137933333610829839767422222863804232452801715107277905020847615074714362009834436316306307855823837464386498594785913838485352747802605016961353120531855047423637158631787223352522111735744898894615200251241874536405573471195520130958537372350470656929533355192202347822719194269638043953431860559978859748983209206558423202769873281505938779295049598292173403034017234995293523895845158724409020395239140261087798615886578712829982602917846811919696919091726624663041050499708183749885032431313892812965846316259055641988778354167530691799778217588502708645430798334839471792810470808677809621654255756132844546479342383226534964079057090447116278225416381970470669777362178096377022185750581916797672006678822910491529103760610202342600499762105083472243859860684753158938728933857525847030146691984310228634884532941735973762419483581869329641364856024769592817230377500952448437957089260892791136970289049916107006510339185514835518770861958362850501617896067323669593313256630228325229662755938750011611027097115422457058688223719233109316297113778316385311658432176521687224805112321356423865393821874270078823419164832592715417958417553340526514009367549760021648959427736805574015908713719866088604865260546815913412156115588832446222962054882893383882881280495698568352941296162257251784828679084551654175407904324333346557432530976518341179691580051820000931834704887845227113310661253401253379828861513436844179396252106057466597825960550072650691039532091278450433718973688866020504333886906645778417934027019687181510547499776587346604233801197338678744135962557838634417392778918179804356749750136213331850947696069738689649160270482323847803486712974073042298327364620136567085421789160753542621043643174494426434100091380247838416018902766329872686656066654355228420482772721476325276429459690496055777267824542753552555200138454450962758973575147072625551457764642169811623798206707728227634663928456788957927125043230491036242589059359260299833196150249823834889771245356399143936049225032653137701274483639520257180391820846658328658219534443408798579841124817017333036949788108195065730862792074210236897267479416138512294930168766045039676279752859834183840528105132063612313838371417438541161097260546772355496954105017336333052748684394774199929457422602739908528578121002958816251532988049161997321402714091843206090782427729805257629998674180919543267671113545955445900369682695719178258542927795580632281537458535976404877449256322214675051851651511912642037564493757970163923112632227088170832931205905785051016831051344840691508439930024442368171797024918146896385655650278919220154347104948323350606349411207693550482969347990119824060825603375760280292434584519576301289396126214373011165142408616404706397664208417127337778759222445326800161323065630667294981699172864631781607993353027806843056383225210564784014668803923391658935848889441460160250775806836381901752426445105013929592805601602190434561266374217608652262291279122705734086536453423415079497523363835549103860844291448814923970502877461345394904339527183759106279579479386673211197325855933562232762432660219049003281956717104654218786315580715110115712325851420422269602861863806312630173410427725385870978454253492800699227999900429706567751917921548081861397336160014121289485693561217420178133458274121498907190212333410454450960081199536874917710606370360790129363436921661719701027621083903122484428685541913999981948110842934348057823799927609112607279014379286812816087506005103014839016994410342493869554269447237494970479800761552129273053630020933380223519209712143583016721635719744582291267732211208441314549195031136035778746562726639057953684384370401615968039970695787193483509328111747924686464326522960705746244086502430914466187502571016700967506500336982493354326161804620491701878754811582850346158018533528566286269705182500236951281428896779973083710778500661925687796504069484889481446058800799531496510322369075465772086055336394339228863626154558295258417597221255099871816876168286710295126296534930502156228266606161403578254602005772248467962450546746877097655720415045954650503280489145509527913475565218709601159358501573803762494861171626442036139825760137455467584675501846522535640915611727990421346402234617283801893631557261526464145450991503059914326914985432040442301627448568014543936715514012810432813548090325739824957225717063984652694788107424616907826363957726989297196874037784269003267315075511892893635428928775889743883013448757722463152480965278282045103868376691843179318113847441217698904763909510765330590657489076807547160749378944380727555339843717506216680912913446038892845369602291081746799799017502494358481453699393341298799995664183634113044758155462926246748225486564936425380135706580122803465206414615153080013818761347629141228705377464673770501518585671063264115744562139043241295607251236537131485381637249553829365298259461297187521263666682970701751004322631735938413155397999704907593352341545908998888595158974812886002437527193730625444252600018857080200387684830436605090294807587367229514296174166207236222734189084230235757822671108722456635651746664990456597422436386827040099293379567414048115913934849800304123335952775037320212938272171943050968329596956435584116524979250738996943119532796963268877085491519479126132700031392221090558179188903365537094589774205491461368089063226013753909456931721596716268187656098147033367867567597154507129149059686778404452084138169336328066692458135414763967541273928510245648080548187793847779839793698920221626284332911597197039132813969720756794116860580571907008536786170195968590113323641200369760565647742816281599746979697438517166773755974967941403746343182069439933761685823377707694060104496924089333175809038617925884215566576088722748875782809837057803739322675398619328491623631398541257910151310015449887847541918730551375604296079229287979190133770761648263660924973054217915388177538239300172169353362094937719909984322070239801551418641119860313064883633404496007913484668712464944823982385419119788805022045676685350560093580388246042934351248745191297062954117547707219196268823623877429607573432200688917996684657259593512325008059765470918779665863413298509418797789886611670798515070735976791530705527759229415322383535283481115180637015357787447759069724121369658786682235909698202847450248160453875441065490952715108242762964619355614972270862859601528525142406904228518265752526494895790777711743187269370871007917003687752970775608551218274704376190905767827709030816142900594403847009380351495034080721346798784612312083410388609188510201512200881398868953615795218443892265983560591854074632912869597071513839463349542514847949609851132658450425831641439022466843887377821473484740949214274287887404252872380453848000543913730005509928609327643950493698683985813214146975528838491981951671802506949361889158979372115087071680040126428744285997873042042830408266265821973979210708094918407482740090341791732563004089040174112304149061285251571250894680251137368736664524824851571331760048785583186066381724148775233532547051920352233808622976907551184317163951173540915685168538208177016171997799185972976932319974440670453381993891488271470536276024300418438957227814113458807874770268459956350566729750984349465676136147362039546937644674592183323801618889197201962727301952994381289036878848215763997478225025364693256560612936172988306987805308946839123241587844626191609694957763814996317003719522433119227077740595754022448324764743680614027937828192710266093888732372815332684166275094849507613785427354186046895689667518044857050898825514611798927708308525815903187773081092823577889253564971097055492286776614132090351320047337102222755054608379668146592121797747883284531445126776487881994733531200129902133255029741808353405786489139349347450251335599238615637924041605680780342002505212075118096351449769133246752029445628576491864167125704644740024862661423110696485906213050589018058548015806052038161495462324548307695876782405336455288168287227052820721594066273884916909443211257048203209693967652303531402026213535736111235346393517797970663746624507834797493655087186060856244178419433588847440234692589233010672636545877613467769041329304967814735917432747823481902936766148485853561302204269585784672042191485520813470847014254443103150840164027108217343492377717035256410647074426520771755942403648362396700085514238075123354102245333371664330895399145320005997104079287380140364225473700636966150896334949023286025003547378307110543027351495510526320749379995008525556328979834857922953329355399742974851936868260776989812103272946179118450191572272325043409076788088938902024798949357394406159631192495137282846646045556283063615192857833298690201210570729538105819111171113437936793616212145480058806761261328205386970293433357034445620281608663099397698753140321740587530904132216225683790676188452026425913873493917500423795748516236635227196067519917039853177653363940439655747490101106628052409849884715255244099471346331669143666515216283450956474494382952396835169277350338206157158184472880753582776284494526660889370409193853532468469096583271612240891008226038186936723600355560314418879344935657906010570567162505468235175684055356389189046092281680953574374595660646831516348192982090384238030712101994328985381244603932333519840889247391479012674112041438364265235858242569506900862882172106965108487001965788695674518984742404322515984176324208748695544561684885636254141016816742397120328319109550023288926099865936139850074728407775757117755257157486791043855236165131041211163270494267584851599944663796341634207233861718498612035873544973737637063315249462017359300624536913369531514149436803318823805246973123245735320767109931284040717403373260980046804308617552381085553223952292711901305894472764359309758282599874616226410901257395362807803348041899749483975971304621997181291192951632809664492803626312873323782931627761289108042728007427557294628484587608057132675713104349964519483630272190950000208127052115414507978855390791081847838161568259492459720120366989728651172492572907493265506811783061435139399979023913704079089494434281268318012871181876205208227634820510991233167246313948227457474249159654493830295665120573572469197572509562264875130705318471716667836092973875181273846820255205758128021610773875066679067259441953151530485845715781782559195930135752354347029512805324331535779610502708957651773683460959725263605090203113699544551822635924422609089055672921991139767754081932940247272625549836343995045959191226415495942356971904852228657596979085530855048656797930008312817786479511993458606611494402798664746671066767102478611750240386994730548672509939431231376950947990327987792640533230417751314324668525367045100838690006935098446991510549046786977425060273834120604814588621462255635472188598364392472401921247462300802792872011367571425086681487688572300817245811532610134975650398348037177145949228485812496570880723789262741750072055255172762120650390927656385225099987596080919991853108740011810298421220870239578934625956907782707844330205473674011197785600052329930213065312138226231944767825371282990884686011480305170371833468254944558173654912966475211184666566307021686876779431802549831912719383638825164063246868762310654559847114477835337438574987242061459267478335308990591221365335668912635394914100429008820501239414360282824394217777525839636012845528656613825135507936271360910918017227834491251530998684422637469267163003250455260983328687200421924534765113317032495016837968425559970889739203318945063252602385002886262708487270606467243109855407957273456673369088562432185731105288493705958971850534251484455448512762914422660859210967278368217757904770577539422149330421115830478443720195629874353220600764510413659559397607923184317774614324849493934017087816539152665515787373760412123203591304016398669613901725386118485336280066592763853055857032400924574699904283475190445399989262527681542010830127369126602849673003733619523055767062245741044769859410506652158303748282294419292256633704730066811872261861941284771810049883734501966533827620750228623207188470820007775221377372537140409185057529641019605032975859262643001261654579626758919584872203192115874484010248634195150927404561913966875601115126237331470185761239401230262635244972572731196489945184529669868949258410808979096534552123132493314943919316348019175077555355302482983875828256513834944333794441619497845339014351208395779043398908642638154919122812066614521201596905768359705034995883133278702569236196229002020861212215961705561850357155026613676837619888206905513200961997190816904887836038429496130428942904660630789541157306527826026612574579337505325890728300030048820703968839592951489138481272268238260319662853591863718898481188307941462665034638517390464554061073516060906767511103123417599617063609516912771997092585901232236393155058654997775943415526538727972753794831184870814107254541311509975608863741282289647180991908678591005349760401142702827639112294235892079298854088086238593213902887887067148544876393772820390931342542829575819286541413847150156414924618557205091547495282193816144727899838595158001719902439546848189768252809423373178515926126920863381383191901211140324752820940423019305685157386008082920294667839228630295934424743404643070507806170018140540107609428991143964398187317935108799218085112020133373804395007074748711724995525719201518114692280361291973740371478005311248816270619363385643236211502374432705975687573298323829848564938509354457790272230098672969865295533289997490398627680598579049095145552632304734305337622806149371821699552815293018530892711948087990734577345256914102212687273753985392904130793357960470057165484219767527929587894398011515141195851560003618439228512962294248708401919797819265861388928220617412300260450350375395612924203490489501542720850570884676523476533546884300685160652863577734761119394517743275011233082514970057649705372370159119761706249747416926503484869279821254661724827621629352903096142614041714044091259738515412303877300128666969593265299338665603699744743062339273584094373501934430530851206521759708370652569668081761806633174463094787558338121793611590688060752202800545261376617439906322917875019723479285229317073813317981523088493866970023513458265396450473826028765824300357912186768342206163286633840378278067169852777675398229954841761177387386415444082535187258785180195032418867525034277932472397869005241951088280901430001339192470600553298017786960778407261216639380534124574204052979176884505019028288774038170840421959414947040906739862997488036115981245977385732222989494051237207019985944649508535381021965133548788042845263573875323026633963132701273983392140898845627062305302934116607563111964661915172373626348308078914031115935334751740815850758489735236390998955957766030131386992292309428666741652270142680432392005581105296027805407802314158486914333762861538642092915571634130029938816024477286335241951681483768992876550107948637683188822206929552793476620412939643652097700337122392076027835158695003146431810121342743897396478433885492604984039490968236488490787009102679313660931220299818005041980409345908061017573486595003463167435343426234952179797517945963285453082092137419907122223126687427656682585904882922434293997429351519812111076139243340814815215712476949768519218414494526661284547415142101854969672658539525980413622423009723843673168578987250419251929678125311462065666116084873331726740752210218086384931049126802645368808324042225828296904097364877226554421433440167970456450610022663720050992975519609504651841660455874389124555878871362674891615710934858778763075991403022323553761227937063682912937456609011326052127043304053766073534577837912984358302097477392518052646505967020996760522854784316808706519518754934204363508263157281571106704890423455603467089020090838225922233532778242141911070242066082398773784036934332463946439732082397032415992687359174406726561392663683166869004390143736838050573255822830598555369958092546430066812018686858161271549964972199800413901095223445464038872172242361261933688472772210503882378366454075115191634813668185451867074488656039337949255692835904636795884111696092739546128227233175681114229111879278821867274377277267474769989948175874165221588871610400810770505509815862101444690258356681203593665137854150481927199641127644971936092082403306458522447674595195661773893497933935137553220225420971998644652130015145040560318806244918841392471983585760214115333758467056546496994415632406625680340017348827898331573375396612124916625191473251471124613734359041183932351740663699804310123839793785017676665166546110704597515647516541755562884370044708283237247298405678367191115782889382343289180718059330944277156270120017519981694149164205070681387317248535858626405931576074369799883275545885643855934869047078200699542155702136858856682873562107580884581373729727583676264108996040912906896143250780331541258867032684534831378143810921962422180127716464740858483837668484865507544257215449678548023604137746967092727842211614229091715343765928484817657969113703919051179076695457421797632256757582595818357086233141611661189483618709942578969483276658608057352583186678617338916087019790836545645508189269989739288647682143964924148057498144062126385496127154642996238723008194341547667124044831732882365320867958397099809507175362365856211231819022667206362265131400631305103681007584951006218385125255455083209608802011010361365739484045659786239946946385310136450582568125073239128124920126309433490786097804825546738741102139312541349877570376953345693536251515912318616959413432757964119103553403328566422938806126273041609813763075641081740847406671730228136279928395651991377570086042054368959214871720606179432580512979746195933249072177962815906023844714432744207427702509135275514921939127198757748501191727022987479406086802160153767459170148351707540231843756984679825986631836263124928682847096275585489109271692398649047855214448769595697797171582972132178306301573529553596263400656999723877453006355261698685669984342743937339034488817001484902513755223305151873232873704469845004259506733052353936715184414546934344342157861635711380243584020101831028106901036661273245760567974346521242607376151457977771806744619443178832096010302893365919375780348281829769459040539867215272848709108300371524165603563864380832256060563579263827218904733174406633952865507410164209357166205356257047023124953918852545934111633895321639753688874841772372147911058875415337098600557874107586566996727177879545367161524305087166760354743328991935167815336544460084951681484164843387165788158787302564739716344507465267020955957442580504306758049074785917976284106197898604827339981109824435861113726609255960687598668181965567050256097202653666440407718661479215542554225972809389266137469118594950411242437746207741406955920694840642343579517555102074192490176558801653286951750557918062717879900941806691327702610859656123055960384879626079078508667606428001231553483771038133865778167231085814898505219039355862540095470840619563313066126809416939969355181795070868400790051815754478048729778051814809605145822271081938173348111541247939266155650631088847511344125523952928478351190840094403637467787091860819512372159784951052891531179453757064072947933452843338837671654028119210556823870221551574178498633509497734165030539250239868497759455348420583476281731610122597202644052394975966259189321023111520948957213075380107538839151951135846496952820123587438360651127443013658936666988161158033973712510425693659190041686875125630267163097991318185543366030421294961714441817777149586771710578400111032549029554603106235165252459230674480344267392698863528921376278018622495585116627881178196595652601775586435483194880099449997918018635290466052695507077634197317986159974593093650773034712492582002017547757776038564513055680112719100810317251216859242772524340212089775480677842771224779682307748525733447648093165015936549329076117777722699079437250227178767300978754134582243630720857374599700326066669695849678456629442056088881328720042284711198360570892028180458866649745880386866850877610286330040484459524530272115481325501337559257067924115117931903876641035395517442382061223448831704401266134278309690618785816523935515008090567661715476301336794498874463533451478448214279276962072529087411796489562893468146282218153319508831989373486402274063358071381384729949498993579967654946718116832410206573491335187789811630776346147544677167596714475357462989393315518322929845912947086985431006875653754361022826256567313779817419610441840957976912634368009937391916220265294083458052739661609846980424728235047293944855797316835437017115660540717479577545553390559448548152685122168953407308942708052998593622716758861543180761841604822825975570424710366489481216352769801715781147566758377773012312227962260429278360887298878890442758339552607362278135041336694236730001535568587199182401984491830251169680216892375835804159239751913424779265704464857325808325135309763103507633718660493657491260281603583701368721226094915652861034858558501058447210988134946359394876461482943492467851285191356982883541755640905467546654840569424362821617095150815286247186275016990843532187211123778551068532603668809840531290007610622554817918024951156410939554223918963030488750562192689629890731233607093775212520845334800088022047828202841366598979204810815779890577804791591619153713922833629737520782799065596444039820400112804034380684270907477776168961733166818825756116006360287142888432084028649818904776216062724354533019937794170083523931680581379598070933246926179140585283895490117208159812976570604170657598557138566543382942000760998190271869050596347405695099550592144688234071907856179583159308796989341979786784193363027427151431849822732568162486929012327610738020325261981844258824492200964542713894471193887969380173134437044417273211280219539990011498320112616867137848153053383408767152598823626982112618042921287082785204078488509264883062604503755955969415136396815807324558157603874642458358860076003903323872968411373453572146176148694749867092503651554961984191272827809774310422127631237648051606508644935909774314638868541089582435769891231613165725656277886855717870778854724097253171763192898543431876379528403163787007779288447857324418681177108482269428278206762361807698833735395532422169536045197992195977746597878722190994369534917854805693086055690550772266314592645409214900126869315618370249430119368706502121930764736613087375520550461181402958018334120722838839932826756108914844159313575600769697691608585962709875856676432964500244939718653659100510637065486005755593670675816614000792747699590841455066399874361256132968191186483209197839593502735006820459095366699016616955926849480365932103379312616906779029921371463137273056145034704983562838750457505220139852759968354111243476044517024754177524527156693450430425230814732483872296906075199115724047998164553655002392532122095884241366401588209096382211681824759745695202982900286831357642810177712722954802739456512597106980995810997046071175870138374102189901951772400715068763871562470240121385581320733954552914904819021365970102062824442944692032886550435423667367782192381459611748539857682853129223815870710864222580495072411504591441913042289618141831138525251665888793381649076038242438862429784278883146400873694465343779285801300961893440283449506557346367285235766749600235368752414629611701023353566917827718146394072063307208083694905986751960302801084714010348981557427982508322230512344848210748019900683719368376814931360205269900836172146180883264877582563357814636246162021562356509347294878078139422343401207452312548123534371050674055737375792123129280296983060650130596859071576960628982478211718850696593123072799990216851370084768647998714815357025823159077343714965557430286334098508540031862989621245519492820103929047808822173044565261795565320003431956511689800264111207422472561125204103321080282453985057917531258208981345998965018221964206608801272383449401268521130350825285977628138238199389962830803829036170897570993725789279483340022097684510610276511099642017234329867722628090688738751047838041106366171713120461304491045944213724755457422988886196161767642301107362849874721912011342146914615232557470690759898225177773433507352897633694452591454321935002319664970806611557539111165021011126149448839317980295089486100221199839552358109240892339309915730184379893546661627035521735119877638083891481529964627311304091713330793509956125495716119747668679414911851562665155249298369635857532665603416524244432114702228123522419354964764892513458576883467000870481619007421271296766796419821404014189333456758493181317126555835077938960784661642800898106876595724595194911270475991834488208217695883735415762691480568697492767035237947331610399536567969325482759519001255800581102299796694644540412554195477581292610188270689640541199186987903637405104768780591141228722068747784080513461045166173197913382124569970434953375091082303064064916104422897699790037555260956914740503803171066393710156621943529875558084527155661712143098221262548403520873778901616759250584875187716690150406675266938526414293960011512329131708436416984981087535319373805920694701124834298550870259434624364692788700389472198890390988791400699328695937244689933923341541500655824928550510217896614546511360953919851582318632486588257437195585063496784152624161051377538666880020519202620469320821650339273774263227338519039087555897331260478953931319801658568527671566275945320725034150128599877833871218104718780292431085070624812291345280096861242518969695890366418056809868247624192979436447269933577280323616188266902649338881318539604000477753640440787776305727711477275564242687165968935591913804683755471551353176451709605770682700998667804063075625862695067957138556624147752244121748894714851572175411836527096924024941962914027946800997566169667848576321459658920666585584809269087782816253675228394915833088724970778796672689027299796382359228205250469323517743348389800071484703709937063494401009626220459044270868885679719719953836604994141371265261642050195499515752600005321460114270997839341800236415005502991387690990194008463699147713836478781393194009850401633393329684168128010860774238517886336512145070199281160944167897375927324914722301056352002434681308723883471502541284925592107563877631017325143051086920565761785544928241049693033246803655594020494021475277904910780741602097134134501507018310244006044144869691081080807611989193828826384224480911270521225001437273725201249697730420153833294703271844982424945448387425086171965466152602727788199360107673498229880832737677044872417577460982141559985102971389178316324212329711775414063296431584045331158593649836293998492773514046543248852711027643648022083482954517740905217514142101569760607562334055475604419138994962108488634889396005699598525029644615638104520519794246589757239300807658960310844576168879821387993420959249448763436028910864776952399418491316895670763316937359301508443940557470414544142334213779994787963500984775723343075100738775672557717343594084909093359372341968270287220160087285712331243520488742583435135173859381455357486543044194793013378441755276013470003321391889893814524404076242957226360885156843471721335450126411840780337489103842195591156309248090298064348769863111795518249536416266411323691089579777446322414933948583165832688036879979238531695096078481242447345025246339833662945698531441200334958311237377068786703066563013227852820665010188679946822798919839602332171134859739799825855477693699792623450579378179275337830810920701519400583829219545056232358830587802478762724226084294116336982538019077361701575896328866076158797963952225020109293832502761127320102905295430092263621148070775763329968106061012187851355835024888152501503566524058217685047216680738296316547467513165788743195677212010727336979916212281091041092378025249978104627878528884010745544019535716588109760659228404382479009483904230967570586811551391200572531568156552060158559353587323440393708567232474945730370246903009405627536437404594549654038071383377515870973009673833387063043622817262122609615272330705677548881387111726310747565634877785041460108906692851387889606940934763858295638832425615538025139725127965250087377867338824233273992799083250746302243111565186651792537035270712085842419124788661216710378229346874109142127053779547099777731658879540647448352145148535269019842498663555160807602979825956782690055811285469853045983551906744014326519935302573014404674268918404239179293739658551489541948699917201550669469257887831392174552738037341519760431946667867240885728376949460529623834055665793436714020922003144766566486691401206827706745142389894281896016461338579611331366957368669875544134416651207096634878849474641627505261807091589681550036205248082757665011658865570653632764522854529921396345319980998364153454902415084075553708300211998077668204985551424647751727025670195040042788287040568599352152492110376304073123016396804440322284210707142713526506365823784246481291986866106999210825578835172537322471711690100058800695861429177893891686863110361544547429591871457959655325705090488356939019146576469225469563496328716400658031210916194538430409889371594309782667735360654411052088579601305593173747815609339990858700876771374098382744647541763242241820490221081418119045675066597500339590451766571779263513991271214572876043097640950191329029032594851507320599221625454782102087294567699805875069008247944807184947418169845900849285574223281640217861184911550586261351764470086727018698288285275797638775905920870980530817862166345170056029055096628667483290527388075507904877853664654918065560686121852996640728912448534758472023833991932613998296731172769072904036925807784008728998170179126689614440914096159483019887257301806454733264121856186287975475126379108224097931998881491018037671978084966634433898470443849362247356404212322484924950965321685419071906407706248470513056748040298504386701335068173143990293637454956456075980339566268652842032844525857341423946209771907347382055024743990666622330750338769280166915566667088528864874524484284030466941579181204471936015699699493095134374050098488998015221746644740198706513127392464893639794438174792007212793957539977773255674036960725724848426128386797631913731130279111934416125053112650817210590492371751937420146257471084326240867912770869231489289586348652605693079119732875844843602278403920988347003252238822582828222557362846832620675071771711388259904523682517790753036345255079661741072926649784818129104652405272501092221030959697397304604028592102129740292652340333688894602734289347388543571705649876553792375334210119972757177386739000973519188193781502728911416652227907245100745984985295626810951349754220959714949028147290682763003837082514838459090901220794212732030631146435198209614378475735957918318783772750266953542724928218038306874723175432246751532713799067212797323131517334937711143504926010052886669269512266240850245378525116410532660910223132420875438589309444777749054980993870960063182574000771689619314056192076076377305823720752431812948830524181910255380803757683910544678328968104061668389381497290537798695815498886252773813116484449706116943608771185241118565542450299534212353321934985097572596225485567432333339625616013522679949299981008099773494413726027110576123662410812770692154331679645359256935430083483321744136970886382073177564033924998258896017531962638460574675392990020718964913879737692093315900264044273862789034977856464849798343761229510380482382053878009088404768196940258066946406254614089769965260709479598886884994835952172427449888121180957625275995941071742924201882201038045627587735384286356979838382999567953859335214621494384047829279297179941477433047271351183904367546157128486636466029029897855846105844932671514247169279070065884784277039564016720292949376217358595519034836269100019047861964651415845601498776860289138862319001740375967388738472889237658448562359588721884991991712222092577651817135923233354090088586882150058713626597827435384613807119921273570519101146910609861582275117048941587850144946147651452536302897508202388573967622886161244603068235676486108978991715049332379858683671401729851597936286608798855856832726125575232408406651903941181909317420039304367285532553225510596343878902463981313285938198444729769668914546502969039892007314851252582577747723292127208790205215645567314163557656364777265716809689916010714872764980191744981565765003457667810663331645697779111206922762385290023882063247913915676528611162955216401973478522382528203136401092877581317795208415144331332388666527050911364713058607327549889985814385761021941641830682565690668981449565259223258286921919210905247481383544044266994884687884449752176121323014418743122407484649632515145298501128416696895334927821210780354806096966005745833213644147253868631928494758286913980801469386455305033749636976665229488503140574486051420271853388505878936115364004863053978644273469506503137562904434578988930555287775546602291766187767533997667366542261451420631564378079649285419878330656990467839320198233333245820614370654294425565325079055182751926713459019120898174595175751647344416005161184429762748151308555201379537983936549041225504450797385754397312609621031453379651704001683404398511760483837212127627285067379453456572257813338233011851230781106085992054944959384983776290171762421966446791781145612461719687756266143705852155313589330349634475287292053681154261002615565004575046010809521181576080499511176995661294399853044753663747972325352369901234248093277126016581869007361296467617617064422471768382870166912395928983253533191646723377414552616480097502290422658029514159380948821128403519768860801347405004596127416599801950964993586453737362969464979220299391931614717063389817802262509514426847268499792363204973824393928059748784202472736172001525372606304580209801877477009738221663277142296053785613555338364250024450534540301799019089753019955772568347928131124578291332035670897979702040812835323667697376188776724031523687346366757941360028299187799753235408689946435924795325651742494515213916673841544836684222877970532784303929236497998602932620829691130946674522410665366388421482548760193918544356680267616042758358463255354337893760633063912084351741814244541705264820821122335549850909572274804519507513618793168577212823632147405668150957284001679488859161346324600349246337851510104645252063391979706470791247980703062059822837466988013321680189428652843017990856948753069799411703487751996967589634748979160216710926924172871613397368014908136816473412764628017891961217679784783827950522848098022341079622104339875257063145355327319707261851394916062418972976626878649469708836227693764933600102035780191766996453359061667680839660072106435614944351807210114853189529946543280921263379280889706767420998258873948895306277815626502643507202263716080848361166712045560071013781989137990472742429554468331071596791882612946751446222865297757203576168255186772245195185634863904718936607981817346931782379297937647914828260345496957360769188165926199777878348864588697398444460519100547441737518612581880912273439193127617674821120846351221637820566131776103617080789462901941168020153249197644101114274144222602542834342984302643229446361897356679211988532445746588922479144025826776442108882195963820291324945624827118989673952022227461877464456032731399207453554102794571773941850174917959297017143591687379105978088260225734736968985718539575129159938003292583802456493405768883168533705192408297624731230560133233989260395796820027188667314253586698020275987822217940762180005014285026769042343587262399149212914441097134397882629786228823411639677978668533395672825632446980114636171695285910642734363265339498113728237541186493662250373429720535641349808869859936305205408213922408591048325219256433425822855878204053337754270737964441150180609956803047272684389014896549465203269450711196174925807961568564893125422240206527468273534429987757409248468742325980337918885775445993013045449644645279163386324661508499121283812272381427795402086694178624233183240785234559954249531089129251789759656993560468395531009244476389816405347374866900019921332632263323517522273570270883141133814016528818654158613650009261868216082046736196329863461145173917592561413630421402452446530002094368786688981835997188572765668772452155191319518572542145965452651508641986270294666249657430955224219080456037720163480036729221561452798945732924912133693648328199967754952304393682791453709612158036268039546386413614822921832876418781626582248507598354707660443939694111157216171059227752162938515051332928713383969172060781986790664060491387727642689906376192234422613035318600676049080674849617724536094426848109158948359011501107164114748447846740568675035538844674030555779797253341436026413893907727874207591263465869223185097486186413787446626392124506412645872564781874061759137085296578856228542130513558336532868066868481537048309707505661829987472485614403540651831099231621447426641884414769448225699319857227109316113945950769407068409288889958772866900192436045875966343479915928267648190144499484077108353054662410235989820162451899509067781671228713108395464092720385322312300445495961887217510416089571039483998219173240824862689259489920335708556745249507562486459328311479202053632825013930656085146426104709263953617652619756604278396946311818880293443887257909328880394306751418934997196239255521240861828117405968246467364982758359854790321400156676411033220221421096008797663953478461997694874175847974047554423367365758580566516235239159878928379598528165089224963793736301650638859638994302624247351863242213630963347418331622223817061926937381210485098134672140184121611756442116028278008459768640182537163856599464067301513829283059350125431347275888847373316582830440916138647967322942330237679163002427998651288693029934528181842887552693559409129358621620033188427182719923105370567816071012989121440463699288097934995929637794108724383989181502405594499359075342919713479550528138353190291082674259513010755457660832813161059681225628083256220233268691071534229436394280010555782030254628976459535107514665480046434077081509640299480397744572148276065891632604359735775185448337780653296830111016233575224272587804071035459260844622786608938208863179754649075485706120368046106833061928815905317370559148027790526272088584420030390090232638367278806897742387807100467146335751268469461156389509879214429160198424921613393639775155764427618979050626016441940221111054056495885326340480418023331363068646189448293810241120180168691755496378432271173125173028108554740108133053450553334846470836583805361652773746019219652482642346298433189456980533214873062001867675534788973342663657575988258228986198807782236324927328987441097372179242141374264592857540287540574248876189092951559312221949393490159195207598191012412068646176685749485638338192718096205354449867381034309810074032594157784282356425506503149932295355285395655600529263700091549507281529122942350081735384033483698339679846468050974493521621939689186199140276464359074908698520212968730417359679780950600550406567686693977197224414020824813881852294461590980335547858056244796070474912419723743071227813708780498194019512901964183787588015209710508113266397205857471293849410916198679194529648549161616781453911044669371051946058206730786736670744863219125383852191645018333390860945966895227429792473570538638470112530496763044753379833486423731762859185211555205336442323067457831318274872939275285302730858776326963982196047782176697196944084080015231008849943354661069224899281164826404561730325240312994479779317606675467953105352871994607365282676086485767713554045815407588896428404397821560205169562169373155504852440748778834997553077548706973368885640057670498141324812831435181655174661393727527252180529286108744652919768537467670021593585928474896119587443649824474410536966491945354769794305214776587838004873510319044548802965855490706872918976062398145145332668581650994195617688755779290848228004177852208249244872351916482384190219694672693393417458255418116765505813077553964267376863399514230984070536894711080066518578239880217111334847197340972541364651183616691101387618482650371525489246818258761311864659566390380296583851955001919673388235116138528876252873895684525461596658650114959404603179758121688891964957741822695387183387535487917553708510259653773519502242187751496110031498098309982802876971234523367688268592578476791506868911092234246864690067935530846844191110018773534590675739578850064666253505638306368620892912833505752871413449034009753617349845394490585294281451470901471796616228429935562772592750418492657373755528501998490084300274270354292743241933203314146230552279715362296575789676184264049319710938070176520266165690835518442636719531556015157228686910357422195153235899274585330379278449830593984209469480216185888092727044502220038826200267785248681798256536248402487431091915900239747010468363815937709959982937520867709621180842050717225776808585138027661362465670264496531276902629241680003643560535829455570591287225641818463423800272537766058176445285085662158566177009757432696116606541997949486193739204009487769011651815057581165706214116620551295707153696863527272030470094474632310937966332755849752485765128234307613205275887495741851300434457913798515803500146645321413351301998248090567210418614041857571559915429340914856073558020681891862989522381391786195128934958208818567795458944913047090021579867535315003745412794855351774959385032414383049507589168530856663905326711233094587473694206615798631496320435723330995377400434781014190490200838671065307952337679916155933165182495457934831492898944830700174699832896476012496673182786844871613538286419055842355792686394158798973386287247082944418196678410858873752931068678549137935597020854608562096020257113323825957036180601773059275436333204576684048390710407467672916985381334463208211927169436065711074150284349723036959681189143816599923398042224353335861359011750470788647226479671128297278605396087089630855303189867684423381832709230952589741240830794549576950180614027837050655410680732400662167457425148152718005353995633993661604511810749614765242112109616730276316953166011201859012489084624656082159922474853539741657232276656246222322518202327863136977166062933228071124364438772284969311271716075881786348516344615629425400803299025091368441252026492190849810496092417960995497984381976461606794931307176375237567097265714564244631994454809469498238263618094839802173417474495058391636190254914960722905069491783524839047097231851702560293635685333734324392181447185645474825663087833175681287582428522696097862375254771732679600856173078971626354658867642430131303415787804735779256662254955548882154483617079704513498315996996070153962266529359548628559092164906911544653062462595613120789103294201480726387308070039980104354409412868088798382994327992593210580033063852539810891737434320094353092987001659311742400328300281457114914902577252633989325424638796640689037516912539733756401710883576483543340677053177591173259776226109244105656892342124000493054292358517711071146964640414668008841866352604705613869536835806838250267124722346796372563720257001935923114634681211125027936339455080877200709682463448707602063479495956401647661212170086313882317454658507155265336495066833556466901831729744301818782902022805044285889035106886880880262724268071965707204318380443121431494678874401855269194345964393498006851850521659479997592298211715207020039049450174312228421990298279368189977444217190559393133298465428513453437218701068044712788020517312947041701759694093936443871468418993286111833461846891790945427331862685013445320322116469810394680266964652972702051446942708084589700955017913326525481875551936257052490089165556028052266958924366427245883447139261292316824803367443717687974118098566187838133066961772139346456864375293764814083845502461158821393558575502318292140076172250531539636075068038536090601605447990714717836681354104863134893115373515340778577244922223724911216498861221674366707658961008583328673763638368991694366646695174218326565818586939428687902757321165951321940422442874981748033585178963164886517247888686071554250554718029711888039858505588858197844672205830466664508392694193350314587529563250040565356799688336287172027048021941842178456864871279562334077213397759457281246682960405341261646252064043922524027430193761139098879679128634321360859715126074465181548139540340952445620559772430048961522334162297954967690393312849304271368272742250532241194134925785030067450860880104228283499310327241760215768658813584652799007286390597623599261661011195746547706817852617292883855605559356760556858135081138058000935240992100672739646421849460331101300880567436969914790804795092386399793762515226617511764551320901834514391866809861319268884209706959024337498749278920055439477508767897159085750927111687107931219416752561363013975373965834907492964259761424670275369444902122372550479643384037433174579454726420324535123901153977912237104032246782217373146759164993768987476878448454195900233530233464172811786307579911747078021796749242827502602078366820995071781990953081526994950964318453192162779686021976586781755380082048730396080940333627983752663686244931240097873271934520389803735660565423731490729894712176301189596345033892443594777121061334845303386781132965026066537944538850869584515023440398151617957307966575029942554798362067166759731924006132662758866599580281817162511140181591075241324234723741492580304366770163667964516632586694145551060942780887277223735534484760913719548722667449585020470852178437454713932884378279016890697118258613831705508018423557069249395146409826177153588086175701685645271490602312714105999540910407891644076773582052909948953874545903787376113782592848374595844645793757389214920840983828140541061794974195567044292470282467486458339897255271512835065074368091273030892507409153441492893674328296781197845636697232658573854068406408011117127259940957872535463468481433430455949947026062009175185986452014426239717499162887832280447785585875077986285087688302569100998738150129994546690125186641978798208693666926552738082882261340133256777414920924040383620678551106597958561232256523955939839450111757299147052725487992923307221607202016501127493362705137004783171610736800778915969642140405438532096500773727772179347098407168774860913817992009859501993595945806974369476410931030401591612369830533938523163564890140388964247462896061955791836785834848291033065571910465878591530408665856090405227354660589357955724884153624498189172779461019440593189491198648771167950261060218849508812937875841775657332363403952973659596168518836756526782563539453475082435120534120971012023302468179510863845039467331338203186284987436078261032007558665869830451572117453453510922284931863609432526560174461664091455424562824189902686382083719355792143063996204957783120380779809930655058687478664877719402199146145199588480764227393589268951143627181318761088931680921216176790826800600886353115538040372351382020586654974307194695823507532810776021924205851100201831672328679555458265808887163266930048288149838875147697256542076154162281033285915586393221108879223872005363804032256156083369891906000699491526965792205912756373944841684682651226509922004874056128364571510149534522321407103783619877962650979990955007375085140123572688757536810850050116551232642115308109321590291619489937986747481039810595281874684038288975398129429030938901598426547057877334209746669644751480404208559021382118504829560198871632822704944019975775196677870742028136322207502468543905254492710623012565931129335005437398856574564648325814492668064068560030424845005844300030397200840038674264542011456711382397392575104597360015998742233016992717923237889659237333109332018183813303406490884700777492990396067261405875085784335965555873425216268762261381174303283438048450944545136141310214147269229437933043782208476484720741908639062877604909266021758539960899681583563226699407751972034570696625923304328976213614083027340492279015327577907647962146702840026632706939958228560200918250140136969038370135405775315533523635653619621849743544506002055516721067772145158410411193544075925598184606319174103248688022628393668014851560916056758178600844673040678848878632347336712180364838943437981172619735954911543527949909518494107667627054230542282746314882934105404184205948153708626468767516113793450033954994318228158456677919431874375147551428059214660471596988624416013648943803807328178708391224714462551140193638055964790645627253796165094003900837024569663585139877501897110613425615114111146994512479885159178786862687939078622729108178868953958739943789689518983305122231066714649857208607188360227630937503842871195955120770859567465062118320558600681663408489766495818097017846765338757428728982645414516429263647965476779550035636436624572849837476891607312283035560014961299053840684861256942302031587431189421932288525030344767729848000150211194694696851667347235218924531276059130908073199227225262350804482894076416341821468695252785463623721211111162383725985523791756044851033967645734898955620466435962576680980591854122947494281467875616692764313978175641560242938347813530752665450711705852968758568013749228292684499482289321381781289221808568570003253742001641515448924805813518949240621576026986325659007735558088413423955364032481400414132703933038503536686006788298695725297234155340421666161964917367664263354938114443538724779633471041825472295668753094060652847678146539261814653872320022907180638853901434944095919445039609785731084918167436715762045318821898133699394638603082190389743724418629018622397066061045763237100732461214284103020921944161379086561080341314229326316532212414028451346910577861121347797307077211844510568273555422088519937505203796757174202356427970554225729589690972711885486927205326638540153178123217793207374044678772679314089434571311595421106733371883264277045312582726183286993875550914360628337994979451179622834529493362221053507837488680609016059793313065437627709415502069381062862747844102577236176133646303356021309319022114361900202755134810056255393921337868381022288310386102297661846419488864546452178077480493472720800566422444632019109509229647007672254704780956591487820793309545461778735195208602575771951572705431283289096458510061626566564634603252864942890647053295685614588104844694071160766987999220715130933813078859738494581744176984622712917584111288865591260495632062533420793417587561352253178391256727393107067100943444145070141822863134088232459474599893806017092449365858632848831461541507015817187116571405538181101160534540166268979740204872352490343404204809716307116881983196458192262778091276396802731594742753105443871615008264088252473154060286071933848742809149002159343822444128278251780802352268948403762037755287264494401666542986081089187019989275429069060638000530450040564047373089338072926219746187887985404328317617743251970890391170408428814989999703971234119430466532220683979952565709209417671259686402899290282635273218522998576271758848253086116834893164015543402493242122627104491568082758665084869056489717151763579510402523686722233894849894236806264912991589656167237971517588431116567925764843561718331523162289739551787881228333739300057579788354707791928611157820655565791110514638874819913803892396482877244383958027557080406300261421055501266154985493964985531860462655299765688771048612827969312717758860334597006118865843431455420428548865677491841154336348477843642592653562526854013845602892093987966910869775655889440374339578585621488995216375194286102450594717614069966018741320337230999057869229667960904596826476660417516327570438346307332641826438971736324740025930270210860910511401487645675372493199325364423365058646935067483871258723608722169302204082818978895494093283044781723088676728346318496680356557363515711240866402665793484327710297053776593513396700150432005097819202877815714264765025590085156796200088277287698080206585691977690879690476106176320156064958624613176787973055899320373719898398868820214413965708244362439832681210074439365839377402129026985900395626624475188233971998858212302261580866304124257177096990097812567922043928568950704473947196586153373958144460953788413576781878529199526822592144188709972885554191280875916910445112817919473848436842098049469408460971745213973179443116648474500333246768274164081128507068625506396676832064696325045797622201105085567388550738917431149237015061964208701893393715857595467088874599404278869307679149340031054385682996353126340628784764724135477491900065081867789425947341765834171684492040339479975598942276425999972900441794193025732542687890691506888405499325963311662432418752486738194105485436176545563167479875726808608945288098387921588588629330677398210741560029968988465088670878597598185007640664423628544074870816458270233835163372137770464917830467917716862481628664203832024390550482117772595646413316555700025972265714504719820518953917934171956206328697808136342676052977749342727722822208485042550135639894992970125862712827385139699161092302612814494530635097033633117362124888633741854029004630447273886733571071023158014030086323276735551269192651987895644647459173806132461812848198972955075706533602170176855819603153180150429027400790038946286322279042416571100492882261226159522393328321269294668782716287094096012511724315589610223100131346047343917134309570024946541298103610882817004805570758871663653284232655812195698139527489999189374845545155545927188938591885508344284414184753753661609783328043499684700952085960451106258921489008531024143575665854503683108878560601452649017287558162998074965399014582873658044082244941457229934980856583710211666166058684921563650330532488914824072722036518765489077126562927397997504912995912751608636363916563384939525249296368384420158600709238306586168463680354379061032284816877054618286328796873089173223567941132241588972077509400897432570010276824713883820787563287845901065808845198683450417679971032107823099137721298283494784406932397030063303360445659071387635026747647783554784882691556883880538338385287723865050524356446676499666223253173824042824550000505070226026766167838617279235880701989316094298370720417037611276955733120952393259226084244581841423603920874517546629357015887713485833055009987667313974474521882209916760737029977592909895878750879036479412210020970766227106146663277833048930279249903238369809074054070497409301260921194111605247206863914399745280816451729327852231494806353258206867736661211765713869122220925056977184782346378250038506344437672549507523520791988426131728374231531366328589462729427550676341446759392305206564457004162878513041221486575113441782948637128793621684476704115747475205258902105025087924658120710111711912832871200612472050916271506622516249532161580395161962532073976874603757547035922538640755740034781364296976436017601056832210577780462408735042849291402704924210949558276512329977306378993354952169468647552468859768587378046752241991264680309036217090658236473267680001851324030995906258392055300048057723482011152974729322755268575907267602316738831550406668191503565585677820663697794659616991248828520909007433342209519751767540481506581043040138454436224468779984726637772557739662715702024845141772373124550581743981464750549430740648553797734424758243565010675364271518198716865298337312279178308400486750886836152299386959466983155916897560829150080449577782614090204240597904128061298706479929063896210803659573604432917261345812030321291596427420491080436805393152418194446600417237239457055394190665309968220236464164855120737866366667618826137494947695601194715904878467020052134563385388526027922682877286790414015939884339761072739836171911283543297747623757497831768388842951667978207321596162306617927644080996295465759497111676493115839761134119621310533911380431132173570652457981167342526507140295163642764998782086499194435132297792719748784821888485310144694549135383020619101768060695677243307645672678799943569987233899920113766258056149927827611796144930685920621111382666923505920754391099868672662390079646995302134875178995280561739337815895357160715958781453039056996639326437720066630470557278768703669602815941693571763767163165130502930874351979568145361069517494980250788010978905620093446766644883023612509664045905485680068539244386468324704725308157574834781479371814055049848312006807812550760351212041428902078036842271685024150890310761997636458529547649091395227931440642071470766501942581046904283987933018351319396402721921852887377189578450016912640311544226319148986188402776945604449337969045799377034788210436826877808025532309377102187976127194492305763241231322840929954300906969172703434348551795600205512651864670816994377769046946308872473450345899488901008515764686636799318266479006753000647718489234527990243071838191973189274134906011908622852684466759400448691774773646559843673918382650880964979424742173160005444800473873426427992928200162215148187467492941186216025032768200368280683932125448752498979626743933470549841875794610586704427204668637134797752895005809605805971137532627319174924544347144738931096180950593053957705856474681194507638385715144589343653036575046204319336656310055741925925172190840561839604250043287369133063569234021064814563781550013817370877456916865803127884738240693540979559572065534785811869593264295994799813247603349796607461847164010387438859177036529939777979593807663073782748206267267983955569027545323001875223612830642357418783683349061547190222555944388621443195170990770915489546140456132273512672796048362227310258337572643422427938936520794564460388409263609513382249274224541652444530217047917053185555173477266182771301122430053486752965188402972220346846574326744664778719301066981648452141711982732463832350032256001204839865747664693891645830350750604186394151710503573720977542689379354661023933775097698516518384015944753916398156260218325777158952899195878125914269544077918749833238576135440505603064968784998083393446722251995270426987125433169802902796682587061460150047256890957451305169447513636407090150930324426831345369334553065718939986878002241017993447448017565532692449205257198384898262287792330697010143328613024994498796124944820577672747034037765157349659144049559283573060580608498293179443679400774312689435369836067566067061756713149991594277042177334316551731177415113789433122204531411604181835256060409330730823702496342385995099925436499309230796545352754995814793692959480237207718254699874668368563737625247125993505808688562799971595770036755817955418531486000916547314405180991460402158394367936091034285862854868381280382321399038569961211978706586014088079868675604485319711906749322758141657605982457941170141747366212169714241129924644725943675724269290777626322284363203447731396561309326784648623871998256923102838583856378165697129037130109062324502611397239843701201112944626400922355706868481246715127533527817135186767962156351338619450005790717543920444508810396254742984574246908265643154295094004096493776381139447055112115465798945538047690275488082427348148792163586106549752865737626502527429765321413770317766319071967219073963458350962459224511071394479629937688898486258361040371583447850816271141833947008911701971534482053391120901619466169834523368185853367976857409348963925554361406494541663939528571330402423752388628904938121009725669323395130312913507477728700835018112115689495228327690676698534007499349299215589995215146995709578649569102996273748186368520950211297835794108740192533661397547084985474955474767764789230114030775765914571827515615822570766309726424921512585684286853374386024167669887792218963083208650014181512971451982833164263727678506143762989773573648048923236002570819269153444590850814265408982646498658479114148802282595726809871895371047987395653775954320269691991647183645871860830683923567441984270097420784938103498445029986668464588977518552243179462426194287289682101989065931040231681988279926366549547311572743899821255105454021791064614693609706349955846443918780579754596936647688436277698939008003389296303439800578296783167258686596244215209109352475915256789604022806462765065353328889496729745872803678780592765472850775344151634550167794583140433143022229440862538248595706247711444065896585768977966712592619673056941235543626104202259702600635886479307756268333221283006482491618444562064394718152091115037238765365395938017351113673149232236104685102727200017493007590384550692811281510767839415958116678877915356510605236996000645897780357594624929826027244451439151631909296669746553327427388571958288997804090866184777572211708639335511676865143802535614715707298991440775641071431396448687663460845025877087884961778553286250077302342082237166426922509032619940253938499242732276211890522882925178236798986410177894168601038589211043145700800862212711217508852769303606198769794492889092545427417924341139578485375903231096038927617018488073041165911766772651097198825056697717506499269617307751100805782154123561843047798934741189567460373969594273291003319137270262486267880661277095116824985779786033879182188564816648368133153930346159733502385140507032157346729864337532065275821915341013088440697187701999418511272043967253553032434705161741833339827858648313947302152314649283705588118406562460979349760346042410169836042323358648130664854114832595934398091018358113964173963471031182492385394387383982217512512157320030268499308861685617374761284000015815616260417438804990339290644741022357357742465736531738056207864122558590521503182577500227512880509791072920323479149873077951747281516738211314689446197262042374532953120345197998419232722143272841446454677945128971285979600696964528797526480882946929999244001031711073165839240140438944968227561715700835209762609932143016380316186176520567613621802366445315627864736945864368903429484574460569723267496358848162006707684409845759867783624122743278821743282902338762832205265646500376737260446826369416937755752081373508219525090204740573366104781013355615292442996096215145390356513534183029830982200119264122081100900347900909710916683745594189381291055164507652719681587265339044400655772162371739217614843009835241042103113382650589361570351506468654861816978274278567902329190587847981987116446014755401685977729088583068084835353086951119671403924053408664450040801212261927364563735143261355018914053283374433672836648763703637582788218662865666567777871292272732265900497051661452735488885851320253398804494927704073840311991183102082701490690182387191751156408850200307716519020751895821716072278277732216326945625960553210416809307388561943571872899232753868682490050877667589953600420001709050982562730497088788490313356610693427649670815443107345689072742051558839128031075408716716912413960899613223442671093133881181246306616359222322295907533543477634619905297202764114727001989433552800180294658053936647442423932448469610364450077548286704214035875190613905002295452539817085979730940953718245280488475689775659479310438798956419777028677600402339841726364407571673320126436566791441695479696168326278438855080029543702835848355619310154131134967064987636016376012562293745019815897594881049623569553824621438081017720818087102481495153955982799146398666362734397565198155940061404002584831967673273701797715370696474975461336731809504192471692845077067214973800544304825297658324040213169448372794675642423494918399333791229765989169732148564633825710065696027339258978346420013376303958689784520274893295598803373971063602185947093439011694344436709942376538200800640719796973688426671585440977052494686861434033321590192456885638746591176178548344155246841426328873569239221744570306795151593171908552988068095292445503928789991641517596122252575983617371906132611759492743981544834011572820819179279192417705330409737406858953839651131733348671245607249713367809399393130081543830867344555219536554814681927115439725365391900613807625286688352122735919205491180162689898305758914835877784223225532219179843712125142959253441286017732836525425996433563411056258788010337589572249587335225671250530921026995349262225534900296375921447105099136231724246093172920123964903627677804504539406191829975446529664335959022060896301824755904357274565971464185297000537924381788995469147330356064931897444958268322735893889716190508344471166741494748320147243014816900485536510217575749757991711207272296266732276946050113016107784068329575257247805145568052259009106403111089992046215893607673287018976939011361297848459646038966838376910249709478808615556535598430173934172771912896452984047875476984943831919814503656997746336324358619764993294381020980935790226477543563888320379224583464670999555999337227258837944111321401464956029373490352372137028036689240864241799832310931092859615730058562558129389763188500871149984935305123490666726376130613336514231228952238412381196934900096541992450206828307230037249068497771844091574400106536018951927437301954029028572816572913704695845462840892602071456854250496052685095041803722519144783470768006826602953936532249291278914162231009421630643047938713217575953711934113792079098275482141833997938683765359585343955587428459844146759682267888067361941941060739161328963103976397276048855211874781505519898035452299362300621123515620310262255735190162429986869561213688402261708158598241852661156370958915723210197569390858913835038772362679273770121370322531157108016389332932277565193649938426275721406807716473586284521826316355322001084519667845952377847204075730168347625764920977742228172391312799244211521502565716718149479217579283692270370927751865020524290012257756043066154168855243249249935180303328681761064643136563001837460123274030582658130293492066851849469276719115872238141078543671904265778993511986731779928048553271278965031371019614083954116995301474523144183199905543826100599458145997344577226371025416537921833485943089988640235811853335943089368917895784015427800477622278531293671997770060187722758629963560659071550015222465348068385973815961132510486978956052939151065335529566319435796062364536142656592563243844143400742771120401972180849966118591304409791994151463443081329913147851244940465532082292871554004316346057198680555432661017899259129227377019315289784980582929993477785014354206059129847223272431276503767969620308125944734100230835674767921268509202055762160945980431516470951099106090625129022768423414335198176634810054552287620907742491389671045385740773409477681848027225867364873863170387747801736179777751421434662490233635613595866639257762403535205821338408198121389130704462010078769278080464366552203503544013321713896238575144847674721930892368070002230055810521106463367822195885231519840670077188041273053311533521087277397157951125392538762825966788651514968481836419661836305328663968254360198364785669932774209719263475563441409660588893037649105589890095025707381085650325703542676346018121663704061141176697635265664712586755049342945149724903454334955568769188222512084816329768743477518679066251409661967169359203035252666382325556272231068700521259108832477020337366122129176292443991652359454914800702280970140431866428232057707901705560834226908963918178730958627422567577060381479031906866415069289345299203842630879372488810836116101005101581241280476762681390118042877858542776159988399883415741875769008945396269499223297999558064351603081521225810254289309733019332675795117728504407986588964567987909724008482839892620068502590037296079749150524599647550559266353492181875717137472189026813641527945019365365611379630037386811802692225546836081441758127616754906802216699113261607026523740220880184120581648023449476663777613392057113217680277319437109161237656430585731902906484422493332416501836408025262722144638218349737481854140933661681786589989869409247427015011195948247377169825400597981030001358746922403032539729010704971102772614057204547236134367619093384677970857319076834474697290527604490822847847103113200411005145174555317376604627603217987696976874332629523745372136188446643081271900405671941369134522589800175653753164158362969690331326399100401106291892374553210183158954777825659925319531142896016820352860196975816701718443979820623635830515438428289865344647675170110462875264557577445208883904134699449074979495390874747795331512395177735942707787516793371966117146989943985206160065636148650394714944906449931656824925921694925907828768968362028050628836299612036524850114008212505619109273254294755976665923855925575190916175827520143044955301215792002663882643379314015943903202819361248385779771863511234935219982718892607159193536764138125828289693757337227408997563483544624067809069285973431113874277358996513992305739069371847699331628817938690552972915688088359153830240652472137541318977526494124444765983609485723891488362574956447735917278620280558339676982989529371627036919428353768819207185145528722527286168742999611600531581921262744161048980210881522874419835603400198653342208551650281808240783708252133429195530252573285185141184338645023046174265492065089505630772982759702192997788386040958297108692206933684665349387884655691675296486463854043974747778333161064634126322300063075091952074833961577436766314157544023862165789568630443927329322921265910466644117731606411686853899487178311456178509683915136500845687717556761053584823642552444876283731353714290249020315806340685579255617538286273890207335953548560072756399771482566123416082997724239106734791298288125829999844466715449326556207072872341239930271355825486474868293166283932366389914719795937051759978316622262163178104182704148370419017701623764285865450772428803511123305906883451295820851585429994296459883938412530580737892036846816390548705475100620824477617650387449864532445070026659304986234575757359273903635342374395691617847798281007772399677983499966746882905776563141649930515364683740583864021870239003747634930353299148105131172795119973378397236014014079822944852413619337404952721620027196526305434129925721112285798299708876550006204245982186361456058858458392434794532018445554045938615283268345674923927900523793200390435630134160607157882981053347922657861571859635357231264023660496578180045453340859426661067846708628108616411872815883203516640805444331325962001713173326652355955023324274899556781603532470177249622135253639443043546314968929399124851836417130294136663154111623086965820443347590082917240084201812241106915354908618146456473278522591488186811439378641980881173643379962939921494063429231461030704258406304711965921614088490545857290569427229727851515367994118025270913766077389202461210768466176035213445391574354282709843895834162233528868702117035285081565562884247250376829341755811023378930593739874563128265938722545151649270259825479653155725006489791169956323275085577341689125644044602220333365781140782311396483561337544863277750988318811551687404695750838491803779064922769757224446600164994038750621134119585241302827010131400737024030639345094466679321517234200645874847493000235925798215083322771906705681400725367912906736576226410157036557314057152583217929429673429614714602048430689567000981566013399101197471217294640435391740903478063016735666062992307778387139689436013830027501140496783866177093584858678759460935991344607658198014814703989617056468549209706345507922629706907945615665998488789020582402219819816038258358531210011477010746216326927796477200476001251462818906877333699705550082700197088618362417019104130689689856047699618221506034692416372324708063649744862520714560217657441513712932628639729317618526395494558173618929944137047533230132848765608226111227528834792567914653558353434326382728569519149216363379341584863305120550344660877355842444010433470721425226594612386672398398267276138790886859398059785793099111227083123919296940850569755557410029161034651341619447004935266433006301307483427417410919672075530320537315018505636739046138198841952522735312350174539375487571630121305904955680611324014875805551104563281351100597237242685109683203283326022425796371953053802657380615074860742293743272643335387862238668180034385626449892048626278847910415844276067591338255136123940526621351286893536307237311327838535417395050897442838299405213428332504965445196930108163511790798226914630091174079078942931652350440135671651199774960405568311145474531434383446390004137661243828738987879741637392047228998740970241839126661510557659908038262470665770588154890580828809832093118405617135069058451085369225776796317973668154865525939462128305090950069777868733389827964191830062500805823296358781801969201295437141484582577412333436869024187625112800782336945972412067705929420388487058366884017215975721740923774957684569994485145968681702059431022530790550561278800757308534538118546264741413012468116381983836869919949814214257678753909750348032199278269818891534715633777412835040122212740005474864348969159441245879863507390815218987468269071121581418904905642808126702266462554143602685930116116195668345530931266055306604437647803700991416326182252152388036510610371006663436706200534779131558115352649090743987946841467588564540619074998414012728639896849450581025659164891656099247419858864531706974378489949086195119917070127439493017410798996023442527333122210468627364360878916517060126591064126954219539588139336398434987144991297242200346593750302527951985774227940586312685389088158499518286601030991270657111933270626235178531879714237192937291601953491772244624619644683950971824359662051505863326167188190497488193116580159373497396341908641388396401803278340836209741563901148820716316649310330836822152369786818882969257280978390641139650764073463228210440893117519027002167562236785128422239687223506653942785973833413763748030161949188175314668290090546756400127059589630319454320386893577263480267881648535420870975903673182905561353066653560400742064876534263499677933291046177696770909465672840154557957570867304343567233757883269513767309665666298274461026052699298372237989713860074065928551874019130380078822583414910368771138923924291151936286818496086472677894821255879429075719826824755833848662505207732334406063691281466097807182686145731911938593404728683052183847754918494753647218139107407216486273815860805075918559641524321698142916283843891543671135891752155028441350758112712142238431071307081872083649762333087971553938478954409381775254624948176873873708637026764782295954422824960132397577122046748037279326468080668978909180138979968295130803093165335585695049100852702516260063992960292835412811463910224787839362269249127825721738168544280594357467510830724939541010330959911570231396500111839389168626325331599928098894411398085005591190428738037281852074600346314501732776548688177501835050325744199250287227927891543167669066316349559666260924610381505891719218255256184253263919055480642716763133935976289393671831031094581631486668930852901307721049801305645670428393327976589015649656120981470016162904691204466812626754224121707894761043528059592378050104833268445417558741409569627987778949979876345478801578271759182697329464003123086838712207864052345400718360674483354054130484593726394189705921850484191482288554620959731637626411643069478049823186966567658776179886410085773179559423830521226484147555592401634331111273342428933478401955485626121695261136700046028054343518982023056980876663182194249678953316796467998858083498526020549563354752252176258514844936746195010236374537963605253186518403264395273365234920318164743266960706018270943908786922043474061977727382932427955841118275584231374620454343843002519165846164087485227589882470284853971591751037976942870154280743311628238940883771158393650066789607291582990288455222317286846217095550172298341183103370273461359534521400750217772233101900804683816298395056173328250280528863027059465755089782864741810366776136665438899760272928752883184963776782590098984041229379672860165439051585613903794261318858694427084773720228803256899456960567849049945751542859562727169322722097127591939579119658408262892383483985055955341743098757277611099460394854945605541066301483841043170683296046975250209417602060106787756825156270046450298347681666870531485739361677503766458189097366601654796090086375657438502056785827101884846915380970007128090944457433582860236615554944127927296508450013854824439278782362977360732484204068868313442085385509740205014222271459921614934652671435875528893649115187269145994323983626162566192887401428016189982476750950557614356637028913714645625553791866455411475477608774443842668664280031311342743924306727098057344505954458290734270093019713312419804946948870193050507341095395864047147356955166638679503451411115895282999869827475701065510592240153040058294733029408086347070264073475248205131884424819492989528616944417079929944329651058972101033385635776875009279057318000012329647631047468354928834428655140838879477174299233995047198073617169140701115512840804117644755553599194456345824923509611285918366128118301565227885967052017074734430587256468879820380294292981080101205728291695430439738939251544999581762555674186264209987963968866587678810742931865541979836012360414771902225471348379477884190929130556867721928070079656116908222077595451500664664945329454419722747356558120267422698796150408814886255012130952177591877461222033016495007701407443757256184328940370260313759053792883789142264249907808004056312292322708564913629230452742582890212379789075196640091091454699572416001680441247280760918375374246363088557265441854890230757462363058362473788736762862885860983817112692654930165909640174774806048148933893788371030197271387090219400107466566028129016611660009560998374415082030135634305803474899144946475922728976020899869834522491495319424922439836488556826129908763973467526044634882399213884316533662761118973684435897822099624851307531775804468089447954331668853640882012849292452384798981041911477511043189351488718258156998465013599947069958442862107820742860633944058200101534115730440446719614353019034684004464187046759011035082364634724587173522281064276413291574878337141129009602784647216079640867447018210858502866219310682061397877812892497829796759717170374834384133509855360422884750635016427640258108315533865342192296891212119846384210008207333757670574037683647978329723555828495777924939041502769512676021780674902034654240254525567613285798155192459322334419118728797000645352135243146238955700800303178578721826355714916987727294149086095549906712616340945248861321221530073127024924173891792703972525951272694043541005408448531966227001322052834940538458394002100131154679068764809735800022084269890634731401407798220613391539706083630345256113049556519580375192751185766721135078755912776888627371601432185957073924341517741283078289766644659206502386259008454468873027339522093248783394112581312457326922019519348626310994250987248150626311933212829735324137204634771386079063072184992934161746918151459763340469630682878542365337771901133601255943571297339135482097701962016447970124525734484339652183882185362687832376956680631785546337268689869561589889942974327843086190665517041271393430286317164294080361437314757294173253801971367789697397929544794327333144144477216606198360831504472990904557692064072330550432887192711478117059203019613788231543039331650990033308274827610810697191564295435559704731466788402517324197472432483530552183408646620632860742415813623831689913279425889365553256194564168464697457236581748843647816326598089144421606430270373544056716159567099347399600090177408495774503507715687646471595473228196597436586231727942599385490856446716159791112778112496014062077206349252922640773190834641705153193704506128212214916879056387534672383257424645803401810136457339028971849194761135607287595445899641237606033178270674995853078302851209974730602952499540935905620013434866407412487164818066005403417859689540502040937806135988025790824611649949497843351780570136662348680771372461951411346870104110049165545806314662138433041151239052889213344924335360277225553136552649486211553331927983406557187118208232074875483609411815678456470916023259053540508169175423305422290013345517312427910123065017757088304152410736939901955295710219670329858350432424595972942965781360999315880809216523019786235832683738348458115853528770233771025305685013347407799980760643104220525117833627297673055604765315953863645276541590144714115789351235396725864701556368068533754836045139104761986305031515062690925443534542890828385361811295647512567213167172672701081068901478562692805783883617546134183818801620544348701966582897861136083326222566087525008442507230643930421586090408241267837211874075412138813738116860520295438972673569035177459578575578724125594287069568186440414704815616335855368981376722060837251364574938082686559251805627028000959072411644436878853363962537993342515490675323101349521015429971552562263075821155725225561763461974205623548216841060291730940128581961429837446923839007750775616438812722932158067695012139722923012155971601306443619031675841278986441977597974962550527053870375568406697067937669456088721588313432105918185061995850735257475019008495214608316177250383150478949762451958872373130505084645167840214997406358557349232876893958504615865707187045288272733703806436992572227527749055347947047804299943101274403347666493531520596791046190769007600413118777981067641101846336874777558756419419052679973260940210109600805707767949147009224854149401740023427605624051755680130202568892929063008994765534303995242911921694388908687866872993765686548636207955437308020613467701946510409952818683812838698529809234039760884281098411046192579425943543538966756542019254764156876783981965712885610689977033474161967698632305301383960091781134503793502831371829317085787212884514441110095570833908356332873098384006301723085792645850974414315725260822523667140635919653810745059915659493622850000484951426247969558078724016163819315276683135591600109121836222606202106169770434474580994799182413494490438204279061471856876613088010484767861221729954287503717913327615277814862255207795038070171533327423479068415547871461965395737587929150196982171361921945281438372901659427767229258253416136084733316397200962170917994662870150837610892283067089444218714491588421081570150039027474382655435807482967855452400255830436344410822503418565214704350271097025474717486697598871738141494664933112485667221136444015903157578484655363593939954279376884104066489745413980486307354143220644706752467245006162105144725605312594747430993927278430347032286650140727483996354700344340020588350391712795262805567586260004336436583447719096239204243305326427516548783245403501317546130027481652135759934835455540152054809899996233877155299466535446714994697859416377190090138356937807186025915211608254772305668399930150691198244232177745082530553347673019581432993549669587460280222342412529960163335947226859365630977731790315350276294314571063452570061290952310924770610570963688086598934970820857793434059924235464907309755442982583998319381537309810030874282811279919044928204480895828610703493591692043662381244394550809366039452683009430849939636931019509874177283688030964549125215502674676810428393315170820014219282988263865682818323644477179871797351009480393578356247017622824155737123104202080789003235695480563021412468059558331335395581725016064513873073948895936187698188595362107412724800627677146069585177892795750998610223669973124648135996668580075299365541788555045735565142462267844912959849128625576022933631415473115012356917454893136918847067240892526202451636477168187209535619327068527537502619069959963101815767923671501177139065680935201007731993271812508682806868408473759561997044053747637269811224368259647390248237717450895205940124566409386866502179665052619173556303700505703966053331851585565115068862985684679319166070075965275088387007939214150406324077350910103314365851272867467575747345683546457565172356289351405078768117593054668066477794198644414655588800909589947844159048372647591304811529224434787111167575950870215943289511317330808887703914627468241432004011766515810763229857786790201631696372810967064437539359261096240420862750760693660891037641043190969219271293473504336471011280799006773180993456839094083380935297553876043792990144159459635725460437285061040632439307126812140223955000523731904794119998417041230779103388474035949988772159794720088693390511209341902856880906549844835609436246971026256114434022264290605625602318914790358477105237436389420151195142639892355409703788111039998852872526586951406624972765911460831943197848907452681287734808084396088836630779157084324234487243957134064687930053722245623836553747589827563724731084246272603150550012253893953085817415380673707400611798243334101637089867879662071144913808533861324568530399512328401113234402536372965986823945747221679758702319788316633684210664408907100421899247328107956344236120282092010999919998966153364574098315377479780465153999301394259640106028021823486779351325175672551054738533451711501213995672976068208086728806151380714854260011165333282749015885266927647737418615860073422940776863136554613008593966798933459032126027920639928521564985089903643251990135476767394296486076440377028579598102196651941826618100114034636143621956183052675430788852724149389706622770335907224217070068535710096073086199251483632372528659470377520241268164121382287712308335284081164481128490529507610885393332784762078545040499405063544929711918460053708128433770386977962983827280956361864988536848031508114122085285304926708743428489848935556044222276913622106924589847072954170367400680134591294758326969849269261489835163736669788095694522495443533728731576057373871655381963911194413736886988227458678620258918577136143180784820301091116412685816615942369955158378773311441161618773161468291841995487757910513336665324733361220015523518528053027740976836898480351530181561125198182520186595485161928677552898222174677382621708572389000388609428722857311047838603786091342974136258989061905389714462801972150544686178735452462700292919645014784506708796043210573165399690056893599331008596148200081699541195503059752673601711520949969901309473178028773966502885482192011730093136442995533995046188594080483855097289011824761134238284616635512614273911171590943039869656593427784536941216090462605197784626400336825581224348364537170837852764331477983300005268671236925657905678375130805906785061324565876104771535028708708897405294902311650334158098692510811701004816265839370461963656017614175782964066969267786946999847268249228679929671380720399960458990201076591953927964622450405379620024730187125276165155753026059031960252493643906151794742133068508513746388740012875632999291678402051083769657100578567125183704156738149102370781383964925950926516272917705128774670172037702101306063793139453537829268929371121721056655880538320558814486218596605428794882578586020431943060926762246540167898752264218648192809388042226772045176127637453209107197072455698382544559530390855176695671414963300911425564964569648837366407580500226824576396492987036851044666054528187033537639971053698056184362132223628751299220602200666422561474315991645697425680508216840556204443403346130355696538584416862679647241781048497892854512787194533388899242321007131378062379060960708309518001626062077586357866272941647633480304364593960876206055049482106008468328971000489071562653771631912653444133202033066517310820818155262957631318254214283740375390388398301586469444844943212165448513282350161672099790219539606961899989300080814233017282550111320956369228002932533566885420870398672234053089798923683189597276505908201847822542009804318065043575817914273973228204560553620739610819709739595482018266219145672125214064089076845422860169298205640025335151630264190980027471353526991814142088410707047631479640011188683782317966556829148560736766813233543266566403202963014398625886207040023257790081431149056396778230477854403257419841703859157247883047048116269237895901836989096954342536597406465619691960758544767121494860558449155867691845336834536179429038966541488103449048520215266703492580247173696135824817708241096259226398510691544392530827252271787348785197366569312579733182726489807855515930658508464714448076058386545289343377195556163686874595805397115461281670716076368987026566765769688647253298594033180242591085093327557179367273792137740340864030770757212832351348791795159024035403332462476397402113302480479285975363946109305013419466176315614134010747430940363780443373501387533979537771586785073647858365747317542039022874103713730828827604351591127055408918422895266101376561152501953664552895925124649765980708883802908363149143643795040682467194086109827518664053531490851060503622656731238252890506591836315352046466143577633534153391707204880303997912796152723804967837153361876027260151702153439982596206774592640445715986746725138044723270801473844534657108336397622601186287595991767624130022011154454665363755927021673288483636544064147810912607455170899330843746385802446449938996464205184024612294276746691934610662096621362370213222240703511908644321107985380052479929174326692915861453194829607571408231896505778674698121613020328335947274395991520230770972015810822774809050523959526294475551579858302222802474369762841571050486161354979719140822902206442667575243582087101695659149741516345090609483567161020887723336025719563658034616200362161673151355567739808438313572639660233992399710637391122932441730762245145449432230199945541262853170248445032730015496857096092659119618257871998945406593580177392854446688691959455027806432269924522733378192307735145035601399879810904368964114147389377909343807334800299655319085252883922634271877840776344514413999106250024678128603092044939251440662557039370797390108337961541911343972914673747339484738274978246893054313268621700516078708061171100995752165726666046288961356918111500502772151644161320982007423056387154548653252976254112450687736554787501881018407078627906517780011613764382235426384034145444020403372598859569542983068808776225971260545679553061121363546719900860248101495922958586309430034818816706130603139011199581060657893689817947394087970496834428157946422228948845932580719067367098316473922953138840351568670720826249391732814288955107426046152328923105329479670932028511355958829122075908227068103215578418386459315615693197278150969299090580960176788224501690361487539004623053700330142398653175302767299725603586267722516410919638467091994541706850957830988092572504195190620419882939763449563754551843476075802227224153084725464145663436169533320123625327492651519158363723297461496924779027570630195485508494099883541323746364554271627495129516196283327587479146429288673660097991323770245459618062495727837231602511226817882453691326441745437688998779994573899835644776224318791667550687608636546671864981860422681700189223522886558093315730093297771722742362056548919202762576055950427020889941260427478610377867830795725705824067614131802876728725222892106624196138812309190779344423728520115674700471162373269092462794691535050422570333894468013287863412928703562859365260527506664109064028411652622504206182129509421836701183438160883454473319023342476352563825635239002753525841582987284889469565938014746553439017276704228347283152525962333136800822449087242875873723776634625399033347515420685123307264229671296673360908163120368994227655517499332426928292077815162651245440305596420440425827208925556319742144963385694421495956343598989177489276288978219346136670381459453393011950209787099277254292153787259936500947646089998306952740218900690873178814679621473646686988468143240583600673432981046861999655054365626852247175157021692402216830082883289479269899054711514986620875599058043495483303314175930670979826549324447323686802266429811967155927903665549330868289757780929889971300238591771390033070538580261614194059876823537150725422849000136397384883342067214898831674336396065909566676879659686890843590907593656723795383748654500635710899362813224959235607950465345096274160757292150299103432750969433214217271154114308497163627673427090905745772161544912413530910795443057370223724284349963602828476702106776586560778028711809857846355114871736427784892140329385797370911279909556994683258477501742864149524652820879763278289514701253868727376111210270200222212518727623018656332475286905520248635454928146561210377276240747468407923351799142954167993543663844571380106437433815750836125226080081957065286876100375476588885304885358899703043818744977368346188629895138637618447972406118070162760342261286913956381120925919501296808634104499132597062639008895291154092792732116941364832360740887951191046919483138587199645923829958338126810031598890603594326242610835211375136929805986998935454096832964434370966665529810452103825544843363074272253111288075776650184087216192141780962830252127936484382308453819087865062304511366919026172149901028896808767129675389916877316413601461344652947829791905445718268899917707731018881996006727044179104892754723101951058538895428697507939198718050924418422514794636647425933881405400438605777329415518322095736382010623324498726808512939483079446103346534512000249920877510124362307394395605345604126591228586488645563951402661443114970395769103275801231365740598522179475833343409767641987499910225529059230778374292267772855337630102388760494067972259446795013996348841810131330866156343048986107460894056439051343969603358942354326612500197548900676117291398907775250249146080861146614634057412844241194332300401379004497084864351377136875604226088752361543137339397133330213812469319692610032378563578039786708920805115151574558470031897760817253751830924840604826172476197401943482122589894990235477481956605371113094783184672620938792118153747446013500771644388276434071387826241658575081281039062876678933243354384010381503876864232980858251910697848977988169612706160314505368238925122622904411849371079965878284338384054186906533492414441302851107076171591921520140351940624592346506210612525092215983830949414882378051068984397459759283078364895483632732247593468642644702602562305705545551542919182385804998176442064883787204928226826277935838442957282996791430793779029436300957278041523723116089658265664843727817756204919443161267210788488341434143020537989939609173691639023959228389275372242399222653102015663584857919594874367106465312242031716111209399550243069150675914906238423828600141520680788534867529701684932748553882990284797427317403832696240839544533997415513109252573466314123128869018641750990387388928979594846251108070927434367380602528244261970656736230287456856372263599990971757551910985848595374707961764778024071138132841726669717310644747562855563518264982818355611666529727136880439377243942658073748657715904460643616570484621571576003899894864772322723468572925818368022823323249297123743389814934123785434105995449259894736158664800301192336387773130142531151026668454982341562688001876129151208741118401983282014023832062455321915517857074795914620671453142820651275426320342150775189443894170779196782839527473455418770596868665775771276611850916125777299892590345818435574324240271480112266045564763502722819954882220701986875209437253408196875778213363812984874324954928763259812262249979370104603745713669811295082347374263193622407328718678249934617351406393759371142776752670877166819419365811814979506898534404733973617667254737257532657742356689914630328967066454734811423095208225804968357276210073477726639858265213249894008328188754610812416377833583309881547841174611070452739637621661005215311205373073998302968517786816480183396330285949318393048373639196769662039342540295872511836970761951605899676374136158721753598410795160903134769371544195687458891790563645371671327998936533364311549285987964135119302666468495419478095016447031015747618885876227905318973105634625130291376006561522998529262095358303609922206340595494830930298812725166853857860166294954106806896246398250095161749288086036374930777888397119132722760327193381442117963906087667718211219656107583982248289124320346121256249551347377187890866491989054356426429076851001101024114203248665640174754679332335014677659684359995159997976947531312379462786919747016856208984361107162828847293943059324729290228360980339245312911180016198209071396629952019216567886312489338128382015126486165553257700043700549568633019780232919911392557688312369622827901804257696509215396314782790026343614342800281495484396217209973247847932800347211710728013746822229285703906753919973941184686901192429674023488601922492920032157439463233181570558984116596644446325209985608394122590699539260844877746355272918823122276872312237434784502382655300962161247392786048725034637562296176652633491969979110453511685600811462294469909405508310537553306830632011908373381589832211044156778905890059162652954491245622818218582745066687764398793167130193498316681102214809673895519185346505353047531377410836949297614730969052109995680333721228274714892991658463425551104284663752068203146400824648763747271382440582041259903473360569515864865886340181640842705013944718030762858809448695433826320107389719904853056296911448086273283080805874376627972793069306247572878897105662253625101036227856776265767139116068502608644119384420201745717687061621191945305867996269687802161650319847375430818682223076071361726151064414923025383108902071957187616722914756051924488443583253515100410484533416752405291330532335779002885419550644071436190304291146499681888873391284168616207570869630918413276694688067509534650308868883699216780762951448571321267770126582974033434819793995378646627241700502456266101150768784535727490649625309646358140010050903080790929665001566078084227709716063300812664323739683700108392731158239241048428189179389623122316744968206143205426842483569433559140983078550598206513470736935346648884251702871228596129226466770321941869448496404944040213858796835582593562748230657043647412688195568819436506630274447786381666912817983362087962468214931241028938195331955052520952339129189078871212355427103531598123674728571312875343057241692918432042092433023992245714688572744542381248091461887294954354467556462534643045951531987928163893300757968525783789987945652039394456479144085915685319575293739835567732179901864687257059046062884575950828153407238761720319375035000749979062729277666076556613005791854509155952767417127803606519971491637629614290840561608445988603994608131905806606973483970849582288156969244037482969672494427958697404411996346853452848829962521974164492130573156825743769387406963312778834081684166856367124296428140043800526452277668484395268907858055566354331960324262345376480035938056406497922854354724278406813180948543620531681681711774323723445949738658172273967663327308486627277032188563283264932733582157618141740193059414819953103387187684184535221081046845289942420937188007176928510295901332893660543319577387847800950017033893233548255468304380024611327366485698817724780330563611498018270065280731733840821389436715146770734902761812146673965816584350340430479378726401756689664145335085580122002590753185697368216897500090464691951775113490569288423938294924673593970656896329370054716657590724963365539186817446984735205669327938207285079000617982271592867815991868936728319295662605493245975243172031626733600763041844861354056714351473144488205252882954241769983850817437156175515173190555537153910752818960793163418975096220932980424214195441402241218298286720988656266134288335359251865960626211515646518287542557929941117399024780046643762365829303969441727105294550643124834354865485283722488860955771487271275253561169991044060251721741587264534141548965586933899002447392420162597934161701420314980325388952600634165047627902424858893286590695094919602619670595164666651642976623765557519353627811527215622096625284111419898310261074174841516017273621073702328555532770327683339493801929904464015210885301878815382072491144435049546010738821926413505711485479914388479162119308058327243689175480028509795317423417668576766185669314103598767191320502972034711828095296160426889582250247404462259605650960968495287294192810404619872443262775884888540662942229203898394328134871343217192011756726235415204925534789418361448027627296022230980155500450304815755658080700709796894024953616195878707822234975662429618057575430089867151501248681867568637902638361691214295173349445308247943311944967801297170157081479411100981787671592656851587599317723431434597317350418221687072966302000170811369399138297981765726889461836512543616679409659290449260108099499907515263146360556455898390581699690403604148445623762680684555122544096947819849544352912520145948462832943888851725931266444478263459867274561703118183559472390933073168913125121763954198007962603262121182819032722100288209835984318809521665647672615523294430763560459121123163301989495282847745498176861741486510201081170817163635746271188166413942810566421155793435455407724599596653045324787373742427106214774404593090641879696819157185001099931219883085515088105139138871500198730867580131204800391277569827690332763599934268591195097888947180175647724159038435738287369728737385849602009306381467940653849996362055386362335733975768878079228892318283115667159119704284670358354969628549175967996540973965533263455072754038415028708159310956998495394331635122384964776658718120259244285380193811592807087822192783022564566282423660635823137412740421445213154971731080289703096179337148962722897166202811483558968831381595782129408622774008863014212375915642193644572106320220678283697798268122211119110400205263207278233849246486962422210902735389640486326320495764359777576506183799078012610011515293381866999596331850459184448262660381975209020009107215335273792155658241502586912581072779813313197066495928717297563932571212593393334595086889097718287169253613287878617173405673707339359113712317658397012449110452395385506094520910327679527283144334863923817397839747980998613301427632044671522537595609455874347804142031742325815031762363233038994196503117173083000685676897304275049919689976097995057044022125465215338255906350670377857000365651651967223356023695929488238506491150570775589849007157037230323944642425327548861195407497381082226566027135737723611376068420819025087592050544745976350656952250500534164435164517319734196856537689060316716893952128561394806482683093224380687686604028400871267753400498379527981667970436876287104595473182753629705893131143379789715260141165068444006988329542732033884559595810457891228319725411573320514976384163823616957525539018951659841509415412818490068618026975396492465616278286149698058255966907778002255094350381453925892352817255087164922183848450797770040230701381433761022052952309378946645979606948543199281927069689820087733145080084401690624558791699389195759046843107418454312564481375923945841911929506418754397095760025455108209026355071014559654940736515794301202532403532774174475417295083997277087710912142199239058070826962287807673710328221572358015695972858719314002850366593559130832902049443953474343419212108578015423335227452682703838800554432082839442610239723093179181027296276996797457650301563336900176361103350009834097189422203213504243833779815917707228857522999396288565493603500614058187492677900145182069555394203343559605841906833081915996615316349444144633838679106558203797981433947851334884155151451194674474245582368357011082571472187681601091258675815845234337166201950473638882088727685784943396110492350451994384181883708785400755787804950498236827760194222877933707333189960695817743857221822686057888288851156659972997105265553442147466396040683862318896165682602145197525841105522152910573213663460806419137461966477985381960905550297244934450455295187206569193397287776802454657015193787154587295456440598838413644628900017720668291737198232562136568440153620887081979909854148268334525228750140120941093957695365217690228417359390731372768724048945188588488084025397474606161278148171825796018165092494045797710958712112877581644902356097832978861612240313517826748819022646488939750593633558470267023294970051797958681114919816483717115461088968990662483542120942363935539221408191400286987473895815265400580662346454300519191291909196685191356554549033345902532996931250531015481391471997356893464830312210562498092686024138117048514369095480440386324754645932315094707064624650231329155849157643554358429106905355008894895585138179134848891231744622230257460518964413501102111315072783813343620129708677727382049042627536512065164616550933187619798557009008348735681479404160571996505707458209684562828844934362968865045496391241090863183774519675518462038910588031892561462474097240968157123625384655098342148848158678387562905567007077442020340364533569845272540215431204565440207022292013139924339401498118190568517940675135429330145031529066664560134153396504196050041938078470544279696443792061107827883095858902105279473598808209497041686264373783111757797791618140365782815828160265716602575092774874387677162624117613869453866332325337613280188121097978998076889956345140977986852373753252188141445127743487255010784783625433570322569032306290420569573896258057708904514140113353422433012974571412647753642815967370617901423144968941944062865490416701142607087040251043720532977439483873139783879009028547102156072771886096199130160505209163325778969133333313025157816620476494544553321769461957206945595759362421821881375062256893543140343988119807893658687613127137820587142094526916324032421240769511145657127482717640007988661593755231489102990425124711006753945686217150321256694306952139254871733443420980230526932748128220988406833403422920581755201240674528764747469916444258631235834896630942361218701619407379006407564358873323074639263770232744715330876986926755514352817950523661721878748414437934017308898712088574805974214848137275322764505055017937406589194985841592485925861340879033089910404746528551000457713449268014626203296125607594070621993225297372358509937443208500096321024895606370846145328862398189215086127862374684447222637887085666550498804474463184895720912917397054742659122109772029196669771506541819207166917364116157428978821623037223882066449251457931757348390380064288065698134791638565286505207522315907205547194990364352121718122000438497450278707996017373890395748501732997530393241640563944941757834345073967959265148391572074387091417171879707072999243502622158208998136340540386268663626113733903528117602377931157895131779904226282201086921544842312509447754309909519218832774512805135723258108626556926899964535103127325607588081118170669517290444606573854833412925670866668472391772164884866050734593009781779226131613162971784394016588844579959864676028317313141441146025821585473618260219292476959525808192462095189397031601161742806163337186146226736691791774214570392584725261349800553867389215355156661933411911201170399451166626455879384873187683942927174412262412157480280935116957120562031977136394696369382433675776412381053781203412277652933415262948891045747438843652824747095378605705138147709864977216737830645008381928197777280316015835849132341423926634166856461283864121698475779469036933698309514387391922310287667529553319956597728217281967738030873605886387330378891168002499595348540215072875487890970381432822328301556426649372070798320248677824961538700007207556795975329547772066701554810976888837166194434076438029377440406569780709975092994505952963248225133370803854091960218072785689821535613947272833365721846219012700650094711353065647398808017478058278678440141560319886042815372914871755763570181535281796367314560220875806860009843718086642783584263771088111995692672997680794153730134517895121342662515519573505745683608722899571624791981340767260315478290996869386271515092901352041159972959822208479405080695300852207307128201447617028127147439515004784642358680126439072684127330361362389872232095360204695513654193645626453837581578250523664831698663931566746645100756828978513220019718843204286825331652120013800597299454239193838705372305442542815286855024393860133985122428716985983551530846681216329392763731908289191881747774039471511589574769649771939394751518940874147810697022034197613653759285017210672797429233496336488274364797633877176432754473773630308552593442477406854824208643537480964991653496921163592190832013709866661360901157027374143858791821063671418487411649128996392506517350560408378102740935902754989505474086688782417074050293120124713143026147955458350650382688020701570202455065536246636297461517409544586950057329389861053660630745737701510910520850881563482855212450117824148031619833992534550114674068789570779336681026829326713517908664080475951560115585793723329772225082662900290206145593362776488799071197892337972787284832692328681158480827830713122390023390502197490652663828480833021893720428985458168774956862495480520559338051677370217984242752841535060395035105344204805183665535674306661329715166446090009544117993808956148802044627551938141164490782314455967700608114842397671912673511382610088646144473974029717225119670688096861311651821740237002590592989952653681637792859690202009781127681218107774302986101574258727185553869345251629082737785518407808605858879895273396075311121614625867995446894381137372307112541759868828328210125965532814532273260939221981017378641463964631390111714425542165364590201535534823650595227566470731995887919465546052282465421166781442508240300022152442721822273352263394817431822049773234743967796645062855442982880180145505944872067377693364359640909744419753236261699506648158470665447372621355711866010773109343518425195197324945424754842125758357370293088459085719045584490537340487472314355394604811014165104906915750230858919767214132587155174229404957881837916073037094746630844031630011740604814787620047111122100210982687283025696292185143200409152402153045507021974278994386492589685770926091062546852704599146843762319862364636146519851993720744792569855933699852796260110286724236942278005572826758054751134860015848534939726705231869735603766064388983190441475282904963448636649731072576867950900877956268423944852395423987244028508443500394246858846441608283855871058282503165094389813343316849739903728317801096868249509355572369929171996125286111781755568983653318806544184448239397838854766897232755701906286336971960925798326286737182886929082187180450572815677412709565176400910655320597004544321694114343438313023086492862298844225810513885378362962697511449721862643148499372094822985983378116483201877583651761799734888243816131615421187168116808348419515360434065157460304273600204923322872640799832398552005738104069376344010626902272377624638003893704140319351669230746578606350924376387849755234849449696761618404515923130836113171614834762782349939052535104833062198099994342529879585302105309086371417840819931171033443239658251431934175307123095219411222491965883623015088003455844107115673411627477289375402548920570350493257161521087546140493533032148266708478835718506203490711830194433237159249638743885718857143736939129048806394248478560383120159270127108623432367306617764469326103737264718608700023423085754269254639477239411410976124932014345921107998289967780189388396070364770793964659039278921766921971359765528306259647616495501826587445195050585337764634074918788399467392418324941596941659732127863186555910839658144661914583196826809473375730775568678146572148635780880719470830747830996262839522117101839812016812621581542949671808310039491142702575505693372201043606553394087817689585509202225993734710796107635575701908602259975136630923016260591718504078523738429036261979119099932981764404748493058908821461394901053438567213377729036321156345351533284843743031280717176086224451341710126457576520135512487986314424939828139565686756629364204906942288484283943271774505580294610104795468860524905314017241073842545451089064143081896693504105727637331098368717867025763540506221543111562804778033466559041593097802406166596017591761296572893446507429476497614690453141220189272537677593011929633820036258777204552892373839296966223931455473344914258236564095928593228592378959708813927193711611665418104616287271864716710825217596003273811854897891575679526575872455847920531570880664750276090375890646085142908744953097681432646133538346163327638504442817374322227600569704969437361255954322781611223862338903851208749761900346515733739284365283205009665207563615220542373034184328824998130511649913464884476646801036756350451989513856056519982767133971158724009104527399470425359732197347757069485705971854659783982074626410769497507347738777186741020849573678318102291417422987908010669692595815987238015189123851165020399894761416540956131669831531049886678135690169341761050071332208394047127288511370977095552290846234975622908405683736331988702729400524856979413198978335266928870769479384358138363321705311021808076723153904455991428920325357273036327559689004599305383753840733185638419556456279205769305014290023032943639017589930566074293993795393211546420667348485850481260323245634051810223326458548701354743753542156845520384709792069529090931677730413653332765724074796152135988025180673712338154457358351100793839467464829542179518405686518353453768324703842992340293240577087208725169036140858102479457784177756039472738127364458394867799201866847634362514759510248968515196367584264441077436724845656109168025254582989337249352958739358437293235464491453199863963162760869380694362407606380605832519889710093596828066420771790310690591197080780432144838265378345439675954410446981691825297118504149394600613704409694321903306811349184105319895915136647377930010953517009673931481578917955894258458741231200839424021439915294652002670639246876480211179892766099753123856574310675519852394523694596060085638208123222531875367073867609790508838834904581336107520469541246557372975125934432590509510613862413870644187939596711474483855681743269235458404217749754078674154897605526115314458932729364090122067685542305920776337482586762033665277296774715115574248749010657971560117124100635612484487558937960615811926670565468017167575813888356252951905357681910355083003870071073710387900323759354588075295651205963856649706321586310579675903306381333746040657360005032816366198614895279392934459738306015117358409452090317998103985860879640741737193919900053069461981216117870440445460867600902492397429414006987519771889792806914863567386461213265855962463219757451766214372421922721915551186975107771651896491011568896205467837912339714483254049548712037700416980275817853502993829594786278311207547226987161135693009860900840241021525616086952994629475322714560112946553260957454296346717046342328880542125246552500446268361821314589691356865868861757642809996554830213708060093919590127868647065372378052192971496962160241777830677207832210503137410268954535672521211363891097333531427447923960411731337478231561624302119773618933834873938553473749647455196271006605094004687257027793858756676677718471313807719475557479271213322612969848490155938102480230274287748866683559652864909949412762178784787514439055762191765935998467292048645610521014926827588973289661353182152879552827049948083682024181147846459137779663624735817535338314706445682137136077756662468597945493683336433502286149953353680784020429232054312796357861758410363758958729066609423065154950781062439421460410035097993143417244153919404493701479571726346307613766715112417677196438176891217580354606053065535697330956825564216457058015283342121786064088940650356220086281535119447367617468901627514238831158613850020543986005695622804402129381238104873039255461265341136387779013573026743008457466122780962797451892296651854542500803355315994153878558294330837763311536485662580043389489797415441297804229984796362656737967938874386866913462025491643089436155628059698286791355213166102804855153375943908089976184694779267278433137434212152919385611470117975119623302931388994424599999560874763653485769532298713975545491433888030313619899390457324731830072490384371623879076123084830114941358069573265256837854871866477128735342891231723616806987228417173705728528979277540209448905937013277878226288543057149465866491696107222823504449821221124545807543434808848526988436547112820112745847395646981195808300848320135938626792121714657182480762866989996739361158982550469893379873135555274093566665451302141832193037493877116677175465388614465788506274121835444222878760905300929316700558147926274368105938598270853889173601920681573405269209947039088841279372654259705535247110193352625824944034651710508308898906980430729417920334642000091861935625480183251790344841312831646654767505351480246308144539551072948748750266620038282861171214733471251857146778758177114989253912432948301117418292645323353782663397714028810617939667877046755020933290886811733236516197723734101867520795846409028804187017648114965808321130951350362770257843585398317996414440652537086878603970122571242971781743549016937856906611156532072372045791629919531885643832362253469803881227204051358161567127882957280944415012957025804959698032247435440045557723769928002815743321809233503046081613882262363879904861633817812946008327275208250862168345189677028626240917950076185177651874604724753794014775693095622710744345643358698064794996648517690231987633576710009430234669051050666935557428525548185146517785946735823923103450830239602066275547542795631979069313307749806470384389532465157013806142112315899309651026900078572673660670785089864015342467730490810453652922438464779996967041995186262775773673383904937348568256358043692909253500392748995430346298301190592122892514384752298742827615935216687328471657585711652431462759650084868913903882036576731249995212806380065559485255605842519337506708741893908976447365366183590381109589985250675083117918464894065324789609089605833305073934532963830636280058708722925158391661260495526269682023419648456701870066021512471218488592145698894754555356757875211052395894908495266330570603794456229590129796203749947162789108770673310927167913579018194075937398913327918666654713162362951157565240929117729495213889217887080858507408411600492151074437128704946512023706227350352114115479706898587768442412513359883643224777505128563621400415945964106783854579674269708212788505480258975766520451158919112380318957498696876997136699636794699804508511834338369310560062830007578951941889914087156845900789888855708938877754075419387234031076065295686527686903993629447848005032321198675769361038820800171084870945789645879009399446800915436208099077967428331557707527831456903535843716360747735295416891741004474641749167627344396226812898703822862343578882747389346573552917837573935796505240291945085685033633392912686003241283353019821258031569568601650860897868141889021707010646350702192377634737435218051405898267762245276026881551714759819353501306422245640013567924206612661409257514617435077500909173898782464364419080826977082451892942370816967725262374506265117818107734465291917256558668849240790876722627446299747060328782542367690751638196920172746662345798047121057653845530997946503245913555000606541103819157066956058111535172649462012088338831279491329795816569344036329725605009931539104529323883537737284880182906374381502212946964477172243794323837452556805175171364436678304534532083105000922152547565423741182053540627113823560655877428310833730711497787015891150708237933352258742565041862554781385733036756397472211958616009225102432684564128899178147537701289334060224862951275316427414527652772354547343455932049404744404726152979693630410888592615228786061975991520263178605247760030334972549468853949254988144522058210733346380770123233732597603665754964311929302020761335483103668661119505858673986609847686229168508898223392333732866781125258737346860879769930916181653646972766425215352068587053663027830530230294981181428743742208032452606060789962103488155579451188813817169823827086334678131194116622397829556050504178652904036634489201647907657624534312725264050036320144668170936790502618971568477769292801420170445815024893584371907524526418244815145859357591256567304063893466578158573175795664002339435194297528702533821363250281431582586559377786944886120606659085062309038408659391048715395253069873212183238838309300924742004731111276188468764855042409865773587536528239425923480122413616492618855253472483512220119180031566754763904412079251434425744123115225812414759919504194163576079389552089193546450792358782505282265493395337148373536254300709319984465736730721408272474237272390439839235531257796553163780833664977746121907039297966243020897314514303235646858767541223597751308341118065947460412927336615546269168183459204840721907415533853694177987176886814665116143803720651860218976111187666374657080657351012803868364495940144078528152238577773632153819954196698143685890173733608090279306835523877254007137451923591996932517740876809669894256172763855900577383610813683602989436076582969191745674401090029448321807087716426761338420073445344775754439632160389557697234202133982582407877515535631359393464440882195554961476765726783699051399516836586248227089065419424856128684112354010326300495953573403612455882957754734462731184534274266407268083976985471082017784723545878091699220483774848487963249871047048625130385401050744560161387898187599817306869106199308450198763135793805495523051906694639879393706939598928751716549742938217644315140003925238215131330707600181825077554690914136679898304464948563963769201266061406961777354668965821530274380704121214610471532797301699188108151485989702251106015124461482894872662256172641652346776717749690509327911102038428244599612473174186762532129875644592152359949257759589708687648944528422785139719842602662358251480295857298885053009523307173476875974017981659614671115730195921779878207902277110549834639267605190780771363027100086076075791161504392180535530225228830749333874490950697639734934217940192905999694303441604637792501744983207953321750888615133569070430099197394924512733963135958730032434457136261996550681039315209649327681723273499313738458881827472619714781280396225254886638784414426461934799979567911522060358126747122391325568168181584277797295441351443388605159034577529693263689897694266687678138173357599868581520052666116107104825185680370223355609634063857236209414712719486059405242280538603483389662339590048728233840633676783628990616711870284854390914183440648900249831577668202572774125774297863942594917645903578305386648275270961218630814387331976719536473140162453590566651776896675916169280689455904427994045658163196553279859475496738847083848222535428117167157605103605965299574729291781621005848910979082481025823116994120820068061777557478777866327663731995731856978108171772302048525524935040376208307972912875227354451183771446576975264054424003580762304052269058122046628128869389293873541750683354025373941043946511957542210469254467316680196283707818475599705835821555508288825106747655768760497237098096345266959343340755934908998268860487162874639240081321924830609769911444597834718717498384592940364768670687041817770154012736182354252588781404255256179135713722724024417974454307130136728706293820912908508659550620096067491802127110498439717130631374920242815804787246989041839248379172864146678493540763714003350786763203845694532791576386383246024016774111825684780071249759244137983858287912893394847101395071723035126081400203285968269328618131869555435630748011411796421212128674411165955234635268509276321041369556730733165029776912050973433448361479525683877894023261094440790502398541485710267767869624260941248562506266546882430937077356913298161101502766777294395016904441317132605902504891346334751945545438580030253550464148930458024684574646985498473004646766122599668570830053886869011055757746267118747522437185144153783261328238154631815482290717686241120397500533124976720932318591006873187606589652927473460404951955374803727695044747457309875272201685559175715921163254252529824803348664794901640694687891619159328213162920438127478652698820699056941765178002555736237673181663319601016518201530292169905087392375114279061508952866683821042993199855037069628124388580872770025078058766434003014493466898945619083532208019853819662789590701311969764063944868980838900529389782047753575856978301984423665506214756702572020726230575936385991242544800301982733017992036950691683503093944387847179453541755319988769621564963211184648620623067435540047942852849871548309523682286446322035415856629791243537083643731661049740417286586700790347124417425874595002668180636691728167230526672619983706524589296835158689465786694092797593734729413476131124455492418619007109799340794470169168163664328226201683898182392597682427369401333720058324673841118445500547822205470378023819786249510038823446237895009303438360826825235236352330045183643626635470834922062275447694145058153965768304017329039256477960704813912303750615651833650116831365183809592112561431821498980905005770153541116992165134724869618491616215416530809917839093765156566429764908583252678458164053823152397229363570121830104780525986967110388803082010062890978025690554920042120683535226059359408915293938558198078243769500783493197806391647754447561469171109362056182294917281293689544744461331778472967392559094564266299028874601930177346075615339884615030399214282742106426821178370699197832515444607320553174531731054200380021149472875165890468232149608103991516808744573050260695734153481803994923499958318600450768109492397325567384532061869719139246913720102411319774821132425702334593105564795544720889545085896943741035065578499561857574213237277932245361247816046882847979360834957390344044214009679163312620875396693067234951210562278303747677223494508755972851895209048935844410432730715518057996380702841350246053536248929711378957723147913996059891860437374175086621145353100087532426195615349854207999082575635683994780964993708884134948315878877023542077438935412577978378875594336928259382145775657693249375642640367733845738222076857819298279499803335692138734227630240153925699902678117094456475082326217818243723930641973649926230689186547814248413527248636547780752835658595199606840239386272284942787773908323404392021899562903423186085542395326872279184578312530637696428050325780144354288513609845537022275693049355594675785730717453452914709038854363712678610848827583373114971637606517680777432964069115828834969786733560416959456843044931385789265130485512858134485431627496109476068081247132725901272661054722225743460813996683208585444615094570072282898677360212658928653328343790295551055855975608176367605303754219268531328200581646183981496068073676184359751107440313189886390152925765441810664683614439362516770894306320249726103472278619531951308108391560190106016261802548020816880014628419263905954465186806948713687427420580448776523984476834233957656204678519206207151931182356467055366053382448299326608176232203062027188286579738500583466210344866670086548687824905108906498347611120863440926856184424834830280020295920042040492380781915320008461756754217382031261012915080336870604251820439762741700764955391200738407775358088619441476103224973517506221413995010409545066540050784228505162914003974755709941290370946203772218629036569608470702174121860166135599980854097682030979087892335125262751269617397910142394532694839529336848559384506193917118227566943073173527394831644792363820023367058796496709019484318273173430404858051542375058822172141669930365520795685784970311379238580293281782991762282316313000493511438659429201847266874785113788469114461224178130962459484222697693978668784579418381115311077338851242979158135743451366763503581812639339330461414936103607935787313349580621644992486625339043742028453848793240587991210972523545439991177680466802206667575459652640784073567336018905810061664201008584621564297059076642599355197461412902907983492559462661467677748923259221597983698751147966507617476468774008019931372363493694777799808286465253493056097516345047273689635009467228075051558219149926303822002290906944449693977871429069447258723366350370195942253527344611538949031497735623487760939292942875771559631392843293347394852454831806582197276599192335926917739883537082568469505854206537243212720186420966563995304108123874796162985133070031141601132542087886427077122745522746799904098525115710382390669559941153354145090841765534923792564809340513454839085966800664657352352190745041556872923804676529439046118530781167153489442276428954138969617281087043599577249890852423903641375503481491708146960244782881917032748441090769130119574356682735200217380508723597368807478598624310628351364496004784317977948880403649056244457934315167437410496325360962020016234142027728749033146325642316220121237137681416450893147003149408668712290396080448300441095323218432634205104103516995135568281578626956269133438384672680914220363111895150844632405627716345069043645809429313719371967633886587201035415625562889144192345483323750963566524561386807510207470508066761640362577953682884070088657393055057781321638203775841709897557035194341607678060208050620563906288227236545756156096825711874797579119860204583193882647150996123683922854365703048809444419196364712451162834355088500480861220930347574817250431764694685963816870814618334742801151139125964447867948645496439321970429045319551679806973614724614760693969179639601525546521482797131638100279002927042749661338949649047770560924448376190442326362055528324118607495716286143488077854961206779125734127527149895561775746584263946344432892961594165705643746136725274251454937215942238217059912292803629647783128834148544654922589803376348560116902238378717498508527100991021241429696096858518226537039315711578121614231105564875578006319651631178961400023598250898835059367960970563243587608343970965375404395851177483542156605191304921723764791993324625331973431143409368227522464270443094585576777297623065864553664421553471368085875485948539592621440114950256165862490589340838757486106285054574658607640185564078394873768807420394321392747906538055467790063356199179671901406060191377436121538164938341124347433832897759407582369533933473113615179822706050451294868275055126819909401671211267647678532818003004465135002050308554154577108310476433020742183728783545321245032202958702108645268706151754778657961413319523002883419284297786266439259753939334243444465653935967084852343580194206114914573584242221106875368573031039861092318635835902424396089549482662841704819715952494280528675387416161957674137232068209514154160531013397463590127528478980437437436813445678977175565000353947715182320934599274796382376147661236905515408988036725781159339327222497728061894848706668545270764607839381046923867979915609465397149724913325132587603307776010269358923720222065337715805235976762002613577501229244281761264215812492985273830515339674332551367103611707345770943901605916663562723309833754103274104898691925179387227766518586940577662689848918832093205431554412286794484803584005385027204207015246746583346862139588025882005193873770653960555128844162479671630886035025764830152025611014913813277017670093281053224716490531338328515239846945563081673956224761412533740378704733262271310619759992628638962095389389126385245892007677806132959346747328846180185673212730683258562151844941936199886178402653695599952280564407980650390772919785180098211274098690304196743696101113054639987980250469775727703709417418081608689449025400485381587398531713382713509061969859752996294329472447090189997202469891023556575176503474397248033764323886647991529804657318294127721140978579751284179379694602616906661541355480973139555976791724650127951831503796612108466744063098673190249070488544800586787565187116780372677156972490077844023192613900741400638386014484979337822174541674121887010351083754809933310721805620085546650095998906017527365185415121856481403119982051692762702709844443421488518207755761082649797233282751781635796332108151409297890929945252504391835486579701927053983560250126949786829614586707640480329098771163318592363294978883957650520629669191272660445426453439238871987706639919761709491085397611024835448633072803899868023278314149284590843548017273022161600032144696744233882287688902477638713624375331550397205669245450204472244922470788676763322542109426418736985889070442895453871523262065998402963019580165427216352549409564602421622332862596408762917000032615907890907792733538153954478267446115308468668735530307497711415163569164387252433438677777282469010980589259148210339253638866644053639207618855153534742806146983113946356625579861303040269868142983705470459326666645546680229380782170242379491008814901696920707893399971111588768450111995066987483724396528549167206105277078910735003318812884078308796220265769360974242436844698938669081429220983177398264276894436856422321702216696563591498352932812831529574579384156046694502634839744832113426563350482710708731512616237512893129520945803199222504557591183930428056531377925996162388673517493354207776130690998256460285732616742699859986910848468318624177649396382130788393181783608478991141757403165247016050523359548757485469344807085868735340339702799704866865346599155259174618111199440359408574575916508726444582920410782812743127418561442464282461180333537682895412594682667775863608751380951068874876569604595989393008871957146779836808504888095971984106338086265443368176833084922756106086060106726099293524413767015686801837998229583066541268098352700119137114927388341456419876299909662172421189413056257244243568413289316610466435897560715523652552896771947266347055961385633890233157774472351246952944583104972406470292383537079885644059858131082656581202649483520794704057773382313699570260449021862674001114750209387757860665357482875912453387692091040639466985865908420407037436851074161375007146822193500820453797341720188751513512690496792664942505628257040021151757780887326863030312571568258558398413229190409490219543370188478897690338837938426816696985870214488743930211020377120148136401624797666443293728415079517518564282522860331721480117919691576576923781517588867461859843749298351674901366094936936472939979552834011772098245604789105059249494205133217353937865972943338402224673021808579726930336411608761021314839940568100546432453798638419685870161747324540920500584859911310389981281426378178413091454654762551223384643238423424185257476470417091866875679355929124592381246476204080118718697818766913845686928561909736184860725517194396063579473746584272796032083597821610102981321828816833016159827585209813391402757107481274538287566891551037741564982338691523886893495909169136010486238360823300063155512287061067047866379166386328419497404612016249648831802167025415568475423580117254186367688533928753842209492415516835588841803635258528601345526175628578969418056728979637765915096988866291209022073655612740606394777660622373194315756882443661645730090163728753655982762674881663149453335827532882224661925588659941009933259528913376642239254005499444795953824049730085134024529945635381384930701751659447521935694424857319314912533894270627888781164667771714040770714034885358421633734055670073735852734137987660186245175536575787770739952363218293028052148602941668506513491699579769599319533561214206200469782054273598302859417235391925248506756332656591592711975850065871215349533638755498766488468681174179021122183545444716372808606248147743753355643841328639192669341727601932375560951987503654067917873818472269118136148692030310539418047164649840479296665918503993517899343361056419434736399399460995920277608045583269370688053513841941289278697595240825939109964615836189465677611957572242140185422937789929346854543326082747793610181230039176257364026828909393535468586403938984423336662827411786447436186248748270577952487154566060970035640812940875925833600865722579782868515747331314036348622064331379564132130179883468348090902216836392277374671945302718204827805239417613408692469363988123970409711389670870366379803345566611515035164217764746926435421414010946035053864844042147661162988443617844541742448052313115919984395725778711989066642046070116553802969944113853792721805487806551923103518233361940807151092648491221157311272570345795816628112725600971971508983959017799761015932281831964426398025624949285568003001204620395403631162541862988030577996409090854604011004059736884947146525086527822114901964486131499062131842641013142879352063494732946520478042150820275220255378474981430651632931045384003534279423282090795673440010559206246680919482243354116482054583260833453981658390028066399326474606067814259517702051888363377739213310349512047728277018547113401237606034072329300021909171130099357749176811116738601062330190759730500330464187856702451034119403286025494979816236113324071220318434942534118026973768247905923045638073329626913126057552726340254951952248219463518500458370491017798956797668392194327664365030686995110149510987831893216099536749403565158993389140784799057364093137416043065686520770313772735662329107187925821224163911853559216128000938845107059691107181359906922419958633703052315794435465252677679882715048849837456444412834238128746143360104240784204901746138357464880946254880046771007347841094819790957101898893388564994688455806182169892131008932098299558198874028745712866881613400815021368457824577104223110433046870032250706158487491186416949887848188978804938562423108207416867490485233840729614274868528877336851955865854086640431652580598138647298311171143444222254014225660600546917359999521140557008367562927637709253335269259151339554743271945846165460629585102948499914967868658527162971799594428443031348112378931114811066744924414495417945097260101765725576033051823781252210521932462119943706137000331492845098634593944403245392639682591482419231579442430435708151666197609140347890301126769608509133495904162319062470776441778680331584304100791138455314762659547742177588222134402510188807763972887165390534882085559412179351079376468900139694382842159661345319177636057755396519965852976576692037209711088296390723529661173854244238807650386460529602379466978396171919353500000998142363828485991974472952507673462228536815002719623787866951147396691747219534500840021333431747124832690657099128117378883430862737146721599811525097192139226873266263449464720828410190348670737792019359255599880112780075130574217257876005495664664483227100275449437713332400116254217952577242296481479100111955970995248441856323407418476786598493861127450200282651015474309699640391561419833405199492593157820977475377740677030723876483479770056484445643443379109147684921292093368497383214397341972129195753380732565207716744611883072819949591848156890393369471692626088416627189398262371331973364075867570167358239989239656585265799827847964875222846673815430691841244918934915597971251551524050252855083511587612502035568530152461797511847435555521545906353580367781605746282582880053332211794932977362142281280903769995212697905211645135307600073562446487774057799969351960989223798673198525153176129886370124808950881524910012753490509474886883341520895252378424659480772535060732239887942866292257338730362065104744109261846846967599459456611308113671685973107508842413336994986766964214199468041833583343584294715536411261255102064339906290949627135993493731722500821431918160782365768280523668874219892701563217252097297692589348409893603474826957193633491065669701361403841722528424425302474099298381225203316195510384237103712131489751454704450951425997179268911102208905065409787565423165337546404433762754614614031478391788397709754777377495046593729001760061151907541613219373077197027663234732978120412671622548228528831273737588686358377743736666308122143992872583099002559346531823741945021250804619301854356424479557598762847884645182298362259035966338878502129719506450153857983068332627408160376438695962173093728137671301241804353485966372323221383493932077812078413574007459108070190303170543009350168608515546083318081053921720876923045250648536888188305189698318086432818102599870120292599381955185904861533628311829987177319664827422388288997870419425540826466768030611214970380333764020549014671239342891543083832305444908160595428613346714794179880661880872151084925059440682317921785434722711557735015889258414023025245834275735194730351234897091173906623318366553783750737918877748618324677451907814892620917458790875711145765990155699779481647239652920701521149856091967129457582254688146517308089856181621233862776616646660044689004197185768476398262864467061189796861862969495413439522091992110244940901043423888955973671640989268109643596313769004940060221127813503919953278943430757243798004787903994019857437694267438030631662033662027517499112959683030907775178373850933151896531820512740479544013303278559813191992237827155086479506561731514435616879875833697660974019291830047904577404971005117373697555075810235877978609678411514062897135447449783053672565728384173800173266419798402050084440913329213381005079362853255503900679141994958588486110319725536185010643301597498312523880632415242517025280183081883463729902236579169623253709411144552273570874916768490180579295191590791237701615892763817637002456066651022720789940529359255244731479963133411046455329599435640937485234160641790166728360943893502319493769366142397626549440591560309629708364198553344258228647279820212127843687010252500323420596135460287845951404660825362889367814334694190592525502352243591295886732849722351118895579940545414219673228979913698431754145426584990409523283514540449356912388454937128843114265423177329186561163375368935108665284437354123302999795374476415737316079444247777665866263467999700453451185585324421850569023596141993452219821388455880514635309526625039246367508312933119402794078947744407315260411709665033364841765656584943371955745008659261004797709660859680673442956073939500423475261704013857217225665580225446237289022706305625477429630049292485885684597893929136880407594140410954889417757607170368973326500780466233538650816673401836045867734683553595553375830347213184958861418341684125740503298953782963255344374976902114352937326223603597286826578640792010251201702713999525909384538498141127750947048251988890286860501992997082435606522658228613365774082062178069303675992036188825568740371135057705311105191831699827221229452380740314624211174781191449418833041573392450004569004459800941599798210081274919143764194643972645108819733574806472333223166395588455861674845448296453307895929486762072040579869904938486401148696142680414816040103889679575056230813196558431430179620346348714498519065810539891221610240642992852182836819752698207159877411553831716248409672316810529350174641649202237751450806055602988603486001844255615813907379171460224030573400005094780913519084576728264207602942742323158148858749818875120536313693594239489237463376280636937757341847775591111530354815435922537328572818437382377084342503951007767039742549193397468020907383288238191639537521473677948819321841991309932709332451861442949871704576918828902813025078503625004565556556040027526234184195915907167694779741648068761703354073386343649700057640036743322700598597308998808716280467241308852011139481736354977031998260733218216881901038181115763936924931249358405173864690995539482506235532024997934549471530894159110338817270798554316496982756751683842578269132566185525944473890251622106089534088276902747979007057319366199834269648385458832304923776701889210608727185417978356142181437273913465216250578269650822158054324178687491455528869647948128592184107560440793666667536472038222133990746501202300496860022542246489601207767847963629264247539360189463588637990838174387703009231280974032628862800822147025651882378512562683227306168969611063973385686961618565946200795356113968499994854644330238895611985381671739735782029748008027273840919140655115432962886452976508642552677112125667985610822219631931031752388873205334412190303765910510792854561751634310038715044228909225489256883226936186187147745713839489206052346645815779382721776397330910421861703319132602409169251678994636548903284315364260674841202375164159235500180884377802441867016489323269716974856669050829513892583596048903094340377705667453180368796656249230563129360406346864929089741500238456384685710989145078474565185121725671877078635319796502624996811816720165274495800994874924914289845833560901372695544986184710981846555876446324057819041391613482726847407315971487493049879316485756280993308288363963785604807286900708738458539314215522487733972878061482253830242985284262297893837824180613438821380414601923471031885231680363291508866614714295498906033636813655120649526926899702125439058189081976903072139570925365427257262182977791957541033117722534366392028278149556450038691676450384515891234189279835802731355816865276627924649343982177706540786359194409519774259373058517054280435448339183676103197877342542954750485399742086535488397937628607799380954951985303740049766938497224015127302192671334324481945998277424757490472869213433256507268773712944436421452318339900043885219279249897213478131694920131065283819020645447086705167272314101708498184780836982847516696547352348227013290520505982398391059028920271106558981997336900690064210843161968581107002924501577365198967035901375046115333596328187024683268673656691897630366189303675946090301387397030058930020395869351382429043431008965740818707253075425379668105101329359197350732055975108350610999402113854180626205315666617849405290349150793703791875301835442858390009196941373946756092256996212748733034500457269215763537533605898971604031193824843160617019286618697260008718235766734757217003706840368606405094962524050128080802462678095605768676809349656152648541462856592671562917343109452962624079674073584729280054507717934522656676460234317959598171734892979856408681253813985699691464474530015085546048331047193593072795807302482247167544112810864686126002640194910221429099847048339265649151964758816792985825294297300679078328395490722707625037268544269512868415786581503580569894834202134095841715443395670864182863530658199657040321059152894683259817012505518259301224997709820064481087130132160385723835441272553913159316777492551081910496615156615922072992063635467499205426976985193168271141140590083717659000387385587031468082417600302731215145971685239693361566038448566696373869024921338324644967427372201513441005158069551556336868263837078716779399380695364721259502807610754681175366257934482993255375950657037428924039170367292018260847775909334968681390091632408365539259002853529269435865963946566170538999776752066342060736099066805131432987911743042094726269968644890024712045101197054963015701316527819412083012289120702106576661580950567569324699385301571680002358408092417516510112110979268862673378906547554614915322452193896399006407383330254706181359061696724878817347047691656477780936758983158116546957741035068742507110787478198461229425798677361138332517924469625004329978118215535843075598677322966368662415025844807580980745167996702754241319372987376406360279849430101959144357131714998872921463452211695273546948736768105089998972270620673555533899464988711741913973087490722994683310264424055096068550483609813545309769362146036905148033426285058145568392809252746851608997967316038938781704610972720613640548623885778945386198876226157706619927216935937542785494930325284834775815578042779100306059797980128082461444024548398837239438843652172636833120833475605304729484400440598137591427341214818565466746743959828284782598446683691476670357265787997763261458893266015931387940446814735967043137233034095573862191378403564294903617507468104489313571187192594859872162769720373132095590532844655491265833963742088767456013737611533621353619998627355646663996436130525864706336565412056184417047024853743639648455491881767997271098932012359618220286637118254855110299266322480330085850425862676251251544188586551217759944857376849428451577355775224058683617259039119543522772483270635309542466236335568387641595776982448905122233225557817640053404749844627450682905588771062093940115209880621516850265303746110780416627566337270710831416809004227545390310848973320292624350266741107622051507572386122546081260803593514110319783190796206191651063471290934287498355923814506835850290828072235911510382708538914337337778988088377876385096082871387748747253787883759110913753732211192743649303726225961963176717665621516067446043713782569221633934533871828319087518708676573016297319103844141336512824249983753711786240575864823634093531170019405846712974178640569844878084488094711382486583896276980890327006527518899818150232673352227010254550556305817229444385869982384819103859394364928985647817955018337536425467426364408127429161830962610381631493052889400554928963040263595424989594540046740383299776802286601254085411582684343069566591286787914854452404017694844087124162321396893135847912757579393372815210225488824340072966779665401510478756464896498775015636234213816700364310927814503121905094197714313989988624060100363324012249546243172212478255732651367671247328943011097335568069469352551509031994457378366676828867090410158021961454187109856728984720606475603138559196208390514979650589085841270424028542226086372383947505215167040603646086372569754890623186764599511890995308243420894564613969723359943130582574132986304657759201873702614474291303875194575381014964137599539613800227134045609735448982100025639226205004998276377255030943153213332756415560433894172195978466961265200013327629477513559505912354833471000914447307526283807098970776745045814874483498838368967349627766504634520272338444054973840859410626910409959954837841528251707968592522175454437524397993922647267338893083228741518565816508433732760950766359320929054480433974899300920344761224058327460491472807616727864413335073865237292158665792736793058676765882897250358623603088019367971427623623142062104110659845653007671670473472068413352161232003000415600273371759152564570240099969957243566426104019715787366276446555727764613391005147673086992794315238972136367779502324044937695013525892531241076061393821684432461900300244745978915313355969555714629206457849560617638027607632010907987859267568795721721594534178593229730980339184669907880570602445678326098322518172369967562787886995980038754425991585099097735102312167404299296765271204954304382706786459933471703934335746053380943907824206496657413309870113853602565903889253307438697195665722243506818010479807024624893987853590430998440250321547546003722291097488209272281616309427829948091029065275857500137799032441196734922488105267763821417289606029374069777602247523149582656364913811536871409973744870270755865587590621335367627687594176808221258701910309758243188308020577484511139436072511247103566275340900127182551785846898821977590151851531192527759750067166061703512331367891106889620839157967408099811491212973200693553592922071498843118730415464279949268251942396690727346939508242567984589633217306516600187034298185142546599304478028768440198308221931947013740685968535359937645042892222275228767705404240289845870380412213557005713885992942136667005543825027697596931454275512240663345283552159699751900705939040052821922138977581951484784356132316436091003950805874630965392637914275996885602445582591843777990256228527753151358047618249329966522974374535408934919089317562596453074875008987276303116488853784992954442426745033524019287900111048070229463534295768658790851117837707691714347720529991169112625077973451957546458604239319373893577503875189705607497409613568243125131779330792507501525790340514213351064353498461506732218394093269516317254115421165927541229365688966502084160384157710605496729761158602831321585533640516241260096733943767245333309630860839259945984876012313469297835486525951129879603103153374656076126264231874810140121446665822787985737077503056418797751864512985919636726701697466348842669544154821512369250384531894059400090758872625446717664492107891461421446103036103444311398951854445714137668634223489070663868050857966986161867501469875763556506686056294999195796890973699944924481950322462126978096854283225714706654287462104421498772502883299023779349553930750328452020275105476530950824966884660865667351663652259536316554193940148355319552905306233972898219072670882809883792289386631191896102058797040446684789077325382829071036310612354566158803606990778514154608001273450379118522833967860821649259128509096472291887491542508768879504833833528897241867236314830347668397232181533498431081151738637399669533373661843903485733087491910663691535596008267137914895976957226677549038829671081224020842616891830736839091755471485097840900564018352508145419900537057445877227155313018854260731099123950755248215885779767895022744177285590857284521701323121386024811110565415228207216003937636042018358691956378101761615327784893457532119173997068296585303602365644869095283766398011023674511681803130731365391164641559742553776911808473201044865298736132100750751235112010202382724889081655741824173949622442475841796734527825948450896453558061219497421065067433418228387348761017421400343597284827861494133818257070609756324957826652921792330096216389507364184635997579479509812479887162199672634428887529474278125044199649124824042953834503943171410614960365215200750446618561482652802446579854283323078881115043199014320308353050474394194086531336290277959778465642129623426768719742548923834279067743971830276536672843893275881408373737903151395961277681725732902512612914070232752086462298032532921228830443205569972337695858882215611271314152747415194105663817298029179685914714790562491350604109250054894404758100996234806192025585153813449350208797117624950633940591733086509206450832137961244538466555037521222819162950707690342104239849100425041053918510918666095335750168491450445981877350272307587069034155273778808154658739522226503889202494078639272649322460190706864561890180130845347551503602173692134012427775389658845338700206357338802651310198358476916582559785298649844907039873214390419391190247763284714354778122962776148860737043126966027594138829299071729883501856789478186457644031616070864626033434636042477842731156609286192553757073308591625310613390102655008141590502706656425146211622630443537288918173482689994247018852666520521708091575760496710014282149039991739023296993683158946727724539648010939308126968927194780690418365760903239747500413914139063670390095090936620046580655087179910156210879171478615682964509282959708174156575573094466663474874216180746621220678294414812739709045497752120384624056735613804008005187397974032722003034745041629519386878654588209002085779131361015416843749501979924049824741370938401414521223268654009281232272657368055013312725227275478998402748972024360119182488766791271975824522791599056791623844901053477433370737368762890771121333001336117040798998848687361176204495197122283070446940729677000791096587832896787330268397638275590027194005189349564867629095339103917505627976850010034767369011854943404115959709562463278881911480132896397692602423497439706466993905585807708360767460304358036410593299647798959860162398924947430971559743800011654294845321015774536157034849872653172115985008157462957778447181962774256450742955120469045174270641195569970669227604438497095213371306993918474082462710640756761434913465407624827665218496183761826673674412443698722732548149179121153069266376706781547720567878114839057078208874936475427401518211326440235426576532482093396867053694492237745300760690614848846770650836885767318148910508092512144475075977813500116959491222425552137698865868921082684947119198151797660447457377874641501820978834029548158686111009939150634753826503800733960443628562782026800296959483679642244883725797786418905302713479070356136978496467860010592355533164740217421653187143300041265291652398120325080959589595199384001115691033533498468740383187465814848097065336314899149048037303876100211527317864590228922775641648549946772753667260681281460512034103626761571605071234630774974643981320888103135284621406974688907656004921651755452033073702794706090403936386654754544371508938167917290090117127241158827217894055151548182138547851661255950147422647165903881510093329636938543090833060321254314989617292214497477298531898969002768914944781929206705782899680625859511219840179357029744355354944214116683440335881803834957614094422896370486122451805911345013230477740568787629872535017534077422341520931039773972375599169684315768640276542555131291109030654147051064905492424218506352711271521878910633679100978680510055498483921697002230827893978582828796467937060666004660342935352420875172102454059621861996986485743451276396457586039028558738369341582889959761907019964969596808651251188231702333555761675263710984063986109599118392272440507934427391924650107126812424862005250218448103660725213665317153369601640353923717036922494381610676833432063683363504591028290187645893297760071369956171274942116971033179475444004510409667591502335364028772547762137377015930695676701187871752538015349455115726921512530761945518319532629242990486386166350606317571344304054647763142337023156157995874467413993617975097607590112804000209800062419074373331405935837812052893839249703492897138092066198911999845462097591698227423101577183016483509503477897959428079704526780958036500548716033994723103347738006837159329067473688240754169742118389385122476033890159843557952083394333177083559989191123260046098768272535865748115223536844670473592370074794501069625008779244298577372012599881677842203680526333775194021527182769925599890267971851284386039068192835588669437013619670285259622098120512647231335334428689979723347578189506030722762775397512933276339375647647846789960195157973959572344481181020225083726235481166974101106545094754806190937495016002103548227790373713947299952411456285763410349291255546531930172036917345371662033761880794123740988925740835768999021231321749826623945971789764136148059417681807268460349748963209535786554502372784030370881731069032014015486122776897015487713493155658804736421950272979216051798492433004876600443784921677772154366591530339649784308634576071982602703753904376891463565641168745592017263163920597084493265059603933141768918568147114209956639342362457342848597604853329113572638468765011415096126372255679912952483261196607220234564113329863450855461439003381143410600874511767956238634071399566031707801812564816575885329055917424590545733459201974686706926760092505101309740977431955607217123741234188732254814042704949169143847259894983537592724351043541069054332349701333111935344819724208169780969365786603286092167612605634375169959030977647377895408068661017929364356111458517450962452984062168114778258679211006694116615748714830633945701868482695081835628788633562925043995978169403831908688287476044740681867007354984137780723670046618019063127518361951761145055487466320939080456644973516481344224456362635785887918293276434492491211033719427961933015834831391751201325416301325229810122427612702535233545987235637467059452725920377515291473498721694251682425892213868732368526993923589874592735375144437952864782322474274561878731668352252919060574177109712840462005287666867097620193047411629629845100236915221793472451331522775747938258676292236426927520183413311957683022308170981714198772841176560004108631916620792549136066293712982735738103264804899806024465251019189572789341945619173933638980879511993226433664230134490479635023728771430495454038399504063320721801142218648864685029749620217995505460310654562078087217178360453929460516268700496387466258193080249667969795854964759282144524098148712662199394755434995855165211674995350256989576954862455848873404158892212047611078835164143131094615138816274095398008843246351384922162329342088957443108130748983261819072440409517857234311422945764964568877864456810643284550856346368162021308711596733143736266903347627609315163367479372774181242229514054172036405502881143802245635125253009241251550764123111040269322059773934593915747275722705882790725264350814404142961733618746354807825305127830966508925346129787595719185782944506787511559311561011415168982093865631824174323956105801224920579701631512321128838982703403498686757113760282876463043185097254379211870092776111160979542629349711782498102438879398131605015251565090849475242436030696303987407679573783388152021834563244547216065939086576970208798168111620306682191950605108046952049520873875273572439211387505289664900986105452341213554839693131706699895994424422710444446605944404398440613435282794619917178835160511585130403513527796790172056523674197219235862022363918554302769418818674754738687853620488031915114192931613331518233328205986300139509099434281043234517874164743123358525525733538345005554333865454984248023511238710602084576745961119720160361503535053849980392365954728375170946726468263391729577233970412577956194234042952687212620887033606492867364860627049084035659781935792580202473139057652522390929453258747845368570767378498659595148854934675843475300922302154236764433718199992789136932634921328756914337848385556015783623338445700993788165119217754604021028437885385939155139735744015583387151014702396172020503512941260777794280516042601376185712476510741702193406803775358869948247106350904553529251389369583378013841179532644034943464327364360982161995375715979787021305053798248191155652101587853626723761082656659587445911611835382017717204122729941724319040284124565241402965608535566298910638880329088656604703321374137294970380026150542672393014737916072116186891819876796329203760111053656781092881188283092372026136820947853018323740739581800783533095868906294568443427786889059139659550569302425184230959139709461698719271446552835122673675915556710926774352310345537165465015847186198106720164929565838131453405786925794820309803692908885004964978139942473174199882807854058554216514650424119968771972839148886883469027737715942696190876285063775403609282589582749196088664218515582645874855960626691442932423529487169771681476194949169394847790006214364997685576629223256560014890322295518431004108860150876203869676130874756665086093225317928042193439548066497745534222709152176055950947786007534798135615216597224990599918512076440714655531660346961530551029920364359634145427740709293204936777056343516954918856866502865503144996794320422604694891898154284275949966772363048174306604553348080978341733558935561590057095917749293952460341858062692644126335181039322423379066354567173877204967122695590133870146405916121819018818041589610783488888181705693951525702980844077579528541329278804685801880934916699471606713707537279379178692183476059098841451605245377851295821698998110100206910693274340318049060863737227052703717220011900393588321627566691243642309417079831589716343990084666821733323449703295799164631277474772853006618381661664275999284461399884070895104187050465431887513382989689556099458927911747091071989493741363765330115925723814945257723291825511473794412714537512005638883965411488506477350579721880673399440691343970552594247286500816322373983904028218497040891065960504716101780137269617546306406803550347103258137926970199869638344767689730622381141389795622598247113849412094410997097553650080552308508027574603133848122918159660139481565186460604747188387987950359842286363554336559407322192689455969905917763825673404054338320103816097020602761335862378660686137060976514966484804905112803837160215811052762034946672706087194711110552347769282546394903840731838888289298543696548171724007800602145958442031569744662922616427288460359896133208942746005644701662336864530685502424362031017299870289401157410871358369659553737025365054153175623299536911777706212260582309845811928967609539178125268858358411005126764351122396135206260078608569710411806231709292259620534137886940708458068463573807850033229823344234145997517862859962007637659640553598322608564368927762404086879598699884960327668371659237892140569941558809032604515792512495949257224882808822692267779739544276786784440674936966177968871781954385308292272471529990031643670192675741648749833641038265267816882238642353826461996693899360138398314334910353356560961620236933033612370575053970459878514397380923541889757955976554033300498812649479316930278771611567103946582266950708935894078508059402415664195233987342724340594097020576837504733161484046059547150893323366673788321853831997362968632879035008174060686339326963671417741995187175387769060847743106347014331150453302721082663609997405412876724175410024214715641897313741502227123436602375199611575135141532799740043387931504486214072713304385105315909631856100923040473721034588161292864826235974341356763704999011925737961451186691075647718850082527549280275108901550739996095304154206434192280162772353030958698180033744993181337025588226606961993204307543317347128681392933375220751881116362448456068913759688662333010904454267548407924116599710246447526290775966256222675045715112452460893432928900354918988211026998372069236939475906886669703760521136826828085566730981679678939977589053211065501331427008030419928844947349654637480711252246721955968425862183384603065662641711379127686916447001562917670243342408838394843703630386611025476660258117560363635255178239614852899313909330774625741027624303766703964949742329562390885701270749127800850552920055089398161988388520340922499525210950124524278610877943585374518378847645568911348520389787442054954051417331340250169840420438595116267724164457597402898688561991243478473991331931093048193360699312080062332629450239430227741553036957024887623632972960968703545333108628841989966661584910071293501885876077593841044523121064095040926742586722394451528927390446245183066873648853605422901540140854848999164028934185807288819302889635565192850592215869344472648988622412678022683882077210742240136679019183190627627059008572085797600235996720919812990916653397848578163680860286154397973449280272020090016000873791608154750767909503313798651631053723353797384965458828953890089837791352290453829819835509423452340693005896414226296280678137160588267537942538458792800553408657827446315563453842383763880799451686950089313495700617714777427757294709806581174460540644958493105954405851985449337638431047432259388335107864549820289917410097977101708507382582306611754361709751532908632130847826007911242420375035492054799328494784905256447702633314746993904354375822751057750806216475363361958137196281681224465570119116607882723504731771247681143511757839769844760527765252118139727315765979563461481107953560934151426004431650962485022928857128727932333526318101553239700063807797488569903422472856810054785099710917200916567520330907799036272300274233059721739212893852827916074069288742208595328166164637356578070772322984041060505911618559833447104537885914794209457576226282089623351470860194250115300563207914910834229838299741049344579099434924472160382325620280529816364174765314782855276208304022089423126945498030940500277182469148819029844007031940160296088316752960841000357686252434882230266743277948506619754038836965253260531381585217091759302986878890787089306469895284135347473484013518614161916384593401005657341227780680375829084995487701437336473839939467937736305610074356379668174160194868281029641804179059426808510963199223926820238084274363879388319114316457618806918044515988879609739443813070462388779425573045776007290030670904562543345195186549789595041393920236587094071902531937626686637738372300719734910186325322928013917507763936804673322109255065991772438688838295286139619399954894577383941007916276850743376669336010732959859439955779962008753656765213191296703737491345027753577037874987103133420510264457095677084523741544236923044549980481895344818779527422838693134775756227442523314824733366215655110245936264983498484488760026458221675957142032448954313763709944705043575918315155297157820118041056506294992399613210071529121170693934528801981664604687359882057640839583616586173902692614142513263800655799563905960888808857161106080423234758597973115380900546455305531326476414510938438592200308298609974167711307139406363076984905818140367799022824650149085737525408995969675712103593590572001883962038651650620166299144940073320966543448785203221347581364304871249475515888578018075704125780857546035651283195298852644496535302575821570694682643941398970604027970233835275604213474799388534034774569222265705087820821127364274348072356563025215708641089602648864949837877646006180959332958519985236780317349747531290002440439078469506735811688946885964953086931459747002427384697236919175440585100500552732614214935487056689824922621372255945222749340405545575978997379548731315116999547548871120458776797589934937129125124952051106069455662692057338079909306670068115116768803540597756621993296453292194668978075633702401373252178533936242889210260492950973273861998189588056455869115383903447443560448716228549059904918979850635264146522615876158318234978992054860664003752349019637483326101564499157493162052171778849739016897661628123779311583010641552652206261680924540051826719251088295523620572907720799288969106819214147999273002276668592081953974018020150614639751612262259029658322357542238461867380674405575806991917599612912960540421590847801314312736884084493788544968172419519483187752603142419290874544461064375733985712960196993663416218174896302867729804060748636345925020705141314271569540230446251436105367897261996098143432164547020247078143397536467277828791346236376712326621272818065157987655484702949991050814886804722147498933289323816049666002346501450995701868128609533615349440978841992875055526862322615270751130579763389679599847345824403269446983927418294070865000336295752481916289647026933668411095583546089857398955109806454746234944713075869614367335220614105460515718955681199440079545975627453383446593152166258846945323420214725335086514730829619191265112727792716112927820932143968800385560342172055406636803872430725052362129926280754804806184921197148560126280332860977160222541202328133768297853828735793699323047577476545502646679637606997843590821408089339648199769040720976113826306495535996286489383931058731776234376294478121964845382293387473515518342607067858222528993914238983950034712460112326027467518829988421061443408361850064891113088044012782381596526787433862896511592512787631462708493760442556417406903675868428390600644167140413836529621937873743640807153239895066533809599238581950258969513195739477932049272870314681147675993605350535665337061465247827084946890317723192590510299941112323685565654535356222499535960400447681202027263842889710691288349609517952432524511447407412204727120805602599118999147964815053986041677123580816411182920025002311218820972610988227131592880408918923501721004921141043646427120768018255415587225981384151450535481644590299245181781964995169398110547106333513397031664078715551559275205824313024680020106274542375111699586371474085924107868734363025893206583929164686327810112338786642403580723287239883210662431348209591334623826229875752129386757297587015791892111687215950034284769213477269949503444346353083275306195654411410611339348043648839698821038849701319545441535581775840383981525491852204832630318896141961170876788641700240576622783567319262861541749023677145308340248450694920837028757303191392575384585929790574094901777115515479758551681562309302231553071218044892996647439915598750899005634541903565035732623204948060299214541251943051538755041640888241555902346970687414494498313926017538020805133005378037271787985892103943591174848316723939554887752444828172098475823673892628792933966571902398224079452573983436769337558372164298908873093288874956915573298537424028136282123795176888615357139713304662166703169474238395667696144535604989567556904203248724891352562101529584263505964914804814449568534848175900466126069280635800249422587559827721493074815906697230351481752711256237724447953717647212643667197750705944165860353971827516713023397483873315804133028311686504181011800824367497337652646439167861199437088178494493402421381023777704290082725720924232198153889890107426712988152114075858790174427182678307272700151927000636916874079318464099676645604352478727397904220842032907870256098702943432143478493742903292810066175795226330989192520396792384861496142599808320995001315862483526900902904389786339716687467913837816569832267685722557148152971839544790844244992134068916187462981538360265527099089875335622835307844128057170795665488234497319549874679185327018953382614829537126183932878984546515449484688222720926666127133001485793544721208015958668991170008094315193625164388382838696894803871975681067650708137132010017407647123837883152016956715347984706055287293363656280091786265279837965915621105103077781186475143874753945202667992916843657429193341610945147052358253907844319913043185163671575497763610554703660446841118094438258415842148294889829124855249095565776035965173216732640651170376801985400903183485868063457720834846027978394084355642327026969045895500311108425323659594120145354331025941509050096223223029084837516536708918117254102254618410419238809346292892003243943309528433655734815927901028472348810572229148608489999392707649702650041894344161689378713886269905289286286781134639496197341517887846295895629993551059812252231712208374078546773089445899527149088532013983012912602327538114858766292813083933320026835525820467164242504570959665076690669964588944976004122727392320275239139743103338833976992206164409849204958064984272912507099336976335461242916671169784930644011366145626170011578668021096758094703535785260400057801191996744777163935549266510430975904162658529875502204660334813741316513428382358351365013705309499674343261098221040069785325509280981893058327186854569052314382617100223855549562238106874383939378373770910488455943802454804399528698525674056804625312946369113430305859038162502383235465124702237127217720247567976383187081588053986920865852036947088959229552749814769517849914650127104338837417340125700836201779145834194170001146031986460061207905713074305168453648275295743882804670680647598935248954417047571297620819874159040571617630534990404614817775657787176603917174164792090029134569954447318319693173483578240509568200665729660836771265453846155658797700198307461118051206168393312849740797530839126859940798409253557304331636669360408830475083887913226586576571362578491870658760416803784987596942689787619981265438082974875396304707881653889095048091462794089869308808396209911680052549929042544713991681915067035195115840309841358892597996729536348019177320965022812690771602040056318697053517758416260551026740620955553505199530190898813346172908790695318610874883866536236634671229662273241001950543186449138578672196964252054677007733083683550055417747737848873488376627899264327245313466148738605637812411376640928723100519220020273369616723948893655320873807447474177623798829430815780506139428969631829181913191648147439614434796701889044022503593098201469809811661950106168521820709586017609919096212719190775595637460260143098667942905990571675249901365373036365927424307301477515408202560311248498776545665843084254903739311168605430478178278161986070378670772730190839825076346987370227198046907149841275639394887435851351315759839157233181692221216608423533381646402789535243351472907653989771445428070312522314213010569464291594692716589414297825094353269471897800390545048570581563580749363623369894793259902532547333933572886894629597318142799100639250240964772523078153042870044749103146727615619719987123312212248402673980183530359347975801096717812906886461158293539328430290707093766295227881304698984709232350364315944390073984873866457689341489781565679903962685127603624058442099795951454829373211840454906655034955990852916257857328863160133827737634054901927637769001859790543780044718408731635267207961421754906490068861540265574786056049029438637748369167681502252871187736141709877968939206668745997756115333855325995986858987150385563870235929221140360458513698029523012032549106018255078002031541967993784694230783613801342203554410530556241285610179406192764552882113913665282029418934761929283006620535080719909279446306992683681788694144979038953761632998693934269804940164618129160483587928261937037776023115159014346747029016822828218012801896776980413621649346160312410500024140809623108765845256459844876881293236558459430234705492612081107724180516193336470628321023548004614271094364464498747845293712390165346133309133752216215010412567994953554036788428568974017136647469482846629376300092941588469462792784396293915601909609188476446228997827609846809302684736850085129208506245649027189266293031606610546756688054678261143960640979999129590153609548525181258122497688677324007858435154463780910942689546813791418005072316482790298170072566062027349306094280060447195718969783320753152259112221933616387624258900280230342203970891575472624228822737227783936471272862234406879289883671563412580260722289588221717678864213357037516660082195468279963326835121410309131965078198302140437569532063207331175439037023475017722233308318077969813057592052836626284625357971072540991982027541479767290550570983688547761413800349397729656031816968880163502916238343165768556543769591643616463869156246801318064565786845785326955344387265696738090114316793669738122808799940608269394288377293516729906396247876065914618089568817745081688915730870110519145775891701937414861189797661907840450490627605014416949366587116651427468208779704894297194737071898886432148695480638902942286328216048949531789306156619608512330530444075517809963112823255605251956595627694804047918299968694408091231730818220956675050321128381307995206367850949926937333671207556443770934391718938669860128203324099165634074200063794471848374969336667559205123675669773408682320944324015818241351237071520530442182769307166131508868907787220945646125223180557413044337975143498217670544192171405282057724302792780653500682861075066254357717309112405005995109802431117472709733474055423098868272200284734508706294636313614662477594481696286479110131836635448575362897163318512082511076244286740321012177121586441812700758941376333407609862657918905377810100903553408290260502706074844497464226530023094668558402269155373790090238018014117155139162005627520697917768580431086751443458548775423899087365253402814290880387432944450804859671591949595849133057445204557638200604575430953523449520645744706303335680669359529160023514937111977974706932828454157955548520484687570997750111351314199698405047251397569094480216171487404279421452474566524290860566312060302567909332376266190877417421869267402460626810438266198374689005591995701308106588158225834910308374778960786374265220450453372187774918488412988019208325606854399583216279066418087977445850442012079212246303985841540409613716401264824541764918668514196192814229542560461686908567432378732107544818931340152545045774537078261600987560840588123822266206202000328829414524804188971853121207530036917872279717425103732619580269980478757416333195337744142313190512858605991081266403975834853323697574212811369300809748944410275717514429087874491105432496960793767882403799635838104514694085983120051686304004050228006829918022867766439419099650131598446768954765703105056603963110129892600688225916374176747787855049274605991844781217263529216119889101528744958771833650445901135415023499146164330264291105044879133595057399709067802544206232840550763437703412892887303267747743318126216048958090186065509076594539613134124417620571897398957333549453956875409349488017969927866117622323997086636380250158453318034502814272927235140485508625632366489111970462367355557247955072377875698737598581263001093723419086017509784721339603210162325110052134613456408911663094441317611080920626179265870080195046267518808581833831262577296644293221599236843955005930696926913330612610246175005845427977673927050993178775716608515566766473805436082821174716663868715127705360295055016494276044719468462188929587424099514797714541487459156281183665255448428473142425393339003449193572997862730231738574512194299485692996620452834187154527987146221137538867777179152056199828329800226238043491666841208604409469836870071513438780454327926952916436658024920533046330120269714243005385649086837243136978260060190165116581398748420915950034889840595616576170700143959756480401409492469870119170102103376377164400268733058707868837386526597888121215742122544713027447924542741243818611105096962599267138467102331791625657309290050601293800126093389446731736507664660143017200930109807760328340912065006467880292472185297908494445042146260609097128154589989193814343066248900500150899761089870418022539819370894741651458379158994590199259061876053969229197976608270124463559265649718931012375623454336956595616656546771753201296538301116251807653327421161310883045289511640037893780810400474948737980732598911150969893937439486931663606513762951097086532337633603345007606973860277031991289318529592283408183844607412835989526356578282777020310711768912129637060642033035032385141586420876327197133688471434300570925404121527981054337005165881550018414403237781027701877274909928229116044090771575745104685011714005253507416253820630134029508088651861200711995389445724285138873176463861239252318885216712076361689604227185597761349823079408426895244829997342523415079184706088514412108585040666591786441460209476154505819565359961404514588771139148880914990372429014698674198784014174336968133587071445696491648977415499661927342156584001904502829971066204904871175825859747320279903414841268370331795312371347251331275485049434837421259445851842120453669604761618085127357113037559190360883576675026906002651515811365326142901675297946081381687425749702781879994039875134910533117831164447098076877790344484824834644733404231411353025856355505042490013042098581444091570450241941775181664980958542912905320800846155265142618034342904024746873051428564058245513105367560284011773435438279958079469828351419350533580740994277669317993669793137845507995709491888867042419860179055942167201371392541095568091855343015033727237546536437486772754646591878214411723881568880666000310974733259279508936343808802240487135673647858519755290749435741405287389286780789684578259209625853492802992839320274870039841334602896876909838593235135243146100291901096918015797165970802147755205339570417753110466802754318535950145364991731801006656566483998982166071235331324801018359457341087164343430314183088465190762334951000987251612899381124209325134706089142542264234967279129150166034194844592948277824404684677630485822703335265476960902387865350213748754751251787937922844590241769327224024298722646301687913455060635086197021138917350734260820159710313506946315502785101044914357827922635536588990340233555602322627361251265826187423501015597153303036133122281496466998362287985179241218976965120344549739612050418965950889477205616889664876514484960137820835639243185926723804877697900616157447049218775803878425672987806510497431578236685332798935083877564709611782324654249937452742467298366020307099377671477950688283028028369787652098176666220196206053012920673451092929675964324325663205374879194814801518577077660341972787615541672815805769755668310826718139743434550826732917488050232569671835613782147580001424326574181026896937756913976954210664583548668501359041873502947445679644263604083028035227343797253940937579548637789147235848345681813493205072228074849309357516030998453244793790775402441180444261761626050880218289161393480969440093110805808917184145557711913861536604138440724207590212901672759007608196829973562577810914360867914015572656842209621206907929950151857832817050272011967734549128594131897847781614219721560142316800629390728803200181718594341903619201499912005685389386874814368545238363188466623383644154391483565790770654865979075089046334541937293071917239664880383176831098078962423643123645384316061365370154907215041809999916158476488590086996330805029227988577011623026592816000110596545735548068058047538011510124300882590584779879283256103816833971809464660182845543198019675307559593339010135994461459244855820459496319940704965567532447662468837294916997693686909826339411105108025852885036459967705140487048223271213972720143187086049317538098951542472557319284682593664077803935610503339694374882960115482396293984904786359854415204642660765630470791350206601236489272711655806835154277748905251544698706824552030913197411741268517411051727403849018450401791370193076630020063735745962775507419016739901211281913884663851861252839699183980021179894050582620535695189785127374488894156489356804617804976884039223245237239568848437037776656629499454608084794323642001162683236946218066692639096963306696604295765304273511126510774950299616991281327796501920737689977018917377802276081667242309547007642512084071890377499521305878904789287158190485187905219083754782257021947739516711519139224848073408095642231389976314783807153937474583039435934630477121262776111708412720931593413890715278164537796550200687912184051394024596435687940961625390889215887437698836328221571326196151302764100120063034628314697997278573087171543572848424054306058927514517646859944996915180026619183021803130534223522273339407122076896492816325596921274387182551526115872054376141868693123744239056042534766842509671581971075316598533125908824320690094255858236276596766566474404217405499332048921922200252475522726983026310929148610678450780664406426359857915667265287537223799613031865278468418356234155351694013493980503311604324474479796976373438912723162537889633691505533100834341381136050772291574075070084171138050250012204716403200408626908758435208173068163821670266326641569337178986438094058115705410515022049395991112484832796866514536320497870457197072790078512006421760103228355363225460489373283857301809606685841872404033723740239520931458378071326306656499374599591153968923155800113205295781507056970099324727835563833952405568487560472052269002614610663029053956897450516456246686685274973947341666887175551133242201283825329739222881603324941582110455660110102071253185545118124618128902273362600078985777822935408772085189311892313201484378789091407207689840634322236442018335517342075258970258407058472215731494373308549752053386273622157561491242251549776689906936652315570911034973278649070965635622666923058489399137347224044961027033495311510289549847435278569954013232900903533120745423946389122063198075653939266464800834604314901628818333184202569216159258457393592784447317197671745158691563433057904376913302208936028945996289776787777573907511083352942811715447232996478193353407795576066439823489177778657878512337913844078529775764629385718718334264967623827390533226293322732215349913842471344603526271596366738032249627076310979593063091834743479360571838625317849988758213661729740744164175873943446315343049896656176965736955861160367361373571613107847811026205422258529829851918108202653671986694303914437560460039868547112269716957791541669403130534795182285528215696634653309929561642689360395211791331461986876264515343008727993990949936494076654853607098751877229161887811627711126298428692594721757890910934482319226291477331766928699332282425746834841938687316860171195418028828162495561757578850968915963623032601410908465138913140968855467654031156846257035764461212726481786104131976836003146218786547610315843921114927458087964812722591062545971599112147543004071693507525669050368543284910591454661052239285423318886264714134179613070538642944054161958340535600932083265297119751906644352558861956093686792179867948981489482176654107300139493495770130782162641132203048570763277648648831669420497828989331781684921449815713514010844371877999210585976499078388483483137229107108211334569431899365162794717034036254657164811360274419612567009013980579398730166528987644810901903270479239113940381256984535765503730530133122144908926245159188465008012302149675754381249550449046822768697593628720855786978302043827066786643017731875017898701182763309897645132106940830034172774265098259236006707640237937810791390337045501002940144812714774475893978253284365497957787380407209244367206871592981625545171390167922322296765357431811013178552830547861065523887289506262448321832253443455333208542480765491059991398266111140417581221781630852802508415555611881180269845424821832175004794784174746259589509566248463843949248988055408192753816724547380581315822668160375448027647484158486137381776797173133837207935041496888141685642069925803751404942297229736268192913182197654445994939130541655519303278066601323944478729706401276269305957184081058050189756811983905257609045887138780820943697291831685033740094937867094032065297873466139978955377871132109238383968864045729098093468862434146861859105487540616509154812150289658647586522873703396342324401709486565411898779850124717619457664074069149653226059565378292065881325525183433163776898081648529837310373152538629717558389578528008952118433196315315274320497622947492102881929811034325406229104518837987991627449626337369315211073561149739957846352731620946662942270942888783993565722777967456893642759314218531798559776343976234244386501529973097986967626182034106863487263601373858272285856597918796635880371993097533871925512413071463949900074548901981068620242757590716105910461335910566457304150480641335409547172943038054549651309973462984983272389096413651660891214253491093384024342528733911114681470150561693483074494240069764104376704047001390649807788344562130135975401151924551232874461826240124925306566759406810741906495909782832057693559116919167576143929879480325273035697569927750410435859632363044180606987464286291121489290558951921594435347365579624456575842958369778115966571154139091966637330151262858054083119454361758132110062171442096600075025173050202566625501838769527335549746029704117715026064617091593086341164887430139287804287533601660372405024559096351725669414170769357517693985683623202989324043533667672858658895864052544699412229698774377214318515010480320062900263560991740937941889290070342972500557449328194490694821425151019213226630402317360576547987267596585626402020141490037779183660946209755567463641306223713294799022760549004900369339408279092916130734380120947452608010858616124509552363737749220158302628119238851718842257134333065283352186778594975226713890751257885129463405281550520404618855424390661507408108792426315685570291661647312849220432481637671386886227710175798060178880118096830781196038270142756586741397248152718757134225509433849738245666774264299478907654187634337447192295622167884272565440852883816812871517177221529895119241200980312081788083307390351890585212671615481204386143916082145993932979086086146493479818940551287965908813415765487703370197466319100149150983625488879586630012159558879971348277309461727126914662988532903591343311970472963412983204165650545778279155772498446582393187220873692098007029657212794821421568398506978846058103214431179548975886333846516204778838540043172418553204823127248557537073289549034584417153368843848048817199900797218282358750632954742055831213680725824823098765613210914474126135621250196064626829781459402515489647935575015361070718890865471411923261839870517540761302539973673194878219777260784653650580632983171999375480014767326523941640140555623913593105418922304977719124781883201924893570446961828758746453250000644061878816245937356389673887091661948919687422638006604009771400540317415747526911539956493381135985949290487987510119198458515065623279651705925570265722687133466891083950755184694497744951617108801835305533130713314615882355573793163329750810213874321919659059243183444038519376295381136703190893671754253915155892592251352095326660221234860066677314707387085477929077938934923838959320982229305659241848466932142869562966324395326428875066980025965927300964582808968715345703977467105537327383339170298747235301533102598096725101459816927476266190156448727730240246593492278047658100669077599983047041183470223582603871833812876242559327434157144007437202700101775092094566339468297642403617352102826739855214691276437113901931614734109064597378896987310095869959952614685757272661888834849752568432446929904771979447050261242912796728049873433197994839761715059588984166181383407069106007363139614196656539026513364166772492221717438252024791373777010878457676038884233003009826172845578991264721967692648747295337772597348075144824000299364695676074907479216418411701892563501532295206401448976098243352609562409535838058483622681846847591730261983118640221338555678824528351099773095597967577109317184548569202851362033475889564699751655670139969472413918465105818602574777489838631584850758244557391656577364338441081087314857161942969818288684037660023298723272867321908731427701502992569357880207303405361042275382149804321019786491019300115351131627753089502147804352129296393796701533346856670665370624562739428610844602827775301983228897343253102187955312258543013005210301073139946166437517678970175481258622908582257290296706443127913131065677304605111008605958934751941982964853255386111452057040064615101000804686129711816742152800244676414492242255788261738073654043302500838871131103609767179894644015232696158438147487678574103950020333315598176102459625892271665985389525569489473330310001111348000816929185418325822337086379419280544403252891414849889211055634268689617811282270454508993380640217495332432732625391961947287713562893115742054230973015027713665921487410071402929434930009097805770212173708784681757504308558915243088695895473581796566690499948313151270321796213110059472316278405945559133774881655374157657828574699396798759948293739107846052107333373668101685504021965253082199607786963314270800843233815557653345357545646057239041924999040364601768725529170336972786875957222284329385016142645287978944539940320440825459043560346640986117394396446817168112649521418128956194765939399461558114923401908992557559774176710685542929424622830080696461396573007389050446295555836540828807612713319960972662195255656086113705255365235795699410865324566956229372306211326364224698507503297075997040597079966843112611427980408595881529749704386876603786827856446984324825637726996509712223537459780815987862289738620362613874922025508520262240235142369353777592215141316489305208895850531082327545523843818729318913601152779250918310889054252928418096072534988683140868419749086832377446364255971589861842023044322557418051902818026916624283869895475006065507982766275186528505331402033872835436656003824660667726731716617839720651584203857355246545832002070830214914048176766675509792042175979935647918365675537328285994590827042177442621403440304617818216288574753855908032723800638627247722990808127908914041479987802171039468228665529076920281392409391465147274987848860390222225936150318519800810310975940224121904214652852097722374392829872042294343389518941057538659636308142957287427910745501791746228042382659498091521914643456247986047380094890252471070679612064061458592913798370900388901833360418744781919656771226212232361026565136413939752363633570837021856300523508321758414399001691857979645306769248172888962647757569213801732232600510282302013284709891404099325698608005204458233646052173006548047262689736258518725759116498182521978377955135432072088081611004887740640951810588304910335781079979404929567905376979676310433129923614281868485412361300610015530474911254106710501123816025812490284210888332846320403580577908556307116472965891691257163973260079399122555763494609876455258369774771770100205496863398933425453622112524503239276014268251639381022318745311773978621499878283660811322967886780686147062642653047157733120791308218287467403048026590817714908892721976531216055247680487514446237610556643656785959248318695497361060525015095094322064101488109891033652576152930932491500538428745264963606614833435174822481345007666028642542801011728656074386540690750077073526652254832967121148036884382395288572230864308618832898344194317797677661186964471892879961111073874839697858035264923304761270845881573486462798485179712312168855564200646246743181529320043498841739873124354307441174312952138233451924691714319144072233155267465403109191485352540627338000529972837494827353313485957283196458779758281591126078524196107433930290066998215725905868206786165954593088967954549679064294062399865515400840062262532346290541409282927771028306720190102754878862983907634691129730708128586360363650452864045111138421921209348362279663858196395134281927676697156964769331615354543870015552009153001535686739449123976059806286878969248453269888829469206709232754311405948454359024723815397496971559858114933314457279969457808243010551479103418722028570949206991269165326809953996909881906641527143061771150193793498212584218194025406033061556999925669703621261699533356682119353162141245847438284722445238751514750033183209251550332104194822046856126299491126545558513558567989299045480477024168257868385047963303830164856882737047754509898712104410339217878067535828255794630022574954684975162598096426203356290113695766490586447447095584757033105962634702526518594804557895623515854902726992426237200846393156949650412628914506056623871980310940089842748820055993397827812485696026657984976320388836697684884724803557463070515420584165491645859674668174962147659229870793714105876177282963748644113805371738620540521516673189664015677844680844643136889431109001844621527460130478344081778500042004679127078343256004123303410074948775428268861225631014928751402445023345850155661849528167591764826655367388635762927199263635866546150274344316662296032636605381385807705142096559815363146672287674485579255649680583554231601085788840016334153881820376205276789461277019727530056638430821695431062815040691762165624655002156902827681864367756581566114053806516532623787861342372771415734754268924720089503448755116539007396284206373328262253975418001897605480257711563503264817191037572076594424138717697446482003697936416118083289279532272317321617737454798421923161299434631502692887281671819786688744485515438044172332325040844474922071448784224463740444941296414325900844387427496122124336125831691471244325766625399625870250739084152491825620623205404493830737270244988391263778391553408585815773451138405857723771924539712534837066289125502281822909280018936539471410620210622987617276241953503073587095641230029873741254626029422679407314430666493828373821228283319276007725466527046580573792809209347229601766293137031974505138276513805640904620101753264641407104303804428089362724425494042362472843709314969773552184135614982006990318133615177015022766520055759268843355381854961765003102120532099723346559106410049395438959680675585932838391338193241569994029328045845158770538953950544722857865299117775080504894063157313047751659032519082524687394473506091167559674948534735999927797263134384735782520436217127785383199100914791521459251479060944412024801316819316049717266470516332638172427477615155918593320479647236838818074926977593154034696312769600752282857972315488054252903572794179454958902545593740146390772314148684178573780115129415489520700014060130522225658161261969357887793843982970827255013980898531301924168802405226443539452800725654760946570499531110743330404449556258705235255569787558847610985018062837679559867328938876018360815763887455389705456759052047970313328047591104963620316676705434147206250288097156663719383786758548996226218742623168958398166606490503532400917365826742637387907627618552737369970480266981938654916768958834989286120504393723456837945829268563964636996993658562705452033762370687257923154142316931943840366633395652211757705149521431406019137788181062101271266540816406740551107951961212760477853614328105786181952785518770768666668296598176776088205771649286275074056624978591001358489050832544456881956172271524680707980756547514232320082720942532411389138570402744121510935630870441891135995806031956369740176681497878075145183928749886522343083762174040347807202549958293105759628929138711532959158482578126129908828477964404125826399415879945456365739923290797279693197129587699134890772496036028353743795579561941338804126228839525530925782571690145167270914005651707224344565416661845795457005088037358413613600260100919596245650877989625948461622119931274844180925599526800525253683538180565817882648025667154045375525841386262730947522463439023648509078211624828578621459735495165798786794520780099087455293205899026064302991867036595593753838833882213171297930034698627872686116768504255776410920821303244930857541759405791493763896284724978390499179068787488842947718259986702916401315725624032790278739908942217834000869757853851037752269507625485717349716627669453775176117286435446705454285898718946227255166079902744234295108784454239112102232544874253655314117366466387758436790191246727516282983252640994643150497050470747673563147016490511370857917318662023354376772775743715116643619824213118188281572831924076713029213162524684282928233373246602123049919625265421571119584257546530572401403166906885112806260340519704471952507753901260505204043116189552315345593354023452937534940917324476595772848920817902140822923769516607490893689444321937704469947264893253364811532518877727495418562116227879978142801395266266223577024394434798345593309900763314550956675996490148197551985348752398409907523274686452798165631089973247947710115048172458199473540945109880212548488178907728836779469834610134290238987084928537880689533716783140670679734004060500366723146385041504604583812458716010577121274054629769187916163791395260216063571212177940796747159990268698284364261663247495672878030832612697531488894021072837747003097455832901429092011033430504063711832566608374379214275251125688687878130521195710447734278046264200684522220055335846850807334889601698664834551611990011551320126141357903285311661754680753378041269518128161700781565343904449543356493878244834887961033879515627147228430743919300860435424721940892057984486809530621414964957030119799163264080868247424000245622971912868397140803077627908655488463814094537740073990953532888595623716585281604043210080714971866764956399767739812058399828005883758055165531346140644412796030004325569060987017355266756265981342326899735701455460255888529283358544941896005556166521684476931589519153873215712152250215813574703959094563837869524437375579917959130627336085848196833088394971575500450604773186391048236430802016074691070265352919820929062131797064078494956900523100987718052177284036281002785444172917943022217642444587704776484955038971829570956899948172237765325110276316115641647919058703695682996580259037643172811530290942211072922831007232200648681010489120702239489805427297242548007000601972417473919664863418008312160790102161425722129569399718896453079016934915451635773660338414862555042162977050014205815773081814714377463076158612915159738945137946526651123903088907498281488392171436490829026547639494085959809062504936756472732297201813131562953038708061041817941838503205772856800093413468679203513818241071207294442860411627274793481734521631807011679114083470120367714007038412757093268340166087676057920741675071062819728123147786801222303235602165661457622252727095713527444596345781671543956044971057740405240161989098863255332896810221670949843254188218475982177500635860842473904087208760422933095435025502224455150822929793234152614988140188404836257722955181443554897809944094472228888444230589892756065767795922624279298346874600622358892260578570021419962433948185229667465733542574029694986067044980572454568073820085277488972062797038469610968801185466048469557909746107490707889131801188358477176846370372286330777465062657038984500872164588481069286923608076162043815377772022012405133177824393525584248302714238517126088594610533707144438530728623299511613594929611180891665765004535785939765100979500785778776450270411351257823733509495700944549327373209732262019760922370989345193451101863182829963960476595866265159201512254550069346201697444693137708014888145822533034015612111074442958024991115562549156058372804192012585100627609752781266575710058675834842583345887144599179152801673119694940740137795194570831751159121215069941870597548563203031128522934565035946248799572297386591525660532655329345726129547249714696681993025965476983677149328124559420977657257563277593942649618159769968446730887613897709943380267497388114103283936656858116647912641647162963068459022137324578503499110510197521382027643307307671669276724366962016063827637442298140840595468605667685692961307076116966319407232798274927118114348260769020122175767100586201082753163576792038230071583888726154468876615950061673199870777632675891127749131879880919150655575459907614313035177942180069118907609847162499744466599260587127018719751848258096800176964951655883344589823139650837208656922069407852106161117190920394280507917787999891689458741852937972293292386241144780221068597617261637249020499956488252491052078951045389526357354575034649798330597860659927032739202347176577235872623467379249272792220209298061577128032052906727866308664588666686050033116887885445848565772137669742732544824611721392842980731890219794032648296048384436656804571512281954008972839117973149052472930130385056630839888568329766765575479715278318424647184713492003936820053842029215829934598043637769060924632120836248994539020210182625220181203337259437677729121125922190951704929527023334594568891922890937571321199120825812911186030514954162693291460663741973644334446685746479105887135668063672082943575761983884667611562426787069663214641341374466357328418516700686242577278575695129700726213791267531380280221761192740942087394057751510698339976699945518405550350372486807293260994706801387700645733432864668590971373197358293741750310231134762511674463858326487371842538210131724518316420714370075975619532810288684464607311187506773923069664912542671677191374336723514233359830917289927021007560960683119036305416067547396030338113906002316560548611408326005496113007271046912009745340606508755173733943177628629083564231813492047156568728047551441507591166692033527710459287919858826100936398813502163405414000787036505255414012522833499783529979605483315308836312622994512300484939294950952484547451633740251254661455694681202549964478229095508004255819212577435709934031842670725301885760839494209912594798020516052228049923643138881280223396887220566881378655793968036468121239022843374277311362753256396465189420047519417566484847108552983701159627913749951119447360979786618744979416527281213531475165196079970832243102438364867897586339811617891994325561214694287490271374267005449508314521229213800847240312604077551006777931858905928681429488839516071267345456174745587303932650707572099711359186068029016959245170699724837866334387188660423674804565427983865730119017642564681878873378991176151458609019323503241731792528965834246209716452880589787691563735867007879884883282680631350529850625387736971264459428431974422342245408996709255363045722718781006193832746105498490689413101402404314171377983995483920656346669970868125028460882587911352680220298006009064215561456363854704722883172218879857597720785076071751975832506487558774824223036384728317247440315017965760892687482908002148474849594726025168214577252856743008793997832768983689176785107925749744501846768507696317179909672334194859455063025141971182473982341256392864256100814562000596669648523792888037948500162455757475680381357306699521017386359107147997363642756628717940482046088635080342548591971508033294154941766295712099914171658540458269943861676466482246094448218464385203788217481900465602307897852864099965431643529167081205535416534146877279781080532340185274306824716764929293394144058448451976037901430166845948883348994269390189529823257357638402363235769034726446139273323405165278940411722294309655136670352405817180795495375546751350299942343367802138537065663661255902566392813961920846120352647383780272323102755958685919914974396045928174227807976088191400155419121100955792687504588995016453633234386115580442148919398651058551226679723157347059299746577497539950086907092060465609699536780323445778421702339254672960866258492164545999716905749919695269889819907563638618251889926482980123186650824250694293931947702721358856353797774475834419580601846919446108282236223170874769141515058893781386356337258740775418167745765654320302199887857958756575297501238119099281643187662224594668108868019716155325064105059293670389021260418982486039638743991038697952639930105670880887305633703940696016021923603806630783342684095459446721694832063568859635913266171664251818846923047457498856775283550297597360555332254419535880386120138191964489638450835302651261890786821311823100805699157302463423387494973948286082826322563085167146316032353302018904233562390555383636134035329224434745347949336898223357755103661857177713733934143705728016462995011787196020194580633468671195894619805540911836915983151390559896462672195839603282066781857007276869116585424501173685188817348878463828801108952565616507621718362670552944115147102803179316374789698700730984340205467500596316220290014488829285293398241851097531068281325427459299951438352639359646922712409384336099604359977624936189578565893329285014066603700531486446455356681435004991460160915650562593142402750176069169514274649739127119440908922750128205280762645064712013105756346666322221916922008134921228106485490116031627804798369084678343700978424517552253498690775459575690147816491097864437886146509271456072842831520740145361183635419092731863365151648422240515039364194410741617942265141531728538445687928778954592480798064759465957128940861466092069012704539034313675553078375132778243034916724459596525667004726730149879119594736431009794729453077491258624740942528124214015217351311288797732411679808856969896281390988944844982855309402441135285905553291734975405372203599311605453277726133149009573683702075276024768219092247211361370286978159332260182858366981148321492234151741995807859130747523123004372452408091992620846757186619872906999093638141568824399717028646220705101298076393699151455850789870918210973138848741503242706785971730543507956169812595956211754027397923636987435645517710678239616130505909701057470491533825813223998738759005636963594808021382920951065951272545740581440673313191694277005828450048051647727980192087642870800414594742399002400802023095676564239550631685396798783166918580249740623847426581936747984689333753015681305094885362172591480396556832341665962815419498761178826297666736679192726340031678353944712793282584115887477605495925016710090910376051317156549549919458481226535757030813643901622734750472635485952827187137055596217573847940305796155638539332139580787474447836016961688310980166536427923761496896329067157178900489446227460483262862793966255189197160146618979780777835603752248726385608217362408514509739920932277165956561097297080768472979118650682597892085892171148749143694082313334892601866329789508803308171143794791837661336313620453451603111791119789859066759420132025234510037993530398692173839928456606709096311635732763141212249786713576960153836348779120361525234093621244439119368116284609355034901032631295453291262221673097508441014274994041375102155241239499434167582440623719906875667275659146866606411571385703577238125006965328760019166367671596207002331038642585521286667460119839788564864538856711488173196831436704252857227858109192782074926935273595855973303624294659940821213276222443506904399598340126683399588097855082319693606310281496458981263652024604689879497805856694845901168935953668473044000441818429208654076370399698143440893948902863921758970280598198680139353184046968450184934173925934398666033651081415979392547473906057162491913605333528403036441983279567038874404095450915316191668213061040971049769930003187635880663401804277824384270483461129927881545985339123864377892317742617581126015833998864080302653994583195828689287691546965356199468588619209934955128424815820852159868272061220970310827808665438866925033391097952826092390352323241993293197632497463118223497686768710669547425838047345685299499504487039148618186846578816505651728911251797328072335172364559877627345872912038033027988827305241243493676089318820398297461184123941254968973982750569009940499922126177621067507492798284344245354092715509736369409463088988821466416101754205181012445324681876473909748267086287821002686592408526979763944666480373943541253880690092129858423720348280029996641473911078723437549650834877890202021030306919569181433122987405721888482850301593969458068928123144372384256739474958573210299995556400342227128333492532910912782297221335192473867751221533010341926720375632542519983759660436568215976514687067500047761949938587488482929808464927043483920237681614718499095633362227039149462947817544946323300706665844396689858840396591685139297379340051630417398451109563467059313082268260819719761456540382738288647619519253527452969423427307859206141060722586620399423949773629904832914385073842583544418905222802767626433972229808042545804814639214913415397279515870945474271082213276443882170106032360431345863882086326517902221048254289332220404459125325677900631815991141871531710313952475267694376174188300578289017011665934798886756958595431064107347077328943366049826923983219218959622982472193145080987863648670530793394164498051514730680137647515343990529040883832990680230471825036367260645318120881450642843594468881518205578607666211021871277363374126043389819639131851618823695906584951163904601086211945217488105340636611285139419910433031072728106173712620368163982827668533416790723551605635921899724670516266436872276508480166679312046540732112162518125684627101927919129376423370745858786116754782741358786501547255773293756619951800088623406695236133635129077211178888231026946643246895846176778596327006671456997228854105962456340678710472821127451913696371021636633490154942754030378879215834620426441726868315645053542773157595595618338755717712924803529478321722620368352054015717981578477120617374996268424322191104793892224851649901081853049634067132138325184941203233589059536890050654266581262785259498979680508928335113169522460858014100000564742664849665252537226193889033791301666139771903812836166294045637279402352297717932179961083596266122192642815743492338664398929638204916981134247346368730839129947308755220637418515693640084065660571795097897060980394564603034257793299010295342017484208850208726991539927630434646003615298066586645114368820949201907544625099741520128056550784109555215496698256457785080685472253470338341541540568812768592558603682942915592034718665973216142491641161805849030544118981833063292031724323534166878158419356197649438094813077383809466552968813381859086969625756472640614690806585581625991112468141115915178098825789796131797575577472549084573800547018830187132369355339605424658612968955213010704022266269443146530395129803789962116118440102329678657267765670611789522609394591484051127055289935152432225857151650440883380515948873020384353922842210483451440569085037046518937451090377497847491354009792976186087878286698870320408378134614584744761796861488468746372555393655170411956229600967515040463483008545475712444501581527688125777168762019058924216548667883165553573269604062894021192186601082676313957233849928946664455114844819175580003970624574184140998346300840916216156903007511382467684051836774959639366036292903514710643984673466437489668908036895056971830318923597830418786909349587910925503286967774604766382372705995872228679302606175595516739812102135956150169389364326610121005753281193086171083118253337063087383616366174318812282859354770013252097324816819942350081634223314560437849682691705504467331585014557663339263920931196438539901729588825717727906408589290380736870924361125834972491210938742397997338857833081744297351781847678718849153265926985824657442147801473354579033289003832818465596717413370748833245541351127304746460211082018969951423377585273324867544875592086062885427517486378707560459532802596494244939722564334980040910557890967216351326489019684155305064641925829895545464121306066124472649797523404282184424164386050187641813274438521950921094153579400807939210801110050144338751387747008619354231181528721514475308892182848992831707003976798914636958488598647813047270901523640447360777072228544039001894234866504703926984459877626701575818731890291101461473988650339639105179956867839862821976254300292628741995335152390147944049491205625043931598510106062450066877069029772317099788717744269200345215537675589183169903970752437327145513823611602576252157580167371352862161004512018529527744832322643113879535632841644029410002543341693607585344775255004458538162630738968083093923182907887646997573937306143870989157974949779604142674061631870437241028581812198890465919293019613573406902215721146637715343869392505043876631088278815309717238486051295028037201844263611970061417401855402035816915685773624985101019562754951226601872538060111210208619633489994006558388486491654135967630671359293842423486771582900045050540869879336587752356655596552452000987479572893151641621452339032132901137400492827838638907790011461145915154360353365466477235273873260514365237163114438087308239031389220641059612706131433415153201952799035238992819924790200461092676103341736334393420955385608678104020881675376413636920582924370285148686211471036785325470176196781112508932205768197994357713504038971640865162561882736732990765836607684890807063399026819958622975444552411103219986766588969203703888083642284692818906798080965806993964334439182532740567478524775434495391916374786051166982046184552902913915503603390579190210878858541426848626902823241918377326128045886242929569378780181400096228891360203447999556156112367797583023678063457732247828355520670311404170056343623470052938068921222010432092743559199626391745184197347799643677921616261595387428739368293097071243015810378680761284100582314230312479130991153300525109898909727732117085170324708042376975833893538053111447052932433197744485752027306868027017803462779367457282916706650661017024827763025493234847108273673084433909951162857020648269138526244778129052882169395147126841233071135350237679328181532389395973313131087585657246273398910710514238472285068593306096012855158826281962857848545890388076592095599300886848746056787110804772730183574659227682365448158504646746654941164417550864294888548008018104851542583018613377963938815262924431959086422208548393674289790707527445662321587273896691178440254907447608875503962542898856156859843842809270198352077932901801888711381493219246286870273369415622811546135428888237480852255275001833251471156427171249865274421638074787508669815069929168813679078843735364428773162700328932182930628142328718123011888530807167306428588277388497076431261068883690903515203055107579142011300387239556924013408634277248313346730184495680957070727203827966991410919875630394698567053340174536536523740775136237502346654802611393540928819941232443804026281841644343908227363681191944083484438891023024012464417705324645112284672391480096075585082440963282735179465238931417182343788547420885139940317725757331080331610834958670111783600875000021508195047000671630440712144404891378214425443036379154903179223204434811771000762830550961358540671531739651436809477234194143168139752151325722826266310005719361711102855451912829198986152106667782691307330435157154081261550307338159507243540266389245216235385922838877286336282247228624612848844378073416516360815973996157884817760968064934098491144484078694832340069386405122558513788810887666425186043926172838624092457686923430075113008602976728846432463052359538387097188150651283493293065373187618143255583053733647611265073524769712547606490614186233237795337533182793187742162801379907913537460940946342582711423216173115018862243447778340585678946715854236490474313023467222787978043801947067372562006812785485836898481616349870683590969093714602763891727176480190630384927019048874153635333208203651351094158044214316380450922736253981893264053421478501969296377839773585503176354686427264693579392866909151000402222903228038097378582017034395475989152182630194516696853397162096487597222670825097205409126300538054717094591668166498694949857919943478984464731404143402474259992758865078931144129530253877129571828514445307698605967051684195405030709513898451598826919730571046826690621785756085525671452895744551751563068928170779330346958129674308730697783747131460975717525139084305078189597161424253557866163173540826467902492069707956252667835540924240138248323071989023765574937334138953938373560492775181452570430353380000977967130539230073644729122970770321541910910403343414745346520755774415677432548064735264382840230477503447451674623760057361927958183966579799511268259191831796791652708788958317802095817584636265077429321719287383723453202635066800751844053699691449394863252508230297855230781475773248081555982407443518022007594060070734473772881192888270057903792068206240186468736594002067466709683556400022651121747483890873364685758021156522192276747929404370566564192934801712116212370320872888323971578853270267047667211138123556995083193959871368717048795110539677631219381250483823571298106453338792292923043334161018373216732274197496648926135802885983509393300413431903803254893108183242139665932523672479105299400038363503683557660148208264486417719228237849972912266605045699745420634666950408873657304617777280535985071644367669812220650435326240931046002584046854809565740886394186443486381165974797034456969583521616958858226941606079005025910896613144006729333760301820367923622281327026972829994655054444093471503002560124991061910880713706106863195266977623934612016764653657742879862257706524679352470034737248277573036539323629997373245260388050039782291920876611346117902804701020694049725162660932082123897564128346208421171310454923492860592625959274829658801058688549599959287772656637153821435671398416354209872264423652311758755945255094623170984059514285825058540348965330220497685544763677432445222191037659592164025886460860083660740412763025047840928360723264327308374037496570894302901496164155390024541162633565672630433995668192507205436080151641512857019821523149005142729738363415865888689792935430998425903819082916463743439907446827178255027969544963108395163641655518305383659496824922413221682889073848334550184445420595548160896526318002158071262165382576144354964273105647707848840184696435843667907945027423209914370052743622396290997530124395416801942383419858608880839439807731417812632286978925106430469646299629485295274808543834698172491447515354493311881896542403310179977706493808901708335317669612784896701167472102779020531245353821973782991904103446592407354084853636627753970140871389435149247696673660940509776427868171794505556958681234559381788132925199026778085221470515866418678978837511461404888991947368659414253734936984842519753525820093020522602398974527208269816808240911401593508024705668596036848704073125641786368479016245421864389892547496815504341404368798317420795434713141514402670564051492846293370203490119415225031992529678403697845666139740736640136241610178464302983034758907892256400827863305050666645512501550557174100995376008789924400585085011543888681904990233622625428889685138271567106464499386366156226955072935307251743003380007413301932562919523548231071169308106477115398411350254023253222184661920160071834690433246953148451732739928538594610779397967744614025650914951669385901867169370913330056752362283922899171847259422091376923702958569741486347704955769174596982934491191764556936396403598165508533084283436080929533837613479199739141756543926408806679056794977813326650811017345507318518122437789132191285239692722851604239458781479145056985347092946027107803860109648192745357678975353127144219235770585604940970636517150957052096577868833326987518013033020545999426217183415055086294184431229079703542453187952371373555711174272436998536314995479593407535418528729969378180516751174381994254222948012344733277045795074657284712709061322718118566171487065233796023692111006361027669938945390295990480485956501158617649896481610158159699799879911111168990168712334990775405684718220290031275898851666954830360741890307004310730571810769406335617951745151264350352824793657903890519744469037951570799437783478083791297167684280240382761388574458472549851739532158356576243115961534780257018419379457186385017191157793257499009647989097875344638008167026041975496008410685237352153851173530225376747213923368031828653611392398696042090414503397627334584351287688052164021727978352326292661859113133271838094307551404001799426496489592848223452795781803333860792810591678886510069856145603958624762022723057463900464866771010936634171762208082268667089396028732492570564669519551537393902473805028956673824434222808583652961726096133031235593130622221147987701517648585254380237897187386005841478753680190570761911287442838693418440958651379875222961743526024908422015190862623583670556347555566860663641059069729783609575169818870162036148253389468700283247774230418629942872309140643968257513680735572872289393326585076562100747934779878156384954836748678382351006938522868426288213418305376803781258642572154483639681150263023230588711381066187297494598082772908257932018782021777960195636071259418101167333241985949874594083926137406702321384898837383603382251417588377845958555125995527584882374029798609936469278441368021484038290416888145496438429701412938150024972975878829582091616739443905510045113282254418303683199807163685013473694038629096155525180582111151363379005433950505295908300761634796916095066413145722302912463482291079608441173555211206920387510611943682376959664252079742352469368064245195864216252521904987295851106613065785659212878683528499341744791883495172799516451505738086741301040107367038495154374152999633813055490981089049982492003304446914229975666610293946457252508375832583692585234256433539245065933653045414555351778878487933124848657893980071646401406838366134928822103836009038974549018473415406921541755767150042899046687092914939335365381797381093571596136100552130352882005917658990958044235049218952068566156030349977615377841254068788632793811569273061549195062472929386619029858766376414572220997265398471923260165663700854514445852650123656339353168411812605530710772483055987095954200028462122356072846312357574947436145652753202620738928847420487220668384075359239246125002291217203475052170604920047447456083768444475015901561908773179908070798842357770077974543853293807930440164979271434845818263394043912228798092261652697522984958662513756887747888415131923612672650197708124293448504757709204161201971020141467197791286867947205899828247420845821759530010745630082603572153556552213990649869454313103553420058066095117191077027881613101711271381952391919790449147331887633197993592697029751823453696514376489139604359896829490067414181099148008095417514769655207140695678303544983754209991643869905123814649815823382999537185876718368124005784219405037337013850035363244603947551797148419798189487484288644105319434348378364517380360376356297531789025583324884690616401163119022143103711977913911740041232950809871047277208982840948866979113993014493943376656880925448705192662656944140882712890144065599192562014781225763381514909208251249411275075071829095933257548830842048436652044373330698095692840735290740831147426750558743706806959192402988964296989448445232328841686384076699255965912480408765867317225542778047839057520635127693688552398888967547131346123457685919599475498221875623666635826498778174172296622999015517050657115355554648785634724751945552029110813789011038161760828304721828874534377983493261855722456162219331164175706545554495858732919453181932587378295456032229395399577736051950337747271848093207915440498893123598095375175189443359756766881414642380799394826253445294276862177771298263202169459095407670267277258418418148259299494743296104982147717361619947251194599761759987494139239297153416267227279812695952848520649351458370958070999668145205708944326714837810244036561797920540575897297957680483927426099730241459023344478661326053765746402638566476257443862380875256710460466470039734847820061686455306059759879689002500529840783915364489538827958181279978245216248666550377055515678326348211151910657494221867076584378447851068964378694250721229844719472750532562637397461874114247754649803642792655603627073179973180645171626012826016727086386006596928177683041711862330748225966137243454416906922423930576096260779280510032073833185945877699815675172508226209330896483575369076852611576365213296414909143595065703430428639236273312129740772105714921922073524942306694308189962637047791148513302957056875661603494138664828337606124939090463112347954235896970053172772424325877655600509580341757279930143775830966293829402596394199877547615077609386853480328675907436506192087954831472182894646906694364415764099616231678421195536123446022309952824329107825775633783821675378255268406986415855940471431513511323830558515636511189663883597743399796430318896180491263548970580719698029274897920740577953005775055507905181371251215098948356837726876685394446882953462139262494638721119913125512147868429407466294446814180296797363985093371747183977937833564617139408770962371152783519762543974974458726498970922317279541966932215259083853203798539107194629748201849601941206194111362417068871383178395155711822852340170624579777542681270123409636238427458816890824036789132440227012035219301067761968633417317413857467233966927215086024795503360685144509750906803382574120139030188406825894285541243364933998093130396241209470735218999841405165227173037897460304202938608039677412216315300757875107660701381592271954924818480285336458137844158674411645292074899348622430576068548495064763923017019960524223878079844799383513016480601329288919454384226407981147856221838275196158101092505036441616623451680682718636497470563789061707337961516387844480560656415267480566126626643301774925833931427647165227913691922782289123225210868353473269584435927792061317099894259057451734264173033697543940419309155698241144500567877682367032037669815749629742713414901570148130347490630648588059525250216184424168935801152400664246574279932527873083805472454550171827622348219880103840404159046021955778310819045103880299389623827208904524597272298269458588769711670275453210559639401377065694863390152104080141852343407660080617331565355105647446291660649082581370834232417661270001641862668664968634459744569954919259400485406134199582003805127211585079397355648141929200685916682208377299959358204565516179993004801775012730506692782573095448895866862485585642246887057686753407427555727979472241100880558568959204979700778275560102603167115237356449528718218760435037015642611198866253263017544536111026210869191070266155289262726114685024742133247691043820722483030202442392643930106324889052325619718166498499851069741454796076919278894207476334907247592123714411682048903471597980439681256043310376783763161565527657329838039225102658077256916759021904359345513600775455967636699804702559162651721241421705674858529367122321328066812373151035562605715073854095781426877852422283771402076785340805252922713724289233965209844848990215659843219393406947089659461598048041424321413280933711852035622080793365079669614533925888472415662461428158189725498936089694062207222170542236376266138563172918822447080448476199064403756158306617734308428050397799600696751158986505399673512157625233144238794034081867375744739992863596305560045469534658649347164662920261875038689086779451003214383583538118803531488006092052324159633685174483033530559543946137206178154303298957543421040192129403778816690318820699611844236463143074978831834260122945866518423407216061828643499940165051826649280503836480523551472523413434023885225485813699694676449512542173306776885273553599952746090127081479102030828948680425390924414140642660156073417989840291188829960996415519986135524032971154081148305105561732910202257602423617318122753148696910532273978397621597999604945982848947797230124752271587047657585570157534071819626753694941263820889028817057024634143293553352823437718493623015778607122410672728037194306159658385241630852654587801982059468521559446959061193874685899245762647070028132279887128274657219507713862846994171947796271770382282372673786690395473683026878453083130266974523671353814010837573978321454445093750884292458766656746824241847387334694553877160556610625489463984478737843906853082509975288289504481046319383969173599459050948728723874079221699191731128315024350141938297745439181564604377239591815617273032666427452444852703597502794850242604918180155851448971864896543384890021506892980684864935316518550100338541548455428840651549962752731333256440371301910074350550389081717043386868221441282520005634961573608508570732867352200920140102722216583256066566151861714278046349281389722835822391913292007985814579732447933101843244736829999982224608337574698334372994610593285988350918883766732168820659580713600671118397583980517073552257305759534114405232857458365529049120411532383681630639274649164161214588250582859025946349234119314678919233895960738599893752597607684531811117498444834919004431745432428933594679438739859198803229203454818346497952938180692650072513269849760162320740113466308893837467620906833721741581050205224366235886076957807699346720641779723686822995240192173385606852280406164394032655146064206743013011757289022275053642722842198950428676031020258352848554583469685727100817760756737709806151868095237145283722409052726521197359070388486097376286439783061020381136386499937337315728400431641704098455342931124882457701582751515671535737867552115994900704499073664299187948085911279088411104278048063260464329251502235556264487849896558685992633004259162532402733957395835545621072537352651232006440703727237275441246290437310092029093116885679945933064398032641166985883825331982533627984080884340846890058439178945655636604308382740925855894167994482462596751242417002409882280971197304747053182042187525871915253654627159765277786307206465772588661028822777536038580282531521737860396924657814366333938705072493837657057962710762199080155152999538602636855449380838251500250561922760634769571990215511507685063528942627338052855125186542959396467698397725806707887329850593038118718792981214206412139923383312074892755229494529768493169987689924744467099020199146233039023599210333259382147252846678410425967511289490511342358222420188654041422907882557095031254083953590345780387639393596410091365674968042513273239197751088677922567338550091789849624419905724553799014544891153378733610820420816043797979052027321744668485832172390171645392617727888896846256397575887458101235373801573234419809565960663925845621439629057139906116128776288347182683060180728785869406514677183175178234860686343104783313795189109633403082727432069610959272435789085347254575192576105438481949958475522298590970583845962298888358351761130836587114762565384271900899451051110355817248867632257146761578216854111253406611584562949350012288475156686705186281529782279910513241098440104780960463386964767557627875822343390488288302853570929764263711674964841868707193613376629901406584763553435240333651852610401270880206580279797257319006940114299797298265676094597093108486395582147979270817315757366521915638165768273720907785679220950064040525908774043577102883830378539709190080169584920444682340130101934934327604744390605121869944325412516993537883720673088961473821297400326979505599324854427746286425617929441834052796117505756507708255961583580497709808351107953107272696919808633001059198384465433325161599356476778105440342691131865679852713006841690784207709966588871127191119449301105144593322139410855931869658519842972777185886161440842460892731093226531888580249450961730508601667895418350710489621224271682117900472456456640738805578313338694646592001783116697199078980798972174561040006651415887497679336004315711207826107298440525062087476437870680342056527169234825060771400042496691996451708018822218889386232177198832009292010405473240978119790774302584566974247192881842116804396818767995029891606734083897969466178696273648331184363841987639696845430576538719045005341892091920371731639964193069641339075960240663623354644538101896668351225344258381465421207512091391693114550149988390191893394919553693029495048196387083686821633566230882781124920947886385674393435947310077334976003822133572333223008069533513552035580754324161541045044883019111787635326139244561448666079061342437376490772314203034078106438615222253331866222121692419334151512751760207162565176001389240340912790409248655187229954974471393885040497951731563863930308923573322171527932536832680643240934419223865944123753933971527785092564685940512096749629047218696397210374956286623165570144801074269401543694026811132421430096608900631666748940041237710474189469348484010320750925258268682650583090155018533421168909051935575101598795017576329306932763874159250713751732262877100354796407191954440099433272055447634234392121735169389793773980095969429720040602538057708461329108606273981740117620924496776657880500462534073116106386752783041983498547999836691034450945409197658201812623382531275043054193394191089848845063335169690125159619193873067124279572225288551190207159433505418844599636622797419631285040890796192336396834711807747188994017061241940780406957863339687565775668584207420824910460680904223375367042281420804066857972870275172652225055480387539229004403194469661782789759173325356188076628790432675508245425794782316239032695552897249592718880601881274360782942345455369963491940222774792509317872215015246955022104081918834758306050047477129188625991897756639638100899031392383501477780157454317222715813434015755534721559876853531977654517250988355699092838202174134831363906186382518990478051063139737602083582695974495129698881872145429130327514381902100919709228470336095256724724358003570838947636196831559042403673077926126608963347953402317449009484368697222577976978357652223621782470154520026083316817590833738904528780621030193495521173816240331786928071756807611570375805041633611516569422216191157443962144410832066632400101397356632498700829762922730731665222239877127174175676173827591907337727981082490800526602878153147939460514592320615855881430130766907740047727087918204208069656419769592210713297852151813249347575683207789292404402722881665166625496889058108521759431001012060523523622596686201264118327921644381836361821413780294161402215510516823650256918391215696800845206536458905767229130190644975367830539069347294640056403395592378511362059048263280584534588019643001589023738893432081582768878999579779707098489429605486843400619184214129464744557757020777635003155741671216118064392823631948195767727694557599488037581208513512120071929513835982838038360578403053209107981241227556056532210486795149618276653360119898780904454100862331656601720115370074349554027517130095698320984141352086560594285553067433517451050872137650061339635045525068050968726039654641375839946598166332058215510981669549890770861230958132902433947424853828359249629352319120631049200553171719613971080941500743321727195413371419468204261577135843115476106795096542724863189600754058290711267686816041702955141102533720485501567005199629252956789829578353873387285492788779215684047103294708840755294012117921449798174456400658751053140941296763431079702880116826576775815899038668467913525636247744271329685921150128392142154383808564332061416748583551925436003711995379032774489927283837331063306739437832415588659105196318661946470418854159652156978510305009534701247614266789732853494903403852110916569333278693497862404767675316013056722723165372540454438274349034747073550085079147605161896336111204881779904536745884667887018588985194009969450840397735562794933622541238863869338763593326200888354400711914687019705843185062208666057664813212871187632315068523075960129330030074160485762650734423209192194705809151360702639262742477343075870301391099064328985323493879496564288291207095583683356291580427447024044584483982309247615773506740981016486517570595679367138785839870518970871778766124989812863549662863143048270324589618536401145044655810610499807868527903344966438057057507149217950925112058674721847541022305710242442469630416049273536078717974517466000389946852071080793014208717575796452391549552729073161067255867961619247384020379706055134405883473068987032966287149852205086140879081931985473628976590627908670182450764708926542223742542702917185020795681801347319528684087746744223447520348570994109341880267513556454542159389161236068714309508537726865783749586908682751270419139339171446442697428179383467826593129127180074081874085508881883854410683506184745437017233665600305380431399792301514345300092133495220585247693326153055425506594214238734648415943532016022471158203496261496523474350000950169106577401692120126346149548454817870547903388896321335855924919546776037255283612422071346193959991969106420365342373315829248651568989725083499459099499429219733157949669615324067190658285879901804580929560859463412465329629133914935730243756183692765624192894313637737043629171616799990209774427265369093805475323948286834948691035274432794024470898916808018283665522248823789027752528342185340371077180540178610805070547611489864432063833971584067254145540795547963954286406102850505806689818377713141498289987124732781843932163086893724186161543826520156042440252838528577422410857240329121837259758557952723341089788449310262916703471468063273710261764834171184215269119274551987273244160476766803707663307782504328526301365941635911052898818405373525556822398357855338548748845308367270920258012553180902754331401573028274165301173184230439754431931207277535367191092197418194050688181849059087932389050754412421320696101304352456483459744684619323970511908081280053156909196722902634395784185297835295663150729315313403765761485399833591730597896163054671023955383271771446026643549549786882089377882086140631546347749121692429342990581150960466495267611915426078310714576018231277032512156051660412174495028251439496955165751040273834371221674087092412623429045075030196207934958262719128017596246225047256489669221974733508742289385331512031273083456966101919889127052188269303357637177133340303907475489470151114013002086331902120413431854893813859261879659385784885767134330746176280167200917305489112240833396105597953066472335341108920748215281692937965471432667554478202541465886211519435429234598441864504103147145439727702324370582717864484947338775821342292650667474973232100751500893340222113847466848694372272848821638012020535854257333874092221157972696604116782891167942992045848011270873217709682325070263197844640642281867892916590775743462182769785877699722279699473691438488121078000442432416214470176792945196638849739830739489664555263068046900331212098803912745473988636074760622030529037151087087271739740178008030549970477489581853149876929821418693961573912834080773783901606271464995110100458299586818064887171558110655004079540672622318576257134703156723217127115636581468504865359847448867289858902869454558498213200726014913986439317198181069628442387006102754132899072532593548849969035366956616358881816639960215354639779332783818820519645865469873107907663018882424696300658020715786179153610686070910086767795303637737570898941290318537097799842186771402308456745818846323423999556097664945109426607321925546717109296834087242075024419646876623905230475359835440866295775092862438399523756352863605798850214287195342490961596551940627613825104630004009204310971716063790272319294891192962158541417405839422687438636748991973895765252726995431327509993018850316450790787236803897668832045755599467083568157901000527882204276379360330108715206111859743546633522646155563757621211421143823152440161925449936735933130384058118326394465359921213470679495022384533699257006940558333263141165536573416966576736160468989752934545370280791980319091580445518027266070842414333368799972105645142159499602812425657954012833257954357098083118252476140524985088497942962414849184281727690352098439951031362198667128322359075877130298060981226277392724638373787069448095752009387518871425053646755374404435093176174555553949451291326666199607070396526487462278228125204144854918163792505109438226253096741883451638576067244436442161290387251094497132138552717151452180745602682665749181630749045211425002171930557482111732502619572143089856693042552492652284123578840384281687778600607132046359451289897278411282005350883506251136690508548810427978380199214684964736729137095963318986800743670081462617342486779101088148457879535059708960497230945022157614446361072691692196822920496265265973519642411578665827098154975879931506642778143124781517799372444712468764074798316763763114122084126587661237434940808011570671862334534043481862954110328388655532258579387700378989028800297905691141747325976955164595072763583327602153331369446348679240958632997846039865454832963407682381974290482181858175702046121765498548181525117739939993026026811247160985747105448749117141803839446315905052955506404623727379585541782094177092432756935800055620863119498904202152841303783914395320095812040568365715005462043937254160937807304865299257347694031680384924724531075927740332904471447671228820524309875112574359579991906547332505051681977411183095392428325339218949152802945931804810661427923444680288026423388180204133101785201275626162537177721403985594275394584367284599520534885442017453217789017679153477716817806238070865219512062013396036449132470130575026601054715444988101485030379597788119714174655035999364472168452640673906201919317554079478586396303899776869107059094650433625896505188308525720532871529711792589848608409446393307976183249889513047376361083430519037070459038325801821507912400697369976335851774917924524536125429320087635073222520667914328088934396122468210151750268054196672188942450321727342712299539020768048829759650058520671521775269388402267312695453200503210707563589348659325582845101052449420099150537715098329723182136670410521305322159062496338472863644951370641610672401451067040538988102043608071770250440504220994390619314907807346145809448022621958426675785377186989295140186887493777889132228625502760595582234828800286963869199553247096350863235241514241924634183709839651335777336567481490488927434626854885560358186350258347676360110361093388264855802367066714405083997934346194833332315658503410431302976142688977149043885825740016837869549914876982476073667137111811672294975291598111698420731729258633049631517020604176846369368661818116727719410746082138462503034816940958696408478338881836383871080933481845929447951115963493072163026499376869107654341830376568125294542404553538960422251523928419553770691378374098837359036419942149306395906594870160747609547750416581892455756472027411257862506016396644161128677728560881649042774019349885109478702827813962487346965513880661163740632506298717646288126939054549161861215467069956423939268768489805518519371357884933463938216452700228569045549281941953887955481229654085404314885916322845562099206058010790540063869981001047251486158710217028267790393870221396630416938517796618530469216496489750030994983033633434902120156791700738180839848027601521053314443254939385129907461980819312722330441625593431326514014780203088969889205870266577472854102778497081399205825648446944808844198038108821399200613328039701952171910223757483038028869432034242751522356730316237065928810738120251196096451703294939548532262016676591536896258473857100086559776729493068220569873812680523282418489331031180934354871965237531133847641138650874264449020306320762916633353764102091591676547458515221259117612719594808352500102694521842239360951621433166983104658059861935128905849346306173167545870444745242521444539922954744998845624457909102203003971121693003494119789184611456855743408081850616429763455019348363967131329960891089267536233323377097468515301431883967948000802689092266114844122033100092804345922844128678895506994483490462505806372160455574738726524853653642503801488087139837621510809314558823005982763540431283623783811297742087333095072098591784533640897079864385200464627552018333831541160863935216757460978713846304059779253980757072592066522180434006255626362072614400473717784855072020455197639611957919695299461628906921064759876464635006382845538562880589735274297900019387878186273272682006895030390232049803515818503052329660772437335238181386428139416802207731953486735831616252877450518419571326191220419809654064997473451452415703960705139916983055244636258084803074650783868462008319886663130600197460324721261170019756738081357054210330255571058728997976023354863600644944864256225806402559146697396060081010049108898796212118763612516088266378654982943554396256940919133011046016828168534716219575833566453651070624659456784069737728089572240505030624853526808240792895403422849440572383877301584864108713193618852542025019074785043524172747972183563834838259310925636171475071798857349374779771808802399060233881493983954112108633702825941613770175304021726867436675923774099038696099498379532834373300891314883433489707361918230592720885923178438971078057269227496804956537953587253035361840100692325588899804973443657054005285615651749490585199784812133559172842766063890822709390647056435979096925212015304383876439589826132186118130033983601721083865437498719929193961064642867337537616283088428521512388832980277218291477390992824496209758546042104800551545105082947549606714746337708465091221257060390602578184746927639324346684474582242081823171849543892711920105664437708935020198285634426009670477269758304188997426128177646792194819522002926185574872803818473109352976240581409179941288308535804912503884663801445219576285640116311352763255485970015824524604078604670877376744921321495840846467822629744725809416294736918901881203177653479956863780545263521746008995467656683593923710403787507446390839646293653242536470305661314019864265280344599272715426732909848919085963902533235121723268287156306836103383943050518283316442009521197759873479434082082432980984738732957595970732984359253227521544278724086330126236462585807843469628897371488231043216325356280919107706889936753542438329473392203915603259373148543015444000620046896058818298919978230275006948249255874940035671889794181505867380518189394872982707545156572274271458714583234375398144618013321645608583675437775755654272763180237108234296534421341799280314189822797851047559628953125848263720358811380203265324060086051844452655368846200980746998017710279369111282059399929767891512879642519339655189700054490733240407758435715503572608844248800491568665547625777380355448788680487415702724081167713345570806502782076162518103747751136606630428841205751101090768998951284050657992566234376844054260015335324097534884290761735978538447084591880402690886981758114673456733217021925480748694811698372609121104347120826855706711622726756073238800098231601061315192833458772849852428886024774876429284448093908053336271920937041358365986685855731074989803654872862186275187657792933501954645117781687043929765723089100293373497976973495271957653830138993751377625052591541215709147899167292030326416642269645503444341200531892910965164071053636469529172305151269282606142983761269160253931308762040784199743956083932164552754344924350776445020414236881322732365074873616148374797068109086122224777696183701997479504813670042934185975582069202183223895221332065101726163630940184036127372810855315489578644065911970295213149475152305341713650567628247017327781964840456486923334694434964649066026243060844049987187005550450641021456023323969859740365390765868369330257248207164138970748439063016487690431997441100629943967114732856695721465734102119765731965270930395240777513577789817516857913759262601393616026851441330175717000154036860866396091081742411072480552187076657333929021666345219703593139303874650839725020473014591767248589065498529029893363530239694825638452186321037220176861637300858494760470521861937384963904154985661431248771876302739173901076770065439360619934508233011293052581828640039502590266099696951602718230739154009799475428364156295276731324728966506770159945125066612332395946387093313216237801263642288172868186967244991960399804061927504270682244459631330284804024829107148990715520108013134550780624371139003908131734176099005186914269533672441454403442955796772056890690534328187202156538867567493519937792002407068606701862144118804308844252417076987826107554769639363528687801443901688256891293185756022586947518168790133284545974480032743295082752770198835666892161752687741263708521949208080055157203544130490742942743985662384922484157510053116367608313693951232821504415004111354932380897698858669604055021741894482752252642090299497432079220623517682072101494326561162677592113349747841013825817265702361811042121163096036421650584601957793966095017385190203097225270387908036023169520758752890744373954610298788130433427490083589949273654499063210897790519325008671312529446311138724687485363147735230961215170891180200601625619238460412287676134763710064050443794603048060978869529487147856681448907074546916521976388599854550112530347061775906991258037952404061354064203373374266716853121652768471158050175230654541436586966514531160543682808689180451377916862097318080098205080768549929910122705244108564260184705962965290191801000286773304589175816836285470877791504460788886788357379952489914687068317513472358996105528405354757627507364397903087434199810118803301685855678928153079864098987869525546231574479525155078451253474637758115505916350898358605277205878271145568508036905935595424509759759841474823042243500527846906493577974549573234029047036776919594971758396271874433663075324710079421437787748116376118821092029117697581388769090530844112648466211983409527283999300317907720437084681131628141280094567412639698305816332868762979748604723491127279898167861781410933344268743505153721891519333446432466019404972137323773252303451967380387126551107690221207532967676979895308691812636560869418698193187443312036222668430250211737256025049508442994655422792923622421173108920215869760718216567270658813987304780939502687914667860497468399590766730300994497601969257901581980773121556981004234472383571321414496963749463762956126121937911819269969816932028984062769163964033115424252412451717276215341976400106617368891563363035290789515325114747649188359557865430149276121516433482622443016722228712485848614015620486999534577803006356693024191377390177232919815277518499456446445658705900321958405202361862842330711774937787685545728523069536984381207084903018500406915706302055681809128196904327304828953385589272878403206944728973544811179422804937820033447549060358108382089659711793293836621015693170433428558270719163418029467910169284051797406667165241136124382200658798760388120144474843955421869864528574674607059198572795870075701829760689377589518678016174714773631545601656846129800552068997822301613464634133510396788400670487158622091608102380471989817206276930816185932858323693722577800077340913164406342076147012607062947077881147910556652319117723391633572124577337502532407076437090079318845142940789278563042897961444245045318961876063648325659183696133983344254257579275302817141246060233960426168469071521974039233483485446952384447682162260093272733335798612574114139401636958085625737244691330524424758757051594452729658903570347188737517556925485531264717066559322796412220470318595893199632568210470308351523991602189154886981259642114461083194959753622837908463605736909518535538682792798368523489392017127041407532851743799985800175965445013085271433773852092258229062143269639721922171355786970829436381515733322554870381478092442864877890728027150744029324934588144050418160667824528777121176572012718095293870920087159546571377965228186710388214462662024080782895716705213587409806533014732081627476737798501311900555798553880284789318492483907305937478269605395822022929445414400700175621738680904940858184590966217993453314908063255609705967897840174715380764461860416076084715573736151494007452954617270444798189587236104471049033810882042694273130539109084553864174984967120029613572217724327313069737979148748473442962385947061816176217433400810064791363805048414343229272840212551369039681984810796359513983795018786673509008131925885999863063647641492704908627616914966902744205005582143953653102291991732657956904184408740799421089175626462412747312617681426768181877911854714259712765282016781480098431849709010812181266832321985946630389677292376562595573190923850397191533155244703276041528314284747816064640353904518582176363784765637507496375117356656295231396261256543487595591050078148406416993559892489310816042963005574443738322666578747123494507637507917002933509420300117321195238635932173904927060597679570682897919351314396617619764398094429229319748079974252110616974219794140422727353287537128582241480110295234918346493990645628382434959958363292223621881996816539393637306536062874167523384018854077939696139775939946174638940765573278585058893111778502258851265444963009624958602336153407504501802848998285275257606689291677481942081871311820419643840776540187970084561992792786159245803894966581269581408535785377909084944080043552708161789821179072499288923454430917712714198034680913306373363574701048963043086758878144987797272115624494401601697494061200809499627765509893924557506759363036752965565949976590673671043079076834568262772801512579244580795432261930969589449668741479795881235204897787577834084494783814440089421117328276357450012893075968769181842852796756776296433270913632982194753775489726286882310532691241539017808268506320354528793773032540343356435602918911693681579591692530812703693372809691916717055467689210722239664008693637991015015932411634581187256790716955839887456403120197301010483379877084173247737493122258074501962682409064373868565793143865364452758010316359889198383403336982701340456763042352804142986284085947238799534089669326774049049081634490791669026125962011918579768154569230229457359743332606808573248009872129819018490797185573529928931290538027027294151611547288520261794246287839843453089560249228565004448517466472829978590096425041243893819858654538145726623841637891537568761506524546170253396629753794792251143052635529859100054756279723837164564392743151994627066037683799574512231548984112438640410671888646900064915714818286768105014316557002583012040822538721777792795472648571555549191144062504860856317874118909473050406201649373720484741200754319318183920273550017267859517020247054605206681072742043828310781067260061834497058828447422495529861654321076640041960534880630717345608789347337301672353572984990027145429452579786849311032971306168642359902285768942250150323842580210975629286150580032727254049994569265350316136470012967258175405241100768957328435031471329566966291529581004991003476918065970189421197119975332308583733133000195566356152112681446466155469225267215717931052251275485465098492120721296908245950060872428348419778297691927417073563568101642701484689749641381826925151774969080602341447557332397615377381769856191434542657905561922767204171163341558920198444840396271900954435635602427711764918714340249647776861778384818124399880065794962666768301031218406551838929072241733537880209559505772244961821393537168104690241452965116113420740197783144790856455808475982018577313829595889633637232053033902650363460723817431766785108017257694868389443125999472117354379218241175438677361769410242331311143864871994380958978740455134247634607919747255927505465881571361887225017720291763312578487311669578036485236537413982315829984861467367116019553809691531980943869524515791287314461403562803237669677232263372539597954046375314904794032836492436181061708136420017931457553392692741546530299980514650185521815001478786514154160438962664899544995583446006006295091821457270837815760619377453400751352511482561234208458278002817914279754988682674015328764184264230383798670696074200556662848745953567048151251327113378268785281625887840528648534213349050678666387071197518884757702777278725958813683321138771388286163185169964759761717500603767214828469574318924837094209925494862206355694667492528406467368806348295434677352051148609217805821036150251696099968228946048048693053265403731376577230256158798101800054267370950953948231608167674300445338578660067687309352114465218520106871720538444192376018441217740261654708876560339084955984472321132696069434930269945058907136763501735028363207478730164855611224909791051031742972897830233794551878442933731999122198002621218531412546254169912494205374191225576436813319639407282372478413622171735452034196246564157612091700244068324710562956067582232028588011301230431649732766692462593333376352610346816492581329972085929375027010954729107753229241883696827920908892597619125491621581090941394444189453294372421039076915320492809803235713859923705932430781153685870657402981555890273296819776346613732680834202247821860813642078057987314383656717277247704062122415449882727269450236038649927355650421100213383304737583237437596767580606287501014400629003120577483910550765139470040039894877614074537870745473401694009961313709678312043113720231162580463052882712552359151484649607843934999071263015063033539445807492941305279308266006967373144670909856188573733377056620144564425201807712885379553956562924404681529531192724115330828975817079655771131622998774947197367197801221072093379158133519967588934122720398858467111722806717185344608603858146686913641053975386639584886885665815858747478077525418275308133396018341123532571773678729244303783562104750029787311791347717510552674277559638774725282469723567756951724175141955306845678050389162168921158555611671827830573119364853526284639065710050181968628489950826040773914054543332118815312074916338250154322878886890737259599339243819560104397628031059615363633668858499682663653506945585684098442716671489724380146459337802313016875140800517216436571283407830864190431084020255383565471778447276301360774408239162226740349246843103474780728966455112381110748750222993443636767440038022434426724985342499451568578849604439777600396205588311234004791634517520202541128247029633937325204790475110581344613057301450443033971251300554724768449372426916382589674067333926695031488280532659172884750933984445025631576689561692207462030567472638464713214916304129556029522233763729824978452308567946060078626899238190768460410384158754227314914212864394110890786732979304309048877967650259491517955924171136514111436745182511883881856937255704299338177309037317295894111986745065190963239011516549980326820087556439219657491720335289627775005784178088978962339762532585337441916958873931447968485114016184059699528173774807581356923831769341948813944306161042376398713184039709545235809085033565787799241871845875398178508114661155139545238622614320847758139869894832339276958256194056927689938191894635201022990931514379800526185574855167449497586639435277773240541608530107107543150424996831886491112668881566092894195832585613715473806916366722780234328264589876568445090850758360114862999409309323233873042452982571182512537434773334103976377952123341994353107044683300124323941441763034887436061445606148557586386232942604063155644972303002068541696710051626527923262081304148620227067147669668082793754104003140208169904483822656618353252177141111001203624694296075854536544177533275039731362220297284598721853037754079166513310276116209553034697572498592815188405941633510054221739985133892269874013125911989476797183480262180085560148431386219170843458940738554233124138442468409726161403510043602147391918199824084071033728876322762894181389765718869220724447198771914784074227558716717157227496389601762892906615411901288143813630068759551202047385430489314555971435117209799565015788764068789960846724795615942036558001078839538549378182097217688215278023587561967921796565357715962253303296658033262774156637329608327755543755414654030566635942878805060232700984048388724248842208423559096083414004777227524716987027156189771894589109625591489407027116244927844394570148705325689603458916644741109577756560573939156864402067277503420695475183115449072460187726295333497327650067643646315216878119835446002371618708401921641761296750046732567406575858900644788897427327361875888254385737434046441193719193200138940857928210681038046323856519503714851554124730798939788162670729399211745036483255592435610466914346586171066705816193045041895759837900906019779914192421461869428504715957851873132965445686475903427633150564880970974511105527383994832593825370474800158415456506569660873627107612707171309326991330911170567458421996855241031098202902071703638960352420627802076615800997732793977575897636653688913597515500864106193490863556000258145285616063416748743363648486317052121756768343447815235417361730966809270851873604350648812697028242910436774714639678177205220453594886082366425579542027441103244235428038593509934546518719193594126153050242107320423176051821968826597208036847079577414131291015235834788437622012491009518171904873820688927394487887762016502507295223266414278433776238744191805959364751157942202024239100494513715082767072729845539563985079102855164985694425571329349102642000956721228493181598119065915291484543325914754009291377237462269603675154803960326708725558773298737062467196290686075262810407308894522526283056882972626076679979807382595389170008353149490981917056736645467920764120287645403485245848875651438585313108348945264021078191607847898748033245819372008420692019353032402593165577147836517831837543226510313924750795321928422413287648993946452296484552784657139885609589853259550955475741410090077308465329259903993914509066050771089535495471718318788659177104479440531392319669316453038008358486303447957756389829363937715820362003743536457312663701264711147978693301323277241963508768019376024174211849790462639571621652645554058426357788009144250984317127461246925422490422805937156013305980220008820753423887370919864045382337183780708927983118192844666077797381578832610734905727746686268726720901216855540564951113810795669067426823528484133228712438273602456872552431467830120338069295102843554523848880128531431988480982855816464164326716666987629606686475937157676744275967656694451004766320285289760188812715396394257743207368192769418267967320773372829637256028074825456861462484429935662185180445028235759921018775193115288774147612190708759118933063311478068651025162599293132120879339394533355421985415823346796182679750816411452869785143374396023150633685549252533052718416077958150587357660481622367701030645325143145170517415134643749086872068058692451833652340579547926134089516187600814517760614421783378540249252131237403455375318417995353061758209618295308481546755580761297989636361024563417393052443397119699702913616579082676823421120632065265320979419748784162430195008443918214478613883146353610212197967836832242842260075295085130913663739629900364724100281469496246486153889281375066224010947447743016135570442061962870977421957929019298380153101341719519284422885303000997003973998977807136907785338558244778052021487423438822389533198623951307885464377717955703677713157353464495103993909787037753083915298175567943114808635419114506256607210452576454474203209876837542425919472879477732589623275500520652533401479177989982269781653194719958329737989116633084216088099108596756865760706972066924679673673976716579801536020594422336545759798713664142543464540204866339611009594734374002989835834361819047498798316568340617991775909423392839361901707585571041979370185088926534045616302829227931691489344807163698439027109582638660229656584872996708596083098455965931233991665107088716184430977476665957012538154463266020842418935710959625279691507165808512433020737813100478566966730961066233438202654957224061769315495294648352557982954931001616437814807309463926789003574731983025816674454871631941103629954881716578957829085565843504943655261734321694914168085876615435609665368892640514154635765553852367882859554387503014260679085239430326620387475081061402594058064802360395790484710974584405103484451899385289328523633923368480330311171264373647673326249316817835657035148561338423213048972308016746733260613218775170192991273574155504944046678405793757101830405074164523440903989398225728945261003799896817167501970098541919480122158435898298289470804703121199121394404548547689600075662391556831201904077486092255618472490927505389618771624180402137666832981540536236107558687741375433823281168282812140494354074262073462431462551520356025764622407681808184961951598481266788196667451283625721414457260931376423986152736188769278113001474934438895884340402328861545654979033863830921150777353185293321785941645864517366244362765024189210525732526244572435359907197338815362028424367143405932164907252236504477625301510519335854152952515852273095656247263051501582660208512453542653577808248217457137030328622312366458194086795653088127682508257506730720544028205121072688478799704468337739421425838431715933388392529398115363442015243064724036512745992304486039127052627341142469727782169800393397203424970856497572850883626823752175820983466329497132069829275070082720746689371006038242299668163959282334639696926812232876424265230596309736857568540800570626945216351391742878827220869874567159239893643797522009332923946264833303893918026032343687958878181940410891246761929474827395035346417899434967273317378129657031680707580243036936426859562208118138601122216658126821053212833240215109726648204808632093429363844809369422572730701430507767562235299474917122790271781227015072099458473083898603913659188083684580545558474937300554245654885448023225541814315638196104170396317573979797924193331951145993609533119689702313706808591100995581212771139303323650300654722113795655166066915849919839694606364962191055462615088073435270614981638764235627816534125399372741039662566341199539424863458142642664340879175710320612617829445252907684155477935657656335878808797395668083579363873731989416127393392997329474998783263413445905208125443333604038688903445592892807621171914317685470785742375833340393226599874840703760949164404621678989846630549022831715479843995523816266764971956187776377463737256266723882766977495268504404091237879301925286841764397080527184103587433259087690926038484295608061831162618624728868483410514056847035126286923283298046031458957020167465892436261140539157249771614671333288392116217772070875205265716275514807942497807681629911025863908920804315887219456925942127430913536321139521808595897694960690344427708039916941143039802259797573320463946450957470621442631929234184593215532193248588337637538110031794419600756154113351674833957096845483341148516143442671191304040631958425115837339827815835247654290165195544150218833022316853375665862613085497436903609887537045161642761565128607573343246937054275075236126282090538085501367184590278194792468489972109846611691476589354972125947248743866478687677325343895364237684687837983503696657461773851593793031831765780098687486395727821097547962055893830700310482622970383164325422647754375698708322350488958514938365371987764941802309373309095855438020279439958367298069086404010937775461787661210798933038073661383982489634193897605772331340296636531894999870888731790702397933570794513555861315832455898232661053790289525571762023666123515470299502633330008621810222126246715741917706300602557298910165059750482077910911723296306871243706640828110180338094286370570274223613068237951493304147967987645449060340242154926597702659071314856131449155624712549364762705125178597324388013969211592961837519093165481525615431850159716479987273269820987241343386065316469873973752759502461728152960796820237361044589068902504197141184981402020332062721388662604780356977935595731332041286373696551619089019957617120928631256671685525764979789133379176540295133971704572837674137918525530938139268903722425735740432571764595371113950175089541013949150017381372655673720569793651979055421360603837690010638540859747816629846872219636578709602592595703688801020525694651334708516836780420342736792903205227285623548161289165685019812012507274039528972933727268052712241424714979387233490967237413646746999269888923040460677246978996141428995876519599615916360227710559838107896361024612853239662147797064628846807090712427573523522528675464545708066375618619815358337942429341970805216713221542172868433305349719535507122431612080797115473672954041970476032356089548229038081101501083702896758818495048053935120029584648928190660271662657389924221173442588152892739395782010785971065610837872692144791291612513610151025664783409485508215011658787191774784338860624671761950132635699059824588320978313223095476743827966253856560438807013571227766560427967578389071364585156370003584788687315389084077430241879111869114431153763107885199216250236904610883578223372522087914731347647065643282386601388622245627283200720289101572878779702199695828401751578329595075547734627823280498031777587671816319014963024312566603393260773204157096876654637856842829780682363440992101379033648959966138646494509587390104573391898736810538409371964898921370279757976350419612550872612462233488686924628969997455742855705917233998209688256428649907715610546718218373262511806400400580020971245789509853682821359183993079848006804686226426525507021147806674250876160556090538807463921859544797294223825495225714638751807616293092577363103670703170193946426226449835243545020145664750436429167717086046326327544623766748600512645388045096904500708866023576444065634046002586180921272860298400697554179442837999908499125148578946988961122162941731838111985644876391086697342369778851454269254421840127376235182734235693086627288250587586656064705246672592912183553555013574443791666353438512633730541329425506211492641771856686595624813136631921691725762924000045638343766344795382425502497050671705470957256113805120473378325595461875989085595708078026551363825796711422305260728330997966220462188658418565736457310865035269981660953623787455029179836803047564958782239660080562001884055799140760832359927526249159009739324474391226609055933498838791210626516076013831992371904860435764115381358694756767280379476387093364588482483647656330230814897217634550071669070343553210763823291134669847625470263950870786116959905957654205366231407752368228820511995291555716555436582111137977312670799095900570626366259625922821959077112940754519722842579948040396557734571794742026358041876499516110637626580631994166501512721465678434637503521398541331154931321228850657742953697564578436171430851493186824773623536495998516908702092144768503516737845092202667873379005400888715855627974928303996362268746451815132322403397555079144481380092873751327272015339206494616544623278709972604749087715994791019566197197550887987687998967973848959285660977283596537452435841432357291589206746501401952628998440959211018937378168920243383670259892508718587768594593106272880035491192241378559034202433523814274064412311323218846485327970605090420132878784065130369304356548270206768000063609661029672278517555150441721395054461577339742342665389632837507528453903353856826535981410040929659937288963081898850327779965135707727943758081447466128549091904449341013765490485629262708351103293102275667391197201115498709971618879530396240426715675034681778306920543755593819917897859862349658807828296290979859234889034783708101124220608130389667611139602786728764855179737266677220421700828754003880141361179099632644144881160432254412506451440232557217230362488937191279993151063815050633654493851694331183665631324685083058089471072489181924991991493000525669235670839207063545667289992878048837446203011280517016766386944697448467494850430263517375025390685785173358909758183560957138357490027179396577318837859855640313430334734842074626442922418779561139995343820202798793457699269752787133848438348163812733537932555521887579667314702654767547458319478946337014640391177828594719911150207821902024335536171387357385545296614463456417723644721157390091962383455965114088910860522004500321505268628268294993632363534593730933479448902362720344822212998611455673651845596096484439353795509054738767873566579233192525898120382833173324556938411934951185845214621366945857805919752414676131889874305971069339089232012860687408347487448933661981913007525356242679952720428200227467127107733678554855220958598068730815746521040835071524924898943868191935096917351465360476784398447996308704671309324972224004189128089565467350905579579264343306373488905285220082893265553588528786931212932238332568139121820182639187150545723363253317551732188042186575246220302909040844821306976487191559850720032341409310948746340334409286535932594679722312323503619257434142751804057583519212706003502747943381620522717596554651249784856684292371366282502103333750225349505522131934841968048531507397911759296072019994472526288557696120844738835986506129958395366849407999863025822378661887186662573752653866350780478495863296265253697282915376781702695709613325086946910343456080482946752190682886298742383955289797543447402338776340392879269316056217154739668344466351093368557180426264797736874626937834832102033330283300774653543192889379079045468669189761558663214790700435857216766127083387433730181521882703075699883569653466001797195267986845568098606100675485855858691446678490609867120920114501773702278113853788567093689570418633077415935924027231991753769693495255542254130486964319569309452581688440728287463847618483605506378392367303766043406465323902659398136699664660640429193615798527464943688660846690282896103836996690592752196811332602406025763856792708132131287081047640300885904019906437149983060326832670836948617342436605892959369555384726718852695420814244859481132253784349720126252913392280060923199995364802313197444948819096075122502253502932487188677062775863999764627352469771988395493276192234477409909111182412221502227346326402942598844617993468671335959381772070626971420139560084554469983771913444157454518660962615888649941272401914420741755919948510434698247889550506049793233272010183993853321849654681154750509850320736862478218458448946348756453570903030706838585898437951022852410050543463814117339214288632896703123394194799180086695883464717266829506080690698787298386491130534807744125026699813421606201579026041048091566251103870142593335061470140137164994333808750378177365776224769449311378607731308094397305060395813493811773176414741650669851212789537590272675226999602984856854531431794276914254996139638668360809319029886467057844634856536748102761594751317015901725629652736316375678128355334960849660796466903975279308560973105694140531711473032694693815134433917750493250003058810867678127093202283887692586104734475459963567229244692363511600082337559449933352032700194856503453680566995062509082371490332229351123671685694903912220658111180379524269037055492670752411981104525120048524709544837020556692589966471666202495567306656049721099385161505172372027052762517821901139886496541447784980619909247247095563059530893941546819613821058090194227517510524298751244182754933135786308499849831722171013466051927995318533574045399685700731795276324033205263267170957288835869953854905040537433717483354322058055022293352144234362291615451938335128606989444388453485245100221756807033334318552851144012908223838271310635202228107505635489699937573179016251105015434465415688093792434838984955258828705664194259289418283711320763808566562909392900804102011099772295499854757591801435771006114516636912162782687582104644161935245579157986643751844918191791618982327043087343750653334613852735548903636487933849102590070230758376549554660001770658068555132381830263219665950878221989128317822065410682949728182002152624843341187674629376390911461097392022652690832667802763085148332122310307727475898702571779865756568163058576021725919379156515406615594348943098528047725520053333943641914035135633137697992387068199374312818196821245657353435364768311888050774354580126122124576720516185188044942029582884470876174538089171513231491528804523068315772634746652331465747571242204346203481603833927293973612502088581563927817132295340929020196454461066696405280965902489323321872965531658462551637825263573956296151083363971196658306143751910726795085846937375534971548169598521975569115247314733679046024610772376239405347709640810841014401007620899460017832958410213630345792355981206717492284314708258837221368141265434300586574763018275787718982404814695007826084052687151926576812643321974570415384877388216572838152320526685748927108843593167446993497960227916918285844024184102841556408128518116312997900205678596824593635323403874271199019358231766262493839385117838298109144176128749018617920863791898538488392702748957460002586757047575493752756381077985980599474736059885408997037542937982439314509816698312081009662714617345243064909157953242978696957583079898698887137540044471501986175308712968792656079866529388430003453557362341129145560239061333688514264900029274930005841223357474260026061941326912700457392593257412260146469958576817367630268029845037764719555176128368224764895540779514709676723587527657486387819933420457845584355158446484665784771659543657240239026429418898593470755883916619100555149302322631236687908556537817157884167795793287697067714514248142866403426008695889690152354327288152071151437523935111760557651602557326603741162069957091112170061092426769536207444099273874129291663913409429526250933720591886104479076362759067179924864233181940204937525090372497109458276585803254424908303493188280951283391273981236953471259224559179785785252828014371904808586379010212942773277990602898303173282676485756142196980629009051300185779912689720389911216056119841413907482666274185462992142216672860115233602809088331804781860804670052489123020565808262853951471284154576997734118596682323399957080062159948389370817769829497221949862270879660936094217570802945648652957662404977334652847570773818284582945753027915222291288367590423443183580872856884032435136167585778712999241799938793203727161191980771723936059129195853814140565173932913412911331246662266847054049131175097895469525647365184896902554703815061375107738311237846954846595624218270346258185008218323743132818811208996495059473719910095544754780824855753370432423395159929240840945677834847998360346023242059754261024769028712829050126659424399020771572948897384871915302754661510295925748335414406950758331536609264203337437931589758326812031373311540629288589835986624547869351923326197651157395532092602175831851974885953302070164429043092238831909975079862052810503498449733989417898758774386713407250899483881673031553386719196603642507437450585696579377175917611601461550601133079506698637555988102817533276490733592754074531621640124196262806923793013922648123342883608210009319647746118405648752858395224937396373824119871533141034592532554769927721200186210639901942152703035903258470796412324693825215521990174227612815332982337867041112197442123947674174718865030044157918042743916086983796901631936860377759442050882523313772448146189153462183068763967358352267930799597215858374555669683189257190252900395273498339547707082458419982589300645921478117145353602881842446049296156133247722544534818195472865048797587183764359702635017209329583340370973205409984816891892671756770243297268234514296577506519608668676416434242251383635662209741618893545572829716337168048312869388550817906914821809067360652786859043732793881537266136574635828836068836289178897181568913784524431500120094975929644329721526877038084283344287236856283456824975216467035858314984713398944920086434397919984982561983007274309252646608661827546280041394211149857255603342733167099051486725424410859943898716844646969909596888339458018069291037311501895899204827929538668141132671285778397232816847600830135426744129103998031450673921614681415391371516475755869558440184213528819441854432820518244556920837404988290166536001419889484546058354158261877538830762215853072021384678502374908889145679532780556656311938293024690236857931182560016759966425838290790841429652247701388507362326045401000619475310688923098011304465903807542381179454124722180160664709462036018023465476347340977437761306796583854373307016704136571587467822829152709066007025485369815996950304692991797853289505552692405091393821664062074200834340648175103253063076834085122834486415532133233137981766272393510766467004450986940802838682914486051895068684923463629301916615958165853473835780532158697575622113339077944846149326864740528425520280383643614982794832386092681131023058436801725218793953164136636749428049987733241386007304345419723241715753358511656521488385368461531576173251412723752370521997379033744596094336550790898166661809920382270427495193729825165708386716739327735005218660434625201270432228152577354829487244629925521861279447630805661927756629567348602232099270198031280192724413388968234904817506125203245662888572610133275706822263142765256296632147321583122407566972662952153617013405325127473788403093863993200135885387934169756778378344863612267491688525422922572476150356500314728356084273633214576006267815949756817866310181234613313587024699829408230764301554477248094860395380179395790547991871667720048782636919340966211180867092534641094117489144774110163653625011441719639952308720351874043763482755255702821427917322933220889449886878177759892431000057614154966758563950552996299589854375455833666521342394327398868361540071389015367894143011148788697642107766706784069520189873469398102274847120083671465651922019206966507600959224352988273563124105792811940787718680120551527134958118271015244695221022555571395842246724186437728785295956252881567598892207694900730514586225024443667367873949439561978104550156815694586887772798174215731048152982963660984377411465376266845323883916834797708898571749943798945649989941607614761712387498850547345158793321851274582477839274171224302901837492549273144513914226657176748345264979497691570381861976555103397980808862852584502334129910866709719119525684677716934004432861732147900254258895531072989926427769052234023798914525061160246076758038465793847099421547532559238038795163121934958927056419994451713281536801515351925860769749086420760294605755189414296767951853769226383147881843521095988661208092091033323804912731881924340020439088626520190240304124261483630540190110768626735131093928893487921114568755180701016490768456945734981365850273054818948095776039544795879341175852062005833981451661520509725430221968581672570656829809301688744028702570796706402443417435600449678796330661654824042282150821966805716734977612848569359232236418786210219144904705226347070950951758458434531803835043457736375476172857600625280572296344777437998735473559365284358076956808197673818372638128556194648913552331126082056601378025309453690999936631150943766170252743025880997168681455954490060185458758523014318680175402410823357542190376433577544667386223655875376190303939719569527528475162866066315155784246461940659378428726805486276241829398840603413041686660519342140830919236960714894185040391626339171267862949523956334372903870237309442138131226514104795769681098202669217241623019170768630149453937298762646578631694062542795336142346483435322056426511599707581018160425479824302328856423958934687791958246956949223089862205011718850324417224740660313628363076016304986408421007305206675144588947538512648914182567128090784781902517577051137738769080134396493943902906393285199835445398655983083982134890767517406419517603185514795438079312348328635178042956582298000814115115766600038274928401917151693896533141933380264109876370595887987556713811723571403225826139224795436136450033223998252863435355728196090102118907469356679244456838879547348544937046681228988210311229222700670029234070922174743284639803849680292159134420961481796330810043355472664899921707601257490757018122971264247732199002336734494406256354931059962133208022441087724857043225399569256686250765497860212503869997493997339611545530664626845411102176264381443462964228208060772619977059814836360560845784797350154706733866836198185388731930949826528886644347668665027294936817854648820989488587132448741240732496672727662772256059798020436920528049696769220318521713924655339761547850527077434346859993727925339312973825218823157363282871620061181017257208803170701072169076436637655270409498284025026522048571412698970412194554708117005917903612084052870600411070266830110081272922282042207994662355983863148306730841048753803773123493656230372645473979917417484708933296272856856359048140027910180562513444999934738416795053341802595565205586411094578819679439889067134021064395725029596986423655591186682119130307108228276041585987561563108910491389173211407460914816596973069656971780236393657755174996317727173922037226612717359879459277509883822954398249903327839017478362717131000746371128684471257136619085458413006684329387634642617602046520506923526928176070753437901813665704490030731733756067190220204022653714318745342946120576792089698966047761588998076849955368479430050697418458786376096809335476133581833656127649640422402936108179537356723841051773207464423330837902850830074717793665553156052159621077410571395166731693380333706938652258791447185412205463736766269370818938720797459453980347325595590298813284583251305205158912464754091643736857228014099373369615551990029272599585459961585580991739258414703075145520833782245466853021990618799388813960721751512291165967668929876490951799259658164705026703714015200923154260299421334344221029082325163881234756013658459153869992208228451876532226914800258168850408970037659452805180196724403181780578961471790390569233597082513178193729268240514413337091255074427563339721053703451002355279860413727993989830466574988159338491639696278041136187332084663795088975277675434175605018807152379992669167711680950226228560834033670066987166773727961679815814343577564245206840870975565698945404658544596868592753936663967209989339495903475726527971417873793359080801255061748506720370341872449130457926745115742741311600886091254824388650647465798708143139037049204248172785656330509568989921194797762000615700388824324206588836691122285894226923059507285504569436594794544066194632436761320310663764994818307080442935994652421422110895439472522564121898905872517851029998457262867632114168440012569537734147265995104819457760037206617103815721802446852570240085312846232753375161039092065694175779101930063844686531720485397847735779310890337368046371307339523525536374619914757216331953492329704820793058118807377496186778966743281637663023702285957173149167328189988610922456953070705992224111297976290512582383131570461329857243510883216632321921121967944001272765109924615580656063630195352088064934235990681996783469215702011351416451165246819544037740094110023291803434633552228421860575792751024267364483806731842912437927835196642733714532981889072035579461919265042573247460108943011969956232169398716043313175000532996780907501861196539244982858594086970970507945906286557023882128389637520985104396370468702254917040358620761954484693375661571477330686231149991129398910877113773792210375839605922581645529569217743488355114492482483241664558770556902234105808370509190870033268485505809323240636172953346620203923007447748563003799780709907657267893627648673528587192759679633740786453368998736936688288114705139798661669952867109775320845313471051647664862239471900083696852654592489480903365616634356802698488493141537470806337264046180214295576744176389403151988481989031551798638869780035274289995310448996954455286351822493317145374366263099109700413736282384340658457638476032944519658598423303195116911864155654100879239755933050715214421446232392645437637352262265127285216239493522292322375550954095587809024586111821323041730761592864900017237786310761438245952376177499005901115932313706433589104363245315878520157987165061981501863496264405679390797066992125946314706664217466845538610925106606607609113483463005925681890464048415112833724264675499716546617253926317470033325766959618903916583514368671407912905663581033606083629730127384844544956316758428351327361666135247911166329851168897981111099894945086945191519937717650862063255404959366441356481201186633834568562440764629192710637604619313626826149570725942707629256854920841055967704478611681978991607253234064079523008543585501173723871702066084778444182425875281617207384084381567918192830299768708526076954638792172659168567844669996248670642871821214288575713802862816810652237510459605160264097791030875654574056354019133094878537637387328988823815934360223460230370742115094720163570012934289010074104725412636246931718605739982470360381680731169787993207106009317519338996274187302557795176966481451890133712145614548335678587222020968266307770152365094152345500060924537255262053987330185130672287205224232171247768012094195322507645590628882563172898612269147994150124282316427597444956913012069844514056860337848580418099308865854810725083879976343473973464371369328234205668392519526624878110208252145924789643572956914139860824699962590383511961244367742828928328748709988177810427659349566066479820353952891568352106627462233351718571975034206658492717364070604308446083003662350714808302188922032526736922089410070566532698268948262455258466474810563613199575288554725661428965212440498904738379403328811397216753378956853952277453153627439408248930249822898891773160425562052806503951900186971228599959767965666435321249601928183470867929297483551033984640344940087157944332390109693936282914265835798929835482161774704309934730986576539092669765184640154389670028568665517216284402033805229688777416814159733363623779908532378786320786471791036350357657792748638909836966989446603706437171369543080873824013904868217183937008157693759582506565322079940394934952457841365655068862435936488986151050274618268366243463883909210356482263128914325044962947813145974481197008281383524134195181953768275999752382110776989192988654321067419882981889783896304601414780279561709089746430570623249520420051716559456013905040701920315913380954677220496606280775593390480559398686198054288523052564590512425037490282751627148801900166333954953024587855869038193930190088756494830685550989796385666728434848343880656731716956539232088184624040715433156988059121865037749082642739342621696606016850681752249571409564537977328259235322365646353881826001676692607958561763543218172913401013755604047057265582856003318976655033314821619212264978054791255693299926634946873392010345882028219552662783991949573379676692302276844864609748171817119985507770760092784570924011239679102950190545474523957811568806910666259629019804206463898106909849088473345556198603611284954627352638400737996187742201321347162160749252491986840686008719615374640380708805996999513279906126616692419485148876322203090051667961417943713761223302277488617615069457462325007059451955512024545030324222742699443007426135526459069969119213203172885346432541743509008996516044512337119334425368629236432746660606135522895479573799000151685207289921155173528857257676810002873057576749451854270404497973018016094213828625292420846180918538094112228862418243637183147053078036267085425358631558949070739879211915843358424415754709626425644507640386006335976862551323472513099192482559962285568423207242008099662362635680494989707231130264689476570830979978826439598407045552640033844689444932535773766771248223714595894123039984885954055276061294906855946468414955485828490849014464254377581176570368474766391855198981279683059161566741455275392875321484154884347777176943033605112846164006486579962999293968196142791804451559137144326976486970818762972131699618232543576988819068472457221947292063897975950515023817694608177988526264436415544140923024146908440563760368221995775021932171529302091027219362384366348776761783927002449427829345770626438325317142480545311369348317880811868999779395646052957590487252399041023154576390553281692376192897659355516869422783031238965170663962988751047335056614266880575330243900893554681746525007181180733951631439826742524216686919992752128128773101311880408421241450820401371319919708460354916288284019039366557411241047935741145756061028532831647242053894687732731458004133505731165333924173464963767256962778005698860353964550453315200964292999263764502929725193833426876509084026356541042487603125488256048622935307205072196846889946680303932460145069654438369293458417412910879360487054170270950867014623546255944478620482379948938374866280484522106694498081247278153125603322303445558001132096270908088644253943792315289541743922948713624130164119529416321587379497046319751258658313692078937427833331955293305413770211794762422857968259909456843693567951340070821921627135965369078463563469739730457154825146207524894237793771680689978864951695965788353289185390106929717881468756740164825154279681185819778007691512325200484606059463944353107629333283587610489347591128147724237122096519839267090217539527103322822753300334903576570484455988237646836481837399565516861164527029812905572235017141411430842825932285333410537405201519422650428133828692490493842218433808115753414770896846216797377081561554416213306934801488417670469770376221480068522015619764017867569578113403171912091401789974299502372140911650356018716223836356018439486990373535241299739973371592296490964294316789725714147917785253695920640295108739830794401403906409009950152732926441327572504029346209832080478965262796288499053300016782376596253279807891300290539927669786639987858251931790741004250754003919769564993486609097807219067702376931351922797653745181029813304733135266977279350093059227665031649977708463181599833801216484790501332959161991834512331976718434430131059323973128005120823657677530248212092644366516933431765340335533911349274245508365940151054395835502464035640445688212118070632765707367654906134624174847398722558873696660237431687395862265890060899911957560492519320142143714022641010026240779756979244168536447267650489235322128159113182516271851115702375522627648149226109673596514420754172445272241196490382195110971128083877767431367935927712732239431606778548267695036621742405904527338731465360672540015208745970886170176160022740339744019849980401170740622486214916367074429544759345053231175297474665120790173710652886578284320278475444754358288384798444190307780971131966565623141038885992535303287302037476333546556811016066080894041171908322430761594379331665365231696010790195468935659804625598098548534774432840241460847230827169695960531604721223137442582947486655704563548020546482106212421376944779484361176208710834436396156326338090294774614832272542539131345368575657835436943533179231257950779863666494666874815954711376396187292083847898214883164716327153859937425056916789976873965694036458183271567833252351391675052378481898427450004393604729017756527196370859730674079058212199618242320384187955442126387001239984148603747682525926941211354552291728811482605564526091039769960829321160681413528997328574808189683162273347373062264137630471217697334344585255586951082090413666764710759777186755827286790214777342531946962772281528807669758754384992513203186503079145360158827247674158169828483239235813152135020599258986710270522910112900119937549468090883117412416235999282444094195009013452415557955435623861462159450952911458998775306817313161373821453754307546330093819963619390110756606299092885013491876450305351117303178524999200389597988401000761370301527417919167160998292205931925954087510989059308263606336332486802773889119711081404359156866736237912961671230620967905034603906917633794100980076243430332381785649676333966138998782429375614362129587762250239831093435961644752976014382346901795211500953187549457720787534474008210042471985876079258308173421741978981613105113526583155696483723046457668857501078131166820599407209388021708726257196703208904931664926492331422632489903971314995290348009957190535348496220315384510590837229732559734958061937678575462845321361371740884630375678185013901865391327512633473655542134372292079879362553727971391574595379034531022914102898538087116873456369515991406223523895425704001883700772608104028573202977827770652803009940058021173323929352671842879584247097668511880542816453923451895073912548901304810655413017832414999052011401084317913733691861467092417317099347029322115137152371378567738084893579697829969944727027714802926247416775911540671867210464911688647953039854534062204611839230108523595965172978896552366571123577049498557081649139993250850290912732787945576449970402959952637131936641816701899725243822941393109477696061670736258946704530591380284328483516803327975332713576295661606486138835461729413078698310592537335735640635402687340333713476843823840467093481701721333703926010793305096343698172090382748155680405272078946549088302718406495283278083099576883049954558114402348974978360191829633818789669341747073813091602700961662249766439589920642104116312905518969347520067921066033553509852322883510135313149053073234270607554105935949095663447182653218740095025959206047975019396206628221537605324657954486017459501139028552719570389861024054448236013786862756132362212873294909322692061662298588505656539939295892166612465597908380991963122758528141246432529311821716325539989954627475857660754465406516082315582983692416130162316501387304865550437221419579290152580649654967558565828385380406768894156206613266413499860184962459712680788664109125765220523089730432030925789496953378108523329225522095243547409098208238468365135676338160277260699292216628034545489538951995842061020059893926863542366129555278328806186356171365522960983953428409846475880994544552949327321358401073955584853194973563542274966866240600813284962972242283553312696859564152322712286541782442577227589080767504958019023882142915135236477830469594285252440921573969929278708158275737746737076368664768885238310441431276390971818980805706102934397403379336326058305325822885471172093759214256228543946252093760811890562703975689507558156832627102298339093663998635100598945769102712470199220503852652126273311706225382241686496465647483818671504847869276049177939085268292543377561355204235213508974062078553330352077348194085432361959912028518722364167811067291237863739851681780510327973479994046388413575107711917265621132766696088316309094379522040434692798052599916856124375885066015944768402334408338367283456349880559278567124570067306657759854377141655205969403527148959218242832854042217869469649505484747665635802379102541537767363374023239916607094800208074970628189493273052593654044484766005895210688026195479086703430357390841280607530697308833106554819695340471155222090612709671366536197526476834521307838347449234216072494309989088347822883103370353675536783704017982300198654808118079935400195085785001366502565458363270612621170923552881269522012653415790573844147933716267885280506354965390154041251175289386026791245775117210978417287849745834898798762420642336870090621691108342496796469082309073219276997285177767684476170400024440871816071450211466036716009173664574701993055165037081442295098470335592960002639001450878838662901464799392153573361600412624692155621261166567802275011498577767683589354471149206583962150201101613969102064765397402191246843917866375292776548418089822572402635823845609247309088618743676412841672416167243138782486828095150960449213716826857406449262179982308011919370557619062243220302142227234535869109470804838586596225774332846262836668595529179824234585868640034688237779172323655258652337888298005338868977575876523981490643485799419876285482641699766300446343864089449150809239040031571165493886939485551306495662145607432492664724733518992081501554260387026531233772978615980659822149699419928348352766574460080445699053178627795815545611116522679673190684869132234042472368166566586991950976074741293579265904940002767721242795679850365611936426353957154484945425234868267337861174157051936933536214416040870963379956096630381487650311951290477135910665769074854804727594392145941763204651627395738064187365630018959710519934136921435579265518431832169825670926074546565530417125181324116294104357898639955492145508714744006583294012227241487176052436529731287628861108317617343712508351042788865955325992218465327806716179729816804877609610869111744994265427218435825288723547615570574586703795010900628063459999184727337446864726976813608814123410667334414503168307382606265272901359755261338609029758075488302979925872701383800183789297496082232381762631765873146240393024366862479072651136286766691900515682529684893780845063290120184170739785110593201607786588319430157781234401207180958552044032010775913380402001042101640601226709459761115151374799640753105721875297194839696753044139151356674658301950449939221418750729712414640854418836672673821454139282925705202215428096830975397198724717359505217122930250123231230584621543375016603796891670348568232153959492805325623730087634001776598654946936593093588560449198625631003993118069067187834629286926222373740006666553195003551542720026623223781890995719348579268010162183878752555607972604739934768330498919509844589090434976247278658103008307222699077364416633008237695808681465853904149544154408211161291915800956582072666460141135641623735116434569038633024060107723601939449867259566472945461324611236745170447822028901463393029346014590263780990481329700851303243537324228009966598701482879509000156716794308647453920680452941265284011282741349151734118431575940257498107344317100336894522161598157689825739593308683239355783849871999075292839212172968208007830928415767445695852266431844640301464329620031849296596166184055283362045876523158423452389751567605847017480050431666055747285245789724100130322750253341163362152883781382953417920815100215527422567702824971920968354533904354318271547368907872096436068463096386503670705955193983436903193497931997553711189023903408623648936574495377758603495402617442139015513838977560849737327200046334193519514878240197309993219180689877444025481809240099654288482832006233121663734579338987112111160321485883965381837525607726399104086144215216185567231883392775059968806966560046628589435593014722527137063680914669514895975396561612604175076710591850151104114874943158035504081824043914823035480108447684812564565617433485491072641052523245130769032943507301227088999820507039383166958262847100231695529249230438746463818653254935062269731113912110413173242434616880572389916174436511577134741784634827669345590691730352113047254850285209335839006383632842425102164880564766729811398332321630335027672312897357239007518168422642162474169995747952467044485240796632473410413009847731522491484526262742679864857653055152684961243691964768884493668647522327868281113902448986938826881624488706703006786725556884361559088423706725447006004754509920350030166817981925900450449285378689276060147733417753799768773020955220857188963355415136481820971916037800698418143669812399486070110952005352474865048054080836590453467388353523500529592232851456419011574763006381234610108579542862490685300931144116274352780858861864115239829421342151758821236778050940602181012915139383464952078213128297056455229623788691707218002951094364063369473673257077758402483855425731607317539705952153928701871923847468460024045536340493772728921718077672115740165545259329916887360058230569406257073008109924380089316310465856850871066783116546849654494822635819270915416410445602999315974328683571615528887388592837405546043830256784227598131058523307025917782939230548284067421582178078281269313344563581850353101324265994619604843988246717640839088517009130441757199027011099920458982440875170637814297980472344871896158169581072867610067900100449016575595397650824655183829666547349033810520266224434037022445383005902597139190413845958186131794127871319093634577428445576935109593398575987256250083385534360589690407795332797542106633412297462338892075972715310744121717447620165497623315880930524667362006164639789974782210364694961749026896648085880755104134799339153824152062235183790211684814120235616078795469950720494241082813195055787932022426523515617151535971402882047902383388774933194901768038736021139001311268478157329985303396552741280272895336673172881622410677276515815270483729405680151370943731343482087311433822120878814837485327373857764532898608697732440122134654717771733006690081729869486057787825480446817746938056578901769721717560534358582845122606562422635921303444459423054913586152413152851797947523338559136404801610891749191227612165478678974981940246383026013591040712404002532204274632826655955262852242560918722910859993249427431927502653844981579795018051558470781397647137081667612653039990234506340269908623160649526766868481012594256969768737476789991897271093123810908681806694959179696538278813060952783218773759165431922280150368496496578002669061921324148288834786915452183770108381300434327551824252944999194245295522743977882273095203465350278462733568151420429327577413179513718152199302413727957717125514558646647370396824504209098759563604827242468455388259312622070171764907263914177087272747875708788875603433362409556031337110300210071812402460909298199094730523120288744961920487928758948806114540010917371734043210327680907352446306490015747688333764601764307777506949157217239963827805792897516218217719797958111543718773182131442400704702025676597317249509551150613707720175913817551968013696228184533007474721467974625719196075152474470953283611932273395826450658716760977454696299627114105996819387907981273736800408497510580017485998842058113472480342747321439781749941363399512292880217500268286353367371956968135786807542166527638280310215784939169507860459228301596670024185054629410667246658824127390605857779700409711832167582256744118944770491377717897880569749522239201168728613575201745469363638902347781276916429187256206440733791568667719382991831567677940807147644528109670361222480345025446464877293757636386068532347453135403100777618421000197083060597397403202561151956249637808261883594809603344766390442846551038250299715454697774869651319112061182367849285285455848818764281393393745393432987747351348880821277384406625460399311018820966052061548870701243683249430136221424012238696024500987069613269000150746101491626696349560703474072527491185367747225489707666476768386743305763228265287135478062102361584526258955547314724113255930303352845977965768442845778907138569054829238001982246860072136891421376612466634308930846433134981321275069273205787562749067182109612083207614223614992025348165046818922762585322340380013673739448753851101446391776866893953099858848752791822976693153244972479502271781694330703501959131792445949000143873064309500903463825273513472899595482449221869642232101516596118185008604318293075504132740627149663400830608657478114222923485302111820669728814666137935629427100915072763476758960622571791059218461895015490944508500323676035788947128867175556711617623074091379800772776546992291353038587824592065038005629648522214360082851097837917214094781772018163012718446634572394444863199370897432260721320507419696607166713994678715493871846958734809153824155234470210312903160368338741205793006893574134397600801142768307767272432465534919914623582017806911402022118575254426769438600838265144583176656199268977974795737716137957385970229826000128595639632591901207360068643204403848719821082221070578776571785231781638879951365381993749202274496724835674999573138143396836760237509017405059363376048928727035024884966472872317851761966770120740428268012526815508900788863223987650417791031855668205029488010589551130451852405505243347775284597020154147646716721887973964187096100295007691198978347613981903130542973096380138540025846422590375022272840585550518745979123819184625678631110058743905034294553689012413015351258383091561331590888491789946555952176608235686005635960413516666805040903851675651710248356948421549464274357186119642181070317377620089368661186476630264601617446101708814508638753588155587435411614457088935391687901628410458587610360272913886658143942625620210330830413641972821767669920776806921224829666163522766284658148894737204093521252887491871796810154765029849181714162636946951525088877532436605698345384631279285974373585364483210935070442346005428576261919256233663615535683691748310503925264712009263636181367276059250219207178236164085762988053930271195359129015033996000351885499115674792078697379466377248627716004885139549743131106639287522667000930185461314230607914352884430771355456077910194922240715407370878537612212513144367704566431315923997347972105834994116653493321213063388496958272883355248086314575511663486037806136524732615669718258799982333438967054061899875770035380071648209807746705705697792459154166249304849284136431568290854057058438050403134649942586070009276904502507215238717131021203068999943680714979839308633096597689220554827358213411324489452545362057726053707776482246540939077038285722780801774112326757310506783955492568821482945300778028056163987378661519142107944865709118263334023354034225195074058794442245084629536875371272881191015808917758224727236519389919120332456951481598038822036940719714470130997851700519683479057243816358449847379758324692404393848279018036787797786966950747329689115808144734349771506387198592779616799838102509848288234769053006723743393337884589127039836757986427490499194746597440421866520266874957202656468283175814310927446086448711762259918776583128180351914288326664371285667678719317872156187638761455032316057112848628464282212349983133961591980141683182820370411563922915488946046525684014700157974907594456180362631671188245403297625074497289964072098484346756198003435531020799379941199693333096422648853186340744001961882285325845487745993760139323291341999090093952508949904047581884834593552520610249275981261245587472855246251640482452502090316439506751954754954454908376869992476765955446958076810471128134564911548254956458998717800645598203445474186323410994559587425644131939350461924196580867505621295556163653658185680121229907693075727760075633308030244636667575839366681741804914598657841057627237599532470606814045543376872935125010833049668336328343426093888932969061362481830291359291665071502265881279685104635393409063296969886638700325338362203103088024211013475795889286206188000774794159386304405445913812383022437657529613698211853118069426021843456265029991214785089504853191043605754914172367437038697486744793414385218418043537591568180198472400552144322662036004632359590568029337674213031310517942418371267690092228870171545861462514528558249217216641506942136954355201064574860132326177998068757044354372202878217828512087406163591616996857109339973086193535042039561548607667941643107328979031551001149971745498784452701834180397313130996666143899244054745529915932735393162944761562842217649007026315627312312252706258318222871231229976906023463365426307953011521094187646874724747717379913507479765107108067461288995305891960118659591112923469998489299115398682857325834091226186319082958853759490398037066011476258771147864141192268907128776617960346541906031249010794373511359486547352871092529728847123812043631974629756838736574298001781379664266691734523619197479613303361415063931032611752705809478069881442715644700638194805439416841092655762503420715415251907973905723242570405898551680350684206793654492882394197208878600181298383982313026734497550848633578837168360441532443530546831892522315491063644300649965303537981757942775415521240648969825143451983475595041236297820433329448798532276488392032823531852406863762322043951039070895744279582203444372309194953229672935551879563273656605391650582453365030360154916963777292069308391424634907132347066671308938257445364104745640457187319903859870939395594642327649537699485483521320094275654472317793330002486997655479245221688364844400543216003515413786831304901619918046105547249724087462901949005400039679747615250454167977850834453783266836875405279588900427923951084172433639566661218008802618059672624718021519105375455138654861574309610638761360911882820642386047281820444589603485567626077987663138486675460479718848964580349051907244616539478310978758302901961066012184044568854650616459413441026402888140757539825132518907162562841112371641176709205778381502252484636640972764841090556370963916981089012526024227444413850686955367350125917184084388341661617877636745870542321814684625329768418517233116736348190806776982839065659171939216491209661356142241095685566270405021669474208564249209610811852097996518002716702457284837126131073326152081960848521718400127323067826022340132367506844706028928346808810276944016086620252560551996896471284599445879751624768114209177165647574103156231781206610114625556432787849963522090000489457903401978792652731352228224087034753668231879684927505114541596549671938820143708886017921454508722994001724100614271127239399027567442607158546493064413474400595797377160637333388506725135101074313157790721051746353237548407743858944193990148606496021287216694102841216086816740945585620110598467435127330806956644887895409749572873482501033431023799587408753172345350320052556440505198934794216123943430749112729172464137108000613486413182811387188733847896006585991681528749027581535125626077093142312464710070062676570533097714833692676252814474363479004681268280209346514978445954603751059119189217970949905217656602445066732116241733510511720222638293023228012540242122181312587337111784198173969897522395160743599930990116565758790479385892557530780303975517172550069174759106002764237928649335375774219164454198341868172928188487443151351374663896777368090248645040818740303531174458635068499076039948500044283230614499647466242524103486390959050833415796595254000615546732387077980479544186309824324022725244910222189935272392767808698980494172914597299149611764954357112055681441228078378995967762006541940746642305396992357488287812868908337086808624829190598552831653695933813859050360421517540682944766869742048969061446108523329727196260758028333735169805900647373609620377806924506399738974194193387250516479036279385827620050318469341375506992089894646757312620723564655011656047765712542294502172207002557298950263988662463621317183171623552043225399240014387452778188437448941592361075851026490097973848960265134892368455710193676276843513028619949101224843349393664268896510146329031230714644913690936814642818495734622660437592304998560443717138566341147343018600618317057247770040831140644678270184206346493242967476939946819701257638831709147831050361260465865126130519222102554577692797542319375741603819221064458592945781657398819145476104386366425440798757077133384033114603546828945321135337138056243854988737126738686276450744378504811909109015825326193943856441517971481042012540952439258345360363462568526336966797365418464673764517299203933979069584349439588037787891876848835048402221927214847896383303447203873270857309606468346822625102441452074186067346263520691552118200514960140853915393180558063407356601519576815480638898239896997207747420026127358867938545444410500691469049981579379287015299122316492467188457389236432338580437935701156172796302755854821482216550693203414187693847023246483996416560196565229230775120999160229112975446836013929804399074638973261190648722671012906852080575510738039658451996086826550363861112623390634138613470981718374924812759344514773691320601484373926754666455067023577441551015902818464064292777462803493276090078279359746862320343304812611623238681258976929012228807556860648328919360679023292966207383034237853786040518324515583018809313989545069080507068793497051709102089638820304997816177360360444641204035680321615126014507974839922574189773963325727412322609391477713540574833981084704659776125125858389510324983968874050004546206628473506971893509593199819434576155673185539305813074930118207452652475976171248650756740327094836114568865975909232057420994311070321746352901571617288588700047793334900439483052269936823246069471890606334667351442384738774073065765178948765457357758383410219431547440033948687387862186064053841463557462639864531082929029103213998266377927929646514841127524348271425547681075620106017993372203304074127891569736951962252802207577784675327109049306770628517126380533871284096626630661803334125858292029992364744640414807631326745041175209015278405708814647712308426615428495850367611906352586710884445501916624215682789352364545645948130140070248025175505004233700134808918973230353420379013286935103203255059304471539929743423883822897188270700107570584098490178300326316168071499116006823804355778575449302639303318793417293081933687608242538673594426121396553900548578928122156662647624879798812540801654033088541619312888006902255449803924183894779244288657202726938715106367592768367814073332482083708125639117198416994884467054307082276042820023980256448212780005221422002433410438368218533656133485571709034434693252745314118906580926880313688342676535636012242487938220130340230734702691191462587212554700726586158356199084195456099189546927504974042715692694441731314263870872832728991717723791864127242088096615908592584484070031264068486725510350422283874087806251550071994251671940235358409445174067189304733520176425484683256589305132350004790904299073822347374973102368934026012196605046758343232242694527637261375068002562103723489203055646337667089221478383591801250107321310541608388448487899433861000260595221706001128652205192908749875829005801230343212559065891424176265208291497679533588405729461414798626357017175257609217657528107941566686015476853573308486610973680861843841386120854423171688120036752927814234788721816547004726375882112840585710162611508346071508075282485601119575132668581812482332086498053933885615640256442907296424641814431514837790857217475113421386327844363578763056919171320974313799843475061199878834823300889639719368672709264002194524483883858000900442890010059275366940930968440909992257840853320230984628019185008506342589048766582904387856680677584325369548043316246949424436777494560507636159189165085450479437362341214170800810520649833622184112009269642206437811200431635850698969288112076388171329728496947870426005795446462323097519107377664873386428548049721630506840345789999416351136647511907791839686611955878605724588107556202556208072815715962505124317236349323783116869671777865383321832656746640241297142841220512996962937840307491503872383570564641763924406743357790024604191119923353720770610346761467139316800397326305047639490903745128153349673762550354787913000082816823756786738261854594355233601286692114950035951593063896125940027566999505543720037025511077753056546322112748449717290032103271266861295929097184434592930411802198545620894601907721380420568986348257926897481301345442795500132883157273638307578838887887907551730736632994792994878265917434191907361658973306004791588554588181471239257808788527691739701493254787921534620682142458191977137716232143878876210582226335548553546943827029217113517711911239792351183045132882309309617479089750915258995266605832056251640913090577017919305434197514907514020459984628943177333884651613420615776160740654307632210124106745290559883354337821923930161413461017394899063790407972191723594602350981602782583748056912698085746637784404006848852857735289209258595365449450610863481749117217606688688001201903602858823780890216689447850400233902627708558002284430472471642104735555450480329187462700747031654941752006932725109624320018087387972841037222227930942297800469067863915690872111014620389851851703634978443149135106314285722839006871819532545631453541140621052690961980702851641302345958063037813827195431468321611535610284488697753079016110251438998642227140676334899272667932299408273183056848531770197740138430290589250483946193343989395588768587006265900971658152833714006789685005172171175376706436752621664886562892821529164708236144003155626376094785983154303908981110618148719996919234095604293899626926822063101682401857517992804300496989775105112287457428363894559704980430681924645649685958034474042703905924652778390268759871217745658758315927575124368663586366393448922431965954243405069557996774478611978408047329359153253443572138286792836621368520145104917969504026173761402259051398757746949296767658902657305618681886231366934929315543344560778419725026190839265264995354920879720254951596539357170189952701772432484424806854215075613401992928447994734905646598107923417504396157066647147846468566558471993703119562371448694949077672726085788092393581332127114026526353315601024601895856975325342996248009107303616591467248672527047275988063689143283432440876850234298438074619863120648035592052280524376848228022051450836093083187799688312114935464950755235346479915921081542908687503540486963542286337091887072178187349041223776398279522832039820442743728500411409774396612610621864096530411509340283213589646662511232327887211921334756060018266101970221401311400692465023349016275285888815389776434137842396438591358743110473530335111213355748115832038333286248352246522178569269383284599799454134712716491505867224459416911411729310557584982440245493583795064879477331590261072799795766846674753092240117248810487877763590008762353919477929196296387944002381231870134788760165083586984585117219419337569516737795271498184068654295417321393708875260210006684652265292545792868329119263376249626274509448004798998277117858621970292613880414983739068504490552810753061299373823719277784619904893454561648614413977717529337156363937407338828585241325206951644355484863680551226159660522993177663789036062475601289040494726578786243457165682438432114919448633976225629108084552057869442454115617249072361537014587481737119468217292084828429095347101890662577152680435566688799316933582875748769243658129119559004088358590015700088673868799268944738861873421037683592485786984229153695744411426728277705434154844091816061522635899482743478549158583263916927014256217892885499647973750362553082889960998866724934384575313887284558902562722713534495550929086997234755468232871489510503304192677683405089505757395903778997255227100704132448073231259267886534921960090652541567914113901327829914875656566539548602674009969514163632838352264653061721168800251716083584875551314942414151206747600056205206162708077229172065341088146654012137434437248403392993668054789780250747446382660712538071120871002968173860811268938126353169735693984002958152276251063287482363109673353675449110412158262397285399362664720944194058873504147847270575219919042843540016329885698530215469967715887174037086026632193035638602844216297772712472022442861237250548741813312104997884567987981811408762728108535279459055058763576328819122482448262022912020827557515581605795808503852732027540337087331281539217163772537859896703605974142064956274511993584858441878877178862591813340273074989176244168666143295103685055165253076135377893472807091880660039255425009521879969144036279919292240734449559680848941632120905745819413343254302577085251045432855858347038078586213173320515425571129246507361883819252569328840449409093183329599745832009340035795979998817545291467904900526178015826172264487140059512757897661487997063161273407871648102821307649182594120573939539701695817335304788511551993481720487516233281800411120184626787882433532619297058856695219386558488776557309798383324366587039801175455027543606538066756377480063699991556711913926647405444898554943763480947605473447939912919092228304178525124435061305346042581309451539136859265201377884236404471123793651725194210393825507035610580457519972075773210482456867143232725356394423014843889460371531640152334442320409214181108779132773322413331523283788163367041006644371864052596402420534298088953724721207293725233381392142323173829033105116016275255994990099561576231580359708524571603991287017564232019955110671237687654448984341323927128881717919932259325444837271048117315547603701817168000174908609695910426178225064715682678250646840724360308064295246670650073013559166486564686640113247729776485313393237912501170036804889665084226571039338756636151631263526628605394524786994358161339963295903689962536250426926585915218809574699282420484015017210737621430367615668261681661361922207464645470025893282241978402162959048363586889734979737270450882118732856881668661977370320921003409929297540184051727677304936966572590736941636078108502084862884183086045252016129749596744262993340723801902478114819815444181382078343368467610092692564677020660190688388706064003242908317283495846583419366174993856367568527057642377617541167273205251154420167084329557360183988433848589309214518994768608647135972701422184498188142632236632417747148605019096131669747560007889048583315557974085196671020744945930620466500324362420259951972394709124883347001942698529553168911269868001346312820585939134877900079407350242020011647657833832776125104716816000378274643414914077672248428438757944055468412734555640642198302531750712623706602973733828115701868898352113198718257625654619487351857144074349101941870095968430604043307766087611217201161954297984940742849858958776482771828178414148170888219468379739317997005553454370343895066730037210004919213904397029205124426601114390712966830049008074899866745111863104083937804511648564428802441956338774400930422937305524033350783475840534943558526095380969124869435333379679251925270173048341907109826057909306437789794352324428219471008817742034691648597009221197814396795804963590955529723522233289170675147411491440231157682003984035333599615305594999765616611637285691882520639999607206674930244497569045593134086106424360623628062643323518764467794893366039261225607005016961175094704234766159859888798680810669073606039577632037288937586801949023547848697919154296604969959236186319402462646880664945404795099237159364016864081890759103007206620318181738685573776249751455094791218972586862214691150530671101899342335442285327994967300910471114119837960507629042336434369849192120519199275152706689396330736636123042120735063428686395151254120178884437926291093158582448705901289332974908676995034781825176922859422398595541748055848971586470628006063158818905225225253948706793898695077995662911156818250138920444164155356189182898018940232380092792379593786449529277636488459642149861893325429818094485626512867741416972663197160239530203979041834431732439897074550096672060572333186683695417158779944875748083002368817754683464914562804391297003170218865373763568643544534910548624463336422008138922679961923704970366674615869106493923060770702231125568000463487484015595141800016598742730338241369111914562652909400598249091494567578628108979316840970445271304483721063555522275133223966739997655449212060999076688310479910850552884857301009411780232805672128131876303625193653206535695252180943012798359572049763105541299913425466598393484255789772179932166954528799022917897090932363388241251601694954846492381624283661845875876218957674391201541514855364350409339042082483709140590240205679062722088575595939046880762224435976754603106123231947564832780785772565707784111429264996646050327911730793217096960561962589980006631515568866611609021803940858397199394585140098780860843968648118918652779581391819878684273716747258869025383320027040160468246403329428424304496537701055028689787953001679064361438078619437679756557777525295237287480582569625929847118229619378309430673358451340947789978527147806738377698219035703828844036290503820929455233908447460899545397303769561002999812494036527082600609822587642198290350662249703662847124603314401264591611178960447949358860451722685943149193337614960289155254037825408418034613982771996322620788955550618946607908048101308731909593613492582604091244788168989856007609949779490597473878465389342808143298505917787533324359786644476936981075839382665514616937355057117283786755342325687874107888376524358010264238146154107163822328451532968333678817422396839590768940662322134150029136627417439541620897928264233768608404148650827962604235230625776011508367562912350649742463767709024360081702014225041191619558581200515048196254606321364442107729986680043541143253361730883557935774856183237619481417725085331613456253319938059325827612045909675124902095522053391737627447652551606289248010551217563204255206747328126731059379822319006683921416807496852255846508370151218801083911497495759008746343500410389294817973307828367204302695409861321976418581097983982728310557760983195922213902750048087512152386070287796206665290098672391504726615443896266875100191517589186367199115992295591563843414015500151963577450478291289509660594499935162790212325604386392650356201322497221387204644948268251793927499160086756644952041680122422905201156196217054409751055455975037555320871372108582643341285138189107978648775409670644852404127631583841876373324850736056371498161935689649317192951692148417877568316957390910131513884907496908530790966536315007443249337906330830037914244062991675230982225122299450716242749732751424536424708668166429823108944329227524817053347474819238839265422402894753653097243403976399130175598250765714186624977254349467925597228188153374527858687934869171310862036658225591497287039594029009204834512651301515205168838385161772078170402348655586348428503966918713027592642152250225364607268323961668799616301145279487694953929902087636455327779079991484986375462018228569140086473559560231410434330370392555010796110419552314927600245223422343989932695789587224844194497194392709809541277631655499295907788689349354182450091719167435251982673501115137887899769241986868427075290569316776532834345206751954520095867607973646842387314931158772656501797744341471902230211110091889075212312836099682009082074574003867475247382670572337455598752227359564181083851402120777834993820945483343979741904701017082499269807750130599878466422772114576240253489743820734840075624167414699902954257728121923831512150244284616845494552971281644068138523289654575264890660671304316297175324136166451688947050829120265609745403431444959865757661261669766013054397755448884908666022705265091726510557849005805930541377000204051517268541176516241618671377754205134782059415040511423135757510298999906357113048933113125985605310310866982030458305636821031803947359491393524864228631602364965217276203984177884664168414233525458112059813626621932807039848270200794965225254467727591964186226747860076276492240879826596959919519093993828608629954516339040039319146130199912433014925652496767214095631775068528457224517586988362878339778780097748506005210469550652825055823810835813989079617547614190159132134295822214994147849939429802527342516237094121763412235132133211624661287909857760443828607877525989073496451620828801151506942190255619474730308516794061313313019776365044681688736598429551353596712727743858929919395334864557452303346880917286707380631714702417890904866530479171425648175692226397277836572203369745775539485017458402968898349594030454580874526124862379395234304933706988861608494910156533738591954670566592710437810806478777299126918033501491640479200591513344950974204353208234612123175556870496519614368053749933179910553989764253613473979247971108988341879811678828868029891158842625233851451910733021967151610852408792052158937120434385866879969995665399582168290093484927228185273355608825630354090531805711564170493737367309437114595772098078472121859424359842938068455911040879342490396952004995010831526255108128408832409885474404182299065140406489088965452330980585165414088296002931433077258609084167988574060539202850945923183098197025444511523313301064353668174050235262440895182107197431700648454592522382141205153330361618299824187047083839449134536468460840967603636910514350182894889380006533306061349501574232889117129330680796507646926403500140940821466806029438665610914380315017679150405227004411476351360031773713670508072755831656541313325819634894897194018677941212954851252117535617289675006144681701900176768321649352418701554364874182933814061007618182881833808483415031693828587323570265283827877672824632846891036246455120772595630034015506631713321782006150093268638627450760568934987411313178103302516627571848713650072043470997379404217960633216030483475045591876917285287387438496401610327292846383768099960150861297631075202790182028237380606916582727676831089960471363846519913022005700041108455444621736657139959623935914422534209204944718728053123830565032782926788578178008378872230820308200765218908988996612285596368122394660004682921480967846208050572538930658635667245140648856701327712291855835684818626648223242872269799042212712421921043678413303454790877923651533184603305695805007400422242690828228762921046067601106701681410675807579185587250270143243692782868088644280788662301603667938263001629652445167481093757859751582508844259999484112781131918940086306252266458285335375840526723568573106098245481900082218098893667722771922302568042203235065903565748701553306818876904808308851520624982106088718122491423035251154966895233287147265600056639537821597924696247960292844046472158867556259487470319279479516356357844547707949759161093793382219180936820302920162488348237994921257816987001723708166593505458672144908570198083023822236783823642596095890231244387758980953752937712081049541041602976858167103705703672567792620044541604133852511942523483246058573965313246360285072477803254950238898958029116324784766539936872842845230411820208030888368177897843813705691348807095852969290932554978081511295254312900756533259870824891138757497160824855583372559061750469483149939895583294877333458353337763223049805372823874398182001891234981123568493926269971121701976102226766767915923161766252580752380796418471949731109960246599048098310278623996517944895180705278936606216422116468168657485263147284827954682641358762923473627186505959691081628280914503634092344289348238198574105068387102473077003397833776102806994658150930998790355904548126176624474308967791470767428336352455805363502768221465657438207114845533011563259246114591398978329397409016240679642069038992249511732490197273934084083512312701528955688914575133111829556553746469365402137741782873741857961490698066638236910811422696957373102185225565243805731192589405068823650458842216588368412992404431782911038832007418760190184549796960274827471060075186452556885809369962945899754028813173091697702328482470295643035567483503684630213778250291091677631581315166977671069681427655098671164707444727002249293413556061788422921056264091796392892654812227098286908031009837430716314866015162266482335807936854986893368186801831953875015625119076923873457078018097261894988973312804156255922464629476277041597423748157839067214501894673800506618031747698786166786797148326234365933658972391494932410064923400151492059900475913244892458607568532509146606910516171803341292016324545756231185971705623632083236649937187237715073884545806668049422267098192184253768205539922210237928589969687359776203529700449902531751372427021971665119343838805405998539785486528418569641536234166399871192438081934837135641737613909461664513812288636851059220832729747519130052640335724265545502378276477954101975335508637320566966530863424751225938869880137638789823025144216373451034359088599762476266964610843041577885906734015515531634684746643065916851248810996999852824292197427598000333097119580054932956911377282010374480862350604475970221225220949757600084544047822216468590976329048911123367068251707796349357093373745237454814786876313726809915147786591549781081769047934011406559397424606130423615961860581029322922621687451963186403033739177809819881295665271989812010089432555380010530186917738909704230783469610200671018649065644926966939396190538478043959346592605934682293124634805439541908123142029973630425307739133628646989778815188775937194971195163416326066354386882869395874903978917435205109615704460787191439171637277387231661510547032394940745563468151203522194001960472381567734190444438796683439058517162477121144683605755140269604320146080793517324232201114150236510103823791216605366632730851443719124941078520958882974557123911881484751804989326776467673916571476918905792910672267687248542551558365142155247188280271575354180801109262503943435182334051364356850892286647852123613911495853450475470117392724913717279831850686472883088636451102799047176055240688740596046643254725706075713128717587118885397398281514339743371146251487735353787781758302520442351913786029725570288907755181190193260713084818624748614050963547909944277323055040147015858320293330599771767634789957796325888753462741999039415136808491568868739612316128763632932583499900309447751888291245599618586628596776683862432403832574741296039286662447603011243545341646427011888115472371708726959116380202914092106160151211961691258610403377551737879529853822810844094309823056659987879009636620913551372387300646623509602652955716730473303883270210859897005038274518672924447991486411499117769501193598690694270006260549245194677947391741491257132950380685782323959471873767086509322035031387636239329267088265885043703058831655979410367573773036854797982360013083485568585829358450630337703741769896457529209833423959339563635920228434548900908059600206137786534059209555304008550787425134598453689723808558600282652770737753140862230836140217255918579140188446032699531773490020174204126355647331028635119699783069539092059521298292429617049435981159589831415232432223594033384808308282143733718609107349302631548067357485805820161765326227044886384193575218730969934204218239164269044718879003270812660473985987197386633368737318200126231321885164250332717740775509524619398837256333885794506724312741210247738626053339187545825209306786048225781588359651815015949007210017720548553013595714783043442330593209650765569415976691963143859146638798525895432648307863117256284759307196140391615738158020577357525050662214846208009839744304031862932368631340157472278443291485274218132066778760930762411269487042217175097130716428498717820709809404171989873037661206578581939014870378283577977710509046170302084450897380378639486079314590350981247518699715294219186974186535192676014157217341686427887000296240765904380727938156932907097739326084766057954174084246726344108925762805234409213055157085821330019574985509582183207186879234043716866264129781819033532166982538688534744894948493197454914735348435476753994005838354038608224201614407983443203059576478908288115885077930668988153737123283302583062259164296647454269849634524577018424733399362604624310679548263061540094967146330704403906014847178513761716528731453265284877979727229652614281305201582819614085622438649203447034112461056650263908043412248568392296784249482206455189953651835118970190232270134996748864885621444693624891476866533575206219376674923312846129863570227201367665439249584529671423975638870642394431791408855201496555372173657074229492576522705909115084819260142932926988070370889641335253822574346107734278280046541616107319530228504544014928171168044854137264827283513251369755893884557766820224586300097389359292859200329916795756517711170494638851118618323330287041523480999969462661778852178413314877468761599690318072431582654158936553255164711361579619595467183518143496729996557983578491759299195170487092864164106286801461313603714509557441779701787097459451849196312669415328543812144515040881540674984683145739098529469546147510232683024097576359250932603574765289249030336047292960899688679977055704952617600677796009908866772481294703236772465148154364695983581750983556733613162622681298393555983247405419394533958722156385078848450204856879750467602350951384584084565494180511560063918640513423349843848144343336744703262715859871158284822926687580165024648979754805617472433962542683465310163269774650406462796731362094669398820315074272668014133202698882091622219598486518700838332032178860572949218663786118230451103513593299395352532207336503538904813568800001695373044444161630507627943529129539999535456600809800051171366970243802758704283642142823289231190349145111655055804059228132440344234744326027817747550598157241332973666921814256794154116673968769889068106983613228258845594591972248504443006259545194983239171116046151889540073808591878314044010997874315092488025580460990145046766777785564031991142248301748210625329915096847009914326734229892952313293983432137807343242870281405507803437850648579362351465671327250424343638770452739707360427097566184131838772499379582653064055047866035625799940596321010888550819054480623169974057609610826203311340337268944345255386507594307744632746791384886389467952056701109314005495720774390316021541921373766961848651652802513841525710777822497203300906105168999274646148877876393720496588619855989296803685095019974212288808292453619267931404562799344801926270955590241500301955263879518450803857398835169353921732355505529954414604810504877486892084040555735355454099292513890310738871627878697144095742811033688980850750260468032022049456136994926618136113781321418870539527662773810121981397576561668896535361222896006966188590650646309655428383783880735925809570275932442200582193749322923861931324369106267831561370486566365749839450683611094104154375616110821580643841388604091994450111526915214430026349724874181296168304225508015790967515887825602775617813331306065796144239522230048472080573136809887536674895731693093345764329990169221463851781386501590805008758387789187514608672489444110008487029814972951541285223381973597465605111106919199220402062078306434892142088816158696882715099572208555084268059671178007640379059445893911999116386927105812083882517262065340109742997434054265417904379903107226031655246998491657702558207480206824382236750530156819256806902288258052014417602130481195988317372762217973009373903486445393861026183260413988615836265996806798775863450036375602177884078698036187345293686577859544302963483782476447504485640440290583735339992156655830644866211599379478844657994025441874081044944826344743750812685683399787809050451122427246342926448162716027082695768380395348343343852690257886304266824576021465223617497522233390205663671005797266377448376555890594564030001229463457287342200462372159932782710102938957624193871487993079965414232770220759295490020264256435295129851466376211832882972332301404413260472255995128146190398264376618450717401924678851638061621462141547406971911540248979316617857685113674509210999099863654784590965080003531192348772884775785146666946392556356399626994291949491627308251262113861412373540422359777229881659573905857487884092179222686599629230974417285961403026496910722286932498274953263142879243093153157473955821947766707825122433755424472571672883778171078140654448626945655032374237839326629476852334254740246676863370741476966267776853939141161675737790535206508475877731475488133498033421548820796674574875560828436206407856061084139548029990425196290235037790682243951732808733443624496899808821939634091279010468548739299653189902980221114907608099553782584687659841231818274853033122681895251284853389364686465208785790423450919142119437555984332555029014400703734784454666556368412368317349884246630673885782641011124081405890027601059354097213948235826807245430035115274231985476380008811955252783104758448467821860804447157197305999376100354416618077297427977875318546936586202394259168093458928664148864497543724512677245531485035227133438634888480288321215159783751398111034001155043725688888953776283381927887921835532436211573414301158509338788520728750895885717894892820160074397392059932184673794004978347601016450849381400997603774173468558396447729899913270547270464070894458098297210843088661527208695351811657520993471652738586391545608230665397062894310431549086894938889236582428666117427421226437297399522406773531691521950727073234565657740168286010029478003948369568045764899928426113873143600192965423455359894418375076843043524885320908246993324275142339881527161482791137646711722930252294677645153210359107805964375146505409930683500520088859970887268085418403660570265064993554826064754390372198626902553213173642525300920480251116986600856345070762525061057527671500994288724697036634473812821202707602203261073189195000969502448910912694835675640834200993144254452355691607319225242490859316096366380788083727840416674769358841726087349299148569306229585593527964945998181687010701849196544012693559454858412360997319527469863879451760500846731828549418684156763389301734467840094797224450879548102896845875059947229090202398279635346514197222472335778111292912983707312465903617674152296118190914017560195282946578597955412493494211996958119532829537743302594425023365805845892090132575159380535373343512055819545706249281699923229067763323111552469053957608420671930282913034135286467717873153062388161514983967037675888851304946135666310135667082399944002632884230568182460359438835920607661297198354933508059720865314403466802597181610968778861811437666672940988470689664797953006304755838728758995423274480547533106389565187963296367314822248527419206675618007071485369881089224857538374718250717519881898211593195987634002505597411783483498853774876524461749402696320107490447130311352064308071581950458181881382511749626046194598081750633036027099313084177090740015261003169479537605668111813781296705796207948036858067212235918501232379260440980821433836281186749883963777109967755293400471414144003617118060345453355639124813404171080501484815018515417649167661883544766607963614866008010026623399724109975101806024412666893562165535905290864150386800508885347709154193638629415750198662684387670756887268206063534341754567759473094365376350529023080937313332011951005396817481641072783184363187614088900932256056945553523876668462034292291850204187046776419137256465608495970410587289101236131401022875694651456597439537394271492621508926437212880721606118715914471894218493258950853609877697181186446315768130605322021416111278552989442530454561547964056921879196297567958171838506159502549427495924549166236095738348696810422223647632025566196038528855913033046831901430742655685524995233178585772162377778007691042452956698174698265552600249481751868202295759035774386749725556744964101083502569584679395021558082314592160609844765627153158232513834994093744652195810585751169717530915573367597689847960800934404381409999880016861370547785182208641827295514334206446197130525248698788090140239726936358727235392140218959926864515173046824724514370213515318783231491923156747969881146144303746767530665853733754016429888249002027463800977280784796227355759266347981814706068870098113454435484117813899188230891736197289050891362652739867868069475212714004668302924968020597326927947135394400606471485914914082396067437205535174797208126357094989210472021126541328781480919170153152719139988891686013527875325445059814638498157224523078290021561466533984718279036273078926014253443353991046707637246729593875518759197950833731334883736037965696796994224321817175365575503368078217211156634649274619148319913611682030686265878128097455218500635179758702885070148301669278139538669334551262250373971874492863672065629295035272201791733624563530241258100411109443059162224202428126920649312312467327226082372612941821898516749342665378819125334835350652731221600708273722840631284396514647117650596697612966692085629299903203232606917302192807977737199965303912434528746202321069693479811344343371207112625395683051978306643692971085318270266679497208032786156019174359849043742519369995042111057803781218332874677895410229652291901369174287344624155406197451026996489249072099522660495629709308236073442749241148982800134750929152222635354263318766915413530898606969846242486341493290699011843632969760284536012009381931947285242284349421270490389470773374967157199410446457778017599568989543111999637916415068820049572085290978409756124690221744025165153439375125620684465960331027816235348489194686159317632790917375756716729635216298785178486821526705019143541101847181195204281646926251436444163471266720944637392055412497038416690003016467959286417649139945777706997449754058663970480451788438311520754575344725190624251871072435113669580046025146455718551047381367564280594616615797447943320916349186384554311364937495202498511090479143977935292918605706043914440046327220010784518382651207240481705434968653861204477307784195619607639845113530113783639306824393285954281487812290190039080336719900096295594316764270363493744666170530491490050553286086391576262902117498879740782538007621400134259652227794613942992588911323665530908269803239677301300275681928142162558152145820272946641788935672901006690918595958940414538918307326144015232145223183234529903903877428205399317166874989331107247531793730070430964708037094766333791411553423480287336493217134301751288904623652603315401958686552146692378062154987886343205615064604887681949780456850119283044092662548459031214114656899544719867655978810106051780600965034658209744399699725491983644754747737464589277747362707824099318695651935435385770803015613756224472246137416046651561266977348892585026439536298938910679463524453850136691749987086853600053551715406029078512448613610167487784134998670142208719707883137039665594305866714363486971669401630374931095153477377360528530333426422233440922691705715048763561946248907156322687558966296012137169882200215025591781467739712171114745435455067508192225305351734446015706897255389276149378490223807824370677731024364198731053875669430074303231139644126887847464127681167520714390377815943042260154617375420549809847542749738457310653185130052649277823322417265500644171587571354947258426984797644307355117151984854442876858586535107005674697387833687666712688646741842566969313628218126338425412610617613418953014494244288258635511940802961133808117753873866370367153173629130902621195349438075027622889566702554300876929348788636992009562385587559417987445031650501975840578895182930004023505074720459243448794694098898674120449592745424082779833599515267766290780180825915306130167755924220183086184951628142277097902304969102842334397843763616331023336367116251012663821057597298817619662644807359990459554962668962715904099790333949644715361659374203658164655249018609135856418951159947213478355949485949465813752117438219368171917010096005869652884765356517377739435075911717928863453404644480297157427453743048415993077931802833764671462990345303056999795466290780416209924944968639708647445458980133856800461424929031685481378200059489740135605006288857943606750621619698284877308492252472076000074253517803525072563638501338509558429522231247828575562953601328459652961896340108230631525197706344334612474700664896144495237096443512290994786981614776334210045149138215720552481291946866848533815846939702992259435727523355135570713431120293298639581828851918613340360920422742149322042910929812169844574853256765944144242741776155415932356810829974556235012678252599350077292725976090001640559772086954081086166543318831083984729716932833278619348578952346153817453033524092432973417793524303507032295772158724797863574560130697295935425355485784411442959571223004576788972692517303221719286304756655537602672495213677392882022605241884603155558682023740234648778149378256179629633472535913365657943508993440120109298278040559839606911145872278693212031295136489224956074681534685947483004013517400276601208990109084329542090654875186089988556777076412500578586466466995761775869195876963728499366471424134075948530295557446226441697195695716353007739644447232534970315026208307241945270890951234612704210815878331056228719640984541330187321748809790262281374937519742089289713670196592858764435867076875647131028669279207603324205377819330899651033872731023012854189629057256768840840940496117175475422881736596324157977844774147625905775491700592581907636466373959012205464593837140290039705352824090655886122588860539981630449786186744977978419463990829695242523526780527054062937155773995383453574151676874144022344381672594647043580313520659424404946809460827212963835078721943989182373411935483875842601055100041034702188525671342515736766686759390285886513654040320439035342483788127995970441999491639031673045439938690342209214289668842010901570921515549196340987604512123521209759999550610615672854692320938816030194212886212819036852312966385185390401154913291806693636774716304966786886547113760344190206814641011431727881791013006511360475285143204697545780894252797948920299626743949189376666319909360710547672602865680523798615330316098645781029244295515529693782595377290826721977831895442198035978281625448776097266726605300053905848905247251483730083567020285593415864079059098244611157573425914353138626506744323020002410496497235582606336853786364139391816525257818208725259180356353826484671281060651693134010884530876324180300026749123941317310900747609997362042091522401613903071336245441298758246061723786160181027709075926467806762886368513105032043778062147062649425448864983497378340396067418930762755340844105650083444964273676465685738726601290467046724513928406680048320210456556565906990884923971589832447611108803313098360654401140281049415622997943565432186028521913965561829905396270441508108374154862150338912867549843941794902601886336474099939689810564358060948228935553031068552989895520402837371278286287555056815828760703177701989128761414277744324695656002102500327587429451180228846640832315010360740954545064205257397297904052195888458880172629198571127075221920515070945476755787284083027011662174906566528109276007332837372395815288421558944440623003181261186354876574453879519313289882956521729603424981446681168641496441977716960387374022138183583571045776629481820334953785405768668496441064268661676308665036885497324263072149918145399364465873215491317790580067713193002163618456093605495190347846298723069631135913874109237665598286151690814899172661613988609968515471528527767079037758945426257098366712048290765673217173801146445424358424123215130682970460055390523422721620603544254670926010232245977682490866033893513459229496862834509651217101107417495072681018928957382258348441214355676011788651935657868358253755012539937943132280205152809107141420880930307968972812041031616012774546220313520044452946231319075909744874643157513059321739667213720667413125644292265010676298529111607957142187005490634363893062163089358404305893356965920212460599049534867540208102840455809718774284332924579109890229394626104034751981877102862486279833003251913210917146714643352030400736822196682869188588521144870107173785805356928383581567104958215097081965802780829099590150275696718551124387697955382757858797123903983048382909953910447858918032201274029880553108603766706833866425327245620525252714784614392501092386013759661183270854237608675361287873468734834932540732280565330937477632836989143895906476667693195961312832104901447233561982628879591494055023406819579251358203948846433410962475649868666971395224151742390909649669768661135048372388870188380239882421618438301535489663236464766633852760521234488288185092088134827233405771894432995749004546012422271538862262065895534412972539218977442565247819740576748609927613283408350680110226347849667769659111168983166645989235817818231803478644118766957489372095672049035709501645976405410667644073637767402919082911109605480976460535407142770034615736042809628205687256789131090601355625514785027422919344252705921941776615473570792960318240697691319622073217760167586939826500747481671680830490386940107800796538266082215068586514058388503417919468747830627099989149540287042565669396249806580302599015636693137716303416422439863768231767132646108776440267617724005977262814692359011903500949978593504521328993139457396490811567184533858341781451852904576140861689496435956145042487419762570385579345408556057148451011328007686583929873186593085590406822158253845574902194275933590315108529518663224843413417691434358509679344634316235734184675295594220671974021904203664703118841690422927514732369437134027980075198563539203823305594931304842438393659553122078240475038866845115582570801188571202056987750949229942585841171016103490738331535112264529389226710323738322493944183244574097700674796567771070037698477953317117620128637281387365463907139406257105739816388190526438871132513481937691290644022775990265574522710283967728188209087848964359168293147443387753434983539984253902225191816193428453315869636007219004067290089890910706771642707803839275735547893391055211607459898437796388489193885248010579965448030974677502255567152108165693324933619253067466789756190781848982478800517375537467724689154746045285223366696080507348000627223732534679002327240327499931045638038390562356762151131848182014575462685195310186795882012145137864910842999448695672860149572232348620830514246203151249732329458300111796458509993836579797745368490292413984752774517524876521713496562462335077485825345741574358174070050892180974864270717784516387345844628584111032089853341407306068801121355666103076568065068725765868384125429724132469613852055857567057973173384859579905758464410207658585539062458400296008520971325956803370100499617824875837283410549557101232374192533191115540209253432715487810656490419437111560988104811459636699297308692840704600454951026861340907307733852719743860654818552318968596691494045184073309089939641248880567287436130079890551551054576451293503378193598452877197446649791935734258551304307834876314643874875344255952381529531769213689131480163383789461187808491113633014425273372190037961501002619311107381559497904144893897910584990028492092513132119726534611260137385437658946157237341516724048401758679190830003512517544680683450373009705418803465520372158579032378935766191415905545091546819156032089460538412253219673218358846356246211175798943911381701314720579906435296193886838645916969835188574077783287799332584558996915338162583289976559301269379255967292852777966181009605626575641646075932369756453479581993816008532828758475215860163089648983659037960488498116032791889856777681352541067375121879054062451551407160200383378068603350712398909035202022982015780686361008626669079568685079185879097994900068047346585239639468598830203528120082396061640913772411671507958090333999643258272179096650070672435279647983159191703674603149179559875046406142348417237948475530701291119082004009753688713552252933651304485918204671644135404638225637212995864860792588348726589655242867379756193732555565887750733907307029591426514870898554942494262984001058119465503924336775911852245386212056254662063294076130757226381374546003021893137946099072157093681067172941216234658063054200599205643300962757543618901181336000143965432684183084995137325835560416787857819014744078371830574195321930867172339784630868417268456616971103574464532191171966655213264090233986700896670358436153556310241584992716798139038564620740586634903680608324515855419789957014732038420069543641996789381467624381624430290220660219259621968988952512459902374923442093497731634732325482998065935767626687155685475908009739132586314928930206392297695647069865183604975177214428869960193024854165256933224867905610051549110935692552798894493366775191087372984379283762587694669553530446684083335877371096623806855848121525303337084351361539852777919482505573682490325519964652428330162292221449937899848824720673799647865443316492392537359271690090346601612126324064416491858299841154336710821452226518277393498798181461577908533756840178908244325849377647817844549248436114732957144253215875303113614566068634613875422581316922848250872244461059367569290721389427440067897867734126975930478854428900346403168042430788831038915115414845265529292601811906555668227562356444026324896708225128713180688508421131189778523815319735083358735041404542452062564167727632002149368622247898849596844838431866467395556580603387138848289978553319069201756383024552552111596101713995973637972033828735534449751277935372399337581505913421815953647826428743318886045201568312616456448114591873782773153870253434681274880887357060237141976796331527646656180472594409895876690716698785954193668334341546568259062349505304711014894650239474362760360023507427714529268251769288152968481403565348081242126043151878302859039744909630223813632446025360029588177255632555442739985626035531709629217396210846331575469223133281922735965581075246799107914102772609579182620958310827261713926152317930118978482678792904461972563570227425195158099731464390732822840647125335778157100850267838277497617910268883847565388914157577036602750494032119505176926925204665438792873625482655502020221931669041085419378117844978377146639168439694121931793567386330804701065178873675474326718496879598075777679295686094918936023661927287931929589771817244834445940031698380157993838865767512021767193550351644213801652409446328306864161047648798662548395806695534772747414271141322472085677831628114901234978116413416437777083454746185183897348197267457607662450568164896365837271810473975371453789108868538036780334685908354917701455681745022149319360953506298272708919768187560560404190856737385240636215510078217934367389798930403874195625953914153877409041551487451828039408406950507873792063987471269942918967388351894747173955750199681748349766500206093315227636185806992307384931273159435618261286368980698939153851651847541817218596204776716423002651549475148563350285700823455587964974124088138311908039684703417501734862610892118176124756767215178031400078927905205626580125713296296234998448597843653133471093159219244315229277044904006274928962391015286114346721481582515007390657535099371812193563421482546432440834789610825196672232243225377870653290220312581634878186930377655746971946345124356623606829360150953726252349487796866500347898654811627999070882922756231349012227491973238025113504909212231615808414560826278800552785072282628539861692382956140236338247035155697327719331122980440338246536013006158419545199109552638182629799732087744189191366054513188667592552607696484662983677185455557286992610100735929946105377229806494281553106139278086077381153660809646846939404695981918236466801205479008643664405315344581432736955329061398171201512260144972408093863093018032790495688004343849386993192363983853104189018428292565698161797632532985487323625410820195435508988630970134006198119324101186787836794603812015730884107575887103245642162362853331914925856223173641244464178945092286889162250222284152395619019829063203309010601720351176051567127818488746282337634784251417523302129654608613723954005418615876493269646857408370641554436742210086974819477095310264463269357920226207870742898616182133966002448900985399905895973918484947124941733731972204922078963862406712407151377380705704196192506133520904934294454073734447674508969356721508021002914028796248026207120431327735687241647098127673565406055796990545090608643929769870874395955215414345596441283401441269868216163453284808718234658355607551416374354798613479411956837394363425479548471170319152387161816001792075499842774109081347004439802702571023313560319483814513003544452278114698524186281382120319514271544571132586970418975268573619772789676933595907922221526443952812714641796037523967539664000627722263805683503127528351694586181202753088827520816889574550166252513743323815641776071519732893745775719896137053629741284109385412032492000971346276024602503978541765758738369231435669253587812381368398297861739450306237161934342606287942080601892925677720978863220496023105270242255889658862510277702354498938680946613183093679937586371286308899844467786296871932603624764006642903937819740386740016510009770666953239010509781807982599582033613450704617449446122632822597820661427767419121373451283290107512060023020296329131088935175532714082887189080559054608293135283182276209368814563153467477856759204793459682391406271089244958257212386511804992706371046993825345464492066798141212211613494626133089484336569193417468244109722319217114087112376233213057323454790535782953774458199624828460781684838546724629296247898631622394671346367251435018840359779780274605735200622160666768858225163655555577889831346800562156179199317107819433538391827908747399210150510451286728900844617511409075831518792714777954740158671024285265684476154967730191950845297551592290027019572480535412563030807967136088622415313217125467065644297104584232860673184919211665282267978636812833722929579758363930852835022359401625008009568858607949504523580951224513926681923469896827334112247825619547576037355660987159388619186375897956477876330047904936783051521220696572357218981480739999424795549953904100780333623171752581173058257137319594557575913158773763157993308042880595250890031808780873153857610357809171268996807375335088533085154562673582019303177535670290209669824006611810199007489705153376788608952733602995027935617327470416711095197671482482092394509674189777665117761689866584524037876271025923956163210887651391483130478715601113999851950448063719549480161624694645232767321151255478994173147656729200371423222506275372692899955940682288661309251445794869843700081821338844726876804365389536159645980090943091498099923555006232565680162676878372721765953891930130141006308875536183220196929532294017284033235814212936523728740832902501935574925058684860180027370220939235813516743713374677745430975944861617562685128715645968360082966212681214442053905317783719577636143793527469897466202647493034500904131530338591879431554300297316593246235306873321596242310542813835719712974895287963332403524727307546266617485688277746594528487333653296378605540955596707380996215933958121520085310995508057434666826685419138965393910016731684402379777100999059020585699625571857116380756269741572213667134788798704412660871380536965524866641587318737953792824093434847159995644754987684072389098469158462269369616289897156677126563795916548117635481901458084515256435597071152125611232176016689875476542996213269553147824526763117024348862374307906116911026026522798785292416253897654218902708546930582226755363155613124389098571300199717912036797020228889368192079037426019695214361944513351173122255765299944834510166751741617197590645508653692910600781743364361469554214751700598250602389363797776806922844733406595974657132106638511205024406237897890167287622469887062349564357496549876956438218090823673158976112523496842136229038675354757933508945806553707028431275777989860070596051948213823762761265202367483244417588408858864419483540745900613567951272844144911416388196291417441915873699056394690202041284543001268553855213468530244043405440043848647646157814276324240523352180463692608590941869675463108719649114602915178649964858375022799398062251242302443722767800407398877331385989593050534184012836608533071706544870319529469246103457744526436732242706030772846602436636562080571286610455754042921984474898096614596793217769112183752283095815729506387311922333328642670555837903878542722282422278201298958313164737272017303260181696714474788255160949036171234779827203384657231881342564944827624940849268514431490415571860157293471031112275274570981863058008436995577996805408525672983349998896290436283827708274474208193806321499717912817153586913734501649707385057047474120459826116922329474738070225527403743067795741236850512920912817647313246840285785642150672236154327840372124383784180879940991407256183299514774995749582520431593239841976638434075316571843713020797041627896148588441542870521598895634906965730115752913219840638580510277569472175014865735419771162222024746526278749712347477588937039653711083334143088878354016650182431652334926003854680514802378197181032848355224671983524027424497144807070214683270225201348934669417061361657516450390718773404817976869848090653948824446098697356594211601619204908605169496977924261999442032309666883984413104982080939946035196779272611185636246598457923589512415654153758574816784975249498316084517163927065016265076491391158118262777330020428187714378935386316304659788442261853685121210051177139206343418868003879918606700374455711028545775099515915544941793451435478391280783730569362198688861408686143539507228794835251373542613749856666286669313871033712684936097122003075969383324497550949950668015285728726311221136758564253734836836715610219208303587210690071675831300420366366661484988968038855846067316013250320850443629212900417479468683707907848292606685468875290725845189626013188090491685098597977019255604034664742047063629633499152180438034933850025963690711677109728902092054451422594168967345190722359139991416541615855833187188076263334200975489224317053142216183001365662581935918303494977601527219412361077548219426493599826517502043355652038087992377705161857972747452273397225952394425329056626598103010503057304558558847724234915841482517120378421291255695731946848765685844201209163487397597150563109697952188942637789627675850583282212938010506574577917795312119575902063204648224045113193057141940584913132926939681596304266963946478907426523872407337748829284824711487781273501516417763775687837307601071647193130423670482971623327530154277955422597000812897667986671926496256083750134190842072506111428117879436534279101529509020123884474591807065593940361155959248956866870119424537628225410155820336406105060381694435968957841053688182361850510072267344679725197285477845829507480442328467526045976189092573891672602414842552495384365646925628913838292767874067385091740125365799864382386793066429896140423055295231529192406382976813257979940258975756292730396641839372674404610632618601401409438450867286782672280862564262335655977917249413601635699316841805146155361033829013577217794363778478536469961764390034046791420639486219715408946473723746269687313132625063737118059024206012233822991949640015883492748278281910065687865270079281092230108408465394896442705987782997076881851671504559824833729976992008952313688966284432310187377710978651593609837121355196087228100065464153777946974177085243660055540278206925961901751932876248030121179954465483967899115183012318105455023719885445607046383626862020254831217985103800356109636080758675124202904569196117308200036369677237193447386080850973376882968845142635049288367098797455778439671158467390199655041740902162520606772217842908094422263298535042806120439407515506564872356885904749286634249531851661744830067644937321886298285133192926287440797055964523718377374552655392092311049692618292377168001144771726760413666234529334430640373702916206442605320591663085050615460109052219452688410119106943320887662064161592728964001892426740436091596605156445724074315834348165364859904932091358780730013373756874018666582466651469374567114359686546332200348064637916720044064128410823875271623899914777655519499120950908698701054907057846597761252950909378512231310390047300250862886824039288640298384534675802415594497880330200083126124009256388351303870733804727833467251190290156903146912913528763350914981653617836999889545160060070287320600598237459682618941537131336974219531275951737006337028559988011791344416871763928599836152589918781342820711053135202475034893380427845279798382894894540650779605788008218533310389667041249297437850365401480372901523854181408410445013413158784296322606494753831811578193568652812597737590254900565630673338051014802641747505798765620484387031273649866766412135289691634158720330915585088442473340143864424904904657953662273496640551744009618628057666647875011854335014281973820479326240299017634169312522698115395702409217261981588031072190199739235330493594575133585521788020850074420375990374916021301156508202385864173689777435735879501029053060935769028398874717381714709363657574858584963769243123610601632701572739784297034364104562459443089002183912419469315112497388253431333536866398361268148138400624972521527098784831232953829077092842971108871409926131901859997999170537665519511111782137645621814831182162574843036420083605207927139631610617982535287956542193792987859586022153045980684279291464580161697165296641646479917801512367812512917725003042638094759554745453263651545384674151396982651078741839046136124036561261265716827889469211645808248587550740081981824412797373469029689809144909684942529667153536786982170525458601279099353372351327300538876305610745670526762943642515931674509977132507488257001685718659904096157809529256913632053314441641707285019186620172123842761758923681037225937043986907925599661603016988972173875921782206510252060361496504763081289679199939878921600640448618771116515850868757864718260593120798426900269256240408353817658192297145808658859964127685137811006699497244812423035872265400294066518397991265606831517258610095524645895254027255109727748558689569998624854700420745456617398436694689980889443733739845247123914332346697466997201454876214850401226610531544149823957078241122945002504194068864666238916357428280636282048671110425334364670860329779789259456033840227639851237833819754437599575811518317708944983939898975239020442546239716693093149676156175410183936567861147943575970764292753639455231614874011717901444426851033012159815445281979275125374610949747206769299938466483796630323632351362742918408613858550592692620676301227562280381657396455681260962941348780984599615335858296958803345884322268784137761007939512819101151453170921698204997072090782024165139240578093104946592260082513555314502480711636150425167242111409894816286168740591299355978231329774375656603160920276206198027273907317714792567425836194079413502316327272136217825654364342200001106276836258141532644212597260257382266565016454078935328604570877231537525073443361868430803787182330128527458723403052888289258685706401544809255720640905179032011659274332622145176251883209143455241626238662222445896183401290495698376968852131276878801065856855749994370997113874386628456087989034472604181947409273300909901421721780312218178550406527965800920106910512258974404874935168738042985009852364970508299435442169703952646296144635380586370250862714016883677801414242535575183301030235845298826499019889958217417453131058642243302431279911596823523284322484093390078325445497602854350675296855743810704674867646608109382790535828217379682322649428062351283088420979325695350480125510360527996944959517031683248388136314349084720333464397655605586604582230565686142097432893338735293907161906234791548425212318741242839424469669264278652770177797831283232900198133030524572055214513558602166751608699697588679879131418101918240235552140798735201259696561865802384613708119175985824969123868164885108654265938164619394630813045101559485978464898235527762915013245903790546337698427582953874239507398246668785885269669698124024679364940953599949716874066070434284042461064877010949365965548586604106630533294227749526480790615431579983163832633731339190379807134347587419776253422503655963264115388625165505647832485597730844936733038949186380052429469876076886647173125877334602195048216603231381118790547799509032500204635707900068708084930479297059066008978560422365365031944646736450604614763768117464802072446541796031250867506306608117476819507102070380125264766834840322859193082117998640551931725073993348464088486219228916835515386612767166736310090388614586765351636960205137957076012753378561144117770024459084563956048357621828071580167366921633788151160773817352716503010549712218371956618241427337211861525239164430071230615710211942935991709336315726632657542504904582486216189970949427401923736267251377634004793095075741148138228548825557752063235164385560329620375357207887982775680370266016414710180386150138981776065369098169232176260046225444612333217764944841348870474414261147117923789650088871031845448603381492158056619807114890104173972387679276480481664528644636353297412624105873403868793835252737556893455947420116321725938879380674724462074263211762896814381550256334752039034520911658455738181104619278844153573845550814196587769835313114191317776165360903903991215145500392436755717193127967557423341546823196612350467732142852731443467434196738622404341289787330222226174056657832512630565008781585583302584528633252971656420081161065578984280223352870356611342488741033420850317862875234636269193971489561392913990921113138206441125900144408952988656251858179693069428773960442794285118487416862635350474998121427573114218246421123623214548672387067185074941461195488298901072009343204426487133171797521529335747575930332734807490135615436227088316439534800897237467083592796356207641378634455968862334601419018387153359065907562748994673618121332261080275466020529446215574593390474125534936971073694758479798360843829909702947188749218512320866954416182162227425018728139024918176912606346351297358083943010636362014982018791106696546484966709978682065175704206714327879857798549642615484725512208866208513972729622402715810763940330931007497594578460969329890373039942058116799644485795785216572102372274803493731715253243522632087914209336068553671636369743796629709784640034548395139347010118618210299295066753500042419203964295135368463661238384807297833339761431555322845499968789944522076267051200768743466747966583499252251818633548367648783752128315727936172208559930620256929537053586217936369650601464680596320598667293067650991386130866603124897743750933303896163315872438057509926320086735163881491346948324973754845260496663657282841300557995874156453369134016627643864108845819978893299351932534957522801979256893657183605536762532889096264858492206360733360308817186512832294760819696072601814492491548234212027417872321961928962425214275528545330477451141196095820486476022262323508173911431951997453705801520392835863794584192686091133572449838525723519721584305931689348302215117411416414193175791246103456010628521754740653842536626124219429659360420588962888769195678702846604544132251935873049284194118037178252354467014326199697698637745635987322640615621891032479243655756372880987863249456792915894236112357201355031602137112629662783715826584217912350106856376504185662659838625374691265811623939482272847435554617588754235884128308256447265312595298423517886553015195148381148496073921433023240942807780573310125599030407576518575676061477511049620872534558950483116429087041205154362853848620408504886069385540314625173433005688177322789897358361645440791199315613494651431899407175552695805844935782505391665518101177222400698953448193653016459224190526333898277404973425284954540673456209257821013411871524203901210457610889011088030539568796329704913911872688417571873145018514033287695420363607998418008629530520502680423703454259003291821382344987901176533137497081961314421148796602569443843307065076268305559691524539151337197844932228777882841303842386071385239517903214896916774091792453801394471889003672733119941588197493790992445402686598108151867903751540475023253360778146205965072963391322006966240574026345942542780520794351327051873951388845421860433664261350167595749816667889613595100550039606582456366673307646711482806329304863023743649340900040525973681261953821828676514608679974483802535876528074469487367369013379373103709631721247752389826859459185333604389892019055414829162438973476375539894713818237841024201368835665741490375552406544763763422411743416532440132791208821203166868916444698764606247811914366049339651101939866420894536052970760425258762791346261388829188955113173103976733293528774801947520350317813872495902832976223194814068829063055377526373392285148881865793131005445767807251167276960616163197566022313768966043768540987264300044373851577808938589074874508084536186504051757354940830818245822191634971798099506183714220779935821941832145900739709925105491177761701823208094752576249708949193202374950564716235245500739360389663584416534386559091223194564089434690233986028416895408411967753804846509229269368298562291403905685951931106945196799982068057298153681493699184707197113567698237912773909506321256344240875981445068342331212118890572657223673244609306755318704364929519945833148377594065208667667336344451040127670213821913951151966193825279696574082645194326418256892288361882992898051771246041907218065539839966290769027645403555945868482657442075559658116669278095597186750870708402390647132925412140448513468254881361566689890628000952444033719135223540219285008938784126645272735147182165620615230126132904779951711240290085240281086803371362739228136383831305832024472634481050150534780730936987719432743990163924463594384599837510568309958076877295253911276674672756850804190066323636584738473817813636474681018827609314172217433379307954281070438249223521556690129585211626276240890705643088178379002526720269706478403947300914353029254096716328407294740448905991549804075508917054006017048253045262123819789010069648040118019264824520171954873830291945927877702141794217047104749772736963693114303798286322853014267460539778820224188571757688897903741443300115255518475061962606828518429466570233931167190419547313250188252976867858711922670240273470549245709200472955450981921277523151076211484327206028237090794920698385338086603292613833752559840673357543428619692026118376989354324424474280223272632942831241504101622636323124319307721497674700348557847222598042994084876599532804212287950406732949421913086379505955648464205235105513151458448339120506575795776042352251437220203189642045607428211903475829103073586388966995426403351226037228971040309984003349644232619793185600406983530321859727453805645639897005666190240627853717277951281071855633671839871797109997679829114211840833980186411509856587651781005391909894215755114937786172003217498182482819313273198165979669156058865646155384043667880173849393175872823972872321899914717044453148179307938628581210796655411118858048868965845615388794039636527365289220447319094460461532268614216770956725734369873514751083892138016196583124634403638434957184656889576371129941721293316466861058202319954402266469345368486066417076595537379881329924697256728971691297604185955476270223434043999946642866083246513165310167744741779060709323656535868965570258764001598205414703616168539366452567054898418734364029496073937642870213652874180635740617402418710698878469835968747610570578457692570622278279036687720194120454067127313806741652294923592384617737296009779507478520326150487391588660619665930067929502242146749709626961471217507821821185028573955239578090547877539867350247468437747355168505383521752350945667162244344689734385086073846633914239603945226135023301331665309052973066851025309335308709086632229428914250887068445624473537260760070362899833242819601685323524206286448150198919724950841634267599109156386884371231817279778063409185099151689508880583916991806540957031740185454570156938226500627523987617672395026711396441214988241892755569844163718429892910393771454138088580577023254220363593523131023943225526848584117934721965669098280861348204231519380689568881558023818025766004080774134333286260727768163964170690316041369914438041611431759671869566259800564075938246536136176899432683833407043926178108514961286028370362350205688249291141523561772948737069018718201682057718378048546144783897119340918050451400296294411629654332222085567428420270287655194005773771098143963795243934919242898442979649210195463459459051999100692708557459510021879961397977963323071061050556636590722281074441304216275178140264810213334338757213058279774924920271941274921963303514078768246262008072897773328847031797659666070364425374796107681886534819935475183879583900340067784875164452057558196951586151575789792071165018486167626537851191443330512368799353660367895719077385291332709705325849748570563759756997368037181739396671844559991927833293854509749227338557522705285068315031657057771081512304981610350056117454737569377596250078381563448135821524861382480040371052861114852418374619193040653344871925919498475150259288780963645766889919047136190871479302923532715902849758563114757246909889907201306795910370896059954832984501343308163939679987735814095143259837347351098882248559092078674213961686238770911192177390717843883884275447032196629206296509271950693156716782713462322671435691428860604103681432694238245266422296157966214402713396914453970087122752699248138110267326448867321496961896200311640703965227593311285102039118915803005964449622594819808656057724910583321104986563640703726667346310496542934544622946988556257860721872894606670216270890500184565989865675233322448241769023897534370209701743380069403807072781223823204626014933886076068808695519543525191728301023878988122527766851206286528683283840294948830243897241955041021781679430481172480049532231518992728486145326038244221654874018908938543059623876738015297865839036030875999427230560277342814267361866892872213195177403606185670600405366000342091161970676187730833192189361607912350416428413425357050013962822746805056028266129020455854432316555237060236917371757009863473163213929944809783791051214604530176548455931125490005050029944795501550065431876023719085816280153676018285717424786618386719314813974589552668565081504226333559745823023767727622500293092667683655145173383956769263447549217288433507082876467418891333290972997515158903426661068895808732253789978350006642314359255578332329274861417224103624969124536109149562407515098532893286528910451117869699669015248518926536872086437213386451516658693160294912777600867669496900252738242049076860462215974962523691697419331825189964506411280413152225085081540701551275508422265660200585997333532232535605752344584756211149729946398284439942065443702759204775785766105826372510676730481201108368009079899685142880894419435779574318369885822813459263371114269601896445325672382252295356091852180689752837093242370617705852484520962970706735800569466029697102173200272906470966492445093162777303747418755853683620026910127541643057818645763887323084097470226883495922433169851565896330172634778733175976925198537577725104561129075371737245730619604989129275984039273412319727509405730253063533172171157273212246966581997494024309281715614328723107750733753030179916667405322710893312201551471879420975026868279031382047276786789316259933392525835412048969166060499305917005378407191392434600857763170335150433801899828953091618663445799364671729928627832286209426308616407243068340963041472597629691951781538206001811131509385093442782638082309018550536901527173020118712700889317653114871719334775251672815156725942095780686178633860902689738818870111930603869153924225143098730158835753617240880073358109676278203592617251620531754579611640599449913601057050519568782743169236269697393692596899583639368239543362330500222158283223523096300855666900696786304880006596230252493842068065464082108116971163667397234840592734699255628644589685026359991595772245902095064825732621587416712562864380928859121014039379452703472424214312715825779666774839416505690430981483693614228358705775013694647264848937921881854204071129701759335596972971903424735639469365966529764902174676878423608459940194432039577456775738360865647739521657838769083577979780367229533324678751027514205762168186416196356576873647609641604270695219630409064158871917630845419852510469639827607880688979351961040801666001423514510954294625242395155512765873719418666029624724264976541399202378669181344343697022521628526538956718314335697114512733840179992428253621991164924304644334381581255713560820454230859829312317715135905882783600723270682874905978178130724392042637058759729150767423776949022146003854754343564662035278469831783415210488656761134074023912311685619861787239477412750057832748002239058519765878566559363602869079252796269027453789274030146752194275304266499425374150762112441288689660227437841065746717270565592970651687357461047515618637279825724384359878752828586674857577887495303096631605331786990020520858223621866788660237606183162633575883786203223056719458943921473354913837493952108551723838084531574747710433541279478637007516448242237477580839096905084043647919582216595801071537270353402007175108077725439517342285486717221469520874832070113829662165167802843886874082326652552935097494851598915737330345544426716475466730060979372130763599872931756743427975879812953295683652891663582336770286399602164866493696864235953865450045515733976236304387012229597950234045905757359109539960333903645977323595552102912263958811371198352637932642029280896962489640542187326778385015859713683958617406669885966016402936014093294032338242805171536754736420787722702907564394156993600965479128954370058459267703625694859725027217363652415750920848859469267119730870745392402509410540674550165133979722735622019610168846619296803210713960331087579622941446994418348435616419024121585012754936700072577691831085416682773867413334296788358480231032026175113167783660457447724673093140676266866615475071731400297956170509693347858853901572435801679564865162824498778251122363012740745252057303547706430313718165204048735655361981005868735520535232022400158806561393894167360942814880311878481738216965648127643993263819963844603207557542532662365977038194996758531211680929776360842483715877594532145726707996399005316687239645521103712358427490989654307492765102640785177768399857068570664129158925670254843112925112649469733235921441158547664386836220818481058207396624514420963976414218056992276734958581689617319885777636441764008926629130143601353198038087449244503248383846601849351949568919812676552677042589829480230914450788629372416821495824274906148316407548468760249967974566670146103673837812399730940853056909551692476195781751177759035262450373493278024140149806405377363093336633335589793795741101265768022341444109903772140434984162939974595621952351741082026794234261281607808163452636009930040717003651720422336350252938566535647507069182191862061001417778037055663055199187782880760374400329230762474095548139252363834988936885878893928944542436793353578730985824362239249764818565485908583291031841470934396622341554148711450668242804617923632906645732430802614431487260535978944506385951098352330334791077960673545206147698570583278223062442227134160586068885085768688230058089490826208044250433096660783928637783243556211914306528585853987179234346527169131779519727110030962497672725965356928268816731878195006439301207084457697191887144906667348023483982671948850414194752710667783565524942214310251211815521078115986953628961176340195925772283288772131419987543420668725049906042943903518434323134252333763184470280224858132390087041908191255574315563563791610329215530225138899396122280825391948806545739913990174458875073748454660372432252687619767355194553211737613138838249826990687363846082583444876485250700628365096692864374052027373626807433740331611460636600777006186405317995802390669964710451169570067037488070099493606735714702171299494538954560115066050127755924976849260985609252962706278961641504032182838038549020742765787626385452992849617200528173670665483336181835144678913514751152710456874367506360828297759820939121876188180569774244139892644919697091676088595285655649754019217242265630875735721958835529800222212477450938560255074557548104911691762342854138833503895148201397781919394815388293812640542445853656276257935092602383379258336314663146118784770134486324526074612643033807850583640889594532674662273500163159100050104192944291255161555249221218995704383214549573025368961133049888017296728690702059965539859350694690087431982969089853865706100963616749203407711823118547861701725227615209654902400589196707558177047908851492120898083203456228325498231049491780647652897520304555924003299479030173056149179486232993009216946006794101470574998595742973325310062962032787105339573743664410694292463897638246296841223907903703914990746457335215214231238105468159615953958073407927322736567966622283867415776524908989869526965289552607608278484056588253821388817272415003510210109905071653937092486340494996759807367610808816836479429099869298408757071783733473687421338673352613841365058773285137239201680357080662379303007536109774602092428086102392847760489942856338522678622719792111971472930060640493551877398803632749106196229680836950245614567471093368063122101825021246915184734959761903397351280838018133214591152312480632479933251455677663682690279709110886928999205709989658029239543759384266373275214028621384703091079570247087434404065103023486112939641109538310571334257984378011434349185409237626111188379942149894202932490108462553630351289754718308972774239223456714818516203053125891794642980059985375046110193240614917578338088702368320741339024341785859522595422472602066880032323582830559217568794032932775276957388483254489513972629670053963840484565894553481214394824789202827206352386048528793113450497884070671439923065502967225439882848499595828915985476056521271571133120918403989979492440751317174926972293234470601223442678431232682588019967361298909247767068986478686250942028106256680526376026046843885845802957145194089004677221929584720792755126467603292757193078120036762465763437031303829617458162245666165379920262343155900022149832990965955530960334307870482424733779211215536599544033345380848002276878486490838439289813862271841627160719892936044731506833551026490447900604618700378471252083683043958936120380622314684659835103617993896094831907652062545102170287369497132043974706807823750684633806107068478841099764797999001949299947350037003330992964751329636083858506859692805102598795258699090985233711443398118725213852999521353408088620068504351948309415069420902838906330717535238974177287130712584580108737948628114687583210789202651767622856447076229189235884009195927348338027608328838942208201902309314748879390934234661309723495830708940292637642875417557467724314427280693204547547705131209909209756439740516614827921906580891396431479811263902841361583222912528661083669496641804730873460663116719754713609452524095201017645725108508400851825717595826012875034341990353598676913024016687625280072026148585585696419642704105082328010342682060369564132831146771815793381502274995477484293658084418808258285513677788264145452907096326377172770938651918029031301453182727702694083648401167642303989839696845751451743382349938688371482009481148516457067349486259669072835626767360247071382335737502366078831981887835868668356287887186631151519459846021675181984805769407237346322409049004439024337411717321084581310815724045826654496549961303206788221310403318873021301566195150585946062586012249097635946568452293974313462660865530257805562589256536945445284356974143378862925641843273877125600516492040667696846217546932689622783288338457500147604473595202175484992113246436858370037517515760244391819575313578311806606143690411177450509247200503376133057528262302948458791725968908183118104122793640706754818785405754238809013030992054039311191761030704613676639684977745016033841274086410391961558297180616340098502521792367372891135102504168433500807876341329309079181715471496441596550458788058334134342216444721717255919955971428124131001392467370916843523467693808044613183366736310561209037272127405525612222824387874582388585193697141923006715048329975795215878496261191768457318243784337899789520783909123458170769308904461269834047969850356461862009277046300631472685566514607665524771645064540920329649486885883972744065537047406846416632856648994308505872651308546251958437576378666108758306991925908985227022313177460483454938303127064484391139721052240901920240078761322739049740791361212133099394204113948048130877989901034618143882174454589347475179077456821181891449677522580559609481452351258420629015199077760347087620597933080578163411498670338899913162150336125068001424994300014057393963034427471987883014110599695934792360615902384833387988086546713975001867975248641353890148400821775324329394959804770159388255473890092668567719682924665346528269122261798306898365850967217236946288211431397631741367614821488452683221602864321109578660547224868263671358481433847513368283844515137312475737188358843841225281998168789892410458918943515940715788998021168680164527326487208949755002232078604804989986889777212120901214421320337753554364329788050303185519999855428843592248494816455865173633624192244085317861203787960632022337182685011257952144698477006728977272161508078774767406006613034685628732037643380755824040642339487829495906343460699170401314744808735615668136184927714625524516764205513013962894975778535919695248251502890697950252390845754841572555171506789511592762244127955120868011271200145076863127088981365551905900826831865749147399035756954654020333495144536850593880351605326438017320581933445041344092468709748798277541684340505859013599267247045827882175964455724631651816636642563468481744149279643909933484565871883204122519733272887634317293889973602495597954231053236413563863247455975331237417485046105927136876226936313309072398577408591274580920142782438563463619002593852288557149927679547164112279686418794223840000072308037500343576243803008672820176638484004139664830794878937466316208879807935337930006541073475085396163315687481392111782324132735640924845521237249895560553053462717555353153529893381114988432843696305450797711445760500467319338706962403886183959802204586807285092831207129259148924564942492955282348315379876910319235948373844150482627270236542754485932928111606860611696812023376789741201694414952082371197831937470560980724909994334168119731866683087426144996879916285935272739363832423988166354510571176421656864006531885126121574299509997795342733677588274539149542046364677092549015878784052299659849963968799728950063259155269779470116761994879634288321595100663352224207646303255252717024828210368847560938195215505715106089547679342105947051853915606985634404396466360761112868434776364480062317648816539369627923672684365380037300741208313244997537874690713322744917067248470558816732077487858038536603310458859961105105556612818641038489232470752101998725968923022556774883622591181544973818773442776940536570129342929214683510273744187068271248983090115781105957724896649423737045973879482707971109081693248575672614861135334731050509390856232714045066905240192361963483581967235437793321292413246281795951676354087345131909223015928468230917609652807449527505862621577331921425962324280435777281061236139264179865567230648327297229768585928835862418793121216177153912218164865749547035340455662262712929166963402324559386262611920847178304719737616252374398607414175961039625970054241258462260995799245675108479461012181247086147362934715725312493263656594604036214359539767160336776352805108620640946167888769022322597710986623988651799431341281367318264508865053620957098568325669945922157385945059639606171835003550577094923069489803581428085592085753515076473821739398476975768859130451780384250389357447467573673751580763167868256504897095897088888046075557466162010214666814526196326416381876827306950977393293616391354080551281870421074521184880504826989229404276762476697753246653633033718337133970019164936875402119886735219484059284763264898796085051844753598925033832535995499921057520337668445467943063821438735364303313022743176521265561805805099199002663954131917701188543607837082301052464155753235789482156671985282965510720793936143258717453227693425053039392015879594184141513403170539004953297067105914575630685045646073824903071637179324734623463952362123001468796366013805295664702823726342285150356851148964464912771686383161403399212541130522976940986476192349672476089139812558069272048409472883101688107305315533510842696583536986730231804932542551889693370846012388432309153930704957379375612711318094739132453285195060243953492478595543443288863856357247866575304969359155240921935240716086925124860381863947251598360862603370020437443099993312290624501727989034187451752924674880988288608573070725442456905759563220362420817201414298411654151324691514914711889157352079219138277833815684416902650444237440907745777593589690780182891308214977345870233281738954458694056365926636361535211273915985946247871449510771440760752736782535157727444779760090204579319567278953106270651155354443663052348593890929225364701513504149248082444934693785161171266932313026694029381720764001657832506920598663481144110232913668767372550419837959483937639824732472283996560006739808519259482866213468432815737291498163086623511922164621593484551958464233042454182714127001074653908494966611804162393639522747508702297220701857603908402611310827518054657931500004001150749562431288252975922665761954909010239032173411288308411288333383915167162187718064663356888531112381902546384789048274150188309808435569686222160896910925762092722776149141941065792911382537240967701394129736324613728087884998748025302743604454755030180237169161834296843660000362340632854573407327227730339087434337219389803414497936644917049065733032281026588251507092193972124114493864355335000962705850238380468074461185601344866706921713146812109124657587121610587243859393220831350824911717407478384858995870013280913824152820090251971329782607640529562751014956371464574354711000561013813405490552853947025300101672844377361432968246495214552597382403913460236810873761947813057746820690096558552754050264648749593678838719409127879638965067939941944303188966497513279345547732960404050687999185976722779497895647783815527330129589977372273883673671094047664215339612854480010573336094191785517498107236341031531679592626730363286397677964038106135909490764608228217619387530914934303692341320379447535395889565826809721715650871390209812040258739263990672092780929414975006224938986446105940035960857305957273367051753259890208560004367056741482942438387680279396146097094228318402936785888601837460379193498415819435309726689308233649437760447044782487499627579573459831815509651654319648890823750521485578658899280025406049178857572041332248697803795675617332276180535925752357276152293218156306394197475447572971408627802006023649200038520117860189256486471635117869082065574084504121906246974868414843285633722242286162172358682882038528741288998426429163585064612926931058595506597505323156820726034321081211601574193289547615789583206645955040601886973684077852366980830463000552498234185491111330316804414777074707790144945501508513967538032580781366015720405227717129930367224610555040452954198026776273475975145173023474074685801227751169318727422012408178673094692233851253259712324900171543707734036168569568028608344120506224494354936703735673498162412873484137606633263993286901789001899624876803367997766880889615470922776632381464434724150683795392043424742848655804013763683436261729984092133704954714857515437709902663007297323658304993140913526759766170724710782432593876051961716942218576561773204305335286317304183302026420188107117757863758515959112805235880889533562990696991228157160416230682170488663590896793980882907719514687938993323686621951663235170337636086689290886317629048605262975992164247359925978968565918880197394093509059844932582016983613009793582288889313693198873219853622925854108129171598905055917682599688007658709285959812670935220436256697780102902589273366834127903062886926173001640676947486343150640527067006536314879663665010018534711149112493631655101112224092283786161724066871620201900572786253449744378563950398984157196409172968739173857900981492725163113538583230407084701368940880686781143331186663236134843264764789979537874656702303709859789996054726021584233013253073808137765877606778900077237354761218370572731449217263667059345370566250667172778160370295487348120277034242530008105336255963059963159278963393192606202141716433299055051650750150825594594557597083514167146866626321416411877976796311853534288397696203921250783187156404634877986444940549785288999614847667007158410818115225311433487699034518875946239709972479350668138088790885059005222518720074764476974355418589215593886736256997425761247740380493763865826744743851257368575824374937985705199047977624828253435005639778880405770390190879460334412077609030599844419591105658433249787108196573205670232992165417506976667899317032848008461838197051199722579551981471810582781732031230485959569395287172746978533228964468616708427813518815720752269828732238232719567473950808106844087017931484111825366603961267772438447559570483393985136338070000853935368508515518832213611065237823320986044930855196619615167797230491453333714157767453729168322232011344067591456422979589634114504031003338150602325293490758603984702161907307325273323454520485303022962506052366174010511878625730998048037472914599335941860554673998605070895679740436680835720644909615507254319484372476777066547614437967832610684934347929134222520098134998074351043400221045937807095019791817207482203862277891123755319174556328887151717443530313201043316607011386138393621012406742612680925526157687609734441452514115756746733880068135656698444212088152373472442069983135857403627970896134682906915764844448243071974542883910398752952207815632942259061559197193499387851704007593180365655889821015813505570255656987165129013001296270639451271343489487361438924346382529196965476916954492699447569996369975699124934261620810638094019707183034441239357399036853464715688648526678220319765784290448702542590443295305292625583820281906337326408919496562169774515904001530548430491063739981470493539878832849753752921536695641972435587554743480448002902661839941970161419540559420891363998412730295413952367618965139883567652785475804597853233074226262075462589274785026078746154050981552166009529298475870623167631615359806707338912549813444672084179924724421816183498874878026668085462096673250960924332796764338400907883182874940031106236024360078981977388609865269879902929950005662536826053648176487573902771065976811561486780173540077427069969031258821909445819679034233610546700775935046303168001148186608104206559112373134535887371671226793248978735672575078392048642331073167216587185005495078899681986878325282064765677198191478625749492139221919786125197848450241240042120082602193816716377624717570263737833403067910895870968534362717998562045400919265741565421620433863091231374554667629039233902966457387711588319533756019357899043024126155983785142657613008407622334442842464325036059062230387464822276573961379246858712817539269137419680385448163743906137173749029207337388384247259608823153068603106171928571913754528627083043114264297481829109154297775620390139061949830776118605906920583924443416009239285191707168097109933066793801532727197060533175490946033204489940711196564646231757493301139178309531964115672710405109000407936606148080969829452201103478711760695581462418852806444368297895701678127245787997684551660833221357959353571539683072338347652561044022568633420993232075129929067458110938788100239660615598315123383673857395790643848506127581818712669633844901651690058196044044268386303601337376499846692749434255872629859673798450904448970647858046617904978623711435296935753312353136791332797145617281837963583392884874353168639421272885545446247474135069385271837330859592562211035069337836342808115516417677773893058460236178778720153875451556891578091380636453551111357616250139385012279515298886946455781343149115474584923463283568440862416607349645452567702982085510765855844913273710671464925310583848550045586258631818580090384982477422561132509110317612914050991829080657628181058153840034942095636044285767243342206526454197289584536035037219721320972868908327899607703955242262243558274374160848839982441041819272133975390942581885900085829405711195472405300213193539489624210295601687078795572394292118752572286843185379526242736264268628787108289210523922194225027389499622905434294917607108660854074389245415964376804915900184298628826202938305502860407466711994395356495786800508745925161759422083985665286116126479633981764566109462414433746536850795022010198750464253539402678443081392541321783311077572413724854228414853645822263431052541027872680154559811558231920886660999548464029417721076296998996535471736366048978783829652842877176117698681939522592664595728419118078738000028885492531027761934292262778005036854862829024799755620048578156666340158999583878842888837673389315189221781592352115734230379509018868616820731574755252147477737189253109884922377306139423772896897131731957278117039998626082281307167832954623744529815719850382725990406441455617256380116917696217324104725735187626655172243687366443498180493866196494631391783097298243560492411615583083464490487902945073577871870808203175172941534933361943710966168731112764585479981149351939680785524410640104845241137374873210797788707293601181120721481914250106916423889421058954865164660367861450355150257881464656338510374039126337845480131397241385513479917686721381318366536345313698430423420032750728597575814463908262486386199411621867845546403969123918943380364010237560403543803646504810636650562228372603827022232484452937518185595370607981920821343058483897386648782827778060367544619352451222353965681815418643134786604771326884857831233099034317614805041031527650875271670805882307417319344601634659301197954540465287223077358634222574976748520182028607398040445271695925108586369944638403316318135722942521235130457165652316050887023966562815918888237610114573186006466404299925038877390750765223485885370138975253908857136373953010543246041527792863363210609878068415760163699032856432369696089071454861038590969978606807820275434533008494076075737532160184683225495301070842952235958579330953374459926679275721286380470523529072462413167763661642002972860922305665872772057212077491222995070305109545683488214753650822844448273061446481251402045754537330754923966714601288522431788915722449819070880466759617805359226369741695218999724746369892619383472087072162958686574497091398240264290152404601473198273116918753599833756774631893915501767590684120310708675836186210614688629740864906825933130396619006598445574413434225651677420204334980039572250256078481789675380002715409693702430029766360731617228133209562593466189956067230846123837305631426837409868721170139242643043546435768400855248660497084204895178932509677878350605719705354494377920489149997678544061116328902757271880909612053144003655571911909797991163504364365677446850940955141351761255395715590022424319092324990896926428017316709935443946956550039271166029930663781594005161698791002057105506174324840679385701614563752000784918357702404111694807119784187021557590855719844653260284223053455165769472551137630415500334122276003411267348760268177678713577473911745772948226298336566682305752751665918007565669876135605143660181212259036328086911264487252649381525771721292130029960881212905700461184731904424277027853318644697013047723948148425529009454492788287091587014325491727576544873542265296776813309188988946737439437381719411777721773528997864909956111799852390001897417703647445024530950611336139410176974246801636853797120127632003434620651309028229424990979294928976884444626000544075455389804963485641229738925747350253597129534169046644469088768105301003887484943341144386808774503305384551574322559967530364107671881630264909780319511570547761818774179644200233068072951096066422377135224109758129852820851580532214078907581352219419965425472092318486464443161175242397919561636831804177548360983360051861331675906903895928679535072438846097822385169301802691981820006586739657941712367534008650849280623555490086211323123002518639863825633690510247163299258043739298621618745111825256363156504486657916023965905179451779581191855296819932846870130014458243815890969326952703763175941519934726404113688827117996854454477899493424898213067971786241961617277483231909409022085045146023476301962696486873261275939121198168875934827229707334495205863691251443696104095854732670020378468596303503663621812581063735647661871457627389410641546316806281209791587273463519947527075621448034392569225673100780332676428516966631480942805172575433051661022965881230398022727016231740323505183696016660129239450886216278888538785892308518950088184284465948957383366825612797832922299570102341135256503263946416379889343386444673086660995387321981879941299321206746770331804226533689787219998687974311798768494112497686852121144981013139477258429096157434226341918157581003956343063285118868801858078736931235322543508402376546390049902408031427913521486742695876079618311030233047883271761388654296364570154763643359012498371478333800866506336107443954565877034641264235171716125204787480259870720635344720029911115024883099531565330675147085600190875218618292036995824096355792797480950957182856379153896482438227739787202500122455581220957209747436989310522133107903209073907722630809653619793179201050894831650427029510232781585227927096682857734422281930930174990223648049355326242651264591482335594329656099073853499112152689076068345590889939410944563053992003531475708789647302971729270481592929892380874701956262210809519625271746613065796841274974621394986140110589083858158713992307780831745973121266173862417347789631963612013623080909428963124427291153693510797598086975893224275408803906452390349010237018969679657310334231876173493427138197821893936764863579155477447241725056723666293830137745257512890298473872306736271549875822391601307161337976371129372515661373487372898325793679047887913480800451459155401379332146697831052513731702351291562520552752627157078862664818381550357153429809550140544766636459400370863612562834654298102160442735166982233216803264762655949617475050881946397223753011339617255904254389271078478887999831020402977736666807692589036029225343543750587391870275323252775605143192173216918818988984112945178092377389418759003276974683245534873132424051315442402725190668288525403017569385844267161733183790249474185411763210970008911129367111365147462937858994805781222939932627879998550175902494340707877826608629461408837247951481209177712836902971622017772849821819635599862610748720757152932863522725385969699136388708170432129804438144771315627667038415428561912545258382956552171440942127358030013662396122801333164077764286734927064694272934057525670316386254115876921997340129855580958063923651721777395890474456091312358605735575045815628382855203982158066232335549772951796521939644713012286740019714168726642262154839432580400472859623796952866344207155698881254516015521716238499969006328835552573343540041332135010407783652774980901542728925047236944283432431759596369312801829170832960530912885151824172365142614567638809357410361457534501982872240774901432658850936180893586400793400400089114561639948359669184111411182641150968896045066461538372116022012509697808325243884357683519429820143160273600918161266796331326557716188084624339750196617265318963866862854331660835401984306904450509304576031991223161595767883180825278046870334197003498391040527773326921985681626614999682741610015188733831107942134593692785824788269357123058585556161973353552074913735295231595148342091200127152706227342685479529781852075326020680653132525185419467038860484585370177156293120834030619477266412142523096488519435708134934553578744962625688070262509903233914281907818558370298032139443956982771655401673620496981234003058630612694200417819338042117394459240715359874244117675858547133583754367883626717297495841207546888150542890068960181142486161451485707203197746945346301634011938279931123016343724346924868366545667483430394458800232750577994270068739565289614439751493656665154010359672184293724608034240474026464589909474938909908213390325800772187435582416522192678404278706979511563326971075620981823724893578888119399497452647374162785203313380366781020283247422546810099108107415224415285731844898061873155144055252151768210114382310177923645693665598545914802762620460272249853169091858810307957246023445550271238681936230858947400352929176009312879856094551204632837526613950628872556726674414290986729040647747606520156091633206899114469842060430651744257145516384161838574045672926251286053087575928650370156655296710390574086418398753007720887384975721570933851957730371526153203874644667848037614568212923343426063521191808004845489019767329034427762834388192587934954821812132096372519445692105368818876928551898413954219022802828189806854653172356377060241942745010142888077686239351913121046164957191160040299453022867658496332090192623551704481541833965159943703175953436880613558024637136694371190586038459566597940654763320217303724864585994620395428825539035650059092903663098418029815163868041862794549636647090700578729837728723322516028555539680435391912844248884912061882942198714213548031879131585359549153019850531997022330267770547358090431593887019576734716311230028460024069216731000178702436830264809270498621929745945818676828633163478986513711960859839301935656215877736839514428618572326321931091681891347044501302410955126211707422196124745925265456552891751891412509910225397115280616018663685061466644054128916143278112710059867036625409088563090419185716863601652337753923408889460887970464342624674939122803329875524498859465877559809076662476986549517969284483438324478895838497750400078408526625322442334228477924498771615732412641338444336352452388775040669827508189505978664482833027387599268813918906992796499218224376736792179651157492053901876839492078560922899503575440817787950002325897629282246353989658699178266993878807030534886647852597605488088392712155982905969066701773669216374526531721174428302320400767534943717645903487588712247978544437405775284773036638060563176510098101036609126164503677728645389405979919649169242599985501341706733255575160778494589334961040561465124782591228472752520937693409218723312382527830793015976877317234592479275733321914243559679499175154858954232531094721663779009801216161354477463871406813643169891893200430792881448422356266499009105044333182137072230382874889596352127932747365827085365388374414437320980602061989641640197929491222999926780020603544657663197802714104444327506184133743002996428658119796651279245419420248439322665869841209406021037306557449679125733418061422242234672906227482184818387973307098859258635084974913261405556792159057229251042066121193121790562589015396723702809396781816846137521149438705629981559793549721648552593538901908823921883142840903229055258069725706772890720077403082629858286738911507053361243035972976774715220737465573567350580254525371913433592336325837876512969939102450819166786047429674006896031927972032866424905820397447015835139730976902158572084182660125497098352956911228735545325689382715248605159550331101690402431683977664161747952261138291953296975276870970950855436810958857666294589450586907963212321966708032919049220208358840197131286475850385841281455883002592615669866626581933820351453906345121841754670313074399522351519740380685248134455989650908304386134032204534282322436730613563096462718863482687265783051155565950582939954745496423689634626823698379598377873079209250245620525710447922983411933922907470194038528526265633743855489991454336279207786960430122782705967940601284196270279643340577762526926710357545729060931720068885645301829236706923593323842831467039764766237160003748059721282337390873582217935790908636065505793297109224483098028877208137445528861013136049369208056958284057983203300892423084331489816069100020868632928631062018317021302039249974722367385676167965671738401555907046549703457482636980624519777948230613392060189311955588467548861621238544596432389936119998843132165457886299951970647615093885706520182276358786688094547752830493814427066096243043356976414640746225727465615925752553497679907860935031759540951823561074180085906750823632633197537886415448316817034061978689018358512256001113041561325975708498116586266532201889126380750991162594162808494456217299604874240447081163694597168567918212673765185939539771851787153959824814612863118427956372789281111144988792739837771155780260130774228746768608371971451019827038530267927946911193772328949125606403463480027176476792927596647291282685549558949776251380536151813539057845772335124135394605843205184412266191321491004623443926815321053715806390728025788241304881417875663004129155241965952853032957778494210871529628615792267413230949891485467201518449729620296122390220761741617796832178714217216375022103696914037729077203800238875270525262797121089417590146142277383362892060581153987471034125842046284342172906797287145759971488574268841514505436620238882082515836565780211607180808999905956289454251202885261752333697354735224241014258069739959925544258279938901139059361794094203005314538706333920366624835845595167505908924370411749269041115552293269946130857505681292641092957204253334430536334237400148060266857341055683547856527329674798423465201217578451298099707440006330595443336241915775880572647563963449121390627349490880763496572116476038008252656854987542090158289853633056761528897529529372090918679814278082312208956087471448281336556142791702201833731378203611775767654483645902900794501283665242107746266164768999436486484839317787673908643875566857526571440081078521985179227763626169515333344666637380376295417327596843135449210387437019037420018889807457948973357378383833318118097397518517270122230881152610280924590796879335394292737427461573669315855679583714122049230694701218832568803935207256437988885285676335028578835510272990574546874044294472756934695542894923105692100520172316903473265021735906023800774767061813386555716635547894199991778313008271881299066793889284907718028686757868116543393373016184799069108888701831884105622899072321074515889806201524581976820498341824715500051925985887616101564625360800627873490398283973753655145325762589520703063391926261165407647554676416475877394619842782005424156149818269785579039388319701990301566464310474548776883205714527778129237304675989762618842775323161851862074746125562305628595146567329516350208558353585960939153236109443179578378454942068366852188664601050325390518500535304411079738591758406883762884953214479433887369586710993568727212142670720070714393933378712618433298136585577686001371413016146573694422802317946108010305596386422230247435474078336603488768461420467598424167847692675627004144429405042344500121987952754354787871055400085297270972567373371463854139956226309682890633713548153456309901892864315340244985104535836706817422058310209880719649054169054646909695065318794310797082177440987018956194351153650936176873415686401583959221644373476419047377007645563263935259541757235181113871571807259595607467357325238069230245762475151902943786987083289968146169444751679905150816048896378764238796985437294893589338966089427128319732301243874592753355871504615400835404742782588785977203392129027916858242343564555053561573220997729890274153819017201334780099439272813044330219273798180888353576523789030552275794459669761713704791967952182433064667008275973747293989623554053981901821049474339842816230524788109920879189971215046231567902100522099736858638492650068976949812945429463288822555207412102320222074767133453420465402442118113050727959465319958638173692104445845713146437273214411336568532921110181698012035375776205056895218508648692912997229240995788185822565127236913443530273432989702020141040106434301242148636882525919330436571664586085783363880654776307278660459140981082442318932551844083325619181256935693900252112023109162016686036181496423638957707040794109255224229570142508820128622788253848843918291669233646047714523373457342424745805245851908676520728538565006088808980057273788337888158420762056909873045197072161064739667137461394477451357107420367791983757346315776369355643618501942401715026122836142925557041994752521075022540494693307570167257094674187276501447828663613658779226017968916246158447145772237030145183987034711930521603265503764630398190356775156032522988016301512586075004198580988154329304104746021408212669553789819765054095030740004833785871595085573364830277186972652470429554231250768287642748167142490401542561852935970229577164578633018641897159698967139892924866133532974272298078955034085889262837248290936327823225246699017123842551488424729473705701527293002149530732405801188168820151001527730282780845931069493624195636839438128599189750489101147663199329885059596838689777008986198894774439481410778565653693343165943515039474077949377801785370173249274149865696164352044263914640766923935786175194794080904267389223205825060401240470644369584434798455871178284966946465671079117337376471199691908084290803622956574078227454435314114674333479530675123440721283647786399594115558294744247263377120736253186523528338190138415606042214110167291423802038454618834605839535986815000246997559424010997459751384817795022852890832512637588631748197064341095397081564193900947772603913911616260003441685080739230765344608133640463329934112788645488341399265633378331725733523021390048183052618159606226606937363952428115257741165320164707355631023205275673834014559184816937549749674192164228099825016357838876144349942383523204835905201714393800748114847946451039687240871494333920242869736105372733266990938587964587585413871948631066048573961546822450187091860733721961008672573735724333987783947741837474183281845705335406597517841352658867286466240719340701724294542834363945451149233754368969907968912429664440730529696127364186924299911129208113394256315311851333366382498260778823815060238385462782724527240248613638743160384775956342166138765140084211139306190687949791596011735812904000519766966070139291776487164296463426179353982202765066022960629582670296324721994743381802180888012870406150647000890950173677635895481348612610214121176328914798075570859608591937246443996222241836754774390480787800575463099924917676846217861508036290034851150489672235061686301708369492444437566435904783919112200280870668364311372958340442215522353216609861882001038128836481161006916002271579147122594804827568973711720781718171787544471511313719565590850436135187538122276985012343727744606543515712645772594844787149835982311031541806380546813599015708562524374800057647273019372531402105154605956429614429247613654546335581582080795677833312759508330123485451511108068767746748807551153726730438339688404191729947134620341961043320955864217068861281351867624039752846985572256245804428981544721625697490926196787563198433173354167860859623805507667134398002065384766662708042431028745980030747973125932855351168986380878435660784760361369798535247040208633482312274113936586725430107127988096649552745927105921914042851591602102848683819639385175271633009815106917882138487107152769298841398782438836242406109246601704020020980762129692808725925885047736161776293114924331528470984848876272467905699894153608857283098258711706813080988266603176740616179464586761571639210838154291713490034268486012004414980295252403373662102973636574397888955614810913076471152263582678672398150893171355880747527676776314227729577546875896015768688881908773808499140594074118351322531326199338750318525784479390640083977728703549773102054307483812395380501456786203428562802407193097665835834962081470802582724496342365735486240997325531248684153192905447548994314954598270438069985817256875936967813556329916768353325437471155632207592859877465318984139982149781538068990310507797027348708090018696307658779807691576341127430410987948846653162738064513946311671928676141158198767660245407485747969829752837243431466161922474936987333937858352703708293105628133560479106477673509696226106113761539242860012251956707094958669637573090676587673686280131569653372637372705525410229197383321139828867858740405869575712915918655309629848228888448918266952460910131175709571824512658539836268978679141641209249408477051416601888208810958729659925928152991162311990284370563015416800436336714749702229483138686629268311677501501072166396233648229388605179244771735853140682588445310494996665673537904142178833849292518197783273571337585955837389385663434387309950308638398815851251366748663690309440031053004447803896725235129849614995968081220488227832961851689100121270349234878405665789290001678228631444898230989108723963071989859158150517253128775964393291322612321391279462330369500318392291316264999473482702534602079445974096557861603075068840753113366291144203382649526348465665164413181490526681799975087856442452685288540092926655651817095193382227866221048391053785501967032279442803952356678867245295989277339348626491179151912141580891692878279926600857598701674281365317355596956835461193066847797774761305117570555066438193063270409940821345508648782563724381200493712368363144234140971482020929805985238597071122728789333699358029577931754631521498956310362149965133919445960551032763983680378685524351226938047742935553182706457063032347693930756893171957169862370363227738485430458208531201247090599857646213020237277574978657426090052819557925215533195120714404301259602581293595090673323266357216029389113830693906607046171782807470373271044092958591277152091169824018437461276649920208016756650073124184437293542722125116815995079366734046192939896962110077743885723955608546196285423204140603079127829849844815648051692490686031981987958523853443226233941040985996861722913766127005007654238096761217714214838811448768188069836785776681523289659248050187745983479391117215691671616673087278020189822243057570631179509786249330914969636457769853602038338776639738250662450461678966648948292388889463996341762420391944123759445116058302437502635642860195835269701728301561336128735305623606567787318842447412263878709138957646240057440622969122070335067269685483653119191104479827548425663528696298585938856761779215127212146477396281872053468666063640688351002520642719392528879858764394734064633782434986558284980112856303860183081238769651297630284629176514877371509676840856484009552919118700667111874326591843674879684236945709684030050877635093771756993163094233991684883596572984116440458691351882555781889743547137175700937411892114468803507454575457712710951550309019006048912817891827351593789129539598181879452190474239513585827935068126611496129744415835229698558530780985518314198467139807648919201315281077763609789340753842893692722804417024200217382465358677306740360151962397665556742822241024593460699814040852534979258541103040293256188774237036601604752432739771069389346588093472066837714368192848724779755096067964314608271295186044688860667517123883765246426296716673058325601894649387008560807426573982282868761562873791044510731625239338600539434900710195687868908038325258129129037460643386405986924615423505983087868026944033281385924739690489443228211445557848567679533063172146254918067833062810931079070213959391858166864252818521182805164830258408617461246964063032236597110016864561837173591437278766920100010877260146499541866965254182722859308648308768340359987598283860755402676455137102892486710028123686852246021009258164797345161999281258123962871709513116386476256739040141479628001381630617161359803865628500768954233473638442851178754734718771700498097595410389533340959239420730416315523318672556324085885727629470246084173392593288171517218745621430807603584273139419455571650567118048266992645127587521927424675873684086584220722098819550728339351111329406097372904814688233586816280510484543363173405194085978899482428888142468445344204086682318483519018380958952626056203570968678538972851629845148555460860909634897991010279964312414793929396322372080877944243392378959327509288671416890207429720100059581440989906454415005397560037189360978248478744568228218046668328068310324769909493593736852417368844791722135446298733186699154013571865873709946744984282890158667099638529846156518347860703034441222268729688998056531503721479077511885719104645795003448083596474094513606455760783026929538164764165526568510266384975254124933013684215127063890657306717435929195496260477428960700115247575136039030251140082789253336369143163745715136351993858807276684850563688647371280352109710801220620507509335177007974734258621848232262005836817589008271966701044732375381098985514077935679389669245588975489479119450425750903173036373166158315525215717108217716010300802905659874130005596738340249409026162378382793581034392502477234379652659812229667982594289523874331912234070300466715295968912297572957739444541890671643544066719314397697352191890456367057224529290398672701345833824176710592477949325685077145057841923440197757299528387310156696016198256033545931712840864224899838002412111003951867938185420637745748511848074582652430197831106517154964456198364366229779419421640406773652999797010260602791784095004552262020456274293200082296020495396174586238583192187724678971726757985815611881101252307212655292256858457332095889358457372437193812695361480900488674894327304702279700193920909815951568651571706631975718213757532189398877968102964748069003111004120428222950187104011127019906218167907829769449260513429030639410968898457728839497065963174647346037493255021908188026329491615206355123813708940201357639526066701205588785107115027041857217109807849931170099306755051046028146247863114076099640598500624061196298140994599824858291778893903058780381287035374515652666133532513438545269579023733163557874070057782265539760099623791339946058312154161075464934080586856931397076082735632703950406219675123490881377120379579737494850340812644676835057892841742184304666577271888380699240121722330029841983669038699340278026332951528815736682888854658654834811489871105281765472937727002964275940279610916915530051780666295934673876334766585126343428757939479286735198232587507580083255718516554458231658623347320226121084396586810596052387633964027314348411792074110599792948928236588610082691468224548444287912277002624124252476363530070166240494445499821682648683793888811297982251113025394604600875034550883133663200958460507413399126618815193720007665753608020487795992066646126323962547143190510837124006101436723297573057805646244074880945224920674787747227044081885872884523968594900915326954666133440120829251704714023158759477263930667340298632399288179451265275383600424447860653090314650884484215769055551695982218439907408191233080425831656539592748821711849982009643712912829096118960085115700625035925960209424720329417838952607408181638995829966656131193133960180615032321355446002727728439174310506452014470921683551612874555749807727487204065140889880354269451427446759639846697913739289926491397617901595229357611578449277347346428590546696706107741546080944292786073437439957266747283319399774003189343024695578645819555845032226693582636136965497199579429291460313831920980195169175770301745232600066060414563396008131129405216661273811192181061895846491043620145626873059346200979980199027351455785543644195215782482450313924278653395843453519970962223964731470615033582836205294064973249652817511687997472509966197388993403660950291395924037793153400209363930110807371523388699082489280360190846122711483623299266185276775056147493216572097859089440690683489455636463179447228214589715690178666990380959903505403204885109068323773661079610279807380519007567511918550848884343198088487590986938906648899972955283761213398212459071682970910108124551866911703881212540611278415158030885292521306424827145451356797656838321491221183707978363228080284967629603866861787359495523895358698187001764590611380858238487217625796995301970384510825954690292934886485738814584326322421634360375324172536280778672299720829233476234953590735005567393983096942794908948065944018483097124113083478302351007273792101116841502100334056736250847286361321869390636547959199857999735780113986650778659666963683748011270388128034419742446447774787515090910990136213632254746953988668570004799926860730013651785141439230855301519691145886275497938382228002300599948222462397660221835486196671417633308950704902385153420636990256818183596656079647301889495734823571616833268168422046531824624232433606761671062369519793821320113360611562808138479082634351210638436867499964799821210513374820946005435064165879892323178653750918825203335315188955741771083507260724477103716938523890502366427603226542413604547889300341978154873237782100349848863607949626734358705674132429236775501742490186776352805953658095687315121972257519343448561153843144035097999267279278753457808984708762241788268317311199980870812588681407904817145560512462473395091486526089369277343164030051188987092895966415935796234959170935703191994457141505884798459512096336620147222421190143635852263098436965402340267518482706291205822904297998405856317481759732599336509784456366016441908433169232609353785353737178017122258108829971604605131285820621525189047421588173860296388891360649693370667113200594094906617938367440741148818814723213112969928141236460372486726611111820266231927908409503565025295072310510183695541410022641878972035474258710002388082821356393520656306556720385058766156593134891625710598182439009929674828306056899296104990413249909086238440400453266639705819453412271560224911073333484593596540017765770647827733786126144111074011159966247626925200116931568605282984187931419957043964273922945421653840357516090436538455622596577185361872196819772567538134831373677044765343350973016852648350095598628249480320437148162591205908991312239103238425106062218833171024113306197807561531119705204467526307082169537220415092003897368493242354275790815235030354828635272150936756296238758633235058063778560156643377591810540472427655850033648259763149435879260803561761549580807840528137379260556531480157045346340164618628771133239982995601188061514912908518785609075529284767098033962442648255700822495353081973833906426014181370761789782983639685883202421173935659152392728163996229345747893781242820536174319393784806425373625912055887586777563190019926864926841921995607418456454019553070184607921891100856626064718385762322202872068362893725277020294015327849629455555076966639687674370924204479883826754235762296417974373120555023489352751710029404728038372329399704141841183140215064260800451198747232543075783192214874360072020064623022809930359494268420502484916641580856699963601152381669292910412072884973893939300376512968226673823385632639831619378481695762924661335074542474272147507950315235753387474902154813369894320031139324407195964995899829066964558301465873023828586159969601656316865470752660966238869862344384295501399000870244363611437195686808774062881982104396012919140353951150649742230850330785621497944913680804435665602656427056963237533354994280814242815343853647671934124464764410974159573841680748058245605653790887327651255810204392286237594290548517604989295834774665740797594724293421666514526350882127643134788659738346794328483646776516681587699150817233739780371069150347235506433021441893602880374023610276709013816871538899828928920058322133625334806181967056893478470645951856576552644609210453785372676853358399791838863123875842234865254530768444278021682826819805227953593135279790244482202234231119102966534502042219700666023184677958041050026341680520020679611083956148841561116891715284739223995047869376421837697142101502250683250680675493063583538575518625535227194342661130536556382021078101323031334070419305208841114596775344641781933448618731336256207545612445921708149268377202305098147894038491606598303323175363395693624235806505015970855792831870299389356935378631059714932673811214736119145420490431042124385519972384439865212865346158939644142448450434865040022071505099310404598789035495840396024217336687554104038584979994117586790417599193908749029621125458017742168464679266016897821402396202249384499123507353462777695007857002011778506087283651414745572414154863809672632989492997660160267656729860116128213171002837556606085275739721363722557135174173245754115521739015924420403828927127530691872665167818203550154570181288913941665904619139969334930232541598239049583602394730499745269929583757686241822052803483393905334834902246864429133166527335430316487004210324600768352428743946101534180738582464996354092167329191883511151807169139118038352954570156845839216992778405742437527670839700190944500996937257525518789797394646383430956938607668857617098073813290627860866788866744550266655278670929728420775827844323377975469618621394296665228198160404970199572311144145706869271032894309445695484835986729119819646514800243389254076127194977609923982509977881719710684194673151454389789860037359911912105980464989737721120617800983740855081890135914787123900156076695390941571262256924735663773098136686360215974191278628503385527706057598023885852026390346403870953315293646397721543503673854748476905330472375091993328145768185495340322064001562267428449960393725285385675206760467389967223469861803141491780432610391040932001502489871131898164554900680219069643489761247534118706942127268386084922335916508219139156559237562781526359584532204881344670063311105805817797914199335866110925932180016458602033431619704690209899643657879286215294907283862762038877653820791896899882296231214167197467311072646633028192645607506016799391730729031204891063035402865954840092919249545114620990595623916180707132133874014262521309327677607498377544341865283371801079795895796009613316150786662210605854910162488736109068410863517269019715278297561380475155623672419763708173949582360872795985566753117124495919852336258805577408704708773948502313544559934169381133963801161383852027578286502403070195598136250138694129263481161782169932310243775576831002790325786086933629659031950030758765187755701032384312618862853560218303324786476980769158865581753037527387300556705406295432636713158930410892320662673573113122444378715416737211772249839601569038122523063003041925112890537611609167462570443697537862437433823528462418328733743123664072494452211896644775655189739549232325803870327250128790397202971396578065382049281998217295595075075197826681534375562518214876961835129779506036368748236833036430483070950281733844659504322485966870506634899642509111804709385476470761447673785451191595596873680155471030132184087581012467432981170763706237907570098773854623275965150417776136544449106425668515582983967497866609992828115940577745087341506747969931220338924194932629859854122197258621004461113583580095925172435224836749170779794317675019074269857374936104370734284200585984763668936490888672201454390028976137868968980573199158962708719545757578416791389582440740182560978299724102319474792968060099032765883872273651836726107387393381429705637006018477987436245313145659332868477979310127306750304389207536699279064436225598387792718466248259841070159326908837241367193897369555068148701154821672588580193128729423349658890121926792702131675163244370287722143931913694961088605364345579876582137358644371950840956555851239942241404728239647856273928071563757744079159641931722982794942461993184416060264019287138119730176858854131167835908272461575643488665313677572876701075488175437852622842014365934054768418098610327241753512547191234323583557883580314094902099113420153943693027643502736780261019771084086450848575237354197253109692888937434452873238192531418870309412034767748862492108182671936627657757777195065058588940502756208726312061862924277998162731853913501169486607335190706008139131929927000458332692459257038094298758473624708388270122887193243043064653145445834253426212442700951456288087588748260705806728030113269508038535109558420694550827870736478723555195117678348001648726257831451847609308549576022129406408638428328929137244208492021826573508038292212995023851900711534174487596060095560429522521006978009208013097554227129867636323994726514856197511501401725960146531791036404571887930948241927819726244580590380628093663292407329434748779119158064828345737644786704231321785621830042175404231930792049998784603067307600595128475842734191476418653901891145286486698716671205431316451772654909468016699952548711307585965934249231107756753318679373232096377618828136088194526934711665837305744828162092380735616375947860006836353183566556629221206122703727119101975406386464570784113341203361901086123596338527430470049409047747811601025163543485198789817297600859280502223785135187175756181085683351912198572476765511057853236473189763879534962401756859133184159107280249667756905793114953805081922846638381267782008062188943169928904934516767759844129243265072231448973402693626397898686477498138873788153983231893573357123761569524079457184221734706532723582981902166662198306492660146698356274331586148837274734368497018614064374853760953477284043463280942402824661709974925068726001341555461279805088203162453836288434470257428285004984239172922068501379950975317580239108422792819534139755475387560082794181921486313774445839944782853624599776208266546202605984245319595257539342123805451004676250655537417294842990910658463711908387980974627416299493196739300220771666780387259352745664088559851152076731103504126091133533291403626451732203824252118520781193143328417802207530681325500854541239629859742358439813995600992635517216448146732498610362496782643179720245113340956811173062060344044702732174721704301059237916997750649680522743432865224923872641813887333017647089092236300033295972776396658319016383090186926946707856550076399515098489705092330069788398463150758850751318609555441390360770922022776407664441082145325480628113973123541547443704418722407202644681406130367371602024082779362534825417943471872558751311828322453060335926712994425949088013171971655426327397301890852651473537317901679065010287225467135098527709790935322382445487695079188859440927525773898207347677199455536174056195544202251128157795102234260175196404851970082882688443802718195058212801278757622285348989769912553868863403408736264112591634859108169764211662334161362887539945020889525078643020222797624979302135392248302255249830437091116125835979813236472924086879233883758678270596112171232472796168569609592208025980643779754488351537244820516630505128274370814113505940892873664148786781293254781156802312978408538419408057104676986823196888562549659700857120560995760533613775077969805993418646494534999048566514844819710982109001806406481257037528558202326755185184124538645646930173327571648847344237718352858130923120883747972516445102589009688911231804287586928462108292420776801434434765724670696655368161490362572881399348391989907595275236780587292664831847983091890655772373374377696125180794925617037352441472137027282177327638756710306263108175822554007611218736780000966820582332025494199785235211884977686305947294023111886592986818354919934354258649657512969469028841321598417966645462189821035547520156251143752465734040854552370261179382660179815632131625388055059519280098603000947933157819696283673803651666964800038871748593588959498559930072705143815055353166156473190718408358794166396636901608154546478477256538080150696280886533700039501258382335871087368305409085686971868902799250649061938708100155442806377261783199939531771676262376424113060425703653181543437688761098292048483262166391709033193618754884721407198801804941484429718231135942649957789875203565717894249138328516989378609136959977662870857604972746525385554203465060091525091517531528427751348354638536344741503664337595135910636618256736092501206262394959577953044617185314099590184123397381255509035125835762996105282516405210245650236629264799969057206522595261896688084788949481758224640309981429584903062659449824646516634037478691257343133464687506571355405139657717962829840205958053190842122102886734356675729813266283536368823991656532288899666975208895624937551079380843954663057872914752513970735422773119246710092408062165283314348775134468411815152523449322586158451311363328314458104262893035620388013769686699179453940747750909827203083604904035068451775745031797497759983477717721945679630369705409104264644775451596406849853417994850314878938430013956621742607351509193695172883669323013556373631624951261509332838981708041471551123632204735234818393443027084280309299841326985526654623445274864232465059741425533242095723489758985055073980060373169223435029975432042040965916904427267471256434397499230044939662160786212335224378497565171620551500890583282951847724626471097177312837743720373592235209010771836840270799440610853532346289762073186964460715092856301106540087268035843064716323114871564224665095367362538445451566357058868836090854294673742986539128351251076194146872202530970492693657515747258558005805651788930594196891889416338687885403177861755172990732458018155015825089678659262283176586322444548753746977564023099688816016763749139575497700495101964151119293161397699309593664776925441196961655783706788882473169867170143985816859701931203798740646704977253329606584275854558292344703045236091806219268537528897719678085978029960694796778520013386719427070173889589494148469328839031194091851608526807904576050879956610838885561141005553671701183574470673967712851816075540656166353308093668746957085541654746300783836873465538260020932709845152918964794944263368259906824607764793778634667591580303021141388306494002327143486605082104731926215006945342363552813776352138515382812791176654923274240334491371183945745879888225034788008169888412845667773828208572910573588920177072085414678475662853906793373219654065581666631793024778193700582883761658306797411993142781586969397342475837312947537497132004679768270838025469183970842612703219452584724710209015152748444080821971232136974116906792968499892269599179595859749711012806135987558697938888222658795945691495905614588545238344833762050592795785207528938088916135680225816752633480106988395594144772413315750823528318216157702978001742592204932567318847874494325850973697368914110417137976817318051564282717210321005927543046803160187647177444176044137798461669285295135174877746981940178213488869684248664443121634007949793488384607364276646549446740600273336595764942255264894473115220482499530630877456422980033337442851017741817602363926138730183560239648046804609540410228017205242036328127960879527583883579814416711466428049117725868978004687393908247791426326838178476549634536496315927581536813087638497921966533434385275992114809509049192185237822358732203931522098293252615270269563504606599542811731367041232345644416450782780487904590748292052902623256420486327667679169477715290036981768091711382142745247345982095455138611645800099796273221946586591857315223684200138604792263193823886420872501026757094521247309036706796019627314181346482597348409269622306551773523871999306926040288870245640632424285418334670566097098165185261812313062173532045573863556591217033422503173441953571125794485369955085167519918885278403275089132163664574586914104830548887629983008148836142340738988870431034653969631178476579908462509521834102387957162094076127558375409986342984009152719923951236810646264576085182108380295108584007898229945417300323347530750270504154317329719000630523819158375096380656487189473091226271314038072700224967601966390574043428369027848638933986376372100678106541304997074849726006607046297695117692198294477197203161482680287203043817955972412548687183440274106503568157306158090285691729634227524120273068630646067727316463649795475069203531790358675010250802119503062033602875850278881731138120648199539337606079787662296611044649092834165828297409250453608676886650594499503471360448043761797756201412102017450126058837452275561354170320747845282757594834891179399722025078836646619018289276106764097725620197131687837224774520395253500716450656301363351708711785510954334618173644300645754404901751535581200763239889666874158036781958876573576882342290307373631878004044742121747694581866028592446868302074099802386355453248393960104067812330956088074321970277889894210841227182995045866198534080111487303140188237365145809671584931680341133604571453515064313262859863713256182372073673474252192512042610560277768703786795148132557883360556575000357504457276076649458510328468010389070913274553091192348200599929213374897129760520606767188631231459059794313371995604957660007931384809282571052991269923400053241894181439976533126620776188943123404614044781553235635014640889425242899111522637510228114941356693255775321456139415344020412766553836510490877038183120747492351178697970062672561067632301368842968563139914416566121407612337208910236366144286566424143789741710966886023923949869032134989809660868865226745938064532494364279505303986856668332134720295883966925961849076087194375882697312454513059864547348094913998728486619190768000554278245956311888751894963513734083323929340600075682108002212098181474389523365668841388590481525681217320286745233898983992889368870158813302466363334232623841145783611630358061223850342635546826203732643120663675360550205589198842262574825984254107738882690782941791428094585365600115274944862026680873404850654111600695884375735736377465482263399148308054888325084146694948020848841955211870252535484590753861606114479707862080042538607400757840031112536711935175012827219048006467314531989934258188112777840589295707422264421989390798149619062756369898469423688087174628195622042875285804518049639879211260487513057078898419388776168639271433267025488748723416324740532795464599340458994255743457034731190529188460232005252326549589372490086207666414644836153751381346404580896839884239731186473936226546156114180691194594435805391680974938345832131720198005954521073125553408164408614779534590491258492572483753216919752399147674557164097406502583507099355201197739687252826319633893597388077086835555057873090494781098958748491458307384164172333130344330878015376725939865850739684642692009903855957730403794968986153904708344080630029047414273889282269999696647398171983665479193339011984715669850806378909511977510529900793436003158938582588598099826848151837504427157538985099130283293113753109482921759149489784962433857837813777633931434233976273765384419833424816286820264499327391644722958423253075330290656238289746918931743609815145859704166069081143399276577655511435194421528526362202998883325731234406017178045493314434434881943310013670279727093699051099803677287336136144048985906835135441758510522458740219937402009175831989113487810603204567281446549254263824603408336656128314227957936903032893695667274837109551016472193749051980334384479011471163724384381445444620856713351515587655322980195340581619684864991448830429147153389201438774510391912106512321777668899792200715990309113065753806783424684966213090703799992939756334414356250372079701592134215091426361058088481668080215192075701323832768695042844045179436361238889695388940375010795707515653732658044759603529685450837675138572312275054252099396091716144855177773426382998217597793904444204216694400066071523355040707546399435828682666105683375539387428696255443619534959282406493475778311703848969284053978817121944431531274674977476960313458081380969368448222888968786251406950953773141498471772409351476144713332939040439405716813920991819453677042451503576666325304344146378685383721459629863731037645536027262726342829415413204742508876569957823693717262961457395305658024700602764586623390608450084067182990672314245063806740143705357309818895029244871570318858739915381461701022633273411998843676524520011008373646807555559226943055688843288838888475736034009759903768538075287510740059504953407345582529992116606241185917267333707719761688538350055946608304007698356415999501315366749513782455384158568409898698181768633333500795910954405603433708559647710516086647106744667722031274297896194399647534098620816985514228213791922168153990068656266418323876891053904489953021273575834223680678528026236256694906961427429345866784401783240025888439846388178153900222437144320409733511910728584546490727413358969771696601949248399599495692974007019584223094057694461710265237959522561889219643707201808894305719918319138489903435195112222717564053729334189720980915661906695001491798223537392741434328241480728020541449140684012280743680220273911126352261544077717744193404784320723158383783318146540313058924820722429405097101243316153832113994341520038349795991804688369374670178937165034835681371856183159733615846907882249676908641957563376961632505389386003076522213885714397437606276535744485266637286379186020937572442686612449197897505957615895890182883381402638724545205549903975796136862183581477096095853885210778142492580952148532588106026369670960719931056151068943123094917639122627940154168180646417487101741743283250237047731456814338734910631116000768212563099375985034693527336005882903062241447324066284252666215271273694692098846885073452318410382353004716422356507319899186770012765645608463119508607081107147968914098119515506077161675117052671399121411452116775184264287435954964765797532253327867574797349369556320702366280264874493536929783095962275252917528083596470590847454649577291399632424178189414467381608656320860297416593330718557178187050177383472228167711774058116723907603167936142586278713072327980534069103090634072274518657555767210285974105852778788600047578807531262444567521322571508133665322387823834961911210746443197924923433887268914810292313271444520992285994341234795946367891115253167376557912941672385391154644311408173632805178217761613292914835532895841722405759794781446465674946055716060264823703153227448538310891903998588012025017341650979857687160947973019143516599632289974135832797871075767695883010096184547000844596279921084896253739341049712286173875679919012456652324141180553445575389993587874117353959215374929105449635614260295568056178381656145890521141248549864392572097613104626779692282739479316822763648262938581213571928225225344413948819098657768759352268348913541037286534541428624868626039099784856881245306007806134191733488502228750790417559347047728816536524775216714423012794909926661089628220586991145309639934145877173959763130826431246298141859913130401227002178925807087420767723412289479199859772391630521387225757640472756030388965806969033586089737327105951795415050633386706157025377132612063134192583398110302993336834803458097499271010443643317107430533145754510461033688399423316070794055976125476276620690073912048114080942179851735401099793764479563899094539154649387491731057339089946029969694341221739256946281855248092691170005017016986269194111833759844562602641469927405621011093935507712090010525991642649089381251639597974722350614111402053090109015147839153306322704059105486537463069618448392540297174817984892958058524242291898785475793135596503245650773461619391487318173306569970835407930754137245614080895705967242005094558007469904443736708698396329775260398846821291998614971784742005452845265951984827898345241752874114367085053962242246499110873151339872576081933226191964170940269146612427892515605641339653570493823752917779751128089005562716581905489491589762935619306216389001412711275823527985909309546559105047160401052726212536435098492107439915472692640513631121781051936231190753516554195999193143940124373937910943086223102407777236187309596046970991669298411908521443499231751810942643970924083180818629390573176760534088814658302637670897268108248555909369840648317241588365338652894060417393080154619671723173743294639331749305238665651646539177005458871648903987559213359885214513947784610651982417410296612184153037821952525728769642478861262151687852277751450506114006391347960726202224080203778459852052020457518063945079371146891296490948100628071477221423838881294725169875763720598534618938461409864151646034815251496983964124668086405764911652804804142813302604401232262195493337887731023372664604023398297911982959544904298441300629187897191047905154894087910459914563860840688261511574958095644661317527830382837241359769796024217289823862413928314491702209330186066425028063376485179548265345453660670041159387675642790446985036067228173577822619458046942606607025935156474530825069166785322435758387274817578850540838699663080163537377790961986665839591209625429062590905878441998107184450326888871685325478421689380736281739055701720235306573961007368259522259112127566574750023491075426698778531700922073906560573990905852786200571198779996623579813262341489797688134066837467778045641954622961216850089019433135075004693568837076436131552780927599583823264514270397481444104828170098070930436476384189419996219942552952545621153398106622969852349693697909049309301058291094859078853734914669927235682122706466622159795932455903777663118283191109316984703584246847303638908068848888685603976871309528082251615074996722670916427454179615558414376089614443123424347750636863634190694662643720754393224258239280837145322320971132656446934416471101672555015767191347744054133662683790381771598209170803084126839855645996706668381782725114962553679709650918676851163748653402356605391048605985190345097558279042455034431293927686266900716110698729068289677625311126861413361523061113746897866619270983525003911240065053688716705844007189478987551047873546125434652771341165337498462516933760289422923857489816116645955922752360642788358122047105812248532686325684526240496499452493495189820637680693283748731278983464567224715715800720615237980689916635508241794288574594283667083611078418106044903539686218923916050848622240948892973092951194495850845147492029815723260140474776341871341353817842493494362398761315630045340458730833003565162167517758226687800133284120015541887440748729542206773776194320316473156804644646055420930888033031308704074697465755732767777865401817602205626672584602883836570224598433926100900908233544680159506527532907916265330638665932715675097009026452113847144771583220472768666466312653812540727923342957587046580357046126572768091847873293695877933459514354373196096939870409785439085443392607514828340416391093285556615798522347373279916713500881908378621387041861594065747756414489299328519495205545234293739209580721833228859826339194956788240117373787500126798894376360158688825842650624518947575523916772291855839273977605837601592645384652537608813380647321800461430470506829940625268926255546447250436441223183582704006855662019682933583892844479608950707263476264616087635042979965890271666479885950063306840026782929271446196906746130099633010368466464956600011788781982419656390545025132207624227953527482548978788266799974223816213371975062243455687999607334672395519880986869327479642147899959664522455520961272712161368897155056817114328897649260387881760149637491478698257632619806045675672120624518339254561767551482425825333988459592252441912783982960842266447873825515634316166827774995359640091318057404671395043810581834621475463045921214645796994184648809484777158576139244628333394155983063478439896013052945760099520878115475553647978517054583398721277972784612802656130113169329261256602697909260448416663495921025668562170037245480356926529010052636511807913506293036349009942051603475977527626680916955340476403143371130238586708883510486556802693022142189457247118852497684005182498084904275182158981520900704393827395172998552369364146229925073309551261219470235513467844815603626523092829118664686436769829821431632180171575787085399524988402908451102924354852716339449311345068978493295475873627953401468088280369566122649575882015240139760200802291041125429991420094247624103763247379618803615889275684848751653399236356082929957968750956042830727559190557576579819839360665230268579849419280641479817700296818177997541242164508222743424848274325920111651290780719728909622525948740359804820936820660677385365810011947129255699638322841467071163304622557267573630647399095944202434356435622488065165162044463141589895891943007056746341060284769569834544984542248448288985709554132545079417692129308602007267019362873933545954230068000445622093166881528619447963041518697350989412720637528347445235931870795769206822046653889272620774528943892907860006598898079871190115862951369461968022581102370703554760362298040119677343318301822680853231077382557517080380348561240503478516185021410934268202908757407654196294086027748814865633176039015268791885694970224080899196169660606618645181321193198686000775316700884428307986531788104128247977300178068169459861982761922769716594285643524710573090301987579632422571172011882632915482147073172872732240667150840958242339006319466915257053033461787070042087588030902312086293633001189179644813785961881725098635035014727641981992942226244291653475409969715685762055366102082874224130208835348969271689481599596977828021698929761454499388935357981509489445698137646808843416377251958767087955443013972044216949864576272315493578042621844971010996616289418777871847333718940751691706893534135117070990920414816843785154202943477551618334036061607332807655364915375038553463394279270937788157912426761136307752808777357186429441588385430309140902969902413869619175412314051761994424623602273737063288187938129372606868165107541289708669547933817501195020143847524968111607861512809964162415566739240410262997820114970368226656738168385361193286017294178168659101116573383035490219966032092183927825622238221757227561152001400847464430909543649259563922802949729417808167682472670731540232645963845671483352812124368613347019289321505841130007771591256682145696290670609821068529944196188015048549985060687631508377331413081046416935764811368141682574760306860833538879380264035551777397073764149134402224673497840537814289050538571932833956231492836032206038611072687027862534244851476153567758642620246794718219714410611130406512242214637709454239255206751061530890359391408555028621875475778629493087746216722291563512007858957760744192526551790629023099875810494963729963585804315675347461838478032849925804986262092090850747174534715126008680200636638423393125411415837287918825385258676218730046045664797329897912856472035975168169606616836035734369459254695033502360903829159840273494383380910189144755389297988318498115874537314950602373735821075748317504951299492177135857371601706332200418671130170012394614933915621501102453386039817474684453049197352113827472771984876953883093455812454009630425133327757003152040837958580743473536502726740886076324183405839487063460005489344510877942659689568051946617710731072426264941106140058740156294953528822186131191673221063738384995216794370133006086684282920067684421171008984588650821397052319930057620671249689054858379367306169224243116819876586610414885760428043676757664945984571113264617531300055390102997438338111884688751200123024356300045611152965075945914794781083037892775886798710453894099076340103155132329843992061442966146333612774931416480497224722446713538362024244530515660954620440890945811495131997358849189664586393226729995671142270998465328664045317900595771694653820965757671437449411537506670900058372484421604966339095829167876876087543991765857998875022689940081438527184339528146726473817048874685117105481105633253195369228417611654163966042336050786490334445656144822637128381683695172597576207639213070520853607481489174213134179544019027895458082436936494364985874042351539873382206218130813603000499327206122663110138866564522658880207447604768066128595095477945930605485516600774597703641718187880539493939123317575846246842228540352198856784740123590830059792515153118440101489497880675100727924594826100222663643313653149737682215631033987895997581040412559059636286096959986285031247196008330250628638622520645511926600357185866727337924419122094277662952806804597149941741288611938191095434088431522364340408905784370387477650223964510531769989645709914166433261181170820016896342436517859786413143408838447311889902860881839587998083416394357442538523359760401837118916706925603173440996298491965277982024367000768917373306139855386177658174198306329355109405820690396691537297210951847962627236985776572899273596528383694926338773675134570762317735392382461241810787029077358542187750899040731371201645317356345414997202291961935410428882260751553712113095464073872710745275988385264142900241694556446880620480614204035455070388262514404599769823057180206373631951733414293059763215627601625216526637074157812465668324851206227589414340490213841347914851011732791445131259380868674959093757092908088776567425335551050468163814097097194425232669625114569803526839772188388237853582325572577944471114555618442303311830597846293015769064856486139032230397166452795851451166384011718449581046197032350178491171950329000338779037243256400331709965009445066867365225357520405402733132819453295494444708848282479024960435276907470581413212032343254006635625971549642641545308402115086552978014712184384021778580038284009592475248098728634788179510398937328017462153676889548088237130655728477601405282912179321981600466535288515320605091141186805213857104663516590569160475178549106181356567958889718914288978475004863952188303481257630606274784927639159032676374748590485830484287598275842688689362498913114829810541447655035795171526582305042143035818913978884627928666962826047197312459815642941754198890612206691432168140574314765936870907444779970581822482603647593356594697624075272597941289292976131234384534738314983125321786133154356370434775276517316460107083363914320645554682394171825497055327727696543387819568984257697382231070504976556509619872717745234039344184790022280296762181703808075816417063583987379075716620929899413728847243550177954231416001472169402934592057887706479843339092504282782163472558667154045104572451098812627758028200091948085637574939541557866488001328882896198663858107051854422578844740956996406858095366690515586157473593691422487108990242685313077746788628423591086347974394044330213606192451410014053140687871702949077530812955822556282613203337587921142953733566204474248225827118694216568778903662109583403046989162158343536342339170641521610219037011391591060932013941748798569213317967508062886377483661166343481604804081193299526627061299354993072278766144432633551078925663470930582701231572582730677233013352394713430045622895477189221759014950599170707441575822567128873363301022085441721314916804686317650532888408739999873060748031657522012061486872253076295879814526475927499949325851387404326352409403104582221003166007072392278061265354800234300362221348113869460006527952469766060344664772593061823976428329356340872358663345098225374500085384272263700995410312305325748550554915552266551984916802983779468080683436875613677733188959624216144141408518725457444543543166534841511459317534997427357636635727366373262962432448754880273618398618244491817388532329133620759118322639895266783063697353630003591174457538553452555519246967928369215976681503397699513789267827736755845594153889768006978934669440143087827551788397401021224239093571393433438219153091529506550442831656862382637241231028361897782442551604258577853282202633500619991289597265633202442327885074006235680362631519657194796373788846479690374294962671742118223527522039173806662318088613224255156028070956506200466780941084755852635133296870149315414687413735729101136567439701216768638918771177581012771669598068571811580211487485541157211386025242623896917605679620445672476256406624843147184543171876141426702798554750795329468395707097568499693539411616372248292288392773553713563996355135815925903158474269176767518537801227881841727162801069594712712276310624805386156167658461442765482815767638902530124385714494291917686152147293181375175132531825057944068478456398972631470574576224966092086962045672262457151988444092264329725441621465187312516310260572864268357252538952541521408402722298622367523424818425800469760918730759809806099779187257245019490521907837167403018359915320530292977653269885504382973308937749685983523881964369279607675855848397171547827945304591325148498939711659478058624233015381613861068427552992824650106396007459263552578314174440889617919615393704486656289845827093442218971235605461075162377176084005419670109900610856340525681459934018716154059807504097846485277205649134797280104888607120111121101808548722181599788817883435209147153313029072446429108625154099645134174035580130444526816325193020829098398795913720776748592451185910175335528194716207343391757034761096389113791133947292578274446432396766943746072584564342186640014422080402551747637405353093152781760283062664991063428901118037419651082227519420873180259574377382495499543325194095977768573876309323533432580529621373298857832521713326853769308533922464126677585367361389755658670601623138548752779945046986317190246949999392155965594693671272306889473471858079622801423385546011749793670163038371204223678571109471041262789690906933653065103200484168079548184914169046950061965658846836640692209866941681007537100653306361987298979154576068199322480302251044206827340273286223598686573595511787383337172376171627970348227669806054065128238966120340307839060140366853528670566516916520429521232299595939211086340920613944635243847719726541378539968166011305205436976069053321825198486008387771360135163627604303250210689633845837982826339824020126958878770455331465477104434830959375161028124915491675455918073770388503938450697918604868466547517759513097317522476767806773069681893825601774506797781699390386864244176076473138724815298031033243864330692430322000403472558415996479597698001107751392712871315474366794054026571539715104217556290328297810131254709330499628309484438451839973221286098055897722588464143510382698219820956755512588944181747590979041260363514073767426118893199804675255767651867963521865643322796576870731872490555975519110529450531786212205142306991784586724132979869356258696162284362531185079800184881112301200236416324120750899663565065494804534132025789784702553754975582639420140251453712942975549927582680251340113102634187368972386405866426747571306612080928657691739675888127168711472167479057818558837839896018882810585087359214957353352050005604733368167961746731649958811938783100177682768421914140213136852055022080421973055820401692352636154047885172812095463494546142311425168256850350480398749970864900203822907178907192509165519583874599363076424473810904299878283662396233739044652067730179339993525440405982854045723713580642395625591162959886438178082023863194502372240292302816684400469107281086405247494585581148729414355163234000622285506675739772096910406511850384622238413961324207325482709277966297623251311525474981929817150916569714620096874628339878945084263357332857752279770018790537637142749340371810330959220236152310166964248256846312001073639218965888937932846018213505390791991479201597097328448048379675960428608138038445388505065709597576379134201068956549935574724523818790089014457422388232125797539621758971168014546288800955859134410210556090923582628016744563679680600642488573342094958947172423824386223463431464810946137775039378762063693365890061175335800699449169857069914965557492621786451893880431463746754410507925555752288436858329920237125897211927614888754681606846302813177699958235336630403639440051815011858267172173226844985274553071598753191776049990640405470023830814859868774351763328243176768239542585234691772640632429980548223576759321814639302153424248067652128603486153962878166131478411359570717618127989469349958854150293692119836641933424091085100600047980505221824799115704485468030170997867106079673713684633510973872026366388981290078090876001097241127777295863668183448241466016111135896362971129720677136781025129551900974867764757337755297773896596416728002328341144223502560862106348555780357742631755049923757777726480923113465913613746155755659951338193204327035828452505085455686332483199445122683110695695901840948289343468782133523944020929459083880691997036728213694408102150536474072956978462370708646178750663818071369045952274897351646041871746135147327680261916984942667552102940000925639190758401106069921081225132199022571263993711314854328193987576322561891100320829701239299997117331132378379685233130531414454374640727721658042017291657663060799457797695611025992513152651759406431062092285703171150653677914281073944085883918794735912628027435254543999699698184034245091549901373319240101422166694920997376912162987712598647875303328066366412897706312009781800297706732951079646646874210822268144250138224513095898933202764572583545581759122424334484028396715092337347559368118239470553858377622255340566181643541883304702734663664579716965873619822112604847201370584050445256490289960256599473258623695801513015783411307416749210008812325786099270380832324106022643716878455296022039343415350747495385587355740536059608286297542392465654749394132183593767010583733115950449756017812584808159468256421020413448191327310608274794936140800159256483165230585850662920402268881814899619907760158582602529341273978033769741841338814377068439694807733575813250598749869392987332081580129531629853585790273278922475735494566800277529138959925901306602981821278843953229212844721507697539653698425579805081232636888630220989558464286077542648050292893240793149119461061232288779371909064549690961222302934106487735321941656362431077468641931448313482324094515653487867610971933587334491389618181825094127798633481559415316826234258235387664869307637036937259913645992344472712739831476719597026204824966219850298227349132411482768929205066104226262588467046324468353528916037357444757761799090047746530977946081867946937377482196019936631382613091557586111555427518427462739369445643541164151867298318918364088336839394540683530822596679720155589787564615762268421520241335213913037393607084610133743112152063791141726806840262571412711587853927591802517839825495706065179073585834249454858467621709303354752406152872658578054807373208255585006859823667556317336290654788744309494527099840800114123478608293100658978161409672111059265822735265762498454442893587755867786660915514255623603018333398127680559868242362732666716897316381509252716960087916779357057096239847290258114913033274741137271473429989497270990397281346328306219287437639352854882827835831240080978157257057526074108238075277336841786240335029609676621685143667003009245372857575971117828180929634494590902027445378724146347360597680827943071628520443609940545299530502966805391390219569405970100886652749107395158612517027150965678002109014068182363151947337960157712335857141577214778510187859745009298293471554473011855849234055212768368842190265560542617555943197719861522124107976970299217561301769565656301780666771603365931042194746939665507848308521298125408871120844666106555301052694796869358814793465639088121568814161352119582756248130902346540463670328958139896812353596276461448943390660909421010843588277355044527870563805469154341953114692533620247401184171111537410034151761929168986094740865931461140338313434993390472714863622762634677569918908222035006530397251992884749786089862712367333751517465585110147333251977523398333916495929572758678897433023223683409837654049189672218701541758848244509727804746093232462319205267922970876940844368852365725230918774411675432789209943177316133738252562370721259725553343807583628460856312410208740728596204296601675583141893816723012233112892036357865952231089186383184854773521582410262504111297035024066355158844893526805795489255627689696456782294253868232628117333288847630677256940643583526142042059638505207893917485197093964153054425111146103369963028846567321528923586317567895090429522233279370499660356013112278692057255837665928745891342772854068830968107776081560516871651368873962583834559447559167003432510885977513124415916645107165513843866509521807320890541126769901718140355226295808151024000698395802073588673422913402886808196528701767430222606692462910601322619432417544650930838549564170356932734601992508772900573641891614088957600080006106327091013916554466840547985632483258809258375694852532570114465423399645556745634070290058135738473750426141889221087449859434035536287196418491578942368103850424372636352568677960842022105851832343932521209888780356239529472605242267008604227258440550561107085142347160850825203402812454859553106299845697300432348141740574231886953191402211400951908779876461621700526480677190422873971794828476896013984555246293245615071613117373446765505485529289169424236392280149500783850455053447992907286048386557953126926458398387414466967621800999132678095288516933307117479972198711105790642098035985666116670833778940851569416076653035919756059454538424228087457900697285627333510295582321908161136493416344338778142722139641522919908017925500167754975363055025469983034227151674348830203202261275837309361069332168397535310057251960147113080448884755380911514070806470045249606376698643945894715183389602798935914070384235321624835447242958881946535486658728230296239829469291700104532954614761473453216047581420294924726398888889149741553098843723078008358782740170759078539174260955722232963421222135874611998210643957471850992300530627027611290514158108712102648129994055965529258919932193402506700324454848312702392072448937318913672137448143509913580311708235923165715916513446888246519720925242938704805011503207858209065346225825561943916390443396887102502656276337311530572535046513058127203304060526448854650250829961717117301743160573720146348743575336175429707329257861066196302129227288190500036678509857756638052981111353303562008902611049517891937359213532926369726361019374663427851829718343428315382097457456455489917934467669921367897859473101587018383709377551866963924197069351833835000560923126049945674069720555836311356840914714274624515068543875753639134040589729957742228882624364951464884824054619617242856528535032677431526259682746265414166356092898365165335410603302021972823335719045600333625179487152767900201037490408157021494575781579824572052326215609905321037374244914442263316192974738179657750805311394027410051914107387494992855984621858202950009521273093566122466640052378797058988543029165833529908625284525272910443567755282536375064441834843050316898641718998746850173629137638958421322429575651753205597590772911596933722192819894728746113171075707844976206368446812005451071771702233788323047005611598100881158853653628820018687471625855063285684125935721761976726183298610739643955227660961564926035632760547803471051166911715542946589552780454486694375165824484533215964897560682450896520788615591381805823731615384490493732371888526630443885406694218878667837001238382145545775980260904325698263599640525548345850079003083936823578717122659794994881828959386977372489015759557829260093542586826612214281593301390066505430715904186276014309257321803073464010958935605308491167030554375904397990903429700949811114185470496152399407049888474514289898690499096899140559181752637253873650674856773876840883059142935305729029345577966046754472550206958207354735837214026512339451426629538291588871419265709820366225749524542102026638974903156229946908238107113706263668097736543379720206500753804334089273365138573775892681022153389936944561841276656470296625992562335345913699160224034131208220267574154776481593518348715769854031411285547048155110041586710721125969499979678480280079427776735359770245136326525134856082481059900340710216148458505375136301473692590920980682572044528827689069915355329352538589230956082624371487232387386822289092873933873022749219648851422511312500619407019728876954451820492291564718260323814063876752694804389981586326146381879455052787407395286856036268049409428677675790260761230986953034298789927451243032720233555197874093439241499189372096410214629922380925551485123909340816859327329137126157245300317637320993286696803477329072128956569096538206981624676734778739146670099893716887654629789425543076075780405094007495901965278982118862925648818395722729309685044891473167375759542150676271137283676641660157979956308863923450425426359160745187340070940578376639573075433261346932186698353471951236143022495504579105425700162293722992291112212815655846575785468908127765072194144024299057983112275907210025151964117061933073998375829403755085918893146358119895765330838850021900230605831475333217816342015764774002209878072819786490492880155622073024843106734128017182484368024103654569858682343406614918187139513547501059994331211797252880895646803380260486797564117503252979104193759056423880758451316831012113348053128017709182923806873187120480253832031682025340865734153654017173241500845732601915519987516570900634379367314477093153236309078922011576015776388864213181972586307739738309515956912537107084838334700363653736561228932895219882074382702991451510852224363431225683548604046712583835779817896987770240591267849168826344786789287314587679044137252535160731944994321709887790623038413760100221681343324696118237265973610913216506224518515621558149898438586272017559003016247806119281467488370655473582606407625525820806947539798344988801652496837731958794264371459946834627378266664707977872744166253883431135708178792957038815721439828391270561316473351859718209702307500591598070653404733421929667924549566960558359551934147786653652476233729612292224983631691808432126954697297500395150151823628737219904850101449270410819036792032598801712320885954029479738501400938124943989682727250889558082196107758272401822044551823786271431919499371844299729113030390436335759551190873170088426196453948538272575230654770268305296848485795687374567874558047598833125507016701300959411105804157155739398765583353033005052747362255732304742173991189033332100788735864371637879076357018352021619941996257147763324014371337696218088702342450886457010129964818486355399829529833685587793996759338638683723091678058209599047617580636810131860516332413230807223344032539998531879208982554194773433035866932518884255306185475035767874925116335598762031806870431073785486165314259149859274731763977456087275602762391555294020563992326791445744357591853027166358262990084046664101740553011307331857490008423556238105706687841029528214337649355543673098506222204984163505100096170902184037949454511133268785373730756999458653404475878925232342914806118114434812114558145261935714570150948825212753894766615426695141503898646125033938695508832493504122747455061018989384502333871712569158128848821971556680077685529343253191055934265776264128007411081264021954074565965416039289731712327418218650636847813154814798260195373324116573953135609726152345423662162653381379788468550440805767351833635238824527318542704852376580185574952515969713547875778845200158417629595306543509627564566651189632666918767589881951811497636634034306734057725421875648444603008789962990746023428892196404455781617083855506530570598368553799763934131140327397070829007238376455547805382520011643633380145676834387131358036458243295824850090751040284048588104605364723039109804832227156547748006429088986804643631301552616828229147203125544545829327037643434771933182569206645396589789451245981587360211430244263496149714149643052141282976163553469546759520401732244361182271361615726525658085222989410367475335591221482219760673264782482676950215707781402711969659219527572488375210633660795768187243938197787325714776058549916132358887707804228283590524356868523163734662280308591679361447768906308248490885750129479415256027824222188519727753901598463651161724869414280525669062785620826953850019876326174830687335604291665230090336308012290084431473634937632527703435813579456040893900152223955771722906828863664252659396868359890111290114085819292000052200223514510644427978406036572467816421933169450302131255369208741099655096852471810553270848109571000312083142989105796787453375505962688434673448236736094573299100460618179377267074951366180541802769042863561390459140322772001889966605891578949379398468528996748191057786547331715384443152300354094470220646493147221701958871068042651939478935926471753961847499666258842484711368051080589512352599969835651710815608453228672300390325903330404803018811471915359836879445087189916884004015273050823906616088181574166794403734443414074717081944888601731114152623809814611431518765308593292602528461834487143160096743708040542113169549486705083986843998554840270280773740937993045549819476261607763101345898279291845710233111848042403958505157398377626516034271200697270228878724733243635649165688579200975309519350613812764696721744135668259224041440237035375819946405677593893565735072475208632203983485910797332090445972728314723607828353432498786106122776499567662445367739047951380828377678468310206973688826053914165700222081096703655373764390336352632311590733587198713476619266168027714139540037206976365301844058260046546980925196073761918712692086516156954006196797658795242544933085540849874578228589669343668104202816035916951876877132354867351170491558984488694599556729409349619563234608553542727310437956319528133982587081897382339849827685851259724253267287120207761941269877851026761923427520014214056125805029336368708758281641920136564773021634679322091163087908324303366804801270838568198701328127862427333588658458593016214087097792451328908053827328450066461077636051598545491098160826143947869537606763898875049667591378220263298205492756611842966389062005989631147599582369623866442257668967075260302621748090276582483105507713412896373615149275757383936527772393410621519106019959597548063677210673312279739659189776582720876113695337951898991833235980303467080789638461532082825331958039265682007711094023696619471693189194573522320686717064138802500187877365961975553177600877891266768674580307177594435487538060733117817650821037527432128322528443761698894995187474724126877326615117302433598132321725104813652230822529586745239882223908730354056657443895695454828285723628978029460296807004820816088153434778579081107574093787295826079869445198932014856395860129003633184625435352364378501950931868119267828175780734772816741379489389738518031619360016971812191114541599820998485085276566506239965200669941872185867097344392949763943734994912434216371386831554661269922769442421751434607290584816509694211294252531035271963498172679740474713334236199336263014761970246617393569833417091885583016200555315199204320745121739026210338519566788805698630265703055533785812251626285755365410841613402934508932877040920485409653894028207997118305354017014864221306390992084601025715522445936227028466986349813838184481212028383709937196346009332074009887027711497347742697132103197370515646369556055350504881054334014606339582425927465159939769304671625269579571936713713104720890109227319444727305916858409901878732248383066308882764961118819311149272014282805950424914709361104869760961452093568083281640241080518010265294453830184607736481966400083057217922336127184227746861227786355967237872800644808453073221328048624223503758182304720342027587870653256725757314078421909319458248346031656068773782201598244578220152022032881747840228625964877715485402556374103299368679398722824279990568930038012210837389747243179991034751392343257237313538048450884078123478964062370000715868279883051832675049349768272645722894358791694149634999365672224858851486894931080676356393032242733063999506776828245853937174608407489224649906023311348280848868243591962261176269830748787522163894290876526176887524951571984712690397159423127779443915741346263942231089299217508734226236817693556606454470770171379497181269883812164984327903729769006175689016479413437780425963882954980681760810319230254228751094354774274453215324004026828892394719690304676437640407711704484942837084081286161008246860743273558210335774638210205084981374848462641769497840279255868042758618639788710474366287621329838282359486040555697626713658202961783367253410459239838914898542049751561404896196719706164670689317424479641133305856729591976062773694414378518594618844967641629992000358654682631081403765109308697485718589907330947657197596634760290557002290575716294340808372484547379809009836693254743843648217246797606271411497233522046719123348911125233312633212098869963250438841980301436196372182984047759559315456115798679964612373895929423722649418627455309871374851390630464726659344287899729146420303310589820800626054061077346854924827387493228271034632796422157169541211009166102512718965469185213630714481565377726481993769276388270364226225468617505255133599506246126264533554934144662732084494217428943267503789173702646656106438734496325939609119293337571734176775689098830283370031657500779772297511617760315233536376196306591583016648366215702101320999250057434333411164517536265997719614051796445186085258963985625640550861080959392650721053187986633938609287212287556220062164274480055088544764278949137219910284463456097658414597117680063722814602759685930000180016796328347694667997133448263433740680413214183616771932959177851615304064917654428978836493361305916445881536792793933116372560348276696171987562305132908008074237900984082189631563620703252747971006880096954743643653417502778953384540107913896483924101862116668263964068649388031949645642643212295578949586666622871542394826341093306275202241856119205436092290199154687851297835670206998445714227702277355999147540141489429835236021454946114916056504033646946523782943272219237173011508970982624267916126969494713786835853686918279736158079730608847491302764095770807517060965599498811545371545191487679991235100906651402227269930648531490364048380324704916396043683403147463044055184394913914753636089678160705811160267288399001590266501282292461354653594039125293858587048452313287122968193878890252915919780348368888324838939878418635850122757698622643499638969794258689903953682813441705071305012699037556666605381644028158381283091523601785106196648933785326535967462192850248495664578828926804787899583989641590412235937092737443107365908937326327779544057320760748851139791581533027519294461556950783165595717523770936426734274914490408576327880787987937257099302741923392592883700566243533359542299368919482326420103424635072075329043769982942108754293575171757621598402123866936910326441440046445810137806174278644954457882612518877487676827808342829802275771801599245267622160124750252617090946153817443563939883130201188826881908962301078521324805697064069495013590246013821180311721182020465404486236551572512447342285110249030478603227414846003749356143668280387668276530427496054772701231483199356625332575164709253542484295531676080993348388156726699748467768512682486352338587452967704871169518916717805737373636033017893444438627975039325057737754233701280250721272993260155347145799557693042271518265330870334255791973279785589826274213479590471483920613420887948695582247707730269879161261239874368184990519949201491285739635683840703835431146248691089118463825459730423211382039479895498737189657005735341230402410082352182219563546621496496619495480345653097475357811851985113505880893034363072625545375785537130622761679454330796539792460006849562693338477114025155297256649446781624899684852686373036564928261616357999832335071078512215077629441354688015274281692014453463677954271604284274886364596702591246884080127636104796363175506980283020179106221939581371976821885765966137088213583876326601630546586637152879824200584721765481863979292654270218836885228839255558283054187220140160824295663525335521155988195184093940896624679812433354082925488987079796457285396946941059000737025407063346517544590828905478234173921635617574166571441473880689753288760567031605767619708082602374437939610993170148127415480738649256946971444028973506565108089785459697491276943030410948787972993595250749779150603388916137007560811126583781044614105464325025656705335661735398872130020848384187700089402465077531453993943099914537356071406092757956595497246162030524168758011123146815424603700801804054712814423131120327843563354355838182984523994382741936206491298310346399383016207750883147960423989627574035114277630841184572787047755945638620792005911343992483705339559416302530589815546908642720559541528560192192375821982678867202000852885633633346625273215771587091956753773369001406087342781887611301500660778132342492905507675946681202142694460475311433229104619872966927552266898336508492072216631461176361318674414626749518868028690170717900750608767686272372466883961324456960027278135142861169328750840513998338768913356237855036700359127750790693162557307167936850253980925266257369408260974881112171153700320519332565548251658721862274659608270780006065459537970287288514621059007715062864630959662296455449316027873067901378295671536192027191273250073750989852425012293170927914211568303740058658927862325412594797195267928130757864038260981911890186696770248535297415736837107274191324825255286663379134767308865876860038853003099101337875575069249426384825742852804871096066639535568426613179176782898549108276815115508688515518418442900022395579669946164766858670023896080932762318807576656810491801589051290549499470254887877629352826009777283160569365222249507723688103340377328225520926294844065091647791083825592338166374868666933191169387065195027497679721287655531544035725351888729322003635325968739755401690985760144233228884426641512896037994528206469192698944219130439105924668249935091564513233902072188530772112036272982310152303530040075520080074588835627258355219098752671793149124962509200686229360725006435370070290831108290930811505803203141608844865081461647686952121429289806207117704194622638725550421149221088007331597554775031073276745337343796833257378293292615058107141906151758678219900290383436903115837560703857646487010790669655629547713835671355219483181435762972436763648875022569591364059257009853506619827550921838978973962952756429668649226949278536903579688441545533620898415289019100500054755805842617261025792970609134279527461290059443840504095623827004537676016378757479526188459120820779818680305165548160711507766136836249005432382397064182264550336321368333357829096629995428304036415273376397543035727268808567438517557941757204249923043812534225969530741083177314420223534358797781023403758049899249342941649468460771836855356893221534346894742075825986803266540859443553428409090487593523353050297758313344815797161403927349011400451221311482090605862382175881635731913323597903827843725073713379289329742138983765511072371069886090522825279405030014707051702233810810627745990914308857638109327686394829668701740327945769181096619641028496037591232401785402463675420989071664916955340238163641441993414124881218582146583341395690602041749807280190867520000947425034251831653971304010975737958207930709227157202184098929562538893436927751609445457116519898593297414559948713142379559607674252276429523184677609302699898179649449407720194082404738495143241329689230494523996700507629049447286529255627026586197966915082354792555652070529061279737977244513243990817732072466940324262293226310907617589262207136890681651318902094937976550102967783733514277172736440248618964763062456392131616861178799001515878028534511571743433484383658294900638053450636093736060324570589509253832655846608093096402756503472643681395784797636169677536850407733123274777056080722076358897161184133526688502321450370372594433202466543160577275720492180926843633129201700927740097357111146273012217465731004265722437119141339880272693437003866457925614258057808050150944886685968730060690890691706626117308567291419648958861411164999066114886811886134187506177721758934418132892875363026875381543613619502759275438145693889507239916409329546686512395104561564115071482162622355448799758796845135563628546768241769994624568196696592397759130845322092780883952049992245924149713735823675851909181379102156343849030248856359400400786073960623966736623737077957150039827379174105594091229056193203286123231150477364912112149133503491827159739155029505724623300671762044133594153620783123591959086668733216384996818632521587030710443919498031452863349315468003845147957411531287264370642542889954482449602099672070584197591711487038858209876236638549660360914608612814151248036594466418738428357048049958721885474677386008432438913710991263397380906800299657879270501548793002417478423191851024617043934302956830551459653867088567631595337203099500262123921295983805947301529484598809496699212995472620198737420502245768593108792437405601837031363784463742032564762760701596153885756065418098554674919455040999515295357727208175094344130581474745249593571813833080616393949630016843528905141619786829964178416072319662544454285789146864098578603677876900889144927955360865545491081230228294718128241872011555141478101800347144193752719460603165036938489472881938927804848123856850590279858252980835250651089164890568103220591437842108038918139165680179105043702841541149880822250304700987772345802975073175824309953162899636713027588963761233777338255715973900940602264526476291742923617399437701690959295981507180934484160856543564372876004442936385217330462608203125552530235545987987149427407382384437476599653492545624526834308067628168440419220295243385120680481359230667338457684457807616615474307241395673850325301880579610316216605338517816012070230558754846222847727181807560646138150831229756279378266522229650879225108876869411562717591211907511587442655418192786800936230868869957241999485814672578953296049617414286229463945176626331533303889998701374400770120199320814799992672408582816397997361660705171722186279662712373231545771103936976183914795923988928407870580454567328632577727090581062968584525895698217658655005453448306744782898492615926649687237320736850927220696580605501287745732361613413825690372136342211728646856259842357350050645713181950280533136474223561833958785562238680208869035155095115766123162852654896911372763869203472361785329036197839876627755926940676724574729866548151565367421454311772083613727563083034269644338592156326824536889000761584552887543906169659669000608426613430599525257904574918000003856164917643453891481329524599830139902978079329423909717893488008199575479786862997710797153111272332565202132123404991313902999623806205356189393512447570368013486142794390418307024958881945955525476196992515859084419751952266143008523059301913849153301574632225754352606446549347378862168049436175731572920791879529863649530900874176447702244445119678155680903028431995253006871849182239312581180360056177907534447482296634846051408224532169714376016956172378236532538446169699708179739673221149675102775509608558392625554620213945439114883770833281082679013080278807532226546952699375542120061712854642272277539396809107844216093040811007355464990380550470282662659602071480009601261053626223833911282141942807310950271742428281368112840072173649387247799021719935324325848893114543061188416760799921381271876892296126958190621189777145373913763554677479228894476454369521733828425313099548310548525180846992131814207568341941192648920521846018078287609107896918183766137756828570358852113349476080207467710227946839784110218273661902899914651564887504227638699456530755456421485198225692739439353392638676486907923124757573449421508542785541365509097119670691013604796078468747323612646898932010783340722025552360600378161705464535902690887632307015353038332087550834580664622009562565387202144009016877093602687674131601673681749245294183624216476064767140791453233096565064579608005670298546755409593738300362315368286196366993552136043776476942189892379370747229525840184919358770419670599923922582554699269188561334928732079847453787750399496568466647467575218707276493036157840349627052853084676764363048085364986994223080659071606636904186909629601683116051199811347347909572155445289291437288701079897089656755004357787295107862953560630276449844170978845998052098911785353436558057921858021022200183502201234381373455629524625829134932129728409004020755532645372952810514155091755143171255784769622576456676843190984453387628006516461038037846680676589340011829082035937343869251355396764611450096432362492552025710919526029614732073569287445527746719820395627513810333023885020189531303165477298121420887197259341801575550351530751202550106022701022258581808842568512830188096185786328445129917353168790735375521006851792055386472784225308648718292116006335648459939964840276420315110045099263444893521880599055075841682191280633116329033551138263104831983189235161759495055076394279413086264541249639895656790385394357883964323376979699643050861169813619561420901875270408840518324650415255927183361175275848241600437217562811651286168527412025986673400360248534414617331956007016118540142218431564962090824042450746667182421831005793307625561166430973230830286731839037360150942994793274709522520561679515089982615716969858085394350310174367362717140089207259958671890263625805960821336146840969833270931654739090664480124757655584472107864655856266243828711656858727397406598591097898168745684428947655941444588398887054754407095882884322542094722501869635251177526374314318826035745205589031913332205643847765195848736959454863314888130745680227060944514140145786677720512405450043169884922432556092494387780014350881389006765354328623100732777953702797351159233376243957672465610145524640673220674260417387784672057492264340714549885266432786398817091767377112370165154733100225494258036432982983232606516545073130694224389394296892011966436355948608847084492378712913332187253657451342343233687961926517732623626354713046201940729612551099752671637968294321315139838357400348623748258579027488367893418079367555145432153173752322745331373617771306490428225564165565088384545733966664988174729579989943902883572123476607910803651921623013819839354859304096418098479802702300851778815912514003514399476927976445682816766101600613833748921391817441867300464161269994914769681423911394567837784846051664209457610922184844762152533958676909676877243902749431972755786742672717942431174117227986685089483595595586951483658632116506301337784617215301904609238402677429000747780717922506369687444709720507839607246013669726343201934723164697432019433961987268992246974219863160128009594713735303091062571900243854203231230572631465948937783759983369788759203534509447769080237521268019857546491250266723896369412900336211991855006756662417681207781204246486774984700856142098600459084407256462629965006020066653120314548900422821212733663536668735320811992190345937437148065490772024555931311425600180898149037683396806278423977816337534549145638037153426888663671831500852873354740476540699777975897958328132072137625395283992541347507838259049453919008329487554716731687574003556753984231242309027200482101300892697401124197405822518688657320100999870629656748242140974352924985676425459933055553753134743023251931839718213103522123971267497166613164114387982206048125117582345402460080715226856947574368659903160071978659944375476347459970821258850355971994688416678470606225846459529795653224196095349023788274227915916747167166222198089892879280878072133802223294983418013541380802970878241031440094110966773059006638658742609529184860372479057669405369493060718665340900430154558209846084798547691815658713114964797529335151056501849640142876551711822803851499365457266938581020062868840748248454653933325770431788153372084324495844569585719339962983376918957268675110054820067815859109212390893074251614314949500516518837328586425285323594943484467930273346709559480893922135782205702960053334842226644015905835439056166467287860262861094758871679447837904074700871833528029727551125356116531438399676804096698969694250818826054090245389025564330830387741026135612045221621245141199251491042490106762662326663670749565458705712064425960222077546357575596129430542062128422413758206559814689760340240937181604447902188743394497025207285156973784252537745060780269987652004196974150155618019835579038225605760323791619403266862563920896842649911462230237769108563308680402213489125264124044553594419853804492256147641757210753261437368004786900153272897868560818634075099853456032595936509857754231497146202341563631151646314393276034903362088473338136071413637607750094531841179651033520280108318038780006618459746845210027994117513067362672000831441651823743672810542731067559885085394252780065586223198961679694152544292130640866159366038178590814162745554923177092337462940584698835559044236986145412934394811822983231773038553370574941444282732145183886886027253899455739795349749866311956231932864462257718614626702275328954901505433713574278923146774333116561928410644092459578326928553014831891301471428455110540573352580949802486419882381530797832688138250451833788012555818788953386923135361556463344843986094818723743753001559530996787405378530365720485521364857947166838909918075362466508864831296896396281106794586873501402551030781005322426740587264179507819468285823752320685608837639985043407616009366965803070458970020771661503214394114566132680225542630324643986573228224275929530364392309786029435381646302179253422431227138477007452975906509539149262759618891707685873619312575604426916312150140237399545219819759893230423436252827368489131173975466900040790933108611189502698702212585607191851721864391017622688888903079205637651890507991561252318804764044003627406705719511873568586242866243606285248615777192237270436816352633197196358888474901491237824256386301119331456332109106722341725812364895207908168901334960731242130648344646105509721828353125436918334926839573076373436506669040342225332630653881234004748996723955744587572474447925876586333725011467462880897124586450857148258040061962711331832076014440221389973478277506011722010359489467331087098990102431000301313614634429665063444329619239803463145181195044186377907289584704829451437867374570919610421555023659718421202964686932473950623748994988551340134172571979102127930986352858041682127422214301805469050117129834705485650236846695134851715782379734615447576638570553147113017607841763371947630513518422215695732158087088080896062633706634845904070233550296074780157226765137822472383365083022132108797606777676018222912013168420785733444255698273475527326530272483739496052843908261373943510511187310451770536670191814035019757811795544363892323214917364145018841571870022459530179200723361030331281150917071673986233210192435254396443516967636703514159906981585186460755293423441472299025157203095241041044827694198152905106352433113017194072834557065342721674565000107947488095755568293466250270365551747064315069202668813949344365133566242323580287766707972696909168971060376152677494892119324841429735794655101461418085725291450368709766790204072335040248075128642672848964256541437191471669248324035627693468238665181523435785913526142741898192514908137549165345260091460041567747758913833399773344185738248633375429501012896114948271411739341032284240831654428054011336027353356679854747629853382074234458705917174263584138226767198964299960660772850756392554928311876122893147346815916894955551365481642323290807117183394381951580689330813784256854534660923212272695653146828724516466890175275352307989675856261364719478606322017925993765425384716366991963977610103052973553173067855682131030671575452205000900579156271917488236696918686220181297177160205025532573815201974077604021362426078192355324831399490412275139595021737105223709341169415752278256822036736709507485368054574603490536754155555484934468286762670998165538761850120285103075860004693397773497562977046447391977530107740872571592372105003324193903970254499325056949231995273527929895261094386691649007752705911105522217371762329178930555727387324754897178857816808228266476459089848131659595222688958837007620202036955239007744651165403026218547966584419977784947953485518440357881027002670068803109309047020498443116120009557850293029904088196088496552328568517309757049882106974967146599317248533560394639529063091456635134168531015878462558467212080307262435249565907823368528654668662068131300668981813050879834155142776803684248624565354183519637179441890254806698443531021113251183630070718945700586433423048037615576729979067282013765608713498674400928235313287597990655285774195608231107414037545903021741766329558540503162210808820874030489948667864707128785396021125377344903433282309176980838961979843413927110398456889989984074810686101044062972621872734316409570713141560348583232817562027000950625613922898706977428380533154286531529298615682448853373093384867308671519209634769507603912996882129458656509925342742144156585607005107240650155293982682384446015249829406547732500451915063690223895557166689763170591850507998136321375763924754482293808719314813008840299479546894916737843517828502885011309438589830451422082991976847070252427264611463645571226418455078676688148475873919196708347204443510168454719892231446416573914440805298555567404586488893990774853896590954316705192666343082641626290408296554511441863269627755127646110019813538212218044456725733849941345194917539520414037508273199541737700884081007841984911973319694306919521332864486392786101964139329444805952825821362053365825868527089101915211771786231773497020990009020079920088771606293813227571574257015880895232542837329597038101855329303034711347718152085878867638874697505842138251069984500884793392894687858052374999913983350772973982171913167249921316615088040033825270458504926294965983871346477157641958152733101958608077416153608197792059574482064252384621197756664357698763267757775329746436722247903221999350537580931249311735319335327732570351448764805704102568411071125891120397254623852132530568985768423112561040405893238423052930087262816582205574086150982400733675161507887050537405386681179839503812465936938482030207971740381726922206092524691016840824363755919711720356297751685307882827155554241720879110056035858372561966561336538141408114577114234765864483860640425405582658855120807311171742602779172568633129391339572463780582008783026704373122456554973662629548280011118305545668581777156033059850255114611092113971277866628377479351055426892482299133883504306281295962551119693742223035063652258441709085011381460678004533364281977640422810150822486158339505281532755404292781536634269616255123929371254982647794368277228153437143357941441211105622519120286815093720430782303532437855873508980689076364669790113039655480314291030160382334136936452023483946888935919197448216494189877668613973139878936483860967993112872709023288226072670974725239470712631901537109275638727148326825252471384208689183590969499729802997225984733727104628456135203110960805599022446329470814982126662198611294696585687405861439412907863827307131794278226157286379495702763803005446710219689442073830753808736180685980833765533013451912832041889307569978254710286451293063207752388814222739532852310818168947590257487663407727828405950586218651953485078466776685137586163917321579780489159133723916225660533770511605170004736022261039985691175169527606945362969267527616413254476509438586968905598247446645519772670536505741893702272558596395777710541813457524597609098793124915392945365057358960869355162202019625114573876868149407087360276495861304605537620062180984080144825583709013659370058463013053491435622378680088539936154122457778818329923193045348598272535743297442785784441700300256413758940747021432327591756211845817192955138537016757185947335131287353879741392521730776306759943722902656705813022818388007939467611330512836633026445307784170378032090496249148271950827815734881924858863134837519863824149894894804093121912840839492835569560663268239467954323006039088423263534833194322076012042647897010065249535123230808533034265464700013137104923731587927457598284173248536937356859679933205929261131004524743487045795238246005422318365172245922232985715461342272618291833591305013652428711233704679696523656538994473102343075995383668819790860524677712498525869215107112735469341602335490009481981610602839229925204832090418849660896107875971503994324249941157828385986670696760746712184512429354808139916290769821857930524931578541438447654077259328519225549622279454722440652800565848751238227403134180752932526826320160846903125990980384615909570802683076699754067508752519555108262280162120041603254099420402180757603433988911320290626895923244575630193244926670644918148896078621092153046880460575237495108033499710539132009319935387602448959128844656026361590330997328253613023901833526712097459597635581358561069198225599079396399151529834759310724002838598001479885164121600864112069163012066291820126820884489910672427742373872502984139048641555734105307550486746973279949841596487316966866375595287958890989786699381246654052316513019307109930862076619152661443516735677484094892602667377605893865508000314842568357858243018805064428674218077027927167592287056450157058620190569971257105507218272105989629116780772194342577824359759198698581108823154966817137296624959180527622275217739362452966457865392643647369570963526176036220890680171849823785410079436265489772109235647708087811297010578455978274621954396934698033096664208089038739998279192289839684767366978338660071544051149529277426600653218104321713836703271980658462567772831992151134590534719635231207816429854281728215005384155587851110343973949970511137666832192939364351877387872909840046866018359815056953563427531509041549740263637601744435923849866978639118498369679557906140048141150457468824669896409021461525527908513132551001619544916054800814988048546822879538625082659804328851645771048598532089072833061107503701518579135344699583392783450219285606926243795467752882680667558901103194663722670568102999202350171146411533366183352421248122846885944268207143476897619234222063059150729118555813522405546482367671370840905064127525300258432523638582584908419487073067102133964207537741520316921643273528507261298942106897495503304341798805896628382064594977116118763477897526477441969337605740194929279761273708246796451371598633366295167567832080495327913502067445946152295665543110930045044572030135359913364537882706779904402861675032808283462326422789064860678303386629105334772696931982853740040511521733660507402990576893692555334778569276010478410885089969292034314792996304745139887109325306489756784169892646368631768514133348590071238859554945037976532269394126531512000855128280939439083954069848001041776788062003935131486542005660076048815016822232896324466883073999823959255698802982260113264574420137242249434562391480028437835803493342253295064249375053644105670270706224390638964644072097597383605380148568169536697241945002405441575283645938810830066607457504671275098268592636724197601775873116569141167840337392436715035261090999056831962260849608551540305993735479219008070478102929197765468765769178588204776765853314316199940084534903594757224024148082096980355233111508918299685681647373940635814596444562551751271504287148920858569491093388250847792234689952437666191188121419825698753443863855078398497264839589974844465491987544144010375385676208783081600835495828752265664834262007803106333856133688364552018861550340907758021797071538100084134384335135074558855790718347482974688624523095907913130071758084160091917321702290105669753145758515056386603334217248969258010105992629791608816545079875960437889668379724003493526466227820303330637520044149513181473604695909710634449451173790827072040038532752064210268202611553449828596123092610329197123734016094870034097887468253805332837888276828211017130900709063493193877476973882139355563026996978205416467255243582262723024971901975242864838302448072796303832319413675993713952617668790657876648857321193642379031013209034249660085885972962143412846286801389207157912435887934774915985805539701187329265978123049326850613689879731322112813599736955229815651096203294510180267852487766877282725982214373136878108088972680562820031116723970291021766276764724749934536000757626812462276254933581998531515050666776302347438247852564763963128169130143827651859957972170032972105956981631797879283271748516585392304338830743947640895010336691018629092570564753041748254053308834726680745141703460008556209115849696623319370447981226295970856741388923313558288173446171095090016324307939516842227972521873713847546026841372991311144548111431499518610578104190637483343490178031039537414164941094415074361762078924503432541042436739162618344153900440534536994105356444697834747812513107190710142653405719306200779470332885030653022191246999039014272689911359629720295849915458490687526608334259761169924427604250326393224419108596278120520383176675512691364724636191588890586251341791493598393332837313433610236989913659853040739926273093670315826163990933090102198314994894714836363700116981139459662265453687930067770988659249827203676888363445960675845485995459514818271784373741915177852480062309535820255469210496963493072902541325888286945060567334409458339765804305066733974357822324923933822392114114279969229954666380720979960726675412695698339197447850705689103469401765064000780132912649322143092942626194361165145463594829952225373910094418266088147216279625343636331305226490204199974874751945572412410937366269649122875655119107198529561908769497528649836192860852455782393172009332927202530825400388379541822355356034431869607554451852305011962428532832688529110080066739491704562511747485747967955726688295760708139076604511884847453252668970118842493550561637910606926670049047748329739120394326276678660420254545769961378793500280689903575690441482007209175227452143602488051017468093393716152798198648821543093650111705469841052753363372332572813495208620552932683065157391382640337078452131697453430180050981527743333088378834308294872991677259079134822932737543098775912861730314355800829144855399526964413661549970645854072687988868757653911548142319701321596511472671367117874197495167454246744726185697146961718527397880466053860653573963893063610210910623281227689470972519621006710353461069372260294678482191437608368758571436173760258765075575139387070611455637578456124478281014322651772971040777794303225102298709483499912084496463911073545680092147776573225201351571496528467182973949415735787688422034226534505760547652499630348316674027481191506784359210893202372248177717541787385753502498241892491615043242113302660168556772257445284315100028904143016175833176026823852659804182755684838293918005768926657118959318220249624164179291442700013203333843645496958023907110450899686810906993550568542106267175486958714260534473320081645433522679385435098667716070319687439975326670677404815915317832457689915763070645572623865173423861507550546892203333283466805196179061658344970671119990173604995920891218857826147154109386006999639294798741141902363963242916560106770786578868940494371035655399311267771753470967061428096612669665432670535679583150533898110175908832849569558207195126839176517069602905042072136092960101410631281414160573665620757135554253935959195304782617012261398245760925379589195860989484841946062660720973058442309424595651396819269889042448107496228604524715448043923246602103792427299708817536149815873824256992786130323682991018886941734938084735544027194552791007884448622796674156284519253447554648925731671449225991009045024527165496238334837857402839051718847417930073337104224273035817991453298954823831549108624581027039878922284649285664992389566707966399675635491933559490270004946093648268577109650587637444315060695596277186468589932772550696517192315193720409998893643993593844870049048579599365737769360184652109309714984124007371320492150156052061643614876903547188557100627678018725400700512666679181998249440767531678360002816061137671320732132555351311076280350245914736118266420762833535305892972271585907328347864909077475892962222431148357997489481139377164687967311815131338352478178641324521658144718328553895915391793989713062395355724455706115924569320632232867354060814810277279549454666856280333490135702484756944680961424887674484078881308877280529551409148829078093380252249010023385201056289213530125283457894479985533343643288981089459899537158854326474483511142753405514092730663554682573295500938368638407394050074257133571462892732077719528247091055535950691999187030057567248840342543125936585155896318675282372464058517633380181627285232049372823086820818356063900808201569351456331157430084431132126631246971550444912419012720478367691808588509861123437077931928900540488660861893244007173770824450000583189855182968951921775298903494416642900437774980563773658935594817802493839481796110828489131411549062425477647139719112452773870638274729081927956610935165449784992110489529715939659716293321627431760400246779987459638636255880684386314116869688913648817014853678794158288961049299793076839946962328700091151984196086582253717567408325345411626226226823060888741267370235315326046880808583798393253008893736652830607273064497421667216749761147496508426424398576086997356007084336573845833482941645628313568138295061057293649520660374196326688624350229932069659795973929538593556030059181945807352791866301355650073580331060193550522410153155842120889320774242961272258091080548942960459916354551131821853401042167137733850506732351870031540541066743025173441963830125200394906758510177679774983896375770353673029164916345657920083676196486281353740358872348303817751946568221054794095383146635116604191894071515535840720490575869042957240902750560997363038385757934487268958505128037035505384625860379257882687319319448701369514595045068631706112954909784553739469761300575900053077034369241137416638777715932071498887726662694023606234676216033954275657272077808252792890532288849167517090248561346091818784635636193048300132901245998751818149351891959424298462745713024547573204244832667428562216884140700337308399866234397946125741251889920336977232984475410248338421722832736716917133291773806142589828681342232187171627579787633283483493529363108526929894296199811858965420244719814557628599005563667242632595878734685830410357993775736459172982483752287817703683875535133109438809003904728739642136662695901720226182430545435533345359513775629722082031972488779649042920932953330961304206598143796445962270715976254928871689943335731945455125741959731687968121383730180876514262373845378892534682695433118375520939998580481213090711638326352423536595061612701953170146693945937240377607333903179014738292175090900377906929655476611260482387782109252239617115752576421041083373002525292848053072155664487183669091975015675133744087378580143065372936355188008915639810313881569773721571648004996027096172894685428099267384753326665841613191514353077548796396783413269403415791542997724429899912226845113022586321476329505610209065830120549151176857887084887195874557232878514869331021674795184751196823307572353858489019498473638217738523386048923811256210283191712013791453001734906108760541169452438130808641062192017422174346065980550387492982051137347114557710481687402393240702708237901998371624306811909875714647857896781071319752743544302783593716748605084217575749255723465059323378717217417027866797236566636547151323795617252105145715921772465698530372523499837571122462952902594381312074396883932747817124831968310392870304541851914417009351445103157196963887386851844945088169080573763267232108390660330565983686446792535088022421075443053074634646745040771649463208862132187870468131665530392883833465145094974103383615088230417215549593720006065189538513070995743763645036301293624292544996039904101663834547163657998413437675179145179353953386177453200932115042353373792671607078806029072079798802929771665574429274646807644272787412399355712122644362270445057082700700304564475133292187404983283257017883580047952479022333963528647896346601688422160210215461606711094407971829086748303696440358496194989954852226657157813003107968824554831474588023021413032183787622567641967424510654151357255838330614503165973170650159229424919872237867863925048564747618097756100963108019295091025533717161196590672306611557789488598336905131307189378086024507054520670248427772203080365811660404292528931026865641992878344098378686006550949403134708641337395560326057939772141741127244696820851086190601747221190007501005334413544253914486815481837209568608760970893335402652536005422784942112159613236498353568185973420473244400044460535253756370621402345730976009211651213055915568934009433320776808823194637671174245260867587874060966743575988342289475593337156616800842655862357252428345270356684928864899523760871201712288754882768737781328110271639605083992037459680090413218192052391750679695728064218909773644635375758509426243456783085293451634896233817117454644430365174617649172787109944777519797071110204775969721594573429227755757905230966696231368986388333103660634249711980502607709266284661092081645015738156606130458379539606754976526434632402412750927386714893075664416577819798242333421559393944941830930584453806260326718205543180585707705128343134300315628043651411287136653713219488907116457034516019571733963885428373299350047762750551941271154718491382768878074848782030715453498019844404060663208203866562805478771539193195726663283518393028669538103067748520895223947743263223932659388717059517068457257857696798947973519924926269890012068186413426416226710520478748506103430820388223552042609819088979938803531713275989923895514284333683844373062177776224338437763958953736218869887333497061849852682033837506603853648506561525847805967369650392720065111290519148105443886756632957160439796079935108576129559116452315741703517910042038460452480720017351274110274690788748661522597656915854005091472920464474523354200604999956440717583130779510490717919304752769495418366374005611968028663430510594340122213031617973654119287375215295580246699989925155261694981993030450474452191897793535910262261048979748573507656197542283564343809940678826301773347673186876105065597634311379296712198080792386132662599062611581335398062445788854913315837790729115443669652099098558577900145917475432254762717909933207793127090300072731592185983384712723836227343707802331608259217445362897822006473258265037179841936707105736393296756066687748889823383998843038072460005242343146139982559108358140361915833544475303489736779854038643635451159053152653580991054049548475716862396954364898763981621994041137504942936884025763304738070287424089664932283715902180704388433368891748226824573089448349300108796075114459762652269850679785313541015925930035895568962420441900378722532654564408486596119883341642787311839909801533902734762555912470619144185688085515586040084565181946863874941210017277707462478420521905700926961145642354780182259617475339874315936039321762800886111112386938009724670651264312722021012683129203328190125697234832435766327502225270291525843635046778348687439847499967266562662260346804474206320708566955724398268451536669048399053690602420540503213728571350411311929103948441394736656379174117346724491575135591615464256345399679881433688229394168939389551864754733029933855700233313207182677244529401540543894666191569950863671744367719073996390647921158100096235247328561152767116754580866493819714169014644019864000546855227104136149511574804996701937871926104280615478268661584662422499571508836367408322191404501751335897445637589648288263350856197044681197485537662765563625626298934082376276723762971449238090949799179941637960204311654955779992330860339130071025960964949789228414794539942075981212458719393898964159718620291869594804471365822252895168416003752910947023407483236973444485488527407423777115623757442573522236861993673656375032261561443093918081718247005074425646702447409071846871201756201083334529639803125453855068848223858277724080934055078510210095824196092159942202129347578118442125088495671200577524944531191790519391456879460947740224783045172110372579018973539011596628164761683620020284306027957663934116020752521912318027719770740881219997760272919283465457898263783734565773866468426326248430529690635581714485803579460681368404988301237630705511090323094467155139879760802746937444012353769712316157584366991862869807825236995858030838507815926691815474910553937642700884908572337687171739438087960763159821392835730936624816929679365541498956167904069258744072998783370414150101864360894187222026033185473472384400300803722064393551852370250829872098535310611007289889214854276393444382518187232653929331139664866342287492346313234699900639090565488734954853165751008460631996288589581450176800585571130662640060874717471404319820123421144527077907292637114036125264540043922806363336222361891792526584557030554196649071608624780229986946164269786702817477306988606220091147942145549899097603008465270989253716731104000988260828719507572594011200295960209839021771624435134472133820115315168910513918648851039412643438876642726030639406105798040233604882637868125873341719984798197029531562344041257733849611118247923812578731704946455301116920603023510916792499271649103980303294845137757034220694959025767352365814609451128951634475408179361896308928300245309742495444026861373556415648366236259377221981708309295625801643949313330678357980347185418075934962660371794941970422595397268286999102152070227367179052752597347130580521234521778605673466090477265335493752101186803498143238789867820371534080182034407106457957606526496953905311709847774183315415836216367751258982087044664247261950691968297722518372670299338145183403909680605693864325703223533875803196610381803397155105996670776976806236079356364995797486249302284074422520895413380792137533944418830717264345138227279402538145774642114189927859070180792645833694187618493166029641967281350033868819844264438335496937490751853073000165895065372752580662926115214078690657159487218614965217059347919222903601353179233797429766173766823981471132309133511817150602003017548515525656111261221969412247589631283747555177128617499337518640156897028395110299466510736768264270873808449688023090728469884470863362966888094736308580640435861577076405957347971742258592828663915718539037207103824301657163676884597057665077383831412658302862973749225666209394586204170319947105425986691549519342936813816048775754524351147419029772581883635416692169016955565963594572017563215429977583560096235122574820423135014141793080669005882625828477178241205044656915373237798747443545999953982425916662282418193394850018972481071866049257030203506225273501874119374305350201759613301367951304568438554862773161137823525254749762813400720336721792404743887570609891857291817169518511309360336700108694443370290651437413218063570825956907629287456472008968089802706772904401283878394547283960179398745972967476205130165455266313309098888255867931050816198650161708747437967793275532473447588927817573789573583597904696056981912073591696508523919251400835522790714301023031255930244489318157304622975476515529091260154440587023765949608768104102822339778793040125060939008055515514123317025428269386520615664279727015133280235336816999428772923237504338700454627017163344279149908941902197228569277280731367515699065295664755952678096194849839163824986659932507473918803515769321481554152895068306263104046811709354906121020899824490217126178195269153171236385714968248510717004739170789543990600657490992669967813246963166257392172791597959933747732480091768257871250704168788612848258289369369584873879462199467652110717759305091008143932258281526536441132249323407661600271643032729908067684156859585081953713861951618071970809883562039893251225895282638180623219325775487109136908397057922853246813231992033326336829213126587549281599951020102035558651583822754206614435914567233706817062386676761438485027242051421955701608269502378362155679295331958748232454827533435950248421914656263157889514366136184970262905785468213632561617609497547069130162134555532080828358880421349624485527931818148931387076538274567297708214525366939615767587675195923938824624462657429322904842519827308582205460209285693127785432256920922407859660510981661591903045251927879431900012802103725647868908942298907191520403014742655814013139681414198051428737169878890673141290538712375357040953475869774256625571022945463597996538921196094498098316683966243535954137321304813254597944465186092867229495328267987033216963284146171571324653056181245955504140682407151710318009094033505424226512449433077328092301163560155627540978778851534581864254794465578827007430793193255431752443855810614181335956387175369784257896853049535134616323985019573795068596210496326855320104557885541898546659334178955925559902902771584125570483945858286415475746524169148093708647296701160238103750016417018598233397782686991165414263563360831163653040881317671993054707724901768759954807850775213142067478470389461770305904223960334830473324835613825572684704642318455579663575321249461633420918863646019996435055028442283609178306898440123027560303496429341816239014132687436742309529005239311677264348436607432855106409091529101545729371339628081497630634795473755635844224120810038801826931296675439430319396225973716349895939958320945037835494641210267888074721143627345083279026717426192947711270547421167146182755581383788350045406277238668450885157228437497985432602040711181027271698237225291129670633339745817762402306934745062061588320948496814319960352893257229414968191067530205746478660508629147944852887490935371695852366742646023238237225963441148776582606051501550994076192768051801940824496628647202060692641660912385138464816747466479194860680604315390673805544528446308261047248985633153727419124505876925419796983506393167442291607824412195572792183254091334802737811976218908427553868553020485560114041448002132679393434705656126092290390366621170905136353403416004974844502051926457139827433207711183265757318046438609420037057607848268020246892300101772311640099028084065441142788451207984076600014351620253042440121183257952563398170050433053808275477157712515971398813674820827229588828544501768769285871289433015558867032203563025498446519037276428951399080264903054577862311816554519635074110687502759384686258850974998537246666161391318621618731897862568409206849742487509630484487591321844136058929657832118761253357840993995227697135241205829722716173382730953086969091938090285839718966810296110919248285534337920478275717936034179766776853685904319940508303508285603120205222778881719361515182960016796655856430786013468605384131918093739560605549319352504237196758682366626578089639460300579332670160749340370930129863936112244650994172413007433928316813335326509164013573970981866267166497459067899814513477492599929524864983599676372273548407624192732666899284695261334928986935196711975357544574763442121212035927310052758049088785161912063830757355498621348145497945740551233359223683133838780976625228014279405499116244121456526131518757148845499942305629612925441437212034721119572500186426467128752522509220846295608436120094594277684822572905701201317221960143253838523220304173140539658272201424824823593249202614749462069799910053663401803440742416712547362900130981838661044392419033727056758401056226986364508295974700767037864970381549332287126388896004067203088219615893460937822215904726444113223636944556839612178223324487394189654366735961986775986162633499868699351710487695581792930638722303783591915749130041997862760648567815212361068857035020723354460436944765821526639006743185149935022702467262958723061658599029019475284428313808820231092912582637696475182717886162066472181049026220143072581711980495824105705615550397352186472994815149294627969651531652936254671893980095549534339372544181652870295192120836223578513444916352545303503581350615460211210211430826304940393668457102800439822012069296319218924107016154984707576459438995926412855126915933034707749361129785977676557773005863978975358838418592568445059243728470210585287713127451213733188453714813095690788979121368874804442640669903576627172280379439472556429869690032398667812832974570315088877308462231450189005266091006380100921792205896912624549953473215330509695400446559274377678441022242650364484027168029672974900077315769526557857187506744041103598146894647795114529314133729802107337806298737324156657971197631287976739859920231884444563506509226942403263931884582028463922668860408142820008485213299672105301022645477733690032056723849184951863796341627715053248969515095228651990264851156181011030626222191352156265826901176002178531853707621583559849060797082914703372683815197664854121406479906795374358997757338689157615836866441157362134461427102100920772952931465135910356848264311261152069874980694256975911406099256192549576129552266209340539185319130554983852470428775020145517757088318060694271604351387437883999442342397935600353935441452078398426978829176055497728387235542144375353103676012382223515443237196152262380261502110507902995481359379173437318651939976655421815736560304624656188341663598301909967844204137774629766964303100576319347647742511457252116856532725041009831453515464341733547851322033456444632692091847386108157989337283231200489291608660517704793545307210335782808939880125439306083416029891512563125854048611337717662124164618390959613237332403282272271818694164220577263767059836188940445029560979482548315935212230315140190494762762053290548101240023591227376419370855066509978376088911632933748753969960954525199956882849248298092116996335504574376051637134980613523980665818003599034289004216227172289292695363281479324159086261120518195582334063000445322967251472586760166349786944213027835486483336042443342180225086165268088474269640867325632756985094467622535489933479024832128567356032753455468421643778935561884440231849529926248097394395788758136632197887613927379453191855246758489282634656411776759359807941584461043382877726297706124710115253501898649220212689811309942784692367547088155049963784514619123442072482010152428594779283012458658503788493558503173281655944428612974161693644840910458291890796362680703016885635029952525900308796006127247947039680723581995824683145485201305050667553563308483126452865595910818042010034230745167016013308430740136269367602290849330863927724208283444985388654174302331972001657699709924619913398868798835910224986557553677120732356542090616571013113940614699354092114889299168539308208258713806135938844102435354155628860246118779782360139701440505469593959570619321254477447328643605359383065142712894023817572878126293598331560205608850771668316175795090923093537010342686070458839522045955754388786098607925416223169503819308394584938384676587895494853293204576879615422388636507080748989574671321254936025224525312197578329554549338171330451273861314482465492204950488938716518012099901261469692814872010940956588792886808597527947189458998484676860982960752645622342972376678327763011811677224045520374114799757729722204851094082955485550950792849098884389053207440563924142086779878164586609122759550575414671446463230125389825372463962889980610135534580721862814860711161868137771243181344028149450992822954044136373274249985432196880347805373850180309693305475760738166197573334866875648050943854812132223241839938584686683350461304729523966847492855378798423285604308454930768944092182084301244544179244612244813426447237873291916451597338367855246244054377675837869960483360090978102345600376198087770359640508754654748035555668957698705017934288120982816761950761736551569366381752774028704361575252548605761264093618455162854500849225924241791245220235530462007983070910527282671094374716761399799621439837910266425756773606148895426834530729933529737220543713163363741498137382838812898394858087622269874724573662541877354166690537965580098279671634599441460226190512933185595236754258443473266402097248609185617656305730823540000289724805201473428600949483580134384566613689919963440989555044989754295354106298337177056834745299985275947292542433922298950356063533635499161427565241447546221287202445858580758921031264018399277247556976264785499598992657052376158945300975634562350496677974053235183675361931145882493760476616729344553273962474971250090647396369454459931060269354998397966162844788321108733389328085971586052159655962097906784552407296461414226571866159870962645451902936463475581943550869125923134277121443003212039893539517081475978367910994021629605125670182016916047966110562164979332237536897148235864098142707166694927908024370667617407803007208702397922933397605260290026347978453761379373197054879420679966736503283289113076068833294237218840807073183783317080164913500498330417369297834957634721870533061792458263731639958111508821289111674210568538809045573302853139569340691963954233356328577673789105625566801986856604597555198438458583203675175687723545691370899011915113612655218101440794885468973236356970950203463550335029307387304907159418455528655930759992291930903935992778263826434167455144950892108067030573767819358863647491404876392603880966959762212173806963672792791849922892272860721026969374333698611925225965779255089222184675068223248369598549881102616507355727136934883509117688555291220328078828812711811429471724587890894829839788317790049015883065999200504993987542148716141982080960733260284401571510403452879047007947723412735267641538152751544694755293006089495814457405424080781376219720071363652234910890833357549732341857344609078762879189700522791679791038600535159039164970371215358557211176723272679997393440242003872644199726367608983293309718641776124548568006541817296488225109105195580564820724602893202670810172491360755434288700633853384676117871376578103781569566893953585049503092041258611590649279951512758631350932786467928432687586294644815449013743980345755002410077686075582362206441700623592099394849363241998176451987029801046102891467181872103119913710055565616530034085212403930031858471829816515713629446949154823156184372834248081028944197802397401918321349685387687264489103859685276053980396102759265889405297526044382921955609655298440037590500644299334036052942131232735529830845963083905247051633842460062403804460380994727888114527873505053266696466246089937206690491765961804090541620835482610869073974399628588729597801996264101390350325299460085936494151806319128370704054387150385720057612282098161409227441148749803103220908903452306251119975160382279725808475741623454897003630039789352599011647687291843365906458604149430025953000537512628042823907068764398382600155115788488039483842003134674222122170769611182085709543648165996891486140695876347380989210300487865427766721107593253107984534583059563825038115090683357442761190461365039804527716652584522443236205922872617961273184146912321686693607604220058026518773509573874988242091243967390405387448031681560421655558566589815330989789356005127265316616988684363151346614525460209789484670855868356762490895543444860644670851546185840198696552738020617714577186413114755542852837258939849998892809338777866457207750627999322333702362823513700418988869577155443296877240407005425262550355746552701554681637333106635634704769524302813609340676751413064410215978721192647866717310013641524485657778171683567623911880079048988056672889217561303567811846809289644917082343630267019924710957876844907460191268943702966042722421929411411885109113991874537894667338009219979506070098697901035338285261055719926038827753166852027121354287407738177960758376749655925496684543544388977558642090919401245023826642401559295596404235351874347130069425741025913409524170472237065112118137419251131408527657085172767977994916697665446947352775250088492811945043466490489517327212639157124602739459363189286016204476279073981702484211759994755687785112076813951906362649114047689725723616440005363492200391686398693714141417861878273000183463168819845999461846017001388115403568023883506022673791655213811883727338675833804516239663327948023848360563172319172434332911794015626398153922788406453806840936186512309772643572321096987402391916186556126251042247375991746684523775507211009332748263458634023925489696277949104859876554766374490560329163682818679584061261328194548434730932034825557477061815631887309278596931362671867192489281166298607530952352664885310632786480578374297285279202403830431981963739360188701451573414111756030348755682627084962732304880721177628053848320927552721467917471432486086913533499313589824777621977418521892869923094836002006268668961769115195808833599228735807882157481356429883532997656422938953361565170235972349402525547913078770485759941647313916873606019267006089798162893805095976446314960443050550147170532826755982024502679409065017856037912254026909481677774358335540035730146979600191693824961181519740256756803420348113937132045927925968650129381441905716900615096529190851085169909958972255279994455065720724708664909779243064218014441553938579118925447473749521642065210570002951203233286556310440600950716939662648176562627374322785970975851994179424958215300270846015835716441378641483365719346748577352055728744664702383644431071538716370591720414396743455702057416592286694950984279745174544225378770154487320048134464532329289534662358787553915821413143323370153184835430262403505521531748920886826041423632795464362344349201003448027795550322067139326795114664557522336329140777491184128800375798055356015185074091553431001845979605751073844753759717898153441809376645333158460176165344878656298808008911791612067440294897071924630701435729525031034960253521268043950490750704609894085993216450463713822969205206211808627004310430849114994434371364591757810805608469602756213140448822331320179299795232334863631044108337741163903682129391187047508176135646188079689728585760040423117715696453571426538947377293892043357382707221765417216186737958055163706443890579352043056243376675902414162040596185944270855047719215729148676488523368900135578484457885424789181115687728676437382361288009882820140848753429026465090839999534250974046838520303323074956788495293541963904677366072769765229507692715279457614395217314570189946410237703049598710755123607404367575901703118053460328879669002681950293533603801131102882843870314580800895681214353366062585896796674413010232325488446369279756694414425160097363174377192773005455384914821308370976484072703212657960828312685368264930823605735725270957206253898772610403140435250124799830764586958548479522976522645848360568082797804554454180812775903963014948237992411945437421716835808681044585828688947378104770182292166652229447047627217157638600732753839639056145699418762899913186541475502499096182440223368014565773000609573847834048906526466048943056038682117827019679498670185915504284979990418208244267022803568362412180795954728209936934287056143128595289956885822641350980571137958312863138503645173559173590645884052500212894280087761813807158071578668466078256414483322192441556963784357766848418205346917447339283253252980265499875477519658731017892928572538239480510990782604589176537364685302490195457678713416194633531669393137628164886467886193484330752311511107871165202267204752324415115967756443190684617517023217559711737872537665755114189978089648866520589120495643015841821150465697366876387036837715353996363085847527601494789457172282996041525597320764586881017116646859943735085306339021624111527627873120585041231300529045697396867746842716328475150775527952918268391101367010368673936261542048067838918768030337781958640548798749918286940076579842393541922201166559898433792906201107822651512331518606566386922266591086805551930840079230805137834871467099553026458709976896928245948317802442169943311149194053416727340873522889314617269489803151219628052893951158516882128773056596414584499385554607220679173519815612179774903846418597480964821323669003662060180814898291404530934203490888956806837051458386739586829146679848916967477116621941627463104768713643613826785140638997079635182335803809728186890649035612392820074868555946845705065000374620325965881855623322718762144179964895685525614714431328038530986167628523715568857860570337003377355102206747360248542609972308197132236400055782735948592081395180877240913213517081076237995203027836427922042552589546256668368982692345445190613731069119354546311677077292271654033705840624839977420312149931761085986743350068612007868683976912408231818281679745831234087973872721515337775911326388404376097784241625367162844377942026346926223028111402396819175709352651941235574837477809705192861122992480977452469299555364911292104676492659036529686863570013405319642697066499382769931138097762697853019289386132875400699675835186385503410399645176202538971382989552701951341850724467953788066874058228924922854441323950715281974042274290049292923277976052839512944345283888309865881760768252144677762363310840545879858956041266364055704480635556853687898517442078267368020978470702591708771735519573034182519584775461930788447257995751842941437996748930401605434694699993425706718314717101268908241272371322136443136796759350578600719515959479539123325856903111518548654429372648825339451267870878296994163426835216477598237393668620040016354139150843811159648887631973527309905576521867235717403255293144028464760895659819890077050328390274361517103471730286760748584383674556054129742366289890017282738670936886736320438905421062338207551619580393516492332453233272956886535529867480210632292016222077545549983914583299111404005177827304020824079182746320812660543959507217591078632512315374384590566469465124162760439926222967813376298645286557097678602180390979645686222194086753370293852680615457859411295242135061533371876470167879493822860786131781291651077556680310990037897977895155248899509357026506958692088715932431165833146670798193736421405932720127939680536236079272762122478175262561588622199069750004025660077968010159118574970455619895612539092148622280049211550651078862101963249923886721610153810336123318897311316304109196361881795965373345290800149508867330511376704292514234304818516920035154636318055220380775581339460182252791572244476270080378883964175056044795192047726870109996194988212970068493037301497524843656733077143227441766194708598939295554239782580704202581638486640780794514542809709842163021625803310106134452165049659645367675577964946654429984314610830660749290363121012123223257206604615427792065757042184483706118990628556298470948702937466750871410250580982072153246711684318095370439466589594584499651321723034090079964332227912135746489599477287720222227327137601384865852973143964396708259627248064116438887226022295439403770752155182493288278340497536665642807985125524615476854694255527482739958135956256185122461189181995889901990197951027125520372583895645443622157999596991509215186546009510106789894790981396115224954047750026316430160080919346346352314801932968610681057012936482681322117303148543743550730259338797813496626895577075263967760277459377873718615679844401927672995322981932487157583839722980856242749494439682745834671264182812127556338569919600796181908392394122187971957469557450208233010911935901782522112791906579003467286557415220728757354334315428082857637366941906107517505273597341351069896725768030136505216620612313550118481017440754406350609874584731361675149519171996924320658201940539089296950786167213789114189628223398606876781881118697851122365882019006830044031246706186380847368593850258652856536525241545753051481835042399762128059139697755119092756621614204722654115524213489348567952363199014875485344792091505921965401299084283239503606166748677886620321901454135523732877221956638769002171977221832472844399809233680633951175286106863672563250099125176262065983707586659913335883982000508145303927962541722356696923557084475524929872701984279505549327246183529694160000458050159110956725265592564638212599398160303269444024102720532814331902157193446901284738593511835986345373508738487015868650773994390667085044952815250698725886967346871064678669424328125857939032951375163967355991067482909226325532025587098159597423546482683762258689374576186111968642977432900118129974783934149206862088934316586278171485653702558834851204835394380561779422438851049018129262225553051280204170543048961897810617502957409635408501619417689384923028578687394375285431607891495272009347391713687394096188876255120425371169167623538621199578730634523698251338557268292266882280141829888008873663235825507020019409181655529164234483655404796851984202081261867090846377175506613468058682106769465481075363353270856631179470534091238509220851270658810618596941686915713152266120795695365774914920680996837343824939686537309579075474219905426405777419216558096290848256651637927016621201295761775839661018383509983444484961608243894019633422136824065506542926676888805739793051981334842711160041897526700692598781452269455770553366226988615895280342378367362763291554275915891279220461236648722750533522242837311639940916394765684615707007675150699967206950874814140331198149011764985347502510340377203338713395857091692266816561611835859347495672966185812077173695631526926685219145938372744720242983731600892065193638195337636998103284450657429024550514966222946273567879666065621584746899130191401708588382775857438359465835661606177567806739168238960408041858497414571467455613593978313271878105307541052277191435473483691085014135252520761884519143351545410228634322539846525492870039177709809319669162129068506640254241490141437709311432020100701362531689978591250985014824811146307991367728022730010596601519254758850983806980672884499322194358701160561303116930196891373491828186405402259238682770480982011857956614952243176534718268502674600111745422065388918768422239074534705788790426005506745947389254147608002614399186739403279420099512986805676901771749335555885178797412835521502638060693351368408139550571867109239403730240213674710816184789874023844380324386304889563644633962844577783883828533238675711689809416159823331617985471018646601626301079212208145449693761543024262040549421521725687650520550179924043049541226653759765008828034838721069213335426124295252258362907943300053602716849292835707200249088631904717952274679033786156805362967308736191973052377300151898528477955279243097271369649106295492171813571730160727746158918034660876392846188453137948562588093881849350770816508824082531621914048598897978413686950745996470594232765848564191708507144545471945386894104306374567111453795288515213894251959174416486445987131561120209697084792244494432743114523668922269817437180209228014898073102518557996925212565250123258882543482633823377904479654801820920927318123009051524048290235935133812026577941564291516538983896621697365318588322973640280599701186167932967751638541380830740473737482071927283477141008494376779352883583729217441518920855257730766219364229792229763408922087115674135489171838495786345691752950614092027256115282841856291826179876295843296722791430560680439024845884708812328171311556673753223990310631923721753880654449803158079722082337069182246928474562406749888434069250742026721414448873267988738645611012107935066494690593282457408409805829077384275484609347976872568201848395960125614334253090504426267298943724462972079399705882661909881176287805408957924621127193317977334062496838400175879327170002768774913811021507641267236527516444455345473248274931161731299935907986419561202910594651395944513282368173090020970099463178503186077950427445456305564832620421923618827899184484417131316215460057513976719023820623786633561910663207985609788055788465659619836847464580254574940966312329768039935162470623437322442840680508807154041829270587974176825951112988529384997193844492269469628700248274804553669361274458986671730835144966247875428972555142977311317858142835932338207899573839472715181941115604083061628849256044434984464529956751163409752918248573813130282001580172443880587370463058034152996811335264355162365768460360960442105078146539882607130303770861088752966501529844476055333163408882262987905065479357431926980574950221414690824142681083663353219841104508783947260758466731367943468540600652800963797092456342257997851196299581541799842635922422793003356975176238328882869614058148552388150933269379100286453076511996885740434184067875714409680761702326194977991810486676978323787582952753413431691547156494575498731886714994998381006373137625028706925328702005016429574302916484584153291872971990403001342020585510113326003602966741940912919723349698257607481016741658082571604451490203089111823336662700585255848057699681704514474243558627892840664034411309907911373332773768351569153711726812986649818509556464779845929075395378680482164001980836401197232602051563111423036934008702384771974669654947495543327597240834258428344867517371900555631033147836601927220826979713502241922893174853869269986264713970182099174784855392911868404334438231294566253542322326284502352455055244821222262829131873135412568006291796946394472877128892263504585992429665869337823370593827206731120810907713150029999627535884323982090382193705100288346775540659850237746062148903674651639338539452818212974007994161813880797127844661116596112968282373995501326735909327016001596259804189224410051602449180496875648167384191319196505029121713539065778607801929959022285254468494219279884250974909987473009205024913741293251018558056906735148506913480417162109435335240515755752337494683354179445626108062254716619589959274885733896455460933289233961893023259535260657365828190732749158256262965749539009618087908314046369340324237445869218767344737315045219991575600791120570230996533013574550319218226911758731046904520762776093949189287760257855335077950978193944741164940315488400145429019973433813736637820146148073800177575042661815630036436212179300411436748677016067979248347862058144550700330410688150357647441274147925566471504450902066930228004689628852218360041888255437708485444855541318997309483057054095173293767982250393942769589103512275857756566176588936590139699777122840497854284148917978919008484789993208686697408872227898909175183423311781438700594239357293528388609604647605252126334719200893284986653448821993272052198141928625159422011166751172328171883465971504661107968296251086763969619073635154158225384942986816255034502645834224506525070193614519842715098738763670780148079581721637812246990165681724152110337625399789124038547724011761429966736139973108931240547924107768430418057470383989564854633266373183499726647720291445683747654396521972489046484531583714408367515157635243459978844184938579214256039305108395480185506299256267943386975846173163928629051803772975859971018573952847675290455153626166410300772572555846164202210258912170144801914413682509741753201238558472156075527656901233776784819042502933593408231280165922346670899908888211488779153572505378763539251725561862742338594055488548454333748437409653808580601270300322710687879012458511111919596560766192564372345268618348680583539308831078567170337530289805396106138350551936736068163062846230131165993591818152298489287443416329508179887322430867589317117196601926669059219107670793157888835741458311962965186394193771765498036994374445475215912700599173695096769180290823131202676378598742462363634208129108657548032957840837417386346902441482794496991358619267591855734983059619665194082384259697634928055426892987687882595688647485699966437489336925256718436524874226617685061642107124889528591068590097087260817293126291285736378851856936498778891403012090960167989552277467407199477007501300900285026081436601889776430840118876022217626384017906125931315535133641085719343423174531773605948425597340363722472964244239193390758440896294609134567540185668924087801231504801933964420144905662533779770402367042812778335541029941182326932613285792324537549844146091634305152131585305368438310843197488981204802961167303082957594031781920480843897868030512372981462168900768275097519042494146694044599350016231859818450005181907349456923166193230268263772471097497520470792836968554512899244756515668993166392194901331455785645081272822143818804642349319056467600250730091839545326206595830548614078423414595303898018988764145441321556771657239648516030505301408640115131738461207111247045675893471258421004373070604704479653143875105789518508148688912418810746200706952401277637730471340541006490113295898188787358988534671290627137731339554099255300406930951210229502796528469280946248215127877560068450085032208566938940970992301447552116740435552803659598236361228232291344569372719936566286864936701227371579834018171062387810679771511680220729742876720575272782431840388643079000476839161380515085634130261993902847640124742349919170406617274499270349679712585746439668609654261360118879838198986307911038670977131758312014700966815897305829883182649164849863868166717004491660423603643559587125559402615459807532258758006286410152102973751189592933984799822999760552540414618693671153489218590457222571383283510813303768127033233281512391135155735931905174090675365002659082164390032611056190456277050245554929275763581919013254519276029197014887899660579319597377480163571287252123873617322793104503474221643609952762250713623269172552965478333367638351658911863388006168864706383435849192091765608864639951985767085879064078852879900918413242157926657463496027538117956978906055000835297829921146199103093427070212156261349701846746888876674873047951876049773503015491647387121516506509207857402910462700018454119746640253681478489952748839133183568794698094532659502382125235818721122801036434748518637947742803699623934797365454533863808875208309394396579802659920888358173045645943476887434510173226809063643016126494908001280791649755050098584202010522587293404358724602643050432248591363490772913233485615125541092789841648853785900550483881893863927826473228126638076848444667337240091134951583290535173304742527230549375063774042779055767565163402552734580900826300314928944326564051466025044131198241004799956190746349901958189714744366912003697704511627752922933006048990236310534066415487947486630034287682378986479336081545601361033471686390059157993263666772676277184127490893409673463203530548867996986816692536519360931048070142956891519142869490324056989293568965978497445978262667947063106042717779207595083175079850750385568819909721804819250088531998296111793087127775384537443524054316949930406267444728086593484371237579613294668143772258386805736119406197786122944188773645815666023839914734825855230246785559030904723748177990097155940677789370590332312304841887239291013841430129736366085574432342101649143258851189368956997260716131921656304981793011666556366468209769128423531560849548750352821228425399615548304152758603202913938857673431205755419943735677330358792419176870969135795100721603968322439694986831222103983570603011601363272054134026723291295762331289001281710943292540370103378078254988887839821965213243730344262768544551794235686483971887922984612674100606186142354498855634017338735535597645853315251620090250143035304514661293025024731567856141984321288890871137271923550532283823121387440027705507884311238295066562447486029793267491761256412090710681611942198374966849842568939665972137237746883521801698694271156167388559116282090680322887817274297747909018474500927299581593048602762496890399304667380656815627364210667963084391538228538739855730853787367206733338125354598787530399295456419207654253256001781206979652624165626012405294788860237178584158833306305832057970501536019201285376206762319189740277043280599981551650299094682546396632824136236185155206491009851205030801028099940517792815710220293795071391132306894427849369819052828177298512369952631993249295639444567042482867398975917689387478770303944802953272938006543087930044872718715729985750649103638329758451501356733676701517104450775811270280931272908053560645198609702623329738713247570270930429827378209700096813353991662306308627355261995753171224830416225612970747351147422128788456190881018971737351150695377159228872859157144646883556900326684102597399339402302756693570492933919606167579956195610645622949992583694364814747198632843257846250798167923026791598482174097458439880094329275450043595504181938857062419462566673675973029699112907478400643255649398224896460672691555338538764349111705728389293437123977509165025522253893125265175802400680845283104648201409078045944276422186017464655642263193232646776689753120503378495166768317281423695052155935233894211939807388563637470814662372144058933873202260266687961273623660838767285322266782474249746154594055476082261320213526852255535166991010399758772413131219210954138982774536768549943967375794480499421026739707715427623735998625118208177471860558075220653956882403090480210231087016675867205207583247491110887107765899514357465989547217923958249628254364060223307166365010972741449030880012926451546013783144221104496542517006442802390838515409229686225552061767128984789994142165831139021688614394262781107336286210954119896677556459201074477847850010331448044134668241809328169182656383119741523265806619228249301339224220488490550121950438113135977187506398761583016138200952485774900800100718525826628376876825187234661297823792799351873265418880986153999335426450708064629183305445417726804563201140284927965303928339253631587076529241375187567233878772997096803137519599366280198435839319556004551270179738857268519852018029355428258854607522917084527973959284428143729943963711419022717303902622323957603166187893041267991944564391424898945436518185011567355560003442620088626019222062193192960952845580598989538458366058325594612717357632947378581537663300844703076598791300778485086776328650707716448105840091769872834780788630443458368324317897163154359198663767305078133908715713901030342754167561313096434646428480522382280449039835735860082555472482678296372516938645631216663868658028967027937127779606490837680256513693665059133902798260528050405325960288194157436923835473331687756795825032108141288205871905149041747218537329943349753713631683110875145774388627143919972329939948896145595039234952575749304040421745726320540028255383773253725359239824654179593670374363208731115749856995882055135154449216345230338697741454725728674805641750723269715276638558338230058846779457171359051143256772685313378195742829476365041450092113757554799537570540198025022768223692808149444780298817593747445664278201239117770692862875577298720586519227453279319024809057393977627193625312932783112907917390299342547514919255721408638398937324817246500637010425897381063676870962870554016567342987096472259734020379355644505328837945403524227397750491663114542574534760281662858347308863873756318978983353968923499193389840462087342121592148138089691154390277203863798209107695609643592068812415050295720225385575390718581802972279830975253038306012161056782888008557190535342562400197266180515607518671442211276335535834232178411640238051079513742472028618985532221011417802691977529381368494548067284610798423177850957204680780154800544130828647198060608356263138624762229364647718669921560788593217226432524220799365455861978467758741020821252868953493229292472510253653017378635512503980342120507662522918255326199662190321883822481120683796937080909164415267220911169024774264887175702486134288146100261324012113764575834615843136640193153782062587245589988496540023235342117433132968516237266196791242820900035052809051540279165270417672997156624443694144153291093550689191515748503900092985499771859595178066900855919588346260260127138081188592049482073161923385011976724611015175496507823986552735281549082122200142094101765585013173411486303440109624455901432307218003306326631267306242054719742087187439904275022235307092455748941237508504523689264845467410147544566547174964283473911966580155851344015767586111206020049888045435380442241708161530998055396870606808096389452821359476356290308834401704918559583572472938766601230719819085496993248479921232241632418800467183970704026553511351932691650132746104618169441081565351141721638786827117896836778330280407352075005694669152572169554310528120550870461170854350547717215263404582919143046988113365230063062436517356455158255897639606347672168013060355224562451515743339228957426686514987685491783562309486016542041964622277516760777463252299633198790836461488615151683910663910116440298072194633899100805821810963470872349720819266391214814304349968674021288837479712045085689206779204895082517141655469461165948215881053182641597451269922491982018836804696846073607363129460928706883240484990460113982949353246268737019842926699578422633682067324259186154232940717846301028646499899567583222189695574376035762229765289064919639219900761153200703677712991753073720946840313766107935736866695684639765131329600549024859471733352445234564926236634580353420421384482914865861778317621515402968143145905619185866163573298534714974748641224901600188942090931145577855365950406099308957521105222629930921877053029160436519677895178420868391804136608532130883686214977676995454027815578793889342065899937686157561021049193558981690628349022755993446615788869399358581138805306336016176960722805785116468319937936885615721261175601454309191778367647785217147520852953794496365390324715934511810393506229085169210933470378357277248221174798350142159945697793229482335097647171270676988136503420677543249718717868845736893147412293360658763426236229001790958835776575802630649277547612429591454914812849502083284404551943582526880988450093224200978783816807061561176228154559345141763227354385412799203049517421058545961442070129589352449332392430520792061088427052402191077668107411948326613636313633745932915287135920942727766045270611779402759667412854612530234494167427949047152018027925786633456853219777968829208413554758638338036849808223539005829383483278184169032690414058171991558097219569789021894123606558014284303194436110200673363999238921145830212344321677978920444423870459892991985645167104942100052722432570702636203723390677725346066623899773506572316801971525188700948491228720487183760869435982582035886410033619763344119585116984586231920741770081145306491412291209498997699667963953576149822003324806154910856399249212608083153858196728375327503613989931069870245786163166508470415958471334286379776726519508353114478673369544070111306933536461013089030347490102395290967330254288821974704227919677800091618689359676811572176070462183878073598511754776379015175380984655030233750766849803568956031876144739079730282053868547889775819476534331312196943739357939874159055913222120351206014984731949941511748596141352942283265349843912855280982900466016547026165915097407264634989230654355392766386869397370878800699635885741690456885566293072615415515431580001350249407074313009096848349668925098860987298714766238823090720491596674381331042877667794054655995844521874687989685350810707603140860729826874406374468795147953500289743231606603014088184095324203263553272778599749004351967587900620103924051214518290198143163176786757024101666619683814209334523105685352443931260960050955826617618392427872525537864024290202752306681114749442696314433103539898630448701765472735237029036419242429055512074263162933135040589419408167803366340024361489763285675157286958666776896486026417590823582719277156102626921723247574471374411172888982935118405997945463245419750159581143424399341763731637276672853573445348575606508817085290771782173918998750657176838953024014403443257800099732901102312854747667967404316003287549629315924445070103370093202614080777941372533810455365563995584809307199410140042171237126770172511074631593243748269454861897753539690528683342435637912666769338725323453081758012391396135512184419970722611220068667764837488989702614429551894936385030615059332988844502396277433841954669946389344816104374285509992661093197048401830474078699662767984107383541267437857528035139852917865976542980710015226349529965045567033299542854355793521128624651978458385296041561937840096361978965122781255853373454821376137720033184332235134638547338853563792269666634136629323571497158695720258045853879057754388536122206918175544333209477605150444440973517168429123521293205565071470903728360406096803136535511425554172829687453319007519335993482465615382116052354466186510265167800864685760744402053645606281319921983692132302203662128312470721333338557038666090392361259158771933811910701825831772057795790536759585049185788363331049307103960229900591651282362376549276066222031373237760929133437427829724130033283153070190754412534367701679495356391562437956995845104047456614041386708771421532392508278855678104961667377009633613641791447094948945358763154177579513619328640271731419459497467098709924981381927971579559732095268574212292985031071566841006624243588796992964513959757728804651468485523988616701600646653907188070177026266869839570242095945236584931458777232648514674476181570863787961575600373210437986743828021509943272896927534519160243591211791317168263060625261388497877993415092544323591109167307961990831485046144126953016645154925398879099880051087031104031390153968900045851055274680017484643812896891213232341466648431632564042999451209313600769915159941054920832853097968909238450111727410740829692343068069170015821322342544541802131650726065408484243704871378322520775394439594213481662393783878677256896873243372989515235573344380036279762589445278547802055208361121378614294103126811958056315973701163549118595053144477770399172615311468185315452658816952613812668515281630252459605734874921772060577499262633968660575680274383386389094678343175638246023201444575047374633704482931344610544022275444366541680296351526166634981160560741978315075621071747258841245953365718948212370587829945369928932562166197607636436139788365170026793209282591162887471685076445593904934268141145657019460735306623618087903016069184971185947462900743908286516168268775439488137389109363460674779036893922907962467576581502265190486638002729047736853521841041267872340286739993850260894303343171028006216630733913913337749828732804546391132533881402966703565199158908714655864728852668682278995367443642446245978055049762946312458530868127697954687607446141653224924705689828878090673813740165284752782788866077826276739375044016355587837088397906940326912279840245326094490335259990884552581262055424324280771581873997808882092306029756325768883598648366118199683587323516730913219012138902444384155439054897145487800858219496420575644087182012625859507459932753146908697864781681581117858643346918160302746027477012801213080060749738562386157260399008316909952386305919892532651429571705029206637531727142509899390140473770618765193835836051822219396666719116230408408942402562526783992682724679159470685892754296982497248483630734245856934374118268218675466763299080665953566133628632312520398456061281714052616963825209557494490487524755813893573504028349167102468514982679948102324783869333536189680060922549028649227299269758397602534629564593629425935700605402278954116222026982555927934085153842586723225408647053311171544318523685885584416895116111901402650646946284849559781335157978635809787536588671927557673578475085333352475290029855004980207787187601874224360003378659115636327263028539781183352197823677671401828903666635007908559428957536282454337260544098610469170216123313287106424133686095055860974065385716814197381035540017396236311810582416440904804425121166200080392439942441422924669784170691142874863931323630125389434410190152746058674305044927565491346986335034960596160810428500543117363957779584311022916104445061574608104246789059638397475189961144411050950188949344533426645644297372935788719540647241884313709776083319730295930485704544923746041546848488563222536211026185880271172220962139548107111674557591405745172109790279558260981484607911687805695165626085194495790686135905845904768436104526677589809917476318593189516300912984288023078116415623377768235203339425246950048485032141715376370436047881788437743121311878767686146128761265083821486163976741883582846357565096129728323453687694294936701532296883093650265762010499730457736720084386022009635399323657518307726866218335851582422446098838068657386094824112939917012800137836384772299763783923229098295908695570761209495830167615825620247322371423523717223655796615710764317630390878346204224064824393620241364100263534209729091930739045143443563902365678787840235607887157964348344433805910712471943422883532462948182699169668876850065396059388671255498759708716021032205554742927912556040767394787803400511398516710760358764723684026100790862671760009853817280760177742434474246056306357977358046907990074938335945714851979900968538807516992199768912029030756319651303620771714497924497895577701404093271791737480297804377148148830896407573865307290510245127256022852198158912814030981976557443450915534948514040149511702477636424440397808110440997650561503869377244880961908573554530999207056027739021581592244742240221010459969815977700397374637555833887989121684177186003892901283611007580841926905521932117393160870980128939330693362113933291192176520477006636390698110493649961053053145756039345807187715715432300997722011010660205684448045424544588405247816124307553997650728028247313831705990374273450038416226182189556140469427985091180546460696373032186854022528323341801972927417723225987688363039115694087551520667240416948295398354400208947883029587990719896185371704701445288373026404674985994768710052448021915788506332134652570086256120597208413316684352252037804542657923162514353061089740095673113037722206593943280217243726905345758610173146655692294718070155678970978964403603112924121245945253315926514233612815684759493594534138971210055485946943301561860380024047118118051360695694483237048927421493610308428191105343712690136093022948407595406125996106909016910628115249171142431536840299485218003054148210535445834227889558368772857388192307080228795171508130012600987262934334582176314273125422445911350236700812745855718521616424057911327951395497958036500260434152677904238950744030090767332522447969842793682068568292705440409741043842449234775033729102252401312161133813940800149270140053481061211484334459502775850961028133514849232290076667504932638704783882438055034010157188826148681066598064497902167930414547132432560943487910978475249253918468478065630458003272606434515867259608784129999621571530124664303613565921659318043449315551483864636272240049801041333154825924922597874073182235041025952697841488367567758081018250402752609105197605906707495505807917759014126529114423492902567517572378806858728347867614934046898034734763800630875255638396333002950963793550294058516394594777875888596266373655446964734030347286317660636015561713111502135762200786558868583634822473863975102436295747678986331561247029057867732615382670789288214003779059779936983645256346185118884122491960297861093843627583641863629076150174895766461731293841382245185410974924266602340910018478046291819874665131134139355060595556490133799438369107107576240045954735719018868285621694165239166406771853010271161318276916749830638236627214679963370805067408017378968994210914143045301999883048861628279350597849296344839361554214603783701627698786514442357347928859472047883017962294938343478056747888446469706965543769306739728906004360527642404859723639649775330152403379411481981448430827423547446349683855821780446529680735275046213058468833337200298895901874728022818807000216628558402334249204507913051556033137081518408282950685229374419315040689835629908936685761090921197405665359165443335373224230996441249674323347588768613293846653860025845047360081219080735624041092643355074181395133848498722482658274947232403379174885012920118514080391295062163450540745045501890630595041128823816381576031044679676620598514635705043014242650496419538331516485516927892107699194090210862363137015754611818321144702458918897079042677527114433095635780866919467596652116657159035248482276261211685017359878487548617567318569513316049550364147883784744866935745491497605155583704247730534407399031903814623804724872819878374093325280453047401239876261323516619402365116458739006204408867595002991830494933919451519318337375811351953457434017957925035853904367912745146784638580440955776864743221184405686201518201841421434869828787685926042251755778902015057448753265529778626136488973802761532876746461203179120047631113659727847845352332629269475430505094113433940812409085779594086713978149891593428102106243707336084913124909675868274981175453862764548957750095784076892820965915934817046365055488734169679999337986298828296068177223398164865089956445875969369141012319678856431238048932423006390716043837734484818813436715429518880707509453539280565457005227395629508741117187330359575201476353361690570622475230145574472328021350560656059387464720146861065154967027996532631563079963622747580872747627679831667583296037542931222030768603906267087725065273964197066940847535747574507629574883931805920015826775283334486847074441920920472207388745878193832141701223033298725450576060849566570209700460891477927368558571613225381880265664172473023723821057526543022960532406425640761967161493301720373327876247685245732638597236711642235775021312655999703026654862436574857530172376846861593265625132390490707308222197753450069422610913720841542468614626571780499238377036824179932108225660350485293363348387568994549762390677827218489347162748656499511393381967221136999024419146176675905813329992604106767569116701875715531717288063335265772857149476781420672781348578797152210864047366559266188628359732802297086495811804981289350117184987188432075524718349826926192739552245507771757410063507045652489004055597306553259381989086879521605542582340805571324222780724531764444980010788477435536369524249814784513820989419783517858036861461324165091639663172003899923169214355558323122883261963969512792303942198578740049865292225401286138834097251782386065823744137665754979437932591607599683584861393773088349950195830450329830910021186388626942099841667487219621326341895291429601309290059376034497581652512408977488005014678762143178984009038317131494199079752144827851834075503842831421180206801785654390769942746670599418915023133042204896124767993377371876784375079164049938492978692931593073935904340486905854068298097852480016137045058021406417213381973078389267250913988521852790386617655804055085955010584367055039059650618760490316638699704954280783140394036658248990430728755683925226643308667319982615808942300118606595963895434038477139895336552133176208297479691481867904650527526102968400028070255988930462252452089747232140028613285674924192182025883000403766989045407343210666449778189123965221069091678340632046736543056173053559134703637757756685127858895889131881848333231112063308256610069733101571361824337777759977520852795638123013199765746144655171836966573591686429241105760332167983431013670274719298611796540468418874434405234558871038662725065011776851295051860377671889674301782420889352842881908115879294861865254327287937345249207723916975893258252321132876640556674510005288015164407344185962598659107948028754363519299198646008789435340146402561926477765378623722069194826535105756429730651016811479852122877317907211760794672966146463597770695854078148111357541185036082998636484077335635032861846982659217666326510665146309277169239761039050243162172783368196934513278411131188469193433833914463029396542672438487258289879653220934293826469768208805909552019348251039664090021161692791599193854364217413499472100218180846424511610183149663584214957463940095342440852988361892471304303751284779879174333712646027490287735061144620392687350458874352870266428990678118630258210690230861475371587951353110932918117563460770358911638443612434577507411843063798296014516912159856441359852423099062793735750475078229991025919421522402505232136424634992719118124161094426328380652809466838752966187369900425856715831276717510232032154178045100645693528509378917842672454018614745957118733011768227890324898522794961080448091987982699183178034274263919780119616000297847239905942976846716011349288948477030005758667481143851806143826547328818250505099169608318335674125183486441404918857646314380055842975310528759062963362555116493334437670885048922715772728461805771999360837645892242612600706075266203045251555732487321885796531188242207319314411107831704072922125439768903656268201681757050264942759889286190115807777339191889204455230892733494096230299956311097216142093591489111924204010332424647473779742989576677319742008131921160584036181440500968158983870393568986772368059068758844914573700757799696332855056198459125932359906669041404264170511859191510263651398264345703574630575686437051148127237772835225781313897645735899474115440903577773068773114211668064424244341669213919695772214904944032429077632572546490246119599374992294556853985172296341363957090167863273477960686671353985480471147774813052796057017898400071522457839898022751216665691489910928806501686572039799363767610509859003805493001725996472504258376519323144761820572438720994226947481812932779108579730392326868932407040576713446908050288546320563029996905714936136632801211927377846274983913529710101787583587372204142521868433209352950107563908627005410706003085178702452337235073838967007078808350838685540064982057830117104058910358978546195076477595553822901994673881847248083201215341335686296052098511244872153112279663721386169366201229060566637599900466494959487627920321703066784075591889541343130149022647606231743686277538320430104167836218898772918213275868019389949766280445681699796584919317240950478874608372767973167524315054939486342626895634530524752922994965811395049116999489817664953861801831067898647232461112690509594791002755463675293512691036816701500763476232927751151014148384697921316693135605861453392209341617871233455317907527755718048453836827387972438763361297967588581071649979959831026788124348657900497900651012585968960670202273628607328751048232008340057562101069596584752945988848100921639193244755491479546715094535524216936258087273000788753519131877031061181926594238998338515366033152707029257942739509361930966854325642641366355273178895707685523473666662578592277008153215305769394895183635450223204621911702791412324119245490322001872332135038457263364443943637914097686244897989673213052527038913052014498321769426446912067816738908150821752689725211970156402823893165020901004538510337806873738482568657182712479607600920576441221514973248339025844067663797704240131921618732064973270690637650578126631814894715781815351437301052846312270288834292253778340700911747590398321236754005641250367610318454672562031894586349878629553153714880471477398865070088108620633455941588503543643541492100264150070244278041257333351735352011594443890680876382740834246872691639853691990655752276681529906718498477613413929112894802986199527300588611747464943469253936388675969053009704296139938641895290650312813804098829758421532732531157559830407714746809148073883081222908459199678394221407976861950581267974289584049387227487741816882306859064372171716856248276227726931811763586325654997984360953058911159145340753956819186287370319803706802213591672692124494611516777987079576688550054731048171772031672244453131756798270089239334635134715892426776291124631539469461412818878909575649914468866086510371814615338950643753642312594083167003090638933087665962116960525021093579754197095139162890288025081043637208607791871649740421411736490504137086243875640422533741525335057223787046288167818130498171115897396501689837804992949777466738401468836325380849426525941272864943826329424955071937330658270164715135255384113050787612798012062284274977919325570043208336661656292421998047253188772816680539146197645438186096808654094495232692098708667755042684783571313217769603349143445437548724291034160708794566540202802313936410556661399648520285645779270128784749985682656687544645184878884019873702298410927547396623418416314928663606509943597358409357233618577247420811806269461602369423298706440129802730749856281039357721031530099813441623283403349905713338367382400715244819826847481831161121115293581358775210003686089668703039822189444495045409369808346623910178130216993260180999305229977775677965230268012305560425744161683076961351544998066002954083979299281748701225166325293439830982168369931383710515671373172540839874708524747647962485747523809019621550703734687507174795884964803103274642457359219990883056048301436663249106955264734058158113075874011273252832940998699471851492901794433683312823881782592900198933135418001943377846393182909944170291847906525434854110132516015330306053847067517844107778085953978001968727708148884184429285103369447005360528877986679843753961487609303211312474448271057711855283382086275708114094755339420721311000183917651341167628325947175491820497226063480239623913996252371568616296931498155509169715214997357028415474973813238597250424666602453062423615880658786099542332207989560082407406500502014993763391329169479140138461143039364741817554361867112085695517693811497813006714145077641898633249809560747952277242856540226861168427728700781360442652744181435847634381423343551592654411872967646332818604271460942503649737535749701445169638339009016757339205773838953567486176524351417933974406430881873286223579966099262561597698183607594773574755716099226148942719993907745255835291895303948374810182797265390102296882695209697127840311530709814310332714916317175585392079687377490481593763106182448292165607636729107248360146946187410549100020539037546588470733004036563784012453793011209340039274485893128712897294959510434063909454975663235240240619728465743505859002103799004205963837991396152710057676607441833496904196124688450868093804003040181100692412569976394998071302988225945465101441139264219699060471062290118879318993716089202398062206394522486360474597554198374630164322355271665923147367546661496940052677412990407698786962025596638070121252310399656809644045037273688540139442084664678964616266985536944584742426778118434862656436445599605418542327097801681655447753607584130277303283010594752881934454853758610573874846529471308511316740168084183031342032390774640625245243979323000253579002730839346068780735389313892206254511826801438325785997990260484264143252787202863313577564081440729349563269022863586481715631903392294000716505565699899925165522149087544635419040371082704290491866734194413193552679315789739362042826127542332198823961945342395817716901032057674494004999785098812425557254585596854789612110824304991948085834859231772046795742030028892997368895929007599584370397988323823888906140955898600533651669969616144951753822116166759029446554499929531669999298897861462016446553690758966304108570506474061993634119540809902700100228659970409776109380200533518826046511691142104304243593597123998548444017829667133333405617813567075912335183587995751874392422456094714531584667006791538963800292228882352320832654812254740265014398838986219267896277258840486281418547383286211252988816426030592881762584577847372573559299965688162020774991521213592544231426769386727124016804585046418556376247742251974599483075318651591587139651991549037736877296290680226559405128200252985585473277972637598066074264236449272253589339022050681467393319764688034245916288037579611198840468891650550459673041323209405884127867193383055008713607980998181167753933825857910890397557227889149830798319536443077463354329152224683790020528681570688542247434570406106936729678613228092044847231413037673894143814653785114012075129523068888977041371000835904358463549624722731484291394464944036009246979067221240836190940728463529308212869190666400968811482501073670192334488886726045354071544304660700134719922738588241926722629136807799850468401352822962557456435789196153134811450136331898168825318937466159771150036423470947979755298337123498946446435194547689563598959000269372224868526951398928874301718357496874095633232504342289760675538487972009984712155059836507535549691399107636635718649516985895140305718009998829525897590381519823485907244157407791364526820700051408690580446774366219070280739363795005871240373309922832040233625551347680117874701661690907453473998429185226473283016984049368960336612433939281402421211865221241989934724575251136411136950458230693441288838746290445826318729477918702205605016502992929499856773572204986642960271402244518242868800879847373819992391926312442710548962468923610761924793562234314726000302291843827399668294389109949195317215247186771292961053992243787679093824391604104643979542097005936607608645661549093300369997949998476002883274011605055134259170619032776960675868648981694065507898577926291806295861197047643283861633187802321159275337298321019677941634225759071487802663119527030774199563211094391408864025061546622474101964623625480588136109567291352088756318555341335660698499260423112817569693929980278733987491211880780300668501627443104909643371831923144371105059176684430954589820322170658628104764648061814650863474396032138083751869958030933872595451396936898510677777567866199261578702603623307332878825672782347645704129398456097492217866117473673003452020325114161652995975323381462497686087122134788167276558396817077352991578173109810129059487908484694555581129489952224723604959910880846142983511429726525137287254120894073207826145624735839178303709347303420956496682263814015266294028416030120395838324385044358364509079275272850687917444709327923094781492524561018530875831374174237500347250281380413018071172471826731010022130887909951235341419725320477487403725090717233640256635442840716532206962061235836251901028536562335476685733741744511637208745782557577130702636929886066967180216102709024354528501238513744900044734753456128597236245022608045933789864140602536035392144655136680769748768393751977603829810308221141252571278493230973348432933755968434194730907663035350272671484784828852216824424485840021537325080985211128763512644435076058940937427671147398926781235746272430482088563078794113532639614736142744012690981879757883171266359678915588483575729745124995360982500154209465667945848412828421694065807271719251839470490517916566807416462148396796496628230773640570987414797352294171646095887095818949752932919623475331371298423388445981179979327642086530220916903108465041359410399199480031781445026436097087944023947344784996308755151953232265050860544722255197591662304818146308820563166308414267578771507987457025262443035151969773884569149807021550400561935532813306201474745651455652974688450296938192152590695196972999746179179841649548290232891316084203251619781653485995718410236407906131452498294594684554144956772588912113824456746513673604668625837992728353490293098216425845833692599988575681869040917382286292039540713326562520361979041230938778986223051362206810437402468964508142810887162041193116138468424776544295127446898513920025889709661821551621060968847816365274614559994836194726717501843419315362263222953527004199453205049135118269283324293800209987381419686081217607665332282200072991024909502722990053724490424262838197964199981587616547504877619451100492360670580376777836830971725969253822823678504930359485852997787670783070000442862079304505868604738660954442556083904523264982595702763609410270196306455010572012745464740878416237612341551062080803074055439760693482671013001475699879181548994336820086685287895365150239549679791430996569119338389533304823588038741093681157427341412908529474644004786523983951727324561297820363074234373408870079286176219730157329777378939648591850844765335312950786665730625042366424812299305572767335502412865116302449698809735920033017975697690412671647993596251186239564422859515529801099348511393763539192920834904748856618705330643657453063769615911739601234135019023831379683318975884941648726221760947121633490001256932112095057713329187109437360876006527117343343134016358688315566317667827697840073192814874947779804234725506748184420414875316948747489614027691874119630287719159647405930508008126741603113848020970109985378230595959737801750149519240880231444461039924213536263173780323024742282702566783627005540256586294158625557822643211821760699753496955639661041143216316171200574533599640056283617780562290602577870245388913922230733131227717981149422553232555805230712518604074073612614841879302529293592773637271147151263577927424407905869356167227306339747158645130923368568771067520586863144568608835926553729286526067138643872231637624151043427621888177937750689546116457019723135607206265768858819766502134499286167395673958995111086188287397181297063163184880876487834943622428966849684626504341369656048898450449229821246622669200941376014920278440245676363992381644791483442764675748021885209826590418831551668976777519536688712172510877123083816706987842842548151148283948536969548270328526434851496810498538631115047287921400361577870326782388928227082799925319520183852704112941713560757406968528415142588232532228315402210420492324085387511969521916741562460103665790504620086055935987389967700942641772951483356624167357825068524433502830953637254935580962556158153251066722855484598512630479409165685436160981464605970453680861412845200208059339599353448035578233551673861950270086087262959831985104131848460775486619102402271121259987771637232276177141902540905426689268180924961091302827179407820841731603832073361973441426142626083022874431721434359179253743711742827424053546680742502713995230853328017243602268532596408949028214291332209555524871826131043245970333650545684749019185212908826240874698015134135357249059487845591912071821642525085240782418952738337594051098167749137681716131407329774259110573862230322666864629719741810340994624212690482754652220867055213943284929711642477350574326957851220865777828197470014608695168005271739537425143399248111517045609803423294798930640189212489573368709242722916053053821787832756632876953084974856620569344694227113411592862969435735196085105707848642915769078379348958680951772116649374645775543985722103127333228855014085187144733613713419903642717050102599275499805272029452802304921568664060787958639601367091067889397463016709821442380959537613777824868095324488084237802166490306144609268219260112157172789680254529886775356281352247383056814820934365688692774818314129034008840008019225492001104662286480667226128779749896899122231612829422496443771819263703084762067360508275887949192777529113145476011677664048048601465429290114483985929631255100069274712381686488269733215346631406496079835376730998629276378807824740997656929022265845939101317171915612069414735972723093522889986140103848701288297032670204635990592408977766947494893091455366767103412600686005645022042940056731584368788761932612356751170391096613920846300640747397871726610927132341334564798952817496189078618650388703082985820296603387513394982564238944073164694133769668567817457447334669842502100757184397797340812632055428734670753638677604956497387924888137765480342106377118218742124151956310257711370660623726168005994104867113590168216989757663239165737608610288228532158370353688096210898549494424525272752390975171662083346362318098237036314201102324304248983340880693862974265395968885966999790876923697113063462471312197489267325329906736629636759236913090266671088135736314509627143197461171959349850342908147902200847811934767179764287232807480930746397846629228125831677161819583670142812077639180471692321316338011553122766429238206533064078776152365457616743733597839386578163405068211799520125748743583244996934579849648161488037476020924009417246776677673105804366629409482585122596608479360667716688741114463479438587561893528755362445206162119600677331984547984392352505476614968727328120000169753949804597704130073417265475846803225051076123212236224667288232454486839347028816397436497484973390966197073084500556708227491074533009610891783122849201625367930678935655980393560780490040508835809558661872556247607334505138790728507628560647320028742716123656408236542235922240607193081015035779140836460518229759466966952075100338424345578039721870132158956446008082216832510230274421445192707507230694242489316768791505266433512252290710727891798451323780077807671520772814052388148802187271257326246441211664152429093613282918926939225330201577925255391035592673548200242456362531487044599919098318721600505396848758066386639416659296094416523709949832799313714013984849844067431632146710151804598022134956541329325462526983907623251970817050393388206455612154157748690974183488848522530820916883231030382285398886592335394530015775145720982871794844004259832007187259059491131062009716056891825050454499307498445766792989899987099055759812868101784111116514455939073901331935690399336295937660051205588180041860172765243120395756438971628495557409089180606976680001130078934174520777158933336334027609338947930353125093866491331960118877472976102456906312583971475323505605594188149651789354672697246706436638998495033023573443286923913556923608236583395009481916778469814042773073343109899550885436672744935632031788114333186235241256512163327060558051831614016692373660112330883429702596685159344153130274475753353904871954760431456744961690222138180876895588060960285154452902645752979196734088792093876004989639523185922517359720408857339117586473733220626839094951124585393061029136979821289281435660020523215380150138185969152618685691990594730774171185593441481792264838132465897130475904177578398844752700880650661867612797710561115759062525256420972297131376144501723711897675215279700659436066781245350230609697869163850915050180207247913118314004830810016394606422498635841879154595768717360246787236268770648324292365588319636011224839310175077229264688681626519283848732842764595101710922561977352234294793163792109232775520096355813629567860868400147530398442456455298993565355633556448114318160363820781480651392219345986005386997370350949763779693031474889405082087375295443069453852725310927395404821702026247564473781754093319371796116912380904714295789894782624900127321126725705987756338133989635684069902295441572059294325291746271520158588435007825172562338040803116400734188750495657338910115409793966998377774725943649595542875627011183875325131610560743205975738806163903769183618217884700654944922081305387226101767985936730264470982050827556243969384404349268488132375227128068024972162421090829151587472601117530984422386393307717687274352315111053472602843101884812361298277202283831903582679600979865204881506834262257027550261595443536498640873657473592017260063416914827814396952516256789290827468045755144111905978909952636364866989500873324697524817233285386998404317461222643831694892147967457918924298462541306738034571760623010712465986336999922767902404578392314883454291715075647771962190324466503424889238634402154390370171863653887104248426487303827473060934516613493795561299131783764812460624449577184961311605476446625104788057419895211994151560665320417867457698940169014823639195365161307533160907064286250137053471016131788704161855444667435670343077444521327418301008912958306368610745833965039996012836614922303730212900576433516272428485224525925755390990998740197914348926089404366231935548990120585679824229230983734902738070793166326848925377063388858801443914054700037367510237500903386433994687686692865632940461565410217186761257703304226484649369502261377046714698956328267461689943368464079659733962130288761588939674464468601689264561102682184483189492022851820850482073918910158968668942562705785855231718467304729180883725174572119224355136285249678733771745982962536012777011748933097301252345238639703410644334319616427528528894528401502859836542246833995294973300469609602477406759657939409695762221237313108302294861993205205716795068249474607227937461066561442172908284459340026348189827659259618856711936604255163377766722699325817394280149654961463268219293641344167657743870680865116775082262994252134234118797329695510319641939955806441375217863118322881819275807746587607806541738142211564337661199949953582379838144302683172326619254171592333820985563715185356562872842014945063675295551210516094562319854967418014439629088972633466256799975586565364652706371856946688992718694783586702139495654367684222509588586308027557721323692330454291341942177928877363960894567636215689697040390947688061828756119378881564626541250323459568369593277071096254376814708883357088924107921557663270428091367859824499060942104796683609166544574218096300459809120160623034560124682982629293266213941651623451554145074921300551380651010062090973281482196989228381193185700693208425799169996419606039110880454298776807952157541252606781788134799049032497858490377810788106796940652812855569148828814535311855044976195718318098644701255751699912356412760728310500309656201729394972642595727948557359050050407363166091986721941754681432745070759190549712358174207914612755685515997304210407895412857725625498122802114847137329074106004838927670106868690060571540667373636230370801853043212567978736440169691933450713190879315252450372998374931919252287368297084719544369077692618865871493830225100389676134458434964536283553771219421069923934202070216846197376411656161737957438570115382841476298998570574313693415835566955640013515766061171199495297169779021342310602412593787616191033817057359928074550636104565293416765871047615760631005854877487759282996091791133706911105275882087443728926172228017075658908668661189049957736369005727295609514518672343254984282493226986166681437801575905600086707961987188261291580548049217300737043943181855535526830551786850358933202145177235340626792077508629403692134842741854359757327298856792807185053835482034863373277468149249376183491004337083027549270307104090400241261447358853797949109494802929424774279105374049987566380706822706748100418426682693575209490786209665566548848808303416691523337395027439322629991559175813552089974970009223126265526089581069173316054628270847778046746063237078059343055232422430775751463764617151091853886542655628910663313433128137246377303911055503652761691755866307885682641061245617917451316346034877045050491007524842707841626789302278341876200819828356151140673735145307499231889549352503958540140124944211184618124676345517725260318898141702678992676160348535491681547575240402310998298912600539963793248652880417563311527995654488242580931389671525616538460884044568828396810971678589883528360031540228210694526812499991092125802136366621760068065782014274870650942774185522646306876100687181186624050888030691370216068077506485053977605029020015052244265317330596779965903388797101173629815960075874075334426341794090615648762639453311147061046939621567373384937440110702651022836616995747265858909635534292967382694295861697720096740279452375214041325152763272510274617844549128501807642939904938103417784319005563231314171211715622550739969501200955783287558010677782845182456831838436572032980283725630095451426407634465945945189422547687403741082314416969150816496689813583931696523555959259181366447443652639975581497901630003160504309469604118467547348041030329898698777496398074767834095057481995066871436541480521822922171754614045833093882168981688367564441555998273318827962405652191887033021605723723456103400324632894529649014778321820255060716786316108364461279731409850692528248149933853696064414921358906565514941732238278268000439246815667373473720218222768948941164727459995644739294601000761932971559998318340700054524102185309193156732494393524741536177803759550314074502908661201003105986200657976746430537132961049209684003869424785272410977581945763117513576580298191906635021197320141600625333454118980191904218861961414496730340858219529487470244611079252408724674273988971632622021510010747684361663639383042289112428653044045711553334694279898837791507093961831840865191372464061582393047302689212951679934184631193701079476805887231549296338514133153716967751692667483067422771871819782549453134235919011472771975137237008684756226078611917160764898592251218592753814129827396671283162713197573416202689611848981431898612335342329350639658994629703805472352569232410579665804275779427959166815945840365349939949306134877206700116191588403035996433657679758905274879177030227932353874714556547280478392160185676012846431674387386621799841218854791763809396973716330192178339590482276076698189961839683152019985476712190937605217352277672066556743017348486124895974128884467498171741095333564716547921795071195864283727644058496348686919274385905385306459208740933167003134516468794713407732282926106956614897248953346450436804677164907196672969464529990536917487941186628851056550953216846199204006415994420424074655004276254351874499990717318196430222849396409430868543577495923441248148832697090839398450963410552950737906703341479297067012393637089009993825477466917290976471402914077842616417985588396190043829244729643451433477719111292597483457489819657921090192441792690792573810213385373371323684195142595638988746723711501458611886010538791302721432789774922549777764488968529381524011413109444279513888361582265858642798794999105751211420713388562867215890590440236065987955471666896952966828434061464926915684847631726554975488754116191306587561380534653371156060648721643749476805437814025027163061547305299434547660091021581947551897734240826904169109855623283386225969289535151343093320139770327355951066844935148030000125075043654278907298258078465546701990374369842092543763997609018319041948680987267539742507649821364194575069713391896489526072482422614205946195192753995932750795341789460780393449775935017130950419170017158516678298231160323819084734376948673485945189899398393503983355410324568005360198734720541888832922069813782395578385778495366008423131296614445060484614305953506887279590272300203626700247299880826900163807439155904922385790285240338051055769706090004799720634337312833411694470243573068783279221602558235173103845756238195320697957531197468196796750163270515999029848512828413928160179695849666495845355782167484574990402863618967356869578065429397872275979313722031962722070876547081737052059797306379668005217952433340049645544508215489738671184137027961199632406513217897617914159192057818180566763220090524142733283052981264041417510456770133277446644547897473828320902702119258005894489958280951948876231506334739297944173848322585109737370306188842952602253664366276765069604043105955981883003519455119747333112681593201103333942193386448151765088594723773050229476781553282362043601208629377699683680387251445973585821058346974343508425396127207996692104157683487283884098640664547034480579376802922340442012783649629669450630560130266854261634113061790545147215400302390208890996300309027717489773711782832022676928052160189774033622738292576768034340573184045958588429000214494960162372681367899595818839304740775792267705031253317057317528410334752236401969647636562020325522250256731316717610750749791987783456871784900748243370559844824639682911441366777537193749328411269753634583973405724008552861158210724056597977410206326786704573737481465628042317109240635501333187970885792883728135170937961216708207338147631941221409103791382161322837100210389532744451586598524589837652359483104787189074139110556765354620337000437007522728651406894238860314792864126308965288922821756867413696412266555288072955808448080146592972268974889304080178585242523182218330382003360393004858312949583975372139346915199884703190730295573138393335746180620217647781356835983730666654414978536215065897027122199677492438659781127235979027723265701495223525893411589868296634972875155609077556080030105636947643929462467017571689466927989529939959713027446337253894635587930749272062569289548454181170549208830803219939276860047850031634849540068817596507115212754997198566001738526566708526657316380487416542145419471931078912475896167247151705473501896123324197508371946002337316533096610777530242163528357895109595056387909811955890105950411411894456596798728904196754339481153175119141529317139127374197057432755765811000100482070674561131247843497915530553636257250687784574673689946758093922050874108853239040618313993208301132078863757314179573925459301076214224520091611651159014915652607179226538118163242326608330228697361451905353045397288496361097633818880383592996482220120532429780749683146562163126858539570613793548546451948005645876499265266145110598237876130213615913913978909972407015484709033738000737029395038398668465575584871833522987218086969034412306769997325649403886548386266399259731367372061627176786611837832243290104523320147066646361297826016982749832477734771580388051320256943260873060183586813998051377844514017109889554937258135106735235928405968713998641813393206541012795337091032641395029677922158791887563351741162923407979526659918852490665018995322891461007124441248843594553278674391776039450668994023349797426136424574759154683035898856752287697895266909316501618367153072315710867800202717278743692349959535272797590992485332777272581892722602009867941761079538993844646460340187901357131301883965146060685871631353173858033594115151853714026649892622887935503034724581250307331771079186270318937387820814980682392882343154053430260851872375493484287526207952370341436818308744139592958444355493459793436096750601914070422338260092229377067939147125001887148109533775243734045957244679118572448130840213480802215854865889776070073917220636482663063470984020152594458665859617912847544149328233599099046800012580795417570534822115498351135887593050124142210755351181709167758870944987900192471481822086725810012106626200449688544689677129001610353949647416938353304290193308860175513444744798067803037598923934122043852879210895910473502855431746352762380587902675277476111540635967918175643761138921137123816973078290923725312344906214962560364466517849266211351005993058055270894720228295968560490602123293065093635318073538569266494399103288944147289958358102227053087016278095323499817863956544375292243290740086263096132310504109316815272059839789800640272151120673781311383916950660895314130226582774278434943272927909799655395127895187502081412900200271411132605304591213558089610887333280407263529478065687169519171749643968897155432852255685842936315893457017197757053507468103607579146505898742264296743284301436172728698201925790327850559731558424156134098928223823333207243040234354942003659920535792146569780314142308664709489510328260949512137454051039673656983364614362634138821204587545213062347267342375992362745522182881750099307863350429188035500622542561664156249654587559308955195283693571189449226367102531140004187329408487664084396844735541914346750080710715616307291372659032412243059812870667767176763262723958030526956697131569879495814046046590727594976804071341758150560408918566332067211582300142456314252681901977003005059164277738379070943584880658240849445190343320846941319428564313554422297737731779763611613391149816613486890304865819373189350699050300136307509979743382626190936102984533154639213394781609343651755677871536743367200059596645591878584640185837906550464458256334389042502937683818746709216597551584990401273513522467235718195327970824609462772833622985264442621106004262984952212206080040318104583668063642833242495146326581955102253199553365354574286286700658400522857814223254564135014273535410717899244346374394983695885444615346833164222148534805823899754552217454363028763673168026121635795970295812083832041046827164694635807933006521470512391672088922395529357350083697113388877365313299068004684496601798705649045824212279697153282889297540398125980734344542411992261620887697789559886371639504626788619112314712195324240554406147167885909225378703928588935200139165797901902738753018100922322433002337189835308972857159584855701138785447001560636939030309385498483632466806376107122733728370852182546320028501332805313212140973308477119670407028066575569496719362277014591835112643899760841287909808832150882662050570821976479782557414469446630394082141274617805720032616076468426258022043961667842395147657733304613113463327666971080108538467779565400435099353133117074947041215101556312159192580498049773275973164181804363351441736958647102587306374647503974756321230747188798840057007916929310757530235267104913952889041589678896606480618330257326004938510678750807797644405068734828434487355997464337078249414245048365269349904091545385135180604042613629202434027926319645456253421258660599170891528371338252811449536870923752550706231180353542115670573367866542789502699171366835932601105174573875127012666967863298885145032134224419255314132736862310388066660681708744548361739045014996147271621151650843830212586822794881986877322815417483340441340815406568687624990899777086603423012337175201927522113707277829825666809622687084577818975907630926761776655096146084139654198828910772719637974962358334910818268758453470846938502096562547939506279478111261878398825717180210701115395761525518382559464496878436635850494735027108868201975466762426360992706783093938507382424637120771173177006421247074592602062168228744004844793933195156470520323614451653711278473895485818906678212422404390762472280833780460550845422844596363156855272915687139158361179379363482749472566964818119194189538737070818488977657836342272794327575535784426956134891903709757804478835544334481387178110873613023213974132481171642301867610626188790220470308890535517675549316349613882586558954259517883482110044742308682878956136351178080084851209766039483483045577214730264775683606577158190650226758717622876560599594016433288001467160655178991058352278653729359940074845119633432970011011861347037624105957013933817933410302207617688548047789532248106136054314024121575649733281240086712721198382944287275331610208527753207695029663140380718760891975700230392389231771721919182766466235579568051295102178875346607852702908700779471837647810968973521931267094962232589691218424275366697397607740622253932425522938288652817076210391454061850434864241869866933758527473509901621225840492775323255493047437840392884161619938633613284253902046259259050062061145944714110258923561586674337318567237915773033304597665986022231700498673678226170189495775872022976104042045986921624742174436653935826660852932245352083726452391024337291726635799697460603135178977277700961038326261134796414289979460631691203924722656522089480243742072163658139936776192610942287876333334261020148182992497989309073970260233480903634680628015509005881528941836311247839994627079019117364183045073189479019304972104666133972189794315053899894757400200022084645893982801460299041189344389551900477989298177290754398660024857693938367738609002880348849427460638080723098075149986148021428367586482649885676598482148032576968754384512524676645782019503327261411926657835253328437310391138026310441458895228406328956106148037294268915101899191497013792858946306228164121111588117662657415702808928738247279924894099532219765927398197442850620703087295652576795583921342986502571264447687525091061163686304247186041012840880438252417117962932449587098060102547837115385451891941718565228613599482374090111388665280927604908477244279407698298463229630785906447214967371323781914207774904192943163895018110536930555981565307340631240873575526670510657947358415340722369782971023451208818684911750671458375521849080505237332743735723292848474634526201108800220357014688507313543506612674813958638775687354131780547529936266470816975938638794247182874086861647360403821143405285638463658385073991798731659949793307608658422652984790862000684284657231357104409035244260898012252442059825058022387344372823378359831923444271090667185377244876438931581784770052014666408845124532656784826822204447207773917107437393045372573020923584710281416218043972608568012627297940760440280643364193277995798032391243270030774997651710624927075479803690747643061026400442019365930473143722354541478921424752105790025648936482874305212814922480467685952038365491637652906783992820882518880171949684884041488659496392861650745828419135083592314957753621523622689588926168523473006329389396462585575314380447832328445265673415534956025241406477971941539762440631644159019947644013489606285846269262198026495628431407333596543318134243328828900588775842136478486139301502730768817818119034289654130514809492929109313703617749009403133276318562333935679371085967886950050352205093338760924698913264175041252756062318425047801913549329492733689566541223053997386946551031020514610636227552809666489682099847791124101916955334484053494767998906732092418539575586496497495803488635435232037934973237164799820544653269278364236915185470402325541811723606518023256646124048709446864802523287630761048444774753095901917555060357568658098720652959484529370996412234440346437867563646831535276830911651900043329588889240225409048702905172652223920539501303838750021801008983936678311662697711931230347838697443334971665707661380339729545310552106888517305119793756929014783742715787732652922597620170351355775535941557770654203843337681920482485909276744222481437304187704102494508392750592541495970956277372614296577144246205690237305958972862819539554053477841145560357377685677345981181470188599466203840960806548507266875430957774732282771201129624332927603564096310293158071026587292380653453695967532118230623279679440141376589823725378470613202560289613126028629814611373779911608604411268158777571329166760042985918484978748470445812391307889225957004893304271318826975049245334272677482351482799086626929916101212872032901374087346609944354344161069369639492450052952043270472934797843986199265313215959311182380401304815165732720903703601349168861158926952038694516623344025762043160853376407790301768662297352445120822504020471037090114014951906624579679470280692963084031534357636555778948664616749208434511569835821295124172234310494347855679992677255379639913218795487816773700790510381658204612625192441379338329387048293928281205086951103021806613040525718898559447574386339949645831520416890284951359382898123606745980997801880537044549755488243190743395293677188623497868015608621514850814754671338175334356904526629281157082359453669450950518323474377740581775001929252582616983051994128220037658803335243913453371594180460997834184138927608309785988138904930975739050286078705704033326440088351496195817015154793441022958082018665947758792466302213582030685683077500801842964807311809899164916974549436981438652107042740409841414165125135625300928717220544539205824238633340610711338747762530207942506934997175030857194920276487676747386672943615544785052632140902314709380356546483243056484210243244921470688868593633755332437953847719315104658385488542071515104613333831706762095161338117210497139020086587349235583237310619619044751225295765184491729638930785396553639351936239429333348978057730048932591156395660436633843499189673422770793708465506960699696467683491269157202707951928395949860428422677951172270743902727638352861537779517190448859960399587179550908314115378513162787306518162690419807204423767463628882266794776995168177020805068450551185091113690134252280213699537121534117660966304609500010070971795184116270649143261767741603413385466014673992850836209796290599139402016263103939506630709696254746004242042940236797371415498152903246357943375956967291864181706940015213886517657946837892627495080407754872345079009026313080550921472639563271939756989422318217112184253743643488982892329688216685699697737190814088440255456428125426628986746477282753624442043379924142781171026173755115539855083535772367530853286644367410923030954361774441216540894143205789011272144805480625035522976283857517253526942701386612864378531538217721700619747066946180121913112103364674054338104786624163839386668066006881532946222301519252915290833825771006618689957992211977135476075987367436945323029508555234845060852302362513281465437388041572308135895614788284374563103114326764270484069178660465194046123490619638523213232423017562582823810130625704378202824090562095715593851566839232773846567389852936305085818173658942780927452670281347533562716713819779755202533371706066387064333035590191718093975997855560630176569517053566522633503940418664714822309559693152114201135411463628253240131247218017494841391881179545848114587681700050262227212715081824767870980774962335184344206089368217937845822883376688551158573686905865994994729556039324074518231011580562794594404857917601888660052048986636112824889915719589418258043494565348384770374215284243451445383409100707224449086699565028602602721171665537813391377412860911892984470962772342282409496466016228605550190264685235745930856402626931295471489125655876034652696521236910127249136239240387014410119582042983755950942209494362973234971089428512048838279023943473659400152361986913113678128909620265198324134872958095355013922678437144174654329032661784958884484317454766032163737274827383659211068508882522249768582441083818491703780711117006979617198812873602452622626845125747462000737092223503258780617419602616901415235759451702682349473956530891414791290563636239173370854064682208739934372560010112686216398024583144534491957119674004871725397486572029270214866640643817456777114381684111106567551925697538602522485513893487209256520730359027111698873624692921885566861832041842034713913518451103500445811680924712102183010289469284236948679347056018033890374862731863465613811526025550766232594081221089880028218231459179693644024539002421025302443645830868066776936809113305712252878953697521096107052748359056481494525953229953984813842853387655181631923762872285406620665641825052266131065704007708687922124942266926169579151042656860257170740521079187219530759951811939767811626370050660293879685271640468483640434656985330545023283343588614091104705819626845277250689323448781974636975080524280264638036604840961453661974203592695894470836504520478173673567477464078487936495493186255926939467560888100092148316693427906657166776170569360932249125191989965979391488931284825639808139409818385558300120014978000301383190142042996955133522441051739904326786882833702883750865434924743360142028336953525157452475445119227208583037125020418908963556055164292017165866652513989689523181825027057548105105837710304737737314466928404314274861657021090802076869253737683601844113816823311969705408246937880496439985981973950452499306440575963423831029309417638961567966323551957004502240552702822966745769640983458592129131701664274942024441539962482045757045245676578507602106002260556553863036652003603562070639867842388535353746153415124582719532357525620618249285679548991320474411740056090690096763283916909368128253720524717405567572551478657603997753320036273927839645754272443665879235397600973188099231987938258941888866605632989472660461188490026713963176615131541682409409304706106831859082951586893457320853402303756245244408828702020446497452156709570778771646954492381020120769901448062845507245116100316599576353112265961402618209569461318770832742882039395642012272987446840305178327182331718356171050633797659572911098373299175487253819352177819336272785737248897672495741055125015910388921038252663736019813764363853826553447295649688994766200386151932951616736674147018337439706981514179833999984716780939333384552055943525745906236402971414770296179407009026449906030786432654570876032102235858025271008942364300388955639046955875301514069360694290764832264063337803811093487890679644829200986213946081512714175771333840755821766009155785625268520026202191846722751796924732447177002679717637216182391623404169063960636930291913326734822310281694784349193256869334567718062983487675093467726529973404324916917529152840725983912052449680034307664380471469969228155299574583690112094325610419913798558847872630481328938788546786936078207769635467778094944342891163911920014375040156798974642976462879803781374964203904053153366066383470610532487159241518225770535977729737668697285408573604878568705177321313286720108099407892627747999001048095367642750273840963571082806037859644215024307494989116144904814070130729622355009311161030436250183687972113766227000162933917411713011649255221457643710727592080571275338450876225030917667812649877385110678029306663291722489932071387151197515448146022052122898636635475581183500605503658114609201747457885535242560192949168370800293079817855236979156251419313000737581011558222988995085536443735159298229732052598900864496912643137604692108935979671659741627384873537761227675055879779873532413973473185846080014451425504721788066515889756759662968633565198729934537038496069637874119851314929494977039426682371896275603523143902825851787000816223750103549456840374703209826549627684450540654669233935389556479771491942159133219826586219755725047615821925492833837321445941805960015442520688887702447761496276106035836838899245455665449543578508460566505819087419346743624500202502749039077998837008782745156261060132158611581421321272032640622113679076314151208772641555974464926221763125654297067944909043943512349437686285426289347354603822711204142434913166730152361112329971437560798457089018357412251527155472585550518349054973220643944770210327683774896617824251578987552624204630366431177658644758320122360243090506893750879051881839180164983022761351956204928382544604506743402801071282275723340546889769646384861944517656977228923968674065587724487237218304125000787892230726653038163686526232088763233702335671325976857576183089298889868966951879443791699538725121800794769021190998569419838352077372305661068268903447331044306337956170471673146364908149634679672154672682192542706900229919909146426120167555752750686587553743005521458032854319571067909039608257526212060902543356212973703848737645132953333683574868190851041238913860484505171975395633443031676961801414607483151622559234615569712263916041349469433230307973500353363385565364644443907950183925486789629324539879674014176999977779517004365004298181151328004875264636988058101914944885906143190048118313530020413912322111157442900876132254768192808927371882899946875488340114444097257933076812246051498431626510833996952886826528280870954895878682052656451390391872050989162803507307836573158238973986750431400097169783863700762944807204278864499927929190619450850163414578257255996433885153958524503335089741948438621612827627565466920314532062029899745041718663680476421263737815470204043918986083528433880798552768738114690479160839000729458394331557473067482727448367327644333785336884878430159300264345697242881846363057028471042047803874411473800458419463740451357156624831794154913435356124728376297741785219651349121678605423509299543365823173139052304756236499148937664802167854455821084702577595343288425131396178521973880042440016352366139913676401240461590340886639629707021776534278614820462106874445411555575966915782016005846992373201696296927603973783832751146818657987921885153423506611544680320881528679142461096603994674958980044997092654191446617049481114403505999454066667575219319914546116980115892952043476025017836355837793646598786494710468896668336990854239578226708503145481366048788423121172905452202497845878366970958660686541849918845390269273610686360775936899845529159037444180908939301060638559166714937897585259709833762617318120768971779021305023281334165951340243012478020269918016956122486386178764624718816551600079695148058906335759234765759232884077231902115746808107789153793548520657221565592734432665324094434531725814081664380005018677068307266860096090381077019996104067072872247141543915238199186429358047812466793724879267716209770426734858977083191145765922051661671920865322105209731278792805386774736674897212125168291323486081070298479708846555846417902051513807650506678775283606795733291998797420974689937091923802553683743733775151397556479001899592957482204186508990045155116456329324895485784881491084225080603828337629367773227509685950840300901717930984414721994141287413044368034946328355754433734902260208210685864788898567324347432874398971556605265824049012727373175947901301687326786377852926274985022840670224193295565759736149810163346026442206667665798456089679807463638736483908535292022968919368512218026346582865351757723584068540010708173116282039747739822874957028392730686991918513877294864124558428869716936535059761925939611613496248293938008957624589379094136158406824402694121295625712532688462446789751223006782960752499128970032310003464984520081501898766503234872924037780172551656296122905861639054633119873391769185149414388097866406399558649522729173213430281691026047928833453405131155218105824486150941260901591491362272807258320258621608307453200165991153915093280469597912144087871148072691272668974886879032052632309199059478208823277919699015863309116460970177879176075105796985618474588630339924605362318430765090958728091412997557587203132277470034061755566912352212931428154307811533504566450511075515029218111204019090652643230117820122094637483234555516275359649607933169928830038989367425653110096561388581799983684326004482602560342761755303273619750407318591291168750828502543994784048470589780874848016563215129644525361142887117604899302177476814095740387242072995430841286188911362076485546165513704377156666010213347246062961102328846660737499196988709797880601497181688140108410294057876545847455642669834779788681957742063569688025024455304365059028834270148998468945411871316958387107000294353094758479098581064964007097328883553129869478574015954376777929903933303749499820172611008818745137768733499141818927398372421566254271957506086107775711002550358504899880374829050426717509317064404919726515179709486887790136124456580323383328289191484292825047059309910688626325700945990488224880323172169841638954145802283204205409773034749294646312132726295752389902738996475360159757177099697183430181470373882386427065370261748964878106010872740264829836718548375438925033845758713034504566679600650808935102469998400618764629538140075240833680746058784991470776635906454315217927283024062387325580581989543712924753884272073936752335394594064619121613490855131671663767227785534040804876144909493941929099514973943031466566031061650078820572808539801912404698201247601894361629936286014109404871682377714838292349379032380648143633119852310801772410831271164248701109580448448517633052475827623721605942915139852323616978404788378107594725323446845246648364084831792298745925671782259432208209319570865727019391709430685769364779355138510154371072199128493927287869288294003383228490018456111050095209059911350060510045960400276755430617152789085233132975008304279587788185083125987863470408837594841620064005074563511119601799767035393264715909833927710087534118720160959478321657860175391699206358401722361178399417637486144137961627665067741305344623106932623880497596344015365788866403702255104526733480184452794251649745530123160797600811110694018145100149470335431555686977341751202713275113111996973098912590196472261161019527313883117333295717057423113520009776532028469742510787004994830195144999233518325959494715745987930612022804201155019823603048026869032595146538038000299668344154842430482059019286630201837482817329722119573421955141126702334127161290114811568606480191319549431337742789050899937890243013123859845454148944189290099726670384373191003603804126563796311532865157776881876964813233184907283958941324064386270297522748752861145685905841870754923213276844314427413777450744765378377011952236841049402139485448620464253302077671977290627648051213767891028491014244260056915369114386554604956716467098909268616972952065466610279476579344371542621269321218521469438461165637545377345203905908905107220047221546233300664318320285426364121241726077877220981461553062905963295435039603055357307571638080702928143638175554308242257811568123927822249505636905240156611785576831828074961235011240902146651013092476879555081527255501281818511331529968333600855925746916347237821012701629603434732510477145347900767728226729851624824787880873074849291031245766205438924052248268094170352997827227654478028789746514155903868192329844813521483893099313801536783626593049845600104296177719902027495736963622404847498878659967151331981427030981301397773366859748321953393060468366790552813432666777154491865961543029796811176291544724072551970616818629520848632335741817546495537457243247566707503298740681144570159468103513987216437611039838050168706571065968374889511492201382860481381348167900645770300715991464732195695919802978957065816972987334145869174411010646388004378534641830917652667509520374775762254278907564548199452484225476195016847050944645313165243419790714079098976112429602268657682143454360794541843064717153578521414563858723869800129339910407775195154878250783658774823809835926069330296465156150475944875699487538352383403216488662484168461778911985903947868791543697173519916526531956601631213134310938680493431282780180989469368792093784085653267288005714097746498357424512476245426127834825181127449155817342351411368452072444087253862169241583371048955508305241440148340076107038151973023327780138380791491234580865750733918370881173078513107707339322693709662997762371328579925473874252208261696557194918251364132977196790062017527791019652976715987153195079001424272917089181930124134580583108352873384233440363853032305214141438079493769273995200407962080864002455266301666716471781602224033133866073280533700436723752162783008747900506423136208509863010022460056119117443317695355051854125433747310390888546537167180662720222203553947314572899588842257271730166536006816519797295497154927011834473824198282875714325251364370189438652915102751938838860942415707784916667198501381111722250740523174370676783796080090136246452930920404196490309530231327829935566382382223992730993049053068414380357875063535954172834439983727498594336711314922163615408135268724038207613673044588923057327202352666744851294278090681325283564340890356173805246026671211778001800320074198412115119343576558529736130502767772957486612570547840013981810558010783318065135390034055216312758889435709729128472908418712785159609489850549074848805173891070807900372286536821415734938603113483889304733293978419701275569787501345492817909665546696528402671506792734338727567186495090892092298930551588258267478597446025173644739805671365549706878057031435182081719869658322677046308094716085260415024991124979331857638402834029194411169112886422266685429543719786158175926911558974217391606817329796273755121992526325223701855665200857094847225678023886358158628559674891375026245805150081040047867364073550544616596417633930149440816101339604776715846174133281097996943572021422031364385086725852699735802704665570150946001832234321398428086172832110252781019871950636947698195586818676917749117823851200592597379142542450707923011380034233053720104167633993306652856299803805561572812375999827807471437588541128743556706781174694180230091590854143901718584034644269149961768399821895736439104534118870131165137211970680454827649650213864138747358019131359422195123815334385166402366226810192601573460908587631524061339984017443108490880098937906747893228402680038419484942665858553820011920818514768907245279486783131153093721654397338931920180973618543946005315835751391413326917979546208330472562782134108044665009812618263068232482590885604017379745267678970997042521638882641965617638542800480382831144071313890665066783242296014764950187548961808907344952000447451469757451265317567615480114123793308594379480307116641336700492946528339970658424589485223256802399491976374090468773334405348241137735051648310838004675141216672876174502216848178047128708455600263693101902541207584654475118203542824635932715731923413463854056315569388424195945856547774274956275204130522844786060785583087578593260283332253150540829153447283517689348724052421778282480896500324709476104062183048735879038505434871576731985920347818680839199390529711753540778114372139726726456850969514336408293458668245905083364063706487048166564719707658150654410799694743409001101771001835110477370966433313924037492222204791332592900632051080692766994670502930209838819909970080269689114201662188745697871579657419297578288606042289198825594003418379770143377429018965815189686465536191990091097306470559352837722261013740529694585296606545905975800588911410018852853327366978163472048771751162439655761572806607742618019130784782369117669438095799336096414571452225933915795823091072176205863433538418792044238015519389182886969738340604170599991831444925699746810302762487726535810360999047093502775554447482809601936010349012027517226174701751617570772148889536233485411162108861930544663983452501663045672695500677095040837194179127716674417338486285637276353103527946473368939522451416071808221778531225826514178860088987053599880925276521486317152364010115242089520163719063184954138744532206056288626414737904123028356435401832356660313789367278832924415742958592583906541746349262425091709909304048867275412126273200797518533897490400163399765321504730511989183626494836702768588727923227734981474786770360106065745697806765791094923370777973747140241325737618376026269958194966167880105975526718020780219559257350977616588164785613365407830152804761216390719674456487661473841548391695409049159329065312877137551428882564919601816857430056610176266769995270090832265691118673959557520621950150165169458504638932305555199606880514595550224621033810640696192611975463366081825368491438722832434941057105834469321994985529544897067032645134619703693444317311906118133911719238337115015916306718631039666974195352582971925372793522099057939061951297290514815557649805610961688552544580615156386973842748173204937121082963944212080139997844464199198246882334020929417682317248333218097836855039303240770293777606346498912364451515719994229845068940239855565181043075876830802064167662876908250659401896435349085130465789216754111343624645208978347683641972038408124574198864923743423581351778663720382763931705135252739541095267241404091531075247672882064741241150964883515299204851458870167672365783494395161188963647411367025092083196740984843222215665173080930918944474993649357872837314745923731056434312339217753151341902865468595147594970771172085479173465589039998238109653300474758807122528289671842610092413555883753185044351678492184044866091505666176103973397069811792218254795923861530654626671771791869672034480675508273866240835022449567745645490021960731658488441628118195835174296865791110624818843419843667954408907406618972729849076449284635784391567983338077123898970358178807213154997490332161867829805377004537425583780451463137403668947216372327927772771480032221810903115532699920362035862768272142405881715804666082592010749868811487440841619316398760474708244919471373632424978112345413325118017792846065315040676744244178762037412723700475463914878517595220401955051057300270511041069731923180432719111098233928110040409109395263204509463384176733715427113945627772133858875777272700987696484914989448541531077568635653160572782667533685389589161766688539805408752771170441913526062708771315311873492460370305047889741329936016132634425287813176127442671213762270146787867797621984036501052524826694157910445221904419211790826268321746732109507693466070251721228712485564273319383509428362828412690227747028221198147718103184822921818503499718138561393392733536075589128816484119396873429486755587554955482392621691287180970495957366652321313486672136312866699290816528018362693953856430688061247848147900274810889907093684363007585957446108621684253979668160268840744634652389191668238872298147932186113547436320187296597021959750090068147786191562095282116416798944288000431241097949588149743222640488583539933762510832808276980791000520624025815952015338857965585695433341862250439653817496563005375564989012418163141565752601057400446686412810979120679194443756274144319573579396172840076777305609148775844868277953994831722691697891543934672111545562127607539770221867434086093903490552353838304604301113403114522104842559986152505398720151971271393059827902839694634168710639813907533026028779891858302762767524262568200396265449616997259718830193412672121936815574652884497938750193321421235287111615452885501310409421497502942823967896881246281709448060017266793599815336718464709395288112503721284741107112293017556271466077765049470724750192171029692831903446031214070389973604130250069999608027511999136615719162781036835231685340373786684970243819696901031739711436011558148981895253048941328188047673277283568808214764018914277081121696749327997402552902585494369511959431165210832864495820524845446721364496926358908458832252973406511167356505201747323340216160983643796936108507142148472740209685588234988364703503235659210473110713317762776359991632907645605976955840802453846808384038515372385806274539196539684167170846320115957796683728821496830139874180901548283398666408692023550960587973217706431945828902629354410798984036228683566625503519340017427417668487408760966146820243640029932580893768845170478285521327507991037071387403385488370779365201375487158141041715674458941408055503756865147224076265552263171017350572772713330398812854941223941259011116106026117862646681917393242731229904084250172566990570060460996770659090379242228841484314888959097062522108887171792218384231249056411687315428321408638515424614759152314985838982176880191761284151861607429667327589265798312395933447715547958317253730576857283525564868637368380242143599095991425867064183957476041335325167105088858090354324470564389275711295405545130597106831535226086076762087006759540023481717561835513026076648637613107815886055620308184621241674397633722458396312466075688043150082949931925339343490654617512421308471742618879137683423690108502456954527348037374030655991071985085503690848412697859718129870364887567426573257293719589187470038872062654265178663972536379808837124536441224944556528612881034628872150293601763574665514103649710418823368310756608746476258580143331330648518913390299631109470131234547568864702667014720360550872670705383445376944601519832847505555011127137825220194787008601904176934612210342763616538947963422812496673339506913989264376242300161357775427312677143210777276912867011124201864406281652868645769420243102463808045423082557358762127057990105080501088992072046398140034590018133224750437917681267755269812098415057496171365779448646025343259902880276212771188815067823857910201300774236794532768945837590877138131495862576378641831128971533677376989591721645444274835168301408459968683586574976598578307954541652240181428132082982851832920012401729488736764374820388921271002069154389602102224606831621612057052254453402554273508243285667028041338591313705442148731900548201961681912238682014665544999463750712043850407663299735398768492737382458227291373275850543798385850288298817876593906215415885164103648661873933865418989896769836704067640823383833592420275070685848402302527617633172566439075518482092708748193482858041725789416611326829458948694975844772265997030809164917200749828231392574865850799954732849546758513284001357740256127119415054886331593633630294463693478617412041129032438302060984443653691023589814087083057184614030100376771945331288104301166973196152539677890727508336236944067791240041569944403063755770659412218588255511152109256250649526983881603467986991897988894196915245532299783984105657210359087360187562527742819074483622110868361294201914192027433785354880834019140343744381080926101048085209599885167008753233609245553602050000982452046825255025770390341118997222912089103630507852743369077009924598850695571056773346821675150434010525719288222734865738830676422662597519488140084322535194001695568198573039972545160507148765681515770499102263198434282950383135548862113248718678075351356104821366602075145237809614772227683525405349943008930397803294109342803383682845299254002307589097247827413281850861565338056336611618689952877882047162898889021125083636879656108317123303592687514113158518523468941029612109928323493464432360028790892910533834445394490603134255982479341347473433378965751834155373787107448282579928588916210155047505559513089743817307346869281857406739455135813593946387179614746475786260815275470625483970742720444138722675896281608185681061058029922239739809326741372362441055562200249936697094503306765550886817642046383067659337627758842360309340758373471927129246797372602563852090327777375451486894985362719404610399399291546176663981221633804663397334876205941975952064442452713783840340907363774618830353312076727891525026661804481921347490695705173804891598331913088583488534703325245002285273984102722935960227527743435372557130117915282633019728927827107400204891935561294926363920345567144148353044969197932667701906493847634237378748211868644932737104191354594670383081640969900239862568546099062066174623682289239017055494812748567958252541794421046259922318375488455044051440981758515445024202312149425521306882139016269512380075240060537047938400835040983488973205517322254334111667425838753015052195519637360346599968447793250551318762618694159948764124416912643984454511592864363949228182866020536480120641259002212702091989067480251702660661139592324489664886737308712041406944550933746550561732009981035117357636370582312632025529198774346849961020461056369974408003121286367290886474182537232493554838860475631747455557704449821378691185842267356346417393506848042306306258185448649051386577659464484180247799151122442097965810952366681802111107206788052285659977601367013325248435707278687257821677263128097161630327028261400926393990781398838367780997570069199737556947484172856690774517455495731212542963513468824548825874083785796616856769231168038822291711495445350143651880078044153109560900827311433292069620487719872160670161962515930323987181416404898717569188369613432486540806333210154311298157355644441553180983281364889552629493423482949516561744247335552236736023760875148288231422597331865705392860524717032905282776244593261023267253412211837318148061002387543509616059512572208027161113533437581044749083034221236835956844700392383244670322220952432156532803208957401737007147516144512194631726506313417579724344852645397776568986887825756470662898281814631476351227503411014631363304058579538055240915896279180521570297117730116692951462445592375925287498790308070278635363077251787399982334577344728536846319141480667637012531274935659868650507046089039773031934131558148068151124489872443542138526328138196421037246922644609283400830809710382435034768563032225527812385472800158566645253138974778825360883239042875451739913083621597309952369879126409567868387082041576812264036268458485788462938823324566741681860302665276989088489544901892665184063506724598909886863211729107473377732226301951143004129679496192736311561876597754193784154213528621718169668392800879284403148445588399593826689765317362035803186685307645191541160579346426853403812114087948901992801721046282713371881135882567747122074322413340233130416978302867459249901429307892556117658539341341975550699387390086913454875078682091462747585902916392113405951669852659136671259681524780582677283397652851907757607762239504628672946656591278089067397838357505301137666886814947924886607011274409389941734023814116249205125511848702910811811777698043784345596154924939146133779331102692227225690031644238327267194203230501334725549387012754932567405550751677859468585430072218344912325966059759368391042791297730462402783080083242313856183212414762904296563837781405687301480097010278557150903513301465550792042913515084533461962301180782534282753645313459612706974929518461000317587734053380403406656142607096758790328130208081338220295379433619871669889060740821961025376216267329810391070518315020637544964261649330287494685942416736091298562623691787086703565381035262026588860137534014696575802855507091890079917168239669564041043224475982707617558207840347210683189822819099677057397435777325591891101618613446818279792855784612166370269596714819542694616024240512250565363357003826942047782877957533604510549879501484014946178028468615844768982614476569906313226032949146113176807257680085038274842496054756479520898155157156292771691257541943835374470710907305567464731865165271823920556587130446296353560441674236310115565217754580746664435822297344742689177849085817010715436553833524567009353647751330624840156346950663359669313556834177444650677794900887650402723946474310591175379354680342103483230865892869880489434331535420682792345978386769847413067816830921238356985147491953921189101516893672707003394880855769381899475472781820496842313522393630205458724254116094659278683951821075477995310176955210150328442760875834975361521875826917951092919492952418512190085589610540429533885860127227516321394678206297466585002415884373291699483111938344855455692172139853648321075790708959642960672647693383462212643679996817002910138548502863283027300875951238188158474712348200969409844111051146736438997662940876108214388489461500421735731361873933671569774938462651161063953272236780794558445203241772780809035725560759737491253697302738027813121265894946385149396621479134467916848123042476254945288289137438069693392759064576992437691076413440435743787518798282850061165624763908242770138259635704755139376246848536590205569328348308387148350537542471873752456670098603018236314494727093759823987745977091813723875094962171346930726074289071749397077272512248997229352112973232820419763619203135525123761778122138993819638354130192739384862302281177669681312166836548254569314303010030033922828108592149966513220855742678444607832627916356771652247538080589486060110822331305034318364445151656854909694175665574829565991302207227778597636692694978597828500260902515490778176788429032218351480066170746909265510535312738882912350545176377491377994462413468952385209520967156450455550370245640746845715522257022590171130862738629977559665013448390397116413460151506250418928070496737920831461325568925952249080274701587013841805661005868608674433474866991320388815248525561606206323225228142056884715499277321005443245979192749245347462482837808485067748458746173997401652996992857556218337629288444227545157678188695038661601340525248482557736047596268006844363895852180475929352310768691677322518364681858926655618921407538088341797382859245165522064230065980559528147691364493616795665268671973304592120811855735667262327619248412877099559610629512791564177727910102968452242762994121494195269404044527759424758833994531141551586716091605835341769364062347666450417044121225112681658591486753697957848855150480655640386629455143237494801087383435451842646219527070489869709370608091519569214963325139123679612187407945253984028549274334314585161377915003778682446261304958332347179044536174099101309620752681006700393116426897224443055762947027457413111630387753577334293454611625002876423584306702515433184085699525945136054186219578219649878392243143461714949674979171381995833015319197309858333157267068725205381192627547007569984902027531964397420938490993044158524708350945627548398125435348825371661248032322752168166399840534644026935547781550949381980565230676771933537083455219320034826209267014427292189828923818052497413794203580755226770990118386866642605600229692233662118810851353950779479228235907573862749914402869339804487436724420898247624498716612429548638018622766567034328728268561139529733979091543429098731734266127463006819775344694447488896565554251036835828053297445398340482558362202674059668454634923422887301996759029700915120707723609618548542436434039517581263622419994097039107267486997165887446568663608811647036681087732159235947723237543149377718650143369602598018825398544410578474704731232844414427087671478808034623347931380627437801811603021038104714859183087999161463862763094057231217481701278438869295344904528692344530089344948069863835077138420169522471507791829251189930708073102260595426256709470901862735535416542378784377956491855542513923171689170442597710355125074477745130684254674344876911955517677070448024526156265985402605108300076569281153095431173347745347030745775038340943607651729353596866570304392827183371990791444900011509457210913493612521642501285675798255843800427335140971982119396819413752584209636386724789082248906111494967722978888203252645818143083024375512784833634137122237522795461886527830252935460591749751269987656969670293175291822967116939077452113559975435857271302982859042572115717095581266454006836100840798509900054087905886818387367635361636637338734481937279229465699765701730376126023663420101661569891200937224559420010263028056161843048470344857609371968953495412212540603120548128925969229521381259423357336176280894206954290650570504019894774273715586155360164517636999167364375983220284902076532341246864773613388573459794487807833216885013406437428409414739561858330020738433622895186980644474798431883700584398868728502236568013397560846303966582558231956181513037659367148026032869992903041986569626137320858274519139222858999049500337332806679669256488312609369081221588763130920684034080503745680511192917868724946615663301314415704536991374548757319535647944545560035936980937844810629623003977443541268295920978528540255421202569734801508594017678640372331418995253353584854000872245558100945523316373527940518100430485602970045010739086965745355700971298815847824874416222474021804411623632302811954013737472357622486402831980420042624011765835042053641269931250858632732203533047150931223222553183919788153295765160759658873584012300223061366993692630383331804840754621014832667104878201601529077084806861185377687975036559929171229051676013044286519398122112510595567390374737994414155400290482562144621424252216692015596612598180757686060934463696040043765019982943366012850290439132048686810642324602528282839365093133035683050229522052240734271638038333569678930075283424236783315347921583300351131505047101508809327393015917398189134343917844123858281042449445623268222745190620859849395788709001243839285258353459601172059737516198581735424316202869088103756775930630066014406457226563872168016643040520553109051309937975792819594958918949429585194992175952887911446760254653115419472127956006685619894613845723435617321883703707611108268171626386658814468209768951109087060914491606070161912271603453664946920215567445355335261022492112263053626183600479176264354711498366835526685474602885720791966291281479734361182718471639248760937368247733382148918505759040931837135804465434266367676725123405026877149924554557007481658245121448842660149148563425137229791909717747764128043972223317495541079191744735631303282651824273979979227637046381171404714580163470137302872781477120787351038232291617846663668719090042567493065417805640899452505271095375114752557752856819366506631852845425105848517402711148483200849877075008612294682381572354492970889572216166947182758957508984910205278274430024473921510817453494627101198804733442190805183663094116643936605311765741254329438322293970876641337157340277124399299476988962453988196852453598050482760464182070892001012938192840248790536060686665033474681511547032824087372350321323669241719842568011898470178598110102976180730075722741458748473188562650762597599604994112814015909483987151465764850267269339740651393838046682049544391999252402746081140484810532005406171380579130809067464275746979534681410161164862391839897102782377798162241468071901453241038703541639973976294498333496003990124448536509749898446606427916366497488286427447376395048192972700869259833426243908574341380892285747568571428683805791998175872938075339689798097026503878493208158424816348646535009095288675010622232834470187165587572931083843757931907259893227544616006527911348199509328940101861974088852470529134549606034698768812060492728165075189720646337621351167807300128433865349095121880616066969574663239488726421831143828507028707097746589437233710233863218684563044165554187986601258989208911041277154725108506290313043643695917936037301810383722233379828414054756484391208419164892427822228640269939488856028095597488852543443550147932693219527994176255394819986234087091442179251200904288048110681324514369989801364387989683694675800291535817158914777242923729447581204880582108794609969453216920240511627210527260408802525632242452439911811800506324648048725583749159533053114909384935986618963212110182364872353540392264927363761587493320516762061380788856928298553186813744434543272657232797874796743035257305886415985201952702696099893550718382678672021843944349404318566877827491535579420206860985973034781308596328571679671054857244866879322149203408070749519966811842642280583866369914892794500711352624943210696300949758999790220363878220587907536903997664544285108703450274035137536015513585101508072297913301085955399426261665327492547540854812299310766509725138342523593928282120126034765070090554188020640724035043554125165463322117247129619833362381603806863756256870297255950839916925190722153414161513958744256144886683296092912648984328394128572148166954598213216722016564243254204343944605902688508183143946008316147936497586480802358775992692573490586923209787835678811542818209395096028612631011027941905685195550191546696431002076136520546607861214576388205297523071136693484994926614791099983457602928644627700470365342298539169896246335035792916904169846229736671334905514604033676188757895721322034531563698905544143093139648546228717801622949659700026851011333935491194933623011478133408433697985735523324723216670587897194565572574665183968627101310010217104614932870084285278338435977033191269160219439036444482691753155136725755555785189174619627578984404361834750263875196106322774460835052138716682328508671356935785745279722296453190898179150760561197672957943884870702513783313015395358388774991433834109248393312281014033279536051233370050837084017675844607444616589089620990030503455681569561113404757130224059556213688073295644438233139547002998273821176892041526085753255508791570960817142829055970411721363772721251599135884954266244020285238690233239570335101248249453717908205892166028763020897583887871291423257771805541246239002413245081891581235843231701799586097128324526226775580570785692211484405421715590529333786646763935260450960293380856900714697385616427431942626411279772959265161132457293639966687837363368801451018696760458721556209703219584920077338750534560241099762669839349293567790979654439225107218934882330339018238863830042242945439852475954043445173250207548803834444677030167507862976282461364132781097231847635354025218188566516814985973386800659041148926556169982893559281278022531306832182200268684631588604048523032406612682788612288529104168988250678097335651638530946799199617527751895215267556697688946166737075194842845430902917855098910588713399393862435959220561271928362360080778194410000333875339987072982292882656769556885255576615477711803401826831537082263334178171880129758967024408834654843262482854957118658408628928120992677869751589870604711064143363521022966807297006164364114273837632082236060390855043127140239716641199996668811358658735644993344586783103737509652334265254725089851903466734786395044388696412348351068576684415550825281768351321038599422648419995957396069557518283335971717571352261056603099161699348423287136370080368794748431403587526721927956791535595973294752697730474015394923408716447420983091612668429037745074815221327657105047470792150846914765708116594440588265339209073882321772755750429210180967731369445581828175265373460681755002291917630153165476477741943779330817496662147638696419572727700141423412371547483776011668129516082277121023196113842802455233149764278163790520549548634550772525898483135709150951407309803846463921094489992696919693626204466981603650371523748057875065004934451686030192887789379479343489511514941479611360669949488485564875889157350543669300361859141157879652792876491980458285634782429260481843691305715925478824373620033380643451042688807670100552184156384894185254542937206827250868053043410450114635597333325205770099322138598977570201461857768125151188149051837831634637197727989729076213489728133855556003160838420753053107705397257012350166316303275009796601512251514686892737913808982764707372265340421172855478214897728577834092599387977296159351766434820676462342265383922701323822329401593573584747630255405536818513822450490567845662219415652331845631501893288476120923953957425168127762840660261814801503805699650829780682379782268420701012378378852725225279662601018695574730880779546953800540344848541604857898281689063517983049200513298686857383575918918817597050853532091515098013653346674896163476163652387944489850175920834227965483604623904443609969648280654832211671592293661423456555886004716846227848025951006045250521086049907869244181813949584340533423619218839340707926351208992335180726569604872348212055948478578056135674282159372704865167794159303071835212825094839916411218901821370449467690541495523471576970759613094266449805920383666878585160531546436338721697988398766947808132806509347473538513927781468411333447580014673391608251083225831788269149434829601606556240021357315046951825708538472421845996670460080554261377765161861349759595665093145915997418702437974969192212916523235687970831430631495654714423931286786802854908599777005579980216514981123351629973237393888765117162941759023625887002810526936974096667903237023053948228181159892408341528620227618631729850732920375648458523357472114523972639810062361500738622862243130760375689082062980268761338825570879224469974119217685398085201803484341994443100710628837969941800977706678790025188644486621511106974218935760649172381425498989306409477704966000136392628354766484768242914618357827562246682302488652230804100148057806259413473310850035901396372945830465911071936368613230361980547301272080305959220497394855015419006709501925148443924708599194185674151218772424878319394228670221255884656583153317171082159498444402800392493005748654530256159137586124294978226695234270898538246051384371642192921208692876370599552321577198436679641373828097005700166196613539544980764766566164639098633837392069054516588110182414179602286411762423555553140109202239992843371489006293169808989239142069833382712310544020586148348491683088987641288096830931003795485891961892411541448242211952489648435844856929509782905386486264277762920214518004794913787174424788556462962529583497911085983260375469447209196827441221865684804498974022952053261441547586521829250173047740957020688647366916389771312901552980248765838745464559686817750381583206197334485675056054574061942471472922263040752040753795481522618954921244572367111239272578204341513902026810820802513598141961219925040624009984977129456886714582661880092203800353205584024025653682151805517309914927567355635343956260953505731537556946403464156914663802685035918964047180361376792424719429038106313245874603235641227951928638451075281876451762637203046244007526451850802292953319164771722413137568455831912143173186545374323472400624253871225688508444139956245561994357377384714675120263177009348060431247787859039222754970760941046711572928669859114555703913969739045711047720812799204581816622511212331929193130679304465925388503502728399249984500885305069668762091293125713541025936305000864933145686566688751540572476229443218546493883008105508213399838085497125943178784188471896294393218587559710229592772770769375933719840348075130852437612105209993123031096904465911494212341632200768115542768163730026163521363834761692700955158945529710007177211603091095791986671885268851722699380070013643682646671745709339398661120315720720890927594950395347060189768181345182895224814287011585806352764991144152737278807886319881994911599050282975446426064755258550096978599945330323817650185122168186438077117018036946572921512355164781670456433136443386607824644811270745262156092749291456702665460944805867033774497935226307278487749753213277907548984629452303976964174519948183389541004822851567953840292806601377916923948730022873468170427537092653782608643215885993909566445946342165353440363365002026566245208473755605175927022740253544584757688635064984875097117857661000205848759718332645769670208218423270993062491350043717939760371323889398168893506459030430118986479433298763640594200111165111260715553504507272150077721532751449043696024686113863768045828505827310691738128377489268776624181874964715190408065929901759463812884317528840357968362611757614210663088901114381244246769337937458819801509559563995493089711362118909216541037348940108548201388708097407409528460409277047925133123962189678377757599379376651652999741325460362230716930561836432222518488175439660623872066889982415010682013871224596409557306516600880350586142200499617294602806058503417262829651979798835161439551105833729509477268600777785838496513466078038768008029005159390943062715831301121646303913800868972203757323119778507423765926050528390252956624979657864050992741122954850195350506711625623571710901359939078761374524650672245705141324925873044102534130108924229540036187054746944348962431530464533984315082273404535918405585928715212182853425187194941103642119497322969734709597122521860873564473679528822964405502666814221524652883350667439251760336901432102217454482988555574225268853387611661754595206817629710000373508484372761791171928687373047419460787061957687773641638212661379055961645091561764710470416652540370141107790559667708239490659162681185775649040691238529577718984291259452409578138221754389512239077029333844403051687286723692116540807724253313055067019954388969982800997232844213040549791812966918001189279345844422029716947012157084777638143846635916614984552013734297164342701208335421163346621051584171981188756502944509884171342617961635736744731215841742389071028325657817800226861979579085709761557059586035665313793492692615352831983311964378807855114549823263266334629902803829942752683797288745534545638418710253190806356616009971156227908666734796606653851034064951057526237748634126468609456338217722621403800360681478113509935065890721376844640970944513083581094495177218203271201102295295266734626945918332629756784792194053377494817501802742522357626646739955320515261131064196682193236836703070053516591559586897132759735784907882680603148054808092747498942884577484043480362596144206521549692304394067975672846595866990951923824585656067865711970906732042895050144881710114918129225660953450386384006218939338096555450944405289326849876478636600739574631327311986524129605008080051633110574813800935220942006203273088880026417731864980536874396910881796440437305861015096237030221689475952110911836992311432409078105940595041120387218125619542114561150843834976451665253597058469952951281528095332960209777412909607654871937927107955074909436539864878827618111098953186007716360893511397790811744034995272785661870679972183292017249844094193372392226154005929798953035024815953296063428934299508732178132907864871268107100705023895274638988131559971373872080161109885274709562602565589260449445385887555691882160860873904726196786012477152767766241634643657731360741952091456238063569619304141200888671116179942953210563612738483220094891134210066899560003689093345037047512059284345938551230760777508040233708376557455484547512932297979383678912936807868357919702053744864930673650239086703853539004488180685430879665544810654273230686500036349959395061848065327255451602408587333046282441950212282316886042009884610914166914527589653400131757894920805965715797179676598942437352693360285473371567662766591020702445314523249669382707882244220075789391863593015225031504669612268303808765642453282203119642667037629169099670820011703504669864063558250200449343498824124484961151800396586756643279400289425842429838785344375419913481541087966962716330030053478703393681177418293745520692742761298039582696237903616101980134410299122518093308689138477835862980562444906146984782379091489245229208902000933301133824475905957833340030273463655414226638234668596348345745151474050678693466692790039282996574573272874036391577501834880328334715502234631636916692318942429023678838679072989587784297647277312887734131612837321619398582271697128202207191181220895238590847444528505599291683176294542124026915233396327692356203480977938169024097980175913515678391346223387426073933189905142519078465735625398145650011672025206713303521032142191332977003377194364172764604834427127065112000125399490947584336372901384559243907737808967678074485112228033325194091714956794423270153738242947914623219997813819445141522148719279381304129364867370388697454165325336147206868579507239772349848570908449141316007616924717092990216633876464263833823915097669264558818838944460972124911197831505173867303289579845915718323736177298461602388054095806768414477885060280058752053607693089497884116755588021804128120793029444972071646420305053187278776976335705166377962633773516876113956525822633411557391943745152057015912920312009727102840399964767139565665086399235198484805561161416043843153390850300673149912565141354707650177192784651831201008604076397389454162850509738561251125648180759663625253827751761193605718204911345396867471156378902190386133615281916675959309130874364946384958695882360966960157785628842791293003525001265205509851581185485572286651529912808112740498832906377788333755685908130231876108508935542068720105871822897970961645061515428280187016605925917494852805308197270091839289697633149425140968515217179563519073784270267927374713524407134934702567126474436462452672979295452386790426694271338461077530856270559203677045828799804370893688326757166572101327436227590698126533612279199336569915114585598505586328640021463366708648415019842151480855228016793841222787692911522803605389348038246436029974505167839914598098490756548821015131589462549505067085503320189483586605629156754104326641820950582426092075094116888634086049049368594416032058160725994016491042153306359963877096939354120057118822734971434903165360571754087648654397548830796158544845185468476811963420703438672867498096517137054469735535591587664475702406862294714832419224147330853211719341556012633398647777346773887352818013327384305771133276507727854642517570539818578626489491082228854031617419849591247590024582498794590051596024081255947144223318489746790211822731040993962588299861171863552420188549697549048768378861425683062970691426813654645868189307789003708287319923947234928143836973243619566680265081206657361916667179217895886970115726250078606033661014841458375754671041873483506671669402046075419298162445683885639579834252362661166038597807170944312994417931613207412065828880501893148917322661493276132201957081438001392946948638051863815089567742840749991918353627844554749609536677280300481559174415267736459495859860850347888163055468065958028877782213547975924563706609443636350103817371401307788725957663921961993761632925385328898027812098966279494316707713866266732051571878789077001189563952687059967643871686743968297915488298735012013499166248347420344743246552784644805860425150664157298528301900222447974563240576374929700558991781071071586557350479803515990557165026929171977751018192027304768311761019956605234069531923309701552705034739019075475805944461703631215301946410110512438021581050637543112943325001678522231371419272583727461704149707376175889946871296338523974798473278705493112579422402485391308113244065608686538965620876986976995872491939484162621386981072323360400031283537403147006583080801073686977732052354920708486841150833183758456361221459308124310682496528649994936154673850251784503400756713492097152034426638353161474518424463368682271868467520133265377815164985965903548550044831351848341453327608240639559085801783691161661315845490337447990863781304712043952641490882462031354648126702160433672570960579474337444099689191187419758613326786867300811351310263674333784696415317045077502748567833895032535393464374735313939324726123809815497243344762022527383694789169466325430601955546755196218556431898848628692466015905520712581598246167462793260194707161839055293858228759789877590770461813149684703361993507125078284820577513158845383210487143794744290658465587214671502740195708696603621581894997675784626935864274436386253759297981483603637707195740514074335806923169419806082661186624659899517015896809038543360058538206805809792904213869435813730443007425981625394065926197020738606370031543618360923229403897470191958621311418138084183534738721894542015246502834378642363439178615357185395657644923743175491302722305442270598403419512789207949847896886920536725674520955903565574261320643845285242743843871816232721414063747823876535206840062970040546010236298806256029004079255453590193588671202715261636232316708462909874919746589748356071316570196829540567044031955915826249368759319547854375397568536609366696066046637826729517834936365882175999034059638919905997572061039634626837787999636636272804039751677447118064633852898997938643805718182393584524313257731447275222765984741981280623283620292068970588330518840316038666836851884234516761745681923045318697673796530959377608288030639089026734747384200688207373496985175267698207344057645830751003353805429013845552007606311393139593208498929628892649333445904791893067117075075765968634581883016801887735874951779909435760730519259639072278379935952420049182267806922123432950248604346844670091859132107599807508338668132631257653442404211379552295507448038536325802245667720746699658803478006197603867234988744230897211401282886598844270005565315095261890101265483427453130085800407538071217511554746149521492222493656375219951232133141146208642311243064095144074670843973321134342418320409982516450774813443937170298843291138222080787874960811081500802863740109795232668238367919392091228878337747583211114218572045417281772441312509692170030219537183421199398731390239523313759567532151492951627702823113729591022879160633158127786633643201679144229762522048047264670638013494388952783670497378795767164574371167949576723288634936710454081340535594077766714053091387918352052180806326445434711853005912086721438032568504699552099223059105518624952001566994459797443198153185456512090220516562375038323235886562647256916684401285289170565307806344406298835463310147082542004214226142057746331625936453755648658650161896147216204714204864575067813507668225747480646815936644693019997620019610938045220936609253895765566678555747103021034632306179794295369169662115369431108648332252187184998260141301065314325264216874531650228205760999785753542620235344449807725114671922494362355185315878195070142377012144407530864273445731085829349184238283280415533073913795644912509989787957859591370139068714375760855021661667167301776994253383607486708983575149925031102526181381168180150825178462558918684294976650890346266433529656351703759249349987428621408389132613466371232066224790746463699993594858199730789613066540854411711552696042714648323914707181839590735628211696017109544593764712006098396093140070234155491018194898761630914297818749101259681369754099253833944230655981598617934035218515256817828837943144404070795653014433827884052044133653503665927491116284809851703463535687888101181908892856863690888547919743946776653862052840922464635581058965393329623552036656572604786635083278495892812825673529997531329250842507526435210611977952288682294110522915388750013794538714545709705991424781821007619363054324584134395215690805536714400951255222998835014228866228425556004421782606562657253680834555337729330334252944419486850394325575055112201479797787441551631319263616477982675588966132678254823448366110660299872268298546735609616588625950953627860070520734251543675855035070193491225374101591652691154049144861746198766011874428374909072444465566431525173287680210625226631529267836416744182016024296770621452348005413576911522103179234562297027945374551853400032018040538343246997448753347260632664993684679243010584427166982281237749577824775384693225301975480125226111661962899737347793729363143126106422917471020180301691786615977102674211634901995560086182574696206726133016490355024051282497059261194004230111573569008640285215578785073701475003055184118661178291815478844171860292610545994289037955263566230770589901221923514220839061945584123854270460830081747843997411748622423663800671779278080494272389810352013848628135654108545416401582597010338080479053974045990716460550665675018487799679373436775166322628892431627855088606928726507225441449879139665629710915826700806404543870236487791696020435371385080222140726142337882513112563873283254851493387478380136369515232887711838829239167635562257927490449152770498857463083066665428682214647067050749247359976532952953185182468323848201952716264283475025943593920918357051884934455303400086140946880151724988105986323819081435913538025813377963574292109335382103101887022272690151736790796963308237024979377163215766110367971078098628014509956828975765362422804549651116895354479612484170930425045279359185412923142953634673880229334452277231669222825620160555674488905930362296515074115090850796463728675915524903576342159440395972131783654494296560022834363524182304636423263645854903965224796419722359264153072896525326744943098812009098959821136902263838082009728594838430683794079780796716830991849801828526395810621629730752925147566970900840252484970452069454783750490589540442765350920838991186416399961312508963040835805684809288151853383755985828807574063419498327998533877296631446040535520717443510849532518451912617245079649483692139701032483389962223224515898473050991370992349368439060896772000478636914828346957257785889464557713495388794084236594543291285134629319861083459950470417802383891339255179506696168064905489532531697438689379264428050587744291916192008150249718934395732263944557715288253870891455287867215128229760855249870041199250453916579212839248377177728014328953250209214695354723473617751726489116309741775377092801592483484892518189144969711016118615186359811903707407859830220105496679373793504952277463547865613376577663701643183045902329197670060580336475357732030454937255348230244003940475415394406665561456706233248612292544634515689620361327264269720344327087649406203177330215332265815581937768577888307592199995588221139521099486728472667253278717047216721274431022736029700279396588377866981251191059079382434547168282753838503963175828227974123862334947049672650970568424254866694758965529315479700929069998024431857184806758755990323636531433868588498055743212229783979642758246482490710645554756975320802468666816713239461053956663357922623036339956352762175014519355963701288990082741847236463747827122749735280455503971372675692349375703169046646725769807923402057305949723037195642924165720901319722943579438005277779173780776101972938144723050173383503051039795129738978592113721118904467190964080492009510506269296717003762330971908290493616175271077373199704548311293079277858776909328459913493314457972156548503351566480430673891866712198166387336436052174095495521201586613676988784437558130261797086369719216607319652678395420119374115636332173295326093980162959512782730090302838913904935749849388790773354046765617718263531279842163745411922883835327753939713071372354973481813108279223316302288287120167163406273919852526689553857216908805590242957568313610213901562673650269474539995213274220851865667400353232376511970485148674751218570495715359855277020972919857518666926413314975242021165474949901470876673791783434954595678687760848974524095449722686534303699191555093805706342184205320560660642538320335517227035187077541603638273179744989654447269325606050762039881896710378823959549211236827305763441192648622939134661828707989562594882820447034673864073613503964512774849272666064796157577695214990551070373985916101127582889596588401982853146469602538431567583358707208934351738452599668803686031989009895887860479254353062468970738128435329661412654232401361190284196062343210013255973873859212090593960400744966820418180307046540557740748502731119369745521858674506982075943270436592769179540536900939052402467896656896151305042270135846593517886159174722953547858088013702928246677669751151759683720782461042037353249290233757912158905740064938108637302768055937779008067961045117395727009109451365023287666494272103640317282225015672482185593314589372602832078891804704740891958930249483341615362967443154242009444010833701596980134955115729485297882917231580575296276519718203257125884421966668576403199803406538319953571512197644677201523007252414713562535234917034959554292633784758853808469772246892419564827257453306494153883592483135589520479948171938691282405918448040559471919385137267017046966452840603986244329732992242887978975452774102933534035456444464223826556371468141147683104039335797218025890177674889168150224568868847640899341625892828256081791970654655783138065461941672427094523684117063607184779780507747608997033265511997139447635037135976874056801326007418048599136354679352851351095952775829915335126093718959865922546073670722458029739245929946279055935567507283734326189805911405862580747340283094017028678733720195734390574890014686001663147036518404781835171101450155295274133319383542653497089754252541607886139069488407445879726990956879845118117759016413643984237908576420100981887893725776730997874869619932010888624838446505223873907029360075719286649393097194614257193232484979335164913895798379392036607116942320630185170970026884388623605930115343552576601965994140958492597694714454540309771273845376673229210592473361081901471975955548057910890129141273318211329745225548924044316737537855458806575612176597208966173071350827733754503245797228039526521320711675569870214088665514603730487288646068025116279223364203245102999764487636664095483074606916182699702316473770813615868114525044092529155013441522554447114202048180005069704982497126425874452733167519567956328116615497057587245923547199092118889037738562141779753102157099735382172956274848386933813118047693078581848905716575372770077016694222332418548645118196716360235566572462034989746800541591181523470284487927258989858607790560130915197283972992704149433351876580152591128434410395309485095123801168045440341261252040899971597235089776019293976061348045479813965529791320148124952461060649407541199592375792419517622800018653411313334642117422121269805203818170419792946179132015640628202138180447525318391939836679470849679619194146694285514591774541067480725109244679545901944386545029269804095545069370395907382796541794864198137397976738546572874086059213438889293639845774062472799999276750387932667990884928615139970526976833844734795184446508345048002067477798122863558633366151592731096387261670852766631104466928152364655926629971141236211233548908394931066137130146559435273402046562806753023873154377006384997150778286906321468808169728594973559209867973453847663515166331854353268500782309870817052386752372103294008684383979860675122871878991201814955190235940859653003797037526787075856321331812582600283242403368207217858088388663643725312398839306087471925263376332627223370561060487660633641744171886663625211109532420817971559897396811032917905789923212570619203872531224729250196239351804191196974764118902191393758904113815567765229033845762108271898570675824701015588307387748188259961815745619496626709520033037867263294340729858777831004410219135738238373787230513862545409700844091806518691300538728000984778025203828478194415264525054854513318236635750261493582989285152753993725152002210466113687555925400715292545344241483128469453365854136878218714304451267357993814959623906833414095766253195288159842747555147216281904596292554062544032450891745819684645826481820263736862245201833121169445987078465781879345531462674820683709146509181366826139325773921708180997358463550361474323344494906045479004643805220011061300336912554839156762538236844882281713626138185699967474742685061681847789067556529001272526650479092226976446871488269933152765185164235018914656161388836526783593110595885661483168840618284193492582404279481038719902203660304803577463578655985470998705349250492977447463571407712669525891039041937882645232504274728151523266242415270390113587657573170160542087247041094570867444297178829206668145273919550024259554962037520556165431692290762571383046932907452233263075545493391641427237239993602931838404877140161846967037587620563314820899619381475844577181656645587963362468382402839006184010884278056962944104350169907548143862475713451799586252526436440585764577120276011541450432327754800769064937405919770568097243077103597781552584119724848113375348616071957062539582969379774761949024308211489713336870404398533247380885137430094893712168583022103001429217319491781829090290524090074046212282472580766539344787464081748777775546530321247313257198942281895385701626512662645204928812110956737274333337717425521726542434312386517595313656502547313347994794062160631508764802851218471416332295296404782444500273099859231863202712488894595618044350027443905417762886033949978449286334964769872004954374542671686207670150054889015404054348694189116085384339856099495403078467876765451136620735918299679957814958537534062246130409226053913875174504247215368380921479954743957164043970096996154604267682188464682602048840050941236350981169439434658290334981923060376380519393450748686723748482626255544001795835830151483685256260418785354880711648245732284076461294321604187085193614705274473232907597601733411104837620056676070116340294023473144501278225272346302545986313076531987570777957499858221093712527115460789802214496216154776713103914824482481833943082599022809452256473262065650363653246227402373809357039200070129383237809073259729924796076977826535148527433652771305745589109922273120500810705141856646433860640013512001591890583831947837331381173982734818599774176429675306504058284956418353143706466640965691539768088193612419304793706288061586737348085670410026322007273866041777714334767862441200855922542949755807777189722430909096975267376610496364977462290882134127673512205922707496859487496819091409044083306541774586392160396058431595534306130246053115612479619908616552091486244789471093593006291575063397326662386028384045777019130433745695956454009829391014555702331383507302755117476318800447986635270550133115329858660596455454704838863343148648397716767521244661275819277069302952365173153693263464529573805896946670059421331581903904118735122315304735249271314775382089263693984971371379070281506234220553002772788149127763145902156933792823871078741272205123347997178327763981289610563596876842603845693549140819424725070261283367125702909781017949395252164493016288169503728633053502511586837731220253601695303737435560622374706746920093404694560942832203697957358942007407408198916107549189716961271392489151932969397544080805538428680598910642051055256669375977730466113382946217013482470909845338709202881482240581159123798366683741919979720644132819090264326187180778219518774520392134540376621142781253548852897376622807206105734720112488011445395735278373950221288115738654332122754851830969221399763017441662086401965655954228039145329933840410963616964559346311631168482589026603994262600409222750525555836409393268432237140571460437879645685091801674355133669727890038809490961787827923592010317090990902766991170278847383064949069197346537415333546444996218924583633109042444525894512269233189538697853403207176921863846837907581831655087411967312574466229499067749737816239643622496764478396300312072172590798692068386549360908824129146009573728765766642998295135867516690309127987528146604020379381076166892988670683506560039728254538259159865349386633783288509633496108958767906517867217359889747277222163278738510288507484676543284989568000400355295458337524678913066665414032963329011379120558162416083896017153750105321505684537233793501054007393412640135369115328085209341395174215825413252041766521743648562002823511654651234224098656906752351231346988545507060682263752242993113155114582226771994848282525356600147863464191610729010950709750487648301565321095746210117104574500626981791730713253667002412599433704248420065581646058246941979213265221256320673026773121126493924011547568910172542595454904947704443540183660025361531509851785446264187382155726502304745892390135753884795105487747132492819756644000126138786439234994905807348327164427848839327403350939804653660076211329304854688126570514423036951691969179587755293172381488409341976390833486884890935234281750871930838704299041540105143091628469169349681900937892192326433339353838373992457212263395266505074156691983502485829765059643228911240119860173089531047906308829460553604717734140709854192815560375640750329135807764173802985180518746353518042326865609801503512517860923192102311536534700181766626516338929560975851102218757792385727896728314273676541980925982747793344483492133895894805951755679507469303606967876272205700463378447653771873147677168493894546660110253679754230646957290198126668178159299762981148468891594388388252544071346250432273009925408399195043539684757332242314143614561633735767614420643535642910702539767558653289145802383299575225927510889807291846332754611713820606200471286398835721975382197337500207670986249729051907363669294361747012532513147057984819199834363192483906805492806247561738883936141915467931260715723208151099591625274194616105066845465601841173758704530302432546677815060511537673237434691507743973985139714009922667496680096737489817991041166745969440777455498123665216847819067512055709372574976393149570821975371933319520782385098938505410463369203918337825632131782280127951833008911804391399671432494488584216303859988280854913111918106321136752472063943664608014339974074978227875788205242648062930236144483873055511444388142870708528312010088493528358118911284171847587912675940420234578625209135367911300767512465941233023344741078787784718495766800267208157474432361719202250449183431740047717709670525987690585371734329763770484001033562162873756311761230327341788757673923004637430265222101349479852802464842354551406784667344258643419763010643487718416698423062106573798330390503112498271297092171281145968828969738938974431753723031250210545854873748163539697758203484945328386446908238999719458254672546553130073270708123654658480670510008390646049014463818164179554885562529712945428037130045130716897760710418596979282120246947277143016001896768598203397646718043910321195732238164865711294551445378403144928367449545531619198539014575969497142165445498929967382462716838059936619994194576981293006662666919836473078616047061500151474153282938677224484337982774216912540116176497378167565587823403116040293160966239278443796151216879388417380316077125152581296373109607042722182522288868375404022574928181640429913977817878170484356703874735446725897024858630996549926949273110707403580290679705091671792232325057831952554254760230732027000101993100703115424328410317655308883891155992654205047021199947421032538586787392163698286347776672209230967746556937201775328192661854642966218486381604315486920036061488393051901217838003366416243215632437650649371989175435713613729156447963993312506495740179597134450337448158452782911363319256374217028882683278858605180247928578052261604250464247648738416875936786811226715219402665483628688570765523674682308960981627681137389602494566626436650618302936454488974382756434405513839012714370874232651381748589531196204170042719751103450584145475805996266675214611886747475836079775597098393289788940609573858067784518084940842829305375980332209848937823618457486388250515135117358586244677723360967193758891966902194833764709367198460307266211452763834663209976907069543664055708551713935747525171864454711621836746456397551982945566586901868777146256564356782120988686116277321836907624023056854010495252075557440573313680401960164739880677296837959889306144036960961033566982421900193056270238033424778797190121544443488354121182976558909386152812143765774698935170922103606980699505906289617096149356039886122406864373354578883519232085124261956207322503363872645500157073724286466364289567754200752228247528761103000674136275971407943388968051522512099485612516183985662933136371790838554159981583206787159217815912296988376063398244618406947408060821554374737314336439961061039999754536138339271208249859713867605271442759244612982088504246943694348244202696556128096382596494949638706507883955559279490121892912764269476212795369389918907490914281933685979495581389247874518174263415841445565125006773420729016090492852517503136327841968855932820542730399673902979613722884205973026757724102875899116852700297185646753317296155857377449699169781803984317600354469561528100346030113848734839616075084953219662109148775209681888971958186688449322530138524550423864151565518717943354389095133606198588545821372629458819852400583980669436185713902257940715623063968105908012300671362551576576851994217389448276230125243786167119180836594372692330393565329868001908662144827763563447811692386852769253527893847311522196461503133025859502065852716944312634550727022251219425638300377246645997424242562368148797128946516542399581097545602763515908833961450416807865583938504836821462453674881235714359477623975840197609291269287222787673905214051506557563720568870695851797504462693998273724008222703209146011805017972388885374106951374406010624817077265932620355864361175602840168718551855093695671741785783480589172083259590688585727760329797874052675685450834937742442693140874292787468836467372862435884083169651806789501842484807629245310124984343366825148131646508876370470664528790828244949169773227558842759043407287101078184869691358149308032064264986366311290248441417972860041371215169766186349377202574546614477564750864891934908544609809509184540145252012336764328359881041422817909792333388063580419522156431659533768381765625563905976062316745136505623332573180202850206978085838995323838279074391598164558600681860130572998821034669176094649487963788089726250412315626431544591607611986639527668037002200290060536490620059381632331375673125975710996687186369485431207528472515553931267092990965190865809522260597893098836433210999445961121015672696235958672422322365738891704806411842940558974230319591783808834305712965362814256580870733386897555486335525742211638200287603751664956490983550070383782688769467216142408812753790442931017666957900647496024395825044750133244483664352835918900971763433608217853051661307374041759089184962422279768346808886460168780616589243060289747676028218771687768989509400561592142503066992285482689910399623895518769008116006263607655763799335432490865148781642479715323102549579831806970645932756936750153218798591487527800734278932518042985922220389882301873543233698816726116097531736718961936633854906326205089022722404769748216508165860727092966916507937369690457166556593549754678376793449260816009645349231939017742379036208074290114355263716129658751341046013054866857695797436729571090841083503828084884442995711254196324352961233667460527252956160110343249293390195499823867295654256866150926568069101925741232141969635869422530674083492071062726772230622678575060018693279184366490089535221362393930601386693063294569395651625249901729226710439219633215561870599838412203634457462634685090551883779360357986392624341322487887832299437508814929130897935882066300203110884615297901511441352189202713525090904204263228368002339351955335225525643251803944959475713952464610984971942428506413955708837296584416027352459658423505670143996468681875845017662798810423059486967818328643788016615195473562258356684639864777085164682238254582635097293740532378052405693718267704125094891976282123648457574432988989086176106997982255120907722996336907300157636759645508777297971078303077854090999254869369317074064446909021331584571454790581097949467118957291223842519134870684524918763760853512270839251933956010433017204522587203381870468519444999528540062868981304750556778632040172287893748801768753935232075273564755958298469594719286126798386055827390295418831162972766081699442416785129092815255202255980147778283797221415852947845620815544974270092558630264748462944213799588978549192875091688149085517996063134884801737473794984556667137455315355311716739030921983944343302517367279452142433511290241350232730523278840454312193236974743543738595048627811747051697072462864288869555345060395405087978569868467194642364748368511755008027040888872452026617618963780975294148746281295184314726856090354580851479939049828848084893718343579959349446933318005795917805109507805562364628485116971328367960191602170909551795258257963921511182780450084657553109658042613364209218850138070643644569315059286274677891861280739684284580660622958651574426016655977055127489521446169029351981410903982055587861383469638189320518738446013486886691251078356650322825757109552807397045248390510810815516980409842980991152720854825515671045559334130334802368432022713016457595675677883640860236279182967774904202575197659252963372336360950268243147556632081819148454066295782570015819400056762522002279138345778075439210978848206761432558874537653940521368666728871640554291364366897930859971823772087509043461979313830053997916876264361364616029471857822884789779731775563729037405359050776527960894589727759297999529667631208090775824791139102623595016500143906953615644360196296089109485291807385109718152042351522166806963787890720465913333905025719031134066538958759586075149500425981129145356819470901458540476409176531462295505315430558343667102323495876868538021539476423376917716320560056857997309008861190924513232329469865573874079047727956405754655271544375957376868426505799472269466910800494773112354452738638139880617768610925292151468043463964782903815582088455963030197755796488739944735058740425758212209384730666597355504738777211528341992096566947486642509922482019730604219022661839287984439158623754558081527977893363396894227007761772805406377541602188795465231247574779075005990637019510329244234293343449905025853176046716241583443297115003736900048103347540660560173554977301308807176841232492097513728194857814931807062314026131486978460859364778153874068019604179562536010920166252248959324329205866360141521493099680497050164293727381380213740697057416061140130749949366294316233458697186688772808735069526252594530571702406361009312236273784964772854717908878751416636377621003960598560898963280839045008978712039969315452183132784165213458631643637510639413474638131359958998708111404535551887876687157346291331108736586663948235776411747078000743463896680128995264363218466433302923746827675600015993469505649812373565920900208432209809167790262018601439831082343768887215085482927537608087067898775347901882384541328283565941754768418440198412014516241673514907499114393835700900080987652195749414649351760062363557494756943900737536668252336242457266712910550902151412750478396665365108836326575873174141709301837019149551156490286879102393132840373914675029448143270665019884450490146083028261637144418771887827277692767152709790209053230472162009643933558314787697681990403068231109120199369363613877981341301106722721377570224960095157327672323482736537497083186458941938418854914148561669255537076179445921731159990934091487311415265281929430453033179510520486031956003464703994405810964748782584597510958506567005474957406722710514265723559071344256155616228618279402960644195577883946140985477453913965990581924618186332290619354778053506073621075477041455411496149447417391298024753065320987750621434146245247461111964084916143144798321493035993541596794368890087544555220483797862358977464874114732667456078746973214144632483047691271561335763976577981019685996888227565460426214164625043898217802307934209675434507790228610766027012085496078397403602531660413955799598063145135494956703384871488309630472393762379506962632420002718562161542398435795362225925550275806537944370651218014819759403390683201515612303507899927348273672586653883303997412534817342638816362450953502500202524056236338808327352697132487177890254258290417020719745833693872368812412369157998670055378359010497320592675416324077795131157905704398556722060143889466975634029209882775305886050372804632964544065730467398751760662225077075858636930404466934722586121880884923220760631111204296176844670408709844984725934015685726765806531241492611645880909539358647738837679141406573650516477055722380656478560638040082058306010744021841634133255779422098719103117809679821886248492927880795071458046294510496150196266535916547678588872172110036431099305924166322314246283597147558869131841022375829216184639052101486639423451567232906277812159608878121231453629908582448330074398204681374130545045743507548647879557074732409333071311411558031491899067884676901706867829210962080793206719226297113680800253370084227670690491672779488589461590408109867899333697761429034437290606839914372863145629109879573519529168052969840261445558146312129992037153490370473797199638826030233944796235756166286461394797304458991853511823856406484335462566495255663130115004634800437982049563317464455337603568630043471927282432271080862157609600934825476823589291696900626602641085283709668296451996634687938063816699670387638966275613267028385852547680990147796884197306197087929934746301475744461021657554643654905095317234652488282715799531864578405479806463846151926077792267525466045643504431583668639816667776653231367355473704842914861310734652407596908163672065739676569073869666221876296086129775623952181711121365282909957820725275441482573948712734056256164786845997242167868866793064949857515520242597313928365416421260529174042808914270903468317544550145577011664214274550690722417833195080793289714370252677434421258133215361441977454662876154978210208691208432380307285783590933145946011210117008787446260889295746305402549188105989587816854732117867076517913433281333966921687320761323469963511097359308753439599351077778287320603477247371603531567683386105167699332710238422769477035842591542896142174458949693711271599960196014708152956171718252035869597613941693999794841782788681746648060747051955138814364020790766883413261872613225284060220597381293023238484211138669365224929207866046979639917013385210086775502376339281802951984837640328956777174343974563188207371938032538027624143688912659639023861013744033218408197476456725240103942269450969697177360207924126206640130483857288684505432923245935906630074143121674382753241376829191921018826361861845129159557897110068645412852707986896010601335871582241259083174186611155513338004181018208545646483828815177905428251703301427438896613309578616447761559512872049922113472839585654688690864517135572440012719191208719980059047925556815700452121927603829371575635944211305052549644436325925757700593787779828180141992783714148793269915850686248883658044432004321657257893589898640376012323981371846540842183907333605304817606230824431343006963232901754933608549322072169507654514988299027512266432125614881355546855139127920812825356394150117596446034362822192574417703739263994575793211700424032970221401754561275289794407946991377212076363842807888782432703816653070147356866997056198355656922833596515500324140580329548849922004416551982323945490192385963859347160488615075025734359933119903721169246249775669289090868342953947859252416445741011580401105403344793638722724254760479623668051514448187414992600731280165618078957321412476157882961507562561918636784501216601065473200679539600441110001694008838977961168200113346563294710006986993296638462181041650933930648821419125842179075541833530110836545381896832064580976311108350909475940692356087948325764025960216586145265901942188618452150448760720591808632879864009827017644630059874313529482446720670425752440677306646948523388118115863320101547907330066552298706802358078575776014861142448875091747984289402805162164762037217782782524377557025656627420519611370102884130457618361103747209400969244595115863728963249188356521967607607757600680834748391524834937914411435842611511825795979500731908569582673022149373352753558836957337650769192962343814064063340006639792932068837150708616226073523348950732047277361357792881758826437390785637183806040765013386380725932787893431323869951091910929560546515819656059171562223792597850552928026109903172333722945775160284512605020547369480920939414446914545186314543218778240591504885602468927526737631527286222336700248142224721534658535433949156250441210422543312426377950347037086955399154445884030662321706449040836582199950517252951236554978636243149008592774402113846012151444077466219156980510208920858131611971694633985098160737290973163221156578682111241040769153544341445953474705573209689402263529720233873993127824625233462138014264620064728789891081738919915964882090430410917763390782613016605556562102347955428168412569662605497780522335550336527307421651739770059229477690582691332127547508072209287486873023033012106458151007481022521372459183695875160709196970044463284878289293256141481360803430779446202250405285375486555941085616152806486335707599812259916827262140736896675047321030993138726262182907214504254795051528157275866817153415833130047787674167098230862662000701547401029680563064804576071742800108137022740414305489157060129878291278773708472607904304607867457600819552431145233658274275946573968957427293886860664517473007731861164573630284970389625868943527732052221024968393487166131301719561173104250131772896951310528554859001967455640437371671782728140951567512552962758291761694339432926888987041144031657580657047317127965900281315041771767354768531981399614643688963651040428260436101155480876700802187565172378464093531714610832013050624146564898117692155207326110923525295846741677096353450034266014692279759086213391378041125312252863597975282305982168799581145870477077924207597092630931358512681228983949153907413338605883726072247606668112500756277304988138550291078888558591626433514208575966960157901030989974000957468396908529218715134405215196712493674212078892710520555747442944350648808704163225361541989159115261360859459897960896175653046111060069336705031740184406763975945799569373108675179656830527341610678780738259129220752595517793318375073392254773257577843746291493249339115006171158794922310665523493760966589583758870049301821113671982757838651460901545518743332283894188461098865245533082516394079981385582415229823624054392176671985402086733866216689178909305261552429059669705337585526008977118159475099872406958521370964926015229805626363812917696672538743344935446491253364579601168186043727574023978615331252992139288839021817640183624585181172493354329022063243310346781517694205957717969173051046856138211585445062091890003460735443325376087224449958564236021262273197642014574270591083669835241528861055443172885906452516375551618712118787624044986628266998330839024656513352455864551304830296921378588401247392575115048657247368888602056773807363894071222959766677747330028672977293099122081482898438836810567708975079213272464115942977326858134308188290440088671904533549622258345772560951608516160340895897229523205823716068152604927600015404925796982924066787332285067465455867136837556435232762302474370719605688944715883077272772479699371318813641949930830822679892758988004524685696605172257750541945419072440834982222184447315975934793289444578778651534580494964421830095806933272214658304633842661368192963449698946614864472016282548111056078333653063956746793614254582912028504134313474213092799903577400120131702955950313395092613329877263301427893539616904299482999969039147600775126107570089812540439486807142605581689021281933996745777842072687036952479741035184584190738551651281028370550730956780583062919669286260519308996256100407845986183792274250608555922248375024361220555216845547688834815620330865247958755958882859681873965285340089420057654652292313320372296366757001904277476145293530871684555565562937443213807938392369136269410374153315491400762903575711951229549725020418328526851720394707118777589865506938461638242920199530245175389574146964147755898533596077329254970417400399307364344071863838446789000003607339820855639419429956367883585797631232779431212608797105547095162039671878088904447775220421391551616071903038949091472803308615358976812016422873053891780789210751568665227430997740505533156866127332477895326524771761577521495370966828249553289556178004809508044968767280360225385539805763462065439102064754335376048158083851377765767366659068144636996605457326408050952047568460710625667195009032616935267809474668604565006115348895921277200872500285177785499565267122292745405989335895168380332019173903419902469930784522702561618593826795242441834488821210495690539492442795306156106471836269063617679023703748552788156202959594612282229983348082370195502244211924767590596126323649278044939933154331670320065805786009393246302726772065130703660921260072377899699391099265806534745481701394715930509693146737586027233044105485979479453002229957584346640840414322690878877196060971512114630173728700464634991442901561928041476574340118284531056312342751609708486024098999049337836925545607976816065646561923601618162560323959961056977587748121567512510414401394188535631788828725621636963028961144950664809317473609038528235934217940457367989497981362861337315618521920031213401849472020325739504919523167025929031909459783432118193214702379621620978650720538468593024707757013913714161188272305201348306905749927515241627155522171022257080973449288442729624075874644708458505462925470367968283922222419608412481699359576486959766468300769565794060314501289450336181355479737822245399409236317025373783840863380832884906304419983118586834946922134077471829081844455430397474204293992842267271211179888258171339845639433983998722781771806414569841999574785981722278992820032710696789926101534296051422769496384873308802085077885932060327002587009026278354919572304967928842421618706186942737603115087235167984320432768273680908276342645062771531114086613687829001400750466339800775082653011849596483767000664068953225753710032003677774478318656287503365194920545311584393326982497760906359060358809075018027570790582207789509141510797305966661317897488987355282093957418008917846422764657923200182362931539766209487250884916829752080194451046189861675786968207109630933046693460562526516383238377819928661660767917158038302950361754923575028640556756742705300539125644034170416931808431896875927401253744834714914887473596041137162927335508551590664341795308418223799926149690416996206345693242458960821770619892553960059879073017688397612062275392207178884333583889207514278912509431752839367687865347907755127564194692750009180760812577733419579725879466782669291577395001652407642235686561603490289650124205890523384083942162689198032799762800586873356547819587841494040462916258598068828250141105640980419404085132338539144730952416287010903920960568442217320981192906173731841187727891868023486074182698903676485618319071223744815272373758685293559476211339370724807878056125707538680380471241153484676901189702447348554647300654227106006867061639956416762501646490484288730516466714274552623862491886682136544993886428393811594027625890100623369598272989988550198366256261071475605986760326928113329240759108966268303336861266202646821133516821139004542664892132599936680928549532749255211580256372296636041985095349064620996532365927021269581884102300977685030116788735163808103178100118533723659626690728230422789336944117293903366156846668882415646257748906418455221306968812853889499777477060863645514486650139330348407960200536108652703081865211926931038161200467758193185009366597983517406827927571532142797470778030540242384907904780437959513764023300591595628552301262037687332910900220541949762581225484414000668942569366139761413942437302401015331934750154790658525205918947109071374040610688604171875669843819617820362607428769022695309373706000836522964135526194914448611655598742651638133197775340151043911604796383311433971939010274773822723225508056924160265827958154247839943876447290606346419152398750903890355602568715079445991735762134666037910356084317045010427601526576603884069194950120771770186672615221263318913978564227209340289329151417993234104806347318790261891660522972063234647388582320746736629735365565563631376430183754170943611388746096756208438018780267693341858115821318699236521719619126789373048560976594938502388829036302817256982244605324396991284565720984429754350048309731122623638123028518453658073686810051444768686055976264146896536976527951085358463070908059214553805842077957902787729277431139943348573363860732202318488150967482910118710961910585018487340499856051099760637066527750301861667278443291230235406516679666793683462353517083379004249417239851068072066447094685200522249907063255024990173598364783728531746840568685410321235205815696219301856197567268306101310506965762041805371205863238145260689553616823903164872726145340069522583601303867827390587156710481119947933873361831062580145192048225905032045857007763430228004510198604623238512134460147931343399288042318480266901047626537485727764289533594120867327510651659484730728162526427706830814830977209725440248192681747505908081699876292992870054482870950059706437840369054848844986792677312739905758053484460017656474076338242843867052798988596122819721015901064833488606197959022707692838606245325912902688998270170057023746395109008200930680597027758512430532149594939835256817033448159949366989072240217033160984207393575869741163891872800727960466828307933034916018538803290837572245992905619000950942732414362266583800805547281559222075696765523461803688736281899839088014396875560872879248609020413177712205289320337316600234982942006206760528195783209709333019904668211423047408126047269782244144980586515744308571461365810038255306221990015954405386413950786326262263774620782745995014534408233735537446015098725405063232691776365434518228275076453820788389318392648576052288197217983863887035823505053908144319253747963636574496148148750899472011879973272124687378242066258671322455620992658905909118619080210858023067353225040540012308613907370204435273861800929059842489631068632429666200874412008119876517415645538626129214602691356993807186111347593504116531752877772546472417572418249347065894907507383055602931300679776932189756196723071952951277833593225288749671988785509089568984154466922557171005355770920773506887270977490064871443724586827599100623816346120585024268265266749876679023009815101598038814628076597556965845523725736151721686350530555535806962488368002363940969343777659120751090885167307691115346147392190316778562052605236837408510225988896013042177599350857270540363448857200242569526320296091294027765402564216323449451367668141545346443786843465312059374398515559919090072526327111351449064694785380596431484193069426911324446663281507443662184832360779770851927597347728629514513512977278167642962654554783425549371758867389128328374575714674967048631668357074356397415473753757664176788587551379188425220557132965938407572083752121240123998198951694347186429544696142676041703699254392599063170587082308753385516869534708458542988331254142095026006245205183591638430815905552608445126025296707896248409819789047501414216439797909846094412489447704104926401149413108522459556909088219203467608647641196130304674298004920772196311516276450554156133020343978786745424603148608318432048990291350459837946652474313929978476038769699961024365834122373035704360293873215649479149648879949519029279007149416589642244508216277589637911788158115100772313194716100476955421201836126387200811140028929379778225976030209965006379857875482679311665461401246688996819551843047638786799425298503865885042382906930907742436411147624611388166441630060292213699881305612732198075380228878242206670116404866771996953640631632181644450054210100661110221948792603127991650029776780689771713330404655547051009055584141966646140404686579831503766233815319602704367932546228579872765977236382596477303524059864573961855575682469768860541992816163043347857909785309800803489566887473337162804786268675508997586962295595326602903490765435324655861228523578424303154468057838786226087565360704362156422167314664371347247768601427014507358671252524436003985952770611846430547684869748374421971690867264159298652366146156723367080255045516796070121793459757530264127360918711843197282877939358569364410018912907082188634283429361327491454478469780462190862768343529578178405264240819371836652246763477031448739725907290713908960862408700047712877966268439770833326207274807455787158605215747956693093960336274671827091822110335076223964934919424716309712354789559995138002831871782485705342985250223524838235062383334240124471839208488817717412453120612796063186134984582115289575719126402368105558695765338344937017944528671759148188971318574999705614262760061739393224313811623273088619500339853190123484707899241279558088951616223232492973041021307675433763139967755738524432725320090749102683259629594136040752135114284901517968259172934330672344164572918456759625708508929261565217389102159797660099280841674837168447830255283889010160183755773839846503031088864982447428828373248648358844585047344466515581570734645919749416110351400533129199501735850195701860251915673714168574878028327992689519553221127612457043436172785011568977127094608610838082431609068950853446870508820951296008134454388491711590736494267779773715996223828981090259521703555721978424105140924863060583245778635546209738770348129419968864027773429569360736069626743664296091314147381237099610734232015394930313315410974809377926515957949740903459618617768943575918403364044771214588080455773929762307504276266468235142311571103516935750873780545896156960255351374908657637862824526333725405105375732078849131038850472040392774606022884724048382110244291246373354931141165611155386856154969101019865887565246230681836642188400717708566485696570757342157388754507118339761583854165300970627426878791414686642296617501096607739300697583711557362998117264984936324918043840859290598549684752256347154203029385469278738009872102816445233613791878592005279931760365942386831328201950510546977780932176657673447487112636099217283411953971282180712047288928994671350818249752602738364981525295316870156840718101425828895906102543901165626910496687860772820994231016298863682270114428065513574693207534444925031227171135278002373112167957996545493772707025441964098647984530188588065966193272798837843018226792756658475047594410535758780215624458275923979662292498747247816927419279339811549839298591254226141688668543610910600236695899799462390709208904806476297189957492014771779190934086188520552258380731908814101376246854174899811135949899438815189383984555677329765631036965786116460005658107183737028388507949595054763174955051355079307893925190706880403019600942865970307070520024661915950381608425807432252602334341670581067716545217939844155667313178457416677181329673017951294182800211919646522750804298437334298188400395583852973244304521405129070229590654350436433818183895179722631279548383311198763219971595510824306643861815243881897791240087793207190442340669410694698713837860648732082856879841942785090051482663372037037620258973694041504374613357553459356548225292700484407060575067832292633486774152337726869695993960997347268984367571387536640400764651386795218147792324140729949050238420207873248002351192248464068714184152106811884278442494751793465411251300630571311841068843940193623458912864674809499933191974719960037589332079135528059892995912932546415326530195047650325182192106703798216682030650533668279791097155186706251791853186317933830234917824570287407734374680005593221463697064732410919875399312868456311718679475087003384329219301816253292199647277344103823941832765394378680556705314118802693315668114121584600016284540315898014104801788402904779053320837655450862947282831774414739245457633943705002830216645866853568933430368903660540133880072685522558010623379915948302805761934495670602499803938395064831894571153447549694863893468331574910578988406335122786443239108002057985413672447806721728531797215619008987896043124468440952726484252590584824492431533482948361355753066912675202037624109478224408949252409455654790637754230042038574639254057292987496208133559631757968933531422502381708851123622472050572345028113597030606187115231161104435581197971253240442913710840041304278879047527291443508729079594984912976039639861932398922590960380779804452100003528879475925550593058021989444901828524768704390250919181444930832265046319763427523165801020013169567048604273093135034921520832640090271449242798775228910241681686874152983720512912928538976665138911498552730146178522673705657167818677230401944255087778971471907567898253928533761142739376824924969311950207361143939183416547687108053364722312582783147425235816637131440682138885720019719244048755898943495621941717224897944669903440389341189248811693496618740548905516139784443795854356962506692759046233805373749892088387932452325745284623541256618094768350201793196408971842264547864807098577516460635534812553301019003641978061583714020594332596946539423171499235453251835938397868055941742487681809996918983572074938643780402205611830401307682640310219169445265526625469886004500832613629392366252365951732410263565982157929851611564606692966815832497473954849601421306798819352589823289997945305528041687578796133779887895866334683310466447809082431056277037705300251880257694731514691933190467176223396906436310973724801269519957617027308844957172117817284390182575493431823679603788712013104895782007982825308395292719417063291647006295359733693411480214172239113937481018871003246851152989306410806418096021687922862715072124564794302200482003463015060557121810984389581663506406284185309075164942648106227187781801348627835410024455866954604658388431853656596515312846760615227862614655134447668480398506015974336269768328148933938636372401157217690504294863487424902227360135952137208375857136069896034632499624373166412402301696579858349455584865787697905524700372693914322550561306905746189769654127118502742405451561080672525424984059967027495103629468444452041697549916048666150287018561369649833008730554767562767261501347557549890026930638619359918125009457760928776908335898004672415216586694693552665919927887028372403738736025718103899788947186518491460071524737962273657813105826910833092350131179230940846068951635974634309541671016349178156635690324080899650133651646543391004440387401799533311917103627326598768787142206473213296555582008553075031085941980296848866012807396313306244886456434915786514696792517879864332702777433097557969297201664457260959369346420602495131261311657868569605319103631595090607943794445788252809595262693856996010553402797270118270636230606542375101657155439099859328541514793293341351782615887249979009327319431755792289280050282925838668690153446509434268839194286331874426779480548882846351202441163137421884506313029491720503514337840314005504988753753606195152521633924886158229240945275713880837319060110960101286782223576171994656059231111325295712792747325000452182290336224872926822890659667335533366260700338239328375867115373969399161206789561111104461908411537206844740545107041808224069903492404198549997400601670234589090304888607263358915270238395164570609194286310971975587269125150908685537411297316837939301741065927492811299589211623668158069595321451605337344514862425664051622755504129647583743957731457308113510110785638796062479716717057711854590661515843745838629939586253712536537990122821860449086908016459245705694618276120832090296840255083984682691621024673646621163449757810958426664056509375595429764781841510229937973284490386734996924284300839673529736254569843904699943111788455350500240038831550705512501288060356439301215890998345707770747628995385867579709358933367638645576285246466255091992154941793567968852772373010285432911306334062095349692086669931952588708048322120015038143582357556829741863890403122884123518524044373832320063744506832671888825038608456954256274778458703981001396257660966126976147772247332625936116089142805506055031388813409589518568187495115713024232934131648519192041895869288767765739605944001810345530720436569651506350312469873638063005107988117050126477294185378407917004229131547931876206270289433028088322084468633036421918843648493980257207053242914209733101858127855818553752877914711059445914188975007612362618848684218405076108838842314703527409281911504610267732232258720362589974464080361852082137767428022255352540362307791336550928166467946718171646269055813851610809638522707329505199133053669869800311348960337360986018257592569033654519309142291925709045151585169453448621728074476298385870351106224062815234355841070792271444068438702025562178437591217086920255016279212187262076547868435790425085531993213884217847352023203633289552099082533281136834146230392649963065116812250393014757698284682802587351917897669106440985038237661107665592602257489702555399497465746978017705031031206251372374897575331549887482696864824695082807195961160511359647809470271671075021075059918513038823487966959991370527695741764557497630374917869292589108786568096577686597641879845724571808765112914207722993795774817422223577011357254360968361921172488556294833235822190641610465562550746177033989165491129280472130035424316421913146152613529588627277360794028621471573688324769518309670249302444136536904981092289733167011304156419767977634286938780454961104727021226034564321584456781497436284470292339355194287908587631909960718279888628782572247487902400683216620469523944599201326089773395839539080071442555310707572611468490383955595415924198874704361081726541598986028237593750426461960075414969230777649735381670233916472257830742597483418807667485173536833778102750654636057155381580957775453690045933971330390013340269896601875709913007486260465999059591813255900584033446828565097542432658829475415470364174413527065081672850400528345946887861689110875519349882858219555210371356015774605899089191719568745266159079029636922421788331558650048622070028245191609632885684879035545534729277323721745482636862865499216567757626805073608701474768352045603898504420282632328487320514939044767252455026890275712821838197264091169621295881090053713991715907186190233693566815859005939924907312358737194308949193360089923388947668511705279213941411199004787150084261543998326722491100258671011221640128695199990242283100258130664315636390311829789951446475967776588139224234476904895334439066377348805683326981559511198486525397918362824623495855614715739116822019741828196505513586978982608799388748012384130518664167901603044993129572761833981014087181410664193132815099815151673749507047433318696976112120132033794967580767623675189991431428843808737138956542771415578582402344259747022938507765201038284231771497418522173792081810670565162041519834171626055483225349442307148476393413541824324737688618021104027836910150159620392643511880222019318981267694702837024403307969188741584726940836979473875378716031807279034720327989606308217030794217604567250421323253023486606425902524586333539043718238971405854577025066135613457975119600666583008569154192747933025533619703760139027820025819188200085151455263723333072161143644982313369051811933403131441432368481438629668799892703090598473510518702207053409267896275695504642504848238561867081348819007474099794174725154420990948152649963687243584165867819897350279406037408208170866606793946842195774739614849806644407246900864324696042341266297858136512789334500768475018454468970558509601522018664474518185867259845943402548078554109366537262110248392823250799647013013146299777752455460711398515003678765186778340144980692788837938899381299764508739952954212390633274546835596476587775436047952817194928130240478568366159058147688614664307597258731820926155608269450760712711293049397994724450718801163361260588326935729502793119449761692479654887444448851471028452031979341998908089992575199761135101038735119692428619371711169171791443204391168624186504796179162076850942563324543744890036887675679313925365810299189907097343908496487737933305019626951858309213917725207945184492606258438518192957363558124837977829783125421104630888837915756855549911194648602768209052493976414730856877063674153227558208610779888614814468883202723806321739646666071263863866486799944773364821164921986208302562955660069597906954445382398242723561001195383640548428042473617500780280150870838590603367736744513283085930428069831091833383525225751957084445929869982719505420004883089950370548466287409734478104775437467715308568911830034562152073953773023391340789029614679724132455454221914391032817725020756825622628291706610109821950809955941769806860777901370835294552381811060084198894693710975152594490796490346582749621237354728817447040847103301321940450399528063377109574487134353016640369900971339028731979993808249773400653786814155448685740689667254918833427605305838498682026483266764516520726420172265237341534843661749512394459676277730760053317185459268464099295741182741131293890895202861753593736846105638182832525129708876680378094696676711267487364909692758747507683966874308818503314004417686014497989606887355971386638380736211012796297958393802753997683128949148466474420835559967277441571538441679022926071401053246915570541540438687314648349577632002015649420435438456976453616836145683697225746615127533952035914841310559882517456610677501338735695253293887273682168046916253766420096843316318389744893711690181613671754181891050540813825077131311907866464772235730604992027985812663721549958157283545658558737105286504054541818324233654024453166368454635329144005753610324728012852400139043293846905684675308766010085711644923711334634539910980417277073071012118388912362206493120107596098835728081772591392367460693692396858430976093538229790238531370486500455699993928025952894391458497683512648100194547018170654961649336556844837182520966804119234638034525181512953997774996534859818684208596018219608212029021509357369213077619820011631332540201379664921195978728493489512552391276769623539276011168401331268231705013576119912568294057706509223264284087620760689009147553181767483589414336539622819028829696695171363842809949833748000905687999029379029025591078761736692608014456702212646715159886162145567178303024853609375673425965413129277329135423924242267946444639632578238352251257952032073719095134454131674323738924637832306904589571285175634321000027164509263349161945906135258648579775045392857304046480900734250912770422809626378549826866766404329845021314605337399782613669335746311378405496836437420290135715203645962294966295894557873885942988385584614932621844750688019931801616671486528949980537947573291305992143008819551420303827103167291334712537945910381572984648065376405755927317438322584961290276104998517882894684879853696157060853553288374703110497422146716636974329207791592715383557034417952240604181350523977221572019715074114765934787806806428324677740884847096091891342979883438127118816009147944978194601874480945526118588038174095014666841336030760207354757045894592953204409923932523089025667844105549082053223648390419051211192314382338846195639508063608607755007580243447742432740760311340907320716405692048361302969366819559706629502866978554274317159047143800092760207123635548408308630907184591438617815238373749054894915765496098488453173901428906984570379804023363605787859094972866977523511275752616508578867562256246516413189470407755030477240348217611118918882878417334559005823828630255804453172205887010716338997211197386743132286176257343305214737053385730576299682088057430618521348609243537775698539323145291832500626976082634253834771240757590467549839242450518703753585659639783890853177730783290912178549974010232264034442836707388767629992119289633945682129524014233680560154965710665289685198624135685519834865044269348299497632132720374720130054741387281957476688916431164616746477177642808561237557731451151393727737649483337878924273913079662033781761741464425224003907951804739079522781496479260829202331737258347525930487044680533780362749325682282282971689946460882277419269333983880689885743194150356765845273534431513610797811403886157811644737038515317623418411128552534634393907720524707567616025064795110103934685697302902583731601681245119314233329428072483212189869070937586904965766498101170120262851205280889288051161874111464341082954649743339033514510719025957349591352694175496010972149543548452344560938416047888224623848370864334333613566154051347922061176618824751844676719186369080285481329203758039321919647956561397118945904824742829755654793468716554114597675734545622257345124935993499871891502244602361719644289715911695420070373240586057515155898522331806306232454350277406032406124954691317889175876188945401447862306428905003535657095369441172939555215295177184670153137337427406898909598508976908403977031375650993094159420631087269072763930501007256555477408909998901904024631790029511868038507101716211159501609007920471731256755338344564945974756804790761124360151141140091608013336371698290985746260003645772890718417519089345269702608745806751703740156888954289093120960087754815490543270154461867511961099550067298268165873951397081757132982061997627519678189602742663788140873973521020297861641424800473488239989621763555825261048590752942470562410012535186830008394068518253930691691851776671726647640802807502105899496187216511554646380375570910177897384651279159948183123597636441011513538492298360674344247721489000596563709305429303575217363669628142567523154363950733272695533939938605192046857382433121789027132879498443960638313562168000328240710425315572393078828978571417247238421164248376586167322234496124523872850925503944230570013014403923507594928111127064506949628420016092029426412280297182814601626473660938723961464393006727429647904846541871085025440541504188791920448383255089325599937317246063106008063873344433153058903551101446494131851492254501745069636753014673607238959559915978618038712431048525130804632314548128320930585649504236447377523918110848180138990823424220279259107328343126025862440279134892680248648785685425630909396797102004551419701633469466086929418741111601277577582936385993075171737640748924757122825390313989026384069828037866761626729374218198031657779056025731702058807401154774774272097973549443029017270087094993229046655646733819884401929815192472912052127074827623638180882268977424999746951096928535747381206807509886302446356200262234582026130102491211024248849376849293585245217100185405873573956896301251996447602161275764941715483572008068779972632705423012519689729685140427909298126412580749473374766670642308955490064439676341714057849071271446158230915096980940345337616837585037766374218295672928653833468988743486050408012651873186657588668818894661029097879480622128264424713033097391416184451986235744401143865410388418843508654699333614129016664111586524363329130507841590763360361605468979430453074527617561371141681568526231002892316855010956795585426003178536176050145347462757038189036956604815947849224010995896418091897256639453813678359790947527488759580506573378899930315047205353189761403122736001303762490339635133594919363196508221148268616794363243110104549028757945500303927322636163848151847311438114938466073147494439117103173592932028178627954458749052556283236034748041915343298998376729653735273392605482150436748020260822165194731420331783480123867551300769991016329251259265688337878857387899231162663586774555562363590352909378999274585902794493259827612570690168527055407554214588239837578783855424196920571996910264567317763953701897547781948496904478895235396155561903089846884425842676976150864792424221103432895563546852191438407787188322567689286171275627349924937222263711707853244238448590095186001818722820657481586524541610257245718516806512020900936861289916459105974000392239855394386027532022153035497935177304216596460085424487263625650389006610390474875641956593150925463704045737498135719927240523750494453998555345638370256985647659880633916657689359433291501938923411491704884772080701226018026117632348229174303690935653103521388352880608271434534814081202426861203049138840790761690864058960448753355794617791492425873772337479967131507009411518093425355472214546458040832064824406681027613317134992780779208052933828132979349068353286881496577684933331419382684159392660507019698625661479678327263061532128908725177788957685968525792397776575235559038906172108257089522407257744912761455936309758189521232382039312099900447773664658125365902614991437608580153644894558570547847189889087225123479032196561037242101050307039458419512610112904924257100410879284364381365513602862138837223921690525092910452564019758104168081160785777646162076696260801377190490576606238037155962709616126717099859223253355078949510250892448008574899039854300110565290224971963337325285237127861172437904826875764706575852980657535184463484847459957700226597358584700737351854576953834273951218499436164748721061181138595054595203070652751052336746485984391370295167936625122521908720222983113406601388628859451134183512123412568313693481331247376691662144311834641381042115909572172918549382269022283105215979133781253125683402930079598428720977815359607496274082152123520036574426351057876522679364784031891134694759067486635071601325924032670348093474726341797138008914675325996610253637162110277728527341147428224855404738673658876648714416816593883977984209428359697817046470731255961542009968290664825635892480953877198133307971669203601882280285598013681185887174403591360733925681788947253807496668573947874959866560975777947666270276234781780112225097520825074657848763312612112164654325628883747063372958372405906263866488501711986160265951926361737826747836920217438803460828286933250606554267137090457354151211154197658445066573503265068039216795211023684954461836146673951869700581174834317118496506679149722988650143744081265591925744796763429360590256020780912292026887903174165980710984781731174687879593337822719928701427903818747821687773730154004772677253997877485250790971462246200885032327571370336181924422434858174832634327162689353502692962327823206743830674190164690114869296111232316676164654778826950911437213150087676041223135221602047632321290587548018227304054407163383665389513723748473383236050207390091428243148894460352180971422400669085083309832877078886194174651594760119538194153685416742964457516535941332515887291588942870537396424222978367689485658513055536656997640975141486236148245546052830265409179788615442664756127816222892180048203362596129712924598561697260165506839709807284959102388691290813247425518031814218695426246424855625032134870594406614386372556041275498585673503137101265879138548045753638109786104361425972686576816731004038767618841713344007799797847365564149772138000187023532444078511652161438546672713466213826170152027759125527798419648005226391984668940328677001605958947296903351919347669266402082827641488680471020404714242399812827783058515575252376745166075461155601406399567297588556249076995659998101184008709595277845784976663413268104161547053138306763360907850088085765356834562875688018840565004194828863970744423662627163061581135122040702344233285636359935405871948290191107024707557917122928021004508719011134870676922813681058236865839217138997829215504103006436175544863962299024299595970651364740862153615040371833058722936591674933048476953685079492732369239746212470571666885218655787240688656715577460558159809076541046202532454412543923868027618419165950159099321844853895504251582177604585102163641504529613157311686019448457427675064783708205182673493330036178663649194283577984936407181257996228869611976442890386275285648476354406778641945088133253755248952767555137498541154982317827346221846217281081881898553454513768311617723985504442604645872561177110306867625910281619138231447669066935717646951089223300980956768051525620956389387468151577472266393746307146377943153649787355981360059821750873533967824537645023603511992601702799840898170144661066951898795960861631615520530372773729732284294753399516906111827122650118055890394534744933256197277140665313601234807368556365194013310965889563969658724626284730209039859834053686793281513565593750624531890829913348771923129770220638697970414116115738239064655231387011462205184501779751320520662084578476043454558436508807961627092154389189102675645548563583424585337381139168452990073385089535432361501911839654553503054792163556700172690963025673673091392623295345416490859620205558235580362662550536844859262777860045451569258477100795487022438855618986822540005383034193697693563911028329468765292535436456017676504553251853523229062818946637798612092490951066964688446921388444287924830518939108235652775246780327696994660916144442924998355650869801853194887340524477933241885349086114197630628637692306034477606125508645822061034500354004762624808986207787759820547984029650890125816776628492401350487749081882888514608387917380936366073852690322464325535718090840423426768613911512473438226971438341598507916375400895404173309753895358179040653769495527980308666813945763444699794206825946562364992399395368290466629261872827532856249666067121125502499538774777986361223926684871136348559356679202810230655348263464310433750474144505710931797864783625961958101700598578279099476993908134821515588776970240361100541870292505760943190115856218146593449031573492571266781506562619936563106110884342352993518002581562385649275999367565344411557670777167684974750080868552586793161409878095271717050584900154589104288002096613672793549643207169288914624317084016046636847087893382033631377213611066758669932276935939414393621990172993866149594156345970059480125310925664906845136813770131949680973784273728942472298030154596953585990290057363940057932623063681222231482379205848129504468181895274764519891538107571761886387872367907998157702377073730067870365724061107517309245147421833176837532205594083268268765933022071249998958588799725287264137780509087074550500683636468011053982275895031198955355487254183345192300284760791516756343304923769391337194274096760151640319882106393852571296458650776924123022858804920447932461759852882628057952862737198377255591141545826770317385015949227231087831439125907382297485346596943020296133648567409705855872230838589604928371401485545268159753632868306073993072426455752520465890601700200720011816397272434972055445374193428537619730586208520405819027190306018260708838383436706041861301319422747768405826999483370294030346653123005674397563566030860706574508818177605097131274173725752882827466417934957449510731158215405356482555073573112416736686501127466725043445939897488660887188820911571176629737005172253901722203236460385323506431775118373314947579258293639976677362044647924544132707972358746543451961160507160045552521191059025755166273869127618782167041312941975105234234967070704425436630543369599743695522082799551893754607861484991687019028699083665162833430376085604583623683299383535657819383269287800823362867081358681583205675989956057766106040058746584757201219776653207212208312297400879637166095894722806199114008151419551866767596582263906462782599033402853132503503746719726342667897005711398717784267464108256224720023794129599188989426754832057861145414215194663505285212473628183078715511443770085682290024701422191733163651083076756840723973213852081401421019372843639245698458982461464195449674213040156265161636744770772082042263772246382203608386715322104051518242113646013113110625839514732646898316937155316156578221315487464967587514893240600210725231223329318809553954758888702763598479772617041781541978638060834501909118051106286623605016836934923427553084948352440898039219111548303752054038596238641727346513052304564115612598695564615537806435351571198126504423795527699757550130212503881645711642636919500503768134231667105620937183846534806149791765682115811849074777769298212963590734252667600816285913795497069744963725119056403905455489993459971558361179836006409832879968412634558866633160313028250302204573847771914683591903851440945007231485171341773037448316456024891236659660260278914329117250672216192289246100213941888405816422444120174759314778733107593822473443165394774422731231465508637038681767322278844011844065787532096642494644950262004995863377502347766979288317615363924594981098176706055151237765882997205029201054116475639545620266344858804553385681796258577756427626244856548500705351249080999611881866003982942243225745658058514365666193099349067343473697630781944037696687393330605278432523494140623395437439345415370333775083299737086638726831535001113621274947486122704061020433351953227297897633954358521104305838675646394888746251944852203175573842236195096541214710281686080179121810094261102071379040079058784783146452367406640388647677493645705901516553307102755004932569362858188980827231394073519204059031261604682201008039033075155476107427977952727776360881657178047147312969333305527432480128054304856965306781112807753881404148864686432328473663470321168798472670461518912236305962770274454612857279109362935204788229189578728809811262328023728526122900916419534025542334065908965129457340088375667974879056201404956696609941085511536760412662734443277411251007645251891519419933534589725180325338387209918787059928543433345873803097039932803209740954213197124363254969341230565885686519798292154349696223118520070181731630341448847747880879288088611142845094949303776620853108071851696057002123821911950550650745221919112383352402642085529379248285008725860998192289249640826379613810516763399029842931701019643967256358786173925471117253254597337137227991578621444307236500930675332814758165440699963017939406840872547533060321817866910839417896224374578902584349205230516413011174945519841644679103074731572168538658708677912068424138118765456640872303746944808210888075111422521861454007373232767745830351260781873460263150123583560072316266180222457176193949802038710667782020045578913456232213495568950436586863996293041518158237412594122542775042605679680028363296602275650465292598378024351823598953677606428866897067452260518184872371504713264557163421167650247626041454781188148290672082608083663075611550495423695224505812025210996859860445107066113655218221498052738398840913750135188772375147949097170795836957574994381096571766241419235002933097660331050030507317058971025322993457964804761537870586586877907776087617316102164534438608485745794186802520927910822320873811584107446339242983532168856837850915903607553532765954050437350676681240683695995967384095864109738405057029372243509441078089320878907116406446800369626801681923217648948874532924922579244006321148123111354023302109029732645917704928491531728122312849188154832700350156190274706699293986954510076195296927681980639798669093818071450362476360972096259352405126122797745672123335896644486358145397221128172015340226870284192216546114918484479890654761010273599488826385570744022091398566254618099168562912158584054948992748149591681268953780122587577290923554949114987074780983878353752556107898322415755182850117693943335341414945066932551742614186455651968600814593333481010663335482200859270475980505556854517709533580704460006497218544599393718939379070052304054730997043108812912430105876513487475866573413882096702450227059579198389221812149378443522971660831834446907478371170201202532996584021837714795286482263453372705297189023691851789142760545456190032425080138635393061957008497297335235872145538863970327675373436971414766794477340464250302906747306605843563031694020399172728622190720771541921394681760440210309102527227103550585354491732801784508663762670967885870262479030614703068285368742826827408413189423413599483510789082112726439054596528207844204666405817492329908413209585577217143115393286119374995114588442796953797469016838614095999978446004055388243068761606513564676725101461304006408595141978790134129054957109464094415414842981915810517646596954901584870682488731784848545416165116648066457969003480452672368793211160744393973320372971838346417425037973260549487657813306472064309109059041926339387083882007773449848839837113783984559362193806608891444569804469332352148338386980569626287690679886823842374178530988931030347032696678018542671219322576830444220797622886740791457913069434473067405567402325259072592557472708222606717115930305482769472156906420944241496089772743816336866483217247557652628318208127681485888590644280799762286516196924580807871220605112059201030973492474874261964113935605244336265116740072393610931863123661891987861443683814106930451080524678955831730569695255819667857035474409647257227681663358250821569944268540387530685431306662042301200058935293498457184478679299712916200749436057600132441449346545491901566341454388809292098521716816927144505807961701303394347736395984235582790867754662598188786225125468267202772295354702786349276210363831734124136433206362525885768021356991363156287679598138850150912131210933900887001659729503625791261701762984873300318878515188222992823850821170159847158843750528445029785594520271080718127381557974738145065615053908863820001334537082534874166483117802857654073811513070987665650513808761124820793146281555558695547401252222237912268710371141897290632854187474357204395423754974746120848332596032578073934967534181995405133619453946468935176616778708543304097562259856078105519491636907700709201217172261847196074442141708080254634340711102004624261190682463561302908216761345537301134388312495046200570239979338221983101422883624633234158495958195291744592266089833338581022632771586622300512232505914211686902140013215458663258135363201731786550621107432680861750728215206017696972828504968566370483669417688192820257619163456794222810711847531484782166738454937631718271510579679123576880201997972055997141523999759520924424519994589129692981227744698359112980244889583450834475735843501303036151755922879146815963635841825017802487985976996397340711252684754943390507962044483228070251167919800540864492828554286235244559485681746897622961285829784215879981311678414462572791450506193263760106313593049008100615356990840069501309215891033832551898293926926606288439661038376619142593725181732683170310380251450767842105140094163321499853408346468920222145336830551623586054763410371281857689281940599694584560844329213586672202073776993304557115438464100091873812411577759662071310254902660132001573984308940630359080100612504947796521450834956849313750796858139301862900873533964821161470573092769584110867336427877907212088125044574232092197295926888372578368041410489651006404472577944739148171348932043702455989736313105882801612668697116955920956162922345520500917130388852496143282697992125119361983579105128236404893800117782237309228156514829489983831231590594950582394399413317627146588233331456259147646278439268541318438917902738220885728731028192920432784201493575462424200980704215481795242531903206101876531433307584371874664813910311054958360049773639531206200000353087542949674574685191953333010860312938746207280029891413042679104684948687477233235167461220774282509950464309244727185504293707034293393256691332105900518569774302384342206254299218122888134199341838932754037250792353448531914627640199235636359716753022925175572786458260484468992055309221707566178581032234849296222720707726786573988114711113901578527912727165005033446853434047827963949279195622992785802508875780972083270710027375761646178972278194651797068920572074482806946222026197799719435491975331945770926862586536102284511628177710911202536530268499969408460713018705692901260636171326482572013121140710687942995448260547493715510304733196036863781166231462591405304577331181787002720753349521277611456468306139842233675596302897981081785218846129241529802025036952468299034522957325841612348375943962099479385284043604522106139610005576828711986693624181706186684683938406938603922768323863002772673614209372317215286344736873757071018976153500935088396784605507338268112417062219476985502770225421702646215715852470344998649788129741934170798265762013540668784521759815621354791286840669869422259941743100685096072371520998305460903039448176906732462761070994306456952649123305908944888863024224074255360355033294719548607239140166899569222732807881583708568943560848595705383753950494201075420518260399806820282677036242757208462731577279949195415537106207171062197376906781808019440062197499200545150155252436688132522829838494243297044186822435557510690445150474995331136112297366074405509831966012960660382978038670741235944624524803256882894427988650063220293105494811392645421236324102008994270129324148766561181709796469566655368381594477470253759536403195275917904681623449548148717945113775048715659996343398518744654631311137904101039428858725335839005127580437546189939391056204286025080438661818224093155405156138020830305980266041232542113182257815597241452759542346338142777619168401684524061874285528625765207161046142872082689307170144922079481399365435042853011816031989823614285973207818784959145356132664610517479576730772180304775577528646092107392466515620048101681556965970707819001805194085232684167440606323202580631492461525752488161133417613798440863808361140088484792107317628195267052404301968742981503653503921725844593549382820370463014784432684735448408799272277634628260547889389934466444663421369308732745363367795072655066306121764031234809578117086507631785865157976946710895820953116240107449358058308465118068397308385526559353991059032488283742156430796722206240253484711380688110517422822569693027624754043347030424579766880099952353001928718718096834499985629835058171607248165239674418699301510621021134783788668031558623928009568626134325892309591097973496687730061291731189353066457035033476372512641338394545231700190029956611056715485981479693376534487032156819858642749422440069087841926693998161615062433993071568994769826180420878833964413592635711293219274694984462431259554038969193909857277108842306343499287936100398146236894590289446357614707094792535838972844241636547139299961703937473143485156048568771164008142034271277915517072034388769230598081372315816655435460792431813973617105870659782634302002877828701984585204979599695023027562983485538879086003186606933694700090687025342251166236457466675908520957801800669766175867612051331387123148684943880306565924492811293465336143591801430801284771024562578654746542545278010134561207633837368996645968377767000999715889724996225448067852452067230612583448876905232280053732113814593182539903778601115911203796963701337816665399766486186138136552775357033083549903820704013661300805080617453448090343940204053037075897262211776211980873249798224576060156284538198604608719614176416460932037003116494975102814856148919692119435720224905510982019447213663883742759119394680442993186651169506386075021674168542130587375373502832567813540025408810069204193225983011780333461613205456622157830817660638870915047220368946062545099386621289703204790062564170296614713989991517306624154810987855774627176570343686299264914267981828827427215580157021264605147779937134822805591123651620161832272581328622779138707668729669284830676080712758416309236960090260156753109797379914989277604317738973144578551977955334519537016323446822504700513783784619623026235210450159379747688630426348934937133806552334698160834608367577284032379291455201622861888483740272920186653060170208412513518122857639560494829379891878775674243920451355961501659267151923239556404612030936825996653621495330558247548754633393680821247361318574723295485703697074330611041904955911179874745525379571042057523019565774976215982194432011080993677549054150880843643048570426255796063589213672925630325026775271258107178455623007199156666245027920887158728720381903838465891356901928078399989787762792434560187691099425486292621684183644059257158049923417639093696624717402732582512829118027313861312999147914473921383772263950354628680661989225793793823721940718211727508146316099377278276168811104576621226196803370033037577222909386770843541335295300879450414071857277018347046880162295215822229733349952843731455616994006678537726428484870685740552556810607707957342793205071254817539441566764250545350331257179302200283250319903812200767353910055578260343089196782099313819965969276654952169363771722164747206294112178181144974314260850702588586983287527642184264246118327715261634241314929289070264953551692430942874406896981783862317555283713224969298625705473292691377543357444347244587733844724839024808637316169491399089998000366688571857346233058542766465206932670038017729963646192199302848721626019027047810128150692657735334800541648499114469179569433310882712891466926861509087880780913443964071125267503532858568556641877537815466277177106919289390808158254471707947518266655205521661695332167962419325649197885151023880376907972767756035709293093065707841125034861153951321951038377319374227612957038617606936484789255689582161359217143140845656395111024576243718988517688901303109160677955054188721315588819787288797819687760379189567437386341794736091552237688526717069328650893074118957711379050788283664126983598493136640782989981810595055930381391513735505550098528061014049723828458957965821154403786394882774640315555437311854861801775929156698063136551705591308039845866997998297776693541456747683679587099556490068149664191770889567206948035549975333714123755700608259085451149390850942533930222940917259239735640590988246377089136593825957329744539049280215556554368199201406266988300541778479790926850856852729910201486344442160780760635234743193204266344791801769338720309289356801144979863662452674817929967084872348539145192893084376150940099253137182241362946089314533897754711220522036207192668610768691974335737499296478485115305441145127270230570908450311909777486528462749472667570035144118768779650677644195527457945162154980702394910481341038210992541086528478339180943374571124433385340275736615465655064485709407779108958669529606121266218573153346704814580307171933629702991345712658481001047130213079820638579512158465085510851620270674240750175081078994354816934554326411657215210187791487755479219723683701206350043608665442510069142363239996103490988664580195477838199817558929998083401164210269703670040931500298112098297350942389825204783369108511233122246240803080621283062296745423133657964549150436786760627121827304724908537644614033573033967350983635113272544647101286945206604460949995486017951011258189330479179966770761476820487083745528302793593132363655886243597757960277072809519552628196210486052230418318379579385115102516362363778511292195377433432477396605327138076945909870854019826622942085851988495060731257181283929301655739161998274566361252562853830139169255651843268939562031461133229723707536617856345694997441933243970561572176561109972654345680965420258108933355907287664322260454897492152908153105935622701975516857242727814071065366020870593616927682411899035864707515637925247380051136774535838657006875012444696611530684365574619625037324546116823643500316225678733007486856335985238016266641384463845742673746161628394798006235163753357676674101148321925842958612365443769073752072439041604092502929631015877145778459487168296990169521750466651874545879124894949330282009958052129415483418824057023667900094569364075609439830212356755098599780481122532769322612169574995242669891719591823837769672750756544112452428014646610142496394272312404206832705324149099261323564443868551078856176608734072558413554940142343244293988506298229440040755281886368387070372206181162349780742756484880003858388597483585679317621237280444512545340936965831445000117169886991484008041771681990469695261230580346085413523194633967719614005494188558139908982829880614952445783464109109414359210631113514827805227211895277184066802320029202817633725754402406372768952081232035063487763562202423927708708856698217973074744652908358977944702476694662395391573338315789940439788850839788266580957601148168951947612373820292227314714119157819178037921838811638252735832158844189984833998515886593744948326876739008654077503670893419369217967684602917582960221013077617323658600687843215752512486588626181271789026545104085539579198747502178822772779408194044726252854503043116502047462749119941867686444700903690750341821147983501773239360661553716048365953650534521736587107199978437652202015647816328889812755468939662885185501750326306810423842691867230764845066950805821837248884430272244200573781015815648891362607043806835261667385395508162141162572937262132089408946423424278204010324941880039259284277948073042051589839489605938854839636450590225049011877562968468993294806553591367623821684897310275309048309610161779193916717762755317332334742029329199740460776985282721790344686360206428028006372569046409976671022080599475277768072738316167047989893865098237888525244639476660091214287795781542945660643463240970227364698512169587213651900886226585519761473643819654553097210217485062901174967212658472718559869793461138626374951407795039102777710410721999942581771342918209804881856302273331218957624459126187206177556534876707859588050209560689099420273904028010902569908560751694713176499354731190783999693647294526815271156138556234634406490120666746846237564216022146669165166232608053195719048681073776919342674551150811127009680594423518719338466089204292562326696415441255070297913567688851608721701923834250868509082615366842337072537571254500141591943389029406771642315259054006519847646546348225620686881912576226462898605425478332738924307907161260838320902620510543679013299799951065664877081372587160005318010586579436203038207790668442173511177834775724219973166338554041021470210529867209131116852088501753946803020682191388729247199358623526253350479043610288937673986106964431057934978188062660347384845148953013134937212616123488247779146743273034618589735780399876261925311550752665182107092704891604724231582349655061593343649172105394595964812960108603060874547581007507445836925229124936071694776433154523322054404833825752967362756395096168316907604561759435012832944942471352814715859095824712507282634163221015301456918181500603463972243406379804456655040148493228693492917102482474721214435785155724849726489048052761949739129649761886111337129628798727053141994670044251060200021729300671319967996775819187291091687527231208057954748756900498612117535949333398568346551938146751601058129452642304622875313765758758772412216017910848131372358196056358302483695397636645757387884589860272694492375143432922763292589311483272897060386776925123784231297940285708179268960004295597771893861752695863921790874827814040671015785249783213754533874142632060573592611361344772474716317305627837877069620206606576550516876513565175914545458415728311663061576893625917931762595402143294468970209576901325964336365750956050427778052905983142679651576140690174713664315736051320085352999552767364973994142117988943576009767970978833426319303508212867016180709674678751501495574671080773829997872709859114663834846358291793080363666468534989174513170372905671264143081288450140247987030703228707681570820160887347435539869128567752668221956184025380033508433254312090419191083295676766271142854746039908011136180404718223189535014124310830762071656164026808172364539007355449303093813407561890732243296971105243417451145662510430902966047500005212528694296838496668898397821970162733739511817772334096941817329293433022282667693809927375116942595708227061502994922245023661893475174574276355451900798311774713195845188902079269380782251095459005204042638506944772621530631492472272160164703702720839679055160132625369036487988399297322528912521917149339604429467458239721069689774727526736620977991382554526159110583034812311062452340623489455423451996038157997030869803414549288139541641319906001911620452389939140962213993411918189078268517606916177868575458543153121673096959963976199803167724867985033479736445882705823173081803450470293125770660634852046928558129929821778338921843531993732229662814961284846150862089550479079391648184158984266108063940347808613919131222826230788977076856458590362735885809774500762551460927507836496484508682225492080376878913265763383451369150989760965092246134115515708263643805534668466698638346546777310410868031457040645766540068794705196757005842899327829180706612994453023735327941454165945061072422245051421998669696018067504165549457317443760131041346769863060125000591128985059807015777172394036730307847048733521361550207434099943334624224884909163770561960106643283057870740331234874388152642914103727885082934666530785550490287551940411696338849502070824170173850286827450712051962641444422849895078924650284019963183482201782807205541485372220562624621907849904243592874527903021003352933639551338316673786643209991894387687039608258393554861607968008630330877617984919138996158100262986624526454767834842534582831612364409288780568629292554626666399218975711207432607803756042422836731522829384689255780740569431208295863715183949302478151254990799431023577574404699486619178066711524454933783385776837238484883620905085438310915145984399840252404435709552277746435184542590659667316943355598679158007710546333047210814756373377328038429884679792184370988910568456778865392254910168472376163371895073638864675390729927077029934530695829705702903226105197624365800035208037496127157752160282191383682859116159978188225290307130009908942605842857607413747576572908905405229271576104150820510192557826286355604667932676164022085171560761386749866582708552509246846840348063885768233778944756238948862306339825459599278677272456720502975380818138622115661358566022829313464011216689645198259696782843798044847742772928529619197526321955723988382562527738309179062208997006498465813465263519634684702288056537667139942374431682806718539127948578584448251235754705632302890880558856924271537851689064040829389003626264153557698209530849057718593653447228715045828108750930872132955656494277220761611190696638940433431641855342242167951413885137452963347796203820815449797201540858419179560523026743875351676324294847699191611421692888077566339464953259384112091372103538505707857973230641859487382707951113856711052049488228935438709526186056234086712374286633702232343869925445517685092946225328584838760429254832262406684947415288018384126231411191502456526091349519357277040799357813924628924092561964165084379927831104751297964906795855664726631541755634254504682965077202716512534470871005412156844474662983994871313322251220011757452719809969824880507870245660005868722535443645720644086269226789815658367070957402964577643017102887568131714967130574231797006333898188069712551416303400843917686401879950166044393047451176440519948305756922153870806058479572540006883156357037977224792769527996864454393745489953245209903058730383969322221298715582949622585732810316521208576821853543349254140679633794541586980056911031818621920451156723181714945341173442558848986664518608701693821001324310245813779027528749545838486497575197317873799250667911474945198385049173553547841307340190955020530794189770139908243870503556357261003000405637364159751703339598386821478302666999348462680593447529286630284189494227246824272251987104558323008750984853311694866320530133109241424110481222936162346370827305719890737526888939954566816275096763058410750723533885031485550266167100853772151211089448912870468886918950220715522975808457813289172914176309971981857721047215138458165212218581782754317275664003180951673879707793971455961359860032734622510101183263276880142599297617417499425759061213049369300962447790480103727570877777082318095296392630009617887777640045727765773382896981194244379657783433822461599135722788946231490924628449153074913416491747172578361806600827623895779282453652849922773582645953743837937904654341867157334820966495162191429783793156504365550948293526276383311772691669773593975828984790545694391360464688162820875530501563721186955936202089282372867743699472210832211365730425448343511567875470968661483851483712336211619706205085021348779450532116208093312370068272729087542030976086963158366095444276648222189717351026338848197102352827883131019691463235594029789565529693581992501919533572077448603093243206292977859853493152594509830497640048966329395643163091053276497839731902033908543377523106378422142041814094735331183791779628809962312232233370857029114042961297992959757219812695902389488908779075603482192911439636339731585838074515086560453531987524860895270176576811286938973428292464436968542106459586011286353992820279809682583019090721061749648487909441220759274197075977214485769652857446344194843631209702673161536128483589636130381684342768975116119778294770329204428720019146827872826556936021075503005586744149877440792672492526242521517006568369548565891548448842552113336254921711088915071583247561565266842378717583465408972983177826511353430704086570200898778318767870299207748707619413418248548798959344318051465506790489870219931672860146817537928249409097740296425708351259197751403733080921381736371096527944425549752245639692686321573653950882332568905155478476649810351663855999911133343429782988464335299911795128577426620807703253677134496973879507954020535130404007839127396888087235128673440601481185572087480771617227080040084061334332128126682230705050794062202961757239233305162556720527721970873610769480724704660417396945999964460836700144379818622146420133946534504945434408771638851630499425335355575379648372130076806745049305078267852242122072872030096540202330842687513681532121624459974211714866541337877281344842947675291157222086180758585239863066994623751292748597310584332841166027367920092911093555598239200575075184522510742957438406870236587810461487032342946045361371040026955238849646545639239511603359811539237526883808765683949164923466979891783833285677105166140630776632603648013989199382467110038072148758430096539444944978075409765934191780685621853964633426380011560810506528833061354613674908478584758972368874336116932530175525388805519137672443563527882659677137826864972858368282807632397966053896417375592082354963028612487947872840369995317746159063793566278005399040685653670316378452453715498665330445152700442809071639886963712614174216782809505133403060583053005576379058057857472260799044787379516751973411840131774196730740955420377220751274045528206154163991505176292036104929835291858815252081941886678046751309498623206917526724926263036936979726844551022238261139980359118508823642595280411919619627513345748720734083741439223311140489004730440614324733668293359846872691473635214965496451596641598983349833435756751354938905816478501359270275830946592928072900856969106080122054209748286397378544864761537066336038780844009410622859560901972812173159150380073079837624634640068348667697505330183081099704903385785322621609272873509860865342343326326257277401662371014209966008946433413811384432404314448147649182756220989644049923173241375937079971781269825978651318220447497117782994129500191520617077363466978213181795972540069709488377398325192527596785149467732439429692540524960403407460637154263379223800540855751653248784241893923990781960216695508519688789032061337463658538251443413673307459844091094358507458429588290742932550822529647349024602154159323232075230605318298382277368347238071203931303240125539105595112276482296056610901864879397692557301960004666951031700150196305825199034120471418733302670062231139377086347783685945880740642278700598798590968875989693141966512706341722484862367429656192018474421027474200810922571947083240913506833892445439511184448864947308436471781225190530671127243942516933811313217940670402035474836325424657883059422720174464294009624128928180961062841914342452297765620264885366346421952081548019771039563403521682752077324740981898910147130052129542104447209337105206757806926123111920494592700991783659414557323802293350489387729612848554255205871238349076673850770190241725559846700471881729254963161394502722705484874456960152929771500551630014689927537726297941068876964558557807458384219266158598022745599069053940372852082396052691509270475104841749410372848740618214506669147743074312379982553670585143502652032429904038020833259830421983651232219172044651939902034416304583761244108805361586900264409178070881769874356056957592839762668849296149705243413746007695275207992829119993131888222292138385258828858014913961515541637126414671646073843478050454080319545215849529914743230194481030600927485114015742748235766714063859701978932781324825903447824447147781122432140784100973873577142160895471061808830738488478597709652495808170891475506366047274782268762707415688404523585637803899665545943183753797471768003114621234894633435286530004431691377309622787557621809847089120373926534469477249261303247664687955147664432069616524821492609000594551164929196534278506159340227959647482130704463594828020728746122428475315683243963121046486913210090013531766685912699498293523371576157324870378165430418916754201910679477148643284975723995531300767671038681378568924747985499230588684636846666616314878309405296869814360237896310645246196248637561089632761010103301275970231991102798404762852952198762866747804394383042025206077109916368319285979874200906915874159686605860415879778407227263459787315580810673216651930619969341851369776574768935546607316065081891706655734588058573239077107532040723114911327965183081362624966706344632775690726187078350338073075976350158165479951726129925128155528649188860253647710100263233026297320053574242648820108306074967823203607913760882045657245738216136301012301941405614449513546322964733953710112115791060942239723176645896955260183337660311643523241337758170531613794492162065786417351297453806815376723514230451466272771278958939550121908855526082297605402873805692391485690617271291722213065679405516822383615635414859197937041972271875253697271535707268040991320589617784784927128220251317254461187469032174804333059220755589030322245650703956004621390930731879272274808538904927110326634953975453707219453041646285938494447118199434873562050385005504605954959879368427689636227561277551172099980066814218477632040150850702742380595457054291175223185583837957394441495892800471125477438799065899337861410790548255930828243173998228494345812022299975797175132320097902135372925822861464712790421907966532657972158531222657487599551252944370043723186391462007019361377326355271299542094613713621469536515754721404421866118328080185914988989310322181021586027992181386591961946949538539070516736619089674907409472998060529158992352068913644060251070739616319456218922290874912374674436995048888838323890522586357653250023296933126294571066388219460822547250267579696868827538804245476733210747363310281760720546018244835990801925821221162924749018068060812010275343662281577083141835499585273919442539616288240650086211416896905730844588071159320633930470072934290028496359609949320738997925305884031266510835518888694989741229627458787314362126090072007809478144284615000142436144083488627824904763109878225126618865995325975011425357805900347813682817910634825706779184251898033865545689723067468091722787894737855405664668482962160860281427154020483898357448331371794182757659955448556060808437807196269478854174679137722983954693566256726101995808155459008199309650179885738175557661070974300941089790879139639513829050766198866068908491911931188004802085037202438191087264754090536856697958021945514115894641640746680382386090364481820629534271275895578341708853839137888420312849247574539017070539626581543459471606408836179066183301691893649695280697747257008762283861731565415955024765444519591716794685492508576911475524619169388360937163131358176147957477149453826511309197182182825589706994487672463307219159882889739777546386803874396844811706990030216401081002474262585183998435583453689367323883185387260308579712884006444966231215466680337585930320237755374378608676835061909225115760359954469889674518954575040452528486503660220400131247211939761685289813160411522692343332118968837762874152546719885940745435831645694464804438625014202666566704906651218773272971728118828570033344800673013462463094728368263077168089512978722329456229932205243976645015811351814272721048656822309788964922769133970736176902668332227615051479312134495906460455344921524730915013648769231510960595953023822850600886574124148090012576721414175088478405814153841892331360980226603393578506941179452754786588924838404356588025622450205879970517871982875581499718575592178539538850254843765888363365027685456762375188796487315210911144414223400959857675911869591975401062697925492928202813111487342874898329872992972817932026840163383738486076004896941201281481995007405018310142652556050056434280090490367484461281496720268007984858217814407251914682780574923088781501809830980643030979157427665174107489114407225294211959000107609455974564978354637693435692884263118910706932139814367683205043009319782610830521686732838235076401256289526499450964475450595979129078842237108579431434712835660887723841577774039938064614721027035759132403402519511023740215515905012983015222390267917959940114203230363616080017769788780449965154674214965738124364343780294498348690456064404126927874851654512803362310759039742485889649860574968553267494922886469444179275693996023456803295514051122397341091584547649562970610217289759784608340282382043538828094030714751173968075739643123230949716260948655424232231706694018132142358544346589496705514612539177311124129103735444303711849593742545206034808639295784857067836030114346180156524238191130100457689264549025279028257828084925381077666216351789489006502621096722910369899183265590234819274008676326919376812471230591775278222991603915514116102143473142945376178554996060385794911881930509859271335459944327946413087786680780981590345495357007952304525903007877022114424674434345701663330059130040686796554885276456421207291210435070281348580936576929452652994753050941537858482470897049574192494445835647058521232693367874187762052455895493901785550595333605085814075080027211322296445855165336984118481852341509922213754362178195231298594530976618575641679378009274084550407473417823043141965300619495680380983775208027080940495738305518217157392569057045208464409850386752851707821925951436361456497251498357426458777008764684452328014069954619305712284880773892732633253846281072041764058560796987363958328218127713383725488662002809745706972291324492179611332741867533828055661919804363117281374805996461035160299829148363445910790599706588510327941612000266104533939467142565329518840524322687683045332363621763454446756125372910697629568263894204886252454378926409642694603125898733199746830495176708448884086658219328895727394391852474952427186180860095542680575545992021964960028493277393997134060582815010643690105584862871485580489026647736128563456880445443715181225436782831257532188297882018726824146997332042278031807755714413908745140531982208425224405431113759468934794128379246575331347796715131066915867700762018196371614264386896118194744672840767992915663496374109928077693630181836219412692111876274448424625756894084655443310741254992489068865241279417940391947435639158470221422372863278748452299237466915952851845279017072314869264738503069174306084568204996196747789868703965682161306534608222586357326665165202154532597049045938757496060291297945907347928011159316144332920699633955393330253172016659468195956981378684226199348082037821839021801800018101049656281841340203421766626064766911671276704202528496824650406850173676415834620254872681143208881004388440439562886524894401624498139731875615130340153964995109455364847003564328904469484203565283419880813741039715758709615575989882952839077764132853285595673223435979150982482692228809460066534106281918979792959284917768299292925539355478500379754538296562483858614365810673267626073763546620911014179261318299646437680066242643216091307868044667480675477893891560294664247775558161263991671862085704926291532622372145365751022852898221826410291166162128723331453109989549842703484699924847227594324759405127389745161736244647753071744864254152351686619027398794673379638842697401786106474895223029380083378539833307995259033237830141254390744806253160486306221073629158509817454366518521548077555781121954059163959949580807115189709336534732196170302225814135496682528579427886678188350812008172980458948012658594606919026896565107178615648026137190207700551466146912241221013840698739135180161513221850234780214190144886361908940722810019757157305029010743408711553942212541138813950986450751446663820654343541448436581567356876075699020262097116088033055094867087412794779285983579633773196261190036173817573532085371785778879769506245064611439147044379545352265496680591024617094875355381768000388848762907164463902240797706584557110931276407838243504783204974879215763425342289694682777990964638670098354136810974304324785320246282067065069678026715163443679060415815356355188230658541598276022349741776539271010640353112175176029255410895333392017030523882684734364480317198610641696005191420108535136887282530195450776168332853953504368158159986781872134677051667540388911656922650186873268347163794476647058112117849331774928421467544398571105400831368467516726628673394958858165120447875675892539004415364347724665814920129715192857875841651941485530062368063399656440032102581112256429287494710282133613555780514608225644486721599647296732811254162443101601131325510495429926856230238642867003272003681368625132125742549228506332664785723100597048811615990331652977374391557730412899282166891961095284072994792641569443977122303789899040976020287951026500590525175251955687209806468899595153698848923595259292054098900714056221888220251037716817733219461912888995190298869238957135387743141610325542788004670649499651732883553355112879832778678351821047652578450783450233670004131205092542593245771047027884660168565558932784591149187477739823364639966790614272112481362361483122927029217601418925813755730434229867764706249442455202828667662095949675464851333493324869278272130282603732018722486491789853512016631080836073930414209628991458483557498993167885435074901410444291564861204704963640535208924099344165001359382032120647340045079814750729570190802626418327503112265529340869493244250230127470040514611481139216481056759759481482873403059957914809373985476697928560455205814846878730717429035145584857949191019653229619816926013708395116366875824175846053833770655199595318453544251108537020730308722927529087180279161881764066131805120514355898029173868894428434532982975016957339668973504106281411652648542372415117053368582248525936950124766312562009031912725561221497863735018424103482846583082532774486005097109949886988473069528613789367817274460766579565500439635969125251299611016543470914844914183728226750373658391077221514294049079370571215592528953843803144171868692220637099626287014754611736985016990787259887934640389974352441320842731801191683027616720649212951221012098305418958376143600388379598523505380105450114468688901732200657065321209903251090930182736907130376416651051488232127288052341731585350349317022822265355446262854072898860533664463098617874648940425977463187519929394143136348041970899811488285382782969709691741923461932176844180331501772076325209582492248589280103090377856699747599665828399025207052981048121333308237368964394370315514418350349075855111096756790302272428790546210185101042321191635755685285536604179016128339255185088030731741296456830150738468324276883156469565487663661036402819229368440396190151424244326211319345379513399878119776873079190284720275651300378235144790553649543841959319859605396743079799306796872584218932197839152568237686375016189056444960637082761775587494596538304208735971611008388070351627576583417659699496393549984671854223835794119982226659552970206470381165543294116736710182146630662520569230106866277895451310931982769685531804345187407809527714802738485947365526098303564663709369537269669545181316234856029547841991530009971940785442205044211955608694017362435665762639650952067123174504937101459431705511055672559841557856316325374789845083697577292355047921929725248373483404578530461846849394607458342689125421871129667133202928615704643193850549021771225876154555309341530045675714175256788068339930080186269996539044360091671305301757691812169023532812221237517214482455885285440657813106522207173085716021044199492638225023237091086558648600795490608732706781298478052348285387272590665509324377196455614949384238598421557714103704285280951939349668419806701549239693351943101874544632502488773913341275463829316272455254000011400070721002458156024494858758752292501849005805712234353366989293260515281326940279383725427744098262021585560780396839344552467599994479267174099590734737010073765689992231297004460853860859684663634328213520907023754081274453788869182024335338247665762493988476296474231183430489669757276003344049418261661536780689570556025360609130929474977578766210549478182531365480674400621315649825046044605751951065573650398276982862139983020130281212729570762681725084334037445287360622823213842349904047013766339611486497150257468325222663110969803559248322616312270863444884497402189542661869505064035827960690865169992906425680794594301720914461063651271877337397556001049181161094597923336094608064011606856359695476716206014923277330647999272654199889841088827090579492606313136912460399750227964515494306447561702196611383183344642036057203379807262574254216360982066911653750141510670653118438631856132615881921246859489412417256149144366099026289420782344298634412504742281996798798546508475651269701031830467785361928921693759999478057024012307481435022140177203642060187054581798355680676713415845457212939123944987740596331624737953504396041683472860366914798981563504235698214505822139444037964600333986693795650780635846926741088800909662857185685208083287344984485473797748909346532617857332748385394761507033015165621638415360318555688152840457194675095799638747529092432616258595750238899706672951273602564853016447128712208464794865893468566502878971381809706191766723836092537131443579766186530116396197553092968830212863745531500757727694167198207955984894669451064887187349955416403534250114333155057383118174378731146420036380041777905154387579016156230956558952438240626285194423197186500243203599849625202487139237200906619226573031266391519649162502167394310280886580843572861416025831460577202900149675999998017457970813450808161802366563247157113945822746796264516337605289032678230574918556836022221173052087738077236675636434906445826282419565965555272298929215752849029098046471528252784608173695144603158986824233046657820777779561796098557902986502486055188879996391192338129210545150846843831697347736849582198928560547740873151418504701168394319507695053661738459897426840770167286577151851178212331134170871100221993068065483562582289603041336843216240210532695599552030218280070644145815224655559480613608081133341072341699397673401795115321092820240559928566770062543491303220863692876917279854304082645410450298316529592316677879948356319633542486882606874191778304481093570695945813546083986239723990116408619214709661709831127756478275861623462038940866042789542923668875165008367727690240863466245809657778092107462209378521059444323626035731808587738996612318421726961800123153014796943587387292800419829452206556643235777372480985277966860647841102044999924194034319259226759634606285572921204578226445256123412357616066270957090597688741912836677710060615934597065261459431349393025906760504977798831471428628233831239945265076245123972323524488738396621909479819778878128286522525731711932279946018341645011414476743210650416981138874614566078574594579252575444477659239698750589356916036092187081009772962982506053030207798012914536550786467796255874488022433040180143804144042364763226526303967800641228544418512062176591286127022763598968851459222559912637986644175336226739757470632368391394588927575690084207103395327192810031188081098050931093200001494420620172836466881308045502433669408111028530251328540207287446339053357895510611704163765778439176319495454835098364436147496119943386504939218669700073305404224613444252369934066669056280123963314836979951400562432534223286826852488846870660492528506712119000844194484300804193779097641285370226104458278962410931285095712071746057860245262416727425425178939023390119461817813894963506414829969308833822314735404761267917015258612946012990780191640308928251220332663946466077447856495822553208033754849288776577779729144014189176180920020473839428048112265486886562934184621401360135843503093654767052715777975241038260291180060467615087738386576553432915011030629154022198713831921252769190215754791617831648801058772359193673125607432746493866045554691360370237524972062240671509434367233216983402522290872800218580420899078098862314317324157498769101792696431119479825490634988926657945786689521144362511331125981193410243589535774344592010431306090893830057606450404101657090837330930268530422097779876536727124815957016592630162555044868391939429610550188823972901113858267012256358451092169197066135680709315850685646744028080195785288924776409644056355070429774360707827308948642014104720229691403372336510098572111546917208273237358114059015766862403698852705477556957027140972193683535468876919864600968123812687657776530568573196392552154286308002278943801161018235450026933372053092873146307818384543255634287997942418783688039264171230226623544163785902876942984909740329567101074463784964588383035819394232157753258299964974891416944313720269870033039480890226013899104632142401612825390778526407675223778664175278467694479889835329106914450625446099498014630892693350106875688744059263863016373502431623761212853381001962688585092492589862538261188448878191543616873944852760897569756653673602346975091651802826963072365769829834987806746302193137702567915156470106911778872987459710019806798171544186847701511176880709899987196574244486593451747841869003785258526441509603771200245448032589324618014622681933320115478088456089992625852717642327023350545128412149470584892294694082724944921414398222100649406575197974242891816158004092618828463328903467624378234610133762005616399347038297552217456064136219626777835930358818889554840928050537326525833945532121248146838821491989182394174647779124328883226179921281735958918196287460811490716788644147097804590038378641572571866579119402583602569245754829373324731712246997826065114956197786510137104172919338664959134691144186677647495783756099793031403041276910135933381629504932610212818851465436026906187783967108600390442231151083066662597414751667390073447839790609959934528027505472809902831485154818497545023946786480005056600625533402797341775405940437913178792948591168314545971154861809800581018803053659326860760441107614765501303241747437732626022719910618006445932308160366113190713394817009675559502223061460487306580466215880193079745476084346732210342873173335563266373123633764453223399150893404703659221897871590783003972176512208142008213508156320534569527960237127538559277008297772673553374107297037093212524250283021911791292722827085435249213383014504738381031174540440920620603771310620811679207378346543917778522376445885632829273958897657010171236534108602445373559368611413506677872827645968443296124929688913923662874825809384534826224090425043865018359768326005300636322645296988030094329565678844536831033862019352194813878793813083944429895607247065043782855034701199479921555514257060888824898936860987596656593752335430406469506666506363904476809842700031340157693752478327724645837270954845295597265914217731172761331359074302290302915511322143878056657300757997505352345770808821798905341236842670767927541501055628372401302125441030188445181559729979538434091846796512630374593086843175874125003821111149252658393350116910162292426393676296432380149896407098299647918955292886643490003981784319108274070318212743099187720844033487556074389923125870574670331623141793476260664719447093065454285997637909870632061055775783426510902152774483182661054300817011945670708713202836651693125511516655668924743671376990456742957773880769588418140246708129232975716582980828651711944729706974142113478125796226468652679260410148808620423459045396024497128007262749859896072416618112037626149847560032904068602286777132125799469536185029676712781991559066211166588431387883829472422178637185742854828300658037666460473866065129915236097752618404377031293958713074892422233556261649785541396561490709304098593760122286494359469537132499765651379490653705336212587681316126550939472957403952501728459492329598008267536314372126894932811246734096707838163007936734909339518045669873632682535508048816189552761776574849783597872519370922773455422455964231429609875735133624445886611424550833936717383877547251710809086582572214428571565491771271175599193128717033720669050822241842901931299764713541214760962817013073708663672180030779853755571269478128243564368163289657224986120072824489275870705413012639398362661100388883530720630616102352914380821548023754240667831899306543517362238677908936751314487704267615197901380228601416205594103413707176910819749182802811279266587509940853716824526620796728938185796643601721072882304534959961817692728437257808218016972106952732039942992799522923180952975116519412711120764865745343335802945946419826169105876645601439761849644072157952732667022254037094942390156906665918378614882163123483896594743830728998172548461675944558453695643000715996219536582949126550428499296807351311682731497382975519267789567735365073938023715951634523464803446089651725744398557423187649807963793671365931595886773798614056702978697044800182018154770048282613356577300925548237299938810381989320823243039630694044343579742148476094366136029728384353833873058938555929909538777974006320747648889405190775342137862800473010711399931277533711046725463618252729074437799716600761361743884326119090137202589755914133522106627103704704075678309780583283196879369624167238234844541021684707665510646879961741456174640090216932044217480186598286062902648305275005180462112971239323531521580837374672869948480494604869119335267210864684072266783511736765624937733594510664618417795447006881633215413621138892881436629388781448862003686987500959877796914605951876504545806102713287408557752127179284418811882986917008384887900485343692294780803100696706404396399578377546114210330864399878891733223610466930434955173474483262164743652804632698421300742689910183753387020996586138671190871917870435341176202255866392669779168868614141507753592482177763633924935664777969892339948598824320680393837325183902759592198255206920460916761221129698400804192571658920308275975540682774805049484684362047305250937964338623653075791128220360164597990533703596362467519091688463975536082546511418834433589974402127082391524916162230474883576611177635802127404066049490741433046669600396794895899984343619090710356119598979142129445831200271911009080508576946673455169154969276504604868704191361992370696055194561699837973500376098310773868774117709253014827165570295507232537968803628158992707779497810708100847382227560396453495805087582794608919467095826562049230789465677270858100967081238957611665897936439614023825255549692779430981144522249689137767713300179538713495274871516103089110537294782718857672377681216137073873532218589382904978413524749666966004221666618620632328417558911361506567520315101575641069084282696309568788687615565863772985420783407774787498024788463971547873580137561249921391410680468291449230157887206357024709578427264178326019305859524159763109894363193422428499750549159049723108775576283554331638668116747601868602332139908994319947413127989723319328684476316719187959967713022164225402043248895637416035376206444583304532376262060630716118082306830451668284450944986792817218430978636115244833240974979374205228663489382091047890198081849893156391914262221996405448197169395941394011358905093537582868578487525153128764423678404502335320733539277052598037415331808926730803159393479728860558747922681907285241017533667288727052915346369012061499505317678511155054443605989290483368763537645116409727031340163563100573330788546122361202831718527076544651471183677036719108403153444188991943263219999747253518743563515944196049259779892725363244685972878220008486567726232864117195209873284312412658954972352247592389458679511983164680710955992654570735410226805570078508351652263568729415691595881506624202803249926236992206801139708054878885888294876505633450749742273433332000471510281243001668587640226125403767835999232883005092749455084458519264967913165959699677755539138514510687790453362674102841770628041937948834334204930128087998497450027719236106811133901920748679214327831466297456341337452223140180125901179221660631746135790186533368173068962711489109865690881516536715604561461774424612830554057356391667927326070217717643021896778772196982861732929276391588411580712328282366950630471693720890720790810777778819058642027522719759597187862768063705642595119812422165712807421816782126567642602787868663383876668840511273264254567810392267302010927550311444207321777873350697707524635600357357923512936854063672357241399862719692241983461083399045051283651800541014421585000361140835736846044116536598234542124520673416637151553968162738309284544040795099983056591689413084908335952286062053668351971638006181078156395849092867747705414753857201786393107064525667631122453610695760004323756588066103301493620712854346889993400941172049693163952972798750288848039222370946860865712023340192530615342732157770585094453226810206975876807847559991637786395861077228105230211388592346449207804388589199329295170858359699266973333978327766639394584464543162805452108201981642889543705415145615442637630907743424469763197040687197934245545185786989051646235448245097702684130443210367228323854456639638248871145843469133394776430144092170570346804190590185990536632213450474216037845379339183022004647346333640467339178210867264468693217690627564804853100731115438998388908206835025096728618333901523663265656183642602164206283123486662780621664790736718114639025051261205805561825241441327935297018842641736855481327951891325485488449786909248102580707747268159836384494336010968195870742483633349538126860663663425897343213096054970331480637411350797874875743437501674286770287454433447613565446101778092206359412329401234233222788403724314905436326901512486931362369080855034744597071418783801450711287201728047280535250548605619930119426048589241952949702999442142111112279423517409746397361004183356543545080965655000868540171567933796112826989445797565386918598364765664836151069333999886096501162885681116478012455069759373467576356321576442457689617594600643955184519063722441304761179116911582733120271023004471701151019800613396390678068640109367099429918425737087152747945160014036097555863911706793436177440753488156142715919546505648170394341778682864886438458529630717985424427779639148638347000073065457540780998240507426932008092963030315366232290863903778898253474281767789246426690472647123137621934037216287502485259811546466947848334162363025115543561050722568971225066681852127181628350060884069824949633793564851959255565436718987935356118720532325795595784373563309454274304388770739378631761818933185055038255602863325551647209773228518149943920591633315845455396694773456210449075880890572375569045295246151831163205294670719100171845445362371990510311982843519381881981274934989223090825282064532655672411582106575802247263713104259900715163933850808507035076083297442275273633863063999807682176042808102275132539347624468085128841106219768039692350645488414275795045434257953210322381183408694236119451744098432295884630480856313097246054755830456485343576932555978736963979262394960920909219944401435739139598982205144547837731386484297597133360033796617860376195235766408008460320640268330761110808227616578673881425699305063924773627771234802644547752743336062770299612332075742182802746313508331290731542887450724115004291759168106617419186338985804908741332084112482173464909424019926018436215774280886977213712442436552910127085112671346993955462396349219129279922846581364825044430972832004652585887887549534724480442053695796865498453285429411732486386260209677459233007629027540533649974840225428284314862669561882610410945353785819278356554119533317124111443247516748645333566661535875027433045783180226761640571800485995586513603412924439173410102798930444088471645640952704683454866913077216706872435326088042397395653432554197625721018868924392017379876232547277316695048580744320989569377772620765141039909859545420728635479316208044460663307627776347752796495479006326120204953976794905656965014693545101594749777632139675886394463995271364134470522835226979156600098498292636354535102079472202684890573916516569716175029591077027225069942378286055650721901222692029447523934851121581410931957816192164364845160040104134365823470987226290727418257115499870107049857285201071209487083589816421565157491185878689136020201467246409995843814310925005875273808740250174837667673223673340029357611430241042432278670276228808056419331938159313445982274033171794395649194660409928863239316215802111419267014129904014557871590366600092653198651649717006612999378468000138156990493112231165694511203100263025805932379545964958222589838074884116782555067619501080804655215422402500317587914562534094225028282872546645084580853405075391530320835241776886748005365093801688711563024783526649353046475406472667850961271234772887794879286236706312154676334202714718909542670093858065164383915421295642174897296657291115080284992520108254377639699831458378808317875256992660872562253892266753832185043915778495835818250676394629481618966128350923923664687616635649039539213566459831307064522527326448476819512196389354602938019784319242699955333000260511001720922081611649855546336738224948191625276848368890487022615220066835878495602624109790226112055397326452468825233183170667061149010908871822524602693393761958364052981494029438838448629034697047638222538665737291440143015879553739724026211580608002240163637435260882458812419205536017321450482739142984860606051370826099125023314371151792601187067264733972308141424714470660219483188272011874068978327649853123705837012265346680279360289257928468222123953299871680524063864378631831331536932880475682229506796726991053639612860963658515912919511679113821659250105643697954948984842507047816211971700407241967306289941217902495420933985630572759527259915589249443866595874895899682783136891171162870336392313286264819364259181802207581737264086997313237874293231688556780298697204752700977239002632259937317888547273811402830421057103274928179018217996747993912947023522419101397403610401257634454407762203185868396919427582688872804372073542931248985973761526756457917430046619700596769603400949404271857841112622171855467220646944240599502372822962370019386047493077384915283771799914934153657785203636644565376754927383219572981152013219621686469531159885334845528017068725404347239041650592612876119569875601488824988143898239626829174787221308590538308598444576269690231637583473445893620402422923633418245797379899942873032509073883232816729749375553154218999329555798430973326937990298255221961924108205505337781075963086243840638117026868014463743041885112208326889340350193313430784462248297935636937955983686206263222028857636998040501550790324128566216469329358527366857189171184411321685830710881344336063986517386888725332188360899299594260105212118020974042140103066246123405683413811381236215291771426005690337057247506665690290021060497207708765941705039847089171906158941047355882639112347067980470027190630826686610746084075835122956740304608253584889258658339376341780215514602083186550150737082577451273080547982418515177429343767203519858182044504543755416978735962987267954448402938053246469268375282980924142069650127461319879738507697402994398462178187469626327562052810599061936926427890264031295559327613842394840361904186181289116425328364127602016914906241590375237942087499361240844323122028538973431047366871088421311637859013713695094104772850913317293346140672415344544079332924832973589715728276718191394392167340762646457187727245213926282105338839376792050222196595468946807294763995913012098797366716641857653058010342331399915248013415190796583124883010235739017180586311166332020089423837198003490716434181826359557014861451982933080449909447089673334301157623107587026532144560608159381050133982175547058874744015884313708929059615921361496524214856095179954367132173423989028851737194418043839377933235349794277496277581105212105128304458564111076071185252096155224538737701710307320789786919120896889305263494931442719615641368795776596140603935773417864299060929765134616433151731550463081432310963248966270122023035833677483281667474071195487377057083117571878332768577667201397694994430916045798480143563558551453709986727431096282890520003913824013523423908985485944844736741772351601484615673526693673388426619575729242359069333073270531872400074219643042917282799283806303156704021930624791039332919481982373555187544380808880584923490724304386999363268399559421151960925258841541320011216779778799413671717310900815079666861541404441685411029225981491579349867492126642307245263199662009161988854331302615050183831705667518291093784056316973306565917883303755384406706860427830807862472938127117641432777843149365622248668945387544602508191017000879718417814079009694102572889269193677787847706029687180658837765677807308243449262548288109393428731386072494542563816281427888897451828147254755903083485006164018828153746402915446938248277377278914728070723655626877417523054441163975578347171667338788709453190653274259268729676078796424907008442582831627590758122924808619258535100020729407744296335147287167725594957221862050774327512039701338692681154390082578484626568589264753601658249780870846765702280368316037087484028018105121405214455923902815408135512125979007954407569741816951183899070298638572833252813123447810223694429542405601202403660473246738821698577693349574491193370591589616619025704612304931128979534494124252679152483448967636310807714324974595350405133793384273340014292987445677078807209200235681747747516975253804619763926128838021721562296586735695195753145892757963922429277003825921696847293536670528417674504678638766400460394604301576240970308441931809258272202857101176565150996211509851076311713006541992503035380434253046310440711950340030291922103244707843791058684474543680872778525187043813613968867679141730727237390512296116423406062867374483897759150495914319421690828205301871819525851832730044473992031458254808770480407660090330185981035387950217105715273714478676857045395012754151334317030642416597701189167707221464483619846977602987473437402325723237122023124739419210047384212271201443301388592635665085904786542053878265703611751994405061363238384096725207429989688193803046418717359966551341789166018901538197993753451046860267568625710370947539776599737690185189361148098070744745182106813119479953467099303398612879065659335185955636585990366222809192822863712468231952497344972286494207777559322182491474174607034047224494326603179476043697867189994278159843968841169348973123868276059267141524213617183423590551113703619392906834352579914061981680850900700668328184135290597698005053721633446001232803998006197430040740390216052704686813155065990651029864758859992160158679322497754575578094490645623292475361517930047244312641554563567883916279754174722456591825457195101252514183948011085183119524639278634020750772456909624260346581192342530560308687911449070129701818076714944508741387344175285256811384389032896048597942615470907124064895708669063847703767024750216052922783161955368892689440601026371629790360577064987999976047940592328705494938792031345724605018217735938116615796112075542592450919153226163959221392482462360902513646020691094029525935878356425629401331929842841330000466411880675883463685525441324010911673194196767040608065743316799067389561153021950675284011815818696109987904841676886985624385304899428009207735660890337196159334066466773233579362773730561776879125945114332132207781762771343849971722048350943077182761256990528846143497680806390725955433318071643020949961625353842127456462477477150491404413139935951213883574908719230616216705039609439662314855304507350981035245252443397241273213839415969622940200865781999850434688170539805966874462361605424252480156533310245036067021040861725384832241810370845026669401645395127621663537964007260203987493642838149647907749394740526530658175450157283342784741174296446124764686240785406926172165376448912456442260013222692135955198746016510699779223385161782368714600232019735633861847334524581558290724001288626496566010016132552148633203824027259692858761836833130260204521418633274857445436382862128647604823415936974703240549229956641503339550111601312762632186979231191188383658532712611801007212302894180247006300040830509149702918348640829788169787867255486447240557208978474574236768182129725402195112899026228608152173510024284190686556714744585362694315722662317132183163856746769559989490426228817591857169584585452343371763055032318765771713933304268533223977661275625214783337170046982474554539906761364723016685324295785483944856147062581131697375963233681692628134324794655907146771296158074818444856218523540732867335370072950792763184250948254415714698259463538920904435738977806281179921421759614122198855621441981564840806671955629669812048755526250318406385398362228106049146167209188176098348247192347165605384777863495252627467366506282476635585335723710075538537732566510354157829696330683729459459736916548990074803168259142981394234137681250689523943433187202650703316504778683410628496648716500839986309491934571937847567413357073093711544955609239915238046229869345245380528558546762932055626863823486344034206492578634136925826306273983236012938507363572669494193269324588535696804411964880489287622357496517902375259478652212263866381393289926421789542600991142449873164159894234832205088301124137007008211969039418539314355616238572017791229644240155382089585418853250640191580349911980791978508615000351478946152203114690683015821943462491121622844392988161873611563691655689198547548215456558006330577172688718025680756455496676984531023149744843922218915337700334240001730802579256537382338279202434391041149118923912261684152903147955887564461046762098973407038071696370291742770171696898624721941760388394670749563002595238185545317762465437777803182123750782884342534097125804367689067488183146718261198323738766036942272135482226124582588823549586262437324424742002338729188977951456789554090008586646370946906783497418249369277549110116846532869229317386187907915591781883293284257556309923141565121917423101322507644661990563381056777042088427856328505929211738331573792666321368019724719567743284768854823865978306666735573430452567448592796726159806956936535989306530185432457778436267924899796621001643116287387621577486143367741374225141996511202231778449388277968369949114159973186575639242949703340417679724552633477756251689960430647028905474906669907375605655785316872455598226400329905482271499604286006560243793802321702483162332777964995418131943713340176282148265904335626406655922663314473662444618190611981547346058807018104865682211269328975524089216970386242542861539085699475005154232088610050109881366157178153805589894949026881252505338547876603776460701756903279294512505820508608565960767166763119428634983441041820043714125695571634839492428228693681265141372564514471278407612886309577155689037102791724900938701053594610652431110455769970119944715141431731243177486647046976939642550383618408229613977286461494581550005282328542306651624513306206092315874600392782601376586141835814764575992317815014279254708198727313100013053034493792221663413389316899828685088234890844101200314778433762603299546980365629976239265819435307211457828234995082996621753164831930702577442883271754083798188254939812856615201610511232708904334776663877894365057931596158166481845948760019585900147466774082849122066346696489662849943524534005933132182337492067168161460913770480816448215553576684259774771891190922995899581882875948090301622455786630942289712929544282247755774535168260922210344638695155057410908232310694708965886306131156202565962361817828038796046022248810443892298429346892064362546753429740719793757625297865076320417324293232186011560496233461376645899501666384778478767568020893898185936597669878233735284065662381423707185046243170937937734480154402967207315081398551834650750607396693743939933105899969435042376635634027945214866359931427950797364760244957430213292726933696157817287345247970948455408199001513495548418019857490280947718724614220766571688936967804578379152583513931205016229248499793388740717020294370626602661898504338020744564998276598138059396092708767536357062754504393277608482291015288880395103235428723088731259615484542100115649185721415844177721239583844369301360714299482038834743058896071284210805746289489783328534413355191625986635874270735289924203966637158076247378834491831759723225848335105616113839796550864521498054502533464228431408724102933952670411300400456683716895642142342857233022155929458905166155779729495111271396036132829250594404277769725080946690273909544362704701874501734077794298838735544199217756334938614971754129188141487279558271421687545234841532173092784272703712418674569700076868500533930337456697702744194143636789191332496669620157256789902625126616352192797168055763903755339754444593502795900391964833154022905463868148774626878483632683996280446892243494045549083614126518427175956615263168084183383838174901831887288883375916163295498782156005732942168130274880667787530002855821580075409920521371406456740559815119525609477213208821604670473589010007362862997497047999461806998272332552799717558318037054985397036279941568626418366346760906839442840628351524925643105294515288332411233440885512813328919052127197021914497601779358820387334314284733782238616911548913707669734917924259061805509958195471224250041523955021874947237128179197885847092868628080145478439397634329819969838175631990677682530039937221131401338603027421177563464378811455813456052774581590422119946311094523869851145045889527978482747427922465793665969191513667933206033730316405913091226350045240839018014931531004992169203637750430691112342580768422975468709130959467133304468446218886702138566036961457753981342381570644322387371185117526586734673017569682089124645253468643184936561311716158889030911341688585364953519972048919372918272537504762997040154535488332809003712540021370355785476872082314892692431047503850436426950822216013413084941617892924147322455097131133122385564499476241697323236121517288705516059105964891626009596032583070235964065893202938190830404896274556047788777920206889618104128992611045991806825080386710631911196907163663543137550684943662586332071396041519470032993827485197053242687392352724962565716248626018893820514873674998434884631933594209111461823263330881544131750894771382123512033037072267220706083806546474318117556844199227838487315595568414589953727198118271339185735386920601936746060404506687294883847614820485834454109387126426205114183599270331154030432121291449832907714336159605084950655233825678598100006349781232281215392575284909446726192514862745678977098716057523109293738869708618049161587546983670052443602535011751848578658537345817895608324672094620000778118527556342447244913253626281579334195374657642945083208236326267184786729938583789696789864866482424149867310571650520964781218781284694336211168076601794184692764972731371388742609668984787186379312164125946345668411005943519544664008859869553509146380420720031288983455084777653520488878991804155528603491898796870716218386860923937406334866244516526186392404987033874212019174974822221573379733007523172778158920641715764788740889482346390842168169380767008266096918274998716201529219501345586650967724389264667138818419371132054798745823899856916000083074999056591152786016696628049969380958863737397634620964416740467691840537906538008553584111289782823569197221567561638464559070170952873606036471895735481725103828754597996908374051934014948747961773770938171557234522226769482774639243126407104502833717282467173583218325936696396478052137133755046527951599782789426380241882608992537612977518989939337922470832740407019021229519759837627758796932264428748927148950852639346559469544707101105096893977662145857499528091472432711851386888865634055293373765256979029687704305628637188644557711261503198973583529897587695790602873155819476067666673535852000163400090751032553330140930516980853469579293024160511603017472302572065983531223647634817463296910625796415597545223593476295429846298197753226225680848313772699967136839561806363838227537645390604374724339984853877238714053764645153436556379745314631053372446775439163081645332907537449509662098963223425771942161728747220451946450315847199108101833396674452943007992066493140448374634432149517634598810223337778624710070467224658268027027160650585590716960094657173476684809589887165131322490617521655984905724920050772570799722423874175968720482922084326683353648093576125467304594497055915829573083767985652386198810687600317910679008717535444980936919256757936780806923862873326840873709617255601657466300881897753720364170606487475851974578049422124395877824162450045121642407879184682283699199754872124184581487091285681674478517281227599823936001622555769067639288353121664326431257187445153866904442677325735495784558532622437237031899144117730397738072129321475564838567061720815702095283307397010272166256901125608757992764818468763692297090965909082028315278595605717416951428863279083331125587796791306586710008825220219856805214406293527993268781511832539212162587805143752607974945246858586855727562717211766764562429141889183335949642275026960838508065024319425245471948948430788534815868379240936253281025014113685585548478254058744626605490031218120834982204081370399977141696578382487264822358492968966708694063410038082225051920923826298398443490791116196097630581787336932932334630331780672839131231638942570099103092798278678591200367754416568209701001161300778815665173672080275527867732077887826784534661729394747029100091003958426852491053962447272203698655695094539770440003247285741354109380734726656317845132639552412354454808021118152521387401228336763134299318925639587957498223587950622780436901633198906533822630566257264206008947252598969305416950071900360379535517457177836729368174826226488056749347334187484203136591089752725131605669943530970899356718983126125342441815245381264572722814050535801013155170381527040368655959843057731912797179831176339557601244673204684173882829423848078845610320589090508335349197592644863316838834574957132072126345594088931705843762609997289607747741317681624475039326346058694149038725487506991176036175088327508517252949597580465742449968436727215428756680199495922427206945510006897395153637489148241209704447161727060079259210539183846735248321761110803836196465955727998604120507895835148448832522127411904179983796469744301067257267241512834902989109126133602323821855344366404683582908826370127887538532238329446598545334266315031100722753273602170383403361880396759454886198488223162400128816675828762896526214380603909532864800419215216548493534986759859028109332532106111742344986774329951081171508048979673667125750974149584829676852519152176843215942215325256303761766359667009243881711921970085276804035554825687773688897006799556561189052023982353941798485989535025864137077246540362350034050317547313080273028036925454519444660610142011173245818951991671934084800195038799069968667514263717933418754200142095020885198446810348258385169418757613232463047541645182782605236977678248970589582691623473120037422504444344290009801705714122648405806843302861895425146752138097619205638631575183141683761834549793111636297271070362151056019853771723872965944184823672405417031972286299610681544082319526727457359128727977232286637915967134484242487642857375855405950037656837971545352020274191337570701494805863996325047467876145481192830111101965642092163932182390843903225768044469670119802494275207379608787196482372178592811022462709828187533196687790579187376178558617056698550127972988501827178497084416670248558011370318412571135465087632353978293396069643045254882981830774481904860205454437963186401629675791867091746612871599306656361385891887588358375415381192097981901896843874240732119839518889781297950383558309049867570273172873490203226758094924055450229396824965377804310715111815197653283709419601093559519497488483252998537806470975034103218659746974350953213092728739458658122073152216056204158698192443119672542736479991992617727442772145149129708478026466704144419810920740640737743772631642408390554801029142771960658919685484025399873644446264924548572531935270403635323701957752217062313022240178142936066170255257673927100086695639520651691446052075373784990203342654005736176714959914428444488377846332543155461908242039747603990432351835642557686952123610284983905001445206724833760143467855848488737069326612176351325976778197271402239885545277163047182991438633559847592640228259859785890881821680507097412960657649107882965519741318874742027782679639423517606559143096037088849434361071504989896404980969541194122681323376315234372158634842991939671891656894771797470770367169855529985092639316671172861172429804905206363202841878036098266060583378114648421374469073833704768819010778999556049779248610325562507815771813571462162345809962408796155923991966661226985245808038230058135116249626989126248799916610264237241200766731937500633039950641990655656096289228736532984986432691876835236455743045851347459259035550012815769458305754270145142144487786003447131296987169518289078822542313062763122989514702532549281913728960737922732838366097658511473280543037215545132116093069049481900600212820280717898607991152779278665443082041309469994802863292725219865276793328487041865846653933486212111072007624744120280929594008967310161542827436020121242553076071941759394538108358363550386384083072336873593518736277206018804306233865606692217830755234331101545928190854375674373212115389333860254304947047923606595041663231189595368240517547747717361922315877267816499780699898478461180609135435826647437719382246354685661232150340005756495203766858295741231691468347282146972088465617775738057605487593996775646885321222028809324375613778787180957469380387818353580185827785038386510072537398052800689664667709002241187237452050387546067307367250223366322775517360428389540179556539630856831411127035148659264985065923333143545979476861744404942595876866829210077807612705345663469270465077953707750264343500134007024666053320523217369200061834677848927884105543745952754889053585779270811078841270254359645111561260698065741707782633809991708312254093208705974257143357324267759395622001106525520787865335513186919441770684238971020716529101251469848667662766345566235500198918083834307267162290023801250370689654893809864503900117512828042071629969845968568367875328802252027669130693123794563705774546386864909109897994346945904413105430904430237251211444425791894893974931040877231014982169295534808624098634209456327736740289751159560792230046441237752421141025672010469026502715353861770906286611005098846216821801627940287635751596233649140666047395315831581378265117590547138158065912400242998915695693949176920686584805644762566771911433890482093111439113936051770033004033179538376106048237499060592329003438834506194204983652144964991202773313060313940822351419554011173750814285185348642710559154422338220239424250234078271696333848825344871402366011532899508382773352167757989667810328957791222567507306947886669286132383353996148765279941882104886318751378205844302050661809419126575698343156919510979867957890552053473360472862798267851055614797549646345621331655083504824863585311694066137117225441180699999583434999793304910304839656120779497330357387275080438464271629429258006008888120320227414213747472883816241305984523495264692980226533124941129195672610206838796407420085281814048003629099092883880847669364895816552586798068884642432397449721503358427588125678728771296568766698860211918299486264557200711350185635397831920416130253494277332194398699093261989151385438362835046458859552629559391742964413677756781060046661805900919863912227918153365945941725378275541413037548374322378630978383132979520952430863074361496534729182442904543771325302327050470291361606068034080129105481996600875080640030870528737315895259683539301933775541692383227287472008293966543993092190649639281282566789876509064644774522092430777002495513906202437963503557457642499162077895606030839149751109957536948362054593312266974174156174957705211729403553500994557601771835571593324476145513603991851680807978767615912722784945112044177213334718342508450731582338957920604304029844835954092933121957215462892968234993396727461667323387791758461251769039592203836956145112758861444482785890296932369363808524983138314933633209567088566819785875410627246268271792410620317162634270753898658058843607473454778745305470876023129455427704799357454126137583409894697887784046852709424691284611788493280901952614247400333072546073322255707683808999574687213606681748729168870313227491646606729133006537661328215723439779437844079346610627848435093497823900266363790284096761973456723189176720636231240250754011915935252451815186015934688709795254525013313611826893503230710931492588468097430793859726850448318965913583308114132572958396806263542913037270422227478379190297015301325168689693836344344527855662536123555328796253686340416432482396501161543282809434114278595761021662434858478255430687682844139559119151337473688935008637017638932075881074119705635873578644891267408061222745805020872737833163971087792131157465427012533351728471042203587753105953161033541395326026695255936240621607436309463089512288873736080113597100233566247374364857095518930360210068288232186048455992646664189180181738601527477884973657658514551571036134403701100023253045602036719895877984259172086295859090340680333220231188326517296840721014483428331079385354111712710945992530549095927387135029873839731248439434113712879157101749123799681066842596784441646975890233742251863740645068574523133796719933502221207379222906203828441386090064330402633537968260425469655893350132691126368383580501580483235335978177813738219484809658402769998820127487609774215700170912898834360860272342472314018003191051942635865072814416629485202231321123488259607762526464582957178984874744441377775850571123430234099521880190446320678156275823202987586513815156588604999988609779408238581168573422757251717403602102106154361004710467090638908477713755594061158681215648837173407563648124677206781192245648180023904903485077906107947552419269193729500480501821201224952473136957791828258879039652551520774910126831146126424955796429275855810100781089191946126566811140787482675803246843492775909116002812560381162665597127344686462223039876416049040248787518773237888938034057218099976384999431051047667573390361724197221634698904908713957960433678534249593451607048878648187795772379014784053795648178460801035144376457975267666882134094490006327209164906919339992108942508568479784523984809300055253125501894153021588719820130717920421051925984380306356048067511437227749945342214702852409124211577565709203047481575049438200637322564725433364916560549898823344949364022397370865243784199590980090093957216123989392556621761188825857065603907822002157608835247588771635964560395051962501828522110396439066241648460855441552394199613353274150265031637209586182329203422928020814801408835102128170617124073664218816310157012474355877571067044926572009043225221489617642105587260785795270294372330800099313168815169021141754901955478201776687461717594670545075385333602260701380622913836138409170685346999027074154353682880069933425099856367785157180636558543344457386258452959996983322350685821393858375822841516513433364221601309525299385706342958816391463702201398545531789767588523640462765084077878316483813578725315598717143592933461658684460328817806178520104825963686344409164957690140673933781331974357866792788572187415674330524822818629945863871532151301469150885415728146235601433637610907185102392882359481079384685815686751467697044691598361160936380777998701388812627593271347721466636228421834854618737513625841180623986408387039254868770428522207446289815755480439444401857688134404272629427574750144378957562971705424943746867085074140421908732015987665580483286313602312480299035811036758017693522219453308799161221713545490857899309930013303560360363202739581618222197292667899635454471795905356501773141540272775732701696601348808508695194787679516923486807389311367892476737716948881295620936241458962260953947848217149255626156258490881083623276904816409845233998957755180735530997997252266596941566481794757748512216687407914976124741249719218811430309516713303526915291444279726182377100448561750804183558741308457791891079962457388232371615152100394964604163116415503685700885892070273662030316675257615667256784852620686317809721846070170639004895754138021066771274953085099117542191509315190694119162990857026747244003396970387349638900988269537228720757144264009005049584583073887414067613438544795633501977487121268014894847819815285105883092341472918262191637772317587340664987028184301044150231135102849361145205257410317073915452359299484522828354962419103257547766364706830600907642953776574608115971471372346996244011803776580043609227965581918707076718863467260640166598617311648450475443543273833593071050519998859250777621931008909895107229366230161250385193955766306638350590897210813605998171284278784693161118835817633351093931752527797094301023795751688318035126470536079151577810558509976511548325858807892285665628457462398454379254269663917390287144383989043902499451233321403234871763788491602181098114803660267561318219848586710560639821175708062418711658783536927457770396301777921937495503507038735390631911421814560723887854710308218418168999173696957209212032639014641876911003958417421961738196602834181953416204768615894609648904784228656904666135086089135635429405048128334582560747381179314686859695783235142942394987942954369155470159000705360416170059374667728414724408839697124736247262119201690111933059758381903734555488960411007726654390847204161196250755400429540019099582099038638679371685268697194020452953328168002086605275312551555186777057940467515294922479293290131279610422443784992316399689680503650848130404429082640106013676924837725845751559468209284146731942207589151112764233198061554255396755824632368856796135083232258964039038116673748458666284906407403348131238116526003550542036566931950628454462867333363076295761667661514174981049158242914177945727821259103290744941265374928587160631559068251324473264894585411625626400387434472653351681991097650737759189109067164858787371417734561031874167576864424003340995612756670785236134580940540774648665536260511072138446837727640499886219196353471229660128410811123934123992269225783644978184619377410826159999325166125298069794473556751522655846277886696568512963930609179826931274389701209094009327679855936907842124693790447235874678567586730810300726334875294007534119466525031201035108354513763510015519615663490417181967057611662008030726602591922526641224408905079027592310701185631862267095729797426830529679135618483563201821266297832759787093493764000808382655636367284443014702821733885443158761674310757632674399565635616873222592263090034927947438120989725459008092131548978312160814920012202836294585250192523587884656876233110324704390089347048262779803286370243791501940306746955016200142119825627728110222423179558847942470556964077883884659682563631435823306414602076206346846690103224591698128394684746279681501425425586901009954248534517707848558510324031238585604214654472319506214810007516260208841206817628129830275099486237783368587128497448587289938958799654389778124195387743037710706183692910325027597274262778039240020321629166657774031474279006415844665046655577083226729436424301634535706566363039515498263214397832719403918835456068146285145222681174095930626666503528947579966102477312038143160485774056430118787840572180746391041864024350649670397514996386914798608123573515321981616342088993845957474528098846085190508335729731001232034916365053133114554098876987187750368932665133136252081696812769021562818624505991488322478817486297308163165544240572168625748640823851420486085355487696849574997035735288177113652339559226406770006583162260510026659881800480908063151408188450602690109536388083839936849837379385009156412519735350071919581253131261270283262949192723998541505104165298444839534320367557826661921471265381507373324165914699706193120723339562145533724862582474312333878422109094209991691904706622418555804877614648787648632861115891296896127689394064711850105471295426025664456471036979502162230860440638142698213871227365505068988478188558531494095019450955314433092295196133570222319599300474066337980603584160200178311619007413767816311212364609838213931911028847940010686336970752513877081538035040229507313220542314382465799228298053558660668411660974884479580568210737868181411238515612691595209249389541696748060349406420500948664458561507157932967154738518152573226438466269296162516691498776121754451003858231312655428942973786151273726839480935818947129327642944217371444918947005696013353322153777603283062744694062471660626322594437036334689446399784159216417193030954967435492773878978073779689478174319288479985413673655194741385887083306765284691059185388538879244293360403571817294035831762835155876731976904324307495559205409848444159915885191984892065286341177927409026481475953001936110648221640379962028278876543288075652417751012679530596370910724083676068051033354628738785500693384872301672069773841796353232682454822068006067168102181821841731248690212008264090989624136357995459568120903041742815116610743128554110710903412134928946859444704585995163137515459404628983400578090670524046219503080896008232181334036790183298957602240053836121483743951544770102030920730670146982073679669868215609813883684518900082936133107029242798857206840389404403798500684578628600610134176831230058013646862199598700074742696698945769252564451230058108932389474490100143055689836003390084065031743349203000471042520870794253120050304759341347482132793280439451593721430362802861632374569222644723485018192109260387225706208611916582428919064372535426956710507562542528770229870289019913140232747527728310202732612113488817795196167752694888774963332017328830609491339551134054868221858439054401390153890536794369617772389534839184482320735656556973621268530563669192902382014371804987716047792004666265519496303510003592479181769101393262618733934279272966994575631174404998978960170573614285283705101924446093244300786384776230173192221143327054477533330448045204345488260935992488394966946244441113684301968888683739961229926031951278754212387191734663813910882008520524322631221698977831581367693991857429573234066540942239678616307768234390522318010155311340627323869196913258717205303829171266799723311481466770405817416394358471556227338794286463617727251282097149794255598348628908100118276251525415751318967902085449993888298997850258758359451592990426165659453129270046769529117396292818041234731322969083511455889061511834046103150787533170900771385424024516028323458174162862933595155502148450483694678718621073897474821638706104799132542208522876520745958107517121053866285547780462763830659493777683678347549930254089353486370226099870443345367600548325228466761668073654646002419260799104670055083442028356282576341808740098286923882002582305380833362889712151784678704347869233818778409755250659324910434366809405327798007386568493039415823748137686082315351882171722666173672492918582529381495038902895618770814442504540383794363785597339707565352603967776701898054230812042063029701557445565487710375387227493345416384004482479649602423482107181957806807362900228499196883868611771145546996814995946878332859348328353868739064786363344047969524088553689629894285041904590524772844086833311410789859619457555047519390450391065484081731903136204370701091188827587702489913616364013303309987342274928738916008352732873530664267546341202390596061178393087340061461958695449384445013565184192677093242591041944493267480262949654508291737652647317979603457656876243299668148926483319414208093531776952677901308691207402559844089684653412031878784710925594534986515653726328191732578170585085917889421332232384018086585109562627212663094282586672879747650207248840970577190827137914468564117117419624900353169218530783914450313744274460511612908241671745376538784897703879706581521972156199446757549321578825405981087194565995033853739648961636331387480288452946215516259329191474098033945353499190307598356069698655103175828008364027195649858806928446014874013893700451714371129008362110033655847725549885215135157511290469267755119475595057707757982751438218978451348198290757480180021713964318944278787406732917227773876351486049829605176221132322341793356679843202158329861351968848153015345619798129353326000849615794898708946942701969396328006034993064992078864266578703190596557882884701024476671283031429265991115252766342190694620684578704165235378779575297958534819741968602144795631140874952038446237336140413620072278527542256039869231312733742911076615743166596144418467002478970208552565512858167428921605750883056862203575525963940517918548751811801758118053512747888464750264302676862311805365253624717154380699540463088723721359540738157944005487071913218348690923805506974857451067003760810374004701686028724999181848390417694879079811837449782161234592002265037852532443080189143574867516509236949731178404371263958190762841787647547102901465084595919514935704159761890825712160471981653430830654933248961412662281491039348503730134493882459658921863376185808851471092478881876354764790177890566891947928413953202853830191338419589113527231009890276731152030802994654849906825327215114705700911321450118195429326063749743568780769471637009463466662755448330084687174702970024853064952178375206790742610571171443594143626133417365095535246043523115322507069550267867083756868444289310837598808688273391170000617507272495361788421570195155793452620413248633531359025828269574585214046385043252379636798140244287709942390014439634404390384278631215871764769349696255546052382502431648819748790932930917649812380365063583141714314539836814223287245772230677818045930018974158211682506591945591639921966319330828066024922657470672951103564561810756147655009317911260029398330720910485606845945089638020447468461843068928492332449138437871376753698911547653902704159834106162817637957254504280645150397561783216300093137620384283647056697099920285711421894784902645095512191113244533666549365731447194408518561138117916091254096913477866877629765046673817866873975865616851981513678936634832665764860921139276468887418693912831313048181846901491800166608425505552687847044311710977672169103456161341160697021490857800120416352823068434306748738986186097215711850706754211027091195991363315682791456162291348277192915472198809356142308977354092032481907739680839861578351143202917189457200950672362388216688553835882191805196132671246010092329926349827520280317790402702716491511808491745677399043396911933775547539488019171478306864569998954447796538907631262654159403885513968099652037245679492574605469101946836562497688741696080568598044289429366208491873123570296483515501579429203306364886917771760428809524705018470999504913347962637588831991475035709582416261592765748440152116942123880980211291313954744345775276009106132966951182437650235448966475635688739170342191385544489552066626416271714583611881683785039266097004696529796305754871549095721213719336094210448592965948197381856304714477287325378367432412998297146613570342421561608321517461070348999569522882526235594006315721160618178688773293506056185437002971212898471294474163116244170152183136342967862696624924024345882739966969075145786222060117275370928737955650977152926620110407557734089233295339976651361901402259610221337705089724787087568583303945976581263694477378323437598158695185065677094695425116535845644900986680120325865157374489903694056447650097786005219302474327416974670317587616171697031469519433150120659383540871665891371393389797188943180195292465575629458219476934249412948762576706034129528883519579936979282011519859635216092030752215106085674573063211392272722649100554824444167737732680131799627093685084543671924094358551672772382863993217917890921741991901483052509237267921610190029509178918967480045864426714511818888320599669674492260079516797964487661519594840114695033960887266959689929286510737031052226738524911592611017060525950346848969506649009726200290179478023026002755490995659449366899683160674728810211846121278585564810684911391463459998028157979965937466039267231769281461586464393943686238931323031805107764931108362740958185153874871850030159902492535663727560575059206127504305423516239942581438320587265550182125233242689642028605068641688083580518605414730789054327646773895789093201323615329827399928035960611292583495255634606513704438330488468107738198057766847389489776163863032661470493137690203706469034464239308790133723575765191782770500751605016994757893605639627687020528793362006641920144928096932218115023341920941249055364286520904141131051303450498098749533100795171322453360064037221996965980920205096809149525347866285400016929297588730401411929373748524110376068724026187983029656287085451709358590091540164626946741171163660206600344799814049941374695517224835191345513435507694965655174172993518686839870901022573071483087037549881360007601703514201269489110923613354788932380293984473458836999967829593105994615091991318466127457441516626553025415464648281265274634876674213557011747216136518594052830181346895442445705645884751892840123765630468381300532253753548459119189855450066295125356949947182118960474006306432077445965345704092005707954407978039601528854971835378919479593635346772477627231577376234117815200405509869209986933115363829958052834262625676420417918276054419090985217503137274763254000597497803386732068123200079562855298535252773867039126891132232358280277156057835791948918134051819314161099358690427915980412871171974966829324264208612863931704337645339369286456217361592792844336067059092463250777359374982652278759283582341891280440626787263800599951190760369616156082011161123737244981078126472773249610167082474029963208002596850599497205696127056013746204540684605311813601276523834271944673867047935214980032017685867234915611076224149373198383413659400938339188140689026309817590620914228079952711573636636046427704287234032608250332108310279490220493716625096129691219364253938566093247260758634922876693106947729843399829592534248596670319778511886057249230317522558865496810453542433132739870796841188817935613397537721628931203642996507710510738374639743465626125647108595104139096693912908395038491102746186796827653664116154762863266193331219856846746850024163270287844761256999056766410346133171289363142752388758712287543103905619468663118131499553075406555492339404679722283371996965939063258120234749272315110948225455773594206022945150410995428267626944702920795605829821574622292307864915815519528777164824183202633041028871591543932252043568828553019554343923686265448938970284595805117556528586949415073736784579514125593901322531976166515192912670972229441276097584316737180504268643194139395144706695026642336293082966920355962508743146544078376074238152855425304026447711237810506421034743789217309663320467772017856609468585627102393203413358668627835836166736996553547503007315070935732297825012202550917060578699848771771532683097749767869958705194832391118515518444996441609141150886285440551451284674822622454115154887924892639043451492741542174257565919240221181949514085686878205437843590779632882388449263260412119829680414462634381486967555132102678338198883913032798287500186465302925759029583369924357328891052693173831296485082057929236525576541277892011843856369930474892784879678173677910681902008259566321248788948772502389040474999170001547414016388077637348906794174084923700499797887689611514926817149824027001624346843201144469203469491013432347048253451381441910209111381941686249162664073578817435121824873391433024691912711512193117715690576369511216249057205160861872495910297301577816426502361978309292380538372924076618482712717506255535947718327011160999180846747431185317180217555501900760635324281223296012367462550427223826237140007608825081003446414831999368317252301812893510506751534768217082863035975439738351576083201576015391562576113705575582322876045722246609721365224075920016412290706560094810445951143392191573557050836539411364211145410843965533421822534734757743455618982744307511129930294541288685362545059470943314852596871372342045821080926257739047347897636512942557419386091581892305659478444929141438612191162087637963061576874490275460021719641372483773402271978378232911833909403387860245182206608921755321158778868947838804898986628780901647797975533875583527480064728210265290324738211768179784709191474888411837990387393161774483390461547695094901098149875450469177729618168655914627641902667341704958925893325650208856669501718241081755797833011733646526478372065433967221581168386703846937302801001950452009933388817288971930424837445135497636388127971472188272581661137838388187557364556938665437800880501531917482779887851720588109965976171891523656700266761952702098999445740345068489623275087380080235764649867122771681542274082327904934574478444525898651241389991126386752228665662478622035207326952919254431712969886844369302093710180817996690703375564250697128681086020330557143168576749976935889263646280045844511578299468231906030899959442798399628537193726856681896226570545808197176262451601604977861230981023937938613357121083136453381628605475807375241536296928540054782619997111617000147808856059408063864265752510200759732688658315965636241067154099166092077856112405930826726884426667109384922364647216323770620672376935248655034855510768719547212987182880410621432575328594550053115077862614956438709194256462260879185678620165167812049119582304338035121700433735835302956381699470269129422910192390582230101370025306295793747998947399282709362460994409324587975507877563017690488613157917370009668753795896418468821149904817412587804590167555191698400339735756465153943007564323342955608609497907866634844034279005290924506034747775942170146807100035327718474423477430901653588889988567713666283276612193244718702058678718004468454632656899062348737362377438299316793143823664652663048449920630327797674956273602506504351632074047608532712415423940605512615130611866883650683083376818031568551474885788522944859387689962359158037727492413810047099781898653402739060266863881037567273620260962801043036355056087697377213078412532664655527158723745521565796315456311118169780521344435313505839247895046834041871921535012412529467056954423155480695970492595083251965092835476474999436911155824972353631901795711522714096746914412915833746501046630910989441270230150952050594691896205260477957967135385719271961505037747898085473276220296887805188996750388052812786104283609491565649589837545274568832517342395507929096820657995883251326493151451015748617642305050596610632298236266018858894269895276204032867678565081810339010995471645012335874641569001724528036961211882377499687847869408873302819492050239820250720003833469631065366480037146480219428346451881962923657285230759156836033130889061236311342581638683418627250734545596120497565999414576229370222031406987931198027293833366579810727860211305083824696123377188576924804440238037328686504336899685577982718311359920521496340368571950803365901551591274836863348205396969178093895782877472375316242742205516976390443175662180242818715393351440210021876195356885299927544943343293666190735326767121291894014144505118431151797908810701725322938613376482587488167122830327221933153917969867524419821667273881544012439868559883123202158425417770124453672165930384290517835534806137830369859466739629044172327564836605672222083599025451654793385915798822808391213237860765937400307120476547013148624827915049792139548754829588102425827381176488555574188089594788070610093768817735850609094551884319556976557127737300811533820986528681316309591902801022209503377052744391065480453398789378223341222220958111539393444450293419212012956330280153540035051872113587410880902549754799300168248929480761296020805036774303936425184125358296520085717610980388065793710173874031955594568829536404246329172301895936413774832959813845235341284941119862312581661063306048285391966530791338240642158397527966626570039755617394180496411380272545219450400142705153599961126970299950582608527584825431571213620193693596759613380248474088239734119308734262649671201825437825516627708250791479498095362132301679390167214725532563496845938926887704479311977845024561081996466893014403383811267867710180782597096383089574103002369889383891229189130161670323168809126168343119335872224467003003414025481696432856526204842056679086321744248414827466654135884401201132395359056879006394965327864828024344960500996602857693427348011856812373685632309499388752654163158410325085504762652626164929940315987389932873732905570580082923387689419891535553749000632384630598838440759429565612652189691427561250108489120976790179384597082426146850295133522355685722342025847650031265820013847542626631150993884922363817957352232929628472578570539130090888385256500762200386036116165205532147100732410616981388859762168595704504735639873974466075929341707560445250964006063680689746073361948348534875333838632752716773947713468414064301687944678218469900276927415025691552491039930602018648407070785806369204539439090363397269228405216629811043013325985737681438518033253898472546221894275279536009206382439188003282867797678190985821530216587147689810002781439253381891204478587711490622033821101060128867131052894340345063920072739065330399804922145480732255540213311875865482248524774416444849628740819758590220533512382928362254265774599730507870916183636413766707850494503249429052653380423109129833946638288165032037739946385950320558625353517876501211343647741659071402709590866663660120565528797781990086896923629532585272282267865135996781122519530721288393525854302021181694584918019076314918212041752979204778515603159407655331409790486087047266194419629707476855483053390252512963065701206097559498790504372192316635739945356409190334748806021065703104246191579872167815475952697362521610986097419906971980442739716927811512356607500699368235757106760096450080522081940191990245277802869887185555827536296299696781684829136598672232802262187779622026058984217210056039477973335878100974916755358001595579639056563744146825171832698761455447438105981471944609061820338166387120461728101630824720865566281001411875079145514365570530820327528919470766866169014332671710196702972931855096414909772957393760470870478091916035407793267595783344550798981100018969754075064487734835994611322703218824929325852319128075316186662586883033585609478959217526588593293037214996173304165668633797871607730936266133612539675535418929378568577261762911428008191812391635536612906811812491350369891619443997976384697271522337906898649469512468579613144495378521748464751888320024298084639265773116012747413732167227232952435787010044488732671105201460231174121587402801345317370899937484745254651770694227959912751110797838398430503243257745462140535473713274904960645251675166388923662181349653481035498175327756580299060500425992704060194812755817501259233104578285770669049710824876603183041732640027941163299350700859867682716226887994243616290655760236107579940291163894846899262614425922332796511101108082643680409012316091366118921515914005844270791142482222003653911972595594202839239236117298180055652712834881668595241036954317121083554928959156480483788661576899391557328898086382132417233537879825833395179191587804051641168011371470734067286592880319321464736112306308587930132721449072486383800683233097120551134202974628158898024614251849142235247262556153433976112973369500874010583003585215175458103561165347205428062035057764225096077909378050679589070538636927582916655077643142194869750385502962601701041418786131459022886781807831462662851685849968606690754077076127630303420838117056918454834359918601766837471041809590210825429340868597338289857713853666145832116278027138857201682126746432078346437978611841792526545845518002000880361273900142402843747116902294490909030143172597481095180555847701571206631182586356796612678995247461794819416085128833323593497377012118684320183052831825183273108705004505790338185510182788985602483955361654854984679109941586789008784273040454048538168251091627864233390789501210107912041265741250964741415424400267941063685799965305527927196888122257937410038245287264413328391277304491233143874909413743499791905119837363386737950961843546119536622911774512240564263067855316449855780229564341118050519344458492601270457011947657692083069369904136967259648832766791877590570128517772142644582577397701899757947338403258834393203651771384919029036328014397901964522156636515643482820301977233662511040964284913470903722930942479580288531314152458246507492145294502761734584186253239738482988225657514943841247157482317906388544141614389384455397111810041457318784581316070061316565257012819232084524501122076665532576740799919523796333504361490028040685081550048890225700833135769926377221572296445657525592927533842685267982296574249312266125034204416737335509233724947510108071000945608930490375968125093009654416973696374781101232361122622662042266106781586835962974402089641858431915229817563067185157366757892517663187088280086581690411691274646139509384493900436782697758759098134697599729366317430786767402131305082378819863582713077438597841050142146183942200578126467260797341318897616331355964318774960233161364349257503514958542002627988416180767420322836571626402562188063723961911460659840105549729609184026437232385221806354357436067683574802558138666667919465928170810150274579537889742199060761188172511426062962960291834979265038473489169603344901504801914744862904307102342033459370784977325357625101539011924938090272696945287975336362082930833477717666854949969548725208065845980501905896643612249591641536511173294291750952944829195312868409208366090081617557385395260048298871805617508540801042862008502825822255622900694660352095888693097391209011259290431722545552153632663032852479163885840954611447927880168991480104035736449368137174741553054285346217958246500629186899062024039267181775491768196361088110940934566910662251975097083602667995347791428617771750413057243656594015201767017322657022944990199751497351379890476568485396546941835505860210146563653370256614841670976196700160936305645062619809143565525930873104452238033535223565054345291687725528953619731876421866101728917127104940275775958976674972840036815320207168713675204185547266940648969358745208019728059626069059244062085935814687593610642667684583603304723898854047448110378754503001783800871124249477787120991177330783265084793039139932649400906912639607448325353432378003561206097491350844454050113273018196410328994865222926059772197956319091571783542671366538730117727742015632010100932227288239599041361523818234200887220095707799982821995313020321835469095943624260874913076715307052013856707341387304336650740887748621742715238475375034702710214791019950147485123984634460833826927675880592052560078237841057248241137296908680002749919462174751955954074475962902664898048006643513326370289465792741003628928966815800944133934467007454227814816411201082705264764864877939987481088510692913686365637661725612212988562711495018121400846900834355939930615423541980680279983366107947726951793345385101722220240512817287531770828865594145801731740438123717253965931381389632220833392127277511784929148935415982649360120013015159218116755726582963461991956250942248911551960365090703019998661498644651403994163141382734951415547863619587724173188167572889950080010946112090604686700676969041328097770939534658792134270767439123219529319863166917861407098619514974704733741294146478479788504200316824026646205026076441628123609319155329250363991940068243401000221567373906916149869045063816404757281597161265064724087892986655712653781071107008297541608409699408098642404396954670541488240699076634070215630909049581760716424749678959261836915904178760423231596465058431755500911044085397697266413056586835724836632504911074085024812711002046494931854315336268899123006668637395872503053839178677270596253482709355017231885171147930966689504997463953700755517605146303959455179013305783658264212541099840185036196481960538562904495984187854393393758182715654891279412446174421888624431662183337251306635058018649971661715585032385069503565860303316095562958613950396019577622137565355018374145442467166167545458797028376636006373552813998933860808305822817997680001982837704772171006448087798169001448974444438527565679215726694469599989351812206668404570154388956086801115154475405348642969852816436766282830036638013433090822607032576317205617030596902822392750049743358204861916348584549781897601587540267232741307989811654937080941711554028664639143633926623434055403728085472197780311155556589877515287714880778198657102886738434448758273319702062164476017320851425318060660712013337341085574361597033834028872627524079190437221691146626287860218507255446330990571480880844722224695493755751275171583093897591801282584688274694855940729062320191863508904645149952581753436287261896543571193790517299464550179463182246877173389215207575799620142548837439148624502233695815954610879003981874147632439274053668245866039233104903711032890870965585285405679877149819555131892843088787772964917972833927366044641466107956914869652003160556845932751367277703270051950464938969635005722707817410221386718838895605824627161566717857415137744442200990165125534418844752423381830178266560381814217580488757525692700292055116350400804746834878437630436244100731229003855830409962573255075383025235774978264315379073009564489540723903120148390880710704921461647582382145424859256540071848283730656418979838797205557871237227424951126329566641559800252757567964053861296157813136435239206331176927513645135189067617250148983449113185166270112499853990555104689559286012496877211259309780172959472860592398461398403633722220562743873747339465356440543228389763128516164261978860111498598563294427302720363941973828124419844204178281096891655415776147715423034988105994899526121395111073877874611572318454585664861670765958465795511146432664837085926648118237388022067401269261990576691653016412031371057578848656969592253941031842743619009069123100757318932723673305983572164744032698953605890229968437075572285706032924241817929679150324318502012776550021739677177472594437750612607815613037996044664410943936767511845948823239189819132427537962901251097179554742938228704396221336426208818808835121000624514364347428429717310221183338480430840399665535502281748872093919424088670368423844356884850099781611006694691939141095831591450163503444092578306714579140205834822532627182990617976706675780138050711514432257595620518162886928150574449177381796765496123652760580648992765229481636768961130640299230493241313666539424779013231370473277945416141128346357080336404119760594054060861813594170563700303671204391810412776051807818459484938157040225958871895069002643513602050955463926056302022802992156551655449919882982792198338354928878107303223215782486766793415372121310270462258146216385920160496274939488443945413425640500335758067598481654782516002481206248420568999255397075791793399695416377651309796507664498309014535676290250005329676777595474965506222831622686382888011032945138662596670508835464248136609831206810187366392278958469268341557107063201720073843827896328885397396800423916263021482217002361957019142806737892219178501309400915867660468884030934048495618636402573807302813376215009973048617430784935906240546397250856994688912921005121283732227906685427356423439462464366509117057695247076631013527055836599726563580827905441913564118309385614122760320351041097395106644827649259997820075254386933358603138561262218698093300565748062544667354503656676622029358665489007411322631573405772711653043829049545989674069752897730641223045848522846530809280919169527351812605294364553618535174462614014848022551967031902853964688553792466314648154558645097255705175637880167480618574927430306941405627278493672343041032932119564939355253148705960844119108323352236332153174590038626160328763503514790703034035380605196717239024900430198368450678509952799135688344068902475787281650759413426523743946587229753003870304123095789662474972953562128886332928613325385105731492808744057153076216961796740466002529296841309998750727052906413311736890769656157972668013285346968830498687244992717854955986745328523679676440488556453172011125973596692036656746148876617425979230732381422441822966448083325695075810353048137467948371271656566432962772360200843800401104410638653906894542720729318321380390513086812279490619662417213829272640401877652655627054356031710268142856886219403987192436923671730645891124383047455408267876304532475410794805321827344114512643093393107316813407236827639886457204884573413894933303249857213504387745431125855357302123648623465534346454185759866867717807652553061172370046468226548839680976111868513644414617409402697444119021924483715879337438700976039787565099981987588997610106417657984953602237085224815099910746310120895697156466383191803296879227562464032551657454519989230924890687956721899611053506925197236368244152973017488053391283901439394892744502903943075557677141121865418809976018778164757129073679063681346020848391650279526376423150028808887051538834304576279661481863185951643813146633188149436218303485485231132784945387569646216092266303343106858461636224270004916374970812151688445093551312772451034974312697072946447418982161162261620168559419490903369383627401947818553399868266953805079244741818077975550062817852061962308521836603455181416849175115257918959151247778968383917896281263065993034829751678950468154051701929701800190716649665270146888565605987805240264197772533197075936706587573697679304915248514330967446610080870673823307989939121725856001560592773562212508683530771330664880827627761236589441609428457464990633445060801127883283685140421986915069766563454641924684224897938800016568332195982923596362307199765758953065608008629425512437222112669762480747553362993183145440278138930795939007399675835289413956503443985049871339390874691647616402923235624342873798416371757477788637061792508734244167910748808378003057671048078365689273677596623038218684040099011619943206127276184607803385995161879008980124318172475963192630534145849542929560052676794848916594022184700517591248934306665644435454246160595852375624982842107400674573157281618897997361202699801344926739126187147917160159814133213155692231849716883777880014787466223365350174984622144523530320081174693279510346506733038401380811328316715553016119069505908390205001405924695632746496915791980219029235719631087389574078333013735735632207821190490036420445000658420097354430680217708071016186789595574387759888813380324254921695784441664187202574537368616086562948821105985465683084157064953062121176267345455286125884552385461613376086318363984961351039765893497855747957965898163990353269636445821670780665236388045736739728247938857083541629493126458271420545090661163107742428921733421050221644773131600579863785647948915898047572539120829028525805548500648458428682351680606190213764374379460658512010554945309701158056803909321009139812045605957763887687726623830194609900979606552331701730273775475244126151650614118874832587510270535212210254981814984096274491624982989658838897406814761757459627172610166938294567652319524509422210173704338086921242034490648116703050068155112042319348360689035520909450487568515101329044156699198359695252701081273392932311956778885520574299821991374208997816209268024883649482104649084328447140343565398124711816635257015427699127843067489429708719659386131727759143683874939631072522333095131898153099451551457673646940538198720015994904417181236354783839211620879530083361396639753615124158813319997465982475371498581355288346520873195298683604287507986119431487228762534885099178376563696444846639809755997005625743470794666150644296457291175571541889090913406058516045060432988154217395025633074513176565364232441462001419413821238185782649399779401751126353624204874645952376405925424239943008553223345132889731078106351812008691416115689933586084000147908219448970812812034179058594058473196515978254625599710042484344858330540474326811489486713022354903307109444588613504019423545376655113330230593668766692748585326906502690840513481377407794123131807211733533091236706321365587932017867679980986869403624019807705230422566176339698653616982623009423743839729877473713507012038423031159637649363904447569779050663358636837663903542102635194616954313240554311765175127929102425683992249495323703910863929763443636053139721342674940629489639449033188151348022060278183918288711829779261801210900259760599572200620762109692099760182460920007919596194528487913485524422442206781161405509795108666447449129908515351376753396223994488200088722313788169192029367277252079205334412453117006648556416745474473170797551527986039109038102987949632286350023415444312208024272760811056579590214164491424337403699453533686666481824971129296610516112152609163540628153319332015203498999615084031443133194342967050896802952225750205906271004253559589414747451932924392608057433108472157150570024415945959677472031546361429856315999438871501992005139283640176267364474373603299862070876839546185957133600351875715227515181498090360032245369376987422021735379583679599254114477612974675463034024925403816219716349934780579782811185569094112380429175423650974857739279163496339169514046724969187745327501099158934347850733627419893324426626889050512850278117426632081043056808636360307413390049860689959494158491507635070941538343305596069950640968649373855409071449187822925385783035773281462407735433018370401531732868479776972031031925819531079058894669594722636908132971016120145433156145250670004782056848994574213886473309905921891528854199378345169170618725744798828261058216981000255330207079335432453662789445215648514160055550322912014068514573881855925402979558182170752562864441052357515689221698069694855539677603384666950852666829330134014901435734302967637875295838456293688408601243425214282915188848726571792383725538323914943303158253315652345735376402685010082568783071734734751457118971133012311491078297947423129762739096815272552589723037049440369793639031716881344736434660470623169706881283865304220353131573451019506397770210605845601791626744196759567371487399085427937386181333604093541451149580572837678635864108682514060463277363320311189475740962493238553565838358019712864575496739515669690766726923620026541967470985187864912572279808860117672320883990096382203234423484709316912510136477255955097841102195789409025130736030438132876310151127123368288577008132625152045269942115758907762000526675372033860810190632617331696047877797938996785984041529904206455035931818054719003190921727391288533848468802691288375080398693682408765796996298545320684482633948170770987004489496139251535813007007407359988956163897338402364584678981955919805205077931679550623188635181879940791488884825465422051485104354186074474562272591077303667403432352861057079274015864316708272421884726358514136612981818481840820281663856956106356507041667105697471527258228514403260875029852828731953057065214391095588353138295380257426148272876380682211352365042747807382977382877878693512530668028014351015796964926213445055369032457833860386119495777471572640401272089821108938902673480918445361507427956502702697513780121771903274176922715120822432726979303142372766794296632925981038837692658879991410237038290232109501138303859872351434366452730617362469757316166632791973951554737971467147929294911805961531647561193862948325140140173495836154464817535259225239360120253377405271743737285740012427518796431006534744077996266448379412805843434270733671008123911706779350631527614752778318084272755800690371554546742404137269524181709767514626729120113557305859336325038513954187781007135608028661785147472669115333977572094647179404054097626490453500802324314869449265975346817078950861799464154421490742606271106674519806687696760554573400899453401484432068411769139602500978252421078526147364996830707022086351388448185455848661425752237913853162378258472509631057823129249510363249228743808153249077389387947466577627729401127779962625433675820369464372732288433365657729041641960328258717227752575130519429612006707835817731471520630265802170047839271364827029616458928548437258729017925435273264313929115420925745976730819135384283998827569278213510485505858066179369733697528247162834946335357557966771856390321794683844478057655620660986418244292115265557456875707418860582411079111613227432585819719626071590148612053933879873074995567771370535354471264635197475077804891299304615357445322154176390211508496530799415194499573499579131695602640830708168529814660800882029729799205033120649766707453692027883987060887521619226709664466439640269096777644731182050908086683137228836050874392338692366563061689213372345924500979475030884685087800017023018739199281321708856243610935216291068471879916618795963780769586844086113486564025400249931022247436767271476625006357970840350922494611888651194289220024784877377880306460555606091612249278361580176559947190361611475022525296615744252019876814163432368594156298993234672738304445242744875423349977699420949164616612788093532408861526788859803468302554858140362210032284652649589342425842677163976999686278518955240429429768393044151058288449521095693009420049596993974060465867551612398771025271199499089396069420090604112902480607097235016835842556917927958554178295890593204681239907750669169725054305863198429373387168617932292267124640048461751812225337592755785994036270995780611685487925218368699094963870157772456586497205369879065675626462318632194259198954503215560695793544650959844092312206979333850818520744629014377077906781433430422495742957121390278955050106808678194195566955026316158636082876014204788760932969546214378026667748017236747259983897424891158445776296421950997252420786264244956048532141030572197645294907540728338678954530204009016092291016476668875577081410748138146682200868409935374000689277800829502709790958577137541593001981403099581077644394697687331855095309481187655388471987372448966636438296890422989019114016559288191040568937652638983694581174221693993704516158515867962672230913763607001697050506461632542554772907186865573736813110977045634858412514213481991098510282519294784894164187028918510120023674194218051998434269520425466709687864787899366519738875686854352393403878989464249485055761314052367104487994340766935503810595051364124107915298156268996249413124642321470398182216946508031592996831764696193261604985799247519495984143976940966616660238286011661407918072583469218384914068053076977531224906464705637355400359032134035301647164334283045458173846751751868982824000061236953944817141917310923306034326854565357135712162420409066762242472843414944542556907016325266218746668379973289012133636581606620616323669204268041668868580795592591287328609657063258348760983529164484136602311354627897011083274126554151266631451408471167564335807828703467567295833642659532555168870894966291798831248981764889006413456198653190233604126474009884578039253386754477789622088722785806840906907307327964047108039178403988944921644789800415223856634793148782926047127259016364249068640649682751634019201583983791183715087399129497106742602367455280559911479765406848899397190620137501135479465618890212809221785885367625837473524510151650017500801786213210240103490424548626876092804168297896541331932325498803771626214548980224734362150800541735893816440368122464691984414212359975938889834689292686791047127717262368590549260277463072578481568728576258469186152082594175890786034689098773871678764154638196731130592414684935406143484222308788709415109574299635922059287689499707685947854060018704761307474395381425486937121042768758896977713680624127199415764109818495825949004635457987080657124662619709720823745592045202496370480060499654411443272839759836396748369677047616584220421063651229932512112564163313265828086572944768059454292691654430206002621120554333210822926489404352587781257869757576105554165559189430218960586787205321961903231166349374401066076033711802156399669653260824205142084806334241760883504833326685888023676524296317789154225419141051144678330832450546363517639846662724995471222584588268413778483669190140420147078294917081819781739979258841350181960461474681332573868934640335227303014688745003380576491265929217278895150873518662118232472164548139240791811160642431414399892595413512633222590541954606432714067602248216381848739232856244793991807010443333490618086459050085086144288407581040280961887066000947778156494341119290186341228158767772372141896926742499155741940448908649566414039036962469236443982361742435924669111948302256900928858154617020508255466173590975254984554752714547190205817343727496005233222986196921264986553044294104550512816459351507317645086273977802733103969948470830906640890055350968978629600732804937705333303262880979034744626458630798018601304328642826436753675033186098001231273603250462837026262140620679665778901163847834697452717028649346183768258890439123677128462713625432073096689623945475915807444582160323617428315055068019895174370398502809324976575620034147297189426435045864296127987914263847588998494763872104995422738499419522145040150848430268407523249547639295523303945178617282065562316313489138800479159301049267132440280654146179910570175723409474135106156214072692324848630712186033037656336101025350473566748879475244839706652881871873910839821032598819542555808905237810979669264524595479813905776173393932150775917862831991565148534132546333096279545772645287454374317269259348087325202078655582927516870723979571538692611162966614060810551437505823041804469213887742524572511193766068600461893941090408516998772804712174681183716389855653096031787187902382325441836105418068796925240942100412492134895664075459102751270640468216830160910149662963724658772460280515453121129433243193812155044157877862792167828531621398150074702327993410882774563566312857423530651973643872859388332173296487456913666745944723716486893840930212424077915515174634401593725519111458994445858774022544561158698462923263216759619992649887414258743675118864755550225629629754354074271963943441719490446626095251636827233930376315132309529742127071274008637058331267175935750398990270148132027933998967122360765404809768502938629222946359738943193124782736722716316913097440576980288935356774613881072386570731559472167621450758977154305516293701735540421585168143250402762607340300832068194461229356731875747907739420456408777159674054372793392758049673857566004615585131970134599929131384473235912464944975720063332818092365711718293813743498634130353355876963800481473623074395809564390028206667170643323258127131079554144529956336630226862000470621127888139725458710935124283953327373385482107407817443560173316240623514044798256182258998136989326417818620487827003512536888983664360790391371991795703655938771273825954297089873732064426060760014563163240712806203742316133099453848211593488873611826965019009015116403072703407788256602841652897129071940974943270093172423395573665388260527636929002281211519854067309372842178207379308132201527238343231488939255493250548759308522477734872652695539082404499664100810808609240092680178776197985180867628800523420102950726592595486990823769340852026922217121566333561371929670642760731882433047584393546603175214567888592828193347323351532287181696485889122913344135590198202673362640007675548823266895953390929480293170394050288652990915025566170226885638708283343828727837707103083301477740444522678820348970303748640094994717464808268903274994091580614832390835466754836719207973894820216806998204045590251332150114582049540419572461780565324710324921228953815808284853446836380328955902816727805835357025470471497380423705720700302012765820086337040751947026122506058994560905087487115812089777773505078509861554573761745978082158199358771701939910196188040972643772992605918117136273916348030325647261787706312635193507001079525736197683706036238814384164734788428564052530391380758018866498126044891264659519699951976802844208379151388151631693814051738744646365347678685892290598337360300803298760042907690264635250375002980337682274700538611636632488326885693117180758986058757281708717663962490524677492039325379415813564418875766411558167844485531371000329437982218347574021344897208734510531632974141604527386334624477621029007308631339204939340381304465550565875306372363699691860653300259695770201731454178066106609148547920879390560929360857741658230743342475673053521078595427583303399897835629012290518291729961652649349388799505143544859812969185751270038694517652828510761959133712949585602513045606051131312585958599333167686983805357422106250295474868680876685378001354739584719259798111117226708104514761940450125062010946805750982872406263973231880362823485977220596682937682048349537240562935606190220601749387121294482246368659702308519582131201397408429340090582868024209627153362679121505986532408780690319604400307936482734937310557423842090903531696510958414504963990827593348205020711376669380219570874307163094893491455089558669325871022717830738087197900607973673303624205935668430511112172549460602787747439222474053240089373563575692474955182613675108428073264833682090102418295076538852248124072369981092259955174274021282630066284628665459456502900633077581881922884569542697477992446718644251375239917952055309863349996847950802361188515942896376147867809806630250394667444945646957947548933341055934715302311944954999400931640899250799103025092797357154365099917856391929564674890436589212338765428900381429671741045286366575371788225485769880735176873263322885215042024117835403330761906057456512105697837142452087845117699297271927694733821335881127707712895644154698363359013322396425958841862228025535872999218052321040203071321646514344137553948652513333869303905244585200224946549773317270580417537311657451615309702056449378715331165811713111832992645230549454526944877747130619149775442379613882462593255306743801648977381556185829961506566242143040694964573954563361514482297778564131251615917445733992605977849170067565237211762270714467881543905800646980381904646749291321884002769818232830196914600956309194755550742507704420505073605466148693096108576389820336806865144907993375174148612698985271139528300958706621471205733479412016774339931355619492102366505260189309260419401241664415317785763018909005663678058858264934817471545234590554785281821359700699427242384425263761938060937103828216411688883660935193059850225245927583401880435174968161576464736193581578518714085823193760293179937416362099596290912373953675386889503644944098174241630002348208489980150743099765060907422654825665555372481957313962694578256256862873000087909404143933167980790809379355526599928860687273358642401939137854635625277525023898690104729149080898615126381842781052703096764918186492600443831372967853006467197650673418075153656483642983820882950454892337567441924105434954183530568972482897980837465635938945014150520769384303993299391178437692728126605226206809318289094068018814442078072758435587880851589241172753220128145729456116200366146304922730396377494933751060174777002249039601340987730390123609551525906618723249374680553160939910239095061795278981398006145181945583912930580139015534217984745025871476607116983645266228953996923112760515557772648550443074591278102078398332303833043149630838263054270457412863608788066804167354569976608943113272562148599930041245031087836728103973844021708793732473891205736613536348597788496550991682946123021436865185767909381492434983957217267342774954226690048377319110366738867324468086593990839433333295339154060396488725396877412119747873623799739423428603158555176650716997789578131083362634668709693715716195818069531867919966559647174611381717294743941493269983267321786463399435991500763652381866602396996679704197480846448178423416782628351302928414725609385734025869941349290084472528220336481199636411865056744054918665449437355171417226979448592284662515315838458871283168339791290262826688934389964245413639235739682160068251553472261315019191755664793663490297399870782933035285613499045562313527789973987014090502273883475819498036553041843553314632690238566383630618007818023293825162827475715025356095838439924836861951619814686404653419872287704025316999682260504663145598007115854962165063263673819147423182985565066318064515720544237207864288879631344277652644741043966873235196996317051050737825898359353070588927102248292024225174097383766695067216643709407689574009763617474904884140471202710625602886529506493050631831443151653300531974132201300425778733083895781176495722439540072404645799153298048603264928966309079709487141850520717359944387325458431226870349960376940124492924974023447967565750086615093420923007437276916417974568791514634009633461934466468004447894788393519880271124443271545780433540818428654847239295371899764369257755273410790572541973658155636455005928837177727105806458589752710579991961212969168097630114076445719567271014376330011036690972313652741610956223321737059091198244934810105189595539510917275270171489490539687424186675961886093467830915456257556492696454961474271185690812644965157765676748881025438290442982544584652607076072163813064611057692902480439065589966754481622957759544582721293885578751021709174261712967159416339504603626748580580483368121989819767666372121926782989066120233926436347447517467558855309646641135625685413090122739288928617492025909945539489994570832297554154962054692424007270007255231321202988844520089862780096729410693610614199737204716242755423974898955360603308879701622422465391169793633451576006248733797477839533947223538489110971879934096668285879396485217147135344381342658917320641891585269760340637410240216612085628653807133753964802689301586659078561613139731966136558177843603290335714338666188931275386083701033191393445656728624593968294663288886610598641007570020771677435263247666012352178243971657432651383873581057295305530021203834711172180066322263592089059525988316670578984962759452438633299640633966449594290341781381118009013928786764597084830345691392767400263749148594527685115447295843021555190449258561632178765134507945848651633369448273101822858002815084904252891944761332891091611244951071145728932679880511312833815254633438577739072454310317238378874901522521294825714431089094645162915692512313579268972911867350100942601233522930014373664029190013049672922528433417324890015306614887364962872891641524781704011205967879545246230674984960928834098625637413751872605473513658302977569667063792043828951904466355722288666999003810535759191091753209835446658853033067823604918393366345596879962038840480829163390964529770339694476920920044413514317185949496814088042420481373622066191509857342139612870398297740419991660600490920985672884839973469708142302354148136158688913922776722699101884880461557560321432374604297191248222328376720259728989587770586862513874325279081592483140883535206442084169716704202814410698500081738076758596382473153195541157894124947490402666777244651808386866139327827732434188270095524314077076982143982117758161193081049842668095506292806015256919273175660072040299469934901154745924992271964136723152534130163421281081892626727808415904968822367082433170500958645529431128844691646875718576044777632622388430550097597833873840489087317373966171500654400207460981036145782668591814942203821680513303974635979211752956518151054677634336692996705123910041351602353395678313323233523366115097727229018179939663403396781909733817553375590012705058061031469184843875930232365788322262316916549123457415109137969689418592847303435266955252310065858785757473265710558748194703689075718464844332112219083295718450610104579958358064123035151192913121340307053280218536222031029680793190591624661595571848908055813529920204514637353041452871876529101230185370875035994154469593460400198013433567749964183395248378061758902805953272251112367832715735299390036970093120316603315831339440238612776428220932703038439126111154781171442310703634323514360254847160019750722312139890001474526882432203010799322372076730091934227102805003447363121671683048929772789373587372424841715575594869295286246718209753989135686562026659328352470386543551134949112872706412003981597750442984696956835816105150907910100119894782906183218603756871970703665560841717607930808047377028775132469493215637186911020757917445554135636435987966112278488209950376566849393393722901910828387002362149110943438015889993515901436234066096423955221171826059504480973042087930190655214643926935018568711941383534100888021028554956126764900157628591455304287563226909137655159518245324521559767442865057910055618389420686001397699083413286395550550967835943193959324530553486493276989510270004579300418172670292960063895540576643202399246699314921938662351246303365689641154137158838603351269108894855025630529798495024829923986557625384122362370203132137526081215438811875679745942717204835085659487180294898191083069257662644706229581552657561529569945766931641675780848963811633237528008931650400387103521764991114882132235239525068246490824588577220626833120881321727806449401722255795083885039293232773476509875600580030744853994957680579165943884827300778231559208522543362375078798839444874390060758260005207819040228052082779627195168366447594111600271615578792816727552735004393867878407053568969038761220189471111702640030369200495868186937104759499439624696463787035597064760333936249878840594980962309873183454354289321451259024805008434095578226791161329496948863365958669437171605579929014661670411004683677013462753608880010713682129636734995862641029707291810996286871143714090705074253480634365101733713870403411341750318240763233538179148414283693283783352446470483257520477203329038525968549964124498586996669120860735903037104026359740528589603695313706751762902733931470284670948433469567269515812313895610874116498730148293920696997183465375672578845982425348512139668576713111821221699164972535343781414090229801342805514507173057292835300422542621917745324414215610312243707451607411958112245633622633369957068570161670583728426178112183780043538472218373490008907554744118751200615212298057165823174332450159377261954816528404407420729623358059966555056782689885926125400010735581959481557658633929375895800734968633373824963092559352259475179038046008735686418727409593530906616985965466849462412095546959812210448003765785631569229567205705824869427061651075000873623373909125435647161216317930683820290065069002901625655680902254646117022538662526779631760922179997503920637588521598490217228810771404430421329350777703409464750889590073730172771393425686994778928897286302790056792269358332275271160723570341540651374686624802287684430108945665447895233664791864737112706650465129003437673410935015310170743036646251359214198008137804975559070391829789179769398296410913644856828957794629117926471321369351429195640377661037013375851036713277110528743629580762030358070469357121127196207818714868695704661544106213731320349351688931625548612625007695252733162235551466530629642180611644595710099469329389198747209361949080698528989776319259300530606217563664981667057292273145339996493032456299841385495415821197399822837704391345804591698884119926862832254034988181517145187565644027364503436534555348178069535967708374838022683912543477632639101137457758782809921830955909894576300923022486314503766960924516138044453292193585610545562071440471556598728039056454179569195831947535959406582617114162881105560091082860993187876459036839242780915833111195473288936411647667309042401750256319146620864568765905056961782616568428359874168172413487664786729883565854645619520123515951711890645111077389937518497048617443331848030788692648645605146469504371273489268388957310245273660224824392227020114894240763886926961120290177863445953332759211753507940437271300581496494368795187751019776698304119903186613460676822555611433314749508830340253894781383317223515605289439637659970886337473077095513993925714988167231780099825003845498547191510413393683864871847437260078484938689374655497830022662640717115555749769394616055536905715576274518186445799212816228476067535431979680384107009023319359010449103639987748637259752710373983942136647793345839770952149990941325589058808042393154613423828762319011291309934849468142389480698671916978254908699288133833971527398239388184571526888195330093814674775621394393130143624100427617571082150991445680348482694605251621181482137559934936970741736725126652486931137344157138193965277326952373292352835507557356061271275116218145003122258010814477662795912573339556785161348159037412450961310546105143091069037316403043830500954521915294320700824594742065424995780537383174918422315432175463625008173266395531701293171543714070747402230415375779712375453951015499291774780078301140374800691653965925860932716773338030593195748602033902970894163129579234791666057837474539150035306869874827621521985249372843961962625590324888857600402262233463063008319921333291580174631128622274678992209126412187628638487417742244408170220314397942447987651715614812103633376690202797268517753127051515842946008955708865586873153603394862580069754667605604018041393635725748238400592249590474795522661657626145952644469126203943764800899466396168194694328541988490325958772259774639019118767262595240088739051702562691691742436480283382094100650225077078674260218696607557253322555156057608045172298210282173103631914953994555354109468230350366581423400730727713296792417737436390721203625965096698320249878157788998627339647992277351462554733908864826907827264322284445701870407586436818234973086061459050405380718273470999939311626473029568549738799017555684590966873156929716658064780006333084703744584551846290591473078836657585077881580427513748654069060559312669460206829823835683648338725152866753891495239555887464753631616249392887985273243783288285551220908620528562351866508191690220699019774414290239438256845332888852934908542710052796660791584415150311933742892103483120951472892996876857698989083676132113118245461955886256089915581618969743196195885646422471590172627608574610775414700151241861470216246285199715713758263999369596645273791230145963313290178856933585591693088950635642060282144805733946421902789655079259599750899425640640136148980708913728262347598688632620592133416098591687571063960698073233452995405414772642975113833889111374022829307413470368553586458126862896238762866045890910036560139654251127421837401065403367717712099561678806034664798646760920782587982385837301377294098414328248265834142544983615709798417332465714047102904710932756038853152810557794219598056824082810162669513578818318141947951574456401931201678573641778297946517431006153524519283198989519278818533787426876682197153906922283213765475128619840831434085897549260416721746872253313685957900441364142933929356003714695538984252829841014030120431397800881193666787125171476352518613190460057558099385172176453806563810488629533842428830574265026795158668705401623107590435760476268310248335402384776961527130584894349669833065986397736112788326021092592303914193817346074145761539384049356635620181338328943385301056355831501969865231219715752431309474985714322708903161166202008244592780689403556153699788669821671725052718723058328566561378562091338355746793536973604366847907460894309142360089144169679223457575733740196671304556641620643235128613359330779139554969398136376506874534681208021288856512116414842838941590633269283285751757648432707186673436771795349309038740675450525816597640715358117181700124597914020295974726036577809167551036214642327843820541253097417021523014997297114855481695665563743605656497845219821089363160978091346954056519978282328615600582087576916689747226673425561623591223356698940676063174378941940726167298109803141409723277683444761559090667968901245225794491353279847081595146726220635489778992688362259800474866178587549663263731620691831607926918466744067970988862887281238121215454489392015480160357862173910543896588005112866423301458118319203024606568574364536014236874173983069386083018216219233187626778155797612059794756081446895525465593871929428744666253852232378524457568890578029251339956159349238721208879679228903397019283836266771469710863043277829899499715575148166821283235478959378488309295959340977946618381643347081326411248642036521877643315541667987468692458780957097823515699406492942528105221379774779116584916629953036789420488144113191960617090887875236929875231893745149475911548389386273048048040376998429717267244866022714852062853618383650765456176493689613614405070504659604640205145113495756073577245518771688382671158535371391288329143699601772863945600558876793539280652143396782553550628261681406361733233348966182816172251465683419065338096475696030373624123073097930929842749280634995322777641919838334984182085202474536681584456763647729392813001531819945928532953130200461344436188945335600698957619357374230811634516934931520857250308719128941679856688106133657442612014632902550343437360257843812506607411279045284076903714328490916982994173754119420240502156802950195434708510773994188773947588693717600876151273692103323397991363466254833547540937498642924782090997582723652861664007770913744765892532976227179123849008162693099282050526165113214112791576387325124325135966659145817422401099447763743545855592029678822206511412702822129673078783357181719338341391604837734281979927487950502875098675689674804546875128506770645452721973756392960728355167770573674912813159304443334779440283637699608744767412360358219434975951406972167595008590849638887436754578984213345280190238220793771710353784340861242118372593305695480227684012737873486808318432047280719219124878074564720132876145027664959724031179721246287459528957594034301048050096702915411623433920660496794905348671898949586578766706844086662151914754517543641686503285477850747193294188262607044290385315586910753487021422732749415812569048138405109969140379321172661924425528945657962401454666477261733632798481548770952385672153051256167314954774521424227775038551568010741882921907270696398712648133869927424691745713596521097177473706383144138803432435666469852989575659153859343658613489267011372242033589870517087803693041466104245803526917574296671519070755444718816825154467702904494702330952204718001329695471371812944893235328615465449261261174675534099229816502693465306177556830332365380112911251645516512984585344744447893038463928101446002276940243192056404764385067732854044506360538595256270098600003506988626888295079554986621286078130280995311320837673787594167264208955374399986029355991448503656641572983770516510275780752301140432046771413934283200652881151863129392966192022276169468184654235887311632539926545479076202710802255674440759204015285906838031877984706058302651055425596872410485220692715117426052298524568490311930760998702196316042804663284431320681103731709293487382017272500652627235671562247115919014435388443865488184928290985326063039561589807311122502578254398000448572383321944386897025382596402563633183446619865917515923332601544722454453975972302166245320637257977983569836822119269243040781608569639692411918833376011342607811779342013116582900708048848333017003340606224960951840440867620860661708313253601344046980374195163675253225783377222011607978384156466819779596643415526271498810469300209321413770595723465702420257075189868141780170890803227076701859582965730990500081211588029723050028266449298171439036858217328030850323798915815200484244676898158534507948233092710362954290512945551576289309525898065753913359455305156970823413176063025584214697581183364696315177111036599681811177207973859721290638796442635974234070733904149816916472567946311673512956308487966813657589979234990500535611841035137024765052300806588133338703841970930885730031606849447412157852725724568403757385934532266611129635139266324942643218847491642766616244196424974472982813197009540868490330809106999390807986488587730536756790371107410370543402936141034425152322393755885492897315006329044862812381429189537803823481846516041439440519469036601295740226600271898000351662802869947911511570526155565964251580494026862764235807854898549975474344135686596852736594902576644053845669189683914280264742523829932443777115798553722160023693817074865277348521485742053388074854128142524869162362205360443756224595189664919701776926490631789919251122565885832229439597840668057094034104219328589676249570153401702935140350636311695569958871276413980913376616557975155273443063459289574147477866960596173250191580816137669736316867900549878269030029018733769577210139945306339577348464334427946789577200460719550354818675017933286376267981448067888768436366529824337366836220480079875202242378307170856123401953797484958108045960359447972238858156288618448351343800628438770147867038673470356804254463058072922522597766265891068729763398090877416739052472230765534636859082478336754706902741265217225183017900645689914644810643677497263792638802739739624512127810421566362583037072276183030522243629211057203521691056498815840705941262991437077308845307323530920261820061258955536981608866867971816092759543278560658816238977337050315208221793962753135358494693506831730453158938996751226578633994535935801983675186784762065513033458578565102604143928296193025426646627106902576408302165004438273165200499498266555527560195205404919842354306924597995716433828432973504939535604775409682072316099932105575926613426789037719269698802885280573410155726220228623047197121679887030682796008315760136559728294587035023686899551991488708794428217844889418282118054457129583997164327486693133301455508161661647446084887524588529453652910302657033615444415085058139945919878232935443763969787383845888499021841573499471318944275969726040904206166091356848668886988717358855885113665503241187149220123867710878784498157431515445139813779799361379658916306340562478667051095400109794154540568945852599160331550457510135596317004494127248612421038435598967484739846372691112459866275676570852960212250691130657345397816625548371728777023561936661121864412200239971677065466663455242706313943967885412288657304160182485587503250626832100991354023412578117049258526399362584468223384039673525990334506498084172501416281404780139737106616163300560249174729244055143885915231448632650798077979333261808972355853387376743213379999166869484666063544382296746424712008322103329801249920021554204727198841289611781608156151778268256831686735310668044442394788418980659856720900608929351612515515918911107325019276297743159025605248567706852446128155135212616044377840563744587053495083700091604603231305747364498328013301402897623813570781482167783319871954074696446272553043918544022917087231812571088077633186601227903555551026008353773276376779810358715256831744262752539840635513893440316278806597723777136628776316647971391620621982584237933827052114075005726098723964131364162507192606665983848136458615975281288494863776036238526637118927690800760886383587998459981096643897948787484630236929775023563511751564634970764162126320126448201024459001643344403589647490087612869274145003327790444765185251787092513176710017023472212274702780121216335393938169020312895029449741650029348771490612642950817223412468053648598402273070476547190145421525629511278589967520740518239719541206674927125133423367999036636936468851510348154936726221097103938696727872329865873832087009493361425076752906333999480596949985023454645501403312678047636767635687908439466188131193919430595705238930397952947674877976422614271079262721933339441918125259769091846803115902898218555212657610612304371103787717927981649349391449967739374405615213999964098607960140506437037641955788817178557486173556526565631712321135046311332449826978960130228785188588313812089376499616058561698725557617060966221194844759753232998266306423690601246391111846226203799671009638022638473105500534782847811881604660541868477870185280705410410357859703127235613214604283253922504299190091494008304109611575799908403738901281566437315788316686433848302168754933536279521505642010224792087244250671320404866830201046283978409736387946025944121350814552300858720587099538092695917637627677285963949763436405697273572287111525144499622273465336564991868598227313635832156858829242970306893055922016982316732807742097279171149601710678441010586476959590341028829577303727485446139166449957642093214718151287800054267672138158055378815129471586311498492899467846161919886554410014909603725954817393826042827342252847469403630739903197181863076305564382417307234095324520692774225833442482829380683113849723303157749813128815015053730049673819900547051968283771212633103820720509167238418901086386504063900116010326252846148812358828598034310818578777169864569168429812722004828113522833962344520336280100620979955377131784561045048309654732586839741213761612024689075460519538955249266105635615102221483890856943476260148481558105835862001318118520511415385510520063186821278668328910221291636014698893753420466518402069138669095266021486038517475802854123759692879178179381248532897058862902925217415989422773844464242326642597196545424402626621974559012265712332584962416172168106955271643392888473418368774359597965845916435031959439140843447311997900831263704477152858123676194115107609695608124709238134438115696480536644475936967325912090903077501058341626934517498760007906812959802724873267295473674913123464781200018957157319954566831529792289948129617354466096173887624062463270202726022757991523212310560239317249921947553317919381547592977225599534082288279605300267294262841566941870747917676762299913601602873575859953575963729036269619256980780171063935528837464674850489654367918060965214507133392182183709514065636225409373204748884260092273625171633462059284399071011196568625738042002048789925054103283824503331659425918428511252743248726528262598319455980852909110366038319472252163500806992240931708664931842356345564405402448577004374188249414231918245901909954803045711047007619755961804988916132680037836679786261687289014614855277121128957976505456395424079813592305141875909994935351212239720923957635107415322666487926497822532811855616416284428926024948786883938217331753626936298249541531477967153285187411406931202607391584402427492179008165416480319496059496858752705486396247284460460655520010326169203411994824440337873412405795887303370355368624331135253521569510597425820419071506568426567700215329002912137449159464151447493859201278206382831972409147845079048532276040366959113158150395019058218141633582539927092455019368527953387451124400664947891215503703844111425131595296305544027285290520849501121499210417572991852978069584997089562339211437382878977460994578515514096754427859783769830972391291479463252223709845768942495802918453830348858290679305760354409659018467083486508224772368753023656249940018970323581207821084934669812631429395679178241800831121307749282508692808070036325240648728304029224431396597353585342385934256291108756302466417396620473184591108320860353709563022783393358533585277003350277065519028531591645725959377180362588241120772984347507137037765800328174473729453913007608470689714985005153553020648078195000567039691606309942997833793537788964604464601355094032553357000933577499071514939723366475815164074001299497854665755609472984265686792054386904819361361811433598018056443820650609308899513398241575030552607289832944878240322727501336638031097421031549606512402690787485229075072258651346065015720068031672252843654990962370083861586297167205979175576962491625562058539631041289773878871728868709832722557210813107809594072021686316533745248666805773624698838883127042797531808897077814291394558204231676472424485796982681325497178222809443380591004254093257732094681218909065859315866544688326878717177656030108439948184321772486415895088314426880862573292087032424051329989817166754566577279152447147448735540392376645255050437539353854251052218529994764409375361650405661179983729348416608798953041724868143501270783988779544765887739885953014343096548957177938236778252065816574878989920248433038126953974650428383678407842329813377350260260961957668674468977491530467346589646874006054835697749350951165841540851043246498669775409802332930103281136288515575515770507793518665725193741776386653574043151397021487412635682072499509959536187214286746568670825186858151985217224000627744733045684611272477211239136492962136176454873015055652154080706451733184279186352467534144037657557503551513642510122923315439633070303527759970952719047186726663308687752372791437816915017961825799413584028638741295067961277407226324822392673371756850337082458107149394248989108383498427274538827623508093007133669766352497748560878661116241824830955466587788140520515514641119358838030641055626116097372551784479856875368375131835768524868627526367694790559802342639095792009653691430173123405998114430565113266721103981025464762678968734185983291816132531774928570358086425990975988935007189515805742483760580961350116880238559639279024044303247194259191510632366945695243249026151643211206045898061795784167592729981910204832596453374415045267111034493560082265857858595831752456091999504006015207240886200728166157081345356314348490564375482942716048061390855424708337665103061498385357572807305419908718098644300077902739322543589442340978428312524415757251311560616004066793523792205306718017831301835032211352084981549107321531608404452720407607501538277858746178091286906450552423023061148672939583138002208428942227947548640438819687232912090286439111415381433856912190283544685394003408799526292723897806908046028966810177259846446732871502568954191378157031679943040759202000124835187181211843776378401398276754475370837948110439116156995472319371081359276894983264174801612203808280717518250499857441546412748948915652361287192665986048901160019983634378701338295636401440309760912300014329589263826071456082005937816273486562065631877143283168449155708080679374506384038957152289983512478594688216386045269797281657793691786578715567664468328071843608030606740636410081473936697278402844993719759308686305108110375977269616177430389262667928690737581135414837487109094687371709513477584356710682968201363676470147222110483421543898636462033882801759312898605931642205533451796565021090124408468169455394799210165171973796299650247438665849508402820689067495444909873009058060974044640618894970404000767042602561882365437872329199973785566669443927001322734267007203539221492813638955794205956447212759997968453620953108385143798760742432190383251157808461125605168322376045586043886038412074406014894200707658465204078336901828733432057350360220302365544484866916573647207934532210446466233039598798228584753040186533928512050518342965774476602132307782040188551710822610761773755259406690788347393545309540861349892959116774993896577491825369843139559529857816239644089396143609253012426441062121679630460502700230924069758626823466357396619993209256019220104027066568785502595835406914775049746203212037127328106281486760870342274943125284608366051035935131036202939410136718362923812000154127493807836514384596849201485099386407613815177989994269752830707733721611600294747214474058296093535235700050419806980292761599931597760120803214634112792187114784751036889206293120013042292597269700386719194365543809518882520906981054400507085650207482017390299386742773147511883529902483432232523435990834840308640646890180993213012632190876036054943662714845696813001187405578311042834567283775685024981631552259052697641661342476026304217640723521496638154786305028653356548969644538026341198280961682693278001639833419069661170661696120912846281277974982603546839272733412757890709739820255918214687876253344085424540205417911325408283386949380715535161104861706603239366904018685690374902136711385040190924339178314371589654776423144192031211411029996314670290792884980907894608671645335893102105735763144955914933565269300592209711430232508264593304983635988414823856203085189702107302063842648276765769545967588628866606333320294965711125030637892760588089976549571765151562719752029967166406106438035478541132573667577402761273903847874014119611394928664097711387967276547680819580997984167843534035684851346485124774977547969748195067412953040605909244020292704608534132273407419953077226424478692857668479955589373092576479041613586500723576356765921312172359926761883228511559487558810208617207305317582875872324109411682920562336374275003299870055520831305550961409382992890681376206679868987491267323413296625327341095089525781146140096153534045444112171992086533151213656251422593758138447345732262007921402570539362811514690295386995315276180324534600258356960249760091710032532961597117846260563682619842847349349077448396909012603559304593921643571750077412589324421649565202627993843972011976496465229933553851024129587998597111787625397404576818437618131331034281163282951361650728265225802046728279402255794977023484016473328696797193652525659164670316573241420062926203091489313599772794644337492691718392195453416222293444110387170819906435310580049221819474243090734958080937096574980288061032325835446196186556485125910194970414035877920604517174385259859263363325182572181592540924380127374894232927469422500793495501839689031635077798121790349702307839446956432075346209021576071968260743143727634089402952062140343756181938101412896382629427569958040850731992996471882382733848590320751454596607277418723041720024082687313554503847541966062990296116704764113318650813697170101805766175962497579860694222261925218330493023240182976505856324680891129930198927026156280320637488412857378647464476352228955976279131682625651127696660200092876634566605461275786446241306021240582453952084436374582496305488612431844182222166494108202110717691335113264009933578680973570368364237579392719244224336593170606192313044076385891111269569375747852339061317464838307166301726156964128093198729152902983559132028556440848978772096131519163741567631995349326216162655773631411325097558995888644454213087856697196871619748188212757279698600591889978826739583383767874142353198164858095276416209448505590408563485503062473080335885457375310101189187048366657854049142234329079363328890503238457257312283756356229789622133385671306053386606505830278209590644858005029339874002139706700329054512244446339628899524369240072815474239855285657570343009703989480893218095113336568651683747784952499141878588554605067871724000760033125006284225234610431755615250697035758334658122770814204880557031672348916177221650774455250647481074109117638465689757267424062613197331920429633906936968634617671763531027121116562400969712108262390542124696531927707386789249854921391174397392737309222324731554858331500167437525543425122657359775613580458963994449460737186883497744766114078065824741821617157412010468816632132129692641710746811220647152525154732698358046117196127464923861482574432584166447896623951855372960719357808155261853820360105274027171638425983286658206034114428613450729299680559884896062356095306069844340213937523557952164199618339510907121262827242369929557732561793508535281234919002764506598516805517188630053773558280257763623044981300213759681040901097882258566647415152522610201341453251566987372169316000199688155258947907140992502570773708813569345284538904027868557355722157135211702080040718680989017927859938488610182815406422631046853593246374034326444832479113901584777526001628353628554786621124535432314182526622828906299292413804778890749468509845570066140443136890614477270350547477944871347736633121903073034578499004946942488824351330728088765529230388459074096034823352760517571829289608594086499034492066920910689880213038976579793205917267445110727595632147984249765112695063037787027306819925457832614720237219348325374764366922979518558659301902729187067626159077528182848967834477444073625839394604111034711732348183471949257396344829956872325541366099123986154079238210549514079161301890324963686704630973073865717391481953402056423127240077837260020403231272583051244861565281193778519586833476794361085380675567184711364794504437207320936050196796896849029730579887561839048380031223860135287323260581961232213750833744453648671608548732324144375734809136634318880065547676664968747122859719497083533517050140715837990209693813837231938904279608355474200624312189415290710784840384900540780311835179578053460549490776411319512681614884030216419895112014688103573431163676239282943167392420899921964029450376663141884222829135703080400577269266984934179118348957165952563934426237145424502081774655363612218367634941040917318891580386702756543536614549378823560302037481321272571339703116001499038301514561514813819081400497612949893045733088097495944099356114702622629269394238202321598704867237624714337155477876416262079951788366854148182560378760968156640468604907606483071217228379329161719052286983418362730761397285075131831252588489437579872718333913389236518564119198222516392499585426605956294007667598848650914912702906427931497340748959638074090652693185328235471922041500071952878049346305498191881634095934711608699431565815787132724422536008045629817872889931481932018833263014595931358371735671993188085208956810822713241808025133468448882376291110210150867096184283657273386034348007586386862035865710077174176959708212303339678759295609747687218142762708582651838982837249711325455369346829796091069223943515996794034050623592778782412635550045045901987528123398157433853631530457344182256341295809970352935379336014061674270247065892222723888494664212523561077546670496261338202271814660095666118212293687078022933046356659650751236703672479847347627697488164415502934104487139268456307933177026009762865405228692506070472764436285905529221694808912983372652947292661606769335546139605929515740044585411735666259291302345355590386201460056418247166824452178159939272117490382523493840714466070466576651426450358733810793640532921021505573709893115805495189839540178086876627510856289148483644704084053060855585870011646985825574728000798513849645324687177642079417320695935686433890961071612967390744150596292241316401077321684266709123163089003201841655842814092680106557426495072729520078261475753259700525636404132744138632391887434819778974412032894839488223290149765158558441370036960676587955381237684012725116644884992218427191460925039383563733935758672848474616670978957045379637656061005400020572938522505590509067763937693751859755206906625879768421600545801944490140298692979623766792976497470060090034577925712508122125717094553796950948389248833520858929691954690820214237353145543151051383012153108626377447580101529064138233694925967392790963196691374090580505477978924974908921626139475973938416063855866458725271869911234506074671031737043766618007335390196092301927493228831730238918980731547310432694391386039553988083432907965045015969941077409519559786292784135076427451730655492374466795900072281207461507542951798766111991880570967436415812865864312276163608891541540423610159199635155438657714593237490929328003442049667046581344508735502538738312324866221889105030041635020396436693967853281512627483725636446317322511359962190732514511570248260615881489217337744159441483189788285520800556796743114964481381868572396414151089619111261695992846793492817076680993156467748274200213147507680061821194139217685840011738149809936373954437746270394016880533872884310788146108246207339031541443996683697102230176798063235197143764788948043242225339404101863832770565519080079906710991435239929075273049734372539440732105638724002987023639554260840373291233425508753827740033005692303709614522856630749065156313419774289274764740125672001227424929759580032197068988717847244997368836106611174531147122336864503608535452530411179772370931548500711086325597823593531049663758440422254313811960587113748239672525234393409349696779430267085229380063947182464088549118098978612435905933147129315154866823630149979898520529087074676274018661624660000801154196601570063540085379940400381600727218975685800087114579596298032696995676415689121440121411320842393708410753192149672231509799618840350423680969213215416670510670661243229369563686971509269906890967984323239928385965791815047597113490764794462755268584443469418554754618220774978287205854354239087833903826961743824384141803252248366592256053601371098571076110080577545604347216643362796422320385952478307136298241645575790325398256050757594232166854972577961200911205515177901880638307923371531994851988490535139117489610795130280304609200187666364309668508049259473641061145843136932615819220152425335586845428299090936883156163615842382474873831547032654204420061649582041739579119307927832395700323201262291944267064647962144545031468545934548011815289370381114476602879314110821610576292518195721208573595081268216516554167007738827295700209886661375161894779825401638896618299678912135506142763146122447300542611247590217904187972030041834906812100507313676972490154383232431940393016057112232396191510491727907581064628884486531377233448910154304766156495529724654624711252329987597445277054316465327199391315006586010260046167287654107928158787137099616989136609884915691438003235636430061458342479015180584460461722789756178029041079940156126780661830492262969897276297473045577041700956376582673387233682858721192599828185693350691422227026017899633491329747428105075661509619943654874117537702703267723483445006617262720704570726724023382204068748985048085207951313900378795209018595534985510402694935881117106460006889332192316928583657112953291155418365789513229815416528978310722212296226316112913486258128126203868852748395617747672625845380522994410883088035843910087765608970517641053671412888963839666138465431622554493333697883975200335347682469441937709357865315703373229808162494936174452365613726235913058843828360771373253206977110920192813841131536185106615351947691325834256838740027381082615896956803144969014089156784326113097223500338944351692624233399196757544881098597527685641839405437734138890348633032854647627171024850425067505655635658847478846247255495969324757623982615407671706355774339951235916609352426922641231148134214438258996488849156242883394788578664991745339910417558525862590364406426361372533672063054383263547571262718556341687304508293465540568091863074574063669883870313423656480474680034582379075179105626481934787176939570856283248451462049845411193339889397849852629720221557866061826112331302383912451115603567908314837456800865729491546634597043401801293943678666268070754555833723613813173730210169532116465760247582595079537798857476761400778334561679208576363562911229220520493757916534507798830940236291787652037130988755299559609152043591394758027851974093351125006441208432748141173396133690290336081251270938395772058772362607917256394899906831858534977553268606953453697771018429964764324212103807408161368021106227955477643802973495656673119994170449947986489198465670232012883469856334547345622572923480416290484662802737406362226558379986833175322324194781263229881920382016223582149014502295922662556124163535791996170633696913072772990971950472151998007112536365716952458194236308734534099936138834109720801548169430865232286356167089593785640293916000130335376572318042439823000666014207715945283924535984726632624281754776006903804553811713633392668181648434097698192873383776451995015863332961493586105869346740015521670552246632467218270809858915881086548444591749396456181752868323779829028428284695823807121005199364867480200899431978247474755535722637217760368234582896585533155730198876883697243290047433905944270339435780954934723455881338756937204675662289441984758152359723354952982812896549936960192073890975829582846127009831339649452694990798512071707083899289564416731469732783712383289499052754361012604889179856521680759550813464516302199975476786735620845102914572768581266155774334882408802813005047273868805330486930785279263536846080938328212479662162768388139065937065211469183287924374360622177561697481342337431323987458577907761316677486838555437649489183360802258687074817539990566264170870951634909023575403916857867863919993999003364840158338171986149789806835864376320105672192370057876584107333300100251056571306482269295124617788949825183433653473646295961493102674016465848738879227916133639721280176253074000825894666460498789518726221004216554796756555332965158696996297655882768002308356008449913400687809665056781381431157483750686824771054699685889974202192602939133696244086241806510091812387207040498470967228288753170232572244936341646770414552869975334116355208181402844986883123471045496587306767802460539915605236228275842859586027426672741682183629057998394287170703543375112933600208188747663574414091550894856828712958061695116851531761332311603832564400430085097646521590755648599261073453185684411935988511057436480435340756522493508536243382661202418791557234178568637501226145707222364452417395961056405931976781886516683284745959082389813663553250420488709171755630064585647512577442900436664724703960273845611147729019527553314048661926943523092233995019505680279769238577939832702210392221011616780189431991308569772878411529543972087553157326433273156611618096657139847302819497607934449943365531842675291257115125099095182666968819457767221960222635851283340378605331174460711465405262947173305321722077789494527079263312815602695632341605592429227954786723444667779559208309414251479511103704079895912515724953105979047753229589093308880770127844514700059926508125646390318169137841892451304833592839389121648450543740196528794874605323625361721853943885528751194423730704453795531255756280279488164918960197590956426027091108387722501363242302867515810099081138371084748004528707377932900289961673939625534669761657687426377487263130485390004708845956534770975751005877713347214556810294815648179001706304909914887320974845822205675112683668075169762560368480798412094258685665846351880431112015248005676854409671726151251975677194439304571921462777801553066718196323301250744576391242339225728307632123474479682936531005282747677619838972298701836112485009870967516546990112669602399806123262016271636412317409772992293667513475465941492948044218367088166847042541481712646362978037124722653722539527434005778418838833141659668663505625529364409745421873113308614065302233767141547301090012910794821350533016549231952521455164303343358009484388695071458770460203532215165958994132092620677891158011176755130437060431009341446282168482933641041761920321742279682259816084858822139880941007308194071795177621166590830983376783792284890630914761931875698853748900743811793491931785894610188807388396353300529750085245148879458516887217307317571836729733282229306911189344286289084089451584938895126802827954411185312742943576230108214570799495198825252430146551779930979291553332671533941632254855861751834167570815759347360762010857008929920317044083066953391198979489932676023529201272109176939447031814706195179358282888700009188727240087641197509656448252545209660945364762953468571168579657313375741880845509436739522525925526567288908019263323583364989760682376971610475728818012025795256228989317031835696861047589850408742813078956928042302283150544351803187997044357000899586405244804185779591304327567728231996048523604151356189881883733557136438911578691368480385193505391836305476504067813975420346125540620626207666018561966589421324031558742986026260098370550219305281157406501084454060568337012713247478577049435431720105654361292473215786154011498701595212831569221354507009819951649439056343241820496696280189858183004486621000061033297414002712513517111978882338193181171296186931185526917546037300173054751744709449786709314956046925871736075283712488292864548236025017220728098589257410454176217661222011597880345329854071334746743985680082915565588763209109830897300688766226528199314119691014700727903194612495807846100375601329369696733184759851251496416499546419923964675329695179055373762869252539337363640986599139435765321860359668146966869042912525997591248400886217888294673973743584676878960669479571649231199375584615368902580064129652000560575261512054813539749182299125201589196772021716960193074806589479724769406927859450222047782816409342852073018327788464593533255071876889739104752505567683231491809949896001817043445653440580948800417424284275549003490395580864403555071162880109319692693291187439220592126591289527888653535924477257199999270675079793721468656439952852880660747789039343079128119652648254990496357307746656196572121703225373404213535779182890415526364484435134977683552459446407809210540456913843234982065817388960113731233019526283055988454577957029872282787891151939985903722774221777825347697125291134600081225621685525243956221477264779450640997131860220808020345051849244439300922494238938196661533536125755205760293577889672334677188006922842001485306162990169948300906286103953851890863468415313252133025857208596047554895439145051940393481757852165529516478771421725368511191940545168648229314627652811474637977818061871785723915279531797860025832996282883141599971698514675203621279191132691279903842632834015290965839111311779284852325127658766951181990201306587038410769638208223252167161782055042320494103847127011406998226293380124877997064675172654671404386178573607594858960643064083158048530695415048702337980965802618932734078069576999210425432034586011039942378785469381565212654912136089209209681296991045514080755960853911495604850139812098698484686270923332985715300444620418043814512350145188915681198865079517261047389488668189947562007542558646771524834222661283972946275094146437574219962623415346768954083094788160114861340722348487910977215119804577707429359471106913029636187870040598103547102827571435528385777627766651380451970093666224744398246588188369218133155396705301584077191877162161027723804504523652662182945319275382786375512296656337272792342388546626749979407580205557533504558664073318363542652749755902144444292285325512581397236069483354385952234795674530461510286830534428051037646285979016611191725999057867508386659843899477625430552016955777327978609520430261828627627489144453770598889858870391725264473683483356400538765720495395268600075968591703381235563178497610974904482346075853737965197483269744954718477140162350978559382132468330821047897856180264937575876457055310495124144138411296441060320125941180765930527636709088667650443468809718219204207707760696631472072868993596118819046809810294647601140805431351697439321507290663576587774880603728718198906971445043423601747235114771265150086165703360041297731467726140266562910172437509106476512352752175770839701717128932521454163689471903413639166471124159773062180936975471524315818601261452980684606940548425448712937283978957037657975509779478289960467581981895798158556173993525990465151937247029004142887423097856381007694445547023398441999463466076295287907446871732206058747840976496326459032346335196745829594601591567855924243439767818712726909722885990100080820959982048792281304681530224532427696966385232039217167847246836840453323950347807309782076199667696144339639831012781051482838634547433553062176889770158906208486800657171215915194068489498284809068457861957297104659651136719534054262251180862967041361713179657107343114600891110144590904921886316535142970629038889809843581633118218881296478370839250684579319888924985799153976772672454313285377529904405882570584701258170528975533147334514447165059724309112139478400619518563241370536110370172257023804391332671448517219501583427978757074312289659569347896308911839529278604812811880184908196828560231015762228633864954282910401970930994239129603210082042156517841869278932644789184554505302469245355605536585054110914035416841742470331122478570920047477034954512624541125325929291475847571830503386265872735385243315580223406650337698540574315675233473104847086919461182187497005143713072744488086108893924544086813738149084798177678595636518481559381692837401243232276937144974089987342848420597573050183157068893832187393889694605338963638965564232349758839728267727800028638643931912669218542111133838882944656503627134258225657916870359232865059627864381471044559750323604981752344172302313346093088043399711114430550240597908366812996089978095331519593842847904995905447022479220482097600253610146438328543650865163475023486123902848364203272435399871968928343743801617341146279191699991163203613263264616482858250500878414949156193696812431182844539867648387361252300035617771912026041707984486622887988264773212688789567237852779478890339207465134596684820820692514992627073828980600306241836038148984073570527563405006015507126390055539715210536699096069058161558748119806293436162331366967596707612215782184946744685044884313259188983878770303161985580935963044823890738096075927790861579673333134631515376506561943422831125963122376776588260515150945561620401112375030784411366065716440715436041805020994783984581338753741737231417342603301659473871755786650203123548326975951683586987681860388588059621657895212590479119633520404383782504383033564530008075087058204326625898926249866257506049190836966159780756901567329469732445946342634413761765591923951800430952065674203724780945263989774355753032709925704258756174390068726958198786090649052077435151256223145339447613452467793947064482082183702016340634860688881393324026508873324570958532479972953916241443263174118738200654706013429132548201596568062240109412433532625790663032316259151416479107666874138593052832640509192048559778486495993584087969674882063146441265051952205476905824628693238229099026349472932634164339216295317180586902850990353135406329344400168715190729889388296230838545293970336220478816794734464820268883558571180756277356659843763693704782079609466654119624246385347742895092039566583863566802777337034466016584585823744732977455930717287501232470035479162941674234359443628891408737475170549047008904878988297783671554957656813452088494502656902709762038251405560518257298847463975059947908046963289304150538410553967139349151775247467629279765427390313923549112742991401624494802257624612805346024963209308528319258045684992780688904863614897346382581503312022025054539455096576988198563664908763149604752380059999546692801863478224763039793711910166220020783786429759393258677922129363178937510338382223043458567623008943329531314927217387818443921164898988723647130766837105505270728349862869047581522132193421401986506801603327703332213882469643246311374494448097148361492520800208552154787709346411396972407972161466596430746855583693876308339607018660346462617775347990476949827157767134420628807268807761617756029735642705010627111952326742157764090571283699837966469697057555986609874810252952637240282084433458457100970208545712949592924730646902598719353215468396089853449984649956153267108190358660898883382125017313012750661755645667072029296106573149165709075640180060691018986767570842470546204455279657365141074660882018259649767760186066248207938567286416856165112082569000673700983149213202474511151318154736741619883069222875912133559077703546452661350269102535197482766822407495492545936008756399231722274627027360725150589234047414867318711013483793089464619998292776563205874939043779360396107879606414410707557117497568477321152610520990313555910877063594145487873839282530264040259239437841813018589824358583155660853710198888005346415877823600021480813967105852059442382980671902776071776360244280042726077724974014765180806200539763298713419019714194780421430805230816649283205123991563676690532303217345712299682769374356553298758680453056648500245322553555017376167406026074979231056560903542489834574838369469902412441219737340816052896401691930040895695976930717151660031281659795830498410073061704334861460149207684799120284227281858323872776234541957254057807099587276527777286454766508273770289961414270825000338166487364170942813299196976212110928335626342805112056828877561626953064146441868375276072632538217044299655061591496412351341135010968207211202032610324434579295224649001233509584333748384053338383940513981615188208593064845994011506240876170211584686622442074935653439501406208307863799217260354165370163094203942044511524711055126167028385210346886091394722193098580319944009751082918738252510952200044979105107813320273966309530961276697964473662445097764841333987826408277658902372308674660288949137897053025497849877934721533214114738901183080628634142095866629694068964595137256773692286424058473423852663405989597906721519171640997253992784550451998145835872352013774051542115904141647645774741374559799349668695595175299287422175430156155074165302056998886291457254636729234961191298679904000543211336930905373758120167540732690992917805431687661437384052348840574158472055373359297548377892386861619021765995074222197063291733670856312649355769070428789744811730747663130853124126561696795248263393712342000270861045684164548083646029406495225670947100535256050181703983690135181859773551406897116373820960661865036741360334411815339459202464920271794231744777460025456831160413009096700637402945518479830463525825567500410207909534250583475304717008876057115027327883052287954142734266999916176429613443134099526040532078349308845972545521703987896094601082549306345971606213064825798813076836789657174506601470449099930360514977244001328298220117003358574463781924087590536012901682732060231910152629273031550196630685223809118934574992469508492075513513674881848531670737024741841168556741722562120859346744492674136539802304929499558642296709858254918024357704524265093563161686815766821469294125611006495875669838219025751875500861111730600111433299322436104826647769845761648161974628318480733244165176313015869178276990518426727723529622947055442582618072464000343700417728047730179088965021531845793474047769446908857160419394639223158475719312317568761169986915986233296365778593138919236654112464722695125141298952642052038538457549388968273720704462392310493628053564205480415866210065488583491435666913224371919659053927500932828751827882448765610471222450549201608569038741892891317970996750678965284335428812216204805547847116957549897594653114300443422819598445667425108181473419638298674686025091105718701026548877106017219788400727593659098234997657174548278970722503274672774104664754369743855813076380660325943937956526232014296073235980729227403789881744346570479845214897966058586125248400294182278878983005501542853493724410758596548746067691845937207798644754325991298832735444610217844987327372657240747468329457807830999622908040023494500995118824873358928451681290934444970789238945187962106373691054843732667328892689639536901867868253169852834468214686062527177501433237922179686978554982541487810396228832702309878180975373795217632768482417016363080233018745778096323076846540731234340152064011331232793170388535774773790333867709206715861059014173854468045375324341480947973464378559887004780448479644055080876421946677242274587512742022638492496649081146738606235161509438378201715796718863489883632576700909660356993927313657516553484583083355250219628702066551403783629076300386413637066142308090683700784103720640582404089915006589374101012613368113870941832126334615368670549757584323921596457796936878636523037836914924010612722706072204195747793963360077805553705580916106184013686488401432701643312300017071694442000997287682434196021868256481287593435285384612828246876305120035632473908000111578752648575735238542707370488678358254308391073565273264146726353662686408337668799434732711197361935515125745265014751024194420828319407382459903901736985433420459317348864682453516487516626944087434397977685152108950354986169880926576747746237801447044136384311183119501409853602966556301704539330192508280469606177082810732813603181619232225175662681265099329957478098835189793937419032817577692922422786500517128624421454993198984950377127667664993086075263872393750749507052633844205359081318017447324780957353746228341764925626684912986414838632439891823991497859651125522378352875667576475956316319201279820289645748734085115161652963048411566581459827741956854145422332614344826645224828831053905633559191516139048771650457858514109449511078119471148407335925186524694295880830096105470522689980933590314439307805368689868474318988563311977657317625176844742399708280552462561503889466609224246123922140559393702282074964809732572464481365463509883417709620440897254654398002642282936235290126114461316726602149522100662374622014273399784827419285331416381234299512177152750492733990556968342316434355065929326485948808678269929625732517133614606442434250604974034443604810537378163628718099592915142412811886039625216773443262135788140999903389981451974626887601048492837655800624895666616928417568861269925194706930597878998066035096149029704724373919203389569560030505356571433800380727123340691648516647723182529341597627013753083457449638315696365919926780595027126255452504613698302608075207734521459031676041846985207612223070344381495355059724086916214478955145907664449211399906215041685082686271566642965577401923819840736122435397358227936399535934264752482888621559107269341342674024996708530068167868853069538109534300806236331911891089077862536770634538897709001545655584912685492984249256472994132168633007681951229533996212512751623340805727113966550853354999723544351526366535530058794395259715266493079075271019313480609153606556144439804402040733960634687473046911748061022725688757585086933234695916352204247236898874851002523454046936583577928022094248056432652135914344303137887318816429081335213424208942867832491132422201033418755982520869322950341150040222319235609945399134067140989781594823127844032329639762533436366520899478054323683556611152510234345833886084872086744046616632454092030011337938447074486242716423727522874588898850376153312078117994951794100075512789865469249654254242690858413374175255915790785577511856776789958036002018847346091930598064284615750720545167800582572258278197376263872732013250070128968831186314137361685097249685534329169817325135021303129974644670402252644858434773876748305619765321763650513012557380493618663033287948396767675509280099258553184048537640664442455191264737864168602370628820760410421207479770795798332504675000202715812918671689121869531514679639750991114400801445807324131832642339332558391038966795261528086195587496135946123437151657465718685317855060010147977527454074782393767395686713419988127698422995495583873458942694669098605619332623909692601319164003367439050394162924321419360242292345854004866209643876855104079590822461981237616763040188653169220897106836145386737995468231482148732548580796130448349466897921619062246938496157789996960137036933484490759616803952930339616486063556636734791352445931000334474753682128331448222926860188272686290826928042197519532764156938130176962615286025752487870252151026431691281025676624896691658570294080883872670700365807737855921622655302933071819438131048144752685800519374880343769798304987216026425954543639772145213844309515770487136735632443296887470203326940765334125459265303918703465647164246850940586579437106391067951500643466369780157299219433463868832326856750229978975182742675659001351046109962445870191509547153120274111995751294327363168556711210532157372788897348400478102138671408583913792634541782101368636995480722052150767308245005287949178501941901330007082380737808272199400716089902409980806010234280250109662860450655329849401322172385629972574184605713952209324734213383572461021456035233494383864173618833739823618110066064819780910838660677077032824426601317709298024765143412185417194908676448112019084910522045869640913857620951071081967546922857700475476254731552849828917869220053017762480884765290562789423673082147735906180815771886680784058577005155544208111662944954010935592436041543665235106662795094850631288723067236636964799313268576578443908227447687888764793386134350325420433857597246585934229989169348189389797353409704656350614571176982350754663211859902080933760661942240930987735142439354530587230019248555416716838899613965472933276784523187763725914781219844916455865135029742878306047905483571900839372384239449912184324751690257921626394199623155146353125563462089370724041791681334360066945484849781921278268206591216303961147096009612926308757409708425962895902240162305114946825143082615686667802601111547762475064849761154564291244101811962618991638095132682064649624775928235590912320946000890250885148818518768861581863798863809614453720436351795598591228886813727666731055884791708813536054171874515685420784363276104083468012321071020919808270778707237704149804428476535020769529199258717480816222429609836332209567661240119575739326166906300617399748886983433089145731903197449990295152615093921744296679613102700252045501243633103750189499313123105614438763757538315799820783709379475287793331803355928100948469626355673899029699395295476126550002465887190550612430616408809678607279029894455556214535053869955455152807327936961589054372619853260909540628091590832582667064521700045898687702011953991760836720989939350733687256009489536797223671357469274363421100712186728587071988428088430449722600576586752341212170100686346720455773758501667951117241242025632348075251183195773117146954134311146180346979200439555423408888654091159849051739920248293688811804174427508531225523949792754461198183696786167490412557330181899353468018257624343927461110772167685435295849134507903687494450583231955605907670972480665359712278062499817816941958553908338650456194132515419520006266610894349726983269517570218228901312290366386773125541577294609096936653938104460918590207281887364525265164822851124952336575538062472415404874694137428454538436709871591543297090941495968007501496994981609722390475372113058401676764339385651181688215600211045138354787368030562654095997400145275910562427968328110055754426777473732945178953122731605499947726515778334650844852450471432911354365669573071780622354355504185150990258238164500780495514412525120491407598059888378260389248141125975495199713686085101834159329461139934517278476182791595225481230975629898070017532191013848377489674178712159835233309987462069469046503497633559464145592763330665340963300747175960383009285394382881040181416142787612760102951387651965922777230829005369114066516020610827835389673766246677724090672292516256444457594790009158489446217832492625147439183801476081196983215918060399785806192145808862992683937053978891090735811730734791841727306880411544659915762446354341498890194696733518602564094440869244716955939793147641930718070234941193146154647130909884537307740958003766998314242787755187853737024934957747759017512869896612725592971127662997339332036377581590414671194419563560058642462363171951195046121090234636379164856602805914539291089906290610057511532924694768754111471020203477111573219310353827257080065850468393244462121842383601073628884107323488163198864674467952916215695822227290048066643048356889688006137987424284797971219030341601299497853736665334804282323493786090810050712118033408889719379984887982122264183248394382664205069367425512623756657982415041666021645470069355386268250052416954997591712127741284527065193541667773979652112823584896672402555080928935920705821637244779196073368165677515650048019302748393005958199186874178672920421711052677849271536734435162761735296221340807720821393278690631617665337505360723909143564776826656475655792410138753209051289473141796224608912014404273815619461450440699482691081130778885987883720688334556416951947846400217278176974286865872339533562997978316956633464591834325471127068451329569037344643421074842123002699243685897563156433048439381728143954188482069162151987167479365821031053295332733013609298846019950301046736196602856900603047318599440113934515254390117800770068634275437357196004141440021338909414761062668671088937327758821225189570430755949928980689170164776564095931688434048017006172889636771492716526087526683427384040912408851755467979069244317274419512708655630737620867614910510091725003340696326532198171531199541328980489834768995030849297898419924403920408343983119292606350922581834180590185003218074096737573929957621779822011137168982236682588792134990756733562492112821134258359786107549890226195215657978619189762983362701055841021558102048780702675664343084510265168693353133411781377586321346211367135869390901029939441100686755434380947677463582529302167518206957134228641445614945562494500655496408055293681026048218486915358444530798472310045950332594899768766735689579692613736416935338549601122944396332535889308474455422412181088206749898731939122274061164061583589007407754732695021344766036203472659647103104331175898181512948944361451076330101009130522720031685491184723031322199125739766937773246543901030816166832850633674667688601200122259598666916628843227239541385401034406380446351226292006155683995013175240498821468923449451809765009064544297775877543076581184818892079482099372827347034068847403136007190805073759987647948015028873918296921073873336442484676439333208516452111314199038322879383534535968529972684521910725251291531331729474012683427238741737690173652224722001707205074909125738516594301477224264904315982022780741758052107406109793952434266881423806745414628206812887727366567805771389976729784744259176313373201282415550175545920553640720919513592761293165107946162967485554371848820829906622948314532342719796855867019933332258590600671711844139414104068298646030935634128849574712537547377828541957584275940534858917492328658823809151868958827703380875996177760518550811719358423867147381344213942916594315506687179252195315001534287093223467649359564313171523140288729562281136840236562005614068075502862312441692584898096051981884828863704341128559953089560288904851033512743549606232189341251046159933425326034513793625815992846845507319942757027350982543337822751095862159126899645983480470231456686204163568524277916752578314770984025395645280571544659074231437200841380049220096261364368963815906509406160951436827947484228469287903924836323564950700535546576385423201635455013701784544994857486233799493875738870236140139776514644554022636396195814301691090258964442999203806204219817524380640431810703116876405511137725720888945853508506714324850569665896321294479332479761425283796043694949724651434086447419521910367971205569925415776092678865880654383384851519473159045990917258303003094217474789345886940287094701493936346327421672780702925786579739184436388552656390026295004608393426907672216106330751522971062095751852861256472905267611759185780721812669584184434892635145813557645637964984321025864396998152854847684544741537671595560385390918557329853415981605098280830428083116655613077277372448544770944979924324379106813477216532120267219191283379457525880546610945352059483966763552297563671633421277220610363681751226709835773679532018019079992663291797937107648614705074391645592197202099743461094635952626109133294962049531269196848279606162318544017925638250824547964751240094411974135296051009672097318849947127862712633352760102227072589963798040152589199386429738983704804965785525440501583753304558844070779108655452900100554264438079397981079691156108749775874833715882047878750265982626154850250641324271168013171478476333308925562297447920154340794047489177956843266434677116401932254625278394984344614911261987999561250744329845707194356017802567040386184535299775738907261362140680461009230305719353548619353859825121148938605273849767298809597602844493209674231451218097096161990623181262098839245691551969037671887574870854727925166228086567599025888945539368630791141003560373450177506510616625749891550699816450061774462614889800214907971638745854571022738805131033142057974921438602052060015447309695521153875499221134693403067078464073765030976198081860924625502978599582518874708189149924450534557859085875679360131387404119752324746856386100833877959058957051827829395503969779215245281612722335317713467006285745993902049085401969552855473491535500541458933489245450537562775575080790470083700662857246632169333694447248534240464057324386868977855186182908795526260348809779101617061822477958387104456221318105558363887389646481079616012181510667671921467051949367092635449970663439541881606200332643241048738488472552132973218140249100837566457415512597961446436530052889488898325361147520980512530575531638166915616125979870671112048692510719521264493986740095243045996198193399197929529395133889435819673447006739755903777441567405756544976124386538654904443356129921155504966078313609756728764384495356951997490979830526935573496188961143532199373826453446792339446254837320575296654935253316973235685731151494125659804663009070111055367926771935877812329477694044612502183232624868035041515524035850362938734771162022331969037010303871967317926471254557274205128069068613296577805208534132399904037849147997905690186386372246550704159473548294521550809579146461001008122417481600373323281510665838344246006663079041098402278311979893914450302415647796141962526308727414431575044130075253994837115649029048664091636714114030163547562614709898714864303345236695847736337575138641939863180646185160048284718652914517419477127007229006870844601402548922229749802586131498752384601455597758933981756166154416141326105045512987829704993996941999396452938980617349016785229565622633783006720337194011292188417120805651808937415211059317298017759456466066201966057601567914481459045465564862177930610586647828416712459205094915277175805445683561084807144504194486797083973737059878539892341223298378074052321915536644004987371254195164352207763916571276920577583628874028329108381085640860769854808008474521871987721616955235961701670336886255141600317643356071067776751643667682515526979690921573124335547130952025845119777299347105456127672409590753930450493520790559296656117050596883381786014118509594246702594533861955038161826445966166232243608544363953959713607403949231431438131591476968262690005670237759911203596991059994023339505579668832548154204752914904207784734490196204876802998647354277292419619924630066663527784975747922733298029926132039930683985469699292410086657062220689902748037318158883794041601956102105897512595842477797561446703524222341057150281343265039226316724969564890769674840293505500167317462808650054129525198690123852684599364275297203808294885147729334042424036280393826594461971976434790977720733239174697322453836556615060965064333466744155385187971976517065643703026193624237560185185169825588792983932197466334996805296147946339589415951363991310702976718404017736278030606534575155712324956887233137164245734900607290849351266641507653304026402671227045770290616958420949895650673525443695736701180152749026148520063146579042500153321026189489392115296372637916710984785036420102263423031439006944653122306352757968472228752251416335856598556210175995450905211142797751944978413364957765421872671510882994813078067531664996476678612695280580032749233047775089988457982918322856927227927096657497975123508444575939465908883840785600829576138135210802766593897034307198574749019138317317921912562282103903524850538261823947528284468633843479742615421261805329933131881774086293194509150689244743003975361400551613973572178962384764068951637983514844743553776777383892076342063384156345549260188058000238303604111983609651740890105087132335861532802390845484339207483815216817388937502285116793810363632832440350530053848804962958942071029837025770432290597562417752458623415761004304087821089270771928100238088982548573067418463899050550281858362288596055656289204522300759761195053160563168185766072602398785450755467965820960490185276370749333692551437758018173689239588960147744987542793276640291505936163095578310730762815353730866315838270548625224299321947668898832632854088854405880140688826764314008663958981367124653023917338461929136993931850294393132863483137682826428601187752985713458462408386445174419915548983028605552057965350955231879002575139205607698966911709329280071393670110698774992074857079511678950768929606678130747018581809325623428599616225503637246680021286793153652789220952085326405289920854775229618645054641451316274175095604668705835788124014461136885028531202408957447324548127140522767929917325496902255524463489756921682414876452754907837557996634935227415382960480130857456823239193738813890124548372704874260548929559982867976561589067660347080660396115258815888309081436844256775046752720073382379264565896234662971532213933042813016871440565160655152830318487085800728191904418373048234305153209431314799759181671809669320435511710450635164738354435372941055248891805091362819528052807603222097151419547479548549871800490345819073717681579060728380055988753873136874365667826703788193393464268206221802734509133588453073779895536886532049645307516916640841486207204399044461523776872111550869543003020158775063911483620271420944517239091560031221358013108164577762442292470685702059988049692571016304026559658350013210692819462826840455482678032082698864394160357063860921183780104996109065447493079959007311517966288222982297862637205388235941338704077448686193228780923772789325004948713772462227493026303391007910555323054988045879967333771387136385883229329210446320333791345560376793083375640075663180110695809864337617958891120214638835881617492608290426065639762236278058286969429474176289943530952516848407697828627382015348774722415529786691812964188617378542947335556927062152973096918181766437075208355092084310840963706276057293170071818661489312651165463699320598373714321781992830601654243179904420724675005721357346394045367525169737307377217286933581136313259886273050410197231781212746894021107053405511927270722307085889454108781228649493591580475220378283052803639299179472878874691728547404234601652017542233726034038133933155643721454567581272078243107466466131386788290599474886293834300878199556079907807605054574488747115345290675517302877901744213103308133683809967729927546520307955675169904386839024492039944650404113028484168930540252152155388477934982583432475491547921517402402629478347466292192044186994606479677891590371144161782267859072422307483112000032732660508727000283995383775991869047768281964523534866782753227204722093520159877938833923236653082180875973135783805621227624695659513263521997140315820740595785880575732110849989640325350136693721512833580141294679881083132514068740678589563234371996032090536893372001145556048269734704963968837598188316395733686858739932039926353673176134798210390747794957345029524554785850838922472873828157906819441641019898008858356086916339934004010627828769959001552021592864755705222001531812567448651701017613240827818483993986715794174237025616348971231835065547266917900963143022728817582539339142462623480907270880673360782908261354344464670562271380822939822847503860196554553551675267189332301836915319642188131184101895923618825621664919664437639567452569527089394361631481145031952070081042022937147441184931121989008185591669243143232947637089250814912392882863468844783554308266325685180888972599367690969086406487557481785907991289100211518293168816791192226853488920789849905830474562476078585329572106495523288664701848779686831654313393998449801303921785523256583509962408791222200486420670768336331098477483275897703076270947232398487037901112843040184139751551633054491920672802434851083348948386359067210084606987771059898454630110895283934939326770314652885655633348317054343346259049532418045244135498930256733332824907110269906642638217396639324046981444631609114268414152712397541339875488556416666835804613847286855606335795433949172842781310568648349129539913292779150460916639315361868783844213331338486080808434090272074084143993386299496214759460499472062043722438854569225853894203985407799848916327321596322027995685700071930540972861707270289631107627414660748771191166959765139401946238567118655151182915200562458991465132447764363577961454826511007415490005363661138083098707010697696653395429209522617753225543600646495578856830847146563279787607775043157010711148330226447342725304503310613941540504525000965535001119417607851276497727880819351961789216334336357551391598446606985019389497846567110841380189717135077453519611950785633428637432417117833993481311944623238511730140050093283568994774093570257471809119692455297055358874482701419721301530922776819244437822198820790723187510236504252662139176383684666718453573011949803766002159593607413169379342776442258281517526309358378999048887927510221226223868922200793219997276047640202832663426345595903695335150596664350505121384287237740197220756172605926565017428829930493640371495045664982084824389077342620326900522865668723680204738429298684268433567326635464580827295262792598337404709615606674096339887990644883725596907555297004774719566519644463810417962695204383443043089377355372797366348655833694661624709308611726333254757280513217545240160263350252692000480551000837910597907109436324312963121874815039031315873052126092059248435610262920863042450069496633104574987574160199322564407410300344509652594565182427884167077961660771634636416028802032131251142576261512068258608233584967924347292450030802245128851730697021499998336104404346489642408912553448988566144302751841109490496131161809785622942287279667713685374623537035083593542582335481036553973970696885005137671417985737746827910394980678215410921222815709170136376020918718299623090260003242430273145542343188597984653110017927910896606397381480511304285823661757436572856670496306660161436527216172952096675683946908437371819815689964683996676618785420772532237966038226698816413352728366320214744745153150253232362512887382053106826576283355779462747842400446105139015240532058754026031502680051597062387836093335447003785899767129288045375515785368631338192120233977486698920780151970546888487954037419127694701983618821274047966997003245803136034133565986965340708189597248939985550694636198416824605383499164390079436991062151397567039189395041719571610166087312749698212332066949962537201191971145731390009996957543157869394920047862277360052968289934613615939464811583504932622341325741836805035486707756599690406154226715821265700850856137292939138512641828394891157871184613626390264795879868427839684684904259110247274560026738856147308833152325731169406960067878038772239727209614009298375655462349798716655876832386483107034754416839518482061947618131613057792326445439113123242542069576030539244555615126670862357801589312593928709369241667675691509567410411170458426679675273170824415461525746306384337159016272290351204801270627465916275950260075632446675854173915140898144007203518292834465107512794159019202033043774944103100711163044009824866331854544266452127527964478241515059243665337488973251109577383139116588892747411179112633943654178379533860448575800583986971019105629962676392008954275613505810533098787791241159368694830971763638710557269935435354675945921226108366660204815504892031267145486265296196610353759811874540347110056954636164894895135768366195871283481796763973379840506852370665029450971884776759945761553186615447374416023323869582891853178252352753085598460961505461404624107404041495744344459503084335119551890464719622704944267884861077725666708939387832721511455048933155958989086619637941566931279865433326956652773779427738388437375308494180303793831492497008368697541504787786679252002544578522928651930073440704151687724131373634447780392714384472440293104545680064188380826903568497682511002594730999953121478012800604567452698977990233019023720483373248238439006991308505219369480061921275067951698040328461031691096027365803456318897103368476789766273830148174790851628601358602920974765874260952055141768508683724973872266784224138149933546220492461158749636267313114879792319896021266116120747209397357396155409774335434065012136780955876442078681993229368422379747150489897069788859698731205348574869650896356211958791747996765827765599176198989377883069865349493546858494810142486984009013526959987542190409340301061682982469416066288088618230009740114129858878487848747258875019187754024273737396179359039255945481796684208227743213420213996319304215933810819237723984523216928816726335747456833085906648848928580918691526585533798851098993411009854733727185052653562334018561028226506509423508736880933950269065360155686844059124658533722409338182955372444440377818101622506951637236954715418858575013352962233432324101111876525922646738539743974018387701212346465681048437775094241987174510191339927444276870266168693744967501710864191976806196194234239532310426546518073841533393226453583805737441578663781923144122246254385907324180938704830599791586717245503411318865831336195958865658255172333284342347209504747819984018567811843143572011090196485014608408826548564444430916172119884387918744523915086905027713084912020065267987535135576234677854532548212870954007423178501182916095655106591029428740151159297964104337473350103826911754250882258948884579854112856504344123649561260138314827200690967827732990495686452283946420535831154580868544508863074362538019541293113740985799279876964225386344655003183598245169972318557599242717070840939570893554657253188436835964089239329932012321967150902511328661060213992325821915782512269478566357128534657158393722145689803542485565806407325700863557976569078647859097549892619513506734966208286041337331975852492303004210380417544551553331766601496994838323695405446274890024605707201920229683201578439433777129421738636957129006938657855866713338499459562362062249346420214682162931071912450533014026163743356352171464881749259812545440811743747545716193358922545638742334415754050449581960669192136518437050699303700920342537149209855672758520170552582305255843631902566211285621078771627985804174494578433261650442893612773812653929630713895026795010801450592859557102420319210685836684594671021158433337054826135275779010495173680747192178699842014074380224583818208444695541076832605001124346913431322547243992462890036079962683096115752666179277531181083642906948947354981073857552122222898121427467642730193123660555465135834568203476799915365656211665078061748167037078763972135410964763951244465361515092324163035027503097486844567304187460387214466884337052114559204505102346602064566658244825421200829806217883930536322940608409088347096032923087273163838919802962183995858824432653639432589669550513014263249713328436135280654497647982563884634066106897122681628889213570694973988410479323890015047239370425770152253290093881053374856250856123300899454899596165255773259165851505129448822418554540778991640509514863963069061944058517322034696924819001428652208637815712652808255182734181541283316522190676273751083333306398684946262814779077577238928694594028085780345891840312243366172583432873432186345607730412515071986508592226327020533544179221705099608820817620515673981404271987739243326735445703075607893836189545884106902874684888813752047674510852485197191712195368971017269150065834896746986916336361302054756371866372834476629004003417431216557656096694420504238230159971879769198029231062133099333254226587082551974905994600067808560999982772272858987407846864141353821786440942622731641768385655570652909797854332125258827858285070926699476262066521281880436008334965803961199560763524080137130637844678675961219823570677368777692567879499170252579033260573769168511243784855412816190122655446935150119243437298050651335784296144878677757537503636610555574900687625096797150022895139906540969350575656277975013234003155825734430206558767215488779320565468415055212412192167248808889296438312972530455284916078909995961993332986478875202233294872808775061516524083970829939778632807356138653035889225507687012825330358676147662881402615685743249121914722984741990490008569049645438583912144230010794157400139629065380910307881196689816341637387996097884125963276715506441168365456297087294571995415508382132902954352702520528153739060513741377875738897561484288718399764022696108378833227517153887362118675760345104195817949312694910839182447642807853083024752494050474687440836642660036103045970116810587596746126816711899900617238670599221929291801558084118468776912626013599365923752997390174189342119535617521091115368728713763164512929744050051848230733421762065992080091166061485624664097887638726147657124742910369347032941773052055552230745087967458200640439930563258306689379067928230608520790859255542677122314787436884515972320456427469644166281307277283944967310033351617589279546599289129646987006408998229941174984616342194881172894625709607875609966797328095089503889900385145697849602330974127641890820879736233028525983495438948601546466636473834722866369225297186286586001688492390403383419047809908772114352623037603910214830349851189432346952051624940602504955820949698806633853309971540396299051430438902066856104010068133230107328534794337946176882110747037778402235388808302402293370939283858049064538591290555399223463554742087639440145012424568551027480888703537114791237821610580707511357300851601013463176416516077855964535088722963034067520933890686816522798621318519477949735293287011115925320232558668495721612863862876104232271226646140474796542636838590828984393240098250582420089717019773820075831962996454916207614700549565313337439127648582734206246641563200994056326082641487372282483250106496208254496632732821558651649340577289220476184393854872823233577903700895595184756025813933584448582712272963571433737333307456315360337353993074944583752394989847638663793548652937862533574296150874487564503013733226611014560347406865376597457790168276984318190995269007615899508807364583964075774472963126504854138797849258517080219641229504095188706426999314003932581429607781442963128713230616276183611107597625584945620776830135297702926088641568008243717371557676833888117141968758194918214481145154238185995757314176432841821701450534994634149170445146393882712374301831242485732847894290406062885709963734208808931013350193795171435449678243900405767062015089045555287333505043765695403724746254511629471009279664299184902928683264509316149505074345807734804898960145670939308642893741477806780380495039572578265473581886164145342148579360088849214682756658958842758027704602148385191822036344472975318390946113169550237147954665989890806317194593341227234765933166501387892099012096393005556941403641705266628234160336461213397251288336994526185656915877391999846309566726634941450095159548809624615764565978741311135101780836139723004496144206056004676256568724988150532106541604236712134418116850227220709867413590631846773970792362648638672419278435619594346061328765709709093755477187872172090446232916340970502626394404780588782015788324673850755930918825608495192346729854380383842634309249946942827792328562839798918061904478956194229509202937505593443118545777912743661185835035831543833523628877767115447174382726346286305048180767763822329071597920934174795613585506009989178777640387242816569029660172664946644164259443624630347280897252643499223358894042648132366410944384652510571787241499572158233130608284523553840981694062220108139509479773851493686161011992261573248416751292067499816387478565863796319353718917825596200604976605303983568825753370065004805091315308064612536875307987770805384511503842212618258558543101972767171364068209923616726888216045597040973371867214811715004277330972182420051873219389488702805311411379317039382841399190945585980897932767598612170750838603084289865645099542390839787330219355280003102974188508859090694974329918183915036971199965477875945598145031596745298843598426856492947601214763789893708155117958725095440778687140852538278326418264026861045783157148302245298024336393068991445789335470261401174895925597549957969849175518059357162352447075737296000684275840827718837251884529217857749724570849337585046008693040703719905368644155926985146763673353560229390402973153643023660097138652509086947615488042436263029143021297449937792056838139984654688049472111970527509115853874248565256131461148315015366352562307007836037021018994242795052515886193933241320010345929319144925522133340405557356163782299028600388884179302282475863584749607441721047173095760169274928564309545414724062807209412650462708037767705229229221001994121182018051149825257531737428787002095918392049312745806374199833265837421513532994487179101029895616725529336014132356522761183597654759539002353159171096268803977743643498803674671442277892731453008231574106484855164320237445591552182998303603014743569389288788556146787086606288043040362905393655430708137988224281677974656130152192381074130613997321753531150830670910466096879102633077137194407057331210912266914840295226394869763467845788717347704523823771195422460875686831981132342469500619691271274260950708462068169967596756286873525839759904401951383155626237270516197695213418937517587313144485149944150917633816791889348660804532463765368861679967320943184146681795482005925109845024966821782117139563633680318004776888974864849956687100728031172640909853825431983962248041043927061324625394028212829193775987751377689184972247018734488877275329431772011525597146394854579041350521926546058069630810006921850446135848583920005447489456696344579663754243354823306108021400627937144265033615375421401006774012725230209007010037802663652045162324405376251433063502354501815232068887347862565084173124978545266752708594068718554306930355080942477135808897154825065976962527540840835422780153325509797775720672779244744401563542368097966866250389824235623583656617953480527852639621558795701566833490175875438086445266541601776599159410506080408240835356028073007884425638117386472758057856349714201837138646214505726137321559061738988680684656473375809901760890803197997659807200596020804935336784485074835261734737127507865969986507548734585868203703357917414406867562528393698089685934901261525000553778664519895007643503065153091882128921184677187693926405897640893536416961994315553093339808376831949498695629571082113520328895751185121519559694968928576030922314594015238120259156928716125511718680406069111739283346215594307924678269476305933398745558888050718876640374882330459018603463180486017744307914141682727491795557897708439065955414235308196425911078070161235115223411377739831009078533461254657019720846483907609855835789909895881483935120805720770325905446130903484784090985996264619916080447703064459330035524316110266902772577061249657379736725626051109931086506969880136420804401937956368324213652270401887575508713671058290036587546089713817780490071729927191011843766188337170416904421268708038334621633232997909113441255623722206095990480578536160827249949052005493955035740787292544524242709040676439982219112277574944522092353059950620379026787161310113918663647323295209779484012302158053668582777997671152006817634951198965848095344797667832305916253002102219693333688472231715225556127689761292947828456022126574954477857984153665240308562256022230429193751272320431928360997879155761100286070473134139355236294190924703674648226912444602993314454846759827249607438110309161875891164932684748000258146314161840831050817914182912842310416812046499476482233544176753255865723467446191027167181623264658684922426405530387653951841672998600160213574962335635660508148791302739448073501249432003679988686492783406271793739863163327470918347105880366760158431897376693644072833553961021955679916607685926580720152886854240663193802512116853426694255393058951473984643382229967610816819553852520563182566555885788932841053186360291701378618186365857823243236389914802031434410504536551711813522406254595178147682861048355032828899674629785090884369045062476614249912817771519855268780190034619767963503282842995426205425903807445473142364355312088139610015531004749252817619310018119191472699993139240962189420331493259553983471072383426553315954748526483009010374801948495123630267525606198584658915346342276290258908474013830908021235158179922313564088743203927599907235622093075734002642388079607727488609517789303768623168864880365182058904058184438558683207094483148675791502075520403428013891927299964672056687149817088102664137681245660353044148895372020476031771257444101580268249948247763917204349469686618166813527646922641373017799497268360914142744631113598824751029651620545346249966108767619970309723373467346348513062321118194950220125285213347426775294571625635275455029199509956670930604523674091330063543125413709843468249175051262730880285644402785027697290032274573950403075941073362301658879295541658981980110073041019566836917360497375580411153436205080955780645943874531508484815873623440946423233318634910988589871555866403932474095583002926440348464235629139084653030640208348912337262479660681399590461008679863411054460492042145901076082205658375157786726724369041363406444990625021557972001744269576883540748612333415613339692570019172549918254501664833110940259872390063368319182943405448497807308875667932939823144551582377375708393275472238204537252764688623815843423176477683568170162199090925392496918532705773471934133247863331206768039268371089619081528619348264135578319735191976376422324753324969449733090765476619322016656756032695049025760301351559826301539261836923443443902692669640844834641683928000489658141149286264108477411685217642237383632342986990065243374047090404371089450271703644786849593003032452728084661491172818910001713432518991134339143012017090348363112901711781188046104886524411687186452229931433938258132232181917134760824556972068620611576658427598383857714358334721626240358175528548116613250140354823278166236754909706781612681194771610729433911345771003427893026027759729046770678371510246097919344294261912494289935767111178899611887907243122869558029531576768192448185398300247726763019574490679552912519561690815733863501151004327817780099113279406978884205000304319774455988752655533371026168821723954565938230799233560764026794912595950687882145091354598305750735377821304346687181176144512061447079008053201500491431225955256058043950701443714962002674108699664604834605256115867983343943930950312914465654599385315577467351872050289821634862549808316348882224800703377076454487398262122308297900719591223508409764780171994082026783211531891283377421079553899108752398555327973087095053502064238441234971180065456844789912152192355934854792492852021218454116201478117524875141403633317820060110111481945825034105527106815578112124174167591306116125103736858179853809231293545476262724874824914866374481341811031764960608365459404381808803089467340608334899621144601610878371218184986527652822908814417741957126389498777426114361582868802608910407137805744097451593280010454758031290320243248953162543723919500145060167983003721728830097046181613014838009589705702564330748448853082192987783399828375945034077224966473497091199707789080855146381912015900381205807862117806706088633059060515550108122320655987542486322101918339937819955885790497090670359219519637704377742295621042875683050570237320124338010252290260044658243719190441506108582902059525949211766233393829177639325496937577100221404984238026100645112230909619733330814553910644261624499281940159665411303918176461260799216754376652647945706245834848671799833857384627067984726518489222816453640946072587954470650903480391893685610615687005094816097864609042373954366788938692806577882228813227580473643835373245911202158882931604075951135815488019489015202210677212967816140678770780479982643119598635835645423403586483476654948613823012951374154743976820540860730976500434322701148497345180259014861868215654862700494740378522429418903546830322014991769738596797634469561049215413353283797935337538402120509191410799333947294789318553387930930943047978320650374953356075474184934717567504157889310655079791694419602653948474841439061853853810202398868748270453258848902711446876390220502250502634291425558719476057792269917005862937324096193329512340633410742001515198746024912429041548927736234146479758476949934967351801777658255330729733916896706008387859537942561035888638728089759405938030474942167107795411559226693529048184853393601984708491965642813347611072871813566359564143150310964252517189193005640652788506069221702148429048997325715959082799572710499238505918525995048805225530806465621559018019718036352472556371873991166872559763750301838687517518115319614755513133437996234043074744515128752903329689949437173825429588601883003345623867571913894058151727504675366370678222607664700563500835177888260050529586153047033670472698114889636482890018525781927788709778872980995551661335895706102468114169313392588609889235284422340833613772867176417457324414793159564534408176196630429424678655299114546902937694735259306200771307390132437752001813369763397281148974153408911132096346393510217755058802727361683490760172493797925019877308364007808001002401198751946810369833621954497233406141388561296979662588683084916064459495019002518517567215414384690230982400493784312572871874966381302707743214758544045445510778313800932531041974160076046115768182409395353461688247695025267998343839810290063178876708407382956253610104285393723083468135301039475512141033245898626918104251640932976032763767633893487188818899359149843597253440058678781290535618547404446659932540597308735637440893308646486324794207136121035711529909090687223816223451722371407086204161630297623762475952657496927238146611625864843894230411086500053103708907689378080608665102849028810015669656529348261685614887486246291794094775588867886881181286211480859171958540996904322721149679697157669737705732237152890379575320090709500977889937984081126077024016845726356778237150189311778911827740682497372239446566233893931050585333270526642248130541395747784295652907568936339073762149526959196130900528068184305626008293821011903412654747686550080489062392020522822573601219595596549237124006099484702176164207847683268953263134438474269037522294702187503701757526712343929476629242633085130043613247279333758010580566099219643782425993022491641997816449227817752001693707016299643443754067363250501156013658969334364241466719636672443873935511262168920847057551948399609871121633218282429442488836992941916730749972824889752543561846249576797929510729491515288165798312250625921735285020187474940429856500562653725079114491718546809016902549910311210768610606545863457662602142032481105169777088732368001342934669140438968222921801104105674222609150605022755975326871632629977554113699140504493736534533804338788214379853700938116205705071249683118276670740615602237925607670886938715116073411547093555729242177536851999953981352302397304757071169520711947833999385631836204811953904488522379000693168151927247523168637397215670918472265418473054403575969704222051619817771748350670194235416279644713821956335211688258656510751063338486428699374606325114296991898880769021063630681706844371416306858124016225216779910167413702051183625695334127570730701695559952288126511000044584230551902047099880935079224571845229643276661672690829479208457450976193789309056416073246491706166457098245123504041922466322074309306902312061902904401428631942425362995858099501847621223064038182950599092432687117982588304154933247489909523849903311736924582029835096209165515379524406682768119853606064326348319243464700614494400623981919879440552291319124129652076574868488018328025678848114469403222396212083921590318944429842266778415241316233550042949387738680490202481520937535671836176674106315378294384238488930690604920405955243259833215875502934692553166372343442412499422943974234386460079743424621543534645399113323000743069583966520549049964839925660449487395813883653763029968238903355153437274775488535452339540054008301809229630394134825895073821474456579757434008448558333213679790029227817988314946494289114327877470833999323976073579503954943896487569676292309701911833608822876364551645364973030822416851666628414642030177194320699195529679829745708997068633152022868779502200830908223882567390038657901414012178079145890790775330548640618694941314010710888290066768495633463480318761609199498436433342590914912498004631085936075510420253853784414918093398590666845946423775107732760613578607577388107644723691938288828155299537102247540491698098522213389869724208693470082724915208202984627940902291943247084748245991883319796477761691972873703886747093860914842548034675777540051724459628671586298396386992116489398867943447989182887179977558190183981478998632550427620904155215014578767249453830506846129562203906721927624329619751216520461887573010422212308553850810653834651940972080009648058450299737898384272939764931740153831326466098043789369791931634558639536965692402772890515018080334558066549240983423184661115217767529100642516106169923734344982074976736974527519330228936047063539261733761933406784277514020236372142017952948762951769650116963116179452285631596238702686245435826337643353702862746355522174758159584216874153057159846260598078633311303064099684429647320192159166363677470724685616496620514031787185142681757856594987355720809835338354453384632708878299066781920014007533854503627997755987313375337910612695130598099178420260681588497217375021306900921873797223259908439252341212760513094068430922289877005718772765242399535775240265786809155562069357740385710872499616364748799929590487559694503359314162315204835763437526883950266676865229996820542600179553123660483689429576040306862115567234139100006787225664035460929567266430516097063757781167475428824629140983126482744584232629382581165264379654051496786939513834286871061988027392524251749440270682810637588304324508301877083415982727654081216268408138246753812717755654319229163895652282948814024179783164858199610549969755948770069059868061330572788182891240983765505297832536368947786466778271479355393954326733179314198123634896487546114990484351997907029203005124799533704794398763605837238558805400588495564093215698215855586366647164122452024798171185001242868404444314170383742611609151421243841169788118607155784515779995697590233814512154493753102516995364317461964994705396770031697749269001928619331883491832598828293001936141771250749385651593222823925059350722901038799123001153809127758189579775603287126798847491343165828388744208313954893649735571746712555714022899770368167075272265448484656486064178191117459419477600467209829556501157269738412973699377923942690460801660963683361796504744876275004079074306513276818716891136245195508312845418665530560028298725384777179356534661200450414085043374784486765345370976136240156673629176865833227373365099556984827434910736245808759641314705688479049625936280011305529759671674970458676242410794900006737223195694561382745473360284258674223875114231376184303459875728198611308444240776879026017748882709325914436880331393348358195451331836416104372037626443040794445584016107203862420218038962545631144896654668362352568040146305371174444763412814016474418049604586597569502542344224165315070361489021093100285191906638187638386829590073792110757290742794107191179245075610042099126887429690291286506004362213882497302753338761329329963503679474250713839756645376883245392922679395576145253847258569434401824636976605038718732477217532525008636365623628525147093937902541116243931546745332086969827113084624968711005179981780098771544138663802111876064779661493799152502656879287463272626884582872095460938576082873284716503319133301058721813192077906969972765424172431066415607287272781364962375483791698049210194880622444618524793656774232197168620621137739722611796030327449873888807325063031528981945287518479940806373009963306315155727072279848294288696787421163012094599695994074249912873902863004550480006884389069598533423718537335635660478288596709718503830185743548181444972847136347605236541793955528765048601587055958067474181768383020051471410017117729393081594671096827637874499231343864275863916088304294271652751918244720385019684295616066304953570344144847180790770745645013297897225688445723606128460528941052958364888914452839840312928621141526117009018521564112546379495943804648849774893162582812874698582730985646746222253839128355606971750787445719656968059106034694588853849734844151030734521945320002286472982589358527204613252184965376800500126727975750622058328969413422137112146048017637439473519182310602080797912017659108093973612081195920765545832785622554505617314104247836203946613018502637467452817448138399834320414660289269894779723112249165121683127288415597502286438707822138079142879180619343494383062287404157854713893993472339448097103451730592329953723198909923607870329645552054129785741060895162086222577039509273896497897847736702429022603563995564017838910708345148304575437278661732972908417070583943066795672923220541417071519008640782075221788210322102617497955275510351793297622225837596436555905208666391702123542694896933896727606125263253376523182391412204399981229262725549127160551975443030727958828063329520346561161619470426684463414740916254463751639758763025396299096733181463275910568015922256994061445586876910709475768699898651730879910907790149616235869445602760481336122306815894790434086295560765559902204366605130127417295780470136861160551890009153340097617627684196390313274238653238949777013612951828176835783657276119767710722413753408634578718021209371268443890649884363342585300647375744139459600165438040729340657832529728886825733366130496103739760714753912525595966940979840597155223275341156437866821762152285541415367357589821452070955677521166240285088923630054658822002299752572898567854916824635542770540590459489069431036130008925233496105657002679828301398004816046846193990503046106442086500618327405893364997426991196322218416132465585106741009233952756183248736295473865744455510095321723246219102421239411234692684775504703594097708221560216151401977946556023383102061201036544530739480974169176650830136104840474547866017740678644330115920750727105806871586427698825553438651421363035993245218610531475266031401828914285914580345219508659657404099557038599504007252038894059417312710556796406445611038502890466829239087573031262061987352909215012110678361020488647282314425824969447254345277200471810729368809268833638173849428393228687844185252091428799622166025481761563427761858380708833515476219023641119558838856641090754794553961338025089634199318984978481970467153483071770054486488935980738934151030492454849341804890098203573122946933039327325362601875791125440380028242966885511992125030185658975663313713589911784910803305533842287321579153257718008427732479290765620688635343984888998850449048851438244404031082442010063836284611956470869309675160062976349384898204750329484982198695215780313394442466175701243443036126609659729980373972457987074222558034792924960920417646142055828761855789310779692210977619535045171110711924980549838300129008537600574999071458658426319234597895746178631983060644773845151283122794835275706651211832099906874034163050190123454699707234665411082748735708181674524963502958809160236346414321973672449622912542453842460540870450464187161887037226982406487191254472164884937682964094937309496894185054321883768153307469503124673680246284938726382868892626210318901375874271328571599556978655578357154916362828289279593269220405068336911727051054724170572794087973033682982380661998136574894868138139756646131509767473447910566849752172578909653947618131490052996353932880710570966231827785348768704894244955379985828402477625511185730784353463775906931180399338758326066701862333079338008842359168842969593500305237213768059015880921939807339208393449622028913689237162491278486136691821055843188472986347112915481606373496869390690066942350160164426197373612692373754216578816517145443280360240984861230130782223686526372251097056957987282444559386420121534580966505694891042670730561345927667740310207854360436537519079587021798731745866508659705830432220099751834556157478765942823943058037792886363606125160897178696880876980789155181014992912717984836358976009658005601487983850973780230428864355661728450236459373244891958283039191285478680572533998115115168901040808385490617087067190278556954597610546312615078899497975567264877620033024756659088660206541850982980130272452301362329764819802745532550042861200953859400337525720029960541066301267944617888940290380736347982320994959014136112702988896538002038167565184381552914810703337200329920604364254570963546580405042491678383618375724046684628412309864101395798815945168523744645843491356813918894586129664661497794899132447387250705027860316734629352104224278123124807636333030491434329660927297960353262879561243083687222059253098525974226295046585860094973450700174526109076442792492332287099562365708782833100548799776814923152611822119368750060287421151269632009446805848293180328222600765673936572791979298604595632807278563141058063876177584195844722060413232859124735620824289734112444044971735762376932091630222887745622180185461104889909087907484381566475869526933804902521910081636709586709865207110809527807721333167857572934115806999162291505845690276561669693446071983845527079356706491383236215719572940403345078610513878246641380853263727924440843512672812097686212184760869895571576362854086992533300738443667841908829750468673233649748085053609201576903723766011919798987027783107083808900923582105931847989709613724362336985993916819115367679642191909083519861039638677931707662048176663909088701982084357586662851931337734296142963320920276399763627108225404954974809231754760826725080583297730833560204904850868511974296242896034442328940409509573331839024792194464067108357982057894242263560926640684715282218419798999657453063121223375516449070482808259425464894644899079050210996026752637470088418781002467244861077165598260438202711951230151011260149573430153187913714566313250850210057622558318832395481525978723103693727688632446211813801478030747201489074096345326889097534219707930481416597687566707056793018418115771781533215626337213922509971123089229991020344737232969081454530869109589804949492795793655692989388578045243370154545983089803297239976667992247174314616316876528153333706063354995557900240948048162782940404670058167143135043920124096638924372170026621941204971354540242799201401297519648700479706706562094646301806531568583171004889653928975249954573418913612155617586438381183511207816962987082307702191747280105264089620375085344983955446432064065019181131508325728824821246401940161486454540047629279584440939275625485427649725343972767981570882285984472751141868137180340119184017892275727030558183240570996816091768077414413079015232876238980279949586886574292587202712064239209008421333686886234875372457486265086111375577364764246101832414958205461445463426730127472899861263006126041163885500257558696067150892305475445098096075740272800202401185287287705609441630303264065313598045384728905289895653387423119953787280266604347426682259948848380804059772463041705937276954195397030340933579077289656762781532516886075164883834162378522805544162101063476749975983677643531210318109839905189332490624241211470754958007957438746530361634473102104786016876488675815572502744080107019394704435408637148090475023956277442133818600998904525544788576383243585276628232839703143001083928617081193257187127855474676413320695858791064325382506771458711908455380834204858623730973347697615781166884229212600230886786588288438307860592099545350396265090897448520712554717889249525853463533861827608100537806955184374420681325836924691358621463209677071612818283055751577859089286564439450250497231272145642698456699186741009687816367719962306776225583303786216692343051340344143585438692806217432280238861670577330485018243616365358243917912723611148240523079943232865126011010891809357884388340835716902627708345400060944443860811222315081472971718786053508867722319490174097560821818880047211713232888107075535125286241612115484913824503785088300811460661686413127011554559856129504008789170232155875576592047990961133089586036031542713431822505025031453366821016846911956330800356825979546493361499263123271247030388512277945060795046290711523276394266036860992113682622015454055721822722396706758232102694610095789213670918784931351343620023771911291285915655736754534316338500663820704630021058590340576036916123154970783506916099173721612829901512017181000223101072060469280416786025175841680583398337136458750810294271077611417313230275991658371720497466301709848943448590129425622796502576116403658411458420448231035918775757403602623433170345836225422469861290043417269910642178350517321222063810081609716431747430702861988884806770524627900708981408753818380437320696812318748529855776140241053491332027841766218162968458822336185872790915706155525342945205246311212183155945284707425757168113413369949287102234831974211400404367376860202379361988151266826750929822762322517010257185594994046007079079864334264208888515668439001097781949088296605160571205691155404704442688151188485975260992940418897870916650950283754114717599500516348894537243426492576803291471282808191029932536375841206050391761013016022984653450237328260789815540316780222301595711537535284667768387291740991583442872238091114711910349447374210859650913761402618922638743064099255299211631062578134948863215326688536120099820469639363195404604382865833318184832612611088534976642887746960303738036060005452548022983267815863826704449392030147897322079236057181898918254455517926884513447537481699048456254025375457175081254451250226899782549447150223919067316299467677160053694493455334960642238913796524292024218215080708285456635211809557632504037809298694930393625140823498745654560041570324620692676587133675832388227020113847255477740679163209697940581219401363559301064439592623761284443254118927847642001182735710719134321893007663480168941625718813871522913244625819101273352271672936991282193181668077394793791582494218683121758793410344307468641761632369956564497051042407467708429528765544367089780565596675198428761746070963221386314007853219805609778391025582383759311223612068155439560039458689934733022737321249991327028568703061008767302764279125129800674768883016571521795828671921574860068671104968871738654123174200975245136570298268877657581772395763069072570493687335204120983692708103266866026658624972322144814249464691615052746108753251861184812695472467748830287924092003781420080718762556715143919362683603487366333672899992866683684734231607146909637461635586156020150006291257353349938797920042275836790219838344101533491104095064955369932429379967360085163049923736050370679410093930162938976839828866820396534011824320661706380128928468239674508037728091859373064949876506259874282513437386321375377041670651966230416492917303383244355403257544444437329348972359736880632216803660000507866612760307234695634565333786708342026275041695989356872198831111184626138802642885096774748416298927546618744430846781343339896966684166647293131382956739758332380927106138448328746749446686235278066630948263234611342975499886861397828034533611210501099477083418570370365081175496795966554700662882088680366956246714075535975517895693483432310696334658895319577287346556308488698753500101917914212458235582272248700800427639634633479226784056664845782379601307130301463340408450886995695203248915437611592364086174193286662069514350656332976398661742612236746834448823633961628675357467199645188093630157693818487586294998425703529406837171227118524883864144174978962269085774421344617297507779786759689196435768136065955572168194054856413751368508585732528726678529636635850841137681880646774869763191015622811389811637753531394509276580592212329298354852344062290258619390558306982755806385968875878734675595199614174648897785062696800838710515712775538006215157676382117940661896128248659544657151025847194895737342108846797982205099360537019238079331026433302238235189640868470583898658226648544817085749260221329018627184097720969126609628301675767088700817613289567014679563465732058128568437762729124196486379454871443180532801213283875960065527681765307955179105228155860546882922424968523456595728180105341894795333828201671548473097841199796285688792452833216737668507939496964997521271348600275877108786468233548798888312630963500141359807506130340079137671082824947960711837447926162877047392630394639727213800970554500336539070002546054739485109190618091844697243372710586612807112039376939955360270010768524796061784371089086562233219946553569004758365309514774047355541709821097423287576376494723615075038859282601378540958909178483040054074732568994740685941307924419062791199756535192388999436760530716868145600684655537859170551020503146785083627027406162574380591558668192688472957398424162726405521322755873224581087748090959615369615664849659615140604941839563700972735351650358130203024549972557477445897224258049426354892350835262233510833367643977673632465513121783877296288450664856493003298046456937298565108019740400530663042799096072453970825639845785991983400796098287893551841784989159497285982501194354529742906040892634034636982306148119932986974239216492385507281411464532900607549356555751956633643316938480086746859158412148719261784226655101073993301693255296259391978638236072564730077798343914901073182023238698548254941958537389155618457456716076483827331802779780090527974298356837376806071043171822861173484751672232883932695175233370734911804442486218259928132745601081052273236557913185094323528931530455244531167030455792883651537058184629421209370953584507531862939084859176989890400211085988254289823142396971372286897912544102090286512730727039264292626938808504840311899378015575928345977105831776719233793562555057325412169749986294856846273109299901541404852992683790529712699695090816736602416440015890685509827885126887291511001953508656490805212747693273243807159030853875658598610066169800150290108747513544945022786370564345517946486269210034711367733254805784994653653427228519072201245145251630706613602675704899877687152233647797889660604276288185386909266261597196918167457438818261952965408853892978431338314026855063709246736639590672609826216702429276456177415902632522768403059058402126805638159439162189206412105584206202069532289246246412728153672143157613242288538506152340124813141523740665334776981521126009245377302275208498197515554094932003893067934775879815785414071836619211209338819053429141375413251535476371182157250101417251856485198280520892746977108062066879830991941306354768897964666882845191568972603819188857688354054654950381892403332874298801408942499770698072992912686386318841732992619895476705975997134275224906939013954921553868465746422288516762470252012196042030632317198289964617698879746020005642723955816373121660439039169190100252032556222404796012898585980242477663749794275243506951867073889781884197591438004436286037528006255986259037405443645059103656667569527370746975794059145823735664883401915004996371205957788088084888615957761502707483892672798790492069198650163269244948041407429144413236048278814234504859238380209998515297668877895622727892476119688879198757352910949709557328416091771218049055717079073475595280418271848138472166715535402640929533782685326409684849026123588321903085961180471578107160944971117085661333568186434138015105492653627370652327158641929883568415078092666905593068217521922541318597428725925903629797977409422462837801458848028101749079857183515115542108161202722898367961030751271568524935906006115232151027844037881878994590759080108493367872259225401382382726074336797223683702326699201351379688894089439673515266359287397396789012337342766019031968671824892914222684917366447644179375852126445925295660409641518613578324770423637648930080056307107896919760170910257166819268935677233617132814610456626657193470241452164392473668774123739547190033403229332208681415061521779403493016988483401982662451930209069493003505305667607628989188163985843671977833104509987395163072027328614719409965319929525525659750749071186284166175167306227636681724622290212983490218322138820761965743080816633000916510264861637181865446966772161068424737822003196587167099961761719472295805020667265965466038907278349217358840131839828133587289214350565279629368046093440108799634592343492955244912123761617488080516604138008052278336202155069015572944657800084168490699086977552382514501053081124769601816994923567022746870858670606098148848206027531070542260805837020075992179524120445884731127186133229579948652669568801536465780992368750704427083609177648860762637231827224164645135391273730764229734510076907483662271576680461561715098761889338211562169393526804095946727231777330602903855459865983885078542316174839206768142622225558748329826952975068911743931700243212253583409682190916703823287532670494028575311595521232969817525088089449570713624177133173442278726073064896515082100118600898581341199677727454226103556586780613435148094415814107458755646152497873833317394308922681314464932752045573433500055404360412734485716483956346320918354140886372165042491060552486780601665299537374920780845723181918827180384816324243659053925862917312879022491187869096332548737547520951825371360596266871377480749615949640601294680536485042703700429200844075189850963717050095222597061831517137939830564254641120819457200076266825764355614258299807273368107768865455804708367992482387187922618366354709398486040336032144907864767219651998812745914165476151145395434820780682680504488264566332121107912427434127422537833958030421986395419929904779930316224398011741265816941884320203411071168093915062671236646250328874819141396360622008646871110558108695476296331250366936108677145784258814106462057689313816773596106993714211706078569419484792353619543896155580263869024070957771857393143360450087237495576841672108677680002941814398552786134716605877256208759221792763541943627580254879755026146137044276579333236104670386538225638536000532855684251269379170967370144629774956974299940535539996843635316901980006203043697163039581687947067213907070063197951859088738520923385489532750318513895978236711929695253537498856084713357943697789309776727337038551966508646227698849289939937712866927241262178923953216270333438792059016563363111441612756092594716546622856027912474489563678384278111306077811837442539365651345219070304312122116965428054036373786765156638101752824982063359641904237837546364864081694771391338776917301127571711577242787432094287531282633692000241306009711364503399942221867869707896240391819684164153365913530471260588157314125770058680349143424243554799225682860888599062283856201972970593308475538871058606024577854511526868468145798568713404859163665189497572184256668408753270910862845188917728233421550399871025177331985698384400863324613766726080050551876349995095865082343410428870662654252606172743617711669160036623979641147727623784862019682692252774769244000750792756604190517880689745485419513305117316173805570986650533172819156223402507618665647835496158292612084384663499851540140931547096853164948271456324104397948444842404981384087093967801068376174949506432331035554323651774086544540873669164826474417375139169253148999617752503370407946441839652600895399361226137301102688296621945441974353039160205946230038016504408537302519534350818433365679805688256377447129496052765445681879421763432711605154390005667341826191356822648358354993872693571031979961714440142404663104320496358546443564959536009745292422024224298162127908215155490141356862296379622381512225744694165264938556771876233048610220443828813016135752260510950298756590432200516953011204857999691801415073510529185755144687251448709365318465390323086079069311176470507181691274307487248578025900643554353127222662722680577028619103429871218230390378842123076361639707378702577187155934288248950177344147989530737083266462080920205232494783364845050677179709498370141634865633615783649128483407963310815812011018846015944566432057703500627843825464636908798679000998522994069629094988129766800598797866695066867795602415466300522206824659907659902235554856600245965738426435519531967913522651714603603822400237109740579932012318318839924178567026426056706541141720622638334451557843438909710309154812105883780901479599872072432794554993537279931079394219489966774093720351543506083157265854143043339531585308774022175287654253824448557433928614615752635444104204348244092904427163734743140258290587558577770699158659330371641924232857988454881132323531478191521712503926927136313254669247328934736263160682292894385017482859742245776289170830911968003652289892221572940218426537568660234181744386932607266849269441790507531741019687063429047736420250834584966882967621225979334997838681174650047977766982750404526017700106617686286808698478034368296742072589258152585245780009685903404665497372029264000997155690080593318174703870155043820030029549699995021201956869401662932378926520113521348639734224128660307808405772812118452501555782579460150130658675874662764859096607687922183926445247240950602979209171529474320365702287722273146122599792932812516817138668145297585011117209358955182651514751120044984047077146046472251743921600320491084848787852298675484333164998622166471126351132039150504401644240383863143016980524685509527633447158136506710397497992601984208714035605907727885723061781408416105604241029453188118008303288275684380313035476523282737106609755526190743466328010554044627043176052954859929546962958305436186264117513799166814797431860248575175944967191438683269640409184907719355428602795232465717791598324444943552808675553296398831585774698618608693785128021830456826874708434897011163870619545124765018268107312556753971498737760744262051805806872981624191141194952478190135127571387412768765332020350949252377846667631650379251633842221461947683974173301751090155662568022541873445960962405355653295525141906766288283174133075082483632131988788699083059242550743627006845025768666119787093091541396768265685205150778402958020218315517762117785190036413414380177535869085015962974034168817694071342522477722355572907762440330146052066310457465911399711745473586802956741451953833648376803458122450847603810724968077451751399634680063794373281593145005472093014930965590174106232648380701781026266163411758073409271340794306945563211514669463198545187352327998544105920851905293256643413746039187099944688903755211893745434798325946868925378035643594641527494035384896230811548576338284958198962966619796590689553995708515377688468275636422369286264034848121582652478045091022002201772133483397696671730046857030684131839139713222142010851636609981200874315949995489035561106897104987049327917848957134897918988743559624962575168661707766622131834798651706617321343539388161775032923613618656212629967908747392163393975696485227337001477289102073245395965472463624386049738185451430067302480728222839114156488967640338824852648563022970710743590852261645222059921337918010919702522019624984474518344841128640899662737031062013847121057314570992891257147318996595350873823842596394066979271321784929062917463199900882401462438745239705795798283254903398169398514815397631393243478458252363738478005579364808089895874000312072632279833838205328949820437718038602696508101379918962381356744244485733102219981491230587011568504045635398072941363678452323671089156735955875610081131221886538237508307186166732883673019658922601238789199973581472609629010012807173432809639054603306954815963213908839080764486267670784150508084848836918401536619018349913683739662372478956111673890042411875265832965752439551091475729043676663352767846862419872802952556554368414893504053888540910439071417293356401046186624738662237371648666512721890283437117865897020616249956699623044382568637200225791455675122338920466830819158119910271457611792152429626339092218872485299640611259746241919762928918303840381843636290572074677040300391998499901728298986951694029652975287626570243167858608292324512323754677051685072926762884812022743793134400363322313709763328641751296843429022063469106199923074209534700043998382903315315626441088063879808668854130313745409063238894006496883275770450128493735803710037895263168242007013597568491925314996954099918339446364684252086798044460528333872378509537395407439228736399658948557506822669210293144182778440754786961846412503881443019674876556165583863653600077921077412997361534895094246465169388857126574274718979485301249513925088118982006516164139922037354239500553311068611535913091821916394680831148878284725742299261201779275112205538863060399576356300022761807759633937778812285918498773845775160153409655251631470212072424903700523057844369891623636940927547905062157768029233392719721911733322733044016098806207363871981040453927920319679292809393826487803097635041829686512213467502416759026506922101024953161735047949759020804931290398303046453757035833361379484002997345801437038816600604372085692128371717552467561247103457741112116009961941976575922224196090393741213769087169655972144013077457990761000180152502169153955978770569157996082136618879887257033690224445471704971746692827662801235767370615247858842411136461605975453663218632546274680120079230927883503956669530088196508930168866153175033581896210500422357134796369894832665557044262241429921755050806914217242628613881194663556144344809430452200062790508640651088400346276562460199800180993713782880127399451828374899288968478489353140834821170022536221234803518494413538046006060826571426687750654655160533633688375306739439740904238661277818028921392168260312902016209231238987678244042959872674038720436280557835717001056773882888135010808369743702011889152268811729792879199662513019383951956141767944613155270586531979923525470895236731646339756679500226108101714185616641980930960211096391105002592059763695484941663143857338097050985855001365236773122120225924454603430274960897050885913157002679278543205683349822297320759739519124328838580790134298510388607684051642740954484307546288943396350253504686204828939141705525959436950836732765281756701132904740887988108554678985919569312469737776535101135832482096249827465747828653653287547842786051878085996857878904219062051802520130155204206529194412466604191158595812306144053783365936309213497040075725987156589609647234298602954125140539640497354820487307858965677339628838998123827816376327264990023984064623593587772107388885382340492230272253161327941161252509430912385827953012312540298546961223051954033497661613887289795634810341800939930942853677369970138977312702852995192831897889177046845865379625693412732259339126550425338257975344991197288252458013255829969424562854204961683063553600875330633543951694948342128982937897775725891173687562885928476577317504676494828865734513442698030280740573466873603349244746462169523266852702673801838950697106420241532441848756309623884142780884326095124211490154854251944441011063269725416015187911488152222588596251060155529227856558757744274393061075877023118397074769848281200987340548318968732057579109318749491262915551461346527338270987877184797321292570413026516592605689510788562753038463306153466818770377706669454036650613275403299461969578624151730389645283643716623351594589464941392796539653713696826577262187067054496404827222032416231818107401091375996603646570704438291905404196386956282068095714890798190018512060120895084062206459436169608721576304663870447119421791586574955100705391021756437236893680471818236241408262206715623227261214453587707812583442062750158939875399140530898404912208690877961250601394431530782596078118016384896856211854838554508536902261241861460963618385307591454269935425132480606660910279592393683277655381320330409370619239263672107074008636215776720798407606177996573488705799246601969752754697199413028187759311538655540724816555679419993023883919680983742057946388676023146877881692847298074773528883940093260868587065560724360691714953926441062802318756621684486337146159173488352227302958066982022187483885349478468039488339032209064736982010603907906168658844752298220072985678460952521339258792230231677397311056959019122580555772140173853793464788582103355304198987642025796679182312234968219510015767261604389816464005008403005329287670640934641808158825680595718993611128729189334861254139256277723879890410637977787627486048918995133875404722017423737738674773724498096771015636467834672589354569482038179552677919907683022831640350354475617547096991116241388567068993850053821024966831582281811804466486496513730986625053352906674945485893125113085641858039521305785772102864140484531959491836951637499376477058730749675098607585044087296352875632477259949196469460620643977405644749889814727487488409793873387113063295319870933922901082481413609671152533969132436446070089759784684595340265932023863893098122885574912979381693588522211756992294959273260225942929337812925081140552804753605144495092331692151287289903664609144376135190821171527916965378915396917664924092068367705921080002625488924910328476134641991084308482917904603272555276408707592173003738043699759618291174911498756378742194744653877575841334301310248964231546324524311351249640516672853992602205330677238228644311886824807010667348037881236034597050927476510390420878682031002956455695954530606536184170037230981085030606360615723894074876418696442796102765729745415065604405846713670555730161144534932307489539038566123285491905165788965917373247374108403866599367937802298413036515374744428809572191433887658371029378727821710350554186368568807481240849805112843123379170082811026553368875085941147639903803852047887035798467692892276070820806844439861309977675124961523562381182425839757524125730733109669999249307227358866242976001254988296500533987175190190941795429774601823880066383211657384141781835088585738401453454171882884614397363417351187741786498401600072609066667728474075209321484317825328306730247570543626355526934035603502679907136483588877540690591954656705380563482403054370471920596652794667664488771358761879924878746080706626687340227964646446129163234054028413334626527178305020964932467922892650651700387624396407508894036332860678973043174745456315234333309854157883523440793135603624221720928243295059209828593969024845710760982968875454352143746397730595613364799963453874724187053629099870813750492700676306350751654449473776107764622736222348248549957988193616210721649414842764596108973045774956245511497306373322752293938910237970693313600515516332249933368176222982944278333192180096707069323318703824680177066535568061305911240240358198459945369319490336821646042587141071329140724736073107549227436072325930024452359785092810251037227183908878799856388976747789334689367208475718079102471229820650476351036175246882607354038277505211830446824178269422227660080312169662553733140772096634886191720696911982902527092188838852772468216255979274139790866674047472255919132588123592328781932974873930193006612867695140657185440828542137171963882546717655202354223322808079588052536156116689893997278971092814423706880077596752886581371278894722656003650325624436692938682707713066861208313591922869279121889217977099786808728772927168977557545093286354523163352017942337020133411103115085219753576375230283819897764958565964638396288347158152170254373226879477084720030137785749831071304277926093156000843438009986618317989529212713496342667329160098820776756817616371530672718505340557236155151796242401118677032730441818636652008119732995065580252306589346080570614006918974835403919933878539995576773820605210512098946819041163064312769638165212872009132215023542007027264321584580082482563112837143117891015852837325814073235170097625851373509400480050895521246345135575162846614356790266007816692072783434683541378271933540840720470041865680016653299653851471955127171311543186272930407798618883848718289157736508905279867774654683517556558038829997604841801317734933668972774428851670633143532834204144880276350379103245503551375626183109631703501558444044616052731240596855139451536422008689789474423710520234137024408438099175222199170321873184297787346915092999570825577940352042486981163710144363750929870252440149285650757200538476247344704466730639082185917440516716558058587434001814374324345630309494182535801310562884640482394790312462115065785057855247821059066575018522230673760798517654741083030611299585022861815461054171942935715688233450271840612957777147759509935453393346474188445900567345204465520823411906933012728165723925799475916639541997917716569583551889020293653198159076369872187241597528669954332248631936543401028303926418273018364158280109376737243403141084089063801426376008020711052561025521581831801918320749196812913555657623556825606588357974810085722522846130713328986023693607135053422820779460391106316116445975852977846198146568932396106097415970799819114124948957654937497957502098477383196276669616697527842889071634683749305717924365859552086006049906226703930166890566200483496152328183257112978635664724359891359261112480067376208215080891132694538588348468045990841697780353708786464259991944917870003147128020919270992856874801542133429572570186475508917886652999029266030652665515444474593720642495976154814576586500034525584401204801948429356634806935055812129801258334741971943677257310868110047615911427345540714918101504352704045322144933347193238735504038705136068768775719578729717205956022752183280723564006474448799006135544260781277185980268781986836453647438949518573384657758134983493587705574003473248066877493648818242673955165371980933189526696274651970230339041819129384355009223874503917296586253097353348750104930452929983708013826014772620335793591904014904857512485036314179919883136082036413855522091532422819408425245353138125119324626047735824664708253716546653656002070455338119436655041582006639820590708087159663173557054067700451770113574192778059044199047024928855074701524853284464133608790957192395657870965535619929817794964543287833582330190935289559843980656199850061786288335481713822003484753476099463368382753142152504237214584420890790541159313834068229582418938957983609150418475017885918348006065278335374767115674997790235280938054866887561465043781534346638382488692561133369067754322376816477187966850779821842780775241280232722804437183867229217564617549534767594303519791879988709531643528711594645957458578970413866977466110680140086266778509257497793459155327798604895561122941821902048998037913052358682446397229449277088952685596655407154955181997141400814437907653399244074396848193214376656779486471471802946064476887391710192304636110211097987906770140138260565373040486393833592092032639050913840456442937046880953118438559681431810109559851227976278990026591338418092421743408959300242934468304367631258157236505068124442855850893534781223831925816068970189822454801948263853499350784465319801658778504520074454914508483777168312368407917468846023222354194655348421192550874097412094581178610475867960409496961260673703197425916846860645782876967542752644048761352751816536596672135626822649052151714826812709144276271358232046666321551437316539651295031235270872792688297878314997498064515860565213048330518868794080282818838963810560033371158112813190525424928896581248283519388242868673486887454307440195287712100251047386988094523674391696222362003188167924259927958518387561692419441240467123653498964676300366308834128336187898519594714972270427697733120412569995183366288304398995165152291632111708152319732742506384380449970420619564326766843966094629816968887608830129630957656719862683569724062495962527388896883312688763975350117404411633659913617436313877844409468616795150643741301867397012914149658067713522906006121623256398513825116309289758079533020882884624785871898292995796389519671573069586840548517985572101852400783662816919182791412434046044520165123247897347388683493518878147530043541984909050995059322712783365075594227012016569166123856732701646650830133833443798492612955384666382701884638045593424561916672400568756742130980943674354614415594484069198985109795004617562377471731111808613797809218777574416207614046193388565505161210615140157884140460617204315961169016104459918202503682471961260395422907569395346206050342054836149038711269375497861771705923988219306682538118350275435678451943576548301755459432950356105439938202144167906787494238099884649983022624177955163746536226837515158318004885254643910579247291472737456352743610400549132523444143603654528462856781719494143243897556941133023103225089858515499172376619642446841914743186389548683561659690849803873079833918072448244159849732576901850109151960192967652665839129286594621322384244343652371435596961775470791476695265991176057053036941922707007612537169228328979858238756444071463880140953565133689650163029141507048928068812006194395368472189475438117755791264823056875288174462915155973821769905410751472595217535512963059478365357647881906741812850225495312942383888285353259864596970912308333658746718538505114778213663095284856380049049461939136920995232102719476369331107781596780439905380643234219646984525781214863231047065128086711213411246681158188238275100384770352111138333968592903987265580497729175746225243755318987348518738767278777594924017793383192235323635752101454988990251213829071107864281523693644069057787495022734811909405231135831447218214877158270346452639758129166746923519392953155336521641138529771902887552785602926874725762517263112112801716544483418513161563814418293131091522626706065589021768879149632739505691881408372881033388762654386880106350193417613191673109695109738422373047737533163309671116469610634620836213017275460575201150279881307346402213180708378151854380375703614602412030643748412791774182992638980837928612522013331207957800335516743415728069762648590246565166652413491822496136130236584848922449288738662342621718653699759376822939981155877264780256664001578539127198968949266528815923569251995937659312236295667504431343506308845932136376875625910534439916224638827655047981765492124895952815704001919257009136824847022276546789350804569645882221294337611764420972209154602353395380372323227550153200280495961352399875494070519988218831602547941940597630764618659910996301854930368881226940661382570118303560607314404730202483645788284789621919855874412361748001987277849990489774714558419084207232929647132290339882292159975223715209883072929615573996111257256784161194714210479160195505739325467880967273893789868284278322918763026175361695974860414293564462030806129960660610837786316558189103448345767540743440103145174478848399414102821263111756909011941119165049122315322409500331791944857470964075133977719706572467368832031490141314775443666239952155906361120736448659515565762593661398863283740430418331929653691374910081700311046692894232639543157605943447200581655494080022214829236750069349201776064034046456174169638945527162889851220547495114451216592780599989446882673469937270556978323642019599966196352890710023830508683782344325126578381420375914244338507092032324417192718828048959953922229711588200209347961430325163688322357722682134303990187209966175193467057402771405970427889926992893186195933832175132217179240349747355783530895232783033206326005336006217532725066595703587971458251961978083234723115842290685348993860496272166618351011309846277744618464916041932632243152256566597975195147739676663745415494351972585375430668045802805592159081150296759105520982318850773510504259504949432900219679494132664118181079657546860160634382917179053041976511127351319732383367503853625455355952981661689053805850024156729569856096906521288843060255631840785702968825481580388855535736453392700309592864188568020438663906176951696221233497442534008334108805362446667646006209656933724521415707371170651062024028820607927150398882542959390116069986000451223393907977879254047208566927143025329447626508339567088757684906914025357732674424402200490554198466470441754063075214093787210329341969386476089506419677548410441763560654901273238955032294394443659542169134876424376369386236631280162810464200783998567640397020786727672360171442138275364317404913959407744009816757262239749319033344630724975230671901181942096002548814923325791883523049813115853108165206020197805853542153921817602097357951137506017396359982825239137432618224582851691115900248085935048888133222737136591738640763969819811935107056549041788992180353226706290216356862370252240600439928200725060722061663968990569054188993151420689487770701804433675853361935342799668968417585146076711333651895038175276502775295734030384667748023457831219765111601290386041507746556630222650038465981970568549415423586692854278859971298005835309733968879430186419814403666667721241324792238303520263034751737840754204587504484552837173679211568208076533713956179307824833393680827981275750002989026431919158641066604361443762008103817152980199263520484370940149275901186910815590641007069478935357008926819493974751878843945622090724866013498141384265502864174690997777244053394201179403672861761493584157656798680186143766181762819257895459678538628789472589287890738644082097877323679101601239151350320448596775603768714982889551671893993477167047263439604518250299698789873587174090577009037898251198113352625944479086923541765634615828263822481351446138857104353789539283599167137723312358940080477349263056050792379879183682775100522010414832134689889434564211339912478727705764853759246194898331293020429896970438174188278412460698643298989265121083107505369381997978356204789328760809790328642776933307237298835399909687847587198760040857933064639953831233265109442776574155271733076923149096657659656960866724017340838871881554762196862084913751557286457752971702597148564364356291472186167002907714233005358598605876632219237443990376082337043995195446123215375355399707981748068739363591047723109081430850258767059409000095999234281100557427717157771794649071539069232478241983081202650916944406908104331293640524280042008039815081268768337378364782279084119667335318157623102569929100868725206872694018589866185329218949676437825815178018486354385514863990982700657488242960724126964711572923211445272249710485252511585978872188017754118153642023888827503314034405685220597670797190500644044646036970833393620362841960254636816189433629252786706953612600039726271461837655208100591283267101755713418889813946818561424898795768035815096458643925766531425227238688518315335354320484383989328251239788726057867925106688741882576160145936142407095444224274015436853079852431747332537671331523546092675770436290917883837514662817883704433960914170466676431388424810389659152343455180919952577266667626913333463576234994678065385540524309483759637270626929071384598945945295371248112889945152006850908016267706500803889511741975684613310662678012879389538407284194164754652867437577076792500130814409910853575475536842523102707045154052358825695352424677751598826433990510025321493807655664175809354510682409883820442226766491992766328978778492716148922507640326805664627871363086176389972276409500384767840383786926501416112544578226869722984989637861584847045122517216087506429138603791204062849523337938314711836919836587254067100829641219934795890152864774615306888208852688330888294807872011588552650931126323872336347485648203466358326652297837823329664123552938311077813753647960722184916315848892408928542695810301802657027450649163300721780778599227399638689222183225126142515353677371760461820975620165478264724106271772654101246280883447201022551331326029214928021468779224226279571314512745964170734543546890333471429155272628387276080087830047907550721636031968977096386310392054114010007180549006822460889827974433722808638386150944824761983640528810073273477780589701536818717709813526373044911838507154939441877524642542725371235483358283488926889447202143031454341636974871263159818843013979920543104561253310299668304783467525074583411852104577577441250800804350899208563688939963848804246301166628393181563280006502032296841016144169074866732432897668575862958435026920324285184589201215603468884370782922248241215500960078194467786540339566436917690827334007290576258108687963950490411821268913998216326024296338114706012365883035880069968864899323428837675120385592432590925233980483223161897696338363182413220844849820773746829066258051703999320220360334847166114557314301599197227163429216139291673985268925923937989966958754866335851862971630021751741535789360080838895672697773195590843308353693387843507962552442591357918407172186416961320773579992239024389760183650073372867814010731605959356972484328576732515188995681651150225490430844662942171758050991080949132289119465950831974835183358529321428331746033155048420576895096039381745032508341168725796803568424532203724365071588105416164920518442769626385624556446102199724089221309249552960651336585871235586696324019130476109803141193421034057534123102330046668478756535969298328455794135655530024009584512382091494998783390718003223249428780355329149610522388308746350044339264585198642756510066274740486276959387263355684642393166601907560108143142440620595890683752636367244344255028070534132943587486397082452050358815791049957685284602689806027757755887242434936290091230763778998381964497500587254044334985496528135857484700369893626755428588060716077067259004725344989674692522014245561349778842191692005850825745812377818623002430832987724166740356742738689826319164335648377229906792590503678162190130437034297194791282031522044437968542895486989504258261354542079492873013600473705920670588214273841523744523575372281578141748944779962848698789813796501329931182780944964032823770200974379442318147384132423520449966050851715338195444347273695600227088922153976806734650459764377091877204193960662877442693881506912623688897399586397853109074289508013890218940612824871467691204848464211117282972770407662274613161401186812461659918867881575471550529542405657346376257265432334654766770597650359637690965376964426411679585513876439059516373125973480636298060791238475702246132525482370519172992589413064716460630213141596434863138847767509723190240908230621406461879072032396228669201440694757871063381470711201483207221058857978487594051455330462175839268915234631568570934697802576320628428413195116841106547243137703489147816085602079743122441026320705438416603722661756421526299241108294742179698195236304561838635849773906236510566914833879881013934196065119219985678760444856690678992484506261507074587745717386080338133761808895893245295357861616129954667229158000559771964814084785086960057370544579572657316632381994131740846000602116589734141121645489122357903918447738711155922263983353703687005492251952896711721327856108495549169755899370344452606276934379896303298066112887022770764770869774258392175644862421377712350553846991713901841929439362653260712949052941228191231443593202511638346450927078888797996661167440880392272774032621175234438124503603568213926158403108558995429746833072823432610767452261657933970319957210105835310720782604769533580033410001960459494684776894087756507871446507408941509430963864466458788155691066443256177278937621455996698623502515901233464483500503115978852481230353449350203899945024178270093363566541188510685000078444040589831097195601847475638862011444603689989994991268262611043336625833769470234840953209258879652967157779724884955394550885480508122202819260121299670686422648347744760395514415832837569217585937204469139111451944266048781183801743171845461138778347501255167950099966736319601196185017227746250423704178613662675234549740807394516407885443962552560555811585433946968511520738541557939971287414640698847347908426323111441101570093080113130257511836839353973127652101605398320583009375769884006275861976233282933666355744899312008520722010834983639104626596475274760183731059334537142192165244233240236175012237344714790606731356492760430004518412814576067833746108402585988791286193374239499371663167571473311821537599604822184320936150947028908723893052399667772502084173982537256923443202247575776381770526825095233885027696989910457466056504360179755949763383385365333012612419941976059136401238703391589028258028684052422476574580637642439829582761596859455185652608579495853453738733179412400498480955494868798652990134261168451579298059878820589279699097669206960680800277234167294302330966079470184880434051657668932550221876436760993496606179583739096156999930922868194503795134034075219808774672451215900995909735113659886402034205545079934456789622231285783609253836810639417617617994602341317770983934788691846459013440842284672803530671211678000189245627131835982996772900913288699847169596206112533065947009082877097219624801503977487825573283742314978073214478080028558445904796911289194536037899032684243507907207245548937591215568402033304739547075439054288352459801380658514138075881730613770707777283196388340025798339210960136156613947428746934136034716774097286328844523501165971666447559309437872574199507240122330458723769914832638122461806888947822809390262656051375895543018513269802518259067067346790851514624869122369902979555664341642710994848863979710244403986020254575070557083214253285236753842469288566230366837620705132850195940370326467364428432414711733595213689504358782512959718746321772272545924510787046154771045257476639529842731522718197845981229954498158313829087072042540331732765726590722383592757757162127221861246454765203044533413790184994945199780651702862632435852509081887761164227306662999732918260439092075664395563965000091754459412289902180865673726405050059689126227053861981756573158720465375683119329418236666704328635365188245099373102474865155033040196506991831242296301608014655166745787559311099642300481463238789278296270146928125090251416533143643099091495601633126574726047065091237217098632751323851686353351383319473873697458621449520391293586854040437807181558692849019512661688595314623480363622218345344229884824119270890428920449096916369383284611908963905165233578470723955572834924920789841778905899615046823080759296650868815696474973440303335714475439443990264755018780629984160957860933992483271202473727346836433105866583554755736506786995170927863496035335135800671617170606201568976473741137802854435889493945538615248381194500339742674583176205062120206547392137248027237033463241203055935557368038195037069123134567107059373770570432572260871323517640072563924324753102021070430056207673216501769061366110842899754899737666336217756482569687858933221242154648801760294729898868295286366929832862298507286689507835875295540433250168839712824660263041239940919168845625299830937990353438153076036452981883943995411565846306429096125711025641853716960086105918156401051118033329227787084041752625698974043215326247427478314002624710025093031941757114757324051307514256148395292618245238951071494528167479603540142715965185617212331187274475941247559246351880816677197324467962169016709566295649872381127955348737274144603141653535341234240892125346507002206483204356457757146920226972202789864850795186063006555006792682270778357430216688176273761219472692044643464919162247029914397746234912961919347205497789035697565212837688722481924739616677179974564320895717684645878973899550329400205674098521275410157471154360958431567086112853416570822595861087143083654207732301494439141458127533862884932243171871232190452554823995461876081444889809937161992135960794064978489869288524118559301953869900285694294938519749590534633141715377200086667217366103773582992847507117214279385369750666455966918428907808459240793144876066748982933692850573292544146242780324524050252779674319716384145241916474883959955828017822524481295797218064261446859095398718399531100273604006883195526715465113556755618892601420612086757071882076814699898213498063870958009708460951216671513208233471655364732768399869107586880201036378067968183844203583945849184467537422427992060782351688499459980764077848538645221185725644772339809241819382865709323724925651564039410872954577358689035202511250300135022348077699817126320088840054094176292620316511652581157951230826409882048746126645489386287307585750154448641071865836392000154356659555924389750374275871209797262456670063939436443466768978760619275353023942356338754846071671301981499900225622747640990022951911629632034354348734661672073999659228979862873016736949676176322991552795062258818451584259243067504918792765746532288628599271557878968765254624715003423521699345040144477014867200035597144431236306017617865743112353383787142308386063024772569026427959117640793575632896174896791651406475336150499754337706647063843145545278120867947256111217386846544791023020599299374069180731004231768185091811848844209063423239075024657739982902853609167994663471330254701819919413484642972941549451810214675358815509142399895948887071575336894480557749287949735220792848363481861495160330638294123743002603434050704020298336421749096831120981816930643526074124932432158210537039658920586577928125450733478095748770949094796862977509949365267243549156892285141756256143468392613345097905333054753062907807463096452161005757280313302297704174122953225986116490263114589646511013634908997954165472285744688779653918902028293401328536080057162561568071258286349330482513917154472952730558318948652289247117868880252234554909903651701752415375486524794399032513914083642677000151629920920224320317490140536342964170396746289131939486228771372520405935380575685512910108937855056632755941785894779895689567082292707330172609409002020833234088607538523196985159869576455627465091242412898444439612763757128405297286115038624234480960322709236439466539304051764633451598296721264344942452682112153656604785186599557498039513889373834362260808084428943912369286971608008643021349487936433166937498947551100102541606332959650820937246703294899403171556067382698174016506538407865824465830416546669747434818202264661079362609652073042319696216845873089394976145576486838463295091941178683998203645520124135869922015792059318250743543233473950723184464634531228664582751069750330825520879431781158178614592470218201761586338057401052548971043030680377534706970588462065968846360432786262802141318014618323049430160125615381775171641278883720959632722919516149296498169671471581918973680525549237300634567681888174108578164416201657046503086615473233063660229484556984277632966650423348711140105686609483439528623760023901376447302072686209728880679078782643153534375915478398107853163827530478129244348296239593351711700498840831551261469234184959009413873827043138805495487320119917433171888671244778368412097777645326170583047629572725823943714186249626123979506762604437092024886901801933650920785600987586120477550465771540132527764332386630984224591737387360845898965856761120774472845024338463113847057775948507740348974219585390403970955428900090793027497396181641533843786587409327448241666157597531052103928945485701770089179241860615078353290422240372037373316390002996931681802531862212952783572232576839522109259305456022923085194971919628200111932160426296967669090554558300793375189514942412990476476998111495388464947092343064755630418416839579553521263887399543570407927647545428657272815752620693173075451021933238836361769433882577600536620478240567856883530867054983550421624221516512265344852955817176340336869059309676938676938288235935612048158831650648684938935747217480956686155258101298463408043575130315729185850670228247248689093325411914490617094256604593727036066129323837334964087205437420446247635403462900323156964561517539396266791409929120892109884771037148025795871768073566007512143911027370216864915608049725103693784010547804958215043150341213149799659916477926327937609585449213926837951919358819584407980973236949872050687012051517358074791125830865366938516696724398565566679970957114307347841597800110910782309836382639025292263107812312030215644877630099786053170991967994113453669113011016628117835708242562104233331197433366962837545920656522018763581643156285924148986412851467548860405554081108712598902865813059570324619371538347307550628417398644157245951518435945657367592890089644646702466024898023048593866203937900179150581232436555732843912403601995492587675290512380282900158751155174613722393359787576026844639256588184434775480008612941486645200778412374430552721809329310536814400092087742866858356862816527503513681136585184961787174864495195647584312895179262432035825918593971846663770385720257195918543581941811515053983779380697193413384090376325887885183476086918795390158283817418450760387244745654310646335076279784330629611828449963100736504347742917459124136359491682320062265764796318240568643523934995932605782351666441917806133406129595275577829402910724790026825012615073586798019199114204507049708248785881920427625403578646947962838302056452094310291694289631284019831026517958306720010360097588665657380431240372960199515996897635780904489196143920598904826234465804318686341262954920685540780051750431001522629962864720401705209208704413088550857360123043233151619231943966687032187194633285222511947778003083129534387958087261423263264081579791362083159958819995731749970562394911659618633625953403010565818890244876397005585366100398767562388150058401510687117690467710950173710630434839900914671419904171985069727074012233126440087185237020093963284307587295217361301666857495780184604120009542096836869611673190626703435192128033874886645837156186226762667560935484548419762328701369363277273741933898107851665127851225336528092629957011432231516557060017727562511635028811878003346441079285228745125249529427910929028731054016310778568282142841730827539943975465140609575028102088901424728885023183704325483273682210585555547925750016580420178503942178802233930693425947063811194677469547757892614383950914663860191224707195740262254494360284606288734294641013651929805261390166803908431998520271588381356307307495894547554398120291170178967694968982020945701236755480327322780045734843751391613440714717058053125059396303764179306581373559286512628074804411001116570641104658867999782767937706778573085908312351042238532657718095860614459161071561769590982958960212838441933139204767846196594473434881122357911549029870011908755563417513229212687118997132288232737672286471012370974021458728652451504176462827616359017357247724087544381629382475909744540936194269964707310934556190771688345925765640795742109640610204654503539970741860858332163364941225176913599381610765339035440898653533796878365264170271755837085452735676852262676570596542352567017197209547928213168066010292404230502981577146513043934651328735054654282665189553495164368765773055533731078933758280036449740751557625268666261608914522552813436592175328553263874125344123523674616088696988209839018019398950137918336810550874157926091295221958761239430334220448705062596343625695958936722522842167846546797330901837774586296141620749685479238494075757971470101721107098160497152057017559982560597541289147507698407755198507356415427092793646777541799953888220345578546905034652806042527336739102177102614582580938248524497884657706250255487589361251372841693611563348471770632357182032633344067239125655675451302235027388015254799665929806708883793699237127675059411187445195304137297886387012598115098775872927591712557763449407946849560973010203214915135403205592691631810112666310839497007703878377711836243914457742153016790452615074675964692032020047008418976655618852454245294109478482923122035681921683691296302270200954379034381281142535083862933597193952017522583856154612583258164560233881765046334160273626059245063489944124427162600980992724167433470618826129707354636907970122602831055660936129210488276381747148684421284735087409542015711435909684458588890217328819869736557019605690929913493517784997060942315122437165884472511033415915609860049807582382171311630807941568426715908855766930101417833215386770229320195738149505916182278249946966587298931001582220133076179320244320271155407457059809260788637301952742943457102969688834012773999479345376655042039968994171890787124606475261316369386300684781895346472444109040839120585934658118688926192835052568062085589671805933613796135322959927960834125823083279769351861419646585253804878181569673642795118250556830359459286462147020031496974873878674762734500620252813766788532016644758678383882038790111541541987192789314899969475688186154931622980669213442280398805924315172386813507527379178112693793683289260465474998150043855906739452770425539783015685390193128039854662255394581707272734499132151972331105383780819835076888604166059099101156122789165584247407573076428276158209148452286290922034725796325263704184744364811675530721479491281846179466845333859222892173843665053466012921052320388383325987386877025120509629772298824478705283031733144229864103110730690575110886832038251779131374013607287555527854969918330645556528956636661052250990812105530414215302164548380782628325605796183294975259675563302799630568280233254749459267440796284294816901282234590379073929454450352021876865862128039888345733156297367740471190958359115335757374806637725971339626585324504034999382832293383686575897004506607205881100710180419032058095908874279710871447592686333914784841427666615635892135182861872454063789519316275366672030318992207368648595683833273958636582223256779586709117950523502290792595052694366098884835763428593256653918225085075282771165612292621738315105129721135691357484173081519892846638230767012710684628069619986206397290819544502682532706421686072114204942675982881879100912001931128919870680342172868378679952821089310794817033730307373437780865209434116709679753103177843101374186070297247067993600612545137669614430944279972363028759232794314408789250737630209645763659076809049646159391279044640312496937663489325011266911727664741411192183540727177297669504990784743040627410439986290924189135094949279261593954401884517307389828336564806207457217103694256629137256730324677525722889809389518905642506940277114757510065727508782157740884173550075084904551041064995657295471388545410347856153839868690548980775914860001102183291322678629746713512679886009293058961681295370865666261982697341792369284074254579700506721533590309309343617093087415615841154442081382376073582375494366886778146293082400243420023027877644220842996239587915922159821830177833512353471774057685402228205135783636246647400229427579947693221709912128310741264141968691007679668378825500714761854068044611328388327665800815148917568140860797112339889376372542954086794959911223662612995577629447138350417538122467908272181688146174218527849799096952395800196988621817128274506574459998591890045833454855210220887974096621411841227800643160100514138805249247108304532654163058260796796889338971070402186333652784385596759508536097733005639515461809718888712891375969405226622467132401012729985798108701807998658685132647386818180246886004928807766007447708627959802422383616176245722690158974491524433184490143557364944816966628442336749088028447925764567853365850823009643124109024464339776734118346757561054108163394036638098054761029939401244070410161797810975743818752183041325905349695431984521999884420865592795944577151281146405356135106572873727428920606768982918304475651620491394409151804669209478551914567057921734355766376350138642522167231326642017817237678941102262487554930901867295863387322956863393880927135108461555961578577532148860829154824154718299596961817748279777335118367570250296556161720929515500255792604085527886801781498743386294808318093139359154333327954712817959077471069075027787644545399250956481477823546142302972820894097173606374549127780896444213573779361343578864530218293025283610068575697546800231426903380080983684209564391225197982366249094767926668316562815646405071780667146971861155841834414901544217122040582511094442154885684140580964303935682562043413288124752464919829945903499334619843072308005132094256708250465035837929138392980286917146192279585778349317811199149105367149171453009574581149104933777420875628044115238646020429226510179807527429265942892187669879883483689426443508166432670692254450325455323198528068176177226411564627307533680624953408922088431877070093684259041903023443597953327986748693089401399025023630474426478835711731896395544423277494830699275286545117045199729085051019914521267864851887509202843093575375824511002435036534531118495907538580262734001697009014982450097940311920464900387208290857072604467263163793072109634591551525686281277004088646427160493559063079964913120664037339103178861046920932047308882227205865110076695023139091733826614432831448537253996666363855667887684482764825530177547412580120523342573849761168339270161018197331550218914773481230778452326651282990233360868514046252665432915394954275470594531118016811222640633100835589513026409839141779338622425485068268321867862617794382578972511853127516740578844376102091609522722283266174420102066023460541135525312213162546102838721916082654026589063370483952407654130371343453984566302659888229797974251358997270237736561881373771113469088223036558544840954621397710858138684799673262695807256429877142542569327296510132723977714978735944623338932616454876108046026502648668840938347268641653591647616761716581591957628066956920365506452775280155040596358681091836824971701858093538752139648335656157214148959956505594837300566632295118492302565922434678951916348944041065072073878447577031657731413421967060944626024264777247046996860043723205642451405664130638084803084031575069436830597605174174139944449639418682768471673752966523599323534148717030569430009484880171158467511759885970778567080054591272243605198031167023653594172850341464452913144305126501227993077158196575020559495749135231121382181236393125573021695911213861164113971285522369452537348768632722362446413395927853753209410992301885259027386318939075138394404123884113608647124600498891786015188979849185484918576373241045674616147653850190826938090969878627608844808996247868488765415876608683771731863138983921338128382825725664997785698824586022031472064640580201349402287288084104934857481813275508843634355002971593224222431937722107730384913886318250526912800128617063560718727430254891923957606570674030056227813905798077003155031491640408555464688739963479318308107877860593121079989273387868788340525687987129270900726873242937855386925359303883627615710235917232881884398674630567070476416393275615309843551102147770605550978159033953555094663280796764188329739995968232689285681975676862144926637133569037228150992556825131544513440672700952362601260121073521136686898173896307556286828535268979293531039835899489817675478632812077267742374124791688005669124097322812219838668625767616705137040877806469588703932422694462971906256152713947070771477690360361580826881792484797640086600073700869610419025185030419390924644885880990245798140870177838594517112972417965005102039062351580321744423934201180602752571944136166061803288186926287894119524560985898332429349259306309639679257302776169042542429885718861236613320100726475410024544963031997234567862809471420861798110695982989766518738545129429060267595237124168243828377710253037301260702540225944897628442325702285796265015175784508106723156960353160819584836235297585745393474239161532487218181369953483720630066142191298054028229907106756624119989309565026882405605220821588335241986278987064203376780379861332437422961697790703853840472495835970786772696455934497766593664734954600558367627369566327637523264654727556148616191673537276344841520030616038891678655303407881313553198754332578387361225947954271612392740885495539303696926147995006084572370220275785440814242673405469840480109338036402544509814823800892823842214481398250646384681775450929259870322620592820438377387575051942658840780628220888575903285123769671008453547011402075538642968103193787769750544403505428827538238545811326272294968548669751731992051690186718264010179509872407138830682213589163041494170048242180674953396224516977535348262978405086276548209768047120430948911206927922790756297941616491522293148724443706936919075434745550661596600829166957077136079935286050313187083795655979659653479544037670569074867096248891427605756518584205627426773452479704459648538376303822570009195167232711620014304650261145508349324626728721987214530516392955814275278538007557197881047651970472247831188651876805981313284694791602935939687584733540096820388992309529587184889996275573406245467856459074473281717775882636892808945422898238877381597865008728550372821688874793994238061990115885846624160297475296664038463750555122865928753730056919592072439968634129353108498625196623456773243634233227599446954065261483350976617353762653529246743767446947414826861286261098030447726931726041720143946041253634910750416392013249456083584295890337366157684714639248860120198209203795970900429915453367613463418395071025682175633635940055256831738125558241411636582004663157858391695505589828120758038312512190310431533961065378778585428862432380865647721138531811804480827892310021902506727782177780288040989397814501438905763403294811605868349723005107928226838806802924750034751575631922941437948526281284970812001721704992374329170198252668618739775445697490666568596654342823611220741345988485599395572872629335898450197397330738913911360478431862042512058927708546462832101652553618907936617271919972710211171464867598332272638883449167409375146433692855973070506754894653852589136926922212353705737609710636025463371027909704911330846669525481703410242937427485616241708904450788209911520206323112466728656480468849866618032224762372371823929913538908945487107486501428319660810172807708760708881788387280881838447497625678844301926355690016377555824849921055181943509058831235953125100478653142393155281463214742818977752700025335612995371836437469266211052587308383502389199335593549319193950589510208791766856723340607403889358710248015643268677652441110749818675423768417883569992729856465100279827737320396189735442915225948529340059149363761821921588637421090517922833420250779088612284468562825965524074201576247290498724665034621024459755697882025422560491268943342357606828932003697316184512953461116948559441415902154958940680424238938898946617015425397995128864138779975932556683589928060330682626181790086794620144298639163435997401740900655645098427340134261253823688891575179913652817023148593793343400888977006343068985635074590227463760185341396269866024028500370791174233088426339137441089999028341640615268233054707847267982047677633776796794193973045979545294719254343443497118214185336625955515240039194523239831640289702742370697413142502761621081999177231022640663473739943724699972881977078129510348726343959148846007544872319853659394492138332626354769268808894846908486906947793079083785893963826683310988958013661686711510638506113194226093730565976388522302760519286287427382516769792930599194997690065476264058684909261327967118275944968465929100394615900417106177689731448219321940172951939193372130409989838954591350694168798243473355983257314798812344349867309571515672093757245575518522940304608436114324894094100094550431711400098830327089129663262848360598652076610171612030851431523301992770064841515887406461539766249168442981332164443058505168889378334773036850837145399155777830228936622269198481591793062447659160644329459840218526937037858514741855787326900891586820804761540770433887797265833963952688921282004122987748650143508418990687446012677246379949356667659955019666318974118888343017627379358978287561981133548936931577997123330900252742186782037539653477026026506689256040834156695935090756106309342187450158938231546726170185284530276730435847741034324529014449908259175201178566613386335262761350197051514551820888638950807412729779603070363563312610186254696739017955655840396860985092568990078010632711125766377643846660779394954257832621735417983845469441105427559668166866269148923407992663415492633624408294359836618629058164040251926311318045340460095388012903232392091191805527866317331320989300903816861062933377634226876423327231976361192161834867459560456446438489739955325951651708808184739782591423699588028400596788934288554010697670821344240610634745410853173668823200570784649874799913221409624780262702964499517761954092051257804320860687563927378479345668215800140002318645035238630387250636331232648296086036248317422813638705990214303953842890314571459709762898103022558657074319012314567466167824337677680641961298698164158964821079827808944864780755543960401501970830360207031908843614583409241875405270965718727658598942714814248297606761262900147256937750720630803327514679811808761120505174369952393460180768795289939288615706848109619882148278152064409385703865742007565146610277207330633379880601532379699148496306242975336003568591332045712627267899143540684228645591421126277030069897406920086979472904632393545345533330583527079327871409031605267528337124579145274564724889047154248816041041438366051567175936156913566404142017288782340457573233275982868855208963071984073090214184594462621266923424268566886709738083795235615403753175541719981617216751056375667622236493295583405129538147202483014447981622158960324963931787447555038451595392118390472333380464698304438776590094162815969826874658409623844802585307318641647107012304367191297284898120943682064736127723920150696870884710079870858942325481847306175999450404992979614594607610321628977260172879617940731344159300896064205911099395944373517067039243275765158096767651683842906639747897195049491536973115966035539293045586947541226209158628321028373562113080246539567681579188786961389444013584198064302104403837898606899831708423789096005832809740501291691672734357882975988142036258202269278848474281943345643483161909519078687376274375849007093674813237332423827550281389949144498541982519600576359354327854235016624140700562412533539964315488957215386873461702456804985658950039406305426918485473700090767170254781666007280680958466611465900748509561463574506437758489332188137272234348357683200818534563430410440917031780917209537761080077059281663672328809772632201846771461729917785441545111814780624145462523825496347330125715112554282620633400345985330698408443115420777962642477906850953144943181974557651387860748495906462436254960161395822487524083987317352888987151750173747447155076117253298677968764602774322399596590607857353306432179394705892203109635974195619628555218642557195144398481622159231242669582873644553749292573013811050112956896422414035615045538522521025452643195670818577862849126380716631023285622851687157790736797778499133630873824023340167465147771695497688185358680727104805283915779024089645991174459035515459305354136646356571887493683730332096233427686338572974467350960611979142997920310239684816306512383379686372722818575682590743775690800811948518294687512534249157492895218188094747627494434078405036802590523760164653636003374314611891624188311851563054941795779239297016125543739647340155354736662442680386029655503776502064750108102120048107569095953046067862978048598808147718202762291534101820172087214856701330186233497858436986071816456345920153368796313802261550714655194292146534929812400231483179107866816644478943007272942870041961739609841881815466841623396022553621947049752996878822842896921514059067116195751379903458103763355118115864434945888225987452622813854226186237988877225987911537546831574399577900772873596387956279871850626210746093800515741355916986943222076729215979508554589621651405662694138975605645872050765142350561346153777625994396371695136617520464392124485169087849684149262689259882992499826877894391546677719862578206091154664259312705635616372286117058950263728348895034507910667987757985360627927528442148764047898493140935876012331177563020049741250731795703287049525521126041004354501217535386145435053508029811866485141766429188485420589728480351405861857131877690717887539277456007678950531900270849028184195879275446704920432045817210501867902793660182946829912670713902798640067951057606417227775151639151230590225852524100236067357499817695500185197493653397514397723554878987312352131193616522482671856273239484212062824401655113062774947459147436011023132021148035494594200446249084899676361115844413834816523372272470887115196990364009527288094440528001055110718131750670807220711424783111642161967609204201730769119550083578122153943111269998354353662660874245603733495722546506196569694077240775551660157803179157002097277319703704632361089875390640247639369959404817202984111779936871662701630136021246619462947584652332179833204506283438032828873093434192871008817258013152079488442145989505974498843222059509941226034878563662806238561619815259718279853911243536025936619017891351374322871968351387094637103174649591599998944005995502602978390956532961188666835107317305090186830148230355870559920079528980345633263626553793603262777728643086154487563120261254187743008682939942864755257212638081178619967190699888612489619207800205178283966648719079787134452429718176373243840831516839116936322517042658675279211029337951333741371245942468276549861659957107813118228814880176155424284804417047560321502907836349069795374230305023317984452834810562709891214677790996983275869872075926727306134148210237186037114519458034883104504353346658465593184724218039523310935107988204486945940646355302572047383639575190794080517160800396577819725513167292982467103643657098541536575558610427542864094329589938873694246223344786592242735229334059510073314933521398696559418563499313489812342463160298803171813252631193536543703585060232219051092118141715233249653912049247917401369948949687976672655790817569846763343361574337821296153618867567113647141061674309091430685739747297040569273914465269702014282118077383367323973511689040831703688771779455078766491887852450837582122979980186072700249180930109113887799858996437861347179710130941076735791505726205434388273624417679669574248477288965555507861061893461049294738757476349355878588162265705119510862895077581053215238147767354845512159177550909081240855517920072273212951712786626977738498926754024379976335762386417543445594485765245108489311737090216063659917008409669644360823377214727529590652624476222936069219750696387748543110872945398684995174093036284839318119738340852146084482017185398707260067690962354459421045011543926272203323009362119830135331015449105043935208720862876667145679322438246794871876101782538178296155821777005084727710155929108398819222328624469174858620046452263699164169896148163560868261292420901335557132841053474025839398019599016522737003094164381187749825431553208843352657866145851791062275599931194543652432856003444170946421382026578080145035021978947735978805747099953690638037574126114747384431777135085385346787959301666478315409559262382000904435593461521375066358273285455991487540948825316862028623758255374952983660336191804681317691593073078575505193479089149572145202212915202383237611020358928474087890159794566954246794370407081277404801752242025808644331201551552056667303135900057007763276677861622355328461513778512438997178151100106311334805227220261248836521602111139532773360826362512332740741798099948863088482170472845184136573459125840917862429674120431773522087679778804878044408816658296794399077732068008539703339514913862249841439214673986532163002033781468247999271638127534867610637711313092498897960495760575038745039401453453385491178734040169912073306251033164975097425760304593977344103309550602178585393646125508624842954211862516641370562792177161029943404465020009429296581949667971764422338258857875850266034548206736768464735208860376633573112113680159162354258044751527290954754806002250648955271344130024236672377735727238158915312620035978553125266747605871497856993928080726714074219927603687009839389686371082606015075961636331508536977060186637431071851530226104434391365894828858347206668398740844900420201046910000770030774043109731012719512981833698958452395249926828149205860636501050198340408120764907799104044533289032421931777645726321242603701881137206333133020330038565185831446304220082813918255314538212950165655597196026675755953589398976269797628634232438553194271901407014911207601441230953255495106385925373809290064297181387513272562726214341248816494584633471278686351195907523666187496233129955275535367155135992819470780477673290791590697072529361084630968769278441537125297523423076847090744197022373617899179977997309457625078363799352810408968392403190846677926616556499976010179037592063801700392434630088343816551784702850135478326066093293785436922385316985257457302001358335972836870058573031063468630097766622898399424185207475911740528696660473483757468448025500579337157544783108455800412795744116486987514542046145468850118002417415811978150263007009239962326570512708429681020720401770180303367536997865533604249665598062763487150457042274347180282928151986108564234956348118665879468204072746151484714753736127414686957668142552250735895176146081710268395476619926351226911377162241143273185447417283631126823835307633642567847057935829998012429347156997519668550631005444807107191705410642930394050187902888575279278272627415267217234885961455035666869031558098198171941200973690190056508601105686277043332306366286659327207731428036220331919042583200131753429143153025229808712199227947551259049654344066561643673888612746477355439391740378537630250436733991099812476390982085726882895535796796478742536835422665346526280881904312557470455328111512390312681571117668268905153307576053573084727612211842332876144450536694014787333971574242100320083600725388263049924397215541553917415578595934704146395337211155026054463950212451832481045004960936493926440117870476059792821764141999496848215262619787287131634683626408006432789412470065923896238040291382894425093952493874617848732115474751713533323518002819519781356116375326700607739848844116981423658320799358595563667975521015589267685933320263963626098099770883697960176023200690108103410438055900247122572212821324183984355310148672491311872970279501599701666353308861282161908958459232622740479579502591334673371730404144772119412157705104267749326763149919484229395314837515722531585147771830684429213225508193534422156118473339457153720037729835318216247123755064463154084250436848894833733896682245223550397023546917032713806569232086345859079246935753294875036300805003729419211757389228717928548144523005435657665669434519636475079560563821999601874443571759335336961122254949666735235152765024015548233475722760193405145787431087571240846591086740633260570831984852399959346741329940740431253251454294213137548636752010262472106194294491870488393367715435079457674686785113103832103956838950768112962163818080368584576308519683979368766626724067606859815525328183263787904145092185518780762629829676406003919562429648086602563362285414656862399006967594073126722334283798163518476414297892065394501134918433562869088396250425620583146458927124068402635777649875829689153681833413950228256037673400993136993369320432550851292546871524706730908906155497052935835469042436046977036323780226281701689975936828748029073655429391662511959856020863536670202151325962314405542806397245846483863912703222598362149037822515429547420077630667536976435721698518173980444653591243973732423068005369625608849498478344911534985842797981456211625423431574482756497062270231569976805047376684907996499534351226116527446282865337669486868296323683718069355372015312145670520534060833397683048563120275820770832211190285749536802747799291829939093077697170460131215821497133799579045126812333474077192406503271476349505670890921669092833251529501268802294769968586444220420548469542071138051183031550080583882003372770355884898676689547898684943867835888578438805643160564950054680026529050847374633108140997883764789629182292489202751541921197548469303332360467012206931923670708537003860679719654011296132384196035669895750566540545435152911518080042965977422468891874272205920326709729199014992907088445091813903058463818056788083149654087046219814105211156629754313822287598419684300355959226017920579341335001575703465862401044004914801533609291456270040713881695987292707202369088372775397588238341807057131821780268544069542042464813631562260821046037840290734307565384145787561750596028850831526501723689447611010073714672767009062775293729332688533674115594161786066985923127881152339408902283319807407145831924272827062994279475605815835480845380285487134269068004053046867281540167811447773899587074767753824249579608826802727523734774492441634220020224522058235656196248822428651597605484807691749399071885891432380311272823430231395442675843478722691892542056503500709831173820084809546506383635359114657430632292586240790507384779629772927769534594446150300707221986307821075490151536983008449925230618183157992928278621499321236201322010417365585328225009507952068406206088415248622947789987496090049328474859166606466252337872126437254653350879676800069822138711676487333085960545725760353842472084811329718748857199469618714992924615906574131385236552236276756449147689260922548592293393708714460427695619374083300865464060916987470052397555171984091818554433017243545652682853248933356682257650774524692858465124561434140874076288290564671085357922370422720556278453302119708783899355378858249906038454155138115406023841487682031627795924361896815750081788096486762648988346350791341076887484385365104160108681940389526591436173053311880831326318718422976284326455413223971798225277413190349210741550453514375980450095172949078846853967179386974300248794537837779748316136086336260100321408020621310545799254798937692903970439931787841431676164570460664704020307891900163069841471989281413405721952297271564314480962703976600959661466798323454837491847569588274839687134604997162649296463107024656738728628228226361599140065350570746231133417455973261961205023686217957060965844264142049000862908645944061779384364619670373076053694180924266321618634775098773368439912359594870937945424793055239709405476172255141121581978339084438449100313133722080785225631089629298077877249032512481150201828368673469309433681332924972547742697813892170030515708193807311324183360643243702712986611028061946448322550863245401940439705045211509790387849767743331739186655788327085332907368049494787839454573430340540591055800752681004322074996048604791437693386807510256200714723439270830874864750710122602287779114707333136501063353172647106701525669179912213633541830411760637667864003618504884555337970836188404696795410763907044092598390411973265829401555808597139047821050150313070417478801733500212561086150827157409975558468883067101352551804990944502117644344309229796509599053592421631584037603360728356365499252917927638451953222358220192714583469972787835941901182185698629128585448419019634751535626394347902022482848457155103544352008443001299682958487052949035652586783511249474032242353647547869023681837802618012832399305700049973280378143934841738855530915212248892976954443645557977116423561305204598508825852802324078424747304014164098888788511850274797958126444722535093291829243572978035170440800950597420577100848428568925480466305874973092439574575823362351073255175835402008370202529951552863523227124006382432393218048080764399654847771215230931288013450248421662611762929048533444543257940843338351519335570141025310282830748619299168864836356456120871965069637863786230819656342459391269397911970255413364924287616223317304565674631867916630564785360197534233092441706729245618597864542717188397075901043856205889393386781749432869953954919120799018520855723026715037617371856961545806130145577298219713045705515799990653734323752807826240049768139250043721394886813938116034802398449970920856060677953805713568003424925106750081238087099478644426679193281710330883147262615894617689547942785064447512056691807386386864864654845651787329879985129646300367639507760081601746029088076113439394977098841602651805302282884669200388490657235033307624172608074376394449558408123905347749801355308553005772476713029124341060772316164399631246252262942575102114180770043356022682630709564005978343349302712518943195406625620901998035018800395324630244618121153862835377504379984732571120567050915946828433590533260803882864188816672707881658353465605183900973650195350410638468279014593220977014765214729641520682036652868168668316712306777244294082751725587131102209830193197126997834217226826848331514141428260040746115600246150487979646408124438378148628764147760944352123378279761338731896864703206486533346157096943664100604852411597877036839254387389601960614348543999381235858895456284672743976708677063007398681515255633324813126131814334896577345685341692840790980963569147805813389751345197417974220042135191684789592932975566159132033079728270553997259645836874429635101795223376954661411469999642258563422400626197611664467188960241655210181565229435954588466271990868229817209805977437081478022504502113731217401062671135004506923057606366687701894732820328241467595502305947246583639681254537318071276856247980921789111321019423851470900401507301118738188376625067872541908019156054217410733408275504771099290342615338077093632697908998039220178557979642094114736385267568038666646612721790916103219230990784735834717165670054196884177620322534789337982463936355448604765553234655889377905529606035374945683659287672186769862213060654113772052183278532490675584462296036283183894693772358668080864104878908452845706543286686338488859830677791763786044995311192506734255825663420380825478289137153164965744313432222422898982742489779543776862678840204236984540576030802754029793479239449727931320895915823535411269682119238086625368571208809936981073915858940124758312110858163052899383692266169918063209330329523488978996808315154930021634482366200080788677954301167110496532479565429664441936602545641993222387758635216041781075414721208234754391442160976323350511971701962048736115020319249855692154120806283062468153872039183072551330195797246458134609476892186258976296461601799690435001167289465101592844194355565572220479886622138863532600050373032562136860638882346367744332910580887908075976383285107930550068170009223652220834683746377804223514013823146055203527531034786446498746432684383612633829279137831029425743691696013621111988182955424221395362855042295426206981811446057128366922379661029439034332424356910143058023625479929003842966039530949311715357707922335288723465467724012628677961781565307353401749610137389395058433452418086653311781602462793509374685459043756829613370383754905009698216937209904842534774679772874778549233785166317440701052782195338407777317011043778535598291618479096507959210166285871455047768157360772701566194669910250657311063433244647535868659161039448360409142077786233748012699885597018327892756504696164286355630382367132863069193885540123963535980647161746220653164556330927580586886217482357339316301928561760320377658315387719447169406618988898320322677619914734926969680558526603018930762657403496413837712040429932645306034181504785725026143288714499149759413200433820710520379735794727779380756551929374625840539960646386595059651521217273804412972575875247395104030115933425878804470616419849582529816616916136823540936469023417018551504760407455720865595971636468579545581304457044369429008622676900940690510045681776995273436301612047556899814659308944959835694627289538684246321987459152118270805674200025445098054613470125934221980724066755228757781237134542319134490769719613682282088351912740868502316179675852496855098970418203532313719015053036526570195135414622286013896400111264913337034812040102708525767847642274499655741452115335279250327609773704764166071664599591035716909565791426712371258053897573079698660537289092087921283352908153892328230482152497681802743079801275455580141162310052448715972011620189911839482371875226165339725732133108339841279179936876204497395617177124187074968011253385367597417461170627603604154093619727414824591368824506635729585606748549829875564457154039016854611469525058684668444593340191295477538999286799263497068528630132227573298129186909927544407878216909782649524502725635689663584837622710163798849674674693048454409921772126604119566688406189670360113765543100918320262632278013414847430825897753540343988079863341123010879946755794428307711444715812892966526020133243539094294612884472413684852971023134743660282122052971530167064603452681102837383142979870315784879840687211722571670010983290030810911732806055234794170326817389895501388939487299523528314040847753257819713031186173070386319181129055504417530934862412689198947197649216919538574081894863252252079592359455696622373164851966855099681118667584947088850250936439155935150413822531681260310434180339128251959486459796597965717494484744408439885215290153210283205332285455009280809585928685336159418573471188697492869362988027853162920281528187894280736127928116336389606212966980523756749618242167004102257715935483553927368954738093417312842693327291141659627961125134744595350410629775447050490618153659173306943462285109794115284011588768991878418808958374029389292124384515040660961961617011377973923111483405694883736124961469440815397881443336856249258174945246639334271706441088026141704379913956568440208552635772308917360936747737628497140292485183208880202776240555517164892047061598519744173097266725877290668275455964836219741230416052475541299693643916151267574306503416150599591129406975040867865316766175599688413450911693452488536775265095816445887471945050071226482787052206018623455001869002835806867493787523571740699904995330186583276638791237893373782134533951424570771528727371919007994209930272090086667823122818202010557353872517859528332290888221482761397650475789137364175013603956386311643317238481937507250575486083274509783996108969734045774692337986040131648637581798428235073439939195663337871062629765531626586318181663445897091719316867509333674751204762996906922394254526798598204754061548386137265483713187983747820445421340905393020687862491641555864687248671875091895584217358413413644523984919944098839813262126736590493135378430508737030553456388188185137338138458935361489390564276780572172980632523665666762575540323900689070345610391326378999723598033250530214557621153783616129053309215386630850149076666666253085946417460299624564460598820270492321145758890360410589321946826275447375032503656636992267889855655805355886206647253819805614358274844186850782341517412346299894740902739684304409107361329433360834334111543802795748029773474629658140419468139972481575351958660308481349885922393053941178009179345445234013822720644774765910195121775845180218157514040751112687785653111586969767072579702874093084200718138277789321839946037903326614187917074292892086273404309091890727805777237653992245988590045972791540640082433778950228336605945151010489812516361317208145538089005319454847405742626331153738489181367083011535684986433667641257202452099535438206388489382007755385566391519510945703786999063980106341028178136285809029759487728050605560846448359672375650850048870079072520803030046923393179464801176398493032833092974259250521894334235890892913069465668374200722149126681375074928870984975021374243679510644727027350311469008482007593901971225774784424048357944898990660795037388688792443950566548264720291972411595121616516019165326538322601433834802135131003417996730000396910759001304095881138261961754055246477564821054618429681819900696628558796737242345406418334543567589007465379528185601029097243145024166633909707831628900491462023328047924430615654395794896735907336305521248102585449031939484675072384860924959370981463084872378599524668471420442295931304688359121983729418525900183968185304326643626831623299673638313685932281859651555851171184749344818395521284928262682594528443670603879491148034566152073081732066162866359434936711406439489304156984285714276503009591674834036958866755652173636753093800820867663255181219059943978466870012911356192419817718042426959153039404544645300738696606506063823576683847040747418516019033026280412711447827457451615331077863650265385615663986638632766100507731792274533890799834743556972971221611129708704187006874241922747115340419230199268928486672802955586067339976717903995426594887619894984105887687503724961442508380689667136367323372781925562466064400965275424922199833974276970760213379569967889968950218325518196833793671857145603800911554916907424092234259370104884743762292916435090211296442082850771363146108410251756470318793052005300572652732860795313680782550295901283311967987193598114256704457822648946763712286503938234329445603638562609013522599281751575616715174283566006003118021789477040236596492225998262469780116159441781221065855787514221550022505863045392340081964690218826359411735748245854878159657970715430181243246749576504582881555762702154120159159193945261796385972196206983905868267707156791595161743723537373760295575614597260801834995254665050200390279743450231892555028141162940342080157948311038165167417191255008707696748414396055798747497934561497286923662123735680125017315929126411141894521057258871612974987157271810299950851480633193731370476659326361929754082592856366338176013186306501575853644088233483603267845666669227984796475823732794063704486640406995069745543992983908875802468261340264093130032862248553119589512933615910636740520960869142835001571587310451191275969879009072199226570571640060085754570777410515820608679453560732390459216511426320092777011615001543809588373206979648554558074397067114502732573355512499796738210916305344276518729654854247683555477351153847859521597450746174556431816339368934208171940519786289467957773545310605673560115283349491827915275042450359174175000159074110964831555626530751816813662759419321474284730593939606317447139360564568277326841761512603301926481215469534041469074939550380693032556790786424884411953141672830688681518088100294530413026694699447734049016932741338341829897662039289803030976757840254265400987469551545047304128725687420053735784188156253736719304968744029919410331739353053713422472923320335477561009389777701660299851230390600621862880947197061763661716674240269150463042750560237923607268373566580139211211183634269201713642743542034291576591709764529477475371623980962129412505996653855436701225677780590243023622513063413010825400009789736609099081529960044334711903744180435829142880636612659493178496153342797347369146614570303340774879940079174886644800356666593651448403312225062306748228596420829634293991637026047432923739367370026394139382691882335669958161723380230313750305853342651427859362194573947958237524915518985155494644028490421911730908158043128986374380710034073197617536146142479428407727328684452633075802563443353144890035431657821345361278288525743900994461907333196689016087765355843315538602943049567512592491652789948959439012422556428446280786041873882220262059159511186971180057130337797657345849897096959467245294523878992327204730117690939837946785045806629143989604997053503610254726738336192568472239060773222887719510869097383200136753513281465135142258329626500755283050696261822122933031623578994911977692191450555214082596546276324710161581748569416578122171977407660533968972324569476987951693682538086523508724516484895214075235525801861058496338546448252489247147514719857859966689415348774372071817277117368379837597011651075895138111691117599142754805757490907535113121358762461747201721440951287618977251490891045647970810459899202935987112463576793164093156517818328289034884051804684556136905407655926236894040925600370133924398401835159199287373939156579879049862653738610957591155238125183338082157939502136670422080540635130629687426041928154900895354216459463219156804900077935524096550404032709869627549852930148245296204059204647452444113104548465619002027535670326631974689071294470749814326768502296373083519818441802192961768787295922865101451396789536411247904107177459668950396208514152207584340008041745181408763233181132248492986321478636485000315404382607224322630592856532260679763072348060454041090087998552288280598906211770411465938264959631993862592117062450428651485591763779679483196187872330002707823652205742288091950665789174384223963401848402543097459207721706054787740995725074056888442417479391688242760144597565348481752577466819162641898467774813078843800298089141377262086058318782635642380878213090659839903275411526582026999690565456129992592751950798960042341357162761517158729484271391272583202759181538844947379901152473342481012529513555595079708446468037171723712561431508742447601389979086905171185217603443769967492062715381644780490272646045353540666018605427990523826753500673067481732493421646232312107330097895788402359474610954430967357680522190486243751682783631700087641312494616805706037641898400188403929206793246952436382714204766167951932137022180437539140621730474250420108980055886940357982485542960954653418644282118127140799837780280452549330388781849868105672387916527328238899193397023029005518889335743649745422470893943767316960349766148222092355765679065459341849108138021866251045094512682746874698709385481965498352668054397837828175437028372603513053496957613271881195792482771509879521771212322953509682964842439169134944242429914110229643052935704853442518711128660491482517918271765604960735293139715540212871693393354983582788357152450303946141382903224997948626975365986300656116757574481482647804029647758173833171945436881054266891495208781596043625488367812187531842948351357051962617544660868383534963677562711201244747603865929423578321718534776968987323931145812520970621188886243795926224360949508253893700015420953477679265513418184303873193965740933642566358349541554983659517747994103264370674518325764164317934109238029728789282632104578721903511157259289833993725663807779275224933761408674468811565333146951941824906069339029133623540435494490549984239370444958371685554985209407280847529531042631380966575385583286118373120044885414902521890657542008223740286605203842978222185873548650837370947845189016418035035108484725850222798137737375916673391052855663695653281888223707777555203332332906019587810626339752528272888910256864948225153635907312763187020059057723215255152235375332050573979593002655534008120251180874718439608203061610020148415049988888257097441271375887961661115503039059426711761371796604202859459068198147916686072639863628053350530179296756351756593071591673996019066419732389914943645069729245451598225965376041441765354229050773643744814610404386680694066064742892953447728344210775648159097367606369281591160144447785311344345851162303780472026911703862325935354605921065324519088160959762166174404212545197674458190872262965095550525193649560578869138594316773409630654988558737775201554209095487525806878225851629271637959717341264535899937707522083654201560801505855047072059811563380130282539430496377898380027846514629746568172086148918963968188601317116223737560039370685115464382161274059628035764773948570591339621000360939163475317653891528344147356996590182760639459536911629150488278554387233208128445178126057805726901321862902047578925590522209866570365107104829198036401789104386127300213374490065072216760395057572092301222262499026523565424161102040694980470777961372558422112157312418449827318329709810636322403493253290894091665259428169052835315496029080893696178885893903092986893668198994741245694605766991272071112916130217517826510401434915524032687370096240457763384184321700709407229067418802343188415702640107013625571265385848540567946610483981870413034189715453771416111822191219165750999433007392865996491373282587336293192108826292020344947415797785962078581010341734922559333784741864431085659702174774966027396810093293073911366553313558552030223302265478719190553553824167832347904672465161682455829474915486542982651076188285200965850400302974538791036783297057719388723165210336353410656003412459007554892065984692413040801838944518920485437110444881013018049489351138479156064333144419884785760875808718522814779021676139859271881843070066190572182704193944768817864510739881430111738152335661863083917367528581230161433629635601265525436660678239348596658608444371676237308322966802664333910307921904230714544045708547063082445466880313942302837826268062335467648407809031081463084584697762978266745879302813200136660721736422833618450585105008256230330773561618519156233143743682940214649303829918028792786195709385228702704243801302044837406488164337133273902388294815821155416130349107487533134574648300212222191344675957568629393065003016004750694834787748038626965726605018186618401819230631138029205208672071248714419855838801339540102812940869706210990277013468774867219850473612992908332854029306496688831181369508221873747078822323692286780352378603544237818511686202435838177973441144279152165035222874274712030131688558723161725726067778856164414766712901631769972165625458559021861756596348302927825481380973842201569547080841798017240918568433074765641363466743422899910177084707702508638270339869698307831987373344544628506376592731383624597811080942690654735712177510075433068098502108755763512432376207754980548901377354986976124050814985601446939292533785748092766867502694043711455782037501459059400302814337832196369762167280290508972763305702972908657375519071127418242055566904646042857500543016827474889373924186261591240064673279916021895255558270932941877480623874765041523174190983772673380233742071377666684466346671883480383658005472490679880687336845665801088408434980849204456812196145629408146223075247594063801110622051551165323886236616954842982479892892377366662610629369468380780031351076220718799283966373040418104861173696637918372716764353859939456646107578390275201149119789404042744891182061150179013079522900904277632911386430719041388890724013653236344993310573367616124294480872474055817948151725500200658444261499651389126791019151796515476883959907028957155670164783331113370374614678911234464194546880528848027882385080873218134236412255530699150060953199312997274315796427216056191891462319927220231461148299134217461739120644537996944980971881563974508516770145419361263777091520572039782268481158666161972380356506709804273291877597481194670307471095245543117843889074245244156510331592837906892457917656543771194327826763154152874963348465038438606180856311442456014605608100257201243701008717765636519500320627418169786531458784563887327382121074938372082530454123589615656419621156632541305482110055867302399427368470015920260068767668908555237437719340580221763735542865070331323871303473001540052167072215330448766614726331150522831563812654906005071526021912283997637608261218154261234057633701278769059915543711578485498286134003856517931074446522982282232510756262055163021030790598228256195411603367283567053331954351367794206349196906331586245246875846620644799782978427196290355274057269269748798679090905338455637314115335485313237252519766570792212429285589275045374831952594807803545033168387710304881135598963884648521807182799133856512459777398516398496598474031279573487525821676499494675696264782933020133307056367296190526047576687232850487365496822032025464705384691590474342530378674136344988073831014454619170841777117618226379446363019264527634531081159111777240434068774251785385934039319847649049914239343882993539201649517040259459457872946521238640393495399568855938042798538704858156373278808161942171057236148157213460983299108547704186969729683973813366343436918085603734491116384818226203525596555444537582763538078251149971036143865713159914534971729974441307777854393813352683446313368701849150664124960580544899574627173794994245285177560246475205135657842474687510804258192898687214483198800521183273760441609410261027219796933422776129332958055811100826208425246540327855254673621620093185409266759231620085154667129617842776186470319752443473562307722785291119577788964112085433667542401518278667771891917366863082161718300205688684935819105602075566525872934798416164530910871049744730190391375009416354207989570659408838732556966899539264125858586626368888527001364880584640618751699710068572532493480201677821954154197196806763046787660129003261264417218115556977883095597273484995198587934942758098894018630441787950293876106580940120311095398946255762739380524796889575370714618255234067844958929881717869557429889429788591435280562810854990126962097298157413119355656099589734957861828357080199531876257189236281680664657434461911354352927124217727500250682366245433021435977079689102878245543153576078302152924544007266915024740399049972333463196486973986083815236294950873564808187485289966209988978269348166516454282553355826674871190440811300472288259668233225260777483515705979436497761372642398510079946137177535769843627864662669292458085544324374251726274406800103252153136149777861702886146871354818559683995778874588525464750689310034275137559705386569378785247288214916176185688781257462045297209357280123990587194312910216729863990287938541858092294921469640425085343565485277981802404381474083589709034104982275358312408951277372107867791804290644668096007439861254724151090428714527907780883736912322614425548480836817926020788764067133880892052095628760826186092644917966637220561631200518634827273842772071678871931759061268030609072099257121391884394891226175400661345296669480943178490215069480650387694867129098199079487028979232521819349940975918133103093335911959855052841059312538428854213902892176310854375697613078676100999126179084902554454192811426855601337088497270436851660457217269481774299666624176580080812865800074405924092166130082793703456453014683238444519005925068233434499980314116071818726448783746292224355990102970756867398690893518248543667657927741982361731436367788759108624542629383174700030484634031918823047756874232985080418898025909384800336444231220067108781931018078936455951593720573143018059662446125840179188554790070452430882910106234291028938497206325962233967286553122576694287265449146919171474715324629364648632317071887946545151449450828367599553785168759975788935630651165884104801732723608965205897718728137660712949747261322345000698043580110724541132497948254142439971910979085875976083464654816237298971962353750897472707962428077052120454593983085407125182549460964294549929923038049263778436512116653007354658833973037681043841009044524926289296123600920718023683010736022440561785639124196044821664785666932691733845745983356563147648177997018904670067123954415036629882599880055170949580643799761707547174675460064094762037643158147996451101774636329183588546159880701621779013575804183286478706569416830807247002920782264687382532096369650741144991425889660206273610965786190859889925727934430064853937694112465110828734975494829847403773419374174658284909172625740377318407773340785216149388866150220045665779421050793602617640092245745312311309875276425949231074710048218638532665960234409617266649361604035343493764176446280595048912005038677417654246714751857310155123785426364994568367226860919909899558944654115014423808582761691122514758996277375824748502909005254155967765266139178365366440113962268889162027608720945530816629700349399522419209683963949816771573477487517001068951768757910675026517324836847966751283112440391331703023586909438848557885739699782574261191326425989187926102892143328761707820334488517853593297772587985918952376315743542526049268568667582214172068802292503954469473619478095486415154444745012734288083279450083108188622998162068072399710402444225651921569802622644780250958356400851022329104427328679779640711413811561896262286139543147546183786198132333829865664960696010818370188380416842610620134042265490107064214064787137171584083331637810839324865680624969185294643438607505571122584023294260049430061114793648517747319922544142703845456270275804719219164751008973177297554471342423036564944406992354848310803753194139794421758535221819265041769091307138056035287821703802242066441800329741224659273915605524198676447348991062291679661072596368043666708592040530603025979880033799450415626075327063090545601280854567729728044592540427778845240457948289299946509689563737446273757407340255148231653512711876279652692503577231083778526845096453610328986818948812594399032844519791712965822117971910683497405416377043611472920994323313960365308873783552278207641259825011748253570783618250572314928821926470818712511557277050868635198275074729574821254155212182184934495398192038576399664182503345481538966475345230541870133320361145634132411553185620670225991997402824104687314691908357960416410546543893544199935524168690687117571992758830990591921834377365049933297013485972867587818398642935914805206077747389291912882816638518373378391045592879500823648043116829934960528381797798427597682258197856851622902670712720795319008640154762713680033608037574447145060868715512228002654705364834892513778356177703735449963561454142814030576353256967536239237843879626839481704727410305751471345620270223582442115799080930429649404506354242548977348928046125344172935460773711590749566835374969009556378117009160356723640285901003011992864568645774759606412827078053329315524080197031039903936815200367309181179251584078431728978391487884505911277513978510526372241313563179028583111339631078434902282980493631479024386049949052661025349632170302176871306477589188959055804539332425292912585977302228478573325861732669294374779621583743159978349302260310862301184519389255792003343747643402228776507379157187560015138418400380135374729302714598194941035435850667668784661227994034484463736953335885767104551176994126381474337622207883569899903429103419849098927553423752600745751965107556114225958264448301652880814681393766788555810875339925612831084734649527657122253115659539378996703516772584388321902940238695470970789247365811811149910533156365561885045696694472462578583550109024742107882518368161365567859824371826966220840143899352459789002172865258641003946530370934215469306107909145053948991351774671182801398095257965279606437385723655613591747862066085718019112961975596425100943017069974101144313828883721252443670673142774674480032970284789632335782881785270292423341786152634315913532104863346337105972172588092603857215493283899230863385431644177272558973550732364559231344373187552206043382475351596075886661304140216392784850045421996221454518732983502678933920684648902816690954582073377245958089108446015618856068398011671362664248347564062855133695619277178991398784799447832637355618686600371232889159927502617709299963689812386874724857030576672965287287391558920293825029225739949128897584286564470437434344613070192991429441171437753043097046623106126844997094867023658063775239230107377971015221125547408947801190178329091511272828612249885967540034269527320203892112173186354352682813651353180322332164879545149371135250067724308312075201283283129490603812264965756672299726907206395821104454258559003238565191274993348919678850011068881012927179353404125572089497970896383020200965709800811993119044226029578181365594963917109696115888658610920323374559094989613271357366741511017570682838322325995748328685966489741468349637674273102261555114671332228842499868727526005166905557778727101614279699562956348416153187490596893316008665804750303757064297022327037937352378670814918246384355027482863558022101080501091133506127187709909799760885039322298982057375092211042725507496066420372806354731554981722308255251837905344429545840073058368877523557560464552407234447913594698485835623088862966583871392558504355709132954177692213540295055654678469187337159975396405605798839366609643842503825074693883883934980944401092996308391149557401709496349515119372491185882626940214966801968776911901115436631716908359947999775468541665943423086915055379199288610525272582447402043649065947433166306877089065287987870959344591399077446740745462502676036016697312066885628595704103874032879018637570219535919655151902437483124935207424605992249452561521872518811417479306856430647075414221171910905960835224135679386414981930839026000703748095273166706636601133109047742103116366189894491989244538034300263822760932111075777093858893026987587283158515402956374901615589920421863398258703530612602630107292802606566634473835617900905722288607851701253654200794363894803415314749136258643655092166036863555221912248928334844300070912041460564702629866845046163112226988648914734674742379785437371928342192711614598757126622165078116876715767195483252136866979420329299461916261054323787578898532007565905363767765328210881452637811467557821481943787637416481113546424293018101450133613717334615794263448247822165451685767877256329652783616025217228853128208546501742513645894817433386671591178995844258544379810214436033202410882195308188802626891002695304396400230961863535133392507489105728070820222898691272279655008239403942230588007337741883482787584844657617248022051984084740486588052088946938422537545637392286138718705178263451349056471534455913727756222294925514259280718717109374702134240669750713336008889960639200602893407262215804159699293947258350405337026440918421273999099696234487012151508076780646617422853236250903997947593104505236487683698307163982167872006414473535995508444533749930183114582013982209053988527851818359951226859821824421956833741512157270353059819625652266616507231936053803542048004174660632786205366551155805046407324464729648697898987556848554570694552686351665033903525988179866995679720453834768358371067915266122635095696428412750058384551703569852707985313049533804110253035684497410757890060164256233605603206702958897530109872015922465484496471832375440795403987127896288643715313742683318249356669612050507649925918858535438570228964524154218480667730782009426513413277310430428771040371122061017224870005704658242328482970197247495228047677272354947429205020747957786385427481711742260810496432216432518723660983423464798323358687773596357471455559915684935840449951817514151221858743970020869512304898216276536405923916296804521056719205616377381684738260922412290687857916340988699465925229776477562519787305889258092987024077061564000533108018660557493483288425647847601569357409134644725898604029095428761894194178580058280486431139760769151447349264837888112698466659089648274052515330304928133085588464958412650279498772605262868254190404562808473613234077445481904711114346197657424781914998293827585449560501296028546142721471963931859752161817232070884656497538573605980907011183782185935046282877303439100076523475198592021591428526808686764323093439314990410372938856598627490126319667088744270115074077000625778053752463773130148139016255069548248057044487270707145650372503839493518654142658329641311949054361981879498532985074144744240732258737958700001129991907439435835839761523178461945881993404177753341006664786088924778537754441874407480790706980205054338712823192320491927943086898830166345574609139373772310993288391431344794409965664438130214107843080423013202954057073116354851219427861967001854845899412293219398089021719196580289113255203154312961748127196664401610369504995217343735669896260339922429476060343519664371883119675831873628117322570571262946806513629772228247861372161424461168166536699445347572735522899284056423702724306811000660984407266168141326696745222607779281589296811354541384081109361803983317426489108329063343410933016233076305723052788357039148012240247365558891575696240672789553094117777529851518949765860783808205557335778073904914489034923924494827326559343519980907622880264657566827226084296701125504639286595745033059382818580853031579325439217198837929905524522118734541715079237986820704840385023455060441078271993302337773152746763179361233918943694844649531493967370527372427804155129863251346659596857504723564744760545250631327513071679524762473473373728063244412945927085144282836819188441778783802487841172662535276478131595783250116114137084529071344220536538684954450174763725982824868448116687926392969242324797992049938670382390620793461278798380192153256961426497413698767782678866357305495943885739497041900316629170354956789529692610153327041280949457460376743382131087062575992207131653078041757531252481731380139422966639966837876885969965705118336406727220570672578067447285337475702128153487089316234514600160578260076211109902639358107942868798135357221880142345580585840282914761501143965991794887941764261461725347667368772410836534842601192570666798407916681519295905793949579995647328071959938807565361742403283745293254379942670298985248854915298525915910552896166517433569840625526592732275063299560358402618960732100974981443864015927914739175899729799414805789179316230231592133937555073020506966559673452867946424742211992321585670711392701445583463245906219252519302208823105617714605681737247220369736780373353770755178555755704843791868143346073448942286457424512209365174863451113773989669848301918438135672074396418536713545326954046504360412785648602397500482508979130663753577099845772759073157995995011230646201973952190505051421169140046149261303971828865686385677878788340213198299143186297700450033232616930837147127040169918430020357213539470375712442797317272744361778413622842088906417816883445234169241559692867586135819042710347297304300261437766690415188835414006551431197076787464851937831744058960897921511415412631512198294514520475557118243550463005724624545526821545810857822892953411335455009316287825592362273393624012222841133417046888286090581135092355290774668040995837348847878914943811904243497686640465644029065860493741467905323960085543536884111079045539174150662041995305475376428315452009672730519251423205368492605445861935832825348302246742115421347611242962381006803952063505210162798915652074321882308486770878725774717555809974240404522426387686506315580012185598450939346668365140283826069208707491616536583337561475481304727788249417592945602971760596517531000236165259093236793518951640848905136669336478359273203097005523096162154469607105404258667893161511138483890890205838156283541853169752721959158909842239651775185610340038990362075156525124410396619001081339751159931816454075328221292129845689637678273695685620575536134365593558415306974206244470569771805787382824890913833038710989955066644266814177562737555535763884201516000512140315157652998464104470288483775185150090185839347340606118519325476637502948254159310510803109817157994103035003594080486223775429379619002253189234804621331098856834832453153434405531628463841311465463968997694933498655089524498190692028134278953403406535282985234614119374161805269454577487631389463427282056797019503810231336766162824967749680383161619787490560804608408641047555373874909021477928559613544821414706801024182446515600666243487618604873048027784144417281292270440017275658150057477854325891905665857347616392481621614041908047524135247135251819657995533499858122691850237684082386801919365352938177119494179856682406062564415611811121311027097124978661361797454614187455357854711123575199897966464995422175385215291331883455758414935863119196236309200135017851300389256350316032648747813711686684020692836910170650462892561179451324769157271712458931445822883024385119626270201022352880692309121379768876786328425261247169780729238832757054796141785615207719899725298754173720895689264437650809572784055537103536345415661079919127162558137765235992149584863998410241841490169737875443938345933212014204261412095445706504270306320467610388811467536014272180692337558572376768457573495556877980409998121539284251748227072764480446564936847259827241478591060910549611280714762362720971519562434673000106744838065203391630254491295213551800107459298583144672951487194741209879155181153779001502213888829474326234097622970632737518718200556755205233172965980734645699884195620514489283050414467990799961065734586919447292622058125389467246318221303765430608276608629330016583081437746128197581757605156369545899144580261973281332730406554724157248796764345412708987607760077655893840197356273483774788441840076530699651124485057502860291606202148295864873651736733398584531396980873510108857461367949963856496970033642783499504125735076724827375864400813959353909194579138032725548752770411961281777679899273684003830520018932845324703277424697075839155936772202823440650235545191799855810868170274340272655922053845816130730809380662825195169386884744916577086191365848970805265051762098825619885965699560429339027336943840003973794420190140452820059272043360257457201869298139051246506810513348720454141023064825266446567276551920861979252185372181027094474603941857226931518581880889249568910410858452280796785365042783381933387524952434436602038634073463485724811098387086957595540271475694895544991250098131917920218422323023068213434171419099397073705834207560121580126826432295861585604203559837976493572376267264270247221330522310468879386534602238665545933726707402112764010995901908611583288177880625425968486475930360444794122955721733239276102822268150646952193141443985956086717505437793876418839613351080434445225844248472683923735572353979399158066515282998381132873812469461132004045999783997448487692686095897470659691179293507888354181790756062078775644551364902610120582696485401431434650818335227564071651580709673953827106362715459644949523092479353710676780219748857547915031887596885581618108040585805043204217630976835824561597311965520624268190214491981466727020905525073352760581652508924540080203950784588848633313636698528819703084226432677996355631871338592370213859282598275962577128135003826947158892461166578803336264043402044243854174514990352616557579796800695349365808008747664918152416057472350559180457604904551985142289706667791342217842818840196719878602492119021567792193243753562231358786950374454735710392130406918388855989393419722827070134302138084851771438093654460034893741226939991452857258783564148733507323229793919086738046726071406369061556432352518572293106853286431702720913226526116585873679373362151860733118223153627889849237823954589865083501639326206764835615539462961333381238344443197064817199514611147024995506207631091461075838753536306844187837066920058903190604203678092712575476133588927669436335807942154108731018251068136154960560211370704749943432125166563333452511041351436269951929139425398398169188136326679833867496694981192513421900040912012114272161126703681772879101641145103374730444980775734296810202943292142477888019883875106284244428356319668921625876637375538748478990393291109201639178007216101743869781242182010142871011040612417129289168249027909380350774637671932839524769096768246540337441746354041676564621463825549463301104321782046342310265013152869810410936267993378924408093748528078884157664099561641312573050654981281496189537663647878686855601011552973100662615793057035582687989504530444432600581916874225221782038620709172024781162745417674929773364529877111268798685277667140157683757340414864317977972431841670882031113802343534274537441135594421568910857822694874478340352100384596970574650378894359894790491070393010110184736155832912337185961214334159230961197651602327169297306311593569610475664588465289305232046097205909067538077295512168489383071423009528956090437453798033726850742552361317916434245621797783290713260739798693495948204526716846276085500917241332808666881375724897610415750852780911617168940072336518593528825005332156894926232158538627656997812186092717080676212443638974194811932523376819966787960755200598027648190307904475172538844731742537225375027708137983383231826132346582670753786507320117601976874685476926764300698291443142533920222177799052978133812895723357799057409739975658088432869515453662425753696651928933647841716843775693827798330070426232220628869033379925257074393653082808006930583940167998373082524032332644510232757316193429703138775200474357263304761641438481372010343037767209968041323015295869010553847888667117757027310031199628295177592925154721786701465418485326224029430403408917222379855193860416936614648580089999191028275410000441848126304183807876244712130220475886385122418702031127283385840763336260004547580211283819431042298060222505604084084136558116376958119253246724359568903577860967727096421477472709764223098513692790220836902238161860989031375404595684042285116702457531341248360588116820251460519733520452530720994561166580982378681509402127267647741458793093979644929828479470939211841032343802514722633754741542220097944124847031971312152031528960230250911628747673288916582043325812321699435205377224541213419949639388915384580460416330293419309785746674136050823639215841251591085055659948144242068137134751250737005479386355269428905410147290348162553300903586939297849353126787989853705956596145307224572398285364222585482365295390834392067055777893888510714809082036680808739113585752309690427566484195938433346976539442654561938540218308739725140723493509417354948340167479836429525758557392421596334333951507077194934377686144990892555729148685954970398562754822152941135013918267480629761304069483050382137157971934189279386125369066918116373799290368294240311096381725033001836656271042777717142314178290588228571281741542072819081100938054144815645951148335120725126614870794282941126998172388332975763419588850626906644333902636291041899147698116892525849882524832270828184371048172247154402457500525634921431194073007890591242925579628727967675938090468174827275833931912193992044650815496364220703652300707591277961094680681659210005171479306765184377754145366078147648019865233165370788005784914182855976220697664462844228331083698097848800484959684177647914113386044377122181374928361342952254017397389784479888032968555107726935687718350597094952953863009922127396380529941983716752434493543093196021414569329942984809242840412259795210097539518922408075844961954208308067948860955086033333575938502106732420210315348311797868212711624989616527921540091796148001577950916345559059609040801569132512978724100978779871471529803687188207302939609421788616667913719149255186327469042908798686032729963555477373638753371998375154677928208645444507055307294892661350817142631744713615152480968869470561084926280738940103695378218007728568194561608671845087192542529460266269819163226725692967298005578573512426463292576132949732162639431053431805061579346715245411046162618024582598219043795069438771217393959002550486591281188678729849969272551927745053888581889024572767814835929351294502767061083026587487905086296127130270100317613460109921565112917863869076804920765108838392283779485339720119522539255504017803727482909186046364401775883817045410220646880804897234835540775658047471551945484867514544715037043679178547319025772723626613226849939776526752605898123417729903821271915451264463856788605517102266457223012971082912915169053598034762762667104576250199168861337122973345183891871897336167301693906788780915933497416445867391496073837219869906729429065792943164397545349109014507217623124512125581293328646381393284020559887370392211754307078812803393557283528766594661640228060923368431037603471936736792721078577289611479956660009107247451956141104744175825686375873436622810753012397311639190617837022658050788821457697535785889272326100279170556692520739018745693276417602213254416618780777771106383425498656382225542845082396878646197351296630363428880469310265345232182297866166417718987359853098069105011809797333885510986123472178652413522458513118125228575691804149992300846046844321740930536786112644394042431947474414752217829660041478578924023347357366349294666657102532944064013331972978623482799712508703729793459674928552435511485499286354080240702453096077038739873325952729382193084696362423101795893532360964298353630947905283461191454151455339343412390605452131939655754024964133869455154442998897645504331366014142113538252976664956951988786313621335709329604009177948156226964513661797081055247132363300243449512106628390072391306152470125523366971769401996168295552963071402094823201372603346543856585736458995654863261800093098859904770348518590623767488992460233513195097943895268788472804932169102603633050957930888345277964278355968975485114692225657143660613037554545350902432837400907906947204914889516866340137295182194251313266223059815204651692191662841326625789298949462902296981738450466761616130086362390061140049797715256557945092077361571689513412505752137536640998958739778826987307364531128237214561065810056127008929311078411557766971376641296310943512281951951262730467415777517375459279020380243246336335803951942338211802923518835003393648139227361071180789713511091964005762640486469013309740782192983675500457905991484415433891938606932509214216064519768725497779286943592636866223048816876271350026225909009015111057939383878482536243524900410517066536321074088460431380967923102212165354592036840368320089160327762644330701187051594237001617577075308283193564193192005994042219686508247653934444046635637850967842555945266730262271525089726579806077688580295824673443101939916150990174345851565517033929497967487589104105928473130597259777326313726252721794084502469040818785791861801861847778491440410421639214939489584389739195737259523001969660841015524137606341150324366141072638813561369622627784000220413845881893820133687695816406396892922441760619041755774484863718782988408446967661987678708629352236817602581458203852882557919146078760612070878164539610974795062243765179778368602942426755731444872816950247979775654754730579793444821535464798471441135425196486583028580148941237376106622008102436545338869177525981334946008489970678452780451222546744198223695323207062487813000728138554090197296640698630552009465776657010831527799853462542224486170821096016468492391956026719084411058812947221944511000280973849894880834642687133988659015746505395180621036202746666387284887687185513438614979875641415884388145894593641372561896558939832027016328986259890823439932552441327462865610212245263365822745830077146134029731087272136308274792367597947644265400762199052261788047138721188652228194627696964436424399094688439974191645996353005933868990996692681532962643702692232548429481534318267001565601859324808769545360547333527240246789443276673253546987212259360230552203386788792679752135299857689019520525886937027964763774062479915657577192702588973932827457675379841389535378690535500008850387105677031945096326140609752415569930946904677101288671302749779156304558965231636665907612394753996681866943045755508479404900401998656050791879221067645538266157354366613238652546434683016897789899891489413792638758374621886890269660922955919567892729994580310234031124722046807343045381978641870282557337992811915624325002221640491263700064252908909498102998553043423454982227451496102535644120392603927488652541400701902195373155111995923227620850048458741777273725437604980076001210122930834043766892980148714396211976974803293740562801858521814690116327973393917782640922969269966669205670586676213755358103824274583126479893350746306121547187465409216270661824022412272539040314264578002286611748167749378629389803630932766230400107635659608389820585334444230603075600171020100107759111257523158847874949577595670922780322032662542277628130164230611151617618260571406773042917693054302793568313719678612272187445930435853373923491367215986760556128013981836536923938726826562402630008082697998459058932796277853734796351645300486341436796465687928751756532022044728726045792254963680724290696940630064274844043580061519718146337169034934592728744558520843665427174788855302572535193706044830070016566534476268809884497822840769554819998150404448111508672648469711035000893884784379710826560837502890393972654594541343213768266120753232757660884112523928157807766892389956020136410005282081507977169702514172694427078951104072070199450518969144867000855488007188189507168364454979343552908165784394084537540153886526128131579945012521062383368464700303408799610250148969945521208943040737072457736040923321975442569316349385384888143969225709669596152626720662927321716931620746650458170026417436797144349791294436119188445879444842042161634952176776316058164333319738687963379190718603927279129700050176746114127902112784271952091550281152128417236917827701969364049192152589466153758159335583180987691135065844764701063295623086716913139209385156244322248423317155734351878727070834836778817455427141520543509946921778020640919654734048132033682499989146929290064557080601804509431558845742224235236269432332407257774134128593710854899763219189655329924197041765989889141355675767571726796208095762405706955610181255086946017049053370131498658470836605119397597108040752576018887493841258482911035495825161799525956115570412896532629723650921018050068093867404372743602822837693962930914588026885592984505442599986450060642137919066430334146359676965057273576393720291918570311701563176888099211115266569181649229062622385727624289297883483119498131620623983016633750861245654139876858709268686135919145084200546340821447832040308484679282590525153450802734614952164658946138374045045373550524130758684319631523129000243601460023856756560931295626056083689386737772112924240844996828633009522736551927550702489849197406946197796712540089407551481243808103744910139797463293276246573837737561228047581365258870114551551453891828171004018407255878665083795825789205360209524469981131842435755629608680505380849251024497934800682471123250628275089542487515423016512910622944846529185156097213701411030753832596715727158256264976988011679032483263938916750807013388774132174377972903217807941661217978260111832497062140767301234339758349615340438126142424218788993022645249478821147618095535944086365219369888522743796953479629473372943374545901690393643403523630017004541694141378417070015249030499164949250381296096099714574386935722252839340497240176662430376885821700564914958433936837335287471521820399237189870528632412787502779615594460955632071959690561711313200828438464351779705391206903572129743159292911493717771225801860842323849886038494973623934818548100849253910926922899386076933079017455943187085468738796446536785094885141535145008248863824574213959107714256172656664233915033897023223305820963945177265214493178313912836152119591891246714314487814334699663381163940202607558061165278419247257535993030808692622411266524870455825786256653764831857390541611341193291305233790579198835575759418590534332978577237345813986367902828985029960396768187187153793142280335891242578606253836712374012737787517908167817771140165066192726702981872814874140891082391489111524033882286734764402130575347171373192020271431088947446826893061840220854086058164466343704037217591682181514332310806560761229196812108874476846407080352460936902605950992049798143537846242162853688534108122365841892214630728539231085691441887364369111673198395987436933223151643842209940344869365350039565091587712585182418841334593943209724850602193919953743047195025710586319863507428041790065294650296012671483949699580610804483918149719395826749651291264939011538748718152708018057571655058821141978298898987685957159820041223943471781589944055091517563902921288585561706060806632582890334579775249119620023797967384168337216111546718518498021959255431694819067330984686385952141190020602844745161833012875214058170738084876932318790551845766091716206880884765732152936967704415263877995650258178031573346200261124872564243553705008961274617854853805221304324569883568043676210945954417074809822520741907121753959126047668527723933185469122101273487427462597695350560620381797514015400436422955823736845230270501823396948507468577201656095621023494972684710849940663624634458508174932506119145120041814437312739865049301797381643397589490433995635251488098395103016056213885517934422268644003812913421286151847787699362959522264449578179176247111611642064020423765102294835550314224640374317792445242745925958980845287432229403188444575198650165361386083107188152447484474209240927938702809721806968340854491309677993516699005511241807300333672585908835086729216486040393997497605484395342737541944136307328128420461644916476856698492062058869962838110657650806267298585218794662699233956193744257596562425061566905984797936493679430923404160977274472102960013611657863825175774508645569289572365270142912409922168000039212033337705103046392305467022615389836393752392853617264672504125541691939917034467879038598907286875016444385002887050260736651664821283161088660461106428869810855044194562296056075018115592368120120055676831138819038890519285342814256191545182328322180066128208124524364562242538509373828522581389527053002884566993926459350970029996822520444368217787520410381238530641196395166404703231072821351525277049686529103318585610377735245800586741968270235955633439756210858768786669989354309540809917887007174378714947763628015218498546074175092616683491677730164903742632718369058672385193115631566266707708238565337166301504330598008215223752413809400773599029745276060368371933898451951190188546040898543906316666931574531141793551474659344694163825359949241468897594791222322012589654826448370723824703640177656471229050318383884461163970222998288032919768318780848932608176692587478609958776171185572233999616291270051512636934644280585225621740106882007783051736503745663129232122309700395852798150589284469535626637255725455376819687774240463700831305773409773622218365765077740291597897656599264514408467275789494735225921279234704583249566899527449996247595392223110854179808964922998970014136426355566152881570635126038239981052424396675078182156187300290571824504407756413325291435932665527984500292265412590023439629447726340758085043298074189794147957923528492999509897305567827219898080293541135114360580609746037989778774130080585223855029961065492929018729467853776330340896882491275425770216779536775866728974104365318794603412386238946108418578265525895081232860130838114434295654701692201710953116468742987019455589107037861196513109489492738241820621928344307210527513886010516165807876683068754283020039916968957047190309397630661860760786240157059833558475484413147217308448848206266049428114333227867371873957754854442790226528197658368344711774814260192351336052457975476418495738287006434978040195900784160019301734119762961216779280793931309306008058049372242329705867865524537029299684461347269631078023667123486020997542624881205109341468937442992789086163475326223521034538835971654455279677904412277262293658552162503936092024930151618209648633944811258801445395617052536429449885262971958820942542423455304031943739610347232455705432939582081897161086888570238401701887394689709839942449400092469397339042332491326556977986877251862285462249131357514566583441550734245586209875280136052582183423905765308660423276890097738823461009854727061442093323391395805920784859005802308625855596009726764270404615356999204759040370556604614741132588493564800430533032510707439791950497406717849368492051717600176101242372739662274811307093234201555164931858388032466462418599314581612820955782808827710756248010163793061259456998018012968656205786804406510252320677724003511017990740798279802496054688544312369555075947775336896331281017458919921040286810465429849676038900349180219569269335088588609669242882790417547691489769102541661572113831068697733905302566646187359097668102667429018706087383139285524784518759119341784120535085911115253279987420006026649726304555806381070637217132689649764963286897855085208676878326163747026217301458725866299244694399124949435599249048403456391863248968628491027995319418836006579658089415961573310456473097856499219603509939152948138074740848655372310780483012046630428062637425199183243918345834353588559740472537019499158255679131113505004877420950720894951910280856130538544178086263967003391249041708239532122787305209700202371292954822284055503959167600001545075197695670006700378110145661913956219888887797908518567297556841228462445270531651874607355120066845920857614974322526690737335190225391159422259862322012113078248203613424917859671483780570595182153751261027897416936969802978959118027999886958615720378352160641003703176983273519419989939212173019442697397973732955974848869910524976649450806049542189846218903094828659081405786628254041468231231961775474272119588607055285406707682958919240655149617206324151308484156565488597523185960932995522517897027003809472739684061935570346456578565250768700652153438876989524916968093181026045882579174203347284738886525916724591401775920781060221844282815937795965131171621668982730538375243361219251239621424227437994057905790962334626270603834589256787227770757705212381093181581985579011260932011241308372964280318134699655668045907019519262516464232090493131820231253886157778366900008928345632412437443963078471924428851378718228679690329377877077127963490609724450273811055451581035168960232594805451450284457799486305669440677091174296879222565504339029451244214073700216786372152772211094706087417023842550644549748416402872063575671948088944218822648996455970135677709241745189164573383843572721886959943302994583014356608302122956755173061501682159183910174859703924572515630019638968249992686169045307587523161662115959272210438992813344550844461155163195196614411207104614233391623802321704324698573706044119087945321291473894578388465146334953348304124016384709827015193111893206206418153758563525555834016441352055342684685421646266863019230995238179766606173583989390984621973861527829320017876159229133248522143899912213150625530017586979943816576827270621189151474543311973111515437693336263617663612770400817004927878917284918866302026155575205039720886938589021048740881350349299738880578806295324673281868305067723242339217857388198870648012432638730648185867172088101785253314670692184297588963147197867233406320321625487786465454306470768247693092092093673023538838522072026929062495988261464432713830669180957865146846864635417317627778752663618893293349699891205415983054910208556828468263774544955440318670088459380997683676876223656140905334232238166629002257870355717206809444773746049815653347700520255847907128221641750748145546182418705939268058538583615047381180624877455836913077770084228773426281781259078771164731635360333340228129950127427474255941740679765030506132726762034716198556737383931441044283491244970723990392696275063470336581453818373958140530615569326812575495354579462263977306178819851431287292611438174929694243373740119426556576485921473980305879354324905692509180582516304022622796170613239228906042784767137254564690341345498412874020955024902386150204574753584891903637315135249715715524981359200864802995641295772250113226715049175323536783083372441387899219781440390733957782373879114549737625902829487742942490205455031411417342628456804828307933305199291418118202622932095685619308785895450667307669790768714674919256723593302690549994884425083017247757178572805928312283145289411085402455510532609806202665904796836873716445393566854300304702436986382703543758600027687698379808190274629337740884461102784302015433563237923908979946198815831529439079692957590312478993696960036661916263511017540947721757589501071109295934721829424884537659960193477804823804700461511365159405582764441333674518676962436515238381283225688015481355376356585872128959809314730130142124972624694523842240883255747099385196774928617627273629500784122071270623186651507661399242819471401988759749078645934315718722583717737003646545496850072149531293293143815150254308770648066675750411823050771291971053198522061946895056060371759984949242830986479786089881279374931527715747286857691835036515889252682246901373302765314849227717340343745049762502010955096448625157896647510905883309708930822554930633571972959562610375843359321803818071819010498117315990618687870585524800179223698574082413951449277803621485373029496961990158098108921387129543823167729360908344152169041977487131382454581785072700538349766097019590996168685497153729882721360439571707579137401118688705371725885493659178662858919755830961226709363054841125262828963185104721249487592135724750238425879394001645129588983643793762244759452041974336384575156654122932912809352576728028978400063960284569489841793967181797858082655340986243906495767592881519873533215573264202569808201305708595890013061521480488977394229972588859875244380595319293687854396001076631924961888359897269506313466870643395901654307429157066415010803415654089494556199839184420880621318310318052659684197161495596812642542154816207375177357977780372619352635243852130892122279904779823930473952356428085722561309934652502557904890226173980186810059172542981111553414268700057679784011733273860310094266563248690875603413306002406635300602950091654697180873194984323161909495451098851613175457852601151518256274196961859840379213391925962783350530063190898721327159332819252985035554363997834402048433990614080529975044583868523798756887770526448840324607644079913264432201666971807239899050246113278373883370313567367194023702258969741330327889088995610432793261126827399340572372684936755327920148638822579019239442005528184225868488094121665055306609027595441694049743330069321170860812349348190380673943930641823115346007312564067549574055649021825466711486059784576691059327176815461829705977267862332756242964744451371757926616882826154897534885760330701258867439672686871066085201282816223439772954892239652497505348960199912735490132730792904206339193872001779320835567004459789291252812360525494057188378733544231492693138091994921207051660411542366060227601500223608975126682278927430000741735844829828052824091832479391595423943818227731882449455769217015027928385405380360843857084338307773807924152670194903845347006572172401023708169212388384020310399056519360297672188776822762363027115814425842617204127370859106103100324228758349008306040430082638407423025108621344652660500996734327477616392050333354798274192202768040049260509320806871160005241283167356697793360328483203141895868222897935250484732384614853623439565040061273024228753244300123714047524035295048818755695479731050231513311010242101403093347144152798568435255688831687058484928676179764497037762291092027852128944938535086195738666920973408054839707693404274626686673279493195307520884892226718132681463845484509442845461729210582509564246134873217285897273424839654139287540487885280982207405499288740442920484463032385511621831728586337613215779709180917535406307831061497478962087258616189778652875819828774256358438529035489691834357112962285670875355698818453568328477132586042363100564560474955600753135156851047179069489077736259125261081418545758472579508299654132974516226454647617873626059064209519544066712186384866181327422594226261521384400036308416384148166782619482881346234892730336403396020309457739174365357248734344888632521643247636777829942000225719457912768031315089682500888329026796966886990043147133733368081151081644744015360098533616158116637090414941699676349734512806153234103178345101220185874434404870472974163894385361991181034537969124543585256898026852323424513276469504711090716970863810385010024532351801289095552980563118091137086650397453314013487156064640174538214083333920242818380372652297396328756930199867769750248409632882092851825812757338540065472984550004250813806786989838259265007020776558974541968711977303387934302606496017283323292665889994540722579826141381734287691662404255528837089393172301242119563823669314064400494779063293587640926682063996095662369177763531045712950863333768479510246000655287440261793770524748924844365166722700287041357645385115406744508049598909642337246213073403004765142994912805308359117110316089990065255035427500284689719449636262547966636447137819703787074606865108951476264925469468555808688501376187463960385228945694886837894680655832592484911365018774632359562325077845737453984941799137614250735994383988465571933098185383631705138311128964371819762511226080240770183731682126408358268090747285468285702886059724703093914511719258589645460269455669093888273391117882033519459724982618624873524024022954153407356158086179448468946492027401901996640141219460153866860354119829013506096835092486778929123221515298173546692938059759770887553109233640005044500757103983275560305820218119110525696070787890202340915535687419769499726235742172387671982909858853454548769298901204721285512771509577197494752337344101128684305890195612356236057461613161310245487198153836524609699951033284522721075810496895474213758657913935241510373349347446851212329019847805146705585598114094743364946061205765186747402175860272608748896295145615855232504663825609750329111882128514513607180087619905518431005860759909283491472061854519163229955955968507732694729424024173604421371987914781527164233616595621807180264344874393191408625592302910365772568394425933537644669173380458208032572404997918932988409781891593921854721809388250263901339148088740216803281901669246857434400017805826216765234087604598471545050747276997907951983250002330672269553575826539360841843728005859894640115696579018897289143583898790788255648632886181885296398869593055442720202780909239678864191417788446375189413658013199866011728522485913401299705182069087710792811600090881309839770896702480479608687799676323337076720367973086883956758710678672530685893036624009965625627177792449445005006355418980669730169193994492701834389776231995879432551741789665223408225823183912117567779897623702032883950928638939140679332975886788866026597718005356272361423530864761445308214022006848565063682543376607583742018809159284303654044080626035704896673323697247621644686518957814729337879115744573669214982565062697598842151858054797899134246526613120354176204285719041363540708224251595836237560882389730290106598336366995510701599149548558642833313279966953486191772932516901549547048962734545938844001698125144684260184812565246342194658334027918988192479373366990591040812215426192082867419491751051528910293755872792113656146319218211060684847531434836270083691945895772949407050784969746322554110974247818500065424958114079889267455813276868619818178789782109778248469949640354508077675575927517540275747762116452401801033842763192280271874714341393526160112413389415777966465629380822596262721454136493213988311040325118768728998765071390228064973737018262287910436502839199947096106024607266724992208282660735433979612739208009282628468449545608372777203467221539195749558024310275187070166936684266830494439380962852348800953714337809043529131372077827132703387789119850589036984005121308345182033365482472050386778482349189217114758306164236076590736801735366160530579680102602620895156569492116048417966447858363219467825166917284856890158949251981054473424668107532232943630383916731858603101436205325077497765279810612914987295382846403560423544977158658844564287458893279555853271538964615293116294688529377880817271932429134032150332142190344388901534663290625265791705125872075505338320256701167754429279288999041431710635533530216648745956805201177791064181953973987454103110843250403555479775832395575273302575872764711942642864832598325663337413737736449866138680865849068324625000581983481147450650678051150642190709193155053600183041550295089479752269851301874610531190905447679030888282604006862769002178880503070681893300548329989876077240486766567576383448357313406829591830715713155359890158541658019900434939801189829714004744745390823619737595629724112272995331601447237478311319295258204910600854151068586609249773206285240943061037063440485682519605674158273425575876023480594454193302373789528490658796773862088713793510887509133675067425487026791234272952970649981403139094653564086411143038452561551244792755724017448386421754437648167731042834093632667315249599189714177167924393347090122724160489473537643634637727665288155422888367437176292680449878421849786148482001354848709770723098510151464399904078794894552105372645080587633863055634289334529054888440970905762639542747293808462242744152204969975935666474539604884936054885942830648171796118608466107467731889830437346147663880332493310663027289584677139654703481132756702944662335328530677364407078459243128560757908781919677725383240857770616933409057548031283818390246026390757598245920738732971398219699912078660776903008888913905528441661088853440732815841384287603648112171390443486196828197004276209459687978405979610656503454734788983815888105954112825904153440415318636066257101517060845755214525411521970083703419741353921233006599223064421139386428537320719921289925046769209538892940817577161934532023527758612050873941033275536698922139956947765849091435541243074337953068220818709326559191223899917969293160948296877478710022748690705174454782375155122615360146153495396434760199653963340516800534411274340331970447286334438019409563535040896682122979084718893548385006251291847113661846575952066261273771825978964921055037948577968965725716879740779004865499875883006768878443966210735153873589440298230470628380563945894122216430034812825306716053598533371084805052510888668072429650235250097281455452013271299160557301956148519884356519048448801597660077089041696181130694301348637724722504406076244554654795837941840990004917334230196175189956774317604477965475720875102204585318241871214576171093431802009774685461098824714562246135336782250421783165784489391503011385018119618661613023131265374089534285219635525837296175952529469859741906037040172260330286461436600999841945102546711339353984287646411682066323413016393337056543282783218053752306127686554578736580664098909205971825793655135773458328932155636216698594996435535992586224030857393892308724842367006725117697662344251669667477026982578814550195925170478298261358734163660200042247346007670372333747917545860355387607421517335985230922332685634044752853320894631745587880782285749444949625900708522742197352847897482446447576804654714369702875850726072049205608476429226562618188119109621599615679887388939306514561230308175667581428963625359944388376415125371562304919885113229417489428296318694758763594012762286281971642866691593521966633404494071239533548876820922920576400724598247223456287446629526551302036591053660622835639751200506464469773604329155875441384092775084776941968498642804477594093191307869819516468863815561371593098370104109206983441305993619545026758097049741172362452424747707420002049140998029070862618566351938406235722024835556347933923985318255077407354364864480191511508803155593646086036360450796824144043533620017047670462281686851572395102938660077575361278429344881691157024821284020165092625566020002927782387414695582356135901303066443768117870617762715516266500166378542109544137755017468822798524737969025167556430216474662801328332671503132633674328638217741052509523819961606684888183340923126681507240475858725933790263572162210479199176702713477561909649818859287463456852336924030676967085978975368003495352027122744487328269642736757287095718538051590584510858848214455327945804816876691859577400999021034616895082301568233558318659114953414094720978124483284636194346186690108241632780848380982153548683689748823514618921698696479765509557357998719179767764461432465238821418230411853587768784058343302207726450947979820404377290297209572223600319342352590100805802206266516014174764198149082265850268845564504355705294334795056246061209188367317047115452001024507379585895958559860176099410346190026420621762344977225636487317036604463809244106229828058784785767333981528256761592169520969147779311892268319007774146659506016978072331791996605328418446383592029922273159593823894246115397636529513255312585508168414762999201631868644347996283113233255129672123819165382181252718645998901594612837889098121172589268433399961865162297872402886941234407229294526557536523852289377478585308163063470306225550476771860064886761504980725346308031777216110586584699189032049680742881766155584780394519568489026285039446803900279827518778235917173848738126923356122727481595005501032243486331139181930391667439148599161512362130713220203219913830054977651561717629135376616760640033821929615474559156166167226434620710719857033900144381293849538242199638505584375268075479963662684148357891249219757236872661314049617104770476382041416195852739767826989788399174135522245906398787758340546367841177252057568364982027514064033398097208648929733969857558941924360646020903183839361518417828183776728544357210640941726275394034792811241008608790592188818700237226029621372010135652897319082855834099903207799660726842556809497861660600022647218653935337471072315456660450770055727349992584412038644649618629499255161551411663398199739683715592557537116712276913825283848212433973137288050851233711357142852464887924075377054142386381519694723378955625289230449465889701338110047225804881149545870908880524233758899557976808938454216156702127341442181450523576966864450994692316594536684767498718133850109384543526465028407423829888792028996009008034502373996869180813106868213088073579184466369830624484774140119405455378800110119396187315412289866495042047946594053205415262644368404494872423639364716934648702852997074454148298637593154781440916575343715107052999333942536494153091962456771533463242291303681282192354075893399776542775359913421775070888145491818764086110926993054586959738223570510664464436553035502921974234890044209940179929414397698093698312628344206452657110480823644267145598896399625867571072317432017639627211621152443631547092152681443437887585943702196098494077098330524931218787533279113065498144796953374107914357613763920795281025455272006134950185277347960586203754937425384879747887871123081829876501353897779260696752074956065827850036160579300218390368681770687158988865737468782347256296175381804853541448465368943302182805405030325505143756811671414949319616988550599586796105689672092048460118720688243727938610954751454186950159264101713215385074142569433946804806297002923494942644583707652615303498322426793306425602334579488069879224336356916577881349074185121840859643300462281176381126438152847143021823164067643668947240070976405760890544514365189717828532988542648310077394393356827959534562884594651846034701194090287300201434384107777550451289877310580305537270124029095933756641006592066061855579723836774276369532780868956125228712586620966901908066961327369946977136350884211748616975106608226935127474980387172494631403554774924635694316632055821617783581036527128079191034382636106308903877092183313539530206272560036464779139679457504830263674112947294323264099229304349400510371074940142738445453530154778694394863890278570570586743730613202988252891926896007090532176056533614818914093737955642154428866054146533071509543466752095941564212362074916757278552145966029278530606047760721690223163721885186556636841796807192347238458622925522412780662814885117288186812478989884161408416642016574171855610677563533126797963586739981572855734332246777155804794541650882398792784095324288923023868592333408908081005517491339097232667793622493330933307683896142177226881275161053861889396456827478877560130488640052404068890534048609758395769423747332396925315096665068729309142761620344871725641867238854594187954019804126619259973381267862201152640350272503858674521884366581344294984259216503961073903605331854144556713120108127254561391601537850062463124745534353019293996970541699338912198727600840386848966250179393052048177415244828705362356418746417446750703763580135480687485066481201701228104030502064492954512851364621685465715486193527571913167691629513139136570743763343270825829442674499713652967699950182829962661593329248939967164114414880270999733232384724372426796972010392854359679475913624171183051166283344983167619466516913849453288369042172920983090030732174727538282160702918299282361475828384139144516480927486400173769701428539065333326043075763224070834251372067430232143457857617116495292185283183856459115070285441542304470452650429022983583398010300697934511736680093343247737970085187534532767398113810109237063597245896124884068418814686892184610867151788895373055243793554148279972244726754581519283263286499438853003024056282388785948727823947717816014803739275750819929836784291704554702573402124506773712888444196421074198965439286371937378416050889175394783074895744652242584189468658707751182090310356216982203809688128928439872164068116516246394382785422524688876632370895910228009102496246998398928453345240754804265665420092113929671495741946443922982535177094816901054232946109817604490149397271321828364751309345875794042094133335678549646158959235255847938303374428439888101757530525961707636177041365830559540370329678954679711831115769290418584404347196575828295600340964554485669480863651524770629078491336374520281638564610707337594269385280552349161493706457228317160858243753507942207246693335252455053124906141364916923947732512478464430933914662523835586616209263934588395222874433862568125315727522497989449440081337900144067019581558428664916750651426067220599388206089108199936143715044833873376139559932424775313239924083138968351853555808270757144629741195979537294933222623213591462346086284424283160943260252264807864513676918269428024401728771228998596398713233209224783618450526416005249050127168727766934290407475582924411912049912014820078014189573989233455167516747748151600151111319106187157648385910096175640499795686863731617216336050858706246107667177227743402344117873000212833920080478890347370752955502950843084007027041355170935145922600465301947503553346808854343237057588207679930350268550274207005602914849614122132692085571754996409178252453509791845167200082912694970792508378896183734027875620811340541547482776450965293136145166845468825465936634580112976627924481850343001556786326638500034483494170955685822426581944961497274127525603242491034071346335863072221000730021115007122893870867709808278044031533614715790077215869450434179556410349902373086069234457089405205509356766486971704861825903954609913210407845797569511157400991487132318112113149898244743917323881936809464820830920455892609106322557568247951484348089470838347541335874411647760179223647404258198491881983328844714941005702599453914154776294894776113181456154731502057859655991805524955970919252550588589482206090804208936563651093356028086215162749229248534311216846331845043074771461608824331393761355661544911689195911730425776846758749571983462009971665131006085246605071906952661382713955298571107603911342665512731873028773256675278641878073271220946167164058434389958845666129669152315746892938014869399224091802966860145781968094762137297924750500033224842947026534563974380274429670410582404714883638388982554604273414617890355695388613730368824819389598661435944273267507103931923715928114508472125826060908681957684544335595252565707051560117812230485302261642290897148729991456294054744328459689886489835888271991916708596554125130375545377531515153936163415089862984506699819712555360019201959994525825884177296346245575771269494664098347679464968889783905523296464383614646543884243418930838775409213453437210249344434817226783224640610409491661884842021973220711979174370909299245787523370382552432569927879577301137178400526871182009210016230259873794066981120507448707339277695178306704312044872904277562178633717525172817083543671550722735133453249434665066433880747942737332217018097009724125347952257061240098393973749378648072395428934582578557784226319398883995362276083287032196611790819128996621776043025516773842192999779637238387771233038652603936857742358064217695816486596282157076427635714170127114826579991864739797896986402227233231121830202169598254173737903296078050131120597310535329582741909741696701761712104035394424061973891088986744846634480296614306944363332097710598674770541640910502965362617360745314836707947602026456849888430808667569817578437196351641602433588923315730391435709004274719830491079851990201995255503986361919352001330246841807591794935546464371846752902926032104847509730590172387612655270517333656033560060966119809973109131807160714074162287374354556590475777191455436744742951145294559751367723717221824879891470904671345251649301129848021559472935022121751809244090223470472856455544947710267444764499305471352030392569876127922322842839721995848331127628518283844412343271147799334297723801529002527624678311285775856941218586283951022568393870775635787790878288460909058693309788311833764428877022332202652209733040320329445306921043049435538718164996073531685895484811192725192542183570092799855715783616087822507576994068985090362901227133213900532296553692059921005697912168480070856998252576708593055280597794670374764946251237900650355853460269550073627971449869302668062336578624694028195663782852574870823821717753605065847763974193855993304015850702541286613954090099413794902576871843546237152019469632610217866704615874448226590573892658693341522584990102993835850932172849074123669589345422451159640174018147677693984120184066920708100928164519626017694287765880387219281131332720617929648370204147120063078303439778252368743976057989461338808615818041294561378217203219383146582023391786118148130051806535389578515221518053446896715884462850394648255689841876625585521299239578013585925147550486419752019351069527984723988868251068668607602809545441484346007178870480559158364110297206324699531263911578120729378952482547348115610230499031539301322079480974380000467934798043241866319863984174219233216950127231934059872902673907812185991191120210012646645722693270881148467377137240573768720049587187636351864924140974631441503446214990754974409900406171909813626001502938724301649100888290372232560890907428983955490886427718710500054466354061154089053769333762370114197947604026566551897282530739587315317847788806505407811420417645572866317011649303830393043175428212534635737696101517949896731578288622370282731857597168425952674430129403743649280768542419387160795892781143334225766708778638062147288124144095006797720651495400387824420968917582486450225502791912311518602247058368124030329288721759785993071135676939191642166838452312694739271861726952715486074409504645826486259408911060298571870800017664068517751470353755639616735821260876211705992920293980629388874595297242155409095307231729139522752426754199348852211562066923064635794198196841402732696819734552430873236785548008707626232461234435090497025460226088678439709336111642005449761282406859904946956584654311844325138376054169270635205543965476949301585743746419878868776993309611871714775827601164619253884350056207329433292112962174518919454144830463219761382062077222398313650570500557717887912049680240185264541713106911604175429344538157682921223082925987942944501371882732454030182909835204085586848881906966866606023340584835451541427889982853762598728947343122316217736998730546916089396072574156287234158787608234103862940349773962653995605460714417020326698047681050042457438114012167629280401054262553941540609835442926284159203709416913409680854608463420589651629247310920192126572219611319718881540521634811889888107027623408500110467098653746794155099689727285207670136775447233638827780470813921073844952809277744232608283898249239173423233586105236221523624423174983949901549931346319618032348886776493886963103040792943340221186213875451612876991658868068877511637270695598350389381110493975578057592066193936405902117395066028073883106246919602942418051669822200736449161640276578283767445988360240342616149070371305261242090673904321644449062282768097792928883330577664059180593996721787313675344340110208438525770070134281538845438480505630407987245129664800806011236034478008306309125092250713826659930293972823850735104466511942854679516625963640313886167456182647925419673244311255579259399887768734703102036470862837781102514372958883962850524275417200616547584797826062625285025548097725062142312072144317204542000596224281817201458748945636387151690885599631313153504699208403524721929906915567631548090341630069410831140790325633170404998661749402293917332529647650130913072021037224938716542897840852160519467827790599097138485603110666962864073247136136006699311234176721254481017594363875940613020811055236279226205194348979163430557261288812682238985342977435309158867226252365126032048427502746145808433327118943806255733533007473170853341219303237767931268028780942786191344575616009845143860310128907557528370109512250831581195513557351532787148807415863321547872088560195382041764438122322823040221190578535259981042065820328911435947310860811254726642662652662983006831517725542661587358155502892050745460630530094723297925957267266855659561177227983324297359669524079913014584537713474456168150233110047191282026739047271601801616550650976885086910485652573975877249395459574214949519317483660957106144942441669662577311191447544727541018328387473577962896531289707542487037515776640137294845120368481226530232463240119294860293490321693732584894571401688455497329488916606569553060963018569039157874705099834143552292291665328128548470628977730939493902722782219148688960415935425182422968408047330561341033004886101595692804574198030247270984486007139187391718130669382948303101520680969898809134698537485253805828188981248252170777763109619812229959457338477412427409778993146669843545365010960768172059261467745825086002376004403749323415841756346981061434410336193023820356323684942314092985705554775168854428556750337402671897123950041577821267838123097847810705135187982976698035620702476441955585739364686972850763450976114351977411147360031100808401658376382054707535826590394010485193314709021386467277749543698639638563422093319361903097094523662412195911212316334790033991999522784286823891331392195460578743093642743156275041944171100863693149303724611347348201609174372426071748224699321695799938859695949059294885352148967086816866346222611320916200853147720586774422388716893907468691133689394860711745124955817599842426784370204133818795565162126368720069296825256626052873508251918213761538211885255755565354933004287110319691963266312590897718927786619445416419216613609870032439405375381966686669294858861438793317372137245541372261695425599692248032996168934191195232676783776709148090763742125223283127287208374170892050865512323462769698439131422606958177459447692459948294525623740716458525177082435067650155461785611808598882163554724183493387382031950608815361009028103070434929981151940166422938667048486306158558555974212522079071062633851607956714036370127479815600614496308817296295036715257418697596499532195558729605436521429145985712204982101858497235630713603296912344730057168316059179782199962033393744260227008094866504284392362054141874766456653182111128458193866462950214660172021553930534924964498378898451746922132567844647175013731139953351845237223017749277134081664245898293135769933324699822728842719210505428253773869423595325152606317315019628205391532189958118876726481148867467577836237309956707446020630424533478643948442893369611290723715407347737181903817862117360457092507017737050315974465459458925945903631735014856770016289792260187522710171485346714018721133072965834004938986883347921774929209475140433458698388764053133696459680462129043413037674517987639884853730812776220639953884861547720562667059905395350721309821328034871751318668305995385205023188952000384468173460331160618669836836840732777974923485886798415036033968635319530654914823960419540898824824275125558560362253820487144577340792751280989565945929385974458955961413045599774829047560435244529519607504993111005344933459795561251869818747982000369301804270012251928027426162722500649873460764813096384953401683348015341922725732740028951816431653172514484409632472694789922311220370719408037063153313350892270119921089162052873988778784029998252335918721848445870607678684411118897815291540328140585680250348455511427891686305709291433525489290434767897662512458334383854013399400750762704335735349002510078067229487526540771446842149868094476794537047796032239608957512599389120756248043986492102727760501983991965259261891320297828403989803646628321770324657548968849605295975075775131137415829033284683714807569351180571391577520678101506927299032976801105223606643843287975315928255241548950990395772041168766038801247378581938974995609162107569908017076039225049485213220050886548474385328863189522301062472294748099534152142691087114573977769571164663486484387249671627493571989369130889649053135195254274485524058068422260350084007351804741196295341330911960768454821462942772898810931573905287268981467702978619220189667465650781998208373772988923406474731220467013157037119713000185884740571716347430314000287790538139595188762938982714534180583777709739717822253972252674862095100010624989236264235654598243682296434946966005959411842584113036287760330995105564862443588135855327851139834057625677903782908522792377414779476939490764979076578865786159431614552691330016659550267818548052251619008995622028695227848039693462327068901930970563303032151130068542500834068000283165673742388665439645398314668820539242191977760234110484914993986841531831545200001667463898065814704049707036147667079523352565056165444292969395865478805285881373233478114389250404617894098680432006479794498462012040100446602658624995954167738942745849727619658394982292974794026640453678549196504002997055919369867186247339954414687521867041538697556687416473215380131367720854741735555806973660227874062042370125028879826960858117648841417807071013149323139493915200217100409419063838632262883493460765797586574254484926993208899991740469059673268452851113715684902883685644535948701180157446331533988652362747838287904548925945739898438895425672141258696120476045766700917663630525946361938189868834486805923384338832182279149506473461351873996412074834860471970508558732736792280805560406861119208035883292610844914847738389479174930729499409494780382111873625615781471920079194691218870750654771595212345452639371928410382004794684936334591740551526303466431005389938279106245371137675169699155647932347802062899085745713223471110639498696779753106548843137449673305416747927836816217331087369948222700629227011533595930587337420059514423351171351425461985068822951405538312795584142357389005694601570634970742505213591292968507585303902076702185724641263292295239073600586620433258956561101375192447584985304740202651546194998921803887012390264115854550719068071459980869828063762919601594941747736274322207468377084905475403731503898825280863798046152956973723614493784315580972229748198209278800956697813567757445406253020408586829148998376892299527194354917768640551525874534845353615033820879300403555573903930423056604761492873376025289676263013155840717538948323028058841032528219974388591132934284475830513660099267371402893416176138604514345595362522904897812577708103972672418391819621853437860713977667521096610146100239813892856674133394789061641330751286773550509473485412538097798097325271371509552882255063318407477067479008390718007211597673134136642514612644797639829337840156047003788583564014441463777496369263168843434389791812456229059093802655084859529258943787765548098442047723006256286284995215364266262964424498452080350093980962592143711073314261835522221747787192527612876667180553549028384010454144392484983863889198001754437297700281402015283510647679555015230781143761755284420752276280819586785955077505186706801375649938377239698122357808242157809567701518674808182434729196769903510967112855550591532578242911438291002623340410215944209353351038296274276112396113776307406933222409071490791168092303669200965088812547760739661127416013613698609315012327044278310421507491738352265047688422615894569878332639273705252572812729723320812993072853029629920740936714450127735336349799008981203377445312934178056346378762412621221515040984290189738966501946069626684750679526767963637041741848254055826189441361150337137007909185139325738020965078103279233051537789744029363870547851149298908949706528693882151540976952617681029922862846910783605804779320599409205122589965610864877523531486007916751921736153340576154248698709411958468126811709109450830556704493086598894279144346910251954746602335585740140455228378385039780753820572937988463366182165300712121251746857130985515745785161828476392477598537453629524202277313858068995652211214577640686372135781256391012321295218290140903471104191013315310690711719611415793693202404049500780216612796443714701691583204559366069722948141725981300667536876867263620836192316067694755104350765163022713193845990315842372020702040315051051091111396324115610782550353832947140439966319944784612454922695772947971647216760125055656922380035055022044604661606539016258380850182359845856607840961235825697964302342105971514898819915554877387078383597372834217937950717446760450308467163997644412705507126279695540924018503262955823841033970417973161468234602548368906814916285202459364582515228145854514753478315504706290422506006747099319111073319040053386982564555336698850669646829678765930847621968588182631493682773535039162324381407340828412830137612264954884452099921732922049882445085574619646923678565394280694515775850290979030832052860841297420985424112934119381456539625443118623793065957348388379501696372569372332877078779718675309997915757739658971024182731209404187898512953878375332145340500312499798408907520418280924277508246389545260101599560897219278804295641656952708758167021138164186885236966658412537985447519201913897322905121767374467848729337820535145387175479941997457663067372144071259788957872504597251738595296149435546414746532097068094158808768015465211231295873511954692975143138234275087434122720746217634091764724794576109076024774339225016522896787933137844904166189031444471667704824552325017646776806976119377767822876958746649100634604120434825361692740342037460986302550921565725094411769644438195128913110079469547544860857734140561608646508312986112127391175735550269816825862838683531856401467546507832458734641895461976897083657447712537736267702898449206857888816291458050365319286851055965550521084312259075116405638962746372286592097643355972322068705506694501485958743895952970160241564726226389590979870929539131952244829926244733449872343152843425300881919464578322667295881587199065869229125090879819432397850273841264611154929467346120395193535411421325898762840478299519466228262362462980091842785590557278492011175080320053046437598829334263979751667835188350309439621180914340045017747792145113068359612034643404419894071558501284279606684290948884275233536237772507624154146746118372035653454551746035808457445697742403944860574676514744262339437736152770596720181781242826764767852725085358656108693072052972168629205076891330627444173526252102647854675762169647970682921881393515473238341419258945139987721914006313076661230773244612492485529276715612363832119166384147477303885870901354338966852492609789890125892863621917669864710929200887316839037827516947002605922399277043730038198984035004319695051213680114047048349502260075881651648182178246727722575464562069280454110371980271001999308691093400547670744008150519824950571230999056612431562342657623362821750466757066067683281880817738051572260870414428925325781129789261096104534559798379214898078683285007995669345212617413667526407395095961447216481970870691190694235179185155581445547954700786750536550548018509211923931923819783062466487285178884897865381930742428604095224557901225764790496601933919247270692757475181748064612008888394836291408352567809481404641409558666226708514381433535398015217488333573480654736349037508607118695514784390539154860699511607696562562700499472636794391079853273065023350628569826317580289172193308078609927485922041201053605921248309321267432329686290853003585111920272066575174415246800383638346572953967947876008114085299839130425452293936738210662370535215663750177752972708377687210258897835440485261062739059062499683246359127131255371212015427517780042800954429463551203890266801361798312473653845224736715216228602918940429052612756405437239391402271128593346546128658793056084294662049105389262676134710300379062198881238096812485504247006614096394942759510101240860855271975833764534277396508520696097253525553607786183254036912620459187177586395147880052819548740102049876932099149705413704836498591291721102638326632951898090378219545827927639308285589521769021004320245322689313386694578561153313365763397195049059573523362489435490593017515495566204907687697022525869891712847326499572946860177512378166525068747205938981197117932551856151770161343924714512350046361951838802408186461745725837693742962743081803537456674223091625084420284839063136449946694561041508095868650264631377186591772224837049427475026887993496176475180289170868557097119864279572255333800401005657004210487223601555368321253169966408179628885868577978643079212454394217455657144635623952729095723146206964945921974665174425887252891759848200892321954841600261094293815771813036698576701967487429220171323121839603855621950439813392353618121930110593721336932962116058542052093950481999607095968698143064881806061635338700017669745037183223538439304303011558333891983353945876451392354690236629047687413195757107990585410362691657979644127706911339590690994539535194616695363920768923597555744380516010881198592990741227654254581363855575853338681758828074714101818096421659514732430132485337089867955894579899928981264557510937829335400121051971778021707625490516370050788478486043202148757147820106221306267754501933829803294110283338706468027673375821128338952556707227655810314689188992146383109261065666520516920227754614637344474544070889315056626159525991437121462282442451049614117459755247127610094598481669332636021564846154373381384015662535593802913364589832113787741964171462356690260985377157150815562118526497390749137259719214683542105182665902457977203948683449725417824888837609726724629349978327742429773282372387413957097001716682462254380347168739866703966978735452866680572913889542740149803822732488329484987814025257996135387331907979411790442561957353618436685501211506424455270233527191852105520285149529153139434327616150486718081255392641772887309074452681702495519333754148824883407758303208798745960102148225102386311249258193176782029710675420425192711371047865333293821377241173259180872453947132231413951732434068655431839137283979032638647536432304538343805596446764743995549587310604448134128876082034150509259227114103965298624949547783622305778486570157413260350388565762076408555645207941701396205933539891426216803505271948117914669357918752834994408284249615406357003419569685980751448004454134359337137949397111717758287923224362521644743395077425061770704368840924621160800387679486025279222367068629567052566865134925300597492506771217422500525557948068299689953730212897431966617930561187335154048757691522675730528026723267318732894790848300238692356923078628075812918461207967993368238034082106718464020147548753915763606924040454357415381706409538695252369901747817122273701066489792097525075158612116027418751273361169634991839778697936068394866770700148020293186850633744989846279347958009608122903324858017107817340455376210883241248164533370738578324777533727408950347216371794751324960703820379616313852061241649767818056626564661002679179577835584629585071256667570842036193194470179737469148605338360696543614618389328586084531921963308716580592243332018531516707966874536694988906583793369808394431751644389408300223287437112928958193883999888158337922776439099508809071431662857865703376425400348640327821390622895477021644999845847536047481002191444092447714216426472865412037796990083475126106442428751713664976305130597076284250095616270200876350930308948759044919624193808315896052725419220169183489230908930156494504030203674628852260773237154760290804322328885096345712990894407771400849504418799653079253270815556143419790151732297892281690188299263256104668770250775513264784255037298508587528773759365945794626552505189311910705396967685483367333437267536797541870398952098074513386885964445779158221386933143960757099966663529564791782891383734351837433846112084766029884057358001820113475576689205845476740953525842222241071750599345719067215554600230420604186184528769039153508458784865376082430558293285588101392995770041752264816994686884582543683039260362288694247450386533187331986736765989270054695863292699955429906463074717952473063005930703545162312386943110708149436283594869185369518952788983398933770111609158810909115626485162808467845382692266766174032308513533590122202573979846763928296740383369105805319630602555382020299794707271079532502225103576594114818611881352428021492138176461043145614058864167125243667373202248769143533825560076197543882038912432799738988105310476289312823310966593522742084683524768155144381223227043692575619663725300936025686808305469614113819995300468498174622786229881197721848319434321417268291199440962417250881214784539117975723584043322301678597287810412922848633692510838986857495912884848070746529656172181602127270569920240757843371052653579275661806803100182353864634310703158358281447664514778935773644270244197962965658972852771723421718752428917704694314087287181269824851049986554270705479983619479018379308015670466836191414101888911537521311323570409286095894039770966979519425217900757043477781276036896360109784391568824637693768440185973873172357077535758620921293017685139647694721531783708834787513450063144951210268733508574385751205520744357792068561974656086278225120833767418362781806245670719192640637642846891151344816528456108083286831565900628619173434428992983592540528232310820946303399787332779265013698492173542212617566486545997719240355554904207704855971588975813123237057260372537067945049452415049896864734213844320756568593396064658434027651912999671191036380607374242087857956176952750426318197199595752103843112857488140710051126409645648776169090111405261190749676593792732166311258218465737932856981864721466630993421870502150489675305200345149526250091422197341615157191266609298631700250804224348454507197579400001641207777183200818893075958551394180771734833316803551276102039415163206156772949618023521742885502847435915835845898157374000641380048985288339791968417302969111969183953942370293488746213488815623342006249529220765254343912296384686616385114764001035477243070694774021076632921829296534450976779867832668939586487148872206575322173680472293699137534671114558147524253474191893085910095999335665407858553606627505720543749649106713935662862665309834831116857138791852388446500640256553023737617623120414234372169503765700967459052489461640780956189233477574247366476853304525456044028032097041350796922338003384725338538968761139162722349580912876446844327917055889034112375165004361165723196019535177591139285941599810386825997818031724541124430513736377271526902035575455227529076907622141308742070148208651988836687156741474204778351716742091475140369733951609882877576594051830815537930750740538883313992900689199895844549915234174364431163971349139945443525906341170313833104457480146817611256275737270549414056369857702068146853273301735897997387518438654995484657883456330161225515850906192747051366007657558049389072306890156114530372291020134323846752523661301796631556532420142026640806278535541136491924806720138971286928473148909838062182550160427643318774885132077610261277351854283449678172377574458899364351594503328737826489259238725276710269479922647303412854372514953809810744679944244147549788645248253122258224644035825218632981616962783627836983487065324101606403609927153735258644558348425053390362339496923973002903555037698541813614523472805159550194786340793383056933051873887839980212873240228393277495503662101859733233812866780601553033970145253508385880243523623773033819609282456526557315205573329797574997474811163802061959353534081583730886691571446691073851000459089960941616984984229150310951579148635952653274855707933551148625278752822392252153333884930129558487685542199843492061836543652241110527878725742755731091903437205370855175281202805183512127355296901242829102250425098350837404239563486883456852232035096292590052543015128323897697421934821343760916582271215973361287066626312547164895838533274058596288477669260428825463589994607632997766284349269068756802374036579663813329662676169482242756590512961549020909088718268654094457431959313239580530675444951386324585451240455139919905003297569727521904632637057128989858124191092880524819534837153927531784220619163264872032727635097273401857688012081118366423161311019416834413814395313841497603236779938845958886201944738177323712225963849416131623575255444295056434682972510822422050732395215518735535919967945924338355620811198390866025130562932044556984790296720364752965175938316359517307053986280589090237434810859107620234405737823777006145909814446388984420641148243918956534509852999919157532704824531968494037873781808512771126673496145662692699246125527037636291381589015948891439237476971054204131238336836955169525986746084206349274714671911880393944926138828495647284784606068860817456199829983475481717648225718405527702975912257957047006762091772826812517907738872498596595744631937353664739943307297569423882129036134533134982861664717758889088389139643127645854163709881023292979311393264703360729918210403683788656440584517967444713968893537540760589761953777349651939964423167279850535453716482880654420085587883655848502142970437311412414177321275040682800446854110807030923973807964387902910886737917703228762026028153107799542576605145348063212032154999822208728531187321727255372226392193694362797987378018699138469364051021600034121511192199817941885444426281701074151767181513735024316342217602046733286526702919991897822785649054941622297930542568825846691274560954142690320806688342068046203288895696754110104221414520892393967324774469200871894261164954632808480039321910212646851861965234078903102945047447246788945707884804112907888826292844441458154004908881164012338282827094498662062204349695345218452059187940097997109465268016917190552052437241298580425630889618870852581537041870789233094163246995607131196811835968618305977462548742459511590548157591931076057460648848740774014705431946974382024443731256581778017574610893012639102838663520171425122650770755242055830142885424770116340162194278704677833030810667510143425996379223042342507785400628063470008624195013698789815986182077179651314554134842874406342034147955791190210802027132913415611139061540093712446589409106894504172537879367571700871390485790322401190288700824838677914305544103445632240145539914695646915435515932196960035393780903558279493702587053509601828889955438636150579599326650033853703746165970220178916920908131103969934620440473963607445856739362863856349308412736002365913337868847253077793770741998824325866657517935942662942144624943292383519945392066346086114563064261819134387643234741839881833179033472674383441699599702721938699809823167013292015937892543962903006522482204473569791818628882294169934211969461139324300812125135677756056527268172900030055810475665344526256654373292852595612384812084381368755775872542342156307405537850227522200642502166312315213638304112596980104675566912800918325131421402324262823784475833611958043075837916378054965718286582436172725287910342407945878723942193594759827984754309590338103389822133923553195763092557652999619983440803291846402775692529053604189781365467635935413215246272414952850948070602311939589461299735592251057339809360377452434559525057432682573888649824924199473307081470087835114507320218794409099490091015588524611091992799012825149363768622535128245948113405921581589860397941406739476116518468065660859077905482311086819355720948245066667445569488968437895978302866854809094050466799765639101977503480242308969289421865712608686140954995822265685003523762221354317190328694607157903357551060412968236184595536298454522120942640803715686000080791131317791046036527022789629176233727615657667203582447219282660828869762492579503099560096721811569433760231271202170870735594553929772608515811770813582907359109784804826281286261730982050440488050747003823829311016843044507691387859822099976102050129595884233614794627713632125703265257270593483513539108406658459136408197569772828575850949887727799971152077586992947717638416097369035061335730674016933910691943216808634891716620517623841725985714750801875871462507017715453148233455478210185664410681238942141638471317789822446303539818593692492035559759483898127575578698215159206706262915962673211181315555483548994295384004588202826663972372494632217697196274079486364729838195106848367523455161758951254645553824711885740250752815546863825637500176670103551390757201576187109032812509565024584498567786171082318494599361075487355848018899486509949578062506680208193948087649809566919254778696926204822431665663645576120174635643312813284947427336906158976235620567615001935830703236108642147234041128274186122707646471767685113730268783970226912539144141782780762582644285223258605244426230329804465466127373328212743036223224892421532620463021715572836757678497481688253415586382370749221278969194614532593631935725757842111783172568601455769164982569265629777660198011028125428484633599826397740871155947732644536845604983725333213440795510334442670984766594524449361026096036282297681561779484017757378531792518674456247105202430356280663853124594491931603196329412505626055828149358496834514601374753146008618575667424747194444194390574188521054192297024809596446068761477118563550365747347033867843964619179795719739394954981335965048296069665235841650919882230245187161771631846813320533909640693387699112221662652035971554080641447220596214252944371701484876333487748231843860378616909899766624917642849069863237128043804882128228737195694643021936908724002608809599134785051071753869187212668368872230310979305441523113806068643339855151623506745144337264158724960854408805923602823668092468184766596113028112690119999380875316039679535846196929107001685573204926159411053634669607873767938188544821680490245576776299384358558953092512404589231997915327896555247205765516552487926016992251478446234022629111023898863628273722042260541748052212177158964193852361421866863677287477836540263439423334673283219728654948296633603011576043330385786920197792706186689322862837183980005021723758731117639482451980801757185817837371073086464804135314466308236556559951659072890695658098972848650261562394628481266239290841948116536147018832229290775067440291304506427874119886884221819004922355036907710923932623750667415182416079083236496787041347566512221047808766243379001901253311060930384248166474162502376570701804552012306779035284182469254754679265049121125477105364446832200462345137970678486123846451340098549847652087378392268459322865821111215586327607090987143963259995353549612926630040300845629834912530190255237891664277809223748579670843893259463036734342539555868353951750357684827725599434418585930243851424303484934578812654598277206841227259911068606806324585138992197883047653737835622160132567525763851729068124111527076825750710500234048718680681056623625365290525317568766357782996099515018738832584389489020823431862527976421542236913347441051829102109418808412301265044138827833717262411058061051889392364442166317882675376464204949123495068801103158360289377199642299257389868491096556689316900046064619292719920614375229091200583507427728819307091699589711697636760364980433178056741636497081669089689263433959822893833483471346623833028889314047374612633487480081896523167182228294461720861829748814635654624245314949835937759836538348400252188111326788216544794892972724510177161885827956828825000427686757212194304417439972656288559966519854513023529021214483711663731301069400951356566504560085186732694185131046877531891947756593484621565597540811016245549170045995183566644599072312541864217422794327460405927344155704934595740602489152793547516502567296498248466095070510815555597885653573690871735810311219251352925376513821569356901676387781276144406968074763227870788083993438771590477902354149990049451505622551586155530150125049760478467971919494277601786422014503952494067230622982593328916387585731105666794745184219271664694085237266824881570076167429542384742937076950484240931408506116445819519356112856551989343257151544615240292049147007334386139542856800721633521112378981761767343089673124285924468087483244045513022514284315664089066171103476961224485766625871063832684828522618760550762743592272406685015356933575185887049009059267539045172490257292891260461890517083644486204992051482323203507294411866004075068550566661094056286071175746166553528699160118615065723016331210428440942621866596211768143235742801470454237794907528833809094697120926434330997623303080621301937158063838908923732446711108275882677910144468531495053416408487326455308812870480349061230902011507248621683574303859233079552927007397659300538056841302320240153265456559757171360288273597344442056472990085804011904536745680882765227701576020972277837882354907007041073603627219130664430463440976479304236957035686472894552435820654970342712354649136577120284315990568529911872834555056094190783591438020165215130348315519699680527094879724123676369210844758318835251189568664732994482435173071574064616088804627898971794788159939828577952035296417370950233158144784527783614062346800103061813215268477037107586994247317492740724604114713011181211492921935180975519391011447971317726145743208193776797357762571821936952611702918858407473140306335663401839628820315249494911518977784975585406855691382236362211177707490242451419978951442581981733596929502976746734022312339300775545666277821270679362302108429425739395530704290216173609833645434427934892310012527849276894896380796164810057163507081021394403847687316240999992412961691376575301155637019777098093110627595879593834241834943040557498600342898075316518809152429823747918529666598602777347244376904454228328062841666754578147952123157876716782218640847895830484467736786512009452449023214814279502566243348756146167623574604928240511765978970365481244050502097441173891556939034901549264059806729443964718201880354736226501244879799930469396915716555079868679659285296725925260238015564941957763347897302775885936385375388438870074567165775117897353473002032552696532077480127754362139264865938701942260416137717442026739115656128557863424327930492075931477884108954251307570469743061918465062599133131664480467264959628399109611144192502344734728424172406952183859375485634544793115267163921578683225912775574275134512268327636668644158521357874476841940564960599970811351898575353155644575597338064879063501189103245623787434671134159799357348834499110590749062707498733025116274397317626749404523916113655860173988886390692804357338609972873567518801044700039041361416710806945889391661569981022635502832722222528973276162324753367613513219576273852600414565462259990852993210892762818286455784146180097485081719591335809743123517553153919831726249173450238683732026353266456846590885036455377087218009391944652340153287450185113107927289080391978198957147326156535969395075019353382273738502827566342382588869718683581935009583523806530895834274279723267954180155111477776531400249306017379294828174558259008888419407986067030472577003711902073723314118927760395482188878728808317643389231289641396512602698521729194465392633345469101578095296845442493031084912735109810428742583305989452612669251115347442258321378890446766077841904488770196414695583267813032011562663517903758797716312806478840913997941733530914269721630749025840014008850335555293504102399767769935066508448816290735534916333812975539662588841332158445877294950842304662212242002321106504722383352699131583264561264190284677711741318628792088743034261325465745793361846956657701748412361821335605284414928694541220672635355081175104975899454109459357292002321095093891269327275519305555543073797486182751249579756406918200889823789381246787693831962782393900915007626953990056796397978413480708493628777875819002302679977935184370722106349079673550961141191928083307518736502052023912959769769928055370165826023936155932503108253148927800148414739845901058269757093154936631922149740836495136206889018262881151139297926673828463557901054840418311273296777709993730633934458602617826409803262569706011459362788385194551071368867932672955146097911934125950735922518651635851642085299333691524738474228596978694453231059774057161933277225949357120716294713475370429948356840807035004466264624340751230639564677476520588046464807698489399335119019070224645599609861847833747630071413694730835249979537232610652383359119847126270187536852345622592303738016741835288064107000105993752631579751216911698973632706613921860559488965768796178393823858017574916257077892423252883108063411217535586851447023138027021008737254459558334720602321965299442153532583634289716929463814072086649463318179545273649739914298708899472408970828943778728444786097854605118109799686814695608950400719598629028350107973875321586898096062562365743525252415154413045249878591986930667257312531336793773772069574044531380225357400403355430404664753444892351812687371444443464772086430592237517307098051133553394966429487615985089824512880511622826626359715464684999371992308864314600431643443534660911590997686894294064702830067433857682494778726829692914419805464819168111265292226942269556491247351728397691516880749683478466275403573021219041528024321723773007346175388633572761758460556287992552617276201473918508115255463343767109458989378211807310750418787992074938003941926749631458549317240539276004692409425685294574523672137652804176268606368347482011427890741941743012362416022869818494439671529484826864407065477115116491310386082914507280762658958548230186173957969996958486786271273192271525540983157252487044426180814523286536928425855046187663937109488207599849187462497072482156693838229351683114391351642885703689344580790336902049458683345324582316816495452371063992131991346578549754324273625912444296987074146044161771384139307733975315686740639002940326763984122638238531895567581973729719841569763555106204791296087204883757134457671811743632860244372174301027299362848063439940307621282323339136152260564699258977910596731340633920878587793462829702616243505670470581059494538753825491982043108587529386289019999138951699207373585936369480537090472449129823149652603602177179048983509300113314754761833751167183397227714367704346119082666998596293116188154309532032666739117565665974245886390756963540092768497630675320178229729156097364056807880001290839838737923959018607816310301017619387098882905863280818103735937196281779013395845875294843081283208619814466894383505857652216220626527157397497160751107422074266490786301201317080321559073601049281649464490442999032382891399092646028005015678963105390560163704812688612353079346186878822891625059000350725077293717783165168085101543050913314688873279311707188997744893826401053116280668728311464477521691868239803384236821586661436246579813201392626007305617745914140408372667986000559112456888228816245729121816063436378626594859636256580435964886267114015803298305026205224344146333332659733795867440990689313770791942965424853655010823488008214376809607223071675631986681872784749985815048447604083720060158600551876411414663785203331293981699212244887905501375665105954010313368703173813251717675813837291931313401904167494805327906203914760561512904277961652954733174697948858556773164466522907321271393475326681629270364636382961182751796163037743109365609597127229112989207835552816886900418502430472761039447623645835957256449408658996486630640558422909661264046240946109225144516304679731798639219580218141073527735366165584849033755971752323327389911146594606553472932795391612239909852680634848226534004777743969259409549716170623937077772549687015181661682245626502987135393040566704614029453849971884091574891875532985921450829057586798142850863551621466178646413879667307319333522553177431215308023130091094501472866549141709070199831644330338185603806939750042379236832742107806868945567038834161206348109573261453599462389432806210783743739737666452879712989591106046858390521613928408677225120491459412930259731456966670962401319242942761773320985394721323434278996006843458977994995615615367217170745240303691559970097855273213313456445562346265436121556554921416919594085600860719600262147632278216590080641489769850962334021455919799017050535085400412524742370440247096153752875442906981208920372861489865783704420856280704514430398713463781734445995818201022068633296351929956447035936705537599583088156009995744921292193712008654508633945088145135785365386758529222715719119756575620258448933112007383657868277737843582048336812012130976474220847806767623290753743902769464092296344839645149379846454364296872482510029305461767417178900377770711636310411346156307270306253710157890942342419390447664620460592431233623676462314039982944380793744351951623480811157703786660053042550063992771915832314338873135278120987270837451884329256799882034845689950067257841241174827285167530753999568116518723470440115051465208721376868556840106786082749764303224843650637034102475669656309574850780863433738911822409094377840822805540009950338479374614428901202819596591801148562707907464496708149647834494871104137549091944474044237226184943065945794885484193110751303221889220892709523228613703775810099662152810764113043657488983530173238412883141397955305967979070585024767815957489117866878447837975878718541609683514984266341065538036025076806178524975160005973151499816496019463737925477778001425836502482714121975434544332389040225839075626773719690431279703443954426782590941748989114927868596649977157976638436093933182896944590064035431746818556191464031726171729065944504759181848235161110422747760926171611007647835066859850638658751148309770859142199441417981167924017800104906751160434014764430974862083792066482745047409502528362160583663496056873640507573373764338758303361062899622875102678192171999220458930666923272642718680495044273294993766329661140975810145997372239578455640723764324066620865710658134972103475949660876894968631142000767608906155903015623571824258144712803576986866419246224924754120823034286534301052826988447334747528768648119094444009859240166930358934135493448550097572751206721194573757976321556333499198010603368304088948939568355517105204446097430456782158947019263257592946139962211889514976837289840840198558376382287642463530987944543214272564126128331090790408525972431028310728317775603917380673662629697467259732045404272394248920794077101649202545017917829413658053143359415480343184111170499813897375029658002835286128335090254832372171058094602975101216621321027086454994382116184561919458710791745378244287837488447205164562830041048431030291480458720142252007718666098941070872230736221827954389246001880919011041272456868904977678582454383107487781956969351922679138156364139328300971045037929330961135813723102107942300524085180577540054832145944512226707458837752307907532405473911424872665408765179169605783480612149504151079197619334812192645008587209601997252963029410890755927189943584174812757463616712769642188486823632421346932492794136656406962915012615767175296066552973650079446176425477847319863046091030107967373097524354719986480814998757397158032000569407241063146314498630696054739148042660183203406380430771130203218242610561011914004649545171180130325099662611465053790549029090797785978192537391698261517124814037282352627040110912980044491939845016391530260198208015279927806495122434388922265521216123677223739705747859772166379878580185335841477395385006371148939525426636447733003510022390258448053371928410668667147732873276362484163827573154895077059136089256016134183957627094134588870967208684904508412490040786351185490695280179387819583124337318370300168655198066995480078467540444948937348397956816459390290609660283376528578440630995519818658276403999122846054120512222453037992842551816549603952223252895777597053218600494769515250094486828763985543223075175038999991012856945039915643668114651762692475427466515635230135361431014669499921047805237979789220707841949080969252182765414635240557647152995749704405796445374893192851959989910512855979165661586517577528024762754337395330644150868499218632574479413999802392785058629195874395547645204778369998440618441336184290706344665417847212125275992354053431071741916869905029885621228981909718703156627553790172037063176269349420478489852633241344791590141972454120179796001294793847626803558966924476378762314130399134000184787959672934448888459544043567061235409508575337755679747831781304705911956423846682675788884763041869860317099894793875773506485251841849066994624529680462552595749672156086254036250323051902545768584990446194911817768780489162802257294474819943726593963620480945962971828645461410565703703669574729750357265773422041788792194578924737721697174907932384254065280957814295390644114978937666067693614957389496970152110644780165047292529722594819373027020902322804597508660615532770523264169018717953447128487493181014878827707046511977623046643907263645574043031651232526755487243269474688415707438637224260181542801531752121595011372015649356814095965927543606099387096357493562235292537781197383918058206376361908162452661565870962491097275812471005787578921591093768783048400641619287017435757213948237205339754900892628974590328387924105330008106604895218243963790122890586148010332938706699369306763235367135008948071009393911538347201339831441156430815351294269252126450241816549878133663729599392329147602779679321221311257402948718833497494832755729664981086313663880755236030128547640036984903419561091969495801513633757827310514062849688415057588748445740429150593427965575578960206825544578419106759137812333012573455854710716649172124710523000276048085878229522266528028682445133547394370199229346856435215101265121237044264531146537427868137130502877241851648885334149089106929287372232356279844987720749559936492780640028154883586343639627884348517413101346529618540603281394614860829965003131033085629253167360721540554621423097850987052912903813769925817835524547313963368307851796009708645479115204068111995972129172647854191654015760423982003039024249500431174446687112121079885205799364393265159100350787819316025664074414569934194298199149701230053491033248404685275168282897608934359147201085880010370618451013935268630369896646812743213018143950708614113861051314407606910767205968938786316140330421192845166896062733832754122134664776454353380740186769330132639928637978059643278386762487393255585451372163534799477711747642957091490136366414147950726046923176058060872771934843769133495937403498186166221997641302669083755101195225564109977532856153056632231235989571913031328079148250921043826221527461035596302921047261970324687833909363376232373231827077792804040862065008641941522687957840450929423625120378875919532056072015443801263563841103432679433836420415543351935484320572040252967860254425607742098560446119909745722342155458778708967837157248129569337614212512770914881993196224262304849169439973805341341134967076180512320568974219491332792198080664382061913413727321096324626926614480151434830073289779222532495419118992488481339465066537153954524717324539457785756899517879874435510166654856600939998928367007870067173065331868505381722473273836563145080076796244576641487213520150292506259387870608613507640549951451016347181311949974968510403433907655175536534858834068747123517535838450043528120415778187522905395185737148894588470503282783189400751614401864368763594303890631522602008115108308022619968239719053267696184249879303385100127409032584372421278077018267107471982573768019573770506172917100347953592982512406660928080578705051064332551080338261893827405233943937383519363098433981017982447782340288876115471143504020389756540572127258623322087742510782131280415020181061199153873439316217977241155145544016194743752343190859818848363997473635271342450341327817200023413984789050706632362847860667358546527673893936788675879897115649322480654592921437058662894673824296396312007673223610802462279189762731409349683663756568343704642445122961771757767321062333089615749349259866070470915499533293436083609283624666989973039133476575215151943006882452117449482859095017775188723841853070053273753097516597526443824250763110682503500217887770736683790882397602047253613933628556747259168371170052274917238912150242217014222749197656438383186698449474588755870141553100236382957071630366459103471409423109336620680110688344775735601127256321920303663754547736341855655766389279959657322883652278675528950144665052900366049626420439541468912732044470476980853735104971121400815609766903483546238991069185865223609183552612112279443135940454699693491848424487905408828235605403843801815539883270812451733589482705323830565697940873151994245878918393374725090693952967066258428834045678012698866313552080087415611019092968423700162322388992810313041557214099649678441630054236053724707202810921724540296196484453302009588329511569856388102519254644592320660728122216464773590938614494819661012862896035107157139934764391042219493857753827210476362829560744853337192274843734054364461540604715626579845468930081741034570742899718199122299849896393652011284206225221324361360206318174394380966720464933509044428262919410121693879711543230037600373337618410473078503988694387152832704163672296284708474037726184140448434395275053560212475125967377283444575276394214192801703085001490956823013998752359274460896413555954639781361275797156046555078409763276746879062916552305836949065282174265410257797456452130435031541297359625412684857142023006074961777236664944140766316207220295374857080931863897846864627117324070281106547944885741701878874689067310437566321933007360379139315804775004477424694903847845247112969096478455560343256201228092685048429311409376319056839902919343897781118436082321569784154717363898331407095169356238783373184998968500181871522204356165235580100076267016713218158598618537604907390649822571660651719902838550924300416300481322576626406733705490265266379751859605709741157732953100494569878358137425229908402808512731949028648424840052922835919199928835738518525205257701738927777686147594898038264142802405482536189946055758327232209298889026077908031562814084571969558880058961999327256435931030215366793731989484423030968770445894800542464309810405256451344574685112328067946917496291687054001737621556433801028562711883655222764291413633438793259747420739466917103145084560216769338651253521908653694277624587769786346459780040759575125887250441329360574048772966867902900224016816527957829432839520993951773701603821529195182863392981699397993968460505593043049141964136051776894071705717552123950780679487153369151732393602855383774994641019623571856751354806397156973229635214755368172013945625799345234425192696158471199102231461766950182877684769771784649325734727630197099304939694363651655989585288118463432874329722978689733699457812014995073864882172628245037816661407842213124795547832134693510015658506414517238582073550682083612379978869113421862268013822538040412911666901519583393566958935069136423468448845088094455407924660958211624861063675699741811586057174259497624255419251341495002611992650125921578685146734222892613245686054370144715221413312484382423949126886071465874255377172762262505501560865258659983974106577249784067453783915166584341572686956811878356806801235302782102584188274560954427692016615745370570757384527809887836966173240224093247724260017887837180224435138938068147566566571649611641535303370729077541549206457394243062331548263475976641994946201669788727533389089965903509333151206009762620678221891540486761318592619626466122652377583301410300562208346498043603875116796062907766766584861099293004319548776500003565689345048516590049094954832340729324340881696045744514609515081111855934625146212030331173015452995874986986806790316851230461618601009682229999493623021609427356701427644076812174400376275014238169991882345070299975932146869237402097210290428638652780065509945225600837987301290532445470255167861694872360290256024506359533667986490509600806792200791755334440138470512520296772309098524962814037745039925620649719282270037688521110826134166116461269439131646749836188724809328153182025885110349008266199780384714254386623233703434369707397536606366943323960977466401698423634321804467777369568981328879341447663776476003739248013322268438268774366262551076804266554123672262546946807960444480575017349807570282063487550967637385168450063913973774279814382696532125749089106213143125869220901507379635838110366220561300915600975218053083977403396729067618300918879837150456299866116402244296521534102646123573667374607850850976415596862648326707613950058059608109699083485223282177535737293615812864534733883485883344012120523858442543417786556422670616350789600171714853106733577529003538796894034738092648206656394786915872335626974111941880623853204490919798322639199503779005439921758065219105325936363634484658166646908123515369974096006547375223693521721470468263821051743170402848982353962731913125879753474631347389116749156876980863411477331906698192770850421584136817474660581269057636676630265455026248997875496755140422027158269605997702154769363955849229533462721364494250735954541785958334444364100267746850295630070360997946253421599630296142163442539176234438606895379378535004660172045150713810423350168695725206017457702539157338894928125203558072252875405274345516502624299580580308326426159657837018972961132738898893098935785421501318116225656694903393812261834762416955894118967455801439316421159974336335763004510092011356424930279121236901629375892263107781080077315984169392031029884072063923569867666128682393051170118545012280623787784787405989454112071859400693961580971519739013334749563408483043642944386192734330963817110662106174951313332420483902737529518450639296290207202957456936706970688361134910438324775960866849831818056060374100866756301961951437213362516633112610019748183999934600726141971838543142608265525301057322734354801965458354054511888063109336210281572162174557572549570212533634087277023587286350905096334797482687646285555207764910188717856462889790062883264462062751643439423431667359252695455258496344903830468740186665618903135042334315140575315202331806813747579778361709548540872734934690774704861756000108499651952023395192676979353968114030498221517181058883757291820863829328692944264662680184016112282910641341710049808844216466211466871484329024523987303765562287832807647475377288239589036495447242356588954975796885134484935869705251760810880852159070444212836477125485207728298954481702230163307929177624327692816861653251734633212443505165106670097532228234172727119972561594072894152494846295030718312689388090181890260230783692095143832282090694867210881502912874899723467712612028744159515572840048186074965145450473719850595197342504974254110719336510974274392470464489099625544197588032572372677893329838158619555681366421497954851817416603904107737084050565858814368294344113025514755988241740291842520875536847251633716601308313303238651213235423320988343492857300538322835300352339751054830952480261087743934333974844844977318332106255742833161131548806997119025060924975111857433903019475101949267892593717996324681410792041504715481663331786437522694509800861299586874197020392271092290345406459507965252646656926788941407764864768585945006042914082029893965084247682817381197369880966713808052890379686434505246293573702662914116749580651416398382113197997765285925719612271675233253238537190401201317772540970337020811169237536784748683619174605055591574394855099064359954073607479324960229340662310751310168607020963773092566902264966452932935912651997713600013356105788334651908987816081291993701109438084688218778267739132626819429277583773129965546427915506028964700303323326187439377697912571093710008021949258671390268185760966575985337619535834694024791465674573215536009576657755999366589095209940603246879633743378123583751384171998984913850425838709724686021118080985440822164480010105491438407719824623857585138346614652274629639518197812286364310367982766158100797235974850418366446878951135431655898722232079063008806953964332927620645848461789262357402241382474320123358023404451823737741811885931339372694670674790694960649271188254067065346349724001913371669002441190048367945458395324253185178031419565155412884892412093179240440143567562366640799164958302368628505302509085163632827399357405353319115954518552453704316001434431597830316551248737804914764622909095088935683720538468976402398548746468358455200341234183090401780087377667608011192406955929012150007804763708129703130238819873489471691924189150856301026261668144212434719253122574773863774592938803750619809941610054001112121946977733160201491251832883084824348138360390819444584370453049508854037659053427542316579818574514598743844804629385603552468616733487331874417308821370421985705656251039483929106730870705460604268664435612945802383907128773567515147141370745073946745938081007037304267885634930284544978441585553905617324787627090573536745204474966085847540706701089247565774436712427991327626629314552053103134504746582467242638783757179550199514635627167841434430167771462632166813558197114419086986412848945886806608995265030311285146595408893540868004509979340240239651598729187634381888247853770265270574212410924845654101461048910176318998396295430733661838312380848208994793318828259739862642626272162082993855905981540496800816783396637544042796585289094640610775241786544733410968176355045968112663607293409307333092255338698098565382164598278574134352991375825925016984295391187945185935691563765607869539936739175802734937128515730345497101970822023108220377372437703989150108533925990256800937810942961465502989274966103686929272745820789268688450095399117227086213861064666905141152256922718431908437343003120451501608131233635310842555892991152679806803283355271064057249977070928890344958642114318055657082408019173165013059168064531421861479922929910629161583949393176554739663376519703656875719051385018502707896030465842738501870991881551724219812958781042944136916769414450510921844602353975281041920851840830463604745588980098378321603037483833960738031489132183882362236138966851282979099015667546197758070708471961689148288920491696133927755198881600142158712929065933836613416190484049008323653298385193834458515611937551168610344250186204138998948449765038186690548588328766836474108770170127611993125325286568116289665708099515007182972389718199904637215232857284030172351362978988269812172050194668374661121752019290726204474071833114879024593603957818524044791002303793413585191226965359017357602787430797731026712738079197529513570393822642947721375981305837280755217449348797961808797016471300128429397238654676348256849179600729081167496726698515711761221535527484492473195077400546975192415519724047538659632564731315701312892669838304913175848972167857209459268242325511203379303855629611004753469364365908635116965494188800016423379427689812870227961566467199581666357549754526134747914742997308884220217215466551251755591834991633807405046054373617028305710603040310032744526220303456353006482291316775378040282966333148312466021717288694955312912359013738640919960825238147859305766598980773792898947908024288494238312488333888076334017848893410900937831382025172953565334739160719459280783455131342729347137486742659070515237882756452832837920781867788290583881997873534552022850211415140926085686852726898718758883242745582360604172914524828968912449360797147729631325374470919466732309998104119343371301998320390789265920998878217352948157717250951618758240999675779464390984726382123088927671592448927389224339599115484969460537371137952511717965860082238380950020631923604936905165631211752173294635824906231260947604804211648592571231866972357391369553539516444402078540821934986718103389898554556738090324089297574852678254899988332864858466894070536188447547377957648044244003538881794061914153537155518734921970008947291727261830801395208328695365516127147179575447863736481670783963580331709777667025110692306443582635910475455359148002872932039277223522294294822539420900657314639257597369591336464643151321669821602157229831028082612285425665874061243333723247985717094095352483460430115492301048595209643612164337288217916379303144676811156224832252329848137518584365397609647085774519524393912331219338391953306953061487251200964899714877527077021568788402243095287613072676930016852505884319777611195128127402689890629219680268569950951061447514033494541581769988635703397476704049962193592404704205356054822240278445624342470165589778700888439462869562403117578236262699007217642729821290870023572273155006710963758135665236520969952535616113161620550754995606946140976366221042231688753575694058902799418145538412828172435106766771334497136928047924016429749952393673606175449413109735682740139991370186897475598596152931706103403861878178681083596237190903606164603592637370855798896372207662840996995133241219814052652578880288085996422938043707819236929196222495431778222351661617279988437723123555037231773854624252540331355709150909942321265412297294681515591146153348665727603552077611759199298877628412578641670811449340044005118157786967509936471742754737496902322506441956759726416266487720362865729279585237714467159213002822903508803340809013872220650255493585380816810684402052100360040607842349224020500743435655135218708831769401285629982157434403636422731797304738601804074096002227520499174588714614170935788785978017568795342942061567929686926735006511194935569395739127902664161426349073660122217262494277485882566071636305383130807708939471378130197534599721222738527272487353675126989676603348167297595240368138228815301375457457731698337535542082819087048724759620265374463238523495226789737106450045167049051040080831521032400205540624373452056430929866374009378444641523587739586973142454608589279155151706608721349489622640250434674274962030856161408837089272806905672487917713841746795156857802404272706051549363811917386124611313549876540858344916122473588161083504609328177795593611056059581234993949759029132606914946697540908489670642393278196719569670146584707842101517913768984075257191733250656863487079129749288701860494057729512731231975705985808476430785627413823571967775072555637998652175753918275890383519706612340291303405373726790523721934114640444124432732939504752903521133837350844243140675325237055884132149948256942756231882493095713000738941148360937607686903316686448957971359626536522932484117866438060025456816342259690941374158373881079382873040507283597875417182757547439407674599652820765278725326230875409991559428157660031670914482112820747901626633864000530712690088081197711903754729149296099336139254406670860728762572647764177200214698332205461989749429605285424043074134425699443036466081159054163974061433323680711278574737805285424345561770933016325427365792863432229657096364233734036551139266924310933112002954096146736713312100988886227984143513300967768582948273782236730407939744920677947031582415515580651901850968854571937027699596551605840758806104463994855339668937816195923320738231414119898431568305993994056362031308248728199090815642570333181103152491584018349222345958627181802081379945605481974810111114903683681037759995083112757921332652123857617210178145779724669621379749220254119465962558495256344481773364763524468855900272630576192145764512891284537074020982548816454314846533108488222985290221685731985919746568572012236341783986512866643657147516696718220065568631698106375228585386316011244919465038488974829318841803130986552327430852193966775590904112547993868319682558397051078135931459168694334623624508033443061204113023555734540648682809685011457576664149171838679145505100124761904642587966129793538095046188953823248805811379307743634795654878676344797381559344386690772455242483566341904484771441785699007363783929479775493414112817450403600503727700576753926637470967539693968047035514607308462305749017783565178364659899703545427359989186976727290583318161818572956929332448387242514190999198474867131073794918757343435774971618179359600433435106945789344950502852054240717218060950157375660015869700836991003381386125651451320042741737839209735822219350399409477306382336594152877341324738159928988068820312052391458754789847479889222725128088405981219931359030152009057279495162118871162862443855478045324961579879835421664990268936143304301707448807945598528369408455012967398934564257195086753826864641383496625008083937737416897949497827015307987235000998483470285312282570286620440388490808544344807647678407478280779928506100991177233949431968216801132225924567785973546517161006505343836692199795353256243036966128212764965125380301897274079124162855853060508741041339840367733415394356301360071342721856837317921604340186908548660106761103016430047582366767830833736735111550819692466383317124687292636854059623825700660573956256062226661846998891219145143359603669506118820657666265621488372241635507892059416379229176386357356846694017523942147670696311801540147266408180550120233256065950575091446468986594961208689017564898324943907618127901020398196676463677773034689644326541665822220678992593029923491275918884766810041658880849434427916114163018784990270842670872509760521709966453873438763956169996774485782694260361788892925926489031241365120840346954515131527389757828295671730812103229082947446843094692169261874072400989620704296272758098710518081382709528513862932650662103314347974937495398945286174982502293173332591642420328702904932058114007206663648028199273874818622102945881787132719125695141741091208333077065165524887972345578810179970385950142265373118301333553649603799062600530070757748797587109477717752766535281523279158949093190448979455527885244812499690402039300821895740331437894417771668896172716112331124688187392610323515278781564643042413337384536254097157960841411526644136995415368268200497434583069089260968140113019325935781639611698595260206864771748985597161460773962198532993928454247360648459853097183186050959456870388406271064812831296592562836217164990917530292968303208039305512968381103392647041884659092259688160957085128510212643865197895814783215456711660017195009484965043309524937200719543645633617103350452007050350739095076879218887951308642151509878105739159111556735563061204043178136021463197343790621358990099025536860278774114845282136721290125740480389333091699798070006671929598229692284208581334638381182934419802757534661416822634766601159588696976721709253865332239899596375714328026766274916302687601964242454081342234416668964317589991838753911073605737160940551657380389535444632760386734830834370745210495661252760356486534270139198527077583742207468117380329276906682084605858278049317801824661111194330221343991905926254679733694944386991495016056312238683648558969939545091644290373996022127668982199979775387734582352423938886441988233154382459289306861397728711192645914308244812560663097114571271557139629814347905503611133778575194533597601424820331492234013251906066798586199148583669936732029348376689418115113815114370660044709787864736206487685689379026453710566231104530033091556742400316200652525254330039450029300308031871321457156286009632484022557685680212265786280103576990867926918466658372548948000240817555907150689712303014235481284152078613165978066514477409141162830331241162519317543102808452204036460296581384894595862054661279567841374948170604616315950746269142374109695078614546161228420541244508221170846114785248559950521066595966733685324655071851676850091344130591190441034430107509628571741249851026633760697054351013728012891724061902574088959679072205314313878069870186124091554158130693843308937022085044044058752175218002818833832905678665592174491325904976839752122277785517952562467364601265533376002971766779456218122063418831883116721138337968965339586607073950928032805639429717668330867513861946400847932598736300723636104181391197228424489483173184950775523792115585639867505671128747110988884090509046512232355299493749204538580395172551734913101368468414971219847837855331699709953925082610920501616271110157631700287688773062804891650485508909999909302836393837263903990997606901096799734061826328679297597533918585500608763559769531314748206197545579726169328706049980807119542963653425984544978258971291184301390294000824498055414763878705455075094903063615445338357460297859376595494801323449497394680480153167497895844192014839405301777928319397879400932816064446296875363122357751013326949663465594851276890544159880375145562254971794166903422630578878824659052760955789733902021588297640451182537357273487958334362636276769177568263493903354002395687735189127471880369999337948343349852316004306937361030514557804778722162323049365938724118148884724983939834182405572647608154714864469635824366110004430104360266936815365670162705490122283253492470907614608550638993941846355434531973907824946575042931071092378645585107127222995626953041004786718901457134237555342391951408502007970460301478409394008111773402563888385584264430297867441960730662457466094880890274359371632209922273938589401923323346284754627040526209956385848604741843569736655219457705224843639741783700179358841698938452150230187932387274893578639088489857762829483113834405130296798722060454110812360496224645115475810951732673460875443579732990373658100959143557767864370742520680762952289784434680876796177726342172833318996794331653867057240774716829744863157522845325138036678509099193696008828114326972793306320016546812377517430833149377385823968531778140093137299310695613520340958626840927573334786869185603145467154573588574824273314562891691312498442506290016196484760850831357296671914541593104641530168023918027413129875588261678222804027710761165050927130889562536542078822945533110949100140768346516043830812437400291107461014331704805790443533419089043359491840346386072287988562579417905412955323035212315363300799499168194573695865267880143541920728240302189023739015712342015385177239390065221627530299096345940842018724796801617201734195014902850593671817871609744998938871874435151870444595940740399324056547211740805474127321221412269193901076820436582326062297876417086307289854000770272684588477770280118729092031173288903785095230822714757928921153639752672583929435725823947474338884123218012806678581226226915205367967393181794280779767093104786857680108929226061822616973984505675218224314712316810595259842215562508354777980837664334182220917707259045987977084113098950125469837067226928927451816042542434518710700624778463682051426414565730296184696707405280799997702602407884163850941536874663321274976217949878759915671256739036718300286750071145338407803106513041160542370608143165429604541846313293750443881705615079763209286600385088591639262968611920781202777737244219494684953075489408865285183360675693384019711194995399757837859374938932070419370695742507759007071629903066777007297098956995996785344964282185751476593256941089166540489413551081678813828130420690760197826808869842095723004323473766716683906127020852486399760721688049911099523054655873849450990471729179247865162890178295208211025454142925664277147374020235540027921504313144520508947508639633489907799051914749242162285010223250228666764637611474426005108638640919446845492576092735723713994009120985274505487542739288055000833534036535066526994900026058764847644671486389211953204020860193244226050507590524783232303727574609473703515611534872444037901539327556917394109645624328991906799637763418368568080455382685178278727746960177491064836644887218587261875788648111950961284129656866213395417127214000808898864351245310058749861917372414693525296035889206549166001517404314123762876318121783638602245491098472366503265110466397366798213069923893914569718268665879902929405241971205457215557013754024958642182893236501551479260177896385501043673868430906771049872816442191862868276202735638744874758412910531953291404711877407659346628446126463116373025228588395215172570178742321471126320411035711638289086693014317690362125992181383651341864632314384410628740548736782894041758116412968390143415583187473872754457877655259804198513188077791039177981900220244413289670519466512697928824077039219369385891608039830353298526329228543176300414751773879173246249642010676521584336990811476381163068120061158976105988552790699024889429616263001475412092342156243764388211730771770354780285435436519483595551883540106475504534667423328575389001912078241688095155591763426812359491322672748911984562887339687231126357807080167937475413683437964254824710506190034247938477526797044679884381580413935002298878837270343684306919214805184040101624801470984703114076686454335757717440176125694609691661030609495483734390290665703659707508040844129183560434323365292645422243071851649176403392667656203037038451528312971587556865153737288845050486964452565427457426284576183856330186088485197292743809371559811203333587953911384578491514262790945843039586806328518262150332805480204498304262246308610516377550174178409398452683337228041621119951257062818019302619047368998354029810328252659436103240138008746977349060527982575165431808147774645801028123596370629718888084415595092895576511717369131607467015057713688706736483324490471698778103646293927448975919682633832901175994064753121616657224606682978779772925068263551609413749760764734018820685103121515837426444739326710484645930300532344971934154076264610026305295176368855552530510896723788514865733598062252800089131005663442032827776409847071934123165262709383860395625767669988943276730463925276659282287827642849059712445212351088788762544172206220074379407954577020701140938348554502293601598401508971007014530475823987480291905381402564844492827705622842481678250988489867187153493224183062264974476095882720350193428078150532335379724696334026687396774415783617183842881657287663596308373503677384195139870679279785884399709299476573932008820761686414702542788991116218916198174214633843747111494363926840465801860201385756424107102020323500089663131549679053944731533879082961951118384246553465002370582446896797721069752021763522462184312543992161012150191420431590559464476459299387346019525003894140128323756567997672358752732854983707195528676755182348709939647680338961191822877778629825562355967301065445002199769506357561753853718639399996204520266015043480381961381049987938378170738582505884255755785899380908088739735411611606204906927757421379076886809685408838549026038243798519134365913684341548624213243207717797436336561070955499145779299613392434435723587407551137917148038432704770342699084821319849856389545744228743891544959300161642532687113181200186766450635511814256722608798831154332987105740672674606002970767486656117441527204269701785581252017781863251839105590662377050458864606610619654803350028866866084868640504334328323670839426224195846091005270352824541578470679177577184313444301169550617607127180416871375726646054828584632476244824672901151402596015609354637297487486389849767929881876241871246009522767683678224223043552568697490525335152203979115822690250431010594795738836152159126313769959608357222008262440152755160995211787041957139957561670373867461410572548191694466793727706615271951528983214901590693058064132736366818594448156806815998856374826778824489576149543678289054856518991619003971325315793035026744160874337297149069815800654091603818268687329910274404427091418659867165940256398569803997859005480407955625935398286879543392098236398290206542159277377856047006663231645552559120117869642872360662348306917165903205815342804871670924148438876112304759958883043070631364284086946001359292356022261766837791348548277409392698503233511687749280354258244463132923939687276327285798813965245185690948939158419710116967084794353817996595996346383519060979818413162252635602301326101376809093176251857977157636202370467098039911492878560547459357199543021419965413819742904488390211994201127985915852664905292541764335040547531189008589886219826611547482050581429072627433118338561776413947218535717874734183775374993096104864911840911457022880813110659357222867507344826914670843436586612328273078337274972106761641660257235369105561958881753597430395645625322899690674757594607714296851807679145185424338414798723437621914402300897931700015744763945619603324413631055252561625872379499745481964358751529692363271855956836786720325140525112195089745949182749487637732972136222194967711228339013249568896482757324503848270138526516888632311224188940990493207364248254848779796153468155068361412669590838072127415366970476875100587439896926088602389072451996323792999785867409573643962584719157894576436389870508938930557460443849085693192150380923247414382265624111845843216034544972295818644053033323949253069406890039366011378310055064275080571851433287160542810018936559343681271152209422325452047658992036357634648998299790247308403680999616459013800584764929641033804223945036596127385510188560992065325596055214060777960154085738618887496466857748937902997097472082735142019397454161723548585224346011544607113197619040746577882811676347758056841546606608867784465310971250764060647951109131434827142753163311110286013895597017750606343987012928686617587370264165700738642441016148277774392044782282133074438224381240045709393035924467937926417641879145523761737152636039920661425441412859289661427885403570150130804058329068782326079065758059664343236555381268735039758267447687242216322399487857408904170877093576591345393962020361147484376307705946346807628173104524870678581287257993782730727906620893411016981912412599355171907201836465450535188733593315769368186488688780795432907236248917635476121889224077142042138176433675951758992161037331030921973393297842070390305497518247332389699548455098067291800495471297552464522659137255589379949631592932975117104377330785255725132387759327340260529757800888124625247616885314258641323328323247379960563580393511475374893738398852707433519027086854363179855308418895065680745753021585123293988984386048770308922483603469294361962327824239451345056068069409421865353899275952985798916777767682175250862111328255683532648796313109102151052408335713925180041963267719709959481171121056367966029560366601518372213746978437076096411335794682922384038818413894981342386239434700462048335348082696667917086294226898633376675333038208516728203086948066504618096871191256691167309213357734753391945492453236757021458468648874028541943563380962721108154546167825713878974042431740370515304933042242064145631309520358373764632852295887344686186077795618713631450952259610167021941546868533583097536293884610994956167327195056277424073749499841430634002927115976255361041012126337063461414042026361237095564310902652056727152999536936730817547628713285425127831702573975987982956495791783629459134371899479227462144011493098836529120352752529528849812095166029871901483714016813980089454793484878103082110759541557564711933352562836943042541743331267477710936155344066433711293431226945151584140470792955567774134529112986834470322359005866785569753750271904231639655658419301183952911859369061089009791156387460917800301053458385655809620829049811852372498924892176980648702711297071223112824384736625923560525212136729236567478836098889082876656788936843230512028142318867911811797354397820885456069570501492603784259143950697413550958529489442945719726293743784364378422033725635478034187296797708113912650849942945522403372486761766580199810013046726551785442028986836665826475423590812815533328387113374001077956560976692264624642455107362817477030891937887341572920121134327130642745492184932923590249075891115259254560805865552255399085031446166496421233298791354049410418542520975414938391339648814996301223404860089527634498633410249709242188323917420296250242754446020795387163074351342993733562947845647027861291587314770796554452008202599531662898348085969335012731590802979091511797769141892013317091129844757151025166606443576238687712672779210878485398273175904870371672566748092869290154203174096654111813484114967387960398333031440680502519089569113332275539002697124111097409121159281362085240422141418001368747280940109327686850466622535537373893326457327657809062291666458128378780015487103677204181902754229959707116360087580061216066281710687465366175484443874220208858863802810908898235318087877081592723126617024627574167589594765577551126591471338342362597083170646809380103866651337839076638816991823116705052724628690380454330705513964251800670164410024850078992090423360922471662563350745861388842718884521186432193473550754007257732910966617012815549869069938991813599461332272016586308271710425375306775226162407891777527402163437300901307875408424369933741675783848986103254269420574691202428685211214258120505123091056741069919664814492364615320246440620241289107256346333397235061925761123504466762955884550882514210714680644862307640795119178779359017752114006804594183064627530583029586597452863949000059340112159144121599833353583421977203307029299298739856205418737432531363554122513862570997898781369976607077821543620001339059785988250064724880288352598009553733193004947733581539085150667442236265704026989050856229913712007118887644091706847582447507672065010909440375820960021414840666562238366007671104281909619824817322054392570347970732641772115640353034923302047878698623972476624049316871414454046109390336388100526931086034881323112966906633168558511559757544115096426126928458802198225367486348316721232162594995388154207834990757805644783159186490266993174911991023961997000028930189400785298202591116835284776050547378196742053048630218646164292035519862300479846181779357116230414454417382470959052046244822547495269830249252799366941580983160173463297986108166811861517284885409995774322128584172348702953879250720729229827415022646376887552995086515965254329488823327223189273413632241594755624286230681078847136438397684845368836134970536875276548618530387859540904090046470292452381574084602793023072249419454626469978932097824345251472308262422884944924868003327409475820312264310300628745162369549957399206181599831325235223655644804400379440023298918986602651845870973178577835219875517368104934272492388766206112263083517068650033800514016271449235985153300910769846015014924627303714488203648837483545616666688036189632447279613135430297185973693887122930744926941859419475781033030410848522521454180771637703030147233275449202156712904545541461565002291214080397113914565783435687849125455154416775316595783720116321787122147941150330758023519575317675418893774346412951013317775628643911959213876067769346049289551004441523196560111291586976211233029238844280206320458178768484580593153030565928684946856680038140522393884889925907783160858871436652315424159924535990999322096469192677564650402528780981773313327655481616699381134716531862597298361424277943001190939096875988641630599097899947646973007392052234095970273675749293402310499059563253756921786278274498641896515232759736937426412088977789805646009751487053907189526470470611871749885754310004192292659168290692508355417054608126974710782140674350018804601985104171679155416749987333078005115801903475583101449787628959973557911190451144720613411960846418525522428964270074973158411303150054151634613399559712020039895110226119705039682756889647723168331888119503982478757931899258562952351487579645762438911883610044741961551627721475421016456967297817293462619030109678779836872016342198637051439165613889532752133676072822573248730489318122592635745895028526984339872345472691362124413810959065029455606407141020006113751199961299817355307349793096252696252773855947992271877373601977558108036779517160456946338157034744550724087726000318250245013817609557309538498447771482445458962485152159407243460294290159958215053722244120732514628503407021706797772067359924146402435032109775901406981550395492865190237130994769182778582781556717255201625037469226167559269746519037703952390957087707699351463045073867076402275148423771363739776172551897685698321650255730481388668398151042688496770875083409382928084123852348227306343308920959389243751034352437672342705636009230621441199540005197393337629275738799474485022825389055022073391795041078026368564123313035668489334673642576483885028718865796668369339898295651171204071490507756537237362079743800475359413540418780823050364570920326384487071072432479609613781814705968502593848270330504826208145072225130304588480740262412382651925274804639498010174764263838923132093574532482254637434620357979679808015775834304829489138305183291785825681759700314814557826500516787213059554400329920866197817685392358880454370540362296886076826795799819673004919218580291155272799910857777882495765971466126948106931843484687217407851976609708661563944412226712137243832677675998959832705925572457203159774129295477260659258223497313439289557351839917333888659517902080335933418947903970238822732910989799989613811860526944507640678277712803970081087317139471069205814945761275452396096996392845019555799369046881655893340064923455535637970182828022858639131807619137755737701236270885928756938029210164264804435977957886346908421220525595539213073363783810204854051749049518399261690114920016545053390457687845074042161834599376756923564610353785316650827661331359559774755768155175546350717138737761743476597608025832845423801221760440641293495880991946757450534931910727063989814443627267223014412945962088309595348837584205779674319126628353527015302201790978066972473473426570164782327376908039307029028465597616750578180012332210788778111027466934061009299301616076945926667089420759161813016550508804207158035804309611457573334658190969091331881674613856843981665183368077752362599530808616126407379204563782316337602815780426908836037331061241972781420198077329262166367113350141187535920478121041835959456575836406754429983122120041031965344698036446948923908558586027633577663950754508373737898117821392254820991207520541209315131248983026556380583696800789135858702536990289859722807362242630385885256280044049988332572118776382139262318740616596072713068003479462986580698918658097571856596009721522483012308590899513336639493916341108425718723347650042130768700702890300937417048746989460062586531767837677653459019818527582566728858287006812968097469564063377252778549077093326222035157722222594926555360403207068012283377811739060299405715797111228834419023179278651690323799110224224482029300293937125598367496881925397264225493097181923566152997624577402534765072447353286591648573457671313643733500600246424461011886517094776000852132856235195805048568879527398018384486504380656669241221629382094368841039189750509968187916313754527774312674296702895274415961032355042991160685085228538787907118227740073093375637778542632938194281934393940810669904976050446511263537342070099002409015120717699415474318571823882355153406430187753249374685937970377389325274157986420972124816434859669242728640329781896827930352547581778309917949887630531360909826890455246340258687176002834189138327145361849542813900126661648489826445501700924087788495342321913160468401721191015028752106437904482458220204470567689779754960278924311647340715045650413085411454392939560341577681658032225822138128839807680049171880470482141165213304625953246045967432746805653687760663791581873783209574281670996866452350151488388920438051110117150305122951968522129508021732388802303805654201548184526841463697798006974238568964173308862946998732958851978833479991520509126896085341279055288764852042713739085645089074133702361890539904998558927607665516215277034114483586640765944158429856471698578288594018598590068904690838018243010106216520963048835132991732575206806929911850483254037335364964051944433440940609673765569034259294778128706660419659149832657090342540978445362718363861729007178884046378170157894357205517523142839128614187916211313481226374286031713179564755476222238876341123650848743498492737218971509267798881762519979845090304805841961727672800852705325977659880982048726398895346773787003725310967160870711608104388892143487975790264756006491780100082692977568806442078068706438353301602554979724992769781167907173211102612243180543312405275904732756679088309181457386058857412322121548870068846722060783360207247230910891388343688397095710292932401779898326203406444505729076879823520037741414087541931076926814261713276233546010452857394551481514531460921342426458374789515479186778464561575010844230795659599146879541703973766575008892959030526393951014123411494073574335066674019982660460165772380535168418915761588416346393098755304484193286246856453274941663795579783886522886191158345485932580804319270061261155704832359647529789382728733507882546556739747605260233819968379181983407920076631221722165032082649508707638529176359637117728275092147400292024439277090623974230354884925605793371231506609660888041757326018207255968451869126156546194933470758815163180131527385627985870663696838504278840966599025617552278364025589840682151502679684261922703515726890032497268323529399109051767485619468553191118429517789134471782014963186706489780075424269656150725786515639041739530919110678701641354376959210370703922666401334787079444435794315194300292349649362973139341476776396430243353537024235133231319895060617778150032841661858918027806101140578524757563127655243020349842688467715456073230583726530006323028043602638530583176599775933969496250519529378937160665824361337820860065070095004672972482820604552094316027354165536650764025247847911158789894075572331344463044619568547011461395298534226267314014412648947382061483615005924611134692552801580582243130140996563823073011085107963068162022467736121896566070621460619758339918569591479607840290868663425124744982841993023542638116101144284572265956450762460845206330109356025761820627600065055889982849235586586113086513387824572190129990653879821965298305976629814195402595006667821293777200474211766815396118777186940105157828651110141227685623611834153977662983281757649215963279831515476645000070398351501307843000143330737396187011897044227061451233013123280429453961951657262477998262541799463467476356565177049124854429543413033139364115050723982613713111486798956040447196133443818285687678688861586098773230487559068433606701047900342790657240122373028371585616274883758198912320283273304628409192338726153696447342723619634777042179033771661221052544869017980931296271017072441890589883196012981331606137237737450255301033853522525472253262393480337679162357165407204454674562569062349873213660607833559628183807996117611519089909515902866345301772130894282827785169128947818110795605073859076979479257419311714495269006851618002779602406290848107194934457230844988527376091871973959025776132763786909152777928875440271609398728155282332699498365244077428745405493808587334491317672205647014687784469913679388369588084216354838062618797251804351114950329633982973372787970316233377695477356167904245094870519520418210104399480816989653799027722561221604936945194096698870904458665465649441701088964298442073012906161079920356294688791544672572442986643445561590343489552097225808280723058751464188850352952961474948574698620503485218439346376038165161237010456833321503669599332995741267713667182778951465342075975732655374668227295750372664347652668924605208362378068266989759168713870662796138795074543417429823574274827193487376590545958861972150402069531594112373528918538302105774411341954467737358978297453618454499579142679502525659283295358959186702854093322491961596877767341106425974418893879177836450431435347317839831668618795669048120359288308080591478018266511429154508343958357670480909940394316117927619467256722299101545995080002858645039917548834154184797842846913260171736546988286125237233931933502346442850010176742984768294806318290388662307306773255199593151498399986848680878357611503095925066800930776915539006060673552774354209265958700853604059504653135825684997597654357917468168724495334567573203105215716259264775834269447492903749674897673589561593457154563353267295777068071685046339604216313195177956735279370063037787250798632944062385244673520878164911544020184822201452584794234088339338214903688860210976762440258450068410224253000925120987568386860631172703536731762987905294773239153610712103506320197796606293588928305064984076948112311754613992694827905723043047666768362482656119606965817102598870589658070643564545844156216710260510696213338693380486751273347303387130975770888075130427331224902850904773851102184406863109709653450846189737265588623637323692202762133064100019488148359583197599179385121489366352167120483332787933099110814538861411717706802555765012705744616441317442247066632665450539019033295127071383602144081206930519970842383071985304430763648500536534852426124026865565292039974032123792916684511663274959817789036469857677745203181170736082772526796552500266520418681194084408980795782007942234111553264566471697867070249950192514273473172817396570665757278846326168814326345909167925147356764365803935748725348479161049739842786476625442834898055697901417695901421590167277168983452924590982592613166308264328860365683697689839515949259559166743908082344950374358551588799885899312157990207732306673640440951074042923669677959084043867489427097690673005829965371540157661640828645056021425431533765438940079824683230786460648509007434232602553327999578135635089653861859648906750945093388803210237011115314362671057616743446981544733119421268688754495108022468378986639161113808246177367365495847825396833874067417446189475263726502466955484318999973299945244224479582197955196873616480300136826778402383568209298938478477786468567198154801951707824970785604370380403335234405885270128173654988063020002435674293466116108438961398018417097348134687074529025620908522108371840854998506723211543464671207323967891677588485947587275929590140860059887074371147154114101168452015756172134692228338854053345158835194253647298382817831411701820168002659704315868547459424703982247739002581459942737079336070799604904574579818289774404646205989665870242818898674176365321970879783774731846613972900571894498038444218305086555915635758739189518120945236662581890971889676898423522208199296175928268815324522099814990855507678620652983138433916341119852037785875762561135630074044611078476500781894193445483664210182074459290203727261166026269977303162811854262260501122219838372954183432806903581162968279525196782563785724312230686772151766519053748533198492861222510440378388351271430529161841640285880002383458729490168177675993224757996353398268693821698795703819200760810187101155233487535727347707458748330718679008647449823266072235643350861591866699697144589214126111995958750324438421843911568575031167671465579364764564150830770862335703026559275469189740803469661739430721015591758518961247123541700766306939641008617806188190887603906651903968970432302723179741080524650467529302147740764667021316912053388764379534427391608429578091321717613159911032747090776475100712142231999521206436856922593392972458626187458327939586019813548475381217481111442257227256448852641148308008969801252613945238525520685196626622526486095268902259246909959092988163565953900723728936382965688369142157207317383821018993283931771429292362572822163294373562762701190697773093360694444062724831292328043247466756614353156214681182680728216252368702524657458722389841720525078197909113060075003863078958071378166137804527736548473907007531421401871399401507400447800697338171877329115996867484220595122197634610682848727848641935098488216177252779790687457501138155702870794903314371045152023983684321745038494767124470359163447990939200870956459705272914054992973517887427189592563652041103714686385629165406806946145194928681637091597315460559800502592732281762756715125514892563381639304485506060242485671366496186149259013388219535676844533810976583650359126242727172111751361480686956918573065286323618789505598238597983589948889151308450013009187498159967148348809668340972763263449234994517947833772750610095725790896310554921524930934768657191136414137206969056746744026993788538745064710503372648141219097193335025077273218194462619686314188783442145923105410073146591497793380227213465538470130383580263653123366638661757599346007780547898606667361432563138359178656572103422709248537404451276554468242470308325039391756530710094002976022909388302099581057687760513298871990903265080587043690341771956582391527586486154422094763516520592383754319934654531537039745121950285822992559781111570782579509356409494173381576242858264335498615676030124083283208069265847086690260846945237357422393651230704854347174234422896984952560544728965418752699712513524089551519874327295106327041946455082305261162373450336362385379970448081428733257886548397436119933774568343343528020846352334578131470692901915952939565220296695402204743616416934741578181812974764487382704806939617146511871636254583095663856488107351419536861430237250440912014634633079249594129907132493684743257306311710849947361152246262223876746131100757898541710100357329028498644283162626303626953770690159385647480796476065626986640477551809617925445485078015738558850170613006682107204484755106224884201085553924382756927811299588529873732927340917252281285375888379996231868187711833366647469244099757940653003895033889426900988481562364419685808699036716482370938483526018221719614259048307707187148791387556279385974029752762248562101585315566048585733787306672334897887246491275953321842402408434015784432247434885057734058704349225752245634579198813788183162277562809578605787945253843495410864076695877895362363688644847796555793212623609545903804126809249905903444220470618358283599120459332665956380011174511946548180201028156200478131109723160420585168486543407137798281352120337188919009511077841803134308097466701865022259476747558936036742988137977034554583190519212286794630364134704513810629495635392671836111874715140000323259481429151484953347449618509436002427662185447181793549283128029421170234151555526182567169702915929433202439023537149706539719540682286072865915442377807947474913195764994728413897262435398724936158260043946725909444872444233774572416696804345770112215382267937696101268143721751166535416482479473070772139915881198138000136985388637712795286816095514697671446966080449345789132553003020734883426079251194790911560142115498857346986175000327101873383683315871218110290665233612709952782913475548535873913121439979629443792279696144179039256155953143013332827895179776364428351051876492044365242976413888499269299671016049610621107512031975195172232402565844793640547119707259814471582670040770433496539340122860912544665064849004044316350545350638883790342685311360877939620933939245737283145306310168473621982494235832579450065922467796625318279212652934059536557723631602176575093034039924986995971284988974504544003691961267454515829146953655486259013322450546783115430975099447592989948386366663438705612358494494523847840532531888124215686505507913040079715683284254971252287189802854194926757963459895401125239690142137655612377093776703942475035879325186671103423957836181432079079847414121794617087289842815583282540759304513907643979813893946979327833844201478457644356520310551050837682025612043500317851276636254131040603559788924584716414062323289175348846351270814259094857858399284200233593390890312452302725208663286654504298499918696943980583410189176318304662368304514107201787470185027381136797446384434210563333202110812070103731839474031118151497955111773431774451800419903923858716000289057723670675104511809518969179325943959417910442338511923853437756016549964730447426795813061364435887376305132295975443596285772141199300819329125727437712131593262088608154378531809565192140044002166129330879499398637415646807606857045120840198039676082840581605062878334154713899937981113675388285666432219625659346904157291005250608548707968687190945734995092859346086812980666434286363123296319339395436897401756068657998899617702116034967841928229767137785898895949940492413732878452206473684919324122859897020506901987423569232623663265458944005095045035252602092822829142361523196606417248866507869246329748233942317307958204216504249188173273625590229998669814228882313207583618808338228453985015197581048215434022433590155345526767129947383874731330595396632988926500113709487528441557902385986463320587087904719134558144873569152611713674484539476000617259572667672542472810277183740259948754932846837192595213924260827459806086263445643502080203988291827999814373239174518645611712753281718159513252027828435549203135671554335491888765472753250840402615364125697005436448258939094604658670080017250763191361660046510139290986367662576149624031356864359790677232149236759076538484213544420627130828096400566522322048456689455148960798163596922594904519695022229104904274028623582552487507640912874060618961647466773982173777289249810096353381248672798818485287161972147054396406846423801082307025805400230945118907572747124049783237110147995533952789387384067481200935843328249510991869542969376920917789005305009800478251657892716112144243970846878797963128468669768243948464471167669163883363818255573488609845860226252573950823098166417308955198938654959430561618915696698294789567330722266078477247553781291362176747719254918757946430919555852723661893993842591541822864869521028653266457957898449136624973224645771598370073842404851657956162805498479359727598851678491442241464045487263910288819561701462548257462616586122550498454232424796346322733342639772923280224539854623705722813210254112927763786247089177214675924346393012074666634018843057399043180658239010545086784611273985533061232370152557860081482780403730754567287047412462111403474394986369303442316414417338053534237075090255307739739148684791172154052261171920422656184545592773359685255519752838163128856436531158579471374494198508844424273906937414765419957066532310275817327718661887984984215187905062430842543893359082307065957695635490043393763750416848437901475624203288377873064069645159050444975832011086301337317742738800325823364139824519361929059468069867201554810468524877396452870580669250746489043329161338095478373929300378937013964026435441675567638265269090045854172119372487632700911037382520340911269646156993139431354356086850756312144246343194382019750278749865510819924712119111471418491450009787639412061544852604406263341438104986113381017193491137172886144341362831292689903479025222240374644363940394655599167727265337269652831409041146566551874386476716727125545408496769403793297525149551890616938892358856334076928850332155085526525777100362569091230937852557433221373460155689716657265211294636947700787825094308711471529661538433227983846076492346428033425687385802651044245912187849234567384227936305269632313324015943257613348276548132205393945994761731923801797710166745469854400043703188136132223850325160743214306807341907572501800594299492913635823839049023784001481998258813099356338508698307267285496942355885820386176986994456375650404635355201715518304131257162999190355041532376171767714080794580617273052349455016572906880924422461308940978011423953252517760474362948188498379657292621244082913685688253253224316424633372486716099487798312589861607981764498979681595887931104772258382902893700989543463781828984721513296993549659760606828007347690285004328700100142661111431473279138670352638631905921501420928320951732256078469763926200300361169823381859557917795856639254731338430968832251491299302773843383204892373981802595985005826046353296616201984571046653552184926939255792633831679890698414334592355672281719145257211324486564434201324456843292005745367428223238481025214167578116506478293080802477005538131060254709207320780024413752462294129775070650092742961649685955790831267413197392510614571049795737975148207253299723671508190158704770726530936006394908726116876758682444408584179140644893160730936734676270636135012617020296401908661050603254893953512559615716740298884736287295149473546596488097712334869701889665776091833624642779251072123904203658030578481217193094992954382191571197939279961133393006119604800784072171538554949194747964119809509748830286805115892992174160017259773366894999753358422508538790652395499937672777371161544551378079296195229806987811862815467041203573801618241197765716892016427459174395598596874484667121312143564376825547994077712936267323284691514600378134708205708591426011198604733526054654702485189308435142318221463985836815629378922887231073121662534078474500245048788054480139112286361371270806770594694528764776300580463300572076512450486309125900222409120428947184862647513027244704068466401621961453641273548463606719310881232729618648848111544751339463307623143208947798958614840637889199240156744955643933483529042366189436620535371761538327728238412841034984168966504046478967401827080328150119851338997431666999366945832743971771708448657606787984594510767789472250915403900658105673274400850678433523342179545259337178271639877756715250067601783007098492643738305390034552429453588384952130690887192626300695207223261935705048547945987901306593720104481582635084886971894371967246927185867791707478399138578360622534117029489211163132066557737534968388931053931236507355707503619616486531372846610347503432423861795600722102610775806607196331189113619235279239665574636039362776017235904692520174778295380311915257703445541008534859530792050058663357567341975602287264601283278513406390546280786576053669152974250769706333608657207820030320000553171140993908939459279358867696919878502309188282480812990089197369191140208938635982283004889653827575777666042433329649561510387687569296054500279386808992037168242739672016600699940533669102107058891718479778795584815795641678958005306478218946001745191361860794598738944613001551866546328957065411332411407753143605386231646183829933530345948688207913933300930285396282497584283466147572623657137951135722336123314640120615497661927273463286283570046503611111724686356708703080247020586106708192710351854436263434941451209364043051248947989554677180729996588915238343446315317956956276140677806148694021440847516098479505610401234903829569267443163742300817593104339897087016641617197646542883930463017901313487199434528612581021493695048852880727316611158883873714466131255189984906039269583714072543685990733808142529748861826901106126105848884760551906284909248940550916520262781674946613606006860656410480119390159025414217111300081045985206436123232878047378302788194667080302902035576651424439174194734483612370655795807919619148866540436626663130079417569768290725497288050448722367233110323340248679173512738346161229127379169915193588587181367013156142766735146588482600895112475018999173313328178365968388278312664898138150150195046284039237506724788832968132497810311523655953225472416497047355181786327117835380285364430975455307859709598750435954249249138768159254642856153582065041855578322299395919120255909257207132411465344341411517232755933378930757705676383499505170309550192783478950869732909744119750693202979675960740053778724023209889520712321706680883561217896943548459562463532128191107625339433671712424939510146235938215918105915486534215576935633187031635092694397438489079330246819421577147302344278105319545424732511988222662924820851476159652640947738500688549722678947277391372298569865102305340560489730359955345856448787859155667795823247566660709103641373830213654758987623111986498958977376616215570989222172984377547350116220243373062441856844701501816255343517363672566560567156168334285765658919694851769531755393628223805431048800657047733584205774382901493197779502315034012175399316889303835742726220131682965405179189390975972455323117227511100796187449021827833979931244265431462891089166682609611507336264780257334033002006344403779426836966958104751136696369471215692315127480669513514594509139348717869724239650980475670211550230030041644334924026774793624428637703279105477775341756991850516269629664374853914098245703189968445490859287621053216904253840440666398758498086409871107639425917917369991473993059958863390542048448907030363995578974883849127460879711735899139318834687020913141458278772182717284500020276523013187091910867958151222282583448846704320250572894588989823851626877555687263251469735711292259545009593403928969908469337104424475334538643568853228167237910393261146787541281126659503142095705631524695686003914289542553154818787578668308034944281361365154368519580679963278319440883322961570413666371226092551060350772183892438054070381970560194869517461002749244148764417560013842401369587029471571312400760895374441389982975022165078953149739360414736330191650467290269335410167951508889059237598911667238748705428513674403090989347177808243701828135122298151437647434266689637940765804958147472861746808715534587933444479982458895853220602130127502013521760394903752716306304540074074816254752180681866760715912719526705999309437568533874865375568740479693051487477254368900479322599048554635097319958188270144773013368764823751532969612550228105012687883591819268029181773935817541670287847517099165369471951253215465104443646572302965780612070518945999696629308096231788247597370803121245208753439601998131847037873014385764880587348251350189578793662386636381580607193091380141265172593199867862617122157123158082917002569092418621475931915296520560793317719407047012626335567887209910652851193842111533879902251018820906854299231833131361573761092869856306828878893042141056570933207494401157053162812046214318764769000484584254647011762131115080827832269892289966369917754125904217950876211549101832595779352162574547481694218838170991430772105845070202359451524539788172439647187281314884443744092434696202925507732169966353329536679346191286326738135214679198541361149566899194655861169291388770719082025573826333757243112887400409765687623292801732716638101128998549102781866543299017633968261940563536867790353440356529497383286455891980146362306077936991309843770821018597434946155879130584161066172916831595671929953501470087245758968255413789138706875434246600816132070676605770050095237535374073858498844547401132607060593709730006484657387618721910443629655144150283883179789788544792376841374242471488742882639681792148401491603129907478810298550334595930219386613406634948038791705044960230880759394310069811275148482334273192109299064412628622482049241550344173479630875244638498184982878919136872795029548255383791952728187540309865186885956525527277749996650396746858227346557117760719779998834663567036879361430810336819191949057801604573742034778485292679063976953590889541291499469993131117084635749680232753986529699994922992132941651256407290955481773866600150645448201190578449980572935085915388269731931964918403642103978414515722598792580517997487910553666701292842461598630250914677535932302801394864707787617799814446149200346786104549269307708920785311623118558901580646777745834107156859124527741840663094124570076241706571400923745085437653973967235777130464101857812839113288020550179668419843649922774222699659323922786312561164505549972189279434720417979234281570986240562325968469807217962517603955612466770329524485707494912245795014895363035533783284723846960663253801033020345804423736230855388027679170290166349944362555050474103317732830751501025432948634927207383579106646692043972100805436412731137797312890409318590438933876121356909714717033166761981271759919775261434332983162160419075645995253058270528511395599967463492243521813007821523100775380832976144005343991443397470989575466302088150580873644464773104275868706622956369252696791602031573034314749925657404900885383772396642943607283915990711015155137499196239365677735253363503905727053305832723267133540316047530180587964383435474681257390082567644899885520356248945320685842921183934914255317084841269193411110662050154772484287916967728333061042261114133813360798970895543652751952415653268567631755227006873826843963453761510110494421213191520871267944788306616017796867485568905573313380603260260304829127539263992474241069425977651465172553775220510896147462668357590357967482420712364891070739232155152390702834635685146902464511105658801629757813683669477734995904763063537209193659105737409157018626191425036395914131077153448202625663734369073174450774928635465119579554137641048335957969308965344587667001282888138896088636388025685468197925023977815923134099906166232557554245229576528090129838159087649966418810413138556162624851616501358371383228684254539703157501941372933335934131301240681375057846478644393486740150867485338736477130164456002291241626361795872196378953923511836253333716085435760195034695549060954668582962834091571275755421465808442016636110528925882972849924091083902163959644680437473649955404982168697517484524113167849753028282791525564252874409930014575383325967988168263199354013846151266154717138949700244087845125393177088988496610636856166916761933590620703039607572238853933293606291536952331358477421683011543233788168275318127531821689786348350425885761113568506978037960568386284850271503274815435145614846448149158016403997696898104509165353890540682137863960676492290823721418501558867465149451010787902506440293312332728268578838867096419915582182530598775269511458317632207773370566731323313191707959546829413506887711212869858287803022056411823357510710379861633132322830785197622635802577173125509723168451749163432535662376273339326271781980395045383057409555676570847410709814472901879962565335305366846352340919799420612080084010840129149647849424604016102579276234057083119715410907121465657069416380291420314280942466775695075427202959417522051940536333297814819942922125452716884905000915581578063718525371607235289839305897049579213581343154107352497520944560429091752819499155287514063499533770849196959638559883460305753570128616932964584793534655480068611341127146655130975862047973550494103136487327431716229170394971397945865144060837227107415279225379701562449016485012702726854881165109042334973381985675475781160117632151130633372572531108447005818243257874423664074162200784475217354172366418219474282093554330825094415580996429118023891451026389251312543605930246885943102660994975416595863971804806685759101409022466863496554489313149512792291394852592452106881838867525919132186436697276961820663705081307969346565057906229808739686620722166957723871960647915608099296133858318511369218102460466873855841613797448061085920392693778041637509401211005938286415844809357069759652633113541525727485733570402079939354190743004140105439178555165654622475728576651197578833674607501636811156165870635542977633882076619985886243369735979257691836543056337093525239107707808239779643782997245059590346217489046735591783048543994294308562521951626919463981715659781688600097355466611812568637545111922643570254833640348268302174818712933924177182777143538860113194170071726997372205897571836612105602493440727370006796865928904087997071241004671149432456863000201412259091986674411586283133724741571837685749056171921050119634483587791822745684313103674494826965047075462552176387765871267376656395272392472229856043093687824667522289431410562537515355444447459355435199736256947391892014142601904580155002170306025267332097503539273120657253517582804057957828093519809627902417740042098585640678289577368580925589888154082620426666326431733111923447710809126377954650228786428497527187889189222922611456318505174742323444849463800101719787084685289517411240642091688950496018246603817417249321904542927535795814867093392520764357978464601001402362789733076235195283961500063093583361725051557890370022170329559121424975494528251296398561141141502594964939787499171188268683173360409800301913373312683462211603165417486359537200587027999718031283717690031200162922936110749325298482194522282047699324080249595459781886471048986267504351102589304323004991405454121358352014781435898268832106104971464449143483010767087741123292406230795388463328147020519648821245502635783989021593491334281434318835841385114249995529414132662615268869346807516974431542922301654552500552604595243197343771636632046168297989413381399450971241090158240887120435068091482899256042462177202889993745878328604767559404117857829666951032326820620021890444250030656703983650924032185964734778442279989451904773828186123161329403906583149573424349049226000781935071893756866412939699832261757671425800923437875716555852432484991601535071588435526116822321239025586390455491704539557413271662337324730935255044747181896369079081574609497071982835501923295713296430563287889791305682844611291902287899964605430100562598359544820172449791306096106247746644152841616190547385797824643145132103775494278131083591684869825890285129424159655647524880617465050250451676119587953893970163568498073077737690837391057125661274473852317545716363203259002249730723914643556186390773609575161959543338141628553179104597427089488225828024956571408451413475479227985285890246970476922453447075971586149953061337932118577075915055225789244348535782763765934877018731217417625180318752937908924519583235311896080177831361498147802167284241915806651137324743362846174151899220525271231443234764348175820697834804390372834042005773223196492931692351190367807925076019952457436460855761097355036864327555346970569390688943642424974477868042510251072337140393074516217828106806156048636876542946742906579099466231061125336577646111663155150285697186829353476337817382073337041550316200891891210597292705686606615400439760464994832360830210785702794337863926430657310582921366819131444768193307887121550133749251020383952979125701643100287186343565782400836759894843036532302299669805844646056212522019369684103441331435572780169011372645065856289079095683923102080865496893466796364255544721874228871099583580028568105336868152441291538437314107238428881514926949213781721423916655719020212407427602158312519080968868580864442728675282246799808152318500086353002260381977887459784458299083325659286645592267149969261848305148757783912735358177328770849235978765148557147090280471392434578409920403058109416671818746293037376810919221681439169868339823491255552190034085283728694380377037728439261496147984333726365146677188219272738941892273856176730084158238390281236998262166921423737400198653919015856292895201021429022626921390661121452732237857734864172260898443064774226019348724020498091417165157821618209509806983730727877251288827457823716928517698278811087125100445432595707761907141808679532636422034824235001322711513200243535231521774755230164057583007938072682106062479984820840743748640800933478265745413054613110942704477491598008833534398358756886818935514103038812282750474537902853324607947852084090579122054790335658643115510360374251765233425165036831470447903998809287613764248876097056469252142006099938289544440749818769970166958537015358481150033020211332986884926916814832827366802099447835716329229836852139229110815077807084370088732883343676082720157752572048522292118244418014681735926085477881663005444426014460454377822469526055752782185034308224844579808387253375084944647503073602751045057302321219978628982000926015209031468611251438074602845099344009497859332539545935669502207033646087513948475335971727372542335876788402102878819643582644886516182674230070004766616129919534345437423634501811483678601264990160215067413940462897781875364224774755659341944514322894206386772897267115924307640297757601239917117621847923664776123795778105367907854707107375158330104330423566318015611719542388846857007041956920385344692685893527786976392803422821951373582884563698275606747499927159942385889972275846689461992614407258623860993662945233018734248661666787859472419742597086944557262959285496081418117455957607268331773070789140289964333185091167537863047389357175698559235089515002950806372456568817036337379304713860289922483516664978533472282309048068659484965798635541257015553506667744369223542488662683774447974186363093719466504450073480312654189039266648243905539756474790623361212881105269374243166832467946694937958316240270706297212167471263280679902326038613178893376825527578608868459387437083041197695544899204746083864291546637968447861112252393062009838172806827329824312406160676167138954044584669262659205159648029061842132335724456446011776859676100187652835933905557091400614986303601669170351523372990216588199513781982597664156251937383732898878758797135948045557228311345341688242052903747737408321898477697275525220057365865285589544257240603624850513871887052033354364198200796425892889474938865564928652695173701677723843159359552622566264777540739395021898822554455149380629912817708816942625720558412937239711195381357451957034680418007344241393971742921058843793837960558789286465603769123066045260598408660201798850928834168761860530574599697103719433143190923333942637876165658919967565566832655985231211708723974814288095498494039030100674531776622474119836553450337098371821129718845818054476443787319980029017376020847454625455234709789222575555182605777776684083385603110240049954905250214474105458757545726015117042905575656774860669709433734042850510764857297419419643035146737912724628540388368917838682795343969565998772364256048239610062223017053612331049945440287720525104559238775565791956036494832284943989058349849342800294277323005361946572953639725124489028708141631619194009875826709176581859447009370184209100249449290458684083621799652657395720937845811395800378719667521620994285195250454294522274663132306919605588704449715828728919357527219311294696133047006634733860011598072701309443693159269517866526823405556857923668362731660497070547831118916584229989456495513803394043438507161761599479854959067184271194068667533680267380105819512465471573064190683862480624957293955927519947268424323933532169939489273234933254976647697612596466464946383896118650272568117409496722141655742152578501771668669262108777983424603738232670108004071546558226049698221879442604153389447302237316547686748575140860162104675317583249228176896422014628160661696735304290148322436666549737675863409273631621857854957563524962317261646224799020445614773987549870793179543948787519803392798769048436055782671442645692070457728582543827781073076986324516552203262470351299569399566303487903985669220285845134951208710224458510867832204824355953854148288534196060979617348025919885057057813412662276070068309678760356182999283939505570731499469746518235828439170060083857759256825375999588424026680169569614199349376773784972368803838934141435901907674292712759762725518077676402487022150518258843854794555956178474117433166742110879033242451453101326694056821526605205336734527840254845104596472798050305743566062429519597117831749851196285921213633112510533357604075719995203747106065653778439846562724311757097392148463512194531422423125513722432609119334784395845210768549771420368590676019880612598404782331586177846177088484845774717522583695977538996636001537421675493893957639648671935687415135634488276587433677754791819849235005300755893784743700887827585291087839985248326655201626058292965077686644321643151527396665466918741246709250546664433108358650946881130777862258664955803843138370136954018616827263910760440248169723174919834432984315370975411245727322266948992782283553395409939163219297594989279650027925963438234476446566427388464781681081993075936299451651046128408864389316369542446806249369911769497005778888950554907635213453631957524917606572661120914178536427239888121942700266529592064737539897619375709480855875978488061210161883931124371941546573261064412169977862168665344441262753797272314169941876778852914401746360448334365999306283825313134010352232704928358103430474287866005153588719580247734473557365552136125731395333724658960973426436062738480141453692904875230944083467971183483183159017377226874078766576132283623619971968568736813114806779506011609367363722937036111479218105873692407954839346806940127992433396726328121787081361300146571497263770334277517505132940059320155494319975791213987503186461662362950576158230244000924943855419342642871541731476217680839576354921281353777358740998390655402602893408836521183300066383792359152006949218218346639465190244560124611867784386066793702944711986518188197115682064436982673417008929122502552385903829136423263827859908100086905589646428648262498244692243834184035501017216871221397267515369320444120225416238905636467740542227586780077759986501662978239838114094475007744217891798967319200831552730227536738967862578475205422160324375538392277476560041573795647299377912647678407126938633700443702605265076836571356447613561848043958690351189380559289471022732415966674011782664969135183972740742558489232504220638513092966936256951698685853216770463947049735039029557598434029435414656373442338309067047277049725336111401940696616901956024444101917968949982954802678423649456311824023460049977926101532291895069749084894321136711571275833362372075860800547804461339218838985613627725982719460013324174618000331260822571905828335782593324624669554586440919502861499441317728112025716338127170268468621903152348673617829713079021763870365662091053139509169456532308701004556822955358920651785575458466949334296513474781034429701688565215744878302707451331378706655552466256729981071418605558309234446781314768202304067744218986614767389157832307695422688781422550483331534044905508498374587091049453089089830067224407765917817877721313675804488935822356674963390140137288866871983606297976082016158170337676906370644700276570443828224083177566833750229497050173060927360636503155207662177589102747398593032503702692967117534788288328724564168714971182594569643137965785744415492327327183530058021466871393711198010146437142969761667672768701309534580523470707677354890315049752488195558535356410675253113775828962268116770393727031509965371143688798051832699250609661797167515230481786508212211564286117844877473920929659179256379780349509738080222591774702451429198470586096427074579994182123219924030798684456331044506142265937246623580471676776714064858953547450334433935984098400448491465699273853076873774564301119097377346386215547138917344566449037830879408150490409772294567802901836398645049268099604293494760720576812834700834868242976590544072326008027315751399449698004437280344012080219411525623239549276950088303164291940128169491709204896630896419228318579526275551684382043006463233790472858006025042229774454249163843577741321604604993735914494252330967563064761821032922319481033089908892838039479006318121973442781924139829422557686478524779072193532273915046296305556674030199482733698813455148137910685865799681320328081748049276583656284219306670666367799446986578248114302457318285010246001863996045794259413871708351256694156536748604370024278242958870786022867387298760826518912108202948803715823126706828680544500360610319782789867937069390398493858427737318559724469193946048245588435862482210101043909568167940260216571392901780952226067345795851333299678066901400102486206621622243029385334291131317888475267411889510367842462971632660966449679435166125796009243203137214581729974756155138792229047437456383491623262165458491021284175486771592768065427117452853167702954988174981806878180353494571663411244566272591503341688093362399988010131464363768457897072931066610305663944551357858996904805005764859502260668622215206219475407018472022851125817328623138237956779059612362095330149862998614241116791129784102446230416103894482993122947980612564463104071134075841659139119308163066334823746606890927410238627095528418058275434503879756870204288160588205889822017887672757296273475565605471093824341745814118400044508838039374713166381872952332453755614641440290919957460671373219063768014893524121958926188143937049765608720876096004084105513079019301529474979804134707708499957934993379955632697881493093115328130492576380032597567243026977926652458363935244926075244585621192314435737834637945382326485120723260067618224718642927528087841269534064734442736297832802573615000004481813190917819229381529497115502567269123760050464872267634571555742925000570912459453371131926299015717954872729855342726789426357631484370238547804215240716489590441325074623246974459364469586433230135699661461352425247473042892110552168500320856871857321902928571092222341841127914558573297616601774295199848304104346553151636444946934249282691811996604432304463207676584580117314162415501470303010940777465883826029957425606728767427531394549198710059764749602089938480003623572468840154239366345431546777065723847542429498995066605966199669360948840158972901635390797093246856634757861572570048543919987009710745349954149179558617407812823790254471485677204965221043428078442202776113220919556879208836716398946199236658071578545355700918355299626153533760268362734585961576758550822843277939345424521388907542445915889136423083931675184973549388714164871413833440904473489394431026666627693495393229458776736694399558934320879727962291891814696757435921521643701197609633021440013626767901681001761891153296493392982108161811178295380329176885021636200978470911494606337226548907993110442684259419716895357581838410209994095126473924668041902646826261039590445874844768025819385525749155039186423822812069255930281880243655662968247749147783066747664814412255690642594231764108262752170800033939883996140438761698981018610530769378470772560776133733095048373755382841244154005816082432368701724437657059507387395434711029668068859698557203427082075949262947154976163185105557397564279492737774666545361630472775732673085990943230059704697156003754624935801596250486267210572602239117871093438257415681516832601008314633406668791608453807204006447657243817524139582791903543173024063662531754144594300775548491722946046440928597924137978412569783319864031002757807146712964157747882170733702106947461073487315149692880162511656224237766951120138004942018047307748180310035521486692566232531068882980998145411379433890674540663840866192023938530340163388198555323898666219922015873122417976357492138599775713772529103115866682150359192806725968916195654532650722519609492797800909558665422484199943742329415587801333418908741349454701931551611136418561334325318077412456413973624015494484820401879148551548279532917931938891543918841335904856971489487516425661853815870495609843055190785863833025373504455292302381810687049896770877004835702482157323123623236442343875296654659215328617160411384487987332225918951848072777515867359919159542453235050617464422814754184640073094742663101601797931340039119984287780322511903966847817433933701226951449414918655460661240607488554037403442856066417184363012431498169366715955829702781241910500449230391817563040696045581709845814412354757452311811400499017503584350981986793510510079115478680750207625820399818855838948692951185682435611940006892344462410652445546031954406344612125899751599498598183550982246184743473858799663670000674971010523147457605249607805182761859503979103849515432225829416465562779782903340676411473228953828906172942573465584372499984737475726149309915485550482817260688268097174324650885944856737954606004863991571703958227551697926444054477257835305573465614056004111067540648800573919115884398881117132249939479416441602819126354891320262728117582813323776458073119333328755262233540836003614302839024054070992548923985544194358593408739800705842109824307606195781618337856234110607250990489206693820565607918184445627142648343728680142562229099696219587257258215724575834346865360579990388649918437916769724297878879208491752430797149195768070055302848880232145941257005612139506003659835096276629134588309543629228043255579934043202306947668634114949998568018872387813553456935496906745781807872073013691463513033536701672748621662690848571657670293115984862405701316117167446830363754361034113059012383215699705560971867714999262981281632605044176954560457830788967757796227824809000287301512790321137491057233566666435492951033777835271248844214947730712154315626241958624763208349774148259926654149265177574479504067527713778934497942246121688497179003014575631045769170439002982476483512808906607034020674649410275042548817793954506978081376915983012459384644446124020051414621804606136748400969439979781194877363274079164656926315102435092999226877586206835425780625543491512771901782113875883816231452594410170208713852540530223622687364101181764909301484704909238417005422044577526059513805145803743735418058320373675701100730161083631478861916506387897443516682404020764860218242873958713808634457957867539102704905911559523634696940952938532566627346855517892394560102121144182674454701326606063317487038760153822011853869686535491752890145836423008646142197534449894118299380135839580993349117436333522534696888680494884866339425963925474336441379648488403159971625297066001053359563079121820972940669998085460398800290314998370290915901717576973622841598818399385408834927960569302478707962306776372792079699478968835992499813502961428742493361142183965437793156630509310470247839310957205205447784806217409239968086244077885156453666694136523429947041986825098515943651829168690316254375345265768996392497513626961526984593609526724323717458286202356968869112808677378963750624472624754882855435525420204982420675021624401417586889167491312926781740555407895321408473536328932101425688471022483852836624816803810029221453562196809694690540835455366501455525622388509327603943727872482047287712049283532268630650020626500991436022128474781439889247920200597474851959169635635728838970254196140641045850238792762939112131549905476910349216925173758509345676638369571271273959603382718397237365584527222501026344852416287131262585971931760028084596834724124526434067840746414629290467320250740314008144006313696320320542787982151170897485176160085858560415903801526766550804145697661341146142543597582675857072745625364854991314468048086867674137169996616682110723628848173125948074087917324200170941559946661115708560219597170489013450607997348994937481157434669047207496223718248298944933557165751808749211676919891692947706396527783772548973616803968083424322358627533765214542597250035292143312875767033467377713235357304627358825553264398987283196595735344222105832932730340680946687134368995639465691520175644534189369827208158175498945584944348336147422502274553677826122221893609426039053302753163619264572015802865796963581241739973003121604709323100693436028874733853017358643625827220190009092992424959961868119918088925366661535351482923083804776170740169325340847460748254346728653216379810898656039251801038784848860651946780384324574013971390513595399557161450948047039973449425902028920825451529195334266522279874001163172387572899666230556566541493408540395658823245851837642097080410118817343103251163535024451020675380421238749113973493440906272700926999429851248552217442105988204936070205457177979644687487557822121117118930174605489301065428830179225589448877573316823045209420414329841623076533561599714030815188787879844412909201815782546986400263865982803655478437564219226397400896387370098726325219701594367557863166398951688640699512226468908469801534509180009428221691795937417952813119132385769518600912060564675104240801806289187076829552068667074683811520710816125510862859990122995359834408278940844090889022823922757035631454963999598206046162011087895694924922886490293302225995075397981637986867920998566800218380936688558545561988762998188979636239067224443741865268821416630907600819870191848458870804231731463849416467596879696036951783176323762837169274697766111922450314034958413224205006030094032432702566018861508444159965552426948284736047137760747472524116111593276774009415034486417733414776404404966673510154575654557539252577420575688230372364065751478694892848472035128931780870787194558722504600081680483516189911028578774621224820943940464928784591791955815759306110791832139888640059635956903661157534791795070478547812274357999078901696921567812446539235458235403525433070703424756190604756248694007762854948530231268490698997827299955474225340447517068741300548875515227407003898082831216271974111242432019389664044509037777844631683203291914361836840070851358562913761507711012824178877307131180703865494550159268437242947037961050443132348939213226243258991747993143075565431302840481432309329257963182437670631217971892925790665505544940504398812603457380344566281244664930587387705177897338793889367226734237581119322622050700412440638566499969748916319108798020899003848573962095096667358674145209190326393815571167973291061805102362713858923595117508242303041952764445076939582601309500232596167755892229907228821791784770255496467941426132458317530060810823066584683630614897354851307442741749780527776019040901809165289616720457088330410085583312729703859451690202138687550431348834565306335888431221381944830351615106169077158951197865316538826293334032114389240412103137817475798804088556103963262897459913630265524815873215023304274354209605394417960405440731994627341483089699590724179154224999990772041645721315021210362363269748088142012581302012745766968326332043559946738614644903396991368646551753273971202294863598015645990069293153740585771067108196021319637422138477743012244016173183445621195159575058977294964817716188928039144332137689937722531524291953587353803018859720954174498042595977360913964569173113673655483753836701393870345951923133999672465359811250964775240717895005258150380612974950144355612236729058183545310909227471169288423583497014775225436981227699674229519099382365721693480965683236649886980458708631734107968778868783698385440670410369330968863181688939129533429828232163607058568283820181037761074764614977945782705527236707333446930086474221096465728383719416072229660995594527305404372143380208171405223692322852058736439442075913669693469489188265898651000512745876601214176299224291223139847999165403892767264839562065034658591067641555400563630529191566562348866888199656248308880689460995948193052758422420462117363064529871681911769882460364259376455631982103510199384002764109258584448306350369972659683451731722511829949994495904370353538669368851940918876932668399727319415335398753794192436398822272893179177987382941499226109439837901576855104957177984594938021336205611875811686531533162620131228423002427313134876541117728134935486593201454919850174066151149161106280452735747880916492756241124587390077767213954530963438252714234484112392617240273834159573579242943954383081953942394587789527237481163219525551067652024761404584697411779731579000528443642736495338072006454001619753227900344902443056840253069703391230390417458290435681679056123357896640949059238524992633968813654034851288769023677434623098921155640565402828268114265692409560123530865317708316995354777395921413227203758082808959662646486693098711965046004530096696773180085671705922732482487601508082908224269422227540076939357503389029250626255802777879800272246501604079589359548627331432680767729813071352757007817833072862902464144554521001333383638827296093855790266560074470630537732790938209999559580826595089575768092629222160529877323331877140532543665609310353250888865758939138995029810642523154987562659234092163913479380509006399580887677818523295258354604419321135959446252641346239047305170901165624679634871024250135084164222194627367973623062438922505559047502817423375557560814533351535085072829616374431378999299575205463345305761375276347479456440577224689003556218853622340537772842092088370536119217516252875218968060112041063825884790743785561408328174211033187685527715060016761425092356792194169067340241421503605668811563626672327218298795376759472015765035343788935378267887023113678591366885772831096053524832190525951914325152691261533794920630925426343162825935399418815058976977945511447555324964939805225952921973374886956842402161081578489014963023522445032692289233739422795958079535234775337345151859243975663013414264478478818174005140282007514454475350929073763832846856478717157155728584237576408389009945121619298123719192171142415224122546328913506495739877391517885848601612269960940090341577815352797081747085085338478247558106449301396928233125173540070965994900591361623072953869449239779980597382865318623969309346930719229492792308950370146554909270250683180485091869745657626343333444950794342703058257724502669225609302474154432444086737284666988451187368387629177872890550649357760306464590157272005571266520125083662039455970604069886833154816242972728890600600400150873173984189661290920865063148268277661927989053869019068157400567010059845999862292982832946701784452069875039169193882322598966150595501562078554458261801300396370174751379562055698563784260609786409571497168745183453420524377203728466611558905853056028510868136504072042850494167487201850002881461206215284904230577353262129289542320739972535834021547160735968417276964857240043655419500172386967524818366754405140774992449039258619934076028216331747559511185640267769559775464602949332251153507777133527225588510904140595690124567260645954248832938685308755840675423243247683534982072032768058565590862888288302150270684222529002762280777753060066140182895957357516563884149694011421935352323842131937759155979740895399620249215840905195540001027937250813959442467386065594320060893392063328036434771290668632563310197339223707648789313283402032527078278907353068229469326153578240726349299749185613664647442403766726965931717560998000922965036121174957524638795672992910376049967617112812362694342026256822559194933870809307842863858239605889990106521637827880633301203979027885203610267898332814994015029484191068169744122940528714415307357351619292047949426279187916291250834886609804586644619098513297736565738510659499387067822957072680358278208028410670573010254098083161128025414218133577737751027533820274922920659431189470078096148027620480135834308404002526571368609019913482367824911186120572788064589895355963542660938131513315962947590699561432840309043767038312155320433425327884063317434112185680075270628832896750106004914216008113219969253424630315734480551130269407523335483951644601766922915213899668339876946284751928923809332125599548884249728283657326127636997781414619416672666825168625967521794842240351163443257856637473515648806827873626075660014537053754407979690438649633142541795886539642255926521732152545930671782777826079390477669284635643025310661895203823911105927153515097864333600442378240173921269528270001659518422173621864038513441484963956248807875791231748565014491072205650847951026062330737772955179336123393558147614127484930284660582745429551028845727332506105981887593312445723716511567114545858712965809521743370351314026652619564211585308209594208431121977334258028493732362381389218386580829278605764368847171194814962683032288249074910180395383342820591050028944874217916129062075551374521638758645995846864561375976166127154929012438819554349792217594703183391953207038869898060669458430984955765517752142593418496925565620500113442955345974839341266978739217292699524232059412102504412936504316742093139257768457645565998552824784557694590428616504828005816914186741058254303226819651363052648001287122309959798858753277107354212656837227643867858185555154406168949159072413604558609538564453242523772318743033124086890987662504493348528775410055559705173499972524928141577922087693984014409341786487203443634332785215349268041376642121402026116415094218590727296349409743506556163623419902228569372683782495718987656058573864687411815856456086738585903922075514885075723946687634919140606862069741015894204226185292680946646550608211712546813657702538837338380317551262201441585515749178659678493716025987051839291650920400085887823643187967152808290724492903395608500108429767257740054474316581261811741751555936268079106487241080121570883755958013217433495025468445222030544829520541888340978057092744952127783355121283716833698018606862226977616562167830462626730517019842537464381112686873487697257616925156632300336249853239963543359260178622669263644520217156975627483876900815451132504466392136209822111274502352499877066159793407274645970880142929544274366174785296209813867832424909581413878234812890783596474084521914034586400945584856200892031827875338597024218290392139897968933969749957719376732828739592805947962602394936795158581664585189393955530975923521638979972074997125064366355406402215462499429665836910476213975843709013987682938669273774630869388555079480523545024257081210612082981593797075948924944536229171366754381394460868072368621019157700432190177434727974335591440246196968084199684034642980782202605452264897914337485007797191744782530977466902797931831526339232421411915449838554016345184682299661175147146215744981161632773538602626057219881478695659715949819967989678639186941898666680957031899732848205235552506804843269335573906610376777412263007012621120579326076224257567404455933654758264509667994540759591346043302652822195818555751048539869964093668768823605519279059023611751341571869379858720260086909730507042050132866286316963919423193646296378880100649177027651263309023102402703485374062192005100208577855358832719498719966350824992684715589977168530680869393808475293660255739729362587848004197878794428073368038693134015256868524900848119467588188397973371392590808840661709924496247999710828356101645692741744765450670162148889250227164816522670940956518096437430091190616661362421810578372576750887101960351176158859732799991712489981777799845985591391541635961604819306672584743951252027809209228435299475937207479735635624822858122843310966082614654686283773325096085729649830953850524311686087790192411944094847450098889669600594323807470063443195619772872685742907859211940930022035004326131524349829282806036385215306503913840006064775536537824734193307767705488038628907406695677240506597517235700584277306348613396163807935790386685799261874633212424901199771180904700267710277413041216144136125175275002065834729641702260942872006175129217362656040550737436814298818211784196265634869525570020730456142545883871500856138427399917565191390356482832995122595057805742558440738980932504590430591353402878241081804381395697415202752514787415717376847421310683166850074240514000970198124525552992110491494959811564957638432351851345954697652539575840311594619607548304049115436788486049551592359622937034626930624395555498182823036469144759306304913912041069524064764811276814538744678437537068961081290429481249010423503973527846440454763107288629526682269832072342361244647403776176714705977542512969599958464472480780139678906731540311357508349154737314208247409408468555657723001537579030054409765824955488108016783141817328882877747067796299367693088339168815190725367389598774506956290738550459777727173633608320823712378807289322433121446942001091472191602161172256075337788079762314810212040904234827801889370460124681540923500088684874839483139763853678622517862624671649567935377031764147148130430106001379468485454945523810993626395402321187530720737491181692229741671491288592474304998081622904923589347595980484334868118343964102652681035731965604163615434660915241235245067092276674672996858797686164678053116789216188216315516273894398351427495306932093098034918274945065748919203111639817802869482329961922063780124060814446751065209953664562503854200813603675170881080214548199405172445062409032443508789632242854169002044630441462234877853922700472377327165391480086517274102612475546820792560440529270513560451595397344268598995684467010089501967956732228083944528700544840511374130596066819719487711474897452223303638292292396375689600674564025045364813334436474529139232006965747640200745188440089949613687550809376047811296638726990936002792196039990600727043409372040513321955904904181207526667824297279793006786986247763206653725695887292921857848499539136747046581584720243735847599050474969681038391503192995652549759449185604163458751524701964383439701105598272599445898455208834871617116251463109062784276667051569019264364364675038967744538820124959658320614682565944699961549867066662864612299417514681357153617899469392014069925940285036215067507198144153827461066858183207818005599896111641658232209320222244776632237558406031753494332188972356426998967730433064436192585061541637371070264583703694763560013836382709558413668629573731050782825731581389721423625181646404931393174543670404899301627320358954073471905954224146884948342524384197705467949668270754609349774178603333312713734376053608754554543523656262907243924305059858639948893177071614867491702123888870394546356843307477231960504120280736467654282869180543835425597902280297472440381605338659438081207786349357930496774874413953051141169699188045608719176279416039104713318475686033745540855121381990518123987931621900979844819455961272787489779880608262000331151655522255512979302197843402709039748595270994940615666413703343645136468615331862240513809100228030258397756706818870162333248494707964795030936359173974237050638087573086667029355591501339304026336659500623486333468696256515284530055841575313686264090550855306237255458245531884092737979722321051638398678786405631288441872740361335407293837893940470816815872920527328169312957997113561895162852724143829528174692421896872957512200624378557089055862377267220726743182345806802812366918295708152969795230014319786713893984592089874379807934315438229563616418998594592048089397109919484222439825567826442609667672770210710106444436236354965874607160864183021577143464967298671150054025933114770792856169181104115351464995976607701182089974878906575912269444978921588985737979239403879559869255247347099916795504240646675116015578210370772492103210909420944447960337752593611756494357422131561568528511567435953510683118903939303167029722828064532082953437520578020267884257484556647198527067643459910573453252317808706414250497565742572031724125194143672878721528003290917073781830331929536217702762060842403680372911098750485040883183344437517216206335628180033953959438811731455994271948096476330994472120390537021086772557872004381210183145376338943548520918469470935380098926892962287379297706301462266759745051012031449424433617888749954259646972288193513550104808682170978778267186761303498886309610626200439158006911533280578556401941695992988970867568169875994667775274085186771149939147380721023871678134574802036471000688592121619667401208677961656320611937652982774131517860472927404543110092091578541269819208455283751041867715137800684221268252829752847890560654835504102542868819386840391282081210209651013385044240652689564020416029309293104725876551392090929564542968650983239724819306808378158777105239660291736006961943885648134822569405729044155116849728384180717470566869232630866759288463668998723449345231466882892801369343180858080767601485929489008779508977547471448543632415540766600234139993551775140623626864921589489005779171146497907269346432520131407006075022809358813850052391566156387857170672464546004740988782514947148029258933240539700828277752870346993317959332461131514164083676729062272976849408783295135642334256620623063555586410242330791671885460330783985210890158117697978039544353173703845650838074437370626944460149876508813801037895564187723068168913682068668699117037784002693472691759723440360552021160809046412222103277180808756437848016385496462400565747150760990008179052517640447045018388716438581640694931071731313337262421718956992204213585277012005020616060146886003451487135605499653624216701205543400361877421420358023618271040746652567790540936121596738518188015615498677540690139990853422044795163471859792315851751837206309252379881602945989528528226780255659684619820570630988725912467284532974737476818755157017949730665249133234294825613238032488683887309440955786092128294356095162284645247057430408741616250945152263160777456033451035715983079466125354271404449172314910099945384030460408888626557336053837087227323228999710952106780523871196575065462471258267470591501166901052411630316659714770682879623510703047723980650007555749616553936006034573939832436531878312750828802001715984572417379659277702039297170780780704619458328200902136696318498752181739359145080646510312402714785701043930142002307012028595641610715501086162357211562814863573663815992388762989959748626442501342511542493715486317044323183144405145234795202295810839023395470075195291684929687390158941765396619871277332781982635741457756251590503336125693617587895598626810459808738782218905674247491600547401604636327643092123708618784018963982953212477228462229736569147517884195008041710644856690371426698691297894728719395582569308238375841136970361251797605680333232171733815194665993953729995003320208812773173626558051161982657095224996724148573736759712576825055385570888414805823067585183925652967787770890070084674502057668740402622150684773873283804718452825907986133174100170765784940498259868867827507638431930835807218582755835598660180921207022398495343744561843209146905199499149581108197347441842302547467132462158094382347668181041699619318768508600378819857405080828673309781767874540304330998224846541957355170648775810983784281175415476400954085603204255133377229996464082075707227952147503868736307966051390803436731856111418999423640064578373608816777993064789382610792381578946992452003326679634892170840745659547086769571488663225744651410681168513885991880926302290479110706070768757494427590577897817436099860221597179322140734456645974572046582573683009941282457528151654237933847055490572306468356116233899743653894575070625773376844238839689982908562564158656588261345216352604526876676574588343797654625588527638791756029210950801250033764202744524543621208992819061832431948474527740748261308351136407777881748126505044602699803692822237693227908021204326761217750933495076363688309004324579672335438896970983374220082381175286103084516199725370133516195222810061798169187146756409853856385144211468599743065385578643510767712338634359112205975423542122342950351742277212432544797359360316931530779130340319398329080481957946933952293718556437438298763372995725501683619939116115543697029478452747381649780070919252418801751347160760165123577282354807083062768684192504934469444869944636842637197356678410881302348152115119029323958998499828700880179523858992829836797052982549214088103867956332671219354700609878051673137776825771824012095773949574826418322426446597749379796598060887249339982239287733731821102309354447667015088197127217303139237866282633814053051713059212216728817812317061991853298762227871364404914108955693180780730024637528160605335355137133166262962836841952300404011513966041959594207670995658861907714782773244596835392989891764471869435741033382967799268044447308927857144442293492913601366680333056417144657305325173234354418858338637814426268565287915205807121171654610739157617240061586983803192215923181583577868896314414451139873820564871312040199805110889070258059414943139799687862975758563043724100924292743817542082661675931348667928726612734710805245609340776813773111998556162015183678658453897844727025668217079227589338202774539760118653521169425736866857100435431225539270876420296282537109439304776242815671622851778355542199082173633009426601863319551736087716525185430261048342936405686465275693416016586487610575572070102895137603234158368223029175994523334211683867769851525739454414994229796163773043117938345530133038470497575135295798588770867592354597227452186637100007014445705171676918582401466222333894077051319638487938555769779817464211401016814164308180774314878210696973316743562395022979607151753497193949054500742667040897140507912694068049520671237827600422950143638519356426346040193341949513201632044780893040210005304952657420046088672822421329890427304244963316007086032949476827293139412048226327567207145016108279758543958572257876228755348380997551423112854978315758827646371267136350532359023159164798932393179637841940430352548894526385766777107486220723743162073643422845443564547730819158253738427660491050739026208039522910827781685353279538780178885706553674574381369683813927338722894571323260813709718999388324050386990323479028062745596195010258808738817669164724845259311408655468694919536782143266219744647942718667056507213558520726875065460314199442902101014401313223546112365631837319200367637059461556446914698601756246012831063761658382909294288231149581030601663716072520222400019715076180353757595401465781897799738407989324602435863274169736441820612413754485624163586566640835266266769287858478531376874466682020862230278191840648453866194312578614465968198880372345662150005203981644607806794695793535811763968584534418611942361403201285259020588709883691320236397874778085253704284653070996492670412609457321714865581667566708551650003567135304229957251761278978109411423627348930616238126656151357272798715178908988225715692339002231479511322165221802173858863248482394664951092604600916849174624448508495478646361606508079665235066695361313594800512018932429451288675183678947864251709628420829625421775801246486655164151919421408127240723913134715295647621546885682508793283489678438394120880411912427734010714196748961346606732647740772832451857625438981948572925756946232009781184494580492045998067291717859601657530339538288543082788373353338756710204564248130310225884979005909157841457812738756894456727742913297517169130358682290570609707998412520372565998040743558060205095271485681327745254400273127997700052545927005372664099628260470555584870233827846138201609649099116502395993799408607421246866652085237181535472704328062654887993012959308420702495829962671775585157981531827383679593237377400911128448753277311736081927846968619536603599056704607803634442485394310500185707974553897079020901852484159860503380776765649364617013335985552125698636090713536671547184011100889131345648129479664960927615145246849275012353385869620927879395776820795517905511453424143942272827348249106297270591300056487432909070028947865662533085861424803010698241781451691972473931725666627839947517594805668651853495111003097512954728937073488871353962807881920465009741595511238795899086008063161708529466376651972751025522336328623939147216034146120007890352931235156828552815058812161831755874417098623229332409993775019506682587213529249368072960843109546829961482358733168803800415072764119891928311957647923269433136225910257408367676278638675111779267210013674102298365343883154770354863343719091158522813639782960935433859251356204938985484378186968059313932753291063580309226028481373937971838380054189967802917360210928997947092628182978846409748266463069733846673039238160873544045934581390827395388129379187611384290739408127349509833578889241875699110367188362303946394498111665824454435001219566754214367452956924493631338950565966589456182170118418949805644148558704007939878162668636415588180901650375875258315876342773954825706549673879221347830680564669549030646045214613887165872286231240401287522234278013757520403454787680903042148154264981476470921493829853235756450015894718915091921682226215220133310333340525283747844594687592028102886213381115362192157978117537092961203882678367007923085077533610632824667134866045828769646022474117237385463401401785172228343458924860449275689639751044527847275872711059051382794996060360560097886372217281662270211282856874113429304538875964374738189109504204031345065388245358780660079908045382979632239437373582458271394068238783373100882295275844269858908944336229349966623136669710324200472997918514195602195531832267431083014883249338183851947035926137819081194816475259124610858682217849796256456561159028126560456917713962617531823872193592869583655789243899566161389445954575223317266192229834760204862870135417044672446417396166477516161600241184746132305217545707449425473093788446008357665438116312274552737082535238649669633373986489677231195782371826888749703283963233701417556666376796009999263135694956716212275421707675909598745620305846350859005852736792666847932530091474625162595927069769762706045309609579019200242583575910227819562106866888464340751476411724904019879451825783519634195511739885111836719054264604143846114051463753188194716500537672298703679683185298512201064842928297892776368936542757499274348719764948078747943671303014847876401485312871705119646923711963575002748013691916569433323836776483594700415284562610878760001913948723163147682582814665093168788578523261955033728794734825289694367378956737834090883022386440448177294049537717152878655038004188753766265378528816143719240536874017470233393817417158534989398304040606178421419735988134156852971082445152380958518312794574391767607522617909156429860895051978547966034966271405020286329007914082173772222442436884094841280730908751799604141089258508847691561913474245512127158393019855310466947340520288404178602769253445233722604176767540196230140944936546951254249979033978884357124452570196935352715588285999321177771850235858407073863098994830187845606148089598456855776898502803658991599038399220095749838344059705081625370435688046962600645737652857697830184689655617950354459851826157931297623168128815686805406611046261778133753620538828432934576158235761496691474484212230026638381161377199062455623024650504260187019752369940136934524574104340851264115978245956095226509580623829058934436572566575147632034435009410077046183150586970636144593453915478676182648339788726349866232645303250834661177567772108409805668238412422036576545181266272419721395647031470702640912758755376532704067059642202541415283182584377269133805862802872495188930798888212168490363425527781983936791136406942180480729562221066514640034858445197250290402145416878938750989245893120809233134672500527921716450886909140073528223331273732924230343269687518678087238363282426671295781442407421401665341594091992516194836545868549706829089790648824724965035204105135135098049390093062025432589264967056470985953357651320898769753733870113860251154766878691965892262168940670311598434182949390462318595915407067058596556139734863324692535452695317246386024142193002422915967739820221628792098653823113822154544406987686003613422855217227788280846117508231889524552778625980716766969658330279394043279887219289118557377674342867926142109295386038813757111276548475811819927023350032546641141116970178067751882982478252736400217166562941888596259095840398327203493111995663591851553135683857214358970482528566723629767943950123790847413414496769425914066610730033356317946619150441802032354080733430842518595379255651392178012421800081619114453125267012710512077319373117011568093561662442898016212518579434899717526242376988625363004554569781138004195200682411014719357443715991531064370471918204176402935036571804119873732371927791987885799546112339809301884495410252848215769791459990888321860349477223551191637946878297801889680473626930209300142256291563637640915220523817305856723076769873881698393725612480900364934359301124695445147340112281818657884117516777210329695402053113365372694737875966389524816413989426036705582574793205303773389513109980300125572462542446909283415549873205695323929626851289590785183914352352153782197778224644681115910815393086981125518283289814816882001259405282006402741284466276664448145146259904128520010427879724368800024197790457667335240929893769806715624071157081229469660154419662927422997259470953917391044603058035362104473667870758193517934112871660235945633034236706838011483239261606199040783190418238379544388463302349397223543184994596537939467319382722927956299500846670301787933995861918972106867276185448958102128454011142344032792671290668949035964631150866615991962829771519733093390106947618905300122534639836323842687158543303651841962651516507408293665588978350406562929026312605269510868750824159575835345334211369253399710131671307023128280550526099951570993880698002895069438748777167775385392227105826550800811583878856724302536732941170733127379982182181458613753325915398224479874231581738395470429193730200667446837471072781589137230043614304478948013795718440593024601439651403009744164229878590863843169706743130886225073046856651462492834528076060958764544308811914281234935965986655083009850257523447952355956510545453278871461345570191959538625950139458086079873144329039225921470316348733432746941327037684380139220994524977631806037125897823253030211438877884676967517761463182079711534407574660745773513435814257519692871547806771014883285351733405288090951631653766595184836610183111413694996143387041527986732119766979732333491356362939521433381555568982378407369733908894191717812217841667060729631088024569515497654687365780917961281849363993354145992971802264047921241050789715147869347064116463443932885755446306655121597893697131223400078665538788563844297782169828526239514696372213009029405553682428481829187978078229306851183530352679569569200637150243169631716433513365401334206118617646216737493471752373090009347243785648834780473413307843703052260622078439035938278997549802392488502746942509181551019293930335526251984050923053172404311344525087791415028002140651877290157232816373957480711473513734219558334686433181068105639639755155889983817034339934794603078657918881418527134895786224459802902087381459993702243977544974312143537014679759645800596526402465828487729390017493549623998192194911487830076343952367696557799994012101726147706463979354889565431969734962022337892427328313125476560583930827417794148709715495976440041877925017155794776066158530880676931921853280140622155574460286748162755110329125477230705733555302310854967545663779626878255084896187961365132581658679030372657240983886808353684698270954552131518154493323104557166665637280474343102842415723085442196321855161501395257098677294967830790259676959159299570623079644037468612359544336934947298209964761291681299817498377496929751800885134419390890149406193613013869726779583332426818807398531253825023223933372883790043343170915094431501765129248712967253628863000088201198756381969307007696394096907874687106737724307195828844082200234167225175161762746940698464033190481236736012742388326814637012133246046219017290264217759703280534114292632231796158232090495562369369725381444421319583821560456894748156985648786356496410335616732050817612341186457196896082313907485277387352284457262718559426871837259123675104859980043458895107662102982730806691755005679109088465132990511608395152572325305871584844363287935729103615443234356893820957944560466204607294174657257676603956602431996059768432592319146778540709986560095809236826930806779709553809438214160477890370747752472077526239968431626023169029362032617554134042679910661251367195277376710623067027545935520601012085693132564649985528609563378622217846298511182458116323798172146254275997302960087108189566549538945012062773726719489763980314755681902892763971148515035072639288990623153829154249777949337614938116084736886193054010120964080040650362052769911845342582459271135324497750297490603465450282173913375497480466051516738920771156410240458427204740424234407767054836996100346211171878245218043500486331401145075752646975850423080576376994605294934418241702588383882920915815350875857325449153993447778904003521383261338297199418140488984569428224845895275675580702526277347155259374508677225235480413133731911331793135010716480792134482800716012993206006225967344241888213103272783989612276775145017169449303578423023688466909988626202465286815420259948554755276960648689803289707733622601527495229517452686561394587476017362539290831582742269553973634913605914906645753626868517248345171479309667186122772262267752735741626598433529755991603007482422235160689185247411677203623765678972526842759502092325223767476462476915952581193546864726893544200569187581883820178731139637204679245962832092232876055792997539163284583142086770711289863013090363383632432720785840517365549582142300536622528076292130980742847042531959831613847338667906149764359685548500975479804429230587693706169363165718465160428075469027483725163916234722643436195500189045256956000207216399277061651032114782855187659173646906223833107144012585680414267670435164234697549249212715394564739108265339407233777447861875653998146729384327513091957946402251635484737105462097376146540687183119730970167863034802458660784512089188705311990905972507279690917560219699927839862462072195776230306411341887913210381560077354470342793437822665372461344756859358226295612825978956563676643985813060040347939022706671612141609185058128441030749591005125389301405470562410109651677845879962769698228274549050093078183236124077299934244363575309188844481352787926463562673490937923999059654550886277858124180232678437835289116126732659003648034308455463014572535650625016532560679746051540620777022699751141016902310419726645401193367439963129776183153968019856909668087187358154214180888131312045404071658860809794393982928044603288284892495359419081791033521270139200983452001689807234201662058608934445958413072744867413692953898463944265208111290047799857964840122002391015084409016225933922707972163902010186574923769866336684704105783424309333421335489250552585260844243168631464697306659666554151845494471947470197358024243781644746339344627052934216842919506329368812737288907249706713571123147195256834842457134391474373166392298140262697590529022671716317988223079494419899056074481411829671193457268444428652360422268266107566137549656084521935646211405919608819126172366301070072734700700102712765270200631011644168906639605467564822728209888457790243999598261479348150988048637489723941953334023710076224782620629764950114736716491143739272174670269692287332822654127307949566040768472444279530182464365084974290848012667344611652525966430428962598311203643868052493797563133649129516743517981267944368616712603029822692715223162035363512761169183064993903221714211211561572522790091122838801511411745725032335727174471825998466913558709728821722290597283402891136941593077120256461584602500423089419814226574893484052779379846284879882597490549383716876200699212453852560211238917714607176926134034864656226622741109018278702449227728246426982559180992621666037618369080360256464420892985158578407324178211511608499016602393669054520698944516932000118343374350975617955933742420472119870769927151465810259603287182031761574615772108968691940257919335103752436253059892132364229753995242512828498417861584808061502365774831584816550732214734952893260986695619974506664343248577965604148378990093878232302840439620194170530878121789335449484278897855946751576777213284288409916567612892771610641112350976225814034218985732095526445624965142063360790510008245529746239698859647069709418189347119255872318968567922650339141651016238585841781480554742934733391468921611459061051894844028312903035282730561179723802544165071179161280511726746024824590448118954773696173703992827660839318410074973136848997801387167150513294047155333332716214037005256437250711884918155006805966354225701711640127217645245064634426608853171986839724420349288161775194715118766849875154607971814654995470454941539863235098988974790825694716733102489999024112471887719969461266853758561987794964590160315480358858725430363259796495055446812129641126566538963370966094303069107637916179814318971165021307028542822475458018809410604835169928341024832469369058718462060419079582066908400467997842638654792223380247871833637856398698173537923694574601682089729439679294901632102967154716813033449849536242703912255132973084661028958557827154524924322818520788141116740449332504296766435335263064307935800920664321877827924003671694378556802558902937847529548641525028722663692349360820012809188239020793280084786304062404974295303828349476635473068584941649808811816953420790292245454799750491317090215545717683015750842758234573212817963424386672882937232531123790154154354502899130519993498314670688236394391025394444029276133056548233600249976051116840713506355297066028794406741944909933385319161840882412200325622855046374671260969564107697166551927708757634473182557019484666618223103735729275108131060095096715360748180178585699081327076364569703513998717835863615365808310797463310916657129906532979193108409980324268077365997470163770156131432361991625464059052790191913242169142486806614748513659322887080202405879340352583806162848319963866071624901897094028490981782179818334416874965769301384189491916750761224398168791610858641050360659339205200588266414941094065900267363100915084429929237911454387814859771634561810727161862295301590506081746854708459490010548289738512197188113569864384196976382534865072344784271259538619224890618741416391178571668056273199861530654507129875605229670441396744237611496036508188895922062091468295192115261230721475540184892260918386886283975825677265021138256111679384617593480977647440109532437724489173360789610889693387125518503188132867991725506099377050798671719767040215370647223338207757441585908609847077243598821238298809863446803655725303184522305463242437125124194134120439020250186002347933843907353040824664373166904444900851513271720816817883126084755523556602560726216994468595443845299458946505708564284715762754166751245392931968498670988911117988154980320801385038056450944491290589100080390932701493892147589054356591472665191292667339895812824250571120020603696702019137633024669023234911340025131401973675313872295440887994139070782545540579135847794575959535274081083053957013423676136493249584027673364666115062688278356109649086491350670857543854025697431430244419135248011237537984601609266639984291803545027609264100101506423241969912018082604007833454429855657036803500864867782471534101522052224884349474053804746361584862605271183625855626188174712037733150645557560169157043650932655333443680883975403615683749808083463894068885224671529087149795487206727019086509422384851968424522125863477057971272979243524969583219523664468442233407945093764121776389415405340921359677174566733809519960183129020372994484677208783551001749982064528657721911188493774415342817305941764369525245799400026324262247292864670076296585340322246148802082592567485302741109492019795183781432774043199649754676743639037433472288038797369192147564644612328132443528289951409742463274277100172101319904693045520503778509741361339130712587873831336087712333803178096896139050127876773930288872939291882082676283352455964204054037918953154782827324970729054641870856094341634901235670488161088857328302984527895993223407782357518493333103888657801218315765218092607384326683815920416336351264820313821651055517603289472332524422261691136976010494907809529728022175731316345073220955472020139585907236310795763489561700118970940139196212196953918951248808681118460157187270237304747642870006614331187660656354258403017931987268099488719219155900525900121413823949401185527804093081597922589528343066257166497941774154968801841210183205217390292794487286746174614903572687908932989779082014806982661400052411196898265793835096132215985696973058245053404881992199259666211322283816606760421461847021556483416547742419366158164932893707698517189352479352066106556866065801334784005782143652897667134532524910022447316051765178285568489903850460986274588272250576683888917305891761435084145862640020805974411681281346112526673112897330325883691903997520160358607977506875928810792437305216218263908364643511151354060309277841581668312312172715456117750830801402417959540912460251690072651772936674160959788999084123768185576966328404022647862593918084004235210624369237350054359642039330798753931704897810817811948732215083830967733730194150750780410054096027698087931512140451751648924854405373662128473344410943718687986680311516551363958118336537967592874571836029410684737141780776403594007544556584430310742089067805587586715603666782923920501625447407202131555786562903866944952401549717501558688943108558225637009710839171609809626374484979889854184944411310404230840182624602649909875434122621997408504578593067393299177203064806514320051998204447161895888769928891576310792938841008638007282079091722670572680941687174268316623512851630965987793450504065896120237760529590781502300618159961875712817045868203825626282777120047212950627081194735868007311673181434874953746963566450570469774351394173359047220528690802590584532255122395019955960478566114879518148689632351143734853784282770986287063949996769126251528209034324580602507528490290479160318803147828287470875383453037511632223479342974890051437481961072921202397047910600186158843080026929800111472391418658943562641244845916394979215122839073958553006499674358729090386493605205279919417571077555579295268580512720924577136035741309462491369180607254506731992981704609444780908376830555490675019918622319444917561771977811512372462519798752210982379570272147265506625101669009893788499349484323515727299012394582644894116119103451237236915408117330835704906407065460536078366342517215792582233272257628371136328094534304555666657986583653819272334772480719242984198581647782443592784152518730137321005975055876772025578110726083593995744189209438770673896873744997583374674761841718264790973202779757088994455305031883949420950378324941131595858537030717509934272953091512612012160425486812742916822452162896542576270469732281828366530334808489259443491053342595481831559644470721341627315312890105499757287634944340488203105522705427355588027809642590400395746706002231099730717972280232636360554983569856593957570323852322595596156665361438841696166516892557496222992267890389625889677360319305668031950149695910406638490987241727365521621555238461448926669818923530241550284571323063445483841856704024300371081103789718361273586073991119805746246951493102154204143467983611627530835753569291527688784614507343725139403760662299597169193355766109969416070481737091172805636267292016642761524214788882168168151752566679179601595508720612506810380485874811786033974262243184838778748933726119319099694143013329710360123452503329744634325248528801213202782447434341746506566920815896752967465726514279201324485657130197635817234722406982958363381797308985111470863923908023865617184664455529646573272996769724734974066481870235088243763899839754792529807975703758904927531574982898244077370564668422626457158548511305489877293660678275741852360406413754116671739545873024835786533384587507818210095875910127170772510589592525846331668640560615831766853643950611743063131064465525256758895795785600534293880681047471013430167451449294913266839373451217848976849457691711000750427341532510302749947937087750010178640478324116616281547675034199852354902746977501135900235282159401834647235682508719900623874804482995488892862526304113012600107854479841471831905711010650561459693604413358983732684845677364279516374541182482278334670744048491405175415639933408417373514793143215032522750693589107488899260119132258810704910185375314113653764481550209698667300657336113783387286672588206860005939113721400977695078968319011528806103215617244505398911585156361601999209338747709566035559825281459832007544253977344642571280025919558678925811508313930552052834323009488651918914944741550057435128869106840790318500113817753291613692551545470142499872509477217829877149254704423054536839405612233455240207984796203025979885629847365164885750339319062982381538501925652703651253395340844060332093045562273655773235049177274168080338330870872807893470113298527345696233042977976281716358512633137689462315561231270153830802627117216352295714460009304141403877889573009421248481961945547048642694367137572456559299189365312666510954497301084517267505734221560809536579818066120861840768054296862924151872367100250408967099280696053658062884664963532223982124850789115334501369314621642216762562262833275983606602275640817941698772281639829668948584603813723038207904662268184091346906227880977708543751342354040506116981755146263013614325229061378912453673398254895912053529854822343904207497346172266298127998927616326135848161147976007015207191200186958324462131272168654230497694781412499427336769542340528609235054423250513871557967653170475030906962708934430180687692404565538493136097950253886456293207831517862330167781761343159076615185978028628829250082428025985735563857980453325955229059430858213055362664726996147631305905637676706884073939256505317714067865554692393874072428498413828934004777638466700058748006433252894016159898172466365419459755993699659075988991262789644287127063402306218336416080421624412282180131385877366033010554532193284624472179000219279243482426853417024035370743006831896979991540438289668708349478316951137705206048117530410392713677552073609147448742678138098955748839641978978899703215639968963391602365813617153150646103974708326024135407505549544422891035536211159153986389672172838145428069119766615787163886233242233567172947619968147692550791351632117394914429082914754325174929848608381862567201107014129230551132588639750486738037907671571950965009020372575861593948847189473039021350825509922684916052042966515862326449243574579659129700867904015891877482358032039593466272605971210104296011711110020867064552834582162909566477620302254017473253768223196054315599879882873130966548616747658863949359720427689179839729833130977104987665323370738912162801711592597184690959339477513481056886237115238944253023280848581854303198468755202327107173675282129311776201798904576792108581524647296159138797748328496059290236546512882126651707520066112909791105966711331689618432815555027512567637649068177575092521538281338947148849984714800798537224609696820199949247296135900471024995351325344404557677417872220113800495303017751049274921959969858879552862746698206436087784462908660926360480128911036763500677130926226279696474721591053286556516393049995307457659452527219702960034479394520029562283590709605439373741531086511211404917153451805132775437780164124184036372268816259379051313763125719963903348362768915040976905703270916300572830500337268005576899724726147477038177314771821184184805036065082883167543752630018900460950281171699005430056757323339858930981380317121994559200854598251358530845366559091284565778065138513873587236401307734405718063244115178598623324460499712835818020587659069197278078965400568066391366073701352585974546195414170807463996195220510877824843586666732022641612052488826185065637220712144165922814298576575775120565177750633549325059224219459193128190106653930988305598507333438012932183422464227662959240925406496303351030868547972442297635774487837743361576115724414050668635562323831309930358702401173775464414917795421411804298433025773609616982131291046224702553455663033816558116559980016927316364566163484774673404829586280892578154971343534357490886698974681999982890837472076059676231746327543544098593015781361207081227114607744158653038692102950772610532840978976455325143092354953678014627163972721588803781070533716017770457094723831993985686465605236363619177115033680804008474947652112532131728131334588009778046111111425785264438543234984391784152371723386509178539052714282146682280891159939467462141916672167221524285377530029645370249475755674065946429446390073739147744057476436317190403124581106033097194622359849642633821537625623608166833048739636486887206735315408497820185700520231372722402988803470996871428501039918417372272092160715393934715386246319479582203682745365275722722643412538949508503317337932428370568182302244922958185548654202910027354040136545749699600850645295156869116599694353279132945413755782447012023513800361406628971745374155226966669143901848302984679104736398613772041164418294801422213471736268622741542095541391091459987818707706855965922512550687370921489941430346903035139653702856775658667990522399468864137796977136688575431662163933040071934521225516760006634723733804922774738956958297777343903652233804540177978979018136840431975663114810589072374502074652584151942522337271566718769028756111970311401777488333451765072642575747238782580819011353929642211043525712056781552260171726207464219659202520262097729761114346711638896199625141299501761675355898624469706162493680966657313556526966341027576532724120410798211583643471143803335833620458029995559300611658554741705582848513619718936796830176055219843753684846277965220439184448436782472406461997467905523770254126820369780504821078973518214855823290057123086684563598582903335597281908762267219625171492582024677121434358715076896588305893402310469880172688737590716693552775836021650838197277147681272376093292792242096319362562334765179697266650945136476371949316804544124206833952205962440862439160038866611608753726445394628207014216500955941277980597347204242002012166911835689273519570055656261485326688550505630242117390032058789018169225616858692180118230334995751284973423448143972393206936826194837191112483654834700819253772280062604172809427648796073497733452312380649697550114215512975035951511452717053820640939429077771007619921862929754270800007266420691732014761910748346068943464490263865035935371327480843481758409150749107828613397020639911739481818367415605089696319807437482181364069908462028428943779484409171332395854938321791957070607428638716695284248008698099862006374560843505167834368666270048852112097704004886605275890907880764215980329174862879477597387752031565091611130157486558545918502858601338689751416175187132204925527319089412229537459863958363176144186403094661210399613548666814517863806100181516463354965117982473599343838490468132593411967153460337137262116825059599877874105919400230521400040503343480536006837234900010645747039115368190877442971655657795244207675640621826527782251768868511729570793257988749976048878797648502749575933780002304692095569417681447538466429618717106224003594891283220654502756396122367236443527096736281570580659617807572614640434397701357569609417788336018125807852454068210539860531511559844567903098049640391020989898168319893299794318088720936673742518834402578437246964518064212906352789253361461707481152472017094092258258401656765776680942042993073636144121386360515947711765987817097567954737976283405833534621224350961887177402381485885289733323640828655912449759015850841072326729431192393121337809762198486217499643082344492732723429883788333415588653859131831971618992741011292745960907376047615991164467918102399319772895837790566024230900623354360463052157531455640085560792961637567826173501817410362906729634173538353953836506673081146423989372241423261745726260105424383708170167876943694081722700925678460779684894230955784376521151875848256066237135546537114685954204506200158121237869911146344636338984397421881313973279016294079541130196492292532895517633318161081542974967243124800913990155108746128002998282813596018758316675607465238590879912203050890304030675306315428273336483641889715567559721926302208090835483719218883558602580662606328644425833920063607889449092777566860576046554298657073105501029242126863856621769042016276170606486585390795833107689324908126519613892425047340773230897897143654084876956780456287564545080871281202842092893711212592068363054298605989166853598387236935114627232787932410077833659043340485721398190292647721212814496209104399503414601259510488645668304660845526485879965592606017202946565329500402849965987383938373122688376220194702286667550702980099377884756111787913664016711572114137955660821260013173404226227076432372050010269571997182787115725319401813132632890697841765946053667909511971042334493581823886338960313674666555862319048535809092608175980812096587989062845898338798207825043885086651371152051086762331043297171165479359300321137970043446478337629236640326177993610238578151208794472516738870837208540381259555544482325779642649287179499894627224411078721336129572076759226135880953572568106881890488817158309404495277525841724399162336457085443773368766864265041581963553218810320188826474482132870806619829725955760548840538658645941611897048708229717214285834122994250157206005015425119185239210885615438432703162776467518899902291507041769538817470319096338986707006439903570952594790155656042080445067399361387036614487227348093447286095655452924462836233823443559722640368398593062795762667839602577921717767332817427308159000578577353134966920008979439907715120561436485296644598789039977080616713492730827245756640615645600257504491652683056124097310663615221497014038770728782767099605309395577109981659504970505620914294243069508418111332624092296212600417547911765006741002552817399174288320729039520883231509822362161554871175726294465508161745590949602465548611928455502885405908104793480625995006959044563484705404103281144468543065409433973702199874189770360390685143667054714132565125087579124374138993966028197292743307870724927268406759416044909050563512213470484769484860884773233578411033982215499331846027173051689603501773712188555301452297693596028491416296176031247041950249668182568195316812103590984124617566879516709928967463196924781244582867377397967516343114993093674196214401905461777705572108633625538619914144438832163400283954308989099384639240919944872028680592811455975040983352441613638462459810687270289150532599145725544098403650414004280576143373714585576798919500269101072934291300095445811511031254533117988734385490984499659176534173892950290319639165822967691647485233344074010972084506137183633411132216383379440583713985573824010606483525016147365074605577485353427251915474774551597090510114303484382467441134780663144452481121035581328259134631503109358968289511285994017869349903518218297684984598833768778788085901462105144753922856448327489171022214812286620183587919732177299789039561139578069745364448379463510527982030250889045896883446930816025815773288232249504901838824486584465670105568022774827598230988398871065246953025338178630277570644018504733009005717980613476965809588167780330282335447587241980098581646608216729446385675558997341153960070455598349353496899335815987780896799288117393990905431662904913508907284937429980798458941642761860466769428343096773318866914065587706450529875262216798158864298863965903215133665108050138459934828566247032618490990207465924218068253552682694661972821096451397128787767496452145077597436135353678850233295327990930714571389825042540343132369788354439047875315148713962610389147216372809935596284690708720282519550467984178580780694857547549008731181302469859122984315131724228749023264264928497444843306564894614202760386610289269650810141495649462761948006403811178809720356147120485886297566527106644030175789201927666115693909118330479678119017852229906050267232950347144751061369784968894417970295585645714621918540252771434837151951047228819936514918611409917452149266939692432028067994632666383403925507696200541930285971775615911565843589669104232921236726600312568034053218760216407669479004790833960658350225679643797109267729791539154640778526467894685337715711319934458149059842662416557171256545975413781081304786270314513690505507934715218693948002037847297244115556244535165612211046125721532634152424525496246870225650702368023734248994434540896852641303394898971086746630703062436041498075023099160813651582019428098208283226549375392787487880038958719293344222239630058786286138874208887542646481841222298453651368613330504568637444671675109528635926348006397571160126771797916262330860411139936301490001798548584520805707745704557712937647356186464122882131896951094142353907758704891156889026209135806310539300408676441929293466144145534535520984247954010187696954247157381664971118606344016551191350000745337408234363447573230739727261150349796409493288944649156121341125545468453068414872622855047160017703609842030690652124622903320520339175739586966646506246951068751332920034550541558321682705650802247006036035519868487237882442098392957282542042118848210555969755680407409657736377663726853627274778139052401669032342298515830757042916070438321020914814701236146235435861915300135634168234096537743094482106980732325365243730713034774068188313802363354517078611916935835748137450738714647846246655480534308560530781450362535051968179313130251687689513551645665559057789172976326605444026423104483921754987722743930712001308649963158011860060557240904386760961499497914056243124257460392396068839651287525652821210023303823310091523365423727630771301543386292580501812800451456469917800048446850225728724358936859314613359501395840041656229780280652709933665603085074720882118435238777928480178755744018691044505828854824940920675777255301998632711278664139340262410585223428916651323845942858599910030543751392777916263003997196297861048016060737592498563307772949820933738250615794120114874689254375962425657660031489302713328718698663516614964614974761371835997348171816060322985456262752204087531673038681034682314738228678169508143647571175906848538789475726606700724919211614764271470653467247400103395593657518014399087760932620701617446229848305688102140608654319319648284884896045604329506530850122604258008863243102559204038354929117838092769099052417437539840596189961738470867961268526525293092572675208806375544021941566524845071437425195820784236544998737752127793465373764988923947429464738164641273982172887085897260067999077427370227290008515162132246038259863464527438519194495250184235103978323184435641483345169309897153634232813929030611695168100216240542858661993165027392311140497962285751598179817485711269148059555312483950678944476064747367277577013682422059909632512262852398857339593046837637039993750912440857587488543665610991708097588902613072040718247360140375024957863901102818997909869154366322401954806648870541395219617281625835503289833517856819819739383490643058994977244422492933910732519266549263546987303758046464513988383182440950621635563735634813324987290707861053637960846164180480519751962893283191630767799832654875619554342027656829326947843383616184597091880820868407520778801156555519360272509375815628053854776741508222912154569460083401649256425649889555106056731487062817672207177998030613329561873010111130612996175052317366891094856197555483998090812647830249864530833372511121177658952864897857103815470919934053488806320392077333171140002059013966414820740215141155379037008692981469245377209082951266074590054771862633333401594267974929449180272047776839050799657511484152305655847330186787610635439500945936677265052652048765955006220829404865860576609840225750589082872190550174949915370632930829391000606564982871148910626981312453546378836286702948961458490714783533607294360405677627265375035328887186346564905327315718190416811760270560368646615889439615081470543490235636720264918938002041942039044775155834030401232836646389473738040482175586975594783210003232283982534557463998289457635887073833175968616992869131733922870027839459859314469980518599935884095019556216780941068123824074026305307468075521655112719752085190975592555151291547861567920541854620978010491540922636827172471565806365022049003698232097524877044397759829841669818329221671879163933774459414087510568147081657951191449315057302340368863952530460846722993801380182732191152217719970382610006897487488593344327932322368457442618490250693380370095942111956690874991759883664986444024681901905314325560617704549514449439773587850261937793867551755474618529570150813315074705366105557474330032204481261770332680275762355969719343115731893565790964595709522931171028601074184514563987665210702743247729202829059277720457905267753457799573005869612458498797022497837322079905796202521164464038433189143104847704357189714502451388970638513758041028268951015319561144777715325178360808048562521657247758483858407834790238342353198175110992364785383320482372226602417397796010289418646693897156744544832451682839864389068802202397919626577568812289589851280780408182949065907191345381791468063198620097471460397166145501411125700862048105160652851778294355807445844869473082246274569883849709140957844916397390311016587867217799087587688438087783632064104328370601683534954314247170202022803769892099438519454626817373155793100099957580300772426406560006796659847562247088653075632536475572754444405368884307562155313042266720660615345203229415335990693525245542323946877855540146348478354118794328925102570151050575033029531603773476812399548696097343205806433331331627696007136436716790704992427883646235071202189634538436677948366506279116054011118061947410121976079747190019468554508146558536902078810392028512639545663483214101548206551669001284588591778999410597509867970117478004307858007147381467936880116065323732702560956280521740684609279200546410561690631423823096632743347361991877792973908788297673258301944244333975503526146387276956887506753803896230773112183613408059198745836556267472258168650692670250159560855596294520890738305111339738839066915779301973656111028897206416938945646986433636773747751594910401826741970902278424049294653084938492971056543687494472812388935372723844262758873540773003467438942976075014892599248723873199495593388618986070029684549741127879169478452488787858843309315499092463056564915154364276590918979639889370138708941946104774957133315765190145730818061701313638456119566249420083343032928450289602048971360758002857622430100752102348414056458080211657890891100175469555505708493583620893253588465195270242267964603119135496663699710527964372269327574209980239215552660627015854196543848813566999093939296276240009955412651103128831570586960967969127258725090797769863079611859388098592138324890905531829859025426465971250614850220874209979363123890638663146413281434451900989541421088722863324103884601560423562376042350282262649452183006008367039644885873303985800201994523989012296763165310817982479023638298499243899651824882222965877696180045760808032067072084674903697301753120224339142834036404365533642625424514395292210499234768176429195949161822478794936575305061031618720366520954565485645542484633571503056352505873328810979565812688197830733932021052803932440363887435254122614317590805404381100729039473535949907238045488812781333202592281178238723296195903155836050584074183847048398637350971450288787071194944949025784313974663236328311539060011773552795166882801941892430538858919535822376609896947630846869771825079301922902183976327918316786195951587204969988278694114242262292971829053627217012729278441582723192239836502156279079514458944765518331952496496181616397013951358572557725441558716940084942409301755736465953716796221870278500201634666015618671650045098759707948275992669907607842033440261759247401577565261404795466444798710362326690261860740288765286875791745880998737716874329119542036088352027530827204276639908852336388756739932820990483974558516816030365374447449578006592511503579815929716974780915864219313116005557368462670609243091574176225100421010779109602632401466989978853527641174685549757915690148532864094030448280682517854067642622870227934777468925231938417026590137996867505953456677776927347535328112720582594209841312070136555543769323757083633522791029194844480590469630907973881352660749836488861872305962360513492362023542209378431321820736077655743707247757666586997125524144369735215388327417870086089940778082403062990618757255661698338880874741076853898869218709913437362142056807913054114022236090144207022708149721295517777826116210249139597177475489087619052140223116444358713164665774829675901935145444413209391024036305087027541010643562174490106149478711998938189937506702028296582924754980409708054433628031461357027667433029699701577207232623748044886842255543440738959661130556252114473659505462362679066680208550553903466545605582935082193077344346054453289769673276987525405462688623037390007920337486487433941917774642647461332621615097129444343019150114763637829327362003553427939710278820633452087194711919900568005567169345334931222849147206751138295672462204411150299118560044318148955954718768933436312123379598410272206931727538690151426527287114544810861589138874849625077233269085779048996438341228658546603573044349221532510559819052969806837377951797882546480130032004292219176042335894049465757821294859894426229762002644059086321224424541109452743447367226734406874279842074516959296627472214363304621830093390469654673192168189908544867783312988540520568386429052804107904519914068164840771087451532509234107439764602426385613110235570504478410914657821635627730638273139549804894805059066716645306880211300710724621102902360112699874694116501951677431007919138751243071868673419119851352926110247363619255094312629487029326424920588855566917978147691663612998162745706460590895079880778024357921884572942337863202474901863027195171843562078234639266453075455774768837909562363543424495960391204059514790136580796973523228036451991391052078346741949027286898184530419001788110218329985733052389320855061273926196740721970173560783021702731214646215139742025865801598666413293834643312644405703800983563200465772430837363027367514929860705394693278677072316661493193327855246074636630372201603655202913859133445566852204091349805706821056058924212703175373973653274037874207410427187318993059401386919101307196414471360711390381098166458143227497638752484403034581786840435701862145801396688066551021339001280347734482345884120822781088468308135569540327496285244736521292307103344379083881057878599215316644760777068429774263501640397411011850572770646380195383037485128829072707911206373314805490401533863632506396265273296065566640478851528803810795358756253299017651083056027849297858267387883403201963472941542904751923951795560551705290926053533574856745676056975874703713279767318010505727235116978309142894400094667281962012783222226118808847498892788178075817274977062148409652091793619891883490046302843645101670739670140732926917001671794620426647293425240956980936074868962572821206119125723581920530468550470373334194190614866258773299052662571407740486320106699001789946436996477659877786504548689594631083034996714953388414730996137914852197428017253231690327599679589397099399032699552893390452146758970793338800731670113794349500374990623266181774231586381728293589022550243734765384366030933722729741020993397429859985716069132507914165083029212381951150849313964157607070274887487995447339696924543352000196790606778296553136893919860470933647405360405916684973245833410466953545444963679865844298292849247112138602805498233787803488155394924506837572555300825122330515686246384556048464609561783664987052370534305264271486861837322244605673313354810330274039198346542872616249774032677686027929072912396754727882071568733616545333012340867926003639019797201252035699964370323086487706638042108647267494964696471183421066778255882312352898876267098168213106809865899619088527986327345288749466203173126691119172896492864086963998103690386364174054092574025311768147188805309093482666582662128509113022171508757601760963583184291179795614271816976192313237237154342307885207158829046211549286932711157770658212679777100181917741007376031265929382317184038557444852108631757528687967287959127939472466825650085101052363539062704104935033505248811080384085921813326400069230601460869163726516529146680545696307784096765318025342407573582171743855842805454792311560962211083890573615336607005421312208911527223058084401362922385625688614206303720394891663701950102510810986693403018907020621810744176369441383163929801119404263119948137018750485390659326586125510778818279513401269911380576918007966649115367049437062536426497889640901893818236472151925360741235162730651149495173362918762939432993110363930724206517087042228319307726264888928064549033474343046049560954147510326754458820162510651472530623122292746341798195070810692065785393782446899239267207821889313528996932328092081764900534139452739597795965261536160470294083496162476095225526697528850500040378515093738198641572346780159042530917380302935031606450113948407421527087358176925247952015896850632439279174112818701015878445922170078378538156331373158502544299541964285465568061685865731206128412375768529935816930726658025158179116862002637414786690259842999427285080945765767601823159209624655868285993748351305740185698971353379068286851391017087609983581712425789261040324222780878666208520739725180615379609785761774749625246871004779946977274114403519645912517661785004983733256250468899752896664439828997870458244924166196553480447969121436185098157382109304535404961771871179571243359344155904900398838679878772512023810996137430674826129614238534501277295629512040963429327844931623011300974599135077215360092123534502485822276785524469654699710360336518189610413794492989659431928396717073265413406441950681302888679136612201479018450911352447026880059452456708469129186326720924999912091927610074306382863625581067276178418919547916825540174384279372575227857200241765529137938046082916801448742033309587505622179550642675555098532679602167930657698229613771615697841575591943779577272434257710236111935728913157733471235732396180780900987581952138644616411619040989688797555473571259194620593777190030173004839633650251649993106819085735660670050260082078852368264807165008515935273577951101496267795025131530741159256546255057349236130128873265677981706310888178470001991992175465963135410296180491255975668603767756493860346851195069604740895617176551363197085316119773371266329761659957591954862509284751883579168905011608872619053136739748327835379842787695285527557968379197832181214362452159558169346256250453052556654898624581726997134499409101726815083496239791746752491428598401614469261170192107223457885860580443190677008972734264727971109824985620719078245714209082517762873813350170034730794840178260736461811463936112687506207734352826322632897067884077356523562230338528117663106797733432175294943323989994094476532978496477269425428007468751338144410290133672096195504421759579142295723260589876641322319584030012533650731814601875101090563022780593514819485722155690294475312238953537553547512507761826390070676565453204168813467104913977159183309581505584718195324636205003376536797848929478818729550809043247942756847629073966982898525664722817762501222194315244612751589730387416372258668987285652973013811008292935589563181016109268171410633236141361792564151200593234891667957594404069609299799010969654325577621326030574601524840339912197277418385454970935632817041216629519917137053022270205722095924554568859981622485573430344167645931071740931264650397396818523089494996896551743760008977348280614528953380944591880696140020932231220366893870476113907028816672218214543175841412309806555967679093717372309266444126026071569988439034518686495735874275633403379619296012737626751384018187534155831884279057010944378947349368227353446060006229373438087530981205152870073795970544257665920814434022303076909778093638312993912883466595977904088258969053331640395583599607539135321417152181770856931205905221767659900976113424873942199487327976417008616751069313840263812311995742076445323312353378059088185685830854664587403038678770577887955089242421305968876508961507293338586163413018763379497744455959868062311923393282974795226629516997261201958645174295160928861094243378852322686831292297330759190018058202090402029574702348574358728563573873155753732870073876422217281967661449377828149566968278204244206279555889843408193824579335028138766092770352852367922329673540280157074966322988606273635776758322247842462881964289206458662949584783285548576629203985680722220952965506316708348112973258565493568403216199706574112078943018971853771216783103728147773989483252871717346857054168313219728505047320900182509442154224275128148812002003349648664022132278412198014258154699775709875609392577800319464654040809975318395979832018867083445701271780108685590704119179851942927017027270972826936904622555823936871230094659949233735662468033944852501627686882993639480545223317201385299135411402328081734579439884821872738778609409561666428465391298795367997309649230494551762392846945551211727921459336630519950042550450677641807887839678708469239519165160710532377197246016562891625120232520515942922732672605294715202715986457110163526118895421548190547543305565139399254638948328398035034676867211630465813423175911292112569961601576822725758515852678500748225525840171459433360745238125793148811440663302591765234313874705611335787009485280810465382127732888622421754322020694036310166798240611795827937759559570837453525413736480329714989657194248666842831881193725879055658930633021366506546602363548227703178200078560934218288113343893548516122287168563652793978762609579359744964764875465142294363774224657874386218976152700474111326058848997745560401498209292367228234313559483217310241274703815754672908620406764968138818583443978618695601365076468858859266689984820437629997444083007169471163268277182146209054844112836612912015307176257568293419116004894618747302427741974865659571894428394671038422878810506327668995252808069745186596269103777654567080971527810418837431671446854152915809695168057629283723680340145629075640077147663513105783786168966625010444293798433057134328382753065371955736869584297054470708132245216051021526507488735717602171974057105299631440293327313049818405807426002936589931532797678260262871058221730778511783557432317670811799425669393554486081720721400600877726248953650998684175779353464453628710576179625488690104881251522261333050570762119815791277184973372853948506809697746947783267520356244757186539627240105268405429012567067100686964789268771514558516929516494527981055530747712094251239798712611812808631993834265054339792850402924327525152840811679947324518078162295931857416135185095816627369643683835720847208772960148892104384074177505734069631174067581703565720988120485854420430443634401048968865129529322424879977273628679476958768826397996333234984946453801543838789800040155924380559476135692027606440609268029883083071280815935772595944978050543627346485162062632568031409190947179674881441788645170228589890413047345422172417612443207841199033030459348671660632017239411266411123370223505006389944355531390690895191127496770805241775228512164077678341774856786179138825102320010704580983581278305763325553542677555648891724779762068692179915291423701974085053092444168109594738443711552021810159721636710350538361817569176905242385754925740423074211281558293352056861747122093869425758047261842221824723105238286944413200248950716606816381945519914507612293223944831557986480298336476842018125915265882139763225559287760874220865220296058246243862931453199445912538202742023596791745148121419605424246187002379861562858305446144140078339431121958219428752319558312181153797713367350492527253163539735195139476126074548867032828859464190108760597686887593787414943674056251723367859388320086335705429245504259480941447149438206037723763874224864608492099478211797046726360462569414601635632657190759713368820776891228438298371222110004750219261241463979205062727605878405268236025510246902750208517506414469925690668351453716366778128389266409342527700431336978439267558324846028682057198744723547134499437662613635636881697777177140856312048928435891152252357826295483017300130566013028331278172493435248212968436364956745386896912140696503393671369223676824145077260171502395251318594542474990368745202574362344177419073928103122967053594633041102808373696589168726154038588206534751620176447102036631408586651321078825751338303509347005420207289574956018938228587676311393712507576230327308633649511189574228073484576483627525539246076294354069051736728006296002110806872342312724396117880989597858742993239568554069601760403095960081018621110962379584702050323015319846298851442925704150781820664623010414361942483759152115586185175508958247612607800834874345432819528769375636278317952448189833970430054029589262524284237492889342876311730630850033625433071002819199100895325743041489584234232133006781026383556228719781373594231928817922978430572312313104593879156638849976131834133859423751313990839975976114779262985952317695918056196058199228343707406861021695262540409544273519029503181661821536123766511556179187647598779904442673160571822974495596398914588344631711665708047122729375183964097228057598994102377669192586553016347167471458413765922807192448443323119202123106110419758940947204996826005831313858367459846300826575321681945565958833902456870867915527477740583330184097417024419244993043990261916590358480937049500369465994507383240936256029157052162191031728323514389124217092444476265997729500316084479448697888128326921355502046103616149043252560992341536204443391206674607854069673145240712614728273556825204387053422359074200357073099266204668060564777511212272786304661794961106176879003871610161974702796298369957268413330138555867838835981504531401698128316435342479054529745647906321548095973944575243680484670842787785269407763611252647251290248440189116269871278279859313169817184185662417691281620185887570648345307929218616841258420359819886575437185684620962505732151376509859279996194361411067594301747946357902717929518874556779048889401355966896911153970411653515393244533646131915955903188665487615446570549537907184416984355583039968401821194985689886712532464035255450313185806508717013466389611116690313852512014294784445624663974742233226972347375481376814178199657002893935114275707439004832445964860927937456087778660482667340940682081718900284157983943649132884261867805065826186814446016082318031651831712621881674445671479767980736970780250309101260182325448096520774129777770230806457483510192463668069494124879140598222704341535391038748541373394897156480414141493539596377650384921969937732414831905949551432076888953296398171912486310974208619994401572757777355716736284689314325439874864169228792919795364668500313995593261483664595842640709951602865691715543272684100827924712802110048692561385217142710593921280261908600465079084912145233472640681259572700213824030672488667300551967669607013089808749920870261277481630236310213564834684313284083526661731799804864630067099507193818182309473628539749713406245592830560289698358660146456256361511975932393373897041340327865537703892759943138091789731945383880337236009400776013501077098306525802327978821916522836375832967151162386718676403893356723922009802482098676031238645976138355894128056428327392581914342557521126980389620615910571872373691945919536044736622529164381095076947125793363432656526824604864909917039832806444414389125339139696925833369306813680855473879397159052967185507130172846264060467936211456175534087416933441163145681124871736472977526014312898258420534361844772299871289618514511830182282614553764721849296451923596195340354743236890604867336970880578218953346782156957549002882486559655685352974364082845548252356433959279518240721978628661160846174773048317046547325577147418847621096531443530295728386058844897328434770364854357324452819397681366853095098143852410559068402176564203460650764094493140947916682255934475509744273767709553044071304090351636730901757587083656761603183176029841568102116273243737160998562640318210436949996987131891742867413990979974198561810081093947289975201022729825472802594531717147404725604683133636692619692764801960895253609896654175903880803628754855880964354415508551378486888640235345519384591039203620542792771088857211670733507879907373119430069311812446423335572272541160464242943512187614131808505132834775134140899543532664069883149118050894483198771789259210186695375669520609609213421006008495114860340472511010487051771916688319668741295867493305532601456980490987943433397966649077076112527532781312374437545882680626802629647214049756273198181000665962837277030951644449275764584034478632224794063808263801816758191857333987530307568452831865263463084892219160603295124653617744809509109774292758754152844337481910386549564348777612673094627144840905772044773851290496640743628333743744095464911824142482055403269695416348519792992873476228738809958285138951930156352078350294229271254526251187381677026667738000667499606006543482503476520157513730411825199517243948197170994723645121313623450313691712921477917943488117974826845053054334876012898732768575995922012517013604279684528545660788551334589045232725509479210665262940099148402942667929971135682045535077915177224504521049048994417839693112773643854938493275540735715639257605655487412364350697016431051811552715624529102598397487773817330314526147009479890444774326401349231431939264395879627999759848992542146590483932847883431017735779794194249976279882871654396256579079416782016467784802500785821520130520039941540229234458542105848151818096580060488766920323065424645839662257899204987697238317269674133799775814146014610624492498940899653828288161061982931215234767076802793103701566768130043910187792863500128987257974354149973972165411112000791331214402540794397054585244952350328358697623017056888183163157965605366355790628650124400199077473311390039128476590236201909285542145706335683754425861334044547098478909632236897564299363202520936091451582570835163087524736718313669417112673252293318258101691716580325414878211863125490821043348052427026658930460883203596699127802874207909456431182201014543347902750693573375473323761413670817021683080141729220424750707276724484660214158306317754753615408690342526659991994563887201885146573580940617848972801034638989539421518899822578913221383103074552815829804558338247437231030478964109136631494963380459929859182578500920553646275174270510246920150295048930904649349698398392992981439599384824822165667625231570366921413284323275278571759115671994381580629721271097579076779592359835984518709482461577375733561638749737911720699913347207664113942916779762010609498776185047198176508396329121866844261570254346892652546049122264454059341536915015237904261190117398803168609393901136621812630217368962094711173505658834561718515806473496711478393325349517826164115375878570875148843394814966779165929555388981845499466588118899227910106552444474904796686686219187247714822646344826433561857589838272123114234876601744280629556481172491351547713874487262035972410049801322758494474626953165508577151427098257851352611747127755853667161382346762880480131852046939791421443215293403218475236270482967836053839522743197749493843857761598888983167183266840053671985106170561281718930130202172400273360214465278377582799409471227933505911442700080491343668536790187406034452733698643823170121333026697140272314158529682547382975614212622913734066090183159532458126567126341078646204732867010575548738878813456579999106252185142130630176490906820615545833121879399581833279560915306232503964517657381172552045279026310355099280127506963475796415620730226949838899410500515218733904716072984935135705032855385370584675268981361915913385053254267501723158921351741504662247947701866595504875596730174991735460299550812242347785877144801474317709869165608242585772810721441226335165657307652607322767910247414219608309693112741652990233667819083759501576794245039114589716297649230022614947684852824845686192497184185804040559087570412637499701528929090039978841256592708418598352858580402681769411418288432175775812851337200845081545278302577477318076373610912206556110866355492926202912417838417486239379763088328660780931418981331006585851045718048951630239567136239357992777502919418003785424091803900364580527994624130343692972982754360383677779250998874598141093269843061680801925216993812481893484956729618825131062455034602248356739490835270373429362827330268095645963608977624593329652147432937691604280291964159451375485304073783533351880440736352401717263159793526164299066839447303038241377923953576735311549568862776672493996874129975920580584511141210098715943347565076096572197956115604966644611237662465357234338257139443297503494794135391750484186232655679476050584460546489285986229794936658360473297095009000106622227725747492213788962717253191836496081885759302057436973460062287906944462433856816156826518642528840661490010658265201427266548483958077534947227440502137073752305407523685853732434113695261131077628901727326875438050718085245387815935352414874027966494640742747254815904390920018647794702349149672089144718302512158193708857464693874009015049436213965755006491000929822270790755585532852412775950382224430407048409731217787152967428494820450639689822434918546925945628827325816759800856370712186843282065544295735393441733798221870395789550810547458338144909562761951387814750295556294073829743596020713675751770204227587370643999747968884563543612435892017357281022677838492001568408538522144066147550436518287724896876091533664615633162564009377806234115636629469212389457108741125489424048032870235956493021596395221503598940628876572008689443230272417800518487958973196257124898566514517632203534856899840249855317559149283162766480867259398160597387530309364479676607144016332004722170705471035320420465634221519606890720506973392519119057349942709240025895517033865422781683796375814858680622594220826275671951949209402187132938051863771358238689371656850235772265338523398941312191971932872349002660944644913993083681402065529679885894121177431963542511048421695025929820038733480818536434765977742370812680476554453948134685740831233691218264831373550351556886401758435150138194295432995086850146016248930574719099591808390468834645680517809203876245807763300433219093341597271923826653922296505269502493500924471003793191536688054817821651220389649339933800501536250579789197873595084330013099671492834433996703408029454515796155777917897953462441763302176525087463643050602174137499525115063508949058295212138904784119401366737497602522836566581977971647029045255183981619237756177867240316803386823344666314733578846918037005411123294422430769554952370270913729360024283031377717007848620294360446154359536116118925860522842956695334048593101726582454726001583710938896948399807955841310048683039103962907894739159674450293010945573484221943144476414124257952066371290285040183438103906942250834284657837501106621412129969992539262493948273416829723834265629043941982359326934146927096824992750881148183705307554822268381055897087159663813678895522896487045294455117399798437502238028682598856212609068948633161736086688081070091507844675988908815191098742660520017359322429494990721519323851321351010238946106235258877359591204042315315870767395985520939586146500811917331415119576949531946000872437921125905937288308153769745028212353147754785446413735494267083230874288696524185626991228455255551273994128109024609848319183635053019288304161534721954603109300990130520577019333825231828073307371997008710512359278218733601232908408516826437633792565340007974015764493839288125854032402100438366300744903610048096840406553830142277706135720430865276215056779165176344176280463610256302883525012415936547188401304235097743730204202135884179899275742501793531381383777610807131666748455835488694708609789679871215882982226574771073578759992128587003292308273936396543952705391540402193265930728200017167082280628501641303635339344217843255160990671288147976148249877881550192324635082743609536211115646899797402159851973374171726168354522432485481330891226907178462958189171290118149530303598928803201568557825065508709818112694642723616887855190402445970728018562293760265280070763888518278279735836197395019948155944604218819209507395008893077332659509537861289029144428956651313782256005487821028656914174932854158661589918593404747958911817070513367740330138878033935287648258565936107028134277987337967308158298981762600655087037667086361946308569976733635962497135529067378238980236715647210820561728817109623187319453816293327589637869865914379738633498036979019575975887740969904655635745404342434910591208787217674231999691717748646994663010554016045520818204350650185074609171047679437977559675640716361998633562168499758077941286302688507320864306540882253199791962460486603123366852809466918712899694790299846053031181888643683474376255957293098177360189955126912945128476088918613254602693979346295551940053649623990895656052510050892422113799201747111488798879995104437064362056593551887775245885736678071519342594733402701624900776108596284802758201458960612815828324506855157062565789078006667160685390160955207654204329337335447009731249769341781899859494432087125836514284983295867765873444270139092135874513156953970411680503449261112845432590898809101596633536034544232127543006264315062427273049039402022716751377914043291307335981179143476533032857715915407979036291709721715681415207185990637764314095908932527633532351653592678381661399382613274209102150764201040044254887699068465920103169734882421248174168563032505110010590334834182454572058358735153837729458122857119231148057882095383360446100040489116144853014781173662906721527409243238778913053103772089340242350381480843185877955379903706916001011394015359624419513892931317945969973588201564638433826405679216226126964133934962471192968472822537282049493614870868804620079221574642855454372986683828597110530830503117256458038807585746330984424775571856667779790670751910690189888039068567560209336768064054530765098547329461204965350621624711861212474934582028065685575646595421769488571746730017031984095914005809559334478261810155299111975720678481062390321985285081423036443807804613761477485912145112438829749715204558363241714101593716938193467444186409069861446283662602341127092384077954506367167926161495097129427705574594318062558231801217707704523854536620518550650126654116458625105127208309931332269248879266950921255322090979718610979507352931130919869643365171855096530695108152999801594285155114132513207843833446662406026685967305327328291415572022753977607267273310332863065690925484609470646848121043562732290691192417719227609648678472223536205353263934312048652580507465138402003299348883618400510703365350814393287641763062472716022893911036671878246999988097930253510257002860708099221504298414318077960135860140777698951514350998019658898100973169383080646579310995024769192984342317110391794676952506694325407724351775569475770484083037620080254086337081773648340460040833756299573354337221730584406064197192723004569024650684569774035883585268590125045828400269139405494284515641228433419788539493105871699084375880729847045513799646547240875170847635543930304338325276054314150820106932485077469765398612630068890570207095118538520819219374537173457400039150811150557637876398699457560403498621585877543121493507883144828682863558161505860490840113098354744092974378725286672043485965741699943274341659028390915728864139798269947521381313165345619017629050954330345631266997713983366253413771991675124094210039237555014034214359294364617914430038727130047445114817244474184899891635175168201730641257647946909948314059399458550749366265506874462918495254384750524073001424095379980461494994228178863440156242580312394097654128711303908619101953627857533665633072130173390597877206494542369236201558248905910384664717451499095162576863271279217678122033681753595938653485350218039474898819039996174029168950235506047753678371328580865054397706323547989902267115098319859398841985512597721362370569366225836639282900264971672985140246316827749229933646376272976354198480154180943859482843421174053415449963308915361999115702427673873765053060510647274352874371083192456923133305710544319446376781063736650422764660968259783637416087332612667127129370645705771360847508763419446697200784669992694272819049205722659634748940988106382014702044909404727451030801244020457407122455683948931187709493286718861924673762963718639217006480244663709500126124392543763508810815589956850333376675755315166039040174543112401507159570319759664879624345665830267220193528154102616671626224286546757258382490102934803818000967500557100091240517230152153965254413452447306386448540803283422268619051524244865922161538921660626946055157496588199005246162569400607383863700411074869449570424507471388068489504438707844998926890580706251222722618032306713882501967591666707307514390830488690631816073279765468694213769876319811419181250699452414817491254411922467533198298393062841862676778822787879464509605430247597441824753203938117147672950374063942296979877495864417036722843226439791400074914859922187538288303925406700322957601613838093946409667786184504078558139560745595512245490666371627319724676468866061580880126937163351122316045082060063629857871616420988623726118494197521794510924146792253941045279493573293107095814559087825891723559616860165337680451017575456456813602107800409870921132069626564964720957500607059276414702115995536679287850484497365983915690487503298863328576906839455083878721209383136926306641582503377396099404950885256017993331539344027292292520450662475190900629324879557379296580403172269076391599691320139297104191865892414906121171414395243513544428125659723119626201039622336486129238562888492613730419729109959138080928285872262457673312833688679922676432912720397408048899537371986114949967151262369796130308852982883493220427417920189958769075766569549761396279456946221518830519784282633652296928262362975773355807216603954144258716345144178641305108860032598015738935007554649981128522967341193480709934932603795591435969600719066652630760374845501312908388860108720204172307229027059809776481159329752420640948595311098991213277203950191636194264535006287052020703566450644931958530880316242521865509467443551178887862973559134121325824965631173102692905603887483143712771849636327180273517603726827378826298514710729431055961425641649564338294997278174779820958186680560222871811947156611258741225725444949839444842948131544501112585438177171870733511627812850065351160500067533985035894383581111820899958182976412599766814800486316400876120027634253125883875373068125055581418434803369330257315669099563271930985788136148720925157255120013456413434341716349929685629956862551292328620087233794808207178064629805777697529341058797964036647213439958806636146226988920854855083595874484556715296111585907742005049631019791384719613929770876950960392705018308403227666696368970752884771091121095215848752363836997017551901713909376226866602246197949597008554746139752348162325710621430032107018382782713384346840377591241977983915696379170359508801802020859840942011545034350673645109405295614523115457643677176433252284933059550569097447750485258430742973319304914839921629914919723485336480837056829131291308539438889168738716901915826343899544379585781160489323736998541887289873391927288374838421173114400099165101245078175251308779733212769116558005410488132786537237281680477224262778178190937662730780074995212765006749440542881824955957680226681583861603572885277735919389318092361796257921388311068838440652483209154035586112629447878955809647053499991637372419965423581219803684882979023805002839566369746479782702698857247902979366996859297688544241456061970334300808716167084144261321435819051365245336209306060383235175257584967508345811495464669275880184607199340240659529633295209489017967431713334379082495621243150438723969023513006235785842265991155165370290879942156393638458128302671738866629724502718213722360092875376151472835652617273120477141744087101986204399668618676625565561628328482345807096767774005279962150053522113227919136442207769467029217263633130880921388858265348199680482360407899886442115317676719061246245656238511116581964596694789816054996335942385496458660786151725206904310369929562224899277760121676676812906943771461442737257011118447885872325591499042666759119297981203774512216422164180451367442002589832975666541593560871700480252746269233400496775963105803479548800952857472761474563953518559138948861367233069465942713590950319076275514214294502105585458865368819241421687927422650111376328404533393778278469819649863572536339787270097440995127460523523304652759045380722321005339824728284805654510321383573384414828465928120986459742229956178598029367426751690887384857790139896565187224616665683202759763408896263668203651443372623359035741354491249890031555926159462786556217624809074636108671041197442138610205986260355558767479210844909178351068923277540257263960027898454928046333555857096665735534979080145025418681477512808283201301407393436679476666344144845749446688465896534011163881949365769320142310695302087439566116088378078235791002261397085759335990147936310161210061621231388230168926434260513870836684738991787361536828422602612776625715578817523032290837508547938201163386808380134947470418985695656572926402219090691103272418190517676545526171347801466747614034772871954906472508619280566775708491173214472577306094916554148032316111617427728395332175452427285771494571418126494172154787755061030573898778953704015642544920276402116894847809860149227465557839693695096192490229284715985004171317603663047469828005727873097817194417055462135787092309101799053984714291604549164602010121108279369868110887209628417234345575950769206713197824823093849213574292499064649576962587797688266304971935279514833847783152946197710366656815618701968316393207905123013512298045645708776343765017823055686795182403470683681724853112335330580869620636972237234732753626341164560987091942150372487575084400709092280987070829672626942101337986532468295092445696676613980252775717575863391747829749424404151821276861520608261901982033182800799498266033298853716427304722668808656272487754780233348014612256762406446468188029810985762276314924139511698463386140543816372045889821048782585784405899022034630905560615183946023648955034678833415684739847527023844422298969091977194240931941642139828580001817709190026578487879693493789839677043661922476654069639064286694440949831144441294020134233762677026400170053559947879933371278608886952107593477058085718111071881507255370268141572786935013551036790844827713913370930387088065358623535847527329209195168435755111521126056506769497057476999541459382076178479090705826779921736528901725289120445250926465592284394724427909718677589474056119503598726959688957295312072883117210320165583182869996840963892452096264099363007038294371369238166031567469693450455508384833671047008815231942353055311331005525373231653749541335669730757972788212018981583605116764317637659483879058745479218747874329494771846274105177739728761146988059876646265272082544593829935010466534264609104015172411621159670403603805262091923999555274121333562505167446197542788962366928310051178281792078661971478867637477958090609125581900138235202028958089076057255769434835931832152038731124773425749870105339384877212491300760025700298554004628155813804916078234677048912325367540718577853737345883696855856881141874225134434702078488953336596937866736413568120453315271937231760596505584699005281309277699525141874906818814658630000934400474914791700641628291691080397837475239436716640386232796667740223951395989708047797357800461072281424531828828284195575117308716925447461104263608529830642889975146333619631516906480663977016062171804519217683596976983693223382791199495207109457490752178136905865368876505325963531671618106549744973272504319525475371726394206204855242407384466229303225100708497806201342215567697311383073357503065879812853176791084202731238810386656376236620009031529797114848969893196882721156753882767257907577332501034746005124573902902341221769602333788224545086146597232262495381404856221047304498035439354986925019481130707494754114503896848041886876389893071325074803728116041316011795866744371283451839177787754084045279109075885630246777565513265607618222685841469321249698569049449857447365174529698410091845687011190243214720764075645460161936031808298485388229597366774675005832629427262593694779061389040313586349146363671357339060701791347185989740575407176326192392239570143804888756885617340852943657372648415697618442384325622216111230083422989934371349459668474289713332984924680659959228385070683895361555923370911321160418537475762933858464962023215749695899907948871413218549929227348212081868359773863573290805464595583069605514278027020338518692699772260476975067228023399603754419779663311525910908290965590618730647398724318886871481859774639498931522262197639465918156696790488474756958563836831309311960220809505289338335503678690284574282782334987077604685183264365238256444141127777195786268194843344814743623511423174356792969918239092286398957750175535104477759332226070811226455757985021157628505041407495038072123075153820129920369052900505516174756561693617625324512584412300889450754718990550411029339156641290784671732514096398514809359603546978690136293087370086765955957385969243915566200125537696325250467079427276884576685033349487606204479054571395526201160758853741771100846277238820970814032470605691703559633799134851741663355573768513263691916830288981234209003721216178327427370159701835220870112043650455395580342741805294591341037192664057293422507864673716653842509803133575392488741585368534269699733404193523736735400960369190280364259065763127160897650196449855059849986756289240242930812749151136531464014891853631144150193694106937376245476629363440031144191996016070708061933660478502109780441857728097167551568061072008226616040044278946193764056939088656666862661428319382524168116857255869532866167366862358921320047664733531493950347292093689812970808790420098898501537059896292119811881295533116891053591767390179387036086988524543360207122268625508132364118638806210266070671307408655048280252466665609532486967821072819816425803469427472053732318562775898878413495845916592576844031340648256601389305143885178857973881967542281702064988962756574337658235203573518155741210762722068935687494264018840727203879242768747333282745056665209793427139084600609948244096119636695023839866472349050594954056964184529423323993899819025370539995088424365588262399085545493321121857541203263867289754901650437846276120856338296313562894220922030889163122513241369132312040556069134183303084640472014254425737858716414571601526139092432260046696652550042269980234118228167496378710108719423178290428971721900168028346266827771924727048118891898287289813235340241266615516738721222343267965766329080231187278953054987233760947864282816115347171020486631598798989155059955776890269326614840739658797411604505949366609618910771418606060627984397198096364237368453671460817856575583958462894593609664929007830855149813316483101847940362380979625779906719006180201911552925843014080573847811377184936968288814966569126067569302996743588157847469354495096595196394017033679093656578415686742516644104949877572757058069307255251060331888205166954208253912642582408472765062505543565452133794355680270661550663225079014853091372382045063439343971661504458856303534403425112999731780458500373909230653828256055985728111901288837567398065520607016399589771361909259064054916595257122381878094732604263985000923068932644087849925692529643930782694515139368815945810737366724023107987941057447878652388299659311865921833150982918732929952700486503807803997584832589409540249334374940310195459825265902382677885931600336982939389073428760280539206278960141589225733108266516245493605286831251769939076611999008369416004783855133381066081665229768443819809419557719965186383129600665804839579549692018495979899893418590194072382922176749921270171564621512277851752811062723770197186231183980887457905388067894654649993328003748650033670212881740168766430911969520950942880998063044488279269939874542813615190397147852886056074315973088797241111284859812823384061188583507062128587597111095139930491658364584077088982686649262647035062191224539186838771373790049856296514221342875445942933073481410101284888126316118328467730769825424493470220982887537716206152669443745247171676038162214490848518682053723121449091301999949290508910183866385151123339744471403343856668653475043522566124023677252049929725321692543446387280601931840908721283191141373413942010078847735386890351656639406472597824972812284432067695907218562355357211068138722337275258396940206224936046554872604799680010451004484756855435968964370717269370563862871962479480507157485568144682817238573620396002110877366898998609781580837669216733598330310775933050026196069612635537444907945602647834392794408603825548511411540253254585266326971498646846530278509140605018298694175094096961380344562249600379843984512729063583968747912208954910303712749586013577124923718414396979147199553405693967247825765692158372079519449161917178466663297668407353855027200768082713930902028076749407901314426340604926378225213745389113114699367948161908757255475416111450156790080335108133861725650524755927090539992515208052613544248337994349955201861145721939521546219898681047088135587725988073571259608508922373686036327595137585771217570203999179111543275147774011602478268579134052656499933498121130294062252512112173536954233667189061121876598089425934408050871156171441643520117653346071335913452156000333127766673376484871182934636203583099812617868978199052337525030176421467589633086984103093413161934621077057441068345700436545713385435233562656560427577548946673464485933200621886586592574300402205125493289808355216713361968468287793594343088632025789420041980680877947559002218877757445168272270588088592777993818717543552393690372207029876254275380808648297713229146728617381074509342441828561200189835549896536981784468921873811377174468200827746204837737642065090181048308633107112263160401012757593758796063524681182475133741278988979494062015467887049913496346726217953808729134635758422515682510206951660186531561804347131744737777932648107846611115995904211475861714267241839497800747550306354717604548122821501441918276052766604073182791875217868075045271448890298816017620993297241579048949691936883514903836043474029856398957734151607501485535251659417112054610630421385379201387404044110357765153732990540286943307427798782537111099146972614819179876910521100707814956026942488471328775160687535676049590695437065272555967914289119202918468188222896797703723329672160611445231264131780483945104535412531989298323030996807107689798797160877195966682455142127153310743772766460718891293425894716598205077888206414691991460647736255646674505849655486202279204597322072749726961235626314214848793381179879770297344846607616822098731599432501244617633589434888550095701679971586388547465812898500620675287373112135061210639982004348083948560422048611729936696321945628309352309211699530592012855775216394283360438942125506103187904326648994755200406964534240687019754071024553799479326742422205146027758302951341629851474129262570272050436559528308400661019502675211658295183620318467421251328947818760677905001205735693192611555204918550602176151678307883391499519221449435633288825493062507372792573499609416914060523025029907800769556554185661961648298311863514848545220876631916968317406923649578900199216254844293940305003083220569054908876015843074800299149813449121540911806313899789233806561635838346045495840420257181250057425080743507690672599859804679617529883975510433612066769437544914779295673989019092683982451671260578131303597122954690193517312531795772941305595218044690770410465511703776464044874773155395215025020726185240388488127370342560743016676209512238219973941161733716452466519687092754548314758261552786189587418100729192358779037790868490100047928186477752250528963396355110654708513257352904431280388166361008034148885058284784173359835480370070503544291280358023044030424411188074526315526432228001883919619784649252747333774455849817906529847491480463033462770894805420396666105518378963880620266159378043571012003252719909139808819453225575928176561776421049150248727427107395352476210061823946967772187920941477880619080195317867339360522182540904287039217121640718281726519296055661866720848138867284474053117522266263201804839552315797350623537825704608981912600279644112070606269307797592953756545468627687674546772375483372399951940285321507987321361914758482753328137390464380586354262362526562270904824369003601995345857854279128053457896046148599300320678009191067513728797792401800525575573727334286089203603039977687074749113869222446077848869065945857296476222610466894080734160592646155396101036609856511601576488206565471171827826615005590680808672397749506458867628232255102819131250542253446280681634792423492247213162524148093636350127869694444125932019851792353809992770663176435272434162943939393535757776686885030978435907223672767777561778408219362048169788662744859159963385724495403371805232048339888272981877559753247683640407705882020285897683124655823313052356761386862349188204100384263961551774302241456297334912860441242643247089094330638056271336399212731156397190114623729725286467497199257786773410964207049048198888035604576379645352032115383992376850876169993094841349762547567583000248236997299514675377770375354314632205967749536639173210763881721735260921359632743147076365523511540519358589882971701440355267345805134781415679186835601962930679466691472724080078968545024401273832698629167909163649420732875514332379928157202325768686592801096995960256950211764981893462623261465954607216973919592931153435585128078526308583174242557985209224168984936526925223933241872720702892771739395302691724252176400397362668698715290270250505907068233924976901435050077938597435800756809367696097099428101076953951534337785472513080127025156381614950548081018376544306027995957023176524971540851606065564318475367531390277673980231667243443307721321698940585919678302681141673813637423206512063601587071866556452994272867496966088679792296836257205576997039298425064266365122931897793987617785840095793421212439079566994981463262439031850076592608860402583858621069171732273142552267354578402398358324508557346253610562534975577295612446212344892362931834157229237080394063242698638607478513038403135461950423878478708768612821610890029175416140497310940537930619200153678140041903097124870621199423429245011244807673622184217006901759562450591525421002330153275527839822611210884116387034129445726600400749045262483896668044586049707617599239271144789385724480624719494491502974232764863813831046272841597616013517464643496089419659186738221604731188360899652089078889535947933829953891805461136082538857132343984322227716398585639160552270602455525100346930597688648664599654906588139327554425067498709643488759157613457256959579475690005041718218086490583804827163315785805017114061123226863455508040107702320168032545364802507295554385808916008819738060069909855031298728100404543805525984067094226367922430812178483914340108260435780285382282309373054812206750107233479843320051610159598715705453649419408267994917993779960404368150074416630016914131563352256359523624960703053267164739090162547769086915399928863338412490817873293657245421584439094956975610565461302279529243183592550745094639259773430876522130572230026589795879872002847988737806650998988809677857877202821610673158306695435423968372069527608518825678076768006819300212920953438511412640898664619502416545965646111290783018817083360139815381299964491983743715689913209456556909894449509784948070614590658958945647611816913626558028363653291133464515401557798796975038574544021880409181305006607005217891228364227367790501949892172797149536599327402501600310209518937198469423391725708517297436333309998743654246899365503718587378186239994347296697219180349054629283265705063008338683658826532404879824250635624220826657734697106036762093885869138595406033734970841431169526870122390103180302364842441947458739200356337395613865477765985107868590494073353436443168707652705317916608457253311302044761969228454316155203004683631212689171018433127790639252787571965057234975986783432242037427232036351975652196741184547774673064049892529891966505451242657487418181868110970088156949087690118484673160110476853738964594560985093304614652522262254188134831627965952783406490307264224985293668209639846220009551876405710234294042377013322617686638760806882543445211779779056488902490592236421128521370914118249176257082932670365422184383431267684353377944825956662018981242895988986168300702689896927446772843803117111794596714358293048216075942534547713964328983904830393898264074066716865688710675607280330786094705870236597199869085468760169274409823416945234357554797815958547029390833560036218899393272860972157907226505197507867747151078710113666839042577252782254803538755701499168001605459898766924537690095400387473490060855415563987253958502039672311384567237464269833324325513424086776123637092472552936609244429518387717783307641959436193432123432061306204277681127185302517620984818563202119733108215802598284416290213973653241416722761770891066495817501463889243811423055644403153637446534201232892073857201761880535406907096888815363598961341408927410882302464880805717514856617596799752366315667150296791471482351957373512918376137937863205700323477957012150743369549571298781362238975727612548808923056260370919333411965999260620196013768645851148834919466540958861491302270455146029274212360571577544283785773659970891417552518708449863050132134092764202651066879183463300419087511695429772912302994731197713323994464060795040311525832630511229214008471083770984220199909935710485933434112216846362575072247661661048849236193886066383163969178169555511768958961534771078832668160825989905433930140788363954330870188302976954464111568798195556737090647963920444314215953063789966462948931681241277320516008391905974449827950850917424567028549894820672280330092604881807889451846888463233232913987008171271475332972589334604546502082239586354006281555831600775752023997334114197106367282867157604756373656006143331486675497015368079472337836084700219524077446479121233134031998341669124110074206192644644648470286993986987990941818088438104189726364067893720725773998628096877926665961383609319102612567886030729702141196996146930454945318866365903920123561568683441697778665776397750724734959925624195281018652894531255429564812811196501074220539214095059709367275514597245559359574516231061992038405566836311556899292167331637719335121478232330922005971984824904248739312798208557762342128816714587672614334805423225996543395226462585494672404488358392925713725289413707704773365662506898493009088888288924680738023506270002385145336805551168068860427681814968624111304437844006644522465998939352290740605924266157976618664621462158744678896927430105880597871400089285164954708835078237842848379305588790257381604804410129007368599594542363621909665679443559783083884444340186653890690502267076098005455524183845039347731674515695048109945103598961897982559134827834171197805830436705414449411790379795134716200270143744789639395974595318435475399701965841414148742797123970123398173846350080883280917429078148928012418807133299514429857963345528447910251948266888546395168208370530233318213386199251748554386674454338383307490845699521497905285980645694113576467682925318918475030183015351204874226524872278501329800314846239203422228732192541106439909167284090339077221671551366669794711721362438159564049253386552404573564983000290791361790446639548493381121863767918875929831838651824697605494835290243701894656515399946647892582108597363218561037604517792893303716018762522937571037298757613832463417728633171057838892266630807239685778238817235523057128111503603629701376492495538295249813748826884384120287484095791714242675984867677210965221479189345393461119671978923417591273928467739898067394001339043555681722897284588574672949426094656248039384595477218782206933042562707530793011473106882140219844678203835015827077667639285413215403054162801270889249699777995863644895245122140223183230373342191618332967989601235899093076048461037624792418144522576355520248037751726981671299511340325624554538875090767415543852634288839883919972890862887112071078047093374949207726884581361130999533083850141024061888144546303287824353931177742504443639105198012206900265461582564098285536524151469834732692121644244039359051748119443042325047216645795537709145689659986538818467126558197780258857134196998335425213098044147375147942772325909311625579293299403476992613287719148840115385662917291314438612639289469550999317927275087952109358122187344148985406609028894820529486923056374741745903833531221816151379631155295837480969206332520708920224675670167976568577383173907986165286972179209183816591328854602163040907219856452286003269942038797476985373949157588097385148426709372974920069611139806643934310597286422623480260113703271331822721772652734577332703753791284206232367326879469620721571944836727700498538702856085755546257121308645053179791740259071455799167786788802144239051085536596229857593572119063588057980269551329738331480359125118441067314849793839040001993122031885473424884440569324702232376612504125296038168415375320448036068734191522493846047159071698711866682661038097936819142315125430585186865531000323674587506488415346135747129893920046701524800765027350663303452605951487367087940688525279235918716914003013752287365704340130768826292230594651335134351534130174563512475482238902298547374372051907085040055147952840101930749298151727654024394710920181559138652103381654233202671972718061303539156225488664106662702555603535987709906870262105822090562355911714715401876874678920528240469364759465008195532059496672211992323442074624966154895765956792848110635100919105284918276236958916607551090016514050075093620924352831851613393437341362284680552575463795318721861656519659679481147626852451463324542814685947496418734916012828114647746173082953234890793286673855259711577472239388200153522809848090494586971315533216741804185022551685968802323927741208403116202001134259422015941887430763924517477915785368165176834650996095759631012131125339917296623344986080381282102672863513810586697501371906584808793839824201157197557286638353807686261680735175633435106360043373683825600854518209328935670234637200545273814159867116070996114400527185044218891492361030522790472701168804361169031042294573800193993105787996462517509838587951814921366793430063358968948610312818350148934501716656365182015552957182278496956272697714094681667586463413093645477779213099236887324752749294918858325571107576134754726088542766930743168225883703221712731789039328423746221296943983751307748233734538476253091281556374123816677654866679445829998227878739352213889510001927845622870783943885434128639419731569516600836180523192226083237028805276091679887160474238188351763108405860779297835437295552711602035232515873944575541359730314984995993409104945593223364706282455170211155189153010201846881738791477028772250397634154606245239583474721391447708418348573090470480296630075989395995390576311321912621755766371826679536126054126857462476712057163466119877854238610430263781037804167720622426990382889968673205845758760623940863793485605724909842654185761249558983798066627231787710361610896994426020261601053817963177239645500402860495563322610838208773064683723640890115575849821531794989212512192907261394914196100807406341492399463556693310514162487327604851730134342537838689413989290353221857165470269124513780473105142736062744416020622800906617695514398195486224874972572401658045524585668472079228713751196205823613005847932364198344707485208706058248674064249373348830309612689263681331584330149241119152862714343928238265078341664994271009237475649113372505949805931939337242538899478338569264942697137552867317061368365657931765227830287837704633586074158546821424473613354065956795723136567554019682813098773661601146847178995870983884414494540155166425134068048818337144572489132435448280248454026090345509189285015223480867263627471207834101325313416038154342518609710086277691923354496392649722609411097825311998382645209379136696999851894182179943842522466690081291565125416089014917870467145455430265246610248982610497970014742244566337894156335178924068631163129899750316016723892371235169010405496234293737306539571050226602808190032529053311196849965637812394165919773861285187750314118639501258763621200401258642506644104585953303563732754895633028699621212225233304699101905727116520628880714869339927315061243542824080568840856339136689894038997233765703859552205423092062390833681293006854747922983857512754782783475845417164033254331517836771846274818063372922782664895907157688834499216406728222536347603600734779422544495640320131999734610822025126199019460892336313848146771331624735119901408680746117360727587089493310255735705306270091081174416028838063347550636070236658471940924133361900055664398065401346389771760161692211267553781693767498013219825488963986500374480783246070221450927298551862661377052489121467738659736676150051481805209974288436502080609960291984623908486334989821660746704695827251835990176048029696633649713869121917890808701473897611126228031040107863516171382686473912805637224718445372338918013245860758337270791905815426928012388861484964222393027678393668739065171063185522843434721599659563782531267456319942184571932420393442436386983733620337475078676443772759431795700277428129010226955092646400027308894990083452767075751413910452702068652298508486769322444523241378561130131843690957052262987056798954774706780328994163833878695030326404920510482329772416374863360105618244546625430564888829952686982715949027038717718308108185309614871310843668533430123916756480495856159379372074653094164433220150067778878110909108689604174214853825063478921287512515934493820511171914544938813111174599881787831827514276973070235402221791137926368607338843069405723741463428389793836056904003739525940555947325679617263730829256165689580249616931234534862564347838817412081269969811162294775735451836592379085332371974458582047608233027097870001208355453156061109257108042540181523713915473574272810400397429059035905284379237351997572376114871573002189430443526076937831864477498585609736383998385472841444425281867704893072182902876474656197745877645410255151609078794609714613396147412903743033555124693004410418610989334165289325379560676358342528794166875608786016158666431405444697050128144395647813171268210066727559251376303634887093770495454330244354895572485512998140855286713384998591482291382664250811197642399554788179209263690722148677966744951767590026637724499530579468545387454898320237439288050690784986467444503739909678650986024610997593251958939157068167248931050769295254705097984334893362714215016790394765569729933894347321355655754724871459054110685772538340678455757738529890938232417289455501488706116661351447296870055648541429414100016302798302799446601661444106511299983865443973333363435209127468032544516612742056996373466322476705733293405259965588439352806315415339234992620495403939537430427991139205775258221741409624277709885195226220989895462936393019908575226890173085862161327277951102387617105745949475800320363254600202255869946726975668457265662213048393197470385539212025532628670125781196056249705825407067522989243227663356042772798577215396414399755392575463943167010358153349598505203088914335766351129096263489654499657888743515000794047408185886248277216252143376636462622527245292793194339299450175462502954755426734111230919590621282644215588101012328026499869789112517362664521487980556003406567345768335872881700436066251463256017125727824168175571110124449489004125422584116213726998176302183000789125979142333194468473470869008559787626797370649061643247129933923648650779133600152923335034176090861755521830364065239662209546837736821391659096736947703182120184471479636668443189226889181833355254520644277560430622325925989542989987317140990270665615456829375858251511457103192039751218495838488154105348738077613118589590416069894538144252474062835590437420126692399779712936778287664089052906365722652693790705057497303818687023583613742684674465014809214429611883304219387987474245903106959950627229172920076844043965950187739047433955354043807058533452914591056590407434047603445235468244566656250947469351317433981150598668689564262599982480200742123041142495273977807375137398870785737509640140165889087322911730752749710657327110043327131830555940800810588282918505499809509126264175666237085508502386591555326212455560428403771287206046580157614893123395056548744626347941755532740168572785713499947294735598275741464967950554034832417417538815102256821585625377193218056832694575607194428925141733755171535302767603135334957012972664785669479758608798318248893319092813372809174461664541780614319209884436600642695883977499048868086286856634460317646862914853753347766253265939190878178700316097258418321835949270283455799509418029408157940342489411549750725147243501367587986412856139180847310922729339559125336247502295485753666504528529409186129491728030685429070734281793270168252822794425816554337606361351149399980514484494263586949907567957576685125232859392028306594702874931151251891890819705166631149374419214731688511060871190570790333210871503959773666191007462651618316017865301308774026839553867694302093293935884493616343246345700206918354255492079423446905360390471855771153870845521927473950319018102908435404077612932451041010161548459823006401544452482279710448069897513990341296905891540873060847906843847562909811119284536411353268363432607950384929973650553394500682902185808969418470443802862422266614153146717560548456808204675463049929119827974884996597488424781554915308359320524181227190797591300609664143390753882035914677474055042317675236311646863376846166554182128501862671659268491735823883799749118328215935852295735925464773104737383938034296688035033532012672303737623515496697945550292889685083246683077830724697978852943228603743801815369659650757386659977661557480307433325708079769781001119288673425004905140848880120180159726632141362559773306687598042901767735063036737613317000064585685084086362677786715654332527439660693718744641226344212602602839433867051689483854242671286038406555324691395064446017897435888144250420538653413832887896007350635199608454547169677290705060244068492071941065088201287713500982363814482913179622336335394662543280904679433252217081849184406708991583931305990222464029128765533670792582656158051628877596964986199301773851213887138902618762210244333861264842889895022427177667335928053228031124703441387540054954027249393855771775310198368558532481201894142883810367946821691728045276612858491916928966423810777943238992874167020314964855344086322051046356721606283176211812984247116396881687335692184495647007776737495499339704273033388648697691525991688477551136320401476590610557090901059681720246421587574999635124284487951585530964352930006796437887614148316019895425652020449954180567818637187903698488825327277354741142478248700076460410185283527048527340782581595345913341502739231252077699723051936361453071635821027809901178317186635280548267756310426644676206961908394153287835658940062363372915752168078536093731470603411134382329942158240332086309724633988649705819822860787391197584161063434209624751657113272220909099912963096327474448934506468840600911186143334649015620416631444041171156092459228548983978038781698569710018165296017178788058247414916291874130722183668620304854837913219083620285416461830736892798866129276926145577179200448049143332634980999561476155287846677423283691494589584841620513520173436505550489445731265275571946655811162731695212257252585886273852340821866750126362425408722548531532897457102574729159744068896114799543340179057402166505088805734362880379645011223668057100724468825086813761275759043947496303608175393884560639798346110025177371829102077377249751393090304621578125537664695942591847115412032830056715139540078114171063280377219249257938408639748313630391722151243862250149732221193160565778336292270888336326699389869171815785168195549192764362532617644712860015337977596439031730042411545567377980419828275649508167946245087619468652986627892917842891064732432887779909033183606243807952718741915262034971264109586677820567960189540813478740324738481634656248188864016252365812843938421219392080572039216782176062604928404095164328756760842390563770733087792748118719289588627399513390204274177366581032020611433522171002631692256410123804687637910382807715150169299307536068465533365705074532783110906735806976854861987844893269034914350918639945907754905086338097198155770656636333548118736768029502676203415530003213646328528616671645758563980722435530520037060658454442897981693785965321092076066563002336024749248815843213249430574202171072789556095042745777389435277897553804912460724940623533409650680870943303471447775445305848601160936920810978731726019683799403203855899902981871262780319725967772078480749214602630151100700580118041420936850680850084548133503289519378602964500621981263628230186181918297399848965327739451134076612454200718190913468041891718996396875657898236091383317208035693921745593474029288039426770866962988395371369326550777107417580883402165961786130380183189910724187715394578286231924894738419261571829038786029599801314932412300041355239251005898503680104994805139711583902710371338733461734231267154053943931783676375550796815412081841717026475536040352720079588529272440697348572404124366863601793294898034217081772158674634788781242020343146962141823263651589700628605797096934909361876969638587238331051930992751088537306897612394332029910377548755919628784596812501425932193118526060218699882949214318348924598075727948691227774619771669419530172069688040273895200229706001320449553216567246034475845984864539369667055970198177498181769325158381386475761949629028136667426544627074674366888530153683334514706357630573810508601123834728986254939713586828869216380126837419123811846130693595375628012765449425202433363056227890246970189536727751318655977651506877078827779833317391234549040816946748111020264026120021769628474859709169660775709679317061336383749845120050860233546499862316994663521236493903665417577884764247670479918801595254158113323884279623190771901175492766106403090488707011537227074700302581281375009204716605192128027802954515398392653226724953310392485303805187310536083848030929230950551738153330251163121837586146206937356298163468166957470453748508212868044761320426208991202709278228136599115916937403487078199196017724679327240598368803314091182281994154727620927350883810765954725752530333798371755877965188396821512386235209700917574563974713492325162912509869821152860284077597300785923428339690782090499968519849075511744364468447010198847634851506954711865561737564096664246361050152078399522403797951663291976495436216547343738020709650769560913940594588729228710763276240469751080861383550365389082917872777811716852482545399873075767922761534941379712962394842564895048264920245300753259322927888992381978191741651237882984621047394556839144733021212647889564113296416278301818241548206196269228830840740411549021050633543395789480664298834327591116319791482558249500820671329253618860706619609351005959615139891441862277964652298840561206591663125456134884905098601496450749024259655449195316416889213489306317847528426098284017155229668162566929006776481319993394940634327390349895302506606544400908569018612397141019274284813920860331849100490168726757639399198109833602519212465118550375408185033075219482533656688818590259839827358115237113811862981952061142282091892783395606258603689454855030691222128479074127019159452744035089310001294980084711494315600606103006639710570798127178264734981494815973623588321377431564242238505461264002517931199113642455810038906192869784376535677236386712708905119476171628470516601210368697878416559641410793007997636624343509657610000530204965098281204218636839596089542893253594734429482768400596991287955334673169515178925620194938193876829030977507924961551891525185167445571199821573390463725252651421132849512083075715232008482228161513656739038692553707712394209987940842383012901354115590081213993996918626162306198664458372381034833382351021384031521552186230529433778437109449636841732550626270358807194981264866775902074239025979025742698901754096706107417586407143260893189256319966066222465543326126384302428087312369992906174977168139961402158636951145992402270806110408632928165652890924479269429939325859303306797892991385950601903090982513585308171480533236127491884414372882550929555162205372541670260103045421150013376970846199378434428855255092602289110073984800756494693469545266743376443403786744441285750684979543399798550609360756889093595662657030671683478917231035914444683101072383904100606474786612933182235038169018309273386924974637726195572490743896331646147591557640972522496018576979720403111598473453177623993074506468257772035638664749058601116251346376808868515691969431236124598512981191021363301992006188168960860045201626512753948506722369991744949450430321842429016350515955665608430481859782677552166324449581589304126036682311419829974378187233094419786072113627088219962591497345038623328754718650895028067684437004250009733204197801932092699683624494919867588321227674476698043176688469764719090261314517283470114549696052748621641049956578689919193682657039696382928614356582625602530703156244425053271025492978615571346952261059211485648218244200163391266342426342472346503547312089341700631497726076805457510930865142868458066543609700348068741029560731635439123881491222935952742471269287686014102545104404421377351552812961482517775971685365805659996343201013695852187559006354366499563271439389481507896511601925245350987738087912777089296996299854987985150153308755700657324643741701296734906080282988555671161831286861612847865781535651320890776704450051730538917387671236925570033962044281113818322895967789566054318676762750498121187307391579729559714890706236935291594394680602150627646226749865595278237753400943545185078027860573720462541999816909332662236738963006334168763210118479607557468344299082551501579302541664179180192142670146662435842073958962650584550148649600223308938847510848524319255241845052761013279214046016234499939209683623173616068424874638530638032714081414043469591135960530087656541155801125751931946481940638891445154979896857443382974890890987523853561541227307879642043286766869422187355748311994858481816177093353245071355844585181381489484312137567005488162665452521244020219150240288660622630668019383195368733954796468510502730186749104796791987776020090337219445874685501859398138709572344475063549210782217087451010442364243315304364448308734057608063494551585338845448408534232980980876929074350211059365508169657004961373954211573377040287711256678839613264361964053755871704958076745021436471491833587546302084836587971278913805812106884131335229571399459619440386969020759345397321774249562167660679821853631568623538693351649856575021516769028698581458852817723019209751148011578371035343617782622230251099165828034043430482032940084264136795242960352931757580437544059831140036771489015591797390376990903010814892043930272433601078843739573098863937800078863690601960706246661324096908994804803674059383313169841070869315715352686819375171465909261368328008713471354315928606957625050697974842035031417168763303137429988726092713826038706588747293312467731777989033994639473772589980698538783822938267512374894563021863084678945753972237635647272412017561017569400968518373919763050488154886555176093922592598878369184742724701446421297629963105460215770369364244312401679525055386852451828143429048700620710662778400624945282669904192558952477180350362027477457799490231393143291806473985669696935481580228854787963659172343457182848524296144504099818599488137831186408780374987376338757251890557128859301142470376229180197189814951668938300488029452225284596543705342964493120229146705616127082827218908590964183584801581881416797206633448519988516638825521482914154058240010887030212243815718855673335376147231776653153742666439166140677483464014956374293326284481022062649584889505730440885539301323985165938668473321388532192642243948988764185439042835105975172259333601311313039882308944354183419851028439262020372533986743464197333748905448786133810997495869884703187119881101894710133757220089461862992604863216702638710267102347640736996040251240623015989748952638420079435892699360811535461496031746137553893599055602865757317711645033222247027749182556265561043386071854677460085318401951559598010586258795846564490091226622274073279468856930832621289848777288897879874691872221147605926619221297505479532264773856087417205800895317082692525751900319280156407133269860795035376216467525947567157865239576948114917446211585718051920638608899210351181508801257938127908481151512281964872683985751672797423195151804028847304531306749273001232058097083253453422318482270407209364536573775492593750073074005694657679036070865378575398934583530598673135212395252514486603089013492927381033934430701005963871961684711932434079870848214238349207442922080785156956316535284134662781835371822285557549170186580945546291117432639231885455707008796929488747870285388214431052090110912519171320737914562687717660075985428962599152836885934505413799650436917553066186726276773678709108986465686636142188250613425016012280827260846016305072175710730410180364607741524767355553488646139697722645382433121565832057418891766128450447535441785638150311359397725768254904945047012307250671447027801483501830800631695179180925399560447910719893300695907043078588248791974954045524968937179737109173066938273576709648398446152165561329869263952274671334070696898213081167166522854900552731602070701674515828351418035730574731598065303280182978680581002731903656420477656903301288217413941727279953685424971905790503036222296071916508475821759753648259310917078577099024759383323125669516005138032871345146148284997406527368469257190562909954742299661092161702441437902094140662064914471117259070224385295202456302865644030551813413327030022982890402300179298704356190136630531972794098431968547513489091323569568673766485429264184881788993116668810308433620505262333098215935480012545161434583935962399563662492133178376551121727880111082414849377667840734098670073149405049780046582734122797281809072859398056575951068063030485299513939227003209605587504133587575703329211864649618215439705646758802978712526522263638468783444377476916617319522332654718293812242519219120695580186940357382755440695436915939876083232576700381891483605749860075486675218158056630894614729012964048829807498759688828074245036286525946185017327405847534180975376697044592737030028574633108107361402940521701703023330279790372126986176723261858570096791295456156657862768293393690610706865704985881002393689181502603269729459039581051188590035064094324612109600173174297607706906082958360874639248215311437048613590121250110076550299304510584667928126920848398668597962880222269723866489491862328517288361959527697203723104391024425630853801715101916283859306269269636548334596701686305916795070686963558927958273589541154778429414073404630533968635292752260789115740128609145913262368498510165710855817873176321776579026035953325741676422289843294240355173514655815390957322864694687056009319842927768778367147145409790235642367830329701516284711168194882824354368168477460631080645856905462632596176881703573546239851081705946282004046638292597908775438852829251148168856957449805778755770918305041666346089062621040194422101784995355106064372684301683569243100779496761825915455397455352261948303556514234174434150409960125017227803418353525280424264022422270036077802693822200580615002324099319086539094561407625938833530022403229937492984868162524605346791235627450550719796032259777790520144797727686590756906248692162767881319575789558820680019753613113094119472436311886989305931357689647361919657416812271911408270711390686519025134173085518687636456947256835579407593815651338629983970620064393643373220524816144495590095812041261804325728293581793589329004199932908943009159833983428655666525304185010638466237232572301640792641790156147990379354684489916053611929134243517424088448890915468717821750909327165755361077375136032932759407818205404410171636790343096861301245503261024867114878581594069697323726458242902287991801447307332887000402106964403528494325039052433898674923277034703839684199560916866811249316372286456679203263344177764833346224366435714784947052278918570163221222642596065419594142369403791820943269466848206825684186887442408810790754959399936882701447325297714561642854813944419265813254980473833715803864159929028171953698327048040219008767110362879835393451600187178247919266396417849065908734392988452436110837558436293402296551408438977369391985668654748406257744401999844788338439249554880374320743943585178571469473796036657215545598396017303506195805097960896575702774848184455189389066227688028381111363387321479138987600499686800551896290932277067736205264258039685087338253446787229050452149824646338496409994992418410545002936025934040906937685060788697129424074836025853386169478767526099542587122953530345793898451006953447018071402873383075082821391995050133173994137608864820468173964571884950453724694923463344187948125000898756408898774694170405646325774708239274937422351467890443387881675379275863249506000037458533842968717212470636860337272445254686637621390063865105087259376009297306608863755233815004256280941290246242904575146993873531464178899123594727696784499805228471596656307049368251594563211733968477575047784588723576304245053079028165702648332431476769330848770873936111516090184453683699285411022523244016522658321298751668433543926510333605923968786552837160174272266934336738448419730708342810230127544154974822613863834432559750817680062536765465066394044851633583941654712105314210441667991901924632149116033321266045949222620665039970513095883470928143540613833606228482491800387563778239711637283200788019363244055798295558716832628537394691858326666713269318775714622062438540228342869666919482665542558630071236191984895511928766722800967371484944364530032535087438455125174643815303607353963202892376457858427121262276838203947136060210194457548736511058831376199333541065288467281239406825098061405490270612810802266008686597134056343744397653248435875831092906137232186266245032637711546949124845327827425635418248590434114079823818816177358386342265593412693903455370678685630647757585349020997909823991606410160153061913579477687165447536624477882264768644925700833203228642194970059511838297624965848240571248128836079322032927779162199844314052946979703446076017229648876564108916217108948521581981447689550253529238312834681210741936694583869473824549463377050951803489370128672979693739916359212339977189625732574460098904632818948265862730882484069341585180390472249893880263134321848221358641342297737405821436170418073243345725602574110051313500157230499752879241842515500452673631920108784522058936696245145246439017285667359060714850863705284794304702823995667199350602120034311427909031192780548541831992907526543575550260302293273933073911465387905442030918346421546776621565497347350299251752068842828551084003854691887618516679740641609580770828695137366597113733526074151468555197739437116510639166854785561782244920252461710115445560801380007316287796637390641488799742361122144334171179199502133003648864682723174521223816732492400785901237362890721220062593537851801929414222121299319046007459991975625741304587033270170722271784278719813401280233825678977743493824977090202115317702526409599738554946343288203187373278419078314822173903487184484522250724189920319098854175926349207840864867483761284853189653706350823443451823903052021460745024075664889624886510240509235770291854390567764217997308198589391884043121010085285371089530695817809936240240840644029061433215373586714814883843728802455205387559138776942155230257876040375256973813850272127861546907800593624162520105452468220494245569956399002497384702631322090032217963572554436134099322256330806227580902387362343084106376808540469150285240199354130534809858581298020690013931412344328803072764610820049640529678294723054768748503325528178488428334631580289649788364513978841759983529750047414792411948053554684933580651751788207683805899124410500004135274243813945180415995419198895468260836056978015297312098166460703468827432222120506712895291233019278954111805470433768308779380705767444339188979794778489412600485367161346422964499715962888921161653238166653703271740970898726881969287834389791703702550532600720535596588856855562887184998369218779007844460316436354049706451499732974510698027840510203282226999245144386854410642118727607412511472991443778718874842911880688832403612824897956618377166646840107767929418824434448977063852870176564824409267119087073761528887885439195982655512368292775269372677480675770292757966645995303607828500062866457364069354144959891785427465852449007412201714012829462995221814468786838166260338842365162007452314966230450716275914122814452198296785175370888122808496664056973968210323537953414691716944203487417546983637156187451263111925726152377939375797887670292218871924520453315481162458346230570689674956544046884582529123991657414269672845308816715361356604565194355972135201894534854236070200904640953960542857798116172028935364161268136046361236617267556779226827060571842216497975928888011610638736270686656762522256693038097277968384393316368888572606213393483267017916382547791284527190421402981241090802547072612778284984997240407744137048505373370893203528211290582493054734375843571433342886143198817596989708935636135471503301676818829054781972006236618729292249986449296291955203509474270282308574156501166999421995947961419523194780428488423138467411147466630858962874074389307565752558964134159627833251552764345046305899630946939557120633703920434326531600767103860996074470104584978290085998259143230893808748915241245291323678522178150386460967449054572061021773943446107106825844237638827125908272843962592747630875287666142136473332616342308673268407833571238268464387580145008480268092179864426022871576244057653704883226384687011777216014425715939168781056388301646685125658813545871499922743372352100538305597251032078455667631461182081302325286925393574071499341806268952842584664958845037273637751376056479287389455484760421929117120156612998390323653310491334067272449030537685372658718681490524258958642703653541407703070522444650914659843721867070365659970284433867614127962736197056013350919720051358894868252172043989079538599698299398450862957327779619335491833241519909677668453045970059860050268824289138770829984137705623428747180930133747395619075338198335569779440218246533754176157446215968542197792160671465632047277882792719301954846037784065724246359807924044882546984952384726378157922312107479665990234818590900469512754678575856807775557312796001167941596696904971919579128157602131936103778352300823791047831542465741639317265483612001050683120904403196044237696468761275453745518012915832682319788956947067700520598532600686653692871948185186110736106409250470757613017706037131069536948718308131444787630362033369560356289848115184238605565532851102906086738963982744401570296704357558261176951561131237822063991599497128020589057181034196512059874739523704939411521776845211148816289079844811878488470080288347543313392122061072114286113028184467515648758872299676843025277121062889651001033342099984134029640474311323258457817313603950166689916777771668688676396055623667581473786738677459470089614922143549079260973653735492445239534109268519286501825927847633145675810262943695903138521765413749502041958382456647336420426568593263385133073278007351549668634769787346807844618087118070508614337046179105418000757153209156179926058332048883748037176587126340177034837986036018340972881073418668846764783077798353107592947011396249339232609717391723181720536792302789821975532477577089444964949490340513005066635324973981810629559354120415434260999981100911268012566337405257967980341902352957085503544805116047523945190897714666661776281826866418948473154080841180287688989934155445381388787553476334983138815228574245212077160406076003043551668203199642110375976899698860547322331520240879433584645920315453404467029555848443892264483766840973781935659252079675911670247098064528461048924165916648313372494531329872080677838754848055316389551551376910098715723412834684635036972647644441681793635616178240732164047864473921589039984789704120820887561787776440265848304007075967001436269179548658409401368174761110507432358210547703901173652206840243963143257676664342849480102568399780418300226550164765045614581285582013360833406490528034249382761796349256977850215348002532268336940897644849190823638823406876706744767992185833406102954399090949717701298452594973285030902663469332111847210022783364325066254077859235521286818185306576651871513449191880181155652038761681089435983493757166997878208523792533534967915708281281185463252125978132235307389646611220427192539110216775511967318797877012389854667202088245444204075981966142464756335775677156002824141929653598507087988262902405309794561564823256209211360945359967385985503925299728017855136054824650691694539961771215697773343635973239888314900789060563481055338836321207745564471586203098725986967868131992037482983722490082236931473607472798791452708518044352121400458943298839172291215561913887327963501968926592785526271099207663740245826059816096130957612183195093897749286987202473826432524633110487938322546705135452732987293549779678429780005906253401992563389873716675750693512504339514251516295173734110209389048276534691535806591140763434998713463955108694639129254281765562175247156978342672822714719451551969769973159766402613273007184798442059823732607752864875144207711991410819383558876447732436122614584325224334188116811435034370971810144916804239320349080823957945671052094867769324268754265958778932122312436312967139534232151818870009911820893798152740531908919503673137711174529073547712539562786262071758283689759992703867107918683648081906510014612933338891070489015527977956305827353686979898131093610434222606416353923611833546186254768733138916228586402579162269305125389850211809456554966161720179942519723842891505249907640523360771066829288728829327597033120132280288282686244411359294487253382207593704199386650234072872236863480265750731660443319711761910206413512645213070294284505313207744324799134036328489827111217177222157687208799597766132857063653387520431987017497676076391217570662157516816408211375881198897678701476952286754992797749382951226149329808653602157428440617961620608790625907571239549508822355401396247505312537161763653501940150091671898563469316844783587829157550965653273486788103892948435124958287977801838071601960702317675105336169856045441479483864527880219052082993431644320012832720892077993773183492154257676166193538031389500117386097795943887366974600991432628314747700006282613000176755141657402233609579708910668090545041459370595087037346752387323780632893217359253179410329342940990499958570692535609804103990590854053723272475243503030655533799274579572536319427522104048860144238728231205089682154773464651666704329307247021287508506079709031957058549262361661861268325325829124006127144302575205418844257625690152159503157252100449565919262772511745168856531493843280829292570364473700167957248941429136265380854779597258785694629380714760595272499542437867540011723168013896550524986115275808130632975517965225629400065263975241002424571040830463168333298479919529855120409043213557956949433852778717921579878665667491764735304378403078046204551618215128870392124633882897993716376154264515986058258945624424727306433522927886337784684826333473322821063932133498043909854919552720688579743720301055092413059970220677440203524171031981864536858868767661000676546346445471625016288480878387390856870738353984156283808517212520524178557143410918599394293903951317815544505613730023389008711322380168485403424391426513499114835405719799099529256281075353017130835954690040397895060123780535938298485320962690700283969807951546977755302407785246628983721918330883914939874658862004758531671651472359526747881700382052339591983378700969522502700890213879086609410368798444979349640945880683898459685835798817943561863007280723964302622355465181308401995423618159654557287081972493201099978992795417730419352848789138053700851111597680010343757919672788786921820987314113556130379404141218300236524571889926085753111740167147382268174843091465918421331621522300789336187562627699104066493463253213284644441806732822825761782909922352200738426880074780834815688903346857840924439464128206735372302741242139679587210204673256544439157221930862090740341074635856672545304227609984809283883366065012499762608014751794158119113183161701627289492021298058127019380652161244441416825567914250769321786984881085277641016422721322079468418142065987311644901966447250802230876469808904394270451900835724769993537422879687269657771161921163346317541016352091512901723096719385894839427773541905966039507160393529952657231225796604429284874247996080522713362458281965680805848565892272398000187915184175834644664469707032710015850490248969943322175534637059972217337228067531204731200549033137060236095214772381510559925117283019858587306250684774834336189347889376662210649141800551464012852635628094479637594832971535282880862232960209819680955965335048226062496434158258593549520428392742744066304997469922057670642548615740015166723747884210644285589858687938411669782778047561983329559253029695708327549309499508925431231594414941362517932300563809475965081332872614887778048013776834243512218655782744805498322600676108881436570046832894096537580281980032574297914028368371006880086628055058026942570868202243928648763834637942185937063474256050530152287581735322374159909372023326229620782426979678290637277504890501906129948167537214511963203932735111363721704052367999507496063017377935542977077390985538928010791594200522354682302598143809813957078285067061633376073469429756812772515555041935573226483341240375892243714450866405184472975890122546311539241438414247131137714230900121454473395492723513936063956413864782847299636326302340100191665795762825273763991563686437946855776120355256333305205697378341062018881083333025953419158017097526825955438662946462602024268775254953407860428666181719600298437872007195680192976128189485482694603220343972001179684050367312264326382684471507703099900223390741838035641212214273119759431728190484337309922741088574523523142466496681451327516832009825706946597515583159412904436764246380624392237502253093773367967401453653510493619465192301944898398279369848609595803006904834361526240982426540235519928886154845832664610730210756545926313458669416457460250649315660236463282585487804179028895307970047721867639236164015545103571335298629135952329294301257803278290322080813665274766895829622351980888742454904840720955534941763546472111843717323625451138561433168953905605212247177307337897866477169197175842258250789523453594713169334823600961478423254592108734873279796987385784394531962408533006764793956873222868384157307615567330385747415176456451964642136791949364771971045145581087227073128094635457471181887688997826102424149221255455715698408373191864663658586713074361293290806382260769963669058842227524001649147798521029162755300243393777487784780778006996062001242550467183224270257589600246696511338728424135970362203340074755573312554188864314025995878467095155941594378124141750751045469722970301852535143015935762046278487911356866352699058783554604768893351591039741203228146914793248705444259664166361553048409706404471834467768181258646602370594234181884167220148225418731659444333733966998493450414346322504207323290485029134533766356800451746473675130678886946113801726341764570289476053542147015243996114072968380761312255253077890650326073431957376275594796552448424939924910493449524668127415980129133785084357119110192150229096458924173322093439186509101496189453677461319558160587573528719983917659298074204060150634062214517111768631480661458187504900428289204651712823121118338282442297382201279251810835664088090061078430711519005886204230873049768030277406008015594794405161538983058921799030341662620772263986189774094662010352747093878245134799527172928556367891791862866452584632611547458426396340410120577668872534622017382068956195062153213803245652241214767736620556917005378111447248459208564718246273442506657275135036242494041593702326220245514718581410297159953776902466242045011749504443718152397036111953016348845936132751102568724138303586150714071777004710403353779678389284709784159350166569750899106554990143664587721748584484612469844812904725051371385301643120231020779428233510246730794250841079420541788689348771497696510766392165661510607444591213113999895180676582696301800516659816921731401719467262399038359616012716166374719495995963247911019851839736760218801028958704524868649581968503310699558266526060844651237868095885123389611384332772869511026359996289804541127972087340455913173316788101498087601431904766531966438427472844987864221693997609998447154197525828125979121681754816566652109660793375528711505439702468062453538317109952699919572969867906723297584587287575086371848605152456981014630731572350355017554771352509034029388328004974794728885662856222515165259939117924293260002628500848972315293283609671241050353644194055628798603079908996268534351131639733015935043296294490981553525678444984963391446473434666335018735897074756636803464896675370326630660179486354094584836033732506819220592140836910788333605118836420888393405956833343041159887897335145928025484484044817408666226214942338803530091581738547236420828855422143670281933790448572473265763292966263938195813424380421474185518059037680839761061916383848421951231861597353208536073746121310908994439465718111627340894045107993777749471688067278288422183755060385006664047367286106929436258657784987563854089023815039963509806992300588830996895215804668334597673961252715272807532337618065544087063265859856119606939289732174245371338170204198157383457953283111096049719548896193374589217427857604081385762018584018214492136108762901637248760347197613497739834200966616833356668552447282964344823214972649334201895950505919772305958140669387027893066013411704116999629727062133065649423099036542217644054023927152003206787870229361443692442551627040133872856114998474157887194963579898198696425804131982077074926196447713218115129165192041214189398222324784210458456776155360275420957899433288087719585849497575861804890527965883788091581568028871827334144300364588308752167781396164386646293161771757464541447858894123719842731420464629781242034510289787530985423227627568265863240392858043532834806218779097152687013078435742681331848963565869904088638342979666198045129736245355965926091172970023613132246530753441936808841365038318804073622319180395011273107480583012443598339652064000654083897851880191777892927021777031939315082235123397595435187133559096363019545478494367627036987988173294937292560867608087137092357343150735855210711916503143909553582688697323918594439746435895839555272078632424518454900588317267452066749821316075037356220940864475184448173558876040496536281485440192055950026534619366398878602722597290466058320452722414828256508533234822675754945199222982790240905250024520392531329008959140988052694947516215160325041006935019374622710340328040900207791265875013902214756234919305309705268934368467115383452244988399136200704408333668543159794004027494408104903228762250886572152024927758394469526876478176641322253136677416435408714581279300921819518124307326918627367987175419124943171905319813027035612308145564743980868757757039141138996980414385615772441236689823545616629760687149946564092778417380222551861996627919648870101396966740508916117035831370202508151347891525945719923615870603877065669590291866703886320846801104153324246369941930082090043958103650050589709922263048210191777748823888712661393081116026985637873280414711535266778310308651017849664594610812569703400464178291029919898662092607717182489884706074117105438966882861510157652274542444868248092491509871892078113063083505328148645536042801778926684079065173013374689754452097064558102455933613216853431059181410050639336654341373554006953037552793911873175246017244088090258892713394950276995882016641047473834926158640797593254126649723421342538643088851947930803780323185838753882573859741759941074567658867016015742391958268781847878368450084513729232942213459625412172879329718774748728479441143511675458987996509477689824038579512533136796946034170288938303780010039449726271563779592495707749842650119140251005394288427376280510203899458965588373073816541957434595178001072163724367798210316444622687915464494450187272755571951439938936031278715324176225625074466376575334508364088960471915076289681611353285209221749687271576509421787965915874528477148067423830351190423164385290069079162040698726979632610579356890917028032010467785562412127723628636331172688154037172955418865333866194725225511953297874741699348891519331700410653479631965999826711595784018735001427250131020544946302608310569362876791256081422168599875114205009902479941951438054569251365436576899868371529876190781011294038846819058303442088745443433147621052349860225613094553986292944759208511682321522749130477582541561161106481764240552772708458971515808538026780902713309172528915340817322668843098864381097183870425705910012943940262261099330071673374439198388984336783442926800040743868493839798707472335274052176759373890681643775899739079511903040115709018408654496783041537048841409688023539337768254095995909324134125707807121755085496880215017930864236638677775506168294539450818808019747460497594985617766284732828468732063578870272533779902431729375542650109358506161766099488467298296171291451046082189602171194068525564943100529801398748008327003932318779203994056323789063944230811375739489332571704204759159583514731600761585484399442690397573793594412058747042972566063973283412755968664815695730946736067801619946976603754516942999428173411595063302566758403143341824730317850784586835425250714152080359353435758767349415862055469192855806087093454736320716394299726748373463531017672018060265255898825056191566281888572389206357768191995449720853355585222771489778809682309215371689375574988967320632800040577656752533588654611027957893612490895674802556695782367840628965667196142058798298674071632451031595507976614740356621345591536912724540733032649022147212242111342165134297873469759065064954906296509132626021942897564980334389927228222463133176670830106405301626096441137052752081584053724270140207621734598046351157900179669102098958905352450406631215029845214765831927941264370020240294204188703523585967633442803323468719098025904710886342381069455831620095222095756539010732404521062961965569954269491168169953321222007896696582674296246647119715456605002462164949104840349597332464969656452306840824272277501644550956702058762188444832893140823073757529063082579930251295022227870779546130209636409677840908677556918548069189360521715209938548283644262821469870985978400558979237760655908444177586922427190738930912700817897892023881332402979582505413340092271640774834537538375198147884321491116316893235027644621357890992713124249917788718214159961767291280146968969056619061968903367464075416191031324877981152311739077391844337308999888080731134463905213822676796786130839111110721049753381829654455056439823078824469387178130753920805050752096336752931925396873043505901870812808273274414601776449361470439289101515946743048017570142240474559467717377062287340730038757532270625611800768826291205641110106520032263700248636850295618972600180913085310201999542450539085374453710566530867737845840907637185778686928331596787630476015864369648467956597896857304360668250881595569877672749866952097553659735087540707237921197678600790512036274124641642065106063494754266578638373427878808602074487587895183274257283132980118412391051190036696303171949839711778502354798478027230508688145850749853427004456114661888872459101174860648324124801941133971891790333787867771822778380863480278607327576428353984325734221413100899939162490316351884280277300116569544264903584337724536699373439244535627058601857606267045878811134295294875971842955148277018608468729599337126537773219697778060409772015597746609077020782917219310345134988917728380616765798196116660571758313806033457806325873021077323471595303121057052157999807802990108287528407309359818555458396875296051720839738317479406798989843008415723749824697746573141980953128720226368647651787551714566133217655045259057791896215137046380659945861234370435865995110439051142759872186050978960118359185164736568640222622407721081089535338762609270206137789795643234250318050739868899648290050307676823458556014207243358062462065301855982270920200593015159998268850541268707432845699064742837895960271912567842275360701782422591892547186775159343456663193605361071438296955525855109072755817913402498768297093836550015725253766477090368061550053798486570553059700096578353956502708024177391846545423543889863077910293709410470840028579810305709397479294527549878858075920885971826496523914991172570944949351636220112559551296614508517107255757316155944533110604166586509664188401399778693293313969131311318400440288648814397246195952006140445436447017136262705439442062918097362914936758921797320353565149509578570663792996912346431065412246304167464785092080237134416290313873359017790002787935586662469757488828489997071826685807003829049599362428981705372775054599583215549866743919099076111450174794433993359608751633670104154245478193103723679408206717585449906457137059773083006950291917596932462843055538569256224704832109989408479008480420871507670080392561019211227268984835886846662783327141068049501316422676014099435871422473537433625725382872615514526436504674947936220583040090398468808856473576399356930356868022911637722109211994938921450343744383105234036310842761583326688449153451417865031886240160783039820972411563473083609145936656931634064707716597743643595773872428857382052094654269474861712640397318955900326655070781671309340544723160867233701840244637884024140065518091003247983749349310267447985946490095490229117058357889732664143065919084362387298055306031203235937442104979628170820292965417358265525216477754607418423558808095222571405952970272548047142451438893994291805476041472001555897097368234377176467064003790866921427559110288340394213042039581310572969265786601821527104933822613193831330626621328573831808153342081851028310167863406330648208264573198286938347536824607017931323845020413281653013149255993649780774425451080266219725978978315113201855657979410651940062676803510004565897774293089624409670809879652840807784562555492776155608339258266717154596120648698432840756804038977346096030873019416855055593644503239459863661771921538417143691768370318586429539504387407663178105358265738299110306825808881504423711671778529300956947538136453350740578324435167190703006678908284237003860754843319556419400000676788959157231603552415618649423216422624315055569784801243154984308590738399803003386763783335733401864133579162073779152338776641223386796861649650834451931212418575752094757759231154452967077263460765611220141216817611909674317188326685503401809245605509587572955953804646464577710597857055241834087643490192311445501138411166760945278303170346629853138532416304067641415173369644393489562182767772475134920660330120397343181472623340055897604109117929025711001196462336575071060761811293228399840566802140205779408599144430183115865944339720747534628018057897132953175192905994479226405202356715319322407978784139295412363187711463923877840403435842171230213985604491224838923629154275014967186249240165748773727183663212540731666683589285846256602260255547716438276103781197280673919446173577338174525989545430322120027569070090803656611742881026516155556641283919311702885319569545857547329552807389635645101144972387498720460791961122655924383932382320350557428181812623608891245499220195414764088512311567177590976049386131782843382240919101386629644352110717311039796878227810611850724339457050985017938072714181640697740730217799644899526883875807339930034688286868792039103276406117141492698919623661933495403915001508084002984486034097765278187597925959466239320574453591847925189312194229607321676908608468783875353965006679507202025824091236873023009520839158375695766640118182620299551723184697976737263673457937489575632649604727250660087462802845183605295813907929721921634435084142545702111274300054504402298330236891431516758296628136854632002707644881862029328127921826490823985451009862899322653605801989039134721738013472754161422867006962589891259341308240166531908468902316849384430646350814574620998614398618760442721008341666445462526931172128777784991175598347593411024855468610747957698096468083813494374920659221682067827470734658770986763425456288805392368182981049648799182705705005156269654241117904260985547049605172410902321404151182550225235168674710608215744371640379326626901096191041533433445595545321746185219624436569244276795331197319460763285783508093066021839878680568805711990866557704980330022240961306859678540198775494055490490259235702440306916840808071193919144560886362801703363289673134618953401478828819940827081249711795269391233525273704895181689708667526760360790903233867208061854519180768985628846179852378949973421854214646954559666766861483506017436896711255611947513420200525551881281233405669680917591279445881131180463286930678498583897271938212653109518284250362830209440291620293276953285507684133524450343153567432157709151075297149619601996482737707924538587531928849270430058860296671662736647674624172940346952831283647516771729008091430972037668481484060577851265195075205507219647317453986906148975042627911287581256187745690483547164091571188853237523545173553778859446616884299461448812911066531052244757259093837134406731797843260989063576928981046091412099347021617495846217081978079826624101553640885328949435235546275002650999564696464481634279425893930604273091719728708598567582755236777910443346847149557837932815974952384930702319550484011931190954610747144889551562721824462983516263932895765852307927311483907664830535283766780072462669633003663353429495197015326724876777167407315334285011089176507703126664548810714613661336513679357947526583110708344610637764900421190379462161448041691945934888744026391091443134807187740120588149682815253519430284448397596131075261208372156296149511877308368131929072508271883465881780174607780151585514434314182423445517475185959529421523233008256486201851490427667336524165306747814585598562567322472098595903523367384061754969635673247346522248472707185964888059342338834414024852234240391308969438637908397965840120691814016757862417253881778908515696553348176721820366326263937119037656356874391187054581204174167108898365095348595084407868265887341208349487902667048271489958461554297685061409897754522915370995149884596763716647917149042754100773806199374805047710007141134314230559101947099385158090403547258995308368006454276630262375486567965145799660857059830996772735806504794148932970081225442380263883054641114056377500358431552354125427282823820672334988404929154440582472696507111743403547790950174729329953228225368109683498285353011716752860407350175753840138448699932402970565014940482870210269898431807268024152781538681777863995384785072425105143158796678289412364370853960184451547305326016907915119697694813123910959834271736649468558786922005071237440943035584028414452648519223024179500986108444756591710437098010116055339456705728930651150675752476116734194407613968185106480303770030493443077480167678453347098451712408430627079558730963020079253398278729847328591150006433439126115918614560392422764717506176914410066617226128888682584815473445744530905468087923540791364817652001949588581986624636990780654714092446916439240866492515046533774843707900532980420574714541135739875002331564713341236042533583030438399162835806611247446438602667808071202302833801768023560053203749294460187057148052440319619883863056905703222735344536674406136475660546098610276407016108755833440584098185652357636908604153002583749753459968077277843434793133170452643712969085664266409884815091376350553103428672479399376026757638373115683874885398340316111592024292739678049705179187013005036732527342973544654310561435761280771530836581047989150729538472922882234649556092677914402169081446210971215203117598752695683279180755584332757926770494228385807394113494411814238992404183029645686218239574427986159174838472037388699689786341653209615781689457733216789495819766500004278363963372674938962836167825140120305822429947089341564889728370201729931696343635866245137758172228153994842172516009011358158187339564012821300084921719499578438625869669230481243148051620720224886040795671278860135200661537105388402426811509302771541847265434952820954259240848315199043722368327370581101874950203417574612737747292471310640691287881207887214799381038230848510970915817764636860732041323249439927157207554860621777809744107579272584465365547002844207179679148706290670765214402286452809045312796197069619686381505630975189346340102126566125223407273404991429512671572484274230139365233388859780243147470214088638633585343245653914226611064212517656102621818784532783497632646223466244006661322313507663544929770309722068329990381836535737620092508624905612040691710782454725162952361477575893980455758200810392297435208505373855860508289703272308673284921918170424305257105377293108272896076888353613912759764713697463488283859641356513580527108355735868226266324353781395690831258717939712189269042408616333197563187877022775365623613694839302321469344176074544972731030081189072444483841578842776315986723534484852190010279733027910050456706193832323636886616358717343026923273250019239126564051726892346749084666892162081847378766512725566332797761672887347404470555601582160046634457400621062397325158309241157504592753626889469140588615319239411178232738578910126308138352913388346213702238915582706920052018362637347782531792027293940606583013079377117136602294281529031210242697495174976420523698497580039864134699725315560590319746788199117432246532714436476380211050777166035504281662189484293054481920414111046727327233347747287462446893199224487870593640296856780889118647276579801658523335502148291871950803667781937712267043690064428366067588557471342702360009900873621978561452496738200185783758816096968669521885524794791147364298760845771400513282809159930373304533851885097600687079336288257607119786678815416397420069443544828675234453310255271300704064044505229501372287904012871426201405574214696142006449604605402543563167308940052286312288335581493087699152164233271256310024711426113529395293197969151405748151762048007226663785056575899840237231285837050959151530219838593834245825169267647667003339708191139235419378027688812337289543913336403925909539400326211188071228990881924437415620159692687407882841077764972566461806751451371278560076400299102128581968801607309314810380714130896899688481190771694571578754340207081655507797826507420376430177512123188344596744537433427290158783665039714616519146249746580660796976566386339407317488767065459765768018101226083150595300402765411302319244851364864597538967082489083994211020591383055128760373252671121763756893230492693752646877825277196622769934957460876369762728686414024954626864473805015795227764418854627800910006042286373822167417301788052065319752963786842150881049638765353912165577875383101099051788644290279757008056858867167561935677891873835787216882684676378938861370233206874995589513725395448636536460569357477710942442234846137651273026942820182730967311093396793639592696513853082796914852562262266727914908459839282988939366230179899389930608855662664926030566830069349821720933832400112608149320654889168935793276265800815723792621122316263584386520462389688578375583662577205558896526460358133277468254226407224589022343744698625601306209393091596114928316931714627456445193955245789142175663674774207094853362174067430127889952978768838610351587714322289702648296412376060080744236888162511284925386578804687579208432369100331605136817150724061649785803572878507419090746663738786244350029260738150761169866493783316159097816933526544791628426090411678498018161084923793695260012213351077092962054733960004608542841754739275130068550318078156306398971787070825146343471061841816674333024430949594359495230591148988540315144840222611786825315119044477025933420879303011305042025222720543124371229719285907214636691583661897149325244730458450914621830494447594795422425727203501059696266219868246630977226018153228930773192808025098245114702443571503693684373779299028541340985719632697627337194982260118422959439419524899203559172779123991514081523184404797074436903320373877854691444628492657741283123078609301052384389477923747950962634035520539090564908064267627276205658643680308419965335968455126988485416024389788215732846138804543098436544919149345201998184845297303826863622219444120542607718719522680994837672309843885470225356241739531014965902688012464242859696548413829615926792522792677014458697070244892114321305218460336343492839737663420687323606554497871350195471272036031845305734634158375746707069044899287515813702416875416486339925649702227439585609602961389798907668697623380923823346665462100045417598119671819913059771450905066889845377596875534061528205305796409608490124864289793985645179645187144716543872077847575517647745422907752593247421111359115033112246194810671348077404576477607666770155785779026283613714358773179248114325530480153539246659758198341550266495018003845696610925978293421121476639403833381155568625158694692906441883773902980054778289439194192775590860058405632819344528717166695116811434977156183405967642462902913614119785298358125687023438977328046044229751504450415197941099991943494202668109572926285790611327065806578337455570746699332514795410389986226644557072011901919815965235799333525868650659975149950304095282044736085013686748608574367390574209942985319018324352759366287650792475104169656738755366158090756525674616192321634472662161029309312244217875963813984787205363532161619693436150114517973989206247347962253744168894368800032286294694231811979239777156571957835357233391783986393756344172248993760161639424959442005770671406522555660860185727296985001095963556071826983920884252582416625302480553051779611766181792260486520886522211030417698806889194433760382044759137162628223631688990916664726121302835386813718646935155022743508532841019753314330935339611763304253519346438655562301468253350366777650981183327652823029248315317798053771961972834994808181647032661760513226114302210366906146682192421759337766732803827392353020635441450007652944678916924741253603266897782171533304374300696984939648653726693397734340818902165056119439738735602718771525060091970012329376311473593954568908953600456168522245752576499376437087103798646588902160828474323285318734560889178394178135764219092861717781164605339603401826316014510180674805142387818827909925370049920513578795765465553410611512921017403791928561313238618043606779476508488225360532266620011980529961078487287984597232861779562046621753386406123637157653861494805575316375638049950718964641855103970693062750292546107697937135887182529473844966920716662552604221363611576796803779574146458266160035612377004606015032889646708382650852009625246462060045151608657366774640884316137990788435900020801158141736000361115983017028029174618875237961376978317378576700973099764533434984351637303999719824190231333731270798021640983150386686542733945878028125893062759706230055928666017118631091027564486143875992989885241974985266199100468602850455655480570538857489669885307532613160317829959071759033531401722681332298172394300342279763260938403739077012615245362720804896550045791118539187462371594392472224949286498746106273159233260192896342617918131794649002683973933155829110624091424897734447978666841932302513291493820859141803579415361232639972880532269786722417061148228751069292963143803582216104411594202246931355091669230506359522461610018867416088141949565941141160999508123813149071997157741722478170160162639540804824294581211555683534365740440434963709852095459768144808668016178146762367673614259903655639120533389363375051419256381360688651194732755029123487168951718297564313581454448718213979362918354123431026120759926665327659427729828157741107737920869621731337932127905192563596408499786265006959741057037559339833113438902937611419971962536606911775682076102394797397204319375740263534571497459327018801329865991101841160452797373601869029645779423762998753636945192461657640193319662795807205235220265614647886301282678897897538943247641657560660590923437595839403139411000928938341294146587676467948153211730710666681250460492621820828833791862106218995636724156408811432506782100254736805301438743692816956007212051269355629974549132524115333203863143233089722727149753767738682522942036484731685662591799889279437918192980407508107873394940850227052976249103050806306929298290516730971683507023440935791617065559131480501574631899187530765444026984363991797824072590979375453941553990682887884343272182212295487123226127902995170863267920049281972025226949405770100666186145405005108786782157737635947642407029524658923795403100841726076410817865681642106618153205395361205099077517914180578609665486885191514376276323130770115716019002683322668987159022102586093979733042591762537180673888964698847366763056296640044140898262825934676699069287320768884421569410096218436161067563771635999498940391248325402762182886617064435885492081573217273197586807505937108238162013497776556999246396366362252768112389397108405363552502009398577303501200357012950623493832567023035149194278540282837163150851856901687421626034579282856952975507780314530111659136078399029599344982170028301525335148611789733916689065508741835423543643200003528208750454867767941706958956717810858737138397387907655180627553304995412664424477522005612895144282770016471438350047439705629542896210321378916063201195288524599772991223205012071064090627253026068827095146574530539221643105913539314923426818172915350544719479857681696242262225300208072740778822966940057536603040810782525859351389849317361959761342673907467333218034094222176022285388860858601091185823232214582663958918053989596719595100018398217669455575331277522965118040669012012783255860180507842333234222158372607962760996442289747020503926359983414313143410072244083484084759115132426987164865323354041710040337678313518803807467071147840602149821268298054543506085676445557053635193369522892414995446321955131966996774369490353862917398419922618392941159096798228419486787448122935741904734121956589029461777258164007569879105069504280990892212413402714676839251164690513917066461280666544587812081226069363821175661659061899839137076526782485507300815799629256830973783260149234431638475245894822002042395079804133436044100208878791322023243248476312217807902747013864930619606479371429601526991990075342619520981228349779774893218444826627974646566121183340844853529020025212101727906579353136149055074994800189707290732285539149311228831947664139723671856380278489027956747781326018621018598706956370020554708836893092427484155225015317580030525421092273842200495136278811952837897168429041867083055945835223595964796152384513229405491430961533579093061329922695437163300835613404891032963803454656809092975118600884383611576163459159616027539912758669066748908844388539057231924366170351586867823980976587447487891472601723061673017431289922962757054642767312829950107481722720980203460061313817703324591305401516947126277363009736449661004382242168051912777100953476660202157262649789173397951546314484654176495383883935579426407160352464831430826657144473416325228519504958836079991282902483894382143378700979754574021102663332327459469817729687541563064090433628591041685994958769433935116101779223461007317649194167630625136344985972910734903292581777373739550636867778287869379057104231811605096528201596033858043893899454798776507317515087500525313747315818052887981954682154668237704679893638009155814200964637896602311176068130573264729740511705729530078911309628641907239629010454565885718426257338458757311595327436693439377149660061759646926924369824285329161295504977832193078060849098032796888211272972467853857581471724083350896439302069934672844655239902340905746859796968064985395707344673292336364033565874613438078240310223648922170236926237211431687464139013595636084163079686919255028201648144874400020503340398386825566545904649046162710933993348544857765537281118811882931026730796000483493789566792485265650099181280666517347979779128914645749775217035144494523978694525646948181004257832292466783651302344683177309123750083799689949126979067041855888420187500090639949422097328378353547904468591024872696676351078836620188846428129900332014679050471771576118413566463873979535554634302462203255419782294528489679239751745627140479375930036511751713566718739341725773704449550927530346874918606853311027403858192698873359976917309116434485433559677218042082566745824812702796380186907515277527054499583712424874817516406763386889771104766602298762318820068654985828932131119256311744937875264348477643380239030240013525237478800952637755543730057859112895369996117579051076687221540239734202076878082838849514575789200409367897772586647399049825883715311489864610777950017914177629407381014480020115264900831104064165753529708581524662331874942180254135840109003046802335310789265026939819639913400502205938723504048630933349024504827886652489922734603393062891275755379734639380616014151820482105449331238146417827007315935651881138601800115024305045021637826224363737094095927570987951311315398103962845775194276052827984927691874843431411243168108625138159674630912312102824776163581892227639222333110073435804234668518942174876585584788522062502533069855990228868477278742210434732837536445237755326675799559623164493009949268178228097114250970726036984826951807483289762548599818928439411983956122581533913050131744799687170602306131019674790972075151224913022252603860367795428188766255781161468663422105021253284065802613295594894885688221186093537170435326400057203599189079434217805800764696712718397230382257353418674944472667319574633075515429228200711567348064108067902409083236634911190652524123647371594737603558308574456237357540372805822942419496905943856879023755910514509450566913217419700369353599943670272213005856022007429292558515693203900486235369746170643292756625452375257978286800758506626989019854626858980991768984204762264288238326772092868001668199744457844563870196352624254129341667320598533107371060132576599836659139399466845742049958235269844613055880376172995027277964768772811208658468603676626349814200169886342394158899336202034309648625396343782803442815681251372264759102527746756968107828590818306543775663600301379027975870214915677739941605342563946482147424171099898386023043851362963464874421236980698126074638032736948917091736980019435913554182856331761175970968481826762520879359288108483306814134838954031495384888136780729430795877730150933520271032328294018573909943884443333728906298622592855042628555476326915821164176038153160149148116841239740016380899145500273450666427463021685013029229193914439456821384832556520555343179839889323486844427639630912703004264141753406352254290285595042951657502217108128155854828001761311259855303687879575052693935473414897613637178931226051955015279536876546032381534692897245539121218778263206942906324669629103022507269291516289661159408529908565231877481621727723397011619655770900318240004399260395477086700724601307354245709913308869717444476023507405820621803977575181299852178399349097209378044780943682869149762958493123912389199855329837264213904522597044952770262429121100218985675772838123888917008719849681708092333343785476278347170316596595948752946030920784501635804021380884680700652279486572237164152990711866804244253902616533516018901628601040356580967110705853784569961815691453628918179627804082320262153624001336876804320268365417654376634352807268418701494569722783266361909792966386097419150450840930218470718741033938531202362725820200789071472755355895509425660138587159225818848765647032060570454559234426768424791094690833646641834071353742978102981328028351529746843384233968281551432492036317956292397398533257153132426220428194042965544022003425148758456953429258333107501495708461945610788051446042250366613994307781997319938354393998430960512948402195366540358245690128112445164463925263096006506560475662027741066556096805370848493851273342082789451713723538974561033098709845232207871785024981964824252652347594857713953239219305757503640941233621320233061588383892309542045180922627038685152620776890492071776374335235583708395374290353637294521116423195605116494761436023312528438424027145109162598728068938522538578171829800230646538359064264703529077164577018773553655522379415844361503726909587030514044435722798135721986967041883855783030114956256875167539961457604541850271229937235221858365982069294486320626407948846654069623657753250994841253243647128834500386820265370640578609040699278232165604231455811241462786018154642381762163276177024877677904355230077046305155974130004432669648959458721265846017147348057047263887707003622632946746902181604594425340024184822138563844046320165659853813434263724194702923678186279832154009473385747325847556082606900339389273482199946119424947272009779114380416289789956982244324019891813462588237875851579403261926215677911673928682038478016768986347999699414231154038176464913160437355230039275508699722095256963039933418825421418739190988640567502438701803030475819975926480459605380294476656458519725301536355152979132777611548919515822894702030349607483241957061070555157799869197645019672325987170824220494654689492386924979974614559215111513623456276664791672244226994229388437702138767431844000509569636527415062539667095002836436990406127152456246470687059286232087095685172243507480573835487263643894915602965597868069259194353593388464933024776295413849598135616370324845141351195996265145220905082328610169976047706936352940379540814057190662447522113783267395643102656686181299547805361974800557046872228863821912675071476261070810349977265763493291755207596180950150570355696393629815273158216981756172392599543389288610550925065827128041769363909220625342068561482434659041311559315064116476767300941695581739957322694518560661246999472309070220437533310161996583218733103645612630025120344887374602199117987222630897697004818804432606133992825171396798169576749243570814429190242548814039164980858863413766383548527995348360960273937027204435422240800386630823285490205487946343823604512598450653480903092686334548614227868876918593831368047139911403732334254768457874222263507699797910027061095926241626613382917100056292089841159221613845646080769738650351517477799574229568307587988186807000876726407256049317258020135437484948156192718089032116603892640483141603488496179159594940489919602007890095437076719922376086716035504356388489590431733192105787312559696358739075564076876444420389331220077500054587419770020681002940539665502147366998615496229999103972294937918617145681064775388861921419760011798898361076616613333137483860578086221442174939182787269426703039161452426875487565235115663470054318718087655605742545244059861580453725966504989049891847453270755867873444281947659647232992427414785137571312547329395972134542730607294918493509797842530279269585538820765661431064946987984406394754513989516958280082379321692040162885303314587505954573644849938742498743708306854386007731652540400203565888843044689343409284507463574050476355355285824010520363575783370715966091234557545974412253482023605606831376389569699053964970921497329309654155173624290028972856314908116553986715964269474137749460423142497155409971963227046054604333964450853871424398476707824391892022287815092773754271995539617131437741797054616992986247560856016842947378989226203060962813743217236873763831349613776281434949463081495556249923811628758310936520746219498832884912646916055085471461563148592131967656718883838922176496919044470552189877719167628999361406482611660877654645350724699924790471872212422676712205390322395285780681531697254060395372850093935183926729203263055555182359812993356799326663508149012209337123097137929222586500302647473928750076873609311442276270279059302366941842097941973008506047181107900420489194875389165169860144572830713775050125289926966155507042971739843212843452786287835914039092246679676787974957210949456677293469398329394616858874095016037054869867534026866545603741265717322253679570467401675385037822093862693204482131162405439733627311864811238189317169796967258666138036264485467544893772417209529009182220000371121410780392452725832916352326287819623853608900257714878388310580425352369599686829250912601755836052403561660607037861868293274261282117977976773585454976928926113933349405974755823241638362570939542304581316537575592469245122562202140027665784140599951952526833960499982060903599412674864196072559793598958580202481128182494634215862468069931386809023963126988491918543225808849316673116297916225651440828337865179373822480939709990488278386115495066804409178183397385180232220855338318495855100633249669701374723358063967352012877482892748342743892600876773695328426916660947585144505716183150781978629938721658421276709199059156947916940836870973017080249496765270115183857553023470397743254194692746242964251368373910430233055313773683354297998056704435314865494777469101759296042767235538466932840441005817636228019760714798609991024229100030222105297261673758314709506439590225009611682368773221102367498454149630785844379780571321493613294023125265147174485672274844710348766275056259695291903620357508040423753479687666323450365817510545545011392231175023587222647859535943798072019327803004201337569232932597376218321006205849637875772458967821274248067659572790949620938208086369850140470230834151342418278524013306554660216903320380757901365055036029774831558107004499088068869132707845781609400429110233747129557118368847304535725751054552409099342113019443569285360148192410248801016272430672617539091398444964561608012705665458705368877349993175407367770106916665055530682299089322899981590554896366733481371354104539314455253720978000368620486223026390888910263114108671910673382635295432020971433817269299702004211878762896680875484704388955309552126172963359294834051499251354760402591619093670278551069569496376166821553138250107108463550301257777690459721354667545922206746294873657113803242524735638504608785188761040055408992576731448955604654289726963099181491777342745932185107975966673703481461296545945700060042612853038451497194247237237265259275114263172245628415810135191309517971999690599862895922574564899259508332472990746870486276167296521801081265273874308883596705612503080056887396726939641585934564836325308304079731697643362073424567859277817904972389714748179128168386430925385009589491273794295375170290369954632030627150443893869042689573676511093933638925993319280297132661454934545266535112375868481170532314014864790603390978792551861068822509856025399400226847231586317386323454214100878579906154602841028886783775686962666820422151515497689961244400064246233696810018452476057418648507632796186053663877874136108598814710102337208499096492268227564380481896308057303972750827102902751254053922684004382963809882996143612948811924002487597916994012763480036773282734128330866655804593991838542881345062944444260080425912978125391439783252468922601033960359670239439843607317560072259171415211698984038571167914278124442084540105024552382675636664364309001925746654879672831616560518615574200636442482555943680247253845720092186335976530485479733795205590392128489210494727243788327101257608230392659590603723591369962024156513539601318482876414958308958363531985403349940594957487054753973257760006521640527386495974968871992295500581132631046348695120403838634255403659248178520149248752325127775490974262903315818299239751622245099908602006344123652761344055980654113761022011515452102541998280371342774425198586233473145700136459936267478689956371521727231460882777099928276002598769981763754315976950076055656933424000212939178232546810245991789185188817119460260315993009830252345160154829579475859573075133267930970220629576618189882621889929443366263351831092150208624707747558651853797250920131790926225824909406702882940803362582323299357022104044702485953076300015207294551492244713167408224831153023341378271979096615749548765246491331107898817361502167610091564297904258873749845260448770007198549321531372237550315732266532413296122082144849251941228589641604966437775688857299895947979662161897767858814372662642141289370589410123289285464428422148085297529419757007119961743678240676995758567382981861644589903476712337928519483467428917665754949983088211627029818834266333398904030117437921572391084278238533869720795583477777369630271295986445537231024124010735410296306296375599271141888901427174509271723684953903079948854507862662476111357809537402654920078818624155951225541474291488967365107867660176397356857143052840973092027438001518547499822321859231241562631991816427869974585645491310578071015912949239735887370931558304977348495341485501811411406761798084029653507397160510588348283508000907824500838495789420058405910958803070047443492381082683274031977023497822055944197825638851209746943363550373327871130813258714452052020967890568904528329939710885403749618245835729360977593106709456102254968581531961074353213622371496663177181668130227853089609378941202235677007551553306905835856153036022570710080593481293485994108710949526196771988806223475271630274915908457767087639186393436577350099481011311764757720370118525309929599688637033361871353314484578941415097256299468321372863394325673877872285086459456312079326593764147571336261284686680684216615128273467251996074592992788339930101539777552025177605633605996909894050442699418964676219990721714855026416330984102543529821890403271383726621897244931843507720886129937821188472750918534895604465701944419158175258456338424376890564156823459883528448056521588391242587480269779908742814790940426436998565379298649843634172519981776469336485990482492031429307668412444446508354269680472794337877699198195375385190097786612328209191200338808891760703829865274061602307518571076127956719455825122027676144786487542919158975534918484960239274590594794793041725318309947483522147189826789150576467084279920429298028535636015606179967077079000816896109901604955219899330208303251078920569769868263846447464577217318486169243834506781839208832702926508158228308247870210863248746386699822823241055533042967368790682770641687803486843676692576588514885451675539338694789478331253995951334736297293856484281292077053994667111001631416214991939553873551075344361706457860591098595715364770907436677357814597321760407949693127092499026447251231112124749890234760458376371830433329436960147678872144889864522216335687259350493105481852554087517399504370200585676946066852131993395417444811359507188855566799035833278528467272982375687641491607585889521931039339770227747856247593604398113301427853094418588747084409060631526025594906597105403865706765591304580027514419923831912623175223384901129952696316835250123659182177314282119461180379940054423123341557099291430377994375043563682617184069778444706625748285864462094529933833485516683823517619140690688857298840929935464013636140732974782881568547218459205255491588152383651753174089307016768487821040514662850225344802909267123318688268181155544948126704568126999322524032445172753798405843543338266019778356322246667040960468159566797773920783511146464807808869370955407150773350131495189997288198624744642002930944953000688751815180079068228177814088970660728389432786488078892189793486286847158450661374964454783060874658746415417630575763759641487975329062112127599380880933206928754597658558333114499617699178038969934835178130359271677690878627370040975148665634810250753879815131877817596544316812191646534591973565671139215474249860880487829345849044775003155148944843683188097146674898730840382447996924335509206394889859825888057919094102152584742796353044143129922381877219277191577089732283587554198672271469409133521503971236043100590616218729222123636017193359654095526805232005901710975578579942970766521159022706489722872933542768574567436025033286913306181053487840430563513640158894138857283952292351587030338080664885993545963632422109457827912139073584296598956277452944446367030292388576852999714493366286870131581839655417848896861687549721959398980968138756593276648451183663104692091834110400973801185134909438866292795430880349049021315485393399442978402863967100914057506519047484234784432561469293101690698850985356535333905544169467609841222900171718646128746857111485356747879368306343171785000930872537932477331412832494367954925365249778995932655577540404952098255142997985300736716873079360721274238600277575117912509971041597603222065310174303688616789429984471865946053148050831802545494083117350081166885277600422889550081831238173323080236766152288581797966848121610220684421687704608742996462241910374563169544648616272605033576114570988828015482781286869511366198143832272806076824971241395977423550031369376845868588690175981377611082593793386595391384204043485455103862174379695088062698931777564361107662762189070384044038153195926168723387213928952065346767266515482255635969325677462847097290537180554010809305779926654171180297034889916328141118724501595942747027886261904630500968527443425458215962437647884683765672331050767828158393239806782881747457037817680522556367146029928189820738802182887410880178540930796437393907649716020595261493990264374476280598721442264800946289085268348969057259694246748849900450575761399769542945250733463069293687254886284301640443845368633898059950854056200990765388935977098520199923440033727160621259058202061367819359912049457553754611086328911784112633619346462821341949242147970595613076342281497601278814330049883063952729870591937331009095989897531254695732942476524900947256835565768451222962365479157903731607199551290560573369721583266648791062978047297378625902880245032390564422674425571536875945645005244245385574432279999785963160113266633680082076383602729477611510520222784443438086938553348434831147521799918544256336013322380807291218019942842001963842143655964831430077388186909156674457306377845911460928497880275671514988903555673411049718642697450363631620090047646182975470119497801058481186166930182856484387164779437201750993687618534795645198113703817705209230872797139185899198468090729443431588755399495888741575103230920191621805328572036450677749740928531209711045203708522558899206116972818036631893858315459284916400978835737647458416766721276416014612292759643622959707948727539960947463116391170798725151308301808949380784479455308994635817425215193635951924673434140984150000428282726299527494444476260372117620995875649140598547559511031465787329196548861023402352105939448510141224627930195228903610854262897303697600760721637757224273072925656820164516891214857484923293282385310878351483260773262203042914273947093580142708920664713220821671964253852175575008696264921271744514516410525416738278214995448045517233064924049095860942397809155931466865783439925814044892783608444987295793633462157917190490278168440212916154766577628826250430036955605178442225018643248124034064611133642210661812403532648805547864195243469108806836204665859884592709850779868608506512527522679868538473324058454798685205707711937422761645137654748514685743330807231748445903016491907047529072700855182046354787178854918876679529681179560640580996240041049219982923039650815614293478082791017582654697331688799013006052398221287603290336087835271125075904588434813539131470763314439022969020830603718840761353834569311875965233025719844645518395717609393138772435119722187876041008436544307188534884599002700513981913961673993983650493203301770075665174153478164977990431813762752992413202404881909325276232240210492644893996239460723372680791657790557844079765891459196429241995535395132531763519465863097550543995947760797469721547530948737020489077511580431228361246294571674841887314034284849641828679784513077746020823904218815411382636451484489123876422961191190697335806153007716511737651968725424970703500288361479000314899535217151200493172901258148666771676734574800238134181735547310855127190174798370997017589803129459417730710222745418372954027779414753428835556197633682665963525117106018891388892386910921505479575488953547650847602892082836873990562491026429805374043378468410144467984752626212429557710746772275365900060115429286581666637044927801237554396899962262002565471312250885447458210169406006256470928901850164080048128065367233486504354793314054018276718110607917300080683584540113512987791908461821344684037544514348683843072939712938055595741109768192641147006085703822627578395294744261788282476655587537396124780007942431009664554923746970476751543569814893790536709668999591820145185029511703633478075636260758184473310889200486091645059298096469516596696618255136781503049516442783624276072715551432907685950254431873323178445543489022245502607116524125096880387495160558781729680083208002911903028701262949610122098847744972459929372963692341138310633968419691205297727907296629705697481061781213668970168030482243431530971593326113778067943905216014503469745264765425356929528483909521784785964485114703395402756218467583147766791521875950155872335632071919141451839216490131411313173923826609611050367074876724242145169675985073319121474665952013493427782681027601840328123653889932977522027153356755504708762147105836802703595119794744386627079602538854927189576650865000427872481911333855160265405638210705562077091041346722359645364240751937512272281732155822377710542268673309700155408618021833059023956756911170355363242938453161018394516295522372306139184726942165201152166955568418551327476123733376930022209797166808919691424089451742147158451310258893253336357173579066829874134934067132031993192398868659303361263313269042941440500745196326512989699055438049769399574107485860143443515389450658231029630674833157351464094314803367892583474908134746977565927583559043808704351388487816863714887744701161929900918485425468171723825988893194598270495492539184005053544984799501280964468093171012048981720735508341112159838119228984462224472736691219467653627677034508226395447351247468272343916121998117869640795097813382513455745733684650816038045723581414552596601671786950304271750556717037780333507513299588153270377375671487713929623242952002344981124717615404266847647798763592566781865511011559627365122681697668203087591018501325077045400385772142396992925418973815248311962714243083944563865138515593775551702276671738000356022129968286608170074742301821891207390109999436327107376258876307754183617263461295344733847870002414216529312793902708453362035684755929807282903935398524012489110850948608873024578658003479113003510250082827057355579187270699989658999149926386396249052848030672840722702652200622262543757491767201822419333560413331296496395723677938123551906144230890268779348084122974348157258118833486961870348399004516093262921410085703707273290826090671670443804037817327800414287224354791157756029680046718753479810161957030661709110372077833977892320561900034906573650760894579002339657823365080910188331303445419696248782191838045461582614173026503806966392650046053810891524418342331844163990017350562589299861773548749570364525692674894334681077562560691168538117182838561205995535283106615415636441348803629338514444654176079685439472552680937301490809899967492194933869948757965092760554055859704282095498563663445009088097140282113052282695988259325004001592230940327535434528263962528738344427310755147140730513391481567784973709383790565923626012948718972500715617993481622734335578975476195718351688259919260238421122123077312407334293967063188080086564068088389479607505251288171887476689522911855714441651153556506708898365124103311628079948900577599462916940945672538384362256524533140178249624943753290585703383851720642773529544048293199799137568946311530513411990557261280056781478693002887339777506229108410833322852950576790980993220841137740724341219877345615564676387504731789884784763715192026878405051327455207762285288545573259021294288032962131068692096210599162782489284224458076234739290591506783130565351766716355605521404371477302192990654174419955712164730218676736850090646787950170006082084162547621545301767949258880414418283224113122197087985263421995459454642601605667336861335377056178228507842210589193398768779158319433953649113794109806263373299696790784181993189979804149062151161869375266539321202478125950150484534218082158249243628569920939465360518748841375832622774950577436614845302516644574595040559652888191294556894466631011993055176704322012272810612817246845710082946891819044485183659355034705026801726222762602720892346695834269513314992136153064817461779063714156263492394241718593559745197891219539408109149577368393975100978430346437513242271436476377549502606262026937026211843705868761625708190163648026029426838171168433080731306184129902937724473271772298697494407180369305246150699723870938417025496840993329369804865862997862661101091418511866135155579171245632275849739528028429671673637968315690700469111920973326806594276275461708468752117965426556173849223600377852757834266968213840023143005794434989991598498679638237169464507081073953276776396125438882819538604739169426648948945621177340731754166862222863639728036197975057456027931594982294441948439693011028990081765791012999282441665390234468538577210267232622351189984496660495296681771687848910331154542451873675589888258108827394209838065484432068177918009105026298833441045730605351084072916710407187453451415809456892301184726409169228203435111976507091799248860450973705533971267544649516687996899957237573163478697487160686792486383917041641724463116088222333983849026544494926714946953084678038489608226410862731399477477178692539620099947698748063896835829671655055400803169029913116797437494968684275687367169180654562818314781115311911789950742385026808800656200642582580955049797655934877213348276120367213576118348095543172974057541220346939877091185702021788562533972895443344513688114299107996644186015090282611566456637420658561561684192645292985224137730743937920696798809076636790668374699879683403956700663788147540569042795154076463841113619673288574368163808406437130188004200706288669907516791037340200352167335439609550240152350516928780796771013661060972830463880696188377335456995955757234424838054485957775416264575712355187336917073929667635998397933441739434356868957129230469508829914059101601972720256149937370442996608102465367582136142607162673553244410114882438141137917187645082549012882982246434361478742057075731925003206107415713398504601397478855009103181765780861059855336920454487456546176097466549406386082634247000335946700564798230192550507543445378440402264963654784441432495824968257342213707048703008623983028863167250511013583702641126821893071401695426278499151226992235708402982607213659984200822213286235554556783740896332346866133659936545056544786330768456435845631875934731011236949511539318381627896146025323284952290476229169215959506148752358186084089321949611946490366951026321888526386108957439249129906863643986732290784185454458472250350441228043227518645670092578972156556590931439706283917573699740663779531136828567793721167032337637596594537933566075607197947292083296419149138126039928234566232910963785393905765253829668987027143624947308053678666775389016853978526150692031451162177823253805987477097959130613497904863272116026054965744403410710138349935831888291089891216497104768570619540122129736309583566444811704149781752625120912263498118990772715864726097713017997381391231194286839680178213176046218297185046832776350717302118119876422748727648139488276358571321303010918989700587564772634678147872723935238586355932698415423070168664261240700838817146970313993794881376604179839956154196906334665356665595328871971883309302273645001415787960291575234869494622014828991785001083735231178648658355130311131408789429355195242845184548762866494860730711568674343233052207234225956746554133070623988091442784024556145599050268569854890077717122115654120478132998991589892705803548272696213725005385241396702999650409440432006172466616215982520050389118585477438830897896150779343257105388617856249011022603936527088957871227410137014235722976507876420628284053309470876269660128176533194461638768305868138744658266372229124707165114782470868053452909922859363964768629134313136953039707490845462470347490464023984528611619450399517118776101720277258651253566650389427005843186111629659549193746229255272685374842787009146586636456440953015439747161271428957006319763655900842769729088875155073506067968961873911811725412823551036720182058358319092164728230330821981780374139994599683697068907975923579748558613652560172479482244980702669105819976189555200719027071328922080672405075296927459176333543669159085250716867620545590460755555666434464371725665366092665647444582791538396663849830443396802568105717233078932415705056878734367133570520873354163579790831685750026743658629695387413983269295977617786982592411271507592457004990570283231752332932518903346144307887372768325209577131469742665295289988464423236704214705924887482772058592709990710872901139318453904351629181160378509517582417946323357408355888387581531402462065696799284293357550304512036873699899295993376559558587709961332053124830723485015539390868061489298902013630801525138368063769969233542399168671545120565186792868703751883295440373277717010141346470952661237057112389653130062626440722239402409077127777749042929200483861474293808211856293292921979718576057291141159346304685690959115329352150299433877452300078980554278168985769817900518392767239118460714523505430501273834678628582911656887902410435316373978295243446662804290345068494149926757699828959139097590382618503298297103426041732655390951396610752447491482758983624248135918980737225717860468922689457611008379120974471321855233863695828303653809679387853724845721540802573090880877956603034012072814115688446544340880640799208528988296073408241986744237528617103677920014495215732397562710485751000944126298395926466068325022130699715963288147248891849576330290042301981391721285257690280054331424661165583365334000030889937766907183524450487272911008213657691935824904578378146934660730257226360520061198562277965063933025640494112780059382590731786934309317045950378803842803621222703615403140685030649795353719744448977486264126363366483697755197948144397386190053319849337641230259844580554501452658113113415439882746374271841129245190085768508580711367935915653801369431906829448826168775624438708846604421037843492226250035611843252391165276237415596279800901097457889630493687742904953865085503883289065533132732594738301662711683184023502141225751514574693579749883016699227152556444320816282288184222323215015701621145930263446788997448052185078470273458097829735381290546429769523290000386268709200630636596388204160842812903539246576505931607946788370091830305584906571556999585162944726342284206272215645962427136588612274942873708754992249039782351219272992234189031031752350253166767805863240933474529160801558677145972674386444538054295682488967482576327246272621611891832728079578057006738733766982415029234794298528987421176423351244018607077806544232287928673293586504188544068170466715438268905576019835969454544110619893154563727458185914916343347069065694890864607512976972665557223058117510056870868023665213199615437453332353547405665422884478110093360768138237911415504425887400195328141929149356355849992716768891715812692391548958497401915992825136706607874314350360905502321224624124969097438343008244063722318148163197427781750454001266181483808376848767572419022737851924471497519530558451964199590510638303655053824135931303807584172015851922323280716077291631125345798100376134177122835531572899926718731296499337201790763184291623901155286212107410843567888836408703775295225437479105448996928260298429083265552340173145013939448766083709530375640948920195255481695686622319507162337815944178160118814966062819125068540305377728285497838539050755052206197461469782613299408084261535268159457797005684773368854698090103999553735583692174639068409844038312100332051704480644092862245315797083620135750415025071650709579114935523122152256948472781599323437444779810451889581305902601666634345384454364156184851556121442588325194911993789772328890801658253502115329138808152822079559285062148439512856062197014541244463914503011321742320953130178620685947820902439953680131275809732792386875922763888985746910121086425288966706169119634885779237697765909654828144631443951787339620352601741805983901871941319231399497981342081511636145748009943295399255585164216581765034484717708674072356618566770106645377214665128125401853900505043514198541132520651931938226986146639593020467601980763570928594640518050654527178284060851795580140648139654198568638714667059390927355357948427013788342586369170307898294314617881274529214819423121656277431577613100226532371093208756883255654422858230173375323446325937484980446122083346967114217911091136484620272850154568051829600375814376931673840287963743559949423223225823720879080418082200962061257476980675909932454634066865493477580911103470782527521718468472345460234008426370003113239358174107091583372047374144759643814768953347621300841174768741608033301522212746022734622205233260473097890884308500910465450830768494527457941848722233683277736156659614614474538848135638217131624640542166009224290858398409687934859150029955694098084619306957997310079533518231930667039213752772931225752189025797330101803201229952404697052375825564997332466655669053789084349135193005043026960869868405205624226589635011027221340713624931923692394311130363962206068360327822148232798571720926050087968267496060663375942409015705583381066605646683187491383121912495053136532426509582467388324686856595904577981862298675562091880719440428772698876856779722717232045941908288415495649503219086743361683622623072082118070124890669148861205345914942801491977430450755764328789345344430872024301109050603815087512154234160363035732433403911109028771038903571144084555380822442014120142824428763434850133523230481822878482850182616134928984972965730973782981969449155144639853719195613492256408279223237228065757787268281200619662659321594234063244641830344377472980573263907439462740273415487580609374227700597544277592328716546419024468964645306359226633454675402762476175479312468872729520295101204698804735909120666160633285245252212961315556197638751384095503266029321804415102702743776518163864071703621938575477968132230671839200798549557053663870054225774839235647210685920746094519972735933159655858487850398541559492706829209186041121965073746043608406307512768015849705240847319115882995221410307403208124486453967905943212630080279774513781437085463750116900855729858165236657564169531172038498667344027881140072167018779112963901169247046611978709293773536562124475118169632706744095819667833359317589820027369342991186248469251512157938677040035313688428527141122484183137036207531421481070097352528592270312958096550167655923853147185131226582624304239151191312826399356462489970449115066643117431822738984734502531413129919592708459437330661601649707361551625228687233203635037838347477279986302616652921205097144958778203509324981440605063500706301350022937857319068230423883300558219293301771804721733897972330985801604871022995643338009177127584739626197229678401957884836867722536960917482576511038614093203477654251440023177082654073991206096348083117928652060742237460704106350211135036265188378881433341325097821932456925181707240119754540102768721807190889703516796412815616925393084774760597993956931408138038931645375133702091117302016241581482607014323435827196595534017427547407264101427141067939517400664149525742925038775860494776747482500593526575784451542489640042609429447494215947096760372936070451404899805663686092770398290311574816518244098302547280117663422621692651036708661438045509433802377124562286686480118090501686042068834307224243267213713209950934566630048654611826732582974165085300400974479690883924735773886888016281900640433880595349772485081932744152257209325154511634711847464879394410464707604526763177663151011421730502775468551462011444627058749521018448596586859722695597993768627277621734954102463780494119482559659353876081057732850168095676810002573965351029307721451141238628123035215834695167422663913169994184443338780389002172433244503086670523586236560495039111999100478175496771273275071629685852502197106316695507183289132928144794062258627947060282471755475204049727357236230924715290504052349522254594315810232774122570359905627783640577646984026126184797582552953527717656704439452769400673310926576148171610100431069090468621679222047144294181598932283069049602893932682815244847166820619898292008942568272377540757591163152966529492885988231210037567248841013783056261433559685717207211418973376847017028982168474629922224915636164822134715121144018814228585203110761697779261538391889951265497941617619052205742260584525286505807483682528043921406551179791873256885610455610427268516254109979109381487858699758614739586992310377100371616701899027012987938156508897505049389155262696173576674556604267080691728328726251870129404103557974015753787224467847100037309350329753323056639387612892177456267462508668442937691964075467509982421621643798236506989678272616492295991430429683485049008743820883656030202056183007811260892255923701280667855728820327453982203564867786926000908247137453839014519912951754882629975786848494971888618959896683939149139607554157316273249307587838121228867239869786068854150350149485442692323341387785115502137407444764976244624792550555976993717564235668907043812666048795191103085516272546088670122045518239978716847033095131389328594365805008706623227714882810538643794503596006591317803071442110976194256075502969818850159148367815075271588411679479266420853686852836632750194938685149096768649175651220534269651488284891674721598844207294391749963008834893013541228933975824363457701410236276676279254629669518304072435784745743860410083252697075699678771751432603705662388105414911611778393823606083956198864020581212703147476486278037545625576445006029421349516333281717839902273081882146622371862841443976382733541616864953537237298983118428812872244971530123915696838164289416035495828739204065415531074673486748810805889522134290589470357365573707587918818319399161788054911948279202457073398512984652507618490120635939447983041498299389224996180817647839471253344292754774851349144340791960066106074575303247994899357045490463152487600615668466034418081705741020993201902289834054867481812207952744050977097923690219501141638761441956688011556260465783345210939603670378929322317316238378949700800808583994120645496497916345402611169005559226371037641686734291347726080930273952541301080891553479112635006501509077607475144403205920027441587798255472462457397592119769381299171975111446469628681350720744188038818694615051418964935787202442720225916581943402956529450603591287486683117458442210938704289452699931836209548709720918660401065060105038486978754385518376694104846853492053021981822278768325892484583183403990782808455442635288162346783457998893324858018113333925116069582998222422892341281586247197435781662355708744227817852813718209332381209004750658661868671705776413212071853583981813775516770328310483609012861665941573832306463239822429215421810365484761837121458127375387061695001120496845066595955766509701025345111263528799768003508709109684531818097722873073696445980246945773597156663721503855315844572292743233036708997169148757112867954477080175232619311391818128939630488646310329080234496450838464877672373973072922301260290975060409054238295011819270633677828060218463406549108257925897417754695003736235048255148710811135953608154377703108228783257562744060831218465642811938688999540246331934744714993417812333322201114037527904841728445677107142780989512660078021703178832645873534905354345410358451740268307590306863042666494127468200740860959724662541092404341985131251895307124840057024276708815298572893709053226512749570639237557149026435419601923542867079671323802945676001330357727206627160889293547026982511808265782673533337348693524016049020007196933525145409326326520929315887092002655280556727172037191635527338011086005247025485329193293649597005808379022738454375776986913495844566764463782378026364503381291484321081347721322841515904993693387766393267757726613110839094886101316568240662497588322126068806620508430034898348162257356787578952672453800914219827809334147343946341070006091532384073211601241085802182600211266883556352819723874058169019570912731667955199547974212955007163510662031781735221413319012121520715841285840717078788724656613834194205413266605811178110928429791355074465667788795220107619611470625623413436395741408073415465233863842209339457573942819071009767291481846286524414487706133052915993367415697776118456689279482952935921181165701462729116375474664744809745949302547024574095543236716813573800928895807966698154215526406533989976220248326515323876154503010676838338065415474301758562355905629298673881847533743990234320735932105534376038786883436436442623621422203551649576641127733608447826802834125758463402008024423461020888696379080638700658521450599234153414360128394947384197542121218049047731867967226423481891495867637200775159776575313395680264946252058594129336999421788427768390264473360498806433540496946138573787305099393601832958261848453858453263018645684369252360503449027972076374052882615359284033583175462205848370796461412046186084359834910750776647049946936947786467521868092486678284073703969280524404612657014080512502282824016182035709833214103599997742544376540399671799222886059491256771611004451475543944888456955332876598953244449779466834257307581061228615434437115317143941478808852947857360407106948428445558304927994355260610727282826527523784934566754020105228323888278486379568860573910303425756542043866715318593803852264403957319884539265559705130209035826938733778731863003442550336659237092613048700503968914119601127616551662286599360554041397948817720254970837323990029298886337751756248827161621590665727024465017054302464753558919535029378909356545896224597464919449845875806729696472605926771419183173355680397541971261429037040782144582636435943982437685922275955637404633257231861934573540396991973258297500096688693337250562754176237280661874950676886777862710087704678033587798488426583028358140427775027473740523687130858467598053071930616067091710394756185806901920216712010982869233054304054091643036069318994371801930095406115093233239589563515328068234556105989926669024878372114408019156979636665180094276110170278622207215620678065197121684088490087766625376669304425623703342088233333426926629436419257908350559353661649607178124349924025673440060605921575650188004472923329543567482643304815873238097842222270534421642751896243017002408064006713398548371485835768048857124499873881577990723598246937673800700368693304013573540482142087234287976252206890923029752647031989822006864094252352355543922209863223483395376875305661127249775665890354355727510806895587034816774023386222381544459509158105361641912489872382818302560656357781864470514416161871249449433285616645143106475624322460213411773483017365985168233236644967393145628579200111674460115519636950953344597725257669047819386616792614166148814219673766614331692850219279885983073594702324968892331204519632799988698101090540864075187026966059546109455223447565821625490918597963971357031415492241162367570951303343845882313437270827969521776852807886763964049745803618764363782245880050862266059934925137902798362788360691214586493307666455545087127838764975646356924897567821689543723789533330980618464934887938892299017187336750143717118279179778371333808728525437553507448789752570548639548443661569034466161721110120935475800077550259091916548854640322534356148882782523336641052513730746042775804360292003177445664456675216559556436549082868013287632332798524190117834919421426431747973524582578048700974763994128314385555859621196300077563111531042147111362758771683759780922809094771587472383194166827484318319714322906465272689557649165539283558759451731345886279193138180430801993160572103995864004805217866045788191246518605757929127546958534726921983605100914643917029031459826881030680153582970707578182959217521785021639790096588041698361033602211644770919215503951853220751294938335507696846968545790460997708385007736861772597970120811773382293854100323612251418156506006570133028084582511744367944034155670901702826340195168585245113581816005060396167514224062552774224307839005868965750417082024588083969945288186467669321578560016225564598658696861491832205188235992428465114764986039490899470908998625497852950345098860250288237161536494747580300316492043962847172379829557462126459779223512868388392379169283077104390383524266003770786133823950309894776199845440716548787232867209583933748993542282329031936999608459242774895084140910910913282866431022203260555282122970777298922927753843814924516937994991264764055281333595104214457642695973669714885744343621181477200534132597938938050289423192648543262908829298773509147141337457075603111368638363901074470937216987034587756204763419817820479864579171526691207043803096436004759898607642183036192851834710896410091219856353050111441000704056805956879454116293022562196569263571296269636119732994244369500257723582000460657897156715334180682967781638377618415741204233184741243779749491538377790322450570722093356692054721777387854138820445983710657590943693514373155750526358754752821228085679488125295473866445967522554076906032648560163971373712218151309674222459030420484602932206687475164010852726965278272070800807448390304699309960792030865639170366342970288663229017858240555323049081259551064674719645650667178201574426636881466450918976713957933883713620855273903286729678883936754865913843424744447039810602348904792963221703741983121695810958127206220152729232199958797564374326186703241406391110731305130323495976931861242644786529854817623036685244178190827083627986456007152915313025415968367460381580288133689777695410020492992003786113257920401839488805111606821321233494880591383719991960947286540240291317400148204876732701505743161702346104329887631665872516356065361253477496708765953895967973225299250645417197749459627536574459798808081381387601811609161789795351954358369218083058733011113912860332568618261506984538415764556507476123935438295932567100644195655776025757151177741019543885990123041471041302788651921101932302997203621743280597603383347305267178333433833558843019149644652850733064466564655534690396437406469446881710049898344316889107397390520359242305789976044120229137042858582392127306053967592058515182985697032776837606687058643819586982579816225527964991440575427655258721512363114354555106028728745720667268539761098058956900231663017042233366293401676100687659688257789965933106803363460221062379296511144832622874056314665367975293333649243318057348369463626104951253929823433127718787027091551892546070661842461926725775120122644967844538823170020122776341205983871254894335555988897951961318950841698151246768223387262052590463352294611492178662862390011306718686845921165563473462822466195062663508156413683241513897701511121912999845617309252233995943028631033920203626081891491906194776409245062108827340256455746939403898890171052795102475668219213721339675521053143864234871313569406726342249416610395457503186320551749540758898815784168587598760428565468240841096842300489436092390348103536402748873881609720865956907311668144809232934684939407782146549947251508424573156002837183760059070369866542573226145358932036171874887543397770599702784408092790092143389643056121774018938629074816780933109624028262903460809671990309462118113265913300442594356276872074240463862047776154272300836756611035305779407104028190257721437001645184833405555293701900854047211834064361900874730988938220813743738974102375476007432011012400379745676896232014720614960329202043090428808125546528859810565643459875204824224667719651213371345931956343486019996069013243279990594111956707617885957245123409273448157790484598264523979467102997297570637683080861901321133411209617910909483678342275545520050089593699659357953735851319696547936591955827848282211549579421076408071929128533577482985000880164466521989148406725822372584687430041789291596106721894312265513243351648088963936246362934560667813703833488888506970801768585270970607514942150199534425090738396836139501683897026368021362569175963734626112083652742424024830097206303512911451501570614827939196450130569936839980531094678785687060104781686910334028165935025661094626972862294383076590111570726803507698785068491422774093272519310931812753219974316733921888973035068373278530401092933096852419905655580821459131053221574076896151341405192215981842774925967809671011681866310089047680575167207684257680979074837277815814743250291992349701237476938623002068910545972453654953398777003722045116484288367233718375201513889886886849171062594286796373906834805463689750542625428734082475319316148139418586407440887590640859963549879042749847535223642270751490511665187365368438895544395115386519554077156019197671154975816465526378302878539980094258297592019835591235435294572039888257980424712278261862813676910320009395797389295883974123107979255732503758061814306509219774095905712751944117619225592374340811492464404403031834901149653388426711450357113879289218595733175643142262463796811719264606334410375458605982348969255713251656645772171413094117302685282956899073421631211713615625468005557355990500178736996994193203195675129158401486379382958513273786920550985167908689745919195775084942912934673215176137293290554464454502626902139079498466968960904224543665852301596544885871754414555149237134676792421459941659570205858928919671058962317585380402246841946156371192652044365359251585138259856558497627965330473652660485356736232284807627480302958594777127473521355350621282116277686594292056376157707494372876371333243490179971997457041763641777127229205634790544568911824475481238301234546144579956283080552894983864275822232660811551207972649816778342421888529046208971509277484154849241436415872136481358946824816378889305101485699922438465596228544990698136059500911863259012946924767666692860587862892890926646166143267291719175279577218382764290999600672988574773092275845357490229839336071660241329954059309236734349269486903351593116731564507069402712231330425907858282604921508936579680325486336974454434632087381342578571039507920771006941896862677319093378062533573569818675465005032832741261516672441023759167406621735689545019162987483933189124034158775421563071035840780825061703842977012588585861682491387405896505772544950921645119375359019937475594166526745383195495243095203429402649681170498257004897653923099272121331345963336961611982268168925258306700180641233643599066989772555639624734547016528751037612030777569508882926666620224744666526669229057667476881702402423989133571937168947081051080479405627124158984579484056642782229080043326800787240560910064473151912920813793136143716292302568586631974840191938866554991350161583821920495696486018043902323827606994749679170684021702844735417176351420639907750340883385903891651107487318172180212302453247397020114174137033320306013867802933846481711377898660478452410325621602321751625991769495933044440311005177333282914675196671996387220839771091265763354231125577222522315647950120923844132898492261844385762808008542471515102128640925431843726996330648204235895576854915827367148891583172170337606074131409031120496888813602120303935536395302770009320552397601923241652092440667445577622756051665858666059171988040221097091995723967728243035791013515222339606650926376923960051104535618788877725548311204828960096966882519875814431454411969983327604790979138485271495364166718125935966701763706873604343840380592538905599615207009038171633402233227181109493753299114456951444666415437089216567519676703941314824370409751359099163003249627626289586085529779575804098364249800946497468358993322594632636689363324827061437540560751902344022895117248284683121346297851878583634885269850300100948511564636245031690608905942340896907678309314571613067655053841519982372171161000560391893611568276097547900973785582908382380018696433511098271490489528611755125602306204508880738182629085094958887858968636084042741897265396286469046167632635886031608447384063208622708218585753864374357637169510748935817163194890154348940234529451172859105759996399108022473803667198043086215714312323661031609043538820684778425152115256590327141120549192312802036847368138941743325214894693582187848294317381205116417119216013948719998403629547529747413179208224212065585008210495431248608466462889722532394178854979486006055671549433264785683040270798557199644510070304899371619650476105315593445890452984994020284593148740128687714673639558543130672094948083116776114608617464765044122226759286200681524803404819162564578295937452668264659001977002190926010664361596025021635882710285463639686020704571857818695765046448115837361909546167498957029682086977362120525657671039421202160010190202287900425737636774606514346387031743346706671156583079874509657654018192467140828274935785178214602921673718936282911188750399990574727386994170385952276709926726705768955920720716820647353799047039967246543582256119359355976765082323805352433845483157462707487406431387372805823230980736106605953345577287866969128353964661763697128819287044621787205608813288402096422442311361966682978249711770058098446364789125204999152444544735129102064122642993031583666062446471924942887866035709367100544842929840427406942615773933010674666338237084178309019353536951277673915858791873162166595227534380582045417658970252965017919564379131972871030499223267759768250302455296279170045893993258140290502144433002255348203854246799118531656975118303839919625288781596203632495124244562763187530170659919849940824924320913394296572643105699134326651170323677203690990535085217791549637837594051355368710899985484758466195476596041056752292184988072036023202573488130430580603287500088748356296413014481116890960876281871126681362014762034664451541317673693367268687514887205556651113982866861745623885901655063960616115716978880989787374539438656216850945273316663736582268768045957878352726143825563816454903474006231535001259699945130054468431844089083017025558018161270168857560050106231811214138003962378541556701760470543265088364310156646536053243521580107060233576440256322416626778243613726957210677507657729402168787379216916210548436820033585991712002896307092532391579201532790622606652096941578504434402092477509746284609267773813184035008438282153747193905736842249407934974472944335979951779016703973417474890040526970372011085823887607742528336901099851123577455220958502746701234899424307390626338437326743911482316846521069890201668013990887146227645751497554575933612009431927571000391165190155344448495908127480436647300164767548400282008853548122369342733755234309721727510619917846843512133810305271714192024515673281976052307771428018947784722458415352787568806533190140929077463493552765237888884353157010361672367755592402289089769363494903835893647936699019327135683097783532406012907164294940193271147275122758475998712806611154516598316830811895115933971509725106474128717524695501761467359931381759520740869990352342444873643616270486196308153726147264223704470679547149335425987896510867092033616523502096840112801080217060383793481414096095299642918257092150801558739292947983303255545622062565831523481395518997841835728297384803738018720453475160808518700781594844254837930401848940036808932282672664449375948735867476571054533291749621747783337698151482104837624514362135968405951717649086889323790865118593925425566412578983019234968634561212482259623837218149193390136419858584426674504899292729846662937303381766757990857816818958255969858674980897265411680816538356002778384180739017319604461493486476502411838266264582049478316961165725475427006897280529757854456388452386668496694776180235953247570468812637991456866064596970817293711305601287810502555808038000256627320219900653642993627609519645322704152844702410970491279946479839239092478681328205337103815267640394008932709464633986729745340760150247183392906927130800924090053019167720451773827900370851187091181666307738548299373211331083289792055971333711250590892470524661294587096614313633880619467559103533474410679429505477840602075917850360081414642158880990194857278079812570126024160172537381842200876333733016070208628618766329122946992607303646336579484805855633517124816289864794735259122589950524594852312805149932267011086851713441738308281520173294115285975628893142558897642274874510922973441456846893735312253955927969478490693690114836720169657210098664712225011870556115337980767038230752176646685265296383022187552361206235490694947660063016323384723879307833857665725887533397707997413640146851786257985882000763263514479358030849156196558132916416089613227523975711928294657795636343525259774597350252789984419167273044687624565670316446623514986837110392753208653342823885653507666350019338319183513787214738944695188549190468447565898075637542028552604021502156647076867117877308009274026552639125012675944161602002821991082537925087924194237984726644946738609795158910128849628835435060411343944327839412397568821670775366551695197458934592780065353433988880542654716006382774402327930783174676110692940208332137846488361804139133436018609009003054717709672836395635710165033668605790820982410971569878820582260732388738307654362605517424457861007554474189844287304664372639097460927578806503920980041467032605302055305438078825213069979664843386473493074354527148898801113620738501718526650417805425897516434130200483627954885767373218756172438278293714625117429993790322108098190684796892487141185140208272674150448288263974467604404029121415108554583915989639254703365148812936286814209377638993564290022958141189314043034406194217002828184708607907059859488506408798294720974157617129725026356113484450301576609795058627801374193567451184542115509447964467955201991732542227553359386113457729749005822724492682212359760226966867597038850630933438802738512470565338831150559570114869455817870681036234529895834141482707039394925034265791415873183408033197480888742697567761466257924415433771101135382739799714400257901553095993204812890722018202217335603730055478414809860962977813850004579649295093394824387718056516081938972096610976764190276459718527681729977463861593419887947468048968169947607366843995349124841265480399163018589176740040545315370542616972910284639549096953888781739815071423820551878658551795906826372393104651381632647415919176178387096101093417346846483319414766528696471999663685602206272379599868661030874024739538720877773409390709227168920344869081028621105976973456997620539636166425577920106113446602526621390831478088202026016131941626337366795191402144756412782889900341572016404952554200497283242795352663874662656459779918280640181058716748497982805995215605083025477118983018040790394047972753587228998432301519786722071550887064735544614026653374063559243318122838134125689835767331641376473786951164220195467926810870669858483422423826852749368191881382271944123570512797833650701110646556187587156944698594751547668290613709355480495612692520170622581023900747809049175453071941658347676055819153911982356109235567359208171239748201124497157753467494953275617336420654699158578613888771588630994919013480569773268674955262343000875216084022927611417751057675979267587343558578958692465003555951300952157454050172091180379691266613898272088582984785105391429350826731975733987095016786619370760215707300747725764086523021991944002487755292935624316063229011570986029548646066358852635093525674974617194013181654444266840175145610035279467150374927251930621563446070055846939169575519834638954926050232562686562220604909638146275085822491653942143401954616442612099529428226291774724256255580286310057943456474353542718287235827929979658995484449062032847837844123083038589025957933075680492347156287793440152222527703438502040078269266678384782994467127489801526222452271669753535903928407058636774320518352843711946940277597134767708426556922459703006012206703943529228251709996479258659946806789937036466998442175774239268212234887930858189438104906307235821550380858709163747685616860713976084393327810573046554015393052212520064749451550803892052181912095600964862725324053693030764775889486162442923551822494924415533869292720946107290687201858217079850462931695844987797579462470556749766193578720909080680753031710260880487653738948316151061152612354174835533222107100804211227394034424268905087990748978351399093138457313486884390788267496582127091117000729754448667941978670689655992793655769181524893386684100919980184135975679102407213436778692964136911654127473257822295000498909668592053891110670968346670327771581817069430028944765926238097740186799644722306131591602433585806565106379261572586130685428320654134769722905351873244249675440324626286842358902205581708027650168904583040978436949071735366466752852244046386965928916377232853865628226140686278758941145002379509201734502365221669887646174287837618852698605587769129891858556589264003286105329521265674285730884573099220960389337832747468893273841857855421137984037246799118625566638465239333506102957125257903207534420282817852190003764105092167830033964744522291425528089247013978659157173625754806377538403718281307814383516895023682446599525814340380921413694354043815889190340478241402233527122093873181069703933112639794673204746213648044135679434180993767951120244965020143193865927241552124947231844321623441901882646082698793742466267930115462030832607413778588295220480926868334984022172117361185614847143977457717599832206855473867811186466983531501723481273869079373307184066305602620401819354252489832971908729782287614061736303081822918758717787689643145758943025321457390875303893469008425488388408319460838776465132241923003272242388487889817645450948112022325267345162359166788544382332085815788974657591397985613104350388727826854293870867565167137578076267586213067758099615605819873251521525988391517521239411389181285662615858952798242897177436821506888641219537591080211782869986952599599534617608606950105300749924137777669016758466498493138387680056101890929538730696965504411626109565591952900539677263004398518563002034760078757058195460663744750903114193193923104967247554222286391502380844834868905781944570067653194539971134470831198539355620985907896363969552049653556744446584890005586831597309608274307799511550744720410607740371196149361772237885049237570806735601164178167268456419129181250714473081036147110510981452407344798214745840650537666915370502949913424504587493316836629210495247952443712528684492388331918997449694785976144882627143330987462469150521502281513890169578813639145164311232676725488109849016332575692089196118741184711444637148599611076160328214311676056821827302700359212839415321150258651981752178952421970503264456781942543210350139835644488193478202959391628918064702451706769691606358360555718059479302420954561834856990210143831136717243859634315420016328411431194419355163787905703601144355599537593795497566117644947469079464142437997659670878065863662391568257693050904878153975905488866434036519756064488678850138670639281206275994428477301672716232016611086155226872698215520148076043304569005684541257601735676052619462775097671871698943499736136469241420027554144213091193214610108029611856164226640633905324923517424384461074502624132141126454795845154183304947716247772627724463075136059908528942800199925308393887299495518517406224429169564103898423123284556673613784143991348963278211347634423903135657634667315025835729008763321567933215039714523977130610215105224098416519918467999564991194750534517036218603078013227870863646757588486802842822622426123807496597966424470417051894084677773921671204683632806104320225840426074971482969445699158692203198880257939785382748637820119054250521479252269165798863887814740043828214395390542346424946929101230695366839591590640023165581362729170947459892147601803986055670784186360157000592272367265413940526191808339578770253276114648197392676601376839236922852715977568031898884569325921599824238607726796775750779597884401067247226621206898025128311569545618051888203849492049376364365220476803232936239240684448925664178464918886139613808327781247719424744458045910400705989210636653394362827920258864295751733925143840065372856303048184318145876850215201370826972814687019319447856045751165861888043517768758269648033520413074644783973023711731862134680776643305216996325646103226291269683595226854873714120274160418700879265273191559756460122808892720466051830518670922661937711613927587604091852196998546244836299961354811269446383966505390247948142403733953588019438764039363635996905995475953570633422589433023750633135338425361822933699000931805603529555269474167818469331415822525377275980430571594041100890871602282495939240255877247854124181082228500030919594294953770186544284327845115763008179232928781136717845657992019820774628944848190717878166025072158950994849632160675275640582538303798347996958478806027684042861470605516552386832240473849995167220757218876756656274006518652057323178974375689359179695948206001664633071175336018554603286258311404516204559286061119266733251801230297585554648956978197763017596046527128790308126415443309744935072557316137816985174863561567924577363066458792974501902332045613819552707246854115753953017035051979044538211222162542772517376052809185705695901484222642994458568045836764615911007989272979608490112836215395075462917035259255968166339689389706374697062426529822376680314542043498436757401450123241084443407750311445676918623692778342984453852687285379573601434083373777123881610085296628260683216910326605601520507905827566776035604059762243251745150384213245002369421595476254132543655110899451982556998874423108863620351370475031768422977280511272306602294231872032855202983358439051286679657203139894787350827599686981454103179329796088627382060807807104700867851281707962063574649285561291633528936916983935780172563803747679711423245309390723913897702597243747404409205011449139580733198509852276470407670022750730734515920498084807639679021824129670325984221184170328221809185215653052511909507461667842723775983249100712214806803321238072058706882525843203910022899632950344392823839870401062449314456009230499346973560121054858059856565126351933582425167337377513462790811166194365192281881200146435704451107130552209375282308109439038869249324360695584102509090109951473083552804094904337737156191659668671469629280186852106397633901080465861920640674493110670975611553443406792830954996961426794151486061220849561305153031301653243076525033784136951008800554787822445351904669281921257506202618504905081409016223427134914562433528830096651090283297020746267802272443698791922109277546995246073409674663536380766358215641789016890028077063499060286542306577646153230174199571207119039510061527100306964239992990510551353161854373508824709742636843016501379434271310166342039809374404672357130467077681841202089924922869396815795308201519043137305497369055047230502163942771756442732724975675582426341754563989161129278121900972374117761330026205706036637670616470719091095672976464808879231768856290571828851066370850756697430536093462750509538434540009085679848828107282808858437778932938893828978130666230124757954514923792409947850685048672146459750215970786534203425217795701897627827316830261600733594888001585915014039503364816441740081119599179786144718862328571207630920694812003939639972596901091872820506867390416449653977099199785050857567468963664609889719587315919179628365543029707944580152679901196001888249497421358773382509140241110198675855099938123812740694473447353950747867884701510213049126807603582053830170283789280784744305412266311962118358932286713935370333087153672491215966467414391894745075908040175442452088991441174605290028606652054317864206772018194566082040523421284267449147964627076224112211146774407330903945149415283224375117332682393385244025475562423251406650266956630556938984792507778738210911198350569577948398654489584567151846731462231261904174987082421666715091153101444229974638167831197820892051954157575324992327182042475630303768389614898914160830593275804544926511963643116278241290501238974344349593685016001727699867657797990652195212494419718181662759201199192841433151888567750775744410821213471765445507582629136833364003768514539562701144397901087178433238075985528176730587080200072613480417187961193595186205846720651578247582507150608011262119593056944052467163593497009316888313962505474471017214178726158202919481496938549152726963182899079062804923561831191288274708418647290202813409977700032657108156375617313841473179790517505927257341749195779917479463342522260526655343917090820614541597076675686925635649870268373600083076474263548459037783738452872383022415382628183518180197871952150430279951502500492767972974672922282338204315631119387199065486101246306075781667667412974313506116212316738741072550199033375464357177275611374736085614671981461020746990759893594940175017786451764469274492175182782638135011165272364293847271572934119844240873812168051897435694695555486556348155820604496150542735802932773385042979703933074327613112648567060952288615822587315295332193510746357731371745202297106462190156227641349592833148318845002031539969945463862881847236590472562822217783810518776718852388223019692724700925178777185253191000945258020332610310873795519700593330911584349018497085813019997086662806988733171165310424820252052390169012380441481276876123857371811268665135575322686612217002988290339518389176448190584993673913488675456081408600897589722209705993124079410943936143989284398295423577740565264998918436437527074817193692814758365117008003018678211393507865498726380501317170739450252779559418439113547925381163840877432619006500699769237684249905437881452227237719737483821034224666009731026696785187362537665534467341459146946549122061999030546914292571831481371565449139120538890430030833966187168035064613847148247634224275387568275216915667568526491195610565230597063272184680781757638656538843855541473747434592126066520527529245931869574333739355516687769228955415248322982071571540705486293500484353815572523889465468915691128356228697362422565203138823065055903549826467459946592385397095515898271092915165413577747615390059471060134309674409595402696585543248883410710769844101769598463951636131756478747092746628854509803541939614050527554855213801278574409132662543667922004418959581788684169018230899261988679169226111581767051346440675426458617615345362811801312513816741085113801717296790326868594514304721437170470054924713012502452964135862225712938197005487504404230752292058188334580373079628667197634011387609526979510648400918436946378394318933838388187679631587736386697094069756535186860101886281384492896796002770658286476042484526402594784591616203137690742422116465506952281694033009327723266349732287163074683271682894966981184000716116806819331259215200189161411672926847372390252391966044587469005792199262491506730712946969719486976404182770971575180372761928118404488662786774984205153831551694999990796836068625777572418810590893687325031611727110875563236778878236454820892216687996489298454814963377099496037075903002246720824688522009805142543414050368408219339058030625405623561099832588704829238126718188694674230308044038685616699133892329913665523905614241799675102302240250302763676711649467864309967683031794974956447177816969950977392339886588960662080423209831882967617445666237776348745986780381753512264578505216768355939419048355482232314733214482237366607081827651786373956825088659303362840024012287855455776682438743758942923897183644877945548270817039589304972898245737872825387784327503209584006849048562387357662124398686928023433941644633181924409819474536641486085303401667268129017300617836703972349341374876989163612769565999713698645582576332157620191319619899662473638537977399491312286361442640988652585893297341982802214156654797999641306302846952166719296059892758880380667834512994595400861782583905362525021897374507278146604208390239666195602367729814227371804885904100973508664248218236014446941331286240761486353685363952485161433343201280586560899954754811473742178337357835569502963929465649643417396033098977998715973746198127568274138928004875454501849389979916505205577765485406608158264436636236354222567841786522986815389948824763831183785206976093507307436458501476891954327103069881257627338426565577079522703867794332097107398616126690751425777949367935935976153380937848691906780196184782321817760216799690786787854099375252036503029179552798426057823048386135087320497789897598460237761790115190231330947852847737907107657763324795143028663170319829302044444193561565837600190300000257194515860274707728345034822000516426859666499280321548552355007887105558869926149474444541766615609462567742909455739330875119016680143738693786980803885934148843536426507203981145059456842702081767452390178809246992866743911663257130453524762668356101720509575778276545343442095133094770809323426908837120675396216263243490473037315528679978680871362393899138037178406724916695836539697911727163910675846071160791500533186207493050631434894347091524684980979393179151903177661894922001363933901947826780589779285749395793479754013097201305357623488118620854366474204441261441858325451160727933864232697180745130663546707247374733578868400132517055227968421363980102240129859877018165341273451212699340765245693778825819416139154033413683751331636892137365183686654885386456847563983534248653593327132860822666793881839284431067374349025528004004781501145261232003491080836442826529287436022387998023919733525361265027067403014572918378934592092872013571579341924863648143262300878674624082070932793876266060506619665012860530506030164490223885155141045379386085982053908220030505895710748034785659423224226495794029963190282914829354133092534117629219505086501910822439727611856003246296302418139925934208538166834311359095404022358065538991005098529231081926651640216397161316973176302135469324143546897353470610228857864699881861482687625930837173182363838682458665053099701406672064241419772566010498827726327829641886616625224764757538986236843742106326359316600926350623703446686890253106454948133711823115598467058269753617534627430648992154152769841280969475109694590983525954444180558587496020395474744926024250391202038600063904976574884630950518528136330382366414799684045128350275394989560297825419736842033983215378418499188630913218430504261406160764543099048775208714540793115966957796706647159708499435342026299810765248914525994593067815019614952390047863001713686286937592052067427405526198142003164874099244531720370433242770311452196508821137742416225981717284021621886265095801610907527227189246564213712742817696262307638216560148989309895988400802787137443981228822878047601698074883699530805434136483962478295761577776568739179177706509400797310057653385108249966547179801450197841066738912376962017884889319762292302720880062735018370045261542949052331713025593066005928453455660977549931130778586087251619666754690857359112505179837236481238147146574378283062531103444957526508803389850505837638705916374098662508054678164072948484326383395792733792531533235576501453028849775357727142164982690609420828265544437333103946923046117736832315831661974393172561742617268194737366031123073830992156471315532872818968887626697516957541405522574165955056207044560818119149669257210476145235707864232868162936532960478399274337848188186421606007722664021093647811290770602496377370452716561404182766813906617329607361139776969668097572882806532883112355537781815669751044217710863715927169961709027270320478278650783285112893303019695568901969441487515593821095731538975548783224981991473358403156403978289449396200505945265709411762144666568179126429560061069767914118342814804230193253938713829047227594051595667851245935297850100390489724122371416094741216927925810480387668937621541624575351167345526338988829583987039656185308032641747484003164589655801333712999348586067013121511408773989122398037897520257409608415162402189298791463121135077115116086675559813787907515908566606114968511146017708596885371053649676243037822313176034327772824639576642385433766699005070680835782038380040276436398606123777658915652461834561830243393524091391495639867348815527695676608836705731988474432299202462338005808279427323731711120278895283743305748915935745900443273695987981691477776696211949194991186002693149374457070087081245338385462094902969668972735490492132408069587407489654043941837653867864042695257869580524724034206844653714631529087344226694734976206538528852217539891947119066930038183686834000665264110014340883223074809772609237220429459251458154605890010038057790547931196341454943556217906612066926319628814071661732873526531950886721789185692729381085574257492744556581128037217524422146884983286863618409057189636010036993868806123085233664162257426630215713705544597862380852425432303648035785939947364245698051357150710412056077994186732904457170687568542672128708796166065593591500934287959572314415181678721163940294697089500042598106790644231583061837626823014716649114149579359817931410433285397720375412160058096603817602775995537903579948092368728549357930363893706154869483114336578877470905413929542474714934580276083860844246664038266973903551089507684835561122439850348264780800331846388380828007563421066505988490281239377105078081771212019873675801825014157190511183913176334267085640255956688361501354899788673849055143762405834897059657479141712464206799909532411701195018893811061938303955594734536425951848234765489740113261890944581549098474065593005556774180411417457464264691677864074863159206525363977348968573884385738147040097325646312872880559852040709888968642593549008668748244407663521373178854904506242304680176713861289954643452941857911685891622523846732073947040242485437638180408481082649515456932024939311921872004486531751128598012323785600120154962064525967660470107754247464724659021448174786181558241762886994255777718355528827686031675758344051580492444715215270595618675555991502313842115536035890860465631615904408109745151873778654681563143737874103727251018550516228089398390236089234224366182523110588670111536329571660925787317716490720421723162483972130321184664698566957755887545390199046620915460554868457307790964035833848469532179955220870263416998514126895801678219768469034214591076928548463459415859803265958808047328904344232852878549858368432162195821826231197036688155952731101611465458612713649229635594407755398266304005301877823997105019122369059751622695534278583493070168793558822306011816927196231277993203624684914856462674060151254343608369608552251555465547377139010439084772412210064343983189330635533664772878421318211303699807368581085229733567061956194217258454926187823042194066035606461263022508281715912999910175199355807455844078705430143251283363966405196809345376077538157683969427566217489606384142543420669314222399384515705447355325088329643850518200007841137446106991505840516683797867890331579019769440153062809242158328562184485564977144868952788588100780874038813723149764969806637081054051932317361633942929395967547102141545543131757751871431064730104155033698643908488162410246713505855863685869745685694647283275282058095805256234288550047187828054364449815343513419179044149217693910458582939510091237531598051956772700799427663012818087332949518144906581913340906346165927919408537432022081577377794422277001448353287304392929280164706189443151824322766520592025771846764778360948125718691952493322872406779277442245388762599919334690628488531454351025538255658913506595379337061229744474422491985850589843316190161218398004431420558745877846866538485804957156668919810669108264311724882419357328376096693075211445288144904958075618996873735873220422161649948710118444650095956729558801196622997352423489260801222267929069690321475614922202590312678475170689040361168769109876659479015138113129722629773303667017562517383478001728424879016003813222386063861694100621790752866215945970796903581188009114330256680554742633987518542511925807210972536332218602617241630751897859525676568420926776130422465843645422154008232822906036894165656784563459918583857353222526597466775059454879319524622967609769551721372789805271944603563713301639681095245921969963661823297250705371163775849774744899484637655707076152465539221277444477381294626357675604001545600283675489847944539371142934725842205901435276287925708136925231738935881749131154959294305217740782487848039608460538783768760002945776667412165839897783813185170152175647407229309431644650872734089551977192306347684298186677141152759909301567644190509673316122856581584169547064325782858076986935515985769976365104491573105978343675357838902751304394657280243733748641754391885900946701983842291318396870010510233946478741811681687451251644202622729536530785466655017771610334217995344096379438031416302139776599786939274154671238891803512851141278654605061363159823789013639991958574643063484991600129816959523993364665990038745868514231264761754251579595393805649983910930125197570606762493619120067173548150612034208347247264149030698364549328082358534283235863306025414806483415059598201982724517209620134186646676662420483861509999927527772905233865766885931416706279795312200583925859703260233774131525483790925065661603355446458651920030427888895721871612803038673278098527925703908910670290624487565705336345289229888541869303481700437595320273535404523635925525383622724683935696634594618931778556037424682715681828729605689588911492994836088814333886389296166260617743620492509643652667461335651138153597781079948107663697365922091842164785769582738625834875174495257114021174171563566392155730071266931672437206199833886162481314777353501542785797380471254182458624643422799135300106595263104812044778079990051823793468650900233179457101012121238554000688467378339250246208763598458563747545330402010850681636389282252554022332633285212565037154131539885453819237153901468770039935754860230189555383660301206120451457257627397950991090621049629057219452194383474822717442010700041830241788921710568980980495965461630386777133416269082661769374861491402136344831873848234041539601738929673245655708922268775857302621509311501197358649188290490692092726606144175522002762685221271439951156197561771283260652936165656360248883334831481566297626700018886648594259848464706675406092482934232084498033471153961882313898836480227300901524142147642980189701087774937053629460655113263922093306488085643311770963265588581543767409871285111116821511584560870446107167516758176860940565893087151046267889781765558504443340075899067728542950258800804520760941692670149441585840985341953298013297582039233197308272321888566014496893388341182485887256777230345214489840779228337084156577765660568888371770837794011605790672266252317046565904111452051602878737298744421748462664332550889468140370757647973013342947103083073992942555404535457059235030523231689183127352491409048131818913295675444025408753948647562903062020315381645702485514854567133884484499141577503670722086725551954070846001906541483734096571700158007704888223745291667267383424951161142303402534105435296293263344693948276544128197154795768619272857903252386786411178527613992843081998524476810570694434688673913444659254337355665506122966807050729132808874081184638090664954189762257691229419297899180247174168358726107501079581462064047124829342642786930144084123663308379306628017549109373172657455325685919467706026207387439729284443571606804854376546823906502004751212450012919514260664937070772247497757373669644484561416222045725404318109020964635043439250451138454817251696552830971628765315423949613267921872933769192001749723332519003814465221190778157045863834062130912032951957017860260091781937838739026547504399217452695327677562366896117587384909848897870715391525048715912651754476922188578211922045918743458972604448059702332368058028136003220315627892309654083691433934381309632727882729492743256624469035773928991394894123018800989525920530504703621629092915437505746197982962639809546510346615935160915798966840401928354491072545579465234856124628252248061308985445321137303386841649654003913977365615240356112749049404696015506548236109886841784955935705687540027085981521306900498286394349453443363605585649398583261304231921885171584828104706195036634798346400548837301388835918712428248928407973372521172711224640015356874411347797154902250272915135810397290751626067007594786237171205214272437883146585750234215856475269670804730892033742624155220924498072848610206950745086802921641515644923966697826013593433979589142060128229590232156759011578563829075267663087996746316076794790855496748350867084355427427399722671223718307084997764474446434268764344088756229209863682326932209095604715925435621555963422719392298722346050316778919301576561086315085815814331396036380644784031687190352471519770944486441839001288372706418159078664995629851199365901403309350205037642802874932121741712475356735451747396438955318512159762428845974601829171601806809211844327067997079936416661560380902573921496011532850606594437193495680799477941485084062387912470584357193472116637958120052972935603078252180357922831714214087528509723456341508155840712430939763428709289425432643232459365686554291365598603566123399760559341440212233273999997022662902583197410145698671426033845736645196090619289293085071541007918177152554100906509820797299674271154905295778032003967344458879766216783495329455328478652292457093045943025651902192787006894094707191271591817733558272573727657947489866877962017277577906941010063350000287076225145672456627910863140553080256361461105097579406481460944847378102432941447497046164931568379866476997441514978615584754872338166978072224500105433728176224246125814004312575439661634761242498532102771586518582260209259373677555957602792443708419597877377967907322598976535860728984283125490584907499042903298406672513188246672244298353978589654577713388597682387632335990056826287113596975339847676763771953914611627175185732905916463394525252584984848611197838660916899493527036733872031679473678150745449013414923071621289575039722398623405730481085398016523431886988922586830611768879935223917865742222160432621513742617999706809940430267152561644391694381641604547672575104853659839284263540367468009419002086664108804866802122371398620754427203869297149023106749552492930375507374556666706563718693737682270514376569558718395865741728711551915669374635123415951830329889509189262942746652267397511997085839076582549882207764865295368368056957456624141579439785691503229834047718970461485996129359934582309685205411137012656920473116628278175547106687389870633416123166233972617587879443012387904646439056159726596017073417037447885851845908189818143355900778133968910880517277191504074199460717580405445139604919847691556487730918897809542445182350694265252996629549068602728214225202549506961421496528808940823852914709824566484550083856330707677048200332526684983753461225634020161521461453863180151520290566072896646811104156838939916714922745092704531019755666138795279400266753313823520776202819074194548096091200295443394053328000872563910114600898950147230494100581434772187960906702684008664869693211552395657258992416421085398634388360060342749000736168569993423508798353970563281885801655740966790919791963655341515732651640443782093246841531036209789331098327126183027335837754646851974901072862011752866662263794693662591910317319986800768018357418420043821840344517088221873860957331443693519103055144605383406545213596459940869949921632873888794834081261720690509833415321197306224276417052342262156624934486604713723525680648773142917535872452003635101668135605000399181773591664635392532144917267362288666013950315133912544409305395167195415123578082377164203669908182599213266902548221628462453749078778388438772561427690088915105528145872295571834294647626149997592646605264759140238204033566087394600214459841486130268811303107031215131781240967520405028806491546450003603466771870613007841597622620799763951584069060043946124864401618947398682605188885665730042623470400377738007721991559882257314667053060522440059985689571424418402463075385729424489921325650267397900668256314810759342151504869691934831391996991503829651056812402085881188642549656771775117348025977921939727324279591715409879016076607245718898656310630655091288665614428197918235923428425110080803277027860771226468566782817926616962289604999830046831117379246630005035388852747729275026035247973184099285342236460108550777571907643742489069011048525045756225709012904636237160534207251359514747233832065537070675349078114894628076124456635048860671351212004115974479410832931067008821367824641871096478910869934514851658738093024115010367765286447547258895011121072336105675458392630141482604805668954705538318327721040340020528393651188880266167280859699707355942430760297273360093482539309522768849328652906523993906660258339198242583034604855645971500957830385102225794185143905157172232539060591700421877652401029898239314666772956256410718743856953835499102934823228305721742357850342796673481907880310742424632733939166257503675263917066881544823956135073605907271710707596282029429613905433219790714925066215104318117019411462166638528642748362649714172805081565295452252058691830362228641050466218365688577826423507487525400398943814528693837597431989125831439207841781643553161856640906573763325298836354942815008085480473640036691729260432228282035405143621566261884157243162003487522970820317119366953063254008398707860605343366804500482883557204807467184312761935863652013104510657416702512351493980462617196578003194600113564674177586698397436872058669688023534137451080160340907596244462148361027996786287291469204233827617799191647990214939565029737445602389174173319020267994939795946948275930013454055932068265954470349869942100562778044159520998542411302040299509943118163735403189158885487433437998509656420903057911644485146797206794613044530078837559312708351689623924879165292518263720217600311211627664101343562363282185439367614205413467744541688700087961551663166878365564149035201394239294940818537719704113713341353435440926200494224211287501755043553975937395084390422260629364755882537842638827441310344435125571973043976850449193685877822348013988306345327612435959099324559626388809550045892497135314184418894852875020376510495564132533757714651450990133830267132156996088069971529894768275535524007751703231643109051627938585803437629945938135580037437983251513132966479691192011919742865826940110134242288278091241132431662195312463316477784701816886944241329898984383563701813326448261688562539652859973585478783018365183194421474528181592859106139622692794709394745435136998537977688575870624962091851114327754222381941520239373616753096815611063882484238646303837572904930002661460265557127351606369201407696234791684552576137790045284740318558497576093656913197211250931887427103834367117348802838534804685234707176233205370461298022732561384469737131952866124050523061621188990740656818529765240819361232260766982896213299901208596788616137764077237492746476397984328787458370359706241612586512952139579348561654003893931598069185921840648793756742594236140235254534087188384173824539437678856245164985778134514990131999935877011605042873566391912550107814983433700970555806083958797034517948996057915227646092182260521933696133237068222222627678514080463173013391529913037468994425276472638597285261090784380026225185085452571848692984316894105627918358082336291173599732456715806292930355247540703422119740407700924356738835185152526155086225206001379863709943660206325618607205220815354790070758336872171608628503014424691501021592504847119569973482629741175746000542847989967391282835892834363483290403795457167722565355057317724909022975545991705177052776283834503906234087935334887509423760440544484928783275366128342155620059494030483074848636158700714976071299853969819522765185388664419414387943276386781352621398712360355916080862419505227469507096902538527401578866880426823518833034531992355733002386460553854323707942286890866977395592584622375395605343265211192568719660258727366563603912121305622301416493369388791005277058718982634747606394112467675017236407437056690478285335157771636358229390499828614164946747222077033468778789201651345081571037347919544243803262842559443750646794346282443615853424068491560078605978175403086381972463955919022252055090440013954659968732451946754976532276786508285843617380009902133499390126669068947874144768949778283835006431973019324866803457975784646072139596381786218635148450573594373232940745893903503307010511592677114160792091662878927654221889286354608627512676775918952935087990183611490442976988645481467934551258197763591787244330526762255512458351530020707009698450141021051597704266206833402102559057142151673626569425253545349797290348081845654076441820591301406530145397867486507861511824872924887361109066129359332237104661845663527067255135056893300186665891874950703071286405108516462597937970761759774489090448577444284374809100400326379893981269361519081701379803525035775490104042736528406713185947301733577129871083731646231906765812924215696949187334424337924928910660441980528578612872477018164347631316700999628970792939561158365175422273916210573403340065207464993654915595894162904032917005807014113674967832547826075106672055838983055743947129824960079312693158429140448044660962434265222043875410544395794012379969225726695601021582098050860504392564475455806021697722141405499879606283616605488205782968852050252211176898164958287955667474130177666504905273813664186287036701372043692873102505640945340329351952930886009042500971812817812621799573873721653834626442323653970044774326893142983963248884446670189851677507163969321255948462614564247153078500842862388285294556253011851778967050425839131094442045918354240111896438148990300221823358366900331275553696653012298147577645756057184700894747325208422857934821067648943358826148690008168489780364231675202715909962680851032414929637834182091229573356121731921577624679492017900138161489574210332845277435339951695105845901372483390374940220089517363375681548718792773298864348284095794411120659689123594677905651299890334691762322800856234610146751503897439591863073939372821660963638202096929788632623651617161623221288705907062232970975558978068566023368580417099605195610607427259876320249055692343874716295760928152827184164235117443664251265790547710338020062717361957068539259784850724542857070213084606157953933097576713781037549857685386995915430817625968160048996099105914656569553171947071400708009545811346950685507454285502347459575285791491244562172749331811595145180177820730239845959567230966439590613186062367187772552242907737974225978799894041394564475622210143425107092029006792666046003326902718263154258594948797801774778158372061597800921396083261094089190153292268683837762943017810489807231793629340764663713683783447290759946417742494095923795501565939241900365291206978485432472227326031309222877091735973018091970151622294668431993268816187210326950198659952210311121144614929257052093764582900265261136146079076977312174496715778429681333981166307191247186809700592235179348903816649046622762617943170725423148149541540045147591722290838536538179275266609848936569669853066726898421238564684089899695662290964477714921669818783201998022795115726528171078593516693782243203855523571637942155386839321796424100838982740376069048328763408045941536126314692755923497389337153399258449672722944092735715376766090510794055826482503619430512520085234774750145642072403771406793742142139496711495732397706920587030254149282227235941149068479648668062423864956761977987591491302537373263592697906239747143973732798963832389596303913353887495430009302601218595510155169854514449036869988373861385427312278634121649623501941290773772196496328838523219688248464530236595399119725439910966929889401003171570611298674245210227937304904509085054134468077068443855243841460924590613246948750313077565002771517511632335073637336852189250896890679614158758723478687304877263296452815941912910529490760177946100719405545681237445205661178909153065127240179459003592313186341020315354935510495176376673316844556276339613234725801176023732126370359338418073009332981163466372000964137264259047276456672192084500419960575155793687334696846464778330693006925536271504752751847381996707226200829985145276379106293877162722675894664349813820697049820987431811707248636038840170313428181860107794585675565823505201647856767348728983917470267902217878015635572430491329921315495606770478219723160313193848556113190004140254508090762724329109413885656481821624509362666487230177456121170608156148347578043914746665215182042810652442516635795828710481544646179286927460275565114563036880845419594099022595893205820747152756517484041974698867811637219737368677932575447936942483858389429712581316174739821189586305800242656229454420323605481329652464989463865395049058666230142193147827818228926766760624571059445285656074429875698150984366638366216228390549803263826274883544026991095006337295932329860104798713671041092549514333774950162958929641300827169105726938706454636779519309123821620223102801176558998215103390292899139235018804686367982072123745642403138513911083427366964382416835103185522030284024858699380129504656581802159740085735649696844044567328195421347027143483010247559819932237397336302158948342555931355721292336813204483016922314281364756182318324708802348016612097923154542163458437542202073525384156393210669912079870605301766563549098608036059031001909842747152273233877770941304017613822653257830260046745380712928009297193500119331431172439149895872344762438450685798294367355064519142569550529829276605175684854178243471220875645413961456039932385162405136025832860049838837123898665455318266591851798636340921657978198270984220591389857189789954493432798383457782712735656487296217253291330580627693718902909946822584602243968387123353962440583705226335057267175585198738584826436787174070762930241329273173893199912137181117602504919555303187206170614156461292841011989325902382066772805298869045598859631922209559740537817269754026214178746904659498885579626847343501413659732325473626467221524839010488740607537785343286573083474267727676628680761237123775330823439389493851198078343103748091310381625523640353476047482969327803589339865773417585842014788339852913763339543666606697923421406681192100172082875425200151121304143449765551398528160614584158325582843365191022523008898577434055307257331660135586391755788225187950109589469702110852577825848886721212928642087168483661613707130697600217979610718687046148311957598565448044812008228249600378165029237147883318051407295366014260583183935527621690130462051348948435863200141614124399162206898729623048965038308853144419677787234533809904109792731049882035579503632696541297853502279553761932601314255362028529899766516555496093295667346000363935701680439382039909829022749034028554376806582952563848709198476485516515782294128676228618492688006511895693865888761117853430286652048593261990759528748528210480163665702658184521409105512657003327002497404967424954232594439531325779900603991125992592433840194657957521562159819339987106041824827452875761330745255845472274992578400292546023229210424569656360767393102084764370838608791753844827112902486229787785592083927337463765611930016890650642049576273438312501543433814423506880119529584035983914243963733209983091144459520934599286190910813405355309762484198679402495052547918595767056576845514448374929380349674310923932593916578150212798429158030338162380779161971312569560277410309200586819785174657739958072698974621677255845575111236832322570506312483695909073661717764814590215261033156711061764037606723714284665276122660173410296853093921305625390127273430792196629235358741022752490884373207325665523699009335442073815492306940661625032871814357307761016440524878879334853371864535091170642046313439885353733761216901647439805515871610641521230457221149819406803426839438752377075482894047013901889397965538314199516154813457750564493843707820961668127898669533126930493165494625161440947512808501495513421140170921380944601856495834571655649437005813026262076615791493989930723636726147353435667168426650094379718363715584605689877832901484136245546512783748728979424227433677728141467136622932839178275398050430911816463563962700582807169964592084845662032182412746828622108356293215586654970670638565959068346019624908309086808398336015259308197376538985973229887788929024366831019095918223054754120573582474833879169807040639694883882147943284457126570147717969798433716218730180722392858991890826535897785244276924222876905470403801831002686910002397007199858513101253971705699291470769490920763304140709261084000047383856208407153769567319280433019951187146734302028888270151179931114353214232538296515608307090110342128053593102356785970189521675850313703825899277946250070682490277426458178023811140873408693755364677308466832191083284222887515020430440942915531519665760364802522700297772700803891435678221220844249800493384622142152674367792751440297901879674207582394663916167435781616619579142237856649851746309472732028266377033334974782020055030975136681844403214154972744917240143425761251594380580471199790236010382750139981991117518356759224761021932333648976115838138967738117623261698754726198399665276107471149939254889250603274693277621915773918976982422536835005515048207796002860376882254115497859207000450554210899854207717204706301945512952200561825623479665003247852619136827303801283497317482255485038835513441120525193683231176354005678203759937157238044300586979752743655794719459984993003596969493447388916754352404617692081030618237696139274552403397238371811570091213808240499232047669969176827332838468093751719678936337036633411204344439336771041986419059853021487975328656314115155053379598072651458739918234848101969823285358072589715099532660609980596548950515685562806156518873076158541764448227821040831122078363881564705719799148116655842997916198361418562935813523485231399436694371831192197013210993036926931939917609022766388957662999563035863602802393860622287206077110816629099127410959230691973217141716034870460795342306421511097678711628997005139820011843250186306665985739692218676207969695461053710678414082188506420759154861015860362231695811097445430171402347911445339254528851286821345412177394239032952198424546447220199833596048500429165665500178651043730548515832981103144521363388604567123527512149603873374071386848846224457014911073051289950320277006975417052656337445059494577844336650982100680466679674681370615825822274083327319895160484511384965003591561969906443634768566589225964235572750214135754653136127332017038234612607339056615613789507271569205224502558385924814998500983171344277251492257817450220797546173820492673558370536067488007766062113162308551135095488675046109732471296084546769153735311267619879390262157384619829777826099630460069291258508737282447539074575637949389080687243481302643718830817195889479155092387346427160809723711220016674330692202794212420033232481706390106796463966406252636111354930366105513495140762274152394453958126363494664015562266824988622851075848147254811860852084913774200847007677799555080638657244845250982352930438374055626237246940312260265837495398980499227890844187339432508487915873459506605950451990817176296884149191408774496489813333501377820667943894766983290300653096031130231948632452340442281987654503727758465542477856872187513876775428823450886511208632417541608423743153914259251493700087916205887061739799120794620886822031150736518297713531582221983167892245530692187469389043467778714595087319477592984299514545512864129836760782747771068669062168923644707058233605860099358105755891651852557216038605027017759671263110735517583648572238374140223625652067721444961896898626241072252994301353101147070278217532402300592855594629353748892304320043268093468395665866871711144680066744449100047649781717662477863075191815919054578495617348116558605502012033079083501501502754031012361683266908253585997626074414246240869075193541796481377077621093337527236568727001526725576077757106311647190343895673054863748441390232002480249959267750484135764960456139053533459796410313437906627648814877009921469466642842730565009910775474115058556152688437608448686684987779461477079508163037917604367514142753343891867351858313288199855328175217977612003510438711943519494512770226494250163136995534125900676150200547326169286999452859769387052998761555833895864240566286703508907681701611867781103638092389189778329937343543709012019043523256497780824202110398809280696314375633780299993894406127264704632207782896804455045955625477158853705598897971542967116221422217733075564529460463210673986102009723120608140041056396509592958633093872919572363026389362543750066223096415825882297415306290467087185222929535777396686810351393768770738298103850017631702724980398003831153806566875443635887559039152340973872586438625686390436568673137156026189990004883390786112945859001825689703196518569172927616946356204713752743697200813831225537661870488635588556187772007841515775321103971861791480371052919061106638350273670634115813864006958780770283216795841986207336911230447518248623161292875261761242289880092755212376763108299287747227796741773778176816468872590871949965679588491525073102736369148462474670850941275219222281004264939628095070346740669721439460581066451238799635655572580254446504911882833300703795232347394853724354827132447288116040956425669680374423395852733673391666162735034809010097126224682382817709763206981505706422365902071851906538069522709137168144429530912841166363197733896850058805918271953822833782719240509859059826210794483045623035688725093405658877692791108931631083409248779646406083954010622484048546675309885912550076982941271231776286348244631677274540300172984364602294007886374911554309058218326642041270287298600577193194932413484103717161913242621538678422974644022149024817548330739384105667111280799770995504861990177428163652068144317620972006292947838223982528618400417884123674846418616901086330530627686469809403304773891253751893528780365554965175263138881147618868735542372884923462914439249403186204556360148867293279083198715836357138692540337556114953381554573918016092020332002241226831432344295196731671759671901057930303749751345347175116303157152916921847755129149550643155742000644692629440665917293236241194962271510486319117480638824994544371318899852045581966102034809667056732711436412843478750447274208764685427056030994113701616635167628345309186723587954105151922355144746483884416642497813283155273559917530186177760006462449473749041330137872923507884290326712961984995165894362394112063418810652832035258402129482394485969993490163105648310650635177901097454377190800402379892880603139639313174020068541435353297537627488893370750738655367939192948147433267889005524731364034671583107694913532893572002038515242240720471105885989222817086757450842347831359981625948041224221910221172874140632648416449789941538658733882169778516002177875610533866563521392962914006506966963668670608414181459296034857566555637177471121203136511653022859692547128920364278059242073860906636376974782942652775869832623709218357925837274729793157994250198294836992597799470487892635126340788521700649138551007574294822841810848393995127004950968641882734706766679183871271679395915746561875317777035508303455297782171297196032817612120731532116296820253364592111168494207949121602696865273565379374087651946051167119005947852189577716791607161587422875596815287305362638918863646525370405273419074216677142604262991395139800267118509649275245937209398622252977601839404734967117223811835130570318914135607611894563620990669238910090568067853377219079371823002443276889187123828126938997412738560200115632257884810847961531067232678312752233418743096726123177732918415046492735355349586144287429689292549657903165539163463680779219503163151219432076836564568519263938084243544459639678890183762965705430344595900432143886479803143767576889086390729131601280289608348503260334194497790583880575891295047194966373338533931855071666119871437802117392279601790925250991456018947309832092355777826556279878318880189276906779847832266565809461175553342135932557010369059518056977382628931120491762743256745847077440362899362401912980199999826507769051929925696561353429225550111160815065582305327227920723867094878429380042420464661497940042178138193822697376677839147336149034082717398633699092653550192648403488588401377752622025789252290001212354158179976728744141391339174955305815593626157300487232927435053189237588653791619566687425251631801758056070879877191587163587044437588238029464445066970507715484818437071468471233434152999003969249118700968277351804345423999775878838388195517471400553159763001450778562620436748549501197251844625555689575159211080896201955495423968205875628793659133020677398205165012903487057728022195642081225440687228916382672158489132761435710901770836846184500848040855036779794410367387622913725421783654010706232807084025729680435470843197387088816470717549389044852461398886351428743910955427200538423659933857679963957438836874643948395616116873658096864617893138339908486415393159681505292227907349281464015005724663236503757256391449901292267858459534401800164379492408121440040646245626345467234843715463085202280076841913671206699260685471004200805531797660202802821040624839364919120543554297471979840776380819157177458498778810312930580935523707057020219008082351120569068455844485935405834619225511490153173782635979827735669402544407612811483584167194504284217671245549327464847012348022325537405388266979034471168286177720637520521101014797424914443725060107954973483771904126705355862707389881505400769983740066664043822686072060249240987783443150372498051394337971940330127836791017023358441475023611594523411486689322555727121682972691686820882905655470420839665187346167010147852126468555395143560880216478041819789461571921188539226285927495066827638557381252802837267941585414451039770867014326833241963800918683411105012383610809174417254925590445881268081366368909757242392975124908039455343575260826284420864570201530528271371863442964202418908958320038946750879218844969507672858291636653066304118564206524516270334066692723627263105483935350602848998012431229548468524894602899542190953123146096968046242029139956245827364818907529677717942405882378490437638291453060386451471661413689995778231744001254117199020903160240029527170810042247890791181894330002837742838128587801691565246487838700398916207630603852042424379617626550277407709082180589330132766982840243937828469191096894534134848764781419162961963250697210725240102164132316595518608828914964134850462931436971101341572211565920387052865837095638448060001698353980039105863495677053141453484831089426246937234206191024018954899411765443817411142543580627319556256508865368703635021776359678779159228548689552065001055375930974979353285860561942884945314598119135101770878944580447634836605988546626797794104216428363371121531408601744781158167659008543742743976054385204540912938899745298990744849285378985901761572975339511765387514015174865241871405533408501305195262083883691274187257988892093344613974735319417290515356501902735085131645274058456649232644832003966469204512793197662601546874741490093673775024111862254724757134923567868566344817028436435460505052160349453840843115086594852056702253303368999225552769147150349678951297409674717632860589362754196666069002714643509668118476608348466978036281938574898698541372095530985653853242695342061391597738473573789414415615127116967586107629829299327515266757434798965040049054839910627776747590234018483827003976547810820371845990084065065667292685192626799989201583596367384830199514988728428847915473197466249341716424164333864156207727904389299896583079483511329951994497010164219616482154040013166890006030157306291271320926415525076320909908927554925392876579097407580589397045283788661498117179948457197962568833895525841820341909597401718378074456259187473516395860626883827806382171532012148096845521033577434290568097164510659323212651711056166479879351389270005994378745344804829697887756957658084699094753451946167252940331404724868438231816834697590110503925150138761204669950106513711151182391732608144243819891081711811104854403447213804507732051494201506305310452556218346272681009949632735865302912511953009799293811249580283197758714361900799513251717082770460145877253394839809032609075453877326423870799649534946158775592012268520821145828463131647027375565432827882968184074587482326167032230851170466712170125619146525208271295872569092751917480834505096991299339512355899607964301417337156449744418859907900255112712660228434632508600077921697016651074523565872805687508534037508929508294701511815331300489718840552887234779629501387853418959856940070705802248810206731910145865143433964971970559298242455857430184195612148098871765483717935066109420144109606178094745011845311639986726943164630782700470545717227840520567482826240768590066574520569664845388405647401763655201521516793350252065195812888362258287860944977637548989979255125384380491364860787570491804716383491814920955594198637513266304947097426138139548983273483067466269393400692943629598012041166281688899709853182244122935717642701283130039403300088123641204853596399873643116838164962698146449060435590531735894555089200897707703685174791565052332958188840857537577389651870313852091457310730190566346772369430669322284120109509995621325260436065476215104845268662328777737710028730889923311089273840927125730203606574901357999030047053948602864146288104393175018923043464360146642282697170985055798144172228637139505903132878807516997020001371032086637855074823195696509929986533566316803574601335377321782257341069409532329565572455713243095908779118263936392111709610959584507182580819555206515487735851871936253475392791909868944481491108765283478598743791070080995015842597958028103800700589869835352776327759337640522373740420233375709789277791588792554724584156065929798430733080493563169105778055564144984676464192637152683846029116729878743524446860019725332393808343103856248412488493001768071118381318920201530734050437892604332605475148950076851289980908741229970008051384051269755094490652955526494259682928462724607060604599531005026419809611095792004359039099280253240489846466034994009909002724002193535419994097591608618952257021875311125818087601304798098121887666216505992866702849499291925315915517680113115927967546696671180717781111709495592017705736252377694113208038833307760498240073788960030340627074500538704631445978120706185323126319091119862583002487383299221404949491145453635104283795432004733509223730769563176704797760490236081688051632562759552730774904862288206705293883724132789326201632474615718942634015067992090514077602463435017451972148986469788829765563802901944939852170709379852545190797512469560926899372368475692093790243038250445847006800302276429802907490167102100216193668097036206303065877501355703213432748564982746338509084744600587923936349661714104907735319806360866497576006456599253914798636881969237099788529966392156734944224030330730523320717969255031279472945602658097685357331162169184723926531459618095484774806064532999056852745505610064310120479157725488229169105883821147326290133179501685731950361117312643984315641859327959713208416372105523753496159753187675874788918006108529324886799754539212940171308350575937006596692420387977194708125415598925764346523249471853025984045113929643281302180607555716984956147222418139280968587466198526825999239230502005313426565899531878157451625899544548916120319809459867062328604076783598097365093009351631330891260163010991993602890945639544647544169650291923183212763717396617809955014954769137000734750226785693518380659188570332234277765601248583780798427097078914304126242857646514113568936918409379320407692719607707313499130907648413401340735091981410675246926515812931474119288039650763365288152762228827108733861887284401231003941052208598235774273176562787529470859769060522275753455685492619953540203519589619072499865986760747894340692268460103596155759861525584043300201247505134210204711294996547232379702129887086952006783835103814429772492973140496943150255468132416093028171996676547450751852288597178582919236849297313705680374349910735842058727821721144935878483417383254357706727867744962455977728076154092743818742391034690381943188706314106480558464202458667531284474244583642162293782990382747410401070454985609417249272627490985807734383259864104543663509955724260674587122766049752773831036210160841556359044494100843700590811993080275973143029003141711595680124457726094877122155348049879262980815095476294407142348054322984024722180313593003166030436127880629689536495039989195975160614953669842918479542660754141328006864693283183244546481485927404081210611892909081196268290194668782854748439687078276735109054313187138317924807268890211314806969739377090966889238377126024494366929110667077413409798035781315504880753781642118623970981277489993794517720996103370714167659732458496289079639514326822403548861196509949695798747931753019593952470950663381554573197147444765003956105489048521846877497578238606875230259883465177346207951015869731529224664664479313167617704769753862162241649744466698440330354057094102908981788286444883937998387116844620107453356883847507652964456686573881271426006428021246049082364294710086288055661333151183856053537714649044593235415045628885177456960900776887102880720908253502750336132244150796466100011232531767290873455524348989330356693266037340629216863235248266426313850865831976217229687849578261336652361128346748884580506494911572361984925206980536187723418269343734422238787575893599276308333391414173968145135269892136935385729857620678710682158826761718390517788697377906784120911109898930195762209855748367040780281211403344205374892499808886877185408309624996524412347536735385838898276384175182074045431928524174999597912564099473055307770760493537892098771472883662937790124946773049656287429923214050583761007673668260782956773942582095844381627691673512314875531270560929424070159496519535921015551636130866104070741934261763585211888843983895447098144834149243330414662457119061548382341349582102113116361157771076868953600977957716517349961086056859180989531964722620248662120132435667802124009204939197246143784563682344635268716863960677702660722666587407801337274362720731947313366922698833102983652115599328165903260927008243564697465894670339858617199519124770021906819260045521475146907625055002111984714356011668743385660318500258564716665972227120352729086093660873387908451719469289048801624970572792891638586410681294096383253202972816067337992150616020945667638056939688338633594163711359186116370767345012173280207941695138056837301491260401337380275233502703667694061485572580021530291485797975477666341661484237435908436810271115235352414323896801709777833071510197461746547748526780529365873445346551790328412254196673962202130781682278369799361164960718592850757888438409278964734735528265325098510634036578391048337134859123595060187046025128563868023617530801361549899108321894192356861120808073199927055441686844831707535011336610736585563471946777934002650533186877275851822135071585946233643570143783848703454047693531847524150456870754935772614824749009738403723890731336466161893213640089139135405078983846079394215905067366208095870891975382250004133021853295948839205871946574952743511135127635917557400022402866337873599065205077121691356056332860576014439705317045454502515845124995268597983458600896320461734641356443735352635940136877719824041067379786799323531210047239652901297474033540475629953926724816011440964480040694612828407838731804234901922669049883604789430070995925076218074718956308502059027582308205904510631903985286623016224542276043216147051905162731674689547131398259220091675521356616218431574600856839114243169836235626184244754591284663529489900866299735429333326019638541068668723509476012489865585244696970447113983490701643308689597140744434547141639545631813165518581063283199120056401558609246894816611647236416514160766942561893951680510286027768819407333197519206569942024339600928793413476361084577844165723629549151743752007353139990605828549957122782635261913649835484093862522009339716949665432178240279452786537661865925128362450377922160444786049712471412307506175910745438279354294744945084007915806954093901082926731555537892368350791059281404776864218399485510999557823204471994164587703164612365114288724582546492602696017044101555917732247050066423509085415977634696500855227778709764573513041121155566932827431599190843853944872233885355301814011977588026051065300744309989449743079822796734253232235400249438042687770313881825297320599364110860145105826184001858830287726534289455364486836393482101115695066302102648750240216665296314637327773983047674692424214846469056770479167298087007694984704655712295666489441491487176946248729700511784387015235194956667348978013758216819899687789010328188347155790681693623920030940554578995296475953252782104195287175303101216113785645262248394830702704175421219527127264698644494157421246395356725951120232572290731291430760008485604544070247690950378028638322420466755365081458341803585435216903491049559628618613965381606070517101766725823040570098369428508160796032800107537902387388642248106926563249414593645290940695098232109917236048063763045765399568448380609274421507569886806506134261316435548943565376660047893186681286169675120293840966486224603721921424958297796313439049365111516360733349619476961721701070482057726579357039602645434235816182520140893355657498244442957357342825249916505755284518257302019404546298960225890831201892440715739852447945035143200773957671616310805850678448392403054054071434202513173598253685148699022041257251592011065743020125008345013738842242438647807309715809209557963761391574652170230783695451453071337468645756082974455666953785205365883687803535257778965785897266009575970704797537834560037194136291295793726558901864136360329806235140368838668389631002202818321292229249496162456778206999769587307900583459818668492933498138437629493676950417606959560957805932512853360278532020725011254941144592781716206969422334275036446259446396608368336287673446758317185639713643458495668153318812601421406093906565145634075118429174666474323953357338280370863772073668132626955651986674310533708269152488121475736614270902331053692731486835045963569444818743592272727710549344785012924293271843596697070836131720583290890457698716918582024444333439792799076554661303637818837000139402906647299429809546223827738983832187757682361704975907694392645131739566075521431616508628896585834703346557921165280701384894489517847878650673435307569980638296848269992882714836199492951661252557965420999898740677915306218098529885992095356649228094447446653348108878512978024466933500130179587902599883105811933259221544359049957102901441691969479060785362520270812546937404785238950556387768903704929496074297724357151655598352621331723389487523492372916840501068752506670091473848337006991231453448986549232994979906921894959069187800376406039478360516085066637970726338298232467740731125169265753713491591126274115103645338744574932121979478465878733293166721093516434072617858361818301499189235833632893680370725622712989193771551637359704599486084557577859105839766286864685733593983812405470271007122356996121649131817206357545777456522381477747384326800378889138926398904688483914618760752197054205933805833354863751974310705826376484174310191384594392138371083199384453217306462524034137436515200327510447489252245106356999551761715621284485559874136772998449057153607133076484420670578904563305344179914964556229844105015915602317919472433403412722135187981544157888677391016258059159592917495003947654660284969956218715958468197831314859975390503868437303208040362590344707109812742748455757479805558176850140713847383193648741014432850439758128654459978514160052655156698939706380509157823357951482373291333841114139985271244677400851476631116316581421883735284320648208878613670709263217654786760733043756890702603495099209984931640880934963668777038216186557936906405745838210980012387029487883014410859659737127812821733932911558998742697859030842048666621473467798607069258151956916935533920151229261945605760002052368041131888005087781669994113432245712246584207918245699236740024195930979944033743306348615282305984822315107079022445002474840258356269196274612334697386282248552861501646248114483757121157795075313944480896735872342000150519149646854262378286602946085337209472583812832116502101671115806411197705298196049354621636586831717944763887431220969649915904060864660180548496822181249570670123088936174938980006653690200179939642873163220162396227895652167941557075179839138094040233580427987035710632564376270604184280810421126071652140923701077872585199082695090445036612339616239997403218466821492377586231358013476876484460742327614261424902752513489014675020294563330976175423535652695158680069143261667132820775906878400449071725683304100585805814605754198368495962588853359674773115951648918532930861369758764811718403888608031013525860422504881253039277684872365745834256940549496234484791109059949162362260374528497080229333381026584604613303075927508410027544061358708010165212380637200767470240549437536742113931951732453346882749535837003050640718203146316612411988778666114500686817788937903175174854920393089077695284929002147864167152238927175416577256943901585475175721264958065848027721670052030855612685434360563028216983854322629305653444559195841472554939167805230840911588871533919800664771282446950525943344289753309802223623896247213506940847357414570953625785388035532855624641729783783022672608634137243552952919311836850992497053524532020614494532271828437584934574309517070950716117072658048772174107560143276868815902642268099105298501049283279097443574098322633954785391782300741189996031950589017182748487152827832889420957611268114099891793425353161797345473670191678281159735181146814596767608398650300952973012209633956259308729333031766689846047371167929109849216437853956297106487136081778748477796360009766524000313239969419912255800246643918038787259724523473601986979457693131539595499669227167241972363050541088220642173408746992816077116770663208399070400856021137436647314713798585853447053436809476133084088084132467883631463670400287290696687046703591602706871521109497999557957461642428374264037320700597462863682268565443418881520039255260381509061448993576742306738447337063520589851464182875412916900464886950379027054681523754596238009460422616172561450616390285952998949015636741672025041528160600451963202059992021636746120499809564301992874951046148286311692455623031685844209158149862559497617458767084477405864455248549527890711380705985776620778209017095713058982549615853814140264324300931003593027238325421349168937294266011739125825617367089896034089849485171839066571687014267654769721994384545085881477307481797789633292069298628734920634475703041346666405355768124650987809897474212495170750669072250320638980055110592189138707037499407428865107186376659374358635578111860211919818319319244969829982490077167891495054230302278064898485210897698469490723946819349015381749141281045034998235231898788359250262779038120482663143163297751543921593482901111349988468694666191524862218747543738231766370942387284696237657425701393896641680329766385461560221194644162410556888517741053543230690020728923706787489082532509950272486961362867608180363378622699608048191669513862108218196532605684975202435544762474258648805465182013061585945607805583405091751585956168676892910252790998532728006138039872460941003817480681072588453888990864007871700279519064747762695014504177190929020081176784759528404178786765928063350499981784757254257912787913295153772199926490360962197569947074147519161656822431396885852394404553023371122002609643384168065078986800381670555469126380051748290357016637016869225639463744760148322591569496965695371869438435225453774949425991316441861133768132822220820426694434742259982245966927580234163743700211190012294753170500851368686395912774685915015990513236832701618818340975684810961185884089383186535052786507409365309000792531255374949051545036426371206994683903572952786965474891203187528367618075895106265810207034216514012566317542088147570235086247380633301914054205701200324829179809311577958113195323852878857252417533817816192460511599416558745246000805137211416111143220528915238904174648694090815130574868917806871876739370157806488017650753986646194725026394516455548978115643934330588939699718384537213069181372422505805574240818242604854507389664604985137824386951229095518858528483002466845690102813471265011310018811388889014350885148274030398597766010035894323257150423285140293092103159690496069388448276188395976668742615454570301481929078595281595097373384442203047332159232109043492559878156708400947689574088328326749215155957533189076521885115803886723043669848768857940893172628101000297853198702707992857265882288424783696566826187461227812048186339675011619300494601525284093498733717947964007492921458946204349019164529172730213355693630471979346466614884926568327135017573695823808436494329971085867787220245581352177557706551507941179665122037857817338851027664323098729613099641774618542474890703778516917268890038036572862558159592718341723606435540963753419528993229712153041622448288119913509061594088008583500760439108944667615282417678221652997379676589919743263542993882211128921803351845443933238165168984408869609220716851234119549410629545290360492883583775069672179438039985978378216288446359044621245200785451967087574724211760616406269671053064450964880401504714150670861136335179407899642127780279351328045882717500708904552848434745087235638847695542092887157308792690220747460075148669027272936874766238415612994109078412399038827234645211655123587575648390301418760848613300545147633939623178998482276332635250850614861813842774768675080897885876288824381132879513170802207960637561749732192272408316377386230202516162093576411192187863417516326520080736654359957286017226708728084418145955088594542289977138175243147756661690402312266810072736715907307729438887048905633560401313554216849091796501874837326101793634119820265601032414398293462830651066565644119086369978794089819216516400305035194350104278940463993269115666736737735079635442389398191003875528175984231759969520142414529521688434992937722634245001278849825787748020515237578852637287955653971199410079863241532452261628378060580176362620264655518501625254013941957912503376816104867873913561748351485023139371125429471550579070924286825150989146121931584529380223622464304907244982695832908430814390077816997957649363383478557439401326111601590505568162562094534126249313606620340161388358000037309915094547580278688465479945996189987712585131575880439651794573878946467645922661265609746753106777946089437937091844055725229220393893141592023202742792423385791805799380542701149789380358138233590127451726766813755558967375607765540987835889295751441982198801261007354956373418729730415769645352277889300596145796170100693247172466303384568715440260720383211630216500874048632075365584132716367608960129346066170692163399446588624827221487283566753233892261298227308787872462647944354413414820722950661275850374720623915116922672207661215525786049542866443680891956689182747679923814525786009761438928336170283458462338541177677346726346572142884799242164571975410998121184568579512427965313704082763753018585204463363803076532643331674600267880313499004459281645035528074777100903850901000216587970651766342977064624766695014418345073732591261663392823404398721068092798032411062481511162950532888425898528759930564174690199093011150008945427613786093814830805399842438699589300370196457470856141341324615841889748959400839305762401237903010145808142732921376205832432835365190048734618130392997463321482561223294044219322003697382737464845402262479245531926530613582336883714075508083131270487248295779418393602078164689353010011327824719674533929114192651534701074193847131611509545055550885707325364134210231630218277534629168555365903059498947167726555797321813178566423853597661962503640928936450486773045746089032469401489693800836220950871278094032218807310730728056652464772975547421595331142330084554348894981745676910460176050633332715185075626567963288639403992209918656355647158773917255346411269975216401663627591942934462689994998967818437706558906405166251387771417095599426372849351732301522941152839018261704507720020264098597713053791886623618950961591626914750654281461242415798480133864183733633958535557103333252050235614235124710236592726148855728266697032655821168107399310431932814800756599875485846316439367636429690287059779931167404028569720615291698806491610004510659408397621869931292880398172301700528359135054660300516581593663062922454964660887228617760154739206251679221605445833386532742200130550405340676149317060823592289347361985102223819477555436687960023274673056746753723794780862322906836825866699568590774321772935289014689003302889158594367282353176791411065368955058323636000547299758505417340177838049211994428890462503555709162862347016330952600446269119767618760509681070643351606817548445795317943131548643685234334526888203532720119852813984171110524828728154079765658688472847264967922131650466060613093315849287537247211117312785523585824541086365429880669341395574943279939016637945458212656336591761361384096191276014413485041771981364354963455483310764837933614099893721669210139368181559985871879326925540278505095321242275529074394716941933561781103380400915407480053883264056939975817975494664458000240148752895822599471188865175974540723149001262597625025340772937679600621647123942605699433335611102816269674435062716695849798088930420378066726325304784722986995072604833103777974263902895587288570818875677735039742082997855337222908420269948686952393298894268856648225447263023347037760926502074592319464393391482039522065549631064069428652945302108329920294766308574814258107297263035323582340887788092545979103665123339968018312395924558012001712430928519137467192862612732729153293094358992002237325354154207105934581507413133303326580190972671394341297720839288834228949483002693174182437290899475029017530300579004515970002388441776814486635049031730534471788190151961340957064239944746229519510167187716806663218900577373389580304597534055953335708845573285286331579561330124326856826665533911606549424267371173426463219859971699464017226995117656040784987672315333090474145843130213924150867725481247393768156441570310116100149337320524069279558990993554181746539376188967260062939732414048878199324532534204210981472599375069213735912325313885083387692919285754681425994342984296720372534248954403245803671529651307982653491335278154822659533442151455112797068175623880861867941919207920730472222416492119642539625916340034976448434239897286750003527296740429601492929495968046875952016270781590213067207246596658600578182210510150419677129286286364157830455964609860450008462959485102089835895019958458251590312262489760326465040991334368458976926764408818928086969005206127278243924680563500446888439846337482328189950409161452335171293703165514532211113372335818627496513929258615988206690368237438173357962450211618072425163410845726327330190684131599927626925739020089243424218532936282884785076268464122937114406979121909775910217367166315488722351430833514471072996286142995047492373603880090174293901890926397599264242509841317524604253403700028763373308139625094363406345933382485376870314919939290714985829210434254976224308300134845054611109050067518604745312255729451841304209654669101541269815921630478511334195127510964977681409732366790613576664622953098248018872537890322966799043112920542641475743479699351790873788114591055386321853930943279367456694159528115691046631455868256252131298979236328995336442007944576705132319155772674954703395854479378154148487883762954837308697254532825612410953851688224060912934719609820644139836423324929327918315805106234397087770429916593090131154427462291059151655782050081104913357840200651968010295764280781907179809015301157384383516744806195515842475318947350128525643763602722547264916634773398676165530996614560648495443837035417178211281484993239870139012194851456189295667716463671951203225349460312333596979503867366751429122984173256094451165120502238160230849555509284721776723667871117539892801277948613177091023850302616762298565224416117285227890521816628053356567936611301566863281414921153427302579413155401922627049934026016711765473075655172240791902425980339470800409996173173140846443077146426951514302834418637393486557203245882449675666671830133692750815643770419495979636271823744672164982432700174976606624909270361051666690441407511992411440203506304716135484609807726587749590460372651126188177634331398562258882687037263860162581830381347204771276448984225508930736799654617913254587011943532729958558070475760855557868393857583381289623738188929590482315366329460807782373198660182485580100350317824097047442398423506214118721659336974261178545966281645526456291050031936574212637354407135360951077630502772541559270473952682858757050992843930316406557539190959091887324605096593476597820298420407004246968902378078825470675016329745449336730321720924615466012659700202164236314831637791176587985804766696203538772889550666661249767139323631377811529610472848080844487971626597637963547005604658101149828062858643947356461397006137708917034892677321849963436843175197099394379929558062721746629819436253127629031394023925609268203957555355424479671914068627865601098594537665932378380684857650068016107163604737325515550264600913963179840233206280820528076082624026413876357781225451774095292146555044113538602668867483195848381291840771127708037413131376596810512280452814709341282283130264468047388048803685488233406741783024484561963309594389017213076029444136759661823838164817903420272733867791653049294441873049269892990232980262789595165046719820294850424868480193964821995919888959776272541809391032807833352616038612290562392771875412422278829689145837610102931917317487641919730856985980225511895128258281900350687261263716451328544709527164918921812924746668823158165077208133920553787195528064068240650086553949664612313584905326524271211344772679642456384421850232406145123639263474971561583708470497022245287803185069861216594810790765047998800815421287193393685651072113044888411207796108016823261399705737502329147537380998441459150569984975306423654298190203785913698397229683788750481584624383945820313091553081727416899088880079488951369502211103992349809310110062444852838118073819654945894003727750125667469821722904801400513706133178387375442543075186174223047592878921319932738178394505547909026974419662200774698593829071197727225029855420953673357702587825587907139379220321430925631546559498957145936848612654711783740305557942834747408576331320006494669621936460778573658396498978520777856964593194069626510910645091055421375516110842769673461600907779984815510158528227533066397097599955159402948908122937339453479721507170602767250028494411910806275440681871236392314558366488675193715631751349248550315069216308717273243397965870875921048478515315470929750722816881810597311492025887163796723204382832974041404307746113012295961162068416768362868493192104072797828431393616939498006024151947239918196951486382714478586538827294720365936414207286168857715637075209529497575156013084852112493251163423950421974330763936884657688101839475426711888989709276595392970322496444856506426775014530427743990863762577081523645382997752248445696812582550626268108821231602684904660876038868637816171215306071820084623584778070041062174215467062694723302880410724763565963634231586007940473213424408286454270222767610914519615205252154479963603158701918137613007226737733640733923383887016934668515843931883976551395808086491445438175843785760645289166840281151820337527180482194099275723706727043977805469525723568519541714052963959194632475179973397618075960830344084873705819663867104207199312343203371126069193071892257068495733137640774187684798051360630724857534820745372827844133789110589266029768110648444766769855173313136811581385652991629577202804889395910203127285826113632101780768731685129537274826887621248232610574855511091921511578042192159296985300765637735193161116742994421218325877305749238063452128671924824143659876455246221088351213683778891064736771555363609057936494097764816039627875652677826063075485341907731038405206860819217239528024317478588613256063382053398835920277020059827378193111503730472695451902489069070396691711058425342658737361752321327768240406741327289827400627539631219966529461248160615808703696707354496243024210275504572814691601161235799406119351830910098476502636609644675176022638477620968119420017292459646759482299968665193591617740897049951561797056019114472837061856380600217189518091477942923300113195020547747537125879328258158675493777517267601227412008535935439880851601240046173399681355923169406717849116150669046436704790659830284961965164245852471022808413751287321845744009367183923106879061155790649109775813616158460976649702469073490615562035898230514910285509965185154967461387685231219887857807430801781858041180637577009647103177261708590566573887437387081359934668194005487575894922799366003479063667473208248088861270266066095083844957468451506443867344724707488096011115974038224970557195246570508719850696395785156478414286150631201173170762539512192088848011425731801519043232043622521487291331573929337149147975784143890374023413956663987396060721420640570192344057986663361740229537392839806549338168874503210688422771653663638031437851292140277700265050851691684749573750262415002234269414601480127830809705632803978933305556519025842049505255550043964427479135283415630927569060604057697046537203642101583186575551416388700487879206952475909202994669320061631934601342710269677982677939898101446606618669751515732566978497663616228508599656931423155259659656160460586136054208846848393891999295999270641046725809859325781160985011439983949959101712626335607074103558860419542749026309006322347752815132125458299321590703800418495600349058190695966932111509393879346771917546207992835883459909859441990203322980817254713256576499456114852152747957758213304419793004896688378113062879893509588032744043879550832584789455826542180710509924560549262200714191709371580776207189510208212783917812786860879660142872700533965592236548904385970590527968417007911655782345510046949228800675765946018708971461722730163234704932171407114533889916488438071227486136364199528411590004160469907338916396540730168083576749110624012695235100763221128904651941274818655299278033768854021858096929989929193124640098206709004950992115626357655999046713276187198208809812929302150642354830230668930142119201367188865259129368675347563953814208256734220005556492456889528138971536493356788003166970930558713908849583757679903396795577994117704997335079960570738647339946195931872980010987806816150868532809232073993478364655913889699451491882326654105881298593909191143754539261458113441025988614801252051934373927001160070308891435854789546792519648318042173179165132545851338193369497241684494689351858037254645819591013263429948746945711875477675654060494993605301490964371296283111473066695603744570378391182989557361164930110454868575346658753988750882254278734475458218067217327589990574946523659276217886867583358361357206796976032904517470826942756846145121813667381441576051997117143555284900938949513054914135911322055420836788587294673618301484858766701497639688136617790638474675668526296015890261248771792787380276865818768027284699990446983318652094964181632501844905143297253829790009006309840485304469491799864542358469674934441355746346297113436688052139641835423953333802364105996500258622546442533311651703889666083603974361116760339451615537235513556693414700470809287009754150379339785169006457630693161067287645573743664397297536413427989423940322316683294248892282435976192634947953923849072363014709853907711538387851134509313044190292842794037301756040786584302386887676885784745885215438296062653522330527642708861605312418013444005820673597201270019331117242052315511974088682071878958704890361675571624320153923736215559895034312570209068703459678445165421303722269364370930218626690022327060914449564903932371375096513815095427513305638255515704646451229945372274774302647380660937289900294004557902639322770514783729360764041806756375339193866282523311126290109637909366428088483474923371084284593827460607854297243067532815751822594017328964662315335728010738177905524413051820574765017675745454765028195059965222895476241838200764485972165021919064647026541313911760457056752381746794272473592060765023676361533568214958397284485686000547950936038586275389801908648685635093579009091409531105215262636086536099845450951315075352663447452681472026044086712227926808596918710972622605189252861527781330380156287456055730854433394505062094418243688401939564336181364621854590388097244973784327860823109884931615258558078404199551762222017089624993465375295342738116302340866119301370763490023679615981911683903128656401294399124810116983154045007775648992823486902300896386078488419663547438819151165281798242484680104060333215041394959535055395623888454731636136962981659506995837344891178126350358700663788620950544831208058929216167791651705429407032028048159759697143340039574013448187106099810134079943126014551489585136210011430755391185193054390655525187228043244082222378812988514848216015864969746996361943425006659582084547681734338913748168255805178624468171498432026458201389431169391234120443533123056650387399549214421663956954025947103544650822661684291030968834599147745655113164633309299897147063727532705354250215864836323751980474411776949148475755810127413268927618414251558677898226053507813273798366248920549942808532594801556488448014644733528178452244436386851303199832519030895180102976974102982755766199780232840568989117018529254444209901712800015080078233576733764193192156486009756772564721803536259524840385464796467746647512375316700601602890783849389045705954058008066425913810692252136647904567225636161263052715344900556421903386371844003131862302306449180848865361848856781544010180529718334848826149902336710801116519844699119224175947851730430524341998140495860855921001247845616608709427621953579644311457418549064859023845085092888804398505368797695429843804232066222313044205885338211101893500325186136307535631087737357282414896961310748419074563200422076604823636221897500965412126940627914930640267584499979688333165754836671272558340130459680596236723298298784655132125416529319806368018433317021493473396664407402054904606209863346240650259767178114131665603732390200926278525658098918632592565676368222079573471658926754233749284233979212827486823387719922969967728705861510125011590309909636318919807056036076992581193660013981849563557110025752567664347873313273390925286075361306601338233839209525679120426791423678447596578599472173316540295499696556343547781980973979131502101050889921171945477912332382791295032788313470460624949550795159779834785191293221896981334324756618854707041177424081832115253784814339716199047289927526725781478384681131676708779039816195095593219268498267580473713161725092521129288675537035433994503350744489852919996355177328192252212972602194521162108609194994132406962367520641328231914239739623547202089992803299970124370487597045258884257082425387238986080191374001797545836475784186369350367359677556078982244531868748717368864152292064043033934932248882241979410754550646219479614517513876708661867045948236335481090193964570597634747612666300382210502428683460060120450341348630439401670851811345066141650513681989806675298785544492728561392141467800432089105799191698611347361468928049157880558408822806345707990666371720830198435344961702687108293863783550560596928941150467662609166268429177606345887248946076986753220222904915951977381798696767171827805198885780938304563505032326529653807617649640764732597873875638596358944842455573737154965330255989692244866337972074659370592480790316769705074612167225535643087469091033302347692009605500790536937596039617150920923316782454276099148072072627060404963767826721215719246998595174432027142012827283974115810899263117968351620224974763043082131499941897060438012328761531600908252238080972656749232837085432440508834766529662063212350704606684774146784763186895754638818956005061176960128139585187099467587311442731826022921340415974518322416179899331402626471886857143743235389775017034815523788655006658419348759091491805225445493011523876836296267777741034366639045703510478353683540023643993642503387625208202669646038527510050473873384376015002454894458750999124507164354334473993739967290034283207954351332193316999592702916224469758881955412979821317152550913819900721569629220190535997660068747753358603425861095841127132115282946169967559845234384125805592322803693548099267178787211190816307062449962135588875462362912449157111329316659177128220957838010662369784762632896930150700108990207301578776157921012653162953367165382749058212538118168810383505803483714285567348158086925347362988082437748344361585219158410051389139836596552147520659748195956317821848827666998742105535441480574500643827461552299800782545498896465818406902974231532091939113704310157743029157589807837273752255760793832292669347627339344394963209658870520557897546860507354342933790649455547221174490076795012731753336759090217184310804796928598770623556329455278325637119846970851961175259012023088002084145032319170292862308300204680926855221241150118247241484680320829020492727768693237884140480297622704607389903227501042092138649791185465760931503622619403574517239420475987227295610370595797054025718720482556412510293148797384650580352289968113866501438226147246279378094779944497383777554136107271477984809189365812218318618538721142481218328876343359486398100475607938086036504275544580803660582994994821356942701209192637021009902322592013075765322356717707466410717931407785033609259679485047688221799967286856390027458876223877625163304387665063208785947283670610866580944443542582189557642111876206370217838652490926877560192497882596536751948347914746768632228906878619446772638476287867655071716929591108610618108933560650782633341948288505753890168254116267130155330781058489672922257980299060978336672521319208010123192690816232224596748644394285737238312446216411533436765348537840019649595341980866267759554944956011497112556680952498613458874057344827288042045598852603388961809412146219519639369260642734425130398152139600044583912414028687094693367079583266352238030294801615354105642643417163822367314730116301476586593626297633819694865790550072427514521664533939778379678996873697757475797375547990048780522743240035661039721416646585151506153599854933204580985766191066995776200717774903456440503026468434801744815212293893014701923259509933631496847242639478397508886105935865378931532634956906621309343741032632967957704901011229633620146811048792160208228823781127663543236975335515006600704163842541123273191507047314248864965452964500824440748526921143398342904790340782986705985405367951093102431593077717221143830763818195607657033610674145712738742160843216541203390468263532714937528463813136871021753291836384353612366767132170716035730134123237323209049331385755056698929263329210485786415421803606231251056103059422280343455473913312790049210647166921047935386477964153728885879100116154706338652425792464633005851587697363209688232334219251744241121882315012657094208583775855968270784292995153204425693066441437988985585583135638340873983951617386034591783496595994116139837463828361820444530817185786666202425212547337499837114669585475494748954173058968994265655917641403010217054654000113942608431596515772662298613458256255522190017752903026031510767508391689558182595531223837861154614877935816495868721368987457074764944145378375857001590119924090848652639404845220299944545947080933099485704846846976074509131421909363911726106163445475452454567001628227465853296143400909297390339129768774731654522042016431021316259386759086399206883698733072883277513182314923775737119482085643558979143878407596987627201063637478125793495228351374661547370176591029305017914966545826784529443739962148477763715661608100897078217539075051145858950783651522540894247938155890443779155910851582518984498432141762608910914619602289343280821556632409043911117005547221968091034375535296779121452843008316989822006731607391755267684659056875929508262853871399616013320105757975467387319956113547692149994002948030837435960677456860751930312399109716999707669623832549884304986858781005986320714972730342838377779051195649262537400991471260607050735995656358305817727573753317353603431439803479194346528602128857098778458226703025429076079683608350189185325502907535285845214376306522664759934446065606571488967915617784131865882534666346667751155029297218875008868563850235589639293180753518886187374699042589914260895635207997629350548835428922014273363400154921424960778568326354352910913938008165010122728017134637143179096378592807947143602802491843479357136616665298122540615068883829236314736846735551737039825066821980500764441139994169335482728608369257560542899211139046848766013443059575627309158139650519836041977425625361037015178872558574348083775847561779883042632710508907082818353849915744305520370360456226048303745089063309744608733192902869413632080168648133685033242849643366280881677803674457110838764381198951438010100571671983235864265145602541881096562207515228733713208123462752586868499441030620369436789778564110602046144911279972931561513402679972275815202642159876381013210684711476913526502508246797836284672646066883520194748050227761722621720765099033158887819740946648811263403933073498220369070080795763054882471569049256110453455132933832097041478362631404410015791077445066751750290825248300787119570101681694094717039464351356585963598224160044704056228393906811404517363824656833087253115502872368957231482619691941984339453098362164521695813310732167552187120398226906805003095307218678481382219896004189889667050033560239611402579892392477099645190208125116235501841328831506586127492820934138985521824775359134142285244076360032811550412442844742288224752446400680179173027298835752395290502177518061049865802717549636999995878306439729492990431357496556725202299246750063964452408965350306207206785632842773105708554616992118255449486809848181535305658187150689127374109035822742151677265378271504586211491849754656926725982353954836053527729117494381285350130355308144036144504843889102251339225766393213805191858114666960087220731659359227194029086661605690499190223095643143233577865488595535089565788841467166161320366448509033857616687165142867400418459479213651657847399253647176529530160355635850590806827755689854623276692959861235942528814747450783555290921765256579228516261532313114420022454638934559748983036285635973414172094202861417249886302393877949407675069006809459966465337138786776562338514006656420027619108486888661851658616047434650771660920257838536994044343791007672108927416382977348469061311188607816063808536249491103346370212985664878981105923198437006815716309526920056258572855945184031551614057043253888888848617337391556866438806920990851902861565991610670482759876093415544755698556930405421240422835754840376170812085319664872924901248346627241545154059718324907291856045020969471646930526951169189651004778302044972296337038229917520825944709958746204376442503998464278681570286845466391040366832292315615183081877667513040864606725356795045996060607063238365582648780197657367485053283116857488302626916559028187340048157359380144398833053551099672457999021967750273457000603396428257624246544657350479695178414492252539861776805342036128381920711371204963593355367676483329773553897575410816853835426820832072317044505577474464144643730843477097804063195005975550535678698809079234365996139346674179329585684730410187659453101163946616243973678874236908415684772125449110294685714349275763014583213033857630406063971765074519345666622900385002923818411451776428146698702680526927816067876481920427993927590054895362683032497526439352416674937796685427956513139776216282054961407551303521335336710795574784382886582770773753026658231903524619588709086308533729901034997991782085769864999055545536491969177341736562445615009582743826248176265899401763051229131897986503877119987554578549485933203598442590800951414831846940237505992052809421606881200001097842415491376825910367666583430838661331256307221850595017525485223244138982583579641501811626351737622243943411207048309844265772423271756949267129423642797066272521464013152956685459591444562618910615727175237992579203817031751735257811881656083909989596122744569629327143530181407663979923617798950721973488105082050516352709418490633862584953196729042195988390142276668737824710465213209152433873409766541022813409787297890828055974318040608228919222780368516962268408138418197550582049707187482594102965808208844505180480394291350866507132252551408251345983207654148808977629212097974476818337349792771574951341977006046053523381253019585833137175494936970642887535218864927945418963782608020469258924535002421067515307221258611516741995790624448817967936954006845846037285474277019241353582375902543028398493989011286553694637109605316658403291061927435438346562681714272064217418984083785621742136641695608433825500639784555120965567617706072925801957149278362378295345633110167312513187817587584933204033562596150937591177588931439632069212884129470027098689068457323876210726511373658193374668810406988398608420380565223792763409700038580690102886344672684747624470972566721157439257055189318409636642570715983918493141884771823085972660589207844437977723626384689103674484347462381346440617764766061164017199711938950999032396223860627193665723151005388268582154102485958587241081079984415587748927058486836599773042033358587570255691274105351571414841983927463639759808359127682697281602782608279262770110280740975371752140159103077324161230450047067686294578453269914023073145069834762337098434549227962106767060584291063551037847450757191842645706712708018237694782963481227450433303381443700248269170076182102173424513916515388723941137974014030845948100583791805455152584242257410936982133014966022404487085708756866031470962808898447186449580227051450860972400385356825024885018990102495373124006614624596487034937250474059868815688254174410096291037240317940787054229511349131466252421380359169975182279090419853420597110309603499044838501435122095667071694134198913342000924765968445598506678188549025805286270146926687078155475787763193628678174112680536933715499681776736297028861028952069139395070992550446671564139047855336024692742303081825896393483925614031520939671349481692837015463369821421751714956938736550055012979327678711233761243408102076647838234185536486808701011664215714837602061047433425079562241277292727259777239507492098135542332276607855100438913679286385021229907687173134304283449177653583422497287597874323713153597781125451271567036144793684631281302906897074651787938294130502464879691250313128734202546387424506835112663670515897725168282070324933319501623269705581645643982992577760619940801723690707393853633396955784254280376230959695357431687752546703489237553284634180116039536936895807292970483718412194978351404476018993861920919500809699620811372460735152302229511806598964415255168572072472806521557882328166701740740099994194472570256877755226099539661151489699146707532166971853464641074030790918244854984348255360203383830519098184147072436772625905096142599318459747853283253775759514137133933728445693496118861244371164570832332997466577058159806131401738667294118695050869189187240001364856891892557692695977027843905692399916445568208634719156388935277327938515298603249747409346695892967309416488406850796213169440379418493155094077214753928234773621607634452758481106519688507896685071615213264538066646038236109710632903866576206322951819742642123158598749188300825448019318181897282790022989312620774784061605583455893610556077507129725856808302634983328202694534417748504601574099197694316086400672414128470677554615720148981134371778921032715475993771462792797557013980374949883716616668263098223573641569641723784408299896960692129140949786167929449250130206999819308267403974809457544915667988759862064263341040376120201753324403348032087686639300935443637818505535173933496093121450925938808867850966115251375935281300048663541909379748363603687190668398826467376922729271545473089991942569008991735676679373505947268373488531625589053102852318511794666718340019330631504199543704291857299808891282598669587790666711409648843832953073077075847646637780987652387561653888464067622349820572625367677730975583726217834712402315905630957624807079047315748564610413597641025155921055246741141327457192930450189814403747184676927278089587191174130193311190432669111343512434816029878304545316397685101604185634865987207304170771755159712010605463425139166516040320779082825543307358235825848972606965760327359887691489381554898789521916846803750636902559675895843355782182067884021610128844050721110466665597264438629572678908897799389760972447083771268557589580942737297837125996772489620809175241986330825702752835984731615105550983888699678882974250410372312817988294773889037566707547412968480787669262953351462231771260295935082884066530352786505950402814613660987012676575277085724560910119134540339088013329222376222445901603779781050676444941487057266941065628378612919349846350914037559804773224906976743483822258940235073366447285315540179600506940739794178585471720079844020669843048998848082336716481957013600633072065989352727835164072948362569121962496954747663297260298586297160665083282432224946745521864906791199606939892152975407278058248713715566505428674103991581019469359999952478086969747805514976717471706151943383123372246772218680652522510447005246163481188963421110347579338581505544993270240885630490567616806324833279750310765207382897115161076098400114293660588120009127920568359659192221586839765837658432218702673394391852005839223052564662901810714012245528722290624854947353725297680689468777420341435353360677399805454015837045418830366167768876839762504302887438038555949011660361047707153801214598715504479906980571990164964914696224215786233623839415802949832301356044817521620892516860961601719757592991543479125941964181094757845335155078899586382537121077217152182603886053399526124878005682638473534820846216925508487520250109398671302921554257276032895986078756059392966910350236361548464348704009037248751681684691743653605447823611277222510360811240591659899023321665254003390146251799616898069432452822707738689977074723107691949818963039725994124267978642814629903284558088476966200326585626789396066018061616825287797149185333967747327423904681087231307184300215841179886780587015302235725344797835622527453976702520212525235862997204905377303714312680153126589881377788122760458794601467248700712733236838851826608564313032151021659421492264265333947711530413671511879371700381306806693386677164303052064703870913038282598988018568423297193158486666326022910654442059467296692456382884296483767544269187046036455814012422378209384303150480467645417755560570634109648427299591070492432723495744261313092017225943192882525245180889796779001299254418492754724654927663375031828351594620601122247552894120904553639350527607273576109900347115985905591034449877170178651795811186851618192504531074535307931821431228121410092745456410933135354629480981714795377653898807644509988226299120246102217275628847883665789779806037851412206734259410496353667755037524361212166781026804791767471651855992842461675334195828495560632194650532106004546850126538144164892845887967784967944748260340828596791481025071142341245991856608947713227325872589401118394504179909043096852872831790600968868063770488764917259710335524773915340577015974822335414229913283825712145344164705611655255483523246818076416028190421409854181033393414761312715736448123442605733037955056357521320119427065080882876956651548279268930641530301062793550698122217406086927302339297433559269824016143939455266593777661336686868494305683570519041793225598031193997310602219224758596990863885396583402302203270162691656709425640893596150880353345156759582619925682854625788147424803066708786599592749742568591717693113239415720879298989622669644238043093790673281341363092173488708704272390611527956835268521978897604075219945119253075515341763417625550037213076726917152412817234848098386477810670849337443758806675685660544125992093995672969982373142963266763256378699118978015836662654456875998566964564769804790780406373998734985679237443163494529290750413643860997218674283597674179326394854711459712858613517660184433230813435840420305968218715539239294165174295263950582835762615530703844716969574785099219603933232792086714793743764954541740530883394986771401303067343171241265242262269248488879431474734130240818029307876466744192712962571526265013343909170051951021445136114789817852011225345293329153006269264993480807651127170618829111340077286114759374833728920658726573084550349220070170918096342051691362190703921248560025317458209194515202635909493915235004489823352108982683013368086574971542005369962259695145743824280134413975622942416607599107375555988454311240949842381499929764834876489569793946298065780154461976015497405890178792667685180388081804127416074133207867163277166960031748410609564969964080071726892851199209288997989587855893079359072358578847158352509439404780290546293104152011146489353961540146110135392008909552120155481458200552522954916904946270933877081909861726911518287235145290688008974123550272752517553867798504148853507672878930175650301244288774522812165311570287298700936075489168491524427374074169740517979314406132092150165053095544966481718604233703799238357552030448771599470011973733742877229702067776638299019584632513474399354003268468306483382224777084541467891107541056477518807689382432791171672624970293000374852863312403514477870698524460691563085285839576365696316398786998836754662261356880386202262185149642470920248026828954752115420083322096038114373569214977462252039854178194209268020377726195203644336395577883526598560309993914325078201409388985723231064890627345006061699409176397276937856840167806648795088432070506416257936438125155056349409488829518511687486647894586613167680844460388963727463989569193956315502945970661981298338531216400194633976808497136853997404256734041984112640856020952733411792901870370799017528083683182382942855313406528807068216066395502278232769333651303089242129222502861497648093633821956564885023162618702569765007098098142684828803917961969135456456546069804156035202811156241722690518770769404887250772139505740834701664673067804278675120157288293308588757111142783516267507408886495643017846060756954357674954962774562795043073187834198639413181661369255475185199098748822589784005415576189904288835243072040231906652536597942993370879331502396947252213183520541855801618465777812961298515294120540478597162261151138348145710082035519043531748293259507773391847047884014430265391809377715496339535170263740650923867364340047514911184397566907907483425291293781915470628085744844863699074816609218957717755924035891850234941660880870373095467916650048082052110657628894670677670632204799467243791884312285451573211414448206384243218970554511240330622663726273257976491217852324371313691492777702446408973129890832588612970291876178328116386635746678530989158342255076044596974108957572315162625539612077435665948322132826389362960958078032298866699133642541404594798910039618077745810899637059771537704353963447041762948785987639676110838550647975290325788896052344089305061332057383692834762677648125576533673909703900119951379464732570903715707848099387282532514890571032261781128893939755151382990057757096654396536189569588781041500927760174265839424599479678198990438158739542087405907945462388122922993554400035138254425160111653943598237191767220932572982856116493246982967569556378806361865944462392657760043294527307995909356138461647077689969107402243584184685718130861523795259043113321944261435014313241239772998455694270728223934196865203086650185699466413191757081143994686834049572246317136752723680663907730521886557553753950257515546028434383656173325322718091460615495390988877455485603679713722116490914012455763477737783947533164092333292857667229174271765266081372613077994142031782031437870207736597854927937593361627806810692188570661493650627686150206703577248227695031511376462837551997464408425088681124707904129543397979638666249613386521445291227160612102191994849569843249558007418839865390624325015215434136524014971925073644507511335004872204055328551099403287109150314513069079561430029993930373858276706430080191713690288031504047575943373365169485586839746318799169534280398612905990727392370899208829318606132295427247407484219547140680611428708782183115089574554411110356874387577749272664313893664856481483759610636326494648891801943710780456734610461957925882188201726128660665236425647245772091798117992650780272202556121737914547386217494455369881092370993776257032863237342201797729926479961859803061894340344466225844206250692305503405967465698678058628778742591615380062719743929224877086683825298669699287428441526709916583651197077328216791573280640093462371711805799346579916557102752477571619663515814106804429120884256393532875802581666085788631574730719816489034410674811431543374989380351982345185880801276436951112062642773409349352524620601156604163776381062752346896266119723558733081066444734252732098053825281753102748809961197131630734930568025086636341678278949915230442127176221934531159210772781224524772717620822701567078821946077545197410269094688317992887724544462362260011977662941029913926697917835884816723057610268159629573396755318615151406994490775659678791303503436527003352318908815182028766239896967285525497685720027652273770805443482252335018085168477664479466928978546611398821278340788351767927837789024584808991925548331586105958640605941766653541597492936586226547502656251774671781438066254088570971115304446935658209336829746222786077864144452979216779541625689648164909705159333538832033321629750377109084868467708956330728901872324928323226460310207472203729510186567189024933614694853265949448705872537905538534274900301646044329070376683027793412530126966691943423072743390605521947542415550608970896160845967375836440680228377792739474028469501646491320033915424106686805685421012054052626652301532547822243274199838259225161109525862024062638854126310710664331141982051611301685859624758582365796768901407538631206665285077510097393205194599722993742558757677155430629036089066675398664235361869265742284118288946521131721110982620405011473396194368009533846763340104502000939619787580789598830927228908670894416835922186294242019892895477583767468837137003432753908274025314039166068164897504964088485910260927324816340239210106880960766718884229090255391329732329149718855446696942488186694254785588131194343408950730894401583733655005308413560456230239979110872194079688677443204692348550096582014253500435850994367949246465712878192394059531744770760405217296131523336464076893676074737780768149718753266764273549645233062222751676501766901671426238383215511966449942235346015451096843095036333702963435655721904598227298576185683779857709106931839241459919461535317792989246311905926347747020301136898734334426767815607635384031865193530104394319146174597554535166561287271211764341723781180653924459997361767421163249437136217263981509372222644385215584133545973134359175713975206361647779521804508564181504595790600402971208023192335259503702107970708583955827511447227464664232808174010119195282886072165511520223528573384174739618120008064712307653581563227752543438560431051824198840704222266032201363118814758464203708630377877046869201915367056535194270559687957748391167324743595662235430097860280612908245354417992006954429400131610954089079333994386203127783050478861612627505189296138326843640970969984587818118202363456995818092907504015460609866414305462078225194918570806135951603743936555743254604773902730670190335213165487184256892030787883203805175105420826425872449824222173893831125498792601491453323362776389627501864008020621407876566225022251369771978203029024686850465220355169149858639004491799681604109098007972564573823130809346494821989785663488971405708763450263623074281481603853853012772033478480727674854056288611273849090663006647754880829175537073480853727679423946304708801399400391005718274127473089647308058827480157620841694858844675975605603093455759031335151383611890666780503686098048283861180689645383897253951430115532567386410157242840880427923477950905776203075374549529284882533388518996348649783618256360101705845664400963572251919386525015020603949449442693150899508794349029730047217760233909964659359958459074439453870898262185004274037486835784322869498911332479670364459506249639602095444672605570407833981172263481987907462102015276891834460292747257458797246154270647104922539448656304101590080647934284007413912942460167441883171378027011034176304446947987521116567706674805641106311762963191279041131614801415567385467062070205348802883733349797217345574174727106859201814626012809867357607126568256363270498000975588609216910923138065744564608445531535226632549708147940245892124361335717771759196728395528330440238836712325731182236865736761395688306502354755468023633954108107258627495604992794334478010798683348443238358522737093806373050687469765831796829580949452570024237807095852134292504354408918681860126881939739219834289003483009681917858545785869742843860646602035099868302449686302019210233402528350109985655476438715217625488188257871145925386575326027323290799824394689666502503499347491557496252729347057051061058095397555864619060600766631052498447394954154864347656389852659267982895231160287431200850840133818873989820161047034656581853647432006938892391918466788537795940224354459164444818964460107651451290987323128922316113081709309411409796716001863553070934364474251303089883474995411318383399611589750761264037149162506582784595168327837921101039740192788274475522369174818211625810943564699512144865889987458213568832700333385080509219066620738923569552162612366838165783863683442595726273737894968056078866863151440800988936149754540200098692475395475326323502803089607052834138193281074489893036495887577364497085176901339571584414552876611555039221342739742040401477677116556386260344349991271364464148506795792843894293466633683450962870861526279769962626706207778259140065039621126398610623635353070235816283838211743000471834939470516869141718879823005757173529676717740140152594626034819457139709614480760209530094478570996478689308343022966415169362183185345059442653905154086893745393160942516559849894834020357877584908424758771863830418505102580812825539088741141709520769099388773376146834872951430288740000452818086548840953071594450453440368824966644119080149636139550594550581243524314352568984643292017572262775316285345309391620134803221327655989266450307537611883032185655595600840759015927956497059349909557741854577890832539106551486988890514491621361517107302288357085578414526575703129838984734495254860959102072487399421704579771868477818738132081838888863903744447069880494289127946615059193324335356372657978178715917909244856189536651633742993897486774670276100361645274988720134690505836306454017915011567845103967279523426015959654668235638480880765621804508876303072340174294569832085130355691084457020986417354047189130198778587699578643011998619877765135833076826636426558008665723328853661290496471194156230760581965169888295837966978638480644877530743063762648058016461495109985514836893692321745089150612076206657047523013920901292824080834172979980617535198878357337081230338824899123646971669720900345002820032659840002293163497925228165130525245968489542420051580999787976397506416003097808900306427061435929173979992005235997768484743892936028607981687309975372283365729630992854525708062362683787984561313356710230692890793325975174704300248662977152330386285327738354249240723332804415741515640765894873158882110146207031969710694352666190125074518174206194314330076285482283185298217062239752608971861295973308759634582425192401987746926694509974249402758090693247199966604181749304613009749397258510391046720361799563588016708323934382334423612153128400864315119685702955769235509755978255959132108593665703027847812838041212565473864694514439918097284896173658666401340462780837774094502328643934938369275779455935225772723180679279249589535800398908042287969496769757787127551171281182908197980083566935549486140814695130699133092163584706331585728083315089306599549330607113489126619528418935724747311121100192305116776400362831143300421382020602092017906822422662944037782572918887750751242597159545881473151857051161559092154902063207424473091841803422580753364313662657310528212996680558786685472119419005291178587251083119140889678841468975196449205997673453858775617611133988940901238740428520453614512089683753278916638315643552998131387606655257393998401881292963177236306901490552399669606502105144506577490185118202500138553092565036875297724210129219690448988606282872645599333581456237518475211675696520217707579339081010585149260610801776138232413134335370668735560333375858386574799220314396767616175062112396526934565891640978281289984097834991527160320472954654164766577595947401286542647869773580650546365978281880280630943276815708500219375533219500299119548126097350632548760803384587455596706444895177910172684163837724998768768861789549792689133924752558735600951657427243072596475892181055308354033384593129881214586123999279904100716304428495658064980560739675421885352095340299304135803718557359418540451267370583130666897760556423636592670745763644708459330698233115137598725790596107365846276194280607883139393562816233895487322582306164495489912999127062728971753400635844662328645764936032332408485557934208795034057137399282872612630384445501230733654617665802439940508387068951361122791989768742133558538038489920369633843341321845481438598402207406825816960076744275717317135848935373783348149623202774511319007122353017197293659134467049099243368474309499787584786968974431878635527981503441263082353982075022455820041541257956664667212778560379862995310088018918861614524438356849472545415444448907739015272481450246276007448397288344091178694026311421381417559345308622565987291183763149713028133074969564519838530506835201720151787311304151652982747935243067285849292198193669773780961488060818847212481703610139828088508113592679782148887938419435938950945491418167387934912484044947557530737589402031473125607953551768145209515761370146974060834829009580522693985076427473717331894075575795347178661904155489228635960765400277235873721979339400048266700685117132962309072303059763916348667850710674723049797382947304501674137360587741353176198185963428285292900628666038494498086412021141493486944901985144146476633416872446241062527134281422437150466542554743980162478369244125649543945441479473245540727346953132286915886687406638638779987938101044067072616195896073651250002699850610227194542308663106756742681652487830247980036915389850243815297591525340435125801746236450303130251694088758573781749193818412470016942926363174573518395432928249595659069274768890925631959336758120468902328930259932356984968880761394533931578979484814092019384928719426662980820760976142244553494722155087985019096220559393795154781657610240241537775807239437881982946932436038782194495217005409011765795317420366228434171541063120807397681487141183390763804846380110106230179224114000215864603146006239275343102030910564562176059477487059441389938028889867089966177177927089752928805060954560691571292618882068015996145867414540654472830552088237254439019279197710793445221365795895204112953842739728039640932559393392903705285999654224689333835063080278667233135454033213048572775938040536300320220779361755423967477588896973495644179546395782056569412778447933482264546301927778128070278205594462651761866526212681191861461089398193445569076562245272001701532721925560817381703771903174152354604757067160508475623853694567638073691892395646201799662947819209362633173362633242543397888531968342977438867497853347484302769099270011385742349708484807713197008268095531075585466956091327845829429701939868661076955163849876218053070800827824524982539621075686488319699132058207369408689147586866518887611777506322094162695952278279581843014622320689711527903607058855951687575968851050972849820711668990543187975101367912256393370791010079281962781755893654090722488975868400978885510440721393672609913398443337329819191632814347128645668463323963884234018206448769522225051183523277572546647942944397478392532479321847715877139356165454134858162220766928252296022595111665408940061009535939491672270278861155004472753072553052707591604921512503811062754731114234098655200842547721767231851257879855860780572022703479054123287369562154397934556937856165078946214199318489627403042269789798744405883991727462321091535176676461914416810782299185499641649913281322422363490729513482020835960577617007637819989582470915711210728281255702035503319636642326655205857134556684203893207215215878133253613812889305418327035808163115259922463286271439155333545932790339868998290983943199081512929803857129387616320200057654159313156454081705196592699671257311373773765128158094823655251909040193360330499282902468206892764435378795697797196972103580336761395398980251395534495711830561025693095487245033585102890872274260480892262251934574193281037568108107442670285105259004035522980329717752493484740053519738944166169325457083334887274550741136551742728726793463040379754492719895437670637156497801453977879100718449904932914285917250207733056457000945624196658196942958495476325991336321175076529413726449931884785798785632543433379269385787597579585483479173992736400534421274395143105976116087028919720826091303362373082534772086106971738174777343984197887542585279306879636340460949455627566405718687498381763189684910678767179919554595846674924993579478081567203408154825611318586945324591126790737159665639360724181792785101490876413611152553302981225496499123675851084530046798898002005281363874624997295880771548637597696200848900987990066043597896107663548984671477039719413711947347696606651463395032206381356109586382887867074959378267814071539951017521146316426127289647091025775219663718616032257878561641774501047819344721061641065416063233665975599303489177517445154038521163603613975872945965646991104676432562226817471252830505725356172542818124156726791895025981485977491607873531797469054183276808467334981636846597832193615031617112423051996207830936106816087598579582838145011922545213224275180975463824203411873796959101200026889634893942746582023349019880159295872567013643920868884757310825169140351596027133984073605421986003359698397580223376796273805222739006091109902962500151066739876853435610096647720988813211564984219912448743438839076485553989986526410197266462651104473160581459551273688131775962531242535370974488187686551064536218788043595771917365216027785440320586354316644268663749351084311848153321201451950637546511752953001028856607383971031749469060249485537131558724464456625851771829854689580501567166959447562345180332981985117487830043115561953339277516799304760282485254012775337416018187316043187026928772571970828904205090461120592814203157790821720411403341766912279595416000320444919599821470116058810549698111354378774688265967054455682676233533674330256555336255813836067423543265048899898313530391346172428949370901303417025428348551178705581647912284584686199245551328220129729968288471536023542629618599519953163201556945846355885327260470517884828668585541223603629045535747114075355313693891505418324342591555061786760585176967121563549415304048403638727263113666575912302800692909313893464940787894426121959234971355426051247667868969645209945264749165733798590172100012261953204836745619643617740331975343494726975385833507258152527788958304544819009431463695421795403909682385890267095269273918831916019222547760926071511869928523177879091726831780837153893173302310258825088229490167550156031586998361064331494370788677431399658756704873313180468738802744254038845261371934154375110305185737291676733153669270138292833497501512878280233434677124035732537171581174825987786097971489371359322671980674576159821403576269825591593152247223575152016797052221051844192025901664793421891725467288519135622167773000108747222257610417452944034895907141266213662422561569784957629730977065186249949806072632804610314653053067317654473823758148619411566667719622648116133293711576399667044475659716635632839680642451048720942453797917491914890868379627860417637615688996441494062242842560909409991206308248190496230729404146214691193521884133986679204356753589320430081872283323233352626644851447805219876719127926082226631445279145882104532974157820673735700768993146348630032748228392027664744778885752140716822177958126609411598419182636811681297215791694312517901334913840796990820207768867312842268637041692627727807700989963115772304300435136290441997693362373390748314005945490275834562411336720031405880204047756854472995147893125783592566001436595318023404126426787762262124891303577825399029647587414455262512312596575967406808536320025455399719637879212466227123679511359977684104364023093652650830212992380226426001855561647319027150144724539105942663490441042871821938736431847808094478026458311372394576312575157127597515420450521915661330407148422463881736667436487197945759314557414729996692195657706991743698533651327003765719514051815960202825415197268587526589984799129062813409337660257646434354787723187200667291881849280736516011688533279994466482598270242019647024691150726846404531265860603126866737843500824934425395272171617046762470220641856803043068758162663490109434289817494680889871977624329556489561989498731466564720090271517831809117533154012905539031124504736999773856982352059563029495422178618561643710946795650726678125611110764460080268935251498297208278281318313041030751122379654416221684110287135698969790203085288085929334953760976561023574005756427514735075583815788835822901628298842231297449874897957132154170139801635610087324331060874561742161641356481901401925862376607818362591523061633606052662870710621875591857533445574869844631796162409063666002401529585268796544182573939717688397172824405778285416238402202500367243687217737549104673232397409693562164302749693673144397710567575093517772068118053122736011827692332489453880957477641532061318074175898652522923668916999015087880307966351990658513379382640522223524726601686230920524344834427759652328371765378191684398041974846196465407798549831208866587243194372153915639533459775773636552274801428734014845949999040562180461453676989029680767029492587962308796998417244665329093717969254597280500732259246182795232448960508437972042788354705426722684319483028174334262130030629393027024203506066282221886124771184041832641653577039658439374717409763057000999610166332941161593885165179314839432057751265665489474934307797326943671260204882775412479335657591909975953152073404974393696704794624502027060872199010865999097827324727476905235732661124314823698083964711418530507182021997445188629355287447379430420180724820395393981199245449371394766352510337572850104913015863166088440533518835950535014563704096466103140859369692863889017493461920654930710607828136573958571687759529987121940642326206822282129859839008743991742473575198549543261342224305486323783481343998264659260348382393073503969000421767440725140170013503952712742718078196749082450895717133369507402787388986152358245307614475930166324429130704369937350238646386693771168738807603047751993740637829831965217550368918671673103802433966762240644496824349668151529503091188526642375820622194871168515770852638982672351913259714945994223268833956472769409965007107551778094794368951039271468449543345713981631571560833782854758270748484670281584479720146681969093159617576861577210456922693468879523619532356653692775390503362676170404045909432816195918428618954886274008676864596722829310768192541964131612193549860938890288718940410260086160143608614340251391550106707673982463662171684197901596641432090953585071694214273526675274670413008887855389143730916918548803845992506952891568829017060098419920006244653211613722059713525257143595321533902257560699970473147970512540490037406051238870764668487925569939425703188626845212511527942352646980928130083844880820729846483088103547489453283896775973786511141289063677897807376953030792503818362639625955733821802818667049880932506316548550062082210796106608798008220715793921976647827545844183016823759633165732559114747695453346076085670292610047768541973495596190578711777245258649681214834814420041133562110110852596271263980701430276062480748003450379492515197993546593175658480212525113838896451357412769583920769091761346947539762160775721675844177125279856178929638619571145998815774171160817165263317207573671020828015586664317172566816590952389660554438692803027838409673787437901737426002289282652182724974037037432577370132135059056716878606421507842247670812541135439234012756318853621404425628026583546981880188515444545486040724634020768622713073491765473241736671836971277078721576092686513650938773914606508706417992699980413280184392272995904992337112523911590912366273193914299300471207289249333714759247929366896755948911851039093787500000727939252899173031444017698864532870046383233552864791929644072354995183313273150090212595541935301434202122596013285953190321898714210280955765305929613521951592443739322696087640424947161141542571028723484772845417712427140092585820324908543981613342909471615966469393257571712312542079956968765113580829653347169158210188734299527321631311371389706805678071925747775337799421335816211194016558076278425693407130254587264519580280624397008150987848843299942342964338210600833552169622295510205758901282114684568830739107493120673168823655798401028879708587208164903017937671800510219805630501089265632024225695077515695324733669456356857204393837547319405945917147941385055937690200628983409289245003041123607168215153877279852316064058073720658518505506259184221300814881347596623445142975296621321531949079264638997809953306707781939569026284726210223798881060534277149723497878867947616864620818643366581067660948179570086276831047132657773810790354556461331478706289608002704075842781737741087478560364953600394969176353788559526364522203756723652592106753014484530633275521662754920099808913107483297155332892576829599993001643010614123984502537972293982556310829844687877922727247111905414209153177143668169796059138958905099753947080610971394818305387692406654499656598942201594487707146765213119826394293563686031229390461147153319467986840507856544017551430432398996446844291858176138668216526016880419893189949737285264089591554149300032058936112704507927527680604295050612822675979098803336635181191853539275706609763681702982508052835458697031113401250483813725845555597927813071841008379797107662643256055520047190310151488830020766957185010228737658522720624870131825385910709427218137707087474406030217197907151801073853921691993131318042558950739590165953038649027308973408354677278357723460704495839199774814115915815426711092397035342808427699695658914315244011787803223159411310025467779554804647485627101414566517768639665247297694440441382004872674890783891126441328811494462390237313763430819470035321189435240208741659539329452975849768061475175538227396463992016893974921600656544158710046067396843529413206963468093981481432208122059858209337316279845714015475215101856796198040532732728588855541215102271222124785680719877933253344738056032965814669877978631014020301932878580931187171748520032604175142529496000514270264728171397567829372545660265206947135659173106328991463610816946616401236314270683637156861883409587965912137416863291949209175014470035090333103666795575532321468908346168284607533691792364090304105167890720250373031098844447333775967587822227363270314493498002078764970837248694411192209478311491081137872625419056820465022586259543444802118993444042545241757789749171469098643241979309812369711795010320477170770938999340280182594417962577340071001199406343943936950758373737825585751022320493934095324887433255902409953832830855785003690764877729970845056953580195260166474915744933934470617259061051832247789292428229819174071001652375790857108755005706851497538456837616865914743567388430690392463665970482757278818807027694558692606222969467804006908010168369177970293462737965897248545212674032908166326998898022993261555488276845447035083759544224222404701098480497177197826156011870968034972697616818026200836677724082287859209643071711020122241780374667960288721232331072682899579943297146537537957756255527250090309252626091188074718873989109398646160985180289921757713493359817733040772196274311805329052302407492579816797986538041684782483167941695568334850457350261929831755539502476934261282063584342151216034307455608771435916574317912157216483694705929159091067317960577805079510266444978425475367139183556751315576533143418874265791657589462997388994507149318591018257759683263725204089135644531350869705252707408601921103056119470556844079028776671926532310066572076521218364267937188961472098543388317833387415054387496722536664279894326823305815715735640258012583541465564971852447458820516791652209744115928771155813460312915233568120834243193611994859388923334444472714695499900818258468039385077277439620826198368033975692179073870548153410692117740200324201593086003326327639127321896367972026420917964976304836838879365715513952839818695364738312158722435766841490756843030747665557818620417649359765955528524376898438612309322374376964688897579812080491539139708302658426911858888430160184685505985505401052124761689376847283377785040064314528399056817325160485599037487538333092331009823357446128638083198592680155508380642407367675210084472927521877554276197798858928235225037558872296795300182391731312709152276875721355475753441871606211779387671923925706521235684777375494168492452666152148081669102355585465270995853761071618839968438794762766102194379272159551026994658828622948086968435430953532630651810990986488717296531971756629020087883072758743651196047068046790392636761050200125583941039312086887345722629696903156938748969801006522174442391532824010023198188446639768575421953805259798519359438329339349413049260598655012413201823222971949493944740067533329744306625284698058421425127459952500934164351039757045266149988554804247259515243017985023991337669975272608158932858945686624029064373165653682218390999704742360726751893165275327139184999976002483450819035254369939502308307066321185615963652339464618075014770446005777815817352834240404968791514911107233525830905056771487481020348511635564186695657728647602978399841071665488050975046842527523783858440662433186868695944582422466268192773524682882292275175620378995722893173058160560250220962677197416825110267301708372567695778569339091625571345634493424810148695844079939125009264423863056110161542253815519125926684198013785804924692622286799577956355291451306545642287002335900419254848584766743664762301141610430732480881645277563012696293781429758452580151563704679910061807643503420203725467382684231921546718377035348729798929128422754755135106312801184366790665970744325254765241923598984234409789937174968803525344930463093999139645657326809476761269747817394947334633216964221931485648564844087152672696358030488918571213135114769634483516584307475483040721072378198207723133613969202707206527248280545314335390243154137652064435301978022041060896154082639729419232514204972060829467595211426319981338041506985136869397182740551174451012786321197747566079592035715052898132644907473791299526552480635302582683779863937649724521794416582898563258736633992997785662259040937592887524616771575260699743396332097142625152911395505154633331785070137214262810004561444609421996798231656485859939850032382407794923280745657618023572820806814165032726146386885345893105331133969604146113710452098213972189006445422531145767988278959592636348817835023890388971082049624285861992180958506470030525642339915330118196674529952164147706068629328295212540340210469985093361255871353142381947378128932679174564569219239600798791353174186589372933550359672033461715069885996521109525781434516441373011656828587968308761632715322008245294798570470460840500241555374468313848491134292098608861093089078758999861889011243818301779401463218756578074672287380408216896781691594803704938527591511416191990683033473019456825502277739435229771299854607299472336124372103652880421959795003021161084767280360343873656094564538476506929072090619131401004248177768709035036559260255112624268157485590343587885917793967049781967127643479347286525416310284508261391797828143868805212164991187790104453834788885606413834222220052907411619376060027287048377017972987417195887577593028216714350566658604278333087552436282112791893620064180897664655658365060158499934265565033108393239139739636613141786820789892812651823210735244216046247034105259606074224395380122153661436180340299473746517180966300975485020943691217549507355403310882662041587797982896130367914851859448243654226172558889724093544349448433314202885003179302106723837805336782044453042570207560991510387124043148813409107296719989360758909966943719958834135457268237651119224269690951191305107842945865534357261114072690920830752120488933758787922692476807126516778514165516116919694364414373625340187710408151198108245211361908263497444343571474545668090026089073029165902783178701640348328917937981005675712294268239313450140259528979130297541330111776181077270404147991254159420963378585227742492946863511677639885802271427619971699868364813830134831962745388805554844386631279629149206377285152524946191553865687956918776419612646445796568267362040618319947036023401884505358344220113890311978736471841708838727036443763842928169929295288964837875863188239925278570728762255606410196384290998202655964105130485340206238201850260976095148219706363591998162428021515355778121916119139846928946287688830703216919636821284052745130398050945976728886005515228444769986740925233401463875898847972542815445207682312367062970527590815716091119937704187638774396426767422808681930624910615540446437879405548704559753532080210388871710971383942099855905253331048976815011213076251078876601642785668317479833212344886251715696794409792300817219207783534693254774858864876575550682363029530417791473063076873045276371326878972747349335935347375764677895444697449299619987587848153683709046346137841296903576465008450084279984473958588557996781693377747090985293698167783436794012728322757496516422159402851876501356305753233932207963636810078122568861092726054116234594355382157367292123926909215242922859098758971876689325206698933502406068837468779774996983678794887285354873795131222192780519151958758300607191788058129960723241858420272620349251761048933782790275346930012578713254217153386032593888212403269396838361876531407382046788894652654340465481748241643716054748737473686103990674203742256271899928804724651262053347285727878026692290130774847112799452238502922780260515540703389912810891879558332343457738599468861083167379617937748482260532335648859270477121807646685601272999262948557019154833751598056561064955014070362321381426461792362042601967952457844700677411550296845224917120169337488365378057141021437956355922323070288340885717985464902233785650726331117045049261273787288726347069874475205135536172201669576195157697044274115074673371819159344626137952567544545814208278500042175216369646192887132773218145505236690154468136481636583852891692815882275815771116019566044888735410336876085218879733473300819265894186669556493466049215495747186880191919292744574480460299928171982105218852948899539306588989111031325191761061852972268047747161449571517571505445671927929868783881120825955070443019755393554552542187671610959943924421205338301800708126533420200558742164805252197879443098665266590045110504280157405678691271543216416621425171418602732682785654592184013807337661841814310826891165980380910723065837197585959703864507172624509412090593499258900581554924239088340091986541317609378234744183722500543008357027522007985636469555123061525655519685980195697788652146256558625943996893763480246721321137569141434169645831614274368792719841165342498340240900396115156255644905833964663053389487076941768129718204148670401681964615590502337842876298410147094538059813615201781835549979031194971406023787719486316017622383770430442783672004163343315388865218537015550738905920167530061842476965024876194014791785254673904922732773945637675778775970724795667737555766985940458746706106741998613019723999016358357497422825553102680603642599265914215719133444159381810833162961111006696305968502206464445080409961452633045309256999381856675473194365874503626693113550516239107438525372683583986760666212350289079541619487534145491755861582349339527040931537140983012263417636726289806044724683617620951801422795755433026361353412238835740056311567093703043041012371198447439078924496687878943625674670174347947039603064713393455404561325679991897822326298142275377439226658198062849536860881933865658980173950735778127629540847761182145452032515206203183869179045691529453921278722794922983605035507756974121998975352415846696674727912027216128936932256581433883277410348932395120569207276102347496780301656141739035282264782633083306749435061226153289039529927544891200861583519732307042389604342147491951524320461182988741015837128472308401497645508038903054161644753794044434656502126231067476607126663074515873842638548834911847894220531182865101517894970980222559658232972848510195200836167524995883004873831176493052213121437794806826215134031423895876512159779925214875282820511079716528377754919503819719168389630329528741066399570268043471711842702678007275940089764489807014072563393663973329174923062782027654853335574829482679948964277724409666692406335633018929269637611945770000858119265068122535200455956566933017678691539861389708025408649484044134037128576176081840884436040827832553019877613877915363582565964760041602992657953045955565351733398473482929824057438518473776693909651445716671379764548798765277407439535586324586924143588228495979933796982836578996865535828885199758878501671891905907953564062597373395553115039650000215676638197799689104256063511111086140796388560058566459770569645040543890134789381026657324804416309464416211057339862576564772770724462382542169515372864802652397618078518986493103903866373901826981039293510233846536278205086009878002603913670379311600258347313967715771657587612658339152560973665921186084783353859494011971825627257511099354391637884644614464870196224030861264492708700562928713152557421344437923340571542207030963708656779544151819883556058261328240498937893049954141753211105113260202927535443391618212424542372779604725827173332483157447510448134629143233030534332866478927458562887171292577952149007255333387233777846760112768222615882082453722058032196821914331970088867036246061685120152086839313736240578787833676935698055948652267272967384735589411623176813571379010603507473874430840247890416046437366729171451545771614623310662660620504412808377842509928530660611835308061531914140942061483004969807252361767211936764646942985705147927784797204323660569061963883911093875710211395843572022899404332143209801781973992238809606565409549913251946174242344417078344373119165991972628485769447818135001177204892662301488010710765008541341045846478818813716263234100161934890694178273385855570093706589660188621145488049781364745506047450523955034638763184298831127102022227482381719118319404709280212285157104922870961283243403378200856539517877037996690433637027218151494129742089711168624734091916292244520035870361205907671234156359011468231304797128075299515053561194044285562727233121648278812339896317768976074889713847742456535559643058701059606529080008348330878150524854858252843401988606967817308307425033685804436049148053867132164061192673747962170687059018823570982427728718554757716055000255741093908098140168124681490050480093850102948436706517417196922724494509341385649109136952509248628980335836451756985074917119086591285476089284984232337835904100608345745375667198746866714528391774698148832763957480731883823851071906089466883921387691804139230673135271713154567961478429017184984243343904487344032622357366656740114277589922433565848626161315625184882844133349270221544391758793264036715463894010018675395773341110710610097501816551722566801760410192339384513629008785375004501749460003780421616025283374342710953312807484190421508930534603006477997678292862236976062117650449266555395105062952132086924745750304641479285124948549083391668455909941041301304304626427271968234975658777947880601610618687751654578049905382399864931252948965480947695354714206244258661146757977420190010760239106099246942875320416313240958893359181185624058014878974740573666969523586585422128339983689542972078976473851016473238605395032460627151425081007323220243379620725068462431825268391851455027120759115038876241919303175098244980432402549772258520840361993496249338877867949724091674324375421036938243616114700590602775478319213702866180324793912621140661248554793924032910310904797425628578704198832854942405642673766432527620208891076580615135782931137166794792985388952185427743772581326503485395270573542589712093412602116073400076844404242982355369571432300577890187004240095012915980631395727616774284243542680312272341855726941877855693039013446697549866326739214562477333832278670252616601786223042113495174276819552870441258009356113311867966885108447821471971772692263693510689459466815007055537028724399105179419748015144428887954339654424377010432913712958189416094471573293913147617549909033296859497323290268282896956153378197169441236835023197269952372495800269212395221238987711126698033222366586785354366335601363406919312477376354469319088703506661812555492968876795942933925149944890009066349273176354646302692206402028883472918611645342577448148419652356042772011234147781741992819430018101155183588308677190450136194072443835472223910706600632895148224117100479056089727923473105949421103009815076881261548390527355373231244476691405685774050199156963654313145713878614197680907974441644408523692837237278229325154242039332034617818806198545619004060685232635104905397043811546817142718961577351071230263977201856825894085465638072821050717291381478103407293152437639225084836041273776534552539332468133661909604014307057462792157330661792605807918242885842463128768353472562997807423947967778349676095437592577690909727161814764010909896639620641937675459257895246862148586975397064492641073925322806275828537421272992710560047538062001119868468000100315473963373061334143509929159951576996316153183603809478005371779383024163251718211430530246163386581579413958483127768035586559864602368407717714587727751796887184446090759195528786881953637519863883546222446994948766863928491636634058522762630792508197009041839158834638105652580271454190876071018641043741082423121872050456124305285137479005536827984444050040370979287972794735297062145921445743448441626366334881658353837591176570277820520048320425114044702934110115133490649601952921156348786182173005171738274556864070670881497937270069545982411708374702957338403272383778608329701412625013091699188781841105036042091118550820026016022422416134538901554292260997716855877734691708623199682869435825792410986926684877384554360864095182096224407733834084269188938636497080553632075029278790278587548622637507237762788394443671234179123276407442873233844567218536366274266220434710047124576249715225073521072982814520256024274216942753732299003198333184153470230292029470871943769603442069175745234995339737596719702903586450522679483202950210900756512637850775691202612035775983981803569880526392676883413555207840907280835707313972092131667529891683235134070159159561764246410845038463300631698535055342300369282220384925512699504961786318607276521867118385211141070409998094080625524523303408892614948927928428371384331314378817573020446583657382997829122121289360452624303247650588296884386059247274274017093562689392347089590885509105755866232437363262488027486703627126150896260578181572580929612142635742835950129704384021305367394192446970265813235420267206747082409007943433124236898438979561581948688298471651545004078511407464742293164983257022998178984986236359590396515115154350287993115151402713887206127913162164066337587181229400844989181766200622235669249183023460654017021794085350240530017102934106651669301239080471210405872686763992665383731436550698827112176641935858048164688859292390783999675673384638738639660474779919925636825272142370685417785516735836155663634517554265530174876887245074439084268729729538753210996767390920690865176837855451131177648969028532580353620467403620123084485786874552589827286813956639565873659287398113196395704965987275041022498124621167290913618457901233595571326011487121641229641164706207014209362991785786021585632947802254231972949431966052107827645378789233041341219801124300112816165429243905128358158080970389893647394254389297629585738981086100203112016981370398595131237415572978381594006438390967815392323975947774832841325318826235467161244871835429676916990645456320315730814811301819118615762385596721675168788175519132483241382947065317067794667230798208755272993917644120088726381216000982065444197591944193593390798682455339077224004113448873750296782992562922200797572701067959840862622967890107125573856508283834479471169200795742042731112585297583054469732829892308199066417459476244098721418111175484272312893366813958435098144087532132968681553408475181062839745671050092005308911638820971830835917540010624634088101764184912398081006511763956305871793988194711617885206497161576170517869244911389639329418595980653450728214883690913094890303375198030297459402051326250266737050445084167765520037066253710587054658803425500739269506097689197883164318740007262286769667671709045937037922338839256366495334174344345456735798548266059630605874598676704377611338714925485356251166927842215067655732815760359193096903689329392496760088646318416162507203241956759315756323792814170848246423256184858346248184680319948544010324812187118159819245126749290971499463696421353079378435351792178509817497882888763274261442839512797458938221345874683050723857825352557546683086858819780004160467049059110737946786543226944680423623748121349973697394887598903202393900237937808480114184449894756782351766205919824955243317606876791513199499736552439605427100453576695748508701827284599476117311388186739973044778874931357516134517582052678383024577862543273319405935874681991591522505071172409787983492501160723367604786354203481522949034526088728937011626060807848896365548588373971799973586689326225861428081205507890060377003164130030765306943131848095040950560604082780279333610054617803656806434425103588443095518045142480761262335116721036315343715901865971760423958787499174966082507240496941628347540326188142810149045548583103153867900283689305721324007777128890928307325336483512286999316563586267909484737916299746095912823796795237996857632485254061495710042551908825074462060278649189187451211647520329157349529794501445561810141639801727936633022654327888162686552150060583899014796128541195253875238127727254847965413461719527716536172515587413791076626553754750496356003530677129265111424974009828204673979600394144500682264268965736071679636652088776475689327311039019323639409240590381858270925358386978574114393888880103972275079462152076552085323008414742830356544778663057199826965769411436877786247055307656798572386090141780165301738111411983646486935506439481257290092167380728930299067111079193199787435122502072151309297130384620020837701343917608146178231599881879624701734026421675803046060321569224055374062385188696208777416159475144823028584369959152481408158018997586860842982680493107859535934414234380179673614675423369519421757604881348054036213371447119888616848965697010613864090898020466272691582977348890067906503185756164432760568209426249687238077371285872620893574579438538048261841645541576228590530641132164323671204231821907594425613128573729938281792254978782527845431646887073543375056010795261464785674578295232537307602864346330244035483166983971590603019855606803752606052456666835661335818212221723171871813272343910746673534944504331981516952161676154460169595734876579862624930453477918445854085030905306322745147294966743096492213144888788372367850638446610300770479327538694208993019907348742283042239007778787088082586447926882833874375563903144025332830971205756558417045253090948812780475131558703250391131664854605055849515254180520688817629712287824685230452458225015120483180804386543502992109079834201491908713357018242907247882533011157564135207720006742341099294978765171520304264324228982897234544255882608600806851875300966892323375776299818972209477505071990272977884142730593157009334044161988177356913775736869404869278826201154577342283539932875849493868769720224029249878335113239059230643544338553276284652975447626307687990587588002829809616864938244912986602311164547476438789049529420134747714636849820614507305859395412458004224310540873932913470913712213795081830086555926802336975505130777160225565990354370452590853993970507712554921079093447979265516817052021433719891086099225938137924329620654524538475651298737628169976143336908800927319571270437254383551442224931851124487078074397493929021866210689069304225150657603807458144275070116080390300507243800317799134669463365412482188525353569080959425398396365550996439166818840040360087947438097542705077556876231804328953741574968056702512319965136265674584214177096457736674266668485283123908029244396324972537530149852332684841411437017559551346952790791507139205183623172073111602503653866200651199838844630747052478335087016983919923804546122890578774759920404371909767756179187094472728683654593987254042118237586878586837401784523018803756441118571814907017427941773586960756587031065047391232903452303763868094375436953278286658032470996385154411039236421016049954182507819513570306025406487321512480185235809781329835600196156605546504390949422738161169697171554410440257854587331106970772063134358059700943901649015449795970108495472937863122973998718222961699361806784517425231494438931908933704540494051307484095084789088432589333002367658762666165213617792124276813602371930803448600463914955552490599860458607360178157080755840223707704065087731629707215812777366185289116510908384590088173036109718162742611136075377503709462044833824720899753289571740459732530650527749613102944772686578178267215471255795415258629876721007779111710364580192082912814296668892335189910170228422825560586029368107468881092344622065408720437126898221592725902022661255734865016291193929554813417685182567854428626662331957487361964087655379922921751766787746054493590087159249596723402189256592118103457405065468857148615743794600499904677790766498263949385446765271454924284126006073769085125291735973017376317430171946309594199627070038734600797434378077201609749574108891744015458953514902374055035915539340432534541921113691095499765257557527948669468680862840585387930252181944273356343388609487193986813588803911478454545361194579889582451296663907360472507492026139009157882732528454263281359661638509034369674199001136745346826937443199967760532812581100962512890344049913110772029950539886579126511154359083832625872489351202219357526043258602355035613683960815549457258927498201255815578681814602891234333976115999684768901373260895810277917852168881368275227919639554479184319363888314884344200410139027510499592021681432619474715482414161914503495524694639488639900301518706724056352498946811572596903186249957331030433264148083339092936892261031001527186256233226001186976006938037834252455294948176691389253282008853660215062816092803221670416384763237297739962668017836865840487774743460008115609357064695120549036168236097495936694485192331493949222265941456941261977461379268238985629210765685638879411518293394441572058542248118524797543618073457187089065312631968498455530429531238583971253484981390670965969555164565395685670263153173340183266732051307442388554888481900877783444470967906971291567741583818815261740122583107494624535122199522426575722718204069615879995000053673055738911535004939010762148330504570141952184629849463615779689079132611025497443675318762272040470916765724460387257095827998078897703678848413624485017455760358474796764366270588413287238140101510490768493501076585631025957995061081816318269853197313936499962051470523168325184407901117991549104993540504008915583737627434945921752825643410717434598608846462456037896668467448980117991755678029384131051015303868131809556046784236551766436000190756248641554755657919204083502335452296437013001344373122697140430064733016121393250865943748237701441090790449769065672186168752600104636685036554324168545221611639155482961959159421414849904750957267205820925146741496197353142914318067971316344034314076480554372277057344695417239292555832979143946186523969579117889803670710805800923929086958431071261270703440301684728132758100469901329410596610729692068191745482548332118455634957930591321784788898654359634474460097632429533684355895594842756064806073233065778433692341223287378038326035680512206935920690134632954431276806391250103384255059618532709390236567114480842769163392204480564867799366708029675752715751041090002037331326276598812505877842845171367470910274217490188996522867412358031504125745376605077487920353005726780790614354815661079116251576948769353889502155843842143301309639979060217893582252461256403384148131562683002161271589302992212955252403490146511272602249394716461666374571287720142784582456062375971720412008568730228818727951760599214318209087326472202756909577721751354294632798467761226365427878900581473210694596650085306226973832212890774892402628400920485823544445552007912606023810435810968178155012456525758321269498227149194975782404995659239919112153105555932013861585424937379398421556965265022305911145340938721129462123429039293522350965802652406749178466479695641529261917152604673605957118112377197073715571431562433279577295906105434923108395629989422856426050669812846643955392090156128196159227955301656680325618921507289599974891820958033038410563903768332126922744205134403952861334501749320883739841812549501788933606687121255510843998083727633513795616969912034002714486712278413803994876509151992591690207682807819312794653054674282977828511465729603793267714660109209029235097694543802227331157017374679054122308170590687810829764394079454652831739414862504621130880853916113707650002651397629951963815107103610377058826003011486325699051061225400917483706151539516739988830548450963445146830657680465190292006791166211915447482801644677451299993434515384902627312148883215038720256419586931128077117761375959458840542588259260838171843625198991984798882981173347529713827227337729448445699392022986405703461237407577439869431098205165599198935431426817463654727582853973377229044089059727915333094824646150899230448873481341193310069580216801224384682487056325711566816013244383787950867930375894912963573759438566742093819293976507979198811939273095234918594546448640482718094769999994458877563241125258699454988159658354291840462618708135697222808826781619443398379640497452853736308990544238361199625171179264847793282444819640352397075145679322650783137561070466965829985692795700464699359835322189352557102258938824035756345476116828184133609164605811101843143419009634129659118054341904101997038319436981024578768976846486021292612456755718703710919916294735129386764918237944547401590655521477021265672962953453117607413897166427617313957099720293826477837930523435539790866022273284873435664908677960394579263847271884989887192963556380016150373870310343093804637007101110771362572163678928152074646554679020706489831163079687737655854264876229062144912951430726849518231343242925554645186147312494406507421596353205577951357081934547403486197694713703786581813095423568743085201927411402362078325503720626775642422764455156009183906881668218229376105973829765057906919189239860241040638300276764325079749334638174824579024557437578630071048121276792955910587291222776048865460896034572606959527484949371779035483792443652206582183337469082524753658896449455158320800435932874579616495352881273455715210856153500077893080691120122493416584128764918170766717427227316654343392996150146190550484497552582752024784256267335109171932425759786508173887757503451405831432615745424365953635236996000738274416685214938816276534053344817132135297467390005506174877362331959715541066459860625482146927907834066877204048800874803274252456017447221435339136910632768587641923548489930646420196762497813834967371591714990407118642674325478324788947344694041146948251884025472818945643180347990663114091355642369920546913692230949423876831617472107832105962974672229456090191652028324976650389990656482936539225237518871445504792931624018969907042972766794894111551790650863190656990523900908034515144205683231001324329583598394123514341083384106620823101505614700393513177026738849462963350031534747043953563017900522848757891831183668554087861584386800895340267244623432183267185947418641031740394105348343351105585582791537833882581264413175314317985913436978328921301058486488118078913378025446463873289871394407239017436149858997611434106608628923894431500205741394932842458722179658964924696790100729389051491923336539765075777142830590944275114447127399514935444696691084709624422098297112431513833383739127191311152334568067826371544227777897711637849147141220619859212586953385603177215942175287926550322270448566759435673732186933361897289570082739344071101289938374867085566600569019857667031773791198117911548360151594175882573297910201525851478344498111762778730737852206851018233592160227150286997922767240181578466516389609056813218259300905821418819811225255557165237237006236724958879374638850631562130806813285151368995132239364028629628551161179604163104109397666860875886504480530514902942997769253366415841820778821639826296188096660013880376746199357109441891466881144558757932374988098854047722138417227473655418649123847527816648514694487255146351466297456895476877331558449594126376465217852248133376572829905226154658674388546912710329598362846058382195835665234013304509099109580356446837022286761536290003793889997863489515449345071385036266085137195634288920507509008727699451463266449540264077123810626373794456501344379079746404070680685867798436110952843909549266708804016363230155994186550500196354232438233984990994566805948416768787240867665652731407815067434880532075040206681229436839852228453271793419081362583244823291806285654512726561412548980170662288453830525573758307254032557273839355744329759731898588109010544324835089277987017273935784288779991575576914807120929616837675080591460888004503050278736292491355717780981155683205682984300430765929157600588203784127208269823810073534606339612361740016461496691341568862869979860711502107045097353582301745906276937513711217363060336094181198915368692701313563293448709561461832000142831183671507083974772222445641928186123704626431882772025091656916826047931211036123718007834109725674385443597610006796821279031022411079233671778379852489504404524103112159287531233210368385857535766940421495365478076074499269407792414397579024016096169090430038542242694803343313087299523077737439347693911617809072193233602747998835571598390711408761098896128251500635273673058582966872662944767692838576041739922104637040354968054034579137128958582884191196991866113099689540440141480198335317501126409186447306408506315746979512259946082053345078981179679569565283812787520861692008792695038458338202235904416784955090870987979756315519156027004545251393602439901838572887637758991819151694055385677083621818045673243590757559924122690342461573535563762375791399417152111350794838696717154292752506343639108759394833835218054329463348125946846992892673820843618908306861730299946185537111374076548643650540643550625532591984066523378838807071316703132151364871394901302531943729890808814003553403984681252949011266969387571661132871467009419304551104766344731862263308271745423133940689859487335098899453755884796730619980646902197315880428130527092791912841247484973611752774442178655774953380712029453231494397702124899389075085626693073396114580676123648308442101964455074318714215319408819392482770575225704046624578734600663355757089906642339720987619537886240459347757818440991114332167985754145893039313111400852010397101367782653964041492880065149532724108181841511161606519868212192251746574150159332665765736629189278573304737054704879229740647450308387496284398792144843948520479841326796329649316734123780820718476142680735978425057590823987804346618936404073480427234890317178716754942051629961382641174525693428838601035821348379931475832189609282783706440029288502354383338537416361780907132913998665093694780361650727476144658500185318184650192455007965880741888788416940760633035103893875763592139869906455530768721873817559775189255452506220420135989319072503341799620152382928941122160231810325520744500718382377200649016471443601803510739423021889440440696330392124160906372526067819938943875154942561689473742301713386452642572588265302546762269728347513433203990459557015616985009743622542506200423824262643605216187361081985483002382400951964670471078740553506620879432844392696510933368913921175945758295173658386089046661246072111289864818948532970560248685588113843204581293027315584307404973936126515080415994847963654370010920795944410853483992235887035724671149052810510950292347154035407933674591558851833627229344777907030927090937678031221985861894572532794974236867416926678371149466389115896852464568933673815621842646580673503945637843724666766564258386704401255046392723025964412452200489519093252343990778999986549644842374991220667392295770167557372058752376632302207267789163545283757353902156077603731278213984088831066666228889363834498527030448533981465475543468620507977733217167589433312166552207603719891463138305848121347791600563340857326259620025365660720956806320858122886875513868100963495486652171017343183034069680577619389876867296570864109110898825293805552428440730476494540104763342732781733777950516597894559889416023584961866729886689629466209435075009472114958936060237202765034373193088448670136820704145206808333592916956351987066683309051086973964101334130241570058768146218062989378703775934931450678895337695766541583195808336518864934732747218531229562039074813855716241789613942673143698718387378226076940322697810089772693999954811492791568007620692368359617432104453363504054438307860162622280690737820917430899200971824353912357773753751996351219425410954817731569604729948572129059127308728930471616357730282519168094604929957261505550565652762594429292516118563780681665355785636946482303672286121820534238974248643855537879719413135806633605073529411333757578838043646698716868144110219713308550993058952655648511755434275560833438559669226089226427605020796632997511684383270845614974752209959556231668367619011901984605862873620145593225758460419185610076029433017453427323774030884198649641182016042015274940373966700610468573104182462470341073403817301360463502177739717076733546103635135822744680210143596833923981648769457855942351977296479372073165177844256946999870288358861766880795268478917947663458412960303690048404955284977965836138513424764196539309997095055577948230716869521653708857082215443890937988807559404552293639006090398537904299053895098136619249580081848868466809921736844608267577717196768222324071425739528126713085949040555928408501818842281424943256939135993611464395229816672431602252583980314560212180638881868128992378265799215988607537927983609123577690676839016107263905374211616589083302585717508657311482357736679170762685152305580879378368161150726490943448170788675525966396261750527188650159134033313272105588846656243752016255310902705542541461302719938000304959094640839809386507799602820225417806258023372823037107621754727958597778442566958155363575271764546162939316553942578472994090927311186823140346806536822498150753747246974168646597332087694602744463359363632603072853536162347006571854798632582126384079326245191944527249988309565209970580416535695924065220585798886086337348982905574622751684721034891329468692561230579580217676068187264569396297195384725711135716165618027695984309651111082659341537040347999808764373176730791393252386410780978121156661159186887368440953042926306913152410337714534691191315582727925857984273142309441393217668353872421897053106805360798586155711448867008683017389636655495095899104436151791421848499945699412329216855009354400003885050505942377406697504439632032098057632705494536702359467354219248301529862319372790865745644061157379167172425257402542946265462581827458272748269786443078084053235912388119224762755505199389569977889754513226794075968393577710678276538661657183390029029119058961180558501041611677268429386988692804559731934063356161326569083199960496986157986113882130158215020022717481301153399233111847243612719380649831474471443278698319784898195983076798857762145383762682135382109703069688971450079486829581365352025529895456720802588077845223472444690738016953414209548711791775300934458361894495913015883822685924694826563857009100261622080905918482821315621120353380939840745317077898850168253693957320238307940891740989971092731118852056587464577397592757816015628152627766158967088828920631379639676032044294312929123950667759085992587786345382111149896623438610152217788321181392966383421599829539578371689537040144383325852437969062660848501070653370999679526031605260314844571073945860553001890175516412915904183582506370199958886215436639334868251280808173693354806024535656680142196844237772885127015825000367038013348528872983848315498073878347650438553503213243875169375245411448208508162911744133856409378732656007346832043644015434972290810725985378795822296041301802601475744097740625534402836050415987726699034038196776959024952948499994825882162397598101182527534785610666429448604315443668460811271085088744771843234493842886443767006335565488933828724477745586845285012662643661839791427953988839324036432134704760190098961344993360105641322423903615551263038759729217442260577359953560256634491943098114451128510020018549208184480624904581139932572436450899534834756210974681068997104918165221073234802392512547154626304683203990609249493504101024931212101760428425448490839019711381360266568750708246094736374577877210576178192656081924310971311803907170003264588253339284664912324230520471431598192019380707462872723703094096130718235776745764713991701644153892364500256499287438176974671518519444652705990456038887205147287822549583509601537286432729722967578178801887172893763980638599278002521564059456769756564861582504119287681668228946364765074775864316553767915441316364924531093212562409306366402127024061622755785297085619309338965578154299909225377540791424565032231898691715208075127371459791003222975653903707650840141773064403238589339119979994623346310274332717463179431645206125461559775772662684751524576252825474539968836742076627178852269218143304484451931718775129486968046899145749573572091214988562191992574611038157416689389572816109759238515526289827693839999986032864013150745343517322676973742758050181633248808821517275018463222805236819851549952190430929242629276179636922500728240542107823332244728937719394882970301375442244221381927463484113040198727254032019128773805533794302168290013838325749342964333383911037509739279646501200942638776979562685394382871286224710400034287570079194072033151273556689558585918432404001990584316068565935692330399255029246661710565794879736415599570134907556139147264236778454206561855771440642947416910717982739979598355102601720096942947965294831167940736500090221574673176382297514359086149527318231022586684587360402857706278394470902896868932209289552253374125507823669552963969226029649135428224642779982062205496397121891720081554925329904044631272211170207446171956278820947889655443495183513427555464910064000691982048450555382220485249196980991808664093456617316414423897533746001622162946540410491761466131623881514641838108505396700092167420201997688611962007038148597547595515228090875184300460798429091605401052890468056459693438401076624372142036276471487728661006662933493617064138978884092661224567681874320317055582014555367518605159818821847606553296933213254265802856842593296548314374004497749695549059772079522904332016023042780690090263565693092643401933964255788178476274766083985514046064703249855923602034336395288776314358758219444330173341095789267270600384966517402109019290258971966744494486917091848814314889546535530010344877700688707082858135171995037215782081184613543456926030612169373215230931664013849716891304082358751888467256317209218800154686498925168841211583517760965552421770784786721835937638869717574698223625579529299720845081449758960948432244083385651130809948490141049485420070909398284909972602858524873485724921050943280701808092104750091100446073285555826630412493460165270845544411175973194064706231343557230272302392393641220226190078256928788800780757661971526651450509086143740613064511232834861782079063285952225660754450052776327506179235213802153551434892596100451378551829365385779620469440910521607624548057016538794389751220629606203099316685686326843680890901967038623813034315143720345560931317143734422719375054474969321365471734823798391371893626416211942015350374122177528057850421767288582216554225501041381145206255178653918973426179259510114669408843723878042724780297442824570840629211125527298118060243587424908813384549171739025622077466960460563870930115571106448258691986737745085333641858302512604419757129408651584336432972627377691434876628691256835367988867519946762283036845620003356139715576981785375668772309694829104682212042521052326514287375984363677808876408686519929862580373735915679281852764991267917765191795986956102055640000052649897025307906786383982704761703290187754560336161979674630277206515467104675389998240883625447716933435028503911753288898991869976867059023899218653470085539953656695014549897583624225393449040979977116859269977997498667851157722420070710352028261773874882479065319209350308174084386062831504029814092173032656534153477990953999124459756037049686490247425755268520205839251945083119735665193853719111389930373570390623660305250267271199121135571616859409868563101668283353916970726559335799653714120589423782293008754953984904805835856724834322418541043502459446416889652878225422786101851880461795627180161232922286312382742136246712201990695383377151342060296922901142021241542115988073987179704964000102963150974112495475813042908868064161503795010250292358870947807014558856492975767781334699881230414674323368165963712765805629724073075878723188276129699533713866781557345211187879459485117784378755200655906086848301520813833724788072146690251244232596373385740356184998586148414417885230348803129694478998731772738342285420088570645689016721251312391361745472460011265737632556401814589326512475933802921831298947541739101338079196687197662953417353371221462212623824691721964088088558526732050033118018109721472056206691950913148241223455248365370616746004621243337184091032621469425618492404269027625793267214719402365233899040634902005466387499476452296263348284742248698543732726257885445885789151272722329178689556032126421746002155357327235795543942587320965307005762774859301650531930541006003827603460670149735499804686151598889829847177935895876435000218266357792389507420855132932837908447368717522135079397975992262460807136608278971265453699122985419551359627410412705662045590095773942038830218588158968794521234395464625604399331659661902471203290731082468976248817323838476955708473313846979797854295875390560943950308129012324836514427682366572131686410989586503672700283267474604090073694142144325516600054972412405322667432148243917691393685961196771007316676615603616360859446058115646324613396821230618281659588331349395910469043811387732235664189927117410985165070053290657448915455414673996158769167364434540398875819751375374614900678042427907215038096357248557139938306502800899033539645625285918620272705356796460037800288373143339516702359678263376311175305675035121999520899145245965506030839424470059904645880668591239772560536270226260493717286237359777063186249460445784357584176963434914218402849775615878463545790254154519649483065208785961118483630873731982597632887378873462307301743928692321203664902726049899991393697216686690074677637274510231437933902174479052985130609211408459713148378413769557116725690403687112506222613993390290817387480904492157167874748310308514327278465508840953024606786425989824366725884855027736286229071735853609776587816079927500193544058364825301473523479772597679172902633977868342189793039968125427924082870631357448161077560073993074428171447889818684863407900405913085509381318818870501624528711613545736500397049453474371821414834165615007918886123563823834473009049447500033339789065605079270292993094635433417958937166869252201229302680448240738491485100970148936570583844662192265978515005379898432431022566838544838144993688964932108227548150147613550740430660260270888322529481839059538549153416728683791098365147587097223764458782195402678733873022955272249523810725406577202579784562366325848905557149382418002997703624557975464498363600253566254634961073863105695405762453534770618275561890341690000431074904236962466342218952143780641948259676161850760082878953191325527261212585502576248626224317565521731018570140832952078556378907786324754122542980655527675532248530413599418390803478582170193145028277894373661457205139607586657936222021304695370518639318392751993183162610610304120234722736491321366205182563198932598038003345041248968636303525899459465937422257627974722178351086103099787902159129063907267730552454655140150215402871333422618090166011440073357663329468342782361542994284346678609473665028397221073500861518037408855929029015543787295323235273017576923276309932128598081923734163322741180856412424837254548590986192813449163331398798012759311130202046004774401821606860718144884739841161852822024124209899536238541773375415176787704470885884717074528254324721859041967208899150907378127000841274260930616227582156490147640584178388893142798425904563637481565046793160370038098592739944426376961961112147826669790980775987019408660376842161482881140335505373295968771610580828349819862868858833631954322927909785661584130388689694101648173018222933414925347746989565204587899616804964843465843263354672118597403082952274316124389203531083980470306925004202770845652032742613084841500074827685955985296908494826147215314160714615441428423555847538101344229938500084873469827230238116461107111799379677680173453053510101556823971156303254023790374456582430851863361985396673940076154405711816380117536218061021944433569964620342222901922751619658045257910858372789936890281785752381908028306556374278192582185490705447892833569142413325539223314683964534967248589429485086446943448623722515761529842706485237611937331879966031545535432134033801826167874312945133611481131515338628771740263030494828267907899124446597379888896399441134051116837102349482391971492983788547370673045057998637455101902410713548776254111248136207310052587887601958962779539266090395737312666189124152316811137248973651276741201965734746025163757525289263148353914517960350450008714715743682215473512663588446100174047905538857866231561431157346331893646652580166474475216952401503382582793744606442670233149470663124087128192962001234814137934394715048935589238041088213381800378212948008112904547398346652945807314346388448815828558754304007927483955710005328795835610886882244858996924835588596441420568695116339767313823811691528710201232474681304454891286661500476678756419122391027367522126106749499908335714271041555258033624793874456120473063218856130343759312952494771523825535795930515764867886784903288979758213505774168677618001772092383414655970453614474043699641290570123466672324840536066032533166303892332310098358292751518550494593024759889342231858849961172586883818323819104499642672248384354203833798558805443228212338153555349720600800260849787293842036095980722664506342134014518734638505437644823988482254670333980565951989086271387650683721916675910134556828793606209568199680751655062343824055118986939658502982357904986344549987535981375625651114729027382898578413139045832375442462905824551724618144606272916707221540228110836019327705737126442189067953211358790699010752303519317780756590184073268570936172400140146343727950808578729765602589168812359707387016438524803575139248486545948548542598989551507009704565406307888042728659540813527185666879101834798398419402795677307808502071242453042693069828133760777160068122774848444866595430568237932552251771775610401417286058237591581061189113367047496275752087384523480364079323657259029642031125873284425185929660869592462214967115322603828841269256164554264504627141440298546074869939892046038716535422285781453308553519100783512113762955874481827992460880223678196080028217459394531084231581872515687717337052784548286975797398142607643522615501238703571209824883434965920750617249464289859601292367647302642043550484172600052229365882667094838166486717670371907597082813635907288037972220494995981252345793119715437106661117525097840504451834387565340229643983694032239862040156717891895785362937799765551913023839607564135427084351290058625914244324179378570206439890169352108950893322938006237853076421326524762619613902617820428807859139744886856084694679070101379733429351119036899920500302821183868428600330260997311706470748932701332049810597198959754760133742984884331316311716959786020752511523227371310682510886579785324710592731133420955163009591174836426984290752888630936975332830525234800203816324812834445419250702510824106271600582638569494007552419821420688311653162372052134606444270004834720322561027018156936729532410456487494381046755602714314757334972554151048022143134035345365815999766506318718462707872742034685866929101141590776174186980327306635632963939670544376332454902378507296430751373901571396032322927660734525480456116784645299319869085606921023684364664979652679498372571189830535898546635947564891865326842020588153800877031763939461650927962948501074792917462196548911000652258527223172400460927648184312828713128398274497282549894826569572645277112263082838875216426779371838394438399110980311905878992476663364037501253376850596924153409429906464715856100359210056688255458414634502198199350931306304247623209074451955389006799905582637766130185286632014658456049641394945746906079165217111157211151616376575244596270192806133388534156548245530866443996974521186900336594776852611125766098675637728132919579263982625421460378809613329051668724727302416842203168359818156670719407681792184215658682587328431197147497242200203314632190732212773702891873585917035447272265309895503060903932510953493773210608388821421110260891573535531329087494615674052226573716504861660877290653531437738772917107482647029127995586820969350952570044011929378220911381009841120933101517936659907018467852545230752138060358026043178090584760003527223189665702093697384910010391500259474946063715158089652836079053732246343094318612390220313325291145431179119549221944160834064556003277473395274187369185638131469410378262344805345521085309204162005363896996519249505564354811302118126297402646780645625525062076465635555287601975418441496387228953504298599559615362717841123560744168096600076342981055239464251458925151981782835150728943417337428271098496294500817276370903246711858905466544458165375142885071168320535902094211074830149329720378613671217302011975383996433217061070947157834260897161144177097845878918588726436356357534233386117892015267989620458291401609188027853685638291640773613994884230231340451859223374516092462993881619455771812076272462413438704909914164850031053323307437663757537091065130599473491766658209760827035803886640909236386910327795831149287969616165717067888683720106473106024864156150240444570686545831188669286058179825620643058844662688886458141875948825852783701338107073746569135636385185270688588915927825223487404062320590309618490876532576082462304154065585518418268282901760868777083899805120086059941365620434501324058822449600017560474751560527623085446582790122389519507477561159710807572329231788093510330142986372313332218287591756481989610823367718139184381913195942889601737841129341725661798005103801186697106539257176714714860982782561613710110592910679106271527014002198209130421338883168064901517193413189882149308736447172270046191893435368664571707876572620397362886006581341427480342821782849833188811883252204006002649394806866719332597751558236998092584208938326687886730372667575770297024099012185619502891120036436279552872972740673099046652710516717431439416427719155507624974011923158845734582013484377970416152039792201945976671835269000058416292080147793757753619035909872495635394043911371659920232662085862250979006958123327536269299654205208071578391202667284743445710276626514960985704088508954745713561798244980182649514325645684736154019356628296306964273979505167992276716219219979800917792500798108425762090308650294568032862367364372832990021180414970683161420576950177931988926966988652149012563357626359628829499540646525161044040366446013621909928524716249064708819488475340125230003052577341687610637662853519715638953005364075266531330707526983450939927943067880414459818109300363734699508239022393528623187492489496211980916032637526596723664232462208383361549102702339813294538735553268094831939800631849358535449167793496299226406398374926542948421950667308552281703963662575032115118229386654563948376932269938135473299761690676077312393319235977126222204960364056852411996591523253551511149545962565534281830487851808353224128698846269544104150853323164905237365425620290824615456116106797033689691096131624652373082016210139450364046008966343966900529399753466975130543208947271237783263861797275281840675703631700013424830208271602234355507223730840145191054236116030317536073714015602945800432858588701533359153332506515664429645124818713740422425468936104416482254441036959682688228165190855644093381952020544150014899110548896048396264923854441082659703703762737801698688319383328910283455045868770187335853993218080782789862799902089211696460280379056563630918923868260424714977232193084053420825150659902973096588726658138518135369684352550490784793054295017414470960644449811446182577372797413838524555960213120425981187582313383043034781819630808420536906046616228683792968157663638346237959185989233747605509254437570900633833813589676955436599735468384233474964226835709010784242767207395121065894603310795723921971037989175191606416963730050204480473181185713543299146487625635399338532978581807180618209728252305929138742780307183399904087517424872046576543456024564676985778923283033024393174991449539005605563164553516204521704442004196182154258467097420685377405057299637467130675114522591579379781937998468975084958297374606941438913915940919496634950308834923357832279999968454481230502331534576054010210701580339417389485811904464593446165741745844926794461762022070973645026195802624801658831434943826896485430881805791525743805195657408499330722142389217711327485497859252092199713763186673558715758374289578555835138309887370164161103834104826845089605669608762523415811962416630368252933329319426518538399522534494235301655422419520497278318241926692230700799141898399307189322611465782222756197653697742982291590337530538721063742451080567598017552653080059486339712549258994154996853373612614367427506145363390740817138641634972848599686332708133059807802156321828177230642063056942746313874813312393284199310931927188342645157141908443540304818110522724189558372437667918884753854318746659542155893735266332579515330534118028193797847907302360650391035948314047420715962777767046833718267336302410428774056851537817844553427179283574352708739769733115723897139191775883517842335952411538473133279528643578338204685016727311917805766946189129386429694090394862790518489968189023137687726299178799539104914326025933347887731580639410794320373594619071979184643544884141949149661665220364246277511840321333043674011455744947174203064910469633134462947750611460809982619803856499954327822188783968312880513236413964317305371088729194298533522641783038178944634514324873742719491293725289072609092005350204295624786044915348788883689113176515728040274034749593530819489437998615879216583179369539674979536789552794747747497812759885976732476945910199750755019499637593792503687389853865948161778182799250545160997745049387912392003921456478841127692875860002713917211142936896647385210673105812347862613239783949138289330716543230095575001466841983872271597785191556702854499125350570429407439271507566078160668913710524007984963590126372055829347791604026058592136345665812496002072720298919114545224355966623281971460182865061311485907340474299067945290193471542199024226419818514768478222595314044930101515483781702338588126442879345297757199500669685311832684198186619269524877666189728821206213534445125709251822983023391297607413464442402340772921810210708169409496575824132918476658155379048267239902327098052633267607269330164451224588304502154644168405308478879231129308626992527351412718529968319153518015856608986986249512564293003934720725825420221740386620813319528217378558897679574608787127454933885553459783786982255612664970330647103294155429799867378462903576737799162686388059879652363321857313007786202953625941922339935728432851047454682074315732755204826574766649574900140450071856097251004052763875414824080315936543981876639853320387341443073341277388642088857159082650940945642771118117635434001732828809550475756879690360036932544158814064766000918266288598440597435660820453971284308578408938164556189726753522525279536413748163691110451985283118955495718173377351969538982035388051380562153593321092677455635347765408324777732738036928901469603449729871304932969354451753331021068131873697915085707656984408182614365410650461127989058661661214589522558338757595682355455468507609851855671411033083641969788516842519912515697422781281693405920052897139452329959311476602528720641171147073982157411792750390143228474413374249340281445253138747741812338827713044767415687186131510145738257874935556649194828494637796590970476052696894255335839123757519733438196916099677545075634620150038089538350206123844002437518967747999882869900632395422143026452317763861314185451681138822303200479216860307802175411537588844812066848757961614208015855092325084223382472070007690784042106666170135898803463119470710990946019092539797525084275769299634614930126172735484422739691455379606387036412858219090600610350755574766727606550713129011741291310682992997310526408629035409811116093426944244528918454402592816723321315403215425731340870386519595152610916457428943619083695606319256719810996349454150315866192768340954530469454174791129649030086194845434929635288719333768212713289013293297464317576971328360681545058286573122735352492825079075299207917760089240217978336265370843325055324176062825649091624415808292573826340149796296111566750200212939858450995196193706764000474358315168206061075434737914433246212366651374619009988049826716649107522698922186270467500236991169173955977520048735914122742102510110829346273525368250779006841404462570657107616098440995011268698897149472771096549659089965901975474541810087144862801301922587407508096026464515020861166889762379468951949943001728297646032383604819858492486742547752843750077309807675082584110712579206052864106439052643410516863145589454733781595578045039893397088814810331481198702348052749366929541395727058656749909039247264328929310463654303266333044626155643338599128917719590385113495144695969482398395839087648981767532085424043020975532573779977307655252701383685192622620063984512083909225127098711802717809423698662302855698755713916273117195580236211267115435281012981222160826676543685819300074307769378420482699615922750373513289061967909089638742050598908230986630478592008542689668181747788992707115647100995514459293539572439484899511642784677955751944806941524876331911695929440460769349698406919052822258794312359466400893036119920026806628284465121880993808454195530518453661974645310684814644527356726573735971282949880209361262743492377680177053082759968077125990579853678586224878799099340996147717986559158099055670403734781495570433152366240826063321719314788413051694977140551954383435721756579892159661264738594512015394828061238050921178216900494948650568896366442516566739243146672211828912569975924960428295890729392442226247540799333672651084393275696878303227942133672442890780347164699222181889403731647469935342693099644103289436301537900429010620230357191887223060021103521296499109667297526581167758645461348538755584184560374433865741292645501827110127605567048529956519088661114775245081117860237854716644917438838142376404746931994333936353396958900465297539747765474073243470693042067988588837382979487279833600560917903382582789713054451534248717806815986014211753052086121324573865337040824766332713513030153955270836882985292997368233149522064576967929808062375934743280959597418169571589248412339936362384146748642302860931358992284478771514390761182756716030442146354486137195696593964679467874080666350893370526464126449754092034614693774652466682608618961052129158677316495374286284288938765121878679806938975797521660555455037882289742512318618806371055864864449526895909644902354464082500566313085722144536393238139006909085002598996841885733430458922597680614674330231324535373166498748530909449752478133041802759420303694017978932457051968255501972710414404864816182793564451564623248204904626636897017270616765393562747734108643001745682073170369001443327591302459285636195439062853697770887527125213833510781698888554792208493209401882901842210709237694833040084206315474347043633280672464773996913175401892458910346043100601442637746230287517035257402280685945219226280869928701653103509751891118959579395959164960581612536604372882939136737496367672845685771914431425616883129339538044760912512223875246267931447963180938462735524701167657480908570093276423105956855943842442601051693258930005730740027211027076969034190573244738954169388544590688197468429357021243751811959642997827184968808080625193310422994551244157962824135231558279962256306179164197534630662855306752161373090537457802021180120940102669685822070677543279434970311896709529374067407643908053178837556803233312112302145597781280803363289784085702572500167973508248366929300930510206073763711683190251043614000247626010140249657672896715851041042311493200966730818555214896032630876580603290397992001222269505873789251743979875315453489896570542292916108243887762376458366719337483889249044794811974929464035279258875919235128363657964156565491045961903040414558333879538060657113344545470310640316720825826732710787611681363111009602093451612670825205239718003185157498804556582521490732332665442354375820664433039554702937541358862486920430297431742857700522102792220889325248286149409111455723993152950345994594918040630729727812971774158562322922730635085643020549470525745524617315806608762205544473802207784089808485148198157794117996894468782193207358682336223392339657931871566758526458907968374586783699514800800620516400316625187308235653913356144613533774060179730305696575168693655611983315018664529417747971950079257009819724657128296579689513271409338667660462749624248131093784059775664268558687625029995509257621883882449407636566027647146919094406241850532726780672139542055257803330650815373426972169453882896284069289173292081111361958258861910851782916048013743449423215990468577948688895435763517087866830342452852722307972167318118435524014443551538045536113840585637641934400965237152842844503410103060089834433781096712395478247503645904458722546091950819038169933693901220522397028657906388071844884434708902735214219963888279064990633726835331884968769050068429962370996714031846515175059230007345612732062564371546950141995109896588967689837859518511824483811917997241746958023123439918390100666483424925849329861817036398149768491869112452018541669257874034919951169353962161774060691781041224521377633176052731939687516731640128300036644338676968663814475864265257515303392972331798602435253579869013655284533850142604692047978242864892969034257779046656656184853673980231068250059058456148605222053441266913712653494017476518320039045034310645341391148791426641432501053389728436893734922784382127306967317981624357923525444230726737130802708604611566508162250483660385436274032364536089854318855587290659843525534799104930629851182504303439301513337936773168279718225960859971304843878901775188985561507900145619417026750869380901311892580140287145738367205212770767085750138044326515410309765454270799951260916767831090702455526014753137642668886399873890192368468375444161165856792444299319259637425797084427693224364930112277496288083937420516342503429432622761826049633893838638787060263313765311959413893613848693868347436571113341136791501253932894829480038641139403538824947204929853049023047842833818335039810640378338245524457756746484309977627396658632506263954039468187226065733701705500006572305770231864970552774745530663386051641654140940941227161608772239366995737127368945836141509524585157041331791243049242576907286176143878648712364074245737164762485093456893073886058658330297544662749409724924140896978817047854528586735040568793891761873721154234412906316396962926960068345676474135621054174135710854324193075455853346111852065826783765311998152553691309122409174367488159885207811916740684697605985272228574815831945309203854456242988159907339438683361318665635421418156342768186539393265635612281594547873563415449617775156764980568177149852703863705610016102361301951770427201602093671441865080270719600444946303357510293415677542821459223341866567272710806169546048889613702857091956876082472327702295128055103118012862471532722997210807650164445188156220906916852012406786769070819170281274993887652740196321319110729900765201313464049279968788305150668910341392398134408661794101963120788906525908642986446828490568690866942606460366373873140921048428010515145837693611145725726993929359785478018328412265721183430800575046818933275949023152620696128051950214940588554871898631240225443215630767647340378245933092736984752954953965164147443415200998804260093568413344995336892508127044314636229575733250045227723894217693244811262804712577351690899526220421194937077945267664836858735563948162861475895057577785345126446351323807589547457787194169041259674196717147239860353134612203633926011353881188876097936475634668599282034981978776090531560020487358713651428841819545108357508116581461940901932928780052515649470592831585996802773842591483257650744514275632066954984326134685185046217790773635909502397948999888232483280096037479248251506809538516672373992676987802784475841443437627240352198208362026075443139586385739775784309733913117881899539568200838883356388688419111669978780921489566685979134128191810149187864278413011342750641954336021999197226675254273624141074025336332333155917079322095462605027684677154815998715329477899930264910483788888007330338027349002947814094992188514732852003325041232561576955931249268423723755689479343740490329733352563542768175886790736258623494595285978483612663118896058204257712462572039611325996186991671492721211545417281890253703683649208589786750613595967484387008946519771317243723025830001949820414388300780341341269821735208898008493041294539249942617080392030158080965902225788740171421783639674238979210785230830471093608615104793526244547481487401714576697316538129552672674251782414013002591268878882569713297183522057645122970271785059308731882791008242645186943051479055723980152166191714583932888548239851080587384456509727618229053063247676714249016963086880779654861995676188425914752568775541497785209790002817850516325575174111792258242258698881409908873539640096216799018987873368448158757655647838550297215499104308963400875900451992567635150666899430477167645479473615018433731249249601707369022247525871481947566669567065461957312184943334760194575652892138855318865345457126422077932455190180755239910607623999782743298867369861779010307831185496720919319540531281434968590578505552460910298023997835514717660181598001393286369803101553939387363079617576443667669958136513306668812968263729524352494038617505621426603297340341310314871312650671136250614096193507955383649320404818413241194502629084545303349100940291013564503655891764869901788702033080773797521771382163880252603827358350906204320149741581588475744908849450130656826865291259448060497583768333798503059524527268519172300303980778931996406771950116312607122119765685303241517396361070237735286761325453954244736491056661170780663144109731097263330550820251812746055583826250802845288700329193996663661960131113598630070333627206871149320277979295828793916667602936097706899642659290072094623429137320015773731016753689563506476054442161252057508089030849723857042244591156528537085864908214054046185884644010022956493201435699153388698030905405580170087001191873097120859968370229255468181360743932758402646984011392050894899843035891504728611216958921862066480472233563412271958979287104473729230027722851734383175661345168617908803608356162488347297705184711888413613726245343071687171106759035862833166999771306019357241604239346210756495448973271752726273440348845689080469019401172704443968944642607338217085950685598342163376133084173116242077494923554473143647915562155616712833628742735917298346008731051669313742115209620477858381427922652261481922702079665049557400183297745455367404829308289872484150366810483495495166137669268131225468138539630068584066371394227352065692054497654627900901375025509467211799538851281004398398664125845032870244077850792252279437458538719243827326460752826937070996375181106416352342439482818090692369062380202228648536308277535703635540250136419501184500168191787369857766905334677387316672387608404690921834864416807129265899877722634316724263997692828434916250978242589949271529020769272301833429673687905503443535009898869437587952731639604044014720272086443345461948777236283158538603935496645558065871079233151620156850089597307851360801643112654985157327111552985266311212666947247527347945218579499495928173308170960872212147528144050711576794060023204114893656725974472723184696520153878574062451896596638941946538454003263023288386251211291544887083705117333302122665814124780131808476495255185471070949425742157307493845628224476879547280522377211037129973987344955131463214199212758469482278551919122392283754499422692323146230799052674010854004568556998654323980769894691637180977197221539613639516945775082175526857107383139526424090111501173280524253003747987623586320868293578185841128237921418630774531952100093237984600154654880458248344541647504314230894559202035491581102428766697637880271020882267648579614232000436928267214709695219246755092323451945143929842034335568558878913046350464407321935040489734283793274636320539741923174010637520918051584649804829549235539987914078388349620646934114772515530327704246973646884069640073563917537921896201069888029822126792543809223069120905632535694009107262165439240009607038673559333343155224472510217217183368309871560118463702122808125778972974591841268224459588496889924343607561675829642068679350694426357667901462142295200048880188571669831380979165770520102963423909654903143434860477566830642426649143262897364496347053871232407992122399543962237502026638421109632787513648908446479359962017688056034690928600458628847598545260743604994130820878052575298996450472282504487395587381332397839879636368915058716646220821860724808363721042940707029045703279041341585365427317639025888158224610776009863076376953744971712348720493722687687126294252297931215528451179722006486169783773498381379629133402633852142043224849681999262459377689910935308729569118193176210679798769157693694367690891988982476770643026672038112203700180995625174159207363496201512461267820086063117715858596057898097270054582786817586837568550889264194014325191413344766648777705411022863734636656742150089615525127687121704939817783788515399170225601068702738145638303047397912578416323680783337670743032877071870837693052565901662585840342948238922693734278269173090288220305253890372374446970294311606027770772314415355803057175167908638069238411296466951376931936409098710159888616703593242240008162980910814201184634166941036297464577492545485234702693114747759601560509024354824995253213360726007077935459439180948209792709914467622799610457687693080253260104419173515147951551047177980601253477202385169694944576498371706954840672517184645546798004428432460641003369433158271034340762495337708585862605883326998356119803706893818819055279945792669314293358271532785765273954527814257344905411385134399270528818869097647789060344693918568199291742091914336127490699312380720924652111319886805741903691728224364262894220650739071635535123021324170429255908605526658007594893655151111386654986670395150274453067058972771109566352846578745970730540776892778388608787309624198547374950971103034253521363241688255360399887212516926654683161416913105606327106996984567098950223903681351199182466684220159418411729409880466501447775838229752054826589691637600295016911745152963825252381964114875491841728548207181689554083992288170752165773583937927499536124117590606548370355639458867656141641525402912887790259738933253034983970619675244403499268393613843207657576802720406308782011688539031836575154955953673603997270665020759881024217268937933932395114121396688336075120091639842279016325352236958964816736913313221913089368653166437311539887232337824442160733180446978048409211758121516208638478154203714861097324039118315459898402910985928813844552959974714804875485756836322645059752430064284376076938815844545059025561948229074672704264365819803333700513427606190680166562710087057913925867317711637178644267316639948338832847427230392833554941476986831589778946009261108043667060566308833340094206022181921130125454602844139652849384045875623083311029354303200199096236394814168316391336556757785175390582668893200309035621622233358969705603566408121753644761602833720282228349942049081416476290830164949615518782974845343943036690222549970980571419351280889606175072846839518823691311682634820342058157475012592122803592514819484555613066846875806991852523082069220469257360441803836078878853851525418407194923705788224102640957136211291213992285402903471265873232368300808745783499105440871976627072538135449971132105775144948074797936669818229755596380079037586106333736652568745750700925622489940978044474519336907373505089351646515089299222223329252306591149976298071180969197520323293584738092900007497071437487254785262711104254125498158692721127594618409058281424470041607813106206898815262661906644248888705466592741113421756117695606727237658290161938697259518468365356309220621678800151109293314234941170100874190139759736296001506533748479961905050412437483385507508486132610945600100634816740122150115690391851176220584200573928804837162255562615008941106287885524581989759259579627283161538455084182653094634636940602351211643607935541544144042217748881841828727121907406613860870542417380030280546113029655906038384066193847091848608943952646174457773986230939171708724684957611220449079207542068434691457764239441307823367008437551184571108296642086839216418043201184184739258229446571678786048438235191133073571670964481200819729343816677570122377440143096063750919585472029042875024517680955349834859756197756588013683614356209559686902201620429252539712661298454922132305387405239699276703379672063978957939771142597253398002055770177598585707714715506852570159692172067701420703057894698485297851062126420417101825506972655394435843841350796004273221906463549990513882093073282279558586084807181154720596629245457131172034567866877093976873637499609155624636678085040115834903296946856505576025257084498077335573895959425510103913505587276325304939713030291148228889447095889306965153522909868432745449143147371171364578341401758245332112856140187982822804676480673871547043590666121974468330411564603341868784957796425577773639922582808680894622598009681030034499986496497916060604104375634543207130467757309457965661243013406425836750364411240568684510594148609616920685256213817342650523393527842448388400751270331363169682987631352371018237187233978261273291858062567693687290192704729806025133785476846021386540026475098046103547849983319996757105757550249723040440610845058242381316767405530335590521664516673905282984919128667708429760072488251857982419286890538113836725832214920066585088863324868278397130970443542089053213721669333770636114273916586928299992046122811070008765354393827784489808386752098497449639326725027388080650887527753425003667936223472756348351146683081662762435468983282822865179164205345518167545438555120135742559399881111086341127055575613367212979343190803832166884012921602493261223538060795500458126820369045919629536133520004850996210019245779901497941942863284128624211582836034411385588732961668336523635566173616532465616890910806269755305998086324891446735875864090470751849215344856467846454464359711648942096836315286265991630647080929507256387671202275468861622502099966861479961971040249310999996599145845645045798456580236031203764946365872738498573875005361119720709807215075889252807247719315586580837270274555410397275054114415886664103683285037485673754015330439710388167828301908795349270403617375755841401009104185470734697057123103049085170786659412033531763864650281765553256838991160186499160644697992289253592519514658498487464063870464021229742998736012698414571025852139041064501536111210027169643259634817562498165187037146968700324810607102879202384596876370854925333311254823521158033767428135245814827956584895276053158976244349740657227156873652436467014246355100074969775175448911578371965555804295633559081767352031989149264552723422899126029639044975534734691251152138312036547645792741768583506137785599485674418145672880179262992596764408804405891468549239802092732267353742101485836164528437293083080958553052475633810916250289463926974455988966287328673464677417281429963524290936154731732124540103672026982593322860247318983182254298387935365913564887275189246402729948530327609611154190137682842202610723369430784412472766417424893499946882141565475871024359919317150462537609158364663478093088734846080937803025357576078888877289429044529109648165701726371301955980120555291204083315756492786228113169709131983321026449598239412167323536078726176717504518326731257527172505905871209847293639013241609756910840147016171931753795228681697731892860733451450978339705157030637963902824812637510367521758836637183503568918790189306720455225944747139592657077759727635693810015243674172656887924988600683797018677217968260484789416890310627409742924362948479205387489964388160863803309063147805286296203779050469956852879609510549256809303909324354517925060289352760801561083199451112371026898173565027125994180023696210773944501954143837182002221114952582598155443801037251307206513972193446507608015085303614089460953614382051631589627392821482400103000606709785370241317553604601679507728764231826487708164895533403750949445400218822190055159949496926219057288399374161533345982957317524843614021861990785278173847438664940846783088242895253909824483863569901878694982471435553477892534398861855953593191008937142941486626027433006975943459980834087479855071045158851995951664703771062763775789598221207462621466219258143243084575054235440209559899326022318820213074204425088882843782896089679049464131394593529700478520978791799251017867574125134510071167929918773570330260296466683395121609237567564873593097706870012985650361811526480518183420577142714928106880394335287537452443371423729412334809891060431668597413751328340059601358088638548126988633893641090306302259906341228036037795170699675666987248633210975740090292515189310883876207229393548568033895642721723429159618868572037642600593594531969123837473865028219482866320562502215099914215390165338678031369217381360800535024441458834067762326138688614265665032915672226726296124414178600403506723835594231100521385241839225978302381643850336165260253495907667723275795979931071395670434137593349461003222150134108076421819134406428375720843200405740987973217653945790835801786237921975114173998337889662665530974232199181688084878002204319609419532489134762230411731807952876984115752855040536538574064430553353722437124595828289178113091030885334865892763044028047382174987142313756766900766018414405706719966831975265500657242286098390859004967656023768242330126203134936616304368433631351726015882831188652449149957928944698049994723505779405727945740172846661408400823772877062494728197463271265507668547145212220788633166366556189105547033204439834051666399075545777271085748579497227401720645530766573181045612744598960650873325223657702363008026056826974275130605461274074427367033218186726164296724716755903488970409735402617518933727897588483037193447256715094322516900554892404816791460306443560856683850626619244655323280315571634917345011828389133286505182641197965284353139843383902404493462310091025248531372143221946916647039446828547717709080578319938846386397209433228387153907566166990804379781454878049349295950857080813400446803190171413837348696252977302678153808103864035410492982836645004973526486974954258735947552866300695769514060109736547665787789733315319975315782473238387151994363286548629378486774996209511117335226832172093016587226318147743644020800521382608205271752921915528093745444592101985673192212587379673005772111798714174472072323022224362942786180647575575404903775123404916769193972924991803498017571557603932756090401860296609177789829011798977598812353225054859303596101589507006013278929954213841660484223652058664758288669613771780217028567494435463370865813800637976603922897232145711894474578343301460934351130401517655708011904920236128657257309421847505892391174926147151913951970771947570576820550014786841476864292056453672082996087166219056255458789243179948403164673316056173903450303943686314918890437797420492761379924738023801979270919683707812948809444721102180491083513218078591278743135416532931047308568226911543198261929112526862097905874681723346278831753419469503070217527686375572253078103747581578711213164203500273213810916355760084981805871927952287900483081379683998921613662725975548823313378822832257038730436998131754989119561349456449324943292837942929488185091824646683153044124880071436684269671890214039209414848570393941048308085637884058298888712686447283306327271881062364562878480217089831720678608192174122960677808561021371614576824610072604840692985033798117714028426512490720405862832594768820476826028144038370257733537173647229790334870587639871873580735879742186885852551178919741096398092469179483817372654384259267265309104579982868600937061616545896818131330553280474659374750676739157859215373286412434534667639848076559900566117256476798693808944773035385023626191701940939026061036887332033645045151458903169745945154355949466603720011639164620804631131884537010150578368971851609834659664476851934595038622205072136291252114360813937014015459032781284096664563416693552142714514431269254686286865064088026924134101611294388989278883335706643508413357331137519936885149351577194383605340269732475856657136669261782783958716874186530391090652231008805663364014658988998676273296120396750322976830549164170729670374715224048303327762485845741352392164974891063289354573735400870162396349022125518351630975050968335242703174193369888127879446879270502988321983790022415108698145644582534598689017141938820505873758443918574348220178915960182950213139719690686735815589753209763278551227468052722533730840937001261112911202579600616952334610759378139687276365199286599371333457067771071655346110721396520307343175175567155126756510194649253796185970128713235187894725273400629716248466753386901677925184597319195596377428553350543596805083081269268829367081550070793839239902577751749790915445950055509251311967321586267608434517791234557956804073290715555745820846204144652468395636115327423237884317618231840909260318977118385172302027813867201291965006380320697301890726599285457713715599000344559963185304230279086806122485243581719456906661388125424643207722508940800556908116870243040993185259204638867691861876446845322447470870846218669928276275534176981697526010744164529184130225538819914338938911454375477072777334223939511488681396952296089561530348851320788736519712167325081331575517778878669922392745993384874299865863628594012818769728395447982834780946647823100689052809968977448725307367271636602269833395586342987159710402012399603947673787970292162523568441988617482186716841384317879917639285748891599524264109329900258145177479359078959612882653138518510459641155110082618204968262942931868241540213744462242839416554948267192900414249532414789540558631210385655878703572168804626397961097762580851767892639148873638921224198825088195458397512611951317920426107316792317717181193041660127832070866551563998729892122082533910674770268649182031938838624929577105427390000828139576499000190738777730040528877762564299341292567551403748106269807751455762784724437966679540574944772316788540840244190123322700111816838961118388450546287010465230516848791257292307609516577070602237120673217805244033246381695307319214163992557611408729830021745200526521346907017040649232255637701111128971332596546608767792060267284398306223086791876411651122152986789224074124464471351949938157488630229101763017845365216890748832562707335492170676708091154679682875519524324551560517664870020160912128532543063016950589663086957720074171415470867479681373240299088185115477024974350090586998619714004712398071977187421527235793963421087650657403417559492620295453480300240835098973114526351633127223860213710900450076998813259543747262366153735543057779368010589657910191623588922333235403228862640059807748265621973446557546257779655721084444714637480959380808933825966511629954468088152129686376470485298067457938823272148837967462157520728620525026183274431357772631009079129532580421816500176089107390407368748921719259274900579681871622749142854890248468452083927126817916466851832503399218326565686662971817869955323672403765869244347298680514367525658065637089700480838472129360264923215082841071768524716712130964569942614451492880293265121653599675734165908492731983057756492920442968674150979117790599811738679986990480296783870096562901735100764507168437456183347279681881010718583494122243957278751785188623562191284356460678495035837432890397193139712240032284682995368483555423303914011088216739263829910636952494096976562360802437923228249457290223952357619051905099482006032908161205923692137816057650106685419694713339336727505493026231563896420486873696358443326066547602964627534985086110600997574784892266317059356713717511164520091377357348618020860818651579948875526534992899037210671683702687776075262477054755823456175001653955912399885853114631832091387324041219901392574607807060544195342838438303320228775232968790470807506469577070543544536348856234051271717586098357354598839591848284809507257773788215558020324455228335106849051060710333100041496364721546261641621208425633896081374229723433354877132422436763401423503893792575087806581267694265589276773631717328792071954132637900360638036864930672825505250054369800898084460626315565988256445214753636905482452113338954534719174031422826421124810566225450783823475116078055856222799702184882215946837627680396378868995129691829647436312797190226751901085917486007702391213846181519878712775118733664010549791762266152904185212933062510273844443673216506472346197316844643079154349367223691789275254224412371820143212687124193112439103434806599704409340586286007713128290374593246871776564788435952922386822524951662298434720062404403531877401716892371520668278390247180540676113409171949560694443627912886802365682305156756821176172662057924596520365900763288295323333227133962688413387117873662307729184660200108725509380783295850040944759759117291161401093212121977940648257049685212905460473440759918493052800724653385506590776211027155315820562956442829218275355522387409763842393226779563076859389088227316589269483985028471067965842251938139911523944183839909529695237388577178688666704219657416540714292196411415949553464313010268791116173363754478961103218206500256782490128277542160066749558827546799581602220645747139637807123468013147681874259185422127992128274629601945315836117017956344912937078317655184909996167582674449609045874284290768965416129140334239235463189672639140100523536711205729264042983173519047171879614331816784650194054162048899965692544787483154524662908160086670742455605848364740334052073698014506633650225569642037936691267594362382899926411828576130353132944122658012590912399582334475609450516954309334644279336188213896269526087505607042468301745712614993580450738055366392079631861793396756316661760394192851643822024154581570813667590508874051705838099035723838696468591890327256704549040968717029121158893711389798138663692333331451664031575663887762699130574674432501563601310244888540014469867638668767566735758866396097565567213114979599123417784568800503724467448411987916804614618305951540600721957800106885536569652738545827433301810057896982609989160647483007329363886429561441203950532945069186833925529235328455109974658705265970951946491730567436563011896041782000850804933711188412874875941059042014040762726346317401115588171771354002043234613241833249481087736282199362150220112885763303529477095881652389247456798771711732845069063693306833446431243587960618734153451582492133274910328619958815077337887585680053615394777271845173048069096868545656516821993993250276046256659037503806088053197389489577997280439916922557807969730307882847532425571461983806819935963046752445777505175574906021881157664861104773255953418070572924469256892000182667279531359111899466198796823154537472055241842643932595044304309762441320226733443636131806381243205610114643943765231916601136488446554500807331000024907758313060610505726538168826714213190188739240568881269569718679148444613841636394939454039914223179631470838159394265230818235507987002331543261286322022316900201752928532480141270533487168248607866129177412216827561464010888806867173323059735253403173576636969003441139154900108373798634335835169588962351651284846928312375934202387158241439397674658077629342135404261631903630095189213337732705282798933069055232552397244917254079531286648293358201883959874515125634943291065807546382709880075305359594540512599183128957457946305212627349679249829197654947326407109597571927375890200009871369994842109779282159780619906578189082180187814698186538243435601638525898109017187609372837027047088759835466673291911840033177871932915351430950934274553841047040342784781375906369148448249813893469737941616159272582507765452213925074210948870483891545696664596934654363252228948956698040870651157327567759515369185251858709601296943252059453117008230718110649784633889073622538660814503503218961259506022864945143566218882397741374249184058856241013165233182878420977975098265401182560935631828885148694986105461580315612783873232543105517187225511027965889082490325403354476317095324879094984421577951374292612412461460504718107518013906271619876035724007911438895386652048577343795681749045330483993359309169567454285925875531032500310273599806528471699646894640842400058694556097028654018097402643566649674993396523465998364945979186500336074027037583425207124732285634898046057520678179534604785351360197158250491737236102340077016659362039113058421790281553935208441355099441595211919513308022114322435465670787888610989078452132136135034286037990890690544945786060161760651768513037023596516259700106688767374417510025874043088866837672578267661355039539785446053088548604575451361958085619466495172618509242890570838706979472074174387204362227011311132772044981780791451367632798838064914753728960164719188248227428174419184388021686171740255826105571933865058153483812321061389304364397460135276083912439038735087694484752950327701109780201947460559116747775528908644566304589598519103250373718858917963785877553854412014644950125514161763718127580288805941294452436577439039673714829155791775240400920949377731116151243090019671177644977036157100616456938702588432219771920962801908332897850915680719361286452490316802718428634398499110601313184614559734336652690604681993474912544115295845299258589824245038900134664227883155887212181004156297322986430710773402901476626480923012953174059966870626369077559789762999025312435151097841170970894397889270705876848543953627547094586391615090708159327056758546482413499908117050862156105230226968593516340900401118259663365054235175026830622136104695570657959205189916126026304122503771545300465083137703261765243876593357052298527998490046615556982005042950025514908422848223581840972749224680937510063762978773495522051962109211127752855912425358580194497749089721557285572585632922947766896671964466624472545787316096845156312463426554060564671450804720347432408659593654767576869859564750120307167757012309547177639417378046257002029240101897762990486182130431266277868302646699008947760899496497452679394417331299919922087127311380180485650823262007618040927680754211873342126195385680106378884370762466003877501345577704995908928459005659216155243198263129509211716419258615739248181787045758983934583193667914063531274266919909365008749917318273904661569537936410337608052546578111912060269849446010870035846493054437178009351154531156814788548062092328977383376023462987330605675584332568075829426843678802182611558904554973526247055528613257006871391943862873759282883575803870840457104652710892597247374959629111798338245868823166394309555875539198449673128079769166623327248087233983286150447896151974127319500707847700901196626789773621581967949333007785981626241954108060820899216222582406883402270644218346310466827364185432162793662138622181636898137586639460814721745513653276616745895368106033717540843564015895356808085428151827602749357387035815999374539841252514562442546284338433604471076865790454011562379959136388631975231377578536745775846281448375647739879829311555306732136538894536076973239748689789365939062596948237129133967189065239268940892117711047106159470449791154406462921345463527862686110172239350224764330866799341060483402495758647244299425959573077421966218832251606793955986260794715040200859669234306769628419827763364992673502447857813521567026263793123989915774448836274449912131564660642294205905550482787824305199360737798406656288737413238027428371852546832857794094898138338611012659820552214533697165706891768921810790130280829344577979000064644616279181165793447130325093673221992134865813382944762086785853619155886117120805853208089300606677753137497064770953633267438033205588846763214539499992513670744153692157286403179054716478412477162173874813004636519700724056579622074461886049666868209908099259548731592607001245913671386568777533788310454182900418618523066639319390280754015136445882145379068730085357348365447314251206680539874007283620556020338219442265486413242308234830329352397583008219539441898157747301227095035889102963520666646523131444642559364283035770874125217037603812506802812790643967366860479153031910209080836845046026346378804646436388629725063835448554547695878459910443155934209862147531895817628619131774176044352508280271556681623804061295723821393847544879078843061446549816436139257992978044455300916461008602081792604050058434274621162196825775122219390150644092995791395810623240157478998389683646753247890701714327952396605913638887453918666757938249079586376083857974480674904448759774505864463765443141207058156406934255975645949260433674774951866486926411412062934954469970779206066902990875913886491870580464273563617919812645653935529195145445757834712532502369829762205015922596664783714298271004960772286851198046362240720012803168454908750867644411951273640329957826351828371856284304435655784490311387520803085202795543458292236712203508426952040709424716422193295204960632057236636354232165170832150395825678289363869762090989761277385781486537423772945748063932418307550954025774453881265461060675705903731931956050532792123613352832800863417446802725470599790090923155762383502551451858839691167134108302556424846027434368433243579739969934275563032989986479286060085828300389355909257034085700686075870806868924514125602021308377457303968094763138648604126615053590735355259230089412491829344906502013536265743822628452141378596684926333940273913795573087665858891809353973579808553449551060758257014626576014852338940038300223945428482359318210534303916248879014204197295575316121857002064575674888071012551559421148260978540500356221364892424725852745103218473957079846220938240378023998489353023368137351212228033877588670750142427885773840020168457923160731302149809959260900789174572729101698123796354686721251456910482359372800984040543097950643424522361258209844285536846720203320741916054027810915891005371902994992551926206503904051936891217162687381238114848449669908162849265391222594327867547192824389272483455399028766032150536716862924694669689854110176179813159992002352298324667162797632261413681034513411851698604221791079896162995431877463951209499437322158549342892302823638982254892873582908389066717888364620063478441470231811106351269689484641418806356016555317195187309177619163590456589174829562960890168854527476426378842054477916456877054893953256239097458834591994672659114273097244325246349162164496480664793118692513994356028108441228853568096387163664792155906857597999688672236658786405333935151444686683555970603085177523988465584746733512219489724017959235138302500456218043678532512370445165205597893289806837362719575835352095106657796363094336858946395820507899252853500612268656476882829281856945515425883525336564522057902219419111647864638360139431590385533311014651067412207575064673129521848140621589420949825003871742028188397569219867474810874981843103583895983455823834157954287032741072159710180585205324230890898223085254720742060294658803854420343782349454432252608578106564492755774483533798699072359739530245330523947256987910787259462889238812950825733733875664344593538523248132754000327033110619892430389976913678623389835723581163749979867523335284497449467972037417176282642973467775629127797428389368520612476213858241174890023618412708584231865548997893805034863390295075700734749612112962769478492461426249459838529563671703108553258779654414478801357689613804538784990944066345319930612581301212319737417497876540744486266839469790045063468544034727355213493822210979326310734583424239172362380927564379019243169552852292793902080019950540513079294448337567678268259259971768496090051177257420674134168989393489900676521822941188139746723478897682740150563040737175579272268126596286948559120053967388780947750501191979781693837219208599931300278318946324232363040889161281069111827868007623703554103294376890226544140460141284270699730531241262764457799707683774961848909945593035916486922696927762871127302903658981191180920322930542287255048231286523981712310908777648031766701191972393204719533875167260696205442766591293315909944502871730440490581972419750789355950256506251660668882338302485511210332559585479535765952109349366409839815415704724269586523528916476742613016661808212908830323883202405842984819554406726509414556422551898873165535828000020824303754719890487425729933034773247261495607596265133434301227548840075909255574587019943563102175034341595907754440981579460893033099544862154225660544728779356352034035302247093993915501662208847348418774503853528449835500062793479579164158106272734348446939041919114992665672629170528436227921131350262184634086787234993504829090244049747804674558460259406735934637451975523644460464757414068101313963680483997966420844225859686080226558625410689441273541833333200288534001892755362923690177733545992148845617160371791949258882667943158088720479264630796126936280375570577878439762247889507377062780862479718969908007971445526403218807917288113593269047245588294985785458946422675208834360856643714966974979856317555948776059615472238402720380407872287844675819129699868187275976190764152442493820085696823001648728041424924019738922421496024779956691952963134087028558249032832100161758966947660834032148227881170867794363217738065322498799014830829880903276018836516782847321882805824826735983333292289578468249731018538957940579816658344398266558817122684798007207805994653268986502527491450001074644590995338781186464362886470271623704643250893748061904312190850006246382177254617501274755324991068170080158100508426064332727848491698536715860391990115600357273816036095141229305085019787957596786389573063764273923098940314737342017252452836542459382354633399716530541635233203719640789515790386278938287903530585424240251462691705224903367257171338765913759259702321646290779782634119470905463067551345220353603607719180113338293794619814062684168028534660694556294064010162932051078066559177605004418239205518738604969255842241663691940839217495802980466023956666357770339702291497795833329948552504067560078999349185778079333188610671010580148679695147060702762845699356289254167960977893085290821792539371322178663798804182232349567578730434212450083225494187003309910637290121020192344066737110538950385388512679028568912546236412710312068963219328129859519336564246812588857457891848092745682179347640761433470706623663313917886320131080226990901592193591279713596191506278183368758577713036694567286487696691796183509281600660479134221194992125265492031347920260118039178232450280019424011667139939973922095037854705440907815518213787581244611719746493429159576252261342430407097147206075948617779761192970682196204812855588899666602453894464274188639677022961829045689905966294551203731420847274054674878728394196484132000026110882920467935760105881751076235859385734210137326536430510147311168937883902769299317258260460899378034544340144729326216035891159053752754774383979231038153533922631117588987515604129132572473086378921570804496233232304778977885561357052586972307528656968066242701123950162712021187117359885564866832331713728609093728118996344704168327974299210728031959611382679755476501773311000013610226393937262179468936839011932822036600590158552203066740402829191462766714528754036812707202181794107662620568800018471941519600841510733844411565623712524276015098545786755750399490339945031575378777383179871598622328395738878790097662525228943906851873317794089233078262571975042855189110470974459890825164728486311396676907975626262221580447403495783713892898984137035239752538559713477068629880908215861184995998151063666782490660052303119164089701617399470771469555610920768097275263360981302719279292312568531264662318928328956736928758102526635446487235273036117471979341471911606306459797447983391888785400073649253469049994755399661499090899600632425933485785383191337735808895842852362460221554404073724556688970106750847709561059929281076593421176473031702296160468597152065410230813491480667166812531145583790992236977903657529025930776289705798207160823861595728421700707907461260005568639278161885141080224102090513743487606700054615771912811992471859824718595354028327242555229475570737950085296300512073834638301096926469576986671719982556873882167884469015721292172783134092159225751292853569359559214180430489100781277919835608719516924216731508447553774376025637243304851520770961874286135003234323136277103874827744899567454304153988370201151500528066522647738603647023017904599008530366041340354987584415102978948393280679281419997864170001492078950879063268866547223199629203806196660263947929891551942762271508241778791416036264350542382676688870497760270696677311028167989638062159329801097718852686696262521595291820451516680413974532816216900948903934159575255405279127799302178431185411085734365438326204635108735110620012868069558082425161783872663663362202594831719073796786415143001373920083341268802264508943931574226415112110474629548557329706330700228321780065131454693186064326849501335977701377464604168576450540659538651140833287142391473927368200314766857870269080858500916142572121357533361760552348971480705224046806418753033456799228758736266768665832817240343938342875576771143550527773544470151349665532256520055850087386961706014554146148930075739697966859186019586468735354244126407243292687949338269608088980614955364080085085788827822409804452926113933550046658713579661575991457494934307051539292322858944891287061095289875062422196878849775013109707650895495350847240806156398048952539786765577303382482649753841160094805770299442892542492259318202939224476403505618483289580936128661766502499759180747312377536286472414039760642266698921740756404175938612792489968788782672317172048601377181132819801453639803173537222583768589969751981634082787239743891381712561029175715963285006855015974942700986348675283955737907954255291090212727424206724306856355320309360242419520514845573748896388920876288053723406669300269737088144399250083360770476435164146771965323856362481134662719996913071723618389347201885817332908828860390948205073784461311732305621489547077459355670352302111645104129494505681089712895850871412045354241151967771165033493117544490996447313070387508597281213799359717268071429864275359285192226489420837625223806641659929069038106503122388787717211430816459460704729726790409442899699166415587305250894187566545342634121111135799132742794852922833066541701600906869246848421929041459143194157256538915325838182073012455598834561818210938093370690090914967724742962987704945461121300503986439023269147285399329472260912603265461651246455407111922695083736489249549143954549808498027293470104014481788066745337373454118887904697524319012463305557504381857236858346717293218588591521553862684137252345401528362714939198571462509693066211212828673100418104471210415479784516422070110508978179466035824791062463321738011007107337034847894906647102988550416587554482971358866813544308908908287023331244638657804137699551555541721169772006895736758822710422692648688578872231140724418684946605640969108519047126125370637813604032140352894843557240785708329130223855399717852821980599186991138908291832648554745506641879618057810624781189363607294749878470411860207388807459534214153459833130550350725351963084100282177453520146462802249812024149406438564483431704267795061641819293624750745799720654993126179275777035790345450075255420975474885892519474953392794233362981941757270917131576234278528931402810276813091581544131942358868806842255598349441467754638124713927052253163421706679504093838938536586317382277328892144703925095712297560721071024907576725779096855174842018825492211173382210279542947360467937764615005835797134873620292643936217688358875660995612475988085960939057074817977518175158041125717466215622457800660622607282437182761853340158504924315834871246310893234173872658526945435558726399075505722765446782143155855325924011594187936072675262385632406258122177388291991191106584681914590557284210279967445588779526458017539010351296882606493363403538663080442532380582285387404504825162634431789751125042747917272062716466924138569039181053970409340414250254868928881692572672237960337473751533105403664757433762319290582626208668410356937381367563688547372014170505626248845309809922364982011954666402127364605662886906959828238084304934112683818090882455083919441634017733923295314225699664606417366603391931879874779671595595798415444953897670669610820418577632686705441429840186315358344242545815163757093231163934960890713587346820262106106557337815713678989643251166710808187621279821710642698517508369842210852768401707900421938479305998430529548741165924938109523193899591952622740367791537875314610110465527556034903705587346770444127370175930707528250516350388063971848506938765482670393852916147033465826253076453170707842046196695114702547378762474826691931157341383578590276462652518769438458989234668681189311013483396309237981215446650905254315442930400653335600165778834625134752172341399233824381255970209613607442945989727672596402802891651272517884546322933616244202886761895256354886542476651910542974521100613933422527781930324077612152227145555308818870984721471383932922137005467499958140777422600557408242627368762437563496455045816939878340338572346385184063373543965863452370784341014184051328986412982249878188670601121809063875372025218125780134431895484189079445484426824352572887544027651311813659259467634101875577271453107880572801155488785512480014097904350463860192581511317146012502036356156084457760165571811480022336496815704096261248359712245193393565896186606948912336400596396296104815345664612795296083729121372189539985073290764720395689244369568354689379282873015230274367490321877023530091139265107021243900767477414247582127243340427245235091581441750792242109609284853634372023113043729276741560860502957783791311463550929455045377202865464153399703038990388645006820513774098728659157010666939058747328626897634786751436875593549814623314302090072443423558590267308621621104422252690900533823799221158952803461092147421791592082242390682301525053516970453122843864862330626950988955882208500410531245008990298783925577732576473640199693142546260127411393700118783194246498903157776926337803622958851681179669767461066933380520069424794879943613439062979792019312104617652739124612708126658444864152605247127235346939139222783182116601747130662261905683816353712375888933425477722176884827046647369429669782034608417494706091010129166167827640865878750474857852349448366906977757953562477420266316743153295244831758570855969756235452286592613600840106848434910911622548580828321205534652977921443297798288352022949049798958213769867520844676360610072914251071823116873671525835271436903892734816114319729304334573122615110603108709758311028319657062484120894237760772748558640901308450356091487894817124772419695046063557307204943834444780029275128811695399322934851547698399718902262226144462122349994529580674338227935762089132546637241960859349858340377212897853446516599278044394104055036526953657251268408288637083333937939939353442753888553947931666444036098159196662543298057289753281060224225635633321932395999936551192261397501821280195903243822555948496390389329584707813840771688301743832078989416890940259578090755653094045883703258361414314648259315412109304911616706215917798125929355601713306606287739784367117028312167919079990451725610023155041137866537058756503660303975421554272661070878505620596269979889875074738170027154374870387897731998418872410945146073548125447646846250867812860071508134159015029775188095464245116475475296907140339533833875330716855356705560051697925287245373462496718502451133099873496457955612654155971706532988132468994755993561085542280509682411733483010727054559234242187844652995445583550246197267579289984842202373021013064362136478303198155050222701754164511842484131713737043530578763834261350197640527221611169871406516130756860700414551908661835806378952743945738875597848233656480477897743807201330897121518581909226324647977294565952667027739547667848127314590987463933929923397529750825202819072176463967984607334557804446655528524699261179296972431626527111738460491736036953646473435026678691161453187145585632498223365688057824910359029196066489379077715785181087649483959171573797751893778645337464470057956440867088391290203289919617585860818732141189620024371460940058413501779008739324493926730740503677243493221666158796782278700068373651849316756878601501530386559253117213536628982104760246739152931926309347676115600225843768637721005097782754391636990115716900591744299744078276555034706360608260431907643751947049769751025263570919200512031780529955798029095972058456050286788635304169559350034441177770493952697703587203123008188177879609285027486759914994985918572761380413356221558749690933440191951859700353694722549673306939183769274791347018506903690891946643350029013853199791475763423367312790037111077030789065804271029771676196493725738313677522240433722208413681223361646353384602904755100937509495478343501895045987322291159379307414691230518240417703907705137646141132727383506747818962829556612908404082130888861993563525939559941673151184103087660129182523527401471096576398668274844006649231733807721572897657801455387894808215590200128097959233965772929671053850013751692360795647770102532513278293393449555328161786748311057229596949752372285099806780772731784576999493631978475320263221134639708291589236248762833808663430332983031960393358226614128673540578886342253531964796125529549627112882268940945172212695364319426247700149188316302139200253931828356241811949669070167856410866943794030601691928072883126091135845145671696407050589987217874631376104889960540191901117667512816401204376742623320935132967785723342429846297743472814080321739495978637035821569309959961818076704469889512745736865387058897050010722200094442940552643246165682093879575121936029848367266764117343102176451335214749748798658544474456476378749510286314755588659649764468481589758823079128818538710290877722753766285310130994539356999543975395872261766385548991936665270168687175000709985842864881690566678819190525380305015909707288412116186901544837825872719700843306933899586670221391850610482584071931953071711995825961103441520157939907333677390023027836929209251837287916868189153155425576266782919809383646473108526332706596020983276342969302411635770538093214120260358690669583911556059025722015515551605522183637147789393708578910354942893862412469075669713604670038580555300177320286749317309176965165442176063991802908755667028079386430032211850219336428721194499862901012154381296410572074325466108737524582594344305336940347045114889089258490121927988550425784282500174838255909328591566150384675508095540675073662186606477682907505352509946441314304971126445923391821739159042745165602489084139498742310430743052009173565603390415629073607077864025057981842363882673299027073457576431934894722251287423325140763958520939085703087313511212804662713926908405947217069940944573727532524900484519668476230786279522024978029177607201037538222820208284821253770277971071652957175282964013473836428132815259540880753870203016723249188110729353756940260401311201859179652706775019344105762567958400728612921913657601964546162339133294442172821058688433543994465483859429427666760824713608494516319732437295215011214856093155771787065009449323270514084568987015814103758391266976653854992603502157213628211858534017682501680374987268137381763431891800579135407101095706272194111687195975165052603472493959934402806888672525584095451584362087458340228036720684856114283215221784339227004873450188089504269829703917195117551988004592325624093753770201423493622535287235143326377640613849403180880044628239641385654897183572122948139338882896583963251252727578220737468084081290064811262051050360736232730881935475896111718683568048536931273436461851555996479411290786854268724208538592240871411447927994079251812022451753555937726712577321326098846924198897741664782841603460438442669029762060393175405306071931551977144667918296497107769527378456258460209571796254119116960213738227320712728073026138080057478720864122000148503857403771895367533645742693937697019803650791784863718688076528585579212144107554361721219505417527818981854034590788798243454016975583767266677505475820872376172941343551279135604289770206664738226355756785998325748883288854831178806698592139221132438628505647803239746457313174510944258531750493294012652083515914327575620236990537758936998690437479761832377388967102602848022386948030477922148776453647463968491465527682517274175778769285727652672830284569031821639846613466457463711137978379745507967990772217400724257944832906437896950005819239772560467915346803184090642227443027091165175197942847628664508970353692246336225353032218270342781631191855313341725821771986541618493343754247402230941050918743542684801543940548196514346588669651895810337838372149924918286854507901247397016640565836391058551898331155431284216727474784118776533401764953948153803984691029152549085686448156549885574468100336679923439373971902620045699588767656112007794942953494298690050505219060039862080228479006394168574044254797127233926822084725466901347461409648448856537920953001990649452486549713205339013042306415704875073319082803071629018401291559302602109692242151749810535281216089392689225280239424323907562609811597913265555486666777670508065185057759401163633787596178330629723389261332034046689724536874022442207799091579340739837567221597665899906826142758083729283479107142276754242899166064261308450187888380607978165371154858179554497253824431961076070797489362316190495453062445364934610362084976164779119003323244739208748085586014945062327331130240246696579485804963661135260034897290972223369012186898196387375902941278989466472167996078448145308191551785415968156096314828439722453755685504330344350875125779258905589111027666885231407941827872261705047684909100256591719188366426458152265150083304862108962937259905971351826786912313614838569024142016859904784099220596912175326050823146826055269096114193736499987555465651623202827409500776160157335883098056664291116975723630594173097024293085119631060189275460541098850871860492621159922886185414194327279420684003783699697808320096902625231797811642527321271475326507394833733474114159790113295937767613047089478231800931496576793292350248772325196822554957500573093168424320921781729600755863275600423158080660379205364632809705567649185052487957721511018394048022901529805482155631018174758486830617495044530463722258727755496874158600228629726355557808515234429668064658383521091257058467656781241848094760135578716357566036882184664710661737275248058093099036714438418170190116836182981068233992838130875700369983494803682604498853387195234341391271845276790721627256172186338552302107194806644180278089038358700658782213889941461334139239016255614405365346120613961340756412876591971058245137683051784696155876509838239231498349059717336457779783436632434759065935965691077695783034154995967028694850877016737652867614848925123227414522485491720368466784573794490774142312480442144814064079425395370299024721886535090223398648387363742225167742439641719552230171393706483744358418566710613601596756097970082227597423588562254438479387711014116643539864945673072294061207558872956414774694665274313902079309052773846439422555733197234045957226952850297421088405200452267995915330827894250518694689071115116316848047041487682705354282710181048538103986726568724692147974352690843330450393510164071288267026106653470960351696634909061683581460854689503315502570367607284748260981077756043840114430625145666537269616866382249954169835900678746205696027145073612603622845612006987354890976374008248064754752602498390563631189317292615880856168331105301359778663105452537993888112400220387668219461485184359714692655028280148611998622037987176302510546600101496847559778505816170904685382496085208537358913956412059089670401011337907338100615667143613183259204065062812048737283197358238250806818645366097163646056076033019115681898853150059094991179203842955661242466775836775170156108238549383259224278423794841828089004876103217696591949577937401749484864300202715029283310506314142315507527901025904552290466620932051610258692082870291081961900376392562390755769916479330990836206500622271919368844377680369209921162520300864603192495192837542534477135714848417426973988567648655330964765134763019467592211188645125111126752508051481644797273315341328373981373414122874542070437963109087061717807719872282718128034960475463407803593863311747494256113659773272223183426448686087757479674333692012445548540875189450994145575048721970274389508207916465324968509124698619002099246136071347071809613744858222588494167146238574439972684229059509857183548384759806488264291667549642958906050792070575775361209147242138456312471202974902084548574861995110364375534131536830340453669753087122116887337608809706627483638131277858565466747484754420850295685009240902639570633884915583068320731680173208512321240072542673291094985242093011531162206660465241279525104027776393414137840080506834489583163427837976660916062210764170378274440046524603253843974548775780687170175674271442937124586727894830476413951406563668635616256199349255048666716502056931767290192024938856612913298536306234122106225501796121206931038232298436154862916769521325331335121157599744405391796241643791149358266345654901531703059247702787350687815585202319984671556227618344460019046129707480659390141329289669356299614852566799144867388436725890959091205667726343014571361506719982936786581099679711764222738081461283282416581919123820988828161084592970475865354750505800956412726359360041705078829943330663708528001025546713297399685862895272443301366451153334132573955542006353416853754293176930026681940370968032656566355062997076991254585162520577146745634811881314813844881871490379990822940798590475907879461082015507496388878043264624065976652432936486873256749487728409891751511416199060071829733185822838246433361594116082819306156351687304237083968932019573812995092862709906768245058969160205471566484070168487582966986009740863930671007223663073069819357849662973534513810665219424835321195124163187875230430908409146505661501998373342362572223094466966855240403251132914001995819540936069202054237621029607301392842183565756304799546970733593702932216760923393839429257132494134936003017875113310172855926726948567319004289417545169636083870787777575069209036958508373326663953747257224112268868276451451741281035612810221608569846339234165445515874048853650421105405262501573630909047814242862392911670932620729009967307279574530923691435385081485676637874229086393018859054702597230082077058587129199827131023210035384721459026719769046364520541439233194936504886138894402755108094922511038716948215174111809376152779839032193813530927861139817957293464539344671860665170026268024469582591652189825387326949416554457668674216744988024698778368974907926609423373220761979680797815545986919123283341688464167263870909987425919371458652030992904487426796582123704578365242300847360998340088091811674621637683078832722810152590265693430681669491545789328110746749423252372611850605941093880814035807980741495385331609328636049166725306327702253885916247419440356417545956381415021640976393260818670439709237747229454248120737971547176244271642739553394412149569373037796652838479280293180538699770489687391102464750143276390427553156817916952040045728794074823923099558398551344166301997970467702376337803291899032059550685882816174501395199150433681424634226181467804697078681100490445365815237986316134686198557891100642134591041461739759339513560064714986971229027485800641022354622022884141615735792405523658136887371868362818313462495167826274391032531076117979031581072483403576455597253430515297210895822584905861063528865785867156366208852018618586388562505921790194803539229379743496156438092602952896130820616730522919091446220135415203256034966859892272007650173942106163815859001742016850547530642487453807575130574099576986013153438530821488595722487770560817514540854401110467205722767775266559776300685433391790602859909199758354676419372058127756743487368639222470267607629132545701678050144433626190605114918221883759197773843189376331182014551814074942567741230290115828739797638082689947164480002656040396805586131736513141861227874000499710773905229337128580752494851647499723213878855297571930400687378995536496694848023556123856087729913106545376015769516985252825735828401017195658494394680252065684239000240584818551251918417926006051878063360398395779200816003320477561337222085814535166323708652483020149922832899267982679603027950418602149866949267113501531830810631241503269303894663635177179537912044891203882078760294234238404052366201142649753829230934308825517587468839676657169358547474162617436007047579344135784189005906951904858357947205016148036082042926590244141156625825957155879089976979323857103981932286067440723125733638891784032408422971339927053993265079750777170684540909044992363756316486401049437219678688101993575416582565072417408113098489994865923357248502324921865319783299963942090156641708643554300319605872607407590981808041340045931086376831607398216040605249506036568981458872177335417580792651765674095125518343856174437466287407175456985966984169045261987030865808206496546936508594307588716629835386210152939221872309401441926852347457957887774132186993090376231639681620496687749742802343616989901069031316676863001586338385267907437538845640304805171464661093080009873627525441858208484461519059104077836012414264822879522998731554134245609571032692578515824607627725495681518674184174246056115785038977745545496058349074837661649035025026386243382918754107191250886535730488323888190321372301870296148462804691218258534865359514169459628187985500596750092154739098152515964537008024735053166307710270061082720412282676593217444189969496210192383641217355601700521220079096732419632784164813613290415646521581174601475173797873666601584435402442793881620600797159216403479316885475083602790360349573509777132179609287130667069919286117130865938370735619410345977871854996674183549257281810279623031326782003020893656167444247183201401220788661496240699762794169400192836407935453280196222962744699707531958673199701398515925147675681001450988056214137774687202877827057973985938752688706231128103393949845558082002848733035055036666023935406918955376630854318165966700313908910509721582197913502087242783149172087317601881913857571437911863019362911889763496093043687523638073329779007844866660508415203913419446248730419679780286172141093485447578085232802376719650690741326532160216663160030133502767543739665309694970452500829767629576045433714617095665636170030619927313227329073222118859251565806455682521962239243428341941097582424607018230820269780672355185429027248497166060461069799094977075131976807315072671461609384999807167257258357819072310338450078917666759380679949968561248375048881540852682313752313023415520736074782401186313582124982601057744592928995534075265251239374368417690227753892441768144079791089466786104496687247841234658961870167003195478428489941686312177602915526463771966063646337558091963818571477980344193485794029606833228298227121544046498556481274259754700440640690606134479473347674095748751898235805281099106253799304561454128365906167450604274608212120700652217346098971419055510235766397931064359666831007533523671935941235632463435543377829329495835509807154755274096661657612464895838579597137349821819172581182076770584580952223864782310177415322965526873314280049581294925387619492062630867301935161777657757129834364348621913565013758178529312447708551287253431502209538170755311431786992034602427221844865108479251535285230295078303503120643794621149075155954268618390853618569373910319045793503875532166759908757886267320093837030187965763809422469017725497850698523418451656727079583317464563756512263325033460223915531320371594385331068048674891279058538198195335732139317997471880480432356766713769550573905797896488715460286233415005858017785958835936836273000167973919161060966537270924299605322977089312172607767104279819859359072847807125079090006391521090090126791400831289802484595430192968415202081323410898455239010147942472291584471860599357460271765295257205652921655444833410189950101778609211870379170664990613956762377600718659943603717734599737470340138572479475449417211876470758097995896366463115454980254083902315376538835321223787823274565720817997244697191033564870193455417527270963024024078316792881278217730929311997119480969698821322925881236918287970703197277420863272912549622054137740954518082395513996712995560865491920255552757848210415874505837620658763993452757176560775312102279829673716455470908094098987164997643517826665409009734030578223076558966882204594353462537937484472463253188141577797861937116089196439332882482189491075215809069716724356764698905756741857517677963934301840546822399254633236599973311193437108027333101779025446307112781262560876379005985465109453274790975908237288725203671083078441759669170352262080109808978964618068557513842076234083684208949542163824535029020654888892881839187072685247841014692816083927339880085283652008026172421595289659367875828206675814088708437102268607227963747506977734901724703093541964552038825358320462336332226699001775679974364037035809120615637927411923436871760930796419306158401176468096647541171106477120169716771155968833611306855220846633743167492884409243229611466087603006939608556268615406584367375157480330527533866431175564264680343011946134867134116119974946959067768171564505035424528356684114781530980555862968185267298421397106953140165940182586488531073093147689231661766886014745839171089146483018682945078249900540641327504866091182970564821905646801733589131236525820247650822077228855039123039548212586388356829997401147532257435374336684028362093823340115873960100973370532314603917924496732277483055363883818853931483996589161921579945265091997475447912858361558908581593065560476061580611234458734916787736507739682317102382547356745677577860637074019331264078353620972187959257822471239518480871288973289004415595231991647482115278418725710420385126781628884952946945342803043764133969789659373478060899820498830532414521274070007323619420267480055094684186825369028156928588589553234362506662400060611663444640095013814555489044375464611257534721359299126554812786228410201210046706164687297418010808300944114952624928077128024891528915844289342335575706873662535865532647744494796426814769961482475252761424482833083237415741353903400493450893991823821770496605769864554215734432121898905846778346313543214196827449768771577982425028584067666105886093130220954115662815306367821957304606981169355422840832584306883028319188135473538868202135505096499399221469479999528162906762099587994321978659801097829014575797801395780960521518333224161709526533839875060484684082049662556684571716842209982009171484370377583441938117331374752315018039755680893270105759044348405969046725077099993049677480408385483390684523561298530762925522291289777148732796101183909263029049716721319879735734825628839287933028485107667167278904859459607186005262571552180721801721916164618815276340955425632310309972950453645294026526715488836075943430013287578820643127184753099564516386979617762938714686607742330674635016909354693512014391626259401175576565695836014818669056175762918590424011890490285835858903455219540765494824008234881017600521040541087141088005499085018320682014584171637621641599354631822793997084753084320243324549019370089632688884270350892623506902737201949319869602958634117283472501820909268359907874843114579634331140407441669851061155546628105269923618471467751417690053417176789340167644638728385183377908198099559866143072356253632195910511736286762818371382198892317922714431093628718733860787393306382832513801102344412876022746962266919128295731937365082106835659615904234874852246793505330142706507919856635581296031237384444046938982368047786963776862566187781610594049618877288654767499789988615477547850994266265655898679716653418129334550628358683954015946076880521296195305279441319531799377226280670042234596527642634332951128459313552309150514205041160929193270145999630683316437552467449914058443760720504132758830789340732610995063798888143301915505697189258660470369046949612895423922170790108230881594181311578866544029481523562696994165484988031382117082081796000751166827993501920506521282897956177453056373888671469237541957186044250927876129092329905940897073400593109136065906140567955520656267728973482335759508238178637508372935342310228696814948474009186587711192726967251589666450656243822948871525547550813266498768479226955831323585257043079265197706707930889464241759685852027933864008362747920228274569724879663227169198600427365267437537443593064583611068778695358956942958435768068998673386029267291347785332570278829582134192621923446927499436501053192982812822344393269556523242276868840120153027346312367604837579288549136501108399596565512345455110315816708649886997001446573232101190646828241627527625707788284694098272447222158081539015656880361010270378973474209939457223865216325267405998125200205800904334886614839513721351539267717513076307201967274175148008780885776477372764926555074904513568499321305841382071412100043429003059511120625515767083127448125146788238334534160757220151167315464586221084601722859318217396661124384754542329218831266041814135480181770724040395171887944775866472169705284681154936974490018156933761706306087905005591117722924920518150293331739013742272023745576656558969470511574498846519522588987636055127310880876820609248203013126828929329995970025081733708477587183459426085583775514038511548735679052124753889376703521578053581868760720949524054007666661947688415300851813324488105153170122990641732516146196025513425293148227881596920040022124739363424606690457913884235425818913335100823038475074673225390260583522223699496200118426738389057758507396727184411691019602778724948337795258563946199643130876167531111077852438538373677697059581194897014731754280244689573641819209808604397751730916078086281287022293017381526958076054266218173718850211316695104687003271985908298598762186692234768917422519828301041852692921162753913317238248199597917422531067186723243167203239088713298531030334741912036841541495756615087091353567082213498899397746529624010166384934146385182622490469625855409769878976478406788086396603565360452720437282919516718448990333326862445538269994675696268476336818665237332441557198649794206117401216462263842025906716250883001405810303551188170247702574086694875871873757234535123457676503455345404446674724965293249992475382178755669726752640586000086363404354130444062825559696776529141798373417275830565315155183200682829024508222658986441245755644930809028955673450663344030090872997542379001459037935884583001689905862627159794648990616236146710351813937608286873549624723300594275801470364103133836732048306224710105475574077839196091271273287813913194383902178940695505048571394021903080378611939558784309764968215531504336578839674572353687012789008087233545433277945884037214265281746853021907231716452847260507764534002948897734636529297023068504838991027580586590536303108480570929814349874099246487773432542227061741589151286875184192517425616088215439638867623572231519172410295931510053772435890870904311268011856225231469512037959348545726067405339093562103114761399522287741172423099825680076218816904295139929349309393495129618405753125093748600129884002474980087787042439157843728591579593257935794511623873973621912873168637890148909492666270470598022658709085685721753173940391250040639951361649964931139125036527765504752151859510037823370069743439809283494385478479835243953571971040002622277237370929652739857752988683279899970085511568268981822817368763642856995402009546148179070167137075169378483042670664145350016327758869416262880464670233915053010076945146532057156343247838249273891916945636812199708033671225531974294978785687817031754287893891442725861458011019934364939196717105914357945779029470007553741839198311118391558134789190600745344997039947263736282787508631749466949147930314229480832038647266053781917670789652699713122338340449272096752564772544130440705052893175237578307715187933860235008366920488659035384993815408189900410168619560933579473594819505991266849598799702306066035890241841170356698317647491337574321859873170247998553308656117336175447667464974290531452186408588382190048024591056077690621176242617746416758827038445328752333643926312395244772754649014495268865624683212065564624465251178204462315900982632857551559470790821381324922444737628856556219641215413479615082306893530282616364984801831137867281236465614569156325742309467311903230446009596103941976364394453937645880601144379427204664800897530743554602828980153792248252062393253722037213229834268708721496846896533291217477767099688378688976498269716420102311137920082741250117143200988717037430764656405995509117297751860295459885729630888022979613860017769143771317733424772519188810807065893019389212874145448182462382407819798168627451934434818820668205931522742897073171677274398286158619331890868177092568873480582643331724674597096024948561663133151220211225652400547633560563205625956516554896949569473826255087176487169177489354820612268742728563110175178923902998210855160960205248081416428764030519856092803058836663684062705364947398555100979425413985051544007325302101635608493928277311194668845336085122014920469077957693623802387910588530566190937833199804599233371117024086963751538040706919607247800681842699188658747357874726026052809044844846624496791881093773382042869293746385270109863189171186718315036439991481527572210621465422133858033282178438200862075047750865273811706024563203506141488684684677119428260551721092597165079593153949857588575630190814922417549066241446418708504044187410214305918441128682760975306938695207796216671040006007649633791393651684301788610216450953475653234888240839267197348475573778420248211319117969323681202642285652298307851253935220226285827241517845841638721452539208180456984662710145713497927240883322854718979090000219870025292248530137489178463646606392578482201905093757681872710783187202371977188604382703643988158428362865712513121582828320520776516208286320063000752012667019529206189789855815054616617739529135828235020352743163380538884250377823245699471051943412768328863688682698989440017301501277836887355841842067082882486515179206119554252659284651292094774297951609831021439260818556788763980806399802913708686937965713521152410457204657903529242583822604229326048680988180669299207670279483971516105560383177204891946413508317366173453462460702849012954246598247943081522215120948919326875869280599845653760411002713897745838399243005456241697158875154611634313861160466241855989210293016551645337146405551566812541151266676200541641276165967956252775139186083843937683041360782980725432578991420026339013774382179108029712251648540156594673960590037777229958674218166694084126925612799187311301389055829629594530391191500671034795440130475555703233921149097281443559792423937304433305838853076251931423704547407732558256137779078522049500290019326532289588875772292217090654564504743322628084991938305423711845802763773847126434167418463671444546529392590924542510281301422818783716021969739507019239716091174337841922123161976643679325595087938613258868865982061445076042508893307989910424417131460371406488995572403055801303456187646169243416072798724422578101379495812290719811683169748709906806502739961971660491144484474446909193749456587505987324905395317091260045806725753634557945606391643173157606565196475386741366522667762745864195342643826889241808018470274429846520731185462646629584496288509764783813310434591451908250480278128117084057975767303662308804372698169742650722893889443099507309334345313330433423214504688809426282622219877669834021090776660857604433289325665247398669402381363589826715254810183962749907941769197433741865326403737800726333081946210521249073844188012791324519760275020543236020345117523636283342486650288008491059842317306416072755668109821240314995116153504417982218953116628004192761931327804091442070072843952910153512953783484551134561350567443658758513052261183702684475165018214316049498756500473264045352985519510963831054106286210718259096980557900789138954075504357953019996139416934652873070250065197452514209434402122149397075930163907824148008819715971183253338266529882582258130278731571198446369587402071240104276244052430529418978917176622060990307963458478929524170212989502443702754937244604199598832754895717332049917631720310207483627287789150902248429818088554098388806655454347975651473947464765057532273733218230154993394500304243841088578882844982575950889432528034726755050023438218367983709722329699855486414749007142537621682600828333174879124985239187333688775790915807573353747508772067853165532356244806447971354845986126452950045178687352867007293876365210406035311159451823522873646189262741381379390050293598855394273008284140864900266203797361992033558995538414024108592296943738054748804435837941597544203374901873316515963560390957599312399423563001473500825324782827376633013304821142535365659448758101895412554691170196669359911975069740002312817340666539898962417661612279066978595321735312445591682336188386290925653042939739755393739967750278480292450710890723641613049971801842904814214434074072986812055811506847792992596716393053157775240846218724472392587507898383256699359954560116684886129315254186157223346937697112259646414022864794542772895236659401070833901378474614485518302046053036098045308284599585988482170270722900980106820218778745837609787659999066275032138292293300224532646943221619483275053495301708714181097627749958107081170539323266299449652674884686211777804425606574250327235454193409558510269318926767573748562919967101053826969315415652701467847032534442818578528280898303985114841220913404046301016576988558801035980857072284375904865860358156643160685756575538929589803083684904560788356666039478549149166320772356960657914639246502691134630888681217147247499639806327780931697434644471254248493306013879434158361902665462812948604849548841968987942819834197196369939680790297923716058905982341278881234849069049458613013464795701520188872164880070489691757460542472013537457507803287391950822936285939403674565697663239753752064464770303941388534894140984673295936877819246845961880297402690845874870959690069426209752102543323873067186851019738482093106131855819921334964888951778336688265844415559386483591558369451299024988779658412773046259357865476227839692458149755965763073962735249487340766842044634546010063063147502626071312012093310335745509426941361802272566744498561313314655848746814093367408922417120756817583133255358970280636710015472039584837597797002044447000462836110241588062005917714921261409095843604977705017793487373316284775017545505455034927508324844984661239433513873742253403524299567198001269801495617286275156573574369913361736936321429213928864923891210061363788103631049930160678337763585065792332589966094552131231534336195169206203501823061769895503114851606822264435496221423478743514079540999949514985329214164840049185348341183972380103160541971420447858436456142925256084583241986038996846398418058311378738028130341034444720376281649109042393671500827067984122487994634108079785728639872328706017222168006567436798218817210346082542201440483313084159309501724495745441401211149486782799640021503863135363725802909998428316492244100149676251924550096639168208580433914592769861156932959786047844227345654665605540032672918448548409394873527381351620693240075605433179709179234412758581388476909653492461271842795535900471381603679692975375304052433584652240084843415778610360658992167951603406134458607803754703592463769109998789542037701237565487634775962473943399588033201902062147042440666673471138922754361359812396970210068884408512012367183316567962684481926973318728386227569873628817197382394631366137591750010984721299683282660143183078674394679138859824070934369609737327303356971214791092965680369578228991520514562143069486311148450141795387677230970131413048456366481575381790534392982568504581626152566238513236752248435889303194629456765246706453723052803676304121746459251315175547554242276829494442641787320840251068266855412075546028449246012952473886144283285331281265639939961414583116676101692968645152411224772622214271054126402627950924199360566817596821133806069855541320383350739872277830141917393434209864749100859682220924177712451412458935077395072933455044370906347674767928460671806176398611310577578005237761545324406202214528816860913306104682611711996233564073967474633481017826931321794736020559706921984585009879103845633594594910773174208441423720114964200693025837091986804489230157149119983904483022149684444944322901090490399766405087360322645405776127855654009549388951074206520575327809965280878850959013439002743876079352560142987407077527681940014433982879260549467548515703201391493336654213226768326519688128042457454249056294879849174031782130289766170257103693468396111311731205178112890506183776898549702771252463743420490526991583913996893296990003841294077702485011329175901518805293714799347575241097223238918903892429256565452652585861381641323648133413119459854642134706159456576232879393284189248780066459663217601455927843259370504848705445927050862728623395910400251902320256811381378860716616731416246328256706127600546356916549156593278822318579859887949181164678112609115857946237816578012016020476215982006737844124689575419554664151068677299523754355012166784742958532356195772499992046801452702983390075886526470702966765553836970315203231068617916112412246601601868397788779603053030639167672074751688258759824347416083757611743252453001415916612090395039059745198318325414417601543258192310601896866771830208302461819753991178920020518707215266912231552421792500067880098565228217743423904350040840499919283369823497083399662140213141863305515549436135243148777957414543955510304546237221966864925592941352959189902583646156763630408388634078428715298828610292433305420977594942001307894438445986461906908317323654249278689854833638900755233061616101231607705384575397666697751531143211056305724811724707100386822158368225639337793537143616997029246934741830975183436097741648930501275088742711801662968260539759664753761490483038929447802016011057073100236678462860175417772455418482812504703468081108771847918043376595230681116246089996388060998354832483291582642977203947277413870457410589098295909715823034118721154491360597855926302414767965096976697014996742515037771379603259085010514455735043468325369158956248565274970570570400250436340353346688937927870141682282620722908521518426258433694014933175900233408979275458116217261610584990132649882798714504664676816115903911945458092556543421893648397686532738217470967075216860760528697321862550568895606380901413085454240411118692778759110523182340931629514542544489592906077356514661249927278306592607999909781417670712466196181644608197240230990817454635847603430937724559646894633494413219069407790269597607483812212749080031340812853874222960811844223593027045391689313075480400593600300547586597258635962289079982969520359891069735318183055150447415452127009194433084081846697350168583007172981461333605462686354417297527091942573456900011072939063561958111075761601454706439984703653700926746252268011942944631694262728857831197693371484874795328357986378345291221198312554235304649761073195629437504383484799758583776739329260274797327826638492126655384647505479159130847078099917022175468455050630523192744715919220836088357468646343529019458744889737550102252443851487429214420171616120493086114736518272420011107320968734103772837690898688699808937340967634507025566891861999275704076210031748750582272269010580295476699913625107938187865221172114815344047467453999372844195654403135800138267176298019674488347421784802862666458944514601139311499241594431308234178187864123492746418411739279329850296211826589577155880153808506890909327123753575920171445528751053681615224548234916901789617653499388151974928713632300737316590970425201009724332827285956909189139184229322500560606467796385426606876156963347014557499689608568873547617982448319482517919298824448845765430526877033604513501840414150046377619341214894557951133484021660913967677503704938907915708332784698579856008754340056138114369085397294893158134122413132808835051242564890170274108689748076156438972347430570085019716786141967711135162089879845185370290983797926456005169576795374877672098067276810292570351017847896214758572852275783225916600906745531346507510273554797539745544028950234207000347787154616153064982861798234251179955799098522172816396464037164099609694123794121574831796775304892074688189947133929004930156817631539574481854866355378851502716323968700440959431485919214767052907802613337707334593237660363170537020810629944572049854871621553356491422413078958326301909858211350134515182359981383968920949316238949006970053716317936524417823444662977427732616542864267224305678760083110729751126405196758284214001607023711083704296733801902404921115662530376656015891062754702364726462039977367247788814592173923227188540061859603777364989774326630863197319400702119775375221111241702459054578480599046718411017989517047826475673430751799575691110291993478269479605335444893036449138056850626761825869795816550054822216867328973014924967711778196226782772190207181772713561605459516004350982781241294104113669332149629635514166001303592565216395820744324837993574629722763822463694646654101004754519437553532526818492114525433461233737446527715949694227815158450275330377201386847332777270366295531740933316143867364388391617870905744491303073453347375537375627634417744267830783180041749323030758187921915346241940707921249220199194478803402650414300194709793055909899358677270340991961614156697082444668825986563301106231342447236082920681668392544182481345219668494398831762303345436957541293737425248002175420166717496315477171705672673418073658325664860100694109580682071874358823839796885072925856984401946171113365751720107786413415282280063444992953855489109754321771177854796199422738005441147007088821589159639648365292701349816302548196045675001580555337344643442543741235684052701585237564626320658426104506590756484024358821170162304863872999591089553673411700740601956171983853970682020147275849266085868285790094324532583045522744390865916455914524877340527234462310519265691889018374167834590623113555649719971713947855260150270664811499072948278585796034678951562102326522362310723688691401079981069908379487927417772708910841648037757521824226317926453706734415739845458839004695234498109945931950641751071805570044281251834165736174160400289937700904428919821324234496449808482993724436009441856455269304507177084442221768348969662282990761079077984761706748219133913737577647438953696074478517889608431515136944223991247536100974312221998237692164802334347683046550491025512673600786523601767260471537075727649311949371263016125577535067331135326625510166958322795930708912666507518357481807663363497535330030531030720060379034324598402302399934790507262164515709538218790497365766306373795243242990919130961924867519277469772760978464354147031664191645801135909165044066863439185575581535026697700050763043489860588484279365358792125795763230638437047612490331376140314631516298061720147658382509433406323394824227807329644328219365636751427713658174343897228435575248276259029895108990414283245389427922200095437801328398520030246890836027656630204143082076455563285578340805005670705798897839116276121559953676538963360955505317658572681623683687267342471426359162522526656552364033468578892957536001197324933756669227199863566685885930160072063089790452316468736715651382072250734792900470187905671350132065122917927070498511621022906946011913312474992798677682009376004652041238606651991693260817373426138015237104067702862642134824892432913838933030690875006741216484253283763370178583068610231798043969987715948763205815224762829229085796935830518427438838070444661749210301386654232350784417436613981502405767915021035698390189824618725388059025654943083301774107351838821451929734775102844336277864300742314756403164985539449482578751797079156943504812975688480807498097668167770661674516692629690694996055352699878918904239981541125437212574005160252516003542876269069999664545704862269636632527789695664152952367005322956026698356849255778281483589256649498589893511542859071579644946847413468561615260012184166880716794556348761063143582870048450995465892178713367466998575680779491266284225065787390923710473644462828618840600944447450210574049042641017558239186412411508068628309250636489649835295239266423118031794388338930273318845592676745790979775260339057117943244555556619744179817588039937103665652782108944928324309935118043343224094763349607185291289804867940291832430100600726942857502307918322644988304249265244812895025814588601900795610302118044935519027528868386384710751495819112198717006825576694730076936942047187965585266635248994087527854065614395713654394115695509234721639164430369419083475650305381607342090569132046659058339461110078025768614821159367398790775886871638635460812575851324846483789366296368772723663452237368956903020584290935385908605443860706290981145713177518912348653949602486457429751265319809287048506996417068829476728389501725926841297008947679309300919950631834699555981466506675030341791285789888311709219504217109981144523208335726435907234581294975511835238641639290835736967000314515688372940019411049549327870130223821783321340543312626215015005275813887983725172812884444858667975708203738456215686576812734938555402486709558555265559455369111446127713545120982546957100689799273297342838740096845652666318973738315590164914718010235131907071869286775846348880110035067789043943978083214182372567650344682822412242512148770038301467355290051093933301631985542690686508153833282743393486268430412298613519525708276010045923237159133188950780670181826536666714725879584439038839620772884735677941992645083707346941744466738655218985376948278218027211043408193465326295933651617367896378239914499445249019101436661412034423494960487446615762425969974745164449691276778943664564819061697249011541301829021997050300816505317291555128526740837203463521501406678348008007839550655289734128206165451554911202768646232957123064530151951091041751414772654798569570096412419748087559404863600773007014158271608872241107894881412595780034758547481840397288732830549187101713569250295056450889136092962409434680506856009592200296626860765967871041365918369695570011578210605661314533759073894488755736470525777997113287675750914503586169160556085814028860713217277249254024163456006720484815483129645065972848220914732991540962597149604165333644747852105039460080366828244551955950826966609275411353015336299869341361106719113891500428581177641810904759578442521725540503968813845195201365098494763187310516137020803856427992521027656013975124994173440341580173320953518226940746605591829101048968163034968904937363171101494305864003865095390479958037634734121761028585761635507947881391927666288115726339998646860056903801480744807796853705171467098930083381039932051018739359244807190800210449953259761543021404656590959095778755958021983359556248862877741778168053335926839140011549113587179596527564537702164291727652859378668950663759340519016469249176228570652465755509920113078996183233237993600602010285179395613300431077112363700295752086294518017658478495212343144350639164823941393318527198273998966055512563821299625008104651952195560793503498424502591817567537995321127488794606876250709328677758084123375806465982434401180068094595274596029685218526572967988487754378981039592945860586915487449200949753673238863257863987875147036531735771518632641379461043587023999812228683213715239250191934496069558776250250183578109510874140528912276048619753432498289536183983372285989694334666677058122893637257001072109557039281307971165411882628234618637420726958121600733174241455166149154526680514708237962277135675592388973660699931538699042986747388377631653820360802978065495506208452693599669292648133599904366967001857463953345835153933537272010518359294477954099244914351780770038414706242155874642084037388358858134784554604337835874655311576123180494996553686521281602794015401476271245037890190380798166277184857202060145323852182328513546502119075803866622649116739459419456120559365421226600573440789651699723485267073568016432731297928845806628903765384441991661840495924463291559568463782889076384393272823081522603790334881889813145873652256728669201502822541624462096980168635765739913180630094822091209814313147649523818383746967281856073669755829535887923374015476096525502473406635849852713330517939478936568368791250555343821481491429025477674954114451212789597464563646367668621462772161960921691862363381699266617127456795947982910578846079115124257511574712570102924002385592028532201382642162264958675486692136585994379673545546538539800953458751254794376175823942269184797313402838296000247898631490986669371407662301109816754046038076000279202509854473170161753578105267936695412563189872261799999437929978162257283622663627308423942178938857546302540773875773802427689180254756878919550177817366556997819246242154806058726960734766176615177989227529135034810615022343516163498023592038938277069857147569167244881395065230456720350940961442778398837575485848269364429458367544755299033927754629695267559048209573848078535948370286784007267360681697195713244362575022429795604197132613047621497317007584132579301750822231927267251352985728244772803730840361620138976266768909835454194560651673072373948490988276301768770581094552550960150472111782337772057864007368357143001294172007068438277263841611804714656654522276832873174609559205303728269195854053849632483968630616083024808036233667402642829793404919106979681216143698705573415665878319593537082607506179845206333493968120636315596322811370499491184604556094291633863117470659680035706043680059175186148286666009918188676319056445895173543563339767146508441675665899149679313987904372032620825666557684342134613837011022478005965768158664836751139797101279856839611463965530237787514787327292176155241911469055819202531813360478131065916068151211347334833478051246636680260407065968273262795013119824789591671831152174132737553617244280219878946674829805131901638560630736755586586365209704447932550771066846521743567088668935620622263076997307560182369476194523548183470120391403732930606331008265649886702361629081961738941162492000736774082049361389230104536070804402938953768669723624903988185687139761557339288240043488008529981724789042954752596191665050584672990589978924084468108513380554747866593745776007552483925382879638624315195992392906811279202332146099818910011997388952933681298250907542027829023271096205232593712034522524093256265004337378914141791522186077197743288584698231319825160055521181546298858400251199170102474241051570324020375634974896907243838165279706193552345787318143233208276140827061018201351518696644926293410497972140218022885283330218089640484102357049081456836035766421231594931783184153853137036232626513622492242960000771929035116650938900832913586757606912968941494018164660853934434806905556821529570809994509287153432390060172321116469261790278658606679762431840539671136754653491516965634670940749477806819667147248169217509666053294635927307532484130362733953483162007489456697647219758391791150070341206697420190319414261349349878851604126233097124286504165890801187481664050480150660138956069892087034956544770642162325994819918372886988057384803537013568112499077639568056543061748205233902999240236999084784178203291197508768258850368187912943901138388661962390757792810489068182501979137205403647021289827325408929175810341266058794118963409280365021477354596744066030881392631792770736405300439858857136102850495783985972747665863463475540095450479283776001093344352856376827872425297179267937413114166073027289336093535330054661974866695855282611753717769000079783720731192279012561272722330029255106294025157888171154789725945506490087556623976559301268286921900417708411188376948188808778750122552308385681074645674255951062672492829411490813629476733367296263767628840183483069296930117450646529257668680825644251985381279830351928790740288040375582551729780906853606146426881229728919491930200269788620782431045759875832743917687390434263370816472494392696323974398301356177115621394849129410701586359392211736897330602200877117466876469857917196114360928911230210940903742457396745412840397973203170997145849512171542694205856515011059085425033023710763343489593454008871946295328139161361490216789824526991766269263895699469426226023199794134579834954012799450319488218389217123102464920137001497815149103551285789167128461671788504517067423741054808636997593381773515732035639436860124954581889616289798917031661257343923536727287344003778736416262046531251768070476627733021390729161503555937819078522226589828645722266742503063576263109906750056408981390986206686168543166461201598344963363550495706174859792577779712439303870531062317059274160072793114798642488481115753229164168449889022081879304030938202518056209868037451334683686904820658265968725450177654263343622845662843543806436619952452070065066039582881514377225872259739735488416254890659100657932623241870331539660058617265508022134390613361579830928023129332941985148853572209365429708684159003607910038894549133332419106310022446993451741765862520848040211189087617289425305188154026588320023130848325061812381389581353604290198980486875557726556783223480883649956578907575541089802624548646807285750393023201211710223478587810231482893496725550656490090314885786893370025165565719072562679453078713477286560866568088200891144196255051842029440366863058752076078660639864823296507737452563320036417467943739393094435788133681744820527872392306864678318009852055388264343071961860645971840869289103494928126021673813030672433240318621741604932593732015396113535514197003132542917543013699626870054405273962181517684796023033258953820399658797464821685256018448261973195714418295863724531266309391995359674931095635048164053204059756126616065630355992460538485819505829186886896232512030275831812312125346211714929258541526777060726144794163293361036135594213772720568230984127977007757852042280022350640490663895940667642094855463465023081535106558214508791072947828520408669210209324758493009747542766902101642353344159725809356545516560789975805630813654312576123986361937326826462824348527068210994889395402184515418533719569749262798213131480989473274001581469364920835122852467960088024209300830011477694496221949583333001680209245947373242572705867314810560638203960856842126455267254682943625934394522604914720970455722494652337928431233791231560051753135457352010936921410354131631080339224958607899721878009709352591272418666480899707381096720646634373515805869131223915929549219113104352995422013051484912152754043539574924310763256176708295569074835910673662921569579335633201815898048054604204717258634187512313203100915491286753614835789676294055698548794623989238013129645120205000849070778925096098801256786174925718616075682816775295443747301940722187250798644774611899351788004396972802147595102439984948078743665751710950413566609834914663484289188089722822672384154295861140408368964195231574637754658662660545269476078358440963166469154563868804593218502632273695510259454922145400482109359132012147711332816838206658245665457586623208844556253934522429520263337898160684930955215460700951638999295779758449827477465890524375605708721989142541181461706222278018311563057372905308522243472275863864649844178715267680201601732307797516937098449213833348302551843686735984060687882073947171432043855784933425092767790566300666695930029293279973133678709787258577434162423336747726719587968155490534794876378994807671778333866495475487954073728344622096861066358148900341028003927533371388579841782259310697677966949903894550222477811797321307132693688012673546080366216750338930750199173182573467365394441238141946229078626038995283979381341363533495535008099940339440847862508653071652210627731190202246288116764406847504965175449542987717197576186246391369410079926547374542888677729692889718259524029940614502481925424668506576643099506257387088033164118795927594636439328730411144628235398908725591149528905296642952716420788452670866191770761533155805569987375235323958242106766093192101798383870668803639613266012805657974304896300609707085943070386046566540280005747088699095654515771465653446404699801435465038654416271928943780626185971962735878562497733279356027903538316377669788838913271992671774780084951148678917574615998140378745102524966231741620288813059044550911604309173164561902176445760225897489879287349649363123125011988964915707856339760540285396728817132465794203865453869114544446360184331926427070466081930762222270974257109999387863414328357185794700546607397820184460019028648324558317956869061896991548589835812810831888617316761735787900019105296043930730824081814092779181584695372248705458748890196087204637753607665980890294124508089521867419588291570094423945535811814947216939102333266192132933336010997584849673867209201252705370922292473191944921145167386447749110190058532448918239829171258278695419774195810602063449930028963287692783461547517582492236028136621347465728590441810458462214206120696989779795447625152558190058240018810543110068423704720725553507846308114926018336195979867303182352118399136479483509957121568235230671775410419826808424792085300631637065729594527001245826209218301165964832745930122682747955665032938958301551296705129640705643760419864149583185787820570021777669667303512414876077708131713027907702103294392040080331475696530435694191746440768972721960642331949218196734799645176685900285518849995492542452694431598982882848421574538415783755883482138490749582663956815652622021300768916384938733789492341956988604180127122722884904216846467350366723850350018340068573915765626925750266731055838600351192799917074531900251894370338924350558724407570639624636231291974344707843052127486748160446711806794642217451644454113567008201886915841935109346802376692084173774379797988041460530915193705764754378262830656591530315405844799044402984096530460448337499145326167068985559950767556557038877425224363414959650740819465327216025981110965366153848762186487093837247379083055443390210547269942579265084098697564737830081503828864303487174514876796516518352376923266544418585349347955001971934095207852582614180526832155526277623334959196316790813257595631632207380232214729378666882767631606822842443401470238549163980356290265865870644953639517771997869301956485830499453261593843825629337496224406626682713901538083861592274786269453795022805363000390361378075979910976555683681154887706082014722543950559042243642049953403255710196798981005455717334479387386996966285715727488772601833692574864006820800009404425547386132766342334633885739633948401959583047158946586189023323221605338149777004076266081044414702088618491540770180582963616148552872302795118500107330699196046214758665095488292574172560548012966518537058310859082516799936874079768708325502663066889150424409890766229409296346054905059779250066250243711713790401937652569223372724209738606324847018383710165496388030330362768430687873215603670837276788647837273408673722318217157465950097565842080609274555160629628691491775257725604940528308214987072595808526045627302761783910595720502658273196622056356709333144747175113405351461373371988268855543722094983689796279226672538143556348605678321202622388120374268866547745734195756564282274127811802240794140336368173005083099329468340646226035158506978625562943742317629934201151998558268771267107056550714871459069631475605888684208563653411802527962938862877921841415245194229170864063744316317429010396995096647113190892169493516590095489607486392801529160759034058905032048957671603240877131472565238900950272976828367966610456026153612032570647075046928872394452299564344254153457181540676772108299084884266251930940516468599244324064680789766860182312972256083393507436731800648393301742522970216146572385193647236908328101293476629174056691287897464721468631103941247077430390873767186783479887157282839666808862317647686120731369261199137592115429328605290715189845793790987869933597496100267313376391948151589763433433954990202206289155060085631809378436639147087796251473063365369944849815157423835614072677109439646484118589152014488749862667117216811156213424669467758466285577179147473682605790782585979187432917851799501710883351864565630428292280343561617576155961222132937834536542649170300935596829830200601956897869475414626109840618382558115247653906474030911796751336549465086230051526952648046646513655937224473369552362560021920614400612651772874454313628485731248904773588493892122058902377713461039801887130750011204327474313141334214979242337162832750490689927250542899333836956014122015266165086027797458433308817825864508808019155055246777475815212889868821428241597715964465925884258104501407822611134488281385349086013221522035301591790830824563864576226524783130782465724815357953110366144891711851604642869573116570092074773936322087073694850215931623735304067721714718166114455008609981128694275071165743800578989513529172746008379713721094625176642685898415435968801602364780428160920523856567929087219759245887679394777645216344631313682438684684556542342680303124397089008510556185976717931188015729325497088049095053792417932726302696351293612931023832607870201459600361629484590998353732632234674082839379895028924636818186960221205834753794377589361982571192093284292535174086918863257525110780904603820393822908858983580011809314577567500198582804525479861655567071622684085754991060062877550559008760810885240502334574945674815344140184875929258221957808622010582306152289967860468042722900142245355880560305157998549391623178482461895300229260538477913040554301688724545928761706168809921341481876058621879585221258065984452677315060174585154002982740186554742669850673430953401705722756221606787174921018482588780009978164687484958097805260660274963206236828711907818688442956241699169082527774071780983450007881689878428376396859950817559806549737398666443226445468761898883462818324279173960777859884478845611007309701651791843663037458002223980825563988931229996213783025454502581960397326336143450247841592037567466367456289402594124545968103587938373731319670333675524000552742406422169243134069150818770975588084009016862021655022985508298647187963812193881994034346175225397452428239360393745748315441428935239003744609974191698485527799488177865434465522545667792860610132100176517917287586659549357875074635989052922993723457083640291946544074764237041540210154227992136670069743911031024664151460572269699844790347498114971457709409348663520989229349518894899655803964992446155914967182910852805248739074812612025931784691568342653548520002039546242487435983637083705770298905429629380951387215792909679499055389017370146839589622493453770140556978498481677441158070995376606256246916117203745821263328794295276063524629629662247796645365206709561543567950391200486950947940566278902557370417752273455122360886735249114355631447536643617387743719745318041103237361784089805174247106285610503200416303899355629456558227999002724220836437598110447003304183532890020588181887072157795950413111218438415087937049319203882518580050274636555056177542301702621662342941756792211929465091836810806506205930252036660274842526715541127023061788234466834085022629915084397956212334746235692690939180608313561255350257200848122836354959515689195880669514361020257881463255070937626830428589485368325675770315544388358077593099024512419928442328618636992149477135408850639185205766741675338648711479678200947399845401349157842474227421401035288813739228502330436009081509669862024530251519238118441674509069678326266739647360172413288763669030289300934176878824223123890764771859107173055564919192928589855002062961007238130346744646418979228030197106350721550789704885227090555158181375414630472484572227968759873111427412541094018788885721518051541947865272930754726629408618173514458386164893166616321693224957531447798259235477281435155417144551769416815798682191713687268057090435751592682953572069750246181876783343210125542794572976588504626390634621611817928464253513867280734782791123761552358198961494004982611850488975010088746047736738802566191159232813156786982792639756781907837746963358234835922802803609032820861864178641071409383186867821075998772500293772220327498653661953263474754073643075978545902277159588361218924330801974609140836121020404821074785093280386586025383403316886051835358741128187872176946206985319999605353146491037869101468625433977015603811812214512708938261660429828870364694789705223438721758631499218622003878689561856817761544904046353337125756717015141770847437365624464820132186256938006630040312401758095995128702863484489115875991655285784128163399707880698615455502354888235051700530548842744831601984769384410637423003156838811740516846553571725151778613007306180270964210206724857154897106031342739096510229870827261446464314610833216458322145849452431136908871427486017757914650091029805090218397561742154065853343772645050665631325221327052282816626472117056131394065867983498650855195203897627487053879560711650431104221459922935526910048495476829812212820129405523975991110462584316935624107632676139818148502609475457646542707816953487958328508983524178154738579847243949803429443615786381731638275777527458426928639347317919459749210941935912046735856952661740363791211881357419499606979232103562927757170923154170654417998763484123099908141010716242809040775326314885460558779574132321038210419701438733548974901245709534850839648488024066637992363571392639298269335701763710970465322004339912541055475487863958210124594266116227121776758590309272430796611123359229984825526720575766933072866943268801697629884429068929798688751693722379309389499431864387112298708121679104841644724772341681657573100714389802901121164128951041380330508160442195907396741307369687409797839615008938891320475485085561449924222724733946941592036142803610094261822812224234925957895856969399610154596871565519950642880169987740674058775777064787692831291066478589179338194928360621969421488187636998511872170673566907585282578868882483502519186410373722641905539530329037897236839725855594579767043997005316400361061353568205184772877598644688330408749671720805715399480847616814669088287386144659833056486356773033427164908849236754085050687377762261646542054594137941899394912262052591257791647317478806279033638711363391030069951554855848305886059279983940081823004797919472483747136261734018843234170230258692586497988699975974590074337197537412803640750443586271439159672917997972502556384015343924382680766641950086105711613560341148541472700263518275866014561690733370589639958081360024029515551778133899965714007358819076701262560929710563558416559414912807130706229196614158656077285363975668167959753471571245442081274549189110853904965847853507198147609710873874679422007966826377107254456011470364068782234177307248783588774572253892653014773582883995037742780419389103166593032947459462423892435918000702973014736283753553898398626741497925486234156840875517558779984035195325937772753693494302595836049423789021048024058604309320033442184692362394833755412286048501892325470014516578073327846930105134852242702993697451310556364838460743444246381348817137789184595986757732921893001276865800617846125852376930874227334017566051283665624950564664390149447601412953551206774010405367656069511839761331329760646488667428295082900103393784835280677268638832421906097362572695686373702119403292528182770623806676710145411509416222787102697545431645132572923005668135348792191809503387894020210198804952973172911299963962645799397664921950787203523349458090504892306961937854441859855403776852078730326474217845887961016203290164098604160373171516258323593720958029818155545062870457666750484115470021955183920756838844464165517646504799203382769193977522256391422692697919511091730698844230864751563364190195100575680420413302173383589974906831448944919208928579906194483467660652190096749044793656252667734682778182405017584985273628389973039093267361574531822562951925633752890828106147071709875130798547650713596776801326526550986750139390448779923796041680867282938454812934133836200857322218744923804605479964486879894934938774898324865467409414723983630754234142324845768080944405916876124350333485607782952528211053035624084545421114021039997354974713310548150193755171727671768525706247410215724413894607351905052570472189207730023647502027708595382558178863801085054212425441857100007076461819807142995620087829690946284759062981716119611385333363865821123180531790386392744291673256675822581227200263508302867102188957574030159174403997607559602027306691425156600581311520456966888586299540695866589045813434331302587272046102889103837385015060344925417141434563996480467455966143651717099583590426431230988170750683633839553092845560126299782715053097325477412028544885735140798664512530913078863785172859637806929538260465099612871772279053663951233214546016816520148117315041486081453974556122627262813420009122440568851627481222173569503450624674291379293816025705531317905598642087493784486031854092342151996551209143403271940261806801713317560228710799237045653697034347494235047733785214487168506957373896840019159789226970138082931726031614568414863946275783420819714366202209424183010642106939630071646349314572198743254829672608353193521811596839488687258423601091335963194189595317245961815170647204497968266898374651449680832721798954492458785062108103879656926841442652962860264857304942546673143083369625321254559884444993398008122980629274581086665284653567792058860130461877846096496187088602347323135116310609594040678335282330489197428210847297466658817160147827994748297794747455416142744617521853433708759430405100139263577613176173037435478172546964060008581895379337815693271997828338536217199328613692809689759276951017252056450558959473726454196925923154658945547378717917350673798452917490225167400857364917859938641727677748260404446127581096500967580410791315826189059351066782441687376119124201133114029769673034316482136455054223553407615032290059356777940004269904872866285560729736511091225561581633629434802023011194146499207932187512272480413733267051220221059401006350245677352079770732127750881295094854579617703111224583694600990376168089442203576629891243553181741616548447051168741364959122944152323265975076703609441673583042784664770211225435031158348187202952187946972518260669721844478388549622183355540783014811114108822903200270519982011255675306216449231468318299746466685543566348329060081781633614913077643831891022304131227955609712984119408543972164078566731389601771295088841188736444179014677703786755120407397797833341996117013958156053661302742845499676613281264795564770957465907148466318420420432900574238838778075587362540395444263525342438319613458314282450708956509462312406247516733608015560346949720713969706445602429537605824776030861452048351703815903228814229918197082122321664958574348390675393378874908593546376755119254644990901855246312079695155399971839246058913838498832521797168863156980891099222398648653176297212404522930521319667947403916769396364718551269438071671344747853130940148194720642823033599800098778218360155087297448165347539945060088696440229737129410483077092766602692529487734284074411176207975891508947074455087211444734713710963018248227991465287386307014754552239946260702537441812837567125181962139075951098653843961339685421037693163744056784253343850508851982488081822966132616996449117240567811929292925605538334654309797967702685615452690761870161809933371715838081746076671528248871949013709286689641188902659591060986793071274670895211832207439592972043340293167372441211767303875290721788852125848137444677480499113477962893752955927212725035880525034564745156584266128417187512881112234888006898629881289366567727296119093914168593220192348439604597761887482693830611726971755391684641289210857118064358959428225833828049603327906438430824119024904193062937200001134170234051435810705065400188674043605617422466612831954710320042331279744603336765801287979644107921256153249480992555921671740262231132558788057063040668711691090148111433038240191010011482877799507159585072585816199546192736871405653666466909931744141983162040435337652711482433316895409266735516984279676614564008863440892861471498675319147153865256222060715814368985414616937831155289423736904456359033995839488477998237570801982458188209172512352649449652417847632453590119405176225522433032158079825855433451991155973610357265255911704861753471086243680611867232213935280423434485661302352472808278096852684804746968780601267928860137590198917803549045013953537538109612248128528564954773205403624764619754890127659943823181680051979836551406002456945627094099003555592081229384177451803728027098862879842831875644854936036972878460842372663073286322897543499690233844508818731001009701424424450242332613296329496357915856643287216559459833046787733244459082807775265962938373136112539302878885291479922896713740402456118231624812241472379007306800751751552160539604477310075233378938162956112006659984921759031379724483246789687336213037551553477564500655506716820311082237433197359355575154352005774951748033086273036799750076440392902262826373584394645079129791903066035838241674793740242196362093633142305386750727792750154776315443470221761861114687503382217093818746128359057678357657376487079760483003965315071367753030511543729710235624223983351762870331683014393247405906876618077868144009956509296167772582810484681158845496876896248057459366630502201487082101969495923388450954161795719041262809616819401541120091528578322421338154462692211256921957662930794545554030934771847919193086151693699985376546337218065347785628589925781991649053677881924787110465089136293506454494941396445156206089579880400486391037641342253922519692893190104735886819891152784078150365627971530193829040191416234761406681348479112935990874977026237599485410010222763336885252711164356858225150809433226357556934196737414149547098004777536748152630454094697015675477888924106018005945330842744508559523891295121455473250216701435048106460481458808830921246206290840135453511921475249954709648083768195809100447860943673395379625411990733088705770277424353155198834718772837581840153249379684438971488037747889120045586982260998999302833658005700902140940976144403261799381418318142807983940542229110826379085823181058740114790115245365303659486287467205424264950855925764694802473701498598242572895519441343080442473189504912107152825933863721503649362132061118075305360852624623528642916967870175742380671853980994146072305036399571903842830851530431367679679857674945179832694256603503992606155425338084623043056536549460479133285042363998073997743454607044398713389782230634694331491055663498634549072098655569601244851395521683330949350217081899330169959325678905212152291609139993523791896663754416325625267920754400244928421536168590210790362539967732638357166472311706908177853977520522882118576154103027020004191024159903759622088447979879367945860081709206552067843503361345664359043460563913655701254398729678972198089762672220575491858371664639144455049405586412244501990817689576915504976481471754831208186152045505718726802427961018810212198326286621511164957983642281750634087173504892140136001668737940658813691415760704346600957009159056728735611376808170793396146740233765701476671219586862656085645108129341099115830273884027777828701383846591863510388112740588482564579368025212346148482967194507900429097245723076397947430540759829504956022847804569276957809716103081526603894222071249655405574045971670483631980855772023483108489327105529417254798561306048617931161803808361958825054460429231596006446045051265668204272861192039705506007452979172122769371863261592976591130881389379590730371420849465315614127425751002324286843037913938008973945047139913778647155891913924684044531768704655907767308029183032813815897704095332980848340715738122423620119090204300937003253350952293278821803194479351481183552800737766629171336739771524410579225714012951357846860706572939560394323144293585797049503423764793855379842971102985739072610926565870393282470130510550503316699376393068493691882455357304560610014595138736576336329478302282736110715943727635264118923417858239169932438314070869944781502365276073050903376933686044975101812674857365125052463253596015748733961700083834665737523561842052614450990007344310517736818314060294794445777064309750380084905018895504481827432506815644758912661302445434921753560127154593047593588069848282773714868650558146889445904516559685334614104948770879916110260840762606385700637934889711535805366416030818371891309632836951233450292980912473722305820243254606217429759495902473866709103861966650233484890083311746524742620651891795070691621338653661919871550685721013847673891917164929034741106563346578399156065603229159019976757261267365286273692580128145628061805944001822384449976908520807738497897532426693337630462849223580014508248255047077588818471972801203351122176520178783893869454602212883650852870880676334866331083606254454468413869739941304328487837210394586973648296564817332672333484180720604138856653753748686751993461076741635658112613868093461071799650108924639043698035594207139216122836766046166313495030260697827251622154854067054644172684550239801302554170762695411884331048140363233601733344640742566801846761737665095818947449482784315718190648378844504630456602945288159877490626565388322725264591271242637454708654946405485978993163674957186139975345535008137414318961165978428714485051652663279279945228659402687740347845787170337564016954579150906059944986510608248959343227519538899125441564432253472686343410126980897278245036454200660892158000536296480291547078360816937605532398402759504172609108016411714036333136685648066505044620124480563885931599261838388213857386184089150126469247059805371758460046866307912807398940715556949268432936445650581256345589257906432591834611920387222581440789813413319853636167816927587146313706032163452503405647740707893182690056070494843403806649392644731060194134232803626383350866242507474692264277966288386219481759975372185633207816470430812725468576195966150747772840780595570243219232321894450992463603572958129318384304625371788712615678372334026881306566781058462442190613926677569119261327711687188288113778367577714802951864817496110994995902467439790757470725799554998552283471820507389543246889928981168987667678498920524682165256195253993148522946232727807326925401626041866118253525237701230488667296307641686776880343385631896784511180482758078160816199476267871529841650129272653435721535443112621794678350977375619859980290465639780035173478350590496868583200586171645951151777903634302653027859998029205113815727465049541031048656109034605219171153771420250186048177605557305222361101859352019020902526244029692238835719855020025493390958475928857339889528466671630697625660670816507697828632526154035687913959663657410879543924434179006400562568933064680825807642041626756141990751403581878353220385304480004083966516547862841906143220143434262657892216671203490025696320521343195546738215944849129840874724484853394188898210538085182830265512726414350119328845310014914402891540778725373653760329334652883409392725568685721582390151675925643269393825883152026224719618141438276561592497854314254445431634494266257848796194348903391684923962334137158304283097611871661093020267218617937607703983180697793411309075727200700046344347841193174403412977831769964110916086052863936203167340328569014039070556300707251006784186710381651666146197660232929035938415610628713160405586581089419283129050645655101620253775199250168589848006181440950433673872533263907160362405100055472078237100377883742511679244947403432760925228737211972432854601881495420915193780982787555715916860817164311239102899861535138214859818334960066594708586919584433484950718839477614042631591181593463478718080915434484323773919484151306781015794527033824717009681306300990605718639289352850684446267263801333660885254427165507049838730209072850458369879619704430070463518121124069766798980495692827073650587531651502431986679191360470893803601773555324472475350885018528308788104160596382400159120209383277418772181281819284843546539930853912951276021266900275765734671986806953412844135961959137916879642603360480162212196618959590544233547655932768801821289594878108689809983764410601307877859790801917244298009466622860432578663248032594650056126110161333918923675073691433897774508550703227803713879346996131510194288765581697486421612699666269227965379279856769003556807238192518931793478963460153221166896232461112527047063609625375526455505871856321366074582078427480169070233608504519190772147786287509670123804046881722610445865011302271412772064296296348963203582857298479912293569716888383995450647685578367144277327554720132900658539450592799576685786840335197243334752944099486203749964567499278964332189850485757662041600256977554469362458886307653584326505486235702240251722752818315297654631623672933665434822936075032881161694884196238432660977117735956817963763791039888698036365928890921404366749426774925870715597069788005077541656998562144779578042947425967795476792231492825361373956483810789523031186626249211441522483627733930054704538372438386928127727814386686468374814705748141524657051475060195706900978782888720615537221650341484524122913941329411278212077287892094233726712894195070152724977802659951876737014960302077225199526302235674564055773877952591805831967492999134807247578891570019281979231947731621166389398489775015275284167282803061241850247547015250643990366066624147873538945378367681397128726067220282526374007891811667387309513955717729996857038171630271462460752122832354255961424554175005134271674614441547055417695846413254066297984055817576013882922834904863845518812548060086425536141117569970263214428538109097354653816130937308472136672667895806233584290272991582877482204301609410956767511204690789225340606093691559073760847353900924328142258606710035994718936714525440774224432982530441470237489233347926345086421824575201195152859653580271622326362661732536147121171003914080958862999600891650288732722423994815232690558095996943086907741745440480958794441513626467385028605182852286542888440719488370967993495495485226266195565984127719313927565365715651928429788859376927770545932043340441375064186843951228851270930540088815871186971414850066492455084451043391935747725153088443462296191703785853287197789181793313733660204625730041587671934456751764864963924649162302390517877921192539471201914722336437914061325183245801078177000283076343685704888340008741759337874657945956325181265406050485753417944958386077111697821176602389974028042477487531435986524596049843611349258422697410612225591210927562578029797923114375449334932943472132389833634496495173468616305364895444802797791259749643277305909806394823980316468695755816479491252560869146848658540799383079437261548718526270049273049602816124640626255608034872976572206799546607377482887381501944221951339265306158329705677946388173241693397755987146911814355763148501138502841301024656005747529904560780651496916687586041986955741052757820431800350397259821158620337617304786267293222099219793620253210856351372681364377791806134367016792134466585263644102905766994302357599046065053262610029612484668008313990594766705568394052655916064925090920603360590063609459346970608172985843144498047090454930909252621055730681719979646560010147531145876724944402379583509275689956419353493784200333166989765734512210347339129772406607092415624662639323016978816752426942777619874701345762272681395472606474771428102581312308805808932808843650972881062541987177099138836933786429129679538659610099997718091972506503533594629004703544737279405159212819526964331585371401091514025414488076872973127717851404351050297970597447523851250067221085414200975961991440726728451207616157310539703520812368400035194237366510594162989508116846348635823103112692364914458705072854326424626134887853145630651384703607588119051104517162065937464763314479701886223158256280679892036383615691620944353976103737825642564744225215930312211957108229700667387927872318044398050576092377488581533582948599748369679832457927964362481022501047560500870063245618770964624778186058751475540056729945666864920180123252926483545037965877617757788484461108346196718886503195437670421799465700482731870433617509283437484108151370693175460196706271471559814479725782655344444354048730370699566414262958901488744780356926973121346551598704411861816698275188933871892621766283740827390560836971983285679809174763837695564896671374875331548733691403626636492689608228016661975635657872615744015947706347570267237685357411934125384762782025290519674033503279657860793540492635653066363592817174280146487251490063105467657554824267990114728118424566259412000858551605935364829146246426170975670147184754340288798722120937591543034425598820075097888757239286734100388321135572833004062294851536900500729896462613054822246059812619710960738213792706730404521021452507373122492846427711813188367259994070860368469386282073586694999388403490441680723314359307872629946191576807670430545969203161330059647470360970006044733113980248154770237246059582710016131918482321926013163215676666585622783942823427046768075811968996186789491960641106625380518346041596205097543752076356479969786556910394907612119672442929659818637074177725485171443152316127754031247858326178914096233301926721625210629207008044815116087532114019382055736794208264976459635732383283535297606707863408372407549441067825946939550334856772754348678485697896035906862905294421758514226719868641983786866269872465091353850986999907115286276173011861387614117321665654466750393482427261697842834599734574963470259722198522035827443381797334399742036877250650630444968570551903937837029572860068020527813095084216555264230223298034789760809777273805475952740315526767492159148794038832061069103748485180803612890979573324509588333345179219587323677155960805255182277385029341342464298548750939316760347977064440461980468746526953543820433359407331777875870375004926417325051320090584992981731816512933289324907918500870442581489596267100724958900513542503717681674478634478521654308370842329826918165628753334165435045703419535420982924189913503709488893270577295872951036941212858118435060249299590436025692168436047618241926104022889378446062148646320591379606237109292750511927846822018690061092334985840666798351434728025445943938866453051053713325242271215013010596942440214297767014220985939409385237346707971941416969041077377226734395532069045782347766558024027205481047838085573403289906182512458703074389035674547285068982357594496584724892769230895317362211575473908188695647269129983944691084877222089393463131686168347267445374256426766938819013833138288405847791648051332097196369069721994309208229259854613005079581326585472957392141606581832213842037591175203936181917271552216783955436781692691245779639676072877935628105793968450092810406447639490352646862646302247523415405157810571492205813191612139911483525977994228773470497987050627073083424029120355323186029587374846243654399745523697709836400421029349384625200266739056057395341523480652798556103171371213562253761512412172960040559080523182330792116126346948730200999586821369777232818608161158950066838120947041243933573125306679535637122995624418409023917142240996172470221108325060492517383027401358853459140526744132172721161708682862445088698301939830640118560911257832125438481869814372541042823740987816853216927229678620204037725414741737742982780434510449941918192671483811497483285804316979791260755420503975526565471362054189359257387309245017700473644504609797837427834337923062637482743365188064761777264868079624266292863607105625325017357052551095775346482021904366934100166914265892014937203266849654298311035488791871362432276136741916983563166194151892543543081474884310717639579920225647382411601429146565643010739516094470693288955378383762357123368912656294928168021168799759649367265164653925347605143586684638896362605767797102801919292076067038681776872535540681716034720171022574155542649399427889891003204652995950212757641172096307814110459032567589234542714133075932465880578929265253478917161192272647965256869962018227359833412506244209524573951903944271061048013569249694697740107842080748928278154120686738891804726669384921963608549854697113256442482717317674306317742160730988600096147119881984621582959548514484598115970034767714314910034030965903771767334025468188728032043910256276841666104231352248327746901795990843985628475052280460027501886616340500225902182805629901801569515964276253213732305505456414312273111143424846765983138252839421816040702347866022474880585091224328461544234704480466810773570992131356722082582323290387896651523040998846137454265889347921111865834197248236035978061788885246767528283846326439098343104257146951107871871831782814939382154631833946740824373969713078754436156030390132445403657970397115200633245656170649311198151608057783088099121958090370991018935474801080097982612262053803538411543811325046071882280692193637574490173372930378315884335626098185343584106599418108485371535075512820779294914747411923444545210340993365402775127460540040172936880622516137082137240540512637833594013244623561944567046273415160268824016976739034230801514498451046504632334188400278762568327473645348429274202899654856491629309804772488923107789795410463399905087146947765554798355072241919694016479076199366674356531740450064102904608831382842742005689570382898406054852469636700163145617717103573715755151370927088753624268552853073514769426098601079523929656833021804982017899415478348967419911281601834372120732158212277696537384386688725623684300670896003804047691369370076056968589246322203581534809878497304419061205880559719171242944900447473291105267641586515440905491818070011441626386652044439763437799812963639385212798260204954689776329092505736410053137398983826752091167340422020625917178203675184847436202474168217048736654555912650676281786748034116250773052216128893756597725313877861679190298758145503368160652513127580093864722571611312765696904657624358980616350439264704692453421842386784827482918762586159698086197974824138544319712221755083854504514452653557859736380715959217456655781432283939298126169782454312116365749795447630323150313381834063143276406960479756924015311219266433707809619877147718101793522089035727450374503625057848801052401954491745522137537526154029614865593264143041193320092418623711785327707177419287425442424990760676293226138064562373094966474750828398948572062297825035371769509506677505641142403827341031400019876008432963424541474092422873399850109587873568203445825915724855423940018280546493436345706891180107431127970594543692543709980315985093870897357498164548725690691347485820480752788253596678422337669343128148173869009052953464095447376088724503597302721089286227245022377029774156721389919231377260333373418006248109219039249458939038935230684599132345519408612816775892776837985909528508270982535613787895441215688355928857362681048237895940583777952657723358666206002141313854895026091500007388179170235651076086738269077281254368337142629593171944735447281805305977334208778322071018219414500159028160312371111073654354982614310304756353088251699740714796066492921874981320746000465678817343960937089872436752578618415464028363296853411297399890661275488526402466885440164129973386536835222532684865969039559255958454497232948956943274468372717405472225589812384668385961196511214243718558471617391724037484971499913959741706398969398376822263293567215688942629471030441536421212947829752091155456567212018684744081161982542362418823974048662567121363066333501613946449139237932426289025467924011408297046838610619406475186058440115081540296029101282109469849734896556665331819790290297147166292825457375707435803947098564061157733242714690725210859467731722458784098081490436482284696374592346373705129184365064265776526568055371352464590532117637525116824634415284986575517373237541589678128348334781497876810423492782877577269436899194760542854442690574189440876620112139138972387869133335303154866229937741714120589306508536102169565313914234090104793310284733084470762633129225126673181699349471076939027330435412909764751338741669895472026569819388218786987619134890042701717471495085199550702876412235210486572108008162928275191194212495869148507812561222960219757146571355582466152053392812425085228033724372591275232959365349549411799767545885083186105712283006133736752549169704209326371369988430758052891048559836564478548128744150945177788516192075542525506690799305908531098928477973789273600789020054701440037127369639871456881462940417385320678752853167097528186447324677819902601844076728288633838235660281511517425714394523713779462297015402943342723325720807044812607444852450222599753678059263918346193640241776307741342071478496828810079575558141154281102141990724507780303217371078864216722467513827150268292990651302499476250898781745356082204598187405593979704797710107805108133808330402182152024110758334243282758080020074699416273894391617855823365686514069183088615451871735588209946870704370136433838630722890579948795545025323629088032833394484346057732320904897854157478266438834368322665912859968115309839486027214078490512830891130809955975547456943416956091898222642385338247852092214260596976498632967886410401901229654659299913413744327535259981248404412643555681018567007088155087181631420850050705494146972058202380204368111835403127641801990685279058666222564764436718984506220811819390474380422032126619307593662790201500665316539418440914182578807712814046924491949384315155385829308186699385015168746288041571977419537964143066824438454661131400664487221811226064133350037356638371549005320114979551501478238888293864843942493597037337313206176187526067336606442911541079386332089630454398592988633899850929317590938987387025429935097988190918840455405187703427258755293068881864161743698674353389780142017897690940793307379647823415258617506024523285611358945862899795316372559025597827925066413679433795473063591312726063428372109666821375827116378067042999077456327066560138238592569218462166432631458759684298448810470992038590464547436074183360826115036896999863907242582167657424938895785919546505986942030474968035631520899459132249129522477242735755905891512343332722075186449941692706103181019495200766088344455811962516819914278411227397822448285967404590597322460288701248137096924222421593729926232746071378284304928459216557831681940278278769813082540522740336858026345049473189867534251586969296345734183400069625560078401342274289833724019485153484204466953788481771493368368290316672917840975865737671277081284254671878822438016007059959786487336957350288706593025366164093596770437487049583619712332761983489460265703619404641871415827328983529228594635233175456893214127861160404032066845558273860939468146641101107445876744039102705639474528804446041121364071869097325181729453096821446763654772925332754373564219244249804277449995434980210493062223443458329938114768275291218755176317262241231994260598636247134912023244771566836581991995535416236848319131478492986668391799562763873425197262345748632707190138437659987626326751578665214291724912357691901678699302497143219583641627952135028018766995736251576092771603868568960893540596077514993485850449757334071669645573681251418134803140679000852847757410882716925737329528741487222796825949622763989176492863745483055831919389702870203194219118106412717518632087243388867756885236449518888368978195943933934905032634984974612466965330383621261969993689755936817496663206956595311338729791526499825657757220230338249312900998474421636857167659100925665024546325040434170248271150708496351233701163456225875797178093685834957872555169075854958730751354678220327033214674889593881411351752534376275688467293693509464301458601222503396209029615579651566482595254765264803879230080648609776293190131723195761456581193677704496052772198609732035669365609174532022195081016976662802357390456354859969859290618059790049434071575853674465873808247134544695267479221803666367155645647549887651140650005278458267239414028563099350037510273163239704163575533417588968433207852705104173149678439325360201145214780378142101345247846599900767791151418623155923289317757497249013658952205679628650304202045806930307462302944263898105570316138504022725323805555333000773914104278558450687841625616879171779912103334275413213215962311322390857188013500191813466434902683956763396954166455221657045075160552535049095225553930026504088890484321594899466704703288359128689876948399991319008324617250214094135164253208668545816353093759683712831104428550314621214508635613877212420017836391514174121419475691529811493749004318288045577545537260359211920245490264080659806256937363979325969777708486919966484072361374843993195315394492214473491918608709696358176468322630365516147018498267535036699340004554354076884168547552792753763926488200867328530772594701733352742242881465687008427624387690051861957461186616108926546085379406491896829638110399665215631425309316449521331641953462704714117962868796058158183736712619986821740852192445238462046454778293058314444758201368151597195576314162990559240358870720308349970303961359454946179237532714931706370895221887417031670854317563321542139545630423140653019192650520162898873349126785354755239864408460272332716678778753477283048619561157775210509209702668209026786519819624190675721457706663331549649846149547954259341162720966316264510048485830707749624769328421562868052615558313655257067331710807406623761110123380184837396455900951126782625374207235480798501009766475164289228165522762971851333801265034853430636701845453613475998103474941836148143095720318052878971368070628399401452346533919010786212189039579462767124651014108428338025329628461249367440081216234660439407256083717208519285274129285915043132982597745789589006652375739825047611991915503254272690589111176105047135900214099849623789327425771667989403235614939816190530754852679540985219525194056839942943551372875301475579641516866739808882927300994714180144161750929415319230414426884326642616759283116165602718494937339146619280745610343969723003055835320683051105426269376994915292853087641425657535449780634896164557218134759071750059204141960705921577132847196349235093018878313446388011719451733278958595585017452891364078429941726299569091831127527424382195136131215393536516248857044645328880753291601714616573284161924672563669280888630151727521737097274510345325257940698472330978639003600297523506128684329770800449293777797672559194511879931731282180050939032160084196585779778889700856162900645718404911692406630584889649098419693343908285984598783904533716803590886580988995667479820892581493528411793240918984574319112571093812480179018447562618803805007419792203710578639091076377826651031206159765063508419004537073037195946554574001293805337115091784086078222094718556606090963115070842406797662758675922845485281088327754929224752121799938168575496458440426328177408875847804322137322999383733753137931041602948594765620281383725106342724670093597933447971310500539052115350385734619080277404864619670628854829854850004960551729829352561941893381054873079770499545270066558444210881713703939655942940787389595116709475124545337681135980549614055990258090002848380007641520031285509835149951520299959222217513425909346073649588082074502248847756219840856852600312956955517012789571891600373548973793135571360445829168865271422012766344825264651949965212982909070386566581819540958462652201140869118712727142735106423834291295959738491275129522643538268244438498223697255550197403342342566874549330003343006574181157193111838180797139152807786646010620973869674761050442760035924031497615148428708186271265201162232922846174113279886311747259962395539251512455217506033197667968461135262440668645178494999477101795767909926990778223033121051810198413612387315635474855012248317065382437726393296706513388560917612925220390046021722323192007783849606143857249144216246211746246834814116722995218000769453173407388336408498957794619730551355888651476151204777002926125160427111273890459934750652096788404545273360769058862295554571843384253828147117077951685772919191287701028852933330905619714354922160377342968678116145189547600774503313992444839333785811616837820689062524943641879666497617314890368303230687535156548741597067341959731155781176363910414068554565626489168758767487189216467327979333549098167598163514248124155633523005972483118506921918246045093972960254850445146157364179290566401958818346900747452635981393689554827626693561253963513353233875535460252549215741294485498563151855212125294925626820601659525445563601457871687149177262471960441880831047584156871515570276080845315035725659252883412102918383145156620794585366986176786862512079369150469254573531276997613893501113942930154797106483166060727446631051560798421692676638638124223352418709348539320849506424774762812722935463190625947420234298305649538148156213233878735018252529960909650422226346021114519554662664938063381838342404208096535848256910852317368195684568745924304539748672295305283164663473310546629565874802986353397309536348439500965429846638001842867513597716106481352464234726074436015510283849528530342900648105510317321249873742469541679365281756498186557416181635153793034295801837590862328150370927323416210506606718474006635061442729729777046866597993795941106498984362883522897300576483850587046213800016745795540525651559308973714006242447032392660330197368991195614582663425362866912816495002350288605709766080638194081602858920804689850716844940554176479232418438173930624229336001394377497215329584098503219250504574159819865328072134983809770221633516408686065179723052486338161324778747085461400184655652618716529013498110071119781971208072816498086530670786477824811427615222604950514420184492818440282025187366833863743572494005240275074688427432501152852529876091028904283215868627967256560017045617766204416682872356525374469694169283342191637937176953813183158867517806943003382317995731093950567963347161093692245894207281036486620097674689025625930567642800150721105459112168101665503156766528638394203286781164681219467932305962978635973904870248971376742632877971796722245344944258540893822804107830270519999394322817545991744063815344093106767413968177686121579031602304811576023001975258203455802327898539670713237542600149781107128364353508545502077717386846358787943195545342622643996322052488675844602059505767148831075753392209778839462775299640876819864044325080321699797839832187286246218063308533472590466657341253964331855902334661140840264725866309350598667199044228180176960369268407039197705076475624397810558325569172506882977367488356971700954894655400419104787106064062880358511110411888966764774286117319656773259767312481301362532446113343259804601108603416208101516540642325384179716873355157132009907250688283255652092134847062406963080515930643858781055903647156112399837151460637078005551740665029179502991790625931035445921017670421947082120343323627805128699267122506789393638733049829434283912574833634896114716671847029383059330903348660038994646498063199759180467723711166447223887345378425750366648887983002402772864846613686336982077023281536505484265712635730956255203158753076878420422387933121657329564051784010259425645073890378829298666972479662032182176417635263135035217742635058967039866652457846253327193874877499266304598428027952977089043178307621621902678243444917321839840542552471280312706469171248802194740560461187202030609058734298162292059125571225675380278014822653661546709135316285487761070705559583828012620842177308476287749030819578116239130417984309572015577164553419586908786169857415827039234166940583128405041637429338405759410074854947892371214555705977761667562560737943496159464985284187198580443053558829990649847222548397497026993531771406467336009827530701846222057958451766273047892694248480788450508722705154111798291858901226766902370387796654799923633803035541046748167603304953690945294642233277660795615265215782964175948941225968881802684880774866734981210068466941827247958056394113387509867465991083999839325611138879720087989113792152630408942487854438928718648020168554914490467120720943172914332254962182638394592948867519494878246041794574244266194534473834987008680989706917640859319937861304141706199437000664098323604773587062337476727442908228951016175040320941355189552989415356199029412927113370208724753908917360165484840015437269588531883533330532809986749510907159950506769461354621389362600125787050405213102119454938264986959741007062905961798725165977585784550658622728727104787334945247516637975456956387138796936532663348951852139787494287372442509885317295037773115600890503477462604424998636521581543547387835325363988003716871764958675610576655851315753515381851808443040940066850592687135839056929482106676022820466950253044448130447227148497492215301124647635538203977496660729996360979612948107146623746274795505856182498513964958055368140385218927033364825119509130560365386521885703448794166076546659250699726176206045719699266945042272643786680401820743580765654480293260579774299473255354389344078668292045206947162082363917920960400813725106359819378158976727037373756267393658621498663232426494908414067081806266877865251427639222223271816313166930125001492922808906171534368875250484497302827132140991716583772232303851234965993136673047495268556865843618454940904624838459360996656045405217994721878346819992102186553029710735658922650935965241046848225997063728146331964391843086186821742518385973830112240088087064898664253215732642130659411038453940830899514093888674418797997067594830103299468979833621111964132433035679183059922971171898148381650107091117495853209336325772381380475961475067472286467917805253598324025219553953733858648701371767269881943988191485455370140609629700465903723197602312893061672044628147512042864351472037009524606927568264766316081243328739931359672646819341158473663616913137475189586381525662981231713372393003741106994540495220949168054375715744591308118369945690001211546384590241870328996333971139096850567776276851203929706253719178720748693721611496449858880180289931928943896201431932947997613795309314086090455836861073024860807369739680835076122627429463217776697236216309157769632805048449287669541981834767658102899593929074532909677813325716662916783207317647392047942173201601211874771069930241802994750619334657129536671715939607476203980569191028742316862982781787953345059925419338946898384646442063639033935326527014990896825704837473988549331874590277574177626126934633730596417951888842168759628359846933852960156392458605944482271787137289327397430382885195721962838358658236954661560073102665084768138311342541576170884624486019390310285270506058720390543966551118029677383051527567331539887038839130478738326477959765773846794671574920258259573312234436543240548888455516952835758431715914986782175302085357526594799834793648814939055643558108311052036126667707649268975607394401972197504693452767209562362824441161374155223930244665399779787372141717706664858472977841131240558017564197582253836599510494686647206160124451581374409701637718210478624765946423766779715362825029153124003776352224166678565663513211230627010010868253694069134087815203836323644659754578270232709754479347739199202057074881340710427861287088426020978451377368443206515682437048688747288994388282674105700179077704159716545426831635813911471357475282900670438325627770638406055760769326408265577052500332257726714129329397022905967147423861883600450239131784705994366088966836551686499233930805385975622591308020129554521413808738516850065334105969129452808185794997572991073689275276485564247950989577023211354605420630279509288778411115702265897166446643679366384898612345010785404864670405258640583719479026125562157286325714203258235162799999468394612196019223176756947939912148081164001139336066414406686172208243011664422520837627427928739512901538987794383299761734173948079890863768390377079689385421863008306437746767192785911290990071324410461385401247958092115255761487078130789340208812859832712047511233546037014355288712496884229657198197565981284527564639871348923225622761273665810812807989700029750146535762212437043263509040176972632189456368386819578940736180330332087031390954743963646719670977002531159297706693939645978055249481346498957669969758464938221451564774126181751031806046738069957044476278100081567442397535077471354613838749652689398291509936484560072464377447121816931050028926539370568672653846354190506572736190914841827570229740173646353125685652196084005631269964313050097146835347369222117936758952034633047482896986653163603174679556954581233005209330117621227319720805380109477658483775022585518820466878188299057527152931404642291849792994370513852298121154196557650552727805688298415881577080740857314844136239693189328438846074955335849130182437829096300149139947122103633508910055619770495722134981406237371737343046837639906461030890375923186657458687343027817991767506877649314761291587972984659949226672126754416888264093320756462607365655045658061786800429467566454644332769647498226788740347160236877823682663866998125106155864796440027853759396854779296661304691381854357137791961056591722290421650076509062391157406524578812292257516518895175895435543712566810280793522158126667479255604303164628341844760634673519366006099997140482950147490832814986484741329803662858627200101366330249007817605553911602282967590787852570952188545402368727133480353577160233367594960050158984534176053009638524400451115468471970741594370449138267201451819482944054338455210278321161586715864771836315900808935175094881330140168694151673661816657362655558901230785691832980612327039278256694282598173361863333836306410729542505003920775783863589612922857277865975609749206574261854044164708881397443061476477062645838148028250608215729979177774155928033157466395799571183145298430563374530632185503205707319221118133696998450488772813950488843662321230907677913378806533966664517446676405504673113679961105953130808605812840956921966320012161693813960718132096186645582448632611107211436897179956552472340327337513336325125986608271391584652404028425104627749567578329942623011743260723104026434486161217157891755074460888129941155622251834711551067946929833398337216075912904221019251361609614834730300128802150169401717336916978535455407483300795940621254080626800949092438375596908406935539747891909486998842457194747838874777784617799130370033588452590014433573907139554890329976056952583694568441080874432992650723062378336966515753900826306749384297952377623249080655206255625008412952240239904333465818975832535364073291179134782854420365913786137194267209702518925363461939911719223642910088520010469455444209049532257049005284353438139316770182685331159341033402407650017155538427388726200297404034503085516143059227552767407055602760964388159303906070412319613475127306449994144028291365992413184568731991832165381199799693774596389176347065942725179030409374990990293642665491927793872726288026663475573482902125349084530515240724416415077579187452270020153947025511133326365825025659668341164722585533513267874678494909368578936335625572919087252143185790577640439676067838478406015324014944218539193083601657521643994963671205377707069395185051929289423218824279216445993124604040551006370555327780777075208785340527151934699373757172532420759203707004570807248097905960054532157850325565933906821322093282019061174492325689035749177612115766610406396010948515240427937575064000378782972791469628264274830294255325858923212742486276429625946498124741777741230612321076273516617434241819578526769117123811573864601657936767500482336895847889084823687667510570473061789466942998221042110461058176273001408626667712231004468928671919116138318794105578682204896340683411566713838822668157206380127534176809882920446256097212109872249387124245457954403938755833555300707555141872562650568115868688922581720438219173725789122615365963704696983021456524313170808580606558886285749448114420762390554949553216963696336683708402439455755895525985034546578430353769060946351012776773015122211489916452421896345481462794149552555318051554582670111482531908716877515767309289460101721197467012448756132701377123502923383538120552189770536168131772288085128314532826172516300327889752268791858755491088528776148769468514310512587575517594029741607692997384069760778963409344407704030570157118809244242811888080585342344299713559603724004527399886369419252166879694073151270833843398644586203228959731637257833706838287601822356048665742545724033710134805544069469346703628901999002186919911759080232894894867131841167881710649398298007545660906112840933765234322364205490106270620052560668777433255021369798476321774219203883443652851758381122464017022297181775745749254117589599470081216585598454600842778735555253239348878739757737873897866951544812329241168873438308652546936575909318585238905120464283749134850373162983704808955684624081428861225305616155815469031427993733212406267870934427041715180633667396099097346949217804956759255255778027505798313552004698670779593767123166376105985974081055364344343249159946339397237930817301351165895573804896087558403105960942900826210079978952905284423858561360247345929859983200448896617100035057100601468684475850347950729984419712067457203596113319235850812729421986539339477916987283680945495281436202478222201510777746587077370565661227070397827577010573513957993113161431712365246028639162842150547889608067990421472732602904279804967471309243919913828808207943987294906036582338529550020393977505135986086954492469326348922446054667044569164335086453753707249425165226802509197408504081309286102038697626774676722383666897725104639087691913411820625211637768319278490815792322795014170321765936419874163925728924471948369144334474448770174515968827820917137408414661991093449749773843223515911550965470885496397304412328760001358421252015727950885827346789366162714212128581049333230002462578673949903920309922081976985193382806168625660601630422390588011738119566706651180927745347489889978375489875257938065708954857327920309395262292390877457700261635383307251883592035858380828643299221088795361289799241924146545420645300002344502656403263342250381220189492982314952706813950446616341041941502290157213688546763693401349328017513502065287893968079326809859559624240030904464444124296991022857232266823916085082556893692740432583451585400049400284142619259256288032733002817634116993555503754390679164928557447956225565976185767232647449099002069032793257503062585703171581450858793453075603004745828192489045318771751738907543554051932229936704837473361412984415209887228069537886290816343207230098838122464110908618842655759829550633881407857932689646508917609566538005741899556020183718587923695928977508817246506730909174289943118922100982284838465652958629500478463245712002155063736788993223747172643910953468937430071875867382948283554540215137579230048020226788711481797407519951614312175943551222750260953673025393285856008885724923998242145874573074119284639003927675590943556964646038280632488904825014513545281160617683185056906665018621145609342029054248450780397703844763893906671443649716961520199627283015566340181784585055365407600721438806610816409168889162725689010360236475777108467483496673800363569456213663519033604246110166357323102443631926643986743265314087361375497561817625160006384861216327666710185234232928432595128464523225404702762139524980827607092288279695863409192691190333590729332095977474799379716686553826114946713764105710474328564397784568857445053060185032706016916226123900391853282660459543035218138969278259164748083306661720872725049434308130774371967786083418672588321368688746126206427992088478072692321016427355731452697121196593285706426182384177901209440521253683881751118116386191740466223170712999613011774240594327969529901456772861644967071038674031431924846731265551090073265655421942837309470187420280549228037121460999991741429907437447035831813643039776132391416490678907842454974323683925478423836121204729453875352779590925566374639226791462961921956106394768086101407783353191231469618361708919839947278276015874789639688269050439074384615234626001306817600206701113432087799487898519282388584236014749811289135509577195631827764842449987201318041750212763408971336567262786442203592354165105716020601514998957133018270774824291874567347033123021339941548061863149873623278794017853219689962122007752448577857146504562752065420062029450472497037645798555816000692134984985322844068905138384853578443496947631199691347440273215774732234774210634603304935465091289680047767562016865955277400406130565007746163672381049881633328603181206175523532904357094606938931539112552841368899568010676170028246120388654719706188620346282292097107021839446267733650390020644782747804445349585854247737230119955495631864716205143432793558876402616345188738388731107277322614889808557703859468046652050608907018298743715709031577528259175949790979001965162612990575072158610737647183496111284614825472146076408720161516583104876064775466261279679653614194423421317737577577854625273984415482096137564361878545445332908096264782086097019612325025789293919029030526280163189880291047467368951876406114349248585681029245815719020689410333443827476996212577835091904488539012688165800731402883204231509456643621337416210674855287344680301335041912442537440100825323483581474262686072445440365133649487946816145826838433253371875160418527068670731995737308002399318728008666729255979752129662284832850234768651134684158324690255842148325787049696191880353182132655236976418296165054017800301016412358282468319278003807414150126963797928439172392777053253082574010863068122407394637484428771556926518693308220107543541915811425421143135783598902178731282144267521675013481840628494845193703452096439968654499116387924077963754176613468619551400008791055522030012815294218556190071375427226614765343542590095186192415837624872223690796428299043651894521241885709058669045240653372630532477460417840349765136784074583091708402974745861392273535449983889434174265861264054402146980067169322555747236595118976746476899486385215538771397312650703338875033420972269238089139930971412647865245009010329128026494774027830617150954391549877662478986266464572517930208152544378615767344118626783779762228956257743822247088760485402491599747700984536153731721679902441476624460540497131836499629285555778595277409452930560098068043795324209258056955687635597589586792127663509301962603959759961840438783795623039847929500434417451976128810345891708287386088124526279725468879314382045369134065874115527316040476083015901501688156889109524519794949336937183452486014820012409010626011272200808925081083885669004630399440035837552739749173481625350587796711090254022938755532475029339922692531910205820682355824948929320004202855012327042064753588179087258310426132807768344917059327094288152791731409677470536318515675358243429623765143028518187295410409195848669938149434421511227213078242151016068602764273588937810104920491815652296108602940116692974779581510356508687549328974724218615382779675779954180971511245480157367612307193568098889842421393467561737712000855749756025089469089798574052349076012345806879857833192279820696707362685820881157888589056738755314934235610371198600429663837995293465949803569340410193204952699870281233244892812445918080432633305536561649107986769101016738418498797931124624378877107651952539919550784960733791280293546515240133839987940968162225781705061531725910713596010208078191814255308701978482997510159610838541784937342883552343957451863019159700239146807547342611353644223376837756820462704662234498574402632743270698762998124510872271216053696609830838583703649160726231634893679864920236273808508595481852359714084449064083375963914243881062462710613319007979406522942147162012026523866536073871062841452212999156350801922810336244670196519746612091378815144155029798846435992035714899211770033560325984904528508756833400148102244896832292511113146797464383275914377163282843001534953722371588739081802709505431277327041431559795909257198914540150685772787624434286075371314453524782271079536134693792239585962960275934910780262285085406441724899985656225095158871824202309464443577614116879953023753907062632612650082780156339820810928800246105114406405264810887270108383082913919002687714522761532570708505378985051978762858073054450206894467838908915530956655545469880894129620036441385552691337302290070439781786889896101794895236246149470265220557546714038345920370432036219965707105947637589586802377511860319012001558006340527965072786682092308707536817252909498245711376746675814542682097507339841689613582554019972104188541429939295491570795439321192223464675849850693365924371916729117486363444626201819095306331737794694750350889200009022203315704736985075972524765934603474178974748178586506734813759262406115440829452906470431254581273565046665134358261468179282070437854168138693018652248426527295411345512549510948484811355967110195484545920748750896690783873594055180011313065168445100154623451732565209735399487803007913197071070257021488386306408409577221844929209692243448990204430395789514812456775146529173503319388938060482779980221446300893684082515192436934371360271233159486560380869492738934438261306204706953154015226118402779423096387402239029406683123768882270155166693588188420713279960028682353295367177320945731185253364087629617504689878936012997951195881574061779515082282446067394048115967121244202435147506501336551804255338133516731707216461987169002894464594339153842147200950504442005661210072346415985730441346681992406121744167377061835620982156261247985501867557825150104204485884533973737625757664893825888421347249373760534995227423446258437003515302978494675972453958086829894557015278559717845484467352245136632991996086338286817778529991193370333652706095237182037249148438059621690672254635601521759628728689218298968143733390733376462348614572624849564360335385998679307887648092126336143703193137628749014490856222259405125751875400844973981635903462773199838903358865688195904964047373437539507830786708252197348227911180639927528248927914371521794224422299249861980948919890210484145634931074772938359053142807404309570183437937063522137262163746476673426008814130994074407497587651373096742156738538646233531429892517746839157952192545868235473392046043548945384815187109261215967068687657028764263237361813011297449178381433179515787130092737396043867878287976659067517859856949245557086129783143275642222695048890880986292951337290662194564708366504629800481362352279466406867330883257381483734578063914369412833117119983729109564681366157797420475502505716507565253384843932754250428360875573613531543914917591579528348013178617164473406355737424047219460504072414580586262737167312348129714167470639711140445526289065826839575516767248491255415946976510814211303791591674333976055089836238951653833649602332874483108937731465191291611631220426772838849876253719891711221478276843722803338694781948493977639610003575826654797522028456179464046764304514867777992881753065624428083484113823921682485276410031130578435661083621816814849033810304954049961500136881643569983187097257633431868746309810179029701980386814685086198852078301113661104995777128510104002604996223474624936385845418302462755834069615222852504895410417040637483300727111625950183149812643681859398615705134025551167077976064040222872585557669778768389443197206090442963393135538825535730473677090001360791380522683779062078503184254714624521373170986697474891889199500613316226678146606154463591495284187526184006112721146585243908048293932747443500718438737530493320283387583600915425851421226727838768519625929792026701132814345400724861632116451548804929174297453093920340307625768040002161142135415372742094540735890772764342994622019641882822806892606165311131532763485185689587517172499495630001244960898845047923868233199115308922402481553030766937490124292429727094959179227520860889174746868024283378989921772412275508717882893747477317041549449175818370860422365662091592641224875206566538898671369817277489411260813777764011043903055630250716278700269745709887504095559231653472361722678292591011962118829834262856873921088324575304555526275650618945406267423546004873513927901825136949752647895173157077312501717857753581568779974241642183915081829758132485675845710314149599425116734073028579871568246569990487659228068459504969361071740300532898259195970394237007107831386664526006218131001079567932242622611422244956106306100213332875487123509399261959696804340391397697017138871117378366325495736773682683635435493228370515927985862870881672828728791288547878679570241229416696370705246163495790568550994199542789160455340044294252839903335870229813222440602756654124249725871713125483795417655568150824286693131124182148600100140316019369783998892979544223160254268052292247848506964545196413244119966704237462029061371077125122497252480107153882246217900111177058837976203298696612673280924114278000463821340259394766370076070209136386036543768791467265335522138169508263746255419509278519682105592864240324556469181792315154164092447037160828935925165385199202293820142339680094767249149558858031748963513683053022796918977776558525299938710712239910829220348875841711207000442680703156247469472529474619687703245016524967787536395255202685803459958013520581473670471725271955037362137721781625671673070301395665403422752265169763028064514983716611126361461942289306800811584122307042513702101090798115898915706221554305699144361390019929959363196436541702147542902891835807543037188262402934725878666699670897139605290710547028559299709264201584864695707166478320934266415483495985235720305309819897785505719631876078802623220403079931199951563091496453649007521202167027805810067326358829766555153553717571500006683932048797434749325269721299554739784623300155347804529912269229018153222942176505299055939090733877225081080253492595576299275835184216746171569297493112997646599469755319943325450394206163903733968813259269103659232528213352766272525541484751473497476245897209691782818151602971306803244942451046322576755030104744620271162343869341271335566456770526529345461834596084502939739455806594639752617103440751639345689106160964253032692020538100473120869273932556057364054184525217144960682372231660892832307554495803184769569523737813913382846211215093590629460828084855725866074177528011546207132326843042776860495405761192888830866226228568492436452219686433547512642626411153457419035286828865192606043537368573015937393080415254526908300101777183817546707632958089783472830669995295330769291839226258468361726814291923046279156873671336064530128788269662709712034650230232567626489170298959316888006359640708913903447074671711897230792439915618463126972588785772806398848873571247020105956824980216732500006628936935236899092071251560081999767733182031225460292339914814081087075806631733872521645420800628556767779248931487866334778263361080855751021977194468976569003637583601717508914419077553144075886624800877119879939587619251864403347709025371661049209894056567097158864267097032325421397098844197544397289303457119564668288495443252770218450591180598025000535600805129199527673872339790770846969629667463662701298779168440631945425005977497263048391493793199693825973276501558855637946368843797193607735029836304717084080080863691218264288803834403769453196784895953876240594848909908181560768071503656845612080641564976428695699205248048198407408649692599769642404226113428225848063939790394011560473694844981717409076928623003857230271281839336318928777701170596569348172670334435610178354747598928351765618193561715413953546697291911874561875473644824031389222395300858824673747088625199954524272928579348781752362816074931476046713023063488886239639426270539302620427108188852250117685027102455594736021580513845773613026246555424729867725699866095619065020735579589506473165204870480522411833255341933293055042477841638236920733202083575457281884403184824944472632917262538070039502310512335227260669949502721210444845334370462883682131203684781642157568758918670146276467038871924164682820866506159619686755260169429769018856500514797722593220072194914091977944912207711728618123127500666141697502026326980055611110516975891454533220222519420712690149298783074134378728785343004919724850198216066027002693037535696477952995798650953097792266643364128575232273626750593905958017431807294838618787079475705424698641798036403187148683558193896010189101125719782707710396576108064941596791788699086704289471734662373800978262550752260683110501072156364983282216216080605181123847504935685102125742081512165739473933517578429135737661585503746925213744205667573685691797035179751284620852216784096319168856079510705669339605699592157254947555804957692171799305218778183626053409357170910644175655522981084030059036988698424791058440098850897395419731941467333486879981076815431101522676602937689967563216619969018506632287651516237420346306034239981658097935916793468454358073007164163722537096619113415672817706647548340621771079650058276773143959853589084899755049863052656232738684113571890589545512736461570129660734461167666054150001834475490982419399937288818222127626911784193905391277116546126530434511376982064616609432409281609306526494368467465251762712414083495014129705823287967131939857119521188422242548549027038038654845053909589719208135114741753060937316046017803774222994686869703919343990023740311844763979501336316210383421402165639203421100685446478843132454014132241768582660848559967774510406164013499089547584967567695235441560055675053512578479522514075005087465753909036900714430750509450875088997324964721384925606331655429389133770385282484451070203285489021497578566316532792861630049569243523284792226164830049200592310558780471886122022996962866846922002502371925440024181239850171576315118938677475117611141267036525274836442660435826261306935469729558606293978463061803161164281740901847152728429501012180324238922701613235102464815244299804550055834993244461835394030707714919261182620377978117130645617208921521030144249577948319174544495427648057025934133967900025370954612232791191201660624408067017889226361233305003267441096215152639263077137924287824655841306253786157736883693022807776953221320809188891792522333890807311020080939351975680301079171021855731707234968337568235521115287983184389666162774442751591970227968267075588566957076602130070701209896053491370624282924557014117792504379267978795043884744039693084939647035240346642087353832868720018156106058997776860656204774615984390610609302311871491410571089494962082299725349166413576714285206473646942394135300195096669977893943708609877828121759682474652039950545627740523795565816227305398743318363762478339560224425715939086719781264306065203138396141022058861223200079183117579779507845883141621212525966525262087231933436420301628315827703053809070007376015383956591998630643288753126941459753014888440836979111528071557580864260489525171839618611024335138050126343571215385378710893360502915349857135346867584048864206036013767000980106142730485713940505792876931078295193036243001685636966868662351033757525314329427003682464989225862888923314127163925926691049205876024555520880067644217426756829965084128049164566901517680825325599453261794818717836123553253068291985647301758791162359131833893730093981568728028420874930696686468536906461621945249184117125359942655024217817765288119997929394042329222003114686888575250647516881350997731030968467815554266874321498444165329482743229545876237603522354908984218478627454256474420368289924717472521456822515671468083118676370077150087215107046684682634744469142081656392067300916989721021594869394074913297990561456466982352135491735749326463201796564743427329277759788575467628775272464608815002027799684161827150453842631641615008111390047922645933325465711097146484359809366084724321273573846556918448024007246849005175348520811018398807286311527377157589372083793738284276910579198465409689448593925859235145025795881668286562314303555585983479011523567769894420342799923222895466082632929187992156831577380949833133692849633735657468902868045850310153237278054903626407114111351056056017310733285473675473826751434383795522842324103995307442213615837574950349659664295810283203816203765469834047918048059196059060546521427054712086053689832505361337968930353486614801107321066307496416919055990416680617404736947547280700761293355663553025100585060310649163535609216119052861905804845120854847054104682622053863864611474235137168358538124348893098128162299317560054931627900616629952742128469091185937138068409333877848486915935182764615031718568312380744732142671342216030345254409920162416146012402139605175025077435452434308053361171953844411534820429892513142251573148523469042723152131137009794520771336697841068359720015332521343252450800413796592785686010853808813157234021407099929929784474640810300747377524361379135942620517548285857995805822807260966945467798584288431206320205610147933775678207976063822913058377955116533495998019811751388067162084977321511404784691859517653935164917005380998504067770722897696628606652192288100866735886010866404783887047728642890332863207476229167555229397501189411828895725748002198030815201609423751237145104231263783706157957023139995413481595705511132126819287348768614318355752477535051198123995371688897431849989004890083323760584614692276328267621965306811719188316225425502404529024973208892874111997779796588288088589483997909005846006103200174513898053941092875025973190994954232587738897420341000187489600647651960621049932813404408589256953428800034396546701339573498970673116982583159489359533710115035618923785179682726824371713271135681002486290100674632016518862555650665166822417756732994949865245814376590554660029205978604603507916759150922152587425570119368324816805853043477279406091701949717939546868451019232262765789570871541011256990573403981056823067583206326289342958670197886824589837701996734663181619103094424325438159772724045326337791716853983096846234872175280331791473337297575439760034877663852889853614972575292241729210936703073166215496711425508693179205187887059604193765405264828516481375710644088011989745971962535183939174572376194687552478597207162128774186162013501370589412353995779316767422898129502490120510886667146031922152302317343725509274127438704070174559613821079869006457720928924803242800651042010078465684165918639281794505848278771672616346367672471696494437893614547224978666389172028817845788297679074997074712157066438249365399987539519098915975354006780732198686146633137289802419847362743678358534144431356617364139501319731554990438011794996554448968169941012430374565793144634255895972307955235003694300144275924617714405031828665004923443949833841587775002875722006516112096337555791549349324260681541170877492842963482498884256306153179832574801534098241871966114039340953438331851045254746695030820945698591276809356794608253546550259445981580391878152082755138855742365717464257746065167914200201235790139057068208673198087526607812935225866136507188508236964108088365068479664875330563947781256058309859262877417355009627307664605097502501715265445891784875231117007244462828574146615826738140410710777678371972401958721409309416907233381992880251145161893410683502204917362353359900082919102982878123870259305423397560329128436955406074879308903531604122289352796496048628938790589198248319183696040662218081672567075020476870995375507172402711141072760050486211080667765036354553078393556841409552452505191970796727355198117007739216637947209251674111567400732412039582090493672344065228468282073360234226871960145497023423612528345432958776270901034533616688792091985345863069062570604611614068440192082136938598263246569591239937607008994146880422735524522406035478452343447608830863784067306916053176006970483776284335647770618236703513899438701557896048970858054973102700555082919383587401740980216351055064672186173011072880235687291498590431466925453702513698008796451371575021485969296641554603252918348655605884987399165424342592966686631125006523170200631778508804549370165649759761037312573124620425943330839085503431420567854601953483951817474317239501073799019160331920242306506262056747439899787159745728989161582619433483153760384156412437371948470576131508334921679340384919086714802521677562817058440574613716076099175126007253256408433801046869774553354907305367188385323085978730570695857901441980095772319224844062302695223866202949201276586885727317104186043628250319104600917134875813013964681224687597191613186892132831192812307677608333813550304032689828020084970291057735485545563717998584548271983811416068021349673243688263459133467171858866035826243202370719788620668376029186396919086940286208407777288272848651945887273330628666605603531202681906362223530451812611290365318748809203766796878420573020601468887794857683198138433664339609768790541776026943262127995911603305926203655124026127587308399795157011080394252161608950553285284832035000921623739402669418548204463436114369852493109582401506912386266982131587892918042239087659304408723477309938945879329662745309131659416263577431518220898629030474488608403386626363468520218823819284832184716910200900165623848819653822010168590273485685972059661119300110106707010350700898790493193893784938151695299929154957795170917356454830949779023054296705476881270248229872400206259008020107036975925165448222315889791340556599157771377750448319882515679702799692291929838191205188581632622008065720782528353136081709755585121291873791601129482344450246282312830666449156516291087473546108826484775716240939171012016613894481976247018737937214915955978645068129569737897292841219332914672899736409518850006668266457107439342960439032087752182381087599464727921808093974472109849629323821482561015717016955050872458525359094374376454858840503415434546104650721923593868572826599496173258191619159711217394834362203550404993502212635635190790133054236376840723164244913901856636987109877795571367912613762902695330244674168498267192195972760511696444541356021426001375720012429607609651890985607665421878903763259655058731131506573303340604213698065264370957429169416606537429909169107459867095665635789361590199407063751967805289987886564721914520813016532052595944088122222140914723766781596612479679016113093553096907294843192386357130149835194736897397135799341667391955831764944679973243300423157536321367630674306985972877772991993663507826505932154293564063304419085949874820341856631190250534540034176351602900173616864472139881415732412651015972953482276610218722264366151284562024015196300096113431235805678893290477659108383947872426833157781221098415352613757472059724002887509892974883032124202780085245811439684970470091656024971676925010774958764069286442333489336315005274384560860740656498552227707496559177699018076798667286593533744485929507117772689964086803024682786622567620742101916750306727431226362178976782075310806833690939796481631194333676399013846657601502144855168590623587205448113205000711263031720762742183564825012157895829302989627493822758066428654459458732828408634402019798167774598501737684684117775736916752474639698933505197518247433392623774564806698111213651406968763377699545720358551538914434054895118680019536062101035557586969637716208615929299196316153750953093126452835920193045658700312492798224224870967330877206171104500499922269032964984722753462676761006575038304231138357992282675401519025148132395243121324937921002558006829260401625199096911421193821444892851031427752458095841565308833237555630511293908350617056381739529323545453779745290747922407144025426146746819135058528689882590343476116705948486175871342703539864867539796892680564682995749850071074636808625002177535740179894077769539200876642977458743780239011677398023626972117817926183514352504299841839315347356343188697718287841474780399729597129880234098609059889537279876962031245065648914810815049313690801922004605225835321477837147062701687811218422443781636710538128833911921345645626946188146714733688206145616629864675663432229800196922851127277395001756143983632352871725276570555887722378790250899910107574918769603260894630440862974468762060949909702249317768668457740514499711860568374280408801057116102100695112224988352273477342564120982818763943550269383120920146873316150673316339069389044842030374089943956796645608255027899715565430614138870623491030914508665498065657478034147309297475912209550196632993884397824507605168569941843535542649257990161871787118678445748838846572497154778587224116776989120302823717899648900998147501797834991154308372040331614930946222375276185188439379259376248381212628104752019672081882322785947023153678990459481053155582459603923866592131746169336332280445552120580646588143557228689639339905013597181610599503546790811305176462242354828000040880051388903854621111366886831518605880651821870371941057824008546666224154481192285374468927810698193528147811930315820616656438682232335485014692719564136220633744630347978278981112703914101196027484105959756499678615464987773297571838040375078983815087116482064598740809888805340783551204277685205453010707869224552054220980933148555666241436679275052178226509434652940135544894407534589279445991698689633831783755074539884512612975921740881921342095356644586405344959406936705032169355180420330186839665256203451780671552487385316638869750968373676498119608264004738488820270408921275113333210693536226066797605837324615144640211778757313729341734763426256386857500591514749968653327994061466574602355170740925245146489510743468549006186714531457176427873573994482149539191637550126290111430894704662568844130210484720543549682595631141552337122595592578863562242583606419837698702838071891698767030795858526370852523023320583608225574439474112901302762064998638216098197354408987435876704364185586123366836317565444271552851423918695800673646111767602544993116288191289621803397218904969830486726718945122818631775696316551073864188759456876386948750127692869383341041781097831084359772554732815852675428580550663515495346700549874329423222147570221754717686902906064627201218715087672448403319411090885316224660073376459269122730307032016646807673748707302325483441970082150983129359352668075692505363662237935718477725090042614790692275102374225454068320983742164234833948266142847268356382464063348684737726033499503627973599107281598358711861418605001459514233906319928977415745764684905990666255004353995419744122941669882813250173259587170959430350836941375889890552813851085515004223943372195068755479582478705176124290202713117008839692814194193363391155382674917819382849294732189798267872907324054798723247747508973250195550229565244545628899403630861055124376205624399835192571226435919061371642742044435023600729390308064233778565067382474084996151322970598150007251444294880196553144051891576222456094442327059524728074004711027473668161868882028904947585952618410915702711962011787741499565387035091051017184853252960039031655151006602700948326102532481184153096742765022819735725441854561359669766013739331198346014661518679158076439652109424153031143461820473458646499052523948837951395153234726454044703296851363698850679162139451043916151581845447996888727344823680125643112150406583034739791389158028701946411999149715121928299384982649556814494777292722606041180328653478796951662713293419919674509965228394061678925262158776185629423472261831139589113588534331256882542128077742556868442770957774001320448660193784049587464312620371274760871055612248101555486924855411042195209753560113523742428482185123392833587850906746233709195474865642645763922977235155190837950180409082786030853781914302314405860476216392079476132461022328268331232009999637155139167142479917644911988739513394445297506039835390923800411282754992055438126450317992519614684907283431909571501962246601302304029559745241504299747669196548739742504933248832991455259553182154424668953781100456751421650074368247959887255119969237242289116799307042042266555199190788274753320004593344808886410887871390828581630320383196051625857137727514067771708449080525335322632552482487539208628799718064363194003391006667008167170981752415572669607060272399753785453967849963693092310059938227274373317671011905456901431086784238113308957650594950071972342724397463000264482690043096233569748897126006909932448196556191088079504221900858950167208279062176237579525854186312923119100101966198041704891263590732642802144898729828734697442982019333077970324658762483272360100955539912636996856021251093864113423988771134841129183575709085206355044788474941599538312939134245778940878593412085221398288540214588044434603769927284673595540410200604699607349158506902749184547750851238235882653966720395767732650201975047625884141755711237525806631950013414796161375084921391706424641129870246778692045838505874641707867233571532051742825128479393247825321582392324511175727514353707487048799609732695854749037001723527021270078386522394202224949041612539843280793063543578329999249114028084508712904075858253412123575169057796087943657242812613393541126364348193763424706560186325732044229975390481358642946194936371692520876072978794092863684770356294899061635028635522754751459617692171909607729696470435929996832273407055596874650884820949333283581257915990410025919167653910582735711360355854034212696218632412605732529369317763028005698912123097309550195860359393430472100202131509026433452791389897755690843432926071549585050229694746899215243053451441016238895477991873384067312193663544430084888328474431619446176539674533162554393130291861468590227969448520676784355315034026376922609163206542098543808350479145538339417660778157180471258181662113230565362506524345602413219064986615386548405337343462241422523779696347826601035752764728906801327579692255011976607301583616004826092412060190668192176726841227644599456609868535228477764327477392907672408114183546110859738036380542179371227771754308620644912794819400995775207901396624028388077702490108988132487975375625308018409137551430558479835524299748481745067806364632124366102056274394659323803811727327081643949429209626749963266775413746194199024298398756702408913367078793758973312397222839584080076141561368189126761266266989738603686989960658024645970001282258446251282913986649367646007816780187316884551043443535602406750663261890714723034353281209336462777387868570470044481865620076777901802986663365856875974767877305443752374342930988747677364348535754225831292413486287458553906249292604117824038343690578028587079704264172562657996590407681552449281679319476467413806179760913670023646446137041291551576662762231276921293874725929120184044896988102312769898156903528356977653935608267777817285130540768430962424316710585917062780212500974129162579951011859350628704459064521986499155277850818039171730714446403800633100911196446312208744173406709885554676955924695132107548601344203572949422681033797957519171484504975400852277373537400441529158477963456340291469307865454070317002679198997997038328934126161209487883032286681992928289232508750657228591818383366123523002757462755580591603868335574676749184251111967158149453037038550606779254347009356933616026367523612079746397762929107894660873395617340444503535047882739548443410825456404430550503364089048037195099875910529344051833949381638537276075608846341404294190704933515249231325219363376175245745165046439434392653749493496993320539765914900020590338134185362316938716391495176579816797323038424511360857410385189715218176249374246607894317595512305416799038623629572876313278789520215124004975175966255954045615769563768464065621578298192600850486795746683057770785267666643462557429645686583241520194491248631982354159464054708882900141310195924706440660619869047809081585994402822295533462444292625727674648290583963268166393140118314151550171511128937300525274210444483775400269071410477708198541389712608910031137628672158915736438829059198979320205811693289563464550548518819664607246314381313653645066387413522383647509394945496465368577427011663573276368074293389290991323552011224297582820263962711344416075932782359644765101322466090464965814799372651905683952223165755719116609554563670987016103688781419801602164843387388736609719832955729736479351605193682479131406626221672991352969483881142914286494566148211666028108717270715762397460611034508793917815819823085988636334061959791731511083062142610602495192739682252610817733284389737316393606062115761281759497160960346510860849521174911875125096070890961981776947087473249142433352315140943829336141287261492043364237380515138093987945788741067336709865317654186741472929759193773448674153087608784299036227013747420810085817904087381045417654244157176492637129534102049186324997413481426232379721500331018989416315822893936683250255246038204384937596663206932580478194961503472897973348802967246944609551957807364767411326670807732460253204853636324886260038083926616204297498686173805933084956110018381055775006522388730938375219071063432874897375096414176623189775836576540150955692426890895560230652837526256883591598998665131829516199725063923665465399844838918135538229938341584748633747749841325578355148606038929377729745675654952253561045919192185197866685680122884387636325382699687046206257226261912508364186432998185230343319056668196175407095338757254798228180015235209434871377550679635752081476110202307850601963286456770100280936439328381174933887054424367997397008400462165940241004508773586488964654707468723129316673125499867019328103462683737848433365500699787772786604778739805959632623360312176532233651959511085715592453177389273214373284699098084003219004083278407523562182550632634965199494048071583613054599894496395443523531559879573171901282326106655939298302918407695048143456368086269757889928962106882852477291029558398257405347853956277617647020050396980266735606526613359303067089536108196008145490048646740064044735223947505342373984502170750851735908647802405705425283545554835088837703328704945779465443475308397154080772333028084522632680566593181160329182260834129751967790603825219096810854786448967281726934323706788728378005293845962279052495674917523701522690666872432478705338448692266483295959703412204262941425679358666197828539111077781014868440107752677842525502451965137732210657852144455554821616092272426169114275240067204918644346071164865385402600699866881485017078752196040490715567842746803628141803205845524795001171413841361612823621629257785101400723271733028103695402728661193182717124302250873526709140331691294238056409663647757677314197749305825279874529634890054340921789969716069891778461024072871675458425290228109513845965984603796699920884044119771566693962248912933976002770176520592637550605539888822464708531497411381963503803970265289962855304795932767189098183879609846900243081115881389838497880810144272677971051822349078994530165983437253277393571333983187657565340678857845502577723370248755195150946120525528963580524233117276191319808656400528750463738129225239098776156552692877970279134023481215001371553119378121455119495653724308780025329467778957075910320638588730288090258448014675979482999410936134460648066642841888540221642971456905974170422621195705236817970866379847200539653199587313054332677339716492603743802070802407738890131031118833377222053290194442550200918801020515804351090510349052489033579387966037952918872381202229782108483602233785795317054128154200820764333943612326062906524848296091494031099583599379199941872909527946326997040719211864196847936321647025826041508959970698279557852005758026862776615449606262621859235621432441068876977094386468166784312857358319498097110398091920702632388100209748154355569282725435215197578986047683937356510581009436854688538293631677887105618853394305633567870341261192802839616155994733280412656022827196906301411686698581552551147897970706444151872844963875377557566596894982365647314127024690572137510311957366578772455648385458011593641313790426207312388956836336479714152051670376146548535189291852306744064722311027649043590747647012962907547269898348507101357799186976126912361959766369689781190598804241645242156520398783562581757333924056945397416818289463910220643488431326076118049911255181943539631870792222042002763669898475302188343009093835001048961315177917399342581958463201567010681529685307674934295310334410052522400264060271440348732818719968803569507508163740140324020392459848728895366010608001894542255701263794995950398897655629463456949446854800053128352889343901226752016046120888488799587647763487698654286507547899347611764660473592242523369267339469678934323593389680735511048046282321735789787228416572931210601954202350693720978761562384718802791700763168681976132181220294998463059889589361077699576684686156457013141463930988870964029599740545345906453224505711277700033575958552971547463664905695766887479930846322561026848125121161971618769175218233658515591352692604027525151079567039599316054261720498170329960543712352563694417086987333213666831771556208855630823628984670560081988567233911111841215278140238791740360066570134282701793832111906576687352417793244027815326906158984444704450614967137620551668589431220762954464986932119487575355943230380280168546331444169829009886076603332388826453264195499010417292351824431445802252324302779427367335992821405592681324449074374532790816467643953035367714983440721986968486826131540548106907957460384312172463647402913133685830288831090439355650271172480580417001604283529898523920308978057324876999335080681722361201892697048792357574117646354773296510974325237669628155743597720726723151135289570225580071230657763525531894911116747070826121128837858981236225543863790280497568341467956932920744813157417985603440218969669941802983968656889734193971057531745878222755310210087733768042848137161070200394558446202614468223687678519301113389278484283617575279004151784121750946730466377982502480622610913753446345351370663258918061594468334700695307957827461105648454129340650241416011520630102333075614463899748666041965001772898589531719190813940775674382862038735099569559337392480149990939450768283146591280780175401683173864838490624811292459338814933888174521885077623891177576739658784225563993906237267610401463132819226554856171443684859726439388025457421655221337514773123516060106086051283050508385834704257593560191975214913411174792158846292869623861496684200784293501944307046645806520328823964498503839109300180770586721258128094928895616470617623291325662778753675327886163491043564888365689130305874875334075162781348869210887798402029175845343856216021912331541450007959394780613854266630160944273471198531994552951783411256121079827194995941177446534779146497746518829548896198209231254001256927146175711546468904470186175291825031423195766529069935595875738273896194928243386882724577886225048799388933180045186297566225472855260162443884099208381578124866358839368177780235987683562425325437936354881876336398583002407868444992206346182160355210262043668317977435275507166706829330002782786818013365519131680510520745166591474414537929343996721988243131894928856875107968984277363794686115621199670311590515572822367842653339170591433384800204984386658609358171494766300049554764692191959437647594605925855539062764158838014143095202009323243340724010408053945470974044330777330315436251105783382138619524140789282223413688370182604351625326722308528834981125311184603191381203932598529594908803892420615292336209735726159320403459028306860227676926607072886608028596283426586236925312391658734598230890301578205712289271897395083776576770256943465176786647675527197495035255072368240863109656781960610912118451837860772638473335745149593371142498767891592799197993542063251901679073646281453282575384929162924542109645762624927709403661882213756121727132531816534908424472629522538008414614488052830331890696237605863095844137222353540864511460636578729885991606621663412530747560498949859749199475889749544108971977098258140428065221227001487200584144814949301759967041854017372508128978013524119202582464720195747484632486427775573065090274223008515612043559142284250787941447434597241305993805653017393249618975419242922043645519175258610313849717943844054053120114134276262825744955425518891748070380599099391581469438947602680165152588061152132433573977174408580629418611001832974967137797791503029820478294758749589827182001727623940032947296235308154854181495812626403326253709812893397307106475697442427854901075307096598742013789826658015453353521228597957039840967644684856227726946748854603084520450409026092132144857350205211786261210011456862041869539886227260751867123089973104273821161987694938632015737332807641957067860014433369478854243188662271261044175989744860808746071974249156799579795583999337884443721034146188706217416656746822335445770175702520734050506758065550916306439742059970104052859094362683599647733820716385955137451938033345441605877237351350834403345626061277563608733751324345063503315744890551058222568473702047062353186244854113637733687890526216880062486164094072741331708715610649386323916606331966919600481003340026374201182738067196467416890015998468417389533270502849532678276596614033513943967769257277744400437766579768137582218682930387227366153740714591192046349450613729305446723200133374703462842324776601970815835435617069787475215680470962756835156655606750306126559974028987554385113803690140920361021375080617415523971467577746420464416850544942301146715312924293204228355649060135580146965484483436500690861742843370147252810969479977068112880149750773633300483755639948309618463899722489204887596872505665505568177199136027710381418433828546702678014199119577513914276660386852274542068505595831127110934456737455232255533872793061878437336258967732463294501161598591538333051981697692314163671019809271996411039725261810289354454678230290235594983784575001553152005275208402287608762931867019492835599679361278617130639479463918418635142811288187813262066400558880959843871370078184505923038206446307782852071915893936567521583897575600186827931993607530769222739075769314891924763818941118851595357596622163459738098254619020018780937156393329087693917892901991884980389766844828997531544613559781273839850303197122673893862310377768318096908542646271456818718039472282211878629193929843650270213471856479890417705284405753013163195970257289675536700285437478861500057288278654156831814003881291520774611298649991701193704372693655687955357972425649484179585901686069066166692467381206149172223624313705865277472486213794314436542573719907380201169675190170746553933027972292741107045731993715759154150345554249157907467098014988610695654961210885606320033883808871667567596436310986905956083301515038877537802133357673974019197766919407480645015529860361668844656140327683598838878776417272184700108519743490006504946152555244198187943100938505135819570009493192097741247550224554308199784314714675810154423924516838406117733873322259857440581797930979507515801066928282289498756786685061913596359579967429699043411013726296821825234622694815518298554363919464871580632904560403908271519361906648430021297635205023029539579798834834760708591621458386573965902440256508273823479860944992522145434765182369111242943203331514526287349392165000603884625062743047274600430000339442923893424057694550597476382719858642509982018472975392853775854194846442570871940224212633735305287730976070270699622616941941611549085070621896942671193954274131222124601886877503989274939215543306806690694078845589424105573414791326577282537454207644855088518516854860881533313798451898289074881609836692328426873917807098325143037737678298356371383974334598328626501640664257275069262540922370976122018707683621059123554803047494323823207041067012488942719859612820376355863964923682987397984378882704663922702167884838330401806402134536490931221494799034094017034523642184612033094517549098224954843928355692269097109142043181121292400442473675280194826157218020616386021656854971971779308031460598481352705207422036520807485042685785969606112567135806258762686630256577877385523978031602925494639315696987245094829743078761026028742911564793351696619608175089060093424168144705819310118695360643600959909683605403697718062436583909000718709470925705559639554263493880551316791051054937415817090268608477344461421069281744360027978767599050556037901108710393964580383522947826721851957301524042575358958787245618142508460325116039488676712108560568713074314699850997063997147097812874269488268818243157347197620428788682048575090919000756139437217439017288707614366224210687944909543324910059234116689685230709498387542031142010414914791918333569299778368502581943460895522329509964437560536061391855083717171605139035587611935468753567457174040548654682914617818116668873996789657955003200414872700769850446285793336476571418981310731734039154383913346584023497903403581842243931343171580970374995679390072935685231233518355221910007402676029126474174131282355451799827598872737336175568623794710333042480834583577561614948933433290418176682725344019097354490473957250282405119929839190922797714747110902112671305014160180286054685536103774199824465548035044767593747695750867426110335769973545036434081459430137067827430071565302021507162796374417590007725762524823456270400525329066416004426558427905295208971895751147606620952163999206549026638543178414727915922245926108650048702160582484604651172937539335890154617531912305835259599647778033069532588114718025194197817511253013880185766291779097598543972342011980150168667788397687506876023876363128108717194914289067602740420301859114286246960029744992404173649133542898462884260438344804635269136704843065831110683946166118907529755886802453131748542803200043968173712778295016226564551214886680576921390960307371464146589145518120672222485572010945480673043663079190285601627087388511729962008597964099970261451686207806480928994627967738684275037796414022897929144434498750326315475705636039191205456050005877696052597846487922067178223089684144472488160495711171202449937440347481535752827260589336555086754302752699278950446740982664376965217502752914915675568147615682991390787960369609327397968697732482256209229784337060826421383016474413231032347786457048952433381390924777152828006823304773780015370665260699257728445445537181504154986130614724034619656846430937359146740564829895364614957316235283559933654657448383003819629683329347018206308359440832593917399966277627083566575195614200788071466453071609650727088572089920202053382801414088060866071974217382409050856746479558584464714988357780428734459302158134874750787707799665810458479012796893970848325053705209594195972106525723379039216262911139298712832503766154425911372398146918090000215772393598370281119073785610151868962123016814585330147181054026269085009378031929744989387409752279799673027273339178713053986532032142690918231134906546535119425382686105065220242343419782011229114353135336293551185661537526641562797940214412223077694263442440912606890826270404305100633585241754902994338149684041914948422585565760355020300502621322925076600642647071922309373125357773318151575552795620342426737573555984766237667162821967319149864175147646832861367299422437668321821367441672938456828097737119432366969947836900122412016608515533182677580081075037470603768381442831667359281890986281072555149262112955390780605499891180577888699423945228864502897168970827482867412271423857177736590618854126581614954866774747066777693022809954648330986203426668754735126835745741697425319316319241464881829647752524474338889393359261492410586532986153092295049549360997036950876450374446877027586621307570673124017851946697555782024605862755980970913365102116147474637701079449403444347399449179870189383285451326065742283522414484919205489977670353450194984491435707128456873094313701019877836084089701244140605827820829468700852240517016236549644058093785869248424456123146039978147773887625776046805430212463636834947974583643451484033837055482659646011407032306331080785022386300212799768268286539786198103852257416340828843892110981790639110839222077164129332642405803176514665830913199677003211620223265419494930655081238168364986839674902350065187624065417380633175108087496703971852162746271056657065740861563605225288633980877749874790471272149963086267654803839848854552683617307532267417431455189627614801434642044483306769437159008682406539355423498187014156849838285956954423440842828481732860300735982282946678822269225891956418084576474386152699165936811897762166046332352448658434629609714995687499084170982184739040802964006399551865549872505768254946125921067262073213056008217312874426227932074254338166804384421600199187249412279001682187363086199264807592004700754474632866866477624343554883655895611450757972483681822699514291446305921384681377268137163517366240333951809595036034974403009560222133086501552238063817916767156288527394849611991456610643267990705898349530722042828349155633773964855181284183211112192943249099880304517851837456520459282889514348171322614032759161566610980936411804411559333970734225189977096187740331495982742301967305985597766901290408420896885995026439710136436020006432056469789332508518426414175372863781335880288256383651033793003456103766876512405089265396494455980025242395855942946586225106265043774020133166378160025179697627771840627685874423918532568682661139214628353100219742230735100321786101676111579626957955986426231034806040863461893790980564910805588481508912628254199399943695368702662674956519155228915113128870019097123711864314465886021189154919085820640092841255004169800256381524121112818572013991386559253772910263906903209312977848591542453977553344081449928355507905570224100320889948807595911814572771244249482448229205607324101795324149972278322590903466891601783529077440531545929692703015581216255736687178297093619077815793545548931305736855600528359141963432052293302322594052368569712087616539246877721455779617182319656537077554760496781434631966556970392282659025441609924993200014879673701377120555693666560464963868800448192633825775880038958896516548576418564881947038999949896678716490662547198314951279785128280428424341194502906139279919867046522220312385777898142712810752667546257070496846929455102404105984083883509731452347552667526780435172300878145873160511012063484556920497820261591158228281764151572869744780674967186878135339780042941156729000221365176428857700543357467136785462984789597016631213415365581288483997517594450236987256631228302553382743401881522564979391633661900095624891266579306493818471061322320128227411197090623557348714381831156567631344621096142955542101363820280900451101848141214513434843720767341490478274422504127892680926399884304568376856661891656596673080762459665105030128043489521536172517856252662096255448159163057786539912081331074265393604893978666018808646569317721228812925771294651281019625242774062860822432041903091164168338302022903200972460160120823381584765589912962634023625131450023193902064216159537379335520479721375504964413324417394662875245834507764185186247209231521616241115173375991321779773562403103004770802191266732994280325770197482174211534212793887657112332356107308711593216168686434889636428525845235534121912353709355079581421075909414966172530758288486683219694522310331833717774082111265688722530657996057389074855286924851306073534644536332379087579907455144373557537888914929987042531316214060817160096379872544834569888167801302076090120772273715895633918428369911266750788988525963909346728029280627448410602130699579567457499758275344235676716833580348970287240984684177164787555145449282140641314302050312187193846305640332920574522854024308857748734289396319437997547898444044255195233072342570106926307205111023686772799971700225120713887371155582158743126523263521491927409398154881216088024489867394463165544634527751454995791936632094364699577493366025558079331651845190864063814376194243886506323200827048552509954651537473032871747821901453934360792007701829755409518889669482812400276260024344141112741301964267463783210536105187569895721803230417641011274001004638262052950957965379655827468582381583082399532350630272876395557007423593186154170102008991467800466394937277247026474757275583388366473334826434870406017472127437037218226043690441336466247051226041838497697254030157353252399089236359711654490631011827798299928680406420983075873006032491081417674267388786183246629307229905472716261565887820914135560931355404823548295067350559275928246461253611729046486508101173782465421635850109634726884938410273934418884053086714516760835331515154540954569622914485103727878699295889863980414093451021676900867720367164462603327725866955670604904655127259195398518395128059321202532621504206173496305364516704122098157068676118945232432400816427351862472995313255010579260363915724236099145322081945347902243953770167841359544487259242547077056745318550041127828895683198835999228206915580045636875525519767547408391718166362556008396670428870672344535021942956451755771144472127052488312545663261258271587174691820043872798249530864591196684722118929069485065371970988871140683417432290439193546175196495143826825923328612601848012000370208686197478296714938579093717150723387484395766746884782104225936241892287509158330869192481918680915680381733491318539710583271025821953465518682635866745236882499250466931141753062604086792421107267474493008209786733143811294702203950556253920303476825705443574470426215354856317985356023340139628505646103942469370988717923251465532283970782238996298316295470569826867508141946607042255111348590673822779599233608175042358169108787478138043276035410290480830009491559315018295639303743997599662429784631347287813632215836115253630467294431179016212698588708326888318834956118212945906393271462673679737069766303228484232734146426310795011114754479284696722124650481957154171109373902532970793702061108470164353018144042124101714535839670686607203653235735219557960898970895070144181175726021227025023610825815283971329416396877636539545791797723495692628736975369269571778051943535786139928503780397811514703848574954430533548758413979086052879661435735013664821016770448520943500272296928692537953798593719277270696912080797556575770196156344239574006774712001127171926535140727620422342920078470341829792481455287627523667595931882635481206690274207712285477391170635050083832790200100183628849787651029848724093880608684160440714673363395330246947820248112668528242965560403932091867436210776201258426773433723414803759174637121362768632489137863149801974008117609333669320085016978132521342138601161269014162650397069454737885774579013919074053399944650387945365243567601423797019163336330614678231892922826364306687270974674638535619121534282009831161187491207724512402233885794801707667016745926846772352788488818427312301699040795662960219356882068693578812008810735887087340975233755375964084981367556718668315271923920552807848496317302010059075378735500833700640216635561959551210393914829316962782436412992097140444901673965344542231346980758939037024845616753544508464614517297695370108602662990240152354044658009493260722172312296831156871845010448979304864208368790155855821715355635958595797886126550295232682686776020025781932128016442852400004536840073246899475969357098529322768594745362332673808979065187643753983522424567905320884001437071937025098668388319752290965499090092236543240994115028971420707212524300559637212932717483113107643026530782528418330190785810816378425004326140781700058247678095633678587974964690001396689536214803939813313666935726563443529056399517275934650573689602404614415924241562119925921874892476404473120538056730357049148250515770276361679435310380557384798109576451308407200867225551070002789750535181329738507892106630621694671212360651989087670475325713733984576310576185341613195577145471113724345995754226363057631165038707302196033413008553742477972541233459109644829938470863081022863227035953059336394489827949452587931965464638903422926642633436114361590205687157201002536542843512540299759911158516297681812455779267596043582768905193304194855788682999619561658796416350403537948456144441299170434594346988322914234461192959720504743814979066640093419923259344012013987138446696533845170072119535642290522699775752469870273074262458024636723604294222957663619053247622965418965937407935019651175070304493294420294793883760934259748192993220160114713777010476616733313494400171674961923529108848116771201355284465948366466847576200701942938449910826240125872595584061567600720569778107703294810646172171405066468526443018717908764755596871304405207986536992187447698310722371971820966209959490956447164685959718485230713644138399923777023746111716839996558335797164692417891901377757854843504013409198869737713561652570709034419654192316349898897763709986947986344349967728631776642322089085846717043390865394153217169655416918755621350713371314929758467777140365194284976649587362319142689621686871326469320200143849066954250439647311635494046243624149322260186064185972670768663265107932860673871543010143751740950568265272634384680205522270003932607170806898758403997975158465058730737345507963031166188184533740497116294620875912451915713581531600865177481093022198428701091060449345163694727763378849663762848932879894102536604150083328227714348397732608641447968894995055018220697114978329025597951726382244681667500295729289213213318614204413755974400895341299862795750853334053831672517869434962636575183336813155756583177585094858723867367188755610182117750170803333657167488012023465656665964999306642651643640721799045403232081869010465033460607751218457685691381037171919503383676435984295600386042744472561976813319458026463543879210923019809993818144243673981151853495046820720000063327858658102612474232195195462432825518187734290385276524652567636973771861513184513452309729724904865519165670160398948802628904092409084379495639947351500820848070110731734044280028858561015875031675349914354639056936849000323983701170752509790744146398598041046635153476229530445863244693729765476660868431391481122099202195187435461946838773548584203905019455396623136930721380640812812928782321551844093443800798499517205549123847486651269099039381125475625610187075686531582918034356665061978255688380226444502607661905584895706569244796626459671514857158470912879942198580635622078861801192043187294838209475460896523964038066407931679376255119577159341066305222518142860577097322223026789436651389586152569972024419203065339236626717111305189525195978673699471613819465492635466284504326727035513309007574786789043400095378434473194417610297552817351660016071219492026703744977204521045563616587390909431087393044246841112775939955541828783878655754153646665825140626063266336103030100920554708619020089493146896578277094986129841788999691241929146512544458627361814121020154508232915352332517644542106841731391327457642865476011822269263513835863663277314944055887055515535095227136927913364761366653537142256293755215443915181477789985388241126379378809034345845062320357047346913413608286295173159193113498884130220776513019135125016858704944247688558707366669771442344021207616084029072086525683731668037480588212693417803526252640624111955410519464531344599180572323159309608886346458775866741844182379919312234183647064618373266838624969855114850050294878323556009950822247709792644664578986463252326847798305849911432640614857347156385605504675370390880430904075032136880897918063884475004775027163503085845473898412971487158469570113012233784854609892221525707080485372647229104675962696820403218771888889514724648768378803070761290931564362300062222256450991316689930823678995201346313610408839360482108791505388281299220138818803046173152684030389564462968244755434186794843696644265353815550945140420304977519700182898244711035174534202842204513945686440110826705402391790667965138883439606807958190309618581826028352352385894899905660821491374385986009503410765046431046606288108787587360718043214183427759179812431896405843706588907312043178890463519699064228928805228275454457276134125825263970447246104635101544765620247806014744860613298502499791396384759000089686084832288480125064087061677104609922947490887377683301362484796923868247346940197533054449482035521356197586405537396722394173318555374828685045714904312079083678488573429089272179588682472234665662393347037195904951061801481750573550122348356865274409924850954900319298895248355222484081394515376597830626749065887151465394423326762344609318240861755032743303127748568752122766708327486780669610564834087833822758748725180164740798037918281047108300684070373422128453538537344742371655218610802827739138130686551767079942340452030358517072976549588827391951783647632216776286264039574447440945160649364718423809565339579201434181483602444478059716578278395336391933756761540873249069064519133203145485067568445282708570764374154900250056522670941450162070236172066183349493347124979057486944156824652990064590774989797523598074259877620279967634763592736495170336200957137024828228161769548414406013900215494720720156307065142092862123508073993142632709534465182812505382260428172024798888418591054636623407938423956428900289510499278137467333430713353202831936397983179752761519739665354503177293244224288417240152951132803821307034129912461555182583199105553818000621798870192919319500098872821949498688770313168946815200489142525435537481113050201790366386743069540247660088174465555005965343387925883857782460873218254566033508414436055232466826223884941994416167508924893464681734498615100682565155668431378705425845440711316201729325690226963298070099172728897616306491442388447056130302108469456093089469960607989231423364307930501655801655877022828616750941389944760475826121013240670831475311445966966612013251698114477074631668564297905054500112955770592280275041393959342438000035686244807208110507358529176199257676078109140235817282730891948121936046500167978799150735369997575863062193763643471337835661387600328434103442506417460788849436722375923603602319967640571168315073934034049722779332063701313641246703975698073673883642301460060980514448728063614446355460238443130554008218294891219680669938730752865552561828659740332059425093222955842200347854352721378318835107353071274398006983401033753907865490501956521645556976914233888834716214050623855110696554402123095143758576021482763477841347268514017147959480079511775838816990030292704067169034340139765589241279684517985173411026171662965494945589517331726867959366513242277690457485342985908208911082197763848678537417668890624366909133070674277064786428800771874159472780228783974969185519359863878243275034952830955814751046847298490376229369337025729441067161557643813426161468139494356958824447624553567928245517093744087837002839308390585190668982215947701277401629207845250803156339345203069642739665784138791027527073474590902280411273941282216280028138156450393233648337932900958020884341203918323939518978260855119685160779373153418711120081006472647695822801188979304542674671666371026275428661304398047981985487765917514737918086434371105148787628552781993538840546589998764573538538477366392090578578187389735986294438763183594634487141166446812523564953136784754306715824038788642448794417778805833707827668590817576836087870856552437992100378431330928639138823465309911138457968602235004969151898783875706102149464483452207797136557886773356013570538811386969553727138223553092603210626247442125850202703209391539288274896560715475309919881005960274147887233424968052912867499403450590780644733714062559415576320478434496705564345166132404794969263261790671128056252609084690976671697259724258331109796335965157715040469545215397878473611218091312091150101677930152220585844953149036708560515117800190005074291936566932904849589560124488018970534906744851925152180531316942949958918995598848718933756971395845006819445029571614167022618052570411322553172942759546732542910755919443690077020095334292419671734710165900141190777844066629220814457096174587413395780379078013265174932026979928350306587735453526916083673078955283517196202008625193871272580594412247703005724142299153890159288947094508334886206513158057309095429654841163678528129076294932988516504574160334506062941946361539264201739485369624593744131191375268191442495233180347178118956248778652638159640145917908480893399036217538559119965417436735521954704990139600223689695881555303098894803241467186946601742128183013209930582902670837178767946026390459748807752499289214105405982072211629408618870427578430982693008310093844813045189836785262429010697779854446192015173835203063198843376433260431834425486565175037638779748402824223140992098421204655502581248425134348045427044277570295215393580794540231260869068436043801589989257262849599365076013730721087038506746120803128661834036495272971433429680108321575840105896153426472854132492322749018038296880272021393175717865696690977706768632156234995512783375063467507101430066980063217692682637726931628338183221725965023444035604281576959094517124079754445314388632859561561033006301608238023970159777002074063540013168115732390898602054569625996996634576697651399182716403561282505246477882059445988796799648498404294582726027860002772324829659699861686069500250202884273740787823754666039544075252258266591323886537103148552022727524140294418024070927921269522032083844910805832315622590034673669442219320082488635383842008154028154770298776688734249476184384066521438876248066283763441873261876082979856774979181241017091971727977173017730769371502864306930440368685334048346952517322012016077754880453140804624364402980630121371693464623671807062469310343363841063687297766337930169576402181591438693537893568090931016343724601635129118743464087374564719243183715689248770906318565607147979940344218914409702651061069955850748681872417611796111339932342171928344583985621236426329750150246696432297371585844015017862524751208302612818352930984541009268793723165369271575738962733505621615622007494467353195858119986986796795406765072937785765640942301969239951468009796536042370724656186300900462221007963189466170542862406640874525926140809483582655743680091825364974888337175392891654215956311711893659691540832822636784591625844086486261442583100348277752908716508027991601635539537104422385682721386140878497237215445616327507160240833103893999764097409982123707153353711630947415882876260882264636877838134150227426932918502815914821678585180860558837837279389015630433975863773415281769541525377671934136341398208528056108158869635727850618963050293437004733603854046445721664159020728058416414822036391663770089656037675643218024233681109657259481931758515179530332181176027022495306873403760487111067177402872824880098919168457236036378560362202505002994884658420232753393837593532466482235098023283845050985021654049857772555392235741450634049646471240394046189030069596411725704709172132263443650913498436591203033199217073178815711937061609959503998640393004088319134268133572990828040258993023084960078580003833022060336284926721968789644351547332855640874919480157609212718428381566135064365993791537323712675432788042355290138583418579386351329747293784214356514724853205539898870402299342458149152136160255036136173143976906777008041148541182389038365717893010847389556114910923512954325997479191990447651828553850618893446640565461532974600397702659315003578940575106268338924934430698244674479966122917535385602426704610107810393566212381606941939506537350479272441767474042405691356573194581865075363512993092962301458742523442874911504495550896352917723213275712585592101420722693452571076207646827414277405424210837796291281824068339572385078285985964206324726791773863670309315952580250914241084834913743984371923056640034110877130345885834692194439018838655241349277423445558259638844935763899321086134831366564555209480825304345580695110252681450076575767136145961735409280151111077911668347314308562464419773103389960313163978709833789381941550235443484265645418482766541417740380888542925935630088515296384014650613395999667052329991222993041370411862031983742507662838587711974232338554086189696570592592209868159401923494370264841986932988652797648859454886943964710280288866097187496668358717829756189684936444641024567019374100776479437655247057409509323744748713793542615883724849428271815116722723677481895957091961572651548468094393041805899512994161126304388013788805479309906453221712775285478460448313687242192179613867414901533086259191608216371814634292751750532531739213330718035658544119978999429867672388229232441092731647134487269549842945903434571401618586612886335050660706109666585396488879892078157718083028493297527606052449624608122808708520279884081725019262488532049964562567320263415276280901664440150894719204762096882491360342151803521642996751565846307466851567696855059727855421731298535537069135667068939161985724314743409326535515862726085775315272495067945462220313693882057619041007759913727053994010605770718606946820581239207527721524879447954126465095715009265708033968504257244380826949903992528391027142001982952838459475238974426672057869537819951753461886757499691879692658033808789158258229326878108275368428018724951756715482102688922829429164809264830573674657050706464469582132200837441250852550395802655538089043897270908560629589067235943537752467858452451430974314492811088939613465536822737009738062768560044497739797924720865214294306192457103335165499378879953602285665095453049539020774232707461527030086082320852166040173418696853682936651111859420739189982939005418535196909001857818501262762527521662129173706923358830634571934436232186003697271239847639776771568622900960225947626282904939291340940961378051316886832154690358412236268084854079026648601495711150394033269950511749686565557555524685767083908015782351735320337433560983256460405925833558287337743712011977667675526356646237401673830015571900988653728522099736938671905423849685319509011020221643876831402827045335667627278001761760322549594146298359336323060373754738968639172888910797102550967988171124362834771311797600274532918560551954595835966564450622076212166517477518468628806368027418903717660314494065277868316993535330228063601175149581037604349413956676694677307124228154024410669713351292933626675846563540454459489164788045706923058155750882152140501685293950539207152845309331154128534276363832858565184089902055106575371679288396394830539915534682503759198002852986048284165132593851754807171216272191029532425753456914489690753250322526932204557673745471641599169504707680239839262859323660715334016598505634518619994505501529400174955161334269327892027850344912378180507548616144249411425095321012452937576327132791224566318553726477268327298736120562405546329870850939941707746230045745321582748397552942713789874661740550099641052064085116233982557353309388849076755313199211296642799759352969321576425568431456268148017219115092708451988230416965014794534257519343503257809515481958041700129573584488535703088565851643960516719137086301767041153989904296864123215536696486099416109307581296875530323580827429310533816339010949323827207956917877259124605634157276655130782899386695950040285534693168461021176063874350535813567986151669850305167108108449485554633683339003743859644682097981529000529104841899741928025375085083790306899190548479378641892396165625786250262392080178008737116168460808735562730389588811205493112626735152028453080606172756516990566351068887877111737934398222231890373557524580381483185246953842381836171317534674312005216806969196258577105432702656937935555188204351123929366549260965016626872652629214895875523418485821397204620023343105552237811975822965530207890974548920608812021360913296595125425822165157102703748568573562087678002611915282821781212410827532780346899939784880091099330789766061264845379400454720600886975701623075441422573368684910285245292661280640713226351986884736046945375229574559691573630875037599143718459933804073927999510108849274795194120882218982941862490138995355864165482594312447885081936514011219231545377557740027498914180470550778298624639958057385975163851667007170102692399419794895474289794135791089341771375409943212593743819564513005000796675591820677151092628328802396312141629514187900349248298461120912769095328980231025269188439837229186645876696985245888366106475047815591113884981754303082344017697124007163521686573409595609851059526537877330209524550247688420443004463804429400911442289518200998712887114077035386675932051829193742152278775808453921700253493549071367971766713066223381737390046095743155903805104509285968605832356442391568256939464669800158286842568836153070399616087744642649248831615870727279433487421418735645602265640847258311359376171128432257538514830724174644701064281690402845436607337082329155366630556813488141514736555692846406271500068185627423987486919273317835704894630786987690421578058290283429415316274562681298037388632386390591772964121093539588847952880353339133173059651043634023300745550123584958616114987224252180501901356322377182277787093582025083180312442544754709807758328210303115164322089157924916802378664102660251888843929118359566105648884442990121378164083819326247694320132021678633646224539458141422450498276264867966358255112096505034924610971079293546613963918780075250155253889512577516947948993522462011438203215896810179420388844789958156693265794280837328729079426646714175838156435788017392283494626315101906904984888791522091124711305664068179131617239668442560606041059872450602538625327544309588767478800266534660560372855556976486963989668334162478825572915759254727436666825038946485859881456238162958208513117176586839459281812048309881805982416197693885247200324566183386918110664381151520936125520647226403749345244387329374950095877195160225906441400529361435522825152835295034405640534607997328115956558377298319290580351898934898803319528274107662064385003968103262523818650444955227840439322541614576715149155907153128882008298726091964300703593288372597494511592907469909268866393197043313894995534706437590450150018298208141435237336950493927365116573609008920921005516987441742638228698324356777884010413218049046479544858495766819997553652990269906990411904600092685756107700347527497623357118000125923075187678515354078040186245250343607217861147051415390157598961962200151670852772630937604122234331964495023008840246919425251666760090608624231021888304442853489810172034120941368137738047860900139080148040991883436267201354375664998876856523442436126457762731625551233142595716518289977460057130420413274613903726541581542878250836625515032706761324776701584344183834407014811622062224939499701676588236278186164122973562331780839037963815291545818798935338994660206122343526192822513186071606312890753134157909140961101647029074055539147104128664377725890170054144880251619438135507214414321322507639232554077061154036126821043821787411976072489267575564299128220802178069873474531680442135661445780645433019748136085668299720898631128562001461683403435732156702098210699211672127077188033974535518148057242775503490815572580545554170925144013307770791089630880278671460626342609542371663740206137995038670539420614500094990625233853990337979877626341465163570080728920600660172797731468628097374035653130216019766730652363165756337436358125078561836529948400162928198727575031277177930045145702996841991082507437261129839063454598276955364139318100370400778953598472362724364344759638543687183072496070455794184396657315481104766363814147463867051509013790714175566405581999352428050669846434522834260614978889841389121515524074352378951579015705781400789166351107535737747350976640402127815187238814477708708723120229138735744378032893335701537153718464907988734459224433391048489817384897310813408293100303370789188294270689170176666283926435345573865236737825402037373037027078846959956420504118341048365721098782610607756225925388094634858076376521261662526235036752796811705882499961139794480358202453232400350575221651981094424925437852669756542063786571839386447111293259583518040327047486624581447626361460936565971793059284772136790596797967252556163748381826745060226917252799338497339253940754849465047379337618431026840355608823653465999526887183259385237470183279473301431845578305032746051657224313584625453469887062290256935823062992964400334800768306593726033822093059470820555377217474451811209550272504360895829985374240578873553546964162907892005482613273612475205081980446952995095484126086762534464233952248007338251106666064231216298559106711239990914073472572688162079780752031751365475897993549992870539048440260103210639666104108077103088270663447405108487026713012299475309918250619632941759974986883833903424919712759052258162638851345372335979867352653651421850409699392663791537655668391356493368753270104069649429378162733624695221330509627574375848584938726967433213382731536374680827943596421452559797546169885422414674610199692779516457165813393411224116324024288283629400080565130263104511314265125023155058900148713271561198720122010815598777120134429207925760462329907062244902622250696801858228612814933789746913521563396020891723043788447427306454984432829518659526384499416898808077777042522382912779863485624042791652578410126795817259922448872254597598916297392789426189072834375062609902743990718029717446484430997879361209781305145180243131073394496999378316820108653539019423215308015159935285465643051855778095314400780696839876536169736145862697109085457037824800503029024064383255792228133717731678262773901323674481603043698571073639154418773532758224047764465738960857863710310060508752520767446646590573944268351535378338601504199115242234700043459632042354225930184859476515290181008303211514274286252153992223382051253322772191725408866524587427267517589272821498164595350738277008529090803076743039030957057289979640598071377070364136163702168131805054250437390644463057509678569332265000442088617494072339007282510211448253788681659978973348199941843827263571906612063711443472772160116302330237583157783792865098018821622494423977874295996709639404365743998918978157943417401894339826603673787705021184296438764347011731956238792948884505987706280333964463973480010205759988288961973224891799508472802001551469806932810649311199323665876010341895490796663374979013266815533179854469992003348064987045268156338475030971694325977105895525615865009083089771520487597692079088167929162004800914434233171773178875168068157763898019388786831794112804341951518211831298992914116132509654595842247283020283882754562444814396733928126879631966604111561778574924573864054633345033009342057619334225026929646612487654639075587173207507356821441760780244336233123230398939914495043898306486564837779349904361485654733651013858392264282513755921978918210701953896028962225436680755553549615561980678701757164881916593687411751489318807939957832544829296341629294512168456963618498465084745650197310738217572192245666475639502267527603990763399385506250115833467556265144641078417728001784493274269253943320149303780235238883563432555723178761116605091161926890574395430715864485091445266857620553347510476425078085696938899663644898197740114840888361989112247281635680256904963006659896288501941397344434164738640560086690624778145437264579205848787354513663279752700400306773032669796267102992622786113975578543712545380918395890756854963395292050905901372216701324091498896449502361014890367406700396520830019654001552153821581576384063185378444518246081322651624563402414645308493748074846462136732768989345414423495105423592322111330003531561180457871942588298799666854102185542599232328726272892796214493584985211869139425070956343764627477771098496753692126342975133904045447712872843356805529002596037358545815814460806507707347120324637691122980364067372721386245258562344868116969158800451949674034929517217778600115788450928035464716181442716469347638988895477656084621358806381334565753534652513951606578461258194081513679888015817056038759548317931804919509142268186341928736627570265722803847766227168718637880396394872096515080505922878829858866019109254604773819501482035818639085633808915237357273835142612160702999835143089934993363522661115002846083630516851785403967023891374676403936153054886603403884082360349649973471593364685487396057619717005056188068931273250038689039904674001499823513945579664809873813776482461516602939273763643603747510344711332696401286466804554312260842362347629122324159165634912988877162738036668535725617204873143121209392909294309024781069337719872587159917746439608366014693713840764864601256942828660313555212818509144423644277958483162179893232998921209475270433018452022427944762949949143831724713000143271938053906268968089738892829404991180283537288360434472201577813029757423685746652182345458550484866535272191031551806115283889285588793941945971963923869349222475614482702354919789602822272355035671468470409890920291026989309476420261381012802795262488220760748384556620871557486799958557426036211223921918009494750112896034295184278469690919346759203423489828921243794670707977314152128817068801916478655394862127866432121661546617717871889701831738650998451413920951462210354640113523709096744383340720228686151411901561208512990670056041817983253089989919000546098452083676393183474376402060421454068521297938952877246688459984793166592057231020222903738844186377281212074017531819438069308912893278253589014954412850606976919413061340611394794815430389477690903374358583881332426764305927875601865150796673380260722282681453681894973242262599180158766376243195085875740205738310260274965660501886686319783578452528811222641873820437550420330714777602179004571190749654005944932763987590975846296474188120992288035390088942349021450437490522413865326377214566001401936209319723809465938362869354155535293569974484998269069708212601863376605481957485258768823433802950520586777842032812206536506965436087071346570060676215634965172138697703210968542673228764351528832335276645391260935893806373833252026969741298625677981386676615774924499387263788195111222206395357201748576333276133002291857462591623186670215555299777628053195949421942135084357817424301901318591245834162331004673686524242529986872745468527469026988422651687104729904184036342507121853753609844088039733769750321006588405861915586306320704894900786329967224381866937015140001462303612230786205929223402243617868373405486432709313367375648558404997861313446341944584357524297211795527051905306545371724013409448932412825944039000542938823283258928172530485227328318244261358995040280847111917972522466028832066375619027420971696820211583620487909449422525275951178157849668237748717684401672808337355276057315100186694723452144743805719620644320289597405584218211196535878180691568057481636651437557193026161048466368333740529144400588815875184138752540722114094851111249107260896076038421244312273493041107054155404869954851130097214150782643684548273022027498232078647732947338875465572800633819594644044792154237790015934861475442700478623568609812197209727857242632912691879276628759614913639604728108732456829667271606893999908661962338615175303834798273311576893239622759671318805365677189230261327197211149140450296320152630351936958649127677416607739565322731555731379025969162692627957706045932875761055357740566073545575212359448279478173033591300625091654294769272095339822672729537797988431472127447462137980618537469417973233680472974919512103953757527492010774895605530079493879073783496843992194475731805851830847206255493118347255639209958595133882512236118079556825028448337099019622018004668613990941821012199503546251005629995793674674289418050726888127762836083781607787996339277704624647670812276325393806936518046143950054826835118647635482438688360721967968990761685119556241034594261498283202392384428808517956095410477667296587563322013644946740662691999746211872309539660315098546755795320201446731580362663144966829624773700568120625173990066916634324950368251043097368584888262939074777970379713088209674917255797358696512471303321831128252796351647631018886904577190445368335897458743868415454949231087600800977157888714446911959270868458692196091502091124547424804479453970058276822800722800534706216555501382857184801439152774892014858696129226213292904483442238801868839057708330533928472853192880132543530366033292718546695580557857750225524504220817120867371932566048733211665329182725762238365019856201202110488136675343337069309841149350853986537259636376088202405418787384630204803280939574256529585905201621708500787883845819645160355049245324961452726880735611519068098955321284762762205455925377427872691386647679871764939794500330637120338754672142127293487360795176669592740295428081248602072868535535354818376576359233902172003126832028774655708243487867069249470714068753627864903218380680738024841762872257349440818702439855989432634511424778349163683166469125007012532450142823469161363481032451646824661924234733985137531379448915998315183722280163688876233074640564155773823839384552858451592953612915669493344452044071750389897230093569027919837569881023376000599072394794916794755439850642979000490580326712530455920047208793130529130642663249287155927043278894158731587857202352127941765895368527059563212890043057140076207992919442178819438695490398096310661264666138263393268581742338329380395460419905509054393012723587449401160941481686853589353147782904702701241113744457305704485506187892845613320517856665409571610035153488144762153559530528571666126290545664223552958349846404657418197455325907671604214738280914201952308153862280614166477111990243995581237655865920112486231550828403764243251835195449150526236073313522790523370012327049694603078657024175752937906621110249650980951205671565711328742778297088550869162793412066614663686744288240420990467219330183707207647260774502750237520316702379861486928054561093726605086208114697878035304486279074476094247864618566184425051410929893364518248553480757533086458133763243188563074171337757854322749963155050757714181312110836790177543542921793376233542512207109596740485159845655931685292890932292335442203586602479386192506029975085818773928168718559089269703862219318205204640400687522036471433963906773369721695286088551836715448398652800534857664558071205006916865994355170978080277173988087391062594020207032213766623660867351742083951518320677499430064532749085755646443466829960408447416261473617394624713200888578145298732963696915895592314407020192063218382466158743396707265645968516687099051252678558638643394201916463442107073597021668906629928095100662160600158692354387795414485816878565633151271917559982141109220384469860193183791886171645075950559054291948267099563715394875977722249690548439599366139033017829751556992172768391761372277907741887188593260399221533806201825003831347096000908380194555836209084530859925731400886407976382036739229406215701991791424833387588128352520093207767195289048019944634463666051806048412723592787103731788374298487444092684587432189160292292158269624701988001144443713813164563456324674294711372661259492131210037301772495501081086346434304514235236196364852618757114197024001481900953939187503105008600055527084604829164953503792017579534984431193703767294222334535260470898188907753464557445963136120223504882417284944890103180911893308341853084620406763075454363231646166495041816093516326222566058705926641127161359920971606963355878153892362232785345132248871728968611338642289214655974577035560392811831306451958543048788260153833554781411403853865861278734708158670816730509439941480285922699907110339556081440394538160941531827838750038972431699009864431527920277009239358647836306840863237103317925864073097757891064708065272429551699143444666181409122032679621272922966399787721639898877926433615369139820196153880194288733638724154369222362846113909145711340386016226564320791367056185004982696107700743535032583792842546191544633413364250897835876549062665942516890644700057468560625856540140585184661657663440401149153912838957592681242426534787102703603856172445648917206783229329438605260392089528572270391675489895882629594087617278210850912273039265969660112003696486709758611927880535160101962892782308942892041709232078035719256116104421709013956738328405185642245196092189520299202534555687397343747671041550623551204576284571389781121980318420945695165529720274874279703095685842805044082173929958603911704624266772038201067876670525676282639306593742922608942917211187540541578071235341642867705635894611075904974119049950846486216672734734508520020165853869421078108666947197522826499969307770955479369679434039593827023998568772388108174995709834167006896203437873096006894099679212432100544149007165056324688381107031669298493116017818240665172001818676499196149579449234609759860012201757469564254439960875247012270653114202954553498941255750340974292728568632918627100049838957189469029334612203098700918238238714196767390532212932508671821600555519352833602413393897507217017886048207369174836312164624377768582699880341138475407533960162693625972123671591335057033539910647076642105954682914441543861266834925776258980687027978427325040565909961650189925071893792880510464409298620754969046456014140762915107444516971645795190431615244064368355592924609998527746900819029135037251489788514787106749498085940484262478104607646802261646824136476857638565344423983962920582689549913073836245651725131369644437210675179303776416072837299220099768115857900324986586088119497641293188052394705849213353775670655788638550556182067058100781240280802636745102907114806449928393078597492586424304629641305581959387231215639739952804077008446751193905290191771342782232059874955624527279446518318547228141278249870148223217521162286303361447918425187408168614274533756720754176898658126891142954319779419183581576930588694912174353845251266201377536994431913868121334314177546055628736412114450348386136338955368407208351400447739180085533662321445509617508495346873802228663173093286271582958476239091205257102241469349205967874219257028518914795653331233473152304080699503435682421361533116615225222079752828387977947778597316347866119497442172544553176231787168718559773182333317272257427217866907347842244310492104500583882971391656741986910513458658920003092301236221392979357440286519081444740844825823272571631023873899131777726845303384712375606104448137602633931116087062604921841816463137919875879171109166206154706083468903870770530456047097731477323011920654748735583947885007940220334302155221951825188882396322348341778314656932208716914232163204957802994786327856489617774017575683392553004408318957801044793728708663215879869422736031917143976471414161041517260892568965890223842576673442329465855382508828733615452008692912949554096781061687592308967377575111219620507634275107845032816511264174312161047540964401008435376986700614662946354018726411896214622041273925215361871685576166622405297689821851181895597801645343810593605685215457265613800112715860520571501502634627083579303385323869186350325147305571327891703592488941665552722293934941121293669279585909144644347602321599471961655400697008914879446126899879506768807169930547849778042488928417840908019907224060643798417789254781933998654603490560448270252291065366577717238496439896434149036585742653807687937260224721045336588833069167362850324867812384688987419001324512098156566494093823300950515125303663776504029718202320091182263850838630079051049437440905529474109219232761166797055766635600357571942029194591185182894940010325084658552823670042270388277767294102818241243187691408056936948466605382779609146039277658278772832691862180955243058980632311360101784273004324513501267480466434757533321901379395217184565740834144327259180231542443527656483416549214791246923897853366171350632563243404141701334767401409083823325287583655937386697411780581392025273051739938921436522542361469174185563325480131649135982308435453041231894355436753525911224866286213306035485658722078339888416899463848866817696503446362714413056755491710260597569001439622546899896724294327306624366305540467482217664510585264774088458387645791740346536352760964999932502706249101981228492526422094014462401019038569754706308912811839695546722326965906365761509715913825625394210026329028807662363024970153949100227390901526234169944170183947780037104277713909167779312556082090459388447264337397040689148735401437729724889562787189600741123459923613855883411928617446367488492372301564529127556884042420781009618474606979797688038362299884263109707050027895940296632906906915214767681375399050496604629976394499348216222713627214112238229018230819451632921948449411141758020126235629535223167192625852528103237179253287809249392645263181009886677273046231723636114319342264037229906045689367453441666956351145622693981965085531124545209691820993646362636919296747992599092535418968630074394125539633278037188100068124429102631557854423355400260231708081463195939115563268026639045445408061802657292307170654512195556193294062589622861405817607704414683279060030788640300057027163843297069967825211668684494428707002179104070419629356013224973829219324997398450476884457830873086991886306732022826961396698695223301009058304961909027419744279733129354357893284873494232792079235878599562253326419792132655455520324384221936148752328175864320975369335822246784794912874548174956692259163002398277870093769972300322707078848527562270770718989048505512891527571770753219166182926360801816826937113891957308599804632598285536041691676115757874045272141456002609774773357192397724085598351086513789124382464896172163155992226627855454798061568135742765189468848123571648067782302654724907116098871184512490248979843218209499968384207092451768509829332009014444561686574094799294889944239704650250457950703966825468334185505773964436727005727258275789677850791251593570039953873511777377312789563155091366265707222324277057193661906610086698685845792106036957761665912772461658170388640508807038445996756245833251634416873267328836514279210885336162754251621890381885023369705972921467995878412517775405801261424544235660854892793784629018740467013889691202297719473879446262913753891506250658832265732749179823564314964422487288077159561805406692636756040815874288357588333617964863166618896287093997771136842537724303027522698857340769632700106815581141134401235709767954735307040714183297645893131897571991136188226033673331111295681345131491518480761065661552929094109549640647961451439298569967861593231625600192288933255408985498392610211048571042869993823998789924314553194262568610084567605434237524017776317220353196297452639795697572828388035087773941351474727809119741913089399581792317319926316107266531355980032671411350969551950711722171235309005150678081714958128381696251992951069822434187837420972751116366413737291986595068432562030083947275326797473328787957597943474954772770640719517855012636977877679392010218509787111931929185540880416170397325373436956099728597125186482784014101051036215478168885552985113218282058180340796158344144260519951767424234419583740528498625654392766681230808984190454557641599710566479566461984868688748453531628870563071974637130514161282751995227931966654377148581830528933368041836437959001867594488967778357724872784743527351159104118419570627217878998962999517358204825920265618360639009199657372452500767576666162690287878279725536860050993556541293332669684082704862768224042032607937725092766571658585210025362702406877412671717429274542333995064620610074535379769013219788181300839354804082041408584511008799324762833017420461860083890825390284176723040879633171607414287916877375511787384824136660733853233703642618307983931215245551309246251163598048016315082945932286986035700208589025806961280067995288392695463939355239147535677265153331845770175111979950789097943258209182574785710196259725869124749324092781360408000366778263247848744240628168456117597521716533514930065027127745876593655850307705469849434356221373188990550095922766240954253032652913452653314265691391001821543658617317207705447212950507803082755061364541967463967782461800498897201636297422507352204417351051353296198770381719395596576822807256562788736766826572187422621115639832446274049159266007383623037690875371229907665485191520827095566239388110834921457476487869852305530769781310728322386550846329521842413083275941464010419706852248293120679563324381602972303516081372870963159610061305728960272429656276445247149424848885515192535993008339937831556892049553321581736835036538947875489767508002090653388607675845168274560163966930759483382349953243159131183272992345735833653812592875603334748602240507419758021291231136779031138502717514752202935210854172868734339303484483643540160979083157808757215914830151306830507793434116243681806363826837404369111412429405883532521620726266539797277007051017050468198768538209642892736763204601237709499185277290087636354593888057131314010456278781014100039359648113935068117040871086618897306264356943389033471647735803715808309397550927849453498747187140738439158010460568848972867168959114025245463508134708905632932091813955985203810566277251101944434983101164886757490104647410648430927821748552131546732070846260057848937640552935313252008102333124002735853427514352378742356400672053505625742978418022686628284022381744025274583875584142751341772832617083417410273038462441225047662890009159745212756972993052135232606734972257165789875349242468787386339784493649269867852784437814076010283434429303220073889793719769741749336062251378836932343290128978295751796206887152343342943629780333263996186361740026539088766320793208234524761604721252907722009718774257751959650621560833011404711509957931059561121773934768757660148716240451827357167434472258654078155450356650964169513854476624942937853402683794381349153745478999811142366889899492897255058937314162108387080095507213309804441910461810025253730052810467218711345281727916938639556216726133813898767215962846302813190978409516275366389654620357502078371161263871629102125882423723704261412406978601778187072133533661855185812237766691555390575170344607707705867460953222300773471401847422985415354921222797201440633137612638253426441029961200173313431085338972687085691919474765880577073626232210958027427944095681506977876276114762902047623588242542058574920754240814568629363725013888715230964899351087757794049131747420327000002565510645151846962664177364256501231433343998776740458900602903418627324539297802431058173521041284198821051248262125829848272303634060205948666631455550198922757353294077858732409692267037655654926252742207333173218920214027888491754879150008735098145140686753918717863787498394083544540379014169021450627532076301978577701368872283308790336526148851593198750828307557938030223022131096252494908848607870383589918765837489963663398743966057623979699805780596924540013444627966780646519835351381555474149342177444022676563155533003943003559422836650535334033177006297149288916661308383034450074508972532817650080276155307529841059861023794483066905391408422299217154123460656854169600224386815959178790110669716082394446655617326319523621806836247467875645282584255636116752738604903055912635003045482485428734061691955903618117968045977755329163834810153111413701481235212136099937020928329778830572365709547642335302602328753335056839893423009381479887998659138694494775637769738852706438431241290641843198380751540893756033594489740509868989730529560167966203650153474365333539261331075739339761714712487381785471854991188212096140701378732465630333177154311148460187987913860017555210008894027657083606065608552218054295009941699703995571833598911484039102647970885783283662244382262631265799658676652682819371026320969721976360796533031371256985913229578209532246632786791722080931388541831463581861986095971676060663316474998820784322941673278334158230890313055116788257327843709104124383019356572175982079658559984179102013310961105309351803737618912165693890974284551263586098999957915927190094712911583244191452711964460589696979935614101492005033737232570391496100457546154048948563742992834815670626583491543735813042448042075610864753292709146448799301084192579729779627404772339230452023529929618417041063191638852651726063647749557714959581950017631399428321011516543643470883743440449355650671588317738917931009465549233416718802739028028407960003247022555191999526987396048904209265410303772732415340069556761585481836419865136627699373907059262084680625664203756113480813323152555589517540503238416725873274237736451107925957260764515942264224292804870455724608156231177974973054011686858202978299849316868522032019590314048027969087093311706858954688962743687232024632702834685449914392271140335071592802666279647907067780667858592739006706818331587645297573126243240590585565008200945925814827482651462710026406419337186935005268010150821577145092670970278774190767695207568449062636770958999416226346598349299563205656333008977391288064718754375148250258388560739707821730546332609655751054544092091940143511790836245690206990974736559582505672642505168107789199875382998761257049153538074788170871990704029261406188823236144327989171475113405572751586392473724751598362691592832209373811880517873968465167644039350439815047808451539758123142178277735165499610730425365580716992826724815748617163503650618058268895935193158637743000172789734079540681027363662256857027534248792973435344310359188361105354140569537201885453115238254461565004926456215560853082963762779476248652531612039728349938253526681327480665889099160797897451470398080560405618945578602142057915665356152075362478121419320480150878581102474166579789013410983264700769975803830766515941054399557291686815194479439692296075624458664753530502396354857970245053217391972358972392286107863138582888615640286519847317619602423270355759744634944707903336363262349461213989912817668672878843743006331709313286074702000141658035720456517245074181130402608262351125140430810565149009657241685244061041310669549858697221993117865608427114949925164224986848285108632633258797043913483346737090223229476577163718571297425556140371203977080725794371153105836302262218476089365550958220814495398798313875920323166744955894779843368534790138122724456149069020890039424483379258362177619182755659330487154588204185066470527366615307775084152363638556716335934962212506113920212975216486174276832116895221595387201260027671457237315293176566548529702912333260660554654929622352345354010766480608813678413303769622209106533762653164052955782959796189226036291040537525932801107331520938292629929015545459510367545452925983654928355202851278395180851189717157292152496987574820817506866734466464556843889142205424200475452757154143999271240650126870276581499259326847693773671908522433529633154381000766217890624927242822827775601853667205361943868685908489111039829719121467188882327785012217173491393552486948181604945045542638289366600219228372902036869849386035895830370296229139342298614099858877928252598200206115630631522775799745087841085894251467247801762180570106623769179225510673636748692415491237861377538537382702006489988361626402328078778888796414931529520991139074309874298042492070725733629073528684689709297554716988810543352675158066404019074929832590817031071348057670876537895186637381856585275472029264350374426644145741037978533091712851830700833208702184984524922463003077763678232661461448276178622457779122702571787176983679361866685639011262583753701560973917291232127077280911650976132723294046955327001190448303578487413072973707279287572619902488468999835388410587800210927935283291439603305436175140072720180175960784626316949358816527530651344316200330051110756718012618344150182598013022297489214670691556395748412085453871787043495530040684753995435356685536688480762212867684549461785020180717074531648020666648989043004697618568938144671865495165993572900344370025947800640164446248809445679416193706569154237213743560801424150453243961539229740441683507543209274370738144449160848298774372028198123998192609281341829151478627770745364457490928269808461480212091382189481228575161914126400546682428143438462273655150497200449075960093000284265429283080600255931627994233363224033676974851904028524681827363498510727714597697962778928227542922765030085807652039333203550452636855555590976521446524151929576985667250256882410206702681514519268267875552125304363689751732231461524617088722026860101933261722180560637251427506119909950417382334290725765996709942789968129157218787557901363498171300818731714619023933530857135608553235540745998572106068771551908064347730835095251199940019481376575408628934964825762279487463750665851711419323317753941786224060238920471152862889618439612486526613381698726750657381792954991896875920155904625900030104063012046961445527113425845080100089774653113906620588457641725494649340987735842016058711646928967446690419459259567291018742638973000748242386233825363594476441943329830193054445656268177691234575618276837087562254678373238941946248930325336235545861021277562465447501919613466569508570129967845247744116973802394054407291274847911725817189236756566006598111902556323834132337349516211798484999615328463756940632147176235991483538969930665361206130534359445726108254748547645535330909330076661310525298617551207688292693617060423071044892023839607111694834859030602567088734400183044495265439657954260291184747232307831073007495693064183160986711043084146526625690513170428421831055006415881720626124009082532998915583755140257886899769833263603645090267340498286795842998252087178330222290986961420901858477848496527383776216675001565569494379394376695100285080378571001762979141461536278321161513660491020866011529208843038206852100111602877534156714364623311099644484940567100216974600931153110772512978774581684028056414658448699581698507838443255556913453018641413373440704037015281654927631382709582155502560353332372715979071016799913732904837507586271024160201686044598326465722206826726814437081536509960086347774936321287200411353763800346378722334775110008016955973157941950540826084271405582533142243669741351291385539761997965036237641767705892866218501160400375671256470673255543730209050240493079801947662569370884516770202829718157193819471348579144994227999512334544716090308772670191780360598373414481347614630570095156589077269186636408356588619223299378036071861131483309648215872332786347528669471646191266994090648535025924364739110761856787915391125752551564113281289844109319136724963237753245890216421098894611731088643066298892061616034672484324201919038954289922290364093684639951326386250816169250699482910447696509429294225776614060487708384880535727980526790058966135026437183769388656860373523308020209026624909225659683088294682836452805902631493001983999723221736111699106295402997132848067042750917243419738006849020349657099969388666139002808250101271550575556040685096712035458520133720409747074544998384728598998955956581908871779740016539950983315836142275554729822340487391947817399521716972017706807137184920273316908423313420298274402797075440941418837442119426315621115096444785881922748695385435238906899862316360228604227865415172233740589253847882255358524352089926454653831224353545304852063462802958237384242461019495242958807387785735241526102059747121717909552242224401836541135398399517959788460707581602158849441811154539355489503703107120321940526891973337439456092933771821274293748058955862696661120177135297155105167146950917973795626875186319524611995210149214240404243310412340249569284299588101259374198904206243877415146183543743108700381691998362304089668444846384827012442761748856229132225601191382774453427881261665644244734462242803336815297722070264967226244978381762241203778830104340611502473111259385066737693529013771833837805372111876308692509561201480133368029001761032485024594722985439392862309639610377109278795865739123754685907819087777603830119018464702357417550063370075139953129289084685571618361339489961378226046069368508483640695188466583217117977284071365433323217087636556121087048265077487949250439455690476172294723435095533853610137689436482012550311222540472132195622728956314570550823910214655714431151274616732768124954106561222600519720717260548731331011228480390686842634081117367399146424002762284259937926831169176753203760039470017864157487107018774006118765477005183439565109492979865864600169521278281771457288114009054510941347059822992501090357718895143454559641174852624830220220620903525367355331722627846450406444683743952556414192581610648311101177357306674466414607626765061863854326777557094101667237718052795409553051095536828992120962388587900064700060675891536958945551025374285345142615055410550139443415666713615203332467658439787808536318572426213613943501206497405292215474985852969408918560609142282736466123928343809376105854226119807485973218588972846557796692495740236784297214147662866515858285359948969101297810855603417831531410522280268997428052705518349226683530527164341707938528111545952702167522861417846479958437187002348119136405574349393448896369903644850613950745297507923824841691551854704603321048087543988454350018556263492917492151368580047400938847508609215948905500092401169233211470678335450390917001765702075117770344122145060063257433250580577981768894759973201843011675887959490173522454380104637854648328121395793918932411260769038941501251076378755461830235587519537004132363656253277497122817382211044108654375515387806269942976456420682590403088529416913614437356080936619150313266037661225027131110470609214657487110508043414404087795281658072433221738208973420536934902331581603540266402881535448995586540684459047693906695966462302357544717093466213142218512324640231565821340701556882729135332213679611612371978720250127372466224825536727319606779174555895681960305497965638436944461716111325987941471790568280125555594884923064276510500094088619979615089908050766263417729564882584877393317088908817426035425410471423820335999264067034319271048952243644156841482098530073584248723731693244075932738498603420515418718443490342496466498211556980577301142663132438908924753377060174824800198683466981389134329933339487656727413742234477502212669441824198548830995989500497523556829610855876857410904669779121985816217766729718652456592266794367407655300650495833388300510439039154769505819981856081559462114144285331861211658216044309657988641939854664338236541241200064009614292454344621183778365421282419243522030877288720123626071870220753231839525982565020878287981386725148069903974093110168222718391531356149098775861779376561228999253675082305228850406650962239008104895395826102934134053831777075228575509645093048842101728652889636732524971650068658217815431561317111947570639550088449792969451821467486178754563915962325475517441508959154250001200575124595324845566806692419224698544679893674311195480149768611760941363000070759790136485068483718654892423330687753641872981852810534569262825150256026626345807151368012227419643450473176050506811959078234337201918349974146640751602466133223929558102565710252270610743826227408621447971238117176465022055301945638114561010526085219228945322916499499528352350305449976601394774398499532473717797909288017380131594244314793909674745162563072188851735541669786158653463506992687280877118464412642678285976157374620563393423143553881539470698413361522451621563283737134019349772814380916936659516283580353704057000194925865184020315174835784032075568418891331571425582334575700697472794460669829055824613752482061376835316665002523493923507179041161328124532173154369468807006294157165184662948785636180083997146404397374836931379739216273754140175935405926159969484545921304445936565313185260930460016006882429955455105212045763314133653809617314399545006264533562446157218969371196918288931301972998136606228806741285904909567707615654632355825158507211493726345817330305036997250798384238319791769208920310824102055207969369415369151532688513426456845523171590598671869942499217069465264992216901813553238376382293263521085598502299681148826117912159959028003453550673352483880654604394640450468373057499602884430542462082569496962071585036119295715605291539864985379364940028645248188814534300574963743403216221576163517569248165090430072206559796304139133315706939447000984164741323221783065970909718671412793597018005370189153162890808769186078030868949242148497001477940177689372918608174015067093475526404206058077186530118604257450811031880318367697568723726835363595869245558378716515759114233595688262590701049137316863808310138351683939161143610671356489566685190792336333371642569173915135375138485833175714565193247811353637368132942137221920872382890669087550868637192142129040227967740191800466727333643124867389199218241095375059506284624805223768822580002491194379763836629498189724159757578657972498595837719001568398461768465084819197224987118267066429779850466115345457265384003320384438039123275370226133508050490068503498492170151693028593819597887374748382332520652414751215845518373271148835622515971014310004247541279643054399412959022323504787043629620930343312594847011454007226100044650925437030190975242555379258734684933302506120888259305474022979644650112476287199358871671201758266058735708072883033112191688655373894359494719095535139164970147500812756593444649353614830122043664784901161702885366738920234615231550915590015974774034648147276056868024659681212193083945695889978830033564343314730778931669669956328053884768736575317737673086071324031246130424999020392988262707040859655226775718984310244394916834177971060892203750482174882960122655024304581299528911856898214696352770893208960964995329828670517988880691887385933544842649927722118807708700224250772694281204238349460135967728753460030710963147878061424084237740858079023196086357194748872617736903160673970677605499507375222578471259256360851995615568656058855395374425804378813286135459859025702480255253672786763184566041373142305980201386104931489015567918335087882249163562544505397388423366223657880775782566891505255269144258548454992037710249385729746993872323164570176127540068359066056283190077741336247645342371478072071543800182236011875159316379500788062423461163712045402563688604545590004392538277281901668264203116378492497244404673353342719181813123003822401345174392981350926817537777759331625899586047472316716154025471858524332078252077654069316833223954659381975000627424075999945123518979455839821262399036508895489149236333672236472622230560379924724249118059666809601226949078117285096944949390386293051749002725173885636670786238269097295590522704182616526713961530116542742535311434676697707627867769278285267037769655282806654140137004974317318285334117670231626462966345181529231697852621563358650606822261861201609689362014559518887467659916189801298832303001756815064367837443406930565881303127176458524740072655022422763394633791184080390469343376768991269275074638710342167515622090181625048389671152572163213961096534836758664306503534609693579185249604932676870399518177873780873842433004363647479459427017162236993098581812852097024414282261387214600008766787647091827301776813798150677767638049159730317769990235752365550518492578235997196715746460452032393093956760518404027395303102013121869522144016738783275573006450413708319288620009328315678987359323292989130985231296178388377045857898065352069848003968273382291461005733826465186742567528277043255408385958082220475486604339581571666019520523342542120812577881664658905046179482846539737157867910560598535348186732125226082998033007735055319726800874990004739426521709524141185090065215374956722166676261861582121838141203327865138296783833046447043183514487428194244443442486938310347250641377534049883308499953531767787092523499107324568307434747185390324362983872201015544202643063360547130792914143432347434621574521566918804279452783359371424603039257559364526657008672135027728015388772353808231213257010021977440944823587829886967368335934877538971164409594525518678793205914505621204208153521059177335807145967009522422620045260121909576646063870623926306866309282812337261685015568637133871755557730203440005982698459526943783552354694957574625337906940014172709969604978118739921927608033905821392460670185355576871469160343717630583624534486750883314733610634650105495675443267132086478432325218979351407702737910488919156792705363714896437908742991663611634437423371397868170798236438326989782227624304405938110323646000776695959455452083866834611005665085596016140471880294653260059370845543744596750653760795939340055262506850644080943539396904902163140937082315400338572821784394314661974037647322771973873724754785149015834448902302532668650386716759305025578404965871285147056869979693278817937252689399241904296457401438428679062563350469253778337705244624288849888363777775297072196666113572456489130890022964955882037584833054315503619567680335740615673014858928794955773304564845202650227031304577900623935563935840637885095861381431321694004615752463513214155447402643446896885592677185336748278310632206653518688599042359390638903490567279588518437726872220282052178795661561077183475651632249439676450697819417141156017646373342678357896153221624962739220201305288760519093598530854445328063243414465894999785301717481287497353496370616666276377653149054922150264151234865457242189350820658744515076131241502958900268574064068888542957153649850105461411969310591365884509634453949842364045259811975367154921654862403895305567148221561722219143622845142161300169016578583120305131239494057059619835017189882709217127011486705418573524383649483700451363950994373918455910935026969274687322547542467301493443662310233915956719379475221278937243460821103735592061118106842905739075363229136825188661250657188896993988877373666270289771193521373281290810352001071083308706945164711500147251924245725871796271447576430359047187074690561742741909276437596980077246056867503629522194452876711761391306284938209357965075664252933101176410415733380369561973430101836110889002242969145801096930098444269888198455465594758958212973129332065803051442361057239488256013904345511962228743037190661992562636351457630537340287498652965311904541896748508182731477687477736836020101436157343364279291035123488287524682775991688810988148964163382486211251275894445468081921171792982936327783067314648008189151656107972916036848334074665689356771273314408454134572783081544092289469265642022683775194989482224822440407984654735311705509770716387878120135299454612826966388723335600395135618706767524454024801886830813188848520322904435360563717753448875169631693324195892457055448017659047304435471216264221175096166469066158828012235389512573979843995604428216576396488498309123668564562611615972202363386101932584101113557872879949545705510196278228387139949762936617151829050111309185671819055560920257065057392903530005075229978868009546427031609113195591680802859576812759842317350268099114732715760458575523177132662146535548934900718830014369353039165405278410628047982238249926168678902446455315645276189698662944892747167806954261014126959637037435113401874721883797673044918935152094754207725385293615374645696935001263071095594236509954431041170300717938773906387378894372513568961568096813756895417578605438598768254797170597581733203324158411644448185303178511277678258516769099592656847648096601985816998513865051500594775725999886897535441541775745916012238497166879086975557498631217300390009967972082712233370666053989524012450433052851559063314942487239147623465587781707111507478914121413446560451923073808923672036734336176496940514469271498921454245722072261728042758086893770865029850753105684827425925727099110167642230132800509296171341872114671313768004372128061586772544326905635766232271038125426922767719025587745320025953107494701126798836713101619818935214602968554063991914475660483616570248756388517149043943068845232489485721276994138714788241168364739295647933503574480455258966460162975547679375731344965546626407926165409794664185654393049814259383146132281835144245511686591369171263658674562694238038682017628351806556108805185732361830237422002503455365657052864504936684718097753276962674300039021946321008630682027027886752774939226458947690920606378710581069705207161373129045720890411702900114194761219025633928268438559605377404087576820265880723276406608308391851046482846921117236571619435903853951870884625398006305960446712044779600638724469974969461792680949782426956538352225200329064096044019597203685065669356601390946762895550293410328499728423182995322970533667577291148959138640949686476345218811978080667237747593926709738170486283888210776547322244776312560940278027901104274981367745556420038162628019198179049629939138736614677230196932280594295787859728290583412827578628631316709150671215389741446401382488045291907436724806157712116517129267803444733624713246135074898714218122217079690632858988901406059005750144484070283383938727682177419269143454155616777483185114701368762124402431774500670591793202847676150968776251592559241816512230675899086438313306665115077365107342791275512430255627343401631376460573839884416147560529339014883066493606102403327968973043072274437160923396094287564914364549238442939334889022971867376566752901723601879366881646328170926037197463318863210518644233259217986574762851087990550284322406499223571794433321319537504079309915822910508102174274069894637375727893139665024114417176587514032727715475955197250567981441421114571325593431986407869424337084697745395177938474159998442114795469737205000628263056183089939856631464826309515991796825854898535002098845279080021563132440293713342234702351060342606874828683330208484786317553816928580152790345939554533741267585874848861602581750875848964900341566680879108363480482841738829930488466215510959228604542529726514753668107105302423018719066078066472790851723616851181709046557911288245935092413460475822744818655253823019121006506305103003451631781484818126410214692299601251629293206471795630132352728031612087177433088523762433634802822330773377667408773367337046670374823854471750721436125688186539785068536408114250775529225932186573810589592730729126535612481808726558597975866934370845947322131819087794702814224848713781799391486248434219880902968797794711601357908326016816450687728688730286878845631780379678532311783168347197827083711118038422853545522719266017028527314064529173183559758568835827706619741447031661213076549506014537874506867768369961919194268543028312708521308931666976532746418204795468621404344720715587832072146509958532128756785930047753660625461716931567152701208819873135483494468349681613819283172738798566052617194328431361912234022666024254195509037271550686080246092132668859923169159580882009669267917781004480134596635501450850960130318286866268747109303083403041100455328152036536025282310031492857949718916274401170828149512152344607945443854934910082666508716253968366406400185272159520169883841551441908165632321102189897808273438030143911836118049633809701871655423175474119424632830456421123981883675416531670474335196405722617841716747261461440410445115985066830762601975452095537868970249256867161548352324093849023789307917777064494907074094282133886444442110212177619787129037806934275530000517786444491427073783163429658559384736836640329628977931924228219886080001637263252998614941096874673983840899182865442500938567074177551333013702182429716676193758984488882019574072459995972387803007996517748461834992145424437349201285300258920586093617615490252429793825330707381653608842142905880388848226830651369877816542558299195960609664486789401868733016314438677976198417255786063964192296794314641642985617767689093889073944322606221373971683675405600867779978566732136123072525813418433629137012506292886249826405702557878768851124582026429741945635111259310641097098926508386200893112829223480330581819796427525518530254429312745868673041337772593194963078472660609588948127866942543478379751819594128137844738760328526834414935994226865167103393312259134327568769992674594071149655269874162141810571148586390584437753140561909586239507498218399703658683366849678719072966117703387485052107180468756116297527377266078631494745792244080058341229303736805598597719751396642988311303323724641451737645877535946395465763721681894181520279971931209798324174874730391402312102515543730083486122957466310456222488099459225080174868912401520802179883164389705266601274823386226327485949199379326323023004718004346708896652650971217408171826287017060097423908391291044777473820245033951466566187142255470557529283772412123606045982771357856956346453528559075695272935542571767042799272340496877007958952131389056163465881596728100714206083383724134346235037360047850542234991197356575439027820278524283714966863148043130153468932758819090811332367141944855627743647006510818734971259717493458178838219770177591751444003744097847372326397475976420739093351052268556170924867516634961697310771812285588410878377331061753755349726290575675443098195375009886351000883762082499745621377048239422528492847846552955053586184764370993392944981719485942673207705385662982729791830594112037058118404002735284609026708429054532813718012530743719572520883681417003737358131082056488040655372282668072432647707204167141860265671444959829747588008399115455291407965940025116492966638943071430162151928252160599685396361553453524814856214311276159108380096605396468536610211963764480620915908719376789636975994933555096152568598276836902845265810963025722141055039484261395922027199376958565709580658581105563658630941052604242944560075149357495768302974970040294370635213317087708686206256428942448642173125713245284763489107342892761112951667381282164434422266415150583962537012076503536759905964113494425118627237248578055393339821317496384467193759493914987583550335388025587593141690221001513431658968066246296763844739092219931926870384949218156858291572664763797583712770787015710009123267299757330232588000167145413197623560323371532889442958715786791704106956498404763945713759080120019809013878007327067798542075061093332954415437464826830161073023554643934929444465675452261186309578023532215800291575825103287507471561939669603910278142963518512300364881950276306139473741365316967585796417920804033764706285575471435114542195077036880665899275095813557319740901972316766234357249388752466519084392774590800383487309139059275183445442076480398607625147590799795686999565039528912957783419435663849850315926596118174667457575838105233496717565062401708295865800202896178099034108421731300381788058440245487370021303410851761977926536056412802499537537137652137634671501900448894269981299438683056385771296021075863800747675793314197253476713317383273187367348842034766894454083362420096039405391160157416669941639838862554823482068658954008391361033975507110920981939707307011248622675006344557420519699006781051427817703650470612500829664861736579370073179756847025809044097915691304304612540851224401863997317762802610862945502059988807533019828665325848129899693263700853561543362637665441095478867021824452881974088541033449643271232406921851652903003602379967652959769939161367158471787527852979695455152079231170018940924808612966978832570251012495031657782972448776672318885473457216443758783338622758732593047396049412581803388754720078103482965001324556606690983825033669587413957511792830254342416077511457370910561132928376915522916412055789648131163734696707373733297590640469706192634763075720633008762742208655123106882124549635856127285671006908972288862637576815313824352340485771367257709676421668423530262456895218735796587637061001910845154461919693917624241652633864638261185147545053742415861161061586136794254826030468416316475007556659864695597146201993051305087765060441288754827306176058201279123347658831948814261620754099431693392346440836321253087091748619887250538800850669317822644485202240945776535504678141024493426865667931057427623099449046700942368919457209653089633045753166621156069275659771480504639219716437003813684840749483374779449443753965013553103048997397287774093029482739190322861224547278343484653638718395861727227136239095269406757004411478448304295372069261227479287623453652106888363494154679719219164543634114399503912603172085559842168931838213520670365676639299245285444518204795359411261729971809823299565190519505723859681371219669380565966389035524389024020901281856441618089613599339789340433496556523433077337975048517060536191797178132777158760440046694727848801587921684774564060906848854006166914344513408190882496330350945197904100955785590542971115122281133063281706001642156581366470882241726271263181511154039300031086089440483139075780226947401864247837536872173814395463624768705165716482173825323962915548376031663368524533006815210464133126415449017318832805902879759410210225710198135042071695314759050215024598540656765636776076762879355984224177873205095737937666795663074481431671943286667653368421769103925683527822756627209517339989445785039639232568370697977664967497927287077979699798760867892833345228511434228387678195800472171342367423471525238557346846969675432232709069431232166996311199765009260102320641950491943793564985820925454876206356843582455300869292287966022895832892410604916916357586217695792450670832960139082034577258870906957441038946124273697217289649301399186066500787513730632761116349442017224957388480949770845877909223754100784798906421661621367024795614972231370279492211829665208089492830149977378972422703920383648831585694472931315701360740174960023436334002308758962613478047586859689586864944054665690958753587065363513130311759909889787430012480788012954052132115379907796312685711831642116885603256668745825339337216613014761948213123746082034788130998546933448775561387266677596371978831533002558474066997165070232177868026602505295996943451370925411712458204678758292268221019142156421334161881921203527161409211400507016108518321868485476162303185272130861871512510673393054977958402989435336177444802040961209254308078530405614813084968235166029146628084235278217034890056585976614859495563537640672625894579832797177512842247505951491732209617369790891992455612206121717766313364141102976926416770115843031318002875731108069112850778701867911792286730904688403777031615628630884011302326283972321633452365235445759085409444900376802739843924036520010503479242506018508562409703761113686399930111493777557804801366597916913349942465535212276020581788034529957279048236780502345135492450080411389532729289816118931819235738470638166278625709336261054984241059860661513328498362072440286788155091432226607681627800686371092345753227228297100436568492820138343177666034484566034617377923377141132969109207416740632530896601625502726596807355583514674365405803349164256448246391076389899742622066817856662689848936740764243098098663788294001325012067361401425423200386417854729835858175523573152084730848859761470999096642122112370041379694940000035955304962277411873148609685077720506552811468307612555848909217833004191967623515970854929638920544111565779125484247220093852453998713181877260942438693844179094029440135832681050478104363824150754524369971511716416004852234408645834067965752622307128529041584382055365340397541589969422256759750917835487949510710327191816119464888508347907485261162899511834611199248214331170517473305994123177934848174265677620799603497934303558970157212425922789112430832495246556885392176589848072005735462606777259877266371155034706341509467002720495481993885831477788570178868656228847268241797349776570235427073015893077288093794291426073040608359226184772214900343138930721099542331929745318718747119470163364159306341374641695404177234521626923137394408864570855290614595222582602214021698883058156449322307663925774501059272283174622366651793665653271939260197487288212758354173541844165826195265967687634406721099110952482941215135414011768820919321494677636187199065785508636212823565081407411091408154372675195646065263536229376445350894758913571316775745594238904601907390331674287769451445365403861654117754005813772568118812038277221244064706047172572596269370141314560305268474881862138392798603484781626451747847982701930328681662277910432387413897886514903595536985745815506315430788013315220948277787186243262022271409948513324007551930703836062143081026851335635152118575664465924566018883183949086967860145718268455942257027398149371819425323594583590718513212667138379583676640523997453879978467961200110181502636688503509195146051518487747273632354601222924412237788873584948689962964224795192235021452934437603181049783571454446219164609780111838386790981047354266554262317016232209746769846557621347494080054007850519192822279469758554810123851324680711527964440920641763262988612608956945002541171678644342746312666171766097807421702839039238947733709796433518791492528416761967818989523585365332900312548314207051640447302135811877210818666813928086518833502736523150571965537201523698667150784921884127897727203326597546250600812684371840754411659742526982187548792257194754727890676342756645399691369223154018730554990472219179772743322642237290766177628562803837746856688181456404429588562241943835062261153461948105413299057459161398410263946510362356005550090840060430203570969160048652509179729308782151896330561030321513721119154092119271818826180815574927064698303670087403063378923495261271509407573792785968538054305905127873776307389112901916719679350154202419715161732931584987295522305168030380148826420396252224919073282682992252437848962627881390427680384052327985042189181025137626012431111446454749288251032091814926895607363345775870521396396318941911187525431649099982523044383846660503381923723802258602136394693247433136637439145492702794972494084759013679049324473519992529033588357497142169930276055467057457756345650686119611566087257502988288183706145569573830616007379775387620825252321401190791423168262690016326268976665368077368308896419462670881526599249516542434982202835964549978909334741599091633064307987737720815362536468999804235182877071867092387426984088775024888614904208025060265733645349910688446810587802094815179490067566195575006697270203353664649123744304164424715779755491605126958529194718364357665294574358056931691775397525369578371594552553003827376402649907244710618241008601322169890473532226367673824261956820019332516924826096854606239666601939030873090445635817648713233333740852474044374523418317050972442439090596610599929551648833588563628981809717099774572470519141460015802263957763185515064182050964724684313934243765622225033433055220471971762865913445356526502838629190282269376820707148793225195388630018276388281433061090824581188368043514462718407793268820766345052789437927470738914198627400550472219774076523981233088512484663744556394172317941074294049126765526016654402941676323073873667613172661908920416765925159851704335896869123242328594579043510863241163140826906212723409630762850391576173984237498852067542547008856690702950728883145173926615818703344232710238425695312971834540662022780114817559109557316868429647447227407530246614661699978017590598992561382455416751346274077470776325804177974213728452356008135312010721269181128480848418127755914014559113714399658553204882661194406161591711205588164667045619255619572665954189606121930204303106467602445810678953364253752304813985329031212326160922367661814311302976367796325691371878021616662661004766717798245580546474929302202099081620278629713260910510234937261603080850430007774025429108213564770650140737501268302324082114386065527748681341897733745042872083533505019625107092515009451873352660750144085624060019818407385287903074752772709556896624401818666541283901871076506456219879042053737322889666403867563989954696990727944694632787257835628661128610495966743394105203728215337887998664567455261128655333789492025012356772349862484921115060613501492179197499924414449015128119932212377507747696993067765460181960691328662940000792383774314139234418079910569023292047757605038400487498081374101112094674687040858560260425471982516937051249090310494887290682061988246090836001307644418650782028565201398136921315216442096659342748488436112778789505526831868901184892484934090786362158218707676062787590559137304756325309360130834624110874367519888692249266140127352934947084627328832841783508445919102069959440526012068401799604094466105059538098000908847387987772273357972100250337709324690954759590119224978562965647453206462279168092499032561569833425147959549066157828582455469906311140860597745766388917784839430268297734234953528610531128164234224273588153785083623015353857235539692950270817114657405329139734096825615412235055367291826282967402785806952054526265482171995351085739700161403423595873801334653441485553369611886532010434735837038326131158360288601588092604636261789263259773614911313143122750703827966997707275436564151224625469010022919729943047619968006275515622758779262638680969278959052899282421166642466940705835888638163566361008183903460040850696761759908357714374992716962103655192934342942360201809538329272800643816824713360079010313996088796792978696213412587349077106701306282651738900549170106987004516181326857329719887737715771160413690584620246162563335457038555427782747736860429245485845868514664598014339440269795583314818951620738026085130230358199895972983034346495965708650181242350430169644032933849978474419083965909857319459941203197075104633640549750886520192864113573526083449958234409419842187637003824515687235306544034601213500281408654449885224412491117878505329429220987502983986217539291142136106451461216373701656271028217708289883915450515143439681391868897094734239873826364934177833504736910883793841498352958310919930526549149777914673738180306253391540152611479982047938690554212898767384632499447767896001066220428630530381438923002787574342772442210460122120239933867716833452264372159985613003830137469382123160431776502623309528980719115047232444868751312302283802457937998687814930564625635263289909146952161421725391164444451058766664768939272226650671980139897590554025930597646894852531882125858859612789806495831940550125650595260018936895043871890993430831990566525396901582932599990590806211003210723283058861828581531715605327144952985852691374421763103288887714808027163135639289410221025429416881596941487745646247152706031634014495374814783215916182906888560034975023765988312199670588145347366815491553131353097210480432556509172147604066961200295644094494595551940038047637138631521933288700663121720880018266669492436850481001514524935406207737920040980736093653839063369745713178744988874324373924308617660640072594309991096834538114803363628373846102644454345189995865996241703233466273134001106650688415750854398842353159591655265579955098041130611442329358927210384593081027183272350365944590814890540349295509952991613801745199603348604925383907135961636203589340280733838037189394424528342981801229489630279616905831598550974411328630756872725198352832168587789736196933348235208539109810534075610622407123968898636679965176305078069913599312206833304062627448619350531044279347920230091848121300798632608397549033476309750232247507519094883335188364150797469991507912873005910025575152851297909540303426087510089739928730976048704717634423037055727521631167220814813012659047506371943576445488581924422020327390473494166824560499603724480373007655730154808078531878516964590290114095848019721783915431506777579913767827529333343345295701899626807336845508144984454637670555192049860328024660370957284884430783337737920833671558267836447393966370660214826590784585500074443291309504284681167251745024300760665091537032601424724830546133249991367483305025093540785843636661370614803163324951292897129604265038095418840261532166875340664115182187237177650121917862029821487274227310138028858822658338461545276096548176040724905048033477213931860743516057971574394920562655399572781147906038848849935160924962010555720805242572442561769612790879900465856179715697478594927495079523087272223698691221431747233963994209920309619882859195026809174342422087893366345168056690933904252821051803365053898669090910754420791640741287315761413397666811436192689088240469016818530260723877434823526784213439322434445855049068896290623673833722229387146064151478125600031632052175574348489798414077115341163446251479157111427558986571404468198088575446914776028142226494983989614451607438337917594370070433470496656567088904686853209969514364725735099317591903784766869367851388316232091040338045641758491405116604459952684042306079477843766354503997757534555275444359494921188325528063060453473937798605061892524108133009495294766057729057969433298611733660519572645504837245649602016920548413342470315852989173263506393441523247665406008540569287789799427019281816492897151979326347669906875575881441152340447524448306467031937141352998697722853711633934334222828174200984207257197179571911788393392718767424208101637818615559435547847410786111738566125516422549691167856790132085553666540338473917829328825270671862036661790169517908481269496396712617882598384030162694105461080276141181382271320202711340487760250771063048183773343958067289311908699084117032772812200446747186492098948819242348170314455010351001877881336976829391397067318037394093325695866520192375245618010387666371891668011601303568852324401677541585870990268007889727889597560263767769618428276767819097459747654551340463990495107259802445638586414287699814902346906178037824755353889223298101867498390986519696063368773084199516096818908044069883599199752821928562040010203663635755371120291025090370149268850068081005804240925936364512650796856453138589447547478981410683386178316081691258141274967338367018959740557040523475298974596977837589252690155193512422582476177529417995396045256591790680126986977004759970206692150746714976458572518106992850200878959573777013058221725666527858466013648443905749171989370528653882917881878926256790085536047335481817460868209118441686426150268498688005873726746170243513933641994744255210218966636374895688410936983056521763988152616677836348599057770594342621717047344514934659386516371605106641591061380836829772832851342327753034047360061119439902007508483266482583975285547095851872812745717622768390707347412428720281602040275345043692399292640970288004542153694516411480864128034001970887368630188441789396147543583622266097573024882041193695575462887050761700587314898068040920532096474955872741938231260455092950870945494955987943786795142836497060424073574445287392464658244649055351630658596314566116469281399581311351009934954107044091236287909669692742854721888945562904119666426055374748242596864722423606899413835095198711371818446400297340704948673175640498325445459641047696976902144765131966074293807407372845887530479901097016998334223660707247847372843317774685193298680509678817198884031380568081813809832365332271360014410071945454310775315667900164603847631544129975393361625306067924096696373078000955902402563680428042698692967691411224079217356684695085741442182207221735231422008790392152861243699599900303275201829658762989020737347446844005790356605548132354417324314174060312124745324695211880676566050084926840506827031089347530878010122172130537236065132370115690353151574514924141921485830098095850779913490948998738746715241153958102780714415171492251665041853358658820024729237515157235513479946038185300658703494501867206034518780976795003791167638708808187096698012262641982113829180577506703553134730385111910749114310293223328587644601943593344067231748933551375514746773734284757545623690603575846690266169465247381257681060599314349020504359493982109434465674531346116539066604351218418743995921780375246473646934234951930097514849837966162862557761564578302384715189397629475563945035428937031208622355153999053867356485562585188505074006322775833429528149742996911774402095126243699446366351582383694991834539248851699290730965682981560999217202345248122512666077551663660107223210604824519667136686031294505755162199491300792344299877875643316510549777159354960207538285369027106980734798605141529709031113218615450434328035771950291096534735468125937822937764267640359677906999029210987522774400314254556474715037489290429144318219117215082155373647324098372009236679101712449863499805252262255743986733152853435273158009542049996432172982828402439856626091030793853123276074392603589570452638928710440744742818432598704278176287844027641807993175590979216700970977371126075542670323454646635304109564306152585114655868815453460827375680070326664640836886769906506643863558328616717961850359506341098725362219278842173765479546320523649235119189273639614414895602418654883136279505436259378688706619999121645794600980719919914884102381749843302073470398174805408930384348458450295490154141514070377199153246672790550139651380641837201476478423015906345575391058870811210562860084561635045047415779532731865914099566050787849922989593900675997046824096130002041240282034498746480149426103035417754348686543618519615381513173164781096610405191391434451373344158936312414521501866577258275778366766837449016661117581763293960265641641025890251427740117499451243863649164903891414359306573020019428805067948470776261270381566755934146684233794313213639300048509603940845879123794642767600100403975988270624986288774190925029285205629536768132076120756174491353327234785605878014371375653867407551717868797224036594501640419416071340668033114236868719068053555301376362216457692028897723388942926976890914156769426450154209557503968092628998703670893516084715316418652949069961520402092132878142569395044793959060979303042764555856858242575728756663439287773668144180596099918012840113289819301923997663317394083356382850717364653117675337482472777865219847207894862178919370440079402813572647438076152040080358089182582426940510801381138571597580688310543028793651210764999871510377187661315319991569750585164650772156081455777274885462476980014483928387642355952789042477959587365340755148121553118455293255877326189318389181252036284717621403827109054419755940422439220485163360972212041517118552964637631964252400971023612531199181385502289373311333804126487614580834510614411832341101278223022525020183228386391486561439542331092141141588524669086544044346173600861782120560965366079591748058244859569299173840406424169425040832583649362330321670292174476643699371454710319146887806276284010102260779533783260736257129918480426305539047729764570412095177660208539330476909841922569683825016199231336922537736595384833071656861642950583760761282833331352002977473346168250798643797360664837353918144257914659940336496792295541219486016748294000309106286119825438733389026586035236928139327284118828384213542158447133204993148721768172709142526214818646504953428466559134232019509732781336156828471399109697825398162961149304756155825502603417180638605572581860570494051474939937574517029897544898696749604895232549957109775901506056525732319446132260413922570008747207420918203920344127537703501353146284262699810158744494474200980258129404076377214945377443816387012502228303639813210135745315338670296523209545816196743372529238036394463164970536085188806817319641861639039534953779730691341275622428822184713735549605207108974228380399722035799373850525216117472753859364791216995945772045680098526561475645938310213028004987724440756441179179291822863810315058864572769047089267980125342414915828015411765741348498277219926647464556811443135494490963434353394344316150563658886118624132966258487951632344767801353226448357477246833971947110439417985454473620371796299170389833248132968369140520084305281887187722501487956803214407003606852112845504921637550445733556244381857783363305674704625364493503037114446272446443589821219492019107628789405796611239450226282743421583367592951744546359871189185688322454717225156203248466080347636344385623898399937538910937548065831791416102784019390124610234946999685797920261594980708002365560995615049705974770138699678061365644160852041174266207861584978130797185427032244187067322563198526708652720732349526053031167683998219416762638811715222583707998661186238818568561561103585017759802532260311068745130732675582496213968279573689721125714827782219452936563700050843707442984405499257464161073192200934946977511347152504932825274139643004241703992685485737983352427004041147078887685667834279605975105532679482087443932938657463673206971204066311939026007411175125065251699075841373179215860751015733525616273414085529984603692100016754881138852021180540054812121470831215297088821935162308550302515294729092762380568541980326147744300044342548073031442874327146208847497164570346162070518471645844876074895858436064942693403314424415242730150825547189521787181571405821789380876029138162149238972617135391248009936605679281653435076794520706821774608299986040143391321087189036597858653610033124065202643114952341582658487372568858264235448518284549937379650448522195492032295788150954221290486013077427946176713695525781249797247940311679585433154896845337431619027509413658847288001868580571389148072364951825051246685962466385108617070920531208958252682930261170330021088452704083477349863246713501518202719455746672244346299892783031785426412128048015761364473022494351644129298180986733457785917780125432353684017585926071319179555577639298802701546662340386453937242094215431637573843214931014641383407750625002079847556841207682930370751434585260391268089994817405731505388251626919857258335081838106765174706630004672091829130004856945620685693427103049383398154905292426181805494420687810977298035588310202211328719459206698442262791085794593170284739533573980112094877210831514943599362062518165306861340170829757246493632864600678740260528226172542146749518624751279589190598909390374537278051641324907469829102702852917000964197135776605961474300915111140860258007425473852870775687925437481394490867587237534552314823063957578673069557897672593035269258718311542212704088894915066602492784075591689527792449355116766151226064250897976420840305477514551846819126962446626211915941045845345793993832784193057479256895556470860993842048459941828938373767756483848284286733420553544192221123027653867169964370683198344567561018948055192861892531895743685606427307478766104116756740082101208041104092281249983089005253965529271078176178431189405365783987040107504584465939488445718445099122480522545899660674779957534526822892198174011878491503814780426726067932965530872644702637452099695630620425073848427917571026798638161690920648978357701863971341934527170975708632508063875120990075911984341798154492459186144597540561752847478375061430817474376044824477007284540186298137997973355671845495559012227051453331260797017649080023831277247806822213717279005488964811627624245267136912548627305730690584424286622230890685112082879608097262857136141781940999497277521739279842619133580652631510091574464524105014685123012534581023151245805636516095969759292729887202278970888507384665645867468813359146877499496275282751024643597107534958725604185940437599721590326018500012534270112449729518373170457451728281851929813800348264990248082739687314666968390794019008056335994492556498761116430262367442693275405462235873982698346873455575960334803708508177499669642112903659049349657986334409464430560024242803733851687593715573558888443659219114812734027354333938828756351018077326579198191743619284890654830887141277152419144285289709221833518316083102364690622707646140487900262138365705895168566884947045666039470939492428463208841426877282940376100323519010387207422276828448858831358365554712632002954768679784564710123399698091799907573752930821651926496594745176914483406012335437670798600956589944281907873052972079171883763168070738769999903154512599012185458302494351516790668064127263778562895542707953926714377499104914062923369087968795291911966205537882412799317745832156574358376377570741054894055515051771998234391850190256098063822078003814841942672735218662091116414404377006607848754663120899022254747990274358086961023962829711806508378893560802938824461361927021281683630845071232560007671074908067293662921802557126985953699042874293474373581628578550517541273971482073865098058665885808968460702968882613684163726668996624914341188995133857250001724096838256678740175019077220066925758500186117262877065634381266834388351258794482042326705402422238629899212295560564889740933648246088042566630251913778779776342039001752647664969076163610674221528573066010034244175404596729382409783098741626858600983502754077791449790260807278059498538435594822544965443228476154249646580845499446684373443717380209011190324026036306272371290508602270183262078066727026878003468036339105649635227218860642086373982771321306476773356746614319150210116125198378941468062373423836827116078241913530396590859209447837453576535557241194791852736487611104854145147582346335941972134301430702465452451372418829237992627175611796437646212603449437144422587424176070386672876168689642841810274292530652801960033606579764021213262660278247579467980824612614104358291088222456000076035311230752539937491889240093887568329496715837626666463137880647430946417442211740033426556527537761975400023801076590446505318135934368589135451539117804486127419710038049163261212883827503534878280094168829008919085770059412136618938564177340328006134887657520409457048007986111515570918039641457055405967487881210853819640123619207278809667097083770361076374839919589787826731446264351217951009715684112214763283504882343068930012448595485472525174311775988275176278725051883651500974661576942534912148082152116977255370325104524842969652577412262383618005617454318777484628822232735915335101797600424552512501861876207519070611325375037544130408400643630433862313235073873578249750498677259332639168528164863390081383923620565875980610989917238691173913264089121732092871227374454186172261255773269232686930226167912196916783875521320237031223198208099875463723129876340980045107962842241912839096321175649854284405063633690866729302624107465171748905635598310041042118167482861243110390612162509332704907114587593718776608024769882646317439215717365230705940954337502353348452205197941795009515706481593463535420094762501706901780576334846128052794133079034990622616192172559763338098788225232552579649623746808856445714645580505523621650295604637903672323160003766797347660610326334875659030595397868508747692681647806832180656546874104552304025195396514646856024874953728559679279709073696227311317047508312703661631162503260140333418947090805153710686301915798328483541161422634349629028754969070954491790204939273483720016030466690175640194964332477882250777231777028297546977436958736519644047952475681447120543552966251007112674555698243935913712682181822465340843149646174665601761375824843030577552274634003868587344426830128235711667602986926125109100309922734922284895693809255965958892532545073945023525643322781149475361768201406384692869341273181811783656808144154012609680087411258759916229466900829550895616834633592670129443661514861144449148921421070074926339454815969912885565016187841162141973585296359418616626661094882396344700402390708567223902396185409390052129088481794767828782999893465328656070486746269393806475431916720980784688392558753964595120612496864356427598015326913263948169212611930580870352414291199211319005622619228063176402222370126310269368906655883219282771448115805761154036960600676977480459691502624148957909041636615485867050070669722762916407181549929896896374726545807182979489762337102739232741685262530947530715019948539627197069772849437931363838650812259736262834119214569408673007537956818101196654163190760513054284790581801319483194050533020599674596034078727210951005726485619163574439021645918757248028579458685360738246225191961831089246175897670155095461305313389632069849522013806785753220570738297998063635226009535612383868643659418296276886431343426669090674147566224775998770819137444223868013822187865718585763872972324905903830650271595717651404367153433796459546420842777477255507264160166415257698286800000143655401539171092080739150554716763778421879131863428714226796728015970856599417325990081982158756256699962683023452578244720190068102312345712328311786828848364336338962160088156615783862915918543967046498809425523761096041616109995279974661006548036960013506225422401296548924861721333015328857897996762281367972960612867710018553744073451931087343018928168435381315106932834122445181657410112058542775215758765661179092934343699137892472329814896609763917289513590928425515855483604582086917509063148754801938754497635744980637458770008065098496797670864044751493964528942338854366591359974761096341555646057721145142530253980551636985999686138731975854222677073011899833910149280241121232442587476158951037654061827139555051102275987039305511585863441867405410143647679272376747663629493584640529118134378162170687948131510484773344895975769282229089676977873215045918928767554980072557922640852934816477200095119049651624325031479464971265420545961453274921878743158027022950789893443082463746201041849577636709080446032868747864005477451754707320514738068357248408591531553551286598330333880746970117110577661898078296545130396541175947614152314165023525737102957060727829896304111043038986810377226406499301104054843717306073224160616554934063823603539663910325234400411890097607038164074160283155144129045767738076147541659981914664035868582892850554844582872553153329400839414506193950488824589809088869001344256108196551953332196950735251125398380874369702983898853651141292869654650824284932305249023398782590210898433139048802769346888572416104057181414607786437894983421259384732538695581835638179771815512525651810908521143229839123040786183282640634916015167503373366290338985323426056135607330413103963155832200032256752199280576439132669045533035070583054105265751196122179766606684280599305613336237313051094148941696143492239851680467173941815972612583555235169856530147879909631666920114904332768889284898649291043128372767934069239189057703070694404536477048554025544878963326594323286981765546294988041487289451193084768852302346122169638505590260843126020289400304228841710472194205974408548989832318430721003032598469333270593934476233832452457766867628968235356243841154489065766621225541379687833221143917477582292616456611291317248438707804159575754233736189065253476867192243311047948134942757653421635075355501493999628244801205983142166749336927051685481927866328070879541772820646527421716764671434184118062682344019920406268808703699416846233897150950598265653782970138734147400151546882205150577477182732156700126582539261166322902127770000252003490763778992972804872963861859574647040173569264386155180106440733450553772490074858559625469951843175145683096938365497046323249512412183831817840899654226915661204904999884117852951573538187356231684244225205543707592663970192366792671653513474460118593462577057204813494773669989758241972772450840284914216937394657597400041769394488140100037267255721408886391355797925521302749802043722283790241873312371511962425093986481398038825651730041737758342356230699950159581932649486567592820980417249089864682391298541302837067429217569386324825771025942749572290330239181375227883812894169023745138724659817260103925839247294688698025654053050240533681617064811338536059817640568423880026243844247012335247953467317492503622356675874761282466397018865367632881035456364163876710694042687599667851545463713696194296415290543884704808539826353030376111235775115720572205328265006786719910271886903678427781893120908637639426249978326046260138495761473116332858348109307669445599427722745101837823142303479859498049868502945935641398394877583669436497252918203823422088960771928718603312205418777347634859885507208574454613181014229726371047888085669915136180769940553921249209869341019774023442963514607209980005101107725925850752273248365788600421595036750845321672264820618252840613284198183654943477900869094359820707501121239304361433036541489364391908789854355468954451188661172024422029825200670117670874245008206314718342740176728677343179800513222126874576017455931191964837045715036335812193503296313274724567969618885673002458426961248864360670170516324671394757382614741769905244969071488114372804709093369012913870384559984633813889173911723713746998696465535677020452534460045370067430294380419288642861194836597057514605600095401954057385629256456276789104236964772423514077281575914988752933565253745964086623858361805312156815557106027946378571782581272967313129529196342159725494817162226303215174312148293201016067863477292453437313046510227311753959740988710097915446618427569422265054638983504986397447297095032669498741608127360255595016963633752604635005576318984972379572682390882731110873379925510635925029751836243893374695911383542498692786145644938728094670103748228875970272904713442332759726314737428753135064660036435822717465474254362927668560724934709990478345806655731079304826651103278014065098123779913259535847042252837284599528358085026681436528042017295279589269517554666328707516255226464134794527126089686084274838063839627686515219730432694442866617011781877202140277513191238790066917802744641121518619181798978150589401318933169803522909581096740904146018749206952661933081767808766314945061966817058446743521366724144012733447561940860729576363005391067726140606360481537878347697106473874777448950500770092709514979272801290448921584155787284385368623500597739867446244975108566033370472746615548818485508420436440118899461620458027498872212291685923916491994678040695289245770177580609605422990089541790988514620361123714229639970403328006353130539400679096746405482931204819786384173084246617528715759005242359017568072996956040774827161810248593893734578782453963337671437837873659883168326055670548537750837872382277922782848260179625935475215355882188329905449972495860081102444696218573778737444699328075420730800036764957892683362427048104164651150079846784111001380370135341533494082423427432751382203454746685469098241032415584089613869263587856629918303449384752978250919577724072483638255648219099558243313508607273380043983423261002589669045257792119403103660132438623482333232697750244272637419104867539110904557023984110766455923936098630281950895108067237984835066385048753686907678529585346055473329701576610204634473022677066501427983105758620442890353972996303299296263616872025440742095467366556919932558061501551088348887039454260011657863749649707644357399418196008989046569088936855318901643091982162298036964273735055363647946026991239696786831945525213129056876201912045069949932994881176676970319923313930596135977204418429788617488970813969819466361157567497785980371259933124289640930366440821686192962437192929723271041633951062819967335831553180930981330024477499395673162862855820418928382906236828582609562533945747401695576661427905927535369062853544396351981591523203514444007143247310015997871264942655943496379363239045475776467133244242926428717434450762479186003046079503030251683411151598883112429017480941261856540776324579295202870221867146010392717494350890055555056606111233924418993796426551749906800683213400145924836999324548761577577688071889332461148531851524744053324385045115092487989581561411182819458857220589864168864054484282332954818332156416243728629696500922062588252177171426964384786562913585336765537694776460614102594252000479702052479205581495179530141527300542513210794602941467488603299982302297368120196491721197250721180109674867404050192217256647451658345529027871702960370600116136208331909860046193092440083935131580700733869923528613932495546043026229602776473765312877602413825307746063334147980997366681744168902022117044629656852208068069010842074522404553414092797394785937308793141845313989466701125506441546062253950828275047383992286435826567496365817282147705068268082272382553957658873029208484661516107152693591536482790249199171746543213998729499662279029262637629012515204450276204136976048168706300782102638145019950155556367784002580181194212082752570840184036951781165959045065275749510617960291665553976961871464536104987259413544998520573103151791146807987834188181002697310891705744688176288430286487349286761900041657773931144587482791723485185927352453670031942073605098685783019025922518441746632283771180268106415521166776890598326230202913596603704942728215695916813743354491805888272521824532809755860804231793771465355067149541950184962943316523526075416617123095653155674178104005081286331841205961280834810903671603267165374754835923445159826111400354712288053541125899157345530660106949106500872051959996130745263137048582798263638291046732895258169084756806179947103179048338111220765332707546869482353137419853892560141396322782910568829179948686497958489419426250077773252732186605004233681926360816035599152097624188599046672581821305809787570288433555688840752787502560369837008993153288794246144602500590828710295334002174050910875002657338371982606130016135748015943545649584285045357647128901147686697263491401807394260078447889570096411339523415192137849105182417907440059821724602662584911849801694939552167052535772424757269691763473450998181588491886210796661972645514983849082550923110037639211346446763784750040629443132001007790038529581671280372525494138280836188453247159941552071625922697176812431730766378430713808889827288515465564478047828319061587801764979570116727500941309851203741560277271060585411306981144199952693980740216878541062133385178237410268759888584576547860228792279629791699211786512304105833285502887950617917146791330419632800922221690365433290908560696807657634322718492248143830312478314198402340127186282786958856154554844598983920653171747206183584921952536029782675078885110198235243471816955837380418184844152240468347373862270383085244463819664121701732676699379567626405624270419160017632667129156389693162226201515661449097478852988197254798402875860342618869980094661223091867541913791075758736846749691583144317454709217985894801094211445921366467347395712492136442659925301397826343224847374289832505565859063976416742061226654404509987524054111254901553061690948348108762677185098816587258809271826212142646196115755622842115559413780608856827054461368228966632241319322624061907407367009445490747149879743647385234671869823313470967264778619850034787563606432571808486487805678215704582418786997105754903079744125817482817066143228291229584751088809890255772551017530682936335010267924830383212393290487136980753554855962080083520272356413555929888891945951376520420944636584786671959538592271719118219983511038071889213346915881166030773576731238098885383945600000235729723357454410848432892899946146170969694493688837215331236944635524015743899869709952271885698974256662391986437960326910391624233456043959514395043890580231977511979049839467995436589811758970678774730703058436225500187243029057569208912349775177298300492629608754396507326102697779241839009686111576419074925987091482967198698498575666308519695249630621525697409455269865773887649617064863803399746272451427611732083519779867384723092838099050370113073159604843553913655961786321176845442245991194176392584754516008208739277378151476627511224114150175245177607473170363772959083629067722747604129534717807368634294950628596740765368400616434155102264529659640305364855889851869362567683809892072687128811142023544847419188248597331733875446354554696144736292517531103902689937164821655065063985421250544818994531418743671637186548463599029359974826644469866320314345669692862372682747401214449697035077326361025700816896371015249981960094902146273703233046596472610510070882519051873146929312240252372973052963031909176475057608293830814636076625520314599067529937459745725507204898243370001017644537381813867445336037111183120190146319779275153352136133669530794861715973149002351732767255587745813785236038485093438628365026874220764597544624355066807805534553263625497021768650848833527609182022080434542428828849714177455097400268836049869818770290968256469892839067371498508560918127126002777763326989124576105805154684317853389710376577669303408583693510019863555937698594550219519175135425602608942327945127469440281460589570808266902515139451774848007384615522320719981037340812779832148355251954435009052306052147132187973392102944105307545925109831633258281345885416344822964992264171702522249594854936198764465230205785096048632974041724983316843135024756833592559032421303112274620857275708383567333235871103963115733115799234289232996384983899472188273652800564666384234080282640570163333572768000981305002180460208381116397083859219798385577747949578278785468879691999263092773098228248646181832911388528960539853787863594572650473453118683842440215378538248152961778290744635253937287644361032044505935596786904435637151106838789601410599905996541522398010437638487047362515328662486565023390740954540253669313375210565404181431672989031911830886807152552632642256843953260105419591934131552258204533279536535823730154565747393068411671247410083097267280742637488444989378462872576941498090588200317983593454313794887266182195962408019659775262247833872253914169180706125196171039072332483189877559868366263754852130058921660805831183967223933716600798966444513994084126874347709449060983748601518820723840760065146994711184417922339275160108240305172982575237894851892678073188634779524533785024384121553729935583669781621615263117421298075840125702884008407063146037713640995236396784343770978276907771368288198781060110109658684075744555634174427375681953186805252555410147951852959483857604476765379378167627053201307678701611585386803879804355464080617817507962468984149922705171911532993722918638522843296831712677193987212927933879284940646566226323318637883738584895842397694807156524184044224963383263645047539548954177862215907034422602083874544000448078521823052743786922736055706619625746862342181922002478547685622912939883626168795825025402320561495974126961162615094887233343262582753773014954165234532495963743193378252641205418706558898376663493845550538073682605923286449403757097959844225035805623460266230610930361186950266492460777534329613818452375469809237491238804019142316957188257348938731439284810342677873844189184727323993305631380059318150365788930948845205089316881838256678833125598453147675508034350648102868285637348043092766049943345271746318125296742621046895823040067163804276907160213914858342960534644696197553344826382007569956680278886560373627690305776116562038830879610123858575718881037420026617587303159288492501576579313484289422393093063678645680149483458101897484785806443393413316169446244107127866123373609050229506683759251562406021022414238555053646720922751275943498371906776575118299630989702598463931496537108228387816445351869542752282609868293337069455984555035599945254277765194323733245955713944117796845135398763429859022724938514028263734772672796327557260140752789781363017885046357065189869643087908248399647405326180191470158786878675024443990040204643869265812452961435431865027012646124648435892274396719580057588782078081989745408100129140174476777066909603454822385715637758194583715262996651266641431252119688179920379617510917330742392924712490554193315903716570706719201111707294973314332453441658237601121425173012908098456616733396545219823325791655777598249295346803443663098897508721096619139285488740709604095389446013226860413636216155995147542144368491365232458186795761549138851820728828955140776663164667596252750074848784993990822925979057955579177356815093347742564716197421269624231319441444483870558344956385433736966538797791841277665549773879575962391589170164447163551806736929353364426124889462276797756627509889279901619340273557514682791061659661108577517685048322056205420328682664656939633786439923983307759560943899187894173168264113380618674547871579605509385187369144744441413328943334716898337963277561956058313152683763943373123394703026853510938040235956708492374818132268942949178988607661048284510082022907910465615204243090840239943999557246163409477747453062607484316536351380551980461629588053635005323323385162736384973947488206999322701615861696639738441588362813488837728364769642791008635774171939928150146563967000521384218015769880738309047259317427605516532927123488398621491591636759815014124249104919135122424649715123913193296921129567011533981310402200878643980280668918199136059849494761059845296784505001335810057158468333194850170314547237911872158004027437510637007546184573165021783182297674441959905894220266772930442870312962443390316234187954219573214304835998400559921501466300846067896509765081578994570386196615565931506015198911517334425602879322232664691100924502605061778747604905128165890425764106249957084421280881144502001690541487815625421851386276941276097281611367551606622470793136051918472270456560755491650596750878788696335496540059979926555023589601949546851827152360908910901628226614509880401683119624532993387357660877401478116861135124530191359495953653631873693698845440783960849945986419655112723786320114952202083725879153112623006908743379255578913571745857483360155693090582130926747105528516019788586389369950316084374493567494438109273525227488506434534391755532014465043445808548550956113578343078267715942827015688913137060017118709203615944577413946096372072259541825339654259460385682349446873294497027786494153958233316391291187660836427080649611410584195391721366945981820135266891009733120199360113947798142009901613592049085860058519745258797221457741135465020434720575490019034221373521617015592568016768524205973728142933548105080511100765932694655123783268585367746690578687890260081882381855435753984745834759736331924174859517620815533659762844549100377644304368589798520915851621729846553082091726589911658312529956294079251903131645909081331654605921377289403097093748652716178657804097059044529737575354698465759788220685446774065685218098884584617955950337892826162225576211600865417707021389688164875852121420855892580616962137927520308442672462186345657965656944588247991868653634622551776817357700456196280465688354135532632496253905376723645392609321564016748552211211388515299328418983281755888261923663343598297127399859567879639622610612547576632840224926985367417011714609223037171737615324827672485013190064059710515030472777431324313756363179105127416909486282437025125815801581384601852316943822497938781251737404970662853055550025374983493501064722749807464725180558256753103816317532723353620126111152513810053981926621873688587804656587834707328965063823524955491585069521133841019831557177308939808364220205281565391571678343709032481735770243069060675625064158472865638660716301107940293898428075523226841140248759685904624322510841309771785910765362901947883966503067039571711850117309148320134370494830902451692347684680225327008938837706090337999101592900855357527754273592121585922941678398482311976210156506319245519601209015068580150660124178329889100230118731924151545464286141218202447216372415456124700700563568755710470795877422869235725976533457516595132650788368352667066275449176190602377019360697766423993035875687984096578170728457218273582298636746492559247487914044893755144667399737711093464489400464606903444832953354730494921479162153148281545638177290675723174520257092176371891133706076818537578434993434283793240623827997585846372515805173398281448651348445940277097838337932966651530311701008318047140661120705178503235634027347637457553156951815862613528402186536213345678181899895322294238952765256943829237735190007608969755687694908350218315067785289869304521596783123129999963600493091277481232093882239808112067730796764497725451879994121496984554612968957190343434026345835739587456461006278802489414659058856420614644738329750546667974916985236755536906140821092864642922823340028585749098713994313892273378842474833979736240972949879371925725123743003561457606767451013558768605405186564567038252634960611110742228210593639495727660944040935852752064006200183991801947685430254761535842091753019537544699573555215733790303088986559428847878093464124327471397360677778509700156400646394310392070634715290435160653374577917705784714523545173802157745841020542677394219822255060509952622390419188300091975583189459528204060354977313150364840317914142740872555599490196016768246977634503106886257115821834533888321132229117654872187938717853009603690959257204637031303105595875382900170974634713061689388179374736073442208338150756221825202342960097906534741149028409094450684826483365858653257755293555284386697121106128303774052960345507999036214769428105051889035586035372659043829682658121145252796945078434734410753566822128403381153087466118831054889601219120214502614245189816083298710161165170346214021950291123931134320068802387586023328267306597897894386069503648235111691140048285060250584055791880345713977893571463064567781293033609792816204899874333328861955587443200326384980731128162622643699536308040659288370032893909803106293243123411449613304232327803279127904448526967771044429446459903099370847362283906844920045027480419453378853252622573577147064965868781562727332017979475593529701889235350501607758000289495532195506553681315872910052629127827537981580902309339742562457912323018525910831226002991400229603454130004774289204821912946858419940189054961696891608031845837378153574510618151642447271199215391126498790274211107510573246114417212193722834348020274070149929553046122501150016060259874719928068482790356719201693545947608063536223642885705573236954861294091267456704191925916503304958746895513282398640738303739121111347243764845789317794327544589347331233489627731732265373732968724737606419211565412974462035783558519755160654142578679439606567486764203738907247284122769692675197775842927626628688258839453488742659976550886148578779628754708696852970260772300899935740613245165344599002841516434037491804488310859731841043316940232342454309695073244691829172334664127578028787105408698798924915380409839854340529176099150782578848243756624321103283148186462439923411633207524038730253559516973041365599651055484678515152141093743507666477604276073938452015158844581342965508649883635371479343172073465511955692696264085248923059918028044411212150147154708181045832386897927604254789842263848135296759559726731317532575898513692264279419892529171796642330670997988881369198956020312499492714305869185948046649314480530540973393978965981097999356516822350011077952665641653739142585295438530584706145551601055401819202691462234671967076294336994957694848361152032777978551931036007408322862693930374941071468667237197074711499920366678238795594723726564278156798804346971485028507570022890775085009370852473983374241447440988436610240876038242830380458929713535411280856658287717450725686241416822041802331355629467258405344811670336559377617079041450120471664020576956850553106869804250949362572489163088823110770370893709792546713582221512516250532155056902503417336615278296360839856420046408995146554905966864600136052236370116785417720031115644359800993496782189395910590975875304725587816673477436729786567333892511718644140872245055291656981788521067721720049436169421116344552793278858452965668172884254306948140081356905819747080498482957913228545305207232897468340063775568718712297581757710223333728283424095247942903590165488042641478693005146612923445317690685736896801741577096260924841917115175508718048103420912485596380230942493133015963438256101833990846651070697168236845954386812835552021056585405083921231755247618905546274208574210252007886586721764987764297139356071751233936154984296921747581885209084013381642607555670122853240707960135312589382596241211100651703741972681679623193258963049052401544055537996662659731130672916249766850686676572918463933838225524096059474268923375892662347379414399674251294547680026928425724343125397851589857496715788598534252399411288672529802834908880661606580319555079814142893798099820380369449767270157194419422851762754318464364825698882039240279060177051489972558491251667552409804090399770665406886223338966023853509772325132959795132796480150277157199934483624005010444064221499112842488846863709583974401309421861605621545512441816815470833402566704055758576572676619714875316562464123690650677359832306852232924655834280402047605422606393652639620471288207377864382380656750627848059592417873774403414148338192652366916962080900483399022799204930336951658766757419873745440894006564356526184610081415609605245588607925622910340629653079454376664931344223622950457593017332092566659546917514677112180295093517050519883388289557630917621572897401577751389938521694797213832508784029039063265722330044547121008927797432149618840086053430553819448544055335516207175612560403093400574200765797744946868167430043584917890262419883382808828228463729648748812832014824942461991755619124737193693638088545506060824219794649177377114006710011859200519943495694083347683042658580201169686886554276858940951644039999191747992088445618868312349351302999719412999187911720513274834650311138114183264505337231590785473382369945129324761301373800995946083146916963344640924802008397911823997406042496399010668809165110529109667610313519666815858506075447081880867351552970217746584516294820084556470346783037817348475254603398089710642195747604844640225771480310762296740786605986539331252511203814978703928252020358298390170845239576976624731745385334438104500440396626288594330162256383642638552788029566996680511243328090001558504764241089677509108459882090400735836134463975214872148204274782972407653146269823613373444096387893846927337975268721402580182583001039296924138797598441656040055719623224626533612380697552325923974033367532786197919723681322833322173667480207326548139742262418962352836070173838290207474986799301092264000129901615507085603337277419910681920380770406963874242968763238488772474665151958344350785601470893849072383511254738439444227007924500026919709711237419583389257549612869400136784679076741883282799222909282367033724777112874957281508679558574020281007051611302800932814750242972171489344626269373101825825076670246178203064269755468387529571570577269011034636343270568331602161709224139957537122502410721863606352128553679680905157881143082475060969293617528259915359429614750330522931123921827807600093644935629883764253894222445528560332816207949724413383220889128061047430746764077799886252556204938335303392260674939894491090732235236722288155204244546168670136884197453496270208253044770150641843430334548780187170325978936782440967272146473113299311858202733643587517103840980693136760060873626513583192991762611384587130783655464098802650365186885344294448206432159018400362107601130310191056384887450434607337603422979456586419210124756398283725079114625552207639254405028896083288950629430399287838931568769096824521719537074894900200825619467565836560401666107737749805332561524449097459506789800369747529712952988831977991793129073816682133717304245914365218911908266404094442282170569213568452256069462076359380578909343622870939818465615645583568272274588028703645855260737596899026942523321975862456206632368558112243345585651293005641611233839443190418239887965212864304878766974749425011895547701877891651960845747788519839248485963680109090569564306970763808884500945537645989356889459042254544539371968180799915566150052150597009570231499830999649415926296638717110019124240570229665598791298439184088261099249363279724968672482592014911291292785301234926146433547353843749846571047650659239568334584720382331051339600980222447399562713007856371152769172262107259929395815804188300045523103230647283276049305466256536842867442865259798672837205978196761616277667502013875622707495409118137704378649157360471210782171612341690195385059049682746140457267448180022807821141576661561609545995876873625021820832791486782628842793896362691804765650573012889184347672827182769231818242769118303536045643763371637579572707610141848247599812830262342893373104817548473517805184712261597909299857765396988096535368920667465071836813232804366297950338444604804407375205854682367370903603519304747350750718988974822676617754076127688580414704855272341610439117972918744411344014926337110090294912117482073048486039566481914181817948881818598370092693229356788819938037007957244826170205090739810570605996177200669978606221414453421435625831270315848116101928464171693118234117998187284588741134203776882989915792051072411910413716551731944098066583855100669511258134778966748177032430851640876495452342421864074163826831074524849748786917707939926559696005216184999076363626829580392336605360389413500089875449599201547696744748505140633821644130610983801572912902687596584022144076869383889546154304126459229372852136442972274173309793816900627253408322078817927799362865750350718553896266723742816852995862194216173873845608279369668504487238411085621818751910950142413871371282779657846338103376385884669879160534881478686904730702240040871864357477190099114044805189704836953230927363837417044477358732147777439646754493240614244230148095089645830720202861475894913577421224110813179081210533586455200060866693507809105433753140314358259254313702842592562552844091960093015742772287467162365885635789346200136922556730904665798407152776109886514160275303134828767997333057048322961496158787684750554574714783337631521763020829201233032357528935775161252965891530662028801983525204617629942806025289767416466246848549794475427767964393532908242028239494193365443861305907441386041999076107923892678386032577308846935239263667135921016840930864583949568848915400359807722720957817277042742730282437150206828786713719796536841142505234043843261255592847862438451400430346027951078783951948556078300465678093885309021072057538426085825798712557105246564731490752857795410125877219049104766448972321190184723454464680457068010295239396592226367457447494186276650742020962410587736008355646614526475113681099848219150857951756849655668892392207989941742378834990552983545500108653278434994873950209149142186597225502387577841596492991434800043877720490428207187167476225822075546241136673396869043587774219696093933668981579635000522713586490993606253602657593712788672983304838495233963051695105443832047028368023761648711617156233253469079740016408811178480489734829295457774790124288428822999601679885378171620354855578978853087898089286480429073895634052420914569491527335959426174313566138141135323788267253404249376664046561749946739937551516766322587949485095516498567029449936533767960493387580947239218084421134513048056966070845854782722801451643088273395774942623274872881205871956547917762720474521511705652803487943820721469170793638155067221370802912705451304045349866492172243566384450529941777993261348454559518548286705228832751784996289530366100380252122896380148646001318738888484150740934945551862348972295646010563992266166721864230861888613976300833490374069106855425248245249315977864224410296900062024031552674960526873800139581521980663384271138203315928859182233411916096346542635240214509453472192667285948995096434872266707627041007973462177751034557745642327793266007297517990285901097109267844300752145631269866051810992612885562803216164362067503790485894645446725837745062470308824473019200258184167868942926595597097547534707349627093961682306019856378614593588705141166090110101647447535495003929848598850007032730699911853165762257165838623743747830702966692289165972619403783907616451808835011953982274514904793213430750495814718891916046890636597275474415026100563026921749021274907666842115031849194301295308267307673171551989641314798141317162539312782889807678924561293500281629782430261964328966397925392033846937613152482998327434889042205749735488985859625721845296053396996744416737902282261888261288966816150511288454919051042856463582824445646391747628098557255544716414327254709114656250003688874249844530355392715403522016729398716697546372859275209037699809425958488059975879411573794703292999904924233878764355518897769231304171721819664849917018679836762497215931848408046054479136805066651428236946516998914078779829285525377260186241790089932382527704289528909517575544214502247148988710303987123302281939744637847922179873866774721800767183758685308875767495785851410820943569657954240469875086093062641637528694341688765040829831314946429150860630901035063567194190388635199006544144769011989036299953274262510835948063238800944998131639527083219805848098784354416769043085319473564030362902523473766630019581567656826337331389584927485601143402554033450178258016513041802719389303921775612948451189411455971725357842887284030069522166748558735886912659446309520189599646180233612916311675445554455800348267731294919700074307180200561732315114134656720853868583918396188904898181922033908804839492309784471824344979073402729479609584809857562151139853682843090473353092694072234265605857010257603032231684477699344665823878261781996228566048933864118856957836313548828130420545131051516137137786292624774491293852287801780956258491885687158642530820477237153120972324711943003337789206373359571679441404686945884645209756185633296448009494341569075253913222534188715081414259608024856238128361982394042726796482627797086779316812137999653699451754021722106914730742965008607778328348511532902246791517087833786656483521875564328793964494327107239159010295726147945884874700013948334729558450527225108386616316661155388751971088908869378208805804205503125303461012223486634641999550989768094228545145264172727916414159936316255469677119180697245958045011798599129628643111940263981274040198553421066033693425210985129860449572044315115597460901533416142289070015798760628199807995822983144124392859839583114308806935512670861906695775771444061513883229210075794083431938655391946491893125651634207561291948587075056934413411870753876199274133161877060774525561405012565715685094824656344823117398550368923380804972128097432698069132059379445639529254081298638588415066626449505449272602411871084571966721581350476924764194086475537415833691088316508644120562665707603430627362745547408166744003825478169558325552627220998420235116104800454695386936497661970948143714729985602237577092628044964705049878979984949961130572754991667603673192679231463817239628904290597747590185284605900788677955335194560397343589619799664322936858480927750203339176948009146658430182178613635175514981521525386911286615267796018390134041424065118616137346459990090533939004117862615573245172616145954295044224404810821473883086930172093750630926101152959914254967887475622872629086398551561264927345179534729352785307308990678253817997480989743662531872803698073181392968459182449878064746631214244873381199887155546459881567037626473544798057090117112974228316252252194333685097336647699732316450619921369518522916296703585368349456032252362345598536667273486607745685946164110228041003939103759828421919911263551737857430682797730394484117925870789971743129310157353858327794560526751635352166628122158694676091551292377982802099493627347423921200228554382781031728506376082188318844596939032121717282035826967441419699931336985402935717548958328637934686235303436217580856674329144623129288161647901733042056950367262486380181865587681342632278583046224936227193038354201916227580325863133179173088243160142691350055118467075923764702062175526723814704651463348790185434273202868159487842006690451172404539619707337957927870330745689631358875839643283312701495376305914143978285773890587670011527264680673108559356161155982519102627902054764699179991367661556416799471363696662603783847731061588965241551173524376315633085094363896474640866404647766376618595974911004079756160624453837292726672504926024263245896347448508783825334322510247300347429945202710742031368347161799147691271351088710659366726916389051839486483380078381384752102235432573722265176742957590041769522473107524597901601122484075283865191408989025908205893346552137019604435340395448507465790596557178045796971570492478593856209647755347264096123000225736322361165565489751227058604147824262917407909615302953512899832539654942610076101435223331241423115547838205909214740828424818845225715225915146903924265357597726183392631046152961421781540358990316356994056550011846243939875870302480497948808605386196856472795958108381997628155725818063779476755287644640307838767094306647143697916885836619891587493637189569024324103706506133910405123103456833924259566831414112384192768311476014598191460128593398635279831581143921613219655405755449654979096836437273430547575641566499371439212305356251847645865463680385785329580746656974510103583777299110613915558348914582321135392244330111987799281665667136960048960763519686095784467851285204045589961670716403715608396857702759796619724620883413107800923409805398149110641902778484892087670635301059300554429825957256756806877703605664572313281781508504820005568086652519616480182547383162194327891151097222491381225975448726914575398835388669157927376086825599102690632902091555464971160956039282238277378054414902270099322965948683204241700926975092781618318312228323095011281104023722492797394816274305885395969530694751003308520298346463326052755044266067341652663862943986425461405048273297770342662722340335438512943852322462728525480069769319954072458993035700713348117385105028384350301113561364027959109605288442257965889192562936662860600811182921539999623198906273721877996761367230474333979453444395082168603615018782247399726752988301058667353100634429470660097819677209806135221432385660739916313781006065081162516455473035335930470390068837090047304400951946336470791387559003927214415806064130071838814699604001481008283629722540309690458491613455600050180131838533800426378991630236980698850788845601824326126813183827387887631173691747741129350087772577461571263210965431606420454891738295261749110331785608839193911232205394633278623470741029555656841104200632229862366638734604415912708007757800402149203687811996108635465090292512534158096334563163212586242658585886504508685011978661529174732727394305258718065143675576000480872838974538936467475951941568531541256220727798264112291002257831975690233194543971798181828216148785996223151631434920745282452277660479470899574638806453859261188071185991275978851676972145273331994772605435963483904408901333068595193545168627324018737730017857167034143685574593320202051944023748458684441997655349430224341149281929687015348766226997966536083784880946502952055714326733177294747308644392330573140775496453885378979579984277503409980828231694879258777836577559379439977526692293513917678402584955800549160820651552899496547816493488123865695457565731216192102977197143776478801035699397299580005356293070512986637593461845359977911587311907973001108622844765795910580275174572534144472129022688585674597895177117850611107124140064109897068087943866128098655546534513263632335352888131388412252611994776502057594971052010955881480800891359748109103074887899575213406475462462567526115656324862034740170221911625070751202158886730908501705701889608498586373917851725615635415496455863082723907011209143199798543776183426582229187472672505376115611806544687309461371803483392844028431238348948178685014498074217642172427592262522894444414927193856373338072032744300393025835729614915414458872322712088115735407345582214136650545120949660425700314159351476198630092821100697897943849815555986439918524089359449677669838291034369754194590931284959278697120568218124242720392243614841584788492288806206030812291392682979063321565978022350356024841193572693518410207373826428757589809421150099191967152974695541187020608374730037124626369094344307327226548059806950571380910374722270811743549264120897330052435903163165086351541369705434050240984474132636436064680705267063698915224564828988481193267429008042891777210623681135047949240099333678911157479983346978125245092775321697621453502894374583691733519800326877894024029197812071166208137300043272563324009810372884021772006931152817232476605856543090009890256328761132659404377897706695020422647390108363515238805582903545513574883186124295201271986297286404721626207265138908081110280781964427700279131350943439290690717534679216615353606425571761935997373719066858012910746989071743106620098895292711617763536187375178170677930752920441798582974138974632551556419109524029549680047069983715497420742514386702991638304474878756522723664514532098027399524955954487904443278249002345408112115069334428820115744604245961121420487892152144550238270780949580834283150821133357440643468660013773065352022728974160452674877678886753391451651801982765815746778338435160912498762638771061528892847497401534504794307450638770504396045510325952948983975539926360450754311849008771344542012125074373438206060083825930786686316471766384969908623812185518961027005044254023091867381859165225070427093127831451833528029810020815621810375662299754579358848392276780110632276419208904893346305711729326429286038125484628716475668366821337698064876821299550203819191261877923059189002350123522802133406866989385040538813821218165456628344298580985972655140732170568527240634948193239053949141949542751660223641336250037596917159929575555571388998613096347946425474811050601129318712329098831338768494256604782421532739384822155395997133144718271719629132588332174141975935467706341282338328801717054717369829178242328908216774227898067388919728126737363497961523401353117898203342085236588791663214855375280762735675752493849356626460758236880322478151546059726639390307212302123233495206318950304843889944355112045208363772354039690648894619065020985836475784053283109598901742726312482008290733719544078759172362032964977559040324596313513741340661327930710213174417486348773608773240448976553306848632298113053747754322954945084673281509003801358477607225955264114876565804511362182285338718414106716122277662847649920353787050122809617444567234124715449510702233203667249587013404181215781760040427545973401104838972164872830487526178122867969415431708845699364792528267969738739261888862908296271157787918417852574205475180665372079418791216509104361378418947188836660847417448582412386952453093917835327131591200780089028550488117692010546649001970786771865397680890492938531903700102944079874269963608924289102423416883571814454954323897021939723726068827486106264994311684283384505045361283294577181399704496076243370042629007008637494211609166645600667460329456051635584669755061683934227416001299272808716829162200500978770348767620466910003729059668643542316465195983222696631890373176766411526547479993025730028202753004978448136087095556181578644168212838435782843452915210270907938627210153213438640352510579250599066885938381274847829215746968092646035896292415203059725785849368361394195333911522076126192866149110245191475454810320837867089744437961140986886801988633120472799435602797413329953223330853983015424410615052707270603959471424778611429227194767301054673825696106461353782551196637232267547927365951196371212793585249051162418416323629542689023450033386806911190607872306843255299799401301283620946638180366953146636674294163403839265225657210101721681514423914729385459077298780115130011115500792878829371484277054920169759908526613741390947474788615375355410850464536196399964612440916899931284845095295551662827977505661902440261070159539868120650998644485846432917789352881887135870534209248971579001730608461990410911217307758378459591020979673960742118609249570025686250528285910151008987959131337280419447602991320187913596045472592936483621689002899647277874735008275077785156367916429554839293766637459616945752621190922637316357681163083380011313415707348787797131670780946449815557564295690994456238060116109966578609446455115498113549201067450814268688117732722049613944022261465696757506308113749495664292350790204834810584751809113553646485255768540575808378057499753403833594420557549798132016577141331650623121422027251200167472146359894854755107898068691143837120870100370623242662145066483816241425726135109571195298271193305666894789965076648341647218394015333571127874629478900377606958131895162444969673274131523656574041695802650864078902793187012120699893135562890536001337011697742221877523439750468966548258806036636231857739332527233404235028280953880116635535756186123305584045011401489481167232707829515243826130511845749953732951860323016894613886078887669455217608920523922932394076307947860971245130320916811177350330414770952789101134115524134282121243708989041380309270847294679415202441958328183041931554541070954888673847345449344747291591681880329159381380104670439963022320432381061700436231095107011293178152826646074705181830819685949543187086621261996406395407266985668421390384251614413287016621613447109477554554576127136791484894175241638267311164446008618811872250363153363480992958186934770749436028346474405040851232769651230531473061543035107706791865515952791036747547814533464673349615780336213786446892283328594464826296546396303404588766288219298738152991211364863760513302009995551866171671597130927243899305924393641596242563996742902831528807322854363738880785995225271530366139079311631600280981594103102374321987834567334246838183173954435447264017456576093437746112859183744578042483887117124333019388715640355992233421460577066331325187714350359506675991877771756033822285938824515920932447782600813703315522645408137836650473773825518060506276559577515813742335294863101828869131930377800009535164712521044105684852937284703089784015718504228226158158250606740733617086356139211689052718451045749693180324598974859394319539612119302457296570265107529031631209350622120660841652814950380527461235503738386859754115636170958996002603426163405589486339837994571806008361825773721418093793164654362097509194760923563797107847996943571964168402771101885334378632491319191779167181397104744152142684290896745170615678672563754455206972016617698895755231069478240494593229960108940924216352284824713420208557389007272881895257741754176496967299109274197195537378024935735147677388601331181690933349538306506798968481331057375964117432546497251077709344206956698943449651376018445819527241146963676657405042950704595717226298414149974364837442350661280955729669099085710741106359733047644039394918529977122112457505679647120066875625181468357635524837426447661040650744087705676679532826732677813673442173139061813288742218420095617280847028994068623659274412879754162053582239092949171422641051520806820100371468573350952840323061036411162561946385757960409847963381557210591596203909260932033680946367757082732333558592793855709865162859544581750237146419390515398478673731979060458354538965925486129302932830315418935800216563512348548214554193797394525617166001701748686730512477663253482993456079860932333456359877108876557331946571977085401579371634988184529938890335324577916121992336233343722557963094158465100391371877733948689710789025328295292650828623142135226978653189890439177216731938319386114904027933016218745851801375355897458275052917354867953433944860122418741671627597370411749550806952804678694351574007106914792501103097715897134195342578016867353634561686712287024403658804909332369162378561554495846562227158713449082792554139540564841740370819077762808933587348457158110019879632982977424238820177137183610161183256405779844330441165586331961921254798687833318520828613455006045268893043129236444210569385140703317945955003803527667834555251659687451474587257655735614851593166635117113534503667319224587063697958623604631800348490752331801644091494714923317858525584790399045844846111496671422230098462138783047640339323062899933802937718211393963247108505847778460780159994079461417759077996163526193824923841644611602602098595095937190373869012574235365806631543520973632781755903314248247530986010087319191423806562617209148797262985735627500525638411618163346870162865157772953061013614215717332143480688194752829403831922355356578622964628007379709608081432243864888563871108702140078125238334040424773904010536160045294496817505649931638726117770877635217722134168127421210727919353450573751920319904670563070644148328970520202757732088880283258499944468091958264400775586749065344624174158732329720944856095420535883391065090833211718708035075509196724184953668562983592233901688652126347376580830917961210302621326885966426729964675323349888675043692550828385790804170263950686017449879520613638138250791522170509907434824950862507119248547219472778380923370218473775852300608272452235632573579715453069319301751451682930263876494921933513943472372079830690312627495283775576713857120207142976041279511072545406222340486153704292917255102100828989920692168984598419576800595304178007669945401689083268955262098377823685429574368303074385727001177000679998828314909794378995640617425789471380072563501890566083138548716699290322102945283831270025157895677388885465963435263715035580564104408983215452343184022498265981211805755587856827155240425071653764967315180570845691507994913195866869302496782335262053111991168659803100349755824777727326732502378335563684344968666858839122609559770276974393802883262055508352945721553911128020045233059180348372663929485292880450102016500272919501833089911742358538012860997030587649727783839607741162655953653972191678333074213637972611092472347193579250906001488208150946598568059184244981561232703707363573602331353416362537983183152590928123983085655873369645748827673465164629598179711280019873443634943571173245219437465341139294723595507194727679657014892331219112055013736359828505523216006614139614878527516218507650977696108739015217011366981859322283299509231594339889778048725891877792834300721260988111331083518757873502847031914546577405280192715240434022543799808514366794572703281831080536929362838576263683028287499000795282092075026612029216545737353321132003032196596958673653870458608465376641760931827448169886101383145620778328939168144528614832009438466179129722070385660696509253746145160858707230682429565511259308677652360419192312865495532547371209447530756100402158266250319228210073758856764914582415531907914684552971493902218023144359982493066938166194826464542156077958173658415396555098433067612900394192028400909321679145219335620593958653955684174693940822806170264143848915118164531540925739096799687900012476807983488671838491018607532286994994295967513341730101905573153413405631731467415229222845025633024777787927576306012463444289706629466053485748052608480901197940787665832193336365419096840158438919154849995447215195328077395088380380776661911180152629868654423278535802592868505911880744891723304593698213793843806126504734796377853700997081476469270442704308294180276222757709283850068753303483812270280689270979580056299742800566934321015343645024370288627151161669155407654059534607091769004995841706664644179659861297872145713259214781494973721618643544928298655606488872607124428586364254410387585954327164295359035482162646848521624852999097803323559963881543817673684983616977232849836534741650326119135205086346410903885867897669650234703926747835218639712606556886730459987097478699533616405790779333191401636374213176505527004035505040685441907391416440003590353836927195820918292642935433377237557544047287450640531524504747111552618270191656450591714673064687192066811483282772220082709134883469099125873346766665562896942789293984575944879588375290088657669109791533665708711658237215516412466306229205334859182747368354433377939695502902562684904585329768385405437730271089300140968834472583197669862105096106334489929116356161063986939307565455935665205308280815058227822460360464685782232236520946023656629926295366263167425448339024725453513632550021182596968764135462081255405724226399891476354897829787816163143375641944817875699656527835663216061114871094730014470236911910954826046419602542912858858924163368295898553455146863514942670980223832174526394590742683427399713878382824731760216251225041119736398056564207459277982754037836802642364573705654925829607775143165051880509453246389718037075810085412690333021453119251749220548083370246988734099260198822480347507259003054290690680959969154545191111947207072837145462757374863987115160981133069944065030867453212533347192834870299176597070305772364918634802732029684008731307560426277960258543390596440465782547010105972010969305929169312970944592556089533955586903985295203013505895129363817572775328041749766545736913468642600683337073672493259473898478767471318811591876917750472879352281774558479269441597093779598607681860184330163526007947311772883371156330530538457987085857139386387515930443865507134675017693642843868761486881695647291874971919925450999087612236654349520487911724085184281639004132614658726218097344210726639232602734307754606541680786204440757664756400449579631175942295890319218132844077142440817397989241832697248500253238965777489374961032912118018613897178451278709151869012276346705073324167286334475666003066988785473039048474092487286440965723129295556590295345197476232305749912066828665765212802476945236193669629365426067477329515473822225264391021487178138902490778588482735205653197457800156904836437935183713354820056127356954487274060691037288066819547958062282598569893414942725720682833412447355144825254556660348231153210452415702470067054680369668656253750012576117688053712292215723235894597497561158662703585444892718294238431337917825951768813125025830997786728471038993573588243164130273560229908441670242789279786579329835071212510479656132798072426163865264980329305160567706754242096740273026343922296161427391446834042005668046942106728027025796841824439031300724695519469907841518736842094826465638831650495884026201661251085525006644765180487782914074877405900581539851246777954703946157853158801603658518258753233259753792504618058686843139940099263947296784866152267296274364375378350529530163174376902784044957630006829065808200526126580191337252515004337326755867143963723509678225601619233129060357025900895745665108885779083322977605915853370250792499688876936518651446526564554551464690796991657603456692638699572795984093625702335583766872795798927178573262026517406913192106752058914164813762352875365980197346883486518686939290378883533255040852406825984492666915806629267250880931223335190197637130434887423600218912029578486697100239821813544321425093424048518950260807333877764587409551868265904893083678459789087620929278383690218647794186036883113130067487233237460154962703255487216425631197560046312539379814276369360329504450314256320513369773525015415694763858744353870235393400338222558702775879472137859088190936115048324519169510005288509165855720368074231197677331160193848340942504365629161584300932502019713160691474826724470056983881401276096901345835066478606402441915915723412338247117925664942732732803946342987965990175081238802618796535853961487276528580702653048275754215297740329925402758287196008988177919945397075694041308430416184666902945620035387517645162700301455088082606960473076356552749296137870340928249515692638192830725619265717587436162162801061256898326423891750780600691611136642502451496016296795480265241121066867534403948514682180358845284227285455802445088159120182719173736369080667763020129605300425451892405808878650777331868260042166983135608081405045830017593237106000130914028391793472454346505148920852563503794905491502081209427710945358412401577966145299974172690419081657370413274432940791028945166558545176208451531978085761687335078215434434786161524449132090550763591345402714350903107143263422236860788575844100714505137211206640422437620630305195690078960098797219518307687589242539904027906539766290302589609525193910714226643142882886195100954694427327636532224205594598912506689097774464269356590303002245954781732569230068591915506717564161883642992068571864753997082143454942895837630812768086301488886575520800996484718871182485030885130979384223484912391519025535170051319244538154674024508834180265177986645195485587697618844901456051005708867825816965326424883594820004511996031548051259602009483283898301536422952864684067256349694607427709827000264865908584486007175712784921798085272118174185118205682895666674351802324483372204083199765782568396479644223465896737558418266516127114451171642535399425991952213785813130072944823351922048302486608177404818907356304520544013135737826339549580991794134721112872276147035268572649922678621595166985195968652742227893926450307868174763708070703176043416805704320734825590091703427800056930602200600390426213924332366624463616737414363131927313965143108591455571373026209714231514828060837783857501065652829705664884969438519989577002072945425952798010605875668896370517301199176142252553506752534084213172268645734548890092178692850645872237760283924816235825172031650459932529143915886747117886313143200048333434118214759515420321917796760520244184806570142911012208272136674070693409580713185095863916389911318656663080851429216719069282846175290819145604236478021051554067908763118104190486774699474058778141122540987939268490043227449269833276293725214678497766317860762479176216965399672825528490926921043754638279544688548209676787380459923582233726500734624024556900191699141689514270903559546952340812185875132974636296727997054359443542850167587720894239907671664619981935281822761471919431345916216480882820739778743235288511261798203189139810403608760711991043495590625843207867129058531081794374635146315374446222197009481118651563054053743279641099650672185580434878616223037504605209276921711290055426950137730823713254244804450710992531011479470281330278058460034456948735915491656843428801673365828758227824763016353814719209007154365159532648619486519311205611754347963585236787425188700191906025188300664214597235658217507517388326913771551160112126253016476577036814713753547754546008107212737322097302884924673611923345271205195279648728433203696029727079971763220615674548140807642795560596319828689869684770819567339328758575050176602475627721557654618433571378997160567973893599017114584900375890538918883656310198707283238737496156305399607869265876028849365776282700255854577053590209080807514998239790960108026425256153427882303439859490411219563150308820473517558240825559619478446590393665390661534997229322254272330419679264741667844432735081158670884713840142765807765147261944370930906705016695524235110276863920998501002193944259407599937776792464162665026761259062417719128058890302271272853054701700636643105824111068883158849471932988656526034234604070953227520125257668684513506127378461282676893954274998052258303306411800751294925562578917206641955403126903235862291502841776661999439766941345424374623140463537814391614062388280824147345603179731287004663310352123400976055819842818096584540486866265129956494775899020072275360177276082429945351086904306123644568562004162078915759319696568041281558146873720977942560574849117442221500511501291504925007002647151434020738800321888891861386585936438378769212615484213288705682852164737261006008047799999683630778303652069436950565163324599475990183910460869511757217310938630062791964218747408062851476339870891998750144498296486051592132782681665754583171303595976367602466499299008369342985531599620032277137626658540466344999608828762829500413648013757493455808489027296738756835195613020576286861761910652036436882170082390008577357307264989875169273320651172738092288936311977965006097616003094674607927557455475965595211837350647678045472503402437298002979636109289050135012400287214024979557274793088930777154935867209051855885299222425735153726640208454197127368242184322662845813271545263346594585260432795542419037471766589765536806387794018453929610426748222874789633899559554365061981826813189236211655545551090377295686080591795515879430387891644311259247023151429228592643509200035811457610008295372114650140875564346956878642646953297244738251818679845938983966111993110329951034050056525125590917777169023717452445843646079528640986467716497124652720364027418972695553341955975251429646446950140321069436541833639984143421292148632008863160160164208535774066256132066529248873958509519624894793716435313825380118565962566422295803510892205694879535149992886745107674930715301021764303607661188543589210155132088254798340137194249763038321452124589981635952640468312596681702490491816831713424560739559982792220423456289203329243908995854560124624563019857415814903788797767705275291277904438450897240412218988295392190054361683633066287867842749415957005859709587095217035639840329406193064365094648199875385128870162248094198371418664295157227341553301102765656132012221463877587224638478589507864403299566884516595919775017260311768242451681640106334186927409634106276265934844948170985362212498171778314656271687809411797722807038504181184057405234795780696173588139377048953605250137610033669897538799748145914943132488113345903906333359479120857962850403505523288216833848171029091062317043648638678338569429778556590799647333084815323487820499176809724100944339483216446765554805969004730287594955500971732834389476881202255541723785023619597483792899948887727361259641779136871348689230406415812310352221703413158447407022059218747361872891824519369298572370255194475170284461432088972178338818302940052174027706825609161794547414241116439997977153863229325790380678340591862810431760891010522591480562799605923191204056184554047124967754339671747838507467119730174947044416570388637528885366866822519664848445263198795226748026392377682071695921875733552728991661433676257557656280999286828992285657916934608772212734191464597149999314651991057788758213846818837960127308735630812185553850013510003615394584746293502619185856021418303614748303085152851856617978361268983443312335032401657576090114028974877998429584303435838375981043893090666889512420924618267012313692249388986068624852042573954743013433560779063991195994091235067217221102365544459718865151490534904297668876003792435828025207160560154545971189749228476230827245763430200558652373079830629268991207469923136722745020089609863295689991861723853565738169247382820015390616195773819947497521413895757392801247799513130136916718810044677826452445032850647607410408563368307181268313717791055961753399135816334709476387706850662073414852311843536705443640958370531359789721082607871485206368157019675475027504631341214745641037889415911387958426815381878916903770014261658952103629864206373181328874339968027857579972907879452052912567096177014376850847229250614384709513732179470662467326184915130128912320739175904267676772438102516482949716956258078757422097118622077029804221938114468028730108832466239399027026154408721051174761429888185848122364113473107699457145851465209122125462134778650094053873653472670827100267814533024398775857616296210901455957330547033636713803542956783568097830813132070763980383638249309391355938637756329973737171598724543504146316761224905500230050079869713445996532930094199120625085242045568112484253877423637583513707432636973102113129562581190116482391738761096106215402779384170986281300995671484934669823816909904798738949310371069699628153487169568919633142476960538245495290719464887604933562710255779957578815694364303911008425568139013978669673799690118453170353921656298963402311681157171728591466146544069154968889967371618305101969075219073313123048551755787064984681191304010077532499658438309565919384815172531413404576749957937235447235213007072561235114446065259865907144345433254732425087963363803394831526885944705496899299410714405587871361739461395496478282287570847324446592966190052106624958026172147439968471678579246665242968192022791739395871940319226060772696511820506386153643585200648912695277407408174024542734769482789552770945369707408481185760781154525360922522005121708501424510990670555941827123920626170752354968092377769052205733984341840233273618459060101604251118640066665558462262386318088217353614008820487908559101398321010700765474173402608542328762622708732626822412624598718863968772289658299697439855721714306155968364608022370120356157321849759508336531956135022260340820818679322032794052195680284204180882758581949430881928659171805785009539370628840912710632246974987054879213228220476913464131205000178274327318129815858038504556979874153158515989145307786473142349476747677019629930335285638958477648820196089673544386473028530752809645477504384471553999651326195606967402972617186595007559913786701570947246977407434670888542128768468531248618041697624374458907592893740811354052831076017019123629319944145903387027345419010078716927181689807950192174303582574101211430945687994043806756436754538636711583731645625418251446409677635633595733018715792837849145671403107591086525708680277629058899467238126084744183788248674629736172719320319472970885295852228780341037762170273051354379341129948989656433885390005833280050041319706874385436698597677118157694261931654631027033600168939550717166545289763141347048581925524176134433569982821245305450178485070089367655584263042657585809685227835815519740643875147286668047876384558987431567844932883331881845886824713818710068039120292153567056383774784956462357761792342757794530300694674784630872899052544642289340326864305252541673074799024787759226177873894378729087715116966254683405767649180777725852867895794663516849102163910621628549261263465007117326824954341614315360736450708945472494183291193845915348778055267355300863924887419554156854418310802095508453091265774743012934739136323748213589009216327771116561008028045666455750829242634695905492931567924689992698462925060791121497115676340037505572482155573621575135936877496928565653809857102412290792731884558338024601875023442934614318487463613475425149229691080442698749464279387402780879441229887915122304356254261593320900577124816371619619476658320068288715394327445658995352771997679314294279473504055097087006378714296630132108463055131707536260074950686061870314456117601462739509072388757006116902365311250635173451395647119879230643122841141038300232674588794753944271408370149009146710486546134448524551790563239684579520895437820767591296556331584098074052934299558487762472109627665746419256565603396454242401731048819706424876358181371054496629995219079821927230574000342455042924818671421340996799342884591962434235291311557464172735257412406988465593223892931134615622308615572692337711885368612237347993483584145144301537574752934309334719844304157728267260081188926156398743363263304761400789839600341086512355522778792261922967896474424924305062320295831051974361650801424316057214280250591097300846315134361853840563201940005645597828309618518438504310068063559281301105293463033140467176965528906377624112062243914954294426494831128071709423373203423943437494158842143823103211904539770078843138764420687820604508649431815296639402983082998857359346030770296421486867848792018029923042074300521805801643952261728769226626103890483042718494511006477283547271226356998498832107725606589238733167555512104356051703286880037089710801893183434095074870243604794547942402998376507400500348514751398252870709243636559271632666271326043912218165226110184501148666661288678979804989012449592066760085423598162536261159163151244580030056498860103818480853890412139813089196875456702039048714558957483823252514789336812216570040075045369482852145285594949296235773302548904320653901516081825107772404850435127988022118282927241981997900235570204939377663186940985188179947591138553712775626781590837427984816988322637739523988991593230211869311644009075684963647352895766426073813304135094782628933017603170290789519135388741782816056760410351254131298367596385706731928559267408190977755985302092049052922322067475932936414879982466044811589348398546867705245796968426621518308023309090579743382311298133707220973855498054426713616185588499311823820161797697604762419028954829176111631496500148255971996679799929496338207000845990314738835053841539373988461528595977791134566717249614479657164614825378024633858664756255653283135481902875845659582604571342139267876426484308931773036243665375326869099727340749562274896860429892575563141487871104168764276203915553098703241244403857730486055696566122067623895887077591554944841612784892680787232734752769130942817283019839592067509747519695264330369636252750446297758550600870180851104121477327751943045449728882797784639227456765448189137152474252434435239528330096237275458228303105959436746254035858874521845351217832523688254585480574016866350904506387112710843076813854927019158458853276753534889211515163383880511312366251886773931321052491944668546019834372787007921477399937297533727023220217697410568392806864525447152183477091542395312261180260163381627440924296509785039020640704931011301595264803833224540551543248386790089860017597175807595717359069334844633582592287064568172888548994693620300610980330393954396803240703582474664124337313037345455560282869900333259587327345428370039693945864158929552842675865070020880116387313538954713228156299910673330461083982003549534104999459098401210880895653898450418637369832682037112154305764027135339177981567580700889863117629934965761659864803770904516548448516918810430006150521887616330966185225579475024465031514438050363022839264240823727592341084966060509912381788348053863203569582016048250179072501186704716176535924985078351947371522791524053935475870810286296188319490253384749076174069557444968677785779516653422699233273137179846794554794509300950497016051932285756985907781910951836154730949916917149738937366124740962149394547443017073735001134029558147774780384642558469915679191665334363535631714811579851149647666466247692086244828782428043100092354394332504008046283605584139318593869551493911668392854210133179827148187841237889822463457675162595440775549941209190239931334360655996998763344450263376149960362235605360988704509499170347823399684290131029762606462224627939499821015828849012639789740726797274622371227969100482623253662683632709449672870699455922266891768306014379364550367103907522813488081322343146799540940791428826431133789338818478614327463745690865407902446959715598233688865855654817209259288553471661108920623941021794011286570032520270627202385301120900957342085263086635851331897371495912344434709137152851600519095365094398061248352903591576498802878363501443176872607644802963883303886688750344690858517582349783477474129532035517474958521794052853492906169183106445942833342288862622988241463347688368815271514161887855436233170341809063782287351332833533527620966453360063517287186003779520772670146247276528133219063272181150146510052197929360281297118853229552215948612742688495946851547780098784969311446199744836539719058152651358328706801258669531862826569593738701202051091183190121175169189738065698203013137828160450968982780213954767800975486958204443178498516297875937457283486657035289128114396021228164169946741130268062024969889477051989451537121546409491588535417465859265107455476822344886728798480716397399536206838802724641755280186030391663017336966659309812595060648929207712398231800128432674485322865268051985180004593024317444100640159919069612639654747190455792968144031113283842272936788748092338423375394355173388678350875137363696133770114556845235365616863391089469859468198907739964337919375949294482914312958236808702175557798023773308799073229908222834855050116609079372456414833741186104693501676448667920822491410275490342065043230540000325464595374518532369647503180725703809375549683098156984072076682190462265017968392760617223023724879955787159416829465902607211643935402298927103757059899202131183113559957213333886272805605674743554733836186792173371666039414236238730215276570717700079750772750018989749962083704519938979553491384033851862284064799038755228355811826419937525270430893327152586668568194186145666765202392493377061240105984164452055443768828655254741221377848133533923194901157998903776567345052930021121416797684154621780043723048109086249649668271884491370562942861673977906509955369744939414505102523997115219139719290331425126069545887048116712649501345576340137670371567635944032978264798449951498988275532046687410798216423413322016291184883956455999014046751657492436926203303465198894790287938540901875403864674647706722761269555416272052327952416883524589729267974682183761067103989396678406477671881133661733009156911346961037870762753060490599084336168496202873405965618891535706939470597552024516356026812519429691184724971387773393564443232716242399982590169688284316504281740230837020903438518486414080579813762033394127911641471223038854356086039457191796804105948802970148346091766258976029920463250219337871645682874874532497785412421262592584871704777593590963578074480877651829968736807433775061443251348794636983432160486000870360091889472836973225477113279225101433810263516986442865971297402669240967076710928183561078066304929336996380839706592687098361532960588589705802397728016851884244779772867169866080572670304518578087480502875301990336945126697941738621309208844128558938746860064270497114572555373155747174365406657629011294714225648675465464075784915720124185512286794904049746130615091383599445235237225504762715155509415173788052077912255750526601205437387226502154765805285605595886510235730860795251295013089117750235246608737625867816109428051335009279260384353075214766226155684619617736233122865245800905825277980533664327170560043650273019497764714285863660964603611401191473361531729928675538470062482109653772148404778137239287303606696827131212334556972632279204329604955538378268196625794913930932726938276276644469483528858174618435597010276833970907014664746031224683196524791228769388645150929222136390312093067557365252497244803273254616874601176119811523696701040687124891610513740555585476832803877624888570691220985193954281335571634462081663124672015890952826067139192653435225143154054963918697512441755409790477383318030862904570317997015169866187112289780597363168124676074524537525526684820256216064752386865649535637932879777292296828985708164121248401557263236400098559472605202839597757080904287323238242426276772566868033007269305335842879994710205658209165712540957783026628960068862673056894821023749211489502591085155858543693188534333060251677957342854831932250893332570839427962400524824625344398200132465244438228212766282853291872081447964286097462870635931127455167334244459028691005685910559982997167728854399778335022319902271734141648169656816507866170362583216726895932605535975018929105534961238244678454463681783031240812913025123127968438243249027066964350996986963848661487391679660221480950895159352126687737584318577808686434267988481409838623694392488728665605079298029041442539138016405492617953055917433733941187156592851213523299276747461534815311239619087871261568615037545156160762580963790584237311698307050261426426382843124110317274652018305493591032233981490639243827392032930502272123884250523632669048190458432540031430017366006812218986196362853308404651686376203097596657526224801204526558119036189861439588546887179773534378064836368511037949065759009510037532554626067407597743102557188086542268046306719782250767146511381617633986304888658173590619409178799391290618823119859584345628312574566212123706302738072957634595578620956651833457570263509294103134563293891455965413192902276951563787312283078804109811522725591017622706811739056927023438033074815905351884428246541230892201244698176417479485281225195348426485624319072254090066921630417206108133843041611012103256834349317112193571709116366113051246337223257596222711073078850171703695677873930032814137357078484050176695976021422002592348035137852328002264723899848015682448367240883239666303030633020717599963778853007462852167249980309135267204020997772720250722492002831361078457717676816547438737944594954332279498230100056962234297090926933536308315429056504058360350594300925610260367405604964856356246381210810039102661218383112293110785072112717211783098820204402715746007905277497874058135082716891239727842932729376212672380050188339063688350652744632746966325162626605992511296120011018067277796620216758110022912191885382908150312787737177414122052042142181189925380095880713143498199389642391006774838901840082636474682182895099301817119996081775053999678735145995786193663865115749053065222343002073897130327012114846398042740464419088289177089469447327401856915521997758007254736850385129982526452623655240343135206267966794244968457202861806751202599525939396147043936864525356339809142457633922664426544898015469070337369702499147970466783450906488281460339167916992573770981312009505479155086572017741574489059509633261841357885737090335740938370485916918287963792459380334636225421362470087617079612981504202888059185819041344882846833634229250119864800419837498758555526468207903861109223104206102043705015345372682019206763978631233933669578657164849578293070136098209322887989168151246221300440135190690084174707408744845433980430340885781300938011867367850739666997725071658418375267865525950707767032671179080046747707662963190909467491032362424512372358705601235418030668916369168822095498254297147277379921627890884121959189123495432112925381551663854504991188468581064574375555128149698590047425962630682316865441875118156909940724914219536930438246836020129481720167775666382252045038932915411898917333177475832967474657859219640416189392218187498586050070210514484006522564158318945836143999521284217659158184523647799103814276888937270485494105356849058116533005073611332995555860331319406443386775992835190410755368879760332470688116202920356530877374814255279268979327823283499452541042466895064944103891752950523970255480650776231416599422053852200608304727103563510983020019791273289804520226462980352654349164773974642768443545586587943171519255027229877417815005551583864888442939658806352657320165388702889532858589021879922796919881319250927809005875661860567036990230846522973952731601649546155602984297911771409242215342170382125682404135541536746439133965654031882868035629447204303571346850778674316994441488586991010146467954421876330186668236936881043339087736178266019895401069210312896517191183130380706072347607939389768669314340611731139063618372503728167098672286080983324687072639740279409745660947110082507319882672579162924794883037427733488042034631865651825488161947664570513597155856249773925373870310547867481028902650040244428218829710930701398068578412910149626584873292783546863241829163558204000627581626122174764898980593971585682420001164768095143199360798324013899269301026764489619691580494098893876827930532290089252092133636811345857183569003585611620488912677162372469674014951796897160282802047468176088125757568414921551126693033528558620877449983168030311211194222897280113177361394184452999332972263418812575987326175570591574699954537350996257671959383973353020438704539958056402323455027708908673668856128111730356028217175421386812473136480905759368224366026359354030098653459486277228705573640889089523893593853712808321217953358426234724673173747549173734554363620442306685771538282242799889871191712617655498143797724256831774084448544781000418503211545342691215738881725648633159719080580774978527419812352724491053887623043759036019520395299933067565491888936216423230162748907260220409277155937136044578424189293569080640419938490747208418820599051638299153236641360055993281401436840104975364298595137769453573022669362787939012542683660193124653492807710113934809784525139589567165103442179576730614602322131733142763227421175412412295530836607045872922272952198995658614954620865688143046696991528966443902157842733768128046935160207769525702336388988120812263669785958496871099805235078502662336426535675051161597515079150521601844297237731582621461023644518287615325448358514396533373576772245852043427979566573820344465091986692806431233086009362214566200813197811768328183918274058886264586606432661759602632803259930630911797366434629816129093887821792785801216745796745224422936185523910702752891808123184094146164409205991397288574718442738607545931504409227253496190338148637161234653386862067623447038424183042772036066675771706304592743590680993345323369972162355513219458001474321523206826215646850255113414095996861159679513028595567224925716142505972723418535553768858737561338415097255539803196286375727857278310724732994613842495283912444093762757208446278024282446224482594576163193768824169830498558650597954155800381450103297702121376279871632168846949585536090212422863912621709313098417391294347625562059286086739808782231419573512588926043918043600539151913053046657323829676074015473893008446176858937526107562701757129858238510163466770613716578697228383599561774608625828469149123464539942151631408956642909228416379378213156306200645568523302314321686071987915381452459847815923441799270847531181178307977387369062390983226357414272551705344820343599403040940325956141593807684410422784037058577096225936641386737903234552686594624304179048818721806347642268431117329223571440129282560056274732935103188150378418309907518906191613946252381764026677880750798374714101870598690335151737960892839539378018511885937255213628958441429747202394317115180023597365385229642649467277100736256373337637195369131708610322118266447624867953075735639669797250672148444709204534372502627642275263373104903600483466365308086602666906730941579925640070004103888555490434479267106814742407282465787685896545941947410725165266481633298287619180997307505975538091743741521755462528702672662355650518835898275457842759964344779132340909897856373713349749402191559218056163562072802217762716382454135451483197790079699323391762379889367841088206045131190488605161831592551886989298232951010161430926527030679427446870483066315575643152583715998855213208083519737668143860083755495299426751294850965294860979325230707116500479032327606884823744719683592826833352237585858260852346357662912411301049515976926512227624202289090775378301523817294617737148608487252383097225595579212948835425785673347947340604479936756028433813262373122864521829555159906706769355004048128438850062501367483765928112413507253987709937475594274625872997447670027994892668073298010998318217058471191266443526758811573705291939363598943039483701309271559153405952896822440502943215991675931615852813796496000901581628415045555626034338874533650578496491464534192540099576286061690989236503323884762194711534652994364239241383015436537391201203441719569565481932409767925630346003546586922001970561694036159516231344970846765287726079422224936372501415955146960497976850863784973875096776973913649011806492453990145471379285206729547994083022922069063820716447447642387615772097088021616081650109520501767164730272653389187943031019625468994517221741982024090972850414813453341459655031723211568018250851272254171412543193117607421487276943353571608912391847527801319807383065949130131268132557935718720011129634290280245454111858948559288403156375259208632015592067573572935843305801466082438031823882469472408422449351372014972063236252601144265328672570154287737797838253083682567729190758113495638885479542899659718016853037162657806240643881397737390437613015631917425544137203063741149215839767733852350546921274457689288246342981675798581810807257055548152340798436754154137711630021800227181482233557766046574209614110886280539784467563777103846939301441671657154915161324755077608255944224744736013100744752926047578663139220190852818207682974099923303133279737148023775080726411000946605764034895234069306856069459729743357395643971630238048406004287448812956575632073003931377219709424388311599134666356957720354633394324504133142302724465338745825500231371952958476329547245516999220830277766781418724807676593996201977493655437983351940032914055842758207388997129333417894412064325853277908508349014462301192347783559168018204243291097446468323841274361289982041833382975900698602947674582709455700886319772240029285078373397439530252056855673746211509562065268818332901721326100812034725691443180643033375369928998872806543689389289184563726637681975212857103200630898001534563347134923855120421922519917489541516655895105800197028375898863335869651565105382931710010373819496531380030011975999613068081983981398686354530635686019607586535467479954834574524303708983676434081558708718862257681432858012028558172531949167009240057666484834099601892104839605127714247250689380884367146929846410713016489762170123249493585942973422669100937764079561393683326445963621807252447293937199346859745010879801581822217404950059494267347691394815256820737778822470127166414623720325486584962187920877059173185325768451260344110731748514906707808827413135551802856406953605627584082697783624646318861079146018360147354855115473474529687597251219396051091161878853117795361690718762751285662196796441667164651810224121816748202486802783471073891591558768247888864985253717785773984169756146575968016941903882618095171423373082473475833814543267588327994967405879624618459271840625192056417092797046802219681849787640202442839496558834693470255155102158436102776453620629723209807317104647460550274225283496219599346836923473776644197191058886403667000256615336734013122562117499451479902051440212171210571125648477098876459549541173448438954500541941520803807191519808673169979402476949078739908298198263456526325340974230612522198346203655593280325256638329439738237623564835077301895749552683716501521353787425624011077128287515960146495278821196922571951212507337534015861947352458765852866635584923327288429725699973483676316837355741966351808556757164016869013570964543675262139232492944803939191425471568649090358059499929310356830454088669736695921365771517261125951406955884812804936220526972328197937232304271651629905512115346591485484465236162029440440520740772431166016571912754294388004222587316288879766909867718952708656676868649149271201047163609572745553609842905647774381561830519879333963529430748452895424554381501130516211794944592475969890000053584567248897107573633310347602954897433369112524660919100647115980392841281291232734313496876964609467582546357823160055753344200615556240800012254863315499522185485812933233072692223900557026588842447261330007487203174462466059405982519087736426298891206693888022113700273833512255393172855217746339251367880476493364979961268690282134995494658172580272478633790818978519915139439283248509197491863287166188720310629907535609446876965806949024089429172085861336255188564866288868736108323758827767376697048220678604640931259112667535714806669674008957344924522566292493982039930771293657932980887704563575743208388424931341285600625003573929540524412036057677054404806930632962467935410805054478290971876227059271674905433548225417555024142856227775992390245378803092501864560110091077825152982636957065963661169239592466486164863519130721191011617156618999939249683976943868231859389654780582811874926020182767664075942759847840235608893886383599507994734670820778418932480732944432438712264690032823056472264841453377239566157305645836349867075860149235217768021644986138973576505394578332130634577635178361683997138336532160283745546608568960737975947699794387342430265962966578471824774963764585967523321247367191582168148444898369476018126608055413593762840442624747694217083150543309321624345301475163428448026688861374993182850384578575186389903798820136571671751303316171604884293133807983628713532792699506057826083914493073778026770390531190309920672908557876857454177355721484515001657196413293026935625120152585531889253519270392338539096755137388123704198112387947933850347642489213589080720077599653949218209414513024552703242896243785612057074935573623407085053274524884789431805695470874101494936908612067214774657517713581093765493539947510938915166696277233022127847575504683928768874894554563353635252594545691098358867400646776275074920688390583419547296178853094956543461709877363031076765366878894856930104599602819416144869264428368867843913636902594277963067922364694569468392926888920724203354362905680448834015005793083093473522982914104297336728912708371776110462772007600016209663402031837714080200218664364166362651162061497665137382250654311442648992003712596183002256271204403506028357163954600252817949908094342653123280302186341478580067174435993469146209203316990708920421290358864580656804110752922346288677551783023489187910602278373611533757930202287564089777584288818354506871083703445230210704351387457523764189804224568292256467465013438022702460721962459759772719482384894764425158747215492252936103853926739962536253794314662629712225531580884593009002466658801979975447085488731800357214750650586990417320699337809075754113219675995341148711064118222196516645069609188009296743600937007175079409211657648967779417845846000828842505229535593342171900873762526926883220119723032041889902760877641444366135334362012001467048132967075587978488552311025092380607384235925581815690513117945609111673290315987198864842181143436137258625068611920294952176072896569393757155348623077269977694031629824635385365306855614167881816251921724116208688951346911715258476240611387028824902148156923302695190596477662868129457107425088318016716927655815061841504895170275825100405884578510702523918750494111164369110785478231862236497161825892207879816208505713467699863525509676498866053795328655637284017553789713910752099152014862257227613913105823736144348383983395450700488924560402430792709473920542416931434407120482774844707958254084008592337389682392820692932555961255903754008268958126878001748866355145093304325546549343358584437773697202042474916472638021305044202737944741230229632309696695323058400555601065161428750188719568719842048527463046372651523781664250589982922522876412816511296396292043633329817871744884858246856682184133479428179800019784754753032532575854765890982150147019698979471429807616311929428470851959992963017881626121618596343001508479769620269660537503015326878305243926921192760440228373151873539529778663022665087364101697215292269896446575549244470655476518945663947411039057127055749291778775723984198814984611257863887471040631911426903998597562859669007669307856243037929802687228293886801132437621978650528089724977013550633326212223340938088762519664383295639493482415367690859800612218984634182025382594668192352461928588724049082654410302090666311547370035160126654681546822029059743586356674159826244243931007298063598572569429012323425583737366157794703806394949112536582214313291094843659148579676856438021933377711958504494098948930308311632283386855756002121636246059140298025297543811596329193158467096036587963636945836678419966384579963952723227646149881029379724090007948441046990611885394265295706431666276625081273394087751042003404752976823009686416283313596902973623885289572762603422994859565486114302565014861755795125462295662167662094001705545874194462987199818120864721160474844778691939931925010771706262629532841047908871751682878616928693081999884086058924100130350424228416054124013799731901154338095790912793826743317854501080072050994885541341369186152535371741697408986154256206322350734995821924682318577627247623204628540354252511809098476994913188899880974357945659000861532182507083237866021563665126209179031374385673015289872442063972719973719198981959581155579376322957998552429436015147037150332604187044164412390435835730696398594782576212726622393072203400614984050083611551938638506239303406513361139837521628181541084681465883692066392916581096205436840747961816495336537824613900780314969750783183961526228089631240836770194813126773381546375957359745995310143493114238671412110264580623532686303615826022754913489132023319291151225430215928242197913733552488056144276785332241983666751526835372108420999002158469132225287719363669001746219423614286739494754999523194459863600986277751208961842113648707288633639362909873864542059749511084826676648944610051440723201318687804939211249425068850204520918747626186749833707488372312066831752754223993363761930023668333179464282393247482514103057245728100431186674000223004899279413268543887993613865667866834472685651510176760727807838038104907224336353539277740961393640636270418300559556648782953949943957235922123719555498770713024913007152158942757501219991226394521193092486027658203871106540200881660289123975266170702081203504620708315875189446845264420884565521194141306874576332499092616315683248026029317006712546147200902658763036739018765793723462194216880863178837033259194223001765500674434368057112564644037812077912802728145437633714232603122484250405858871988741920819478199754930959489265797799720926325204187354575893656497828367912387360606809055152340987751545946430180303683123558457939693144422830846083234167088248479966521684730734168316406814801435386518566789281088032024130337286369995131971818857114316310802600608060298455911130873051282566600815405194658557037834298904938977382091513512117366246303510260352268259467690369272432436640138729002378751256184349678209069179243477311167548149266809457221742422152907938173756897128464830411173540225765539658179323731740894135924661136966761707896855485734820519601379520711403117551113200250443413128829251976629015482807225695259378831101656245863787004510408784358543167360777924139953707056823878726974110668803734919658111705071525636116740013441582079745671395635307610527598844909129848747921862301674676232494612063714979786537102702158206680079034269945000079606006742016613616722868911265682968179153052266412682002695725900523732260026421430616178162847170717247413655539978005253661384111252932961380447135141667091287868266519158629885043710679123941570443990016203484537994457349989122461902154212472257858026962157218184999961085310384235631875130697409235156384693696207614366248110103833403580274033239966051957408716742275980619415401641087923371819890905422282962602552096463805421693397839869057360569944212357731863035795551294044444490431447507915531902117113117247520671695971590483906396057420129541541461978071719940385050181270249166293682755346454645281353597557692053810676693571019058359295385892830345082420691367446260732694374934235971791790169663665281863479760350173632787651718419775794061940981838952033331809179186137869318717310914000613038828363974164547984186874857046030775267169335477924566758736414063808433360571293187852983721385811040417468229213903906366034785502275187115817680511717486657840797215984392541964482451778797552594242701120033113118637015383156459671639476787805839747614546019741739541771398006813028339806706847592659894389439631704700520067246001903175301444629138509988541606800095735114163892876367128322280835885895889955671415044543528411128459670985075564848197612849075582977708086347754009388064606882752644598384734273802470303372847203942741011303920322852986804278117507061846330848832529725580861672484164727552227314461141250302988037805340150615602366916801884821780152601096667013798412274585714148216892081644862591295383487349657577813343052376211160032113633445064257723391987811509887810927395984877354323171546714631692344380272403629988177718896623779936513676977667349773150050671073131946115621543799592043018352507997387673253088306361560809142708160945064683282219252121003322330543456685642548455661349501575766070408448926821409717571666048618718093150740192198015337533623126041404325986140710206096700021916687069234393866269826995810595332384964612599534809343291023726337176333625886317459950294828923780055770894853283001778604601082413637895279348730271129139173185726167062287372149593016072587898061337596382767335708767097880532822503615371004462485997146776575245676181109943015019215691100272748902252909416200140392697284182769718386942124506853682775499559257776126106996709557371628947006881193833617093873597979047739478327932520545945102225882341493094687632469428327960472920544655758137881309670974113627210328745613282837333016335132583141640617113281944567952714314120572316655145342206129087589187968328985667759096731206604181150589667059571072588360476304848141678113823074520227604147120141865514389845556458383368925841675992687262553674298120339549463591022671978709422475187019478212225185477148204070627932741821094644581584818749761130085895631487733624815172828549479427673579647295342081992542072448540995164880356782301987236964931800209824917105518165505878144392608268259723324227220278074484929773435722631486320139495917724675427837444906201171964798997413788391251639167185754699998221055688749363788499997954440442283399565478869170379518731123186150711297520143890742044444724455943390675112751100920400334829902482493928541273787147490641701814164462441474696817876830597351616351241099686807018097979301158496392775415941995663538010653518002346760257842601936623537665974870431932459103169319412033801379892580464952805582887533107254470499992223436618653134688213189983237126470533794549242199606291959199573438476776902102664137369170988521773592600862990484137214660651258801608868433480926408361299479382454464909098074749781422451077083494973530147905499153136264690034615686009741719076520130938499105316982622010357342951369036793135775726489178161866942477080371413302091259298045025634308104948283081509186234678708635798832617625111513827760037662169428022634557027811817299812077641833450409862244281278977951284950766420400814119451890915821501699766742387700433211569849795312542431910666718899593002304306368439513834906955360006145380208811287622995935702045947494357325384180195600928119520230913474389959515261082980805501777143337731050081205565436210975181692359466727757492241101472748750094789929742644269413138675997380916346249517578084495150832569450661415989771829864796819333904889004287431264026228644444587557478209371333107498763954003351054680937689128225480187123013611816719640437807819752484125571977208594861695652321079027492943601373152784652895757686986733166951946527307543647841765797631650087930424325459949573810490912905009716975320679339307022980161674259789529691527814714230571408328281528203236069884149525586035223111190031118651989991252031645297243593846374129044828440528724278878754886111710159458039197421826935269074859085961421051683926252184488438996304221965585806807455115359675542414685942231590520114568203249478118416683856204333088734434823697641852546261244963691959539937489017801395790234927952345324819143923672567541732071721438976696726997151427765012021632644165166841452819310066140941496526938866646797488292165416727275592773835861883555098766821048534255765727796672749779298873580915842065362576662516104544302802765326396276172267543720150541208084825428002396582461806766117195871081436429698615758319460903176511892390347731846594855992876470206819393024783104951469639726497940873477676884230839676303662538920212548095782505670550025960600803583667411260222993292623766970960869193613085871765572699038043253760709143964388249617749239557797408991707836794319363355321450234213691096657354360248853149852932612860828316480229612179389642426831785485516569266166608640010521648465728996719716967971785637901139273217673374100520939827285731706560985340262786755120749955155297433680969693287821713926014903757742851421674991287479797962831935334074688632680807333788243504133985644414727330456327385867085018240559143876130896660578814044904678523364944126323537077807610575046660942000739579134704976904123097826728859932020619407370640047151268177175555664701676200270279632748544195604067716249297837570577023176271322298532520074099646897025370433693140007258782751190758610593140137514075009933137800132180550609349244634824322957097661749554832236964381526953287776498412220543151586134326022094884103987923493255610648817743792838044388709494938828045834567584028063454738414936423211237958340053034552515591700456533694540268432856257509305000350936835220672756810587177938005207395605155239143981578047186867660140042751586794496855938640367838058091287566615273329884004722362440677861778802353873398178638172792750543105825284720266754016799316421776226248906311315934561584606919303682380765636810701197528294529162582888942384491476396044337411223328338177610527557610390118866894201949288131890886836421256853108732809673328570546214441309205782701187519655514804152848717382129871013738356688498406503267989965359737890876055088331028339128497041517791512097635593315553346563210607571512206341059276713579722655961653719041925745594701798793726547424878502897164222631077922003341629206389715621925285877640198991319196080491006133319987333541584251668750623403659174733526742339570400310610290453615197626327739498070798487700102846323401077832113385104865072285850514792079468553134771675994585818117965163945805071975242708020967881871026537079489401800011011352388876260077029274376741070121669098014244243470987665936670798257368000275379098001444616998508600994417665558018106738831685647056642302077777651294090179877429992789429742961771139091776319457083153048276931250659937269078983987015168245677251888249292344065981012121818269166142895669115103344264997293189651053842552941707809777493171558467619234102673428206332104199262511209734281551853003085486573593331463336533386275553579644259825629937899504552281829670101928857785532967358945406253403211544014514113788659395681214005094456150056640242922970824880856665947904770237745552006857482463177734346279796062277417786441455156069488684152472581287678400288201831544572686980947695703329630585080061553639926191867070446735178254782890628501542064672048886262131811438277517437726136533663542762939490083525490410792198463855644049219372057229505520538626597724696980153847738953222377671259084436656680198449396071765152570158271326852647455869092781116441891230087492569474370740621449410442334013724879255166689096230827279203223925298208499813823121574148981803098832113089821202109981020343666475168164371342554600705415524104710526295461079167312056318467470340571073286010800582630874129797251072627558130394966135357992872473674601473850469185170780005990924757814400518006262761609707491141203299347004466200519404831366429058651628654860928468418778569613313333593565549138968229445301241349997760048804596630272897747392875746078727649666542191272187830285703597819969396752776277018131910351507966648887464777921030316092217862697908196472375693190118682072280465304142707666000349899359085709159201831715399916745410434708579743400462400073994127808644462710706387652356618902914760889176055929077438552193290498308341507184374844432507685222038055963860529083962446234637346347565505075744681296328465422523592631079957046298007410793525112806040304185809282191369894587073771222894009976328642426304727272652217601433117795303960608764593023537116338304595115938184199556218636823619776734499426174341139674444607266065842012785461285774496142372686056500042771526360583563248778085419544057511265950321146538818623666213300537579131473406023961343478874596260469579474449202921567673664066551533588658605407060676954834755552584791723086989953984028325378533589064699963356784526151809927010895536973049389805489836656804659242795711037717317061859167285923424316033391051822637453487611338782811162577971864859350258835434241769019886511559602133881929054407766181635505989202881128603326301960693410381089405564414792325360625675978277948982334188133420268954116258589198448285537415898329815491754461789646616226780471419493942632755215021647651542647555539279964394704666982226060953619547981710998258694409360150625077678116907961058372822975946702887727035610049212374930681410853683809248370254214512887428864837026566287261100475099178610156716797110444866304515455311011947460973083608407959176636673057940066392838901439826255133069592271529569203922945315745680743085364267642081673132787397322015222232647508952705208578336998106710839355488167055941601645892369084942361775773921445843089580200761283458800755863116524655120028784579737737920249554014806565912249739420898083301936395009593587446682621283200341981665549899256321082349871483441581802788300329969847837033773176857456532870697016007809249992453575199969649098897037594063184262050163681915244918433832403001984974005267739053099548861065273142798415161817146190738632546869009538470321799504846298583312246459011110024568253824409467246156815810597038066407069538981445242796749768846176201477214954023505046835298530488722081085262203155238744590269434606028004502276474992471860306398233791216995851751626701364248166689672226047637337959546796291667206030274353375465590637224562278624011311066257060496652033400193285878812512878287685051933185874177779052405436486487114457106390809643360541678257066185046508352698087047886508072672203576368307984985691656077940484113564503644636767548795359265472976538300527210869130488345597618331928371204713930258577952600695648457885055276081585165734548536027743205278754804436531962722513737644794237533022180451159953109285136529196504876966880338133668614744899003209298946189948161524820590680301234196021576812033115934388215932262485993636287391159854329212156376612640020161970147231109204930776738525778895037339611593914823890133180650255595435825570865717194483464603430299786198940365462905829473150362003307256654974513432341520179305619922294180583092373333491131283069218240924496702110276311072558899424590693928292596583147908064239438195378404890060067712276992931344642548379170866311740479017116419717035931413173483604852389790662999789854587908368261665075449764086451700685536029299363708294514862878690174516589899805208087407272143279531063246588693004704601501477716343730049437721382561886016449100604135434023039587013713816679427640799775799065372563455220291837677218126898306431855569748355156724363524515876870853168534992566694007654118366804986881487545738940517056197718686410974137271336701519660910480877427975021119341732354573224590783790487863731370614422281050011677355040072332207753744987253593965753571914383291256123742774803698909105379838139704672423433602353945227771257079799352531314171120024294451084485939441474678542789078186583149334549667291770253258314541993448614942035814691131886704621980847961452312005633397728152982446720431425210354485520516485258295096923350280340579994471973838774536784393994304694447333159880061313291273384240414588071596764490752800948129070236266689040961911664030053524983706338348153214753733385899400558989285793890701480122158262578463124677962965751205661123023079157064110775545147522693529781194921983748947433225156042267075618382310314124528671642124231194912005390872759753490683455259965467589366387604239037967766730274437131595453074541043284942572541460776765148430571453464908165997879223817421180214763609651815715986686985613371919018113731557740678251243206415574771842328207040414806695873654179014779179508154876234883816591070461322139441916985465055257700146851219371981438505465629601162054202126226734593391408642598739655133113712171105933724557595174153006525882813918616918625323416728333577938059754040872179952800637674652602434359558917688207433764584666409575287300348894245394894410538765325045861381227185394272911665707311543606026642622383968027914024276008984307050119877916859877420423408273427840432840255335342125874657919817329904950166356241742147741713644417036268535946689397103448866752743873909441932812191576320662287388539863498092362846156227947764064866156443603028156759687556696418093328135205387256583535780809304462407798092820124890172232548457855076876603073107024909463551364731887095880864940574562248171307179584848574577700035323328488404932900296264533064723364603921970691814594664509965054055902267386056930672378336686655866226101701097095651723518098798482530029185820833579763128855674242665613473416414096904655463821951277255673778269630266993935443396980573829040192392595091529267699833499823508983811500802488780829947443103919470468659661535053920991393965129825373147682821170408666167000816014250066733378227096957294434472643580786020076877105990588537518295662009895019144626808328846635836602346986368146448021864615665771453972620526483097947576302488404229031322104185970741946377026145648485927638234110767690530320650866146931357993755202291512374637047487215869590993034453108667629893752714329566370817026772143046577970906619667134382804574879075053444876301270726384058648089950423895701323007513605434488654529091359184926574883966302524552518343976073885988921033607217156671914725764675337907420406212035513392188636634790116082650201280933062403765584857307817924549440173172735716091695368640797768957325075204917025456141297931053131736464234528836102270201567974514310862844495897337798449346466987083905019919426060535970446594796867291275513401961342204981656747170059439386398644173318940399041408513072864988290092697596943536855012486259748619542538314267490775748548050450485833034727320168327971438218559814665231102265543267415927402131791085429198255056951772746496968024853078480016518696906409793017357993469370126704536737400870898158354528994334017108264071707035995689155332078842117409433007037741018868742679353914951546273533788784213911671744704688801282278028321100042368879562684192547663903332409036591439541159155979696095266932552762633920133572188702913557924910897682447049755116988818766815706969356021794223490439081709032323069840785916238085416752481531003967167731401522288128001051741079086121340108665258223244848052780831099302124103952413562955635354725776445692856182753651576814236235485598251058627328776211545378589974234233588359968950720780522927075311992171488096818014963579787008617624577001121475451281991729756512590708509561678912796113275122208567370343941945063546670143304730850794105937521843699406026627886241853124286355737717570624203974012160142638382330676318439606165650945446977089817574247360779775876364722086181683198156956992821241802343882016839733290185892563756629004338922794379159952385535644461102692718333498316855954873241846822660265212902834792966204591081685860686267240689521494260552795692975323095019406193852800836843185295410080949794293788411666697033307847875786941476928050857565864993634887938795291911426624124880489778476328289604025567487217027952897790588691379683096902452418090838712418409592835788327787318249164402145870071085960031685626307246737739133854664969467838398445585571276678904065979025328370388431408666137500460665799228573645633944165854159770661567649097474563249105226037462700700177685635803397368242958008500252060751855655681152689765902766645866670162926631563331658419894200825549833946111121442551362775573785507251086284399366446088570573402564220879252008752022943155658785191128360245653493037104930061665263373686383636100216859801977605162647583017216460366997278524357735729376202939402544361005726199074631934406770638493476165950280834381506832769318555842723051292191759334428992676018804669957628021455516575690189457563247785780011090125328333134426823094464885113577023279115250904452436357753700782065549319530296001448305518542472205761007584407061483618295520492850777341814182210841479273997504257134519724121333714077066786552545356091754251597795126758188459348354069496468773938925463163614340668227443624366212458040890268008869625667717854447049903941686791305415424497591921438627024661999047894302098642195674188412181279197097786266484541470205934654383143699698062083831418369406177124163423432446379028030353108362657159733839652187807935492017152014331372153448703088666553703833481186056459548785487472222398390341898238651847947685660909905460425341417383080013759296042218371477751653149183706712062069445004995617865362387785185533634648784588068249295329071657074928324390916131007961149406734055748906766064579909915843038724207230048046524552692892632194968137210398737622342939794341363250700158439949592514849883469881764020029938916461866191034940870377044896162800297186520552446018793867733713249824881680714434604632109996687173742206569913628438606701883680933257571185660749223108848258149241291539525930157452081714664837896810562440241844742480219686863094484959661751135813491418448333741879444435446034281066146596006337088151718072918613069218277336200864743164987805445636021814281163064490139803287404997120051819887312596972040370060445555418075128660172473962489796079011530983228720286519107408818693404304095511210184726232647912969496671433876479444480089297834552180654948804923432938146308441429533311316272156396733634670254700702451730682868462004529510212764799569600005214664092968080353475283938704902500349358878441573855049279409725006056757690003567248803746314283952118205333746796277795211866710541825109369719270187142120830382212631103242463272466962233657293266796276635308545722751421779138674232276759346797308120067177329119653440467123746589890011727081789223707784068392905632020915140735710670070136887434554687960765093721063076076489593274041351614610063762714014041059659983823619515982425774571469872614502247117826505298055767486084304747438650507061383150497382940452366721528829867331736214584344695646166144356953096673101018396071905799331264107333142544932398813847712829189350095557664753969933438449162541173337960881486105323697415700295027570902580327955907741368373956679034682012179074034806364707134719659262092557978314078298711109796664440768947447546852814344433188631891033256892612835836147824906074642121584199430235894917480540196604351641124246453996464334729083740066405604473595392561589959253615603943833681436118074386435174621131110198647422265650015496980057952636907863314850952294262716254758910434568147375585032189206779101742605621728470397016520528849588946169585936649911638199077490180520981672163661029676990778168747749938240001485273559143751679798848921192175271570618820648957619661964922331248343185566836101232833633399803392366315117094774560809768724930208859607188915219775093391301071456204893824881278622489582047106934518318069019254188228064688106764321682889047601819985951920550838082741223270007097610248242413865613561198817340567842376426434372305816593117053841739512226295645479010453198081427704404548657623191715984762935855283765548130418806911206446875637921511027498390982272709297392673911126650672161396518258327937692518505920027193193107580239948092538756497711973594511539466546812619908980230670337383027294905638006182153292064940590460612316739950560347237289702296915142030119335664841639026159123382196465327983991419369205373394031968616676752242713519116451552236162508753939063435375070683579613307922773823916534723512413456463158550910371867684250826307961204980943667173215384799011122552663859703294961544282863720950030460191908776884349748663466174123249221953957992480205071820393386470952163369126773619777846674585758129147229827862125762299739041283281276245296904677902803270545099962403108763365427985926888608734996604981048701421065139110408590328178596907160991669994042866330392987325791546323877791494993942458067042396182188641370755817864171215749740477853926275905590202133150134844982888202832781174447377010316249227684355177313082344206520708461547030081103854628020387820390805598482611443929547220612992828453979277172210837348355067248154837883595449451782832476829265771560400906376665183385249390694422458439330458447579743377492724608695109915565798989121873769747604626285063443173873473995674254622687300622838457336217512366413677817563193555273696084975284706074821438579063077665316718616079152008971459957901734334175752484025297526090051428510907784084213437291432972755155456388693645754382639972265339582076392042926457963557078378001397242871364402362360273954622006438641284649652404393041649578524556347601592388342806590655290893637910953939267171348105590574891660202425889761627858946348586253076093179478604693996471567300330339777104578357628209255014323818709806224115835876971717459382959431815567901241916575683560362811792638377874616823971113746687136404852030645656623971015621688387944005404049856570665106104318938354236203124875381409908867208386786853028423413491582856243234373608947111957370109168575509921162644604820353141521544215118719810281135854130897060890234163540603146968089062062232170182095814973136672362663002059877058781191587915219845788764398633649714714639815344810956816449561149498305944998749306129280394634496879100002191009453817443715768755182812705545062641277825243020433664649060088130355249180995639047797235628104062964501374897113900617356099946548417928914960484178516495595051446768614607760022114753460405928221175284924191354541622700830821440955557533884186750472437806632631037200266751122941932940220317783858867939485432538117232961511123827450946115335031566661359058266680494447287766285231961394374673046873994635001061746868501987063271001477571703591514290143222842604067764555015561805500671377846382297482647765282768821633158656591565463838508338477592756409323084061896325774427553499131275234140764101150306690339171018476348888067052989193128415329835516519196382054175310056798674893314328094008802466827582988114386354500787133688805042987039667987595579284992229426584942197024825667236007329195025713388548453441558499589387169731670061352154709049734593481497982986772020586354591279915504350905325321978050173907599666985226503618986324943918167667159417673390756662208411845694479507963625648103196853515789299523876658083983370758342976207574119372592846770206520484493791020995921263212980456754927332497665666936472900901850442348455518062035142636311658031890981708938136718751957204071641703015904799042010730312439653112903069541544651304961952884058169080751211563827934544794432124419548303940290849129293765337801458276914509219180214347102776469683766189346505517649516489376263201842680926075728260886563706676350678842051642393308169957798058590892261710732779924953089313966688485301373651036285032048552230659481882907251721488557039571684448539489116066614552434933824535579687044732632696228904210342802497106948347297915956250063571762339978548239632078510533836164453407099605670076352877060461707970224507130361658117059629189409869724876385916680152755940422996451724543993391834788101710047812289575344965592350365496464176248598257941384361202727629461834210213683556968537811828500239625777615374426727151989277350419638863386552987043905390810463480932079031446851992652256877127220293481367832641109295301975983171893822500925850553671121222126742627218248011648952551635895825548059253187642557942053559814985365733520899139614594251682293451098172602200957753683028754359217351223338362647702517306460995977822695848778732460579418070892831034241222695983147243642055065402374766142353574230374207634471427655199526647479936971288008134591268616891310930151972032851146539896155051749836327827726917888615625608788017836730193627504058746909130367790188641085145011931400354615234223746669426766191675307490806534985797788408971380738655892017808393198513309431477482520457932973218775255091753172760173135696616902090549064356676665677577745687772911804258031968154024632905727762088667704581431005859627242578162569328460401974638005698483873089546455033901535287081590216568906099543943148818929866588735599012596893094111113552437970904947944327006767052313009299847142048248897195817629535015599842583654329736732867160869150390200765054398129514305305985464186826082147516984206502049344725155134810143076791872613940167047918308022419623855230249640102545270316205672446287132457392230597475563876402162723730783119857095221052825615299254939540403365857029136501116715225528853118106639166671299812847822190625959100597865132907002878943065923970334741036974154638673064899705605643385156499220767099375993658312696049253562860475075734524974167026121056260923565092491326397461856637279886274282758764673347889769365105036088327123306730318897516722189665350100708013407588258140829607248814095476063883416792599351510753419245142989661134936443817134714022608494826260133434167783687456753347326806861457324636721784655180496623644532945903182891697097555936031272638273548979194925368583147741270797630514328303310898465197552325923222345681678809276750451725636036394904427140185383985649989607734271064904501815121691747107769382471038882858697060667879189843567806566163698626239884656841952438027831127560870346187094482466978137527907072441232207763361161467751362533712398807771499735026750077311699720066441375437423657229873178571251832103358900011390240710215982424957553877203170000855307532116327297607260635322197191399455828057723198635012429544577417983566080544945740562807105364343781136578137723244477037775512199168988500556528167158864122971939788239689977093417291202505082435774852634345909496560457363951535114563330949218072623051569396726369951482425678738692037900451801610347238899326944023977399526776693179362296507286835818234580469077473065352091933007130895712290485546071421451000776202612893764595904403114439816583206865097870635865026651747161282126554125028462512026708977182379079335575064730413200474665965706867560809954710290239844189683427377592925883844276776290052506207230118821746216175649767558764898890741641878559085553824585744398045759168848117514434155486767977507075264720598785784729297717857153513082203227240222203291857077923330783512988749908544571443334721559904940085086783479559096527957341825628814045374693038389311441846268893825830017126772485620832678169856284765712136054331530482041841266429630911895153773087321797189586826520553027492345430906234381776547913512475832214203200107707463501440546858184185598155882720990030662703880809925758882295904748541630297836352735727167955836463562272391595602574773387231669464866837977898209021535073559032109665322442989389816496631419239237898663401307351695230719589099117197092113791377427003713064332392384227022398460710472241330798390176334141342139765418845784946840771549587386960495432543773367019018463336483699566222646297962099736657338277233566950759047718541155282266787434459257118299237982645324265434267879586884269606589654798813246812086312091405490870508386121618282271287981921501365250849662187634203118081356551171188217920530188293475023163032549797178335349483877038788614682851017748590959851037373979358157816824002846449009329937807142699145983937175278245611595010485555258378868496411712737698700331600216801059796178786489028410846311896665137672160450913964035059863700361333020036471641357712841230667791736616982503601346978542956622578043683622839489603062562243876275272447384777232440434209953105382721668067360548580141592176708312084074024088852707916408231196357669489508065867116380191246163741998084430610471444784415971385033858680234854062507084941320099212246684423773517530529240600184378473707400433341656255616549158070978445888628403813300925935156074942552358933008961002611835966905630437863341269264618634898811216544542662137297780223508636116896407663879441553390055290199748165574625204598650223903722318172912491249185886926496811622567655508328861068787648972422500528524679860312361585185841799122437809626783385156373536275208950342145128190914995460476117257435684068937874293478782073453837907903998817229949888453812218997682321454514793671601234571189462466223615820184695548717654615500531741771499081940730591379255836724925521683388606410696157388085309652680203010189608635419930564713658642002246963024502540529343996907504437332339476916934938051474443616913658869635755544047106129642076149176632269355116832893257130082985079944116779836835273915888253853658665337336687870077386099328017226440525784905464808101257257633393636019858653682295831308250556313043357684946004146816018485366952912757362084612845424915701518961080944544836031106326441991005756416667735674599607968197740096550746770951227228333418282777624974470770459384871705913983432752257407144424250582243303661333282114700838405011056562121668134311314675013131944106024244282152453523708695986470504338284929544996145044192351331721020998520556870412567276628133738084401739757857443745447274229358689840819355502527136202664828452508257310440078508690117600471498241119452778640442144159869889709537975097298180034363454440745939387466672442611219892723031099859740572574317039693769200442024515722519489464880493039218408446255281927570192044082147378844553734039135308132805238466187567069909738271619950870256356415046040313905365401408331190084497615499378730551944756819185836467131804499878332952252353911655397742091860584923929785708372147945375438710970144598075535721089439791907211871873484663684526450013589401394693939783896588054429088945756889422392743634756108509826517968175729367187477002714806518221487744495018588674847466705281993091606723893174114140522831427049255995354150634460858075150286489645706136986544737981740907273388015678629278042804896065115345899241472657563752339175036682066889412554322344198264933190284288824314922503814808964789978955281406714009371747837670443456403221543432107846931711889614027646020618416354303405197788848318988307216147124324144713268725252460447207361751009001658107668275791916510714942317776701509807209042514641541006211981384886212194740286237145465470704666614110201831510704150110375774776060279235820168894803564975515633294183532639687924249853775487028944110999555546672185627940478460456044856663191100606816031470917080587960871879737589842313663089390485653144493893923934385693732986012547783761670309288962744053617556288324403353703129572861558335046286289570858374413751141315786430530820842834665354005202096679305471400010398816690925457783237015879032198791120960414379936050956623611880291706710422199201433977989444279331285460676760946808664373186887210940729632816519838154886801712771179441944769299532971373607641306159162542406409269592909989600318710496611914719624011838690808510357821701478078171327888938387622072365350528164978834507916589138988212840353441985580646733879927167049749679013198211899210238642442911651787312108904379826457558775182433963392907052310167819752275840981295476725517000922308191123909671669890820168941169719550391886851721706448428656583198980017628221989020896832210148654836173539401413255595746922707645215716595249945057886008091454232287000669238456555045259470441188487057655453150442507959722352511548288899131367513058133556055999077750979660120871627253665279727398268601781223943600992115675875268720471100975633412083636928465086818193487712372411980023917892625638845112691864017416042765751886695763018554410332494786242020320790044797362044221070679726103984508657635659396053291547071362908459544345686650354877463374512911288848042558724541612862322701524003466882874088747996085065552679751174887125011412779734848736652705099330278297573542166570625801886691101917461427959414911644957049026671304907366806990220724593001810981830415957841726457535236004899116052967558522909612388373627013827590567534386967916253146555889081028126794809148054071839979475050945503572592081415482249655530458358373576030573500051641590104080715946357113449776211961744968947538486374913326745684517614980226673478536126713836819424029862655061747710651684357143044862351504429539924805310637656275074287710541137190026453728328724369907455187295134678849191423946806894593807288334379786292837673089752628820274650142994605104696268821600589622426027764684291716371777449516622498113885201532521701688940868040478230871335061594523884711189244434119992831158563913817924462629522589148757101897547125133700561448774003178886168800792296676402162173855401648378625818874292296728009245527033997383540059124890927514723839208313784016640292728502787892027027473299603746960192169721039865797506289304867606319534633258257013976228326641644389009685423955549518157615733751193436998499989115188015878697453629492998109231622015152793485902023338030056567482226370430407272019455513143250112886574103530364392230575206352709339381206534095706371546175268060644834323503508715637318002011438086536603666599005962440974829268146793953530985363273957353781829086796733514597545435145523066363128145009830307755843066268991275013100780875155730898904775831957755305319546202785909939909854459204207082155632205546494500660680827877098174275085348094499673695282208813272466259418803488787080675654553937575853258741704003259222166571454125619862601440767988675303680726852391634621919371870123319215378683586199269073024682256909480381397450505976355434893850143307969331977410811280502941564438224007980958874003041091706217607341490091506649421571711030304052437633519203941223693379422370777432425664683439358011872897650359722234644818953919475271912930034648213945510975080619907344164613505228390930359237637515347752997801585921829360326251755113684637602152972878127052591310039845127610513205366134840238494218663253388942505049300711737775397419988293907690778657982931692732646967838245372822871067821768133443955691873032009207814787948683151243452476778349041429720251111513503885319871919886436279532047191121456164604719251955274657055560365690583508318174863697776139544893985118224792032669143983767011701213423081924398970277489384080269059672129801222330290783321989146304320062859244882851848795933022785469948022896808761442284853551432196189124947138923737438396917298967899277799295790149804213647695235264311292566910110193658604452002734005422307263401917279719353659540715098712391658946775914261385014552581282028838590777731289053637464094055144953170730080592985904333868423911522409813693868649734929161517547267868521811269836601494681298987597683794798596511671068516121235703271915029757766625154150187711480988904521981355541108862490274779973910364034264610889149138872907306819663473840341187698755927375217372048771909806733840537045505810791520592532077482204776180408764547205594869232547736577570393639151588931346790723001078970813695355743645030121872751861607809000649744739482411494997246153912668839752020485211996322157375342520748225903981001597756727896958754787564188267412703517313007517104605005016781723296458708152930970623506077313973046153258195756377684453319986972450396880646248116303495082037423267495465315827070702068741501225773848264335230202965790228367180297420941201955892306020991181598963815707809770882817346109851788783990311378765318406904608891679449938189201637377359425286036991844657257886508970852008892830906372294587143147946670015236937763723115422752864568084808077453407807774879347246501943384430391303729378655902822059888594363476804690916972111029035757250305681692339116736070065663093140852975995173336188009455097562417583828887817085193865450133084794631061542982563515441738559187628679254345880854427365106420721245493382089672062453770722146683653642453083842823637543908318976631127850078716859283897865396883140316745152617305362299778492121889548161068421075268686515118685277416164505369170913612773522691964078004345219189233566868071660045450649118581199666886186333590026497077483761062959066819201207611552745339573302177026989303399834775390818000243110898241847001759446050919435137990500214023319038729839807394136122365021819107749660927192878523182759206738475999410903070179429571907401900055659737337055768480334228249821140858420828968798071780489743892211687453532623581194289153118484932417042137613953464781031140086276694501502405242909395983450600633660350415142799737134769427264369765989345782255629304602241552026193978978682013050590940883119709835948201453445276885934533283103220498179842332451805443308870207795786405087911096140406471977029684778498454290599006639390063794076443869794935289028084759006329635749530205268855275272045350716894801616967846090790394076191907260290888997446947667954692008383621695317584433300749636275440513523757249371693157603848929075375702895985388921845186957999888169054429878388775748728109374222391356976448796051061753661048594009588770662633944072570094094350300238887159609820609661949821207368793643346093572104309372026877169369477383403523399463846212678390670272378476303089577948300826788751140666691134067414556183188197598605085491529572695598924990800441275524707234563702716058986365699257844553862422601256700181413868858586533870106391324710022777893056237510908940987440690851547519307766258207986185636486710838714119211248267426894996608090424458268591083083472243802912303601805498030361768263203718372516570313322438721622421933802260758687597094712530332770994164270958616635711765486907085408533648195524046041500341098403837671077591267708603476780957954571180828453830276625533907518481319642307495476324528431687400843372654871725048831748190349384246357334386513358271148748648817322072142015739693281773456883302192333264027277091626743237129684495810697825785260050197539414571184671967593564395275806584139998191345859641709547411641789933559020791363382683645445260393280250952682794950327898183470863076751320432140597930665555770878285214597180252774845809148670760882182749451479196618087001139525618107758998033507076558263538660095681264671468782601610284744511514507075461175541739919994954825513187393232232292453860741624267661396598962155397796586692348334171548407889336178159342761788108008354260941441636107982953613102314648386105733575763751078036951259184974616268752109432948325034218242484674834648412197230306866354881863459887500011737510637530488920377862395393845326336877418417279890534678317557796642664017167031129490284961284988593850485199483779036828800011493098399680457516777263473599408668901715383452023364535736852769214372627170164412644280496060208327789324537317764626054519232731611177301186125364129246292840525710749706192029955712363052562821388589781210843860037702212992781507838601273707567216079775664771734815776486098126758416113913706532329903925159640796184640185042494003141647699369325722309703060299175597497918169288476885049693678586688536305486982651350727562231508575097722612179353020764698611986065974429171152938953224798428746534464124760612887976739084667514276861624108149227022173371073003051205498967799314789532792168861284924969087462767313775476766099111123386226944648559030526927597819241974594707495621246225054162499123064458314950456716307825282459905374285191852181285076283292023836887916872057227404005578115436561623380329908777380807578008756609171192170821167653353545260063727570712640602026645824354554309759809914503064804919756675853363539948077886399084072004366770553968383046917580547599887860184762888836711025740628035152060764931451119056404299396235005114197272036720131592394906162730011749787151221565936105541659402572359886734740795995386131566124622715960083595881872771294555575819644200867359509929788665188188878586375482033210194993244814354262793198339096517116006821968259058676956687948629433413157062141916198690609897656183807623662953406694690651349473717016828817570950815243073833707133406521995683932692238274736732884054027760378587090435841733207245257658329826783817001237953691028405371718470699386080437133563434570857244415294329509337365610766360604847347786442583530627248714156783297356327134910477262045851299882627029768919501499716706831002863271472856431114829629116851152549134435370462920702181358585407249379723023688580926967020804327164349401606499311877941720420257907355100265400768139241307788406331811652227119690682054660276661400867154691002010417936355980770522843889621617345630542738460146816708020630622940491429392360331408769670701320336759287014547179215204850298343424272789438785705468445973474190968257338556692705282585448114609489140961111683752128208234685918006535300334528667033917722464788020270256496683666366600996315967080611866819144210836881219088339250849655984530103091253889160700591469035088533609524377097960242524218194137680339837806461670794794739652997912336805723413676284385321066207204815182730644834208731226677843319026157329916945187580028431244994104365418229832550579245314528397317733190242651900472053415201230580594288951274119230407725984879092180887198341910152639548726830355696683669701359526686235017539608959203154157406641997842662207464398395415732322500725155600690589662979593087017197668141582036357642428250436080765805074283908747948752328980865212624984786233949366127898913477467887725062446103709532971615835026610584603727638233037651491096380493681831886603030476147432685999354302277940539644432726114766725814432734887773452937943928246691543064893679517029628267466578265976386213092003869176764349542279704912540613146209280344098387672644564410199281097535687211879170186631126699361357935954968392327234009327356324176777747046831912231010594171908895077578208465626170431072576101172920408751327980877579409332301644910743431475343885705018785660226423210581845391148213321533448817300838137223173523358135582369998584437790075926027060670720837537550349817244305215246247542076172990813666662307694753175170136659828464657561920739440983286781598172012232361989259221389312324863129534396276333543034391595985615072752828210531453469065032959918876461240039137769745085373011858768883321229450457469266769589611428994007958341156625738560272864479249985482950538486220834895349397840144764263128717032400077335851018057922875578353041944225189889836200403678854022957530515771397839020197536523632927707010249773028120166933386016515247438951684739502117013224228660456138198238618210014733277864841283423174784487230035557534895079330573913479109559573768139644758072562988076314607042784138907643080564428005630458451417061977201634809578251262482878915701492496603392033583146416019620626313074075853077526597370636835921020194741734490029106909216432602202996761489988851848128624633771656871764687334402014070359893860104543889206592269018522319471192476586860912949407964192441501491610555039392210771927306160568188970071506657288767802291554690030353247381384456480759325578910723264842231737607883565261515722973000931808656040573713215157833667786794390654362934132727236941860211364464535617646631565512305361177133051998527621009895862547364423445540848727182603321051934547242386462516143637215037455552867526409629120229430691344450803077789221410392900920239204495339090117402619921499670639086979193349631617033976470440441097259845253627032771724188731809648503176960309605943338516946590734192947490602412889705579449607594615763572302086844120769383461342745410136217586326378598617270702533688313863715321440306978503791251570886743175921795355398187041447992557291170903231987341009708943754913886914544920461444144679300468703830865568980698163718937903716515961020826272929516834389191122793821395860316286668595108049365744772359285687568642226295975861987930714523173912926999384938859803755151592062361779240517066612709464784134370929482238312718889063970766482779964430041012886135178342551303422559119505986102364016990277951978490926934759158526981899647266979228263864493947420027321556121377264049701044022218376802831503678608988408276853248371786143625507075851991204866546393783183412014726884219513480960786266908918290595417827930916048607731423603728541523052917710522891393038266965698648821435286873824043267169892442061592867975289615734941844109592334203750539766278288601743533755148741235983459123902164661632933947765576813578578535560464433416126637017841303937843040688600277609065269860934237756275561241869296327939454921203704406825319594913717874078271578378541032004906124478518456176556667706385827359272636015990542351351737601504612331330585631804861816466179265130350109348558174058179627076212099326549894470412815619607252760499245287720202213418913998761585246150139357631034144490864255455007277632243428966574263115696272275235618243468932165834884671010760300578200521942043040324231467326415639725514152445439952881063633721900849743739593520274633781607497553575773165438513732284281450611774418929655473797841935740479400477205698584140214650583430243551233761559333814529090247692711264269543126386829824315888179797551987254712177894688597045340503774289938352942766883961780858910731919240460297604221379681550884121361307406783391763777203437438026714945627945493475110227692967939685247631996809564825816724487312046742064785101398034619324992842589522037565927140404079594328360975083802544732549827171278802418204423321486224133155351430105639096682800126515312736746756724245216394884607389921910628801597445703172612243734529334913489207096181003071854233224299389745583055521316797430786084949451047596674328488328646132636229309034971510395893835983985643604452333247424771075215775190706622681030195774677691933522024991010332731422696393748329694281831997267113520985247241295304565324072483543849573568080331505659024486082693870998403778049882850860903209807664987332954547502857450765253849934011572430986904838454035231343629367948427773682703955408434868442709751215674242462345815109134464899679372440374523271525816642256236623291240476453081601588213093183184090987133249845628588576461917169952386880864296583480625209434789104354835720103444809381659130964117691595360643311646798056889923890732576619207086473143027443922836772907848565103570555271088998560810127296287721817427729556064343649648794919106503057919392935960340158363979899054332782894823816487640903972620795439706042237205935918046587760274846809455044224776818707607432129078676508280696711875364848100821254440724180459601944021585452649000888309343473301672295706477039429744835125354324390453226855273536419197667404860892234833700505295102260937723092696526966061469070703069781953632560696065797093371234844955622027041412797147590549127112519155828668330793910646151047137519973460904225054532636006269164853533090526185158422805012332242449646330990954615391277865415201002082901773439320608564081950399730332374839340977629663608766401307183519350220857578362530561681256587382131036717182123213202449926670751724323004042245523589426777450000095121453697492326871189013468662206512590886996652543920468553907685207944838790351987424500228080048593320679374559457651047973850198694353275609997149451944842045326540879013181110711680600509581369345263851209172655788163164438220469979989075723884503494703807594156564053040737140246405431464111999023945836701824453735805532345064425751059007631201980651745807895299400698793066102526682395786539761929096566089464819769552095877930439456270179265157739348080934307028658613361074362098745337361623149078606579119151584656161206066971739006323971731329979791996824277553311780973419378757019076648071891563221863796720574142355821405426740134312957392997381263839909424293747607077610836087364219712765698546675307241480894016391797766531341985693683715659489250143179347068449332869827255627355206779256616840299576107951379138656708147217935362648142055433584355636057720939813758042908620240775338608569223281480539572118254984621902297265716131596257727498077962975655455393397082121673984732167734973389283324604178313522388321588916906607488198765570985726596059826826830552680667034784722594025762506819318457136401815427304868224180148648976913222025262507075612260290041361035627795622919751155193375598195765807887769268431752699253040441560424530815524095173285418295335567753568605234212112566297234682144994106822431479176891474896531646626319654987535805201253620755311622781415061983466532893234119121957028172520501417469739693973400968103216957026363776052304434604950351258904792363855973100998053539870098734429420301202187473409512501886661137532798432122761979933173381036057798600765105923026220985145361435789581280830545068272123212274051208934069724106230011158916534382601104287244399149251481002925138308930958428326317166446413240264335008864086246473867603398957206901703316982614428208669686489655292149974124066993294785882288723388922041826697698974427200244174100527127973261282055102333201408156900833237898895120198735841946888299895383550554720865413877702498262768790990350978092909768549534610017908363624431006318327626538746904182386886220375232228446113341648292559399128876265383816436007476693295924955362250289784352936971845291516169966746192707136230361774582074765616355173014279482392553999552470244229350704936372554911673803161260870363212295976625348152472796540576314132344440708576192900135741443316677100473840831584139581931467621558618605202856716899383034363240967231170096920084283786137459149353747416269591081293664962160669965738204045224913962324216541282907818177712394589924500610989935017463136044111016187333899981829866819987532262573434434621096802996970072287415463176908797237215948843480514868469555280541520332043200740582752984010551824851421805951885241626799882503698763691883664215515157464714201965069365601883924133664128691046611898660880088158202721883583355563958040972012756071102600284551311758094342554060210722866349751646751867995265897156913756117500095409195081986305961960884806317418265970139116286883185972629140610933441093964567475401243108678275893284380550174480132124611492748623455291651847119129203597429007640885667038054980258767046270753665455938374709162880334521157774621026984992386848375319149818580500889538903680484587457301562436351659668093630468256189162597227123670949421746772794356251015215869730625447715938694856653214217861321085438732747280913987744090768875326361928541209049161906817253134687446956049763563341036763617150139370329023758842059954530336399259881343912642970703894056260585907377767070629083387449607963823821196065021445026212264103569919392495066416120143773165848620767184009325756877179483232391129883358325115366964920591717285100790490908331396774997545605681599037175202025814811632841092636659457023894316716057598976265810294854333098014037629064333731653388554730998690892396618553741343588914042982963822808369182428626714878746717867711531049991619480669078005248667731155103233134625732030427815827976838703854089856042714917760164691104930327644303052333690732197196279211343303074132096664732189942252889789219299260893879533182776841254196207926729177695075129922374864069231875354319858151525830613456384092069904981542528954317657232778002642007920694591961588605049005449076469667374101944663701392036372210297751425183631122646479567188033860489757279289632533256762122801930549859266454629744259557538629053740062071337290980948328595256724058896643246375598382043478151414096465163278632346424903983093804806772234769606942051683643320845524304428521297411973415415544023263837098246528803473315246841361891408811688539554814366918502368721587170001026170085975355252710061690704045714206396798254145368148399704960317664100393709054111018950607470574646869917033655989527660437610831267537956030181676689279998730152281122753709549916108019466861574807873969308976563123952044619804895142126801500295971217588609008936433582501942783286995744918695581437141642932158161369863110905508288237322577261837130341387239292394883503385016818685788172748280737148835655434657647579956867749665437276545384229598455827937650038881239845605742529437809674464101320324609713392431519302726359045688133737877916946448814698281016016439970387421834775884429769593174193348832986651392885124680398170897465535390828122533594396945315484834418033734033271303586848488056757915877795805110151980596399553192908264882426328989578652435510962291493541421622482437631499728639346723362935519587918562890829220343899737294270026413043716089539628459593823688552569103495549982613117452660873201795787520750972137208142407835534792123213687046821227281498941493547846107707157502672174619168563595244583888473750869702679334646445626454937429587278674893106010076211246556301789888570588107913836233620419097915726146478639570812159249385543621560422926136064975406379276262987885842746649327764298313071355545142714948129170429606559101426526495008643094754166572757590292894127785103449202108460848129911692011598650750077442093963168465260618004667805185581090448584601157257716980130564896281212051189543734638220273924186338520525351177997885580997465076570934189035378387350973068505481029188132435203345271906148267021689403584700278267973999364470129160848456788068273537381796197828007972406829106368180973441524679761320598035640959485671033090372341464743286686038851630630481471807922191727630240399920185992340574490901340829479838991597405556504900689208147414860138989388814206114570292954954469661200943163609199198650550243925213463266111656950291205244803254655823583979039196397538116034749958492152842727620705555106996405585410382533126493952119199915758747198297734317644882413057301811828930460532514426269997245506844165242154350422940113360449539410154803503309202117641573280494594504169551540087391051769385197380271097483208427206879349990060637405911268533257171886149710043269083021280290554990300068848223343578179070860630354955045133615193135237058130564009518383365051092908289654033728903063076680439190752512392889941749273115395017106834347106008226470030294598827703264583000616847604799939824660646089655817739723270445301085644836719957129286511978049831977729699130247362731516241711203240594035736330216741357786171426550433587576354315911479620812318726886628267442416596508638105417191235704654020222755639294253417462448862675313399162723886474128938574234386904038276793225708225813004056064708436305522459070453790469327566231396901324531241864015798289902683433234584586669073698112202086028620140509160115186164755817715027401273204880603866780900233304117751563176898498724332772230353723229894136623168396263686570218375142190056665930964778545384250740822670427831060549780649525743268323514090948747126752510899200247434500596913389261434216721415291511322651864859751636315085929936540968870651057133649909482841559795393307426520423756333457739490535482251509831509204206328404753528686837861379552711767356476154244047097848426899555681522192863872573119554193913664980946277585869511255887739896146513322078509567660396275937705527583475161212532124985878338090415238578889014755747928133962412045416888211051157659657289450497997794328636343604465107439998095115290557205494871982718778950027172699875924684042417218858912237488563524566089194566393411613165982731370641424684982926229207543961420984938021323803218455782957074668578558349233236376183573508770594552823411216368505096121907792997626819972431842070163088133893175205740773504853405227500655915123750679707866653395367443711090628049603633473218212672362228205180157149173309213344753094170025156206153244793147298470401834411197391593616901279897711174131321564273152794160210135185718814396708601899740606451685555005534323355311433711053145015420348594263882505920571353277458538208182216485094359028488995743418269619276081766781409508342384518030367377688649174143614133887949815410324553289077648812789616273285075353832715919775887282700091339853916296895529949269801976445395732940419714941622541243230055805547782676109924399986608041551281471396014750443845843816495200845945238646180489731297114052051685413202737784833675857273456645965838753834815081807253412846766693260508784460387912897039184019421096484466514333754714245920169791271018931182650893760133951135301837051043167399232039035191334448695725317049346998268992826526518123560148606853332497760984379795411994347891517701882575117956197477536589771405992902899956503860595564701215883008488025772806042244053137268486078582407519348192903026700416815538077277591999408292900006151379488143301256016701468240478956218553336453264809790053949178402293057338848084545089303888992566377852909706680339262694264953783146685896864102040168506708671960891529919018642386566452822691428142640765140638444939430936396073242728888069511459877439738409314801038581379773733131143118438965841572247198376411803788619239437790507982416663809524284797843330606833427165613947763529437656298695456380641925507289292048406092249353949835027504170707296044358262595601821440647354267550754988120807254179298832701265644119865010546763497631490674940706791841212879029887342437157013806953149053021454075696192491794739765624983439333992036577791336385197128805997624251659121120601397272220519573436933348295580651858988334245390142505880252978760366850620300270106562582665709536328347888166015431575026557402132210254365805596591370188122044801592835981143969367730216868352450255630673395093068323866378383255258574279235448187613330342087332990727171334225650146082808184178580639705002388534314002541423891850671313829319717944220111832122924014844742962952751064531719875355444629994845327063856342889105281960229402463744251910366831085896130410159530034127162087150673218454291879480705618020611640097519598218897253982584151614534849105051943204124559304189863810829987056853553316578846590422801477881726914518898886270708078301591256209445821805770230907194029070829874699733901788245931074797448307844470183604570334494171419355272295697648126297263543356344709548964588246431261925476093545471362545163166826376630215126744794152662836409126832710119358995174597022327284796638748444525289485028822291271295747688022841207071609301196070065821592736045627400589056213701202757637739142040711698436599218916383526073166846105118992744645754246100354318814697332053638247526436555857733918875286922512857858014315050621324588105393098286820355074121954564974710102821712740135452499028779453984638440260656160399909601324489893450115331907558100839518571603996798398760331447968002082718503431660322416693122535154413248209299718247126032219707514356488562275601301990775045886316992826586691460505874460056958608323647400616132939668651412293418297083327347603413251028662949566995119820334016131781188831075947044763960472735076733213193824243817166357529279331695194454489516655636322656641028086359324089558977171786204550507205386329234214939162568377184607187500388348775148726453585121193588398107537515619897028661070723002748854494444900976935038692224488911173767390857348849688956388643469860728556669120651995630714376574807934611214033324928163779410402500102014252832825173864563163538151603627951724119346905299574645787270676060088497160948527844520987746766430892789366641788592670699124437905506722139028681744070713623809868005458869790971810927214612611473126068951345658296855350147504060791570742536425151862877739170582854340924436223122452498330494622017349302850769740105148478154257128071079243592664800596265469050553341396856397817334045262479034585389810776431385998881550658269532034308060073558093925430588641485952797863902446275376410532370502063763712524589238829352011095184631238523374625703322954338213675968721436925124395983736278003582050018927827889792792678197704824227981189129905577296644535298305655287302611422550994232554514347083816552975185160719069687511769487163869139601772294229305699524016949428314130298575771638364653536532043226355966214913508484838764179387169646105785059367712028875491413654371387584111497002376616903791766022864431450607026898539721196077895022911701298486655397992091875804649107235439767055054776142816678508310569903929118082298637231183615367364313251620678033070443633086950981588064606275682987482898079294260921030854459680100000622975767106536856241288789270546307202523640748398845444541563398275941201998233179493873113723068211769729373663945106468691822287598989418735938319490925400193903623252180175587106830419442288201211535200686078140732274459408340514891134216722718430912312377014782920353414047246960498418438379982171441796956784333723565127371270000761723977900838995986314737832459733658685356078398122114541435637611467510213397745673656792280269502162295223107201332851976391279153914405468556568944941380073156690511903063315018075644091422942717697903446305019327959229804514237413126568646955327214328110258956920491119592509457426489775601006527599867780396155133520000849438052609025106384454049039090567787537206923060021896069870198117658339800261246938858494424954236376132540522373542871454258994217496657113184953404981524176999201087240698900994756045182823855387821560531994749862684239782867993110742243218151080118520904326584392769196040831936158207608343565246949175504239669736616425178963825612670675070317781617410109754282668573596752449724320095846967172755054322577433314196453675705121773592936708329176823633967460384313522316185990426152808169979820688427303767304855040039727871653804353814346548352931759994266361118646261217988519239403079779986564959595958308501398031353235884482579295463148218618431038959983378157951178342415138443983942130090256292052831900997477226882802488202662080574078523516870246069035341702369793738180033516367352381749101488236903774959958424456281778578173427360744058205025314502962854484306823897505510719367962829668785996203886375439559958184424925130576890333260313333258864833432632600941987102143214379929013652089127605144559654685617470597280887779770132430020541196752691759222677695664368495728983778206286477760044013188881594558291428896288525635779379822610555322830044071152191085626624024658504940359896757533525632437268510528654411601412298902344063189434443034869911947172503535475343357100345288057090708238646470843245774754731448499623212732537247148039855304029204442198886057483084666947761675655123589581362712233318115848496182200641047699678084174499646096687970840619422529341246349358930236083363009707266534327722286489538781551207470596566128076322322501446206802663777917177378207324545725299779411520118389883082863058461620923134623646495898746006036757209680894913696577879781813771915917233943615968488921627426151211734040375812699177484207035145538107248449453218346402081850157772587872029721458216839047094587048582321529120617504968750076151016104550965513396608084502216196432032439994266051400653168371782798045244685488672601259146895911474981278609424424135775734074899698082088499738985912095771712521529525402556067312665906855933394319304711030067222464438747511763431142302510324634803321200017129273062281615809348067311949871192203779971046073033618952197228285860196319785123148703607517113907618421895659146543700727490941512875764091423425818839917943747030471127023548850797543191473193714289483380591208450365259600123539968436823267369513021476616837159214107067625058485388970854032173552201554744597077246463615805930736822974406962026181323943432921332131746180852194015849701238941273891313349187991797159492684241412455629134903126216601233524166204430352965508366855788245619609467073406290199991043437620185337237440306098039128357633384640098818195400728254570938748821833354322405363881729769074285817637517602687259322118877142133388417174078033780732367939130189996068143033409989547521039186523215928168641868771992360339050172106312654868739666786406673977863890133135937963418381416461894475727814470900219914173439521105041631223725201141818478968204481616887909174794712592204170901667989298671202024713573077874743827550188039692276113069416118670692463260963084463033814627825113818085771913651306382411537566410036851516320581398473845891263643514505074981132603843278684473895995943039115198717161092915438769233579878632476789445922892663882008373074905178298301509007116257781280187403854504666798105291142020726452654335917310997023306867386755542201710520040592761068033246915449302095847302298782463044203279175613337716472426897440126391834593723053160594630521256221414341507529232778023072668441577369685072062846231636811490350088088337786433879927902244618379679697276016580927831464473559556879572471094475272035119105285342492984918815367151222103498610262341010101810166221392282721817656537270434755873010054674290524191604750392387679222327690211316252901683018890240489222205655835047626521915379607828843318302689383813920797017803719470631947686115038473607510729122489626059135727182970194115082088816534373663554875773506563167432624132053416681264176706942340937474098335489533486928228266021720702183554092838466629254290832655174756717363755387736079543516702646187837169167244960932116995414488820914590330305358295344666119866958139683043122605473823667026931139388434721604734414612084673037837697815174900735283395644358421066604523650335100303561527228028550346853392189814690854923192162885603636050451791139607020037540074997918162809840807691798811953447030364951437390992914662725246429596871736973242581915947610583560197919839068830145448234408973810433214462837691977282436686816205708033677346800940048637563983037807638014723809794353030067376490492625529603221811701979693252488006203698448707022023428680088466866318484405951051713494323032542472986750924254351679886601837539491099397256359554196023090069212669969172934289655012471286020552112613941028196271590597396936833374172445223451779535448751087037069256122891871986120136494817092003713735301290321693540433844320078335232201272478909318521513554777231223173887634586317789669110448429550975899274369071587080656329282949012136341969956254502951516512438812853313863387892282328783654946072232968549999518486552421028540547857870368134895789221846498002925348460604210838089374158133587392755948618409107631571876854416280049858934926493475727816876256490066435122388900790361160197114127584858440180414579440416148049046672411122457732944326230079595210752641975483311824311898949587157679027021212212371436429786038639696911487996130252022040215725735301335197006538670436782930169493697411390763902039164703494607523364550374056839902268620702676518241724083459311262348010521003818999506931948916974431692284378173329711319017700200746387182846233684192619993240994299924829196734266444770916332350533221258619214129462633181605681330296531383850208531463295609370951877051845220766871669211088755894463750135386643334682071855573295097480089437474537142303357695077843041031682394640702720786903744154077712640105731771828391798466248431014544961807455211105466031350028699636981160693731413311445835232631046605314037856148641841674502694538919484426731434795705967810766358814353497925981692612500595348249624519266841316330879376207870729815670054369104349679869011645720788191339401121045721209786048253626265812457483927171392269546137864644274298441197904862814404446632922883599997670048202323685654004484217311751587415445171656887217551828905906736268289944668762605067448296150415127286718421013607597325818722793722451813034657432985440663264878016436320909418770280778684755086228687139458287391642841025809292171420145447165987902667315025062298608744415319372965406690779149249675505510156489518111272331416217623456238197528044304250366655941317394729045025214454105661424982578240776072366514758720343083043672947694754258472482782877562743952716597836814032598911218197387516344202701756310516051521161386476395481802224010608610738586773392650287248572002386462150604890606128274550871227046075322336735688551869676349570616686886198562905560534486283617659769235803532120314000338642973604088523217770623208953967675569449773246012428354227251053108205179709699461903801931606939260420387450564753702797766813495751700020921972636311649562270050246203533171054145656967757564102075959676121480087534683439488151694391274545148258374376646147676998726902821976352742483727607154674701168591064385581716923511633647224516873783549013694799477051165368012113679094222058111389564113694993666790717667093862780461053341685050044164526627198087771246037117276209659265007328710257185382919374166304230371609208885448350126499410601536081904929372849867404805791289777738728171303881272258064463319111001317155640743162300030022378008475652027809510901787278151743697389979782689022524149968936969698389423833306428336369653816520457550551871995455437703422433730316703975952681488708344731344187326894029566722258182751025866180790577342072676967221393775458379029080898637667978955268079195566231057408648406507849141907822674613567126737416544049700559364101506218292437807910668580038500330418453154877663810331506693591430812482888388115172789376016040048271446889625751528552506593129698563314142385011006741828831921675924282149460721758604958006974906314517527051905148944865527042518589715445724592612511538818113308671976284634706125541544049533173814365048811532380493780477006070344626030799073334818245761368850414053466677355495196555795171910423367470407527462364341634253063446910459473244003048622347657883925687043823232737472019272415634868970384216057689186044859973817352540890367260536988974707407609788299878821017022196510346153069829173710680190283987567103903154380047401905111439329764371955326260286251115228144209905124530137995052777950660385727488726330146556251017256432866881082938741966841497307226821776670253664577764216791908485565174852705210189076029115996536658146761795175742003664906179831016082136869919476400502002119942569664809584795614272016039835915989311495604219851602347867735940994851538282483826007440482020656477263965357647715438856747961663728865660354292901577913400517684489432949700696059141724688482199067613627885305856922152317665897548369638346791492126173319223423971235172728886128713113254849988978000564614507093094557608301106021475874132433450747797780002155302430695642782345104260940255781500457018114439558365169106416863654609425871146090518521048703029855454957903147517790252268402295990372519195441082917356201499659012544611574817952036621123151303035324900474829336320727213669927218719102930679135120704687906228540339250585558138934769667794971901046781445415972772231476943165725585596419356571071498469796478027512903618679178349957437024619067827999868126866756441136685335779381429604006094507757339375605521546785643079220527698363030078731050003737921263308699870370911877607406817446760500263637594568250327798913467745596042948729111976880126887433037683993635087985597800930597941809123274492257539665812225194117078858941478830727120238957401997611482419567181170156895692717526754139254191074974969938475978404489145052026808112121977329823573204076510584937390391739021931805422201892485137178395016409925339025787713825099612706816277898679384508058535402209253952736605096212921542447635667390317766332688282062053745702367846420282161530248983532420752994144887990300700988421315627537740387528799970740302496933053952689407266918042258804870483863704939908534279435290862956366072571728147967048615667991380327398421579859660140484953310775122157779477139302451673932087297010083185148426073437634187252876555990230656542948483305624925006743108208288360993352018348393053667523895287616184155458548988823501932449384140420540128346609471872157251252963786779685041044990809316282235566542977206965538217617018635983735561449591235194568188583643391704914534321023140473763230690888824619687719858051455067412256952628419418305860556331690865001167431866494408347180813296124588157350403999696669073663400272361066491436168989063066256173455756420676856968790005038922369797928571651866230908645036014629498900618629313080212459059865665673020917306240337682724552064620627957996788200162156040142661162101123460667312082906607851740678424649541312780094841017582697482677208047871066106348603647300020138571188454505408762766770623229042373354172567735106383574183755160115936620081353914664919738015639896740100461668312731258927102530271044265746685084400321839116967381771505341902059263985976101895697111322715439517769254006864922494177376988706860812883586983101060343066003637830967023236333711614393678338315594829503664128590769345682470346770185610515497900786033156391769998519565310031940472110210506072599562070393101872390037309603533184417831232102872938070567946096101813315929966585811709469061067458317554657717913371139228770111872105379236628648975094408556419200101322926867364284015823558168948209255307554407094625036031388038192659590194298134175868823035825322096502507526825840826873129774592025151298602693277839042883619883922018490682630695909779394982044600566410814113245905591568378028582024078768165054450952910728985452484961001143932747425938274800742082754176578916162552672736389780159286247442712868792723775943395276502113918671899459326424499204112049561403845282496037150705241740875349192873018536482893510641160627376714209683838477389036994277315137894265646170942361607850624838340058785722799957013887916799585297828475342205388791202774769363286943311033753762390389945954759591803526463823859294336725901985882215878833399253922368205066159278750549992602184528032303757914627530727679349300786682158452857683771330379169637671834017570322048342916186843343539359689982968961105710607526917191260887262210039769729863826465277141195585433163586931141084886033719243221459865634829654563093734429523880110458013715656599660090066690449523437935362005276134679436956156492259890064526832605569345027073075112936666439652129408999867062291648907669897159300665957525623873196050770635782580530939496292915102988875973219245013377843642793970596255716189660679408141918610070341457514182761425371641342155023358702642306212626400533116805547543164246503570182932852922555488535927485739924302931707657118755783300036378257730315963926725470855170873479566970385368688124724782480279372267753328828062873196658956027418436827595170822694298168452561349134981799896444302512383454695310661593851020331336437462340401293511914638431515379422854692680443805301679311439934043932321807194480562133311385451873934029371930021955127816534207917847964295485945589349551581603798597894235267261560562598462859641797131851104429178926968778017312883044245838338755164709587252709662163253713047622745104870617104539368518978486010515554415895025446144003893541671895583144903951238553987863150741306139720325986466457214639912195435481532446705593384757513446128826699584286682875641905196728524244648611933343227044025510042506792136918864210184636046351191668672964976135554858302370772768541971563448745874476999506267213624807723672418270469701127467848652937872057162413694638519487534862564359818562187401996805469463668915301463149342322477729319749957443892790612422045495122666865575813414175027950910827666363870841158626904896109695413182535791775770876782133088828031587616764354987154314152739037286010022773714697926317077456882960791183512402257641364798702999247299737235476443141338599699837557464405061973119697968439111449569747349234760869278099406239427357322210441917959941229428915670154658906065945144480172952540663058290946620764695611081714543036669731630903117624778757850170117128304596696790630869563926014431477808808440017523181636502460531257157938118729013359257479661865693860729128605082449547995575716947993407282587070400593641709776903618527749600187489584474880809301048948014427351937523650800622825100536306578057933544039287288967846235639521761495821736719338651512702292845538899823288234540265986515944503385372295513163068024512274209222348572631438083973576133975831223410898399039503835735462739987813396583909801236552339174231002045769948189691259813740958663205645345919982309836962723160054880256119120633052818995863696663230203026363470394173654663845906186046155978765288615005887347550692684156451864056985333241627030614027155253692835521469707519050827374188292335924603144716306177315079608367804101455812299176738555461997649894492033676264669748496854059616943026408596324408608734383404529705582481669657414909219276480459497258583201355169647130426365306355418433187144475721526500794067386488675015543280030014247091401133663454963946907040657903869535111779473870755149314660241456679037956520789501312110099488387796023749048834136367689870013291557061152207594138081967440131133651126962556438412038678973093347839930686261196137867905867505549125742948390888416202404803916768305269837205800177629457125402959016666157050916140617938941871809662027406362136121462713284611607791620742968223968325766008304631164244534561269968145403839931766436413239462799759086797431435523454127579025963228685645652633752356033423170778659268022050872740487242100736993855069193103147631402967594260799579207450299574121988545340528510530595898367569719131323766456523508287381183186899352383239146806445336876288262085437954283968265979660904687659650847192777036290553662534285380761816771960354916366965369866509212101814791058187137622383843275776862626514815660336041550176840392084084563500096694101603473992598635348038235554852493925234362372835796209552221413289945903889227971273858415942157415570294083779960305227627825069515427545646806134239216678856910981211386437214682874341446754074943859922113157651543599532578077855437223107528047491693298553636723849540728760664635068283353544920372832624522394462005678698634268542852122266086172405671311991823380790973229188419794632728865679246926618513161219837852058813602247670738603909907259803422509735885847077696200928023328294217619195988795546200115319065488578617493509605291054410809749480171574436774660512512356072481386894756380127949742180240631845483856053275353613028244328826185105542988125383930083575422479050722021385906150999087915816359811604864085589199702861981142362682919502708462120904336755136371434005171421409297021603238861102742057611297600150135073106935567317980501273915361155683258598277436935898901439590609125140979150773390442114522055751072130573730067602677700601830935615656053101519776063218071087064458234255779930429091700700772917242742126923063183517966332445770622570560269513572164478423149237511620247976700666277729894514728290907619396423299609112065806904373712604853640322841306094664233587990177985371859621438680957484855441771624084158738029171489911745341495429935455747250929387559177658036282715732129059133318784216708579603902263267201627796304416122291696828307937483700838694011090805555272891747034762499032374101258910499265272659500339834014967940567917345538717915143282334192618813225149488484947892102958835049819764271536478154083717203031389941200926012810366915216184759577175888598144060115353752466897093201008965870026509748756331320427875558624925072989231527634847929823793973110800452081434090515299714123686571835736597026768926835514815068304888147712199856729376743193368563542350656089742103668390730339024325516444551160880128299840739752559283550673810134304083730965522189596938983053962470613290985614534744202611814879803325697240699991689161141470189992153834768704888045904546366307429865547153225151679448999217662479786736848993448170819082552626907793560526086730466295645084027935795774883684249183315626980732513224920835194273899449352199671945706704099115101171034626280008432030541389450871515436617831854954664149051140034957058745908465780811034994016548182857263019622108322231696181120670599315889852632198121194399994107578862111147267830667899178421917570184006115352081852671574907047010712605414475116865188235972315207489913646268190288384270607464057776029205804878599995808132657710286719825892086405642423401699218412817667788651369395134482795330818791686314033974774937849587649386169729968008075228056670461247411712255388763262678056243896763241044315323016704576958434592043222212459583879222467345594224788486144314309542866206642682127186828517361060355796652990055508856011594057319191852567889865862995776106385334139124583485810022543344259049870494348602409628511476610691175712195776132899581168737556167770803120974243555752117418207810272205498496315908160738219452931316133383054538519499130678774274039657143424038359484280590347743010916607174037065166350402321632723028340782580152424013059887526875553633176990655806058517132873294372707033855851232532904657206012934224107040763512348498203381918405120216928912839206727060806596336234979051622664844565731591943529185591745183749677755401587793731728540499454051173499892277234661718135544794983371906003229930370703493931308574338333650598890491816950550372406958158401097997555412549588131253847321784068733909529094430468864902424469673275438669056675142859733251681783084694033003886546632647107493298751920377652229958709070219665232358225335039678453904469196798919249183042048395634323197245306815765777312493838286270255180481110432734088553185143039824670914924335255641007106831808508016301329197561237304439778657750832150580350355826232990234112611346894077957895567623978881683732233540524011556332941170794921533065809096387972247933099617181390150418041186098777054010476842761735809576184338474556333226571792641360920151044235345044758068728469088842714377752391841622403011109704143230515181357679486962072178789905513486540701910440472994076665600619526194903224422877042403596088133201090327279593995438761763176952279758086662637970899783782396006646426331404881152224870245714666983866318408107784432020537026339546401748128060256570392347410665101484220231801395896952249008211837253120431223842437484381978425618859148743936049369237127013126436780419541931247107672611533080936298613502487363990184398903319345196569905280414229763400792594653108259931883477732522287953134090101956284613108798263564932811736189833862231711407800325192081955118389916616303114896455183488139157722410123787158226005536050954860215501918219578632371423819599954548394297696707157651320853182667124654779511280907028099236751236152395656078781108115589879550233718592884801098323851635490825129772386935837368774974658072529481068149002670262579076632850738652640182829787750999464493577582323999454686888271760475549047011324278081288040307580239689681345504013673125115940713206941595457398872651127510947079935134402008530457828278497453229608957913921236112792483764274508044971380067835765586409166557031494412662685393718612774701751358807176495742640354426371982583567503688497601834479378308373783700767092854353842906267148663351878307096939070853345092465785062351940717783861219939913031416172348843303907431005953628772296421732214593750178469774195108854251894064582952042196918408516026334530914800463499848587120579050798766817866429548580380043877358305346538749520143258433352824558911403824157874434898265242257233890108104680800571258018978978826616349757562203454028650817489412660496323305942327833708308556975221224371370505646842472940774615329044581475181879928316514781440577960950332702923554399389396831800812989382309250835744668384532561880629976700132676226333200413028441839602077538841663878292268379976247866063921494098937004918916966288820725692774588957561048791900421350867975076259087994690339347228746744202091066014979337809738708499972417154380595375010495524032206778789214472101900086066731617300597247656787701409993721746279816418673113725559805891973035847771776132407439158105319591538657502961254677892230686863182118527202060968179634681510061227137527036582182217007943754627594809804520598127380076911015657495610037775002838679047938433742899828035290026106247180231095558094081215264045443405453988452981565866893379410132439083404690097261485801366185532622010089668606875698154627252789612316176248819381042120132881636799625814749824938968329585104222276458425087218121794400190765718352904214252696878893142022967124753557045538162618457999677473745831334307205824933682498100778921029461808583736072263378815166172590723603612372152808017411403020269534622189278217156416742800830018799098112981184084880161043042609762859092674746809182930828682911597272150908394504478024558458799140614542670545909382984205455425016392301074691854363353252199243662572922237725070721096845252245843282987500053120910013465696234583668682594204092103438559675362007402254504870488241407005936953195188858531016555807148337235145318151011955642748364715165219683160233830441571551690163833959650578487191659772574923877044704518466251949118002481701598232793575409186220731522522288086947254358731368578714303824672882995640349894958968706632883296488093296399109738229983496791952176452649172181699420707516567231467752913212056201897653655025536862437873146142880682187357241539573778346323114519553808575870865446738746882137729958272230166940649362710570969690188486051575301742634634045452537073168284322636812851603030848098554965339819824560565973043610590268604936393100138716387493681955696087175476808135266003571556820084765553815222297187986688437418093695667107171770530255153796456816875923188136992226622957380764547906084697983431139333959531758225861715199844861359833102833523946080502980184334704171564082575639202060888091834020878331741771423610117572200965398768553393403598527709524641721528522050684208975573143226823154925914600091326296558390101265116999630105361009317738808434768326873389845299284732639799797239453673869655995568342130428105819126913029727057675324011580070011443490913043901646275912720020668490374226744738841680287191818858135209839806811315575967164596269779300052504336388820995811564724741143237327842477045409725054408837654295560660176418197953474006924583444152368176732467257738242702723728805806476333988052150526235255022114068933466693165839687007361108947759428265549237149369512279534657681777327231755751932672224552076851610716384194945333507082751261716866957973985888022987453942057944590923537531528733792894283676273468099990704589941910513281925607331738851800983907653410219023640378458637649809166077568012301414177227527599749185111722555286111409862256824263283827810527997698780202311860945240919763277570979447354519554947172923910608864676492943243819126855404880973874940831274874942945849340093731830439639027117443548642757382129391643653277898580053804247926391065649743531054840575408682277123232074966158596589085600704692411048145945755935342600639974663206032273082499236449628237321425027532358104243149988211544231750149173471294899340710395085025746025515438976448481597576990517955388783004147523718097543131941686411335339705291656939929009867626546201937157085419705248751404823354504578054036992173021946027289513267366034978189028825918835623984971484774031264849341851931915701247820202700572880507490642504783701221540507336487550597175433796984116721220214101244253744404080833281896152765094725239726949878272839244744812707794164900918726819258620387635883050059229772028986087620490449027408632775964136856678295121810960950985147769086469291821990679116646022891004957710929838888562726132162109562350901506565537219299352635366652271258931449241348640802989525157670608243853595167037909727697437224385804324242604870626184892863830797038227430123048728846518156907228062657064943319109313330475022554629466852413166057523187586755448418467087651731701040201413605056169957763951868968082076769276576213384352548336859698785934446705775026519686554437036541598315493076883329458551415822135501241959151789375549683852502228350063028083641979503410817826563190786353576860359824821290902157896754615384997877810981401298826988485812646082468507033888956058397853381421327054499518440292195033054066816729998374768964982773734014574382818659277499382441826222728189573114467429254835071507739089277866902360273366580571726637011511933641584155321317802553431145373724799272320715393954567263973054273096071727564859093130972809634177595614782371543873183376546265099616523971577543631532193334039038372242811162340926462179905187777878644848735715911382591244429690058438772835919858300936620926264559287867003425608099160393802637357035422055373799818078770728908222557346954181718530718188545532822787690571545405935440134724294828701931030831995576133348712162045709135012615974981010911802307837490627151884877601666368447449622541060189323942317961984058467796678925807100984329072587795346096790794862596046200278494382261937553106876357358482411299951611446140979093940599470601459356840579461860646609987149191301221486419939683724951851508376687818583269039772316330165062539388011288930663123753194996477508053094693043246809467058555866655765204724109125283092999505880077277650605585005452165815825920704334678532666298914278397930169361513053561361369054167354156732412392087351500780206247741009816903509708089031800947020315382909136452047837669829324890754451416469745994190489200360341638774766995573081673346993228719726169269921281249603719808393048683300328769541264393041782474273543475671517521305428279781773557570475315262161991115347161830746851420501765950570342009653423993135860258769718522123660547150655173959682855334464656532053487252200989541514969962370707175028612859093630116085557187383612650852143643925985936520536672685759413114245295476255880050098956482622448312417003190406578010788037825319122721599622000375233098243720491101106773110526851749943413628410138395737466484085297796910533957264654037068697230184662666216377126920453680611714415880737529052147754149095456001941592369075724881994831731025766836246797189133306326399387723276767793050097539258905518594663383596501168096754218013383739000301409749148003076710946071143974695372823016166850995873399782285114408657734919017356669747502319051633602535219247222354897744841981117137300228267513742592114471062211939690052634980516145672794960745624829473114540344041307239238636965155443714741461265181577532640840431063086988962111633827334900734103971850768309983229659952569609698220472242159630736745223108668332194795778386601968861511411093734947787927072938037106164626754957308753618261835072510468990194027746526463067204497613213028106539946032044209688877561821848454906128572617956816420332379751827851591865479538296242724743097341805547683119416537278054765309448510987966186105473624403330534535305988505913096118321500479373767040492052730530483114000015902016972943440862651656120969921954967617066813809259006319362456932893932756243634050646205592501144575296739579920830122898208826285738403895885869660600319230451640097437039856695242286248831852422934771845418629607056337875668998333188653395493844519457417600551383034576628360379599826339907897308645048886072629600365367812537106247236488352664740703849935751611966464374820028268195758922827160809920469545206745426145060701460105936891307932933059996557401413002825110612371483843432711306358694310146285379757337962114337981195962839047460926782931626267599967631806349601196109605127445624881437174271607442721361365023442824565811126338251697444686335645128537693034483054931682711356820770681878816475334759722551247876632735436751582063979058834961028120837780666171603265419070182875884893167909511193822123369482691477215467711099658831006310639150588571858109353999687276550668462841275799568807382234966768322592500215172140337649152628446248404872892984388852821119245835162141759610031400776290626412501120404746617772285566002744959807457415388707768808603627712338745867196518845421245160134791027167704394748167995935772395950056831135251099844273579448244499621308761782087273438421169767246215613345338667544036913434167110323410655101595456680416681442866319699184752273013479211073979176648488167546308969523205715194929853563287325894967843927112918779031719648677927599062012777064710728163025236323359828060758904251402232454825337579855244449091008778020460192891149599773687432853125365936004989769267390006026102846439386272159759506910695834725859383732345045383812033182029782270349080279938892392090846319616890038890682633288857773200685001969492547953562012251382359719051574466649156475089131853837766627664621279165220735056941130929755715606748406724445144888391713776925707785349234555605375450204116787272554839506445891203942281762853480340294280316905259522463082214773136916509213997831545929316382925622725266192084153321199151375077504445871399962109853522128436577226714058873270297168304252299505011735209635287821532404136102634444630614188774829213683154721400871695449348468369757843040222491393979843059507023324250272172966600182818711939622271676172978763774342969987319226104527199266166368481936335504153417236032710583504591136677805234538595015111402717435861799291291735824963391674760173663681041213434583732061684973960827906603616081780118701436870313076692397420419055014484036899986806275995256993635445416275500085450579823547892780650055055975136279984777676258989376911727568709903811735673678386755722761288141597554332615103414933322408771956116877511348778542910544773012530773994523870455200770398715472180169456899406942064335654878763714636687316316648066638861257906306748650528428112205474676411383839231321295606042536879894552700700238249364219478044841083899531331322232103676763390176544877878181409512550697386228005126582111923367056075445861827142509405870183322677929551118469219420582678150788065670866465514979019136571427967051847554631173014928915471979580191312725705482003046751335909777462242205435995115087182013342078836987722691213644338297845240753001137913916154668304433007266966040446698187306155230526932544971495436338099904441201259360181083672602768927048281749670178400382021904740189387345026521886327471804635066269360474157129811545338374708391628153157089327638912035009540388638349008057763309638885831067884674637771249982942513089028979480888315630497555452949848985174475493943086634030176607096314519473692370485505651185215344000432056205490094398496053935276765766176301730140734290405114429984183874752968003534520734508381555906547918548851439080927068801519706515186952838344863790774860425919652241228723389423743955626627003936417574926614278224919253484790252659849529280107922182748236057513819795709544187627819673969042696265718904095753630617427999560178085282934046220205150278882842725029605396870429333261001016927526357141535645112378806880126086993684680079840216678169429452051360159003298715697167457516306340113715183226262071613818342425077097356698943068015411913256336908286259803514693060293606127078479209724718877577333451280942275836613374586017910448099935105490680840453396869903229970042689668609089211804762451493879940341264173375804807028668655680274054786504407483853196144058591395004253622602303696106675457286547682116243401780438273192441527536232904929668960802168013792958064496954838863545622256696301343596534127046666070501887255352902817901394446753200224750744801896990895240426297718580309597535130689196131630669072894921515188209535964780433180204492674767904702832968786854177470069878546821776032672848597286617123750025546548111827029918293762875295793142319645164295037723664440621476228677823746005442789272092683460646592008482379193322903363868220285515577731334964242882395798940539592824997916074612773444270310938747666106564447392203586534399818846082483532538498095822559105117945065169193879113012050051427867707754902611881094495327823944747319267076585871831898752836158480877866458957574735477698757223950108095622482898577095062132366300847903028422377973811706346212856344107528981317978044175422515948732613260077433217643711490440657651141737173664306083585384488946826875574974475750751753485373134757046099813973350387770396880392500932938237351927929126333753610816590095257946679818099078048854206696499266532888487072717319267355901726555756194600970387442079537593290141949267785197911377475338415971497046382004197374441367216692613271650479818774706014797306359648377788810061682621258304293919612144578293374664340735008117560069452899212491595472383319296182156699534263972710413767192052624374110027918777794735896143499787632359940689977070075232960814036138944311913969943110409360047453914227073879544461229788406796753692700393996621311541754947874208778351170836587124060360363897945898221105612364620859264290414040104964609734059642414673180688303375279592368313045177591502920757260281307769122223457343237577138580853740272628557514367199966757351861882823254326759631357211153803039313831846149230711943962360196353798259108369514985421668378304228925503663693941673689333188667853941390111852533293804693393371238572540077822717629627629013539534695074499622561414259783292192224997481483676310784618978499470029830687690943677587776877660241805213938632443886714642490405392705658784469004174390951696641047570286514111186666175644962300656100269705717660757295307365764033257607874358127578483178602824551905419042913186805955836934960748145798395460026996623764514536445948375094241224639049236805723034862941241850664168456634881459077479923019443780386494070072979449082529751751385084385830280131367602164266817690898825699772181758907719762523757951391904425891105732403528666186397691671547285971381166074217225761466750988455855582334435919752898154483116021491710504928731661206588664559171585541231113297786797025208136411015471430117025000670609205052004658690420497728214665319595239486548293037863797855985464927729251074171065006940116635481506267638502978649182721787788685262310034691917656940880915923109823845388965707595691272039564216410744727278498817264498572161216702976103978197665182336985830766107640932067208376985681968134635201919145921395494424345951897110459134630356104022924140638868820577419284348460006370594726121432791874327413777303784762986845313645396135531414712780568473910570182324747975494205379710210499143727246481280674639000653876151021154688525667540976207601877084657166091867194199151571128508859755385225142014995889552845979045104255183266079849806828029379954341864329318575668711259317993886166972795802504807866827019603599984053532074741120477278990487942395052707733127760492867224980221655087616192585218505717868011778320237890057725215912317763656530432828713089951809363725763894934628026623649361915409630496719453526484588494083405168951883501029658407209759497147391732064742453785579805269548071206001746572063182158124455027409263597653761318061582604484233068123938830821473626176030162532029514532229942798671558333192159593082253182575632839375245772797554716212037415191567552756306950597891112866460010784694667873070735425963030827079996483837378786056554335917735596817627296102217167647969707556298913845208943950589893892733927002144276383041380517376110970810872839249709810280590446928409546154948073557532232770814723138504685131999071216883654465150173656020101877257650016339791718006091189154853994130073560431633027953771291755363208684416801907955688026895413473518054572630360566568358585034292914644491475280236625585924956163553774689678878356107575465241103484650665896589318060044678367275360130912339808885222985611124028886758957985679620034872501803321801906934732989069096877426682042363146904133067841070098661389719829109730509440060367028426999887139213593574546383798584046296359839005227719878782436183656155084486581136991799088965490215307409912296542412165028807391757358462100739337108166811461951694726429459752666875964877333871582742573987193893598890610993041731105299478949298696426183008238895450669925823390437320719756681338089574504191927676348452313094420211114546199884601305722103320007687383818321497511325815450039397945283838292200002835517073364022159117655819234831904654407153566050562264615582873986323575119304673056000557276951150263028123605333376559995094754955398653001626981400919998020403452230254366357335501071442857752539854461511664813953715780789515131786376658382546097244286096359679567446818799885841653471004855562407372764758743387293770726672057720552931034045267088922800297408394253319521815254658789456805654848220220037713862045744275201815643846824855033309118319221109735765211978539559473846128916237864821232408799749927292962450095042841304899769899879441926132461671683903634708508439281116599982446948302688444675988440985600340265774833900470171996233741963585141750247412345741451158345785242653343674484490821176990243905177049733791505098403774046007317219488304625027134729209338100460100957739354099832627206972126636761757392018521378942735865555458629237074959225209635320546471183786397299287606705708514821175857033664080475209950500508514999644577203591377805722390961612743821135638726983907407031141005966811355100706046755025245223109757079000456525497608210363363906595695512133625192489839516653901210067409993616378401438772722868362475845538651712217593993183160323480814238987271609771824932514650659063634972549804552652141944729844842220480888053231719556251990348418808379917768811805808486134361155944740001656288780573711365828659120032829337441693495321069092959357462114451478359445914885240135774251997961989950794740390419407270488660410735573967373754093002682658135882220037748374531071170285425600767266927752859476376953137936721598268305010697145896753027340243718899272793237625559909683273388580957072321106751932493339226352940633056632706037232806636713395241847049093600798296146634877032652560797527485903318246954782184921257578910813555998002257104706428251634849124995525736755779330747393846833911006291710958048798367838668807759564567579872909754015494679595746405755083230366418717652925696951655153407597108633912400973397456671541414429148925844307751612410803137927053122095506973233972116116449341836492479531483332813489009763313869956185148579658486056945952373999618219440591551595399984744863179010521563357929103062130740931063348734274477360268093308261671407676302114569521706541350715468272446650960739325308394346150749733373887726688170968318978385429789636610567676702206670372031019057717674966284701009325292184275264723179175202847880168595794116745680041117763533794153218378333631027673656254071536435162021367218784658050591825137720801890826293009591792883678016784533058655267657376300927382039661971211882664642314971716421750141257119528724838998932448252422406864340979387467050704720308402972537037328078049849548507798792183590894680879271222946652307703891679230262930080654815092514730322757037968029703263436456290062331460437116176284105919901921695549941694501624890321908861712044875679549716693157143194853835023456493960773113628523628273832196307881205794909907437989390878769110424993782523303672385766363752414099439096509757731562987076054087728639260364984897882438484515079768402926442639594858517477685704948696286804361419021276568035693221537349215677854811061774980691635383673328306438252740862552712241099260205830454325973185345930049714005257759597060092695282453341684607416241649618523208287147832865401227460568502375472567916268774502799681923684534262024882561168514392275791756920361887772994683846133619622271591051399489558297269762989906222906871111338448689276746426670405315975079314786979882385100918864426247528131579204238287660836313849965866141566967841689832565057827051837098318006575454185318731940590856975803302296078773045852581008101845214388831585614220262550046853988428896247532162310598177294811338659978132528727087284430222730914142129900301709268902700689541001612732659810576652367269610980685454011377560326201041329620476544567244762764385402790724425496321573288506234060262941377989497153659421345263522634365648063125557464229147836992536672527914997575616269387679026970040373576366396322104362515310475514720514660992762231531824052125979304519216627772257347516999532634161407817914696494574715171190225822877706628493952678345075937236901714909640109014275923252153843012587876324834603796577534792142017083117780443011735085051386214962557957099161429279126967236524175462608928968642808415879301837211921689391806943350317221669675459126819093256978800020127246766766597620389706635041613129498826948039820235005857945007674528092327885181518712601376448787060551885724481484496194098701618112570659776856869555498774793487801673230145929299748714642186767060009049294489148719980032504284292540511207938430322081297106631412053486305327291311345687836415212647382539585550259195003355201342658691783129216082306780035069451794888952520592903473772220265400600969417954435411832694908223197330069001909272256129583250556781175754617450446133665956493290762540172555032192443867396857203686002180314193987609921202801674200361445214844493848948642257259285892965700029424797984051909342157840532800029016764280098366961045884873449945734337314123611965494719829539206089117514354745923820503447059054788114487965611557444963782131130564280472939703115048802458525120565782757911051210872893567122742782990665608344537728019566789358395295226746544847355034950139707941435140314651481930106271019283288199787600100928996084489118138115731437446602226343802026378244128730735411000140234251863017731521438121954449946100245134856820224154356489954278597767981504882161937777955373962074077440974387528702736437452343436231651699884471297455166035458417704271671238086152690227162046610437330247562698885702739103342982669895159945926960373310922085641098126511718375395278757987918270723771638061292602881274010579187257712595890961350156281633857834843195291320973199134057159033928765919334735278103107965347851533191500335515355215609113317518518192148828819671035222012451655582827756602118753749294881802259891137974126967624326685472202604899090692262104191445488107781110945210567106851161471298164062837279636545844803408234330728424261578824748387133600773035147199339118439744152464130599952544378234342303569987916746800916438827442032913579159933259570946753759081098395693392314517779330632728692674171624115618512662093565701892460600067707986733807464582998818317079520834406295421380062048930599706477894657162670520453580416075720657523634058254188753737983064195080374873105825830446943766680139222156342169117584405547949885850234936246389805559347402228860056703433097241667848779151179644021532014430019584440967508401027207552350337133763945640104960060719753354407433787285084704364990111905409965252991481595628213576618398555152916925186051400174708190349130607526417467608551111720155045349897910340129183974992383733897025174236816105088183153328655396164155554219218554477698491260231269391447892310965350014003813409849116631974742444433176558998523130533096910323421759421790133702357731340275092468103933497571030653661417949003397295352408587528652984416428577181794442011179108653274189001116004531900335400834826582594345638013824439525809226677489612697441640654861732272861605398651327375541447521339944951681841455269115205316985738592434718174917750145913622688536240768846742620018461915583199489886742211348255918929114445676783788343036653166104689948769746725029518745733556554701115306523598492919028009400347286152471578907465621062983521743216447015148412019654004333991218674015200561688467713436514677848223204131115566735874486251031585537904237563182856885943061513419409178143457068649272807929950581117849218784183679387231277381708819768564378142050506759459829641404574151940170939341135670800306398814363173665897938417874143689790283569738125040723526127457721686351388306253451463240611116841212660790484638112203736164479453822054696995917008759752379223639679381921677512748971758743832334359452501350537198270816580804481657878233876978247564368306107780744494624329930067881886887378216356018116991351183780475555195612848772082353647136152180302800942339841134838888030363055823240446267218882758856755406800977793091631752244955322926161103379371084067002965391470934965311054781101325415233843430948889628499498521793426347116896672322543912860422429278396622126612968069553015555577111984957368510037124019817296142447926295081582618748310286571706462375892331288816627861758163570250852261263508316321279564607327207458217775005800011447023613496169134868075767798073394921904224973847619089130699853320697388413863810512050240372358792632668996028134460086589618674558318913244197493595331717497774838577819249570678413549296913784673701049106037923299161876353576659538036290020236965104340884010323097090339822082703267293786400035858507147640017865263122709751696614050125480483840912432588901522897758845567138713629578379938821753786126792530070171324954811583140792817183239411240402367124444548472325002732953274681755179292817288131750866579801963678029689856377809837547638159148218452636376089978835616114097939100377199677108485771478649375229519434791426811223129405455403466086956822818042314565358019400584446041919350622808495051547884900942054975211821483671955810941348342840045373595947430147272363870722821269772778897121447711727465117679237552859988578429615502371467795267988024400513918373352256305993467051866480889239911571490638629855649737283447296881290614882361015082189525936583589736890402577972619847473087300753516940864929261178019469383972893518401120345561514473577545457227564384651599514763652808274976053080774849965223848987035604057399180895807631019405617216106682113794366931692600833407828201960717211743834073173798999181795816444005107667938907949698651995777714853820990192472949886695154594850716278063385924134647848433103281393617155633433277082061365483766320703497831468070961862733548319794753913919295470507012975730384435501491238402845367160779022685090603584151255860957346879828977043580062830834081526106589602948233810619339008362633050294314313773268494672537288187151942612838768912040494036551790972042274390087310646563684747027080617498803249185047205662271721801207187883851354780016733940279189922637013085833595191450418810624572887225000323699903502446576142911438447666856153140859387397882054805292229145493887510821186992051479406832836296423673741465551844835569022608389584353632262304163825534749481113866822649756700153806003702131752000318697832573283109511782213449171073470870906923882041114772124812591830948274506906808533513609907561736446233677646073907751406686522750454921543012067004458705124421383841130573868998963561422324811941031858857941050673208172113062128607142990768060248113042354008487513337028255325971654512680618548497665087096928422120414192021691892823182604273941849136501391866964387942068974855830020574636133385392604327640526950397083455266859294317045410884979386813139925067911863144671198513239330762323121873513825413179678401476193598250900952369798610766483167059262912370376545018928013238207234163818657504747607411088411467399267030462695684606574395998225701688044680706047933068943974460202834661221095973679438255455809516619310618336819527870326008282901689791954376166666144274552251002471256303878078586393385223259081991723124458310082092483099162191464911431699238252173227353081581070205676088211326784116579909278349152246205921616511604836724122874472480253087331498927500742789457241084613012199306506340463894455687733610929256111317036489306309295200258953556836397183436317614217650865717972339655896983842697646687536618979424549020166874679137578234750841161299586990780986101098291029282241132179343330935127609858120691760885367709910299348177832744369870669686205720706340964268793008905214895220631790806531956629675472383747283132088464998172203336936616824082367327876460400737704118598298942361704534988370115988087689421640935505034123196952318937742332432189891083878336900522104861527455700605309505528264004749596672916265262973459952676474223650604248206395659919784002090240609964932399991265171345692507397003397557618996376385110782433628261998695303587694920084300199903844422855261693152649408720115437012021633796307336565934089619827273054172873314876327936837528765637548917119549737049885557243976284980754783551320994526952993470295991001941049910040645468724449529062696609095828106491287862433941532537216678630795769069343684070234455737804724374218640780841340553271708053614226415146384493683167236377246698639929308050963597711347332511255887315184610168162561389722182287147570862613761097803288844351296701814633502140534845198831243982612098632571437156655775391851715646972316279212749458621162626705930770333734046919110795442891533413548991279209461963815805316741907954883792353080746085762830224757657954522849535320161161320048901767180299864090309298370035703115361798230849736671413459686394329944904729406192695076815806197304238846472251080357203481303313063108597325705971640345858290078954313854086472122788657202495882961084373064483213557997623992721930086798208800259405446371135797207513359415469237809282111961725502754582878576911208723139585130488362721476012483010328770133526864208476951700836388168077607311317658313662069946677633125356415652558743299572713006754126463646791770344693009757980223956496390500500896677925495468626629644763521835326158592774242675829804104860414217815663078164625905945111284367244924474470659391456510642784667779781401972474418760217644254142380159295722006747978286766308204380315273806443585018991957621398360657514548488492294283304167610488700312405700489991942689344221080539693098466787242713556190751515102360472724884933198885231632061682651096503090844869880962126535277483646220272495270346702719619003113811056155572819585624072155207890643209967529262913093286783025994026104157105275430785205543646256377733522887720538983744078823461758584204636038718331480693365849295248709315220785115844839562473328988075653423376988221263719589577505076494178844747941557427480423746017793584777480335683356947342292227185193327282881581924517088091053794819914066251251157105152510359372031599682500974710972932126455749491228267146657213522638347203660602543551874500033961807730328452508473124828093856794045083863658440985416058063682827362615811602311742120492206721956047389220203602810908137036941743348176248310254200192579514134104169526501884763111151378314766270674960858780229039630987196306881604934930773408603280950766468300430465264957606035828226328829665192064434531927168918278250608584029901054301542798308070455663232238593128826421699937273097956724417853768199399370929973249623569137351385690347152994758792832496164338274335416132532498913094776684782199009316090688266531514719713367298036934278150121857332219541457324023254449333190311285268202144875501658958399246602671178442049715552893803918404412348493208026336393719839631751701115488687173078987058500644619031138859096900282028008055408824788900688819348846687960301860012277666166349541815849942776336687483867682071102046682940592671338871321577836653496725229223910736146335003318476755840499383834205735677206126307779074617315452083608637293057510024187719244509564529474101864071243681247501569671244074563590314967021511298108122800270636478201472074304586825905066116658031288716739147450344225250312577933825573744884328760587445378942917414582390609358261147301337164615022824393620945390607662255873373601811305738037481823669503938336918492332208144081866857414158554347201370764445460896561162425268578815349852852371156320434465392939875720514397168286315867312803444836512167851555083889010022610928970184324348133703548888971574981915702388167638122808166344643327706591809689209160674663447547936133536953951767047543246222251114642447522678336940528007922499080237598075988112204107778693884800124140945112202964968347299107351989798045419081128543005475503728531516348099170990292144630750410782933637897911154193534543418131513020021438381686492375919671200524132732143713271337901414625883916978624619692884551653022236738480694049292773141943307236890215301460681183663503653642351790626069728528488916649382776606169768022090121450597129139967766429578767787398602920423233708301264262766915586668005142615377435417968716325926119257963244838258821329664287205282254830245890192665429069774135366462450349312494959593593154079684684621393782568375132803821843591848177454932028652572624844098062555525274338779080484987034430130908719489872474765719405922875074551267741948383688016406082186929256341497477035497610875250792754287954921253087023040325516389256104676379782443369722962244356200923472757051563841000738118964395719305314196523342936309079787492750699257318052241665510965841730141148577530990660276560240403959632156313905785635283317721137282834140267238950983408807744602989387932111674551492010046866050489369344512638455225108705144423803253224957698691904635410363279341446090612857246850465039130154394756963368582809149109429243194452340325724901979790413607185106398670975806044800537293587648548714066135069616574675150163380882183421352141691683170285462557090177818762748286390215233635935202410061363407282391286561136241215041087663539815113054501247919532116805643084796013715904333292161437017765702383688560370268776114512159237431837637183025409536517634903594674946926209545482643622416927253544599559968184507623104626312817533594041578025470117797473119062736936412262081682529140382352671761287938423088657378803172342787252563891993868959847086179211658117642564446119933842204434964018248530936769670206904339739227651322222670067619817992589002239102745942361214278193543439268321459455736466919093423770562693110460141212984583132833519698796238715344125327527385566503311091433324832193457075837561265474006706668931516105674833466065131713317362712739761194192645041290613705162171755105967985292153483706592919418162621095231541622854081555369892255242582905355659414909491584541667106570149218488346563419629955084167689735802889258378785687607946556680481002290613097648987681324186647655105700240737492209334755606799214990857604768293085502453288395885108871091480073444029644458519466906893016620098585482968190187915585061435221259474295435580729495786457838742477984783141689266192647891759952750538299716679415384780781592329843319159081536251397403707459781942809253142027783385060142211611080859262818162558752811910661895823587757631038040220685337887494596822188867245647199316133762261663604322190722348262092711944965325279433942136945628895730603825864200780497434963930043613402034378864044062127130394774053482584630209819491387726620507529843897184971950771522860293716218997201210293129758534159956308840343957366069341108480863547402551940144424118242165896709930660776544440648707719169364909615086585645958028582171624073754763050405258113854389961463884654100728768063196037171479996416077243127711662715051332312380666801466745245430401154910052804535270915575825118334525485873628921469512461532897566049239458054565995725433900408698103849485497041965375837298950956213158594362663083507182541861459006959854346022251111252112655983229386835807697646251551008883259326665804350149869909471746242565432088081427828991196201039258073255039250602318204350948566995037611278278779235238539474058232290693900069316329198483993309524943953048319914516376256067234905957572219247720430854241878809612624837407500226165125680624704452492848863528889127316280652803766940595472422356917550496053098819838408864936698854704637230453820264630798398095528582131731269398857102517488797687529539565587598596979243387995281673159458247199578828756623851546147165504547419360393734814348247441002468736527949865568537778416941624678618532888794846831772013846818225575964352394743347900078084290806126719013902531570298084814523487138873892342126756677723041355154305101269325790131293438390991297713466894489320036191416248172890366491918813292546403933327307047304540501459417062340326484251837394727787342273163902279416481410776313944399598560545204197759937552334709413951896032097024039555723601963401491720139589163089897531742610281024820524749520291892396937956626000738178134276649758109177563471801970986875605306164250544677550233180045591114915533335182683878961951735116098740586207545650860356984350593820748361574328861488179134250315495054258774757110514661554681138439448634046806954207605681114083448915583774390304198782997720697540719861698270061538895436667479001112694493953347474806890527088489879067667626233950091397139285140923417854004441171296091849385782377792574671902703725598406626338273608878033186902691448982856300092963547245688536389575762254606314674590646467109635157035740961160971207636770690247705993164371212082576071417162822203935065547071824298190269642021989525602213601633138903114491256722263814261054754068172776104108963700847379376576639848162077958947624277964478049539104694194322385488686710368994588172265746729991449117752888459084757747044875201056509472868436297831895089612308691826722848868024471278793995635037052551488370791426016669663512197910575096724138280669690621607288872123620742785121107544488864620168151212940018218952791634991737781293654178421754273164741102304803529745612281760838750772704849070602616609228555079654487199421341824972517113495893220957049918843325093163206506586958921923811973258288366849139133894010254287337130106607865183707743662250193672510231214916719457854048596939384889824567508695457247955367837872461274191061716465916622012816499769164964512115042903680614164089358284547424420838760744620180521242417255858618437093978505654782557644314624923085788020172319779081809595434854300660417629593729151542790836352047310637484085659623049126056454687419567796612856596851669820536392297626041138697967547408808147306561038969590672771226817690895703350397180162351963632245739365137573085577126796435938066239962504848557339166519271224583225539084265255328049631306706435937309647279823587622090000318034960405060910726799342622951050169308427213325505215846754755417418988451510119543692518786373046841020267723895097758800719861260321743066706621183685915305116652151153880838624510156726774095697874768480711401994546876950551035487494387032299253696470970876401202695651465575092944532528967811503520400843291329307068398135323395796253529724701122205103970559889447266782630099031809855635329134056944024185547070967950639960335764521876117737160633917985130962337363142616479714074676156116780126397994121718460074527463154971473948139057473595802896250067078932722336836191685431210009089353168037293403452900336459356967688427907787997082960575651205048623715185297419996126542847609545830699446055087049766148192036515856592153895866241022924797698905149281014991123542684093129179653034864903077391509013519086701245366497795731375025527557363507155892685754008097239809876162186377230105458883701829298012421328574644966986837234337086286692060410711360684759423816117197382873895407367624631546085415700366845260161135094682916727347991229259282212948409777453318809203506870681497797965356764856276591248743162452120799833833703371235467738143734208098889908950766888758002670335176657607041770206304356172371174201539742438819604932058893273968571134955501195552519727162616117272817877086813983160768141332626188779129863374137994917794127000380641474271497421172838467113889109046282746371204422967725306221134817115783814823691594017453442301566423548275162936447658964072613635161192098534014048169749049598252178371436543002778557211650903585019886809051351013904987675806908803967935478435158123088629478646078397196139232177754172933167064821483803491793812673729780838172367428982215765260842067932062819117544383762434234360766958722889461512421248306935298867505604962945114896455866417446714976943908603842179372914030530013354145225302635963771255779794109015647295710949554340633989739073058623918695646692877840344199941018046723830764984770116749715487806642329195378157045498818730269155162135815067573041498760832841890100263930683746498483557619857229858136166919163710365785861399161492553450268507462591717895415237677953559710061197034491487380410024076604847691073495773809100865099507680768721695361863893303640072190889642742044580551248122363310729306869693458134935072757229547025812785612194261018780972179392438088671402892875051134642126326852626490419442258620557923542163732665295427823275416954254665285267838022695276051509463548115588911952323381624197275730040808129647098736769745838231155579759648490279175607757039074820417017094379386642405374230952535918310686499127930372509938567244133224274322510396108324977434285794973437905305099027798108266153879072328573241369275130467134876777779235449760757254302208411757190507841124983258838303825431963521893881280725438101601736867795000853099154072807497449745514447007365818235120577970063736937736549226965293789205204483875485008231436441531788766505506904944755320288781681140192798351765658168049120146439270211816039271464970435263936346914821761759555778444241061154950158848233046219354873912325650153708407049868206585658949270184283496630833314277836379331392933720396555235999719216825443467073147053511464211740210020294710521939483143703558149408150511795564486262681240563786262310860923193984734315403889389108742950470003526392214131528326099920944429508981323859937372906526047989991207095723636120288952149214957734536900754386374245663810307941861227189304234361229478850137799499414805308718708610517874953928074747225200291370418589704332738841742015762760552341778889514393904663629429155967243982367681505743588649871803771609926283021275769594114156977668107446159083436024233367327185479554977542967899904058370294904086589683873074012967707485543664887309545222053633598425005701605831834985092603120560259717609920916172182275389940593075004141929325796466216563731907584880337172144762029300024822380602564469253616458464908620963380189496169856965713166949628502710710426512115965261640392499630623253720539537278691586262959672160040643199924307162445756146533344940682275302583001929215906976643557463845471852391770473041947729562580469949608842069762189515626832348431700671731771686636235260421724407143150693441123901092964979959795293159401657620986091384223309123837632741794163342599001837283308468997251195506205665954627774417411089971971216212780819208706452487680186019795315864755795086687820810817494468770461645550076521027633484706706819823607135691346177794023540257980086032916343897460207705435499129133449092151856103180740809836949087929255224897056699092365221387460049251591117213645268006135318401395485865410823042300676591189331378874208813296191097763214085004856112257855865993542164517098107828307269001450976610769868627570012372650816127021305615603018272361037541579333233209707361556986151384015931410265932111517639791530918180709430113034938172756555799186169289428666064747543823751546683888920071934274086068456239214361572479522263990682362168064386818999866524625428911030291044838278059085795552719673944615513872478873122916962648897839666152822882222185670094158672685887563306056035609225539587482984714712911099704651270802292266796875752092806839924992763622282360679177671937399074245367708994436717045685873684815986121925451572894031498351091281753163486274076643799471641762215305433994112612406576413199006138875946488020304723062729369157075393861787005708628732116902963795677562326931356772205438874399409106406832340572717488053420246855594081300059225182124510477479080846503141302608028941631961176416404083070722325767048671216529429939024122545207700480080114617447044226418544217505520978343863669460765030417199859442280996648135449490109712350369337722461106678052951916461191045999132715777106755817739742651606184029073247003376467574375308147120231503337468044213066442743559736815501551767702926890739093988827015492978558244112397077265580727049769497272896969932819000050724497694924002624858254415656737142620116083527465803497739976722110573124144987837965038753319358593183400477954045144989459980252636681743929903551837091712509663330756476587582866590499641830207324878905873485390917183261294728608403818773083921580848592533314308213662845355231269817734842532910154641581468402030246800845834493629003981001979936958283803178566308003524313927873953731933931321416035313110004331300430773821662731400828910540698079133280769169313397429165803956653725737700231891151656294753062063796225793890564716312940605119941974914849426382210439777721493920310980256951974084183579276932340075924004947227299975467936566615858489138669531112162314396876235817425554529461676547284639108080722374598199702773852277692108469261683715586000782082916796571828490386926274927328759134691054350079179886818932874126327946245752410785078167923730560468556957020081316179520911944078132147374471585930259119392074851586606864317742537009498764709993354182829522174615851111937942677232140788654301411983244318770599957425172657558322397893345163534705670301052051246268146633896057009522013128665950364103755519940446799094188683665129703425558420314035776696442572305004553145767820487677419855884572305146366722368108615946728406447723700213985873002223492364049706616431632469324175790328094657483823498309219463507693715438161548167527693077043666239972284715847296372030908053892301790977533008113083982805070657797254461744363130890518352562370078332908016120907869188191002980142401031808491201529920067134383187591114040727801717434555793622387323760787966391679965273291613351325826575782077420142384555735725291430438200273576283691143591358410250258698580609315377915523958806368625755530852728837553798372481498733560097922657682537826136493520053440993270769748489977795909873143347550046892260307056722701562693134395965494998718861938567371160544818481924990119789606262247729400163815861935449478518973688525510633605182046902276951145252100006206287820104493546161093692336769171331691178840564940901528717989689634398821862013101246237829666365998966772695797642635464740248561693924664509381677218513802218433643248649244196619426770695507548603842477422372700897786270445570724427772854147604316918221651322570105701409534005588123251323769612738770764591413594673869002163879445508798863960419095239889363384975278687251722431968866723047230274542382568284210068623670767617241210383686204962975137144782678948266902933178886101822864849041139329930410142206615528005730423501158456895776467442545081259703448099713998437689912222422577107632347045149588264485662393091219237904738472579130338608373591839150930377128586088249869936262966608585438859695910696166095396129391588124122426796523187406801342619189423946373853043101607184816583180437149056859293245784763418735093878725199761547700813739415928656641022358979368126793599382805429334838956044732600441050037723858433749472778961788420487787955349465680797970234410820780273132284499549450055239714077178029484423873582822306132075724274706334275694187199570409173201594534195983671834384396959307988802708332794984930742691037210881670053503789638881322528430890077765636688085339128984214928205115649194060328639552770985384782681132045284287411724128658822222022575553002442032117587466987859032120856512054897304555652191239421460654888609880489298612958976757597839129527878333905483677429116665883245028850435643388436653988598614391132377110140508803200396701619711360040915528183370525181729797341712173453586911026231218110000549103528940977063962372063445792078122536902281380845020806172180952696278617974461697977661412515881291176754400964615588100793946574722073961227500913627705304797530217994023829572745777986114794566096326204516174456172699207048338554317023669030680721022257427556002626911181191284212606832474673076700374277117160269815775313552365693869363526167025753933492198715519075277722213819259940374790308199452995223086933577943772361042759755973274009852334423547002912052133162648571153244649495867897449127578520186923872158186808244231680575041768875290459462067720820661454536567205790297063066546708531220212856762975346383099828764580254354237040754344950165888177307516369399766670453978201166419394370956016854080576462635956516154957622493801788451569669440343043614668109582715797994778844789777019182963621892202126770259294877595849284315148515387383725633056002452750788379985901874465865244000184118389500661226851797995781848690187031043141084174790614951587121894151267019601267365348617016323268011077106244350168305575969135430580934704061583975908035711241493045367705051751407055507758915515419883655337168677850831562354555871604618122201619185532053289521339502300550211023057685974237907326773463420576006536653416024310730722428890104140991296267944787102298825660786785192228523387449101532907958248782452585473953844150113635513897646122081012778732762654564326682903342166168814114564739478323062918501731076448395125631739372609480166262831587373549983202715375986195190016031101039183969002971330835898454809366208956557990972936438212834485323734423807952530854855004196293327608493469890871102826937525027335925214635291816224723356700249693779326302577601442635798753890690977021822155337473287881028133981127885347337017303655547787192419133378728643848254291050876676395003724708751011442970112112056312367337340101358729687808784674083439695957061800538093827449028784342610271968363402219307225809664091449590918256697105402362570606432097202233536398034847223439014569339860639894643247504996194005228202596594534419245835456470930205862604709049372134456256662722190573894189812751034295717219997156851047675339603323891352529772486942616512906236246077506927858295024524578169930961644461096952897146730595884730915976834487656304342976670778590413539301375941211280364846324241823117776254051854464989845972980295510914679941000809752258044742777606903082172646813006463313753255751682604568371745272845114103295300321966723845354190647806878154811415147429487402908873503739147475048420783188492412820893273236531109906218187405131343532411935568875331313703538260945732003839470514667201030267656731720948330578076045231152880017223799240391961418339031521047275050714518112572298501541108069508428160737231960194172732709394861400629277760967856278424346462754141205855656813287292094095009816084632185455686457052267862310431246610044020946451726128133999587818138362523003446266548426208234506553500127503066630174044184388004034613048957785999900357332202192383685191669993740252677631691041433794026341299817615940516111647358107093714777420056335213631807954292053354368298265361019348284508735081680211884268523341127715849066838919178343533023609651944617182230286658391748773879190426181407996761023166586060745062807034537197399344241323193955396641224789142972073612829122440814169740660850784737934420001552825608349618812282239482021308509249048649719003260223707523880984018827762857958914340380251849066706273256829037567008897915202398826273077723191268038319956631882497502951235614473717774365197353557119337807602468667931122908998454621283196711785321345300635140879098755972421436376857380770087721174069368449719361155269631488989807104334122106186677958200230498562242319106195977645932207389297413158548212956857360980751140565248770899698002810593225400018360801843403006832260141204731482216396385002555656361545396081040211657936265961484760204848604376442876061029484738056966480618847728815327468030134459472647944488812188691621685092479477738805513418386929171783881676649741768844438906760863827902246815112591023474849732514394246062049995750489024457739554829554744875748583593191239819999927009966804912613288378085972085598487078440654298056521655432277616295809401169583825526238200944017577006512363762632898544830886782615702980068257305575868539914524322302299223760694078130409437197162479538593611067392271383280080491497321062107860126841808819657249186938568122191405934248484041348729270962587049792068058997235488075476319143110804087256085230181207061231088470223759249520109044403784943551092563658443375656371751040257975298873754885328582644695261457353384380991781478117421981383913098277236803864015912669805741752240578471221408593797977027651496504150787098182324600576438861256113310498423623649926285809515584611858323158433097346010505808799862836433216145194309047173038271001580833894299981717545945934328294071927607380871047570386555209438645149326019557000199855528473262068354358994793796379334068177036764160805104004768338370447131359046666341555367838251855820582475239471364967507023289421863462098134777938909070676250254468201454374013685616739672214906207988010624134713550745900737130985944403155169308681667850329142157396183829401147614238379579514915990020274224655779000759469478553307765606515749934896370911148023315163456623285993274206530499712460465795809613664601534924784447407214754648482197787312231749563970433040183962716799240375536309041525987399230329442651559777051225515034671591646744496714015942713564661214308139285890800851574758770972567954611166849744721579637137132138735128259069402342467835239613786759201908449895704873180085417536291634908715709114858783834446776041799071146582161298751870660578401040129369168735217951497547230792331997222767883311615115489122250844782969280991203496990321409432173795974192309980644977823360662080761123095263649502646945290437030051925944251627198705534145533329491974483454351664813405448223752077054265552731578797189502997274545052826416600801722099530261649267988463497710114692150749371081808539842964085624096391583202363439243391625180507760968066571264541590825252526018663063201244128906150747304498955042332505094602874206503996817897176532050722376205960635964037584808960503476894318359600386543856161718128255336873442644526972252662943675872439485216757499195802984608031201278429864043106361916839950946942059506518014295195961307010739731285081433315886498321066917526988034185720781226400944834010935277092754271957233683501378343649064814996107461100855263627287691557655051404402909971532402310216216877248183337912884644466461905945654064823285433008122514454152034631012892952523397021255326698714711086876739341801436246840332659997460268224710566762088265568969915229258636180671927568458702511479538592526659908290266572885227138833844707871722264600590985447776645905791415984119159739544968205766226929609995106619637583079843801559399077664054706267794270666215197867233284284920451859049476460029604133041375026973876279273850961696385787711404079927477763232705180335423128271483700052657992917480481501475229516316879637988394439258217183573078375874106637223902298268735984806051666193914610974445246363791200876781832204739274028319174949534078446973082632558801618782359450790525496883190300080053692861503527160101248744100176270439159183114383577624653502858841308505652560134473428482999052471384668925733291727201748504052156340914644243202082696796909098189062753738160932547090492111620683593895777859918165177594586193882505787100065103172000021625474723406136127173863054119393184179120170423881859928460653594319824134099822256646865968933942295649905386728328999944426393931779350388111940437923377273109168332515739874212013537397999818764466047547005892297880905963701734185345540653741049712540640073471420124253882040355067126619614549916400355035831670176303731758284378284055068714889428358039521879362636828799006069546822083170355015204583587502391479367031952930661723992730008630495248693997017109501018426074007691338851423568834786859829599783342666323077666202963549627430597790154083644131906186755678985592109420474545344575504384229001730197766593915515643840301249024633747283393665805549996998408976016732635833886622025526580600210296634570855734927286689210700361552300962577295684239616857177121991910752548355890754465994823786591940471366124189192676512549645633114899745475263444717296760660241308766712410697118133838938444024018662078313668074567347117460359113018802709952041654044162579075279275490129927327066192913782571827375987287116935250408978400769028033968848320107576192621686176602596974936392664420951092746577357738330982334378231004420166925592379457394654768747194452900506867039410539049717455399877308480358752892669197323615871639791899453980439161726776865060201299259603656472692070335409508271826119935206124786769572320843768410283175949409222482526768454078848879734156401668981891597774831634394461837788422288126124073301584401077369867113104284067109168811518349900597094470421433582983716451453591601567565683449265420042234672805299090910397559936275492740271479534262981113096105692962745700604079419212679583103504724054103777593939914074978096151863263282655985261303347944309343252367000741251051936366061930973713546216147208659298124219260713561748358063800083424746064316853243420992247490879962878963410249172022737070695350323721648480460395984025741572353370361662201237879045253868679658650991763158482864832334782988879606038943204995014690538206471041232456485674555212551556231186564046225204512556888081304051309043665167803512262775987720510328755258208774388910012548599340077228728187290569379364210079576902371308163985857507796892146964574744530541194402336013145044939705378273370295623508080776393953193055662729305565184366103119955510401753169520968560409635515096486106565424923727619358063694284485414417436606031527353594277088548841000647974553260514092349940511089918086756257976728239563846887337804013930162837011314318176299361252279535419396768926583929098999315595383662414514045009093910120544069560776007633725331705012818579766001613413086037432376399607502887794776567227809094624080504305722235494867405031096791218266257896462431223053044610617325223494821077567344268332883843527278846029439777473253475386770939362200521872787975406545516869636329381694516302154687272867628683093323853562879708282884788846734636334310009996049539731985487173487348735626128994213858825390303466465938940344832587881296521291960784751229710215742219049482788290085032128129864822966753870756208907188226594630989188455376014551572522931501396661386450097746577623076306872861043728438059800138846397594358325645133293289469186248009762581399391228248888740491399032648024546865080248629426651682319784062705040883795831097604146955680734208560627763039154348768140269377725239212148019254353395567830585092204134878420218642045090600849703047623060184283554392609459371511302149671056810648515417202648968423611718298620962324641130823226340429463904955602353528886136794482201716170199870804736956403862358902786339292088591436600453610278929970388006238279270648232914474022825105647760337380507259543604497231617689630604678922838357461136971806457584662696547283277825322432816894945797960680391423269492620225494144357801324194770625386368658320352520169318821599915946841278993246052668564830160419215015958707485533889003681282237810681018416191432579343978378774820839506585723574150108208606936955800638104729893631342543706315086469094016913393447521821274379218204681964764615307927943816246238180371312448598967821158149140957093952872942884967687066793441256333763623285331851356793175275591404893890640096407410354902446058727430714290935863681468254661120332278338976770700109781381620950809382787367379928466885094577191252363013376874658882879367211438454410368015369200527133920132919558539060456222450200500299181601323675478421069382574731965141690742952010625564399328457315383484222290373659294943630756335226188976329268713862955393084730372953436107768190958887893746851303674830113457615930883474333810225987156501021909698485609793190148547291857465727560667360936548596743619952169985664326600396566159052742854667071067511376914737924146899945231338695536751808176528227084410186497966855690001369908690432812505366636558949677112715713291944735728741352530980018505194643638122006701180755976290191770546669438858632590017021672237226209481799900248183925865011169531979407113996619479778312836249782215586912509929322347930104991297324158800498052326049222967316488679203535178914835296870664090757834069568972764313922515326899943442220405329749444583112725656440232744304772900932561440803796455228918277437557131956695677027988690534991398174394077419190870127288464836652086091375000597229718779216107467620470914074061613101455909795304823567904328848623592736128500115384313416201434084141357328611097981209093980441978480526944032888214811191058565791564849411594988223382585063478784042245431138782011255769904569793314502267589479966011563435862097591386366075975574281745089671302034864319725931414319542003096226317475782962083106425891908495044165463031997625113171663799828290503063739030898820394752904044989987350411596024630534646028892078218299730784412318808611844326847719853071339125170712406894956590899559817834355342380592280044268649247524953731640873970708651493802651576061390294148679136733728226384902463782848693207011141425165225970885244946046777035067292400403108632672075771463121604501418003279783687336458768761837317686695208801223448991661635296294628037141611878942552757872742429751171379159311680914567472644700444989216070445689715555729016083024922643931820864386542038129512009402690575180949055586333312663282536146030458528060389158189899360088441624505642084450208299515378342610553497435108572053892468310240890200338810820851898617178333947534436854468215054313144428883781298644403513823093187682548045633674524998810106372082079198741177270194184130049172574010934842256373705012689772524953082603133311516297180642730249778196228723176384743275365697896934706497042951220542409303623358462872475949560070074454065128523263313838073603679345882714118440906814524525850686212992975926459335848522175787446640093264674140548442185025553490745197488921907058177123196469111697264229530396996267981058169912984126464690014424183640378682644202824950760207671559060459725919858438996115284862916007549818739194472709185991701225624941584426304386391135640652968778503197362788330306587665118349535112191528348070160396547212130761109858819161085745785579824597953250627818946049737051659954419502436729655550980429928494091464359805499842372902408310944005596288673395856779507322786731561215279038378124396831046890048401144427948726242127051725549166866365341324825286217107544646801827572234787667124451071060680836045405935201127773870073725501980091270099210613611992427079335810706152715505224669703545073348872160851634143304339768551362724383072016516926439487137278033862091700704099763958114202052653456516015527248558908362227859086684997420598507833972772764931415709841986982573054833831669350213338796367479316084913575261037953972478266137504168873297676077520614987934166762387296936139055328361558792333461033959929618755624521985540296194384176389249437874228545725551044094450166405992863206378869266864090873588852572468533212592501515164573781605974535804143244769533248793764643071164307437529093852871712311201041902459452307235070957652992160622298262916333386346114036538915295434386826110029242429487519597803621177155617932466869487547798851086919505787601054219828716822036941100224486166040560764701994671366301244716426505220675850227762124766261292767328569673793970284394933164155715607118466906308650223688968148792107379095854487202219729669495041149994896679929598471099882639349312415685824051340157323814889229925523628190882238378162596412825895695096335873106327750207192054461124880354188265926835046565058360218932237072016881379999401747615432513815280212657145741920885544587987660652758989930207754506764812103606912764783801183568552568698598502549306156087157478858547304547048250219306646976374724992169937094648706283438786910194857121976145475292833682896307771106382909718039287951799653422581721241866871124747093735104229181743976543076127760724397387541569274257797755449282811912123335028363821067465755627380822237220347793827573756352857999539051617165635801332035206301660883048563007176485950819674817289671109653596420289451274822348522503510851375341706247747797671385911488245275089992932516743543228038515530005828532009445199698927301869565186179378571787462921669740083025438117443951642866624042476827670859608176141572664952290235713245283305976734816297114607223936793041166193830534501201374765842118241420060704255312178647266960010415957005276822899925936512929820199091444786562746387404995632163416780587284045104208390631571920941933632479282953672446124970881869948367039514996566599314432000015340128462788670385291098467638148183639386427108136449104625924026607365092420577704704331350670839043618878801891298550380980070930001715735901745915054061771766355731137068570308260631654373213075573589739092818487326660196217051061321972408580758058603843910184279769324490765951289073812035060138863235730904855855603745456411652390800856281896468589965082786730618769006514328535659059727340730644026733543463064625478011026729923587379154767173987874713624827919297348747452427188283661804677977265129857122654558590894749152032665947199400065302829185883362534079370930652784866551824862954457146757286080431333313129444537903884578876990342586784857387020501429079201789819348465594682981030004815454346032973279323836934671581377865129677430389355735213085287157984413436719205751418760767926744507080304166873450282006944385528875309673825485528466831005918017515045082535550722324050959621510011700386548751178826443919881853491180288361542701035903454503852879267698599023399201313190696412081973154464845347337670246364699536197660681941225951818456589844974916117850467479614312267171783438005885469797842595714783920915910331721009670891951082659010360325039613279737539020822543586289916985009743655064274861782056594244126758323137502054859964296085102892186428787019687555224461677126850321309114462037555451442461518959852720738032475229225859759780820766654034288587346262715334785262406421996763519506958787385577659288274815009399371352815876366778030437084365275530011580802621282224689979240409974048149880383605092304013533668462197336153057927476249690007969877780220840233735257467115517929261262526285724643539274033141312615619284519120861349740100476279081236220461608229184667762925154108653908005613557074796191546482827477694698938482334814981291483942478164800315352124534034019773412332369733321459866738905773539238438623959465217467458688502807933728194249416691891069249325816929304266785996469822859126905420933888997623167530624440695537666361220247227067484849298121892998582767215871094826659672735116156597330938152990043803072975247583059402591930607598101497111500845694049054508757405747193776654208301052618062270124233350648136216925300018760755855279116224395291539005033842169918911473639602978799671670306220467484276842859355963378283747751886599615725232216086855133110988068116387604333857770528057024229580831050735386445746307905802011637175802053428488417624644177497456164243492003663509612010154025448243669507823509484330366429755206050051816719406728564668980856629914574054372098295262182388438638027923121616564107537893754478947544830397971615256583738591746037263842579532805922262262282563503477231654805093094213667293683139920021652021808420953890584645207679466323404052380776224123244167452334106847964718026686713136531283317103511691744931390036685189466491099551405153213578724351978517656988586670054828762817104293603867880473397143333385006904221777615993291366886369735874281702027243608124548923427416378830433911053501070762878259979689424372615166693040470826342085047175519928318369636318812204073474317161124612693103800096207779133981156576888540663525093767712442870171794544229564489490381268337992063864190915174073904055512498109538013566272995621679428717611256879224779493349731388997074928955714252554192517629249326624222083180798566802685016663632602096403000654510988002056382563363422226482894804347415033854128801591096619440754837957141042607244300239012065986293369224035913919011606977725375598032232075205636087473039152582499258648354723531995201937218018324292858127178696579525512389985378230128109343701517810238365044161508547147487585917682477742801437944999280407428423323605711216341733081052318035221906637096753886143682373093314323441122017688899804328342913778384004962452673731910345281816648745663664014294649530120955747713444703441909081690161348913158486077813082947524886523736080585158935387537284720271241682658330177625820847499369651715440396738623064855653172115737865620407640493535170984540481984069607227312020190327856413029701549881648289014437122173551174806985184248473995375778180003918607298332801567310435570894197203883526930650137211551111758275572942176526073973007994727901964324185431553445499428637482739414031050099173052668406839552348539184856223720772638515062894659626571937988012766615975010412723145249841822618792914251493534313712907496787350074901164058991832322969303993385716727512484215750789443484934145759542046034287205425183707425739679685844850360537977645428874333229437314194303988132796312110275076575732589028356386605688491025920725997709608365455544770613793733657754889882572339128626612468483394938018797909799588056197429843938973647472639061148756790594813295682463724286350353992675025135901585485471652879015120730265757997897841578709120089006483000229850645706402560950263568601183634664734102677827528523317295671789708933831788235321981619190521947295731418074423727423741788330931577133231941119462220955812695614305270118706538869520513628051298761320933541797808320837953164207514456135726883497034920763538291614662969528547173070371676949052891963109665970929691901864028035968039947663450838416572634514541062428421431978876503685731818870059751118146126749156758093116484167571423397096221205647298640609335647190212276299868134774773226356175468142353473431276651559287462158884012237359519587336113613057385670394003360217467817455417657052851278064605312935370905519882197287630266709995833670769843809636325553696874621701811279719375338523751830301119471321922421898523042272634575665589774336191146538402007344415374883433305804012028818974860645516462056128080440653176465187250745524468535863749606161015586157869025368111981716239914702289244262441364761250933347076625930905144821511791057411249441565536261321863709822418849308709696377112516788723031359134944008073638682530148824689673032121392499373534450670754719210261453360032423151524864735112570281444219858586980589278508529991870647870056025108585593076676324339118427685693898693115304165970329244177819972386247280133648040145557115746634537630917047630406234378603368812331689557392316478591440942669201144456367131561995731833724219154517752410037834116995278249027992767175233497439588282821719661355784838732950017184790543490903199892128918691208317587054933490594222611573368097539337990892163456550185726205920576809454477786480091474631870484958113214629524375822877871488706153632594720914757511682960574275621051305048636550071192442350389935165427511183264227547054321384293138759594173264712037847132882727840910565099456804812787863610214625889912836066109339358520181592486339420151282755778090401415430230643602638620020386664451754131987246294973075096831156687799201273032505039322126435123944942498194835280973953273960070497637333360439645795817474811309098004549430191048987001137408928204681417231299856252646817623524630918951897947038655481900490007422708246287200735315252537877019808583147902188066657611268725093848866777831882138259627072845272668006062353928790206810630894673762541994004282397662602777784582305399501975876280287773204293931181926758149755215783643228117338342689352176838746807959163389392100768717672986284989457694552513977002912620194556863084831628641089572535948258339881715676929265198129334827056347387547327734442762398563371553471290328784967814076760663657782019639878813434353072918261789715876849951220991916544312823393130385995027818455852579164394643425297233427764490760159818499072694879861132721116387369336487314151522815915560588978906262270050921213847167775287426907204159813520404137870204423742198371857408791433461166741243785856752577680561598982467079001577468957147878520227236420729087284145970372119801256897695929768151169651993779649523006381756514894864940859413211192043316841589139892535253449004171292455206472781329930909444934002673002114674406385889544543354310073975516455272645796993313342482489389394709079629441695389903695820599956242257451016129946267135830576275035634679001086758861639833083010134181931105901775987734320758438628727785869572552518090987835454931534967841158051739335598373219311930867287876560780530079311853433045364394234004724930999743323786851308437154437393369527511903750747217113744640605074480153804210436672900704736443732285209475599412427116313401248758662708703473267025706448892470192940337857890614207547482932479801780042897580239492843812867033720206662220134769702573008925237564160562771295379594252041640078499526355827495661609675831172448973669401539684545561099115772466855486351838453188232941386480701700696452474149813468897357804252454743203437651364939815310739478686727396270289945635998672103677410013075555145946785027708021712508105025123668971685280316891682599429711862976319629999708806775809143867199677064823261297634286044194802887492220521535134015781066656251203829445056642859851182105049440061556692541927787733954997515357944414240924159912443345485540119532294155454275384938347655734759341493760218884948123956639671106434270990565906582219207898820252819836771044060046561784552962040090387231315883113952442878862957314590443020685952319501679518826338918426043810769095050456336867639852237997282881979532170472547895312980909063818131189406092893043987204772133897814345446945464852171875970081937333319607891481149201427385388060199460754300668504879067606883353861851152627955466419912196046882307148150112239659940985014347149901292927680173846542807425841143502866591058066921534150890950845319371205155981090806186742067070263343615248043877964612434036765206657650355243342431201422883200696982095777456617441901325479632885712795852093058221697240685761154639402402701367441379124677188434332893721279960860684726955444953147196750216664003823850105631317252887970188415177433273302169400470719634721096827333857118906473078976076008667198848817477282678510956677147518812308637017433009603129922684943908126879458813266130769628921023810364224583799488527929456295744293979535610337581397026665723840399782441437897579758977925198981425149125606958270454582124446480643224164624429479017051996139597698946918639450414805341127419119092925703968300000191107308298685247008400657586140374527051722889792211954832397350494681891432132299973856632874590692208169423427997082951916574362139432529370929244361592622563700094988100934552687428754933679773892566640133440320860299247400155391665142303595481154297080557751566536818706354568082108024521924387205115055749953471929484450482479208806896893543169328754132143525334248895882481796511255160131580345323619943464592579505001259747224009976158255828167869187379155213228113695800295382087191111521659025586446666007128351800990901981667173943325962699054561064661840468449496661203639241103728122583417777710717102730048283973603966816567136362914566190264068396450188991541981192690893317957732746934459481627426322138193965672202885365838054590381644488301602720412612568819727684192088198292272220632982159467614165836078782316639807429734835310736669263872603997567563914341185042466334990311885645307639725983561701596165238613353216990870538687208435616055350830937383484295071429397193756541790052636509545126421094796096652826941724282901175168830136743188670886661815021359924461260281593795925345510092148461901839527291586797687610327144404084350270872200151876247962196811001889681573003629008796720848892862842154249055489590912979989822186271810559329814774672951671386688951879605760037578771381837665043392421526820853984955612111196141566809394731039734288672485854026411345307534397925590160623659760502687389185884028772035165932560581667923343900630726876974961182667713930624642433365501443978535231010457519327102211307087146057740039087127564374157362284574955902692298759648914242470862486131593033771022604673745993204536822016563845629364729076228126281093670751931158614416191503504953343575854683533834483452110662031505691682407351086121806970706067614999600152117782014777386343108143557103096119443099467406419620878345312686128629291581905774673380536734148458509768067351150097644978540287754706986688465182489169149875751832054550065560619589024463509925682815518616610107568853816639035813360056481821126015390295848019241667979306475015536696627390842583844424193068273075363299524302279501763827729820038813614581009873205432278958178493099548258400975694907516145846437224350683473716203540031492196619909733318282415871821076669679634396270705856057929312065227183845295755895592666080967746902938801422668089893600929134533112063805676032516277429919968763941322261505238676824223661781733198179902508840047267495482162914442412540015622086413416530675957877451847712981229979050275850898497624877683117830564656586069467296297317818082773473548301302955275109744218343300665549517260741705518497521066303413348940157260830128508364405917674639889232380287059640398988492514195932061977939630697784787183774117653216791786294103991184115531549776500855872836238829119235952152303581031123127559556016862584575374211894047659687458254779845464860861147583276383070453573881538072161065400671701964966592075085158756329980820941465959996652081422606552301653784963714811798929061464036112848114669656617862689878045268344468550517967442784424616130798732914025455314012036721747066640054423086590112719026917123879991105313345370914850970108696059186692042666940917088890044024292471534750432125564404019458272504573729604644023013441611499635269903053251558474412087030943230962510141397593476354733380265617117328874686717787298986438988563183645592326401513513981086439618153863360605517747841875607875600528912470271898550691862840611329501022236917951206798171300990675189664467313114268439478216397138393978268959975699966037714100073606318143670038123493864212457000110058621223007938070085544560098528673015572650263789886044060363931719132882383970652503082060087440681964154741927603931539596900537116256613689564028662669905687583380447011439888002053447023522962499835461345874458956511558627830707184229598322100672132761436343783567277450342352857289599596406604873728602343243370864320705712729637208120831587561857239577994314018513070143619184742664139292438776634934837923689434928218031979237643462207243317054641644053518644726556043646077181728151455364038762000913964217256792241752400948049794434919642470606966157529229127098887616097802729137920634550653230946767202263031249238533339819169683573929018162918752779930832137576007744104052794835871578914630572865495510370456061430778475087010001613866349816139671553350594969702235459077788261556779439781111520937148373219078183156452447319646540909989919572401872369729017799038889620147468673202368488246059718410031427834436519785245619099780276107892249084375137070300732542638239097157884840374878154983195137547818264369208999317595698808280624561771744474763787591160930418434313078285700023769652259302670787424130364670758400539905129565837885251774306430439693599801092453401251809002426682365427775022575881245777028762667962504432987966299890518714398390125272524667931045914527147438332005185291646055871042892218233127884487081201886922478714051420126425623130520525225318053909762017667387014869167011109968920353329298516142487083759823653573934719051763244352627866345706660688290076490169499607461110860828153907850749835431806046454658602238080625026612729541784602581276277314549007023972311990021945373532287511555638788782099300542053922158805773110857636128806179973231228467552591967790454744785935041723446633001720509778941459542327381630493489798591471311799613634993304653428504092842827559621924852344473832125500083293613452318308588287993668077373670496102651607281740961244623164772504233835892078109466435830632628937490364198444713705512301558080700404595206338574152571419983330358602012604574494450719146907788285783113432652129219103041968524160178659095696828651316828045789717020120711252868990780791264903798703204595092954785281307050253798817637154140258849312540235927206837489387211664733714196254951040702367196390068529170134321427384454993656311776140969060375864060825113584483216489933540564697330386841862869904002189687595830665812768727250594408622213603769682133650709021017756857806452052623869696665503380002705619196769570390713446610685054772849087884452196531207638286447802697966659762730243726838940035416277375614619244136042786157313326339519977071499908287522566365628458512400597716837285416492037874047364601382154728283586703094219335670975594483519122045124773550975256331208129487370732750092107632510378163174606939866863574668300850184606203200626137011477404734193064522315025477639423631677426307274772320715836419381088773579666186852179298471882155613865260157490279936510308140717716353387130495702365478754967237831938842326207399280741617020363241739347873048473676558825990137993905778493653111535782619323798722977819809042144415278772627650814652671076237279665514105221356892877853635787259185995531487612512102447589518999925348046119889016277945912116383784820751842255263625778246147339139751285696663957528888919105500396220839512166576528271316362060779971039772282546224428827013500750544514681925261212275954958592384543708943767737398382360626115639762553066489647044304384758638920005074389379908963862990427540269327557495541078690687373130375282137992995456250001337523467538562195271334958977163361039362476217514812669299601550845409582836504988364807509181648311250629714266798508472436617001278689449319933896187670476144645950164155818306603533878254247987533405079358967497299513429835291780773612802043609692596011891873538325159868254659654613055364826630401219511032637227854873201135731474143472765696002917727205217244406092410043012380321106448250045990444281058955211301124035813213008547204546846031314803099391878294269897214832601668129897140127396551817216226791803705448287756643665812975655521922897014734407531722523617133773854971237638422956117282526120588125899996564756655615528912578036666781170511905685393197004492290668605235589555710509469776883462398593428625058318256882873718635048190298434595808295881171963136222495014242057803015987565096876768135376127009179814820202504380745004928294763246381358109786222767195390347023370900855579175346080832023799961456482210782392465824988712014251240712803048440547140272504266663736653553317227931955440569777263017891552630418245620770310495596384312979778933702004719644084796256481792476207477755160996707680500563481244847653732007343599545519719068762886952028776866852307537705298993313983613857843783246112478382052680630348281450373655019998473263238063956781568151360426844757072356297388023273709499182955939792988157560438080384684449949801336939056772773035929690524212446780090871969998054334218494394153582590466210059081428521146308511036174160354229488989074824373768663068777334197353973116393470648061170490467971074336571809723049160515152394173003975085612832524732448919531801425096037488548738939254045276052444964943227653328265026080261183468252513126844074850399335761400219734421281304531494802123943937628426976137929828406359284836065146876246292151104194187372363441068221996014127364931107771492116685814616208164662302837735878819845339754127377970470720523686292969492926926346158439220361525088149820525186930919164768618244368624960726996319691298523530305853646099641035118726759002503106400124651029800273973605653895964494896228849922990188726631130387899766681840707535289435995364337652010818794142556166222850840223687389476144986341137101393587023733233171936134906353564093756813141814462871381924550012812007797282378198111921507057430511935450876104957731535012281655979338492674219090084145876453548103402458281439395311194655712957618951906439153871486278897502080754619077236492016237743964738735490414781451461173732685475023723169764249489002884628950305297901108347612306200323424321628394013659257865654640000222966213819874173016256687801245484813337120331853667582400821903460311464004894822447158148196373741751528192289480246611115293324410013181454128937307830850716369252539500220957368039162897881981422205595572298258834093503161967325923231869072619955134809949058560497588575140047871229691068205609767434093668515735593409851749689424152775671818414312413598100594758519164337637692871808756864584306929458549719366801310686344348809398822817501597207731657412838129437207823837757632843736070900581646630696387250380727955711615642638857963563080319959854152807682068233327029073035187007414175331165557935904332076357808176163162079083636514792571475149607354742128043164024014254240622496396212537977064475213935117839549443482081722461390668242507633849575471596176797449884339909656713692392328208718054885076484954780641324327718886070729728394324085899290630226539695383920397130514920700591122050821140982231437114845876045992159780725919820170527510666609155802696391922578654526551054445159936849805647254026460793461280490050191902471429263485099412428362419946024903562498515227386905307695147607323137425910307311165167878320090489497958590335219118163828616361532141254923975927719836125631685235866122652592321213541768984393232996380672892696770515780090121852444845339511091841129624834603024905157467031473241188380316907518266677924894463255233507544358761988023600648865923608263649629580748904481575875073867503291417548109523551929684583782694546613122464068506332148964106085405981654672042945392832255750942914621134296286803415918782046509006074513051083111447553454183111419265740541510883999668324315772681202456267243507396940572010126945059642059525279978017667005982525942097226540782635099785434331756245975363270521324031559066081039419999811880667161762099926122499879945891893082644660487151366803599615813714361779559897026346543052188705453764953000868249399309770828656168200044723463253704483187760604315117209303874375986091649492962560105050317808036234458835726801039129346766497513468612681292573979247677340829258730744853102466006297934209162217143773711445246620514098826575783564600328462948738973328327910008311672391450494314314046393464115756044920931514401316437983933736715359600409058491444917294106006335958468597592472432783648086126372401702782781358347309929467135975721016767727415173926098792219676698186910663177354431820956278674884606651628588244416025820529304183309549542109347346342805765184202867751921170776960227572220191343060972730792841871793502248244211251256839845005729345385565061898926742830918765098719877744377697921126718444819963429044786207293150173179866949241996621947832528585361147129809682086040122793613508494653837838771466369995944884423890432083000816142917772213132962145990886940879384064511408716196703932324460531123251233818156775039206546424340996268818497130190630844876061244423938866262664892923638660977135773818323006311948277250126486745734303751772760197761805466528980048625102584774611516967152187335125617690752471783957276549787594095111805808853072073296890102426497221592130352404819426249655134215070178932799165005590367228238787843809922890058402674093068654279655673623958985415519158692738563035553331825169842762460254752144537614289800046965767100134541403354346081528115007909140602456791799959916810470419607004563984928814675744117165653207840707880060034243428779426305093740490423555958234894354630544435429437612680930785808012504004628543368414639642218996440110986441505288626759191820665135202703256527899646176468103417408649595115404518175852111623805194632670720058564672174623297093661383888181611243222200821698224019082493429441601391932792070699761971067861454352191005681022790250446334027993210929102709017597293415127793731416167536753665915023177059959292800549517774439257182215843882611449594704510362384962269383447565734380541309463553652298090785905253208872824276211528844551086768384970001775248055430658895025483114099835755842823600867873674917255123847036598744866645117550440435680494068375289585962841646497292923166979312187854965014877847059693769009055881330905524138032843871926762957653886911728318953500963364182413712711037365463325999090049561125598075810826220750829668334746820685862783601936706937870145643980849832114354243113901872666889116365827327797009930718319420072972170278166231684726689179476174241801387096251271167701172323473896089648099019296240059967359730927249500816259687941578945774097942496300530167019643347797816640682666256073396919430537759349991325537094481611654154757936769732918253762028200854388175889639184683190998013919007445810019485354647046134653119066881414326876583668458001214137343352395379266091222303283277266749684654575477251736212638347253782308481266206010103688959518467247421406676058486083982469253290531169621121784470391285368224576203999693976206276447656624076634657943110338273455852472717124351701550386515717352278662808001702522019202190231222448777044072102210335946907451061808518520186642604514741274796217581280094865939184275821460672364904293567071976906812791238911029467275847482827805477826241919560309231892365315354878075224475250275414926721953041169379815346488126488199361214346027283060982264287757267060284673006839827693852201864798003755291626008220602478323186125987097763890039001257853119333356219494402856092090964023649401906244446540232606803808889383182258986472984927983713156432164308856206431873648797676356671849849523636829893596672318466689736416364159268294313087049851509036435202437279473474150455150188592223460333588493678482242220850414979303831343191350048509986347368629636989693786698405114808286182277069548634959314018161099206308021255851351344355749109589504936804393792634495811150792684758491686828772580497538905530335579925793506909582661608102580557060051562196395976671295310802261698710230630307165731866289824375392276442004524968005627720660983927875895556476818049535851667286218330198103489316279735790539500704822924869705136865357093561881648995208881559171242113817145437995261190086523098099518391417557396832985568862856699157949726554514456931932364086311222330684783247820197985122871085044052400692984972898880751037364686576973377334425823885197522035865355097085120135613885205104739225076951492261942439833670660706136610993106956912744141154192157392182209654718016519629350666965231087789864751623366760974972115622973903595459149938266263834913702562822199871481118096295087706455179522410443951880370041511675283417867298426053637167953307539898658081726838620114909838275418853835157190122832207679621649901590681846733363667192165080431999252354573274223339165510860781352786444075126816839531179945588539097160541713707466661561559778822390224920390920457577675376335851053835772414970395280000476489602790642265867097583532174573078530438836926005273784741210265132027588376143918588927984942564199881810017246798280789945622083729355391578539645562128218419124117677386726890242222320264010658302926814718108300075256376218110525961357888750564399840441189898290952109910276951305282966810588722217412210178336198266405505973801900543384155170971731209554022291859264320908982859180308617047508760102918814071483970793163691374050324837645580286951909656280798024859896468681851537064431155063198024668417374551310224969604675171752129529862492061015085950717826564067566727060937064637013154624990478014280977350253744400702617516475565807587703153714784031138162187825342077129206110905503910285678530762419909130781159637897443630091501354677542176554491065861901445625793982083319509784134570341952747700312919911332895291833579911363261993382839357739465697518332277560612031636686896500175529109990553903729542077167753523287007242642661435954521515093600908125449537966743880468328487741790568306081965361214792130818504410337131491724534729479122379210599405483831597211516238234259417027363072690250322662766058831885220608310624166581163698443729546426951385181403169277802291448012755806721413656572053418208377277464927523443803890533489673427868970055171512752524442558445798138282599435609589986457733894267854788150999988659876242107185004971236524022443618690072042207742820361596415549206065529072509797680882417934831210779470674721978655698536974869034695641281701453122187071312628380472719651775055441782058977274605637545821632435559559873824166917304070687983820901228035657108050549189451160302299626571619282063986097555215318410634181365758167798204707988679125244640606062962257653214471778898315000255208815498889210138971898620827430988967219455373156239712955256035268281937935436210515602122387957161533945644677503324670528809712907739324153065194166417276603725417387578648662033202665042611370731940109482298521680065839680667940954364211293641204268841133317267019923921453822021994158050748833422511846070869037142432250900534373729389113098660237302605119110446244555052344450204635552179705491403359106237050253659429627043047404095682307904880016982630429822626655800478170158456314480380854271884319613011810550398763719143591228442770520152419512375858301833650972722927912719031779157881779748064984782991139239251486203220053183835669022824869946261525147524599031290670075563208415896846520596724017077513535747812232566869657120392765430112831292383186318699139933086466496849169612566278236768088873709935660006854751763883314023732766262060982283304885990297663542038218994855345049735143394491337216508282775403645700007639286024817430484885613530784824867359999277265074376470171246879108932508296397121654129797933770991770038365308005110966621284094720528800005367756829153054108361586002270959433288294458387673605265228940009120880337459320134149334248730744010547056370961402259150467819002269652942315985895861091948242549393983544116354884890072482753503791673113570006945137491695195595157635343520460094180397128293578621612998688002276245375445035710208214848818746232313456063548189653845303417874782469834412915006076328016810004805724676325625109863332818112909712439820695772080707229643669878775536131083157139485515925204315723882212386790987407684916070859008735247664998578442411418555650409566925449316823146844670304551291239053976603487940681399311047564360729758218016405102196492277340742219517591372702252049124523629921540477193599015064965493936297569865230057723025626892467582681889262578672531153264453541548822498032810231723982833111287458209624175180311074272222167937145924827270517386920717764241157657979051476861656028460924077023054110322462719378766990248063167767896117695241459372515722120196902526805133952681702132131441552454800930938441201075302082113442173066006892168622736194340796228873755667559198037374746838393636645667683679052062697167160678328313605137204427136515011071846939092138114785340093077821210879725909366557598750448706563833799596453832577349479103403779994329408410347697027539024079209862590780526190679506768571234868339586411087291388719088560572384269039219494685834556594241866639542175719311188040400528249924112742041323465534309823274707061256069483288658168053952625131208471080543798280164828253701934172538328046519345184568609175227089911299914448933662102292124027982546974381350284345565192532744340842972547494474940016644113135455328258295731821480970565509186735841370295917447402550448048266641465543252375232194807776127132159851679805272360063594987330376770419512307259198183124710180326552640874107635069893836739385943187994021821173689580270892435138168557512608540171916053543048564625300859133612813918681175012647599832542242391361634832513013236340804411453270232975249267992789165934004966571982969728396793350575636762098493416892829144461040810978276374209628457152669544293616949869578690880172137753439021209576614246860031980053713801595733665728800594178430029325797679724770862889504362983856074220343909921064340979261022230375466103434738502600634045696654766558908430726760608944564747911936565760134203518110726009805981379188850933412313770864193822466261784643839531577271770934353886621977369359361790117659745778179867114797718280768614748894045734917835032663937530906224883998340909665377707254771416921405828776165227735941109603575742035026921542586446162077239415286046430987099223042143466236777108878694973230396183325816488365869611583535002549336297251304363634998091313400510838858928185528983060442056972130575851135132175171759306192967946882605850106456226849490779782985867464185290124479054327688279159019499516686313325623511889607043776618726585658040229426109467788148523805731660028527759190525854448325206246581080230145059939359782961630586587100442700294034920156874116242009718369227939290595151727608862264011047679916844749665739000411242482170458906167812471763261575923172985909047737203386270528623140183278088731521174648208676963148578225571928182410483249772688197993275953385960766155054720635163029472194989065439201630472318726567028786726866320117648918574841498369396559058936599099739203374804610923451685833664803598621451011181857493788470822336686317097096640436455707267723935365148571509168973228664761175611181832795165477259735866495350513974764076244074364137525836981564379893119582315498808484469759557561779615898077346500673068497157851201884859123242570773368864981426765797098730567716922168817126908898610145319041466598397956320580141696593232711269291295863534435778229296078794765295415892468436741356677031856966361624235132564701818865403314416415654404376725505975688933246066987332380864615021374985445088000700513916510514383224591138172175572234903725147377578033730540197129112395580098429701048265411495706632371849807554954281042446028722416401149032614908601025592814629524303145053502842029528103089232540600462365307129858872654503300188556652703231764939551064607355596573551743017679013596119027146424246471325786493150844959530009296454674141476949080303023258374968852559880843540349585962775863516117436015643688510268179891452199740089621766337464057785376075679461028680573890662634304278902259585437967418996103386942500516487038757293646394371933351550973339356948174007342184576102705618363422012516424402217234074141214028208323197380020217234804008854761129632429974383518966523436511091627662515891730873870601590595207332000472576487748975909128422928115541972348571463341190765569778743565228702399229282428761149158761187332280216972419248772709748971883968250486476070060283790219887639789554828910378640017610236070645276974751128106119723270915011124704547931540871691796496177282525951343834696582395832292749832114541869399789563587522134638498787886059282567882504431207493602168329718597752176121226650435537592124611296836302362363328166437096395839309151611025355690804787766793673221172403958624267357587446934314758725965056738348121417908124805780878279187959213261245151591334292049622414440229426889346946614731177303353970348719026656807089443226424214830453155247103723263111473599619322965891711791571031768212130994031902783735189661386438152068986889389596842468560450840228178399866998679000473468055045939385687596599084102620426385702017109643092767717931187655958245509190288459996538202214458783074567447823156689532365146932439805690469042345242248599212485570479983543290512780618312174692929158621969614478992967121974424633935419936477232786678316205734079017637791354973624933073230530142330229584779073258350728356191740870253685423581459532843051701786732934039899837638712346124359496075185627654254749355709678265059375580903147752806430271158994828434855216065807541342858403737516598833681280383669667380757912789475492189149630361689229609404287776362158300904552347253745986045626182304321605355710210419350255978504501385718656165645431309520697678319915436326234389987746966235727669926308426437611004288067792058835893904411685287450620714895662482074065825507122712354224337108268968647943569620196165610830667907677232059373137819253523503614453592328016132614061843497955494310337244960832437778406367583102049017217379537566733627860558020050020610461555591846423645341025914975512170347981008175446777281472158937237952152036624553670070404922698270192458141430909879593258499905936314784731109541143680898917462027404849743283227162071138568588398500252038996477980015705434111239003461745969157890591353082427101328471742207974695108119934409517813342873371126598157391218681523707277943629977926327160643919346323492001428170308460665215530487944484301535484902985671614809807999103885413776339620197728043569916534856018571777202641878913594985347545954058651009370895033780462978830952135744374957359966896207599025361829033270517572673013692454099530460054274854929378947008751525662560775333714648316984390274406069158987392479666464595922394357023440455906529363824818333169126017175120882156622982058132144695945519612287096155566345849846051233363803402055435711042941675842764930945845614807593457991991090247578726654890580609713130670615643999560602288767158625244624996631986470597947708954639171865775051243161064049601063686209187077502821543592383515173361610677859019004458226297603910064101465771851486563571157309216909156139771912445013583994615720762457499046615991843696746779229840763957219706914240776036882128344159371819829971786869109037976044768263554581032277494949982467560795351401596264653533669604829982752292349144668168560366122756295243290123510030755134063502301176198217368915076189310799917485544463940254729606729260894552018832802163213048161063625018785563623235502213350729885837345680194441364590339671552494349769095727668520906501872566034259816410642884854321285435212257978171467503030242128444628804659520799295675853399164684245766838661054394637747299957097868674154438587827423640511972537507065933388504538090952360622742147176877935058806561510723570633207333690353824712549926952441509594397986911259876170007765057851962237417984526155112686503681635846293534752177287124593122810042365706146454545959519820832499409241909021201304011424568164106709174687818755615855337612363094201403124208148671515962242438578352993865217979352567333397547612375856512421811053310558141419766975755775480170543336220362015508770530090489156069026590148632668478962046703984895112369638222759222108934491299995439508144961373109905130321551727920214262800204730199565290658227668055465146762786778395068349861623395877248412558354145337868436631246499053824439636544765340227299111980947534576368258875015845727042240045042279214787232917482122385857229826661565955025574015175503263980342146079989137353594308844937498412387493428504973679049396160060736346646690418902678314870447316207532159284560054765076496599608253935759370882324419431192029471446037717344102524347411406310980174025281577648258823799644848044168388238693061880323881970913827670964751255230096061621290359376890461100671223170697490446251627157460266341523545145416840363475191191136192269808994157724730492916773397689910367622756928638847256905757136721888693862806875667581457292814965761653364688691715738608883972095301184585924585449544811436671738095142044329502272927389965362831711255267282620167964060312169627501139911595822744124117245283977849493131599714053388728431121921822616624808061893752596328635336650041913128345720008376289031951433663317680884222323900868324432752024979214748156606808851345952096985605593007819197141179344333524263217881244421105901354860933152255535760436701234367584330278385290405989402457683398244708635271675335769617272815969865727105468444216757317481975736880446329913652319603523358888346462054140028715671877067343674450815456071224013590127309256310646511653125750916593104200023303534665533480855247943590414514544225647737939733281156717413112766752563667817068420335511171363446955833683166738770676816878874827360276447507275355674578898715518978810395747450395681775832367020154088464581371508148123728592833065580628322523365768783184500893277631985928584305473661574675576260831980709922557254635804735246056168907173992467809864765216297664412894875005146225074836234953347251252786861067859869526833447423581410129026672272785206459086162669391588537079423169489601688946354078247218147815607607028304749015655576003948919151569269839553864733971289639697812804117648763431492748050492667995011237833605313447977049011182316151032851314809382704344937372130443748916884282865470580198987406219259054375267700969986891023408476891312294052485135197510246268431696242449529757295420641443069087840410524978449039766816827346240795441113738096323979974390220960476673805316846838948640139709548806709094440342607499242920088811844496319553255581426194629413266920808570678995733243001354827548350921060824988842548345127773759417209246192971799745860549770425266892743347667670012348390280041071269074799549233744510317614097767787509586267002516984966511081439461097099056558616059739818340727508119875136428872272255929802089820216365057727026007080321609292464289585575690924585662861153594271736078140312393138717839534310504928687259456676228042830439897901503269925483148323871233496730826378343480259759135002408661664481238902084221447883598038182543604556928008879479808081113917224123310210247358269902932652698177706722384695400527102667795226247662759035565470360533154733778310269315624148136514719099872091173272865706384977467916954206365199182239447068561619821006388965563102676800143217730398014840871854789616114213610860374382063738886135005837081132982586944250474138825955022454355927138867407921822073350904758753526498262464559669600407278288869131485687979918530402759065095564785659012046890676419858879087332135588306019524804299882188343752449906459601922800864951692597697312492830465246169551682111077817737231451166476941017705068087297848446086501628342616675812607078900421994120313405010212073525143050559463416514341797193114193623925803116107897513403226805638165692288640635944776519922784042017866968780204233779613457510944091646456282753831627543374482874970899984210623889263430849029436455633082372369743019342186581008582374978354534458709986611117867124517215208952765198727698789364579071596271756785636302570194113711959843911340681580435588647314476289918338439038448703901894329433796985989068969973939167799910855339254166883512873692201023458859012661784306746992106164670656003327582346093380650501730978682118080373599644947394640461334747407929761809831684851197812168887951564733299552611522289651673391505113513179020428803884458007069644983294977646254208919829648073263604298838591279630427547221702479489053315113176692483219255122880544357617170241870117181412075994342239654748646985119844844500119945065427932733219203181496846375160072544222744968419955340109580747116123631652620203078024096929104471425363420639998485366673245781054277022298889807085400720157138005808973714998958634981999886518932095357309436279971911002132717948095243000460148920106874635933570729277197739322748674862918286828972462801498011210115028973232652727753213696509653266989961399492224183315862878185190164316033541754507640565416295949973092182281695875824969933223976638696460795046923722667505141081839268181166488459363383174483559819134215140020953604129884185833124844920101385764164321609571842483825893853271828317251576243601678154062629343114672397413894649837466161860009631948067630589161502616618326588050545329742827191155456463251136739563697720842118301074862110037996450354903172437113750389925373792919298730705301031778465895113560211649980673666262440117044734721532731219925477619804408816008039629111915521752964328205494089731395633944822323784409750023935128011852706822255227871691394515762543001491328869210773039520031508361640224295305869480445822608051925456091049930353162826856156349354467182067548520175396489983216917305286881921620426756820386842818427752155628843497856197386939179490560564187392189972840093996298694432417953518497457855572556437128426807822867849284122209619919394881140274806971550462770510163031937076846345437122376898857530878824582807090681586304132035818382676152572452783850263055858362927415716006581550711434910748338179652552525781032021196937822533749028433251571418660855201640892124554056597404906782411733863601610584099079406920049975363422076995507843754402546388043702471434323178977923936910080709884359701739153854384306091890333021227040866667256671627351080017125058087684004060738441144741559869494483995963062247132634505354761217417975732984052081368244367507533464610973507844402345462474948941643556472084756365628572947484549808267819086744823545277706571148734793091005550648415776855713376060777504265756056272172858059521558216573204050834476611828353998099273685081813090714510673976195432500008842483654676861070112156069213485740466644131464071047760918440113003615988282868074536405926766549626209873262743760349085969748231380647817458420901948736559199179908062694836539518730747421741150979073717824179720746301915363031537115044490693732477894564409471765083690209502200836091759147714636388265653758929755926417805006900748573461625211086228069571269728767068795873279417162102387288340490055484559802832281343439900190751551539311632118460976708902706182687860896350453114149602736987002345687727540151686845763065372647936023472345134604737910012774649169263787086557402724295524748117090809068038887488344393957451625594366873370097136358168381386902696471916325632539494378319359142279322690336432580165534607756276984152427922581550620809183656426454352250809242230631316551601809446627776620236895264803940582925408380196151925457988208526839844947542307242469195936288180781410729475869193276877327150634187744344298303641823269578793764833751982015477460689056996727363455309850145695803430848880881690954904936961656374876251327440824548399833716712228922804861336606999893847736539173298169930918830271927183748970943917988330529092006269976646031169184877742433567530518851026938978225103179272965808483118879865418752085066210752646835027511250895748584389046736690135278278172348585276035234079646472833614473456852512077882788846699619435215576046302158578852075196707131637451343777185171443061459249006047041872587507099693399151149716489833773611398665032387399473011387803867374638471834257111693517016747764071297548851056306050309727667151119822252565317905872450157103610201207301777876807917754346876506155442216209317261102054457368634372926514588226123156341087355493809233257229278116470992366295694972916686958384565017941899518982002060313560737831786940183992021539999643045741737020420478199859345421963266033161162168261350460535169133152554344978252546785473440682217986841571357007220842218155765005869662520610031221053834949831474595550313215034783933954911659489055702737142518986981784119947884193321752723362595434258670451720032807638411725119052632735868494449428682741507034906635589257489967593080814863705006227089199954706581732042237024760338957774690282264120399464093794002084512709432921890299324323335902624316808657946548421619405949034631725624993132866815427256934920033180754728449794210986636431653449209060135544573934769462316119333914511286237958516311183525305863983208593342319873058017827019248165542205575168011474985586801878200371485315509817859401407161104689260481481551458969397623381914754552152657159548069783024521805396089602762529447925385991661211635554824324064467554946835827781930664957205546851328661363401852323576770889689358484451530499998579796596458499392262557503280749863338073813719209321525508638628724507189590810154461410866108902428054464111638995626738622648075183306346768628245758846221934104825472301134955982520226600523224025760167959811032660927047034250187296853793940253712621032909345853095609815851649301440600174191092834113049647370730501356985013644730400068007457702893809146944140379371508007789580723424480490145681381022296004938764946250520626134682160440135321948635812441693243680580553540382111810163657661681527550311429135977293124886555810084333756813077329132303085419561546166102912611462662014796896571425569571118884038707235442632503955487031311735604446375778631510911134717486558585016151508290221795465505699760604483036163695642608005215793263650867256667782647998343165628272577379337643470095975779400533150864541797840583723435741552426982805349102017386697047070016149943463416651166673766467809400276923308129196432034075663359075667821080039511963404220046208437030699705090761916717685117754063345003150140062176795432708489144729440462619933943855062552178051809932335943226194409602130996224584133833796682337934682373349588962738863537539624627765646832280983852208158933769626090375806910310329632361378089843273818470814057229700044925087546634447785972770127831526601205505599968423416891677395867738361727332858015424748211984375009141594933561986746040297041049974928746544853805077077668126677019112342185207069182407076807799654559238197225904999506879380428556207272128109780163620838159143989984269509493553743658633394626162882947187240047006019019680290339832592547734024064582628344067453701681672011200870864494341104757203931938964123197867247140247832246570598537248528935980700419052895467737677878247663780036054690340039547764421213104787662058833737761356037078425622809644697530370728072125386341598105716851386881826764827516537593519025970730026319753686131696826874178381508469524646784648470546532022618019312014194883481614383831874773143934594570874067549651050096065613544263209601610975911474401077459026098251828391959188649132955537353021041857541021097821322285814707789161588657150969353444447232507760086517889543478515742789423456065536069307077095133675864309005061685687408261449722561863377539374542632926742542966824567005237727985750378317047570628693400801937003190418416740104679301848242159697338950938461679887529752971665654622399551505194300716581815852691941813074561420264459469956459985193565076296680735952394674953231021106472005877143987078201443247462316303923437002745743336300085301634086731780609257807889165417734240183736070130049575540608560370023875223773116495510196517696684140801517492390626193346902584166517702946273807184453590960458628600556452326967642115982941308941419899693677423094842061436673230331941733648158797396426911184584079917587270892226402152503236329782408630389455695181643482499082302437226934047595786478278602856281233215134585668496941575828078159500971699693546904208318828891328804563882487617984068501729322848679218502285973554292547294400526313418744343417278746780220579884600141928187191849212994286208952383424178170019912152615306300434550454068892576127336221866812703900081785983727001653981193039004738211323121769913723622351424153945908860730495230723436606507850759873881354481872622773938322859060688393488667701283279700396364974122545113854467379516765072977732261113201148359917340133001268771002179785296456217125038147267214904387331353069295489089911336023704177943212275501072203773129739468731948231598119163883147471238257420413538309957366495449006022980869119808217825009298314406975394590978422327635112418682989899914592563567352560912616476221045162721389768121687744463088316273741634208969829614917935217422379507488613118518548813940406206261098766123371343487712566457835292014648150087458622871742438930111068317272717544584665484435891831007659410370391694772802864593443556241159624491763307621559499857663743380786307904812389660590577793136390880020407403539886172859654131925519565157991443265200479849945248106126752877913791169466434857369672064571769334479955191707830814797618426511101626084114871980262166832975433576218764468699436737192282684834697129425266240882373567220389583629337368800693955958824996156952536589898861820942830508646078111453646032635032611219555611741065291715158706214836698333301874609795280647135253490643300111400411766392712859237046430601636452178478946332588088112620796067394898813457439424945196466101620582838441096370715966967569632864924210826036336585048109768600034357853505206993864029366433837773589207514380105481855759740664538603439560634943890370100617255324141100367881172854404173499289892892798882224470963293169694653601918086196259885434595176806370877536227173739660572771422660398722419897406799986370455229160436055359939087045823430576143975574810432910693148938996340497428979651460761057851340629070436170776602360252603936837733106777969849331438256028149587950594522179556888705376496991976273365915068761831113512992502538665264987756151470013499902259222310177900740435530206508084941869506946620161700703035188290944177584191771382845067468881130432168045223635439805007881309683822941994505930086056564263932907491273618644662261811684448875340843336364833101135671447991743840123373833278400604446863563004256760673904119005490732545442739284976296758416678740642039806320767917479362778937876635072959587992447400608136908571406410337376945502097240501289609315655688427703030227116531488082191348176557540327057587574935973495367788022069979125966637180471273844810675003253182182128051794330939702604144920860552022896213107362387981010982431652329261063110417715993454251496762641900092425841750155378292129850777585232165776148152457595691884697847795448121366626548378646347155253931721528064864750393212427741838223888961315008019053539889657895698633710543412674084249389243408173353206648113445366063523251411589250029968273052807608657356463217456561184922838846013120192598793496261257250821547160359694652457543432832793009752854461812053659725589481224163192855484505551114181575238019144656471690930817060120200694655732906234059750253598818913195184255002930698310637468550625821410807883189267996181203590979242146018567845507655763637701862200176264330698996093308009975917475414160472164717575445064725189790142796445501409321160988889668056749781953364890575136360093241542038431902274581818749820702721331881120104135227959350678014785191764769220800430226301005906567070686057409961042086753708779848498041723040137979117167006762871764474691482905938457768529862938777525447836325377470434250964030622520573551552366758752256722897195108712474189676884691622992638382113570283113175796827849233065318691737186696090084027301116205709879040274125725338926092922129807720316840389296845671992662443971454639199157692868908103275047880158199592712039523081827141106731563988617336877520839757729135008924321886587174977062458193948320426865785753752221611381263700865851220612920117374139943930253272483865585620541334394903588141402306440675454884862878719525287065309450829049550352433867563481514553602755609377978897426427625030194748710017688102216151110661137407253328016217423828086933138838800191626257324418108161232597170494035817372675030108580819054043555431445674022232078276789705937310103987469710821723710616876042030841826832889881456707674071044671935113855480710783093139328596479549777596733664846184595625731128954890917458657017759241915129764824569822157040424090448633147248920707841349201958360306103467362984315457644870181145186737412738803110730738454598110947685583371636571089197283231951059886688398021369851684105663072576545836464625005805902681748612504215330935380010745996219314289131684354067215783014719605673671116264660818043529470903177186605745384684119691811384955010524684135820351435571221546192573430165754748580209673131639815009018145188114833664854238880288645447501078271098650658665236327741614440442395527078161379182673694139224016533081340748616503381949922947853665431761795183783257282317001691495094464110811147762076688250062867024193738375057892916632472090724531915675183237460151719397225465252477737663729056933183764626493618885955129287177998327697826239971784323165557608717371204799226548670838846404216899933620680680587458299279203237170214507651689124532492087714933518332678101704523523181945604999860206400400821181906382292718799964693175112860026730447022886344600498760511585603004968344191603941256184545430182997277062829548305296419898920557901023995332803676298523565751355933153563973321833737638032462534141463484798551010195733801725627269743724253424777005197118935238666255567227743339150147363856896165817533962190305212102846485954148739497071292250233566517310654829413751472660758036470836401737489109263970092591583983164197040397680698427321439959843177772152481655498599191868373352133317452547139022923895670380335903874021308786809263519548629355140181296330963421422810032397359095011088099686423064214668433638363831101286436287053431565007535722772503662060263790455351388305825201598009301758802791757268029849113159851225727741194061924876238377732072832316241860183051944798589488088799716432531758729793527230252982076328220032143177177733066743420613860425698003332918746346725267917406917115821868201932531244047148968808101585501471612608663611944158749261186218291625805060306532752797625397646174044049722438049009134553038762480362029053391199550123519438675247715119489708155010606432199413683134849394687687285818644411982404840689834010215904908501808690577120527100995256406847113896057465567873437440121967781876212162799815514100825551429173827283915402238914619611821389181320552374983345078455080210193408239809182559336323944583444639545687792646047070318358269781103686457729090862710647598568541623893694844009014656739661032048774548154747425478479946434999563648206720653539180969853172983400224627603107586474127922492626001174648539377855369675274557349434364138193738511287996111007937424868975875580565971701581856883138522926190264142832235133467331922670261315044262317674992905002208138974032806523727544735814722574388101991024068518636204600286315784894564384148167157253861867895557414259514638327587469522211565165965410488916087361392297107117130730609662324531621432172156193952171634252013048290424889930177657255593717391801837253107363216029367535148862131757404605542685345303863717836379844555711566353635367563247718771828249489386081627654211646719116684324303294792852345280159696285022652385385801150153342372888138456188109175586670059806686600365948397393554462973357139970540704142888888500732357475593092913613446798877664672355517610654148083949634969238494289177437816777105267149063461480528453083182806824941422807762475248612122688148200634339170345981999572689983977331518601988162670033709377206720979816774953284647525062795283667621909598324766071839226371624341648818786040244003554333499631765721112646798940181452437543604264598870364646300079282811647345911407192216044547182215326239035358774703172704768045253168662603901937733237386004015788926110224309727529257116942157740061564400735842918535194809932262440858073718778953064203006524331665605856816847151415537422528301194340233066480568944502835518264828661808524208300767686893135569628327025031162707273729581398822901311959220783041706142380240947578046220118804642728767349856622199107946153777340464941151241285721357700136166374560576553808655486655926150123625656868295000134977522575876035537748623427601452024177988480835826293203247934748327294658989911889131065013837872695561373821293282243243168220080423518231868136658037805048836819427462140989459964194530039082558453816149164810514726602590000897920109048436080936927318538217463085269225828832232715688718575464100444332669692449312049561319116169653361568183652364054395357525658344000295312447463971095412319115744000633020090673463755050380031801062047856550682305928472651676087627088055692786050366494553208665848466984926363649642747672253071291316943708175904205347608190330035091061276980113142995669106370301735442423920114598912294864542406914387262364824497139845508050538849067159451855176559859877470613321406113956645981068995807185126873442010621868792566160398485386574433840871598526503832050782986080713367070709211238845766270552442895177192770772397258433410792982147536105084444676025965227739136273871795369140209187367226168428852254145136029782338953047032324420564684149889931521748659596376225585890060528336966345507381861605917441651861883932490401980894339507910253757903266133364437318156940908232413677724935261021797498730225974894248679084276872283434652653651062082360966438292605872886632975555258658825155181724882566586601003578003648933940257645148723649845787761444367401225274233505005432590144619398209517016373357806067942133022318263210352333505399126428123043450316474385473585498563559772047244139525608009998052411990604831934856796065719974657671675561579116266878132362504426084018876519287497201304987691905429290289908756338752919435785561413858352820163468950259470315773363465674263048968852289620033099377394493789226748965825216780076907083491894066900212302073941355104129925515794140631222709682738460836512933706656886985457452224144765255885427688601391869503702883020111009537192823931466312562682127159119009323274371830305679088200362950699240128805152911705288000460845146345459244362798885897932613143450291862866489775695154726679883835779561896302520901746985836710694330559331709807603196732696214365576448731381519776923147188978089383733118596235659280781672454310283212883788462123229453824814438856671606266295254745421651332893263016089894948226418052825043354842463764525738966909935336810965643388229103970621574345345740673237287801280963474149486090269420872635795457331701347563844911795896210359454494999865276472060844936940503290415528038262223739901071100878000191083771474414457593442408890595584544249946413076069650947774251196485944067654060448798048384831957887489944772588168738639068927922277469141906398329067216998088107598787583084739715583018845982711764509034596180235587130222383438634582808212643123200220468952616173442257014535298687156965212405332696192929170335219282754805076233013325237660988768774353347515788998234930918147347620505155453655683246630264368862172060798670203076772409661045326187193051027075989097427179905911049680822502630291229838731949734368327261895900456076466361070143604582708560600136642429721379011054885509979573981762506684132757186193095051507609709422319340913364850711359849148888768826203291340066564734160141191438302952893323039313613438590192320501828581984999599045120185240309676697180574053298912281676672300499963362122192088936365749003409281660134401129700255872701981249979614753163561443993579495312661977852629242562875243038170141644286511018554871415818740448179677776501655507245936182171382020551125480626481889838650021938696234024708546865323367711855552020009811829822868535491336808469720063805145543798936182724644570607104628135050925081791864058134867598246132876706730051075968040167414613194274510566976770537251258776727568707281283964029907374785393640037694648097623411088928207215301915936237807299106512461784667644803850585986405245676501057336035049998107036010320492300032524495147447559192930972950057352458405004559324883919926753777448524580274421148783195077847342685050857190076378446858479740044799906659920854428090365182119161251771951183629892723031124110278330767670468645101200471312064221386616926646552383151326881396708716471831389624503861911052131343933965390270420345887397909956480709392763858911976295512934255720547185960327689811335141250044962142259989749981568344200417330500954618733824948529001852612756088114637646348781265931150656413033461320719214180412928247073146454020016805162107578219912463821880458078682265927417402020877620811039236091103541387665343241505395482739561801117205121058403261745149168961285610853741540554898745726187509860714758073319857813666884309552128168307022100785449372229766106550095364716466445866968958397832142370970119171074350925165716009566701122888635010515064017906345508216585091576177240887140455217944329940832399769566249443114121564507776391863861828834153155641771022607108610022610056837575162610870871111875881067858334501220602792928460946406496568490919830023236273711355889937093290633427131531475588144385362760231179171405750620516300618481355320351076456852523806104074365150648985403122506894338318496733025193412892946277936323488410529458049974838902292790784773977488171685241595880459757581247544514484262876758162393962758657447060185073974078578088228769065925788788873973928548075913813356399087425022852490061642797347499583407089668417985756904752141360320162753394596591065148957484181380479915694225384941754257883135093265871257152602290039967713627175708313192186432879377324844175595436823685704858307252752665242859029431715327355942008137591350691794209979845666307137719397319181660590450932170679966710038359656007276741716283344104421536245466813176760521950843411158235536242367782227621461815043101236956266946016124565550544896182750612734297457891347497952970024982524788635189103873759567824342255117215044703626253480648032705737092348531242268029871164329470894473547452916591770841897620225518766266193778147615629750451805652993007962598090954770951887761283158010526121831019231279560072940834712090276171644358033449815701594100693342916783521253495686930524523261398545437979496161634272968942511111700668674284565205434518793427486929137893502609172058278042102454497435115114453673978168144889964574726274697476907571248796659400352656729734207099236713888217264121629997041962667439876731768871772182759727000729943258128415900601579277465436801042079244520016941216428986332007394473220286663262310164261395500720092173762616985783344931636345225429281517766947436355077146510939097860946688094898570955261939244246642327411109040436204501424401953016383481000556627490497021396911296193933784513095402335764877343226984352139641938721487233516767627344562264305584377577730029825610047984315310418977123270789758643781481910452269984999609590826823493342809347144028861723797393304513745377429918258136788875860131765172919805196503171166006531189649062858715614947152379860074497594904481122421689675386846071485277626704315778204024468881704751237822253815410073653881711036634236803407145099363086718287380703273417011589462633792469543792191584201869504009479996196387534302347770021954178046215708449357283178274548234287780608907791619625487235095205851177191967901316245439662384560535113654976174725096801504245250173960081621360663565573757630979075094684276269594221532238057589016634015044231217295101829296669733589971039200601145340381936269270399571796822151090743115960458376077296294092759110393333736124987104113105729993009852947841689126002858234657544885614365849668669951757342013320389987454871980514695392740633128331027727808155730919628091403568501507536550710363390621944255554054893871345935528376447065466329260364230942716682102345016166901773129850776506241547395923320749037484995310576312907502815287059388446011338185039082244142089449752713283423567883651729288721700614728634555617417328777097007659100300228976805911065360034184149542078809422624806273364318441921756322269332503594736542385856372162953080589076535327770849086257794451200503034746968298027687404712521072815639192973774513556766720033518570568361078347481551068521134361375998441263691506044981298565808779773985217215526520000409932017800724861966664540145581103524264623116982762780034272672555525557387882709260055819471912587480512996897364088574651889717158266822412577987918384587796294613673428883428210334354770077184072561695525069610871539351905890817508568214679962449072221700228995566823805062264973917363708835611638339729485357577378265439295337152526584112149917833311178519273508339157739990905674589278921993237435565119440894256204265538499423134561723660329660816794113440152147025344441366212374125548942180187737925311271219236664009402670295291536310206986433712225693481064278984774666140678128748766434468922429554076256695132139894502976385941744219551879646331577406101359576855478533264692693111245425247655104961873305551946548499751647702778124642757373932761091162971758617131436707655880253206183599092198145421779462532078761820573784307930185052224364030943363338158284182054809215410608673308168454263123414136344427967453223192558470623446675787558858661660127412938127866153040191799307010749869671039528092034727505628687158608832449757001451777309158009736601772125195544835305949065441671488741108214600847709164639800013194383481166092148103954512531037433581549545429578019848707174289599942580351408985567624680974594522194516075747008998752101465855236901093276570431336496043099907300764588501344632406785871042344217063006329417844696538685492036775474427980658571242644834604954870347488725974914441705971381966967531038332109119530321613634493776326745319361542434701229381461926190912357203485665488473306035123906969697708729388486584700152767581020638432210826597236073437651874400877646259178739465193163315100104880807674379975079099923841750866835442791927316890545296116282351889202848734128981211811010905035637891704998938572751917595005079531968341154014681218497178544322339744331685325866741196401557878095538948299794990959212154967431382328526326263931438745820085777109957246063226922133515970468408404227347524575773801194672113472603444418239381894494565099788835354127665821935763193529776710967506937012881671968759902269412493326028763028758179060475313257866251081549673755181199611760458981314114787985462396705019498916079504712600550201939700401719919303139714392989594537762635732519946201092727544953690306529947038796040023905235015910720984756553172068230327298187299886592589626809060218228822379568113317758523756094260248158562384159192110825530400337496974915782421374212572327378499705392859502187695576406092706413818532023570379038954870337836266084800409600293092039563494756847512649579972034268146379836999521247604875962804766623009103565606527897724466259748187458106357663485134944432281277271206557646382289698535949993671998444191291957258605044276180975946372819163179984018456206851943536102524272286177660403973230100064117470989125561186493103498580280056951071863881131156775613164764797354093734872529899629604460726621562976419546453334652661098191806917672539240287829134185218412102155756651666715668840243060027377331458458029251917255224213039242080427219274219755036309877077623674695996819336541929054015478352930046317625603283552156528953905072326722831137348232430372213207707038491475523778258760151360601271427261298572492771282166673557124864419731663646959622191521423367292926311255818288086728515519286379772133429627756594611798874871352226207871521025994239676167445574249844806351339271508957130774036173837201113617958184434376568979546695009498312955822902156471410832089164096675248061327034700860582268068520364812092289814449435224216222582317999075221332683534516021873538982760625044849027974673578515752863020506568195122937130530668384962916831618402720935548899250490321840123186648890680929049007678134895123272956323242164991512180103692301510071998010819864507263062484959334332710236259069286955512043458499429680866697255831663164426599626105827273484397219736235598333852181947826277640590427227454830710340860213810881605294808005174476347488800411086485982957469871873120844591067908676255301353304978171424010404021868656718485287963767519324784034415203086934870805164679883446330273828104066759867668662160060320172715824562704384110707418198769299645056787460019705506326824357057920655625985392148779235967719088583065529635622178006823882317891619149674329123843026951004027827234097780796941582694211915697076210183085401406321840912329755350509321169035855770693398302796051983298451626408961557987359909079153727857411865686717047277580702811613690590978194868627836748573577817787696922995092943314454368207210887536138089557014340472982011918957604445207635637148306162621156808088751311252121291435731358818652687105133840336968550390599721367449462767451675561841444378987381088834243308053759857635453312921159124123552488547652519739881313541460217480345978519433777139817109764533161508156502619116580079735431996598527120985193767425656092651778170856563093539234869905777047834482625701680207003229899504300851580113783640852105128694418870973141071774319458432816084604268740740034175009316611102878053983861168279751965596727568579964740486516673920863148600906374613773142772361342722301953197562408375523264121304973015136838465378356756758583561520728514729431455768426607498852630790639232874900979955736956273307037136389379123147716959214935458822377698341273467417987607758219062885388486177062115267329527064632521996460053668753574158819837205192059822866497202543082253729257345795979817148748591234642457495092128964306353470065015293489426450791178200099881253317536375421842041565822411240292523498801755622358869650702214921220214087070919509077654893769186312084611452452398653837284528788005029633659604735629177055088373545938974087569442854883775475764010883760589660370281684798101027793082444677732592110939565563146079463865046475534660827048105192714869977396164648563868506535456266427596898809253516883151503967368702537933942111249138952236987791848421028262284467184543527771884452158871698923506947373428037484420080567099278995316533479120798904374854041446480744531417097452901107032031122141673446739967518201086727732721027489897958300075773903975322950920617254620554070243242087149352684063006802697971439071875576045961338162285553007381989449553165435463185107675086648354869360370002405470986299190340525562193691344077622272565710247066704983806165592765321308405390051373489118028470621297435747094440173847704271478780097887761955209951568664731766745625250549804879864834691585518298178232104407145896431168016322883628958999040960490208604933837903732974110176856096494667802763941299478354630839544798495015466551071434308499229318226777223319111916833781261480465393409461496215330108951191489536607167543614277600182790965885406323136910405176850189007848093430402352161474430210990875589455609635949699904765119657325419486340391261516599671459316558049039721577344002444880354836701681370826770410688268511140468465660442991850401381241627678268464910648424613386387255870904790906538929143347376072735778456114391047262583442336061299651364585945793173689903859192243030127139454128542661579200150291479272209591967485879215932008690056272092535073741548934296870993799739907116924072849343528073432779314968576285720164219320098470396604271241313514351016486109185315685651519168020426181811864818973390716812343323321665662034157787190959724763115793483768422549105074219122108529270552265406946607641363649251650325837630167090468838060301239770932111831016876078911022588940240339396696399459558114101261156833244392488986593167076895930019078374666783992666015900352033442733950569874162273660336057430867597135307610891251772149779948564269923256144453162607000791889785892758299795056148219153971410563219363637818360044826257694917208653312904850162009073735004604263395479942336349862090980248381648570507610136307481674526177082148176675666093858273919451060737339914007851974826230999005192965393256414216842048212771185787049238172744293250869135564431761693437807625183508325526500031381438563518125637813503350530682930638807903700956680375638464161495336462639071894349443471135810148490412477311463234752647930671978434971150047071909722870801528091813970952198601724815471427830994855807104148523369422290551834405280529497182800353516769267161593578122833803517814607461280326744223116463652695997371819287584341010988173743084349679800921565795693915752177185485606534341138011916113024986359976349007363364272663120390397307111473922848570366481371827735272446905703410664191928234280144945208646744194507562854123347365714478128318374122539455157248664129582542323893632448844475478054977836679818320177148028464761696427175144723953743692772483583133106167643337548502357737054616960733167055588024920905220027922283967437108522759149700386090557034823065301047440643861524458244200085537259446341200155101941551565479693552526817328354535138215326235021741037842258422767747957249702292997945985509181081115506263701882007177276894180657946734154620472761203208178648810989386446171355625009402304179688948189566575267286824198449568548409636454750632421805706676472697586761334547760816836043046643524366582213720252858059879661866898143768556227628500223150596741632877020528853934261884166274328234737311304313369738940181591641294087510960355621013594787972022148602569717682700453417802286234984280052894215472331859590835737706976171901304529894922986431208175941410928961869787216312186084638810396054213906655124690689647310881293012415424728590002129496932550082936181272897923150740272291949538219852854328202757504809741412475878815448294960915853906011940522420649686118753562070463754320112012476304320509118767329873317835322419824882142659854974640015939546565511505266422168470242128057915711205474209594408152165228820305231225662757327994962864235561677267777182753189138266824513174339377148781385368602875149675384868128291347955979581815256104799429385119092410193746183467347785123450637190775502237950574577141592042235822278759338429479924427868745027472037798740381495390828954169122674357817813210065784293223312859954842032742180941093716926375097969152099343811934683730889102872338927084295964781363619384587892928819925111392104412436996231763377350905396727766275367858538823596556629515023854770037529421493860403824157190400911063609119893917477239959858611998964192075294498896095884480348908555097767547564984395867554600577703238978343932816573672792041104282523778237136219429636991560149612957935167605118262056502317628465261363956760483800829119587919235959933358327209442710978832941597710273049776880132593978079818250675710719638319864235600813459095812941091992956867276769597123120892321808032954387425890370982293165347103164766524237685752681988042383162995047282577090670471002952005403180407999442083314879768044473295792232923384691121857829381942092768743779300911319380811229721378665169163790359686517325538853932318984541614128053505007501715337205788963290017981202234052562148710010759564948474161355234950250423391991822738699365641190624789139704297099092191152875717749990592653184412815392806273622979669787540048893291474824823445471917743619887356857196112483038451885321931624872704606500924444637234851574824343649945820074199622708385434194346716028945966537274787174875033043341672843573090214522546202225814235988616962865607453804659854670844571607970340354791741843066037355543570831467772875878094120009973843538329930269136443462213933098570827757188641013458155870050685491687590978471222766997487581080696413529516844336685882711747113598208126938870142310800079005056832924671584913415653266330633006071459515268936804185764481544668663692858473738163099002769134413616767419579753362908049822902051352416336989062571346712258057184432354337152818320652672632036454356153511841095170262188331551908847827806296807382241350190949127626841211389423018278677130026911737009651047320674939575130057236313685211079382086830607552323631333958763875349378615429912272454504543235579146518757524933018091110449191599845228604195081071465933457189655767347868490444123916779317528289805557109626459896264486679812240204941294247863518627024332761446518855540680211240468929583095177038721727497819169799401689080136035651670674749820107035475697788670589470010253636654707510785210667092624243799226601369544388605175143636935327315587232361391315367554086411246509474794118528626359132777495342923711183073194149791533374783465274802441499903879962003946759996920973796763710108236194649810119829556176249459477984668697044105976195696140310585414356952024641740651092773424712386929105518650803296159154940340974615576411308280980580857127271475817256786424227648404539783849537331415687561993845549599228301225984505283080168723356715106318139823517557356418870799349255931477308106052008192667573347831101606627887966743913266059434233340746750814859204345547787812781850554128001928858413704989720910487556416418965919799018564365288095875052615784128974180986110355637451296807860499861611080625918320943907025558021123401417885400825709181707013724613803324834035680894483991420976707271274570056358098758248760338022640505498862413885808237245518731532354076596258241955326875022829827276654213323588234680867350790799438235679850169893907803258389162407193220890692665117402408506141815844138798067534192147414734891625779306460755265413096222799274209971764797950568482432336356651877309398784448178955835397786470375589498718571369956051713092207221903531487129432328053185159498163020656718740767125496129329014762980410173844766788898067668425859510227649437644481060599331245258236496850375740154446270526834834997778134923041014172521081447362995773055196487376897771812331774714031103153366210639212501839519752550956049910866687938906603241364283967476597759571655827755714441115868649850545058356074714880016548801195356001497555345673969376830552451454444954083400552074261887387813890200247054750918954321848313363885637425316744994201323807297276514489169937000111477600182344887451703587348331328523666701583108056999804212944923662526692952701788307811016517930651795730397659381863955227955136252942183415815999326311217613599343031634757120418625695552800688299363512766326200839148836898905048075811822345446966487583685812249340005825244639461998210492057331340561572870858033133673888883548913254221486654388658634092809461999004305809816892260624248559267631765783810790846444224530992919428304288314891471709472395476721791893556519263290985289751227933615735907473301056729596398428483349572170375929155466306455400034840099840279730192297497476103602538193935209476515253596228178902862316884504085463143399429780020432296086667735074435379664586864742501372066109280612992420586835039534393251672712838812102777588025947013751644376464235094641192032797922599360483253559038400635503457974800244977631665691418072917527037519247445734757668173578724005391177138155056639415785455319228522623810010737421582313226572819020915435016971322132446360171325201451100234625900154869408592447852002603558181295168414410971538071686134226201935105020227224394817456394471866047187486613223582856480942654158433426710610093640259969993474371420041654893867076462602303501613717071950899044511100487912783231436863518102654844518058534664866101638330816158952901230748605324737026796280874648718037371383578130627069728735182885135583600826317714630819561343244482779606807157474078393198440787383617654761292131205019735096121009985125166917360218480392614773611282751247239841642112722271713410478973620951617316729085835108118752501993027483479848989088083002797760539942974213370575279020667282548335078736554849034221966225628848497605347107272553635727743247434674898858161545729775259629358573594436335492331703725457520071110768935262885282285952631810998038450747278805888111276015070195329873219056742397905976284396714761482260700006946931201048820854155359489200789494992051105879030021996813371405748304832981080441664960018203690288229357389241752468248766674253015909470925758543120713358093657529339938472467348298325690572580567016975206887945881692753358280988974017773751265623389452363131204932443243165932906337611096181398804005576825317693120013701789529786081960105263983387523637843020950671627372566128320526600899485689806653449780134365081167964050142400271154751651821789791784777214781981736361826988079016346321631391428492281033242051824987719934217604656092844753590698743453272387652314020130532876115927908366983792903246466084398336993467122432411955846551468965187278235975283937916801450923432653061793992922157510963129813359124038944936394397259774616162534190079400509311419766351395844725455133386738871866000976518981657773980160894814033759889049575621608773472563172096845955413072172162705499544157154983008957975529434955808598167929646607049963648697479464963612263754014629585326201108982618536378328389085563346593332442498769449721236506744133795545717271261082673352065657138390835971127164033306073323258291778637033103156254110841658262709950162801194684274350513627742264265058988666219197765219613573766688390056705863172580894799565367903366432262022911759916968262994215944487479598531956287344666735698132508529371092309910382650882645760419025841175709176061805570480208574930999487231813497362475727026989508143956818327408912238926078273344809274208063003023500182658704708588596201110660920461009748148811974151236859136864083779440889316214275922838846657470225811178002209337666603573276680042931813587936987485322824164479535613257072501009412729526204506839001328367807078384568008123826847014123916496461562140574430485062065142804131890586035240605713333454941365819333461553890459294922742219498320092589833291976569907025671190907106006141356588372380269276723262088717132393865320248103330076018912589307711575750583992254085046372797892227665442830705513066466395194305968173934471294977923720283166627237179972896588329067131731476989626210244171604117581349422335995091616680799166295482034891163602425650107932173824100733124992220124784850075269678823051678971275099772469831433720266513594474461989760808995770980565622675727942307789706992117840967840214139769567941328481057904168327043609065344048252802193076595384905779097041815075285595833822383733870924411669193253760740912182337240983220487134122958851340734051477673888871520004916104032807517811833949911642019018872676477214566098846883601781829105428168031950747902221973499382124004322313963878682447179988948932246364150823269213877987812431209683538843294053847340625761981677857120510647729100761985057416626495845290081147054257682299737861959004096600370897128793749948367001181386813436645691844345010822155508122045564805263383919274022741266455546002417958786327225648553505161724484122041038653920547160804306529996914627821353059766147065127476714571192188382237697478804813570202610516466311496002506346411336952630667558627289353488581016872181805235404827444890647778328145699058855775366406452239893778047057151184409235001865894247627426186731193844270429473002779067355776073343473675126792771130703534384312765045022058169443290692414107398327153537268911492292927181690261916976300793094830305387907274007710417624013770001937137980707054172650414721874628945902839260822700439534718679653677056649420482959579753297710901994370613066246387018644501686230191906739138100339385179084364583778556424946481896230748466511713973945132654153867291680938609811668589403677814364412324166256434148356511665304664403463233930413605547870544738589811486002305322660901120258312007670502671165598422669461255659155948735622940654521511465504410371501553822791198501317269946427457244730250480576892226121158477353174269865055745694633569657054698578421333318201963804845279128562253632294151832068367253417924803459170224512898097622460288237745147280095891632541401232478902960171885134483409412184588123317345679276970464046435833395715639027690804621697800789819659221722551750805486207097540407078265075764900060704947194923689085917088998961622590421414682519552346084755092063404354557158914949017217851803411381285858687680565569297566358727663169953039713097458414987035601673272039854878541679193747627605144361919712987927775027642345653128352407195896909395646184426304087029053288265214913285287862828427278973404259833800015720228892152156476949380129962644974087549862184510477754485303694779041441074036927768693056881200737438691076777598862178427938809838860155683164038081193310554897054221110372896067066835444964458020543850845546482014011334834886932716992804529510147700845748772608995250085104459555436190804014380494874441313017149310101765095363971091257623292166698002176563120990892536356839060500696788600706540141959906586336703863353871504852850881991340568753916641792284720043915804832357192193297183453843119576776252194546967595099513232102650040879824723630498395725882525193773250121379884170577044037826703737435634033028722372345242115216377905953281928470480307700939337662308650267323443244807438913824202368683850784430758376599789254245412625158039449712111498673631267358936433853395819246692720475074652293660674763146371030000352026422063450992299437209819479826692256358162205860004083348657514527784827830899540043058175467554056491097649078743974404673653251616445942925129360955332882359929681707469113027128327590437533808331858465357784659798225204599339669089425968519466852917531305961232476219700745740906316521003726683885220010597732755020592675466171319951882309623882468608960991670467280226709022111083234524393526861299650781152860934841114918577424015349751949818672492321308496830596765455772435425566226766121141401441026883445542873568074269843453985689581626577052834893105370673455568072766767127346148663842310213951173318696909944343594729101709787688592758042075713652406681109144489740981364747904062861430268679945964973444545448379613691835961709880747474246903274914018407543397266174807219414123655521202015969146509309335401306898559074206732994696057187300276753319595931621619533228103221905897410902598061539096272459674677907698950576265460208187258327374775263428820708919137522688962592696442654404051710875745300705437796773578040446150476602017557615517083986512524747783623907585887459687078256184200636648655426993600057431603963350378393543888120493048613125927846068529840364535403005061657847659054198041292328101207123025231278866638098114624777172792876332347277171935377914642020679571554453325417986082456654550134617807942880952824759888772572263164729605769313894711783932752482539699820067704404905727850250319612939765971632754744981790589229940244402676892763444182133612410380136710295225066926015353439991583074796171232129044199848610879448706178520626594207120902579439308961501850514273377868074321206384107252957595890282729979776582803803420630223869478313207680661625057444812628967560627714062020077936048295748036997937220169776425901124221730093712121028244005152961538948404348567793542857934835970478072749859231571471558685104069836212834511298471468992729938245301490283271952398307834837241621165521017428005296125431554616846632659542769015468680086026240187009572225038959846799367562356389959866125996750975713708320264644150818274439234047482419066993352177000880147624585102613289663517011060859434115123695355362377091526564079391252500448773079171450666241626660968739058216494693422222186482904680272446255442558559336602865265746641964332210900316837204192191186719020667244817879056395548447479493940129841862198636566205789665820387430127226350263930743664953704155705194704191768949122676035092479276001284989788075568252550475725593295520091059538124938210003402150740923723027304456335577433526099043870153005523288111920993872846242241141187387129643182032650399062604755791247451124828042939103098726148745706188871186710473846379877894699490533075352220213767993287834387441883222003678990401442435482348318521487238303799481424051816830589923815549558895460097083734916934468647250872642963780435771550940749716564688424200809050659769252278894138580608694759939163806590380751535971705398886400128177740289433158401214047910416855255089302561348835297070157366798868847818479450436070800735805459352721493070444079194429997910175801811275807161910756516811513266246205045838486388207364919793712111506528912914943614667574377190255537429556402355127992844497880886691232368578576821831637372723626911012534031197649420585577173211797779268828210636359592548699148369881624337932152418671340517203309217293905075222878383415355882258056834622323762201218459383376571013551100278588720807336548312990186307403906616095799596378135526905007100803156092355197905715365606289872585133481770301823884581742173499558880510789798304711268123173676068951324779137707864480973782740152424617744906175134219050365257199542013990959757142857000732351992749973559970052083142277115257826696515048328276477658864992272768497103606250611293068921017165798220587453923345374980806802464837802497961352351997784375501459015353255137285646088286768894605760208075292694306364460122635945437168005013955193799986779337422397963451894417386941899549047098067818575282652428793770199244303926513849728432511458576911936829306770576098077578831977538523765270362544677325871388633584677004759274766489030860473597780444621505961447676288057099917567552380671925028605932328583961948124898094137718752838310853142605243696708488577235420638890315366479190494056215110261253582295473442506426882489924973190881590481516473458184816538259448478927790114649463618550710049230028990920356500095129591448921731560714058149282314497614301181816839279608296084998087299927199979334013601947117193073461815337349232625641977730270206157014195783550372940460197963466874134812544722995530355117664429740663851606338933254845283031855731230076325266267454424309081511074525108048858716030987407957349526742086985690933016597385059108048764382949796062623402618701812676686142240250720122320086460822393613204182503164092764327729136655926141013865433784030190484094209036188928281336739071940666391306266565616227985140616060592732845204610994382208009132617460451519882665050037077926241544101904902207752047969560807714842750939131828212392249359354925835029031261912523034399582498531816368370750668695851059348676659275093398144430710271297352698144089990942526408898753704688918757076753841396329595414488729747530334366982402833662648968195272244137942412422015457892922161741034851336912162647704895272678031723369489041429295575156734080979203880686848798829625158084562726150756182290514809017703445133524927944805723735683371677147952662569564972793061582074583766786909026857884847711068091633777116306193743951446133398413721381796774403556208639169179713289159495355166606649224269894522419412651188393236321567165840511839936976693328935428710298277209260362009299482451083138554283527760918454892056660318406604483120990432916371428154221718646041655832904593171911021819019662054573008417591083478400679844520746291602420099558233288475636606229614489574384021025337928558898521367893133575574878353367658472664389605044569390340138227967479677947554781989066853353953982582362465514636573881993851798236632722014664816585666768268940230474908662562777507559060431956674393729540255374057368221213962514737418566584637081711274661576051817077432949111158826569677049087640813779090528646533822896425735696687472603942042071556013003878696075845802978806965714393636736380214039912967206469609967139784632718275247736845958942569607681240045670462191617086680201803253696920335145896708633063867908783257509421257422031330959596719888346829343496658514674522526370417400277088270861862831101474219085062651292288606246533215693285703255513545249431402000447648483297514069656388432506393786602245498819205740823090229446283753212454805085921688616492249738996074878648791453997503271284533211948560698135518908871057193647725827258808060742925982268430892114658772528670874173430689418357385486093032911017529135372746945132865930052110783590998530224896136187983379040349554197391204840891359249148240838019927610053604228246392855576964908428004080763578131022766608615262847735453690236836018751119181624081867141795543288254136983662695240030765646641747952513409034664975087344753096180069544105894932468248131979715469765104029479696116350776027041172761659076287106873247684994675663960893294407274523972101353050095049756117013271876096043864959809268857768550581988944107605506663222330275361678446807628912447195967353726215160922769696640393999884361898170532880698478536288363187914759197116232420603641037405193456283497608032436650676129904148461067804089547405014227748984310869634480454050074757363649720456353557228889832393631647147231609708865775827917326606769739774795250947967337059018286495041773536017261825224621833830511442844959765628479787341721197200052378106416401217676456707885576281804695822017237716171415022127714401298110210408572915124633407385850716605561142509638993522366809049098398806685093398527217283008409659445971457834847271859182398033933658810298037015934210933069763446807500092314652600816256643955142606075157223830100647126137158998006519331086258330819969516070333808743797148725857020741635785114999614818804015767972689835514121396517050181030862996194072373108271028260032083153653495739397509460119163816719925257137557318326259527603525875692140754356486284015567363959865666509855257387615383885692390739207144393124501977336168324599545476571459421331830549826158680045288726141266078770752525846565715828681969822688339048120039877025022684709032023119971235573580166182700678640589524936417581009364495979984718589218267511790076926399594695221990462779635120752352755445224607575477718428450859417390933360532858651546465490349671961677817700305666105542918111402260953202028846443129371352977942914724928495800927506993098066428084634278820041040342434217576009771626099910562090806454542193466038424541329903469211139590796000279723368832810525528505529279101233334366670323855418210330891717542156799854244999384473159705018284405093314628440968579325015009311046388315401888421228900964153025776287547117321596534743627194557339834783969113955567694454236910201547392091390174508477594671841324916246513447655800400490840515415019263377669850114800474749024743735722296430060498469475259018519044961054934992844656174950813072054033966663214572325655652540845826665207841602904342577984392150833382787900606633825591007796807185108756314362544562155960193889632332683119022576999196478903113401808714789702271801794177507691440132771045397288862760019322172165396320442903045806138923744778001408075189364707189723768967651266928132409665854701658625378494638626892207296210112568304567885922868367836761987394544062333521060892696633997578221795110504037653980091083837381637835892643673094912124856613883349028438584346656471423848468042493117542368893473944772992305530597283740988320183085099251607801107290920933032320868427559310487275198209992871247899599646124340907298957143276539022518767070533720811943952191208898003000337998499487242602873515897902338509208273563922188509685399800784635413863198669022175330764860708810011008852632532456036338917218145067214852841474344738021048121812069252841528516396886763478195419624135336149242385768716206792095433819346189038486182692728650368854147835843552665701093560885312252337232332739176939088082970643037872732009949604682253739186503444907385175143944218888725820695307654193713936467095933701785651528496357874016566363333498064200818660728685419581480617634382753847440997628718735729761516887031264924754030418760677698388507252893509548651901786756160126593396727273501374634575476770627034032800595201774638394084900994133865355668032206286851049653797757969755577796585212053268623989942647001951941151094382100813274494405795713235283936477906599488536148131314828225108006506684729923111719413861258386606832145317548268735649686220394596793461917261909197293732459123799307156347993633927832686674019204958342758248737573936431665994283476467855165199378850966787385506628328843432236553492407406554497230758102459357511935823702062700964131775555121315724206018603368728355509874286009774846861255450229781702705545073970049003149522063069444468161939102290095685621459793044297074270435997339906150592108805138051629921725385965030736378909934572489793390758476856795347016121289279155876474444986632483553621028481872650756101361800213573315085512124511466240356707956073553307397403775943976033375240416986734785684063104090364918721020001775520969052123783397854697217246375847242164750306919388133599257615718546076782884631603810693072567420026197900655368806680910416022121921486914885569624747816767992637196640321427521165661636604496183839261518644592810156082047711488428085832950102797139508984436725931786612451115508150476968364301906921618850676669256636884389455149547298549221534949494216038275693971686252586643610678741453259717175224374850062569816812061297630257269991795838086442456526157147615620249746122493616949815941506660567082918019980726345789857219168962068177768858588830845095159852122736611951449419876547205003446795816900195819884158772471225162015175478106483538287518010283853973969388622215377590666585524087767146903250028942276619619301531658438810178534614960130913228867769660250231918940587989246433817029740466401598574013427237729509322875656987218863076899292929333138481341800691647068870428086833629407642775370849096215141961982584983569269143010212334233123725845952525048496741934123783124890771719658830267946747725761846859331988990815315537589513131520977070470945282119949451030356573968315532387865430362693273237342308172562365374333876331917248066232023179176467320534621531684505573565430492998454087928731274634311206922793178424306750625239629360955535524043269540341003513329075623563865810506137975996295412828011050193513677809555077508195758512134772948002214726351346378823616617881511397440472495792927396679303088929167535463791124111729298996871298709171693019392073532778329593057060250452171023248265622768884558311524838903664811956046148464076469090220223512524981893309568904922312678500362582429139462916052495743440254580419705909210287068938256155936262986971735218401402064890619780823168523158936716641142127260770991885931319503429608790080709089889197513312883130499148997936450868435219967727931761749645699908155730604060824268797654959714390286626032119735178894951794557397714563414614503963290937272637647697072433234163667712245432141619756068544849165778998358141297686500075718664951575138338335109440061173609571138124242240747209878325450269981586372750440920101407749345361543171291276293424766921446642890956865296338594217002693655717495915197673795050429819231474755683865637000400465394670061331801441312402529561816999942312629674037988802943138170590130350717077176099585133149922500657046000726780326180412282853792008342728761727761472110942980589736226386041710986515928091014917005337519759240265004022886399292185722106444643333902517139010242219960565320759151524491513808660516307859898599498459276187349553575160649008211726180243503410762842930507569865874518502192038608732499845138240301256507472808855531931823772705377363810368849558814925351610722233983980768987138747957514251245993624596215344347065993626445888305493423922988840437623779267267960666335338242201615420638550113148409945817305620088073505315884477918282614983162923743548831040883232682457435224856242871388390375825504499358448589427470229897473770631517780629204979719184889251117454301976334738266381731597170249614690086244361389429909361726549768688822717766111290516009396042258239043716384295901212010598866682890799057272856331341338651593110503615990522024039567008877872080744842979603572508445097160652458858462607434056769568943917246945851078966958763888040130170689936852332867923868556860961279732268682382611222311445805505838860726872320022491962959870683826403373030813985104153697803199472366293065611729755889229008722748786523661756533089970699513262371088752019179973577308884664769107668001502361878965590199288393441519149076986296749821241227728976771697824735206473856236168864418411575870539248460158661108251345151387567626539204894464517029170829896198285395688273352033837753544646918257067812721394068565003018245012152225473827271741712340332049152552806829599337349738022928134629196300757557082463145728370653901322185339041344742012115879197168960627379804559254568116156196531876635743373829097209909923367997019644944752794813020141747839351412068769199176296304838493475266740645479482290637883285815065017955024707639563846573710589724898405439348841230888672956462342159667844025155568365054895176537280051935784810214844304525963286311889872081845494393600725809882300745096674626187186093552931948822506020728025673081041123642243502314603232587768132027440441819492277309402583788924658973535750713402924212163292838573130533498899577297501505234068109723510102908684118030049331321834716881268665422295046115265771055336855106071907775335671039974492047765309572549197512439706958121645294554037615733458917286392527600535818654424008829479200769843576897292158072097846710805595084311807467342583559534624567750790905251307853348904021432497226892042198078114334275287612594676482325367298346145136624904833033012142273863044170194870349459604983352233274989102770451631718195222819705381452876428405723217505932813774327435725044195837927431448906030498022706034374409457934230597849090485285101337892440849094780430299454413516547234717122912963103742871139139088999821531975659199465919186575788910228420997965332838383835699573922481983990599142497651611464307639295044518705123708852782010429810719534815637184606093133280129143494247501041975208011238909020144237541166280964146811199754085687316654258639210821013175432829095929936344907429274390302980588150854211424934856013228900687391734675943095906104288356237435116369189077971662890987821796302263365342044396303682444553164713487037304099153886388890275377461189841775243197496972468847918474929584909243012288554233021093681183290483389279834147646798271534848764174657378990713902707463043079534546800328956689883361153230710948138936103814085211252817833098261619400190653989617802481407013374196959368889048245928420142636378783288379360430599409324916395922113872846330009029568389088115358361351903474720544703895304520034680077167075311150882523401129627202973366848245173199054594252726176131046525099820421301994591204380717653180243441719038745287847612756316109639195876248820525405083145479815860824337345844181554855375332463724600139225325483552204757486120112487125044978265070114820852271217747975058895888735378386161641410237773358562338878539772118392110021751132271963779505877214426482082393805057516875922316431694696170585837590143942975272609080464323502429249967639153873321854885160521697883823757832906938124156387897877744429656277296529431660397861650260143129150315006631887762087473497815610908513763103810091845763348740836597813357054838783280889333090324276831216057492991659543154902887670272067721131641213731115599272171574567997575780478062227419630955968395805490849177844180495052924571811667370952313243933840100983413812782166729484371013888551726947189280176900561704968588540695956515206927583673909206071504580216185253885585307243081809731736196435058019008968483774213422295845849452610948028475911607642024358878637847113283074457799146530941792348666068235323146291444454651672755331865813444043667670345751404699098010559293562710658528506708996135076416781968114918168413545916712679055315796882880244916907071047830683152922638078424102134140734524838443338472088050212012804991168611269982208580648318846270743949478412494630862542266679857898217612989645201593632547805051995001087720937643030042867592721928853819667842771044311990944937561195172906969759186969065831702774161379516519844858302679380687576842395793040196442192056999264439010186516985694490898571046068483278472237354665980355510461716445826670107687985792136056918649414384518579556315108662244399294051865539941249445379384899777317763571570981291387332574006151023856709093696249042616801934190837738084057329958085762227781533924269368671504651614778622232227261994078747785893830066216045135314693430986342597883914949959533706920221115220584202258382211014631956084995192155163094389398912298822561728820805838507228539603584376427741002223004333000615298703284569234093983431319577971857589429704077017002552262052252529836522688883480548082690173186008751479192030998129967137203555208590511223503907502662184620893983885089265407367848529525535292454377643195218084054937342066128088334720981135834457471950284538045164943339552246602442174633297793393143873191867319486301454770109085780912950920552469660620860007807651878880756615424599206094966026687710467901881213102135253036909928926487334727016719888161159097296083866371560014915804507271472276973673019713281234118594773211134837617263170070143026056732258525574559094359461257192512430139935013509159363170246050073745513223660879558540598506535989228693028697694178144887714299576924269138643310754233269288638709653617221145278494776660936657746486632538862382408232158983526150840007233144805787264599169172815701395995545194418029715373313081029693332553452145291987507129981031155898355131908954557325598068878696546739088861858170409528883434391231521049264724982462796836851289312562468084212949547408489098590613837923969151684098749635384161264225218669620879242079513973601137143176749975100330215270924094862747863803173702296410461938088052559398206530605702611488622537146065903996228812863480720536004952810093293419545216312078793230358212891257992318870071645278466426551612765549221804847054430003150851658219874336932656971962613708684710858579108299515943321224003822906920193806652324492021253379402028651003716403174963536225161019635153664862036841794519252315629257772573497136679135650448436861610179079952471888131607538064963977770710930902143264995728247155773515534982398023283705790654978489616152967167577735960199686942837999539494183919878434454633140921940711767799437038216312370284898935830645801544116265388582049848047812458970340781655023401825326244986030682581007271335666019952447872119316180354487463536900964666538961761893685644013662580345436594586832970399302201704710408001218899913163342824717736536183328387575496155738935691027997201665666331581530508014340064208538071546597473102547288772859272338123489940524398444329513213653963229315256452579813696739183449065141449764281074448455714545057065309637152429047208823177575895049477104973720125492824513856022160709451862448104607485704630091794612073999567101296636988089288506065643642980570368392996456222693890753392793780360470271030058027332945110130936650019506383267855497375863837575838344578579404112284033686342927320415742258483362088936287810104881117890623199460592596441266470187236361841656358063058849227438068194899734931959312007484793925697430747307439489560344363850954298316945414777664127774848562372499164543763036837184489796832258467337385313623582505149971725791935670837822092767420816028984518644147917996957593720715975842476770512097537910172558400698786695602047494400503011825615484585380284611690165587645888191941207463672853721094470539149553154756852134092296466338729820755008355146238042419209943203542830706279545589129501980037382788853906786324583022910892993038282196825101253271525301640775956362610060185695406995690311220747138633607548634379413406312978662009429674989676056786099074223848590108253960824221964434930309278169158763121131107870244317462973357354484972517140122808320809374681064687338501407166838665597834704392468405891769526557592002470742606354381694896292133667152301590697168674590006108444781626053575035151993698256483343914780854466285333036283273121830623010936450210876857901770658226100961663943983315359824013057205797338613975205753140069700235727471332227267851636027109490814221357276550540991150481463425673739891927753327619794557289623704728177566246486141796105750501574116930609077699629849313845557116476199269678627823845364684041582646537306096309374047059512370994812856772399874778942955697170673697665059119890519216564334844983870699894002151257936360574622988905717919833450564981781592265878806440458347109349096144500328770442077211876560128214607596556065072438498647087243314917928622755061118797101999651056644131604911914640848673464977905292519042657466358599851885954193117657445452298153343638109643350358643980816440519348266370247059264499731925191958137997260827823383187441604766658943428613849277947882730730485744115688727053650018350268300015358266949986001489384779138392239254185033128916655455935796392232910040172308444293629395088797025985149764621719349293722647819292965809196154865606715628819719070166707319943083422126818726616219389727592436937587907213855402628041039060460027357560484463813962962912406293805962012621537872629790868024197438962642260533018552715194474974530971937636105984732314837133486454775043246093542783049571196297829993989212948859492356752333185239203824174197613348580434050701646561128306210532764285556376366438224340199193823055337465177659040227364202772413533928607793280683952594097659467566582868709319367927757067402571156024055609470212363861584565217781105871468089046393305654828330951064960407841336787464574316860221615563033913557673809966735498393771723499852794856658082558502583533495495119532362491553133648132901929477250659373623449767034158049649887870283469304254451948365891912368762457727763391571148940924338209686704271401786910707456789121752342931499417901675780494115532806590646757620069134736079721114667766417073294943582760640593866660002717254324926116375389232078159684592655518185718808701786403377579413919671430193718110239614105008133240855372539830989849454196469761976742176074970479394053492656869502999409367862144400108302206233614210179183236266114616099398181920548864781455836003387107828397862694711416078720015194197406612928142929939922710955983919253887304743967258122822122964822857918177938356027249604049262082709100991421482388529911892315418070615275008414119196390790570962758489395836566467789484978352656163447761287529873396865838670208992056057701324010847600544073142744071484846763124759767279936758955503289106016699544990996847390405223634610714405563636081774952918020000689062026942521318226171632834770322949596834484567740160251752140783816544868342942609400683935132570171250476452241380404594624177927626128643990097380306901215042078583566734058135471197325012033134001802403093885754366378711710843456973569613638977678758646252331490820110117266650373019584155634715343641183699542987583459399288532887802376263587604476001486257066230632954519424539571176550043733466749253599817484926942717831574252649389210986311587083350896185882693470496458342747689791626646393987489870528941595005243484737863486926883269069652924334941343585552722805681117573277063255438472235360146668639342875290358398353414175703042164237924097937431264173869842077827893342288680985250819927344991946026934778492755102434569498324732063955198239668658034393341129159961443811682447824035302617123171155656204255886489116794116580494519309494755943685258214393662720067395032410653776050872166556039032257150600646709859464216648774592300460954798037306082538716551520572839904252924242763286841353535501751218372655425618981023223619526592107181297858687011764781810590584584490268596384221550331845781944637472632809710842516009050967844205589945520502504427087000059880530103939292943559878615010879897115442049078044297374799103477422054301634118776133442074498263732968233414479019647462126966243501763468746522699200524355705892056530570500120857603620522627890119634395003648089888983183622024527042009546991087238178512459332432103542781803995001087005358026448459235575819382950237248825866507915567927139292975229471334405558901201843906806268915865267036612336798423093095952626412206836688194319251943143290514187108964405808927671484716445426703161178350498697733460554517148617274276030320439013753164341047521017384746937065789343004242960403472298797702406018794790427866836233595049435641274255725504711819978659333759271307600229276166910807567194751022329979128998070510536913223014838603155541174890365149398817568019828262900666713134628228231186232469466685805618509898087927925135572873590235631197768490228609763901418042414611411382575499584504392482906232112700897807146939826138653235246258698386521855711524716133854947509116773624937680872241159921755542825815736280220695061530274912840252036910371757410308745754782218794000983721436114917572037496821101114881578069708064284322570163588973910356503799322020971224717518164092734024325435614702330204801851916875173022622855053209281787281120480378736335329913988842163384272870868817872708265351111150367670857561087644890977112646920634679758787737271157671313305254584004494479781634243121550386313558660464703835870165619030585234646871476208316895763792796208995523632207375534885040038621454697288726948438791018994260242230380905842747627664378904854584965569545686945178163431841910496708758711791347384342385915049708576331749378516091070293749921992349958365196578400089468314606384612015467362204041258373098273492938003461164210603210440265126524995337760343018911225562054018665758906774520968200620605856917726960422838328524349299611511876413612526919398561416745990230861629131725364970058783973731606881488975020603772303493703174805469829677532043930362569446236864412896780578037234009581426566408596897344612266856823340469981192518683803295974036852764617065218453358793819900978995925626372332095805411476448714210110707543168601446477337844599000768651919135233392042521173448132085561919570280506134730223465743450533254769630514086281173289380428141851173403409313077844262842799236987423324089792889828090622566284136678882462579516059982230304931865491012991608670771689094512697188568315313434257903718493747058467739262892920017868073805154008231740529986817596278961533624835891802535835289859465477601122786510104866350666237152484651632703253842723317126202777401528512077367444972486074129924037972817587335724254217939701232296907789050908171791324107077929505977711977531664658065027587318453730023145286353210811399412290755673948716862573440924484752326448045140870337932819867373488092050506047391583995896838767343685645700200346055028351626021692914524002913057014424329432973142076701708836060364385808636247131141353503120931473542473018477134413917737973661042781666336743377429479499494165522333438385208362994056025967935562446992851619308010004102980136644994706450292820943479727540959947836479426739454128649948985791883638843666745993485058631358408115075533802089455200509043199449391186234860321017692953265327911613190399648128752622082518534008987092960488954760823906030713448394183157707879731627440870371499213951839844170621045187330059813511347047388889202361692765436547997428477113718225056854215519083732342726132128818319953959352003015883616643695413103990179189004110030616063574790221444715558034996332511692379977185465783347729716658151964171742917456758859452135468692658860395416393565230904779724973412018722443280010852126759764340710294155328756785701307937303358407141305498030629360191225521385758055925805886918685088548024905633070581138355496417327602349221025212553909088890961494059879459600216639609148860978081455059891574842330370598423539606653598766863443886505408676339048931620320166200628366854519800615582759133545468307738170393219808375201212368148239916122380673735170161550805447888618309986212918634072412939094307769169112064051756874384381773013880548708992228235112273747705717964757969748021198091089733045807481804495727930441132847300451853566483370383901999036295212183938551934393547426998148812117841734693823450016323502281332668296786400893846451998547885100219669998880059608731541054999776116116733056974086214877782608371783039742217508950344655602873962021812528512949386731128201225397045015166918927173880039371684159768068034752657271261123969619704465649964609575768564600762833660965878068968210246390732751636414136257845500999947494380780947961240855820441832999338061235451255777137208198921633284374211817285775461575827822156460252563419420790772136543466778755405072237973649949158061785563485746586297221192279438680348582981047980069143069290589097801913666621363393489167913111477937490283614671693859700060825113407262131294123116149209668917617144947369540539628984860420445182959396913149735780832916296276119197447600100003464444397665412110944966365035962829818585042388593029550367167774735346127284772731164671392648119324051313574113342588734842326827704294928716986879806406482937631216550358599106141921825173427261713008119697133860660560855346397718586864937910149815884879813156616059388273438843484997311108479100588061595664283755214211580065873795166333536975001092103010515644741455361353460766775261120553549762390290723866007275879382700396444426046276006951757863126965175646537862314603612188172127779167779706590307193868900853141514706001248581098676748586887785349811734130484898876071850542753546954993296226983385128642693106517931505727704041271015349259624293740696156916608932995226073975558685680184939924137679650785582049186232999183179484902459656834772174446132501779122258300191337812062945519709065622417767185138439349724026468044472169690453157303770503834181068207713738809518486933988288022805065846868750699043846541147762025937740605277815097099090230877368247320283133594332177517381592221953677256531180061575642564448855336472324099616249719517032127937512221981514539366016875778506955533721430730531206684288168417808207011176812064483121026595933193558936508056166614592077750270380320487756458331044106557618512418436183762149119546955083794237340998663866463600475465972748632964785806639865122272264277089133560019141167550259023352256102065880108777581015559504036956536639256249310302927704498132938135322571456639833809784182555300417172093328135566158632118532068512011089656582153746795732591094302213739465521066777939939813612213028448356374676039802254729912994076060288635867901933448759962980293222065332323088191574123675058713372216258506376941131507462622160371748088958584978639292778204943848436321325555481517610374294355593203207880359447735874727066929677694949867758000615516281947198180608019452353997866518522404101548754931792418726904941454790462838170265485331927986094885291305821176573446278434255197013538904227532004181030949766909677204910700701881354811567535970068138012366344445530223897241070614132341464884066812688548934539049120607907559363925235852580662307877127255461369496254678145128330825255557261968066042943049744549095291120727952101990056641343367963942074163508254055679650472325923516257601062513439270369728751163810981695341072238502986488539991521657085868207484186602178129592004315887670422566347719340655079223036908995542380114234314919804431149068065031707871303130969959456481163756625758817546259281203097936790760011089988814701353192994723005672462264013459131165894578273421330202173179260704952383085146254887351617256470449183270350705776746360548445771101837833093760626365646624178185386294310976111987960254814491890203178426267430503547067519212445972173422041481812963630719784371596236362071440231109205021571493568733498802786055688777788321538581673096355378880745502337860778581025847596571823623853436260984162658283776009149032756528518659108412030587913968907502159669793216416860169300380591685825580840573407392555641327577923951386980320943857206165240016636151538202460814240749629905845887054165198278813391638180831872607648135650326423510861287815548842021189370067877726234570258555093246755761824343795841865784458781418852105823885447028390772875213249676520565688695031128068216125216032396597417675500654135684964562355754739523259442689830499472443087124039548134895350743603581875012253204390484210038440527156444847044068512992256949071087656066401489712888780776312011191475530093174998724794264107613248237736396441751481499192854711228805395579579116624943288247668986471677107386025603112228687108425414062313605594610040901869242702411437502610675011216058062460455858356555033190443839172977997592486048817156554921207831131469073161014362053454668160953155276576450959882953766397288657969453979124137562738217642383764879607702130476560082742717744155852959377827038773824634469716249896534747052530881252251879041262670141936398604113453630356078680466461858874190479762454329924811820397257677076126973490494438448269640068175845384580417016701233959910169004292911873636128675409271353487801813160419861910495002309754056117098902846226362582154227414398193685862579721960565859203002279036885974435176911943190808934324684655771036695307141118842150796754708082111793759721318832829159875769471654197071469136680021027978653721448492878728984544820846047961254367121759641422736853682766070556784082026574206101626289828951919065883882938865657648067942673975088041722304300212228828515805775247619878097305704467571174003925392694405498199054827890623637547429575672753289456592047034454550928282338658955754222156016612120564933017518151176084981173514963826692595695053839801283465097754517960425324625848505554529692355358546674903212703500835517065553186312670347868237776393464031725527649081195083331623250976088172897968842208982953411824315850477532644566133008420940484696647286531449543500729924043906790748609984091000142601128558920404416238885683249844961519164583909065368979519548446053015172009799331282964397312851540583344204841061130062186503284939123596551889579572419501736430115869448293081734213931016829649087073750780020500448098107187831636637892100434180124350739437087315409057346243905059033576577320892971043830242645258041965885422419642771045230207098791031175894465823021999213395324585522534908866460126568345284500037069438001503355177254224015744744011636719139506612252486565641151146596328294595541141514073373615846292065239110132220247927000097360605373184571973004059262315422694997681533535122494786005717435357091763083603944205565795237894366070727472280184890248537630905388576648853472704696534672664936012249743934293139743233156886543250214525966974376316285132051454838668731284231187754599700692049980455342658316628989568440015289288343587154960538325761433822342869412432971517829963495619535859544932266019254482225486162881751090013862251409282697984651844682508521548026689599379592801355391305068688703735258892826116111916917050672064872365365314322102242971933026051058601403204029338319162787940956722085756742267617856616253430973284881176546772894932246042490113458328937388506366175986487791358691647210391170617188757497709983698887575463876674673465542643288723341201526833869092383622286813449565323591286406245645670291534694666626438721715164927718141643939181519555360891629393333302991934707491850230528377776950842322513861332853917332340552603241657530031649418612740294526611187250041372825018055986623115927952629580511479224602921439845086841722901501512942531954633940851959806061528107913896786541157945125268822742257807453505749598117980325373055352536450156871187790262579431465817819460872689051675165027927106082388321368826421591363252908857314851949359841552829746633796432688115396000899423434341903077609578750818485752027438830720138177942870583920127134134280180083344982209926664118727587844382887556496291041737552998557450729270426393444707332533867556369550347748099105564638294184961081865053898763668905386755019238144591848032992559107595956381899035657199107071723400259795425252530455415705210183853300104318313141596627014965587151027761561573183849834912906017150071869025744157909925817347097336373212126465930084366827208750608931458747355265716163411462650893533968028549668094305803021612357249380951061940792635235743978023141040577295707998489265861924930844647861656062497492103009074136201944171443456280174606730034905598982324477018304120755850873844945219562155170558141343297562421214258802631876949282393535668361380509592525790267112504786667615078681185190171787373974627776848362225667313120724124945290397743875032296114632756916903449627998929227752958626258232258069334571965246559290841861648394445525876490804477045090910771352311329629703800586159464278879197151463440234543329941994585497116387264937065850422918048160405464210755700879561036726707766382914548322054644801410718272474346501368743122125727857968253953174158629877907539004947187622162731190917454114525287730854751936086785674999428690209676856319253197695766374264101922023247236430819001297482972548699780269490666054392213607630517625388530306342879687510000350486651903616221510413362796909959327376165392508283756616145492294400099505694974553462866935943494606843335137786220576807460225330036564287570736265646926488732583789052229214467911789676821570671589985032760144848570972384826055658895433344967026033637461772951661518567899838468081380123039154972184762933474269499734419246275690593177211970533777321188130144224286342374759307382127460693733830590994956320563373752483579979943270963408659278359337656371110824213566192955082948274377898610230268543122625991274071422200528476946969103377821218243783140678107038501495091179800686418591967757557123474293332796676833297312572402172569139162706346664504130136010414076598534236922617365793969009812979302380552033556026695287920775653654185903442243469528488602424993358908439629242512056204045165987755283953068810512454244075017905220722327725359210489250858854963542271101928144283555870716032366249249514255462814132880987019812886585622974618607343238739806973321484388049490179221733546845886892132401706590867662739884664130076896911638665872602912795145227299398300768787406336447520524695804685676995478235077166957842463382978522770888427108531308021658401719888465392392586151096388220535435186523210077005204402149535075154038704746649865078547647149802746152445709439617721732200911947521321564356116572530125574298491353139703873652692383241365848131190172615903136711796632646018123849557525736226527750787450791125174285632920632103865692811817926950739999839161307384073771328514744943619846164177844107974088643029009705406345860064153867942759353972480530653146255562407943953174881669254313346146155915752064091346484869928881779139564206133602877814511470162202560106787623288966720993303165540773076341128262152404436332371622079661668131677053737338147340008484283084954258592121166352614226211772520590243132762098830957088136366656851930498894255123965345450439603955223877983879750616124142036082891419121682370984507208412946025822096094812369286333159656521040322689632408864226409205209613670505828958173750607358438023037254314273114879298197411145365408136382237868649599365681251926632603492459527955230281466180933881455603407305972123455239255173868271293108077361655278865877260449565575770739464896961729520714681254377428458237823044966599267326926996549124128801482215256464335957508063926156714781920241743378362932942197711148048195217024883037831038542866661000104456092215333147242875977672280967139078203946005704382063495471192940267384493188293416856050674739539813139508606893623972421870005026836620861811839280283688189304156967536641096929523050958762245576230762426035296704020597970387727157917302863829864529102768371429485314552827930043861703536377819599765096209377784561572067170578406908955577117224259235150314242832961355052092737496943472498666547070590613517999833323362070460894873844318982621618832455918929249022891199930152043026032878662476610215464179007167932149018376708313148752385467633461877093288086771316976346247458773409122268533566666822061396621680193123784778885712624573212192935145019948482404899719712003092515931436641867574572948981374254511990041417614042803372396572582965113930705038230857999107994891987267139631422461843308456406520704471973830880297577610162656923209378486047339033498406980728778741589704475191836885983620935860285241277859880258332460640447743232710486104447643276074623745228442672105644238476617757346211400013858169541425292796770594820239136813065241255798430531802375450099725659686289992308410616972167753774969066912596383689682021625393188111543893796576220741658910257705218595272836491135333422810275858024272706301252683418457089069940551460147784451152249063667594071587270675389341698241612436877935816881419394758760009814520732304175160558907573878592189195775110358877028499269175000948409929127015187815651011988882934918728220308696189899105735704985720367839986826135116496795719564083492530179469750434409524335780819596463336376353222393664526303596648163126696424656766802706890908905999920524942853516203262147292112455229818522758623792723409358700411913878430221116380050833848589079014024559770447076061339143947784375879942989740885663265668730235973255865118743219160924278472787583460129632957054693674261673889012483894304021882732545978254325992813348026984307977245460599336534509864070232866244563283596847192484034787194230375942173698251562089633848645592213577062079948861632140090193285968465860176119625640465439850543834698838875112419533335281308953787765735796623207388310007914696457588535701948846990756843613884635782114964263806473805040280429678513377383855472684835992620626004601161354272327425771687815595107864605263367998398856651146328585301369171029896180591502831678826621447422470465700531843505886520880109150370310265049911439423325731353729383207511320196157442081908480917223269647830138940116725885078257474182510438714829767273340422510473956689316866424044274880779530662291699769585507737966310280567633082183094650538206991950441570942840207782976498144255998954867583429867522810706536796461451935466359350680639865960726165768536478913303166143160836453883944884357790009765183048117543109017514226192143282240085270117721723954754002427187481466079866740237376838862599266996149252250198355651220209447042554977807481865000830554916165655188727020068435669579913424239797489177433481574255094534404567524930700403375895588880086293295591923362711474737125872766316407838568578902426088975796381811319959554836671196542347750041436538457094293235078498508176971813994220250378581216549930822486872096295505373363670855531333451191804374529682522604621141425113222349953107371323298031266644756039010534371623515936807766838916465107924296806206199721821922239086493924414553758864064172058846623650414515120243492576873496335659901537962503377780206658505148562431550457798332999161876282355672102238923456975559429417022076955019355627264715618073270562700902235534383249066073887941511336544761172684638336873834928475279389284156459925768156443195307312135029066040889095544313840848035519253349444363899608847211914539991064162676038924900850956144677924266647597123145088346766602836321238536750157096176515616521954774154049888472313534850789007550725205651076592356916238054401162834004577155423122792137665718775020096739452051519673619522362909518119112310953953100052201429468647697936846942594138108242898701467355026278451064173036176949888258786668039878414349200159336090868493076989813790670654056767804622041784183131002844454201542215801036619765123888991008189497664389128996802909540172100375675526055709504728429650224881224463361634617386764163444913422806068440466409930753327072771861127099502844329580030063967779944358387855873112890440736628190681447328208998071809141200976200289301123193570009068389166545964173616513176676814459058941690894022773884787204179716120952863760542435135544941299935676577004289268085204599586310400580228502768944795627068396729814669849944282888300276607110144080677331425109509317702920843457557492005406427290780709511198731149176822475135308958879478690024410421800877169450384914793842138381304206599074903353124423837980112377709814854640640427941848440058265106842059508089096329790380011324518362267624290646566246632635019189633637858453749865958287570158495968983551561084232460331363045037178234528502442788303310659698855541439664088963697097488724205726342361688642568885522093156189312555232930949734667810720416414617657673747336969698508640549212026113575474970640214969282366007123187913243405457801419531326610267884358820720264382135102221173741370263848140298640991491141471664074240743503150018817375963119194356049464479946696929363107880283650862879306634604594340843567293942643073186294716978620578619065605947835111899138998167586939960758501301483788787505391775014838242254049521393106834959113227707010495622772176232757151546399849196857053552871694749884405497519932738501087770230160846035890599055063473972206023011680026374520948825773359125026372670849514443535473892064149017100513666005553286198462157759433754424482829546633356624382561912018728109734468328345216520784568509450760202495312633256718813341706106877952770298961130410779375298223451478576842479414623773004462501713711095071946907147064515404568361338876395226318741862853652830004925632199437501116420938165574592694662920787728130575274860356746067736397765108036832770900254121599551804475875624927922084806380243339015079485603284998030743860692945714251963704623009547517965586222137939443661736170797201225783862452057635117719930205329595874761996312057357426882188767082613676841921738566252253988224549044757745964159956320606694166883714111338781348318324593903478014766700217753150120846511941113017040060973496845360321910237575165335106570909208526427879430599704737392998858410840810037409239335084672431597093447984778542150570560041486797640993068943272398141615499733958594382627532250143570099338145265844447193929117889511933806189796285859050816071762506068715047415064726945904796379149996323704645315982812716108824077900077136522034806350922642678280911098546639115050926556086606784131859835316375893642671273277216709220836841732891794328805746679415674784287683717812943145116968387186357466249093302140271758228719128902748257054418034117905165248393906712228840743736406578183110059559240397392157736196787743360750025354124601354219522533062714107132176644426134677398372938805077527928068015252513701784745549479969227478721458278836433377237290391809165854913765153828125576946579700065033600722426136406552710542838285581813174766570943011628383453378668601330949587482883301123649398084722845788815697082140149199283568194887942507739257948580785930129627994873164432500989549622327734038439538023515817946009937684583635347669232999608670799528637015372420098498722687953096274478426721976742147168057701196609857620806494852783322297207991242074685931189265363518883518229608198991282914112928345393168982866816721138069196401907140684106817159779668664858981796540063922524767483309259869209029448540165471449833657246978107696346093148847005429032456406643854256406147777734359417824385809406382440020462142352164795325032129202051778055835698246629486256037802935945960808224816524466525048546710153641738481447833989275400972784831835865141890893369514605661770672673741449979237232329538939732988630239452310465712012076733383307287829401895714636393132860911296782314945693504459530380797302592893897296408425211672892452790558418363504337120999577782630669188776943015444471492884441074672604867499543600333442458311004313925209776788108780908669212268796168776818183979457482519359662725133051725014332846138786279371223987291689276936519413405525647242649925561712313426650894706527708026914519497413143244620861708694618720564223596804778730058853545559895381314322407939108676203808373730318270257325183812149329260131857329273097655530125088530379676725984987725337205887363899908044056930477065859883394500692864403167486433773110531786422788210876944419420697276792360033137252215245433374416240620925575366598595263551525202218783417683329653898943368208111053222551642083729085317785391969042566626020610777521124827391305980853214321079980896129443852996097659822240627502628747668357573221619450028002835959564527329469897353384470610033563483817668028456310933236781348671544061048565791869989115443708091989054609654427033583440551288547469214935972191036159498711204483069318426182915040912144905728835904448170902968111700825218762544839539150188753757266750778285566371419303456805243582623999522897362976470969807419379199964975718336215324506798069225207270907081460255071407716134587426732916253396020792988526759386803017265844024503578451958191243105951892639635073323332500037397976556959873632154624027395376154469886825489318717786162448884012014366373088823766257087262674727257055387955597184563928521915417605740993484931531404692727545881095314399923305983296946807733575073369287162603401357728392064229510129102854933696218777097938330169770505838801580917340612858791136110411483049943159445466011513777838704197229255051875591212451654672434916455357373672746858316636727367141627094425284396617300445350891747702650524568689416903651337843225517496236512759639060928054307130351438309979320321382644709283434372228302956663421315772678233908958328552128067617176881714930013557931818675244087731714442745014794286074122131202832158024206917482847854184189264214456128730036286695916629027725949803889883081121001108113696343343114521020774941266632409783651583818947741215571765994463723659682348078637396281555146363971842929117217269039928310284835937577622066646876537066252258261769356613392079656391805998879992207897069258655294570558877876032153066900669689698314983339313042077593084840072466306788816029221232737178468831140077118682328138564790564510772942615318100729867599774357588684358558384732944508246073153136786415795170835615531216933293646905311754189395875450173062525859820588630593638841891475542383841102507229434001850228773111798058670303236016458720787491175674130950261942596054707070394693065352576295959777955794937226415059473599162702605606675563339943506954323961096624394443378612072540293194240574815737216231792303993231897239246690180592290652576456773768328761720972995715388745270496459472052692210870342511775182595408269410143682813665625029714720090018748256677828247926829720315281467248550352453002138307418631963175134229706351741252851592046218912363073694209353181161210007857250106889795439920421591318107352861889214398083649879399144053633239958911250145170799527706850944827445713148377771799150482430969727836933345328124077904719860285654814137570439325323671135140936030698983235715228314656698375961146906066376094232833990028845807530953774415783646346732779392173157061870445708295718735899912035787809975957286795312617837682017819386820489242919122131417078223019054138908167173394760056547035034047071640709788677757914777180675826596044426867468578143953458504444340374544570964019632372977720976524368926580650033289524070140209682193329230660715710953514184324677699831063171161380741758214570999156719509382362222269236371699009528282631339575619250877065433064411233021556299040417032459418276165063495042655429346572065466127007328413188246589211951142944881276254997864501028999018535265874977161586399576220585676022890197886623368561166106719059144345699556027868566906818634866342805895233957262651215672124517320598915428783951561767522183222570469857944408374730049182456133428315952291542994452321664676039695337343773958246364448801270576695398084926745264047327166099487318163876418898509119471740454728720083623222398653220077450451311604530637898792885865063952580649705366759424710600818534963807494292093059421773016304619059207728855426170309849086443375861435049880589855728129122071629328820236275875390666992752740933730033170914120351974529508165003156539732798952553137458830762795909668962603548479067300168770399126707946894008329080121366802190178665360388520902021530110831074319794740064295978021708679969965274431254796234758498439279614305984915038641770649889465827102920639818665326951250033445725650983696201632546459621395947061358349323228865182148267302619176655672583094918479251484064081937020685013072858425182855887880753911494828944707110528882563775832192080962462604464983946762805171563385065520922096868191305880808898337039806883144929963646553265226283386116250953895331851526325940178507770064559179056398334318913070632558391402200634869633604134744082960209893283351263059961841470464892191193194695733466819311760395011143893941594193492519114660754796742232879914544939209412254071627823834427009803477100524285303500931109329747211410580949615928233942895436558337869237949386282497548227250696042887837348171132586829049598009816170851562777296574869871212860724398251557628729898602771067823627880814664849676713712751597756113159343504342840735845830456468910583836080385959712757537601903434018722775941235546878818343479281481813618182193230801027587524719563058461185312438173669869536859321210787615304585274957025539507989847667700309520409572386977151061856765504663540035560952561075273639496143355979456102583945753471530844001395324294664224996035848214827061194689060248138521462577952288184804723642410105887926375090101501117147566852397730611470094660502887634756995004329456880104854261373392238994005960468664744814807624859880106483483378485471314359536529879083064804870650181448034129783626936593838578621473528309472534160815490100353390304079329121842506486887204132121621174330652804605469011770462475760946405438751990724790254029796533773823968042184066330898829083341810915047357531922953411538786560337398927392573623918790751907994907367249442347081914959744108536408985553031212748796083405773172299499314883191417233237309276743879890054871247205045940718420445929076876811143201779912480139836184822213904960911947436683918501316117057215681424005068814679327811195832290653318718363844774998868325579166094682239811401824936893617131252169937596212866626816338882116071832490806064106893057149385378122766307074434403654943041542807483169041769153312238867387011888321432602739405137923363526368715708050842956468149988290226012362712961659079214940842770020191897052233317951416334089501963913498463446930005000279904236023412510170624270666278197831525505546340388579545944106505910873906595163396828886466513964941919919870526452748246135794160912115859158598840874327991433969536394202116720259463142939496727757196583379496969286187063895706022670079049797530351781789948543612432770674245751177255845284040610646081232077928257960538449666902065217666901508193482758899252833602011957097750119995397289046860793170999146261625300582343961445737738187466293187455909742981097660254012963597081412487066521145560603710134330872317079804806107125855001967705592737952277337676739430451486133454391548188745846290047449837860971238334927385000260086133459719457511627394785444804422061064569014781290244885413569636117266306874750208458261736017920806952735220273974590223601304873262776361203601870233778074689744373649423829885750254224413565473533606547339984225792140639156383348467976088285887410621790353956833055168607088486107590180948375253654952587456212306219502968027373950209799748112361593491567553407139530604783504929678889831045490351515974055395367734607039283562777485354305499516978310822496051990186862382156287141375592743854006621954379408606816985313825453693227938731951829457953605454634120721869768089630823744024013880478890132755251297415659697425005293234056743997071250096761504613568114614373645937125673654746080212062824423138993035564647785771439834062862551881875232074147230228471802967555363905017552138681001779673015182356142660351430762184596404106574457764655756514145163451477009677657170599982572320300299730290128845759948737697237319929975017621482885369636478464257640076265124583079422291446857228015010978354747574990885836584334242410633576410128839881166830935352475963330935056302774133561747235634136459440309982532209753149192521090419048012301971102462332612155177938530299124550406725324702140327863496135813348990217974830084835166311468245264572629093091745460119295358926867141974820886155030928952767948615401664841331639864924991232887998368054751847168621318163701314186885679632736053840346228364426102349003239255877713298745982915876829120470435427359571423812005994504450411751888795902686922122235536833177900546605070129725551681796365357280589594319572399124047720498728221697254239879835020366736556229369854296114738288386066195300496340991319965316244895891673520965882665219873914693756205752401237444449695811409771234763390749699666382892371207398891870668405736272972089542970332155750575050302917940286523737319487974853764096510914406434109398444257723031745034561602679901775173145982532873303736238443964311318814673063474664026871685540578672262111808351711967864335777675213248370187302044194009189762919492025993252304342229490849184156922085548185808714424797207351857821331380796022706679195543965467728124215335042227994974527383121073396085399463030011656304679317640231043493853849139753432666221555529805974994165884455893603833714099910503289171713984498417061036831442347121737969295828260719692198210161094119816283486639582082822557525090521319019579071051691676328790815433530463673923846786148056306548872044514318708477020166852568871651705255006161997147323768840321510389318876817913434187227483936167091819808679064019143245246387666715529001859319905727139581354697575827347508729580754662914288142282593008276415297717399901346675872156422239599962026081308328566512240320985154221832862933238548919296375443067579248583857605431735804145661905657960310789262112704746666441080214639856832931591852285687670564233862958145694365829133185775303869105836785557688928860486172582172179258283355573232423968351839096061113897025826972073313441407795843802717627854730680645197371456174347157193821844481878703789747062815804528446615677665873376011233577634977814461097817011647888564463474635749990436047460897237636167742866716634989130439631109730859513730507787424358349151484213799451498792268143654393829317340569780474790000279766528085703808129486038374756207740966949644195299346394615913303369552551430410452029733125686314445724093962902547871116892650783148131993814238691042577495522137390306277547498253733605333557297008568651081199676926836176594084414087771279128184075938233871342495477583544744089580067651093745550034759786813572252687339156864838889237361077340444373836401116833821782995672233555605312474468773648507913013169390501248969876344336012404229092041844552277665291794251199808822908683478977019393438137353200521119301756700841703698784393716363331682087565877496714788422127615014258087396389516892033392831480853950430300845310087345917825748371721953429388746074679804811534166169841276975757908207467789227418944225246849717775617178701855501503625721784240508643558692249834548839863057099477285056674534342705504989570362853322191386628901745232573067363628797518489391270168271495559110264722701062772699310626460652399967222875892956223669127341211135501648074952656848886780831875755038773643067020809519217299556590358717281655212654375010515590971375654618902793890899401042705156167773178571985340888898596924629250382517224865373216299628698695598067431333335410767893636378738332905485734092281631021541443370661640216447840564935651323144802634072208119247275956151874938115083553967472326688166827095109617870011022305439195845466115907377444363572171131654632591148741997964819176371405342473747836228759118741808749340974090862639061798048465814634375751238351127705149977098122127127387385075921405651662717383092468387989853191184639322703256245581979307052706491110319637844903032564268512997438878027010504139617734685846165489180132170716235907895972197847799102483891417147135944584587845441614999376004169267648019792801924072391337931708497373181099783050231945191537617608459132977231164928800385381293645155806815448459058250570693089719081732766522239613703053629315718103932151197040941205087286467375783453482923372066414911052288728416423340900853685551545096065751698658241301738240530298057379678054685775562345057026697091094782635059389517973308777306049159388964714463676740396486124355692238263701876571447184980448633989662490725855631754207164399312873573092100198606387658917475103842786719460837550662639808749946332251179512487055291678864557778529229909118442875545656158603727681815796921645985115513566329718775360826343375846478931505922129093744865731972304215613601720636169241911704888051962091390436870389165470137214168367125955347541427473340864647182605814153778955343107061249037140541669096954478792165287423173266268197624583559401942039232170063273550350245931038097843406931409633079637195522866366963521155838764149335409945553788849073827818268633578082501677923875115724196254712338667015284130555602624592697286292175885366845248958055050704739700170614073935718110559471817842360426424497297753694658970192229683476391036502123632174003830058842991366740286092957060185418116895865960509196118620730642683558945756872073073484055331726638476266315460153855907079027447236844740824212131073587152276369035540741224868095960601990497791682625616100837264110255233197594716599096029970137340633291208076454551453173550080932733274179068160448530840072695703223751894629945266501246563008670406165775149903342333055461230933334498923577747985249991202529306806798931952543820185817853831318057848246395655821279692024542602518474870862496858512170960545084303306208224856188113825152871959495612817017665209401749580914418280463626075524676121076729521507021643633918880550861810406282420900752604178402327852900198839056269015562503725285416316014915490210535478704711147798384086678378923980505534867309071974999762173453953878301190230345282017993819076082047717743632178033959370028385166919871660400816181121911856561152929392220971355882621131673140995156093474832268458156156245652728832148297228745925440612259957068234468870344784001449078208138902171332002356645908520023152301664776338192914453921491553991644588091923354685578903476124626478156041932578330720180062201728007419066182588830019916492255425660800149977069546924943489318376943919368217311659210768621661169106265544177999736064906107977952766628200043988417656089590560426535501107396842358401735385460477585656199098957470814745243691976446706090105849423911012603067255480601682302993583970203241171752398589232813317164314234964221199534643867721089104397850743720516407975837788000367724156865146128500795357132094433661470323168687401700346961571660580689567071847701124277551677583123668450144150816654058300788427273169341954092637475135517133719967936150584705713741949739898482684764376093706578575547498172345057449716848188121268766788200578845211104154595204568662910569274845804684582091034565565792130526680823493750058056861343864497196272655965574930800131960984386414527275166339191832585483172213650254007971179627023581487751968767787170209498867515664796396707198621931372942420327329079216333843157782640217482272540546543353903620239189705597500480644296937181720740316431247217324435999619470466006533454349172047092511386348630952989643253960856485059195083857238112515231721425068990453033074903111364064529116268056322605789155580040680683313098446716955384207625063591395053906259717012729898056262135852420371369158963049226055509965707672478134006025142914812178068670292919134190490522311269770557868952393427733047504546007761932730203224936032732362272774791697818275204701825128311837198857197999228577795917856235732543451369296517709122942361995800519361652732080898418539179751253085260465973908536270515486954175278295740284991093088145263207142803757283268960993089794621599059092458481164166158568126482228443655777200164492006339719097571860564935896456192972982209045798358271679835890994611932232389923371859114725915625702849335211676822650464152339441022718836236770222319477116514726380150464052571775450316517258409091543349989563613258086644314330456583412549496789471888685173587763065250794075610574415661360995276493690447442650947775634122730270632755737933392678190143939893256063404975335129535473409836926419740812127182209649215161769313427319147552405263984269005262894578164251481802489029060980481687716272018147888693066226113116695606943690148859767396790672288608277593249175607421360494214548647649188123680855071736065217173993437862941482370608777742032646330191292450409148242300614470378682741250012025024791957793249095684638187175510955582749157317141189331098308874994045925204908703130791527025336307277367240893277573864323853562434108857152538777347196166358987094030293678398305106659170570948956311895547456198331824039730247481174918250397284402000976893938348526234978771178570005948229185064774922961808765118596616730796415283426059912878497325356496559051562878719836547705760464661967575067841483080311276395945992738750132794701483296221807050044719562799001900708388146063825688316972038361650858159695341668788815158824820419854024022246513404876063714869988284712959601644883368011220519467954360171304332108100293485810608606292767133608997215033516464669114472662153492419745712557096151492403290016119654620293286124083745849250433258954443650251124224675288302250267614202744004123546348565413673849587243164098071584079126566524592410789335827107557397633100504496716163416479868313658671612931397484810894912413997132415782052446285669611647934456007032273117614054661657183529425238392093952070075998320536225441402824111553944849994233127871568831935207346637719479765252831313397205205872798301730278186783915471291003381005333561735015383726298620442419899863706530193308879676407512546273117209893412817431054386799073599658516226274157887895066946929815391837051127346697155351443774844815263700193489734189243538784045072672716545206036222175826060209862186082571678988696611885370897345842440677439850469799711419991458840927083223891882097674028482499415884350933289720697881253910437420330214125692810563663395524965251855087899158127433081797269409184654494557589901960752366912588137175612176720261116416333419693195725941080840045204786747198598939173648819978020782356169821639464785991976026430265529806094165509785296800559486216599155109822299362921101759169867016398896663417332497104569376676691364988918156179450243442623914026818500308541113553907698244261307012932059464578197974579372022961986385031751200933345769831442164787829050850635220543735730905353550071625295216249901714375701771614523360225133376725472400360510511943539231917401849952408463680895028388534315149300360189174296944469402213567232601203679465394420665697815634260491114830548050760712748533230261121282108402486229447648672306323738153803681378320180200866421192326370200180919622949786292209279982204088662351670081627520062940473315258272519866255074961890449992276301328865240640604064804039836519726507819396977297375809945535991452752055553167842111525600171419406579789884458054988487942782416166424019655170496891727648272936653439235065842185857979840514595006192719646467464007894820927695116006050271497419145706927167816160469962252792494139949015033043084587748206079053569825999249461184064099668610841017966322573529685493625586687218339270935400984699366685513404734025797955775846999115366107973528861708598669142296907368624459416150251882477101395341369581378241769403054891640310302690518327781045295208458860576597375002037305939409671003993296499093245231941710519261965340679116215462040057823456140334681592256907390349898274683315759599110361102767780395827892916824498475758789007217932425312633741946333331126911108888559457022003932222544387925881331149493399187511667710009691850077350831987295325009675852659885531355646882764741130029002989185668987939235828137504227710932884696656583462214489567152011066760303682728460837756515151792155925871729739147179882252010599958594852523165315561383467951974162678802252293775405986431537401286536296496286350201036235198545741106495625103024505887985001658213168423577739117700814346665929173882780238341703917189391233262314095649777817901817647030239432385370796236553600362597618173567723801178271847301344710204104215920215014969876067438036783484065767487614087311799326830517148487452614548615095164653025192852032146663125256430994082761077987851408950855872323172010078235543450199442179470377212877651093589907279038910447402828088941805487218594506951240411041518698754988319657570959374485657765066099134036662904863364774663360049730504090647588878783812807903904064874758620746439657386049725517940941304984017893987899596153756704275881246540913926893409728941346473495718695381446850318309246345222214603576375914266573377117999631003605212199014314924859604578461606820731570693097625252063379639518972593069996630302653797036794449206854502254165057370272919057980290580870616752134462248911339198730152368138555424208914189034855795258776756322696480881829942934900803275775698876875703011022606318895598904110056492491000778182539512483511027613277151355255252024940289383354359478802476036440132320186938354926302559396606338951867644746668250681099554510659410227351198493748650992614157939283311494006117661412112805783654875755010673633874060952171713467796173103250040071071014780467479656777308707740141116011682793564472135859266263355888819946027632528494716331248400862677158525186984281129981481049977063103011388445383040085030612118151259382558968610090241780793215357078915540752544751865107035935867974984733287622550159894554580993462294460660794678135423593726176283833200839867362619079185644706984353894278042016815999715674061118945763446631110214754737610422152325693466714403656001510557681692861408017877337848485783191262160589707841183792063680839837119910251144980057439743967636208925119863873545890011845230234767696190817552190806562104627256635710249292029349742538716043124667739192988575912888052188451640375898771479713567464037696307916836681070267685599833014135105536660035673943867620322819667923291041496354924088850710803858935555893646349243397738992817622724128367970908812097445764370402203506564094711782319086905829441653984498602842365139496645748466022017919708823273248655695614543311028340040755359066732380322566852707955444101897622610499048564176706071361718913225189261834220665432945939132780654779655722914906274698519605835127801443103943194081555639061829714793670964955329083951445543215790260922785125233816217320775149532834057508339902543935919673510863362676207028577135477448112527149740371296434784624623605149252992782569839477465244715955085524800964645282856856386615127660305789438110099067563082857128161315920531656707072017200814295902184271864144054317925288106962366697132926668862193475749498836970350282548819491436419586076946023620388504355664041093466027997374245474237009410179401638430754622360707750861952391798889059700246800766073397757806561420288440695099298414778916043439156661860341115973913333901341618533830979790320914426519039308353831622542558218958610650679744003718975210606133129431914575959822505942803599585388874502609897492895465100570766003832484515068274236247544922590882071163320493149729802540781456876616843692208998295823444519855799388669182428049694618050761137258412176408289571595812089387783429201404707480204825347733502214179048259200400149700824984799297963135414584972992488936406532934126462075794786694329830642559872908350430770128819394811495886027615457618002515014959003242958704982463775858522925814188990304864376436661302202073515025560971210759449959443946404638356034903537442698567088394353794811799388697680789935131730941480778254026369432308402535547166486479641316755226105782298695373381099798232604938750543480782106476476592486413916041490313126156647866585338249790566872281326502220159325256809300843950964554260734629975922571983577583456523627866786388907652846448502857659813098451269009581325175151559047434068501262540413951121746109317341806284503375803237523678105958314658041838996390222153895724572152189374605367218037809269047414270175515577486720751723566785648253829028601054107730111643859431120812575534878684709594973675221706041931856239003544541302066370309878057047886127684410670066251547706817623405178728564553690127593020737632927660564096690722755270841014650994202017550621199819769997837680297451533209952896727624868542381532039767995713422653304779996065150814106228122806002300239120853725371073835901175598303077277068384200073852931805169282956709951812853761978510423681114641007658973166671641013389124625713393518559854189400402166557580545443693260393694061701971602552860201034041757920986905138782569195756150835839156147269060421134657374902527471694041384079141017274535720255718635514668981669304349595062649513171576624812262055017782429459792223761440930493251174699676296478779797151679324426821800510163314063263262952974366128665048950378172370267467205283722379000642268801700448020300029777425864955612885247028669790191446282639641118293577907417941682243967556147323650073615446791736835961597413961718005397536631412795321308286886790599617411562370084653353531272747227375345515676614010387799702061211187499764928333329804326441330906479720169241517912074807751431994914977931427218253652400031752833981785432063858001199466820296874362698830205465374575057685600791785204633161035571644707121287409815444268763400342170121567939732891113907873500809381386272701590357292335082879198004593131597934040268124657026056381826878366264688363146815506955626774999962926756043358349262961029294216664733503096447710499826630142459261847848309187796882897863309184915144638139160053234673210925042740843456128021374069634819301746563529397789469835412406126810051027890849569156158434159457333237479394573735250442942090879386222633563936214662023212657818097917718055698512787287221418617168448645459256578510660412443035069729488252553473188014513945847981413581085159550020888883416084723999846582942740363707059969692128980165386479533102383539274847675367040695842512371896928431265277998929435463333535263155918447756684322100747634950471782099070737884727657439930843194529407866405766717422884026234341038220280430505602534132567873656252214054006435442864810096631860644417066560691739812808061448026601324367842475639859579551021326245358405436099422819900540994818559514351203361577085732991778082576846075786439446860123685202295439366182427834534250319104390120673008608085260070267588039239527813340161228174297492428217209495332621933935058267223266942160054294835300420919825992385124632439350975068854943402070126653247656858995754213145025555935384936378774226352781145363756104797054132122735674372717241220426871459316742278876236083049430208680323807508858630596014326851954775676151599739951278397798719810254266123579940968384880918181941567623875099602238792225204616709723043913114168667859814017596648093020964105808995346717991871792798446738105859105457004856469303186329552189983517030714478416682858586216600259972534552043469214943930682445852604474215921018456756363000365271346324060510326240754881028702792738466917093737344237871734891426843873802699067808703657318938373968589978253019703683241243420315991098861992413847932967597575352702883362039786743080092846827262199418306616458076965076120870721557241357086077035026150011528187969059612623851678404802763569359285573735225187782150846575107778290613657153794464444028183211047971198252677990295655489085491223737178555893394804238191002653330783701382123446381179652938300303165022523397620298662318495664220487101494055668520658857453492709521864370792903447423524222955118168433737220104775318198446456990321945667167000062931394406570584396502098530465531557045323868691560719788160655523348481570627000978476657005211425379486983676145742498222664424415895410804757189464295472700524431529821788217411496455269445580392653418005063342727123144134765836021684489985634720698426696565298023482680356722194784614218642413997385284907753862207796611560688508038398004057365714749818322867693056147137310486407728012439123600615933902819805664346325136982658223132022595727622432876710765371797282222103172202901946361036763439247258842782364777111313974557268699521636702540743030549475173165768410076745012373533882479510530552432267737431985502198552528604918430975419160832432139523129492470509266441219759952376892798177215079784544156682802106115573667524354980396747459174038668120517976116689074236058426064235313023393102607437308774079922694476761557263464418810821884298674904043204998110680784097432740652241053514235522499228456261111687473546063125125718586744983961587986960983319239504506808530804798411949071716093036933395967005757674030552472173360528807802608616023938106315616332925348422583606511048872929780508915622407645595529528345636982563580820439545743807485931262745905623394820011346960735726553658706801777808702823592099987014808941087280171698986761143018021551625410779163467713262300649146258670661558349279316778667348869822806006145635946709208352122003322264510682101088530932561047171738701612619014271982903977658544295815138867667182333669060971292810556319091159416005213066378509047430834892511812862125100841270551636326296415512881653357205910293626968653541354834477086039992304459957095173403779806323902097701061253266409285397199418541214768268765530289799518530713386699878171414476575555310080217701373248694005050713442665481336076409409913855599710505393014245888465672424938558487151885762622746207785862561603873197315466490755651841608112502769977568661139568178720557195140040652344192259221880605871218990680747109039733740890992368746142434660498804082297706442881121706260480697034164129749540852237778369079260252378290025062657325454460775867305114917596296303844917347426570574298672072750863457258034954264491592569855774135941386187294936689329978338443158405609778636370666720497032294702730273641317960056598982203079289595214727219410990523383979180261973123219716430284655889146524202825541712918949061260895998046920488555758979170192514715301097550467210444298805130055212390875232224488744474902873722470706693698952497320615941129635172143886517543282892640948955316875465619712819443857275756295777868550853844195092276639677798154106564946276947535384003466108526312359955666584469667887676991584160936407011862156666477134825566626283582276653306193803957271822146583619651756525188563128997015064317886341801972283974839517069640348490156951197407238014977070655043840914360681523390966563819852464671277167882886617855940070107124551870129805505565314173598521672069566500158149296708493389747750751384290390653002830361324873215777165203068820756661847319402813110362441055731967893020723829525051074216382866806449557499412117555784893742380310033417734605685154879956160416601062081399279759725113581236677289827488434580959123611674318278409845409906499229988086059627136300836657430277090602855416583979689627937946029314911931131175261251093201202802276061720815260525078961564412395327900557699639091168500507479051304500355378983501687571234855965200670593097638765287907894347374408648821878822171804780812895327270898293547499165581068252666915348052135891384811198685593527241186095630132570805324136953811685701959013946405033567801338759346365156821966426933108066637350134150791577397718870800280735441032531007750229346125535301538900098697627174512895669671664573127490467013524253101897569848251536666515581243995926463562440405020510824289087727369313984561512151323256206145134529848438866486370538241798789406526509512186268866094428106580791200395175524897637284364277738904788830474453384857357493954177759983597647391991625512818552551637206435588533616963499286025495364021109310417436382591175329096940099524253147135719182603272360929714212663890798516618114143243831284833437234104454342253326294652097485770147874703905325003350579889156886242166794353431108694603340065675090388084520881235289831174610609976306480696418344625770088115060520239237739649115797449866349470655358521240299602662495966862161444788370430231954302705428194009361449084815366322903722986920948097020506175818267080256091040489171496501389509762557945586728843332925594951272053359716514023026029136083543621762186905480899350635194146261873620312077305478126672331228811885222397155720428168949927992579845341692772389213599137181907312353977667472161658946152329093271020940871300125562834590075254714078144862690967829701376587842877904800505357935030448743411750625539566025622506955608815563349340037708918763000017430856537768287442075679294256903303941469062435240633300250734937266138271341285180428898932058894993453179726452368335445845065517194780373081612048753437731595495625624750665067315058692757075625603116737195312682885997200884717574841252425479284260957225397158529794885710801224325431776998772198393684498941092010685485286235211500517236811696274262747863123576832658664781500895950551865540684083872545997218414232334646223922818080600809100660573424531303098790011022817188404425427778232705738331587252900830810447310357436141702345703151308591622215264888070269168236366892770288697155719561028200930091632327635073227430398033469744779234738966360296944128616172256613490911274206652769713315980097393790736165679215704274412429751324231351826066338516098853319041854411458145642952930452024442290221801774475280854210909834503538713442452287220911369122290602460289379563273239555965220786581191350434086371422029864939303169362372166778539038090556397253042958473427091601303699494012462636908462910550771033549053141444571679798758059199907005238433244090307168130735333279923499717409451184468943233565894088825005680636150951084755766646024843282512084515226155765441190815611676702598371855042660934512760168589923192937164388145967647093342501038776536657887241207661366458001616473136958710988392041288266065492871862224263119537664355611173394136560192137037818340685848435971141073127988748429634481999564000409966996690180335192539250829080703827284311295557256721139255695110369102847645155746181006992488724853311655887667071465798626131941964760644834043864539129751568469853001514884452368018696043133963605163811195452179782746309701439314699229173997252547614135867975567565728919982420211547700615914652552859939567635355536368364447313135870681520005558415892222601485274642612947297726465159164225064707307580767112261901910913313788975753375201607397964955945858710713046706835560996553898429186949811024603786125367114526692145155983559513863154777656739368744324759159858190520192968799706854499526462033373130150822845118209584353645817093562016192127398120159683792353391054357428845635866418979718698435526040706194431250348381335665952510904404530535930788769002827972187599065778147696045297407952441944446443198132369733428597871951347500270932746999588079150971859920173847890680585023428915553367119020481297616478721673578891671062343566309188819093708226312838158701012154467868090295176146370187747551324430816022018852012737211604204555695095336428757143610100456964280911000779139069585080936675467413595301691246011505650518051305280912467456748624323851172149445702653494499590256112432670116659055450564081257970520079027235380888209815451220151336630584970291305060226030948759672528711580876550216004831168525418333742596224036652759366882971074903815241286072360696630353686174979092297741271920118246595508069312380790014751383147998538947472266781031756507257985282861138104293453143700722794727384471647917199841264445993083426822392061051154605978390284865000889199039114595841868470965130679852264988442734148237825777707554519988962677335507953103504408094212753343337909200690890927413983735944370161305113378217376924528192309619806956516322984288933340778340362196414852597237979249283726413657022694802512453354620606103307809511150142141891278216975312527304157203753400368851915188216579670163812578484249988819764168476708874900570084767460872878726966239639523743796377484157385665065848870942529926233152925160172470850046307351821225809856598899660578910238756999906396468522455856881757016210767355909000971530876071534712585745299833623052941253990015349581320888719060840349665157906575861235881321604633524017154995397249354318529951819400971776784289736259979554583660223076755386807220653372431421858571776892392699418609571981260072641426430968501443251254860261800434051536728023394231486921804562723631879353682243258585668705642590319103355239340057500797320868272661261283980768603897650556676507204684224196747154842775177636545143431589172650108030187399917180245314312166445304914963414067260568375865470538292445130260805649300401894180318589344219550002990772662011806611162759820952185900814795624693301134282630648539262399741672493576536339661350359357828195252714758523522566749858799448385802421567549652081615686143929469273917086041102584010820044474472159433329083867752893083762056331674677578357111027671705542249866598672438399248366753050996352751492004422730180841519918101591123256935833008643934432157976208334070519543792425881682923317585813383086216476119903416318743939058680617043192669809258272238704146409733600749631698858720740717624609921197426560169272518275171451750077279934079011737827591115761139850492668195416382415970238705822745192524827011386774325069462917708953777982823509388877049708126949950181742550291406444808788290819188602676378634484663947615989430548064210172207107805280262605902183516154365154047958321016828811499586523306077261857312423121396353991580068279089790720974468296783111816633876023166658353459685554551287535440273832433213425863812004409855492791059835125124556558464566611243815475884669681115084598612140630076012683664108562078294430572534675069997104092293274842525402498388476675062933713703164905274900829463810516731684659129579420901542007995321599455751374117131852699988769775663321090815051940860030628701535296020680814293495507668569394136555288064049919922509557282504715196126155717152422390472483648461190878118173297450834498052659774845087886519401147366217208390102861596362499027637026131058400717265707869129393283880273536881750765222029923908565426891392177971642428708979185919215053092005285903050282419517689661643469877358463217135673293050713218789738399198451437626795518053143387145640061443422259076426775900416080599320930471627968918345657740228174319351242167977941901443343108122440115577748571508051063229506576272267884075403224851748484249313851976795041535431660486826807711661768489536701065984335928951900664262639311153755282781216754339858587562925399462447435649002489352418940006439699269067632568200905449746110280143459739839452375207926767411619074914119566311462593580264241054578120836359581562577064244736458371016739396572815217872349659822923503485049324646251467299669748393618971657488474895870853976997817844221599969553101305033643330174047058446755871177386228942980460903479782651836004678872000613048570818072925836268672263195429154461380222689978794233077348849862123183278188146976703531945846806752102417074843817759314905893084383381863287487087278898604556897925728667625852502948602906901248511248761193196844418359739568626964635503278866498311470450172519194999082145943986957976883707852607958122189246388624149190660158655410883135752452381284505023968639486475916387116012978537035599313996744799716752127091809180695798787167753782363668152397289131059939799451050608058572770253272414048159327968870242538934110188119886680458117635733263900795463419252967776419226164026843902984209308439885517350188356346224661458644786854010659301609200760550249934523717453504290880634600344716697925185839288542826119449419182282852146728950332623994773739222433355004556886341116845504006796691052465762469472709737292627515662832234082949341761033965800006706154942130584871096684348028721624232746320966879017992470341658828166695163694071924682391952268769241627318283437245064574674475090362527876039452970796815040019026750107642483731410426619145236533022645786651805527026414796414248952147981339821738503222165839090607179192001210449094852702421127162469128446681620931788866343447728538949279219606045722614746381947311251293659934996957644790309713104794414844499188618583385993865673087790462073411242247488410436724974425208690198273845824007217636553266490047322780406842246972790612425385384582073231958093187438115063015995574468205665463553837698507715074468076060736406030991497973532503517715151249477607718752188453470051904591639795327593527222337251803025168676317287496038678311750675068347011150100005055253184716756974951380720268765034718927986343765601639318454874372649858322540652002555362884033637281258200659545742216875605063020445222964545729408516170302425091090611388695719202673361188662224995241659329798156785973645580097577691081917176601312771406218584792152943111435255826207191762696795633870866275221284359926046198557129299971869033023114583217381472168029117624392802615152455276362719859269617123660264064405869284613920917258600022535386789259753935870067524837385869735458211576548035604172453309953135034569231023727384034490219563887000150119812063641226853191188513984676159020901916966657034309634972318095017316068711595669386259402359861005130514707631121286420374186300669617351396982452587169289112042528061200854060825114055565188572414635206694391815749267482801340344615583190712098238997213240796814973927115255381551335455751035001022760891746602749324926397305668281337543029237187586940156393437914153640030339085701635669439238319151135938472312544924565237580684936249679558867371969575830948185091187750528539636703985887922872571364890513593164903448030196345978251963274434730458930683956880626003656154659240379000801702595394903357698499492120467970043535347393553090247329250360313031149609593040717983848594865505263822223897423194224337726720444763385179623014292213316288845075427292223395800661005116702385250620834317063028700609454735270829375636229449136356051048012002109288147710985391147119370789695292110695358346466655911520102798004606624559731632513958416135037106998559950255451670009761086213712767983304118633323380936423248132850645622405670446100443287536955391598698199191787223757713161553048758907586110915172087940229801216061931093851782170464722411975898202586468130375490338613077165773447706179602149830054035509230318026944646598428114388680276035575220141914669113653625431929977834870885967141027355811673500401290949189897536414806951466735381016448257100813405025983363379696204141055210266397617973721182696168654675404320288413643675759289197855428542696743074252314515955967497648008133135022728797569554323305802520942232331483735685034458163868953102334142029158059216274382048957679044171565233975525773575893980935201467791656248539176949329734603895990709504939135464400375726881934622220553429493709518510498450392808193952964644354214247140462107822717585548909921616493867264797757852328636632330212866942006183520370243606236226705994960909935346923099244378782788282045714760145356874538410847298887799004120862533125799690646689909057079750436735894266229803077140060997059411327097725685617895932128879303216154954312842541218962037028793239071706619870130394665775473920868940471217556424767773888061898295457547028169801551800618698841078724459888057250326025629335749529704022644105346826219740171457074504257109944988525456171108885903970507423325328675364223133697627807334962126871644704562440791276176779785461795638466423575034741894522246961860879198908777215216522543488690262025034901879897368610313599790151966491913990289364247427452310405558824335702891505794064680947713922387570906046888924237502312072505128213184017065879244772394928868658023361168837240702574611166875619585027102980609696375113965516832480967819895897324482205300831699895102944805293661753438268744892468645514563117535249450412539155499533016832140683267514922986028139127409512262871757853027596549088363619828103983648584098090102899790042278761787805302800274483735072036679219411221552099727887705101246535725437863451830065860485443879163495497878373904638661196721105591436202312779012081819387898312872722415865693335848677785817722779632727928869482496904631459248741196779047203958219008344004427623147473575143228966690359107596370944918372541379909988547437281191815233918363587967218505563539166763952539851838971423968778296223119272041904275422525524896737125878759120474075199465240177683854225295775838612107883177252597960468722691490361195463806248610073650563328310732220507862250699382398134824619850643860715118933395473764538724447650703815567716522412295824436865637211175591720726587671542495255913565509315505130319706326305586298295579000173488059587434257450975670452618053704736727105327921950298431512224322487555315128375582128014706790273110098379481866104436737516981967631187961712407145331562257532156361224536272111315142524071924229198365988673315188932851343566199825482177294943632769449150257931824214095772392217642491679644519968188067849009762420946997410819087651599229068623117340494055878660670551766284218793677683963389522898131856054296668794459030275832964241175884274176185617326372730358614350970547091055082269230278731949652955086508806708990827792378862298943807459467712469605013455251573467098870830751300251667655589362286164421828262726114528637582728977796428248702012794560455777169036169248545693699499882693162993457193483338738672629224852403748548902142149008992305660904990212530856484950372080186042035986633488923754710326788835970009940452556887205375781040732381026044299647209047493832050972314830787245583415848458067151115134288823277294245993378735274683684652546660105839062842221318181077322329213822419878567903734644049084918379901442853254743494433400568672524590883786752983862623808368520671262376864031583767046431276107019580004899570226451099086562531620544839478616317593310676771137430495288646799234134002382497316905473971854673025826478192300703111151513041550119024615079069286276879155012892818614846919524095385660031040132892562590054684543151593960176144877213665047884744948292440827737700843999072716142906141200347593684973127446989061854560312506934813369173612274369702116833707779455413114128712509333380098717283799192923527409411998559987405665961802555805272716499826539469419821702912356620617241965327023828448713081246359784395913310508544902452405901205862766094161587359614304575733644372777167818280464580018215498626573924409547856546144644435346965965082110430416146550326759286490248598700744675781776010362402007619252132919169175441900679197606029011955922236164399542485168975281499554205931036185835825936917148321002054072360238190930286672335842250308506474007338998385758963399524966330782502189561814273046802445286902384801134062263493119547815717310685574330724435759554989985455610660367216048327801131732431773050635905523051808737165256437624947625743061279597043798172814020243344193869106209240939468839973053562367639811706488378614591518643370696550080239576165059372274646187743249359643575813976701935777610351383232736560538169113924075924765329073015814995137336632237025816450642721611103972874536687608394665177070785981034585140880200797697035779382731504712477599120655194754610134884864559904277219345236665764369390613181888830174228457628506201999841095791279197104016868906498943122231676160146584271039458753682508063899992952819383231195138416882252698779640813750450643700585942273222561966314254718636144639333547370716548031998681337930833781605400879301699011616477429933111466311313664117188121264362201019892350193978697066476528698885780943056110952771566262654612860931156974154838639091334145999233494432100110351326604932153623406342318173038874314703579851455606443245492583501608523488147452344828872815470802443163349004437596246996107857374431846261754481708822749131239732690127737271467043783213651035119593693191040150216299987016559294708722799071625689963665700509763551079450967566104326759887545537548067144935220714498819935886875125735759286026304093757510818380166910679442992114318734418743769637771887513882609071988114052284699622825373740126067498653791627701942809895083449011204906579176930328548330703046526311758578351326641387025794338004950498963334581253791024628526186696523693066880192782890351262796208551248430968477427670751260617503523541942495667195100331481968574669323458644274713885881753201298296346598125963478617113204605004475809059401309886323648292489822304922319731114452814710341908810898944659065715286007894069607003930297952741518787426293637027206435607591158269193144409938448227968688602776299070158590544548431037788798412573276907087068782264357262527028792689928932589932636134964498417058540574929962601509633466846133917777799523450773249349419481513518709611285965689947979523523084685582521168970038403030408753263206960652339642477958241985234100840197140823546087656629048848681155392898099614432748797503676552813197499064934556092351761236962539326047871903233167398329338874792489966925801856193977064325245837700591429493063262470517902976677825138916515155657036600148837432663271702693676506006686291201134686897842751683157486853656408404903088421818142034688253304890681598667235551640072970506971331835500879015600190263810750453115354880232753925793771250855051949487675883757264966186511975620345223956805571182099928664927920741958854591988318903198843693920071149272322192755602757187760774035527614800168894477277401260018943157561790346252046419215798739201619639163555321794789113077563994440038885025966424517636581699619969895514817029851692629528127072247286963350723391645514923499384745486361531569958716787050320830013745949553773802470682230742162817568105318690721073293598765486683838244709974736900717035446428247183109965015997370571062369428614212594433403383046863576166852203972174311433121719047995405271687852747440602733685240919562401317439530253469004191850128681162459910813126183512961913828917981666353757270726290706070340023753588067032184933805747451134620530066075621734940048678351829281167050524366243018084014366199032082360998010537837740756852742569377050048552567834630401202908828481370544512093252276687757650788881934102490441837331084272654065075095138427040809156376161114074555703152646841413103788771838858668570117767493056562442724290508441615483810389794043463956592727781293686622004037379670106372738973880089677069719828189407357124415687108680469169912796731335821166433727776249901658028634051841742672353374075056871377672112824263373152128096352611501724517441414267282539901850423922877734441100474420986661337093596843638981572132024900217364968836619402894991345823487771945195617091722738788792554134697256089302853443318589163409481016853690451014814205405100701589920567644627577275671349511308782373244773668065176211344691355714343578770352763068156462033778023766197526915526144480859934430228464604689879643250184718012880618494263464720184966130417404444726145443312839613564922868157401478421449663803739126388528868124583080714530095541943666615243808382527540751391392994399547873124007109073079250789035042716908825621953123539370485661578954531464249548372440498111981818349032838326971271776132056924102232921082854118849973794075248736796104336933019074547772419771873139424007459493132779852561179735440155822390033291284219532105021029314056069668615809910216185197989681929323256308748639955242958034245471251965918777636310300984213514971649849423505175298104518938487353434848440128436236060720523826088697634054634918503874966416156553956184270695023606605881107908565133523441179390655811881097843252969785751466597921045394102985938009152190706276135225211442299905682740480433147093858666386582061929939109959960181442738758871410400977395763210994934372027535266824290970793847822276810071205350281634652479408722528880009567881806684351419118415130449237062108509232412151803710811038111856005968470733194868430358879025425619556211115849977362901888501814766767319113834816897582817653291878829575362580732788089828018675483959183000016169068622680331227545623768658382745497635441053976354802006632231672926164125367335168340557632318781342444122779056629180572370898153893102717314155263715253113201889745919669921998686120023088568227215125500285012133419843793575619591178882521235048354361508446789706751544253634964723291999781246052226327724302165702459481263404779783110689329780204497317421521407731918951490779759833847021643185371604771243689132371028252227402873184095278534619939294998228583061644843890464250990175955574524964920792350145436096878182342000153649165702510002810254428174486014058003811321366599597593074554399269479996109094739523697750431468729228164047380516553294813811681375012893007101997233552782134582493532950517001575731165743308720894643432907818670116619881594546565110989830166104827342835529250203968224212839111295009520850420270031333790436209953931132486025775854213692884303163181922970932091662257789205143225292801390317302546780942055895929124052279882275544156542825758658447139206355774860233550224826249751489829086935822395660096208901146886671556444177783046593060406686421770683852760813149755631510937082369269403798825543227051855240199525912002736030121263332015391146272120600199317666966271830355631789763512662788414221619744133870782439869498896499277476995140772023528983081180166096845203935560455839110600194687794441710048693175382246215913382690047669645434739616336070919551698408783927036763188629995083779972225456440542518696100450021495202755774519677613983390197815302890673329464130146624543706605366078232055627380169263196707500285440857761962012276332816510352057012168626439892680086544579122376973229405480260329991820068000545661820819720090987125337705762363412604639147554733775260624146317329602164530930552364043521684234763338647928696059811997573676676549801158794231531928939719235842137122672284059730638639043243993296271776740496257927617946949034709140821237707828280544934503277243451476267936550483956759766689647741397158107437467239091690877830764472887247265091880256739174177708260031728076915482842747700439744283303099026593474544537095347533788321956984120701777981383649182011526442287424698067929223884997886876669357762188204538097363772233022584234616699377630766712482480263593864792764133859530429469118404386940278680045040918861914689763266224983342508097960241605239110909824901289198856971516579642720374420818221689882357011067200944911496285610911045963222312199324283485428625476830016730912074615894709596669708690162663300196678021926012440333422168105968727181122505324010079935975382184081045414194308767382471997408563657509541820378868143561786788889043319574690892966399339141808785497992798712226411522536944286500000792214634009931317084638735939655436359659640393269901210165424713699379362698885378443088327203863842415397599941617583002339819333118966264782376829330199896798560427497547590123837515130927085890288895276744069176825764018828759541737417206023558041140087019189149228460008953781746406841436881499554891369697680808762176957819126022691834638059338455250953763441555538366283388804828303428939481035600861560770182019419761800340389209478747658399063606327320025010714701577489940987871971709483997781512167882879238295449050932551121365385058751423979855886569139627551541504727461125476493090725209047781536767238916179932611285766627517750202386759257292028044987085643207338492666654077404743224553079503507738953807144883445432792101967981098924108578268924644115300639999182054533382369424380115261907075770849098416904117217693965521706852710946926094881822599685089286508641618970886859888114736326214968551239796549767749728567140572692955675194273450790336932298848674956795320763020900264824973651501472328934965601271693553717570771541104074784023153505408339994516642651915299578571952320423950035680416248204549022220419553241522462896076663202420834139287591754137688718400939047862212720936871058671569398054402398709817760375314855235862595579390703400914587832262299259266616044789896413294349001181878003291928413522994308522063800705318975248841245019915478296904567398639955833294648118439898851837063476584574656063748600063896699619558680501677147763571094020927279212580097758307426152650483094368127172015814087051381778713519922344887016642216923015759364349161928149446221737255562116818177287322699086984317555707391119537737865802669842153717031667375548783672902147657517523744593705390771806140106132216625531557856180344161272619431921505492861283961136024503629206980481921114920078547017727828904736429428079181805064946493584304951852306272661605571895951548535898978022925712219556289431923132602767638754994399517777757379343939289750246843468552876675298014298211736463240668172370127587951773379347436852842360829937394409387550014939352303615334966274025699637439506228423147756037544506515548052005906764632695309102553274430090882286791690513633569888757462663610272519163237897337024290810258440455645675085032240169545994214331282815727943958141747182972144797158394418753530936797868327046294437941136389090634273486860932747428233762652878034001667675790205198885566610899797839784665542728796433774867609098517222671105130636189202922092432701593753035690198696797381351346144207826541597109519178520786169565218326322836120052627676925484334669540148236720424158916123444176652871036806919270364074208246716547714760766874265784939811491035608689361084444274600155887318683583677196875582295441057387450715070761259347841434152557986857912205443551942185423973696520969942932704301259479554016145587899809895584835520025844624138050707512651251000311003299680358350296629214803589885705777924399587578459959138594042904864796768032924370385654829588652765813746889614950224182405554903585374849322121237581522442571225439230144769170280147379651128644370472762523214374009400453955296828550694091075806098137937048615098571670196464104927306404906718032174750524721139934467818445157893125559122242822163426658962254529018296006986042519185011853817417394402524064697354934575832045763181250214125686939994435253551668204914883305604753672633249715245352512182638338363831460681635269368062545965175095642372845272236194531758966529998143561029203806825377997644582827433665947842798012698920634515516200187407430469907065122866782284609853807862659167074600820954046591353439824272914515749156583411477135246950632226443717977785991927483845556100821317947689025358952444640810331734765836493433346929976494525419033371271447263208697247984389424299931768017465547858351724094559330537724260201370943054143324917022949694957038246559118891178065112110934235121204463647193131258272979110918275720723475237248108515875015275612531239518833141094583749379339491014789270182543696988242444005830982919788171418692281311522921820849702861048086591186462257449438651819127676036722389313998736479421167852241943816651677573240981930445656537629644003523935656449660481889174498338676688311418522366271132743969572917193741839542002519583239165090400811938300204282930177503427692720116348961802192249042914304913631676781636500910631750921051958757185282757295280774556506035903219414176541732808460877303113699454054887672040213071816386602788544795091495320625032451271381142347147665001674821425498778014922533046399897080071193068069405194021769619428277385847293471443414530044708844509503126834452861533640026676306972921138664135440029126678327381718498898262045053140019887378640001744329315529247154012625376709176391686394603343085767127000790678285535173281812360628112885804371517804522301914001142877550311488747877518905383408406790367175227522211727593399009898371905871313102189359168716670782424314253919346546652804521207583194971314876306389543030192294667988676624330247327209029807470585768334614190154118485672449938426793139878862287315363496208939483971964295849559173497878224272161253317696668407507336157675447300457013772244404173965342681113038579843254603512787449293404253947143789063981717757077724671924595478225567772914998796471889627869039082197291393924501820037377056693222458179225982593915118895268749963325792752084823632686972055482407091172049242031579635491580552704974265993882981162869916581137060361099067391794349728072050548558127286401125500122835381028176988046271741022771448347048066485164863956557102272068105711391628595508560497873613507088855500723781656274601126888257041620752910171034358204193013127568376000160413703051896792523330349690789728879021580687325670454649984304413306211652338897204982564514996361978391451941207829253651476537725853668501869549946005687594846130249107146657737409416045185561900335656428924901899107465960141102367119604022777646582825350253890320416914517449993352687417463713617564851263934794771414549670357043262817691441205711716462984551817236609548130317066052506228676347097601190566516674094849703746577850233400822813817378520835840767723402723631637559983404307222112061251631966139406484199783165521495689404192297823490972252680535307756541830760191405001209402196119178598799664597747121799330497630523492157010329584896173627189072440757808354606699547707385424012994478441629859647640321167456861564257777729571205919882115559535085371338692569656912143070358560516224735570991173460321926879940379766172906636347867301643697802780498569484682758200035674932966473459361501784343022209256823185759816191275975764870323381162290533191189152237219550508731540626306222851354604372193199498602335567024956357873290427338585925217553075149828250422195043246791562392159587816394535419496225377487749171889854391390910197255244202002835961252267724951625038221667027355352233693204415532725474718526397912746133285601811733480349915091632781331703615185496873142402660664497564243782343342302125556558567989236115636567730394731133423796112736977026327568392798052543001780238420556337050047783578274885278285292622616027104625097735871996722375943989509977681775671646401744525959677116865683743763086592596803558790765378156426605470424165401747431782956163669009697973359915885598439035618740323732078266263108481455349180132785770507860752454049400174859734993253306840055041288389302730176752817130900312506364245442632117839907547125102865134307384006679106144949687608265315290987297288456779431383060141662030678313160308275517833210311238617255343509279421250714209124184328136523655493055455134032325868790791449329929660927855675554340564262365889040695566280110855008304502528582057889977553367573050800843648741886354434216314041630550388502786129724678014919921310490911998185532886001312904816906694110121779691828476223236205764896441151004330676163467165762721893649596477803009224863836906690347292589068106777680309402239004949331434176918009038655715950977738706579874760235612908503246690436592678176196344761365002174593742084407333267671234407521008305256718261817239446926747736569302403323786935174498490988703505713141941473168770614773706897042244567377942392171548714442170486269331340370824719440073837046813566146473679464978003406607560737828828592432289696681955191841502628784933005907101718226546683785442748360422060516628780268605408636630152304766700640054917020132733545295406829410260695193882364005150536095212360818055084210731001106536218827597767136114708235365302740822365779300692360576046217592445706984209298248009087407119269793817740464076441202798017169938976653927112407471912100206742710630644070449140822936781797053346957581306580316653004518594614260829322541798980539380492135908918744033153184869309047488640755296938884970345037829584402907494143605748516449791140057258320237300022456354045123222425517528886440916362236167184470751888453446514180772674814421630251545173231167715630528728925064421835478637025004401195539153936869814119387821306533989270877529399907475413146889899778366443653557133114523440314551949344663333412484729837318120628340223174777877675180513055082414608468273885609758066039561503622563982248804585391861413096262616808097017075823633710187346772172905903164122186946379605379762121491426592366959793797262179016559154107154156774005888213599354375091258348271653059272937987914199362862511928399524139238394076844497582737961797693439469194765576372681760874436886261120389597933812222336701848254791589678846837567936617125296535572218575630943371751430715543135326138438116983641910512187400838341926303549631024129067572657693280044281207866911875167902986964218056088491820418590668562954691241435177251235772928624723823586358163894861807051921568450882214271847989214516099355231089975022736402315060794313374993881733986640328178597644307079338439103077121745164530863215416675393465178345276763459383671984692856905708798538349716906779901712024121239216571131986850131216342272701145812150528733661395786832388046783234652080284506809016665175984823480060075709334541769203181892078465199204653843528535454954758960102060122644928046399003879639351489003492561299039118580072956380395210309127930275840104647649440780067666991579793970219454484220020165570316849409972683099578152020433044314301345043508630208319750056150634699282150768169111642666595988776286282225858903820431109866133818112607457409939483218909252156723679936365477311507226572898311391085280905928586300914130060521118325824383359994089802684352855158334570523627777358248301643834748175588335056135668069019300004685839378853576668260543027986535850234529387350335500770972315893953899275814088380740969002514737223877668090218844423558539918851027315831175641372041205386186189158433721426141830625576454431975046689436996844412310310556634315581108075964092209368522715758233536060128304390774477514359673999600985270117625558668702725689253768633741771238871259364290052290577345486879038919717071591810106612916206781524654097889177734577134717622130925199492378063551658628956571961311656518820892673131871539755078384711201879063924144193747224060690602826961488535340243885933899099028303505773234329498695948882123874244966789619077251131244968243571678131917640465846308728722724832174147974211526304852300473613149619658519343398667775318999925469706374628196018060005658855996997215867225876523401072836619347573094231888945758138644487954025599429362958921118814483698753864590092624249018111515189363037944905212847478260218543225593413531839029544982893417995168945847269136004935758518272771690543679593187479940799788961520296716604176661132813203460187733590272549303093898343022953131344720605052388896056927475183316260259809126499957531351908384062238437084085235346602601845900995913633226413534970146109435147013866768303554616363808539083297138403159636765429633036504308557017337916949384578018315058898572214193816427545331723701306830987195145010534563261061863939894315486571496237145516099186297872372418545162353911045497191262415201411923760851725110899531367091942028682950317832268660274634437731859675211575774686012674074221135035534135879190830458463645342012469726061273119096253223765452503804167087104840461154915467404518281927983651599498739314057478974209707388980403269418482346858148606497007108490516416978262184560727805923506854654098473622725998052391798494063182497199025384769865811668731831326559066044898363603984094013744398360909108431356887430468548777891870238421497423850488135944947539521872745038676009288870145460406004048701934797349439912995060332464816787997814720886211383829338917088197680055494989033602676673740905720143328609153202297842073748379682558999168347794435424320633480729259437568575724404203071113652947275251646043656618492899323664980206369155432901750352173216808553444207557494209071361489764447239502753969952507830431733424926368159026885329424570061808957027423543864671430254661444317660119681519355356702288192884182093591823316591812531972975161079412805278039933937088871470081387500972436885175897965847670020116831459039230858609590250470529594741361883711666222496359547905255574449430549829720780061387973535900703360553555924971073088501389196911175466343667727742433011707427172729830820227524771452871020563484379635616915668312780884475961213682329308712545952041572766384842810885976809958515047528753958233015839928924102384880719349927841287980001464071371107234301455882818340337901648595329948786777148965118426707338465762410799049920478898815192991859449598582341790140402992510858357212359908096755493640808594447293690810769231642633707111472081737254816946004304402815010041466524356718488288878823071220196429704622092601989187963104909987687007097057707026570161852986728080350336698284706182316835273649044962126890249207164077724005861118752263416351007380339958918712186411523808847139566001265062334787082569726986522018620574294900910528605861301715941375265449743543332130738919873863114413282761140787883299256882220471278719930744839025951749384400082221572916564302510855727933056657919485843286003567751228948544533703250883778496549103949939288921788212074451454060365583668821610476987619920780922778120509986144670238722437901858088754202514818737328918926401561307407032591606104868800411276571511397284242560783146216303536380937819108766035884257342215129209024486281489583710899543100012923436015557112952519242935263040611514420641833333637741579729533024441846548071123495935935536113379301616992064393575084727688202187274262660471261671386986185802634933089691798069990200852118158980495354903108696441556557265932779547807713291003464558934270951796484442060528849901453555539769519399857867033274358779837633090343355545054523321270702521414505450505641664339430906788246702157827699305793819579783388868084848786789894153713816526474725813703039418777204049524916563691588937983350271058223628897791349153533900328899218058017097024163666576365157362859656546324018925458342858807932361929061229311233437638926922781130396686280853466836163736327470630223387846393176207040538997544539348492604445340541619420085017730346409651730808406569749265678658723291092880063223650309837622800380380104074308923168571893109244932949561860512966262035446909255297013048225513500108891644359442617086756044012543356210773904550614332570655960676605622930167784414591232154237876612318439289914465712962306886734566049242333208000450243162310523604001351373346228294746413515694452124426776931177534199435433938195834154056305434748279424752817747678394994782426043848249440340919811626785927566734702182923508730925535873403946011168914716855054780031035167714192710250454242213837680945514433931838390913249932981323739364820265895591625508538271677198281944001025738719234567039211531784933202122920985009118054267512925569181607476446295836742709740778349930677227433997342454089978292128481914506922841716650893837265030428386404534031588233086330678370304674412002086789269157242197186134838919613673502131902510666666074308608310114905340115128296515348053860364935167054356883857146102013073160471249266405502784451200090344386657275816992858572349439830974664836087871880387137150635407311913045346573950453319717575318512842661492679079072386522325174247914127999316771972683892558874966036710001502280457690194007697862484684765636713933885563418859104801482695936100176365533976656719826970628007461021829714058359173807000888666845339075044835366243198993952271497646702645485726798676018879991621027810863671438061746698200258313654525440689565745875284755727350204899284109192080861325255525111435166868534975095501798766268512536147674175616383271730280510759287395629234156681630066240802006258958346583351190623841612152684419409257730086247038641208049377055929159603789198791328710195397000465197009712637901088110462293463679806699412964949615601381065901590935030981402815625603049192213369915577535542288685314544966466455366408302282114452186700640385096428317337367382134557737640751269744875612660061976843961016621054979374216539808390630582506303368202641080861406926627729352644460691630432368814935023652095266394007178740773165656906130498997451125118070108803254380838770137003874584064695455394952037406148036431731330039520273217112310557115196889558365745111161033014086556478924068526964887064931093949330781151309713558933711149191634118554967901594476765102594139138643606446069964405733404619423804293244416123599962695290182195310337412584815920817766468784771489961832564102725030246043761891315641117674797265955031299005370115005558756662709845065564055896251543087694953868086113434055443390572885210850215208024048251779781212632171356138621091839378706888442968724428468276834915837838222285084086081223788192999154956321260224146494516046875206208213451001546743217381987014735044693159270351773904159478606647089538630247080558643352661258218572586378906934136461067428920664164835278408589674345881958908185127881156111608096245722570352078977550206679173842005159734601883414984737324463339532967303632901801945560683488353330432624251780038596749991012785927230571646867199478265487801846189669278903668383791583613579743437760716207393605005507659766205885560559137447004433149133054228000418956197559774434927624281371605863301922042453933262021642939858933367198312782544549142985319183579581303688606793087202249419725490562500974133970510256425501083428757686787149449355407571672454700786994314835053248033331251495884934034324551508445736691061309473706840163206040716646070888826748877942734713932374048353657715328365492830163068425561175604165556057272253430009947587012488596044160363417293198261116267941403975994634360748366426748899680286537297518174303354209284285201478034529005993806306627150153471161335633197982628010318209957027909803755681309750422370303117495392460786628586470283696374116586181750228842523190899144110708267123963711502551880348473163146484933175200543788082231978983251561115005086856359038127424058404732282135267781900557139283328489828482329666732290135828001959467077190578718152642624336998920688818289425712471479871318094123713974026422376156318426698534086134219690053929000228696874457609379140957195308954206381535706003631569586220278263232596214782765985603976529736490274466313627205774957698198290262617878814568469554024374787397031676433026144079693954862510682799601568377365899494542494006512926016582064414584258553120428627502124830830934956789441143510604620034696508925520877654431924176307483468725930210120210481143655346713641465364822933108175898329255733726472254387091340029812279916772756825679993321481664042173791493274405017780467871012876067107614655767097082442739933457874087112396163170723527411706170176788014863696400685578042468612228191978129436111686887695841928359284447407727185438206413374236893821985489589193545835165957999202498092603832198535361792477372600602619367293828184456223138738491497796394830962379240354633626732300811034750111830253009907802079407961515588321016984450375007402530927642713401303969993210369305420733964444070967452027358046066576977474520683215081565370853576354880485172930889234294586536020362588169579602178253229195596428385883199027558717578566561053759259266035696314878015628764748988799449469173315037259497099086587452733779970626456395774116904182298316516157796404082477883783317965454875971629823683366927531073304950171526618274245128429648412276594594407171743611014594258007995615974802002217854806281947142706242991778991875589304483904026280610639416164545756034815650944788605888502961625144528573050907550572615530793699897435486711613716393886317279066171184530238606124978744411139791571534923781825678880380352735380890791910293599298163658064169827947540666920958394603144170767133616355365597727452760289123762883270476989924981390768351520391872608973726278855735655389816482080255063972149957968191721315803486642722249137738021807122603199170446395220223086916205158067816527946962105694457293934026870642649355386192686722563546790617130623321964781278190681845946204422703351233300514919436034592503448695576356365076673950257353826458725749970823239899709741894654070833714614497425233827244908768873905411207074598236722960775324240453039596654242489260915344539352652704997849100725405465121056367639965026412867799808875786157100491704849817687269870024956792535200396235520945473021500602209859596655599480052540000640593662703337948936310464729297033435542351612093879282212849486199963019315778574597479424463072895131964335637410659820245200199997047462678695295742829808304682685140132358856010836294881660928573943590517592612759505482492179438396011501442224391704130677964917463801795485739483045245005139001715260033216308836254330866721235003675524813580896434440819465458514779348410480509291061842338957148269353074321660177677188272929983368617551413940642038950009209663357934351762405306527358084840348705127620718165834002743107455318525524519173554742048303988105487172897641231413121978917727914645474295132175280677739962987730764942170445884799778847520316222414558026237344425370914135903903194030960001793215695578923588358221011843818743049371274408238794545099544670918131861906158074324893922877630273237812088666286046369743326389879777144983441411929967358866165678880111321852858842347444129032804643791388958692581638244693427851977787680732654323339390000936906532231547043855122589668320787139981735534150140810258323468312634078920464604171587291111257038822248308737025826070230796695267424625244537881019140445283872379861956869339036423404637210029664010919467590817472420734124518587508993725640759398683877016153331489177896924339829118199677937538834794745865562727138191777612046557509574857411455695689121516215376679370182913951990361303104108801161929032639790564537892448027626020537534110593102585134160157506750998858857649975741371461872929491725067189540265823486896739616645550892836348680782145164820005864809011274375939975042027918002511061779514952417248601998861764368557811013400029913721664219776793818281367722562269722947641852626396628762049881419681355629668421885459289973500466731412348169871577421786666317407867447794476463221396147436006320366605938441122190777137142205282970377728386103658872911474056270274919020222949551537001463816147444716087787818226383633888256682722563587488927059828729659372000784583616970087921818333234848631899654046065921956006915491994361946734641981055580492979888618051039391313478113258600663572164937386986479349004802483441557742074813295045508037692272202837175162699825449587490595570343650042255687814104643313304106278716633995504458763529518993008689159271902620487533136809666319041757058568465550607931917793843167893495437881552068627386110462377729163618825023814935791387800079961222797856307807494535153316878379750371789470808051346989337320944583670376295530191278163304344455419078417812415710447676972089244712993618705734476780567786445304794706080178305953987154512588538652335510330930315030721036753181057765785851340739016428702960641224028517163122557421180485805032960753482331749603592766358158726258006607343459416618853809258757381947873274418572161147254223274269046178517808067192769648883476188795679438127990438495477803557610139083388628126503179421640976048018231504061280879916666397006886168433247812475699302194161083671934863392438076402990176031566434226904062367941807735462498623930710075618106194052104052305185698367141043926694618715111536488760473215920778333797079237582077396745464185514264701554603632321280104195710385012788174396398408140003385098882539651577949576546050242241714458689804786585004097448424893855914037748063450382787318296073218732161543224818916017272115320896914525260086071278419495608934263183578279041487196985009215132392889981292232035301837989249234944789046160533717319195275911138362426821439301268265392584500982396221984634744887024986620557111261013355217824763617077592074447110489718718758005005247140467054684651152501804335399798556394219142211146684773430913182525039081783506182398304955622329949073733505484483131061666364923446848617330169576753328419646224203487309042114845111089817439113742288587599501244928034487752859235957003344261767802226638210098821512332145779033391741184841610546924420154344904296917493403676771133408338262417678232918605476728721145209925442545255647654805480746338111654051642529973362078496680047968055491365294841572457068273445113373145235392135762114889344705884915538597231296567933825746496484816432189830075428910777048477612801967676754123856091187438763807824318927048386555074806673556706612878470011914581337155288877136267800096524109445988118887785152602742104522497333457487955880766543185643145086594015519777256898704799547682607124054666790690454581746424849817394849242320134806975004474585244132663263268485968661715370230853023997627758489318296142879431925460444714132162841888582126660117111482499821608998272762966274118688478363132305138527032963587145330716965149242344957685820633356831142225308653255759149642575453594461139697467020781361795147827966463241597734619132608372509634499734623765595647763991229871058959143806797642938224251734658035553989635818329017742668479427814893496041187857905799319710621267210498295329965095568293947659139260282065405746372715354076958754639507621024577532133656849066829493402252691579798690713908250952399812769572349571734422203784156929594165188989469647324587987610465388183322854234944947263000034491573145574336132817969104435937011589297894326619478845102050155755022730250333209399044642484020111351130739984937496779087248725230259335509804711623242149281431380047715262659037308163641043878658965045163047129129748855224886042642645821622156508964019302873742374171721462485178869954525577388536914649081022922993650032976884162035134830612044519554088077141197872291931938459565444802986950969401792017701167558850994670006817267075463710898461913518706158675769781527404101980148195522303363342002614624583256829795944651124223683135891179549898020869505252121140285281784596978399756369640827759641300575661981202103077512432466439194317654598362357444469000648317682929872993075321968099698528787168558675869241882275489201623967853077926328567313399238379441716281983300762972423523511150258326484540688110122094132865453846441912428383826651657388821632255240891984806467544228089537268131939866831454165374900027838468218987022718930302971936915348999432337238439687239067571593377779982195060607923531820540417697821724628005630038893061582717569295191664082197239618052117431443417747188485723759111144336301483909055526703176772235625441942752334324094410570796847328558654023939807436938610751390447041315335757025601694087499586073318714839901962165898783798359307969747568148004622122700250666413585249950729398629309121792224565275832826386897469194379153513456467466744153651958652763580483858922255265953691497938745513484671323488731491999998736973325428666207986197271634523032240868867344287589956050080126459865587973864912284857881661084850191022461584496187301544284536849956061155868710156145096204794858015482169701436169220245410309692270268528076171881836900836209272391404093501372973379957734397926211895692699826833931060182033527559990013950610870360864099695103703527551362266247666696212762698264772791418289220246869276350061877253456208661735027098378086374116048981151215884791652651997939160901794626125010876354432114397614833388037654654072072733841279981691809625363448918860874580802355548758501135723441889898995538912666275469300807335413977639574146150702639151140408844461599346399174879888402915282036414191999876686512578230092743831021572337015376248176775762036911117421425998153526573244818533010168086926730807536077072761134868785321903721857480337852312582546624348425946519789456179766581038385985714421782757091888592461968640853312910516933952862706864887517432904878654000821971094867197496119933360210234230815000756069733237324254641334258424169573288181195311525457367358239583952880981713919708525787752059444192681502130322471331802329970424790769719934318989541921864460943739209426019514029325444477345305039523335259107649720037623508271745379758738547797459804574349720153214683471695606037188219817750067305736342415875126393397687253640853000010470617176963757549864086708637586933023155266872658532937743153199161351071451573458510931601118723936797422767434714537431703519933180351450938887913684321288051836540477108290704849178280836626908808417352501960729062076077623097234882782823891652407020159881340786480176108996337239434122737890134957019472615752744610680438957916765964946006301338955863952595982790177286335149951335627233406780247342941088526307990510643073210532437507494068711302040789328181686421961038340866270797997078319240532343182841066334847224419511021265691686221473552291159176777093899825488975316297003945666950615230448510370878501148688761082290748574117866545991970931134593742806434092174125082436469653479845058555432661410314486443489693338817887648504850436523417314727332232087308800424478725158786713989396018572300066417373410400337723711159343828793229312589619980792199428608946176625195267080455769169089081822082499633733127635973339022150686843820825787259598796038367144745319386806796051816449737461263652546697420231404622176464765304661802030366083560580051604587263397727039605065950942696490506869717866984664102214797450267907166374014585901782167361756862718560502828747651855756656124850696281506468322844183104879498126917249332626513163459485317634481813040729437857149980838529761915836741529827354802160185552924422509546831517287891523474711147615196419341217112273967881206231948978476990590651784613461535620303179275255108059658424086791638578259502867009049265447583933673308384074414223794070585492102007445351101738508580279349621227695987971165641719307299901070238824326332369179887364694888220273323237546635864119777510398317447511475336957159948585993541386126034596113334780977904762338610147976536646518463377833429844368756649661459264333675532071392532819735957137169776401707642806358021938207319647305968962657413560748795040151323400860887428339971749356522570161276958853487493985873375618933862699891894232686655858774806778590585745581344216761409941891545024475434374188963670370816950321856992699201355721667081652697229846847340303528115252402238451631931497692834739375772448817075413903439703872885294854187392826501650665430593715950772503945186119996546298725946487765989065876821974236387456419694405159386061387533389335399134635029184631437177392963186710557190896933820146136838064727579217228482105573837131413135577761541721494934925961002284032460102374413041038102613235488939019534671843151621106948494287223295388159333594069044806491892666963242597588588718208809211135603435498399664781509992570234290736216495053633906619013688193196880477255477946263596990371043625917379814948988573379371646789606659146266461773951635178213637678877014724248396421208980900254497278660914102095838844684404631690740191999126747226996620817424553992859897139534321574163962858551255055219812969282134194517838427712089365762534485685279406079300796145005987387249790193266810010678686218115835320238676130542642739606004059494348158000588967632465993349462065890337993363867201211564400469543911514786789458360554430131689661312361142266546604149003019085999395727309609327753414237049321626169817160089105568172483940984128726263103161515357141413466397004573974751159935292411946814075126625624673030007814606876284760520583086332832008035758205933609970940687785767838076147616528596033255347991101167637306341099536214279251465582546108773992086302711227323178865185201911668473643761642176194399404816947138703018853643454506305446536304803391290642000059438071078623985987242549958879419220878898639702860089053341302302497816462170905588539062414195674782490516849927490697002493847167963167745374223520792692104054617907846710476676245773253308368606683900922827597266216463104819015577821965134869354923516141657386523562608537397011180580338324278675116165399113037200636904679491417940286853823685103830877057329112496650577643282801586317639358462599550289758776048765590315884168398355333297050591415011866554809474405801931494043267422094545278581261004504952539740441527339952525071664271115582876143676323050760301751562480919236458426671381238440552296916484974106545148284605525436220607155426710496828984851995929216767535788082689585335242728046335881720612568528641402617290240342318347783718953422808092984674368218102419188671828736501250602837765223576435850812076220492488028591513545137661898723873808474339408276921222553463561739157636776917712849969794144743350460034262025581146982556872600947286802219809281477968070387992102239983208716296719705640740375833940519412548747248860732379008030807157914475768145269495259117866817568596041994486358078649557317353314524357548626298138349378332713006141269775346575806232004764852456823953292222349969116274966600872696588252558174674901663445452657993578384052268678414722166522658286368745928731941843260473713947258950570877764464308266156831213855366155907840266786728364199734676653928422772704053945422489768905691822654281945443522666682564565652842655050728589703611836831958238164639154107097626110023595560849038492013066666324508940000849698897491250654290807869403873492353667666695175556204777722513745642963842456027913882301182980984453874076605128504025365573330618321234716323813015671958227144043449812581756562875084693954127496026092197200696515829303686970349460058724689055747020985820335471191735109692202676647700346863091684581799461053357134001474776510876230460329146790716417383464405182939987179943581263303233088842215235555220135700479631381215096874866813489927337856407666595224308265466127310191289754565084020046167743909542876313489579739508484092820594134934789956071168579172103359768935312493294603074469039673769188984796549658655719356879242817837355234883080539426548940419424706086469236614968865436609975889218090762095828144770204277478476837238892232609277545842160067675158309281904221382878916600012742773372266860288081185950494082984507690358596069366370951258175546380710341246319674465398436459088154071276373793711099302705634757072729519599119159401850986214511758932150016163097532491037644101159712350067609360326546046829209549278127168229920232720825987846951086704656441766827803722049556892740210659477053940257695463518294608005168761310198735150527093888653117219639097461534795931360215685102930674355640014978399218004059645817638213999670160321238577741486666265131822803021518606466539524267005165643888859341940996300836526059775956639406111237911685160493073469295298240811799156180307407092741255008416807163531531458121087615598249782470678364934441881016303073214913487822254584554882829242494975283648380610450621874548775794014568998350474340756341734593239354969031106006699878129841002410073789055560359728150307183252348292598496415454658393115277026088903725202980529571199030948809035496634059587464554292366851617366633483255047910616702817073687378405509725824134955985624942277239290102980065719026971282309874479833310153355588591729641444407909976908474436391928252036632568462857251996071760176230565373407016756619130414806449500369398204111401024543802598543081118335507208092676356986092815374126614463509997158202852570099793904386557687668304233364025832096152993934973790638016481931484318831850105490697398664642954634330126981125977818351423285311372031811264447856305004033266847106786547854115535373939217859957414145034527057197361975151314650627995868089774690155779711937181964637258264670749342341809716448802707177720043319264479870454623740101989410833613593554312067399247626070543985194246420840451216206546273458300121363390211720500023938416185558625914983756829527458673864482376912406196518462291757712650348912933995129718055257578371955159574872574967770154582206925049742294137650864372618987262324758005986783716938018993001944529071190884066151664677770173826920649504727302320762393934088560199524533475997627136804728856395376071381217497547639367584279947651218796750766856691711472835548582185460432617189929865775795029376957573946223623476121987698098421822693876137334687824318141711085779390620046347707873142187219926368896745962693845136915511650185755348818336416326192237086340547270742572732777222621083403833423828703611200634521418657886434696267000317334371861913445587134413605495665211823151380936078979436542312567830559055856862396235428927663863536624893814354853654232994219590482493863477130847291887256125671069747115095760056051716251953545663519840144796921321197888629364586616293212760669217881494309512699473785265517609267709581552078300901982132204016516907878447283475537557320198680464046881528572629301672623910623560584699368587405329526875690272156434817246683882939805757145873047962644146326418932051850436410058079551837387531462976723818433615055507983224061427831206204661791463359181517052356999906476077696507266869846485937779482311777304435353225162019356433140045398127370761367096901942636197663992091719395927242830171811985226711523062447584889155467290265206637474256789373234564208262007130677902061826639735034653449352643105176444425616119224510687289530741112293444166247126896459496382093101342313371791060040982620222010452940619699697130911482889828373355712042477397058513658184905218363647137214886076684955074348026784536341553389305785367421232899082843636428897457960660418348121136953090851140357238793395494716138041836819927452074623940408708405531451275422892252543437403573473486662979261073586560380338620017288143627349662028379816249716483193300564598681717416463084853799996427656495929595274654831278441865375170366626208506890371134190987900181645441562418434147351573508922102744341148930943721037957749067552433355697340474857730390093806670610487789610006432415941228591313308542185960093386935596595087835510698790110226596302523777931270376436888401525144433250555856137918271744155926693829607362237806983449218253352328788466986097588153147944316999026485179874831865145899289433230292461840220353021373107768287375447816946202837040047679832597790468008681128476016821308199409795501085742719668960752005171826419203554530430816169886723560248224015743006428043998805431765190287584795896618925653187597890612120747795707303046839065081378134911881789929420281673453643977982472692770781148616074691585684667363254286867123771928731816498212972112085712741478759896822635398701522203657391382585320295970434666089273010854511458357646861983874474112489595698491459329430374401901631307587620586093720850996711580162652367659639791669797277344660319816906563742589536488989478185601561807300210989884358850437136640606161890902719525091054221436598756190989718041863629349758912134306426890471212369307370241949431060585233803818726797554237381449368453067907952483907110025354947678289182545924651704437724340487972262553919317574067946921759245309193073514933428647340595949864958416293339530208096176195783174380008551694912819869489900088975136581982089385034614885073686781822821407981836530502982583989937518570236554780064391367538247418429061654672866268098679441317552675787090204639057957755421912568223657410943091364022296262892880978747926307101448951823474013954926638195027494362351764534176689232036057807097307221315981332823574426492908924583785759716511445953642569836043310934923122423973033563191856989194199585159955111290599119201939249518593035491540179705773670835200855475887225489958232368311218490463539256940731425008092586918863372599145091663547052215052640533378777892301921360641290456209907702924158264276960147576420886603429774774301631674054498624374245755793195838290116417601454506998146113168158436517247312942842960500339420402071833597927000883202244819575404035171600052024872186894407434221190061606672649967649630959546717116904220951521167530008588305288574820235681414907989379964587608573610281799518751179771199015416925884886329195201469766563135572122548441843797155845805871164159198057508947773197571688101247646251126314318706073655697101540545485428615803513885535437024412706091828001158113738006305450562564089030147365066300040923626700616195151236924293775460878486830287916464522516408021648078049840093795024093294584731920911671534190899398939406659466334477995254684183578663072231221514020072720832720729098859093596016114257785792209772762090318856384451129138580294289199991475791509010361174372577794310260135551864051976573407680283031303512761628184711540309781316588440483961715866313911917192495311077917730804430790086558907610481330250596313715739494421052334064926281899695554487411081576315243778642338026219660324517106177241511055971794706608527636654136639989209239055659881256293084119840577626213153502206142784752428639896054485375602672784962336515074307540876316767272697908799018440961628717022362264439792787253379604953418309599484245135538394192916578044501419793083765726091282880227896320362577094381513834939468442342633010348143599508711443017089797600676775615462081704685595936924983423180541364970643324986476302818572295949045721547607270140937834424285377704617692818179364559619570238248115554453049489789503896166767791841865260859998695551165432743681204893645508150075947535314363830201420221176275620361441536193100455766802315853648569763571618076395506198312011037959961431464979745867914652819083399444113319576470528635308445787766629398716699591408608662128427182954921828921927368593907140742868082510047215358973412206717720245331598068139306563014555323015567937070867263156181849032693737142609988937624538814791465403994438579995582289982632980062682581813580801631729648126909556300618635187637039039244644470788679272535716144158730659032146572192106428599508628784550037668776907495746627555943670736006526772824053873683758618820272024189396078477258940622955612998409432583136146266908122440962348437426267911357801873721785792459314656636311178677363016894512162925781513224923345491261683987870806340163799791930800062793332033113515777500181349610155770312775500225597560583404075914316711851451566091884053031128010755986805717688746426968138188281373358802400438917211984865230270873278202937844676130597837640764246800624440459215130690268763024713076326347916640510608342662973744219655611619564179155665970463437897435867207988678390430196813961225999253034349878444475329196523902818869011522697104659630745235545500683239147867873448345758958180992018270662170628918537899041475545327346538258197709752722582188140322246984504124663890400572758993097767725764685381365060522719131818229350882576514916004651880048835108493154543452644063151056359167834922943323291068987865388278928172611008179679495187171943235575517324025099599758347665176993737679816340082897908920476727294779911249069841675428114636790821269116258798038994035767282726740663915856421798008408546686728331843541886422219663241983637992542726024518375005313145535647577885601359633666129176762239016536779757480259921053672261274652919820191691007133002479632429191995847702610774925288949578642375686527575852393501618765560035629483275446852320747350632058549370065841536435777049425700542117115716987626719164464304331839286929158941342080135546026398832030780257417268552689773025946335228197196874647403616919522628967055288169357068871809030541070033997501729200624897206915245570499725392331455869944628749690390423840527221932998401636273662375053420054218262951813055002358530572037303840083974972545665977063433402683050987094199507963713777194327914264935034641425070578239658930718105334433583132027580636770578816385782145193491255808666058016514666789809919822650580659548595647129790991331524212956553472777585794002611328618179140058842905368598228995878413789936841592031795550139652413366486357239890046319720250281517218958563297210064515576740611821877250102159695199102527376440429462733380996864239776793787922257398289397561769960870036231463537719842430019063851961878290880838787210635324470171507483362556565274211503161741741398808925114906358657110318467469406430694953368131971920904938528968222814118478127724403427596364973745465608505768997262784323548488336391346494650748919138227265658308786092554358131159604447368170104854438836302314119862847000627034601184358227738420222320243896646659989717204911207799145536649237442162665949739038891950272453982557131453439762755685932907216126170638953807919455926930526081120313577833213460439182237495605248282999935214540886623797584179871827953014377413123655832018527884510154249649029708914538939709512271351666208715268261090360000062824053035834867446127814680855805383596397554172292831489046136928162464345304286530370757257917710517277599549284217618137338217854480496494861279250440342364616732021836068834110669723034398561591350592044343143048475544747350268852820448408531053331056793105063755249004222958610233298440359036242718136312601510660729704275136449278311662925667034992960420129215547215060946156725197366319838344943865060278277110518463900138568235064848927344408434210458673798764751391341327626327930484731150744808506877921979582030613538531022128781004678924055035670104447809145169666578349411609150297401326647721027591178612298400016705374619988400376470509977722062407512790353551771846952461323922746966132269366027492634575929162174128366019693706019951157444502214108123856592561924934337153621458799260421233627457635804126035109451174884572701281367907239266739895658990114381953689916740368392806465755562531147236816726698070814346841808284764947649684783595279004049026064998304216787027636466679435288005433237677531318653127556778727802786176762824192954870333404777816524520055365826540176381053271319324815454950111050550786912936750603949270120089662826895236912944714483051044154156318479795339900688664097534950468585628744016938546647217181576347338016361674973945749761270370851481323646802636249012790030776452308375561539242736807505587698168251229480821319103615933834794508774186413789068050468966365119625250955697635894451436930897863541958405193845984127371686762980697434911587661429070713850494694504715227670534576302105638435521683084747247992730166413287073384551469051628457962433388760278582354779908810212368418374860089937091291166422033443807370112234020576839077017052772480311291455644000079485566335426525341937774260846567372103286924933625945005689066946550003723536897234511932953801048773216615775883342477978906988689661709949696883107852619157048939362808612396548522388231847816662812812049916610841111183376449048055441754546221800176029797388225869309009986732084500459837539501386097019777210376027156959520430018692162109315429499390736937237480553313730237784045585210755697623996237781066761227966497978295380657955993699639829130294184117527300508621159336007925485924050567190635150915986531102811198722528546159173883747623550102106211926584167955760235153761777474398740278939278691544757948395779591651066912399142096760306209556924779323472289170702217809451516046297669395615769389158748274097329843979328873754615328417948334091507877102957732192443423527914161575762635199537919212676806496153727444056718905655367978733895049973935312113973713051895374491840894204326482072822379832102103937753685874415732608505758204290103381894661167242710487641592208668111160030587747511720509816152474751306780977280514172757680551607474851132738823506959604470205793168947401269658543113002872255279322574506963922861761337956782380653521504658352390092772480840738937796804267849967141126509925327218708105571538292749675250322140146835430606704577589850523872319339742161218181510743567059622802818626008854569422395104531043759762558961880105702184541026972635770990834083761086970494556551922435340346431259678145601009090234850598569774276555161297431965862810163829266293866320517588895426320098043752921849393645461614478839225168991590306855092170886506715982847610047847512762471144351419010874625599662286205633832624168910213651074739866234224138063522132149863664258818643232061661147522374754512614834566205028528452520297939892945839341645915285693579273410892755869943249764876194659800913896602390370091961031143132672776013719990481749104503412723859925198986758146391792788282622658965949733728176049504377806972765256262370719047487621928921335987696604551471317974834221570781800264875972043865594166684673075885240986219530655056471049781243377233213902433505707690824905527711713791496365724366364158612441979648504045749736321031984636642107979370312924085943210129989240903506490603459079684366579088375125388501504967065023177474883144626768321634816788904333388156363459825743809697726283376278232785251244958731462243398713889142931062449352913617515551649695704344132908700746374060291659557843657521597616149976266465974370066544012646488685999196319291769301212772115144749842659828149272801861011789163069567573138026315065177863142029527350091308913523901982829657876219389313768316891965168065418059235871685644438561374287112653970933952862326955535717675305234409183975214137603944353321820836541630196334782613542428466937008157131820089088290359871983713747056058682966418137969828967205915209820526904595909789474422682659066183306429162302567736664538279802825684403387008985562496112921050680917859949513711548455941914363125519404850680153767276101834677749498297527538155855378737800653883736296692910973637923464327643893000953331308485741286418025252049871873501912622399577022318156405446391526000229877871031452271000219363109125848224531343482315680257792083600478467887725303627913837503382840639249935956336502810132779052204302586865309071691494941841993143980666038851411833676053247819940540696348605092938825476986623605132338265996534159921144700938206499351343006838041986456958115307095874695205258554381645673719963199221995024708744233142239577554886825537016324275759783767531812585138568756925314630935564109087241634264670616280004569377334433202111854803841802071101914641588300128301776389336912844844648910429332435080557786640298976121793112139065022928131407886252906383071058527521281396979057339835815152526277751678273629340285315225309971494439432590141000097116389729925829062107267542208245444128153174244560791781483953198882803204331013151462720679296338536080583374995410712555626356024583057130575333484007014679263841801189566571848723750411279512398554000839170856716836957114297393449153771970896531808020462453253089942758727990148760038127518385111718535047888806890019452590582656145651266355611188619427552355807805239348942440831767277874753005659870958371690096373647716975731593590164419085832271242754680348467582415354792393101786741755727486572320471989208842329853885361338342228066187757825597977927620996715950157452527267639764724814648272651441540999738553812405265927004319252047891809739170849211853241793384665252616071476624569727199937580929409203232545670579739515552070122163537492431943106038906231648793083596847846540789468665064124368880412146472627244092769791492505899549510743473706206452920083038927006983238485134733585020704622257317973200426084743404961210435883825859343816896496996076646356879391555602201715561526228224562848741722583448837004059712710290352571873114229984037959221066060682587477032183473117485178008506022995076302547284534386885436282132212631497461963494658805387015155130177016665444049916217656710190712285464954446521783140262498776303162703525542004310455191746117965417831079282466703769343229223943997336493767217390418857707591766922491265009015129052751030203212006124856198700716339703803649761145707704318185529407570701424814053077608349776127055476567348356243052828487856284520709710728843529917127598197833136257953021993148777219412022590624365515883384250478661789240949273031623937635004735821099188884926317391709069158046874980656040606362383033667988026535351804473030910484857765749369564071960072555368103526540937801341290618047130620339472032967871215190005414544564383184926295147998040880075029560453016377196411104463362833076518646819818227899104196363893835201988191852654740355123038641825475637558028112486201464738277555198626428966644713350885851723870608896629749075418293152494799306152649645133532905970677268794055765253561554248296666423737917333109132118639737661427442158796559824898864650068087471162525224823314063236904401382816667641511915483730562394164623447745198599014455868833811009152924131085358205151277795718225368949263454443366789180078204252030120395211987322296518178106772429068948258592537019054963473194674683671328051204869576401645932117148950169079486362978562703073551039180448520131607539529362150990151284091843927690285119577074266478951827671623902176081605843325757361721213116644467973064381477742283400312356400308380409259474488778911070065337520244027871463604383331179537826910301741644473894402246413315207117336013006699694866723063951472671912586711450224009930384089306061644307974642996237595715159639845691637181156984943181758603301964473003863688399149396819951725014588823376962326311041200182750034592044342014039575925806041506553777203012187554751487910261830927145734298465420222434078052661425090290770056343377203912135804273297296639279325252672129769927285780825107300186887322426596813971275577945450527821956614129780876533762336035927925366347236449988344246231680607092959945913348297527568590758896077897828546357191229727980833750492534635232011099838243047888935488396031523510101081447625579971349760249011016929346273970745870554780529241884882089969835791146092804694188362481251390369036356625413989152036153267621038751183832911513765308710607044636991772041417466273743153526259673385516713142039178761764442468679103655406239083734581512434107050952292267880293053181874231462536194609019874483554848515248145192807286037719900421570611351912278736989319464152648437663016978886740060709548671165448120456117240967144594036577544767349170641896758723245321925932743573903503306315328095783881582445324951977186456354100945920119734275704469250198584325331548522260299285437944004853931154966566958262659163565028369237012086213823280102004397224586819864287460866521782651056843965071939282193049253203462924933927471298097220630477077640679768613679099130401357449113009886436132084026462040470306886612531915329119337865094302435520855473984768471059614235961168559508872557652679717671668500990650248950471935076939766894398608426867708579474659209684247578118989042748778047042929544359369528206293308045837730220887634493632983189501115772307006576143742863542596762270428887656957393870896585994352746234697085560385718941360715808003502029150383162902151927045656630684415846697600614538514153574329960041047626480051110025959459458488701762050733848796353287479649892922359118882111997846452656895890394287073615462416601649204284796302881720748121913980279871567288178606092982275348514488102415421200379558935164119120641811679991079255942342591274298507726230848253619805634999416284182573826652989223233357245449960335612639410560311483249736570413298166271399400937657985247347907988956825273115144993089957625326957732493083541534216972675547075798732008939681292878591454885165175786567614234224585906623720814125406670161048531514380438596261175110933456517476352586830856233138504063554740415874225372471564701396310949712336705827038484114465035093386684537676859516568819153146169804400712456409727924320464369160955672717574607242014386139926833054998312182319428191587122073895716870330707295750111230984897577132663463063487317428729890666739377809060096622076758232170319938544904296947636924204104588305207085369736657836756810648491091800251487128973099375341679139522808707012703127297615211185516854253377080904623543643633330526556529713335655001645784952233529080632010531419179545160041334809371720146832181025525367241623347800535047536085045277195314721979794339863135859740440545626089921225501451862951650305680664071008445666449844760320004699858158824028201824655026248775332525981395025716547652843203482571761215360057233376083269904885424216160042842398828976757184829906197306913964363026171087146871150353316974737833221526860304930189625827026223822760250009205314954854250382096654654438113367704025676267842359989556138658182277845995524628864109974085485260300014269014799985669408118323538142220222117259664888723539515679737795923745629164180730969901374550000212085325361228125223712837787202113212736401548870941930554064908540404668380391104611772558244227556911499976059608181167406847426773135345763749430452871198901575814963028683017016436068395109478837247503100748255283697381828115912884675136937231080612080610961881714900908068385207212291261217822086484203883677346739948535357525285983625752366780905286325143412629804780787743957530468191245286783529025734927335983882885792972754661784649478095135147734194011608363202446261369316772026534676928398767433029801939432605945844593187808932031586884812160929301390192327429359624333343628680185379178031590012378846683773998295114052151984800428139717908331673395169837289934144883958410634012361029949744549047028125035860040777966420982432913167364023647258764674860422281474036238570313561837431438594872279065052980260268077061311888193772507671057392781143781852363172553159695766932864304906636810423344950988036465644099366525550502830479290473028925423811011890773818176312590329545944360495994806829432955475123159916472594547330771781204710559259172337434325617620942538450576522987256887540720380581435406983091103019696170195421228854819442987781424530976624773324650386378444544376681148466545986812394087512477014273205812667074847317600116423296134695211119987031614551587211816363664944831449742862392799851897414844861908313315045762392315700434931907878046519064841476138266764000935342247632648436197242766569898501875806699654795091360558080703399322095565352093825344311720120124027799222786290983859353935181502848432070304128493652317158182201219994475322265408727196248825551196452351920007525852195709392747778103140346603333696775940724492584831626079934593916066384070119513041853171437060820179461094912601887894927728513177345048157596018552743586250644661454067731595910068508767291580426566092547148898120900400090736331084717937865921414388806395808065523256000663749507271035487812223369667561140378775077680164211549214653169024338505716637420068944224207608281948379864163812703658974486403557462669861514288861766335035235125390888088053303588533789645337303432127503044777236645939052929562347491571814950590550207762653647528542854019225866089541592747571133488778930692734078856977793052893394595453869045106423388441002733744584426056792875798522775652752808725105604148528842181751207955255153777269227838086703474271892542353734931330761594497945006715116694326929738723667923842932410449180803412193106742352028666407618056126048726041163565148268182906172702214800438392877525524902931960187557812888459364442863959269762974642714966394071941354133896705551833606501478979778162806429725083730785994083860948283112295908600921357507591242499233081655762843224911610931346825702086759162159620812220789625431869709811077565426690201322979898489913784646103114883371472751987220045245669115354833897617405519278010564099601112416619795431415466194790896789526095406624968097646946554170121652518709797989464620365196144901069096482298084537774673768724856233523655786296557402771495693934028914814024039500268007117665682667183224273397687083373962677721591620640439679625370204645373056686199668888390070148733757659167106396499539614166422660307230990588478797598385037878221612850108558030146553675562251223816133285845946969773144717130373179361123514317529305949026280791071339236428546904008560531091646285679651831311134969666422560214398696066671435106319201300422045578491058746061690593275045091939999988673403724322645845584447554252643330937633418590014627853596388840243879421423273438749553979811291188888332583348987461371430116826692375128400949597332315355682429067063084486968370329922994046607775821040407271752456881423820254562432602362443888638648081615016810004303366150641967400587931667491210210239477883292118604424877598076830006606821364495624808015431111894941509325697468801015526182017055334538896098900419846288371169452220382882937167758019604132998986304666839063254497165260099421032779294327423517948602693855209888649747938345227814011941504721274200452655234379877375592113635204735917665240328350019676434328019241091123751968138929030898554713294128937067634330714911502271989416410311537359456598578742753203479360278610439012369731004980125742899634958753934179148186801523333450983395729674617404315434246832540562004999618820773813455380713208785039288653761268608247152580930387539868734736139771478311081186426485562257086044925721556454968552535867613810692333359842178804747927745974150899493224164113555072777466769998169880671149045356649072773331132906658478546140524105263106729542519442548530672363050299131194163029068110632992944063938970535994638222357248055265449878756760178238945272431219695237201755347733123632062531648170604103222638499177522397837784241265745572688239995673209717342925423412424086370175765647238376302104125091506328593982987597040695417917391661271515412256255075771439909959935433391592453224213497133634658326059782586084805637052716643401689446590610059429228222019725696342511353169051062757365154042433129859061435365971205187103688958720520381247013038532223459406945352806154724187406249664510777992519548599616106150921569746759502658510437640954093204258649704368093945064176515464258318244316949540341784224122173344889385357255152966045173207426211386911755396253252201097747804544328964612226637734586989026517550746965569969336662999047286869991865661615284094635989718714321699605283433478160888145973864583971524758567022443740875617957807009889594754159439094516148692510941405982992128549340057428334124868459902450282660644293624273055583594886882687588377811508476847934894680057627279239580219227349494227717951661715016844627350928749157018948853295807912215407828959478096025445883105444722935215575218759181345224724545995208265146388341414794511895864471116001906011533029907503430498738509418441226616796740556616333783462925369402830354242664550185417229482227610496204451842992016672086923246497859684661937961783331635974403583685985761451320405408358733454007661826744193078068318237462916477111123083100021257873265188936929990736459748094393850399051006431054642372881276689130654820445759972904889088459006494445110571410048919819531882882784635876038398573138293679042772748907822257587537826056116570422331464127212688218891090724125399333496270507182966676112863544528960318149122406951880366431491536457951149005702901672467409975818396932789349864890229182071482643142078855261632675721921512346264017289794430522068913959377840432434845820215386653065583123458259141836868799794355044213333415318618477440659844954779806011054937666156256169894839401388189847496544483246371949763391071575055238506847658999809198936563988885607785863011240644584302401245844093068061679133682235065490917797598203430253650144297761657810913715593081252061675418736087006341558870079309233775517095943163991226831877064424826255832108152118178635480593782460435305076486240208904591997744941338089483679236969260048552980978624498735704668322093623739952378144906295631347804439009888127848262615639280606439242465698151253450462943584803217083483204024175536140844601516611728873958410801834206676437836053556049363432083181356727007019987478848379862518185821498864070506546742430958729174145127810939189964955555603757139577534573459181285773278498794300091944665653135851332946290563677421588933610765007336122419493615085000744622222939673359512493580772750542246703710130385281775425975499662176109382799484292176473032598797698182880971636326287815092076808155906704035484847588523180349596382343731823739990015647227948837938717200518270697523171441444400712835625465664388177687420006878626651351157022136514859427532370672139475491337804129886960382137926811805259281941234265592193794393413398299261947035754040647917819766825559736781865939628097020275700990824972953640382218957515833743167001239352960776481337749946432958533405834842621412623702086448810247758502945083044076263423914216727596137391176571869921983200433047984293316404048824266132368773527681883340225243960964585697453739057556833201342400410280425610968372215244708163748199103494676223330973331641300797597647864217991436481230888554637984525446104245025962533249746548711180451015539921742909769939000299045548069205750943611204544088206329408993680772581256736476477890950952569579368491318159478486603665734999419775690514731717623451466912858223399387814394972633676824963866642234887332129575231249902792970233999349520132211534236970695820712392536811542965974256427002041281619682643584897963551919248643328171030968512228876288885832187978586899535079897565735498231020001881611280229127021359365899154943075920627936284333081636605983253485460142550589175292238077117283567312194258162123722491482834893304272239909256439271377899725292338979366050580121023222592165979588577285849061064473912218933493612688658496293017741988772485860063152706383613177235812804872647596248967158624424470972024940624601592332860174862478814817161608274778816725626936629699499861037316477450601504359424359903189053683563662131481819323131307738692467625159117560187083740894464908730079082187811994047888617104567429870029332620498969060065663266496908667072022512095359634731434744680293144758378902954345281811696457701215360395224368644542078901259298232555439580464724229169086913257639805415988984418433094753619271704010123065585301930314873138447540116187750363200683626277806638164771674301176261136519711077698453985492806760177255580194067018474409914323164764616608552769410751336928796601051221882114704840651645578389157341675675193721061275652330627374062410282473366708344281055870436824306803767911302826742000457572523309321086037750957449289284782581683541794146206180256750984392745381265675491103033383828470880125671269753829301093169977397999684911688746148724700067633763243721453179659193502117305466336440138534362713793601911063956385178758963222243535021820659977785382198469489366241825507042782569927637675951749133049684579366245147190239064836348574141847166836874404015736179683953279889227771850311229408367082056927441562864303863459786440864467275352672956326234175204883082024529353878230808597802963552605484530467769195983312443519532372198482648672142375814738520448797928606819253463586050732313525605291639207950411741302303963336363601243085481037838866651307795307340957750345236374612215679105459928870061416001915329293639159725118985517325370330760054400262394115829569684843065725326546017994172212814973380961318860319338847006756510103964631304519780983050977380286587396475442540355443919707872877462253618249939735792242723422639974284224563318283373791692497925092669882232211117007394605688998891017928750609259142890833506640700345624223886475281982209180149859567199109174484406438411940077144028992718280629591454181637746825069075698632150937003922042560932795970679461005401039778938017926941852510706049001972417968371264260288554121820544813049046137356583098750847007582617325114121984207957985706707022506355263526572133706179309324131051615756680942503962093708468563228520177184211167026689991560518833246994937598144991232236868921048546259127478872553890981708823537048865896306350849107421475054624298592402101932277486202673892908459391040953708985821148018536915001937246257195575258530581363303777496917217407429817856245199146831767702115016086486768793985168696725368656610247590370419795844960191483463265407386556967401539855612610503193765634772320604224567364047234573941071078729960706139998802197260644423878377732599538461901776625636776632615839613581501770473938329814966745004531224277197405673987576281190490877760908660265508578740025275576852155180161441198789132203450982779023801058580336698273506652799162895471364142355653732228374109314651580979890424794084309354088242028477178831982321292781429081882715963909401327767482426376863559681995932405262343841593818072028836697721388909077053489115878450200388457094625843317252406344504926116570779636039381135770029755746024724355833669985128434318691674285586381085673940537765928103393576495170522181977753521475919701366977400003787930566705958341087563870148543853450941615745563225349153669300361734341052678839905205082481368638996865101972651183917387479018875210414125004038013135901300211834300429439859360531616036006145618685809715726138384043019678273634690312452476792954871076705281841746587009173425912180837984570154117558159921587492536446600215682686833697221083991178349339616597408601977119882587937104970542604931681674009089703485952198058248456647898987485950505596711348671329557207163345141368050332432602875687134127399162924181143544127323053447009914662986319662870946054424025169693821142881518620734688070754858433793934076741150712369951128295950907487318829670072226171095744301092024978137485768743819310756939159339048473936837163499235862422828637924593731341354525949017700410909534191550952231024985157253871857018104868153185015561472838924244338872377969768045509337626462913408077048955099963654804361526406254247226051195847897170677129950400213118675826914503836170344643387027770297695483816974631310788320969879257143779917728783621723039058471656749343484659566730043392189912277789648287906907968686563605937337699783178061133634946554449172339286459701869015631174036684361242321649867862938250267313976357371625890055801992479969253288200139070807219104796369635687923322864297088048320979092539391011966300671420263903148488796215706562783626046214527018234667220448378848035687094402174051680800939694876838066315427591389766295053765601895633255279403997244710279626284627379415742345579215212263296729351508535245494149070094645582921299172961994964788567746006792437010317560471187361171777397687495807294003854177081848851444695383511925812989011105922641189764958718498816227186626582072069390699196249603714933535759793116564374564154798827292807361054648284242694428053517572725132644417786918121029480025003946031778505428153872416823310683851284487466681265847663168337652527197337054462637174041252107925641256768463472807724416214179443094770280956835890331313797415342492902981984532370456538741942008379159060709022490753324806739359410028362330732342965776920687804562163539479999368464022863372187599376816784235823580099191752591762363580344478153250451763255787457596781794572147846906565203810197602643306061773560037966709825417627760328988472063342418302211156537715620924500148412935309664262454407658943359094946128993436834145615578546782850045895942013159464063749406095840529079995974213844670427816595613851865961985275752971501887877305637841622321493433036124190221932535886652327257395832096665353313324938847085745927283595608291442000646022242995771650320587773645081325104257066811405784667424534789981913765622816112609886816061026169694727032465501921768638731797931608542146822255358384469048970174952615005421234545174410809953186161799019838818735791881792826700181831211688777764634318314587495943763646971918163249669082045444187772497262835648882964059307694717140604178266016187394621646702162686237179315822614051127569297695166077858322320151818832857431440600444752009563339886123899850482563950630397386591215990481987575950796271036018660422787269829859739854552000744934598130420166214821335292584886384933109511401275924137135145932580821585344524074372244559173078757470716392214985793128883712052184534897222274045427538875102782876396960193229499886930197267016156060863929188295948541757975298198857497994697165116467658290455737071559546584843540235543133371599843804326071454802491959899723379235898827720595116633950862696988886513492751680763776754961437782084422983574480229790857774050855058999004651763835782939856260691948825127158704151625902049139594692711113160826476468071164612862283779865367124584328213733211721242037915479215158307127409739860322114232324243116267699831737546572454619217260920650050397536813871255442017699986955553859071177003326399102636277136403687963120910502857363479251310685687906136721088410129885448419651197374879151186875770805102589984276338017989800267435810740333948432800448310358914899772716179476190393796405026819818699337526994686318041830631871238219106935774555968541111405546962250175698884135827288520969666505561344159157075315758595431903532759534088470555449778056323712364701916315451870888426809351145091273183703788432552670207007788996184677587462201577745330201115557727480946156833832678067141565503655014294104755580370999794667308701895262899119525650643388646860846761894402927435951345247962936074207945995641362095278379664372292673463193990989927427202099772435013125887186239083798940061058124929514269452873004818220348142774369167779716265016121163766755196770984866521869401364850165481382899434834244674650095191424763532094331596101380673865964258118826050736175136626950763927707989449956323926384528051090007349655876657588037278211410817978915016172348328873567648594324716577593093116795853647930679600244922287261327989416918462927451505359593681663504013547160871396362656044648991260791873621691953188204861509384410589481302694041009478262726443805902793956339789115164481251112145185238736297251169375633355307233616012588563174101745718271199555296407120041671834201845440268104007792925930461534000972694253890516317706998829349262674870345295968645641194514281880336112981008999909671710554595475152901381214918721452470014760469342501091200956414327068842090839391772372226995832599442132890543664496945028382965886056252809138575781963192069826185966316625592139699327643011644419708262344353910606241212196325115751790814972060589747864419071778685248119669001861775224596313079960061091509740183471397544775028143216905320990654726698494695168781785512773873413863855387372497370416151806466611372628875577160680925677515871401618950414230289648939038652453782580025016250644136084009636556643433640631040973777651541259726831989377122114432012934536782989998653101191602799538584441229945146791625174450419947998157981122593771462604407216639201824032689295556074749101649966818994380898217610884466328893113685279769247881016744813653669584690248621617612825161742837753611922210837701870841736949248002746303780477613344533953448444994966229239281018612267876166202273435645612551343476810149964201428953824852594135060378109943001999673356441194350417553690600062262936160042469042765262902873489833087023039976301384028586630911120119240318844023327680080678390784125601430359130534097635819278881397107005214742110868530197287364176728286438865806492756975502966478232669205980569067990624997034620690382374342624124573500602037331317307250782173893122625479811834927813011523378175878451838595586360085446295383098718963541140773706690382049595949756400266921643021928260184576545138409833187385556648423395984129723528748624294506796309719883521279118663941809895749822192311216609869166577974153019773593609990509504949435458391518957040737821920660413214885272913349282130264954282192654272319764673429021395260700821451827278767403260640103012145385102528815502645261535385422582742205838293431078947719956829339658796756979260074927359418543189262186155298941532596703096512272049686818333999813080099941719644395675051509439418952153090916082221422788177696808438399763127166805052286039441013985616938832623125684257973449017457218975359148183233790772995325325354623274971633055407764680033270804589856915044173514468640548787983411248546779217884846161396425299547746411970854061000216209878782225967680474268465490479674116247028315391804657124337201216691834851427200091693720870176963776252213232441724058436087849382878879551252294185185876895715433489773545233121604180071353813271769953677953256141505523655089223719040924041293430584608403146423659313685796089836421592267315983833126550593156784715060881764676208025854231011509294571607204124160108041313198520104710256864813638906244365572782733103005629264231290042687898746626718483277719394863370873876659738142280984744800956650610436173051956351388558415687204320839919834560040455922470764049439060449385476768134836505096409812389623908930388689178445285603621927312263526601817758257433908971012091482079854899037026951625643303026398689247719616989822509968725443780627955872796520826547261979371091080061182944856103224571878738301739339059826307629090990465867008018677125089342913597938982334119706414744145751703582462642607973190063108821159159835096053510918297020409185191489371748145090407872038579379218987593610147494939582788275383695301101250355856755297975070095906093315009369566749559144682110279667259796914841333138715429112204481999532711934745119686214401268603060024088529219164556853030774495327665818647030883091240896039929974195849185070162405647789769925260260696332546168852206167573324046649701835732469159914328778368020157793915488769487240974791948541026815605927566260997211747514267795649608539662831155407996891702833735672951708740869119568902249397792751328824760634341356389148535996318419121796590322707947360171350617267294164979274630901404294832718109685498134471389845211183171312977547731219708681250681038101708059263678991657229982685473925516406226057567803116638337109256696035506378022242626603145931475476285383579493498677710728275391718901291634153463944191432657594570328414274060623168238629786018680905771899824552876411904977430729695519649491045115850950194564903171002722853729142880505116332096641279290352701998072239798511445845917683699727466900413624893090305852626907966446429282629226192661791104853514320448357616059821146294516995677061105805133098988366433491924746270021766001655267159958516003347249622824341109394334657311210793338787610042312959519740614456981581317675039882103836022199339297293829336968742042779472715477346632283643592934779158459589251218596915580639476404396533807218444918657345376034409886817685130797511778875845197857361644183626324355456317049039924621409166872754051288552865754738490536000343299685296629039757051781028438435881863308048292119868269415190769045442086873683835832025622658741905173836380997325974074300178237239458573176682174145489380333949397955073400753594876202582657860845542053271016068505164444699732190150655360108369759787013936650987115839510984888058945601561723670634876481592390161401424788363906337035407130424104748756721848396019562800214302562719388462848029613632881341418547102707353879737795278645296863671739443661462688872163374107056635257778437131511554280989191004877423479746897218626253555810341757311175510396640371595504949230050479959248516368728435740698688532488961830474319511653388671683927932277887900728844476654483777693005234815001864603716997759714977382458921683850816125210657310211102912376254431972422278136457703318574521664397690269462566930803950392682578015357756668387464055727355519366439852234475334541389009719105003840322698536228635182566454159708094996076105954384516727706286949835838191300923350496989564198043615780567194114792744547539693836975237506653504493718049012858913730441390750523582448486371553542821885120421121685797381037269567960237768882227245211615550393511977398492746228432248969322269130773308870030837446013823763214438594117835725800433348192174297830639136131417897311911697012041922594167079476663757456550391023819441649530971526240432267722143669930609923573896596882732639322855823640687828085332821165938598250756151744898984863873760625990298599774734662604675641170024575555390674139015436904873809319950385558974531942953827717629262082859606013697325362565538610623600785095362989327687456848108269388243960245176535725458278873948396693654910665949830311441754164112260416562610187244105725558389111649935048361717814459484383578950733127113214031494613391460384096975264228023823200099650083090268807842301943967914397191540215091818820485572154521758000509689074891785141552415626543351478988456759566889168359087194156481740628196803607050939668442635185006304884967835247291432036831824297893126640131279045148792503950710395263611402245583913024469877940111863690613145035325504401134295774012429278309843983178615346118701639579002698924398351942302579938891429840107417940682146564762718883749449452612681206598770384694740839961010436587585240213096031796039196056127738225810595330772723013413900108939663670554035693788873223754536204523010821494141923954098500069153321678523264824129291755028664263704204758076835365747946241463292698197121325324065522270340253498567350283856595112887633403017304604302920771982857781160897768659889458213064866791525594385564852887094134052546991113841036710564450690980197516888754920508267587504318324675077079795176254000973139959427826447123732035802815468469393926500490849934671787243428240091470911264346585562699452230049597806367735864912979897293171628120926086860738069069490171803526994098853035444711885745457335186096060360189684199280148286186578760057851917264917802522699646738350436881896813266749208813260348171795262018590520402277546156379127261354156337252914388547214072637181255720722633468057555890198788272947722311077903901353722667940283228319894633139661145186584192835651869123274443924403492696680875912364740100338780297036608515764881627327243268764349809270976982148849117163204762345201406183798288058181659440349832374817224076980356178347509856351319809572305183070346224250069907210353057495966204502272184659936969423569644670215324815864941670393444516628166338271789249236565688380494392511583616237240293351628436284212325679790566260323709044340220456020797683855050376039415083797902857776548237992095194300035498279262766638033826652550331589937274639908211233551356486035696412506348697717121571899658151215912342169716668196269906797497059333258830960403268019785550323268607870355646314165392062336156194238144482477465887917457888837321769597840403848226509690996501755456855261835760956232940765205851610418970556664736342444450043651568429882749247343403865047681468486799160696999215334260503859744638012418919040133167755808864163417526100001131313313632969584081569774623773835148687038631698129282489524977595617408669088224400682444718573969327117930740002834321166389420034597497072721676239678552171213711080168733740418056059566787548459739215432758904554623167804391691964104459525306933361044207365690711296390419686618185966432372063016496128331255487645986563185671359028671507198996735436298191923893243530031581383764426330249231221635959850584422452962431582657394730315133681138339175070953384419520407950048372785162497519513163204300629788801333365783615551067637934592902725094608521085614668720059559462532805261554054625652167876872337482447389869003889659112633537892851035058805636935849567864691197164363410276502722354534086533890688721230679036111489389849481208419265777028333055488995397968527083891607398382261248141232039639582858499187093596918307939816741207012140370470627857337067115238227854672511363226755151560011715275834323620225536340654417270008863347106095204252288694865915918603250922994638708819737345741626033333475503197333212739967477926526825660406857025311514875353330788614973362824330015962113581388574011013610430271271980297775486167487095842905088732726808786327513642502986311845391862581884263431825559986997889524571569587184963157421878247436104747717910045174329529740740250037080572126509288014288080976240566463452324698155516344274748786442772254027741138309616641946382560080249981864899059909912934783034596310028598686688539251359625511863444415682339019975415048267131936408422235956672210675275186535778119982142850651931389964651508432198303725239702314620016105759654437754136262689439312461260374337706904270704820307018938864185913356392993374052787442910270720017964533410400401495790125016033513391629386814894230702614042111731494675879289060996438508214970899097153631124598305141145698268768156496313949297257981693114430066688803592370591691378101773264511145154408200596645577935270775555780843740671074576364601104118421861248322102678759576487179795084196364090425962334433006289108372170705920192695747897068509744746615443946240623546888182973455317008556609393923625789314474662919039442353730449641068506230620659495173530302929652913905234841862351394592951235816879690615720333708068237880417913137590104184729001370748526254103298781610241147311282322051965638536958010139349132686415500336099145041565916708790479546570220858673481672160080808455348708673136378095855382717274893679470802723270676179386911274622479176065419384240047300353678571745057249358764355342711180959241034597784954232092336467926711105180996943044995136870445963746776561280423695997099638754237199048029084772720713004931316274502534201393593225296125783435612101432420613466386783205268837308271195210762980428098347487065736030053914552388657755059280697996357662099124520964081638598924064009957342938584877060128339128989917824818618489797620406341831198906544521712797848475438761143560604440882491292945419877691317695694053035365293197185525741234099733736585853031299886484585156093349915538276675984135676439747031370059808499204540277293263489874081199911435076265909969664847721403953422992574864215591741283772631910657265963717408776472108312720868038097256556224846959732140099757902614337470266958275164515591479235581191636478792722502294972353569101694627708126245517706902693039243513271449742235651532088757765567268668040491855949476962643980821755034927977910785851110150047264366045439849271673268327808491038630224059385845687522797725497461227447231922914953927867691342181116963452182346036840366552288536995091228911054111304254435388730831806132246990903920337886188719546821497797390587634370326081516367395293449212750331247492851175875853155589083022566501761989093183026568064266252288625865727746369305867324123683000184503247229635609732466554685382060947894901984227399208822597256378767635114121169980048566368585305885998007177475129653074744878324041657791274436296569964054364717443921236209869243337618984069665352541631926912810568194988975612330098632283793085664618635372611332150477200882761603747592363352200427984531956954682424670854326211842557830486887963114645949965512360058293263827383176131949741466535334038702008680468269097495705959946931016174594745407284423624106494407219731408910743043931026313545280820615495162149931248365731179054107004481019655660132006421939766881550793692185733537524123697350009821321813045201900669239451565933415543052812074555966493557017107583132465948161362984665733516118275910224018265747929698580207111158946255739121079642809354374733915854873450668316724630209016648504861070536260389933663037499325814481843357959688107987096849629206557324598185156308293877623878155538013551469215485407457629970507388635614929161298609489603393299481732506722090721824531903669383148985046897858997053864934753025740713059526147638586311650283907709296747064027714936362890039058504565540796670750059625876459528277821253718732554459008797867392034581520018248433519241314482647951800055606801879044722119775935932238738672894924497916680137768110364385466571144264959588365422704109223049443562430700124569659786385844561485953521543471528819787566786145215458447961319878604246537631031820872929548958327591976139213498883188520003335647665913109489976935092594503641389054335397028667880127409412228875882950285685074728970315189296675347458763340039651775492453571551540135786894001347782597866959645735979405635172094150570539353704827648633497238734066365003158796739470471758402195065539960712081541537928029609322160553958986561164214273293171826195094515004605174938358133748618726480582669033865738564979920438143081703756842361307635042820673543866288008836915458034835097123338115438950493777213744597393233878442206566628194041036207982765129625022042708178426627116829937329048499856653429064786412630249408467566068712155954628454817562054721454644536582801219371800228512075109949292604583638201177320316197708203087981700060075642060476219923846920185761467168582631409200410016104905367931616929549475030346922654514777509425956538553365311814166551056435910710214921949537979615245857983115647539095402939962249588675866306580123876412140632961328763282532688810090995872971694104481114346946046282730326189099193132076560711444600772216762404388527531478839344240457222408301499632407931731474166398725531522743304335374977690885359717000152825438668040814118389088318384943320688122204398343417782738739610024941365294055564847993110920216744916576872092915499679128065749873177811830160211409932043715865082252227241565487930624717613989269394879641674601720158869041847431811970205808511867492731119928666908403741129587403054836044460790872354242598013447965184199478698307803295224905084816472636781849040374627797297278122778302181303192735309502528414899088310990930680988969916957744361123370179115188699273834023017914816531646497369779540224964617927673768636653148804893018181228380977182828408644143780606810907838311480141347280752802214320599915515545489754770421437847000082598612752667532745035841029639114198338043717314257179009708209088054695780479716223315210921104922198755927384945422588706649539613095455643636255824095730430447508194734566896156873171365423111087086410316456090034296739582215148547388073210097867317497570974207949677495976529426164154137005564117287136477271780014766185345932470683482320388327570252357195781245753158395105074622571531689989825467709409840882776092154013718870690724005605859314322646251101898206416095995795138319950076648285100582701858277005112293659622820223301003172935543170166093920066107172430171383624857611332369799475425803521720423475634253203223762817751026089700702069628810469153479171008965491534003046176502883399770825006336525083171728281701331740721475940860165946315217730734284245718304065604281719980872826289772726179346122708702607588615504386795615770631473746079179575999153784095187683501983109855032845979205279178463550920023026237547060313056210615850188224092766057595045380529303732656580828195276090689840269524310558347284673579650470711729485532887761020653990925684899018926416370353359018704404218783714959405370068043326695023977349960351251184913897428862101721264029483816963409009220792490234480917953375967752926940361426696469885805261316755720329165782851048635948310967851575647968520627003139588710052050855625635696648982858694467386228587738119860255571850550748842758455557380226269317247873210869993894516353799795478658331525996358521058825833191824122197479486633172232381438930378766852280427542725593642507298096839570702080758997092061811044971663214920018817821600738831840885575534933037189051075171519644689533229449630856231116757293979556858794679267165188090556324927452069884965453597718238214748677883555298204200399878426551536498852530302517042876057766470503944435482232200825582074718436696919174656484817067598920400558213783657259149599227559962698004523034216433142940426283316114691707870267023169854699211716492380604628354758141969443014368825419421883475939709802345597768795955385453661101443418360826580011807398489138389054742837439117515399189940035206640043211124928109623267071883800559630103991769891326511754362220706154354624372550568154685315959254538241453515103305952163175116063895191272698200173353434688923415611382711535321753519256097163258427295701890745514159593122390019733398189243280270724358086110955899161963029799022341963660150541252617735345479149797807580566980840490588703414143580357098981958451028337570310365044749733338722015344519652775067006175375720915006188521274914267477890030942842582992363716655969816601468996240890533960726446887709167005468315941997469358742536831182697912983369224402384067212845262173975373376698279886684587297517075119670530073327056049679464263242467251859674287545490240849118836031086830775544606088833409348738535111243013464850829556666484551875855629043093536828518343396482592493998089400897662051949609015639773801992171824224933272557461675614665434987596897205975937981508785464052243624918665320676316692141349196837430895430595163529561104149585734955179094084589579836971047039802616676211019850006124012539162417930515099241712004436943320326941832226336338278232587060251669273072997999616225448211594108649836835351546579017732602187132537583020874171885139084562378389427161920813560221198186249109010778977197470415188806533812089624229063575342458196788761611951802556855230011092125268082155724409905579128937840328967462089228688011762085721469472583725407481822558573239279470233796138385257995327402078915403224429438887360123379597348521458506738176261696263381460144340559970399076679281273195359372109942447638766531414104887247087680856995192316383966892502694440742673078686849561452708194817709010854218139141020467231209727116343460290319339462102807057932854817365603925983231159991842616982784739982322769341246123716885335182529587871315442800013017919358608447183262060590305935211628392439269314569302465165235427849441263658100854301005554695004866911552750900581646545927816102730985427351135422196027998385654159265382237980899695247610672501873265612746655814620987286905917275448028228789531997252792906660672621225162940037319805027197575967550806741694426636216250549860093565059264763724890837079181134965931916143748166168835358357254752295197624060801874471732543948097444311051886779332330446822841773253232344732810439269112377697656158508948638248384748816375194300421093656837621743966690872581691565518899403145354521313363684521051256253015682879026477447911174212361661581066254075563902495996872427504837246303253722026303457773275151610874764175378790205957428720833140871212520584401705787575229330831022334258375861928536352350814516290988393829758500649891459645922661845923022944436185851828045476441885723481665385176186790775277107411582523925013665622078302291086115511672508820207055220958012579328895736981163655416872084668343669618811842361310343884700740427927342747514155119468842751190855527931955502249588361928366886733474246633427322356313116425164169359757903496560430500177103595322054171158610477989138357228713904131021846275568539339342888742346885374931439180622612966384951904152412305681379249276075194370541203283140001669447816176448295948477112006065427732863106403633707390537188861255391173660193153900975642490728691839148664009486657151618922601006446233827448392237631007484220752213795578360616281145653278854041837333117942306416451479916920609889711867391514882213601525744098309478656792910414605991969882493468752711461951623357756966942110485679697794674802472945012276437034815811163845937511427109605419925313169295214371345461044181439273137818125431092620500568226359722984967047227706201706217624131316447484811037913263671086366348334484171945585820957265005437858559629894384489875687610999461957336943943475225986239089980251497822978526220962367768915814673280945425184924167872687482560631748251286285440369018636527878471589170194182510839385359705518754300477921072090116433074663287872312073881269830487619711347159761234830137245929383034906566827924472179158505754300220760016941006532658367106062149542644767112276047779764772107488150209862158723102527104567271651652445227503421404140751146581533107905913087157908596219517959394886976926851355422538025282597951521813730268954478650447772194084659466519397416664290955117404671357399992320540972687446861452824008962841724102733343701492297985777700420508784351326886352063507540488403378648908818834184127251221283400584704332867744604282703788095774184708628596171420369789451760230382080408133857525322078239395191779721235724250121100724024644372313651950236786281564827045028148917185286540525707519097046071466512075227555922504972481399939174000587945208407751274629910887865522454775363509713668083586328543556786577739191554557748297183033692868396331253199166153430169230666022540891599281269312053518130769929591738283745880649602767937114550684989867868083418182252343646027959960652296581995082631466972288239216653482227129456969234435114233488674526189877706172492298584402078235396609830384618901329991925609813878753333682131310061632999354932815523753320154017829603268347942286865282601492713499719463748206806501570460429158766863351336180525297246769500900171989015581184251643252877892426348034420007585717344891083364216705686028651965920920344048602478681882766026222300359557729097772869454445510866375626077988018580657596559407511369800199297809439005487301585829175449246113557410074029304094450985574245743988578468562110440932015762987570231105527827190857782663084574660791428418129225724548805418983188229434737590928419215928732054813131228503878818467831013572168951738538914232156981436387501139974100621061583158630407530321299388440236778091773706859729605896958269596867079910469635173696600099528033726388766390479765901328586449599798740404417401178243286042036384170001377661684927046380466314337680031584399574062801377587770192874279679433202506553237919464667298119468066071632998295169907951884163559306727157170810855349079490954926347633462911748092283515657085134669761789891836911120439358298528080815369130399037776467734351811643529040883993239735864836877622322743265226013659563604813306584966519114750329286059316813645105432906670312839978647616189079999562381547320741707493825986592461238395706267004804734453258537403985852850394439122085314030592794584964766784716841137904655291092912909284073527518057680233647155873067114822236209750214335471597869136581634410328448490694565411766349643067039226677648360075679084885361178042261765118570870159438182336693987652235228668423793838635200425589379596182667751421998546274959968712630541657194896200048989243337253672485148217737103330235896957192493186238148252697391635548877479166551929124296472344737337685030326260141400609733289398261955626675054658044006736755728252287586395686788720301378174089146883681014381071781779334843812025336084859270059992193623245227379678747342892540752046466286255772302531810597321705649535796221250264572336584135824920000291018881553284199626579479360713431189919400627140575793917745907028320996849269003666369985652684108512673657890573091017808858888679909090986981314480228545123492766566136104741769137780672610888029895236612669460843070874115122840997079942291819204467174861148664399205464580858229166873304528038423101968646334216047555567800855364686222606742858680849676671865983946962403215992030203271372566761296527413192548487551550616799591359636778444993094950052759932498338390577813591414334107132225197611080214251683980837343293253981387842177283508779569790673122229952464732941856068900977528593898359733242016924308795065636488927619253251153662457152044286795492978790239036021504987332106121881002974814481299552671563929753138402205456615170692712376710870117467867961588580918397124951507886733524372661080255436778700992124734672837685780737468896305086412728545071748467438927273594003933349985638983760833512425029175720510855716922024631279826899087562473244666765920097627582633185621267157144812374627761525572591280536590618036018009962253552493213254645397585322822391758273296472976880465428098414911754430158280874330235137597410477069526675434977901369033497313528318251312389468546434139199431746414682173789073550308573651675874223573025074455523101003209062279444531407654088343213391461396787418100148204496331377790077268868997412491224944739924805831675042022614897227694282936750181654256952778809082119846817986679483209500426082688119620040784651675112270490286016514421096536494887584729324918266379098423154881564998506587261727673643525788644720083753474230002266027238035079201226677810037696150486039967995180840823762695358519293049125356543832035221356718528804042728668169000816980535508799358059253372046043502835864159641563686171871401103022269326068518585509780377635810482101516790838686635324904472033610531047328384413454048688222481949665638456300347315588579000905008582057977771181608493798970660537197300490714649268674465168675034370189252407236702507371688782924943767131821878502166942953854614118247174281536424727079032184505615368596357032097838776576147123046077704537915968094263512062991027574906210566521331750063320328573333327919923613165178334568999110982141731579260375587868219019321532345620235799037296387915172160779632129014013314319351097331789621789481630688990111992752136303852900663341699498337527802831886820499113730388908606766936521682971115429559994692627226866685063703313650519919285761745733155123593766415608399531409203228721223820471934895787419032474984019537215200245279016594012623690924997974783071525739105464008310354698872054972021902207544019340452535301922697115067404548396348004751130898391842346800933202863194222012283800887797734694607039690724303913909572485393916978909069365540527901666243655951434148081836084026674986874870096495895277141562115134220437099702503823594240535148701494769750483491167935369131744752882511000010206596816884704864211703370546136568927938010777376458394746884008397301506555868414473253478513960852961194443116793437778330144906674253006665284565875302171491798120685141102968080046317718392926225705576924019655975070702542956901987610835096756985168449686046297069846488259479448714606100493260093754821175416897873883214500150937403830266228193657816149838288182091348418429847590287888772963105216300516657151801363278007159265963678826692214211662732757851158884109564586251288283467335568360432947398425434244547162774155198995604449898116230039974567827378420597185299048156588584988079875250869545266570805426800488790926118323193854220645056908307843543427951445365156472566987205280193289402955792240493106751064369508764617709446163133971313020474664933640900289066827632735833943566935136386715122520022220955634024823359213847312104830695992848054073384395765252541114664418959749873211146235613836104747666958778468209476670276194915918470313382699952110669626032368903163568666821710028779754813183846994095111669840450221711569493661825479338414166783169050530902552845871063450317786390556847252407645817324009818922289127990908701545540728146496774959035081379436608006236709906470888454661884614376929373878581242272065902960535990901655952430546569892700126067393901603141603221112469792712475320983402404163084791772431444301590876807451403497296866624198053312785247748636827091560637381886152311826309494626474834645602993394144461763886013473571219595114729570226061256173635442542440438695782077632616849063594573206939051749658040389678757174676423953145011429116926805517937890219855379019736720673453626736093370350396525914404848762835544263459366795737750151960819476254598440235549747238484568996046608470731694775562575458388852136749845653395109138361895645296788320693228681056033239171741661648713733515689870100115280210429625717130217889625292915801633586592504635856231602379562347213415146711127427366269495998027955955077951309990226797629692663973473340611853079569584043200023793116903489949214085518396184505407410355230225274384357318819111708982221787265991384762958647874912235139017050184373014785696116543107929471241562959675290987024388470324861647480334026309950599302256503667951890075629648437165354634527363561955924414464958516287088019378306880738905934525871967789020416332336227357780407111926007444342554519621314514548551560493804796843362872181275917027897467655710965482938658351446910338377786366816594135869741348409535536092909283876720812846646854749569657653559723326329724693513572573723610702276804427240684862374076047330257097680793761360967898773564103284724622139664592991077357865799215082351924807805004873043517853095310627496174000702283438520480004799553703379906549788140402675964471109147814202196903894225681430892060453521156091643675029167109206980483770000555670159414552414368307398562763700469914719342432059307885745717928429289458402775884186338969194955923131038962451331792763904833257999789664730762768082158627007195442053987980469634831265502772550666877485765159252677185283467894451077413153976835793484095774378196059454640754023043047878517927647258343962155655484849642958418579330488200151433758943509402642943337990713743949651725816929940978078474005107551201594336840249955320692334671051880829201775152639745173914837283347614926844547203705015884248720190662432057700277920195252470086450646133930898923700150774018286158256040652600376540929994448899577050491059977638368115882359909273424583794220390119898654521754516936343987352158615296544533746355999036366700379847828853193394008436416575922376886211908346314456267857806067639861957270517938284786691346417011094853112220285021641322057679754122626471285458084507764093214688289654384541496386914454452218994611259775653943083192081708661335524031431850649967143056864086716358301081206039903925548401734367270577533965650846987077281843408858937412194725102213018727092008069208829730337232915681061484909056842802058082767342947403036919114198977104748290117995857584361173511325728686971941258177031233167226903214578764088221527473129610327431718182518481304769439345012820865912627409497471770552962588705125716368363388365157820777822274430226366333894903342876334786062054983715400711600034580444483742239673164797468245230101436152277233731872024661157558881741841485363322538738411804953979903701825000338797213383510531876872317218888736794492760940624971418118194747095391281485410235717499027899946523053255840533802501902317066714209682447030911843970160406745859717996187266853930976246128974982141795615686687158327944946999131154781352597624952604412817286992993233237195331725907355727988717465663957300413567914246834414740179665266565124098654635786756055627740132976467734188797253989421920792049926301489948987808518474110188310003687067138188178099399770064409947440636861622812646202016430000059113563066142989691694919508294256983731000601782227362911405514635619252426003534899068085387460012313079880438158555355641003053152664227863476176638629521623506188259259587692544744686129007670939958156335100253380422164297514798963610006993536252942686612996794937590641228687319497407727337170181231781105092990906773749647722565819156377510772207199712156931107173973925530827113685268010844815405831286750134988473777129834914486754708763799545278803017749999593432688890177419694973655291310086949444797754083629436000030695776267808651473011285662184401427331470849316415081449189506866713958861306137125033607966129622302115873570758278047519944097797267874829671565967021472586019772269052588620248456349935670578753194248052384835047597511094034906046494017100912174135012124539346044267968234016622357653874117646564196989868171318733793601773951135619528014439381679336485970821143420803920188092403657580250157164032029893452472509783350265132983139043857079396990978212425111130896732221106057226706410817370474639915495935244870649943649968179588375422918436384880192936928202940054581988978058988073850469390967095501430912451620148068995056861620358363947552231828046800754104945269798005028611909939447759634119610429193453578952237824818627579884709341522072992970819724703849928637705421374872214375574310892566756866981894190726896702255279824737505139050303555381361304192147136490317124884429027148765719814019491803078669605712916295666116722156932601260759945212708303889583194841477908726595721433105934211261438215809591653803791610739190669854022294225166154497140264342490778473097232632794206602510483122629881555897849791245513393481973123269774334962061598409324692346742756244227198852066019426035078779473465162980106545913686842560348254059973119113407207555103907472895580273860382094362387635745907577856034788673875353799613830204620584062545480645985014539473323500518232589589960669235189231052888577741540152799941779677711034382578783545247061721950422500852639863077456400163955293322333445919103655364806230115008206113902556948869199024430743738753810664950195116244030861540140518744121995762063391839840163052551737755919296234063437377632536708166485164696327757127013585219912742649120235027037087084175525905654592665285766506838971440671837216550283453223643738276838318966300931620130168080637115611193108632785393771380813996204188293773355961941361261481447728654951465209969701383754691124356933346608184407418763880736264267333518856657997522649661950530193426999506709416450747984544748619994253195900010687270849625025925662740390173259350952423309933589312476880320445093978938151249618352719309405139488228439356499557889197059125599501800418898771988003243375447601697389070112992337477968371796731994184328542986858007684848004093797262929135243141897425773106721362247976794600528900952958577687514470625649920056338332542505789766034171268252466893224560002286365688830477979650620204428588497846925473121902568258551694354054459438477928876707545093676123807097937514495960264029932744417046958440520791992733039954201007193220359365807799209471544261798582170256493376107435156554573969762485893700896454146358257725735963862550585602252823075799271787577619407544832519254520575293155477148589041926045743152301941403307497471168904720831465865218226648843518236272098261254169171636828707053652418359519803549288518189199562453272957977121231231645150877254557619164907656115837526565082458528414289645986408322276293837206903103403714122480948172950004135643291500597008866500980189536142421923416665496932165123841781060411961680720838572246536171983551575454104079064756323174867791001457172936017250853459442724477223585405146961065500596469593283605479921467054138339404851651000262011192982013530143591008961531235718790104598044817247510764503718825664831328938726833632964612012607171155715836043596885010401634181757021349678548440701744856992431717520679541014134030336044010611677605668342312424544322228290200851174959318570966251145854040458063121561348114034195740167742996094137734687303027331259194393149805441917410035279377200427112574914409495028363396967763084775908655746483552730982152448114530931039173740979492633937278579491191290462724877567783068108936143968365670848387196879605148222809420411799858160500671790784900720024020497974750078374842740577160552088943336784362562849094043905747265058211350550034816467424337295973207998367679190561583789439131260813611007831287773773045827752417445912371093925858580506970847181826370886721307086195734959041044808401020041180610467017526932154862431035039227912726870575666581124822316619546996292787715250904982639904122566002447852577492312616770825066769351248792653608375866700184066508658862292528391139836438250104037418338297375867813349866427348979119083661918160414284643179877304143190916810210533879174597106276743189691683360413178511800548690174520301694547506562767410842457240686079963065123354857184694979314006089955435553759258690354918939358225154715182752917017090864982162498750204840229718614487729001879459089901458815175631480678223393967529231238074106255108888251844471193495160996989142445780357246762738675200801947060367265276636881381979089428374930705997983369293632993824509868090156131340554452486296729826467228336496694964235610144397768737046177121643101757197608518616667397162339866676775421292976686275208897670653110656938823905670401550863509002174588549129124690542172027022766378335679443165821824104006114490229635184122457869578340203441388996947605289779179091077344317545405785100708235385178178918548149369395513193807165486321623217580637118605171542165476953410892397548775534404431136022560689659120285188270863414019854170427054854404894014107291898208330771911302057313597197676554351458824247229689636187778117043890883641504552242120016704345363596813872125282518818801492896344932586607829141691581632197966494873517780470930460607276328238026963992302914835987411448338100284124454175811057860304245697052080671152224734029221254773990900186606914008522061134624325521159911379407702216897426139614921221843453411143509495485683493966770148490962255860408538824275921787907128491201412453372403729988536132478197593013311867074318719598597016974929713520584486765632161636824053260430416672239797518124404840006745450797872823276426933117165787056566004845125070446725237951779207545458511011780048764582269599150818921236922820528828745798097673832843360069712311276168798563414394724739697018329871963318610204907814698371215351528230470106342713732028302845547874173739841112445721644786307531638918496416000279659519175696745723584920511988433586839589689776473639570615310606609256449792429266023599217908289725819807980946354890185421380832722651465005090247728035305039805863116520916875293693192545890513721742378729983125556380426929636970659213027360566922557319846464913951098822357544548193478969826407551559696143372307218174389104861049424153719021508780604790205712814977683770187814067856502173579773133956405925212961799614349076134284427038579800312936167275212802748266537220760222413854509569341199388654686721591596498578230679315847340563585256113085811305386548240255198523217597534882668970587950263562692718746139138480827512069680543075588307391549099633551578120592727537614193535669912795524672825511157701452791163099913455707496943559076281112663268504405082032045076218865204957977801560336920213516918707783387586535057907984243061766507184841021056084786989426212698752969468538016531980332908746491904005648775581738462887183692100105108739998601358797029850603556125123435576498238762412828671757576431209315644664689632867307356686677472313994564293487959382052271857131434491075120296025909865352278354985007415152389230468345041959362426662797784727775901950063268608475872447138355310952886097071306518332781200211892277863318138523074563066319795408539192109692456100658203311191356303520134754564995906033218570367774699809251614171118715905699227243857398909196637393718658374060602852699386652166320702566357856766568136547222317018543406433909478480548449781388324593711665346650980372488351314259034311513525512386973227647132293167070913538601954162226818578217670026446870985178434001574509593870697169779698894805656898439696522928735355905075368963900874328882617744480384468943707548186967347383435244508714465347531234271614417478329480684976454864413346773306770485230966498148926992649226692498277552621400613326633145813938188508855947244138229825895980039011868599367129225306235422935130503145598589038971516358866882302449577660218687357877412212646434250306811622473645462285082058262758887961912385220830861608225420119238633290036093052168805885908800566150297473154982577614664609695920652240740706127552669840767046832571118120822151862840086148245301101411819948859399614412722832794754780343505575684264870584785207425099883953198623697284408389317468702389783407901274390478362998068482743280473338011316533576495740196328906273297880836345639772142775709032482521647898812449150220764907692766751085750087369006565334846288696386314130366390736830050757560924086462529061412486260780200321731774303757388973849712228601794538438632540052242799122416785285164361692319626338031229516537701313285789114511465817911807926262549635530976204827423459847373753503352880457822360314869845568505593169152640227766831918132616502931426383480372558826321851491593546811413709830078822514506064060133790548897656515019671956671254904739603057794786528087213691667654526159340957702070673644917228441991541650821931287766245083605569544451466946117631289177099850781264626714942434862321499419278174366619631038616886917281851277357530482340943656194152065858315580814236650223663660815933317256916316562308937172535350587155045940127250532213047275851479245446484683063591350537754980111485114439781310672108244158390795369456278423442521911153651811578232173476305764065159916896370062551833032858701275510461711954198674513247130723085492421868856860702965510455222185726521436992312881139105263775720507861181375415551411986760291120968391062086395669236010368090210338257776066594150386344479163387835245079544312007898029592190318122228719689108948216710101850384267595194218049440551057734011193806577287932162374160863834557445099503781846802788397268646490944625261746086949973451038554963648089550580968358413481000717935192894690352599351642769464428353642804607177278285093989781728898655479886775443448934936417708625911785859860121821098842271813512095809824424789509717874535493142701191669006237906088167299328965615686879054559895027779324462743566020938469372447973180966500256783118562622635898620994445938656916626077452842359139348648252702781315949449158557554579772928291190638719493944827874664531528382741458376103499348574508636354384499272768910037947637638958161602007480369231764495366892456177884373369830307952146126396146712271147527643888676809487576133414511129083701990062470537021918836274913892726180913317089443375710676743582266218618151865691648108949007327786125327233497304711070399072416446018513844827172506396545972334138912836194811554885432665475050724860152426464948159956814901293269978969501019318425661347631099884117455165711301606131900048777581658728298014832674874368980296956165173289463627468562994772124441911047292438142601897771522756317736734312007073563890515985636918600413602000109314074436586569074215344585722377026158360406135696212214736059946590489087754311954012801882268789485133303848313048215785824494882097589204293176685697436448748309284623069579093432606000217858270883693172231799315401410075739884180725075684586908161064477412212063541906498094071166544613077160709270518647492310622433324865880790532483726403880987261106927875233967646534258102230425050845741424711057758318179651233856261200719406472890451408234844995835596140475547745829707865169536018282151184234619302848815879246010403837404803957397684954272704506011218873366539291166772302692729099224040520702927738203836075020199183973279276238921210016602068458400359519208044153910613517072051037556970737366962921814123639072222087981972315733573616721663952786006761240653670847712184256265202817216034531273016235970588731466659313268683421798201524504274322540131476702733226852949493688023683861688352837592410003194040769328262110694771261256327667373326867693072340190642491016560289608124683875500755959964842035089913583341763195326775037675810657071293237197201846959936352729924865333837115848355687919287583869570673803186792767316469482314634744903610380074725366915179967421469958864428297058840598732905624514005507670429770493782699722064955268773193074841812235649768469520017403656549675981621845242146017879074991859361536384211883114873459771461551482190088354709988135880519531128230231250134228281332419695625959877649828950284742839696721566933656977270290125255234248768551184204088798424520024796608565411070594461975204128342718939535726456731425969702681536121397340224038975952695381526565438975991094662969269280430449191808971208923037004101114615835624371556683579771340028011032645740464343489372294805982754657117064481549600947216306007940027209878007515920862473952289204106154133876075479646089548312772157522905136133465276869002094593846203881486548562565643804504789052778796119075532275209416630400665784972865168503659335568181704892091625352977513726670703836803557198032389301407208855999650436060293250765194388026135668961033575304214892446308926069307849255744375887912089169988413469204765818371680868998773776145234807629383278747072018106539565643258998878031038837196319557037632632696533859699559836289178725944624487901661292956063396030292549132094269737740866564403320209783631491150825932194175272686393206284127341984708008118563719573527762312513782675112332528091615434504850806310073447435724716122662997916781549423527717067543223412420117911361401345990910672310534640036222216126309676089317299006339645541705545429464904569544190996689023957377300918489220121796509676830624222034849995647526753856731652318734851306401879282948742440426418390358397636652266643033177496039378015479734923781281059838090109289703448414830911306117660945582729176756089236298410432911665127049350034170181141023246966515236208637026347026205802721672922895424017329460890303543785377755489361845618524486163657620145118551427429376633618433912829242739611660134429567893151974787718176233072985496698807307228704991493175816257180213359545301877644497675110801612626352298281937518643693342754859131907119961327013268282260563393679110479457869999368877316266639234580572452902598512019478212942946225705539137058951092595648264536986868689647559425219702614143978726632194886583086492417334597939625977860477272979125129221095307215526354243975961095982230745967880148663350035277667411678520565644189659841136711439071288382099168009881401837022007472397319041466969413264150561656264050623276390531285252976150004663593460419991985729844624337099500650919505737094353751261992220212496578830953400843931411253949137962431304643107375945908461612486613460062508306348589330541294665108185012337715228652321537515665579283325359332808853783899378355439551612356684207560748747126633240449582795248612505550732871850005642382397159013456476821975172392497739717151071038395645010666621091325668364584813421463878539010649107188164592773328326673290694016151379548789943528320203790902398827756626805392714246461349172128698800859885663261186665596186800798220361711406560819429996769801103501148602738591634175903198899029855375253634845462089569972015452984546070892119818019762092379780956278205976725241199297293800242553848277107583808991513450757085894483016520009681821849729529547383590181123781929958018255733829960141156265650373053349420181315137896056393881043856842450333347910293686563716333447042156952204978149810181114492649553132213788176199329313618004983749535655737907385217398217281914038911581195939596655365362999396902481792900014358785652260804091608998598588577521185314419612909444043173971033860470372206631207764749760973696207470693808540452030107372230769912790993350201398693920871328421015423941701712537997507115423120431730375324374561361980694667064142162226196572592184180174692877192082269809028501360808483525941433591140628954274108488031835820032763573191662813652747182004825135700320153151733539165662214821828253405861780842416343935548685376333092520915058949079535504356304257918666875400656117014971903356728147860506859936435826801050482962670894268179557481581197363954213355482168774910199352732341167085557551941542937222667169363701518548670073911506776493227135378387265236687071088819368766459006134222189521603542992167433012545102356518701954687392793196106083092469621735667023423917729625361682182746781163651312689752538267928943294012439488512676407885454006614233060498374940633732841378427908838576144242137444522184677431291090540258782007651059121592311803027105551051532137705475368374460498094763922417346890870750650183423240747964073374868582836699997030647765234625312541598069234657047197802298132641298272837380110984399477571386676712204697868375790301981996864535147207393415608253275625161436991662728075923139410073582650222018545206144951916788430208515667597023458707697798143028505091354804076058978975701575557350623228145071934444854952223800124136887573840771711707774602352136359534861393413665537721350166883640934822695215975071030199579090283207835999831088238139453038090077849234330162473730813473354367171385438672192762543453563700506448492651024819656129047746865139210935723523028478414049175493564155462527812133925983053234854183170195290323085746956499207499940907674803217955433578473536394995366498621168504861450531050282283647245203744154193420270123238102939240808044174400035034618940839450645813559200246397978785210237133786451044833710712887906177722307061655715654752457589718151696303829329477460371674634770431189558507033901697096710221391337133810417002153033581302255335420165094007574821858008354003560800925188609660401980218032496550565763597429809225610463847041999673175610208912900299799264779323117995605396633283663428533838269927577756109755109918345270810150917789258789206940258665655334493974559725370928100941554843196992517031995455680629318380451501734171903310972355313771767276795830326943571184683664712901594755770584361667889127513377778306370071461325794643390414654151382150334321034994317023030558955631787838580780298109707111504010860250710885017981013410255725418226118593472560324300410195332230107303782213787417617718315676434132724357636955495316212272138494299856118490192194038084416987238726911002398765749428696883873445690255232365702216150115632082761742166092303230657362518003031953999652175212694938682905233238662431886648706756659290917134467656428854965629678035121081828165990782538675284331124435582092973304499172926175500549018931225067500439501135834431767907237210457694859772863831823661065413473959729723398968639120118916413115533326382638557761973304907401194152051221551842949875298318245975324414730027404161106206258273330676647625549778681325508273032313250741608578438471964958428922086737525122929781158750277325248980263864769367414433878376933214181261200077003448458820740220576607813778432938186332895374094308409841547987006245699342887110773721178098503086081592676791406510650384835729046102235656526914715493060421709294002656229895927540625116042270124863993850365110068761811086182220764561988627356311417259490876851817110247524128634541249771159237518452755001864163471082647062881982485049124425166180444139028431589777499265950119728938752884517690085277105993702731577654535856331903257823687570580152893252390209980187088360848568463196462462867621221904449867452081361701412244019195440567299226290871028439815177512976077992692403491323347565141155078079653617132711900148335233687396151000412801745992265049081180452408598917657519270187430696531741217462561637682925724141454960261730339376311182484992605291087976043237229196032962000877226913530961448738658515243953288592222310524003463539294875072411595723571789281620493505885974551811177983642229887400942308315621847712805009268285643017408692379754344770818796458753368509819357997978230596853925191135679453571273774625278375242378316513117315028413561027277567015241052516348850654184669652750084520947486294318606639821438495245073482356224512714803144870685018960497334256537175843100777313994081987623028760047097141299744269511816065421811893066611955107091685181811401044014120939914199882117137644190955962813346059299132892373217214288602070218909979738695764664643185642800037303145724562670635309901963141186153506590297119486152609135989983503662080932133833669867536721085852839246679232609028195483464470101973895875526401733337249221251794346470917461121696138069133597621089103391407200358960472400782664884375079593650118599997052028538390001451569069473848489535033132058622710000937444423950465333963940004910066471053265107520162453054606403182548981523921987945175404091504755568262103508923133734434119855295156029824071876052503989436793043059519632704809311478051270437155516573113672458150926500408559510109762126528362518488589179364077287561420513293442384818803340032700881263929261045275950250653641685885394156259452330629123971348805355440087463375580701191639613184249005927784012197407519925268553572210529587417210188140585023532504313744907434641428655722013550379665179101355429268010873391790052066441555727225573874592868207497950816187040182274051384328051432402890683302003830385800695633249884962909375221853241527788898579994337648655814918962576522814883547680253257865851792068894200917803199835614672328051576050711329240722299398536167233958552655553041281039978643134280171659515701438128607971436879415852770356338932905734548434392869521582169300149507133732354015174384810779979351345949695421049237309953602972201375631188538670342581222042721962501368287190586315925207145896579911509128404261080316777854036434433899972709706403187027088651241742007532571300054876421382339293768376605899614951546497058703156867691507396718209027839676358748979963789992555320383474567852643546230708815909599357927997640346348561900343511923318849452873293552866778728134151702661592800904427696332067373728239640794906212053979673192070341483901648480815563155054844325865025478190516646282520533998010753532757960965655008741079415566756317943986592587721926962671082893841052702843534423377099797886207923609376070654386698679468160228846833999824296393632039380064083923633643342060861556483075288928088258113772288896538511526499434043220489249780363408445075949401354358605808395371160625198223108833234491032461770737028488166238522244671103148753005808797189378708860678819690446496052690352637374966034536795911260985358299819577469976590155173735858561104478738146811019504070672254905973833606750431245492193198340268262906899062646005724725890538116554002216524375045494216386769363159405454937639070668499629290566887610258915396520949246639499868189675884116073631686258380907660964024648601747238298378232122113884611399322419934588626511480402233306414560860458611117150067459358207594306334820943487736280914404947372903529242835899172262664189714871107883376066749430509471182989335508711270191976440444853804227913853689526908997789517680508132128701217358536120163984399581292181001456263378070068582237999661275400748525524673960703895703354862170866809602749517850938790178407098083386161564400254448642249123882177079551373885025283666336286753006515912248600182463301080153129857251366445463017812356175533980718048981467611943320651946447922657551805359038121461769093091078960313820713731377329104178653666520370725405281346958501978964132920630849469817713973175178647023624018359292994467767322816392102956678493532643833471453067246841914707145240631751294898741305113948100061533363656045553297857775742239406666380983551180312251314751061930395749725589678090386554777582953804729170640574369499191588862761904216806841889728061386860202977809134815303643162407527833217149963467077829752329921237868566501693267761036323324594962620160685837668528038018388683673685152079986302395494559825316621452876869397559319312139940661710076806165150210673634490207484871483001568508432301741155835345582778063292518513734418001283351147317329221462083994421711640197015194045003026557988921024777010472142328124916630093978512175367293211791397629377554688179836718785852722954219185587082185128606265186403215731898426723854540917564648391674051951339843138457788880039083951860670405886326658550457654135968460391080459662326570001652864650730887657299145625323249415564979241472862526081231395670337834445864086718942115284639419409650165043239530415544463098621043206003276521102136160619397676632427796375974984660606143685820768731724253418613386270580947611730811582401647404031771113783074319805140269782837674817210638276328904964190349873564751536476634705245949394773121156374815164143176682125689310302208059614286980146831709324232492605130245266192271289840091293986214101565577152449045201242904089734009766164845597953726333146255335388499670016087063383091847048362852965352991416665808431177605660163603855626487336718198481186065819975549879752390183609302694870096955963618634973033488456649310484113016249495293756026182030615217093645117475373066498847228469444775669429797372389972867122642260300124657213993054327529485607688449171221570099245328333425278562709469953712101484751402741354834439143102719954124330407117982798325482058554588691976983372658756709187496096101098473091478635965398362475782280567210395116722994947842362633991604665882604190522940023235181903343746765820101581320412363665582320559294418217177332528997009053811160776993572648251286843455460511224029631770145924799948352459233668247463200274742184555118694135712286325308009684672153915221297275950678981381082231514934886798260337453001978535993621002692893010570285091148671829196132465262856645678198009317151946852353858514397402032037015003792024517332851986702499794608174189258180913008273495532717985873412181914271227176520973855140045295923561400311402023049406115302569887663201520039672254927702199526830193649096554436295569354463527815111247130177174428912162649087440920129644601723252997957700285062952371188590972366935800665458921786392494130026750822984218133821954587310651271501504647364102598407453324497476774501164609429938458390376345960786156686808366838750099507734038980225612451252776576823142569599398633207599487563554146436568127024086282068852058189757313919161656511955493554436918759817095955756545133361939790889809500500650499118888995171640108890682412515877912116644381619541085472057361815715665973084314959283812660235698248591265367074160460453936083295998582453106760041787789731902604990671198282644981319704523864944804980389260610919079221278453830673586546899845223534404451266004841782736393333232950341718083544750637336031353478126092375118484723822434461261272299406281018739102154140057609508679552351346271334962165141252503495300559765898979311744959143112679031285283106687452420483122333925347075565435044962816549520023939428109822089655328854832642500456389288559318491681378491039684077896155041403602966416842208774132063422524114240072501227643168112731955247874502208447303082708401044876536119186055374094023199610359934002526284638621817515124665909238414926414174173513564792339167150736823648263499928567132841825368100096439849392339134329212566400959696280229150297417911059879530876075308262203401774102604190739967348353557297840180342018074301783762529886622073529922749297961091263548893963295373315256444229007397451947906917473319501882185100970259380349804269108571445679200729468834205539267209507076895313121073523795378056006979767038635182463866245148589890354463886407689843942642126391785294063106811180570490178668684078643801908664922568085358374065135029297158825870652069441824191290149400788168701886939395349377525149929739513291678328144768389683162427764966885142926227671056028708033651280660019552013573271862767078019977592743053294075122257864002784320384280019721054322513787694035765054879480113841699203964729584778182052426059136656700378398119512209314513859740803461387161933901465307831867596594662993812048607495309466483344891134315205958993464323701030624681693901601052487023551397441791270014320883689666365146405730878854415106359187874255971568594948293348530170275615584726221712249605268095243725579375290490540875924056499373457436253413761942325975960078530728126952987482915544385480474180988169371900294300035416970402898259223281117048836083625950175637131015310310459022087138885453557502552699825545582373226054388051486872502859081676363679926695961650063298660836932383298281246815857792816160407820858559409397045108208683613746857551101057931797202370792948868757214347854942925686757583065739449974181385795963639947140277732948227712076051657308551796053055725626070351851420471525290396125711244915421964152901321397125444604606536648368097551714292914325478541575193724647469839868207444785373169362411596995210832778112613662051802013846270367207491794091446809725000477143862699923570157003820116414748531537235989603511517879766754916166647602072150167750709553972041287475214284930624668436364038871401869656106286115026524060651070681893104319713242689678769886328749587088266989618273773530948677036042770745461798056310045735845896458908899981253933021445519147643685266347231122759059807263601497520755128047170618233733670306050283785649006500708270427035393524002225305940481007919786918978294521445281103273973812431687077672281081086108081377277780080586662913056747223104995725022274231348922111891810902344071861325601813868360369483907687721985000933705112916991387042142266522156026429855799032781994612364053477200468240518994767069161222657599125112587937610578419379828602016164839221598855144147086833021196900829597548064781249407121049767064688508096704387210422205102610141733697829008858763136796680624717438912630077649775840336680846332896981990138338178687214731062506521161798902999886064712225235673961370646530004454505903181678971638076748924778934686294140289596842316577638108619751882961077022986737637024112287979121072872841217619995424863537967293139290052993195887663150459234247082160236224182110771661011437663290945364168013119191766689768388571699640028252747187907274813016493072444835616236728705828824984926275329125006949297135669947445583625659047717682391909032935995736016149262994690623826970902967735387081063687169253166028299892154518892074572850214726463339101016373643475143373926919368396752845087381318248026204024435076638402733760536692940294295149727413372293416783822612161103207670491490767998702674563456927891502247483582288486082506349925280286701080829080832904301513336244354910122327970926090264578850204334702957595657045969344917947980514650510526267870372772901729826575106367408882366592082090559088345672164330595305632034330098279803614725037806518614168521182590398729614246465148319401879800420225157774966496507066336801293459084158619443914521412217940377155172633500249536604410544016091019575413729494352739671802835108328887221793346634862979540532448641100985723641847773888910112404815946163554403729859535967303453218799620402904601611185730958749145639477317241262179283590667059679239236083940114518126010774019581720755029204402595010221228388443775885827103110579592500263695491403459226155749725920240248577357769177042403523383662441508310136439087614214374869809730130111439706489501972536294259836574198290779718298764100869770527048623097818552784465786028194408577400828975570014469510460769571464570482869600071353810224012529974813983833042271848979341835399660089997090646459196981915371168721044957667958094616362460855115269904956548374234805093092806460371507093650110187974789795924282666978948141253829911285517477687937129536059708446767521182767355398165151661376425396954691803351230312005485496096323117122834506465284778557847272024642145296349219674873650098299232665371215512118497927409068110484697149387532338145332683237332834347068263279218488236553442015817722764008580817577580722037963537212386543164491962502290064843965741905542529339835195637242293647538878622743699038714966880841531604912484099799488498575057436597123514345750805204062770470139608652873973073143847182959308336689380312476120338683712167131234194201863668453496766083365092318345256174854473486185019569713525630586361207505023878590368060903270529385822546166402467687857808894946857258962909021438581090721282308674608586210730720281930470844063743780145478728685321057462200936548214590290332114627107608197879374164423606924894854186391854080381852856506699386533732741690595581203609479827694973425129467607598789601401935853110951994333634053768643017510754776054849544169886785774256841635429398078216238634346091378924123387089999699481860927718550882196987050519185062374065997165172463780602757372550500324983672840974837296086304971596833298925503132982991645342761811024367874237153635237589135742008049666599468843558978474560217431352140640062328387062320167801573692801347212999113238579256384176862792545118773199928055721773870577283049810628371377461691313610532743766955737021855612637943303623745449728404747980480952050678856097152721947244955795918117782007192571328331376049573069312173936722492143941645547166227752516942362469211047059112680920796628147875491252314230664422680784588341069532123058763595240281148666951292462073357363580456100107608053531862514264950536068184030157799072061148575654270925790280622094581013516001938578127639323552991868522422212678903813993390420426233145620682932016558694016973375255870878876571364617109965534741202893457338503839223642369555365921669384172837833114343600471755917166589082595000693109853598906278549405467444690738440359987452476017442004031339057776993477800285298114078013114285697240113201122313013096810313465054873159385340386674104236457222654470741731365838365760535542408014425917688802813228925731795132606509936261023299268124638972505329257966056827058041590379398471084609835222447948193462039187315759831501061858256075447176533729701536341463118096948380918594044959003435212605469889801689781580561035148536126096322580162879117472214303733684495427817452019337473451840213544010036092602926989866481638408829510392307846765749107673060271132240176174074008259396494813991614444880704199866494750577650597554653446639164680455266636360245408378618466809214194356197060704078418247933432936789514657469876974916211123604843983472253518804525162875423448651976927492157606077903247687448301634701771375574047733436877934093226449503505353396728358360877156192770337838628811239159865859840767604612196927097858103158761773483988288966790622295644638199234802687284915411014724608158616719392767369700358123247712428440785932969108744119583732660766962570423585872875055920048052371504117597239807508920918971333059745125861111404983820362506617146832810373976003075191464061079725802681726960071591598849521948054871192672159566293225079491210027631534590677220317457962267083100302100120624059346984287373433828430032544124071785591160847934660184289399465856972895856965163506975186517101263149104242308452133871836828455059631931323750595501101679240021721075984498124637828635118249611513618831332524126738177767433957349747165652686226619875491830758770866945289820430774987710282525993301299346665859297826310717886189960915905384647471994239126840795965890594755164329132303259332759824419515622743596833722360115382652678674520979596251815451189354948959617466603485423157041702277162831179324626507658352078506695458325775833190828032600970587316984850852408622795458572418042062963169758368189443102402026005123444974093792838210243775000029497286122859338053831289686765879109245558978736034469597711320014409972364330368011106983459717865927465481429412740426511958202813874071022798755168966499359711204556399258995741831274338207005875734927787091987910794931060551346701736339391014859051719223085661299408338700378109391599466565802658608723684975408885816651468622586663837686576823291482305974464707868165602609146532968588000021483052227303818056601459239617552527310802714759274900608665696282967473890441155137220674390888635200477495580611334369228925139785104464440931631787732047248551708670084255070962211829713340228111788411602955386662498432907280736885554683147114898990934272140248939688900609803456783667856942226079409376942100183169595369913485420124812657746505111693646954714533884619454982554480194939250673165559571241233608174073233153579113973231005240315280238721069323235349131718182969310599775089776256781559395362849796691495085469573577606858274824693319835413429131552256527250769263053233912759503225186186899517176496391534328199299875032279858693763019548813547229721336306632739911331488199602469668700105763877447773175688611389339765594469837780806350015819665788976773179506291630259556992690214181077363752880327702878515330876267924335325039510152368647767939586668760609857520136188429398133369582507886717694866233236144438014340642177323800497749168525990697454189216808702611486831326890214291696250208342188891593405276288000930959664511493261681982369738486325314419367332636994077212105392728567310487277568351872950001218291696473800101870531057032681134821945431687793821202082724088575280768640206725490292905470917631925896808119673250462208226342182810161981447434750054570087471267110434834402164919607244790818794270753340124929957822826835862228799084925599529764091401508114525938523826598113414841215154918207112753036795661860746327383619824646134435082785115604481948289477085921902264035318818645267873744549384804303512983493162348771161698395951899164768566093269091415403583233287010367539245413942812146386901820108051593243670132072937819551287713129076134772681661306457985495525231436765564969911028604829927556815146959574970718743465599953278998347256749606388298866190889833761586581259867889623364675942631751490594317830523467450744600853936267237538769223082959849921530508362660105462341775054227171591936533091940636006386175666862024846760725207117785465797976093082464234277145388858917267332413968980777858082819467674489565461322697629120544842728644982862599427397968560747690202256664125885919247819754140726571997314935712760107331820382474308444042285072115358511301581631845534537230634643099298397642258966494373976285534695292007168344450016328559144314877197115275820475356066506936061861978216328858644663458319013880542589498483528579432034998321604518199259996052995062289046514743373142405845981315637829020401806798780734191765736613099078023938267350906590911993971480845750001776819942943135927026641277629742417040947920492293508138693144943357252247825899724699699368111178564904045961051016189389875855339636095611835092863574889839220354757206198258018559920283185404174416525069364482476889424687166690678813233078172884364393631987227430033980467862695125052067292609049254173642267525525701716861410658760470303119235527192321435819637451312454630292851877712428993368068529542629916601742806374755693102244215959728189347956257483616300098519760145673093878230036017019730315956798638028166125196355549334475125421763395060253511414016408805633111280186316921751775336044107411483528102484997326910054536049561205564337497123532088652094993682704423651619019847324226036122965082953482992018685943317464131716878641180319440008107315343202430574924780473955748639063598861539577534235822264789531994151546594775610856688954730852294274541359477391152494045904404811602441835862498754537177421907946283364069690471678867323212089610277573843188934778873217962771656193181104100875107877604213747850247712090961742633443467941969994664600461676726246871859254823696650517380240468711024016787661366381293966871798113625352655167566411312212889640950832620312334698303845883321383181771293310356250511929734116856535960587290042029952690678603959568396107127538909108676414798238686059383670698303692135467222503105550653907512050257407299055933019639616760077103366307673878222925828446678753634939690196649816323026072542253424130731265537382372954669883469062979732331905514247760518122970795436132284417294851017771416993152303716789688214018347393889910673648094771379185511352702242547425740505043073681865664741767242553965259425476377054965784815328374283904263397146438147607661119331192565240292366878782095739855341768977770030902947146969063125856046173878706071913619951030398661759221354680926879309428412547276168611792051464227094652727454152576170169454596929511029573605376588621083792984590840457453252382505403033103050939887851597594931603404715240378291253682431599971850297061010551469784684162124031030838435380925481625974087898627010421550888529647519163871209321461820746565800744231705484774911933001452282785034181184162864555830185484032693381719595582782230352061912872102911271108655043867582063440350334635982510357147492776980164398725825621820659968656251103501395305017716044520201857472498972851443799423716337072537523483088843406520469956047747685026915812414420953914930526402821414194143847286883086755742076009988409250900906896802573697746247586592643611362227614453212090520555108982814151942026471301372598230530652656965391421158073208780917995678983838819160692261603093494717080142367435308498634111112504966748815425068731363094265881812543453370435812996711241122405777357489937203866183553405730233932640709335073907696287102932869632679455799530258123878431872580186340626787469159238957748429647380350355252504344649111999464604482503861387485036746745971202346310283421029317891172331322358507057183307998889646085382665591319331579550264677962783363028504070747122008158285471338348434923653600969478667487735810171461122335424470411270013231631760788235582011882821173124809969580656776585791594203174680262133597935634231017120805598067653620940198585528680371477853443310017238494844149022690489361710886568118613867594749205855583316843849868028754601184932701733145097148995069524672774342830946838029931441078411252318440351453951593310572103568255853978396851262600118732397376207492589667206124601798539504559864475224896928240988631820654082001760606123868198655956966256007937584942531672545004519503844039476468989370936056974241312565195660956701380872755280783472954389060208673650057272342231597051193023311834481428319380934115925039810741214161341943509568837904057680548256221572544024574265688494630004781741339827256531624141158932452284451952444683867408853153843293667529197254411689503123532210066543894615653262571196014668421509848317795107643376278648746718510037545879611529657679876150085848668915835976427439671773281475014276705993084151481068918776995973271792600197148515861450375482128122749946536033425476105251936239156250251976798342323166343694014847759814432363826339037820328470523939378307307689295411573288634809591414668667490485668240770671184893060436028447376088269100240689291165018402654259873780173477242639572951207092179991375503601778262779080571947555772498012516486905865989582729506303235398126956358810423224870133943599381453615331422833294714358445841387106396533899285182591476409984830104002737384494806463240320669140025649350783962221375982748304544105344202771797986042226836661629762545412703742432584629912921750661497331589337197487949485283216075525718661931042197077923256598667173460169865058428492955033595115208226850665104520580852904367973572000159453220491984160894504636939226347508229600759368452865515665737183057867077043020674481933642199423334583269379179702237798198766371396108403929582212945792706248777044147175308084286928452544753902426624030325356268582102765935602193050501419664631083926194824677865544119243962565724624405698402961244228601828288108589205752874377829563167348348516667749067844911094632491960199472832711152392742019679723953138588547660427892811848425616680389030490196024137239247176085404247215650784162846603642894797798487450578069940760961465073667250696378807066947066139867770368488329677423091441643440040077816227001646663005242515671192830394071466493246414760658593655136531132677506958502426872357942585252842757372970867795568057302169372304691349632098545291763830169351889681546450271759840037543504499133174070230798198310424626893720473344285753149923217094034263668233164790619432923023772277318391555671144195099844699805401169214510607631759142841868276458328561689346268338745120919499266974801430647487570159319967864142576892496680716523323467492261735410590096813866153629062433023057487975663641298128595191964849222809696402498425249505936336943717620704361161209126153960640406913029796131376860390748291768865728301730657193664300105052750129159006842804100851664714699560317553815051995577415958739058773163964563419280598694635434623028794936915234066399431430925988800923290163490900597606917524131733332620444928739743241018664827142496615142863044729640843382086533010595941521928367849183080924322972258694523194161675112243752878264031294372271769070229835496673676931032537425691338335864705809431846423427532066757448722324199244909249920462824178493767061014892261230036420531653711509499340543525251379936554620070967634198346639284084292549923959766258789548633227608723007563144120920657464020450660185892288758029526231033162865263988475907026288271268319177238122496014817722285934182295030467768102913056242731807936264517635627649850624367396176350472762131982276098016321179670592929237323773898288509542732094536141890551264261400229121104279530433417816126558359578485314202017772478390413610706253699593092308204338950322869430609093161988712767185657153968113233843226800563032168534520979329287603626185901753762164042436705101794933165644408211114708971043773319078454974269492182269008595577587030034728521468558773809783476489458277946605550874852339721110651616293614443747336635776685941283804142771689908344367203145496943620953127415273450140995495462221384874617524288794996841262970037837868354362323128365018607891334836363737641897976595578083269120514757768911854241354906424974499581411591422334962535788560833133354894104067917063695861518881473953309733852099039172754346590227420315116930831606717132339449302199494297540514364390844579734000020594571651909705775823627396651260546957039240585689602958404976838049159966821420869065765901158052410883707694116022457555434518595832299903292341566869128828109450943760943606111422260448872149805174224056548016208595045670189771718074444421650192636158081396649383326415168667843302010996343975114025722101229196674258602212787949531665147690280354344191709713384027677264637583493244149636426827151568945010069200559389490977018139973236845682589422499456950832321930090054165938371511665775135960275206889728928700539596460359567784563438423741767189811182081149648623994338847484014747103043376921666540849636091552894315956635443925635048368493401533845367397930983168583202008951633422145101231670638860143862305143515768144945676483506227339763959032417565191251218047212343768642206940913157628226745657687102533343434100035771031236072824701388868699349298712584504830453976680950932818300294679582772554119911589896579290229132714927557532732987575011263523491927764657201373969975461134571941982279459605840352285021281653665003158129652023920518888005258198415328580694974611657074339423556489927347569385548541825695628591025550842726321758154732363342244389290792335469297182760855325832326939735533469529421947576158154129068619958326083482805227041909142555658290106032556556000320031998150050403823337702593349374535051592984530342610675208290603074171771930351036936952965067879007277213691837419939709072593612496246123038842467584299226974623027281486219241830406813080047418781911918426235134758404033798596708328357384720987243446127784276378910937297762488617263500699020605772842093457868954363040972169973574164966496051517982191824416919347939919066390810586913690783094059099886873300185620242455566620389191008029350492018007954351304617380247492676868268563346525901723209655886122787829990764134333075385978281413391066886169285489814311372853693570007095246638647461700250969282598650764876201042022949701966583815778004937232585583762116722326200666041313474772938260209615635320460798252262784248920388508683899063383075148327287225589033046036919334287480058987096277250819763576539011482025846034819733587230888478274395429697807312355935927647941803830764646022406850534058528717006538668709840769263190321163467129155716729657581982284364291741684744934242478638897143567874477061889403052545270083846092121856544988395837762896903028113873690315206570366870826047791952569061281755852909656937120525160699627334815076404907510361021983595330097522993474826627565979745408627429580063038525568088759204583829485103406304402664418794055619425368104874345460866212004487302347716410982631840545130324472389481190490882555681755829353040750004909328582517491466273462774950453083806123085846544748282616835582524679722397968106532512400937184582152675700944872524198232883734836671529046395416175040894351838063921736521577690247239776415912811966437936757156849785010400571569415413702145818364773644415098223634557005934271597438916889438565175639563404816859095271653209737647976949715737854779171339100368950469019689150347265792756395200295777587655865061245548348141776884116282566974885013347725516284131979843792117854255373906641263500491823197486540460826850779851573743127642452461442769640236954851759213620427523996415157431054836678151628448674939371145415861932364681226423664253519292510377013997798959703188330874049939857673514574104577035525575195151797688425851587708021471583602701942199242949447680165395148934247395593643119302626844108676790513353571243234674905542499296167255834019103195440561010911451310461802952708286178539637014161715651505007265711402606545419281792627342530728108888490165480787088941859382245810930727746389366512007486847211055578752857904738818366788039236706958783876350814598298821395439656120252816445627892539924870164224126378909123723474187933221213546377191535344757376617739782620487607116920627838072453528058067007752464834381986922501003424908415054063628559125307112753375481502724611601685306820246420241133050202397961996859881411703032788429093263976869118127613351454490804475432378669927764534544046118737326631717188177018972002568317130507202912524513914063231934877946248700284598388355061359517009699426310829706104286979239328552123381189169488039323991586358070824699588123319778595096991050536060146086120279637514725902123805616630642386180777590847999064349940884673461074063669634975551968833978936133977273366056693976909081038443179896513406676796797970537332159440648188390328601149429233451964410927068549018857329873904624094573647826645701230296128575807528302999333829032277644106368269652420322643221513722271524332319764452625045033005698630152239160122232781626962056824074943960869522713205964284463027505457576150002941760761650057679148759412184828426024724348855611864296666270228659141899762256990566234382043486216980357109591727365674705862966413475234690375265799976937058683591246453285109801555371693844220353573256680451253290111388212362802342782363333189909404985069222194207604390066268064766276514930121036043519679530362370353329448482625257662418402296194633415417267228379316031562833143707388838785863865881106762708642353657391176031722009168580529095982126537327545538288575715900363137524946937989946135009913222625875894145126838685699678006005209736317556241141404094900686224978895739151247082962837725414966622366602134389996699926353464136520695690085707382188283075910684332527373750521423400687579698425409113504681556993038316540630751249451703066001716812261178299043708162757977343158419376572983569876425092331816309399576738602373198912211276998664370005941028173741945594957732257336707812597327489979964822543836634895986411566163368869645790052756030729566523932763048606367500297295865422772466826122619728138147233677370019904719455817162697740387260125024499299530829031857748347018680357026667829929227691515736751082979897432342384694293008097460782266978942912476311888959461198186266319207842676132090328398580816614470773297251348586098786289327726269098664454116481040969287452182881400074976851961954551468174599055354524317816040179752876396153029770718629655753851095649637917604964533058972786592783633752199218650823839395550690642654113100659222728896957827701128828537092922552824897548332822148722674114398743473906793870792711175866935990101202764339646763555157941678048117906707190857814776924029852915846280674442084681527820967504218643606693867852585106859174965834536171005480624072215551054257756589119936148494318189728602391517248627222300174245804215430949041496064604024454235564792254351087375817071428232553876904730930729005824541694035561586093430695559562746673841534718243573555048612346370836237634809359818752924308704407517004605462422389870875481843889817549491598356155136712315266214257450104926268551249206222286246179764695879536639514451063703307116899112170282600247171943043155040965362429378501870764314805413528457448336241892710123312397041965037196160611236053134458887338469491287472813062894289872402338289193832404810587810155467873675048866022319421617237932353394886338758341362636372891857408562638442439384944118330942274257858781666412030026105071883117239662988491228517888004106492075353534520460423876436258555530072134968634793153053995650378986080842997850810902009418299019156429846225940914477168713341579640595478445846604264006499558314926167817458482754891369917903105702986901470581376002078487697674206179368091312986562502674492036809062261043055799591289563785036656732184116559772006968787964940446705903505062143688122408281288286747392536050850727080415740902328025123287522582771905281534998230129863349477404368017714308530559958269578624730830445171110030228124867879590351299808926792764446233774918003257300260172928885636563432744943152201351230833457479185134771019956486832013599708859905722561018676511617801951931864995379439591636192958851450184440560543503479849073102540575797528541514284544417349592298572814535214058422887805343956586722552655383248260013125932639113951406014413636278388648830873219285344487708798691553288353150208787566280266080736853924696182719329777000128146999225769201567055982082700246611319293460625497036066567052375152932168276384095319575082139613645658840608420827008406507725660088153151090822013275491628705490609232847844826371168210089887105992805339551187397286867824149757055020724739420932145184924582719657261957102833618558754544682068871674533130154957339011405620011352722290475617455375569500384193497299521045103910705599534262481934465849648661770080873819403620179083609113662492981075127639377158798574181582988365907286188754372917752360740058904692161683457631517826446499920571326088854386178883319782606581258376597255154815278013140540693308422643893523487140542942508840136732246495273415531551491315946513154427838473603477108720110598787394911668175374865439125301331286455557992169521436415338156442608164981235645738098157698363006298275337034494231507483483028084935455709703325394096353131372019039947633180855771126204057858904953425196078177818097690267347754641191892143469653629523782040170715328968458047671147971382521320104470210525511626088337797273837418366130436886651498873541872817986857054364691872214125208187864862184970698857354552902325695748509068668589355959773809612457575847272204190424978001132209130549938900635702149106517257630683639411299370634533226969145210897384592943710606313468456104997449812063227830992007823505277804086927396153667088168035199249912422842662600836999439358270262987546267793243856838032743676750146211681110778698154638739689075157898511540094707581072349426053027248540814237051296584435741779005137098262325222460856349925277392681571995683574568558010839064625171460957125130468601163474562682940891126859092980898094985865885011623354559528919158865321883138300837470456794652428839264878791949195944603600735533945782808403225270802702467072505173840204297926586116282583773911710286627295703677364186444853029633287383445046946764358336449320053911257639952773535724267119764585058505988957034273475336208656965340360780061062306448646913212904896727117834464268676915281482707600169722873379644959727011302856324304325771607370794081875254929348402016877640310805428062538213653217688985888518642450454582621572033606313769654190483692144627465567597254651088891247798281060504214592292158349254236422470600269452818805159914105363605092766115798955879210010406966112675483742385795159232902905395705349105415741383167859264008828193333544923083261281549237508234374679656973256020055976482867992340537348223093092622308577642483894925503317535957745643059609866764489836381873997486710198311572601166979996404044215563272142382998676750052135907604737483652661902361165262134555464278550201534702427797612564881738469871419737480832739501001405386798415718943079698659927409794359401835166421965164934801603810717771446321319911823751491519666711207949613152907506574980892734505474471943082238541328588164232170984676376216886618837392136014273535861178869456726565819473687081730456803396623144335983256320593201658917408759024391980272225992095138401457886326274209358711977594796200282838121096461624550236159649349605035342655824124476045661185723398808812580500741574521613106731424412887732330489043298269503823033658173411351688834633556051514429748540039471614841966249390990030211430492505429891982059923118282427080350797926678809861740780497360544909803546700802581958543053148958160590106905227683385860236876502908049381046186125513978411888790040352121161446678204589482004770739375327302886593619279123518359958862470575476372491541749275577574932750474244879319537511619783604855156973582744002733080837217521942980587626223436953558705609341047131505705783225008971231800160761923505792983568050892174652117726425625514182139412233048411173815810217281522565758707517062276228729609790639788612025280291130595876968859333862520572679845033586050312135380021101211624288400861965256671722141001292340980796068681410159614572357785556235402886453946983136924272231436073102530519277294015718953997783619221044186438991477021727210016331760557492994183524771761316585817126252789709087401232310752796170347177740496889660084003178797380222242975919540522311987581006767748948186326845685116986171757251655730426507866820378790825958999953007143472683997931481209011509114869343361385658535368037840352718938768007453023317803227657391870514255859250864115098364244678003149985771642292606122693591412047577900263743607080084760681904062085480629543588222077709508249303293294375040828933592840898358285136748248661545739078482851145945323473640275056792748726239969990161203911865643715389649473270223889955981909375055811144171224186993713695049401102184235117643750394583212938618246055407748868192046447746329819115178452299067305017826299751924636820038448500667990681458114054207153026120223596665666469829289960882925295765822869159625415204713632581832826217527413528737929202385442421053066495768876394140225536058711273068872419288889414493208635498757242223129382088187820033596156812625197565051121402997018131802483593293340248733544516845032108161967033579923620643058830630921211407033940668817232091885214427394953129868495844669251473340645856314819419788619389980805447576160705749934766427923903255037339877057828477101161502288728980364740717803434868408194349958906581305906894533012133532509023760289870454127355280939996596334056868212119285039398743274049968372077693762546515724682727874517309092464372393423495337399145033350831429917902659713801107036586408101645175304139589715360168969385827603658507622067436491355014416540857020575999798815691257691434352118750619270355337757444005249894205436226268373247100217763817685048930272589429144897064258103078610016419753997405433447660980700301301383379408817181484139556757350380517022205366365455165518807402406264929556440672887612586320278141156409728931702854754623252021791798159548444178282366506602337808374525432130627735731102718805956252090261822145904105759544412632978287006143351800486219008607250998122738880185970745826014851116459396446236055728870150330123221694067197239632776058609722827663533541462057431674720804009357246182231274820231067228585549265738927605272506675933370307316113287948461946714455738100127415877764575628338815771298272979815604383632005678495762121483066593726385347048546089820828661680756783232488917162622078665878029492666481989897673743625519258753090644103660651243258637811604628135557920518366640808294225973026025775191411049753024671138630503294625121254036547202025513802019671424134536901686549019397288371490193626526991902635987258398111924780985683990241188176859255235573127742771577380066974755019451488765200156639671065683053187573680227373934995772710913266300936900406308694412221740971312410449537742497753715666269292440336799945733496134221979323725939063126511702693261714130312913553818418349439579978726991579700956781005154972490496292131945065489564167178964034942396072919990091889519686568631246797388859402020329208690751875017999857918904651963428967660498129227642728696662446125399129078540927240548609715471992207103159715087550904929443477867583023827573110443128126614067424485878245499215718817718289319925939417439486535226170806921814743061887501507676952813436416930417162883301593750248038602921252262490246779142490897792904164372031423204635165627591640979459313208479169343533392290403047841151776484617031244249093472291159710451837607403526545119361425968734979303928760742328362703137036727362596024504782737219969688340996768567003831311536100880639648531461871133981207431377876567125616879244206499690118367383226451817647149586096359558272362706490922133342128618529163670915810505291815132974456128183624843487577005444714628524691849024993152066729294354135770999961443083139233939946800702713997058676292417654023399899521939760180334284956040908678238564867151934264193780247602832786666830677174491449743668676329282929037976664581308065879278162933220913405932921836681944791890529597162576576349239263988976974325416389251527143802521066381224648569808365610275248914988483177415042336284613860783807331049082130781075296940848481020493431757350284981801649517165081626654470735048770358034859441061890329527819761580580054839779385538039930027070681675541421219546960487831084803074545916575984296394952941098468693477947281113779523725358067323959294174215212546852756366267619882538891301341502258783128550654250977134170810843531764037874010136989083286865215338349423402822354222366578814766839937180086162487284160545443776676966089121749814233076677736515594326730160961508871580305285491968971289023212548725402344435977935557351124330217222231325235073510677226775485032520150769873864516670927295558739772463121853466463309835886603688789538364998460669834960802095694465884969194617716205664413002582958203435405719911569280340485866566331773487490029485900314840936290206757532285467412389168494710971738911434937412110333346775365106319207223375047424778033394261628159295334770998680721945602912701136896459996448671122894758257809968922251769101713809232510630224327080973963947066778275212623769495995961872246080669920997009804260418266935817550687708553829166170341613462735232335893340852758904554087130724359882834129030950122894072923604269623234898366391485426778379551645966910621936668658200768808080464487552166396850259768988488242366767381807912486799331697481621297249212435482684412221640544399093060266920707440648630036792981693248366478984050145069637543608838812742735343546504335151614164724693512553463636077472837477452311453095276370369148870516213083951324190684966166744530023977883639930596820314347425245962864567060598295252063610045397921728476860244637951657305487808890764481830378801318428766562711942182303751512850118864384890867501090850904986216603173092218137653255966184101416920499367797797804323696867864631284199330966910284372135133428579588686928597121638822107001511387262624233095021023974994747033436190900513232525316624992275054783705894273134166174040292086272122492525590628967293748939914355885195872837338627827261320021932720234756684201392379358636660606501291563624188822381566298776363867311432773639864032085466907319002187673473187972720036077561146558544031887463784569311589460874958739559466893233757670721756609634093857990510660497470907753765861741008799989492153487890421536445508525748520492283372804762264023907468696994870718708848802834137709900860905432597734010096948662904973392982044525566969694189977557223480149473559039320390196414147643793975949418779184790561094223622213251418067993996477298947483377991107881436166208836919879691998065197178726733750641343151887401978315786869998434647544432341801596643889734767355433891538170616440119966924645418941007205493645978524901732241820227397195703973573949430590543505680252912217910286895362519847380673827550870425833270515085997180552583590031029012417515777223588186403273097337384908945713664052565946509491208388044445168290658229167569865104246911611874133322021064679593806376073231756956520457964740140943888063625718748543536929789489908905823110769088035470497060972638859545714482338921821708532830292563122380247835801843411358989277079209242564982592083289732744893098110125254034910619237757470602023914947871815733029532127164640628341494409684378762208509086066946336231533294697401292660667673497551172128011956508967811498688755449741469342831611998365512949302036681103311012086319133922602156866096746624985761703550853228970883097607663595368300548214830140097370811546922424921088221149044102611483227947979781156328327388240179966154054779128298372393216961050964085498121299887806257438333096522996009745317410026028732606029192300866274140472720851465240980637138365437047951642343267551319594733302514321655206251900998553623462893288639458238017127099103611774737238698247878461605484767593563982560344928806305946955463214324384742440249831258796089098039002434717139229814754684214797694034197346812430686168008603053874668719592693679530961792458354230558748944775916789886212352144484164599195333593375336186926427435777991959768253471374845676888387162994821252553012542386197675983824485747808943600005070192428245901532434656434008278916551202934859587389622609636865044777342781804634831648935687812460176779096323664964289355034095269582023364106232999945504417705992332288982284964096836602663592414972993553966274733103148425277816209149066939932944946888290701842488082194305093287104170064859875344910968809722449342733219871294884923720268373914947649309798363450540771106969261586065470490496777092623887047111124821447330998629294004920419014115649560195007553122285969595407700952630538893649695840037827819896089401681327897150297309456271534810953597855953319304570850862835365782301111178625048092681716886728916411099280183038814198314816799301007984216565039058926497572513860767024441809737472271595474149907742186231130942831697328464294957312503758322757184900690281804157483216535155265910805438675001400816682912483559683074336040738144796112110417301534120093958924836942715162543659851130699259377692939546493630710259997512262640693294785459259852572244147220576884706566860035347459877378391515724960024323562210930480598525652246719495365020040854140039925712245157221829850994381971098824376581351767897931254016078593376550321076860432832549932672077538481034949688297344855917632917689236285138810829493016454829028092691902252739534144587194449329476063802970727026816169307220698146900344902009543117595390552891751604845654596759559549516062852710647607551873107810959161695041257205779833130580963281919220015981008566165456063232068661169103697595526845868188327060245557938037775147466044622792301207198717746310228002914181941895681406360714708320852483470323084747880031039638715809313699757405377552229408884149469699127823815843280017514042951830045262350391196690228395412897308695874951112755617354421875295422201557676492363875691029734220739041368788850859139523000538450874558575688405412437789017212660720622045482987838238739219734784975371251551400056597393868687245857178069690970716440768951835581030654741398274169154071169062466852084808530872021871895331231401510856515828790283961050225754322002507368762403342568903002434639810599173639618747242475415813165451344321340710479152541251803334822992769895520005049274283092937556255659406547025300974403494052300257932650074836151496954378246609136086650083231320499218045179731102122787599391838438477234825917771590316772279179758578253475106875921666142190581850350191656423250333627248831847406726328362464862048941848359838759506864405474828317989091636978506147367703664478916452852579215003606632981105018667309338065228279342548845521859180257653052803745875489962010175831849240013620222937724201117252191134976538057740167091833063417685883372071046913097289039980412027004042436614045495972836380742723492079938257851936296547972192287632590985466803153320865073160049864016848976574447959092382225884717622120672821393158613191219787657977530300797476841825184528040167780497432049520983071179918113644678524597727767762970154278681869018993708782868630933320715053252708996505625251606536698137107520377246882461837647895331595903214022720915020773796436939818389701521375013671057907113607169010836210867505540321190589011717252080255561822308354036191827813207894067234499728848936363718096511628895916767234894920050488080425666958346498993650098410285741724742164602468240103546143336224776004725967620401769685388649361227141822231272602249009913474039816744518656890454482132359056952162965790769384168954181583078092473816235407915552811085348798791877197854514467954398851125413694888884039136301308763732405947603168772071690071784335974586079838719537235455762228100843884476630525305794845506237033378109040824866877504303374004387519538507391749782643898197690213836328986274082151008867349461508649305297995154874592387460386431503153238653699764331152505158442845026940843388260041627959737197039344468215794021086394076278776230959940108025778356675718539461658789034093049442491103519574554126117175513023185748789144610174758546370713681537855169622904208422483163173240678098900387845702963922265717974428559404541150846364647893658500799674815152829044386831371215261863502159909818369053190454063090679715351428197811313353713474943613823872551767009101448682604627806056298439309894602790198588054320694138088432383075620605377455861304560882012374839731333277741012067341067600768885573165378499259773977731482101520704186213677705829535358788432559973671098026290929281248511713089292254003544571912855566129211465038117649037812154451307613660736836278653057849775444100093506175054979593053785182936927816496525865349507366062708348703592087539649159959158072268053006732756364639490293959794340063141718981845951891532791657725648224071169532410145864997354503860726182649283082154798342955695246380472602401868463090757179245736049322104456351519941930898532420493452127104638351642945639458166778040318172478271237069770683304738543364917793361763078754440056771923972947575979926697001765026191849041477669482351502324370874838646578441392926609505305665321829841682457615422209779672958300045002708262578724240705181135199888495264814865489262374286458476028624544118528688456067828670393701806064569697256417128836169916705282853153245570330976916207313671845615492248005471628867740752507641067448793072817987852773730998543193545751337831362480260445019790647861677250042079488780904063804411785411403063984073027975145986164114090523294379646769123732123071856610006470821865802777211072509012549266311406388538930152071029711944868844076160682878093387536503546056521590821063745634134956433013219328803443156008298122783531788944273090007637188315061661376663901852133246717462884724356079044859040039646769526574899934821159981698295657304518024731415709932163750709031555307220934334226462201040082256099595145701654011503987945647850909452936354607424686093537940382403419368536216643582344640378775410727420874222463630319699443344010386010600830677827126129765264690188151137669525978714734107908979464712311572627638153844385842327513404722194006835036148561204182588183086801750709837611729966123563733043686282921763444612253626640623618446828044686210941531602778217681740471590365213503175249926440744917611575047294984078326413185744674371711253781250507950223834825500355256740747846055190442396871555435872599372009858619746473015856530743888714353699825936871901368675507376401028073409296024170581202535865250890368897385542315061572150196547995484019235584509870458599883179417897308512756787806652445084660056134964103512997431799570927885142815930615316257335520333137565177791125696503909829161896179277949868128182357974417976259097533635972470439661025784946869668725712217382676986931731879656884408403691813665242556061548850884994054462186148741103492814545306983257180659616707124976263337930439295357561546690316418936109579265749542450523082118697533058013890158423558984556618412022012001148529086899270140621427810813788801639744489620416979689986212506629858653883901424409649801533461947542808756086934877998139663073968333544462274203661690069024990762798593450775244165202753749488588881092963700857807885028706223250217474492543988781498649713110085577853771127132552948659498641205341875558773415267535864246307776190834690587153142541086619934745209286239549413416181419429195442533365838363849026198296674257226273191053716610196350955163984671839124744520310146185529592572438912075225522856293110846046868054854978522692025006503999289433609043052636444353126561456163942430159481733405272132171425207061220452420855757732332104097671556321701084137299066661232719017349508449767972699207479393749471217877629532054925715985383407086311051522991911890098687806155504653080261199429020730076704604625418487936383887424227322812510607912424666799428979558311050945835671721839719160915233156884278166260848901005265045522492536065476291258863877169388719381363865886053916984716544680929825340153601435185491617879128559906631525014755482195538453246600004180929381473865880953570465692126392479237203180034122104915313997565984388892896250281876223892175680809754681644017650853819503528427822630304937900955659957089972807140440601397021055174055529046296770771107608226836388349448439568514268482269258227672961969624741368178220481726819177292322977809631126593244417059955024097283673281727982386541437081676938740284404791186143560913643235155782921279455484851684498898607642039508367981231462607727083732950796288898415412309026225918684064486581653248516463395332698173067505911129080539672508849518086529037833156141797683882608448501553593064476822988563248692192346427310520614645865378228006817230242586065575046451258828058808988852531612157243718803997428549384425374560652272080152898884877603166694823304314329913589055795400197996504069802247528646464860327170428931227172222301159869605716664330754875944191363688885985167148315008760629125392649329868874929467849442357416088304069541961981695885165152231506402900362529559826595872386690565919252953574792062989659653693521810414957512148371492198236904384653473025977793530396230091802867310483078223521781440578557154714785692762677185293023375285086370539838941118784783123613361168932489743956846352411960778235700200308483460255097965481539457119975958658074058554163042369647334749225540101381528628659303700668323770009038175470168137565345281996647905424921985388468014623334698559623316533777591874249285820461983719620159446195135891789350849012301741181754942587483177578398429660912733709968380555551837181167268745512336245153828588516964496323473836853619045702059962938040916857615190139546464994771820331893410952904349283048683854930046651318609310514122981621478005975270856638812223215426029406398679542982010240653207563507373188829922812790396191181152952156544894860529169376276928518349916225451046272097918926268012605120987659844268619958164261894395118741411640046889933553812786414889302633179716121797527525771808670430747356803828290184711115935778830156317310546245910716415104952528481623009681139399284204597041090087007349184985641240666664237917173928484853904570806262190957040466684039846650810965743145636818407814039621920051896216232213681047816343638824058830172822487054572709441194465307349618179494988216525080271642454023955227998369629570826882369197651805765783714207441082660895479669917167506573390886317781767253606812445125433367979157777519868219409993252833629384719057862772500310409586019820797420460048543909751133232495671417780970205097160015022686148201703228548621795662571561628183764975166327729086669484787729555640532634859775059623890654697414422919085590180649913542871769181078554142007366067336502386546560241254269795719954998053422745143008512647223969341753506851317823601222390010546773547239404862953743672095089215461203575993121158142992062178165431699109720323864062972488716533608558460965455971845174265144087349542636109417924104411505800386642971618905380780706385025501905048219929214739813034657527050984451547674570670715162061097352557247997185519898155870606253700967700254453790792850785004173187629499076204278577728867361193392070860685185340002080726925923480302130287961036094849450934487902370806834406479999184380336027620225279724990316723489961537681415349627968980428233117233969983729783227534002847523304553654134110203742018875776620334868339206254981408449330426754095762246207121131187293692289518874966224792027828086329551170243675726227204813301493703029776871135928545334660680771148645235701287510181092699572301738093839807210087133949201728631546298943474165735712874757158598242487855804245096674618626354424812032882368071560556704710318159799222342698466418773425388678575420294524060877882389831935976403512923530420324224327634931711295910432167198121634668341885476855971824122863747725836072375680994048876969084084200178499588459357385675786267699821484409719285602127232086366537621503997264150818890050573604950899585928032919691216232802795587589287321668074277045598389546754465773837037790790574104542355403018361395283036699933473118982359325133622180417793341036931264722049693873032916393149874047447214103580857349945971397624978090032362538482942076396523860896892057845592992991970473888392200290353520405511411111143814662455451690211379266856379201898266156349770173370043267508050237202639932814284935387541232576590633651774013257591054379530664305887567946243685358806302857454999628087184477934545029480958552877893186081701686046310766320613034559807013835753219028643175611778657301426448249466184829880886622733491495599682012682026859713966447047669105245209961224034977612299857187088330694286771978888705648855200992871027223877481958744740045837748572139039562247231665366825266169112610155679999453982066936828273950207954599883230733531644014383961227077969324887257439241542730779747855969789726500392936358305894888952231876477501543183271766091665986067085116008386259607695827935931472627244280751595266939846254572814425882216657387945329801916713043589656309591408405017642493271132468695397846731857269958337202689721523251742493289778541145075370519557099807427490924082242596926957583844471283292414802018473866931609250255991094039427879472111410440586697374813115642497257226093635776907441657356834418123796837492369594007747405994040252542616295671030658367739441349961311946500888736921194885211158322940628229182288609063739881470073567224998800927424277486086005326262297650926647295038937563663581111942588285194883870899438631491571122123196607949930288991746871258969499067797093263057095959172686273902097147687382309573026247302576885649499037185744993825890733690989892516014838825797215971758612705920881051667285646339128395944621083757371199506051835961853749269282699837523932689958589186541485056937341492398288845805764062825487397710715981227450412020805983630697445733522872211324098403374413800437459465175444236806662320744855449873923267642183387776679791056809624898328890200644190129581054374918425844014356410576997120102763130486329412127214160338101049986372341727707866107710298690320338695008838308712483383674429751479009014229101684894932240969103874733936103558575067510357347913088948676224933419974100627895166863997657184186876785165170079452938624558323203597527453534555471715818524102153633487127355243823004690381424407478657498118542522430265849928009070729781187732965499786998300853778082883946843316673222136645711372806909895527757118602459952457840836645376355531631011547190224793073122062114702664962446215627110911824528123163390691469690497870904330871212488678047682083446800377398113330941621936113853172303154910739681473493229123123095104169806765893057774672405508531495670965922977571673003575020669580539458861586111002826975978704531922820839254450186017718471339066921383825496180778464393698268814995582542375187082129358656355812110820209619128491127223608590843523730540630722098036471151042111756362994589604058116144106006174349172427386598659712600158190464571753470704233121021070150096390804000845102752070729873296229726288697421085519994697082385418098673296708006681025601294073812922178462019219898009677636730375828460605285339420333824118128969204549330874207170421326315293622342705826557833301092251871435753626257312363818466934209710963407422664017008808760016095799178013439836893044929832332790786462529364658601203269437625628534697066710449230583317840194051139083569370480732846687109975780388363920539232267313960640850051587896613964259124801415836057296148998283258460515649025086682571038850540679824830088885944566876387945084903904997967338379357372611171345382463486108467094601785369019941086141965788766345047510992687039710909112390322114105437960561902600387344517165982828509006678557598713978298526151095712476413947790661877032172793986868289335306432994518677170697848525885953044481512999914429024147500254898981715135468862049130628485421299956404884156590103920677458335579661955544526055096764281257577851278693775151478644210762095281286719280359433376381456776422435971920390905124143844053441041328902188717349700977472371144958370767784519585337685834588775097166864380406066080891681069897689969678382118253057802402746720063229126154431457312316121694015900417349000737984887612169497693659217622046718636770111605145011895549996418894778787416154101047809452031357701830379737470285126539974440033863741841836584485419798459943153311472436276116747010115214937318958264536677402634484730984065869943802084022038725492737257863807410058690901182306749285905815676774613001406399817037321450783576996435379423125093788124164483194092229875580615923977715798494990964256825708415344312319118191998061375598525603764694723105565399270319218666717293924824947623776318792414141561912069851220962991083465789308264544571846517165788821196191527599434512624333414042369994766465833350245683754325289395343623206946324219569904363670973367809526148644124332589239059442794827929735593510785085854369839343036466559590582659667052206071804218940680736298589049170072884297862281505835247834840845003773897897107386078340274901183021593537697100694171665614939768212065017306578179833800837527119876077570790852246763234075118006652093349736998915544965213195528339165481570249836541660474575787991182673577416615499253176338767559203958507016594290086008270936890425849794165688317458949257599569749076469843731403796597748433334399648634207172820882595672442682614889090519760612168671441806841769802498203696051930800906030614325373563492821745257246482830027306801279643291263987050807075277992049319746372600575441804018808572244766967917548204502177999027064719560354644145095579998624679530380395650981734878652860117103454365668779555048044914919120868146310262790858563517160311046354378506346866096840180389957436244515507711969218373452068409755781829651399597762812159793757060171007765877913096308695639285035422302873248509165416952644481314726909528618071644019628223157717247819854175048519341331985137708396861669120745997458845942350535352366265502025159051398151821243548572817713588778002600419850586593071421592483839931689414796642590362844980398247271669125429280709459316998159949377596104798178421788851497549319576946224304718381566041743462346762807036083807070924166629765270896255457259381787843358656865959114969921110763426702086071565768194661823462374070660331741104316526600727211441566597303494366626012121234640239964923949775985568216663793382531617689500275884457272997532485261528339421601286895713498355071231449247768009525176217951573275527420811875696538099603773236666125244446772711033761069046457140308703939523717837462668838976643966103837469121658406514193844622621241106113709689459595479872606814928394602648825807396307800925486368488172937055279864621979922697556889334969403025149740440275077363818057195774375266578848048476951595264632743142753198289395236584080691777775892358824044326358797537987267192041244388697781968448293562817150168883316449166193411960097655596338397685098092795285667843570378141767988938781769788398325055468146218201828347117965040184969343634516005189705108789706641244397917980818758020151136844201774250935757491989837781916486688853283771077202848612191341991230246360186728850333727412979373358595099560412127181806377765372789749939881023062570129805794590632526326503868804152649380974425332036307491876952977125681613892007543108317019591293478863501421584547093156060128438249942894495151039422719209185435556330423348293182002803990454087587119506528563904830224371670500186630648879312054799528302861105544839562130108222876995985131301204052301438714956659522553140924561430689079259795866892190651976192502962294370436412936654367694174483758160111609248302908952582895255762737866152160694699772523509478287101489012740932208750794637959835517042937543089961681901514635269059799969384752765766363130493095772895977709468143270649499002305208700009090037686149996424773792090400323747566658960989616190621651808931522229222335203956227380710884034721727528735407685595750542453820077245335078918853863714152121096416610760452901750001399877585640276420786240275688707440392242153129540168650886033429634842970358832285899785823572518784560476079105609578014120138874648576863170576534793519151710991991861406635112623743756743249810987572650795931914542247472796526445293315542457159683261717639016514591291848202229425857920412608807145199720692481744240401775514921994469160463612672333934755205783755388569278768737139580967158361167982259334292640840601570460130243584107774904304841519195668467462474993161915017729559242088777618896186781600851207859656527637959343340817202902049200526031761984313531192455141054024761883155559293389251740279047835548391513408372356112483697104343463572257909772415441643358079148677677050316928431062677483094598857120237747795203264451559857589982708523031437044612454207357277352787769323402748967311971125579702214550527736641941126229846429156798918451173160626782796336474580826926269411504090962837874027981409550297458679870886229641793502987815101582239046949269650975524949931213443282510889323233499142812018805430062476232557047519944450500626768990954669490835621821776515706012573768526627841471213994052571125534221155667747414219031839119585604550039665429867811540011095243101074093414035864781166145143708531249882564225583817036498879658077233922705646634431504636155733819429173087876622717224288196887447451148167951224393802430515786373104540335513802145888619657492917649534710678296165642630756547392244662024463163981751729376093037207791415940773635835785075242481744994725018875295449740494674305690243142159851164072371273919444391913657094617750428556365534332831838667372153376820159275080765400866618913207291381963848782308198321341767739290617515696540682352476088177772933634128890719146339420343446609067972422306218548394578937084426387270590490789624717502883552266389237336674539358072175337846719985404921856094541869739664040726926235660095260806619484786666674140496847905617457182217334684139405176349510020902981542979030321975251987292372672036437047368822502237786120843707966164216826923026927859982674861753987408060209754730571757245840759758233032947820156938848520562406050226004840195359901775019254076445449336407583526779932478410037438257864453937635984816979655391197093630361520710152806169822031436093966157965952367424818042295704077257624334629462912038895496316138952853305351983725524617456807130834922807926991888918707442633091563780543867687525135114177356635160313915480657658974339931487590962791593449526536008314669184120383723571600686242206388045622906615826145366823904752513635075156236001340662975204261884334818680743715607768902347437109042868037457835284716386626638039746267479350659344175719312243439900000616249742869193434025594920659399803636690716248199320845360496126190872742884835368299976956114560769423034628423468221957966440851445942440922546380825294662161284504279512145756920084394865029605110670981844892180037108457401040261831680936318661805368896713619686094654256433093417323149042872115449912032634488372917788748361436476379283619748902947045778933480809659411584068956948850174173616631320693166090033286489142797738302135704386653367438265280343773703582020076207913026410366378104692726082828634397931676636661131063082558110059120638703307755860593154192378588823111957952578326667191298784208922236379138273141151539036075166510929074352648994053414478748865054947103776836713924520360673230849411357427159397452334724526215235767772932734994865287556181979413465766988783729398965603871681180885262278551051199874976873786545549539883372548139077542383880051559861598574274800708345918464022554240462981466012761333604002628283979883179335630406687151751461265580341222347545120153897505224114730978182941516330421585191432827726696885189177061076865603755207728776738756061862373430763940532861528834674944594279447236027111291514580527335858980714458611433798036733330804909882145296089618978226960254919263249254810566367579420780324305053932427518897693844864531418817583200192910808491494009826791727294428711221554517954758731125723932252757463167250022222043388566788713088689920338873473042684483555385746946837457071632321229113015262619801903235447336638618296875262249319834351995542312252067259342769723904417882060882379947824620104881715126968192130631529356091568685323394964572658501934335693339701074248239171819634168561788494448807859102387277090867382456843091690338146110323264959692319654169656789290298047728828693022967689493633980229412954327138900650172753265962165520262669511292528925012197810631845257927667363638323428972184429234639090410349132479403301811292535372521683051030331378312104570155498304036537028168184611502201691943039956655237672218382208331282340346418106083749867199711199684654408735995127505222933577903187785551007194216517142131276437762757841697623638435444332053510444774346510595123212903408322666321662461460792610629591116637613864456117674704964302503320027063942027732884170007686670067886928814339001825750003788311267293965254268542483274489568347333470956942537648659832522342613775024729348188387981261514958078500318847140144089579337858996941684197160817699290452777196584842097751921227913888619093255743471335230616778418433466592440870538080879279534027062906542727829930759315115321164814401613237771460325055520063446546760649705453876965123517268165090428265036729923986930528026830242783140041406548647345240300943888873231176096666145073768469221099607670283717780799152738439481833164141166118465504711154274624388749091575963574850561314568001981569762774488800456165365885604217470102641423563063471286197034870221634880377597548551840502993548540646667964266755601781885092188808910526826507432371279883182448246215166760707607083325725102036283648862999646983258267713217390992995324471932638412854206209791443848658689012362849539578582251447135342376886290832111811669832126217904594193230075869683572704733396511796763296097670505610162994353837924065895378547295055889183904124091407333966219104931779790897908792138287890541166254942721288614038941603429181836357043595110851094871640565096846597056687564900873212039825742592099699073197629082672194386617088937111193305114549375870207884521876155150849654323041421281170952579210941317436816244781735602071179114008541279271451468908280522270088257257608556353347263779179048016083551410090022138473889892228809843167553618756193367296113599150126713340006573333350325861430979248990038032599225853656722242048008578602573591804575461015895149487133846616863506638596085785662395312636736311366257608841185480431831183506711507036615967119354370233162423483540542661235814840596390237607741147300961512577627372734922570158969134309956468984816759140450669306167929088511501268045715540330760709085420365600774593994253727058392912975643101073838070902074353108794661329789956288588913968129589222405307289486307636341744741177872482938887532618251081976126685916884226484086828614936110938127154832420439523555674545938617446121504559917991896582050806535327558458214249544222966149507790433606740557001493147425583514231502984376668535208611168071670321280422463401052704316773481391781516436740353372374931737445670757941059598562414119959884951321936986333313490322880709590982794342733164191097535003548485370350579867224539778740599419822552640216945014532622360084608544794155161098579901057522250696843289334853528077139496097397208006847819824122012054199486787067144127806849205675412650429925071217878831257905352245983033463021766664666100562289870651456112770898773264915853955010134978160660074247655839358477870404598371113336400396354932608075787279499129872590429355299280790353623841035885587085487676470739353655840783022918495586217775983768917415253579498529622579827985236354917116017765550827278062432253925437386839052254397304726510318052579823205362779619382389881575439671594066043858608330013579961326004940747015177210757742286996375647750350281193094947499940068294195935509477815990369607211402948671092210227892932301934054759856748666429038771677524018795717303028036013325554569772492302593607149682693204135911592757452448976866717799185185784734065772604538147459273684941083742650593513753947629449754414249827077090749444166967704837215805375321139895587196274087830555298844012150127196197556223115040266494886194681088863725353413624451793253538324052092907539569595466767958116236400728304414498765818655813675738613661344901481234149744147058305925113524781629141040560777581241655601573468389556840844880109738647355064569391231617199358381890495866279865358438450887723682832538950654647416952839714626455753540226512013802821194361353104668812039703104312886311038258599346155473830066825841178211375869131255382745879528443082897507238724798371242745361689783927776253200289433813348781537649156854732442690103198462140120783613215383831298729921974612658170606493565032110824295880806431077534531284250764908426173025356012558189416013721982818794584816914297747007596263028779489710860905751452277405303903757749731923751772399167010339841296856127890383944785054775790037441745949435117177262010528466692691817310920048581149167728518176821841227435412273292293702892712120982087824929413246257468411216031741692431690107895239793826632995096987382724432957391719324589953255765258096961874042426711522307925600051282116245056024174102181163933085493355487227262576930869200144702988441021850374872644714039650121250678798041228112639859259430446019651447699254441427740667114863734508523047087360777830738820844757509491547235535254774288697402242038986787920497452518130862711988639318435409766893468384617485511754996218543860363053421525411531292535307803052807524701672759117790897207876843859537153168396269055604791597506277413731822253136537213697798160149242189868656424492342690701537637508765374908045781042162834278083479014235542545527945508367782120199976941032492703018518026317780495058818667745569977603548650246845223692640642875855487921986183470543230402559507922710884416842714910185666751860142503344939182205953908178928309786152209111258680594356055514380689669652994661143020028171798859318036870536537308979256889402175601587060686498543763190552976874859358597239539048404077891707048380171652816941061635878424083621304902030091360751816666694732096602576973785507089690030857949699839380869802881430419934195757914655215146778948973231384232609410294377865786927561454386687639954294063159473332297024091236972190701576771186097934623023073596225610385089217157189307492458661665266325945278493934436053936083813515441061402118710554122441791902860389637521648729254368029085924267001238775644529741684942959418280934864506551374543727326531558890721071266941698787822889463318107408461297383670897044378482764389045773710760949202605014803286633860502372038861230454656800918087830070058760372852401876987346308317521425205233680168098317327206738728495012118657041010638590053258408767973613299771325878533777739150265224417878798682462779710230459230333961194492703090266861896380382696080453624297008297765674414209757478374025237963131434285584521623039791097274057950295155314537048251586089178745188503879424124891562768844344717499122776322361362745585422966325035754765248201126585986329248330087171672805149067651242797332614496089442599243277719425145845340438286197986221223315098859146881733135270186838673472496135573235494573420509496877384575263984546461799094543220989928387243946058131412208980876068361118174245620532827464985465576249653473984902198167595486360241006770165543358313708033251482972615128182618587918482970583055161552476585879443006320049910427822749648967128540579018189374274822646553461643636959396558113172439241169365667790597467281993273340479257637507545181201361934542801030611619817933725737261842032513177744276935959468007307087520163405096867395000337684059398600285496335280748523942516986620305508134504247543232902380505415535051788414841113793811364599244502493893590563997844167117593622935988594858753357996389596059318377560824052188428766933960672000013518662869141636764959844762134800025171642524310760624939645030071101898230588666755339131581594534045272845173387761196264970020443466355865497776041809646426920329690206352442820060497995176591622798251667490884345524651198043922252536718265292141406679959938188568346132721537790698137805199159216332788465325414826555509431280154309819790473909318341879218105698203978528346104803402820227550063791130812274002549057652287808543055227509983578780036783596561016803968392447455886844401614868325440808797059064898819614160670811418759930775179661518239645514844289095086610152925215909344154230377935404668569571077941192380241732080434401933089847559571956400017080634097436410537521324431799960352748424381147801874228664942466231152568980241964322796267775391610490071275008288202332570086162044072750718221370776535269673848091620666922720478907375289443185643375012286331812509473722240658848224616685252776226187880117961106630390784201148539597979966076033382771923356617404522191465683927151283571067274283248582043991421916964536103273852776683214013313311463572132412734979615207410728518330298034980455649395553890176647452635383654966928709149955421211272894904187725228823469845839492750228676143416007960591991163042078579076823418684801771735994891851825238496787267866007630121937946595804544883422274322677401344743027985998163253637368759675014833531564622493162599725397007152324435031327007656975882005713404495110235538092940503810007259177844078707988872222568058278277138929313317757687253306474295058832351895147635246434285525392720372822575939333257766503470160097813269426269397292449985951954439071662684415762083785452065542420226018762167894762905066429798063775404126923923512031184509893756083092796483045240360579327892812817578400483139057054942298980591713205785821302334383607001970699162414014536050347312460950889120983040050473866879996137220667066333592661830154817188804378495101586686468886002186338322774285633643703695081077801280756845356303038401290573815081275457848034056771271700291023421585451118514198885895059434723706727304971489692168443714971592904363972873983575880363630849694384728775667697034688095803594948182177375035260333935261671813749712554331144747977698091999463668096824572825022181103784585228599925718097537890948302946123334068473343703852251521925215054612538356734673330674704678129619848178474040489212277045910840565433760946641324944214142918332466666150594330499628243278759313811457509955217274597174536123423060972870113050269883480365469925839788078045760003295175172640265185232530362454658240307054863038559399552831056139902105633824134042636743309090234604230164007002378914162344196583892274106208380225436387425156790067719401707974004614693435280640741358599212575934283312627142793852329868234969969932355605496796356563866756237916507760407418185273305994535465604226070156154046459627157012337038133044844579134094885496239898834859086669683046867786061724658849483946382896991486943024572476198052184083854972266123863146318763224244669872941931712436452419564921704218063662030780888412312791083848500469540857284173370213908795644534762026774463147847289325125809415191838463791794443631233107666614698368822383386762583643330415462701725695578764132729965488179493967618368350171783645364550543051270884672983136079410963763314504431707249142315705665515913169289303117547408258129045495329306913182981309624305566704302334057609290685650269946139525387053663225333371747378593831136107860126239632349941536132927194649007102975458925699111166529876619864585223611271531548874414486194388546387148346552287798466567348241618225917724266351523796385268154528662846713926467531567495385265339042262180077720651906325406221566255723652532203647830787099734742661229647312959989629094701741211844907389202727821709176690714566346576689022070577277404624351663607562035018277753791925757953940628832877986703138295502407038623126938424615297356015499774834786133440521166221570751798658946697245273573591525891860350421091287949054093612057187867688973903989013998956109833278852166286290450456930140002920788690960015014463048100186872217718161082969414923679359555871216560497753640965433935126935771976839729218954902113211590216574556483810025305089055720088807629627234759208134503630492119498488804125501776458720235762136694871549547469899186313669241171477144736018008414124281845661390206254481787744237053459498492491353885579244989246042521967768677598616836921268177207984768108284823119489149132799912642943685087861275634871360158453782662462696996249819204016586434660207824520829509886312440701861098459782975609409233639161772087620224624317103219913528810935660517169249203055492038614103050712614402321350115530028770140233789593724955013675645311984761595801020393046910011811554727517583311795110719380780377282858181101036820999276992724703096184187854406415476651654806047951668307289736062218456709166003566793188707307481268457604308336082095604004800738545517635938687004692149659660833183364019011861458960481611558488311835687565526924001278994049444914885753301264150189504216588984357727221569873875935354191806316785657602960384714713559954283428345305848693046675401669826151162234169520124074845388553837126973751832986790231222205839893772916739150313057079046573388818343825771969166378597759330693724024401832949195557150754204060698894211065135788808151068842687126524712146925600699501879517665463701631532465796667154940406974763500027786590683364768408872353488298444738905943099489557940278664950063031092090432681158997772439157244950354435444896711775191506636136417049403576215106942347446541813234767475815952443332115425221917371055908829098114106266139360983272699971694595406318598523483969766262689989439664640659424288707350604857086306834654289226871785511343921934155543952531459692322977292391964744145237334487811952176717223701339521277071731484100156137124186962598279954050828966298043068419884272269166900156351763121277188575229557555920765086305043400629502647829430720686452790321519966662124839051072110370442050407915215055616571312003250032721759727681180253617211825377547450352139437903577190141866395039378999495234304584115985676412524235072346103565532516151670833245715760734898395686677343005685662545430734356768741882038594792722064232763720713123483990846505551506312097892432739086336652380195979526081662112833271948120986949336193505673727821729218530224642376801575115264566515597127707089864713003157860927534833284133721893935126271878355706793841593227899907189680517276943113312919995710014085100812268707932861124995357823606566220641300235553182763252370667815355443022967265263714784455092627111294817008680383254838341428981265018245297353236542229404288261309488675479389422484858123475315380571495547752548243087108874357384891821379835304848135996798608157277354743600550065231284961043501639323029228642891817852009790695317586944723016707958515390833394270574659028572053931589134408100943907926417109908317132518076078452844617893349039139072524336897717364216637393839839769118870220601846232167600536332856410160631765276290703786172859221397228346303618169644446198372352712494635983168617280485903689113078351572178207529655012779652518387016788323633185552791766210790771612490478926187960659194530561641876624332664615129672384530981700838110364538666783559056231390239002642940651702036541647464036474547740629295606827483659254178719387766932508897859932416372529060053532814378141193937732581583412601372836545189566891741358049235916320976624948015510529291794386322618236268489011017732924934546043753481798948946479830241041640385903196689702451247577841841535504599994022255570178399001307382075345732352975838225593698418662028185774384100845685477598879400355785435974032683441617559748858416510710638619857245634943946273504267688134318077711556055444232789351875575873949526200895257650201118573744588290162928223953688550373109947143854879211734175636151328533327981027616230115840613965178408451789349324111564659943418612206502995924998309790508843312351366500752951151075837506290239243744780611620290836579733528715187667059653748513901063686439388438118037540122432913005363476646845839108860928782406404441145590267526037069748151321338710520545418002211331339035821265607845803788143277781010422821716260964059390320362980439866783460552552599662478662790170925861998508156899629353922610402668262436237976372090394037978626657591661589697802929090102929542185174506115967584372280562751201732943111358850831606787342473991804689945936298477718463397802832919390741396195392645792019648064132307733810759897878596925087027165886750120669882647255292774596528137812730937775920221184756161610911770782557984953606088891246479177048034386484318581487384927592917585495035825292248785305180033661517836684621560462355156670290275474194955468500995898445799917714098927623065704688139024412024134070375478500479991281964475292506504008085173497593078590699676325506723604734983278477834808235216551998492754983989374981201341803413263452435082580446789449595931335426914960336630566774379164887898448943566256434929760787539723206714366176385991914313422306286668094229632107950396706713048522847145339422525806409962975178081863384173594879887670848663875189274955228658367999888401066967622427114090564953739337107396322690333975385368817111030059443572209688966080740236692154846107570382543171392215724265419770512255624054788598836588729826640423619918810984649619154567346319259153102042478119227709006935415419689978254861815118151774005121372267724439680020868096755963139561651100117756452535765835744517987957700082455029776319164644233366523692875606929401403503464511876505374199006648307088275979420012563087639369156674234175345425185319538356180548515691809434112612564903422016238273811631413554301846542097167388246517675534212162065583212000591186459716978571247214615791891775796809637280187999064394078061608269653791969652033901075042614152180628025637723066243136940547815269420176012271517409223739852971979707067881355812849968850421974908477114037382496909492746858177032544049085859478791361151032805566397394907845835650013383753281389590093295654601830596562851435604125663006658023827257811777131812923794773537675443823242418004076948090552810100550407840514475308601202512802651135184829795181040630604009021290987412282178351128790015157852264826884791600396844707529577878516965862667071111139355416866230994723886381800980340442298921936349196335570348063224209360352163658170940771086930923742739669250177941781528477363557524310298114090975518216138434986451599138392414063779177004307422507334603924181823165433057907933409812199472584940878024470648165564550832653719760063044483558243349660411014068105520821867470252931963522144747754035204889109585905966977981234756623094160470033410999784899908245108165928030325330976029684611441633107642526597826671247288342540198224242355440608315134222764963596568690714270089363746309461113291444713667914342396733972253313777777939853225813017823615931684381495341769784621731881894908777483163888709544249494646829247215166350701734508318503599431530974815418699383814204988779180884593998874004915010027792611582941911662674257335226809306609990345576232713775053314246503738206838213207578401841256754145714817741665977516007841156934285654908272484482548535861135606856036456246376004419190443060630443538242044768835654485013902842802579857429586465815125727643022254907171614696784556775741117325900183247383311723766356230545315041239713998400013614709937875883779243965508635477044612174879874696340950652940472548615117998841353890603463907357456021262588555692632384419454087047726981313112666943966235740460942409615890352868883343508064944754639561267152184806825029064332017689623223617570715311988488007725332945302289565928321663573518624482836519519943288327870781724807841177934272259500388081599746110119113117690847488644673795197018432006805665358117518544498166796767138152027911987755180076962266686934506375654367961527994501309642376679611595074820916017244029464709537025591987896730683164095852872025475319209681740720791776974670612198119549140777755055668150478965033441549284942262487613730210986126934265638862589453788351639115985212131463016655002084360534831933604897557717227695119099158804795335621366543292165730260808915040342811817408275253222084618451769513707233516412480145447927318674977072013030987285243495127356735875732536554281865919211364671229634837697401817539272834285165343568420212410004814005074760674374793430198275309893959622897688887956565745939112084886450025397696595752158194273297974843067401628899797803966481835041577307827254956552694133295059331452054788576422291358585257151460942824417338257039937131568312750741000747115514405996283580607846458103420527349007572607168829499842087351251324920875078690447336116039639113539176838099209383799811934057601182782993208732131848380628826092223936589635356016129352908617673805565671508983838855237724072848537189713213868825989336774963593033311700171301863190006041657949209225851521065982861955972237784574723130037070511206480733256372960468626885973882555421888434120132948202405466015768077432525436989777559323832104035025583430341012475543068785166936995400825546354993320583457521534156313846579566732623033811674521843832986749434796165849428253394578659020519007964014906495563076607992313454959138227121929960701282001999394855018003253203739819328347247058131491101621082355176843559117397550993466807405388787018728331013336853662522401160873046744235821550263934977412689874967357377937055604350210060595053812208029997934452317330563811617947789951198354920785419284542607764274524481943959461276771260225975015632543785365652472219648860355598675358758302653109672838482180299254037160736692380640962896275447227773903189643638968345057772837345709337332413639096191109102360765954079636516311822362866234237254148406658596727579486338432727315398513314250785955387001514345700714458035095155865534554169449135812844502496075352640175047992428641186852052708525116019227603927712845454851631872722278639071695152006745231912573123316322407816926686001317634207496214064372243615723811742161977587681960781995300904264763135424654292320656799060174563269534475196366925148388886037544593799787225117183997073181859492689692845334548591831422432549815822666020776866871517155598953933728164378880148910213612093894780532327190402051350400349572952293328416485111777432076669135579238728151992855336559124883807763620789789444702836825518916303751592484883685159189740238692032511132829986040204947073328008550284184776692132878031315172378114953150364716022537449655093949585109254124943141527461566281260564443810973995950959807259784408376832893065415443820430607027522161901833275643707095455564076254427481635352974700361789357324915338374845409981561311348021795765104239739252172140446440364529665945935977398531211710776014222880881977457806760793941173772459324252846964629493190319572268812888605657905595747213145033244800356271626176706787385130048702304412569000089637027571213475278542759977464513420054961135166386036418872498108694063877293287982638346135386632137906014434715152158912481968166626079957421124340640226822147744786341848162097274601088645462732419610184594489155093985475657322925484634485542774725133968394541921384945459728469860981866802754543067225112975225827678966149526622724683726544791998164278541302981756697918006411409278012830488025339026136503758046043289009502704048664427049556987461288146608244773393497021929786748454206303766570409521425881887032197749467059786400747610687846494043052711032605413863339386727472541025115984779293435946058988430097914488431352291387948115002761408862223359503685668301170567658546942555977697894441641746305914833292805489324475746027712184256400615652000660994409008733246527326298303625178253666088497761734874014717549370101862083803913093560184260085270838847179524879009456323977464466463987144573850261388816723182732532570951601709286681811307482019703076728866447872187742896003851512032496431343419757479123806748067123990067183980544577236678552509133088432507034426739978726233418639217239162173898022132065599315657322645935037954358065418135650054056929194298429874789974803430568068532987752985356227807320989586777667959845567323842311549577336705588568182252160390882084831924388678065672794979943485127127361868810762128474547446526540922621683580640223276852950791178455107035621007185802170214714430837768134741167872501893643995240787426475345383362332524239927343101055874580323146008607213422741367564417195786380054901550324303566289454321795332816774687269893070651689346097879149444046806669730786205239063599181230058442780709039761632677138088173464527723640460575973168776651021704099533332375577136269116517448926717001636708567833573061177533892955111365844857055420276628961766634557049869329677502458535595888486428569816283792179389813938549043286913952454747425033292072674123891605699922820531319364103466600095602017505893967375936041378567351254800351214085135458282345253343672854060967911866997579780691748842087099335478371025115257807292007496709770820090883806077482559040229433935778603839655753430800593785215762458070803314186160138918114031334071480748763430877545871310207600921191606543758374960818139010161560055901423829634357621776724237853060147040536829782760674684017481886207617866501060344028038531046565808284586847124517381383938598119586509324746327815935580588001412180529899357952194708223826495686536474965813162319058908816600211118884958322931094274488288755535484854909780388412916755786583612173535546900350561068962376619961767472137731843456689919203371697215220203258841081663741219192868657186422160022108376921142978177910125324604549305073854118698470258353793243531130846954353973949379071779088637581628101879616362151501798355009272855257542676809085359670782397575519467727987199070312249717217071245473687120869156793688562947143832845230117817815183783212389878503601569382057165256747279963468362528790484083761006529114931733284908799235682705519319795278140142040760717032004401826705917149576489412505673614857974466769697165748096647268999910473819729092529489648081579967338745516405697808209970093922532011560904808759393196609954225081409445116933374251126460321334385277111878056893571963126217544143085185124369304607432314885023861393558054165959520969796820016484550140239335016796315868512246634704826039440504082349662040527429469051166277948439332124226639231965572337909446797067855001163403454636852784647612420901149584848700700476963280768438607596052174871643693388416232530680299289925406534302974750261166967527649309681004688484562067320036000441544899175327014646171103738290223469869322050104263051353154719424481972143141443770872450656614506842084428833020316269411267638303096335915565504521730066788282365490780593879518169037308425179716861950518130676018176377654726623362864403286832876155660956976974652664186330023887442256403532677430870306609025316582869235281859450769204829478019063265910117576649821276045900298608841931988725707296815423558723649601898161510616384717872807316914847011440180956251248798986195640932236258273609285694517399319946812004030678877998733672611240420645565838886059568135807134679210589451808022809962513496390887893931076495875939133404933777217041329665707409457305217480391662463120792704933686348932872298321189756178822919069375105411775123576598231520113805857700464282074635703212166134279213292230833185216096660060018781476010583553113804170518959655616110437993949596529067159768719457181542763793960928456559173822160400255838494924036985800422089436207404634224069924305619939112483373994581740677520798718789658317759244432366209474993378742354793142780350088571598182833373367979958863969874242579254894049471623693229196015578773501639977192979992322396153591160828150423724417251136673704024685969128136115162729114722169587083716710004908012204543924583028877006285960775166609080593650676953170603563672482912339037588249871875280422032887513791686010916425348093415001302691702275766841423176822669366046939777683135635866835056434203949757319557889607574753310712299914715424582317710775711205656071823065159194594047066533222204267467296324106476547541548975188662499696657529227354935588126441578287692743762847646084619416117106128907014135695249153542740535373364421697162116937561320982502243830148175672913544251060598542080385744463820980381145838163232141276197045418640036419741639950630461011938097581278105556252615477140483494181794391698260473536938272014390456146957611684342458234451923721149691623461164893728066629472139288658117190159365377734449886424751952972621128075902491015638794447928722785684218458796427029991887430683341809141707453954805480064082736000140709015361209287860971536742790278528863973647907629291796219464028150105014458407797109488560460564786426485152313443890188527735040355175713138999520802121887731303030054749179200043992081419837180606011537470474749261933439595966791066107695162651646171945084860820373742213823540131901468950404135164188150900387043064374784369836679612287395975503962217579360870099695608941028267809629662997876210199968760560449727950189000049337500563330858165306642483528239277238478416490954996474708294955291271068790459469474547191818836661715106110355542308935055528645474140729300718052537512938234282798716695654378173966784050441857071958139188620401799802199081282261405577773481707166005198553888217976296972397389929888840995947341489441309917910810504151150676315689125260736659411076870098868038809808265553821541188960073755918412316809952820806075981862268897693559926491555826672056546358839695401665619947313322115369570113549681055786673011463795368336753352593816619627036600041762183224214117685963680988951783698597654458117592693893639376208299684484786832671080838934627979993532890233376130956502962340363665771742557297548812978852096870907198054831494930344844082943419693352612961683912753355965919207341613855241534715101129118939301812791609147242876076855181625009329681340758241377352606363886304730976514363332613766393124669214855219034382439259417004551250821768486074010937298955158006987322675916369996571344605273846536383596370030647574102997953695597597755728152998835058607612944390948185674676235914706277191905275533605586621384398506860787844466827698491801015358693866468990393967454576530943754724096450997054667415412308201735555470865966743684965877292059437481198595968427268943204120060811495723637198076122092053327002306334858499717845427321802376119559458899748962183876232272792334508748966201325544415906462521355986257843887537590254279636471695831416733909446702150852197520643614134427394105857724007794809913385283313318193562009135612301316199056722221024358271787962102048901363665388923230739130884195092423344207163331513199062093372162053261324579901145890744293443014361329541241193239827548519530605901685824910227427333108168995665002823779467209873012202115789551474222159369548534426726283440072366074769707413579068455259774062919678705441972198949478004753681877875433254412779026238087640973516659085706551794458714414744753631000592955987885417567931983638387471513845021546172047586394475144638508099809634507302998854820822035595841755099855854105975446707727274650702695091328978293177867209546085998166899424201298784163214388016453892413548598985567922664032338969491311032686979242038751763009289700037075963444973001189098000615042519843067050817444139197507376581248670124999176833544762876517842967516741762382774418685885525400347044554643377621887672211481492596714420425385894999928134825977106567344225058652323688714969999378456692939043123434096376848782552706780614336685559665124515468510962288734057157043233131417140364311373873354264800090291833523691282128914744742040587195958104133539724248883124904603908119632286699464962938410696565008309195642268369741057037783299443595564203318681914026395390274199278658798765271547310893727147584069094380685069795867306068766339515805835324520283361641882675689540584911600945661442929689035980199394624090056140496647256485665556767479463439658591207856025324012399423279255714507352432764208671221764575635091036962128886525435889773502037761728775309972300523221873146413569829446912944408708193350222818052117816829028483876047643770017714013286599088536716763480083465256045726567244227986756931801688282571220920660607631675627992474112481827237650520747157805852252641976957704579592896220203634291203607776668273518619458406668510200276135324004482257711296215970182807575459316945036978907328412953159284725239618172734597346579273514321982170798615448190439530273461589574230498364051316210299652277317581923822668797078542614566872986580899495942310767091267085007358335433491812027092822644363990547874778482075533473873482134629771302189313191254165390715340147635882085465180311995368885805264330083680881947631959908961938871032132884830852357116047785076129802469398166072887183369890659772002639416247776348435035740564797786195295927012564022748184956241797031749722715051034329749310899496378567095511887644649860269501462359177880952118236992849275116003249713031007334993074625068663418678469942456244031327939089005645128555505383107365105073663639074892498765356399366550299343741144028698425054940581088835085142578904256745367473840800281750562350512643693244451020401060241572921751916439487987364140074760170745000432213211011373023579399570164890444178873785475370344913697579513429427639958881870606556265119041764761523240102827866852117262045761853865788512726895067028060800512018153866684192443908560717065462943939803259895215372462652217584887184520937486274517854513691575696628953083903920803154515614465004358176585480959573543738365782763131551021129080288313047901778191539920092666964690569294535482618970354113216549818861879617295532214365328140158258908468553193398301594153343211647355502645715254477951158383417774547791112301489481919788413624888272512070529951449802947867832672748553395744494145048515398562045942068680729434955662778359065940281616432259434096194700197033556019403778374781572018292255107987618094929115414167267512301474577539234889206851396243137760717627442990762791331746173695575829860897401395097558084955113621787531964451484498688453465436907273178686577155594304418452441719063686551703999733281484481908773004617389296707623801048838084290717300036675346278967416752459457819213521192113703626744719555951565890160793998984235855818615878383496952523765424349966953960718653078185030979158216877914408516745071239666491602554291633604801731561874369275310684424290587253972683137295728880685068241438251753539312897676052087203489871932256879008219390082796551513027573190927245645536254199065542498743088447453340074718595065975095992236003653176366483640687883734794758639491750218454948516935875459981782015909478598871013399903812021744339958829287872765155938745300766859845103286413039502529147623782409292940264741869865857715165065593300058248666424541155464283771224696197934161921675196836797402568573146782784425585114006333460893182883212294052199232384840448335476658735157307583726523832778311724722744461351817787101476967141564178909544607892625049722802731144719619394071417320410534406536267985593084715245503234632946350720537541461462833263584149067074249369166942584236548142461473251442285498646459009477450390566397195506183447979754247029647504225774537054323306177802306248739690560869757049061590008066624614183961641633825428215994198132980581332398063243485630753077315180664871848463826017673691768531478608707686338850834465206802620491664696747979571236443558773973017987999586940972357580151293034972960229125501575587816895794791148921555376972924938538425854711669728210320987741718673716998624467672890502429622611676868455714357701313516273948176253145491039451363870530811178495185175718224165490568296622999796844203012379581345940483508340553326803102217866636682453616427817133278027854794994584723848715578448749660034112897636387471543697613030419102973481198360443384016358474191859955678001630724661781566693249220654850748710690022945673899961914312022223234479999417995256760638185059044329843964168544648631032073751664407803949959714626337800518256075403150160752587206776021188504202947709056888303208922194337324580802714534335068688107679066520677394577522369553902286176702920371657206964531767667843160489433695966908537023645372673617199386300412160933154215196499282136352799258399837565764234187162614653312548434322326380067104282865201179159715192080425173075101730316994942933954962169887974085426688775934970533700057045663230871767475074810109691539341830638027486843678941656109439757247600556624588473188004277501718432609823699823208095785148806502965915744093364773470818171857508508846880035262613751902562519005606344967772002299914944208804766181279753189709108595337422828884874961465658819053216470129846971913487953128326471624646053423237459843914642115401150259486196035047337895865330290790304318740092346961222638895277156390634592625330611876503661092283426269663828858274216439922880447774245377577851954732522769443079235259879198910451585411545879420990534431516240720480261617497161965240232657047476232350898338768442985655232350109608620840145577625757485026833151945628793911042613562739639798847492401419227845737689171699698199116208776232838949537465353500059196540101442662592149462929285729793415065601525990450526561108554204162275381204701774634333326728951840301806511468920210684961199952374152069533813736220659216012084515725121929475593225545861732996934625140790735110428415482401987706415108785053268080672264515459822781575869721180390783107350714554315060308842913515905237124314183362740667412448960734086890731353511078806067322448484586218366139974708791529490904154851844139485242183738524607591154230439379185755993770885912298126898046717881865283072591148095594985673599087143478489973494468695008163848636618826469920965358764009874951528109913821533959467539371583549080884108277317537183788504696597192970858492919256661517942817302410297440274147125668617805752061427365239726525337000790597000057640304461214543425149104063525348062432984883227017420069478979734465972237888765547116038171970067769754496652538172425293810520391709361189294291675926241286824676194431958557792615530247651199531219247087867035053387115085880425189243645899835221334943384638104602509966708284534448593464445245760829446984306478930913950123849339724607825001459846278481573744992505553359537249689483929446327403553754595278979482116171090456172673944739031537197752048689471884473479158632422890949738144993518513614015448185218144188729207320412951379771187124001126650020219441635135030614330141151132538014314255401502396907044144131091285492176011659849983838798368883414291425085061354666691343059066307298384202826354859194334211965956366740343664453054360931976820772525882031651687952486010873309124413561952712649938573458936410943078537415390474026644249744999149850163329044094514285247352111682557367312996026308305313675811941197660372823150715457407048816149114810588657106609423697413197816800907790669527026488590862123437779043153840914391642965092937799596576523548298463041525663883794712634670852240084107303627598337260559957559298877089792422679381605303411296579351774598907883163338284348774850239724488737004795216494485419903321250047384775921653523482242854523869416195844841544361195343082931431061976648460201940633285726420569493301240309252005830063990127519982141992037420309272676559787208629991333946955512527345101352746229807304670857101055423835493110454074830170816361721698056077416677102071219138977502256274553406584936899775261212737900127855391546424942540893957075003105429282725827999312842243639585788926271658118302717624070246159625583581827815844041642036778652069973040004614131389299128717347102359806639169900871138984493381943463142320418122667303574739723862711486780121633379424763483363445281603923713814856287753575460915685861878841247090571655667451081457062232035485285950097478468581253265621278132936334279766739802443842728000340959955087181934270310400644230703962184245979855397025689328441968430821987164491015571166829423672669876084866212383808508474808278380699885405224520534733718566997600271041937381160885698444837084813955794545976145288672315505716329861917410000212733557705685342037868688085961382610497009789595009512033843432434555014771779873701856932815161611654758498476578528883013689750826623602609141384278574917837283092342548919850369392335186377792181459791621251296575908701848915776303999090521286212024487617922380981279583819908573509357349497210197531911620714080567577861146832781889431669752932628355556166101016496140253907668970345235430136675772014906733231022525223674118698649492424355303599299119025483318114118444701542751989798892184075709726887049923337950702113608096853528094307728394709475866372869450939297506074371432105401608989895180426262030119265664192119137118323133341421831316354576365736250553967812727920077378964773305058113561600858296199442334936129208439927450458371451218583313315584147732661993958259903153119358583951560860700122154865155759290117006703051437060978410319878914298243718073140772119833316352445362223127215460346148113670033952906751942237513243079982694118259339358695371158070144380409502719470900315976022394258822628950783469495826162447360286973832057848477555936338208446243836809358676743975806042302700982177297304731668161177405000663193676445828568861252283628395584792468787873979269558064151216985002548190737839750974090027606271428077480810790921420817104340996773492160210140223811160845032889839220392633399359359706519688780474849997738075721374653894760866604193379293360224603466332835989805145103732905628823469333876187821817910704489769193522811200099033310163493769876414305470719710445323820100725440807222596139666553792175141309749867375907440310777261222799208712536550405097295458531462141963720073307299799535478141385327219662996444375805540849835282831408789302025271862911559325641172670118609784568558709403484281442016676458444097675028821451018410560758975031590305494623522645860215614929347531407874663334361545376401792226990560002000154851750700509384103867385796269504439096681437314310200115868642455133384509644629648500578392033952836861749021462024347418184096495467265603761108696615927917873365239718121794783437736299633224703515512044005029256769753173615082365156122251449791698962087823345662060001091567141345499820128239445854579054276979919264545445068087287374472960561043016624717776550688566653969859141190853610894511545039800682414092442365034686348949773326665153024668969697237534290951581831533276739601969438302456410342297171580047105112668053158785484578391584323497203888374485007039860146989931550495194467274007627124822941454846441741168735862590349859955700390465139641621217222130667871546454474702682052825219486998544054512964634078473731302190807314908715824692730654745445193102576963265429022560608448106237706682409225395184141516705451584821292428571486615610015462819549839436609918126735126916791016924339847128327452994180607605772476890974932808171769093216945910791992256285020480337268188646564214174813616120402593531915951392440607093007968337727026800778505535374820190075761140945352984161928172028397519826493979838348117025680309985091083606025914190419826628043845738332412251044269856553696184927793446473940208192157077370891068334306174993249752973809205395759934392047898880095134003976245390482829316137694353342568692962975982645687833552802813398195716434044152545488407210821640051266965411649108193390742422424134917057895304007736521368833689943574700734331034603307229047944229069186095320967720000923318089574338826751260108060409634901008881832401144854652230153836039018112935611758268866492721050255284105743502071534933783393441769491549643477230484026583428643275680624528938819118754425396800897878509548521364909707332339784212619349190424537096477591864837971116398125638348064448136445541922742576679820704248073204853920322989617813605960888319488498464702650011521806717609601269580330877942371590114577666031293532103248382820778369850500796282129474203724131565766341189072294943201027631976925165883439272927801179067486201094344718232307221871017779900062866095920818157125052959171452865438383172532824225395145866216994713988559144085552225875125838787032002169540138512685189356243931752241273011421152580048807135380095488702905537520427314488363819717297226043845879645193467926764047351940680097727975523176292161806590191790281603106218698713932130836100652602094784038806424625582225884552982859683537661806983837750685435779055427483133000275128072234806810976742252981943202644734840986237539196678906580676241957395058885951787830702686316975196443772576800385852510875577798051744877910511584117469541358647967625299106996724361959262902418624835616215680909086865760824828511041988652696324803832964797058642325536588865609292006228424235663612777964332118496763509392922619212944543460710486564727683789920969493841587904417889569480927877452271130334399294161138956581426763927348432173695854797263724847766056539875244196507811635729417392298665201021121599799377764262869808500522100030620750757469780609167832940690606346221998248782895207348146022288926502054162650236475629446225857017718475731373950311239260090300029676057888813362326770070477969263663125148805319771283324179067554239603954750629848448121140219565457339842295238460897610052469593560437763792372423554276652038699173171229887987734699095773875156229212961187406581333128139308097477892013957609379997802426757339216004626168533466330535729218720880517694668408675638987156861462908305871936853171750848973444211452778629329183315849248837309014347564579982039130219815564299608034694405315983077161840988330042369141072269999961472294503473250304296762163497972749901123110858364957808562950476983068817140057041230448996671434023002125074271376355531177654095996507855568657069298438163431125018260400284256442538353020998238811496404759826852566514294091535358642192049782160166285824584598035895431509121976408967363588199220038334474147248998396453509166348989712314589562929889753881747417927109922638528427836548544665930936288350744249176109154613408805815720002011459050787687730739495971126327305098265420554720758160373013470314736323310578125928928001116289232565272892245692180010923535741363254069904248705448441340301038878043530469815829857456160472201797747278179757716055583301550970520394882908034240357971345741446052205331880363792066308543897218030492399632142273933989257525523259506803691529924431003761234250430369402512506176193148530411005846236017743838378764905885228190927894882559933086082165045745005928750143445857550326202773233306480774830741264221443020688293874027533533226865851777046201952690583311561439561860767199649366910546257394294794972894040773757933019064358041505287403789300914258826887378263705659322323322745716987063602521629007514388171880584080195532921638001250985156949650669059129659929088623354613902549439669747699279917350545465137466330670761273767892452176401826367217183258890076812445707041943715508842309599189673438423151816905627756037710577001026893258269251347581035282980394675252464462581961090931617287953242884401827484258252543285835271762257355709991254044760490183182188343641895266450369009884524711098075288626119265068960614809048772668027630947899486479767015100135331191994871512481910780473899185658539606430915485721977027638036554563941041316329029191937681992128636393002952283567316034898073195270145955396698472744929728604535152974296052783655411284434838063412289859458924686253715541990563124919953573418926955066580169247017621679258849243300282206626343383172324259822503541063638493113031863211655613865208244954791540445155939386098552767299717959143812038722542008014145774395326076081235176934941811707009714573107921648481433011441292865100141820873618098895365445161107241148925753509366807209820219901785437612958139971733478231620197096079806251451951397998152117834105052543945688900534857876303351486359675522991248530006879570229980906680018681188197575647158059382122048755430283579114568206510723001447003550256152328428631185127263469073849502796881945709213771455965827609280094824176346489896343503623317745243483738444908340873136199101629243961238433117510252810135893172764089118705236055728197163464184119425663415785896348603071736715955288289061920782140814387854048058189937039191399339515622500234031231545997821157389082562218201371335244578257873301526855097650774941831342284942462854326905240253374491264625014219961644971511328331066424000954672839330498848289135825996539907742487697253342926528100394309870634011064722892045927009072657027479878045756195127114930522220452394681894328972986677393477206556582192890111532131976109757251187631402650760802345758300172159237617362919829080326536121626472415353865891458414570193761901475281923067708956898859656425104785860108065045377635180794930113435536379526565940348658002326160066046755858578157759596137508523718471048155243149473151855937606750810529911922107649898655153783067770092177975388235173950287597919624223803725222080821655617037719069620184039618211342355458255993675534998281940018763278254736965742533765588582273398832055473648361580461565135336709787392502725490944484485349326414001796548071015341003009154468630885727474848186620695028501724202793539526505452960287629270234619380515468664337631647071508224492699317813608708706162270930607937411805315581108981792814811231696608788548768993652109546155917961553023909061817792090558719918474769564154326055736641789097224598952109910728511951711304248704897290870161973662687794582357751811671843176850172259979863732798985987935761708031875873619907145959827902198452545049853950391963055648253930919500928315790035613164319045197216136471547807823106257195206071704013530968146023898927109586383102464621075692271870065783960414207934960995445751316318725581897094506186162547494352395427635530947244543527360392261612629099361204113115391040980250961930212036856433635295157940874873782400906420323047712740471300235206962430937239068061480662362529728735146690610535228377426891305721612322863614216856454477123997925425566757192407481986480510496254793401717736788166277634480610207686752305783809212384464349175668153927385351680315479740246531248777194590415061459840910040670859113058720013098714807465164369989268371487468797612280169012028867989475666474372596277940190899853133687305317484835026146790398478052176402807650780863077797025555039055074187424011924541354422423358172448877410262423302674941153955016027830216073831281773449810179400046785979820911523696456698130729987666854590561468351285457697590224534303063551794852273157042275215654940959539911246138675656403313769976268854722849913476907182533958058942309982512270833230483914356940831713318792385153592198278007509382492580732084066720998445157974079890713027455275673528034350726062642812142545737471286621444317943888083500348773510310950578336255117686893457918129819368343371131760252468442682630978146366570557043445680497126765538069157154371989211053320724366056803047580924207973705683436858773912156048716391745661685054821392999037468087913694629893696433134128080476111986195882109773946757459133604974920985892036277945972205125135768707777736770517737378013804461624058748914452760824459871420298552687584312016744546075404484791014504686897248701648138016297594409968070777965018279756536300242746322792708322700749357799553490836096983726839256743465455406677632397558611274622372281712777599567072270224888023061931865835459964562790578393629589635487633824258793974185213574325166257072433743064941799237524450977804691911977412711326489290211409387853573182539214452780510230343886968847617832067021237728545922920252420410073421503941817260882103634799853788326742402647521734624142810929817181084924244393530147246923860006468674614785650459499528568492452652456247887906344971838825246975239319202756475884476188783893528964660720570280968934851829697658425842118061697603777335300830654889389795979712532724582999500565304194961355792734716936708378789850272770025597353146127312375382369430662407897370928242415255359168711675170436084514661232975701056848927512721614348599944008240396236249315245517527184951036059296372893473995451354177045871174745032391088628932751416182248904849075824313202992303975555224146470722517134752492723704710963118607088976093350301717312888297155742002750031653025780026449075330080224076387972628874828524025715245062872293008671939779457616703959093882812998349519857586647934916165295020758001676883398178968787979336165607722114108493933454859010318013598897599921113707559672343886019125886297788952452691128322243918446129137800378959144993178640128099600987746489431016553536659731934012762758708877910786894663547514329351635722197296851674651656690436526668283629379412690955443049967022824683810368769957606548755054700275404309175682098939354575304548368561985703778892398699272611488102167383052159596578559153989725774406121250907935955036545512959466677389818293715828763562219570750600320916563266619265881174889032200067062804941909881490255234149498899231657650290197497224583083751774411346859323054940253272309372720400606384251641463593035141474425319928124582454692257775502418120751467862592660094931175659480470874333855247966327947080450517328125098997767705212320841207230998210888994883556453225363797794597943636814207861772365483654638636980037651268343119904979858931338644187312636237603378721821900665649319044130481046285966293314612825597260234779296190879809626181261517170662236692595471598401019162968486840630216642013240381252337830490104400799001377711394659240712301667077882252806922420748929591389344491152030744401928896740651002253659623539123728023525408580847038167190679159978997719565799500544709197308235379081972742208812900671132718657820330902264596836033375375719541254809521761238676500641838110117461008262375652508297089767598643099927979105183375594732106285395390859717153678826744290217748828331022858880965871800226202744604707841121829349459698089747444811957969217853274523324664347491453459093853888647788949102409893917227249347515547623366368459033063679240223064346850257997748794335550285216856734592272265445125115448535934741128639856473417213888608913894813263112664292668909591313122317790635410865854615060095179529041442189844269395935214504984589903402365909019605513218780175676563910185379671554863002967584056848452414673912034402684477351325066268473633525116817607893086659275418149840720167603372188699188989116539428907853849075722084768572282046919629115399711958301797039388012807248637401022429041814889313014006558669594432798251073755998676395306485796489509636858168318326662589133984488392237187758269029022317383593636936280050536503453622263570271115546395939164269253215912016018076202228433190425950643729383333717288471780124615233286265045840000212405953424267192886596717235999586253810943978041324986354413459934625105548164199427164498588115542183066089803039537195924521396596301052793531923396100824350265821241074803130070325224481767023057775319578249656444598773906891630000404734630867676737057983205679579921539439455762737253744674814194302149567347527328815360159197325075238732465341323232376081463554108591282952210073016342672788610806707582436334044945410486114621758528866405565158257292354179186121572191473019048659876214225097153169454544279398593733742038048316579528765847912000802357916111003782474054410500048506958696371719825400310012517622863018455637068031327448983569383150725468942380787929539571148447672886463018316449348775579791305349050408296064303112525121597204908040667763529963659736984565248988159368100785206141140116049133355414530986619027562379890433008218347567363197348970822663771071410243709907214523452377656370834017021613362645674121783597706071193407216663346141934314528734474224432037232808205276161799300528807545282322461108091744722646627638827787158281744642887719112744393882169297693040923141255608494807132108397576884745776798392245784168300830978133748557331028243923741574783797237823469053429864010264933465764333336955987944791207687197277222207065091572260095645849412562950062367131703152523589158652584960057934711735548821132836894567060281915647259660531974827726484710698074422269861432129897672934076070450225736361881248838670051635086653889992009327790625531554727563231259752611983381775628190662548029280887039098636878068676278618335709199815349390449601769233910919704336332671478364397158822348331410071331287925164729524979776892006269345331829125957972259223987474514453394009875488082060042463677962667620264846791889007383182034522271081859982069982899112037375937466240320480161990654862622162060242262256901829098461989786526600898605792911836551557278257701927438860227113812459932347642802319344100036333704268876594527922125939285893265164044515436852208336663855638342441118800321426578272651262181414862325908683562057410917285267650650195207069399993635366326309390111386377025543624609298745357956401341382094296730487189474930136008032551900227470253613643886880584551836070147306781987263875400394793953234981995925755715956678863944725149994410687420462050777809395743479169465561489644411040190205084048668241288351616936309348840640899119798953058090893821203002963533808692627808688096547687717246618115041903760236200817885641840472214119714211454357530026224514504287972207630205259381987927112432624978404572581691052616498463594118826017458532879689376376139320564932749544014879943049995654483716419363810058281891337006255112336431083482345847557233385889347955132959455712689152519249333899360624052185529310941553092750482701336098542105494506979505623794645206885822843212318265451233738667566992037005518117092805107763698456014817353960098807099278121848655147436362315618792234137861249298568777835556948850008186160143875264386012808455909714217868335830961360122867026109546815097011262450516709071799673235186053532585241929003071618292099560974519491716706003946485253228420549910432633785631070732090537501482710269132569329393956686948177248485736422157002209518643791375822166457711007114108556162489023149009049495182628126070445960443887833334222835867559726580907094612016514223225323498963031935751676681395346417469328636142425106593113550818368146950959815222845156295206323326426753482904002647642154861966213817083868488149176933707456554882755237033595689902832251633657127135239295912281102355009210850107901457513528880748016831668553178559708955978835688286849208279454860408704000104846011231941495048393950843288509651893294815804915093034284497926325160420870647097990452751698094888324469816813799657544798053973120736844519150059964160235238565733119351108507233796558520513255656197196568390762201929594778034539276136814448889007127253296686870103445051445505071955118849222089967410181216268673968747976727693599754251240498579603587777444902043510262800251113306510599206246159329016646438099591237370988712395283363594308842774523890208932122976895426255707134297457945891194740159427392811960942332316089911329749229684675620729117649704575974441729600083694595320894167908552424080397193519321100057994591603362099536292423728096271857269325264469214394908408596236941570541914866523343825754672052854016527750089559457924826056856634318042265532071245086667532615240722261198816945058357163780978702628681055473367251450957382615738387084108046189343360946647993148937855777313116844142101559242702986790592178700340454026202678846604424651706078022631638206110449721686416843250085385461411145505538657539530695671286196064698250465036853255231105822396290183825241578949797652271726091286699951941856447574860107923758748795233171069731108440834427872932539642201376271571752940898668899307311761732993474714108800675033068919050299792526023532106001312627033366552914376252947271998611049181573889461801152504907537536278161307814713228652723314978158970124922269057003552601779944859557430930591475623739400578114717049821440215451391826428683161309189950459564219569096921689781744630109228395606129922122937732954604283268452897645616922107420071572495979614432992937799589876982643299404322075453294914031953320297863993922200782481485193938466582835300630723497360492370980910100841816398158380876870796191099337886146011768512114014832401382994435647251478994657291041121979913861216693958473677576351770511025256198814922253389129398513799531987871919464290087632010533923171184188174592583720460998322003640744900942332531398024833831010741512622350455055703931991566207430349283492758373934070247312641599845939417878973505854387136204516378220382540934852026666698157251396016880627163205557563510220952131063954629597623438525790623439128874769805867477470448799623190895930523261672919094436808709365557002796390039899196976644533647544061531329882005842865163284642609252028851585391434931222735342848254914986161179783237689467282352879706542230130184457695946775105889152380367607928416126466862878849272031113497704439217100658012790031585531168692548068378018009533724323894559196921044409175945060976173471125993332582969625622242418542763983451197722049843843807044257260899735589857068366042135265624158184794311736842853240264787670845379767348080851663310363861456112282602360753258879532967622393554118369123523929039745635653793921898769036012564518104597197195670539286802388095488071087943925255891208881740862931586686285563037793098830660550468569535194275247543776020549930873186913769685094493606486037881336562541670548351026065185837458930706495649960786617892389946262357002624301776028266940983279507305424777782484637782786800375229471299303623621670396302725158426121200730742453747681084873813957995719219705524772076761151410414309111231611582606517282329421914061327555823036063827392160961042448001806957058071766238662478277792782519305825313790526786207866604757457822393218107897958512029721979463293147204160462660161107551468168481000390778254183034494308971825161842318717655184792556103114247887514632797974741209894529520480008293201332566111085715495468111132048814709218482535688282263387800150449901098464200433481463797614963759655431212674778417985482386181773982399912437604109029808541510937922732315039446036218943078598172923452230216784751689789111326227316978589313104407094631324703666718902322556449764418444170762278749844054408640732751493383111452568860906168544780782939044282130155438246437082149093744827404847245346208534255158400538343235928899312324593809292951804176807789927251432712205564823459355129266126576521039577380765810958296259010186306873707223944944122656126736322448742013076164246925813571335163033062908600496902220910481468234357213140983225415298069981639954800927968533552731379950540364370451382561749245893421250401718722690271762236788403627657291146460023450617566236826908789309693435647578108593391266942446136734014282788764537701557684087269870886098964576871502725238757527058269890999153109257241420223331318522385452319814542431973570640061457818149383433202203985868260580758383344586992013690841921434410258521674082036918649900038787827141849022499327448340025758563198741480103147603267241937763192269329436038651740189513726928739218141502832446428339507990484423354240921592185176064994284269422231245295586752138479807989911079096065973114360967937460755751279750392025070121028952116857749071584838910656449428614004837439591209112294439892619429880488594227717058860623398929945777032589624846319326966581373708712565466445389010460073633478842054947253890342193334482523231368426474740750431382034724046867890750948824961864002633936312569999233213698453915574584511833870459717306866260361953187099037133673697503680477520174274350236546593000545570937434767669982085919852799673617806585320592429924404139317313793320575456056770694034564971269432677518135573655920281223803566509721335978369993340853185338038545681832136696966388819156827504328309356075039669105235226891835273457995015193376227310347979226903553912065757610671790058663945668149699430331706659010513111016672377635696638822359051422692353039699687757141173989139215495272896761159290434217401646082115086198726941276588599165831637203922023635834815106294973942253025037149713477470484543049002691192119449742846499940210675703583679386687149376493106482247274966275976429844497188262912458971357451978826787150067927399145593704235214196889736640094426869577911843402543542038746783284255000608310133058543198582296038470440101580575410314470733135423690867714826676564235398333219317056759626847310956417798669084756640273620890080122305546400715733792196459753094171401797779607616108591380903036521990419721976684197639745574348454145191818295036574148842594496730992459743765982029753409036641979567083430042208469540371325486835436794841828809266376268673799961600820461947383000927004721333953006594957846806993033580889346491717188573197895810759971738773294040413652965875265416688791327879959405392560765976605813272833398384005630420412186986408235425840075253615088187491048970539523576658690682492652608577630478308088713499228445349878438029288961914990113565789597366548639741009536696789989025598048130814675667935766879853822868430624725951822860694312500118334714572205969164466506197228572515889204926906695053549530651934787551737760485597184654012094945705969321799674309470130728001375595846828658685438394545171133771405104784648949621386712441407845228460872294627248611415949511332321607939280108469777762122429713184992975760399905522877459786227171398468937576155863160758440301340410953003188588851022237640941626474833812679001764308805296646564749016707366761293240127547498257757055052625700297647843059987163028080636553301651798939919754978858360206893665454244110087715346527437186408083111800937438491136331361652098396956730562765280723261161455994499469246916261025727335724692261705705420293927438274801886377004943201270916361192973538480721490748240883190584156692705114212537093358228335458516688665272827130924294658123430751513601766783426623095562401189713200482396098681832984125069179183538647666051890716866222853982839750846617391844129515422381911729769722511616820035330433519528174874132077819303230415377783568645321660112001224648503705034984587471054917883951955765176704212821728568992686233212210590262137463106956558171871346782684901895487896292030478663540809561284957602142393069682225229393381184062253477860521946093085807664398476309043917435917812901910080372117293358291280859226239829707948491500900070745460561676301962298918534893436371387767087499810038819153779262416725706261721811913548635677020921009021952614729497542419812386865958380325459891726605367713087682805955795740551980200296038889516324913022601671433516743368777905086744972351976278670639613746979022440973253766282797910632830100604559901615119261475124771267857879127202461742955981909257006859824451994370386974475377789694489275335085375479371088181909239527175497470362700297050587510475787123960340519591221648376838501618600082328102940166531355564716123700743901677401160246601406755047592509004227903307863012093433382399706561634650982233719379572847011674864024237854362468651021910597403755829107032372745537066805965024844345336794941802629632098906540110119592955997068821207592527526843763489429556734891449344047032715604756855622892495672938866811912157748987480894995577340695192327377434354101804431706871761240017719143913284502167325411912792832736776367191632864922047467640032990980884052608149655525431135061121433967215898151083199290147087966001905936975531892021101803332986394472837970573945769230808049632938396888842447554314531804520362344383482649145424460416164136871567061906851279468229738126715575978905322134066813664557001611600554251402203969262822415762685546103659944153947583439888467718100905139680052985346359240786549780437505122525043117299384521857989521004644878929832185072614432170618847418474815830584319274746515548819719265339931002242829454039857405128929021226743820955118431783460268724653444607758956240125517625782498827721487604316047882645512868610555671159154783971641417207078715572318536435193298016832377441718373245520950474215896675462966516816622899879825324889006072688535621716670593316163688448726644514053018413066365072718343994225420998169353749548398771939367734571592526530880879705890147304856918491143945852755606879567123286549892234556234389192807490741650445313942199504126562439379939172900385854711287648597354093875025183420993364632454388907026148671475726149686176156582071428560764888058134549656164536297977541773964602735085636555891915712544188237301929775721563324858445331773690815117367528633289164794188817566030092846502103057178991699601721431290635997200371289816399689306613496767801780748073595056999513805073697060581420810497338530352256513124534850812915699367344245150263682830067421244908817031023431229725969486156280326139995885857684664727980933296801904784112961992156720754151275207060395587827106565578799134084471468777383076176627260996554621223895921719767127005114927435762118233043651001859275367146620331924366282315822134663883857123398795098473166830196076441882531525489221755989567097568147291966185859777074231301348701746366215037452047059598747522233005215270002244003028309961093472625146728611543483084879558459798741490702932804221733456871665544951461843583191105533720483987800214099653868811067455730694798999899668713868296170785396297889570896909945922763299291725757571614352812043578798032114537470293977994844259060569892929889331038579001951975659185968317107988648158947335439656146936719382319673801128018372718605779491246218269750961261536848527699160433246982759107930009143052087488304396333323140818089458434355946400521027115656952223435874221351478525856193323530772713296108358666108255892078287493418620887520703113101898318042406152020650090225350288975946469604623222836725116581528892317891398923396503066315299001612318040610285894474680669522945611144694997351647724891346747025719384628216441205327270562669729664193326524889433757041752478690485111841483208230912255779998396750550792601207758481391389764417642667669357294375419792720105947798992037249559757771351706555194394432328883335156845300191573472687315522874327253064854207117478636579885270788097113187343641322452591104627916209549720552576511940528834734746809114467335656143614663287086752749588802435044726119513417623295628674280985423028131622283701734174289652201193189231152452485717871137418460179018713327822766646187730472245810315440155342014052631028932583585646286809724539394052017654310362731755003793484663238510896618673648179732612248391353067331782815668393826142792497381199918936057170455822265153395825544683438053727019844639825582675415977106820778929024155683945800436646813730219875855883603778554735885566426643113083199854074202344542527224351968132190458430446597430968008394940563852088122033230578947629388701480789419894230461031634426921496841081401678922323150639850496157526185938399821179353089034061996962770889943146298199576404843374847431709709920180569315966494616573631880493590726352483883588882475593927691358142264899660849549836256327545029838512481013400048694706657003500610855332938195322928082403955976531705436328425711738714130166050705504443795006737382143258584548579839425024934309343632715749068803716643611113676932459488706923839822663574645914486290181926641838446242187861696642351950911907390483431824341577048667580555319894585536996490583233564275556415126783410265052339441336487433719557450643761249529431853650285043955388203814842036536529352507036461627701149275343878177658275532351693600274621645621831043453888424626720803350720245625564285624576836669964309060968860536203878911214453125656730389296580746034412011761491783460609042982112718554740398091723526720163815855584778878121074187628662499606445395247522189412707188395460796053770272276794805750719218048181646679426829210100106157932799808701115111175729697778458659621709095705939142978060552224527949215930967898002193186742196683298355088648664230728398821335466122132514444323851413399034220337779902324745204905731686415256073798096485094115709499406408190644124917457792644294704887998221065557345718200904829067950216306034657482594770554740730468307611908546767642378658901642649476589787731176960866119160467125031497040840035560582173976605236442324498370828954541422664235848868471360979909766230226213435792731322914932361303543226392643120356182410243313623261673250827097899796272215036969459840367671057878396778786712794091646709114133960712729665443284965373423335988132381897582511970673019282001546447827594202588250476307798248488780820792506690614135107527345708903317669511670233503792022242570090555515774797388186932625625970370960233075466593376714110219208161456021268354177432474903265316820654512160564749114136395654594198828577584980738683940556336202491885284302380900354329720965536784408443903504008189552620320509634041860311689592742155843175124377932801195248871507480467716733181388756122438113534114255405862811099082694736652566137756425395859465387044764446150712994754641559370098583676875925896042822999926963799759868021218603860586980551881345739601888354239583041502368736618561382966466587490095794540007470586783249840712231443211952688522764377683296858838787364600753419781010918128755650636919713515998269606953231551145591907469071520577079482749004663679922738327147582934008651322276295135156178008858545319920263078304605126239660402878156435937565438878746088954468350181998745479653112530478917801055800978078908609844939938788489608427147952461148331449448755933544260420099388255861411842077642847147886787212543647151906164107182363968423359280842162054489009242622927216996849410066040311641664295841538144808275748121942085698605068182417535216833952172851831928278993796573818945603011468207151973720571761934211572218139009095314635391572398582255843328364529290755811289435820203714886956672106381541796297487522569362884935242680651079874346095937858647075713480853327800145647725197603466156808198683469134980117071041999640689483528395889767496897878563986665909725311107281498545586500071514332088103489168178657830977333093982809115008483846313450145236959451116411738786611064297993851539236422579504391227502468099180445508647947993478359386965053436698318404265463680905701336530504260761460127092856858887964052738564901631591763153634132815441171998824314390402032501594677272547801725025863750760176101044729852940620107200214848960623683496136772794906287846064031344506744442585888087604456420249136924601069347656842249724045865586085454774850132525695772098701847340959124696748628091275241850587807910596266302867458997831113127620928509804297751036187548283789438384792815478242540668283445282318335180608052020755358016989302018160442347431282737562494322431153391033043168748751783167786894155614231690987267729734954094585224656337622335638411319375277535900749830163932739813853796030061149305934152593513618711248376608484940797558014316263435216399524458578624944732315033667814321719073336902915835842746299654879599011894953349135447859530740143716431286645191822725638850613047128195982913362881292913429220006454769336882285081931711904070146994782754065313214504078544684357888118261592395471815494768647719779876004241366723838484478196694892366140107843397143620358671417931507442523120346050252111675230364445966017381461892403787203985962706422438410015937414332804560458094632541868441106544306324546318396344184809960785502802666999320092118129511783594900050199107126072690736892605110818912990806184734672994876822901629090180433256902932701742539749579125989984017186130205233760024637921547069786346638507307079240586216725758307307276991891450680073424918036661557427224609909403947976105070425571085963733017683622904537842722346927234400173341843125127677481912042257598097771522294113079110638446152538202083269361016748186147390014215879901618886650354043411445963066205860665752429062356112798349095875539446019174184760124431956238076838544480776653676680809704157056300622474684968616026377005334065739765850272313013209105264624367608887902682745308876639077439178351690174260755766177190044281909358372462909069116208705331053294985244999908038454533941021853735370728220416082540019173557763487440471847419528021832406495834112255488266421344494758474348793109555780074444018046798078861722265377356631958015157986968416967712166078439069116075927784904904732027033730001519169683519471703180010748672294500078011436640656319505398062715249791676268775235951736659379400611346916085015975035936972335539481601400456591944411285613460897686291695412756740481151798248269897116197729338707241071196566966984568383124607324237060348855726913550626948439902459386249573891062652954299190213242929537043179800598258863166442778685403045796618650668554954026127705689556973135398795802570923223316087327472345376064592651712217127600918101365718393426350965775056291792969783719685805167450761325032226637147778172152577516474388515915760158953302236605441559522589254744979988074758116818528048291184207107266129749958802825022520903434916687727901450337235000519778795825701581355832342080817600857683917156809601571112384855647132381307814896746982132354956116333063818476110964246700831297423800927849785262285887968123054773773805667340890560814496983803605484762591889032709601128434018859249426499360795669687061655654395209554691966101864637581287845848470594383014538981755639809605701190894966141553234113370306402654056392464660420438299348594793362353971765405690390057787249779353349779279961118960352796233896735670637541037378361492722271249228399705623790726028242166098108596029213038448139158416565636020851261295758025970536910007716975225575977956609372050351776275459350102654234072060486455304482563311485695552702522069334454037579090676330130688048355828494623157486254381366031348552883413016951781274480606517178911949461138431170261299933907498422321686777069673769745523491332291230790285024732502504996268550151227331643990192554160975574327790369675133254677686227161965940478078551290574320217726030142524128159691501231614430996844448515768613546006440149352026445065386973870650691790975296588521451281073561458311216059163426096386152638629972824888174723899653980072838188141819665977457180301021072492624386304990118538904630130716234573119579680386119019260211944404190517032495781920547057288350666556468565900297928794048240419700865766273532421307845500613449154149464112853226840790588827550877911851888314944858983566433912888546670769267251754442059237339822877046580337304740513675573957932984596849942287040131329539540412423542023152482126357159896658306259721664003027207520488333158135177888441979118808626071322166304888132688509891958256056395633692184720252781164207107713157362317075191623393213127548246704233111511146531485207108443657824776293830656192061845185790097071513736759609400047890553186495249891351884172627271642954278479983019865410698575970239786103688550510012085661392337360042014250062832320886991731407723060631763349924511270202624350301479088388928641308928034926424977352879748818267254673221007529694836613032608185462090582628681866783569317597598460803061378532017506689779280210571971696327547479124104418747900483905446444056601527303456388654373306471610185677172704926870315964795233933863663066545808288112935199162642090188843552472530900582994185463401406060662514322734456697902263489528165554975448472554026974243389306853788695127227097826889237157968502171199221187160901496775554848496532083619877063944586148353056292231624706645110373093117255590187864508181080481841488098260741246879416865417319877236543488638419144704546235809983611408100367217722514350538346842846945170434857262577338571659576424164734285609019814213857579374797094348155950554972332330536836573166271401132465052079429841987658708016309933164809797457802567298077692404448337107482847444519136397435266727244154264105416985238240398800491038352961838180577365725296108161103001794838077924544672142638982837976496189280826718558226799348410333289304401857063947289384665540180882374690769232122672925116946090441351817527855288725161516115289084488644930248601228128001431705614362294400837532433441146457432515275415207201816201548162480670181039733974229176718260880340542577847327483026374626268561999830940816338027860695520977007913835960290761563225004133245269103692391192061461107520273940728419297193290742955985389649106368724515163136575510437025635640008368146398739990401186383337160954410758452069617434410901500697312647107907672035047620944650034852362574382861406747141090056549440833729407133982292348475881132495544473268689920142311757966057990798797735240792343893838318833851599287390450076595686671804405908570816199209610411208014956051681218009894081247931079680309762375580136359921774050160755918993712017788850787703070626497589892412549018285178368582523914512919653402940406114330276492648788120607475080800366876881594820253796837117557992051169327053086529816494149925836051797028182792814151607251475217929292801420904009983528278147488593481151454012344791185508005217193633376951216647655199970899193476454531184250188349753274462663083306905451293472853246163125044358759096147828979003936301993023886103200504124379253996421623147569786534396540538010828316318180569658723566513488164578221315985178151232503379209699355615305621719843719188936378147486324912313705611811018211497923045350830318964944553276301450205069681049465613635958633951747849086902762110045236642419381471642073723671514550589158645175934544574039505823911848394086230169313504908087622565683750962383707772951970832916371286013827827824094170557306013452919359481030128035762389583916617881071637089536295935347297235857534231145939056391423434329260674910467138768303177802155564740377909962498922486345590929936044317622643025667722494244610745930978681082732542602089406965762926470217975062290321649706973476963374552817048352056543548479800818732672553300164285670080844986315884202183577977652650041332060643094141743250395465584477027171323099898166633323549404361270852891435199897339973173381928734216153173081095265408979021072137869881016169659007916075657522572384994637250592006922633015277983593598491148891534715414519714231119156585949223227502443161968238456972685753229859729875206063661606777252402958174851341771149099020035653017304785214788615390287266790513974792043460064675594133439174228469266437461719223744106412285636176802749144097820102665775962642277462351361257707893031768648358705156890914276195578140116689549997370303963209184874093795949901902089770243341880105936533730665185730034406890150031799863079512415180159727280476235227791539403034850759428227736006640476838591198413176844547056442723133243859598117797975200010588028960947691004204010920737748883867032001061000237729570729428339314853432681806119193674209538768163285248025205424848735889673493345351921160022597609322628311862159143298642549456624500937916984977495757894176803398315305528633355524058821739180855179187551357238773429917923914287954623216290151678490629983734456859084706617979321477832202991712187486241702388550994456120021871693838071475280774872093357981230645997615385836538445248938103871324325560726993281093853331855710049705655445099856021056171370596105961407731473361714226859083771734847597001829681787253025999972715529624584423440211967626110790732495578412291213374777683711960834735176011286894888519264426489841501090406782316235348020664084069465093479548272626026702463977360308618126783873368628763842613026930923323066673793061859715627129161425338213420754409733534548252556472746564156030413450843669880368156365373862884563439881075815392604581666048861077328107253520400248516278625343564880826922848278242196073670342531535803461235806129445341709731355108969665863356098251614860716380443178675975462880242856470044433906970306899995244797791839600151444951772871126628328935380151437424996898841342079859150140789608535044854824312892552212142596240875876331059242955258845575461930916209611653625297715669628943165467186590703852645404597309127729605354433979846800438361112195128109521209827365832697162555697357722078745564451624935223811729207306770161400535850076385555094612675611555666767595990413033006607457266117146758021902112127086572901741081810550925462341735697924668297779194802586722892707496138912216380173679359544137388832899652631365987149340866793755411306240477762038340825874943183136699440658825457939405899194995237643644163931189203995564920727237752339040140479660317872029510406407767585248480167039845420873959175664612190409723052421733839138269395838476075157834653197542837791432194564614317010270634273141832081755522771175070772046300640448212384942279962993239324402223939461548194485521625261186082965577044161203888367457157177936753362876255621860303043122672738041606479348627093543611511246358972399076141703159495893960961584316295871025778507444010594109673185921538799664504769664548926792890432549459640395955960534490287370452457298777565676775112530654880886067216149516757014665212976301756679584428041803181829867443677159182117236256003687421933846450342259224587262055485271970766213338049769857943242080288962140708670376331500976319352947492813203871993678909342533021034846599846677571675487035904144300618865260587692003568833958909224936993134033699910768629074708403905748176275367785367788821767822550702629987575260485743638643766180761699924248424569206055764911856170448406300648873987613809793624338396527263552184205079621700342099339319184964728575770266289289181904183964653108288440320763275761701722337936194935707893315187382872397403643144431924270192584541068298529340058728438754678531069410044462350975924183894926756050707722501869828822024640324980251776716514122339378247573121541499827097001083061543126236169676974606387838646067487523204822104253167678596635308079529984653460264506249517966468432042490680695900026167917714663516369392424882307655935629689186613740300906190542334271824498101711227037539797219840221786535839617941926970083130328054006549637310104340914414883035815151820173534325166096443862913745627477711897060951771816861124155432153581537025619311735649086898934070419763925680379866068739980732904555256951835748471615464845928733957614442196899763793632245230639004481723277060630949058281720508920090293699482380122515607625693067752890336614634439418513991811989800100244466473831272691304196884658103082163685310063228952798659973923174099065559916469927118882124769362873079476936077214288205152094261323139870947056505106420655252098467937651509509413729533181980328737334749830201193420250902453511768155560635374397080227913900806508066430262776285499062315430690206260152274311076974370247963105176641281571315264387316968030138698181847529762623476623913405991056167011680640885351842954714424910195350159387387381126318093372564286711648037851386770198170508571157069717517012924987287296463382827119797864995520784198873180915060615816397460489809326827720275710193486842928911249597193293046878315679232663037683860558978487491280764076803051606676238862497156179095748836616255135969741724385453356695006467446526820743696731202760990292474428017958001458758139432018514183452427017030990010441500175947599503834091660029426914046383198208732594359942417045773843451624735053857096063460984050490395576377445346030385150025866439880028177847222465830633041854328648139183173644236780448296652929048339379727231453025125916106180600290305087266453103583058037987904718757793339384020412279282420700587528363695142252256479175964094737178853874062090826909717674220868385776036412628111090250598310347293089790034939135346540564281238950468047693205911509526006373356261068958742261919621578869852536525553681928581902522105889642119443096657140649269884155400431987028225350653401967409439062111700679945649895666400530885997769097004975814123363659490916046148934891786715685704300730129266185115531097382339376533631428653057764026499982250533205341230230922498880454876769020487895594781263805238381635412010638690473401466930409068630268760618812143571339674484357024319981551902380760166370891366157102573967168090618550170720430262896831498501839604521146413442372990130414692157466460608039384613402672461925409769425932079541018394491903444319894332940694106747686013540533430173890374935658159987220030453768533100161404242701502892240820548035144995544315717509009129893464599618413890766344355073723288580175281712395371212265852984242626780678153918743026138356499943191312491609177531973148320027893270971564624468307267177750397553075402148060202404397055321979776356638248272931820796818675786026095952453710131425905468261536669571948387656686686909279366711763398733286110592592678405689847817132074070842362996199774598817373079348124608771656364701472440432563432259502973041097477566611239775834103143138083873589946731335327864050273696547936277549454109304203477729164050506735625960345336245304472208513589051267790027386990879072602614776707610895123826192501377938557848431759792970539752742090818788561172266159199419823643198955004581425769193512230845036150982544392533939286738589260374611921610230704253685778825844004615631980167674395816486614003353153022306855853365103681889443221679453065498979803332848997102536810920717373963718606593197819806981297236064050950429277815179287500052853685032442106189348513524671092396328751949425599379279797941026603632411670758781726183919374461580130874554466804597200431423608040299212228200849347036387606971078631450444925587412154355008084641531511513711644733115706745527589471753949398282389850702980390948163886541182633516089361631095093319076870472664115608778843595131578973774787119669782497805828346266061324964893081218581519718175327201301819702868298299772655287782477054328416350333880599852037649808609269412659745944135920397593012655584473493073950332107955806655411571110919772400462946126661739991601412277459817195166719497172714444947850254931878375786558714546205559571911083903643512325648861557990297393812298750741189309569138863501409288701826013707494512815891858246241056402516412645658707002658939749247522759667354328293201727801886567191461570200215647347406861711690913052110567549854546379999102768443510023411317940693824643391756259268047924710223729423936394798630465486982273782858449198427862882823285838344231671613904318289429469395617537697752904899210863410252648341396391089977413501165889148421252104071087113587825472595538616874707835999811223228471531654384026769412038783048384564573037430418419577042425528701923139033208983172069045389788076290561785743729336508447785086357988409126462355306964228945690571226092315587764208020357930043257748307351966363201475177417033487581552584793182331847017716396662727906401868686000689443589992959490297304472665480606452920220928857110038752353883454626661007515160395410646496209610373058656734230552713698646069266893671728536973329988900212347757263276252146404908811537953013025641982589553446270980269322581326171403411482084272951881872784122110684976564235706749217545611247757915820354501564766973341038125750260500957813345077042160781427823930698090227390833625718298646837261104330926730890469266525902870526333885485879257395191231862288656299976335303001560525252516120319997138232699925384078316603262953623438854940138638187964000499512716724328475454917967583123682857265005319098590859896523240050659947663163937485898332351435998676935013337209454318985565889448640257030129241204452851941338761144344090191831879431737068115161982646703547750677166481732703903121986020634148701135454524519776246106442020074297424804767248352547301050252013833981889939927565591706108362213623856353264634730766234689216504589485702144345803740131335553359307389830660175724738885380401519606335445133334003192930392586735429848690281136958110389803384851559329465470446158201444506098491225874490053191378566500987803767345325613066541362273046672800519166884708500996628658966789769974145816038637545506834523487234039500216039010397008274060239137265560734976880326188055241117956943577498424939541968565978594022782344373268761736610966264505529748356802744612149830623857198493825376800641000530136639995500487231977443882858861824020536600210974328309151613101253713975439858010739859377242383104267668140435590905441410884964197185332045920626604946237587496573414992258856288395035041675181016419493563815278188152608957649963503662111810259468066795724414728645770313312388768161216490731262397919455392992245916913739642956205143289349117946301604363058222229319694961401389383494855505587233405747985079808853268386931310729976368052715721859001903419953381753418048489729944884200604873532416977205365469631135458965737486125252695041921534201917518532867782489070539939705391415078599193883809867234728685604685960065875505931161094471802643517486052786139069008237501996224869498191912057792484699118661542043146662875903106602910634518338777728833676463490225803114617195452219914018731418052318311389204105193279952747442201602797034393389586114280267492872066522318593520216081701864258883080039267076013037338525030645202689870774523079401259099323483935782763247726141546120619840088258115065198014495979844128495569346261646524724885335840915772344755597024519813542641182765246901749362892402168333919014319621707385756788440423991049577019418840623760756699045550769450683847339559996584544916915752181443570843738403275052817389415225969786165888936311882340053012624124310213242344049273966583203169554838710111596077365458288321053146438652969843127690451254990705748462469894041175715543816167095694024827369365870495609628270099932641850624468332106641178034095582369207613799852544525678055573107036424432708683097161490484557402372631469345904567359031732640676655935443612313430215348767658615111973355687539645964769749117561482012216311677608557681116609595572233355784219090300819537261936592988240186866660739559856698205658144375653635876542795786236511797884303059487683140729805346718692670884584547785099022982590783333172774994564995048607247748800401862216345285159003962929074815503499459546325144053800070544427622286485618810317423412912809620186319100734327342127506951261914434808808817801404345282875815806776463628451072882279204304056574619041009463635241560847947375511740313089665009786920556312705546348140420862966401975053446550866960890073860702152217794353954666768658928695840771546105653892444800602619410342757815404718126434223073608533359401138689141150203552860005335243695851056871499338274158676163979077592166422291673888353018325825820023764503237117378846837992403620579232139239378979678600954785203836889139572416818915211143809142831879312460707932078394039470483854509635137790263658221320281704475002355056785756283192133689344201183010362389982879936724155660805533264244312004159169138186760666372523419142384472964326413829006035013964652626616259775066898075992853530687287926881501744962655760839684579387842039334406706586741802726672369375465090984416140770458769163661507531814935995636175227177018524553312889480386331136001970431335034803304331863869878943550496968195650207644934093572584118964219045689058139779355350897504328200441924279015794191704705687587049030095616909960321503305347650140050515005926636169223821166640025095884808669700570346206344707450259431014629189679761992244164932307845772176335482585758381147113661363910975023240452835344660951055431873639460655899990259378838200243535969647521731407302378117700813716825794534840078091906846140077726601884630122149963699154305700720582356182669219813752417379094501554551346448617858531519423942744192221128106742409758426685836396148614470710491479331407730867015567302410527038208501746481010508124843233448149574405588464699542340049277841510419793565094176272892743030582225486386426847870921921972008915096887614812264875406151643643144233918848403452131732352811245977923057673051433657965742236856723062225101498498008380126510603386379524035633778268128814573643641559614543421341496018589762663269862420526981161396118538950907946522107973557115316302601258660246723521086988766129527220848824159944028240089372648941939169072823544653765268145462212127171108712489736288321235373287353803971792811244633125058318399103796830385998774397277895531976402814894895804791382619882605239963587035662146414620299576462713580442127177469789488793621829616224112981063716920840152443330025033620040761123665579206405409422655511069601076892145418551988759213786174107783800367170087770175620632993178598926242761266218877901826883332869610105284726192431520885591082922402773354168128948252989779243400084381184324491698438677922826953989804239486107018219084070022942657462972180815073368749422989363879565815907944159789860770884974846933984715720526566418530994264384869271323853891514861723571808828090047607989070822668362110108218440419994715174251778805554416620326662083931299340243979828511534923689177428849589086797267495252126933840042461266029917920890560199277557900689790356528839584535113448277203558724837230985575274928220607577429242721264082767243071637038300487542375598469259027963986967152590636268062398066498112463093615122880957075111746957934426603274102634024264624827464223855753583554899655667508991314444650011145055129690307381777140087078390537353332049314817545072699005888821138328335831953469985294689160687507501362978743821668109875204300746563917050467108797228154608762841714159664391069250579930798267744481001716385580048363535951345111983884173547847303875505197915658416308193233893279085948645683113152203104084644247737971252777203691599608466143585072089875714602138574083674152661242313442738589084608145938948119567082054952531016777776586183860245888069673498766407553052457882765674405046438484653505359097382923180351297774294855540350668543445175176736100757630222803763625443817007323448949566554422213398073944182145483602556680978115246691961899127726566156775819052308685305614629994997884870470479164883010584824967785011571349065836293136645068543045382373884510129761061732492619298840054301161295419940139066618724656305892178547129947644655639094078285029296716887225451474635840263709045826545141358228729860215022788731879663748194945380810047023232527042289142420860504513772410027816478591401256542315454841024805214437623161265542984981423989883833509203752056064144635791309218646739672022129172027749319665936749675495241630181660474749702704002919247854894949238326209511128456007802863529565768851677471764900549295689708288707241133534528763665434766273219809051208944991352460789295164608961659665432928744172382375445892268225531609618902976144917599274936998423809468533398762821734474025675478034862828046415965746155218625994378404198025446285000016951720845879415040164176371194873587555097156294339298032632126391020214424992583274535974772094447767120640994598214370754715409335412339419954143447649980773894218908403055744181720646078027916947244545623484710770606335503548821082816039041757272787765942698664140222476134043103658078876830421428664723958438752083365633258083471958579061029055350339564443171193480390260653742435895191936701285784133600537517317003636105455389447083206144286115360771932760841382768210885069312177868081890123002997381575367278813353920633454215538148366866383903112784178794081200489115843358776768690571578926602501867991998681571030666386926324956422213869297179086043209007602974647029697805406808268861888042134909082233324311381010357516776552804843518561279445889789315908740445928027096889587230503224928528440185795261056444133916474029260877341675842821143349927189385133816348100671220459461292296598714909769738484796245372089562589066284279366388970108730469018022972058610405168360961312185227278970954125822758199262549330649596532565884256345557404565810101582229885429704338142560412441074016220750329038074481552619107211632066396738383085783390445325830281073560219941061959535678626517026171789447050845778692674360711574012067660667715100038375921283422492506817432428193647123863648965939609671762439001548462926893472512036935801141531131082591985120339817890037707836025528251796658324751920893648999790338051550660859090333130277642957655915290714149359135176422782055599296855094059402184802945869243569894281423700915673520139573460838004582138603783688427878810726107546073287572168227428868210613819889637380545802657476044962886223587978621493094391753157541324111486480074256530085260557263383694909273255688420295173172014490499545775605673432393034982530259888180158765057874791898595880995984158061836803771787776681413269734751121313705769827808579107462771866034610134725167779585135428870439087432510494610487017625325883265090534795297578790164183784785857323442319687466991882937913172188125482474473137826379084869749245939983786611672356712469372958246267827022282068839787325731814099654182529574233675283592274157216364078512831268444939489083780643170002718210682333899720779202636090420581931671811381820145730591678211797286505838546573427955513694127267489750209743770637461715200239636991338254971380592260934644167565281690567708568850973705792689160257415718501197258657725378843121275025775664326577679873923281565234194513354460799673998216647908095050278411586982419696409062140860382634073692151697867544607603365434564184189327543584228034573397831504423136625966531522046932907233097789904282160667250180444204180655342223465827678703765813800525942532368565791477201218517323462460467200908706016111878455677057769670063600375999854181352669942696878307590345315191393938713227188975538742773321411809728368441071863360650918652627039488269301343827080587781071219313089661719656497414785547326274674410982063516332253357048202058222667001667836263922855263887055252696817575878215299937687605798799787279373705311866986911298566050809912810196834713085420337806931137357053865849779963109830594130234097175976004443786318941260771281692359992587976467801378622234092291900311772711868164517052164099447765590576675848901083117630145762797474347131883045175743900254252543710743888845371075595757690190013843680474880367839725836553964733566780827480399366557691976823856502787199939352719549046259664984007361141033220778561218931929779967567905053665531014171279662797319745602138401904576627640040483164212520266505802848781723780266700644462526751255071884730766457490011914927330094269409391830915536254297773455463598016542640164085794642660376695696332662484748608777250550927401814564122477415371056988714529694970950295570074780348510243889041358532742230837915990192335817790960095440115394302081649366590961126819601543464176464272072282913969410439815672138447946653727663599718101196484827025859609301602882445743912691279342235334140158849077973704122181681919181490122702543116160501391147288055834642269851064118868482754547740602806490792971279180221016927196001449443511933325620000662857684293573906429178315309794878795338297611653995064683175696668158634451843118867333915238871088643301592049758984025527172531459574693748477615627781844245282050204880124579480820911919421721098048926389591944418887949962660884574849804065222567768560185876142230285399198763827217007649118288724557058288502971271027607323217185267708312623616783702622497119498482616042674423911038381215292916807351146931016995164969825058704762960376738891695850595947972204706608726989734440731003327325832182507112706569373227679468695062303791804553072201786134256692682501503815164490651974467848515398018756070828636245210055097664133782254558434353866045479998477623096425922641381169928404323991951634293770845301006952611795006575393154397313038835388038062433717785403972316196476191968648755649587899236951170348965028994484936445231527262500276940101376160620509781904376008417294005886480858716974951006363883997897970331433053482638811096545674314601233930280779653103108769496688211256067195905354909535833078896862922850730000522947264508800117957169889607877625446890352920062965175548676138003607498892047623020715050198453352476328232224867080534915886672214405169413339167202099495325076177307688871123518380462279739048801718671965034612580716658438113923394387587075218579638247873123107134769856500215257324092780449938403130717439932953963868000608179121571634944390581157637751132890749003770513226575129442494641816683401426034000680797256733728723556675733771771354711719091136551483445337038436681943802896823046031388222092471525806706406608783788911307682221958836112531944876896708458541938945007200149640534044477214451947235334322021188818921104429932237515483316130481683725150162880263752829337543742584034780711890812374104135892943101400327543603142201194374000625902868953256743764161072140368793987688594964511479925465006166743583979587835392089867658808366158595437026837977031376797897327017968330076835656117208170290899985946872773181758140363456495031294269752130238576983407402825768134417189407326837181033339241992796703596980925792988870114474553476791776042374428087738529573604559381553261750704252896853837752091936352780218018760029374528166449524974904765300145618553625803205510475945482844201296945061044172209754127454608753169028190894871708266261287889701330546145680309000317601920755575709220285763475349223669746396192124534736161121725286272233734555908210481252179154036787996319390481880090243109049488323539068290324946723466496583227325167079187371476180363968559616730561995001061050665653770704029564640495080444470741798422264365153034915504682734732412393373040640348445886555543836223809978084340636622541516579257318877745426977998104233751015113902413414437903060729390432961159833677146389303722987767209490090288238916981697762744992993633851924672660147397845246914054144663715951841763992696779478992004158238900372235473991348030723416838968679611076337381889430418688013346649967418186115796068223023115464921682965642021671237631518776356945586550519337225484230309412321644454617908918314781010636719064260725974629902158681295165893378260431716166349984450268062997067273237476038570543064100533319883355171503610852166323138184862861352176272426258212596284235029116983163516065529997914119009453644405529619600256101061796843622505965351423624219493227024410030906605530160026157556226029804595664257406943562157043729993555439004327334418017129754947792988531850965763433928910420080343813874846459898188027100934049493556774546376957678164581152843996548794181883210431736543593818814174339906758635747175147419772074860315389850393982081224441591398316972349028223400658969669426124463538242501869366896354815516182687102471378890959686452785562209306435818137911391308816933143972543898278551216023159272457718966327212548366315888785571424428447029831080370420012484581929074101652164789805243595551443251933034201658585140551736777655616052827132859855113367500403731434361461984749243537485464292383198912118267722584818390843959532466861010349326696622995818825095368717325288817298644677912355093823067786121231927703351587004601818593631909362231020015517879163637855117694212658091756897226743338410786345148103468766129592268699467539469288935541278810181220427928054932425831255710910047883076423650614252208482055039989428599414303473539078322044897147069016640228696623502237500994417967868061287338340992341225286035077855967450064567621337264446967729283904558197112309470250865040028202360064634091085488356583543810462813588523679811185929208622279433571241501074915136481100153607040480309426726735619646976516340994622473394287148473129379279464229654329256260910299679821954386393576969257061053478377897313770756769361494529669704409395302643143398448196305081656505488641985194164713654980194308487957737207857309243383253676567223650766011078647226459400905884637855639275691813833381312770444374391659027817443917096729811737114208718503192022299627706777119753032169410850821548768387726278970124104341068589846635825810565942706201786599049337076008911603557790349689399975392332807200357157295422984183983982398898408619859888400783601470673295819444930392850806505666419031935496125026442782985901212131007813813850518061767886399343935758646716413449165666528405162596202692235817769035662355306557101669290981757657943100342399855752736410114126994454488947240513247247518524316566435442333499232566751418221128598205775809417694266844255433662769955653479380441453374155098415144375842524539484865809381267643328957069457839984514892290055259551952854378328587578990474716489660318117907147176000619836340441594573953530012400859561790973967654242425252476497535798848242795709357399885881188675367504510169567093952421988272816269428952402941041224564742460802264686221753280777752627522525513426368050856879987956085881780739858889304052886106948115616747282784727920512612231194723942195057138035770313889032740456069281930858129079023345769014548760839447220521191139715833449553646919618317855431094055302830744509875150770400500919904630837547972471647929966748764944161759666017352767913221998269326273322239588888726405428031269724454320069002813667390637522938153607127551548091639600526650402982721332228348458322110630994303182308639603321023394519206783042630757909929784840831338076624683012792453916056858792371448111394800745908289827117029509574000522901118301022207692184558521603954594003874933670896027914832291854201632034741747125516762060559871108724118682018420827339616332503753032901074333713074380749539766934477718914566133644352699756046111760180646428625207391684503225459614379470203915061329132524462166816139299889640826752072714244007140535601688688217730338403902453738491828014830472050489435182237115151015123819162147087256897814860854016968241083379054089454885953626732566871670289739664024209888708352124308907074702406629833195537352841732243351231285452509601885841331505408664118018831075222226571798096479639530011267634424902139365447915413791546802650312294060144771835852563518323629225370579632622502722783510569111828481568700871907194522330280825986382224943763145681352415067577736274450717985806510698848646916126154797755609687857689533215062531413122067539520477598472732081538562903575306277379581008392502316926111607316475631857946628416565576194602928155881594225868017579394573924425377048153892487177424032564035680005706807197211085608786100257414818565855155634927060310732037550898908929969082693588208733427006481928687686287265026661716561544533657975202673176444855520345409286444293941961497862597066121256443265929159791346301902537049586544426679371722964653499742022997944107513853347738987406396064423503915799024542113087736317026112258013093445733792130326377374534100999716852756456564192060963714342439811793605034355593444742475413067462783052499761572724531229253617352141149969971136126119880518436631813355013605926588096202305859206157171233230074518015145942045974469315595541869448126444601736122450296930519751119957910006579784612975582712181179332371041424963383270088561680943537763752695616752743010930377575903516922660973811792136916956464589006964169168943317569606752363683515827808048484579813407350962042619164679025874517332791976155527147058379144936078445463081814876924760861034541719609444319100394818948420069928539460651209498533581521702863279361013880516750073744174525762603849090132085287807297259192851063704883238381211242362335801609717374401606466766423968308863125307925228052447114135221812760793654546991986187344258772874009177514087549958146761086438649349584795267976200219314943091759621733017888796207347283850911514562328897781509307027353275944186485366224870469050717126618561661242070518516241285189092657917964322672445451618101314785696657059012655067795946594750619534285803096089304692142992664336710756732555421338620145410423717011438284985584498899030578768551615110522933851914598145565774727422081369232336262405000712964079217741112790994236848008176053389995762457455774048003317658784976770951108004039044194214338419430331608171942613945095054381115979471758358749769922603188240434023117075487552525209730741713806937408480732015462344366757600790050423509896581127332946713605908966350509488363612020040968437049579412582455099549085013978755076510672271803931778414152877573133014517010497875738824247242722003225847112182632768012708802512641257784088060943515103302070797583800992764759313930181499931636022824242453398518905291734482887625707374556742141017455142621367769207548554153209930564727017701698480303211492035487448570263969520871725127381945617976804118749792130469669385393896369773827897163360558538985434341212316015000281439080401337478104938007439204741648612791546279941393117779438711623980706291830240916011989298392452656903960423870184653668432962392022901041015560465535629932133345674061866639249972313447516006124860075856859303391573908706366436066253403724564998566591662035939120297033571685560188426934883192603922372368168083797065995933853557856556444952368662751012707360500252225964979338905573466277722016545366951981927868217561070464632931027217234812126092590293282682057056918915878746222247126584197576140590633427719574689398176767493124319848373166392076677555451291927624633841141058112646335365426007753304399256652145950510279939700088413074741341904302041445808454446360212833827842989178283388887219461587802055258227538794197655952021602524643893512742004460883813236100221375927897494134994455698302229319164566031609659853656177654010926701644695943299722401694017837282240948492813456509280702988266613963646335093697775275578535064117180081684719266002195735604329522162890667491676362819117769954447201936435340841902532815558510816184368274977686280213232847367137965740478970177041200157582397449513555302756509164550886030021985654057746102135156376480703599525137968653963311483716878176662889975624936778954739838515408306737075442874789607818372129399150932983002147799167915029931581044034128455720734784484674487004357124827638550914326624220485936238113622123650002257100500260181086919016211877451361694346191716857316767314847650702105288347023247790328365133079943395120026768609495339627024902685446039753377609983931057472287947508290243480321633350401030916421454135629546727746493958402925015102440331002547244879880889021425459307755034511084623796959450952319203237213396692794971498599458257826864103690213276293181390340637054067304145396848814290199890017883471689018461396433291017372486704391742586705266122628278671760125965309674821177215630948371204064362512617574342344202373528331893924700811235713952855758622456969009456617658629483421780190939735981578353726273302686181950319101759065006708884758604280248408497083187407849658313345819560331213304440037298450378437503952586622681027592378122686166955829298762765700782713598682862826266398757365995750035877496496975697433462548816118625613323352840495233244428881095276429139840498749334035842831165193059067416363410879983175554469991084474133255302536189390243450385490286278899527270847762770569571061187762736993001805547551330174415243079043645667639821548170084566811423514266631974883785699890853580180208763852541769307036473445934094486775949386279136878083973324475146112913208627849028593086804208718580489014350693048063684361016911096608937882315390625063297529126466071520801661825952096645422772115449175047080294023777522190258377729671046274034470047097966996919054569225299612167088770404064457271051590956750589522691283377856257142579684414584577928463794795601557219524136998352674099192019851589375525983173972690888666408734533138537274333318010982129573861570374441536682637341462881835951568133922850753864790917650305057126444151786140096012571961433490295069232309592398491800963875987166103582874951872868115840698023089207330337405074503821304056193610804003670479229207161683924921352858346793407809285707330882570576734183191381006273996195110140124213194217979621881468350959929756498025255393155637261658424183908929914504071160727262259606165775920172525171203245693242657523500714984100593460785433166211998101154048904133432449105525461552142569789700798441084234065145821839468195501393429843728383549009195842467531158164570399927763229766863589181690721520363797513776823399411900544479476680708748595139133083724596034415657345701360838009916811746235475345969553662641595126098533470309092936441186530703059416167362155058435209164351199112739253309783404319327269604561465659237928935959724958330036786037068629079288337742494469387504634500938945851157914967953811238376108554740810869706120467584276517830089379169794202308092416709372888530314346013885628041055508346751627124800450821610103242129039939057174840982829981296327012206757236721949094634035432187729617941357658556157812351154098023624571687620471570495256537463589369346931472019791845981063160600280888119179438038507314944897883498172484624098788476337627542134503457149645870321484654650520111542706582623154943801494615349660714605765236049689259155454314491133593890078073863065416453543484176590571308007669824257838993614823104471564648748753604029268528891595701541929766045287696998210839549409650224805908101164572219266509385290473445269815733921649032313759855356368502044448363785296484907022667085851608110703672250993572229362565232915279558475853877940254331333219759034400157146534727899333060424053151754329304146570784278347309593751877439748502928510235565016041946809036872340321062241278058022042464035546847965836046713629366655172784139517136482216541762847638720295430144461222317057814867593688623210920235775961886380626257246984687434139329859519580377526490587272615124902750391191873224213627003442589125346506071772444963143830983128839697627624478474625856817703355120494752432116978463303625806787303823540380471594027174253374922431670400772675846116429131319519468139077585294732600228973030749593197842936880851770786849491794127327681415797868187546898966900128936959596402618434495798376866385653688325522075316675924958540177190755030975244199025210266962125727694386923216953201470297622306449541929719168803053977187416598436652115351489389834631744219108904026396901547169241020272468973352451374515437977012495620083882074493051209664253573552207382806736291253055436011285945725969096806821403646035985437441636881610720848863223918765303781256744059875159067806757222407855443734392183612740339980377815483180921924317555901792351320971969770120244809335630414019007240678195186964502488999091818865937462047643506390866442632192798619875244945858028789891337611965600686045148257472564696209706260016326218978402506383016604630732798742500714817620530355708699945565269496982542414622438672000878601192009580733562627384808576848250729859695074467907773812849268963261759434904545036032210740303547856446397535665502817427751766481551450365826933224823267852370538989321442601320313538452712238885859517825399192296778722514069187920866003471327002829112879222381358809330249116163251893046727421400017755405806900603072588545513453596887380981614421055283179580700801638872674344111974437156172997349490135355836096576588199539354417704447184379681691071890433989167432483179196364131614347491635932916355195840707288664234995517536437059627414918244592568404785080030835499938200734293062090789666448968530118822948667949142117413499081451161226551904731657592345915320365061331917977293613651769372924234987857823570394702560968873487477021993874298048133453730954657009475809713342174835005599905123992736716694619493945565137354717235461194907565605665533864424546106746445644965046253054963666687378903216164583103771126478172915641114929565723094933128351829497680574215588545142020567707376302711896004544736808096012189396961040855224816233938663216427455264692676451106600770910824987577535838573151744161074850606185620047404188790201814285650279543170753360556332973854234501906264866789035475624105916058852278118456285060145069098123140626714980574688805573770604640281571683213874875386539932998533110139538769751407125269968542216070713775815994780938442944853746073470440631572152473733081060635299261586449081143309744776674911006932803877531448791526235410583315962358080680999413981561740582332801833018879679465185426177358205627642776631869617225665295958519122781693080266253792590923253541521134550475724708143206791151361052073971643558499448337061417428770939735374996499848402704683413190510347244460517871044358018726589468474509120615005719843943219893228712430999095950344119226750197883470516436315320517622090159199710346565830131760955437444571464226121983815406539659439670450182520553767559591945938148859541879288489757162940682684903451323549294085929484350579359282663706359527289532622915867701635778589227342120880685444527129478757755765586301660731062382359163785686859813957917230068350850594549475074679181369265079926831084269473073621836351874026635152544700232658544611854379484881854450149499814024716398539629994457707313848963995064747998340542637273092398683762589331977384165997220873299125312317481998404036944824454575879799976069246829768720979723125776408583881815059138335058493112546499703165717637794636613826908295511592930824404057790557365860974652471385960715358887027866568467822015141196957272084757465805843242662482501649512152806201531424281189345973077992032387098459350643684238982218321343338552139036189161197356111483940806851918286968401050077649072016150221502529138510891219632538979707147766150019097652687738176936794707148649817429324741744510940620832280687395516143930118096100825882218636342282850860284228202224956440532838094477964654650368914395720382603360856619810716923843638625248684140701659843855220479101503733093690770238051141454046541539102006755091445489874918681231302090359623244310180645250047886976943326526432084258621213756595631970536984626575972036918313785515115769898789034108400253240533959283780492455665324772155694097924331008483626764588373754686205938246156820918555298455157709469474151699425399039241141958668325545846975755543283175562585643031907314893823507270895979641772348761377412563320869125500438998188672942227968013716804876558791992746476559819108821649520784455509855578527375771570528578110445523836966529291630851583054804226111767153682997437152632644735984242504258486482936836211054089704295483973295377557643286340577102061873543833821104173199925975679190218111535318183928699564008474801819936318645155175487395523755874795040574406294786019114439951700780765735668450758339151738279615918152650100021223644243603727547278411291859992974231312283089331582335067387318269905284790576338989904890641998906463010151337411085318312264388345104209238467480313044875281499502435217218683872428639831734606581126567822963737422941776333937361928945163223396908582662700874720129114877414745911867449710906568959901520953703793237620694886397456643036033842219424348072581190462548422200859570821657732140944412627202667418080600139490277204805494283316267343183288238848777239448333836473547085936283065101127868755874713687932262788915396733542009172704391081123375378898817686954182548209026484581470634716864487272696804781740243079823927759452184926351919663447832617344247536672702235904326042088069537057247505545547664666772399115040551504278960215804472917071293712372212894522545843181716828554206006767674170100226657942758199561536774478247325899744972417637458841510376237686617372669696458926777127878218250232072179679555772314295357287514056223110590887667090716710073339899004977657641074467274028382287105413096107826434890498168382407320768956757491964975637952406295116764403436457359718110232727655178629420588632852288287101234704621194337969698349309130506112901367231550765689969527260334175429746644104202537815897951712296438980278115319388649962608509844847258874488451897063548770825843058050382350419773841887657523758381384835497775940323216139140820934373707571228474429835035012945971901079156006036125713568755703855602217294601667502525393185975874777611448733643388661891741064707961707844462222717730158889710816992821988629590371654462026844013220166194449461625828559185228051042407932631223021511519809593005187908928532295281786465973487434889353659636092865060906364951846683753562725459066423883438458201600535479381128522366923816777998595918360204876278556163607444691379556465442686406318447945977740717659931984915663370111144464784945786397983739081906795082277417293714135788135055651150121422166624122607830402201333142939036599615197030871070871042830174615305916519975475821447043410016069694261980324661113466083280887290474582196781950808838971570841585898080949483891215288795733122541186224269753432129894204194733288402974639347984058442965310528007643785824202790091436740133043424329860050619779272556065451588961844630163757841368081582817071971500009848902229802873793648360748314134569356859454530973261979936987079870386744123837499215105949578567712022037544593789511798616487405023993736202538445249880745975341166918576742885871413079072863485443492204460532910114317939392631541312726469598756739140902909835788283092772106873759025113724398665160692038756657075420519381848247061975487956919226618025259224149621072536735771251334310105538217583399615857163188831468615163467637966840177964380448567785111371177597396285954746807170141438381414127352083678228762818117228291444954465134229417106274050750399345561156200097079861435096562526197802838660495937784941974539674085030313927255962256786356596152152573862355835584558290429494549341237330154600474763717091111741304601920201944916235777693524234476753866708056665116076057002329613523626076005116058073826986780738413599170080665636636561639242545699190074897571626113652913747341419733527599958269488920546036840221242409176119522416506485737109972240735214722762546032391733571178937444734671115677614580243667416420281837211087609655309771323080529238823289130813067069516913728203156445647788586135624765937917427818755110681116149492793101016564418782196262675032478551482221370979324074709565784239167329763500154079859972533249989435289646163834615969787237186179707038147219861191261303426117992299840483339674856312789554827795279051241267871523166883765849051908907412726310189272753649348716532190661053204900149107244778338749546390717356948946987113641398345924580676924515527058998819329684451188074030691824002180319205534170919392956593789758959801129334500166184002004909486192859371466860300536674210855023319972962451330680810738752136031631661080836617149143280819735736864823418889577396938693916871287895286033940701419943289863521464661508429610075430170241321519557694840165719796189536995895616861067717784503843875451166306683029691935107595408335990291078689545320664446856505087759703467173089965332970872961275506635364836337129418824472441610865876642874703520114239953629750096506379418138938675951770953827119499996228906279000338133712313444259261612127471053439728228319891323377447036762524660035555873234593073190430444230577795985406957229060604030459836431691861310659472627832210604533297980334669364604221592108356248515174476165842516513462337709103502083718850726208688264853274268335960977719848118135442480305155166733791185500319272490948796751605858306175898956233036242293959021422901005444314080791488460056361507530699355326072102672621231301666000186137489332514887730988778236362215860946804520269308467809914807100372461419334597633117720395638531068068657073642768114055510387006049712666231618060849063125328582494547856304792873700050955203305104760546133750600782245995518235133855881072348141845845338466856551465194393175116822392184265506875726352236931092540746061450952136820703429199595251799771685435142532842565858545862613551364801132986669879848846768829305973157622026095262067207091970053755974741857283427183141498108441524253071597718273617061112533730172619238206055407572032676756484449951368455786024089300247766440128924599242503134489273751903673925969364868758912751118448946798544273047058261675964261674931218692448790673610648029905628400155904099943339508037775405941474509496906474604043251077511466393937543719568354926557586775632789107247744584632413391956219463460561809947715383635994712451166179894908619297736584622492567167634809036167847655663268485162802392571986595047308561158883932175685170586433445403946833116262552337818565667561907835734298940598144633690519351884249872551192322086167382275967855508825391182287667464852321236108151564113856310657554690261539677027745179877304417046295422689495535476140392120923187494900719748782250664326792252029698950916896034548030555075272624874048112724717291402831741146416639300619416622161689464482231134181772181207496349245323393766306469930432666648582824915760530607573841986545155788091524445742942610717779463351008031763613978989242492903108829972549862691829306741368827022695700199996018078429079344115908690018353704942516051040954928865712274061381183957277548801301650546824110764306293147735741367464927606798747931499541950967129450721576431361802847294359172516470596548044909937465991242684935724629285594444058368789942467917790544801549002691027754078943707939790444760773040528114762990072422929698189322125282291937787072862255695721910927877431515718499534226536107270978306159259164725773074580160657345889122775273996046247825020700187964162509137039955123449005771630045487805106428389778369346429268195582403425385604528090009512287566751849642364360298126722210548647174415857844804041425135668140426946832715457245223285185437742069414814760314302015194650088070962607309079232451272823188516505591479344618622916030616128193293615145980213122470496917814302088276327852501623580527972335414041444463829807311048548051951763543064072791912515894369556877440127524042182541868290648051982217312086917897245639137945745225400295575912315238565910863210769330886686125262406733083083338181958016264085534518349882725690216014117847004675602448857092561101400511204372339513200426509408636723297098409627110369299998162032752221612461551523656230797632882602804584703895451009915217549470191138185991662412381748764835774041562312229310485871265528403757562020541777555390180406848636358741876568976969120487360291376012520196451381855789610809506436149584797754495428592792372048704404093879233646537594734092188536123217050317118783120459178221074114163492009472093900841318619780935716181298845309617065452137155307624218967233810612651901512561568932720590448140160322242746578930160974892768939595039607622722363037060102060371816327055666657910682967702729435442569824780445490026609961805613652016922651396806824320709379445786499439998548367008542343434250902686556172090642461470800832334407769763115154275294560572001526885510148179617417873553960927266141044978501400602779532725929221128114455732823354969744842744510328766562714214639177762615017800592174483074983068617244766663131756255859952595630581571192475355461770438747369945790697909301378844819627653369946140872243601325156322768906650494382670818306841620915442793136240455819334362783383307046579603765650297964083947800740531634172916023980573344771794478831463739732628394859561601881533407766717313760525440038491399409263555933221596868396490898573606923847549167815007315248634472313820289294210167115479615036929413217020994117223898953085846300919384510180779486553408195532798162255943204514264222188536126500049483882998521872417327493530919484620199412467600572954160141380025537250909337651391241151528487502735643510256478560645450272583765297609976048196058095988547907410650912132092624406961721543698551202835717250679801802805729302320921111632725884507314867774588824012721056812529162976349586875671331693335740360669528663076588668306645211838006877891573713055066043472611108334792910119916163063066122816204752444804679341655539969823103027717290208291523461725962268290091423528876941650000966689934802600790542178611426740202248992499054673159933076465620363872465572760806173583620234268461731962993976071169952270129167090597077797303604631852882999850341758062985376473896720013354982826623588416055029177441730274094761646802959603259033823045522239561976215873631546125702501214202803116469925666369602319935323858906958361212072879810316411018620411154699888208881508445501308660028157062498098941528627700541860900619285803540526470144996862799099044403996657947537145860716963713625272218764516294508735820756363120063046660593998959368329622256221856715445683824267291715727029944856847113855373528315870040302893653927932267379638943400895592876690764160261282671188364803844716795778515698408473355398893312388343918005515448299815188984330334298130116719175433078079670529302128696705318646328810059476606205996598689510192211352331965617556430721337839029921145549965341729548335282588568402066446152785049077957404244511384943826936581909984947625681216919566373821114118944115319519368048525450459029528111195117774293202006104884164956526796394316616520947852333552133615131850125260899053130167926654769915585562338636675279794370365283885316950805432856610832877843201136372076041496656497134772964879549443352943540611376464650780461256670847600099311699207317985365599730628834275582533436023306583380953255135651694771040386603760667517702879191888659515069054168890076173125662195533907268930184824812852926869722765108213713347716286137295198273062933952463495599775496913219090226149218490468486492186780423570005072325324861774165368488628352301703823572450679759978058263654661775067220718695571598379649402633318816334025150879143263855551565827392060417320252020715682301872671453221111964368799643280200159601228897983335349023683369012350480718661866776003758661598662958955362662105190355189155516866822896169762447321956084452330843835109546573162251824271530002430150855592565812433073325981651270815007229914577943881211962691962361711877419912750346774443166105235329276486638024145373665219563860818020449386274326227223807343944816402391743638357420186234047860507795967654138196315108195489877489801142122990046690130255150453204223750609499123549959341973385222038860567048235714945076354149178506328115892947142787276739059742343279782039558048456406246560006619147843710229780536207079714998044954979498121220807694740309173775071494609508857005762731657498045944673743433998835729929201348016731419515083799588138153494601374480003363015065451944390139248122072909709345334234415728686422961489197462642975163472654226992758830173831832886726306762435035971500748633297127139437627757007360007409672221710061784159124080515566919811725377552218792543143716129497313818594474139695598235725542487796090090984840037689564259481582929882460565598275722278077811610646049959523269768305492640817815629912440253386240439599353261524380975876651128711580035342557781247121887542167588925771008077265846116433771565274166816219152934177562948976130903815846413075809026741981887164585027113530185808380713163529064391506333033565314088179353851175827795001058331570807239546138575142792564790876915977328941451075421979353977629769409389418056413082566133835178186163183033779915832705382201789510279845622601564630142287493087960793138485599852012340713484945936153124439054404925282951718569336270761377403236864647112187350170759414196909142023753990577138174182899607528032679395338256366492036584913304319920381157612024824303158290397134365814774090626793673585075464327823987382048368755395482399871488635304458092756000053015082737810228809047488198440942312178498035451200791845100410619580672117319505826133817196793788638417237828512203679154812866852149703164378399530071992188290622488310674896693348491976917545927631391224803707470917961725024568138725574976182504378053588692849784442786628494185913692016253324695837059624203992779328396974031203040877459911692459635169946504991875450432634804851933808198678166199592758928713579781415871451109330893972985294130365182172749687941464847283083245972383664347082479051493539065683239328598172579047397700947481775509648457822233744762108680644581370152692400187211866795397979684887614849855769072636234069380706841929835139389436022253578835378985915451690476075137415479917332660174425874424561075084108642545791473296997580683495148959491230614646470935972065131255085727045933976500585093666262349762700137778512995513340795800479300818053795209495023093607674648299657409761020242209510351294481575304599127739895445896182092820632069415056071406065629363871281367281952614114006150508015707263327609465543370961733456979783534818965445540445921030138818552870138408088326273313471814646409526798521905927849691697971983423555471026365383903105574154645632093067418927194125722081036601334279809045025401217357360590781252061435486058179428948025467301799925577358161760352530122943667284225037097928055527745061122038273441119407696132360492949122606793295911188930952497355861646759770152449886238401062707565843834101995724323556652228527643846336340497258844358719013791639295188880492000407970813140185315741999013117442950647319737098067554277294408587630624424983614327099474460249275149023302014954263173079072567927881027383008807143090730595156624440833339007576161848386301281833528522854047500374112232163358489759422600077984658888194362538819077912918592715769735697854373944720421443940024837886219116345750296259263837722919110094240063328483828505787782869276101980962470528565715715162266269753459564671168467611221940874089771138103330973045600376800640604458658365563445675994636718974948508089598088254209259712054470788464481492359677931387713712147302884467936874378085066312920677373659414395807156060877840024155196540703698925625392750174144332538687741724954619812834201743017248508196876147428691646222138324039172519576289119404720834532563214914916079162299700970254304954310395499293682579361718070828080605621625452746044096522017061618978412576434822863714169681769789435908740371868973755003103257940530294405237069488626633920138198549485177100101454991050629322314052323140267124474589981339554393818382660745144125650133228273880794652296502276114836352289803072271426716930767727502821963779740712763673877157271510349672578229006320872906331090937433269319797202484447818691867564368016402980328996222878981059891999946296357778957547031171882326815081509324221681780422424505405883859424260501957658541267340507018298200678805959850091049303629215742524821418809095174634028122466823514339740108931926115588261422963164746181808801703182681371397503967401134565052244222586727018754194805666736875166535267719270418837117194576623009184744321969580693978715763783472959044379426883291900432484849985956732587362450437143873951865033831808167348211123134091468388470787049053914249239599546451633987016488962593887948327735770888844615599552198204790351823602318622954782129728644857918292296997590080692705291834092730610184251526661338850948800947352859807306653448075021712351769925837742527048104198736455948883244113749007712718234763090066935969963195423837530455652004765529057585513207309907993984942603340408615334284110460267794514880760888111757396572436502400214323289667201841668887213877267535319182503615546219423361703587859479634505159036273373371559525799873079622927578135131727446011503943205344080419788201564584711794544418309762820804355777890038030873124390813696963051795228703109843881740774186732637950188205489722013950789154525094851775413004603178198787229129372589579987148132828516953165676555468778344212387486929429671413408726191447111738252182410208956651374649739375063125209023793797898290550808255710245680328658009561927070045491776393379926335292806791638042053601257772904884288843142514527702466315879767212353541763232127351902846320570964516724337644233644681457939997791632565461051481674813736759010866834088448976568378146446331326513086963221753735470498364603746125808065658462267239395481416194019883981093328683841682521696542190270572136187952747435939253780122080329025331644342568699891878659630243056038590181819230638305004669737173367340996606362024817677441338499229800331162646716242726875895943848470440027045337529536368826979155688289146473868070111268853247999953484567895506417267164602395702571882004146282934604679576685460192489670598065993199434452197509209570806467814180267247622145039725633240376883050219404963010542658599896347542526101040237710805236757258514048309638666863290556678744109352325811002574111627762414377120130728188655689841416062132311659247222980410138678139771578138119653366077134916745732222599382139598106133516012252384018400409079005363427449967616028615653635184894422005870268856880180953690726821947647240620956063512814613843184256808204923034784764985737491997781152941777295513931386836157625985887136470164101031132252109706725472900998031875079900677853347745039892257494036333257101246532962913097702553225671707352489667216324791062658977103220163406034443339960655909458794460297351172796919759657982021144389946351509147716810992130680188790494030240067139019227832637445408631588500396762358849384340871181042229148181323549307283054403100226982069901477179934022349151824913110813632855977614639205327236321534933341846416028509436468518240691670031750819554939748500815406477657057499574699907943529716559378372114195088648982903096390081444256581458218155361654665749838214663159605688842888159939485482414061031385849643162654400134381520872048142272234835971855195259971416996327255562918919381077103980041363547926222321585703741609225135281444086979336288057928961178309777930134045174889133552496536608514107648560597572160140245761712762141155502111115529940118197852414096466997005853843272638523053332244928336228589674533699933773575003493676009649631030743451079974753089626789682679625593892948939793378474202384900951439667586356950601076012315303694015233341338279598660077410444038075514621295246734618953206337140265731761008322686961253837906643480321689234188373427734687952546962286627102048372549842198436443570350396001829378618567866212163632023395887198666854131659548377639026944253304424893122226858659899080364549744279509193765831655107019628752999198900308792181770628214371662068264678751792033507044935226648548228111075677725382571327207960554402083370286684791017961343608993189005315537795398895451152809304670774618356749276582301193132568371647510082069866985474999912562918765700365909912072784319329053328193737497292009973713362908882770621420278548311545760189401478393738355549168737978887439113562882644530038507778015806085272571714716649275590874327214842919954970591490292345718087767480902986070102522840908482454410553559533127492336880589851624733767885222666626457589764014626644399530303742569535658461904965566844016296356788046431156953924821979491632656862965213131735346871951069286207138900481838507248040252534455996034007111486299189739317762283819454800007628417729810437880912046109951970213563886172133147234704645510147820412278754630126845592434749969921826841990338720773098278287762433439808908313771067082903943451471409900581166633029859096866695768250413636964610980350778965886071289535013573891896208924786772820044494721585604360551880401977682336338747327593686371926959675701835838289512282305495129761045004672046050342155438258000481727147363944363497797362334924333472573956500607667932613867137799327182103639157573579124681703632518609904169451032791875585113175023548081707836516901291969986572859835691605997505244813213744145387375089876392576634384683775816834750203093592247232964234236988933035226872750628843695613463174578278943410707924622535791784455348322439003978939200277048822123289849815212597858954826726403104528239871748849663018952732025474313801685812467312968320794354110708438560612905040981132522461032775919348113139538702074000474750751367581775013844261400946659449719278145619942791947765841191700642450058157133119689448690555785177743219843031126674758948335674805665644203478583123251365527284422299269502057363125331936194648411005686066257764693444541987485323556982648276854361379169464224399338727896165226875653152353546802480843168652940395117538779936039184475790774446307497994144269238886184824916248512074206159605545388931683397068849927980630010215621044039775463462677886641250255322471539519557658793735209306921701972128090144177138205560752362409928640620358304138328680610185287303982440743753423805904780479066302681400335052134665547757281066894405668848677425651566056280319614930390515394490789333826920600832724617105464242954615600551306399799761072275228006482735567270013795852497107456268555521808098879093393293516387308945094138407256259440464846157214838641938169265177255925189986631950007990842780427555652184422465157975897558999429678403358669770708233135460283600735306083161724558290954426522632875464170543224713106835160414055295294825131522437544810317918714250231380399799853821653515303128982397844764612441641798538346577745188643371970808193011158532976920762257958829702121836071189381279835803675298055175545610675815454480910288837867880451498229258454157644993909799976689821425753987966293193689277703264916469742755557697683674887162200329572527086065425110703212052120772518810516995802641071686954988816346179067227017650539592371808149772851008328791961607211497402422815746136483134326199345056125329934624086509218453370910272507338901149423905476957283427299487380430919415353763436089709710786784699805554020769166710308593510461860435424373478641793088465238966511091031585505359440901363058009161190595056531070592608804352150435238791824475532101067972566887100736098957079682022466161360043057614982335848982658588847121636814810166054263396301822384536512480770744113879221949916005615510861837749925173785742567216337428801634538582448086516264640005734835445063606829733386068940575948161213230495437404084689802839552525642281134420863665453655236143087034005185607428838455363485360046611148827713938181091778399645119448764968015542964918255117875599983571585121562905871340662656935014082693926440054584598498558825856468871859009339314837254220974734495507676087444374550607927028065705983698935464289381202467097328431941498609462391622418697498980617495133480818349829820514648300359697680165521823732123937160742785699299708602210113639199441621873924090109062815126418705802549542375207844566635053145313465616148372092312607115344894974439679981681249936653899915260902217696819643410618569652108953893317074734653713134450369684490488971370470373484011785158231655105870134807688388339900440444522745403165775498916310412984715346725521728357253949472945396366149590958315467507628532787871987780800426632335666623581546844697112169011867398749401222450774599671800633012942892056176229369033378257296701655828434747427088758509345406742556742351415027235362108807092952774847970309046035092048633571450028627283605159405380172470411705053439188396469578965235817781198096429206704899790338853094992633083188144696813406014122998718967601926291871131363156458629775475059201762764821415388762640591928286732505594372193688808593514145098723530853345809239958512074336215865210509878094631697218291310009021997537988419413940001560927816289211430276044632849121427172284759399354505663765275849505384880593237916328576792629457671030224089043894981504113247655521730449024484560210902720450169823217048540843192017799531154355335726966069790943375764335736038718518724414282454515000528482272065955410733686477287321428097077893440505297334792198265932440701635710462697271312303363223154844880592531424189745232240291786745919607035106273888863115357965004359276882852675075788702491910833665682051976726520349242386547249789396688922722655098093084259101626447357978650660239236233423122720038668818594081324502901809220107939421677435553514261626870470827019547952432188469378195728127791501798413842954588634884397048932853657368985937435842705430438495950651929585716451225874377721567907646904541228086989836803464184814155810888754359201981985647959182020987722613314357013442138735967204178996031453122736811546258383378274399255738163629461480809799842735770906431798782821085281331890095306568855255073703374411043002386724812670897832585704391497461016740506728713006551185473137120443090357984226426151413650262218724827887834379556003400122630888459396966817073429016238891813288787578123008011648686726279139498101943177788415153588516443155664430452483959650779060632645141297774024079438501759328043661573676226228594116473325375457237950998367187547964801061204972293738957017777685171006999296935949632969413147060467696130551746748387378769706595911538413778599349501578821675642586317998851811830740281310694047346640742475579414815802879084364099713209159899864678420266767077058502070771995357942169803436652036726104180318185414921606141362294111553367575889529268686143974646250275831725416482805302377177710736370257095154427365035355724991454186179033746635146232896434059628509599240192151062672191002540057240896970169609423760074234154630462569572938908074866916536690945857535610755573554648676502271364982300737545855072025771832340553392009044130882710844781161159981568702591712787053403035275198133265930933113709168231291404771100859787677009439827636358636591309909969770676655434907508781447031872654109520190633951330319724836590174691418171078723962262673922900535266319069560948785035088800323579765869303500909740803822719710426633463609659119278129901392232842256411975458590451619559701164501359856079719352732945487959375366813054657092687848781246511481167405949550693981909082957765453443487204050811026856579400318803981232418371837627122140817941270704419131546038825869294220757686175999797995380377351870393134574015955987596236170158665863037429898584783318591922052381312402507792697623113380996738425361281926177330356095208946136469459824599954632541088058587362432232615799925481166156736425907512691400500888546842891136561730481063802474377464977976563314523635360783672951736986969372416122856513276847574370235642598445638558331745894289573461984017004269358806408827564839296238226887200517727023783563765312984417054936561072847259536191573155195914000570670299277950752274058106277445108027485777666856840561116892469456813731193832065173770551563148628565335982950728690291464963992952920486486678790995860876775619356321815809348441717612914215114322248911664224443930181393641632737434635386115168681702981777938459232688720256870309207210915546446233052252724623929457443029662512848218106343626047791471161688266241528269557839494887837541073683214494421840639469015548144550086146578604096013285701834736101232325435346112342685181577622553942414101816721474079144042832910257959015638703990408347944380066073358441918587756329832989932905175159932756269771191428229400923876625506588001514534631285752106066911158518477785404838225509263827586937524461000719257286720055416411098190451004259005992238224350890114523886873800658677450539839306734703640092701660691277985230220455789384140000383220359209366083020793835017626379827619408277634851524005024380227502761280850039975456232001841112621549632573672364061533859195787056509016290662831611612626014699447497464673645347840386713381539570655391409506226936309200778297899847903884398333171760423191220164212069538866579856350800549316731527421699248642611029269618550722197639963111502623781604836695039448516939432480280359614777527803885263561067452489446025785783009081619698862382055380805895167160976717635728733450023763268939654250798741866320453643298611862845768869404196517420861410016515298757777380147060890247515913960055380306979057239232792247838660685295477658506150245112727227847019533859201996246371356175344376206851579937567046162888481394899824845180457929807239271771645644397957121487927537946660056378696284649611154066426169182961550041014221372143650885407245869387080891858119612444984959653534166728644952723113595745699553617561242023053266581547252966704119864921665939815732100929419997042686870545445089150162723525943835816328345382214647743669226128710234378821446397167454303711482356010090600383770577822855668178593858155373551573621698191849534506479933383942433879014865157997874563390549485393883364916477416079570354739035396123296309109364438007744686600868092712004246140968228553497665113119701026954193508662485226995871228092458722834554601809472745679583321693515342257685519113568005622059852623523206539709951248383544239401131401302734253507295706334155102673407702688142386479282703548660035292519326801606102199702182515565797638475964608177530913866412305493011709399335045064878791173325008970132017185581078317915812483071605567317417579221933495538580258088451017086877244741352423092193082063290399934938963804595382412412074307325427986378287931960145503588021162850695412868192532203799880901730678892973677391852543655847299233897354330675343601856825267542329414523820985474388796457609667897524148311343580377952204873000641592399816923821100277786022447068068951209222842530815404270439365065735521349487583748969640109242640166673399584883715407236929272424031302227315716720962751379818521635754453249171279142470876955900416789547929024917875754166302875896412806016824058137176849410626674120824762033359936382819490170602806513839163159606196089245001438169133956543154418637308682985147731385536803087941564072020589858602348348739962327604442949753064906294597222444182003271146846086433339860352685290238594404595773006798682345406453591028824472649373155222935470539682767795028172548871597067046983270393126056173749386122199837655031543679742825333403451451177535074466307340750869200279254791650796926366783500381473161381204883639780397806556609657277445226734988552826887129466272829343617208734711395490642436354281753342402557251063343101326722461913866980630060343237712763035040580235244536781602608455927458568709127373632388697428468193101093419648156338174921317127653913783229788832742140948517247484610415658393167200635435174431595542680726071031000365938701275177936708608206927578361398186242987483963603830227312478308312000374175931675257076889151419573340538096655748261706662967463214014064540192856838872915413888574956051814728676023904023280905475195821861936926998363767702319541632286836040447348444487862426116982040895513552720706709017708912787422045494015942828485198980535513321635376171050780397547108964663822586347263153992463134267842719040534085574692593884677911131954688194526161122068733185602846659986592259078198924693658065051733132864537034369838728306932742992133450885586138350030730044347632854514784267741523811303897136754303771930069270480411069501187922241529550760564834087367447857618806284005798487576002535185844504035937073830718499522036321051452948680902941330532284137513528223091183576223316798396864766924387257433169293460411567568433820484971379485281583011268417805500286271630503794966140426402394566570497304758996567008799400461388961055056655061097855990080601789855905358033272107949058789761217710455562460459090354428831732179363820073166325420005900842693005641833091425280774169525539052025511752817257598291228685713163208756091498414420584201048338918075335680550113047824760743330510928867555936348612246943152544539274275624449829265639424129667399950011314013120716372780652689799143030787410806526835422237685554365645705602450224360935957509592293097219996610081985349031268642340160439604282451126549570718173166145562592937413470563018342037278465916987005982746514368981674294484349683146305124606243561397234461534785249934108858886343274654676001595412408674659929911001386889942829291420369691598594267544196266152598984092778930936738376426718825130531211248897146070042243800431653549905904125986881970686849149305113962301232644253316446323223892752754806585531801201380615188032605255504269737421299269186963866070546226967482483281921476350172658498167424983125044573719044859252141982164514609199277369423033218580533401017026063857853849293584539915734955107864819068908801401833939315716502904310207175621482680851952874677554516125415119348766083894656533006760929689062222212441454118746861097230471208861803917392661377407398849909896746344245371949441686290624326972399751197573067922419429599993188897297616718391029692348138796468096122154369573938885011437772076360453807575757251452908530026504726372713302503821710288310925723199633565873145203420162306317938006474151702646809103866685404852941627148236529286203239054404054502601159876898451310656450474295561508833117353076157505428628531181863264024756171562843286212352065700559244143558179267768702148616736023136687819162300179793123622130334257040547906493669486523034003045815515014248340252296914294556315686969196017761892299252505126185579786716343757353296649010943176941604567146674405345624611755081865857777500265915887924930768688511125475104165749452052519131254235761670033539874621806682056588587256416964764194135734372568304607953899083879740967376583368884650294149096570280622830895460854062301576647100184862508485508626063560612701558403473227721724950350051409656358788424039733765933175470612783722857126947364877606618978085706102378989060489327237608089608197351029103399683752658407567154585517598453275744907670590982967595621707382541594411777102653719781239876746353403123206244480459121144258895925107910941731580454107091645235724569450427662818683816271616017702784632456981823538736485581273558463457291511466892360441222279501514629374760385248473943769805326769310878780993514298330511368064836631347047133403498478558526314738272286137914820402280659284513233475230138992620422087248229841804779769818379546613842808819083142707534066572868897775399362322673509293894801041092858549307263212544781729126341592885058157894925387014306853450352539117614599951989896565725386282289476446032055105725548775099521008976943781515194911529739074101365985740736306499672025878792439743397690536180849972337685557893783451554428531355743951311688215222787632315219004423351061330492881280680270744742992316873108924089771087512003103632140563386594773516771411576523289668066341790931946806539597937911478878760021054702689101970513609236143752071740288183264695744955440726242530619997024903739649968055473531545750247714195536862847882089531029734319607511601940431237626049441984085545886370630298053033055344092279243712127269972660915674321250054376861874300085972219607924890011797475611077968298958722588418317609266651927784075078547386790949875391885871207324216701158022678695879246257235369237464727212921560871626745147601655795213647419936244464197788211166542114942373770358439818562577974001109886867689374505931994513120354927052919934129978514495842779120127863711713535843076554560588335963087781780544626501599131652785587655395990135835300017919584190893761367426078570835906845701404362584956144088469958446591557735645595183328041126940852683717596091327438897378373873398773790011104244802620986155433747991350599819326190790055466851151641674756618711029807980738852370526678207308768710199984700027355443303244716681601616782103233164238164240706164602335457381608722272642110131377106050432015289171357782627015883954112198416660556005382775220249304963918868485943261206091767117699767662258341257562653890036406241002720710654673013915656493602891550891561316691195132383055383295761923277207364704715916271505326979931118681213836495820029060320133722860642269684849330989407878434030066418081254448067272452841935129178579130550747560234789330073447870326223786206824416315835153751792386396402200737660915897855030527655271230996297748032749753808119461343564281894447208880767131400092292731247017864694573099932595238748818615034788317668636573751198753380860068178316964137398480242470233053375150436103797110226096275109257911958360156190533039538925921640368887618327915884257943602226323969246679945799031746637284189625761562800349266536333803363844387741285660880236646319621733089182392807745958085408454572173621800702457298481409987037444883204885909058881412690201430711275942190536449213017690426041856535198332131886589478563427600535317809435773063316690113122227854207776550251592039991231718456625846141895373727184088006817872729460861016528191916359824133176714796651536915538841442842024388810850098170060288717553330119859679858737661837911882257900126199957642055609852063105780587761759791960915967367916791382039602073414031917911553380379499324529526821970032278866544572610242483573444766960691320200259373707338552609840552338995005486894092189897901446488206119279385612064745619372315431882439104824955385009604631456866710318425008822974401364548655562698116965183050583690038632575560793353752670420364186450913976300487172836404950997273246543285574655735136563817422901634247582291684997180520495468659126247809304950807447464084218442487732763007779385381213005589748934884480028334712498648217782973469120502883687257103332183310494194020618391747464145009545122889180253624125872655089980846003475356974577858619241036817367321727738722327558457471671107577263496115907584349862111571765449205060285573585309926255571524287456489236294030025121525492763754118189590746031519199853703580349454778853984319136966326547780828640163200749388365781386118873893666012475998316686213230116169428370228514949846741406466079989415024130670093377011422202151807318100611910992831023362545095777855152346345596799850167252263613241536775205801379712820791142527668124778158179112768638505718234218740322022357046332590142591693850963412932094374058090814089761642996540439978792375847857401739056581585172370845029474240419482753230233199817484982137822507707695721538477327211336192301542046046450897851746507881967510552605147424030021882874953796489889165647799142399777744458919666608623112327716851767864298377194494341106801734486805788406983386913691474520084331872689765309735151281844234984736590696985032553661468737856494638873232293790708838557477878697833586042863799745468892695296860258038796379745794661934123340134633209039132940165009895569931857599062945097412677073149435910115943810649643816995506746429474194218827673788598083894351205365988108474483916942551790588315694096207119605461496755612448368096020715117152667511731394286560394116895698038557542992545574917713897627744915896479356128689517255036537314079085794397010096243367074580220878601184146412452370693518206877170920906463126294776837627757573739619471995633279092604857373748977985422062914060537169051715967201961789966640028084469938998960493495653189619874262709778736174192349496967387622620603647624394559016521796331902718648194468260006656246316896062499597903172390364325911394925605871858828600381408848605064718155361824946952556697457291117910630214454205591298881175878267756510987050235579625018711941302266950014146496307505049992905277209898360896057530404106905539118609440833000517114547299601230432265422082633072338788168632265451064339344558718892488511683974820357402024163674550760444189121337724877214311486802812287372900833358880900180783139968406827166992588232927685976019339180997554355987170395799515343390451114426068661716608482901763119083307461812152445940714120693558213533908693214139866600565092622315801024027844923107056982311043294876491108950577248669313460495202120813688646412845810211710945174531896748886246682246172363170747414718620954553431710102878272413298530651283332175595792204812440386473315269760497330052435694710657100749037404240131509502511613925935487675774134796045554488413415919330331275784169536304668906315633443325019066783663064202824094200923543568348907556132899924314207932974229511367912028632754398311955831408361531583170708986813625038022963406099414430690108074064808044330806740434782444038476445766966751449291400246974161143072167246573770298447403362368351066606043799132232652736793316430464237430987445539379208550999609394788370430080101232253227081761037529367842253702899844469168493603888413334491144227135711904720325279333384862541855302623742237265330668223419253274635276978821784027827180546311299115874138302381130845021161022129868580927525577390987917057843906239021280347076728791510703337805054966368780305133546083008036669837895284150386211282073058217787680229568220808595547417160718887585293611361876335355560235282395190245376791230818473095363257491607304511615699722056244206694700258565754596434226219865673496796522560576256095639602355371492524630306112145503940257929581116217596909354522188516774115781587564055736066310652126514446859809545025315807845452772196735588242117071674724718647564168327847672484002362106831271640311982267470811882231164020202421783012597578346774367323634493666711857162673026286607697487264683510453508703853712390168358679243905529804632238372515978332730549887904883632636045150175699175418070957814692076022796244316563885828893657013541986459610518550865010634921920413525749854008554147158545583272368088166035499521474269531036804391215544411790643017854035061765118156472028071816467511363092363018145421445333410789399147964388445111815229560611996234048341399592758132713459645265101401769273357640450513621669552979944984117691444262096314741134502696506329809465747578097771093968122831162442537744349569970502056672073600566413099474861260102416428151266081755840811339483737880331357081512578411371313905175461559537392846571199517878054705049326399610170933230221831196977199886533056291486554112649404642759702246175672426244383826000786537697713011959294117730809641200960215837843332612309560519729397898328327772057076496767832208552501990120178393978698856572451019471546187945199304896057896343981707345619686341032549890532506659543233406006683497725157363055236064479956414655531096789202014371751523049480052744937905996367798331703515499608522266310297663147604860511387415584276042302993869274437054070769472336426928854206121487977432072451214535596878687270563327088888212545934691137541817864050180070305200247296054627640520689679214888623843767575853835274550458788619415347103011689638450891048949273371435132519821025991987050751516351936823112215136041232141981249192695317705240498510995232048405541374018578666662330716604426540335422517731529049763063935364898886382894468455482654661966716930183811070473630955920177944181530998061659200804235475872438689193414626280575015123955272409341963872291710670319734147383377027232615676790410477707027495430691995225577893626941996343863056387745948063850376852990758191738720032603677350152416325738686784802598282812313436796995562090069367121128734132777485824653480789839908131105205553535219643908239734067385976634604578364937052714810554459840283871491056308139853880116453192116532580614396645705540610829058645234641748456735959867154161628143283979674545329781007802625970359755318690169418477159489753752673142238683464716288098794589002011666245985325714015621564132210299766289356617289663761658733959684175382829922678936784913537447835110916620269771249704068229884997714993634322858129239110685046454259607401832769905096226101058785434461412520183358749547639315374122401427543871684484520886485797185137640201338752674482805939091506688518647071750665043722596541254153594437611554499144120521240494256411373657333960873226130412728027621413719790659925324885561453651632272982926823726851535057874614458360116389035190334906010948966356457503875167800742037445740491669680648296383629419816841567680780773495954734588210999164059189170509186104320541938254703631049539357053052310166118446446370711865823296257502950596349077775869730913362358319464225114262166004687780699870419445749890497889960517910005640044807946513043951051684737956262792159156504223188148949550831978877264375778305347117666764655431151795437616711338535217219037629308153958896073089305555509463638985190198134814240648235936186035696241811499789514612940510672601102603236397020733078581743976127252351375099551281938505263033640097487302860614599626794703751310549169277024828104043968041139856907482339344148169985535291736324372109011531202009284611180415589190546002871915953731959993535036508926952352616289326402805341235205971770729269781009943434253588624912705756809664122713179594827605956104152080735265944061835678072424279904204453462756957919383937873479703871685809844577952551989724621450516529124848103802782391496854104737859434817027176764588086493657816426069801324101066534871137728210072557426715230794739290137427350778627888404616586014243641917982792591186269573241058755400841170105630958084230383111379245161030470829389578150488447901014891516794137637651201455713261011462361678110821315048783925577130011613032785238113814812410923608834122165978329866692549192125419771786786173700242067283752431318500241446950571974860756397850866783741432637430944389826721186597803581578415755124447179194111107027278775522027186119747642773605492294642809332729019532749693681736825002514599388594924575146659089836650011545892518722175500450286831284287415723016411650656540366804260155602892922634949521721693900035162070766981404679694194908061792516267547834652128843763221895977275672345550016099917572902625373670627571294700528244165337024938816736581559902729208773484148210214532529118754884784975262269298291372789847907945196343252594101435829278034937785102211591255111683237010300272870764502075817469972193737686605776944590935537998280093709973831659737220383529529636067575448203587100489459639487085601997396919511480956433938172828120672795719323103636165335845895552782418972663195645757373149504394627357867123299553740503728561352559502555321233001716286687642119142423089481412130179159102248192467732446191753794526519821878914812883792232941384391101318299579636501398123674467719590953388166305563385547800972044591478378077336529732390783853092154901725403743627433847991472033258567839291032172412105410133132175988005809047619751648038895241195519032214848535993267565703816565395680485550903780224326482708112156690644811287838776107824628500885227215433745191496177518901975865802986123176565454764844158624228280401898004868223552249677275273145863008646715877673585345003943873822176039137211409321844502811927635577137970315670678707171628343704095025789891463005458668175683104657204250064232557027186581131083562713647818348423636165176795381780463664120483722644427442246971642977168207465531927594296499395588529368109059388306752939878476700614655877912082708879027360079756256819187270193344572260962023478514615589879496802262411226377153565609659042092090370948626321634995454041459436939509811964000637136100723194436316869103025684666750973294148606313502870215060028505741040085677525848600302334546698919481039833843548018304165526883589147118066953356443022645200747989204951093936815414194831708457407923147264935764676404127770409976179688781500316333381462663585078984587044754696932162487664586631396583303848880030498353323716244608282658053224638655462042543758445264363462299800464505730645978223758327621969841776261847463814364072565643179091638677208511485543714432930916666530715808040481955544793145280583417299224538706710275629721327292036417767268187195536562790141903584219966195570866019940725359274808814668472219547878304008109171948908675474212803914562841032075246023604960025921793535443087600755364540498024527903387431993471272275467893641311244731115027789212778885058874523980676997758866114686679135986069874039275825522659076233553670371339029957884010752301911951903659597944230376721968491631684117270084360951540079895713993424724829254355554976690789629576257595252158869030603673019912355173346977183865946485156549459854144529467647289505738798324771063446731873954931187626758608621333328397817995418359408820690967882004250160290726788532058105390836695139257502601349006987304848041964512857843895798091230715086967029427766822763061627484465245610232856857043089083321355922995936448018789739976445360296325474905580848968880103697278656096094680113839572360303482673702970104871980550350900951788658439204779197163908470390891563193300201874792850141963956252164307883196914384993948559627892862021304824807646636583160902590799531647094947333494781612647619451301012689627202313626620260831207463572828278806298340898845283442879028721832961493632184202140871637313806037465942994302048420460442939976228731773291292728470824309961052662647863626282306775364637033039176049885108133967833130473046031450532224461758169903040957688327047124276847189736345859301995073720069072848340186628266301513137338640971069735748465557938992854556673276053798479351581606093834032021366908713552190423999567212904288141783554998777073273057765558828743164712076364380202189268086980263309759391321371737958624187999906877845176997260025262340972448648353710084799491919148429589128026497342407027334830758706415897375526245666063277289078559124300849128932094799605543762374635705916703821373263165644892808309472845930137361212498695798911437295977765204554408653371409927600693133162665970030597342899895537047979844245989500759883973309802686068180035852084791998860831798760678234282371779681712534639459562084824401301121670638171779359175763069929230539119478850451161385262340216824022605936997185876235696147797774615682103904460209165275433505030759677628527845315044104185703177275775836864132076574847134877411281915562649983585012431632940095689793946190704604909819859380547281734887116809057569664154390783140979290511618937032716290336602087461014964105939104964133038930560273250220667152090722707861301888125547445118475730398480139192950143278012995043814264753139787191969673859183959602213082785501043549875840162052131459024913762706244769360081591774944183816906269801343011500278299635414538685341466260973597532003963698171465137326131261508881575749530586840290674018074523203329142380261072466896263704827362929523457879354151150555654705310353184358742932985642083679765467149894765104423960517740895092062259155563168007558854430666201222497821549100006459322846081834262875658622120325434545518164487766509863085140338214793449164205383774658242497146294520145602900575027460795439515966776050107885447833108857108375401172718909807759955803393013919471312052630382749980871321393094767569207972001641604658535892673829673637188280178262512726699477475159338891152439622705755704601116667707050565758388399111613997429232713762812074144053888802310812701031441575574619986480874877527660191884552793470532388402409679138916665679912963465386933566186180933557013641963181181188757264309329734702413739755104984113388490481587938727322593685739781821608023585943594532053526363090564632623471891621491200347248096994469669645388538545408387618602783747142332735038056469325449876588743742141917212621484546801883641901260387445440314971657577997632472216751031245487417940220197281612650770449526476978999767148629493003388365781037609098977414622393183622461302716685532695946615068393465019884821454275541869141325255172776248417489027595237674561306277150671802734110546833604126798248458623890576656667796162479998510267896402563531794690870975520852991603756517421393815905135973308864584141948359414170605190445834870663628907227520503250881430218295718099095503113852093081840068854654156133403027909425438375776451881390388492415116348634548124706038725753873745326421476063818178988256695982064464036406983172295453148344639003510183482381488510858380010690502067447128505967672081708872254532840227495438774100485052263344557825827749277775760786559626119151145975375221418959311093451610066652182967130571677390301912817866337189317375342584700741579376901922851215872087077434427105507862806157014304111440168468706139926104563260182459810738945750306309758815784104256813093533840819274676590638648070211024706830361136288202072845956583848002661354883179919824496501516017500212886156665381956558510704066323629618895400569973793605412070378338758055299616998788352168578425348288672394505220666421355946581752234783111980991970312263917862585711720298897904157036408901331149574379863027008769464770864820765788041835190867315499457210177255690678188286029706470995240621343246133767720055536933326919807220454238207392889188601426954580234462726216274674655363828428966178644857456700241784860839736155761901719647738326217793669745302159600738169427589441280022909994960321986882060234599524811929319867109907606564528396781423616278252017535315264845950008696660814815758515111969340402864094957647923675591048449395251051089041933448774121734309843612894186570122376048103126985407627190216403214123921337174568606407145622266058258542535313356465350878404342126544553032140333548636190454746099831892940032274194615763436116266718464375588150200916749539560328459762558333887498395270264967671727536047061419792765657674738551993821632407870176853511711491861490036341772143719646077349371638231056128569729170317121217893146606731747572205264713268233236362026443741857875562078890156096554625712666275604480703367441136089352983096459554101871135919078833137878900623214244064677123365041614101600738554832639656559921462479268845478956422618335182522008526980113797438262452302271425249208357950241019163789766895648598553971062776700679205976556156413243149232439713781515521360139562570183827562093336494141706642186548960804369480572890973687482079787570053804755928540051107925577275770152930489752044178149278289682042767376615734180943328671085446720470302271984177722558794147205098596622480200549534956581398878989594363229864158810277889948475276929135749852929687897399876801529014929408560766868799944888216290887134516237298192680337362160315961770795815471564767479542076834100582358757493736813526382845545992230019450466618745115250325889791762027065581689381159186468151038691703341884586968860077503341375331199704279323493546287480682350114878340736471775828270944986788304120104082326592438914447173504742409800049860663106858737137257781795126655112653276485093848916195859154218058715486179202980805883877601136823845021286516868626070430045529379301978497573470309335851597177153652036581284053512271088696869539238111166897246622548551567366797729519252909777410958402956543337357772945299780654687681675770042067303298951640358141131218488287058885505090171247993537223454224135530657668251805997352280559461986569570634872167526312808256660152214443389921611919082166042724423979918744385013393371364797360854601094739112262223455560755625045895494870690800233054311466610004944953505796250982721114322298192872030045464768222786421926412747021785102882447642023888984732177457050329417547909702356547347982670150838217499993477885129652310656507018036588498796054014641224258798462675834184351911042526189567877237627375235458304114321213646671985422607180242723421542411204690651840448025666294223647507825721305638203584577683061455035876535133569655095223637455183830322946205880018105674950434350637369584695161791975034933645460284637963885930044651026369027571050535369573948341224100725955887593620042059325780987117915664544376872528921007725693891474520619040583837248511113237574890762301465563115142048096008464321679587194159386739970163285069981708955947868323326116161928262265003837356924362208856420656754725063214655982192609912953931719840104955283259639354443303664599088770872864633197400944109079221887279469882975006429947691217058634733341995976309575085240858000824692534019275911877647755360968588241416113326521556720131103807400873548541592700131857553153043691489165900208378161242855973690171860877007536461826404376628090239138099741171879362124567122423485022897943542537274260761933744241452240648476738221358463299066349286749779138930999900349666408195112387532942441119484632344419739508921911831231897644333315772211063937901050931542072451209551463641070131823162331521559019493560178815809566062109896488274020646692836971368018254829031733370948081096290343203639234392965618988931600029083669188259880249932350777400926438474454906500701189347250264696635745415949383838499561293904981675598103696473380875546297916485680678699444207857561024281401559634684088506374161855455388900397798066718878921311129101514900481810505458967346678070444558007429446817629279288413612297640032732519594866983251568602853644407964521094438006454637780983017255973953017258700574007565314336800603834266771428419892815477720175597033224861615574879980929176966622355462791214764091676810342177239410878360504510743057023525082335542746003150717357951699197117867287745458554544616070814054150539371823690602096499924008150929273139521310369481131050480143729137221130920073150259780851319473796513372054792698527949338641169375958266365043888201541887844857550938494693116434746297839386283471309539648617142084539168911879369572193953087330317078460591166523537543016107256455078453629638316469898006742475109334733227718093295912000521585478309109261334812508162056263630655953244913429305532441735801690847098069446127578804925979721431115484550060076151995210965582161816705851064739930370278721155474207414378379476703596575609723700515947458344295140559591322315191934182837537238659860561449399806264931021715881573744353444488503222417956068534246636657715717897547071148674064514882944954178691388617319850548650016111490221789110930601554899051326591495809656110913333836299223555414381882397724978416768752600164504261830644796211429689626362851251754573979672909691158756884246336570937572566682690655566277317559523360400836634662243274283547099530402546042901169753252773754187676493348328909510871405349918886527439585507304514709939033080039767254456503958203554715810013383568618882648942600947459455855264483297863236825065732320279733725931397509788722166141029997717619844185243520783971775479888940408209020008839082100234150887722020056990146652447336096736113116817814829316070743268390774257474049160356322456076917494029044322866400653309035415214590336392671018897363184058940493734775105472862168195218565826205830691073267895574890735529001726423053606698516398993501925628748705692137911213819487672637926447215452007538104050331015773444484157194023150536429332316654192012912210588979822456171154905371585853038521080883408648634636352693343346442518377432592342626007761362628142219080413780940484634318412510511256834779208409108913751797996648828921120900574406989699699218611497324536886091835071469830866280712664769095519667817898332545219367911383757333845803339463999563794846292503091097784728070120549399391990050888582845528999282003715975439188705365764249085370835483554150066486529154043808757833535430414169224635888718324702180714656188137247851476981760446402388913292976131796951672947822207887112644458240294397543151797976672175611918240933798398498026700904423825357419186094339453594643950175876697635372139758979689381062269547415740621480192466364592186274805710796162290202161144950823668225030599796880715968937488937807767505145049515242723158181707479570127896313548793181463478128102008950046990189669468848602668575891992134448223375320438184693106623101229669802453447674382413812162609087709131290644972534155750896465715741015245393219465998816560131391096170336028693445241776529294768327617906411006831724263852618618750535445214738452662278009159500367872373774212189412268301216750851912992749010331472075965496266560796623103512874208308880603258432476221956259055632257071355246231498141378829420836353975110839558996016526165981519379793564898451989153627025899233486063766782327348242021675766658326642434388250841630875194052741269263725038087867972476568600100609055687509062370935258991203476982099921715900955328347429779425770871300942257501818415911223102228028294444913222535791750260427263747949320589287528232601564725995904489126836607504535508207682081923356223007658701723964372897036336843344421885718370255432231233282372532930320961801699950453743651547248599485345226275402826623300806419527686734318962719994217470181276574526553020711583057237899330873476454133184479171467854525981031025990671668722560864930712251041353636790962245202689428382580991409538899933684222802749350273493909858860615951290398234731326148272213330383881094778014927722748489379858605764645044243911312814484990967052617105794693973960388522589473435995143314253121477360769945324149872084048045926898928368157285349432930894814152603309428214566373026248717930889189830624173250258065137286687668613235563564799425425370164587656163002084163458722180715321014485778476954768768320581944899100968772412795351358699356919023235903502443655339234070690321444186202561756466607414074935229716494706164199751614826784706859944413311101992810312134710984875509017592238330960852748393074314933662508807421067291059545536285123805595837083255116092687507239253303579115322873953557270693892442428331663301624255323524501732004566794375740195866740823219192843264581788008375829697975379050581148819760383011629329059307045605904474502333473247095966462894572958677610452614158737840968714575928991503537434514952613055066133335566957414785540122952312661580274785124331667904816046305611942805017979012184924986774035534824304229708557540904021534278081074609346636352958400685259630611187075485215854427364627030480950431317083601953763701195704165069552935241169513788467423407850114061967046655883379679867335819886973546336478222920902484380192538424277715470369605312815656020608851633946831472574086213563662525639770708753174903295909947272751082709862388732186583981905204694966407832887242832756727667066747568422977416062073158755773393473128784982324869402052667296761698267764781439263668631287435001539254128809794111254430855552184093952124237473843289146981869291585391679036729622362233648085294398936488592467490251637730645071721180298556053977285641779231756270823385085061240931848724202453440577769066311528502256702648968750348194850562973415844354713010067937238536294839191293535038260299541442903021621515698386457346298674099348354210509862249032879696214420206795835451852133404144923402237816572776972858291331287776330350618540131716689762048583184468005247959448498504104162215113627885360278019613929190544093012931127056757849912372468404514098246088375997176753691171698407078124648003753008405001926397106787233398379524154330371133111223770031441891048354479312486973987822141948643446277989942915501854430946523021503854868317672346658811121881535491498892942951112747910467817725970527538245979877132235682416943569797215285735905850589583825886168640180987480105592317708181061501315713928026035672588750952090311923738454964582740170559364920479798469427512441019889280198583798157463770333763585952663018786561910043783584058203520954472624609107838014248454550194721348730044992811648934715871000664631340203018717057596853454836514510977079555095069363421959658350296965677509085393787650920346350052573041980690196789675849445228917769786900079105721995145655664501329277900027869823323741945030030024130455093806647291581118672325954600436676842697076831655518415269320468801125427086583661575856342742034035140973921804583333612720993219866608668401856039901983391908119169765119993904201006179896082802100758229219912702497926730276537084119915341250438939197524205289050275164213243842623230157941196372130273287413741145787706625498308885352624468813094692384244160754940680239221797228939580466774945669480476723639777841259780104239324554882760244514796382849260834635695583726206140372974919285874387560004586518036765014635682900573081124229384756310905346828875140430604309949056028072813472135431596124546325345633968610546832787997470169699573036243876921781852146450565663391391884806140996447934010423922043974388240125463836309589319990052604358133545995183786645637991738467099405998266838442927818122474978642231072134145135750469510331141667397300760847391841374683539074983610761991651039119526580824766429519050864227170556631919101291665832811659868516390314309240560378883627896392308619169640075710575359600103529529251524680329485010579634298009199757432500681642032359014249310234351965484360881211325492866819246380731627596462896632718598835990294214946996589122515826355539945123577942701936878276333230909320511814768693316505933385827660411178767155890677962175908350955684240634159505929990473507534219236291713961962525930297300989827239683810314265121295991379960880977222134396093676169405468655397062929336743069673971894240856992602140898065818440352651192366157915042342605595425716955570143231459630834653500178984828701854424968786548692311683150410237723447531413514623013790105167393282578857873462245356670393189918790624326803753782687379758572916735136121198052527834643698366893740356235427305640893758976999471616237474890352184668266372608809339321864413624015529491850350744530799854695866473291084627600709495384473160137789060205219418550902007116925909674879651075640328024685648886395743356117460255915884001487515080240326099592829294158686835893419983457055928317231277279327003569927765056007456351623477987811837852593017725012212396396320634792221025666136399625557981743785967363641903433045675734289352809893860730500047602782886803643335548480814794126559218479941652956623441094578363064642956741926951256495250067253665366958329199505670112145725745636592965553781287906160159504788210097922725730795374798251951392587213945529589474412285753320465498770113131080226736168989564116970718931096959977616576133752987439318830168936642442217305830300552672330592263417085015079984606404020021218788279820068279221670582328857765813841799585883844260593303278641328145403744026890067321690785239650444142559925461193055577674187405450571963311448437828936424013061555032174610942955440416802248696840943608780246407497520526816489427231088258211793395999151503566589439881245822057952067526916655007252527869601927230564831968673109419324172775354198127806534537000592856434671949379509118666287590826967923904911206030664570513724135877160008661024158120232677246089520429356759935874793055311307503687062736554292754123939888684284301675631619262667866995388421043736356607555101635603930603864785224846303161953952658902530886270474067787648862970699097417258653297925689652624107596964477619040026596101863743370624581264111267615717517229960816351653656744293776944169926681175165483748046056522198683900563286560347698577278949330739634957379790738881304725161233176347423156071730123688052343576672501691235408207582006766575212796165029866121601278165617618442343893393755080871139317291457013044565297612375311572991724446666860982095086935945403804369613107485218791556516921159906871328851891556967300387926444167805409347947929103428039071619678747280107038272996242363113126373421177529342703337973458808055538727011675258996290611661700498329649519596964693335280487720694401105481316977738848072067105976868069093924380401724153352299799575177837137264849249492328482435765750692314293813380566293353310339248435091450379025206114429607393659992838613001056383992535282749810705092058574253974615874063479019633355625499727172718740377571637430868758931846711159313763768023037309350923627290572400276851117716962575785227105146304446135116542776178586241898435829745597757942786790140617717945941072893317319128849793971871191308749458037068636676670420759998514014376068292702320360192069234500519890058288779157405205652018862079813360428208276397468478546212981909795230567025929291815303562524561468335007214607221732720642252078694525483379784001184471716912593599471376508078034421071254037762751733156679227246170555919431997271480663098483038317554643155086558774041115185361157223061747870282934691738812663746593542646807870226204515313904292810352657296029509028211743873607240028016002315320101965324570200004163402878529428141374686134568303012666275767295774251352315684234310461574764446002576027485433239085816489779721751554561391943069733352538295409938618714841924814802854553767071348535507072484610813272300274019021406250090286588381642042133907190689469180689922611400614587409367846035849563160518247831427757210570413824296534377149404432566890042420537752699533242555715203928019590384673696643481251551031824782882749369121967817722086466291463131857721318108420249729805073901241153221083824942439777198110494513094770476066434813896897799113435950898275958610448188933655785457084715497614715422421983099262194725913496043503187473522428386469486752700605143983417957126236332580022608189926299981184707980758162538408634328260889012603962899381473471125972837148854250252491795127317114417662938344953102525732085545627110510554771833913237997588162316968938548850884467770389447187392183225698463856100092044257911868864602775669274008739409103705886133865575263087596396631235223782548395274623100728409611757949585555288825387178671697532614353265941556228468859457023918063220697018868527957091323603274356710610573070756581189681991230739875296102577922974205074241465514001026838593429200219185871519771901404307133024214584400164093448730278526924548386525083084393613631209115684232689716863931951231308215192016662598817963669797859481932632677643797156302113227630660732266038212032864961239104682818172878407031348046243611176255096334562335948905922328800056612766136559762811410592311428656833238501824009426351060347412985775442071532873913046879738002457696181640852643124754600512226009452606054885016018337712970681283527360476024102127877925087657008464495444552955906205255074614851594740607760543107105874989566374704275834107970684125187104470568037843706130211456294195432951650303573722326884637877805335071409039966823786452880119880140062748165617481423119714601824124598729108434795196104420027949464209368836837334812062333482987629571229908361715064780595369400411001759536059231672381864505682351527128074285720207890573337420588469017933679527188757976815495989818953065155226844669007232662650869871999453414410164807997816356948655652856554739998976129214177812596776555094638975616268504580659525116571984320760769891821487194234652731086995766273581567420056002917285004721949929373850622173736365480550670987502834183870966925651623929203974124220817597318745711829165243333413851745483268343364177747441265262623603492199997204719213276573853473841343139270880971266320739616731072261849641552889810969222236833124296266259319858334194893605256101967438684460377580311428716685100483747234889984868853828198025071414207425853394846801576767190614052876733421359116633053445343200416484888228493856554843405586226579602779944730244004016111146361606416832716703004160603260847894658057825924479333867610571020841129618638084214052465101395277501362837242566060793295374194365053724197261780778530319392463862454936328755358631011940908956254378801814949942044546585943534054244748668259216824249744234926116744309726478411779051458912648888419489212554800550615741500805455230322727864437670412685912320260098578356741201291389943214192898039252058719915858019080677425762977916394516734143690309832619006011132124145800902855489098813890796577895839146455093581611548775864222843219766783298540558591063312062509531371616752448848750234140957993946189040466134992990459903552666576114261901139966360737130650671129181506063494516373664514333972926816102217622860278137563524213983776463820513354478049803368100545488375131180995268468385688749975334564362470085318399947724910856812156940515275998475677483316080192557054717840728148441036470766636286557541110347214289542675986325085843496782701885226234037880225320494300245699842485589752880717344191647962249748483751264458238892818792914172018297244254117801737092974048441604979657973563025655557192459247710595414235854134921291043579162381330749065771185650478366513934912818710271284273245599594873259853385391618714617510500832372317704744862493464884772516874689443576824144821151967289318334218007330143798477623782676685119418723507256327102519853411099391388340503771227062453293558509627193237787787565770087260534410650702752199278925468608051832485419705761336810351709508325791709722597390015853116385218450511939898983482036221867484206425178428612625457061255933518532395197851067416315793176213986056066144794261168406152207156499702581211119375711618191596293499190635495419655586133939914139189229130083485478675431885080551362746108035963483603428692916682474850240518721995765443587838091247603287784339309674280779164241419843972376452995249460114891758939360612899874987427259120114196948115825659115188146178107990932220139139320586079554659003898088138424347871633571011712097571493253116110232321779041864665330877705898907918358992808326813169199764979425480258251697928342313968403825754323261771746408192414516345697188872692626690688702606130556307779973281311026815588722726438156716240823409317385313897766552971033795959914674781166078096729972178545961140681387927439875578853923752973713776594501438084271843134783847794836332245225502538120706819526004865164497398718637716230712707066311193590674485622769756826550631372812507537782917181234960819396721572539833203822207362866337179815386631928932091354227075056850960940066130687958450390800785034699313904081951191827625783793471676978860557759083086849964581414514866724829647488176767444761917437002457988419003690630618044712296770521123829337114246290595245783817947721165839755023176246239049986953409665260961701391565968137080493370224515432150411815540796080633858212667303946888047304675092071568120169544355710489875856513150853949396763913539820794767835551126579108956821795765268605938621771387258554443954186218850602865734110301237186466339777022869915436592275364816417199896563508729969174462695963639049455262155554214293776069564076725618026060901867241404415883802418053504136753575145069015991691600687607227048554528299593162678063513721659768822957015366356899408634689060795022428612853719462114692330739413103389375212788315303032498583420286589037186802367343806763925880558068736474166941431376229819732041463641444597496488074697931891582877319974193764706655888591641014078695179656860120796522180224578177819502283902609008858779495482317280818325627204223442207804171251479583497415254422917644029928411844631863157832584852091223777356892462426769391451541182533288047273707465967014734797418782149400624527878776324600472403456985560921166885093050605325498866251834300503534857124206442368602230588931631412120578315921629215824654665667188563412184340933383897646089167853451551483291210251305862539163909133276422953200204382598149084791962853889531854237383715927791943210909866063299384034569385598724302310209414811805752824580673361906152858197871248137599857167792818826822833198289512388757508672486466222765340973539272852405436571495869997903885448764741200031405164899422165570600761060055081622251437424827959024882241514164673259164935989874742245256221657749197816285375097081520198983733813050300424738008419021617988992384991561663632929822165791672937239599276247141762813758281683421019294510910450847611476046664769700859126799634968530201539191059571743776998249248900097853840685264139682775133648100227084406083576387820331863475611627222175263719693120270311830647611566058579054403317563126518788060226013027411824647029084882442038254664545498707615105462104444512826509005281336699903023718310551444464650004472022068660392907624926972359741678277675613490644561353598049297048064247092337159446863869266248715491324842716207479909549401253548209370055455042621417286899262503717653220701894513315889895273713715986372438736448224119060477264558578582816814066549219617290068463679271967573884747112162622935060033925910772979662332149634809329559627054225666705769081684804219657811070118582819901757470677678049849329665835195601048733171429563375482881366217807199707832442247092206785458770987300888650118740951776866743866782468827165514488936519633334676637008944972553329478190621717277487250425802452940828310996133068069635686153127568249192383924793268677899865977333380112628434305277903781240609676273346570734651931438908240070046795602024283289221237919219549913932547576546583803808365006683318018180280899228964655475473663535920873306463308386782455056479289878998908439760884746203760590108993513843789292525055673382547496593037839602410971144159509364606117980211201010311588841348833489956258688585141317867577994608702062084984527281533533154698857926203332669983376394475047837225406395151335862370894890310147123407207359301765495084701381895527119405183929349252037371243840300527431271456488927093196572259854133621784681639529049088367042064890788798121764558876583034022642221713177275625255749405519268450383736967161325230382832881402421604111965150777789603277436606300940933790146386786623089170304911663885285639338455999186067778535140765405267186348534684196322320549765718238902146754636814760952603667842112670317226530409769383369063552727803252245384977201929002605269483517212125738818674299678346774271552347352713598191643035593900388281283961825969201250712848622441610135165401998577227749247824541882678680493158821536496878542780413785744616277090036438761712931908408915137160014631668047168321663360023000072122639940527962967581629112538122250252231718476708456592788737230447543348299075986035893030391835947882024507645561825877300195293560962801539604957002144157916186575133644118237798692528233427004758469827419941364668068818204889482176421993156395105387677448259370973978194065678654501803595101966291076228323707183870644603735063154133038895814569950516293826954166989067841231016111427976909535464509417158038992414162532864682586086065557031319797085899084816847535064677736707700107837684284796853549287880951416923862258610425127904328915460514923222869705382644702979167279887871655245938216219111085005602385932064398852682446153311353085113959439191822850823322096565657277161777230679371941628246301136613952853480433993824884863418519366214763730219437227120793112140490752256015651070716413537667611290608452227008751301544103034369915856129409607337109474607524969961170191757742198189901271452871493949575031377593173986862796217092459987001174812298595632690828860963072028413058231875782140889749733545113370500813560141786795538785711583932459360046887347415889796707760977821071690803485302121341295669614328667146878118938873064732444066428517349196110503846669075172714824783646687143045295864157380170212128498877523018568403501879807385329470713442263175222700840072412830332332293192447552761619752710162481492999017779625171705600905482983462926778271222709890922768183232163529003349138089841015918831876856367720916488878488241822490508485342857340928709742159169827701615667781366754220898508545229863790017365181868692898434567199005255318866142162294572572406724456565730876433934506141372822450488486468647830821126205101071578690973370039632564069918568737402841878024568254929529019166487980666634471979481312880968536334590668078967370555579701319818147265543312174215221229682819735697700786779156656417615222214530201641842052016617805487211422519961190224542312040968775499167195156048802006447033196716011695926698307107989706295570972092758993903359353053423833464480938680948956675144670471373656125665681041346416289157826556200909912116700206746757042582385587979754275006673355840167158311428282090733403809491359069206387108348807343893114398473733506163537425395561900345394888821711740077006923027082896488410147715940582508881348268123011559136614927082260122617718780969153012767198859262172748476427065029175012939194796883681617407363677853471244991619171535636330479229776207227289865139149295471950746576279922782688524950291948498118182975405055085060251583041184799086314374310619306669150540919290533313881353734898846007960154487182204335264933096967642858483762110029523611596693389814004631281763103346126532917526350437034125368732027492039609938908378796173459879305370778228737288289075905459153297614175726837311007047299075233380326576011795314969239625770045229117175439887326103150847483605441509462544047485473534199178429111587427967765422458681518975675196435684590143223447122889127652897881954205736789029150038593859256644821606973566884750650657406090949423454492744671281300896894451240387624603683883600955585478417143358054169108393367126057318740856862099131477464426904179205905777450020689406774253105206181138150695609621416697306789150057509275790219932964357275841590409971962206564568542083756629292078336745519989432074596373089262083699009438184349156146261601125206992080891965686241876706434906462691570303769688833922908947391561745499881555621490823215299459221528852783830709946543413829223722915410058453697831126940172006670517342293818889022095222261423680752228643233794855367323633276494851542464496307774215855538800181418208453749595687025971894050491162690639056326996783802983995382418616339277740254360221184281747142571976809121008434017712735130414726146958641093740959372950037053480931570297062775356133430808951500365604164162525574136379977177452571072845834487035525145443630442885940270741491193349444169827729709318688152507569900901980685218231336933504465261082998046423597053030230162592651636817537651150475733510430304959579755346412354915252293603139183609329465688203449942217394734370827661072551192740138916110100774585396115822087328910331531262466160256318171311762067350799259534130104963164608140193627966127986455091385164952326914379178234254633722405403354086366994923859622847277647312716918904894773274600864325016683319227519983251572039723234148247042261538495528753115469831320060790263888466457782167717327885456325495615706771658229779518247808933054419373136890045128899090954496562447177644037566245846902559045926796629822986715367315052736253261658320974994030499422120013314414172710613458345774209797803582648448615505260818687402055571944580481889071494461453140746217087677231048872896567711489961563648737798403279840126716959870043271700493215419689356717292380749172879607894779763933237002419894882696118733486969075124562572954143143236829663655884252506834092777429954499172587823003113183436659686755407956841741433838001620557421244525003956446692313978808418022844682811631376618287686216872821902620270938024818689775164117626866426334766178297465403333388285118222489027671803552166720099622460183331895020375602641797992059841639445029278879424355032551949794728673570139768230352996503846937834376008296200539486614666932615172145134801697481283605304149190149571028244851689036255671780569095309239119019706949501919143328014457273321009952365856294927514023516747219906370712211848496411770543072113497589648336417345769384289705025300128280994201967955284423642051465909399947702079175469134472651947858729187156260835062712511224978194436913803525669031804115890622407279552129253444239663192549567758734085414122977954213004351168668765890413035018801765145837944768907771024013262461486024253268136528484433458856237353328195245271170235605073195799435616296080045847068345404309051945796480751986831262100677300642440248953487588262024217063560602147041154404213892416690275162594986623367073763981667786826935853994714478803069519955175293932875903018022585836110368293934945765389195673163145651156540845021349229315353553829250661300327596606973529154295514118700024908498116874670577728634435938757124620579430901281168709602167524962697751309004835632864284416602214047860836912214210281010568331368911523475081358688657799431152110579773758278494435811080643714651019437546254167300345639434339869393483386782862530118290927417095265944911622535474848277359673267088664849983119453634417049788519110125930633830866012329797202769251152751336805134264345216163457200618082141256563273259886190953987400326616771623377656770145903862742347719314911522309798417391515200565013520652796638609843122845851642544087641789644350202944450959020725214095172812656982061884265994065320018461911229364058978001854790745333369703142858175031462843033443885961490845652111483248115610335028481763532465138233533766391019840626665713430744279453513995687813253781429666008775568049742044586780575286687298369197580316229543112538459988839876494304480244759304224059588466060754235509699630172700641229249969698068596485028592973695566432804384126128205654763921709746912549406646911918065146106409645911021040360095620291982405539497843271309575800929688600155453806799451045151867553827849578479671640522958171883293247113990759228784340851951657120246319275346827823993408596702631702543934594160308481620095814121504869462419229474065284265540819716216344526121892182229894534902701771821156302366240104950819776179568939417899035295708267059520638097915433000540208094470351786753973703979130179507189087435009806853168599141426131709780491696283404830732292116648788972021626495552774501326852333739497652482648076243691318745596316178686590280984930203874174567104188801939332929420242396591713708666883817549502725441571873937365981390549000494977707292757412490373607237962462703723197546320316738643102035797941165862974118648853321179511742451448081471983847009970826762380135833683576864397122738386737265644413609878285535274869322713024508356522752508706260306224794245223339379281979576224415103378385807958456460270312634192094168658376846033745199730007590423481013088807538849318954391927896190971873181528254944905455841708984962747635411464658109194138159302408114288181258325879186733397013878902443158816628506438594656711324846377526835750829395989327293000859937419998558220841904122594666349709453258198733428621997647325369160726294885710736464669752141482469055893138526369376909184995191463207041014310130728085518531014620896249336890936094682704810740124557606327095226415678050995051560529453006236431226546791442252444035723160768060269039522348318769597057585186643173701144134978130600241049904447256186080038057292265725442260331171080549330518702417288117650625106792678484337379183395169201638342776581378419578279895212830781257210247570974135665167496638216270184504017960253305963686703890581135429428007078074474105344666827934898292928070031450895314222798642723449691156306597890381976383874628536144124548440991798032806683327074863200062817981958155215666494026632345094728900547497421636514322406422641285932905534923991311261124851329342265392233742098615994161329262945628252697196727066084643746331250089963418011773251343601794500237535898112774038112570370401569918276177965091837795459643099507138993615192450621818251827560969939711929100481926700717138747273604862689155634328322240028125202815602037492397253458585266561334430871065381121379468139290195795991288428256098753954763734169750570163515973712740516634851489425230721667592252720799375813800914051939774329162196340160804459235433060211602781790128602255524858788162762312305266092164705817183559140277012165540705604872403575112927039352507684259173344021481816047041021371199563735227740173938484029414073547264962887354212458706147719458997910435584319683466654666019966973384818455114257650804440834328522968621692309657602732085614937689560363227303481639200569479493479517608460652913707891786562353565368911540765957883009472505395099350314489650980050592656222961807913875060159938421889420393238091367152522248038428439866299907494803844184997286084654435956179280110145504695293939407830309678196603964575530838608374438761062018489219446443589389929936826102162179666253455243473325675813877981638362652738442100339713484338963130816527386473948851465467147243297998808177798862534963065844193751924609600977453515640109815666198583301746484118654344176693058883344361330862094433335023694740225094381795134020833664438480291157846408726295705584809795593677791028509140259920095214642422904287808084768316006272122092656725741616199420169022320090982524368230545639719497555805456201687225483189093365503120305806542735058607303590662820414796757036095024794092665946061890828205468137058008311776004392652255321330194501670804852269324938308388081367526631545224683359704647866652748284578201287319837654471747086394987066192322250928300846896245353115138351948825388765709621127328612418556968824857862625009577125542871059140673781073885821163264971343342142479915149535273010891834072335482091859001446211548287449165212424955838068459972771989875518015595000461626352676839434243149651167437808042327238179379351586240911086900601668685503837680320184581754878238400477617285756351292730533520630757464294656781222741118858007304899220852231781237090622065238272243495695935038533867417962196334667545937771527679030130059633268730211365791426468663904280669705594877799644103634530889657359652956967536825241447543859598235408560963018630470372729637048682537489741172646396456618471354331486338448383705657132190856939859013888492064905564969116006149195869789643900962569869019048789144107048957199259862666056130572504470702458372858444940736047173236087748567365990111812204890050224809228430754536760983985066017462623883263444015699212700435399720069880487489301311817165073120958206250036204083954399892893301931374825715206872593942785162979309010815513185227955337971319342761511143876629557243455579569004695117613080315175829412710934411658832160571805557304280629196683555589699091548424055054032224974057999139302705307080004714613325913760843303291744670337077826039399082701172099484347450550766051155194387222374443055265831450188709117454259119858309844520912146204158702159576462563577746556283059872825139911965093679733023152432852758498846491597923977886540892065811902768857187141887394801164592348938490585856805788154563108866588164156151058656813010498585708689486290982071007664561796024493066311890523817564576099968701287213945623030766176145045866947955344431695211782484344854762855830486989839681759602837869191818338970093482103542507264233356990238827158597239753596890738573208964965461357393452394990689578762456261716641569668937975321788196939545155164774407546748701293999167857441900098260241931287664346867567944455745340668878663063122163561720650782819016098037897492437837614791141040610670700613571052512421895949476483811143639506917166327106789995937326536254553781404929578123313457795226912564869413755458569946745794334068428383353008712931561663602259851680365443538659573589085506326937948656327266191946214393558876425587317805494598420314915776170583054574653620035371578224124850795812903802760464192904995249312642895709719547986070289216063113318315252076871416366474130464073960155234883404013492769217717576459548327877288620603999458937907260118927243160999619666015422886880291340707778393578075604437842117141198359415267367269205831781266913445359603219156938006686821819355253222267764758150046551488903538576815666697431153422413174403695363790687778018969257545400654550411706518223337420120560046522544943381751403886464321898619988145924557146886195211002618463478726527369229943617913090799217715379902823106693241010865199030981108948191434885231739204814356628733931215792894234856360107214285849414398774288926366313916114730175308346853736132975061525227897064992435940494801619561637149146784042722219928680185570577553046731192874827150999117699393390061138956935210251165739723716322804287377435013169575937062576565350830178004321014922149841272621633837683690221864289973419332474371125723688174281245913703233753817357049795774253263771586134350647485294604971482405173324920596779978970807428733307896847220378529076707367786968439744951984328228022908387898951020053727922758796964487939054951560991509980943313477915958778119247862520457349742470846605873015431387165091693572217523112126852768049948954668615486573154268858501160520726919890275152881682802980299428105967879409347639794412694452317715192912005997143308876539966088062637738284355834550116427457263307224335690183815173095903467946748181895997752388934414075510058911580422603782276484555982140371114692850281738416443114108239813180662794914422369883709872925908066853631908090477728501774429889380972629922962598714775807356392802040155752193853237384063841274855485123609147086714257783092008910210236534573901159796658497394820523243137184929095860878656383707995704589837230272421049598047746158313691288960957580196901967095146227783556451612426913903656890890781569485199512055361173926715805883993622510151483420512447724957204984571935694153871652224682125272222911845223479813533274562307141533251435629350034609557684810021240330184124145136490500862612762397375713214013942494979344736015778789035076080195249020637173273624503583673647247456848550036887671971286841769581259456678008460544400219308309383440769412494300101295835760213187784846159952694721449666027951811626713855283731948128064168988477973040769565456535184089474002390459220282234858138084021652751091245291509183754644822135215427508779323346266536296807821743957430870676555232554393034917679913533637831922852759458228934103103836622292065137447442665384839011854807989646136386616422775531617440421015352283118085089261905247817743098647500580954214590497524674443044407266721925343397377666330654905471891460918602971489277811411833211858377041537226621115703154100125089372888975663092061428672368042531034760328875685176059116512614420348928543175924594515590948484178903266131240042831503893021208637966476124661249449484373084362407080349825863019349880290273847701030186560017986287889726398797736138596029689930324350947390218805056000000630150278940619117658129712763107388360641304782096842337380919829836982908563630781051433059113613324880576019082381283544768320276318775833481176921729226269645761785972499345625458558384728007222734690361213862850470708770050182597241212674684243642172498418564024227374216425339009330965847977319129869155402898255748712081314810730138860509416222726427146146490943248452591875478725784978614325109458710931169958377435022419410577719958335579789010993251883978639818534687474752023859615445707294277135859353017956357497439006804456807341751116547354884338690486297921610057647343574041344256099676611600175496593216777304091853358640834003927857655537418344376115048952906195656998507328637110317990065409155189881945505823687011575327579462539510956832629266654092455605218697492134018741275475363321448043772840199562156070266192595968863353503046400862222117502469259097075736759470642921522474925989716060589161288372700436610956728140889002945300740931740561904103201542913888506440714851738837614705624636505540295598229847101554356414410359885940575086586531854032161738266603860527658926507662044806857092552432334835250931502709239337903337555135554740504303003487891460488229758973521073650439910663024994836810292857767170053933336090934569918948555356954374850607336585439106866787555837594484038173637666871065972083163305053145788112320348993696621303140116442978232361465133580737213595014259144891617404384915121494065800508157571888327953585965443242147849408329975713532199884387757995475210687443157494716579067612119736059304062911714121280875241972119280371993492824488445180491402401410764882599335275540526440456228861537976402713423290257643032453370100568094107346602423362710151310987649516377952859006430592323949029521190491900465595918533759532807448742008244862031630652515688228892433020078007857635850015886868244151931084929899116979940785085648398375886385648122101226804603212561148814571238305570876665525795843335600491121609365951941052383946596442603632164144812913797865504861525202822548628198048137044323396502769720073444230232421324191274744272106968942994092273439426452153967785498871100717891643569249867743708538870296726133760407537820830088053262538323730308495057443716289819984198212755028003099738402526106739403216183970122319469932182118380844165649227479583729073662421295327815379713493773005336646365128540226984194302549392573631848273815534744952834318398361903713949282839445333290949122327377846009839921802322631408251853009641736704887917962786133677256526913206845470746789649555315439095919943416051533522165402212834865479224520194135405170465231940938730957404037200545933006039373840026207412488428411527637500952017534596828115756002027178797495721589400983447789963160197868493521140333685201752260203766946965750051162025915444848328103122082569355509194841708503292446928560457934851603880068743918939112968290533349986552504515398486387218521498283155913709849783191813279197242559805329425081312717404929579652926811073764213120394669036762496300909422512652290216940334845736371599812143862208483142092343229221391962067144426900294667380019383332458522693117411168890066195849274336511460320878097725769424352295006128338856890114633380724503976026280129381822472868263369554619051185194133147148449473880898634240045069302161574479674097595804958257874502963185836309497921763189006804278732273246175009381347458989532701589335116897983779083970023821880862679712477193406638756984527585621030022797123499726608368663945440373251526040072668232089315234878766537560278759181447275248389704071934118503969887042988735990873899270898866208191522816311041319408758082222171616007929955385216710543991152628169819790228772007650688917054888599903352649736245711034138274837627917789664069215060405175905825904862291418209245695419666051408715247631996018953627308068930635792442555320186141898587729054963326196874835229988256415909163266142817709174181544780856981682200079184461894608443757166404010517237753915490670696214570496298504613274290866931396454745677991376549086550144947761656034909658016635438929757948970496695873654271576700248072553372476359778963775563909647379982100196171552557837907947620380226950580321401659408864526845676678764333546064822916572395646074418235675271588585515294036712004846072500813035119948347197374538919903017502937907150623713979107730549585075786875498277422872081519024235946993816660713910296586821960194466341539459190278196188068043293369296879106764264605772231262994442836324675940813446817696731304659386100203718258496429661084540874248631889040396059752126270131889851596171541064308175797107986755774809416814812308549841196233519809556635270271928108332279130735187036621954952814061793633462455872273966496232134633794844934944350184651015101661452449809590845499473711541006815351258959020046210346425978260440171326033885242236751076111144319733003497351799678531306782628148188187369085525648312985423808513207411817227329227775591420234397334581665661192037607118177030518083297822309321605209242774490904668253451508347828128741924698174246912339455418442287567750800393177293485570740859139929886226096392765718761771344643317020198102739865038877850762953269147962314373411444136924520704388327987321536504079659641022429781236168804650920029472078127459318596732380274890093465984018186970329030000986427618510726312665752444546849878389595549104539759363203400354354152682866324695141065932972982384257486811194445675897151471304638265851058761315124771152911661808288473502763188529286216505373292213585215934490831829865455857663576960067003641080576788238781781169943363576751361234397929186868755406624253602328015113003502094545336885944544055739266748004162372150481704035651475788263395871045759111888348547690304268797311301054579395865692278226516829667202618604541881846691771252994359192226110722621052668380195688847459175546310675375887819503391900059211168303959289067092565424295965282251877941593876936341273127744026564185274143056457908946446008644913753410977614709551944594256813922264491020046309207235026540376152879680167081537794329299044341053730774382045912485156371041265609726609693258026324849174220798906310020335009772994732388670168649109031397958805287105890191428987088996396591787439609338600268925696812723598989449526584477748861991363352090933942781115249058481073694398253312886849530716402194809342457042133654293965502517942185397734908712837817225351081762561458893699133680208493766036418161028703869530228090615451940225633780830729230142986215119801095941589925956508527909875538552888902765782076983827944093292369272460119528640796193661117913632793949906164239769255753231669204425271882460156796328874488691734365776197039917611413977998135805538173584314406690750126589901159749018756143570320503740101843427986488774681691417369756989050665468929893795652467084868778571511750838671111658388780288203989078009154534167937081598759069611366016598426931361479107621776686976676972221780788508941480348005897928553258421818267030330425329017991322950426547599363131330563079706020630406679145826167181640668878030890503342090983305129663562867789787646892242506472050895823482345442376345167645040483021616018923205177745172111647474910238746540727571495642203662778843662455762876239635282068070786992125825260989467938399540287935636587178292564499554985381991715760312825877710335747947866018388248461914355336962601524195606174315155790067189107020233019814198202007044309772817533996759767778839124835480283009498460340983241487803813083202973259566704833337149206707003216445506826390285810381137235063352418844793781752158298381702979258133009126812811180643898613667964488529374644234078811149839362749605557918263669682886026699360226303920844720203592167985622837154748045956959312403864463926256282473034277318823484149980440315405356583264829869412931244553466546634574176417314680310773408497857002508542290796266994242066348440094399174567924994497211572277966624627108262884582793027184394646858000507447852578002056553853480952552366924354206695218053983725466534625839852596394032190546445217696969331922433083511177765809164837719555800536138110107004231744510226031893594273532760790404057293504915166305783345801395054101369953572672218163997964212472540192484715307696731338099910511503752866594561529629349903389962246588304354856389985994041925629535193458768815872174662885784058618128072935963497157751527480186532670988499078285988842459737641863732377584929622427772023448487904242304877252875998388748109402032365813144431073764800123426492036543384544924095256901520198460932701914953001812281054902584285333480134088495856763656792602052816266802705150144337684964944660174378634504596828296528579627951308486367211254981428260777022241406811581047500866078267085713425288170295695041957447977790076015562440944770459482772691073647768964496503617015990266619327620171093316812287064241260929279386714415895881774995092180127802914794982916934377255230304619534010597108491443127222817306497838473926683001953460739708826217861930180321574928576461828568836558607035838528542934058014519207303793059728930091726466125590979774825241066811508734224605147849161456096080218827269244334816907676629802365445076620385593772707391065440136087541107623268131568703531643363058607361628170234374607667304934610951536479608152550667019436503077116145567538438530049142721038197891551947769081642865572940435258754144351362123907774805468000194803563390771438952600400795235439355235809232652863811509427767534379009699746768078790802961748867574640223163004322859277816959971919121042820834417347808385876175493127130134335508068348489908465431067725150448755063812130133038939830048202615063320466226428190330446209660100750218856196818263976357299284206076942906353994133557633231016108195043467913542397834974266736312575405423289866419723763649481311285677594378377557629515736809562700025748649714403512539791165401103261379990618794431598244202132409848622449303872489719517813719733969085427692799964507184796528222725750988224953055763575795616292511979762473094458317403776786512955845116024012024515683584739866658310511260806266775697819910921290797987494751196137345638826565605093885535624302607011767950085032310935717108860828282589687683660512420315800315371200970377857564542218599186560542897999630554437935958782605462451353834850073435267539414030579797817271207198093175018663843166677062815057745624766716724830303057944068143974210038561561421430823598057664785622617235340748884054575287111869656483069401971176982291047961402438073930545549570444731664099270850641366711226667313758567142907456129951635040319179672955911150965359822752798581787934330710770960005215940173723659795473194359089126099288279237437897104418992677826877677193413517820624286026930838498237740015055412109397220143347877217184464015479122815203597695558256835956608545012803287212963765757084407113946148759009766894232954258231701587491145317252018459937264685632370774375828006781444717674911463390567492323575980693667300516503161103465751996315257751408575721521795397965516353837823422224729637925664382475363557472149417977332508552208735655827860133807981256133526781644518574670702359944001138721234344296330380020542611662918179576121529348154261409763361621938883336071298546201396802232463593899933690621973651871453157817332049239049821520582590075187591466618415243837900458343489270743970034376543480497114184800133398289703686878130984003435117841440397733075169949167856933495469721553169785761898416877658824559239764786104025852000149852471053410138147831104517391939486093112793339496343466447088769556455642438079039038193950356219064963680309742088142980972114825757002153954018919262009657665324360432319196921109354329519823380291510205700336443191218911233239256807856771294976992693760498113331360285178168500115440422457413039854091319228630921284602522031195827748128248347578530681541137863397488041312089278611204381156751114779117299804253135514645666693807040349781066320202802766105023811080797695164016999349294278777144246815735449340949403825473236020075548888348592350864456880803253831259244313295316925275476725425586573830802229594664346075414293410857267080145638085067900027691699115670535797512811297580851451843339030646661037182286629845377245218751606067506292098849256993079886778554368187899666084265504107209084488124385206822510373706035110444894486566934775840797024111016204889130826956174847602576067389525581659299700321513783606826934522572986595099200060269635800468863302095140278844050729596938992686081500494716097670763195637027710229441255972897398479249714405386419747239807981646867439947164543187526888068382751850498076206111822237664403967105348960398775871485495443873070733660383834432544442473084130857096246272732261381882856391286431784686991006271594349023097871451176266921894996856861222364114375812173804198680672526530200584296077861970157427715834012485538398937893474265166574235330667448200764511991403554321044415903855594029038552261380530162980207553067191654694611817955884063566234905008950547594763615362193739951210061166109492217218700500703304506675551406451542986443828811449651752650437795616240046941463021018217023038663286622115228268675011712933639029658490755623489375710681000519300389634439215264386666711808788738034210813581921261118098327774554431523172052223354175694516568053178341035186255606325878691072608869874769581686399676683483405179618435269498811454300322528214247899472060597595999041824603162911762650416019307172298363869384501454421572616449331561385933965530201271575938300616277941894204628386989573576787847199271836282499465248964952029665025453726411788109325727136691612830941357343461516518021082548538018230713685195525602770439846149871456447131549905340449198180628924392739534700652570556423098229827579803824262039145349619954154960821944288300917466177552994967764184599552925266139375352400968433239209376013376790835784098007810619128642740435032981462249299038433171530281044687118617812732629212242622775507033355329229538023321767765264286462818878619962904398933374157801992100270356903568883558180741730805900550993337282937455346171262876760854982153292055736343004978924155494767716234406648717622901192131144350757558999496245550202406547100160844392084768458585599856970710954797903295410888598005762776251782882572361025410558917368133906119590674180911280164063653697912818794800238109084211840293130060755190876665936345227200101419231451102547958443514988142616562579328595362246427220427650017700011992843002092997893592309708347061337309223925273290984480051258856668016161529875757404585490946977620683924578715150329889410008734557105399488665167888562898226924286559726025609431106764919157334137386561640785345317733237887258212630264935972666297644830703006471026837299409374185632552436152376350038972200174674915352433019154971265459979574473853402140154620263763181395466791943904737821728818172249993902108912139603441555295447451529540427451595180317657796064150861747671394498810249100426557484846343907520830728757543033956174726756725129880321333283785117870534383343848141952977989931134865476591481269284930353850640213147157389598232796866094935867504598335064758817690408037172676575145962944974214592226030570596355588200169125996810076052036008304841582217229071832186551077785635203112599409106782791068243414928463929433131958079042612041795620756839087399292606188753626303469725357081033684826680036724454096146505692715827291190095195098643403236720015866068952046604999503535792767882931482050060971831274173749432642506973611909802925766858832295226637399174196765450927692988985327035267712344172537887493286626758532582047736961034459319969498158086621181274002123092926860452699437044308344809797592718790505257223755774957237302876698213983332460322810090845372312107429367339049553510224715619905321138833827433460953347562794779286180000607303760306361008766361592578425039173863656433114685154919624908311523734681844601469402525140715559515820786990021875035350343623945189027487597635262264898043895632326884044172595546507828531380446112059531710559635959212369776303076610990587725555978030308227169533703597575022009099576619175280014994357716192972177825555805124922283051249356296974093441080263959278111309920759875503840967889007709565740476127100845709218374107680053641458312002136885826286775055305820891448112103592169281394142305352141385098317399059012181926875836078618411641844299716573129706624588719914972007894211287247103945853776032179650909645226244452446747177935052699159691800342174273174541208962824036864220644014927747745859421030749641337403130759078956107490939042978825158509540229243588471054987079213682190479120986680628323828619893192396670392836184846739834807245714329072218618598256249086416296163760465197977791238383560047547560435930882546803215836968542020975454435833392772560628131028812901473991996149665059799801048406749084379156878886437735763994958479227226399905460270370590428573098188592986286620233351477727252390454467430279183018376098690656321244833743194140798616742910906625176612981381012401728305027296694588992413047859213894439865534865642830642039438516349748242661674688030289937416792529490412302045153299974605909752822572032862526959146961734301730088702327404446779720398378662867593867220696969328284119078117478768569437511431066051047563979167853910814411282126934383887419712247894117209530643413135852380764200141010682246490797414073024594233636759122935903886555105054917402430056735337505030583703245432569477999617403203432615913405368975746642844723389034515697357427690129710719497193490810690493377303578440663712657919549839840814309856110200936316710134333090145779479532939058190036936261789245024465411937692278743794008992177899465437067469476912988166418009196466355227826920442927443201148276226631621250737299417150544333126507280988850566100738987317656571314538834910737293045812548507769626495513636275299806214974807226903291840382443722907155489449846040913245894906873860549531586039652185969359710636463955178848692372143685181367464124819003944200926085646442417769089504427114813266714737997852370123640346388632644881742698723845511531445759521954034896616075249400216834487106020434793710015818409385738986762374089521484899686690980119449076333749530436887828354251507122111649548533655881105617753487379868088727575597069316984316632853557211373002973012784250489478736426196247150553735721912482770813724608425399147176527333426631830902487194627273688828287833973121670875257894597335407112675532441958219038310721383887418493485484685487701786448358660163272694755412436420617959069467695568946914463779377841368313166279432910245402051932187252939529332811711614706234397444177797324230521644761971242793891533812546775604638952003699148243928500253183291608241553200541411428481610452165149869755788677070198108818212156204157232061272428946156187717063279951893095888459590067997146775562599990788079176927530694956770785396962017265846856842788864333640089436089440610077975485778165627854508172060233470412520178682687739276178430922586132056303112269186352817049361554098324740698336053576662134661170990863836803280760152484654419435429838117640531477679614677812377995371400014151236757425300153618461039113289025206818552236938661350066418652275961358545683505448971490010244732691284238176989991269553052215149692265745767808212326014578922215641942671958515147832812563896433829200790645913602255770382520612126163133430285080701035361832455988946345168020112953227767238797821829496564572018065770293929105809102161247662659627583732378654316178059989230482377164811274790067042208384712319040887483007131942235737311900855233231706973810476230205234191378980470398752157744028601295573039939735595109041110070175569268986604481475296248744452838623204784139876750972982281945346291307968737751855770639737189784467954236016379791491504418043032768070539895566264954742931660929970733275150119700605895234498434559197727054546521622257645121373119885188789892503755752744948288005294896133122296404496868789432736432614457094909527004289640114985191383019028997921962447050381249099464678214820318258385817666756104988602588814329322475090226197322117173766586072339293943712930150507750410823079097452282725568297923859508238245392398830173553053094626628639992942284703434050052194227039150348424875539984324240886303340050442182482461870429261948890645681100168767746870077781537916730661316475229919351704466163134000198202475053499838568395198469693014210750173106999692599603352377461220008193305471871055295193550941432403753262355029608300455289996212176333284231167029828841178000911380132034548512707977566538944993747223189059459311209600513317587238090977557824487302329954800716829393594283381050905792602677881685824259447358732386569291067084025482373362260849922222936341898406388881749929717893597416164726192109203021733426187516001353827060862982860331398202833055836880524056928910240729017685087417782399890155649040566849450880718446082208683322242781011729391185129016433382663472148369374112613313260045215925259206276055352262401108040750110791940494421545109538820987086049471613564498039635626225969244485828951415411815642447735525876288074191693673638206762719322581168065479372613486478639628671113008745712182872638522907721751719149222451411778518093185596408350675848309352242209745917311992771419071960633927737095538054048272466013866536912313943649314671447463232573389228558618488134617033038126283944447428818141302333179497214801295448609576884606636590429617355977855528220230593068443572346521107923877554760483465388343110430897927101157860422578352946440481929956056841586417227757105681202388034535650899201124447652813851734846019214843916642077462136816267270150683385502089486599702746382464070769488535435768039728218502335753724601069801460660763144711551381990945802844414389297944459251986152097565562687730750075531036477478835996490776486975013325093703084225106460955185395582813547714005807187150938973651464395651677624666634822041046653698495317717983996938017863526309525098284587717380111913832365749660649035132583830479254925322968380264472514620899463718574873337728078980627102218899111969737091447845509862980407395159491722460862165318355547389221803078886489056821113247631977625625442441786556553443724143058033676972709505003985502229057513250507160850620941256411010942025095768199512037439892855563349432070704825612747499613927490048917891204140034912627559208864034831539374153617410407509962650931538695972259260882926095165435392302763139149787127522098490712927477366187108613503115609118162404226148833704559524926223219857968330809437533333542066824774456321392248189039952711657248135094146948593214435240590454360601071693810745588399673111780346658307499353386698117238228267305333536082876029774046109114870586221833562500911270147093211981724967933010589438597384885879141888355885281117377256759399232388154410832695222875555209198009784918301874613215245960773232438143641157668236317501035400983048078043566861769192124953893196093171244869910978955955497264136377707583345945984594098471384458926583901479768413039007254479409530134104942453591526673414090832571285995536265839811808097701055878445299590800263004920570250424098906474793137414982400140939785863862373517598758826952272768902142009265678932720945379286855678320912516487015546263383934296223525192946922220523234858312997858701016366742099354446552347456276174515073279404665314894000100063550288693015785114248446204618750443418553200747647370489684491728086900446289713760831693107048286526900007015877335811878715082792350592230732940965576573777152879346223383477937616165686458989681270756473473775970993929305349662419924235911759435976608180990652236095629459523994862610477588314335608883809524936476329650363834116781518584537984900179311024647499648526786892760215213527927858384573759982335995865177283336373535536789208985446211359869497170246911106017337929566808635425292211330021586048052329943271257082413430870605054915856465392684361445544497372235966680637719988754984366494870487758197163938524756813264718704183268431010909759933620539691549589351338897120489235697148737042423302644106854073835440872080919503510864417232297523801793195739380745777890715880835200211437588127838480709737253351636238456323761681832381166059775756510433042705069913368932971481222400354221352480571000141034236086217252288941951028184477071720933563085899912982283136173594905761632144226758922653103662872067053521565362640424873454311841245318205862989960325574808942166988040888190119106767090767061243216004913332533402650795429925943291432699646160510949156797197168726613574127123918780372536976448305955454938603695276381055448755286132645306703900111441763471031288081043866599345482918101499464433666992396764139700565304120659397219454425474357068507869757013546805901912616043986301728439955013879953108037344765010950223888551189689506072565480013991974611737630651703019744414115264545111583970050350281536889026890297225526350515249416223899624552738962199646320970083587373773513068557254722825687062054168255155123083412142722130114059634217723064155431296040445501974670688210493873402064285400170449523177130724071306805724202356243389450872336492394682017679781675908485013174040556732815898719738676760373735396012070988617696721724626347756681773823761144424626804898832047913631647710784601379380834219714280964144555902391591528163236281882127407575563507144267095281588715478953751626395323455125057146838034714564884456265235349547255198415740614576800351973850222329892682996207413574579211911218897140648349093661380166699338225686819578106471836246198632950942974936868818803628450510948159776853963080350057866642727945504483090444849035443274957467870266441755394978659563189801088509982225793996247271195108085261927615798767793722562679185484813314079366986538610566344505479349452863460159959244389039053107371676124544616231271339404753563653734658287831169610896414855891644846177499577658650286161142525692023561198779304575164557485386218165223613131726755711554557418516639866002002152747255015022744061478578379549928031341541682801141368769206848888546414203831229559659939024166884633783969474441981879488817022172672145016131027203226260793596908607580846008185634551082717675926542372169892892616664833995844452991453265837375507422140240987632239593876034124507939927412534365002103870872081952841004559050998555189158124897330325649768778742481909650401691150443482080180724613307008227260213104066509664318810311374262232270092100114291258688334231997522707152974109220268096461905330218275787211068052077416894541990569016744283788938196976622871191624419879490031186155156933492784264248966713953675284079898868477184833651033845234445018811712306840727566570866137405908528052431905968810590485081258060925828629286680469308860586897750797250844451866981291459890906533145266746891681591360201222922977428483091100234030255136691344729991949305921421635066398618023464678570677980331083364590352375904679062272374479503818402298310261701033815981685372935032549925289387289203340125239103246191057710140254357030184851032720540525157538357896170373425186826242231293068357891360451863326676799513330684362423163541341135275636279617588636515542707208348908305335624401783654493367207672003804974586354619137941167994711876989046443981694375032053775549948700829491172083809911463501926439453310898745555528925900352289108043830995287711376052875650923908560306916952455865275537853711752219480826063465902550419045823465598988951157078054710708661193228521750813520718226253982884192798946248904861592716851036113298275530192541079652417701237088016798770478885398378795489156466157458654680474250453873257459526313083247138565624336739659830055222871501869261200791720199939309781251362638524797649255822699553404029849863324741776792256403591683506380929322132817258458232162721204809777766431657029163888698085559764162918396491646419533980844086175689425713411848486863647081695402946736961123842953078020600265825442111980541456930893037089403564227908483445541304014599506428927426226503347294700183286804930922366317575777823361308471855635053696958195928872953519187657522709228194688083499702141859370613567706498758783997021518556323786947709537390090796600763423613551845609841343406516240812741757224633981816967550065626772345610342855004226607580271927887133569364704590370062108584634492551621568438663573166504160252338619192056225246939383823812331108405381948350248516750330488824000499599854103944957096562265058987737498972235764295262032639830532410824846364626701873076359422730175928048133074260234167231162850669733460441772148984745617449638569184642474946113726389297751926829533087320203586523289738090273052916386380676187809546038566204243913655007111187793310786797987708912293519155106104556139015342454484591193053065820866820196734381064503463107862641556000235378803977805048020235802027548586474252007293906524725622453587565723479018380469828867639063342486889426035929752961851420672761663677946226813412717678819230823219890949421941410075409899418270642948072369389363024885988721088163359053154366123834561982460202105722963478076759535991716603221618651167445099765495076858456222560394776101275329575208350514746887016377172825023611402420492292828055835402015315050414886918826176279138120603437998123150267990543387128374881541703521579434927641170717805344024259567278575587991735150103050833365705480594525641113925138669901206791986425099227947469098358975437238292214294347015730132636310197032711091531455348451139982278205659699984180268903412977602482962864361256996018721698113567999922767185939630425174198720096882905182018842823103769656037718052619923637856838486939835394512162357068872600571534495849123700604711783139303940913891115474876274380167738576452627300807121063479994746677963629425083641372314675745109998446227911511586506107123085586917924937872089785846931404050663185527322786769069634995799036127926176230683467976863722624879545314320365471225310764249128185404265457809898302870806087138052578745993814700903290788973449860264324836343170333725067349491933205921482769215353984310012299356856480497343332046144432617462421859254614373564368901261074705965269769019553292302810004652877192281751553805270835931490908775746253217047872671148726576277285642775236911511435124914259958613540409156366193751953634101371788481976187082176980181565981365207202707735743191402868388738780553226172181655249880896662621000026784730647466255862347508757355475186155033492989085995553599798000499409406577902727546607760142661697578600975325398763842230793932324121886053609562946422415742938580302110922328078398917061717379142455118371573172794454618002167931852201447489397029126741539129743862174018171803026301679087763602424020480012667886937244159006201201906114333900375363756661320021722300134687592658075181321100129766113154355863307706186480557272992200091606117527645680609689165313913817867876815951377118753035901339239390084320701359724831529335762032609398438675835581400844889421550799677504328360507618682393244015862406949460862519117359404545180926930936399324844407455715830304595773533868425420065388215022734061561944944566562122048262686291027033438795109492705608057730028963335369048340268153765454814883167239745539652525031658933704596203257142377788113924019105564920632913048949050150957774482856932240584528138775816713677339312312637672929467766827494458924021036810826296614719540998176704831850877166559195251128175106204902471777242504827742682870317938233598628656335573756465874908473420487877728519182754723240803701249927807833237234524699030869394968969958066355315208043442378110734744029372288379937645684887783768054718506441616396789805273227045934167544863978743565321035346024552012078878395269571814251149675100952546497416121822392999029599765643107970095489463860678488766447461529628050584976126111036555196825294752371797410477833518518451183579756369736707254450349323853941004906301600862240940158227029384362771225438313440820955426287723621758273023687544154352212948149775693653439617134005618721640808949440488968194435244965772313066979125884829056080199329468495055878979887285815968463516209350867362746828046320640960569327920915344416074268422707164165783133897307788016813798532723928605033526609971403401284351887150132838210002458852577351218792129153708408206140152804333937098813481991912209519047463244918003229928249147279400139120172538371864590223451505196596405496537681043353572941938680442234584241689724810859457828622966322850746586584933761244055360738366582365740902077712271703037354373379291724313897936382342158778487035761858981374490345446848936042522064734800165958761977873705294139383789024066115520090324653490229663300272396427221027327405700603875441547547472405241372215412971456586682117443328264122673616885849858604290236035576738137867838347135690730446699994429172729494779086595772826030185675939592756198231111830045989853902630928563641813813900045783200126838908018561229335593484630568179218554880947475629969932638713811467481675333086475170041722980397481428182134477696531418475660574208827943859625543310937687333908950775353185453340063320881450316855309681654209113515679682219307240684466377195637335218657007295987629046588958941112690017373341446718535440683313353814484618880285289593137016493713283000514692392986342052346825589567479595571012704885651017640857301674226893729923969968510156340548903325040278936449907499402202903128466911707251222469549392686005015468624354432990723325730529406760896735822059632907079748610926907337035437783096010035726448285787658438638599795028681025853255672560829150176440014515294045515173099281582211652509533647080431206196014397148102901379963649428724552889569698345876227583547777953950717321404294549788132563125916652635110953406123334654186257928701828562898418056061876645471473710340125460077061293476522587619321304556459527383160131679679929371272619003878416118820385429189156470994591210074616404952147996590732063433462480734363714896938512701875717974618069292746570777881620554420441653831462655319777097827199504011868384373934499474025857160956718195116667210705914226631851641064364073292030045703887045266775282398813650430782878714104068361098178643823810455962368541660429813532096110354781451536479299967375403203249773068578703443769194536783856477895723317936161367977353562683039107438579377992004489378242337348338702752728246962398554803085245428484602662270389686730693527547231365664078885614326991541813919357660016504459703823645740571710191159151685301213782220142204312462825907604210544886585529145974807159295754014136406585435569333142001824032321650711168014679003696298546650289651048831705369964262581362170363961745599671177328214768518091754716041629134285454370455236965603237740976986848255028830318929274635224439853195311209036184306862961376199753065187976124242533136877215649894256413525599875952269632449712897719643913169582604456033691157459940884036452420476921008181541505465238414447660750945700274931135993996545724526666839449697258276786642958941970227726571341528885205221642060571267286365951064287329491607151316186759331291531932046596747117824306841581173875683255259552741690809136488134812214821855741381840959852261112273507488288598752793418501400999879161466499248343715444376520157362096230228491442567892797476819932988811024607259741367654190697268773928338369831005548810213912570410990642194157370988138118335420246584387956058424253338952976256315816946241933556342485851934621057963009568922315101095399937944478620211151941825787517974288639693582181361423255362967042311842379559773069292546809423818780710177678287286269047331999262665920613350759507578930788149501369670742794001117640476275324331550147560358603339858968285107393923975603173829029793604130596464257700760929310634517986011235316409645705646171696570431249062981088651369690180595371890887912182165369241672793749175347365193442350183101880554575336353688367955730899200920344893293810183721506647123292299453756616948758329021712922790318334471266289295466154524946164628373509967046638797670455354978551445221866861393618413493803476107158981573150497135891853799538579033692334323138781171638579793231530238296841370495475825261823098488410510347902686183973369189165340286790173311613305834436868146019747391841608650371865698077276217540285748865733886473746717038708689109774516212092068751270348040442919025254626318681887073105431688245645360017591444270256335349667578336744678581863392078419528653864417220661109994474006787796553742729837624643610823062113005292294738481773513708295627604449324701832544842835333204899440454967933868793461986593665392663195152327660665896720287321171833363552124463787367549696014677745914079124286654527185932820052697866002537448792103961068072373067983929571695112733253606680269589338162832571980720163638565124994855638868879192437060719894483414013161862552327889559928926873368160795512231472010824947192385492675913830250601960945047292152877541944301288874973323813554113763477892737398863711893282096681171771306334498727694386630119816399249912851406126365481680976221962874256784756760103405292268925422896717250846077932596614602336253362319252813575451406137504939103989300632537877196278121773654606444389173562852125476557670178369768843811383613556750141360496706921320977732830504283313225661711258134921492256682961677372088997369093663479631991969966167666249779952266103619284814883458669736465979493197333737348636781304937467318168081405219660180836339697288651028122951607473486714774493555296109601368145543121712699272039923223066502833353160555333342297612306586171167661968393037473600521432209153181759574932342146988697136833223278939989016777090517997673101482525043672926628810257401025163798638828940663367625060326359125797144881724266200469698365328063315283755785224167922294827010852139506654687916325317500127924055106450454424002593322824288410302862074660648022313397982517879410019605529687335833307188397594163672604181188211400038932788108125318410658143789998729229803367968062215423315192133941304655950284631609825544172916321849158665828278244151497068626959751588332966334644466582013175528895120804572746393534182210703176407649112586903795078727380227741727877611070116807225626402405188816065587647836032924797316484695654630486413719454685800775089307704107929233685400679655436380613071004174379228071740095892046142320246049425734042637057348568092824009908434302331169909448165895554825781135287960240447028835006258750876943048122881785865793690496829217190243339567870385100826214945492832671379655766939717788492601277500324052408362260170979545538835492034875420472682163800144849594228689819503638468489186114508782871517402968439323730205051475955916315521458371748511611773272959543267155602060960369653003399733047642314716154797167147738008050360278254364334552838128752496763710977327961317056312938426570304308985282696594658444508105560322602394844911249103114552627001326379900182361690795642249817444779463454498484963884768802467742325987989532682657528435453959339557418489876019117036038681988746070821551139120826704633294938137773895312543255306657783230670407183710903122071011235094143537428868538913015306203281562082746507737491562204893123605751915487221075043431465703091316168892567046998475375957225300535347952896912637243932707307162211513417563447520271669353046163976015745049352436772408650326362060953526089077115787381667917196411238832274546642658274413992861827628248307988424140436468533548641421841246924729212598840801004631254740497049320828195464382511795519007564980413380834834679321057910251154923376262989216593307259454722867238785197997111379453650105722569119900618698176961469913848684156875984365778264183457080798340763550865338079062659209510834396278806493895870121499347737884861479811780606751994188496721240688592281742846664412075802859165725637729401296890105074599482052752349200863334099974829424985391780288910389046514184128841765739745464988747400189424674298958528594063570102665016705576826348571437129281999139015819220510414868995807460463357481038598080812800401834387866619975172396866563784479942244760090738336410719403680249734776119711613865911954481889981760337257641941478599877178065687422652290637506863956584065153261660573059903676847571397037468435175315064980631552931548160960338974111259766548662410036418528537093309029146001469934411821028854611507950673354162813410991539498627277333630900756333862157168205398847591945302392335679997434215490674752608318224935286826032087524637356378396229224760988982879085997427757473861567492011045179919303530985686647872545305626242941164166414769769457059538055336743959930255672442890297503782724899613902896570728208226477757799361994036406008940280783207904669855300508076541764284004224627218781796215530931713533227227927218921442229364593501619488947676098048002516128052416326826012329889170680150231211290515437816179895145340379675180883610927318459437336672943703008068679049773527904069134423174223844573494733602726057844590404681710906112914607041724600658563766218336325199338339998541343860358142171581685629620430104000195945045285392502610782413720907903725553423860972006272953170991446111533357603348012055997150104699190448358487543983230368953368426596707130670651385498968278644825964432247316377341162487395590057924830971790679705732863434385349005104350747472997823656417523505906192953622551531347095309642719712035788523174488029379557763980284932190560701593549258275661694753142599584108863820342931441870704428543783321669415793509220496369843242011484042425336733532670108633689048609173717271903167576762681374229820549527963370558098431756616020261268556647981970939753977257061111071740216787919305693354159234739863771655488525649529482462896635622777738450744283351955807630341661979733579563809272257047204603799263856584643446193024044730642641220546317761677791370700349243767155457965877834353411495076217699130666990054518163001702259226489411584888326760118499015022618098350155908556380205857926874481099063247884668945937201018168046673203438070645718318958401195982458436865802883591755941245522421618478962911385642279586425749277028374852799607920370892621891401651633912726773704371193758525800376610912344200720321837233159149242218293179293867336378731592433956491933065595566933291111662078620403707189607811287981245517240013796015400862444554384251946850042113082259859799426631907828047548616845601655137713747271076388887957883332384638782660865110997082414776287160591895838265006840420376952286309014214034496257747859337170921971540447524795510943205562096335516051013406473594913236231673288305248706629559873898961013529491895449918936455325230229184174378514408323679416688888114446873397496710832880108887621836761954356941333455214698963603245540289955568283916854971049855560130235755037769386223374841968263336416148721893674413323562048138563628286885853764779859900856267156532686496365452190916113690665136982649983483281140095546782934814469603017617839413788993038669170474317683596964363189811954498291525533967280302291920198039485069887321273106627771255520311457754717845791626323512211626549180482671713141241709254172914034963972831680926693005730181349424378060929987995969562460705600762273724431125650600369951420218764313484280194068862584791641151917437113867212256589856631823888393670862045663711027785066869985041478913160584741751664246306692863109485216124376525734510268314683534759332066417127488874341596082431420834248433597874586061101744164381123921405815103549447927032609416163402197517816218001595230431018459003688420724647963200384729128142984099699506534761718207772128693299124893985333920179267917013206238603381542578568447842364620325471561152826696201335038624096197506612104307543906198434664397012622167998531336406705431445792044022864242985086501951715129507328430025948824898013486027807671141442910073288087923722419830670919565824885423220376126364054279248457397799125504011761920737171939543780683359276081009892749699387856696334113207597070575553563091439612494730777152571196094319038505548477179476724201681094993629783900464846225382673318570466701529377798454614377750152777646522231807891009224585400498629469327049249813454239041517690448238654953410153686990826337038913855497689800613078471029667035455131067959407746391273993418680752012558337514255104146724782020222610425582576527033730498345723379145807676752590791552717951592900274204104052661439840335699467133228947874478273694015274365481101546536880197964880113967465604208376182548842242161965797891316666564312704333109862673198673908017825876839786209863230661552410898672629989294776791172531157829970146839241511051025904507235721624300228297921785419702213563293104531204008083600121197751934092944757411278744204574228220058717891637320132473802187138667427831970912217549890423458747014087426433085115796255805637511141947621357251029560354899340939896152041624590039443742120849329863250209492003914705297074817567982341347215353354668308738574885208075205828888860189322996259866498313600076378439640768624278985460533535376510221930882996241841977032766034426182546282275725284496465587833902147367218606232680061511612073927849073164100229068273580434364727957042233262224702321194850022594416237356169219036909666871192913195770335144934534103556759701506607744244871213436224829965599378167953412699148638797781220191971440458653876742759231779210788983754493591645733237151029476365783508229489442630255119069690694558760019951532813710147232619130069466305320679470703997511528351615270458012878334786118970203620581812026393615787213454177272309470389048653669389570645294904194693494320230716116859392822527753947018463912114007142376386601919659584409994893947177373432830303025021606968446838572475340677217925089337919408229126175676659666943820031381908793473050614436130408665317746222511217408079436893776967118079087315984498325579144798537328090293822640453755409032087267775550194569615940868594020962615638967627856645518324496817889983457906919065560388655041895276469985095317654152522679889020211950110473913113258782058793051263330919575768992427629070308791499728442876639404524705693750989443608258738873528090700810442432717795622674067598542285778028471556444999552674699266420295082970804929041362691181029281951365659237359589251737346496309632184829597119974695048256656133578990435564638648753758441288919514980755711692369255549771050625082326884795720220057035585455084645939760991891716820693670191079500525633292918636189727537518693847411814585476419985788447431296961571105866261496271396762170706126479362899536855675698608435424606206427602308051708002852149087363977223285776393568226588634489095450279223752368996875994196992279912267056373699779086162010034201190384940506108613816635059609569892487189625074873700048601761938994970625039537615556496128678740143109931488948242987321330354327416930350060606664511072126412844237310668327247086990310210413165457300276680180889660992752403938572595953072803397044815453485920070545951389056235349070279896193338841483730966784954969534287654672006088549544415991290520908841353292062110999042727577104555808189370612370926651655592732201713066852540230733660925325581905968161453431502782768237115118795146284729685298590846628346015072213175852066108029830325037812395121661851191351022851997852340156904969535338313783850643749050556822989114878577528774271043325404252854217686474424089628114041381561172631170123629211137457916681256457813685263807653818194794821632770462582353434413444978637419432796866628182365741615420039485858961605914851127849972389967294692170414874516612032131823853793728733549448428013409762261870212485100208755356841521559649728938839722112472094107628446969124903874111654317047087666026669336770692469650502578463243789286967225534684570920563924054902343016322815591465166493057214915075026909922441406401439880928383774254733722423904896854489354541689791074784979724016350728316141376739779856602663123593391806765549709496959069160480615705934979328090940238748825199683948540608619226641863911433917487281575539218875187383033005125487538114162622750329611354471362799057737850985101682541013243748025806679897649919648563816990421025802081800217040037628608546850281199357489419978104852860720225296061513847349090902784753102875560767461515330163135007734608979377758220016679129781970796680129295055403708907256125712320197925876306038150523379596032087925515340469657308530401165237644854243903165418105646931805357380892569405785276884803946206674011541371013464320251375751764461587476217881358504775518970397652937405789803210794708683271483226100583414917779766560317670523732216499079766439967559206221131786213548188233191457579050085802207976785392845643082705091368155845169140832736442048131957207732799190654949809521435757618414267462146949569896015709772535543505797967288307707106531702101265236220571671188994974628017067274207748668960402840705751300676873900213473540501265568987953936578557667923609327114046659093926839375291285104288710953539947912869318890899783363432245605717554736095425309586721550233358087135240478795946477822226998027935365013870494973001688278965338589727704596570139679865224104144837120889932221960327167796015991357447536188854953343075464747655058800057596341403262035391582375102220115792554043346953113363230003626196681053982206553470780675347090187084356565023350075975539439156871031392300959471708111255151548137574735297518781238230605746408366213009060272512733546018700018452263179085546307370484386596108345618231902316439452142908236676874147553884283025599340406238373648299443893464444104771379524355998749449282774822584218548707974215173152048940957873041154994585392555039703988855750847780640848911090325840324954933884702831214840637338677632653375394126553877267650929938402816432247781197449533249632219356891520977679786337657807643176983086689493730424678052760613934668154375357080139181697081081200586414153398538883173163434772337491708451599981599905678730492888626998686142965367499395101561544570388344071441856432471358669696333995677554003095785210048367476097448441579608965507374923510467497668643004733132474655571503428730633842857837333870500498265030758538772418695357226547476999080244829583348928412040988024166942456101620111583201100896966921496301638776292426347519682260558354549806981108718207752509840190842268763477509473084321584961852889649154182716349467734648238718655206683234307346525991780986882146428150336571978958153064382123242307889604274962620948679844122915249201622379809664863921572087178775463106397448924091208485692775271345662006670610350805583777534389374153041267565384705731776209115081585023286850633836582745891396080093859709504861149075073981395083099966191380482446356955031100446875989447676655199490816402111740550236428396074603577623513398997062598120263624762334308628714789445957845376587630062963330497252813551129304480203922898397686017568691550032840866647406692559757863389705794427727371251735708132850403619374500197225198669234385064701777257889811818092092072267301401870915162450609352360010702686178544418327363882802703233429315864018503303863200054344049813093327427637178008779206689945923861066581464502929120962090790567355389149135256471259678900304415514586490896614164060494311053258360417253132677590480758753723086356165480546776970403911171800683678953787264099128041536115051816543500031581651367465615128528588180783848887890081962645575595678465553278195768218594521931910799477097577834932632876537075935073291056442393104585880504398243978662433092236952684000606358166700479227406472400705151226217726753969192823711139648072108828745165380008322306412826900727732189998563604230835476768471453300113438353526725791999214924084166244143836616533607798078964820028023515019551371175815954571300985836971830997398696948662540013916266428666757792533202037950494778798554052337589078767655371524044778274950815608770551741746403820673621577147149455419057616282320378861226548879713680013197367048238581748827650646812047838258237610014616068406341751962079893591703498346365576718907468458832415850046152098138219430048274819353353033064009085778252192678367987191340690218477082860482479233477736775396319628360310852192734540900198665141509942161216959925348134942328506378953692953649498241536042436719640777215660295230431882250763172892653305137014654444369073162862919094161994720842382312387965433608006633560460276007734348922975988926515124004655952601739638185237642358942480539255632949169599692367964613554378829841496666893691952748157719815224783978538962398071613698332623909471763143867028114493151216753633726019993889937168529202853474183073580714200826181762191327349776832078065702246947969215437178879485220201726932876769717170448870969592815047407165655388467874130377868835709609425973762792629721817962150778008058739999448827991115372388128757576561808028181853715230527407988451247449838005126301173286895598690800021492908012539547512852432417741029516773201510139379530682437367699382789005506039269097625823792884982089555228807063211791520190220709061631168340758512126854285116413488945375795325953859520989435749631564449242007884893650095762861352222524999615547390877068692785618963893844648011838010486453750884360282128180634964152585915034627524738772223919692624171615095414831251408461336237172832124237099280823332873971495878379548620178312063659791195769488141599721826145419463666639837833174791568489388598585887620889635938615835492658651161899998412522594426963069125428915719752032832749634108611043198949589606355171591348983636112290623141195102791561102146128491286772084881041943823957066472700099010224855038153253078203917776588433738467634990255695709249101378019032701514254285253541176930622058172458969145482214140835488042468625636384416067595784158775031903481874123733242286772143154707981803027062258427467769703919315960039847627520771351440737775348347325453086916114668224801369356977730168521766661503582834802655248353939340513406826586404759065107695775794180418263265366434939660014264415999008352731656290711572421024358339814175224015034784348095529102130052622452842862496774561831149250854276834843382099991235649883882274822304771056939377712434585366865594622210868010384108068768143839367043915573884085877628756586168663488661387864888141491557347883835199415141575249117112924262667398374047147777687455317650833247487429323161381528183569719352265494228588851967463816631554372012348729427253023969384478359313977060905492279462281555559911281678447891249979680328811728288748261583103008160710282462958644082528879706635486880072939941481980824579319774509414113924745399517693775054798123857882039008960518164931107512378258421688647431822960291782569800430847953212641846567545906602393161998953624034666128289721806598846277908113368356785698993198315311424871441945902151466870553513343493594259095271617260635700202549497703591486213104416871346311120134400034366383369248782471502590519613375911168654597842374140908006027813930188530227858930888123453140864829851649477713121250923186607555546088482518248706194153337998626576328985530831086162547554986818077039439503659787905317586808894480612972319729839802360591984377383133877464906835630032978814866461122834203598134394632192008741348310291645290342053198603446074850936078992728040880991451278237943981583287712265650635793241818395857301087135471442372746818093238029520419474344294598872711728951507629353402947344278887323700920800544190259254359102390232515446372800948867058051658140988291503064781131801720498678893171519414743302271331598810209681212772252520378375421736232150653607800738995781237677021288542945250500015494394658050763475443719587099894323207388717263819872120949824482945879065148097397615024025705675860710924992996778767933615326954019741432652706231286996815506404858377781395975737539015329606177146428103637369396574079463429123730022477165559635542675796930089044882168687069778649671569188620027613485398321125681153132755042133211462307756719178987249419690019020320722502693497749954775837504788188134587828551888885476086212139672130440672918535324601804288684045745728721062879593802594375131378436503933879283053755740915362507702418818808408125328010331187771821849388237137829863967275560080096562936552279524593363631492836382658948833235508601682822522717767218181013109587771988917310630324271115981669229307773386515500531648227653396188840642935745554321070923379502536257245534389232024162233530176955765011612961782445301426535075506556747687551371132795335084156058949357443985550243800047819151414481614567209679399220297694818859828748535917463067875547511028731743842010886157409023101078184706205711247829230031169532545364762072321400810239835067406477281446584270428528762638397372336618256410601307926704547507194474203223752605547018344963486516602608436232031898462333327890614298135692714467306615258063116703112182687463437091515660006930344003579171745542960219757352350712471640319668972561334028507771815398891727124673384162789830411571148635608675393137829207894390257707070219721451785415341399683180905378555018167919012822360947515518643638132712842377350330601626898498888323286535744946001483628830319684185115199053563066270696097175861665990584997620683477630099876678545256226698007788807401664727646099212370406428493716104512850883267264580426619855368717131066026361010499650503123013680751054341539994788387720450494718009084677604163108258034626603660650338243373016894612561405147539229260985158540814174182522148702836133986371740466259636771133328767644333724985717109834227405914387457959515108703987944073101048736520169308594319525293349588786259492388540361166749014342724660039768134351628912388495364089552305853815252966700775485828591424170678227065588981269504160188189490269792202924259648777010644117586717819477401945966018721527720210697947710862934210593659850513233252905544777839030849999927025094708175448644713303618756721749504850645598885785751277783696196777315666877244343072791068660619693454515503913479863154116526079136594391043217545459215180746591483981412810773833693800891581967912039366003126055136348609770431573831792988139942307639646220756697922796246285649974856288405857482838468368165335560947866270221571557407872196119834519814172304343745637389504474037368057033846706596102727919977143948595163562018926209727089333883795983273029373089697524066086022744925024555858574773470875219583231555665381614099366261272738396484389527010977645701179035718237689702900330853588843760862067352079961993719863916941073217454562809212956450017555027410490241206033629043036400125970856879909499660983601694022842375839711700172896027948160623704264548401185008558083574010870119987336494530307112068132479411111015112728197102413518621262614108556212171686815311959324684010320332261836505887533242872005437814026628654254416412882161025839989011254859101010414778530403221324067724333159725799710265009460212602729292085356723654072366644970745268548029504529853012777649407887748710296574505316158116585003762587648894971470058063458420990349899384151255480209537795597640000937717129514167899719208340891461965997248111413340192334891683051137933304157142918080138495837370858366984736785433819895270097545125110305809930112147807851661556098543486757416800992996467337456995217369763337911179218589404528594214163513448931913079692003223035488432849097739326447338193321008218250945467604677363405252955089652736520633630105353569152678324114878617098889106485130520157143270460361159969674058068283192030926696464724232943717815221799838558207183583707490993112131025877836123186054135588494351891487561082504570011729775652147848519547539187230589779316093553676467771657028327477255711067735245776476674474886421854988711419757046448647855906352942559110406201718438660541111675107059139270593938384296331813544888700530443687041490833764964933915070770067654316989383973752495548281100150806508470257450643577381074499032985711200277948780352190486610701026322398918211789368065231090247137766362839600792024991595770496597484401502673923029293448386865735731000621667719747824408143282216304914581091533693803573210500365330775784121644871504718589800953013962431326479287245241349498367125436415985278116715855791172341988701855402568855740254955126160844781722171166774311420098889581146869642454296730146484542508243460791398916976998470152626255073229688889200471124383556797712732028468172870283191639725433455073491943778347820970819830256347425992547380826322985056967388881969609594979409707103990587229381288013046228293958378987165552013142159242946374403642178048106351252280492333033586271157797388731899469607569389771509728315825985872086182463823275913715315785879483014272622698436557153668682090974220967089871390954401653794111837337059630940836951914490929289343505226138910081768394148151930334340443165766815628190422982570711407806679242609604112850747220958595885583200571017938827916580149362790878289043755649117080656262399662073075984595467983504470436026018593994536386782434918879300762725544368332713611408804116505845398419947199168298967640613014321071226988569922797614254801853427138243451820037755496809206431636741247792152050809706741049150418038581012389248781494271465029146480613290533440758406186464535548527869974411002102488857117266142555582298819242879466607380234434764928699751351916761411464269352924041302111834999077014842386563012380770565371965361191906235304298230680078272665306015176294122316392961757426588330342161945333021414825563355755935271463966573976139814812605223279153738861771415794138426679317875711235563056857315300118454415674506743611108583247480699091451545697443513682748140416316192125915346486646640468505531509261025334737257993066007095265029029890541407287160471067625701799467850058724852678441083787699349756286399455869107857121315090628846711831249140775580973958175834559876695478154621371332082845746042614573165638779566279015147044516207979355367667634076253168915035291929409167351597287178575640157405506773914539985798621402966772862262361289465572371647865802527330323579420547779953028079472053622811265073259471827388823370913447218032299202293124734099276532589972976643461462939859154963288383269164959818155993944257589140857542999492870959195031212279476005430359864630181534990131572334989029362760923233739479548199589727994281663540539025771385174657539313380454278436236197198264348206857063892829246766245845315629146523950967148756402552739878966752522890576473299082641819493836741334502338552933743205417942285294609915423486436631367968446723790209570431757966615624037990273295007408554099821125845726755320413819042455099585750127104459774892994031082050831903933205859910077521364978459480718137629389342362518564530957224962942800114867627005047156620222023526700674646832152524141956919135069251958220022315747323775218472194564059127718927008690535098545347112698217516414237324884547670793465265558934415854387077186690217992459823413028686860405926147221771382796334720085979605574442919244884531305803460561905281457133973589864657588620314267396275318825784084466540289059403793775633157159238619745507834678167905486835469688993768528026145399600051014745684053840114557028183722719094368945595284501726596560560783343363274866953349407603134336152808497499607668793597677527851620095395779539158570015985280548840125012270034166463827808475013351064447722242801999438003105748646716307698646874525977748555453031627671089659795065195313065333870476954287971656655873313722898537091734892600570006588964597623754443943674130996081901715012383069035611879056409915765169403918811967001244369498562591118492796522504317416230285621170378375619639857230838822573734522244264477680498258628473681583940565134705640727897007772142653961481351708942995150992743607621454851225095279434439043238784960406114779103586375331236134227161141747770599839166321784713806812708040414822296828916667451803608375479993873997439124228906052696307213727555127731568247934527278488640880172077748009480103466728330566846591886184355002624692001876099824741289883083063937586556484771454085459794302667352219899448849667771989956199462987588100260007317923535950211773732778939087750110768806912834688218020373205068481696227075282333510709810378980082224108647524365100157719477137922950238272768837379691010143466953906271736056428224908241792147480955657424369113867405450787124650082842243293022773337564813823037932074301287939678463961590109188222035501001966576897975789203288214281880971427741687907177546988423009749263374593644120247221364285298087980951453562951699264341981792871180434177214223587586112011538141412297872480989084215447993970005249649689447829593817781405315656099020436254144274178417907098425185446956327464786250718525250566331079063581391640144763911696922182986926999820604266586214127474283732254359773456235190759051411890533419876238795791865485161703429522776025784272190478409268238303782350089010633860414304409723941488075475915853521870993838511768164172519513602133369472534548339303482785025638811389624069216457089856386671848600152030929680469975807442834831114563946574983172919280371728444690646611198447638942062734268761138196530861021033919329080879529482277743522657589343217598727626842733911640485234839428962981359195496480206898327994362305690398281428832407157343654309830283006993483701053509072839390534384434177035893595791146977511292129421374742847248147931954009024385307393746038798142436674628707499118835334743303472396942917691559118290566584103617721241025636719392405895966123171477549127252950185321140253844184595788552699541431847914154724359670837236543136957892259560765122655976729432290713882850313519035262461240614427587192837628209303711153914217310547097487489111045493310141664749998934761095143904117447319459524493028308603617379929840960835813241671415685353204866994486418602453381372480035828321769216309782400654246102779880080312008425334992011060970565452789004664895212334845924829202833360700325284562878838100371768876359517414218305339721113225616258293269093724073117657628217030161096954172113495244496619238054958000678672318545597703217031033960144052716048923859185305781834254734870359739460008693127897108639629838461009847994839147028661488323833078200343651356154687220757799765145734325107619178650166352310468516877160516275432017777076448089700269270815420012672669417938737656294717108232893755594491502080278577974002392160636820602848254024358960096011280673396308445692724495914817932085558052100370177894043526616184953316666366099501366788391161469988547858558717365840437663404689492374105143933576820665262759192454597137468814436333675683945844274775699687284657335834007999610720025724461546917886579579036383641776569566323729334105121414732113395722878854329340714996254840682828103681244298839975067646889733483900928612661349701688752890981773818449491133481932726700923851226650878886390511053695737330746522432749827274474160085026664322184389240718250623673953694545335487233755777656964777754611839090918605903423944311208571506713871248397757221967756231626903731138441159862383075875881407009529402540046350840187810413574558469248342964894514266784718145003908715288901083954593842985489862806429777443560803971476545749830147316768393908360259544156145258638970711793036571662805980595724675394666114925594330280342323384721876022770296519688813202714895028724259665729023128769785257764097284600697316355109357256935505266134849799515936920012335933512922481235123900781632820208977313904644680830958405140759161435944321587406195716824207012553632579816407564642089575656100218453688576544245271445522329059882071059468206616056444935071889184728691046046120930948180460157073726307229449162440824044229165292950449002614608845258669575038875961010459789812597325180075993672145605961649602050009459164261214377439998537401121086178692395741427845994083754637635419372070840616940366321662700762860920212565939645271490161191418380246438309368228687434662705991788942475433767092016844692498442297966029621279694739559707363346007003920346792624533248267493659921168769009200190490197465879155335413834100188386750898008725648731756567607395850022950237115706401109736563678054935173975258109216775124297085169207027991301945232222211959180186753599812020067811768503729113525339974097480376720864332749451939053698655452341118485633412002452896730745036075858395046703489878798067215479465888092186147143160334635467084886941011086720134148831541018013676903763243094079662552147944201183222033425862930782218609490824516036150833188044238486541537705539356384165218877573545829555514493895702439917256967359855364550296680498775202929891715789510186920745420467506044936684847910513767502958373518133741481917985202060304165394131630177422112041771660940376943095315166665349171237141418764570062440647136153809618239160421698543434793274311940410845302646209411408419180561618997345516999293188342728842109711705743054917968505000864423179319537460554547037328245207335555311602610197011309932837195334016380544136653780689309216417245028290602894486441481975344927450307097513127411426631531591714037324771510516297379563746564780704992559678451435482842709791713022013314375853492444135891501821958810337906350548224041240930568374230826870025047324667618268474923427030461464457727549251008197301206765711288416646455351585466868512181377994865801225589743666136333444883227575227232028057252105898598868884064000671703034309727744362894986104246844773465163499644464446285425328132161029950065777412903950513247517580133368297753055398292704758610602027358450552859560851933434377223880857885614583773200233398970421671670904174071247584429468585731023574563641645236843361442941136549372780354907950642995776949453995663750619340075565002936696256657149755624084719502993185636919121804414180713167225569852489179951387579718107221755412713739747571943759756286170014418770920019047497962303141855671600329388285394127845257181049045478147277935105729111924864431616848789671575292060835362679482059064484739766474949657549488036775151686475772588671497979016884488770896085019573135711795472405044291881614020259997707126543853139778165370662649171865652466223114624580033925380055485178676522144358375862610366458770343341976384896440180666572868726683410663955127025126775996937681317614569497352809481371021119184982280726460130700964825077081920115054741372590369223137225788359044862558044866053879903848522210252606669231629578155401420669079866684926281776563846429138313866548887195917557467659057280852017606733202397766335645389318061340151412374008952680440790783492160227183428001147457266067112691491270503896051840375482425833132380969115926249424406448315831706485272782231410919153105225737249701480053716259986125398926286869472212599650863340281217628995343428279383012169275898850449641971592041422200318851949435228542261675653084226217680192051293243460203909954897792211086591338523218104940781925285082838749522642278854447109573355287960746958528256398951212137325235189068179157874179817539616952599538792784092462561216709601861209884571781252463295813450808809071205170171906532094692881848611083816725494662062557962413550645727143102453690834272312738776117359918286742334414310413015992158338085182688092667699065415814465406659139202239244798477499895015547790806043923327286857610429170103263126464633416933961410318490490961441637429093868883200251580995273397116838860227373871259925106403647495713961110669271224546846292463954465915961169916730077519774561598109134778583678610143617597696771208906086018135953652158715515709757353878149693767821703420317714438804143349374291860580655760110767642646836801782789390784596453267608133477693281557953254982848089634714526451884032525117128916739186460899779595774579567985312741822926181418812647436744110974996097301552838884938428911000594501545434955023944063615724499790563051555755752878969065732591430159377008362345207517052825422771379807092507645293076413215004340671246852667218385467004641673453859757048499508149773714223648143004620613286095924104866476272365600832282120908278435965593484888187535182080978095475221318352865471287094227032169038693584067067186886043024507572448672669690578617929879937414901343173322167954510889075814347345848801219924913031313162371281416651525249425638019033484550415422535212226030981013636271215651601322648500051116542846361390306671331742895806242646610534016520966715880631480979702053216046896354047778557135189398029748202036939714250316811071179559772255436904432214247574762798709139097643313300821362571854591718927710213978842031501914949158986297913658162276414185648257620020547271269084605410056958371957961233909773651703219893097856164843365922241418277033982201743895423815157378436241661943042278293554063560813955930284531377876525064706717760871852587728365599623162632779719228970809858794376330222893849167203761561787638211663929525488132385766467798880848146230340537915769758117464634226371579070716973146904635943700683709899606036476219528167771590387509175303734990226576139571028836214584973784894852666579172869784697102520890796089955308497547297816956737411544325201189035776861062500476373717004083200010768825837343867347855434821317395934285964411605460416358217220781244462209125439029210394441786390759406316072043752835352132561899429254351227742280595453067318903733602446412338594416302350514588605401856869320954004647252369854869293319710005478731542856274947871159532121563459762663311490611871636870861202051812612838346545781440439005655554324589153824765903845738246834577551758215498103762250626304664656897719928826150852158766245829901698916553771173477237714776902152258253964920359349436409633450592514839133795008112749687550626706153759892746582213138836840987234936186067686426961536776924888408824842454118141661427411971906549622262605279132019529825609820752036402402662514816443686469414191149403859343810154468855424675594315305852638468084883809520982771559125566674571023111326457313869174584217848775019450519799611907850702101891616642369163657330827661723142492586698695670332537550100141832473761813740077022343200080792539928284967125340741262769227845745077371553600717567464841215169835006493310732362247005127335791328184765245487363333536431818118692198173975956451013131541433560970646047123240898147137203149431007068268663525063051670874395837901464672318559213744879534405834191430373868398005353150396188252442566886194834325655700181418693665277771330125763452456377632920734005313672770743998458461846006504124429139691671494446814259774001021867277234452572284750142846982164985982581066340594317365862853815428560385050600596392138842024127766630615776559329000470392157436660058932642808567140260684807606136675916238084969435426550243579618213344708580013502258834820414972082892534208114502568620941498047950154172653551538071882041356955957605550293926594821568880360125268666567641397069085432682650911792629012390395165399266283110792877377782060513613295448363318870106321981437913288459496034866751806589575890122495701684603584601006316888360394672772907159624761662587856321725079481428841800902884843246731539221740666989075194622859949720181302431825345026512896752755246731821354603338288982945455400311733057679319752242691686104444511628889751760290768300685195899222948626973360507730586209284103573744653689990406404880636839196702621701352910106834249105050816371237761589096623786284278818689708867436347790834689002855735458487656636697688053608612124909791700664342789475666503030956536842164808269153019165256099438066361265298500351643349948523299279729545830767027013302227083246628163829005005070111735588928099380694745284635155321041073632521538505402473854380260111975490918215093476907592352770805508203623295599406863035173641875744809348020725223358636913597981526201352471277743219994719121154435734453511408560412111981447309245812217488641201403171589479791215004291975037921924054628816720931080233516064384559349132768457135481243737292361536099780726466768381711723154713617993249977210813435270635132036145078473947895515702461609849686237555167686504835653441855495876485182962244762528345049740887303597841726796121328547312721703867951153520643793575189159564769155336186630283307974267660764149795045600868403095869880255498537705457203161948390752953828679844064540594290329254216343686356160997445989256116408215293717927329519815311397929424742562941504724669659415248522489098048517051622238861359543965140675243930675755482747943960626576593806757877044293340763031972808447279321570679954925037379135706887133052457042543595632286032426369055313723814166891332498352273031751305163218023278174086141472174421983360183221429569996926834647628780874788373731865853506458133593686925619795956802399693068108462403637640778850050407139740566048354723766290116866229318814517907470562880900592828406785225403788562206187830409499309658494120814196207067879888537041751773827217249952691085990615176780152374478888314425196039718639414484223493248863639640586264561554156791832094736629649202620120458945781308598413809094219235348391563589113620740642461634707817369970343738147185206776047806820539267635684005803568655006408389942770310471596660959921705275838047111756922418737728250361674241394179875184871338629665798875944267540081405892529926509397281970647087565338778545884136647548000133036963719867271486849988511020693889158741166468423975654152055244915025546885253794614594905558462282523227564713916474118444651769107330025702501889742028267564844709847872724440239615791034872849914105662713669057359777591484158574644627986281338167265767526507918051899599203102383087849664799676244219849664217228545272651154866695745084166042129852786275077454185774693453975859038992814654239577630130038009072864002839799987079872730153179948873306204595223450131897112077707558639943932635304357161785905942196379486603552048629404381306705834470039020001751068184527595661664636806162508323514534457693065479987107387905865952587342947051101944473933282132185556691594772358306161829436172726281180048220723521736933749684307421689680082935531784399088949486894507596772691727964443539226033340353771721667404433084680789774378781948585210549965823812298647015899889808573188313304702050210226765128290059744416799417190957602467944312613808278651224982165183141189863689858112716550949623658267735979436541789044285135145839571481486253769545136309615882010810648939068070112929689017282276669109007634969056456048154888914436449787428892464480800297970227496527001355033344100769429782507679890233969128251168680070284685786422146522997278283262808344293645028791582330861183584858841103491665304374793572914551048905570046136439945105166279999259608333766905321687727211631822262144631391547465218117737387029123962590541832017417202384884482276553359316765267633715290397520003225644398805933783961311747485713143795913440252956391846090313529600703561302815251288525631039489904268748657322568398924777969922457842177519546278998415973440544469609874167501685273024545102477026518910858681689987096553604373264758283354063116715359103138534586765720094584681629184569766596843146946126206588925272827589427514934843077386260363538604530261563720817803485371220289784051486551642110515551825819340061710999164995148544188055289284267242985888129290666179039673087515575711576607988183063686512487093150692902015350932746239037602888167910031599781377053820062106162152210039382102186830471062661887043573936416574439039950619586199499000787669959070575031925444988395496496547461619164577447968543158259214557946984209456066789409441125645815797399327093291721650536102726052957894491470748358083271063084306509587454050109070140079549886092515799060260485401856410534620782189775695786548825605649740904332862612705079833676903870723912173252388783872872977332192606965061970246118233825597116496882632194980398953771263203677762686495234080260667375387537460378874439373062541610493387145368307847308974928278089155386604851740386397870768890491349145802590469043298735895328440518365765253865569685872808390493032704037836003530734833890539221584105699678129656783662773675462793234189008360420258775813564671389020827383578776379717366391694155318177795694600639478081536763180001714427324841506109636422097894894810671575842600825025026898499639818296359174697375886858643321112707926903799617522851689454460456608699638051512425125091756365045162156666948909658707600610003565620920443823065544027851070136451723516498998872663529571882740364251375591474127202765306509170224620243370734825007872736445441984619314893707499602102321069765472359008281598108728549749803775736488511694282741929111882948396105299325279479060074064548827349619402569989796570987879472428407241287252936301288015827587941039704012050327505735396250055967374640801365072036730467004848571650051643746234519968728801696105754014700032857958765769013206521209331532625456429138942231490139065487158341952280653910042253183442100657086313836141768541036607068483619782274876609472810382894939440836612029284676840651390771568566551520304000598584355134383899231564964460921961707474470125465738342737303193999207703744069027238927776563689900432697855958754368026108048244343213995398420730704626119510633107771245373000417565110284259277859483601542811375995583319739472032074227405641365568030214546721049706463935241533152957184292876301510029565810572382693180007322339654760294254873850904910342488048796328812399544582529380575724761690636556535709886732290351051380410816453199122839574480908787462649587638359175861051224563290531962707833620200722695880928128641082254587670446109568471352588356150372375445350978713048861736843289757441372527276990884469285643970458832616188073744455653334994739997484647014775508820094086299695316920018891689311890083214085244819563161797417628565131894193319216173409999639387471078762734969327971005259394026090666832638394991997872558617793184902898887508814760425058814523466285815881642849240226443562634043535982035669462672940785110693908050625442601832155309479759270229688487562518606623217687450648826773507835809232219529532526240671164539521925738094426773576734499931736839863125251687503962638176027453422419975779658717360640351843420956411706325884517120071049438492020722791938593505672127646567398676069976062375619139014689163508083012614054599912899560254242714342270182382437384716894417991755511356013130515137774794779620975438605799557034779629196676007594062246535686660188547805244906124785909274718424498712462204295213125192360669524963345511172794534844772733997505019429270793410834190697601815600827309969761869674099888216115121774850622391075353170145082498229973644691246528619601592034270070481883827809276037185924703770016978913772421856703825554804296412138929630771207103705585468140065363890119131871810491951667771543915877535180358149522237058533514346705454352213197204284099800790435064566204710993670977317978342308131093234196441894296651211278931328523220863094461534549626988380715623059769195122271546726119736634554966527765743890272291792770890191528623483420677120545754532149049097477681398595171871357111951652223317845851849005871504586832124231372454282333520187239025176618229862299605418047206782281525761265922464089990100194113918781593388105147260940028637609562981171662232403026759831286201116168212032035400638943861232443386692243745750098592492932741103631139787337460678204328382751985318161766695523966349814818566538877492275515570909337405746963851228841271335103705111266767260585192112213448414263132143089950344529365393595134858600265494127084227846700103127378049640787442624422377194535272313827425408226475033667099968136014240801062464763084475986391923219970347655495343207366713755408716819523085135612084629861662802344865765403675225313773984825794527827367161278355868804343851278774940806252211970953912487821264322314458586885194932910291320643959701760929682652421814939544180236225111616498062068591851504110842538595511536030210743745850510030258336765124202602764256831238876483713892367539649472038851558873109370359302101253091339913049792858742205400706136948588392412735348706754164264382435723944461020820831560040702864127942865481324767229189237074347883518896577302034154337150336969318940596020366614871275557797371089332376410416220115395475111351715830194374217635825765998957891875844586444731784568170159821778662582708716654226659365395704906718019901444696835829027776222567050171085878163967212027802493880902648807435907946894633892894360569336338852469521181328323608985678361967170053000126770534372083118063906183296121823624001885307568292649836440727838624384037251818385679975962570295102110805149150337136351986824337626751141011081358675416497400322129024879089862256297513041320819763430370238628920294588759964644941994939254476046611960673790469841737224349855706808755816049324907545216240827482764492509220630232241692106074987627537092429710794080699590780740331582567748712296591434000590489914810036198271574157805966412215503128816541489518164754218053889416157610474471931909868217563895867394301393400162064996587508810563003923594966583703739983847635371654318146677549023683441065219831452787252810386685175758658414213964049547259222858477860227070523617452794515483737567682001861209179534437750373537350762365563544754912737081716431101493964296140440075953509049384455847604514190744241310138816337404247839961659429646514604973336596265128363406476729934207704532308802809210033805293128758973986729590297342420568445381929107957490030142847559550770926980924978471472197587880511050995088479119196889318561505157818467394377449128882288567034993817413869042229830353507576823891557331543577669626502244612636252718330856710252156551292380399298344005765960829118452259691413262062074576657608323703440982173196542716241877272336104979303603864498934563133426469996530713809878497845979998336516763643831718389687979718777761100212368626972901211199555721453466712932202421100603795298573617740257558094522205560717665833832614987496584664753860476149911012435822749928749201707769358727014493244819693046474473941600046221469409042744829275976676609886762600149992057504405561627724999861292302786139639415005403573157474371131462918560393605240378023821535150355954924121741480882335105927264258866217639400115612272391340253686367423686148957296164536750441281826253187141099816783217998902801886678413699597108354028478815548251954224942540698949167228410722648677475087905484401824825145705375485019880357186720351323972503596563638967021614557469818432184504168997159080646791132875108943765696852388022847403128131601872986928549654582417808192381950160782053592228301099295603562231777655790258380880686867455331235855407603467034112310647116062752869127082611702199427773323979163577365602736084057698649798815173443569942953594322052403762445620610006069414226321313882321013090735655066518359720810436526244592549187578708044099396291358204070141169303445618917996832257859376137153935927436162947509997639745949116693780606022707906930306653218484531222200704804678241334637186733782259266111773256873627638414493157989479587325093060438782567211653251796113273202463284489552293435143636197323654441728030757025633790656952100625127201493860572092200209767513961995953507788622877824843896682669147277659059598863319252406414840305863140443421592284150655206508130531941776068347267176653675581431308248887765660913550147547081491810078566294717799793507296713942078923310752651834942701684955411902620228774103987765055509685337803754301896821771860407219951511646297392003028477820920555499768853427669504295443718821945773033857788853483986635155064794662917830119314983178578744348257602992753146920535354221528058211987774765600423769328136856618908329974949255650695208016808625478936733761208488815059716904896789891884414664716115551901855466423209298899845023814371722085797368696791568003445458986765226302485128527215904748598016507046763387115330279680778904748034351193662532599885673305133892966196652896365600642352175401040643003132569793233661877648604879778424723578341953690019031535151289471182498771608735804616092737362960313408140449641293558775024400931743206799942166329973582998753223496887606559264469183743547526394407729577502833357285444491534768098159409610680587677012436401937074637033165849581435582100690660978915522585379480079820822014276852450520056126824117315529570791289941728653504782614810259358358877368333266053342121420954698239872249525558157573254337796646125515509146204150832830832333027372842264486618968692772334641491346936932855133219336050339021245606772439569714236252921640213742698093324693135061610560805799273524578065731451584527560717820115462228403263461073983848335219918755352913885632373359882417916669473855793711059352571231113763791758961709506483505581338592547383461155402047321462392549460965604984490607693223491259802295386968801055887712222078760255563518163752865802989767902792952470775067371451814032855291087563513610627624154731001297817531864378943937632977345415150651779073761341690951185228232026600189774956643795759638216893325776341977738756964203183919928880774151383631046388478860921566812863624468474496944407528564206869930074365206536295386004595938148318308712603460088194707223354015363165844778206383912723572619370298796907098560782976565824294270112043646912368813039180466323988263487276519397701375893234596098254666752120838308558115493833757289652841859272959082744716758020777559462705834450115147192403194673230561110866526865446202301303814129929271511879423130513376842361217139755338135875390245442724515297548881948456227744873903625934643574441467977964514014140202678954497542343577575069930857588465229944614545869884540130058642124771768846406444204057352503804194838846900946855600336949964587393144149334187490399455579626963054902592186005797818953693806872962144579081491940430816358764773061621120639169948680487478721475014589944106992869676185629092850147464998341608044912392147983188958740519187867976740573396269979918355594007286721781078419217658935787702091982018135985792956829689409112482498051021339210545679299624448420542247267233716602303637905775181454668462209099752395669296991023273507534362700085778874519421331213747252667014266415309217783754184510240914960049185762019997275860794629966209263336722800406377458379559720405909477994813859434273473732858266893478678326354419731788685658271062859960059039470608115833944038539815550376491314597079602652402450317637151549602490646635239830821975884851276794805534336708427909465487991058301821563943383434535704977632888207556699901994005158869988484630626508681147900167522776740822969548289166760982358220958844195053576877610225409295269499167989427299850875161122867836162217922076441436492986584930283510991120556522522105800927861052238825224300734687388972174945208854058417589882094386051461105248964541620256798001564186998729954198061945182429300939893201388821009090581913010124943524002807102141105558732517610924696975482094854571453702549838427739993458007441205206895179306228411892993964117545269133677342431601465915456170700422812690596770116165307778404158999597549901480642305062939423946077192171286604350711223321308760213122900761341882184241971268416184102346597717916193524827617146369003697969429602441551180093515707922373501329912218828439924599045827835181040445184127871901611373007187282910911091055538226708114941668876653010650722753778164425166081343283735781134875567668081070605511441903415917219355530559847277064646568295354862712420616680669943580986444341368038341916673561195791994889429919826187435594724018770741548560576205431640710435836164259115505997594284258762814434325841055082333408690991552109547744690213204051888491011878905819246885338235646469571881634321123122584332765554623354715696297912195588951827271010695132784930184237592118861064262587151310546373304688092089418695144106599241934661865106455846772796236918219085855670428920203385119525458988008070581111468914721540137653299701457781185097766855307234025519809402632004755684956603376960871177682037811111187915187250894994091169351523079963043473612744398285086014825973840649800787318962896355906973607844523538936011756571767350742060704434103085904572450436102233846421007291374035090149104002931806046442600479635647365821783294101983922624801340542390009717144344212672899106672468991189620709514884661837922318938555438514260652968959334323103598373050021487176397191570568755202436384043880005417303316766982346044033991828717239450429769800235494385271399233140068652129112788159447081963825689077620271628066897928688747614169645562475866567825018589308334831820692890030175667626318637325601291400086292841459870371697169571137713329180459186958683772352616293202185896845220904435646883561480749941630635652398671268677606941509274507348162543958405182826266082489790782262556772726732735148454994606541256821542531269674547800491229964546977855661949126066337429218304497399809631838020239153791590718922204555449642927916561365224342097931372804731943291213077794089368436126236068715973897686059842240491885203187910488203325066606436787122271906695328569951493557786668118300836045275955930671543689762078534709551124379413700668591619676639930578926555719142704027580523562898350419317504759949433695058254399760405324021245803813494952195114216292564584692010935495287597582708587719914235235392137719161223305640359109153399989831564267692702028728137588242680153290162789597726151929490511548095385079044635329407432164447243143483222105988517215526978293234278295221364981879096225430783794373488361330476264713954116361573542615889444573229038138817714907801818440186022742451312256457953788334441065312883672370177477906841428963362668542727099949912371841525660249539784466377296470122816481440438030270313711285964636709632481339006415631577420393135360772762190089371787810168132472822791886754968904561943622414047455116238966054442284333547162147484703176585996486251635543827523609534815345782206504398555555889242715420323945198466101279203269985339979251675205216780597102371902399023911772772762615643925482194625567757870206653843036751324752421209947806863155660514241024951786612656219045071462990180127097417502342492554468968352911442804338711458614180711303472551394452400119078424077772916501097364277935146875228756723896836752053045434448169983956707749846510944870384389655176955454747170065669547283398496103685940629440241459656166024159505524485013254072800922215213406520382080245298324142647951427826779594216585705873284372478545736870775413715460641591395574207807766366938163274393869710859422930273587568362701628756282938581132829165860588275074063591468494695135283449090651926972305259201517030425723092611549860190033152873352281126207619891500956899531072804218214558485620788761283539724047691608264933687363071678040865874021721475193135881798320446788228641889051011839486205290498456604212644652065778705621514008434103138659118079678009208473350891139636078429997595218838104615087877192694388163761803704030882968546053301915402584573014210933963327807337247550751212701322681278486797148643479282266881754203112684531236561378330940767807177885419454072954534636568682015907293202154814499443218518377064114268904093250160277204610246828537159294418613885302478278094030216041945083280694027885384084651749878537007635354156302666547432071729605788733384559547585625187149432237176433687472253383631870774480505667653500705510976060256697976739849360444576849423548995710895055098783974127208751563752297935725136005201353573769714440291815025087053364649587756588512012955532328484724900601045521256436462503855901601519124414696895437155256752561582696817967884480921496701458170358372529375368005025751363046300228267193886818163494712328722009417565589229101069557254175790237350167588571290529138535604392421316761132849160314005459492631470478975817703131349796656036665265890920543558572591191906237282293938751699208511562469102889501463968704472260419070092625534937950112866130714503617979081729348414975367983352456480443402837672107165214791193387588308107719215172876441906291714230875826193310854256444909609849746548214413043211996859229937288570093498547802854548323933870461928419098965872244857543155718713117614952865292642773522167319768058202646460712775711404642272653543898705874053125617903683699847449544558050657586912028425475224859674415709706257207437374772323315399045792570587669691841454631401476081677390345880084828828525746932290048778088882916492414399818174180316366127799274306045010863517382604918798149600680402190556819370030000941985651217014635253375280562827836190070045777757635227255417857062472571851608397028877828829152082069520348890543734875897977582516708521571938720414253081457077891415763046753851757371864054548088949410879485696875628636413270113873730448874754820316288646733641163031727945617013886623402813941492476263454218849764550069681550120047520852909903011997415527564395372317807131256948766541659920539408949458658374963123749509790252151018567522340781119486854317404809743461820464601596759325522737806260013209346159274277895302017181496643815145234483589451041520627869673386539397696627316699854250473527787868212285314509237472012313789468769311528862760751697742178072964262389685560899288001180506490367796647091883685087486827878592506149930024445503966409152368413398735183655305412957765586775776311150296503176464459161318980292477285885988643345731988944764468419913163315628458589523496582264058907064899198001473072610438869169308133039473692858203459809430269362854244914837286143492629952450934439954287798580762219363984842241382072979727768792721233297102963677723587851889282243724362979107440695680401954955951429601210655520697597618239799894018827029698697499178350173796945269249877011264434950855834831761325876168158281788771499976231194848534398398052701510890358095030635602838896769547140925986596004096473150437822531363857974436801227360936226429313161400287200111306022289263968119743186423512497322690430435316216772000664296617584441221276407477592256567906675994381332915550312005225416364801775201294609284877593882212049811019174922293874653388927612932749198047137559622147457589170738754592121610217361427723310007274723636986473349159788360678586790831715792674735960009911322711317376550590959519427117498947069431216935528783022419030460734450739762191024081211649544323207413659096848428745383067421382036232471084819591345872682476369225354073951620884217352901836617250176683026563742149681870546958876123118191925981259097040461103393482873052321185622713606956681308158139461732434401956172756716374063954668917948827905758674088620060831521650126567595410087964455004536939236504184791594017612025137074622206406506536873159780787445397593805710000389708000323122768288226883854180895537651192466460286685297231114365087086785467513006547667081409185898370883844014954507234911356410958666256389034919312397265323859392239158432120135550850398792368335784267888047154175098776494364059742281070946224208995896611681252020345996122310062690154951368583791972623624773177450092824819736045449393703766676974394531591895032724626302487023883977218364381016220694101469703326985049851006619204213000953780216487163839547311942907044257878891190411528821705316725043503765631608411762921426006629729658341142671531046225098114293772330865455355430478096330823657649447849867702705158179183989457880415506836999390656501090507781961390647340133053597348751205194133651953777566622141538348285459763205047802763689878088853106530552907668191249372364666075642069381314351894416536993610252505461220016214304409540228075728123419904558437615104958133833971715513181754478448413313406233253487270606963510832523170463683944916483417027293930080424024860842162206945709385662450509464982069762403120225880075514628278370457682620205449742606558864492276304965547786077730244324966059840287295669939260052479975362748327965179576568913327541034475130971036995386747898769178242419112011186624617219831150934680220293887785985396216271621788531603805344471310808569109015164920525146959144885415944632592045989977923112256379592170299368732614981480926355357348284107712941859713154612764505315661218470031252385831095789526534607459118615741306165678478554210062931055952949160355679761245783308204766714923114213913362070965695945217827847834237367946337247350798756188121479745919266854171123449413947732737006527278158505107345600197071045345342087646545027469055026427413242558829550695046836927306411059824987176183349240844061388677010089435324151584102396213376228289292476222153644023931168632697034339006101286547099495656069553844542285725544487397351201751465186105580351753368489272048856318184859088426843336648944134569445377858141267648163680404989857949140331076939374237091382705140952687578238776773314076779676675233296514144632575280880678655267517291869711400459957203582811809206977377344072808595320346108714766480056723324602034504822750999654287333320879408341728596315120047008057808396437082572202088014906023230234226228510259916758535473548864842291136594764226583368875857299468624839804931167077756859146872953484626820409046241110933171579296178349922977126540360526193640615126840835940873270868703681174931479419422092607774151296910514568311388678184492027355398108080317542498645593210864223442189131804488354130062270838336096894956236639504592733332740757126854114344253733763796127380614928222082386866306219249846840366247987730149339441311521109510336760886887709924830083810978617934970430176100798407914575865746532577069059200579293445231211759717159666718630884713052815708451550627336229365148741644599030641491262180905459702466563894192245609916430513324123889696470444825625823430032560263457226997270517662742111291029042434302479114963887817032894269801617858281146329504838981275112607788635460204663679826856393403559856842406836254467140954704231182645857993903269420879397224652541352220037955421714807668594377062151711771727291789829691953447260519039644071834792028203675577112513662752993012280578333261733520996475340502019031473673909305665638629416305802283624006371059596336324795922234117294187406065929646863890428471549605146007570467093153572439835637364498578106561552432528044847224662903783095326808275579373000035379894152507283453307391850720837738225889761988541294885406624676196587695934417945922696158329512905417102253312381363041855963800083203673272386916923827815845137924535231212166578642729490843345374168646339299082848745650935529949769884359738984117202307136753901076416079164834150339902676798087907688698747074213352196445958469684476330618460816171992477946036921335100627061344105955473664794626738250572715044992423297224675529244587634422039356574587203069254225544573633121030515297312332722839728364870442005813783872382783724898180132219523793076947828718305393514949961330738969287944239422644793467220200117970852761144370951086708744409334068705885774845079129647424614881668518750311189537971138109054134845045922640288869238663733254999523422719931940274832371123643726165860390154805500286402756149761064078131386759849532503596770030016509467010521389834156192467541100923569031523084330033562753015187428739732469839857913818777750346391643866801213428230605367909560575382272032511962617557384296315300925848112313693225352249648936074276898720285000702680495286402589253444254594590397400504147160947801537706730503399087367605714574791224563744441584034895668470749619041507471460484210774982007825720634083689127760762469808792829518303717828423431399864129084766928877134679752492699406480619255511608961624527868184403445625193942494366067456437512101850550386281901764165619435077454201096193803544070889789268041792664896393429126202364800052327455625500420108668091589226989245799480507005955611161327969215508845280198882700974509375472559050601520059433649027464528299639015194096257175130633518716664949956660325852507020954248561275476271979657752775981353356948089708876071641157915705201440151948493641106870539699943977639556640113443182737022448159458348671419053666505608105541522903106176197938331238878866855112792109032918152294806506278634892446475102172591327421959946926104650459527338822961910191214926852948410061144951057369822270786037638566623056963243512976951526698093833233230172327369691909328039573521982784465439448594557161310467640992879596395470180031801263711303347620202948554027956406133485323226642819079416735451922059421188064430694849662099020909847503775901114071251890382787597339093035866559430198410451723283439192039830201931055474369635296438492010811345515028633110310273286306867623263216584955420507728805280574095028305876709592229270038466426945912581397333883525187075001011030232254421699807844134520930330120318345514285180698201574096880529199576274714029068862413723527900270920991833402482732850962469812372524392290671199233122298708737457120070942365053293713131217539738929715307049656286256265421439912115351807149551977035695592238372952857271395173193323230804141603699870866775192201250800212878433667589376681848782108535833335484180187166945545467935231218579631422729006123271120676077655335764653358644195327915529399186830090104913509357058228323055368994635655931924900273445441750949809034999528908067085914875695813245762837471389813574255494139651738120569223425886361925941394653431457643753196029325490052050358431619212474769285548277315601855828676527435766238871664368639772675379290786538642724772802119583205553687059468827409134908413528396821432328446587416684556663949053401714921685723608194884604812254921841113804168847801933976870227836019173324838056188561893384634884215100213357916762864430039570848814240087783357238803287683116013781120281601022303498239996564167953698975022776642660148648696186658833902918841749010702331599998410728756529283946649395234980717797567275806668029170053521407139131501747545790540102542372213101593936704689334264184536029639149105188608012625853046114861754254011639623912603762641486094722670647531082305857811551440420864031960464503327139944573960474203679223937549711258845664380701068393664927248124137762664054820065572199814564033646981365867841302921885330106832768293228210131135351974057652570348115084574572840617601616250601333338014108255399452317958926855561647420735470205646225860756661364192956282286034234666612232393626532144579759185795821001014658490762674266415334146440515215835410308077042213505153624070187116500112682032299000234968190474390200103297899667292881285833732976169447568915299152784840878479329068508553750457945945944138077644248958328367915996546457855212459476095507424801243124087634466663947566781431575703871796191612133572065896668153997841107601421856187102584523413437777416915887342924289079383838617894895963844592123206102939290923903585261670896337714180331461088929107657122367316679051008417257645667596222478514196824929601570032887190969555095425448624064969383756568526523882293817510168665584911200977884019113090295079641199514512969295626363246448763427812146288145188074260077591315538156337406816569521733416897487290351646014481777278996148297335969429650371651153712547141374346870843496130941796671765775284251016528600609141135299938989896198144004070176655833205873120355997268528462493174974103065806970688086029507659948837899495276913889557591137075079013613984767272861590128536132378963957713343105990747087955657329989725714476998469288631198466498792724090298487952449812724586093570780287402380256230662613275548201614610272940811374751950403773895305489949005986957858263251354531124119543418137952830121196470078794399577466551108839899935245926088034007839402329398790131083078961028327368809276957702122885549618739266672400176873423697372405238114684106683527312340264039595100609476146067673877407625743032457026130909600542018724317352900002421811160552445313982470568870374676011009401513849794461038157864349327154061207543437347307596739133504680559336862190504761913107634190446948607995570773922713161524728890840812596821343025511517425737936163506345863744428840294815091695545770973715422919306889526732992702917337860288069495905815323100247299776635454906791479796527202218951305455710900757149057903292543299004876587756812963062074911993683790209756500820375833291176628313671773831298919162202842547954115519241941039550830257560875542719586561410843970340582667140539930148294327797196050803381874322422548792619445694603290819411773898462244306238616070269318004744534417001302997353661335781032543784917816043928374972696730177154536191696988304190587098905525283718545097605105318050669219512217932972910970320901655438424413738932656948710243203198399174501513710926689788593465129364965253409178506417649221231600031283460365007280290384428499131372925738594246659581588862899781864108799704276171679657299757163565141016128039557849923456563625287797014796786829757591523450653001661106985011785554238486739291619143074986377070884326550460708134721273945341255036240695965293402769980040540321877264263032442800066267839343322674982702599360478355598205719415228103914794411876933576268285542480345265139945512652936384825643403913750021891861371465915549331883303329124379713811936724474937321753583432195609251159704051787541303332135991916937627731122969703374809959695984368371094432789066889702347554060086374945689185658210178345881432801553772138693556355779572843242721980234586501462875876505338599288948161497848027254211744563466168951833659944314417746007261254231124962744583953734715561452465233280343899114700755501727621950503863353979005901923269567460262098224618733716437115545155064321523698012382797416346633981480874741531278287337901714964783215343751595363088762071110565054594851585398376845261125346515832115896985716479626741833201406150774214382136085187666791722036537970338288549015609373236493933916043417929728540170838412742225902295821340970753288072880074963690935093073061013460509408040475721104908827330428319794425621308049090900590109684718477745482136291363815264885425370722632012507757297778300744069448190786428991032890576820879502322941435937741154395835034902958278981136862192021852467978128996467935102746959780058829340713356623687714463815746487568018879613599370324164651820210822937533056390491820053719214753879697829717885817050653256654906643806321989091327994570687762619232495458796249064359335774813451594433931627449914397832231868640369544856646737999509823094966639865148273494914742229646570923809128842774036533912216521991538545906430484845541696999273126005685062292270186381941144622146254423046871853147068638564591824163665938245798885714358317698257020149978527452501844602425184491945801703638050795978995839689315675390800703764441522263675095107203654292094273373241066321206340273157153715011584002526742244610814033374298375030027115485581193044692693434117905970936256354365516054293673054213136422353241709061653174251663600410432421981329430634973614670623797876099533789617629825578856480307916886519331364803544893546734901484400459460226581187518598928351307494259963186178457361626579030073460316587428979593243457016192543026807447795175335367981904529201714344962118781784324675856151257367076250885868090323585899786327829993317971718522571085982493847956685884628392591882381540874806257107616847573209686244858339694020902672824807506533647058418582099408995185614269099482437998224678148917232401633218238296237179339797757573030181334526270059460683024412761354556194087851241802956865439449794930152286035474514967099264343329295514223969723343988648249739670896299999144581407122258215356356646047560324220480666118762715011088251711818475637486864643400016225079931507676337745221507040733540172068535943183832035877779128977448445156679976303058950045241858001721155930159018153152727052553407755034949334600236247762713815198355259707168722938179694377100834557637864289720981998227931784575902174572252322242184422236968519092848366465994999400598669963304447848880856496221495083719172512499519821087173649859365113769559118814911739521599920980954584821274812937676067011087555202973855641207363301885435218955195290736619609526012286670656695091051283394974922227866040335463423933039567438018222029854177321896913901896691452414773608422031904042140940285554394826598408575528009398307418022044911094291162586733224115995730396944708285661763251350846061986819921808768481944687619545145317698055867483846938927317632846225767919276775191179520742114942059597304556421288781226997441697617093517645841859422886692147004064524518241659516211921189366579965885610706011727276774502419487342380038923846906855993099221348308624804659348114362313894975798551212723954523797954722912945195784116470080162333705791189890420948753844168153552249227861121327208318232562765443070834294660966452413943319948837660819682231575544844324962138860849655684031462317356404997847172966380175675634264338243147378758609294253131849468900461677189462651388713650725488629691036079179044450728475078677924560565985017906410351033768467028030946863741383405568281721332349752226239598506397576750677107486613389408342036589616881326889721255396996040008427069874958925225098617721230742025495861946965033742386272197384942539235351379664066489511816338042687118984528787561559581684940613788219438862575434856275838630267711362940667128874153862523399597360721973873562647404045410889578210791023767458800624611986670679002815227370594089829742502748289622344045024523898768659631165637002612054267252747369869740159275628997914853118294652030243905270941003652048428002506615642873147434873999339928242430833264493921202246190671966133833507966930995899685590927064036247208008000575321976136203933141033804146897858473097140211034735092767901130316769281845061074700918938268250552247000345379426706336504854148643638115138391521962956977087904645919323497756196100322250958741425229648501618628863028146017383693166412801097401065792656020934254415980785075531283146708891303419227927730677836657008763619263516474121501539566008020505014613586976019445839639534240961521346292219487488609542211126064320877382893498765031533739988347447459586341253044261927500725202512703472343078178261161299914069119851370423867002873765174913217171918528516670957283832129488864541302161928326581604197190350860579904513609176034579638804115093011670614392770456072027708555973398717998746739939030263301512898692567116233878943157860334879537953696906376467183051393206122601659473278268710538992075615120992160850608428565338068177055070725271850672081783516629980623302739656226449437625079217491662242744117852269328297535262715170826083323793717350911268180004162445707306960703994049397681738516879411906149147646413760768139264864518193228838086953053709505531760754038305653375771473350418220670387983090619713078942989595604478493057693797612097168568243275770586629599761251385765662801079848714995210282030872389999533780917500723870251559001220855663787554025932852577637670525925085101888299935899179423063862280099419258628198715742979090925167837407055967180829930172025741258370355598237156748505535430208015663392017730908553199919203998543521946719010108492721779899711318160964022892873834505091770626496851346815334190277403000643984248581656091485641288781844213651991475427678351560466161086909366793779612478331666780672044681717169001493419073350944348620388549012391565507949159917881268074714468563019844528697015226075130029806447437499112501052799544708915446739805473229497858972821236871705982235901756111880832007302287024746350641336994630651488718804983336954203537780953753226583165533858771856380232948313898086447631303265263928440507179275956455765415005996193575017021385659856208752749496099703442584320007706607496767550569727569871876153094797815658838988268146734404295157725241557716062306056913952425086246792725048857429230803474635794863908315600031706062907783678916005067745698083210268174154114159697807847535870659487065705798950068500689194713332930118722660305889972044508113319582977782308790362775426311466868111841848576072388174153067562382307559938394655893258881213904197098466514158947115609761001442800609760251280403445561861224154913368435453404727648650255949249518898871359713097612291400566522134561197259659278140499430112225600298891898550698976096733237402356688700066790140167196906161596974022035724252400532836614561506438839024465200084509173124495211085297997339928377243103002078008536102586106604247798962382434078147512788892095161880837905670717243387851462410101845992659866411108241839034358820268489918017078430959601959287907902684937164318924417057138904533113603437680316235754980279164586380133685251911771628887329859376517129016178603754232506865986910976244508619932097804689281055764849276888563475044221073577689639827745197154632305355360872606964222612073128628064817234549298292611384294730759771185870886723447441293192526767445408787292698657813130523967250930188977033450563692246499989439009983553833003241767638617219997415106355422280169360762246487421438354165675486231585947226278464479884551880440537588341660364335562882023936632126118950032162919907460384976988155866300864048716708228797534160115639770776899273395670802276626849954241548960766798655031737057269860143189688219981346868236821803614064975681655190160868129065911966542942661891709569823596351889912802576931688958756223971719880346761263727945384805535242276686498277403737725005473762188592200388696265074439311836159572559203635879530807794667525941383568525195634124634429775978078501986899852281740151716841266778674424203218064047726234023627970186590198464616769689684523578972989972710718061551883254207964530771364006246734254100509769703623173488452594468641729274554085732366807238126565117301302263165156466682263032304599184520321411593122089855470740501041350821890131825433710913478208139086486193014499086592742443811352955012377092378028190262543963510541127334255872514181283362217948434318302629702845797633625376503012183835667404188259202948965213741704484682700869517061332827429592870873599184568910023605618779519654345965315306551156333301560788820568951326124850950845197702717462591117103489921229145582178431126017444243632984016681495931365069632348480375114021752650421540939353513270585210024385850014032999683807882001448421132531994060727115431101346132675399316590755337536766937049487384894433840526830765157367260103119480455496855294059585525046586406434524265813165214894396018711460910580746010866925591863999249527271414261607641819377647644642655012193134923488562049126763743303967630518214842240210429993574664219920716264656337644757045638649493706710428186536335603178490975433726940356675206707747469263842674044135502867743349043171720070484038146416265582512066900665110399235406965440280283863755633832487473955734526481597203761067094921053367916714871619293146524824995672495474276896062256108754407288822169869991905460405037540936839017307475653664728931725392582676227511992107131283160652333056300368910541048764775732575951510666078785295476296061921363753774818388762899358523466343290434525692844666504268879650948542213975419037961751924421228210289131307063197480129265990159669530327546401326998648194963842014073534388596670181704950495322422039715595288824699857175258804000138716306286764115137186298454247728458541776565213649446573139654685646882830719738980301826336355929548097447057263667351442949295780850497121029383724574611633103716477160372943952205532014404236901742416037963166841963006681597017032894861876931132459205204122481983599529646065808862427233718168185426069601145236231163938470951621498229637600641899957337331869544628669111310968785267905563850887663407456149953864296783353660368368784373868110092556472004056821071532909648570028650460502232141219102618883639567323903096155722470478059284401023060344467784665230334595966785084716241705566530266668542459727752627700592229384599486284820162651869266308260702076961475581082439675430821114116848415776268155800771030575127189511300015248290630084204419311791948976706990729198319261361988315714553333846899959230663118123381361183118087522689302431381962815905427237512726634314672838252991866555695088159094243141377198258578603668200505557520312870231666607849097830702571420428043641252434168729231641017478391033006686519668381016184153842345010784589099980300878379958545623637736091318073490069727212410000081890758900627322476149897090142498964806033713069133742676579693919045514371097443353366081276736422039246473731899880598015177222496000849082365910338654622164142947801373287589639078464549851185873739308397258337280745046058414750133982673755981705115286588737117532791799252363693345475782930622471426417497684987455327978189816740893322595055223658074916408199731711424631001819440988309429863708682337162741464896684778340911742735166420735377518411233752936329288262042640698100592811907133816232410043089910973738065536973095818826707769889006257612231564995493384603062332156247908512663870896063099677834762308518627709730581789838369048935795063307391741298869895966927704709999669166673023549078765712361696147545035237029297329227231874362579405160150782445678315802656702256541172844023388460541356568353077124893663714016810666945369577347453939861584600465954037120046250340839149763098489622764086374693664321105708423031018118640025392271286553406593577371143084219824774984929316751757006435347606210717913924971976260456373510667846001711883345385243106265350248882886017938315535444480499180516415520175953946226940440779035828866346196626635380003338094877745502177202890522856004449754605957224694883298315312175901351353913257996850177645094553786488168495317401995375567329737328653883109116967505993813224299184958285988395311708249809359519301416065414846608916310201957067347012923820353838931632233543513691462183433706887117033063683185928848851641260563600254025605462358214227610417862195798299965760889632157139739546939599524082905062918842822899909011857087706824808121809270619633599142148272775215311817751272891471574336757602137244458012720624786011108598673377106430637928913519657430256451546415060443451640006033402752810234281695403035667234983660069635941361291237811072275136666015047619673101129459687366553795690823158799591901536304270668669009979663293473447152587475275439397921381317752323746107574649775951563834593408790865915237506694665542443531384612469830800141397544656612552315048508810283919014122170910768483429063730694781750556442203580552815067247808385895027873596107958007817923209714352544188867248234133563844764529368187900342748859101749842874497005406887255887297443917492949559544795529510499347231819164961520519855180484150313300033783146028968921118772839945562833562721890118148379094808637198252081063182717187552257682372120030697444044797095244420777762441228587688301826195063126607543601430053728797127137330839883517384936440485637444720109097880177661088682489659817375976097905870321442632383598587436753732641133619117632509452406987482421141773610883008797941495139821660277422903458509169521352882902206883312380218172054308242003248522713869028955061527649591431308139626799650894546849532304480414786571420591229671578043910076023366318234903911622302278607949599148029811216494478289860073077886725406884243386507432534071639605460707975785609251748068797979892081757475342760280370446611166372110057780644125380297378713464131442165835490020017416571821780072184285472096837325989908824192873543031772386922593229348478350117889545159175283701962033289117217571637190255594988560632308850131504188766033802288418357752773369831043994162868817756814072361938895319036390879052896344381220904085548461151035411578396751878564088124386535579563955565015250117056838187624325981726582207166970034562708374480909282779484773681059230718652869846875559047907978267362172158159333270564411086212793519575546136331739547066478192224341976139474660201716646785304389123562320640507275729274119555648988265469373139768759102064077517183932988606279455730445393939072979705174440903706902120079831801403616156029776102524994734765284548307952002849792670714035289988185025302576536648925698776363940749894911761980852530649301598462676016448970933962334352965639687149661238964567788922662436415437886931826813021862565815792078140256725864751682574985109575314773400130602217589215422110094629579494330179284576509351823570561850137636358161949366879906297269758000420736427344002991419321473040947890251473832701550806550694910913299960169710948113984358059450600517059425698897354234583060272314458441918507615666653338355911336983636960015653316401199801728780191510089851440665451644702993173723009086723668109691649114305799052604333795753860211798094427108944598985131170450396075013267558008680345344425610803458636682310220061245524773332272730408238007353865251702784445003053648454487764141840521683463023712772462410078087080866386621327676765919624347043583839120678288312019128265583252446442852827500138294492488597424095935530630412262800487137195203660100912961785412260780973176298833823808658109661912582493903176019761562649101410284663563657428355038411293571755989934926444462391638439833731676576375323294703615344783996737430768549533494118544869213846073356320638813062604264831871955926744138566831375966126236814571298654258913148616614285113782633807207056690855811014469343556087744177866463027853255690592283492143940858824578183860094193480288680827313563209662257411027969640836853956829650177439648285431605298656126169001583925431106695103306763913793476093952773134673969941092889821140541999554524631518512684735197508625348856250853525960544281711750098799918975997799610351974975616387554724390681942468222758422621918157526690333158269470744372189961569303376337448692755228485172327941048624530077630888849525400593589751934992060602387290331847364032345923229970905571778034493581595259257716676446417580511742373750019458091424967524206107019254805538932525141716728800165324247883540594737531826335473863681182665970940094115037253373996928443162336070284208064890950081330278440955289576666164378313401280180509747754597950545080053815013989535540860897239001659813892944426499261052501491990667124991077196320924820391780147705002182891855090430402733801394251783067066706066890531588016496619506856301581831889946867017858446631085898995870442545195290204920665278731324746279879626604627873845955270626490580068557177036316890206005684167351990109886387715136388724413477230347840294229884816800951604266462188600569927177381874270215768958703307613907588741169079813722478803738253341299526052564844354601373008728199294303061476272756885288781351866051461075468346274598306312608323294538290318979303417960581166589162315291921672265226697250806729752060915255524682986076572139630759639602386550654912921580790140056856521281905399032783070374630363339046898517483163796190883654588221446338984615327101904840245235173697463395830178687919802493525427002554073940463176146982090616561697070389957163270914702933813823111606505866525813794823514499952166422836326391592072108519785174717900252874419300643830789231359055797386790487384043795337871578037942571119237876153714331290008525916416720253897584902191570600266165829570139663710663297841070418741057142437328566736704213444149431991951732257854254261345321403468605762081168220677172366065607082274839989718584743284521861545817025431984328808773563225874171884857686645449872246399458611420826336664349549171794074053213830126539730547310885839656243725741260601334401328344052990771729734127866120867846046985737383888291961649861614063502938148752288342901147108200610119804236536315457220780633376382077710481704654236688270373135306972382339974624589166236004458369437837301714932142059580426429194402403473871653933837960541340622522062371886721546811657631772417206127454301972006850025609184004202999935948543483915932241023197866148936097995178389505182718111137041008605101014731128872127208858457099241654453865413920709026856821142924187394632007925123156643341571445687289538294937577308907252789724770311058431931122377174333602896205914793114293694112241188254289408678770019079571820601020161790520782735131869183662895257726818470681274474698490218212195564532838614379239570631523406737711815613971251741428242100424975341465207425638781543101664506538128721336064662280935830452400829033285232234592813290383417823285483304587019913746299661718834969933597936246818040040158439708449633859510392213569446411755063232950001615370705067087684631201759022129599337677434785851484388412083708070209611324143166165318537863548189967030780166097896213685543037166548284051747582319682987920609313030713242242371752667219894353565658340624085884265956413801792514924491697870361580449615356252986097840152455985567588269587376620599334667536847810434750107887100521458797285805651410628054948616929600131702677445215581837117729565190531056349436094975839674308003867759950513926076738628973351782827987993425375610537696967570078401940409050562137310443379127387420395765643927930214669348442648640358627294278055923939043576863521286054795798012301834640842041806396880860237032496603022677293115364695317641067487002329380286288772373047129331620778491110255697969624992811271596976676442372835101778894203532929607790609093371471176875489915113387229286693895843310366935177729853745782038099100399186310960870275111004027797132576110691689960542007102078051557574115716737958024580393778431973663482166670375723488510982162746327895486749037715171360216703966030488688491238836831407742450708369329280553053386088050929062486080161378801933013648180609500733666896091211843743166525032232932890726348061734987436629837024618736758997359163163592662078413961197406851633551735166499681985965378120929802809947292443309410354620906485085876770984263911027428547309374854836036100496358013183782812053445966267624171536627677792223528143323856231222695672237099472805110027347654067894076945025148348925178100461119971039656752620331659536430764007216849016580092143442353626400226220375749257748821984877482779200542281266125181584011499927912855610258072328366446330954820870568598023681422847309800768555504618710067599540357707368122299859650454865776051981903949912933471962649043258758085176737063750894293103159307357897706446970469185861306148213966952462992519071582998538509507394308580784486162486154659822040001202405294882481445251933376649719827356484810183929125497757085219158088324960780375052643806552781909184885878970971971322233709523462326300345445077751913524765911949803783036048290582586216648375661813242518709164409828309734326188510228743309950887468945539115850614864084369326648143791156147810184711161504975735172640927312812907772983223323139024584292452426641076115928770116086486878415617146541028778100971821027950810758108076005211069262107453065647895455219696988939334507641539569809081641702252486771374715849148586538871035955998998507535657229752821361675881094628921961518822587201866189171609800525803253851464684991026538141025562517513498565885667374144669637298860530604866561553060749160789364824211545925154762157881305695939955584283207471251573564547993971988214191113049363263945619307740583087551571235516979836300541861619394183488594883881262812286786196366990057231099081334428398154696781440856885282092440354428009331334989605819418750597796187272563011313833430246968374438829261753096561364430453015122245828090313055736222920711244102893652001460562165090802264603081079815797685500293557964621908330981938790044623929067689860080735658260600697405729860460198061438189786427942005860462395994777622767766847962040119374089915992116173780216718235712142149702887603457803006250926592567671420959809319766434395738104795830871126316938569343077639888847422319236954609042020045023187041785610532199951020654909006625514832243370593664262391441059123276014768861335681998152202955376187546717043426580376394073941143028129688859329816851029559460953070965572781504759073110340506014714807973130849994973640575569018987330754855094143999994360171595540334559734164908731987803198403034407134556182600307444045211758901947672056032178088509655703981617002782032898571228544024500714249486956606495307037416118513469693834651270357530374954509716613944872280656431561597752056494921843990198203593961055575159456197718653453410004216109382021143110697118539805722039962545147272067964146604603673477035436043644681413175365992838087167326657216538153212372129397914459589066331926177549540028528530014762931656249707331870829786225869306209102870354655798193881438557029915059734883867269044400126088391156604140660843174242539631649964893166106801288949283194151706848028515070707015072207043556537095517889035153244938150621298208268673412979623325495535170192615689964374367094838623637601238452151210725085503979576645834080155038785698493902118609392956465456189586545736616471695284544956219144855067781355141979672066785863153203702589795570880610239157572673205362403972878539113982356423747750588240368395058083395619653444816013926290852007057413424975628499458538273170312601730450003538554301202379198973662856699854326239305703928711421627831678043995138525694594245442858896935452009762500891780291264083729453045219636788773115023805629856614471402590127804353991179802278520606435888843296496559866631450643275097509910540013529085455334909974497913868326718679575400988601810633738991731931303535083389753979511765510139154654086191932091854755148386872121164278970594415976074148533667708365856264828764658078584446005476620257466393034064705680736198575495475554654414264535486135121550779826967924879408978375078854089078291872351764403506590231283081293936034774665716764297089056869052700656359908373035148538370979523994279249013145662102714860294433673331352625631971906587727699968783151092127035634502691379722365131166127991140375936856106759963748412849883857880166373992424950948770358940107200407257360901409647449891055894922166052782946291327660018390577869854134147735992011464030962307865362564746659394349735324699797049449221153896437836631460985816144729572025179444275803799050326740147530344005942269477407139577538108869973285766627959350391315373318291405913164663946914493041191929924147163847291682558550449615075254636706886155875356205224401678220547809452867160277690537322594959333154133948462337655383931782904821916037658571412445178540519672304336089124237156156993677429258742119000849506002828932612358628781632782461561042404385336461328494252032099197035470161580660386502244144354673665467316080123499689077979097858936508590617989166537754128430834015424367982820682038400948996821613548197049515061044329912176691800533502098766731707128710471297068161728428946037508961800732723497307593528773068470332711637475573717595350949994431888343508389476074862834384008676528570847765579433951267832577011447542650596045851578444844938738015770562096050978660662229781093333206123242676245565221317192521448469628244654429586942029480105246129079006828816971823928738555900388509852143490324721937362413948117811415054812251978997126977907398105277574310325219334827007025418173599807342510392989400821393828042331139102963854898807269634913922814262606968664153651474898957315341727852321838603486143598550820613226509802110464650377514878978685987468354313751789314185986947352158829763133737578617840897007285326653949961767132638190489936181569139421555769257307570537677757834436411708351185206477823939671972713407577414113002926707630985544765010326211603678603387487737819347361511089734007356793977699164127437500060377750041080635133872671029424384273397271133198568290489196040781738142110219486477546863575058001109102714788521153803107923459753992394307439350997474445024306759747382968156426133935455037547316766555034619382323014918172296803396477489656421000578524770073474628472298874006794483986911489923348736458136070646493447817415331018910985434395576420295534082038830922596586676342599752275825728785958612880406962295842972339966302442277729721440925538163620719372057289460048896755231985194902330047174033568478445142397664479409759456759799875499543673384074410913446448065714886408723806271436637997725348060741440644089061686178148660103255798573236049497835878157659178329219186639180564762297821871373067360827634447124192554274464895412324618202385596832858957830824356589663437548882677365738239736191917150391951994513371374909937606933244125944947907986944724899063474623717427870316795305468867915621009506360632038094539236530846641933381081723938139171666889891375554551893751939454245243288122520208328631638613240650523287141931817986520996542794818079190855619696558660113757102541591708243660664541462076388386843326058261630029774747389335413518937523242598273115427014469374937881648224504161439478848533110679551571733577332755350470124915790842804829683903149062265609851253795902869742607016037550278251326178619799638475890800875304657522721037918738748914762023765366687981057594325789498544156671242756043177596596901080474924586175678521164539688142418295051973831052192382892836138454608493982216430454660574216649235443722866596803399532740267159876193633317753521902200410908660918069165535064595878775284033786298704891445075570572939161483184595170108721337436705443517740942922940505222414852675774056646703209184041003354797137295200711023789028456663847119650038114999664553085086806837961617591015559284912048105841808089190596536837082484389689240256408871464582052682285716188637830067094378833058619382836963603717108974355784858190829362857119995197923248868516437924715748396890650023247374795403775972775303029289645569933637074960398558276531344088177380383781417776504286886870234977615915640081262918425752128766206214979971061438443269439565915159196046989044439181226849643667551035745076551135332860547139590802028986460229775027212122722871008798582304516918575276848736026408944562984963820384401668607250697025783066395156612961756233113968579778915485470581747922337764458824472966885151706761741390441683889905373476744832862360654179219342227512113716928877194038064443340141012038310282675314993575723564255346176094418899659851643132650417939013664745707371495223615587525165925112327781544501002627324514287236452688447363917914747923504936460949890445604093092973999078024918984810683840073831374828643477612587164980554533438649186182612211191670308394952944995215706548591390572676865466037286558218623587504353274380174545713890665101525876260049067664042825736974550764986136977116662140234092098661318530047260008437437062416604857856145628955069873903986903435692134684827679573467503009212851925892182613380778285211903934035406098338401539351516428307113464216014637328701059605648477589313995782294193289997917609696537254535305468445445867941041837811322932385633318291385048562529113201347004910347073646640910541719259017519446147678569706262585292912660064031620401915885968154901167598758741637371057116032678643074148279584201699017797538125915264493947884353237998768513494525172114400681070812265162301607760429174761750338810997683097061791523706897977044355448520196710522423937119226936152697189854462150347990359828495654734459453861981770861902542965164547095492196122177384016476694581743914668410024127357189534939250945382286072915280195175202418016582247683467352906251860420248466184100215606111344216706078433295983728917330739492523151593929022865556382786117144030739710701436480689715572043993205352401457705768489415110682003115334824452793881835562489284269348477326647090104631557431324706614229766073753173711667534866436015058431431823367353518462990417387618702427736531178052851753113456478104005924291233260834626682547993955523368734735686984920262558195098186954511821495090467237848572576433723117063491936595235132567315119493557002626182043123999578355243600088940317039108025102044743607812778979421948045098612551949342907754463899987573635460404866333979844794824922439793791648517339242391019712971126367781132882094382700902937485307099533020676998333807540701119524256068273107030490076415671359775568010481476081787858423774644610941962474194209215184144011135513482925628322267412979951730900916120522108183573064683539235217562693916091383681906152673682589500500285855450838694147621333713086241149351379832609016802366244720233916140740968976581331661728957459274796068580239598402700198010926105684971797731697127304001912106352329845029172004477333923963763565612058372558828676207827212633572258043714891903404586839915964716709476633633667477625851080484910145112153515268493521993075658725564731438330380598728503252035739890081961394708494785365518467172856912417801651327995333191127448257251010445941702380075375906914510564624112061297076483846222796052420744949729561502748964741080467815272853454404832524734842273273650032635391264939402415527952235822374898172271787121160946993982259424777451832899606435473970944499307583503717179586732225411820415478658086774015155332064535042227283734854688344342855899233070805690870838642663382911662398039194380813258229200540830954320605281179302047729985169683888258161372454575569951104650474958158421822912362995521666947749242466317835894244259402152610083964353703127329598848111770351001994191565029533729946163752949773382393185626848158874060945216437135356500797306700808454486898649020558763793396474328001719635075486602965397399242264399092030683268083390659720104123465767675961166514941158657687324346893013599896734454949417103094166451010549590874598635036170620613254080663633022075998602495841597562771992836395543606960028124956268847053887888673594535753889102033450145049511185469283215828295183976396739293891673542075678990044232609108477171025023724754148613244772452190911024057580913104272305717529293285299068731243872111009272482510481291808650769584367806575480182772997651179515548234002151100632732400886174243989371213513110130858302710271303309614786106828678763815057392946141837402950578994410528054925856765904161811357098321638340955129608865520737091068617279621496572326643921609236091143993719081338260596814470788399199600894496865775866340342161716170923562147077156154533277973489592280766346043184445477436875657033263663175885992827297085267344833721914404151851269193393634933625119246386770790168383014555183310331401941565958887796081356799106189179025281847088366255285074972475150213135191228316720676107367574566929049336177716694199966858798633118135295528784685645154278780640224292334689087441514546177649919671873686415268042218278630764301743876370230771867011642919954248031705225501656330522954123144033489737833101290324284915938804357297787095394059011778289216948562543898283464336580926966675160136877488610559979585817126225012094441598166468812496731119610629519264096755890084772479931769735291055860938083003267297614242198706373445724238044557487843960159020846695661645746430034675222260378679245181474639055579908602165237073214631482371885450894864201312042016197373579277790473152604386993191867680783752456974775228995363329387445536343775796513499503282426473272787164905781118125087995699431368476771714325342020917420119441375393859624227316826953032610792386975737553325843750522534358338359485487613142435030859133279638965652521443658542274652706921957001924187087143279902790626597217039966846118500250261395090091114291783802134464429091014971373447590528888799106010215359227310869736627560904255088402840264268942380699342249769357225231950194287674009517000352868935379585511879148299089572907269355722601864212973927788388864660006615739096721775734778933826968656150671919312525343776364010122814244625709642187606720040630201353199712379578542688781607225102319774694107661644637488867080494050165909441485703641230655728765558659853918808108841422096898815137548601726029359627594982216020945585661486914144621188467969896762492888879800465259524748420393476229065266243323543413658254823764452686472100805295249978125010992732199316763482031124975060355453098081982027180680315479262313236474513124579607129557757015883505794026885502485973211256864947608446724078075914822384272290389525910347077252697912839989852734641433410019472027249955052885520659600731445052092939393833965523250821237289053755094988953012419502378809763435155250087578386766567096364092708400285205857123674336318168376065081078884038291960940668671828913407884518737291123936598740625543438382882070139581979237465939520026762891009801182712356460067338061084627789859600549752333944709041837903742776637274522787570247824197894868981474435368134253414864477230755244261577091785759626525264542091749720493238124173368012761530434257722219630565330736889776630785890548115778313296707662479087118544629896556212668416611477083894317106820242150345712105284344707474604338458790007107423700684142470348060464579778688900511018811407916932571047131144437552912647656047590782997481838869489856768177926040923314248244333933286689555633001277036592431148123629905175566074544804046436709973610471692301324510485654297908223854122214011452834531133014093296171462472640148735953853793140076765452910506744896770776327784281383818383794051988445035842860585005421645421173250722602250341490687671380380637056600196709350375428945346179763993042662984793053372902938257195276360404467427999914657291463948819937798335339167193047296210591852340785545149876268079312128699944134823142941750441539712903636625071295121142686819589460936760638413360493212868889089649078316842197127916415750822458856968041078189597171696478421577922613902528210566891369779997779281934689595512106900434863075553740736710715834190430948552663935782666308262504716198830591360304171292699555149261477569216605036264802894906106033959793812657473617907083096496798753433700344306444586874970057779096081308385891969809444666741252920546699680581359175144043870330592107398977714371635669015063122472962626397999882430474273752233990672907331198998607168059947797493049350852332818716494043153619146634214157321588674054639158813858748952807712304413473706643763501661158794603668352563856103963560852532137188492068713586219002047227358988327060699376167641714673118361510720845653166697979215819718815002012864174606777040502315437458224863354289194024678716792123036909794509720434605954706332352134160918913831541388696779223278896442308020185603051731717507221305675269192587238100992217681892973365716798870647456453597480827717764561854002277381471870261453363063384679445425380912740175366902270106136280781737576273794815326311606126564549951899623466163903978034308656471788395211134304655230088387673112925094218315078804512962376280875261403568730673703498849578219052464468456412791656494930627519308345222911864503509967400591464848903614387493241031693298782909170644985265037922266686073732079252820999741315346341188974147938033027135698722138394722270866179378761390498318179317410577254018726955762818951955324486640245654326613299149364678923838964537377120119215161882466835048314693178575273363074010636169318404634230819145889075646705653939127102748667842630201537758713382933961043214275723798644138876415530359808722076624147978039075551484462423295436447230203554251792958246190781519334013605129098279921400456887913971630796015762446981709422917392914291267534646321159502922534722789051136878580326332280886161813879188817124831537269647753877707184020477061272553232413140773345670777477892565537428404005986201399816285009953350806321478681564091254387080281943881655775128569878549840778624217416102969647895299610663248411926785543328339450718973008731550966813397356362685975764543783415806291815135340378591186262267978672838997249120826356156596852368644923924823042023608865207664959634069520257479360745481386658843260188581308966294097073773551992454970985722743914479113227909763599203500758728519652483469688573929848527381753975419510221989878858066092924591395252621127457241050992090820791254082960355498369703099975448776678490029987228613713910779627553711263348729038939267120890623066039823787827041142310898257486072157470471831600470418338683091312538933591652738824557442912886781184444868036963385960543329000102108894777798563808044457361144249795300199371430760957422849756326606125848770030056875285766163644549987485908128333575913805113616013590657130777313050048320815825294042348619713155002922545223153266985932160821259411449612967458738600525572022155318559928303322006351107634362920788675703088373576567134082104764682221188811974218357445564678951483918989974114969799684663791000833571012776890675594251822198073832403047505753886103688272831778356221866207083832377597411799109740218611537644974715728388081490306666364081856378306025978135289182247805150845036159083981225495872708966576044133682540344505656401651037787184677302422498819664152197486772191810119365904817227655855153078423203936072287535274739396746381683211200305671844490037868770665946011159751516935095319435284910019302120617030317221935518012176795327967164861819710489462698409720732026448545862904446614421339488169885866266680239794671949416941975526625305789578874688789506829296645689639152285725976763961327522955744979513852246244664577794898798449791690364975095771998957691798398354928319369213971106312851054508950112374859587992052898399361508887056279237294547472979048316675807831855606580631794392259208372023151398554479641923643371602386688776024673985050971559351953946988623925590595282573024876223010749206177606733847193913283366403012468221343574327921118064281450939393624626430402874850977686085048149049663086291295622498443624414603041975323143366517171422513005155464427847560162759552032136279902824484865985961880664649320631455146454221988968280141477082061686778569637969893289085481231099329649543651536062069328703598217051120968980584198637109377451081338283724281278725034170035765118775401636602091520320636691847422168134036241741711946489549227220197714684765889783335995022221599886427062513623069018767827390220516941044660934820091494619941568421442086626800225211157483481031704200932000110213893687908031828685983224481071056750878011911415878697309300555487676505980818806679975328974847859396561591746855138303862692186788873917258780244730248429059741195918120122621286688864001985605963027356404862824988348100060834914662177574259039835169410022745806075013095158305212940446444961978092571961431346413823336155318651802558880548577728571370675980211549170790643341534673635920366935589501374123050309606513409790977514621837285770467414586684075886289890921226589734713697816210623409748175455732570789608562377659653692012129099162037636165688651143639908155385502137736625586449096189614582441874314430420606145819753739185942578612155800725240281233679703677462655904721531805631855635262445826783357969789414124546202433986351929402415581893482957917538224313258369008998631778356252635844815723544051236863035233262296627720613321856399415053768578680176720607652056802897680534253356088846514845753461216074693058991185386190409233135537131904636015161099510743697332651753918238634351514455816099875282211237085748434068064532562115468639076641247075462510640538487993874736948676868111533671077397853283253641207863225333226248407708176273984531725630203862300124665523373346779999160235164549848764032490102695212502110295533314936439593551564571511781162684734312829242409981140828786720471683483936970215203051464801019348994064981316469464508967123949699855114304013390837328010334195990754209786801698631181835688760315316546357043791809130436112198925358935037783320485050618803655243882738093680322282583204619754707649885221855966189022256679355759838850114447774942980431753984375111418874915704715351575381650895968704743224597999746743478385433019231735991343466911253358097259964874900217501187494534895206892130211327338196242748254665142193245825306102409859232409598751125689529762334199750709861257083901206577405460055320558404989138190188279058727104346251515134374823099801549957410119154776793365734138668250185179799265006729789668996971756154557161608774137116549172220085991109217367488665314080855148884743864563338135069290909332188125981492782630542833291819243303151867201629185860566727623143167583135233579093271962652901917987993123629343399742064850929662431868873442918746921249965616319543306274274870438879508177327298365988544508467476915836613949360386312508349345280040721462383245621596741244750343293115829094786985602996042127586902792817618272248921145367855884396659068421328006714388559474056828652309794989825696183631028227430555728553038657856767354542403559586133729090300645591696491267856325600622296410641430596689823965881220133825400924270035369350312448032422409098089706376021478504710887739695474457047119067577312639809452506636273908552619688637826690698492805727251207282658338762048128708778344040330068165337298606018123945277681902001744974935503714383286665165985039157744856217430390490874461445831696117737841629385389004402938325989575122443267999751891175998152105496337255494588892215442831190912182600187760067403707895140407509442310778083484075325097274795441089203842147258702341883962037246957042698166518622523931167448062904498278782036377813274862090435475758874001149809948014549682751385785242576661548534493170654131902439551935115755411582429092197911456583985660052709211406259876244246978137286099660524567850024762782573201087141074817224669722063461066855573761134685927329798522020300757733235658595262629619873177050159948010088505402088420907896155640651806178705469577313234146205981186024048593706764012330625180781025242614175609539091125436823280584142104034872595548065728572268133596700084825541160477987576002962535062977351750315452455184323349693932694895519549011761608665469894989706020772166505438391594050793489141686937579048416595415179450411116092965616625207462342321406379881067263519783354714025515799508126195356160971729584560787409408209271450423382592178632505751921274137640639081341831681996721038702809945856965499371254496491989878843857978776794376138917295631579560764822175879731631690745556261862522519711925243008703470779878975471963448258040917827301982792527360120300939720024410332677573286900592306546823675966213961985382840284952316089000526908427011808213603956602844435446897939823090444036401226700168058266331975515788196614754219559275814994202174369384728193514856893881477283894369590558484794193018687189759244475141099552154439997112139965727772685763889980409914929396391375002101127231050286011979508397607915945040838017372991368042100943426521022945759671753282515529593432776437237558289076597955020803390412395764856511512133055735590397167669956187682018413390527174989036319850651998953981476990676938214745478335183897246396610735515496765407216386543602749975687813313448337583489828254039131060116023020906997969054335928129480883287571633210101890996625187515912820179221604640938465017013290674353627467558007154415941848594690105521080593436760847674689413409368352337099671200614092779969674131245824485315330624139320927718240201075973200074901512425152966588482731254297037844694378475115583566483932655579139875364400805584521920657742666835520292342440063547304613598160098752693223883338142855551365738616343752121384385180761181939627445347567447576528984868635553807011665709952177795247335578979839638647257447190325375413808676137830022992653601756161723628481980880562940205029605766683690233021955427193594774986676116454252121425781786534804967144972203370609644407986820413959624833263895981425609547333592086014081451292005485922782471667923725040070281984286819678119026243154764854813541140664271362969276732610632083681419785445782527423713488698573986460203211454993198888633028385228141009142439457490422537261180577712290373917453037450868162491524369719110970475151040584625301845595299816062565145883739055500885770780606192623463328068639112698288400526398874038020494832017382338802317514468421030137947267805203223686871877358997087933215505555613264842957970555912694459824479214471826692749685457995899807595557283427218601604170468481214914005039609707454161080960620964660923026410901824688145923707857895780494703765677407302845483490578470238211978578876718768145302148664137209808590957680325709297933292199388212185004722289703375200609571489356273719999701651340264435068652025028128202552805868689390394248402437997558887218958086483333856699217911256745548120525426209050023750620411551733689347762487613565967217598284280718627213884923105803485591487602685080523776562627374031451311628927533028685519281971996027207464872713220709341468789421467270459540488373998042530282962679767401709060860759361215774063773330549456853199826958908867380434004779174253211690463131938990278396734074160674374672703404631570552211134924450810835797757830358559079770567640148119427597073557001111790264395740922042117449340780789556952903619876898436840340906901979699505490574974913618471242384619951913320692197708698202250545927082645623026220072204361336651619746209417435176595472220415198833711475740137966049803010448758790815844039994158264441852806328878876974644080036416561321192583239828209749629808873183138142289655175591771088698508362346825469193856341793524682671668636852631785658746696948327509943366648616900697309456376742236322149633673723780893797002977932812005302973990288470024766169349425294931630652029488528117120720780854021546551878555265949182548721742717109612285472325012801374651406722742987126183033487470989463377326327710418115477422687636795953310838141367563008830176869388331316509312974565496883339502856245064101189837533690767927173330574497233345398404938423286157548047367442246292454924250614487758642433005768704468696898957793731249459962493476530158676819720353334722930824041828538847724824401436951732105571986781568058664557119725665408782091987556433473494259709934418149169211524241110614045484132432020053986348519336580591654819780517433698153613645373879733455823690782733067319897823303362898141026323984827026785811669638169449296015418824076935634517641189290232015475520330486501022798467145943289544187229709094280011561279860511556952203852462424268402176079718408445159351938306234432864896425821446155020281318281286278637478175600030719088895097137239991450308778879836434943036679110003998873154029926345766278354132408672829741903077190405020453239397958409216511729471516063187395979566661863338058962177288321888265391679345271004864081183172641930066287024815055656639159460379619018384737801119034803476897543504591836642817463559496642491981841009135948358700216921401589971030176313738884441786609679429464633521833615089333526989089039035629414709152382746709865391895739464767733637196602469078365789398842771747395067482786602414772280588837025891320693872069117198098622806012948126420224564223845267596256370636774187276465405292524920895661825580442392678890952439977684541929034032166769776566108433106898133152796112306694185947310109313754339074174623430944440132905202675284813564191086309266341709865473188539922319771041692391034155661952542900093175066100872760846715753037118129048342083692719178271912822132218601621219040689828807741457925903112843902367235854474473359292829604525876411148102979337783633629889495004972645689605349494784052273049722387976876188147200372828526061034520563908264730383773063513008333700658875315181046266513897471453769492739814838542640379309145044742186580333337870748833275221600831486690796443027199298136841974127448136999729805841742997270868047177859585638542690700584635619061799385713978195982868056525221597259219319186392538382691055174404887084051639952346439804719228450215743570596735502128517501271808187106345972185550383126517014257664323243634899462692817916952738782169516780293743395651835374308809527137685970277665834061287008788575493257726674454424004489188130195513109717452088964644301584925502455135866456518369967028253152804145432640537948197582362375706501007761861817303704251632674018920445783985443199121007615815850727476391246992807795111689190718388675646747005307419801212990412771237435554527717588450653154347409685187672227255616356225548696247591351720489741094638159517880468811224557693637745967947725441249436935270857644966229286498054380425596809951691229041960656591246284916100119898258436422443058400474379807301350602226031352683430125242696175309356355589973919986971526986184995953646806295251917529702510154517147383114063509742345850827805676148181832356542072187050123753594944691410447045910041287109446203189378207757842270199611084002803567828230497295258723133594944273812810309813608910310350189636480237674473771527086945957086137601302559300599136175510563857297758473345585991248700106012399123831732713411528865330963757668971282285649145235634125462491082063703645043835998018309875531254569262926408218269688222279370618353073058959745521116179274293754780084855718847940687602687375591651018780851628009640008496325287346715343402532587728384670281753389393198496182185026181572878245415341578594057135351142058028933064501555698730102659740072422680484074329722583347999255014436248388209635677543521400156038401657486913767454756706788324690400842386667859557532393997449258320838959600579746502049576485232704499741904169226229024211960674160330465511993905810962603866169311710090559382916250221853761031574187864561553012800154403500134258148355701804705753993664523122475926161012605652993788286156931459082918555532697925197562956935409718735134325859277729072499126454038323375489794480977604805191356965678365844511763693589045887681811819259220483749690117819231566417782190563975419781292501298779654510767474880418542951515569064928809779671218107525017715267516613984949471742461842198258827619449118887824788947994379704094274322804926898667522845752175610958598295233011915585326918560544450706008699512196245526635467260337864324061058599489368845602863624538165723792563647914987564364535227093541637897602678687144952800772647216310304360733825072754674380688049413876790849375748772684061425455531218026330608733284624038321418535068446067107632296041356112134285106345056777236478991673423319475438275956068222991365273104319418818527833594361131972629854069233086562914899766208002807160900001796248350102668689129771253160265184360582605986313174066203227216818535964072089595360105258092329029195635363089509582732118424367770930965492995393925801227996182448350010302961990880690885900916693141669211805632674077994330302372065947671659370977481957448063328239774506925781900003677543016018480797673144041687262572916731964081025003451368463476372170349421947279689351961392635952841803236810818816614831434797143124652764487475980931692686348690161133205533463867823343793218122777615692700810018764647279032899510992148316108620171063763948620049039932338647632331019740749728029522111155497508194748672692725574142627058712002824306498200143891046060077120025760631444045339131858301698499818726612030620477596136620869283809723498252976972894789176600175500347827043090790867395703690855460125850080499054360091844480613868367901322961365481181904151997047245813235862593525623996735079113011111371815722556128152111926771012296639526164661165322127489506823860503607321298067161361571228589515024609926103640909645213273199872627995525560528367943185441108920758631652682497208736086429784054928329985217556553358826385967753429429668408138102352229285612720479457320949444586994192905598772207095767176425659532820967724881342518012050786843038582422720689987264487412718425152432331707844560212358915580015597609834774826469875788753898142030863469574015102916567803212063885088482194386631673208240241099421644002402376692253274561194697662094404232773618584926852256692897457313662856219214095797488181216236972440353178307529853870768658016686344687208882519693152521935478242628008600256209051689134139513181500299466316905027865809734770783292735667521380506533346008392238195185987914038623393195965834253906210331741905243085817261106245200621362991415973731531699952620714753422032307621593133448404498008878491922268693017951412463733220418195105560421391263183598076521527371224387765408874852114116306469142726093803448047861287741504197915931924397665296278595230165766032742342703754225249919762863169969543826209890356756929866707159275459719378473105462014271661437046793934562491194554363904617231102639569060543328146937195449612971222842231137661282605685564379620095365280967866151146400468529365487521690224003150980539585091028513108899054805800549163938702565841090673309317286459202226049375356210574332525481478397387487870627913647813036132362873918937541139874159642740478562414390975281721273674522461651363275874537997661662793740267656580037414066412259006112022299817866050767629628426662261056963547208968850726539844345525920351069938960191968457770506723870538993640517839104852397822647023816524349181704083962929295702141328029834640830489921956527554846762780385623122889351091786660970720984631250543707721690380984313053300336178767095567149195753158685867616541955700542398941922351953629486672590681775787294182040377966457148981976857594923408501990699715125366318856198715309013185184253674594750671521857898633097975214523569419623671677013149139277152564954038301158653723582507499427495606387078919374870481408399172628408101848606694686010688860577416879550469532310958747625014954664212512203086809402487396069223318929410271774321194461968229347576092247927449339306444151710419760300576612595541114518971351670545583363219236755479631696807185623485750633050301124370249760321757154342792099464506570051613642466239065782531944089498647067390844862195057294610534837486942496112125934257309963884213325543960421290729383956561797410927494318807954067186202398829393099697282554902529946828651844418154612365156540258510041592475325247029953047597323464781908530426823307638617927706272733711374476099314738069015325987137919762068548376823633387215337333991985782078911138917152828066835531048005630489694319935695527521598626812841540122185735677283147801638849981611155224845755900880166839123085479930716189397897498843192830359588659608331588477409291231860455128127129528750762777517197396041278833353553426437184598097438666095003346654257029684277113289236717596824365394880940298274104509823134256583547288733664459802546913782167682500645299388064809800612059891894582206239202723744188977489777282328501935398856358178352163053074596835477046721394666589848404281400134452365681763357104316498593192300090702584976293144262390245824256203256169498052651460517381510524290735367220074951967797939575926696867297563165654846152830508434383864171817399826349451068459879804753464928931061965661685107853207415962112963826079618223968625017095679891316669447596008803545602786964780541120361396582835262926443430656928323446348722710639274894379880173886173202472728912899472334180574080393745922423836810659404122254781975307396996314769850103292938406386675956061636078564474754050854751168636338559146265804588084232746879114897101839304884930079056431599738345979062376222622181054921460006528158513916144502094434803716526787134769940062207585755696744689578120507167883444250729557917432258689395556945324210169491622123971114480588785599358686361046120248153399084819123437661961049668563834686848665372827618407269120193957690050336480424135241219568723525681853561070622288249926176841586551287914114246424579793876080515770212549378663048327238230418919969659652331638532328138694558797366279223815381369028807367889134046001176479369802480999469173516541339044654343415946412399112787195587574654837405063113133901935982465031170256870033113062457908802686939937451447431182824832339198841658684796681076089589133508364302455199485853377625331419957041980439274067782541778613816919734674529616315937424560577567931259412534136640752018856721713464270161679928112635705923100854482373517840114596657865369913258458218823077297382639715982701678796151945526566215682748937905903907252127430614730936382976193103146039239269145482548162044880575544428621306640813947273077769562241610157331622941568197211693118772602818175261868547737406477200187773540021154433606441123996251361490085207719408779461443043855967123262705148229930835990952034765045653399147114616160145007963435292529914580274745189541407424797391368826871990180436932108521134296253603079174836680557613277429442785774919809489425665029076519597186772255055715035819373069064761905611254395678523425492637531287716148256068132851710181006068210732357938007587553642396746896347855189134977125281957257420625360198751712533795423952463974939514499653828060410547363675783843861036639265169133045458910046633667426932242153660177041562041914446674301851360717555371251415257503544938779088631695264317664393946455568240013887890417760052930759663680429474667188826914788575461044247331068254598530771707929954293089647290639249408891070242063299186227771005287596368510265200571523119931079012388286407631154850157791407997391995143497735327225972383875106339640195010283973116854222512564248110542504768678435542898266335420150317317109878853133873818895531180561893151963740628192747936801358595630654891398475536118553615983885818255328290280680803024996750668215892441818313170594480123281487228597566402464280610274435377091418923331753619235632648234884957498062375883352257518502886865794541783842095684717069554388364385892897144513574859907852869960357391586493589959217426313494019076374515347743895318942746989266014034149928855108523819462938664600684540131230475649733441943824775263236451128271380541659099139346302018147021815565803076765573181202316249231952146190604376057034182570871658124322502707011432419694056467827104262340132840184391240609958051601411484062934079042300295278241650528927861607193801908852948880748054081431877233223731684077148072791576211429635766128218971022656936668758696775981691334885876014406953344523075995479681812163329203839230732584741352457484315901581360613911374327752337308932757222824390168252060751043541551496389536909696035931664783380812957354006736164501402323343096075514713157226442981481084056073637789905093477863712433326358367743973101203351481541818691702239222727563274753002725661638627710527609103826118543303823076432097024492736444160966918331394446629529945314307128480749592215039663240095126671763037961580124774839994622169908883749102338302099421759396193637536849142821273830419312264406481668687780874268458879768732547514537422321916903687670674764096690109211330054368313258402669389983079128445412422724513856636582295946082953732779000070179161058190964796737044987760264538559519050650880931917654303472864518593901359744319771658928676052197774357685831437488050616675065265846567263261173971832129505604532114566824274605986468169282657660407347740237537799407781593608508813817599648773918663717773060704646650912516846066066240483190122518168589646822314319419481555827764195392262489798087492283763199464753692591858533865462829183098695368149494441575483570400983049100235177004187867299160375004472189944218490493662232152049481414409729077423372844241428938223353219902932323013804299154043005422310204957634607708857813695067609422119330908674511790276376083728402239926750572399489217157440439381298389573762569378587982827817833341599033555954207114274564523751595925818032131247486286962983037661981581986011924233694713198846948322212959532227277848547895042822358567115620513729328553243065596109669381649568362001048420760425226596736878209953462357836355989039041437305535055806994840282565443266621361276242124347719920372734823390320892394799795263839632281129178837009435106871617213986054415592357521403590922578944240820073722639608253751538767110143380621052894832127547048505694256108016786553071874489990401096103379003039553000409570704983115596114642644796662734916004075783203072971576397478713562536045168298040178291840098319201602356302743101109503907418626269597851059315722110327454694130125596523769615034762151160870578108332842186632880424834693971760753088721235697532883918118305968570755881624067715126579622391221352320240230831552234295503708348333434018028952311461459557540477191784753658360387648552043271326918213066177342628477471189905851705632876565737957389677772028472015701942707470301680466279994388614123514304310586471076525296328149572891208219850015368440904407070075640200003911262595953221595686169100191102808402811373390573942077121491630738431228040745967312712283278595949538363240120887490441558445407333228831145530613340708217962047465425937593607138702890649302219542913687971931025003723116270983222162198579857070582575697363368395278073417152902656238047093496566396355762980376451938084517278978969917951702613029816946962263834089057338345239065257537388290793380749175118058036317368900968716146920930162122200396077217497290329167491498618880769201426730067864162631609548908823625755992110910409615015349992749597808230622982079013442967382243348692233174690882121554077590882832838544470692149046401336363136219509435379601144899471098875116179888268853772005945110790351623130778022969211344114559757609021055916952204854284681191540603321513737586311654141274296935275972803814343534444636518168890124613540067843014143248543902305459169614897494754042219559870754411644823774293991588727757082691967250523637827094710364902747212605595198756129534004532529830145658872312826139042652400380986325630402818474864774966985248721799531545223031370494242085218677238456483912517971362772286747108290394210495294861563221388916421595229878737140115968931703971577858355335770553969620062183180241862435347531330098512742251427724654829515726691102175232540525545545714899836786892405795403946768769003401024721723731576640169292605866422391840893401865013770303899390286771659633314607363710582102512488099202388044560085511830171078079544780503571965178904300366616683851414789541023678714598268056800359924824739769418894733431781173784109309518535486561390124057020550264668489185264078452107089172413835887406239589428222705166043803882138528618572263967406329852148159765270033761333667122934015511583692419898145859636518970796194778219575955094323995027552877874069974703844634036117227663861481673720969202215750150872762339755971176775409434357619556469404989194879958770397437684494874113792157358381697227754878727228846577474262163147993859806718695747230526722573614298494964343468965161640983992917487795273586170740289891450477397690317767280212493110247528826320380166416548200885430921402294614714961906295146156411863588257732608989103919278304947429483003530208646612759918957589789332680199958031417024050649143922777323220236568316508210562017907190010584820437010825781772398361971996164391849227437017793192948061263091582829546009011624854264355866039603913760280724710724403746431953696542118739864940044391565388384795363719756558465923130734088478775499246157496838375196303052772928741903648202161049783891987365610077111609778766211139547094893972617444044101632571215789329914276588334950158910787076912944534134591890713626537868077800914434421511410960868478766308585917007557432795719006462772866818448337550802210645905144034914357999790502521321205794825357992112007267333182204640599222372106839100516024852459218603819242479050604281313379767158934627266764622573854560810596609852212881068724519461910214703806694163364657248881319366940177942463962163483754015788417971460253763990234079378937501922570997414207563141616481555495837907904650490363828841317748937017026192634565372398312817626113485455990455246576422275499137881041264990288258882361980636908382503176397516083520644825335147604353456396517210868198226433818254346000653169557567197652414183942633942562152516064658819034088234652707690409903784544894282955816970362742064237195673788866599090241407264338661357915923011371171758339107439463574910645828175097743165845473347356372703398701004977261004015556595694375397362234370413820496590745594192692107643326345158703037251875848924748891054783655174707774813123350446328973011995744689243473263041258481615584246395064543158902174250749232180020118705738103429504504011355804840370328384992362648964872434043966101965107928506898109598338881282572511709497091557195639860113832124849196323125207374783573102741237820116672561139137485674169335506454403076197991574028305541972025622696739887653479320840987929094497276309290070278068767239076321483493427840455195931649207378489016178208098697720046378747396555755648267731063252486109963507609347976778529568667537082986680743420624655951724472368319586044980382608957155508659307997999002457787199951058636996721794264297772169957772405008126872522170513933008076305883203485319631570590835207251070477809277289688029573358965403131725160295166975438043229041159993466010703459254645156787697171872653694062201422208752332180855260637953383520704541687410714443497425654236762715469519361327469749344464048510455020356681741872971541361518507073207640214336547130569466841024701499258874490522034957013236893050293759856595260041574611723727039434984032607965367297175013552055106300976198373046091523294026146049595133347412735378254483936590131499471568923126096155652879307735020044411175112709442929951492126478807522451332216999093541431556980393018118404673820739820462733850698342227108946039518528286708901391091059727817312313555466073738886246430694509131844732334457467722143271863991592534063193466555052921759088143533668091177318941662246939899765346765670302433747011537660432369444804243477195312895625720074364229731094028260145593825570683834400100809580864522793381094392556303007362660440530724244782379161335206101264335803723607318493486810218470907711948153837234630197555340078277126318313758638974258074572582903293570161747815192513807382493843651888019382347553482368312503881400956455614583791893527843536237787824882367363559537497579502377604284917590494224943702719445315226564138143998795925193779239577049560390129796981601959833979572459818535152522690816980543028581449248936927879912069427726850277811719403158823952639285467847711301052545573927055241996592027556995046464795573753642444613200159980797592689218545459926886807116944101120270096708066610257585870843958344813586860250925217519456478078401248945981129230033508650891477766083556248032740463022349327735424884676387848594162056954234926143086746703000531064730051781969556831079632457765140181686836697495944036169664827254089804681607610732862871416899374993065784494953903556280714284710076509393691773750910461200136784163880051262508669871789049027465310887017237467686662774797113385981838647742657200682871329625258099540226169428796864058502407407613002413868979376432321828682970540602993437056483284278415876811466010793583683367886752073583365461247171962450459412145131956686823240199974991240213925351218273350074065434822602390359464745025578406121203949592390429523911778100479237412225899709383000169309457020692004483003300198340697169293126495457585891767896165728165298424745489888193251282313516233470484410319816916810387544681290365327070896046283846499320129737167113228324316230439896875033299605335191564463271321075319989664806970827211042629990340046583134213889538789739995210569942288465294097697204645773945832568613765844016293582964729623768247718244752360841047049227087218570063937263679564344352908833379153861164799670727263814007023394385240362728670703492292154961560035688628480823879285926166528433921117463839604697611608712525682270433151096172434290838852959368601311972487774682372394589689135771654159155760379257515493533637897442590950892757622126783269989238206151085640442927926856073591006431689962427696497794868479294531842823542347302561715155827007932566681085629805361269179160503044260208950808936289004666653259567565089987265579988412339043187028672887800373090166416865937092973315533193250264485747688420828736654132682884066337898902750129842531013292569819541416033046396257236378563282583986501761241204407823362411767032975356374355243919252021994926264169800897422105599451780695663998319217086020873502063124790215740559971023062532254049064621528151292380281162325610969482915592193099583383186711387980329988792611741280005746443446158497146412557607844060935083437506199990133919442639324030430787617892253591719401176580570272038569261600645125907379098956945992757983874701577103193470723021298290918683023721544089426698022795729265046332107472274442928943939254746646755874253522788269552593056482170544359297887785247766070219463273506715469635179814418399293932082090620349238644587800841567693787969704571262241272450776290322600372077751728602331285848974660553292676373611712874693627066235980975146391263725387589628369445724386383199330877009889517199613107814323832193585921741863633731995594823341274763887109137909862437198506622063298569207899448739432191986025670810410252796631653955836582067147425191920679014339960702715582718964051074947569556934752019836352003481432772679653233899092511911716759176308059567552895734798419909977224602677589594984494266547666619349316869388388847374188350478018171625205889969812620477091943906207333547603117043768341082834279638923519416123776467170370684262994637689837305908523967608251958613387047940680035015752087068056167468934402453820813268994592001221531485622289071138229530225929965082876160587228509755610252326977566274669201924530349920432991503325859031676939717599376795768251092661581207449439407143769954842761971542823798528485527949773711773836739509752481115069284274352907825775898623854648122908433536417625146542992288562467434497313742797005593333461440875379348875291772191237115529879513251317949399560940011909621856729831767689183705558807157909040717724589987525890253338431819999456161833257314251843036425922574352814629985359544335964583284329033353569727922203929491381277401017376140903738809557311622700335281641718262926512884068992048814846614445906631469235954175550144246987601514046377970660582135565464869355748991065735197848374407703120892727850251423374056801739475004860414347020860309257655861378927957408098416421563383938656142724597679940360645094718604134187643799752737112238591703583072972386525319824324478032423170823086610699516176021354041150972292395167597636387094311449538086648786862704658879535799128046488205436206775889413500412288688332458458335993082029779372797016416178502862866870836514269366036445010472032971109820637001357834706465371437711544821246907126522148479189465423678713726186663501531490900067123281825076356788419546590213839008630526097783815484879807078015359207056653804575798019452626037574726999813797444181593757729128439816023633149969371028365025689640008577895652547348814966974999651372489212666948939834234833176896373647067752920148382123359975645892732558194802616591490536827482673113329863353336289286588481488432700021506077655333051919627013849998433593796629779962209878077342506428364707328648342206172020461671916503541720386767363263682430741824944874719257041791678209100301752827236255685800546310622112932821712077646721125380889419021460131570350273705544347389704507281769628476193660755107500653804240873972983275805082618385560892281435228294166009909122776574549652817356137422621610922216500280892076437182258051091367640465820909898157615824452158387223769855540903855417596843768293729052968854840221833800139080858401251101903048044491958642840017498589347649581403230532796384102534151499350279832564071382381193664099132546468062536175088258057154836387918207971612573211165979866359821494453482430881333683890929213102770849021380155417161090551508317611283683279860843897366585468132118435781772822648663224678780660274718598299817408352229010948879549014188418344820339494405784856831085208236782304579438848753210568762048590932791408394182640593806778193905653500565692453433910110957479037562782378914889218056676269358162456822464034390162877921357751118131002808952064337558127693191050268936435394217315155050205730999738934005358715365308591316453596453979126821004558925888369383377802193896979233359305777696081417529506889538221705858938976724268988062605883696005554287949797160429639548874578630434030687960889417442127997372290574884188302508179062537337554592621886721031851042637169288520697216022124136906825082938176815525838233051526645510775826773670280218855355413203189021324264280826936429752409877525792263859748877031315354874563857591253171168168013419243349720632924494468055004621853155210506628436008297069530332861453932150276967888900076572564307244687230273671388244782799706205094656018906315423035761146305528166245714263885772421702058908193794587012441941486824521136212047472922959227149596016071258672711237538963008865477396803806940260601992822390269350370990557440108588331181457444593544865586869650754165198498286243608487338015221765125631479321021113470397637486034818497256285108486750467505930691505580410947932169736087261045009231333673067626570394767817624291944849357950909473370057148196414514124132556727461417597904895677341666524541451825136292421671801504862359430096563454613051916536333987619963978513410345247096286590316670795647370272014674712738882238890286957145065743337652451141703839882220363679045356951173060772241840335459668691666148699476525608913288198567793752404592889530102994747943929087738827295909891217541301324262563822423439364567033764333287717048369246535823527516843325770210795735163895031832960842707154282541473956915348369330930332467871827759974574749521979003655380662708425464271664248112807542385253911575662826504966773694934536498849826044181144846790841431989185309090088453487859471697379095398644445174625986407208870883384056909931163273541842617335638615400416881753982533065148329748631047397921914019137426472074087345092878598422893673702920748420154359606797062217867562460999778426668562326348829139263237630039859611696045412598877088679370105679533254597742342785289234851422195356040332419340664855838730755938836137826711860183765065896071293832617225618434471045356060920708804275013501030837513501038268126245013163489942916989386357144713341018160872102986828538884329885692745368914716574278779850810101290743349394876463640013104301133893478048146980353103492136385037799730298895247039586321759066662508645214135428027993876421887325726008238423006878504730590911731913941311885892977113014204076023150049596605877310257441225182848381261548571253396817900200337678539173578351353146292079507785267203124642239828336095946052507330051360091435634262216938299507285766717232111985799512691935299725938832443307750120735064027259220857708445584241146940658357277584992367272165882007096864793265016497896667979037015218206669337636659895690688812075526906580986597937017244439475880360934696199547646446788891991751871906613188846369927049792835871264476091973163278912361191725639989898759026841651474015340245212189117893090487787895840643019959558775639040488180416399898446740592761269154060573388591292241120974678456401405273047465871475604181289523252195526977966380024749774546207310981890312263040116061352479272411987674717665538750968167212913310870922349543442028457487981448173255273183483525166050563497989641113484856620802478720784341858832659708088534855610733131234599900776959036988725373733653277999485527371380564096789293380668049305088058530616177486731975866124617488623735613645335722562751091212780457898569375325057556406581791958387276512292526902652137969127422779039998383666067613967017179076900828793724181625985288521742964997377982143883564897828719650774498652302046623699808245401662311586776311371424159628188070176890030428427361205302735656795016114679039078808929946615431234308555138889309293225234055844105214412752335630623805365720909851576443928699695040266925503096436847399356476484394452627403606111271272442787515584262412182882033765589604681430634287832607624591856867522304042077020227958760406063732772456358590041391703475338084859829959136063809406413750257975287208058944566460183363899281608063122192869651499957558789118859687055921508579506980630688210914456679506457085674125739044918246164957957324911970286262003581643120422162169994330178495984882079049060071460315136772850059636714356293500668766304326112400588144131704533543017666315091164170488824029755099378815453449344063315350033430899094178243383746703634547196320262801442289290881442684514916677974650972545998036429719568019370206947818407567098541672871712921274276136050666416182462136054780749127081142187424889494456419781039833683713405159598389060193290037411769706071960895017330700106281812376488901122640330402987800754635110877539929424868733561734987801463504252162798052688108812249631161030945598105808477086477008112273717405859329895766530495857462909151976460481650508879656175227521941859500205946553553565532956797328940963047785587264283457172051481740615161828421255153765341951400334112743283623561771168304576674171997594576661681050799959923422500647106799671970105930537479760239241164882333986575182411477705025657850954753379799576978816334337879707402163632931370920095420527622915831793637648402326907614124557299747017668097410626851851276833426076510812637279863017101820873556590503863614345014721626804710883633599751347476097395107715697936923717506304618873959830981090450781368644406036530385137723467210660022371749401478500659420386512625653041722985935381565176317445856467687514507720208379706393989750043220122073059749843510083368839749356275610737556912038393916411479792338986679530832570667259105437240880787591180891417365765792736362905917023780664097451553669532104833737271507499026003412389343213176632483033695393056038610730110766707923254801874146060170303115433341854527654334555153485835051074443491640959320646538298053332366598726778410232683825554987398778283554037722667395108914800726071427709648302895898016961597196742688090180639224005738371348433759070380776468114922317203429074756892394970368118892119655383469982105144361570240045292958357445417307770794942289906589956297143048741062712041107775289862948420738426918933794862822786904243752116691860378079202647175060512828474116218980219555475683321830406363771868874286303764318785690536570075032585895486362828271585192367873737691025920955850940100121748063778665867664914252163512467686118425137355846359947913662663064852066762596311382802942416725918218158167652411385327817372355112848224386291395345629255025972038687066956320488645321593039025284773765368601261983140624232546889753004716693354583367142852506106568494239084838956999728436921119470308874200671003173533229322549979129480937030962938664268868044302778735615594165304434421743918159551196821731820842333104681229260224164072906707078188014312940438360061530136572730644819934862936938566586782515300026800490233239160628748806475586549805679764390368645062541397183491073325319249216032668934631008645738058210986881623400781279469444586834959022134365815450074861975714740720023076166615702729681209845608005434083306183358850798625260436681806023156181820285541752210553641165905828097224814784388776802420499128184670987062876556661475555732315915787775686920987059714895006316770680844649539101825235180144534546296360741994484756479680279157839018146895231133686838429272772260546678452142819028489281842590706468258090525428551905301024218234257988909243051078307543429415958896660101754112842858149847608718505438877220796733968675536939352400548376953902156834003741763574182543349896818965396907076271327323713350174583293468885862572526991062878039289505049366705013470678764000700632467589841726804107090179814725911373020057390461201183451703819258657825481914960834131751681178745436488111764305918682233050843522800987564438347551932489714279892890371066323410859960164605657642639138546473137518412078538718807148007373142469889886092660563880592586249807313184774464909887231119442110965116014506329918712045005368963655144842153992504511610839785171428086725064490301961295285309399921611030345326608556159244358774659119831221694339871951579515056320768233248505134264100268545954350702514444952327479753465330607941090562482171863961638238034237185740856839515085206577248707229598953408181830973496066537338515736675436815665387674862162052478722415124491492133755981328618099593949145245919814259183692306456706122040627026785321057790025447139382427941272881552017303873937656424635272240817669041890572435597535919562405543112424266384287894580116586197774464721119110099030735451696740282541404628930083815635775203323695421528262783943367351147313968082843797200639848985080002645267532812091666030892276424519702808594887988394468953197443202084025411256962614821969458773484282051244362500615155898773694379078582568891445935941046309100491893819644707100860073402825718129112213065177571253875774120514344714371223506605879399567062966833436007715623443943751395820578936448674291340283072582188738190457964865175580013066990416689866055865533557551372314642245029721467326144937296565028891576182980708518211325746117627108745878007971532795594515058740913344958140072631075685538038355859384437581210187612778313722544387404303052053099040825910862031365588702656790345025117798269092125187825894289941662436906613880073133478225414771021779881697745687074226122377748888857697102914285862133322679184925505687025125820901841308273002244435808236122759502233657650359742736084727827770017287126238607268627756998743540599101686871712216854822973817685048393442872786848821327084806253297536927248514323837223792430239987099588527332240431335592465047894912616001852167945557473694278673795861253607522605399434981415481838381032177830185932597443066444718263257523958978800353688515881923832079023239511017277474923197645294005723455803511796516989368068253080330287715453171122705643418754832748166359771763946757714771639844035792519300578239329714588583339108310680425527698935319392424373479297996079468169243836874470655178213022760923607962776632586634569771542336439145551059533419195803365908397826146777024801616620792910607152920233361050055223384293781330527326552214473785996080969199531595647208679699226597113722817029176221470946032484467210178425600968591056239222621082820158021870041981760919439963331284635912745603660194025117063662787420618948938401313952751764741686110966968127598998254177599001018265697045273018655610720706347600929132637985328013937958432613079796848775152044177969928642492327348657109949242395154177983360647037789479551425687188321307843625072876919708761402829192253865359066868907536593400869925199399487423331676128983829693013558980936908004288999913846510529909105336694699894879721105877171651165175311333087788505542389681475644082185538607916933484149080547793880644947846949790654227537748366291381343680171100015927288382673910195827009870278084707463962546502066361049536279403247214460346549899692268421319441387481934769796462768367698300776108687680749826091591747085018497337841413491446309037062945289630350484271529032135076868891376653418578394591920170183124304524638236673160886030924076589842852167882359490939569080732487057359756685943104021830952442172287821423201993319686466061957074794444127831455101009824132179437616365903614518852114789842092307819888751107385296342965559177056930182293497375609228455942185741237461803627589917269497742891455887546610064945547061401344083690074782621370445822848275748287025878776156730657863712362486049095064897238403397838801101352594014435865946249595614642551693942727372213091956846668977368997392190821602603474425887630935316662572622484586384768050337535889165142659607934604458923995577931336422494859159273357903785563883937326620520461912119015573581024255976632865600323864654845804151337141496568786414738138848596470173570476612119718505930681468817339871064769473646330467186189649102381217407757148040808925386536800009608455172524157692214144484090054262769040519834410947822522063244221622831768068950840531211956806741460720322047306525241243483010849400438907251041028950133850182917672089669089711773045402597416668358312392554668008856701487560573334708641041762005956587217790620305098718805108235717185669528613266631228234924277073788492334426138948445041643822899032423497664376490117862595692964470048929480878683645345664698199078835656568359346833587789359459207917794059863128844247214690271036209305424334034866198926850577635119952632267435493100063736523856084689572723728089765047251332955093233188801103526936519741134331092053414224647133709068503255984070274081196210950235706684090427495513095803650964472128362210910603285538845084490745341075926810376467989106917210965394781002812939476644101995788443094137297124887060706576739791997243335075160172096906264131737442941707873538812189435691195862898866362012143879265989226548352072749938100119641541892315448676507624893814765964393533946311630202926586871578850973126496426760782934606943593691522765592268212378223334137107004452325762941668100841287751977109465960716317289449283535518651700865177075811963232980366138020075038577979730548237934058510542262027655145767307893514984729679863772337827376662887310671526946347137540500872022554581629190927238071450808828295967388161747601642385231050216690554470063129743080704857883997171039054960423794530277226505322649342604048256358356880115047905249565989637662763375389195202036183358639062152247546221711082607295202543644645422209729520221159289715283593176290912152615582757594266156277670676930500168183826850893217051179576991276989887726641931991329661904965245892802576840658449168518433977934053120398820222021783474169024300455054883324713948927783910346733347455192988172834233804828829928752436703049089228904083120928815631698019068868793093777644263463690608083920142046606181225009898791369878028610004507854942582780255810006564892243105644532451152674493028688672428523438458610594900486820980828269548599275563556132767156049041571040484598312743909413012377946692019017363828448889813681791709458652694667993785334502490711421505815155017554148805675917059041355642645636677116728904482520494447241117094191604219203573828661447003475637263600041945552537857460357229887463150127451378382625079573498182424439656876786881742363365692201551475906994269548936479062316319866794302836089279023611645794059812077079974531289511650767249956918467042516103700614441784577043300654595955970279421059904780972979161155632570421159355455281547289875419216733937236686237286936647665146892738632869124314728646384482005917300221976571658882041696133760194052132035332706796633690519664020280297984544771705967841307405042468401435485836864352483457283327438369592037046618384608534797968532400328345153423295662175840071914672297882500991272092086695708387755212964988389314342540192662012595832792534702176750732890158880788715948503940788380480355168023218727727679844963032165616912601573074821540663085155814643846309730417548741047971143620551244989766724357875914236482615711238704491204782277955807105591813176557623192131852698437350587166667112894222379259256313901227539736745132235858033281860306813354032986836997542688777583172055307611757589752276678787181095061545504872747603736485333979144707696456173552215236463495821915787594742448248394419383891278948957576638974799094577467103128962507577937109065367094760793391382034845086170473155341180667250593519649119193923229409619333317926523819078771787695458069186605842596050746091451094461663254367635887214293885860248964034611574471275012313742118431346840059707871220447038400300165464604677852287442322253530991303348417009584129517907333007962766913115383003473528946779088395995307311863838641329072840703620349974013313665314465976154874090825744313106113717071555079209850579429515646282917063450563635921801077304594737695710524339434046277468320106295558076337659589863484357649028482390556962390902122173336821930303730264451532741185965716762509675890757884791586955839745253698443818135188876714874735937621400913272593310729752955838427621978993317893710617496966736804088896541095104053392365960128889935853041357551457520978874723011243736384305874057291944350543258229541657193034328658731816642551483032157036044201498402247463843817036741219332502849596411849106076601874037091632371258038362806847582750149265711404855406068006208984682705314646982063217645717846181140567246199394196123041370812563702075804115486888125510174275022466105655989123036954697223580599469779073559473704505010943837208503582751222322391259215630281078863640969453461085780090190559943721806304099392461968935095741484719763368061446195553227973281739763282571898144797309104975417363900445690024315594719402109095557705501421522533323020234157373959218915443397382671782262672842016290888651782295365352102352197896087729793018919264930698631050676354666465879547995166538277148462535275846977359894529988679110032779304238965918871347602949048640387554611950652710293853187725287134131145189405090492232972066978239657078945066993407523862339820529347703408447807308381592697898574029462353611144374163373696338379967053128928246595236119850929581115128956735351212164321351631800971689706464875029644447334152115372584970891927878532112938183504081226638218598772952900998076263269112659612440370146549756427134610370452146466953208697859527925257043066741242245925317664102290065923861041099406036170553805273167796161381172796573998175541565509852633841146730586628837883041027803923463312110113845427880406550141130125224918059827188317070532817417731827314734052350244315094744031454265864760474671100466369412759802430773939270931979615564015121639271100617448214115393769204427156989877292139235026633009580127607208868504929890740448928625727590558178487196190810836902582486906863906016164957117778708751598736508520658284513278276771600159296525609577316154962135448476991502209858453124304399748297053356030221933669731621768666751412064399730771376401916843241180513583419515027039526656026372014829556716367540890610073402703891697147160387478476495742620711427244238674130672434503040505589740872265226327868056057811624215319697007229810857912649029782911489470775370456761476281539002668333625829523853184525443979505634496874013263685973696473356550245005758648270038341277516515382183491502032230537196076906957864130729136256409246897213668459312218066938649290521249942493798958094732639523018404843350890533802670813515106673143745037154132862140513880156450984464955265454898948125552605778759261443150481343764567673790020671575693583667209154260120566473936010249401896507461797939599003886061054294448528885154293348516249717285910043567991655945990857684622939399413999955761868299355559983100989362577510328579361604109397115319150187797941580592047260353962175063908723635511196406594636782813863688902628898481797310242645514818601085114552739051784470374677361617134006570381074657179820953654913258958795714544879229604791014319754168201314327267901690367456679714169162886050968109696705968955520485198189881273532569279563995563196260313939202242936665486486118120953813089126122189595408336272076343139766856330825223055597762551200230011866585823652613176713699779183613124554554347276896977079165325387795918856327579898017919783946156566350264394122238095743208597873367166574796012350130582619494400877215931502204723251943951019304287296892832718611579974946907413488550217496176696578630429943168094323627490226448460118380458995490797857041079109296333768237874757079876966860341445382596922871665400871734590530475087033285709485409776512079515731145930716015830469568162428769951225874463832660555535235475797123905438839489805988637597464184239035441517828434751512999600855253968043059266619169623589943846141939186990147125528345776637611432894296355898171690468764687461327734462189295965544472014057603193153442628920924776090905627316037508436216279151254574854675441932705968211208750024081869860398724753214388392613850465552796655950087022827125317776610005552797394530345709974149887710872266448393672905088542865441612053149532406763304502060940738145164012613033438087523777788800080998943025013609993119589140354839594906539737093439668196671579213709324421548427549691056671050189835703148923997579226267965403663566599499249539304674918977566023924036511366065497177890398512770961021176302410356031882725910155688124947528928072851584790998396281326742920122461407226904032443448434065639359167975116542460885590820143956884845150521299522105074533333602785031317637338142758782657243277747067242818504776645782380077156962520036981002342869088834885205160712604927442578370315655203321636694741593614671390184364040602284820805035043063895625139665328716315449375388477657744735584667598009251698347357931499346092629330889123484734711683206056769849032474166744818343679943500990334251205983055320050800292376639695881579241621122372420591059453175630104364846224474381638586631318282003517486379037490100644553426714127247814587117084866004699216080728677221634189862064370191089168666761340333930965628979759053933564298038088181819825298924647579715026849420483692473172404487956576506404381945903928833748937516991795310957217916824043151822104453050492561681075269561998355827590746638077039539700873299272568745780328518586386182698623053624745702108239744217882637533991470141620030430665039898159587978475082270294746103352029833379447475007563415158911067096948022433260849160314734221211630895759776960886378079401671256896909909000533728912110145378043240984426846812365527378520574047978627087540028119047335937063834771407157379533931211823854810942230778178496924333358400381599662750043178669041487066562713120409792867135248091761623683490611678990600725134368622960142335633557368286498442830148624021289792287604506868819983692908967016742081605809518015589221713097923229227976949411751974911000030098072414992100437199752290807590487011503813275528687821961348230209508809796844165239081387416434342271028524642592917367421587399562454117541095135350974718659731192516054580529346625696841725524583563116784874715054024335402178483545093201932766772241920702475504853223916311348184343049827393151705221054836396844530653565243038124510197130654451612692524709973257244596189670798745265928431069084579157475887801112189398298132694887929028875732816578970598641627293586546131607739238869343024163634253402372086614289329236330064720847178770671798531360628242084674148052875095362698193083178560121324766143392343423217906038946105308247887336974554247228060419731249772727778478188229926839584770996737060803856670089690317704171764244539537821643837216288725847804542364041126081540734140401268155262323939800078440945882958339740913652587153053365080892936893485507234808277601298927508930001006548357841712875252230165752707100320639836335001290145400775566981421610746583076202176090675372475249761437051208317856374083810577257952416217253662283144442087894653025797909842766771950708386788885739055379373844466795712853144358733156054995957416610803254280246331157592916267367202926648781419798592710193638070189255924868987557090340959393111232967415633985619812480885998094618684797345889540306606726798679984394941834392260272650575061917430821170477297612061533880397523856505848657815821005210850608125359075011095691503877276815466541124746039714901337581499480419261930900249080489681143980156035031756334725652107842558866154009636117036171978206855133174150992786482522000854637533030190362277059114396474476759832450854231904157411531757988191969150014824451773079347212365074719633045311460801260968959570740579045082172447502501943309960511879751477977735106504879690081197224519288305109842448832800499746197508435512815514152082874011744631897229509607608088637781901100887844964416288807506116353156910452684558532041139913958089913494415575353309522058160887297847607911461508979950421338057369608915147348434639775156623715037195774139756394441394756796629044564818160198620975580397736954076051672890868224276767286337225463302240016406981807201878161812098549817280715419084819880063020706903304491432510217518655385450626659108447660054175423466100093646144457800988668289797067010661136349769802240600210531501492571823402919225664674043721992076798815983548657578457733220353616093232530420160209637918812967923981892782360060590955684367728920067007063644844028911031614579794639264248201727142981015311701388571345888099327712090516392873532381191842871389414838778335085410058758031279417051172860759784860300709493695115108214828280118962588416343581918755374816919834385946627753291134979502673279833917918606416858079787615511852329353386101133769641438267039475143662532699028042507152398924497955923725290762372936705963613113958994138902487149877995405730169652466410189498075493155760358232105845600415737329975895636394519735310735529247504793427191799427485413301361357446491608862370390978429181420634477210448871379254052884391446289971109274100582289153295504215840098302118942037729248150290780507216211631041062848382698887223825503981197109080030001520511281580127843668908109071768187086509617293041239840969835993799670184810797185936388238944207227625205420006025461483094997274750041885679970720626698584734418905051412361237809826295910443106240316913958677636251297827478749512696656658919745233560714234464442471158043028210874533968754606863594983128368633541499599250774999987864524367337712711542046975188911961101126892490954894379150576190500685797906595689296736427547914026592865702471963283511062995581878647591860175838061844631947637618972831283571898717015557190394593034705602421484143190368309802352248868271081182860110729040616255958103585143398851192378020464585723665969208654928930558454194017407032205430590235024940388966062131628791184167255081239667001524876621378399772579230851774086520511052210711520881908288376285172734821696058137489175595007317864739436049501835145995676682022534470908165613109075547721374209875816598611762875587615786099784256085333109639241656705562468319671100522017795131390040574487393733615915602634064317720906150495302744408015745087036147415759466228744743303742613801122622241881504360643187367341527450607441328708607249012180457834395988304431658526985090655875796047384226565515855330302295599235513044638914828959484991928784311586933724492363736426034810036476098283524721356409767475645091892151736944495959394002209382085198228700630070026367462433658370005224474460479436885893863385418034032320079420724790509922440659171929239050520185148908424262091988064857596064700599208135539103356806637365686787334005489746375138135299137393810165633845786255207856720649590193961646260663019071003222809008207458969145247557278790839042796555848366968352213885094046564825576440875040935562139160549692327804119042673303011570069056740086606941519170654350308611138940863236172562627907633449433428989293401971324491815437443801859764626302432111789734290260391998369342536461001927127204580778223885739028133367220938187542368801498850988508993923211289027239092809122990183884266401153314255038828438511377957345857841615596067888684806446487099920643013077261592622745037011282895882173075426305385918091197550442661628726723767667374123595731832661276604152168024755744684280496602636145431038073742435488956989712699787859127843606486249203409001888934720204041923063777844164127478956252189555449605433963184734465706332397162699696445154078343650368298773624134309009165691875070929961447710652853276028096202692072350354185327938350114633502968570597054011147332827840472192965113375390442888849867032163251820382120812583092743049713483265042112989119145814624261376492277302743620140569517633809112761220507773212963451782868652743936000676861554994560737458385505397816634516959499526088989451642575985528770711778399667197194641523324733614671709323493370983209040205176089570681685109790268367232915037130795889834593585531162974684081942447174632171439145501015652678858017542265147888807446178169051105029822498257584639367478901397330646952064729355468595395915065845694881890495197117071850325886741758062404745375626702879835964580207584873462183719082439047809645509819583052415987590280967720020246291692889732164682363005950640845623267282982147563088391521950653651170346434667264781846203468181079834630640133833986144630843507943166206367904654988099249889079154506412040754494319299072474556701918952760515785845733581179774770224538568770708933534047943603075515548924461842301401603146247976625883077439142135507889403933706529171156343814544950855501191461211811660990992030661346878252468679013654060891867396280337181045360158213552902575468456993725746579493149654458533651894723502495328837986983873093573315561352551263273057208514985017462291189570930021808545032609666922495846998010467595156765817992313639883620667157284861023760097134211632196679922485071144860868449247619369250064110774152144723605018301691393054607821842210818543658003429840068888092429541544579438716815002605030341725880519324538136097024598177990537156384195757818360436842931118366234091577739749746329342620671574995819929065940782659547389120707911837143832573939211637429849771053404895041807726314576759409783630057456147668748964342018117567038217144944430250955988422697616212671397567358079057884806640703366595831767641837825999740079419389241329898698554109749672084549878344001752037985799129428062396436555018371549775948281343503235441400019614830010752474093734520351177431827958824898285301540506435292051045715386469187947315011772147372846983949755441379625605167850066024209424406936201530622717343540833719813821671961884106252743214012590888164945244168794708487563579903997798949483567313503118901539257414713980332887633357277741988858000994092160607883237429600293737772345396055215363812479279555124616431261650104804875002690187729647897148024013547099173486928595664756170289418533056615694342035331820155283793393216033781881982193258033638969116112056288984333582759876765083432351466840761029021071313061116685442246180788369981645611422869661269331459502429355695526616087704747925812115957037499301448881792286790675326917443686108375852190977888066377263743379159426280195780979903784795546930276383261847102438760284925654689369081844213101802910510744557295865193102575299605780519256945280145198930389659182831934835138803069036434918347019727393541896230517262890952064417607265804092772119469515943768469131743455550859601995361085103160054135894473641622613536481856494671702222096499012182762668729256520540935036471470312770830322241493164317959551496123618204032328622694222672356684347737462311816863200332831293338795188550453483580123594569999780838969927336088157361801253327761050281118323852730402115762909885060473306204425355044046130217958252762893125243356868430891101325407053101354803926735144426126959226963298943107895230961475075772877962532991628806691859280453828839631983180352522820005825423334145410907308517738896210149030064156660941869972756807192614907012038862881348315158017560590620521992703011646620740924923473237032931836474915974904918353915184490753360144863767330482328562914366100800109582209386589179830980364975034221700192289101283763445731452232938518313703796305685720756580912711291761618384941057681900132585842961083533960647191230980457328454431539916638358653543154230982502946904907232076613094796079690444472725337565713885161231390203342331562015106249167455318615973658671337495844679111038838559678855858686293030288843879533772262395184541523330313223835670687771464942490814343179762671394638411365368837162391624491053123174509590854095048997852650968299445801943104033769800604639440545405668737259094133503653194326207311316201680720153736322572061004489158235892232416777448227339736966378099404179089666897259714112073466541867337517724567923217947714533393722909252037350391726486001945478310536405116279100749416328090214814214707286555983217385659123747587749084000947231108448141352384981765399382576444325225759747308495519409379870261217310084982703476205765504351234472750611694859745265415246395231325105231730096999031553456291282927992235072316607430202375630688123206108435474831938946594206588568245235778570108236719809944583207972192599186028301891411443970003477076961702021887369574970920773327012664627238808082270099974838313888974370404990019643563013623875731625085181303899639360327834831533642101420737623444848578733712448467717161072088419242262277390649076713456385369945222117936101443316446318800687447676234669314934113071030133190663811801760809144746170577228673856896156450035495346140864536388270047793143343535770004500917326427398344233743005227043390434054760796342350052717098491481902696346405962076068008243515829755366008936133779614750185942006575585997082371135524481214824147836131172572080574849310906552390282437884068831657510151182946404778695496336380093051712016730091090147215021384339327975431215591758656434524467963549064613787138575663726348027263592344399729293897654952005642275844928281050277107258158410880775898248108807347840483473800152180669419828650042710674631305875234242403226696934373476497816876054771571492958499854434331892870125851463283522852043906961831227503993468657655009355224041372374898341277104492191666503499757134855658272391682609541140313913192561541026132937519638787864109247211875184909221082019294528034717346428515258237076579698204901343074376771514761928662683648933647069990432439878472367798365911427938423861838950508852576370937041829403766586609388851090387525459052559525964262311442927859415324914425396160174593851817655406921939204304763427834835223127974967003465405409921151630290868033129933348567156325081675980058896720138997873604719186565536458387818867368664853333531426210919789279149057339010011756309408898066787141378328415392281815178600477323240789231770488177014701507614356281818444300204754665531826666188338861912180569202906177165907099904889544752851621259134702032749011684099412816778485354971355998872254391430531727927554844204379327808211656987252532436240908723630465551263833055158718264460686847603307444197897179974453642909196210649933493398542686095361005199493532724688186264583971397745472490809207025559628113532837064151407969921723358076955504912226035924838257812976911282368573814827443610170988370039364056955993083853873385814583526047996971920852091223179818550308185687111853822343566515757138928972917605787590871175487817825196953623007914076108892226502658851145207667200902365368981014565243009333785195912652991517082487117191265475760153996481134955632851248043466044075559597501937333114387064867215841179995901605382366051550972782818763667780325560315930073282756845059546770327983769046017561663409369044312480639955634416993369056610776722950861006920840014143433569327193553066800616947195693999634537600035240812522974581423710733981833312239737520164192916366188931141171366625627760613945947613322722405188087203503395652866808284045066920006315289821405438765456872810466950512293326329723686399212927711156090152003201954438776429085675126470709672043662940040224854168216061253181704829679375443913964659089635360406106766765627614410986216217966777267619483792028040607242074661599772612367532335654054013845104682303423515694784594107270939224402483745038397909404108333849689212439713224706986153128877252251810151819432088189436392129771276843577138404996762732902441388970796002456865699573292140424973437017320364870223232994010529654428188601486886067651251531512372492876749580848882686649277489968148487099218203385793762104068967388749513412484007934027245125176664418953575967269024486041424097086468101772823864215063177711469017782683127587809744093469076046839466709508354959802873580601414971065021753534427628938052693335332040398190882940381297777816180498618804133981913762307627500017918225134351493004977931334139413039864702410003352711598943016706074537104443695156226319375587132315985629593662308955631112935311619227910768208496949333757136534124573168466062478702300220057061193434668949409855374860410254523728700486751344429718091539343963678120457610721389131858790172186103894656076198054452540516752602191263028220339241782020383061437774387047839062655210774519553749947813418863126573197233650189295132921521880376962776638143552020643097300158300942324563072027123803380089758597958426978596219230843908835284881825298946833333460274153622002927245974330278423182261340555922204230429205632760844502672874135397580637469293027936808878351652064791659923823819920843388842925189579070585243163202544225819808088044507317077064294227068608081701615511761671642359903442438100141912316201211118761717587020814189765763524356678125399331831679797783026639261697093647028336775207513015541207740669361985555891457557538281115175579187071973985865095223838688801541764296623396985770128064072673336730435421878749729935147841862323088089823299916031578259159694925320657675003209017703481728953031731320669773614592915273398918801125916834446942917866701354616020071008759002975157190296232492419399085443952975202671351534368279905379552559788089587479423898590385862397851020934220399736874003920778986629025817184774939063949544397755623813296483775527520461828174164885939854366086972470082995881701122769487706767530735872047729163994834768000030356668817320437850412654460563957430675366171753786011633723462244905938534630754241506032427733780417564679567643307463873605158624349191073412163013569377831730594615252926754212375017127811250004142501612175458061114587949895679964200564777189765461769528977000975110430289288731842404969984739835289396569031061818895994496850291966505840320866743370717325948507819273504183514797852975452832613884530380300116058770873185509653730243529131814884018392352142607473228631788448832473475929552200089280648322796576166961667322632641628523865509192387060467304443525561227311619209344086491202974904135591988137130785913789816364548658561534856026616212627124537826632068050155686371775015524510548944564272806498080513858394288355001392407870417924494583212648578677246289646495031453468458632289755126177643116433964137742330861940761573616593221038264821630835646961798396858200049462215600906211790315349637066994776187542468882727984629601912193187858475369924791656486114760811324733028042379813182961878129544976526406068016739821514367910654115345010819976153739230457912401330226482361771008994050634777409741437595242633498081637512650821038171845711041969858934558466158087530246532077526298851646744135463266580990924171952144534279247690377382605186063185740168174074119865216217768212490535565561089020367082516153445245510446293522163445964992330823724840602493020831932497625819876338670123033970841069688000673888819671846624186930696891513159360514898658039143938820631693409270083033673942811269130326889607685030121348696745311286287076902564460006505362373535268813753541782657014536735919623776752584077939734986182101877002677541795725651556579555392246646248837025030218026649091597470645572237298404320215763944891613078634639523885369045885363523946670706659669862681779678890850954839092008627542128036580106122506831670997362260564235684242690907295294875020818250749983572411256892717545106925694087830579828960097109614011820223111957886382758801094579274575399706127563754182701030691819976771661222056402805260426702046580832485380962848874335062524575519266626882123921214516545344565207288247212856025131267329513999612936456217750094175622745049654495322772465736443304709476361711067233104529667549169233562519453212055714890012942221824498641650457897816247433030953634500586264951913233832525642111436012385675184107201362135454556897309685837025476715667571645381913893816831624576443723162322463316875208826645400659452007471930508137466136920095038221931976795765524239557737241144171110662373402744351566784154217178694656684726027279876331217255010230586488632004920180666097057209481272109498276349486177951612865846926238671374483513322269120950555395335200360995551260217601376039578263203441925851200893929606412714279170583082920908003780753253569096214721097364840722002448202240148114629524487556933032830226628923086849629399155852265663962826827845755733777161418383400945254095746163788013404172233113977320656222214035276358625422411707386180441440219826155331040920042442172006176106422511807734328898777179394660694841644345275879523720493398331602097241150075938089768160356136066566400341654506392060536328957788915974706211955076514778655629536509059803378716857796146099360290560985349925835676331289407984252252425285534642102396013607694746160389423249258008959134880060125303929497970985194923626076631440461016365807287251190150446932297292865093626413973022659590021721067878342511008223446926376642567487141747704130131807569769458577100743261514337681400603057779229959222644045876223963858249538471969309492215323533078699288633526739507802742136923095898223513569275226844381677452204152311339856764923894661401863213285283262491170011143081211159566347129710662449775266621283156857823787775302392182414001424603819954011768602575347890374459164332022669288804543784184795308990758013766647861763310726324636349547986936688359074999920553884962923321272217382873550312335479841956453907512377377330079357841605182892867244639890934764044962017069559378109494738069911772120291650619427271693160550436752088688737131819249597342457872486108079010043953464998385598137882017697179828977993478687007908981931809091548879021445301796629597009234220859477029273972054866882473452067329587260182810364078649784556609853937882027814506056818914611672642249156753685224174474335429285223985934262781630736275444601246064517680765002394439399391208932054521385655745166242149466448283177126865284036554843971705858253131712281327584387104054680737906398660704444816593258564627813251486289835419925696079173910778236354818583976617585006980635266159739615891871413453995474241471053133695434536414725755371805119419744631080330766663512505536321369373901703378532970217750937147032912974607274983246050971850892518137369771707677258754782789907891575756891996531659837160681588548678854149503309658300338668105828980607896620562224895439581245562321515469099928928940464995049222387817144242791670699188210660656797596128389930836135474019038120313845006764567927987665157731102571539656401101480125237494579283742342858934261590040640253823137339019656742411074993503775283599047056344594109211524007438878710585580946821972399075736777370057317466737866911091334656085491315481875883520470486628156492104164692192760894035253371264887459059254025319593375189001668137864472066986459880735351286897069250960113908425096833533210902901304383323134397187107521238337593665717021805550776236700577361319034201169207670575931872038637535886368945468126683401504685835509492228674279445248173842491516809134565145976492465380271503106963541148778912253511152052297608732394386910432691175535905996264802721722847411350267514871732007573861893649464727305832660783809361932906330052831992462432620239950094309897566561927408416385879232190377945170535449807364316770055922311617325706748672113855611634637632578562452724268446741946547988522416775337718264121494729330759077294117107261138510707574025722831226494852785062898249190071531557571576033126792291954411653524166648460210792820750200786005945705995301772009984221095997398838299005072971409997912309714581310185456931239566534410901664077581368316673176973193453451965710850280115949820739735550827924133507900288737569219491040591518332982726034250156683593098406231134856008326213859921644380354445085220026213701730548170153348596843297174714412161343305149666919622747782041817075377484930381742023427790549121460552806968973735031542201715325314091774823482019083766596346417900594943830603743263032798178932989818748491952927314013463549056417621787340702858747714692049333538106180158311780993770645092255230510749385152815258779230466975880322478505976695455404423038221689102213492230898918852898671921996934535841658288496275508932950810468138005577406820660676437180702074010505656183825732716637996669836882236922996546449115217348714124581680179855735428480466612416207121169868157663635300439685421707259538583805281717039916694097598295751653249508353530281154432945896120597454836820566900502793086533371364588046282701869058953258437134190167245600730097754238592395421521954814053122954397012220178313184779446063928257004327850854128645670435627362986117368149998118446238532938369787091956053127247650043353888228037523181105979736362506360683819471495790761263128150445810334377575998813038641263320225674351694967986693523542816403317853398679714926382921544922023506914429260825532102748303170033719428837766398044059645585919981015137193492385167202444779256334983785585546046324927762998596662566478101686549909040851694090713277734785080730998698208581935476865168544167964352273047143467214843167792939322058163188388435513617706740436755861250721887582563052653651598502553717470510827957300946559865937492980800907500600610602601198417414839927293660717006123403990453612623764571965204459814786615756414310651210091692885594813934948326801848856402476892483884719163359222890014598364848163874125313010562299622281426221505146421052851713510108824742783993806888238872510603531701388961741316234156622006884017739914554022572623896819364172895373357190393685714008559401066974902425910031357450595775370838122229303067824555171605416142639273104605982659580018634858336330214839892690216959716387864168940563271050556368141637470677726226727044868641802960838035785971676565936469155645473922303790279551542223661333451954739494769495356000086356635056004706703397988057551027142440992525908625772905310504763230745659876203512867773497725068051675258883661681796143083657140720718630239810410823794495089231358790878414547501994306857551632425037229541578942838351891701778891011383863931389361105533212043344513015660867556184551764779790731867120665705647086309351802632215017132792454831937475457540807533297774504193723415845116984542416491720103803582641644775775233217025771511444004951400394023803713293051424276137214714708987255732594506724279680689006491060545127595042461345257825100315952943006192964430075434986357137037179180378064984684207955798262445606031878335388430315943549314522932001291349219879255783638379750693455109526982548016659934818135993967542003844043122772285506583250450557906561816165472963632529336261580718093843087761428073389053889933584378261878079131978623124045930927687919131815583943341838251616368787559066726648905858032971721836251118220065230905995851157920017724800630238106070410934119003283328290449951585623981786774978187430555451870329437064222027156313800271932047000253530194421786913233128309829785919302388814131006851061930025924376930372768819927573170955305384986701751920896760573163684058661864120187226207149761047177882382087988427071508084034636687598008524634418295218877530576605096215523263782923295061296502060651639721702786797696158393763688874028466746086417123668916068534495002198098403860572349865533703109442350398569562753684163236006334621682709153108334545250485632954311546104600258314149825550727965883485509196432637775961131379115683616580717300065654461858586299339889649686947598345417338686457986647124619275149420243336071335579917775748486136692718536939806349490496404885484771568848946610475084032075572145216770528817392691691751227892838547563123630829832269922046166346346415630840547838066172910051956595366317603717928104185525759471101026097686048508209015265127305713271414326045471578126651600280403827843614370927743886441030329039655533921369712721036953830114104757164679149217417929329168287222217622062755882224279279614681670476215397493163982755313335475608426066848419000394969741992588862352529108440275454901149325389192233826741134106073965302673087486230049792930326827331634790621796050131297927723181414100064400193238628649445394543303735318833661753960470298575910314194777825177090209226982503118055407935335060966760972865656939646711869544536777498610071515655872771495710145726024711210990155720433109202251378930538505357669079425730327045586442534852631892767900030282864675845225772801852823158344988959415908237711994277151291436169259355977661900255686486512699122500537336917784259121383905475412131869657858669784553644577766948786163711991882974172054035127401129324252301253977174942355920913625109866282852407658824686783718207667969466945126708217551855284972195309459056703357172743735804772466392699620350870779904906415107877324417458739649705628907154746811833660395529694258664365042693145265988876349567761473569338811053703477627476624455674943223886156367571769439285328566081044939776173937538432175648168612338083287477861809099847750513458249613982686011436756084608203993512578539113762455906647634595861525924351106890578490898795111555395291437856634553888856996738089929980576831981612371837526959255048068219000806287020459885611829859526494715457657451853407979529026798664171532498384458118581081846075136324343339471654066405067866887769315139140431975326647416707483276007652671432952644488528717854040666233062914753980426064312542204263180248827270327153498739533591659285046521975772794630764472353025718344312235363998868065164770284060226755540452665470140218783246683128048200053821728845428004625680358156317956646189028108012814219965912471486485541863600843799535161537072764632962830581614053889601318356917242383189333950648617333208510146985416907375774985843125933798476067537599526058814784784122319907032725103622188964959291703690057659140824421840999442991148381775527794955011708245301698834806781913346698082844438914758834538130436216309797854320615767553860746601119636930901023274208582144369522336352564653137232954359826230280364090213478476658270616211736137497338034870327109618898878379934813186516036021723671996674750252430185716804515581341204648668620252024470000239002057887814595846273217486458734096496335335749186203274922966925021754487135383784587522151806397063501604697420600252418023239407115496190458102763111015443170447085747168353816690086856340252006696352452396250859997455211626736637691779545037676948038825817827217680842590081805047529081609982119171230862221755183074599357634528984134947272898855849759112021043825378299395682319948708886252224443453209179395710305263078307067704872828008070951749979679161712434146379423054694277293952262280906643795154995111500041955355521349816971382098603469507304656282780282197615217041703454402384187831295113767646800893456427008884047490881891763896272205027788322559019607179590209076325944037163195534292270049214081447564139987490800802482152901913933989959209184591588513250737748315186580340451191079358608599001132548451012502094830442348524330481859890991451001643427639900603595205012655419069224870430842602769133950065422642897515247083345523374622600812477898013746414044610008210961171623791233731441895755246253862489975908740755827480765463407871216767554469661726686674168818557176361570304317589100707779164868725087765650471047637327830883725119221729860766790705770690243693853602619466383678302129319073825413770392054830051813469242221222728155100335502008448110659560270326473363613915741149834271338598688215908700048006643470866073891576675274639801128169079247301094423945037018377538153012647363634314246759538951354183976793694459878741499399207077059974982782215768051350086961841451533370031385204460255758296601277362098444383983596540021638911133575878527100796970294581789325063362305420990998019068473368345436649713658603157740509495885843804281813505109275524427457272970469844534374076908005487933133080588736512158434751275389883848506164037639158080388314492724597279206052138095810654916035974858153999882155161848244267535685876971671628577421472520834727230123410906829115527694829395938014921558764940019534956200041347721441997775584997663798381955474341640333024595505201347813082337724203387846266657031724880000808477867523214567264952374346011929232102919204325716653586925752483427551654297187457488631364725143669046569488299072894734643632038567291284660212541464020106067949144075980164419614804032015343410810862758171914260183705353280154491875054284495068754896256751204836557540805207782073213087743752451063702262342710246663147714751087575594604742440713879057037485445335603097116512730074277346352549023147202257300279283805940820425269288017698651137474898737416128675944321840120490494638656984708708920983803649486625302785436113982329418677363810500815016844207295830754404734244704827260310728870320293013199608711655176314568723785070261257499106409514667665243140205489307630630694033296817268235766399821689633849786535587920465599781105397312692390929564319328584328245748641956869131121679345753435761183673020130717035656032400057344463349469536609795030562862596669015357053931488051534125675974706189570816890130017278627669709439672120854042178940459079231296169543528732336802497789934976227289852754434157498862898664857769874137939221856788113963327281387554991973674739540053300536564402923991510479341810037997032819667477153568972353741246144951281946812890151852938941355841714731341788323403025913392437937122427708550246299229160514776911700670370417158468850228361104704337485950734492614924669319639091525061747167640291477552300167436660538050211421990472757980786218740582710867377723828014028301937083783920607530150186066472132961613444106308521029935137994430076892958245399882088219630492022833202615621675515197438027190203601532887230301754410171258119089489558241109307754297367471247395497551862976736927963304496053745508530385615681454919385055639429888010740438723538442384499925842967510699592825317923512331911203473740502447540342546928004935951598692431630507515390811379122595191693407964457101800199094345982921163025029679575258042997589202301524227200614989464395098695107312596275594151963028804451779904764586686078928529010445450729222874965496713492846557069515683272444832709196176078017055064515961300497217932762149061195972434327878878649289816164772043666252994425226696199525054282121872108721706826794867046435610676681551730502697703955573615731753806709883323817223056923501690056177041463601794921951103013335892930393108776733185222258755589745744152985277167699462182827552037379779897424004006029152301140846816523082448565853531832757006961431981712584770587343797766807929514717838810088457367059818756369620956260302880019840512635585795127896348556315596951876750263665790747828478767948935949390868078809879161951152558519014752766355577625890383602022319940328705200740968996732169727653088255826199132467097541372651278898872899727724542668937019542005252509681153661055452255591843221496021077323199783028211349082654260890963494251192543889040464257159785821721452629161334362562937603885396290313009002873466400326093182690708898900436399058152509165673648267782550942300278938981242894916443760431539394180985997578851235555422220667957394953578488419803821359938317787736503836219419624533827451989124401164311555775156531640858798922966287213615625603607042544117774222333541770807079086304287867308237031426954318492705891822195909495616056546946077160478364276352921694155709590512714269179400134703551661675708404919455946968390614006674261144142632855283160796280764045542881831600559878939686386835060797150192864317265372228046393667645897674944246413160043695495711139944590429964318078340645553141278402011378159960372931477365826870264523730914301841230952543070750616909986473155578554795845898745458557856772231583857299206155335166105157732338448985201876061716967092107211763002136831280746564734834350633061957928949231433224323240521430548278356451620869954081490986754478997211937723196668143007273399787945497882699091722223384041035060187626188142465337309667581541986884860159202902283763753117338604739304998911760218402788592373139819767207169897135222527162225927829472973366160140326566295835467735912591765732816315409446747932555767513117085377992211982342975637907915377164192854535106044952094374875821218402545777673970758168289475810591603929777517661215714738893115402532878388601088102091993131498205543616997336945398652705056207549219212045132343533667849332479032903800610596209179791007936369526519620281376557698491793245466300434104279720502170468260890644115951808006071438901354018255838560876789521352199611667038478413270357789041094209571858778726366287339156424405553279275013580470515700714432879770548104128145557975652245461860342028409356917090639660165942010515360041176294794824622011230415209993004355483193740599017718537492368445855725287426067846010507543111080866879993141810799905824386375066098281687196862561813392911685917790599680615012716540269891281455190626025654886547763525349310938105978687916764458900825450521099562329467346657749296223035928211333588472026571022013529688255863571883538752755784078806659605797567023704735853922023285806237095931741024628881652666517282002539042915938800288322189807831320796467961184160145394639204092830168959026548116958060315417268405575639426836974171191500343016120478305085885900974039108031356539728298235365806095288985591332142355184247368328375521862973096252565479431508974568717601353070913685972568117968682935175504690171627988651107661260736455836379358196561582948447897843295688727963020461039066380251190905907305106914590050310982360221796505497502660670548174431506735450183091218143621995810691767841099650282654812915229565842344401127911595131593977332408339826946331230371120613199018712587762302484842685659475875025315221308443256675765993008443117092438902731668512753894531358684728771066440453857400435084473018459068703841643114651964907488667262424824734849571145087628206973259695471047076117503628886526265104363938483465257787494763990775972444456153675741718281059016483744430324818650950933691751384780878555468437825655979888220847019048957171163084761936346702591707623071357598383308758061163451086979305362322780009950594373229429029270334932601008838981255360465905059948234136497525244214658383385909859517314415341005652507882022542007425629271831469778255325753906318132829489802323978176752735796498574185490538904444068104167013242633206514612192049652883681732666034859790623156981164048851772366518161182770829206482186032201642272353224525897926204011620563836754506472423870730751072102716392055869309240171294987124275583813882531229482872058197941785071910555157816967017084139686039059884897208127987333611003645307384442941494294539624937963224610853843535993246634788613272254493635525345560582174304112642832397062015510006288698101229030064276516582916215875510278979510538130208154921616450841826945344797266379863301708282835458210726181198241376226672396759944045809311274555148566953086143354682580454031944660191262338438171584260937764031208370356071889148321706722719815064798163052445037125909247932081861859339365237034513336308440972828740691765724000978462512210425662000339707433360001713811974982350982861693989326742561365918816266149139385166562526447462208110471859262858030166578743093814512767663297280359371360553255362638614177518672221339469689156662567251423528875259864766952674793955009477191893229520632005628609351858045262721540562130664218886716000996659527804779314343164671781725601629304767499306616625948280364792656224499002860394279290288460088228511665443179509808225301658348217322789606951423332425081766289038392674774622450593163837976630858466303003129868674769766999369666086724741770009816427153380863507237133823669048334160431131644550853608977958098868474521339003497417873918793965447280161190036260183983168047565672785412282260466100656894966081114465213080691988852878074464293656910213828814906780899745856147628862774634699674878664909653169066347747069415908729264121958943353115676801135740973544752349863353502658831951868421051680123230664060009768995143086714769789718071332522583227950323412647794569291956824208341115151407443441107714157739311785937055408284594884240536096863377022937061307207421034986507143555851235606036331198566780695201108402740459076298571659313508619112044902673282675105408393834722355446860019515318611173104381593556538278528846234292647794430140864899381263727011050604752631070840900302794205717079017316963751700919051273962214335996602647064955642956296262191363946274623455069414548771733322307661136606711701115183911939583591134461040611479963945124591778851324819672775580704883022172460534737333748038267402020392088481377522972898699382994360933243144282510407733385647211894479381384893134484037153197254534818516033244728157008269440771199206325372326158386733664542977625480414513359309859681772434675799688648220390714725508358431607812879545325349655289160276603140470803952368307763401669393989504187689925113363737818958422491568324777327091128081806842783172278991540544881787388491568401552972498825995258306153173415884346151644578688335246239913527468669834229061811776960154927932553148348886229498615249053429078727609876995975776099750341068096266815513770436237330560614813138905494504995267664263810676103870558138165297687580809633927283339705608097998255673310161234164921153744068606187231234019950871931041672299545181292471198227331165388777134886682363113932531918242146145689255358300864044196210910733707899097494252277894263963801880083941213153318505696969710844878087661014807277452801759614584402577274245333149976221488119464074236317998304277572667918505103578918043001434838153734390265285509650088010244747829439760143927946519702713903218165632702048279916955834924799646951876703422734330198314508465573430482670021501029934243216234892243694439890076805724166678784000505090136926230613801824826963248510996662689101489858481092787301996938156042711726630476642319887903810875859933673183962482272586346236378131387770537601035318625860638840666647226324283440438886724994737377368011912541594200253396750226614681386735709950776340304622180459111502506028916318236378152507849819335976529135541690321085473787675349540260904620947995342098108215259895254820721298499021159682048445814400025948265879668824896249292473597502534168924149955684908554864181736935853679495626471564812060418620270253399925049731763503422314772648579865164116105380857860039408565169488378589465185472599158364612977683724836352328920315499022797381009917329607661926632574350272353704145193987397750479493795361691244114936918790132568164573971843708647245341715658900074424275064093172309309654605233744121435261222718958809024900253826492049982437074524629450936534212689389861652802617671691107817077007098880925327192964383240913188899488923370206366350259251720728675091554447124940690716268294210596405458587849766492806919406439990745233315285957428342033909123913958316203307773415883030283478276068553247423662080013966661128136218779981246066716866423679280908055020437353787990443708477857944574436272751461536128086280157131371201974399576258978174534919235597821390970510506636969580519142869127676323095840347507487060762949261794221688460010671319741906262763832252495047613203263242010357270919156391764198556333173789702894004407748544937626252783229001334014396585364896803074764494697809750716531081870952193426969738553035552131316851292184060854291438107659626474328912585503934489291376355067665798374068829272463107035836603442486068505422325278390928379377953176889104860237793331836338942609614463454315277062804763847227169948735484832872598727202572043461180899265201706712877986261545123037278627042533910707499200297118255722827943062367055295156384952159367436631873728519475783403019305416683699114058675632494995892502035454693239035543855581887111013096607787816018858321236513714251008419168081707015906678358814066752014969129388990109283093505634826087560217755803587833202324385891654267005777807495802360459603205182854941725583865297207774574336766351610211885116577576731557440842679738537008927157694457175313871731466113629974590087644149150011682214651470423194211827143166014251169413913348974527316546249861007544624215562559785940675717146436003936019559647871957919627687529508339225756939531980644702340709364637528766270301422355910581952819428540530502460987950760584480884863658829045023596402165541160647829747341493750486847809176884514032185671662832251004227498571963463543463949911552503506614483078802314186170979376037987602881461224742052120926581127390401546229599285493820386106775078935513689711107430781361952570190090529274323039809711971575713607296606872369587133672263607537746844518602648739669061975603525782492118575132712821386087359168872124665536231601455104435258662536131347410795298114180713265873396902107029003973898996033725655249669086298567264475521730088017278947317608572082873706622692841138367411437433724682679703102106519849443740249031709848221830738057973395731112439297799735303872660660929106044033308031971745603582006090791247403991706970235221783992344635879624393803684310063521020635892784829245957667083788635518497820957041484797848637402304008489152733672130197618447599816616097377422250854357814553081763881592566458565231242753357988327893331976622315501634260649386988646323617334123580868627204029071890781205462184962346127324298009393602532978169332586722940640835764733331187207233951096038831233249218934413962862687574358922503599231236067705870436524402205290782657047498067199139193008659953282879360066039424092029212696388766041720825276591672009459321658735256980350839319322995755448488091238380707421011199272572862915596686157882045261953808457806268609467523117312930493722218906764892918044380766645678037137046488535866308024160332925830245482469703469549535995191605063380221115360594212014468818496470325898819770869336745417645403133255990065258953639764410690170909864711948593838462258798209011401381349260161624591999638712962175882685792749790137596155950385332388960115482572466596635279135055896971377595680057430042702656633725999708076214692094532509197533475328106409761174420760447242793661090341246422717890738294858957347544923383791235652769502980094986503672553970944133974773472151490366892806068420244718285981294301378298334981453358697472397392177278583026114908863717020351316370199166827878049078222260576783044191742220894679247930130903130820464583158953598830163102167425407200594719159028190103580639681546414654050319658566413306993489250648670105104989179976283669999278016267691294029624017424844561383891725700156012586654658834552402151117923898878462677004836380057366444258474363180676364017450394963916210680885940153064712807095798293619949346764157606498954541151800159136933925058159333764933787458969228586494055459709719346166587678611028207366930172042337132251509673273901450055350554433640251640612014175445171002911307281836234675713011539591419205591111381537881042077966251689452935308106181267718273728610337315718255197655149604408981650425853609005233190252074819922441460683281785476333449975396324001631010704599697325967338480787634207131308736250355922234807847508851903605421169967535401012458286864706206498857320493536025409576506184910427452237503981741203466073478180800542151801637738919874207362546707757894154895125454944676720918496003859419354886614779898788134436463862878992573989270334913459432596114607439540583052850350346913392303314937294699401529090916288143721991092148338285390489655587767805577109733434557240776764313154041567426288834865431451029961588855977901846607948486020179300801135265683645947784189972275831150980176198649100758525933039933018889998535709723050929424444973544824710317927049283723881430242326583842936158514552264474594724370853604107857676115251569645669506739022406874177377293940220981579695033392431102324874513201411045832789145219752913198167044137733902555348546902670123704863268539494812063101048591425889911330156827787060906928325318116938371577335411234243306535482118344247412774827159135471067600403664025496976295333776577179204804475456611339063682118079663696944172717266812058495094381289669555381291954941873627201293470485706696242403714448008369896245558443919185587720483067978059066617725771607863700723573043833505854492180946249431201203386284523358738791085750255277341823802735441826204609276125792956030063305122345290758070342931756654895034914330846937832330330735727823586538903160194426657787341429247185683687528988735575590527900651577572160202825558191567664486902054034589277438729217013645926607923055394001109150082483778314640454057647117071639945797366063789569177438461430529141651597531224942424701226759814665453868108690077413975223715798345799017128246568582792386533474391376249624863416883193431335836406617672520952056346396267997665394303859003082619108492817793591325289239720413042786628408182662112551199027472266179029917074773190575652437695207040649527292233124537461478793256072207091164029857920041000507708712156894079207388122413155893014273585600591876773694398452192021314496333671303494864921030407741338052843119394642958513785958458146871843950473849215413743299743076332800832635179141303748235449059254310695435524291705640249147585795302342956938507609219995091659372799800642196718673530533921711958503352671690888164466801920471864954232724865320994270562654720458266753198389970328410314985039813590004887640574658407782833670783395376600044831154632785611724202424611483116543569258145578962597565818312813379144389107812138358258007771533048837625524738178964169665004475669184910589658558678962642133992286925908333152255393881971599736855814087881874475619397959844150075028883936668254724832705597828680814371599182434743064119142279921240375196595288452081087185018573723733575797929263650913738747236844290750690124542904475766102353007736497434182641071052840540084937437222383543933184799827852617988581873275126288291039269126734219870048677415004827545514734165000165028190903894352757652215231542621261337998963030612546903575598563515550077292053420711606630823761522634117945410670275982720325707816550167131580995767336432744327595329608359086861039050275657487927718578549095670459436477930920708745665341468699449000555093839691735677769199602338564054530190915571017141245489387090844565818774009019563303499784496086475061516834354879189107612827410466991212785662639275718568770720115106677045222677939252426990218701014700495117122563790759954930021007922268707029367889395638942920512935597258882127653783090150334375690182331093709578357927613298234189053526769849482070885276980063694600230106866335702096891266270828368887982058805443378018194150071819246335039540666946289068485457445504252475362394699879064803257181429765292698285474368643162480683402024893419557245464775685165281173344496559476991804366315342363495947600897822855413162569255578447558542901571913865986345158560180018481570942971254019810454862589397015262468088145866609494267230121580747372394715722168406928793864415809730980577738036058620008255498024672634262782655978035076227714312510428527026889420985620312479868451136796448781145071441016465735846197960381387938991269838693425476780912640876802705428200208826463013066599353124846917263970648724907532203459392250556495372934226560642492889100836585054520006517383045093342496542285265192476231418455872660543592153397882045728809696776129010685639366808002033931485161765611217661662439179227164586019873585270022204290073103237360788776452498558928413763102377690668954252476713632836906370247564876276279082754002966976021855835514610033040190631064547606605841227026802788873937825946833960195203474314468532573185138010740933326188605512465132596968594334803488976717253756055205664472218743288990296661371255805163897322456754579101232967372496281129979694937875627982061909148150248203573669183186147309723641267688104141643605984308625686711496853398330995082930043120445185168946298662490253060077604185392880933762867548666210915682581997943068577055101318250070629940895511969811538135516713463374232644063682267992778416003332362855636026121605518463546354041290747621371627407144783741042225378051936555111608175370751941705568738527157292408108261266968500549268354350079999464135350504046655481207740545648026699042404359770710329562072963263954383862883114478439381076566026022011942529850331615800061595170086209718466560890313497699756609780457668834315925974328006049713779130746375190892778627908508080517441167654043598874843594917804084742260151356987444891337708812103567273396737677846783935305955162583261728033529208876742693247015963887105560976271015204786166940593889051950099565311982248236377682306443945173604909877590104557611342064019484109369731670966027938722722656729116177604609359444477169034107098560244348511069255308343323350013653965148115738670451301061068831818655553683264886087248738142095687812277468504109448286737498384107360484782855200789681531543874777437270917426225382436603669417802986258766036419112258441399205854938304546596683649102891610523068916743617491418755187106888411481575275463172304746177570341100625886473732825175815989350242603550245837725874836235202721993136742241583712072852010485024895242364729963140383301779851870996516155416455772307588390521000709782304894451201128652857614424705947823447185091274035316897209792509962840657526471333596693951291560064658593339765418029316576394511900495220098611481065929220232596295769717863634010025587043195513606726643221663210214121359968864077141155408093445090628203115378795646025512678488575636045247616788670869542043473452745188364479199770054190266632069599677471382450109281383374939575344956985162058716073852345608067984655879258805735926615926780375983917187823099322828962993592410426226776363708123390338906030539600657958919379709428031915030742790800863939943653386400046447105562217174952535670857893052963634320463702001402344197987627943159019602345546757096871307006347635775011111840056752991626866437846492737325871172759247211086869206053138058969885705984377078739490137391718852782547559383294392805719281168336725130784398413916890797526367950784648287711749463514097821239477406714594283298977844512610235066392120663095844520413384426579472037653919849499197475185900615693943929825744099764579621086020656707314768916088139984119432641750929428680909138756592596849449191022972044026632768137937295279217148723743884799119201516149776016996333346363676875217772457159839114355153013305342852373857246415679047107701651352282857105757782288811892066720096052499385230198571620837453962901172421966751204381300000088606875882426936363228250245428678926483720405546187250310994076934154804369984054895173810994452713094976575173435083420578889298517653097633013759777518477478434586932848383099817293454999254661791673971990064767458790299204833198780814537014150937591798123878215643554555289066994646735457603409507090773992931280697151981421712085158392221394862611730316960941643432705872304546246499211188390335152855303407499117980860380997901422246083841869401884613677022115597353001508787734071003030456860098140233391069655406228383736210788988785706470334437687705138700121515608078388287355764338255291808359808793904841214022186063971862350744715399759925398944287288609294687117045779555067185685808999016962056609133468432148595958736826266591115176178367497281732700577423035676491539400524706791453930037003584199767227420325208859222123731114279757983432019326205179759187605732799894083575100139440092791058463511649684382880244072621467241652278421409974588626149447372667847350910412115183010392988094900497778886916004392983346502638497686114135552748891270152747004527896229519873016717618276012575762979187449849834453063608535147682232903425178389995408660275935819231761177859493441234272503703000419340993848595977121389602821801607134914623513090600043592646557497219003672353285008686375851687898445001848084341632592178794940906940605140019709827460113476401465061709940980374785788072595887579761528017238109737930199922398107698770200399498845538500932508787729918262399219464080213640572018148413648928470966400529375306562670528490782266179842442875332389616808571662924075478482238551104548077866867399345973926352574438881742181942656954158389701479979449636658616678204816098881292034161904963595485397582023286295896870788299282882357139095180903799354421970647149322455520522373715671057328977803468541942792022332400616663914902547110295156311837858379732750546518560561253442321272875005130896266981432568781529718093814934058648932404641130973252684940580494422071722857579187346700204441528623022479081162303771156843300669186445229357190679680911224616006781951648578578449774768606954126381291725831411168970468531654162889095987216358840732005523652051824835812816962479668217297563931148984263389965791508044982047947988603721218967428825721085080798017595576925283950324380800301095937324891704766079503583579174909423803129723735625712517475518956809336540623244998467826378081974106015549267628735141676138932859633161989622456226974690250329822213309863468011231435919349767283639012018929821820418353739461028478273706249711811165790163055233848801903324866399207349815227921314010867645036128577671569448780746567161850151242742579419131943141136460144725710259336678369777336880455551265927703534233760298043088814039848671203992626654189646253946743721338495562893395219233980431771387429361394778391633755830490622332718501290356954305838668632218550429166410473446864703172866758447177363210320280845886491466406718556253902965595302863657929324531329719766150546368741903177483323734764857447910279474704594015914059086056826476736608586672978329699284792937026245950661429564726436526315638445312646131828271307644416006361130310581523920374843754887709376075598481967903224129233518494844819333665992148791725569929150916904816177334258622452039999017744076774873753550672532403289499979622925647930227158246548497306153605310694675176731788463176541152226207871961490952091500856380500907634816382400046036170671076453788788958285570491277966606663945129084625747870302134501847176808898980676777872671262902678231087522376641998161824471369010382192982219079841477506857867224557485752487317940869371391761112427990885203350381217765719396101341781525612378662345313802271206282744613805382546606965235045868155349710729955561262053996838112957889925303631511898889895665501813845567787962624061461786215052734466299526016014140484523401114347818847796204568032413229685764323697491624899674943065112552906275598664692056258598582679876349243657127795693604158714633270800246394730927408318509546344710800727913048229109190073014928025589843332590977805104477536898076834275497196200312419837018964651428456339861225001025150702762358428567973096164801556351028721978438166717909058017945981514658111438945224595229576257666890573715026290407542234066319014350336244016281878079576496802785496789846904812938687512734583607235151463186664433952289601848363092722511212802949085333996128428352159058963959923297192131932832004488447152630245662640408425840640281186673251717288475895121215350994378596195965057786124826614776793297871766821317305496828284431752208642100663330005192048826943644516300215270008573110463074466540853552932218026469485769466045971746890944939326235338331659659667906462612015679157707678062686623766417815054741149461752803318105810002386244298578669738491245054404721511637720385686097974063712846574003188449187643924277498671028253874774839270188249230588959894786008127117519645760181400959366285319815026155906782756519136881850345402336358208755685415993671030117453008181245305605542642509267873431947849872750303380697218063690667767305734070280684195637286713593834869447004200364633619659273670060463650977162695635589901435344316438656609527684928480435555754806731462063657252111245097937716352744454304253079213677251555686982077001863674250456222124950236374227199574627611383707733149950767999101591829934981225559940676927337589373131553621454679793474547075326571244581300475231412390570884501143595400719332313084852169165459786227547751510181042271876426468920662233461916881269756350855428141302882121759938868273583988682319248577101032374937242775717707460080615479675119889963960616515573940451518424675119753570849411498522063464970732837108805747633225858669086236712978502328636538604960761317875772822128113257320497224599433336390129840962603241453382658716837190773548865348841397289196682029336368954609841736719677283759251163685112156415383132213094741899552568481437229066875124057139027944715789186059422530344829431365113022073108768119450827258107123792775092334127262458756634771541210727049562964271804550450110033886862291863936257084101016623754055890173008223779427463073352026475281718153400364628617563671332404401658493865616424476374041771108257299088753146003912707010972352971800021678060513170426998532485487469537571278852623785623762694074102194535839536454052887909444506798071916341332130363447816212174944907072995447988797610412758153286679275236257079509874075626816888486859856784177916190539768617385228321309694054133870544932287236294921647177926468625444458095236794783843776625878563614404453003132175752868734428097059841611600754085437251681310058028426167174157395455664287813206521844188066151214134729121347418439970616467459041006835528709696455509888013176598935330002578540003960653447697894558397701910210100645636156747061336988425366308590174531999208213292410331426247202671724940088827988683251934334173579549485790201867386119733110329475595990095307982775282765200932259121226271740343696763026275412568997131324468490329253195613646269843893492298332423835061388742923684323641624473095988683101955624419090429218403631834636928181467224341169228680790739449194524576342009037707664354788803892087268280430406216126914462742506931747641703946566322955696395339566588976396239536856535654162915146319755642938106115790091888008050616928081152870275300289343001982574654625562909626338523797471399727895710731125418056413882210621519728266204790047774068732245992267067660826397415488050868153868358950472475437491485153958903150211036426541075978202423929694879929323819416945759722761286274283258043339360851006179529766052895410378221957179974795616812723128383630793806900094438052565650280650080670388362554728202496677173913337994652214326395679360855524177090727083012195263968480102987140619305540112560241575754834138935677843730169815611243086931276923900179734521079627356881245102962919381911399879853639984433910129333419538496013426724636287652943969070711781684381847890542589381579930105465216215271413033672532602423597358960912575482080887011725486936087249657931280609092276743193130292310152888947195712130903457652878085415007407471700690531641438421662547266894199346247091322460785648589633501002173953066120268948312296878153412413275712551902279238079659625180362112750509419161786262341663725506031235669172500644959353567862166085656518519501235436263127019218823582277591776362243638657538690576511382543464585568742075598091466636849425931792102519282242278878347396319087656567030732643522678971476117266111065644683849303744517759354598011561640044758950016299122668443658182504577631186147943617531071279170394426203657663290453750311864548093585890622665082537711096943712319207934726900768175015196485423580732526813432892109628711287446738077127595238115322453519264703867253304443803395837346384021543097167293501412088954112749359068852744211614556541721124815733394281631368423710065256953043700186439887626625160341396285569111476472318642358157423426409597772144708383357542263016468703386965867052232964026172035800639000565014856107393741771684332247961394308528610101882087171859254235884750139175628830315722241254127067049906173023224149384002556426447268509561740589227270414181162526069836243453305778981008050252519145300414721523788631048936542043469765698404345683804347804743369482191892873983656543836640036002610673442127893570320409816050642402310463943394387005663689728528610901666193754733843656929834597967632357715302862722749080689640397377313198155487517593907825473348862121984547169128239094907039797782410301854395650994134119006499627561395221986626754874892029351895516181624722401779583028795316833104196917749565157312994495585293802433684234655967680256338622199350441548942665618871686252967834809404652725796174567384460000072780554504556763945703251839056799228479909115480724037057627746555342173330482975876763742429141591918564854877377694115238652252080756272310645470081864873192326578873300961621872762515221788361045699549642143809814912336517838616370834358751052017526513684761698029183079040141464468722731525986991757412188286947087800134940598494568680973354706334332111239704703686544854846562536494047891132055579130303310905420050689923170590638333149277683697983764717453088027882313945432532677988480171044088416433036396409364297883165116771599611180883776944156010136862354800714434282036286154960691512902306796007780895155825854161815612207097295846393376356815957745363284390603785790559526390457527809253113400753012720368210250367023582283275044248874127209698826090162240879752147447655786906346105420470537736634823948204099850178225155423833325084741374645951531281043171303479622253846014855433765937089808994487365689701483030452312663075539644222224178500327490200456281145385297802570087979702698746222065908815566782062056656685061230911029741474996842623296700689527908374232153320612490784210042254865341193475424432877601378873470115504313990628893394134722222250302760271164864780965728498588264350952145540312089515379512842563929255353609727073037051221131602338034818391921078959311227598111278087037529750486802010889805385014412819162718321609234021249348013433869463984125450446308549030577316315488411721688844560209699818611976127162209990121175312530781688986852085294198648119232046525556921035080174970326936560128394033274630122562426429244501554962270286886867028053995428859185295175487079449440653557851497657749330005021248233933074592873560111994088908395046519884564252431623333757390913026903373064609939480332172326523774481641134174933340277256456147108638354370492369672951293146942183697570599841097394665163624771973016772990197160929757946050256872837595067165132218952987632835618635645446167505597834370055840028115703492337483554535379494596393956653576130521899525290441284778511409382098390121832448478565300693376183318895504819368303493975062845405479884076905011333325629196157356280463509279410374905466476317627903959218216217525938745754191468544575487968456032249810608390581806189898718953651427844811602360743357330772443442061477461531190990981983317503769325370623415919643427706802560249355969420260574177994311132943539110340121704535576005909009087132270745347631562300447785476520185725507293468150814768802359040634586603089833388161753982699154598218775820878161544247760547415934675068284930916166471829376152426535122838410131055576639078897644572416204679639115084346420714965131861655996781018068572275665228271738591392497921220404413407513949039647614769631550749579734447994422252810947416098560517873229289718309397163699524877461319781169385132245609556843890496080900891170914975794117200494026886811337504155990934147144036889455125664872849237984766919572151202232363310176690276344136043960348133311877152219102752917985317664681208593275079271573879472778473289805580055651845122761118062130925920192761809092737682269639123732913306142187027263412142140766767770387546501862900139477825257408599931757102925405569067085161355659573062270667251426349620113040381004263206120279358249109547512819517226176130563412271655216774085563816506523795363821583011492754721912815060610434457901790796024893092686423553710508778242455113742269224869280661568369207395615444491806164172636689812080401252315902914294886799128462770678602861045919522727074641061425168711585832062822934270170573970727763200335611841045715574473758967250456014489344993673507301846129717885558373014270987656684644331804323295799617252296440841040331366733896458438944191928658517934302603218341092707607491934998362969757289936307445801570326881940715413733867939423503905227618265442306118367100210122879854183106841162409560830303550834004689643931556732183364823161437040288769639013995191142340476059230344532507376191166418905660053790643773346286553646137059084881415066099134672354151049171456131781780489090724449333578905667167325018361322419794440908039439185046024445026069489722082122503748705031915918479804476794485161299635954566194764267153742525097613201944465113563681755767613572025412108452600036633400164199628207899813808939000599673725418640394517872064110716050265755794442908852224628312077674410918700800922322782630584200543021796959564765489549677128323562051073454825718357564072948645825824793231863318256251598147745033092770426272601319467831622030026616422917927900017274835720034994013024557791715998976477812938241234578318373352581183324055157238258880958198609502523816492199920067420492269835779749346948402581861357405591832014597351547678874230954362052529580997977551161795146504035396607522500794608070054841087227484921188618978205171432103759655753818017973189986473784887924257383494347963425879881720285057886691599855208716169207835265274004289327741286659744124099996123608636732955539642379395750997684923861356436703794341424351709937219717249706076171147472086184040703113182866380767592491965317372220325580617310953381383644048909857108378173550889198977466461811504493655351299037375803876222439331452542463724317536728349575093373432810249287237647667635595084768255158163837414912914279463944856081917534594775411944880364038180844104479177820240396903491959212181431678530548824998052547207722804871014152971133293131865384707027070361416221064480350888860033032122642578962782011698083410407174219742297166992063359830029583178621224966319292792062110553273548690181551644325238051195557083020275301597384403696868215325303717534560027057941085652133180105239825918202557220269817864703381826293749434810972959898691166314937419394821993862903817939250439460949876227793838532448653711163652686499894664169843418808199994338656671124028612616151425008665121871072295017398576972987309006045713828641537482952452225042630168093605556691248214844648563177544965112705512955573222892730302023687156801206706501960948701947426129869821938554593183629305985367776160904630886943086173286534753979776072547425517053668994665845107218838910302326587631448799708160165610858527438215125217042353391121465338656408864727070993973681308670644814924156545296692348541136089043119430581609458450781330121085871592909515760362909470545497719061758258488110285760854518857663089996255922355781432916706515067043447561885454250720116667618877974736318558261800762141476232012862975059494031632607602536496673976555219631341333590769519371786962735399177671366836354864108128142689845324707420034609435549769531923921247971682135175078898068387726391553497105690881207952020113823832891061272033308035108887306697433254025284987907754965526818757784034471606802029986039293788610383054775953213920693933316357279045726245005912536447550435245164733311219848741411358242346181162129156681341021529749596614277784975255152237697727228623473840365082814936326159527850784448517102889929603880196725105778761747787233861272369293698672278980379995533641645347754757906554534427330845895227100692791858914800115631626295300040914797921379717420402222508810961642316255283282144349439411012521150475108654459309482369883762610999801563215226329001550695656432412136065129542316720377942225007117516486085278615932732647422446130272883910278830325655813266896710718777534789872189311498744274589504672820771370679368109981305157524599542119071955696662707021840166508340428166351508725111151573117149531838002598794049159880102532534999355509179866662958769007138076939807184147885228053792348485051268103283574519713922882165854458646630445716115298344833379604513799632402783305488637625910310690861262168542245271825019336307185999325905959800834778502967507978548407278377471021913698668091840392107417996284210053422903984023663590432681037003922246247826489998811726698343005486305818196762535818773028329963349612304113404293225018761935989902530505889735074831167964523283090964846612744801685632878155316341603976852240634336468673553201243191488721456389061189451850361273576552417152853101430299801871736101693808662588601952931546934698654872674465872118381392133246993333141855274505620763666588748659101134155315145994861285770460131536979494456159415499618042906383977010395839592838028449459011421911400783452113585313751600166005639023258922700032177794893727725136364999143046954263938476093250185367049407654398279636189638478356241453177834912802938372744460660734927170145814518242429313651114853523234233309280786482908205039670675928195818923546545038129740610296385396296277275398476758478201485034931210449351509750405404026825485883376937281470601824555667678875061621121366942682985121224158841448473482364270538844647654369034844696201722034240046727904070800488478452157825027612160051165468708623237859095368675198199900203194898446047472811462899366413206715115808474628563629641007543317631050972699614149805572090098691625198827379766359913078594931379261177480970093075642148945285529753892546371930083705569381217813270970220173965881549683060250600406822652108496073369479626214512239677950338824433026274733584396833105420362588740173349259939163942422606364984859721311157844099326723674293334024568658899186535509009164409122022026403781350741250267015972886062473115704405354373494044050346271372309278259286656786559512307967778975160627725144646033348431341806237560905622290003559036279837901309149494717805231518535067256551029788952895498069810074772503139776223062900043905724587126843765340221255375803811277188634388560820504849378095483676205998554533376372435706258225654920386141399191706188849352281607581689311930827530820738313272005647968153030642744302888034300946731274835341109732701163632705342810615004814215959713083427603986665120975537259020806128935793623050935265360783756612730864361632459377844608262516580372632033206440733602555319110581715592430914352550476110504093337261670447913279505782998475063476166526311610505024268958247803921558420820302094555004149353765258034597754865950943957786480955421602159474185923693415786230717795184078916220433000431647954970540084889382822411157841318594365588490492226086164129625224997069080697550512675266024476822235815753714841527958927195607953835088862353979252791255476730847994182136415895012558013748160000491922582444212079671911059269647273218461165856412055520531838778378932360233210219902867602410507214978386405409683625052698246538106213175048139195319309133758171704985730898283670267154569080287267610194689512095453016200562967207006587966746564253682908069187098406457353465297387825782245122480023975922530364168046962341837748569846695838226465518250571489113162784664482651106071759599813737544621353264032214062007917451199400638453668583594877082968008031336426196766547361533690316191564820064638197191421837633485953284281997471686369836350261580055753739456732031369390025267690962094990946300237519441178858978923676303952770182081127823601507688065776166331660093085067031409871596898720744602180233355286944458097176603929081170399202466683940841738700872195887864330900757858490134454417613463144111638681696175522677995505715952358528484140204174434767289113029418580859732278158454701815072950677453735128910903146225859088544750789589895734087736852400428275777949400495591017642911518993398466651736239453898193951927383523264903610963400172393283764641702026434963429401080011108308292100776483809799171498990664823286112347795743903022156897572131054127997204700834026022963744893722631472972005090950174282413860121305356959128850226732195423921906328786980346568736845423951724184473621344485513137041578521295162853347272392198195014981798360881702086099953195156846254372875921798645332318996615983455565786380798592510748130262743488474405762261543798912494968020959313782170651108629334880818711307442509408242609184513286746743447242030217950081734404499649349118959837581761429996003063958408205097273268743298788025931540634438794306110631899690539319336042435925670900222481962105018298505707142603956196436071715705210107785909366572920875062175722657014505896275784703679901874826448146615595737001917547542126936064243264058962709915079344900751774957788807936419921132433422977464873000106612228827628736122422652473158566503348935873232050156951968789952948005380161594285616148138008701998681004167844086185091764869883393479342464376235059890442577630242808943177094546114500483381777554348646187151090918371603540320455600644692651657304842992747040610598788070219883530924052073865701734880734635834980166528404395797928494387361124999590329475235087733503734225067074648400407714961069411623290398823775593862359539498003745678657526605838293729338666739367145060290670001029865630485183231887154436571041982618203493861879779846714663561700755216118144736666432645889389684760727151753689788336447365561862687114850693776485194720569894650547704999076714880346660265967375365522116536818598199262776163985498198514954985887267868367476489296275751419673688625184748689005684786063941914893842956684012910885248509214075857020217268924090553694239114505872316492865354744096117229048437115656185056667445717835403809447371676537676264746938784527990206555724209196410569468392088180168077154938649857838988372527253580080332445261153156380795383609602995477336611458448219116656462374157662165120226873833432387121374629996682821153083661895138871468564616298847183295892966339576302012919084412329203806584933669598608716196227712074988524005260291826846952205856479680862508196167083986679879371193090491466196012600708730628017231909997452597242531492761051037864276490778200180833734374001359233305638262028871978659541134209282237460693295577571965542766013036139208906810883830010763396556165643404995404556033166194932846956584856688730606467213461163692889763738933556697196654402622497073950008878251856910947242257814581233421390072297519644430693813299798070996472595748001617032973675417053852640531593514479233150969505097351174451666646250315868021387874833427189970295101672580425374365986699290701879383904206213296788663631269612010113385526140994885554047153053353154082948777105892488027157009750824395190066524740359941730979786347242035135117133465849874556583197834728111504888239414727384256680907660426777320251651230871043605958231809378373451475252205743207246212796363038809387906507307450035978322306371825267041158902089154798612090283337722714743505519196228624238623375848828532191500641158784253820879129723784270805108065888121493731337043023776602983070840859763701038877680736736737318012133727043626591173566908350264265819337110706693886326745293731461055929154523402663465254915534831537701861396350789980468295008749243032589921614075714837554583344922659420172112638145915880163392865419310511588915864578154432426285730726079608690361247740524578123058281900207339148944543779303286124325372737069970494049306115831091174416908036006535407859773884930964811191172996960680534144182787711269140556189923906001432932977971388239918953644713422377878235207149044419214198500636085191258783868957061793568371402606110708311059442851696138117037959153324974742732785084489127614779021499804111359782521565530623226276709874532153166926158522654393344290398880557412805937548409723049235797716409250771256929110821857091285026565538951690396495488911447355150863794096128487938971803802192738948054187747033215199009791119858741410512011819204004978197727733542739577055528250105743781393006973709256776610497064095841354469555773782692824680810759632469544251601881435667349368936416113826787523810706943787231822823018355442134425490517961747584290300053284392624138671040916151847588844876363691621886383984675116289689070091968990315271461830351178043446811263635015075694508934645544412855629795180793420841193468342527481616610190901832326945907682465634112401555985948014903473882452816647676457956399901448131046264835198725213574349206395590864738148482930564310836690347952858567331225121081665230086241516793820724194191849720691675580780787964011321745770677644361535859898195134998344813605451980774284486623634645398507280000657988946374987609129910473697648738864049070946092044225002225623746927927927335031329737782384385312475864379473970761647439891580367985992663560928666001819252501242358454198905140769599912657420406341798918721937206145942699532769966186374303075631700493284018997471066006388363624769638815072137791386942719106212467677260374060163328374781445780501304758156238179742569837776258862421761050792407666836858062567211894414381729716374062716108045005567776767714939813484100796874428201370353977553882128301467285589400144761986391506552402553069910824340736503287823884403505263594104335376892042808356896097062643464811508200102557497335430766616094205075626616233907658412291681562153262221859415822000324421886293828907065559235096354625211911535049099154236694073389366205860530326108562047416476942741657123947328137775334776746514538240477838494851874639071138245464904959015119835276270009333574117723729187169280228330844181032794476485548957428308439741504136442145240116163473949237526210263192411564213144165904535319022349312518485798520248236135862894258113771723302007761296387870297077245492492706501873339615779200206562624434572828939870420120972810849939891593392954458680738695973672827331049887997303229502782772769468692837042738047977140187104519162205136982927295321967791738902018770649990449451077862378779984370130203756203713035179444717055753233188060173881904011419418917382321999776964905051900910391478976234969026505191274010466789868172194767683202730969388700416582623966148338623130016387924214724579368833066745094259773776481761687113562179344907572500758494751755304187900346530439049826914983421664317219251528800814998154187487837065845993036710108104301567331326055855650104409290589927413992627410531454003661563744283891869271819868357369544428388434349882724520065761577933636288658768257764116959110088730321960219745623248273325071106184215037660154382791386006200023150767472330994113791663247910224862140044223338423236785226102164624493753965489987004627146926308130911999463431398889732963475704135807363459969237936788370628845572490008447473734868253444929473420932201205523830363518708227572071185167533560334317372768803191397851667264769481584024468841575523742039557251005367125009420952247710295618102938558807206793417147436666380221397042959041976639413393721293727608944994264931576000287549169458987069782590708137206677251319563457769121940686666353024702414998286758947012335626477958822677473046251090484657787711247984339031692473501895240397245025556023014181000288368231840170162884571247609213890125629188237740681379943271173924318184150744479864780830044589453889273919960864345771552141897348369603830385278734165981825357703147364426081775012795922700285280867863991258015719845144659234363685669804835530629692007182287639013296384528663182859912676376664592821840637605599859051738132679498469617097727250908315843243249284921632491967290472916471929639749235452659895935603389878662969993743883207336678197469812068010968618797290346122643960071139630898567202261811770660702935011879423966331205644622343973037435398231083623547490588271265998692365211066838738905876601751810191708832258056873746029345632081699747234293694126121218980658884492989895521458254582037927679549544296738242277416581857396809749386292219393505051373086898263610639253250124559466676549682478618963953272075490174901799332526460664893675680662689760799428728918660739953697112201234771140291101205284710269302258207179012610998975023191208730273941037312167227452473932984376456563023668474962591719398710553056675060986861905529913658088702163492424982103926765115448669952088791888419513551913759470884415351959057586645618333839546247096704402618086944924413726501564611070602608664546126618596094074993913096039331015926487691492009603321770154975826898605335476023613162891038266107340710790281630365774724973812368137579316540127430424888403521845755676874339771453753878344809634390666986760175104826200626273925070253411691437840183188912863354863296564929590322574728215289868255681042432464380106988039454173946118743151401131574889954424439579557807463148658496479388828022665067274908658764997842158070934148446094612514259087477992651357336229625976830855662556515153033792849103403913902930401346625109717881193924485954778419855154611356189888450306258507380226161729235478680097167592804169980664010399784663410600477450539331654546844195996395051766119397015162419045243221875759002966144605481713135610819819697299541811729343976902018160098685849988506025250480819246103101131683963537099782851261895671632835822813730059260267976921020708270302084448818322473914509851821693974690944239385211050850688866531562433082470711737605643849075728057167395227220267295965048805235760389191968751281217812591372456051081747994698656553333206338110699198343870649181823242207021270811840066903514820439123291565417001321921322370280355972355055492563844371468872468992599591800946144148824323000644632361938035673815055724089898847133551559550623149834540001989746074570044727507405245519929813273255141159040890131374867304298129615688206306094418978042406671887439390120878111296590739075366270609126831846513332488391991723202226427200162055924029176143031156494974577741702750837011617011122299833562951450700529342824511188341409648934176795164621880045634199860618267585788794939708409587913492323562785686405539615900466729017752093006560375137085145994594093193020600610924167800092923801059033579147528518245670821648574090811059987588701572347130967818775130863553978948148074735363480287733940454721185446949073758464796841701443704180913964335329355733518217285211245473998481394707210608902264907283443921635388219636867157817365281679029855455456583244889738934769710364202503397611605797230245422917467606603123553972959364813852195146249944796939965443904068412300364399073496656695938242904804154207798979102108278172091300856828061830063569760161179238823598055047192604057507823417472074573402411465260181447711557736918170622664137447188707484279730868058580691161354861031154047785800640191936107349021838207569240795789415145996224478434106517554633859242671386572359611344411789430446002263695076092676524277373143320337106311507053435045415496224638577724716185679094000457996453123617305523193497750174289768768000390432788146136529122967819753105962043270688451106269114683544863520033463266977088754954985158124848082725539644671783227452770688392148606922551162209326589905891444373831983752881360778776249519450011383709782637017859751496168508477078619955952126820115090927221187418325716543950641658311337999664817110067066489214827711537841076187917870752630352360981381027625878765093836356027076665543548707142046438605802685193879787356766041954046090904853865661744637924719689886893869325765108679334046132503800359743266456817988983373084529473720661440735576169682630235829903950064759501636996211824583993961440243646655883995858123549711760926986069035469857210841247674721522982085150320523108229004211445145709950681101145795592469217661022993210300697030606514439860043042049780943889115863908865217679151685655514563517686079578503602345410659397918698389521120967257620898302346953725617004204293032996534991426832380087214894927733683527928675080500222219564281445144440324845761378839501237546870981477276842626088717522306843540397761727142829717609003418032450662259818782169565619124499243348790861390447190187755426543918632890754129961636449088640828104546513316195831072520999089307285130513343596004248548400488592618726736021370963685282357379695686232937453775479667336497967265300187479467179741590901618154449968092151094947710743946879799047163158483452225142317167617443073036537146876600346774540269341990476693528410583136445041120210335524490154049972080248592559517976771214946095102927654641181370354057503661298041697357169954851655571284465715742798473105229917417515166975290955924932145960437112003695710886413060399432442021388012874055713594865868601321289200968200211346271554807586072969484508853160882556436120891944707698256312843347185914962271026022896987932615932431003705352775621265925032461316679215553993551440856363313008025819113711313534075027874646805159708990340711863169325605261801054675328880739070702948326189534651423811847654420917194461664171399526264391128481309648945364773945513563621630696075824757156302065987649307170560404690023267991147016796572865053675337565611536788982353583613658922619455401954989849545393646537444234244035683749764362847810522493933610046246487468679529343355887918572837236381558210930414807776607205875808430871596466600672297351339213033663162100375680886256601488551753266473319566738232334912909507544856048425891250451760529534063927115253213343968869283774122129852249615953408080833986685514117067188136431267178714859834193009308206175448997693440476649408796325184722934203321718537813363250147536199996394262762926177696264243358603709532606971167128274287963743083297479091451301223374945196902954062471529934935756549933713427518165023695093075708793943459650709508329121552591653311137591625331266107586945543165720026661328027540045724399119496006230896231228248917647023272443658921479693634927082500531956985686323797500398664601614372014070825598148354248110288648861200607582945992723785997212384761540021970130406490335924017283252628235716716479595466131174266069820770863185066000163994716686605527808094605341410795193021689032625710262762166991891345628775117675264364078380690672999517627564044486563123775083071307834876328166095318037188803815161971405381475730391351299463448888111084243628151389163929134527149511899108958021568168843386028982931843095952864552862417321721588804951304001670890813697719015768345412708841278908096948608324930258297163984002609583368077016967952824589677484847122767775755936196535092746949776460691620936953096861855299865532668334341073354197152298306971774682792097206416915477248638176146000256312240573852093151599507424607109403525149538339819714891399365980666879565952655159149316416710053627184461249419552650441618967344391996165670757784164933808715428051528856711604336897518866448962077857994119574081458217585833862148675169936186841952554807502852746628625387786023386516300492506442972450899691847579301835480174541401744764119511294675992665831942037420196592564973219307651536180544631017133717816939757712735801889835468683823905088540456666384371461843439233537768711713370673684749916035799161452289841074278768983468724983900832292124549586670546118853928804938315293259693733822447806689014589458658705129895703660144203086717701238352918269050044309612366975513350803003787832814841692517451648607742865375368818399592843290589796100064216743943858758016813091525746872171994743570539938393580872163543598853574607008213246719656291501593918204449959217128911482101744355561886042831818621668672478222301635226854871490168803344390234109784980120468006563802158089206047999954210221114338446751850619901302155717431664152031336299712650448121895050005608769871771503456141494636707998656935267119306497734936664210171674403105766661527209686676663911937939315321029655647888276051747326285016378715746977453264423382866044346206207289581077371614623871323495658753903140371453468217654728066752707367230670889239902769142147820686743224976820976750652213619520505750185068729250879404187377528997482573681919972465087577194697555203888572668759028133219913867548413808448110319070321456112860306398051131951256688596047659990336865599843751377267612681955744393736066132586735236677470705012006149293650162483537029327147303434179761562903642239122352709467464348174852328964048460315251209438619628331332015704020641724834141157814798215074626979062193116827169292895715420129926384499766382519892178508250500377775813474447648860743738220912859945863270509402245648393460692849583714137531555116512949417581182595591277995313206969560334108530401628721656953388704042215989662925429763200813779430427472899783903488488743365418841707975445592899393150017649193345404774929387430755242795177770774317202827762920055261114516883112724060282848919723660139407496375225655123428734383388592644925344195289427878774627129719131224470551962670551536013612969184256918612186223443127145246897027552762325593801423347163450546259950023170907477702843901527654703344996270122808422652752779481031974803456989390932673821790460905783388157699134658341107820353215589573545410455873802393573651673500972888383539087598503048943119290526394280323373830047157133946657651678302253458428910443225320048799122448584829492229312060788654322406426739406941749838866948120251673253940589273603822477782161311851883821226959810077177998186867637454186817878441253271834824300284984793487082609801456336876524257221205980603212114292326360679661442565304860151064173155328608587634440984579759869976478164076763721321468540079894390825456272569570614736019947108704973183831210198828332825485513242328060236003001637850309623781139714537909418054779872199353083607265005899789411506998275901943451305896213964480148271529143112116651329846721910986412318536543479832536450561391970999848831122974074156959217068114704841113300328125878752366993048685444260374207302530519287301840679924744909027906422169611935881761914475801861399735551608104728372265587859762128446090030996692191792264762592232036715092288592322297072645099261111932760655850163349241018478617383465443673108467590845128292597721902695226360073916030317371244048362654584825463821976270522278899708133142513499059845158597014324529942001348531607854146046690452309079900786701303804407953962792179679709399050290600872515856894646755385029139457947778158490776312992044599765671468856249509703855293076459024303154138712640457017518184536134635800901214697930983585060314935666073858204038232690330417756108578563448876807210358542173201725540470105224417209725549594654400940000156461973067833349653056610426522186209330216330615063030186605618180585085639607648447999209421571717115423471671249196766367150021219974781958950085831437047174127896538446165021068195903699975998585088823726285118444402671530437658348023629727714023714308125653693824576575069158881022159761207400398070780484323213043241821637869338835373234632032487498286410792951313739511557949065612934474431251548852212365981510383241048070393360517356585766582923182717434515055733407616250193951234276819298109323310815904391254470586451910631965175487534082279797573587791552537081701144359559787965405778050370298219151183758873101174068269365617548174032625880857665381628828146130423157213459700031931642870304835003041467705015589004036138033619638926017250042433800627141398761096827581520034375466052865888754392161383943599370871400156012978925726440155568865670807500617299352996332845497110258217390548390366035547522097749503573728469712892744945881226433427013948815719104723981668737120538418288863753718662622237030716435799960771773606599189755982575619901252652530402826254888283229031825098148721802581205854904087164764744435106523908419964033015551065658147040621728571467553251410055490689549731108254225970902233154741510994389883632822083668567928705144549417161399500293566400468715275892879477770278883378633741356691353897200999000690182325668362361305801911064848046222490394963202373336526192052223275091263600619433218897281227145950012507193540025049942610634891637729012245346069826259799686762419549011783758737631902392665865968935125285594147676826143260103247558419009599585172089879035716451687719872065921185169654500692352867965689530707267556909493564980506989043241239451047112004992180676548201858718022239672013097168852512896377603233089427317706492437484380504753919938280399935802220046272825928016974168820285549224486339447121430073465780058972325931613363403186934768986537950469501426060833912983985473824423644390321307664877072117206644502718907351649573186546854091549473111517952373244461262098180309131512343516642054819556545275205605086806597335377204209365326369538827431544475491139963898269643160360575905829465924669141865559636980021254655111909552792543263530021510447197419133046240911852112367376959696263337733519787141323790327524381573816581801588735566444863267536104258888153968446206735166038272288578877192261996557836520503750513720760569797263022157078187824148606161736234055321769322618677187987993320022709426733509102021354730158828730234428206126971287395105339581565420604908526726203943745701145020909484150514217493914836029604528089326061376615844007374103038912790519437379400616398777432371116570717361592415419060657666237977932239265990598382693598394337097330909260109167822255785277694978199258694460079411945782693118365465312545624123374769441578469154665181833736540488016668522377825355521356684714578152510767016696641030501956184940111740161737238222868841965869596068314734894252509368181211027555904833983277564271564476223730519468611487674690090479078248578188880685720952366194824413616522669237055720130660553814647229834405473725146445893813940615612457076431407852802273804313662342318453767644719174272848878088843963327858046443863784270493205113361075374611368850515203958853863354050737825538393718616976157698913439009302358112343741560636930778692516958458143611616059795403960340256583603405874969395023719968357864070570988093737894409639186743796911415618140637324058155624407819090617220691369577027767531744290246092011525842993486696816265955884798608476477328478989746960319413186254203987086238921997675686180277345316202886409921256364300898508749112777446815868158588404734925221655643046483831532834486920836938050685177077756802850574674140207745539582775628475237521160659460045961463007024943777984984809380516731820985598053690325449334105903116703394270713530215967260179091428993604025126584322032828342461980260721940539166735596249793251940072623584903938453191561896663907380421010904437115148245461255434848751236209093657612752900057059093837521171648394498537475406351894758664284897512495350331993082180761821250430720517562258477539913465105074595120390652681741273233316060162717170171737403314643570171040548824383610690040301098816568358860824159816701168240760723815744416953283775627364690114210130218418659153269333265767173221852202611739621090034615558383965304520312092814101168268637594562763450584620835200005499349213201540121602372237898506309081821602104365950308115994768978141088356601079657488842183594892501417012351446144623939935435902280596180798808860931857041664357024802279622465107238466350618157965888864601993272651097668464068490411887996904299075092515296583840525660908974542764470816852015893612035070047853830378383777472818268465258996074435416814569516677413143501030190092562505245844080062709212096696142520019140788380955360918137536840050330793051888693064046839169968095908548865651849535102595394764956971546550836918980645880557093759669994329499019132475873552469969243529090418002096344345840642747094440653248828156301528782571468947101125902856041613585853841553022017244424840310822861538571268718696908257883192952036690675773974737470040083656187051467271885947873941651085588372429587787067164660848912261859722084479273115567534802653630131465850995495919184413007476942946878841901470817870479390998336580089702671704305869399526313683600599398909534994451073917242426559601345499453134871796126832714381469137027128213178346130807064252591584495685031974884531027171317038166839850097683917847372851526133146802950787288719437228841064215027081492380218780676973967632516047463113505781401209648679283845484597101556913304717284911632603780663401026777503953501833008842546210048533055640697718226465346066353133675313519703491589499200645282575166352233150901064047319081870823180398204747346885597582723599140333966690450758987258110800443806776512130415851337199581121060770686399447960738506537474416341182219047414065878964671387706541884652297394680476886170416422023270337941741251648063331638546746180127748221476845126893911096109011911045545244269846611450244558776387828133358702248403297700527601750783086249180848623141008922896228608087394875636083995080546022602164441571028826341560155120008838004979251085885163126217983451943859157151991454793883689470270486078578032185043416942852602892095704278451363761629489629358151159223068463286297263766375015191401291032114868716151643840765950529891387869493995149140865640286176279125010234356083364196668432653881310107463602854311648251681190025064278743753901093496096481201304157591348125818823653688753831693370664149547743053759174671614202687343786970395154162554426915299307277165553133570876410219373772308722072988101516374986238129721639029421670325137299821212084459087968858696074477116147952280313106861308644962553200575389568618472344190798881689258205703075756112376854461968528127759196483351659680815907430724162211256303306162716603946216522644977747278956023222890454788263301610552899754728249751873229164716981682530322627780311386387112547156359109108426295919781031543870660891274265898908121461292541770252191646965827854396817099081737224029310356777153435991299708105448935606118826404476110970438893646087006616607006160481012175183340492668412580489018941556113968425345050739538815962130456868145694411659988455821047249693548541338561616551550328139032498827455379421871460208561348155945193105356598260760536434095252448812052627725332759538147916433667625034977022077850541617624267145306472120973592320299704424372438910807492745362015910167736898858009085573731834490905352201601330678472595308280483528102543225770936597582642541517595873369504901723485410004059117698335433814307762731613697709576492913669871527664480880595428204391602328581382946768195805000976260545220053714369080994279760964437045061749476699650098420949876554201384756572529028631912030293079378480878730492944882629583461808172247892411765806842319667674350009991978181501335332327053333893710537282292089598374723789609745429706857843239317624734809779082167410342982810894059063229298887478337857197008932053860938807819077014792555853833891308328520460380696146784357574865209036500650938679079002787040688483524171662718731756100890939049051407452140827949451438928369091216021724645788674784010271819932916509003310231997062944724177461234212408703946704701092704248750268402553545488866191074439443864070006657452987950237043660379561135436976726905120675373594787030879598326351311857942353383565116712468240608478927771121448622909537135722650888999551645396377629470720125805163701003768846248371420433813899636567701638343050844729714392194271185494423360089993922736110171238871459059150382532783140662867217686425358674269425193521995764707856768600777431431354055630937342479872285640709378372125757125468552733473714958401865811731733769721332727893856485543764075272370658789459234300330529940691677931114951193500037787731322804855870666772961500274449784072735463245067853213083523205750046245028610705890663222637445215336545975218070739260206451748550065895191103827719474241756382333955092758190956099280777595300300107520186193593514635100886198978365265260508970077669190750444626986580491589555499349145481092602651349782908866106004067799397558900585889813004505181117971093133687657953597629492685586084931499710225903875077090020447813554162702005120432443058292033314328206570441536851443003874281234105755705404767256279150906863494022096688759364844302016464639306202223998888431098483992684042142799557933044825169025775252567594737590145162628652197991934200519586252078067558124686854735413141037198799444717392083748749112002659674829353661821266632668248217008360398609099661051558175880326062663574578923992945326120119842165621161435310359200799765062147843639795690279929369698764583564107984944910508625506439921083483768879395726034845237873629505702690913818737092121204224430035663215860006055746740471590732694541368997278992655776256318278725401244212869738997582896047975757390632219288950055180945938797789293254476766975138385727629143276124744137069509918757681631034970930164920920421731903319631701000960897000806343718209986147214224938358968525958746906735392263104252549920071025947165972640669974402081963179708058825742714229290971866840055820887817192758272544879511867236281563424274192528114841812412319183087673593153189580365374227442697907759833153189610173483100742755035553324207163552452874112755277902246797685080544681144563270221152130646860521335830770714858428898949262068505906263608576989528604637722832967105900250223595329620805147444469470622140364849373663269534427989000736579907858126525490519029065972999828254761133576372178063881104397934784635276567310260144221839067827992181338258261162892274927034443154777292288638175973105849310541295364059728301067260716746041742503959344639616854133742661477655822291998153411701473474919482781807561380073034905500456546443010811915826991276386035395644103327415661835565561559920924681690923004610842005387016152838178190359448172676339331354625614737859187788990882787546775123848513765774175832143593037686135848968375217864811035760920572984864897513288213811375088358146703212847233449946594187777060972239037517669232537674566937795478747205381291141769056308745564776139872908994637339208567649861790700433401658473498828365413711902558833492882345371783118674392924062626256820277890705692110847092228347158846940719202891673950226249211807871310135722859945339090906604960400110811537547624959798303368511875132620636586134194821374947035076195441561262058985001121513930015170107842230716082015197978216470520699788688529209879661387555877835992860636878866733607855488090167838479577558500927411581244687087479472069698430584204482198066048346149297374116329126831666469691518226752661422063636667354343751565848456529446476473769311068645567395984723798237799203843145718275351822546295246686197190283174314760855093215577394090135974763531273131339928448211024382083680088304694670806330422596427901445652615009498170887868243977945274540920604411545573876293770423089764051454823021893216515181629275480765549798776300573746718824028161582653884755296927539930808671600706766244614405017559270073001508014033529527054956902709997644846391520177244646193560440116347929878933310180656141330239233858064969065129536131768244368250806550754030188928953208184091220214506040972213772676750821791205028627533526702521072403481269491550626060223860504341013990654730110681536367038988110611917909324767887779825314552655307660514687411212326053705051798261768021425463270670841685435870091293729675751117454798612203023340035943498087973036441193520273828923148872642558967073816425313286521726704972746726999437841898292687071878433774154605603300441607514620123394822651372603112964409251726726830276461018302356492518978223268936084197462626468140627918226002311515036082903129642832457524076921937312375315400303643074913639861425340362410119192599814578180981041168589727774023929835714615317747502456146798442932931247338820803514514379479238363327768653114658944231016583744245433696221255884239024022076842074800623864318785578041414526784678341283936673401085561872792340208667193818778698756480100008061238957158234703753459843690971996775744497654184054105589836846399449226230733152452688008169581961282980138303553526004942895536937003894638555539795024627825585983727795988095587525040484509498616974344244652655922678503419813109053573168102657126099534809919414019634537495847237270091648396808570082847023519022766244514206181029498364711492872518605013154746658909689421589648529718843450263867668295361493079464652300124301538080037567236239425324920898565067863660301878799662561985346093196549059992628360648493353616268762389706920642240969438011001158739720928362552528140617292786393593173443405331020310677722294024194713189413026397148060599781615014129965634852921073468623710989022158355650019138364180464610818556722547668893666594019509874992473559468273126116926964473558413753715312410910940097069513930333418855221178972869590752262392246041183568934297419819705265143875391772500595403828140236849502583868011210997646420257753427685601296285045039052878003948569110997266681286873646921873425253696195805460251073315033001536596403718517585922231321968879785554505514435271326637639792583297253613876969537604004876346078944525847893551541534260000894321110264883811068228453560290774906605730827195772610507077824499153616689461805497270257346519673180276330238600280249392692217212282999337510540267848090758902167532909919911633825478547259489270604496864789074870059752124156294053936724976777090014619143219946903684858509945979710824327761776517366467419302083991904764456401119308236386165832519241439794438129155895315977594576641440436554805596288300556562556326866735695026384543032098370105946559526161655928458000170591659556820710337868205796468796587489960248496648200375580323053134646445962377579325442285875265614802386413112434290818062053883000550809512825840811616973164474881372973992669931012600137807453881856418197451587999434631983064103439649210926753746176066585073023235413422317953499018405287649231571358296406411447779340763673353244948139201199798582025900471785654841513338664814306579247277116757786278865718235766337851035670529359226509257455305760292226679731235090641061128575229869411101769227583811239108511053231936259651498806552143606446334590283773746800231318774372415174614126824685879348889084613570501019689564424969324611669017469774526367713812510487925125285072852887282958393395320706289009019990899397254274316314598624793584828235329501494608758506285773282278130742900580147507966321818127238533293540579273895152022987506185774867126234730031976761560746445489947916972210162438432647151286043356735171504101399879238424845002127749620877680030327064390471656874153439244129088278440007344337330712684051066686792043355420473733393113741470026492713373144970210819234452243685195045030101127805812461394763016361127708741196599032153700650971720357105567653646549272391250955191130904513906762168199569998749550001250590182927804175780711434286816081364225163947020004158234589173385117646747869882936521499149756521976373551614058916160576099945906204723739415646889379015048509674763245477833447828942930361599040410637837910364112153417788313898285149327509910780259256729822542960437828629870389727823803701914325224644455027504936002202152542361799483692378588627215762130803775494032215541202872023334792590931421106405762834651947836614766261956695583774552472941152125988316483052847214399081298269255771704409093543586447638737587146051107188308065973577522411523216991148990896593620318237114113306375009436273924518159065942432241787082322453446125232257925970468718113853567508358932559984687228019960936536197802969471488863298536368472958704470205786119738361044712181189126713877242296180804355974908684874702577396975212040735508752733858439717001267937803358043955337857835356559496761598657338754751529942041888007121807777561043287037796493059800872913664610529224573553450203827034846009866290809971034427879066564430317444265972006323391037085426420401513352229375068753925372420500651720475811025727489779154837910106850406632776423688827915635540338518774407760766478076461710589956864341172671857429263495078803244602978763229545203650460288714080104660756145207646946665327035073792063918022353717484568697442610200108313781820818762521073724828168514836546598424660063626453141113947004278764747297488684619963368646435029187722617417124163161385728323285641549793021165929695518579881575113120812747862449206296851896123308432726292313632217649940353157050185849417102257582009360216651008442317051370288016486218451201416213616040493351366111426572768359337826795543025028688320161632194819080200116178222635209002845539212396490297385456757237196835792813324871997998377021702467505281315223155115488224090942655507990685786260361918189165192077479396074317772956461766897382991581999262772550702795960498351260808831973343058708636009609937171229490434328005436051902875490480639426743926092452394529694481282404060999178175668511928466419415828409258238047854729560792914115438927557412373264254978138130248592985060639614760890894238228015369033364149950129949550118167904483880844277513272078751635048724061632214174560093290705554507516829399262037770961205483122508425589671113173980534141078613444995783015475571888116211940773226151851574616991437254630325772057102259710684698774345619464332024996444914140952836796622658340370882964684703373954616809111265884170828678613775294808495124342131249348946226098476439669725022283858145572559978934101076893937008007945523561375294634582036950900349456487354180732586564896002428890344822840566135644897640406239724230126827759890252837361198319447722724519487319374214759266359429621232121177578200704266861917518846132666761499021502454939429558037513111237691543811252357623044328301274704346789790396144539449144302098546682826449638853735300751694887121386847737424856425478678465174305639171445223367358793455844160273066599427266472003588006510459990007464523005288355827926030656111151903780534617878896142713508857113826711097760318660104330869626839185419932814626594975072087366708074683072697281407401133333826320313299870453397615763207433663665125987557476151551467447567096707207291769151143959904940249160581661629389325687368649921705752116788776253912727181697552159297858133305910576761865438787261809019998810537053686156025347225696868426206685533894120280467015133763390295325993378826254324212194460771424198381179044788368018176087388739554206766699844659994149529869203620539335181659953294637238365429243189503436316562163925611622537071026084767738917144289026519263262821731325798451343146203768798500359707676554165944851068031565430130593202778691594590456491110638809623057910666935235453695888374206998289173665917394402341570448037854973318542719186891426028435549687841951723201701915947332955926944681929314677633503301337510499897442969953751337499657560000674498009124713021543181133034503684526141845949260633105989854713768606264606597386110211837792437538377827888143938766021497882652364638247599634714460797063177044216826322873953182999342146622171478302541475468014166619096100366662618176957772643358131122511066966718975794514595368725519414097371481568674814418492362261899578047985120441073464558517261799503857015215405597216182518266142907986772029800184378544634910101453453146555264497201336811042028915301088113938844019209042093917714183244656081039206432293017669689442710502263416705489009616396669793583572846332943880950444734363109779183838939136018342923262320982048555615762336059137119578289175367260809860129878680257865755485249782550814950252204996574711224536426069241025664273853023604118924789342430081347141482479480796808867716557251340547455190600939797708178068702159902675192884632889959933815925935632933420859848176882080467460082640365509750351866602747548395719041628211318878385019156566597205215370223053439930303828207741404986869707396416887761971963996377330327451020424601724320106852019469574494570612218085503514825539776739415991966933227422614408635935237796266982612878899971544710132953737836554250968150783500026905636347404555066360213537020199425810338854943477752213110205735003494869440028678087083893046926409232160536679093250081285622102722373321453405276172493453191557592480260090592332718173035601750711877940079683026224241441359729552095089359030399401312776021611569521845691951576423497984826629687394656527672184347631596041445746556193744709265288368641396413193678748476686297645504380153462863140763507428097958380042021521190542859747174347651448594523023117226250388711593452379671508727130087985342788867583034647208762589795442045680366505701737816473871232530134274985779329499601087239623874881447928323085929964549540661055176452384191898922834100840932899240761194647148112996631131759521536577808292191399380438865497322897213332163373512110672099622426483779140085102221648244443273599784502528052899921142562333435803586674809450385694071732538202139226610595827460339825485100897564667265467771955796102809477354115227142065367793586623375080117354545155752867349070885302783313991166633121149930908850827459035166396673408715443969781385632710823001918878500943896942715542186574508596867174311141998225162020444020689070297746695365295418864464268610729372228113561460579379221812600432263093647532671016020716326032989080678632668849090366290145944926955809430838220951461713146434226408707092296397189245884446114037853998211307450501273497121316239531882021222968424144245539355337171232663083063779918177963627223698753736149001611122653849806639170184722713263051307290006674644294163526291763254615778666946305535856470611738136129617957457666702884365172631091940520546443454613218918634730641452215544631128735275385856195280405615826243483121298398310028555008294620664219122761443053178918481409767026017516654591754639439816530331594881865474747402833789961917874001695323420512469598769685186064879607645533505637582851480380550699045234203694362555908424673382483379822876437889439377244651958716943985680831691536084521409043285591233271628126317407948022584639298686266638332996209745613699126864658801169317509224935675197582472389054568782226468648423132566179666074705208225227554881794380350588396753686384671253707051723924048380979550174027144058381157722859953433865229769441518563197063002339489739744149006203410705411347343839846372736975524235548777983748729603568915469642339457279810038552881754276699246980206826692755163116025902399695882795082423306676283464863521950969812397836165158476161841320169957557912878322045622471167319428172841503048933351308792607151867216336305389687108563933814172349650399369254456325919919283725591345391931891641486260560352243745991376246057417711450868917458177677966049980918273218793011917843361109792273626875235412238974944389388871209998267342276372921537104306328529995019264694020426752850621835968919478440682077875374505583709965098677620166390475682557289714440859484608257695440064588129433085125240293463941591965940068420452738734875348058221270766130450483951183974163744127846309647949906933303258734198665063642401431220015919950007249043424587409889956175586111645656714899804739351240833432261122222419376261024479859310185850291294970397082740348436681464027563716741634445798356828926203434318670432499835198565058224267365335566819725336736829883347385819840196185866399875281530691495407753353148603802756719046412296065217648815757776906670600326460917111173217951800094331013966760944440131346234233382009346292957334609736705554247429847437977412778209170869741075315332603015629271313558896007298702568870954453770549508987119292825144934395799513248086530916859575456972951540966892930164723943252172017482213095847968988886800893314823335360364958187161815129643110770425266172952597304087268405586322986668796860602140354338675660691571347863848493369963672612979406507079861525737308223779276600767092290784823160124379864242668870651077554388510643629853127668247851172566994763069839144999372454888264575932422681333287591792950276185103284805244507124754235718746797511002221606646554743156917448432000796954400807541803903650253900047500577657043805806865363453972636773888174364634876644063178816750294350359884557057685547455938490425620432588912361471590120490904711868912667639009936217206643548654152228250618551604282601412000044459656258651910449694992007596344615321217444918307712741265744850350404906268477357507809770758652376692359693880105894915347711884188916638501648961556523945670311623944896927208488641458148348724802529086276307301599436647660100418527102826422128391083081539229644487335542337813436902421437635634201750275113946376684717624101499226775299184867865503399515499270693764997101274017197907490094474246861203068623213609386420604007823331908086643519547910814167954073095141602133451560088336208588040066515104147673844123891450151547658632051862699284179342012471646511445197399221062458147316450537410840932640848453317117930426670132822407784849123610162561480012353850272621379497073119497300466542327675183891601589583351419162699417084472411904042348151305207754606921901001004513576230267684910475355639170436045938525853629768048767802770417342318700022948488079490056495331724680416366823230717246211324662374842192372656651971504137632783094163127477298774158347520610342038616205444037757253392114169331444241772342307198007217446897013677282883304530426190988067062060884300394279701708673043261035704552262378008490736797531872144470371882283748064587764998980215716079265508120900278190122415439980065521054957835020905442949379759485114374133452824284676331614560043588077173980206604382258222215170874273239759189567171047636099949190261427386651573052445821700578760342863763201866641577997780142083043400103512402609776844134619254864224721961796741878349417153845288202544230676048856236112027478285896568696747669734671657872128168188178675557380011757872798432969118743170153893598611730366597649620726708400091049732148690082643326184018638770966183907577431524483284455423471479268923845023503132669193207238272313569317588203740361845585200888467942173564233103038113668272870224226250716544738547064707622166607401441327867670885351661606979803185465453934233949255860967457183119692982347580121447114537965321923463899498052988619922266708641410931439260893774313500732679595451880767313267066057515944993429816836531954059841212786833388025714012353901612767687593343260401408280638592369428265725042722084739928135054772150788290574917943846094507921784568055054511924038298462782348517594846311813124984428018804137466030797393246389322429431738955775264776342561635076833041804376235572464795150910320018161158366515497352591947970765040202524882839890464914998567330226004062697295130076428765839771755337741163901987949623363476138079098655098587934233180799316643421903129198602509511755694723772979050149474103753080121444629809087700826786937981143326531360599308946351359376866482470609342418573897726083857775058206109509651595591405193835263153898248785000679908846502629753941262543179781095552782809483305038536041233673940350078603014025604893277154716249992553828103748556381580587773979557341407768315476105154620928286971916087503382380134974321087717582000534976625426892286281506463592885024514307122212383606450208202629438454327595382584450715011200434234523483695743828408959423688078413612208866862293850254753795229476856146349798129664660071375593956009631454253459289670728731834939028731664956636197951181548324201900086907418912664931353987103969706819202765284195333473091737938928017706441692470076540993807364621070566322753102254241237190439751653301532485356142201638626438568303892804079136903635785821783998314948140861460961598622187367789240325949017578994806957789676112919861952290991346243021478695114787379451824896566810082819857911720352857363502377045977842495718335583046594745294594344065382164034468321454621272275258409026134397813001238819425123426646963680770661695626347521299997692423966850268348056183276699987025145783602020364143149029833275277828545210740741614112903410705901599863766904597293280012248392817827355841336792490854669000287306152140440380684419013091668989474550698374737851279705175164214674092262370978492952608032613462537728537060451225655456117910184150278903171517131314930828342984558197962958765727012061836052511619912217681198490573633632579285947703650142154101716328559496972761863878867887108235149176366627594007017417141110954280829676264672257867018807397219615651779602481994045123317944494271211894150340804609072677908731242869534886709683798358076466071294447756641443618072759620324044886972055298849842901549337533100780281442297585999544387106894137411510745348152526591506255254237084622224821347056138925008109210867576883065315802684084709667218202230455234471003562155224569556649596498217633136107233980893188429728941419568205945248191993388579996601914390744627275185028983027462331111743753359689039670207504179914359920663391829440467104160258179057129538489525994609340111971919253978054693297167815146433257571454252172934290923181341592259258382133146969120603456317981000764601125494172541798306700153988557986376410241810292370655479659844440669097926562054151983322829171110922995611751319395876759645945099501729561794614101673158624273202911798263157635512029171420927722828192128699149084932950525577477941356183732447511298705266850783136852869637298440447235836025382094541693821860329413856863747622199960629276467039560737286341490934555343366904549007795172240982742905664175617758020968396249965127441867878702278090874003156398979724279108851995905279821944327305661497181375530053088041440263444393416332375509656372219500420709727666856522829994324957357689683382365576487360922703521382401983499860130597588308773383494784274206701487325289348407788516287668591849767083219169470932393706774203822268606670998899455154655337743645287809618019726776344297184545335369286496811512986990508734416172364896436199850054757940745206143289586454342948838281007522054750371865386764159509595728009454401379149711769853276760008224428754504538665879030293438347083804486076403075915998392941377229717701277073862267237570245069244199828080981479939849413550616139662157989940537391481443564142104482033193899889016286816791776940832300065718826343066389726322753199807342123129160846798832795903309875329187361932773093366709407643240381583023130196142099811057591503736130126991935723042112451472484881994357186019670750894987938295717386107994528785563265520495883915026940775522096635603177883629016181547785627685855593270621174403698479670253606334919037969540568076775633831636265717070205987094401744156108864721327684528018973285838126997463601507868377481376223367914277224957361124884313818132887093909728200993963168947301143937376348615251765909128659779463948770634677546458204375962332663596097922799246906217036656572739824602163303174657989547532588279218087721433593608201079010363504390706025965133966303765105909463250660094356411014618117205011492437785871133759080688793764475244534118030641867675044610842954910679953542896679512386718995676576549007274906468715471853704227185105880630835653883387462449256488446944543529752753132951116553299652822848387879681355336417881158890660697063079140942998066386836694896761727263837152048676104960683180489765704535740866470924041785222549858782415778075854039670482572329221661151507456089033385742423712290628811168760011694813719442834178554146633149777048580444818712740322878612374606503760246590490824990870491728601651849674432137541974842302069399909652219793384070741808173479803185368513753917874942143479011924070538199087468695830316018554894651471144480669993086836328840668325943934362771702745000462321574046452927645008861758218471016949379149864040491805378393091733650917155208042744954916392992060058918663620572363267399081143261254188345287112904851128736310077529549911849609012362207270814796010236536760404623221250361848337858444130199555598610701421047070617319054210961509361139110582003521637189716321282512038185345283401001980160284886910266085024435189026409202866110120371644788477355689412094532242780215557772699894095128858737937098728129018839873747519131280731038827016368484755329984370226444273219704588198865908374696597406100700087622917263778748043274017612082214673600118887263283751335216752256576354582211154129046904030612546511126505710784312847959045635293996107073763937471574303238202355748198893625137160622782372199954565178231869500275909402116382742015083913742844084650044545228968070551408209811964859659944307651660841673600791241823081098946434466484157323871919922142529694941930443467672630736776071292677956722337842276985047836248826558970902496319739917183152924643872583474421081271081039236867666471350750475118693468614206240485966976232901523814966647966456483263898494213899469699884793776734567916601335682146772055611675489998134471788578134730477679220950570442703975918941386287467267132226640874849765919418320596923307554918099053417654849832330885297596545070350044647396573956998793241235248562768669883111838700878464579577408076364654003135588067505327438333084223257367768239150161978837364916755235447812870470818274182558221119188327117583837140765909604805201105830694318204605066588170330607602199884333640216206972830207226553746915633004976815053215537069484427816893877396489142561097328778530975125136949170998887728155308366320371163926254191076605865426636339634772657595872663122232404381731088658401119963247786416987682175285529399534037584554038565692808511466268011882176168814847341801204211848185941189111741083635961531006212205923112998989331106957047435071023619748500984297021808554293660479673884447796361268962633632516629527834597316166093787332826360150179711543652493756469671240532584942830097031240436075496695868026257075689370457552658853873198590415508218743545261783896373186281966035465644969240499768163627885398651574744998321783680130445972787420957781465224800508369211325026099469261257365625513512217282391452423610925906027125314660442880333169777586797948850058777437540816061421544871953389669621405485379979468328797336979896143684292126584887819823865244350375276628951054890161745015754244244487107505568469245770414135671437891558013291170872724015076068843862060958427712399026734329248218050005629353921104996371323082249247090431405918386148008931403155229874070369519610821554275793201038084771783745614955864082695166467569040722635404897516933210582189623590796205159805280256294893885327293530779872272316986731175115036274791997099607970910453839372043792659668473523193181500107826677317030297836416792493167983498685488517933505742785721951501454127752801156351416007232660111530218321582180080544510896062724350235742631385495201246502199476583409288030188773478273952479292617710068342702664386392679620114349705657441716221400771387782259896102771625673336031905694146960388946000790621858403454912182191884512479595236583266982647050674169733103021659477306376442280379657890329762374589110072763199519574589309536739431010951249879542601687879513750376782044240226602620192915860294269261136968684590636915738954253258936825963060134651026611033666548026639735922319525956739221632763663478134081578510313162571503133556778271079934425177195201574391250980493851471534258087709303823406420684423169285295705551710616530169687353665852578570790385494041049325590983530997269391507185771458363516798099162790880495421018169436753578342627050738239131065872512375339305734643473112328830533079017403991042034649518312932697753656785322702133667084226865854357333631576767763888344181074521321500552193989398115612273340854118962216560897589710983204021330402167924928786921539209071113950801128291506563791264054389519724421712262948905297893915827527439036280922630853454445650003335500532756875325810964406199303054247730677844075564744087948129307619166109718409096122750016144498438664919594596893979506295911832508744130682523566830110846667763017562715637197421189401055519580202263843185723625467441037843873838386127924851060551036364446625400281274313621655443657560913588737758904480297911843946696809431800949227330895713768144206667835368627524869593050994031446354272096033739012074670045701698480042189819449044632225468833661984225908837793146342876246625741050001567602446210514281121420758436028809434476870248127739723580098841678466940561188633788234880482442569697542904674113281819554776514329996910054878605591302071794143601331459931080346225679207850224111885388798449866073197248107565695614172190785476873708322072364248410411500563751420966177957989657835055566133318958601277509754738062833811061636648631421222678690234938446792846148748049857900634206150370209386128243868784377118732608812147573561895935449873821133052094638791562972216349702225703845704243546735646639905855781321190469164906805285678905821095808708354109258497090860123128021251459735973090473803344624761006765327902613110450511960088616751431505646727430921042209467213703931319441587089158182144479926928868634061524560289935506660824224334604517412201672099083154213876521006990333173381942500271967901272886286215740049973171392143074020056913579124992699322699540814066804345221696209864251868030691447197715457292495865283474782021178323317372419238305950439105760599998034489502393638186019033733950028818956085383721176452590557559686651693648035533890259428173518098488793923252668670703133148397498637948190885977912331668623810956780760098280541784268842746610617505909991449341073342652374193726160461304994577255845286452434309387192649219522161064991662246051265029541784294204699242876565332232531544090360870449197174940468157413594210675431390826103795484097446192745882054203621964237934969287696153106357943020402411215885840229581534558319201123614669732060111007922633371932478459650491479187027631078701131218740523363456072372177224051948038509339372845029510904598042005475299144180322610010408809853747824187399104012044301099909405658510764402246682054934075687539118542256737301117972667138974428335248518698663796781410132314932687979835777754144855028128728335024406868252262466635231569312769721736026735567004526998096551771041640536976111815006313270406883643690742950172625912149897851986090135422669404613889788213740719794437845336518867089393232637753651920362733163828409092954278345333846678023212969975797773394980975514453524605970718615278283450224661921949721752768919956378989271013946624436064724649085107450592879501368206379738913399256386450747116775590463031278217006836187556362505211259942672030000852746031225517901125354822400953511604708290837150791952659832356585130942341856278150965023939293874881981588464544685048428018778843016072396288851816979852085102458962835518893952890125406442294240185114735095116177138262148173699557538232074646502829949086694496794076230901471833495553434029544241010895942981474837129649849122662798633381389065165089716490843184873459566462879541123152218634409172013429986261458215783614161927411652072845486467589794722702694711930079542826199607264491843069225868287563538436382033815064898007949512658148085127145973731187374198552750487016155704308854038655444943566763157575475449925585890462155086447397935529865897837332689388467156427131834646623827052446541329507486885681691646026922832484689953315014138494780960585218196142424174569301310085434724864340426326147454072130574129714523777933582882413051559838206393174446517293215973850822943848355381376110157809919546660244771593816298016417464456947721885829600317564821358521264072524549634950438811691926235829662732515592611999886365751596041256245315412822413697449353599338891282998043399831582945766141314931896439910541264529736279248575328643432182064922730010344977035623049773676248605535622649054997245391720955557217878890643743216527072485507480007908000165976698806927288496243697074509317989868928956429041375861647779265638433486044528002254310767784349760001673947431333685461514238391750036260263913530211341068548007558501912875617907507949278312906330704172565399413670521930243905980031831844559666182216526190192851102997743647942568827565101121174831914317194274433506035607054196534538471281800668352616508079452000590744843348752187682677840345088986290328257250030616242867980386676151261828238862009430464496682556654947151394175347237954933086434293103032722101822522593760231136512961934799646730126357549774720312339857483647764323050065280381085117534534626200681248880209725789871959913210667874234299848076636823839538795306653389625624616506945715335669531209647776133445580014004493670545319965757137890405063461044133792746247881151914794489009082572031488269667213808024358755137446221863048723988471930657863349702027486675772537285026455766500851457105838930126640645911676563461139016455968173262598968486236603310244495548512538356742153727096634181133543371835911449891741648368063925156134493632674458569741804553131887736059478833623025478263511496138925381440419349978536963160425390690189442728381516881861208648661879423444125085160590157169285514017721475091053961762510687190957073760446845038912102360742039826439133955751921225252650149486376955947716618184457788069581256522009400833834451056948331016016110306537575581499942262885085816798972712380872922938688795602433813251744231083939504810190493263464919371389359194814420167556614080619978202231267078940719918260650295509476207176720736360807733534402955180768365398512103445645835331138915645310048532535149608277050895054939990708721567494983337218229589689025867757110572541186099989079828277274871869354447661494561086737256717242537533357557782817909605135820466818230631216957841633611522433602722132827618603504524025967798062592851165136056931498983652170229625917131881313978527693976597764311334167357035692931136395346258118207156566789887436632648236594833986291576981288358950662527061024488829597791412778239078351936767133810333995151693272023521372674127234619367034298925139545794385321886046096939337447666524848816511649457274675071943336250546036745777401037618540293595858146771881925878470275798068055836467051297793804727758310067363353586235871513925527460659019707188920264455666686745951854467996141013046826758755056482353283016691915317717380255820806379960680856130818922081840981444177982734389888691220916477981361145659418800314780165029462159188032571425817304892923013273137770146427636540853665252596676879354214811722395698819847920991495109246030492079513351359676567872541180655743466492019341798267255070501674616223181441668410215453819481323341932486548001733084875422864293700358532363611294323226591787854084321252930596835191522735019701274085966970544348387618060211329367524431097094639881715354805035353916968773676680620990838725935754463746616057830273940032163709239603003342509044860507463790976655358354858673924989765483812211432007524125626180993589316188886876700916010630986791258279084052596213725707077935757931641356615285368228537321106470410240521210271119229651753820388826547522095038879371440798386989280635889735463969036016085015293659681580041719541082816150135464130960309335227071578525125495888767849962889939787506557058519590318013472491349761534612262145357023504241321190587683995350681889041592446249580820578121698095236118672308030338380962839209218734999137422300121370041559734286073662263731333510554648917116001316999671774802942796466525142438184379993114013542723240368626874331460406167660120513876955884701664048957617904970007349799979198542564246311936746542115013220651446623409662707177389033382152370473444449420979130622293355417369571876276559318486915588052169012978096258397035876698210872619776914985364177263051474107873136638403928393391200748740037830911270928347557283623537137182018612186199769957232561489482653774576020770505889046479028130389125337542371059593912032207696853673854977011874108181100402055955898564143229636101756360244790832235668557877582918098139389694027982259514994029397779260574351402480288114422246892658698896768148908417193476037067500817088492680071613946670488280377756118515273434046963241654921787335559246875532888647572089164549427179995929359297471222119810931581684015029097128371221689344174414430651187361888865289387615518324123908576676703882929307061230869856086407685217611896132048980385184767724978947519935219584086330919761943193510376774266502384377992351285630647131098039465382852143876053658303360587686623638158866030993995730850546426371623312218231929484345225972846999523192578835125617718079076159042282146124709483477996582831586278402533044911658799273076061614739823057687395478862208681020524528306827668431451456513551909242547837014698713240344124414634340272258247752775422214149795687108792876293629193630941910139969521583503102810225627203751403408773336686980260452874055806048193934790729891732979969296965758370519465760307139712093066542853446112078328996850853865259262927758980105209729140053881791190255826637942219352696993065039717680214395145146931066463274606786435570554778253727691202479955860205154102008552710092205297164355318293412707133015070704419611580890590688274289096735536613661156885092094584719133330929143949471001921134994147723179968045192571445995298733855292864543927935282595426279580879471952910125684594732269122186624391183438812225229059621331023428186917246486239143444016068493311590077900112787267743544664105955515414656417535492669320576095091727034571703172877382136210079175040607913168346509754373433514665407307026517234080323638131615288000467748711491752580758559045438710850550476501360801679847718430493773413948437940742542094082730900547254635557079922770196691862570104482902189322721687211441893947965596193374609167309757897806584924208312083027833977002354339058066229863226248284314621680244700502625129071216203855001048709278829818887301614311988758347119003270088212442372261186567881716439539051974723378299260001724659215130125049933018082391805586220558982513102174199745100081038541501401447161985845540567539504328919777650114061894329035942493300350658164056046951263620912310470405957591998172736428803195842574353602477293762761626718873581715278888597560704588088504627646332329600539444347252242238391042025910804632961740406759697839792703363844911933095753659954485229897577218295837132456005924645996064356464677504032843300747288334346238258081088349901814565570878854677509431014709345401197358747782570529259238974205873890332101550663351196126793949923426989866852215023705201309904716037479354873979794777330774856670438288226882052950289544954223694871736261709260615885024559899627023756426435996787786651330217769616865620585057120420864880919367337422449755603864783660490707373375254367672497793047103000754432126527767486217162779520669931983819391230690203452282278559962998575208556396424446455533099279439141368996961256654233011488000316773747647795584685213181609143806250627505659550633534544184311565251445427377657385288175898765244908079179353016375238028284676239320567182166326200123519330509361865244538822036505183660801876167207324098776352507396426277173105607362346370018368962815987418462123101242214908909012075949515041020116411632975566505918073325545808950062845829133734482910238231365009057285918225569945577543466825099936246228937877374163286024246986668053153700604006176356365027864948905445070475273897226422012621303403884269204369248493562027284747374246656633157820814388706380536936041060830243860952278261571675592984180824257567263628242873100882612373861910856921417490142363119929726133183651737280929535504411489558307918777652419020613591593862753038057354989295388128288031509865058470413000951899898627973733232069220111560210639862097024029961561587285653097998818083328682562680198923596287322456537538850650134262082638263374813087571509716491760653480249813324151775173456356394278457896528207952940876380119055534718916139520109525208474341240305376747698044695352832567753526454400120130885856384833174877100748113072370185968213893209519253053664811316067627474443654086162105491547633012249180908657195853901124702743019989337753336220091662192121529572951150129260870286837947216255214762635766747646315122744070856575017484041848479920087622265027656892925160023875584471572615850918750065610523965169105007627718404868889080254298043319734443672571539773931883824463080947704625277775256926428377087774546685062713493683683607887327130726135977933626766456304156371382509550635760725384735128091404868423384024120799185991762458344505731478318860115093492288418842939245734889377934958977517402657927342465557676100359026682301076079692588404408588507691367129434927818142410032029937471009792383185705385962922802640861965186611724312893301912723267534963899344047179748566737040915274129816268858020406153235373000739092840107336535491823561816527840591490617737708112054478762607203654996804787388949532885440402281899463763948632411919951270094938531162307355204929470315524075176332494978080288250537662562788341964514471310516637074225655091670260462523512834362936316065825276004131489619747246103702871192389733302912179572800788781138344598188930226417129660088452940096890486575921772967867967654094826290174553139234802894971571401200820916936170996910193624693338112793953844767581748389996003374477249251883114007680872399876123151004589771550755393409719029050544200199456810119513389340468980555976757904993705371459829241607110616245101213113375461389497268133351318459838378144344542623739820234536034473744030847845333161505790366027878616111695438560742086968731336873281958748683733087531459317682117503846786377326141479901042049525255641331307570169255423181312258351240630319283176732920148962689303301504343487002837555949288393309789107605457446159079913520044226231862201753108315129088679313903139589897522028918417150460847900657046379157158373940767787460905988893158311046539605266907386910806528750532766773906595571975323098928974860260383465905371551273292372185877207940736510191798858939624896645087071100425103773873176323453064409848839803654874674449416899538084255733989452880445739375468735450451229220896711298687248926225964906089273091962987133718035868232829110252929081467324526087812760595128141558620491595511707329759914847266894973993815981968720912231017745117799814903591835875741352829340284938555685676773733941243147424347535032989531470827662742358684628956698571396924508622195528024764457335484489566456279508933026298907194951666938716019581826504246128734231907055883396388745150981344769654017380172349197455333492015611704210737820168215456754588976226133244864062292792197572447154506719816701562976736678756037832450646354325361225438752559197300571447664474812131358645315314150291274309423557947361864868690459349749090598620090396975533544735889393664529398915123457052231837590936936835779560391934628971737889044375027860542129965820109551937089827405847869761818065024086050693284026569333600001469070006713686184018612418619839090030077272909323969231776752422259423552512682962609381291649528596821698052310556558352613788738959109993523120080040019056267588220900037627640122617124599063452713902902439107686223464676183775489969499977089654453440885078784761333213484648115588556268418799992510223868596503245466798113213580249783505171397696208413488814399908900200228568941029456202625027814264616641367865152472765865066234425703889994199103149162411747033850846899990157750471066155087037204547239393772345059476698981894453376752723859747121643805039612718776867927434919482140198900142552150103583029029387671615093200263270477538128210329870696015637641359391373800170036150502506502917878271789952909325267631861811400787905116393361183430660600897073146419527297104280546571548689193501503340093673825247587087272376337050652173290641864808199446656756962258678700586241982626899989186449591643994796160989352119705910968247070731165926308814726147718848008235873264606159406435015673522752476922620638889667903752569040071824611904506319910537991010899882130308000131549418776240528349947902910236152865026810977732850906184163272506009477227234659429913633050808749643599406023696810198587613005874188464405078017740949458011981481633493492148150705209702415606051230160325314168414564831794424485300552848458191160399345517168188303587856566201665734883436490387727988513053724644349811801362866617522685488658986405927119295155368355022748372626231027031336391861916672749792679479908971849445052715873631423238591782783686200162103785496998858978727546858365031483626940755209417696345196281386015193984195056997992739981409783666604836111595291956265277178924956131830891000340409362185772299887496931236918149159505907224825186957858306761577722739722919448462832053787467863487027829405484627851302172993881510196564385171548110418092342425899594610190463061747040099070310789574061492687508129658932903776396909839192836945070971022866549857610614307077232447147727892803247732907922211861922921187521543651715895148948235555762774687517688412767722336424728258979230581747937597952477681201216325266985485403032819719445787816376693217891587425822509687023495623891205136593598559889807283159872323579753722343888068663489944263981787651232823947239497572248584193742357732148105933456724452191929718267483759799952757505242196637476517703209161996900392693237580104150272407144542140731921804784363819394915189595168760036591562317168263344454658275386899866065492796342109621978076575720629808033681937134255426145995038048409974393638505155467155709029053307810679204136151539491438584923045607786381054065501393101678297303612328599660200174036221757116573655174392034312370548358240042259369777561701817935314255208608417423125222873042368627843540837212209984180998604762571980371798791061881370458849171316511216973931192732954019113926726806124493157444828046933520110833672577185048669669274550961217525156655423765695859589327099441468193235510730836098069306646137384455514274996403017778631438781185615748615659841816040384841212459968597845125370520170029173397762452733247379340711923030063861047782334029781864819172900368382317367768359415305734321310845522052259281010222152705040339425882297461118244126105517910163907470750869785495325955068534564646036322370949228031532659778652311448771692526988858120235386190912825593674110937659553887094559524482512873193934354282679001217741529637990998461032109968617238148872459896898040466604006699584120627811623218350153623225421004275137782634411052608310438880995602269651723174358877042491527846651507983197734094612420653759089335640977910477980541673345882175768254914897465147385049429084805842841010974534402884927303782451484191356139968076406275698914351192898523263713487457389681230687348436113833895258037695733627487254784441252193211806636854471537153671376537817611807657328805570479390786818680701625784016261932145493006581865246930850643903852558130254749127917942659790456276210707374617500913202518048850285181008277874218656950391844849550960459170765238623805317664267566805326258721263896439790895146675737062258678856723098311925524265374316036131500604867519219141714805555099628900454396082615856077339107191816664552780258061661477460960756359219576883664574389652597215247837596343909656631573126143190251382860210819595133338558932691897553362831739694615917905409678614334806239693594088182222893274790269849633764564450656902717438974034350445108049570467251727129372857106926191074481410461122130475359391925176102636455274820741709346824377690918825650638584713574853644720790050836439051314269454323530042354710811468594921492189529389563045105415515651784618586682807723293828540876409712509620251391531410081486461964805310777301933704374173373386926107482455779183794473438939014937210151581939450163444338941333507727844363614732088035053481507207800574858933324655648223506691470379377159675391031557692368811986961815613778201927156505189074686126675445425443016874201591880366664906114972560034132836123190810059872652868382657896719750607439946749973757227880012340399249887917661551034132763014645319459524533159221248181062156446365105135212453721718387240854585849449296075169159103548242196137518278962419880537139100067067706479258350899811045713710605329503121610831831850853681510910141802143433464968654051697297940902642057584795432196278683852776058860658985723439268204034039945377375660189482181109125708096328134576635706092915289699845530652788581250401182981217143990494320988542739476679980190186114089774116072095545476446005020611993284712751843519726897108846496600986181648992213673940462666590869331503196891548084351893847925404325262724761444554248730052197981278823966684164287053489570684853854661611567486548560310061621926711708415732011110230522904704037947858426613547268639873501290450996411813859972404929861808115917455427678008226488711279076095751262222071619471395254677769283380777684999376874977393215692562904923523352659107397071326528172535161216280024503351663271803643237770626128806781085389510089907441427577916012523223633509070539135891666633298258838878918898084299106210148712135594869042801677880854585408514561027351706969636173013337289804772562895290527199502986451891609224539045566592916160513580606169877584913268894852559000382591587842906325784771167190424839533408069117640678133825799786015072844101345668860063657076839774347732467787688053610035789394533667645141873146063338599608077753243097310887240760846365256504211774973275008419525237387176571105894905984907159454329717544499434735578566187832957444526667709523909558813982639796591035043325858412932967451781101941085087741884172012867762994527143487040663856664915067100883039421776281943482222642007014531004566246269588442250908949304981982052229330360803859535765079232327800566183362173088764797075352060357212988545575770554550542572025228960275044630054498360714989577021861713261150415345360284559206436223496374610264110948447279748015412207667190308068733149144086575742860104273204375236810102789440686331904094536293037666009477446098554721322787755373978060164546338017563609529826614332263080185007656988927681454824046644256773290428939269281050770360710109706120311600761326729795708979086416744228187075018311588537833112197147627596727717599407040822967564550360820561274082958663872315131527182594157972220043215660285858508905055379115845469473061531781607114462012480067252874056187230744342196055569145527193655342975284663268252423641192716977799701820004555250063650708655631123689446903897218819969283786584428482871262969590391672902699377836929757761634188675861460718099396242019880364389989412048388712311345473629337665654188918767736837938167746483638654478997455239763865314494374730063396041240518394113945656993055646153702941960995064169355388814995503567617290106798217578261498223692169831984310066582779722691982252421128582514914385390312713886400821184693131317142262145582206490629520641680483390166753476605837790635529279413586079441457482891755393288403618779988861541743871244946467927470408088463171487981628808237521464987152462069843642126272755008724946457526290048612699565407400914546032655724002438675650422352149693685253634021051565647373522682623641771381005220537184373548727740081912987933686561694646324130343678412401370508861335829776459739822387337735712021432130218839198151458008821486985132867768127799675347120723837541782028893958224485223396746540298288060114618011593456244583825676672065315615758222346315037788395647614949200720616671373577588051713288731790964015442893246697966536959259338053740228779707159088782606866748724420334665904201066927460633210442322411407431598424717713004081997719551795947350794868591053099562208980708969563574188251905098028684982162489768972092810575340267022360656457810055920747187227744897009181861785535459714389084999304609611857463101604234549362822224413873595377191538967613876514467812920318484653735783602419887195959276746603482715126999817126904313209593078662926032524033159607125636282247656000779900931877018184323476276212964098579374704112081938451042691403574780781901689003971162370709160013636717376478234980429762501530166494020285820204228387007893287472449151595018888119216609920365263302967462870952256038487275062323002214375208792993764431101356543037319639061824320348128005770992029055986734264839664978733998598590893576076583449139246458131616428115216166545435574048074942087468854931968026981639917711852669522516791307016851138059485630672656975858193128950499613045942690438337052255785997681747181798116074841633706662663025665072294020837368689725626335459981856304190240728393230612583076238175940825967436956672095933519410936326266263883488939161469401061646583908339359644263052959285236953351196325857500962398137591418105963178969687514360514771351480849244550838229587187974478841306442341826453217087262047745206468624548633529096520789349711310655047033643900754537762613549330720447053911657936393383636071480924931656492424188533530933396141791640037817755977795378259279949089040106521285897212961841100422151856870233696741970766161685241351306959618103461427889840139745229706685747335169728626180728756159599701628654231668608712313810845039646062676153780184774587167284677409284541839952804586200341510864608368693814972511506774697215781013769598705885456051941770001352897439924281797931176996224635692600910840295861635634907035450550300306353703534233296887404070148533767949096439660657153799103848803672025960614619009597552638101684456888798995570090643470689779461676739962617850116674349823494671241394410499190994222872461743430919206541386446459594324832986390546284443345312917851635037132838050681430920958217811012799391943521282628961436437048924120054070909944794514459107535604232209656245566410793951972372669613268207707645645153917149049385688450857918870350309112831618315127626175123806951871139290715387997316268267826068308723297514850787844117360396778491149394794086753168898308350351047844456072004933809389146304417296839909167478546020520479155133687270006391647570681537052647343429262136496566474343117509342885661196073810078084776610130626217346286867182643481549388582490606428289289729076757397334453901921346195973286470607716002236113734699214190500320088793552223979143526920977059533957950467678829971809831024219691916174217006509956228325786111982792532975915135757682131116414710785297055791039683980326263319075470264956611014721376107301050942072334329843561960962515954366526444017893464372583619363130168851107038950414178091620347481532672879457582572944365183914782318368552973697900934935400729562178680316273196177046492284299070168133513333849409080123739558380460601968358206978547182243762554830224735869305154632269216708866564635142981464801613429588097604425919763213980847944826632170338017488164066380205821860353330883878176830511123813946126792249649100347510552324955220202232850174873499345962816618126590766758956654386542170155040106680111463554906391596626996262537590838896565821040687641245973201747783919498560864569400146905911404889610978213492515051096350536121649277441530772317982721606337621884197527259013276593532682061827399161864475678290238139506990205112737638113111085745972243767184964399538079535302129387204213039390011606708434815667695069709963237932236222174300224375781552735054038353571315123063329218345114792614918626098172764638693991290361646075560965578086289800664024774685108880962411067995437396604834492469564965491305837019848165086634333209151660644732180750764176071283092658556331807367234419232521907420114963298138163705058967529557115102131560940682012574194207075623654897827494395306758343198229901241918665327124341081355341785745022132276636661662486459717431412885343778518900441317959528778860884999470318854358273863840818931361309577520517689132241655577712213087912534605011199182777946115039611400172964513062535612378825415568807256092402471459692147502101392703261330382304431724926195510711956943234062344024492975777462243835190425936326418176188573686860843672513480464431510797916590723716998634674371096294175983768755187608904616691597475732700751665208048413226500244386065633579283114602527164287962022368235907434637952386718225531972378742862885661622167327275009091767560374620946670423318536225913339431490838038575981305129250541356639219945653690890677794908545627132699434398833210496391363662853289814705170936808001436635272630587771331269478411214461786318399739978612531593608326204571494018450540465155167763991366246755729764348271592435484760510475395433737620241297284498250027974486228396715167427452943520357812039674468753429630539507181855253977373215520321911686179850774414346617513520109680433772345478481538306939166907564878981222704378124760494525630883183876512793986660980179752503914334160296212362920476735742646445270994977270926393230864787549168028922926924032361156345303615247140035386418826209014475296085750273143833902929129672978647674813729142835194165480285136845196789118870049961357428244029774284288658606684108151290546187631842237987925541359463374556789897808163751369489339147664859914895183734309212389791385702309295799076158407632033308637675681834435289551420739495122415685205727687118654864806833195775558836029686487536934123344555262816043509325609422307445075354665889862930933415524602326133314061894489787520474728503510019221346415519764254475315732618796672334766686369931010486819221605300100642311901588275017177496946223653091484637266409295951357388399853732924871079480104161124148649192319726269567823060390168909716158450388599442375657001668349543009979003900510472730041627580288315267863847550683160722834930751068681074182033041963286938778646993200766632577094272140091736767671650043142394608427192775870712911708673999417737063058815195650274286549743907365600036461830904367302024771437126768410664877695350445385065603646677803919023144371410575622575283054849683670336870367030469899379420255124739070624427807778595683023268473822368290883736957594090759761363923390575876373285307238785458143408900826133391771604472726152930316549868458223508298604625174474883450772760675752298903284805398314116576545976363478761654984213432235021148620013730039342574430234258424362336730899695935897537739283402384834231527574881725345176929470205923478082304971574333888067559914669073962028602333032003564336982268693948579505970991927007156151297039684675414906619090269276116481075046309595249073827981237297184400418543237860045005618361456906679111750584144173487728634751096449863185666798700235601647221249218254445567862388605837700650573437489234611264401165772542831288854074018152388504722248080316296933067665775271949519797790017351168660840082534586403176476420478206220450984344246170059524141809000168327227458641970418110118434799127528670412167216837728962190745863767983380187197232073510754721376308295291392236936785013627392645624533736560280672564822408370831132743058855128660103377762406372366692594653136966983482529907319935457887481451222089564250967482315859147326706936275463190815857457596712488560631739704956313709109851696761540617756023951146024265216069353977649679146116103295655644383558996204301707329541375000192740211917250893844132838144610877744584318671265205685747675398215135235792682051557623607978843662324099908519889300135370407171797120468900766394000329914173226514038965675174844851054678413758699664670977502324436169329961349599463178552211358416284758952198938299021057392438620269725164949452657445716123913307865529543119142512575068561090404798888628176051124007771643191804261750596204227613432916020205545397790778873516486069044330013511311803085801823643771300518949398740327708133487201083521647407374317261020911157156077498800854276901962429669349695595774868200295368223350021720067992193684059957595399278801971415685805188138035152142491106924217043073049691412552145102851923984330945142452722827460353382808640227845331003869108864689476270663669115888358809498028252119023098046364308046690145629732564131680296238456437229329067633827749670437708325682179229632111540921594626339787690827884759894872845910522657022265778059486373986887515336455173284660191881360772161543010776957241031417068330768947623229043597134333762991984253306904652052487931827415343927653556569540792477280473499533562291623894331997540653657208085084578985633819313827632597931175062944265822399742001449289945697806711367873237039087349412778625966914839112935687008356189497331411511711368407204090517248458800970909405766312809609786379650144981376608930025054103393545201004152900447710544394137646412220026515301419055156181991483701823889324248886844553301598012032626914370749220401302260310928512690981609067197023980183558907186125369694445591749743190911090866280653931613367423625473411326624459962260667899629343502233201353397463858403829714915792478605353484201010343713220863058930223480083489463258301130921214985980932603405079370486017050688214554722177300126829629998262988865333057146071828039234584669631242797763316232651435127927217346637354754762629889134318379881438128726097745458691052085738453556280385528481909263594565860605771052242548334367565983301427635451090069067796763873904132348730171792945347009529718571882517786370857607761627422736030846667234683166808512417855204592505639283060190756528511740899441379991409600582394372178842455671013203259882069086900736790603784154652946818330691240090408871476955749133920820997550093733656842622376815922519276572572086261874391698753892692419870573454228023558960852925035553276806437226186735869303762497349308201537007832598747210812759949749717732852399847656803221538194510391983980665857200711698343128863063070121024580405047168046424991647670564343152165313831644121395031294887955775658801325187401846688571118557715807598535581461189876753181300631458607689201577882159801093876144797598865481552664090639023342206099791640439968901202723810133361033220907968517988643957799887365890788841431515809023676801765231011382077724933662346367327061464091476849729603252393698383713962044876402744229864657895565803638770739430646030682735995075302670966800171212266524876555898601906899151292081905165027203984540452213718113243601956654853625247992236004772966692606705011545356256297270817733064274963442412849116660551834075299226617729013483625422645625623184847348370846294096958810732922779967070167920698212318098469197961186564657871866925170876973104172739292859849774035446923093111226780521140504321294882103594769027069490331948133204410161733053562338497362409036204009246012598773845624333337934302518273526410672730444377631131908522967598311340057549821744677568545169447291606336293878691497237161824895500774246430587273909085290510840309086364958073673308204312449716472540597900544830383008144764495466561260604788068464227964993407510172965002408298392936137952474938320635235447717112723683500736905627152616897076118951734285177002584329634372889124689632817616909679442418104228485855360127708677791970183048461968534425835258143688788365122238712462907301134757309227744551208128033294215840671878276360191305100476300203324411525035416878965313016906403357944110991999700594060484997634259325902559110919156337383581792562406139005862666831694507485913220890497363204946389937395365681817428303928120258533370490775008989389672721370630691042983884571728913694979506202165566018350350065439364729410576858886795726136149743527543381409356001343487934228064599395346104778989695705617909125756845250175017483324168957657176603009166722955966947878406287022359219787815364147655096777105614667744124008668571221564208825952071361387523225804673865313110034880565409782102182222194727820331195247454565718668534856634243403304355120265525409929575159957215625175072695899603509050931450832009702877397953783687056287674820019579190293947788777763847371290352378208060723695581587384780426813302743295723296206605619470085005312953157852608846047423340736557301472157228245563701418566784871251285638928681974885535031578319530711200244381482410553814585818804866913540109175517902156804974948828965684064931206980348609340120885109163123540084893431692878907712938792644723552844955048246973635627451190245999869548995714616045915310158859953901729876500803504644596890619778398453764761109762704230528765865503582376641606762621018004120692723911970940937484821640957413181329814939844271885050715647238931460977254470917543472269472340004609907340673039328722966066673309214302233400463704885375322142881882086614353634872650868889243608130691295339301359271854908300747444402920002550277832149999526720025235177362833401511755253626509925572602867190313625702775729600572513854345184805804804850720887761667264630847242922278094250086305153996287112599684543919221301380817804883577080759530755114588047039951733160202514448294380459512921246274161487040420720068205507482112762264632056574782617040764446807600315947565387956211503353001243707730326870694907987852616602419503392099154365476388609038544192335157775926875460194495141013488612790612962779925401971332055376525365820597400005637019905636143784114955622576580062409519205571297970654185303854253899925344091907003371024063834291901284533016538766937451387992457993158759047725405419052353891573896540496353855004616340606344354625233810038345161359813691235724715654130483436052783663943428936951261665899303504269067529275627888667039170026573231781740610861159497729950210307676343880668320266975171524683500531592393914512488427891890442964852878664883216616011701052302980240593976879339311829300949564056810165473737342592678021229387063394998019155496114592769152691042552705312350931075609713926042235036923660035836923972689969345620373180664373523392494755092223263180649339798229475805291914789379010076812861054257715794371434590601413582059375292373145100019860842172419059201770235416047050073072498967016972478709102435653840568458511595853320919680498291264683800217340074952679164380076003599081437829472603612426684864575124483422709127123149853543839621033670974289035166559411106080511635786193347008926375319731741397917822870810812582976913751334432035874996879367859806701974933451500698176444784634889859560093483635814174651315096134959587429608410377623545313002851054979132950679428151852379571474617824092163287710894339966106039724849095655944431446990419362674417065634977230487369984862709607794409655178709269189616987222652816000393884771098630757469175385396032596348403446668164750957312685918480378512842456756192644355753103508054533707305038372395670301866553475228904033288900312172962108824262128442211624639045059648634292729783175678337240992248066280308585925307224870430163038298661187573425027291978671284152109042284707577929656058522086923549228982730635993152495206856117869411674690690371785398679662042889899561491594680482012752290852413853176673750923589396711719015761152622612402227219525626202021074137841114887942134106540009744100501922908395308457562699295013817734172132240873656393157794413795274644959594181031637592497928154597245094289530055307354403377613620999463420709396497288530201162791015407762545726861944159406473930139421837237436908815949438137728219031347187664929989279533097436965777896186049190273642042477727752867988478003863862649202000304684929004256143101973393170010017421589484262276186390642329693279625458024042245315204433367958068386680852604651675958456540227772341018544289608720608412787148061842768031949106442432268351052804562572884103467686073764375007472430344549850557286041661159790682717850667782267371454781759568229119200132925562397169304329202313427844096671001627531373535952962769903494162879031107288394996345717347547494082534176164025799522039308572205020613237919154349577402958993121269751909345532063080828379881349043611756059037751574028728764491374935879454423473128359098707281600266051036866157982741754304277132076590212478458366592062155185032691726335097197007038884239743904448347987464938904366572169718233078495614131832642547518436610270202918352901277475339789342150009284555143677505217724008026432287570343154441464490561916589399944027029813375560892449467832712037312017744905619813562495566403644558031994156559972308110443519087472656555856702112136852686866031475446732923943993181960906363660156575780098235866464186655369994332889340224262301912012479997227240053162504344859262641831884220588199928639334600103281147291951375702520901831554301034059577553404436804290722472889548826353182071850388109658856059460690132186740418519186815837205734415362676395843058260664427860853541591375225202371360258856143484288345331863939743187232393724439696648242284556824729461846881905611654162687867009915152765752245111668208918066758256068828414092489627032959072081907986401918953733516738179578717288548758141455824887663688576420189518496491315085753894730518263892064725884948340094155270299747819226727581020277657132828788279903833568904813329417010961739097668741184885855010803914738074077933096514715077804117599969592301481551488423780500423733186833793880644543176851293746961720178507549476482484902793348179758340727030811876503617417225967164848409253159190431821312892111298894650363265554109939783896884180496968171163605074750851991182363409445141429965339584812012781934746529994479387611707738646288409469691220386719523720202211409844602650837916029590409305710484195464009903883436709099789444018071482106639465720570189556251169216085511071885077790072945748023104757507510881408700319751170250869639977820023161439087928545227323653042209208566853723543311813653184642039820326773072731960145487358677731567403848347292089508612519872958605124590027082528680419826289818706179683432432641426755620577648536537603512214509249304467865115243985387041307643005984968333278047952281575381396437659353041051656698480026363888988443344758220963484610685679364602594099269859392437234026597383029332525576761313003339948136140936996654570140432323233972598186815536562585074417093886754353508372329858389325887163819933203304902793767010670103982407546911164813591729841774398815246384038941095259248882481236717942454961684462868086058321242768250872304522298641185372409967494687834939081698195357183546525181845055668610481052567578448328841577699636321260124880021924375349800419274991168250261743381891163493760594739100291150646047030667475279998348159159607578683920200889611697507171918569493656822775196486975655579309745202008840124043631048014485342035660677467230322931858924766767705436295985880545080987348663188283447989353505034537730115757967168013925307624749084775225502447648643941883619431960987961267761751057118744049700528592075430717032749556215125666612070881584476294301348461083838649507780555922954006723516756337840122262520400564151519873306334443453404358697732481983278204573606118685169613654763649177702588256057292517918044335877820808913286544312301645894580966472146232788135617793417100773181820331799119698866742691661278410721807057585966479644652536154325002967920950742856779021223989040812489523979474727713622423232757045560525356729630685667749385855263216588797988693796705312964401178929379415059720922994264659667600641008004976363473536560987559930961473846954990148507349456204592935396042781407867309324713912871707193434672371255849597550169910773134307087796868827695046858031664077614158679056247746183070810409354494414727039390258437632505903877326575942725684749035062362579647469224231100832114658436055637432940625291526408780997627395448527559672745794947666892434159345405156896248452994496231962318350723277308514540051979335220302865910764607664903609400271665847934355230561163173514427600269738663149203203933319870116812193359456282779887135134126986540199707435507384155377831318162886352568902678050098326664816634115866748929724440052454995694408112229448835573651052623232671915726641452229980872015695186170467511299682703624625250068624074245758957244664510040573578237474330335357280264768961870043373860551998484580750171073695696269969209285324141926221604966365763910143603503137369589382647825291659909139015592237019587922573055160300496335666824644687710094350710461372711978697282673221929005548269970792360489120739218232979565063515707897391671514656473546225632030465104456158409621593256538488315928317840461284668680385116440272759694446174197803223114137632769467265701356409331907262952288230932942521530134200371345588619961773735723877899102093966662978730675412405376099522095904604822528618148676338098237597826567620116686046539649414196972965173621981247957534408841085287883772869265420069549218348361538070578590169889219798879731481347723299367668521006777108344722099090140869364743458356354975640108886862620379548262025653880890947434330242971115722504415006558722832497650502210469957471077133455259242119042014145469115794200595355529585090262978869473146973121983943370269118604814638719707470274236212836009197575607291634300876712141155310803092944092586096701121724447621304380513378798097379927887193404166612257746176950585420697833632217421036521510953575588486651516757146276054761535542241661815361473303432936660700912650408433419097086071397414737981513915788301743969703854913904631492260303524872173402747603858133170803558482915292601852247779978760248550724081241029089601341752138505023021056385886479575417434785198240587111710835013513672924035177306559116684767502024568470840430231527395571171893000326176602632614639130059244482548541205740233306722231655589884348388493590873652622037203327162602022928625166297147528423386969047672963686743784113081851436257269273480319780199678000245422102948188162879543317893639003678972616756300863355278027811403127211621719173102996395994025648357509817651755348647296080832008706350525670723475216013953991124413134484732483449944651518426709355874613483456542400624017263343866514123992357499252339232574611249022979180472344756558846205911832772310602948238243912122984215413585619770885141669465670269954878335265415250767310854221802700779914077977172826745292834308048713403277137295079349542553366493155031685199064884353125520459296389947046368715199344647315918151787032398202435330450810603442627723562606013475214153390999453279152964904871049349581464404712543618388370786414400001135564236225859901851415056264316563995295916465882192907054610893355740505185176220962316290469954674706859740062026506037168983586011575222991679954483098792329867433894012629243751000736666147960575383797558559806046870678980781109747103126602440806109470086920445355917409032794816802893821603736789164609479558887677659202195414936080819628207708916098820654571951098058399323125173236324967064303597981284223613009461608549973738620365015867293972751707995238689833878537217787500840693390880356313313542772793975723629409542325134160546386887983429433397507815100920493592349983995630007584528843185183115869700224649098219587975130036228009705037306094379589624603651238242575402770317828283202015238208286138159652274925224125671223849662300639522932579426460937752609102987935003844966009145439142839624259718532991869040221731167510977755534689205998006033866214980816577893708807139734116203794566777388376572564747523414357815546844344851743518732290739108968187274489362031852247040353470074118253821989802274489436328044842942679416327758841457662727149991871289752048425021773650217192906672751328453767090588987154677418252356307811547245578489961874514577206759709408416573768595539795999399735586553400757396358958644643769659141525218109933786812956961876242294207319165874617026470311055771951340885062688765353091339606744275111330906104205617654033656981500996844105827621596484518567741406725951226366039965967928126872795822344100972716211000616666932349507111835238382238961350260680036195825159665925505378579936452409616407824951884378801230513213524811952008170487408081103781522328865976625706641744053240975693637779231361644449371330235194039004857013873022126567737723910578566794134983932891364854611054281484366572160293033660584900123483692698035171580792470976799228958582700052960771235612261728165752080523192516792460324817385796636040097130543731879853173427121946976120448465509393510271833987669366349250956247153085657790992260980229627874101045185002625674799864799597444749118496942329443302085246720856782689010598706868143277445748696992496848974496689882401924854844800942652302964428325647400219013844518926775453562339667225427824394208426782870523372522732185125893840835320113270434207739715231822263452748183519723376841054341218097799576576980801872779157116739355988224033195068339721286024013189559857613392450443625126300595792578675986085799450738075646567754886451967681402900112594749261557607887901310680813475455437402025136580545078874179757724132673384107705206759679372177460101581179687825765373333044259157248572154124935284958869478660417070508063206631381986471427237349186030164955140386680580377033307581318326580824377330068963048432249624347247972307898804959571166974765581223979218144040209492902844118853870848912697727867239086009185063442917197597713690720857579823830908083007566077107569406923529039985073192811873579625697381693843580372831385867703994292213154273239131040781011441444847904926313685526526407720607997870482308781904891412481618195323378855919879169714116731980979067594864304328558948424702495826269380093354738842832240467884818037450343316234735403408564169306464003251395684688839416871479751625020985221716653460289374205442588379230370601818069404391327508870072676221291430410375548951586415639343155311030096670267377168590905418197683153043702688424006376874635879106151326545622777623321819113868806925792188419579052463754771895661344252836011330658378827415580155105493649194108563233425445710269508473515943829293010608063456411972734762867488300681829393604856119204555611949616299762707455811122383372082459596203192349779284688080562897272235211968390704252570719533343841840730241020324626564312127072921462200040411884075278622995000105172816501483902103876917596283834516512277892313477533408446545006395915960762190473645069995008081198250853757289419129477405462234468369384256484064707158261097514505633490385756157580595276027934906414931425591823985512833878758700947296197768480117171912684740218328074077549914944927770646923460841864333761450990578125696716787327948697212760720053339351338579615310010373978193964205149784622946951683165345162161241311545989063607612720078686596316468154095027228539267309631966466633514285726408912380204702693070012267857732751301518493087000167932909819783444476470163805199557580156142511698764612218182316244582282058532807052574645314572887111748603567265501973940878059630170870924669300760476476197460368819271914599731709603176906522177917864931909152330147473000310853231157213002516213512001610549814567474052783240212670487866624187638537855743664288366962717503952330596162038401669732749813087322808306493998123732951173084059825204287950199861413607103995549441003756414564526662030255228843972621931243308180860095841410792458482143450437664920776829418953023517509804091174855323350029357886183578099002881870111036400016996944710222743582228801186712376385553926817530246466339337374107718868532523328216081049822559189628812462159055204335631578582038222925657899989883495866896362747952513961669289668171411566707576292919472383255600811934421660243390671087674649961852535217045522449814652266475717757136833725344308552663803971342950945476165435065044026967070787437299105437452578998655216293715637527663381698374080833909935310426264451737310998655886772048297232602323882659226867947215434427788696676871156535220719494645236135519489490286206992536134664550066553761763151781778121781218550534988247551215319171037322495885528812880367478625803103863910173590085021204592067223452850406904563123976210298968404280453588935022805843705134926124104219310575076133552865035170156434823774664795663746465217058554042131080998615102544004268519777314780390506542264752640832286190263507216541440066017601785927948667079111213030859388976158061200028995833092759241728479361289559734526791221675060577847891573773304537786301926254647665740760636638969785121844660300116004779999778873466802366060363642599553928508862255479060916097112920517828209121267443529875601062191766520526181960423051781323599642015984007647479504872912986151165981205651613941250494476919656949537495724368396987267102976366386519297732675420522262734600337887347169275287239413558913311902990940087190066542975702203184163483754957986049078013750132323512005496683382668942070992980917505864163004735081634792691919656154714389589636915011148417465454215872276798098537350371919684751061923714082773348639084813290067260847288828840590584816834214713988673546615957464029325487407214454087179711708607332130230970726005928676929697856627887695146047474633045643750944242756192354153093500688338330684914808361254323577367421201858659568511572389654582304162114613357968900254537477905946520342996216167124143598914394607611961958227569706291219524190794527549442099364920138092312469232435264654067432063609097418905335369848004966161468652588873595213947699073404237643805000662275401098581154236874112733761439016279209466175271481170527599887407189492888684818005145776122230633589977737753095475063153638565265319906267454346032976235249722824240582024036509642314345351960109258855478271224613542070322046339063115634299011194110285719103519917753432671292710253072553415656071083644292830030337981194514437499128943776952942045970916497936051292884737350420122399970133331279709257088660414759295452726304684984820943222130193055771745022352157650790989651196234259411246336793726955762323937050854839877208532386653302047779873209149998540036487798957008124845337148535803157309739765645849299101268849972828275555003149977468712089680124475949881161616194255318896257871236938251418636398131585773082778805082255454472453843556904260010903850310665642755749079564366678036963428195590269926754501451005686764842079275531782720860713832780066402559141382707291227302899543375657902600951836291099777028367491577992979623478434902930580249390159887379112805560750529933386557080534183377563681029455238539584999346878626982928745446895487651518972085935817129378071602314284487255791747635577216511205988350663147564478699440129261710962444275858035685093647664655081735294738173860868917396934018264174082107254275635484421171823566970338508790633705577206624252116611472626480554493822945910134417112168326793542966154526853553931777392686712130047609439683252633596959828392322639570400186322614779778834674916584817974447051173331148681084680871555563090028900469813488361840941097077437694173531610561165048093361572673887758949128417866687021239316867849635762322502413295526630994094001132871471095050467887169319020752832026246490984942879754344817122678095482523941719576078026264860535326467497546880652621685970223514507702088864164840231626094901646917332785436546705535143270581579399336744739862475976626535852979070855301767862091101669909146080079202709383460166684138259108893642930043805508244797692556924083786339981152806953243790874277942308625472601254052316515668738283566677087210095786837666022531174230693559669608820267115731657400822910979309948082306239969365602013613455072922664591585733554466074572537092974996286017826362808598361251413062297247417081052060884869864283841621683709894512020926695813242612892095237299493487320720078054167989666090137179164118338937187895438428669775555362454384277062300741521574958308742203476861393817151391278957743420612522621781962021583672046640135393933175944148497199855003253518675964734352173866095265925084709028614918062274387854836465235269991298668964210736513918483323184358269330385878683882610402739307057606934658535143648397363793341476048338816036857571911325623023056090686200031783056506636966772172240830091073960517083273284799603124319812126548769874067568959236574568165859357988909346620666095118225601609927654522111271717002415026924981750705940750964735039338430547463237515837304076386981865999331056296349491843020533741174428645873546015024700545916623315575233074789902539669849579036162870747033873423792516133938741101898225112411166763389292113572059262642483979003703646517321175221082281082553105553610947894709779716954722164584975571585443778410985444868447157588791608625102554410257982703750457180339525360421350382174148853251785127974937181206555399356801366751319912871827661637663221621799241146718508974745172709387380096410109396367643899189737665589501321843124763055663788315171288185610680074946061405142152248489399857013208961885577585262181092235269483588095061346197643934719782429471031574405747170220209445342367772498289242312851973684870062554650648750395891108335145761101423807858069724033637391118305265946241004870540963039262417449647604490133208654980688256655765298725659473787881931867691161189960291912558354034677469762938758423797024606557209580856924695353200654675484736439448188142754020867871974744136108320585348583015051447830108334300131825616754503764726684102714185335677931780630675291243345029196851207981804204295488823926101527260038809792608608317551692931020500714637372560778954014839544144977446146081567951721983564188896610093015839716747016663090766852774256321664228875892376457883247635406461783497599307965325036725997231168068970641834554334826998953616594053893232481904486671892488669640744231546628626831784908574752199754109742338944075407021230838431030270958750195023279541005869691613418745413603184223303528614417120650103971752441883916076498126314638684801486991661793354330398333618609781386914460555727459731113499270855821552341081080496020699767582670007457798736511380822884230808942626125209716120207922527305720618311641497350458630836352053601847051972052193749275864580531748311014296153783620963852903427800918575123295536308336841265216930265618944271104941566249491479391217655823524993801937721591322085011195990993728315522433587648104730097513515956883966444142207356318264328810154022831579209740429203823888544281751856557500177208909498446834386798436560718986958065523222031868247986812787886770144211151682676106938827005428617292125893022421454592288331258541310607158761575254254263152287708420122524641178060272425717939713212467234336579780828511518296563078386960446335351111530210760870435011658252316646209651618226460539194440358956626818739259407356104009130229135209428559347655099284182108344220490335071973704220915373959403701921890046359051701792168922594319920187261420286072526714845911848389203586751277245837604010041575907248309365442014821551435502813286622561628577496057220164146856491826211468182600938780022236969248032661630270684802590113329934511347706024311466153188194090552206814912239503365976056965306278869639658687039872098139441555638894767536508824937286658861790463861961900272126276952788037646185543220349811274337350480404369175262726274198410736655830603495959753254649005156977330484819327552612369464486171631196039221152220874103644058056953797233426704007153243592328849792837304039516378827175163771993580948517722763912931309468111213060480284148798312686361788052792809928424557975370917710484129310390828072245900127393120387068993060139614385210744784937953453518460117697035803652014353575959313157860635907335291571604801555239608462962901485395477134113862903892175342110905271922856863994310631023595284914988904326844312678603788573296993282514605851902496037031242711936893568160069261210397891685527254361841110720706761363008816590203353203842485968749390997296859686294561170349853763521277827320492325716512387577715625506014523422083171654700757081282902152179064679037444205610290371285837176300450182926968893369449883704502947358527514674232651521024190350748615897158470677345828998644587283071516323931223337443795784556578134705883078837142620054952965471613217077273864173707111454806920035457325844229384447967695199933997178607998557147279449586463992078363744527495825914990280225372012057008419419647043935609363728473617046476905528369542568741240755622202841031272031414481832068917011912927311319550871750695023611693005899644869288944608464493097858739049969264896339050015658087559051167279770887299586248399191729916319230668593191080422865128274655940448489693008644758477851928110079385984922790831930659581823530873504391663705491597745267448600560859309082637846069842780940091292980644914583640177144212485954257883069297179679445425141654670136752063519543105722186244115676015193554694538087277397468008329907587567178392794538785382102001753468130667756163655006589304756456720908311251513290938200601570329462261892203894939791857555374943418986982505898661652510981166680262267314424976568708638722161931214736643202598694647394255914583155349915018942108460443248987688506431668584539924461863620379500890752847772460302527360030173963983899924774845388777912364843228656114738785375435156097436757379535679671143685796217070123260864458050393093023913472428853872278198162599475827757604539742545858717289333395191080026696609477381430512518058032110593967619553795542963395172667323438764502249760398574094425309633193681264726489296914594529841668427364156384878474313071632732856211999310919258650940798164790014937037309284019294201804227976152695343612465509371719835227573821074143281003773149925272660488789232988069265900053295197474511202951812431010606704890710439439896171981878481387426438557350206491560739976480834744086285654810780208640521783756519580300189725429068088403593905864316035756155694720089766012394125925222010178410646226362316632197340500268118054569668599224272640774224416726611036923430854547425997538982621606116232153347662552401584365826558385219925667916510107083359547748771199192236714693126342097608169410185717739803091754214356217198553890060189712766888895322510220344714326306161357847693744717874821058321603773692267900881461789421041045227755935128010921689501904423573635214896797875847180674232900552833039197321424807430350425181591016831239775499421194622391191993108135873288721609186457653726041352084146929734313418095838030526975501161879181164437250525427170354804840814434991093851869795979107032153305317869346579520801880761078960052202630955431310297084256541196150038449877422395680541503363615781188810257415482958752870675671157572338500480982747504457063596937474046868324453651886378937218336944315531430052219568330938619557863257984133836832910578943167617520383341463298398248702327265412727029703579343663059385450209792065470781204774765369572389827916387282736896392251650381735657991883183444510609614380326936457282360016269104639267657208309811233299381425235599296716461370174971786994754680558608883354910920726471345232224639447826226015753003899422306729392623492623873197939438409128418005764882429713265231606437191594856328737146212955437566228674164322579871127252486898010598173388806555344354869873462478390923055239532242364666176492779559511727973004241407810640973715613928783941250537203775685953522703180110248988576171811599586815994958304756206257622517958455751473390979428204908635943940259212111668309216998111764568305380105840543486065587625818153628858059751617269782695702707404064428902148619507427358797394180466138999289254257985091653044593808021309764162193158953608695908151542160756770479607694861609513588558599573232373981520199592108319634493022275452405904079734142912561609242635571181460152079355097342030690275175820153443211223780849697482074052046972856253491539884085736094405057196018380658407858830574346814577163291818161213990315090111247995653025898829814364295927714854018865102665247176542304810670385718262132712011000534749293170307985115150173286883850436398491082977384232531951955028506709953400579644347892389875289050243125334794956766511495498655956642440802355633858930614093435226994334831873981422544784837410405937565286327831546785803056360361170334480808597888404511534163104797513559122629830792307619660086064170401897567395865271984971947215721547510541819064742720524944442348460236464650980249217987093164239233804299360182042474199731277442241875804853507524684970427308949265823066889842747042075610260703991043949277245603683005050566513848306627952982489200073320912750223652666358039606699669574850805933485383719142009919292138986269238599018467044423194357134516692561636752441001284578015511549457323673965158478847350249156656104822682339800762120946175589139414710472564558639901327992178437831096671117322219289137726278073378204077862960264138749470101452083925716134707936654495954119342700088198901341854748253143412895753206268035554108131885994124859156427456795648773710498814294388188991989319188356597544557157249275616259882181067540543462654404904973562094251583142476974816213536910545884643964264565628352978672670565788145133297590263506822066415489262364531715588516640808078716858522660663502096965392569543562430051149232509898098667783361291358263053530722426620754229320871907869282136418827645504461465476625486194196975768285509612488331446437435762654549874224216357160908722809953175105014461662888225814479622942246455883071316661489037134379941047823439913832180518067126567906484877011809914250961790144610335953823829807959438249789725159394965412636059376078191782279054003104807945126182259690796827019641247787125936372245182185889805632157275065353909907391505549408524845719267891452338822726209703706100807352599496251740187720343623237663488431088630698693086721653402909385322588837723268174762094590834372413801119072592165306537327850735890130296443604388122990260659295142519311213779110511256895130344283452674680194064291368731698264249543660740101759760556032090419084206471231892481851720240501226078794105496713707036665527888622001814965835306189299593079982074435453495457481583161501349353014073073635881316898930820314510247429136850614627571389554070295725627586186180624775530267785929980160708542152899487380703840175785840744850169878461686442723364504482920911336360720519424955474743841999451592985519339834105092405172736541061086390079473051270565650984383299404550852086730535039151913666906865911467383861112146230860914955039283697435404638340793463051053546438035715606948984658198802695286833394556412337243351722970088193706039122303143868991722272981126256318861879635785516024728508497818361884546834844575897121290741500788098924586292398138630958970000147066841171865522459036019935939658108766603081668752414652462217068306722481628146613639423672769519174670155651121890976212906734885102203919618032360307286508544730116079620002157773516340270251278674255120800050019473957309205275992473404261675576759958579720049706653227882266768958604553106132808946368403172767653272235037223785935732875024428249834584840717896100395867145857578037241391618847396317521837041733105494172279432044701241651308587430963494549551947247566070583212158472384683972038576543275438975239459705953300784615866571211271090213874083437531064709180094286755932805447658023090051554212399548275964529734524811327114841075607450451887616311167347809486927300312934190641629130672186140623841245920975420509859291537810977884367932329165185885192153997366551637654167344225421163180798692704964302866833557348218106978226393109482213783716148665893716603992636124861136776812323595934044272840693716174004727226555676418327854033190355577419226514369705504766369590461717338577794292378408622087044050147606918661922439548619160023479752757243280282269637327735595687585361022450559340163560185604031928131704140467720216837761432212970506877303957228983388195585593445467484793351136109904003980719430508504025233317427522507066191422807784383359826717895522003517845964185748301974573882434477761027660738210758781226850429674177941133927292745847553061453899769045081260985448812962005787007580613233492964936085822622482834892938823530675517955825261218536686262684189419253580681227996638785606397724214174206698044045790822160414681949365533651025908990949017926732899599713358361000025604043490006701974304309199446150785000649328934955601231702149837850605796371025435743291880552444595677562858469882335500144341575535597556439282283858558401500870972500646724859372785539448793330261344087071147114703476664012897590720330433632536659989354129709739418821180545068380805207137366685476694837598687900135688289260170482482285590040979535162872329665396601648747243799345837331714652205380284579057840330205227066006793177403425020055160744535695077700008004987252964352792492249122474365277443055897522348402140872957717128413426945589006239182591847583788759971513057164280168425841187029123360957257820687320944060246243226247487259221619968883036194486107654383199429102665715022452160919225758035137954331989788072555663975989902735022924906167068860510617913275170105205393796185333938303348140369538357870793142962791342676135080046359242445257109913978968512586841061792245850448652142602533696054134384319734951993051185693860529214994194890470562581742239240245642890596665000588650475962815767446663987970100139582350588681957925770532407617314616540133954710213743507752688838076534848138680768534751408779399809215241079570393337226994359220794567923755747369592363864898437783469487994320572965540255002527277436754221021309768633859962953125775886703321312827110505859671832853625114962291673729428038991993321020195761944903064430513111318209667877465443097151512320833914728889176849717244562478179369980003993625683876534147654333912138964452630917772780239278219912526625241159686146182247178222566128761166847788677681377009060987338280486464718378715255649304978225024272097966803301849509272855955440184850117120019571022209468393152726736727859109433157153189638949334648024803574840433322878964672634112590163359419482599698525332974220503702857024334968516590482868113764604295873906528971193732649993998877967970222313510401471659870205481427006940506790495857988066262028014620944825895320593545966948500001779040853403153024790278293772327429000378890575539881960972216809575107586835370930344219818255258650141835603806166612500259069521953566859563337621419050512435089754726405635812610810065766194528684998943189302648178532433493540888735037939544713927598115242285447141118679504878318230468010815638592466985503058053788050198929382537422126797178852138875668470574299732966745560053658966919675349042207217281140478905757846038342953117103504951962723279394165122859712632956514678870803183100924559293642288834359447686458637366036885254637417814237034852831579922965588739321575416301434555621175185285899555808514228790618917310612008127982477802016672041576088759570502122669359547079195973661706085991425869384926306645448919273041056237021891397048031600480543100903172020874448240521161503774256888969997142329623445199953857059775686042656154650143734290196360769981011352719685115359461969602430680095423445919060423562807742075077367725490834290367621955851810155913567422453137362174160935269587344105549403656327291331060571789484758484061983288064638516145826404809940779833565517456972854961562047948109843538531528109852104079470189965119373206821994835048306936508399144186428214888594794113500875077687296389450332153333803567902597404074650572622211008194880208596950735696404218519281874798265794456195776485762571816662411182394647339635607261624291051836692697477773549425742071328114505014674845350768619489456512603080075797951957762024934113611344617000827975330053694791581982075280185365211170450579157973296359204413160036818390969877220300927569265435811000488852224766631778919406806434126929268015292977775672628140408642572207684722777447120862494253961402822397907968296014811771834715683473855687738645702482846950531641253644373120671780882279496434669924969056691876386412416863597252379946219632548087947540182970556751997112986609418763167896948097588436600810784307529860999876138317769298965626344258799175487817144976511669780712337879983482837750738527468189822844782971538675916272118904804714690690835254259080003395371091516754340538229756031264414718310738776534787715542213296853752504802141219481591809321734884092385198702512900922420421414501694686345283405075540284708556587105581515146444429090896430151361661636436819079964854425797119767499538659278121560793343367178718551075667722525513354985431316699707590425487528037998697946715744286354124457810131802600801278077874403772238248131175271222711445312800918767198506502685670713598553961003326569611349002256686111964025444874809178578560222933636893037370356269935366549995812618640661115685829661685529999524049953564761117002924765336370802942214197930117782289052575432060287636159811551521197607337000196570918440818877366332264711821095281494886491387788158136590909652272441943404717073929935042403158650713605238506217948362759694928899893804642980263176981327570321755532930814376410468554785887305198327522304892605032552828638431842918105531507724090325471630819724493397906667093458382902092830003728063573663611161668511741287313966320563432117134964319337305466884461840054143559214012568598777027174667244368947455969012530687912372588894239110130618454008221759524553102452739209436274523686920436331211325952182997975217491536724732436039711139557661232412802098421715161317492251860696927950168324728283826505717345697345902841741420780996616699676889003623765964811117651770714404138253620799063502710149553202662789289572859013273844773875786202340469062061582481755584702829256553753436604981860850361644560647765382078062168431076250672356440076566018510430412744779664327230130133059122496923625038043216058352314138959989181882323342904538552646972466715830416758776558136901294162140380410167881521935490537610437444193833764930353904623605472086678994331735993025776300684626215348572449254050422917672985013274003714933367003415885073346719128574063315103152331456508248877193274435789753875658901285422252828187917143654856647734371398280628947368608388875354861879820404541415959894760098748777605628388715807639271565290484520263117402381133105575940224189707558332127561677147944509004749569079259726356454722071120908189046483749135396862117415975956112519369107864688395517521913902173880532527650166043741411075085318277379342676372835521211368789199879221275098399831131496266460102226053667776605465709800835782738182509682432215555152833637422331799429327315861233563369360461770055082474236154563107375173941504310935114089574066230380909457282716324105701346128910022381816861735800563629949925620196254073455207084415983129405839345610876578308775550437543468998056471273432824342542706853674378361003223145702843335480389730230349103069740955525518374407013611707028414025859474551065070182394902366875380258754958191003075858295647924088103553287894615891279201262131644524323134419029629280917610546578466227788520508225168368852699624798791256234317408588024675057041074225972721002286095980363525277863066749497788051101470828866145898034198824647939545140335193572252540101711083920955841849470368237105222141287939242179008411443000311675754972158093212814899863634359152630050171206035868634082750545318066834361498576955353143265993918923280925268035925671882907863410217334827003328001207420836705531968058161076019152723474556128452390434371726230159608365043941009372088962971492391141666161890662412361125816769503141301102420126921749903471258401988440231439728137091491498936749869152723027185135305574889225961575670982353064828906261086051583446668761768700439958969327854922728083839903003697342950550443608410581370391094917931680607757533740542962041342147633291743728638225006320264841218335850244391444375639494056714713859795636506191913934673066744164683375987911186435646063886334681994250573018829296897596787772738446556341021806326658393516497370353225737479073683808118649950665281236054162378191489729577714997094922528772099569503781090741116668296923526607964564633862190812002247081344682086891638107778029911676343077707314002581610341041513895812868634181058252844637944460870962052610645351167102744194314777569411450486836662163918891711552039368648482491772705452260998779293543709325858409686179674587926017655490757515251242822937863528680361457934433415349096760580733381105066868754258611820225263683916438143126873504788896056309381945470596866746879051834392816274897560787912562679962681593782184934784606168947630468496809333651676666518851173055458437258522533355865606985187232612595654181190308717227697656457545075298866737309264932645899060105411245918101161644520270207327516440855983248660961278468959071550345016002542537694167374864666501730438961148719644602333125556573177480320099902969497463428834254929273005537832370531728978788898355924631422968961807219115061995721729651173817581975619696813499182391663777485255831987128599827480112350505451339475879690312396541979658807732673744360702905524947276653950644256834435066482830165404438122890036188512569625734842369028470657168568165319265938736014735753574786521293341718919433082205213073885272753313237961685383810977783066481888578043745638147239033268839894189825830097906072962819453483546096843769659532295131819338658630521188650614994563861053492210841840390608102802969488529268952895764182283899816511924240714342214092810737852272919842948103478617481607613301699526367255499928471450652931167879278747236133186346988028208563125069007687075065835992512706912688955250961778112038354543455938395502830100333471392826586386209867147053805669833827415505055884882706852949050165721762388284071523310636992423100300964081636400561590468925060344742311767952110811772436031506251330604494453208122840136128563545124164390175537507919926671400950285391595835637293563192123572023656615867404006154955788532547573235534225261074123474698845827623375378421653110694712317460363085314706900682800943257995833742843377359970522224471020044669043905479565997505775980437522697858194089400129251504776493123477611707798152141075024300857222736025438870658846139092694620155514926295899859237914262351026546145764504876206616813852378174698984848519241747020516096809217135373266944400240501422083876782265167098667311541093716086790414392954729960314800094307079731170392347909143834382745059930240233435492417369698508418279104944152361384284490589418222012679823348875857214532298938477329090937530570513179913699428892355571249689978553407756732577161495922932028495795547081532007433762307539509056679610952787811852406283651586581531549181798448464320859717386816964209025915740830925874965093392449683966667919126531355705976120782515179597687225207779211988522603496910151686429964959734554975676801561990981209290521355336238418338688286577214751239825480793494504114855212732171515974182179301472791431514470501579809846535136494404737651213496311520877837373920299572271520015071964458403286284743928442572975275871492096300086595192119569794956538442308345792523555559789188753507490088757345036499142118498918566770424351097121337252904550222179372064460065692545993917384980708207598958102828700251268939621203429997781388641584205870299124949547921029295072739817990249425751626372200898350516963375411960509322279026579042802798014635021399672463288411289566942638015614281082362714959869487791314296580150667319269306238502178248745018375321101068551921594007238656603398315635207042364605035435982651012194652615039171525685819702714987135277418298374232739822348833930045132582925916855768938324207047176650287368383893618438248658599571611682076734295985879673534782982539196614249511538974920689487711318010599895093708849314667482689241932363942048717712104970473715280014039674141861917449954844852465634281044265714061596927403380814719776020606015712558794814457270458161807018123227750131941473425085301483512237098495976386666760955334755627635303783849339610125257979744813523821211715204075848790334144927628425430734464778547221721468552051016430789162734856068252960816489310017444120693764813714119472283458810768746499916940568277347379831584540077814752723484220809338967420607411082687385784561910979188993182149326906645144465599600843721919134171537250359445993359792705188259138937003332843294689983759092314668504171998968521908274718597795813059406130156857660867861269800083505776414460688928099564727173526129073082628844679644003138263401725153274394903922819872313692228040651607167236170517645014162530714174781632771556881248790686928825149276861193476698059436494420328536669725082939970355116159818197521467890596662309187159849985912124136160910490635534781673272477161169490172783317786249354380415535894484723559815806124850249631861573018274249901486083929787690702961112932743078329159977677358298580823863275060768292018127555656315487707515862752501224143743016341641529384568136114689409409302678596190162723421879807468859322132458255229853311334536404916229368453849533635470005077353424441477741494671077456139899604044960084841244223057855430060061740363510296476183412095163730956394052461419134970346833420780629733775869392640201743290456410590073406153987297848382436982206149115270320809204574878234297157422814537214741841658225748739956093503326963079035120872912663849966824863183333249056631738106340441237439009858410970976657561474726725611590625917440170669684880949440687147551347020792766813825532722538170039262617667802115720779384493748543724065525415534834638298326067429636767391633254658398354628619079379592122934436344505881562317765369445956537141481300889827933838560118022871978508420418060610818866307221421605495947816316741605660857972317660026215441868284652102677197789661067566594211809608322688710780759412325958016913267691116113540612584972836300258709497239019932830678758793578311527672534807101121240448401320197475221394633184617319190798362845724258009195674144200634877948342761029374379351309842847282769561819774142321103130395552405895287795149335791619487071398264179967527474735631101853544384904997807311558195295163464985162394636926703198119690482669882820573041462554137583153187311299824964381548539882067222282508308875916749446538128078442537614381090022054394141395347586683856931028459530002913962001779036577271984715649598626772445175687198834439169296234499187545242732974927933710260769326392923969000493780255144640833005226022880413512627638202523128021769825099800299993437231815391895013044892591524493728028904775569666378279535781097641495279737675915651980254827715711661321734820664187571057029087947050778945590105120290219361266989522324838170307603831494382426844492834852128773972547979821352396300296233784253903981389789845762591769091128231760165834815887274007755783464009307606633809859152020735267641638103124752884984822736310305154830387510791617546754511160888282809013540490766616759242772921285415039728355009201470382006920041021775804600103594764902965434233702750395072493975909380004312574747025518066148563965655445088549142076120895239039266847804805064537170108668579557059858642765667330237284998275244854513938277554171672169738810225877007195878511562236541011522670550611288375668056036436765130527044521090635012440643206953932705526461719865271282772737039291152304482096964457324034474947200479420752234355791473724264096165763557671755379823913884975433365405738241106059072394729722000754745848488233685612970798948568186654698635037054072563498216848194645606755029480364103027054623418309293475638832471051003329806950861341527220726731075049121563957344516145447519445388482247652251289437168897489557406869824586269805645951168631139785310741489907766030459723467071487515094109637521169988526808309994129873398719725339331749845774973457370749317924154363611794332877871426564235337076101706470738668227306872042136297851248346515300568664611112035837781158462577161919754026447621427296620183349765353879072306144284531058647215345031508680995832284108066529647158861722905502327366362425006065216926937856355131427239310233339850065716617243837543699588455500082416856170537793828801302621310857452245680240623411840606777973619521785569993307495192914240603971433895555570735020814970762750301313717310760549109633993446529400880659655499591518898754589807764695766319891853431295633932238260977688729413175520826572463972911458358140639747998260873832419215980853095125791794431953752483199034949235384340375942531663673099467205661611969474476452863158917279386390084027471528735892275531316784957515447982056194559794643383438860990217741156814566681499776331147081948410234135047983628167011397319052708953370461462742833647872423200003874747577435442928595526394454341541188058873706074969809195192817288041984974218668389662794963104866895188668405387381836376682982475660140906367066572677139705399333437054344437216341789971685323825787904007147415264841374744901142491598402233226343894129649555355542511965613663489627631496931374111698375851524308704292426165437292004970296360823642417742588731190296391539124402418522620665291602455582452679503179374909437859856885088755284296016975988491799833132396024663141995923798158533754100792179889395950525911745068450966491643600960970832166521509988013736380675384352121447550067576198697833188368093164369202993338588599154657247564334555678625368619427660147219320072752527705239762836930210343242159462623102986311612631899499739141111877225325110692313618466564886676473494029647087522360925725720814266808779497419864898658234495271283252770589551501099826081711322216703557819352795483043911626960905775668214332351530622982300099754860792987544307936148784002165743909788855435846708308934253557362998344278123338914198359241530034122266939679784509258368461367325577711499094450809168957405627817122924548777762061048114380106977762850100646421855629660014298717428163862234015210324817204530023291512161154303384719916902158779310002527072538743159100229125550734421508507205524392891544423668884649531501292412095404695977889160152956407939602869244095406154097055453107371424141106766103606483069599855438685438746732541424734592100645321965001875769339505448489663989604201592344423098468268362653266107175118952954068807734686157733872038490915789037680661361570276351063261428482786594432043111638467624504002930736972018072179556004145564761625690730525772125387202580226770781172022053705211814871083611386789369629999134861286886690679434251149531620732928471786733275958410596076778161796981266453357790802910663493183420552163604495613547842075924010966930770701848319359791831113703920691256623095156670733694848446951269728131392165503299579792791601655983090392447394869739240195960400765271255603078449638304340412109340829666440689620512076426602661151598694886845438740655800002357082780676603794695874402290053283839512991911972540002531444598551066444922841535423404503720694532216625330538889853666103817486118909412509394699160547147171755495618500200984778103842591815050588801697919505142485465927951925917907748800196562003464879730164106071857913655448006991921272689287148048228836318381845555596446503295460206433466532745522748241809853443054778290335344913776361755038004785954977433331754377126624796581975554658606977914952962523508753209167874531145306100151440835477553415342343991928727665169199508908241630289944742199085021379652747541201735692345230602427196551031920402017365327723818271165171973919003707200296021212364260776421952192895098716315708298659657895589695179891348880790311563629942913385938891580886028086055046545449215003039973119030864289337419572012664884024672014353628135182517023539922027392866030378096325966057042920281546667953710523144439151568482318443302046880725547639901172071013064907071886776269929138615902280689130711176786791249899920941024168013547081882462196479807970359149575161377685941145045159487461579846567372178414767089779867527918021706715339379253579809212301203224713729008088978146399328052438765164291287462129901595806218423516992691520096053432008762153456217472411898495888358687431016685342240564680218322899919265340742056921223135368565021099565708507354635016404820886175549868214199356069638910029981220076109293744447713376308291296220087371327953450630858243509502134500107734792368482955878177568247769820379164013960036411811841518640490512373676513252816550188016574709889494691643463175836958141585284183257359059814560693908517845580287619937263105628775570281230756336403470905929952778155537786631630384790980792808651998554595747193393209952430641047952253391911676850900741018946212159723835015667594836709140809926087490451885929107600793373222804792906551746170506158477605206103188854224631335404549504066457494291328073973533195631607746789452927457630761109110892227974483068167281528586575223558629462439335542105649478937100640894646017000985895406922585046614558569932456773604190198445078769035653921749172833548975645311799215019411276325326598737910385471749672461951987667990233028068894904442620206542987358781023122310905089998468954705039685579460395238147908461005130350659540719553620786399920264147273440934065444962464567108125485392890201342362078563754016331855502554597725301724981445488033506455020159736113308344379290758295469848801996882493030062685140550190515675270744622737430486205323509755918394772028019426126361350037263111192654740905642751707449730163878916912274944505082802179539981769115582289752626380858518724748511875626355660348270526260281724135385342263006657721051897415565133932279464281928610501056986748853961061745661196785676532576669740913793627267213518912550911111802461873444861481801435600418705254783807370496504189319263384836157643101041857897971785849841663966717414798015807319035310047841132835841586157497371701306591951131882885236348688731710225245786093041240385898559868515265268189629894860482073337146999217649187033806616798693825206716189799351279654256674379153307773294258022695553515353358118591919613136618773614177139726187117468132039115928717421011814858557396874415245144949428056586730933949267260236419078561175716583775283924282313452648191723275052721993541931552850808203792102667083705116569597896244359925122994660589901855962132532011506987873236592843772605685992197661941178002992358145558470944290163297611018691969775235312817746490904371428644531495927260167730953411064751860975043082003725140279358652645599927242492333396896189593578170305523189346152402135095664947035039844899842505557011240096991816957247526920497720939734406072109877664719698309541231840196004089911983571848012803984236411156701438100335090741956429152152177134002484489823995453894051391369243422008984390229819126090183342875193468866010876119108089109181001475484272124292029123313835558853525199845048144922985111550794791868989008417243027317612321439792591249450761887723007069877829775716914477954857885817820295717282605187507231290590985024147335917580980455401074341934577565085726206041567254460509853662595961422036222271583020502770212039030487018340622197212659215008623967837451353909902971222014053385084400331636992349807258498680110772573502289147474593392069230301977459448714203769436413213959877551620476084640646419080751122455019312965328276179372360433598141764021584726233139833687536533592260974926294511905551570047902742839741373526680677850023703389337005785681866751952676613379754346623929771803268141747325453833819960247359992176496492231905144096157544361607415348464817780809765770320668680989215088705795768914919574741577557627599078745925420185129203231297287989318426109767528547499508133912786796737218009928898053002778319561473267796793245031302031205669690930948910197733057550919345819766353778897422469520869738037370558628509508899560522542126711650116572088266557027425931774225345820370923780149389026614244155146371711213123297996130924814655303861372304087034342366004586089621435080094253245174371100508901608837524906390130000860808368859262935523691855965396936228602826375670554836389997264740196778295238604984898038234602777863270189182595456603633674212210695968274048198543054399072887210574366881879278844931006449122062467507658934599503483601837660869943149317195987398017382260270649532256949612704168526802458523861754788423908862460617144590036084643367601375075180584103810805344415017258848329845610249076570399315310125445326705322371466336444325389906388335506233816170690485892544593871609202296545881217557674741588017405212408199188463561758635014959434957489694431933475821468183091917208073641635313623122523596043312995563557525416864708335116979515298523166491935592271713833417880319375719127537612877368937001158301731437948558251571609845140815444400001989085464598369515914795014217512042914823913501845986721921658980263956558524690774445670056444262621749499174612351445067405623384608017270796105360125244542863234639420232748783140763084515474993357684325273724456023707231622240766237729441646027550055027809719256523831931652657531706266697873704440609844370213930423427020146397670436976156922456612748441892446168754215057018996003656034805980105041627765570113676383586596054639256445596459605403307036303802653534907371394272419559709288921253543076078487003015956336174504947056450110195271851301091493253503355880455681809090348747246154372313161641776244508095979099283025829076187646760628725016439343640393836013563321940017330209120553704611828319336932354230423691122831795447419716816878266314068848389327645893573064362725867080670800618625015835919519129368933859565928328579937776590890201650354844981871749055618494581818383706259021347724459301314644440685756854733740028386717496162135518003508657893970530124443865297925046671876360452618877592437416078426444843547636443550975788020669538084349497459322297564894612379040541483941861769151752663673966901071117553974453329873951276349124655953320861812868729072209631711261566323456368528819426187695225232928688444990449090997859299657825621657813372381158473513685950296346529906267656365223854234918319971062649056396340807775487131748198912693373697017384514546373523051123307940928307169958947851632238836089541503176799801986228872811617835178274799619686858481986389970229990209613298643273713513260127152987907220427734708575879531581998857162955654253979713454054564045653968812854155427683735923216305719906782445759404143411971265846954881892605511757597998038423123459414344272567105421935334506520342589475978742318732623389315078200787062077918375305832719231320970018922077223291418615435309998894028341625392915131306500845892115431625159127893761150226056167812596370529143470311758693274633059637860274714993740383906267234504459531720848347095264913121407764917559321339000151213171981247657535366083159687620910743771189618215598228476778222975095612740993459155653869476318276999313264224769531615359028044580526935729734328262423640290978665578763209502202975404502932327105828167377167064497094593168122618627754269743206968837590537312796991985169962093616114913882609122963868988793481557520133072856274386439503815999488807144746607122863664183025838463353171804599252148553551477644074906701255529550236792945625246146765606414216660996762971385526733709273831320631828098995833769194531776523279778816263421782338596612592694971222443839031307736093623271048377563897905626949654835702660978681038073398659364354391501409915444119164789267694983795972949945146780486314152822735899255211049379912158347634850216352239529506529826149147223685422250868581583923391528042672297978349042366203723363192767753036223855808118317169608360963597028081626381002081049446244970303612103292252485654742265843772116176700905378773956995247419860737892993560132437821006031952456550599277517795731517317780819526135123574742678970009093621276697003793779991347032557497009056989978879890792381970766771047947638261229117955425987296499519977712141856933699491668671235895917428944843795642416917940761948551187862433880129344478911815847444193776976165211284826937944886484511291965848490104745341522304161593456182387188857460957838738601733571195553960058715333311913934448279774478008559140255058066768563095196633956528551432604468775053381647116462259058980479181962851667903303497835621368719423615416016879210442042269001954782709187916960693450518082219271698320512932057382165236154782156394346684700730846970185300369474637169177086580593612440624530157380131265837353345509290199761359319965472659157621175782055727955650689118148156264964147603628636875934647022998512950181286930207500756231566077232502220079036506906952431751044628523412547358675188212387685542852116723391867714158557115429731481735575722157686200440960609522490815353446455833026604171519900049490622551524882337387333520013014221231101397483884361374217080664016508580400518671462175727915525302827065696239338623157891073615406801588480684425909339094746694836133369840276969416296077905405748181350014420617179384790077025537067029484082055851309970043945408450694764835225664470415494409607427710370359052730723977421951966837189309848090458271765842139681651973223145931651804808656336426397969698628070893916671035487627962262197244463356968990640568718521010571422798366736702431216506848565041280161884525204578305197082960168147648688681058036343656899337825754623085054488426092658858788858046014490344638725020120211123268480988468575212372922843639230138706124623482311643936172282740666636997881214491316690426063810433151877507986510699872070253691372749943464730961895848373283817353871310631462917945730457099240608195161048391020311996798826756783553916889695333438923304449578617610983497901488869044654995370283841359184903498792548659495545651715538001955546646947105265883741322828539164991196770271220715827145531313694674441391175142040818268537777385485067335794188339024756086339375972266745844536757427190823878518741532774720283551082875672378681103020268425397440599919906201500847657978453992174131973066376189193159063076292191922051376018884278995408707798508462754617321696963971891533944436991897290309927918891906183966067607840616898737117685009215828589193954780690651111377322101605604246805415966840346647402289115968692416477430948180397679308190211959425950097002062077886605296244860932312530485469460875741065418645603163577966446166811883368404074814528500396273600216587025337163146979465515064373408230932587787266027646171433250511525541672511523832492524201107412765632979053329923467657016242128825455876353040351448550602618069171468954565650051941147937240455509277230186506939346091366691025535535436908416368854240215839133740555052108110233971686558741819553321910151786366608758531531690470045946873991564362169035557170704246730644561907027154570446843069998911345823036383743416483064645505865715380932973758897831563098771868695558525357083305881702674029790228802678633005808064900484220966927145673458162611198443997779894172776822223851658879473690617328669535661559532279376399449828820110110971098501570995142992165169245399801481089682719540108205003395228418933197137186938672065913084676548534694408206488429574994903818419339111371083567618446249254708668087380514220780099100182680018948260764236682279154375462631395752032964543515641071127817726830534563470918985252756615990283522174937888545907555684554098332335460066826276964603129035415787442926255457244039704689187614277801058279305094279877747681325371022979264585191218511122046800366344797804913632906103342706735991425649526138642021286723873359760679070752286874910380208538653805123779368167625513601289156898768297168674939921175407527273845123846776970829491070516160679603300251422436497238711112466427592610012220535266294566798381274766095880576713023235175837696218985052097757484353098399822940639975290447786967515056111587663166797604329591975073284730160177784946091689604490390741946318600069691114218115392459392661935156781097858482332702833130202646667414504165447916557347916541752005139317166159724999420908349868521078031372922793828141730400928745772523822020799044335912329913280739388986340188107366920143915519328443811691939569251474679775039762957876373951293539805991798755245861431606145625651507611875186327289344635012008876121679313962149501963834509481846655684330339370333808714331497223773628932956289938714887604992365738326305081047486462983128258927254277293331748943279223157418156511637462122637667485600546709176052427058185582197182210216354914040170757789090946092978354131963409842997497005978597909800077161414470486731253350424267380068823817366685510500215279618443989199096578199360044290364305767352429052759550055890654178800671823966774556210484196387791394223588449681060623930164162922929428927421934685543883273133149536675961251464631421796629362454708267496905933143714990608417991821731047909747722292779827691835361522033328397126280538891032864829930837134379301709479410290229453570140426849713056059837030909960839922894960140773111516224361910897422344261211765975187356229373799808629379493029177584471538758905022299793020523764878945949985170754474456860929719469028632861853919923229592259573925673366230425018398513720253097435078559749326700488962705867986681518356050117815653947947927034549226782687335741065541434519631606942499931098526473835899216919128153715641230615365546999446382110975598986374024865928558466909768124950292923741057948505018948048026591481304960854176894622187489886279362812835770662857700541631914946545917073616953002759831352473235264173111103859187192855638141831878318933259060451643859424501159157608857655376394482413167045283822229080865807038731601444579070895623129359479243982423332989543537998478322950205901543122433430883640475553890909856537478171585374819278710467720533514869217093266206162037127502124220150410819950664988561718026696061806791445448534776042594740885020048373501716468422018025329588251574902436885127088194468590900893769387127523114971951203481653878133400006891503942763918084470337124725375922230596103729210509139345962435831772622357998377384454590504706816100449678315582569878688116879328234341760498875381554523380713629331602990129783602795956693163378577545365197518319040713983159345147647761878723384772696719830435667791743241253289397519913473319593045582354286071676563686397774853081510351611026471626999080955861371605461508813796511635381048576473770125358716130839897375656437956241400579598635159173433890232672872424521172515931120743856531410841315849256395244872371253398659841885499648081258244873365821126107631093299983602809131223526467307774221858148047497634749526405854732349709157176870610964867158317244046052842858830152375193798562379004268836414979112891673338765110665402165417324967140438267463318031824314833477776183484844182094203918960950256776125480109941311020281928341225929729066602602771327826727180683957637748709897155699728346794408805618556714505383814467044451798818581375831702269939960623119891353985464605554883681486029277824356896963444840951795152539560399510446701778934121793359826906067494776710164651084693677927419193801441324344071627805050211567984719519654405982522123775109663612061514115518032797779776928617219149604196153594258697765009376552092975299924960976055088403204919200891751938859036737527977688090279665089127685196087297469900003780984698187166335349174570069433735435081728149749314507766727177279634606643478672469520885739303790527522472502526315005926348418609660488141459311078612103995412814245265288682343057918089949014265739057473812015930898262737059852306397597549909271168324710510923375543246321505018084867602311752764676878379182640760020892312219037821284886328656576747069153023234709246128364198153687213767638521646088543841532748452342568737002270693871881466518471655078456516591425442097185299973202300260227834595419281521947641349936946065250054797664166994758603442009649488695806864290731224829516553434743103942109180516256576166417221084747076346648943996855206189606137248932653633988709646385480730760877053379520123066851314598609679998615724204837077679724364069924752624462140127848484627157228883609164075624289558586756942116895484001359452062232187434252976809528739677045376797928172633378631581390706884423908340529016581669038712295348249280987378956954647735651580582270751936920499402239560473758497641332896580588805329024835361156300757567086834798442725120545410779176500976999393859112065552847772888674643377067840180361924442654721837068199290766065263681034536360261825562596907359583435682090889801243531485291579583479834220601453170275997183605442946543357146631434599397012602135033626641358840153130632973234581568525198418964962361214210963287027379541070524206477352799487534463379131278321044954155788020714987916669907648840868282017544194283015196828586247659189764849504791272936723352966685972497591671912932894491504527749034595073791305847115298209571569663759600572740321954854776100028636119910185838999860867623846131954684339087698799044943954517923141965129249652737798103461105943707287773861705788005274594613857853963609024259038025569059691847933848791361226033347458500292980796742091282427821820184598455000890962165570348986728104150284030630344846967759731149323426737520019303341005087980671465368440565452074653909451501432817086592877104991461623828313529821086185461981673043027702570327343055827971267608746171207644524339056117684053179299539341165921046787266813931816154765751914160260014066609065057889139579042468114413188399692027793819969999955901399154197709525275707052561162204162159236688496638427833095418521993219750412637405478994473247699856508456784481270930173670464600380194983755099529183883043822723406675160898153961150707073004519600628964269689683272078074785746312589526228753439182024944815834565000830596641871117076760121339442153807950847859072243782460124053963978544749261241175583503529956975311172413196457004291453913695797024019702887580746952342928986194288594253507518852331250304613577742038166197662324343154997720433712651162758541755327933282059726416953028857155074696185466019041652060141645477662229713255506354944520136990770594542034838851338343206319400029588745917255221393659159935556970515100764049994838916030565129539330658351091783726002603622380054648128793082636759992434024429918893033553175182047794370701469295870231811063143855799115270216360812622054888199569813024458936696725838760370815862913908937294647699848504700234115276324313555796891861225927290147902903318858380324976729830510219017125915066289976641602550142533700412654216362214803491818505763505656309757916072859830746629374812355129870125973301819242078196632019292822419265524193090345088483366025495077331919275437032609047439831315952850793954412879882907433881307774520422759620932556593725420605497165135244137773965002705389793793340301925151367370573507740918682016111797817088512548875236355974190079961020693143724036905135598319701535906098178690873106595700421646261893601354886343112261983110664611869879952031121524951711904460043300880062254797994635916073357409698554500536985338556281130844126564788080521273443645025711393830284989459855717936621390121525966627772115713550463495963794451157753555043492518308750408810974288807388273699493773132902145111243594919263873103106008090256508782339050946228010350715522592142225924925553972648944173518257473222953505584113369399786254420457532801872197104548883783025522956559841771365976925750016314059383413212489878547055010477390554760600668136525966385745457742445547663038347441213521179301785476495665308393371047379476397054653627646590821704851419135486573130088224237052525348133871446879267258940900469857889113228184886841522230761493469461482926955210320623509404268004929382868930303241421639338462759348734093428252814252426119395208743060746670986996492996848404300096980978883512054135451988987374401778457135836248359095103930953791188265113243279032482386230022253614893747803841298775316142107517921239004970344684705635370537144965007172747776081641673272651006260283343716200374634715097155215348063255559184964114516731350237702097484492568685595457000514968980807203236853481836539628259565458739768747798440124466342401245431607741747190907520494267683163143955760183166564581476211904664341037560399919510193363348568518724552962395400110965639780193688803108852462380540591017568106462442833102856996106584752287871924870996191403036687449873979143305909977405833599588355061217232723589710605807065659984854876876762365006158098753301579067788944393465415789815076021448022016910066254971988777137094805616157952005939892022452852161362493263297912836883119228522528322519469712504920057156022163530089055238043812453764064010819418366566491785184532945009628081242202080958405329226636986022664503034029594304118690093514969082704421528323667542342376216464652866987297935990938730747846654019077044430349880746931458736312210640028282128953717443199144303377653972811940196378186143842910406053077160318669729741174379821564778489367268690470703237243745019108176157662108516890972172902785764844145656374885281207036508263968325602618231632924791590117451541321905836200839276961549947586350919906740132422515289140357430923400073148027401373322840921184292152917257904497601159362127023812791669372098763699041329263205492015080439127543287123655652885245347154338226266125058602102690531718229539860452239407578246001812042116926916093429437351933674481985316402073765399403719670881360382327026142219958101964573813969085602108230507175644482140252709589365846708780374948427726645958469092882325390752671990576105386414969617370872850574047843831420942124979331885508183571119703306075079122595308934075917230335529874473354115097038291164388653409326580137363612936126708831425294519355245806375764773721714913067874437339895680568553436627060554137836047348062550557178673688532466179047475196363852148643758063599461572000290365381824900884277315206107187806577708867876837617245063745508567566027761415916538171231086529525852785474594075903117064533781564613452482502498963532539618597676655262627128804618485483863254925669134784205980710622323318222526536037872581342114870503310434598846451167813720365744000277419713118669685171394522490392679011448117958167176790060073920319259391496170533618849317610531222747012576547466675792920944705047285128978795087005340118995392200037128505340002262685656091341659996206031884197453963966157711824610469981160749546543529439028312900759277371247291382469197845021043687630471779883194800062604553272826405979202258706762431024583105034018439079014883162807995366977733729346233579881553397021525002190182031900052364914792764268628764127828514895696453408048017465012432962399678342885335050838054148291706975743004903628002420703908432601991420507193098259240311736479195744623969974028209355960778109468559035185970846664811929884711428082472473614560045187913015189783291034321997977508379871276901947976495897137415454769590643254518971083055297444634785271626699451196853693972133564001400882453594379072514619379370693729056117902711779391200058884653856399642909870890664246462301156281648580900461383406777774477032699154024985489836787457039314897996863188680402782606172261981347793269041550139653499184651489378079143396989236842401237238369453603837254895932356100478570460085119126077204722041839630442975082508381343056137387979064959119933769222927047071726826677796370400132298376065074159897564272153264968117612416765487668783042815410875479695845221663872977762865092768560940790335106687412211008570002654797095000432009389291216041491425402132404301849886738738380180579878417659834725958289657555631514320631375392882669841922294863706110807139040251704088419472516862867358968227888631253019483384670918905844804344861682768133645628283452117467356400207613780131108325654627483213818544895491026715893639696448273529348249797484004396684654561542611950093134842702520401250788133301502639169872483519719310958496101822609263192554328936777450705305711707744979879209411896971092283221473982007625012104971623397248654804078892404351885647322744010090578154154690548392012448570149872536653755839064679646671855122413353583995829029951501287885358894907595875751973814693735009947103203473262161718489922078165212321618292067326976741051373560690327019375166619644098099626568917195468001721006227979789981400614483814156728841315968224306819321895004651430065134519706122747650614887709096293756353438854407829586950882480974568047294488740429760649479335023331213273164317509353947133795634489810516994712856262135201141124942619110595007675906199974192325163149704171132442127524859057512393881780670549273006121149972014896553909071863179306779536948715440326906788267950562162703939923311326356434401088444706507264790998811509227122696016521526131077523813890301321697594692891285682526284609099037882608290769663161907565042142277699643586195265055644803307285598882305229223008813037770607894730000424480735738189688603349790830719136154657245206764857658497901917721525943361506787708241677264382308747536700142259396526201521059620405396742423901024540954439280674632027997969220907921024266470182321502141170903709689705210691609946475169583757851883353445551347453704574867682576453501897518580051955059348056153407629719427680166804076106126710714663712413398154343943586705438041708534004400329600812628089232364955775964475973608402999388689292727835467758685586823187526971629272695377415675177360202836222232475560251465025356692010983826153924446557761737847592313807368803668313758111564682561163430253311495382696075547055344480095727098969444259191026623409336608646386009970731640394504253191603129693892934885457788913175895603167888250214157168422299576301614082964338465228795464186556159339740328125850982010952750889187089834792183807611089976375763327202759281950100526762777605386058657360789130496513968468471762279791670880939934891850828129695395215066234734706682489943095502072997669262681256984956318844917711644168107693287486854569664817145697092972616897969497266668212148242090631829759017787722263554319508195084076172076902505017723624373160855592218573980795677984166566747216533690812258308727955052127607007692966196618686692733873270782148527130804749356302981760463797323615493796771928919989242865784242918755533069555619229769289890060921315222253492658297293749549653425438483406488448700977916018507680138413384912378139777074494627466757284477076206482763593932916617849603320885261107601521176799169268146214935065533009458022277399741769399307640967205063712837953556287936678398686477703827662962439580700221070079692254524486089629875859645013537163562366205432138047074272857806198185216706697014129298489077742433974127101234701550640076540370509486337481625347935514335257974370267638305233751189223968900490763473535114095819894641190357875695168553041446042205017660003591678601834165668028452050569414577844364729763585583276373967775748176130856204835435328904424048122452146268459080959937640216951306925734435111658809159484677208334340904700200445175400434818660193260325850748168501916927711263612903587116513903928725137354668481741411688275746502115026343221559071867614581424465956907817044608340380290467321000566240222644302640271901449902611863491425272940228752665052431114370768130779461765572476263971005342112381545525480551854577616470004183873586733004659337759724218750139574499891237977868800378409012385299433852956834537906337733634247487251666129167712707536060161727369407901361899374411614249339165039734241157116049005511598350256317382201963857112271970680538270488610662539142426620246354974056356412804365544548850371985752617909746618519826374131975335014140784553601572594334013746391851718035273414095184423507264308825213968935245255298477271323070862309535538301651485386844893574715984991784713332096285790263614102266310009649928065709305409236546907624528229303457493866009597360064541875530068782835675340730484900698915362931379423471566471176635339109890454504312986592406673933023748616868279647318224160252726642886830413923855045443561418983141881331420249826101491453214897773454578924749660775367771054277989784350962480529177484506904753454316420798515607390158152444564537108208195180621613243494382109182187864837150325562278835347194524919791923811580298537029951538609810197286729394380506236334411229749665445915720821247646149967151103907468884740760611170553980820532717644396482409322098387466388342494788415184252479049805485739304119424630053299705202618559041954989035342023629535160605561476628921940391057972088599895831735654433356463666723463156077938414228424709948319056918219250242538041273979474633600204111228526962174443370556486742115091662867923527349800645354620340281392215262727472263352707498784896625364046640878712113094581165140953154575340732291771682586485390073360417659038625037710944025730897804293865088838764744979576917199069130460837057939445279360092549011529638577631888917567409145337146237670897675408643300340858457370591987253193779839338898529812505528117830098894541117746296076412201974926117929271369401522800387315708991717764160066460064094396062081770745185330291318653821283733848318355774692524545090154925180662026468807086617205776665301079307485059067774984047034789754379395590822135104340359084013314765924224789934119272005350205180882378458511721888997739518599994293123607877118317668404704671539170997173448841431981686460836637633693440918055944601325406457560664936410377463946505842898825251820976627170017075336770924241055351484870518685896538737577252076789691949546252166706068303848272664172362080358157115244132165780263282988642582362495505763788418095687639425074315462645325570579813658829145247881001503784632072976522937845092951063340497496179504180866573336796883419247498397217986230556283487217084161936084911762814527281573282533759318619597105684087522827743247007463422995089616789465652026483100111368068756102866638285922261115768020998552871144341037077936670486546705647343161562807408436637091489204468156067251013403694212638457541469544611911584753964246837510607167777656467594066283641187644889362067579920360057004619918056112653928050249175640816031146486458625348740405996662312424315613883912978821318047599664597175353560804810859622997448363386049838931708953568144260290205813680462977082317338575509170969518603485527918644634206860469157411453573168524852689507806935327460920079648697128627234271611771802770941903470894809791136714570863328791840119473931583826103447564332603367250870566161943298722585536054821689742325536205180213853154075022347428548448501464117836929907051353262845454346496973109811078988683675064940584581836521586483894752125469166449519387601173307018911885752595075604347841204686812583552379580642106884846766805336687698622182199513626321895571287065344164706362585140997473970498409455964856278215426950485032997817698603316745961162657959483515742700792486135663542008146854569611082450786862200458777570185935240393772768771194825034835046562287621250452290128249750967427849322405186105492358831168529363340934044253775484946046231369795479324488346355388803786326576457255891082541451202770175124869109430858468768922725378543551058586957134789083104870270654740063177496000281482931826854859499329535803913767881929780679804529378358162983861603681770730882007771594453642649105200408202012986597110803272278501348338444462830651629740304775116210431403967336142183158911569336136077014028678148922792486380402918784164672801401897229559299878673695324782379376050319933387754236296018799077796239723222905838819830923789060172344518066964512006592686569891839334220635670239115529996056836143702771542479467661400772327192240382006903728039563976727367998714507304387827554064396322978128895437652799356256971026816136196000312257659120020404730349966564331890861836693553690622706081662902429684631518828164988381589934648281138650228876611227299376163517369210248028537267142670539926232959230368345896586645042142787939659431433457844830123518482380596067938053652368128269150990399921905261601900944614464658324202355282574077755423275051996658588867526283806426560895483746808085087371805405228896229931079418340856917497047627443566528634272225604045589205831047013955677883330601022606857215483064224394883549166160581606496528853692812048640654507971807573685311259781843598838854300776649182587083033323717609559228328748586623146444635956251465912467454136330006583068634189570412831406687147285528397391381922593286973114600597106181263742290023907456879866473283677930015426065369931199466268039185604003907896965797647892597206521638261827553475284454538063214341407816927668506447622500158686979400211428371436797123492393651420220597683257629539902069488881892937131507469546173067575158410680696223146109729804610015798200159909638536650664227287920099590741447094973996876390850822736793769955636037234158972367146417638794197969746609761546749205358713849523345988418859557705923514348770162801932416007651145819336585161617766191205299985136477854939424784785106498102667887116578984505725966729821087959729617776342428630769281271984487565062645908612574278572263706648288886646877143846854124856024450400749692902688082810092821966533131577529172333293026215805712859114259750406627423623668133146897120553580056612234308264918448241605282408231595305223718670464756943921694617270874314456530696613900785708230707938352794056316955474762425561486205730790309418061011962524813783241652948340569602825980082929753903848122962624952808034244884784832934148744986454196279245162322973871115908106331389225145063051325263934361554893763363102244343053779964043221133268304482291797614280878547985591001433999389477988747792101414438903414595643150061459008835469912846885330597520975658756426335470675374019028336526788502443638772468937723890541069945630072337721187218422774606508952792863914742827266943087026976434645510479495275504104849428537699698277374064373978856061255990752253472350821505541830758208703782500506709399695551460647608166373340684754663327296574767929476187343668725328663532138599164415482303790932469209057852029145655679561185634413546179292517214866586074287083352520612803102217172298730922026598707092024247931752110501172389985021883555813574335715570191380032830268098164266526867006581126592639480994495517649067808604835149072781887826230474383798472427073506693885922797011602642071827987011411729432921898552702078090501984397777743602618903187419035098965346246587541829655613627230055477868057764095177349781818482904395768776925690313650304765301295130163424968920680357821527649712892694803531673978554059948164165786857516770855272674179114782712133869032719488652757067982189542003698389680706624940260060662585695047936167824865699325200843438787662818573756253289851300681424864527945647091073964332198054179586287930968006670910387867913753165028400901103367452148381167588107605896511516322679237659694769760974635143621718432256483916555338386614973046530999349952838526571231617134974957296968083359515735338457579591324504366275638955815621055974908096759095445735569964660248641696153691391280369178336564707391185211954842726261510012719556918027851445034891816828026794365191115827132506692730497655146389353653545889303827527293820710592334446741465137995916689306869908543531219173756422331822103442586912419951915099536747929806425217747742230315725978343195268370065164778824312209489055366240462966668561959454534721123458730783089345543950786846196929292735735584447809996498560242259012691043898710058204620182882359225575893649343000476180486198997552207319845964319117475588680971408903492424383669953530915766697713532488934158904427591535361906960047616378101887342591300120546155370095983220338241410723256069940160479047768439348309350873415401659575152764722555182721702410691718433949928250793146023888322491455936631014933900252664398440226319662772387592883006093658383922790305195841018251878579081519467479056484412101428000327058755084706344078547343646151919823445455154282359988897180366140799531470521489970697167977750580597540236222139010157585806709484197061952590034016389235003048395382103254541816063038123495026436051067784452517766770725426438908310520000407336375252688244389185216243551805326949575496055545499599494873277552033708087932298120938651655786581023082862821187719741129646388300582555570082200987302723031678648126935144161856852818104339561315252414943531837924100342605720346228750923861969866465489442571209396207893460009126165217256211385008120708200259397617747109348637521319149033260418441484089937653169354493404421494474330642166928260750568025739180365490993026006530210870237063768171665946424820044255184311134906725940356565552528194183535537670555505683611703078140519131890100250259461829590875279881112805906156129166268948753253682365252202979014985297923835258920250624843376854853129366059576526738656150605837688762416738808825349163850369499444606058196564659719540153620801701802051377010649213421961817385050024156909814691055529375096526190380763402374963936314501204073100582618378143952226011392539692476550537878935466020372042262860381688344760666876936265691493277808195212676119649030018368366794636848290654439564766189681652300416600687808792828444363186115573566316418046964630255748546806214416756256804334848294694652724396036816529574627387028432141869794415491613736241434184307240499062407700230780149495905732701341017309403499842608927866711618568275329645752221027229386263807936327646133642777809423073401079337040119848038237143910972051236386056908957124262921909865914719776903928719888491544366497425220052904507099239098740574394842085193824450717463000247621132546735571501495164376922985861607231955472072745950877069380264383237222411679933768348458199002297267515087040641679690919649910155001026740004401250479459842897788475519210726378324148096744365859158896637341333062872490519303725195690551002559318602073035512153774638756109766588075735206804636991924823955276023506298229665512424267996340905153689157015135660608820595457277203021964410265211757708727531591949939748332113338696380104898073608086494825432129895607678955827330208394808465485999331974881489940716670088107667050353171729844049539280444120284934718921151648235429068971611194633359180533218534014510604675318593680256176812742740110090914580926318313221765868751210526545109812109566592117215442635824097880696080326342198883439978262734953823769490984817697246906527582388539237727695395062702908512149803917568530666959740651155731677550059761245563052075464774001623558304417907859236115975287078727624246740616979392933167757041727814534174380935561825426768419049474307417848614514648935378800123100596643714986650382455674735784454225645225514758923384588765986322782405931427130922369216798367782701589403829307136996059908733410816394552660127825244111397466306905899595551057502141776365514949945971545849347874885696274445944124632719950823652093931574625949620974369306387788513498098948124057216004844340573872819806377626883048764033732115662842792097995526622828707605340181626414457281268175440409296669922315490460921039183906460832864856574900829126430813430445956969697900607588396770494157373616699776300161562389777703589844139106189592258936770806663036920869803370596361995113488757108181205890676309364485228771187382677951887682500022571643716428617481996867175057601342652689192528046290270570352378972530554362351965916860202977189975617740736963830035128652615473885328370379444370100811305741092111444280457756782211689301360843574414531037790788724517133643874453122783255913610752342127976654476367527893034519799691930766051078796062268583737312722781899484340761543382643296805864106696334452364211611498373390125763651697369145769528582715679085042008030151202174014153543960300700622927461395053152436187732594735327801910481635977508007893040500843254086839348130952914137758924766001892164447253230857683180984211809954762545316851870728516762360583191219675236070695303441768936266935073117016172348192587784517148073888384115585299357843481597231586209238304150065764306705844923478824153908862579573515083731050382729321829998250523601930440923100306116338885523335251313756892209255704331019265866492370907879770987298659087717310785004475547691321487808122320967666851858636328002224931631857753851760408238926388952031029680270167022048086174085196548002944741409082960660926351937653216518455898876079128287576076095710626608214242388362708923580591111055458319121407986036918750320447638092215790972761396058443454713090113161074477262758364141158167808765673765704873118180082022722644577372841717426761493190351529972639146405170185208990680355398863650190333719897552140646868672576295697414045893680102793754364247593839815997190441852044595782375197176428354367794750858570715345379000824850151055357059815696681824404530262725971242864427942502097589221722732652066432718791033948734111282469220831697846370966069661794474223618863085003967958620553619675790820786484177050282456502336790495785024262826482361537561672356097776618717723258143614083719633773849178349109468793535035438163603215882942918235462568284832767819702169004894716535131848067424067000301960481813539740987361884910735457920362405196430633931712767133102066045104436134121731161604069647066132089195667982354200971277702692752659223309219303773153729126734189372894033355078190143003757305520000881654190612170897527354433169396053097665298817765604615021492343458071998814960899143933340627601209106121526057874951434562329634473960326029215518137393415866146095810225399580824562052821353229767476533912115773434975783223223400092999115091762127820162716155112130129113911000255545307519768849144381888942069950122933769629304775974973618065172132917301707819284622593783842496324020631010802857411009864250814177349568128843989022688090091178537364629939627446065787874560333317754551748766777815007772922698058693058356232005071533780228230174588573450940863144915055295000158271168843913939845256234912319193055062160746124942489898227508453379652607816926675239712535712190348513582399625449672778033618511608351949500371366305046119177267100534404932913439816491178466757891714127436036376826893949217852751851188351180062413228894289313125898895108127357340560932796463766676669232579295094232745733152173812925260726133028681659161854555961384781763378507250427135371923202519836346724158062518561950435079530843253444069241009440295729057195206159989446888971978437925414628669692444128397893162090455962386948390194644589712270626966350893231537841357600067581415955076923458641976920691192025412163312970624761225978838258499026558352368454039347570537317710254461725884690248195926408623276461521610580354580615393729351722372553963996629480524665109965200728240724597094717810825163530370503225089537261942784048066247798097623029660660230942615588086276625364074795493115259402529460646821897274457921190481544344639666758589277817680659438456185210087140326109515332293348791906953312203093534432067687341042261192244153602986598176782665658221078963848577061949618032800841313160561706782822503026814766366536965379939626810917768074837260332355818913002339579824728774936090642750332925378803170003721448515530331385297156604498354034958408150264423163598298394997978707600325922778088871405067159234874728850754556871734802854578020993572954746818200903992798235881325154569802830641096908917223660165639235182642771513628055371404760538237276778019129787869815518983780851748326770070910203647271607002807607957125187148571376109513396476263437466822074296771045455153440471731094047403149742807785506213849574987964151063484048435489031248222723168489026799703292869333469730993081399067344341124537692831982533173793954542202353586409465855870779733365054242302033918626651740720947721870123200426787674465949677474303290667529812749869965020138163806541968298812362689007876894174917951183377592945520237635551762067630408081902878448366596260799756888538238501747430218529358956995716808093794042354513351109032344519814302965078049047866436381405861787317727472768223830371794876906850438168785054652329134117518998916581244973736878974113996856759709566241147461388510882541505824376407746151247864023414718930207628513313159101346115949851085442702204342522384749049119566945570830147226051295851289715440748459751570803090062151796860778399592703259541802048837437743876163397531633863019367979040497345734864370153091594710105551192725399292843686266037627173413720338772582326657868743214540638255871151049600719137634475836627032346837096865039089398573090145108046975796106032996743243672161966377940018136987613493569822607653417320267876872554055479178193433017296336199347679892249296198269005709538876029923665517044960476748383260420625474141131682962933167928673267270595139891796366889466114559685951815450908231665674576443999022089100114271491425971062424555131448216523409594686686377337014246712971510728087906584868296237305869256401140041454465682844546571246272242937404932461509568124667213113738124216653863687217865254722526564222349111339402322059624919967040343777294273128398704940228160390330621585688404159593445163637940903921913790556342065629498853411400855334315355150164185271865688561904875217607126319327098152238547701489893905713808428954710559887862450305420304765658828600989082166335109007104266170810699070937290655535687667941376613760799984491072814814328617677837460489435058434627002278299388963986538653865909302766789995856449686541222973527146435771372832550624164426725306163937809026226152564826292087129814528060983802441041032982380409592168079128377617051413004646174746491197091573234974736005847225608850342865840700056097864070677976828629890192913581648873684201218963806809220606250688553837780429501288643703619637056823337146251783082524491231130059207160798235623765991480132868941706406073680479819742133108427521795633622162165606502321013230529462901173263060956349339792259625646084207025388252634232032193735751707976984763639178593953644691200055407738191391697653534506631951112678275051900588112947270352481997810205366766855275709252690627974815924517320831729261685378070733577593097970456269763684362411253220803934834657508009480061560285082875104414511963382420008111688975479332822336841052803671714060918783193520762408008548715511659311751509128881683453631096865421230254326284440417322964672821951465951127426004065464715676396612946502775433635602150097295954373788031190230509808358976525985000980388849444090392873142507842168160091655605417233934255971059505752019760240133869867159995889578487263167274348058984399432569938299367875505042665824850487180310411495455025829778626106179200497140104070494489951596030288557849366247367339033426854493562698512469382946355781191111429137392282805519540450604553845867827848037537513235223391171442455844303072063268375052521685814612911319363270371076141467449663855502963879244791733692755190956003545501079540556984093199921157058476699530949662627093246821889866354217751175852312640818110727072039645803265528142343154722066983466108911746182678238326814510646914612996409373075720852555254045198983119055686773622794404790091491163582448633030045376770248737464295529710431435054377838071999752521633667311948496065538912445886552153911047036021796928175680627800549190182061872846407925093036335002412464444031267040461546423197552600082924701796141289823025566493317936586330448271726449256522800305263515779492711305663594729903127206044625166192326954065657803636769229397860035727854608471152899349270368466536630937104107032709840156708699861289658043253795695201800855029392627976391658347292354365474888678245785637639817751301288053009166573458133425483428607281530710224204216194772800086044881529580346123172830620908056930427828540805480996245503733832721301890805894639349851202017524296024603827815224714771098040295751222630666081402245134749271360631366097667054353855393031893897429351103739951856072401859114265955220707881743792496462583278056400933265099180940753012978511197506666349420500141017020590605197839305160521403846096219847698423199229179512301063810214414682956261998477142531462361916563304074973131297513119408972926196846426094221709780244229177423906354732167996540272369616355516311750769356148250324749575008567171560749198743754773737308526246979867545887775647918613545281611404647687081721100605185754235587565060682343029677916061985323854907449133237118683961175296313844595162086054520545434810809854357801317332768250512948446704859243080209380748538981410209792564948514177696934756786989932666697126266291563524813547087458811256523028319878447220812968890688153404303787708520636785240998695251704926168367415317676104810808923820029823918894167990478819287502587183122583164603103378330636244869528740801024482973429364668835056828947946041737407441650455812991926221793235728910241176596277934269117536937574019661634798626812262086108942949372319954410721987188226967118978816487677037186685900588078718512236737701685823383086855901236263364501438967897447304755244466324914448210148791882886727314301156666624524258976963146616631990988901773646367366173174090527260259180918453460182204297514575269686426325293433492219778848453703947715290773786886465281593931546297151865195434599098772674119830555459385939683485146138624504979385479895029607404890060992965111205235607878989977806748585710493192562935925654408875300348212559931742047674825842429609563778890990835110428715435796997743311405359640022161553625497541686057885537195018466835510839412600429595380552507081532570107307927271453283934896868627050764096390501950619188644565715599354432970425135050575893959564775603353119415410479552700567075829338826334258827776299750441380253216033651335924574817527790475976873135703003743550421542822334854095268776940403256174166692198953109327403887275485280600401738619270123763571901867096261857731846780940450004281034303537368682436452877788133242872851812419344865961175349333874946502175922701389775068983415001083115529900613049045980345362342115223953284515995316300887934111695923845455363155675937097338755207965316644901975715254335096558150346414921273905591617289946871063561095296401354364127395221085150103417882933573579632760955874819939408581324789588922445294683073353269407651519937300552022568253530862821841817613592816195306128191297566063673923583937874891655467367370265543595744660204444633759913572000524161342225157638179422868232601857779513207275242298711077769989624253557029747509575456324282775628772257802759936472006136962525798388830458961376304717469594951535909576185465510376926857195936393761207439852841010054241692141443212440651162921720839398374268735335376887366422700267781585162880745813255667316202951463191599712937076048336333511087059546681628949857019715639169000535463177691226814058276838204580483590092259852030906573194893481763922976014395605816472484665478162815618665349179702913661022742012493866716544707596421999733812835069487771627144744564761821366841948624233531873067739839262937636729238833155658960562008003197702368195544822837001805776260620957217888570209873524802760568893827389256208923756526559171750037936751345520046706963303741709898086656282567481311000433930433900856840376593388386629627672729140142506841908922488758376303020037125371333607822103792604277564812757715917550642669320764282337326035093109780313890687231667391550192520591317444787277794150121967476236864056821755616273874101689653951924006740882098997980318121928562573963947927864633849381856980806391907183111643627442197066340581753648625662468728516539453352066480221595733434258285644096498481791292089424123344456293033905569270186796104784427271744277406595275802760962193473742138721046705634329151791544431805169645299415686656496552823748592798994331777779203757802534832736505175464740814408137067518975005788876466150455476761795572574668605312074948930710565838942150210106981240644512954150074494384235605541989599370490575849684776645955970672871834354734193477982401739878931297833052983535840192225145039733604924250237726897683521921974431243682897233854387084065378307419743115176706734058494802645610411306362616817283879808935080095453584052827158562135614337743357918833804291074997253219823268573415527701032833569737990132581710061771339209852700124027030072096656888584650092116135337217672094324275805536786958300556704790146548442260806190823172962038873827394178619206610243600869008972897989178649978783780234076544661569887058226192776075069694223448893502667454429294872766428239506652501862262832169260359357153153848475023229614309417370026788711245660168519407864708159151848155247370558183340541279845854326815790726554735440928446967730774777555374770531424628447915339149577244029977302430380671785388016760841042858628103388173551786310607509356915469319973937525529755416775415590270833931615292869357699457534502389098877617508879261584090479705369497701767388175229724220877651782706829091495848957941638022867339138037452648095680430289743605135473163882649240134460203699665787761192127678745443670384385748301605369082095461967444094140463801141815599003027288764226286018247742428713232662469399879907660050368941681573266978659293775448018487260384785311386456565325364185377424877805271223489583445559385537825989075690822429286943929883064358892960395370975273785314798764479364182707237062206204654728624670413919716292053052916114208478429374330417662346843237012709991764441152892686231991134095915716309079333970641841072949177732561589117015384017301126929038613877649742657587343428059305678751623445063530083433006005158988821404378853662506970690465442794948056226148274699263613733986302916578864191836273215442332135737820631780755818771891008855764551777431570738688038099310762900863434719222639684412932538052206526593967895273105983186788016548519373870409271780748472331769519287935596458409861967759224158988713648571495678483010036720920442878282025970001796132210878472742422857512556380941448091379174635987993019717879041375488377302559722005092671733434604174225507568482264901867839527491923492631890500955305612395683704639571076043182902965238240837721417089139695493208258234376333751151083129638165000937248934094029173682874904391517115872080578227967835310881123880534938385278760967919635767369829363452790550273292579106983069211765546320532494361116286039169569703531073890953650552117666384036913937025760253462913722743781658717875761461626823629767065923435515936294609780746183947943815194260399368608299331568259079272976289361039282673427444068773368344419447381112202600438872040004508937873935302164389157164931611370999283977530600051757086991452265418875896966677366594087388350411365877559100515223667065357546040819360703646205309880337273282358333656184393770957376463222445721707644193089158029450029862555211056166530734133613927951363053470370567669734851350833065773538237045198917252906114369970908275567550832924541606554227589316835638593784585429230863523461453697862625027633982338216054811384249364133032836730722176451782277424655762169593568687802151315138544385963749361476147296302323597827857544010886382094418221146282151870664908818136381583891110057153799711553502277685037481304562722464490537870646020218159151601533566844996190062893953615328166688587214715587859745821155398489995401486908308551402479767262462795062014002536792769148743183964823452507460937689269840328132538630300756239203997166799887260676103026502504631351000304554934252841552118376908725000674649558162299092723178924191862631950921754340858933944140103070908894996204866296444985357961578822146083479712896365990136509568658012376981598869554663377040806969829994570001815732622464419026426115131221797465177781301776387637027696864748506647684030327657233414846593477227791314837543431404565829564850051496572415744895335400529526889472607886657819637296056213181666686201953944799972339759876664723455545584680364584483969320138767348479112069605650552785531706200161937305120608550380775652481984537851121725134013181266489919210585216759663488202242372798474000136816007503950539684472447173390717810684657883117974250216555215896491938409944660536709143856489139466416821823143612215680641055202019226323908972570721989145188477333168946048215719636178833713637565998549321278740453015148183894377552569649316987682544731843721597343763090200503983319557875725719353251064802000223831878617373756948827547888198876966420847482471685098558831032171404636027054567949129961559032693230280487161004630748394839652753739455161808145152992497354432302215233547389121172275335210841878066349742465456701583840410817347948750345589208063760279275164368831577800214275227505267763480199702099955792387488376342738077403841841506698049450724663137292832480217575174173987966447623732286949316522094548949099962608149456514938657309792976509019901533681507160306937117200225255793452793099117919740167645451192333520810582905251018478063416376696946394287549982084268643178831074784906601447362890284749211036465423304800927946375781944798384649087005972057688088198443090874425428747341536183926699110975381868893444452781479757406742590355485636053285593240025130208511158008073178214696562862286774331404252737652404161978824764754740174675126067354391107235553467234412575963841671144230784088601274959139368178777709529381089379565135601273267286906841110828950332080523972973105406104111918756781720770256924604684406798538221277656599584680640314361109497017456712976452580257912434331376605303515192526007572427392119378811054903104105744674710576240714418397680146118867731965271524684469748477953867985141356768364819575368293707788100086654657958426973482046403092605436378470746576404864258294101670629574829176068792783585573565813621771105800894437380488959732517615766617867058140574221661972148895912141407028054219199364615868001935846246091797098153285146459724397589561798083689869360140613041126770977799570286036156411363108382836721058079506041329845100335125387389458642989530046400031702154216946107448510682708146240052563836732938319053408679085446584784920182316837869348586291887819411080002895915458689880063302470552799349668602622396293863134958280267669755700212955266087794051410539221657654369107602089787665776559083968937361958836401048379003652171341912547790826922882692891139213335326683894698253485483180628748757085759441887551447329743172566339159052917038251853400290798177023496806727650102138174273297772349582235222804304416996477587392281534606160841976208520499210078654657108705770268964273446852051159935336736966020805314645403648608056377615761885515736176067243701611104796286136409066945077560725018615421058177900945942809943516746472290707342714758742701329400478103841628208352536941831300837754828956005357103656706697060167873776012969441652758409196280378463233114060104915312946640753918518556459602344754307204607721550391889427415994451672183135109448790573914927905056621027793756722605374724244080592408395787224492030969446573601011848637718415905762371881109772748701068421537327944704073593483328999162314419277819261598188620136786367478957735428243906972441587132994444978802247225541079093053256287780854910967155860485382547533648281789735914365215335094411093159760814749394074103856826622087908556448348550623251201986312019562289243285576378625108079158443730901118481620239622279729866833339333253766703747224354493508903680958320626373283213900186284418584382219033506136793804486281858381249054532561172478107053507412553390663466471882068694668718750606428081976827796668068094122504916263687498258120623616134948373304730518621740202002595975841424711755039815178757624205938265057251310394234267791922831560611104679317255544229306950670706945114385543949344587306956523968763898313269719617080448234126070491844572222890987508132153934795634272941331687027934924919073997162776156005720636148408212530094262785857515845031690164716916779576870344860469114938782913045415514863178403937439537354865752469143963999706564107991948791045143381737090850733241663232176773432822891631640959759972799597829222619245084544070822087422190780733532036321972068687565156568954066075603476391068173614468041701732856643160431801887144032590323361717411712567905134814164975216032561751137464163729558287161566159192661758813477749495489313819845930523776187550596780842421785802171181572816115419832533866506549535168832830152711734630295912222553867493731447582111085123714401262435515550872843747290751859407390747275670879658753786578366455679367796644971768483319021926128647244944690352720433290979226694173475509919841180388988827949662103782113197292149424151158131618130641593778981391161413272618685461479880571207034325152162605101441084898902002373812812196513136797114123076557083395053856376573053625248891938241907169764871690559459946292868460404275725093511496141549611895461057487712787860039369349485243624613803194324759584154348119529657562809430002083099983724906479483556079698656033391959310956905051421029584350995065628035517038080546511792547627171201257426923287549613928173418941829740076345550961694176752009374262652295913075631637315281291729054147746922948383670329034293181931352864773639002912759665271717712489081419973206864065180618017020790705261718386571769637152218289236329488506380028589219165656289998831803679110785988977711696775884265476505323912357860571544881159497547488524803085209213245116132360505115209854140909735912976881435895684631631517005310914770666505303331032868340839326407585419993668736808661321313354511427664591601594134262017197892071933037353009663843988702552104805350686878209048762217985880000480279249027142768672351905107462720912078162250906202833402521000325734477777555832337090087311413827740051384140420296867896060094109733407990175425138924417243535372102785535523144224144456608904424320238138067157484514349887604148676846677050196396248058740442714023193713677947803610102702079047069017543265429512667040490841624729498927564329461785488508402949211424384696520304153295825694375926939398907964690474500093797223867783764724627154415375087470652858755731335342137008991670080548220218557108258652297317023438311535064845800716749363031557878297326777738503158394462089800970768493840569792065562196934971613260015704384741186203022894894069740492321010681022935756589472168673694147821047265399339904963105734226858839844099238535656658670720522413134005373433650467394031152999239977874850061000360044622233635442918356467138904739766858454682499788103008795726681602762936623634776754473020422808520364000826547648721165152421686710122055542054991687603544107688750505702369431635630193401432033158605726128856620842634843847408021832730291446871350641670369051099346897120239472687249849196701693432230589417800511950010004076997350359370940264112268572922326813955328300616359767564734131739367780916130265519570986116812621590243373890080236380893666993687203337223110732332276086192054814850657592804307179356761528418808272744216975049223146755542023061908797591373141659045830933176761906581274523124450726218984828072653625388596633994089541076984980610509637583134909332542355807790284951541240758010001730235203621804482873958930553470690562537976958508320844320531758883635118451958850618256599713804316198631941523559894756062871140982316470682334714443241468953659838135438711366816358212146477196750582127052146423063933677556824254974770071250534416409584444417886886539930031451679940651911005996968051099070771745326150927325412536198140612275922787232518836917156264392541027370470995159836322618304323871899746349390260921759308960848984889905939378266592568581292385483064596327869383977019286286402209142905338691841347962842408152051098004796840202805697340360177356900005201593599581147749506011445512926694456875487228882051068690489184960282815194108001953503307730036092764179460352253880645156232241320622200162320729712032605236982737844399279500151490690109877136285919465908737575058114210490743691589323528881922314763596231909720155531730609151759394416322611069377681612930823914758325556522385740876831751490152970002309593811586464116929911026556948308536459503073353182692592116819765737940789837324713913351213954210419179679984312198056349241288259330546924031111232244041096568615797793221592809622347438467988013197398960882213872134348586551605765347640576248622066941693853450135466194026969097698422251102786782659477048646477520802609750435888126747984660608381424434279301167605299993400284964171558425866865983863132217391848720435881965899904470467136317258140625658869384807861348211848625636877878081099890603129322594784956274870719440117056342438017276309529151873417966498665804651444582168242354626808743277469740356389405246267110998823562728234589061954467553592678455455102985152482314489263963016103740003045990120264004842630235307390914018315704733349371230600505010516822316548283790277496705733877264607046654669978204732106082907046167013458307080248811755955029673972839422565763252656129238751863122058276411153281441023937087709733252568290403999500125799799790217858366774616038744088786356598083266511817405057900673377399098530032674020341990669618104725139397233626633774688947909650447493482499928331628942513854088746430385841881952733719603261814942209103948819940873463420769103686277795426850679574057827717046246750754136918332979991109530828943596092159307058527045088305485665254613840637508919265373907266294295538657157033083254220331925577939772055567813425615411742784591237566606937785319029407061463698342907269942615160930686929350253770877096243106629028201474033177369285898731532475062593330577744076530375836101114695903446148264629782409919050497301079504054817534831080629791109752512872037963212598088665983437846130306516432301605337548781728386793615250754719452167372424246796721547563934015243805249245498408269590220635737099856322492752043832207961994894631847136859405042130141386895122348660761211129481437020613872329617366371941968981383405574830496949891162676626963385874615622765972692964444817293678917509776600564734027197258408606026089985783304451640985702872681271923760552100412208861276835699899668881878206352336110689910911186245220514748969742267801545484442859627181467188804662946018362705333260723084717298014336314468762169972801579426590361025354073742861580396727304345370473047457174996725093691350508477802662009799174208743988283230424223975096919282780472776868941279749656687567667121622367202245164867658467847782448418614404144371499656144054857528304655270385598326498295331086267206056681104143183274804998019894611403666930201217586980176660939365194121002998311994993913060416365700492770837911377009306769272427202471157828579708990641205543755966586741887480013105276314466894240803030462284125590427585242383557460589364231143692100713381936721246860864238168488078195856745451817903614923741867804347375700017488103642325868216987958140591167195477128717124246592993769033045978345539260695617138081439782567920570336969905922549320428821494755410436410137311125114203176372268866647983202019341898959151804889283943005738909246768608600095718268097457124925194395674285900942771125197372031117702631257318352801640953874336255676972139195443728622740927122753788153394449365233144770886020732527223016354440230526208965578397000526698277838494946177290626123655115990270478309867124877435864880302427090298303150673767635953397551028066554831920737806298563632362253631456530565790477480247221133502515678643718637492025367698832870567268699801318526543372730906356287548272266421847365100049840016862798394954235174181671999172597084480560654645132793630224479517520636399341649553137964991109266596162299614726981841477242539189784102400373040619394367993454394828011387677247231753936291582098126739691389985778390695118505239590286680842663418379419505569750873592077354480474049856034425206512627629100888239198958469292091656178167348881519858217934346176363499634920073508322163079464011132436537981100444386240122179997215868092377558653657124117526832928264548596602946573034890644135583146199093288274626861326837249488993729659989067422727589901175528728243761380230450921142499510770800695979026742490648529586229796654636529823695721356274143958904818813106807529078438098761694366262228892686568521373296584189285200617188215212390255216503603064215227291733810790898736857021753123826082234367022591907311103596777684944782509218768329586683205532604284239744471823828863922918405345095735065046227825067551691085173970121116436432044444711855895560463359957728174579875747935115759984076506283404627244470743527611544016479177490012200643261807073889388305553264242807294816767175300159775916631975112613788360105200449854370079165723466205409976233916816993580609444265107904827609237549076020435639488239152743547433903957348361715451150129105855899845000680806218163369592032201916053706777766954072513132673062544874778979832790372611385797593099292306064230660625965166217485487739000295154094890031050528247364907029532971441815577829792493690194330374616810566310454911601633435716910206840469842173678957969955687395973597625950336227358467919323304963199766332451387739436252474071929946967035793496680689793699769510285309016743319611966514029303314320279085467794861003392309068036166644203517187940295254840123017627277152727642271451492660068664009159861541154995654109877995010873323635357955194805890256667326280228670747749790120593921837805581409737814119809654028723299896041023873079554292779468941659243927899032290816045349865323377626262207612968798019218450371906526350939848124902459267646824695371718063690244584692701560183312575965182232854332208715879851848244306471507976319166518641152173410200591178350042177304566893293108460912617125051910426134063574773560021973624804956179173268035281478524087562366108967646813038097888656220477383268707323998902949185269157488081655887648821336749613529895391168325431975987182652965430217860646375133877912011595473111029343444115351024281281951540083069787230224631488033719015984384890538379967479566619314291485615872446386087060093560551877930393447716025580135215053969680068918286930157089306854184391952987145433696628072198115962468577820023269073484115141237003693997464123698079231804732137699736567777066482391156259538674209396020721691270929544410989137749886746530853642727094870515863099867525891673193264332034686230840972888404158828354236266614570595466308192890363207084018875478884029992513268957686336700115095911913738316285274535008962754339541228996031743402469526328010257882297886483617087531429342906361598632499835226857913055343193399490062433293339883680198134756568962709793304734690706268447678031394167505110967906043790191816296146626819516533271770154175453390096828492871904301257164399462285395606565636038885279448209048983398008479218083419873179153274530323665197899409874572394635901810215115304964834171936732572553590739254810417118071649927808739604029776071469948368726253986596967324989816714700341628770235533894333168187006078728717634505224429254246481996863703212796696668244331776741147649511505142112069984416306480477215590276063996438603306101772629218269955142217325332107951850012969052182072091897105116114330496240319740382738649003832305059848718308480641822759409046647824972591324436981250571391973819706062276629781618037374648296712997369750649868515048126781057639380301901040829317729419884352944244450002953237695298602246674817664837022381869206308845203781518456301384958000943270899993949694660686427638621437913074582784227020840288967160450231689797170305312747828329817798561291959346864419466666369902705953914578688947544923497847821149977208434148281387880396866675280874354131192151995471587284697245191537548654119965848232780685413103687520062508444435500432409397135681034560119622607033472429546058984607001153430017849197666768362127162043380022197184125009599208029409518185875271527964973961819884904589255153402064409072039194851873420738924914641786311470740034199503618870303114121665736523170719239883526329257916649252172938726876216404573948203028484599165262657665515434616760513693142641641076277419240130339100474702772938096305436267341170952030195262636547105656372303518824648781999948585496767708503958326035615646006859231505559328245309062196362274457838522699391496100457332475091352014240577236450393956428012452303746656460902564605612232628792362194174494081857876582911354830633462875725147546216430182510495361369877625118245818025720790311043834697327509918233097765652815839812771887639935293954632962177348229256845638609625518812095092540141648595371036655073758142792594717848110888520327290890755905725074567212068693761915802858390001465160527558537372853885743191904038845590180321785835829061020192846438577945240149592324372588526095679777002067292021106088059935849961674705481345046925585197122784537393993652380819524549992713938026078598536234271748631805924887579459603515922927916203011479214589017983244379225401037532379441527312263364786882255170745630946536100143788267998272932483485674929894395413876537781660823668415602758588017214980919083410408245427145027245692185877174367046482083196157199965913556048150890680775142590867082883775229954446108237375183154090999699291450143501124844158234246407058288830238033518814819738642440699502575977495848951261928598993528440214701175621796407507677116358240746345679325427372920172260509214239061749357358744033023962218600685570454843791327191796926487985745609022100110521820003448414869298650624117065039381618712088824675659856597549420033008971767634613224088485789950703344466643211713878992384793967356811404409802881702463235145835741159563549459843892759970828332206646634501183491241424784383216914590525819824135758610461284982008847074573760828842747353965775755675855155414672232563305388160918565137374544165156998644571761301672643814639687353986619660458218632747378080311160400100357371922064091907639081097956903931339000907997702689083654682913490284007957911537088207620123517088707948306746064403115044234425372699257437140448474616463501351733632057475896271371665670611098855904837533468116848262167811767346106501167131966929042129820218426853774570725092455477771143366298222842890720699837211303914534352661549328863424691437755937932194534214530906123531048134380919932846933562552897938346681819955313237293368495093406138112365543002396379169656884230914142669727921170432840872170789206930769089796139904348709524578006815083860746061321583029703423421309713454872240445146880741890798605340806872883464634819741429401270750113053367425475835135587787665438700839987220739852212130920328616360141012314743160757207813860574399731414292034346808580719270718107764175806356883043101311705143385623722322665675330944243327191054240881128390420958234901205821501061072399582500294096169533190398747191588052715146047731248121680981278564424184103574077059707713516820519300226691309947094450969959506286356531585756981206553909730098050144127968000443726598821824251466850417627614071439313579891259230268855486716276054767088091209334413899057471282856082859833491845118704542840822260474574080919210885543700168211227458883177883583670896027246411850587226982627618807181189033765889917475485814505185359432692583194058904699904081009501379504498397275387758254780261156824965031628811584715332737298408940484860869109154501194869829235172216508517130611772325432666860637571093975529376013529667065203807643594626577752464937482306442425693394554759682857477898474009492320204814335910103117055579055954917005038647600970778354955779350278042657946108127029961973687863055788026548487777796366173766331776771926102702314349945695403135837691890812871881647587084440938768322278810639532243732203945879242196632527363098931609279779582603196082628439660596334878961760036026233827252259298839811249518897029370009825728124838512437100623165750901169521777848158495320716491319740625604269680271666519438353004120942165821887512902835123013570893114639153244377265045280530392141491700647757145820026956679535679009237659334217953591139065469916860625238508125953732740055461838341800630229878279941980252458909588558000542146430534064904102131242948811870020234412907688563592166027202768625972479337583534722327588584200420469908787937295037461415323649407087586499918675923953244811213662181633126787909552774899272357575101102937389637376407130695707272842649130202830591687450671134937513861437722738701914076987356775818149588262362061989858584558642869288508761474515607746850743034526134870620914249095517626903367996365624425459598520980026723681006283283214236335863237908406561824205141656189424865398045119402819999894195789614105722872515169093128850014428286373871825267222140284783091348061353123331973635770899785043483586302228258609567482637019542894026259862155424674916102607277551154251190927645675005994201098359203502148736232818819295807706225836256119329311865818086231571110370125311040895764816232600876160896513106609236294558764986110899097289614291065922623605736962965205107381109767839971373429641632142276347152715328543787077893039966442482922080783967076801179095943113035198374081833201729867810062079190087339410413137341603907794199264517595967036384561899638901655823804555727180851698214435017517384994347851920297935831526705344193355447090390564366759169059985138065457528533611408554253539477726309975855219838432945563112393277930357166663792337373771620622185956558665252236796313522401077925571011799253860349151683538537844232941369598740640702088393474779508495837577995808604928971489871973821933706181161589341801524388454807188824087068922416057458032215226385719654194670043814713424694938155690990956912639914188265621689440401764376055826430765806010872581637273911357369443272295510343728917155237753888123220765534075817519116294150525923835097852934251358618414447044811290641283711104207429742441843766985798029468542492517859090120278222398163231350042812692943624906763600243209751288796801757657364499726224301035893736998267026435397155230341179624052739394728396611378168684937479814007955847579926402735141075608673444464776561094216986001689080690330073533416771953517196025688526651877143943034433721444751927011868897011551656687315140725222743269250930049992671025084655105208941635982062661174879462802117819632197638178821981283222215797107675645261619865430874834221024393147146582875057269541812883497079556678055844296042929237240422900260402850202316273064645448892478769682277398617069070999413086515884157095252854022731776783383422071212763015946310380775805152800301022685473635988666022062410550682514711919041654181070469601061436355297027325169013076529865929041849603418348379180639462962441862885033449093784138013983278825475129253963995356670588852473516267849834989504841307523760837205101500032220051750532087178657233846875376508545465564475456595691923939690238163865080263631086062790255044098951997884539551322509889300661188184368859857432992871029191531588621109652742840189061786109275123834157786250404116631402361874467895376569132105637606390979898016480379904761362466041737104098583080116213651279146758391398444255988961894644750816434761566330514971484867579350443213827391753901965966427684492032488963978154936755264293143415111375602437685803127256148457816481340870458836185695667513793169890606070384584555709747415458027567638613539838931963234824156422301740862545901651545618743683828434860059344168024793437763193876669729792282818740281816312062749825974811939996415259829568558067333443244517289433155644607627291538547159599868292970194355784065662687015051108581233354472966443843446066099583536491677681343084143535701630561087647281419508824404920156433007345605016252335013357767085872594921371067453245458022574800908712633847591969102120939739471355269654365703966326111892819708017290029419179255161423451664316638228232445549854088765986013004613074490251113539223039370194926886875381023986452096103565572709103025246264257892300859400295897544358611528236948671820624963413471840799108537040314278967484850834205659482982421979561558668681211856713433682167819345010715877200601236959209520879918548662308996761304369714303182495329857544681952597736844058464823274766369928606102384748881176566255989568041682590782627792406722685885814522058904171991313529001875466492786707302155155107422407876530778621837229083544236272296904982839246092350681939855992687073050384914089527803036584314332392866300789306711136806744684396311966735108110405019539817682692310959834918216268336065791993912571104437449245030668447120700876982026731494124455913891896375572448539995136889816036038878127351419530576690429393940795392542803592564181458829244084257114709853375094344693006102920870453606183200112311530548372342285589797095519256057561289658301223421367390377234645229176847493004034840776534293769927543082292948851537969208779335955482277562615704675583392118064521555525529166132140063972816095298548848416897943028116806140550694230439944201397326356092716814571215650365138849731028758880827439969772611053291588516458350397178122745818561281096414946396996261946733782669115143373782957447860670948358077576572785243766390887317872209677288744844887761623976511448051081161471746746383841005862886838212299587971144746215680089847472559666118154074565322236007838108777674532203544425327556243834730544136613952849808841283715367898639146234892399441946410859156904048125763755586661465860953528340207780045466218109527804514145863843540111566664231605220370767036057035021039413365607747697242018681764532204647683006493401880735553656397997563941615004143971214222412566171412272061782290160725948970190838287242553878731996518776136438285664741701588465039225911146005075023975825461071947427120249198920440880502921373264952274146086224230413249383193352610768645221589985141768784866743489779594585254144174669761132627379024935938590054899029780265633799606529434582473148006251391638983064513054992149380967979283461094683719902444743164295567576629217069244396667005830428712642743229745387612184229613714007794739669401633068786456965904925258525714156316580440177014454160022084766347841770234389539100445505222812556883701366232241680538950650648240179370313495442799147305145980032897763993106641236873266978343094998936481814435299487169956039199663565909828020341786860351436620298704923770047664742442741915574130253715376314999435509197669158014775348410089951551250423362601703992738440750903073610672460072179339603087556849484949257681078861668061087408033487325147343077252075435748537122543854761118846545296547456095993134686776484880694001790168200980664014227491112324963008667187919762187006983374774667665154813852106283039314140591643874262935007816107145766928855926264888995869319652204873972133975058350465836271570754606315141874165955969336709772788915590602080087870422898406861930992361825994920131977546891528707477933696619401212028214073995281238059793969787697203183884291322122189889541643515306387505236631968218365734424174839854068201332802260890157938617333429172942517966928870173095884955223648000556012375484863177298342772831936201429121958157082341017179980072999194875805150975376251253991072476629070380746238567570432158475288233990575293558699351598455473007142877311704179833789349075985727476812917829350367156110819903048141724123371178491735938459025849906252260900742043786238763641366194709920094960085249451036505321931489139575891133960200935899445746952827106608349727474923411494194079408719313685104813375291560889891444584939527465441342292201372494044779604989532493312092311289186334266935567739968740778199874360469426403840906542720901603499000294686361626489139635654173795974068670851431512408726876131495349454861801269727266149550960581668254048958336424397444404614323779639520448636095825712771721130757274344512310842458118304493476638294228518356963054629100759421408347628355096444267936432504270516721829020786186713699633952654428912047338065082672725449256099207650433870150064052257153398609053613977466965064729074402107763836080411280576714047994453336879316542880619996213742976458413713693536919908687501866139296994398752769029676592818507016082285244860470204677693499910379719441588508587575571963083558507445989495975364736612550523994926853678432256696566004746922333331611654359733422569020048283744417727902174344379895468524500619842231802265096284945367059768755333734756743987931006673575114762180196967632890956466050444162805542050258171822897007470485535356287045009855682082032749482015925236664374605016203192231935852656300730762775354411623268286481127004988106402447394304951524081980760392184559972025719370727240591921113823655446526251401063784341502456492239472004757505212941919463277607660959015819320990883304891280956584194260649597412976712807805349996861617217851514748499463777335015957292087299656693487847492271382348491684391185308046493568846842118250650524211674056192224523255289446087503917514267489147040286833739802214822574169829547918109900870005729235816375034145487448971621390103152571113652302283777061726419591270894334880356653851440236971071112822356722981186740895268992059840405907382993398673369696887865720719768901396834303879568094174801396925693309373232578314763563899406346914684988333095953408050004947722878888510903603581020152332712402846771741267013026551183139713351014035638298645690104930992117048283237565365222122246635831168513086069691232753229143103487143041093667035336337009471859671960400570889070950900994244252169072142566161601664409597795796321308608527112959108357928959794696044663281771226774244800830722040135398112889894642944077330717779715364201935051821998466454364602371130843517763523782243212726286428595643904842796849090443335051131273090215153926840131686887867214405484695036109969709759477149744368518843977114956590146060966947463167014764160726845162753530362727054015299397051429915580093633583974122451709067693954204131138330515382444512771159137900204845985589320214055987107764625218606572607398152439428191122973748597584040917195291776491645011993051076590601955132971878509126052971501332642015854129959233534982065766896801750330903386462345438876725055321481278448424858866222147726070304674419959377164676764800283611369315059728346891475956274441076843372678079289219012296470269215905023579722641253761265318571568058593356206892885885689224964301145346975825719486812847621472024856162918084404763215798127452979837350532910789912340639770428178609876711394738257719208420762019869699680175273940898753627448013701848699182598554298516814824847606918346728303936474241779912105278863203894479022303809530695351664275998782376118993081763343573404690029628882314026867563804143179246922077323666345326132948070854001896642408464502209498330170910780804919459216474933294464874091871671027366173989274389008177313039984915444614736641301015998113338627009396149056976891530204729436057335733846864755935896788401081983379131566718733649096024612935191035913774032679281643107816927572764927666861915958244704672334526213064267883493443568435583156456073335593553874632853910957432002774695193653355877722332149524550549567023301164641535692596552276300720016182156820429916493547176350989379166660427069827573610578618022801524656946765048743174069488535157878406013759551965007458971442684486540767387547618283016082284991640063396261167364806192248623028872269507599424080714970677256111934386415743693022501785939854021103326546086908033335655494501926865849861281104005393623580221044758691899660352605082871464064052368663427524573659190784699283541096511315758424066900489557774994662397780793802841930289140514394077949496862705858517345265668752686835933060747749153266369710485680023459446427621834826577327696518796537036842133314889907429687919709811519308041532922274793613012049642950575824997092469062826113936598773998618995697476977941957656741974543372533168733454335022266708522796299994531666862680741093514027202566192049367228209327516908206990968734661110649652653609331100386010566383996723162183285197670934817634323355154631451591917729226051959674742507261683446117283254138437459636660183075913999313203133357659811597028244647555590704172579839442457733349648986887632448826904035249570663783259558971197064634034912196348949413840273561110600253437775764405473117937985211404965324855013575330440733048358914518262899485406215138278289334403304305482589875620417336309682379530091093091001125877596867419475619226225977431769829702292953240918063861003254322952877088970289439996846910042473783668996039869990868278212639544921057757666123309630880268913439820737652292588577365609541467656102922028068219335536709448423678982894173457073637891132756051779032991447800054321827230275731779319520672900251183000619906391455548672608234027156084081054907574381452964240013424491601956168053834271402440681612527557290671964402227506707711666060652555849735504716290061545378337644181974710962980495425227281984746160998288268603130698473315725106847187993845151432409572799562766277324625127277760749602132591532954177757662044189120087769430809782062617388935903686081050438969437890586117119562402472673185350461440018495694184320542289877220632084817389353882175429565866369767598761734605644353997514290110919832098952032558999313665805878320165114944355599792659955386226907980822340807576599350811705081015611431391610592832984236201564237542141361456243238033739394295498393794639991072425343505884924838480631493611110858313458181144779904395095139754084900559171503796001958517049705468872977458906112773459148374311359130080453915685134240636203430607939131982041808177945933422785740037388156232271064669107816088928778544096002207502624099655912324048197655383141884843765067334891190034781136352733379828606566298707613458340863410263313938717037577967096469335992136233407415088913985585905736653999012880083520797481396067850583923218882759765152405445092383703625651618437532955731334078025478180704080954609588573021513854712467982780069523098583149805585505951735084499679614175406305119698654004594533154448220846042711234207441540901027479742558628519429322366673578789471959364050096705655731946164427735325915201648321125153952488697650213351924992159693357029796291116886028544387835689274358969081200156317951644738367948148776556400666700129827012891326087451071613899847637959807919296520435968099409822085160730945073658611637331358731245171578454532788292718275027604332363320929405248889411400077189185823011472955283468935138522817268694280486676821955663263410608001088491934654041281450502121172155616478598249935044048576470789972980461931031407094203660868264374474055727428689353310790758466728215848723671185885642539411595061771096806947532580572634134127131377480320036016984401178323996455168474275053161905562682891525068741238475305594037002894472773665473958883877318176767044289258357534741321454870216991912621845929916318799779933523757368771381229454996857262255567996563801180506626264954944914851209635185954768939695742767740017270707184828699824315236454204654273013134139577261560347118178085353723199459928686781103776189991200077409480486760160635435563237449701705157769033474348940438750523859455502075753411287656147260286386060354799197277369508981594678428502277898201890578017596067366246024082271853042631463719555587621238201807904651217483482455647051058324717148159916902230316452989148495081762925961568433573880055989514144856397805200207939707060098362754512253342206216415228005331353347105738475261866512857361087855891881273739319692046324569635925837599460792247435996041358042773817919267623069972510010693311384581100588088253925140720032629787355625630661110878932563862854081002647247671596857865421057987087190860841802625460539688713818955225553991925457215345884945481215946525897643851192691874918921494291163684474941314475410874892402425428169044891881970632164794798386305780508524540096798058802444393896065441515897108720381675839684353081604858499308039044715004944218757119572297228008583910904039050124774185787487582250675333781918754379662305829978937885796437839127913706143644937721168085380952562805645455588574009169016985283948699357489997515084162159774745134238706869699580946133975371108045095346924410613126983344710340994919668559062200437902441831492791259225862263833092640743458378016374013279475645344949306056899573529079745957786823879462938127218303391014314505175195923522061994516132085494417089742813857273346336248851598535149775918200844209561283292312139799165976050213996386398921415983093487040505715814286121052501462740516897539493823062323007428493016423178518951836163982376751382070448731712562984470207075196471119406528922565793792133255095843469176079106117634541870438253741851095271272340331851215731261749313127001400382272818287159348835036943775347268034286951817032842520635640415475852326465007299216138589366961541068024548375034399245791671445408865909574524506830463607250450928296717173863092100461674383789775562303017275967693363028635431365980411616069615054013656665731311017171039130627744931335885720304458994398079619509542280971933633475567103046726899408741394804252099989633880177236606980722643492509077250308973367747532550403183252010067679821144441792900584158058994276854631826477311385068559902597880826314905280914765259606573529426310806124951972647777278209673555920620538790920958542513301087633685273536840085324326618147088290020721813872361048092861394548173203409031723880314956592676345366453962239744407392287990825167918825790563316037858907386115126155080114718846548467667559169909634229821386207696696380958193862229505443094686178688289667337082306807004787752003089347430115597704177571044892184520211480491996630975799483569019266601440943342234262197108053072875887656781922768372181901496258575903849947657761243864349317494918270751610269567024351708083158058350646938400631180517735163805985913999859574401230076119633045843674971117804854547254735363731274829979557421467510240002439030810737378434694512886318734039933118335717522507941288028177031916341016768534983570640401277533874093545544731410963586543554061889174442803325805693356097866614594943807282464242478586092564659193682528360640186449338697798736016578685110242971631421353069100705549137366859703904147532167259659619165795588145379750539357969265019862093225751085456798694628034631007693500047645987712322939463451109441800948603692224366408284441050199399856820897336838964044442941859182323356190890816590460877162517245290766330517187969196128768662899556166953484534234141620993225990741467087784599487033387219976174407405606295601777154183908305616516388145301650653001707299117568113669238611884371386111458910542014807204175163766606219479498788099584068625776785599000734500102680966126352687192286392478795983182543767209473991322273309507246720445028940853401150112564201664969999106996869616537229121431125072949897709047243606303410464264769998632154308089517801356994470591263627543234632034411454547535534252891456824430447249028034521998099781581111134754799764254577660944420644967340418143007001209997180604779730285153485298125378161351817969398239341566873700082620358074923730725730590621225777668328918237415815801742152712695206997634884488458910692256268404480825449669471343229823278683437827188322360457386539691827883286765628499080221237154637144463787508519148337258936467146568507667398389562885781031743362658530040656031278783141183395542013033981139082615217889639474025282754801159584963256408536320860686451714286097453028762922897407143925391483907200011582248652076187534188409381214102109450142984314038761426943642437450848328482781697368943062825426873600096432136406540359221359039931605670416233755711157743887591399843163184788658761174013901392147092289613106120192184558878695391564557766416890898201950658252607509183834786872520223149419885609782838174617187818319364896418313871472194838179703452223031877708761025843127444132495536757843113279296562836770308166876583045877859842590139039781005379705057111476221313824981743218781564173853715820527110272708384405972369763242427539102145611430385922270491621878157169532662857321928628166777402592418685079805803426238632379409482727840142372331240265890111356506785495074760541155231345823876257840438754928796512979592306961771221664955225104308956891071039224549496834552132008132635499873972407556849328065631516347197238780748468635344971359381201631505755466983806190334679025282514553368152174414862605402545819091706569586737933090313166511626278813737890654749778159431683146537096015869675599233406842704402083369052637452727271226152838912239903612307412769304918122116504968667828504987014117428017088357585773791693452164473492036249236649321473895043432753950062551628249491272220733309203932582448900484670307303771669533014262989218593278561045731785821020134971097857252959762031925216546241841702144183113583918031490474337659108628718318841034592490034212032078096328459991094522325387176727209024737370771230162130373966007368366159523197641489286890014136986605912898228311702548316249487259422213292566685416597092599732866177284477576309680096159248373472551447094225446258932901747813348949988576094980176244555800974403443557219251550085495247562203300636326284477506771450650795367713616529748950440811705607184512945491610495254541169985333260555595421091390876114748400153893258251322169085778744586485062545975202792847399807889121194091269434023922801705996121637025389321742620300513327740805368424101976177779513866993752792408483419990805683128778658411217235800394348495759754450678614722265237378102616077000403414831070166085604078590350191816747863142908549042315629279796282612165995328106336819050181740588343940822877396319452495336843431040092983790950313329598060202306204646430009554152553960441816890485373332309783571151523249293315501194412658067431748871892464012918682903139145523871442637067394032604125013764530812973446580488166789231518610773146321639678833069817211976520396306239338205247775280687687825562082986914663072545356541399403128087184335632701351775055752899051328922717856134720245185900674712144781085534262543370031014346891704623650723123273217617756297412896142524223162951400662497974749888825633652069376625100602958528876789344151737212765962984253082295575117870656468299963127770857238986840661971579722395046502892462508709290655022817665683958054176971923485337650161749507293348243726165066186382012539838525643554118480615186471083433542451840062730230048141823935076938061388765507998223534473981165912924562509796984140846939146269493485116254396418286778320625363248613964438784729818990879593065048232258304845139995210913936431296678497883381080227056758799456382828766584117713994245760002274314727277267514334658454365638590432233704378976430232071500151017097462799976241670425631704757737507056646745074176042223709246600494355219126406468373881877998757103122089858953303511036292435865007237135656791227642950095154992795879021974525334157386974956427566001347509936537599697705858345717345459524416969588609305342822578210200253574691561595280002533908882241597799048961913511989655873452676304264096213532779929053469536278654745277559923178272288282615496266939935662386027207877653675306067717318902114392612951425563174706611709279505185839443460873331633952933390962981541079605391327816532460334152975460738343862688399537387807352577304758013169363663357003225739856879579242295009274029799789953539051645901574839347702066306526302291134758016281356937557210097909545943626823018478897152296946476847153824370656020048312981259252300348850100454639692105060545191595035772469591569615915670814766606529089483684770625583406962471103466417430499787427903021489637708693238556340294604842374829726538787013197552010856347663153160011361921950871671291069089728728707862678556450960808793276294408517861806854136529809757238814536643996574258315617660949336039302116883957149623594324177745851659954954655800483735332839907112763600404172316279476283012308785000761228106291402069844724519649338001613578797204925045498819705615256248274477228127150162758490583476153886187279966152740922963561835122580481457831729334097077904069346247865934644026503604659097470165960575879415906693306128622465566569409970907402631733146985539150879191572287801662359420141400826019535198009600352294857579926843537951836978972341077945714425347224797889752904760351906486750323473833168979653558739773795166106270907594186001931629403097171667869886438856521606574043274651972849286033840724421441394634399390040390357892058003545495558845078060750238102337089099499213170848836989283623560613105908926045866623532637970847487408987289688224725182200045325466851846528953350927921240151609990355402515623455661652847334186865049307110571508086532714416047282727078446747563318411645407400637929742948140382180714444706791713328788141253264157757922413431402972293455392294342944252108985535703109741371240515079529809219953975695358471521645987139961646839291419925537996924519621830752211010875023613362524866218400868623735650025726289942033004135317520199713667710763952286468039480225214047032575408011180621720949705614592168696744865488090869755305738273350300685811720778718131505093348443525509639976315917916242886980652299047906173903119831871108530642006074951968238717177847972252031900340563938054545078635871352389415276885196831631028836552298538808180440797135043605130707247517524130664867530695387872821491616286594154313852839767523317801399629942308580545987610548030691024945891395301784365312160544002468818468461885214272842849875996672886955307932240358647826109216385862291102537185187669564251443635592960796928261245470651616756523768444555136334450104900403629672819591162020359376193632351602645652495149486752081794533482207931837772933293315914162944529672223148762880320245431416614913003448167561164593405041476624872723002856781118546406583399730445033924998194489955423376463826031163450441955766517363238256363889128370136713907776679313881354169065956608285385143494036149482902191325366695624987723805037598148114540669025785401638706242986906415888102934340077696969952332763411048868524993196409565609106188880068697622527233671256173704002890439447265969698106885610765547888986218528822835560728397884926054451707643003128728622602175267796368087036832612900687278964415807376781449578763798524510441274164600116344108957303238098598161113765377429577279504725290217713847656957405814714773941840904389528327770262591451262164482321730258290510738120724931194282209825848848193145802027873401228061756611036546706534517306060190256420120887983017756544571671119888361472559052919922278339065837955998515560687308802522747454304099343863779275627757930880295309882200286732440321743037636174131471968281936809539095448259568964216923973446649284884224504292654459730761548110518342635328238429223131728976235157063300655542379047415778063407804218993359685726036787333319671011636316289230493876080867197431956181454208557209729851639664797494600415549818442683006710294554816958228877762751425088953336045470879887213733031842816844735631260925187312177895037910769447557802505461907378807765645029430633823589074311326624675175400731978143402277448528558951745542445942941178501441787782550480929488221562873261897941167249829772120653271948038521715599225532731413560706961627217396916771710039853374042840004653570657362081632825726207299288976279395106238735516511549828390299383761597374078374929894365172768978439082289466698358539397615692286117414370631931004889563911240466251002130440779020689385056672413963916438890774227608842258849325532228074986736134894759481380086028886869430784275133182813186290915536647667270769726933933509192109947933978982670933564754260338761299940036509056481718999321037097185773142055999738578473844278264511920616879252944310305323916432093383517211494497310696976674655560232909359771719241050218306492701975443831590565049557775889568981545162894166140790878511134052249140445185999696726231912034082191827633273105939124239131300835864823123248508356332139749562174580607271819750891606166054093547550367952332074983082975166029968699009854620280204192764722352716589792079619466485416689128199571352886676138356729173419617754624401842404154902972016880671588796292262768724417858957939520178785525769448127643671020001478416064834306999759562050022623289005543026688254043722141099665246546293734776923907714849551606947767414329284362391149408864160568613083094195017787711116492399923262564424192716602779953524345833644128657115330558307834272587314429273969305525486220512081395179217935944808870649472079045790448678248172396603930015210424391805162496602276853855453752914738057804107084118818605227906961689914589348455231607081261036261324154072882132686832382087432744634279029655679059666455975451015780417606990483444590735453518431169915109746568554751828226980688467991742161351345892820124025200916876074572656430482031721080246742962646371670706004925749219576116454454033614369493259792442713918577055580286545239409192091323118135228562641565842873566577928471619977451722476163280509524618550203121012577326363240368636357315807437191639495429705009942647065263812206834472313236074532715719616582893771680951818730077508290256225504934631539572346566637113717015979750773049689810952054852604511142077038447285576679004745508015721121416273097411438860548643146884647488969349550006069457159796101272194140694177962691444953577585625703279605205785808235425052785396039748586024514768756072551856803179665232820340785631376937522994739359284918110779469437058851527557029615203682620390511221394710006792218419939775031429575526060148837389801900932487296315225323439771442888890367804214793463015559748476680531179548667986168254417919474570599545332502638606275522466704874480064142984958083416056174390698691017707169629832113372970601085921535922112222277038535441510195702720708545169699963913193122317041577063897088097975204878097427024935948007913109873560093718161492462198365487130451760096853596958785978346102938672565298210889719278871654565024508826768456126351588995497384244902457067071130203843995903428523080933129020548265337218144331085323342206108466917459407188615656852974491568009427897517042967633126011242584450360791663741596628556216164262645087719785807128265184526961498253687957711183114813199645250505369756319880071515421797999911060007658384437896529441631746336593350017503134409134736787819880163182689060255904640461879965165068121180115306927818520828193265894597077144713775356064471285511644840213514402671581244625017875798970149050572646230575691258679754879576716196611588099383995432854007802641428073132781508836087054647229443260831362512658584518349132842583528681517224053536109624813369522106276870716500404835988881421982921870092301316676043789601079069260062422351631273437967359771268776474091589792254195517012434000035303907662851842643247367025711122398122515790968621073150966402343944162785136603517639133613755530129003477053985475943702578999319839776690728357148839341391642056991022431479650890390668281289973907614553073704330283376463430065588906008937888685778382219048852543020097693719957030508986356736589442434846743420231092297797144557574915846247217146142666866883970160812840946673453996664246443841583679674852589916277931683455105465156649398785096750706361111757079686460066262722196889126279659864574056816460302989329166463020101794249697050504852991123357555393084458610877882000797409656988555368292296659830640307519551712641234778597437754450385498213208772323108807984715481990426417278131179385137248940146201327777703383897637774126896839198762118599344281078395171786401610124940810644434504096559204708758974337654554565040111669240523105811678465469337526534811840900175786093647203249791630864800252348412297876224799700042558857387119290074887777304544919716400506531422496043728473845023496357988348365130019286987997021513869456094973372007782486455860298844531208893841796063408456745875861481055259072396371564397239632830511403766241950092460752088632728418036963387448795198534598013492502563476923541463410109812427527507235643405446675452982143173989398512425810868309560027483729888124283454072248796943298617755756598832453587853715637175434989545892185997352082654796310740266720164222600831757384595384099765618889703077096363284733117178168604332960575779569963719477266701520146970574937651353949676811791976144177638044966337813354865999230286237077326379418920024083531862117630234176314337119966159745063999759160528606821582922557768816269300904573413400146846993250791117504273445101077597479973127260208625862977189545639938613412006937026962925532120894414776277930442568213796261732067976622401474481964412773110268838442187190280829815961935472750306967864668526863606339711728165193411403785030715065791459038494330926689527961586596305967741905923679801460569933834722719434632640584457358580588059045143538795083861171899771550923474193742412920689087210721129876472348572325154851753737954761463057025163977902646434691678734883208037351315581098290802627076126979181157809811957735844785635290088500936631847318748371983106412809040329044527888841948567665907734890500872908627502408959304174896324160591302359348813585635757709636490268819596746818861282911212053971024536149048331656588368159544087358832022730908040705722757684297980796264997365453473716401103957780345507214974620051187519935787996807742632080335687857847697244646941268195391097658525932774441903687716857506321950620333131561104724346822075228201492979572807362438871081541649365666237577982184360571128938673629935818164558943808144941273664684232081617930381268361197461834047784404709705163925288321817712036408249896013875767869319098536522456592670085998555367005837755614158660631333841282275579939165026636972161399934457441046107744464286077483078100195947640586681468756693150737910684213068323150707650833678062983413633260270669110863973613394707776103230846599147169012116143119565780785120292594513134243533543859395986952440728738948270075217235753431810090276102207021223308811190170008781721623135035612452135003422223354431530612969496938227778187794658695155321252857336542719125603586793358825228413554915516850092007101574413206315351857823224157679011196088178806553355473482831593414842209275498006900787439560144276626907621960671874053955094238541126882311533212051889921526410534576817998934742556461567714661582836140965688003500821407196278087295167728561064408748576091691412573881284568644826063212420534282546882911094818423036579856400829603293841137495969664232409058997383301211573659601558779062940794026314386392144501856049251039841707168210890834847519353520423386458241519328649898902850975833441400339355877575616888048667584632435293176193767434017728652650182322612369733508507864415987179488633805797935862078883808968574369819363509618051285228262389285520932288021933548145634581166585109292586056577661085280826482294212134476682013651664861837760270887189087601900035699555254140973567701532003973307484548291553491784830370502925599565835281743203778404615833451190966953450098290050209814037352459061397108944085663803015924147386491781694566121806871683209110922507388512207704702470760951705051521901598621884312329348070650277302000142843952677032439244337320933062818618115357572410162142637116701423669837669404207020331754843533727812197741286347121416163573338069613968238887008805036319245609707133677246905310545595175307101746846891002155910284098724943719539989238566917913644179137509442784669709336032542936294681048682505381179524314057735952837658190017476497096212757886495726161355071317398046589314126354232327452351117337797347596706737461698814357555315955991545167889890182258376409805635123784598735396632577627527903476898649196270601820763107313131469788025943191270538248427627139145741191346551072230046014498188483055209198051195514233622691973799077685971158120872190428516244475547529126986689895679476443522140463426968414363239354494234339934248953601038836868608791631945604983588142233073154124095197751981254448705972678609752655026522751514225542081683354980351989950349289580896488700730759569863380898545867378982367326628810673732810715584958501071932841501461156515654327273753383264912900918652308784617416869766587801488489154634329713544182464812434019597577064821466860532962683879646640419663742042740040613764145214830642529635356590206156138591952321392496573539232707427717195994032697023532460919330024558703530841249806642591487697375061249912607017783698876307534056354070793165205483383742919023358105963302254780852906130872276012487831989999226632940178477752878606908132918112828795193548315070693843640271346942340321720869737627476993479489528077419522610784797565922809657056348935344770797771210224431766297665624393125770842137405530757865061338144668002625408280551912326118432939230699565468620410505829675917588749321086981209804099719950900623680069830065758911242850481979754070630689061274153798273153575872548223563534561337272256281643101546592272334612596022485570081023097961972139886997229002338416309264446636767892805455881855980145581100903848927071797838729475549767207486301623929885303813575570844469002276742992828798884780979991053456768644690218354130753031189254461660750176755868250742345724479409589139621178642322857559468032007831832062741902030669045532744732850386621715890081246327045854767803732655100867628293165961692524777197535870127782889808595197699073754006154423495270037652638700588528283937837940900622444486740549554653401839413116510474215383402287849119821152438918862150031320203072559161742348079403149579810650423963819631652476237543663976411043828111967902424523146815356258733062510872081161494185899691024156331145550293434578057133245384447967505143923836099389147860222425725239313716976721022791501673334361573877693466268503620133240435434243595400103281215430690765901800887981676869738557617835809603503969072860127127838527974639303437186349431731905573637855800102379042894070162426693790494420830186280446822357616140974709857070876179059764255553738865711643664411673268739756151789000578139313381924763150602881019435657704426948957846166154607041676935390504073899771676990942206341701385879701901063511103037699063705361043137827052806328877927209432360276789133778711284147036940670796291946821311562129033866538220231807143784623168171069706118218347199262956548374029197496220474144597912067256232073721242174759089765130435954600250458061636459278176868254029873671881252212007411576393495387533968165659352794660047727784171924253371780667069773227356642695162914823956163504462501137498742638951174285496709555732716853658484465185069007080639741197335884087588337341027015978928438382888157995099347571686710350939118488340181895458420055467938194307010280882182459154817840392661189620727764230385366353361005548233477284295164019243836903905923902210897488548713784890888239194358303622771169871110499326497256460749018676865956863898280506426034639537787553330097899301445997894487956764451115038282003273438682536428546942561426904680282391984885280964931248976272070845862442066821236571259353395106252380142646727279718512742528000961507960875446592529396058047495971045401030774619622161320476771060223197963029718145962270973513970316409060576989637028558641066034165673671397052514730328059538332876182727030518601025845574890784688137304086301297858758654068574039393855485105046232982641222084366769035148823547878004138909014082894941175953183524460424528240821379557687908151301741912664341778874779432380080916794855734685186170749075754370787997206824048719067631301186904814196287923482950256917815982526518148551412444957352133130333189535730563296759501724927586084996331192736837372367185469225580706669035846239820197617891761783134189385701717627937405550897813585260077484811300032138600459713412532292365420455533889333966321750061984456596375049355087954712230316244012586268992828161109970738247502610693901824286211849063662189702112507088522626576003072461723515606016388626944682856730099810644847130421946765291967834623800808498512804723100302742375424142824511141999730575823908033130858654570392913036266701864885263745269949239880758018548911690795644065311526769571251862761052369286323547083320078217184467216732067634785486214078931039941790645672274955709467886359856045069163371110683860459709513142543170652806993311953151218346419436284092094659798346590017692680132268720742703856833601001936927020387273037983743826665957889450155292983683598565034972749201955627640736646196677883595262376428156559489460455867130520869672379127279988657576230414057268878589699692311304890832446917841112232900588382339571833973205756737236493647398460396137530940385089671353087208300987989356492860052504869756041101011343820785819533601007034790159870036708571196952864241397185178327499836422009651962557186219599032160894283366552500561702726130083903858441366562869102567135994194064180226831297709483081681933644026915674142794627858493990900382896989555723766191846918987734476331233474419259128723478193343902376349126207809207095591173347854162302094349996973443082899077788825989113076983873271839081167620448602555507133805263062413527325337816669000827990637363968485450565653218818012465857905850307008822830797245108250662447996624887209343177035577793390692487579948996802455864842176613238285353283459924540468839787091588312303687804608199355050195252390886762096911152120026807989189996413853950625598863137698654727676401749459551629463425772113609385053723731541031275421611834643981893960821881401456341445334678464016363338364213429585433703353480807280892841129673819516378326550238670152163705850826537937865413350132231219588823053453481760292112193850455199900732788908250808619935558496871915668826525044608448703311380623230220857657202953598215517866168286942648438027468903254868815411192793588493521992482527155594406642719681753758553177956274515447157881020559490468886192593753308751405719697561588618785443103577016148926868765364355003240753002434294545311483586107502504485192216839412120092766634303925184179832750174175502256337913216023816906910957326519118472216123177959438730892675536926214881888605850920441598316646271698721613680429448475577440561797464320436502662110782981628638265502544562045282946758504385552385536038830418692688434216280959094139678766668806786932148908667647786780501983549785029343092071119406415355186823955730382477999643692115103026997165792224648475563215575541150358901738758915726102856384214288491507191614785237470498619699577866855078657519757740419141227336238150481849580573051787111983182165024862761428032794241779109017649169395318200603274718823377081360831474762931787522001943945146253434164768515472281376640422287940405622057397388196281478886890119104241954348457378013106337118572261430366181023489342642083472643434407229975436087481322318609638908553807222234323909571094985106072708184894394412292973258255170344536704690614906040893018304801126031482691384570575130494374318220736262430174387016926123883924256496835350501389531842449170338810955500627288452493787417707326668587169200805732026303405789226410656504008115840128914858669923721601491811946950320846966538283921629374834097696185440306018551825180020646412587233778642851140745017813737381933188022867733240080311918805407010535161654045332316835558916724761388626367817343616983361496296893677249413140956775486594283715432710870747088562454746527921886316706945786560621072606205253248552283438514847497324911913208886189003335061577813434473810159504655004824522523084657387494309337377032571112733725437800876932451143566040148099316545413632978490047920832422745035392698718869509915127964304253478288877689561974007919853617243457854131102024019879646863237840760725841817260796698660198072540684690749728202550531551895962499033437620909664924869054623109081905161828427786366153667661751949201564301434819816785399650726272157655221699181271024041799991837777075619913027113141042055138987123125050992646647275233084752553584528394834197695588029082253461434342563587437117049870811269899144804444514690747426163646637025366879044304323715256627992768887910018746017134643287602836259531821527829555005200779687166068167846132927668310552321435539171434895907747368986438289788965494169045318000552583012865707608283002473825201171392140979624184184454451892390374486337536338451252237028122080684628217711384011025891871048976758276561526056112339697053582797462735169173864154834843322780009216643168679158480465654090973922676946480973306895541140288160232882390159870477754571898348204484431391508950639671155376324985490445678874479686033676460449566736780777223628096540005145993596498603978803242290558882570085662052526743779608120837331182803241924883582346689100588639270976706935933817911879620960724085681539301677897240991573051293658094525920978463101488149409437549040318861292622554472218885053677659183005230209038654762180152274220777057678468258752545132101366223079172082143518263687934723385822564310431908268820023905876922889459068734965775227442150962411481277845164273274920614696694877584216967002903300779754010809307996036695040503076734383819946907050983010185449176216677370923038834393405645221762589036746722239927918801265444738726015569779400028944866884170307891906484597884620089450843162346184232084866547633767983264016244778050973573461611126308921995468525178049478878702033645760060993597481984098698632113508234706335314390698907086579348008055151538093775965903765619211175372308521188938309715607979317332919536683028550646851900265772458554839707594602188716188828882071612265724501057995705541258120422117068928339801007363901433611115805045297296439171120482020574588786669772767870982523709544172420362195531474122066376102562007266055476637655247420474448103060451382256041450969447909732218490391294413499164227546339482023612549068305675759603415696638100366931119174151728429298833675115152332496952505903488339153681292075758946967218050210050872559713927056512700365388352699309489976706273497970286409294532024882020009857051261251892037317264254750092033231458904063537628951786058842984672793413693300911713551682162292349787080414864052940739741515449361665044699574545846521580564016004500493572460081202055537559737490619770094779600008499675743879990135386690844558748824608925820880287812431934741533253301910280070876402914486194679207593993836286028841266452105101703669564496167400789450152726418705963785644335423172079100973583701832971167929692050782497088145865304889754764216272496325814938221444491535658010591759651799993445313897835407590790239134300389365925968828694201677543526515250794165215709561536637628883498540198069973173861592305379507248043566346003855463921721918685587360166652908813611816298021118095918819938169675206949946322921536020912942131949372654834189086433446117324925543409738692741155807595840590473577665035696141996464764755934498761216217452267597486028789355955097124177912684071264646915360847071657858582039129077184103983357416627248193419523138493576380202110996030661940464463620298102436880280067871225663346436276484888546681897356298062568771331722197747801732417404716629968994797165855264022730600601224143523728747650030966513351999695317060240485421310841601030209185971295582875220102875176003450180344376533908924200473925646115883500214041205019712087945784310303018645920740931581236106212862278499138447479224304363872174800589271631784942616015383269691791681021549303737694683635678294295676450040069878910163396175653099146126382327526584184324007014492327709780680782170741060737990804990670148348961781579929225214651965843481837494558074360104863486697974149318365088988146151457409843674200106081641493956859357413624448295900046396426928904260396028884134164036323723857185552428398678983072000098333710187991137380193061696992485010281185871873664884106570801578103732132243201060051605915585855475436339415022049365118602853180357546166526817053555666442997192403543721809490499852957359645956010822322061485061343196013446712535428439049604867281341583705630815933809351024145799767162205792890967431665719687146353060813177644641619046446612399210332779874278693495226866240962679706401713914654114149050072437118536669982834313686568094124377575931851482572942201190093620188915437279698725530040132410708575106589148040394739571395713452417232701183437230377794529292465070252211259055782460090931187394123467878682261509520301791798594965976326205876337694627553502058416901216971728795997269380570555421522618866323537789789871730453393269652186895746141004116138403751834192597181144979541666287295090629390493382600401304513111044798676223332431933577521909411789263569670800591049060294438246731745404211055621592247775027809734578597195368489209917491690062662241583355897647263195671454189919310088998083417028185474892952837446803240178849733326184690988990986033037128250496522079515126799029351425040758059558451361588026437614884858650155359105516732394384740964150005866952458526524482680234290436141289374669647759672401951279996974161398179217227806355043959673014693037739872319780996998813467682530785359753860840098356071791913440560152338538600525693356968121291124349925589095609645513373992710103165965021054997206153719288155479241256278834599029661967723482323003250723846825830094417663939636378174429219834876671731764065763552419918298706908373589750750457589944176278550576578519030700906498089981727607753510206844763280776337825992363673038545448092099089051545973324692800525366521812231678728564199453087922268118300456040394435633909753964145205317749905622249911393655932496759254755709888359703924893375934574887608977633409067843522590632128770618174872024728240275871980159129715879645913794744259606391041576774361353205943611259690912050879809629024150005499338590679018028425827143324399219424928526468289599917328947151753307180253485956993698524478768200402149619945652577166243223897248794707601202973515049048299289519454845379297427493610541070241189701053723419237671715579128384782957947082426913702165293579086597489886059249574710147306712691312333361032386588794638287731057329942765439453762809359669392976641277087704121541888188248025619500494414053514955825147511564137535427213538344129628188094328348229455030683596220220590417509541252701862861282849043363920677056507894751544064600700371908214018474140537501414762220490148552468147162241279528898247492071649349594353048694821210899966902448328400877119927759052514240484923387684525661967678453423550208428815518652214941018942830303592081069906143363750481199072205023209405387098624103976652942512203666238462808544721199963176226044900096065432872634545956710197822880316411521328261995405221012426418088955966862558873127051792403299517339361673597633650166026553279403512388200597892367897308186211618807387992918823792277849757586202869109408728213053134920298652287285701512002194401395180622316557363829508499783099119323631924260975472118547824921021335928540010804355463950546813385097321575107195450415484022755574501255670821581221748118721597147654275912598357181735523307248538613802500473029629901694771726036444876406979477450518456044845803718951910334026614360354436817913755444393297341078743245986622865952882921747222253327388581493000752687649436506417138668280766428955858911048814172217520718306967377127229990212363299197244563634708526287300229357369853946390570854796617501586572828578132852736696296223104511405508242395060456542603902754431258644467208613811051648358886479056812193162927100670689420005508680576133262100998159691067858852275520043975348821518023179001513851655288503964110022644099273956960346826538713226318810758636476630293037148140809885193458268045962945844606563382666872306129363298056814462452121832151387063006429034995939863546829610277194221505344430429330613262579732194951789967774002258065335169619049055185029941860684864591218602131898074022848133780051592478085519436705278660497352301146893878347482987921094994833791327191153006644594989901976023473306185729729064833817430505653494423017118541524780903346810423649992362421619463607335548527213711892455515836261406925742202694865648484092690901242622305605406983498294645762689900176770369727447860494946276003539715995424409717971289519330035135004269140629771331069227653009185471755355919875341011097549299566871596705113346875918438825893055476664158360174623034045906680972276338446554726037466365669548142114030501619834914865568489996784297847576416069266030395309479780707425725536609082475153360372899058868715163555504830565950498745033518987984740049998649589991468171190294473688126299103365883235607566464637381156938745353888834319521047990307649397822489476712827959086055312390348768418838518980189074569230959903399064677433650604771394375019336986788496327108564739157530341995423279535095923217966320264830731799407485027656852472291111880350716276744218704151181117070835595430613600221514156361445908549402618101842819301725540959763186367480199895736116816386005083606992119063686551570123586413271695106728226991753254820273047285706676361982571980025595211447736514397705067062223648218157542162525100727803678930855798722482054846856667346320342714696305159679069918831404447311709958762771334562660862195500919096870652012018855967057192269937357364178393653717921116795406085079056232611783776173422483493687825897576693417039596923451066063235902308495017545035784794970855072869671019564639066000137935671998320950824137414354386815775711376073581756380145014590623061276435803942762484704233297368173547339937662783156830045404892897586385615056369988868201063289413879503807008941906045357611071566898697011476491518357152854064504399687577976338881172162082188183590546466553836687412662879903917501217149293934199852348587967119764479745308063883091528296420567493349834265402579768308051995265846747698861700640770831000615910331088947604190960286111542212481725322010972005063424669862098256210218714512673722526790605835081895686727733189132605921433092597623793073780238436915030326582222894841909390485274009664965804759841915158955462956702381265883335427414813950600868492163358441186794340070615206831857040433803825195072815200440589443188035850756453339047105713628446659410970110002018262650463577149800774999965672861802427716895196233636152341063991974378999010538034590580874238260590027494065526497761165833586080337154917766067399732738131907450699716098027102942499581932277936523937141603908704015912531356067320535711752699000674216521118544044853133004801447023867675491900303910291066169558096386216927838406899801858485460367323533308029753761021094587810386964381027212914477331453222005723530192124898294410435193682437094979911454413989458806071553388846133123899384426014390069043114942221742067835632295104962963986767354742275254102493154490682809770743115867699073425496344153349164797106506598425097122424491169963301626242647632697026407360484476343619478121289624708464348379141762627864722497950597090083838293237711295443661622387893009686140453863981610127750611781965075302778623660527573712309225165516611141622141401405265171434119878151392384579522896427260131365771171755791664106933610746975121780916471932589148593543156536188800284163937337960588168571954691933426018277204371946365283386704656644163989436004396806925186218021169347021712367740451355913922025529433558924250374219325288516909611656188561447500560948915607274729794990055576580078854619632189489959285069169611007779027579765135263751998826552836333323675514850043220132823012359991048989073320950180956986685827456219842280383499964563575613497118938320942625769654884967453940143054516411676151179732919980119053804737935824299023570077088760936347023319702319128130021048354424740258879432913960931186415605419103585060274598325484091774481484268557158207956130977124609189031371919334915763901178973741398290805836601226958263536037311294071918942121194136887707512347369189672956004271753329792338891978384869758704541551231380337160031928895395508034413498994503561444106987399911931343658815888373411324350437241735652380522776443392363200028244967519381816288244348853410935135230733274699072379356139712355993233764975241335001358027461944522675374725021365455159456828076022772413724060993857097068977157408737049245349805637060344852115949051555133860325438968547368213597467242316165710413891265271382987173431509310899007650765199523570192549642491396332317141344282841173937038569604644201000572534732260850229695322407067328287259715443055706528491604178039832348529996681343583290786324247351605516527852258951726800430820010372497132299909303872849191041541940464669879852792991804907857482370103766627570241172397660261197643454757987957552425919244210340293866377726569110464982143817555306901757074840196368410889527173961130436160639570304316394340426530484687693260145064287772554411266800855580552149860320160813622604851301800751554087844288429877473164523289557941502746453422595540675779005407297348130141789510152164075031348552905722142693258340186139581778916282674889633488231011216126246536388500431979534195159380710670951893076595021063042873931310411803707560053764655531361114724403846596049574718035890402875573858680412157692941320102408244228842998928616802453447703079210470604962316091025395936671240862706208069275416761288012118712184423297754244710050342255525427687832879858772296748047465332153716637923064630015779657457715266550559759639029071752715676761766777490826542306402736881592930745359175738444621714974123620050219853913552617497669293118689737555766797115939579418467793035856697457140085019573819087887389132369028362086489423676563632650937245288701594266352064357906651927766202954838312184286170484199929826726723821046212389804922559832393499478940365273118075240546343845453852164727673716219979122950009021356060970971402865309696541988542011581695847900874463595505623108645209003345370926512149957012090394370791776955246306904206435896380175528957280596040793826160243338903540015165178013966382162531373145325925137781134463572050130995818116671850113881919991720715559216801954879086838535733259609729518780580584982350417976539344567467216803651708814738370918349983410397166046744370751134313148835799898425621899377986263122184282759072448812896174711120653002178623867614806621915814033792186563240823384899816653396748387870953219757087960781075173264966318464555613847874077130934017817575595047773727348195254046309583563084997403689702800362671452464373911700191858100352935028829099287152138158562864631128941965364549061619214358569588530499799987578798885364246556051706904725419356073090434378843594972845716545116823540381824513349201765873628568007101262182835719448442018472907203378828565885663602512595069110670253474199730646532973112178595510921414071702605034933691173908924219409618565230345904177972509425170695926229803469118431625376335890597673446867861822957887314941786588130700359932124376385947776525608375668120332683854153533028372635262581120507364486545188491559771104214463476443982623687186009876914617736094769537044923180109970705378647741282662514564648619163261115893097003705771919594458091803875390378755941636519580975661567876827357249738832909335666604290867745110714203048637733782692547970251833982987958316231060222217115171336618470536987124972694739224385266325154457737927905480821773014639280403474159248288750072920811728989006349767231383943437319219842314005890419281433239760568110870924186661051964494328071440173162927217436306142711870267553671270288381545926817140026901651920247644801320029481133182850803050145689391084404836391604605298917693057089475951467108004042853479706002898817382697588387489050455611864414628734147214483266831935381617242747429366143032076778597454154202694035588100992242270594712680397925218755592825327981832301853851534064888534725776607068369870937797657213230991642809013023328319167150953419536376931534196713354209502079884782254936928081034460933689663082121465973880598801086107939944072474043817710745481615970744274340592375741829224502002072647738299655089843474228133631051562560717578064249435479011955355376964940444483462090486452672142998302337497704053600205187228808477488197040586773829022224564737113210176146211296515862871840871625278517682606344544055370826855895906165956192238455190164754655511658867362918978979700188266840350713671121273837472479599791786155109869846363955638971817194125679115242570126458241469371128427211735774451579428589588735266792399745339436304384770110102381360861385007051999663899654059795310207973569059263083337168113959299570163007468216615414625613447869624447980689912631618165162708239021442900345308247637081761175874968272658273719467795234789136050012362630665434984639458356327447068373844532101126758205695469496938186513659828866451456476491872465865173766689940557615264012886622153798922695224902535900602887070467926532647874873397637632409869667488774136402286250534084805169489863110784885977264540207016344811447062860096423218720013231433754022531226276431638308101191298431484023168746000747243000377144491144121837495300455781727730537298322144480563309522983142241918320872649558841313191387267575315416505677386356230000634501334098819166746540528095627159871319403944621691010191774945352972666391868793791285957323417282835869867806047266078261228667604794396550985202691906333092375272001915339996282023715283032151480446364981495334235478030126381828921708728143845932761338305315398712357361741620178122641621944256487525961173966431462059420711396536220887378625867249965705469938937992100740031658825083415029821213451247880022465981248047714159355884967708522292508744436920344794097367725527742938504196183249391322031194674045732269487317294272237570815502001165820516225121033636781994459643605678198235961908764940542138854788859930374618090351795419475051878411111012181317096322151205937199257191332005494112536157089344425054057513682503473256474564358185085133506432428097625166477673453922161856400462951350730059664017610363449052511926535189646123391645227507144560234881786389195124949733080329081788245975738505448887492468272996253927637217055628083899886293727915644595589532841818802548353111311142832288309571594697079439867811632008297744994393552102611852527266313030405410868908872121881198329359172719586279859961779892717646520750161382175412854980745103065359708946680848284069898269020037330140373558501350444393317576800370476299470960088865875178800796111750411270469269243482944996663151504534461911430184591709800375855830446735428548518659912039807165404625953318850178541596440118120632801381089587393408014702707377630113958538203371475223389700440256370298744940909175642879216200199830868611344474493576933504110218853577885448499658724956428975411066245692924143859483511533599213040199809526979880522513142007475455087090292578546957966462389266874548701801911539807606945220172521580825954672619541419767999925732668528793635748694573965032157305173016154860912211634965137667546902869196514020181596589216836310342312703103385157995667527898282478467653046196762905163739674650390334516244481826131107694387328952228350656941183850432895689238240652574511476128996988408509210300076914370951468160174080461529798644581293069409238241754391116228341886402567994703001970643314102175037951104634240354819739627857039506973029216032612237903021034223304862222221958937000552301289748901701559974169824242458839617793377587117690483181212474315763178371603919694346034192717734196923712460928121758231320198434955185389448016308014383592499546835681200771714011224261656448609062926720014136333008379750106077506863452694600010058209415608323744131409310657195500292898746979161736052047437383397975392160052952903608860897656361011277259721768088488487950328608120879493616072693849350486825860555387365598270101719848848759740881124346863162426728729508103486378428229577093069857603984054341897477194572219076222506548766707171911947185255246037549839463206789792718754653257808444657521131574684481661263634799903428651083435689895893521467814476002043579225192659109772878914180278070982736058312017191809613389339373729108701541254275847487983687937779035478201133792928238191170766215694528395550565417810543469217005199289163937346026160170643815146245573834618273464390739704448277218604958113537532350620268313076690073768004580496964286737807148477276551183311048739155122702695802362511595754622908327412394340608535759403176875644445643763204846667338370735629615011715326593651115048717085774867635890758807179071668587837005836633083539608039955380912029493846694529795728783377286875848559617043820302478758505769521421102986161045117135453526746091922014640111382763232679257499777274156164634862058014691124394612462849748680704084718140499878971549081314828887446446750080430340485344537716932368810806561027669278469626849136091668301773814051948724163346700564973191582309918451396131790640032133677447346914114849207588113263778253865282311958397860336688045248753302090428987177612861913453924693835119672411197849441453370251167574652237333279944889091314363545710124968839991599605587146645300279605105554569985013901001838869588751916020651011183287531717801140768525348065331006726565362875989662203218606697401787547364773087123710236387426416069478494739501331360317791561355080964805097598045954236066362859958613998425432189979365151897480012149762942686614013648359325189735162380771209396347154988054629487501719097632492963346716399530175603165874436031274370428049584860617496261225632866052552827694829329432661527114565206726075140872824403902927016973365909276074127572366676982611730983157853466269469785538040218439824069966186465968701204283624344236281055796546665066345507339806161845605394812525235674574727432382898964328638715626567553169582335614486024539370783124309075344100785678503062916122082267930550949786583433862527703005511190392382239982367960924592599631198413819414789712676004913244946444065070180944267804410763071762540711991999157133053244204584706750171077687890034315859102494601800677003425568347688759644587923982969586624839614170943479070846154098217341793754288226760261416437743679614272599099003034697012527295191789024602819736935572879390415538108624162759509067825736575407719158852074719608952430812460293084157933091092043088861229778598306680634429652467935054099555482808089989116431290638880717621954039343502452024055844753400088039549290056476616130544374998134257018910965870785824771824884595284196595826900986624918839487901927319730040249396537431684570926501106148933425092721171749323559208175212277012226291140244300422525188824307403759721053215479741233660803645142882661503615411053855555942808533808211539826059746385864829653072706334380187469931342442093033499563992765010339877707009804039258666410989469139125424337448751651389250726506127755308574594668366270605566621181392517165221080854643298991509218178519659756868148337783801015746016790619908556832150426343537949032448530855680717929614568485980169381340480042581425564878416693556226077619419572967401989656587052815075690332598109609901925929659599732453423200862839713208465940092202618385221504106584497909686661186755661565637176584456436849657535089058081213610373949412313040662153507931197862185655489912628418961026840732144599523998337168890663703428317216919129085280077159807945258387230019109163017035271754568573346270359954378997053757489076471618422120182031339151930464296153222527824555861778848154822888155517177740587661561144441504977341403817528298751701384861111248909056135708174031114133009438785942573124192579265281846491017010888150054547090284870285602253823351728286221507525141462154766068728085303836698411088353496304062323925005033911039906330360616615601119948014248598689501634064632002652628173979787616496016185039018825855331941624063755303164560503631686732533029712246630269854958358751665540808069811881624541163307575300658792210357438461797187071713301106654573945770499446499716405689673440774773817120147692530134840384009714693914106627773871503854991892594339123363837184997530971654515902800027523719539903234265005295523198794949599583720883061534407675420070000994804175546222076392598864219661429383529186155938221143665690745915903444134056909774929349220529614852614184536090585281622775979227214682147774747634387434814766140300088949227254032144374084667565291671771860052877439613443243610455716133218768519205355194926914939313713540449265810121611337709005866883593787292829734178239324455407489960497470827482006233369009508065741754775401589592434856246307073508702550347459586131675044769490046524313185111101498066996407984917276188973656600615408784827782794389101852290570020282144358088939326620028726447998455071995228518402402266517408080795054366195275589841033477763950089411467023715378870804285483044636738386011771932170666962504536175254882812019132959816404638840459863583639762546053736609029753051379389799328574877751184057116005671886148799751887889008363664533884200773166676466637207693118908294502584920450241382378384024163971545834129985724503001162736993217711167468488895492103310124492365123769810091392780449879618777915161362785801886639814295405750642051997574342585650259789261719013161284695784888736267469898920080470559469005378290983165334281550140916160519665875293478890554988325981116261472405732553400282355711015981435687056819090708948085673152778882568793149042857453849271705018896785062623934075723961234304721848583842546735193430240014671567933876135896647841291977931210515008709806385964858447005768392212552201637133213346182847821709963753333525652015195965602212408830671767540987474909226642371789743696898907068319972037616968935740875451656661751952234112055334769084606273791513882463193775782423550294266285972642413655888999840027752309096680827771906932557729915786141269601019138348813651659273030905188675457595852054799609108487007764428206977292510012122778633363361817141412031299621773743305667112643802834734106520631755798425943902929722240263481228680786708831665124786518182306938473394252197662259878306213266591556487395485075826425581960159671454333760251299896454221988719995964265952578142168868557198122653294606650821933572801492642250471335943253072637390320427723703177349939568936582385393934294319984906797119191132825136792125348950684002696724908948441195615095917020200881780257556842428650655118741822616538180360940432531716815330983902076972357449687212684078174304973199969392634621196351984989917701507944209620861192712245524423976366647637851084911474922404075627914309487649143410202112327319600552920312617284001490644557984007329254642094079935643631022313440331139039612306350038275076922213995365597931319797772985470048772869209546983925071595530192680159810599325773652576895903596068961893164933769901716006136648244722779090050734280585933112195035790892322208531790750292720143171081463143038014836611393273045912531418917276051186798732875357060961587122691200833142310456278305663427902431739609188251245068719096087433621036865647840632682214129951176480936372534104975222619942212130540807010862837366215462061925332268611727954388947581827525118021028939496491430328066053815965179404161859501907888666067934590951504403547915192195680826376459756115480035085628878606747569945656967557672251094785749871237139250870391914363264923240263287789809164490780629700744982870513155483523639739692230138081278154485769745652854096090114131475513387140398399152062556735439718612553948919050370589140605185809644650484384681300565028346698066108431110879621401526983770025113546465616040405808234517946105445117898531060871177425022128124263414152092684233108436130604653035141280649004585563121057095478833903218758872029680741981300222717453789348009046720805839262376823657600954180547147027518640141224611067502955703975735779692684512497554382274086671544271933917686681532160700824658023279248522060275518699569044886155113074751734460190566198759208732295323704393260195540058213023957268882102860891581008039510233822929177514841029843900084158282817410937638967096581155103067517564316761676156575580371723114079535231096312627348735992095148565283777779710359686724770707157452579411276094491863142382055860161638991703956588248945822161748699105219426838863886885635202847263905182829231793285748917735221296471573702315140922845430984045395912097844231555837464345103763595310103393818579569031523520176694035046455485404582386232904585923739133291361639144110583020988335184141329716168752055208674746650268019869427328884521367050854609006903554440409298164496187082902455002302135286040552971670153908901913486460300834540592369386376805715050014726183247714109709233443145730866718333705700008342997235055857811617173789390336981963335429688953741201805812323450255429201044625091167209423065523327724446216561801295848959356493592617839405896683258297151378387455949240319469045927996767654915711751668600918827674955194072999263067747323567429643935287113985975335200479793985378246576732616157351884148531818276735071721472941760470245191044336984242524612486860033463702768754452894990884495654453267260963021916140729722474107903156781822228508695457153517544126261648271019068349287858070758725754170476772166658685335716551485243211530562528839950290428623906821420705421033789459464393922121223555164185304210047872711447405414590956633335279611285958176927775869329591260330572056445919657062028819453113268427428174442041553536842047464117265575341696503407226353772113016863108204123233456453182611775545653668046982289054673174316419364087630729344716653048137733564786172842768002244750457438369902828051563126187816632598500232237048025125801473532829187199601784690241430672446318401299368016026827196769969713179046639948884814200389980732665611570754308460802647788701517073429545036951735586949718673447952112440332620221121611472438995569740740170451906930687172777131205395103623611408564979031424644157980437436906553416063630946244139229622772503881886140466613794422980431952567735341440624939643237337383500376506505159630049349229272041083642552424750955036929620195283644397955150754514334921558641209744958225951796195392912087914048033779052459520267036776846060134860879086888182865963522873703312784062657283970208751775502367095513865904152160899158220808467956635812051792418015674357343200531722610206862068321830262169639063314690883674526342132525995365325073031669233254075918394715900882601218562482703623572186800443434752212111838558636675417206984845478372019227000615101791872909257966231980311923691379412727222262407340722753498320457748394813489715052661306822424247867520224432022123874154825249910659827985321478801734433124581507021909336277026345607815281332731253121445243620193591978144177925060467863733455222441667918312419441457229195302330953161260096449873056642680169676674719680108388614801731706928857138854347785029012946596695730127086262855029279027432581713364295054256031841590732650924119087139376849438764704446072379137457423350363048101082084944462222395724313617583242877934131293291612458812634752377317311536177205771250823890151635072428487576403186569207598994549832343612363986403257154037234903423144918740360132481712286697513050070348346330350877584200166819452711570959606509867370597155161489249411307491552760652859210221092723902400992938597199313777659072759989179992909185882001166975491366526665050816847169320075177700533909215949134190931261716086691009850100635904214008620080279346643629522036359687546573000414200302336375300441786848069599218388558140812210963424917658849642699508314361374277586616931198545161058025085090593450476131045349931516167323342714804010530506612909213768534106386456678487254063593423034713184590409302251404230612050862106835970403537329070127545940499070112121840839915785284031010686229450761263167930765391773261652926459768937269869372060801165858103377890464005079014052946353649583549648180062768549915786233237273630241362017794657350133092006211361215725253197482770017413574880658320883847703862759553574397839960892087907945707610602922519245002004097002187165358467954729584373367683820461997893432235700580751775088633126914165425315845150111467518111388084588944093946886122451117454924907668384744863780001151450348451661405986965829987603183635075396200450055519347715541706324002582917755899430748735166634891262252536277877268859519558696337624723369109798459469243330566383515586622941986563052118307040893874905627261840245492344388588181701646663283128043897969043901851856609082264187420442896298647951169315938445690527979053244548091038489730875935205848571474096709509633436658025333985655062932508667141794030275339047262836468689106828551582166813294021249593481064589290128502988341142047515356734853853820796942393839691537736944940569916806688569434264527287666521015897040622279188525416843357821509504107743166265465808539376062527958788133410312842425671732316154670728903750504597924490900140836180329551848591058453224345715333921582801802026236876298568068598280677993762208216454138676651879398708837176280287121271019852242000422127265288446111468960750376497703660177136214401371451124511081763666757641704304490086171714812218896450803557082946111863595334201937265412241384722775285397055553511422456561976765860012898116829372433431631785709404180436284098311851727438089203977853400998217371538836322064957091858846959758073331886721510088037690016465151304063627981143588622039502480050987000466620449758583547118912694852887930238099418928772836605687036340026968893236590730044452913260418368164635714386446239732703210958772637017286051284713995311342970108673759674220043757233620961775767591827041565523374423883478492947429490370660202020074351939780086114233515324106222261920566140822857036264061320224446720877871600333069898501602737081109468326703921701098927558220070431339736352584423798397697213123754447123639748968738071787486837724455348937572176548338073451849878419474896623936739026443718807919284809625962053325783028753804171286488722622563390271350388022119639859831820628676387634946900999186027970289829067560782977978942465846606451949885966095530769322330750459637850818916696154636590055437696079960695493303345236510450179705415332550050297667900432139668436817015883255127794766904584861759871661478683041454600286163023659228234181865870661344924566795399997299907952379867189075397417911519453827140612060111843749171280758107545861598324577000849017174851658450000753101974235627639480218960656021347195532027273261464375874994458381850339803463439450130411946459840867221566254262314699680308285311621434973235592814546854765967313204907280114122301257621654378967730768569260392685899237526280277421525613242562161172454819551707032393966047236738113282980808588777304081783561690725546071669355359077772660369002051217870395505442496087351047636233002652956678749455527598215565022044925151723103095444844135648433431382363738552145548412547603100335367252035923206350584482845385313559349505292163634805661978590678090910313413040142584329211755754226265016049687947215429148575002268141960960208656624517029446320176115172383064300040679778210788558536792278907018593076979890864138441683143376422220501669357721550480032324881412983594720339004400086451356172518709829158623829587233959946212406361957021762610271317048051611579914739036234853478636701301293846877754830380921797227581077071035981463933317324335346541001779223971473528967318924566261446901001211942928609403807855645431976047442872433679084899617896103595155727800489605546966309030294208624238924736208253372335480016226069224505924632532365419224001745067544022902834802514967377925704398233534929445944351426072307778931392044931719291396070301079984248197037466000412609561720622515026418110599379596480167780829912157626649157182309710299412769519401150192130070934611373177613275020503500954800041528789119180167299934733761916059714549946258682280311578738194619313742559621860393404604076148159613957435455737226918554596978536017738226072023231814049552135796085755084670020883954092122541849143445432860221958141237983972719383163635514629798369181913091088460576843143303457654232996198954663639171667795216889102498168899634493512864656435810712933282882041352601947155795808952102948829263123926031925640346272200580086060796083270403358480068089976595625206246586544355745947661186932712951704840442042407542557213356151363150261610920266903497059916514891583554110057446966013602030873626291948273508458991157912286171346189958179261415950553647904922666116973968604606607448965428619847290480813828367071542726258849120575578143910269335294765718156964866688199628623778262092603847494329329455712735467100187124107758241382703661528271355521235214187322547104203109945931801266796757533797144897763113826919987822064397596738138816510615340564795421153526845504270787123199561150680369393065012267316302297319294438066625018208187614863996702607683096436330493840650885778804364561370532265451072266612139060867192640494496769948355990919181147526591589554790353789219174739008926787743240363005742918805205022303935310781262517659681672854622427442335543278034076701325700729787543061629735428738269340701955712474607712542755923137920739331088606676496941847323711859592741491512220119355571158918606365367465143908854705194143276241481962951890600677163686259656586117823639594554966954432144857243748201719711768162025206623935133262776334523299145955132230438723479155661731927367915910631161968366246812566433046776709420704903497567165179389072040897097059016912102212885136416533656720673342974276793273417115673832756989787421401291618730513358078137611300039663410244633392134628985685326295201841534684719648331868377157251386782393274867285325967745902093959432311446750104193578378385965003733320680770304536292807398069644955379776376890220347004667553650855825789953627781379751518583198497696936626404207509802404757711176659703112109880167542021456321269686425260471650749060030894205252802281057530893294606601353673619904669265698612127212830530086825107529842104223350985241363659526667246062635720338271326873400856959821412770230754359962580430302563949267780375488442669841302390363512379251458996043092149325691308363323394932034076736008991086101948889772854838637212961901819768399956390378763470819437879218704379400209791064518125437137545541594290054162618994039293867386732977999437262780028372225729927145288127274657860702942742950115465004144160059469514435466158349321204379607363713401751402609141600400299889994307332710133344356960216347627676638238210631012036915688600231393315324166078382907913127575276794688636076075003683865801796494716133867816605589227914177587143822170929129541692473611287895133839364648411579080431854374383828968326146108205219041132556223218166191662770932907970083647687494554636851891537002295704538639773506310367006661696846022073171999220876293695874309111238683013668609606765150151504028653834279204660313663691966494581559890239969023710710042075802870958605359262252014902226685202849869856859543205558026965227218860983523914592404561977756080855187356500170280787720869711107626754275336085234564949650806300329840454496451567578372921069155772356627631895674442246168125622366025703531512382263956582921995550381544224636746938155305658852253431197670778912747994080158960245669597491078058552634255486426652085392464926996063169191900537307978304999454720818471507104737127543412253441922788413867164200100655165125122895953234616874704770843073636791411688654978977299901430111882892063310718728701171484578558486932936559925660797576663063664123642386655324559937173723547037971832097031363440279847024854085036717616861965964003748690234087967817113979087477753939146121731431934767306338327695745624629012848803620333347599733302529942712181383969441388525949272323200577029866937809332180754486764285030597901165779633839179815652011811751850274658802580974285341530959832514337825466838733523119495392135418891662672545209065872787687634495108796631681990760129480898662016601650929651967964899482261766177777557563509862245052947950785533740361634665793145837894903153060418013295962922777900217972796588068142370629037764347693394133959546175567499774702621974350611720219156393526981192343888986395701790440390086369833553063240609177297720166459407793252607406096107042801039578676801865937179632742455640751022305175774403462747211674904169361765782014686103801009605415551965447445587390104441380384232041656443190346581093142033798143877806242934113948752558066014992891301183610969609078748930191166378248224274028919183221124617522607860169875986424073265960836813415145262706832914138795129531136175994046545399686783160075253088568050376606174748085398578241403760825040723267030904887857497645265990572783986559353227721029822455563472194393589504837721032251392608846140597295020762767929949516898758768910714368986522919245992751745873401355961009894904837316171222715568823207359341038843599310120178089726598168864333513785210792265649637953029143403920808189276589416643047241506116952614869161866177163758012902993211773157699063861905101563496035173105167197361201929241708703244786152796834669833715603470289224309195224111021972611530474781634572710483642981901650212116194169877690148902639789555059658220808739618988778085410074149639269609586830650818927689362963257000358604789225091043473484458718404656229021093999673665313592945927326946724672109155088590281667524560583626604054822184840044591914072850567838647902261274451793791187094015752417781231964432121459010939529417639311873665804796627169771152552094320515420399266808793095754640844735836207609283935140092739496237426128502222509950132411780483576164421390511088039879698977975611099201233792674604689131485055794100148022882893268043781814679536969629329792000002315094397227950904963992570049241587477238326533465700334433673034427095681255764285290153298071301209394502077032916763149786815411974383360604759240700056002731205972145869252330803016047175224038541249493173418837463715492475684474554261716515972170935913843459115111350454930079785208435579352339898217487245353136752285098789728466796319563025989404229049908246285221625772726057151525239694399659698778067631811189845568605079274756345630179525864424693086849278150428191285313094531516232223973422396133991021415702777969577085938144081873828650682015453864661319149794400922651934748529275219984325411943069861428678353792070647849899753803314971643992428218791711428642591028452437922747433477570030189819431979430535325365742556427755137651654419022260036829780453272592453681995453983912511013394513688862702496368147375258597676507263685241667410926805119766536641134169550083752822241832144082936536346812740752323366892898558168175229760074387837529862272750538518989398898494442591900172040953310587193408961552540673514736119022756439276337146033303763894171325416665987073452747372119253860388558049022862541760735810684825255620054299799228525057692656028927476259621147397166373696063318367473032001709777126780679984521705571002012783891117991507122810104916377963868283071723332726552032738446124886286443900966718079010344028688042702144611577424023691429301724013001073261682205169517490624043270195431430264230691459382009764370216426106244522883221731009847084049267574487456369841608813179637816198527413328532263910845818512885121566193633675743504752042314637382039676334438346708180576132712641461481269262990384902362439105686114392867587268205711507673380609078750808122053482057180328489929366472535151850732316141193907001072729823502787624699196737450682527190098802578743015094839955350922492901044243102733523921585874773976165695236798111735297358642929138338640256480212805720143231301399481618771359928901801206136659314674380978881885161080894945200961287346032345938440929861772526546020735114951880133044201472611525190178377723212142696229260279337198562585836213337515723316488753515444579004654818259331663323183957267381570679996683542521451825533294458031433317411828863143122564357475730125471250790633020704144768858896162451834894017422403115826629457432673449032464801815089130866824590745753722705208707996682245601328801277135714871604762239934240854286795131889457809361069171940257394573812342931033067195254468101837071811218899476750896645912683948823655461999150993205480149705308672433909022851247008987539043257355925080878651796110352383745291882882527713161981355376558474830505957687116907293422925884052247662809406240946744274260333064615107156280424699168136345233833685812559857948029123099471587587894424113358540732512052492946461485947955334963679095507891315226967793027292001191087097278738800980970882828917347723596305038617210344388163263858313881755631307916502764327702781814491190581815576999724064288353515977497443708640872204948279065016280980592021285709946902332011999968140726311990409979606957956933287520426042632223260432635845659669229618395298203867925643572558548980043608528828809563156087045048942364161711706788547139629057985404598293249292995424790031052656360918051578630152773334275826997066165879429487246367537726837062625586573880795131479082623969551352116629647432808494882318453948298548426642115456777508741313017653324604525128074327261476367317583277335164887085966398973961445136736191251506813411668611648945093902420273056189465488552535808807029722231882904554201542767506706695542024486538142790660781706593995123126050538688305409019290028193433096189629592694498468514747325910519138869517663000434713786140926606400580853970397289570743573656430225863014905333435447522868604849299911681906023639391807725983557972503526944554812727231688633795485713066225657926462201798561863453198256571489299835131030495231910327697471801385362018080105322418582853442162697471695204660801797174799379272366585385648244759030805666326495835576292804003915606083610022913959175230569690826968294814295260036431328001380992028363184798788467034503119327042628335976570215425465486503754481148411885456448049834059890199089656577945940510111548310686868711684953273187411453322427909550862251454244151374192688183524328992755149655077809519955374186968725734877112029493123089676977163788861993812260331717476881074479039780679781159508764037834474436177655590591463410812995319649660561686089782282354973719630150580174760653679306106740001459046451118114635065022741905327795767430708358830466229533896648252795890390495401550996715679167084725535036726789900559731913844140483656532137622780481758526545856102519646427735033516234434204925844959555903448360888093562380099172820535413005461652536079873350783053091032720446124919599314139701669577212632597908939200082453041584605770303934366781221940732708977751794759392447830983819602133764118954292103612205179541424851720491756129341407652611479596353239569091854905289511242369764081804997870854413824600017795296268831060340264257282034061006040634246377779742046180343346338128038392587940893598100645599140020496607385934072914520827481445907352656077002917258020095148107480576266937554606070042479616917356575058318603913810322282773693462022091665835580610775057438424118711857921828824700979873304568316301934319094541091487752722086485323437271258495516465241597979947917915921620270280104373847509456930771679159368284689141205518394857977157508970387780895980874322075652967993071193865067519049585913627657072991998762189275371945197158045272546418323639007322426099437151201961330831663190904093561998316803073758680219462811562034746509295493586619094980838950477689390052524248304485710369507288211382659644684011257524755128532933935301909660174233256534975718030435747249787467292642816579799108464555510955357456813284106124024529989247986324045274346030875447840055754055698370046975018595452899205583630288059076452463082372774751416744662794239057942482509266141498916124385640088509412592803400462272203643146497476334836971897203256234303378967613814594016961309825720875007908773474588276110825772047670829631698456623061295273107594004518106686732880473458122012829070628524085807218830434463616592635849103175941818379934502748039563051820887407775755855736523308964451648634686060293668926783441901889006883444852100323857015933785012642526534796875693592110611937943204871641407231925667676091597824208032084876101495330522752144808767931417229503931878867969725704975391950922921346605959329008929931583564372356261355607818702197035974256106587604410071902680533392068811379301296799660402511427559417227046994049440511925996581235822868403414900555020366805232499261731194474447706169674228542346670100072967502280585839480528727598426336962668527639578302865636617964054871335089327956751995090318326112361031689880972162632112240898155550563373402131706915182822264496679560978503203362686545904001262896018546315416188119878005734184191996740062133277609714522659720126633686659775397171115285839081705263771870546864596032732084801329128555456370249959707708819339017267689344975957000021235237332305081382760107401884794205370329547624071714177164545587568999745740502114938337326856594958225715761496106366852254130962066374289267754604767859666440978348661124691071606013903896896510258559155154432274229296170481163901637393496153470191440413942892073237692914351241601082582056776816857259721350285738311357712896931967374179849971636656912682669196681260450564980647183730055606257741296984814550687732412673036370138593385373451591502852056684497049262816659397943238400461846562398034035525360769040958016647952102278524171886386310194139479018249963943323659631046692033722923024121886841987726422024149786481347527269877267771925356069878325558898353826769735084654005235312633987490927351127105446686591355244127657254795696885721222603797281906007493741863650088816682052901788198201993049635102324750235966076456184895193308925347281078529210026885465021243882781138548331183799437121784691621175277312987208390170097301811194022712386717896193554465056711237078552961881455664434082013828481097140783949542528502086487268441509879607819930503691366533303474313844511611371882899234159383781358386388524017940925008066137732621973545537299141822520783684923247203235970403209019517131835275557057933376949296896829904407124701164989702427203708873957358429558004769841775110963757174153408143888649704628419083483045711908853615918427788699285835192668740691760914395171139446249386764375488195300119321707157144439004983826527985788953207227850374496769219689279510413254817585525044045654663875552812374624536964445144489767276707298144139480856276995726509658538038051823236207864418563621562030200360268037215088097621908523278157375851182151890195015492191911774811393824188991782012260667414591669480653038001717190962168039497609206513799882106050400147629713091904052865828370445103107730733996141112930227270520676834995559013376593907563512934266833106842592572302854817741093221707145649365638323636841493437730629044917643721010298466142708901926721239632458400304222497711742788328665487229975564567764879490657645276973382910229995055952408198250249360169482211354147857044078415360429800675905974944707211525195907591336927502557188515873427211561676106318362082328583563669260913409300256281962045875857012925279266701086338551284016725497814338216591454067542743345236088513568876291526486438988741835556439724901518142893759758565231565056701701614741737004786904265847150953378307011170861421873530173624896252524782215930820741297958463979672869789358584059922222851641848249358383578121798588980046485545733067847815154868932070491432808671449847944203244409928116025843140720267060101272622863209745759755279971405813639086862811269617800969169220061972707797963659094387958272991917268604054238120180857244248678697785410128226524507403661114707908078325589699019756918359318030700261037416556474239258166008586648673954157527784321399568258445552188409892004158748039024314995262618933625109584316689734571418492184282507568859911452688328889256270355436867202232509667598028558701739150593052959103961511778579604493096090236505606204881285912087236795675838981603009284626927410116146752679247632283919789163745223277639697830595180489288799925250954170253998365432294213492751690223266994930321860749293644558162388610708477544013590947410248252055460413953535215380292719206431527306640358748759472822730388260793594295335272085687020688021465399037544743749844721393463144102831002669217812993666006870294548217227641131630738842786730944940351208715626936557393072968503315695340977276275054754986965261407165060718392696401003280755526175192843182296716841136246752290293249825492566846764823378269530217279996833313403993372050006608341567657497620954106162503294210904355988138985813044876809103840472994393833299463208605710616197215022365416633523898924321596388284286355471069960195680974976530882859191783921581538190779001026260343749394999586640046793546713273770477857886872023797120782668243255018833232361491750839774395461841160429178144727877164798870148949777711436169187815770979374041505293719895165678045611088054440580790072433430305226537876230098032222566235538091334444650834996520054775450897321656249664316252410427280996652448537776076718617171199898372254060439818847139938851123041541546676674751789700933503438013655874236885835865417430346653753365534189482476956580189323119892798020365986245866048306887138866624826745693137435866490142333716585388030589209905060969570006542234932905919725083382107574910234404569465138341575070704694889832884590885133749876685132283592363197478115501912506136164715592596576297856239656880944083269921536202049453381921245460436087456237171455817711317399502048861144773934220802686489529044535096208313333841312086506230034119762162136086462996350696354063919865429383202675512184980845241941859881688850900519772726741008214953165778426508378746765014612691028671387691171226927832853203778006959027418514228668106283080037703930431680922536950030789878010063890734174635436465453062647263884591073017449125460106670076679998291203107803990760374555224945823326643112761867908538975393308988627510288018387926025277042004834544600302554159840859330490329211219501438712458874507824573566908614003127192467404364989973996623906300258233003523954134175804596895012381079781932812751389390499281564721617833726202888072545744395872378635780232264780971488809986413589578764253835456411948816193164057754358879549007605672662721068771160275235285445049911941826863101806830825389424529289700766186695145624941881311573399838743812477795866109518629710285659455917017761083030027781561991512294936301063337576432460338022940011241165647484151245809617456842496731245135825473372563959705713048887769457318760064431660186239930149509094554985997212292424139426100489542240297153386776492428819381506954932948188137696480797339764527532023324457530061645164202361038387373329783129232328480017758351949799952169370254436172897044842529393018392962832391915573319849793749148547451437952712175119856912137390117424723595022251201760610135736128639159338291395261171944143356843386137907471612428410482112900755939300779478312508620737578335468865556673572376753758456480482537672569889016342531895700278406305577233823924677762358732741363973268217081662016451578571679422855637179802458198253815541467319582491364711992318843754641803972734102745771650806833379249203388861954244673212361357397961152333281480966496263990630847640973702729046113647790068829581466798625591903604980453963554293895688152994637569691884062821696912534198940988411259640479781841927441394813864960998965235957252440326716130496134687965896681148271808638318070031514727204175480777109757340302003560029514120162024623059379396006437172356080910417327025569243775788581428727082256495510419216499653040693669004908504412020290328204113489466404517755083683034640557148814914407120166350640442222840466315368168072641174893983634829349543392297344140948636028462626721807883668362508451330223496992483772766807246238866251974450821595037132215009373155130249246643590113810709721629761535439029476208147825960386274376470238399109579295768065301335435767678056036667622322596863698065801507072457330046659973033224594163751580231419114814579057652909312367086092732517115570432868289237659137354371989304299625511662762174988538572157988801768153674164850424681961534357379317465770894693106091610173399756392504306528494858059365884747202753927621256145815706062027959662978758819383869693581056777921191204881670044922291957429519450636285863832283966400378706655933269675064440577421863258173029436339041052096052593677032887869929755660879843089333508397272267344104643295065096689530074681388705022776769337609629857175294749313525751300309721949446721239032652090232972842478133430058238309568414691831003967727102164992071206286833626905656058152308200759194943031707671062282187375079412666955314574078096474822923169802143973170577453685704054211968943654125306260912892609707932616949420562964661464784575438877180756922857021471895324089978768871151842697081975003414868472994162895211229421370338325895873015543276127946403330159448620190904600404574459836425273482981988339040531634944624685905565659102462137201836359385419322990404878606354560922360687582902255954634890256966869620162356629831716385276744100251380845836061077621976665296121178269726377037828252441658364719863493673361306979733475042371528462220340887412186578244872774145674978361609340028192348217218521913654592390150036306015506121699126026924029853623775047362937988197811697250520270733524694071722942450267143381017877491709307270539148619884925515238199993451839592720810010556334027038041142802200059062594212519486250587292527538463434456737682804409240320648484142274673597355481445000004837469599975991506331070066752074745229484466136357044319633803472195510866257823294400045818946102007223489986561216247576708994632141948332920164679448029182291759493145541351705301265035665214825017253899412050414606391882063006213369955002582417897505276711672651557725694483008813560254877228824700319450245231118369089868284012628163443389794916202785185438373552420509628000241845422935887991892169633799790313688454975478417957687692148960933275206480630217610463250410572490692299267995582301589211607201271899745168936007744279564173338143260208914533447172019302154235384442375049608295969813693911103565194816461939358432761202268238743953712295717140615020598037412031581721877130376322222701166587186763342675552936648517805145813155578647740217679228300403915845364933965901799475804680543939305532641476437041718084729386105166622784070656521340915587856379513110745252789241853656262046991067446319683524208734590340945935163584387097007190700899559659287606115857179357068455339540791107505222336391047613864953136414559753742322114635152489291453049370658532785121403598860684445931728259861463298447992833445041685215721399071791301264867189362374941063645035838227349353561024298447943497253759459557969503798695727578044623289288036863814512749461904870572323131324026048040184875908511093967696304215977121977556080873787867838702787225469119131597119845853402760158153085545071077096949346235455237123168040401477533326325214790560567873821237712836270282792271320630820063077230720393417870488202375176213972009346255948645798781976653578518687939975171530005137594393439925673616565575208045627957775031987742475454730862232115457106917643530213809732417187078675850254713988146714289825708338724091662614254026422359648681161078957478586960955337651992535381638495541720086518442107845054545330898776834100441290319637439564669896478615600855311511125901703226177634903569201727766938853765768612188145264109715020522020449986400754210163889291183830032651575101872259288818934249837860498935674456776006728055975878650052982471464222128223228118619869691953247688895643882275856595552732930631056827982757062764074907742759997400768011785554270542687897081940038549554057932837071280232673939186572154057890578969589200145152555218668480595961289935031391833210911739430932562509108117818158127900049330041221831709244107300556516062384595642164670477820002035172963423563093971096927874652588710386970658815156053899013257943514272267183420989367370904371238998269762239023318381539984506864857881756464103698592796743048703420372481938688817935970856545732161500486168075001001005461411129511491406510899848794411275302526859975667031938409414352590033766411987737523834691545592834263457446992457556546895297403796317097893204119489620145196957771602842400370079969350584970146661285701218425330045855830500187890446823958484141174577768930465438005737977658538724537716211336378821686267070367480133795945613164026350048849365557351846892863168992223885550161932075192533802096342245163901070803166200514392060244863046715005045362879077909354093878317642283820514463258501606345989627255852230612058805755449103873993214515634299803476269740554992172435741152068165967942515573777371126683245114919951958415619620872497022873653829748992199561339790688110334234152985328704148052536642288397576052345600729795106513349367119529904730875246753259916067549727976766460515931262875338697473681617946983890076195657680086659577690823206603665073855046947755401455878818202247475447257690323519848943924614277561304511236694637774690078847703001707530765710533463378417140653323064660129796048305408592385312946554361490002674394920588387289537248846440168950717667561645210781634533284859208542035212860185968041429534563062264621162638575394791092852839012853115773850631657945255552342312464593056072078267944662115201091586547280685624248432868835283486981818532316375581641963229709449439375794463343268035283417035400715379339442952723655037091303535444695121774094979673346780135979847304417453435747486522271770645991599945490610660496132918619139680248345010610041178794693304092699868587737221273882540289860024558453211495501013442888775078487660152385276520284908183544595358300007720010100476237226109061725763072288651185275555444255080903387158195736871810249958141110713440012656069818914124458132257075018114075847186010811514958476847717202727205765168615107926768332214316624917677923656458567972028974666306571811851958548900973661988763597137531452938420285914410137668803919196833321949228965342643336591209397973812665840121252627409667144417174147171034894034967525366961900946018609153725960122612765362590932482260868834978916396500033516293855671230780669033923019607225638783558558156778443713044170440455920438243406834093775961262207224544348250474227480781681591149825668638995494014307267256763546616438514170534539727590573200077462662397931568008195922944546743107380803807058368996034527083648921607456664563255759327725024992575596918669967177788862691296834522977035775222529962659233970122209003677606180059460968910776293834769563704993958528542853315676484101367171612409278092824685574215643817810616853248240381898732913751781385511372003704622483987147769797330214953357118479795397963692665934016856545952550266097555174401989736953316790441731317603202022650896623703406113496516290059749500780910957844638422366469974928097256530827714436712328680493898587044089570738236632864119896555567673948896384938245270138438855565350894646492531245157017953116426459190885458587502686276861553848347706010913798968962057329678360004990817365747284126717449905306626749139070675276380914585978593280065541245036695512115306879602358626471166900125886860524204949920234499697046389957256026233957775539767002509136014633429190614747389374215443686823589808413049912701764127324314349731667046155275852570327967526458427878838481527916877489657898417991238623166087619829676213547841577097183859349410676438042129494946728939473915836071466655459840586265312255711314818904907766365916859026018409275070593008440381183306971680335851887511051828080265434693383015225706704176093488802557948755024429507745682837892703201722376214785230488291693810345813556339087212191873894050127072350266483517382650344321256332581518281562357181777334457857904217599893641223070792540147683624697790807173033548787365404923037278315160954179054086032290362440753175891059130809183480412575402317732497236937559045339809177925012958688793890454774446552725211122923889913239543143920956901677914958932469788659990541947086632500181662068500007597631877173649446968853993709054486388536231155710974255206747372274308599383765089230502151209569000832199077754471129634148671469492432814733896380634654811141184125919702785348387047079673917624393388050294687412848331323556530402086383921090155323713619539079275742398461569081276857839129915098712059915881227508970385763132346605462827490790959082905537618572502132568598060888581313543380205936012148874350356936803723528959962257295941741265487095629520908188813424515045388183455093892721126795616948340214466647582212218422144762334345742947868266499769432107423951753580761389972040763130433476119155642239387887237291507244916455557144115252586232688785622064824178056260574828550393628055836954449758655948541145864102438349115660043722955712938790229470854496625676302017321101460548503019718765230804923705682564356454597009109946374892771992886134207418962674414536924912051233710617544722469188906050972030191983288916742587072833914764932085220681395142120087074463719063995330408980437767438593487699502042466498680409076802016787904900212248020712653451674689574034931540601805050842254824506704243113349546990258130557051665595736786966262427183505824364754938557366623782061945760005254545783943003494310146150410643618705655197769947144551699145522595906182820826480683533541236332942335201127584628917209860277102919780560387756708009581023531625622483804365943968933415523978377578944880251812654212997341932786861393326129188905502895974939505451892367755604460583387987885376826247681923595493420582153187857108632434354152459673321900401495133512943582046504309029925831589317186070629379307550656006317798874102459320729753317269720764613161721478577414446055721937154085650304808044477178741894351853911248972383953862692880939879139654265762774038923644799202109293172641919888821679796528471691255442235361396034755848874699156322517549913894804657307572359177768621162263174761166914683102746460706328726445481001235388502648115310068912543807064411692981285700467043702837639733020993269918123231413518676987019468331231308984464845421156600239259197050300480357226391284373252128996065402409346506038174424203481087023475483123053954233800106566217880303386915183012381869359686479199824291175050026724623815342114085222511873286074625255007813110208593314254323355152074624582298029802958399661790967641412164728251202152713907537486018759851956264497836203335309315406881362513348928048031173694656734468361059127842101700791847297317474957462447745270925604449956164354743777126352561040032503157572781898435432619692338220858092061167524846739334959156274451339455473405416660244360780928107446040684784254708753829810206907401304738604064953199234557506840481272628494845239504847855469043662144340082662691974660756277716015223366978623116596578076505861650863333293754895044650626355364209194065952362827652916118846517079640560907767374132334941853476685496999991193986888282656870769032128280478077740585633144632820623548718451442675154449928339702758254309644451141069278850658189181028201573564640684612934263549480835127085488393519613731895106779663974541954391285256682716480578042631316565131392279445986803562031170683054149565365144425355493235279511101538673763259311769085535964710666622958183620607006596547887906125045279450951794717297075442914103187689737370851373741728215310725680417833777719478584054115203383766099321784623990649782224689460471931016483278019747041820550646512426228070179735283227473914875170005590386197203445655018467822991474813416169329924694625071752102366352678472650987469961131123605457168800543698842583903373521410632083640379219805341721399024993114298107125869565185255531025803093024559173954547499466927349802909312213812492874359558561269574832515237537233697865626171320126159777742925280890456904473020684398028532432849523310795034360379133530885003592983924219940859021425777526945267767459685215406391976374195602937756479422748272706847262582335822538260315389866047995777346492838508859149312288555980387734921388184964641292906787090264112439697087391513816094053518142474507177204310642283726971766286740151421922985590454325245888105923382510026652296129620626499243914530525976022445782047571851908665056617262845226990347955816365940747155868100427285302036573296887731267688718161243237340033534229280902914484951115803257904540290544018340391060998745397560064851415258362289560742480227063956489853057721851579193754563493077518797638992538031550975924660751874625263528923394075949934612223924611652267099221712088386517231283433140959474006122110889542283839963340761344562324173482828773723378696016570880937318822401179223258487481313210719224842300002381435419214262668955906057400000729396698940933847473305237357993508078443126513881178633405103581098754292909365869157252586011097872333093255892144001861932047023142966633681016621174626272489847160811683477371690100002089195650656519296927834701174744403792356342718804193228860351440492100789257414924236789265609632513352869115956117604405767313120363178869660264106034577994358320828803276186563902544772745296130538781923372458826514524955232325297175109974359467928384363803501539998963026321888532051274092374852843809842909181587319400555610695017936390209120132577943049288079234308287800897357607346262377055356832791080153990477842496254056359346862653981930358679486354063147046133560681227049736676516720344365152439517117015968816377733434499831432228432732950459028786780690281090265547559865535914319618798694326481355340702140404415676194912394793482171040820074773382192984812458456801186457303465483271230241475076220519754247089789266993693441260049549209177139207359155151364158375752057266811235409299620040689639396889476558642704734546929773719393765784473982201667402986468219924074496507941234194216507355007052356993347840520990249460426530303598329465478718789048394274260090366698857270740297317459280965634848825150582193272787442511235664720675112649890935638330645885752513679353541077787594784798143184387335944607740131734152427704669989662892505457059062629938719898207648117490971832492312154122402672671463562319401857563679068670538574926752936521142274913374284279104356720536098586260006986011177948548138921580905710449826949417752553139145225503697534906426143749317598148708888643150774741121146386685126517282781818829245936524686603840827887930124468642113912827463221289680157760128854159363668296620299381790684481599420572210832692678414865755781741876777412360318552368122362327279119225536277500077850877880349504044279748307608906463249287392788264435122456067218661095850839313886174150196377283193428711278934508092284372728295032293801205964048956866591836568137254794209054988508311858271297605239957142879652852263222450957305100719941166641538634004707648323689685395134511314908925083737558231461448069914250495136543208051511296897701036209784958427236525522390673685671999347761101619606614740575458827184620957352602544701390191793208385421749417093738493948543352591191645253918291740407954249962371885691562882338399365289697161090458006512984038732628464868094887279585662271216454214224180633498727143262051653828343708696057415954652962600621031388393631479927759085548455914097539265770482442064459893278996516978663066826732855939913230827009497355466435747465627264013299782570612053387820994330212909906677970089938271507334417213235713971503808298140593617858401587497809978223170838412408214039782579667490717928805353637796868923199402981468760527614133954233017126743511922341427935401716168411057715518656283364838047614457752247383305403263297409069595731387182479001710469541095511714123245478404144214649543786701348466601375501063079584830182084481293845008631294289107874850024958160095010957916645268151413122172261058058543671886356025017564841822868291591220469111756758549604927738516384491378818439387624271234601433052749915371796809934906293184405707134498799535300642310230414320780045705779044313626556564075604738096205879052896424969290899970342775146122478156961710414219156212732000523940665815549483510288250973550551623844630787560744212405090820883673229335566332926931562652505911934951841071958557886949537213341253830041177126340576707112990458244796396024898256040503436543538678818094268042111238034721776234276634128363818520896250837344035672532485613246661855756699038661709177816881100023300777452537527056941638021751099571827319651574229253345097636093465471287394855443200226156793549057667131215505904190176792182232975899258735980392824230558596150420207522461678586494798922412517641056670589037593899113154875537417421703049608587159849001852199791849951670602306347324167612854257763034102240879060576092283178723829952294753527008483187756906602689274235788721420866821754075020009754191090361626242364124724800374039108150436410655472304393551509466312278215022087243676033825084951389888963227570223742465518338957610167271924676683076874187411027108228415058124258028690329722636737954014913897468272083175072781345529076806401897309020955536980790595259416853462999795941941512786281692325184998136123607093154211105363374045859759734485974448721200666329565647073316968577686419411892492588934892422271536645877102341254441981885820522402435515405914967949593800083453998319108469569748181681240358473895541129531680857284224369234254014562280224137540553264787628334285118901742672555644174568785025873304655395848539286354836332560876370483030706068347681529852807751346048121715428516698361641710384975196532473604264398984137222779445792382194791642216692712675726620072973776542206377431101060375919046979603823379735324427623854984119774765204818145611042529237433047094426582661505076246984369611017704344488082067661626531767900432516988872117732028135609332185479289550391232545861684384946636737741642765559072001451137969693006127452972820244632070219828211980963339775700235823992513368990249801884652042683896169773610854427761368164807859827047347319399206323950678585411727919605173055576602307077945547234814487812786663234789567471710928180227448071043401492350462460496016373298680825424751428384779895595239550580587749385318754979839983523514208454485235741813803896382588361893815443840640257981328616223594492394205620326897586975727720301157591712672620951141122402418483843478958122828077210761375046796922837747223759543311359155754612823442659313291080272201231447801694286420657754768086694108070614524455897286810702683333609611477602558446020437089720435847490499565954649827547892132353111409659777473500057365415806670454209193045575377241728501881975307137623555304040210957526349660979684792024567518875424374327458160711770963393145175347807726341262291620001029539011969311127464418302018911439892112020995909918263002227065853093454239073058046235171364974011353118402651005234972787926141245620165749045845959813577845452296435573789920791203525941374946370892040749794119960315562009214082055574779102314702500263966277629232892144458369433047591675122884029337498296981406265676225445653264033984876883870213660860534448973877766703351176654650592968949058132202848131794803374084540383088028372097692354663744322584461204931288461029980160195844728414962100830119271807140339525906373370039370685272031139270229495996798091203025339929868279846677130417307199772741722506982029399155292525632666422940283224411006914180230259031091332624275288231558304623474343605680015700568388325630879806230350139054704007945144561258167187189689496520751203105887497376094329415359289140095727133145738168198234369610100265965895837937945184931922430165814306543734009764755098389337048568247907700932300905880916623397633733645788850997103485721542028278520817838329312211935659360905976039044688430282225388225763374835589919124160603939375221381490845681956780482879843480321791191893815693206384080032240572613313089474110606914339283716429452611526034672887162539382505726380417010606942796699214650454029544919155917668671443780030589403188539935636507214854419885988368485471926160526654507952768514266666971669313573108281908267806723078373491604252061034700658605238432890460291564611224574924588542001868813272662399136755001919499829030408791349754546687996836036873110211144915923828041521460436357940824011679100019185569204382729329182232373071084326731762042083562866686446842882197285090399499400235832096906476733240095307801948351967714063483861517576942538172898029501592924124887905010585901597092571203757948564771145532203636025363413831462651023757333155018797373437082700925117078161295258114773417046707868810982507849717168034852686896048763845505114409571195030149726039802589358753208419457640225596165647277695585115722239162501025123568851032485958574867168261800901931906029804373850471695594531377200490383983787570385452625210526813629822582142432353300300338931424360374888023701247162763046753787904557254744808890529915715018789768506003273065963087406751789747717506231826673065880394813815939104341836145556542674407570549173611667921807839172836364308025805558616297274948361754840035091485108873180146670649379818049569684664054391760330252803212274791640511200798270524482931112842770384328225898561238080839064080810591015830344503715927071716003055504696173557791398791679332561246883981902832366354749398889210333718254784452128037734896589298170060371262006344626916093174203861692421699767669947300577618632676801529436727148445949225838027536120208262844879058880795710178011456490020441319833888740366937595144227324873287948297742702798366620691603464196966045551073814648682899598395050668900343539572968443600618396978914057030534854026259429158695829601401851143703039978761936127995464290287796256443584588319330264986747577018175141353813337999551854692178434809763312560557977421814844118752129467936277744675817122754799752279738450936015810951265953845378926377134482470578356875873341098297275392861203430810625953821420145490216561699362541764315012814857300037428708465710094192785623935487292764380807774034486435860126629750164401374820726688274131114083275696981854911202688198446252016804391516085266392055132589524294115095930113847787803775650947642959503906548708069815091144987371922915187573492823815326364164523791698261457605884443549146841292769007148036489785327932977741732241056269565123139034957983355194565796208684194140307492240179653433278103586175762780011397150691111077724961773346258866541371094470588299201092010123268982084739929508518782576157416150163366597899431992289148700045509062529696993016625868362616574920867030141831970817595574497398199603065506379164058435970649802777430802455618207333946206113231401316770604455410440938527975610899664930834362290711387635692586159147023938805190672505474996905991704324543466576797483895078794341315448158084050366338310434866899673083828336154796071973074742409851726109725194873678213209469651972218916195865664898234148615419587725182565011572617887658526570996446219774686651555726154797223698120319079956207161090113913134979982487020793253515977779598333424420515089140075753991007734859783888359576029709158197236004239252491671157334312456087567903544050515768529484986641427322104539129595707399772605007262595057709837076403689408940535726468778600952782701554208196990764654726369704025318367843040995097053692357896914313446257908917691928198103417378861828462650705075368282786163986838580410984282230682261612400709122773981364263178298159042372196871355475343049050396158699589077619498075872392625944851754948459005973342060190420279842160523028517786484494087805845977362307309954181226425617081934818219018983701196702286403282962452048353520410026421193583951749548395062993822711536079388416755464065257346865609168652712019598574159064909196517856110067048641279052955178006625305880524854934185231422194121860693217488682152239011254992032635933773318234074675363857681121887412882267562876950297162170243341451954391285695360546852061121008767016803320643099188935526223352406770085313716565010358311743594385624839219945076744373285595139302087356887450363731528517079728694464346229103010096602347780522424881858031968744540745006951711430702780482772007901100149239681982545132558656478001799979412789705723045259419792461476910511324455495571012068085279619890738120602706659155907393051496522573816703077232087559739285699736096269898004809957512634894688672173993797192603472117304837015501379016196987525494328868513619295447472081597349944071109441623293437323738377179344810760819058731591713520289875158951590232833988771870615799666440197207411901516194322715068739791450361790991167271740679696236886541079585243972637180353211418289527351436939858244912090932421495979210191300009412586588379603017748664978381579049514430833148672775053580748390321310303926076940013965976389373244729472342734721843700159911020297037052407154582853342851950507271203288047366637642704153403681598594518646569818255715419711240709364720509314136813605387409623945022198300254940139934924811030441602551092965226142271036754715336764399337844297767714634647386017604007956272365056344353317004974163629551190623513487082765096881411579901549815530489043852971686037423147608582163101112481733162074543468887975935601766893833322686342269473063648710812534428383805374570641552791470616645798156363541993636101342371357749080116319804729166687707569538587991245245424164776121035215803849757806246934804250601179983917267704392430721290632775944315248180678068653872773998891242965666861280811465101416890388231040038287005020057576521529128327983801855293884201094780970727646189274563283111476613228490584962629398606981468126863834010649212499770070502682349029896031625560998027407906364270532676195276479644111070576218358984885416140974390370541258521218260582442849730969873773230047884314726175006661699345917197349746209177204476094986559459066580871773573553508625888095447129616096582475577255162540618803198623901933646891144777014312782156689279462503408301227374312185012592159929126212644715809246484782744386397029724163605119850793603943609034239054721527770176634656180334098107298552130166858487671162754952300861054913041034904271803496830275328218392114736841487086618470014499966100983360501808454192726689616010805752233903099376470895667571659108222397373601434583983562560211806914588959115790197411476871021075623002272814020597965537481238613485279042758966411023541944617394075254802422054608662294814685742110363629142191227427376169936777195951857271659902353122175242767411022957747398195313093500036998780910156119100358608107744038930125354018571931081233573527214238239243018834899042735924135297022499947246727181022018299698179534032791190940448887963641589799414969687788691632173757467209904295324592319713438940055499049913844930942877441782288576950881299230899003287088075360473888307361078317608341137111541741554880542725743887270659718274828764426196445741545160633195693832297934784509954446579319086557889682717371069278518914851101395425978966429680702730758537890571876360406815958215648421120459131895330966362180217186893691575265392647692107909716308237888221949100829427917510875558422297642166198640577160179043394545116175169722850988509048556610727155351557022425603013388084463633323150988843744123900292783486507547394480364241598218198636094911883808011003574336052170368076243373158888353588114201601549174898642196932250873963551961576954168888528734171439963596217770993363308485826394105448432423678486695996508808397204418874150971531186715624545321812114774844844850991985924341320827087167901730844801166256195535534878775229130581873491710035851078244649391798689930224476862648820525216164946190193495512107599573920252947660360343577891125443193664620261760952719987971081014489679183129994417350925143464352287000385006904507132941152673335257597592988481635059004841149036608217142552823483523616365096247068555154185766708758110529756383661296966690222701324915193409559542014506524111000068902572436686888035124535228527568582124164847917719088599024713583846373411891499591672573120262206439802773235410482106412158012083331342129789876291893397785974926656091744904949035197411354027028665363701297789340607877574587028361231830250622287192162663203683140417706663829863605284754048354378480162473867733208540610687871173474923144478800903320049025555678281967814725578258333488685575822236671632795127642590263266611208650736908791521113138870577710067255848840760008659895670083306377761790299278566144235112008566890657393941337140432273028168839469787201403033363339857830288628970301587074997493230360783511776371751622010462907873133807914316656657654754789803187847391899048457546930036131179102282975869969261207515073608531393088196479925359269724723285352835631810013384437074770000503777181251324596182062241101294352346114473604432540670214161124358543216419327052842526489378276770286696935873021009750439048198039649750947764037458952633679568646432151192916356540240699959729211541643476848343704346397452885434236875924719589625785154814307031786884143387366791525228225700947722001803642389787458127418420068029256560664637322170462680405424167244412069902934306024713725335684625083387503194603040134841151986268334159935503740861594700278596329601753209944146670689677215041726820960229720775657520680012766562898295072082648456353881909226887010348601669189119023765177937463818329589964267295026179093642098404973898223810572377331637238955452356738786944919174260364506436622356436972273936136216429624164598741812474205273818033173019519270559570247476391443088739072954687889540709949489256414397671380372967356512934445055450270556443383432967715309234104896119595990855902157985505175318685527166369599657608989344057027097377407804952406975826068845823611105607822744598554920457894767569474812572600819397080965101122114984648738232583679163072502009726232406094096811808697486827424769418727671491094272075230044189140213655114344307261199753874499187588496765687337105555203200971913301056376493752690802216559357002865514829776408894220563075222723811968791473479256173595773149001221024501259900190420968613307035507521563823878782224768400053417033502564701747441216267591729873662218879086703321309055481296840417390084558167034342711533666702385885406735695953351147198237044465429059733829083957609265179276717179965924707510132922601670396553722396085453497971001488546245827803552784715225654215184125201280536757726895909861040747672052410090028508603469151196577472722406987717208097936278452103053843140288053990698459244089866564852367229836751013047525756002992567895069636173231383922563407530301697918343284400713434382276483687302422019220627005536235390163810995099701713003187006464603214200483974692195510597329763418849237665769132823735038382446446344142582840742887495294010276341768548074158110720108109794952110123685537055720911290387337793888638891340786298826744112245954841335676467816186475759647738592043049121083467828388119065330681731888754009188036052829058808283976702502948464453746479384990852155324674656714489702101701920139259878282622433710168264314540335664921231870503729237525438307388911143942339885536670746691632818325036467812003252687845511201992429618747614373532535114911748473613129390587967804836279449791362472688085771077184522441647928775991619020027682938994243400062022992227196186338132113419592449809292427063729653054077534314049263859734374432852846315222383257132017091007213088675772494370259156551225874686627713362965846032904181100865823713606742791520690647495119667721354513989895053319749728589562037462947735811374415685704798085729913399386129986581661752586694339132940516068537720384947600963184947136364226806461218580444965773862049894531928039671497329751619604805653450330191109475553923003894709696766437676732235727401753548017004441345901241062893100801906015923905581128668791042264711410275050961382112222272800788051716398578795435329238137396520937977225205869288935617242048988526486858043621303509336145383484116264911860982484040588989579385448783402141698350873906525495554126131447676524573778039298649489218351738907593679678124834003106051185308368498179234344331518493677287852373649763499457390973198379791953398680441561839411251269576879941463943145585720212564054460795061461321098056493358672526993984840118629165039875262823629063030495209279089769755943871212870552512899044708931250394646924235941192196652560664768283543457544735185690463760692890427310619539425094866008962578935309610924076296663103724737705009381391480380511136158786607126826260621226978946584941678826262564844389288013005615222590223814852385072335351635754949431436569607219325588731858877146651248857297279566565808132970528630624106287835487032492766044424767441476935509992397953437256607969891421528804688595259039340242476841283866755701248070468406323234258709748410331452919407640403878456013753792029185857784062040182699743678455842197131323186355488341860347939077440389527197790007550524287473545335159476419981950638734332615319444474858886190303884772104056652092530227403208928427460241449975784398484525070094463671112576849020743920446552063100434758850034658885938836159955214935401019706023988966154090834086102892644057504987713307033112009595550259311704768911918811452377575514495689001880929319157683194262674955993766984367742828014783534490299519561823048330997369709442970513938577638716118931732186355113500059005789581409654440267371607713334856804983047836877979580968879216926981586961887935826411973805190544658771100858173000166103865404795769145219558937272713680754769944220982471224736089693108230266130409351157628383476498015158544205682885551800623139317841077605027015766437295594367914666194459801826065055646303426154928711986633008977094387465729169472289417813422910586812025526569295496667148761667500350685358257905692843922430416057040883631934870334738519419176537863227055318069683307900362360463864125901579378236615235709789458044308412382114486615662230932581570822258011021833228894167184268482509736397245773552394236236052160102009771389565023799308921977825577239433214174518024814308137227287853879340803870653745106357333025523485693688350230470614702406601339069618227329029559618219128651959322574207643589570844519443073599436707707899419326259975043997189214079411287997806503375977867403672363278017684246527359054969369751331217533794145935168237229787108934586153921211555034218801925204081809347214579940355635216284445916126059404343740373985145610266520358929269670312366534058427687680381566896009550425133187498372721648238837160248174887602555434902395865491566864040852305431492044466072649667001867449930505897662782714119538387098324745682355781577634097912367075352581836396555461756381085689601843047361004547177462379703521139749141057183749891069523375410722650768348057734435198314431537652027440935631231313348165528916220481559269774610104975491930447909638339556882061180648962239499866763808221892194078488354974453368805345636662100901409256771359139319440048232413010040370279841729594316545301897285013739990096413557637213708431910567054074849480873895852919431842583838405549462313778757929729670471913828959228205719482241894445789375478801799950230275922190258553950128741174271625588797588640012800146061779377636383924706717323752836141564884245916158459749603044601682995042965218589856048837424234018942819038525326888441886751411764713860861161281757177178448327266329707518631561292541663344579952661397118343151066039427115708303007861656020517455375057233993260637034086612431877877523238221612691280461055755479125511266952990432500611710522025920811691127525969267722109999536098907494219713074081021431255962684936271138740814026147857585153769577665540287826493274775012628193539173559968561502968575852712567755667989414719878563291818403301712275291335411700359613080371123089206937814612716652222103101734184951223982451765545268015520261317762093569817507417292258160722791648309768142064319449770252298804488296651644686604056359589242157586401696333850630516492269910468956492263985091675212422433688653123545008124893066551147547747832767085709807633644708544485986201879458779097845391432399692572834763298728992780193390551461304692138491805290542113874421541200392852875146954632128872049242369614809742586884047417973275325284096743454275594542292635518527348826564586490763881282696585641150112664810222996702056624584073344660090490540823600021443043098419251669801394930622284526989580745658924846805283297874846478893483279856265773728489697660206565339810871671737430106510548672544420743961412055801384315289340704012732326550366224078541456650077888413991007641958011338401040229229259788356453428210441468535564973134784612054511275371330206996505188645463182017724894894240121178368095302293220433463376410003039963422088363436102360290290348363496029500320145237902797074456853570619640082898743741430233527093859867884740430828983821456751648603455550344340811096216869805203751758693995982970650994109677664518794654987251737553725671727987764845104144628663477132047766711525724958468415025966183736152015418957183095850799169380228538696489471702121845273546658358336569858128507518721609446064327734721935127418655567245429465664420615519174107043082166742541165591785607408275078213203837031654898099781220704170199623442762568600478325808050664332382050730924366736362214243369318492626758597514827192820769808910199020549265034667447640936431058822510315343818393506439184811952472105916637509294514134995740195921481994195168427239992207956203776071617802390009914517851796820266635395848544853717114660028602189367527194414853909231199506946935693545992877736532978537007964696778897606927716327304135481044069786893968758855672323517865950952675610027445926363381780092104842478111083125157124026337060701155862114318863068422879543544094907744077007092288314867412404056412137275537041184039491172374321549580710918937327208807566812990646290512331148592156033641523354177790976437920884069000012240285409122297073396678400568829998908239740682280308648317807258665412059847155024384374754408930504630788715141204360364276203091362579868321534126719316169748212574185215232029844622222166004076537316449098261944417076325404637469015321580244898912775675518942993781218645778151878793890588080551135439456676933340536032420804460859591019319552426383333736039184489451737935012294428364275446678233483393715902867805347665840942753886953129837801433563507973196394494081228212248422279033133812897751701052151027108276177380800024338781651156613513302400687670022948167985657918918888759048457957157971412369531712817309929781362902463169263060473582901130781146386304662411110129592384910056606569488341665185994274363087826807482444463917737595102840369272884372292868841532674063307143952160953685211289607927534838173635636864311292235737151976170795607672121692860400489253501954540922028216633135509528565645627485777944200815732950254679269701003576867124819503467977656406979859847094799924289398500906420932253321673262224186562919372741492883313493624275655835473357744068319864603594579975356164688278298263478586924734453124947571095161692182384127128610963306161926546086995184402765962689591022356438260481453160981304426314049459234661591036659499302286591196156592227817121884382685861482757224321354226448784228168851719734728055024143807537399806154607954516145956131563825922412401651797396224176604944985790212286360265053042414574921650434268819826404486654997441261865671619247743595648188129198912690319789536096143689451172176591017585523847934591078066447123600932997910167096775596394951890480069668544164436310736576284391920661230647605664639713675325401079060129582870023301924057343117354524661865069425796938741259461135271134133085330465618225621217699341390184709993751338693255882324852757366110601042792715766021145604904363153316730617048311164545293147849718449163241016991778110402406685774932869913159343013847081717026754198919299053821024838649420146267013018788033913322672305527120282192491746365080315469810580115287085093295032614604205029959076026953400103461941416005631883257325836275028776828491838594587083677804839738048141846710417880833316857541507397633593453845929335547321496262172260028519439429675450056235566620087803781028021217948125993458213297315513398838844259430008472124815483553658586239338500852904537743575172845904420128066139262683004215469584875178098030854664279626430213815917545318293834124597925275034266471231595053624354216584712179429538098180143386417893803274988395631825573266064444465735640878121013010271298981005862558101569816689710250253217066941281388363574048464340996685544352166693088820186456024699169172893950052203299054495717928528775618016680742008921888520111730737724908988586800073614586496353641077230507566735523006471117249539942111901003624258908598321808814026183598390445335077242418433460090672723800787575091865621344276261242039405507976681581858032131183766901875991906394306831968393782554435469192023264511368953412217439801521167833645956356216950680560610506138545059352643680271684528367702900659036294470293281939062226017797329742612348315241574733796450194559424626396725121316930745122090092589009057902232099261235894178943778764030894867747598004074487781848062140493211958218863339172837413665121747412512868741797545059497465672884377031229489960553914418069479174373225194540514085794476505204386157574437561518003879677371237621138226223215441507218457795552348556514532360346156169468790204515654406312127701087491026043997412520343099288910952712332643988528914547262614054767903195396430065336958502192328303603022199914431707400283021798572600998762596550415648638362237458236444245213247567986985173461510799125611737304407506960151693336419364713629329797978985078451647719586005010378031896695294777790386527184816975056763632582144471146140364563701111286515729336083890029628436974904925505218215941025383041284352696932385553944265460699448138643639423927229389540259793777006969347877309276268797050144643206536525838628296391069579351360728663538318617911701203002653101840982391465220020438050155065582218708193811309176836818918067946629629098754022779740986470429382028156100964107315326397487501539094795253363887060640536298639313517193891543899614572227240531405965976988467750345585133317109595844266543019654467891506617726810794816488316543951068822394220609278720767520891217110155364759339984836594145941019546890867604654052365924918918389339553139712227380952918366327253360161212428381301077785569256830659785061782573527522940644952471233758502998410193725712060734813526616957804699284893147512091185364775926889981070275066801618450019422506107182923040255878663905587790633819915347993553223617473871147764958981287552882762322086786682132375784821951949823154181236016705956333267459431883697897968367769217761684430642077725586439766451033929084402288472888616875460027781786743183799301168132470972560537483326698473757625316863567512873214938423113481701237124493287558450418535852221362836280901385021018493302564504636295627711833640318157968281321628815855539180108473059270435070148768529928025042235557928026554564386437823336117367814726548675739423945056024828168822918318412724056162991655127505075176361152669379766511242000637214655096219644015914534443744970896271191112740011237195101931751314404355953458925199770578410535218672693177601889677209231248700744550249604906917348071751409994987787974344128821164654156674929628508010469518476783328164926393720966359587271652429593022100706048060101528363972264280066202278169684880603555861166800159245517668830974809145230259820670692261128440309736263147045667609534022841023807762631650616071466558865316916699371657146903079919583010128027895254680587479275739287475871822265195115974866195803041928070467445951568124024066655971966202707533021665156115543015308863879385178463012458013041425222746215806571842799220122283961016355625937690022744328044375789937401656056819807347876383495791325604455963478776338317951405745338754002122274937988291169903189659308945766864427349989054826317874946052055757122391928052719834797037381456573745563982200785118836574228964873988883611403138786563394318935288470938488641074850075132137123873761289574594581331179721022404258268054952499358609037782396664779567264394324940649074790087600342147415860540277199469164566712449349811015381109361677498709178178592844948077928491551176452342120037935441568558412899129528578254048818509372133355906475931935962733822851808232424658630701763423288273064042541319428130823871260387166826060013586423675932153929503461008205948373390053472637664224021596718038809820129848218454106972628350226780500014409752347451148223032428410152736479648407783926373140756436658963435013812024897366281539792653409903921066947152890961357341232975211461004329795921963320100410734380190854725632831789747752676965326893481658795519936708387639030846896574053412373786552095680604967395176823834177499679505402199547402428349938741994113823230684653721186469415149151042771041053139276654148368732579236842275923507021959676390946038666433029961019011793732377562953623698114734242252024026647100332473780593792158357734749741151630580626138507958837753873065199157939144284444491464408101374426811331973892963392648543331366041801304962703751827771567321956020730408018647069442690450124417978562300306158119233864599655230278910135981069932516930866149427224508393444772962562739224594305291633166911706649654153223678288440600745200842371004652663906704753963471771319227407834097223165652610464666523604321367868477728835435469270529301232093812598724751735721758823126984549765043560780161737372673070381116356376649303445916654222962164875668029744843567704943548870469558361555930955491185463107771943434244687394507333565610239354423511230599236167847398723477476116688011400246558985361758873342157474178689538769117934312037509108393562136395233261579399512741647253638445248965501492081036777613480351052313076937489293241983878770868974427495451173308673467761935924439715162983352361257539435062732615895660120422513497903600855202303730159063509114046279146626086597950413813371323716650772356393788058317037398005851107914440799529361764409217351832129900547200405885456406558273114136734583692813469027343146844604784519385299640513289011430537201254137324638169201595737206757642507486278090798666253641632884804456386034789416204468503634092047300440628364794937788963754973683324923073124572380248721759077910740657620948334291494372984229937249127208101300339112158239410389162047693738187414857964007494786919979066952519475815768632483701113396299122110731429439664681468884876808526935002692618757760386906052676696083197424541793065753862682977805123518852756515213015578943629457533213999847448009471850135288461711682193965254156806639769996273872510847912067731013031251047690898461127781094387219210586202155990129139202338167253519047088205479160994965794701108299720437597743008506390768071828185221063472646967422433961043177939334907604710258137299261066066175010927498655624575606220457799683837641577969684354256972116180567629463751556578022634089211658074833317070935241602989750278403212822235009946767058586022629343733079916987568810488856926642781529559004442703367674996662756166758656015132730882539548173747158852094007469192229616586134759624301731974708423980113402525791631470991057487388231839916850670526333120591692410118626316040191443787303957810723580401253065176535379092220087553169522905715830486054006485119192812491223043766588935184122128633520735185394361587868454988629306068005480290705690765451846516316110589045573399374775046811373684826584250038170180261181026577956008728077012235292756175789439007234160685111998604790874993694194615961956785089903923528623638738264756622093898781264463199027298305477173612136020173218409761724064004471761898709811741560629240780533730417004685175632770507712094761473265775893636093333919002243466707881015010236909540850127516975652837340406513420256432923412002853516366918847395320708893283932706916826662459524108847384539858381686423503238317920028959269420030005546867573177857082372941512010058868017817083199224757559562911051088939679639152905599172382225941599390884943728368012412736185144878309608772536320838102933727616963050738041138937309681302651011674844658187633049236393812857159610687981816425247591715956104081048675980455332841781160832459375797236147903779192198194502939494198851816929999702196819858565100761865311174562939430002968161350860312156277477376684152730247517545977507499537345353216830768363599750347855173716891301434949851891494193753704415979967187946246073847357499713879900906328367647194667839917713132654843984667870621635158918953429474970716576546230642415372005564833449464903757002113610165303257332490616919973965420497100418576916237528422338356980726211001388538200934076418113583334891397610769225667479101569526752822334087567569656663003370008523224314690274790638619573397466666086914576173878493740750849986231913811954806771593564053304235078348126533009636764823728440049889553765989754506442053889456008774119632122232983406757200865303401182128666998956688944742086336389395608074615547768689360045092505076486798303802388286762305736676416463002510693745062232146111697974886015677297202728203432463249426599243778520479374139405416834092365604695680304088071474572542593045975144792160406320208961724987130974838122345025889378971760643680832454712158255145311301975282982606993991965484054209763364400550862461802710803164872459226121748597122150617141621022920131736919586964618273367400184673622178073108840251929179516064772193636854194384849740490758091429415575996608970128128445595429121331302691464129130684896517195776160726588534137145442597351282867599602983070574982138747942791735836028693871628987322941962065422722282379314659824963053367487929140044294076887499522166152817115780030098076750124925697502526292684554376729044355838706805364736930901573551510942243469991760477257289587766771229314107203726644792850717192358934437766076213427762355141423592197740718071493047958446687810362040516158777047102408290404675763281467603384610388532715469275137308729712451532547263118627125461945105166024518366250283867753457018254930138161516933910968163009689187626317240826138441598495026775004032265490541498942084707750978953722727956189216136899094497302613826560992451241513007466239718367402894454559680769763709589988671283610844776813191333096486388585095812274748871723452766209058711422635821462011237420186936507243017192740528055193523472120541996757456263081138667907371666934750689751078061448985632362059447120756031234304654017202684697426707461783524729504781367783647346286234001042571357780582322663652301665433329102032989160983319388207126899987143669946902331141424225154960745722653441363365469199046283715602105334817707174038438709022238196562536202330234282239952100741889469911090031054729527677370000131570023058061746808321113106624074537934006884654059935237563754801537808465446117322185627546293076661877982759728805487406668793573567920611112800802059396641727781211927701788880665838521004055281188278979109833282576297818822294020368474170234408850802689457197614186219692706799414166160178418801470520793014327556937909214987526861228364232400866280495303639259453005102344837856906940962176105569710807287595465241524086315810678751330756253248130768996799352970068015481170427754304592229097622586380705070457583265002185903921232322204475861590012128327392551015532800011302980682274578782063297783407933859110328958295208854230031009792941506253962438771820633807113879021753636622099433120385918240388286558012419114852752681066585549998397367091043175770417329023591307943203200653954869734675205531106534917156563873474067795684517450210314830219420779273006635028306249482996398958882039087886369935937980958595512237137122295208411223029052393859398988697562030739161868225144054784918274981749866632929214384169215292731773331819147651411895687255564820267020704100824545709345982257456753074270481511757809297055659416847954152997726767800743672782114344347502108001571829331682329132446431314992393445545640153456648058449224397837814690640381269677304338479945719409408505544156938647826523076406665303468247776749733931977199954873808573395174810530075462662467146629587361911834144638497470935438280303887387367160898737415101365817108604477498228551073202164206771898046554248871236185765797113126661746470095973056725235636588055162654201511140541072653322195992227841558779806185562310154518248613434184358926469592269780044327624181525733286149299179469433771286944298478433482508673564303832347150737548239439682627986626452866095656748811512522667935274972232187103037390939847226978141611321793962887728380956851851177300662693100221278696798282385705965699966502333041776666223641063470363780096865548334857096230583561403024775269336899246844024999086766992265563329439384394955515019124661165750419487332513745897939113877562725300277263910671150124172798495419352458293659811979963037258646656298904989091838272544067866960320005413816461989849789807165316101323530050785067474894807472942490997029904033944222205635248201476217151415074137674041877021523061413830187821192151998042127158885826379497349836437353111110948316916185447070412350829147467815151287988785824312569572998901781864474934525537349678427846414772590504774051602466421650469514037598488953827265990815881601573451629538949503582779979858219954916798988378986676989092170859980464236875897558842933008271106507047643474427247553347741742097302895083577802463615529266323673577701979624212874786934605005640973765300617014850070079446543444925320244812041012828740890706765119949869129757194911568873241197582214253224223947618378387311465145736233237241296820150393452486172231603778677893278703083693841255045290529952785817937213250655061980732950141936824701479304772083563163565105293208608264193484471831282770659480340342563806407290972549590426183162145459066582357640647927825116483236976731801772442344782039238338863352780613949556090862452850994495180808484313959579654913252335623826202428087301303736365220980883564250184311385601785046450099073058711679124491738299275105032743840297554618648796244097650305378833055916175351314193808872096118145456651354172508491221123122142151741138359460585306545259421012656858452290373692354765339005824880667174436891206213880356956349581806857496976082924412970047331386077192607578178606600512885402679278826615458898066932706931213189335066500023393925319710589661477272251175835273594234503611500799996741488021192433349538958736144555146259146027674209886714878268937458675139779722220526073461552340603262459455400339858446956805876952282091859058290186506371111979680329195277808999897015423092111953088054748916600266867381627725973850848517982328193733745402130765667119378364510499317285156180078522634594635965067177153409966507992915512292156573698183578632779454255503681147077132636129465174810804321109649063105491977592241342323839790279373808633397660964950953309687270769807901858100681189737890680427371532544434448783999767920933855198051975653857775422456747300059716268737604301444746151670437279810197395707213061675994884706953366673463200936204089640018362851053434467865242347300338777374141525183110451364512976811568906724586542120442487394564143691670951676283761293431001244919059039009244163934162729248517419575497786531299519177389643719459441136967748905897761536582952508392877815797747447690000775711630720909356407031359556875834923156819296926280745852004824277733810493927466106324398376582629828727641551907923533315383758880389232836993075627751397801626866908021835645158420382796578782308126250974663940277378725686685091824854788013103359213108243909159475012846535961425736845602908661188160936912924996182678187382217470498090298045965296770251616078756300802367147776824377411841821344181773160747931419356827852932195969839521650233940140962639173151804271158808249372505373633076829927705374499841661192845696064603749552460386730745660454397442391117331534821350913687252694511585662674166789452609754565177336813199261299243606338095581501331411258777137869389173302924375089539737021297194756274028195354455375012947169811311094704523489275944267295442966384785755362969918133031205162607586990578787167803420094718970425810302485790822809791108808955911052612823899188885027848073938784104057351688237153696386964527441813166531825969867909397608920203824897283563981283601821498168153724468449501223382875926524826931555540279699047183446247465504635237093862194718697430585020885238933510571743362017912249069837761039311871779332983364898266987695560301265779621290576616579935073193172214111711779649853118268224680523237147023712431234119047215150933952886493127546589030556791116759006343467735754904028392877365040122128135786161802412497461486643543966533178375471842927836642398837291840977762813424453638633969596288802405547169105290759279997598236015689901346880187438864117203195375474076192693974037862062765459638999098287636739099998049285712168795184588198140419021603880493649805465471497893086477620585577406352370301779577375379107117077733277375077469932536129252299153660471785577205217190598424354235435451741707609923312409093351922728617986776514264892321362391944561177709182572529351610851369950184255606491068956000293561532478476322125022964394440673790246678033660472626131469724374754550224328109689058723247703785149532071247700339418022953525635238828497100544429742754973578771538152405033565875760266461887862906882938846111626164720691047278327201182563141842784266965950168855935029689053865977268664174326565325840415719041678006875670653882030811368509378008886329911635635472966605633885715517450327649076736488907450558794569035465546713177358163885267229139237155012308309713733708444392036623101901131221143435218427239139025000921478731380247443303129451542471728186526057112106984903793063467786681735491451651978716551285005866404842827542824306758014661033379198353595438414224642024412574582124018744657387339319053656538684346938239649463848764398082179925330047051483133309255206490042687704295839370589036548282137805343610614355683528108330231047479325659866965887950556176484303871200953618284041044711710346662160692335040628308065443719203618797619582684446906145640079316552073237879679792614387372801496226159301772835417885309327019219853137453274153779804535730517092798492243943421487729628413003590278755442243872506210445983344762883466457606126399384515939750882335529404219273872964074337621452582338430179198248020661390776929037914116215358253723800335369876537200411630357482624275515096191870535411575258408853364300009080372216443473050131051127353424417298356092353463883177279217415276241202529662755397130324518661604044619034200068192132864397367769836633512796796077555594660966460265473396234823123367527750964554096548412963734637731397412241204719024239509933624335583046850704436962733212671183979161818844072728228708048554497580532881976817533521972673804506378510390768101750402664604469452378053008419327721021363249107720742570683531282036255463318600266154451852728826645666991084955514832280532969281424635474677907550210881022498238568137222933305198341452571464858443173065638257045938337497597263216122365206014765187258641302847730201846160098707115034474212407907955643151996654229828985542481199172119182332463164846503895110352065111086041460915838927950053865113140390411471195563465920535219806620977813733018264351735490151128447621003178836281304150136080105354181744038171758751490035656178163610474219406703798332126144852709492277820698228121902910586009625544847105190779215171942116209165085533993700747130405082395125866823945458759326230880342385463464241292605234192315465548634970473498619971250303777156378615776832143123521478993500091511510337062105764738897895966339658328438529902737935538222610097801933423022632844158870915783734685760076132487557804294691779219536001916650203318787536089150304500723629977848882868562477839765747109958708696390504516959724966206541175497542532899449422521796788855016095662498092210909142743788402102350958624786846060760468223480224615329487678620100529871237876079534666906615555695917645660729716455975394800586798485792803888573763817642303388073561271348125215791681376912030066699679341073133379307404921693048971572034433359538894685253737884499555364439571111312737239798340537852281203712179675509126256967875204220260890778670497971397001680829310902652441230999287433814807962715567857184158203259408530822807682107369455086385619768392302769089156453740089520655443956109081101285970410499518007644139941730622321360471218026405007236148170871954893072124609847685756427556704327520523729876758746580490777173781347040025186233440409190064030951546906337567396303175276883306735520275441628513414582395926066153126951251044356593760957143277501147108353031238574946713222533676234900996657360949728689289209308306704924150108337887459341775002525758646128707188338146311529574188596927439122647647964637910814510246672624778760494680020206648168673009583118982691754668639129040428246329041022316341242894925935243061159709725862257478389467246678065654653807511754784306895910985832718883170582947538254298798974819746820147784310580400236520376236844911815775436568302663827091629487434306757020414919076903968379769531912765200793150242194365101756610685324038018637645441765441077790983199999391987614244794647006876529919537758953831677110072640325328255362624945917179145236032665622153265904677351741974834953947878530659742160839589990188783689664505804086079658379993526122330479780308245382230613272037969179807724690420097517229800322505771414599564180843065888564604036471999395673082654029170048647252022048415604778248428973612923474181999037855155662688780041535811067881103569947542261130694228340930427663453137488484769800288725462455541601912870932657879673508964986291780941802589262122648348952197059491019726600441985794040985312950598381122448638998214198428994857151728688056138498841217081651380440238539953927635321545843693179592999462082207701004515640959740832112868854634216231236266567723276473551277607194530320090571870203719995780916702562832908645306500467775035678522250540198461941809555401351120387934634406098521109918313307490073556931755739338896524147280936264502938199251235378699277714423105524925642143521130317025779608284502183955726488207802526737133282184639831491762150636320902080522854239569683126221230077449475984018461350408485516290397980474859068862782554213492995294313279386927798005397171280986466255410226055206580970729134931204291958401915789320235220990069928025615819077981030019948770112121370147163784131619013293608097822638067987553330249690946754325953526414506109891487994771887658823752795566088589444306585919154979847450442399710516686536228552389871852122621046865833878645104916144594756522145193947332399459902620799789825733368226689102573527296677309302928773300050152220924672302532551190235416370222493188385175350505808584062609839704748679923802093802672459946705663882511686847360420194634728941638351654514314837566968583756234043740607606021953124072956674080164626311873313509562734037871844726876119805539056368867427173299742296214159895826007640659996468752451203178720686319213713553070188746016254726952665845275753461125062997139991820670558238683987301669222666001767324533025772695261355048757547210391385880997238372428977071066279629079648053219547783954630579804781227970559239587718261942719561670647237511656554784154216260853621313550393290795610201741731690374669241541752654217990096129957821029507960989866343434730648343908758654933425682289028632540932398181410345493087938070600960539128920136772643312933585345168464653154340163962029436521703514836836020915515463073453703205845465057070702913211753093606522499497205651028221036215225591781370393720204453170907253808581655244731600734154297134629775208380202115705284429628989934050859156873305383803670111054745155998266177608811629861247271049916890781682454425010368571861276884136209831091999160598106093833585530806464714165531212996960196612195410109623302750349929674658899355453125749933327039434270818790354303384348358251009701964830973461243227166559389373519266423062582641278812474676742321261496861077111990696132941542756145859112364462162220504759667225547338643579953719438127457031580350365912096265705559654274557231736153690723379467155826458774938322885490260703499747856541438058581620282188011160786064502878736649568516240549344302187951543484512881610959398184193959395650406176056679574978923633492490666149856171798064031508913222160386223586980568258268557144491168015509340440542411462222386205795697927332671399762787722141962660990319183843548189724532121521064798181874593216909494703740115809042725866814463683054606043963938788364225717835335490503531491687516971639318916625760141271876269000674005255067427973949249076901990509287165496614207675010368530084457244013279036259488361258478056492166151172244998409853219916310245457435141151538835724634377919338705868087311311654900295557888413708797121869860644561888213780485846473693533122439024296427779721307846985034537858240257011393789694262098665719307939466477701347370720400519970008285990902502270199612689837247155722718913167827880953412505701547190539195955626148623609995068880072896472442285467763071917332431599363994806785472714575853100266890032750184892585153075011481422587560033631546132488618869957560887186208193781177361309622538815163816648206023842938088062175725790127362432974491832596497922380099102009921961252158504933539428870247107283208633753541031732810520262846962831473698105795813494473475713559148427133171084178413620990480328901574856333067500186684291207187647590610563525546603979548856369794025467741916662932601399056087840336720581341648533724524101559074655215632363280329184971397137353968157937049262152673649974818155858167840724718298462727954717346861660553852318771860438184551549766163302952517892427496843408025138033848932522671669694494212409778364744144793506649741678083568082030727291440196879190751633273754988524294871882285587755434170738783235020282602634788224784205076656591165699183125143614363094906274581048261877554943246058354946782896494311122399267872918012855588478993098954012143643848008998951372707860086498379494149833881156611135317203128593947988643102466633637209197955379186726140589602193812457423150605104808401678322862432801874237314593362878194182107327095718076294181341215083515035901510657106786921018977009912623744869936224452400217072637849454685600277449938153394775648876943536782561145476562218586275978262938742558226895655433404858697116075648733288710874702473688357044999283030924448187548690288971855609318945711057564291001321310094088743087006991128482052507326519409597977381288668662599785372281859610133693730534766185957437240058731804064582648272567057594292535727509928950640330492582234881061057584174958632276922697015298103836208845602068130265091108187213497171154481990237403569572309074073119940140177943879452469370141474372764386218440773784953657560908815294396050464151581714679247271826946171429732336762288360173888143486309220838659599031408797736246961451094354846611084087993997538630963933375328085651084243794969733726684510124800650315145422285438988674183946401801542034626414670392656790005674198178949208664036148071067377116654683361929139448226047967777231059739956225749579343521898838845891103340775058926934683511433070921327402954658515050878874144546700886812581534707351575475210931034831880515413544842589844732400691232100398584712142957206325099850572141305939886688219349833889503390508821380758909277140755328201621874395072631615272511365589800357034540253857991788027945192285785874235090670235450118943517071748197186599465033351715616052817564157480118214884298009823916649389119379903688267717760467453310651005779158530728146333115406009310897697139352330510523443838172345612237411205656183982672534016118993852435474182700575612711270466122641051401648749865561817703093024205959159456362529948151373660991549728646731377886573645604927936413016011047041574673594019653659762461871841766496717186226337753460097647728336182859078571379433056932599466172616547309679816175211067866265402062345856690604329175900796995364757858646172460651193045021025653701737360811232890170040961281480089853008122625612852177570111114160854286353720061402991105707773053361517519333807649407096562691900270303469869225198931942402711628944645090340092891436306649814679087129925865750518976174768530719422489010173405872731525060560004159697208870189736493380447679576462564195115931479175326138113881849701513617572005671360154627409677515543694791764422401596162784757844904945975126548947187028626783072411227809766068983881954763165572060774723764677436213038326620961795582494018885455844669638279065417050119055426376916531985045000427769843372342686367184326028187875667094365920093584716054837065436701188998962534121817246409301937989010322470667654216099547665400107396499151101261589331090876524332923212141856857928848503291844429564527692059286126627620377014596349678360716471501097058141548127864665455936465210946483421948452323007112215515901140405789561994205302824437111885942656945197245423112030085018039411745226049000100087294149277908073009909995058464250581637764757169705297698547011918484121498376822727435797043967458658526590774057617970339673385537846964177601952361651875896955499330544512144980510261762724277916996318579640993739461489565101513328530242089758190620301826620701260012240838090701876381414723251911275307963758197508489825748927908712882807923155264963245687279584444079116741127501153205432592377774407214037636358860982662645124821950401524593984912071526803511258476085506289235266180543077175573720464760355699001701373604593241190933563973980657927815778876884352187352858201492419229489404442760940705938338786178965570268052482953023085355853036110060584035407645637793446902428822603915803237672552029788913385939959615010097310962352740087565103244037505930531657992832953935107082596226230755265713434358831664370240629292504855383843619617137280581305721840001066438512420305955559602527811276218805496052305731476239544999067230942813494285396037640948094655242379680295757523647805144731306727977203201878046677495073433345272416237690058719091072735451396543988067078271844452739093890120592600869053974769612591502106190842691047008054034774954942259488703662417166824775325221206203465588101266696450116793417479892961519656916008083888486928310160122506996195008458333014662404157410406618143905264211017121049131833222981915279659638578927322528173173479978128872295287691099922726172612264283936564637208639702259162228092405914134058971970962024007614176058286450784540929339556666641838388540074720270277546957165872492161016126088668003017392714748403405172658098722958590288234933494022882537842902668820414405761261119698391038174564876940632415456269996436770920886983904992273487136824858225782168595407084802372465630311765580640352752089957139039243185635517928704022617791058424451598797203821224110519496230033043713113217737642365147346372749262537599096999890018353102456563571785469429716498424942455568309418898818755053864522817999421399156701041230434509959628453634531349873061219681316693721674021522890617256482354613242386635870305284369169616490218810770691278161402423038050432182095850158859618267275174165570023782408174612718277623829737893132271551111982639564795125063712493917348402444895538033604844288563808419444424475369555153848081122561550482864277543155809174143520057128269623249675120442796037379339583893395030580151474597854131104338317547358211780701579943748339731626371969160291399421530277757900231056278478122672621872772090378288910662039391080991991647460814482244449979120319276847983967558253353101054076118104447762215713794274234466229909640053817329040968509966386452259058208542481904995846072974638828737473299856933550733633096330705837793279559551042278989918795404757379808491000200354227020845047306091131499488186948681232616757412308490322864533115506079874312047727319622965609552307812611379048312155898611042803987408959068761273747404421438842589455475122677171919994921590987311256263898140797233478747764178268836673007028971194321361514934175135504992229549566207670937904006856019486941882263266015520639075452141091533755039859797228914340339640778484572598487045051590584900426428025751281425060756195522975752514090196435065976002226504832817292822900784189340330623451637084481064480024058709527680522312187577714451867750113145520033049809256453713437874432780973444717837249453479563607295150205903471548175355370140045655869716608081384926886571093041300339183722319456171134818584456522874520834193166329976608381358578264134854253690804668231551557980923784006777176115050073378510451434808508332162927507046936605185452598946669731903566680416335152527062609666773219377834928729734933031670062663427531649847943530379632648681600262226213458199564173714935835518905471231076607462553750703545838322347974091916728402796883199753912476121155075765521564396763445069980418714618257552840640803459333487991975681980384491267529565200383329380254376620830824139003708132892010202149529584521195395671843354424832686699029428083521662029708309511163192760868734193463920669373484281591480665419178316744081090402028385112902758804765574683990951219708666000441712924616738812539498963238748447562981796845544309923715420334340381612000294706292330161589044349864555881623714628820116675184001688568137508254396541094873373159679250343522447961557801752557573314706808387344051281152189997411318949477809537599472062052993155531589716311642388968819958585238919620019362985174280938010926297175094518912850498680785463300551364191144748585038711278688074921129150207282064160152340718940630341840737297545809159108822420604946381210471370881400880870768269560906619050167387889194867382992457372663650887226614708549442579817278038638082391346154724395826569326795823825237688472353033964976535976847306966570600521400885769322400202485137233880678278244799257399296885949351911925545499478224175177103327708301251270496207770000286792590049474368974530041803687846843220164098365132910884916537202209227042512092348704174378493822777686807203417469393521290895135713242430744858468128672963089656883360100174878455750886229609019883387075457800002074654101437870671214893410116069392867293527951212951344444758035097389586526302586417411226065710311323945869015136470604201688927624529657507351237243481225757045301803776974075513895543328781747735642813609272183855533404310489131734165526477557121988420006760141641324554729366119534417219477789273664815496898989442175727590410553683432123002997590691818898756015550051786920217351560887955949738119896156110522737576742896019471967136075807248482971476391918631955186849405615043997999775947643859862964111834811356387603383815127214654394804708840468089014394840168950024739307625628419123881299411865869267874142574962126626161727443872110233450709075202684058861994163393668629316970667418948751603256348258096469656303208833976996842095974893108511372114672385510422774905382869180392977226440149513162504934400587619305054363716949107819090486408195859341689117471360534348880776668122204363685137903613327826433397495952069361454778523403996616558518325385644575035827954894500028014053411351443600876071490468477666680842274935675269289526309915625477014089016641745262183220971800376448014884285893761073422971225834812245378831751964506377887226635203547248375138658431617651064125539985223276855210714672871919929546347127486483507655110981324472619636996741069353189527557599711094322068638574333405548337562467922880660088804011257588586139462348863579732595626573384196000501841639379081064770208775132177499694145490225712449821949828995185200240630763414697280767158928795323699323941264737468292911397666980534081484171124810458114711803202030986030552495714818232184377684262060829703084432079639133947314916059563066041047752796005235392103432635475129063508610267735017854370307765359850679394907101265220816659426549390555963228752536763305540215988594790112644934869923182752177540906663837584208023262594903359304360165456984593305021265826890111411668143326899604670394615861369356953900025153312557438059782365717482679033961113486317502959981598875115944141804313006388442123274701022979422675127075310701145464893053436507680462412682988476704491987355175971571091474165047327124788969092055729507624733339541279978910952719633606780559601640466623910325201366263771774659571568220288592214822046962301846679803755288808584104002628252320490663927470855638928863253854295296980603315751197265428804435807414121516683050209414432299349538827452274668129320891865327534627000052874505679969931955424565530806709345887649999936158076597016666054507102448550174183797096024299815339194287298691062806041086053263625973756063902413670412367139598099357389510218367422711064681467159570006729428675113604980226974529900687855041375657045591123634411716891771280337808558282989910581663439446061231028735847485812899641806099221524562248100717079064526933399664972370592101946331614157507145527301521447094594714424142954065966261706047809507850695330079368210440359577216101687849717938250274303406326195498396903833848605449790883889214240196944574010777324802396646331480056000129756792022120520144151852647769234338166333179975623911166136341677538344721267759869427220638284529507127726753444351356312336363410206537988967574099591728703931434383357671700918956182108392693867899397337550943105856855531804442559198134144300593658363523005982742172289040407373074131531124911257186814694327093140162864341883184044758026902671625816501557662475716205571133204359645224322294912560824368173126796048288173505351538226133893436765882120272325754739574025279743876392970365590088633099411769219940443527477173337131347498184398277486181367924747244610152865957211493441508111057460561296702330219999943549314033860396730398796783962000266934797021858981813813710806706794537208487909953468299843877111936480262492219539602507602999436778429152405993648584817089447162500283276023590400083221345154817169558734259476009645259031179428554150200976556145929884470282900922981751238563158645204935807961933793588378045435209769180439912029509631357570927162511597848873440192140930214160878794277029110547883304997841902544317097447933457029828346899556974780321639050093508420693141826471425645312603521585739035245720854996632672005600310014255395928623404088832295962058494865025508289028139686484048912893692844303205359731388037282716172071944375700794036328869309493546779970904212051425503152298916837988550492776425378249316136367589994415400689938413342611700582367090411281757241310840675236858555767803137722492587496887715368703082352930217757568510450160281591668696269605072730836741851115057319079557256060705739372009598009797388025586410155899703289289531935771689818580789935062728461821886344709701844580908344785560773686008467951032549121914048562766900659700920533076353768121304225998962171012940738551366017366089958908090399346583930980367695444088724628520732513129381458379681396693466146267074528495629531913403507043300511808307905472597967220399051675064975649237809429116633214338800937418673772364625672914552573984941532708614486674623892218207106284165254130900292935456434144703077320682753849508558505536642144176768541231771967335027760079140849413246190627789867358350929040601175030304815914105211800996614317206156405506621902724003706301642071189517526367695526982636792414574876200015460069212591516923255278498188903872168370722279273553097069497350155567345117743105150644556393035514452192096527867201300076134709746852263669554357596304753065962593199430762640295592133600790235321884857814889955415314590687705153852892632866948360032259325245065441608779489584146882243754420150794427526803084031317207951510470428389631866525064442442547214970870192603861747300156986142191285823734730834056658251146351688434196768293252394468512155682372152508954544230517344766010007467285015807954940864901918369524869216930720318450746602455593869268833510807435877567437383937408160421626396675965173111311426212613859807183040910658027441426491805076452234866488415317631026592731008678755563586924759599251297977856201147750909634603904423201279948208669991568424802469327746549210467877879615724796217139923262088316980748027486645549186164504753487840675166266329661399716001951975274360069125966595035538977596200794441906297930900309806864426113073895266249758496500738214852533812243653176769638133361935195123029442678098361493714313290608161416331311412814172479067627912829887502928559749634362829085240593986184901510300793207070760716519494865361994675939256070043305520376445028721055125011785208316479660476208491840240918761333804465455803684983808820344800995951794754847493781818123379417281502525197558086580406039100165200489639319883673416782759713140689747378132263428115361646870431410224452199473772279824969304438565170651195725857617622676898969304289487499647143068641783247952483748685764034727660416552060556298877409591326609373987457419350260037631946998050149607743402314665630087577788409993289305868074928552262408737667054229095379697778214195202001575103661063946901181232277677086656653590649853961512345517608433825579448601375614648863333825748653989774656655858018887902346163159917852559672830514081338913632912943186136148925526565777927436751193176226207990035420379511447286580072168038897021254038939985212271427953487248021199459666184325936806643242501657093979068994552917322192903635184668473785126789898166693143860895741587689123224383541082812695167106773965050053341047176991887113927438640707779595020689746339313091104944148331044865790625566666388559385222646085752341484520485227242809244771446530546626056603152076685988853209959689738775917655776347755672814434401167854669279817632949796964746035228417537648102592643918099553207258518193250529031232759436065647593126742051184912132921923301397495431371847326098082190740291982259798488804418393034322501815112396082423665842436247875282211848935201364588556154041002266169905352045827952153630863835211524928448320541045009427306107105746134496678086733052395884972512277505058849208277835427466657576957433704034339021352033825432510385228265126407451355307178697744532566909438121132693454503855220189590516934255669310412869303142992415666942215804738409834630707913063233100896858888117144218265218895450741826950743149741745874810569680708224973289227228727198541790261325607918465849099329797843502204785344310533647364158784728288331992294524050445495445449410146022114545442023267553795016613678200175304943858981791370622542195210381376026804282541991532994733232418255117077338815432062044002583128590538870545732528502969444081414367509576537294897736930979247769922524548892114817970680789345188532630019247667218499682103629919699132233376420111878017803924076687988445279784587580309432451704049855856578178645670746115157627160284050431191856583148386731223409500435311926116706485612678096758958811820443019663108481340386034516701184788993985618518678781066694948170648964600256801592673071431213937883952047903765549545139622446287152750654208112628974706810015755268729948965495868639983601555713829702422522982038287833012895813577358887561436538282726390874693551135760864931688274601980430518975576063726295224128652518886627123054863180437817343161060450327131368105936170474090560075184229879332402509815374941595324404960731131965045833851495337275047246415980812913996173348703615130600146921423022057492060673752873521264505387703512193159022242233520414123185327704351118028155950253015251312368851765193927090378329973364523228761175024248763407279257116052110535947806742404918442820576765692721919193792521500165979981310328958486293123158607152105711532178726044802064362176470292735956681654694191294275452320819823826756951251323755982714539573979834769889451286703985208683252562129161412204582444105690528732926567781747912009446766287396103495885736851678055829493472279611312658662172104988488589567330835476903975091711503163783645334813634830058552895355806339642328186195538044935302605024740738168002652634312809749588313131276806839706941266438990571357190149668127385119608066845875582166572568918992797265199057351082153668038627999477586766663131682380586968928002067532994379691360262190568927431367043078299665247531527103837419349449526425549531569330868732326987101667053688728498238384633758544355606856559458024280890002785890595877085624734503512979125742815008646718171915780813564680891885369971918074456868765606972044929655110887941279214977299788217685496635614049265640286418600151844897686473357949081248797584007197050979881138520427587148043357430288383344852236827747865640642167880357191259446960309078868820396393645874698482016992334614634674581245418645847617294317573973747157580071021466335372402523846056374555824043571891485046703522192122560873649281024949128303540024723082065752391000654560079444031378623514332825835527346131400281784993281836624738660476030100863027048446655441631696446895945211513398736611988469571525684473895179195468058732159807352835000418946897272201890929275164869192076486809138192282530049524401685510841174933757249526654105464860966139369421714284045719983785717406439688732299372262852723600878850816168986553815156240344980704127875064955624950695888244816577935554144821961491735297228060851512199548692473587748446301167255426050597153331385691747122713979898863973033961269769611920418127695756381792478825855565029634107704730408632687462444625160406789564551735764618741893591462168715658374154034007438726540234490509272201199295903488276795646999798004554142494104782233670084624048207047622215558354713086422470491903040891469832091728376950740313266070784702109586844347249903540090276260027933526565884714803207565969964619084270049588554830372902371691283944158588031592874033398682134647707455853338513441605746535799592202207135093223956189596065159499184715492495724417141427054600033071457471794650546891888599139253561481691812297684031125647566006908492367496632242702385702832954111607285063696886490918548096033016956969776969930928992801448874078329196363391964697910113619228813275370127643130991278777049539952238770055997268790762927928421124424541633938008556198723682611030338524660581626248813798960411569187725487205126043729479653299047581061374694291418801090507490748731397466499551774870867799494318888617353016725927597519359140960651610599984910058292481047036439773603897825022351548519279861641707748727221890555054023621090742795155456872314695469648730038423840258190292737788045604119712270605431446648581632106934584975588508235885165382611730055968867184888046638940308716979104671645577370446031306698467445548634624061011525867268094705318431263400959442276380630979923116086998477550987104517820445958949270760490558141221059327497959933489215713724873159168045268784621290851647368060553567263111774058719714839190618856523533220732539664332966067778990303437743566373671042352664226168388123730868828462272505379709450600100601647002480494926284579562286102321434545771627698266244851823686140190545392657921530485559680473926470509332906180328835499229291778911343003972702413380628128344936589761320332285890785520428195447163581734911790442362468213474581406175992375678125120135131878260531347961895835909845018115724678849454494573392535001763768810531674569005715807188114907939809054675172385246134144163512577176945820888682937115024145646963025764231642515835943059259074614516053353310160498294005688204484073977134459617640034324568674142397678105330475857924385350659391000914644757034382795990939010866742918679937818148061312195559050139896810358641726435711927897490936701571905288633285414070266199861361847568340335320383297155848161604207267818432289681361927435829925166592902362334415760972872674178324221056596902409631143804170771410252468340487622606951312795640339576913913172326259394812601449291419314967457030549378147744502719646661434610436631885066491238757598886840993205552404870132607944151379573527603745015098794376650407862261568032057995933603718104788520643643871899184495400317143276518727012122465577720122812432673626442571472757287223580002224768826117099153277903953378538479616857434546177561711232465766660340309215031675477491841644653698960184631342528960772362565084525718071530940161650661953428319099089925757234460622600075198467123168880752103493798330760917866983300006946728622897041298973871409541100828181637685320937347120380086444041129502584858500725750998902024217374006202199827918029705060916273261251529267984468961029127386983924044798658217202218854506513332660230074548844770985916328496714066781384188192868067904680351012985723567442640629990478308034315849856423819596587979403820379237980472794299301824469264292419388674432928230136417281140471489328388343174623802532821999699136433650374467035506939963604506642928322028698786271155765641084526948859486972572266894386006888490160398020035163882893200028616954796292408474822679660405714323508536981407138108866233662024665692918494089305549492383435444816030115660754223414738553211104016896262906428206033938486433377479680467292136570626406970119800905887204264432311493139467536914607991554952680375583595445889445411648920928932999871111437697296718211424620436113633179510251495439092922467968399834917347031847528394572943868390185192839860338408934390285445518791476529595463573172185812383613901950380982694935057417532008590136541900271685982492859870513520551216022250843615337189862726093367661163431944282882249620825710433043597243037229118608184690330144692347714050249893286466109423142104108371838093065068155617712242097381554006219120520124687509546652443181937285496942945768956186443362025048832670714599116589175445599125561334320723636666385623981170254035747803183240545611088292147093109045607682170482121481539706842537440251659879773231422228826328964639636066710528851969902742609656573750180584381006652209588480017693469765512796254933257032076536386446280586789821257403338502756786334675294684481860658681247740611644673878635386595768252380395028820328999748594831157522789319472927998708338408449837603926166831839594418865009834145189423253172855411133496324497962194822169443646696271822693524151489486274121169719622342790564821745732365819266115395959121250564934615323139763243966097007491081684346442358915040244257927988159096100793275253925489022602281899223461050196229159928414672443748138724638316452418446134705010386876860164810742284174003822236610592486274272428476124539624102431046923718553509719505356831532974631706377279260617676839729817062496854975121956635607303379445398703452399600000859780020730387433360671898680294522589734278818098697881449982839717925761039030983091706923942375918799618785355651805344408548331027639687863192647859062452369534602210518206797983449624629791793219217673112957631013566756250941336723684539057358463499900616325647603754608637415668299099451238336530408217628564236975934612503702279323503680350433004885822505764655445730351119592794156311122442646382474550052506967725650701197410359905122920171371673468815881124509072048595243015180950069305426571606314498590472260050887172892044985002050614968388840924525793656929688005929199447429465289131386017446081808184012248975844718281057167695995558746481676614216162806748517756107055964143909434159088879393351060444261737762452817676946135511574052806368649383657739698694418308142104806078333937448547153894547693698828263665788296989233577315999799509377701639672866816572843843646432417905352280320300998298949066852138875266651009956492144275049754311193003091129171662499645253027305354116191821799371768479599873223077186123952122791877316417466361709754067622241128229797129921079206770174443639644167955105666649522974407584274070941814452670427303995036188850385092384950590030842649392102038648609472001670671863251007207846670406217225077929906578050930569654526517677720046588416959944982743726704866616247654688220991288018224719586393301124821484960191857269946991496532861942458629896172797175324939272566128099015532384855302884250641206452321548447724718540150474622323667244537699723941038195151105313791579765237359819111142519344911236798648066610610645330864609242771374829286159624273110454184384956034678712897045051978309091650719364707056595883248584853493970774199212162523425055198873758803574537572130893490792428704014697476164551560520086847377064387900468339416160518172065335937523732159795732053682325309335651806135061350849240962663563980546695153425783811484844326597930692605094349605757379187788074295983270129986889931941988809818066982393544306975502706637454357328267353809289269483808229843380301961655781560407747129268188504856981516123891700159975942928585262238762463194886488029601786984945920184763617332250521413299476534523018006512197791955941227358212807384106467516026250546347022953908301686825376734413716327343326064622277050967666336407662258122102918928964105980544602527145958042582510689676516297051956990492468195972850295712572530312076995291430697963306855030929014586227069733950320579984508217169081989582520949656546224751241941708896965561555519503171087312724076709109833737404958717847418216712822713920990802246060214000566299792564298237485712713027391755857244942106351622401490596935095619055747350968378125157593337480141452136044925529145426784501731386621727727808709270918507264498524785577981723493342868665070445221530709907064321603675159107737342159408586388320637001036653683576016994753073949577365217363464832651738045834140862976333316227835080183328704526070837303183601625482232325837905606796559309955986522987116646253927277712446044511128474957451478691530007206389183363147521126305354614358191996305290140249635661779970309232505578288843847138730152805698817365500353052010762173670350222875691757660145109514118183862851225537694451370208225208434884578375836456977541942081146164090959545599585278374792116499088524142590115114486586588825882124109821095883437571685741105281487305792460751976573446312707700643298840572737210858058547396434923951574791583993150593242369358140174022598300235956102193800940665538664102272834475044113116841516643586234755063693995764194935025791135680657185405936704655906177452928986516728595779601029686112770672491358384713128325795759347190435165888222774123564439543760484218974553618258524344095661166910908103630955731861197503245003347762237975898277214730428194391630404562819758081547237753578040223710195413500010818496097325357057136322234156629909746390970652028603183625689900482739773258503921312842316510609170154228190759846466313536171240885253725857008620084709708575604330146907148932691953544242919111929499356987222592174688709094502159699100134581124988135273993253909037798536919490224445034364165718841928840141316807741974484690132671565118272966144444979780411498695971870319886079979865786784053772070092107613258853109757145221685024692293965101322900569881961735252782310686527950236477574153275115875642880377776579296748059305296875665870843685318528347939684470165687309449754596285575405329981385056344713080590274389990131029965100059623529586276721787209057636559312752470500970131105864067219277960070589106192819291437400423857697350106482308948089446278135652782454103178404262782917817727941627633626046328710362772891216777818936737785437675285343795715310750079623384417570416589976601275855973375264670854531240725475675089449463937861349581054356505642068823502842165513023731550385714030636202364987031515840363702283560537553271101019491740285509696604439037103795480493789645292871383683635833864356186590684007437850632751354280358898156205047069472319562110495199606543883783508376216197589903965980280327248463849802178098425638267518122923047538930257944559955092094878360822181932350783233355093244371987142412177279618085573241938392754662321204650241891144231192320163645493256993878551866102045339154163729268031761371853404997602297146250610730891116875046102255275899954195504030198651663808446322372847937572117015344430538850676425190746023812942565806643939987599449766156299143822301349260781891746974329806350686023073887160307070050187653410475186287039146432990368976572671924168763619891389653194779206862588994315239653881281156770646751689521443156097719113329164199666806481544701673614210900578615507737297032421839735347009767339820541330615975872918857746642523666874175309508883026222953609449717964806464383436322302552334196459122508617002111527212001095063316552207910591575627540255917463276839167028985947288207121534639663549408107480174659299306736777296579009773092309737255992225756821225931810542449491331360085848872628043398734594437276326610550788094184255758472580381276614685029955487956968881577883358097452623896580239061997075529994342058441339923021795317098104399550935458493708892459969233089007990140825600290570886537580797118836244152363417485489029404997302418408193652544170599652515261924966156098111208315850243971775585850232153581736401252297308892805063986473287645787678930287829846390723001312590817772772663837820350664967746538475615289018519901872964619983022466099290068467573677616638596908646661989077043144907932127067288228417794284689666142162717359660464246709261922872156833812346271820947890719242381400075652251627072038366866627701459898166009197941793855082467080211527439005470269200622730644791364860724726228119252406574931787002901520604341339616474752857239156349737409514431302509527414044555627043836347179857077980724339307924882976203162640992539259629278836795810660080998440208415122353905009515064132652328523371562857884931464568667260919242203607211677326561846683976560013555105618613482667398246358160769687568140325190859757034629791959603420147008984369802896231202727028218209147534700093811441066634507687445833670630218749465674607119518857068893539445964048790849500474221729579123357778071258617307551828407179205605795434100632877515908176699890038521101947408979931621070078879458735304046858914997520477520457382298859030475342512610434256162088911057200797538190491532903668091537503772083486884787359747788812432674111688771950974262332760745545224501410366793112538545755794250787925025505240631460299975143295693290560880263480236058559853837538797132132080768960335721355275254622876366117495457826775291828587829599916404300881224476966100721568584724550506632367825652197424211096483809298435187369542569346406925631753349827477698660786892213457397785038734031913610192171036792766817095576745753374896505665551219278789799081609099929782018392467071150430941133647053887509587581260932613215237149679015827323648107675843221724571069175813546746409213593823522508864596347825271512206696513648601859672988100314436136254989357289029971011066754618642909680689115637152167652498520690696713377446488499552939351950250490884585179621537404405674440078362798498255326990415923952082484918293359721758561839463766834906615757945128599193404705373227371165170393072820398889385647473755095038634379097988276028457107580325152059455536073097017960399734379838033995822606429480875149302356016592502587726593949177916328873323055031343297202215389195004843352245141525817460956105526457138936873460079997116747184170692280762442866118650521496016780693024105148489901280013617936746433172313725453680932917235833700126648123287837685634556102967064834518853003734526833471275713669022947793508683264057877685911370172400508392764517209239548550300730691491244365522301284303466721840054582960378996523301410491440085680023270863487225138815267934910938917525250159001347810499170825470578084864019794127517591292545694266036758276893634042333553237973849939531160509325534182093693738142589994017442160529762659241034987141043096207113693652606709600696535048446011568654464999651921490853733592550685247569155087853254724734788291000788019392102951202674279856991552070134224586376301066667332541930173881748840268552803672939848093414855002959068061045120087302925427903703938753115404979484085544317720600847685371911328685582015114884072647896857859688396422617431234928075866253195472931150399100926003401631760873229059137078792163428331580356886126759162954174771281627777125368050006731310752695599103515932343532293215777899441934452356254440991759857927028565570725636140728104626986497491424699496445573956541598501324775660904591105617058411727449538267014405313580992224745137819903105669356831831725411072990944973488320771645506769930501019016606280621952841629152560057682799439752474257808287878588864537592451025975433955173729824968829985868766381609417311770844483173092955623364452720907630218387883226620460323268740775713032960505122420647751710828837631183400195950449387700570350804976091903378879435495573606917283397328271267834147336708808727044340343381663654981348597902841263561453012896182885051686702054616562147598127746699349044781243082187785196211016208955132772237892989146256566221769504663799681366871069133204273197206568061971875770594759145593017062388016550015987239468261221628139673714433469652782450390851961822028459574738297357504937873107493039875290338662736443371272499415683877470428094455799278382777655625919190618145564265158951520072195342645478294377724418770353887136156580423533950737995237006653707444790688984203710451838450575414937717228932651938506100016019133660431280398494427594725244607217176942895580405592051627013958027205654945254441639063118466905577362615384285106579892384139984440763028624543765633345956978700958881792351899923774096613039733921228057403744017859670705920786108579760749146515081622628714724254438734002373284798444821111422712179112569538334397596607991108513872630490978015115537278388805427464130108294726902443615088360140620362550371427388704632116602492960991077055900513462771493319867474040502668570222758156473398987455837582603457297635708263585183934261753732784793674988597926034701576550318747212668866899528330708527367049679386251526957559098758785817398997778599011509633800424802670995809655180370779788434865964517617111803997885918489021131826110402665980016795181275603647482378228823259857929668446426536219289783560865494050283303437001479530927990910733835413133699805143393443680371327174452440447694990562636910186664196825651158511208439907453085596265390854677979194475774316185438241866187421600795685270420763010825013217495440311531935388007624634746694962834374483571242679948986510893814117613310462708197547120509340552714544842778484851015641962492411852909109654514894994380915616853900273747159679694756569815057861369550614604620182055494247469045165234797449288015781951750323569902510824596206871881608096141222495890866700868330557677927915799551506171318319595909744351106375012055055234124840993978263873615087089452813065332642788790156323429946558967498050687294051515126221340905657473110220773970000032833692292091682408607538677491986435853124901073831363109059668696383620243217617400475274548426401378281562448931770750575386354350372399142602096736521754988560499726252245752584365860446085691250704474234374536367755297527765135008725101186072647537026640597384396555086162803693187800415475385133739880388261611947837479602899859170297492153162621643980626528787424929180855544894968187924931381882519059128303033217994503005653320397575455961082703734456122532656422478010210359708451531371286152863827835883346930447748362423274695155695903649882993826620443998518267491371600243430888846774194821411933673317147061737018024062002104872461029094344882274561585284847769499870104561670248437128592128764923793793228658357913868279768603967053299440897866398989471732087999949771953752340476736996719229829511021997444246473431001242747126874995270702956275247145286786917548252703734397812012450897648326470837407641473018377782813031371620363960734394268244237795214762080117043025894441920329706270908426842920239795115846485314999050481289174011618821117670145019425902481620283982330885626142241314318610797890784226627457811113170893463459214165765746403845265300425672983282344333909428294092835114640122613030761415435674562240448527052218806238053470749851552262984586216860839166660254514363106085808977869401712851546390063908549474055623994960472915889365413354667009898622795862549108974093913532743309715879484218374520436132768814770964406811863620129814243111025429479115508347003137473413766327963084052054694364815072225712051937185076500395256586409485597346267778883084436453984086405785735823678070046925792671474919528027467565025834503582256536762818926974346697504338671382992721585028306192678019454736207925241613464889197022163885192740083256106146105020676437233955517117895613165724858795613324454542241171497269583177399329448339683054260835353558538613681202836915050904629071176417833031863745894985199020073647593204734462626322788306923846109129070664187290884043668920905808565732515939419510606599105824613771144081671632622832471511693735325606385225641467386680574890802864273182117036288160544018684730592163897038668669978012387919897491112804734728069249994635662197821262036283362653766624688950683599265854837440557920114393352283836272041474126928570343226407840056648381074237157000836468021387391779840638144358569883953067923650749410206973096114265262278129775786270667590271512794507344368271255613512219834923262859949581710293139582004045155588483193378982786079170374033765171596962909010741126834593615910799002970664287810918348309216329122960993001202494577477650967797048411293453339694846845886788660185771364339670407594109943075795318161655892934523701731259682762689083586396637688459937917417349185227072022877037010989157981815677292167344297922196522755972247862021191476128925897385203714104146403710766485578454800207585918482766166828963578773609679988388107117343814701366777398063188798709324871380890666323981024005416566699070550520903750527565933854420791232871153443242076062942022373047182431655866230125656034230516344988309993614788253204893487875966448193641296541969143037777074138016510449050245078562649195762897181303363960575239532559085954416656234823116583916708421237980458268587670660250213743647902389572960836473594990669508768990034214634208633710182785916183469001267174227651858438771968882059866605690977096416472807643246636364348120677636077418559510734370652782928339068574773323042419606975737198990557234337625544418935027444957214027576259625466277153268503780899687096147085415422574054446605112329587623937403403894604562310093552829305979350040562500752607300318496504863367809214089452249038017075968428045578372574570465910330895575303519401851984961276073098184561628548120027359297823664443334256157505979478006777115771433449021889123997644897762174285952780170696811630381933520440362482772572384504499047568620661736541242348328246329940335557246030423063218223883605044795016562165312018799353991275040140582570387979438280445338978894219707373705328702060502781541438456559051233576167356803976481899586643165709178276247410805902764647626920067528654716219646045013040412134426166742963979744321330438055381336808725457897511079016364265550044003865612134734499842248845761178385609070419490904293297589510714511682457370358191047937339964727128611966537583723564075129969061345855676816471092168418957015686077311140312504153045425936162964394777990903883014885785361197966829112476250086914451196737226448197118091311475068137517807473778128267474694763716990455739889970612272783384410448764428948008121028083828621200019638737418204976374984646058744981462752976476176919818808452259059358818637054814649729002423956103145964430502671074826400220440570022085611467434118965247183128059193632395512412780526106086287145088514038518722462468908147717168734453517436773389623219200330131463743641811080619795615482960849234069589192239631304143694917732043151152414259656456674493373301205360027532873481355215084778793823280072388108963663666874747378447519233705402933969602621012403159725115278926612374414325975079688330280233702246604040444164317798878262963489181518487381079565940531496223571052042482251957564606139071218906068702634615529397663367461199654362188247015830242001009306552523696991729139312582578099256738309864795684181463434503626426718565357918470413608168928758598937925881420479720872106519559547765216957319357420310956148166938021115682596319964304660573945374652364285322713200361415958892990425764898583584548964524108050388732185288379773850724047783192395256261729022376867170621477544414581022662410009983152695463595585180096091591555475215079636276377254147379076845764440975274999083653328715537323849288600388274496032515447734358319253271981753436491912708190488611216088998608319876063191568319567695735016083241282857003655447263887098582511120247170605944094384248970946416586214484659038524014877283328529114924434751080239022358866937221530115815499844858855036347662972345169336463537494584986086750058422645959465303981107896308663065614660606005859343509564784762505625676349346944496731337433156720817864865670872768310412569560646813924760229655056060509810127821399616194392112058049330358037216205942207738921029437472415059596136536407894459845095719193245646835079558615296074037812984202689599544354273469335055861946320396198828167944398529263205323715121229299899069367091404493357860450612048752220438069695449125456181349321110846030007488045665497517151822253068839116357210351200103578064183220407553158093335860903015940774765744892998323057123650002987878058090003394976213556451673514563940837837615003960929255865552852634709852245345376122353282624685654940936642789374434499086799581637353152829607321860126168981616671300888755988960313905170569072560847683148680732146667749447857994357990944077023863053078913612187321543331310110741566109904563890283811607405361016933475962473597550244192270078497916189008505646703712145221699423195662411518081261303560638539872115351280129685072143758706055426810116218722940186085916305651315095817905758444016790557904312538523699909833010602049435645317391753785449917872361161896921977884608612187927514748834126506483839506053302994005527202888567258769695445291829448904009877459251002755400030173578450539533757960709398337700913674701018321905551164037204382451806915680516013861360437094653240917483907505560532403996958578496983174455032175671747478233046007221818379385569994845630050948147191703734978956048923649599601448932071679580949939406316783975655933197017863167109644533809149731740584232646248063573609545048467819347074747129747568326020798855764348441087711366299123174271917425841088130447837112172970305881041978852500888542576701672845742129248747583054165507214350720300026994007259622187973823945044969642504309540093702521456249600478028549545542951066570923619133968016251700098042554099947538291600617653085036307029056935942692259626799328545375526848436219104660260702216583534764622050303729475409581770244741042182571705894330207859583818860345956681390091197524311201209690282536255099997397317637532710039099164781374082418981527214258955367316675084112257813480284105261728919558338982765492255479534905902955227067075963123877654688006343267587953724100103049696769015577197948615956970367630180516038978613218442926601596670620422077713095346441441564400377648156488405718897238748138743741617939327362722176894276653211854700547028472519659102726385941371247662425530516986853853042350521171221346818901670690045716107685819436182882753172654972345811402960768905481292164647894135164759527031194881247471796236867256074853731551437268526351464778032318436495521908680988286983322283711878298663325946642018359171256760184197690116084546235450258536664681207466013063591500123413159955678135494462815330268129577710257856709994644898849962243670295404241433127782710824593003920548991559862220791992952400656330626268812765601354089299678576312235722855603218624077008696034397048769094248870355901769870956438615654728021376344261248732674903411596035757037488981588870441949412892418426740234052849111905255540526799407520407631736194137723560134218039807471757238317858685179808941216542753811202345460249508476381619161538622445301080115148631458887992251162678956173340005394016299430649247601787031315150266887168104523657443960408229130005452923090681164304171473505167927432202119359261372784941290565603537753377903545273978606126347505272586900879608385155005494523741268118997685414115142267329501160387539007788368682072858567547864688421318878364438212929434517279048764849307307035177533980312107382336806764472948933492533003490131360449157308539544407463741995963561352475520333874774266475568301145015937765082727517735408595677641522087847578082361734799452935552429533050894686905255884248342643977322147622293236285848318133773998263522565640863449518516969701461303342676736097559244374280823545483790205299342520985251786164371247490650958107942446671358175451595154987362808678634912935684806976306948106051484047970785583264966122423472372574532182159897590247785720906669567268634845186693477889036990664294314747657395960430986191700891069746163829617932259442517893554819157957224229694810386947161191316604094616652191256059418087423026592243406580343037220232284508680254908328085920532056574423237264755988887145136959677885266779136703791485593999782871686549561284591063826090870135569602035502311695710592664170891815490679479461995924351989895763118183554562085676037897455716422582510018625827997986409454552496016271430524594846546260893273857977706846033309044920335960625726045243777060148506234935843925797560335060463463296927743138435421115493790359035183769378287047250566659221931103795158750840864179864649371862782107556239637470704458562535443069023013070534103995355865253439936033483124907151922034152019937030891334860327933096996511131163956571331964135905655993126107818301737789231576917557310022126619490225476886525910210955044727319826940492394625232897893305764347701594392363136609812759688818611921554674046620200193751046008933044020191078101130401220320171378074210807884657881338843901630378573229381313886385754020488807460573575556598883921917480882343374305001243701277510627789338837316136590590739413510984950600959478117046669662489845519762168418959498254783479883366722531687180847816137694391661268655794747294468652155637903651290591084790561677628862889415720211102340439256653437084737015842772532608844770163677543768870124985699004200564642775033712219712956018179983492427164529027531654015503375115407528939078392309773078251151835015175609669331055432476394952028597061436699872336867840738340835422990419485655191026491832832342032741894432159943319290352331316393500758922546418529007818229408320233533789229353262786982757988840453387450307936320402054767066215077619582287154250321794844065763671504245032482667386288326949635724325775197335044086564163829762130740550537008832808292736977297629158910402473047330980219178499499791157770454296728710859876646961195304395632646437229551327321856744443396498945228563552627024939096453555083018642951823947020868299264179688694888029373123707705780112067911731664028895878644995619708185770464223024486086026140793436306340270050241629775245216082482056124126079455656640194871989847631352172695661641487822157275312898834508575530148091408431069938862210018084259692099601347844021670065461144978329093771017834238611353730323259208306154192907012491564849377986364570553205832090760760276787537857289009890374695297474902650711448980282966839858428915718204381511950181947516492875898247698124874881548752759971816766644356592565882505346670367883187117209091313370458010720683735004744606100579427671694326682241759615438344256376949766543607339070259565320413060197024350472028480833307849576676526267227685974903812458474618606653257309602675433916751613990515464850016845667570420827515628344980550589100572543054414540640857956333090658551855350166608838395996091984071941364834885242419754663799917859133408801024958771220192384366605185583077963644614467366862001844288101756710947350876122311331540987604052116627875969015576527252994492328644011477643860647740939179623111610512190074616613670795653258118135318592143834121611852126339005645414862706406543122896938905524545138400354583079733489421259620881111333900141123944523437402260849722302579721083564803918348292639382294195105663636953385412319921523433591194318210081188985231993552282734442788189195819516865795712231919608245846456171585974885277796018174210088081000079006895668838726390174315188691835106536771231444028205040775443902249656691542816709686958724548409997319755564652474008214183867458602327777930085884379592691863528172727150499047721588988604137077937518524958220844763435627014527812771301086921024612206123820276982249159807882064782000739494013412683897839921383085582861440713527311921290341646875928413383529851532932060675002650767804566861694907096196433806710186855939991057389827437555088845461676337161871184908869665381544007281332444760658706224631417825670397936339530144964826441346411234925597035954514042282031706688866653731675724029966239122572320074386223662563208053094494899067173455921388630779350088416755064141372394851506643233044825165053891230045091806057211318330717206247021476039470339207118677710440843842133073939102645724652808565027153164513125769399051505080808140322833401275276816065722254845374678457119018383043115161617087984728707049299265730696996563364616964689962685785865654986111681963897620471527725846929641411650402775334778365168575375566817083538954045994534477141007791449195023440007312804460726208398804227791797902290664332161124782027806133018714608787254058297724192439022083820188964965121670424428289456619293404776352663025008661715678747910629593385767718325160646042702038498408201028678942071097613301367431800536343261325725051992756609081278500092906084328735364780553510608253015289722059155455299037726432653492335115694828887768478416690070730132113650293865536357400479054853064749485170384911718872563140397773670619796761874528166700007542955979528326693495692164324749675204061907922803571737071162365917795523234624590086959552164117075675674988684279782467278741781220492390425437592268907678380720559196477690253133512746024748352223756100274136625837426837677191308600169685459294085170209073879277358133624037392409331796548057071028269407151745010059935288678266212405423886014349169193399649014270675037297125374965153650971225578320094230912549342554917735500885939134169226861489367428269530265175817936462936474309556314262529896083252979586833179629386897992391508075831686519421188817575489381503545380704182517545558863880280173015599282485585403892023588574733374749800117422670083755540892660641546709542703587277597209345505124579175661759624976655514238726032219345680548452599674473281216116818019350552549168760324098583049917227364802594290902452378651406961971598387332034773740121737746346004482336550816238545778480124424046392742046568448276607293743424471936207581819049911139831485475928749462943025960040738811337064117100811997612689369073999677627518855967897427595088342078346708217304654906714972677973410722432955590337033423995454596391208050232972576268684139024404457917192906516052622131299549218470005173652339572176936868997498578147696474439788965588337322162666398858567110330224458362284239705534120669965255155407164599458912862134666503491096403825961600779865029275953783490217404769631976434691950052729967995519492456318871163089980399038227612143168205434927861102018121168628705863748369502099728497411635495179011660308824458488240678178767204504531364356212322986454169836463029939680556061910446941328031081911750250551739207444604607641616929404370654021432768691902531793528730477027091661739294867205455424592055627089551058541210735311285006333046632513326635535880598920416535683754963388277960424661405072616036454157589082844550494628251634987399263559821427074319654308673707382185682615542598327327191700182444091759852994681045601068422988169844081764604830812583690827815396717333847172004351616255609332130683142440323735438592476408583865295784509957618175985561273209705828839808091320414245430219131051239388374818284905443644576562551616978359316748880809004988437287012691727711063206245173449429949922150527107075246506547153419058413974198118529862858719598431251644036837614439909364344471497185442684256365124629516350983957666340025900638691361726603735007122983312656552662837755994506363724619364892951616553960602746042957556778897496754534564989463332104141833892633867046688797730135704512663466105097831024033881733780261406788927284646017095068889832831414484197362252363956423493970672633422520887298419714815790706847273296953745169923681907798876621207213282417452410980019683883224495144398286540957106433436642429319837812930151244058376812211858000587573030404619195353414642897014694680060749989668554853226482848250365852531509329368073338707086964856329546025502325542845065367629577430800485427019348492678823721258066551417759378517518965423284537284623124184294034409922828570807903320918050465689252098955712796153878389157231901581634686208029430319357617375223261401816957945591329857485183802789503841537067406449998223175541157590858995907997283311788773374217772845716547953210897869155658273093096184443182983551436146347559136031019928921642392882499382329780726864980603534324869151111379545908409831094833756246094119229657995653319182650723467622280371132355222818083935323384529725817858964037730895488090324371637210320289563458336510181684403024647602965286399283897991705750461955944436662718350564264201405573376127810528776608031048113691307293236880219128952590572726969275105266096219522213395309296078826288715721972639579018899890947986807017024963423894088629726414987309151094075968489598386518623594817047433335806516095613424146119927968448768288906819961256102350324111553295959515836616092500541367744391591556333204438518066314112883075723401989956079087541761988322259737353549790011058535383817010924635360136021553734908614122470862768061474967094230099291444126534018935412314375243209650636708620643301509332414410210807070620105073676930171865943948841439722457014903292766269603236648604204590834272916838064586371999742306452516353302185841770942254115207263326758639286645764214604076629777009261535316381220963060200493139670620348635923979259727702519662903240525558823339485459588301107914955047870997983249338289975309565944309423516102666739928205739367553132149799174533630862326231395412371658929885597146886636409406814758259991348248410129587602677219047791551236231246940140881190120650999030408230841964419416833115152690380931241240977165484000958796371960252055866865074980797399987509792298288412571028837356673871846810528938458597771811213253419438392924436580291423036044435379211275248735685467852385830881992455778671581068729765026101630232086975069946046959481410083891341845704218423891740597842011531247932766312818841187849354984362758847609944224035598061059772849966527279600445186572961781680198691527402298322914547774170036355950888509661561102402567378263684427195645896048258553335355050363147040246097365892113718080446083858723580707175667313028715298117099879836357096270499203259572199646151512426570779316104141345869350034342899133051164772722427450127554621681580136918132252350906609312502204672891786116742067024055750420312154592828312314096868380714278660783481466791776492409307310538127567531716056581610860372479682414299081035840520822411844722384385889244807381649132326142071974366466119449443926774283291266954540302100133938304351921744780086660533063375878190128847767541504453422896661436495023565121788039220876680557738792951927626167723441526637789896644457998529798244806404427340961368903053332280491793496461969505833799065651235517465294261252903252468816506103033293778049776747656017009875342066800335676728774346296158969074982930101968830242437302841498453710439751426041045286164965436594139723879436998105026529443446670096568088566907158342145340401734199153290225342662954420706964215379960096499739186733093212669102767414685799062099349999263289343054522424636297225813468939957980157389106175668919971063675005824767707064450826636280415994250471102390981180225092975557287977933461695269641987634841459993140609012337026919639598303014759354870497616396386523136887181904639398730645400780167184376668930959359989758003455005457608445891437848167988641765044601174371107297042300974186087265393752491718725623858951945686715417993216714471250907473908255012014008190046530220890870573585541343098936218772102206817649185866958654063824149249908503571318957896179194547255445703174277101882644202820840028575890994943138630761336899829758829630937489974077868590689652820842136822624369421265974946551199415594222230336432746585256894214940804101638158316767452150815892613770885148941836756642049297162126424769047839245470697240602576868976087618759446538962467407813436977565654811995759161178938111416783937026384889685788265013381599062189705170959470399182456757783349318054443957323315123523613045229387311690562963221008993110460096794121316642253474308841750584178923668186234697318035147810531379370258132065867579833836038391513939512351500099365285264879872838790685526993752624106121976143546177353702682263434402743635738144814470694018894932635037875230366160595861683660283549520607383249907485131027061626803079042011935413559343008851751658601470898710507793497364740135733734612176152728037549231427539526098516372752345494126943307325327219599321167513515164697245401293670356820604463928123400827150727345624620921381524739609388785679934447924776428517373387627861970238055533445065950941093928007725865987257570255138198275824389236363650455328598530802804859219976863242002285796206307502013900068844551673420936333163686869711669233759530529427559465669421472256744267267419340776008231004575927462131622332427149088361381660262719310207603698822321848294900800379504937978138392041568175416457863983574021237208191731972804703177762531293904229425710714216875668078374680445080164915463246638386130691093273272896567414256585811500893520891186964427366534444465634834652239314610726559939759246166271425235409933233186144471674139845669226073526049516775690942210686317497575583680321134314417949411759815553536506600429305682775326454416672885474988429513777153083114821942558331401893037426763172079105813889953877254211969593799597411880594321545145257634944651177415294730106726461338918637708756222967520984625945094960793934311329304934117902546662510936477482869303016847499216041928925359072239973771904685556194710819050724699942095527302820834322256005550219656567133204386622801342246707663242908404103570718502390704498264509104874542965343330227604652810235328786918064037284128297546811220653888051427422514225898100655968657067774897411366812934727939120099506357909529427796845541780363497764538094176648507645178857083406137699879925469828136650521015981535082821250695076058535639236449862435150434284042815427619005706170538093630471485040777643729757866149122256308848517674224710428202458783999435388126125255250983049098692647826520828301931121716481689839321976634798795395348948871219678367022291312110508281782954052127924457657287818517302889700246108663235273206684862574362825972434090702037312542719096778690598181535664428907378511784958529424075956399845079898581141777413455552487342226209386028369167320167874302110607492055671036144302879462069634492133841781768985083261096729845440250463462856996949049475400361768848851949564603128566117493497028336293848609549474051805634937030152453487396530578500506703241467104953129442075934801429979761645724295238555136495868693789923404078480472529929907253211254327636293080622947338422230233731795093987595162652707461538737236605629372428206389627757833936380221098542444863684786257607604543875736049526343243674900638411438911154323900725548013912405658105237390134966177137233216041706653844023036200912258876497648662783231376739050773372443022104782498085538203252679501624304048371917732553808445736665547254075952100445777314370449211624500264182396548326828550695666774518075059917788686344512454498007532801757239837727150906913341013421082552363571372236441247519419284892099111725582786697315776512218588090971666080602419930010684035804313175611475461256918719252284308167516425393230900713507396068981871336161812659588820648077232157381829287758633452579651881234377911800819988610968208739746730843087778967290714262304348802321254911039003692066244818759191703412390525416979922793756660577650965591943886089027562747486430034033575247093137066974787073100047269489430579282972124311238017358335629627453660081595980466475481781577823770062622720327352305059100781082232630153254081368539660553591089994544069310256545110681982036940402397861973451030052372687447887414587375992275353256845762565106283176368870696785261724313581044921211891272768647944817542402977473422989063732110440779633048576623639998607052688619396828409574936443817006377224150539063771091021910761140922008966712876366032780149464807293876161033384471458104917795037851824939566275876135729613243879360408611737536222749386567613637324419832999501000772112485753397395774848212124864800596320988422978592278423779305665167459615522772024322098585027270109442866558825130418591951908597658468550032681635037614358515033439682333774067058576500641869226239150947808440876098443357096873649783719268932618749832395825678368931326764395228501964911420961847278431326164796753527845038611543938120399391441355082794305165960379966295762130567658139543237474564608661808949378534733190841795915594060154500150113555501723194067475548930692315590878736532027596105444058116208459441675143754514915512243527069760889445851122004356519243434765193976915764322077345790814843632964977723333331137853088938530864755757190072993098745729507882794033032500385412451793460057800777795531275198919693205155512675859985916966458586214885532077848475906409339998068383141270266947080287095517516260064513671003372393429114925959172163409607675106692011769724095733678059755298489354949257506244995575733867170059967990411084417289551220897913185764294805246412295712834052564630301640360113477769554238226312785708207823961021436931811369403617080515292912251104206109769155525939916558111861862535755615369009041787029881988000811119548300206748334628265383930982246968477297973246360851234323167276400506547840895264988467421440968641900123143563708923546343456840565786452654020170838203227417432578844916699702309196397840995863345921050352639547397012125606185862738492711455628065510197926647688403728987755327895670670069793843479008140079945419407031561447085324129514082326836091658440355825206750565069938025843311124714971024675689713251851358290666661765521195120407908965248167560596719360411948502466629821371799508360680211515433375340735501173749474192677229495086943044916523996669287019335155864325975562260256142652634332676325639403609688270061749683620063169533650444908633238754069991400207889910823235018085359532129036741871856768232964929542302862929911545945847957459338117023915492260744434888916528163444873051893996705883807340906226869947874520333750668561695276023994242442772301475528518199137407763942616012793854160369346069998638462996110364873155356951066364919307790858488100718980945049606738026500658884534830919548386354634794427536234501414782885038156231968103477325252971429253617885359199579207882413017727766275921301867181727218665301877756844425358034358163879537244222667844806896733782521688052090373389929355283742354142358459434005922819115573712526228372244397526817870631812061121163304749505143317465508608810584529535920451118834140873146176555082623500469475876794925167938548420171034189132512981293196898072640039206815391885611789651429971635131334434559192334483049758274987788656921275793614438510772895429674501116636229093393450573670003814510280851829941763714108786195151238503069083298352948477441605276219802276165433475018970666300431678591218740882422552844799897544890939897549543583682935273743708801704025338069350657443689167765266031074176700035532152389921962900610745879668815165942306179422581114168524134882184705144080195494089377937365423798175143141908311873704118135226505278170403790206414468540223048205781899325043765517708142263097623795649206291482023815128715704062876996401668274008707693991028183822354373404325557403222358643371580148603886212955056450913452044451613234691376767616569053961918689032923625272998330153410452935323365235418612624258181006864078062916901077291230398394400960944305720069875478076096831433040403467658510118297598597135341040490400734969967321485393567835016521841057339704678120218363271254461687794970468466969273909818696070344377231859703545176068140104026556139604416726848291324127037389502774872520632692002846958418350798450349652420885877454623092328418657154129079617422445095355795763894047153121954717568885274689646544588655812350287433830493850028125639027442887371797469533385993830277834598222930384328666818452596593777062651321251199493128575305957897852576748762071269706518051135015935892415046599506325833489559544515853585687359390687491128416250017030621724144737334644318671678140648963476761526486474935624289055391424890110708185387150384088399999817296637949941443744753452223056914513671883552644422386395515191156428113440327683487173386583652687447740572652553691618821311869830967166744382022115844375744706855342660608912121564606505430284791851306012113033215946568737383778860079972131060437884158521455700769121512637398194790569901574801305704263880984589875312514512289727376306005030716905894687022912965756903806705660558724331136273119298146719039036566420091415401239653478655488331556188703814659651990605628509719682043278452607218491838857157973614484411128604086803035163153786316059038627102110878492138057864770635013361106098479119618780383771389288677135395714194727631713249891955102929280779096850662564683765054846160139600860757243444979048820615285659170490714327767759610293181271474228162834848614104702841812112400264647469563625819823967776082327752961866064272329980364613432192016811373494470934387600067333800831911044334793989597786837475109655992428530183717072064192955572289288350062191703078611639304269464486474042102786439818101234188754007890258868971087788796848306951941665335883640394449958537721083695895352531692571791199984299440973502903452513945376593294042822309800575670924582703147879955124584341573227580159830699779642366110745260655756308677386755284936987600934240309845057810876400292001777673723718610130502865037620316197493029080506781349032401666825415880594812167450709356314944442577942950759096383965804186899774277342775701282986478368472473326766748995815896958821037840208383374189225656910770058481874384106062336639797684442212221826243575891616837395693525997274969373012250945508380368927648954966083155846993734135399644692015950846650613406970459668752185349599269356476924947145404331643097092235821724863940729912621791770863844063426102857927428023246653646026675498039312316249505965493939126330162048360617381880029030311009473189442823863128029656346258485190592440379090972788333465893314848042863450559651497368556745059729150929237488639328585986289078301394375603829518713944853680780964008335959265681274308256365052660607132033504821725807163615068428611919753760377083052096973490350232387680609330510522182185709964922554102698146766639648915684785503423140050892235361009149612361144152295682839533447526103583568295443196897966949169348194224410680979921172732114967042483787903360913550833580161094063192727033350548827090099754642392697151301007194116036669748008544940262528889521489260462772293939993188423162558163885166580942906293473663246897834561113871967986710428214773379075277643565413596424328196864681360504901262029552619245208522232589956981671028869941800984005229915375794835227816921815541447946673060271226969751204541869618708773021657432080122255308692827314721133136398610797190757051119138401017855165601046912719623351980825755645836182196649471291302551659637199543354027927649278408426353986295583104890248805739489673598107464416491098097584710265614421692386818004805173578845778780961929062737580735525690297939601198743158487937912711378189867290819516243815959853478929598764557663724019480389294925268995860469737093483854883433270058536307564147392905757091193912045107706490706989932723720855484933781380464523251062824323016644677204227967168138398624622214800321709292519875659534490970867146026566148762262661008431793225711371419594167776823284825185502227303049464834268365903248590761301877299612096754664927750326898124859407761120554555794380867290213581055183081972509086322961325436012165852438534300952612512009721816392326651257729727752321519517265234325902655870730614076980675144792630278232841840673306686453781665681648841651412822700374165358649918724984825653598399174252862594253160449292771435403192349309502294067093624626958042554188238947013554920795424939749656246543895615504841305124133288202412792704601405395835936074577496787620653974478963079429629139099919014937355369362015988423888977722822909800469560768405543368027711035429254555339340400424322810562057012057233641567013035283689612012805089961801896136663775307197338355375857728946950050646519057955789491459087099369339614166827335754768441063902894483490677564053651847474568420818411562228597637970735903510017918505386767790378006038227887657399602134131647656779997154580993200057353324932415454305058252504965364098073784495487350224943690349725902372983175606529098225787056717579139198637197814096770664019622358978442593892464757646951128041109294935596257652665501426239234751869209981382436522989433027863312540749266804785724567195290287872926470103142804072545123553988832360737041750264108468488334345157356173689139312882086648318400530705862185173886327151997162185127039832429639345176453758627137348692166157999967739911123195677745005262038930599123235616389427191939281199050735742845411417247778253649836389021140513320770225491516028027807352493449027403594049545837922235575586285143593075941257134333647266510838037044944063472471893997174235438027916239614659371936408570195272731628192197685971311670140649561693536130559093176154724772720264283454406002335271957349993615370571708548224830942023977313735092288590052974185068932568014327664780943256745817497802713354037082730710850624717228348887641986592655083071373973174749131775296790546781629152687803501013457578137800378926144416296492459532224827567453114891751285879141930330796057449336663832281646912503569541968540545397274534129870874306642099541951491780337338485148349468372470322760094074879966554338128358436286529138102828790186463739789043369677770030791290096411736533528612392302657643267427003160639837155828263235540613137247562707162575379631826589518361436106988690235006719760624145988760720214630878233419076771817814591675519612288549407998863193384704160879571345664039979139115160149122622612547155723450812096854648256593941058477293379902855925301304906923869456589510066096800614680353750660650541391533365696186047446024659706908724538417613260894211490632991010679598735092621496787166447895561719649647264175064154387961635898798955574551851750648612938595180772936357206100928157914718386033224796296571841393250307564481460013020855767252497772950013481610137210388680229140411428422694376395112578556919856370931288619044965310192012308491370760767781704908352788159421051760837489483935844356668769445053061024643956919850148860427792657473559251015018984345408456510370303092568129324463080076561968769396126945301145436012927348376962828228718952637957598417213250764302680773772550172974595434548966272951071582852315742270632001083087192546040317699685520561895535888993396063660849254454816065323668278361132803751986152677435067969307238763821188453048729087211398494693478540657165524071968140021454028142422191547937519546618736908464966507400893572509163884785160312376293988582203073221565915528316015977576393656586553468395861012393031449538683442173650927556007846875213070910455635303484255893688345238525557665179662062440547698963475177165842375255501798037800943214461501656791571039894464585717948768602517015033070413702944481698316313803904755674466742332865266082134217889586923349279477462131848492704977677571665020817507112983022271338447476424668600171899857137539187783940933206165407353013157111801186649179478996094355112781899624105995417254636904882717666257773797287402334332551833455559432272504250425206767438363832310166551319376154923332372988922170726466994239146917943512077429580380922031904745684389151799925556684745605011058530387306620646362538596562157732932007075213026997608110836782264094950244590977295979730034098680338719437438250554226601964756926208660689290701859391419213585541908712275927215180963534541067382371138894965872281408380373206874447921508828009268010345590022912731783281916101103167896047575350473479648434546085157727609681747181691449800065464559584355720565697523338991407782144199544678385127020546472427856587325272395865081510187982509457680314980458146030324105818258428313421388466805485231263977245929454050983669203502513769706277453154322759697758720596638683691140666728396677052857505875816562626226884893917149596325495087858143727884375223841632350069322056954627278278821296975503473286204190810885338545451248138415503000494906992547865856751941410131905326000656871038577545156681980289207088074629141361661709489216322192139812333798127167923428262462621134607832326213139080584186567557468831459778076590400075323779719646426292051027887880543460737734838940268470556345037162188432965393816308642184613174862292614166321516738867302201036860857109320080984846634200700693855107486737004614230055269949192935308542726639359112209042603539426654034450202678596158741445076303895566284997738240142231327048599307942283478487257677556260257442950486039470581248930088666023980028473864619317007523372431006256997242463031777303129074249490781924113231767665732163826086847883072204486766810309411550514926667854144952441928900769365650008409460201346722594925407509804995893953887501757857910750064910848920531029202211906894924458818239505017637799394806364373313077103480085906393088086159482956374255923680263824785773637592916762668391098531180883333054145648524298492662523738855835274440318699110953591967270502424708821397244891068253668449004599761656415332091379702961737637995025664353027435145318890615524908612379721646808822776872904931909906577125684691269424336803517105242985495127358697386879890849809113632936480958298806814688845873132012210081026102610426401320252595366016847797548224672269089450177622761311404410358946773549429713519880643885656506072008708339205254197339381002010392863261839985424856562189113047351062038235797215965806011470195164208033911876716156909210778709429324581654201336514766424816812566540037244773926806625809023515978190249711808876081241911123119070499586949350738461506613383712664045162743402490991757669775667471662812383616611527570244078844672476018875473756232269670009803870924227789621681318817218916048023200470595319087203119655898653987329791779934550789869448783877953250959861795965063933405411564564583135113085530967172524615958678647417603868396256338167340189665997713134518962773597783747112282196130195816260419476059603340165118665995236395513412381853745441661489195481884882792062911715921218462219088468105271919460490659680188277893569517145031826739502135346202793795295816672867818471319781939181151817041979031150509007584115810691224924991161530969901254937028240550354839739927575107394249574824178367240123859937622832477851306483026930319294102022656823429058668566559939414700995645738387936804455301727687523471080335465733300995472668632756649025137065785893321383041588011635393459175291495313535840398499498379796944680438512006992758720923997558583472832711887330382899313582060701011804515092950313536967955100004469004681623889820478982400004017838941076714946451272053131048319862037318245761152087327414423970947266378761485573119588058970362947849566598023952600701912434308051119469221882571200365186101201598357032536084989542344506785241291142811106746092034233614833147199512092496353983389497497748333943421393990614280335764037902973469957142510960033434082272076798301939618662305416849499090806770319617615412131894426685209747104961910195446419227924418894157639964149597119924685881348246026374694697363975247869287911519566701788502032495360410706222418822302926766836663052945137160364980761215458824971899179831565227876861835647183663296606980981632960940281642944101962805568308276964271553326345874668736016044427930106459081595481586890731736171333042144420235310429927870835515560834064685437001941188455353645700293825985481266257004692532471681546691522333561626959638165608694697860890408462910843240815808357188202583840956140857142964921693059200610161052058377013996487769879568405906840182352495381738836433594796317705123686817204673571293340832664044127200180156035675976525911752713226848524658372573609045150326988174456945543860998029621331016576878748796450373457462851855761027052282989048794528445687530575088118171232150777192961335763972397013426094279853737362781292045198532788094322729455982458010735012986338088578928718761150862138958038762480174628969419765403376526191079734766568474640804805500891491367126361241088038028763870613076016120790961468401559002226243231198709386748155357092255008799685308520744004444678415156186664597718332234780593887092074538196641253172909191671418734855447652601639951451708469872680883188502082316564246940268361458837086987395062501803742199043190655987265691300263110168085120923084985029854472494316820881707901348543720126545150749596660615331986563269200936467429684556296657955044326644266164521334570593924550257896267465647344619729533691955410835070437487506278704768309395802097530746503730751627902155867838567679941356972006857352793056951066397242404999791843067834519047954890650788419224799793398168975030631018353063237076814898724929289644074043736566567961881433145918193879280080875435326174851011782831835109859415318364850937681169823924348552246716564719880585602021584111901241774051734415180161219196728720393673539916265528451295326523059199346891342828031908272802353237351520914372587906695172225220105703186024012239782261758786891355951254145365868594649846771728759543808614501654321122307793522639510674458361332377307651226507644481188699202381870731951213585099093322570477642316321330086633022386217313627382082472088568638942940777191858508737941909677190818440366623630854315707855058142442002327717216435347604862419001655172806333714213516918392016220639082894337452744390717550892508355709383140392524929579740498244103872681019746275519643375378511778811613350236032147266645806774142837721722014177320606548450012208077929274153119856323628812431808581677095853193274174456944003188384210652308361848235206886776536928362807151745400519477813783178284368798399648266846084169343763951426088135044731343497667340161692126677754631347511971840380380630983362093257191600675897808869015747278716790047700165554551466144633902932784978979403421628245389960433837984987069620275984066135103992370655604359500782220720512555529688313973584854651354600343050325583232937199662248617323049718970900048147472670629763579800182694706377799310603949250946899265215590641850444247652824505532205399123135051890738789769604805633771579946700839802920343414397612834030922697398263773387297317987405917899249830289711638141584351960030323529216091661969959713911534682659774801337485526108259318243910502544491105173859793411805165814173058124357024177210625303439423969020526474132505209139480123873986523593859047114715754883910551898741746108605971930664102344611449531289720112241956158703361621466926334384490458611462503251640902777630043199679219114074112280671409740809494160116263810740430554594599859689691195663480280083029679301918570552116951738241532593730092889338457493145994832150800632470428493953809636143730227011893654926084157392933632510366505974890356711174015117559619033081162162088254679164214431010893593821256750995432213462725489183157822834870317320679729227054055227927631156405981180147868397033900987699808624196726230539411953937764579588163493732931408589369843982038816847723426850949176179051430724732816922117432954677249410044667424448459899833853629331342317244654564832126395182790915993172122677768090219723264037766899831172554968846607757635398735482259747482530948564181826426670304824781988467617602300436713610974552792869060418554777560729598575350203867355023536918007506841683912211985573836257860965003711764464534828304884583453253074829604288640213119810338468045955946647737136739209061406485771380879747118875115743033122369171688679013095670943595267873241430274012566378299338716183797770749861584777801666810351889603017913426612189684469295948666833856512855910235599767983081888493251984914898015178237309710379138961761349958548883615537564307234452096237141958340354603555228192288198198882736671190695885244793039700276845004467760840646216835867280362058474402780679395163040490127872752268458218159829112114289625004254292320655732459698667575155165120565806333728374364793823934911971668626386472019305504461707558198802323042720593282500727185825808702352917377444893054783803690413170024030139937533949948502683935010637599176481826541747276503754770565996091518209260302552075812686650464014027919118597081192777185504767773592523034985554211605829022785962411077454042041517287092044928095262295383301310343046260401029319118353195544851541097215160370313655449686398495729953207490906015469864381706545524846937274270320433804917456229672739609665600265875925154265750125876617967082727112374232116860729292933962412473906159221447140561154269521918181297213994318896219048740239195994473849931260467283267962692212725295509918685990136841794984083204664088695904806830322950298889986086740910777949217182097497327164292347074677247169824538025366061110699916432150128289282961023691516017906207381388385268499312561363833336144542496864816433331455292984339692292770411173426679273583078931505535033758826197028469077399513136792992941354773336023170792260049523073265992610858632302835363523415107767033070479414699745755267131909885644077614894796070864983714917297135819810920513373233286765188613384245203790379478334836221315559870764699497368450022436085621628011441333661608662682758387777988764207237732057485203465769560614423394050578519543524213297591672343295708239511532276886490714895379101962898420622151229713009012181650981776691692789015183144975026237287280327622003244088982918830297430022363857526149924500725464291733087876485578057603595044072529687135609176084641425734737418106938773509434156541369915727424101741881481963966421247459742444467044510213088865429065290446052702553331033255505080692281784660507481475921411433882079828325298110229821445789325868490633586253400847420404747759631952342203536491367516121948572168938534689789613148233366283980167096572984558548645275912469797310153963066820154300271643321819301479091657968878813696713336485328329122729035207078591188883555908982389649548384604093169685647427996088061675339511122370891051097985302321201658289529459530554566650457615559659125910843353985136620451780847457663909513116017570297193716973277309567312984688951783519123166088907378014098956130005370914723693408279020736244329571900811771449445147207423855535863919590582757380686233213029413077501769158399537013049282312094999743021966324286624046515521254289316074283967818403466228828520535626334840457069982806490442475534379546862199243757634887211962821528410215258620934252558296014754508092713035582003145025284283097096376373744485539615830171823881924885924608132226389164669684210613117528036803388071149601654052177524990792108868521052622316950805285949333073960294339092610341002377967017662710270779342568750009018868130870183745986164404733980278059938016765981566800060159788522640124955329770282921420599429358153448317620574690065761494083961674938568861621025620748295228621095246217737154739227296601496927436216111658697210219112377834311358528773819624987088100889186544683787446133207051700583568888703256135923877026018455659878638910358695873449302985307571907997068830680683334707915488266265654019713517871891797943671434532907768340890406249090079785269228398232651460062168392862576812541403696817334084980849261162482068239116324388941880263443186722112025147898249864235050574669857940300708512354696130693689763057314821544781913059283350614479608312996206916330779848680729912811567385189990048435700912366849300311407752460849066619460451217045037665178731187901424800044403995748568946647670187883566357497696054484655011132130879138914328835139782590306429186028438439039619218675850183932567811686796485125881711364103429370627650798938778789185207519617953772921936192528645835038567559428716206134654197075709318851929988711959294449521349818280303207193805709912755025400479853495613090293435472408133255919152386491866798940730799877166501723881691650762575977611664746317410284752393302938895975908284607546588902614122811321173701264283251308690024380044887675897974755061472266654556345145911400744220047500532023724719384027588896468285499642547303040939571066520451382273746814436961906457997537744383659363493034131459757048585571705462803869812840937065440741976274417470260089220778936932793390335696362014383005084322675832984573547948641663893258727709449546995525974409496390986038908450541354620700170859455905916224344667019889023241685712986514436393270804148459642819043304379372140908694853071218164705678578514574067975513021101876976239010261237300450612064675686792730293269433566559957862428741310338747808977634379367421681470603975668052196606937697017617528511781129533064330532406956844540855809542948103557495251662452154811466778549006497306695390529688631081158862881912185072360711763989190158097685347459083402512879605673120097183468989318450684229640983781911080764258494295630219597129370773700033622623707906195642596075523721986082379699716217079168163048749189190652022346443798208684484306401987593509684799956756110328601565402476785270012478856513279644409863268280218202216696845633818651267370645222738556435171056696710367365914239807253563068239028273991712075723342156284260169615596413945424219617619744367374595773292411526029114567371652767892440375299728867408413941852252349643098390338608140940193257638378167690955022701868956601042033321265904922204450591719891050342636071879048205360982736075020383227313430916499268928492995715722969138058692537537172417869433006041187785350222215986133757087306312435297197722553498487770543900591664273343728874327467092741057173429491193515517279526152949214760470249571459372073045557546548759378851228725788179923614380992237197732387229294922408074661314204657844656489775895755660235263191393921816677435692901073623976344112004440173783167504352423600642146627214629445300945276408750449857138536543207618104368289671638960506671495968774253371008374928710197192743917321162794289243118031172552887998151680768235088431014527478158704197010137477954536243233072724823654150871132685148954512078545532894173037262230667252884704369950052235565104530476432931119557802902332962194170542803663917781155051875626696445911079035542140300041093953386568219161754868043152350408425406006888757870611993846742410125232012266034234844146090919377845960803600425719078730821692695444685552053326766707040538581716431591674033656112066888972795284581253656317009228416385265731215647507899273394911666404045697421092939077345355178428368519525490882815242622380118095357744714906650662398387944009146920213377495497877094529853335098667157462152562482935212311738987091993527998567293210072718619322880093731305814313853113651249969565783759664837913402186897133672256534636709871545231628169450631687831661213869625069792728252827557699740556491157953119554987670648837278396041647531550432301874674987040375429069800202070348224588961674375283798084258334893770499883921808365920961552857877525592675608014590166563211657579328985527084260212871641295780295481964813088669244548899333719857480030870216869336119210813572298175170271336301864249309930825571060664078814790418312864549797281378278227275941739746616929603020347030870304705952109702491324518931586755035971817575170766130651165320902483623289215080753700144283035766845127396436297957072131850897909997698157089837887086138168983833574552934205032177920077536915111416316256303881228079350542921268092018833073423028885482399267097995541203954332734204155705640902616784893047262601756626494068090171668361032954520593575800014776156278269978968401602226745717475786675788006373788225851552501826847136659227888134944693724246677878872686155994403116157751277628267208643516264960662319686186277955200764515750738823478242925477152859932036282437579114994471155817542042867480053102066106806505212049093592906146397471520002747846096676967693898665889912548616840074770186731455120342302393246204622148719763406711410253898952537659322901050005888645306733512771098872983300492715045089667645581301511633147919132022878425700554509641617336722257535782207111305070409906176194473050928249305631601409927862235388824596675135040693905623719064972016286552796318598022050769622344628130121500966900724715334540979121515693006635124304008203508076802840193278589988220835387286091903633808264749290358753941597107654006086141196240277136761256236561001970931506916707162301728186447245083766085736033608374646971511156678657117639770861386890136957911665685533379673970756052245559559391047903419915636329308967983750833722963413827760549951956757691956417417308291955764119338846080337019023399176383534944712642980549104134161602968675277077874286458791434179084091394923990107478807635833625704013593414535910327811373269459783500686502127274920654396134166550359512772647591908180149283443086400533938582380167163765997024647812995002344014459659785213182392644632256240401115239806359461346937503227355989405954541083298127207162975907131454275990288619738683689692563760735889668123558332625933636753790832111331775135394973885105063117446631317156693121876400747298249752970192049632385835123653169146385487375411680251386486247744456548585544558326747203203560629006099140264658152522810057497687652752172576988181564059106328239402534138780921369006835728570193692517767326072750083942452491122388449688103449264146130269615226204330207141204493465493339437990278363044251080355278173583107479358324558442452444973527473664721496987410663770231123785543715221092114395869838070853539940484649065876625237619614663181230904709428339210696347328089908007326855570679480434503131733798660950242032544203831755553102867367834671697306281121999311687647702910307220910899908634605431404165096142670249233427507802732876334847022596599443725701041977174777955356612693428132144230892251331394496931265454892975565114828502931814894567282712863243810264644277568961866152714814320790165807816431681789731328458181007948357871990206814956874276550263029199794969243501761564763877318947674626268900445328156048655167156436812095940493344186579942443122807488385333984053135970396673305158237739658186267821468346051278624579139182259375676584589309496504152375892017789249303972501644194072472998348372651737776720581960163149852150913588360960233139688301172876420771990051923364175729224243266752335562674740679650679556128817878710114637338226719811276739635088223014636729894377710383219607658941432600133271627493605895134482227673107622425772483652316219290570132192456784104140793046098214108417456412294052650807415841619836860417798522617166075216909077912480649308987610405414847952393587382383266936299441684651882424389091195962504215272622900674057919740310788631053587493301301614163562036758028592598977579773555009586934019558793592253035522777109313281614542879366037831050025315213555036496932905130388737705442101173708255430330788209090388976633322357730359395022325476790573950979573366306509395126375083250709002110749154922286161555143071031327494469718072689354858610633148763208858860717652866810703256616682518815755335474894199120730545627639235073310503604961047779811901192941049972953268621072883324696182158137820476384107891150005179957770537594823928716336741514783170008611419397418738586886520219602076793987550046193506183549352397992321850465992056774126556356546248631702199396222630682356796787750432412457839729442362261228249098114308315348772756780368963372508211355331671684993047541547173587079847189590132086282408920340739851078565652525372747957632273172635123601725589831680213248436665900482964182958490004911175663285277897779547330741322762810726729223122725187018313420008781341131468424324206538073737884405714423021060803199366679500136408800794999732549680850483653161231601928219446373857522324758279328061570183634515286088677150064242537122274146689825478212777052362870544152092243040248814283323109968691835167622066181615272227184111717849017778661816788288978226356084250352766931628176292552797370147803522709283413820448139116294836763379562839805330359172344245757986496968332488745029011610434700698158457677072165779354156932018737225122911193046864550275924958338401616903836163798893880399645275090845621737012563440491548298211610856708169830244856233260047750069814595895745224828885472761613033010199079647337089194333038395263277066459341668285893195626180680733136320304699257744849364821282728431665745823435874879524633633782671795116644296068171599952931798884274743077679725440988368069647339548496759101021493151981679917424834972194177324251303932044061847282390932693584666404693784883342491589113057602956928000568803528699173404529261189349097221627549905763605757536008186527041823318944038414416962915257275342662542171825622867990377681479741122066539845516921025459650302933530975964304035197062502930416442359646043006708781744214598730313722025456874287863473051716120878460485500750671289680488500015232722795905098717943808589823207120002399183630739089091710402736146739615511445882099706402017154760946986410557090230419569511485010657280742231309597523580680851926634856425467139735560885126378213961999701074750806413280066146048405234512613072818548623720523364201482268262760497009975902017901945525554451196397399629112056098888859511457559871227265536554136516024483478344885068794155975957454934278666150613975434805794245673216241433356217573103866003031039779606118595681872796604553286481447058480868112668780815945551119748637214913967375368169681825107794640578356802743615127062938717752368481629747771127162706497119134558302675631383937643080666439816807964329667863842366848608665463789508109853265554352809296524349928180416429891909430678493713724450292750487267956486483114982230182530103562515121848794208560247486745539424973445647201843711029965699075590462164339585641629255676692511481946328332262214571172996953411996465733276078973309181787074078548729286737139379130696525579279300088733015307921979251286819883353436738151860797986260555175969585666335009355796061433013228270369874461986274986950686009560830096770915533380779355709037926099271122436588787719536741509509386165443780691828296793416106276133095064217908647930208586201365698629576868190893175609042205209414456745521159176117374260918509349410993607345234982838936037736071388923882977163100181703535903902434656896948753256820962297307423743566889461433449101665354986962348424248253462676737353155399108767571206365237273985984223826036498716706209463476014414239733418107020838993830784400794637207600038012170500196435896846568754156694080054223642941779308743367650971572365799257592082087967935984293237147319239031081290042197119556194153804607192964297363179557101682155925883551001501409637577185345525984681358451583416662695675286740406709845718384669495801796576151972749524726414885364844853507048476503457963579152756354197084265349380636074519746839567620376077246120574637229939009150775641048320304597018677542577281880392362313363609703977846935876949668570894808144157328358232548322426772745676455096616040997167128619210285727377841558861519051422701487059206655419194865946190664369527917881910092623680333881939081251503475590554812600353863819532206202087254034288126950429150457942423743056051837689800834371130891839196435569318770096069550727140205776991739929586904637343037402466007712142004887905847632608008082149445192277607564908236533207787948913211754121178396336310561759764725366878718970712097152178420635407613889482592371940986490144746914263857061319531706116498219024033678412282963368462364624065829731146772465763454763482031405118415278624375769634435759827322166455332874479910371305876537883135291247393818568634134894614887299027836708879971036247118680178517502159576391150303561372031557534649584536558438197215620508757157563173904619554387706181331659344564767907503564399761419657143657975986241725810227782662323189436158645053882502102143156497315926182137127755921028656449975839240413954201170479856735376700432113932426523996472866723883425160939792639595966434502540818661318021764191740395718946241489906831716806344629251817828585074799768891054453358862530915977649090906317892352353000731182709903407962345570272937790911154975338050728609493563843388635723671662572676529291285936084277942856000800983373745024717840852127241230201249479750399896225592713154182932456054968424651418694484765924373079054929448606614287694628838991877251758576726411274296270332901179386060546614644165935873542462442275921438976785961806397451929006210680942457912708152200712353004025947432229711161204979748449496832153546373020975001772325861486093683303273143861039899729035168400355428797686509523520105267217236850298841041721204131982845981730422236700018787986612695233724684383132335305668973901459548332856817066341497610725659601210594830634625281188800691727496105945456111673965671606188173014124537317490977291551549610488162589461838503452895182034155636764506084995524303731805495926903333821356176042493246233502795817488012556342973349605374808648809969265328324236298114002251143094415246593886743769549628821501474431279736515540903152160618689308522679100316309301119399471918294653230887895356207337672627137713283161225419155448471201007026245187808554331137129962189425046807697922411651593616113399933013290698167573339615825887262835521161970243042052137472753819893061913552791142589359894358017107642278330676277213115901170438770123544729782612134533833215123481726886488759843963347839995091569749803899838498823099494538992825299724401722407956897631823552841919975419257717597941758431403493691401817329684014599067590335856555868328354247898657073621886499829600432297072910467943489817410161934700912976343745198391862364129445298748205706765477934528219739342465780882610012820027332978977746928856874001051152567782250845282553230307852960136246064581059575801013186404507995913729924313259646657647153203282759775239901701741622634305626212882525592569560200655533705651837725424923348721168124978159067285405581500016197008794467093224536710189263934447950433329480211531215059773096447681425175612955233842119972139819962070060822093303298876765199235468940901370324564643014542226854172990804853488100507768444813415565297236917887262369814615799764388353467594616776839471804975916252831828417179685527756217691300429946163349358735054142557179819366208245081588726144020129818977279453383854556938057593113712433965728075631850135902340087972911445589476681436934421465652085786492384917058522927212179172175575175391819482733036084570054949132384580151436721970347295731714376309131203927922960169421593039161113168336847684644724188396512102460962009237442066743484126569547765264743005942218899981467929513126962523097050151961165633285480925497229268047397909835648993827137382004028097591167285529562034121788696569144576337839841679199297140605394394504378945074960717058979984619079726241286653811646617009755297784261818888704733089441290731336165024246210442601433326391482328446370218443313297874808090804310459087510850511235212099772444313544448588641798107799348106232934963549078000682548298387447946529941659354550616849054454796195479178554308855781959810469981287925312249593049229948026921021947952537920827068692655902132992396375358165061473083571121233709707720075360273925088758521640735881863134808752726863384070872722154961554939119710689749705903281597505720563635361760084300736199552751752161744287716432741776796485471602459812986385311369910905869108176386280874416294872614397709867018913805104037676305229135989649075687936894353652350262553086953724663528426020736956882604849144597476085393783250314329762485112518606542068973441551245834271397165794057940588898161244020107444448807293433189272401268136716756720168154371131986252731292567358943155653597176370651244174679646639975370485361985761264664250940433828429478171056331986658587301937418412142830598221807951231932194465104635406689817660548520553650225928495359687149370836811234593154969319381090022427203302695260486635602395096823987791437980711693195574654012259166390804866461849482388086410277414931089884665857406627211013319531315310716222608365903333917651504306760067191220751622918497346888357396747896315423519275128324487666043366204633494836996591641514084141630675347187860306275984796610225091396848750167817239413814786207194942547696446669401900184276236247961208559566519917316365639394208043631569988098360943562716442822835091887662586387201835082393404130518030376476428411305711261259007510075803965521698303208073065430007066542382110643102635994264221709801734054980740264226060116901359482562926644574338056314077335873838770867814360216202963671998914709577738741321341437093752052658758258714547616440957870954174521659354456350904096712993884046506302329253119617078692026550957483689567097900300729513804488991074343502899235442577575721330407747533898241091111080674211671155343174775128591050004439161150524104116154841210757353607762806871706286192990235697785647984447351422722479575424784020524506969980498458052676364849389710954393720762579068678882322493110132655059858659915399536289822023150789082300610274118415402904789351625065745516274092883503966401116269287961232714138925101893276695269092672884424206614604423486007317281008997317820405751772717054717661669807670069877227214922784368270057946871942757694837070241835898474532521312627463234096711871914687560697741295414129702320285296700137783659955880488772403114468085710941779232378741821765959118198146348475077575936550130264820525038271165404000789834944959456723994438140231974890735249099673087552361720433628716408647135645072485697776199624406317915650858817227628196572263386259084018759026346911752622071941763244964430521201844299327019771825164026610948291632189816385745066464932005636318601870548053041237322382604748444319420930962806011416075905325218177018393141057646480525827272393326208887335327945817014436142146229302819399246457604671162467025323400446438713335620862598767636995573456391793830886001760748389059266158863093750192347263162623210865890516501429288795710455222445683399478884295631277477681024741739401474097668046476996593078591368761842979891737486338867962507962265074884704641680294036100847836047195340597321522332605026892305551763328172618170476551079350639910838286296623349358485172241029127083439759068871364366195872085035129627771386148012208345415717731201739085577877126520378854577680126908086670722971871730793345251356853121181912418239784500200082572264803510378796980594610774699229841968800483856089623222410039053174002273676934417728711863954537836982649323424022604640392787806639168688168379289964691007554041422395035366933245094363897735274293111570181928892304733105753714834682181712686005518052196089424539543620857355372749015793026116774314139503696106038371934151875462716054650003583001412461638400522863002095766284647562669048751844332739492165722968115259599500458500087317252758869960926910204621523458774176925527763847163894588594640982393464805597340404070829229790334085621586124605809051643860267081087788307622152842970861674443416906250756533153566802688521717169942144686758118907563571589079503205417448345494773300068000482958720173472666084733488472251540631300972279790428191884912100610377700538654349227389520542072093693344057075162602370054178001592761869404459131044752091339818843427133474979971364221954311563877165727760898762318530588686428472334669932137118236395861278281953107675703806048739232391927704532221214763013426132275904603296302946238959811288248493933263046875364515637918620514934369788439417156045459151554106691485903408200690935958437602572243834909252575736376427208832583101694228854572205923081725454660708405293058316024350582663664003968837735441274935314745737188187626729839321136764177805830611339001789311245649044876109599004770841592727650687279222022322418074686550715276230008080077905426517983223011609907485697287140836743479599488758829623614065977288367277541418594440286379938709376380993812831765759694344851871507942592517052035576821903667411716370436132141615112075802672793246822301609416154794433966539379495056523133548237185587418986289779584915265706269767820129617205970494638226608087189970286149235345673116679358244029765387990985130520116514308758177520272851984755250778776659647015844844867453346006696942321940950641274280283009325876330190415292050884073862666474163398883028842163216715121813981219260777236025333997227317303754126822217722531607107170763000293854842638553769624729143761804813725901356692124856961693656497369268489563307829161644930179276485094939764336076915962122946630631060459490599180134002995645425279922715378985771672934510592565244299504825533343459807931019529841299792066124799614843304490763959925297894652303629748201312122730887046998803525855041489878684901240971338474652782432141739465394779678157414324206772530340080173156162292398094683269496922327431960282802386304510301474745766965362692416565874132439411893305301640436169602553045347097163156086273982811989477040300161093545086236630135868711376222825203546343585214502652359201189310602808720965347046508189705679105691010309539431050944621184806962229674756617683878467128069722582520768306404135424623306543422705694271204259817652525128389625191654446926318470515453089181178889199817744356610757238519708126358503045801440499683895466259436169111359046989172631963676897372360019726497793524275582963163442237230096489496230911694256364455488080761837941713551533112451438210591434775011220816484360172634143911842042629908975740240581468790379418746595358812480457446105355893762944323670194255772926744901896704776305846949491273601673416396189081355547842274012063069353516971681354736690069906267142536262701903922951471039067526254134996029200440700623011493610767590111529876000198116137540241167449236204213532479820390247936321352424528263969452916013597034357192206039841877740902508401129240291598662916868423272455461433540224873461000150538112383086651386207938467646894668511946402116008870391758338306427484679900420087048746486855411722325748747036003366389067151091610863437675330717622441776955474871311458014878590976830326592952863686955050970784162924501341521162885435686229892343582741385386109578334426737239487958451864059931516647755671987869819078854760205392248203037395096164405673596727779497547712841701187463146375568741138759542480045680910018419460494107479682270911978221598986219423937381884093667195809087705123059163954507111696167864121919485950625572823638249422274486780527753694645685680554798195018191182251219666581950262050416371529146432936544256254719565236766228083027104324006459451483070073378361699336932829985396303278545721672269330760251015035477364017628021966471650095810851569552464430325179479371923340504756971684604054931376127518466485951078781665368453271586942005152907854657811876795369617515837565631125336483112376774169726139323186632679953014997532359111864254576153113946187958133293673282350698502679744668467607437144731247264522712208401154111670254691201545903162995200415769535573910356959521454601155784718592612583538918994320190620396813643549191726634473289921846939433570119749497487811808133772292496155533896383026715082130519445894260432420789316885606292455786139551322296981313441576943026349027988882318053384327476376354971495592871941731721953017443675769858715355360495183085137370542153044472484971715330120829852486458445670288742913965335438688074202252526759458700982522868633165175894873772438795605728736967060256808388577444752994619489254152952146186440206190375479179187912461255130590922305542689787920460705026083625211343201544818109971967652927886074454297171842161321605493356952899441641205061199421276248865760996288945268490274105122642492087700212511638667460815518793701656720151277619756473954300551223233715629204368174969895548605426843601431199651129224442643541410605975803488626966357395670431907670452649447425057268898647401860916618059957560655809968210064889632206328584365692559175161507056731140526099757376498071618362617468536258793135518146808779644279504031220184011942534746094505733756896754363191822017222837492920718683709517588765206369552365966902201111917782027466807408525290839334947256581926746439740628880921048820351671979464991970330221103395204042157247483797421645169781371015438563784147068146395110146180712227078866249880745241282825441518809614548479409490905763399355673719361182021407922059993760614722025877762091336416468004778799264241091305788651036654783340733071675334048955537159319611500777517909234622053767823583870807476051739189258947521368962686100611002210504084625203289089490210491121974543684573837330786887938379168330801250573981294257922664814938191565303368445137894058373420508683821572738498127302419246592572592917629137858146829612546469032009273774239609729709962630610740917170476216977969204822086924517635256908221096111761737019865065773036223849901454993432074103116515831636710618832488641298648706034654364365570885014703030262391640751826498811356603938297850416928253144467540343675586529231203658770124555622245972615129815961756390637718263574554341714180447334250377416665163786098574791703343983032274853086698618934766178985804319284238610303387284735368785096968856360655380708436525588946478339076506780934544246397174031909375886177694562590627582117821904416183008538221972160896924818849067925792326491390803058181925865845683237004344036493694731553065682953870496054244903220110794303658280937096332410647475549350282007421640031792346210648592984632564281368145588613894174488084531130308262135270424151993564753631459823167367978496283915856509872844570122915446903992466404342368626848104987582773272756110346195844433676116441249307346333795484157616690808425191485347975118944372138179803419578926796187687558346393005213757043813382724885024912187424372239023817288745520739846936580118302291899843568993410590413135417670778846939661763840403156697344429097433765188969081556284474515909815095287851591315079024341554708726699642351939398695689348424576261363427801579463900932750050063357555071432642618653329911179989805778019508071183722520023818465158192724553875582045692669697858775035099657830339049143368152818714267685341164036868643484281860908762690663124191638825996707029873534817140664737406655073880877873360509021221150184316269559545256614174301212679143769125970792895336232455171644514878572439936100990769531039122784147645497398668365570592902173224038502394693239678987503407137065658874904960646049359576269545045512728511235339652163117145384097658375950457249380291543742613564443043796441604989557801515202831189646459554909806532475471415889801078595537655064691347639131826619417236582077531946308366785186185179294093161398445915859874901377283223327984380230093018163027025035293192825651233953218163554840443883447790204320452984130015246430543188576929726259251521430246051236855681866414795232392439323015781184757205413819538121177790620788898343919338261257315842632176146573211310401944174126494234575817570690597036653351585259337383823550246599698052863156677590727265390019045879220474233517551108582936119490559286978531540969708392554639199317805291885462158189324528736185058245302846800852373280332239968414535761672910457446458793643840189853883276723880986549187074555382310522827912469598682362027051351966289041197284630530670760820864416686256566024458845955609703240796895133701673055741047959528015814740755829030731691235592433325458117193249969635346257073036730318115297239786649421545838440636012625665270230290014729727045127858372836590919893094595702188453646029292187943625963967097857292138036435217483202682278934092746996539618919398928411567511390705759155400921364407593126985199436286272240485607839524127764781694928044863828859251363496992662461740493416201296229806000544564569559184689105360349185091785187096152995794703099197967628630191616807884146856026628033467873236416050514951897127046940644191440392778663651554205801683825575893075093645360757538647060958232468879339642062761853972040756323382429397034797213831319333826130029673905482020519164183911637519612572859474221565190699337809524201884505075761552455138241048063945877145226631660583931185970805833109282884248992211169069198663848690610880825777524476919998866562422799894293494383229692960688073818601813105472825283132648532391658169389165653515641596413438872605529620990336300305470778458394786054314080073317751450169399367027191791218429915182772981344126690555440237317390646454289049857190501582972192568072372965810547197947679471448512247500088749152602251424394028482133094087360300363158394968706490946440950952358828444495097348936336789501724193157353988778054743173835512388332230524085586514647190248056468318101636565942593644996791327202194947123298660191555206151018255377403585498308414906699125047543943808008674443243290698215950783548606858481814759469975337447446965173666317369975969242811439772646017968181409412014563635419683626008572260955568604599654870870104113011047242816332319602169787134556246439295505332247891109293950011282460148084551026957979270050570772845844885768932057044106102085957750069021801231665871020495427552024390857317240022387720499311780285078369613250915317911275371860311624378264521054188814926717422274201476882740640440320674756725269994912670204379998032577848178420804397616666948763629410865384783284229226938451987245098489353541247653310052106609382520733996876115388404181144243813149950709500144663225600473061853482974503483696036997411423642287591160053959357864473790058252804944858700977562378234368029775935008045750139181156135247988390587435007485077056474048718786434903226888889047127483884484421432832735612272085834833735818695965992476955196752374948780007092284307370135242876562124102404754301330092519027538425964563188489489045300705578378888341502013129949655273026258806322716318039930350253495525804706089749019226434603818459141403611441129922025390999006932838887134513228902980228101433790883512575696984373361042537065783577872406946784979459976160820231911749365411102988185979807734720727139552955018368585190723368260061565058972366499170792381145855283410351836940248630869111761185189053096840560342619767778666991178565004553077294643726640799886594443429551818346478322920568757865146376118094003884729855414070478464406856795309170955604320883906972478472627503546443936071949507090206935011762044438433926730403097672233547843684326896558741710423130811545926581508315509265913159557580109123437453981555198431147602264787096514845852974797316211205660452461569130507855247612509759226101046150251844285746928445015724936501976380815320744107021781685476911803394481486650104206120321729406941618739883861364039156644583092727477737083060674822404590337073849444705268382696121383298206832096037697789509851121687401425995970234389071617913606385226717716416975970268843413510626374525553193970850933933825117632890114505904817942003867789983349665857835767260189765399556975278175146279821741835269828573180462936716958419065722864632222471852008180657490795839877279210219265034471497584893590291362139973973892253070246338423032938364279176431143963392224298646190913565622008140315589963469122328197520633344747909394624589254011366088642637266836557895634696087873143837356451799252624527048963754110175890679532500598489005331495129784180010911459667762621563083867013371000955440627486670912870879108295129688364189660069017575497621419054008523985066812944076086222521497954066515669179681997909574909537190235923163872577468769470826020061250848701554443587498898454004285179227031872800998176948072533522804578614853892572394914022989897134627541614191297311751086275779798382843766230502688127296328908883893109431708708097366695409335130424105386263434027335949190863802699307377082435294520985067862398334582306519046316807353776581490803636956817481569762878268565248174765404824716729160858943417933533702122164181512107728116152242377925523488520129889613836968459651506133676897227623675228213229071170610688427915181872864892026966992201072421085099050909300759173689788372209375826726026163002960551320471101492087472670097060753260500917687824497750554686647498225225379736089701764229286766052084191345656127826644960947868433801071880741526234003937051262353151063674564670068671439188105132284475376893352139872845140250966416322928714086320418013505415463808897989906267803671847656436224804113341222150716404837045887157906229043116546372583649948297395528057687937625383510265050108139551717502177855320404948900226443573759509259634885524998549766457678664926841207247450140684988421844651122303408472400560767029253542181075549731483325495889400123571901152701653512578623937973012886205294170142164504223353721511113836189706817334165765243177984391438350004642994636568760377097825577362225188068119929117495284863858041545784011084873049636012723823425553619452672496963830977803601184977772590516942839007289218381443221938952239723628565134324260237854111729087843266253981658623701568891755255230272464343544460799575385484652762901149965419786592204692070174500514189675364990417249784902031609932129641636270556559865246538067026669455453039832171798274724205654236837324659234429372308867684056280932240666838437390424001870230912518383815021666471161007210467996712815066390305920673144695739154864882465829107393125403748740469946295112492233276353812198482558662606455569284356874080484912887453623924403772120920439792676802600951781042860420518080133505771878936756945221045313010561933857606501434826924270157214770988905266997233249459598316250873574169436776945752347995030541303054012241476738870302602899936821765799972840395673934528861855846582387941309218541848985667502442414135037086330036153898134368003395350751784193453807727010011438023573397417523392638760656677479142444390647087389270870311533468082661229254062251792702940147370907551226269726707780180923079131639141213778923934333014354042182814776592142413059990471634647358979793910985641339325534839519542111798662466253334290366044384000365417745054573046988062305776777465148344033433334759467674137395947565112455927194696088142963323269697947428140118790710001760075548732849487942462733413994896545002939193154267841169130801280657294153742438561917363955575458075397222360023619466416248598745218026800100440187725592582743337449988561792185378262748564659490535916813710209033873960543782079436835404645815429728899654748688773073785251603987562803579067154520499893537925026007690989485747238350199433322074837834185169819079789238933958810022024129578601955090560330347610427074243690522244916560480703029903959214227756197877864794663290888993304165523059945979476198187258663787414294928394810162895174797374459942567464682373531376546985324049923970312746351178839216654735766485027365336259971540094172076730868829512063418297109667169936288789777414519408592926241071824361513233884787645162100352804082753356001739061183079742429415864265713561543299758578962638810751988599977232939406792816291963233886906494835178064893866808250874220728915875897642156094167341481488926267626850282889607087647474579421493410059327094864895434826446221001918603178205982521151784726908067718020809536274964579203154152795785082601348147241236838034431804804857106642110173217390200120386562990599018561341314862650093030108617297094779985439046682956377889021798170582515384117119897684661733379077004919079948859534816659984174794937224833431258421630873942503762454363491776959956512315825953244888710924478144165405839964478070125811494246573587367161230164924529226546696530452866619510664124525181311325857922609637613794883765185471376858124599010211638254480020019440361242702456530716329356619727115791341000883750000393014783318625906849408244782611995615820378388174763767181801963526821385019212687290955291782181203098546678016533983431362042822793690117555555027260576846872436198235892474484084994239874809089814959547107026973654347162364423741518846301623054503816468206640455881491591048527923467335325901956669830829550197376307630676660360776874394523211551671981228768786755274012901302529661172921396984099297730258205491039285594116484702189783749491532079086989732989474197330056849827089911190620618945219888341197600039196754294887683817915222046860466514623724388909747866918484611837960531062134322547618607999692753639956645742483680268750596975349959340765988093110495628261798200858660922764286188152851726229215846204580993439677515727454537900949541174655452054805634519754259757889302706431472536388238744582839214963173605629756285184060080695178043784760917012672899581026170632963830619763684098809064282576015988168162877262020713327588260823227058540698959610869277745862741030324672050653492923577979599985355980931846298918136969956948109339713347247785585976722952833297369311438653065304046159171977840295373592192794670753452130627717362735312163003312292470537410502406736874385530018253376627442917085815544823053944314533818711879094723992860347508678978430791337733360856015636468409829232448547796760868816025279235135462618253438509120565822474595133044006775149646245303516828960482410836368776298334229338872082826592549232224955851434247597168587592319949990156416195456514875858806302676041048730415949300419673154358769324202260154114781847635290619203009225879079573853861137408246202322118767839646392571148582168611662162537041491487743801331161375483817786929300936648520697234117289901010760431901264434098139789155558736287157871009983240822207775436738112185111020762293191810393002135104449399973757505403307535150055718980390536681033794483933931395579330165752663903712265593730558013591905035783048744165173107947461392150906820207859734153889650190382412292931495654843392768032100655283191894257235982354251499528282430329466775685594730190630670442011242507546776447732278030149213045301143697915710485724283803157977880878269681620632585754943811329818266471434449081757313709295074701801176024306323672171812894887143481785793331927506405608996395693916132867921764790446597924436542174857462625589683451217967512589289817965523568558919238580323031363699919329993908436873489163092779172659246366281154175157635006582551191184641806562863514294384568873929818012878989495945735282745292740673442915255045275121422081203768838942699738779054817523753622725317749379501889250992528898487249535011311114826123924005049539580525137619706469070901124731736652471287481604527475901585581108183897977370549880979632549808922621241500494022934185728683742148476510493772757661604935230391690228135634325640497455864277358667812495145713896740735705320009708660509919130545772570074395145810358377656920509100508108244122488277798961598260409427433886911731107754429734020909343711976772939185333523652854992238015963443713215632388920119756726972192797356398406463551934697767533695748882232984139292479825094016721026174010974828579894731927519208647444708760336481145491614009090819139328229421412560342653791668122526844715500707901846800353982260488541100616935378770194272135154319244906766702266343600022219474705779970228997655617621671751863377862267853523826101892551654657449178266269655831149270433643928906453151674903708229463978032405316196591696687219611399183174120591647159745966534479511949663629559204608341144946630663925178261512790343563321609421196188848247446049108228334998526921373041524172700579584469623936653446478116030503379295086988097695388424974925669505128168485984341146358052259491880163633472649310124380674603980426009406867605252859388707309779944643770472437402902242683611173185385751409686387198439589531632280207336754272936172778974075568427707017057632435326028077285131553298465781487281545081879881554464029751826489392386283679769890350020987485298717744479016351525720195668216301055525426694284872620041250521413734927812278816268204512653489566548903360011670696317610926224410178505280656863645305576444692970264879343019891260018610920022112437936737025121551369539370538962015036321531842508863540738584584521691169191129505186795043219024699649083899274135336193392271479421410022678129806146643044027106873570059244805947871536003151039841941283126967652874140202352703394214259075839197594816059845570695885494908787714608727793739084576704937363487628439615030633466389883814114105623221216313419526754679943496372874379232968070405029370320362196520277003244554665691772762274278227554173301507205318739090380824735764128049205438448887128644105007965863277532433719817658280587382502468043412559206395425151316546421054981646921269402838567328920756340176856140728134751994241211130631950204299137768318171860024625930642109671998213325045803088900388993842376770206830933426639058906744750181116075787771848734318209142786614347214976812690783050613145807136612933450362438313399000514115072224114087600234105872502994773654990573970277083028874998324498342703511945202776431939446409991096028921417387760770442695319239439368122056808752471930259753679193680726833585145687644316551084419764967510166171835734968222099962680059372144777123775304755430262752568939188132679200273971807888721302801972948766528767484315997606532934422917991741096894905552617044562357015947571184466388232993209041677396429750663243765686209859553294246912986487313947175294615270291210187419190954529361102617058148092200921924280912516103756264100756859436417858927324015134517906191294775789974369793974750335366028692681011660819941655980753146597364309390084080297366558071743132471917849315728909848694501852375712002627959939560133242652521472657202542429241983737513253655849007863575708904643659701900290330649629213107428223944642179088215781487373829094528242744337802176943342555343952180541761791553614480243944992910623620032984593028941440201899899730430476675273048824243563085385768295808396557326551691983007244563049337061597862250185523063262337274067114842854082496717190294570137224110029968812700488970441474159408553245563632076980397331898982872424902119711128980622374480778536051300918285606770925387112264032621715272810551646107383215827765026907722608749491173080190109450784052147182884658302778231659232361373989869603086386588497142894073589817371977400181501599519712935007586234193923110413222768097539764896571924901903159370242946166550255444532366989108702232977521608345597460764912775015298264422627781508380294852774899594563377459656147115524805088946085751298858681923123877049266958689662571105558441136828844213676513898607475331396182587175015209802795083981688842025012788879769325853099465999186254326943910068620581622747191888875123711605283389856012429944907133547064679499265598704095682397446419569505239349144299060526923024732265223562495727348040094133063508282320690765762897592616459883781173427557350804992012278938816306766762710302685382350011792613823180537805939896722308985957242071171184445998122425382525235289175899462566768284269344702042998720364525763970202939203144780583580227463797151747981955241252719422676716141140180193509875628766389294968338290109210928944202382488238200477534087760438085667366937886563287185096629275353741380261624680173687456446697329056820148768597355611574320722457388323134178010716687941397302111765149460006510711192226113129513510572334847264605012907167088878411332432671585506950699944880828401261268318275318332314019576219924698748254854168488754403911698925452885584174410311851520046838520477878145304502480058731079541506164436424287603160945356957289650461955358777814441074316693080013799112907750995952520675761553378671617687397013457425424713956204648204982600821040257770511460860205168581682871359095297839865086905362038531296039631069831173180686244656891053889243435139336469367476625125019188964849609327539427162785311851389716928932660867407902229085736308526068755800522775003594219459599421966007641505308360233554300736725656350546158234724904995428224580264075495914579849314059756871322405066841576037573647401079856767906754198491124066182356534836149856627471087343999600715028779204233863011788307078956652347665965571398826734011036201774512680129278079667538305780019777097680300026450689809107988377302431397364819726055063308554487999295740006253543023860213238874399282712296428132379468072760875954457782826980173603328227709823510045791317229625134078940486731044916825272316782875606152252648149595215706421436012650927484347633530641200600183108564341251297640992320323806068700947522342320817042241140146096866498850953402644228941640200346387350561580321574719182916423393566572118774195304293921833372520796354694652162861725665610017268697125783846230867313771714192590897093504599707566322959757559164252591129701948809233089525245738401769474867851004931257189298377640901813817929323658739816484373256357799286306939322561344677263142230998304825789832586654367575698363041603827762580704902716301636221800784544225753404307756255873703070038849416169559117247973861291718180759384635447935943353863559175528523253212390550439948202692458511072193675752355035223718842607161245173246080245842460297607424474134940992606706102546804866802098924915178352985921482890242936404813358531749313933847498929249242256310243761537725774341989556802948240996471833185313232412925987108752094022246190393405260855656202752363541828801373133204823970012428040260041526786620396087951767640026595629983934544048364944097692547986412735390118060284280958486436529851492627895606204651734200972336785751546144438685886033393729178909871221937288323186510424840326434177731455777725717284323113454209569832212686796033629885898358963443223565297645744156329933889748000893130699023894433319736638935256069256491797152628335480299523008659463474491870057456799624572347211097838684266683148340449153556713042222777774164945094742540417331442060158315614078588372677247661362901900569803583941476410586663043432781193109084628433604823024570872648998085517406558864410127153703598122701883159273909735111329036913852443946979194522306157411581628679421425270498340192282437499320760558236364960232526430957967186937924260330061389097309135424488922117485155550063673873229462981862570634099265836195644011801079582624439126908271366016792563959669905480021235863286200099001361909032490613336263854734624645074941896375328026799842980197054611283050784440650040437375391551352024649531196246822122175098641271691510410373203747568123161039413692764252056280584641336292922788394762458647269054978989836632111316365621378147939952424222800011638672821707538690195641858263308074678148365921232059453049153164877878758509646848818123765382643074238448674766901453016577126137107251541051308091853275180604054600826210636247383176097022564849491336938572977404618314594186412906138849327236284181619107588610789485888543796684890714819619435575134520442910789712009842534402620312898484295365671298153653544165766014431930590745126856323124201257005809651267786542080165836880045786662399737654774340017135464901911520336865527205834426797456728691425522201776583615178522703807925460410356268473580290188778842709428245543007594406423283238953527951388865038499863230087672741791998604267143802026127618259078529877752748949118594512268810546227486361361171659468813362759736790516413990390572673584814221969944395966834464867638485770482117062627138349778849152675914409336189424650064944665285896414715615058019747122238328822332345345893349401257378706877625076968758155198779729671746537700711730372154923802629015556527921195767439566259031275743741837721058329654552596619679717815546166997682492614935405164458006490705821591396443733797376477952838374003123538783737415161376663961745939496310999947448029334098205839242779695465383018909139844155240960461541003753148057403274038639403179900914952602305845728024419651725236605029648092728587565691228823961657962192384769456681708368914387776967465952534503336653332958725837638544096795019339433142207254588785994671525105581642558492131646964553983091311274977625857584920021554169566731978638933452627914872441302017926132677777159069687759537635838710183039280401680498859441963494444006303789314810337267236767342886338254712497371186431635059366270550257458700261695172633463057116404369769009534136953914187875229739658317162114630397946944000459350338629898177285152683379814580013511200282851974777856845469545173483575243110411545186266588592284334975159786844842218909306313345403767974616905091276966801243981450365539179984481605427961606607982078359102457455261851396776670416620950054109219777423786961937279676580246098897846750720343667884778681911081557931754784833832086889619157843694972531179164330301716919870150174003706771204370415548803205035193321467379720272806732434549798119078290025271942841435354448527316324093874454190282505700021438841512513451326211944134965535699793791248079738767368071820431067250766939271825447643529018137698218027177909522055515860146626536390984686303154908803007443443207524730756237993136293127923037404261899574525452127343381404156743085156369123679646454224183568904106299721946759519337599766157118807049377549552939403026188507200228768834099881348522842680368012343745199418952565252462910342390398761789988885245209712292061246287764137758399477176358734356518275116133264458068115420809501075238097686873946350936815267861216653023290734123478917285890058636319277367980664852009477714522517024132158332751009888968409751386129508938887138319412465342659765880413184503070376600723271684818568502869435530542150730754420513722773998475056380853601158316133388220467769484148189929010206899499787205122789872107956718591740549760954461884445385883005916663982355398319313740456566113822987207022354396418132672531424607544050436043460954570340757189590863684719540770344113225002057011086770335629978849362547418735905900036055860485513270988784086835912658355043530655709834788610003535320876227046076452026094982514516126525976126389744542396536068445057989550526645194063040500424384506411264504388737226059347025127249058619568632644927096748625768942703626090497892077479305086303054067485606217589021960457118620320353298474204922141118419099943358141223994490238908742709611315447788450251292711584850616704984659153751631797219774255493236216849334057860924556675606664751054172000338325590790036509197782052082331131742328630368561130986004431165843585287653031672159244652487129683075419236197758200580711583302173394180065878834684828741099439378183276445518903557721877491853439952508801580231645377631308635012039116318142966042519407167551292301001920506603287397410178776433397730560317343781274103705572352427753054535974464881873779436920518800116155964556137081814083197998271926167999155802380212290461720290770880753968559124790280681981287249670465171769720278694014682626533814986462261628745104316495136208415872904747349828549296520214013074813978969649036918244243888193104388830422922910330888681591652417311238415311154906039358655343537225183138971481170780842543813093820931990874237743642360411724595800468627928279848194710809600020396804963270628976761712588103304678299864927679434023329289893048257605479531452199469844933355774893268380735226736863598136908931989311648681382607220672416565225109589332628835457492994125463729170348030083129632955571334971496532862859185079761560393646332880604165216605389165925908713824442129055808096522249671241381016784023506149033049060522991057916569238306982067378408343830135036570152488803204037692771649326126049975962569881936300107666403605998544610928407950470439602915948454451634245513471283008431426894764938970621433167766763861887277737982878144247605811080857555427473039414810976772361557037455677852737322332101340294227677681633828778347912194347872978662475170542625797453278662921797618006123177071634485026172062519145725676841815128616824057380766748937867208727167679091046229386022961160966457126815361096776753656938887880977737785094623714290862653219246065690043868048712715755859270163696993658406676106314584963991391992715530605265709122779878397086717168340425826693746238365875545632809926056008491150313179802386237204902114740039460734685316073507281022428032692592794112819390677797751233646460036221136221995184964384779210882199856222890189617555138968536991347612962333678533349847422202475510034137228492690307871008973252187581693394709383123966457813441192148652125048463985301200105103898173434890572926117118682522372708763268582260689212630133314721101099981699488907823291582186246063987190229212784829787222702665437527256902207736390141822818667747638131158560278814022930244631489585882956195947966222134822280192114801385423310363233729354170276040822312924251308338697645838099894346947443982191660533077819872358490148933199046242391774586741080783080807092548766593727122183561178796842367431922647451297321197426943649957454604732525911632258294033031534008323159885572122394858347618549358416063136744382326417401982447872136876532327155401182846680667543847292870630727124302882766700734355368742748072635791510991747564407332733503824350983260784960251554586350485940319890647786675372421773152472559632994239505528900151099609863908084501109112454703338979222376758151857498827385838951400212514782215573413033361932714936341616274335178524030877850855153843285489421861363440360459339308624727371742592822420641870145508537587092112834830076524710253265516970296822207599720775160324602548516054492793517595706291265403177908431707188274483026783921697240358578393636481433800226929858568565342044190988271946150297629575057098552773600282872967995379130706265029788276416341035301621847584595252637207372057628484565947566611746754361057492440515424307086217497683937307780990529177093848100638147835491640257697972092262913195531831895112381265079637775082631612915052592060966278094778474739952950928757693193824859175783357421605616078403001762119204210354521811425701771378919744683487703907623234568036450531892055279093409556505878536944773182262606206758442699986307062679957412949460858753758900181284950592176800318152132923000635283869159584294193388188313325771869186357618726410801058564018103371881139292704273468171031516879492630952092237151974615843673520098213147216024932698572745947024415579949169392839948376409998724861494969211155689614542920584658264532785408856243270363441728497701011641629933441048654555120431365032539908991171746909460613188272178688679793043367558736275632601767433292074989803389215626886288540512835795285566147625868614030964340410319547941471239232769096144113362418803441693791054720910778731383006849198715893288012542645297387615429473851790159061486873486696814166947935954631827947832605044461365560424144838053878340402754657206948713579159068455783497977950689832121579432158362876030154829990805287541618956464005018173242120907471105829652770165062841140348569069213888231205937605065739891754432304557626227690738501655623543055628869815692692662545338472192963792609610205620781553206055188133718682814695869081277246284252837533585729356922645202905567048930116897540966865189429958182086051404357203703244313264049278614126549817514211665332178045993749053917177676771307863856959386977946864444192940763079163721447716625151311964404665437495473736867615591612655782085979404481314269554872048702792209520419804902169256445308840242295620556388911574078236072681300991107564113685472563960192412475991709317513491693827559570466372150780649163384582121716923436669386486693105903879162925247986236317595609059736126580130568993121356908573566338836711658517385648402220019898733491126078445310661438167900691565359450759909972233395621589953269827204447656387300851184033080843789738944405342144930807273256831714471899836298421020138899976077666221556191591477235300207945981591419544309083455754574641900088302101974003140476880414930735259705322411985435834805706330914519755123746530387169585146301542393379277187690907498220272463460931842837144136444159669200389549892196230566025797460428077395354255719402703885097111516797680170491199498784467604668185839013395054628262961367982784992496318175559425625610811183881117047959495795022972773089996609364722590338818032691749849283567336563288021844999048665989355912344349405529226699409118382746837886577900211135096386015085061131134932379313227360825439827835145433738587419316795954823761961996706805092626915169611489373643415849633099596337265129740686268335116256504440898326966476230336215096540819428478800099356795238272755449583135028467337310175494495048815647922072540427486331756635514177040429616129406446797604203502126363652082504262024049256228364134217169455047932980036212349964640200285356556646613658608068121861090002705407099637014246333775876955911010965737192634417622797812119269346906970639662260617181182768479626120706309441691178392423344178175955701427561394250142750789814669262384704908913680419007635630148319582309395828378963650027454053759629532037368398928262995029645476539061565177145823383350189170910116429469195518752294040491409111306920420173038369767718908454946819288361488125614378201268656109246909351710648798031464378171399582581966301433642416892513206877273596314249982213948345338549910838603070899143404503816521249983079774638513619010155519686020338306197114563079961227136223165908583188071258474079865491245618742546489621471995486933183307831167609979120116592216849285047447638571078252393223590756343361552009895250912861404920123229621067060339370617476740790976210119522289975274771113645143091806770141872448875461622989528931414676054139275890645837013727049943326392468858280096263448338164934634457454708814967605573145147781260198615178736826647835863472464380702532698711398666295514300717651035759449843139267688427692402110109753913777514462920407457176110129761491217015181982002017842348981358408797875852988467457130913837171858115760803648616215342604999625644714400616188567497827323619161418996495744178528062459330163458980148764585760905372131771112398092845644817608111043794104361191139095668632313510140024860200132484656743569745756921047645451730540583374143762940005205873681673355308833078262616948408856288033001513298398003659992232913100285226506315187384384606601068791351002461142532393341640079849377477971624504010485117970987746809518933962835496956758348952575292051660409967773510033890831751578296955266533844050271477645838431200757534367992722887846847998243578268568607238784509506125259327333097167044023569810803832372025386104582628715003742092818315295217208609900520874364163673484187511397856467177789493206007722847257309554869365195030932627729172874446408807114507140595000718916614335035331463727404437608168605188214373569061939644889840365174407036325454145110109207483015540081575574865313976421777706002255701677133302546586526708503494691656973701949058043456417296579366173338952311991167094206627516717265276661678214925784697380783190158503598717425039359555234627570112689264460596801079622956443980597662821517652644044146610332605349415145625516611867177116727190302597445150798831615785882388856155648704051980653805365936390829804802176025527259154464889641380027291953837267312334443678998415705500122272338196665140518569498241727330558915447687157784472029976620059534426461461908486009682774229254054863351513284236972183031732404964706325411426608585748899579684244508121046649098358124614246936370329843747338388290168467901630769333760484809605323021659678013782063560959791087015286233920568684714070987468128743648904555219031511147849486426607933998794548057036235726071963678718880807435440900981036872599544689773057746941265507534076789974920136534848673965954396969313015660201683592601879366181368516153147001798598465614283594962874373924014244459863212365709765858682815568408775128330376798121120543014679678603724007378907576315772932145979972463806896052309516742293886844926793758674511834092939954805319795677523976372403862360515368552235649085756898751507314381070795491722480311596710398827924593367288370870304080083181243489583317016592828094331266176711061405656518890777594339842266030020732121940414820724301695377740404215214897456730882246469662131792447505960263223382827140897520559378260488000777023381453585059167936727431887149210803599377066876004164870739409509027955097467442301560478602925743688271469130503743946101934502699613238266612637005467420801439715380889778139551676506176344028215858075124171424266943905146164729258709649382799469939755252134153251964508578472789130931119609313928476107805354414427451148410844385149348355318699488163831261255143512578141146619422635608023188146327147123587338345427031942913245709964525576192968244500882699224076267001911523922143137231362283959106022040452749179832723344598260134391390839660709111574989019875192772992222325670735342213396045935604484194031902091883341278949966819132039190854931169315079646336611169119572600150210874730260241170814514208507498154205663829638159166470001002126762018291765557561690302508937788574094229415390190342917273034211335204745664882519389439858172108124329079818017372251357486614385850162906929353483790621838581601010104851314659018943995253275279570702161570035133656477430268385085151604245203387760648960186097299889305357249160048573400202956772012461933891766127435871558252474994703791998740483821617100298422538089163440735277911632009839893084908864183863302250935563612448782771171779348645020553470502829994522850407249794535617800684013929564886765922932558789758799598034266178841869891806368027469067108133280915724054199308550496424917094846650827474410142079930297989302567103172226077456540069886407659709127425023261546846915239635617017828812948275586170000359692138368117566598292120468953623238586327743816616319967671699183965028979096956232054554351817107211586346946121536834210885319588920792557622415892289483142099645778686677506392067895455638964711670631280244379489982504920252964992946882002748459409877174553259596762765885447532916812748884602412275087798269209144270949111893933299722261500667478876615909324664195551289443398898532126832604197186843017961732645371757477758049280738825716550703250614273861231844431363695902862008065111995107307950813435557084390719352536401139339237514127467915623532977105461510011066772131882786873840564234093649051080147087402169787045501228815447389381658161076193578949024373933226843428308692195023252101921725945807923521326708881969647334999934211551332846285651018352494772758923337459418811013215950809869851929185684765531286004131493425966439002762060230239224452892267602149935426345692470415968220869311587459274579765871757718709672368373845956610070980248611987453092377001092616472094341292929395812364246880604037714399438741465998294825570781839288903405270075774936749605579413948099893373054714852978425232358542008122995778482473453943865939684018594784182437864941768988950858255872506147762389090982856618824782171427358865979803827007527775985291183873434932125247389379189321761076409266022852797641636031438987528031273706250475533045560628153887372657194092642506680521608697368413843058642566336971496143569482968307839139858348349704409667287297183532119919296452662893435351309740180061070021551831271506488967876923813332163426962639741683506049195862615053443984741472448228092423640350191586156378999052023946676501795042592646503910197654388269883014546526600724358638851369063032301114295933058086138193827150306255845490185522730299215345777552956416978447345705535148047888006149892618822296945557928883014925073326861976445025205700215074584244550009684520237888939636110087196864105199417113102340746568314827897949456040996344563683127577287518337789300206651108131545203934365439648208992745659380093954475230349483283661796360018273395188411448309780995152083225076803967506883473169076563078170352588367363119592398722443779331814782157211812218446132763829859143298159352887948454915940514357301056382504848553956237806637561144653468014680806407601496017847392099818665556120915441611005687705618881838976102889440189787028255846848234502658297645596139079529060705635654741438531072219547433005286780974979838241058835989948526651058292863056378729900673745012761169564062038321889468919963406096533261390664850151988749459154264229271048482717868033930151496322525624896932843130278113887794397025904682619713171218786934562179421263116825165569036661072721566699898512585017921218410942080938531319864704880497205414407379992671183436458151217314207846190260832430134698765471952219418942863337169362676700155955479302225585746540681602397817120096828145001283622830054065092538470241717757451253731989381173065529027908476968063611554906624778120854442813829642058120465422798986874742895376879078781601936197197753799354453642798727412689438475728855595202575736188288683980523691647475449926583600776561322270768494606800151834464361598818758667537329510730121610975817086060964650579058969136461246127253446335018874711126212035039233558333171515893172366203491390266399306883791293835286815853789523645762967774774021196403144613411420678863363886852781747036815791914296065410400863547944852524843058925254731863871632612708942362666625963124891017837723982065407535069339812338411315050265671116572634206293799216100235981443225420250913020052388219351134772665572404551719386155515833506841543450343910002344264803276005041895686714207052172339738883404600788948006330875189561498442508041110973513293052970788381255691599995545170869487387778266562143775992556359107748055889420268727664338095322710898197333531132957386162117329340243721995273089683270733171046056120305693008480529947214371592429458140488006695601099131719156807688194372604028469539181052782922719935328641869673722707186322863006023728894695497357953731168467778279186354306370170581148008846323852524544359053914256332913738803791954796989844256916640529788591734402033678961255930037746912406684216612759256800323009454656664227026460707065846935239517497283829575154191269903312493950127293848795698176535666940958691197972299147415325071523767965551143676254600190661988228728693014911989502796529013792922438368201256258933607498716417179965632590716019144427475357131510089928900056723024478956321619141848032257986909089992422485260133847928064399928506246283295720138111462995240969536374125074477176748233489603245641034701170884817531250072151330118608730700838948890342045347331749543501066372198612612578351357414266498335021706115624159124926134218694523082297887873538072323124473254597603156451037350309570118473837906543046652753890787099178878042728192598597768575756802545389663831991069251265714082073999055406485883181379494639441658262534934960267490345203460455848849694317327789847263721107595888980357065445503681096871441674436834974983440085693408074462690549410497774992841318578815256596003529107741325091345057065863493543025018645516564249840766613536457870070268082892022142603123895780854167829734552950813331664488966599783398713984368175635140413777865187517251781764349456131860447924092914799077673545119056061422261986996988298427664654320969546008353810274222001488815495639215287307286988556953184905437080241486768471900698565703547800418595534088786913134579593119766454795025170476191121565822849087882100438450639019821087277285893811511203425539551738431225700121444850662763749525710938411406452751835224292872916316392413272057453179151549022049023035255457279777244192020820616766849606048674546533314823798083820346425694567550764463996207599259402366904820814761656110362768543563580555263562363911283976240764501786947990236527562783398036992811128766004780316754444138275889973144015055606180441179259281085302634960755814194444474085132900397791919657279972519774673760892781057673887629875449959048454557520358979603994720145336557378083930999734414197196646139766664195586394650705290270068495553564102310893095861282113319285465547440775879812099837315278446104636944754737431756398743054028807991056679785579185391612286248511527523320816733559671875529363403180842705668646062613311413097556214482214562413704362994386287161848827319398071029173213974672765828711033625653092379486585956859288555389460758964583434036034782123101468577740495101476325403327972380619639225884705795032696952803023899519638196196533929335857340590321124822838835657458280135991175778326364174862895633107915643079481077136062147354437443960427379694955675793172326852502558960486912934827688407510037642165141954731332617929326711856267081537454497618228142353001327377943204001825113988669491162259873378660688002619385576227693839581296289855131238014419026939387621169453846919976570955544937896139056382639393068995495338681499414857070212182467752501033609930884324198723736821008340934840233255356719137354269966637792152672744009846156019226481677990168169667212235272265385248999963049784823070041544992577612062954206449379784520505471987955919381108006053044847753839464066146447322924950462313718066171749495149836713112698620204061910077560090517385425550186953698685802494412241168036462317156160264924896734242545029271932298089138673717843984145149126931292532352652898758291838232013437455676564155473641416330518649408861489157219403629575496382188226681935587503963696571223862727176815279231346928771987241781334157935071087657888185812258031867201459569091805930816813534915316296349536069390881905761718375080063613161184887285625384415233165290522791380712624467723180686898530380735992459258035526534238850462693116493063055078440367038416595029149807417344051619203621838765499120847170953690482872022829193316337653904254754789322791225105240857705059590892894888061381909416466113603125768682697847773666094500119540399286321094928067934238301917444234554623385022568482541736112045517243706424276133657831138047048351807192990615636741517608072552212567917707701234359877305361693607936577180076598968599642357589602225457211766547218412162927542620855348964691870756678272033789894620929602635573408235229934155086602112898165207926484666996789057675996266510792232661220755146896060547208980052463532343829240315185596609820843619200770489177677551874096147842491201718688014069669780149053813012757813246900548431024034242042122502418745858532436105576875958351885595029160982069443331882471511123949040763187938407313884568820792079417668827342855861780021829742438172660399236362498139306486992852106285365760311812840035808208446588197458194830384441343883936892872110824122047208187468470986113270480983586466718450281772091857762206328043749968526309851014571192531033025584861926770948522215841783951663725325289684356672107952685377448555801799739873468290074727042614104019504363388589579001107931064169260043322771612169515092855679445734181166646080384466770705274263319296595644750648910888285485823864268702286705341574562288924102573535790569449240393379393066568658098079912571437924856097361198087649410452587132578480245956837591076855636690099509120114651849716048109610843002117998478446894003590514874632868191758597591956364113224599825147676297402872274689676220483950883575490910905362745686187131564057387093096040978874802189775466766619561565491484738511098957600729872049166841691121185130504687673112738847455502822373802983040931467875970628476854381149008372651551566913694964801846575165794756583294589031214831180311598662643357481011393098732700235295101907638835057969642474723504433535668798968747101936497431225324784001358571322506085033255177146250571112801337178588649713223820351114419277362195605310530494768471875403929156302233695743761770242947207271993974855135931453011530271428937646732007109030896122942452722207682647015862543372614479098698030878180343553035274003946265920213273043008879431095117579936861628200007964178595930587320208010641189846866376387673094741918316248573424941365401346671369725312427012805370504217672783306598998756561200981861568366753819985712492968926819290269926030675507726914520088201205774362056948990733826419102783350288613025806361269248520950788114019875214009847924369696750430997541360208315058170064264116359570793331141897410768879745051207449158793506051234995349270663041040093636533861296229770416332079847632857614044047791548473580049147667888721116756978389699540849139508855574839142183577112719460403070998948847655159876809987194568431696507115659641291159882497620262511726890661582829274320047018992525979487614693378058044192795272812047388612779187981885898289501068177852942716317191042718302135344005884446276616999354972529931958930509500625327558480060629260839985040907468052749725856312275871233884644721790889265549019783616640159685144830844409984596954314846758857537911097567148194565602487735766660722594570248592063988789615698250382618619043430422226351779704526121938944668184725474151787420730918133115249415976985865426136906568346569891265323177515129714269202312784037008672758773393507894476006244411473654260713440892039926849343377625045100617346998963733179945414031107649599312222295742588900977518289291507183298808852205271610431575215156627763936331122393519264474353103567833429419758928397177851501854420240532788060558760307082952033847312847213871429193083246710224502130008701596738541811980038711593964198265326887791360082130715658906896880130456544942648129398999004714647786093719151184489314728241213653280043926678337895467675315213547385868935196704281594041424049721334206875088853724136560339015368531135228761502295850587879827318107689888805371955108059858295336065547110598908166862768671448115633656770778683947354360708021489602348320781067864805746411118252153216884324130438166332703681882829035406426102123749068461241802770192541714748721477199320609391692398498432840235891377935165501860321948935258758480421036074414759333250684692058536278172723453998292063549967317248811789283184414775209576804298668374668166729541943762329987331492576010311862552586557821864423966785785351918705653786060002680926443993187331271356884310716139664368096965760114002251752652765728424943591758192888083545456340199814193105006628875519195940961548255987837974085875367269182301159640798778749215391833691576432852468548344478982151256527539449094529937752808880847769631116294138189309035476412951478121098273329571870417240051021576359782375339006221791645045716708918739447271000832768580577257769671243494081843963558597417180114494016571131028835402259650967081226800594732896905760233915793079955984022328698258270786304704069137118179273732717164570339791263137181577170014068290023931610353708450737714072571170436374104485986516319640594346623630698373930872238503860734709370146192592152037052620118630800159683467396793551795138250898153274492768638164301197735202587216014654041466970393860865439179054962507540385006868899954636080679561538839622488709845925367268062817184337154237960182182703689293615583419606844864161456048695528185622217721363980448294892901048355076237310259120952753752078455012010472712373049650345965842913997794527949272183884210310902524107358279029286986058973178502847884463340878152359269172080249744556495591736981911979041092370725365906941963127519196889468053755132125799694652689164937595412769084207194629376745522096865604259054852235508717177071153857866758738954502244735726064616547426067101639176293888225267279404344887571283436136003703536163566293175827232688412343206008405149876756130080937569883352891109073484732199021549687965861456901865018502790944751144054472280995550135003720089901664170837267367513531664869980949869342303215312645309818369829605220991245826978017553935060802153990781363611565042953426457299463083436422442968619978329567583689371513040379471472407258129459753089509941873105954472364315949746217007088180732213001172960113994627803343666053510345711897878114601685679234935545552830597449689412513081484650472035473227505324311949880196697509787159318639846821582249499764382463184096781105386304724529478160471298370791258211409822864784309496498875874258570323992545238679640596467469446835692876219348727426362980625365404747948587862138127118447441219072651248865269374437274518518396018984321054913640096784576683802565344512210908901654530581229396892516431351012573421027930138487734590752514229603105048392446759196367585344885267571257077805243607063802328289677981164896329668529351824045221254915998819761509387161284299777247528934570918193603092673945279471892342599497383646836496878962943218768349347580179917979487931300533806262280418200745064603472029886764306120872231074223084239295033244945952761929965975721687896057484968714346221832718244146429036786839906340567946271694790652477531094525664360748114922211757023872375338977603482067778577652404390787726351666408209491306566197676454206480127005478361595552547626101387624830096825305814612144560326267749779835800035415631525177712813759553348021841518398731186616763587163384955434401088839624885487844268729771325089260480205046922381294040541067475912638459076193396413324854339949058779856702328118908867075048534787199320150504995014964992282812996135532756618437952535631531743441476269071424923092916070698653287675366477933845089502296763691151816427382575780675133684042259879932574842219403519805991541757013462141135161780127875068780576249275225853445162707341255271954983957107885292326404467964740313208829891097396594893405821572525362937983053397976904278073591951854716440517867016671746597455987164405525987101805002253162984739237644424268282937645347229005423321430536673983999583896455360729032540864470931709718985175989491562770078676513247047509080886003931923692613434063765734809500152835189139341113262909958681440519680895916375547902507272514733731206714452982025651870205147876351565963037332097685099554254049792996523849713172024247890403699854932462926838434522020739453477326072007095858596097301375949324752582308323899366794658110673924852067203264426430549662192993957677744940779623201759466991338293813997588239450057008691328879567912604573656853557943596108819031758551928400937639175741384518854222352445354980000631854856477125757725033563554594857063371319407277584540089618486839370783837260040040722449700263395398085608664343824193659815347612774065986384392501387974950423383875076398582205205844445105761804488262475355550877929687239927916660519654869889288665414451859565007123228742726026058187483463578606995223881547535406725161163840192491658825536494274515303565855978684403410133580104530588135802616396629494835624521693516142183642722708019335790470377142325411480034585199565740334476227754389502591579434331181514797201310026222081821589281459921079254496260633225563076512220224486491053214043835983885436774110654765235236901091485139985721095431727993717807065575370654831380806450611574848596819650866477168832427184638850768042148614330575519169904038992395986362788759451692796339980016498464165013999022849668934876992233073103340463310900610623254916759507079476791100256401776314572130495115616959278921183271159666650034194627823210178336723279672383697697966395411686217150775853786852257908706682666671692515929142553799359845465342761561985902691797520597621554565707911099139642704540300247648040842453495132029780184291312332970295409142849862641714249663349824263541400107178327831947083380670998619807536443649538249779147969850173884936903432776074906338393023272223290962102691586533093467434563847368472307189505489657328034742713427519288030480692339513947424708621748265066591611762562761942341460653345950269909646310503418068788635160984430686208731857908157162592268462530110845589523753272845480392625562998766357990158603494078393457275166127516442979876867397034134241743711468058590284725254399260534502308762989176620615801980889646891076208638812899151780565452672026778636840093041329490242803138926879569155970031432812520529463588072949997185449417946314723915823018332360178068687087368378365830848622291933424557922609233530810603620679125602914051192440861966449426477418411632249160663509038221282270378176147031595128590873624392686794710677979615176772721553056674155380060466766218919343983316754635179690049745201572747987554069856532219932672084924242802991919154427716332083972301998989347145681398770075473529979560918911818318549935547659282828469597643927100706256346787771022064502201222192659133765029569056500666061230250780474590406658379419955139652123696567225330192658384933830764504836606218004481087243661678250980880151177294810524084575606193377402765402349816683338644560438303874807074622902329318901756744829348727327893487358877754514589752900293128378922453863083739312763100916587187378176563840420995323747392952974946334319244277628809019656924745040981752200460702268255792668303251903967241633118674426847974210038976170512934956004238230538167933914593875788074994822610624723393368538661561703210406253599939365093464940529232785148646152571825600569180760249390356018711282926337916304330446962205643780085748986489251875954140787522340249431484525542127500882920541495181155586194476299821599004648185422718404550820818179147624967904021279313379645626745228248494562308414155888705084047702310896804879431638027881763155333971695777213445965961365823079441877574553385929567270205496110708537348460056988718435901477015002748788271035207900771073888994656124289859026462661255685318686117557631484855735228870327076550448540486511443868300058742058819223192307439422654364622966118344817819614807502404100354452680139128684353737881325167067913157503014012598003629484293703917625656011911531204994665821441114411870475295568169492992061347856312079412253682489031494883369278490458827987809281827775904389035658653238796389907635179467518261883097167582962543924907630125203175628425411698037753263101939217943503663043576204103735876404977200074303932120912918145177998140503911173350680606472468264481192546313074986408106489862252796508384084469174692883751209846536397075904044564793973382303422363182207890392978095406983613327902493414514113967177530660129079099313296793056354253253195028034247383568174793696091171109404880662766994065958117809644111783856730702473213241413951486418159850799595893857640230658822164097927579947876977647785540938624055798450853062608999719065816701090490124118826387983721368758547024020272097585626808680857887701450907346138348611030921024986195836577221502519393462790665971017881739293464621730184355086202142861709390904631460707716895310663352797445950756462902327459510200044267719664555193154292812467329730803552365584717490227217631576452139038641024227573573773257821183777335547687569743509052891697834068185330977935081778745047168520234581014581665400551236285318833021670060121790807917008082774882331852322477561218411049295171545206099857055054648368466598998963347379474095689510545552898268445255989715101154863385111336556070832598739118443265732091779993571940866633314719673791830877373976120826497926321063708992531337521374715644319257087879977636556066034816914528609654946595510998930889919230404711259641806764119654554762723944300703583000333954597318020719716974910789942135136495474134003753769813832463003900266130227137181440933070158802348212534753142965149579159744919168875841320504696161797848743776791537701075031492402456510679672246977415042614005797063758623138015289043178976944175885694532345804741794211757444039366214243554249163042430660593379846887412521206292301008019870075717626893236149916754299038995845687272714137181485547873404082923729704727057758632848662599762569383213731460032764675952418116147699292210717643743588686988777417321519216503849689979964035743333785148838820503508609477154399126586779518233560661764398402387207338042964139328626183210501729928317916521198537229291467754512046445897891022967115274311245820775691124325779093306466249213427203659362220301850559322310155598714632451663303884735281823261837312080975472432259760798470130228033866243462534903368189736581264054214210252001614458167096983219652325453402744766532785999339971853664167749128112423902943975618258356886208939160057147253333215204553816300940145594356186053933683922523957309841619960959370946665206722396273004288646644412943680816026398654510857980572039094376608087168815755229729076143866214965186127375031240077755677980027059894434901020474196840770776122359132836817196987692207272434596727715575492329576733727085364052082993690395587246554631405384913163196082003560780635684974156929330219096650175511095975438776965451892388787804819360694532660659828421356953510700371637272946609675245632567929525976431523427441134376815167653363431880616205421209941273455465496176755851879043980313320702773859695179072533932592780559402578146975316848243372197201985943639948517843201750255914009783547553413983063060980839419102677396785714702643905803214614497563185111236757096473087624416729336145929396611813217149237698076279648008579862885665412280602509342689961984026265426706947085021374666034090265870016942205981625749890812881866460410975958009459920863583539145967986993624146994020738149946281148005347149215386099684569806050512154943386436885123074819048229686668448970529720664532432271322437316331189255254232810471845153642821299115010627397952049644662062107085041226551515209378305362077644502103198258483850105274237157621674460299299532588289621207079337835445855739356365022346874115501714401341709862694265768688986993777944230825712934925429621987487159238777031689647651788887903410650394803421441826704058415417503231976417517203636900371144917515358594276403206678536094570200664220042723788329711301500353166206348876573678061783097857768005511183325126111888193112515189728060976040031570242289865954418152657854092062904046054823714958311737677039759748741850230335004172134002230474247015837743489571352151710478260605539588470381921808060479145577712338958774928755690109348169931886479443648906873057305900808581596907487849827812316130379209474219722289575363765489207342815503029983421347133953043795533859942551002601522780724144380440917248177956472383718452404679830705454548680507840096918880241549930824340284643007744558694705382908411803339860975113514369948461333804863008642363375457785039170446881870539443625466514402579774130256155127003282341945163176220473345190207377496677045243429009977430367994857732650368046262564777701849057535253126156596286836772981140776487170816314931553659456909014160350349890045133798534633292189722046806877025134366772446505921517249416085905398120789359441947823173204272207143411210218582863584876144005217230519775349770296090849139609359006031498276092339686555409303360562830197923494937597441865547650989708066947532783164268953560544981377203211186160708872083378832954100102079793098659928233130661819248849838430143644942116583109817518856890672706622160266857362588265631452201728170897694708611408733979455807310033842403807396162574727414849927674317573974284586068265480739424645891126632371790829352551487710401561192860966825992419465126836759855329998273319412230700048326352173475904752511866591644336572634738809942781944861157736375536171567883133781974817099281174832781895184949680235793800207035411712924166878250679654258749546976049435497839952802382602250179492919651412334975696667511895874349792046107970847155895776108400929922536660009636159452002028382192030446612445251384082946128943583515651372133824309077332692857839271682673218016355172222763707693992318869539577522129305332600825881522522266333830043165055308695259003701345804521541956488341673242981464555038271579630644365607436155487431465718926110880581177418898179662353280261550645813867509130822334656229145680552895294108727816601392622453711346514574260947251159103575871678157592243730277998021668680385823967883723923967734640469717553795497338088702433429979269928152213356897387678256951448899235190547814597467409987776496777113234036825580864170750309435941513672340104658629871175716051655039959175691061348541003842846189977235190145034237108770324616405056249774377652681806307198720580443899063873748064536935395550146179414312000415780886934097093010528497064549420167330308309763436429613936231788975284328780908609789481938608599613171509441366559437730220157507590339561171463075055817479770879513663651862681555942913190512987229028570101825458849721243212623490931713559384887049829981474670786547775281949418325391601393114335618676557992359736824943941090273500759804897839930799212162892119444887834488158088692052176509486910897230826501001759364139522672902225715638602700894069209856804690731815898570810550102631941100830610411032066313685563281633937409204066901006533941709101969688305430878781183187094456661439296038869200349172424546491506656081990502699347914420170528676151430345050759266334732075492976056131872300433868483084128795173695939926310125376228213158749448251081621083065154260911864637962348583087896487417974859817151141295572054954398526112133957692649574381035176912856093825409961624489268616641889081700798883485917875311871367193094154979307505711982739012510292252580389470881224229852506711658723486269160271196643169058639829400177635368696270416522704425130866714511444780861593697855281696447318433779334532409764579812102222751532305870932763887364279640889036406592373812676303636209709079339398802891492064885259224689241559795422496621688300939965775412054114489567503561510261081631646368978536942022720255834572415844629646977260449585844346580687354151803793517216601329415437690273578022358903482027319353172682772791625003902155413439596464981717413678285434002623208709777537488739680330312402687479153805457106839417757426479847131852686669141355752205658599979170180024599851173620086027287393447370671477501598475042274220844601397264089995386097165798950216418181927623279719866714205419873620570406130331817626534352613782194283209357103931372848133114763230703555821378380738515518785446953016109397269324157668466354432965081048549801761753999236615106995263313961829944218133690425724654734267340554207545575516363806162729141541274861474588038923424437094022745324317749674536317502211334540273587392789617696362080910584289137480969276782011413422803056931108223821034978654049262593382721996178824643084816017899834662942275828275226078815433449650785612701129308024270190547733561007542660569155044850694775503204359549653639583984588938435989967736227995962118601190520346819534387692597242581611539662737727831427431353304632538694014964013083431302554460919649046112995758540497637034934178170083836599260147061196299891668707879027748879127957068809409181583194449326649105752712198191216299157197080170269869011509338327184648804274794532017457704695924731528555936805563738617903543088074646813035459388253787025276410135809941610430749313778596903577796187420795083508739065523547459149812709725071368289277031767350639195953091269898059661058791274967775141201023350549471729869164851302254349149353409091547897186780253520797977576315038614574368473557429180116341290543446754909665323065355766657105500209604806465369255367772842972789743267419077281250901160511879748233109160376824064948064710794667690237663459304442966888703132868771798123165976335833577713220878099813536857389687925866978053833945224556660337596414915296018841784455327057296552154547090947888412424741500408434562197207013697301827417121876984657726430037513680404700008529210633709381311868700495906656974489085636206798718708978954277406236706703369232803431935359842075543250610335924341532749836575069800277229929333519979813530178204943276959982483066291644171929859511141486237734797497988533549514683999157672538455410252709608645206307289042091606474577810092962944433181483190463295292828071159284778390446607199277466682874429494509864993926962488080712144812483501461151064450288970364375061708260464173881856914208732353912324442886919466707821722308981963184465245288493073622759836778464761437481242520367846897803498505562445362155834635491836106739536067487914121496764346552157798162685948079767320091133730703576003966497456065334257433290969872358103016028197648814963591784290440061600639599769760915360652025529911487207383936738634073673825551186456973623429210519814480594220011538489450551654588057067847554093969712797136578165072631866100171034882632811459590440057121218937724465909802491293173121343980805956548175848161881447971640707496193924529627704853345815425701587717246083899924527696740673180513000518232787753300472166319434441123038060467800864939062151733675316659273489837377217067615327994546035250659817226055697520173392968186131375461265351371224172367157319148796737401291048879102867081017602752680609500655089226516718041603000439088810599763205860232901712160867703047941535665954094983101035682481747852384111534895441151211842985180259476209366908762400439614036616496114492711029256141645552892700525912127325846621266278351379815641729636893904362986318715845962202448271041045315579597369626250953934722358132662090186434601871513477193787027962439004372310221575289971203518153331570836347798043911492206320066384422896946626902849295005763172023095542773147791561915387975574193356012664729142945310425730898815878855542892351591112695155049475019249589008768492914480360123755100999697891927551707665756149867493227757338115894040565819020739447396366825147289467562747323074074419648219231014027889108218233664110552678704106484778946485119361102562001857900179235591983422182693464216608724371334768099260788098122064403796649767354864956461272045432525858843018645067753288817412475030397487349000884399769641551727010686282250866438604877940678505391771418242836660042585440511418264414758775343541339196916849957126793241583436333442256657527747051413057552714209096722727586460863546186641234206070822243753853070584536623468169658489219434336918282621331092942040146876501160335793440073889303292553903023557861987951328154849258830115326965799677648751671596819808229419617420524521746646603323778031336824435309955581101714033544703280145415533121631147097002223184771019581011085423820541165750283094249608222087739700098939172761115702255611338123275528528182583067471836999974538065359637625136731787764296958755444904532974565354053601941775617569716681406848758926158707475307278145612233882122108917659482853097462631341941437197454848583126812726385103846931199392149353710887400890249224385043355684359954119340934565601696638654410847325177996386862898278219454545581342028906513759781051295836411177156153201264640815646987526268133185463782583960733280542665718243892800240248538626114860323723904609122393854663734592901140906827898479820200909064798612447291284374776022547594071505368183538006065200698075431234719889106556856115237909031265491686085442546342496481231897893755960743148092618340094973254609732354144639084827862411191006429140592297265282173937057755645990797876222335802959426004825963215570069546720972206578300738199404329262641696917800852024321120771007957657624448803054590839696772058231060484557396161438672834960426575128749396214235601032803914058507449323745333728853031446218657924504714259246876756183771237080569800632710716001777919538103005853923920146135471584416592527698740725955050691332266370543439404107175503970160181904409259654024241246593064512256803853757780519410886688562422267874660407770458091368916381786703725766816463931908967652777385560089794357184387240449615001779755259939658822543844268466305487666296047995158921244477542587469650533408388116313161915068804472159239414975547682228540132048566874023773642366984790505469950678125821520624325221283250347525106499395166481093871528641696971332319997485133064778743767774435037152477404223130029346360910092988120087432721592169005829068587722452317212956716826021371088535729184493559505951646321440255018387612448380733727916396304419940261260191159264511745544044593610720290572001858510672103575272017238492841467489118281717223974941441714207099829455141802626312262719468643387363529119773804364687600324161935227297631437839078522204938173658977946995229714493365314400374668296027561368048216322447059686387456137916280222400575965712234247394858440983664585460379021590355753714500238469312756694981576984897449307431212473601242821718815730525312618416207268428562294782094848898141250070344179486186561891905814529418012281163301376729459193017850225659459511065104259218066133435439759779294578600063696179408369302193116605359629595563512409037189258545254251510316163852078783403227325021473605397510441814545269699242443421419654491816694060084044058574980321947051739175141385004436964906662329923119938956353280918550736831487515584711067698730512403457513528920243684704707589785234037278971543266466481512524327149067688301054114692660385564640902569349918889599657243052826461226641440308185945531521524556814627462285302071671501385668530001403261319445817068617384492284310767112142970510156943430040509591157168190172344894726382608520381965123789817042221090459140594672566494796526439123573157233889603574581690452840366320794939003319070258967318645624012935243668527167271450790186014023967476852251461463712843503961288188730678980057854700302934770527500925982507795705303875415867625080361161489225526162428634045647910633908538573521405476646352007085650897468505962311963698252257371386027850246329335603254148716320692844156134206852998165788547748750323978059407977472959225406810972264067521191665156563341550504626256955596869741958677958136791706870199186917045835019595821013992687234401292184144517937708638827241060215531846943946639092462841216326603669288225035956432619714480608573865941900484595782387706241602375813687572684810496505785627711684876879465685952040819236216530073847364030298305639456238666536192553102060321943502319597649295203261131923913411603862766324582329884756196684457513808491063577058501837830745667426650237614952793495145665968462862331142898437781689841688301690426975385263533769321342547893523546678497133268395204068537375647857763249302170187272846455998781384810497085552843247161209425054004363170552098647468931030141820265274992233652457922460818726227412704519862224939814070677763814032051120627855717362376402663770959071545848754440601154450603559521453529486108208357044790988435472196089205655182533965527529643997554177654291842943692024409117486922993077008006942081268561280717451708231391530695845091646027272651306553987065240245290569696110757009879929076411002018232996978767240823344860579935224573575972569692554551397377726100173013643209881737578113931924368221170054315577147260874604649255367847626810581245563638164200840720095897669951380441752709259543823406997165158451728088527995117668867483519285636695469324602903637231364507003739679940066215878138423021834628000780420262529288108956873081962183562915193673425240263272728708195040841202329163701938231617485399121053664890525211827141782336890134641904567391636791349456173103701442334583359985171977275158398084557506410705496593807567991248496706531264242661156923582985918574194325968366039966684113948302292293791752393250660741370204157468527551704667523824129960303947677346497840981117400616847978399247633627428437872190820212463902190769238148800319492536073860480706093379091687770272122182651145514245962213174392971361993946182901254940881262683947427408885774958703832259546418698880614634521740571723676055047882361053075049698544984056869956120193231510541677801370506943802601679515535355233887823647142899595032304819655873510911272368430801772389803497972052918352837094781753799474413265951482270677889217086463624343972090203386193386200588171830473324397093083645359272608421552678919586127964079348671997632587538001678473996105609992463755833326611811340217937459627518004403124952850722663905953494357954018496545727556420797267213072823868980588786939757082426589429136013517572181872301563898860518372812101568048543121017332187949565963014419639013991507920259528225253117793256563320042022752034136179997784399497893209007216374531086999535794000663317473035222344170805546334100764914117263797933419878747673186089998158755756717432100140376309153949287987422481237433291208462106395494878964070914930352211491850728975137554741330508076564713237649722798048931537277408546034031782182593514387849441964461030115587824573820578075306411280059377762214456293271700253831850503641395684607089947419028996222606756240416224517765876445391289915503959388010908968143335665476705983240900539415093834244241299680874815056701431129933146533598722144212230404664882181337006104998671092824288489460064794211919293145766056123036592586395244327032991960918581703674365002253255031162655266228162128746486559962032720240653214271049878346285073107738120069968793234698649371313341805476542761684437362853820614340074495918088403033202755027488452697738759474743374086760095957714270496601596795988344140313154598407179438595474300800351160606087650920871990821812852937373141624206832752318999374325021338508940644412329346819142320850953665092242041990178112994974746438453109397690602479601323043847880820180177272809374321962284676074960123873663960646751750867505833234340433442830814109915210323167148337540340244800026585983509622270589953001506032089186107345091807273775922918889594294860462873681559582300254039092381738071645775785056625222113052841964191075881617957837622320079773674310486642888161859912744423354953382552110051990446773354435959318742237966805360202440611038507698185762192845945444570171789643254449812850112537146836566541759906498133951203206782541061716100854337857132187848754066724288154228024089587614111805278590729508581425591155627829115581486926875593490741173131075603760806697230793937163278691743727909730504838948927146353866779494122475628817775974463628658016206330947142964252202589364481235745415261003700029943131131994250909378136981867616338153941732734157125257192340670866052546331770746690198806727239343820832257919948737866437858152116950808708496843544126047828367629515012421767026183279137685332007539809622723311140374767379058042891091256705020717731440687630927003232942836391374787500863831768276970178131725328277839980820245712285894511814171039309429269972997046782781160683925106226046981181066211721249007973220600999368489039113450327146608422506821664612178249770678397686629453695478827880594862258191058991296093889518018272108396992927982603930352068227724606217981941951731624528247486398182019105669192069020535468653119019063914171340103985742938192178572164897506140034172833845594289608880723207777196442909839271276705351988218789792538221303040679516156725579419470305448915942893143499040495459015323032150612942226590491508304243306071232391594161508161807533489862915696964784779046540053480827077219809827160314823742316501490707366053283800459539381261675395498851295149566725414564453030488369218952618183562070021124827066142180548174237453475243253970314953362673550328275154594331684077487107280378056632825280469399463493511315261999569374178908890985952992338122844076625301396254828658354741628190790892394463443438291894847357405413867111132845071781367622977434858028185653497205109183561887007103948551590103775393949940266976213479676611332783123541351470206781964844104064525630699829704849212575300171707292278174729113397937612421531787210760463518307619098114722487578683300783564901053045507586215311244662275181104225959954869271201383963584130854469360441520494329569838828834709214541647492419027755558730474006106516034134937610387080122486037154219573586001796003454128835813539127627356182360765923459123921410458353623964551655287591076403006113188100089094789343315868767578296734814558396033070978204008118845491692753095905156321135501224506631369970505331966580607101884074187048338981182150505167927408432123627972357936440192102110218952154078085197891018155818348697714840457708023126702553302799927623814116058227153884481425170485496058593730409834317684441919722860816106071428175513056746723802902374690747123281244062857923169657751088131653336201808700650613770097932017624506547748143492407057630658123552855047616532135985622845266325935609317139700955357021658472161052810387995634139070946031383058416596854422359035132882473130567610500851637078610066910522872775844574881810010389423848871341880001505322005857880920629287688774403689349674318342395448373594827288035910767629657251194907401337542557638431199122679012893258457616669267773499633715755399159163902383725253133521253048813493230618789417760931145213530581700981306345471794232523665437551813636370220456233786359871417993806536934261474565163308682325453883907611545238439948868621764702202333565105301005853846542173121339188035227601017405478046412170190336346263129028640683869598277572423754180033936195119277113216093886611680499009775790364626345044852741970724555853773946979352863126563124727563990051466284022467508396913048065847626704314175621838663243502386221031057131183972780610396756104498187365600303646298913218178186799851507469673066822737862054046620780487099629725586982101818761091561394771624783213016593353673723710381965202645268719947060503918269608879212553200220340267331407333691976676405922194508725036763254841275352253015598368134726083300304406813779160596588928613865246578143986703152129069480493671791002426826110533829236183472947883262584981218868356943458332561637294203392184769524733891078946609125017274624142129040970807023021070864984070014182622527256851015580254193768619586386978821842826952258392208118477989544551177538586179233101695066314568895760439023491447404155525506036239804212556732569790197196524609371655549567138321173982159565638817515532397167379865955484993974446329894218695726587837585945761470042462049979170163904305108946482117906595003186250892277085335641047349171715706695349971769658689418608018871069261672495713950636731800987580876829023054152555078053511370975878031564661731536702862979857819439424320594980135918181022411069108647987209248933780940564825808654623757114833529927407095228477622557666205015816076152203801918054835152409871247144479310153310738077032067219493594051330776112530635977145042227580677920549705132662760251281465044565310113467434206768800937971160589544044083186733515049253654271788041071408118500319618384399253679945726118634759312006703466518644058253545493270351528150239930064010841776331244024189209702777198142856928335650522099933654674946777045590990998902821217343459001525524343216271673592355651111727240489672056496958606059846338356530454989486593222186661004734956162217315644928260750171452969290647782188272085105218420213002100677635692649148567999603119159566194646224223192768918202599510678323588335685263051916021086806354534316094768131646890941017059835773400158358063713964398629240831061975713015128477359208772470750483449044289541005933221387083715213265300600492905066243793411253047447635341960865326767694506352247969674931404984513088718481686381987227105414936646986104282922553754370234178901603432464430020205633817137003853272312910374277590867876633461325768295818932043523364295687810250771691927266306418199629586920190858087514147663883064317751436827448076051019710894844438809086493052038544574289581385209316155907476591466591392289238851549938659642887630860386986822742487797097798374779938369433989305429178475985322519211694179044335675757783780578280846042387689357543121498227901486128366572594305732474811974938122746865404869710650256394865509199656417269043940843131950185145911087075010291755248683828031529072703334010702070214733577540739588567261482915813940760134015244731466711639805111813006057459183366594042270497119459686182213665204735033541679797363984571373800319990800393360262587122351097192895261143639350294976735512898696904424450152291411579918276120877837210922068623275218572438653807825939439307186357859432001573527495645474806019778818627044796569425422346364906016290004753787134331508981556121591955206487005021767648225570509872974980542035499454370048008360304354129769846887381969949838492287560795147874383413201258343810904600585013117497874846124996896616171584699425245690437562661878293689392946021795506655944161978214856698810395250740260561594693518538822336199518932096779972733517389574981733622109385679475081911094061911945146863046639503010367863960033681251520555894843485100602472008438269343492485582702408875363611266166718809987335358466691783749766451751137080589368427737841263941925265143177176743480338953472792690223157531356823137863988871942437277975063015202886606724655633342641091105069374839208498203985234752343037840777276095836792741881690674472029304953849936981123085579672501703513070411970374141921243662038665827498503145213330161987075460622636652651931445591197998406369274829512807717734236282238300070512205456234485761984003639552764317162896972243297766145197919857889271619528687957547396436179532753691229439879539708121646463523121347827491261285158757972282093098234109900023863909430176897680760324123892810903567167001321031218880516089208530528141060314236808230300062913616253598583724632191429470166491054751235791839753929789846626675326045542023659553611793441172558425229887649738691460959769239416098593248674450287451717943480229593224209500781622398365839979483014090332817654633806247386190702199062949119821841559310065895871462257756888832141954417985091212157588268461039661467469582206039201803364814640471172731556461263991855898800442683175542413262982355257022707774160479816375938641007556964299314698724731053582851827488325348881116571619209239865794836378447756341687841398343473963364114310302488506294067934792999182425210379641222667963917703108761399126006098861453125953706520879898084839025705504642182140705638421059851467118795901489843489318084113344235110076911014247132774901345435170308662169968944732375713798245892311032750559988314028562235907172542099576679241292668276561183338954373013155896497078930639011832268922930849752093845510058804974273767206377554495646842301178273668279399773622558832885567225299662707288322298893494298508552853730672193399547968197274227799767307199958376785132062721131652644663081408094543227329758896847647714272514810459784555969868756425769922291120620046766909140808875763067151696626606801439017603400452229575303389887453988564697695517108738531940197793940919283626968163497715802856749590349733882605430275154099570339338473634562627537892469239550397734829805586741086994471715790330166891672725300014294204119130116049271012554540698759842294496729341143392872921232107867317389936975685313016883590502120147562770745617618786132642660215064787029708769362365784795051184942757137321723573637129205401858942997191948076904446074460306721818418675728029474844041152769589796246443083276281118180100747215664085373566110596573377203457883931594872421455293409760127457007269284853552728397810641451185697580875869314585298803046103890168949735589451779759956440554353879516075718176660045400719725325663050222491245634957860258147593511020601716510179619997583989449099701656374058323755407386116896434206294454571171838380540477776490028957896675848200601395101531998820280409130334692786825161889823908135638272929619548029896306032163556235578471162582956641301552323433033033505075801156414805940498321994697772128744029280193327096948826838845042500066783856327550534121035404287817895172552156279069436176653899793367830312099151155142462384539503091174996014624660136145143389075249884616762281500120189311455268432278731296861774538702319636483943886903009550690466993905378265368241421748209990154608417079165381884722008921771003238244794699601265073538266976735307891267271198855697552976076875322790181444499484866079506167693051128384093621424081433239979816394786341678508369666039052709722864240834861891842987894014199693014696824818485844318966248346358727606831854952971243691512790548073175826216242454823231663247278208032594614844593682107434153254492470594474392923576735280557596566365282582371215160594465804995945024297064407141928021637092298489194302199518091763602790516939689432835856851392528359603162860022038488334868584257068517379938191133933467577692939414735511025306284858215846177420904361225977597353859993214469974588145296322193497265770176214435037848496933020886819068867371017614781467873934535250187687432665827340634724602348432992104040923351270533647385939904375556835330206048454914765555166610236860837036451202362117112155551415934970833954712612164019516437730790394712440042981909011147756494160917886467476157558880882288155441978111635861888311509578395345328004385963434837502372579621779841679927515461506240259770428106769359159631035439786090476718833818871411532823366789945317735616340141113124102659437461994221844917576997187350865990168554207425645722028375841376530085192694787818118576839182700593372320067168157088356314384384766028285628873816391029992917570562930494868709421895667274407080923248563221723493269077562367779949922256324234766038711931010110296928110934209108413525740865147903393132369806327263341333886196734739776212393005996318093392343580512923316863714864105210973417484666805660287721772449992805449675320095701403599384661470319468714148856122921303615022272205458919029047650717575634318194878444302017829806443354592495223872849195118099118532904343710146084789226977326333431840003877146276495707089031967856023585994285836962133167400547937457247677021319269291161266507940474375733134759189293464983639636993880119826233413661346639124348042978828650462573587307995983053576181427796206804197560763308356210330679856713738956820353888618218641431394915932041567994726825283109398543452117631996646984581452973630923482444875277843799058864841431958638021625015964055853169961648508460630020839032417330279717141902648458277391323309802715382160531103705020887368992627559481533276366828556028502707008199612916025108085796680316026794804133624256542359274804028107141144645828468180793836986422106543691606278090378870254292208212825838154083748728221045199219892283371902313812512861938703978890094642627269239251158947924846547133735493570069021521645639896412817936282776738637561817043252980927541560105618031644513516734084888194135013353406028880301897636595868195619581387556495478444907063320924154051208913963241360746653029717286092593561680307083823273072752842635783646256160064978212261274974235192915099941506669016931755761796592089437242542390978162199442394408395318715140463048492811085713654443818608257080017737155358991670643739089246449803959298069995286011447787714708027204648114160300960349875334283824633134786249447869400570830124124821604012277205219521069517757591372096089371912356092021372185787080861996834198561771970018586673559746202994894739121961553701765854531888551652932578532966811342097781713563113800983960961279764844830824825855043576456435599997341405283216985257014617257837378768642406001315594928437419001675899257338836262569509765066668592159617634506289290812616766852263820229900872073345915484525587653298585336423391501808484204330203575859743889459298894985273712136102576006305527086810178927866347921736684139588654101544294274970291339372029606161519658076029275806610015929131645961420082107852010932667155226832882371077936272565462388933825278609031965820046258298671149432347302189673299944992804700212819982005902202060784267549542754169572943045986843475814279465067715173267596477280474689484155955084145566129693054915450522254800593028478643184783491492118579119660184699578868181787705701520841560662895566006196455891316559326073838360430701477100454816760902620854695009498989018188851064364101675281948906575340170312004408754825544335144077850604245332659169514774911488209050704782923972631116553990276503565044721982524550424393810136646944821264135893143546150842071492867893512497549668069601729362247023165310728590734429343935510662139671560813542701334256848593466523736101072325942036232112070954937921492683480621589574042808383424669551236820945143416206462389849372367534091420018035992297359065159168499567538215579469129686602043180854381378426984013317094926332191061506145369934478571155615703815129563483367583779304633325391702744280700338149530335133413022491556350529089020135015917112499567438818527617385406473626671972110417148142850112974829939875633739140607369861649172624613375676630000316107530890790716330998748960835489267809844321196076284260346191136554674292016166411338604139513728763850691865649193918983301819376725455397609908663812454660172491782126150236607217817339196159045839803755409097842005172002053386919907736032253480782969992244970598235749978432053765916110822126437477339497656086411663863159314750491536500864479764895882196923176955471144035731600626385550438968948925344294743751792607001676942237504080607532816645278246878512933577749112718873831877916731951802883098927713525500198360501900560170949125721553081737750051904536975634361917609232196058914146125162746351013821610220405777259327666320889383264397718172093093321144626644166229453484323545170874570690945653890814112113661392065970482713722880933405968528937427030824563167367873028316295145734155361529185168429395828458284456862533935981505066042584391623808200456405127070999392793356739346358630307715938632297569256867876168775781853662613097553801517353051496614146452959898905433606391273094575177073041846694183197139538146703651440153175780596431679113945255973956957350533952760511713243237324569877851091681598813975575743283528795889803137813940773410005759725662245988978914130488896640207860744903166981895501406667855828629165210018378354940536936627115313593267233383648749302532238627667326381005230444208493969123972982756375330025948877677246419202069021560263696083486427650736349800074758836879740123371739023010815864545598987537564005800224342287817312104423432321191921234117764500837594077209109448555600139858330619581316651386571483515637916351525473259473885369167154852053463205065765713636774691172621913346802625159137477121919965311122792701458405630506047659009901632085841946206664893795834923362924201661660583459472389224559125702534169893725728465290834342874426097941907356099431296641637853093288412890512960992841702654371366435802129807615790712013187240360402040592646812380678051581509016467691613198767613616425042140587083429687286736339328434448921545454433453483235161448101549050338262590345205811961465378198896854788983229644292718427642454831339677890420163856009324614299460609685314594846108235870582388373960816284703374805301362370606586815967795342936845781406330618518648094400435502193911110969081844899213395363543890685060606826950579998788395703362703515392934637399998269812521967994929778939501704574614562074391984838049329017653289310911632525253122926635902921348009152591315318764333149443174280973041854651779203196006685708354854899014463763255534072951722009572219372233149079530665105483638522730843057961564627338648214168461632703245635571974772431279970873793405860478239884103706916541886553798637322508306893429945243883563719459018004731509259171041117975425727687019936974226993577562653770562683073813385029726374911492934365669244951491479600528003026942545405916821225081918689191159296116937255325638934880246253493671048523748871311151754217094149333225772468020246029104003693996609878362432452152157636288256487516982053883623466206397617169310430045352991425599452683993825203453642453704263460218391666762950775884411532330776580449834375123816514442748428905587228701872400256468797141325617512067818023233775810606839091611502140083331046923749484916575584485523721760379501028422074956947023260905873234253689240329500356980493440069040032498565129306838531607015534092919117501487709473938387582407364831587195348769936062104212047382246057846648334208778020640043949975443396077763781283399604366310448718158298068956535814253127122916753936210864451778787049137141996321892259470317099749852634700517945181741276758727288095726161220117700904105082993304640300391986621590547075949925949139541780718546257587958259174169311686428710911357182226221217879317263164279873651346405509035569444720842723924661074400323854331715226905594324320879851415245998119429467701914808383739761706443966336330000706348851335902904461748424356650308500344802810759164801802494774698022701613398381147450702523564816067723223809822355134723010157086491496253805575918299569330610545982320629898679410457607762230014689084505428395570504374554292156055647481722210300675735587061575782003100697969681779726665134368626668073193780631131878578994151182556078530961624622234308531471807783201824244294955190668050167258216423455096998934260717958141167080118720748040047194447508339179052179099051818059011988638786242676123738880606405053360200896241514425647032485828858443951075460507366494043253803805753250261918714566443186931205902069189975245335253781389308133130758448457886040967711994123767939834764730606073240835936563997163215048501956749881763336772139112775308183844268645154759900565795543996744062005243853582614692831513800360824471242601877347820526493888389905597290502718428709099557242516111798059249980591288640332427567060317643816876408152818235181316951424389620206076290381042279106896543439556567534051509334947169238382013943458784571944107660869272213505935985510446407563129853093085851384257987334014986003892655379027387664406704585128713285315237093838747732067611078089836963304446869341331363947215029489757873718796249151319353045369435062397176547000943201375420982644778140038034513870054921341138970288056423748982576131155431360920286401445334946981826960674776940861343480951244362251998523755537259332808414294550507622164476902799171122047241580806243578050767959644895347128076463709927903816854929635117137503435498774685057590779502674958124204498048135054499841051941382620713661451918068519881554554800123980538742342671697907928511546073504501423346288366371531958120213841201215314102807631382147903239887803596085391921287726418146117522231646154597820313222887987095769104714814760235406875499588495606301258391792542493148583972351866963989980091612608527881323801667867732051635261853661754074046741694155681811023444907144780449307012947373324271577066727004752648256316038355668902984337080547099657140479984720131652003969135470640506003289815878312490911921806023204072829272371806001096488286559520264235794800501541708345604260287358060858281196325200751806415262202543286163594952933265032786570331232596984492882503912261529355247976884410362108275698220776578764922375626300341395663755961675410901788362558143726444331080053070786667982430067200982010565566779858801786323912318719308348219843604161102656987639218863595909123455504216700830810269674975062647519995933870432346475573622548979086949097809707508046219004531348004232300390462787042812763334140148572652928043980443397340172393049838891851377469231851542474625800180270050423796927916709174951858806479690886079544374232941809768411399613108697139039778509253931143031518312739296531137023999905579363254091587519424220980469920429384362832094479248953291960940583370808776973874374757135487875633486629152137422474868599992250413938472285143609696738132259765866319147706471501223888472482447639581651428676749124810767306501404865609971997380679242569046140015343533369339677196212268495905181195363147941899268463336864639689666789083453166652107105580898931479857572886660832123122704592258932652565951314569480399115284754350636735251762198631966325546125195402997560024602581750197113426317707961630789691475016893409426909822793857722874291360044463581784999635861602168085858640429503588782769887609823397206145970745030904520657283383993358008912039800892299319998884739194591655570220348057924657702915614303753529808630415715107140578104552280685946244408075215144015905262260081391015145226670221899845107538784920219563472628416308046533938005524925569634574282195641941552848528926629319845053794965119460217571574104760101772109608581792215505553314103784007822357313135141503362759997682434898695946880381036328176590313355466802333163452650641501272072334034794636640223651192978051906325590364700286866348347048234893610903813686670921175612198316699480690061566274281084931338448627572214422563559843254618904716201448848546900823080141489388204272256013360566720801968075382129018601916938846039955901763660487374836580634345779469860825881359983271439912606008795798859865328669020899934886060388175586270905918206222341219892381071536598262428716852173763215526331473306028405630166509810543718208166358310938374197862244606271895399356651829871754071812279237060806121819350309637143918925959888818338342141661046584835766363174327072537962987757559760618558280173771991142986361498055417762604322780644170565306366389952263310886789274445488181094745574463323669562680379253391257572011184405154142881637174981793342200945363114024977861844170629572169066856444537760141652755345945549878403289403169638879085311657700184143376133176290219797050424034541283341245909731001351521080976362903430363981624204940479266650520252850344061512668972718348783843879865796288398020153548814255673911616253393801412775428370416895340329905850948668966102013254037668699030563985088877053928395836235439405011212581758412840060838458191241816394591910642131672675405916481847425573693251589972382157362044644149657072641537907496606474426648903597256582502272698435870766965138247144257184679874693097067537022825265187451040129669902669466596442645940497587141375257748932356023831729678592529355788154862680567850490282006752336645837304718204180059397143914644414547724522063989868147791648603684012858835081693207925307224196417915595561067586874697031735950374955709379068863315680685423868228385185128161299941382557436441843494785526163901658346337435908475201288369160112923427008838216731238996363093608686271229496686149138965990148969256937717738926325053753728739897117559094699452701220743798585970077081541820753709668621067992012128613983965260484405832626270491746881645329924494536033616313822653624526281231970383067767023869270838171016702465966985484822891544435671231426601785646252370873760914787163257716368626693416751521273812920764461875725523122706557035252609824328536723065382500125439582293210957810153871953680622612349509161085513382614118829900174960655424692189251899375417507569809732214970643897739225819651470831108502082299644989953274633472440610227961510015200532496861825945238033109707300248859774194460351273746613974387575747414036074149405032718703422112211099671504910795013350923436422973024285899533611134433736405769356555246559177628793571758454695734147225239397050521528902916860859300028648680008542632529739759599998027288869292804777221081976807385640480928460827743747530963602595663725386705510546294659092396532859069391471085235878162074687194437808613126677631236124761991179688597523115863214513988679674069636347421747377451372140153459606176128347142230999087030165863864983476015987248997669967636325217756566695913254694567801942007589147311019132198965165195749587611606755284950140044692881919054259778548365419183363017924840630661293124024120516686421730831525180018025470769031623973288837608003051346728635236720146145303827698555619964318621217222417217827016758080996410126062881091582127421698239821240039186814531011795739893575882201986777234471314586633895335324094623018722315983326784027018123091335777412657077505114253950066117555730377301145454467328834924002785614149696133711432487864698632818659734933692462858443017354121352372470034848625837834739988325232105111170684540157987536160302888433732598690136911048968542320895732514768004425392937773358946213974536831385691125149564967156081141910716393571987372098590933559112861944739586764824596226138625205350409878799363808976231750328380481182444195171082821211007586664483129920041502708845617938620828646773397441844038177876450906836082022312269971150147094038392956979046595226777083030128275321265497499774154988186690349956075981549066271637994492759647475843841564490422017823210727250366221588688941628459709446815241610815052174863666816395977220122038015125574508828596478308488148500659540300945567609388202160436812456220120036968460820178005042673002718563182411965965654811074085966592609093515422123940289049724741353688240277566150385585196074702832138775981101145631880290408672689696562973988920831538478261472749352731200488640158855404345350361698666837949609229432921252848900440428144613309607923325008140515373827243117452597164653374597348357391321570840456583698912408255662681798101072175566560132738578656875255656300474879837335090732422824502225111018212868816057691443033694057393591099041725617671821128975238943771770208320940896622003386296647664148957179791228916417128803271471370328891763048698117495926628000398864014199819600533529908740056606857176615932412979782954361859697565811706260107877091064413531388980813992359940817063026088809922452647095861882757698671468961931386165224135289446105894967355332078998535617540360720238784076895375529549329544179190929080751873968464075954707662858991454856414515801722094330401694276660289427900655058327015816746477446884677050657225849378551656622285421405032151634268792314288223580952355510710526269087543936072593276622328117253965150440727353119693474849257929552512143776869856991880749592453592684941935966659718638555528535395053875780224097363422272386461862484730622528546670741964262433230370859512172000815798694296455385230323788261056965258852046802456747989818303401227265219833187352099941854003943514075051995419522878217690959017446898753705728016212773750385445297532660375108333206874665255792724954758132448058261927698229055918742657734819924662628169127217997185031004401520482909166092041431512494816743384165310054108150892547490353301398708205544971751328838530927262890465397057419909521342829536711073580716668930269739213171246829993233748835660215520444152624529599176951342754635847935781767909808159920955045584374650986542117191146591112570873186419507260640965103884363508901552807386007636918859711721408109001696025080611645777742889848780839859286512240788586367086275794848000119471295345970485784972933436848913824923130991545874914492520063533611126079333881405824663358307350081206586527723258529038384477701956252574720220380224731794876669337146702541950454800909392904775013828869109493132012350101043566966356472598316231583099105400370850933995592450287546818699534073712824688141955399310422003265585308290050650802985848007426460123398011353192181618283687002354632904035603800779154322427765733696064434891563841183882662522113187790362096128179203395771424580953656071356759158066190029970672025778595404550789875346528984011955372520805145337809654633008792181391203040126127049714525738560094506277899781015395997527912834657095292303953976784469125715196555014656549989737151318270118282210785639724279618880396541973740073447691847324037929340524615269206410869608916812969105324338860310752818179068347809708374217030420288746967717667877227239399415328926607457040300176538613774170870478230529408953708984832974381600568491059445159820136771895485808607968619950414453935641583273617091784376209761488696887267146142503414327215041934702767397503656756927314573345488357365729203769074273215426668683341132959057178303067557813031986355300210655516647127469502699481192915731779189969031090829377044532745348372369517174911851068958631190469338872947218217442096483901680763284769488427537870988580266477152918240493230059063829084134809154161387686899721607722245304095603766066732469603709782917479716806655966557415041199307060393879426816974497719045066990988956893491449181257781498435642418978073226112327790065769003347726807180493923232628036000070361466070274321127814457833943328289478670761268575748673521528547138603561524745060777935981493186162353324146608722475533677131500329095497942382384343171406215896486252500937816224726158108079589462662369598844937683378315826648889264778961280182753143661302099382036849519661581972724197977741192785578853436890298145414609355190119331043253839632766646620659456439022608358234749112472729936363843048359569058930738834848302271035140199468288523985651023801877165042746020503376199735624961333361888601145846841318693894233909996971330500666480416389303688712906512282662401650607083128625833826555344279596853990225740321085923743994772898733581441199403524485755802412897437492042970154701405200910351598161994608429158474030515975132323042975285870844031098934577174137054339980212659854526657093590016253091675497737588524612628251668692715459610302092022939663568117067505847274153535377282897412284620053557653506815534278110884654938763449905229478192218807997756762590191594182116321346928025818911276798353419112015710842015773088658152495258135113976691105244334442416091248856907849218618545080242906110408862283586748957799706120895690612772551907135731806426383048330706823201906184514901793849432002543341343324838993080491469521650376866007017084503838258934586374635566279879683946617811762198416529041014156680442726064805671970946714623910375112820481892031745994278413756291620895154043941894898473856995987404046998274099702920834876224193999959882648491244620265585552097464732895815002803298425182086760121127248757624594860680076115825942153830844600793852390808803798034918977610588327095014790578680800879221266825191317045757601815351957944613812650464251352811762239735301054081040061334984007089737338730392993520724696536067273339149283196205379111248401605287392677923033574354506468122178503581715905189962724796398662629861798072994148865934423656546027586902427412270244717620969550590225234462513576149875613465631722664025479392050680219387290159813818475614487378738668055610492363226405860582838147559101789202799450806743891086873297696116724743499728959551221874641321214643365883540046559590187643993064290905622323071339298280200185046163676858555063838035592820373752845853667350032580128828591767486812349103781453044780026854767085946885539093797538775324876188087149961745215115346411382089512136184090846075572021743659264305339995100936589633268787489371162759677193085561899309602633830042018892961681082315137146391623925240202269298248157633866458661947422546424959102946100699067646201877294335770707021629224102159273008132849885641665477599019827520325709656146068756008654405798711231114365537313264456783355742577820981085911387996127204895668029343198551613279963627334292022628689896202546509685133528055329553775708429301905777102839634310278243755904879167026878224516470566631138191494442565932558739767140343906992257417537393808796445965897617508486456250630629569607713888335311741980523138326108799152059747747434945821973903192584873771192152380235178561394969712878188611953713618057884225614530368758062959438297729477659410460814824302857146115030200348642209877960137571328732090257294875219112325393564384619373269826360326329727791809114191648046448078567432705079549572518216538183874502464641190433747345708003647383056585781163160790798775451628532937792041901620286305069777896626878854866706627835201060764411175258503056535812598014344527505732547194340106430992655413672366541503298402056120381417231316108157896226436919335055073215715439601054425447425248181765867910174909359539903680304752546658539520371482154668252573928570127692816179872486304619897004516041250796858699809959892332204410232681046504678281644782467671591458246855604188804902997275484000482755491053595592918968967413387245502769654454287117096567306009825214399436965954112153022106215594467365600890196956446527620555089757568442024783717777814316867115750501892459701212932473957668398225394887193205686178066180535073621629659607000916273138773057418899713151069244740669033006650402799182807740841270028056389443155549297377493848342427694771482589027272493821325928510320990809522692242107356513391489902729354951668171636343310417817871425942653171215192646764482434220073472187762224269747737978981794272352986229143650005164183295036377952475343100933065030799110509322765496042035797043271791024206785080672149722162060200848999613493876753958682145783914100635886937057881877158964951146557702009839967546272667827574885971627377403251232029492826204768647142239916824647873977829578727803466906753991665686815822254163148506243101996853253934513633313671411266417185749773748863460813446351661869622419930515193844132895762264138701509640608568431663360786291689838380679767423311025955418376057998921554132409411896175081298934685189509196205573594937691637010680361246502264746176539768511544178717908955729618044496234292784107833452382132681271535190435641768444173544428182717530040638733568163782178218373913738786737120559043764130576840672977489886697187588142112331897165440302985633177132693749808617577875314739608413665013502535420368754512489432919216955830640385176892361389684033845531339924096161048677604013186585645332444246622572230504238514846065745793112802084961713702534575312939583076440860087386483925400007653102009419693926635915111072301219070559209671633724263286598027308715791820733551712873527081874940244737960187964462443777131091887314590183561425944235968835225453266825161097813957483809049712371009617445964092978894769004156308022576151122789346340709515601357763031759783894490168732635399247284068267129816347565034635284929381223865173379484015706720918303264598387978295086436258402841889657139068480902772720013139561350783593158299755863608078948881018700216453825513721777604565666800759708022901264029278180637398856943569869325155881102673807456495044548764801867780186041719428873525442395325248580781642676737152665930885827059289139220176639201688977632796797134673135110302861842039575743276714445496011160088621172386018524348455444762708433493680012393176919380959612927071042679110462577300529192838172634452454108630465335222074465777496841828039103467662124934149853091595618943773295670273721509944677056877948827239870323016394454100926514530102443272002198129111260509707878203445988032908762047381037409715262275408386993557764362863014694933187616436966884914638730432184171128640210553925572816862190508073748757738669661868162621925182489812219157377246322970392239045416953078994530152646720836143446700856345184272541800454639294595765658425114327607207780349819110179913452555148761140678619218420954853817079361227359286073625810262693111263879350793537973860261318322671297207993799213117666009799813691935910232095817879457996212994313510002070280930257905741633383775185482111697081535641618146272767104851451598979931590348576960349224555713913330093606376586271967716069696729085081950292070270983026468655255292483762018979500954205931284764375250125736831492742137240139139059982905504574523185890579019852391886110341449567018866189517053292598593960409982481570948139244142995299796431838545769668478462980790335045372461739684787110764736432940846770787542131236667602593578270553728534183457287242053199931697418492207199158810129750289191797317697836203183754953005719093212311664499850669270150011738414969985293728958464886275631547715288124050431320375951021608700209735176283544330676087866190731318769989566090147626430841604107695699791582583354473650841169779700019733422464456879901903860403648142839565479451939471031598429958843110898116081132976503658031093482574090999880906899983972132973722774426238594887922648434130781314517383449254800154507434371536910008931880151908942346089220056301002809032282263766987202150073700304838757264806043597910773672380314280393025698363360168264673620407691518936582476890464003305152696713537444697292252855451570909332095896095602586690952877754265778258020967862965767396687590181475833805217618648933431905815555471604683816493747274255125620492645901321801562881659392332545494703738132076957980100222934848780530706692269526298102223971520180025157949847444286000245784094418339273429424107838136385377075314492124503620512026723656927018047814541498420411698966144788572497090413539484726167500950951023516148046169166431103439020203134563765057127808706932256207022796502406134847975103956957414148754157260172898348243159110934787017662409258192253143949409302753677674849438935706619326887153470489472717462656221539683819820719491867281798685900054550886714340212370822896154946491487536266643537639192301796425356507704038171047066042490686286740828178921946573012037211973923692148275759095889561955493584180357459977128262069517354215989753571643672447622401469287106004138071936727732429281448431283641641429730023309639374018810385458457775829467458327733262459455391261388968188558542904379297591311703157641012880948402147504738733693015494886669124916209277402424125044897184553115649864534787094037554772261131949160564352784149464029100086283807828026737861985893715268973462168148114247566999936041770014132895795666017391062908805231190540386636994864498667624241579619167721088108474298468311302917230679637468660148714045210300333419167850196899692965752171795180329938134502821321687047868156914385499720722347176888294632801311967112670768046495992008355397935349309513791007462942375377211431636280684760390473314814683512320464764698825599324439059947425629114231985480446459060814522529415007242037402853427745461223133833366419934857039205244282211007825855107098668114470357818318217568128582783226782087197752820742602141020398154696879786819547552560865806844222111966160354387744798170944513333043655190101892918749598453362118973005481600322201550867742190032878829206003297652787790624541891648824667654549786839185763128817870492787542163524272768467030529164633082055577749570076062549363947391394952477475595885855855798983440170447079027952488691398956503888662310823197424776051642656569703352110435329914810674581080264501904904693268346294607318361889857417678389534840849762871918859047742965303533794573950673205055614167504609444451562002285149215358169012770906300286390516120986497346164083635041560839528168456296808903762291252891741763443960196100464377782501734457158975546843281508439959046361171049519078271258344789871712108606498398024084824706879716825353178762329606741515530495736328559199289481114058252364210744546025379932551063038292052488650245916200952743204926389820418860714306835174428247413855168768666530055997280782962625701208964029724309023044126215898768421404415082256460148111345597585341657928821756249259431359931878164813883548154953053042629796140095192447125749470351537955598732170493158322225199445240597788471864449369521082110776929245955335131937548663178030836577053462988569866277048270363311172995728606884068479433861276322276013928613861659519266272869488477670497477303735136349782975058718530407844520283210650088410664355244108824917457843037463672046402432880198394015771378411812465387068112705520585551894705345681310146071384704271959115629671801342772474803109093837184923629123645669246880059593393781438886960305960496081543150790175201034462863464152225018360927769792436705901256440732087815119020214539214957089744018289147990849154613463813062358231710396603018295392349063480438538457400217985218423917938565967579088464068878238189882136874901503352948714380296997342783233704003273019833817892275915888523015461140187906662020377346052423725240611895621564593268995664082693811966027114765748321980875941855981082158729585398012011407976865327998232243494962928695731719527053835114529901912994472950424631519048472810183695008351087130077943758305039979612238948017893083330783082285782042271499279654497697131632495561785044032473411369337840606934252941114991700468356778916473286519759366150678795423600480300073300382181662270150629776826339865874924733360620204836237367285867700145647876091515315679562259039972902760168066318659656807698774807759751982527212164683657473114980401833012453586284501487636306545575542138959913255377731411251737832164562551526910077123700275589671824952202038069816935981231923696316181591113307363644310564979171649063487031580841095312910595467858220453047402451302217286326514877201183320177987585877613156850622231242788763336570110559236899669451088811807806053016681953139975713199298326945049204828718195433055964638803263316044901562843484053597850869615221515065735293057426060791396539772121136596401535802489009733415646432543505436607599624881470169107162874692135065388239471090061972301049966742679061265080343355310057737429465113650351950015068515777201575196667132327577959320763374747430649654895287298722876535686191459496851647200183716076659526626327144713881318198253938054818503859395706732629325979705135800490841428525211810739254551158467460752112979972171971442724760719419375715695232320446446872695803999673532852773070695103084176230927593207628247858816649579102917159369247079240820999021112882258559254260328333116135767551853158394727497271131235341157377543602956286558000802770039816950275438293963947944630774265670235746016904304043937235995710970921243725563742317124947898746386311802800652560561445018414972896073763292922948873494410784440130498655874731147008236896950700945115159871856364948593143277132475011823702769671114535286865258300029128339447917335257757358202325670946823349709710916980231860198881639864426584981143688821193610772768221543566375665068488446130495653427982760780817036640428150428294603368667017933139430020375295974666443916269318301536109633178585476067696470539566194787634337580161911513132120599118132461749228003744583165474938931122318826135323189154911183705113380716352733610440880595072547323673420905088062423455594729840492656881641385128084388119955110291407705835950835388912748550920093714440306519768794639642514729720201506624883386501803717551435259984823742673798340748659008356787890932197631753041265194193132710407332733381343807668628585799869476743691846012010784998022097753414543952938684210981261114878077270724834152832457120845072748669654808649478239195395092682120369768244892599276445734961509142269285596267212125043614498079925009266749997320456002513989614203754074958427269315172454513512936676445847540227708577672102882660295165936428975219860273326392311519835867042664201208136336408226049383759742292979572727096296364227001398416897260355956595355071271099262675794338510195927197500674390521580516235897636267475834728473841802608020283390654817571885286288317914320764441073121570878675874686474221821227548827610198063000070838832084479510214758489276342669074596726477687378159548552540455379915623174550681307503972601067739708974288482155936446547686454955467417302576557112852887433288145242833182151668515416174625426047169475053106788533314600400796091500339413445778810274422913975412794419601123578153509635204545123073632249775401092108891541367166055325199579628273854537551712701035199227109725727001029023321229963143792385572130661244120226811975693893307805432251108465682374560909452003435391538730399856559243710222345919065706625852403651299316410601563679188386514356113034080897691243667288220760067644680476302222948868584224761157403460537556950521683366586134045048219488758612053472359802354102601427301588202306055595936261463787745084982747326588747808976616003954879825054529928824991028093379022598359123027144162681726855703530502362502242488815469521558706839544525843667926702514367468602812573044106132598679164140670675006941911147270409059912271306940688408476888293338466379850413002218318203039760555147535441420219362731195954149298746680313117733554406000124550392578543343287790848085439644402678870604110939764962772201869841984687616287400225749038386995122659444515498864791663146479575940722002336023093427249342279061526872029584611148611819423201473067731191404688488989446613993022368599549979557726584808773194173093616607709338299647381582248757393253041770677002539909889075785681047477680744310788083407732462825840178970670080166251596253278393140574890590387515368031449737398495093184459948195385234224659939218655808076378201435506705792655156491590645779884389504423827519294266005853000816936664571806487304086774277871928239713427464512114966231437809205701047907172275955756514366782118313050983658996509319225604904272859673529756157712225754644814211521835861654319258269425389520763176160643043975977429054194763773854860083044770996871362042307326603823460992455346802097299451086854512802091627329199579154213586258142477147463147992054936851288179486096507938796322434334940079377527223066910918358067083148674407436240263249858517094973847053724242931015414393560948442445665292536183184573418351491414066196205775548658648601547130527689689178123423084068538160522310699702273080238085368128822435652343633408543421090928146644988072430699369232420423521266861999353364487804910744613461397060256836200225693094851257838505948344273524131926322483331913072930738442549139933764025588259599022853506694564428171609136882783107100332464669466306319678864432277416068296417079601083132365296442560207513815491660421934287358181919779456296760295971972096380803747443989309275272068858556845653852652521145555934725178950054795558886835406793874256978530541697687176853902497854679913498593849048607456578450617811670237424039594290305533228281079188871490764464314498678841924872723440923032895725833448873292971618375797333778482605313372633885167272962147793782547058573274874103018392499289498434704571840129686788568380103692756301837953383926852193098086935621825033119383136065956223259329257176206694597396569488616055895695586390684711883750852614737653116006896538009604992989425339266189135519710087495463124281938561073164833951192487521612290548608837182045053309886289164721698571037290532842177840153574647515756572921734823315841348310251438350546302908324883132286015728807495096368776789775014989549526395131808138911964215779653472544252558440866386277712472447756652290766234844634232811279251605675235763546822134825943933459655630858314249751788076310917237255939938427108991129396413518230922275181285983172938045896728949456620811274172211802667274648361680105008149794144836565749400762317301419659742802771202404823513791144061040910550509736693007978890444889279311356929331030188999465333482648170647873343669767926015596643970257606386750475996740012290474463334619131122644605885089111934349285383119966705015801057789137580155062236207074225881678043684419887256845662427655876194453412592472861135122594820605230644807237788599710185724916577278700215758876224745708500445674594891986954713916796001523132813769412913028841903531899594859691858174873710785348860801074646230558586924360841247416225938958059950936948878285079168221887984308786843522442335772948730489056357297927834201304140443182846306964915963165594472611075128751962762857407200737071008910575349234091989289480229841686207530830132460968009887101626405529700198581661057919314276952867530381417142608378268676421496277036617375562007379389370319634472716255754942491108396334419872487216472006673359382779048467066402661990582863494815524151859012248413761305491186042948447702159745645956942584089808977505098068059621643981078072929537089377626666104122341119647770549748259619149184437928463514739783433064434736034696584803861220462145591207444363277295016276653509101723520589359958396080135097173821534940291740090774936901582789258693810881765325309205678449814411403328875386999038751870184853401186642030646298987442877046539743164590608739685455106439874994682801725268209330796146240460517841729075246936871096238529859749369673600355784454409256537771473360637320715621032661824185061297597711383608389875899741045624075274674507913307443475948054747589313975414700558062556536224285869855353669962779130792380262854844952197542943254643463832986218142135371420531609594491724567933060209928608609637576120589311575874577954256797322432038184433452413645360793991752291203975453976608967076902563631440160409301059573372514035129972472004196139423393591425929761231393683378800455706460922189484699385984061118072657489712283090325932750369037182604080499829625220223399366459465758469890227003022516345372635366966365574975919688574507485948612243655274109513566835209816590930100899593830953100681210317504863913397029642993936883408561938264223452883767600977876562760097370627538402920203888093105498640651577688057467584635700545625444134751264569061601561971850872126469017694621572862270699792982035296553070100692550114125176539995832722368832421689299267032957893241077559931721888911714130968310395985927061611732146100082692195727357252349053376687436618343525595088124143269962006133654094731479369168801546052931821509683941145987261038462542885569308938261594190582713573324327861575747013658902636541039971528430383364347680730350870694752599572634729530555499710129274685026482111537767074113198892688949485738089522263853690401380955498547575476773031822818496964841252292038381840767277356304696303044473256398780947802286814109426272462729798980408750870492414498016148612126955421329903442482284653789700344910205103708401597398541171971787617528204058757038914451773918094565919741993547189383809873574607558925367492345002053540539957505449490819704604708443720994453984928001139915894820100476724245253362984485667287069385850038137214732465771416941195631432676403769322926345568669409188559196703571651255235135098408459329112285704907513618665500397665279783274776798329434079601629828683370163257669118374969556263346759477337630594528302924689764223125914108053015185901916871757666765424168542383140148238708300944650532576230431826927090072445711812486110235237135283608224705088564209336698735509762098906351302663046906431548607561634943215691207103371333808543358354133492826050182036279974574010923646690061144267940335047512889668023371450876369519043324940932576960759009904981838757654196183021219204021480716430619925610013911248763053673360472454464524122995656477513635132988402150260305300652298805874383477360858716161211741990784206116876132077999037294437744971095779472543913079648678746791940172478789599441824848600159649994597300019696162313519908834876863238721476635919582787510374289498954746459668253860610578939178265022430443570459370157250681244713389568196182441566007200181824923903377410403240408404383674410681603312423818102160019347740182522572441795437482971306116875498253364386230603917898881152698752283488322000878195990191353997936239894641834949543540704731450679633131583304996041081593775149860991220518203763788981447137985179581025269519656865862372265792952564411545848748166348826326178461324792849292460631811646606364384881191202119965710585841584090965911895724885860047177584909491297424697214750527825951564292077979503207849568211100205780502679154564065993671022119004148290311337647305842662047458372552050194774190510045230389485432612322348431429240903817875727903139839920335517572373024935432852974824169325330965176251609087819103780932860701373725248536246763138633039625456945460295292948659331584668988649837439383516616293699542565893325160198286633229907597933644550331616638407221231228918056673008793762963668434179371488367521396163093322639208515146712803650599242399096333894253769620720782236369887280945944726751987296389613312943585111170063178344196986572500504068647308037566530149576856975809613903199405549647109088516872443422955571753157109059892077083960540610837742788538729114822047556513846331290832755392418754394049039161365927788402100525123355130997897266561781550977056601988154372180927858179388068070539356741034148131273243535623232416185220481444932158430791863376210615103007340568878046476875788135711140965541509064394263130757194565637998567051758880144333910431394618625615253182854509034236679152724292350902397255510750718813670239038844487092997607611391287795610036162606076461336579244958948549146260952369812265197725237935541530155415664877610363838479206373285263275650581731487535503182390879773497622933149875535312986278981043854409998164683835067441550976543108518386094458456875301190424254914590181918938277356730352565563033667854414067692339620359301802075848193880792080223629897684772111967182543975882903569951704430050082935259798496480290649963486494698555927904108127030247867785980428996916825804886334774851932600709466635932386524383157048251066355217105682599744305221057372366746159616968083444822963299862142634604661490198066901275541086611586507946763305618022719165652812822359163724828545654758870060125660916722493262834828249167177783541879698135961963814485437533712096365719145402774218385310528720935387896993592365953375206243659248710449384644501936465090920094117405678983019591223912719021256358703900586990282541654314616735247704569850143188978196001344545953693585119319816176180531212313628238816802957875195221801389376665607995959298600010444078468479987666911209466281233396420936363549255438566104442162579781945220044151220913439849677853431181346114392619747748040251531135559730151598335930087811395753047992156377090783168858312120517187494555221046492021203535488430896562426939591137809099134668345271392049722562412442553886355656945990514349446639343278714383690875714119940407089354524332335918750642964613866858792120698832533824054656137932206510959220544573027213330137935706723682915280991585738827899279570219088818895277105255022588385405539402610853860431387434282203755703457486856709695252646531773907073337569482117548488061680359814470743204346063953678562598100367954067789226240476394159846288270779095929037787727235995596524497237665693062583941183755708959728227374028134228809720587803846443014257695031115590857632638691544204426560242292896342855177059711075772892719752360110464763848915531265977571621031004073720771133058775189937532007344935216936668055040716878750763651245128693244678978669872353084155954580465583217879142571240657386267732683668669987864502453276493623054786410840362044309236071974268574887502195639942940153997376736096783744248597381738047838229263807625883907429082573397359793143016731006892014845805376950635978953012128847492656342524813318293625500594894669799740107897299105588690508085284169606352360005610030679487030042735203336619677293039874972341491313087488267946015005877889237279320089442430606617952688027819156496851299786557572047641452462783770640228652317010591808188944254307244185616015653874457447123975138750114463260428947937388094214268023873623528670143767049122686072580260188554643398475959663592212527542612252955947212835609100368624925554167715275745684365667458674489213927124011580747729678654364172070246901611728305195464916685736049150985975925123580417627066267944707045327671613864547490218342119240862632313585822769014117531669382819438478146314679534671432809917286783524640812801002561336289566020715911287842066920664316529411368917417297622670540635777878610952060338498191251486706311852342294186271802611025317661323288946152431733645809597906729976238649553487380870803220168242815828364619361455010551266528215525215608626930509526560922615861569187168233827967867146672941225581195932682306035900374782860992976311893306094832177095841196765296255901075936771560409626568350515389500637634778128984963929343748910399420467246816265571499242757818510831208568544654895994193540240691524001981864853231990008577533891636396299239384138431879018676784708128126881871155136002254803487504822359387687326285543780882795394772263907160541031311725954475004931227093395769305829067316041960886273751250169351279141427496978262137733685024059827625485638425740860261307579242909460773652753883769482154936545591909477036235636890809518996955630685081766699620535207427468616362024572741585561625325038133653698428775050401241261431350335798769769694612035485854028945352831213170600049717181353651574588792094070465830227973705942785205887412722371506887938116094728364630240910627295784117501571627089405202502871298243092513453746653991757333945382267518363135262790067769691334275422834854459315706899275743108747103658622574965121064098650818238330886469399447832021735543253365053932458005333958088959837736837996515192229084589428409520338223906472465842116469866314071787341841582068408961199341442430750128987950708858527505761206011407575102843090203567115639999370332444232914484871987306023896305995192590676408321350862610909146534393970632117597209015626726525449974186535621026636704862822536056756522794385811705001197525566028852894872911648758007556643248837609079411246057819340451475571597626179376059378655582068549477884375793437323920593608208321949527570515512321752631225752610844315635353308854534026179207003779809810880850071909917362951477607093577524026521262496391956094157177636265515055922173286148880969732505055496159188766568913862429667779465771388700974337829674847622372090297649112160186496356873970465601684256799654125011265973417033172065780151756769465195585627696233049918170875367454433992548707291393480407934954876583603641141083837929791461433020324895968012254380633925559186878663204683790958148527463420128733077798767587603093124069723740568286865064024980156704361131548475838301574605807834049261692152056160256036715821177897960505159992358115506584441718937612782666552373139102564550878294480282098308278905929776160000304915233973491661171238594306577809115763545942543843605818064473359894940143062723271815293158093723138493946853344325171903048257863659063720305226359953890390286619509929376007070716243807217327290471535542606198007302112515986623545892713425902784197877586387331885850331610383571131133324328104041005178593250081428308103003084682274188614774275703872179047195460823939593185903753949080849762496043940989642078165240288432056433336286763658226360979682577954626850770667478719751364927903008602513120890128754238360132981101769044021842807070304307597430713565785244942157280571134409702994334211206194492982244883130494993661488227331848757143080491353801381753284683117377339457088861804112986483983844761522128560371752333093408732532127967543526713994189686467489283299665510015121099383834190396455683795462129308834714125726845344852612793746871947083558202609054510593748623161340281336582096396822314416875708158660606501478155814865208573206621921857595158569612631157818669176098884090812370802524031544154459291967394865126885291316980912266949201193337602258029274834096374506248464993062060963359491523397509708816957096368647336602166850265446345423230099819329615016885388290997619798368489463764528360305521390335567105453992505323359170050427226212544632225219484780746109318843995049686098993995637231467570394678385621229312804045649286111492005288334202068671689483824716142588014527590355111313116573619582592361518141273975541284249922825428755321571617645968133532778602469446394800117445921989076944458767962617362145640500276864581632117450186594654026522534484383720642510626716875469809467331979147954062888899002267722664240522882178292179588343184606717447746716776754782232649079395017340522254867848800955605468454420633092828936291716317982109253819878731013710256665316420779009365273389237650211905517773453618657355090980708571126781249742036951781727906443215780051900098945445201898431344984873327949540653495188149323312104308942820811039008874378881853563182838958433599254119127105928350395150998491074773236389508779386823803633908973520413691144711125353459775247303498087389483758455941001668824123595384771687522049397667749965390182214821294886616955618584571507488191083039266074527889434101278867023209355676681339465469950214389579098258299556200741249698731218414920219921816577809241460412897750422617679147008950202315844219305468185444270991111658909070309538814487924088063469277793856755212677686326247506626933501762774468685106100620457471972716526252330925090214193120251740583715814048762142418044188968516059870255273541740040402629877840115593894682018687357441229809144502373454677173099523688052202393823976252907783349399685287648088355389490220232440646361994248885051208475806896362518717256430649185625706810292525841339555833119756325934789877328362764839516446931053711482088526191299323147787265415061952935640269424926609686647941651520662292763493712147074520852316018731309728405870930932132639974771070341755036171695652468038973548970841622170666622474386099762444383330140199865478223013702756631924306863711410908208473596376175417532399903073762470855479425778181407233809216061774247013869003704723188037960838862541417455346534706832356851964089772515250782493060246178652560845273796769388071818328828582479196749468009341384407744834512108499114924677405278884140362567086867643337875428045764966233025742518856190235463598296653551769175857024549099731759950276703834380713041516428301817075306547014328945664046081468240691892118092176641085126143165757780851211221363608550367034837045008149329779174003702461876103778219903709472782685679055394984197979080795995625080392194981544097375469179250545146589129645547979276691119460838205123194783229920208872041249111509538815749906446322652203359915232691324269348296146054843473961590079367368962320113472004076140946009024687158531636505310695249568526574726268035359044405991093010146770333651509923746350339746487403690015844920327894578502392543846345266852634781154613978581613089075864636007668732851143175263583134215221919576940888199776853043202662903577468410367275332980555780265591425415037244001614833674259572066069059243380500578031586656770915296667411033725949335445598392108265017412473248792340514756369497325429727079349290086826277824424630042054593003923655831892852833051838956342831683862693256365203729688962199445524960720166971099115777586244840739515981879234009153195548026800384118395551172787155998153577643130501509429338148194044176918992067514751646900834378960595386283604512710557130091393570980118563149068414463054514524225980396497812323132527941478810225470407964687203166452575288678451327989886347465815369881471912166996326651714774806580938285078877693523575475554331076801984305601829741323602934881569264190126882806973484445318231826888289065018553084006213109371643975792708053850891117776872331982777370435468922470379847564115169115846018932972428439053096659523891134031927918294119613916587351233999765967783540003011390119294998247014323918602359515258772554647514191478908506877871111478753652469675929975710620815417966634291271323235082308986370658979722316858495242910736192894195034218703925066668660158018353254389704694708981190668124036415374093011417499005002577483637307362220304412005270577335395798614047867389311255946878614961124039856352520040188651590783239256095197809629830670955260812631013570643653476721192341250556205598218606018182298938673167640429369113715968138046109646404547944684675104672294919558249581362687701709938647934542876412117655443035749443447354547124782097901277754065331109650569030354480515453520265795148148639783891225500144400417089466483539408347949118765955413681052959015338575220869263578407878191632994007298551388014574238221575681746014521598422163261425697592368240098916522235029718712459498329081114035915694981107023064101617639969406544186263098466007155380480209494261735381385194002958457226015622109840156700479498136433244399037264168813420499902252828822507118103040852229945737438387775009706974275825209911651729426640397668352032798680062539187221939292437073686422764773348178261501492537568158992251690922264662573600122703351025338906649032792608959876606091697315240720056385997493324958781698533718438044317299007051473742629875445175833475787020153840974861936325720623211212107201069118261916569394079270713241651623335752042977434319358729357008686467593440558835835386569517251552812007924380036991070565372658638034404264431412685145185491072479616448189652333247713276800041405408779522893795139538639031546325021616086149185578212747313138315034091582312201277580090009051801627122687581425180258921580207186469596084810172472747579240325897884472196121860561482586154996516667250093351921169461407070032124578197429777393223264373934264360547586973344584802791811328605477761509247245419823537189125136996195131019631901729389979491077873284308374756877606463092484419363494150238305764535898880442435548061229047385749530610950728018594217715898008355765477833037764857709554021816062209247214336406008693772868078657421496393323268709310181783913224751330686598781063669288072943784696055204231616172228064809788429241356993837229306062283560987223594994102647641923699179155789673901656839767714850949407859476888291341304568910722921828695094848993410197896564027061059232694447979517576806462277034425865126091381702549650337911496247285867820529826766550004408164124335014007526583382824048057399694346648441594991648780302396219382601022861793442862994998340604268023714682004716162576361590401260481327572599882101944255770472453068266826486409496033061285153832857835737162215732819664158726180940374887996973422011144898379891962929267312837591288848681511842908145102513629176348147319601714483638418489929579656282171059473353119591655047273619481794253557280948798218182583449108283958486478948154038218037911414078973559505425827005664757127197246400431884337610942432246679401075135989089598600841268092575529232290548722340355846380111657377406235607038478118732886222573403498418828001015143440733986480298145058230846409905157660031380216945959845566306966038569651929846883173429490193217861835225867133083278410942476557171971447375185289054936541070641481759564018031162517106284257989783948874594025448799564436920765832704283685352720799799922749047696874122675896768035849257022008356360214555522443081371793851176689855099450121343348559310315941575617405515634160858594393543713167834084937642755155393739778313424955966199292516751431538382049927336153028286654347893312363482509042924348873787892262240155632403900005588467404498604477932135442025847073843411940412960684923109413223363969766636909346321708495015236304888125384867526835107545872635684703233787023135224981179604488321712649739371795965612533746400196522324826041451254330210965855008837516732195708859110928607520505725147654387079372103090011104842116676819314621683090450049972549046714007340713252709869992201886470319188082049684704327703409094120938206715081597752254875246167772581165057395559551788473560494860267334125025630934621729313915565545504714035998815728505714055182870634347936671696349512739355586686995424334666592127433407237666877587060548494977241144321289035550055114699265074730064259886221132410902475377813486768356462102367445360480935550566361532255305793290843549146315798563347389937106807114377596568559115714064106275832917221102566483170939832838669448331352980681039829422748576593351812464550156733493657434414204803247038151315873205928884878400337969228339344574378652509457841295517854304735569866530410824293400756416241500993677266233855677339232916513687888824041250537386396893242192785389527078146680237051763119886166865664336310967600161953406895955346063442827071524561744605880549083981307083145840801870825704398160401999839682668568747412717731035064035457240084513743056248894330514731859740620916325707875685496527397417183141952232359154244434146993892856086150351053500368683971241494741773825172482906863572212603127883556411228512289787003733255721170582944993327465290071145801560432385655527342614320602976295153830510241644753017674491519198643226752227296350417900019293166429015138575587847546751395070723005440209383845489976662658435168869005935084700048613015238524181830613327403957433246561585851030253531388568847787711316155177452636849246588210269953878154017331121683816783485863972281141030902759878756891976346834458371135750559090524689731833019759534172130449402877853967143064991670913836307472216705360701727613743832267437479590780844534705337599314425655075972955125095673091034737956677620439020472793113752344518297161312842784107887160249561770982160064429078334826016571185610661463952170789812384026578843288547715000108345103607270841047217900917425730460626098809596414634846759878598538794105866515123729958678790427218334585544417057607592744186468984647824946791199423896741666463329265446690211111097030992496494705282786270556260278832032226883708669820404661356202609615883939500362206434932118956618050376341725765011762699365665534485716748892997745770789459071177081821974347024121895621019289665465772996136142696677391849968768677851357852888220788603296514771483533361491778361960534143084796702950956774931486151809695599529124863231121271846137844501779975395178943597177558010783601497986373821408478442669559384670029413516716153095853688274502462571308998144691406841522242970618669284799166644601921628032579604075486820744349670298594075848849372443248043348836467229264905276772558089625733198226790510771531291123184378633163694591672094703355919929041919287271485826256918337727139313961187190384540415474723319151863364682690020032151288170781808718479843669439091334749671358191656092594284222156520109967864718861375319050824524140608479509891599432895873426945349643263804452391313824102600405228628934293058627061765046350915785419862833951866710649026945986641191791713513941392711519080540939258704831832181408281153945123358770920204647537234538005687855068894025497744278332846277577907757874341531559474004357512233886265282454700759501884130722272649228430698338754725518032082382347958189556114787829546333165507402393354710435061513367921756584423112322532701983662397004845222374786876768283081261036673560717177404764469376861739848079002203854260030226458299204820254281541336816901316962932045405629552287704382234832193564502289789295473028813683811111937221761939916823245296067203179579561289141120490789923376989512356157383117183406663006618635992616679907531115358406367210972114391242813406042728646845215632861470358167063555046438691812858012664393439875622404086027174893301737222197071410020650446942294086065611207507656678413209110051728367591186718082550874848409240701338807058992203469058851253236419674112473870905370964462177699412503937907609833996995324724639000154866258482690815281877562416605105390587956070071254349941593544892475279039602438088515752882033900195877761724261857677054936905156129594412947423796762929648478690390853182858053353700968613387869380051569099898923179022889168740085711006434849883316246623163504829415045524600213551556713445164044520569687611664110401269495503742132526935253474359401600403146308277975161076431804285319873813070432671333214591074810362872053323459290214352678642142283931683688523806223835350030268125375742006459604399038636900963173518281470976157939165430379222608843287884493339358944672918339847494627158921577657994277866709664617244389478046112936371841885908370111400637909732142492726522410908211271913379273207298618304071508458387489589276056361047668059952755739876492601411141638350490227471160879993007351991810846287513683955297546150317572923068339174025230475694628334722913489651302073991629685856239054113008808725909144172675260357058613753226879254951282923460673351689007292066676740342685618932488427717070074530555308989658909660525547222846020364152741747478753121143614418751052363776458315404930785701816528072979079564673930350547083445583306601385190633151459158706666139848069883589640097135776769564974712787921233150470654884666208103923944025026058379804778988491596153924476206881025738685364745839460974904278484533944261262887154061922618834215010865949542879302965506496007232672144452189089268346791482438746958060157624771479648838130890573484025810434441739303697476184624616553080463725943433048252362058875005292198787420483023880471717212048457375273505847497737111476417376199498006319242876629374279434070448268653978118005219360975462832571823782563280986476708710376042275265385636279775106817623795331733441732490729622694319110572752095337165505044208524777729427458955375098739541336207558597696918343151574840177782258637839518568634540941536178339243894584843787087263368797330305630386657853905539397351117750164563346031267810277426289282659055136618011061621201154084898720652406982309344919072370629001602881493634724598465008382677475720675753739804766208004736973619344191020956976541558451663117965397803171908505548331738351840628022225250535990782072922619180448879814414038402713381829999772115129470661162447350523943661516555137645305644812548716363462775401561660720356185511623671946810170079575718290603572030596639713436511252762922504055112693715931630880931017554365744958112312201754508662199762363752399897327958023056100858070165701202651155861748620330059232575559086928336049334974133802661596216364006861882780064603208530767660258252906477913718619024165837023835286031394566872245389732843244087326113540212366064705309137162089262627830668446223446241642663559007763279157750142987870005533762662263667761937048107488591281089845989955552175567699276884764180059266193164329727421965866675813325149435040889527222054805759551321358938958250904300197117683712996799779000799713908792590402944355202706495860591516518912844637550093542624592075709944192760811522303241471936844739968030403977860343727055094589825511308568247419401717841225660382853077730496436273706372696325409655617423809582268153689934584824332999612425599564148509089683574493468771748387597043176037635544437442457149466196954452954403173581445868607094052989625746454774419552095058507174302929146975560860615788901135834403255413621013679242559846373286635952691761020045711603594420435433259830177402301104561000459662477624516893198770215956360517048209862042921957112211415378118074227724872109228511218688505358009020480115147693134066889000728417715557163241416326001328862333692582517819188142208074535432015772039122729758520717426854330295093721751419839402858649553226192049740063921037032266888839003980380088427471448872584971460599346598311169689961467967978973016041891793883460800352853299750277993193850072457567391690052492237350874620707997052951448616149735170581438184294157110821536411712511312650045969720082331392908159292547460614863303140169955032824197110041766005457536903398545894582163929247303588891202566418784127431229069560475034449118659987136616576917680211060488906777005758647353604275085370696108953470219028995678918505801158992775671519486793087227231905853938864641754757246190035030352523487308020304480181577326665489116986212771782394200460619241483579531578610735412066096640596494972489523503029613039131798243344476779132861856695537353282120214286418426584231097041990934650072531014840937471844500653515925989006746090465477950757929375297720954513268239459452309136783060233056730074004843229148128980677290099860649818934935004177518418661840599234488650702511592818044646776198628471669320368729723811713076049943215177890797277186020743431153722986666370264784056760380963443582918692498171427739536579222021426946505072344417144415220418506669638097550735004143441365676102299105490304314201720498792134440143604101433121175130358854906257516759782759398483014088845588377380845176428772274678827215732938597606207921157064707053304548161856449750366794031492777009649627379910994278733750167034208456099114350506244889929066966497332559500236623298988869892043999869839995091842372668348285249102711949419906706038591211355839588478639568704794269457309215481983687739234455320704596144039953940492432605235863694357631307344720387177668405126938586979313485867081646226718632336455104325552800483908236169676814693582833739325379992141452612904216121871012647061805872802750574781231297190260880077770396666034853171268017502811157059217815366742060023053674977785013724349855414709514120607337237364605354413656618484435238529086920299636626978650530683189579559958275352245784342444978551664302692648270304765076864255797764947791709247559122027359707131003335576771365409764322359371632148581287952934998281122940118331299050978847758420685206125535444967206169648027568048083885026458347130290605075174241980852078650092053520838430187406122675031326725385096919533564106970152013301356578765878651311392023804081567109335127029580985558013838848514362677840952346141368503472066805439004382888667933000902052298647061699071041205455235916675413876674291699232796927829171364906994416464223029907402221432727320514470498790162751658711925527354916367697561569208850732658348121780083218740207101684267399402871208950799800960331967477315677272376799192313824506537296705287289848638154265689304556388470151441950679279575158253206528600000341129882984363827463101759355984011146437527738628770260014814410238744657525274374328910784868083405886645843113609338418534180367063712402350594614809093570067162373323905031980637739028069587203482759607674652750493276503070984851592003421595884776816603500284976122782989183453272539300295216974920523255529858686765872158587278593915121429513190229647826261749896146554404250204429606313713734880642367278900872732927728826459185197905522263924366032167644784235981268026007454271116151334253583281658947770856793637687018393614459632416489734832693515154227924435699485790011360481077221757528906604584397816910865329148625158533866790141512932518100896523523569921862535102442316226962513576395164990221934374444067967814410796030105035444033424597438369421504410353852192623743816643740135547067494528086706091911186329995614890361673038062253916809551914105936497103891975417394979657250516171205060307078637466550159062946792480379449135372970112772508682188520606370442323424578880564901980726778315509089479196235872403834436082212924941100083231453474399714583760741825938920097067624306370161314155016644534223338786606598629200707872702366979719783509361237678284569570735131341896914538628881897566699266108725528417228288376935644872080162343367411182955044069285851644998800343051553835212952182326719879695445797458871391412998724421209398747167639343069274667003476436858088179767989591240507923144685133343696284773939941218245820319060298907832302587594422046355382163839285012584482459781980602911709682326893725809945746220033119941882240215338097130469208677439198368661971729415673534746139315369264419843243369763573746173088790244052574232477549691388896039521678901776640982695653610256682274087653132108909282837372884734069724869623761626096109766730789467656970066679910135969082442527681567796625587296943289397369434218363142589095644569935077696675562012980681336690487860419527638386742274182668945022974221550716338000432831733652511800442726618900374469516700285006859998721055937065350340063455557305721547741435295629571909551393058798753295985545322231510808878868079256981522161632538202243976168250734796626229010483299597289978983834297580564918218839903184311864652952281918073074724183852518334566341858929472885060914245624060072421989776930289330537707674614285034408341918014607883410361021270195157359098594304988963484346815442744221739994705677996633304783035826457852512386141300507459777240509738308287062622503146155776803827702457331328185651741975382651567410583884989611925639715380581483789538348320786146972371886905574279630492620003217070819767586022008211628003422640951982413132431578792698318283407393052316605009966757284095630392118192359072506969979311774644258185562100544984561822212239135491045151196443636937032290881933843581567905728454974027033205268569050976497530691371792138707355059996907132405180797582039271048437877333978759746910776473120871498100244085755883859946456127748231788218266191589199149079621673456336602355201957105412572104395144952482806078776223899750836464319388852157007307849967026979869782090245726605403178612539031966706335156450807959591060162977118226034021939189889813893561639785150923705390111800754446991049046829440325125176042143601858037127840490213865304332430893546611878236918574641141723847650305563478924986834886275883447679223478750579566758184730479669862625795485406225925235756194486952656880891048689486003345339039370252426428801012250630711971281587462495348264917914941814230328888980019965495913061722401563326388274754584810812066916884797978294263397949206091653189460204750017769214431707057131200422635600426150575858656580988269868969014254776303457323903041566085027917295817378552098864869183400291658824464429506954131854705589886990379804207003199081055045403717690824866123085765320660949456827285555386993696777387187556768816124945322489236518444188319899138104902931794932534017250182814770914696392350183162720231899062381513106696662694637159205203505216340065728564734510241213324803536823118447498577649506948234656855786447237028924310534078990776861622212903566011436026655897945082266728250020014330999507889508988844184194166261673453620157123633068404649884812993719542500648163089291795998515073397623906440832996838544147378872215098940893710859884161972621601076599745318001685761439936301526791148224562414763062628756036153042764961555216958332727469143022461066717753991274969100691836338046150915137316860977028356377469521705202271428172636436479580282458377065745685949230636375155649941071445882564306021223950477372574850503663156314776191447078584295713514464202797333907831795291385742179833802318401038967348101976440991167756950471765166532705545887393283668480856970710580715844103495937190121516800268007121038723404203392201412580844036517555114250429354036273341698913008643927026287288170722361145605756733843216552761500072686707705493426329098369144641289645459091396398184744792025892776808505569090615370950828056391996660610169842778869812500747611175131820088114097478613712631118511100586795366201170255477476149940034423273411699178620760815810408874057106894400020416265924535103712534087798017808174265237305838307849451497374807645236635532122743864206193435716673186747713358290311321312805416275100548262761625399287034476065538693802586107513154023110701953040106120539967661923422982966151802370076632193963573532590459039386204290417899341740750161899554904567343302289827430159712242978551932793210350732663875391858461995695274685683203482345997314523145838138562364646388405404322463761373916734646992290129422023667332997217789361752633529919788416376014280045120594386806449314626179120402062632363273487078050976501022352551157917472718970840764386310922182398728068676377397830944286980630196002678662321556638423912959630035830835379996750097417808454450162183360025169361968152958301128147173762956221252772641193044668362820400588000728059995403316769358576163336125577785867877515197464962420794880699180830205125384633972750505619419901421464286555460610961138816005044199927223477448038312487695893845910665634268048887483033465964103681583593359987999308832969371037014366584575538388432290296272489626374536921097592959059929587969349645505943939861173721450916901858927390137674445686919303017074749735023749658473346078799795972056005259180000129940715301590737444884612728612076091672081827672236008709186450223392075904412403471876849923822416409174877711858974987996699730432334414505161611098463882904911667703371308243971686954416469830877088946688943161425737285727871614068275106520370161517725932426493217551956873895746052417419350178858672654529100244537856501516667667929302916861990681950361273266535471117173434150226567859983533328354063831158680731179112207943976396184852777782511357569524861516141630190076639034520228077226433369273831823885027704199668992542161672679768017570489686024784114545500091212173560319628298743817308741411556439142758767351749209038783315317436899235056818951727962857333988975383259237347393700498918167856790095521360510423769873661972628469455031044750063200494510648483803911051720223611496488334600552454603343948634609701081253755497500594330275832849894474558244332738213025391885997362917607548175894829771881142197555251780928474133008609182980382377710288542409272633047401688824771700301731724539035355456249291956047109364350270159885491672571695643329573559831852100294209622549015397447323698925565471458319392734460140922930849164880730509993674469507567217472169934534357793126205788052520551937093581368139889739938852381832217691280625515312446521513030012598205699890719879743764420650715080605933777660561285972495047210904407363252693736621260528152271339354696787506449465495343377040903778149301030472415308576237951211437463742818334726417323658566556886295387600924266317116015303278789518830896103282788539205556074172184311683080674191778547394251300669279956683334950371287929055779847801767575594843002127171275211884923885847638663644599528022557450555359612961727571627587992806645875774720414081744523959383176988811423762663201085979925584895344739048707753509115561533724290090329117509947448099797099354462517271856957403159137158280995104428435997292166258701371181677268080141673948456395714632301389609082521217085059411920229897682543111070145858299408132630126013405777857023648340093862604882701065349850362435437316135563463806034630564927719737306198307511628450716376616377686399933420467715829518310275777765797906488814971093182672622048399759204246608302254050927459982811868466897553431042031980060378202001442486348012661548105794919980638844998194349388703247632549995324546269297227422064469335361255990386621435893273261384780644615888889052660659172734640906390844179777324220128657606897530608932104287453398028234724934729519069558843373121404554064630665807002171972018022632758291749496720660039177696405115356717462204217201927119565574357039248409690365585160674953107438262021348670393220289786702791867816704974302753880007941449251343022180287780959653630459786917482846547897018994892806276711340123747774128939427750700125899431308857744592454075413026847830308990874642762446743491967977501492751062812348992138068346123983066283719094436206155612319036404934956271342546352262215797687603338578637032147528695536009846227987813576779791813734049269025545686203774023030346974682395091335513306608792406704875651828593774527072516415589537628094631979749421773297939311907104247814261664208022797285748468937771546735073423068973309255291458388335622501408260511079786672201878230131336067340352931919222027769596829469961372114896529899534926679584898328157247544678373705332365863067160999248844301440697773621254812561106655915080504194194686182187964347127808705576480667147297349796178215442655862094110263418550315272238434580685660049897605739108724770529792838569659917079922984970081514227015258965192916296363772718597705207925896791282256220998696045550395265597548017294076026341933320178443985642542687598686097705466375389437139300330197921097564837320702219681709774882410603689781200346392080738342005873262122598672960529040223756813888816423877125677092452002915053314364044295231273004864003644953219575960904556240616117750149342514475572652857694617105885194063392136325410050470495351232299306183139922921324582067057165861116077020476518238934567559864918509935265387719860554949241191897206778780772895254801337510097134024707046929034044048429461450424866193724798001952829235846810583062231117970712926191414770303584950220905326350106230275182351354107527419402655243856306049770269353994474810525498330773596837185373155551026892205388850103206134417374834327596429644754419256372607874773444402049399426925827734253091568033151138629621219199718103866681196772400053976397585142786714815015100598226334643697798522480752243240019373029014841006736198717781191719722315042968806214926863670363379663893606648918569719036592341198338791873172994481314567248852296026911806364140560716315355201337205942884297425980481553125201370914499479416845200387788778133803324294658453644331313285075354904759123430209913681892981804534084694440661911350300053015709614530973287477204272069444836686025038814103790775608498337576573979296232951388959515503351638819497371615097586480343212414269514624611610634021231007762013466763000308546026481441497620597618525034351867423281602373418419929013285288120419662935421921238810592930352125929627698828776656006544617113688809322919924674056630508948312834998587990745701899845048996037208852729979670453057227758454303246865079672302500890548642239982860971912660983992769598566857274205121042091970535374515140735655645290362329194702024285918445519261984167860053388727535189402809256379772499122122331655630026460507887389049530456589451414475048501009660606395177362360194247530332223887867375145909994420041444286831447576804350926078170388468971609970721957675816698374318587932437544479202501363777924334683295296670096291976121567055347839993115282371406173076685852559467181593448329054850250480918059368414006019119721344311685468080396176791556503615385694291210511682094135318465091386015782118686602546676141838919956093872449631386105293972011469822878639641661809528422358500368816352977903177576825574300997769339778305822557674542706059814306065268034838167616725766475647894983847471485581819150106410626411118611296016483860267091232318706411841617388675305043693567070054092559808562012937891870289746703380783339495058730022292716423775805944749140723257916724477192164135652623900650825309566910720152071812371219789283660115069675373672435267501996907178411530749303373766142141198350895427031469579668483524018987733793457165340753335633474690595962653001433938397483019659569776456789089893818051731849760106103868160805498112000327356100498298093527265431906847551321150682554040747994467886024799457662273938271446538052577887784159501949805798695297257247806200628631947989815313740436578920290867531564128958132742644263906379565841780566624303511049236790437339941018680647366937486878614158055468630867838136983790255728553501466520770061676772534070849954394177345473838232734957146580536435501272736154742941561930821283373387757540163905882904815704044585679184284417471196577434774323371837374817396921254500094242479572456117469348935712022121503494716293782185641260942139991414431350641157814272693743575895987438000360422913619008506867381907249439251317945304190743265415962292404573005944331855214841628537213516715209896755664265085420520057796084144642990908779576122033210448573652165029435655721844052060516459323912840543344363117228087610539300608272909105867190494373699243477216119129380291456904076923231765876265025120072104860304666706000279088064071933671518127124940779806974347510324549858257919486870494674586756520700523477558899119685280899684524559311618400561643173377892280252947370461855966088230737974274757540311741568218056074614806200680952924403134181176920978360124799490429709710297851463976396592102922128721166773208406409484504348806792513456912307087423288760651024011100808206721583704862407450505692890985209900938710165099412718979043328369438812664065636076905663891048454028553400856827565991378327431007114445418656259895764511686688991701892171720816846026659472720839165203355403042599644007890228794112623712342454121372764388570139233173261108478846531404646817320344183528231972172657523956430920825419558933982144433793779229387853226750042638385768190863961320915100670593804885183786268699269483895475065570634418635872116620992406138956272652638401668973220623024062687834019191584457950247454486802595399515034241063674211425785027045180063002914602212256854739857272050477322607257940748440144139584585281316076583353759736210585883704758112169417510707020028467421155581376671627120854597782832144156201039455981806231446316755502719525331351823128128369297314164558819380679460520965930912340646885604049287082907697284930163821642819143570086837278737031802110177856562175169583718414981951349008008396940237881058450777636554087826517397738548799572433091211123493594224633422055976059685856468473097415225892131004505490575035509479335235765295583612651108844676062035326127711874697011123103818915424842910731291373842388928251968691097934881450097047048648969757918914430048924039070669799894311712471526730183141176843964219579595169541129024196875064525185722713453573486332001531908278973312197408528381569912681036845023471830785812259066862536719019320933786219814855682146466850882705069570188388903259330113063867642561271058180738479361913870058480318028108211665122029167737469484567017853975074940985948562851725092240033347458552563925657251914183583321930259286971733729455106708391697227032321960042634653805305780866989171312486914273645373755655381839408049748854680703507615188850249783097671153890909179668718121459671404740063048057740284730152392961328082620636650263246765007113353423837574707924231523994606558013137799967160343135593711960041341971304524577839177743241809882745046637893352585470758200406411641868480785315346796764918711226825208145288429717118615570069097458862984554821780115312854245730145307040023291190084543635821650767246466386194692133422352462653488924457722329190856158792072076802365480093030980403001464445074479135638972810879309605133623874972499687796123902438302729835342166586714363332572626361124475776327620018554098669386754378176106240905366608997142170334009654581969004374669625533279566461919753865345365396485697168660537367157796028123232589336308623201718688441347589507465185067350995268894998650108704524719666976968891872621107031845546089260875973055688766773010456088187192688670395947409973023783618844906237366909496706773864296102450447945109970301681368545814821720112441482692723362438878129767279838458216612382637929714080670271768842650329776487334500586084482490142838035386172454264710609721296482874168225115079365304259523182916355511866030910299664132045911828465815993660043282258148545235691509103450044219539338239404067738572595045702239142073240421901210679834196357419506342275767187025260274347868363226231146671233061758358902865615283419765551495304780701716157331377827576188552879305038145496668799258188160267301191515223779503624000096060631197729619334704231236813204614476413875350793851923802535464969092585892603873176271666920996966640878219742325849659109840270468193796399803445474989208127570545441475924611453064503379616600400948582436619354464061611590427959234297549220633812203748007932664708081404738741857940571635935420429276365194643444611801897415515575201250777127626757648466027881265563678897263669094880210468031010091010363492545860224177158122933827873239733384208158759975629518670270324260151787491759578561239002049039232888532764810625790838306952181540285690110856768462716520286674794165904125279759465243128327781269340157925886786736607708319433098933451478589115063431885340036114304496318635527470078440981995213128037099315402371559009249457813711713648371618542969545491422164682806620829176723178722919406379601246936528000265620749504061557507282500125319200459840344625191925071725271482866011843973344688075263356021673988671585578656147751733433675038709718648366207348828171749200485689676380500722267033249703243576937963824277861958893863570928090880857130471751200497985080208721905777130089633377802270068017084652856502025414252626505823804989407809118778334251311011192717110278630626634199561180665893621432542015952214713537631907917399728384742843133924073339490528615838140610789388756093674715921689559083336318290219886119989713529124222560771445093643667809376694250109666986765814475351038709438252600773636681007126904421651391895618757273327105819447673492549953592426771099338936385185664371764797161470115835344954381053878561737757950192602822594903840078909533680280666862025834091679215499436431617115100568987778543796844178508100234506508190531053011369192492672386326222183287097820352716867869643404969370672683815628339236199617362860253867319682891363918446762322796440578022709552501410308087769643512113295139574108410862776816955749495798258783799911928743504310822271599393211986825036885369760088795477713523993723895473029085228900303280200813580702685095872516917963298239611388913419633016227628016754661862470246816151674211701679576591230777360973013819178815159376339329949205814085461497608893699718894622897456541957830469876252293433234730637489430356858744567174330596142341930127133613825638498806301557524007480114282969832410427831430861892819040581869881312214457822646610987471222984864545661307306546734329401782794418955068787785449581367483476146059797001067869066731320540370910074584673823245471464312509583199852155621504357960618441972894387893640342718543817876912669005079233613294386665109332446009604040160926546546584360546780984309134578448433585241817961880862325233122096477575508086087643703599701490380085554842677191460968590785505031675143722436724558753707888156048584524152730627826660256706819952091177564944496940929940365644061301967436825843978333053162620942577152530310263424240269917235051979151002804001705962721735902626584376633031533154257682755325675052801780605979035430577076418086979657401017623562771239239091691199744270807240543123312818143256556261053778794196373340604687622787256009094020361169809435672361218935603244698738285560151996359476672715145757292043200010108964502024595575859946948672828231532804104821324316370871109727583821632941798690202381951541658328930481122738669230594570514476599462065002025832256853486002721306108446071510083773101217932719898971491047529085668695166678098347665359280009721415587952839219130040752765659856798690649238591406051185566769763954176291879193286110621526229611025809616194741532779493189170394346090456909846796532728316946838639961768224724833621811175692683936320704442425306470227301311388553003718162194688704624699985589325417279760369962613495220380032091836117703342325538881604009485804804552628838988297110456401584810742276701744054486044155328063267278773101592609898384885119069427539976575814161682826861469142977662157128850873590638371288115924727040450632558598716758992649165900417038134242037209680088601362165257235519669169127809620985970479101430838200129199376642643954603031271388078614204486458262806874476976879989394080278417171648089905146867183808196268209471489822406242963224625133455522597456108355538573028712319466917712446922484194850470086576173659811825432371930637928240934344781277293920427253566588366737935715580675059651248989920183517335099250859120651139800760944385155964544312956568301943227841827570396279751543435521599693920776207496054330496108335775560299376245243664940479073931228592530824664789209512534292026269777958858201159499093215261482477747128162107246730182886320286689868583351649260457367538435685705596337899007409758217574619723121329464708891506473006718514926712073408583751231567159614745140236892992473903816887916185260451777348399718081872827367333974476816479985669200271871108453178885308170757443123787715890057921402102824434781529166051048125053972134740962445190624875265809237509053507568591684689727194615989689323831974318065064868052310804330691945328025812229767633419383148534666237243828910649405844535833028907532878723382815545189571266272618481230049670194006004259363974983586261167328575152639619780316741446499246803257020968077451371625968628245350138820394732531322519762100992724131371879113297603500746295277591788409025065105233216677740771403606618133597342941372112114822609178754825165472292342096644495390492196529248038983697850106288100650590486021996639314628443395805409873967403091481769427177508431488150663604996929129090121724820954620620949415420968756566232060488247385883079795301583911190699008074669198518769331417945307953671435816641637090618267925326093076991333405578083255903770894552198998907318575734291981941014363075200620974398043996090617712362636035845136214535425810837744322977145480253931393588725299693021863617252161321527775511432604679369923435944439169110239685895626717199917712172159687080082605343830675553871476259406518301496770498383986421577934418617619386180418661031405957654824930722993240964492332058117377749792299356038365889287922636426435280697381636435637899088035917399460028251126847945073076595610078123324777890735579924305387431914429256952822687473926515722794712350321025093416120874137200860488902038699569251090859727810685463261556007406320427268497303921909167714804959123794965288415886514329349310450867489066498909578395404920762361142268327923749674713234751817550414571345842373652738482964395176520196161299905865907977280816254964512274597514008130320467219777005068354800274630291231493705244553467366617730069866453275594629434604564213335487034754010136555429388180684622035599153388777529030985742076992014875079071221178345129243147530012943385382170795983801454803573150374763885213086037579536575633458677922285476601347705573539323546059045515008735485751929258111257772058011417309563146903585412016237409334435203546197609133003446627498668744017464285041449649257161226983521921288349367348691395167653858521599824710778746000118665677132436273201799238592509446990569387964685957568561598634510118955542428754551128937408087332332458858843270423602939639927478528180532722700246095269361922669671761177055098008694222376773656196681235857545950104618214076217024279949741695891959820673227920276850031541126138943191836846575780307882051728717656792018888644006482198585953226389271252475159906159521454140188993512863746137500212173179191864539968373234980576994196652294402047708700664854274465625646386935515316955112742234258629357451402947872236255972527540756554745664180718140150650444694822976585439638775725539066748417211942824880280010772257758793623246278717890798432935507144791708045458382803737712396305098432398276488288635873114084397921490098116221913690489706207412598554806191585313023336605675069147217210165421728504158912767877774992397347359251015734227120215930604460041044571763786857039307756915195976362026086931130715247315997212063737211658082023018333823469628458942526836345703998435107127535541428664829628324852695003873953721411001470508210157139439473955340739550904163621730353264700955720096564685849682919738719141005745403636506908853527350248150671889600306061557300661695234926327280862864627092084518701542042020945614631763921217403204250042360466490366035208777189250281690293952141768396210552393846393276578373739315484209227000090519129618900658155534863295349469313774895391207521602850586593118412971376139283517092059881260560339803825820425588540922090258667368716878129323620924804287077242488652379759575243728889787005207497934976798608168505025255856441831555899896209051458119298634132736816173687343314616266103499417202195771597694643756082931276873842066574442793128568511163206824917120423197386518277094826950874228482368411655310241848282470233204176439079489644101683250174995002688776315862397182106443011008608998355988751190149701920865350267285217932518054795144483547410476769737497903768812600516174183193763783112115517702843856856877536481479502974516542244516381420909294735911421796599530946355518284246369420635632319048648075626672399616259130568406337241491793534989898544965317535015974212700442659281202790499025853313849131840924330847543333692842726622371973103143613455087816863704161935964038519256657477250563330807590295880716201177485481946867718605431725005787506483425686976258160599360802137944754723722907473966352369297583594365221652755701355478373226829848199759761153538514238436718222588289344115910003415966435675594234957647457403596862532625322816550627572924698219022233252272778962297134083437667048056744065696485883533060777780154063963718565313149787581301467879501211983657637049275515344906014687236273137940442838588642937637853034201152250881853433218328881282087255206093743710824565943040598184775945607005473708793132182019662372321007518767442754861758968423155725100062340931434132347031680930204339254223717899321720934392502548696468242116109755510658896519646471464862893550213393581584293292470330624014247995188240694662860831389848552943628032644929303514536548919437598386501930873402465226218202777404410439639046514287063913284700781433953430619784187171384331684258990147783257192993113043414526837362386363768308496031985907194335867735316126921451313276222094743432232941234447819010016565876698052035674567524544711015616450347929624379259057961872135954203943305207131914166581317782717834580492913927619080388745272108106708044632775260620179793668868233357529363049965468394681700796361797101763276007346515626406748848746811961274766891273182816598839290399866232824821488112491454285517063321445375101753516305168763045792988319784662483333242048209796893730336603648041843599267108083183768678621843854077053262248732801746466510747215014964154545636771917709987309837932909552030904517793305869818016565174119058701098923767841782217442595416942497298562419210653024614693361585964025546747724896360412063483205683770924390957237760418680596882006413211939782496551832880777300849055261959603848957292396192000362308394370219975748772662762368844092021848419153565670086704942783688550102012624358852716382713962868833133714632110765783315194448216564246274982664229988476437938557881702160993154048383268928476023557316177617663050536334424092306291929749441855399506662950864359524067169949861940208754692780720733986710755947406351208319518190006785809035970370478762305646994598747721441764775893921746499926381439958853719318150414443744848687715278969671122368093038603640153368709327136109087027773869870258507565540376398321881892185934970178183552634943798124544585551148895885824772486692536886977826959673616229085024472715680536913102820657316845046831068120709188865790556719572046427050720331848085429151922071867649179867882443987706304484962139935602961241195263525741116679557781270835126313212349562395450874810072883533257915615587195262335015663818513765270603527208050648765633689867331858498543401547964437505067957830409399679318882623606786799591954562919140185125879937732925211536644561381332262592600769013703941670644476227219911510037265049606525883579327185857419443273986783747640718124461641260427704342305518853431241382787470954875731692535113962477296097851572484247756689789149033438846652874995321922083837706697229438851472256321375971451129455100107283284360411158616695183201011507687110754388200530140644059567940426142388402442565810739353014326820303837091895814899590627386857685823830409731538395260092090222009574007377311050540481733628945958828244410784045683263470772399059300129946257761368669810690296791996916741008715184751052719781816976275521775577777053087142867391157124190980145537493927824397028606176846771454789343832390343124484986902650436529610208951521987826605154896218993767401167301103962434374683239926794507751509468430483942571758396352863460888258002502625496692761034812522395963356313716383172829323510760533099506084767666215057008428457989022446406854386506754942969853513323519278444708282182939018472862332516201283613304417104567173750706618705782060211292196283370991052441470800094870041305458517103909955782955482308351604862284667963826553376361949072712937879150230201081257432487347174357921381986883512746075991145064283742166339429913936465661030425463212091174101842936930080094164769850787084899938911070532673975659524388766797355760928701899374506013553510241217030846346092082967946782171682453438820448615316908762804745180073703265575552946404250339286998012137054717563449262225472661080802470567208734440388166990552852703533054811179348564114856451295619128599582388023919188585950679593229584552084039784526171952261361596082815142994453296218196476948217415381591487433882691406992259003992972410774954536462554371267752590526955363615830443910017612931124748446456044130188728480259307162649652795610812390639868916957245931957518615953338262068080300596622494481617705915897999745048919948682369115203103500917890042311751311748124317476719471480186238153155529273043108416112928486079800908849367249089660898931871751516524820069098601447158827916499686918011972601718296368171286442037521755707451053192154403898036154948182582325764440717597540672983945706322007660970148016774309384671617505233572680903367765885522918873236272543657184915316939849849221293099491326784813807534164305035814900107684650509545446893046923989872169179930240354893658394337977033608185614249152875048981651378913744844193288206709962608577307590912177188985173336902165939869952239557290616173173557088380017952261341922446034999647319320809510578102025045292406838258767123482143515241554443650386229528206018920377894126589941468585700114859971981525054467893469417942486145972413357239339335089171640292671110816075308485652157652796784087938681207204169806188773934661611229370571822651634319150143375647044068232953055033692346171860836665805851583247908123475244922573940545279735170955156840641836947626823777244108046766395674081366698636952485053883685658238609268931072519416715736013739985114747282815041124323032529803961943886053603971860921539971457478983942248052348603709091157287341659968384171542325744851847350452381719093306581629542134052992332212042512303308842031445502484964756777012673876996842325941444858537873395639614668245739434236689105111202157757806815932293002342011156713677941151191033508585324873078688442454210691420869853138452452908893258617953500752674302546448932816800935555232025384007352207218954611500789377704155549799613588262503848350580048170505328739820904966450183740891064580417982854271439640526464681021388063273651765192476532540477062611613350088086774848987404783715493040247419688390744392588911473435064969613240616028814210913748147859171994567819448586894858048780052451766275937969056365227486998946840705864386169359266421477327786369772274012740251121015926267113899124591723434922702139431857684559157214050166825014905152528991784399479992308244856775607339117226193347564354443384791467194909164707487237464072928730665032335367389418493366135677401067461540909880461653467448128441237543414483188559914362560310445352948949608217373581650999868550883977636583650440163148956567361208860199861269604364545323676129337752422042384520350765581978037331254482260381297328079240867979988190725016903744428837017902811360393645604358678308855597392516701861364354332004462518090036141766076998297290291093589240884096763279931698157191468852829994748584485331724216715869738779683807264938690240011549114297320087029485994190868934981530915326145534283624208279761885604427451072771857091143210342102388181397379849175244637207331808269457722612837916933019535888896508692594646801695225653938169269252693859437567976110829189763819550086375904251272838401104175899159305722217976982308897738134062568049978425903763552065894319941430483982867857591852638369469993464148198603542458749608701393363503956706764162963241526458721172331199222686454253915293091075280785361082625685065083935080780521122482576901616141224992509905422733500422651434176872511595396412854937706116332423476201503258514129954920177393342893447956724005648019949084558636404495493017182138298910245511022633876724847634740214878837650552128965847518980626648951756940954722944006686095412992050031355945262991690334770756573886201551683875524693685085118657992825338592887414724946919355196305346520922322934174673688161705120007160657795341738393958799160577072567986784048008819218500012914665990342349579169077934648713152968379341586539860918693711010933044687404205617376258607644435640404778976706636481922356267580168497544470109656554408236873479884795965883900153080137979032125712930375470340779676270841465722317354387894599016977119889158396548672310663465578651271652985552101296752311206062840870731581953452300917167253122156201989764217384148203377503308871524629882246782661886613217990350396231810465804489450417825477536702103431498966743450946360396142331888446547500161442565456153993641167735255815046211903515548107249720335051319549581908851143730201005370873509524472319517868538903608405124567464673178246632601191025618666715535135913546401403712080911288513627778836822569833622075535304746959287274882286950256773657403104313364645186446690204327742759275240002283372377578439462351377758726204810453033033491073972790245422664219669774840714569427424526679476367004426664435583868614984660445580672685080567981194428447090298944236372353151290746093480192091662167805562238669139016156975695852523029605141331919666583674357580913091673996764078640767237279056621536791771765736249800630854499766404972422370161969947839114824260906860898830543075966443361614930078941428238352606422713830970740250265814243817381777376811948539404008957509348249139541467038566026139311853737447848744738459149621635800212888454006212606315331585116454783293717097831758251058717220460602788785856132363194511487762135286080141533232301003886288941854919072119727463152170751582249886614424733716779912743431653684586191680649725574615430688091188965907144881882783474168097003080479038757746180316865067362273875633275382977662631662990285914352463527013163268929201149586242490905848888074946198834608849992506936109023116287457558445271690654585172329443099357759972017279911577469039800123431125805784341942816430494174923340593059343047026205045592117313404773452813474159786122242776654655369929546214187659875600293996616112613519356498531058438391160022381291043557801304680953079272193785778769874600181864454748060853587108896511738284756264208962544641129096000346866394334868902379220105331754230341924858843307539827424467322210784843067203748170865212907071359748286733165967773541221862152853087742364575704373639167643249518385375892550976699195680447534612230917295681374779964532657340785498507278630884543472471142182392150888099389963085622651263814333258945277016109341989878158897351064994308735827713867583955410730496161222845592123839750843327375445473954798580278591004211149204326736018623078119495418429742991946470833356525462681592006052090209479226956740332923606474664470794877417327382957084644372862393697040708832578969474793111286706368409332845291699168623736586475242095645285995517059768952262418627326525231392976079204785117095880539023631139997673239433818228416325321267123396176255609505967844271103538715861390160591755693577075895427066063167821879224699753445509724816304642762789387676604854260776622345304767334311955991687791401243706718418068513589653469511081947347048164299218212201171326437551982720278829498306861759916587602958583455014885516011662751371932094897118869603221349464776270417169752108718285339721625656653801670476834696825933893063559177194801961795985652488869126037817503599035209973149253251455084621104407294902210664697240676810349725213064093425585139423582171692092850344446345212639177080306858252914398030128199198510720376014041693310022107515232271320418765222391100477235599872855717249229167678803207530127101138194437679211093799866968727887937000374107123659425006722022443907758697673366164121200126392825829942932909987273106439828705908860685267275493533514205643483835787690015353158114919761370872154420242512265315802883048999216757059850852571045881538727846995942007954647353296095823377366192917246884374500236464622500389280370352776349830698666663800980037431712213497166962814264000634202546858788845800212342434659545658405834251956020721287016138293511715880030253407246559338138492811151247561710719684442437673408658678532301641199826685856351304282108290733078341905986491150229681258924099987501792047709751590268589493374899667607723901308242606165165185134347723688225757751224845970263168458596411541285433818654053098062254991275717163671283522183438908474734435209252166436744103491207246730586325865009249055100122648310712767190047006450418740231869112227609406308865671398244721671027868606780045868813490889157617197259036093214514199011688305601641452755613698251776087459381565668282794503007533562487119442925736366917587899316123236616758370008121817004525895204208277175200867087879667233465752818149660060822104850913083311807974119603574899013334693869698442247390415191689066234198457467069574941368523048783291728079330697781976596644723632570436488195227917183836744971121987061816566335370974782627000780522469118212312141660226923091221316013473439019994611875604977456661629146103787740972366976111922683258076923454001541151935486305427795475907180002809551507930351063665196912009611346119147742604362307053403495997324557572404567604333760105371856641538891661030165274778883887177587799517505487057413372066897708060128976200490066469974125644308336258806839172357577711732980949913447435460602106050996154524357461227785274560525820567504503513476554919002420712047871884069620050614938167322444967387451406790085380818779210939366816065367011132140446856796520244332157767487630836072920680643337089461179022671694328425143687231240407921332986791936276021437277919224563640305813707028796475476163897711770983894335818164539074572708029027210957242399143506692113420162647159102008171866227686522524299092097710146439517327415402731990757171020269832515483436367326650739481024830051079332801657065878234575430622605011256754064100503543042789293942168013375289556594079692182995298131270411831331039337685817741882055342526445651905475803060472739217666896929091427095924659768092063123254513929054885729951620810020866470105882328862433309902166079644413203520022444904202991195309512353019099129934722243223158371585512594386462648065520643906237963834012383457072426625311724459849118403061297630886714526281810639855153486915055264084358693016897480393745554922972300359357278487636488685064916466028338591557057504505924093422889629384738118735348099740133765449413617363819424347168004760724372909819751037150577433262432357540907414090533183396045128622171186133439320545229291359235838704925757777562018015777642719216214991311260851043741474653155819695702456525448723086725454629098387316840980436930259349559868073053417324483957093927709458173989974701906380521600391324009310663506006662562404972551439908874191003031320911792827995440511976041545547234160409008270901281483454503740909541259121292434912722070249860131782307341737643422854613034162474557296353088866528740943843319574424053750426378705170575256990755069223912707428660966595026368879470064479006193714755241435029998475841956460252692393778909673741166144476272831925215765444193530432790238751599831724089761511474247770646699640393315130740902376267509520864276989706738649022075479804253472368422896284942132513807035430684965985506089427435754399707520557973293147187214930998877550185406601658913722901078156601308955565997222472672862888475191449664815471691077805151906222380961967636867413937439780649032612388845124029992838542661332888587319011333353178084041944805098421787824643208658641835746768341973429312628293994591554927207189359368166722923663751870580131906066514433120475130521438583087853612991596145430851671355975135696277150717135555172835255878367275551414875297467607411113514935359188072323047029693202846499562496375839942785122249681332556131736405038481655072282201939243792573505460095856700519703019822647272987602579490607105634893418878005545762560545185829798767818963562355296072412791377572595749203984438245091144672125107660067648218775683201424480448576359536169257784216913672053754586926352182096857813766791672286656856250684708669690872841640793297080544364953186202478751878914696455560971324462498895256268498316390378450189697539683342293461738937118449023430852650912037474768822463002496087581857953355100346526321216977861709850980612472751373703724431382108909331563560599779137592892095613855572048193741974956696472211062132725431681458255637638124808615396043847370613389895482266557928302185697647927271061172129003913124346154802437834383410917179909999200113448033411195321537829950980879322752024326365704404035579120886090227649888622070048209301208129113692603752318463654791903761868951917684275160800950819494195302896364012080144833099192371446060504341930947705228322970640526671882056747349438297273488398693555114638712462801306853709164373396915828217023375129081529761397408829973163049123304264004686139236791404754243580948312613874260994660219647474202980523378686766167701909408807658744306598933082608114163201237486683250788959691553625459021578657296460898618783057396375695528644478428131246820776613367301001668493178245777099316421486787473706002574199053622826655792383113413046721740172600186945833646335953135297873208062478084896439968590632253190932586077835328384626898792710311661250675509308617083841709150001452862924142594195116541741802094847866114003649923299896485375588395145491789431173415085693511955425038677602279088217314977526569883623319687056785982552025697968429678244716578585614170264563161088590245183604346688670273576708622749646933427681833062394665333380188859702444634523470351803952399509717624650495685508528033080231808172608032530612384377274113591947046372883662481670039822651621506524307505903705442239828316468648618454899090209839345421788874818991145975032910550009703688526773550724821691028307145580976377725319960242566418503113508966905407761709024391254823095072560354485978480933846294789461820544467497651949386998886316309337765562746660212696764560868885777924810311158694303011517053223204520648950144502274408998063839192879998061046196381996175905258171688743323302433967430195215099862247244008635040211897072933300706772567374619243138362435701187287271398459555658442726016500285465550209964540446470668422366384270174145004991405992992783332265918761731653686144871716098163710517878585795631035433140177521001076423187187093763012160604449303567670856423488700064174223257462049333900199563145327705390760341276038338247760330923361140871974334617760203724754434092767510022020716949971056691875673070724674058331885460060566976259473105666528782326501047823109034850128798639091233968867046441815674362441942242106557838091812312900076888006910159931651641144635397737855582939354994723855468126646659710812130357785811237116702468265882215173384098562706921255880770742837255098490466385993552669170614488873382835854590185752448661778313863169371346474563973694495380073631741064867716583156151099984199797152670387390598736530870108979204289360210772494444132200992916597963079444117070758655803265454148743334461637684559320058608422889540556051011726840926966695360313440729228296794331132795973947128455118219982057592696944609203987542814035900434729165763939805805349860924662028549139867765980010967060040640242572012767695318973957047252395681593858746291701185565701648059530153646854391961235419966741981879627513981612157253294883481723572379253287940936178112612566728503319639176710454406510798546348087176794067586966045985313330454324421489924862004486137404471685976609953975481624090170920810553967024901183655012350298539913670846109217176121916077860370740171656615778994144147968964028403792337783026634054479906983754608799618862412889055961868758378866430212001579372366594497852876650016771944544904831883395632995712797250363850860439184087734911119769685550960142728186890678766641638272008112045057815116471135657897588634473370663765758246646444127858534904580366909236350644528643206770667266824834385297460718133243010915898689297187417262597004182618640633824250771925367999892810694122214943752078782398499185417284019510878569482984519859356235101534259554572565885625389784842228856719914239274432004438341105017445487579393302122616364313413684264391132215805498390302778582166518260532218301588151306750520610816157682345488973018529095142069765900738960296136636514938016647800711484263140022940756616741187690719380407706307243338375041238716815527680357176407330393974194396602089878792470512134441703490235337855671247031195705643989059726849711589842398812687116424029445708697363407435538279817667995562479320751115690676771321866646381036296049856154006387391407163347229075546484594373056282280761097135538909283076715414206897255462030115959831770025127342891216399007968013158118491432564443434639071373141210571757349465025623942140213428848913146394138085078071634300778772593592771774104627500764455265798699719696331519060955488828065516631134700570214818616461346380975056676563876410440054882879944205891976615841998162009345989802639580220008546025949477988362218414928830317886861702653003983821989322367657330085127189624406226601824980839293216077488667159485868584365174246089302813235953937889168152974342383176395288059977372694155288504450924749233937805817628191153805980552080248201447363217717153809480854733329465605196865328732786666755141297152958599556430785874278781920431942083688145583312815050735602723561836619689175136107682832558376574582503824872323967185551784967775597073665185153939856766200180974032038703332341746359014910816911073853814604038384220699794457763430235965791769869887339300108985471648051631164761692090310306889791077668830948342991958695406824883119181814757885651985506043541615633279667564507145241595437644294103188077168201677316641221426820586881477078745387474824714439322074900506773922194713070162522621632409304394651208792099313485593301857992031920367817326480324011657146643193819384218376068754381291587145628906492928337344964619507021105526089052572912205056537963833666357024621049250688695906897536191132470429702843386772705962754939656694934732545570086294797686426631663394789738939092763132016685928034466100041494632503398428722137385857652741136510681718698936102661823986535971141774951822810153100129602202739147685487450388352478301955729858380157712844664313944521221867824138585679533444898711089195285212991933829370343250343131442676026978179590672721789693189863657787015212732887724703414316082286394326244752196756769825148519309661625787201540658096625414883649575035156390585372638029085088880761747046083855330658150078316565734072927041388215519738929410953647447552704589718484846157791971186211364979516060653744680083946175548484704489991481915224144249535365276074923444424798298684760710609354855007149911113110004790301424631257669728948341171033513186762746898120635850457108653800006151695671397850070443119985332176534646676117343527542547349410397592609140195920041101526443269440635920294908555972753869666011072597802799975860296243744679542496271698526185712235342552775945947397714117884728705225272595041435290157249797775566131583185444426309049061255474164530565076011281102448435927345788980912656444110607027279063359035539645791142090600656407984312759003194229050012205461354317445330010625405960257455256966138146003435134940671648653044778144827027431288817958747430911360505773867457374863641973004197066978303469050735209164019613584152819919489487790599833507447060541125035900119421559555423262398575119828760858202559553350613584408300723137007800349151832667313793510987730882196002591740293641737995723772299376528428864682559177229141921860184912256638188393180000733898500500676727736147575778791835431236230474172133410781246557451175896828642759442459935849620409986714453613777577973853237099393120237894479137654964949103508795481826458333564072329703204768152475427362212298845953010060454156051342359142038587072797684255621822438528672045479526993610091687844420820565462786454675853612691547193942343071411301449510784774902393396808581981721978378554517214018581204077271836112761820975246808403234872028804817838766001680956698382034941753100564562259216118165904498436815216725038320858904584141086603704279055042002677099099818524859464546814383024541454646710585164051798830105133855928973144889013324588995144022624633289994401301017994436278977773741136246763799971137303733497444598203146473977013175883057882970386839686114863732236660017503785272495925616983365113618953382166489759594786255569864283177914338187361233429965767710189634839492611311843161218939784332700956824767014971537736374516873745423065311131209048701231266330384162693813150598602355579755362718986398621978802022935745375093786058820755685510770889926671181009747057992638138909916867950710957450453704395795683289954445667613476731114715791375082383469968604792111045877593463095641586778293572693452207779007344001072906761419590028719236203487984101135279765920032752550986841185497265231642127057271958430756134848811455717801500880134409908764602640339475523670907077265575196932900465332631802115680161978404970296282038249041319589432477506381740652592623158348026969870174817656326646629718606888388872932625650569658075174497174460858822475332576592803266685201605339573196116244539731954859626161195728707013501726056121716855113502142924509026521492259916091834969270830873535528193617435500948858788153788296403854954808410005207325608407205863134786600935156696339242093402188387969892101026046614908635890237874869165776327647300938343393333688821419973544260823398251265752755697433105571657368400380877807985443806263322842534157507620692668032454775522359926235282871616726919337755635169012358371974173279886057176077322756286860779162452520972297207820399718113588465057258690896207184870881136516830765823309851345693114580935722368319059909581216001399781439629468769997920899132245069481564845599881076885793229769052927865007849022039781341469995956635394199776236185697774440741636548893927844958312401889634134944577432031413112051316912867425505107594541651728884163666059768243229910493023887083739997566790925970298715275153389385401997840814337020019936692880576002325066879220342005073909325867782789971701631550743331889694319062878741687991704722654315949310787900416286230431323682531504093751486038166538017380972637533999102317623083720112349441402973320287749759697751244425537167061707744297377917403655194427402456035058031518501646231340284026587127767032249468789967554681435199270326746542209543149530422796934913877753229960388210153474636620382952090022003329701417447157538554868609190639447082817470758735035980698793337043636982104931508467122376358539549379570675655445895806726231587596831528630627704817550504736052620947890057430139635733283144084779741108034180732348995565465916983072701396940407994254783534413287148523801077233305632981471132471717290389412787480027149207714300428352253759758627288867656630318936010713826684648579888478388179832547156920124736842568657632604035999230499114346467918002520717598853745585720365878580921748625557393504896450687008408060827429729024070449996701308457771809708449072470904601967238928341977974920900122913859898548666665562601606752166986114960557643153059228239046313075110369796542057409045532911701898518600930052727716272102362913932567233084602578071188900565391374625094336648278607679019881038918116855849224398858073212918379323832626327931367354191488441916413007574000462881337316861799036645066191629866281665334737006559644531555010979936450529205069937550061428873057170031055619638697369520892183548543069551357849189442467556668604478433989475477045471969401879522122776280768725794241082856873450592988663846336068342859028624390392924340611772275883277936909523954588727409765603781873096828192936113007383798257767520963992296961120944230092463041195519535701462236968398547824388899574344011024404240772367767420685070042152895821704736019297582419448771200341678763196805613426939210033417528158123781525313125142654627164653811567256441107934871193731645265785574114473778891675903186730524774246375519297327942889367075433591805090460026613376704610381892722394616253265103779318212447538551858120576535500262534289379290031372158655709424041516500605290362707159220627976744884219565863450426684110299898716852494559755330193725090126452058431875369111031648007286022436033373817415470890928223275472285104084311639030392975938779688973682114807483129760774546653794195347949533083559224739976852714547097560955214800911871623082466287793713584291488582287864944288048353952130603813468009400281348660975489217274876233068977987396585718956312533515951305786789530372042424921598168549876392090103741425281546867332809233143066217867203278028240159449607310529376460835293286579789598573473515988597496417523357483456754527186888520971647840470061536002539568830432757402260199912923204555758700369016937134459742602221554143595954870226392067732246576375146227259944855029312815839535100621418530459076971919323142996579852371550242326099051579634815642418361117907272668814692709977750597434439472822417446726906911915186082898344144679700283694136969847624962301578072642715124620377983855255268215931033260632021860091907450674870407042463736478686735563867733608296651268373785743537508095636623020377902576891999694648366216323090390403832887156881095218824133679692973972940357425242206319620751181682676488143870357801786224942150270910552983674899417562532697231214346793828506198220584610641424016564158613275886618828850434087526816733848044851679177832168343350363147115184807073490991238236274861465011896750875752666723226171585821262329363440769265659952802656579354957825384412966875413310614831499173909272489681065441757018031543097403511064536597798213989914356684806612265280292240348074718755288950993417475312864474911696436372789260310037010778384484963229587831927917341491773139943818235874124366857002140367129383896669402462039715308762753027314606636383014157206056452249494297009760252945329111936376764356455579805479470896022900727992841255905292798978894505854715829615551667101038549004721228695824272289711393606268869576891559362833465340996131445667384579268786544660443330522160026284977981732078572831354282095707136660140750533867262037800675411729169592022459750045203555182683534174966857395910990723188721957297699258484222567699355707033159525356490730535902671265272615936685945928299786876027855448120677086777105098337996972475915452461354209487228687867796676840918404915552446646243349044325045924417628443443948141162785639960294684967016153339227235421739627068384614774632153517986170204197845947290829915806989664499458833454956878205323394832403355832315830299621735724656380207673046420388988460570611834154200104436658260963376507328660804543256718124715662578719116393354927617775057407273890869334183258328128919730959942286031202344335228402431813417002223858265168526293206838944711440508397057892704509098087483867528379030794318319477305185282384911290078852687279248070571699971919074131594539925795680819319446423345537084028148252819602526115105936309142543323301298189307891290262144253794504187710515831171947524814749366500884132824038772087341869171125645786765772083111695597889836838242068872591704386609494546692450215193036091139805839595133118947831224181098926178895983687096104403399562525712816660924352953994623950844403100186272507757028285311298686764609769608161043539245117727732048172509904587467076595369652216966912857413622628142349553845391881585044397841642852151188790354677343437383733758870062427961021877778494449484483557299748989959599961510482129191553797719712106595680242604556964470891689764009241564889158527907104649486743904047155244531620029460691682321066983624409518972974505959895022773028581597618553266253107958982750540102723767531273249340588519372117491857769479564309432464262847617047634453989626327186176661941414141250828206789055316462966958644398717808931898718949873952539988780955114838517353274616638638707410220157484817284789263806458627855620965123468063027742353343841333978226121843068478948029412958157842683047680717372667769696070104770090471118453575010911595979407465259314956878711690593865675173443217429060992580437861797455597699107093088072526466780475750147022220202473346588855692552326852915031485487658052862748150342540461420600487045154227628566261479653216859099073567021087754179467314774981071871829788880230205894866225747270291872318467376807799336498098974630745470600862631826886776706484070417110203880031670490445993947429663626417619007174532796981021029670479876970993151250618099519844072728421315252386764731889625327988894413696731897942236615686059249694929217840027819284363382525705816319093580728835724102745907598669460364841881874973774246883974368891754831910446342984881743865032648889227224367376662486758734500230627472867492405070572550231802697015547528782027817718064815444317292578412914367550368796183176296893435533042248504868673704513098421837783634004246409693670282230703868824404804378231455671086677603038450393138490078814239820859209392418605504314026508468955703954731571795706750326724848496118392446229443646350638447438584712389446437546113775950512166572139671811754553990627115810483289135362551418387251379832532336477731897495961540057593032446085754741593588108655188347331697363110837157617407991887334858285484006422804117542990084658239607262475351795215511924945045627949329793573629292585387616116006037337853240244291574750958604541197026725111838743400456584465275264510403054178356818492128142434933490623308447284799329321701538049024860618255190529675275254538861135414193938075031501074058819341509215138574970883911005491426765021764882155365139816481990074062359338148806326198899140089220181359531398200100609515832257889756469512980934891983988804784168526510121359362419258618935354476319127133910264837975173930034269670729154226265624304950201083628324397417317538690171862545682772622014741160733008593316652904310497603095747955920919864959254238189749900399904474118573475497742126262456328973103244937015103538190403821872351197516605522878506807834309476556279021559049683441650597530637695014289865315082140582442265035992120370287583441854713912633516930248015933942601892758378235600426267933016363928876788748892862554770851886298460658500765972504568386167397517982463767170786725030470842158452627420489296631586300059657720176221071692953443563999659608423422572957999182672016104809262953803749826119632759705233454924874923611540814811083922401212290687195205261329037352678312397607371339008875799285140578344604118626411081328631942117064007868598585446485172539801704423281598870194032436956180188946639406369138358394082287386355818495938384507052016628595918635242405079206016408469633266834296743587849339305399624248015697815985966306197224497816562324156758804626916808448110703033141378191527081271812041731202194967776216278375079940131775438620322256866155667611560803084218942585361608607962962699727523643282623459507117861687413843565165736620945352653460477500552292654335471356541544431966476393852173271451553551092630619010196584386440952964747487889866862906974444397153596552867948637348331928481580106486677086565023408925011012068925259066579676520290838609357541858918974917164851396781425125789943556490353369442641919836754866450431190936612191603594103292100900254230370781044369399607739565322160524212211668507914395480557590703385364765321242092081021438071507034118579138536686110535369773953389684117088949127384527854840735121859566697807072261074203614953989000055855216314676948894009933590762215424732369519768884494205169842004168443617728327670526845022720197987281349449029073799111127943585484595280145457528291192138725519793069506938169158631702490270064569504364502857031871888224163700960866359469512955028604785634558233570673058771387038143949173518847286381052372257765255586049283247670330124829890197789981611252126667751874089431714757931469379096228318501474583083179324790326974748145367591308224088908865533942045849468856053162420332375309743903893960268523840846489349484087792452022101255556101476620469108105995517422293457943571521096340965514341492503552549526584639547630702908439587788559587969277823489522075136263256189754347892659897607899551157882575507187039154547484297679453202687172379020448520454755147927475860926303131169931650525841256286677794736439496826337900691317909475334814687381693001426237921393560097878202204509164713063811787828908043561480911923747341314014350887998277938872752123056455106306424730852707732844306967331434341419058072971844494218869861772660754498167615565118853192730116558741020103212078029029872089152759445734688684425414148794443528568916245459032084057535667027177491580912572641077147181086269803876218808056582038625349914580390944970295729204707240666156775153049102092847170224196775227146807293978405652191351202437074216046209512432391294276928010366564731520597637058209137773347454314413215048727911556498546492570179137551932054956700823792973065101789305302703240445483880014265336630307609873297658641873162825470164466789773775348513122716082344793992138880474854449859862312805711219083247404188860320593082554545951720239962370586076306802530543433975944504279135628681955035493131573230194350881746326530305932073273768107227222442749881248991622894326401234150144071164174769999716449970896286781933198129290000229814154664231173640450859729766615069580024383058127540435568987530194207915689023441517088808397964651790932819231028390110050017499913814453392451639969039786466915127869670418823352975207001755791864384487290120395288254265757234759270306245074004993611373333796341841186545998510643049984937078471667916885580418898895535408917327843199305642540031828786774802010298931351052844861494774939249313595906721010360247822001120824135524994507888323999026934340506304605821662264416771732750679694886102168699222355264134040860829803685800493319632209250713473093046044898888899020062038580954798576721655040036308829096756480705330098962887401022196799246759254133129873481451087951497134487330647440697557316192170511737222317464761333297088419063506986381390439867620098813443210729214641709152700024746490012906240055773714839179057083588773511749841395269522019998917015150025125964946027063121277559239663205348610672762408177342570716337282326793019581292857891738920354808171584230360878209738950620559605178289384456891293253701810573769121551045123617801897298153980706867600774515691746630850330005579401941912165102780542931910414978979364350535353757718654604855644444639656422625869060578442052085960340502425230018780992345581206366378126666065225350997178150511560602516669538316417530810054584124345543030612047973617498228866073590779758132669512290716653859400233574596712759584895649994765965126147757953491686275866384222625878372189801159691226035254616504959980457511461949585061140112484842554839960925299113757631290516517891808858856694306006799162330013148664723671732274326408043657603069297854031864565235276773145991991660597966985425274461418131888010856131932162473436049615914764469951066409075413336834756576908246047595934380369223582873641364183870741594297828663853402504621113847973146913456612736870396943399241504681435565860548338055417583084307402842334428301768982480662414616493208963220710172684725554569709937260681044441296590694073153670369871081479080141770172361451845742987320166100628440199293463511486971059832272090110123471210492970225142773800370782695154400052245762415882807671335380713410582942976595134355606538600640982113200874134384745465904637349851625247411700276841936046643604354641350053674641460139924338374907739234936221182740030768591363236564369488895400162413889761848534830579536853299349163988110975394905431305465134906361057685871408990440457806005642437972550356167546254317663561352366168879702127395914175098398760193742442104081518744700253597063221331737653252822470877273586963055558949977412310874637558838806471471157482694432783358133271587016137720018077780434962430277440046982444995770480885852617086812011371426097341164408170164669727869300858805040636514538626667271597711104064278655634338369775228966303609553385195263219383745329497441215856348779159932283863341979245429875330543800460923724841312951658791831460090943140870579198811644080451958404056086592125009746776739522335102275514716235428374001734376368566036114892187831416328219504275921578270717298070323389193106633951513794271569525131361297563613334198648812863874203314267448312907957850296232395032064912630491001215727929401528712098470623151489365350865255223376409703426686019490101380711627926928460481583869881533659914750529907216289787381247154164752049662187677461683014205945959847170565774292825591250074659657011287656670205690874007737465850003606335931237028359518343703400374047046669942551464913979818692468694502850049457628235519154872239162507435951609197398853233237798481911168773655260234127234213493796208973726240185491148287456309885204334557200010637224146767068174165172191394922013649088054663062291277927934256437842956782928706496125252642684642511194643354604589275401602892138594521112431468053906887781135685724791659190014990955333727685704275385576560420260453594395353143900898033576740729166920423325139404781140814297202729662500073645571101159065877695865201032547592751250405042171513648889197061621601202639609311705542341148357998844084980111154803922660338243277257657452476131073961190582944103867422294310131886352770460118666902171737281131229034664235419369598978016581850037217237846589534457776007318682372688230596178611369703041562705712184688183992704695587125594002921435759747682058454919086326966143502137229986765827358828137594828639374747191168460853617100770717372876343570840703217374035259503828621099496084400459324515877036860426085447869960611115843841396614310393057846381905988867935114216666094962395553510884401911937064531945702167786894726970317291019650318240772330611419184091175210810925442935967841155102987665676194861021299489938828585106628853906740687403431756345921781059301302655135064298846922708042890031910310804711382117569571209471618400506207496463113354284345186896674970608954440435274429220180524902520281161187065842117004941606412478890195140933646248663291525751451834700730409112795094067898813497817103622704222579591281632010668979751415322180657055132363987245772319707413425849802031360080166046838150801626170638163794799758720083220221491784522382217609719058415192991718124745861751090447941411133757213541807691029571986991869802916366841342378911929730740113332469765671765723166269094890556690410011828638689753238460863660247273168125617562384008051984869715039555470375066132108334938395438482165218267208658545516905276755050171025248980261477139762356260396425130728750590294480328682079922952592973627453649953342044306928222373253189507985071427469214780751820472360178877182514757631334764195778152360730856201069637125644997944231157135615058635105249239108293536646980924655441046825996166601266784767102540922257551146103237333853371867511101502057346021640159098861211041634411885805289080870255098457033921904490648831052880884176436329462949591360476327364245698453566317352902613373922723311872600003288219512361129556778870216262278830947564142943593219655838909025202243026136964308277914740996113695910494305870464368130248463955034034203215942608828643286295358408525389883915158650131914007880497503986515457106064600689971420052475819971832151827393407494416559927418534787488104580371610616141259796112512086317588644912377509645254011183814202312490013397170954784676635361753961369381158395496500947844076974967991041625796847484352827139512719456743008571582676256166918992343428530246662849811985296515886497673971250601247122980719487615156923731890985155694174707936353388056226701516607892099933826744333836304869624932372328530687720042364378439876545505344074392605711003217439803587519158071223169955143424917740771707939638434649810559484294092067682715391824240572218658965496733966402149556910400750816265109973491525623016882864994786810746902763007826646580034020757942081229703506588158900977838292484050081140281313374230957464220305208172660439629711075757012797237436316452429366849650853248112022450019106636219620508713934763667420187882689080329819993621356635049540811408179432320145016958111500109369206369782862432248705163334566718823556571514831579418036641379299706046062501005297975513187709215073113103835615134737850004642254799404537942832577252901796332809156659894185995331201992952393945888334781172841506699013167518932149511657412391088605942288623358894569567923342522687323440252858005935805649084216400224010687248404058811777046895019189153063746557154256630486840541191453008380722310771119864615041892709508883294654188363407373440916477450949053678713280841900372949454755733956741313758114545505815995645776088865969889767137433424392457623289336442649087730564730570449062024312144741705848401068866735772263296508231947319249567809993391691542596248376292644794527432357087707534135110970415732801769139414223718984148724689683363314742123863246932045373821409987610211664294812936485349709748747844432441738874245979056312193457557163706176204096732837418578525342403180350179142018054819898908018681574946209640722952962082615864793950286695526662800045335089053612574508090374892489674550000896673739485887938904165337014922176307223304277359767817176284744521676418253005943267390188438894839482376305352020737410636969000518404502056311775124434434401680237573853363429376811452955858158361580975198367869548438151471111863075283779580111942146864519744778694110730148446926135078220501130810414758502725202328492429085569768090610214331101195164997490604885822500581300239281100341539315708794861838487431188719486388962421153789211748756795595584873713218415851320468677170952475695093653672509003439038691994484714274374221964823444246285727759849345234407469813361115034179707437397511690086844505607542548603136606736908098810315133100904552389837944771355610117782561456146849485191741278948488716011270811670124997865329778813844125643742710626606008338717108152044700724433352346113722708315550958355861866334800785684623002751310904422738151652206392180097427804500372274610018600219274181445647512989253229467151888847157179536613526143872370610844749530676209559713693362294437701223071990472167600870234173771829743733906334597771268379000839430010135984463736605475735761710779612358870162489279149386600488670494454896407041853617867849024369310715425101201964527145945094316302554597078103587376591372927326374738899060257853459357909281802443219174766247505232387395716899761460370142495908475549200777185855259265873252636713111858462264015643513582621881205717664772058091409119124656517379091333220785322008365824314641576025681831320438036859115134736038989484411767973386045352211051906248024542824224242497060247928712963519994645269631333499992201648889177922132454174944060587135324883848979208189172911706589724696412963501998577279248395842710596714781714406128095830796839949210303468181496020769048878368358913172493200311138512999212132967779268654987576592679579654242069787556227844436671068508645061318694828923448327319229530211979713523341827272063995022677445702583186966335530984100870088081758568603506664343100274788277129709642472463228663066245875027312125964362564898069349738132115530742226399146746450147647525918975589142705173303796178320260908580206577565240400763855368399295535210415635440834354246694299369195826918665607000345715678175027830511686477991430802535449275082013747890633152930311851738041451377644321265664119311496509170511534852356861414094433373982390087673557628318359041362024379349040071335112651400738728513327384746672311393272435580920002813736781334694982566233695645847667315048130770866489057797443737193784919383348669779956645027459349519205673458500942851607397803609231426152948443543056918340607875404970941296741376408042080676972849157071969144894127419579411999242617791477255327421170053684885741664128297626074675628209998309778050865209908514417314485915419812087718260946966560608698521776084938153918344002155383441341834568941315722416909632118836702667524148211343001594292328861075796625267218833150753400087362956440427914755121173805513011863120256164089954341697426300893695089709977714663199396532451102527973851308843412323706802827318004594969438073439816966493796788586548752277712480589289385646726293779581372486293067768528897005318915973235895773524558862812634851053266572130333889110056765184268306038992092467514748311450451795684593196671473163370736065238918704546545470090173959413527509435199383872623641481283297248055358501850912423491578403816710547028353951945319609054000981241352385781155956381790746757739833136255921843866572473263642728972984570250772140228931891179726911934812325557125155595805033464765687183116887649358437796120475795605999340462873628948482835464929562244797539745538626256683497865507607707613515707393551820472801112975498734627594511237554188598571635566677354404211473117897527370940299638785127673388237193169028376006786540601697804303102587814824975760017046983419589316325854820184755890556360088263732881945453376500202765296600898416431133247953025349638259535063027209905384240774363222897011242929932877469726747111219147861682560604835451165951134980405876396826559385010390679570577552143325218819807649766211811700363871891910158138193287077734461682455033500086629321819641282078494067369991002456407927259822168713705337829029341822621946320370609899272763109497341265841679951209851599005762637225803796590137109440230134433464191168391551609272139808617200214637460138241515114252151994583975784458296178069918234230522859776905223166522024588415045678372071344121909848515407408818555734702212186166619072026197886254401767455339098143087002430100111351306695411423744275148189318618398294310947480158918871452088554177369068626507230470016738103997244361707325306793674551009776948523025637414288572189477744212215323075764862227171843644668523730907490631656115018321692986685626843843133574206553905339923101684335928589410396379652485378039811283543137334642982185648772271091352938870509813154437502401520307857654862753903147766452455226803786215775546824113825415582984383596343597159000740136966899459334177958014853237596537682696241489367225358209326757711715136488151688887876000837011797459464764688561499708666032316670799205963948992452612341515327177585326083463016752612016258786290119670641869979025452658956141896632441598934124522289364409768113424748522904134763202022163152486902849038631594257915718324363681317919921960570280332613814852730710858864240640433030045550823503865500475106678358011550661201066672257148885375707278349989878297770691224174773843263983407491667831407630610504167407371730903962252208850511607560044844792031164486758246144246240093296236978569831497888043383323380209159499909843909820296845297569861678652467382669448647099223433798243941703242836110019232225973705424718416973962959427649779794294129607024800565599336768640259446208353480389178305912699044016597964377145932420884515469880108694824772340888843882263387374552532245048774221007972994928003610422434918083269119221926077932450710184752345860196140529047260736223437962987043481317992629799944517760734162039060813331066401372830681171135765439988253806311074032160898139887606704345848113954272024243689924120037636951201422177996109448713652741385745357213771395730608054603467999322098150343068381035458839706496108866438744085902147734058555127468554857738653913851624747806572630191600188183086243072101789962041221675394222444136156365127348655864445841401183177999265145998986025349949596707005495428577041771756771651977115325565256263779937532450558486930375150390217019847272569160646943044293428296769060456241537174634469912871844457278640772888981856283707793883517370089608784966908411461269594248562657005189052482072987302022032547943953576782149289329036609150791851826669057245903297118295624627544401237334218153419828854520533268517073465903102974250337073513854365348524599074589035712574925901384572160727844111277529385150063321983546251447815201353513477787617568222885504580959582398204073157503697030733086416564539265398598376254574076762145011606997413024515738088065723895172047226750418637031610135661958236229040538644549960271121844782569827413590219733163522156848919112289550561505323991477094435279636014484482056135901115660645128217760166824967132398278648821949145861003559076038466453156352460592689438978972613687580603259943858299841518249267549317703906738421288031302038492451373386372790766070883226634588597336558179212715674229738215808937955659796709592700416873111653458970195835939427275102395289039882213703668360339844192987422061204994913971779107415459600537891120162887492633862383547531785943492906097819091417721901789739923243935049147020095181460478269817905014250425246188319502688850005329941837322663020406459579769523250307242588870997768116526923122487038760574615140938804578550787333060868921871942480930786324057065624548894176328970256436694690580374465320259897779409715566065000493986384525713921311443232062096313632661332754406441568682359110445152022005153874916669269900642850587870664905728387927592718587727386743370551933393156939634655320046866353785762460082254662337396066802148730393505636474953002976970670787493564577123395977292918882554438028569927998246723099808958340906117824844688384119227156185061580738854832916040921853039354592373903044244328386875820068430138625720217849812754850788386725057248795997835392779296091445002487931439541127439972780016547736581404979019545154591361852777167444004749416329451927882580117959014915607859166283572767214200666678893365319851491118383007318883287730915666274673092459698161587865938570664555261968185902011025544552486703739238691348061989171282519463346638111351430291278112807983959148097284435657962454912735755879441250328971395399379506117611755275903551692799175694796025951819365005347607701088838185029918196830023224787222568389072886034991495003143505549439400409459103302100266433207888551422945318694576678149168239411931776244436255767931424219538236026295785189688885520164520657294241492215338348430564079718332427955125183698619031146528601530314307437430137787692419977518813705774727964418224139176956191236915785420200925549031745851841332316029820746902764324387460076014019569351309281528936262454945272728240544440224838367791402910589874552343934521240446344109730936270951615623996594968797103952142843798384326258144909411902316619857788152516068413094309910741823322803545742647928872458794355087415778665673622959534703952236591627085273326965536734823424253864457827227858763265330395930884392910309542472675978397261308634514796816391512604570546884595006548508103121260934440838469120356368290511740101830536562234088327950398583041585641517649523143652302464892465271156335539619649947910220433154620890810273075580099803637865803666823031182550652525169513342521982621306123315428153693203643952589940132617245233279369216298353266319341264947193721824464503943936540377055360899242005148480678363595117815806447458825606326904511824202291394192811021108602906135658380909684010438544979195827698628016178240847291871344408364340733800502504923111552090802962119212629248124914493778638301688431815414525715935088461789005723260766541714554788075628766580705414066571834046106710822698225799218153000126295954513937342576653287483599403188394528535316560867037774574801650723752377278596722319207769846619896393470182957621829708373591248068500731453571612591095304791180445605220908703712029033008654583344517878610642477423799073318429652133860622392172626790028376164055210557146986351324100030122327080862774721958395329620687654142101440131541999383344038836628319493274541950151276526353423769062850418829612899379104237248677898565940675904092876924948997727948891613117037374873461103154562304608549524472985230031505923908529311083389996848509073017763112819870885739115637460700169375504181447897165646222409503342656604358744974627306208162955869731286972297469186488844244136052891006930085908264252728103913602928822822203630940952625109873115450068358163089173495961685725851971572094532996491866571906109038739539626457998541194890550520686841167920069921988774176161426137936452813525821626965322563296762503941151018805430912364412735379192065845798787019804992332605225403369301081221045045997510918520011351136262504104735702952239401104773729030059746900588024806307623755796745957691549329897701578037559663063850088692342963466334129052518118286904714137453678822600395849946263516334391527308405194004901290491036054073217920658245148204476238153766598261592827962321163304441315884780079168331414025958522837167362359774851983533894583666529074463246588930193083041054289754890644701215148246055900023363584325266282919485875449143023613111197470146951058714644321302639529818552967308470999008188568012425601345661598407792225685798578835383789745731191679881034848185945250775598654745760494538545907768245820985589997973609484841882600321081142618148201482852301275586046757525021905620007035973853152685897650762369213685966871530482524698091505635750247246932160590929792179321503759645465768246054428569792800526952536685330127471402696747846390351010832283257996236774556224440229512553334249654982490413076656430011807293126084242485279240207350038896684018906170533792061848707832559212599323385604161354460999808234656961625846141566220475195597344193948649257717784880733087548106683076591427173979483412618487751133736031856741898073385669681470060664552398652549635945721664646760618471990497768913605250584026296130667709872765501392436221152483710951588415560204150250093460786427248980749221805482901730036296257655701028308262932840265856812628012366567045062941660088775046970989896868699725302337844743124581285071296812343784168423483678642349623253609316272291683921192139363714609025954183886747332332627391560390012841571199311009130183038134987147496539100961086590068844396980717924799210018872482250697357569932579165403589672851518183537227482236380721485551228909578885130033256739290546054061111551390954709931024468367731908820860387401294567084498037140297371963120262936479394907285604991873099707645217645120919293244049547653026585557121514216261884023691788788765759443543659887339827919087825738481895120488336779614344484099193918494012707649244226293230158620374254039140582759201474502452175061929389119451984425465451482929311568979206547813264800756928361078288417043136245118990449446793240849921951451775553150944247766448862745180021047452695806176721980733602744096688426134116599780694631756118401128701507026179528971546870407430933893423121957027499874577005116130308719769197514764519569216608486013410847148722526554026270613517270452497931333182498235532339499423210801253585218518007436493607029633357796517536459308323079819520695349746352112519986596290098219494778418278153678185954696308793197525322733722181828735471406680277076998341214083203165303216317986524007552950755264422847383147726879033731025091011095359095983522065739815253205372601517821381582530890341341557654629701988842020765112967394387725070639766930938663432645251325764394577533926066886466672306609947395645677158779790052838372283731603627070578447207188658369169975333576176789856185537343653759333837544618616409634438279519073329126945060165220043332921708516296576009757345618870117857623936170359341704086010107464541870808960082357730275629837360833558596310082905632958109196060713915124492387905337300758441643068710402986170461064542455623552802437723026626876071158152826101072818055845768564028886299484162357643686551158626658037489973686433280737992159907820840837063545011209633165516325722377203444499596422257816973589623518916189207581568147017153219391000391077850662568355440165759185561061474934701076940061101826025596141861098133478845626098984332727648844779765372377667727060998236232908027650950527771296293124854524074508433727225072632565979119305185097654850269613883868330944416942875274495166979559136942544896437900043503424645959362514456727644695081514266387966272711089909612360693429428257356154120608359238053093545503499509013293596559911073124320899132487284152117266138980438033592700273573348982651856220165986505599373115519652898998208402258407947122390461031967058105124855670919040057191624845956718019281429373898362205515070332288740424255940554151663164650325825027490712904527400572033144108715270646430608201699091781306002028128888125580556991890089588387785766839915088949766514674863793598754955630464558031679928552205063477601378860954266226844247609317704354792510634056178005244976973982327046335014023496832299581304425052966676831924534182590964184538423682569223875690021024044845893527721949659377027186493944466094639843478910614062055048646119693218120832147438989771037339185823492966969783388950578707864246968448746441123295032284623752528524777908473922793963124582698345233688337056412192754080745530724212228454197931697012219987553797431255033784522330177863321924859503879520496849645601868232286132375405033497694047221103384845369600952200095828277780615858729601328109242697131554158586044816265100879368646874879075972789827147958939860226382817204813689331385955625211049567657449081350591212907652735496095755102012675722209975644919835544880108865088779946033296234218182000434937514244388619634211987040895204739323493894666733072830736464889422217465339105422846974164089506183931406184267172736228232918831391687997495309544721881643798710117954310110497319535886770463044380831524519367720956298561895590760798071348176948029212104310498338155360039817913694463534498737242407015947646603653915073311538075046780814195729988217745424130093840807528922665579339306099875607077741113687352523889653615571933473101272523299676565093496930358227524770076322220085640276932307663458197017555345981276071414299674718974522142655471940510232603205180496778964563971450117884068332050814066253262061480209152113006774959893101745671033146554560325514219232087748654340658464160034852387323614130362035626488835573674587744735203053731205361604597643132599644177512968773367593979687236130653718028981367828098111219034849501998604444791340425256143426655969183448993552118279926180136361371230976993724672614554527544923641664533828944251466404381077742630843147097663749400035579751609547514346558039736814951479540727723568630716686733085181576160057990318891525655073250648622622264317946278519977899959065929509602890983357801039357940339547079503651817598623670865905181067141711793761189212570628972949152071820535806738430369263723642681842526964033676290167829228602163135491942817325075017228574919876898798901717716769136400010399466989870555825942583179174159464446580053203944343366410334340286484710002963374619685316429379951505197909343502567380975483802516052843035855093210537449630679009803248051228471017899356235176562923245606774491598281975631680235422492398989859803025288345886479571359515036254333503043143344840549757910358925070001037577727771560770255265808823395119361615433992549616679947286718353818878243525574336225622883255982956000986161840991147046985956658065363140270526063649912998345269525630954863831178044204064387688795380687559739379807373506305317234269508188310021448683627354027544886678488016990439185438524160529107815179343527878880173221695935926325574876555808608537992494348526612779373632925670914682186366526272622293123441263494416855839102788177173953572122872825287981778068624210513263055788617309620268548706398329522849788080035280453891538518366328078354659231167751400067227806515843085734299032764669123556053342606928004901447454596233930897312489300377196934175451813470511506157752703395700594845228760990486684418580206224796589369427017494889202087623240259933245981127835131892837877121950399778859648033814871416198457617715927201161687258955064991617587673960330283465930069532688554314866144795679286005395422495507943480808109297561446417217485277565618525109669738595964753270761860195186837286172827986042987079598572329349841625722807257113998971805869502330745099084916850997107323758137611560954605060483052224164346716871975521571181074479541992995696194938201850694669452065877515787641769066558503347313616094771313511422629390447401123692858396156586743926618112781147427373180624581626089686971863195437639053038140223356698158933737375511034894889461927315546274389922281680429484481751684127623783567465455957357463377556077328769364396716287479333091250404143450226935501642843458766649707921118112823827961037782031753578696893773591791283649436465776373432178994083365164388164825313687192977707334342132883147787056752921946857373939209924506150961531371934123798630209732891151356533003566421673064744406302205247559503139890410352198723059757378793714332433698242508978848494334939798148327276017340771327845566865685675315204768553580131627729174914259311510081258083638192485022701683539906117267301333931568095952302976144506568519333421828872378107476859908816995397501618148008557458182623916228753426166068644405224810888663522254851950781309552046885733717500248686930801399693620884653932790491747342412034734537072115103445322427249544814728375941244341014514645965641740614271126006153366355063044192271673729852200576022413876226685709890204982734728813275543658287363153923620736601791666701719286455496796442412975691617144535109351163440429143970260928684132215315843158469670311817282685414761586220778684290322056428887439001242975220226751498702918922399979885165052715702770974883232449533106495270777692086477846163409989947209880480214620941268071870173260461351457397645752660623347912907216537841359199509932647459198609117270561540988521632068710182999913289729853274896584215767349255995503487064520048322032204059752943314047112911329128689419668095860409610979676623449350040526786597294129939664650603923922294127672080048080562301269229312530459402794526737731517791886666404383666850505315620018783419094322857217376389315620021476678934942517452265988471447413196990878187627706137048217060486269073235193130467703522474123490233691310225928806690541462928296696509098641704802718250272108249370215005546090883544716551728730349789340028941336857495461593320246843698144665516666900632207689830775578499653860298830940856260506476643461003675157092273080462995436406192639932473313901053839377071897850113724577100503037632735643142517788305154360290596294444329941215667938857034180482646734350257907057008391424493407119555722857351498644531341060374970201180583334329520751449795850724287943735381803997082831016179112596670913972446848399748983061227301471147919588102218740459198246080304603695182560166882281008055127058282880933969242355112704089489526638879288490660107635629942135301095087010290776781926270165093839528559328101952194649602031923958333830981382366643636533532247382378920633537716565978769812937061497018408203252288979923222744964556733711529691122238485379242350696590730662582651001897725205095055803119299429638495174493957705161241829248833736163452755614244350503096688045621294981656231275369471576392163978721295528742566833001683676704564130729795546950628780689919460497113508957732403260493895797666941418525969411328839696292274112591234836012712862244690854343770946840043764698267383181277366169041659156274307147006358953756116918115825733204528225093115847358891303335623712959520569503985908092136563749962718941467300316895763846517430639015539434818864503166678872636727174218855078156240759387551657139011216495655069301178878241703669844089130963060438714724059891500569077788740621758743538010650474042153505349556052200212045604740872238803064791192007197420356986114662588509527297331583979112567433386575911668677259898348184680869898514863461887003286676558510918155123194104532143245943499407796840332536445415696130310828522690402147361116818687188148189494651821230208770238453571650687701158690536335132171345937269131827967983734149241644876909300254946940834547085127256703100080682139573047619741395408645353500065163070787190915873586570905458122653292579851311876992654831936638377184823144738198994399445856633438717974083706877371961922983186244941512415571194514366499942732289321142302906838310504996814895543435107904109860091193689666390752192176753523457212603806079305825026687524212986114750404695295164540366009558400663272832524988837645985326981429890478978545736807930535623380390526878268460211963226254892356451576670349145876661762448512269824131753477441963848311454068132327757866078602848438585151603349329469336123401231367273825386077421955973480303912691227971696628083707476806175619793168020143465316465367899440320188805011130043969439266518536630063340739821014485204392046882885298130953164143889875913394635869188937166604869941855809221641803466750418020843553995006057494570118216784787950473477576322059494840485333757359427932379097539229869736501164622843702519980311165772406343430411406648465886975944970008739111949978324922713787120197119418948794814010099265857853223885695140248335934059388422539345126527836080622536737364651378637356067164914216000204360993905228596011724295391688933779447924326735453415401361574104458280414873535284760874176325388879822250291914409734138947306272855576257241877615506415383034413343801673487747202884598636541411870996296422206096475153023577191990065429358896430090192352404968284880602578976588381921947856631929820885377905981371716271780917829683329157450317022368770244826655125287281094187511203089333754300599978587462097349673599943037342819159664564748843804639346709670582165441588410733270570093751677649144805902141256765982702318439809668787969662520360484409810429641166967891914667769493504046244124856449434146384313898381362505705709498770066558685941244682676763456548338351936122816776339635568872925740637926331006543865051582731694900605689227659463615326345662960874876208556864596942773792363779263320176877849516953959157841541787550715953962268723869384645944267054245104706085270514496460446878207699537161173499663702505080295314985346693027242492054270971321220691181919475351857250140644231951604190523292827572077980017220961330347714792376480119749775259189546295381356411174822778316071710689242769743702392462913174834138082229920364741319529121665599022007526828043014575418360135946146986798865806424639417307483362208745024876024116463149645977345515227099250859197099422792468277968117238422600434053868714790194035579664050177079734791957620279021392387995860309666862946461569524246294727419663988260046946604055156340262178663512659380291498908172563426438746416392035972071362086028629929973114299165110028222893328946161220544733245710758763502524856738022039079942499247607520074048482022925677530284996358520826734160625452504665825256196635571191747370737855553497865939550420195837442108902227875049693419841908755988301494699556473164542203718045621776279624693247110729609215639973764250962729070315626051201006377755386185835932009095510379686825587841461908382365644089272759472317915774706933785415336781621650084829404447561537589979553925742492928351474258303611850324994167507651955776628111073589081114605544327940799868475903419049982415683292006121118788596269248790022402742642039086613459847568248652650454965956405944956724523092728858340418637133273969413712100203252928139790554216350478691389713256475563452349982486282789848212935997510260712676762173855607228879979912767134855591219294690835986166108034116692730252064038844883063104763594250599820216838280630286377884882686347279774076840279572615303769630526609090925060128718295268242784939111039039886696349509043125334340372560891231921841985829830158191549012693604393406911519613518887197171986104841962212204391760832794804113640498107960995270019962962107836707072942144591242288600511561062371163734389508313748020420213754269686491010791476105606912716561348154301166653123912550960680729653793989531251757793810389822554309232063188311497154365325928023161115633522837339462709723920053776412117902296607528196488502390430649003197904400851290004212594088564421796396274560001950744563749702676126673636859649337632394810950988817942492005554878319196117659335278016186037108365712059382400863815643201068537358532573409931999619811585048223460654275263398802528701311303951580551987991862833282636642997290610461455183858249721464741768694719444195891625536201397213528999506517819980206580676852697830480212914660578671987216735088582086626878826928497777241619945601620850548265775016654398670950332875667968392160762246371108256064308997024959548826676823252038260984036294164200170421887304283907460112887523563807776439206044927112418357001675824854782744325535975969872152832072118477116223390637941961862607516692132805901673113031578701232114779814486969979061027452465678455435835836133733020480724856080679395843978423211849993529501355629248527999898719181783309014063734242999744216717573988766723023520053170728160545105788192571975379862121877651466348357300073043653924544500326969745858681129932107127646171267037759834176707135692360801479858870436119086205709002008705151078720361288097416177919614027847662130444300751451486423087515114429003794458066666177621161153297973973392998866519661354201334645275845524684491761724051679723917617054259380512230716097202627010278621092044063021311881540008964175346128481576853493712235884117370133533607236183577817811760637442467319634131504307857020211179025549199471528830974548357147736071736794204385209570289508746936345933847673812725674672535051998199078682954814635043296993610820697304415010455977452800054952307970313352624931409319060575417783761635099796301260209208668782083325825555734419181184478654991915425705749409974617325315045365227837531933827052269955367615311314348614026567600799104908527940431327073627069718761329074816718805379010362693552558483676482829191123682198705082302700579728413197121049342202510773089071571736586652233574223004977602744367176535818082904206467792768703500287925153442170341376435337691151768188223150839915321595353716094551867491240857200998638518723041675842038753103162892915488541617482396462307184204459882841250306009873114419575025139249946919213851739063163888369166588613594980713400687455555530686157353384799568515575423577969515738077563400703998942560388620875739821834741972735780834003098140479044888103375031747786407729490596196356828220126559065603386914708513951986942002430204101283605670309241091850007636007310425934907631486805131503468045238111713432309778084332904064024571324798218882134309017607930075620731201499764036064442538065101683434578215431692168900595149151568336522267291077796038493808912989853474691639297778497307991662874357273527147136597075956960089030918574218542612288576637242441255324328259535625785261172134552835329056708516597130434080841421261501626465790779874049392334490034372742072051048972639161493167148435302014772058968034486604296888975050375987950114187760357614243072217377217732172882387565142177731285452463154663909555352566267208659949987943564499789467707142570358141207293406811299760368042433369525640748305233706684469147040414212554492387813299299426692069872783097975069493542629050201648833662185156668293743238356463731769543920245675462560622740401945932153251279743995533010962043072921448183721319526816032734970985084835892056350946799971778634348537484017951289443137990249360537984730742749084351890713872331029884496347761759411891416434052943105339898492298884092332095963809408737227929153190795719928574421080284169530187248958440328775283964010452019440119421759313364315982891202074968932733974290024496697531095987788790321869428614400659985406803539534711937282879265572681948658677315317345897171518687600384743050398485386711305032836791571756633385558524444775123482863200141039333287326035226102625829733237365937515336753092912270058492378927975128629039321272086818845196468078344211833922633583277195599187959590887536403368983152747005176975151651556054441496649302337796229827701680218224738702212942413800385950512937795635286888413792601228738810853954645847344249989044697967250840857219602673133107913591319788170541229230142199846747178435690182291574961379673278739287259061344579871367895671230401685204763199729862478715796115960117770574180797404496271920945455674158748818277197187028176891285207355835639082994304482972699999649682249446382296497795604672492442860981208006849113090533386030146326301633211355411524050798816291714574681881354277003902783558972332659723716926155715423968711520305811811158486355345757957159409311191016329192586541609858688430871671817133876049821785481689218323069885676403053886064230456597927845072419944858692296373568545353770741318540982934203895218068548646986654325412107094844356974717148481584098310449653834325712368268003341844328424400521787162724348813589264161202755454392414135147249576528268467513652322062153539940819151946857533605984016901333564723635409329168304925534131334589211706229109012861396808330927655372518972841186080295330020289931241368075747460355603650354289933044395133662698425868506161643259895515269309930886002248478359097864426936256187387045582472539185071837895203717387714515978747276208924103918103812802908383130327700782035799641057951154930780032137122495221977720638068113912248351218581414715481786287593579918488384120321692772466193838824259846731732476096955016486433835133972501355295630093704583581548615976050885906947646579229447942876029097648473873936926907668093798470058897629686000289137582238360377123065689539862589852853778335198850412794033107011375474326440994312965492574075973125972645927499074322952957681589836096015566909844822868575792314961825805967001544102235680530966220738773049902879628049372946802544313516655470341333407623054008093440390984885879918912565733669706574099979598226553979043463004178162638866468695071590957480456079877303659822721869360269615179056062284185281729145961483487620354649763457593821207984447769785490599720263957326909728925243108611813631064150772651167931089229211216005194214631744489132510232735945337606415850410911953924900458862484768172636177015451930175448002366000584801421494238439422427051991580912602814770446741571642892041843700400520823659569717474627350126002079993044137731793875574238104383999843401326475052620261075726227771452236352762702735532600519128684739457947375459254040790695928758815833189257072550977439709524510676978091750326922503862481783613506363443995922190429254566580320125538500649368781413520718540311806629628737167033380574567869409247055744897011006733899830586614957219335892839070996351673134894595423172926390929574384902991733445803820463612816421302410044809746016430375241291628515474035138875129787134287351321788800453029831196006605481178607278607885871350147944740702633069850312746760454388221631992795888671094858087043473134764887982358512910325046324206352140608466019265645682016445936491295388848359456180754368880382356729801870838103360523506123147713523501881569138277110986315756023148567669616153549245942197117940966359290095162405476173951823547178526795975286570483612213390046770948009457773911695575584278959935075569264601619113975021945896432347032032438839405904389905622425625033572680347646027885651813780185623073049980003287902159954273313996884668278786678984610745372649124692673029132021488617595243556363053272635135734659646351475966593833365144941644586036035414236505887649140802573309266160020234530199363379150976128722031034599624220406802786907753787314237716001246862366271099615023955937645854388145625455129374615173051076778629508379528938690641542074765741981665482025874709596342099013734063422315137890045848239192337593860758014892275239058527491140659104186138468897793484852755590748247493821441572084767668425455348025589913229896138497663190770991896651429362639110515167001890795623686836421815127827991638567746888296147064947678946681813575830275423021999241113949813248744368663293804298479553848732883621000863343898341882225225036300316893155366601610255715748906775997291372666895735944654758442720242763526310309706575064511449480061594507560219676050415700088488619585434584742767727835983659973643371177382216556094462719728962210452093106885676097299640840470666621552475886279624645404163481072797680983113655417234360014204463493585788287200675119560803298234351349240824913835553109571581460350247833302691040965314441642623662677388903818141049219750645595491837673303560384813854109933379887971915971909297770619239763053940107000721777070115080649054687979660142694638625196481488566639419547995392450438770697627910224271127889793797074735048914861474574718054422797152992268646419216414596158885502624667518303892081065890435610900795470020561848743657761274971979865221592270559764215513502598797491238195978950133946379209452907533298871057932725278077378509600428533120807180970546862648922498081261568712821715390269657071197667697087830700996513054880391667063091476768387119945889479082738212810032592323742318254907530469666476960038989145606291467670791391306846249413995661080988635565624081330461604801234778318451631161143389643033979448419568654584131710078674396959030920788748177577022569387337761376195092796363896657269014892620470431670180153895924038010481470540460877137153922042491131735782250501398404714258566938714562275900308770327428379143467344189680193273227029491767862940562839520821049113054875410808268771862700099909440232429605740979286308052843561426493467491233758351317107206732919003928170357006022148518381532736320464130326299534796961121006756208081876741301512314628867067335908863807119121843612438331311855816394916297423997291664887510089499908984991506216548412167828437587878196548906331306810823451058813327869464008797601280461937556400110747980557850204823933760731003230040450023720487298931621931344452516057879024336711442782203930606788754606461097364675095745812522377947732826961337117875187340946222586482067562064346480246714253305816324969318544030791479981655908764511518372801001256416449264491048375357409304133177384853645493674790755171176382696688011375765355344978911859669999277617586618307296745583202363863130674626247434066137583958007747303227155815195841662702166883870768212371322482688878488991615260809240127592135697948673769106194149122023852754773623093853418322477981260068104789940450722604431261310814548674795584639211603018785528536264244940521157357953415036974994788347174808020988703793094264290960352043609876337860811086103439182669645855404003300705816878260749231515957097011990976552748370071248660427536351742452222136049037676000649226375053094176705368132792092306509906103434862418276412283490580190548502355702626852354647314333290385483973932865145671252036209386832322829363087194469392664751276482421931355153252142890226351148930476563304234785521286545223609611712537720892736489465220108792165623496750095666718433077964924612531926548358416311503926837077163238744061811355618587773392314949605406665429407478350593166379415409544524379114093994951837525869749770313405597165994976509599732655230721550417764069686150863269055818079317617296879212558862701448926648875978643237848860283283139251212632457880387962005852341047838927674456148664136587535214088664026978833850545492521382193773924812376635929051423916174038073889575481411654854381309871762444822095887724591114958161445830528324956961325174814794974932088766009668520204865371858832568899776502051799691738818811697923699089488627984145150400781702454546977869216487097328134804677292723099528350421156355688076246192615988190602926998622277949754581703470373428848762218839110109039555727620803567228607048284503938847797646077389256131330570383420050432701261052720829086293023563608492397720258484394938718726943150188701056264762340578964951540656616563078747736712591132805780768608874421389481315498972410859643241102017717251989835424786449618796606610604961916595951880846552937206043318902658799069241773726777243334213736383092438416172147028706905977266539903743652829392888511342796317864101158061661851995653773321263646409678133582707733953347380416005669450897901495287173913156314201949141431794735877977191308749402149144346294413920566057225642398723894010873779734465300529186424271033441473585903073948125778978698192575130897988518712954691308940183684572978010321115390081127664211385452389296289196584629489369432956183008747075986748974034505188520133711004239565096643717307409912346823748768281633336264253934558282384325569063573673809772716214948002951808130182357659947038671634536937820122699217021670595196170169744242141774254045030359674709167295600849453317333003172458834477657867205393298451658450270705889976931739430122173318720651821483968694212258750145075090643968785282915714064433757665665142437599997518198926611874047939415144030645902545945553546236587758924478704345627409690644092930799386417862589216173312592648998892826495011756986720335475380440664851562839585743051373366923226387118220795158275992362493966377791109680717248331843861003347160240886933184414910177854804265802043441894636280391699654177699064002143258650011028815318285701544205901547246502844340535869896707712316669802174447096434252743211543081816382728810241706444114779744761089935889927633786098802090789240760750210783354364039256061660387046465296244830695521076256636164814690630350681185950866730060638242873839034445426845114916374248272558377045606764965137097980989360233422956893641620667687413026783338267963964424858870686240607185145299756032685039421063873531605265402634369142477250419621736469190408872940643597852413851272084253250906423899194793967107050189732138858686393807265845872459535042157231489451742945321231940730803374116863979382678844804639750753240570419859276009978592041159330145488057773517105270162211642259942818677504112140421069962221104942572175484349812774140905741578739449795078736569981083522626336828111726073708268786677539679307091347569585366684397859763359300276360661321521770627319083182979903959996459640435003341928331345163317580440099695021397699242200231643763532566991482054781118208021868613325152654163065624438545551864817824966477211635781546309335997642666395975075140816858683088223281371822380515603738736660120112259335344140102168096049465172091456822934458547440388179467008583749203577227306882376271187779873881431953049818765068180924847600122852263781324850715765385260104495750103303205609265276279297751542564526654739507118142567685378164294044618188902034832597239706003832628824343325190350003769712523681389947511090045337018120349361928657391400044601151547177613654834391181711975641647271668657262792125526339705133306142216157019488184120784627075418680846466464863080752386098688790842368930698490478938459172524029005247141437013898721903088242804076255346710138866327029439401537312134436007362578653765454969809377310026210654901112055454149265651510854756002375001776818297516092911043706271056538658904609071902424882220358975717980062504335318688790477684069310913797556995324474214756417036932429294312202027737677584980681005402208637992640856664278752216580873485724053983809360504580104167841571690565664493218934424786264863105964460115908752680418715065195988731218724389888723458783094585768385688207236384551720303162818500293575251500556865195586220068285012923022511869587895201476840757067944509334246092951668373339414518188741717869392486446635458362524647240643988736618312436072273851816518264709235352933628385646848259238756099271929931029402160131952920621351613284812841912304127612245477508542856866377586662654721474964931893173054316925860971528100450716165496475721845385784340483692519580528623358729418264343998121197695054447821264166638737095818103403264531017678517999524004621327652527547112091100101454802241021695894026089951857036362990652541448093201023257409880278160594000837759225708738857557391854224953997556829086613737983631832972399827112668414472043498289310586244327354711025112609756083186035687619287780850875192848287195333333379194320061470933678470708645525182895565322503292132427265032179836101065357287747081387029318692162805627839564731317322666809028055717163399269663349271046520602257963433527496773636954172865745062034515913964389555124271055584408391953021442326379383908825152830023841503661299015753303211756881202385860556341529711707622644088102723729582404865718588754862083406783767958310201289425507387469877559055305244179777216409353796298069575839216114071404740581523427082272537908331117394465393013032003323246452461993862894169537077238718837307965816189204462273685334287470773070713566414514497890933533728177514228828480815138447163790649750110654140987877394239462633308134804115894770762203249826611138014381988779564829379818710900135208718393271441317483277579675260401782771611647077266806426089222002252909883613381807112525181728632751596909416022789506996642375928155162718636773907624529434360459321920007843872900885628936357592071611544619384015838510057966492722589233674970267890981675689748192254342109675344344007552501845066554044366302159431024914454788912401658882546672383417952716864977830306441497259809566519811995030521497709596324276859426557360884428317032111513052285203438753098438299844988067089860929078043710616805782050836346728873079247519063030734307248245455771609584453593087361424501819956071729165867818642841914436637394125513098778183481896462267009022946397723560855777102896689139466063273441422523314093030059233453708556057286181757521665762712820827819149228639327600983596333534981206915732696475739094903513181464857426227343591817980727499951201871642415166142302101702086243238830815782766154266899517085552793950524115743022431702594571433139564244068297031018395013365182263225913702335296053637102098675859665449667234409268852576459489311144792865678664834663484798633675161581285541783675901654348537986442361090693945185557042580964251396405227421053442163813580890886541135200555367542377994363002107238411023196437387295770047236931022637913511224996522854130476499135524867588128995760874408559796055857571801446087940580864062015390870098604297098688204222814047371539592789256630661976368372953291042585555438187473714993767304544115040504475726890588458261043735708014626060067569619972654776077755230058027618751315223829939451941282741838823593289039379739213779153996550774466231288667110616527523872260631593990845422388580291254445409215256483950414538502343520166821886407866602817280615724641437682387469487957100670525688579558494633029153336931757941554384847835160526618230270132731212402602329141243752145936646188483717508041908369075526243458321611307099434990435078938301259325780775171316202256202103223969774774769676397502176415073870629620967828646234302333674321200069548873277480370267957271246626487030456135350261776057004556175271992139161648583323707445595044910105605164385832266002186999976381163817316692229084097387036184764513732439471753481030390458610391472247457089546044590588207752172208821972465959787854335539152862886227458107739824102000443950981793174451059028115455468367803128792165205036446098526510811884954167750933593930045644039205821527214026877346124876028319666222098518328878366703591437221824960333843163700455736290395227366395239018860848755437720106450062042135230487413679553319425033702829155062386571036318257916306083486462263576911349426811166650724429670044938224617498821591500548836855440881325624564840227147973355816118111010662947957750714418642239490490138669217562584032588725930937762251922593318930013098733515733338386113253248682019167931691758868657732004385805361482752628597267212757761436387539395256845054664160178190432823320236958416822265117941892880182484348910640956128860975747099532071395710020793640646439316583004665852473866816136369578624089329272787246373436696145150124047379247824795177407036084027631353185600766960224835884282887272191146785677984057759745702380204543756310275448755028710725822519359069472213406139499931316397639896045760249629804922124715773205147215935834116039302894376616445721111670832524299130706600863682619737844581720919315831972175247906314318083268555491741824112674739947000348595134265712487152987513902144735597842962373673947760010952903652315333770828029136001330731421286691573409618921238645712576968775750385851476852659631321848700417219091672527075312869868112426852477939457464091989206043667482740333639827140388160122048002942817310496831805417979602768442644530216475576915512698734374461272388619377146194500952478668879520885548082794796373063282709447310784548759068083070792328374607928081756953974352803273490943121755370233834707142058188936723928953432670767967485648084111894115680909701805227040423797426765874317730703927914672074692653234414556270491482995575497776299914703300122759879592972654086440265816227113304263508290132417450889399059326786852729690547140663986294828745329959190786001525225741365820229062542157796285046998029283637580377905115762454173156932352667092581044829362708053809111373678280868623599569073705018672966031686644936899629213260574147080224417814263431011578524399524788920528136552345583941234410943640286341581378539988457830988917952135274885583177306187822033100140588485775739489447394034729682328905443913314890345124822845621948094000239097288573301987249574695472405965497750795696892967752593907235551614373292483394724313389705262024977785060464655960564358672081975384164770965968733019952133032959940766012001275214576240158905713974513254372230977711811397637539458465374139571383066546849499309741073874945190037390360998378341372558595437543697814601765474280413516225752595224436771473809145973135831159325730079675910744529878733812885008633508138132551722278998525936206951960597807683998619515375337744541789650771637911196343790433827249799051895137954580113114899815155574735558847209828806841295501787296633368498243615885907482275486372528887834322633604279202573611157666451895982961764557252373761304354937111775821635062508656413031952300259738568619172601380163200569804824479057825448806264236768717088323805202378845715506489161244856333813085834424814470094065774932004731599409777209945520640995129862051706561122039132036740368355534583242696507328891837123394305084088156908906095050188772819018052641835736852766783532925422652131592348479203325919489589221416568628095311420569458072980089583335435874601253091002189498561787825863116185678927913083217999031878037404769576073957332745964857024003219996137442412998886036865052313449764050804936742079728246075383783699289655306764090133474125584007212137850719123672290378828946847934913360434062891057309815724641754190911844397802866466485318438889465143987531516656597730038888780070585213483619235340324357095269457049550083279504969217984781752508968387111839857496163873534727086051026275004961128052313310682254480088997012257983210326507514643863498522438879296585697614348577811907575165826620510723092927928479588953440332879563625756987813801899763428060957834704918530163782986230058223058495164967040603715802845679023819955483950064951446686288784103665859368357127262214866231030737417552454203742345214933251360144300205793170784861058320550368756734296396472469025628673220937621040062220188154668779956981188312475543745748338590013263472449044916423495761655782445530693455729811685463432482206473690580566166123112135017913525787021576521340728231575842234223210479300578978394328617212059529454854711736381536155105519950924141386342744204339474577084820843868654588314627407404576121195352592542127276737734821971359449879691852511502781056343522303284252509062811454997284186491291134291229336987286846697331056376746837846849602754264095829731700381576930304620950726967089295034886081257792563939837097578039503690781328061051637835938067658968120389541537263269242500085282944641233286970162136724481588314105349482236993908119672847835451518498878734500733387758776851085890979067253954549980339156366200805470571942947915359457702204038468869957603651309400559084829848329261316863514833633677819862833846025358782288714036637940606597189559432427085023174444477869869007947204939917191014534928343387186064962444976590425766675228495497196805197719598889011933740439888676596749598949644971729625463008556736549925425391066501058868347134028289069898367702191019681668234982210622694562473241747844610492683503152119511261713852128494176041720291660717378412777845633282079107809104524672484161591802177246383202350629549877239437048149809650470556227942233497302084404040070152797841939237748971993129077903494650086439208820107209281927227319946175285807339448985540462288824778054057514227684027330841468523208725333234686140562652243231123663655359924331829944934677809135201621085882862709450838183201847729011296671384732482887156438224392159028950054321604828416874855058435388885724865315959042888232820101642859466305081283424448796396446829753021740202467063123502708386076530526365625651094962263075729466020057960082304124339979020558269951563661505210359620133705283268303756693199766695613715503121294580643439922625032747670720371386814308336776245093928172561904136455455973621577451581971630738944445996305146220080351067761216347424881283679426323823857805937226518393787890560971812743282811374607968915025616796944374391496063528725053062687754354439064992388570230693539223662804275474878692723527190207776897673101558445342555424055842996503655635024504918539209182567367852185489832036309126815295717331743674876842723025569152521002902345556555369979221431881796163975601985905952901806332143130886610682801683650473556240255800545113965034263018809933858390481484292780060365537703651623612465738732686155313598371621416835621172673224610721378712361337806181521776213273230618927598610758284126163794331726862255225558727797749952239677166554494608343564042843402031852480155777536224279654867594303087362844270113082805047940789220372784318547451657283598674256524140881332756351995270030795291202409661236088039640649523213163789972438675593119876573140066387691327385489826585685701938374929964857254311010242348163323632077823893037459035566652412775118583524789589156108008852283483764392547522358168236097426599389086473809213474339690968631658187306482814346952707315762138651831969310774324750180751065485988522800370324083649645436372625548864554267555682788483034781932048531044533199304542548572576829516846772975511082209643135579969904584030232553674686657068971963537059224410167525246398236786966925109676896106599960132325168884632596293623566424507599615536500986436463538919987047419870987906260049719427160507953164920856335093636075774318516589716199171738618992937377452851286533192099398083190318635180605124971968072164817339888786567142946715237977241143530013029209563015291905789455789702242476349159772598873508873791141864412937431633055767379410588088462071101215800292570983402066764235490508608070585792631908184157813312938609326253732091168397974060030529468614188526333592628058905587014547434210563754911808754063833457164495456068655522185175073067583117905973453766023179917000984874177623100282673129467373085384430483699963628646453723054561646308630683428620355213663921688432392218985905735789677817572733457157377516696155489632367309771154812723918072141280642252751888929999425854328212631393125080911506928465489977677040023649774707776105923031741716121788138218362268535528168342671960032418494621709143988471821377923806368033344088976770119390879735988460798662901506942181596062508987261752527364877844871052648423429345887765256486651750169233632250261513053632301908834370964957372488795990028722977081008373884970962738535441344609052715726825605734731853852452965835187026626259462273265647995726058159696975091919486649881561313441022415934227492151272710575004647356477943439647774542629861858220902007085613447544472337231396292237038476499173739334894646442269153459278696752777798132691770324518284037498225398402689736594690362891799527185546782177547715864497112626048625455970959216968154132554413305698707697329399993640326704497252833673594964828024457837441132363095148107429094134073033898868804397883356301951119612318751345032458328614293730313907697628622471207287192619142965446850203504786051659918055611915756717243222406545531069888507395027581720465332446252139572351658143062433028205797595813116631005076771175686678900109667951449158549174104674693600976151060374095414744142747241212996583425436628019438957081477485160598566031325944904167059321882754884244800849203766688257870854614111237810417230190196972375327442194778133012477117040566788236966945500130852968564680727389051731431494213959753495143220066501229594995292341277635132857536383233199267393121150950516593444880107762854285993848269836752518108179619501657013297225899533830749158249871555634729286368205517330777308175309960723972058073565438102320958492021205475198186985758513867496230559802692880056088092657412070966365838595809894977393678297214961965150571136392448991773052154362735851421123921373868462683984666302825111923885301726794956255715499662942372845008365606880531528300538739714335748091919620765362542001509026576274029334577100732986090664819756114195464619865833847590619581343547365565761204346918478132088899497011704470038717083781240659630821941579281922423530653952423391838114799669673192336242295329790037977992324983792307232549214535656984257066403515955664567437975814276497772823619238760571101313529110481490596821263886017138891827927350968091793028774057052387689893065530073809097947988444255146138839230682752371457524284467087320257465890903285445956495819880366153081474740228071491604751196324091781039677868612461395737771038708568072090978765497307788361924263098135671869945366189037529428235492623648393836209689235532984224685861667996884690264032542042647756011276640375786889826221372010272956769701697545073658250267491975725540602916198427494210909152811498920064940339517172115103189777859924985322234845742391848402507176111339866852231346483663280684521325802537228620824175832478859990942673603289129892942080657982117183989144201800273842804802658687018569421189583248086822477146046057871037608873693203282182596017068437526971518898818981418639050477437079908488255266241384258530063379604057514614663781290660735367408407707218147074761443972117868166589131357503683703685864782515012892416131574489773990342367827808552737623566564746486744340810617064486786641275829653353096794949667373156641053955150959224540496398044397689699720182574738292070166926405366604520734258253606195526723096277427558757359828330641150004171894772239538261481953273069340972214907346237227318549998220573489923264529285968982871703804383837567066624098448177958747596176750568035004580548444425115364036586712104641785239218254994652078339878693981901666728672628756538003657548306584818571856264137338682745643839619957652679848711285542974561534171728709101482979185647986847443682906487807055053738448036009856773190692393684566092791196100010101927176237911628663964829079974400732421138623591917395398946280818184947315067324750338166911456705370357259018804576389645967352100930768438416712084649062114532351905931591245849965163125940983333379988266471261163900284567116577852066153954170836757508460947762142597473180257288419574193144864622659343138934197205354823330692604189342283445080903744302258509091967542752792470318856963242609716681434719718921801003238031237133687812179667075476294669608382870899889733514264735613756397903089446254965088011632165326586326136289791785654910988037892470899120115084249039783770072406185778099150026078510133088610614349245303254316792298995204443083973971753031941586394164686547828532399388137851041054502739826677472949690824753356380965407210229814214747288882339610145467535698177711142820163508230798212686018978474129388802591687985077165397905184714502469696238285267096269682331774349789162909310429064744474226160617150147340473069260224171327738471508148666027971134267482753761591161152446599904589004606037435349410979215011009231097728448231823379997217604261778158455609506496772598069805253679339275001073592315191599663029558319809914798428944924256121616843575844057771973323054370213184122002159866643509233700773966463490775704186972586404462307193937860478656162087701499502262213981788933772102966325003707463601545438872987049276375413068977415734878691598239045986981361197124191310424239597318696219159518599079913795134127560003283517208655793677659916012898582273354141461016910088010239785890263076041519798587838051326446206227457921917694366419951244450673677273888985491032197567575170585564113715544276293683888643457149085429647830794564992813374344110412124550811677140632826967096399164796129000177211823861647906853528073823984889376321204140425713807861211138730421948924412302988681013727790021570614977516410370307730656676879260060496826049112394604250034857321683457089218322332908588226883856664253487358766687645177063111700075882612983177597513352737005352300737037503043072003194485222133717829127507317812846194641386829555039329039583693408363531155800268001643844241334172339870176526215961573043243347316059852153605345867840069662111075647982676315039144297386569558050772578045567021070158187762651861875830872923142229015225315528693536937158508932222401642171897793941406641592491566074711782228483833590486810733882110103839420702815958028294351763926627745497475737917823399452874753622286114529263391321256598103697985695007878026386080687432470806443759564697137554112268277038220347186791430764864583084483987498039597204279328639730522538593629202024642686618938101826639657155333443971576385496100058966236082635106627862470792361795043707525405499333158021127254767929094269924357817667282988012842600354669444760649749625147061712516678512981716156999743595521874623124814070549487490750586910433982214909482908818008333944739803083843300593809894124298173396735229538218440828844140029200195586942918713126407394391655556419707160373866249437424597169408612368984970344031012047520958924405601331289089463855032312332481597899788078689614837690603136905316501728865931138612662787421581223202146319771201904153097939608774303716155807852848154497789787677666959156175379011689505187214715517339265576546669731337445870046966444255746613712612744296463894816491025497519930857867826196110300060768101044877064563006402345070900023464861200914490134401598116479075795838654879892548267652052672329754971348821991139529452589854606265978734212486354886926226310638945520831426795029621159149988740002761685486560424389951896809820573514532930214954395862268048665859694975462858037135323102696342068189638840383570467518584619144507015896799705860990109336469309056886187867248230307495215627274120518167907204950711917354516252047631492424530676358658817513938833691197087741960773694363462983102105545031722035057407636048789059182120985122050089779457936008179586731269486835320338511092906232145852136233750977425803774183672119868400454315253114669073955069142361093298810896028029251163443920595198966120827868220664410716716996450735909443285916867701686875986036825913758623415296101456763765144749346411283696941631596400306590516455723848729479706206689992620308878326985047083693004879912940446028059148133683979716040900275768793656915049394000204326628142604067888132723500855714235241296720137554240180396724809335322083113458063284250646157404795222728884653602978374136779643631370574507697170127846538308752395408640652946643685630587222390291198082870040604381916090494313489288770719901791812565259539544706637775605049920196523296776639408491078834893345856609241768557603220334928267692716419287837870119372655256642458982215501985566510301326806131472177082161331915674743171306897425553671223351509464272522634831053280817006610826495820069762794177132262948359558262385035316592701933256092633239444765232796305068177847091616320211492621814326891302231733951683975933026032938733875656170099102671618544074347206502836315229507895734681743578760847228840562985965942853884513914709181054479765886424356110164043765763293130871547204017241081905346359498457554632993399472780135736977244779725226610469180466957059305283957813337492754299061077686422280500184734180338356510270903066567889758268514558280027678607623500326442197757575082957574848075128779057800593791765536891971656942105979110339448701102299983475349474063862829110020802191065417078830498895437741842063498631542352208960123769395073298657326979231369758466289654314862392069134703568656053717869932403152997264703603948620103952918416255829472148547609711421441784383196500035818187516193960936963497148701704431117924346408372377564202532140617829101358895222432364873278904305697615263723399124881801080295037454425254348283097910223728670309966727311762549351249943471748951067198542685680040977108943109857894297699310436574747270827778357321962658491462449457204432627061124275383224056563759653733804123820965252324456059907699759906544741795937708100965920795272366099948734754032276365796324784095952308344592497227599677328827010385385355349613159217451218257199216847062994563217517892822535835130031313887212694853331376577412442137514167698376894560051226845941488665744898426022781036922593554626565937094251894517887580266580054957694914855713424489788554900167218600383108765597635934580875480164319806828029400707130647227100474362484440076012977248420267696296806756324595898150818467729957002075160871764607248910264969972271534279416079597971749506721075916789470492047106301005186337592649916155841448220510283907679477830525001190235803518704432712141084121079723814580999803672669393984844069390464372284457085868312189824325533794961421199682619577485464160123351682343232303644174742797786105881343611159187946127806056797922658674583166551985325281000787233591883952455393873639679705145789475749653934886919236401063672963869107954352045361023671526580215309682562000448920047172352739811660834486173464292306468684399516730697892673254728166337973115202335994724136222970392807816821550280295897383238462134436222227416216009553984998274728040799757129342404465564386693473184173109828426333957424059691932917199770900925907750338536528421605194019958102976475173283286038627634973816772287500826084448321696064793561467036983821714002275532788174924465214095778632361999026559075931785521581147869917320367319111473984678880591113252993204675669432878926388287234121438130373890059493487644330631457631429199136929185007645048726627540610392961284613738769112145540078006345604953586408088305450220723523196707856909340433160327347701799180427579703717924118845049092958107746500641887857706758634565591624303649882433268887980833059070523988308660574777870842600413710138368000514238433330179642557777583530513128657850059175784582534414030907536997042749276659292663075102471241591054652737612456119942717962598413018308905576799711556426537410738955397250733329704511188099047303994630746245460160064705494706157833212691440159477442821643965225692181685086691237777140443632337894079134055966556712481271441850567476982939796309479112417857671022306375757445120994977687114623959900749788981310798386577534245858822542897299077211753651909020753470525937831014875899589753846410477204149933792798143493490272534293579037131026464074009833922444009480161316954900023476001205458247306086895074632227127776975983292372855254634957487607827619547366104913196068341259328366406962065124815698685189302601439125490008628501638280158347562300177836124467517491943425650813782908665930226177130516645939964401837913272304907754110920869465073596497756305241316135327331497943823671288727604878960100061688333015928849337363108750612517277055351405916036301840905430252962477162896103872223073895126140560873484148873324457346009513084875975320317155473502139803681935257471782664064622088912158080150423091945031771524478685877169235243561874417818127628583662151508166840483582175368469249523235740204747500121799068966538718521287169780645353722134096114263658974469476113447001850607391635273287207027603386176872166265024030908880109898428273134404019589547267688211206523390811806621484659484729943820398638799298021174574904831122172009531236139320720072789084213158635716550966964664012521586668058138101037165787795047134045908790025426085650632250454732674765243936134224471733407717371629337746440890429705097654464406860191687500641085531709464251762161414673203520904565101956011870009460652369544753795344826348240839404799877775779561933964842761113536248433391096213778077695775573794182547447800841092117631038465305776115255326749474725623362143529527092407222268952519472007393197258205291279144856588121198958629590601772799409538860716223609531518449914544346097129289654919891222149912453743679809794816635261430595990799781197037817048954422573312238633759245872692784047560625578747906707362915594832860493631319078756274599503391189119044517354030194410119191217002876409269390761150514768181677924680055011320392780759891367458269902174173496809283162489477897908752261770721289554645919600922384058443354978552852916417720800644984387975360302542044403951495154112539825726196556879915236929919531950224315111154470951893888098792329659487425775278533601587725189228629036676375558340154955120993097348710906383879112197880906877446638000182133088665115606456338980645544765201085196057164725989404244208091344280137094384249365354736573712654496596724539996441076706511867898370498528200260519536280755727430567740267785976988170387037804199290763805309318335550865928299188136116761161254574831746935711883197476629773184192844306751312954316737030602749605725850570945341028466028706368901633970948361823252200978683051913295492781547811469341119153959338224103386579379433298222663533805365906609199895920952735043829618633230042115503342321115822646195364264384822932440912945042037540266529418105563118709691458792360875502004618361895952498557564528512114930728392565295852281725990356207417919054344802388819448385909338119094368662319272870330818583195227287640657850045143806189326835441025401571203663583085331841316958135832956886280161343088158938241547828758644499644038709054056585488545837019919945949002133156754511990950069119861263985790530913411606270644572606458193993782503904308626466927680178993098921324896324601932916723862253113265786423460726103455799212020552839103137060737390450014121326597723567121720819796927089360605403038387115183363760768513641443498172341488841265458681979531368411126301741533636411867858127126782826977374220508521922394757978142305801793506197136049649122506426146402247076741648240906323146368303834999107261490444527048349811759099837604308635229056957923431646730948689827194208496972301743860523101470235323518878666109593566593530807937437372671314922012113339900603652147527922852738687787116280450231347846757846270187165578073076254094295866416528272203312385608767270887559064716682489949529407843075444256444761360311468353610641244367825001106509203411289181043512721014657192118837322806296249499870143743727451907530838257561135240198956180304349294265395612244993461345582425269392378448535581702020355792044953264425514892941820465231075876009168093004273204705763205986578720729094469993856998920865400063761193016718464948114549500476344433798951390364958613492285294126884388562762972808323626880034366354449017981967365982069191964713498307271677075415720186467148638674686466101154003049720293680153378109248988088080318704948662826555341332026008882415942543812725287985996358372588382482668709209074709412431617565126941588881243971588966052467332826077568443820944718948499917399857831711095439140511689862700503308430280058892350044052937245718441667891404872583552157232375273746345034556273727209557958329002056372617954437321250122800730244342805752618451218541563668047706849078883671130690640642147202915097140148507474134456525856000547177860057088604024464495626411594727152401563065300608042520568106398422039507568883708369091462114784635487697067566404792033098726661812662013733342654064445096967683230071727074874661383852111470015994410384679380034989626021167598301094066046863308445662274124505751282145428016557560833937983038650424970986156907430995865376102764753067384984693293780743937565992584403156109327882781514674733725193521152753912965254453221552725071804526030297555932996313855691465813365402516318995699339983998425562663134475837831839010957479321226483543764609319324657248615573937722511163717268269852974025513570138514257759253716898276654945737117598111037715244522031717074763553340383683061010184738477977526695033990428480346297599902687663811202595212721112484457833542668820775092999011223988409998672054224675385931883941848614895418800569159339145746552466079083465684171773416910803037371680437569521563627931900947007353940342910713554115767519116550338247350978434777153874535447986844287033556210017797103643221691657517756846515244083943842080378085518213749104185928351449925469616473202775603070684217190111476026548285524019204165181854191735380178367960541913867047214379109645031283254674007970703222871400787955922481140089829039330865219376456147996887901203459922055807889100092453253196632760719051948022919651869083232093650575003501167491720872093323251806462390884844350572468832515158560684228356862305873405096576844141417192001569245692402265561864997371870648049446276520686524640951010783453820588528280251785756429956326282956180634419707364656725477628537556456562624791054588863690036212628707733533710493420886686437232618183858124200419836152017813891638719551897351417423725936840844600145709870970796097239522572512613769003381143676921025204868285714666268695593316844052005486883504640283260201495881143998768864081929506456392916299761335703091601079731681129537250054340824013103395446235493870666731332523599222657101352582482668058257465916377449433197520440509259328049611011176847645386071127802704228518775207080758490179525128663240954816198995187982449644349225974860468999166019908296098453323410089807856439163756810932569258108898630713915746187679258813438595078471038992185324189735623936913517369190064319000003029660128301530388887670359047049574336773819569327213185255803470760422319303446927608584934300801569883888457090957754455311732416203014056274958277847923284147610147853659002717710177610501598600088670599781489005895116417808596612952096067755609418651653706813496142385116261059634583736685783784583278249480983142547506025765954782448833709478191421461808703696937646459161506999915864799224623355241961056174238096526194608346661407863747207927774518647315278188944021814207300964127092652725218607897271474957495100141981342091233209271833992499453385365983511905203571558701805765378504834537396060648580984434449830232213965519955681999589720926956408008308727458816536373069658604328249276641951296900094618399409260367247890260609103456558735032324788149346702066115294335786864154820743050706118998837401242438535470713854947486957030432844966999186368052371762529793664073863030344445062936497405493906719288918023540524579697898881252966132999736310222095039033318410398645674790918649144246682062634256477088426149913982116335321063969550504609104408983498079721549203174017377349760135825301444651964870336578007752749526006560182320749488555322532685128907521643800071727884656154157710165407599009687208824978016908535035881089199269450091176881762120191700372890190513892160073236065191773080781798465744181307242057561579771897266174076381928475802282056888876235083454854428802022192032565720642546717038478645768575887186294052937888019132211007096960680430811441641616739645153324006389568890868510531316309527275605123170093094419990425708860835196163952427672898960290038959492550177582949723258836126201290024656199464314975305658581545489787578504133874998266551916007320652119698841849381599669849686197988266804199279702204085109396197721087340242953015524669503938798282730661999663499327872093700221399768933499277609368025438415450158699915322034635921295220647505380081317203622515168604860569354070395824082787736682303430292820712107143226103862711640205979738194682425346439320099470635379571871024438484036440149448672096944851400814736603087772268224235846463353990871788480444313957491454166876279028786956574105740760953681022248526394893080977781163336810398649538529666217109665128453282849319983200585603395241777970797740893299587413966579700244215816107817980296054125737133154335471787261557877764351058798472994859984952695937319462219187586035757433511394992208467103618693454729466182965611528896213946602271867510142802464060039414299386778426728598895168258518506640388412469938817114305095367920030508506627110565807549872085090194666552896933623734888968604334910296541222033775477499199539016170484312436232054746060618272879225297476454548201355713809846482667920970080127964815674223131091610975493360608090045497487816567871879483024148408034295028562568137557344648760475043725386121478734717700194091723393018259421366511562552252378852240906342112255270932620640252257785891403965288755471864507139711124417450320015874728421707550420868789829886434987546698499504522398364554587543786583789925710540121476964536207134227788182624034229902033350283018317238565382857221715647347447497696331490764251475644523256946859568847637331598430367125801321115276938022165712493597546525312537973573317649246712908907782820824668942321241316395089407354501455178992196734012687945540282372000036851460206599365286191604479017283139921095935864642140375802755115114069780942486967447779266131720081332389586140737815073134234718893165594027882075973235580386496215300892424480489289868715491846261157934463977643655758716344047930543460692021515724938225952627505056078752812138900612465543561896035033411950582097754716723205174553193215177534731495542655097662353597421249006963500184436714016288032026668684851004895581975069229936314362692017935194773436068849546820989110599090737068232001040767157327563863518319987298237454420999942998075230824096091082135886701084468975252810519516104403043509088861374649015724207285614526808708947844569275723125723497099794776811827426110999845235172405134100993929178360732865886686762562731399096422837079560561297363426553413910457205479399348771178852987474945486009842176672645224323068289890382910614149019681597682390330182991153978660864810898105539008811542420056083551157316583177218349524556284382078454235389930132108693124644192902013559869400480152820483773704527634964360069570607841630215620590196877143152167073315587271624080960846358848072246093502562771047443584963622995837422496898005267924241104135406245712372307219254497805494223273060887568510206459657428526693055736901259375895623595580070471016528290138061333612412176252846838281654476803525381821706847448775295315419610179688824705441262587906559894491058359627382121360201367689671025020732063768456584159863952613631061099498335221394052704165977653928153939845167232749711081981762295130738611669625197309041328594114169573075058965258204916516380808869918127450524436309689893296448528036278339467193510474140409446738666246300947925789765648885801774307164222241314548056528041198540657506715169820375966747372303744883388571671276017531061475168209876374196895611682455756935942045309476585499442110964234207447197972129998625141063164259116359701286357952194668513654428782642914987419396848445171043026598754798568480507410581604782143613162195587660135038909067567042536385180724475818388019591347233669278606569357674967766470135743760102704678533676164954088934739174527023415515594782435611107982805031378010143837194969999038565731194276532092810518546615952704484451868698386629894882901057309793836106863876177582932229543438414459567425725919262472472497738364487406366812072958828165916211248740802380350939523021539993739508604610907704753903410114101956022471729893883180331287395907872129475274353909391143105567447910252600318731161748492360835675015590469348819689122833354859977001171304459584617514553265234323234820403155120311299237834209288035955129590774712884474812013876138136526634460691415946017521979240318479016173197932957307144954273995800838805022636642783356697482439458968734175536050692853636031295246568383949114232244906498641996132540804245004323625383094900325377377265060610886184416357995869487274966787855346666563691519933679868435386503614551079959558144707106255857842214263309741396040014792684614865560001144133372011833821732371841603845006998529734710982810262757735814882123012477335005447682939245536847846409082621493860355050041470299709017139226130597093744274111662900342726974169565895738472672454846425495178324753708523635382306178670383056553395862995950790587714932698205748692123124161907385222941987866378717844730758372616369190811662268623098113940608089818191438971325265842829012807140996786181047765638593979957853570253637333260627954251022230047139033721881708572545193561583208893326648792010083682362929711658821144754295142664253284559320286232246298573527921710425882690641170363836904288575603017234308912939305355497553718043176811368199249774440234053653774737306265107301685589954373458899869871182073915376303929833363925886996724431577886123848248023278302494847548020155697482984816012939577313372179309856093872359630022969647558437830061803816671304510118722794917759603450051403485890525366605677119849840158589249420661233830296277354534550290934088618776477864742051551723283602495077276242424776541228663280247665416449686461058579122333930837657585594599625887425398225531465112986152117733448308981244764975202872345345823454641342810097764433512949145958702454340879976884853616672251092647749113002220690679464827293074412198795864709570710647945081733267464702533848585589581307462246894296141193951844037019034055538844153450602676111835426395925169490525554628305950739089551534025065420873673142632344072317732109602074443063381998587014124367769212970862538818064878510054946077532441810243765906528865484904242477012230624393911778365136590453454278431479205957171558382166561216571477612510115462943931748448096652902760192330201888376623304177276054698184117688610556794242914671768941890781560741011308966471663356131773093937552270842567531608156510472814605118077461745585741498332349131387345212602484725617671752650680326234561335284105466477378337772737939832736802411160668521608020892433506523502068238356476861390450886936374156412081783794420031784765442543552747439634250839709890288926178292265058353947958654576600256551619418196401071474613711479474862591815605514358828029016406655581642480837596851806117816178737430862358347613848948944135939492811472739138604894320274384628863883427706396816266288183223880053519525801789494792019239020108278702630149963273233136816882091316004834664888090602624350346966377929164636101618703334139254538093047641790038989933713208300783854495013297022037287615852216962192753473469889217568927548542283853624295309104054520849377664093422707280284428750634806891534680651751516402848931022090860950820157268529308095732457075505772039815579391184369348663156097950429037467330077158114561339761376096940392060450322363053786484353073754948959866492621647551019129400279710604653871600871561184523805199133096233665730553922082939728772730221882621804547262783119542607642346423150788542478081600513868401147476111344562713534831285991814187236017934707989761992320130007210288979232508852078776271787649693003201769950974422017995975512582031960745081487371911155024181668761069750240792830098104329601392096121304343147465037779354311772186231275521399728076762394188733928426650344271799101112372653112895179939296046794028914752395627736833691739761895432629244071458976157490193534685451524944794263015824480741459244491531886176565376386336148747796024135205667369601013085471925594694724186327233753200377453742972946590660330208178453952989958760098521917920119265820874825931779805285005257012329925088745821031393378492294048871942451941343125248256221476462577811304006161028001640465924999693724460213217821641088148224832919716638615515055407958985042292372564556539926853506856987811603407387213310204501603492397689553939741996276515555443940366924534186106005562255486186033324376038344951509018363801934085519856591624180410722341252054406219881569134089002070493126520283488339327596457963642144078502991706355741529180946251783290240379263452226703039197730108245664756450509320420057454047560746276528867018008371433207828308807559612280686643091137765295632102702410300265548732359885260230714030655585608984984374213023955235750370927552091595408096670519292416068816113575240858305971966857184904357585365212114249480015461951386589946715515205989128495424410674821064349397662420339497208683537384829353435950346196022003006321531749100539910318988258974752061149707600451723585416278054387003576210200615594830356549112626387123349104922025284277204569573510693183831246896777801840152752643372230056470115755192513120288995876106256842963704431511587809339156480372816029095718024264229074596586411824079859362395129232031020296521698089696631763597085900756567039106659393141580329894485481606157576663233368918892811541919686057730332739292331137138603362803981346042351701134605842001358580925005439244278105562272224739076697422137883314486223351403397602616754236193653200993477443490314137739367108582312335092487953193199402973161897759073297162689248022470373697742801832545253159653466015874652315738777776752003706377109719642907819199195254149800871804282239734514281894917597827487937374085396577267748715131420285411657951622665135261910927492363027753092297984083990763560793664733634195024968635196321723502567831105971488051425109949059336840270918189844129856886306491121262149977147233112127009314044922877539939298666831489752268746917920162120225310335764484667755578591189898441866378144016529704928104765576042452260422730531051730112510944402701855884090765624403479718965589772032698792353374514288974980937351508922658845614197805662213314396801378374111401186221675446382814331653225095468260469571875986408487993041005290046619250999461054292459547287980925873712077241253766668272576556226235950744939279626088550999831409818575262241831316422520520749526750098626070705010479573390656759127272567761188792330940467297749049079263450006621342651246128846361705626368903806594326190632539304810978830774156481953314491551604040753824615908919416696184984327250728952452972712578642290670766584273304336270626633786221204478006233204856419859613903120827223824272396414297671214349736274689900542627329864235166316349071057685688646574163553928334417574586096323773377029826130730322464632038862027687144513170961889935510384351661162134342378144764262424255391493709501939088206619567853858222120162855863059099054839317883272073175775643740182760958927213325368583632084577518860030757642980505648156624522433720116537513348673092656534722287180074001806951820982217840878731604365433114872781191590177118517777719458387996837801368626038923372915909148047391561384196971289934784108386271090436181787654263277503338300815450218418766513324276012296631662951911739082518968044288873515721329386971182413247847296960877324684389224602512621244694441459866225219068558693487013869476835375884000473763477791525448211374015632591158723469427572275279939396875222399318334256951926054550746217954045878748999706866258090938834545834404716302421543975589336660759024711820802167547804988533657603213471557511437629815472302772845111409795390099392635786470672150189133030787986938090717063084209231625700459646401493702001713244894035692049451994253556236400665099920022195312190673267621136633919641786501582924823759267780707611291851961875042855763028529015728835049964658637823293156591969437544866951121218792034375959219094821619534678510609328593315866522422796130172969569243581001127631458013960261530383113305750032039071533249548598933556060273999551262291934539277103924616783669714263694277945597646306002554314375514983504386067888904741853568866476847502906488497441071565391002953817937535998351213144778007247813850505455855026904129424426110079017769635610905414133987739578637734964314559148064102702619583091686963422329420276742850110547172764078316990744279455624657162245581981224327579205094475154888973253280845894567552136218249319538593458514772985701494351112131212743186758636594025347038135085071581652406648395071861585043445247715810915354518089697111301889317729667935744358962204421808725637025048780167133793733746938026168313956770692281232141371680305030219810945528169535025114374361207008376022585995673399607526323088871615571161012439535642355671760703922239121703852227097387847243143323926515419346305280321217888137057759864432511931754938886257579403478002003235337483781979693706533955465322806968938521079168190642509590907392953707151525006354242291683513028758508695357508165849303482613413649619819816600301232278261731806633515563839034432598833162952897146604372251532560573168140518688913245374002188586417804637273780601128027616954995386346247430179685443033570033848697669654086251124217003057907331616141310523799375126373610433499828456405575461107185236842099767968182133686583508249309065856415994172965989054739367442717580405471717360560356170524034086304452895062945664777148535657251677699105451935476547299472458113113706750778534462213240716421797749006276619478944610087462443787168183624707054039865486297644569841766937035789477438599527070662354481371473350631205031384083725941476249223493518099005098045630876102683959140454580644082578204580768880051237129512187462426916488206967295757947573888801069163481546488380411264262153799746359404393511997180140403673139781420733820117827956815751019950580649573059106277142850268950896693042127567121413279693991240284324301260042343399002202724296546362667913900459719747399723142815313558244329801356778554028419294470608083235255377387982885239252384305352656164726392158202955921553992577193915657336521462681689181734261163157123067066198959020256823655425668830743326931621453176643456533365112239588558685645407041968418924932273613077956394430468212781599002165527683198059870124142780391685829319004160749188396532404865633223066088039917579277882031149586171298749590891698360187737169827566694181221831152368522087273403171357426495040700225908487531853979126065380517819739514199646779489317666642812865158114818394776697779279276933522170848980304757807341357113350371737691197400499208422578564718900825953743769594350331914712391638539356540406008265983080969485905425651188276923285967259564351145834843028895619727418787751199455048217692954986869258640119976485539806094823549578121513062723678408278056882100960434817294512082350206649527570005006607983306697117607606231834027622168816301373559829928516841030712760012657437896805178545698992501568804079438971368737795364180374831110046897957874717046929314966416014074637128470195051835862239588947583904439738401583265173995997886018427865631979752802481190864120168308366713198590936549857961319186632964724110438297366331038914161559745879533391631563036167590321086746753062909228265596275251574682321322213284818532535391722296244660420809316785061171455130725072371150153058823133624480476224153162674360918556749861287724981888994295246713216142567073570081835760496856254569292630311637215829918375925128753839086288486642169130273777085784566687448342744019354313692015980872578738308488496425533930065642455838035143750500222091439594096047007388503390883844573559100999440518312392487017643913652551044495489400729057708768399480746516111254207255564318649321807814991336858411650864745421485693840209045265859874053373664972214640141287142426800202741610017033600474008665142868246483309743036234688432335235742915249135829396358956819702229279539450600762504075323774900410555868863904249258067008364302384087804892733287691736812703784566222291152417465395291006070002927949793894352212439511066034827956116746205309143208929643367499781275612192014512901798664571191148760552895223117674341075077513279473517172824645926696638497742554417399182343654619100287544891000335492647521292259567147213067621860188675370519815496675092400831808656454787983108775682526634204483015663785697483483472188563874476292048528093025265901190492785873087531865331410361846459104761465909898696871485941198342934336520535135693292156075059607050116461961300357534977245161480070100579977929000301689151882865540475007611069587378726878396002497122647711171604708302153284567950117595774896153836150259294680671233732944695559049219276788602983661616904634893718017127405881043670518644890307332692418679804363839923591434656669646782752227426080268154766644285928448041914139251936042586166202504204531893226394845175204410087529895820700363953430948851186732484163121835357385299806647826481311042476153336981246583710235553606836431603929613081784958828189996959138685859198720983106482204219747944756235655433511311460554962804793010490195176559969246097391716703502035947369999869727570703650799150458532577171613472846684233108035782680104817711649370421813359417915859501767438840643883448705931727783091517569400943834206410840422638048373859072780555905959157185471080232598353951297856925445185660298269743737573750147332325650490190311385583227206373513622447939543856258919173272039733315256280780508154319260240834642875953477349567646172095411983617810267133978887868353583778676233119872022593744422338119961518074726454241109644686264317461532184568237467568109898488139683663699987061085378190883452563330430695376563999984754794767468077822079604641196289382986542593738614620018460616719431299907612329477227065751166457238663902342633794977103020001450120165839828445832684586403626797831777025521857772003067481686803292765165873521820330813015188640672513838838165890910954204544383324357679532008672818526889974594875287585248205372069477887740276642516593356577088011214477647682620412593850715567331132742702264704450199237722112064946695695695643362977623707306556471659332863611193501810918288335923800994273340477330312533871166114433975374888449208281665894288446607829107289590111595790000678276628770913475634074646046954624780250660375324395963342186194758819545646845840086382926369227929497209032736457035526020707885723516812012486583365732291932539515527548347407880933570907267117553905841266418355210009160746318724878284954706787388731969483139189241797832032284815549091610510738000455131208672022389196052490626542927363441719477957336240840610416525056155665284631254917868852741024473470385723630197797221895872869655195527904404580753813627100031927403704427625136854931764216793425241616503991509495713440598372550093738201591293668865224899756800086173813178853746307578751052240751985769665363980464368989716730429697561623290860109541273049222917577604035482706039350440909039128030561245933379917697633216060007827734114219223439873578908527014327086765057627561124408485602527106030630697825447096368701239838964523837921105674219093707940574552823478371620504976349139222839628976091690624633782002262537268947010047672931514701741741032339374375105915301348680635683566289104145441981892847232901844292962802838481770852854109577753637391821005805246474054228548611983743048359606062955578704783657145540238282928431320588577621173282384594364846022956229431646569699809875483997129045006941690471405156989703436503701286249553727244591856759067499276626696121996900416456737698643000390181715322524776050918253562108484435614369889178240189715534795377335827217578424570654693860715436027947264720082371088151310859599797425154945755876287543519634314234027819717292927016826130296941428322493905719817871425567093999882495529122333331623001202042685491260675388796092095204826405295839659896532152489256290587756866664802093673640114674658547565966020428441539070529110295313833893712970757708777095198096287067233956596705395497959832581371949565214130765984327962268637463229615792622553156309451853416563773136084846903039716272625517600544702588939569207733352846229573396577695695564294600939832570999222376123348891341857455689498271941375867636554987521600764070603553101573768785494296353341297416325375777501616369562230502287392741665873499581390831638774339125814101931084776176494227196582222933056198175912372213228154047926560011897693812116312833048771726745968230172514729134855209861594235848787124939020411038181848457431903457498706005978807071731267843355245058975341229140266272818995212783736379763178319555582522122434362169753336842852364976458041472121566730073285647641446264795963422018615698423126954063643642639642986895704174515661202084673909034760220806770049246260869864373817233575468832929425244532658467797197818496537438674489585003995898922902617961246864199712401316004766289122554175778083643624592611362961972167681564298244412342726606198768484221621659518447308774917326616231722490344564243017935687667867310835126411154018958780408420393448918996512436876184599654513427018405619870894907117844366355654674222830583999108034084588761713360214494041846349587156402815491294972054484055524085305590809472618358157885723441357424947001855808718021121876694704273641731955444521112585407209765638682613621974136698845483331862349842828081594353909778571822326181057241409606440318054755569041237059922403823662849648841047073552525033186964142186590570902452574793832356069814300077181240724250490488525990659357218370980778544880559685265125535752064522695284867857805170736192258343967347610923789110782375258864200616766038775324147977146542685939738253497250353919440693634527550403866638507889756584277059596581924928688055595011682700471847025940673318067693146760599129645533937126778080271762072295257357886118133541651522365194971577227558331943370293610602013053349882372716000125492529066908829945909745740636607577254924647497181521200873142226667940207578274627204036538475000104159835715591165748999127074118936641674693300236295901896584432111982657191028399061266502824017098962479127062660880563429663490456003810318548558610991606846517757467578370892556356327412180007879113860688024394509243100177297411394225352288467887624591133227073105575307445338743045947588354540776771563441915045342199205792297915832608310963001074977000513005211109813327996083982202803942063540809642314735622851144184728791774025630666413215308956048871888761180851385557640678582254293870870372871025790622314825522393574318443531663260179084536678456770655501539786626614010108397898400187887181578805456928517072193621544481634292808796209052554770450055826312597273792667403562106837942348440398108999097474573542956925777910572596455364275281311883138961401963088329366900067342543597111901043687453912137754478311690583129799357018774427018943531358537686412067653339675980604610005180718990930937731977945327195192970062321350005950325595234499106691093555919591283991929908452253915164049841669284167357637694849040403315496382361646219483301975800397841172274692075249181158160996554305881644990491711552701965661701167040044705975343382671465192292358637260763313354490964415121439753607109511887859695360576122464696811254716009872569174918092868729925134251551917746393029913268955077656626002735520471943778962949080915733519071606465787130022004369939058960891159061724524031895285420693235092147524645505042190125271912388378584170265191462523410036283153197205201777887698134979415164530288782242582167781740525346091824582042509562823161290326742910044539814390274089598845529772363066102339888771191513117358127008372785223811906879058495635479257145684401151214594304657019306545568383078071119514055614522170810336989441664786664299230232590085747067718071571064686573099423585843805614326709449245690603958876335111523340447357892787118408587912947609803571189606884515059792824825571763085334515190345284273516591979670456398549819642920300572979205239815629508683262329175478645895748569293017357520937885581366446906037672755811461063220247309957444562491789139659465627320602957183955276231751016000646203507133765060416382218464011689706206299176174986340852091170807150011288544813182053888882214035638303589084508320707448980120372184039359747875883791659678006072084470572011055677152998438836026130208669688723972974595326813232415631229271920229539148019306535376665973434845384925020511404710934079095780383838925914995936629469533738033521962712001460497762051372856386144875361271108254080420050682578075946234604318028652229345547377572039090078798463953201031909200931173427900773833671280697221971533428496806911210772934551992512273121693604564163573570046300806852599399897601668083432940932952522052374925400822223884779814488936373425201009460724140093812018636043199359440924945535142421458389750197482283717627726386703662733440320926349661924219371666470652232605791761568194159591421911092292451651625150892923165032086886543187458693870013051301260952557472682967843775602546815205321693165987385835514440759278350550218307777038111907854205522773901296552273700075712381621289040344561875214773541780510210105769674362057866833843038744262865495704589427404634076530544842556549906051228591007419242062651881739662939095068522674928409533272989631338624721201602457272561712941536764752681725450063476032374417178440336974164532503239820451484352670657321686640635774105940003170160174433706234971559318585435370205771020628511392383370195762022153626446055915471981487025675947070582271822225380030883213088548561473646793656002615303737131086812462593315606135011337184631210558893923600658039296604078714051221312208442420647201617105114374848984697391134109726580620671236253968257529037626471731248897250113225374671274320671065864388473525361338070134967421417880196019343604233787423707697077666076518504907685193410640717685178453907965875121518431910574652185803554566571573719552278725409975481953440351347688200115119304527165633393767899591479687942779504073131266266503587085660748541309207308154792842056426289560489323880600729464643473832764926393842939652712222434487865549300479144873683711318698108178246969077869789635677014622302828928770603632621955373520975075982743901805739822567236797168628803614511244173631181332613688817722466187359517648309042497341538132767837807485980085183662105223168416899654474987653538843735346317957594389088929602315643776291420765572420882740423928182683331991784080502853968948090751476337427473587845044194910081523346860181260284020828871910579184407064326460487222509915177654950797900673269865765899213753769314482311213440032984763884898670511883654383690005504095682639898064360609086703893285262735017368652270924936307858224001182905951232138472545397724819535999521238178629546201666605986241219998540783887642292539818178003035894909431687191535797224361773014595583107349696927578205670222270070670589079111198637692078200475582682467686927154402979345890766198045909253396132002342510567668233301339357310045424790427854768480622090009174290974328046726697640753597467980528600824871388654665023885325593473333861637114458262615229584743883458926641674527767151355983382843076736937168627336677674563640384742494410788002564457921036213150838309870336967961987351257864833200223085347158696820737174648513897114296322337676383513989595269993941340413815047041617506202488523541567707610335637743697486602515632491354134943585432994485809347689955929297952222076091692653691962555324841913837439453095789576775618580458893883938204261472200531160404457595690475193758944701295268374123280142702998681308594828925232611881827506781210632657813371476848196629665594576371717192676680266558212982877776300777785450537912873654429098490014589187451781644740498825082958416149879458706909487867703763455493023885386150040198444649641067973010350549478689567535720179041908924534145803214144149556400966025465711036285054396438092467186775424486674207209547098290593880661522961624784847111053304279546423281051306675696568254110870519545977783554858796767414768480685102783809767748578613427099438323229680589893969130103821107713497616431327283918941175608756736234285699898388424531700535905709732791840261488935145581512321057405397491579325248444977061297312175096481930106251908547571317442185845565609330673485433488362895886722951591305195944067684081786954359474549916248531649259885152110070693901933418056889019805730043084058007146601239318732992210200836310744555969165445134738827369942640969170049968723331912446425323231533498345621265795815725533377607248047257836075966842452763919395089616656492350743017217785916811608806262362972834880840125353281947578270516654552833082740147370039568137643373759561657965962705354791545254220308166002540021595031491076627351603821728396647441063042612338413973368069174836898056368376975611653559899894679982264212559851283677981867547042306925480827644815095713229188846381049329248352970902738763557859495602364191989562033962142408698324308814252338902952646965069052655160261141266624635459817265276451533709717658699666595407083619902370273935762106588625145395627781354753816656588377386946939485325763716433432185522628646344037479992392735078841665013945761184212368620815002787624839183068150372459411029132298986144538811488542039679388521859065624729547600694904338192230184229199229424165307145525869727038343374598227609588335057023034854633587225905922645445167252049786066794199034506034239841090756524254836802719007688021202575136566124566991841546058479963756088590240043626481551529589885845668262244494684147190392852817927299565958679709956599768100847973324106157296695448549306517937192409869406088519021976247815062526655379881568728294206137417638834944251242023538366123711896039815163153608543911675976395013251478479503731768664508541914055115767658420392478883481751649227987354000843151493119841132440777002700563687145874062212230323854072659505530156779020026583124685365466071959324554475032575165356898032494640315913168616308419230408268954407458853898984539134062142104846809603866769057639492813423123839700763394511461015731093997974749940825240357376726836763595336097793216234630867213160763346640788443470975177168570619997842209890866825289660787400946845834309889906113807045687005884745474709893423841924303751714980564001007432754838856808630783177259428272968776355356575974400197906314778769141312255078593712426768098412000660379891265085549914787416244302802581735260665979580926768291121085178104695465818450471289417290036863245590706601895665831565295467907579254231907663483451594437907163554299653869260262388072583276859978879328242828741354412278154791796892998909976748157720852296484792451662869859128642670392632369300818497607136750581228848758151081278185599853532391380576785723533466889134673272260767560494024081158212433237488748979302755238623958204445036496986321129929193989722527640855423355741431059454600513650696587530828317701405495703936710315759104252199755022405654358189597547428890396602900401548743881143036761270764016795550957931352905416604076143118873180732512104229334024130189319335237960821645594956186161873074504990724935491962649693636977878145687347207151832972901133608196572892085730679443653059154311320247208235014260076853277546701657202022202893633212047709621423517510741581176747912939889688012767388172269105445131091811268587367932485220641811826069700467699104146521158279657265214033929014222495807248326472018958595883396300831938275395304025002283042926543014668322283467040413432683873237002331021298666780075410090915081284809177984462929561703013732762677632762974767135265624701915920514546303543064067673916182390870343771647505275204040113581674531162159342328776992294908906116618861393820330205670415559947507624909266427394471844970980291427785642139779418186145273947263471677119841298647197822550822096901605665834776504797889871041045098552789449860622907221686724673141963279926558838470549819329405148938828174446009287573067412419182760557663966016375207537771430186511085086433468895155960574025620832891121648524527354245507421766830899089304150367277738144959441635133843217020621748724349093284752163886738219573368775971242675906365996855793056044215659619293355533680903625144488756003906303432671836320590965065858036116637190738376497244855564761876997573555268058811715358529646644428234122542483519764726594739573418319059081009525102122603080840249039180871533155568767302835494234125920843884553220130633272269082862182871367264726962447360867350505206572700425653192907960117423696076859523792485979245403744925476022798693624831325797471061693474798395063866199139452580118556469929767510308164537498892396527152726731090364681451495332282178429653315776107404014254257168564304416628761562469991997295488937753795538601945131234157100159866661874320916072420224899602719680762813482980015419056466847432637055815170458768868047209913401333712329835283339400116393131306040334263358003872680738664869317725601489519655035286102731979582041375256987410170309172949264028451552096056697429359489329052383581356922300995726098168613343156875673264572115779625997620975313145542216160102936029015474856817052320150172870355799904988047415522069027906723959002948728579575250495595791539227590972040434086689235123130669494226690584906694105189264487738875083674561147651638256852742928205411497909493787916334594116503217121781093532862406710497152089338554906405971941371751130690545819996111930552088392033447007413853752976796966426608380484628864256410357666528308225240249438379108028762390051465771597724586938660461424748116890673191053816557893933506113983660868131108120412438189429530687369326459736083526555018267541772435521321088163008756535501481552703473022185590299435578564105430886549584875899782913765586299243119743448030236189415948217601723621074977734254349541010387832174369911061911645799137859252752935491410150736793472737460445418868004412609892344997190517988181192871108787221851946649513986631385711865170814503601662932853209531084392518752183530696281716302091224614308523356062081937792918449397161240337955897352494827434832337200303796575894150524889776591935885242643617488052316861578574036315471221824107099425322601509146773677672002449825304857263311804475047460043725964330938717457705426569169285879893477711135213912074974313033125743436905129605107251030321005021296395891267882392707461618313398793613624908229110826882327132633987319880327833796412892652669377819526648342731683058605253021225700547763492612912685813635473775711395046348150920908500940253714388405731287746139051513070918261753124328454673988588149722623758774058633371169913075601847453137616233874850814183691021015150033867115683009012864413685162225633985597363589006876849016321954857036437739333603848692637704174225916740714936533813147770932485808779888474359048193400746027978460075008603963938373509030460478800388571679475785553511394476180692530400381459383248184048736951844072497239108372469914528134281722457583523855905260747028256714954951501714464181143764600115107755649564664413273226397555435683664516673073635094192792291650473399032689300898998499437762366401012528118489283158275876645903612669574133793853370364308467183123959671147873653821607232388599834987512148985234552356095945220413805871546013956640719662636001565795105967053531782314592028912714910921048520760112047468035847521130336815098037227621411492519191121961267672463124661102212754660981333591471016630032634007861921466758767591874568326598855250795222737937677164431206242919500999406871470490004867699968069529587265990583937144319935122607850195175366636500060988248349278534253496711187309411433882102703445613658201288930906109422270320576254307024238468472280236037801635794805346774279152482378906486520579417710375056559162951954931023755001978898262982428724688398618714372262021354112897068016582092610575387886800333174139741955417330043209743701477624454097480475838899460250783611848140468536095211090434238720251573939226632704988906294414176459222255061027804923906929057421504111519011247586331446837307761374273387211522617407703481520324377338536879065248388744208959241090574213144512160253608816472180160259384945827434440060872091624244018968126890685260661612607364785611085444641913244235881681623550662866312299068765147593073753097946570008413329527875982342661829022804631066638508175640820572125665352749514142111206318748721559926104389033614551940101376291282725312294454363558902649574870332057971189776401970752752857271723472023331324774083546076951760995562696769101817627814350897230665949112407721056772625962467429479726985955815490600092700783939516674436313921092684614939479988076053745458228719073308295034914684112139958787914550127208851930028139462841861923628181195535131835221675299896755488913674248187687019339214325024458622377728107333144691028339210986800122226453911754300449332743290119805604365867367676406546171675328214547314495756960279321868909805206031945193687041263350656990681554314935445207122320526004447232664588843944272311662000026722514856345764229960960386575571031037587721453031390366921177073320843314419534494233325500246124150704577312755228899389384679384094768589818223559780934392113232293269571596290992211553112989312910319082770472037060615914664130500116426175642942241979839937615498446253332818180327722031083398734988192437044484583554640560044189624060468211811373544289787969917461032580591908304525557518147220187902563518403503532248073275353499988586448310415659531947060229407742474310918280345888085282911979819973102045343331858402722307230815223042419752097149988488319186767546511947419342777732859923636056673601714757479090198379577461421042421665489480999495802568924505112363236988334984101201467536060329263655575444509607924951336457012813394235818609121732798065206118854539046616113125706581106976717137038148529974497223041212017519723777802294314752345882917701303054708592952010586841921175962775278093917920742884672839509982167803648355742884280178429897059277680985523748989601453241275356450722544161114144074382582776555394320431425835658166520587786490862647032291701018403960794665622882645335899338522120652575687689812825775970306156960500831317171724294197271274978349048022962964633116401225687323423710656416876639702409810556055858679230400368230911425949853353208820083864161399393995686263335031125371977117470079033795311278825492751606548645209085789794033202713000701778560905771134673569014802716992444229340351530535426952713257971700178372400318425465363048766777730954328737377905180198012236862548328088456086862326426578964099503486682268561907967140465689049196271701747980896361349660729270540992730784901617059131139612504378731416364559966303882089399394473278349695267170554940553607408080047542517997550208958095199668884185414261033228226172008561393983447550959404125884028377887059676376306321025023244982121797553955206389900918408535877188372826073450061356698377505206229579439629353232844816073132573060457771214722499857471167902380843797649268938862426536502458778912841169149137862002979244938856371305122643126862054652144740546265471440275131709374399890662469899186027538167497868128135628756205704909756242488836928261472074482606531373140632965876355412872687337937390381216755301418263305954833187058664720899768988597253731705388310165323603876620784057158567862954852992304435713561758095973369023276300727895598762219966158888966862148232745912256610505608255685963528303308105669078028796299479556116967791174993009535789363785368252874610481911783645524920368863894581532688113920107991158007600104558523596029780024029348353441156742631913464362162679284063278373340423991091410465571969069763937511829929306034158457476689943618336847619211740110069436461440443017834780269401159053330034911030229685129145385053848493391705132893949084695721311577112943238219827403472498038771471053121036291102420268682552412034740321634899449135841427943687357344205840028730602524973938299021714477558616837233763569738840279658996942515716001537324871338734584783858261824004675693799494170744959172210941755731616383329327726159669380927414884843407306149531818243008657840679829973400348653057092838037417456172187657932597150768379193102444593604962486754371576708825057998161730402313803848691888599154360925755544518930517268771120380385417251439744375263649686807011832808518118792764039728827077569521307073133999970407347405497997059962002793981108972338811000563530265356204269076239706529998492877654797258670353128190544829488770399024897417347441241190403276238138071132098778675993748720178984431249676087342251327724405796126215881890177287357403223318518414098604845764853404117418789781583682119192439682207659469808645734363712251434057908077881388268993323329084482567106301275670306673577729515624738062371408956799528659537708552894323987749619766746029355813083716819723518723233853591791471354656880273980139857895789073394419802007010334611822658496736436505725137775637157425802325166474256695313352826775391084210422338578053080446882990242705477515190279551112549600286576240401448261764313016644004542775956121308841519812804185366946581430970189574134493018180472416458538643182640451091030305758243167248868585312339771061045835556168716163440977454499046906877019030164681337476529309211631628988706103380193489241895432350421831111824614908784785666225688430451486604565952069696136609854403911086129878853450521912168254896669637338112440173728011368810145872884688211692411355561747571067328673866047462902598889179097554019665993921889026541365503190332766890276496606178630685137750819855948680088332677080452424775230998501732291422987338618909367559395344353062679243799564005561097743115541127779117239722396866130945566554070161078242230266168415925906132010649804159852313938929367936944036852004301681538476708440976692028604152259627095135441674395474505102464684855950185275371330593511133565676295087558086573923226862601519302329925860124321865919304207859288948646130890405595676704372110158731004415004844930882242767206974465053605496325644641347177419817450950127921532938496399875603967600317069091954000629430231135462382443618820293570144354672445017534249756967446002065701785037325342298390636600393674779386196836658814402723555164879469243014669341555153401369508791278001878405187646333137609721087128566247717083501239515096494958181010606604091020435701930620258301719367796340085224506264671876298033541125701742982948055677148310952598225600920082859122039018865531100381009800305353742201622699390425362657272778420311640851652822007012783390458346410306241472456426888754115918516720477043164514480329586451650877675501114500613822502118364160985843287096185532872888459965416282172167726810829963375624334152692059846932747641128262890900929776250517928077625930684108773309356160448835978261204204875745056552067799148255547869997590723996038009857765770756954641995643369397467659591428506659984879461462111514617445741182374117050014157830107759046598916604693482049321456074386369791089155700347766684085574845681312455640136914554264594421967048422120291170006742763224176762016754249006299825764198319864691547603835353106813007729602624912794237119067171288012103019539498253537563212483199674314500089926611899431638633787836492390838274797839628246460462797851303673605367270874865840149093441763517937920631842465535132810885801439737036770898273163226374720207818136802186245492245295751212934151104277616731307423252060771080922487104121160850130377532611553079188979927470454781581294130227319858464621716703819710326311190016311244456729050781253529407430425287099814559308168809597270701767322150789531006478753018013502952595474328285592055043072001878397148130454226704492421625965513663315234516097090532730311464621962806084099085989747135896273958301217737532136970534899086847157571175858363018852711140381577056561342333613424692379814440552276507545269542882009640972514828207631894409533795016686167314815618389517597240322545357599026273868984125555170747245187994954867574892120514749779751300442713591843846425487324356211844009449378955477990814571949174836169309104842610174693841383121714397822641558839182166434977256321067106090006953400080541787030122695123989806661451267676101622656204521742132775377111694142133084061470790810466349116355703605826896569474479205655468967776283339546377838781458569434544129791092634959605331689095545892825900630132036443330177464763340644194241722259902182714492601390795343181883753367998718079502184782416941763991098415480384900882802904005918996063185797044315684486342409330992288499077512442252186072837830176303933467900210775216966924374500792267352815715278540104323778622209010075769484121068667230887648655181913976729311556838262290548439596581312620688977188153944098469361244880544652047196932610322276333809894129900010794908816615751275621548762582638998977024883903581568079767381337408480176296166862443891957883622554179560169176310684729352219990605091229812382992183230595628412066916484757851684317800819762219326809465232915044684407335632958432649594935610129749240292936270250270136105544185492364649652680614156493057103240485898957025942032221037292089910196340441006169831067112448041540177804279195504292830015862927940957389196767573724567638573622515349098330758644375022229318438135542302682893499120334412287608840638617890792209314942306004650969524762202754544825630493802247078053703190129857625491512106457986214357696927003455113910865014904501400094534179802398425190808144702755867711985871826942113966340768087741421200004506131254447451624139675269782452382989326801672805501391248322029814029709343104894022484707422867856013558140770828241902645178506965929163317726033985878088438327229005901201060177012691665267904559766423727548941037050159334069374333768031822791345125597359053338783331219438669560109580813715477639185098457710469677976961172414982645445174296894468495519527859080581257632247525011236580086642847006233339066935793923062473460064461022130897149601555360754049866742095107901002074709143374659821552611695948296810222284029297773720109198454828814099277285677562546275813765837851864741110655740254013973329170360273528292634249503276567712853724443230698961372398353023541038125503564693719625560844253960114907550894414351741849964992894732423975795331859154867676611984216456150703482684944019469007485144196761264151084476661100431657736995751993330123992159535187533839079584500155306326188420385047915060238099850201876503006959309337895582723072705127911128412824941343948168021281689721840197929786725493524115112987301823276582000601110060433878783764360925920065939870486968187626533370298163188187599005268680910414765466575502657214551010802392063861494354240665299802836986519767241984475860555508737596152559375946814790963340144935401104617298148093268761502565259659761670358316168094673660421526776428974504651027724625242595764283719818650727181050196784424838339506033428281483778882780388025088716086248598620207887586192372393963087845639925183151092956799530728970532774415650130545270385156702268174176278531582253352020391629492309644055827316153953543745505776621910580987608108077251394791888190356976895467243523304084018743163566894623874911677127281459487581680040498971799931110003739183709390416079868742467023880323466672932576881921633933312264449078033945807874708656636967380306699653484874111179591065155834561463969587062644127938795323716908605105102637498072909374124898758747558636796549690776380488625752088233850986949994011577213429844830687623252057005143478388877730319740455676248382633472404892154717321876651596127945383034011409134130783183639302841964006759379160911534905722670375394197870247546464244722425324144968781751259236768326795840971987222186153475514371996503305564919001467392641024951967217504926920155824502450411303439714054670418547678200593485485693918622260908687164360684897360630705006381614921930465951513082070668551788356271888324078337953991198362041397840384587615744164569576714865324782082904423504859252308156777867342604691882683449346219073516734696745765597937664652469189952789064049197267912243306804272904699644872104190603498867738880849492061879126716049261470612068204604431714471668915975467968225027683399855196955369539304231106200300023032213045818294295764692406675038413591032463478987767134233972145964589769933540023811787961219782168295607415463723254022763141853182550423390230292627081742580993145212196833522758446299413667436270915328970887016117277938096268866137634151399238362350880414665679176679550217766347808323398373579810455724348537202309491069434905376420340868027514558412214766405407439370388675467730492248599989338236174471530817383680383867689252048789405999447541864358811656425031049874601908697817812702330731586921186071878902294480172207865960837392085656457607379805038371769459114016691423481010252064709922122426112079266671473509799882838537457874199400025940004779127753990821947255468133355527467951174397551779262946022647883761538928891920250975646160369456699661674550244753097460666936816960364302144258247423321451581998011934052558703220459203093567703007379617386406852323875381481532634750183702295663632217563341205450785125243019497251604871913741414082195257785195960216610641352660139923986117368237163577742298871218304361355493656925268094435414644027888416166250636128225750457129454506371413544727945023965509036258675737886334146242302915660068569065472441862303942597571149520051386071567851086321283523197229376594345873643939014832246596098922248856560875108797359578566460913005494405888389200383112704940951168918326085896841332806490698617340204927557516483650576767732868666482579185414165566905834946101291622998490993172401562234385409881769516657277170603843039199447739624062563186066991228997260383129066560690191316354878641896776436044845626856349661240545565014807046555953524901830372908511274924894946910316101290357819407798980743607802601624465488940579332061632281466158242235154737459365801464259176606479312791833160154214528005288043404729565685046102044968013208085710112748154752835519876176583668171632004398351792722233170581869132056912556413349955310323748096631888459186202541156393432172226113162600457523909048360575453947838436027792349972495263374277666860051012401015772060691265099526430538123600301425804603494285595243521396083267883796635648717318339223846663292599471246950539549574001378067121832084182740233943639565631535944219530993047973896791357874051244185451417336375865502727881042553733338045467896381287414639460405949016610735442014153543617303424058217084941006174936960060706339240318954526124594441934338705307157775713095076625970161894847512926917747128178341732278145619649029513057626348884171593037891327547289975566289794512671196096799666689826647473963606872797982422188442915996277550531110363661117556021728097838705487672020480890856753072005347238194924536905473384106181110714305572423925083694721265946110284071178609079229150168429533642002156004549521800033393093476281217218018550048281710421617220397955667379885674989129250872334657686806771730857655284338314741962719504476234182035194409775758985106102838511032337591417396128960213062429965791987877580668226734517406246030590872819235971610613531067010958274927148344342450467386518054327057839569854571832446684080911167207085986699202698617889156932011942598173165080946041818500772299806151004464588572394835988392453816250849895685322938264890233806625643239619274305452732252708520076718090347838778743253460113047048825341956554170052159225659146060178722264633026493009935733560451815492200597552612343375061463727328669158635981543300930307463952770968360654138982487398563542642365180081178857984749170878046007385373713851630993299698968244609834997968392238249235063875416836754877244156580295319150984241488078726279205511318926635338494652391815474120691971483639249372840401809574140189634034574284366539089717362124803261190636062059442607435871916715849751791404676805498956242858567669681015012635142037292062841623053535985323377468658958647206495616302921570821122222924425357291168935088048553861314150629381323229357120954869506815898835152141865146082847027065521885315014608257929635437496062252217163051513268352369469053861222831731854060396355878526168993256741253397027685452728791876463106778047649236442888582935121684431555169723730656339614481737805381155806916449492370465708164379855402343866069409182211386170396143100137762733763332529488422186388053630527786383500997752631043269041182196696538001160550101204342097399810244555631703041122261643235798385620699870924722988756881572044903331642732196291081766288307300593987214718477042072805124649151204758309048543504852716951762686360782721701125816477901473935440625231572997939620743816745860462634374318521799202918754579706139265568820176335163674966141848246909949261937296040292218741170661179309176495366671805295387106202745570665307505330925732970117690108016611374992340122825442126764710039459238647076482562269298868272238890112070377092997298864454777451559995952319746490380859674185302476618416870228782834131289595852366480708400397611308671167451346575195426627345318338544301079432064684475722986889727356724333831483836548786623402272690466671229316851702631476325597302643975195484668951906379838733996070800079591811246045139441362300720913193161781107937790925577613625216463537519853986113707739951963748884828967638297676579574043883503191406230027133725203030462057555177516360489753237656495304511746917452750239128999294493885706325516415175493909389700026069785754365396327290997652368769641512477698858588757243277508903931858193663817958794741882246209847186708824515938697208349454007611299669583552823653832626114401597481413414640556494738837560218679857271873778806614327257705853446132844986418390861049550236051665611953400228114618690714465982074621768570524315513869018019510491747937606235794996461556356319901131558771718059495766013913083854496638076712049149484035627105008887806606845598037791733168887638336360030086717490632856724885037447679586123113995332295192897921696957469069536459921541507869996750922611807151799805853578785155919265617141869690119541570896976866195032462186583872711993562881848215683462673335707709557949049972446273493563446438378693225343574626860615641756357931139213773282370492992624517316402498767938747792674682917202810438167213988429148675647320069535198397686187460831231841375353474048829086394015012943267900765681530641119168480183924589935019357446619244848972711681791347235562184777798264660040481975018652593768074988337799446119013320305835007389206242028619930306388082309831458811201610729126615716870684187375724583544622948849544768388173013692038839861506422369728793262335699811731896648465202559177578022761518379267310439443506711831932292687391107103101541643204379054559164143863109487034268850749018685850623341085258013798139711399184104498729368738935887000786564804790934913251271344671753642801924142914029869254419898841785435035875683976923943885645932193872556816509656573236173270935172723090361357567219327605342000279265169757418482562714122725027250814682700269651142005504748204510176093968631464082744258347097605750897363938455829566942623358045879868449969612166401538896838174679451686626111537809778491321001684410734862594529144227922133826016523000646060028627781339532721723986733920088516949070784341305542578873784458580515400179711022243906082759779479087239345194854242166082150394963971564079456473520493230518923512764144204733229804998788671965659078185459117498867619165913975142755999298539472698938388161482899028293531984969866437399070600056323290427089286424985591901414846323193990677271833709669192944840497679543814485403041632786089656385339852046188462682490743637869941795041446085595690151267361556586345595086142530830339150406226047440447612642904120646118095717606973998063323361739571186472299440303284223325389072271281767172538625606801714194451126327353853471035234721179989080483920507175857351453883784648764890562206503856448514458803419399633206897538434762053346777366413076187118184936768355621308203785982050605216907782207879497638064787739466478037350163511446454348092340540187710342645246263193261017532795267631174768565866419766534614748612942710423738728224529572777919497962339907892841640581616948438952468374267899840839671253868428925346576091554337438862857359871249741573184071402294756995194988396893278381869472084895902052050981347219378915919574510025548768136647598270756726991774143086272358139348188021465181612730490137213337225292931973708190781843716434016512494010187797050490226040577307662089301492020745493636351957642227349092551576779293788384956967094775636943506060630364831936456021319438186560914496874325177403728633474867205490616444370213100674452905011968712530113902094951688985748919386658744252804601003482562397741971483426371963532237429241752410957016225281742542492178894466343376786328087031791922278714337581525397083459007623312931648364964806186921512794175308992373514531531774444869940491128241730944418553534517877324605920732758086172156766542351247692909267439077328979227228408781620729103930707687048767064877253705838905429670509421549374370515962175587108586156170103110030971459084141785944637503735352852224072419047283485875816305370405919872747421185934498891380433903166691089454564469803120722175407245240185863882837829406565977833173877867067739014028336135832767312967131144362958306522670066747986820246779057979877590394461143855099893094815287083969621590400475653752401495278879507607848214764740854683995448149771285018975275772219019037327287717034474167218140113097660543045331470478344738335419391460561937484112932669389552481098837062943619915163718576436697534265579138245944955576860319614626716110596697675911863286017899932026374484171707338795399605451004249124375472169399661305557288357847433738824242645098306666134712441916119901984423359053465235035788075127790093829713027971668619622051701656217347650723350357815033699893146920927852100180631873436100940699422875284044417604601484276254834504146537265730726358919347799534907300658226742839748743528855761220195026522189424899548896576918492268164556092201285319228234689610151139330715048331515898125433673932288936992050025878705868143906553007024770155116092512684883876157076195658047102564180046710653113548929817282941086073466394882022815955945710391564505609961122023583307211703596069083839192888777804719896708476873366283808194827245895135104227798634471381126258241692611474759274195617225531778344383171278022654625763547218436932966245082657729553396700334309375622065086640015972944554436771022330121192252226917750612568773987578816691833548861144808178918165989070644078407809180043452552339541193521503929987901207127432482880348986038942791613355428799430981178576605793359244196301506610665083241851363038712770915440656623544410098216753887180040259228024012348904001196523252106198565466749846608964330765488414172742220987847937383470180737018882159681964441345847496159183931192718701997433168097342507782824466959615776222664092331390025674542979317812850224491947310358273220250630538077728933639280804606756335079689532685489013759478807594929713359631935031923829434055672635919025890896886827932092095582515900244925891735894088635243084449046355261611029523121847679128816377773751111087044161363549381107136683920604711176881046903759961557875476642414457424246835740914016864376364171761367014657212923107047623266368011561593572545328790490813594014049097282493381624099883721953052991034835108277885610385611110676362238007918504472082822633254919605524224708798877306216347466169127238937806764905692480935048709036550080316201357406862422030883503984868175217224404113291643285037276098332664821654774712752078018094265805316489247013471030170072853263225732020794008313496173102376473987240764771295641457947308576788692208760768237286528036934332990716064355719295867608468824882220445697146096478139656003132945099561357511838441095679508068583985391637805219630078751752750117646019011864831392691856575754595916953357331325299893531080433364826302552829140727140799475253159230225795574633725779635307956063533147577748977427618536751844973955244137651274779516459599688221368308131461543888044599123017627343145724573497692092848042016659651562466590542671433376413456046842570957973295560965447946075416663163798582446617038086212976204740462892375289003896765843910267178308257326077201232617719499988514465845443494387956931444329086339631212151863104530240974012964600115673832456792173665469036556796351144867447039100877612068921405077074423539943181267605917680776643932082611304538346045789994491383705701230289260798216042042067081030466872074373498438048090631978766868740221519928148595635145190422667277433318445486510935027799565563943476590381757515508247301914913938871586907228864214641572650113828586169296118920610617316471879369839939903647208256943341714067912273775052191480435473092672435830132345697654088801969442481366480764438551272418828854246148850755761751915423579422176748202772501271176208042180339504040653800474139125941546410815865931742724259836652515558244203178409712206970230110490201464329815777813997442623907966917072491623467295383764997131924560228113397504390416088121249585581352738863140917906100079630142558431263319334067825063191625605426028723855427282384081243743059137693343782251428291701726764854858356113290313585754420264674384741873796807175840710043623262414560315538152709107909702403760727267608251458319045790443224022010751589139959567101118593148372932687281810511758294509448330422594464739718310491397378837645608229411252232452253460429768737322795204226525038364261775472505371242016603968701766720696551597049825109623726442511447136926887708600128652194548063718654383058293175561927671410836252115403976460033162745658519857521143805659236772058573885763976596060040005500873344435052657115063044635515872550639478501259348670705066115629438532813700918234021712408087223479036760717985295671971510391864368021827070105301491428408742827256200048323459307445166193309805139867189695684334768091051540537500983955775586327392067513656041888772794684953199230880952663174414848172174720677021842763940665427502747011506918285358476315236575236845725962149966329338562578331317085217752934398899149570473796591054188691833872471148092832836721936144015353156876062311642639361820878257219039952833756035581004553474980994599332274200605021001322994029528507649255144784285349573011400124636928233141785578342074609380962901742206776993527676819369427214034832685600468541698846604706545153371632218246912678547909699779225558605697941151776696345276121289438786557919536111441379838317938767638187187737234425519266235037566223108886540376954016447518689397262661764548433911484258646808916387775592598207507624981275909298211032497142500257179052571775163695290916008541370582561718462676753518428153776865471826588313977156091047695806674614329097402448073913427701834321028176125503445236298058341052821352479023036274187770992645455254591008706932663543058850122493139893810811985085356825249892971014599598051402588370874660363611092388582828143543242510471666484202719035660978714720421131911384900360731608085692727382819151353494399608638166004966968439262175562896235828594792313424639308056578214599262046701224457615371713892463028194505143483039609471129407208331947586694567367387510405134384660112613094362058226559857137821568567962643533276919432067453105649562700646766366334756301145919676774548727996435495953259444556200822337612588102608649167975213256017197110770299390098890729180792151932222619469151814674366830994397280298721978152186103250968073362646744031819550813705811560677468435759956271104876334399491975105775713646938900342848346166196102201222400007146585636354482481284123131691683774818110132875754652235579865262768050382922225470111140035804990073544794013149211660440495205823961957196667446330613687972355742034518955733207343118432637140298446090439690515403038857134676152937654634401912415585680816069535132926481245722912270692487420226420705862850993454174529999631873028460670463538594806546345489983601708815188587086501348192877824626750710832006411077229623195780075673845140696146234889713811823551603337549698471233685410643090830806673898593959635910504783046987559414442958861275202984522937054620379250692116967112965840411484022208546842413013590643231960886159580280780374998145749819905461387842099912027570924524403128918108643229931926601518111064665568852515046023433337485256039346921605316450864709868584727633419818064622246089692239080741992866290457299869525401201119862247810699938487301857974779806811075491036074489832689399087728126431509768610108322241052093571273813098987110714116931049408997998058189635014434756396689759803705539305075940116367658356780475046978711554192361021874308526767839279598549571288296168191006074562879886765411778486077844732683234034485425924714859848570706906930516180287064274004964364438497031261401871487757616013581338115176458442715843817422354694137839769150010883212672401527901283998412929725043508362595270487071719501858810092066976259680383284537766969612379495260864420448057675882915770368828277210141124227785867233654736178994122318461328626784987575023666448056636974915907611502581829128072764365601035166738634033556482073668008571831112856368392650417230774719503779401940068126409792787565287223908755309581343630295833379710939489329561142821494856240643713400119772464029579807587947313353992298567433138487473351428015239775352069216915074825470909625528553837643378535596518229341250242505640771228789589631905507125258483590251174196126308622843905367171173548880436514312400844994886913737013984699087080132728174670899345966758342849961809220347192606153920709617722039406366534416116485721336567312659343328885130307085409756877400224654595091689995892140008951651476298153769874013008658679767624663100921223173032460572948404123888244078021243842508268575445200451763874425069527955764263892800307561119711223064917807826628872411364916344421233475887073956316243620292943948593752699534566771877049875186081949762604139391726240602638361437445250672946153872547831532608535714932648546991746889912165789417394101346547336219567981695615759403013704554385389960893704344906152409384785269230011161752892067233090269328284876248305297082703610841113419425494863582652670501477637340020341024107608467353132584243440858727035160988841884985105773346488994653382934079336711754174113629628340873433976242833235597331821397412610734566642136945177000936716173683762926324216087846247394877507560656774489418186428648385982990598691433221256679961527313973797129771425460243375844226510188076595952719566029597906733779325528986933501357595276738925053386401429886308552394656299288647984941304017387808266475736601812485927041250866622555168904491902729475323171373624660651808857971903989303333293411427902247358078972854509544383348941841358938535757516365202306513061102696338583373881585275502125757221322323904446091815451349375237472204959611006990233465718753978564275278420226281271944937300575093181077102748765066984940973059712687966695167745176166459954169966647577809343301516757330900167300612853766304870565554252051823204367580982665491003069414025489365431409910556626270134738420130570474402670744263160118414542368958131389331425434543595117682230030161782089358099887096041383144743991670084079512277659511269200566282824114338477301685264448690177029744483420457843605933662577666721802455428982019350742007413336751427712564516027580991018564188038086041895798159119317218703030417463454029589904282702785533459914249439286621985898327296164384950956363427346566753176109567091474719012093162716045758208408024473080453217883111871457877038856132854071281825723691752950065921452182587834126292517538672189969993532091743168177486781418606894170070802570435216006843995222562724559429954322466684683705645154435941411986332655387679184742207354697261359422035556662922392263544993563904700675207594715516419858780426858643773529391866652766363778549376911125862371263733766646269634525306747432593340066210033819433547113440507361484076982988381705582259909269044207680504233718542077557823014732444889533133435255930796663925428110013371607442187228705072988965583944941845793977386592579137524677461061610460128244630601800298152723806113250418985865220193080965007423001771960490535148081913678078498802122328833914066569158725684232584724803860869216039757248267486240723361302684287802934554769866290344137430846230964198882838362967371223567090395465380553257504300971713897174633008175902714741292892286306243568280950756654016919548639433465000007373035010868127636464082310745380361573376410001124846363868278002962537207501869751290899193467364461284556648353899090543727287014153283223306167286595440678905258816123208108422689900878007045133705051683853109902656332252704501864495983518003409258738382583187124288095621027413122498203121030649883602286596274748664098242148345425550275699567569654915030093477334140734843290002563122820167725262926832118308465504666094783150327947137580932799385882722193478900638288391534485949911957461245411007230281367750483654678594892465242271871103656127458495428803071228536636717548929317090747177252876108755712180845465872678027114149764184803500362815748220003532874932748805778259303393988840838890972041981575117740547009843871562528712972961191750329095376997900131250030465919706985967404879492411970571080582102651235741073342972483359990150656121516870932151348217543256333804018421885055403649848551351652765423698006072317489047703466952497363358663399910251440189905104178017084122521668910747959716110527816425067971675498105124961316793510575643538586448960914509978892897728796913250060761744800559512574345682118935904292132892695474895048342041963939165809168283534856693368160695344219003727529609257809051691746913552844861055171154989985309656082945540254190474746851933636685925303084752004221367592742350091661429002882567726140426402576889356678033857891232671994114909381390690909515427727453698360157545436921339257093277886724215051747917316601929799995587216749236720864753475685547148435642948579468928066474821312570809852461623981928458807767549909753644932395713739621188597629132193636616608259703303552370239359873822033268978331103391388902749982306159359454827487202557088775431097664325945592605665986719925395946846408262161875522751762837368399161623275135045251155464844219689656393628458372453549223379286319000072339427023681507923873413763635212582243288848011717978277673450227057032191039964817394254134063755555485337389051544960291985327840249125873258885494314935938082914748604362170832285350545589613538290592266874823168892074243835561074704193213606182002700865183657126305457570648720604482636125007522535575263081469949716159613858282944869943466009435335834893988233670229773046536588744716579710325904276408212075540682741766035687260461452330813105905833981522528753111355105643109271029132407421127603517217221423522767881106665757973807751001672330887709235668784849246033882048423916829752672130581716253212780156576399630417398991261079456264143537498062769737587211582508350358063682078791526349946729676874372185442237472024014769654574885180004679277483969095050010878664696439567444657794483125343034445550940592335962859801073536689114829357259212421311723797198869042349478417599631096650007333073595619323343716952360306807412133702770277238493626299621106427224242883366147873222759220669196945939808882876008495768009508263835129368847595178384748667787820787890654308763301893362393977668970246947305243954776201079767696535925679233436117466634132221466125210432228913640197112252577095366117833132127026781784515706687837760912201475865904227399976240975034515809720906696111244810446266079927780628191393639122187248116510680283414099463376123499059639159180618592438025940937878957853111787958991731640014823352899042950542302095019517186095327321683920934492076209917233805743541917882628240631527791469759017320380011300000008289878739930170337374222854293988723375063176887270553708784999021152273805585934904572301112836217394297423576872842876943532520907113613182832164610300944365234309722861126265035907573648634033047278573563030580996088396752760292537838282536248848809981537861342261800020238242934857758653875356876507735000687637254695926301163775415952784590946625563273026438894684200737087814845903654138698693460985132227889644465184457139902203978273185450566936328494707909582623125550185623544331559437002146311462301256615086380164371193668905831180112967061752017771960393047153170230783269189213520195492298407036831486175621732699474869170222425293619883011283746954359873251948174648931716759364715476595463333458494564311574372466662274425980802529402947239471599651712025224391581046512848844750737898691567356196377711144512957057598036434823785646588920344063395842954217337018738575102985851802780046257060001902816109205488507043689328360455876632495942760608438070589286855341334116985241869046103501237237701508362738157244855222038468187872550411833967030828083967569123719884450416435961754372675405136958722848344737126825127025965156057227958601556985175592697127154313598083459867094870099950008308170713162997554684915130555984347844124005682260855141506185066741276240577874924417210054274656153606598240681133871470600899543507560477333135583278672858645317976243618131764833227929303867589368462400233576087387884129148797927497221923891609711100857900101951643472297463776009914011206556479871525610622358585677177227691995246566662857669143848946633902244736962839589673755315389214834395569224167371963944396285287989555863518952398057958463506541738145867749057998477399965973675109095881469319961832895321358249982240890000895981695139087876601881863447231878964508777904025940911881389066477041329509740874837661631746489871618413282275510163048914640096220831786616109207603360195317090704815209405850346322838866753184223517212753738545737773091340482311115015635523960390877986081410002214501232490561037341667927056743088026167286542512400116205640400655439126705944643684867748922914839413438221696316730772219566226135785033399611422518431977093310510241808830802322199990199734495147185477156528940061798653596843505167397694545663619329281495335454274610663347224164764874960973442886801091269859063153104654207960493291587908057902529231633786782025451306498532264824679805595144249651673509283497908785156324861026225378018849204929102195692029981602354695870317722190135532255854069935444339838823756544263559980920127716901104194637909931278396908563191859699214839095700586297326550305176629588961315455339566946678795382039255256301857489007272383515939294939437393736921237132939012493549140462582833681182586917052770743291631114706135239859736302309569093557339504186906945334240007952370021341364821214471847053042303337194546050511883956185570891049697275442334051481925099497694964568278445714733138933123559912995005428276148302049418819279050695369369505964334125282439295637865001368177886127733764531640575710960437605443362319450375613115194232662716490117188104370090607151370211408781439255245353908308294060257916458034017878302507258528950338106673393232427188805622688106556315794292000290649423267995799372039916419575184296694464356037884451322380058967318540284904975201349127108153808858634232916749617169936134023119246830116674460099410643554176577980331943283560515123364566510201502330088273846944839861011278382712090002454020497853249120058360002179230093960269693665563584514792360213780557403252746195999693429351209577982228456256852206281455006272105377014060954774044808122563402142851179562628981617024241964252387975724187770059175718134589549101969242581932588547937169963970275765906873761273552627800805302943395451775715894717823059196787246321297335327318833682612093285073449474059374882156530378677010131327923957576216768950208392890373454567022210636104701202529948313236000357081586411143842771930319569729363204117938981395966702908744623315531777408873579147262624963066295069355720645306029306905517896981588959134776051821865672868143593865344405198761950648721180627053253259237960427913836332374848881609225172717511934021554291552570271911656089932198542756017490162413561190404409878712454869524033961443833996599085120180161902989795926161163465356357788934121737326256018491275601893964758432166887675072191575882701678603226928270143035549908501951827687852855619470009695047307530347702209384395141615643147913873661741416170270718194746217677545423166559507627253202621844844521125312528505979607954468809916644987291548148581528864601948175176449790571753546496080365962549720998468351527437445246663623488832598980280120167528856708779651678600581219388989224921382381242352368586441989764816612654325956467441750659296124315603163759864460145484588110915196394234074579850909804799743497853830365811230258821110361182953191078884842184146233733943396988563179106647079104296312373150898873007219069359152687183724791722968336604086864438985161063945648449108346534821485379174093014868199827754215006443116068926104646704955350071142492166676137237781566026204610310721455073633764285044336660842271725169679833315541447419570369689489322041286097971033004607070787605316194591662895175818378047270525651776498905869953369924291536418125053476200125068519154735405964739428586955300817725701556140288263300240253455856265756583177843415514383413883206454362308830610765619383250273705047139587739040917794967288694632432067627362762096435910983069060049805270377339870950188573227961164307630897739733818227489543905696701049955280879975188586752559770682434658405720709214905037622253525494252056536377154880969018146200949109792506302405875104294061903051749107309334422347000237986411172746364816540843189637509836294733874351132799252327129565751935884315036109349018388382275981693309688569118030413038963119764690596909715847470211906691964870129488782951788169609764082893958484357642499178423567980598654907384821836438416882500071607863425778726910827024875404194283202356034322145013393445235403606867973637973994705262108681783352485328151059043046201468081907283233218461763347825564837905079634865834458418505816296382766752242785839040314390769823904175379049944222187188692152261061210041887011201376607561882724341678589608119982022431036659638700044588026730568420117574991188093541772937185758344951837339321512543002267685173350812907227053275035497276659907888988431530921308644618988007935930696444714856928620300015893264789333927639235236809058094249236701384239052370489050805390385537229896117606264251940034598053361508608036306542340037005156901531429194858050187838515504545205295263101130372385145677354406604033531616017713952461540768045362190255718456167794240153038012238570000388025645104810348048921444509859166332857716541536959876515005230775349403762119825947954828275312398073338629673455228591851467428870058686889144610990464179009898786581914833053261590068172758650384858681282825110319662266489519496751979414594575875055334029214095604658065615464231859018696232439981668001240577572827608425788815136324863297542958115826608811922992265685028230831685457917570007392980057747029179283255482479141761394862916928633377851319504479948366280842798278671923826390965548642512364471208709945256788269918564334509518714053866304394100225916980092412666287463033557613271313891870125934204587059247246957633362278826736705565568179688667089235162706283175327333173797961802883363747137271796168338719154549098239211036601597696514547380970949689553857845924965896801581610068110152817789431433824368572038020856680023585458817985029503167436098632615870847839526287528902076562203161529994987733528663207466391716875881934906623197187872297187044819900969976594434976009608617142975767841940314970867068317265514799914375328343858745668522069700075100805761804486695837283906531157213587075499516737978722507566042706927407552494686912803281642276870356394895558914974637853092850497114050857185982195176986325164307573253514226938796657243786166911028894309032189892336673326678870470629403069662578970106530225768081052324528678248549066700279524524429277862083876558679738713836263844749825210032933772108026944414313467557261076323012993350294884545978966501819707582507954711355665764601997827354052180170565376374823995752733874477601239864583468278581532300926051528080079259416051242680644637458425302100400255479370639847617140765910469407285666818463327198605071073650957047379200860352811983660069685542971924459057959614147350168179627055200580833840527448380825111446686842568467640128585942135703817160286361036587277715599039095326074565139664923719805961653753213778349508291079099361928035058560492524073391748799924550339408631386712789602852021983669718121545563689052611516097422859510540498332281114130775566481289472810046463755033853552184232595666079862335617579622426456644739835705106748003547291008623660013045143036194889704907260613880549843465181831106950036926641465793533231430505793302826410169168835787220107188107569525641840986998904495950144793663603260663078559977040589768356162712457613471165108965039478663940687695171488855383138356438111447961851068536530359659373574290657069683008793403541943425853614560840218488016169199436881544845512148500927613389033170841033943716266916909459025470466934251607020600533355721572453151214101324976559352363266438376068780449823252613027164248793629644655216548012178911022696631878000239965085868061396403746951346374292424034810294958296320804908039491413984694839061465528671811622393736358957485932923227914527726228243131551955023859627242185766860445930217571007221140364191354291196580141875974437076288604496444078031794498924196578925359501027161154426108935812760060068119623149734111777719727714874940773853757029332588838504126458738227609254668262898446996010592551337549724657600300767689397507690053979536514878703937624099781533138210738890888077396975104241758270840273622626356051979746976752506112670344526303862031188229981569034067051266790492455716616633953374205214516631536707274738025914469065200308173737738571441906785612474718004875841620996121445468035960205870531856360576843214299616343380540632537804975472760213976025692806680555022852140925122725376098523261157438888919276212220547259427171585986300501377203607092255884713113576754877875410932423230842792857799980659181036511252243281293750172762114547788938747466877502405741743778895951910949516394991953265613399306412579982695123096118454327941468193931948145736912428256825081244630667233154138609598968796493760159282795305577482525248300440933486756243117936407938298093514971072012429896667055939480425357218972515042509648431937668330932507306960452813308692326080111728010962627528612001730610391336446982042385933860363555270460370756474000061260907650814745179978300163316018232197575141436082970818758381985910552256246978155582968999404453195417512015506293995619937397654133657248057839983939782116000352676578673406696470001874569099376889039602368631501707064056043913537409245558662136814804938043808343846531383296783275378788250858972043753856962999449888730596021929008633746913470294049135405830260298167873218014103578459345197336973730602552170795257169671914790102988530839471424689206664591806088046879170098332188087533115782977830906325720441280530771475295932772013846762824722002725045493084758207744490830253109200514704249235853778984377167013348616436184034770826689526869254223735989518921652672297532694517240111458801862818363443923000260007003534812883184718972047211302497529830494577594743459205382347418966961842087159975815865656210809925821507744732572396350665291954777774498718134608059776414552303388545257378462924981638992202358297062279677934134691746394913964927343856720518592965522727441262627630972534416695636716949057093243021302422291528649022179455466289929882435237872976409112274634072636586994316030711079677222519594188076573277149752468380670403339886943780449166069384814407456547711169622928502927498874211255221696645760606058284093490667112654168297043618366897641059995554349784740534842837515656467944335234242324830370803835369910933918943218876047328192394564392565605569651511179822761079565825244493583837963693867811682772048728842268970721435146820752600358438822962752423379298137270462280944503211764820228839725858587466290628632764810821615923964757256330205068163485987198026296539059010496856794092939487235326703563393905423485555075091779084376495773105515906220359624387941389156289787807522802200416193267827114121681092664052010251538020938204905209930595126145741814345808072059286207244923079339555983702858643147382993219707408167931930095120292066270316386168118108108478263264153744912570570056752013532424967807275339428839652465583576468017647653448895325983248847458276149283442756999812411410752063710406179671859173363103138153045586070693946008058908936454916645377806408347843935492362320832703305615836691143472484530992887425230371535068150355201654461214459408772113212704292074415199503215202132785709531127688143350617676827488828981841015406191092120983470694870573064976516044359284501496273749174544332990270307151912970791116002712489544140327658238215691899473055429636739605494791245205837742745235108438923665664652593117148462249653545750603559011682422693449228162661496411597130552424796414813618271138073033679578005911737007103276991303874717309628720668902199268065470007872651465077242313778379312720143523654142944819116311549013188709381143822322614514217951590051888181712179080704729128166556938871193916645874242452117742249808576814809713053859772007265777072816536053776045823743752202797697327803478170828420389374226644532890582960021459649120994770248095867111093748391084082614478328965534136499113561784129453970261690114554349352439203152446718427003280417829251334035070138209319488401776829841489580862953829249706466579026199213183872166478026931215899448275651572367688657840175527974747673985436627347636670880627665939481754351844305112734203489627174244735570969956108859807351287207182691192330849140629626593804147904019777651104289211051308931356223172437659158422742252436224560886141044231993857099861060758893513531197667702099811624337001276105217754222190354199320814638826431799455239444351947462758862875206837627669049154898891289545486317261187261424415859004481744438676613256528194943760946263806983073316675391394771671258103854068495825527414188129398397404942930566937373332361775771989332322930598979461735062721383927162652621424052496920599401710249171075342833371446092031258511830386918715459171532045356603767126018831501870739976482717007217919714297413296551884770625036020518850787343384075434332226396169349118980442031849304557511104909402700552040748437597498782918326455621030113647305694458732904899353170562692223671577789306614095582043495330865336782989711592899019464678335401868078517383904701468822627828808497716130685940428326763625139530963433656874331309140311492546709141755158066910723165724405984641220566385405759562117173951962720444221728932008106477724138731823159880775697673311267873305788008344356187024542205453907915145403058213901154701981971694974225391920257483282790472576844994254163296753927404069491133665249641115119499935278289170909503778917734010187642128205439665354983517444917024909877636966787404036796016245127618982534822267875539001105159445113158264340227157435885156398516869801762919237883906764526477588575571945200607797295197892262718864833218424331235982678772731601670054412186161050096558029474725105865263437965463553733402623208827053793638898320192523390753391774065185763180063642309103490567629550437142192340652157515033203483470354720436012076550400638908831127214423915750119025658090379732939944944875804716983987701144478233512793211791672501031233446696388094588452382275781241726711960572459460245130819801774643437440709873869824773412503781302027748068904030074544018936399504305830734247706860905853276395716348798716124866484337656900929042754979490327588325446117289010170624477903393878658656878718001586733006198805307288587665709919902885674184920042237684784650340832149836892234330889057530331407246594802139975531093457652602466782473981987947559117978646523092379283346684004207651884433277027758519028394691423209311749084031801121567466671853331472304861789129505786747690655625977722162732171377129981474727346190202327758957893113825348080304956050750206712973235957956224092269554853980121178177274173891470101168969494882795239943310910779761714119492674033196389317046751252929748867248509366844723687689245877522429604523705845655894075072288459015083881223390283548599343085671544707325623823982469115671939797973265289000962706803755164203620246732027308696579246524531450487241514036137639644159642300300519547567295418901674040264616535005965045643021329761252489055995232255888736288251882820602742356525198697762093572311508975527542610327276165581667352111008189766583155259731513931488473778018845325128438244046636663487218314578835913780879334353345848410163449266391049062483681198538867997486116055621937920309731695765166441200239931041919996501872694677837639225895824007267530672010938471740607234587496676163721273223206130887721992529182917197356531900972723015246634449921942439233636346650817289322082000081906988992678927002180907834977281946565478187210850553497259717166006044920402391669652534318965994767188289293430536714482161374972036983713274969828970753735718067524365264556381737442462815189666887711705326526282036031310053133071671875256071440430077303741246002863019008910236697049591597305693137601902144964431924569434361895981246785509974622558557856164907438187305726924845212326607341542705565709583313430285119361285196009920617180599180903120805367730346336297521868867384512292032292441412726550156366762300896115749039973138340966589490266196693284800731357958593779806964551785554265373675458286024967021939384475643121321914711160347130428111757336725984700791151254350934628798527218446547584237791267453572376913257220841278878894602562187791267604574344637275271764880378299334665859359923129175203302231568399163371639468998662102365598115211285286870155747626943301148183929383127924669894572068755747725976216447218553606966545063907283824164977899446347358975202876940008120460134446068372736314725860204722972690831353706015521185940542540480700730458614740269075282075641450091008711149417126410772676645471553002614461786687268468497631694867779877106717272129225528837507947255288897913500257926866562913412598681430712623266480440732085779859619570059391677305826713014091629958435110608966839517706280444827616414412219649117335208393685110235551410897556264799760653670838924987863400393777808225849778115927211262497806068570983412728283310493398742369680364685277171750647220197476575457345115797777085922406213887677383667798979523138389148078437758390833784890427942388429919110215549571888589964063036491471995854596526062886617510031476558679985408121344723460779724410279437442853604104710382057015086869507447607031657837912564578698805315767171056775821149651010749479259865121666863153731641753589191975799336951770689409373327852892175127483691250090111629333774431507548680405744571334404178402954053518811453485221519938587014866161592932751575057263834744283813249659196059871459109531471760047562599092853075303627263254286161596136181094990894417477720525144539815211191897837755198553149058848070926835209709223513421244467949209438222050208378194634344082815588589060736710880753401059604151201932281272340077836011230850007015168610447161510389941586929492195707094253214422773343515429372276055773465894298918464694715944331448318428989948587283450401286780330774636255581734111278069033469005223076792931455879008928778456276427528834814643171155703752156140787099123931295934659659055392960734008355280823626182896494247443046289720850106538778960567973328517013726198864000157747123072715744177276470447762678634202577866083444029235549670175826015245411887762816018179438996148808486563498154458999937137060077177359541167876432685272794856534617586698347159712040105221394762126077521617276567411890219593246802398231078495095230514622588968649080553901305054023484189829068921064326830250051924621530583002073170369809917540191828934456584257904079985965549512897882693432898268271213265066114739010670228689633329270425177324537779374940724748842581218641305384093010272748032613662409694505512724441316930657122456377263816255750585812210147076327779634685429200721619952851533366455441493775618866619916257827788021040641717367778211703289461036641356202682533572796502104548344995256007859018813617130165136056069199523147859304405807129259038887685289918625836046802861139048473125245982666158858961096403504269879775861441317585664500818932737427844807370255188435686782095685042952969473681306335025699935073793727704445881336027730287800505328027290955659866032003898998165171553480028024786702914578423054673358503970064489949021305226974165835643714174917337235360863278283041719335090892887350641466309173804127612336732809982487708294677491304321004204155650403821572184546994300685665625186453614603128076147899722370529927619299376657314220158603420773759260554057744800794139276271781191324128580260695058040650404038514216605863772057209312073995583190898948727963802444497332722456505814193091196019153916841477697954166555778957157517436624508693271098862907451532570172404413408577401179816207671173875775967561002377660084918903108420351706613153276706535352885311226007001698924056645938397985626312665694532419710012851405102412930822687956893568101478028324478614051190487127100486293265248826280669124661512688976252858373534488205291435267083435102057714172079337434961680209714276469993830730660676168633078686084729817830760153968544868494265409486805142186386943375976654788630128818969920796904368670905079420679209179550525085938713144031935780000693300631364410062530480061762764488379918887552571085561428646681298143469590655811591861884454744278747743574364505890820215033927667944284019119894303666284806918000055444698629869405576101080999831527463215888835345216662825953629000827300727253743133707257495535004466672979260974049057393520384547211750921028580699868712509472038516135801003749839489341958652930169871559015710886213815216629023015101009428410932668695988495898838259467219380833332749481008301949162708809774019127898497662416734133126144090956668469023475043721380845120909171885148841330720664321836011702180423952946622745167036154733176205279564416269586666739481585059427362594250377165041631820165984509661212496283618735056971025452202152408331591176424518873348564935438324934153271694957238909255724171582921571335594104615794023917806139828539627173768756820582922095273082666979782125314815304734425392883882468369504100400756011823210482284079992161676301240058314348406005211256050064607222441644691365441153172004432890361533331694473678489657728404657942324986039840635331260741400938074698211410697350182175442578382020563810671647174618517763475341834307332217335107078313607626591286771077935736688610968249764867910374997323356805535506751843041538294332090766678248351768037020884870373690639602751961570325134397090497522590100186046631994368946165866938545013600559809368399552240216837955192170845378110878521549297606675007693495884506627457516412394192884850785669714491497174259816846774485462082775044418789948650133212760422049713866253253673110891117600941243180173612312858961574316638422165531056747543315683028482981482614778898389603054148848041224284909298605541358454207987132255441330960623984846820705087700021535180952303710836351451366105152166132610270501347571297874923184051736869760628885337753456249689292031237615481886595508994229199923789516063778711660661767479921185693221828203226382218825393861094582529707456949168855515667725205861912549550883093661766290774765920196067944353995605994357910119423421245961316260252232325124546391803517139666744489823154318604830333592050052505510086096005420195711497970529263707297941380839191170659149902809711029424502904654017468903328230408007694254896637446136947575171215543942349085644161771286477993463799751439002309583516946852736846395830385034364429391670817262137866993246025394669149802153021555822360421197544231561148495902140158642762741368936383853588715904266215261459315687825158583130864569318571223596212880787476492500654920565673151557793961111431996988940585352515917982526083929493935686069574111429886710271462043447063009541527114113428017011745791841474765680102584497526302165315805274407734790098059994157203479387964069676666561290371139405025482850193701334775216267421036409468509588331591961686378519260255080593087955999494199160206786727007916395802948042832377687564850057558524244134650650578617073962122690817021845413576612012693611405238200389657322799347367282034365753413008999776074907101070768861178243631204119251807238469364612063455744366718592888039642238377517476630029713482046098969556244989441581210886001473405802066409581317737476492213660319886130713003840665776536366132973485522635882662255246414581526251782069772380402253314565273727145026913047094125704753966866990552265374169328622491710075520743672543170124047947572783379382524686944604086532659141088420411744025205075841770520758102396164943894117970400582256983011593721424293772086849750959676106517280536127803837472895295764584294384685646484088017266028767305278861732893174387978983919922750986271597176666358275526040059886539383765537172915419780784890052340108408886190569776460947164040099689496590807390740330087728885859141605796153544355098757543264780518649788380716378722370725067607755503668325655458779745475678852916778673259892145185149901249305486761896319568556674772452679405744787490152484551029388468897275798333540637693620703407981225502548615273178950428171793813308810129892776674005632680915496829968068807450050960231810030605228989755049290915960500203913291402440544456446431906496817807404040573330074289700715475196529386022631622099767243842766903560604327083345243132114927933395625330268334270247265812607916009417744065100703325947737152019024592619299655746131264341655205201052146439869703807971283528107411417023363471141540290000339006850332909825264797407155717558784430518118078239625486713780364906318701452829157332711932994666011546315207759753199102455332685765517680515333829348626395161391416150562068343853251923851280982900558686888683794690157211293182496348054063730724421624280255853170526417840897206364663140440477318969349519532081025262914166735210148466878678373694194476557853701093126058028583889406734326040241723632934354634572549647832503655566898912384352383873748505683379283913963479769618452932734866825276696824982595922704336443679034897411706133544893579725714713752867032895951160706144084705327051556672011089009733113460162094077043915889721454529103809479316802747977805359200422295824022809972313506741701305017941759507492733242031896657764794099969231540798689811291240385067102956827576209956124111912543315697354159073363923076768584094689938164978013708611620115193903237235425144397867610581664013098405613287324540519007455909587744882709347574590514907737480475363551740940889748947347821825818498480656491431657467850779737377000381236943488991677358467531728027238610783041035851340263234115083711996163561070984510615336809869396686774228113509736336808797381829450176572226063446949848283067046535920323420017176534872493016209018224203757170018308579398080028726664823235367571038270323656821976143151172744321593528402232790366508583333587837070359652028058941189527016167076495076009919425275806436907485196426242913980968589628321753413966223712375133783341976847768684333502997974214251908540653896235716607488020161667524330857880254905708393788915883438127144125208239599977488337884802569891006032097435081469782345984380766466828799943050311119377725797757961618757537791036871053152308950493859170694573918872542639117418548657971899961207165936428830623188240787220040123175628783401126972902102921366502430387524687937171900507203277451960387297412800237060144577714486368763789912501806741369951468381676493026515740261089863011888945636250744174850082308583335471394532655320569816379069704742911979944237375090887515615440658124692282187647441647692200282249697193719911457382020626621950213965224422946816588152696082050054184550291743695802774083940458005780504844214274854264258946043624252051906596565035375023684515193104543733614716603859179356463786596165596394641041549026666486179344920412058849752677075850188447489127697383811405799151342892118043078275086187701512059317099417075647842943433005377561640844160981473514772599109798171426272811020717871442831354362811544657276077624601421641513148490947381449763725399665307308162360045240728264013540233056748905986770208249025313105988748980792396371606882900688941973669753914103358968112802232353460930555148567952932913719930773845957438514306290265478717953349832222153658732130690449710479331137502097674176947589683032756388992826220516684449174376609452795811324199736128610366434596353419806827659954267463282163409193422535924367212328355859348109106197830799227048090476403083254896737935787002543225497862353759124131594901887433866443476074709154580079412754708338852296585074239711493075416356385669072092583700033634629564098769238087349899155294226230032071921160465220500605795516209398884642734817820364049311925629112481430333298482831804378305771810055188136394041724600050693570485772555530387331053135953981292557651326076841578358228885074212029005762034158805164290544393494163741401184647050348411762548712423595316728204057985703223494189492044385123497936001549672410884256517462412170653750624399688779896972699691031860646995172197460105796069891597239280408904091609387601934922429006042540207247190876548594050475835852719076093267427980614880171678266595675462218620680003995745912391315864534501655143213032742716328750894252786529227921905210347079670840956534792031684343556589399389720342004600343205948128652619548015701371820419594013598411913753811549772691184101161181151164698216599932559515057966598177121920604251522947734190105244590284166850059998705386527495701636458427259009045215653747132424937669150124417299612900960985016512567061330673500605476995875495414503790091774968816258630311398496908734796936436638273127220061926568041686835242661594610936119113627519431386103405326047144557976751294605404866838968845329474180814217050631624328269279674793433190375364970040945830498791196082232130476923002603502733598209812876595919576970040412703722236181675552021711648888852360660099932609816979242584667089928146426631648669164390713228947607398715550594979247992174569582488927881135214843186634603473506671047419950401439202172959781213802996301057333006139415801363716544593137522404797419498950520997630503344603917264071325565697234854369006352090127516672429667255091248275208116864091490443184050502826076093120181401268909410029657023659437212801573138269308680154948688934577612829263318483444249185912811084114743462733578352367175664952623329214013437341906296345083363025025355755721389894768243658236299784950807240648957174550777820897562569845947861659327689961678580721491075403109135818436644895220830692186566299290842602623413711999354179940618050640603478998852030237134749788841708046300270456564735043726545468475306636847900903187250852516166518658217010652733573071167517361248938167203733174295648230656480460091172568865266094529881048940794956612590031462557983815896760763709963095632363240841694302757533625327462888338070087180072119977662587561900029775593599383893737561800503508968602576900017572528052257902729356361999048703589425271474241917990590687432094486296133731756373139655729660415107404555598210036637799925398292845238305134015936756881135462276412403519589449556057440340750818598672772033087039901536259887233527062621184047370032915034216493097101991140956129674987200955849474692686338161156546263181323531486737387934024521818569529448856969592409815494754662691215806472516525283042644214717176815313960158473669790441011978518684944485100714324745056126657041645358027541908601398156201128563239888504135082977618489625102433098606042025749591993547342697593790464030076974239276362872780883344829879752865946053816655155765236158719299502943651467303708257690195325190714732285190523058256923560806181052364344412618750290017742444132693443079765233016788274718228308370232893271849174387804429188674692340396640322115911658890438602987848754774291416819060241409491038776438645307243838317597464308998162953453416252279041591226831266121487511415567983812073067053555252235068622112409452929378771288055508567115199872553476467359676832798745618220884777570044835408259906888362744331075746113891873685489650888263692150970297892782665089380936179471907753711345051960334797890046669701820386088254271035978842833876681187992043766449385871464442038280976305679397617060276390811673502577608489161298858177229823656588699619144634847833883758487065258063098295311484693213841148437901117763088092997250583531387319199780462253834986080371713494734701139781739585404967213258570942405740333770911941595383208640415617554693306588235751553294116613605707584209218803600935698858319906001347934967802813073377680054657065652810634478457462885988645512453151071925789681961478826064371028937081949803997332238968550595295132012003892559770114795673251922543107107782417785172584118988362155712793495058829575591744276852818418933953776166495279227803540601379067334624311254522693217535285857082093356644051161814099612583843690522469466287375759054504428371350604657847490647252344659708662495682412896052126764007747517754124563789750769952484404479725414067176667889681201406090175812649847981397230314741928326230588934322229379527180047256068301862177646590512665970582904071732938466380693590695795535084854123558349670606408403179160758256319782402839982044294003245848353258185233650505788788819099223661046316353537346309010020224811345128621510493217818678800017241123380681007386230322951054720634635805544696202353548749331883330191827833725275485891866869942679327617793677350333536805010731272359824059609283890642860140210656374237263299332410011340291435920219307995270753450086205015043525617611551382076918321571501945534745967697764545116792544745640783453913685600915298550714985107917027357640685167782983134937059425538209843853017841472357829893794060555983008510740374828983258634069239198722691716556886361287810425584838549489182825902958361939624498000784312824599818117960854732875232579595363347823180109250481142912237969405266898772685761344684342518174917860940800185242573073995572388099181337168094320528681838694451528298982144311915500088061419334892361161311786861443761719816134407320322584460892083766981217660735268879823178856185574772419410263884140020542869193227506371356848205745178144420932758093810273385144410190440047190333272491816868786009483602776948378309879179547278563427164756291419808159581044884708947766689317292578965828647243057098427142476092342780231928612863235092673800391716340784714749379689714806609227777781386328094280281156001820660550158875440483066089409621614162382421443071688814584559004738231612612162264623294291592731683474884077579630849518667774403771293974154255998789411570891270864672621276546381347982477136453962327611965984068919722879086158914851283536950159936792301862210074693825342917786451743152225899566129671926078220775174531828787989758887797278799414770060906895405978140083622552377209274489316505097785109858846951248483641420885243607259836516528621034772265020825831554642738533750690862156397837238309733545861541260071463917598341469284015945243412088623860113238378992779106293114922902419215285542471768232548994922271487569528356800954531884010818436294614014361264474540870762595691043167595481601532654663490691970924735744188120182782581561408040618904410598599031139505329758212326031832464356440210831044291408940694932486289851432397098435992581952596516477569340294433737594704118118474047394282963342931104992735611348591361174711661603831731737781389753479911741335069181156150610785596515040589530017988979611775496564872938852083624558328535652257884421701957586545871830825411974735431053509188482995799763702512986967961591905347454690644954773797982976944071516609347458374104551676639124330274084165970298996603143556024358864456552251393344279829947601701026546627927571347791239064026406847831959983557241893369869651934969139681822289615586315340158382457193108753868971223777513647159963583684896627031429786986642871001033101044302306488739746751486710446552822227484110683174291319102631242955873208874698543312096379103473573437851669487816762301995099740624356796398196028898314167924525360896268397958790104883351940754403068539313885963402252517031366050013072429895797724524283691661047298298260094771768326420252413016066326281078798646096987202525170424048758321181166250517607324478659771737614511757781152763045799757738658341575987402594940212426731015927394322190984512766546423179471268710468676310779086624951385406943071604490852198289732146835358445273448519707106658492666753301945215169357100731536083735907554399539291308995727102921456130894577839224158824316786383908962056649550019909050792128728159410797237974982407132338494035040925194562271665309826182939120749299992773420294684961146439204143399791820424492687487282773640831561701032689173613050506859540306021982092605523778820287648425430018451714054805101750987159114815732808621408801264899827222101612647856079095987066874230222525437846894034741608888036488303166717960936556180698072679796724340146465532354579799721044807768223271176675834996566252875413706454028226198954374707129710253764022603141407319264418722641367598689988194892811219853063464290183691718068459950799558734631314764780527307098175339062568806961030375168684631698562698833078772652913416342393208700373826787134426130565513829852211003509189694493587361748960590156151291456477440454019476479646575348051740032452690951693004557005801122391570339207169334518892289178028700379581150417862222166280374799150476497085804149781735162599295277145024363535550144206590468693488318409407100955096596564186429619191024359285813103771258615774856678411787440866924648821311848802188438502685174868449550271976739614741357935644058683557006014141668977446041101087240714346281730228650133117708521111290215104095728658505957250730941168595120884741954384182122416628123515989546511130498237586047918981752803806997282476978682618843415679201954606122161077479933740509617134297329532167130145918160730104023640301442955783471826713264611709797728626353027141562845555982149786262818280930102717972298178896330894274492759776030694265659285506580147510925213688345674066318008312419754215758543545868151673042310790812391483146308318196589149778083719844476335201616180605981547731720099177139094704791192672685850884174460686043650025545056389927582347716847437508910863856894311401481521553464646236587263602370124306784825539837723749557074265002637557075861194326574170587473299764935881670010570718840614847431140111224688313666535917879866765783222229613710854617720729185205136697500672081558982518859596399583692699987051923410707363043608220300673846522011392803043375489407839032649277391772775145735878317698259948611066182927088985087078863914573014194640890224794095614632411080465943353894663154037484202798434921806461410324621114030179223828970392135789111417486363442575624278725829824040067342637215453794344716761581597604574853987230417613734731881393757095273398357099313959500859117449811158353773141718714758158867673469423224106905952812678310760221650162448926491683184564400489388800982243649926462042263826459739030929516465133250740430609143763672285095465842049183049665020667102013212388219784167587954394568776102793780186196357328950108629701666534836552138203354449386841197386327054622073185909845527279184429444646971628555099156438027720790178338432838621803307926483793154259769756797028353942386253600022565146277061467982197364662506601677637931934591896995423669421949301216541860481595731473349049285045547612533314841868176101621736876409380899832992036922876780897669966079132559203304473907788983843714987408538390040960129640733582895724693998994115338520830714151018457935448842053672136254346704852338503931726813850374635396950113735109844956228742605935925177258510785679035651782262318153466178623467293525903260376008190680951343818490315355129907146124180793056864425137525062730547653375911658291486222236123220305731694130404573182822018340514365516712784689601938145296729360147689815964446828043804631470529097136042405397762292486253098748462416071166834817106962270096924567867859839948708859123135800432574619031677494885125071090588794635331596717866606193033828003231735881982485529856174761230776579215099061337978908460521052454731621558484290455037603725333477624470977333868154481106215961906462849123839087965625875351502113078799082466188062480190502853572022198582086913192804292396963582188242204105542129920718049581716893075336409906454605784933356528710122534721516565821086200850705110830521113382069983915277240551649766618384109940872851147578122883845711909355924831472930817523914218641817985913851781626433359465971163437247908873569058798782328784169597468634489995093821548005207633482232033201168687405832684229667909927427559565476664252155357254861536901603673187377780218356867993074505511038897787347076036851930721417956649823601527374846505138130053290406798938634626510084623185074921254288240660758788607132689553889481985056586723633089004486028868044293060250198590498718612849945612681925160424519132768963293060894879741846813889854438336185836463604218594962410576191477083459159946611332702526756340946109667863468895540251896666491336776368226599968420457342717764242316019521349923109206328541667319851042750136959471794352291348597131809491101588955041525968493037902073152212901281911040685634412037270571989514172062543055002442053245069481637215855797580327320411396690786858224565480389071412987062806889986999335133753908517340224209709366103693013564579093230882047918156864040735429649541012394504653915614071461945580543418607938619749350761823596793105404343269346878808139462195929648970330758491186424010311254041698216802800106133873673457106908974862844924593517892103767558216653314469713765690292873266929752893892902023137762483573678114292146688956795629547428571050662822267708688093999415532039502939354696371029901852118186177264796767516640955223103302080157189740764038346830702777249671229359477875673459411783546429759709646447731771495367275705645247893214335131950316381940496264555322755685800295173235944952822219187679339374192676581092387884284927272867943102077615737735555997407590641888579873852593500641796387662958484189650687081389540145489839090658482174545158578076064654969726575074116497127410106373238245158233825906270699599907186262188993985230644842903239562685785865136981251314817581538836406736088316207735253203076678397756100353616677713444598401068878032878650616703844210847263056613618245142603765908174040683670362326554201119578652355021480002760136585205874060392254255462976206729592655330001075458795151780031066622074481347348807682625367888521363512677190466779414137564292902542303091299314534131802709517133603231469767635379708089708687842458845817876368138790758843845321860539448840625945432966826285009876833820220014438164616940565830343121885929906305075225737979458004909484086325293679500510340499217463072750774400583348162494381036134809053610715332034648934536671834772406539346788539792813635959889946361796529217953336028521264649464698571286803894506325165808787354976637692492140595885661852831771740744244832205103638719840049453677177093534175060719617760740950487713749287789024918401206467829277519379944148322740768781600717728069154068264512049443679121170211438922076961237141153735204752327496944476423411070439820555715985354878680675951814309041872314107411942886484799363869810597769925476222848484488798284139642161149332379178844436353983198666009678871161159577165613030793334876429158659009156847671820794177600004376549943435559287434379799621690742578069901043148320372054021585708310417317186093213201589374224987849595052856150842863288840256845211938475152709402917480779875146176738892581282554547089651362122434878450333373299123812353337744448914377323986735764578333741474938044158764221415318378267182494642370125899014914993284773905235306729258976376865006707236177881122482242797302851525230642345074807105580065334988539842995654265568056088169046877481534432015595172084022696203641440335463952743967736948175369177307817137123833034041343441902193063608570471637688750642763753704234692885562867006664163964637599092815068054462638028219278507932046919514069410326941368007283357068961051999057334973617167881349817703111233092462905603030750555112381564111437345907110234992473975201580479197913507512056734727289255962592621588894540894998056097819253210660565094006968048411987169310383676261473902259931344103577628665877285247161166815328078326285581196860042775210618125774494546491295241871146627418961300573602638794971637956210421406679659009763554604180777463965102856020955440774741714849843242501304699705003946626015057499720936348675296931413203660966524157775841130799522234179473409603979802672711570771518412920884272187090814546700826189483041620360145381261172126561948064723097310830841780512670256720441322611363665823044521193079847317755537339214956394159976498999720264474273564348719292479128408910044843320095123918997356143237734662676590990429865262394460536586632196233573862925605599408320504881327624194378590974113136314568153028161070131719191281734637205806423596239934104179155422897465406354920716053724624020839535783703083296159979305483281975712321003844608352818278778025570365484100666799280277589061424537688331862321669117159144180795295830327255442971369913757277739167902299378410492239036469290479509083084495863566202819674630872468105814608860993839117693725499934404678485877645824306608931324266327046008055549048373079217166309607993324283368727948792453452213539210611662127311533183622996151060247661231770095403849377006828776629316811822515187459326248229238456469904887413635134748878077482083521717907178478234689197712897576346418428479424815459794571875670652927085675701680008795976703410960352246078005747863568017991034412756838574795398325100444248369892267813077167768507773241549268802018149640314452172813070258708423265858248299016467686615592030877883180150348105353972787943136326210961472107000198036105821565484436045732406456139419327109695692197586745658316823593863534095760755217385942487074615513903381748667090700326515218757052906096427636628301765218369675564554849298894688924460637650283456972738821018560380523216470682816547318708664072967025033064891908314537077066844205114519896574447088884498227945607763339971126892385362702846927716406452992075412871938880695958814723046858474791765213814573365975661677447694528986020216189848719557330224356150193040675465080951657617697871179732194511176120864749157614217077018275109409485020883964690657011995129936930331188027780078736755373969453715756537976505088846409878433756917985858661643632751208928709267279886576306011348771196982270372617657443593770404350474320714872861626857060400478636016059633049546156535141395103691484875232935144205234463619731892374533118291748362173845223004995873852604354481609044018394698009519691440397126242985282259119692506308884103969131669826389305558288369957456706960435660625859342107320573754596151477757055907000764972021586537134024806178039794384835058826719354759899813321293222752077826651266573966472417678719465937590211327144647452656173539435457696453532562440447868376457882983388594616714080066544125794826819015465252360796989098096586845483056813773932551679063266578456261272146638113135290000396839624724233008436972825302226259581663435256665739963137991221586572701825371558732153233902147183797753089220245932064815421611813551464701924986434254609098890545536891487837381914365285460709743587206798172663022556773093233504627660866295837517664343440455370144144166294134188701658980376528393793412441134360536476844278413816686690623197440977085742812539755630728974549077060548216480405586163701859341397582047092523703043927471735825366128853125167543407490623437870063049256966984354152038964886247345468511049849762805154958895120719975849990896517682396927127445880156559578768493560133616442937488048089184737766722947088958654029889906071464570465556328565793571636392461854625652111710977330142180860912757485590401403430950528658946813160587289826004817835809418359747449301219965826754895434878932963584659908706711417670161277501538731862866114653732710875499040694711871752708216215866955180816631903997682168862294886541416198748798503072648898705379241935485258737963186388893895228676488230636938542714508507827458859948705794809119878474644289130478498608081676307198946931931803021669901142206623115197363899632968753341778963013366515372523783120072222234970843854180266079602449800653338339821545567927662532969463105450611073406272925827921764714824928084205896474769518682117345459363263277055820702907561304922005543766303461598342836820370452357364135000466402849330157605157327301157564135195560154933478694396445239523075112828993929990331500084172912453960062779200822497516772747035585533030141405045717860377744189096682072935110377450470325046499392704639037052064669163154424138492180149564544084711146991958355109948210408737073103451323462543441521794805867262655578455871913958357620043596829787118659677674535494411212706561951939906614224794876334865352452678582802092904344475845983322108442699511263301911113862629073106738987948119915587135584681301180821008332381585183914872104722929875553076640376846300731886427606252707249840864609799849786472183524146940778310007778162707421740988333599627285479694859608969346175830734737341335915035022890020726962185837587942040954032321172377992244225276982561447873393693238334036702873065511644325300551481150258945922980108154483670878335813633368461112459038294799855252547150171382464956736404584795246588432182140819711123532816629735360637783876713871146307233583488061284566609161469590023489411065401174846811433507742816183938169292220644677183240119090405492971903873402603410596513204728645718067329667819871123604284180912030829123125209861879342112510283660015860063571093133576933279847677039756475845368650217538662949964467596017042911657249304211536088487295852092084872554941556825040438727497197861844230069520883119985035144851741282534564044665470827360669292940347506408514037614475833066011641474851040644300868514786251596482378301607171265966563902657092397925289157879243536700096497156108831649731812799149274260149942743357225281380295634750822377784975570184874666610998041943913229389764106066860391767605261247839095572351166906864809968266638194246029654053543649036423898372031140227056421589232032299941277671074312875483492332027169020005636531420831059474375294589390464165317698483142921469169658459398029542331434809641555461149393743426896979551978591997584346713208886756825905929848740804660982710873388112001080494720795689705244581901578437335430370198575358762563156704336146303518401005392301178633893603724744392990772662234542285713760436856975529078605498355257931531401232243096911223567080113876396768304904944230979379863324290953462233387908972488592314778657867094875357081306906058164503270145187410861160976930267393265784770678053709653853631955150932576517149304062663712060251404388776455320804384176827820460307550438227538609822475436414429643906695951169089082772772240005078896730325594120221127865292232095754362799048051603427439142333518105372068056114137605264672162332037845501420945165309805390439544550845359306965129807131926457238977959000498319343002361709938415179564066072530248095035675096443133098052094915581895544424372479223783341841597036214258041310510247115376325252999181521100145658059995314791776125139495721833753089521781046396604277765675143214799587584739816739502987628889680308348563990612889354544835251434085222063999190394519109861547278055264025181745132473901953683853296630319490856995211587446013062213629848824713252762689036970130966877866377264643727951603255288310368251243220873017586245054178163516631835869976623093965216473125061398048436096783133200450072859121219172885814107742288073375164989722685476657607896595441035873250100775443086745539973497115776427379283732612918812216443484928315460378781276716047316294050587962083440121229782387214642114233141541844227202701445679158973161893196857162372462626963990889183745525626285085546135115165316885755039138506693115284535522411428437003682577461600375290338376761362232308450967068095105477355256358028698306598157295339000709740529583950777913569856871545514933245714648340270552476730563581777128988928050024007649950492819780925111896087496647292987519206492917141420662302907108409497426863750106322518583331468847546135159255818566949340836580108308230767796717423425825778167468598506775363552943085315785445451162497063630313008033701222864142088305954444891736266558238609722276341411027919616640889613782745788564967775624630329142904710620197684681378790085290884850136483196810581917876369466157701336673245875122819610432807723055724336251090166309836164015638416603596113054822909786743843087777288673587748957471916521155012214148180370236267104110964577694223116634687161609307848522464530024639164604141443704612049447770183303901435916319714914408358671216527468196039062642250726721360565426226690971056684937043336413518694439369741902047476809063064480740370526054253053354801904301284309005010940270726631609535216491205502300351441681774624088933845743225252478805965620061502753619482514041008553473584920950908278974277325331092167391711168005402222606815850934734666700283608914766634942847408152547455599814824939986516662084863681869128120047205398529726134949859967159055309982978421433173566578320775816511848945551772863051108407153792901606604761509130386106215029736872921422326340672783879954081872855313988021197128289364086020328238863546896041817658253188279761560705912966479413364922836241647924176016812215248190446537303068031141337288122595177924847334018366041932688890189936628481401620922998221989739413723877221712944457898090064529555079261329400803610611853531655871205834878614716236014653338567527557800293245666705283437159323540433816508629408682359402603821342734722908023707225670108071752178551222201669376439178718377725723140274987683014049791016245010069683221057180459403705164465496207857239144905342343218541974953898959353794323922278528582797286285160190906401722031091612151789562401110202700818250642809999519161005143160964382795367840952766198634871966959444439598752732482575606229444992488099077541590270353848537680933963635716247463134083208464785565127619698451561951524215737449389505676565890436483515561820740239822278378778737052807586788843772668202167307808066736615701675447463626271021670619806098230243954478537976592570576825803108413237625456895650522456553177386801187661924430858824593241441413327996578849211523226130012469939964767790801303630536722613720532613248853827135013497745779468800878243842846864950518871140149900843788343456437463876712652457828550372616216089870693194781290380180911588474834823566811650258009399954404356575878225680636328368460975351477199919677647259203148089012616468108495403121729877120353668779122137633743073648695488533011319299135034757363327376455378998471145570118277396284546758697566998809498114984964772764797485045109939641922579173600347780858740651389158601687967144672276147325186577906617238923070594399398129980683501747424746681428249593637877259565479218210201835833628123095734465416962707843837518282937610592579608549379446502589324231446139858914807858496483425572079161986844324567795232153231894669627908642848385351715539259149575032605681444330394111634484057864741091187189568263226076213758647205677128047660877180021726238444584664184872767090796002616976912656217753902921816521239790672267277314509208780975825122850577035396199808242870378923263579560067997262377665436575841150926927885684240742495293512744556694100930478732494402838318688681511248957110728364053340950296129416734397149850731881590106159216298868052993925250064239094507709258342340676225029205870974247224674558790190931504216845712676848910436638346804804133767242830037619113755725019966784014684480467600824236325358343079280831161586436459501056340021045497467732436560776823541889638307611168938789034897097717327260663998357690879655233823372558289564096475287442981106176887755491357018850738459944693554973196789856545342136529886942080702715674000008081824331830638937883328197438473891476467106860506732193487112348514739075780003558653117064650995383759248191339817135528464015891945916927196954332955023526484381098862364437998790504038498289704611822695116950343415277842230929825846051150203148116371030807312672231106863945854230960406324690271328863006502469458449669606596153773691480191090031370011467075776357207988608043454450711465889460927540761783067986936780220205458106338505124914828508042341940441027533156574950384596178150959908298240896900957865787868616342174929923110808791583509892601460507659298586149434473967995193605050810629946731874226697187577123315715223503661455563244022996744543932973002385946845521851338256407693034671374071498620373202624596634983565479892131136846223333893734426632441969972527303293398871027111655344375942590068561497605510419478858197398057989290257115050348196536773271162897450528188908942371406086842636681016839495592503365616039376798420186444133831834867564256422183083432217631444637047118141319682417866612372735978041435671797582573914356140696505041373544015645137638658208961485558778203064880309294698949939522385147206118412453809087017031602245005675518306745834207631201334869408644088493964189346766064494470771430797827412444724813910808697653434899301987506326970058423493298617383583338298192976026052355105153204892649286173012555747595921072259884861474273333372681607328620759337738519951916789805726763459538733006333875635106453153119530682461135083032985303567243533664021340925073819173408588242977149768621836035278545276110786771758317319129858785803989941321029200778803622043867467654254545007621202408036757176930225687126427612429529266093902177207708016974147030942731358738263227719386263899292494638567354243150458678412706412945401675340164097762417237186149511784286537974357614123411006286404969229924914488167192780374219456116922326028459728883545115708743595726588961112063696826620253877500983445609345009342746040430882519736365251258212531485085535929843263345825466019747266866768187238945595198192495619415965391846818311438570282550317410080915871161520774726679743288313948978053706122451767507633053056470391006448265888732975826687374307479471220089924760265928224085616276677077032555987922997733880269257269491347642591660216530278759002229285486513413898458825782290292666838854356516960956943782327753735443676289242082866105484411635260771097315538152054072354922733597296804772463380937818304941815113762878093725042025223733585362350624560636411357645953010887505903657968709161184050926045816397387846470186648899339065602375185654106564953788004744139001624978943257184267533484870096372914132542368550262245614954607782817307031893426831292360190551355413423881141100257874031359009546921753877987886847076562113348883144864952288945024041558362639561924585243875926937772857993868004291810549946767673353300102795308254020865831334026618016581866399931340545119252880007592514902203183005903656441666638594722362118153201899490000196535970880108940929922247470306435823363844065498313114403153026395824946294813871679815219483162199452124105774137932310949657857561494959265138399163799753832116091886562742774981897290893661494263338599881771774472196057978777032623581829663543047823382469018046476172050977316105042380129004770528727529369946408174882470610228738346271467028610745609823523846103735257508645283151553884149779114231500122937631460715474474664599727623907501387547306562328190962773299642914889487343956397265149764779583279048641227032164630411998270405596693391441815666366690959169076901512581271039488506116603643839741116035990840451844060681064631613989196421070833868481617079296737530372586819287960738190035419542870459267172802816910440270171377962236279507014815657210420864635172517912297581370383476314500094196467072955117603115452120705271505393438499277930880375236287503495520157963133298639562767721144434395325769827462203984005033797046451087273493528121731551144092525433064109015386537719355794547903108202831640403641875336547656142630458835588222371447925023602447226254471203535168121422195592138640849007747720636215282840455145394111435583038604223691423896067860955609163013654899951863321223391732787575788531238685357451717642111592002487981764044715399763309424035040634620986145100444232752650373626803182731062590705137251659502393268232633506121491269277085469990457768567246637250048990551582963604580829085884933075161272671779854730681049019356581167095083445410029728972185286858789964795023677824187033346191531336682731381807349217568604512876799528438235330500372255323870345899621971802323825016372931241774919134227911969725104216826949069192302631262073655163279012039403448061356984315673753045994093243172535441078344785337153002300046158450130801143529456633273063822243717512622678427683996819370885928207181851689922820458249493260639465900634612479557958671001497056221503302600306190013405468627894697978558716824398131129054009522879153700812645591272793998991012751764294811610771000947174753227557547867193312051812886703359374885703922531051260116539319454384305672576857455151964006004046164524540253292397087406273587472544226408013812907406475663092599519079597739382512153330842964600254373736768382574274610477311002088837215640510662283207234617542000880425420908961803590742488993889243331906475328681899828633057985379761978593766688245066875483229999278094246410388866494741307514794141810262129739887365194824720583451835533767191621665640645004788582022414865179002500471370503165137419176983029011589696168369965845277945479213204673966723532424841544934585168463098503844870077078803650065861204647000380906716970097397997372539859066178015220410335156095544595547540866360638813240572839213542209436279367057311685094794037930731875279087505416656785596455537745079182896522648857973675431051693217544979639019259705047210477949130760900229778067571340981075703954198986752191468531914118271969780837483457075866375440542986221814921412060078904524711789283484715324403449682572389451742188543820196518780313900184892823657226740461516740945718091679163103170883766142275013857147514712029154201416328944568957256999080721334899903665533016719661239089810373934566875275164359231253246391753239408883456521280881833467193923212883666116829834838957964759392595457817597486162799732535328447509470697254673924008199143150318919602503850510218616925039936432796003117616731845321521471874532310209649723795760408947625747021902627924603505034340820941585254413261594125931173652315845344940613806807156904060827874592425061390736243334798882920380679908300762434666431790462103651990096727478593704533157515630745839329679651547475228863927885881919134495693890932860113045849577206677010065230495129310750764569412950453434515031870005744939108805095247052766870021121873610615695290127833126533283425578668521011329505432169348386036653084304524519488397359453445430247094682963098699615064393902358931303279734674565390561688784387335969804934471388565821347814250507947167585915119803646359526478790487132240678989197830985985016790131958151332533814639915237285954055188011420834778344188394240387368312440203808658120427859990502495308115186020868449791364350954078269100619062043568963262579983586349553965158924214761845937515346339348139059831058010564101778531044294514003452614891737831669457511318650620623799778581943088322376791300715953886482062272514404052210449855850840972558296276745062088606601641048169349095656187436936724814490103323930154098058775465307344964415807913893478640478502135899756523782583664498112287853399552305972067094019598612235910554450975566777764435305228486198295894133025111494177398830729953733661091736758914672244437443994385499627163196405487189652328315900044284022515948757479349205774676965687974207640191995735228826659655140325943416407661941224159117797255116330261405153716124313267801245481582822937706732395028209296963308195780382644386385382841501618718070657544409521063977763837101780076366008056862746710233220867874576758598279084522070656555651919970996160649594376319896987206180879251220935543030178414295645688067880962970611414459706999238927491677553186388438155040140217232172943968174446111451223059529738795962036968240478002863801286809283631149540277167533685301287778563041611015989450035977362841460553971990690183560386709633817649977109275858891836930951259792277184644225618741016924947710952539437589521048615712158103262885088185674153080166865468595799043511241427028211494315450137791420668634700900416775112296245542945867562304300333025620477873704471883711240766798567554570946748521964801569686905120774612622518488293491763467630953326896467806062224585721883456682651361886065801801054623173743382586512210809869397563592999805956139317089724339114959955738170537873117623857926634875075770011017096366969742694080891356716236342271563898842202740179941905226777975961310012893426596407643756843987971257518931697078681887203763768286446688609949463176581999781855765437863036322263120905929369268477817139909692631605173362896196911601389168248520629327020078160007473002697084109522639328458139312833448518557568101236867267275478552108946482216371666318855538401565022966717913575561795209532482539113171853600399392272264407975580918117960609065496780137067032214190419205315113168942880719281379735815542475815818616118194491739780670987585715273556285018146882639810395675126029712819391156971869208710694522810237381416299657123993957589026378584197482623230033377228592956688862378508245562136095546371107332017166507830879034774766962804562959657001873560432960809635335871371368864566473819413658114856416096531476080849381329208486264552927056092492542930973687019583431367735155546315391699323212427594839704603970634897307092668649746974280577317291721413632144371000460177836670430978453652727983452955632912074409053955393478121505341681877193279734299181140632226535904825426544910003591796634834880582142059436671819583773343102579423038085087625688950456183842298316816370434446859078687320823104751426673138053286339675911613612708767970735902883773508946517118987993725579489067156139480311409902121514010972187929543795958106563667022567215255952589415470050493416909137000024992544657064300043498424190816139273092813389730399058300469876028523387922193575066249802061801385489998518385446241006523277953490039690953394439786541652259665752845697218302564276762005095040909510629177480686383056987822422138916175679696308816222957303697936575795341968409330341935312570751167478819367045488317260490215632157707441392486445395387360450751059244682006639941735469967885240775374178010409600493838329564678190095103208697293915734294871307567581942831932546862964864912548706932327766663977180591516881404770532358522866931258275997557180689271487485147531356365151883148819085352898713499199853384958155325277795229033617445457344196829670245939916071217149526655120316541070820004811191202850308029505688244072729091809473590209276673769405622695813131979708946424045885689830530644144382852022383413232099544083808293705619427628419126776384938833173099227583639604677875399937729000415703784923838481182141408113426002250263932469186939911850967060987282387220220209202982633464436859184353068729236911556133542179338453696845571239515746708372921436960330472376971178580059327651837855983981741651618654538949948350417521202895922102361606703334617383562587563896772094203576802652273118905289932948620413222532789260429191121830153465634344973806288617511375880674260890927943081099524924034544970520624652881908003845010397232818083833580113236002680399021607497825666958434778881235308909977366783005136651087401718051090048649628648113582979478426136525183956447599211931711081906741874625171250383267942857159256812898671637490711363403630113182432491622060262026473282307469255906222684355013262902177297846294343257052828909757515583384370518222280392191126500275196036497157367364007433160730351628781842161642760489353860536928887356837410415899448653556862524952734037241476467821767521072588591728678092696673073027643044513043204809666935853549923606735110370028942759556133490822186534939573556393830379922211547989575288490310871286558715198378060313670347825314781200040237548856293631938748472203942419941046468576348992753521735720495142135244937373637962248042678226296254326196370888691687008004304303280048945011764706989587572107929345203401477987343062105930793578602220823503007644740079139269882859238389786864650690305239147447715875708805860388754734639044371263459304970973163128787765383805230640928005790545999339198846005180282828650158209933587672996185045704992133344213590951249569335775502723781989311248679441322019369407350958455418121076926351294194087451689883289077147376675956566930711458334360323534657268564067448495152996603338823456565649416360152950049737538367526028214648943880716654863829054936353319506353243414464014395249518748435086712995171019425352063287913752357661576545188871835315599027327377002958044908094490836835306351199669363390180211650233281909124715324628639444011717312013483455386477460183576372698073526003226647030918902058568930689882970252152592607796128820310044071365009332830188571188051283328017843078306742515077956080644733671249345146420442872971063083457936604145767023556225004633366376033967540859996625285928540662528137902350384408860911931365222527619032177511786777811247375862229994157967891851322008795654942713743162615925632212600668776276865808824642256439313692781990216691198618839858232689285412351085718308043893375724517259715430623645347279405774058634678634117366396015735254157795003042120222895481222930197514789140198610934171783128965220183531674914415275819591532391325761358341772254971171258087016663798210138989384720210605462227101296762738775738267647640712060036937119638163908978885100485139447721216572863651552049323598321448946248737107209805710253878953860652199799561462213234685850735613146568789174666642593544793693244907772182200932860863862924789510543787884950489962136099366108225499030117954644494326403786122914154096691376120416216623676281135846931811090661600769270970229598826599523707627239641120086592218682349078105752896703632549826669864043525594785151099112642043372471451732340723817223046331255617276224431373631412767010017916846288135946350571518198946264775875294430947228743517365496690237272264672588668486940189798536349320528573691108590618137097636269816279918066909807897766784845856203471839243826148606394563219874393433778023265202029136186007510015860149858970462925629186679464016893182576142662326546841277362117317884280556118033602765379644920033499166649850854959354941939653870609477426869812821631320745701539330006302456125394191894482806263248257962864711958075928294125472102192825799889040166472113835195170990423007877717815379246638828085254626785747011268139206107146348212690177275513109714678845350073360002908382721149467515973344146918558680349980778106585135769055712626587420501398316165819306987150356977137881625760177874245509716490368499439763616503787240417588997583135622009265948756624377907416165168444199064012303644372483750434319664272619213770062244329740637453028871999302298169012813692928083065944910883957406177635095241994790454132562954679202500525437387948049705055682221622393685568625674437884703200019488640497574562335899735041192462497956928473939837957334246426034441670942273177411896234800422902353825058533798551333773577725658046664844324821591414906929299530759461571537325487506981093125018431441577359982989945164739422532250239389585060594022100232562013587068050767293296012126480882452898531636032542583520161690301095657606854432946844962366258557110940309789759258571399220172038998171755533267374586964244405245407511918144011192173574502334177208073472560493253251202126235693646311148441358095357789049482233415137319814471189321137331721329196619565566013501642603378598931717486382371736040585524605533152278429125067164158159678680247527449562547731826947441193369473332212040534576692246847720379302517542766461302450467044406695750125447385495796411231360207227600279156901259487752558465777109378793093828010924410711473976358650341069673950083486269275675771912983836134326024253942217271289579599625186076787033496852094688098671370757408834850837659809942215130524848768432871824448996790704787702035254195103721837626333056866103602722001809151538239377884231496353613460553296190572366436024368337967713355203202240402941284065900736617884069717917158913281887268554499769591204360897210597746008736618737754713791545171415034702745246660533750620211093401517139423515679760282678771549319532064975788509283701217623999200518310561468822905413332364452436900404382783433752821978871650078000189408847412026966500468084889469109832131478969492619370939716230255331804967801789144198765806160751868308936310987729880796596217595663823400764194598999634917868538402588899498987770787771445145163063951780643192719001305406454427619021116866508146064023649312032420126300271386279659496622162900270728079840526317866651458935005683858836102988754290282211233381855461828510915714413392718929122329196062553217640644594666065577663192942711306285621845303293016601097464652509122196144807356077493272454184361906334320425176559212736252069132890896680494723048926289493594565156510747013661756858906997018141397214211598239293681005949199751332634893623562841450004885846567242131412530228620257437031149466027413382313814450011819868575845169265065255697910174491828139034538421408191389192553398581232849775017249753262218198649025264848138844300701234204689591360964433417572166221943771159358557728950737321003817969098762285879116031240415453124893127456981497715977160749538362381926945431536902955579060372452441323549639065270587447926012961864018697238524913577074198137886647443159558976165626499555318310193921757501535437687869825372185091906523792717512054368426755341840449030611883256371255232129857416369024613069953743215094801099321384997489285889462728840632858892938045346411910255603305843932360323338622514050534878361645061763478336437262222926528545593318646639616644014912882348458115445929342400830933653234870733232840731899054737029849133636187279049173433790940890500587604480795224251790175087825738564851067943561483064655352086754053998612938462386931692587149825637152814126601183710941808778435969526993204973891454423804445987953552501759359596593644217540918058660662919292279357893544851452182201996383391007485180345991775427277895421951392591707680195479389262549402071357537254903291791247602613741783012684360189281450834255298548420453062375808904087134288969307312894583710854821689979518283740995578952481519783780530413538805936486776793970782431079446337765981459916468947224875409714138116130152968866804088099110062600618966764457218337259808503734130181879937001156788986263462047529565977839030026032607354692568995691591111807297416388172641714522745409658376165157745851732655502434534112470396308432224649389506959457108875692798638711437149895646045090033428029446417488726733178922858729375873757051582695660211166423712050043839980173419756476352418513821704222671188327381914313180607953754996378850638041776571647794038779231417763083331208248126052566608872432399279678290542244798713250665834864281647727790998458341759648112095025358500817562429833279775081724966887991204168170318542014349748286166960109451817797425566968583432558271354390428769926896199380857114057587892778762208115037645996037297491436131783119545567111316167116005679626005002020536883311896103261108269014044242927623436828507533148858088201296261648578555813570816827569971856246788072124698654407566589949549496255082139583106925502546658987312188535068526819466527353411325963629660472509993809457464629682581676040102538892469671736350896036819005980710647902927574541954949547173974311018847945793226870881272617530372932545048002664684413483021836362384970105615893876466432309121063528541951853665666643612323347475298941473718913869369641200162634053207787659302912989491330056322338056649680465062281073237663989958208525655019895476731486198512311602928268800782967676287880517607547270976174309169243559706704773364865124009587277187483907021755390073555447152966234212289170542378041851258685200654371943213540687809815978511115701637034967167731720186809358522434658666024860794425881870667195991976050023140872568632218975186975450251886075348052187248065412349375003206384888202566213909489610731282709680783163622530740393995812832075439635965058910008222043940565956140336247193545744873369070018137271635053857431934022350310092856118323666781468380491938308016813890120898069326700074409424926229262110015795017480547080876125733378125098104766517241063499943086011662952640955281410387617789111704773725517943220600399292208260756338358010996245116898521557679407723748365679128996387040704320981742057389891905176003984493744836902291205022368133794009166164298927852319421132546614001851237268635500516595185665102061708328056935077491390374164755403834772614297641535874270844585206719459167962763245581484931354023056524188930252373105142338054983651454056507717607322359743683511025496484159839297414980763280354439916927779176134637027114148070350966063209835991486065218285476369512299558633924662330096119076241936632664405806786896526919476234518349354090622812890937723271727507435247979793275034489899261972754809667995302873056789811995275765520676145302207804409706237445657852558664113077005589629623767322752678894694365803144474317998531046191619954705138630659863596951924479133510046128481110798571358156443039436784176846287857749880756054568133996187245437681283125151954623232785090741690239634522249152621860086798712392452705638313879226461138865549240064734866717716826865516953638967995833448059820235244776507057274506210457750125044225679953380248077255414290889387720820920363773266869191230037577123678123835668938103033777716173739802123315518008103921193063473770398571293964497001623650570081930444848124834064622541851804698476561225009699062270872146822771524504464304768010746564534030412241976465777440474984787528486331213806146732606066228954601815034439014830557658445557762467705864018876966366872639319286883821837671280484298117032675497331249803251091554581484721711375897083557433885055941425392714669511635904083395025923311150810051394260504207362548966299233888290185311499110912100928701457411000442968662879891526239673719907181093374851353849860864614297023025546599947140885246128786711642561935164932545799939547874770654296157989173498976795928935185817774134262500643414486727471625693253791849612726705762454346145067536388400951889056323875301543873809936947792983443594231062147765760138520578943639226473704549174027446155672643178989041335842133895665548180655540110061880517024960826521484546233227367577068884951780918085142529710793746714965407588507060336773649731874556471447201987441320513519479008192950528409203428307055954650111476754585908166364014824498056804802740427628153542470349421686341793040701188031163980474016271126955976406897764209282155597404637648475221669332141243033044271437151607539763455381189926544926492828527108824899714199181423766223948293173113297082166348345187237896161326674306159952433265124137403103914885723996165840478581125437899309477163883427856904253528468822670703383157021196804296588140571450697383302268158386729935532483774885108775141977101286862426993161048642565429772463708595095830185629878555968889196730024524735291155251560245237038440525261942099731124405843331753398041039910027567869679418912347271229076399436319742656694360723594734672532584888255907572627923200923855964762883481129359924254064978226174992888640658889663119809665416900532464002812225714026043265932679520783395392123204680167647148058296032682401166150625747874299330952067010208203170601896049869823022451964524689700032813620563937793647366542588376035777969755706363416698431628872626581484647448844482372152315149383153811851817202144887497361548967580971896602354134638580072273656776514897644771610854833259356297681776950351830082722373250700057492956715366717119137700076415992632616958791026664265958988758246393682638589352542897060722772218863396193139815928854622174470105232576463071603868552008962874635057193683597593491735528535341774336731704566690148035412777938953618548283131591561812922588203094741904049156686471671351970436563995577557240055455797648536105072508124049160476675135637511404214737639109095891508337291978616334305561502568632193574967961122260313634730712941828886435115095880941229296454952981009779341598565639468159277666889761663054827271175817470305276105870460289275697851232684835401482510157723009560697363478509317560738197664999081501378306585092903162581003908977587599919062576669835505227462724671475110531006546128121365983717389445089204753050638173653192608791437161042086437557664787669103331412533058813086259020122429960329842605799709678231951143187707127547933682841030593427881371170525360470226875534801823584015298319190017008863330213922499681039564965540550794354547875388465922785672803972302640828262649492811128236742753517797049251951893487686608502327881424738390025261600030508032894320546696666553784863437771703805569438769170863249273168376330197559987144180997230312969932181279099424892545239932934091633375324954723339542832268715589850795143726947990668791425961547596231271059344949017443147235192949024123026799321246428284453465404524869378466672742663033266308851652548677004840462583077402781507747196075778905987082028787045666220045256620248241276031484181442898895240602107311290043094654162843115355111628689838965634347469321838943246169736244180682621499695716109644237475204791803941112192010668326161265561991615425789224700240612610219988620674765491531077451859986577084840767791231800361194257732944624833139321770442315611950166242617784699511212923663350125474517057754113979865935316886403046330013576233305994190074919588643527777178035923501024859319719018409683788329972401215140559373816968387081938644543191354924085749905271288178464589175344989154076018884688621844698312513274862572345511906891882443840798997282565520230629707391959621065981601597087051428392410614487098846866676901105227917861685192172043008404472427037100608246026895922409822013681333104020277557083992321174345020448625029813940433483048300108237142795529280971240215199382811229294220953080031051992959053513544890013753219646314791745315498077924957032976690921184579316405899021082426173186143456707486187307680549418903605429680413221645737371887577971597110543558115974744214215157586537787349826541894577982669497054251836875510851254058589169421451655983607668945576920493112934328875052913970235334263592364562834214174838394886695996256312517307822479629426857153791547516111835841059922706907462122810944943926531973763314309989319317525171703762319820875338260609431764025129337040725339743635321447233848783285743391144717946526212774569354028725476085304507056640540400970206039493193128696287413230998254249069946701799860838711282608216298098081234177541462899116390071120065713199198697332683977283161260590670545721416404235886029501608438932578230513196192595905995781845357052121605790232329161489006628311919349963751774675432394678247015557456883773390788531752676585695980423122844190998709986754315949062503965029993651893520745441791412711044013213028751123824808287951512872795143212900554933224092998470753462684097856961239359265260927806118540865622803168631254522675106369749690146261823540830679001855201001489148538097479920164864515536678300294231891877236080844315571649086734851934028784624134539311949671774090823197174682357420202380289797096988118986474011792921147024027002074704124417247279381565544728714637767311762781436836281586626620958565737673970329952172087723049499443436007197686701236880045939855119679477925935168894844771352521806896816684512892659038196821820700233431647048928029949913852087521525984473991406268026553908617816673467193334898876993852577449596087672361929954712588811113222867528021370727982107820088827937961239604315369133181495143422465334299100262000765827553223397599893419047439492005581705057733913833289997485544265430646102913091325307115764636150585228591918641378997859052265361299146191669279870987581390039623128828107232729858580318735877251753849215396916305316273392653776751123790020074626857337449747089349683578917411272969665214523240878584918241642419423967530718022664093078103348289235849121834465145936589864076940902615842048204823059491545700621078818874667133058595891038037578228264235727016335563554100254937084815015531220861709203869774806326246354316448112173202314311122511914453748655567854238462551809453522961658965629921962985325625951502567298697571670146636485042340858913353676473795920121427296296774968681636256117434952994040490184880835088058117085071031142995513789598594357043428175382592769634504824899991280834178863432308038065454512663923417872417067497803167857265640639381519420312506992027509876264277075061900765973226150963904879379894372640309668937431507926021948414396622320765244590543864190592635489398696298296213103628581710797507150919380779022058157861748503444259973601671424882508603424405341241165695955609431415951811042701757773107557813788140478927069750536171970135063708700880018292621148986352673366994822932785915301138842954153939830985634430212799213094669846379337459511215186987972862644062825319251296168277242869507183651544310890659671917175366056883568644645946068209990890284568629117091885749044302943681655483645336557603840434086575054016163677198948335251840311258698830715718267007633570645273832321451250025339455676661699039855561274262430127577580117006658789233039422446830142165288393129346082136610795200463001313602201186979878539097177044706486975616469135830342401761598542066927160351357326301468481393718194452037064818410487232059613014412002945090545342692495102291610726118763295502313458625552451153781545632772842933428778862546499588589114668020899882691837430795671218378426508279722273584504055579460127912883819249565238105542519860975776119600222548435207582096306038739282973140902083077993048602790429282248735890329606082122459137144772513552431731463840881576696912647779328794359823193264400049632870184423244566655745073654187167269779732948776966041372749984002042230010544240932241540963893768746676602896935199247020007297700894601227663523727330783938837724374677684579673350968543140447687853322644804856541214425624979433670424710066567488752308001916594602197590708306763645788460949334310439196442931767755352638051787860898175090319252110252821637745860975545409451172876438200055202809223370015175013713709736017342269727570202150326635795815657962809082830094173989801926788333578216601109027137685183297088946209057516087975539332937152332539402565959775005225545102225316666409428285841817408872654020214986603584611637453726948411371572348196066251943261246713626974714247970689456533673038234385678101917306315918227399009532896060195032747473488050048715788717541119142292163743357520814491305727707914266949315408854237210657793168270906693244448905330861312397975278794408239898304185857334045366198596894510601261440655031012186331547879630490443505315212108821594032638570062555986851650469131586755335393018303881774243157431558568653693925281116472194286573937248749550750673339454370179640805925514602344870008451788872937429083670958051329721025678966796260414638493300838998598457067380251813357255720885379078815865002058714842244121977725753927337785586389034145202593027035195196198977627709698693683169122892138953778088602115669838505730769128535572803770928153978617429303821588412479740861661666248700679606936818053990552694579636921746564625341473429671007616607912363844703204854590169514930070869641562738974638006656692537961202058895384926537893416094123648671527565935953559654336366546627386629172014448544142213181875973097767711842674816709070298521472104898468127225535952521353809999200792996148972291982973272204301499498802847565840890844500259675869443095262294571566580308396304403370244026689980154206498164169621547733533130166781702503737793263589966735331831155921940078774211625007056527279382562092529127045267605221563764514098849755504481820957569641287808936754850532889131013540229455555920717706680849374431299434534115687533803776189385292108161481261356448627369566554768054168852055482128739999314176730310913150481016669259387051590496817178696814162945030367244603718669422324533106134892362008770366511415072494141453100213945178467142152290337557141071785799822610432896532042149476551741653633814889770245206715731039778305669683545608704194546953145332048218798985270735545237676250732462011671558175079415625358833479830622020131305886240389392733350757485275509338750265835559934297389574673078668136581865824712206437534685024175587029012734361102135179010377706662624244269209782142449419586810383141750072930601475868781467337411676013223241225832093253940985599915183232742023183156211809628541102792158651854395868122265642886563299193354066653066673665956222492537913889312973402577488283511228426278835886275199423148384578750643724344246244327997395575135741157198728142963566512620447173972096951323434160273238231223917595799634177124009238938470143319307490699273107089854556879556548748749892256805409892251792367902826820400727679679268817794847952100773449930848673727493444757334103936462568225909154270048215166784037616079475195896466927271268488957352476461613270691971757330707809145819147384825630558918995073253407041968368307188279848239427521630732322485383567029242520225244994403939222680809525570431776453846197356964679518641710141421189464012073307384025993843214783736304522660468907456563341725805862770957425784010538919572045510836413041912482869480733285682657065205916818803651731655522478091294686069777673347959467370848779732611112835986135612344220553659693168318841906079452679247631378894913338311160488991233329555094887695476143252283201596628336951077586383381243812975852052205471314714302216428419758927361358606661905537188577026045839647559996498879758957441410793129303939134853147501626863372817918936854279912598667317578404902140626099433409367756319785966266394797987241303850281123879834168348395130135730163695763901394617201409916399940541903606206348937242992558087655098581438660122465282277137009797760921111726210363636602742263662163251681425736344846052625363483168361221864931986235156893075443221144599437638809775700889851373941884523809435481171343257856796745717349696666630402808839919988365037999484895306542353729894085491594290833219059507250026362289141853993746876723250705383738148575605360589897248224699586201614687820944661707753670931200856985602708215236461508084662322896404580696202257176499226876079188220663430994973871542530267534769442456396033281054689117792238958025570995713190441969848488457299995132481992351803340407168790245240676802288289897233668115799492325570152541002547784613615885346128205480114476580983581467386063739425366126719422197669477493855790985416091514732982388258760509627812932836127338874112823484101238139301354472323655331771825473212192904690334432398829319742299046200598804055241896785157325583257381660602852846621186606042624267318241316743958594356340564119174571760123661686888528574869064297249265993028407647079982257808972173064117492421851910458824607897415802730299421372138301122393037978944960968224766656973124296264177381719258050387619242815589098079921202446394243671773736090159577375566743966671191573460177917593831635781882533469138563476422082663305764792003194092146232797766610714284090852010450478702167553521468858444438847126726594737726086341697793878041061820621786049885675419998029000391639458347370615578055082140867421978256446430945220146653468870929601473128687822824940847719515567785655680289948747035574279969585570406386114216735271502409642945467344200470316588358899772502067838912901165257549381610985379876180651464014003667549706321503915579294514895249149100933493182114169083237816746228655564827358134298383687827513064483984062157903399335333921042608742066016279455611443542078869469687370435993373555473041584147299354736730487304474176048218412088416783542914586939241048366737383839149628987096084709357903532005741165047682292216332111793113705015764805985791385703581200607517652778748139141311362363649059291002800145424424296429067181790415145654029827808875431520878898788120463523467527017763292301932094344416541317104895784304852065067509564930031510554742858521133671332788262525348433753087053009226832245732406059483598478842268252433919826769112353568713160072936123827730332286879785640890906728547070431301236311578084910398637443100015656661239515817125077032131715445055235774826422044866076404839259476460101681830375399653627606241555815245950084570003351362573264189737732326503137959285298872223365480987156209721790701268428810210294761354615340292512168508063192507195714562791441619575739152383455522267454701686762261282772742800041424036616886060756421545637243063530941576745542606655277112437693531660557227113281317333709478417308070602348593944458878858264400481501042209353086711845931316456415569695890320520643091858008485826641524786889220271242859362042764913014893293460906256092049161672382914081458189937776972758852755086052481583558980884089139231462705014399923043758066993854065956837125204148036963616707969769500208679987066244330325734153147276694346782840703393552933325038557771079515276260192635788815901853581893661456406472225008642612017172038577773999495005025488418979638509453318363031186924079948385036901090831822348210687207862889689716162306671539799460647776142200336819062423572711567479092964424050153871101485494866363658834414005759801163085772836393762979107610746014791010271988735807689209231992625953461226304106428869733966024216402199146160306890982651987304366059331619522582009688553999885733776492371747316004769704051751469184248581618436521079900128212916838075951244979619109464266102741023250077012499058485597020077158833374422999746931910709290104742534538052111330999063625139845977812644643330818849313938422187575141372954325285059794894626491632751432367052846689005074113389837899831600176218022630368532748508558517443336072326185343426349665033763037571309046307091971341623215134652579320018766564742445536108447737798457278618180517287260992576103018277807686349094104975764728979034923930482832581915928451767346421956426392425022774142659051565221430467552281819088262043498759785599450221131722302238875246082608821731872678426713140344139597977839228484270577338371873073129062783876770859108947227355830543324882965853008004123657681159896059462013488749136893671620468400914144714465011276449856584140588484561902497006977882570648184009659647064174071037531124968549141374117984353495947760473020126817197689578668332141670656375877797219463844071564179046874295336228116986888776597471292539150292170021197734533547500344446266075171035964250767988331755132036154328848130187436046833000320777802852367690771091477310222204367140685160219434538367029157494132991586494842103779963761212310139885259771360262836801140966539582593747623882625977535660555450835281363788585479619517918982388910963672393370891732971502119414964258286247356446094133359332223593529137931300693543086115551396080723913313014641995645519119725510076518022818546868796226597055916161328131560580881132104645445795072743571401693166668211927715262200085146568424385967392394301767663962291405964170105628228387489464154909099587216359560947170083621865627934098132024970626983673925308482349673743905482166948692423917342957162271717098081858598628773373555731506019490407555719422521558015974612973967490512954209977281265948321028036460464008726962171024530900994976585196425014167898639461819666488917376190539968623048101567139970234866485540727448420894183526131913560179636365176824063541134439213224008346975273086908216340788263126924108587706543665549059451457117098745992084069937529870053848127967148443926749592298660036182793794202679610974967594709212242001067777693940490470254858189012976406090205356417088659228686277178382768589283328651025450853059095771519550895556046489357386139110775440787097378054365685167575243550913275009374290694864247402742580633642795667244503178130201153947707489049055509551394212565643910719925773437613619216832953017609676864177501535078838097705406685422904376188058244633501417444815548868156485712564618894885780501682611148420499049059333524505315869168520776959510199697715792019963334279040865559778758353321657101402318245903657590841847835846044296632638406152473504463514379147495684380166235527926675220121823652255361431577859152381704252335947328140895720346523402287789828390219834887711123162148390801558191305500448302387454183943694350429842834034212971419821206071085464022691025160637916046335384430054238205214797838406493121844529255094180573831049119686532884877186155482972881062105854800367875211429941458896166255530315840166583632778593064761401363604499940966610030937972979482248418549051397235118633459904895295203806733446285237275496771659327975715014775766475115757870673989108304838286740725212131507906772317406093448966010421138121931385994982661267503507281055761676090080905529830392267899638330376507270525725219783410239550898234038185099606204487308385485880936208309673602746986335022067948969329990028332067211564818645140530564740964863141882548691811330932255626744828280351300180334278687839879997981098428353797048185436617192912684530434740886264341502395352564443534870290615000722985954615587269848196057545818341001521030671187682468472079064845255274205586474234010605360920717002228356712769780791379125347204096190809106635179519430551791446211408204549986576622914543877028772334128497339255925538614612314989203321061631900930904462586107415680082164858801070323011305044588283511459367985675140353379919597783995473226859963759430185297168509847795935980046397346514030860592121706146443978114255648207468474636815165832345418746302631044950902401415319038085633092579312668804161096706947461058177443658938031032531185250095050469750888458782429626065195258685291608616451659710593797615562518388437376537704784402247862633444848208265131692080527835689039912321951350911794593349591115209414727675307134089368672706324720752373183382605636137211566105408374204229833361523421917494707966829517454825402667892013887381257230248410946484436893251916168838503361788269805996709636583724115775153918172280664282123712031921626919115218193619690486354722133289098019108917117543805192658856059287078729077678927814840333443903789539817158391916991536045108209210062750376144796393568354108096536155895221838365137289565758761413198122234731196581051621212043906394289853623447225852825193052357515166995016254722599729045501143642887403378919464954942707414029224713125884678343495081571567755430439696953022902177559982723466950862880424561227107053085063150622872779388424688671501695503649016993447431138988514754615313930812280887268871676028211654695587241178296669336467345122345762662011469366996394400867189346094719840333733544158202838983356337894569150879120706190667942338900952754012153816312291232079597911218716556751920946288324901521105544848746092810081489306046719423360606408041300161950144330018499315012957292667182954492370207534622599856494048051506038324588110700288410492467723646726910294142884287707241583084492320465281984484893856649614605035788900089812794577983113406926520819589927144737236047694265120278367997950729905646267669084834651635419799801180694593687778063731861989594481297300716711487228721511346434146512307410984729761561094744777569095942029953611630892541706545377628915485140493933546381451774796300160667967245999304786445457775133168947891133535575535768739277289451394526211822325032614674566539469323073079066372896219492179044480665397203425051854710521848919018681553019027159632565953640430289103744658020506152319535814300875489961024124278275973432276069367816332736289514055042546579840431697536867107337634850290868028307059599300741115296842992960947501709095599347733827754136924768829415233146184467649846578562425023933557937278065533133960582359232678478562596945843145379888385147904946452355957178954257700826527688247827151085856855114150813809874696385825867905260526013031799054226384941927409777498273902076170920387968202764620673325982251957072675444927682948409399374181332902601889341641407877644301023074272028574433138850037115631541976288939957403861798959039251955598481509001616933239404073499549978429531886401262623386768240304381708934894268170219112490407411772667645737827583626948998932667971685891568722031358163436050573024735379430997117116870416868643764923976505908212884720607175078975106100680303630486872835004732506914040745842451895886372398572488224588194649467303609870304496304719122945874869673116521902356728206299044280595529852153527182500558679277001499360376996687570473706441214761247623843330442403793966011840908428309916669717979914758194012311666163736749453861013544477534424920258335727250299597959740320446896176887452812914024011609830012730243052436965674609493656429587637589607801089372310045153151888152254462226693862891056734765124541886933670403005483730766579828477032479631895022020318273704044438056389113316115789483858034966233323489903188426022393284387444806615462946497429190776193549566211752395958027269478440799998067355498861462611197936376040058417067763554369422596559866973366553275974474081448378212817520133148302770250888341995414748587169804578328154508597887203996571222644065687748347234982216019827204227649409508495442037707479717182480713510483092626894769031921309174506630814548538533523157789393548694625403390817475550333440915063243593247562380369952678259546590915195892237568449424115243248429816573323199205408320531831334737955502446087164039027398243422244839916843364802021283508742934825511293795713566739881151865925953194477293777932877061960268508739270390040156037209767375702369683047490299573605826114120738223886996900539786409533914491688461680441188385068439029600605830587262295343212932450923319721854651407177792610467779804065988288919202135280247123836765665388411052452209688411968375910163534279997957527659276802432301340304194287269902430485867400014196576078425113296924629507875506937370283144221479560546278973324517510628273235020105352004264846681853695827729268038692871450004171510873144560865883241655004414330904382262088947504192236546150523820082184692792002521606922707263421162817010450737924048194759663838527955641455049748564810061149233752051078677375332629313768734539115615282661676082168146734370956024305547160186463608604797435772117841372936317412912970421947654850457673077070135126068326187063483959433921763573955928164223131756781668911231998815016825125754831287624461614588618968074190177577732804220312899390208534472467021518580809580346199067946866260064884154199803331478585728406819004449910540280197362932324498486597846712159647997954273241683772092122997933407634495702689311207330074283488822700655245102294764089476722016079962238717901484122967891185330799324456697469238694173429992608545528917115064666933656488059037309935863345479341364268585260929370538189093919426511677927717138710661887300907396359974073447380321358600943063511619984970906190540092661720763423567642646474396396632776864910204330213328148170043605040907063862487404062236562051948082919467796960086636752564122987964825477762111191494771768430603142790755160160896501270437147472193671861568123462822727522968380917297138806404522507701759693127687753261473554960525073065190030668404162221274821304676443323619422871084692525735438092104438270700566393108816984878551414499691911596880567182161263037609973919478005372984665053813386268628801232311891764815755493555563264543192328894192098458003426951736428246740495345327417811757572940830391905816599603592016378207189473148886046307297303144095179538597654791036288771860149567203392764480446241016669457557593668171222252390459675559911267481466246351546846153516206773819846757574285174991538106771066479471075096204351194501565838908414716543409527289933037432204848257257460476937929370775904823061424673381795320769315273755463503888167200031685826893851359416706667130995371385188353094321761897762513438428991442102745248297880181970418308067335155059522287912344062098482534588146642890405390368087155792621662789174113441162802928304439601971479431433988676025270412052504783653005957147500819080976780480553511104809214229786739590507281233513227759502620947086443080991376091283827433478679328620149872980414690361728102796974567176044077211886342345702858167046190748163489892750129640187442600647362379836182350718426774287105405976511933541272961259217208176248501331495922468033919464824422790364660092921714933342450708943268702553380752038844383403011339139937352549751999456728742524913567517404541862930056167170078614784966477593694614168895527010316034325049812645212617891426373152264896027020496519099340863102231161080051307900469608109465404325851585471207418189646310268771018855617836191448888956176035611241304724129488474460978363329680950756579014059370890419243890483411412907335194778214361921472550322962286452899137682735561702619444808343480251294438331159032980969403464375177028274907447154220414921337682960381287609043039017012347256707122660294085165455740004327798773941833754385054785979583485227130916728060571317769023389558965722607777247125310486535976994066629928340958688476059678292321913026769093130716114364509978841501191584242880296198672052995630162191787212424063532453733988171782592022344416427143431309150591147606205732898201184043580408000621469489061956259417971075559758842616967220931039499245119406062066920909502243729335155900550124816274499631177392055336954271427749217060467958035243671767435252260827465437791741544422327943689160744339116974522169945538084934270128690264836325755202243221799194266512652523475574462589233827209038760023073491958576527055784481777527136856853294373591264868973152501120690873078092766742753206782576417444525299718762959513453373788672956192025934160285457871417201039854936195016609609573018830172688521945374008361972902483111957505721975214204334714683390815546029505136629003718598916477397444089288653328661491255087608280260953438355391830952081358507579595331427024603910945876984112752859330859247474488752027232886234285189956395475935827155294539776936237426569397457941021790903878905528168873697772018132744558476078631167475093347858687806477859441245673079193594831138896755459686186299531758076572205372363200964381913507579407215843516730235900502171426797671293687854854210716730701217517058356232561297899718083946266727391826033409663301904235520146513228660167409897796841585706321660217242725269119437856999783158690850533626713285914777783909900339931062479253392288165842294387945146022274092293054773846542444781950884616172808068774721865752030682548946723198314813788241423530085274539595495049262853444216782814870887823568259002853436343791593210823080190159700961251541852759593523199695271475172214511442681419554659626407236988479939923249078423046705179665362684670452723991902703264261858757362667024620109381375632616749489607331037534910570409167248907935337705840141931006043123758101548164413304513976788936371079371348340309785664089240472628011340800155999717290368955436623240454277331003454012308442137152858417575851003743657472888411120243393316909412444326101992372286125339459890360796189019848029295334759026655928042715356104265076552790179297124984052151343933828256351268847732380343769816844010506583218910246815254973851642566875737610025651451597295830986922469211630176493158011566303805522517770341312560992174574940765340263836349095606637371042371049948856245703345935792106191686278489388491616100146904327650543090045036316083086869693753970804609725500683402692304484911159507243317633865271089723597113834226678572173018930066318849356163003960269888919338758906645964548990021009544072358957544928860807073247510015838621105592961006932243522429799778840341510383819296502275689801275097673885540044061497728412280680708749172568559540334184371945567323972999679819238583522465229061905601865220886166237452747298180320658451598115928227311193095709814048184665942151273213672209403700158531910924000931737298044386369076141854556102708651456859190714309959144902341711577503206019872538129924986908794046364305989498286704298917412005464419171341100346130472520214549194958595654505109781560639677236994003619297544569823066812074875384118762987529958220274539037495115980390731408319092707103778829050494019099813685555326737972745813259589426466594701724525725458011988010531422147582726653689667016837267507110242373976276372455176071811514341365187091233782764839839301341021794090457073447808890041558691773026063310693278084267292019448927662286015136375915270179036711467144618232144471462935244330378570144584185587238451987950869835123851683612267935176266218652640642561026509979716775662545694003560516355417021030184824291423517739863621447566011466305735499909171800014918744393520605624401506727276292715129043854208033692085542192702234474627347673888051048272051196180295503626481589193251869616638849030890634044952433079268149842336261281411491151615275116734718431597917712182293740491614943530736630760803317860283668069223124780120629182230335053118459110428207823390511282567311943874231184373211648498440455478356049654042613264733572114613864161563213145155456529190691003160337520531069184761630352237922426755602845547626206656975258974998473535247697140638995701334566200718755675271182351489214230409482338298369555158879940674236867133972637362903733144439492519653620381517784709280415953945617686158876387935547790407039253489531858857730360806679076681716203399741891046738334539999974323093923422941721535100104898388136498727926625145092924569653092423672213261480321963653878452063023088207124354406896966270804941126188867902564170283452602164585214810021016037992147142429666758018347715862071939571950599197033066119894618252391217073448920437761865681555666900598345249560647854941349681069470582523378797487789458670688527655673511598635390252721535272693180245093914216068443591677830956932517137243642224026612801209615271802421246488551771961057249388664936108552659009312969697925918134302844663542295423811224475496397238295018880919315871339166470238453690133584910513719092762149979351064409143838031473588189764546569138446122452316430186146534571041658787324112583484381544899745637305027418444811166316194110191898736212221216209089534599579776805577801173604444821589816580410680179127824355371961352997509815750387950575030486619675262991903630333676075956629734882735811676633411186388430511180980398498359787304574154629249055087866301508465298149542741500063460404630555985348127787254203429294397832319124520318669802870804140353328391832126526193800134324059862727338059177728219720424743900159536489095368005258975997177113563403211984006026232811196985530477379342953301397297770492701110426495594916429270250868284750195733370446840250112639817058926729599116017538041293451312827806022464893708003250124564623236360669151516628338974032073307435411187834013241194778279834537538737645383885352559228553593690389395127003096337009704874647866573706684276008829605753074795724036845792110658916508275800586782945697342653997921477567671381489457611146428097590082989504691107211229342867243432582116032996389963159407295245809251338645707649184266865665590197360385708857572870955722830089027999220339406588664881086321266571427716843279599140614179329215617530564945448340623246127656095011804595318102824891864138277932520994336210369923707554368240516664275896507742926741743935202387806904695151859860489259455024108644228984640247359419591559511015746728670621753600567293953928456812576896950455538516371348218747483850997152308482911683863633791422328765552878141638930868015205937062593581589380732221889313123748041969114978914844507606205068636493190121431548697230106930318144864248206536492459981671010394537704045653188491003430860709578422081831417526607427137175983364962272796652536836833779025601240513929718044902943237330148000169457008803812727255790175195940998128040499203159394742843302730030364943030510316144146454970707850105228986834259538613074313119799834944567651220727040260774618606505101066455701291446019229757596586111454039089675147382740384373979815157636166046865872177139737497291721368230415949981956454402676552764666194000758438573426975145013858280369890290736855035543273811203877175087773367410001278459416066341680246216120760707747427197334244045718821098242309594364303780498681847771072942279946798539355151626843139162584986054659568769543827308399503832556534577488170548881613548827741241427921607914561204338144366595876836187886508571104354794458748827022278969171078975184457502499773712577576731554380570754274635813275243838752704508944095234808869809387676263827023197767701255285528975632073027136312696596133099458083427261784953118868968096729001241030163924810904008335337113479405406580399640400607771357395390165337597142230860630325355175911325667752220109410261588303711531544080183380934408752862252241268526093558595476870574311340248380622476185985173963010953649363650344183380803603552603788984759054448059262514545087758155314970072747848556419279235349703946619600989092481626661490386565208092234873459209724662017674776771257806384936410325621181714246187684038233189508953654848878674618678944539035971815874591482014006122676903825340485123150590622262983565414543134846888998565229402769406623131945132391803895201429057328490700876598552065846537449703608806803411312060966180112029765298469432707777311809131969588712741143946598843486358806093751341116568630824871293027023869965733367644009526498152667973847554575339592378247894615180665835000694689734114779749925087707000155216590928749115105323202732949856384556625820850822380312708455317495247440543015921976476504677851017359417348519834183357005137042805897043053878448757426222025136017557993434513014086888903663942256131258865846905768872814082608388670718210936068050615822554573614734471596024415733547574853535436551770453411572562891048643976590761017076415213346439087395319047394402843000692251420570625990477145912608380614028676440848237483415500171781719590643008351243315071835514346024904179315170103865210559368000291990532128483028293357393631324795468728379825255030456384314859078904639401044549200137124848992048203988295113932810184244924459882335546806977107203060576861596760507795836589429632794034659288148102928770593590422599403654225630602742135924167419494508994697942096347531331698680785773203695443067364786109496124183973835813704564016181194206079516304921191988721927008269624761105888180201268066374441925737673238303148039055628185876858112804726105243811516265278812147243860015197668584292375945903603426064115833111382323467346763547399056392785101066337785596485159250073760680328817134815479455658416834772124335683488114284457959008630496391193205685790732599906731680792494558303135434657002527888822661083828390416629242804440083030111480870048648652329857194061947034315827034456290170144145402977179714663732836332462058333972386023635194843989482271971226407321717967912842392532754401629107257098906201980152112746812148692416463720449893701199415638695591688932647074910392347085439166378976656788174821331888250928242564512552341525291020238291054273757472512365331524958701911721935297598342252254084423665395039111849378210167808276258773607683114511896586654744172316572148531811825632133226687433497533946879462868048446726875207105454950516767720782281359604459489675289282190361171219843949551115693682054564219397003101705132134018253195612967921507406762284166495658146599358685498989142386664600139899382668153385386137322594428450125539497387819614956057219220436294480212748651023767426222711066571175436694749791764215017404376814064135217835454291540766120282578221185555136394526489587011238746528268292799679266546724013123448654752105183730698164045875674406554289146379870663715525852113564551850327021797890989639297824252836324092270306485592020159053912955492729046820019841082183803786471505288909294485880877188836767317373469290710303157846202306045603662523486882351637634356442955465847966445221496604164925135183952387121032769863953077563085539944930984333040217509411745237330576557860236722068528144607738407059904899497869905581326994011393179143859006691620391165437632359162297973780817166839206263336721620411370157386556329119228744472162122910513265487187505812253510734401511637349423763815076645179403207680563804262480387798268779864011805094042670763547800432922891059272934099453394744268611779937462568668454494340676305943488861172487507030177012899455341812205798936856082869938355176639649283633663221797593288876735479676425873510524526260609931062486540426708343320281220563864319236956371528262796688735671255439958778061895859458383321324080734871079015070195190422457229259863252477729981118039464139912901729679951251242728099813761560729248965679679767888791864538816544322740183810113468049133369515780029560910804749607503536933613365248659452369771481628711415723915074566389702547076414389489113823403873170818657131637736970563388373392569818274093260121383722545608853171759402757376841890948412381186242645614505441425413439235941294417114699890335487046224723520986702511727480081229471848998315401075770119714632871758951959204928901869491994051341988255713713685778946547294827812305571001719965460413077455157226697729428075361928332914984938279629701970941745044374393055977806631606041731240711462461479538430994729838217193881543413200098004492397537194491097362822585442059904750585484859185115242516675092344988830197404448962448781988180730843651498123123821269878992216850458177910324630721708476899919013763599724320464454983399054397388719490400023311723480116100623450846527226879747533270504685505041889649931980111476769397248708179155331726026989255694504868776647528972761360504314376586661643024768314891471889036371210807188581543984805014827416502912354672806271966531381775202691739416288734272305896815345854844700008516624724053633519587319858798165411581098393288216455944153840964336716900570464120568599620123826926825098862221522246187351785712352155175757708603405442703992429110143530687459411322595700352456887310046256983135216985537535521001752128379134546848797433099860368464676543877043575820454425355349684478944665278560367769594921625809468684337214430261911986976255684537999515018076383778807675040618044264742594035722765019491059288621452544827727023273970162905764304215921827713633110133089594444023293751766931303072395107168815597320126457438349440761694288540275657381439661411713050663554086937780579047617076112506234408248659587140430314603991894727829986503552268299037457582386526577935809305753508719419940051062972474870468655518377134430032764681486999131474329290869952354838202100403639046864505758552284713425257947528688361407058611280220928224629682582478294508134227694123157490855213794196282431853113539539693179064819621430184217085749819834316891683714908267318458289922361517444499196399046366154231962998676658486836431928380826875882152561543633529711087624274418374656927766760623607510560728191160523510000742163508747000749716683188029322323188975472638184050961084309865441779620149168649867225605494916507251039729178984916906967659170485519249571090373897575048550695177350854973764907991531305786671443353131747784552367622801824684801415060384262332234556013516110289542900708368555260720228434175545072988714326894276888732278463737676827245076212828929821291763980256161920309957235215087576293316620225036117479969407638118962670301927540057479420039607296874816295690849213612719535905094453958767820447881586454005078804209329502422737216248627098168839843364600848280945076457430157757208352371849970696623004317695313536773607716099121142258993481765568360807425354404923987721680901213935239508344696379804596759202945944318749521449516519650023792732479372181889088201802386453306377296221612244884618667440974654510872141075630589490829586537312493163088443009677672828486059015889019445903932193474537742215692129619730695481045038952030418016948338814402017396131264375006168368123399321045792687377302193769410654822635915897195063295820587725549983478369570396831940933030372318578548216336697388446429100717068288763331363669089126301787810942281241890107958871126162904900004559706023175633857973857428232012929438271008686343152728246223621905028101179840388872900746666620095256557601913257499090725547460087636948674577250565071041044638515549011589009816454659526915406487975400325696738682895855432979134885105674822723227093293174996433283173303416928855339333998591253242552575078928025430064097992733627392531469682314787422775066033196456852033332726626192899448982691730372702729479276060107934677552845034639987936589760352387649094828461123006790737600717248236215094573642951653401654022957655269786516141636100593758869094119723451373901889941807551274878990127468872620241935586424714562467004735279915175840905064027925058013746143460638902724041634591824636876724393887168388212828839267094286210181729809963229943808253031023301323488667950234086579367373333485493452876188914163061426108701160113606208906689227268877536959273063237849481724699891381322366181410403050138895670265996465082792960187326377421915031738709640501881986752120403650998878428360457790810904711338280689587331304254326156593621565847882010314756411471380515864549106276853653450959986231211013820527384229331467907320994796713519217071080046233671190456365786332269669050854605983717883141300700169210240073247300264482954014323419117715202541113530269237888525950011286067680853909964335717159887465936633422888458546825491447597746413372844990327680334334333460844988320810305774051731557188403415661550584338682700914253370306553303911715394643004483117569507535631828727544696124299638447763727114258089894101759039427950414830788716747856853062658492587586030221794594282281522545079412208360539839394463338335412960681409990830155494189285732991168207414548985344109039902249543089035450807327138823537334040915729418037057922505736236150462237480310876079772910463772868550297248962622207841121140581022828975084260286674182371980984163707872087257770842243164028406603051481389546105649142822894251901406469605708298671405981959530547352085932724431600076203204845312452292038258099129740700334155299606565890794026392559148190709823680174303224367902428768858594314443575147398573013150920898890870261508115205244457501626913283855593403833669691684091362140282975783865094635675343348094077876564729663594990077214132795077400034987439701972427713315164339862704916493660242692848423775606877966875541646894818524188337013946686960190189752758512503515969150412334290813712083375220209010572080322239982816383195990333960818779514531642855646543897031738419609476644550814336852082399583629209721247331867421825502105535478464404353975452836309407200052521946766863678828278931654437562178118148926468172131906853463679231217878177762970174878261515214624604058692534288513372641610990490542383730269073109901208132306997830791633599144009272828368465725749652327215461706684673722553456895804409339357118039552348923530785962586657246726099025026054590582346236911041775474105010334055633339175221422383543463130680257980995448146382064421438578345678079077851835190734757537261808743496862234023474632896907428255432474231172038262955458346013355703299035658795345308726979585249835415244878867451414230669852793844149779590356432449167695981186859793640120966686820419473223877116118779411788749496261725137779385931716995281873443656185074467660373536019205292899292879850799449105197044511693325535767373060819631430760074133693945748254773144861087734869082368756012740066080924275186155508754937775378649962513628340272523595879949855680789869889639449978335417332234292351458677635885924079844969917222120692891407448332483038097266353136278446096316372515834222631406504300608741615542521263200530222879730509301083078015722797133710619186170546536319832511468459496732704578025137436467738686959685665970592795663276079787048222547962818693709009222273734156111842566704416580671943889590793064985434561719397137140660330317537255389811442415232010891667325238912939217103091333529979312056558867522941632323043130770471611165596670923315937149399806632810010435816450405612599981034069015136248688480031551343512260062461652566625766764350284791795456584437704398598056172717472015759630402780724655898418900878971478116641723632139182378053327472881278402893434487900305498954201361739206822476131898295645306714672755407629161982911688331899432880978581798153262347620916319799526761615464977076560664394807695933278298485013703888521207423481778680063722619807075234220769411396844631561475904700863127757943890397305074379071684661462756619000458981643153216532278169581520472359497879654461920900151244301305094765919437976936875976589496150216736933072952240641705993472010168721017645374853483101223318299731518392446296903148965209064319839541129800816449971927736215320989356135302461254329789936742934469747183681614180910675047222956618049937377199730139361875847454445385839944982329620365319932637331063542178694861198263871367414069682425062533435371934587220290036796757257450518044752598090779393361434062073498002443067819995195723712719223877319357736323522617824741574674120789767592296558669330791191184796284523106119936789211254659896714379394896536413648793921938192286035469345508464432143216813892304621220315869702599009694359685340382434527138127226954437324302087287953183709883090337844728135992193497202850259533734746896654865841867092817336986547953282764932446787020434911926964108954212014679748714393995228343974046597696483738386843719114192897741890959273681370275414373235243567025734428404165688605741065512166940986005522710610196507338797975300453949725185948922011689639178732299567860298602495151472536265143097024426465386897750197385308039946374599075639134847169411544519376768077644719352744777630628612072527788355061397924127695059259690002102481974957696247477607763990515410876064886308149285996274854559141568918162591602982887131101759397650544086132671575616660708021394574576959158142953254702663378719908612997039379890265050061705516246323476308717905228649524228417380610143583825923051206933007653455139552377138382106054764991086802371517376658032116226942344628205512044572589790954932656164149124344637078397296931950138524041052199276257918899616323894420312970722258359652212640387753510377914419666611762991584348991965713388785921806398383255301917961241598795107733827268485822448915350241592383230355530160888625625050640523905368274300231838545828951576780584634454491470263075491485047587544538866305590106858668294237704996344298425511188658348415567310428702675449255997643517874802597277401336195007019894831832362744962255596901972583907730256846301691545183011919341067999146743842971779770288571710925982067668989609102800150533974170563881947063978576202227361056693296066451858140935063273429126817348402765449208916203734854116092975978205621666031185042543024379311882800700131548054626480432828601345285760328106277037281635320118035763942360660792700271458971544642881293181822276154653679084589712376856068407946894859350274020987639466262555115900027033974457055090508271323982100544263632804993111361419427164651792780662871472699391629314481589870596231816377121860739785145354700734629277396352119291144238131588684701550935281284262677264666576103963859202236116923986790188637137993763170949500460898289995204645769688997086069048458286838688321063124352483537436822454466807828806602597561499097295489052165365022399358163970880986954119247562813219336730432451113009550265787746475862405870722504663856116325453322625318255658760115756563080946402671636899353153627572967154132972902801927237577412849101762569692216556057239330845728099336141260311880620444116434618909095635609340454342412433694262376277555848096506869442032623553268954432555938512298359340918362876624770224467418619963465673724436083823825217779568642413527098345135646665345986869240228360489142051904718746053352919639313712031005096398810191116725737250773068243908248817329776459970867597920288345256237429668978310488843735695822880611609431113363255924980725102428037523344120436154357342945599843747503011385584804144793522959399654209633238146475532682021354392847497556246089239374410393268560183354973174042717934114195031272562766081166910642136853463544895878159595414022955304217091236656041311616031673285353784231288444026924670987660297198061765296770337248539265952729898088079737287004308363043320360107495469435683695162636645333672908392360230200057275080720337474743070943730951482540389466792694723711163497939873202949111072780864660777664331816182139779287577859827222917003492133317769006999254674739915018562543616818313156445191671720738530600125219365669131822350878602052008277033076394885685108388275953556237441899330432815628320134330534845789716111449026741119405565144745581323120542287045405541783968587366095974650030538624563730496587306533456440291889007469821003168695218224187877398891327542526998965025604705828765826723587379786759710556907785950634224062179776669424800275583521834363984222431719158192713153652220931141977760969461710653325890494376034149016541303693998558409885897613497602316504015765617414899740227061527519815568051327074100973180691509188276133931465983641288116021762581086474952826869538703051230760076819387169413669531942505677087868198889181907265650768812552665238234132368519068452790429151042753192607246670434600241454859144939370346320194721111248433877779951868757579317040122996246755137511239619109016210135541237296378789537540112876865851529857791708029236406332540130891379064038674114010033908046085560686357275162822827244869972843593568149664497733661969679185727702331284351279386763390045128903365166376594162044405164897589080719816976001850329399987447795460140373423719693032351551628603833532071758227259880538885620953676667110741794211057150744409374076332700691830504548204301169780481199337632114364810081434106457659746378761227151618696536829992616718110480044810833503123417914198447748870132023035115351183495657616132651418344968735446221471308102303878886488242283318923875969955504743450024339983442634537852261751203869887260741452584110298525884320703739667607102706805183343500014125992014950059131207804000413288327057800944431129270271217828112939196605415396237175704278586641240000492981067903447616202791994415651432030615870991686219133119836639915061419259441227678709855905250252749828967990921124569279251893331577212441507364266186075614977799062208589848418613195249274876974895300075789725227290094322740275379125200355687814434195233229842495697440739736001089567640636059526427158008618179161275278671103495234118312594889227787407099342572295808438235891768295987592726607586068504110238031590095608148207742872737267789615872716969596931794920019664077489720313336709949199031768559851720284305842616797250373762693523769724540880331250698655881436262093486037284808447910601145987229850346446926071146327154117214804441966072657706537444388443822035507082350648942369560409370360612951223648188127002893784462914742258194456570244851295296156805740410583406640594520268420918398600586729760959955432103465477970457685286839830007177967634690056877920845700394150223001453994488783049257898718986366615430713690048872499961156156317788913480083249127997355142385191976134247355205719842067068106699813514234154108591288064629078936972314829974554515999962146972668445782519236739953701757493485475101381293870254888306614394278637421695024227074757658712282000475517303126697540520316694581583638966963338636827252557797183661212542850997058720203777944012630835983087254830733526061753683814192951175027349229245281484709877934506741420670664560463909029879989756310206147672508998926088767957733117945540972452089617950464207577248682896307360784411183689914173467061722672766425838871149892173685845477127149855678609324484750731460387724838633857638781075697685666737796113358493738580604211491763717128233615120673199965217680865045153070369310627387246308231020033725983436627103442029438668043308487031961015415940860389927667169066871178318646455465719115160563405854191362461030098282313982198637074787755666229882205714035158405679955960497818155749407338561980096855613929905901920991317345812337801871029632110124164967385069801172108405359206282714757844952779667758139044491624026653803146432584291337257444917895861601253850727832144968937509063950379762465849302865327298893103122467703820074439759166346722724579266844380935389664896680346991065672065792005293447784811389795005661702880655116805250217654564969498212695219858478153372807751167853333831519131944854659608260188794075192804225150208654297516392793158902165630957320947585239745747908478533303830365202396328639712828514050113882612435624865707287270452931810880464984514725464916822408407193946048479900397799005124630600688568851361021687175901848394274377571833209907050393423282659555904817236827941343330212642821460169672334307936120635573710458376439972522895299713013513299064083524956137519424260756834582262437781155084569979054463513168087363515986479770253211677602892710958721688477459314926750521805519459979641355713693743984317852875406238753760207030399254114712076940041409330991631543115435356026030150880993248757791149493769807223000952978743591969948562298766527226532666016088276737349127330148225953517382931718492519090818733102918611527620533113047434753870954832673183235629156284121970595908096071325374526074362738189840922280049034561172170566495643430360977936440704220853585059925877939545693281248142064170705597488933790128560472806108325244687123577903557565900284169121123933466286375681642806838433242650881341550568941596740783709478981668243290659543497185938781766201030327822736612976258236868167458974931787856919137680085719552891349544023773636292809179785619503305723919710365759371800714714763796954860605744273828784434890337557258812152715805478974632233165556333623231382297115246933033923282121877307376660028160043791619976297824633404881082535409630246462458924141816634113385986173519979832344490767777576295379483039009318470209899273550512491565710341025422878842034933787340957209323122423690769953957464335306144287494434420972239028186528184354057963752216388362280838841648963001006231963790153228490388699007029598748183099517350002969387592318295839602498703064289673193917408233822901089093852607953430897752831519641260548735516775733555414150974424564158240437015425341935010315941758650120091602626898147198122456802203732975652161090604254069710884871219841698447081994524504588955579043815698113948274861691513159296887732018834474661530570667639042504725848094668083474961609738858133979013423433275885771554084726632019621432108016934966485137364501957234626956418332368155466324377008662480438459101760150055620380091723950938297853413813239154481938715783157965174112624225907238126734520900547597151500135329752085432026125348192893903758096547592472260326446036822004290439257576601647801625924314694026898192346692171827528419545725883235276368802368773606581298573524451141576098366427759054357718134069812368954551072870964812057660967588024289551922287122348261118333019636805557360698908147425630761934430198189746045729492851933280004753547468011275616770305641568661278467711238126869777077818519892895248251398604201798451844583557996891567197143757029324139210902685769275703871535594157905092082215153845810293123735155298217097530897868964464073046566908614709584960174600051840022223057176018829387089031557358098680423780577742953516294547011239967464175546461706640821143698149285017593389187117997984437641415399638631212285578927214707418000953150104467943416191516952057184582165866532581716668621628606241287319870841701939948164124257094808302284346596577473921721451592136452696837216191691435931465157501441382251039847212752467047035423981204308530562862462262907035188920863465428606466002857923960404865005602191388382208931400075395961354764421453380750865343966647290667546935502875464088068874642371928426857263267938208171202082942869529695701624701284748149312275519233660699892071501105795477095682981462714081110133877107830358112991669382658714477021742967766524270569678185916209827505777567356349937712366686415662678155509220531502607811764594922777584892881943197632910460799828753271924967585587934870527455323126787749587888581996038873210284062756807706454131783172570102030148399551252549383951909906703008319529865124693913393619273268009533602214124520864147034346599169901571790905932636289464927283949175731760377721732793088226111594810794706270918142259172174785063193586015113885269114018055842687497798549109744618169312083178806636170213699794087866230230074526360676442263108995007807242756678395877212696742950441768004838967403694565287061463293201721706759929667100165259860327007442807043349011562295781450791484989561622625829453740365591862756479182451241808573039934645703773241427822904811651137438261052763870867689865568600142182849639802921082439979629691546479667974500671116141632049110770482004970281436687826875359081529765624773634671677041651547074701073509744532177035831575316000157722637550303797971284228964970206657014177347833792803807586211731226092163451110118663135588021445655542981677667946511392618686742283691294980927053607489178179039042130110241367588910496221831682968232924320445080802918320491278825495690056881710946129198168069940157154768420590007503142888678561287202445398661596901379339880862851912648593735613540451170582160184938716861501471590449137618233268124273895453982486992142115762976215680539839025844832551404439984373333932845683538292012420296288205976975627628703449502131810976867412062052300911905135331233769567981407986823851616015599793264330773813780095407680890400592091485006098663429363209748484313175981824140754201401344982885556657853098816378426502825095914245035253873963842933047464274264467913953378458958288665463507506085835867761318161144530069057694655322298694004900185138935598123208370983399839175466510850634017530182128626765727173459747667784204675745436592723403769519235412386476499839568047548769911871576558011003729501878160619227629300372225311874057398332926914572843232015525221839203453859653594785502438012244773239776364866899536269032708783641369325449430745245250753490963725335593111708748862337854665101758945135722145444468384490002107578869905832049034755845291462020244008842412473285521096573327269053602529297230691742303942941275726454510985500848876279625960535902284463388930379265778576438658610976014206555722662747089839503928392447097725077411495926465453364336833495466137907649686092992145224936637199325005722095441325829837892675601697707227142718907966672513020358727523581442411795346435569541157871466447381086260365269682887297113839329911995441632849650874971921835122653780866204058021572299031182983832300555989991299218076388184614725294517240199077126863202794482973858007361513087460407499584005036812725134240669339526137246878292457350428647102001999000337796853454954104317298369628439592959076864069923235707334209464570438414535224649143593453641317318029495764166284533190049717081346891196535719640597698179790457189260276288283239616465305823858281368725225107205958201409863810319334875375826230838394425290180617238593791816582043269681465913020580746446011528153381672906358912342509491403369318756514627625020408439116944655285953648308446863850339955598210317834963140564696936402588940658182107942777308440487709622487837957568272756429928585212875616789222502892003840438947595621598643510915843028254051875512520759331006258690388297502218097548728324920298204526729739654756131841812006211318371143877985699530457467985752087289656023597658492837636429795292130345419825082140450878285740673319924400276263471118288860775455849126199923549219399388666802365851730591929560982588510062104704943602535518818031491523093978423631943988422311753808002987774518195721839522116322205965997857053663435698860339324278121361217078676525198605916939175407621179313200730798607419483278090365081443299075663731285123128257116915386332210822315320536848173269725297222399140609530254005939883060258989095341881404509833592959273501567094065761044404398486524353035563107821945883999504084086450941540348434732906072785144074702659676396881500187590782724647055713746792934648107342068791690429254623658711454258666495881104405811497409811696545929266352188125310931974217855944914211794840316603138825369858144145070535223775912103093924752119261648667167227783512579370929489685406482667330505975310099678615459697884872641901714183290986440847273962307378147261480373460382743330554788521831357720715848126638855733303536929552816948392846534562572509199822077763324157477780859889823162469716878930838491190793368833302814775376841595897102830694035971041197018905772418235283323542113555160315971904002681826236563155110184634897665181618784166075875789592020607434967760763645317431636188076914712578183283632119232832577064557126766442676890315357388526961279376907085018629243338073196568746409826570739321416529347834258648475626949115597840899177352803574980013466866113191756369899495767756597519005245323474849913326730904177671742045708077479343911658200771962770892934129185297417003835735606947600154427603316180617275408975691074350044353041346470937934723263685876627429183389568884151656828913714429410216337082786743670760468306617845111702561709157978105796108056643222734301030994454132256024961859258594692888138091945923773798204824887897691678573961080137641529781583136714034381318979638522549899308744848134983400638714108452206909305188846392765513168131837582290463882684845880065395911200044782677298519259258099256482725674500500027702274457105384207189918203712238539792321889930807408955632430567188264036640102574490459417394366519052239554926140155739185922776877993208832898713563948087774677158189041579237724552303080981533724188066510490962673510840197857466629491487002643060532895976554162300966544229828144533049948030083879951472243119943388314225628616735034623891408974157201438822892006558150622917079269473898460812845450799460114026484277053831712733993025079001184188556232068326010869819564208578665986705333695626804664228248700733428233358030569779999767804135938738678730984915236679666057999807942776485240934107049371682862834361553142340280941787152550898891834658306215727828652925858648899873771999652219346440537917046397123317091118811961410041014608112454277838991408284995766064403944322131366859288761173053173053848547703175029270317729665724782069334653652228981444314442847498376394985902112092981262311765243237158217609966167655401519503860217649226374100091380569604761043840206226951013863440545937670042005918843506757571425099666548475833805638410033976207938183529858911406975692327836143565791895815762867943077975016453887364920263768936827360735566456338363316071996410368950491741599600638399082159886507315021263221056957169336058833996480607291811114687281715079857545282752443007119575684182120685586020710252502486012163048216339605756433700298597165252334267325520369458558865353649961666076869925764320830844008694567547427059819363764450017283878881862338637876722784016520802570119888899713577999170438656498160407344729994597683455985443220534321471884728170523096566660771802854985205768688629159618189730111487882408850387371098102768182685993119859101798672287620744430384650784329806096867227938558592795964706629378361594264800689285810246829397043329874254902114500560693632507995836404615422323129666187375393196040135565066300521528541940319561414478517584000657434653746767868711268493177399000175780489039408925299904926145885597209252171515847024726664240729282693594629092873461185832182193821344682926343782161065648660128430188208701142958089819656660289159924721122269338843146085202686989321586844922175800262910436835999986543435308060411256314880431267345477620194810541187922822118448789979877122603599178300981892275690044794045403592995158681301768708774697138937607260382965271245183110898847867862218031035181213901238798571758000278768135302734610972022899276182409038432473823578445269256219607468165101913734260396727767283610502572213968529214840150802465844599025332781071168367260236046069617502321800082354374468141745756787843977125166397624978995391742802088236836131919445803367511818663727414499122171034413529538934157245519812851280839233543543725720846876357996276270211651568027830832190215764628699471893283504187376571464637799731793784483737661088756051588786772287204319221364571102025919965088132129299274217316145072291454000528407924681714118539813328779399396163217194629526922779642116274598592882870084856151455122297543386790106861708589270422474964959667421588725340641937310138069262711509252020969355089679867596374814365492503745051067299329212401644401512025437066765689661503862139897810347768573226736003752616785040112830036108202710703868448696065859433368144515426875026917655309975602298537520450032708670923656296700650090825400029897730484921378694800825574101030367470149094394824098520001620729336429130572371811607698316237040483408869709446454737053456385734513503702181545569837598189876934097699547816184000005186553029520207086781521149122818609024960350076992291205844556326154814745048071374634431074562254250131661708539954331052041728773879336751525841020716441597793053111081022998858579906427738829205710125351553013214674385030633019143053678074600671598710675605068012463108683832165581500236083803163740745479212348628847051823159516670079280308802826987828185967312463298185153754605683547908949892278763733083949137265487772609782480848999868630928497811418897013973933105980933720345396527119323803569007257949225005300410581641425402501178247302605598622916126726344179648413634068572249371759502272061347066739143883523081989317792319719551635799871599157404011511705524026394608855401490737621005849508319241955728457216170648281234611694129983902276566018112628249594125711471423199093683460458425819419232809703308532060946717566208931397588858256834516048523431588395645433490234915906078587045186504097774346695581770381024131029759194938739777416020857705202657429809680610640043688335735862005103588146520184591268813849986062246345240990085241885015773004252144988498081691841013111724731598080143107339399733223081972984978955056851255529708548458721506494551051081728834771842138461610439458795908254162320092328286835693442111188708466959999372931453797019398146541611712026594148029957341052764278292622250065057468173266069655523269945469355507418291473220115107893455496735037644180204916850799143183257569780118789522052760125851589397280387261128908745533026072293691391603606111292430052406487544308259702766236668892420093005676107471071588498888181446500024011886401022349341121537813591078022692123072289812743979509226550152559524877352796950383951877468437864683956666269006446777917408919616414677889050249485653902639697133970988883629796245727712418787795761452496796359635472885939126501889555654380546868134347624246700852630709952911154049833826036845508865305255252803092636327075551807696175974666429765215080604635723614442760523280517345322023472614667774814679059108996647540339524647974922644322235317179891035187486161698002662813192110106954046475482720366813198458608485611250310250835198346938404231028602058881411092933382001918184330503375360432333747263835652098898987554231851367503843197830307009455210769095614536634304375624930207589036659656493497912679952309503699094525649887698465104269322187885425677534806571567387681098737027444665841137061268520004062005391030951350288615348254002199279056248401515697865725825720057488591524269043600584345744659304602112993033029002725575148722475835531060826601235640840012029227185952642167068082334693915894745482270060731536623507012875013373038978928961129976221054523770146994264815884794743313057114376466905068045638325776870229852523661146175670778064755711729504493655993282286242712992487215671262271256978344607239459570360754015075911930081454243339522096415865488134617490999299238631187858927265421745117861018814961603755140069741981502376019075554633573897578613681273699667833692431056493262836251493074861010296837687519382878189598661049443709117844403329938413376905078345114159062796559037382992346430855329758963586066399047281890922789011103263782014675969588733636810846166060535618648236778955177030722175987208855711315593056887595245355047842026020082787460923857792061453986056957635816238948806222497598823478479656816012952830510527317797106327007878586706765839410316040549337560100924341251779364766260912876268482123093297584538600644529796261858511082651404920279003879968764250939257793708787180669277873275115331486233912613849932831104964340623048722945736324648665251284639769381843340643989892222017725821830880029786012832635517467247259706645056245412203170182720507828423679973658093739856650919983682643694361445271739450598349489931071131712328421500311529705525745031043057505953965928567207933291654619244496392868504339366049281369128307396304021914795865015938975413512327684423716084345871502398160596005968212183207123626289055632637663319065875050078618403722756810497392269131800530616378199009790126206509858366247286717886947179515580606748035515136837848712963365549867639811875566466517314590167485041897554597997917536368710699442075675148755014397777056853627428051473587930777646878302228039873434056713737549980869519055464402523160631968842553650021562782495968221111029274280737984317183855910781224871561373018536024723001709292434928603189939015842694966227142588888845660358620403278868403895874388787569159518133968062858213774651356092469321884536150794106218470341820963579640422405801503326176532750887646316212945390405623559808399487385424559052236802141923519755646312033858102657777992947896101839764903233962064587596003186690219846433266152747334725071798732837132914494908108519150924455048517671730514598866646028383335024050649901342912721275954918650680313488110611961241450376869637118720661418235665666023209072235803501404289847911209244510512672304971357032949290472263564359316731788256476859387430673730882349832085597203440607696895242664652567305027464224848005586177602094982969465877947660815847971313229236853106229719783707049371253675540345413799851986304436856115880413399336811785582819994663890066375926443592992643926452393513847332466403825593827811388117161133618135060148834014360974940302536723413263031480917616686326925412094442277023146982252236440885084509338654480573778161172193955573838380864322461620913473791298532464835145348715300777399501830880715567098171909768521742842267517503528987612231309228113884208271097468238957916744261008439878712289971751179426540209430273921835687868438242197216994160226989465820301057714438963576213833580844323910191131121935109039805283624023583044230839561061578391167039603110130237287580156582586709258974859877901937510694908073320629381883734488436776327770127408446859562357655407095673012465725926168749613442259011344886471322755168520774263062933930105138368091168210454016357096678299414283243751109962064197565717197213697582102624996397102032914428092588035308731436110526732943572293619878128992268522943576494992046762871260244620382288421664877460705001461173957266969251011277226411889219502987037441270162077037254897818723307428156228968732899485949210256302493508515635617735312056377597270936066624422266482984467099412268854982072632075466459867484345629858346818842721689883059769392709689028946947138930798125945253153379519167877234973915912844771260213110042631074180395597926149957635332322389986158539315013313377556120382671586134921157432476861374132706364455683088173904577042388905077307055600598915277836461726774851495171362837649444361092679372224208868283257553365841587904409121891703490844894213332821828184537996465552376520143779272414559706921840344496642416643693801421852918195740758764729387004987285768103105964528292124511183195569547961058073693861682757427427563256299526051725784019007213937941011370644024768860791127356030953814973355707304740641922974056221073169109990981690732445843146078511468106179537140915508820610689878148003802680550208590489968678782039702108747790404874876792396998512148621237462504548858499797149943189116754440622196570678208638977924103131831732176083348467976487222666119360285816096977647256637699145174763241527489426327041131736664377731374682127576861332262735888521465535170973955896518857620530394620339464079083986020422507743759920459747518508738372052268314687266752860611161629230189593310820789215915024085830931069879319451552503041417402161970495138521527381515921130944426451189338228599769624911294622809522710148398034875201522929165435227738401206396724863333496774243363623744977392211958638358835323561936450226255997102504654614002371715504883526246474668354439146063392789853635614743218581857196757016786089010925498211840020346418960495407126566232748222375377955209254037461487280853236078219280000531835291067708815072782702873901985716966164535315236393544779762402622034212196195974792087312868828601450058667835384064318272212163552320145182464216939840980561167901366683409314189711265513406579266200528533487117834075915412064186507680921506736161540644827431360758148936196331560514186248425703568709990328420903848728972601053481942058010378781515877344012134714673708916210220381532269197234090196448042672726357688649449239746139952252301788033194118860726502371343568151671103433868060731470137132626609791000521104395707350426099624450446487950109308388762309547776007966259864951077835518729781334706536239267740679358062699068075320830388907264560465796014271760902948500555074308141038764714483321530751682424365797721885206756565047291385507531879637145500844610626089178656649941417227950001917628638370122381643562790850457622633213248153390234846590475228428775174907289735753871130354459604836963568178910339938727786948579290046519844816332166113567781024825736647509299067447857165605978496911528469650807370998988009771320736362272011295038418482222716580378344251718051467670840939629557553883605828735111167990294722526923788206855255526081452080717335364486682489309701825205196985527359926350127368111293274046729565583180304642423778322432818898413829702417955812540609875886521123329927363432035987079721678928510006183737305800965741008852139943314310192141226649583520159832682758230213594843455133571344717503501340787723229713178722961405097045772571508842645193209393727568411577513174423296032107104794724390883188823846600249248981468772174477154517055442934116540325902440736900997905368111126462437686185351124209395643457165554797846346192764445488875457173646942102676385271106024546752766767551964391906705614799073439090879663259468338569382589789603664657871214227731287123850514208803090212434433503086023762684804240420028566596439264621496033427507657751013347274061278337838725261847642027047872748076153359420804561600476840546747997119322299994062522093730627470825891618118538120458522842540963654919512772981462856956546146047597910144990809605809268640285528206922663397882959650989592761284712275373273657571514734579696780247530835530763548461609629098256359537293781448613703480553055803632497229189758168530272655773112384317159511220316856053572407040296472598773528407510847252775039469390498900895525815566930451325464256544709979237868485634550046029282680159221739520912489143563952883009503834342866183044688357224203015934427525076192110718774210613013830924225367881594651350145382904799728238867101919502005142221637828347435168823378944770571796883850537277293488318957543510027353569869249410293961253080063447887947448587103223200533246292700606985687828662556131008162086657665584487086412466985440634062579744143761967628441498721549741909600199268918887134700568637475236575714165421995912777691599497761641377336670723000986234356243160181332249159951132202914590538930331217545650031030196239497914093369092390834978248706405054233563128728282531024058027663948538813308137712793844232856863986795346552308680348962244151896472461269305750654870514884791722894084377332465226713291290925084000899963751546459166644007414192891812213041092459340613809042302542748606965953903174414025574114893729906929047059402315965757351220244405689482794471315467374456686501900604691107488947256228664755142357254571079016539992387323587082342984859128528682664580244103554612719220423105264140071747213805318396187536756099396587971393635171436903274859391917780803830283807770752834535837037850249789801872125938036108409261521090416835087671037245366626626924497214038504324290745411919690244132030344931561347577970321765014126097671198342288681665573237191785683398714720369833454983819112508377833811675679388064191158005493994891222479983422287801928252912261816386946603231748239680583318519407630008184211588398168395812629450731406990737373387615541499480938235916510705333999812615467874073408994465987221098687553457185756143932311643442460908665304479844526942883045449922454461170886921260998296812149453757542381421128238551187873201867680717599357823429943628875654477241939481048737324733839920293938855220259559528153102590750920041270868474589399204461133119993875748988882863358190553584873936388344357060030885517993022866874161469002375075942267169897239547615893228235664234573078396718362699929660421841641534557648342133360312113296704364174527881521322648522291489001998548752124198524912603443650898905182842431407939350010872501335077603485461387308122557131076724250486906466441286897845995071442101468510319647799258320625902866503896543549399342369858916859474002999274923064568741091739516782670750277338259678632650931621376015098420518554348272087967463300350295086274324709460705365007608782244050751604752103473820982972565210441476274715660458552046750938068157805180984804129147102249409974186973589335959058247213504129297998710710518744582445328588029159032904349781405348583418263918239852900027801376831993426022704298479145920847947291503384104806219614057665571198613714345918721000689220704993021905313408493077059576765146780567787488520228809549381658487059468464289223819946030173031848801076296078662009530952793837372110518687875488088708352572586918142554067549408296120966447347648807879232778830654118498257927874183721096655932069216315591881739066947030283728718629666694576311087997906252138761713735856242171716059541866447580401297585522072051531572153255773659494975363982633964475907913235693269871672162678426031402397128159514215006407380711957598566959129273797173914918507437673112807009106721634731324320030338773937566036459647971196460632511131769402831855803479428925990490276822462511669288678256679519968420775845029313867714512532379845743450405630210365416973839176010156074692300704309135769712394867543789914301267904686475021346741518638039772036600765055923808104723731409490754858303030163700270871127371776147308200972585038755434127692960550621179849974559755112476212405132318327281041102761182118200963881616578653482003422107132726566037014976841283912404157795675622734605972103279273436161895057678422069009896552566179623691233204332192420586908923138075520754774869376287952599506837665809947782590750578106294864115752504666019093075106979032662125488028814915984200018517649356999913681652361609523039180113081571027868415015813441993837727082461317038509087375323585729433301191005275621479490921789627082839247102716576089641283029763853871545640270421035397860584878598935864489226592659737966264826122892240995179927601648256339498064035882985390299300649558807648952400667884165882634817952379948475665023949785820590986202332431634560562980305837396397763056705546318511929440681640989870157399118687721470597562889678925594014776316351075258002541797658787123532506364496741360860058202962853039676669987889073213968291531900065357671925384102115720121250435680421754588450608561170608123361431862501487250164233043831010709530903649279119414565663429072053724230399046946183800119871689723729875536344324358635067632019137071165958751810403075228671788088755403948031078057536227262800472683694595323897965885783641435488868448471149127802669651698978198628904068912521497660139688039894561422322409228752228705003174585806303427107526856912832070870241680437091465966771673141154648237033499130881428937673869565188434271522825341303715403897596999124992544061760743101836185003174210013913845779457588951702454196367536136105774375567314505903441396881911681729099880968125378817497679426543357577659537835441931828957952111793303689632092039840888618704843339641543786040754346472926554682761230528474443691760426679844542428710358147738962915975613188027117580656549436795185801558227460425326934205420279285320301816038664246758163465773641320492186000448857487390634718435500426629444721614747774964479499453214140732644456612774356239203889405048972817614334741144603043332423656581326288644060035702170747674331842516025670906280485846561213615395514258109632480235613440215043259464110692747859803690968550278385683080412492956827019213121400278628969337202398353795729003079255990945274508027431150067008140568932730914740736961112132518291432036159381388969278611931739347282014260818519310456227047365871665353185877849845962409450615652583799897857912913721810648194098618914272793449270237837831056782944926101550036490374810858761888747730278782847634389078459227008488048444568194427433063320291889302372834257524188320896441417976287794697995846902377971026689281144731923802055516980210426045684354665960341885669943424023228260460443123865771369728768521492026615460619431815705556006162585364646017594043450847455479946160830994145581945450648891066934592929944582026430952222218757247371265037329581546637710629096891821551869743622351305029388162242819541092455606919781329458224802252733962451634672748664573447383746013191284975694301636110163030994487297107548551460795091850783669550603609898477061931851714792999652026965043656793532941406188282542448947695763415504086316960158015682728599957547310319592209711396874653619444724007092129483544802380781352277672355668542059832858809605566162453510087113990110167367856988360636003986467201361854247248706228034117332779396260123187004995765111796275383087233535090917909440458757541727733436589969050414552460388967627340499484461296717278497053675054394654580801142204762006800397550581695171041801560605116886872569005349243561723774938274874224470512753602238925974171246693906233711761339040237927783706149868301007528319750713579688530186363216697005071552910648221048011811250609234183412442044816974003246990716888215311685692855244083620579813584918551387903502531777772481433965430593153542741605858033836497379163415477740183364406784369822724416555428547760307534803962609641148594436641636674598465994010336122504226971647336728831111000795803438152477304937806543646176010715871376881922246166245839024678547361638028622252816093724059887755222817301691737827907059224489705974241397595371294892101811214683979845454028232105874736146383663773485002658001340427498281499665877158347546016607991633652230180109037699318107883854278879590560053211696021994494069176045124058659174176316770419138497051642846177780491129864658449336756139696603022833389152318420840198743737608752797898568868486774409014209538896340576921663656105255924220718773827712688757347137917848858626371478291379327584923225056323299038327484944000071724641477428108205081413830756577284241055647135987975194035726849369942905963552949312456232137965538929191307984684649385972799650214656402394700513184141732448811995554377659037395035140023752581826204821055092453415491004532157648761969182858017392052049334488430150105881807162429644833801669804573387090390049422744605832092682864846113599350289188412495048135490355632297272962373269328814219256744650016437613634667034059979727071231558815634134061063877085119825066816467749485798944003811661637983968864271198962148255481918040194622430592333269290984556243244519371435844595163181414449009614492469660343193010816999471234848062617403157930810620307288199304005170567813427889961298804438861311496793614028666763704465813152333724041992446150478315816658737387176648696762663396784231386477081310107017520756022800863824965405968355360943341686094849051818806845578562494799309824889345567790566031524156073553189142306115939827141614309914906917307788901939008189787871883694837736547810859529691154176540712752363039692117125877660532953876643452144526521253715048835914685714761149263534997418504973471567180681453299293738269562483343246647364678285296656770484668278842016885666063363187980294627255346013088704814462456929953532826604910507411858478495486665731434748206840464451958056112782224044368791096407736525579661363668190074533091520072204687129221055760625664560560798348380237001427817764177981611966926018234587782952665783230320480510116598213414007707831936719025033692915296916400359464256769226022960541557250019612967219538977153963694335709710568390273641021470911592062073436766465278572233456696978017032595604357815666194203094284383804348826432762754345581052253840020541695893524782514334447152201618046554687432951529576845210914260840434278091198352972885444506788232740075604294711257447483748834372284955576780097280218778674914406721159463168563056754140280461727768969638930111521147696232538526700966185594218702356490534563595892987168810389180868493793254459845295169070115468236848039715302872367694051459825612000790353815639371741849826647636068512521709112450953818274309540213522439716115652568142173781065532766539797953238733951543832190547945531004300139158074709969286857655118779830508555257342707456141065309129857033032443293615225825500090384687255999344193324813958009047512494051732662169805750784384519550758332155036095582886648976794307809160561008420069548466163028220393390221892596928544328385044827600301905640653137020165368909651765224995713205367598955559961543221024968379254955217082622321433998338224148313334409531004739055147976075754447852272529402785511670447749700307632223538964303279685930075549591762887402198706804814552290902880091602621663507865772451269707502253933444074044354737518367867328641768503984387282982268181635260305348738013390221266576788700025328386008886430924907288601300656944102753622049485953990808539427513443175950332400759913633127726608870288242738307575986403074030057262836356726925172699302515027738985481483301400285798813744696112165330469619330980995790210748267141844273231619761091651083043621127093291277055634788240344856389856140202055946005921349456537790885120585481221016762597860497148457091324785692771340147870149056068894360598953374357762603784966290659183146258030649597629012666623688056232240559795504629759186683928262679294881148041744527827784875047336669153196875706343345110578999398961464747207114357830914260481621128497808407022587413583315114278140393367472042132881139927228439642228429521659504816654955933148435747407711643543131078162379818378238345536413493808557119046935184709922465585865121335304807466536014452838241048378795904545163442737356363502271354869989387113878539566344808664175624375584080901829193448711130436002840162882049451310399717165860904504806709223236945504505100982125220934704963572869148602668821839679543609290609461997740654068422621825046790055680010631316996945259765800756286985529610651348422875089566709958007444030963365354659973830605708271902165716799488010235119302138070435272953697000620347386909957266068366261269662094891664644991030758695910482787676206321227762558180505686847740947412807519798342808517339371273401687697696323360834640130171342813447014587173130303795653464340231401517265664820233328230498601530744353794865716230377679649880377615014452059270413528619377880755497803504951493768652350791919884221582325277261785693561100387760780132217163895864891879561920146708521189368195806227508524768540820573055526920555813504888828958241342536097750580097103458628382784005546330313162744280606156303545369585347278683741627671564661545003557004840125713601992534237519954614143559341114969388429891830690279918340158250401997271949841788889920791750907952975727018298445752610021019423600659783720301901361452880911513015727340907245612418881670076129801662548541198376357718681197849234480932444960384462845887891629921144120544038612066330287517844522132607406064877082988497710046590034473207979711996421315392784476411702718076313488412952347253362775202760601201037032355885469070593636097574533516950908981252740156074175155265811636339184330383302853225034189433326572459936420946190469682040024798242923873001920413500710478561354035571312219294388938821673194977772684960725382534674191079925851063437524187535200576633762399434931774628351996479536148448527523516895908536984360835640394336494282134458846332656912695121287838257337133166458758964692224518041206463999562969011134472242327596570456927718887833889694310944890458738107233098426906149819013894124233948502525764849243775110901581369675793330340938807522379374648239557478968366432895996839329307529009355203431316758017620454677475608751234580598971542966120980615662537982301943832232805868991614508789707881288923339613345710957061751839712044414337172372667427657253416853047462359883059587238852004598876496102431297792775240190043862265405282418893841156668224916278343076144962881973077316117531337945007653466666329663220053615735754482420826344594359924750680985219215281647739577223131545290083578167045260016945753760655486201421401804662341089683242265848865786351608902597552100317623327026482042037733492023649095586665228186008129139408879446399064086944651002467984078787158355305190592825801656696861634291758221374988188290565171226984984017105517105125344698391103193190119945958946079163873706291208524854297489483774717470003726583193196650413599118705810396098445238029962628833024241493463574619706818058589652449811892296888511437232867369206790021683252556973365599308740651083904924712353269367641316470570886879266200900416120528416340288523073313786375333115932184496388685371896481542910758389961717954386187309092337474676900402691188041189310450822337795361739701019626742971500422840962296748576348597915237386487461408887462502333930751457563302333080622709230257519920796209215216729569686268931764420952395760970911264625861730761743786106754440467493904102421343124171540174291329529614731840986958916719369534170466365900351898802698301641646401464116942518548011647109614428172977117398440962981084752257675281094701669741387401563412708929975936238463386019309638562402032649901112822061687491865836478385597717301901798611679423572550998983990844515196684072826731205087837592009496465376615478993782923417391059336393357565563229017991635318600169804451795122785213344371504076363469159539074500207154407637107996885383428737907165186496045474063078193981063055838173131514796463501502516785815074112911408353050470574475398004687892814303101029447472207711272141229399884102817921566198730182750043604273628814029269980269100387668772918698864576363848542876894528463247866677056200089508764230708409744984808558366146901865389928576543989587194562178452335099999094799852064966843633218332545723533636429433172890428432377915761498979851062872866092252678053034784212020108412509179190846491069728379281074729220885035463602492738992355489160713607166942857127071707403521995871662186144328453528112847691906685359675132098714417154567332249827046072224168495223158008045988513188166024605152399542262294346543020767098178505607675988714595379088011551022016978696056458651755816886947485950456517553444280550599920920206169750408539185241489500057983493849887024564355550827788134411488034255218597315946943755555384701709166959050911760033214378911605165316148006382233953865556429484793001058559506015144188578359201852619203442284520722823110336730568278631290005850803370911742813419170107104173192748185494919093270138383881773156954427678228598453450561281618397385513273182679609311170831068548803382751144711466392613840594822275431380399866312651148761333857440964877627155675472151476762817116395183812023615998036624139941352003618935707910264856092484517730545737986235298192034332770974964012488073061075099615195163053560156306533668077164619833182642509237797059572973545364466570726651712376128786500109828041298154346329147466073580444995863130907542934280610989505947995297523643787626225713051711631781055399698196338419344891387172724366663556870751427492505498892427264477914597098371843202110862511202129705783664360120712417698610151300079331574930068787344525835738976239846313904723706814937108940797479051261162320478696617124695672753003485603878034880314065083777589643965982564210383750552888894892383154144475760791566742268597778901106623237506536118496933916934608063464995009178845968081729004577407343038889319835390717160559152203523974217042982002027666002480765170822895126172334861265132011072053040867884484502548534743942927109960328696778655639090256879653452965434104971860235207242640675304964168440170548794826107371218200174271230370819448863694242127056273678666252010891259787732221587978382835057707725585645239814011465384200351381699285781839858473092724186635305708150234610349486543888138306523077770213449236793695097328893358636106947348280355538248235829145765782747156266933911436511342349427759088666509367039829511811080752928384490836486565465224018942260696652974561118639427541053093645586951369224630253686901636734677358913567876652523494083368702513949156727181459274437985631202285237828573559095878412840284492629176971036186539499865738858756559630954591706071228545250192042912425775051527141152110216413340099434121257526511484409661328824679242592984914944327484322371965113143761697640270577715155926301957749222640143280732863673629702619500977025783584640771102185061180253252097587835152388852805887728272921661782620583680216791511533699965130934493872621508399826689561245411476783061620595949077988491515421853356116605074462945097379544076722306104727689612174561170962153029345190059585895254450842973165126466981707368938096676536469035074700212453279728581587337232471582245321063452163482642122359909396766733057095745825681754682908894250566243399473367251543316831181442298034721785357361274505240585624686612340908820960948109572640799984352381434402438315155279991246744328805769313810922253125335876908046923075111424124102225357393790517014813199101337974343656545895839390750553579286228834541993236603164783908553529760644684984570885574903694392111338006001740571817610486228282171021505271714042796076886707963506393414336364321057734417421611539029828445188152058378831809956816717746567420014849928019284437761546166066349714267945245526362703056808105641311942332445111026604829710151476229793818950429631320205131412873722740969739218667375519699827239972448461174442302696777354701276678548731043898875820110511383566016990855914185200636620918245324702771186283303060860457198937233686227705781047553751591152496867291209021735541250806880192559242759916248106873648278886755269529698403232631021208895020417600078393727769458753455717001105259921152148434902322659172723344920295497603856265704171836771716538283129655577186757405647772838029596851466537796293215937986206125577863055822481219062656322077723991733444718652254273853958112096241203181700635475700051546287316079834889760956381880352281586805169834088069365085100347464719369288722296952304008437478169808625584387055377328191588762450830695624525372520428992341747445875562018388856297263263874680970577798302029998814970341464853030529206433824134847960070917856269507555062574394813798964341464127283762498867051658997410698774842886552479886055266629579466300814031599457827320027758121367259018023571457718570315818086665548916205140701506055529280264825689587202213061486478491512701383367602401171836873227572325091579799949198288087005691825207906978215665477949730736102737686183256818517297798604699867047669175529082188491560273850636484498112360575294770160385027559527694050760390629799905547584232191941355332785375499863657683053358972953807199969573347224022901845220063200748721039311434585203701046477733254297674653772284356033781453775574406258359388593408645912584381428601842354402678423784475985179065347007206541736175533117618229693314857878837439404685904197567616595469438064188983199320127112793265632749947361756427924921723552074370831415063247494594757328481275331914735968602425401003371982170555961897271692826728511369727283586640857566850791775602801273310175397567094861400983323017485425943592282314702012038722108908932109177754721931354567182355271298816696855943753656749348587216228705735863891461147558295856170892819889449621482388932743252821846632675037895929069648842779994964594151359316486971298875930776822249923037245548203124253088812820649280444455809273326004591165407940338773454373125743105674786114224976524145195876881718963717155678885584943515557785420039992430956572747931802824986005653867977321767387302666155160772978164493066907141063990850567042767193810092353890758981754977849587480603344551560822887252104999814470526833957336660066591533757565595263796284641179073016300546597706771685581066846104094386918469033819382129727010494338761639041806716164079475976683822217420806871323789009120190549197082275776358853879585573276811742484561301049445430699412673782940840341726170479123235878779972500474281102952278768591346727486328181915121035230575167212673790622523854842186012554790148590528691498090639328331031955492168427137948836392504201851833583327543879673323620206517080402786135489233346676560677326245804975502372818506621416316507338018817894480473815237412777769191554108434826640699370234596689660509366853175980596416849270869075774840672433350732931954677374331194912445878579928455868077318107799094278417954576454876267326085138800722166506653775948488963662547124976698855559669815743549308954077063582964033956018079965060785184111972699716717688375624929552230590277656555310137362897202399523131226317522297275367813950416812469688165359586227354596608831000834637167921163507614364598751880652424502718232120314033042301618167584891610177828504370911693040553201966830624146043574097303366556825864593055839250069190378546190004729619389088739287043425874464903190144259881574445733841979004591588651727519642085278285938903150479732949994673174748307536012721578809840124841363773163374574414694032826577504566617662185572769947322062117684967770808977047494404702344525911561044403053574952746074606077081279309919645773554310360853665946853037534086499198177504321204098248636887302245945374357667765988978172586300687114082575227980391098742341154230112876548747774529670474641563035366428939835601111404070042778158781805748012850079065529115420723747677155273453019246379186270836686350522911033358189215076549438221893411470493887289153852603924391223430232775059449383277166195954398341363037316515534148984375094465804214562434472804826312514121140831095594628922910864092734690968323746894513792505936749798900851337542380410665207170919054197528980178126039663309902237411836916543080714279011145238428448626583065351411733980456516766637233039471402016742608453447823906810059273159161031170756036285489032080210876728966236477572401697946884885827528550905329268754112509902756054355520412059917773867429524978216793020278564070324148149075849022753181407149174934800031804194788104145738608610615574666714676006398887729233954023030935298617805626371257789246472630109675741344413555263210699137730358560375838192746325777567626210457391856493047416084135709632256734582757608716511723159575666680625354570419089657210379479333799750182788780758861588668998016649137950489844290301697074619246746160544348876346758884548378426722378822460119634143637772232847548029662620835607537136458557618847308540833709881109230110769101659584652403404137135043592441458899876115675421478755656938721031839103825087602091732984390337566841701372850288413892333341164726149927461300127392568396897203519918754866356257693825361076222245297373222806864914101334835272034468929422576316726391355720835789016237218286698814907491631144769945231305397234905555293378108157950001633726914883091787116602238194100700690897930370297231268761192316090593263111252982021776043651681980947733785873741081924688667854784224511237026890576450645542200152438493546372533845992703296511097337874947806548837231807375063036844673534660929252651503027135592044535080182854764751513057937575713396066665335610053003465312884719699573457575328292583232933778314559389719215979377554556716795550304268941772095059865641471855580193553931664290264354568435852343359917556397465380031534072337313389128030059124492864330485445145258599437043182093143223020284703244781448322248253000706406633224275043745580263119555971648997065127812160108988830098797857121370798228790116830346980624003417206773947347516892352067898353200257272041749584171271537780465283994249551285929982222830213426468798541697204016376327702344089692940178273253117780701404316879535070343446757796909581073057748005942605419033379530212879446457551873258787904898474910310812934186126914577703026413686937257511598789190248309526998608541566332227909312387291398805747375315010377386489876304083159078475557556782635100839498165193308431679829195113302207912036012619847515722070663144833456849219512267151772068505771709333818520110346720765684335462596143819947290507855730637212026821374525437056981298777308479750350773160010970400962882177826041084310019976235166985348786414794694383879672550677875949164687428706358707269491511848928380563355790167711032646461505887068005014587040043406980451776493615898192699210841843672359812183277681461796599048704451741536988939737820963372087164300465299527524808424273814860136413743961212866007331886059036774647898096251961635696162434043316170069820562949461121932177542817409488984546207791367975202821513883189227170347790825283379019617536672650003541611684246226348780295310555320382592106578276678217080792669876594163909671640412061187696718249679691636977358373819985662658775135211364775604103096015610447739030896776522487643874085872583565777268468718436284898756757562289778693628294358309466989790004118775912164978462856287668455287112207355130997354397207200577488630678822224864828738659826457788011475592746082249413853944763607358161407755158072988598602420239095816681849305533702330238174601684208802813706946054812308829816454245587928741309839651216222467792134988638888827528152694898493859756762435216587548953962804516299705089719213929484744093202728574081228907375254463193102679599210437981209554855611558714085983932392398213909099766333464941114530210362008338720989056507352686149498221839330164286747034861681141184485209787485575329058393364676526447513614045316323820383590985068325138601102567883975622698351539305962538394791459140220561201135073559161816309412701612509774574728405839681520507810683194751434806320684626827393737079102317634059335560420373390878706146626027693915844478858612401832443891422527475762486271162137673081187940279568772912632817002860601555697597969611743068448396952983202867942880966731363943829629615134441340211087434615725631002278123108439879353712134329893839477699731180138653257797248752964138090158545612988416002582988059327811531844514367717905039950820654952123859147508995267544477608891548414562720593435964483528616413784552401760029667067979560602046434072672684920997704856762351818920507704381546453548468918705577395918518459067288530149417735960659352675476792207541153203434202775982260850336264312831424798871787496971305345870147074782227410321475375270638907053118770787830068758963042064953783712853709766885105238891280835195219279483120823319974672825338494955217077253559304763842911162601344571506131529227878394055558332955595041919187890941180203231946389808741798020501095775369598203150192079274404897899755524029689254058609527653664647992418168979938212220670056424051502763817569825125877289292892519789829752736785398799360810704204518897952450246143718463887698889351644238621807802601185821204957015039169747110976421250731205056642079039693652073977758762596976665452915990520656614027562875355439261673802134853377030518812741562475689858884595865975277086769331263046223067135357183587093179738271506843030955151789935301077023204008609952717891818087357334735098663852187329178564598790556396159934817410393226958843720793884909472991651945849925006153762594706924577849131042504759577495158351111384945142665155096965733399731391363433847092824581949365881852388400992119127767210093000395060570496388583766234707722768472009885563055451099107050750713730343894835893377812706934580236517398777599020575160105597323831243848233145431304318157386743952996614710976933755960780392403764330370092460557869689889058206572548626498865039836116833753930593211768833619536320075135717475883962707841129193568196034746333453515045241875294551548277749014675124688107107214555488253476752665847044047632204231718025013402979580014622580404724956971665926864251189681053080592105468573770484451668221276733896110171260612256395232399061613795699192698928658104692776695206962524315659633667813675678872231880147679615909770072986017562129009525211685835884361167324378874506717795805069722020595459715875171314410828226553399186210175088726698316572274011364857187762085066530700207985397405696122319154742539389453472783563901689778923205537929368182034406456741526689639145129467987854465950168077246015223664201876021227499582945275786110813719432907463042476399590395366044494180585841810935728884164049094035887397047971888955434329553409650585429258610674172423929832967778061094095599199024086778929613967502045994771035884603944588434705871117470784662545227267226827169488925986688789071716693067376980220870338586671277888397933957981963191515593687838457189681080901185986304290990010890985057436841322365962144681078689475694405861329389118504385739889912455918112490537770984714147979897822254423986286722203609067899036175193389103209726546753609882835650889486827583131224952844970075130272926917146406686734213790483628707938279817356784454199026013788870154335730563270299605124875593134176563982657242617865030892660685449260879280832524985753018860468565445051272667082113875512425624124486215647156613303179283937320140670801719860487662810634842152992129134639058377473044205435354531080879996304971533570941580867600497499556595793063661263056863478462417692449386545666128877241691654753199580964979554036315851825947979730123424686417879517943897425971471201324122242786556635166664353631576608249050341957937538727395156663106111130172088901245504054651908025541329281864603090380262583194000838875464375278160539910322705742068987137951628286807162944002926836000463340484194293561769214171336285518656777913274870260410708020154310128605586564787529781189964303846706699460718515209780868981345685030373533644870777717860194958945695610505378906067561441036097552904794277462101199473191203543472988490947506005746144360616092499298926789753056310863400483138000213274399064759805116671503741978667644296841719233255700492749036948841444330873938841638307744199707057062089337476053230980674218739675966835093863778031215947881243512340937024117972752956458127812879252588149261270528136762347324650807450172502715287565769789973681627674561487757901232714285574958678437201384465990801381228088869483259270927821190140658191542838571650686658526611774523715063631490565028817753876078776331936274113497112835423508320643443892265719653670925699064054516910981699673399950493785302438646442965060210889614681718373201858419256557415720569479740998952120221931420160435469218531149005356809847631170590080105425668976511235224317114370769900937032739172993493679391351788174440674851980933219591335724076488450793479333064828839826686794777959196028512648225036060872804128023133236509213508234214784398505259127980773822871757192709265321894237336303885016412597515268429083579670770684723370366943447200803722334346578094939957594899957758841660342965090154626125975131919550356898496293272577633084523879638638272311184198761664190417596696584597618087978430034577729348709423790019882877600929722703014484403701985149318379439719837158298593082129514483438188837347192435908245729786185742353461187218485934595113362708748376621865537777191862917452119011054752532631612607319911387285031705284337492451316272375261935580175415165779203191763911147530261759216940320532992832047031679719726371874481118115525863037334295317856321012000575495253815161805627237238619251752152066728003445465638989535943680292351162846875403814718537902976875309073750209401983072720709511897276116040571251551181657247240694071527091758334789686674065356150573997949474843171959436435067144629635124068175051387438542852577425199137742301043420290730319008182544269305093104132527865247735865731709771310303760303764468234356519129888425493195912469345675622447908853091078819199872920317277251060041739023800559354966372421415455644894494551597794019294849722452724497328145257235802511867531052880812593493451099934875506561048600749635809510419500844729197234931191888533506265115193754095312683394191594690823883345377637057152191435630989100381743154671437187407001816173667661327859168084824384656002121870418264558605676911558858047005552705466995715289942664632909631560989177079190574080014038762619390861913806026123112819553431007259312135215089807434894235468960928847022179839258819046057012354812038849378181570170326543369993680128617616103170758444941447956388829150131216537484463106104139602699736465896181459466742627185737622650923327119255189234102029448027415970727291538247705639152900617633033188045079509477846838892882782631708162841622228376498452076615236694444414468734807789569759559824752185142402915673010048396954583203055952724596769964321131492008498059854946477365859595589651117596131417745123026247006049880708788635461567718354637494153416514826318810708977609631824461757131496842012163277597567134413749304287941404171692923786304876027130208061490575174210594420888779634952340164424279044059134097578944978519149805900086897187186623745895490202525874933627260420207275099792165421939065005605970817586683174403997931174361864753162263214874168715527012902856107284197305266436616726822085023569742395884671639412512359090133605511583476378467725213871606606818158850264044273721947316995033857088493939496387601201153123059911557128187824055026260691532530384903104135589110538114445116057843280704041694151524068024231640899399428278374048920190084610715591012533304836398335323707959710148689898878092588219344805977554582547913370243780297855771257836855786173018506125937562273315414311135184303961563803593443797090935032472786063339721415023874265771137723576664606441825595532045673901922012302940417164378682629035842431401091193406219755615181680746767323108349970869393644235009669613823269854611641925254391808043859335568856423360136857615470147911644605254217516832545202089893683863424298098317407232936373869165044782006235222803419302148382926025232038555219041789793558704683539310652588765955487897063315573779884248854237865353471803891532100039762731342580690090148643939543508445602995767329506625815100752085843066471081583414495736898989742210499507378335342000405976829543416779434436511966995696792447681013673309057739584174532142282587116048395777297363665172809806106122867575626026392205396142409189006670675898731113660367356476529099955427217922068194339595561191120463903396458420347545263482627218502889134359802077800167665651985795678088608883160004605287200149756336150527775808991481738291145025689980491441986085562984687669286970775733065052461445461570916179410418444765034285643454639613195909775362009966705659049236854928433132260293599386641079134176743686934347727250426441027464116970415402945060420506812336132036393733068219930402045624749502195949312036198222419001926344121865946533714347800869464659070316625073144815349226827056785923201556238688213609731785724113627663896967233282667994987572540674924372277135081965422894922377791630349977723340144396146865042163621678348818658792440860399428915867411829425868243740844030811461250411105962490384805701887726482992775576543195559675616298417790500657816335188574592632991712114604716002170922442600918409296774602542690048184020649333309755893377658198345725772342804038078861998978152452008017879147728234234275656226159651369875375024169819006421061700019472578135137711346923692763477096259357396289661718148496944688032299540061885282495037658023359227618128944637997493760089698888835679283262786390189307204405430284198490537050718801437401119674145851491076152754164377825087824186572278764156549112110723444859290172064352158192919762932550400722104326039638708540757751787058005418985582287949147738009482148533110103257087699805514097275969138056742322367323815367654732336625068983677916932711031884601516092996287907954660924493031435221663726404612109928384414018220915964829509102221841360515815885303524009277254875023662927718734625727000757662314555669935545369800021773690918577125469877570884959965836818811199431010880785879504056043507432303549598299596986236466915955791612734561886679605820837026394923133843240632054766218816971385296964971383149281260668704651579896796328914004047853719715099483619763830896716458289877476740196748314623770194838588226196650936929278552426084148085521980256787249406410475209506958753259320266860864035504853576438000093239193873525758747067262171619376803748053577933502681972994436702861707743693824169202226254279175456331637585780151150041819765424166885041075747180874167327807031073333330146822218868200155720573198690219155192502693869537700401784080585957178395668193057798074460219290394692912486569493894015904447555662045203777402280281274173677934264996467567374566789880168578597102541376527498537520422622983591831809599597953498602316828405837672794718548025686749589113299019877245878896272236216957791743479857736450957193539653024264712490317062225000923269948010952110542028194271475345695258227777171188375192983686794888968057811255392681772447956337309208582584443177173710613736558109136755435910760924714696509930776055132762354072094424999920883731513683861769657377361861903090006343675952548303919048704927126106320107209282395951113865339851642927564894926785947958898192328890694920092435672416264576407031032391713268874041424260275742471584779117821483642545533783339997070306552697763901876105101695023605375381997890176512644372361006017000136951649194533519113760965680676711602481831088450317527798333834643464535773252920835711861040232327097789484345543365774793883182855706314271389147885662733947989084059418824802138482559555527616456801058146997733712302229270300984037251681097915825957965649583213000228122003304271661154409538101822818065402603922319167540316221275131506395494426648510220708014553670829097169564959102841471249075750489829716800584193714774528044613031035836488514241360586634288703188061970967181809156567726353109484080461608607196237867210167689046488469683248878203856818776079090126667504292155654807438399631369636435543015143900408726435572953411256656456232315110937365687032590839661935480276589989760192885073533230425197899597890850306995318033809330612457170104401938560614991030801424804887475930701366197402889089908432227920036826912900826056871186288293222360505420429664544897610552653339180276456430979404937679976351332960505629902401404555564219407341124617264408004570919100024072423426103584255324709347481319499787854874850506898609388108383792417603883273592968445477926854209573376160025575229550524773510832351505984885835145371075797456555083645155666982443615891992433562570185839936356108876617001146814727000818925580082926040685712483492605655889482018992574779084154993489534385404735228402067933434624872501522499190971365849769199984422164774590304417594074773654975488017530146724595255860699640141065371405239190439386271044796326590678033408809896242066536610089438799096878444073579149591579572299669386876698372894140791385975249668969900347174188380012972871432588868296488735284568152633846470520926959181651252810013765061467481520963083670913091683125099275601638972286429094170668903822740188123421942112661381385371601825131174650970142648048779531006819764531654625178826556076275382625496649947937336056438463060044591001652049448688973052657406924289460816999961919539908513379297526506409225641918706946694828824867582542667388649824914281423141483013593783736597574594682268103660260431966836667259325082871690832698316343747149044175939925780148097125595092069678054117067603132992257231490797911210746314698267538960295986697723138600361173369595564136422194035555446452150109869525302786322706854690169510388430224602470564639347264358796490493818027892451174594692629076910688075293907684019938916065327964073635768286382172287057834862760759363675615400037785693650492780361106011686211142064201365247162309740509409821056641860920798459101292650904816408519359215532027187022342748299419082374008784601217480099188721296323246479277376085625699937751568077291585164713026543096444368214134937283989216357287558886767086802539771290237288629379981532933111442572557158154557803240015216271944139231580997010839838673562590059887712344794137787945510603053286974429524590766647100281829564357403011697036340450272352471439208099468406574163547882458336787124109819975053063971416877708721999312757564403377056507575172553658710079145723394219167046511345692831584445816652176678991703634513193292419858340368184653363475526036398220144113586406431636029092933097796451833668573029614849069091181187832450213683828775480502351307676257806726095180092998920893236144842084498850872724176422729303505551629219688100981940025415958489795491759091063431638694311753813133319968350416613574506915779422425431975714282272968458272318901368100870969771204809341844649784316187705734819184703703975967022229651128710533354569796411799509630105863279520168219440817350849436961469672798749376565996326964050726708559560901595232027579900451533806724323628988038719906986425522172910003211465072220092728650174107376378904578678677341154415688002663717506021510812613550399808320314464144250066901110608512718995644577342604345993934212642382788883622688131351944574170163171315503436844936110345949323222347261352573172441571851785384301345109100436374237286927929632599133989774001104329797096345319280948293321725301070366550652519336335964963714556164121595534359405271907322082419744948511644195762985105824652003467062276500738751393135356881190209107453509854866767457381426989682356050392847386942698530321892466596679431530413139695441162508829285256756066889292610419264640327303866097811670576419209423060406186079125613131640788610821862604280392102500939328856096036159072120928154246887479040414667495944420191940172176474875209589753372376490607905508505817551277727347704006187382098609472008126446792053552754326392833820975109544378534355477389309164331455106355057197445597479246137641045746747843870936292779425581603952579350220225608624322711680461516257011713280889958118278975630081318367184137331534485511825753652686555882752908657196283264553841260652291972219775701349745532280513272649478176879830408144736354576015672119813020154038188367586909314412393506577450658120211921794219074035083608590546797962481038573505543807239128436822912954552265859928427987233980398648215280247123371094785269570217487672462963604846403690492711070730725648638539485864165738372355288698832716119118489489014981481177734684920183362854946522553881181977331362259936871072122461013933821904590526089167116751501895280427094223267960350969367236997201024380169669178360032539005566862521766910794791282677251984102132578079158903503152733547880365563923331119374331988079753173760087925205439635951655458803041187355911282837664537246607732867497170633111988845122706917357770918965581378397340293550251038076369651653009775065246466306229567661517031117050357471239112886872406733684175265233827968809466880924711729481467896733642070157226005675438077967081154857350882469054921716929517009899534795330398910649039359971582565889795118278222249161435765789938246553095459306310209222012974866205251559192806431796267644685201260275959938515395965923624209836139670035489200362252225417261003084906459483596337241615807854319410499316673789136144999356953887967751380311985780007193550507236551107259350859737458395892614505802603121491537349343661836338658617134527518447052475393786471972624673523075140632305847604115422663102645563717104092037411525613003521335537656563023487564157942739819129676900835165142992386252343708308855745068087809922421420497196348645890327444940572507173876160354011663326994665690439449315902458211028836628986481125504070523785404579792938408998409879274751430025613864079117658856668039955974647674875510255978180326107806788473659719550045380550494611459395366210293144991142107285998368186499604565886344388801295669052297374791591041219192728045988563660812251827398317636386995448838838838518370172043886530481481934692664667801865430892265061755835227707074604535794467304874847363690742608468080231518379313012003013381226449879576044377545082523636547872677560685051883928345969727277134720443130013329724923833912300416159556385205781943607496813185149886206976937334023179339873249395945819558421209445193471050412010245527813330686382784945215767716149059344611690370477474527751243881553391445262126591930712592714001431418333852224051663626138860826233997929548668736587771500987371770850293654196827741668708606659642579015315803886784284795553189240201063618753655855445718072482679703898467219211429106086850744940720381096468381532160897563396611037357614110786576196444197049571012477741573437134358769321934577086376921846771076338178185380456252023930722807056762364957228976662229542592462067013957822386746837627667670516849482639302748357356169277355093340275844269964696581843980036742535431614460790760314060681613310478329734731288666646457743916718789427783633124001306124148314351978774760374063169086803485599421224056060294179087340852428756365954022269131621264181156337362312759103344585586078556475395444201365118623128160677318335149155996345084130532845319151667151424423801579074813806076085346613745068457185490206665522103614877666316464911719208056880212324896887640302219416718668761565525936287907850970560890344526113468566535271133935189423721477689987751909956000803229704962532678630699569527727605881829169985924857013931683474227961358563135792474677948940256926726281502296060396054462258803187837813890631580177006103975821216194963298665870993076562921913878626243068952075483767007814286323545165546076737793024687529438119523793189123808872858429101408439497340236909951110706656684819552901265402570656308725395822619714848466781393753671151335452150740450335295514587562968379968274035637611344355590881249757707343663609889229685630794548690809324348692104124970432440496219750540195551462102336640499478354192189889007436260849880345570821771470269675678122772951341687407920059597709365096097089766168977601720216714247805539500331470092854064631694798757789053929904802824954440465575341939876101219168444092722704283567535886184703892658880123569594209689287932775483208452862235320256097346194305448339806534749128396261694091706282795569894502303441142640982299313575476863114795967571035289015611688304221574924578174081483791314942296542642520521243368892087885592860779990232593013292519143582598278685354465117032523195077816908554051813584427025701243323499949596852164539035767752400882229435754929575431516403184613710739620127131974180233256193240128053488591542521756021763930901647768295815557335061989803554705432963382465201302581276710596829198004416051818124513472720151588135217641637395623566636803730169172902905478864588851850283539807692084216763880202868632356073084457894785476262918704411049997740036254560341904161602569193194889352102759931399255959003891298948166137155021599771479076558801283308043386526084091710597430949346532545811854855209525557424423921939157705732792125500711170828234425119481500206522414030166968570207301375258656987335265074482448540558440009979086496439498211686223378201943393536450217627101548882192884778082700811545752171012076965002656360755727686636296924647235969666706732355907266587578425741404028422198137198676367697953745928090650149484892733139501521864600460813153892837999654776703751730341762292618354926536416726641358360313449804777511541070966031713420810768433385361536589210708236119191957193273854264685193067609629597538120743693188616458002107459745159312485576212421827620408129249344874297266810872025909044936587376451016389047620730041521624367504253369915293697181504818924832617505496436584231823925119894920489433348997007625076401116694445626931529690604952945553251839250477432000697969097303228898151242865309522363178818967682353161995592605601706529542551400815559525301617067303999058942242298998405822187580918363865053110675828513931243462131452908135056171356367804145672975249122926189083972097348946431455397712829704252494668892415671632285635769387782760173829780903657654828604652070739259410224755250694118617188420113738255047215774398384594232397958345026146659234758854776301270800073951557345891719436590552271610897939335329570081366579143379527026017984893793789734344874718992782806198158459183035923857036225006378278852184417696595341753120905953954475183170303952256033695492664743229102802738165572093660904415520105194293026779819703330357515318895993876750627958709525186448874149362236639032659240378316257041270416536314461828480928501551230253423753290033887973492694201765496490863757623799737097612121846021166088553716509947362290746867433415188361373629706239015841187693985006260684522124363756624864281826837123903500527515264284175991583705479766252059544748892240147698261967895640939699741779899275919561220074151650225584443410717386817531647780847693928478416433293625752592061519611941861360161143443246808376875366753709877643672006306897231869666203168366895824922729927845498102108278780318579992482462022605378862360124915808106986034865397399619610423828484348290831813561550400866561272860267032545269054005504389509624946679811356700768824040545429067896727341828125017618637305856565970772809322027588146104709779056740071837043462434951660628993034395028402882405755326566571739506167661373791811228519657696995454798231973174511320741759667214871630258509138713965997850473332104562935797107940137657392192156671400593184616489036933962585710567873998077800288503841706450815804694424869835010236632711410874015015255381717393988929081323884923685827863308963768823113330341158244441461820603068013612630161960303331327677475838842326808591018347632091249444346712375498106136874104694131343592151981055796903506484581080016826217691914804592763683506378700904216285772186594670557034550396255115773453823631477645429270808889257437564743654343536516184947604210600257325674627706466503978916760993276102782095920586247227106714912793298006223059928298190352643597968769477429363404997310955333377590473733578960040207826431208586582114564051956322113518139882654472269270039903324193535185302168793659350021861516897452743936457789444070639995123038043872623811922175616269600070207012310263933881535132032983654461085059757329197566732255576740702110725608672087826599127612699900346177122561592734487089308287761229160193348609059508752943513353087877581240717117916115857657748003516386163265954591586478030308196647270103741303608132315262110089727088993677803318200468340990006685128766777898461241757769017707870432750153743987679117958010118771054407252990479268918392334798209658204248732926567746402374192065936190177253553015372495597052783812721715387672103738364168510017973847861306985057695736228948030188726435695824683525846055292571143558628586022203298942464791186862932936812929795415503096667815928276984354049347659872608875649284267078092773442728131672172099882976710615035446526883065244154426379204448845635595182972785002434158357653343893158424252749909877371917779145754616941616674388171922851486821765073774915074105082170915608720095977008283854370980065848821072711225615970353785938634277816679606860208237672401075485369576267204851766255710814052084625928719599130636494484244764233173821729258569901111994145500650761083012151330522783127639737093104278500129959557949874920680566204249545748570143072898750859225277676147409790333576716527280164988791726717516809927182038723443052743509270358059771701651737944066104405811369930171194252193217779404033400845329476104964680984018655284636022936536222231366631543871110734459438805393872004717697566301969313142093522554733319905679795102488747907582902758046112284425311785127284004594943900067839830711728749644889951632128599365464353781116576990355912819887509702363030653960364786187218281091167574548259425457971046294853903787330382752788045617285890822561052086927032619161849967597248449843634741534423812772514487252472836181482128699999631468643983568058053535997492583442249851280028763692809906515121200792806523440751540559946740531746726076939374000339293644152827108127784982829280644239027736393667713763970640788662596641898357825763293931354350564093846405332063753721515289253166624013253664599031287866802357815250081033358642488183844440073894388043658956102237795625830581151930311561033558758777187836803670321588531360603871391882475349538284514992035688270996478617662592240812597832256972358363578400550005194369882136422862520003538300496540407214316265636012030598055864844640994007049057951017910181890978050226909073521335009563775444412019681948679143408993323079897970895261670992552023529399934750469111449944744019555141080422246843327228148159404981231291551832581388025366171725632922839440935251426247899595703182293305737460831051488244941347286838401466304903686121582431243548437690162308815242307742956102589452866552500236568720217045557602133868976373300143997249542871631497613592761014312345938969268750549755214603758642585361654717911710825108643031201031042601750781039736905745365241649717370682972769067204947012543719829635246894492167606450372326974540135578840221049858704944362390656119287419572875297468185822703025481710352148223525690035128385990485576950319786606939708721810367161565315966261873975342029640651737902364030503795746224351663339411400411685827081457199879312091659093421175823614155857143044030373128061996668082078657590398509185867727816952632165588942497183326730084353791395937229057907693869239257878899353306632834193370778728726230659717055211358472687856534733757573439352506378825853836310980185553128164715545327948374056475077555949453917348578402567419612319978366219121046336053450473758802310292328929352360971150243521895348628535751027857829675163462520270148015818706280464377635773016126810689180837165380595147857219383703419701091281171929182358092963306834088613893883141861901720244018718490203127761880111113993786077875185296694294218392509791022752553957023606221727949593314269339491448223928626637801670840876472012565386842304754160396044464510692050330528022311472360870870599274753830092194504092375422750909776236693897525995477828129764687631399384168559038042922507690424809512768537306755484625339505951173280004500668161685408092041814910460446739251590851575576369788919477555572829214624271902105683689424559488033350469410009572229126089030053660952462445236274613861564145230708640562778801143162304223331526265978139622052353470374537744031571543870969464145885151183899895294805442408964583107635496372171051014517616597839045324088905052227366774651932710221709862988569935724797150265023548297837638657084432446863672563962722919193798489393027757433724880939345040038878149424569610611067850401411249552132091778109102108709573442398956249549575296864292779392886004342005659801686454411192733890636876146452584871124333915861364366984599029903786157941470869375512158285362284644344849712506994036223144299572074039315216967762940853338489163950478227914996321153175100636618289868710891340093786198797782703230344397221947420217058517539725225944768173612037333088826536082922442212162068342613873689623230685508850159234696705216235693400630962692075598771074227909678705845192521767068804698346868002340030180467950292698558757080314464498562360218645704612169150217393703359183699822701106354606066958600194766088931254822008557567816335828980752444274980658563000459367650022571649990675057726866362502671974652797035318850774155710575479594442718795947948660522240767790258096935255794070576557146197697168493470948856858968374590383719779612990846923149516806693490276785513473317440934886644500616006743562285082497893702059948611959145239019340747478074263889016925215634038544932415238931233483421379059918656541034903521343500856977540249576240393300441035479216937146719387475981924791714988855654974071453189085156938367029757040542742957013131791218362689380268364191758857718809398292919172257142607862035531921270073434279224391845103715383542777864671385597960546092620166731782399645789186001902944819215124840706871719178512937469756631234776056471951815728157759178459028821619118756607039111226565834982864237675896432400323358624365566411871751465926921968199646957490737961813365991462245266780795109284541211746250743909038290970000642717454320771237597863944733180100303607052183164834218063358202188564912079758958379335820707323492731566928923181103870221374553365397338691955240076592827320429238302810365951226664740998275715755870329163166462530774490148097790115926713995571041820981844861703732876839866207385025411168792728655496110475482111080105447544841955956201993866847349711930845960568070650750303121333071632787862373537273271861564050970657017793520695029202968956028257855950424787523558503112389385209081056739070750378161544359364724483917407515871800582688157988177337366174255183979754413583086045794872037464848860869394134180606322552214467886866509912472323564331882757183454684458857049414789698857236419277700259990335937389118883337807884623988020905524250895659132356894042069792877244394286346813557595066313086547108263698926166827340621782898282209986799310949624013949457778956191789156001872613916393126664135521723336817279531102585661518864562089006607994438454344896527822870336202137392063447504574235414745507557902786196882678589338721417666929160321752192115568001742275123730859800805218364243391950673501443838631654668967892314529359887446012314742468582752535622366425366617767995590674533229013236409550556392350905814847192377092820380346944095490700034950288971849557449575671634332912504600163575989385633509638167098600987462636460103224240790681420109768934299662582951187774917753762664672288139577133353233004452772754082395874859821253726197934289215338738906455935640531272279519862614745907886975281094617282094723136259105023377845027317603154668570726641555700615884421795576586944053832830960012758510753243011911703337086413118566134746128915040499881945409266696122735653590473183645651213192194526681314354438212682586912126471413406455826996804952448386734874920395009614983393895889616594718354882513371529265100813092457586702530798344566356764943221079735605058922765797809773275459555137625756367451635464132328200413519496512741650171645575754155558025378323155481860634286093401308477192176255015957856826041715597991341688505353562774523801245262699375009934171753619045385685969496768022758314720217338017621083734457582947391278710710604677090222990012733242332602341386807117899112784908512727874154058898221638813584616412945915034393126389741428268549625372572940735811316414140892104726818802037493674253463107093784908594302717078093343508418135682913832939809478814486896876847107220650465107565547980392580088728320472826694716466357444535557642323998274774922741215181999154699414536554988960141895503648859118574062770889833859914167340650290893241191257205339611048930327778051809226551525802386538560074229812294725689179722335812231579658714688078465641184505886124522200539570403245821016908785114594986378252598839062235190662645747671281955199017561954426967945554526739063593306560907649558791633279577632115020331479381920004525155596848474855130509555055662326856054043207800121394446740403250427177901193222455310802096741009665067509279384597727671485639689885675409486951078408454195136640829227119623098811644353226476825055554707783517575708351027982601813251835827472407784777444325381208389432329598629230744743556765690819926257346261374680177020518952935577293937136434520560285759891752569564298326627017512053788708955720821579038024280036502112691709853211691158449440747424054611672489739993741506851034081515675437201022348899930309648883820629664521876025368628458548716129986778888384384821543381690981782646547798935042487357722707960441543176154913591815288160526290340854412002880886328108995205313366237422369178161973127392321975868631196277080232404892199450284788958457207235939892340025695534523278109824960787983787389349146307132155614715841021622539487178440278876295185963688475211916744869756396345309124060940483319953755430803059429463268132020319269540432454366161034261895403864479595003868308270913051613668706646187203088574222081932616513642809850860658594925990105472473669432247685150195767902558020489350845050266040922595307089736132426508184689466442518925776665737950351946803394111053699666377456552320687072744130101571078363631896131609361112224948620120567833374711090300529217833193431872506359136328773776035895247861215092743252942465145166635213179662753542935178855560631743652621274985421390696808284379316440319519858735027426245518088458883920242208725464281814234656520204811945037670402828719438291377498399751689855996242730297064172416876624238263398265220881571270328041784367518575702519227106244890247522787563816508743628202253923938851374017884189002652828544849415675856850560184634992739340500417230921037648594239707340785507722061407305730543553469363406034783152860989483479350973295717100226687203629337098549047646038248269860189302140926764544485985446043242288396584622909094243123081509792946269947624635600936533012705463126229382133006804935142921900209833997780850982985768596820087807366762278332326385159611720288490065109584718033298835956790176720167428148577409643478734846912247333679292459282713264667703900944766970200235929852094925408897750255399335130781087509451786621714901454071426346573653191293108129608842013150136065226129666012163847614561295900816407772505850795181515472373253621951040997921772738915889236163852722927560899006268803842630863301296787410562824660887164878710996844152488119696252847586513754021753755541543887561047903300924452027839596340487973971240094318209246512702562207249244329670948121503122112767986804709131825765327734737111134586491764843677994450488063222060295446861109548973091896961377211560412046941237773592084541909133805938260010554019418879949375334502193665650336490126042079106280624156769838624171662742350092488744094941297896555333943492219105063432477458652352672975108392741511641121344880938546110670821168256462001125142881450595680000344101044036878248844938593486792795997675209786335171637863077546799466002899854786351377351892211909197075506576477751813520241537380538274746398031330586713023975059062255705629928039096192893728092891763648834848580795023020558160939761817840427617319802938111912742964226923568325466659528151809677615908747401013359822744170570093243451469336159505995948541673334272209958856775439074812909462473457942018392967331858288332465535907719850451828889408230270246225857985286232941544811644587534707103573547664859680572217023670181957178318627505517225159560861362639483765572175225957601002563111547425407709478989340231468139665141046979005708963397733310275668167270355064043574963008596416846048697799965147613232673188801251567653807416374254414808211822230557072424690682858175218366707695313834958214105579135821076801081034830484546650805642213155626125484353135311021813682968127503649102469391249783907428736912591950990343570310426538022827306102024503830589048237193884739998849727798420555266628256856137859376703131975374455326771076806253491818816448913647136865810931800749414541539149300916980144640420900559361692567994234858145166131492690090647627735382009717219866193866053539419887960006691096027241345778779038199722192546459205596350644685976827694774109796609142628154031078016062628825604314857737933738632814624102318162175816122307291451019164781733815766075627698826974021645833592371630063036375845264514397268093928566464663056729673492674688953185567872657684887395642309651473191819743099643659553578450449495836928175903035312588267369802719619707839274985934489637641738937322862775479271312046488507715855026793304488937225785703762859571327326829749331437655471530676227302893320864019937568726524946148923409399773432437606685370151360121886547682606767203200915292823056723852173128699463628110050657611652576580926655339291631882045344351299806748002491118789758016600945197508892293052344490426733592521437108871357937444917790171276066609675234192478687579679578192158685132785312423061625117851110314403989814794652569017177710696161305606908860367459644193031595512447185728879035471182792670619298769987750496826808553482992018038624662212134347102194723273470266218850125107477328662292796910487695557247190263680544755790672547858307141543029003236253307589730440259379729260812154255754237992660326316647571496017517142011567748094281675271302029424584676150240051103117303065946394787632733415159553726142576593763713716949480273165227395766673446327620835333633059894404896118144463682684457359080605554652056745809720939826834519213336155865468010973294072683371285840421852443904275210013703085747123293567285863909051438791702805178429016622747537383812946043455010427779311194472598474439808992366474308208665081688416120474581557600065105369434472766097427293065072258048118876162629328247613894874646732577284627064710468720296503342706523710531207612508788677631563561641233503365767225175603379358482398956844889385787447951906874863218620787024759034787008408960929891385329203120505895884346647902312367588562409146862823624689490863630437794727021524779176730136157048375660750187086462611911971584576882563789473451923619179262185656948995372523949548306699603147615723083603983594111299825982103777357904387596268493666964650188768660726734423736969598042518762094609798386826960787217373126696718651999913281297654556673232523497089379769380316980663142984056095231634874423979230289965531333765270196865330672277434212779845161350331434516187588916402133621449671649934641458741451960282626092228681990357362845329738542452118419349235743761743833004455477705244742511557292236435807911411066432260893999514599131048650217572452443815632131473201430155808150731712861594055321005527919153502246446238204512506065647104483823885347991705258250733502252388727001572490966836187456269114034941209668369125058760986311884201086707454150792606689715631029689976129784151819933647279908603032270017385144172326172953017087424958834988123919443234146064649710716981172663173332694054541760507512086515018034075477595531700212505712906572838856489609566783426340633095108849858763650271980995135729620749167789011786267388520077741601267061259458965809866210905313450219031595277036317656175613409995663745843374051010177519777899380982822387845576781748789662025159244548176327238499196749811170731837656725192744007104111399419405275702148993996463350627295463862303813043373699932637528180231768891729472324547631482357287869602198922324188723850448861621491238103253572106626321680009876439359479297971830947088196059854089898719475527430151568423796614861895149956008134634057844432708157214404824908532657392005673990985229966409707476518832796288414639801028160610612022435489144483535110073117029612956912475948126632034790616668209594988052390665914282701846151518173346306246029576279005134150148864623625859714279042252712686136859705401243335906802515168123929255555907809238967339952758215616840606198046371961221542498733822056026547515588368308629716737116397639111647531824814438517804456873991328794069353917212777657813357291536177926146375144199197646763289473533421590826042119866640630767852694588569763879743711749902369585448289434692041120886789466829088723431338608253907406092657016003427440875827704314686362173839731345500913100460763508832040378168575208045922549489060571277516881563914740765345455724387419796196071783288169686988391379067570476731508191089537480233583764527205727681024264998804830628649968902930457858507101364271583436785763641049591815560811197619913567918661691999651169059973146112151779311747640649215305356217019459933687358375833046889264788400298461851339957931120078237463411146350475696837891906730518773360316033641064294344396060914721152364802177972162578092962587858768833664066199554897911316914695528950691740276788123394144679219803247981377268894659204149852507047299099817037296184221716265764102243621619060391371038517584819984170662219566657099872980218789765666511895582120383761692047252499954709486353725306057186987941307894175270687368935405351971323799133645155789014459325156646276772297808840670842096499449945019041220282765539113527689233937658091287254693607099668783030617686185459079483591496562708091338175200739217921555400618249104327520874860303416961511005194836885016264703447374837696591176552626791002598935763910005134163825310314463666794333711272954005169339691554895604330322666108181914407323874397763853011112418979054506925076027776184468187295922800295444653797714060443018575820020684449905877245122504135310442335923260928645208446428106280683428468568003604577615881923429856421673705833883471700083695596593522753329659874946411760563117659306917819162004483508452669740917239774237013724891943076990699929869145626663657966615779181049598846268003729374878934459844083927989200029976449479964909975597265867561450679317252883717945198162894733311579499174540048090506204210625282139683244902199338319551915520530275707006207781768544492503303762458428682699234133510325086176484079519850057701861496613953236492306017796675560698037268903034312080557848394751065486351618329189059815497693439736079414726450960546939178105948928354258652482945884194638322855435402700103483296565667034561857293048567606140277620142675693680296164727650909988419490202765996443555833167588938332046372041797598700274561818215965843187187382301073582503982522258030208014507288747283857200209815488382367158392795359894158375915241421832550488686839241478203210146202482212233275094410903901215610806092032925433966469154668869730648420187190376166912031461673691350405385509658423476081928942684465005800422523004599914349121818069833866461222655560872915071877140754315249543745095236382557886085692563660858274276894616763711099189583061011900652145232260927082580543832763947198852607426724734200054852501778393792839751693661624849582660760206285529378788605370830857972288586904099508067710414421439419807592621496496296950383907609147843378802290356324348948976814368660713251490515710539066218428805227063887220418865898410133397626146165571063722333289366787291989526444955514287676220518174182499470341758103445855966341924299798808487216777522238066737044267273189252378755701213182265373903550977558260686835727053366385423309666404760667654773693686265199785380807258465587756673901955429220032520922549542618626657861433848888432508833783094262402147447724489168824938019718311584790879345343015467284451325934510972870270687823469950417068340599077617936027847009012432766906844332113445324534931364608249703423314665568657162510758675460152042241954309753498989730710241086839606185681454312325079941055003654476369633114989000656158590428332402200402955416955020176852811019150612318487981142436919763498967081539435571264336491413482061366477297307379288098842105647167843858776095262303673843681865672540120929367793999357085886840768961492786980053325875215895897913011618564582895063948629956096182842360455406195676273099950795279690580361958774903435686693292267236907147417550991931220099508107322421677527058604172091285987456494030451290669640238775730977830596557490700906172440084890725822155843894475035543307517343236910813815219600700835886196097335441790704669980852687890191013494631652915494769685285611275135696090882082791791070237729874347455124888593196890062769869872324735722412820757526637898385020758186753856478964617918899943356330968674177355036130409930169948748117414522578599320614457446958991473495402612598791595491632006414410591901113171259012285401458696300295012808118505283137836735660282627326305537613404789688438502534319161453727558905276106410342929390061640254782094738516025428465614735683763321516493998065931111726694153988498824069866396138670262502418548058135812715673859274040440049177325749862146006836187593223930119880234521923253249028088949424936743269820763120958537877751972276784291867265973907297082210617682909182373487051191449368448286208257249235692414306566527785695268606540013314147235105999559949578133378291164384342066372605298994627328114312919488221477612787230561177200913859727138976327872189435812328784645845153354700535970563876910321267829080177703254823261755624299429986862474528766359493483532414848382010902507361070560833234228943318841570764147233543632251518155008716180019449979000881789954221459437136021250009814742652268684745906960450060908390341557256159127681505535833894160509537695309830272067537285908845497106867072379784770981976219615287231374801716699785818457538488748982024011414964033016182785189727279551498540758287826657318695569891491210241469785304440502390006591428862130834208197068129459568986795637735908880071625983412786126296041322984985248687093674064407049943730636841772175188137239139191083191784185023211493799689294781923232788103420652864777018463195346940449678519897756011076203877213660259500288343089372719255012146978897289841969109833652028639224936912241103118636519762430469554875053707018950966087852393992720842781786377967486239547028675227592574323978884877712986476981524509697476217571110735064419683679638157274251645663652082175256901646479863056190091832541552990770783362708359025998520289578682946131870953307775918276463131500456105181904142507127139121994687049691572852723858899851673018802342947349403056376473673964815262715525521371650489290950862394585083623899281650256627022603925960342362544185661270067305620792026146879030147133602744805515851104083985680783297457064484651923427772043645073090504977033774241818761499981500412444559835687095126748538863835698252418209391804475092385402885888751835605569732700226846426892528830668390572209610992012007344947025192832182261604333691333724170044604446967021282575151937956703140734941395988069282166630052450280939329573616094480422932640504396614033381631399006153659336842420285987645825850585219003809688636838093673968486329827586355727764234658723676356203715245931777162954670331366387839049954048263412745467726989485778291806830293841145084496155124469618946877409552263261577577440755930541478443589957850433403690624720751216473740576935991703372967617262584930012843184279101297222547764366229445896786183788867073565845069911549556192656919336006593854872512363740001466534713888888516008117581318758550490385159632644758851733982788345797177307486516263074919170049497107910829569301415977770149913557492204470103952633422888328412620071337335090736910771369011036830861761383700688321926174501722919635390593645542105255692833473878732706016051767628040393025577493841844851928998837847256942328237753540071726575569350162674534156096763699637923625790959879011337398407294351227560829547734390368876838569111459388327266831566280259010540543412115528252598477576812710000158289719789984952656942751842338521826141594457040849110070291289325635255191400604418993344355112398189677116085728054624434001140721220139986713318374181847986842974555156010490246975937453303222759641443209485585060064864319156519393789664988175944267598594169661494481674252739954908717635885187104607570258564781753949241319027571901105208399514540589774688788936603829566657550466445374088478412251366679297093784367943102348388486209551468180783819094672123170435824914623757737727667394273726162008844150286109207016530439068722261082189291563674926172613179002756726660566990911298482844346762288560873100862886036404674384952008719737165177900512443421742943577636775112568047340270742577206859728877256165717517226496265034738353354793276272672356271868353801236174390621628135582217085999859245306483855453690411502984997155931090242997825721315073375652130924457002126505145581358164209617948432910916510797952345750051737535285076262366061100871131947798932948776399845350606216136920502211926475042517955726268362837420803550998571124131040252019156887430206288922701356782974875231258681970438991142279931852903706638921592982849452304087628937442957551759538675356023605013372011796314154192756339429489675965750571890526203727990804658967856143574932467325634550961950564513339469941347000719271739101408419756272858279424724043879275245451810689093522660927695451255690597550226916664230004358215933379893544526037441048592460680267336089418189430250385991963224863190213400500943380293465124842293557035604159011607392341411909625844560776459555400743248440950746385857791519892450783180613854833813013656800202958543563392683776473380215238848865644425171956024369535375661083718357598066974116503692836588648154804944267058976191537889391354966224807833234878982729987427731933006580514506931019057525642736227962060096528057494196718564161776472186317848331227807338214248576921077849852404401345057459748262792744668564190972848282337798899980874363834556210990520040274203346423606880522701652697849960416447126983334705082199097879238124235934229685833633273382375831044152041113380426684057071107482990543313055369249910278879996341728580176201298527846938628679366002986015838142112763866105720225323376632372081126053203085334977302917259521372277425351960605759990804997901632773122379239805359097378713751265550643230409562426383439400074580712131067038032396592410020061784787971199511825105277453172908476934177751243867317271321183681750040055769839460292965753310050068288754473640817408159789492967106853501457853666155856184733065846586573955190714304227449174157500531428325024939061669633206581305417561122291436746452559061785488341530004399442295815655138220384469643758985843325800998346940067090308876142073419871944673265805340813488928564153507033317369979987874932214275786148994040194542753990620985635357961101088282862981240016436136644902594561780978342933752111324344383325489630588208261103399536186828248156114202307750927942015597509644588011930704395772478435000965434796086801188962037136215246722557526952894784596249698045294457977944147673134854634774968859205114934998773973857005089094267441058964481598355333525587782339072070646417919157276536287681383380879762254337041898842147476436796246383704631764857559439171779177237840629940498909208232551089344092069740690442767993335024550731475924928290324721190423436312437864865506056876104854669347685095559644102858338484012322627309120540949234725086788713879100994289712109507425736187152953191215197783400929048359026540225954237969023196387944670004970739639211637142223094655026106969785663747200070445079031053424126958247642680804180531882622371487758924544932598170800480986037331955218459491191330794556341290834489351070064804266973370804727919613483871510046715797425303880942835654978654997155981845572977708829352165539447334930140154929909033475050082269970455146367803636690753229423068890728018683732933661933191291805996622470789293304295704069747038272904848255097111918157369824670986991478832600885466590929136698740581302330947061781237347648826495733489641761115653168899050104036356237125605487114950143628551175623629139942289780804998969080180615204580004865875618055418136738241912027211127051647740169458973282447828983708383620980143774030328849212153978387502114233341868065455743937436753169924255862445170925609324258084756277348521802172724102769518377259255161864497586629257651303624963409894021406827318875222737642900147749653874481233247204622272152412452452379733501381277649096822046806286967551811819368555430966237282784160057283263814829248741101400024634747209428491826846816596706747599953436176535280007144627890775814534290458562249256804603744538572439853937403192351627904343279757456906813507160736353909804381543272066510354413068635399217152614835793522279189231318267990385123350689711834475099915024926208605307045030217130400600390850333507674525385448067703080380657704712016383708295710766086109905403042870078817526754963354024347777639560791339632225242258849679199969001983885374417943155559125717199643796257180740558116375208224405516819365208609828338206620130814717028446679685743865124295217561721720460553325206904396578571148076174701957496074065161967313992703226949680824898088278074051079831921154005619807015483973881227228601138816649709925943649191505974556093629910655949175088533421308088253968092908676177613929981751477387663328121524451781382830503399669692660548883781937737095344163619062692511696904057349134529676091299545504157786728377223623013739022098448932489072811675807138327883003112146405278056032536612658879237656827804954083266945184662224674825580059164023619309853149776807714263278991642212752935734971182382319434180584214452741618508930328306354057050626986232772474838998232685921359145072139932524298915205838735474928623180018861112276382553517945265287376449235442226825722240494410550118566075527712923798941988815453309526343970202542226373141365768180743613474169987282349099946719765338390193282804746266489923466976344590001949049111921663953585254770897040776712349984392121015918187299220810527316864407813002187358522950615915456672463999452168293076181405206954388372308087152833368025009599793821206599402719771606256906372446715038863490491003239175376657962153161250098893590988211503734673959692834868427492672623035565953499776050049284488394369909884176406498787633229342913125578728541069593282814620868936359484288103486086560733824873294400324854984486264665947389331831428359014228223087974392257361050917663771916974278817790512275977786809038840043374119777146084460229548351009677344316655666924466884084171677564544105071177196436656238509167579118412603387798535286262183732182931808757290098140071608973421866211761443943045233848356223535169501727665641705875183886261731113648102188795456247085578352230393680582242845418383317291279739955708537917680650837223340068423901436787172723696037771113725188288180114741954876017460662924469562571738993736910126061202775775458289400650912999651890737368864984237393240736214091631599714032588870444331667518699727374611083494092845578222696991569318641624658210529189993587301677210908052850771572141521422359919184299802594955048209967968782240656186308332283559970164162553575116211043606749367057862638501663292166745183706829574579357369138698999905645358329935854993758890954057478092961194175015871618282127980841590181009269350273672400198789007016328071877283086841426651735712843226474127433972590489008175737142767879153848159391499605469435575957248618369007023375634463047725485367228981379455526241811371871513736636412826304116352672448031103946911229731538026261521207930611752391451380564622587552354472572935620677354253608222561459678381450931930286266651307587069856239173737339198056277091643517099339468945761496714437408537981349526873114064200278939809821316360920648506794538774283176724004387483640391240892839728166534860668317293358240649736308345539362598026288692137746819143073705516211407217073548631827137937403701283848161052635281740487141606372626501364270995121823384738144763224408981877823544481924209866201191464770803385943757450438226488204389687458783259684141304053267412965458788110046948392396852583789104534502973318859925666779126041800733094865171621847722975426961696218105073868868503323136863245111159990815276152224800363773757019109526878129036388899789021271873135816399022775053004027683131918226169179659710163855226539996890108099192429265473174668851060558932102430994723737055465773742789287151279087859661038651503306417764743249799859278065596694470381675825463211206456283389697598437565215397643382920220009592156324543528210637590010930827836274725020907963978540218771078327456074387819818271486862280290811476766596248575979120280875462756692871853323864626431628173131368742375599777307936520326329485438287973708247972357564660017719572917074948825616901836754903958625056731233996242554149376653456725947337451860480747028333381233024087380653985817663917381063835584593765427978738581293407704879636348083108720446806256309606239934186583787257610949213096202788827655610023977583197952206666313379826631956562054708063294696046411046835340766726312465524320138388352775298651843968207027647167833918002514874422775264756722949471787092760646999633906492127350789885012615339435094128815052226084164749395164129193940403680592569730619306511822390202811053853654013512672875906704498815753621201929970664745546628156415222032105243318885555505918388264449178795866322322069465054700939979838276608860434134106383643738142249780481794298404975706107613776438867725294563269634999348491456266918498872583397421439076723742037214854366253321486935082262330271243243588776889986014927425429388692926862625909205077683472954819902818492100165034160502545353931913605573529931384617133527347067066574037078766288031162136538181278800065577577648511776452005886007314944628227244490323857230171458747266081164594931398167021851915218922719567715104916011046073128038001676251560619909963303808489215818608715242567211752741829125855465065182271578395774280765015412646619223436952680595314180026035188554549303791073542332528640880255582788157169523040254692891376316030380193629841162649472408778340100701413206272644849732460463886195884180842740109699294866146572537353775051868098590716071779065457121725823818101817800226598340148718144222850654962113268529734924933906356150471908782303406247797053095387420505292860450500921252244774377641791041011517651140605104760530429349404896712464351317589175025347383539935900851821854519447438331107043921133512533888725038183390894010452738381644106823364722692632594709936649563774737436887822599115524212010528879659586578003768826594814254983116453925140993262363931307076068120330984269963596105641818735723633690429004033488831540526605006202652900109617925857570408537454977974183512998909725920823622932616576901967133943199598408340706297995435563506912446779500629126335941723502971137106723064363535628530085908488613536192577553354061823303693942033083309525224567788679976539809077284051130969431169583084468958672569508336581010987159735462703468929483015957092373869801282760165030737691327044243390322142328020599082639128771158912467300652005959341390182516850750409927096425227944642224144062655237479662566788663541437110323422304965148835275235651048304736361212491680914211548784396440135904850545311998466376040779742836012854821152946043478832052293062929645922828763196232088088431059502154809627566393765583023731316897141145867917097988782854099202535843545355321967694777796605831417139961068986803535256185719710417860214470290373611358370848082850978173908017610561746064456541516109840778188467364589758971696395367940451422672503738309590825397083395744711148217095019290304130977177350641880015696402245606105047344989248360978828172176907788892246678596684693897369102067478312810393306680516974481053763820067241851739203814587544520534526815962616349381278181329808367420550144703670550989580503186809989988102191190984446013671647997951497904032096068334861166612818069853775803745664841440517840844407605400436319490373442746559255230659779565234446411299348214867877653145089357724272861275490101104456764443971700672896990031083554267058717660541664705511117100970019044337685834262951567567563129601805379659853917314272868450868335393399166720460055666387508263911739474934966380570461701649789349196936823722462836199813703721266746733244802470882336817523358958451121823768005665097175878366463898408096182512585348628114633198238639883162158802995846044529056479273901234485862582990509401876348665547001682973375619925715926500118057522132165850576410010420491470584908351651140718563772463588613142492179170406866046332543111619489055430532258756914414648287335490333938284975431523407306306920010482842691100903227236398543479443528641336706236400727633786299387034497562481366879204426496820216574949535516555871678864518023600178563491441312602965627819415624565844396757901780154801887759885491275679712805377224552014342189182533757550650347792358134260233060477796057581485162985044066414125208708123799213987870512370070003927026297000984108942343100927281289324751558051697249322796453051937916377029945981716157603609900850601616831779598569044373870905250618978362447191633626048665142101235015336350135414995242421807948652767317095618840360685811961773560862891346143689462622885729216866896653951699349147878034446229553033885878604212759894391528895697739456072686554076177917831118525495325584138893572086699003768289831513511859543829002046447875107374537528094538140103362761312112143646104113143207449251261173686597107915164563188975245105765771993733127626634752627613088173812786681187723637706058682130070192082177655734365655581778693280356421358349566144928422425234235286600838539346931130043063622583325961225977119393662086186026556139932789190812422685404790099846986611873612565267818057801299851796855192694990651214565192110750816571708467455925095123457219904418491252445879486345659934065583077575659685059321095298948262677391804723466543499348849061915594478243157825769404733954240348026286307779485395840353216023102602345461232588128535463601886406571317416181033566246583088407841197510603261795911028088049199447865619211906767166185305685363154321973696161651144754972657994663393898630362444810185935320670015102757590029174851950340941287975408664599804499472319853471086319039525642225655826950874038991719107716687739956460061180939445822480776275711492015083922113399194141862974520195149082351808035026401476569312401425295959352083932092279570614473254217522503476985033083504841577568689125736494619233096318753880814551540682875344658257133062639046620556143155763821524547059603942448338580348909624792570311691535917892437497596132923252593457480816467090624136110471645957962577703681241560163398827870851497066697520473245171392505122269673756533500706574646578684980465305523823309189485393375642654979965203082237822656355122885026212125875721460619642474490813609039280840973062233231211813582160414865614345008887539231143559668985692737720967505396077527859578284163073966709924061610596280145166801648230812439977139772650292208175430537356106545238976125551349631893772436245734187991810584262340882818290959486937523061616452786616086856444997962834634581683163158266018829596765587757629674893436401277397769036291970196989583551961129644219165001557842129203371154820145827089040768636320085634377960874673715579012298498028318318478075477641466752303804104967647143023482497846441780851529141336964865396404519838647577031761582226051167695234203841091371878655088277199380786271896540363608537369519274337562679221732288096055065323927646681866072333657102483740988809766046674000647082767980351734415425230073348977956643099800512501641831365359956910268069364801527991146203774778899969696503109818968922548299523274718505314042127862273483663301330787813526357851635720942928563033634251873904953210265060320507982417223323084473351043543896831087644486593782200162476967715052856936326534384626917465351743862067285599303608915801032580985507962944076496055715952856109367796685607139251134922606280897183234037343096332942811007231457844930067411200549482916082394602072665381801999434481555555587267138147860828324790359942562457473172643479447309966982639807628150796485136368367520028364371518683686729621075317404755254993451547911253237437980558846129167116337527230866352309757457850598246344785990550460858862062851847239795866375559420920602866681590955172531481788611682923699888736467430013169019525871749974296401243530332152632530192291474226652323296080494192409833186530848518467291243886420116699416925461146259908863457775505841958790454332629187886935224864508528321803384656286609073995417014797075107681135854031937936983712120588123975841296805192706582785626529600382234356024234553251237710022761982971006070721148360611501456686887288178145527328188676780669353689301987217282165730879632805536027218035726275348720782872987304052513049140335665076463601299688857781040874509884054549862372488310030897460643027679222956661342432077051713868026280349528635889569572762086993480536889933559453688585905258487197361345332021707180148552024738809087670153066812752127518805061193459093017236266881211829108641882617050582191694770309358498709992851915743929503882666558235896736318869360850296620543899344404991522223565480452826435303269070677657266671026490972922429964450178143254114271798085283066933883689526009412918338067520644151553957781528743116944065275871986969772311018942549134153357230536571467376811946951305296360478552682385048992218881075419660644576433657192139001191793724280172101963863109118187089412324547464063281029225497774065242690983381956711879918951866775049537173561593118227088062784897883747339051260538448084304952908818803349748001806912955658063747635644065091094595400036761094224742903808119459351253099674161317680513769458752959734054942642805630892922865325552209903690066515332051208246196647055611889917497712584141836621762364294012240806935622590491766372133417780841359436723339831743920576454935246763707831608252637041425986231425142922732634889701760550016290276722249304403600817539412889763282392138368864834901775432851096077181702680800868063203566553722165007158674575294985392888547148761606492397171479993028316945158371054914436568559854997491137345983006113762027937481512433787583113146023047601471333127934338880344563396708667212521859717144691175337819812285054340580936393491650464377213037677368788761040292313845412532716558892788056902863648256020994816431012290386419697969773420241875085350262368298395031980610886471973470845789581768275501900574440729573829567870754759980774436040567823858659588744953766697159780105261480871440577808730538594422385169262755259066443268447588329857940711115969233019096315015422879004801422854292037412897913278575032867273030452091414144855344051910278148296068258495490480939861529146294124439438679150073608665897213176309322216428105860078592497862694728296817988049190467155500307562767431192871849325204454921861536482445935589493979555255080090184938961201609689135204432089978282761238562197048496554583283254088029701190321740178204076391927892159038463970300964120049729080342118257266486978718233003913276260531786989656348478606024304148790573780985743375334823271242902550700689672558175786263216455216949848299795803513427659766008445285154211856525284519596021257247765927361776748216882648229282046284420719855588511168394892201492363513723413510850014927823619271437417789300821366526037374126731030767960218412562847880167202299829836657221507523008589747214727603710249174230228184661675148512328958982719472607327658613245448181044203754590760826688450893461729982021428302295408202039766801182942233439433334142271588287734977433483680558942323795767823186094139775258055548086339622923211603038598690836273593951448192675224746601141933563672154115894120616698231785110861466659133913608520558426286786670312666866183282942346357551841197413891161351450286461178377701652298598393709434229868131576507043015248953317520134549023377499383612246927627178707443946200818933761097726944087982257305478088297255302564608712427594048115111284179572535161862801751280960250845707908639257010088522336842934382328078133080920853496682966249758544687120435897021289097314444731974942677897835885970082602440064059870709050211682061089034478417024158912425603570602911918518147106129452602116751948285763275022207976378776434672535724999002812649554150174802937712465174440828652028514639122039032027269827776981453980242969460153588637776234270486504989815284889722271412854174977757494599535047445018489388379249575303880061677785415959899786345494100698484863145721972079367534702558100887665381653582763020280354438142327534466738597296600501345780546470060136544807044297409109096630039664833604525915180310583707495024110490299052704230237432754410700032115855624592445010805942034122958966970128528894519605576187004412921961938718146904630841155409379512236088943403709523343262655334272754400063374704771991644052704636211798634178006435312280606351180625036040597222567721114620163065837153254088436424606135423366802351538789274187242024040157065689135586462047521961985453788004570440678942867317034985157033967249694138009050955070893002384294639672801007845081068190899049362237963056142235319152478863478697222265608380681386176127031801938743496745536569579879020894284594475603892684420135702567202397644324554646976453154464903887381130255805254380660255808455081687130536866728714307399981824310782963322606803558138956358580434111009626856819486384837301664201504897558708884884583588612015305606584010570563730156245221064393811011908517997891649958569611109580017300963088380775436581549267039708205423697754604319555813465816363616298499527282212803620375143859661453897794491683137200834023902320609082671685542892827491602310431625499163639656171586857393748137797350513414038835395089821805249241335931116680691826197869942405037825686878990503556617407703383249948027229283077034439973021692962197428963260167351651050081022009426128450649324732541856901470080040462971828998102525930667475795835974513974591212791273984242633803442454965259327679232706106422240521981049529573375392609888884781807415596176408393211521092680547846923030323455654286752149186326761210343668607037743818241898208706939542218355578430843448678495812516782825672896618025580890429300332162037791870177154965404339711492946605459749470976475851872528967820446396710510965637070539373647506296943162972210509604251316511886550238675994446398972032798494533880295611464642686975038459111359008501644598589790017502421292336601666624623875902538536466860172578599108783707616545363811100622400160246704428479244086986871767872140443551528613112033537633255659878198507028787893569183217745926672211550997164635468803120055214035990515297662337350571609707616673119820046909157219431064879628327209124936167214216184895304930266151269089452340102350863079298794474353156536422092717161386998290891047248355786422871069094291597968465110758404597075964800341876228890707903573316447321051648405309929443655412986293496172448644609829585022828553075182520197017440194066052796457675964737978713445313371697511536182925792888205493987777105247429926628292945684589816765816653445141802181987729892628564399228205974955031397180034341327486638411445087347943950545104871546572347970682799086713135574919263803373101608204265467869173793118444674897073464646276066507776544020522816996886434967510635535628722538127775488461935021594627885307328977012202646968392424077607745828849521091905627745440449452596626198497442670582514369914057196609722913921866822507084037891320195919716578139102760738681989347734099459444744274445036865826574036975569983587091768586320835470429191926191126010395417870767952684885974682871233716768292969940657697414973470154402277071236986445988245741798671148535911089697691581927726440864263681634674751845216670619303500553063327735796470158703151385452052248526974485293587780572164582479613322261722734416393609115697075696598587726494220043109026827466699691252376559191889829167500763526054242393071240176607159483464827770912993909671179453945643000174065014521497159874716056953964770261571242463012034007488140371626494828696312066017331042651633258298201017030452762004054084784691851871716082481576433114411514335202502232520191906378609039945659869050324680263944787860328966849520446440885434892437080131164699288518109781052690741934459270190186789742647919767197616630057347405794339974676496367848865584501030661248438729559280761999209388650898799181182310869025657815701074933298198403036533952639188459286362283953590105062628258018576720479725566321406822301257888074872919394468898030298404013193566342327048129243789267435537512142457192719938853293064637014026363333595651072797712997076556842703209440232453858307998021030100150977470185258053640478275149905312184043181287018004317885292987765185380048012261100872981751673831662947776936306363567794776058903414279719272529062965825031107638426849774542614283862025624319741117346997138213021508990071989913206128182436986352219747374300796345192949077493212623630788049447325545618432980704904726918122615051206411592573616005478060473905981694741551726940810537367231918580080085478844145674199043097934459583325988119457126818955297442384326440932706400289110883271700767822691764170950824547162353733212001776566352991515984417995483194296275802565137550658014671096262974119741631654174773177181808531950087818220881912571545166558901830580501202817011775749968470140237011169039110996063422193782557250004503845036337732019258071548923612558365075858079096361899506564833454383111012870516049473228742357595825029469709907203594516854983781124395124853680881525922415864314152898572610456137540292260816064361278331390642913545173642442959331967359804193241053150398817857488923868703611062008863690411701152738817358925660990412912043471480115417951799468086624848949248326834092490842753362188893507715699011418891764086941659281106643915953334312354147231488882228310285597843374573201735727694710019936386929809550428680721855991143132612815614079912197300771855211399524121182232254321571378400726056047247055962294934945911893417620843083066096865998050960279330784366836149974712430963819148827279112292583661665880162168886924700613614616085099778283437153066734492405213534760425986983715115758721828730959505817050013131684098920908185561252549878065235721621040051199394829050234602437515983038715277408335071430990185036442378593258851286387299622749988126385137146477616270698485801600349689393577969333984607257001733318452940380039378550337839211853398378311833768892412836321440595562272958612643264460045395505745489644442456135935710876598979760373806995931153244636620861883873923559831562553957907707479403793185298403409511445359467225290774529280465987165127853143964788160418228917592160696100624505867515058773575367627109297060963756959893697535836079097196847194107758962915824682707759707020464775252962389845205370804295833078859324205701178257688362978018663459853589561290038073245889213449190095361590799392504030649079211797473114123563832542471055785999030091306883946679750990644682103570748819913583183193167350335567276136298236400199147913951025404673790158299249377156543780072362886142789219464650694409249381106082569337461359035845905068355877803889481888777869830447199413225125093681782700354393644669886958074722997904829456872655062147013304696109108550048028873055644777330306118147560907440644002305387300802410263305479065026572572850781670146769403418664226460725819061435372172405527228991671345887000180776807875775800969345809658984069589518304010159050063714568073824746326250610230059509032714048242482561845353009588836405910784272052951849892232311226090792741935118581439838228963124787929340365749055698063657646067789769000175148519625358188055415215365929994257833952516690276499985839066536976467713239147467793284352251818923375408971485759106661665991023630509544052119523620197000535778806865178208129213446399435288407195283622173253143401572614152809916600131366424978482674444826985357369326221763325712584150987309127954747799229036074078775864541703414521828052047996144854611631376805269349852723575660530195518857001495814012775003277734839842776729953034443831510502157949228378871092245379696123287196025052848070731362509017600462034817092462623725880859888700436475273602489572341207767289335621146795998901809294566765002033998975144903029850288494323898320840164795356107823175790066003576942918333928310209703204316711588517377848850996009732415508633266343368771054923952150314000418141722690471701938282800854275695170117814725699750410428791918306641855197576298386907749643268112876068751697391794730004822776423526141922486075866942475980116554813962328305830730583407004228315125534993650045795170492710147952879556706236761014364510854574080450683297699761726653467041262071756201981186118844190773719377940787428060487488438058475372139869620606917267398879102900039207723783040341829137789803833730684816965234526636231639081603538589850687297881097131962048944623504662659753382954817421078423026247434173343955885201084116056574341788359591879824931983167521448283501193351700642065723153132110923245605587651250144279564105998246635781807749782686096122717362079761095061889743709596826719437050605925651209556132197510098297521554631065284525756112085666411795908452490804318531632323139285555033033106054950775637971142916816330013129815365368547134927715880517799621233021835612432324968596640917530985568090547928886564179406509137786356647456612769782717938854096414418350443234306634505701024963437116148921786469969984601028302065977352606052665369495646771998084239807218991924701755752709530458984326434848157488603090847726825477294817564268620706222426603000883863438556855745607284542497407267695198924022778912156105142491669954612477731291853110330086463555181459223664179740455113449883462167217977338522011532440782401713514250652636503879903372941667852623864042627823554984156278784045848416696941010510715087723910678167281442527156296013156802505769528197952491094774432230849280020777249881059204550902402737933376856312562571687313465121850694134489185336894547929267961660502949937946132994444444936115988055499972792395454299867025564619721391233198916822545565192752435568180836551481837313412633363406405066589224159868561687470320985118971511820465249102551724113826337906005515597350965521814245258611557988262764545435646527610903743713377804904982252733532574810184553233355616267016518373643692575061145120369639730033189308672068111963421924222548106343048572141701904937276505213081965592899017304617311054960365044506004254004689909819472657227230608886014151183173544425086859611604336680833160978595350711774552656729804553684609064943821629899198473562238453840697538603790112568416346656508012029982236367457361567090627712127921230359189040947028037749015309268241526222561178019885912551829013155428694571182149550189941590588412373828933327893114898305872352065606432222648988591335175352621761928794623848581254473599640999975394402390178110721143586382517395229417999102104644385984594812254891978637482418555598385126051393896111704195330303732020628906672346626547676615093820222736478227555743317237712235298836669092324953769168720776583696793282312739255307691585306015961098648438054814241456058631453997086690358554993988604646362344121672094468823296665339239216142069794228281787481215144468430320880024805566665714379289264542809032863308191411907744658784335070053921864560720244051135951605255191312956050632041039766595598193904255971954424866705671283299193007701543084058199764862490907196566227325660639056509734771874865977999286161258295875754241117109385930251880002912936702697619630602955304814902185744111578595234832995259229655549859669037763958367906392502527210475333499424891735777465266530229810431258426740825932460362995693079624638338624199073697049896849328250984062835964566799172872356721811160607156596691604823805771032560786931787828882914357530248307742538831241039504949166256561641815220196736471740634700210158991277948685412081299812420769459358592156594024537339105918680001472437763023648242932941068182383553893379059425149510616429417885477553811682683145570569670195832836077347233120407328740229885097208677414020260742760157917011648155048828826963514409487144414885026852589248221130365266353016502075590330580206076527873640874088786371384130020224081255243892325620001514310798250105206109285265625204692680822471309238400259369454525288061124350259234940960663101768052461106177779231731089160024281476828040810780138407646204590469194971490162498539195781308591663796953619408642151059878541701355732099013082763261801720260579645175102243269701236242522683980620042722768532071865604831330642786491416548843677678750214978361660595407118542803813464699984486155413055370349061222670862255787170493410030034027315836107165030473337882620349785408941798144137487699707172871296560823548514773393368908245386645474594357896751809220802834610515186368942589553466643416853519838954087736948685431300597220267653481111978902397323141286870555675259502840398411980666094546929462609004038315769797391233255916771479608548311508189038689550061353965768660235168201971113919529235929703274718148994021670563523721820351020456020325549327019186709966411650386492911537191486905064072151050252298420050804458716980655870947975006212421135629973759531439117123718555471177581885196832830365399269784551346363315874511444797023201932044862304003819552836906170987756739863385738049781958083099479714015375854589050598653033157084867352571089357998306293224286150675190506997049103392245783764719629411109212317806668955186784349561800756888190223842016045112791985057080118990899036791482157280862041600299661931266882830546284730480547633553247023866162317671316966802042460853762586866692411474127043334157768648072535850797112263701930527175345824262334029132319941897617847966164547402705704082833493016911373246730496179910567323636402667114471216473396455390869003675071266129869069356480594256216751878296223076544800305934459851873960303442338333032228751609270851664202280914821005937610812714770847759889602807175068588183452399327047110444617320836022112182818656768532792638596499040592783654832040023460846379823407762994804948492846616553439167593118376127117814977510812918617547669289442854004647116220502447731386130182213975711352392727020236793071524130676990670896190648976868897707194053879710293112014816552005139805322719999216311812795649290102852581847457192236529821462261322131486790896967185227470196665573370053542174392991969254262752804113374871999165402116982230307431619430190937832110686923579769075576987896875604694508785466831488820717941937930843965816063619992489126010830790098458841217195960701360812149821805363377089143711847276173211711057544868904238231736642648719185090384286234268698368924333278447002918394161724814264899970132914943288610860475490750457931054363602672740799454447862585137446209534769716524789000696695959229465924441824302675958219515523512904822243292586503601214437761231702646727032677060322896710543276368543718433558860366427761305789802508402944179648806264002217962847918566398907353498423672035954252711622405148965648950206772356979971026371884879449297209491291791880571055203762022080330565478965596682407331513729472307362035370293944169984448546823619070494078515814764589249342873480857945917971417172934340328822806256777704530935582774371135219752436669596254039169824439737869645361830207896982112732042139086945965473834941276389722699141868101258981925653484253650425100538442125669375869406048668854329022598836265703922454190599411808751246651345391589540443295850930974214010410032694151510871118203599075680564425347655890812096715817015382054553770880741848119296165385006284750713851857149992367577995155022736711329234242847456192583059468729150614993527877244706167099313582668283699826282841373948355607445121609132913991156206475533676096918123309115333195978809373073795482491673765636445559504953791956217139726763320140617318296882408533478690316524092342735420962145253878590445906845337330753530728918545937680462397117766446803728361756061726218827985174852292647753303525021763613249409858923616882786716643243873258312815280119317797964452312639157421130228850303667893619343423619606977628077226741223906429155223119552527299236181549795145532205301584347459521497545827668234546469889527747801666527907585228344850563308437582884596760067434576075442186900596456583440845344006553507983118018175212316228342389066895209533537597894323834970801039436966230156183990458455735413399981703847298065944106510770399489941050330127654365016009349318445449923649378861192653765377785016158704148909461064975695773517163932509344951009973428686489527631857263464473885446938299152175636177109264612071796625117680902126519335028170099010849994478372605668189768459545815081266324971658973240755252142846351598638027111727301956704643907341374417797130200261347908305440625806197533933800668549851478507426410333444840915076643862733890923288583384222381029635076194016099028232183866658876851951137437424832629143357986938291701708347694345907488001497594531543622771265722425007342950284483379923157444206333239005851493567888539112793294282718738413206094837222445835310566997400986072522030339769775069333290924097896282881367877116840318201106760585930235582564033007441816726011455792221165943013082330326458486870169191898201299135531188868884628402635386218438828869123675505331635754659158367040786113942310753707866987288713058774205776263735716772687592244139915576069228452199471017930675016751650073962419898283429542650987738607423159747645816462762102040014925580819353650853060008627293509715876311082799054557285469897876260366783623992733503019866641380014083715657845720716523116366637175588712291664191730565777660281514477544900674744598824480430932613146462675473509384446972686323535949883844542894112321174164409849210263009226086958211372574168173690789989288651964380607378466306656051480552336267245085042523493258975121049564152826851150152645967057696428586369662112206882661500204473819515201679893159166675213746889900395894645791566681450165144463134656643370230690085382736468041445759619136903298191345499446408281107796697717459142721211306696057839613756236558048007691221919038287959472738688422339179413595274096401075040904641447151390424419916607662887699581286073882592089747968391418049649647133444793804320506785857469624922958135770576008030003146278519442070278441353783934977826948077725700987668303387072387230021321267070970210504567161802602010824520697055628423045966977717692261613181485529917994069138334714412126316243553705126384821630370359391598114065254998351238028436853680704795812111397751227707412623947777024246082557376717356060280498561313505649698382823643474359061571369639174478951063686901584301207255234375470309681625581644686203958264271520765563762559409288068727044976083215952921162754335425319170021228200768319013518833897344555302114067731613519620948882889483614773477130343123415885638341028820434378262159122377229852803360017746733904894950295738014173649850073602716199441191182218054407198318348387308208043018791543695707383392311508249525523767294003830622970923759297900329111601191145661976861359991254335245801712364152791642423642756592249798233397967681909609972805377797766253726274039980636989548649677083475992177816466901800440612973024773214681212979557979187530430580885640925115823334266056340844726020250748290435844722520228128155999940924806790165807386334417293637854360774089296763474703161567313656415608587243394002558260427575205631025330826460392558115045201968182732009690324423843022985421088398518592341529057032357454383487520707795128278334270223190402450597723468840041453520564963344757079537765925404016655724140080926144403494000101706289199571619483623303340450968532345967499683121176192558550639606800033122460352264570292353277464298321159763981711035533268048447629278624373715304694301613629194590744821861021717298453198575188292723102010680370830445373650051017658453285895789531723557099094863600125105044501953349272333831893343460064996930276380781069445875938636578791131949864110565655725502779056251902262317136045396026486960613868238513235587630383873361727046554692087948601646111277412131332818709034176940836539445989758560471183932092169972962453400263129763083752600878135790633722605136092946285944559907109021640829082158935011824809444309120188887828988000957878897920705071127185894227847470289522180459436410522780965804954748515770504396469292394686287352563403163470922609452969204965458003765997883219353962801589019901081916255998269847359998087474588126151226869846902861642267664397744497175879239441122985037673523395202853877800599124411111820764315205791899247996893212941256873364163309323688458808398831376891702343030930542285221220355614610536963955146512363363611156555721692126023299774655187137285792773665085538219702705054856201398607056093573432468236435764080831837469358634062090877835457332803732233328590431886447882616820854833892052262123772082937880609632296178060256681730608485210741445440429549524028757122310194447314614947096039104187527754951154117013962190083625430253453446316221598653378196348731864895234824646649643243158073391727674398278739427233376195668681750645441629119193956763748953283893786488292182822004501368823679431713926809900380840322577617607595936486016341685320692588709901047229976953219553823394029201983661281383424911103286902123937924779600724215916908320670323329964621509331624886742853732298354627604613452918562301605475527970258924486781029038832333067679199132683828813902117493178337949826292111589870562430970657156336218236418382388639411691564006903127018690421967202366759437835838727438734368063635303991509610508915923592112011622455901560425279432530972872653681744838145302726991557913884596687693641059285777181786922300566857458500838168486751075626651858246671145317964859675706469878414236071125698333743370646494286879199676628029033139460809587000982901440043789734540700213726760388222012138102201021432148697823811776686080481424837585756805638344815084481606702793760159216216707658244463522093594140594453286674446816324365555153872422360079132613618287905481201735960973857358531812908505484013666233150473221082637633126564294661243600288822400480359052091646293361250545967405560087386941527509911357056681315782970139358985816124447460472095102684399023880555497621961836899480169057916277010925386651631325280645984693357132511866787091675213693683997601749326802263128430875313058104948864902914234327922651405543644907767375086297350979461930484649359452114951739466557359970693135684205358964291783189626748571736689806429737302423870774764273850911166841533886731804306154011634435210671602374886293889174808387362306692348237540875409697809278977316306220361894666361957848909824922345600722490471737450077636684488140920451395224829473875365773463731332040292426345008954363051532242632059567243219492738832933145421331349186204299123813642977626980422184643363501294071346247178780203698110232885225714877297538300591631028759008904875331297852700858917792646299488141442352177160267681791888225712106195723436091727382051507327660358735350542994670002926327208426700918857885921715573863509648315240991027642827573626312709076990044973363810654779569993186184746435858632875412745126035956490135143536303138495396448564964386418149368422895737840755636869261973197877326949885522598392541292965031341146047845110476806592712280930894135042955531163510616602614271902256323465821318646190414239536409416202286317814998123469649925456982684325075290857730641869828295690274062727278683236883460353992468609561767028274096522547439380787678580491449283614580172954183592611586212283340658882804865224348884225149440567657961221554679081874572655920913869387195026780377065422157977802141803625269034522848658372717886233461207429012072507622896337657859337029600801837149487357454893183493792950866119759853661708267572924503576645369662232365064639418401575870868566451276860321848263686758246874605053502780829058128583661379501682144592858132822131046077314644965583564545350839362147604620181241513064045900479814643071395449944396868835529102671413478716124951924563966380441982144428041687815754994780144689804246787990624793379289344775826128356833695369504525117081937473920639566185537053991978767863928041563370968218996110215280477679606821038547298297188217806572230640845174618992724482076406496707104563166135317431089018950459543311455141908419535211958850845622907066253501404048315825623794992415932391602458209039122886848724593740259093103108218704124795346029662659635401360633292943965838946127799964438481392099231758741208178222332519591535911160880738061890430276005244922690241624837124594483436512522184543252174161461955585428013870852895496801404369156267376569286004014788483532424240467116500620920877262809191655689958545229214583252716237765424901466289262048777266956092274077720982072225871358672249175088647701937060688362865011813319912399773222827138130915663606292505005120306905382302640618472062351785266977629444200829200328083116072913881803869063392198415845987296978245051930304409445670594948462312972981488425471895810969597691196502156163111138191107957722539920856197410054814050512933237090824606619306251547739758440197781803717606159466155811524394216567467396241673794520864893269255807806999133550577435109410396981398973189883683306812263484578600905856809670422084581518760046681553885457337741789775943519161751814275795724494684120977334653294034686496293133219129663557469186819874735501929382915298370018357768690945458771508798881566880016439313662844073891094377907092688566771152697485014393254252503799166238446761569616817858164623191761329490116937774230841456130633100996112768908641142368599428724808096064299395568167607887393387862012167858360922215525443605513234905636078305741152089110242148075698729300141638140668736861917925972350653547199701643346611922450549345714793776464936210283671965481308560103672863567021518773922713466668974701295908370341634620828022319541952565896237317476699985604184957955037506322347564790002815986295326615371339261691724632932062648386425113693080682434476622165029900396051785346002405488362273086717493630158755172341288557031909653896657548635888811541004819460110004062186978722816302206290541550617843799285330460191850471522858130090234034180737717713510740990300681520667343075550925675023781265889306920000133747420495868665805792294796580733679856006004565953828264877782986944215369029095873949868544053284421622290765512203055486595328362206867847302631990378492157840764765127534220404490730172889155323456020087047456168400786465787516434451197175378914651751212454104284596399424523746330131642737111266942304063521935676818766220789551627098832447634006626604517544109647660627469316069991626705481160983764868645956200418540387748290481099547277821503876748854502374272112677777130644915268057968429776316821586625942139576238849004862563918765812195673796352526141797328697846412629694048049296263117495843536560131716907311046152286832117898340912658830631596686633657446696706194759223169555786322826299002094093915215512008428936485589052003037973984502001817135717010487253293684067210929452175063228605305403132316446987220560961365740287003562720251035348147417495480705013169124243658151911486273312601976234108009682341612360997375854230552522143051176103967731349025848109653958721526292996683820518082788623403918667033764502493365480004359388199419009106284237039925899480089152765436840409438060548282398357326177643368161839818020761070274103856634312823663589669287012284863126148442961499450456299206144914673589069670936570999178254722731831800790420593562617754743445416180614030561489590748100607086898608638882547426342453644048608608237233655093748217024839497264579935891718478970216214572563797951912461072711415403531342445741411417162885024646318759509432919896094543153707434543660827198056393497901278373665711092972299333567967372513689155632196020274562735195063800002148775165536916111402433684636419311608624093901931967361577591253828295930051338256078310617465002266154607117308226355225753881311598284681384076566367920712945756127482176770681164877898491755273274366912726547206191725957927566063359228826433278419382311223637904786356537784455197850231873215074513644037140946558740561769224904027711561205288499730350272368004264587679687197000775770775325852619140009912988912398899388083767951128691280465998106894251375962077347344518865072515145708978137515643931047363800855777542094222159442048812183882256594367092657486895204436735761638901324393633930114019328997290175300878283573818373330282074702929043369737448417906603700976727730620361785376796378845154102884504948014696264575325179662073967136372619120899140983556179858142466341013407256475234312662609049465439092376189605292534092993582318646884835032714930511100766154868630246091329039483149411895401019011007649369270971427440788214039886952544932226864064190824664996209526282910572254322876442294225837675107799242363228605718729675227109002335364657726916663125801009819131288570590604793331020529351673250703571916081558485003236293936203705068042207164428810557912549570605129151237389955375039740488696039537627055794559516445298102011894344001828260278782582992404092941972093594826745285760506051157707538845527407332387914318818290459057354452879689144945063003538953233952048532378232663791802471557741455939311240104335896132414259528776896993483285281698031387786698896256262480327592636656983530175173480175661948854005257587135814681424140544572739129401642964316576189088323055608425897095312151426645308197368438607846569610657126571305060047622539848773548466343245435306800756020400560535221432903153470001517267491703644601254574178121190407512034279886430953252701470354192663062358070586444764012661756918544724209773988092607021674251365515248669029602079747903249100347996884329176091465800659101372198738279291451639403992636221636965058243198381526044730594608310936878660522293880201578031394786704543871807376282934220550643345059218879078833289480534204431976991639253464000276607425203487972825151223737941744082487442216113662659595648238903913584024844417689219050673593774637933463332459373643601879465511511881676378310621518203193194170344947273332548282910343258717846673345527894936679692222735211196926734976287159873676098053856394082881671880771901552356978421244750743497552070907242512312025284050000075640647199626650765737695385320471860755968980078430365911085099399404710931218135629419575757743888476566429935582298516422368885975006237510140612368870347048459390784748698364589915774789893086237745424872320830240318598237294908936702182967586903895757496848493525744648330018200181621205240287230945919693980046380027843902477064952497636627185073742431565382095891861466984929030556482505632915725440036997034618261086939512862987500448165978531470447266167998712339095073696027985793559182551147179755960265517697338873087385561338512207844463631882685239344287282892452669597922090986874735015444067813989707039495649214079421941606215804561187280634205099554549842523161118915250072756034717643268127452575247318639904708743406070503878835980500820990491769504157423685847424169302571551301103578679626392641676662469935996261533109875904764778797315265835896953037960814546723221660760373006204639356717908531661793329703248150823027812318684266721710133838195674574889611132408860958239898466443669644306380476935105653118313715893806637614425136164477853172077507732794131820097053655380285259009242289042545456777493548346052100407262628070447758535469208827514404699994993868378061977635819167181195604159623854070390090120932469480563417436723326760121383175326242050981440811697893508442034130906071560526302553515795797834046570337845678249500407584161349108478469850031921446940773707885781857270675740320706030864163228691897063984864152240037749911852816376272221542999157804435758218244979302381789959238515145975590261089445934293649641462981750380472656029262408023367733678790598726987924258902021628489913769513144692115545125149038325212667819241371235398873211329712295704335739969517787757808676099417499088661957090077710215759252269504406752910212293584482048114751756301361010352975219942883926346273551473294691617087840508830486000329440865196850050883097790560108961065591286767358564546717259177005434551290358760955641065029261395798811468900668367169399664553153368981657877292308983759949386398928787449652249240876125893352247015656036015846127129114307532216389823463223649004310544661724622293504245796968164378640091927986481654716615129070423821849174530517355583346516554236725398275226093644453597100707070980621595474805787576099613983720183777025580916335151077533135229073087116715573750773873889060478939045276694514346613704295472385310631729871824726979568222773500593604214971625890741602126824424093294321703651209027752529904598094277600411506722920538335494881478301000711760077701734620478949804888398764176222402239543057363879262071694857786960225634265396078432928738836895005436509967481376881937505098967676593732836130001578651648478822174583561075465476577993328812337450989217151389095128725945372941547401488223404050621292785090338842548043760845391442337593141444203897535839698842581711419244694021840524202146864309439107404301227043734125453815309510501234654049356249179565922604379216060089372141251885643064857239554365526666020695785550333527683542790121671055976689303053472864381134440332639374276996064722225839343719565805386763947167906148489863166637011535587137941625316654512155340433580461044575006427037375009859449710126205524670294299752526394023689005808893403787135186393367790829632780808249146409727676526713744928784872930369549835903591526415910598040857377241160796084417666404029597146294569524819522564741350331980763712724379383870934206293414134804199704813965499753745667203585557623218492319154336003878054917026829324999673293641318353741249569988036503240271149511729031184123465284221360254050611349609005127243994647355218660269322986217586666950272968611772917471292596653454871200010135011821820975660513542990910127811336428125252463474868927898129951991429978732447820898863147739981140057275745821911476080654338571196070857458107820855594307238397642455606865492188177993195616376939742782285340351505013521369026500415523197098533724345852893900962518721593434276051714215771940827951283248234016322979733289069300900000594551389398937506874920373804162184013549303396721273593245023320535497175864755847204799910157035165031512517973940673988546937681512779815844528200336743657311010271750867081478036279806853304619638566643533466861088376391919332568276994229262154126170873649205279015295212007596446557279006894846523947294200800797046997947534028010235775534356459715691431895513261571051662393622350257926621603961057175974291184481126112604587024696187104578887734445087093379999507872826799149407746936883590218309688337432452596368039505814755478752428139452647851347447507146275547424151860857936111145320919312198641805495722046059467367905560142553859846363200218746616901941350491050413764180845097904425371559016266303027451062280523136957399808333306451711671951907270453260703189809536353189945304899773042518146474253481027675149706925285122047323867155527028450029359371223761635253981850592195324986570056806070777816398134274987255371698783916211151739491109643888510298578059774817920102840274754790340500425293023358760645632607300741262493540479339300064480375322238303928504651090568624617028557186680051801163636139682112502949724975689971538149942028071375483559575156827085958299019574745603016660817302964301799083756606502118903802712349567355288016298414023409297211832334788029894768003903008472438300625697549260229091298963110002219754199965670695226156821707966701536149875045706678216550216589439520466143638723938245020816909249844934680270769334325910778074170612512877700687021915536529721003890812234793794842182663317544030258694197274364188359665417477005266783832167357292695486857958874659725441443872029847156795253833141099531562759885370659412478302509201620411991952704143103181714821723955542924156164358579186358107826665367082841842925707296630247869262283204773914196291647508815957854313324966489917188301085926193524595414199802187586000477191402081638471062271908278631536609066508718352669796792056400842757115835336555745278433788521806829221863077725782739784479725451333260821343841738037475918463401780938749969907889380199347379772850349634102396787810595322009950145486806563543418799197191618983527606014061513400810871799455065222844575899305609321187767143516790077543459538944179272349396759104012802924067722203543514843109742463702380995836591977973466498230809022403921457441534541446227166841333419284874207499276188850080618693907408122113282647251022486081528789911972384144422710232229842075225445334665447810571011272909168960345798700526220676157231174802201495084407977136022524387443388505076303311950794293719437166368677190381759261603318187634315206269009880690657906962279093011272586111435974057877109214753422914636538325800229943551460112757873149024171783354840303113202126544516839059805394454575282914048813189282835531641742702153841371047158930992848766681629494645116726704484829591156684626981635050090207211030221172571118123728229271756463094232721001334398883761333401782994463245878132162828293946574387110646201501576515667630507304449688117523031393754470230093412305178637532052032431649884178302399690381596721355565499979364414908952486722882544889097912281513404145645832864163290103257352406369767581565022196481348657422448982678576184943800605574201335436020451715533992783456552016107879029160222723314519365328358364032471109230858827119532212086893709797497469960298575102940758467666843237839521910153558711170884440180203509874227419637594333302361823470884183047741280150214541429539458241985255348831549205952711600943880698080849179444040877341314568245160955220580861895751575815583860845767491159415388971350860912248931025931938843691198747262178237030977041490354503686496158605535613460062682233528699264915302070929122284402850586704123640517099738177905074250922027293890449602108245014203324083355926593414589378272374795007429667551631693850273540017217994561391516205079936924750364179403310390553828144713019326709134840073030698124076367892838988033301500421829512325215342613689595114223048840850042320745139324411975279208695186641488628027011026166282039209049295459642041576381899334104071928805365040924242870532313161957508044931929241124107094460204131213543148378249263895582996509408904394863858944591302204531916806162225864144707001722409022670404102125193437508584511180555691724673872508643000455854966327538726450733736876638080173359006693271295954584802462813127676663484919457920081372481834986918048813562731290526932221410057200392108654880971353411610405842420621133201115990407850373448118766484486813627575318589678046544256027149009719591088939233732009106628287071788080953735863284788895997847648659481723901006831669290580358993741612716246167974692075826188175197643005196859561680988564902662015781669172555361414782348006035896807442578126158252987462931780767128286756032179300616585142113243928480470797674511863916048222244264184293038193329344660106970667544042935467031512250278639554577276635322446646294822270244646293031742708480627829822225424964147136913788252180749928348405276327195597543662536472506141273022012574928053594362653747387817735427366697325298003144089667567387946182732606033252061024298633476154183667748096560307628250920156402922017845953662342798088469101472212942908489820018473995564998395957366323610694447709175987617657372060715479617023107146853344653046307313432314073269082061949882255517030950530639189356742355435457067629672324435398780163971542337270194119681466976337095317036365968712097162386812138472237957161928941121836004395212148745075512604920222417730660394252638995106548351339808633534595046739486145426637163023836809381964964430555747374347065397795560372393933099004397672705475113322473820035546616118995118598593803430976971953215573115729861990279303960552955474737016636091257975136098826864802976121752225658934106545766126474778731958570092459385767222130837544585735921142283957352273746279765583872263096926101022880675393920833658345057836482862561972210906619843333859317364593457036532908513085848121663900566096891436353950588387413786280429529437199918548133992406745432145968158080496519334730721202800224328288902775396205677845979115339576396365491134931317716756280161640007836976261362390717223274713548569432744784116039996178288741885277336256303388225640721547949215467221723310251851292649918287950281902182539842014499992230575702930112953633103838705226656650109503349672905690587909589587881848259263546706912925945589400977547009612682770278598713730514487330296166803462536934195261508353631627025136023042840594701255263582388152977544920430821477560044810528346385863566685011725976418165351666727154540370640196154043460892422365617837492193903929205824799861969377797169210019761129186167718597669691595448605685500915591870934610614524534586640358976698488535051656507692898773971191004343433866577870958947281049082202698994794002574658353556751095664116055573595423398957764328824222107255295705771608809832234216096685882769958829824940060862693697537106730391704396801832941469170844635968013037418073818879708101817876167559597106224574970552808878754810881094300780127481469156574569507101206879644737003381751555745477485509324725946672379083335568009016656972137860461971370807223033376777688938368586979171721800941992978202249467438498698768506043325102551819061633832683820633196132573220546099013492340789101492793362000180965798365745946689322677092828096168121910210924808231366500790765457404977024364273996565978046636799977831837996299022926891916524465972309948467950747739809172050530409769642437575583031687599530852860614657478247616261214898393949408711279539918266408408264209176437545194736765607195496103848694307214300795335376931703023245758916119597998398831799456770864568016761619525155287475407768420442782014787241698654419612923434824242704893035800604267784907184798012364175083762294255539152600689889143680375602241190785259124421623622980739674269810360860425318035626324406894896686617852066074044741311484530684262909989089224175260905142651801208320986192512024772725159249234765221001083866827116598226158999896360690565967309439013901298940568317749142254463721752398321660595562239740423955900988878098378759403138821398434423201460097818230442285132490824929568442640262153696765497538593994747727431483733726559299547037214361642173854491432205167655798000397378658789382032125663712383984377145653169109157683803253565350862056118525463593691401866600777209986003539954030890047085104245746571095840556831778278126257505079864181907566931974772338060415282419515010210679353541593463315440599065020681158197359279676994527689297677734745226863193768683620741342349218145540343571024515534433259651673922562093413658898655691510831555054137530019947549137796181902140500817628766029641746130572168278355020872806692570456603369530594174902182096026894929016008157806527295163990740562908359469313522090804139734661710796259601249142620477105015982080415356575850707174121998082781701220356011817383740761115592207591694556882520442564030418716596751223552356553741812510970208221236664878889951432925436811382645961351067788547632385415310057946620862045856849215416333167002848345321408737143744139433149437442585592660686409979679853262252039899130189254721413734171433118075205385561295352503028788504349152377643837750064352557779577489133869013975568060419224327234216946746516536956747419410901662129921895494663110460325963712698592634018144369278056395637684823216782237905768059653014663262045087198003186816733165361265428072916642523545186995507265704677861642736070420638637200560316532544835618022373687332852504784782200052137658093690289579411546907319849855293187151348838769055187795337452162993684341702007754544160618572344523604858062575459524983456623173818794468406387859884548861634333843731185032532206319046396364197385195903569325859487915492260151333206740095946073711800590290675377358290304454578068854688901953961448807821772012573296278895812637189314927615770348766964781134196220596514645196999822942848721396126251605469469545759553117110288230002819852306240692180277374878659186832888198556886142399830707012073104642531391894447295125501337745728063447372870882045284873872487910544933294669854547551724691805913109306805993770944248867353719961073761607634733896408403291382715663331031591835850732916326725947710428130336582640745064899132417786664695702547803381006739782309644277154412611516591720321791351920657413288775421771330420116188461295283919872541879201605566432366674840100899885294689314545550015266523521835667741709022462501006879250153545051358613403487673611421813357693360161054515884304630514922937476930176847021785283254184264094397498318618824698904255908804041968032710280707945163198402073660973610316878444044209922416966399670145487725801599060962149547955191757742929072729398594656579721618649587911428908934422540835073713583650989500021802562759464102185073408993786409136304191172973768616657420352135961622608888410145827897158072241364398802474677794526275007932176220464132773833074642351437821221749654558881632314294358772562379242306507197798762623980377071370425549255411541200365072664983638645891932254230814825050226306089954075058335907891328857816700920560891197094224197831648971228694952352165538598918473286963120446648225911710201315978002631321362219395233504333157027683662574985967877643416082455833566549349637803153555700602723810685371436580820724025494660470459442419219694843531744958680782299718627215673419642657869098651752420725050041168616075739600578874697803623932724823330199822505381479786381393431649810820401114317113507582184754575446828200366748723760272372575516965703064893740272107892959554457664602434603838605373993257636406850238267632340131870204768138999277861662251869804002322126343229291462866605729146935144268726271791682190315557576879426307395784538230228526229890945039486384468788496074729262007490909730688342681566957932829854463231163526876758194436211845283215177660914825683078029858251051141079278117774374820929267499618919787131041334187388920884464384643676816350128945900063925926150938901079781878718727312995370169598360312520695504549576857597325120966739040400115363898583992171317754778685671711040933146343276783152769228079377163619606347370040594232214080347870861839496040497359114273931934908641013076656326965346092818289734054111610034815719695659569752069566100700484099231634668234509312104059682571264142482167596240941900764529392290513767803097252357920331508860426378992889328279634876802606985823460864456599266668618926924677585531978280216965442080968991603124610819166028560405825920840982454853310139255824125593371608169940537699208029858326287951443946941867300125059876004653709491693618895714690222418920973246730263102213034418724031126698412086940292670272160012552336908088213437289853838269656499674129704371512398618608684935609762101095926448080591536938146299787181040876730504915608876000248146042770724749083409736477523411030513491109035741080310883029096337779667375961874183576657642955506084545432409511637771030037872952441558869767640426687791033339424961657783419310148381006997733965154692820765545338409707836815923366425675849429432693837983706167629211192993201810772200306894047070831044674501261183492414315494308652956502190393731070327542377188747024764892746391291909327647111920642886433623136228469959662707441009372311180601853660732639006634988407685435650671200374443891362457435276518077437116603122424716186472870922516889554668920419826648060446164625859791970946107603049568065913501129867289524014487106833470965873734096476322348960197040253521568452852380842673214350711786183258354365631693423971222790669448908021322027076643239528173716212391963401315912635324213569148664961277361300893095984094865840924163706858533548165925891530772666852924209904930172421963790005029584767479489621753707407779699324156796724168646051673647684376673442612307781590970479620888982528275483702547864704127298700894399651898634266457773408732437154391503668814128314267341293032366822238845518120919059575573102046137435975181730528238940289243663283177181706691917311970755121597679689018440759271057953439308166966269878116014925176890867093285488530538675230037636232787411758508636686180688997766511575375529686456525418651376962957065002429054350233848782722043065515660418185388651276131050985249778571481116549949743045709713413403441843117030013408713951346916851770660257420722065204119496389896251700639560472661534239235338423083996628637225670397806648406261463061007492220131805634925198162171202041762760495922783100490649534750016604780739902484494812431429371864790987196186048267668074011503933959028258727011014160749549081567568045878320261824112681609557161639444277307295120664450605139083913990968454315564656110548811227129877560183967106506735890121797329876993865950992599625429138861705844456000300152291932490834882070436814532290357960742748528338236381290441204816371735900652499373211770411805610742327079325063760819603249332568868174129735188136312230308006641690186513968146280841014177298551662242303405256757326828899283088205436955472901511766273237469248549647565730163388503751989025280880184905446404375301856304509438003714977643063248661802824446289707804627160401975182524084645601773012099200728181801455722178565000476859029462900662023254905450341458596986244461081334302399196634863384789075825671672334906089489237378889882833900397594164319605688828800305254399607821732890129564480096699450170086072681697475768940724570526512593967352286000745356088585030963008797867563688041580078778480971964788920281559599890140816852231079801235351259694880255125608440681524979009219127255729852992877969581126984269943300908304145996575655449485198683820515424702927384695362727152199453539844943756734256470294951462873919767685214145490394878458633961422886203550850812966012036714596823777416578698114677731724123205361266722935260894521359437443534962946244017267467341665486276595153261324503333134114483649582412404749765202017311173849389785038184649032035192454935856016443855504107378875856019397626687026360101127050097108060487737254101482610591989416380316482959901101281014356119909182628924945211608384059826973747052883947943163887237765300011159747146095532615093319446045344208231004840761459971173433158320551796090089721421553399796342557252392601511163224304472421111311931386924250244841894352308730632790623311941930574688556148299928595171491003855866610100613518022858486106168174360540864561160169760662931126732717420804476126640853847622655236420530560448364033630190849715843041778779167281832958882711247088369840233157108292550165133691988651290190744491773198640684107776172600570819087477312566495391256431773854317769421001236987008718666618003829635741950440661690827834027680011036900791490146065291704123229575732343136693879729517119914247068501070626240503619292263902719579385699381586638315763108069527799720471553637602019340804511023097810719711422880708759539536506368435558737835805489600950186283557418869548668244130450301879241361518455033300558163476705418455851005865602987795131852102288354258040989271362422850942623948594837620534061960542221450101266947945441959356579755991323058436271022599657031852023799191895449921630199770532199066182386821520649952290766684441768672793581276321984895205150481974676714786690229784982158735929753248372594328183885606798184150850423406000607961313572498828218609241743983587098513009095279096499220224254275889951381623601803927187182423849004721639188443373217626996141818773800913958302956698708124825246195118581470184055761526739657435864198747285573961948790487211123893318242422173251234790263822376851879410279324838765673634284773585882610263440521852961461691188414069648038537872334838008827496491819544165703503762639673783126915582009925187924424589914879215741985229931770476091889684695440717797151442947603927340530114466441638519464796763812125163922665295452654152561686142112920087265054786555777055501137641366196008278755598674657655195203788027879735444627312017322624079208405947114289070202032427472394409165312778486287472390456789612044145862266545364998493873004130183748762162097899164512596852073008437304068851963732962251424737263245137843766594040918904486113859530716534367997198686007301987748574828163999368629826415244873540847884954731709796296477515628698505503649973170737237700179504306920559640501612403544752991680269482274691396195404491257526228326974911854314782831980875166777774998674100554562438419336894668482258987727242350474745764659397472320584443521261345506244791939915577615118334490415747485967648336896773980765380426624541270423993511483548357512315342946711673449531067379372073982679858380932868436775870014618279122947042983967503463340950602740894351409046586575568838942935573117230148534035619690592528992944469823125391534507702773078484996315836626823968181141130773216285341812250986723015289039096596366927354464330696928493631030725059011207074039893598495241498480743470749396015639959868892707264472442794286645032600840296854881256874085371727724504935325206834607294920184005636534177876111326352664396167369764970683206475226105346527783625580727706741836429984924210330751206314762327234777249353109795603451228750009743983555043882285299613951888386399195288942370862432655766186349569703260596686541408052997216966915356516044790139325512527763688323992051642498534920597125944868737684379766584891686265100181690043323595608747577748079169180181227108570176111602323549521210575780399598001240046487291762197606403470715005634467957422857467930329339099669090356797934128077491460387107223753218058537409850656451885277203716271497499281059434504814220913477567354529838871266181813012129455482934712289346587673441331131354075444102894916313776757016674029869936772321948941036999498528791593116415061918821634322030955568253396430725909274078768640651699553730774304570075851029055885078870307205413786265108699377652477102615063810315534375299948690827113894569395063795101031119340112880267216361368490837819100516627398209436668124610804539062812133891310835278500704615954957907995700258437948584748927696464019753126293867602200189031657354557981923247281690314995397078133029738678056016921894332689504027648105557239825825316941958185169852263984630302013896296090795881400497793763621002961113195533480424322037759723327943388206871192624441472494638699787658039228237181592095898749813403745660217953127254329990729610102863457036281324718271068738593603834591904844064291458142030371016754335579876561756110307917066384645068664338999735874857071577994594263064190209652831473604774425694705011959015322438826800767352042022255462210107073198945268707263812625632051278104798089744213469233785397755987194947304170076731698859323825466407136858039703122558063447786476588645932438486900874288412652511982983089927900582846981372764874582102992931145271561794399091961342546609110422682048447681579560673825639219430465220476263913181526787524179589705952682596960944306435539447568587540477486420673147193040508260948161405107115439569153756495200388352776640032843073880895332091661460439569274393682577036008510340625044811139724483995296821139273377190467912984993359068318454169293049124714581683256217395251507082604141168421710702578591945975352339201223125688610575286757287419669461097932167146753056662817394701898832962975254457365214196615332841280778681906139367004928277057009176003775309256545317229254932641160333858761585254841170439292759137123433507575829844579935095054557868011527092298683826239364326024668575296972573102327421810350839935026231621884151866313377350161277801488276745320247542079809920794919846434031505424141086855901584429063488986708584681574372237656345391230804299814288592182210871631943502388226170572210457278740583368850864653897757395533671997878612819498303759288607104644420079585018108227959356235523189120410956642921609784804368983858041869970766108268076691894651099187450283781347171138726684484307142357548165146210139384904534044851909656780431141895628855988472343721207225052029229290712302787531262505599603609412187837864741347025574279287095699164728337001190180741211610196993859768123025415889809292772801789514739514088918587548947131189919107127002923212230549784320352887503665521087811750791330946955674455827921224890253006714212473027684414631660432777282140461479119018476349269156275123220261869745504678386016319798876423607190064286218469574398864615769131856393786106390082222256276169501132163499955866271304237134351323063888416401336158682347429224875420093312892013033114823676610813823616825824858820271525736064030671793503406012885548623552747084065141181302798247033662702222954310804208972779122775893472315460639890109358697006186101105915230961129032402877312711097911088292137020076695790693146654639145135791243009857515790412438123922890428073332980360376329623305134225427081253439505816966676424558791569621584413986457592238966977198103927502117137507807549886333299154209852432482879002941394662159929650832666583515061747545787710891143402337989735892530962598633199262605285693199506533783135909299855173461231797531073761288089592136336622871257544512176874195346902655687230120567504019202555305391147612692764850935751004254752296134425249717336175245377570703518654165700696392573738862729779322211792132347587652618797470784797848370900686497455928096892044190568036034346909293428563190295257509067609998753774232159726220925946884566724102236454412504838398582015241527197110610645634286985019297538758479338259417494478385465199144327554053212761964546246443853706982489772500173228115626546809090872957699109512002300406301120655724816092182621776486664920130994005042951802547741084192481214170359021198019592564095237260291639951971526091188951009583040357553657191321816097880658228728264440691504723183707664511051463009044503949548104268171349948343717981764294376219906578683807613614489565843502378428633556536011570167633053325497134428050148133312141201570818984500003336704165287742874865147093885516701497360914155702046572777281490958956547000929779516285215147412764119389743575631510002244075368790857661655761488795356246746237664458185675493974626338682695156054525168196963440619373069845299069940310065673798833614728345959082255669701541053265599581641445923505040430571093158160694393946856283660672182629914733479181630733526239069624259367819270238434028057737927821196863542775024862272334069061151280987633704637184663713437997694482083907655941798940815778797154813472360949381278327221620205142764153791229293402058454085971233566016669457938106084731946985148967495181279469894089924463857993750034581129598265007902362196136421529493862632963614075317251177239434585548156784214936103559355813368582566591463235916712261435209603960630539581703686933587996573014281107606741464660120562589285408894066548357651204593400371792842468870765464421818684219090428764097726588166050494498183608563450690451414143985480653217108582265308181964142724930334234061483864780165744157142520469257453521585811634151200877703690301299888587094194754449107976247408521031763239827652075789926088717116135275039707721699426043057865725303675305804287091972070951894889624583797553751520814795308115104060459517681915494705434671515502201794318429635676448533848224402564683387501733575082323309139440187997951908822224050051258835671261797564082804384222252050454978541512949487419851020193246403557332523007431970121257999259792115676677451164677107794775778831751334258520971128838411158547669624021053433921986641734374186824475918700554812416834041945496516332161923245477414355831721552826897567502464856187615061766802049898098886169066910065490720150806823452224945413620907420215667676996399861297198038849681799485078228228022804556111246908179226291104900795195776971904627968114683127991396369552342056484941121636753678260767136384850780282237135666037023775712843983865761453653097925699675376694176143865076487493258680647446242142634416907034707514805800675427966894176419093511510460526156775685904331638550448863161908417058178050187463084903046105237708445844702840200918775247053437627911790729280826898499914645710921534687856020010024606514786613021438535511807548095452886634136151774399292224022364679677261761507394469036403821708432912462742700302900403941481732031808973541307234262395489918252549765260938260778449273177682865984349920665995864564930948263597116733323659714571751797094032023333993512831717490993300819080470480084841367624843868852197586588068721355370280921083605552304509073565816694365312858440721122894102109751444951014923577602085349862876837135792050315194739495597131089515739871148184291336136947788115460014059045745188576051580526138418659230777062251757040601219123832316007650540569747589311621516436666066104673316699408170768355114958448465092342898654344693358380544289438269277807025078676296583313243705387347399376498408944768773517041310110389442858308963688690134895919121545744107527115568970696538137346487830527834188793788436217427951084012614289377842856917186692934229466113766467372539015537700107874930772204887240313168581851961246614871153350571626928153808126259710104843325607283617739860797494231394530118432417442003593905770108555823836476243182927237677916719761456999158319479246871460787607130467288030573597576856353364486729341232792507026991183386017242759868552966387890408221590539504566491702112990035409768542181993776449784011452996995518760424828169687009490190894494839268095387787452552862909655402179170729531676387073165703313665644023125620634354315908879225482576303561838759137278347746840741833857180282950878463627816063982946588179030443782341158743816906211392245710162313255373369459286146290389044292626646835241397387150039216292398088371278266170040238024853630492503314563939290778142145454790721350828359957378376000962413069972380510074540764121694762751538232391772996032118984707010811696461363962450254617430932582185750305413328679345346439127308138553141412744915865167857422463469313411130061296665039639183154240205056371995821262662351466187905304546437316511244868701651461287839219947785043631382671253835630618345318905947794260649676097041244055099273887663331153576064190547790213053293608374389498092764225615870377305163365648393796628593611850637086096947426081254298765518216188978607679562098216758471831942755524294176100703032310238731155619313049141829425089167077344202335911891096974651388652005108900011766514687100767534711931975619514569136634699961199436021608636751591444231603374332523506080883372880493447967995462010594784092735678669931752695815123636019506375445054178809282045497491370079395785281804839665062784874427940114005260069270116504651565322366195362104696718583530237469686465562541719243186023035056993211704086420506055392013913183057724807942065642435512452882876911828433220036274017425025337446573967985170107428703972933146177758047609265008798606338889420759659898380106066830524046014206704287531562518245124617265683974713500405758719312879661440744468628696700249358990116593771479354179753467259319586236816916420433378579347051592661296556137009110782962332218479535583785919053178906872573653737801131069128382270913319651009927049468985877721628625099126341639082940828081514846633313907862458162008887771880803700811246812159008553081280441297846360046609111835767075615962498864897477972340385702294495417088768910021519644653428535539434349530599924672622105691660136022232582613368834017298620761935706605691086313105940850961805774801973800757132299568705434679283947070074391542074944155050765082158529408709387601052756077937122255458811505395142291574405721607971433349230484787332442726244428687940698938581667532809147180218855838623552719237754982667904484107578031701873955995949935072284671099166738093288681503338206703455068901525759949861672183121557395414490089596146227254738107554062175443743118298312732549749146462242282278401326369944894061927663775530935486786715011827243361822723663078040560499924938606624086057069096480172617504658720217687140865372610032238468531335631576549166533608747353791543847938545855453267819224600971877700331907361380753574493573327684782654553733910503979742004173851074890837452546008691422884979322312813952669668882253991084219765890371182754272690119893663824167199683940887485264334763363784311341100232371978397595661516147847503564498186481264752636329085307576054203687312174113684603006381687311389833360928816871930230721957371704307061576446187220238378201272444647062776700031920363757583532247007336886638363221239720129247502803569985772350641958192804111090802602059956898351224142849102120284945842480306127748075092162750325250437399502455895347783445764827162234894837769788528470843639501710053887948986506168564330282015835611393882094241909831937432724594259752960275415363775015464244695795127023168347930561780536244567750651342110769037230076591800666705159833501669407084009126633724640514130894927734613186423676192305763818184467462452864386980280498509683594484665622304547777254445219195573351873683602434575521641009348827500525083017398333442920167131578273786421309854489696225520550747953545179284704485646985324285497364399649855481194566916611154894756434427352865426798584173492351556372254489837575272585741194638787375241522682805414008558702033220992466982180163724035102417876450372625852576841554670061802014423555627087475490959106916631456600411711998392671974447638534400666888523694895639313931430102076099504516701389559371369648576416079552134988764700818257872995718763178984532260089035253898648767537108644354528785158256758802571862273763949741562003994152507904650944421513715101583093821568377036522903007336796666069763114845582034578121102425207792441780919400337987833559292340773098502375354875991468138512895610344641175662732891852151223244644429935054998752229189992195801673524908907302980001946239344231967066370665269420013436458361000505693209801096916465631268766294683646021129614137343202950025210288140785190703928118063811685206495840006994129748460293246450497527124354149745604588986417574587040520638740315880271318235224029828513728401557871353707714998620034662485379238291929038604311612827407557845495773275034733754184450361842210101313932412691537152006839629152201947838369512398154097234965321904350358124053472413261507530674013195938048434645311768453468123177101584326655863575444357164913722708813290858920544246754464159722577632585429368336349538856252865342513835947903562816187913028131099430502756707231251026722080609211253322024520873391847819109781324370014806437001205576692952096578787704052030458919341987009932806323795174902850806496058727716872212726699537146100004629613384980873044417365545758438754893718939479879142158421911672389338207953222028274345430966770127162595790975743912767626627527116430832997777139812550989185416112398711419079129565387768199185873975772175932742712168310114084318420408019920316842589910037994493591789826026898299628687860772433153830826233722130664627917201979689001565648981853600691742652578009794787738960658558662466467170811158042530533512595932846409495800131117106222497106780939750545575900549839605820471781527123782902833764301269566127447740170151831722648098188147646148164171693781942249819391965912151265336536478204846498590509753044325939288764272360140539206317655698432795707686247088189317428410379855330674127590879850801192438232514804474719272609114950350913892747895850370589598303076466412384246213118047222346687315025046642477361551323989380089994920634350958903929823534282631032945417765782454177871256588039514579831578056751287384693525263520844010591370480738078995192131442122913532501923125892477665030824240582634960211926612120103552144612422881521539866384710376115599172791848487166197639359351754076371959034526373305924539049370239742114224279574881544828919236356683747344483924027986778164821194167628667925483833909983108620769281585692288756008737770204323088055120784879556549643954630783307893817245686648049305138212027979857172878013297165926511387809292492069274437384507356007045467410247974136653043962031221915483053659061092501611232513271782833951550591087936227620825606880102059132899779250056061404622523674302220652095098715131082310608097530258932821120852516604014122717894799968490227335871323261809243581169379158957591431975258355452781102449481245651317487898884328243171940185021457344301619187370428405224441712474117632717094632112770465339388396261688394037756963344835467189332313560008072176149030602439179930940505082578188333086785722378039403680579493508263205559187639250732912662311176754278626816323242993043621264585857058224605717375554882757132399142810462673756874415516956742777514980677499637106490301278318167959395687594053294909754263279757151137720908205572925102666353451523850713953618809783553426553664163953022013626874936919813412404540385068927992765693449134892728559726638497636437860840367084781493412479389715256391675037032160780380684120331672190477005941793886411944657320856643022364935428492247677402482362122579538902299412675884485432822430563178128205205816981544607462387347110244102073853195735213116322989147671494870229587980423258082441112816858297053993898497926022758898857931366679981061710137116793012769142253442507945094522283907700062002031206948814476622705698124813500555512555065580075183269746671198291781072747530720662795997490658085657195233450928922912241814531189900913016208174219439407091954974127671032668410697214870002479792387253252628083881309397760373164002959227477944402903914317395493548324692073959022350705654928484578855074630280413381561550048275254632069258361930174591669718214063847598826843043588298723252838015025417337319984348665300090817219472355388531624328183403080747945619497700470126868734762990559667491426926671727336084848431471510757868941574336227140557227062025510308922270278248227164864130178182969937115979871910299829579058512711511504048480721130133606577832358372975504504135037474104310169536654661799004607146204530040007321429104319613264783021258602156354766061111934192769114399520980287783212898342980458217875613020513364830672675938854263768294586113133853993924855428208419940329698567472548025642446143587201394921943682597999651748459576797197417091083771600158171507742971789533215215073651498086243083765461735523636121780361080015907937527875865246503156991897070958728905777793828500853720603629604317614781159545086129692271513976921783202390609155184161733859886931573785750858616141114924776418785251743587590568935809443083890324774423720095485508366423178723021819812443233219535557143041255658088610507391369072276221161450432701674642644740940910113350453279025852952596039240669476749738725202240345524915760520291031000092545997023079711796979560103103782393944766388127814336177452622279770078487244165133888436876789602420577106677723752341777140314450534661322244679387603722518584412009783845184916558409184712865054480526535204704913340924234241999297297680732100851074506619592898570310131124111420217056213867622272635030204597970994313423179462773236834151520143056322033735929983386279564611824608372382591285565466042800906414657602817954205977785815897270520366954469735453496309201870690075513672023156205748073204191883142565621452052133317174281272237290877132694812101771934946368446830661114906771948599765966732757673683026224167422225994445757255953600119296924134046818952768223625329022392170840699026391604606935190302064017479452360042471512031249829383947094930060134284375745164297986400753922639848191903670358058374178146227071227723765542809896848649054338988311740593591187652722053650403238497635006649081064074991339974498001068926466133359361122042352916409774569649326138435647203486403206951154665532960727404831282971999475455987658034954197477700478400728317262068731238365373127960792327063884260438986161625966844260524852945480209462540615521669099980112392880861411577815544831659605607632436794389102982951522863968994900879642012110940304884206775973598120891004668246607933846024142361277060235086324542323836693639506191160280718654655116456473910687380968547316012620310466370100323254573879777474390755876338709355653442689752213444630606171655380167764850088362808281545115214460235151208569756730415763029664029034112831336357845518543834570053517815412783717360466564321223209403055118108364976057552156439765382701319072723677064675151058946439372820936926488506637992002708585046809695611944522621491381844090018368178778009110380943007351734601733602117110482108745559237021363208371045763825324284645112596011590846928289295773306630419511073411237483773830807873854631130035358749275186447454518254538281013831655574371258450242094458292942846523107057771571526559062235424309256294038190171279165829311230275210215153642494637567779045087187998940675977997249620906809163531871390940813608135010011767408629196023498973806492807981058008219508380506973637736226137301345976362987051331289011437908738801248263438150734270698265351633268557284907895474147752701748251736513135172609146971254934963249236494669806723010114007317519573563040873730321088353305226824677272984658639775695585189337128989242978619838239347382494061187534965156690894455900302768083586566892482616986540953412152996682986426211102004006982459349639406602010888919273705234358708819478931849124081988192447067335636396080252515889615174674824447685258787461280834984432315936736840475477451668935378453735173183242940558509486356592252373560490372967365519890835598386864289692981651813619313942099148162558827367119035611135267326715248333397234211401711168211883855178137642203265504549645159303908753206177180654136336867945521733094727785849622876521216492888441643649576224580545275467029896740255039767425812332872248412605649684799405949278123256075485302124779716801630905705287537348900818160663763136997986358638694301646597135192735979179002724700107613881598780705867021373795200888502797571609561203288048371225007834535050231648627045121463452977330295708533134795334061028488297927718892164018883119009724017056941036735698700939389201559800178934978231643423939610455296188349219605232751723526126419560220543331096581202843510650915327441042040815908877515922626532239344519224076622492671960365270972829367979166830526674837641014197317525486169424426866936145210752848394781658845711914448747197881899412599403843498469110312964690970622334521659859311277014913985553848458554927106537070053636927218283133254011227263814927023823092351565754325085586412095552234471239828331337972357035442984114361162616400807404131693239962839847041761397757495118250130831854947365405224596424123815424762971414890786829362375402843106640669323190688699282681446431212797554632513557711899282203057580018658631354256535482695880318922579611376641729022790125008884700595033773312294708832483921258963819177397876759903557399795650382211308799846465064717354077368789156951402660445428244090623590734818522593118965972322225542755865777682348070782447728699588483849909907428619368405155275649629965089200888881810767938959208157442185878347557129762226308261956971464464348267214972406515910355295740103550322134093922689524678992257633586650649965703391678196865666039215719635075597779625491789766738680838897883266061742011434388663594272825765950681318138722036649698640968783123341706823151443994518700204454191022434663698817727501567386539038653706833522984523625633325273526500933720502181280997278017802949713864496164178712437617423612251737964896293428883574676232635317926734061219706668005056132203639824801980923685928270759033255439188825053556434807843826782674786113129440151426315447953415286452358073034922232628849791175067276946015694153872938575901083858052683912147130521729667620720732937501079849434561225026126109461282376938768763066950015790315497883158931265083092418373726285952458589268637564742956656330797002493627116853718582934493005000661638126579719820036202066160367183619904346570725774970896214378529490475162682284674956927723691136746882699620983841616646592337600868592014575474262876833299617690027244771455711051286684449799964155238589593205886197708633302355385094780906412152528226931156072879335504721933228090886715825930943989986494873003526104073083837491188206195767550463173737458641554198932212069587697207122918381302086574403781884406155443502647395750279406977951368287268011876957251436518839473243636036861494549904569367928854012028491594465133690148953419930618487376413203298443948505227897666671679758043797951836523855056361635853846457366330368876576993167414580643817961315175565679204697216157318269650960242101290351060600161082679967772118087515339240917880601192471171263840344708989236861502053280571422136282300350497494431762546265293746124445429527634015339948892005771369285425581937292153265796611420963585854183944645519861189534861880297868893540969998257113344308162396127490261484157506799118536386256077550669509011128504872002964215963103057068342178831367839223042702120475642502093813963896097100889418914637897111922450990334892039440081411682961820316714756039137679493019320989994052218829809107480693617487679227497740396879976534893528056667315757001458227563803790010184899567394287526783073193503610162552055144886325808262268821747834639942733545831902372916749233022208306204256268106596061788465351089427254731226561373504344074960248219667722102630203243137874084329298658785878867977730677184351181727141013093934739050952201658463909256852921066347546060889511328499180894959230482377531835222727960959625199220624411263544317393796693535257569720565003276134187911126735127700245135133522214745277245709790364186817892955239050261574929726746049443984753151193987672887362352032766936511052219259115350233183140668969808116120671283909398029605683372929255269093891755919441767624901442264341845683554863227067709734704976484608933473692685212093048326173213995848416316472430018119374765155195247440214461492917519283419275832691266943011400591732676099855835703851781670259233337847323487629521955214162052321063130082103383374640214711028123420658395103265923838811743491449887600631963634347837948653011457319734148520932726698261755517386686063833279142768473585242601650370831134083667925194539549531830751864841338670306815709387051847200245447231147519092155167602355486890236799390348615481100697225521158221497205585907812318291541369648625756860616361026237695069876210726494583689012586176966221572244549663905348820502118123682902930032389532684421700622557575439246636226487982832794442593084524063196165622652291604925305749968404842234278785841597143190261177626442992443052108555963883326090503146217682736144082100371607269459342793419322511079087563228151397970845750061078574219184253061305770543524966316299059126077325148587392459056963229072871561037726506259692676661884367915137796809097594467393481588520793771234754577940722868591849962007426596454566158648061635908660928329801377970792205603373761507090188586427042494830030825688074229839126914836449588647039169424646362950836504609737286059562459595432874886075212718026491391346866282856303326174158896722293251533536677178253663634954391158145025412655348916515948935115290131077280453148792440992153391220922591096222468815210465153676309947068873751195771235399635865905177449593975427437451191764026868994440069142770102102007859944328906727607806004981135591949933310997094191863928139491853853521588804575625216133139226796527593605955369177123498366930561018406008324755623567287253002780817348594742938960271074717453148881078307728861181089244562739950886598674763211354756100022956270523840776188217087879145612914278584990285637491693060298729225796088785019065710928405596665145275196204210795367129283475953658742841067441041827191445078402988528278531138885541366965537534066581339712585118129640609426824266542418592369112256497901917689843989559414192317016963411637568164730516693321083245480264542733315078101506857090321256200145844568311636839189061338651764134971114364258622173173121628110574947834243010888246810412619244748184557422394949419236915962856040776556930921518751899117115712483547003039967937726599448057844682724201852591807770578881615394278010042490853722565059761043693442287142895694762252134352554485239681912703362739369040663108494643291312876940569639329703670292448785959633373916259921045102684033747932398395795077453213574106867534649556083758660157458074573211514954635886496956098463133498814400676194299613759320990524696547731634819761440443646864381666773760484900414994265235467329640440664408156463853939857398748707696275661302779753094920738387769873489974286739340546101457291827146090175768532831609588820176697527851931201753514432271244718439026776807642038633301776847484192024692752108215298846632372852664656094741840890550189653725964852107772183711094832556417754958263955813781484285181410921108859146254367176336869813672758332589219890009406503679447360344156654934803821363932965629745427435217886985354858623520806152734814191667969878825787200195394003136127599980777333363897179425911367697511306875874599554071314594501641373194698476007197655367385609245736936780737024804404676903800956469870726834207720006347885294609489595555353049080941734384174370642681825161259892423323621712322381539145856239324144210782131093623258576816529403994159320543405908209829658897516851570412920069290572985873415996459837261645345833785138324404194126686834085496785877435313894361519023656296138182654669592268175842295711256742004597632050465297527792459382873215524920199459971689578645188841964511963649869382047045313353708524088843900785391200342176054296267899171878122740751579300552384060113098494534903162002338750343946066038176378460353419633713911054266275710461440015217074511433397111499140901886308075587207532012627102060421980876054328498541461510992941614640863806400889024539277310387696535117741252034649761046789977135917412388646438383865989206559398214659389698031651238946908292673566375710172540192595276335525335442531594916537600236009550540329742967850458791289806572557839374042900389663268021529389243255820039585556462878797395672773485836418546168405718589583705787783235137930400299865098706143687927327549402765346201083844929649026600397387304929766811208653317903015078038474164950778551095687303170767142179271057352240061800307696633495289630332160668048214210476326328486363793839204383547762256725363287880124784478630191609471552598561909459149391161308346967748955664251387242387369363617172795224179291971823755113713240627869894685422712390780937475387514178262415144088156645146745830906359124497929696316260870011616960402568357987566466712839494136302529160596081574365802730573699235757888812100976295718987217254876562177456687322848061564829444625442193599799814604092034720501427112082928762165673298651240097996171933290102000077351272683878521116105685849899728392960465010260886722566505464740166002483480420262802388866519644679311543286970499200074916767076255811577194365658798769318286018236929151930393716735399982838298556246378668394578616890940976641757829782943180193001286044344410788879766768837669804019958428087580808095795448536065679247683285132301079105348958005264251783650721514507908852801164482296159052427125765588931142363873566305743033325276420622027357149404513782218733731602366411415787438771720930462719165634307836291265495024764327175932990935642759961929786221130689886682223248005793780234192893884231628351064533992316078126906272580831859476168221927242131516840371102679283643593587030810892097571248201734258189636517708858443061008186568743649384402701995069546193583553571594100562893427971191852059340493829730128872244021563312714733637818481235387265702195188343759021079420402865669521675523898369016213679692095885291873782408431149809811732214050479506328941610691536413418561669370575392008010146842937659758990800716954806224325536227987083727790507480436887251094666140182022533996047124525932794479453453630184388114123559618897754881253554938468333366690821952552676846349368341151968604765438208303490338866141342190563917375926258815290306181581467857933651421970853825841576526678986698568361862259387897328754145404839703216720744249092668800614236876945515229084668825181034830138590651163477526523569510271612503240417136515729362927651488694519278827857544717899422466256003748675645906602365673459064521929417327469030084957936772939618716370264546352658637232473368331250672572564655023804892269979950400699535457362176588394582517873517414571658455370954503823416978321203578401514873918911722175290268432526563110806935933483659879283972328326469497583183277431884215496654502091967862554078922057954182550002652749214559658493297509735201153837301945392564337332884650594182066075719239858830470218519898308179992991908914635084938848006730108622082141049129776219330631576877481236615736108772901208419773616266518164333984549332580046752753702346853569187707619453930499847606033736703279486297119785513729600014598016633291197578865202475427872229547327238420943456826845708628078327509565893310731061753175982875574135720498412286176577843759373811917944703673761320337172240119883703110581295394604211138318886366562941644246165571314760119131369616205020573381178236269771306858873563978417973242520856239410094105217319323190400285911033737082780144330979438533354573997181609744429595550785967608631404623603460391409676452334464770337035714907222693044090607836795178886097236209231342930843109960832542679444067758260406194651522404217214489320182025667201519626084015832706174042128002303875524457334892095251703099968481145856917307680435695854048129800708167466517538266410412951270842533613594589124728192024067952008816942329501668700291748960406982292779107850563422979275407504895253657355626794032024057102449948455188945389533047041473508185459584859874022208778227935762473993890626621379667980925846261183259623249532092494318044844356030662435564062262377787247477698261981949388129774820527279599428594602987064466036253637840478990241561455902933654812832257040563010404830358653325194060190751292452062626700815008065680088633776145438422837942661339412358288968244034129764103039030855248693277180799588527870546019707927878959627326311242113352603806160770469721651992125938269980998793114576688095977186764392525646394281355163529668549404857032259125183657337861599554389871208840124214386095841383309383293559846460973215057714724050389235512911641000273363338368580968343943251879399280989700224489526372736090266128982378372262334618643875193426813298150406826513674321116937175250435610368512466898283470396227215474110445850062084515814787846357786102963907816761916806233433175185814652262974997612504912260860745863815710124698504184020920839422685877121730430209313790236620755666113365229914132625193961331380264059314705777987039906480369951482642441425225021162001109437236645265761537823536161722177406676829730320103412869374881886562617086470876021421397746669978598753227497682800714090187934924911068103017340750694200529629574468030480190372179585103001861676441952686914096354407243079669847468283883678960701970082973802736228163361327027755101903064835190543144754552009965020146728799406647486009131428748811524611130642895559239391192994483973246042583672134265291588375385757721729654431707035355228382235844553164253226771562356860064368413042330373164022775836936459251794871352602438818133529290886161042950458595564674437000559668930624481703879169052073530173373507191496436489562436581805663185587893399021101531263080375548160958253888692653480825911232533782290617237377362429987495918920432362169986856628189947149103724517596797816796666624756046536685956177995040164544154844249777623740101913522872563265546680323405401699408564881924236611077727346670364540249318876691587897260930553237398597066218221400221377932868856099730490113119765916979526870732711159012197548762559794300734203256146728392924881171489831136617338991665552856211787263410280312401349164134224050738933229447504838636612285481003158316109615643084872418047528964012859511481199144387452270567957316418963069318813245792474672258135875334954476163859729267193258433214349795891057025965350245266280999040173438768111590428590918653427269860639823355983040160257845666347930257838243149212075199969618838188902217116192959391317997345987564351014304422174180813456555116048970506693840944130030973818618839020022213562675060447836390748463461954986068929095351306106240178603113288274083905049500712805565781101845218264638021801926582537365560388060163233397075949630904483821043620593239861988259027979388382151255092966292347317209114491890055879993037079928294840705876033631265998976552396367551883980349424967092946624579969326375537454880014483493706164518983814666755957042176593933291824624991443506095412933996544311219566012166298497404249657659884367977126768506124046201121764012799242915321816079202664864186675572430666961038717655230005893349083366639341928366297609210982734240868894807700256949861209680644811761362921546544627576808805390574317607392517085677574386042606697234095801153276121590306389072870980988229392141978142024161931044914343018487054435288082982916938187378819335884529663087050007472891030256437287890656921339812016112219454265953819171911910949777127282319209990730451096240567001321318244656706489124720963375570870196917634243542261891328660689365614009962947314029854276660937856402112902565089545532795452625240446109047046856977511462114303681379642714338688228373298623778146104897347495689601265424533522081263156756307682072930603914130527220547441839798818601476070025138213055920495010879834592023229151501972147584422188590835846618321104985451689195580335345366446132170982742000100322987841684836754143800697348399483136311270943759935392705869551928835796943766122484111198850761517985826574305845676514409266058148138834819479569980551055134803992060004705618077465062613673981721716917885761816389857109730483699561314507933745059148878428358608793499496079113272491679526253628181466437422452746091811741494940664981113318704912970261384083688566041698865857676482595283996193752667406020395975074906927527118706927139794588439293569848117997255818045338077074412428328282795564862640555943205620272209163539348173607177022790110782759138638376885177326015645058416241032512297038373455490288079227939993593684948127584852118488762806524477012629526695176067212885993145545894966741494608911284585172892462111902438591814999249685957208753463796218097576675174444566238451096915571827621148360777707152168045744956133316615774393534125803835620152828476889891527904954938822016407460583267878271031298052996236746929600939196617236305783855971517094227813618723616120518648748056810581014846672811100225624404191857001375562040896071588211309762061246321475828005787853800758573246423481531363727826498159900296010429374831091531712522233769588442147068914330153199154120309697694144573549173812713048071410276401401178912050483029460565328078723595089646944721876524324382984589569769901989522452212702369846670179165463931803310475571737594821467019061328674810741025305951455984400245430811978885448021208822249741851736935147642899994365462725063778616471654441593143885813055088363770615183940239509495647211119467107403768036602145891355684095204309660839265495973137681477878926570353075486203258398783933498674576109809360942231285461651346779770909047850186272295591451178261738570037968666754684749028092910073746234761747490025197438663655418790903842744708476935236082868818033908180190948131534254427210183596997383790282510020749706004148941578553015638861715474395411334280843164628907605242350671927151139883939361653647612035910794527880776907178647984899804617116052118486563481408260297241434959601469304280180810524432308890385381005939715646569985551416879375334136033143181326195314676725922437442179262558045533980070332294643364424392022219710649305920642546505927785862073141000420375354713770424997198035758391595337605395076226116584079163064796089527550246692346335612057161029833908249610058606042421581702889770511782340538642550814441484853227519820952294247737118840246793388128833777015353636080952111105060680328059513013795479934864344233014369277255765390180597438898820331840689891884042735358342269653757622666850140029419334394000130715345726698587552104037037162316301604498543397439037338986322407132005449404898439775526709158070615033283645586185405075811331908672762814408172808381837985397081044197333502629321974119221765942384414185489819070616379841226625737667193258300865196485369005482255569790572729675447347066291114510357810788695875105597046166645014470386673505947743624020843729916304549350126428957383737973235827286044615375369256151407116580438026548836478081712843909695466947482833766303848883314957992421430396103035814228753474544322584584201911302625921101102667475825044932763079796402777884449377990897038506708321265190529867025219725841050471479327451147225290877845747560897400730942562403618728431377127263802243129355544832503118545292951658498914491618737418360894832844383949019353422199583371826038160754483057143466852598051767823234542875462005657292494148922837300171453276219014889875159571845495854169821208230318770158269662139034107734964877839949453098900852419102351512942274950041688587860104266795707824604396473300276637530704032106677965102272174425930225006463028383414090695666573671443764151264035150704860232123279652696916910985510653004123067081119960970463738561186103789969788850371173188706149403842340031699670795507001209487023491393818881962272139372447513338142742495728775181103092313918404176776548339979836477693036654370756503184143590205257360269073336260252362759162088629363289617802549637646460078996040502313031158773750543359839609112140119705844589513399398795180222467344253064246944603353596236267715879233355447651598245237420838933788581426347773387739234669882996845368251221077931807120288142835164941017707486974666051632914133580136893970059278275191966302578071742831403980513813610033316249338557876310682434176864364946543050022027925970630753104240687048068425637925355791866317774045198226809268364978882074833428554928984557863740369008499412484508252644883760234313665798181285347409034884576880435035109216851635223053981251458058332878529676241633384793649663436534508106832709951846277667170095591587432544276618337813250470197842955959518323498695606950123742510370452143660441205576336028901186567164620744202649411558228749376459509323591343404141471885759686931045088469675030125092496797985168106377202946152219939826333672225720605940794658051742239666104398196373397273178906732615640722183623286522298378861094112971432205273256072749151208986586589781252038577273001261310651864850932066841998897261671011205336001222178075336819122372975583771840290755989308172495069795729558672906593314829067379415516944945468265650406375144164420143716149508520859229097471418587110199438687231595820256397280977892726182032163097579030202179163536611799065859593461907153031697455454843469640624797761921640737287660574491093908137679816313880661142516716535579648826087744935804413338453003470494306534474582572859808548443627234022895212345708755789884635411191091721661587043070266532675837069325320874987513728160657092833292803448670048759214266730877728153977479189567183114196643926448223095657544444810713659881866493398585203800022429263172577980168903028096802952323919636467790004505275077051582309817975253988429267449113211526405118964027674835840876339960071492146408474624685448214191331085768220196391859479229400859698144607658015441403514108797145585003080226938213352847763832531043190973824780921687322928876328503222929494257781734487655850645111347565383389413919638214590557598201787544952169746077934382988261931740197119412491872296778837487492997541106888343821694435945865823934820707347811126561265020187111152354670910316062981576817301447213504700533397041395006048923857578553915514485747900570416514889410935401261414868494594620348966867496937631660136141794499583299984568534436805955245736361370443196249423034051123092084837139486440510857036046805984076588145962517474940254922964483065164066799649604720894753472985111412661673507619040979398171961841071345881890425985947355381707660420619421000359687943079077980767778722048758881308788612698569278139224297170381184291078837328690063403501914978756726145784432508221791571435459254243944001266388345869115198141369545580716782474391478668388219688184666590502925553483897083974628396747044320135475338788989519454457138951881979083267209411628096805182294402835832829612505213266614853502578769175357233760565451338166120333934122428741976304220554392206414414281134854870137217050512324384671949162109020754627181432474899105417574655608570757622263935615918547305757502870073580250595383485752466067800647404811747711340623359438063874073533652267382255575749807560619978566705402487985668784806348306238169029668385419863668447636852893376952143561411109540983441613692281568402802039759774771600074937655261103451098333255996434678498257198053980344889427638208741674615876203128469779412519539713341939595074422819280069157326930719123100692050646322053686718081840417066556467417954869263113094200679784029110496974350489130174815744529940352724812480043218688130783970467557870697827104640276810346533917407444791975259322936002581238835764945441994911521546799293107830494002837482717936562818157405013000659714589845797820192019410495854500896347022991222928461723264409863468584510054173064230433768912692306641992750524448585650825555290447250025929681651118935625361728925969629837252390081813634554133700040368907379902711669300579367481531521647730533629120778695091745358432658269430912016574198897547917193854437245642981788557135739785255421923202153761113643801097718523244611746312160212596940276430046922701490648627298089593605105381607977304930104046243994892941038083359793137371824407572727966629739380089249057413792011826834428075811103376554573078615052660023612033189394382849463672128978716889858322098307856480019572612911693588725303950295463149834467364740565940247425084201571898370724313513048181071107754733323992871175998403009698707586014052491410325003845923729488902750698962628076454681752198541121296414388239809912018903289019543239338664264632020982634651803871846456731584779577292113885769955620602195070917315942442497089527621475172516996921191757036034676728887520674927846205822139972462635635720151404489357271397106082011247992169078701451062670357927009472977277559040766774201255572435719171179290110429369701605265718347598244741693854235891214326014211562398893597072362090561091552686100085705025513847743877509473174525264386956503858275520535422170298569389200025056929108667341751634912122201441202758478836900301427038633164749872378432359388570635401490260319218079534602099784532248636903056935474509408418823596365208136789422544797015206576107259384135276778945341560620422567335186897054673436310969749993238025026462622972784030387213413576719818427600338343985453162866868388921112465100654676768560326850908056985375780883624834222396726321468817624982393865648884800355630900530157359344401080001817320326306157670231368037155688574038580024962127669059330372183097290728789533442127929276971285397746677295767080298185140054760841371495873194109575423708748493978643705623639399995288884899565326081917230316314023586970295705372888827549853529532141929992576773591160526724381253527459684142320805802248782718642109667366898333091976548435333643813954260141526900015609021184228598658251987754382934641730824244234591843548057347558161407654355822946633698581031778590512596096935606628173708870016711495130011823544515029958844117512630486690765637655300888844446989216448513994576797593924836311193182849177824061371159081983108678753815180208732240441543439494734963059750546039468451058897359595007937405760293414207114524313413202249667511190378146712134470359074915671290219205762807802984677521621402157271302056295402479678265713394098585352413935435389981043663342321961078443291145574855637294978150829739143515079038748255584641373713616627059151946302737868452432828047846813314520701242915791983034550817004539488046140612755788574666929012292185076075313037414931690852030384497644598261598365496673039373634792888714050422714327345474131439439142475926405536090091203305383922072825238370250849141075148504558836970926474646444547001631663687425643866309592560559012842665172368149397229944803058040713257363755998344184367104861367953225870563412024430522115327780936061738938740884245228063025048251589922679425447068482206067065958405289609640443292837630367054342554361293592018862845652588498103245876304908140120270456924728734002488758346206122782670300887739502385016523832967455223053091589818936502810057869682392987186645529290927225688404478091685981163975719276326483437013174767722761123504770074653159406298560959447720557933530466395111398483318810910270630344252641222769602388930107565116687160091391803669730415968281001613773960208295696258418531508949876769123776830193237828933244480397433331466600039513406635679545387317030025056089750859915021897086562938956111339307359031629737706842380670832731464213117935976612178423906512394596805619320799354444240807375216395901549886009263323068447283200644606387766746918808293482586491849691069549221349249187337980142647323298297608319791328316675918244630797286936810727508690265963790883820705983876997045567630616590904127889873383489534680600125136165772126831760589143323876923812051889736245023264112624446740028617804529964503217145787746426389180381377841815377474740715472335206194971841513546541570110750636893665617791853631314160316525009047435350488641230396268949281956874796954539238915590021900757810809835121342085281524516024031258189450475623456596363953385157800899604682413950053900662775234147829269831259103641871861106980113942672725442425295535392828283627947926218931393599689818509187975194606084066997387062787414334879783619224720279194613033517542549965947736563913960673892946504547688643030074283890564425398162487484160599024426734026174983036309611837044218406908234534773614585932277062450672912533214986887066995126035569402538981751544301393880522638679967796259420908897292139814214507212112336481401632780440516662427274804755699830658177014134837561502974829814688443627795085475008668842593289953569173968567632519149139704724263530527480715411051458211303531995717923334695156473512378220317526844853967931503858487754368967011592100469700500465282186056172044515620006405960749446475627752084925599288990851547729690175345576028535686083588506836540404876125390575779919766530148601906550645393961280190187893616362910253213762914043683762173306296215724816564501269065065881478687911538593855063748267498453583845124007218049952634765702686193497987106615709884157889257824013999889145501063722474599828165998661015408013222672170305557323376583924369047427478796350202793226145884554548014005059925124851857265488337735197640308980105673599788646993669468961434961936161870983673265889693360722307780633293056642667526590085064429758486485087181433231197660040837206418603511205192984453061428547650985190539579805986998226841369072415471300752903229113373513495372790358083671947205428577342986260071616603687950139251383058817418735362941925513046765840083554579843104300952450302537541235928640695479553535625218454770589300997395634964463959592792682668810991731586593210850242820798991247002103793357123349726961938650472437548169088954295122725270895543228796713865004409061043779059613936365952944757583192710804405794685477108824602175260955675550541451094995952412548039450528370070267458898882618101908268089203451660568023520316817761541858698972050260862939517713906811459626169879544694534403399220627952715160088155064228107749929599615456945476196801011655237727417949799912917439202028359049712116532595743256148249870150837314808366938557513613222869390281899062979571444003646835094344190138605129932854287056422533824574354693201821668779755307958233808193251583940312440202876682446148253621178173744533848440975669466255112709148913348456919530272828950408316881799670336180275976387010965833207756580489643336211218367110387082868647838593027684303638566856017861155939405908455983957637633932551983395945943441192277235613076225338846661804738196389660663514413674899965639663142402181201718933463364916102492459303943780105892753692688183445806991568396995801613034861956147902117925865159381219756500371435797512231539499067392244412960270529714356243216467685067650990609986981225756967082406068216106788649889399604548470397278205663823634516014553901296566658823362888152076210726670683042367785358615351626073278785193799533837991261864047026747387464696427510956410978500187071504857259508575335104321979884114125188884003316288345391667390906877673638757573170542379057326228033703215985779328670399734316112325628170977915379386146183347744328456705381241215188212117453749616913822547207148769293266923404316216585168846292572743419534340457162566989894486211071878707518023620483864830707792175602822582462463298933533504198539388658972013396426260509224290661273880037928503989476673007056937493145069006141261180766398448881589072171501415690051385397833759462174019049976803810727281020368701122600413235163872857853416743821377559537349202126085893982103555873847002065096923389849264570679428591605844987310601389008091241180518308942761815356467536669064626017699618221067145678262217642611162767264891042937987198805486200591069475169267331604825925039011858433180035098447935246893374302564081819048143215378426751931211892793029228214063273067406630077282445976701412614680743595820212238964785650698108014716201397490254778527542665387690410768894340797824929889964924808859835943013415385404192622484931088224243126356070524702045885154630006992485478323337316877643339773401711401534225778402743364443444202200223913171789508032982706514461406150679166098066542667185097835711351089396670787591602689081018828731057705814588569543882582613248068152901595151842735937467707791890554353579566158979500766021168494879611156977818352839727773339282484159659824076920992825386254073731404422253275218099342965545278520246591828847150154056646255858579761403137155868374914218662210317019001491909153930515223627987436273225197070232602762789103754351827861566847711741021068797790046769998462598430381494503197488674356649403805765600326369081952859904953142290756543338522348580076921214302554403591477935023506796871733326456550209548594229262824659179320875937159163611985665353144911070687314765971015762290432480050333113748294597640845553619307595666506194793278863751570394048017406805071915971412273564410414701185436207216929831166361452666835045294416877077696676996536252073166518666454745426012099636327278203557792103213396386238653966586144794620324931437374101670194735486239092744877400171368182700569900154790580499767693064698386002638601229531081504339492240781534772300540664031894593880959519563936605120072565487228786248533579265346188363712238117802086762461810551462107947254311398436844987141067712679813207952007628590098379485176735787140897373387582931934652356134423264072030085187070630737961972069826829844732106323986735484194677311326482414190957308101297099930441674653610431289509930548019665556683936018669479077235805405112142502769663001061223470647285288057931130464489706036879617579601575096649775581575418346056172317331924123472796957509109066134606728503020241478674902098461633754984244159446997290563176222050649312282220491533104073669763595018307511425857016248130370836763274530407987052107928069868832309170321730338953604144799817972676939723678421383624487431793958207827150530831409618113822795734616684930992830027443898266686689904330444328609861835129921212270202043093358079892413207158945561480722209793570380630094572447907588128156159143077443802348286878147054739935679978733542162237374442088441606242499350858498126070863687459105695529336416314712096707912787888291518562204867006211612711177771261341296789986240556932947713730240058526778329706496667427063499708772818194183559488548749030899871922183306142954448327999091639928006546639446393759894393236629035821473793236235442715609630684641660238761709184888233471978559336366061866173626174356808990469753522551509315339100078645903973399601614033169218063872129641679248598244306532383678708542166675300718769503887645004385519880145728124112988842272915742194393139450087339554222359779337278073544868576145226252094662744690962236632398570374240264591910412895053875113386198816920752265099150767902377414501034653019805922483989365539755615460698290859258137032456726282733804214104820792637257444651577484103746631322198283236465752081546474419014063326309396439416309497623377044712624265758383700852270270608164183979330006942211497659341949065677583793963203869776453062355102694876637247780038458005603255619830454540422883056578611850130898797835158031495473034381686967809511754488722917412149007378975437122770165978981547692223667064799515690868382633392729959130203614075950503931613899749505925472295390961117777324444352128584907505278043952281144559491852674259049945464733921064054131159679168902778634180821649234944412657430670781752166415120447337469023714340526368478901502970837876414104821677605665755742299345380163009898554485662891840732675403859835177488172734354191976278465178723002885309617032214615826680417279156799448350986292141612144797821943189840441072028973959689732387536194101494627467418860254691312826518317497878906219725544225951356420965499624400961943884250828043006149144118169984168762042215830233665987332436115724442632178353249591849224487949430613691357953388285493454028294828044193487680167773699478636391406687661673941816363880056719741125658250381433215242795345723887998417560851051368919586434483460066014075031679894999153998951907630646746587784846303953896319312560376602166474181073360478118199601709569547336378339300129481128539258325333291878359725062029666089027534467182082779417391076651688438549682914307184848569016468814672474460617650079786507061321114753281673881807709602215777070990737246798801278171498397859321371938657647801645418112550950926437765684433691607860674542717906291447649218849629678135333697565013865789571862793063598074694043411533277316154819855627372902627662915524154716174574221144843951143490708286765989368562060315443413392721885081328587445084879848497196202814643380963494856859381515190894578428963372391976985329862497145451695610128574296099853216498247778354990110878993082498447938208043977343018781564581034846417706265171520484804743045185417520426664131031064079884172765836348952409729985616285001924636828057196714330598621014060955526599679339069642580358028565592821234706329550995414899766238716915868412932859259899922312557638774982251785462845014599602587364009627963344546041301194230557790144273947904103594893509510472967438003962074764053534453096046042830752422522101636446248324929809385221279610362059780930837330892334832902863792927363026187599507517110585073107065386708842490811848398248654474874049697490259921512840325781775054575709684414195239457475799778101189980867237669598841871038639558168906771324863039123455730277725890491753714572255725152577335385783865347957256916128026010702804459806222073089316043824205673567062681355837858231961567432544277156770219385579494124949279915713108078698223212142103919900702076329531900544825190989998865031185557137218548052151551245010851795497659088348889205268680414495448500973502505774856713573728448814684623535709614466981554804739422962428120374540870070873241268442600036757738125488757995814225676389175575266585862096279451966603600274376710110817923294443717190985517397286978532994621321151901227522891553409409692515642200256209585700192742885113670555264313072172926351541795320977685646117859216775150449086045994604431922335877000856571940748465508597074527422786748811757663124915583612095308780179746757130083595620543976531669652052958357738198465603884934263444571848131629527481898578583522640775952243096563263241250394799293135809742711762305651864715184810707825810169601356766120358639014665207146598886145861268073604769351373325941053008384659402460808366836351924926243177481865909734470792542557026030635612865996553194983052752341798118379505953075416526834539351800012510917924530851724200335335473716723492267992164998534929968064910128497334469088267922846357343272856864656278135194299036382668284174355717217287559292862845869179255794848291213297990171252100938679320125067372426405733961588007298451141598348458563529495359078777930715115381840429944228709771124420370775140955688533686621526662751628816537248363791827770547945626428505063795397268923268312216060889506150652569914394282985852806448487595058644582624131722220150098011986640192788557522236881287069672470666308248756470926466286766093379150552546287996563570396991698206227809733307050406230887264937425862046256724905422737578967973482780273196375347978245134154488392442323165721486952078668923532709086783185858888158000501182513788426005865332355042498902584192361279963581807626512693707964625387490717536191244161283950733437043406115452920094729243251950998153084882852669680312721115370187136331537984785947145558464311180917957409621317800099170600370911821930581572939451393283115274271177525910963594008928258284704371135450418105232024112084335241815411303762581825862750788023583014702655991820777173721463678870569844929736257226554912777381367106461975308475828087316024183806072204263975012514465770812566804909560495120456935532716664355388935086027899476040793649778805652064332756505705612102922111303722076224950428165148472471824587892962303216201895436895315621487473836636374528538020031472667359858952784689076970876648418684842003388326966006789377469058440604465249915309472499564025099054562839926217658339191134542583325670549291240155651783746888221537000636854006193668395445199992770523492349805298878970056528630301478160169864954203209135304663538166650004006049157552113675533848891296365963162501641992159584332100306702543497323650984348177036736173483643433573075318469013607218293506513354196582238581794861153878804634176072631522877861340651531841595704891226534868291534819307394720816269491191370381162591748792052711787212767728393430413065543532594922483531120380984625602103614832160788155896530348052352372234659080661766396430553191259857049744552487181420006454999987429351764263386873753028318072709028940804651420726747843205914424502412794622066221942144488793684546354946622915241305264605106679326546488149941191883086619654752275898093418665247026376118406549778811064251635702730831233941661303500627427367869864276791978165548281217979812362234907448966560854545431669182946231311345112508032934288558109460925103112558497139475736495680867889509252319957269025421820216327606214732229371262468704940221161519635396018291347522506731417294876476423956086550934829989369922214626828162199069303812678333759981424714259625506103735487446187179226753062229469761720571158363443583374114167569840777567695191571522787630875242926995413715029669179282017958999533531947789776259350019471818654672954788425592562505221314289061225588955210434850057429676933176371346868800720859884859014689896117982341420607457314012036312460017688624661917358662479781445015608880257740670336478749435372894554727969716320553579053542681764933238110661359802113677564439780137276326027505812164725784933115006301682838344272320172167676508859783340968296944746688223024683136711326452523384499140725739577861578601107575352359565364403584984846133488676616038907474840765899253336123525626840969202800534025641003049238174219073823789362001879401752643811161655223398118891783151627739068214030013517248755596027532049744299091274035124533298775925133532907593457054442983166720824833771435034699426623849109885270943373412474476107938543791761894098232944285223053203476927651093630007078396516110267126868125018826082892043580998877159848636928417840931068315124698119509244072489606268517858153490208926290499291919128904685226345376709900224011317132731299371129923437256785059624462938809794950962022854283834804754185392141641634970149832033132051803697975992748004765266292998600299852832868615789573073466559407362107095615608313356893500512278030493072112924455746872012225772261059653477634077014796531879673930253398520190960712666229174831437372397650268611575620853695255954551181687042908878375891020741409963292057237295623939859453650970707076490584219627431454287870042840104536427891049307264913817226922516883551500953298768113964994499294702752349575864004347052682642314699967341033367127592487840279930086753335183067298766048476856380062252345513468409506530493113417937871460984480449268235151526372676378671585501814820552532162039985986983614953723932627766956136160065817378937035800320139567052626097520147281704083474721244299931144388565069792502042541991373511055715826926021187828949743604701798515894856544145627762758261539236502425372314700799914051137809689138279339054472747661605381740846448634042286316378752474225308673257569682547599670023189045396667602859483757122407501738042090826412399775788084685967029654390204761251425976799570254900190528274610074107548839244000377487596970453596592239767415189008787909925300381425792821722524583402595305011035411897647776413631926482039870089398802503351965621778127171102154740912265838307502660042391598651325044387416859879895308424172539564295840320306413475184425600869003790077022779088947623277698639875983322180871108250865751922417475258370936904442922338903320465565326699119607941075192055285231529996661980581474392729800911410813198250027338858950173578701826168474137025599517862129587759877035577136158287596418053919990480119464835797028009578234628458073905453329350157371479219818672734714413858691143076255446917130781206753641145236274171834665044855832213384372826555178973734491112764141936714088981508785826635392023076871806651213255241173668102424095599572294054065986193674499932107723830446554103112190994351382874171134387955948352971995689921135938213831623774156318617171137445569661556677429613374014545743824387977505168018831439851481071693656746117492556518945359065161519035414486310680880786782365755716992486638699676486271389031603187517317130319551486752202427675673522359729619130160313346423689074078845659276714784728961543192035545970979758363755695665326391563172080720064047655681974168521349117285291438125158176098659051993049922696696664217673278968078533907333563283793074116742691982815299291046077905264321618815376238579724269705847212184966112504639933316262505028095461946486363295466883977035209657813173136328403924162519068400938761166830416585912794197564392592406722555846597387497143032366527337087998312635070217031755272883799527674830794747918363908195522642984994876608501357304118990688108725983590278101050899733166984949882118876450821228058411467484662394199422049229049204785604223722871868262651221932887651978659371161873046449460641646514587121271686056811221820937277989081483127808624517475857699399144580034443261060062151741506040373079641360008296298393189311667322747372366130364997053264399190021463678183201973304498244267546105757829947678352691458367627306393410084551791536711792078964087618703435367750831791011178534043826766948957648760571377167365265657028839738470042975151935091526849798136775842681857119371628209344160605917354808543950454903877127323570235998501311445160682780248096238526714847685415164030556293941727339880644763566636212614907716664726362548853799860900955306924812287063247897392094357115957698349738165132806335193917407801788401964348648343846578454318395440509755651838247715425996845907807028527833909677098292006459469739633591058313535780434815068913617875144429804319477516708807965231680430567063047091312162107039672196254469538825807972296895869984882736813278837144377900143194267064775673319021997420324151616176323950318282484129089778422839696793876311250697895468975192479728758205342826159399438650639773955156343859942329579732045008549850706129315307112663832611656281832702023049363102773740859674475111073080550949244585079021280144030692298388255166999211425141019196617522874278965704941190046672826810219375580768728700951273898168527809529941569219386778795797822135887965724036048343615539420388927418376176862329391132725699791006070166652595665972296451153546111563030464483682576420115736291019214089458769294356219601335544248461216317242691668695390556452782599905977765512184795447230306622379218001698094131156141104540348942591026870455181003104898912283688071273530690501695161449381860356151530965141646878063028187321556762651889779539734097629940004083364508858673438428800073766380028400928040294228402326112397723917281142057005873460695229721920733160106916506854633374610205650822218692987719445437538914189503464140144055119706789425037686194973164188228563861324484926109424937847874562506905610373210824054379161596543377839835168466176204120219517580895098375174968741723433913124347481338782828432429432603951904131550097192693163256765726717472007217288655853123056860972093375762572769273681224897278942427248339068443939223339036871376139140193543118034572044154134638529032375432763998342465509618602581065903094215243765708016674054785179846548969096055952682988417902214832023333982209018131531165810730467385014424708052489077035426259235148090676247918938871449476541754875358936418673730098149784107774858102544485683174539070387356700978149821844404122595961798094438492357795482912250583681617517682779396051794907305061002800199718781294309001434535170446824057715181721211990474622794513099750982486416211923659404311619367103022925071893067367756543954057083844303374269595429332569203884197461074911946910923309537738104277015258587940810569146696167932887646037328741832171120861032095963482328841159665004612680151888938206002989318729819934968082455475921675247201499483120807178985207403355761790506584762348491595605432598894596409504622200490771399186797936485082412170863447746306344055374820516550953682570418222949282283639894520213340074547678293615604768372560265628909231951460939203715717379446047777940506655019809867785430665434514807625518856205328280483450771115351254059177296411708038411548986590894560446681319315588625272410200289516277445914204441025976137664365548501522287324287599936384025163116203288649408490716917604771960087639840344831209116087424276830571909106503275216782407908099054812603798557483445504027405578873508069341496045044334487666766005263809435599574067339827798460698755992959147592287275526393915890023261810269960706774909186111914388293154548135557392136657830896330231956606109080729321027240131024898676619492431306385053857033523485124315177671837137937533055285542484144133966199331115401176301093171976704382395639218204569894297241949683795379940801512259478303154898709062704440955852054790540635815243593433875537829032090960821582638819169060610412939848183260500461180484756688612421817331603492071602704100040681292895445378600298137182391016381420198051508176554844816537299397530156242027962262806274969883770139357255075448619508940101977333239748573274230438403186239621583501486548647200298964705668841607882617925183229663846169259800912447987706255161140017677626107935706363574658323536569280281890806992825938344095333191874104408129061954679285310414570206637985099407761008913483675256178168745214556623950990547001475135730558819290373721763022547903542509620791062817048026184833250262419710745504735029693730874170765031484656477298744714368814239589293219893205632130484708369619264336434297725166870482387699937148747437422343984151670290781882761835462597100503469355928053229921178265871566454580825869847776712466488083908873609518727672238912380336054417666891467148270136503334975007084342760810261896680628264719241217298790093592191766713871088871178651059062759342020626470740431288922126114362526734793348218194281164704560310077029515949172513873420276996521683965763824820900348387093882158115727678530111787317071847394774484538272129184826583054993715625450879649629368163809005830351776015197712416321504872492491394409806425803118147234327779507966992303271469182006742024318300710468222826032192338954410680063204260004544654305349788362234823593101869017607826451210727890796008125567551597370473857329404506521561791500744076051280403556507919550253038892583615994817914175634636415386135279544335370349916873698695925054756001577583293338455938033793437287203543390693638612595813076860482909821393755727623501517713646303472274139466369676744582489526090342126032391694530239500757257997285831817437588451860945286764047138500532985402995051857035805517614033276624218385034508912191080384978024753667344429706901092115379116315788876848552102000381433411132774749148028838884551299367710974729679770595914854805974692189461702646702200845037532933146171455033831364613152185520159268440299344482326118362912944698405706736818910314454761013624549875627110486641151760272558854221098619241146862955441713511255031993849773003006517734008879538488064436840281526589892451616840069890977348449133183049586501434869590992655595444554665463627560410618332046785758065084900831883260720866702882293151596027691410850705031802462996457433447651041548888424320149373912512603545627132029520484946198605464082471398795387692082311535527953818102005558795930523222902948815741745665941082098108154197863396288460306869946157907007998468339079106139224883060930294489366160454609519302959258888461935118714418781064087456249980861920689556456280321613771500783024184297248607275181513692873564652539699942628992097086091777178695440862432351266725284676816597166619081286617013890247497259967150911912915129919885256548816563683176702509944071206231977157749932472303810549007789040177601120187373361001758001197213472827232499397205857710058757816997201623308233766280988410881073612410158619477151157736590826197217864322336847878820269757320540114369360979520872498312523660618507037740716026361817815440584951696106066344129267344010888694817036481441412671417811977235246222785141010119243812790475073578158208806941055107316997505869471731423822570138108693208147010619583788997676405737010376325081148511329793841733293427961273302375122523989122431904035704453570831001706495871311906759461031534957481199156663190812809184715217012175442813312342784082355143709937836381802010697682455829849266553725918821647471280893354886465729113761425579789434989517036698482149506285497870937335203003701688505780140799862814407475751774518776387081643096333917848619583670375822463833542501627873309356080651194186553502385783207017945942538679320140811033772422126072483449582775357170546381944505447412755866337395511115540849567557028005436526069666305778318644300664710353391558217527619204730619467750716672396562293852635466497617594089954883978378823245713182123291361178928098250390714908002649581911061640405615112058291378323509698441465573298399501396897188654182622790302824379131692963883047210518705662307958838017200494461721062797681014141240617846296550400652685654711521691900158975663942595114328893956069537684604605565975703362643398593830178180315469831391948042480319177789076962994113877158599153579509173890239994283798042060603176154038446195369999322552343051000115798219277184579309228694341747314230702567614642220631520242410206160355823052188547575082308580935980882723172355982699916773850501123108856445898454140467874213589703108236321706258377410319603989374609888181173563779074214066981545509342200082696046126839247669932864733481997373862753451503142624360196933259802159978040702848529184517000472437268024808498440392438242864938247911336639861298769010536167745311400110111499383524136834050550317410411657584745598201570720652614567463922510559918888468355259894913746477897537086683329837954412492074303084776794292496438848419622537764519173404499666589753193126619976271437720114768878081534884519743745032924303571601250252718207346638361576497764067665150973253166639059538402137670366800608007682953037200224630764176955450877441394553710406810506366778541771541136128805123461389300544196008032615608280522111843677465716414840252790314948172546823293009344970789257634776783108677715419276309889994090847415146617592827160744147593005149819681823227206086105993568915159388617602060279951632086005908966564402456362630756785329619025820854098736713316376039709383507612508270463483829146388031755631007987023417528742874176649974262933755161740143705946867622460096773199369505889393121535202907625294369647723825188365399857522399676667207466061811114077564584415902504838799425852675193239369017016877330060038302596788251138773678933788600419737933171288562858450312194442308118123601623125466282900622306375752540771933416631603090857402683619645837839530605134319771868383535046299020804966001303632015644070169708609421157697834220955393951396087465887378852613900424603287430236486938632662964024073516953153016510427445385712267860759931908245309183820371724456306151894811264910909461525329164625959627822123400394981440854133890601533797957496292725450546786829732521026622431560343350542912814997093502702788355147020148291762551079324888794412805909254568083146776075551417890224444698598976833773989544888398888364453061740055914125339405025627219284201014683632810985667908507404200045530006870271635651259288870701719029744200218405343742676720150699141008586567942438269876783000421898023473327805584833908092576905689592174903164988184889819707394780871860742305672431848153017217900876998526663068244370948799898986365133105123072757166030807799714028937693519904596343741992593457640879851032213165522106746698403882751003762258955344767649156975685588849425457293274174791218805583772829531766216908818669020103745895363215219826005755900071437487166922498213308415823009670334880957114806542770111885479268566794076063284652378372430565291960135146169820834536038812333539145380766228294401084935136575807562849420184578526218386318764136250880189107356449288582863319007861531539745108106077061718114907817126483265933467170545082414969208153278152120742608321477722913058127755212888313554738454178609979856144915058523390136994992848250342858010311765687917784205178754204057365919699108562210755400427132513968267220164627742672646001659156054214515069829972864844192034543012023164518068077995155992392449090961867857816454467977069591141725954459625087568756933018953420115085804701733891922131125914409607248597266679646381105770735484879731804289985342098860668277314236075848041969496999825116456578012665015188685435653202467468395428451702371632207440455637454659803327559861994812217034028581130591658149051059176150770866458880142816055427394401882818553844758688841589780612956817910024105320567764957383437024948632894226511081582110119230013072638945794762938357777226537782791589809182407855362763309970297896899283610954715864388759720890000993535772381046694639484210737792225826880423624315127090619762556785817247364148499700778192186833027500195505540623799788474294118896269904306365655919672208472835027649322320778523064958074361121146104604151968655421712746623627588541408145445272917109038908317752671640128671592872998306846958748674324696878000631222943290616669096486836611063768563747726881691417378699715022923118267515918676600205623633598105727977073564111153415052703765596268776082139773385647011900186232461235348735818630528902022850516408620148224107924677894579623048678566337206298303922435668750575305870164779410472656528446244351685093222943258944779119251537969475798861269519371482316547839033625932515433827502985547767950038374969892047417766839670365193066524500514609181457856238534075291857252292000747127587076983688875966754142872399507391876633408347950483812629812637836649251336558941151789409876288806150551515050680371262104298120287275383823653264182086981780825321503794409228568394008874047785738203634104404757690756168628670016026677588336169445841569615563187419708927817792165813285354590407064910840327634834715303420957934496525543837311741521666672364720753844427995945113588002021514914384615519403059602417045665101054186164189066178153070740856628690504150153849896783879073839612521031026589583524522097306034358456444556325079696600975098971738178473423652024813235332860546558865650174350333425839646544325572714065347540923872911236513919827664564075704503879335300430264397174249359107875288722507683070900687697397369180322009046987978725287214517178340818127938856051224500196233789769498661970583732524432290860041766677709061694724269641367051075124048113462232102490251965577102425631316249587303460035526813175553602196948641629452081245682720595423894042868407468199364081174760676137025293250431273843492674925676693625233952378148798306102958559479014614149146951763008665547805296562006611671045265328595044399049746783882604362825934277237179690342308983903170771997220403635475002827816275397822061533896351887849053267235913093548762003591292228574273468622018051742947688520003748437126463869093587071173094795864331897211469707480369734807444792390664055859177643153783123914971924661135374033132437063153331846039951755496750392634568717386727161538372235104229249261965514031142744201271138645938536170278447718380809220618724166529449539121858726256211432195006278191066097704597441404946263559325227741512534117137155626298673823784191900502348690933158594274657071137212736992465249235367484184281622420045162303170074638994768604670740091340715519627827393834937215839207471596741017474245471563768027663739085998645203659746274068041340002773781311140893324966911758493411296953897714952230776994339028087029369027489876601850011806001809114615195833424430382039823895842840251031858357924558909738629174865439400182830805692730526312455785473724716502350892885024558102114090300419778774030066936735515233042669453152883781906517559734017927153283444252183867801888266082401806055312901141389460984711330528617907194770146640478584048342394176951465210691318511559329213771038398185782158913001971655131140176073174387548018862611409391013996948462261909099164789650615509144112525675054481598197596444596251738220880419666711544689533037596285632927940826572789131328307802027571011646665097768581700810950178289622153584702782416408960874514645385673268444041692007996258868246557371289265442046941624211004950855994234512579466539853196403693090014710422200019981859179136991071715997261751194694856751477845405106499269348349559323434102761689106683227380354267519745574496929714686533982069224105275590570821501481614742807109610381746716166397946664103968791433837104119097997804519604722956175635397928241456222330308046032723572887069501813054404454130000324859859947386416050417310583303573828040200695162731154461614907241663138173894062904217863770077623720316890878555716609457598722896006064307418073544491125584381829438698692032284316313444266278658263422061324177460428908452559201129320141222450607003478800426715013265493766425813426709402812633343714081684715900280770279722864903372184749605178397066132857490643472602279261470266779238130428376499971011713213991732923280844971710315975558234314667258439422912625465451636228233591477589985425318497788325217877958198574809098942655815000501802623751400410123396880892205448684846578554749626523885080708864999031622795912617263141265130226457464493074637724779865687964814448857510756716722396977948412999808179887754917159945479743212670693117216317869539611426132612016195097527660495253760523267750808700767575643518954399426618361511636418951502594146170469298854001357325681912045210287380182391517286953391580905199983534338723075731822015997459676502839824691922904888106964038231006206563885695865128254952723698095873832825441246153778970695651462230177074380511117642474059160913969014206436915965206456651974821412057170782872053392245554955902759974275339798791993528428359051728139938527892166156898430014093112093720706720883709122589994979929708393288599407958045760049286141135035087374064550435999178730578035526475029884921925535496177416103959856951536774834197136631794122682574693308033255727289670249619426898669321491148000535252779966937175919256717878591198778433855331863558049880961421786522324680463627811344291018403872739038800554961404568843475879659685853556872613134862162111140820078886994461245133341729786509956498794261163391104664360405763585069357924734520706882776060144958913404102421266237373907971133904192779771686399489325091991077160094736603519951285634759476147767686145186385594897992874524619355081461397177084785383221636390332095454838721565463579196583042925628714389072322280942940428731886417458235234940648651207144921239839184673745797703344672979302895058285156752602495689038756623540053623041268420670409853223972177503083217884057786473647624623485553299834776393687203653512204224486059043365981893726747200980997870084380778251717072511503210886312043286659917167970694083658183316402632519290564113465877342836065511623928414338578831496996673663348316402195451995870564211879690489344076227360193977412792923829357545536638846446124471836914672240552533248215241479490688511581890695082036790116131989372916235143777846191039828880915126367389188409487797673140029067268733657676846008133008901515542051971167435056504671922068883917645137891176944404971729836426802150619761488015105107779841833778987307391913046751038520333170702724988980458757367343780446737389666500123605760675183390241601105799937763893713511953680840723148831655294831076038374269330969568025000299291722437951281987862408624277045724206470317874573742317903668285560416073783549072195337599165552392004585929775388335707142495468868989170391061759029879637259604488241024310597197459535158312695045757142409797152766489273273350199318515967542742651647436825771876797667944371325136187840969992197334576757120831991121336857343856381900026587097277493005810632570798971576890580823876462474660834669972554463160982018618202233193115285116563118782304045390464885264748901092330801752991720937259029751078948245315051363057272158199475004690752090849478310766276866214036179311609198269538854326105635180202727436343144124108670733820752300424349925185376398369400215267066791052613150354930207360172252379764646175919807954506419174862643150986836127775634557523093294156353381594346169236555716232481848398432517316303781759296246276982651533374339306167950165907912351652955473911832390608328829037733742648135991757468741699907024845704213701154549983730278934994510255258687991227351960306846192345012188103233174725114242004685009403841751633569595601474028590968731489204839690975119434144903879324854832875520353262655356497516982817618250656050042380559904314735067532712242822724513266982243047230038768547863610423004167433195769262948801422932054743728857661563878942609234486308438683176391577762328892023378659394020616884843271482943932736655069575875143099907267193387043393477754786978947492994262394284508839980764035522458761820205997806974836377304723345069932181367925164464082437262499885170233634933005795057645304939541451993537582018936091663162292640562881560127232944612501683211237809791621714896398810728397202582701344905927210093149678260743205631633797464897228472132167157818555470405375434398743106469990073763360269568876972018678281028281728447280727694922212159520907403098700833388218804404664633581349121926977261778926138028105280121555395071452039035725156600627502507566886393334144989127988381680118009132252508076343975320699894639900413464975835938695412496268794808745354354226066756240301645863133033190056243766572383229771092550148173460982059326748505653092482632685477417227662606527680253477192089673032421976703838183077302623230044160251265561260678433576564342010169746947082403177082336670733658112242302479297678743484140978365385619006975887699967831954519008091507481041697115021977801166724732118778689660756226383399448632247803014940217100416835625993730594040782908908543612513069953508828380515255174604748494740912209183895651554109965629730676450579544518777474641793165754767214977942669600269721200562172326077627366248880237949184952113127887854324164069545082307888990668710904781644287169006441420430042933970272723745895015554847324899934133715097004745267250080830867596773631170792170984557611345921457368213715070341884622581856005570140213968514749886386783565009485735603286310744539032269080980468764450120578883401692300748885549029869391499983606351299597732904839532138722824279769112605496744599617915583956290784890359015335012391025182150488862336559652678352290546088436111457285830345168021319448568912725608821203963117953692844580222036225260354749405118032377654189251729230739018691820659931670127763195840702777893943879646171048162230325546503882536967526345040399206138247788886986058129978353915797927898206357691772494693663104152203605412276976200789336500651855968728108609190630735575231079936371794147902188791447162991940708681016856002727732788665881290574725511941567192508633680529515632713924777552055541463048438736383648249466525053468295123263848829180154131684905651218051295416922706996751809639747968998446698767115254434211499738385232227148851278836326814449127790531535415422752218432398144972754176289423031319993235047505019700971214268641466746898304797135085409852380901848718744146137367866534383077610875730633107551527556650530809384338511602976858844665214970391942486810657301695794918173578751915306575118112379797676655838361183103546348470529973079935918438503396353376123910195259594375465295616599256683143298135661942857328437892373017306171585999761012617819131112661384266010000972660476731071067344653665831644542838046338678042939451133215163791562103787073041955856526086799998871803276043810722483578342824837242694625206154968647389774644122618132110186658826256349423952044489615253614076578195991086870220338110217582729460885845860732732162491717506408035162585033726998566933646786491840187962022952573557251777299678397821508103231334803447903426483790124435767052637835385379356025885894818593896019658451452237965658438301796419983178624257818542824512119965004193667807382225037464668843179039313623924924100183041836924277180884602645090925944414330421175031534677706302442755571842263884586067972005936685115793004668385633398992986894505223989228533442215361083188628903888726701289617902068579544584023555135171648181715365984352422404447943888541203469546528698620804553552374576297180619694058221857840142989581550539567071100238486789658306274116655969229170466931320547769743471941259841369133840130301589323132773280980986112940402435161078396910201630606261059919230811843364030713617074361501578438847265671249251934707571529769630057304673182940048466476448721301163174739225961023794936225630771233579951659822293436404307917039531781625226597765508518406690766530997993078231847231119969344665294373125505274838222577607818053667578303244689690546640455084378750264143823319153607485854543537193064523235132351868809711881663232739584933373167871180778910206549326613170824720328870419845892629344339673805412586332828553130491616125669616426453604968336539586597169285127339073278605794258836060514669728050545226288947408653826197872589676953583441287603926359194269989375514459112181088610672884624231197723857213434812060428257872233746736359695243003619747013523910641839806292359428346445964956595990631369738203599280180636939415666792842475491928479531891083602173272181637138649526178505185251118968975285482431756800875013144629747653349250508117340728330834132072486765544510394623103685207053944886752040239514710120040377060355087159401075464510820248030979504869916256920023366247438520058605487141438648472043659912388166353258253316572380265128754766624002459064355388557068135416042466065668157174485819610876403937220087355313436448276097165025558523950865978910757950232678718089237568679118295424181172955769728124310109312553117926646161441594584200907533895735516091101177307259645805846389094981128159257032702725399165832194700105500420949157497098569743825675179498915388705304749023676328989430376412170897173171340358134368590463576594724977962481721803966930196793949175662733491428978401857028507533173779176699362065844030830558583574449007948820691735573771171496914638879949647924635864737907068360004505271401427090018454202532379083759359599160587466573125120351486782233833046970614528458805415514247697379817407867608781944040641079012022206698591363816548361717247232149895298308983579659443287359239358507197125283246376866104001709255668230315840397637447649121892618775051701980526135141728078442041232486783936127258907494096998430750119731058637684075548168086168220917110052802508857336199685654974866528545183642889949278891944265688588993434000935955175807691930105788774338976256499971538699209216423629103142508835319065195801361301041648790075857884419378466041416101463496779478634594187074574443942124848887450951933519691446875879630242765810284102284215164189606419042723308630076737545496027886720517635330707437142816975505760642124815165981120249059051551260238375725783453505308917876192324781614466513777177007814917296262350573611511186436079153335921043104906967144122005946258107146864976608909433146143095860376584285795680761667154234939409602080941834897361059931499133758807783594704271009085366432886716925578199929266173991081590878500918103372375071061979373799825455406765762000977846671122566399095834116055765708581646999279271880452669600242773726339074287444240066789602715341702500463361992942388900378915077551756252583615249858677956129515815377657232397680832608377775202118503889151090461320870583432175722559237628045259582515288238503610108201782210460745694254705266879486846725847344697658508765254205050864128294200029726151045486039907918581900733560478026581170516667814257761665141725158434989408482794752428513440144997695833662512530096319203665013163616627236026443973381091241133594773124699692940931622700655684495597653227665902726285174032303871891910982513710197895019444127315070329603101332024166242716197972815984817984909463518914439427251583888475466954317335331861509239709968384425429337077989054514086427186483633080541518476609445873643123096481342070951994219248611230911837175627468046279410042619225302545233000447348324734877794072579659260295677903040731125072460516270275270118476015211179573577993948749728700754509755680816530753884192092213477489602257498579290806881863069390193537135262765010045918360101461547484277919653713430254775066674037829527454177201289586214002758358074614244763698696087361801599544550414016487435861756153498217037899154533359512618969287062122170713144094781157886182894359483987977667157249573966470949313125716380760619703224152278413563821934658157497170487467680503362236828709711972867519420146840223902334448233836513192247621367745521337599577831529952759907995305676341883416653340678606666632040547319991632008247391259372844164499771611726215484412459955803295848611641850849892880686818514281699393842423777005978546758401520473400810859555827478265473693803827157416974002679662152680822961507325788966340305936049652028582478613732036634324718328307726926447104727171124322922022968064059025154483774900745294843542669974968588886682797683806675382150132932701334510362094156961830103080592086951120224435699212332109650183575752444723931889638545775625692809531299537380061366498737838306388650701324099184918008862617487765210011830498592967843765063998484767801439027945739701346632766757687264025072238186507093987712150978120344704429748436137039267092414163395690453698177471746685069831511173145900595220316432720560727364740029906152360173522668573400217922866180751793456765672564118742094958493743150859811925316545744534461872581148603923250730237255446500890236108107516395088226304444669967457525009767683825868875133563176991081253627870836462163827752695814863721083412531136312139900054931530167548421917998957167133345550209892763809146406050943085279838653226497577649287989168309038684185726882061005697331230339372139551290200926710469644470432761981141157556146044177067293068792969300395845331577406991184227567310940387505675662210455306771731925217435795177761898813371233614862710283194150994403196754889085231125289993071540579845919719612821049854926876947059840254902752226742701846808235115527354493766473303989011049992028626940184933368280941467499374214409576589878466866570534549485981301966514900156968424410975227088887016326692459651166127642006761777095625801958558476703493432259001331112129799130480144749307370598296667984659536601876419530494045921111884445574720694247350283829180978941607870475790229710763003869384583961770903020459110461975303047885964146729061243897030329323768596492942316545350964803677771559744937690878363730751330762517529890781441774062170665550907636129486804411697576653872670857754580090295987722412819827393928051755018555427997553721184053311928185718582894183454873983964672985454145320808662355058143414242106791598412511639192649683376378948881842394519378915638058350407528693340407069155744752586550344743673534119351335617252260738397664141601297363652334887246833152746609434054157205177853866349100603013910949265502384298100139384909115850261257245129720732845484532416932211860162484751189578115482088383806313870430903237870419413175045170752913649892806050719591518853637369295880099010483978811940931478050052928577990179737258879101801041565134107778149117345089968483751139324482576399412301581247473507421508414540997210385745851869600581714529921002458474750005462821547201018220733477253010044602379008953199588395717476964993477091356567571873415708773360594929239937855079443957956246322668345640602960966626122582897737450718158885878481621825326823066266246609163427489040682984555738717380106893478027878973978858618579971156301691907570623224817044560836238058952780995881666877089347685488306484282479761743258368287159005219952602472644523142907623604080753835643175256634988471905309521333883794523841944781632434197898174856835312521161575986842328598538156850920379073035451216934817653570344705623651022270881662143974164784402409682196632800666810933339073533537997296876702524521973864270777567048209615114860654230318783348345102317762939178425534355759848181619871120413557959271107720699947552342460906580138630460030777060491208051027709683654705519484399070164843500180640701749188944246937448449443923630872916352650096877245383787650425577045538937631981314657437946422662914471928336203265555391435113510183764369032697701057929653092667150523844994961426040577805989520228974735470721693811620158710584458548552789779799927235569052996139893300233019200723186515564625873139884533245703405805567467014233266440690670937752302877158754027547305734064062970900715865641005395618947916790275383275265103965017139408897721447278625029201177971529431933440589128841533484588539193536705171121963948737759150518017810743979033404390920144361343559596586267862665744296684888605537804068768890155078802464308741462856659027964344282783261191479251233561840788878777571673101445591326852077831566218771412607832953611661314833547953098271208540437846379781395380302685502891185990837647946955086292237704517593374775175259128881079942844348959641453088343171124489206645197721061042551619682227637684663615556286392416966420392730770518229666907277457705645367134055691195600200952353016099529152055390943592065751347439167984866089731598783714942453983042229898775143626038227172722306339977499667544763325861975941560214863103491476432171487921419188879624252612818960318918264231012879926460842727486794660913277067339244505393641210326487042975185627812026476064785836886780591010766164565978420853068365351740206797573023736445893711548245959695436605432093431531968446302369030168242627192386871427121971884630010225620433421852587100297999701082320214040050972102055006657437031749870837205332605047410587037908941457816891498628433998941179202760177274830067867473380605229624242527849950594318235566801468004447337914105833839289115545845715715773759237636108808349563408502442598817318543910333879953673186037268129877019788999103632834889664265919883919460738918561088196183860701354392151013245776820902320713193038360960785452549831555633839910056619444863674547957350711764686324285222722790275423664078575372878915598455346349097564372621620035698669271542065948029984057968330615014690247334154193988066686017457303762607415792923960917504337763786142546805202019499818439424820562931580581859741952417162318288970149253294686417509908310435259175654130309595856258963215406160516840318637459715178794297932039118493057871756770331298859042636989637600324527985215761076813163207335392402797513267794565810054905879545750451559179130657239097865338127423414956026649754086334534294133945793238736019728512974900734381125882186680686127144306306229590143861131253616751141942514509072394539168781871690001571077969106100309683299214553606968879420450600264030823143891682818792270044405240010550896066106921917510163700131178375256895526450086627649603983821393858390466011268550063695457098725881482906295614894499048985919560337665939528449911241324922878980574505582456215793836884334702173599685903717815975700465463024206693499760536182831671017210394988363800827027114943617742111313554069921255232044700350162530615822531187342987150536522895429875047741326132913515130190392514233225596375953541585564700948763167146145754927095154963729821124122484914857688703016379058681354989861524194535318958102790097382079157446737641620744186167983607869358097774125014929225762268649978120728029508754062498537537997122735310025348854909927848284155045290643916545480160142104174038279304973642876949714333033079783445045392631136641198902315892337638374545644828856963849358977360758868870401103493463199732760460142980546066918837573084809084759314183957009438576622275861280367090842787801899742750965676201828119295170383423848269614071871319441089789999244812524437620337129471958407754401321605170261032436463113905248830920317283589734286843471796830237427056113815444373597722975178807749410546182340229706325537009856544328344874851076307468438089377373238670296031698350955477329427685226297538203706159660155287221324381112737413307789028275389500730944650952082782134398787537342539599454860928470877451514920754478580530628949300786556239248636799189092467541710344388638917004432702222934611470557586375073814485082717608733626515502835827704435175484513720212817569003580734241619590039727823116004843550567893347866112462180193665737409177548723460081352966652737193825099466430352408710840224213978231849571308870767521230266482233268626348581024766964135911434366159831253696937289549006599762440371031929147958752530755289602929996231626352054197561293971692488029975341927200433558705383889455447037163388454695950103807032854414426035862100925692022683783335137556011354639299392885942353727715040057999570908031710484869072240400770586253266544709121338441820153848571910558067566263381534094890916885451943496336086809113674521107075781549411916549336092474213319277451712095349924685692092592912699003308569836424365788828976615442259587827542816814266047931876531323759285007412760006139695930529155929640240574969356444052061244444590793658156911008356142340195251232457114114160238171587372034648652126471026504459430828874993198859729182959635762724161810954358593606647831893218160133472705772023598718704016275101510691740438961312170775869064698975397663252724316822608210082761900761125652881784240175389431905074971279817259697542188729636151657730371637812356913809851080627008041369616585250596675748768612888031383770452401768974272026135240500992175695832010197746496622951629586028954488823406006308304837906640401506833387779826639046653918980935507742335800844043955136737828967636649821895282774812828953094734450341311666045239831606221657491617859428396464363124176638200600434514607900864968674685533058223410218343725405658078941910711329753842815357106473764402239666275568550724239468536448746960858495997565701373919449565201633121915780630447804979913598141767677412927616188768094285100084628688551488732365767339387877580320691575235958160253896200512558084846323409221829091399707475393224591087267557205763696305066156571428126060918424155050420513293123396723373111555196848465685066166816157164026915689644789379160061705336823016283017693993057682503051962611752502490901742791673358039080570857337164056762775269450799012243789611877898156202121025486646363637425550213713464142598141666846199895918546745725411333011530016876721509911663953860056501396744672307690622467751346702349695810088465705886175960254760994249326195386768947258484418907599950056565010678603966803075892349430580521298098458858508873860226750764809960949073092746887606560938073620380500784029759053031697727259565337635652989350397138043850033956213331554510061009420304148526604689503763109970975820678283435100867694555401713508186800615798631490526657416475387235732524859357659311954557990875584053005440611990227894487187359320144725519792055223508950561828559740657731399694961046771059383819845497895428698392106154289753993544263155493911006757672232492372959149446554470794752749926236812853059806213231725636274714711481522251837415666954187052109793835731837072075408972956916717057152940002380024693967028214135027989204757417571276342871503048600075970681020289009398088310811780325532307643382294938501529854812810742689899477990287661995913091248407786378540031618233395276474623063127269094941311040401858887831819444313519931884371307286348453929202762747255964545402543829553592650479940360065155474908969886697047441889504236604850131570580492722850841580264561916739534981667820814535079524367719755813247793111788131922170864523533208776714398287679811374950544145808478406415192682764103594369214910016522521568759219564114573505285348093430109281442311873770218984733617209581876012642151180571157380947793260033951959188156275826548217647309334006996373376429160610196029673972048157212547802115119925768364054298635476917536848719063913596380880198943968025750200353464719941754507979958359742886154636162116117528205096109587915767328240177526146456159405158170382236614721540981028703636282971241997403485632913944893986864317503086740566053399284626999573261141088248139067298291944576115443017249613432989185732469357335340466598011007050215031221148584460711372357057820349077476217904110052085260318338521793397972721544183628413368042734138681767196539368175079134895216803090227961003335665663536568458298592377635685709179927194994042494723464334056632170322495878688887150083584563261141910191960901297600468542530072578102483832969338008616790436704985315659767269681258928353083121789677127048651469481013854782034703965798151320388160806348421031089139807174622818779767838690638867612951395865362408164802657196727954735081952765738334178314330248820277085574556971255326699769100689102405399764692028503875757706357456335319905940886072612650429059887932129726053111605526285543908791923035415150478221693707077314975066820112032554478936751910077943183250022360974820882468915954429500426188681666505880806341815228171008266423087738382223905762342213230543548531919495417777243240138560984620386450141294446777221923767522640185055932378510351516525596054364849728981291593772864245545557028789119565438296702232973217086003119104701346176227428200354034451990973095586871727019400967276333214542443736185589977764378365418760138402175688140285013450875841697307516865801529065519500130847665638038727525593153484486327414057559171403056642473675957360834017967266189232014919404445081951582304437576882702153260649776999097262548877132914300352743659812931029807250076816970438248671068446753181961766413316192788746936083160397300811504364369677388937226112172672299356908409993823714658045457331796747480814980448224145897955318662787775695570550998716572407829616325603525548783504631806396900282674624673500885061404462258224335133965773077763787111652431841229187534725171792192689060249905727854213933662238731508228799270092026228771771868521644724690505951696931668757563560013690931539546555087807357404467341089630739269630482971829137397386054965055558757294801910042538159726740037007398076447210093237178612294400038210600510981017654506956285149585103705914798473898309212891361757343988363624500742945695168543904224325070876062435385417514176090282637399705905046110766215949159698014195026044562625053052377843119124880892320880625581902592868549616606620668197843855072013630329563964801308912360641533997341277711586584142463253051732188817566578879610161001768440100257017047675201206913296420341596420003656515609408836218020030428806955531613136425337086890046316480031713365969858521201531974820416931978087344176040817148388577453825258116036701771422740948359122411029335946295212719159405862224736626519979448866533020182094343494681146267298793526609062768703418125429190569637636075375268648669627780947084809320223536815862451069531942710678148323735031535115457459147250227158694462330876611802524242300463035329563174121846696125499400890164194490414918819893138980952114348651494073321068667069092249729963440324534804345956570232398952832883931306146603809886035444293290081612539797967928645464486893467666701476599998026417192502036082025438029340225317273229382268524690446192476670259349744387056009367636413770765265965529548216724760883370029947785022207237458415350560973188870246829311851494742101867480278394907388386419522036472524084026415238592080032595308461103907612008788978616598491784889160027280011704436565675292061951938530296411286881940433402607157787471936330089638191916686918038659556143603707890878895522780305424371453882256071238612812867540507568818593929109577368325601490602000965637841911391680653571318304103627791411187816403276375610195617450023075333237697896997880037482579648749545149532895457266881804560902719834748811867561678068618587800660042221139054921318816810139194673241234471949283475649626911455054343483852364463581012052630088650257140729848784961224090023014919250813965670866975967677914652667701732050942575003610387587673011140013557143387217865300103880535061614863560037599843120558644541229921054880353287440218791706386345866820437877822950003998165024351270325186295852538930838789060039647176786909720247930835408197455032158056557895640391702343873608824512088447452680605336811612224874014513815293460505455178100725504772624916512944638359094747367562358669231996365760242214347248249837613446238236319902691863154384548153015763404757488294453626699064901740682249277008083794881665619056544600791386483258322299893257960653109155524959417550851389345440104753449359677444642502954984229303885442652435199879738388824877839106022825513987332404825294217129668342203335396089309421069658246438081341625115299951529539539429438497245866142207012887364741482060276565597575182934117502323251088129280114637625891404219462484976726306888971720176144427506638284063861374974438038676185196652459239432648705856495130911839186276331982324765680632410579448206451057939361214965210320547957311795011994275346917842915984926399989695952426219600627329997570664820446514602554548789006306761276625019801751931983337441818835479132048990830855053532580769777804870637157193482639978324975756941535690759362233078365366449405410621248548956472767429726362732109204829661313201777051257847013130065548079627208307978158562595128435835734705899324315099521565169469894928035822298212406458105271531598703427742875189771590722392895440288858581610277560332374143169014788614451764325988837140218621232058126227746862569597876508701581515207759568138120940966056150986479892543540499206379672296314600258562777108700806840434376725807018453696095005043999353798131017065547328683507357498135294755593632995842743300174344437557085900795078744641003557081776165076598268038694947992578039772471954556859136880616050987875965846593644570719893123611220685699303594266744663061494649019056179129879678884954876805623227102009000521143304901439060941877234694176022430193252169090843616825806550409934631520648367148466155306336438078006808208092452510074719854068542090782438553447529145358161534892573884110768724828993401632307952914020241645194271384119413750117583266602282080389351892660016398515604129816658442804081442536866788479269422844948510794884313575891666708641307809321655454569298808245359730277061175436015858231974732238290888081236128445693696036553794582631622945182029447672221553070535889642071536879083450208850306451912940693285525409550547122444235956213426970049370273152350622122314319411827771056593128311097589455316229043606545392007138004595504811101847833636873039249622824136859000475802264130984297013653627033692026397904612324455475306334058041398567595871850542285462339120961132471590893678241010320321716364994423239933939022928308717471012769295674149749939343012074845763966837886471044108564996253072411043559647288497346343516657381062614560497712720588865917190997583506474747157775538300978121942861182843683900584193728251924198655639286542514786263948961407576251757010666814940194620771266968256844270705272089842353658035059888312537447274456878977537013323585201545631004744039300799255204248922309281643736682078810422294998365327557578013529694067836552768920937089742337816666171635720021833295952961180274071179659957466406862137704892358404955628707168216984383531617388271450700056144086374252029171068265806498700158461510759135436748145524756876679803381152026874214855011079342706333523762059406460157205006362677889201268856085472482600174596404667133685172963046050550500717194638777378481216931477662555298965779722619164371400097926538684662845875755081454401890108608684222411442420873803244757795042535857957001027270156583808747782975367736345615761214422735854484702428482138489084443193106945214165556076775391020582629387189761078480907085890128116681326982858030744268940429997212364550500456616257718993116183880085507322657868871046241209878353007216021176284172852535043210880793158007754441276475782954846305232638648158732853218731082993130475894699293042830929905350480798025113967668335151290316415838447029280712627316240333641734738227380522028465144073698282875241456634497118510845934809966618186960111937945911821806836217891217343384574584570363288066534282952736091673130699220603611635971020990312071549657650476688381407967753926047537724235134832813602288256852973243496322949008526535127662868198016382589168357587671031878085924082787742516548985405636308244941050871975719095587295437540330527884808174613065553179192884503225619905912311248901099233715852718070790618391923251543936392024603616274788399205600303737149057692310618174630000649909595730262664278735898192487082174705740681573249642411831011962817700615928529673479763634593481404467510586770658849095004438378943173818823246667293697424025742964270413383318316735788704454409745120455630205393866497913586167202961629002834568190734134262890377780075534983298113571273899916070423770723022321979669145137360842072742914329023557752767335813905400639049507229395235387239809381711331468656339310960649219542144726468339654743482569484812733121097451833513967998132982908297373701869030972090719709072732350208178581488757233312220073026441028278305685815989847008182265582099763282747539700991621519924074669995900623137138292279353077100708238726685478566790498969623470130051156910158989348428663239375727484772371480098226277917683475019306249397141680949441828298573950142764278318346455858625861160684369965429629216533653340807090329633334664791155021693535252525168560938642331309506092807798996858576407187317182988862833964410252405208050637706667762264569943037552365393208245183485772474609222357084667274679185217571870010662125288913996755407928314076067256615386347248386769872920524243666419954133890085995353454660040797540707173892972122597934838724940146656334275508494582654317149217205328527119167725541914389747679564528186781478722072279504090316283353331885854915637502180510166801086217001804658559545199369991224048630517459827104944803378102306384444261542286227066270755527878048361921808914387400365109502323417434380181498214207226803361362895912817738801526992311195098355891832580549907751037054674240769579655891283865455668315547503993611022031096834625682709498851718947326338334710513022410820886421436675663061494256314917875021393979005236971603128286780658663537557117323031428134536031068738925049131104343530231888703179008383541390655752454234498266599551339229241302272440196586174381729377086571451537280199078692192760032079351674943917417793249592377424687997051156992340547756874442128968105590438137416757594791826066143119940562560936597761689890406143954364586097944420158217025717908212067115268824161813245436807280884433109498932788602021104939841146341327427042476310396916591671037742790627719299481906558004691877164818747871215189209772512505822207377732453302600035182452508795056252425459421175707985171785988050981364143535288797288821724143401372494827624495397413942459663722885420490675073920212669809774398459248487387176008600900667262482872580475849107432497903978181506868967951105807114525548770499249112047580008944358097851142492893138775080134378119520949812816235095279895543959746090581228275840343038277213252958287337635132248043011793697585650251068758732104529873973570756314566309719274302008445908018057634612426999902759429733763424171822781800861062554184030103104926567476325440042155029803343108221723287091862288449192298074418299544527795008151183421846373206826046582059826021411632389676649750033600550810659763469156109452427426670183365276736578769955858522890484451552825311907402294795119076963288529073558827031188142249017048423791587179156039339185775143692297630113220430962009811327227661941807067538638658289880262271308264822127760131314154793831458257985053864894273918842091110601042856086415643964239346774107430426896094924855119994616046886823018000321791759125366595542675607057699876192062084056346634998546764780344533500225777437604040961041625964784623464908655217417672441419800663443455218640241401581010056982082427451032199683854415380665640807127291742446460145366294196790256549346378372921038111929913583351083327390427655464573225921789478315990523011992893543935925158875877728176291740415685805747368986275744377897780687956839523167239369755446752003988063299271818344284593704774392836268027252460756101600145812525719392860978651851965720502083521021342485683096303057328096340631588762569688656949651916482733131440982181671046267065581249222968179169638988989979711057151188829071770478347086658999737315810720590551153567090401809379453955190871572881858983861849871940911986004933050935722187612206263825478631713788922695727520807803074325632733666027117566687688282162526422668300196380107869263241228499971416715772155006110456918199747309191739110224482563459192635033049434817539228564691570524843667636141639871499542502186860316641158125255447503811043349924477658589914464107053573555346316595503799232321137848218992318119749304664748058534879694321589289410010793803183113187442035493329411895050010130227747825094063542287313048701229085866230542645180395877643137300889174859074918347239263495410831528507048965067281323143987898430163979884608998657186721698587118027325965611650636968227655787065559139296881936848035183021718799694898578078079736858481474057280755581050762038997524203358720452383334406003353714384800701044032585155827730280434553462308610685859054773140973057700928959470254936487128765576950976897098400611972000654157056385705012940573520594773830714633957860400378646419398955993224529193056948251284027625425899532426496604380290354096478061227285534929021322460299721118733836639289645370187781111744664016782459198893470738135940929132311204848255515614403553823747115112187522956140712726003755323921545454679015284503105928175956971028161421325815321097874395419539749651725212574608573453590657601695220933904960370576754579352913977557850930423487510796781953065685060458648104186132311938714596443062190125427060717457227494917111350122657503577159316089329627341549186379394048513506849385961222518225770401099460036090674492095129020225389801840315762924025412916026780813978168180663110698682457911949519858501974931254020617408438023087791589571194499236253304030722300965287036246530447930447160268043206293011483229404020382820411615340788438690980189649354900893029833218496113545804068975600911654287336599991877646488301137431754228768865745909560923487757361079743377339849279379429001905922836189149666128975676228406230421300408966765282900638033285990091294202650654317103126198303177899541266273706197123520109769283009173156673571249598393581951123694359860104875222212036202167154182483162447602792683440450774665171434835000161253332766358975722865609397534454038568661612490340953402775159350892473254878917674606289668577651090837481634047475481172904450390706880991560104015164175150393919824698320913393683213560036257064643696237161610149609801115114141226545753421769736185782893401180059318170552213887100190263413069535917561091931601573981142892816951252456652732963733540222125285270082615872027604498995397957988840575691891104977058967347673865264122095163141108220787230746349346483893177688010834855923924220013741860759507083516769959656993738675886730036985233823309209712976320232856131995092904173105463895570147954608515652094072407195288554761669622292756038962819071315794556884175671307969435935170481162722294950509521844763856859062313959392853877921900155407948247318286247919498415803237811535552308241817892316798674045299837671527016671063284336498843676916566220400330007129685863972844009552152372214686420804081303662060845779572239931906659869369758903621789877388769808499501811921093884230469630151187503697330484875198787065087981378552118952484825548747424847477893505776178249606033045099698926131108766680763157957960225415011663118055737887928370544802931816623388000365182002129319588159240326734100109149622755421972354077589190101287691044994462429952746384479469939226218021248345386883714203954926895127263755776996802141968808504815576890158878872106804124950588512349490400104586502164488561430524590488914575388042423906783064629772244508659499676157819352129919952981350075425180367946659743754422335614458644016831951889706760597002434682958579937273988235154461969371424445074793645678820288628856923512470774940572209458361179014121408361859378961253769142005180947704175165095655588547734399952858453779464996176331111450656269928216767613011110820605970449040860270306797028756342797904327646694785018119259940627954463712766319927483810003285878356995696832416413949645806226421195410994045252739961012272331614499307767245911418491191103842039996675671676601130575768248367174665492837900585871954203074588087472954916345114957680329812721968900941844987110953989331778064163347740750138799264534294638560417347550416479413074109270147669519195776098254394424133011565664421097424462815475694040334675202871557763939064410610454399817492706022855182014097718220507317837217604890911216815226039387055599525429455009716720319071682354078561509730306015623817255121962123290201491038421314092294044268857060738288536517442532770212846604917901664631141636681811624659420334921483201195093375203790389772004001972157893977254531046212212713990406433005633439374271343086471127553921602294160719596316767954658912638103903911269780012440560755990123655356710418281109161032072554066345998779546552447886908224223110733900726419590372521484582330324242643533232815265379405262555049486791481799269816821859426022740933600662267234325836660035217121370241732856564493100828287040175398421730346048322015135726509489804492942284793580931579315832862622069630585996956905393102310272038966513941849738594999818964309788973962037902509216208128712966316674405673550409195189590575533852073563476611835293702549659428950432308585740792600355224884734699453589515555732612097546260224235829667071579782176946473220767930208662470813468704348312808041670350675349450883714169672293238228289929343249689444599192738482943386638903736556878598078431300224188745586956462656953650313593028113836747295517071122244024965316751944781862144712650223466212645809898008685704579764818042706600502689255057845435027958817720141823555471914330333010341548519396595162184872661173679144752202037138129426020372697459835972078356029638199282452623782164706778607413264568358414646507770049147508999779996016705881742913811501763464658407546544521774335765406152143140464968419185904870346742590445693054580034224199069111781064339008423660775170997491069229413851327172203989106250791383480337749219900145051955617530122414522074041721072619498569867424288324161104723349546348654381754716295217340288562075249656518146317539453993048500001208064589822973987707620894848005605036860948220944139330516567024133905771075567902400167158260907683161292660383969616705893090174671612544092992819494118410192593630942802014878182598289027738438866652611818277084756830763207141647821325095450159273444137851210663855853678772976445358654668102339565244453676054909895881049902541619283746809244992818957165187155301991706983224543307207068732731593211091545440979819946460291878911195559699092750056959450546441020046085543850437470331862049769530038941929902416595870962816570565023431639842409308595913749628853203370705845812690564003167792026326465215491022347707950639570845676700463786313113781120272164176399018324215532365892952553068368125786059822983991723384757281239097774153862874123437234359639572276080796340313480586044021952439376983697793181632023177446319559914457123725818943973089510857010816510967939628779040536616326835028224565902057464768624253681224894533756669333461046916596702406393505297915115118064317678232621139868068850925592254476576552279106005699595807343972137861296745388678705185113310692329449598218947495720493326054547625666417375005615436183231420829806200877916252666206434248378403525368866753146845961263068791994105036857098668575320282113415259641679330788308985511696690631141856021692793796596491079811920963255364111702893738534823191077607548228701280044441572958739040954495345806039827503682490880685587171870674352939876671413038106052366694249139177514407590330753803952152231859091081028845342170948652781545007335090790025722478620346168023038815187760480268673002976902517224785326815996914139611672393328120048644218768409111199765340311313349311978180899839945951134128831106155990189321085468489221181543755132305583994402239360732839070594080491413768354227083097006688224765715131883522078685119510502221023628364799346779154974261350130379300217296617686829111229651374509788288409504386821775328731489801439737138020042126352341189754991900230946112009315603728974532138699601608717395354642729761168262460022799760454601083417827212426174948835389846811454368729944268488397650049608727118115255894532168512256716004663139533655503969636693775969584965341740619275903124449320969048373080638711864586505659000118536019192801900837493740847377658650230953962366721478752663982611937879027436294208292750329197192139268175107734479306486934480056875560551993973955259597809588583822975779817047703267643180054558563700598328202876159722444526352895263018613825028503096395420987473192797218509706299475933296888291681396829524851932523144677468399569412365493860402972253753749076028339067959527361394126568843734462293271668235842558821283918650823256922482041593382782022475168656138724503762872186639641638651355001713055500673674196695508646202930145787491535881977364011481406228842390905486379142092249213021292913178130875117059607121870244254277236682967039959829539020582757894177382601327585708219189381892155243677585929143234115174626675430569769031010927902568194942445788891178106110529640050524904842716700136161663231699293723919809449927248408430364992352139560172402642624491839168452476455604108419651245589734879480400025916565413615268222533446071978483228349746839113895478613577067793813798302614452945563635122882181916270231295927869444875103660361968776402493652086037190557950833057995810457419956063965552870726802396191688406773664403789449009341728706370362751854043601406229659865486769193144610422750603315210698482739139384745434217609354092857454761587428686570568145967695262032393687713571764119195086859111450577266991740074741988800690185865998053929229859390545404779707037740253837289859458015501981579795284702467806955901759497658341888965157323402083748094694372348917569844510697515173368299164625886713439288151600794799783922979488461501317969757490371215823335597973590405165941471825202992124895312178071917215219466327364672651821340370172254054270957887916783358226946911512895034589809027362292525016894583244657159566273821525684447447184491924589479432027934576138151259061413728875904251656528315287222626514308156571525121925995708569668553247978039823996264798398494835489152408928390801927975392685523924816157975477408141506142952032193670495874492245615075033569750928281540328427906762502576124029790250648944380926446711338860547774061168044621210960862050274080527582033935428497621206135214127317122695635943358655579867902146959121383570912513028069096635021325268953005272861752511312016505740368647807194029779498863929519225383931555688718621402376770430135057251481136030440483779516460125544179152350740591158748778545974942393628785869794329703891619685377269367029117668173908730862713327826680016303028594806970841423869810199713456796342038183752674475589813622925401716906089090768290082183986227509716990067911499446224363834853246452557083732463414319912084861535478234376589714737568539826523974695431085066180824588161141466360327278069854382936820873188682337401032654669057289015551625737487868857526511190194249497973768910661245116241945514261645089551236331185497965995248688370180226878040092727626605554333293866547081093033300525557999258505483484222900974300308646183155499482856196066362069038014555873854426940792053753997829393390843890391020215664391774950164336746727373385594387427272639585247620603044307966216149830617394497706648839296993895115434377111802737147349578016980838265462544476932496314324849943893707885943718752842196368162051377408031494321205215375744202616937304236535709922929723857068261442046555148260771287910519105987021820207367711101700993821991504455225380765401883852128095264824193447144698794724419940899162468798845928245444300983182473943575201857459841722114305049075259822360221423882278197356238093401332778716702641542035824657490918630349532567106413826196334583614708801599470858582914360728661736651525512837807972134871263643634968539836216824141168147023003872772257324363213594305875683121727796805776318394972050454266519483145112663073196219427035430854325400459585618824347916642254900686451470366571810467216830310250686341120650931043615842926945635485425625007113831943054229738297597493543558990935595516914627824774532438111701499524167560431973809665593838330969183191937999439962438798838949545083160801265582261983961246778706919671246668259438889830507701299476592550177869033594045521737354659152626158953224397249104769793753973469255355882298175581378272900914119975038421870142278372650613876855910545038516034614390454471178738256942681173631193345966654951375644100022569663606590404135277987576444685397355980475554330753924013338306063267669937714739795013185539579874543241262341598799617172580734280439755358426741653270835529173231449606072056996279235832411160444845608709087500505002791253691689747624250700419719409107176977014899458338315904694998325200613208423482426620623495854927917853811086464509340470447400281648815133942370043658249804839020431231947911301209053938210850061820853027144842963721610628962173371348546810063067888266664249054385332260468062178897264286831981168491916642289270745465740068224937806683316006869734892417824836244418328131599222300023578229213604600085745593108416811064170851816963444293234769590999835633592411771155886897438334978584865248983831480876249831186916483600936542535260997846353220650707070178819122089542330497549674641770131802672962244672596923222318309031395648695872636661375779009281305999708591422260411457103430150875875201366118115919877487787188271757769874611989324050192523722022227058653498720531221727520070228746767533773670107057666829290122827916025533061964845002356792203673178386824238429687998618516297999646582810974810043990770696499178873468310534444771629464340071517471305917722249017606791443426852032795957251920563456580614457707551565062405828292728274621957232165905773550264517826064707871361379045585353473976051973861114831719591648562806295622054672096177419710535728166723427242193046142309314309647545349954052290843211774947905299494220604772165459024826655776893102328643439902539138299519371791351704766083151133694735499350588834091418700807516128608319055534716887687110351110319112100191970777173370887740515055576348325430780338239085761769511172907566138309417338851382324146248982126425067009938094458104358283620156248794453836106496516889395191288647056904600864538908796320173179209063177290104242278869951863311743163673813995420929879077393389158824683669215275863349558144994771107550676770287816966406962889245968624196269674146673227963531095727721396313115537207754065151570308381095876562637294551494130612103933055244845931191924793517815828604328917701475605907131995214898043123405968276892020926015993335383775020001756100714885713586071038817386390711766807078249548697564635710607808091987312229946104451240232467711316377832045407027271402941751179674474886147673511970928302252279714477737539098683530299092905758403229124714282269157403173575556034293616457672542617298644780555441615927334766727158184776390076004558427313741344062577590540622798845525344993258844380893628344548719088455042524051167188668677367121394455951744554143835337714130634506171765472744831337270092848092637997636322456170360714105955614033709712222319343779780796856849040747095303910122965138695940096066285973650054140647925760626928593204036636942793847293977754894437617420265579776053157497590108742029181332127357997872629122343650121894431414586908087294040677090648163650887288617593739297983980258957474090130105498809341261960984102073249874881758060786831110692873847234389358809557728817604377253437276896054255278065840277434281540698297794647890085625813359130450066019431179555516431170838741395911609997674266872863845168043375642217440159051574500572151060333247625371980141985359997758320070337176037441260006462636211509923597691584546340389664075729167418833754074672677510058082134540830883792310137258372245790012683953441624773129323281438051719381653187057503234399383822148254350302102567701748318565242048570268679297586441979284495845865475282504833895213627391297544799105109304964471898647489201704638340727972517471683954636844419408732652037563823019542418888285807554916178669950306104802707518338462848125169524625135530666064539028385698248013695251156424487722704185940840681156034390317758801875729418949727497898804169208573636543586439324907525818070947355741482191390852108091474848336581610957132115138860512983439556466324598412286870305573650315778054975410399279255705343163578514280203048574979048479139825097414565273544199897637263161235508819258337085593347172567004380051372292251886732685657633454146820258729883525804722479092840909207097643967952598818584611504135558530434213064977975957462548703789914479285600191776152732462516561629677531910985942465005155316151655001432277384714841142460401205321880624520259051475232013529194304645978317455564540969745065743124805826526238039880385480893702211854358890625823840796412730584301487637589098955089156386065767093796814095401605177155402511074513986377707729615040651453539381558842920143215077531158636842751157090314966367028101742783146399446714522005926429502212506475619903884893361945089695204205616324491147261215479595640727661991912220144642579089202610713025463155472396024560260953230151827496413238589447603885952877122029568703524084740134192800299455131562470567325391601554560544449952418323408569397991059415989851544085759229516708882870286488033022178429170370164843262864888087149599529686385170829996758092705667899688345805081984789788452166543352117874694321275153329180044040029297585560806377537100788126868843612188817632750263774722459675241973910822042783933142822735343178192490164200681969451594061466823640488641579803136677218194638248350768157804913617384316133830798013918756699888080528888479419388361300062472768915099278279712862567826710259777198956759671120210925651883721408192008252336147544778171251756637907632434467374759153197070269358652067974920212652144557770549480099292659253354613008929671296659697675721007568868673716082930787058593718031102141476462843997624665880676965562234166124644142981192912619903183864810707170783974040313242811154451430655741804508037387841342109852128489074692684637328079329552452638519423993301283449270390715866664299840572537542836449882392623386771583038152499513677723303537837338553472867014928257793005100296124944174864286853109578009878138133311622141807578853226292747494372848345299385330375136269337370682122770821155971544022400302895733043591716757882662113475946527295714568515589735063829303973648615726294670915567649014837947281539292725541425571192359624897959810552277177174438789087469943916121766221526824666822186906771849078437065228574790978460527233507298881276242501195702170489348208170225629450892701440461985430144173557120823248438478727354874976469552309600047596998808062315130439788720001503232817790464922606825935455328944110775250405695854982379195318462850128199396292301551735750421740718795844045806911278378312501013476913426447001156690495672529907879033551406596580615048431789969304434078437428202743943244082433326690060196431607906539284113933953825560088422020418807045174983646831999730913647342496591022107851797752524163747708853613771796589354491882278357943880960385201668286196805164507420887778045138490495215283406473678422373971408091244633058988984580096418355102743726095470374540428892837184261838278648867749558120470104459680455439633971217177229724141518286988739246938294980293201981374598792991264231139306561159075783399333274531717293942172245841019354425640940117103601904932288086809483833220960411175032155464995192847147608423843223943635931943734917298764290810458018956913760108065969840788673032201817669377273203038557101293154117438736946721809549824203807076888038364911455594173685436485375662704245230902753135206879283182152658134774999154883736067218494409499295833536963336855817623037327407563830054497873899769793388037755703964404683796850773216476584489481102132498468225227976581926714878573558646864485785983962006740630853568545659353163982752147095396078204379017953653119481779466105226901353101625933139788831876712627320691193111067895754863752887131069404155264050787627011486075667501361305762380485426684486541908878493321133769373755099918727117504856249802391226955772419696279777263592591876656151623655373713008398306698548190915309383192297815715462871482889453675162405727653779382477883052939484002086043418220389105762130173321845952020044801735216279209726583994994363570231996407728613872034444574632435478004935025674877546882653514248518157564170368131463117632468686416934843614166416577288417470727732130631303007049085011432261447644962059175739765492233190869289167439380136666363949415650138996785494261931305305582977733786588830944857486904132310835322857301683852474556966291336939580857960101685779953558099767358022675486099415127945247763817384390753096891470125765665759859362384186148071576585642687657116328888808905342457253689185473512938423214007081673648065904646630858049292226661723957448565208585626481882193494882874949116973652026169839239800286487443588794079310873504145764231906995485327513981898410078837454305165892307904969143678766071528163703020151064897251206511229040890968706541216693673848264838849591676134979950037366159125787689807321625135871606130143963605858267917420428463259527606092828055700341427935336902615546133161656636576064051368983869623143209218333674357416960646004933972504892404179425764276427842357379994949010322530749164501952658837705373743402790511086934898670995848911056193098314883013187601115585009849876701158664635917848747311141545158059820543611667019422796970565540185959617642841608081240433964752604928085826326122554646235881172512169649119455606176364612129251691332248903450788909616814431499028276866694251013923794663574715269717125858102323158302806037269369803443202624194140860140211251570728438108791546868666574044148239204290383871031021699235091412414779740460202246330853099677857977382629450875536322445509030485621837500249092254015774351894666854143338562016945000886466439818433024365701745835542736811569264481844173207652084521994032836303429802032585186334244660965329162269104084439194613688069524002957717786582978837299413831017688746615194812251618898627991627888391079250587898240865596632128724734798790100869806790986394795362287239567620781701251285620084752227461726975330038977396381539677995222264715031152426645966233238442099415301770100039577811816689386521396987737272520060934715867937286380954181064024931411640497056875358197064876913193582345854064003842982322209425635484485946731165387096752966026004590056968546921753101612932905603606578140465053788187665559445056874911679137622255889198441115712999080280394474933808209707229330872319847615161543033174481468628834233964654133927833913140540056306048492467010681972131207879956198381485546903557733063380309320820114771189579135567018753038343219256940330148758637008899311344941914188602758391706729994405484666313979165337976394201888474744815046406617165942859014378952273767783535657618166988298361055456922887862207428890831096875434078762631034931901230572705204521795986299564644152751553414900911781274797776402682757887379222886176170127349249560241556636906481051962818279628456964828629269112697978725287728918241429793587724740807625963706196298864479214281155360968003748954327751076409452003047161298299964258570306670573971419925496263766377822988431560922646714004903029669066791262921134948445422342926259548092209105674551159400778938263479262504178222419953040718417244789526256056191801814963742140621044854582383640579377891842426277608913829080244210995798503569344992968387653475735985715687574029105920691693332835665411296496903804624658525330909046047527250830980619632431612977847255571764368014515732679950462313115466181234193826936859217227812482830432463998466463704261894415977399169875155372159302357659326117054789685403460579814811351653625083142579478401870088415978021170210134501315910580376490891824794941991032549850304105784425159719174484242755575467308722601357923510446609887548019838802030412850799762827977390235342564946206861630369255083702806334404688812221741757242732026068670214609497495687581441469555327621173885519641862623736767003104362912284513302273675171886101123482791091469112777352636089232646427285408267402238681220804339522670369550710339742706471724278101809304506092737120017907326992243704194241947379947552193220717725808037898180846289665489219166867047510833535761771269254220372682648431128254112767945848163813766250096210815616358486990388971229404241367870274051830049544779213894496368200814964561459891951980030072085306897282598607886250623557028412782493424304427588168970348308397275278150788680765714305713978502968908526401791140628563391705161006738984073998601541506234691221784556049548741130908937558262142735094997813950550563982753958241265420460872056130162428328595596914867634020307826736474315480782925478592113316647291963860970145416212975152760015973243433979193713037786958773749806245021950062959769046846364557197243521607365336791385596159352025748055357333433175160139574668385144384717977337074572679493791123713656741223782306971102882352697392343685648443616338937079998347392940569396471328346058409915518302851604949733240698703539648455319695519182283645616511683207600336043496490595377999797251362413682242821413084836731252469337465278726930995158878425143500590144718521813652471743563034434448128617064741384787660945613964094020759806979681419167946425299701390087803526677849276950785575988670383439507114748767471319904999059086874827229634221869338832621755171298684955774236746775101472713135793485174689925066293370933827426474639030245620814586019496960097439559184752501240644321854165216523982071665672217229619679798304839858214377128365856444410609322989683804699639542648751454426722331773578956823361126924308197444139948061277875021563428533439231445320505561601250406690879109032992956771014474221445719649706804129389472427533230536917659481501968594722393066362285612733320741915406853860862998319474808459938159566455833798315699315134026560716010310532411035172480606394076563497295229064752210426345790504574322633024001420044511794494851145954729652487788715694652527487469722117520537580954096101197550702431494035854766116113660099817183696581768875596425656521401825921236590875878601537928835682187095966396846680060369468726091879669105465806102862345102886603295844578169079919119391223922390931320914595215040198653252595801847674607675780296114129642482037242421059606851000374568292740257500153144016705900029156132276405441358904532280910344816770119690172743352212401043710184621983656718489359576804426526491411605494841039241109523711119605014715770410068099437023372409148845053595911192618071279847393950969825876409138320628981106070839110978619924761714340265363236051695799383288492733700157063841672037183610250909992632248497684363209313098974846513931895626393586663179345924271898568695399715433781229849077035482445854011779634785233307784128534849279933288810981264396317310780483292921764799599446647243619453300524797808641859646552874046442292695947919071023309147739305203142524412347455595586851191065629970890843411834282651045358808200096544035460106808676863110675958857387858615940538620504108132084979155452840437975549534001226673613125645132326640285387113977244680606505397884783893695185907452008544627257578932956276122198705123305640415418169916055857349942682149573195906453836980145516602245326155578152383495504545754758871962041921899548999831526439141773215529289183296195296462948927553053536968575313187405453433187634299002707612104726976508011166590938723059549279934596744128999006846202229271121624027615249734850662977711227551620727656485457487621346502625799761044466393234939880732600729781664842103060014377804193205441033758193576176158568618697788911892901293261460780744996571374851917537200532936503692946783725009048044831289392602958669229370343207099701042110114501596048846951035437720827101686496185280300484751049564378731766215927134606658848349246110376551578237699454676351402844249612704965304238691115274869167884450264017172834427246717420389960173327098576119524235021921940277726486004575509867077852004760217380142400827752573755092542773438176443571645430191770653318416028621377186269798680306098840497366133588820500238162839161127556674548998547980697086768412910355802931996882014205138713186284024222386952553428336139088270656363753865340921434427054053667944239843647495745405072603404989504109880858372792651709744759926760250498726026803128647733627081382351696433942115134460110894622150303697693002704813235204567244424530400257673486606084465159460062940603663405097014468606756309072434856237794462942586497774271462272594755290701750488361113238245061082478209985344224764969792741173115397171159689605177854511551003879555369560205600209718857507935626553413321308978080711893054964607534698449354953125377646953226933425541025535671572357975627309778595648677585602573935528455691596342246406989625440599288527738406421184882550276711805895301559332945234899850633694107970061782120499727919232435807846560577283993532938628230853868872299768676794128374729591600686312514618204117996941283032252648086131492976627923565674391019516070280926155508273190937561360618891648955950236583957687731424244120088844186389711611306292403965526278346995291289950520153268761857397417831135243979490591770758042290241012611681513170704619628183660156135424241609924792307007673415143911468113299087714468574643654648788433764087257742439334026320932673191653183014423573311436138702129580693309241645854990587743151339654430621531097513297157402662614037369828697265749740072640699857082074504167282332682073393982929095621112487123009222567129585092367133112185267669613241575607831793974710097085129593942816085619142668880471292163599418089535090460506573488912611450890682329460735491063873288785775406361341734614344524403919211999566657518828109080915184474217170663238529203778527544550001751483751794954884644160549525269368517979757756536585722374008571592195159800226601246869039517350747383610133422331075445734707670645356788679139039075448741377257300049018379986859651761655526581643513172982545135782829513776909968520780080269434446849676539696289910028548973620620757339012055617495833254791113904445421484914282680362771024963546396207613025316337436562961868452957273977493927358683623698502557600522704717427377934857241513292615607470184390106312758693985405456132173293649425324283176970946380856987785272864884283668079875361922588287280763660459367629458133316233477053815341918066420210581721422051845596931529797779092134916364083793907273087270988721086848599177523858690982510687519033170024628474587353453440640549584196733978912082823670295653578894511123035118861105505941669309107240690985537676846043677031024374859206334557166755967006252964583424434390584048426797600024492785227521440636110892528184529561726340218031325840785401630120275286429122872580908517411490338231670052730249401772743107256398221904585989094196506244943257936447319990626988682565797735497775639645122648216267005231792180870902305917167089999122714027309566369095589623858217091775522615897315618428329615395747591604362745255223857646585816152721027620299839102647838237648816460675498119701709697398148814606994208798551546367798158097603326295819920749721704463723223509997880011404889103968073824352173726953448059011421853711072424587333649556161068267723187774780366138737462679135358788299045481277071370496251352311442270930223781718991130706748164755146804181863681629041058713080049874608573090196076948692006136557929660047687117755970292855370048772122498172194458395461935629516736178641206859229951068191473340144157055264381001115914624125941253292267991991017559445674098124899446341681891805304909725905209356665848855838256028728806157469372805956061138681452968823392734455542930048182655026782889746004661824524127356531776101344996210051985858619410391981124434268055095261528374153772917428716129319904472998353952119303363731870730715613848809515208943919394120464257319370638571163677442485070335005329372306100341101909878607620053818975239152782745683958602839831896764306152692614160184317352568475219053720542359089912349645137744010422235862043528158857628020465159753603207437823369584283041306904025814989696472261908801093912680671868554790809522328132214506351189171210076256487912700191812787829560661716412963375318365303317270753740096643572327605116455708885221863753903797920767223655250460916748873181984702304403373807477477330700726404189585257063456609097865792477530325984095270488283369193157277363974737686150241818099354377024170185707804386755276895977220087326771471530106801473354688159485023650292241514712335909070130131789308655451965501426254076387350354492470797780210246232086057286576733055090160146574844580997520323859396554811506733782855215867547876901249705270432163852793348383132986090146272523909143548964906389022358743389617662474539400497602609922205986950034547603305637343788570167511488709182186944179824992042906927851063863421213347747019284695319253525591178905115940890459035477276167618577965398788526344423701051063891913437773275871927181999222612413693838440718018780689430666172454175887021399913276749934777921440551186771839753792334493616332387034731720634270035983862624990926498783793519558978819385638733264666176119224182668904909550712923267323908667846868747480439249414141651729418135779346478578884410595485359170690819722363634590441470906273672501919845152239647377317227636467496285032870866252770857139354110381680372162084491975793481715400489146726022359970259981262081288422442441820946956481373151478877338870955612810186849478113852268965654529085318473109110546073349210170453352902178766143281242614639330747786811525654418546549015465150843034053094070040379077462029907929331361520665663257311623555451398770650236434871330675289324238340888908629955960562417281491670581450904719366878783117326407622324616764259465365023350259137207696981595862650055891845480939638287138572756964994737244941386638487288985712226590336503170873664952026156424426568949018155135176731604317991424631903046848246421086069241486400239482712783375093919066797126177235395126232104456170036525980791201800886750011140249719842998453584915217356711112968771370053577731862819959222504297914557718158980466345529228018541504146473624240555793798560003733963605577450473850901349353468037819003945722454231532411359609896072299412523895452266412817046715014329592911118123665571442764016627149716242596631347041060511012116313809183293239538161698705455123721638606383490407449557301388706667726879762660004573787447663759896271187805629479029311985407600969728689383368574647645192583109696317802805369238604492782254716000357815973237550914639656426709309556827986576865538081157325859501086188926110986581989383385853823402941782397097358339918229435573823035713082960142830916757543400075440094173703286382822624882167209377782826199367242475860000410877375408063049108507612576378931744392537017419922498030144703537341451790176935021998028445201502915595635581938263217561070591320843537229628731254462568624994969666292145445308484829191610419154687793309756377264918202670384471905874627094339843044955400402148223069936000277859666515909618129120122997496361180428376585115300227853018362182931019492787365002114740382712242756260103780538071215998748360341801149466983085470574441482534762785449527492462660517640399994223270822771146178447832167478072148425753568814535278263274190047113375533447021517422693573916318473455398374450570807222258229170613944775851330357863923906201417346737785123211508649754691033281551751493909942479537904752732150893387379232488290528178709620852985214356664289017313755062416125053435257235511339759016848375562702129611901487016229851544525614844836132423790046052751006758931859934153947328008827725155958252048714974924871604360194104544783897073455610075025147644534188201143054815971390634029421739821497866990179659238837260539545466730173871883645674923019563953264543053512281294257426562786580354918744203774006242049469354458347006465222454684257084762534510701997686164496785627409708889967986933353781257531607924933355186529352796783949277352762185903283617326413207221407423099813356405272885496070195829853110514740143476804451209561064796190504349355396058616129763683459003469332124812459889952630236269651342392166947079265956155047334260205525158794739340816849742712721813927017544492478443998362283932353030056853733088118672935339607791587479210501003350463417040993013314412824304803734107196581657660159848815159056960496069319171943311449425493840873907370127933983283719020486708251046503486346885052293746991407428303758264490976894587213425629479244947596632579854650115354034613108091408014850378807500761963576644196299954965739219096907745908461664194276230671529333654921815395086550087943879485660390590320000608038868757823672563555094141718090131487658453715159539000477113574424490529018330468898267977299770066768954173591157632739229224748523494512001381316578012406565184389733299391896460521254181956426795834030168553071576968692684018997352239243232751427352921646245095333685173900007174628158964778206215225678973703980118388838789701501437140880484263055359122229311392350674145761937016925924918445135871350102088112983775420843379019202629608889397307554181933258331466077785617938069306795771797036691404523115775829947764483918408631834765653003804654043289371123766516552039436604370548607074081687725705498114601229202642210001933433420900601616974161221768017697024485367681289950970987449736465364977102426314401232333933029392866459641709811042304263380858720991721603770653248277855787563887667996398522199501540486722726189711731261610021485692596259215138131910072584821090988503129757080785619865100406009221607869862977564803123587287114323274848032114237141621774117929437091876471807969115215975975452251592166358159861256456161417755902230603783976590863584611540646399919461249832441209832821668969214100704789384786201032318574597537724798284687875701953543852568688566329996497455882179460410772890571588541167362672665569793629300387737712694685162985617393728813050013466169509381517839803791624282537678042928470545348342881715839165586107015525995115636231589077062890767136399588666398395255883224295994121818404425084774624700354225592220072678892304952316716147305000519536857062534432182589105970480847008150280472223921509089267198675028203294380461991021358349694273591374248064567498660395074999212996665832647904030425320161507471219306614103863962014745540351843051763031754175753637317543002044513370629487525988957866210144256287506964667148035009766465605742213071848346301197768637537500043551145504375412086398207196218240324768329655707336902941114155148471278404245732316600489255992298955756049857282003183364650310215531716070126901029120139317995460590844213499783674765575470343223093033247367443383777261125435644955381162728347883770944389653048294576865617664288186686231178700924620634897073312094967226903914043746746681531590508266047386662752067393873047897226904321120419531029109373247290799992026922484759060002923646865905096677757983541860176370277946664761654851688975045206433300186043661740355133726614108208836278753248652971886044286587614306005749845292773403046608246095766537953607936726217957844536727963688296865912661338638401737754064789708737303419744071556008954972168216470072757913272415093029406755963446553840551749658767769206622132312250747808096814300692943737378087449432872458437063595933804056663884644215975391491193956400667811874002455543627790947100455822346147636854851277403405188459095159279490153593740642257995346533353141165811698862189319715877646692980485916672641080316635582257097126245597314038979471843197786125472968155081513908700174699384113685718439591306896491671686407933508842559775745701241984575956599538629547815745540485473742484706543923552246067661423024613927660233844197178320355068367994662104866756847380555570772086926104171773922084936794824374004075645375821860771153352513008482121741985762002274330368962422260234011395379294571621089552473979415976068663415783530236711530760237696830757351679323547179374290733451561770229706198156566222079546305306153228949517341878366267470874234805872490634123119489827984962639652983553066655823063656343460252329169484235039151078219131071624879737423478813040376247691051175094250578093632134215824300792195842271601873835085290786473727096086142631892646917587596992263998769900815527662514772015710126765390926102934480407656448422391535387099599283093637359073914156812223568190190405625661962648472933820262891552604705576362720311390831501373949909330801348193181370643048888192582116309358983399236900451766922558110809105642509974323569692327927953425200363298885075134824665546107853232656874848217835953936599373539483006464018161213700282313889506863079658041053350541412791496310032855118348239488852224423650418784364062735769650683659882017486829208638553619747896644686075436089903911089105127759605141585459049879746880080546047693092395155504768360481918533327079613261325959805650829703241513968486818775050454579625923859199325910055339722686084611838520622007022098297035801035872946309182997295037710206249957474869314032107770878388674452996224125676172816991468509020716839037794315962590513421965345045201831833458509865849818047658786009223272575964258768978483251901115256816892175118433673807843517268930418224847348506237857786550904097966516594657748546085477507979276761736457074697914731323675040748637172924440488087614249060216367028035102677963158434166913554399297002014224318811979578440975700750823831074780008028035444147680918805341333340328615830733513138334650705686938176506981454695615546988515369913492239496452294020152874375604499383131933498152413422566229557528060359187665224636036324432169671870300067464316260752559598978279134870395708416967366852811094955546822902090968151403244007320083717773318384308897431835659652055801109909758361381779281297745048782713065337694946730130897796734528167741514095326586915571995645030215251559370707392477202593336024471218974765817783853556801203821697862697349158648443226150858486402757053376708305835984169829640813672575064212552564841098376616953313574787054693682002387086492019678527236482411624704055179122681222981728294765462866003461826245452879006797374956755055582415371904718567090842114902984255932719297308210816366010180363855447759860081043228921843220986098127388292636484927138388872553155234047836299168143579535860238067055359794532573384912515401486430363250539258967028222836901639974085762336407344600092440323548666120636842285036306362755215270538099525031335566253975052096751820259820463965605327643951045640831638992666181670667364667759920868507242263120869659557961341333073235905777038658318520857155139604515289589117337670291983499522348274505970314815278101081052771273591614703923190095448428606422646235053646572802479864052344475774075998034165734757836275555397252449765353634340552891362141469788234575537883793138167954657443792467134066906870379979053779170082478630229149511954867071668458787932201701980306493207282134271931511335639856344920228881378134728753805359992960465835448691565161877244402549240384300392513208053260680771692589388724148155068890562305215745465651272466786201949858511044779597244078347757717296635249461750814427854145098757685522486511487654911184085402612001687115919335443166045430790180237851416398152289882381692042990355494779066671079749459100032315758409696357496078508009300674315143275094735229537068947332169604666074355159957804091438645815065913479346136692662886923581682137212779212013785816318977395737181696734014515244267128630506712413570615515302386689297572367265113179638245601209399029536691854451635670199044017341489990798730294245180668470047539934869157982738924490285844087597934040867606792291324220271649315365792227095895520983639065972612373725774752785915175833124201024036914789391488497006433030125260601008383932318344515467936044951125141404538921231704832975315995287639703720220392051201280493732297109922996226206990878394304076732818592052339020030189997199540658403085804970839304500753723176479899099533978267899467003423476118127530370087919505053936587965150251994754010294769568964908599120709633218352116928297789927027185226799722028059790340050780670492196503896540592318353564980997663255128043018038352280630196164706021496681761057320881794489781152983007594306232760872353694139846698214513086876646573797871583368826186191627190329434262115119666870698547708908797396950520583170951635699263994716347105108959778029145988614312599230271147049761188790796662569978650849377079663683069258923786833695639574918612052856237312241939155340038571862377790760278359481737255510830601486112150344767642382170460792358376710144502415271054732575243295036249642427173063365895659864504913505306253574332465888419511213387675503882106235828352921139593684864902817417772222054603523763945767468336308306220275480773111375059764052686658542002112301694020216916595115023196137397504148403128997739533316909786193570065018528343589979388624217093791132329448624295046072203279344111027371277442981345381256734386525064735395316799730663951199474752180218347583874273951949834765872579880260088811556012218045151488609933136297009619962546558105136004305538873239786300175512821296103802247471295949997248363675225268594740328896071757018654239143870808335489473555892487129878685826554544681648239143636896466228170923767130524836454631805302990577310285659963254387920525162132170970124155691783015241690775664611489443488282599996812292702767025824379415975873497345061593530279501218373656630088227274593647241889452956157404269691717822882176282863256767355523418125475095594599998771598460813076563078976284762998669425502901552630806799483553566958204206015770809172257322799913776930739580506276496482706837689853400663850941459317023202944932008061569037108269145473497390538023491210708135518279173994325584217962282103021603628770770797176088454195381307335690066966908921028356096298274032218061902141989333230095243883702122841495448820360732506131258828429618278736607154786169082190409701837748750812429188455959420003452216107284835966273146995270006127098338758973749453598016251671407415094941320286460757804051039403327574814701633271641063950209220546917976871678657429993962035988600804031781138482758303813175102456445444976572777081762698237379039260910101647314103605942621610085286719277047557797181064600725251253613614729485706442566352243846020980912457601567067074370472461534157609570196283994620568908081634466666018464587555373552170314295705659719370963755137344553048461981162304850159969135036450313687043319305900138229938189167306953755165993250156415079155694303422867504412600270380520914603529853554474986422264772027077062656757603099607782911302459685879498922131285550002337026637093101977626045432410000996861780862633465447679627592194369099842997890579838971832050140613331058795803258661947427477855784101958836155533501994577313741338761416197241659463905993121085875128414811698003216042915919324153226591751006197428307779678320458659625086452668902195147138778600592572412337697591062552607676587099320447878938980325601639711456494745391806646565513200985355858215039093740901255945892099724909246495199095409696059969302383792410843789472732311494772253369271427283357366994281342878216471623896238462832016025382912870815241277549572843950744434356627179665571859234840476953902324734243356476657166688857952778804718407818574971840011957357248089397974318372024421570593621895343511332438159835183228276539922828170559541807922864667642638574089750987894710004441867450468661369015445447699938963675230603467743097474512360669351137482108523526954683007300664855985162663093803104015025432734644032744979488099140051056973907797096358283781061663268833115297927882713735921329819186066517808982094249550592207861908275615072444185651469777974386455863827367786584674407124345948154356188663054303919538561157002987745680697201431543302378340331793110292509635466795806526381103380379613146355597570509102710657562960440393458163020635525796570167096875621193347857627626021899919376729204740388524591176188835263809470877520364238882541338593375748416662854907044005420812537002285130222725877026216494213488698877111339837195779504019159939178394625383797942677764895417988682578272383973829170507675052958402942028171329224927634983077857325443279973477579335329622038750375133795061163919633568366534036276226662215602545952868334379217481384832167740890483545797103626450525344231321216727357476382516576753218829543899912449302731645021947822989694722628220954435140556015057175209141021111499225355205283212850677404108548757407329226877101830578154019469125961803716262166774555660088236915614971110905377959151766814593686891645559154872060305463373756888970404532574570773413246622794989967088014674203188313294348976635152016096851876202019455390297982133881541643753492429335547094275009516043515588665253481969092861374461583199822800347522865822021247927891085631337089399798440378916771906669047014851263083677481237295734446280109185096973628981761679383362029627518331667725235555132597992343958707272301676443552870640934946095280469861767890647197187791454728477709270061560772073187159709307732186701755463961663248332269101156144808952498820840650686215783844684526898750718140439749408574661025285239187777878097680394829870392726802772658486422678970389048558136441536447532755943343488933259097505974357724065299903288994427968554490498075605024644722651383322053845520855951263430921463460872890390476236689675134472606476855229886775904289982676758174626956518841301440188551874598754666385187666680571802331509985410579970860758502288553045069918007216521800036303463365981925029235715352407775068054701098190248486294492962983090396056572199758959670978841600114396687049110864378220956299967030774403640760254719976538685186096823181776211640718298992787308278848710362334149329327180129308755389290170223103366677838340694607096840249531011821347836747226162541819950643189953961705602765199617042717564123838867417864001359624135974496643532436569486794874457460898744934646297654121657758180271560694740461114195505503827169817216810527591288353754976486675184267891078465944603938117412782687517119920281607883655311400262212864979487030460380654741232588143973878072335913790769750879175470004532550806046694581873012929966017729592712031326430029918709671311451918972568053127144094416318360788616869874568327634269504074846915214819032314420454837173747010925600551811250817789985601575255405142623099593023919104089960384497192092255314737210880674084111674679367380585563408615513114513009037080422000648437300018946628802422489476492721313342129856980267852704084557974779165946363801967238184524386542249249332844630685803619196733923887887578039782678625735305776627241909428936922156019645490234962021968826812353113283922409034304363298038584070599013370691014074079271089316463413902580551926589558732537453492132715263769143018653163096868681762535862835295611527741856300614231060564157193168620213075371970512915615533794495068900342891149740315000702536852087669569829915975050949163278031005863497134644472088531626293471103067216190458073011402244167797025228444171201147436922845662066174636307508693681544556249092654271865458765491259289433459467157471500883493213306100590401878212886116201498542667143440222580153842476798051461634103207428047653947682910751527467677913273342399310790711232318169074357684159757849691509962565349301971464912139841648011144667599077721045510251196586897146643908308178385363037114397914402470849315132602255188158214276438421207317214241148663338491878318685883186534056873074661333792981676600261957117712087139475893519391744125773495820671648660520099999005873615750706976248475076999726323383363955417210907650749479268397795171859279879432093941745272408063706942647443041200406197217760411251519758718503332602187234823189736363821040638956128022239326918916072296408193831517628554600589401044792665646401465371930587065572087784487884142848803242642844618217374307580007205481686282314126178395509244010372697399046106577199845848619017130987161797249076331794160656969983100289980492999041599064560612922539955000897188975461061179944508756703348424079297995431211384576068108095717584926369503702520059246200072983882304398446853753072674569165898496835930727663957558759912861604601512033786101817444424453708520022064900196922544793347475903793529422253522717452573355294263830140443578704912919681408957584899305497871844083195236317772465356840240790918952140412921144778109597966346311734990845779267921216010028576994056353560652497197965489902178420473512596499726058885626555315801217220574515468778559578307428622869801432036706827564336165510065098474661549495505410831777945838608326819038584433294216714413772960254753442178472035519736327936365896723309378067285054604389261129884145208475326479486719483179610461386752581312227032156142971942860618491335585641849788654332154699333932371846404330798434393124525320349935593735117682613747507144630615886963029299429085602085349999116908593623336951151507152722001981937788713517101933196312559483968953787325154678817982527091771881443670834264510637274223025509523306911031633539672145407199135884668401624206986335837176024783346294993843610759808600680493189685352606042540911992295440202513660050899464032561141134241113460757574820668682824412354278852353465589654234499385960975191086512167791261934053455713676352445711532148606131999327846578157569103745285720086477266146821730034621854369092772673246570854140736429378528050644250377469152373490880911204027902936024054767744361440539759273280812443866537288205419043033664228160486165125980449011176727710651402483139872364058170857099301855095281505090009416984534964512586356037351062749208506785037447784098510945371478594477217822800605756848477695151692494934021980350884029414602625991244879691884310660140657979772928496774016280517506631649009294552626570932908333962447024690609970873669059757697911075263160973949811203558485866625384521468429959195814332163605243046508403021046867142316283933343605801791454387872273993949591180431365973904879415164847326003376293431415030034061658392204056290207543884867970103529586993616809194389986076386782067259819295312881001231619558851458704040970667916066993131382932768016665231981858429107934690672518644414258348982569808336070240251682671678129089322514152285059300509141572732798681742704980663375866926325269520232913452438535795435990679199056116211169654611729639754369694364439130364444465066180400136824853716636053321471107225943980321595842141119277409598314365528655076078578465897296533031830934486147921437188659513771266104480143313654883168699033766525364144604068352170787218905159120095338115898852188471578727933522700194820564079295644808962011724033699357119440235465773837773652539041844711079164839357445909510002957802932711341206217396402832340652705720538537683417125283859314610832332468333993562615129683406101970728986837573579900008093134365386713781535025287066781562063817570513729707110191415264520118169131448202130392714820635488984957987123234243127262920445153291805566406358603689191546848683543113964480299271479597411668481417797603638568348557087104128836602077225036686414534164698141823434061140992862152715197671446933731909035321640342006461455565349911612835885392707982143413212253048359420969540642549783024291221473262875252381590932158912839130879501137274362431383472245092977107776963592646035501823942619676536374196821723586693006293776953213118921901004501760067050442985712478788540394442564396087109433809828937584532248254987905202470199074778638309248841091442742181747792761017235502653245739437159900153359522282206392121185265919488995389296259306562752823964402149384947516146129214834248551950973135530264098620818258747749307581835393279951493468321579465937668255680377138132275301160832211410044660250750578006826882217042600150530646251508458587867651262651547786065144483477952566949907056450431697722861522598866298756725922955395543822380923051667115755995933019523700426700566094795042318069029365596912821733983837461414618042266716643460986355260456203520957815794188457762531750807751078751935193258139147123419424089673079744674725860323914190044389257430126628012636809716515014101204111089846896248264785807608703746960383664654002312995584605155437431261221928091961749912108494520309788424546530920756574135651677826497156991401961453244196186050669661880708454363935008256464521055170125050400071372184022970684976047570816270868282483841521375738869507647239734989651194372906445450688686534275930130765644755236097998408663617218508368514892719569217493874071550462772856283321868899805623679423382377768631556892358933955957952693162906464005313520302589629002417940743922133629007897891536943411436294885675746979444565821955726010596118208429116690362192039634450213770448314319299998974710346572593236297370487558305505085595610729688501844788190203745940980523452917124368300590552547448785141068688021985485699252953311129007322115503069251482433173493218053562878974061892802398004295430711220652738416238800898075661317833445019847620786063146653699102540806858600329774346895808656835337060645377074435309945643823410057464789168940555532814890002716346725485308168965275316826763930808927960677457473002706253356686315155186634145667278162879884180143515359570727171614670157550284309153028000665652488838501438326896472592773161921098845659534807043209535984671965880992967965166401145607900559885202546041850196734094746876435464438500306340446944431711247652227961778119484818064543340628117259717273985178773186740470889521881112094224867883016313843465199321047136689919583145346270773754133382429445568404528320582829534717619349769722136646131492392129579633813955951124115250101715455731148860662592767493628015523325207683305355646051059324742882325510707653292317092982470359862265600699800304124453233580147834048787567392464146148076932205769276151848309595981479096061757527222524166030377342933602450029114253407111131248291696302539732608094505354361013944155230010139122211265607867920372671468510121251754227822313219682143425061098922878364343956620614826678348706799152788493883406867912408654712482515927593292927902370347127428416975009147528261649853466084462923189026960836653026365275035419394725805283248345013511452302648380902973151388166415024529751960312750944392068606491159922539340472994942916861447813040613866928110825008781461296526217422056247457963462092780418889679970046302865530954242718727863227792948761987527742563215986383533576514512288154266964239382175496364600850750240014849386836198918053823935657627071065136720944618757834488669465945420596331852858945777403896941982421509048706126609646569268610155483281512784227819717978609516845793643874814350981305493977534391376010959335028676892526078976115488312140839432123615165167270906491362934967631951284110625988372383491540509278586019907609432796710677349475845700978468871651674898775504763588432883822707675456769309711384068204239798569767342958079049652762674075918950578759034145368587316411863262792633038172623022899075718207977224730004182297344949873299980760673302999579358182227289483727875436869007630471959861104917673155562698046460913950528418394181000642664621852235612287971338032194675660668600718559858170481322183840511350653348212821506476403328109602980730761909233691008015716111503601363667680152687043775470102323080318232633874139744320547995772738681986942155608714286634178276949054738421359689612589255847650625392320826329320116522186340302324131814387577325721751779501756406483041984518941805439048426624834776663848909300943308647622375846872680505775629357521814754059610679352421376992836221271445821149870887646241113455300633413684010371615716138479853444454434815222697759792746974516849044976156926079917785925583578456476432358240978893845048194515547185565304974366062103919326155108472688118174731599441048356431216289372796386097179660574308753586147608783276221086098406325481045911537366257235942468229055041251015920896156601872290840546707288356402734541309500698633370695335950163178535844666679130226258403197676913198783970787334884629709866932874261146202670285795362486660789288272642327035704182681363937873914561677658907605027417589005749047738442767267837215042507531489903020075313997376856411138456202208528086092172678556989993349924103475762379397830299871274288182799075033342755323265738621070292659629741802221507685150841604150575286614350660077194447122741551715200044031485564197309968185072476154924491065797651897088308995056147898726679322507207139549292328599354710144704559712716926975447491507453900419079242448482695580484875135763183501726908737419297844148286454118807134246190427157539740197801887947365286473203354811406048571945668526940329955865328562145306532966532208242705937736640674599861334265109771782618493083806118246164047949699668286108505767977390710601215665046473909008659106624949876840051178951645235191502372151653060073633564025943833243706176646958869419105713657493154408517363067037391544436293722921654723889178912359120238231727751939736150201824996165032157836725444160135820909263326870141236891239806440452971014361298208422635413951637265586878953053320711130387323403762988620390034176717089102767872914240237674840488414050741145852943532680264003278587479464245757123658466676261717310048060970818494520058103712093032731080435051706489149862538342961255978192513292949560832933704077112886120514238050312982468902266999153414311552029946398803590188018890986947977596543134635278508839038709319873468235703749416290703508524880667390168356822948012388989756020851129096935791024432854714917467910034409767942602830932308074494918286194097195617516883341936948798327505003539877865306487196885801042403694208551388026213003136778939428130811566023195602787224386056543475144666762826472720212036907771997618724005550761081254827032988605802895249851022772586250697079176115619246493150977064930848514745624337797582437311029237278236021508787962293034583112531112770990286142155549955429353180999451457877566371378876680694904886246778953270351846653597979640988797896459597658783816928634174337548307214695922220997241258089701964260179672871842699670119404540225987179666851174185808744129722355500873925848431141553323232480580415890773233643206755364908550936576468572670075948128305804772481415599252895533533790556542655562893338439833461746916775848132485905177023208917061146933774063255649587105086753875571810731909449449462568224910101533387610223814679979380622670570905418674503662002380609069646268746293764893412862649443927915287524441437242310253409644782071610727623579809160067062060273299897314773454166229159938371827125636590756575054023579801184981149866188376876980951477308454218227606715542982135819928370013636664194882599086598763499382832789930370991341696492253053993765246029984641294240777983382205887612078365192607773234989898653807320783724031921765873701003719066356328039718068355450959328431715317209982284017776752848106658673814265340711342660077413674128845064193797505670360184458307245543731857959664221927847633221282883883885172415434219566063420901056380491421534356801920147781662578179543966721655886779016828358511096130538251238286290723787026203135073973093020153442829942829287463034490152833212068939772734723283138135411830102887161056920375431912024383762371291785115756091868010469668589130360298574506848398853880105356967557320878612729104620829838100741002808084182525541763063667858834051435443989518528490684144145425035204229861148799631733088870294747938727977528666997513213340886830763137511548458028547271600919657774071299433157382031958942937615029897680675292875962989820096529500341857021125062421590744996704557068263183388131316106160277293432495902427197388053457134740125741530527312370413096634942480892930310979935660358828177727320306307864095099631950453690709327100043058911121480936773702752409634046361450361164511357382684265099317728356838848220139931827741356728110537360765838749716588306869937164578066844981100005758344589344533160493800189728717349710985596202487904586694460986543761102075241908032703979182719403793338527606754823666353495073394014246794244622577528260204506943845304063644668335580365620122490007536803227155314408374572261657919498766197861738481627760998270935765448905945608754180418641133180425624965758846278210078752190068688240502448554020755198955570236407824356088154764000098047973190739984797051895288516151662009676632363503955990640040056422950345920058815457246156239746749811114507655995147460195152412453391447287596242903611866922960070739576132836846930058163603803226056584034538706563378287673334218099361025438972341274893043732381029530156162664436927780827975693893862532899054084205165937498072477899910194709413781630748681807972543062046662840256366876441371747804415285805275700492729267940274611033933882035786327485409872878221355012370971505610410282594211080121132395400286873323276645896336480900081499193655782572715961044597970544591384493078621492151977386463502917123185966396991579499836020405958712183961040746408121745027685453426564611719227918489028476803811841576490963433200480988837453777410564973371948801561910659381449589029657968480072781906265070157976840095822425564409917576269131975020662768889324768488489715210103493752756926160307376081207628418543213641859700383889881672578194380837145073627123595531424961309189887724154603207971884678093648653948739444349069835937851208416497182217506146217206236613367855608126381061891647745408089409111067200156772150652166472565938745142844631447025931711821785392881434972841130394640225220436246497925471467339565179300719704652876696479699017790639521907987009135293580012030280633328600957470838024843806753819329621266093745665615979842464049883879678995461224361782776620955403042969015399465909313786359310181284544546991316666555102736359613502387489758432561255035218691213726375312638222047176553561521865009032638733768553759715948812054854872538617388540328291273923701964422349749373922817011631304040132973788236705848437789523477600174242940510639147560483736588829868309575489761948431423259816768550376184396867921534408549266296775017091960276812922865990454758751393074089232513269994410374815074828756664556603986707878697541971645447803432141946914794559347227501915988620481098282245396459410431430289008491773150069477766414622582368408184604595267732094568690400675555220532617106477683643829467861829578321824261395630555076650816136606607078734363266805636052983819998069789171465421699811566354526704983852738904462990643734430929348566339490566027383753797017236537257471218811928258006741995468701086111951084883997870164244903813418990318011315503001504445671837018532052348922207365029195552312203561428294531093032921945100944723000772508281362196045269004320355826861105343513746278862051191902376272160597254810657815670788737265968547452432808339382505462087798393609743348365000787635179284876387511334179312550081922875087300590586106465093229280883383414383288819530665593488637354339380850351560241945012592028105294288160573809377945849399837837493551721329557531090581534605820316040498578158072876151623035557310147491979880670250866487439696963108341749230663101745047458026745286179405887905037870431601948539064223551632920330691214948908688271936866397028309919614908011879526302482937693391518763365388010614608702857748129339987569412304850507684332318139949692535544164891206215089430542624036301091455160026012078094963850778821359301133991333396510532596092826384553300833226396952194935283583343874262240276472715960991979886540741291883413363232419774091325091269894078967950061593989109879617554349607346426158141167176079616446288331935365738294157965504528116295030882077358554803399665928756327823106725474480181892939542449094667164756775672301198255881468029144302395979106728789764228164341880315671281472766708947062887000065756551035138013202343506800808872192102903829208424429463374673522368255266810552953184172147518907074620097127937161332051843180595875340305544938247334241148773736409824597535134235880464721232858346827744630224761579851012261229637380537588971276082637329647069939414164340539605064625477315399693229390077523142570853673018681209928296859008149860431498888398235708659852806241305182890831567385734174543381476595778561662733189860225948244849999625489105687981595032830165642102038809150539403261895420905873903196830717723061591365352627169625140949394913344651445467997854117251750869474495304690636915530143462553472444844873037986834123795471626734753190508353130270162540442932304353981652742994780518002865103138666654600753049160848179024533476788458038466604627226644824205058830206535555477254487660013826685031634357643436188351427209741681880928707441105212436279274346993931561302766610195953840876546459085055886633266573433960738904044386138164322727474836506657838644003690906986509223456641048757773088496085579163829513472010184993003384932101771105252734679770557974184866970199754215161766895062422034180181812887164389392078946659570120290384625955550088061100156415541153245210004457807419944891998573655216580821918384612575225464344664207027788329016035274033068665966709076265661910095005388191154927938606549414337177167294322039351988174545012652200068329782568146978908422289136812397192679578093592168844676845026610792660397549783733729920422320840780887069818790003387060244777493395580161213805077521880554141789364240614250408496832913365524303774772496021473907105550352038781225498940556491115734080391062386236201678852247799801357767279405565757913036975458724228949235447690495485947916243451586366818957571216719640628761091472717769106815504172238318745879615907000495312952907620900868407255799537648543961325766322725521008946732238846682019892627229440625716421594141188811230889051560912705228041220894617150189113371400924475969617483016905166368742725509425914176873308116547101710127377940099728803697595769322327342029219990684980556403960546058723609641973847885277563225435422147502785690715361168402219251801531225926107728305604422647570430395667423338209601804786385199711490869120616285253803893316422105815088175359376994732607267227699277033092636411887193394365190293662706750893132119644190258137652689977990028464863802558436018341331659174249811675709905046373568165404753469905992243132000735056634789280344075566969070214721183352566979612361346364716991742151772235658486018452618909681994789925505596857648125831317451711736515713863652411479618988169328919610316307037626851719269342470473248187768045215045662236053587932951458826524209979912735155654376929277347344376578978769739387212910014728363749860559362190534542881031010896543207436673200868515679463728759554181381456618742820184169559899407808570429197603585202762517219176525311627890159592963582495786287357103368224640622073289934641779964337267142705868109827376950130094042267103322530409762513640856887543465278247747094502343956932256604055812514434858731613242195047672911554578912021776864389490571312300591848803851105980515454002407122719654674557889811065156551089475618697946294239985623621292347706421764662276563634879486333417918861343133842024713774185047685050757759440631498499127828409428566491112636049263280976098583754648543466333522455665679591051713465948707425398085685414830991587789587949751554688455196395816209113243122928546793079698414784960225887238631104627798587954925952439321831639353678768849155808963161742946065263933071805804157758863017389471015690054856760281802161261962962635484571917981911712506085569812467373724868535511910115938020530308103400536664359447607012608112407542953682999600534455433031683626381728839862809546792359397516878098521185234579773808671687635087623475721266659681705788255643662605742365518551741917901538371796984416057388350422937027846077057162471321674903279140016500449633285136191013751464768636974351901721892498650574539431567415251855208442185045961610466687252274506450335994210784777926893117404315904967332778934681813343513950935868191843228865507752829432787716964600760437938222617262897415918942066492348464211021650285838799828920270478749614363133084981425405028364554371733021651744091131474294623838466801181470251016810939757898736359850134498182105488405905890772618325138948967423042290869043747441834924403091960845307940296021731883215973454477168637161697451601444219930091618114115392076155874455822620286372178552704547077137868879588739465373586210632987680419369968915622294959921683464836016986758630581135396116665268622490632038540602246074217407862322898695650737607486734099188438089321427236810244695205471632129582384827740758910975883269785627225564046954484033662912624405283215487696428284833929801759070077948083169421311860396207134837715487901099408937191633826334128287079117243624438188039509017341375501840007656076230013456389277783052307954577418800868491474400287536783184187680957144628314346684753317016916748179071479664302675107265875174294412573882700781931077841285890531295885312406296884771597294552382877499214663032063065996891809608673461846224607983335919760757345631867011409880615882300674009902507884784197997298989713462815755752547803499573760231817121788347854141605446407232697510480343572572783046310007708630409602599523646467009709055129794595346550177689424632209992264304314792848714888848590515558275793394815731661007630001260310055140633927843919477790777054630585952145041317752594932459273544401771631991599336600329162784694072444766855736875066635366120332108768050027626117731787066622417571906931031144769242283632504680011989327520518369012400949832080218179771636284464375671585443669627874662856301763211036532417890099088144948071798401467518496056901016536518133508388940175610363858756200319842207001046653726108933050424297415312293617745735795862381568720970849322935833709538356106600503395368677006266487002251424499766504373381736761231234507785336857829460953710956185463159185088070905389668054538360384537834580173812635507965145064784643984152155539739438883616655416693321319669537298648911716023818353603397055358249078660562891181084614681692305928259213379055622390192281590584039479082645970136851562189547101853928661405511651823717961292859579907430864279302087459670098722316546141003936026910578549050671755727226364122677027012882307138985398840332928339987403914122782041770133655941294899305304610980174752422912124518908551892915488248850976503843321174286301317591053150542770344137227439437931302664334149316437507353181385874255872177329099180887206659806062629699809872176120068856670939599129878147469092283698031086389955812725750285485386973264261459713175485571300692945136484721252514470559243724907775541831691813242308307646966537547049598042316136492548285146269334974479771482918663161765330198767528396080496752891675529984002922494464228964637171905083140044730423552799885980327672111083329844120842685980503980465848104715102238895940281727623909522403751132680822266607036674673196200677457873290496148149159097553817014232934203661564755812433919441626728037522531908387030948841509705212277031541634919376102327902646856705211746094407590031957259770052014985564531630383077760772357727644157790645067378834106053751773260549315876636640713784491699750106364891194836516959655970157781708705243349644942235106834531515865308327522315883108870823974637780066576499700583542196145702107825360733344779312608759574628014772068761950969135864486544968402150608392156936101968211212124985270974562994357990914912115764352141549155406251212281391230199772879027801509552822586997838287867262532330842007587519438879920927521739633880779434612340207992442716577448369373062644344634246632147147464882408326219423299825613704116719012668394074365139418099612514846524047614097432092489252636243971532988392880012837605949975048188631459818722301340504342303185112656577173267444193628238832503066884116302213041426613023282878032702668408647774651203604487650855416189901088448169673952133230633188779663391159576420404551367865140128924473802088288595643913789042663908177555557134305689431707519115899940359538017454063601477477391364420150822541221068965832887567577369846555282620798467204799779034143855479135587378896538743189825699642392128848055657483791777951929080804795907130592528133600808067941287134210082186147987036664047573566134747808202706795863519658030586162317889420376886470147164638647244037156590104040740480617112706207068193683769546733760301859148707375017250804388191941362100805637418002081734512438237991539640420660325033958154075482959831834748622423918462369167299213120072709302562849777762993566485272722949896357789273901524143172872482142841444331321749466747232530938519202487602320442779379398399149938292993850739815856577090092571826879251632074734503119640027341191811567148673576297903806165277966826831066716916620333913291773945049272843058131954521492941911402259184896692527426209358676485437267378252671624829108975455203696164131953754462074036819808489067578749698309802949998885161411193527783571004361782795748637770367850782945139323941031018073490541444455142064425448776374596828967650698949939333110037434858922267845871655910067142105598376190139686913563132025390104698175639333175996985278166673279204757224979397469519338691092154642381978019543097943384303175699183216697525498595188973673011862106028161864012583093672414445559896300873631161923715345456406367801686628493385289818067063765741164278209503129641162185033217228672658704895569105664513053305064265371418232356886814184941310845153906590816182832629834918843037635505503630056202530001898589513640068013840485574162990049492021765511698966352286798239929229447276565433108533323137374471789208574967868558928771390560543966553861175492010358112494974226034444579550837661731899442522296257948027823375944920645312200664987178281182221991086646141095220637036289998839667387354051181044891458110793340884667085612879585984108868005307632598438631947836009790432232131332288140134164288782892194458540446048874184341764590672305165322793033137088932658591742397082962035010085322259839297969577052852031332007423060193309216165928081774405602367135371176791791554989667603576978968048514741285236087352713737938979155713483705503823287457150904669232521820926619927939467313826840417586606223158965998856385415071326241696071475019519846530697004999660578500632053148394205939202664732570261185859535940650900502317905844382231393774612187388110803852734234338528143269595124079426353585974734460156539808439559422610446014084980913223778809167853367141820705114254110734218129131697711198232710187536879428031575355798620226764398876826253150762091924354007688745345873169424016087196207488113683574003188337625906950222104402488373179971160485577481404059973524919305798459690458889593614243942579142775019070468248307727955233910789753514458855012275776570431870244762744934261067555600102638309157004528952460858921381727310274409942105998010618273451358923587114222727794871411089058837169010488983323798241975481830185295190081867664806935643096005176202515678395444271070303548230712510102428117848056583749117601673750617067827550781265848389240708966956191067313440196035797594478351423560533370109747538128724621201999479218144624992513520034131244993681207981052924167354971314641245452405911795825046674808188124512209498516422990608034211882886746278295715244091825359217408328179307170555281476157767188541857109334981435764683444594818685769238138102553958284250501888868990039570919527231076106226176975942881387107179379982835874362324679157189136976905527054684677348670040116971797073950994611265190242372494280842866700320562407046118074762640037892375462575318943787993251341056520303136887273157825710450953913210061311523942356011624462433132712093680751159443127051092820029101848225583519208015457604775610071644899789035741429427946552165101727322799593783219367816649287681928815599797346359774551657336084528880570465749319701276141980320194235004215640432099951531882793673056199411791130164334025684668045176770591994057689422342099421299464255384692537922443167146739018257256252546988677143719356809741796628624542755368014574458304953596075742213641016610680587924820491257854785382780188883462004008213561850810529700193425966048174531730822356624452040544089398807772629238568683526630287496540055558966784905038821053028395445588843844751832626205172391799151925374213269557407979092215942213062339047571926214127693873686270891966208467764694849578667259047462819080828340280199724625429130554375689708719549595090999111662739858855772203352469465960764833638398303774069771759985440651346423261176586447411148855949290622984952824553764024846884835895261174556425320745962367478718086273437879072851824324253820006187830445255635815133692567766208695839831761767219469510084670244280733484944862641522950664566136776936418464231718129075245926607640629282469191868516836917025771288570659711374086778924291880293639373007227931759808801266452772938017365663254058843128080420774274935199899602451480033751749052050759620713205720946265549893643762978340647526287750953771471374667609730020873985739776992732886778636161403164422221975101805492452439551687707006498555144014136970360548993395331068508574242470972499993616228242734885276259052088289641201673092281298654000328631342149123574459648562590469535084680039656742929313575838044096580544214750890465341618494023281926123520435678315167877711905399799566027241274586134396221391345605115883335651614375764163495604737994582774395448624936650493977855035578384042768523602111668763541664017866607787055923419749603065288810769776174129008256956223712183437773285078417840150922391790310863747561407732204022533735212360186418649500674269141108404131184347256562439330504784905419323612243000805157242203126075683885958237455127511000376955187199540739635160014120395084020797696476118897193532969968446002989607067493987234847782298493106361870064498679110600421764782554345898906034678894604468306544123423875193383133987557006925566109820553410763801137240460507783457732423674840708717991285354865193000486116219237118817555461513642158506653008210082543037429016153366367534617688274525781680745908158695064301454979663961335878802114762998416132733598136001332887668926895262042114878091074279019841337174127725909681579527282587139290509702206857271759653507414320699775663096981388751364804103476418301580888770254435391377825905752202214909139133407062140129618067185169212782773641345630943115539129580955999477639756854368374743748499509066857843238894148980457788969812528841713900072161298863810561966756365436781985023013859822700942349133988837320199477374131328125202821194764375851213842092153032634503868970433978404189950166090905464219580750585824147843898839234353481175900832309884612979270300930233304429184249720367254091498177919318438709972734828508375474355228614914206549752384062163781820371014516415803495486838137118909146952500232812169110088970557642942159629540889749093421030679980223253182682901058183226757475854817983050245863244873286678476975783300842201809892944910348454861128927381396781440773922186193159592119242472006469261698807208242780163912096909034867119236662213646640585673411960103515035129828873994105566421515245089218225943851353575352471830201443116309790531297994863217032022822093337151746812841753944532762006684585328327667297701700291710854330992335297281792347504480002819285729344509101300863611737000891623609556417720823416257016921763398576785077874521394455807792365651390511532489956607812484772408682615538900874362297041763515500163909279722095520163452615556050990985089397856454751111195233905760297051552682772656324190782988231342385761130919206953788539797117578563323428290128241350964703066332524905593426625588337632345771110490503131837606871828439438975779926499215364992660927325440628362362074103275996468393486500502018228818736944805511723576079121337060273063022802208184215106059031519500721727331991297883998460076763136534662501003791834869543944016903185512474911902593288428051859076738984681999012654199751072893513967937050278800340736893331644792652702170212325902498977091873821583258873655463121488164464220569955479768992514951989898685131269035402987983241942770015992681621753752866075863925096404313850174830827631939822660387675314424342973852631578005353758293007982207076187754364378311295989432626774689585807649920550838023544756384925229751986258782862620993234785705877209007680775164402325114282676447282347829314132426771946700438990070128821067319453239880028274279213325834862900437546369148144219823547573754685558738423643608697348079100315488320745125995197180621271471353804599141332914077635556373554929001534332768180154015108040926359519761775679951309935217486263279723851371006888019217800327298269809395599851924194028764536562663954600518675958360142326356676918291988062522006187335594245727852333897452560756880502366131296092062964412354324618164683002450063257470142959241117199956060984302598443067375420295230903277675243787009265490710387646067190217669623024853025730745281887401110622707769150052034106347915848798997403230000009049070592320112695123185787503315314673574721100654687586140648861049231748886695025623162653815214250963659489686211623509934871481786583294743345270213287493596176101596175236890435681492925442487501318198179935898047625466201250204480076084190999105297122098113829887617368192134711351346446405636362856348272060463316113069266032673512996196539686805335346396688818463623897232756904307717663369172657763614699718016780626796929173661934885920144138529902475704539863503286936429372405980342790902107093994867249599505041720894840490529722488100132960135157451120825114750386766597331266975841916800844591464797168254115692877696618169116649302944246643613381745664836839811355734703584204901521629375191272271131262824592370548366094269394801972372902086759272426789712468423485252460760131664928654996330176339552365516542101968524778883281587038541623475786294846542831563264554139695094861395526582529020045103437832142460780857768935095950660421673866493475222570067079797433625751374204340664453364098040494669169933469747512997379400639296887121346298799269113401032351810973473688254297666134530670901376036192209989392336091053013276972715630483143611123244629075545321952958195314351239040162518776126717266605748533941816037134654276592767155064956156824711137080204079695160294198809745140098765035717615472234270974865225449315754583824059502183763612132194723103525255219087988953633510337949830358126324730777888228952043280292018368122491880395709036349649622541705714999186694930231100832661049027622731203514017512804171852260622477401607101437296924251215061979268688790904682821799144054089187476571176411410315790394390892367208016702220745921192104817659501859024146288863576256344847627622174859002289379503483490639404365822047910779375600527983958103368165831170272965650816496307883397532556057615714334740402945875240014300134329071620694493635048240420321610392846644524818708222688057760962709923266068816163780711579733404970460438745735844691853962889866469233904960353959057986901403159762038121066669887826347653394720534563758074822787601780584685954896333810286037717993776695507884425039378915893324377472518881304143989400149685189000736921095937322770368464343350824934108121547337612019182689160311207290300005166042070881738566397183608045306178659442649389769559858317755664849243433428637997547177905167598221389748287068371777947696947496698362886076050717828905576947230347384916296998894734265914106735662796097649443493750260129018879646908125905578396732386249230287996996117956674532592439406298076952531241937016969365703260510910926566170740752235474416809865618889264416906503972532730338771512411086253186165168284745768301879064358006199930602144167463864598982676691406995129753780332998743112807638574149761074995130634989963011510315367974266056652770975573263877806973893511063361347300639811140153748049504302366898192593546385671710779715050551688762354329627278095681790405452894349655234347396543356788104177922708058194185187646761225566744524171360438483348007388076613466016903361105852527756370292281673002030889420730597285019877994023844069324699761323101737356894225976548524167209829624457720469203502610928595634553723759238477937492437949300409156916980235560074163697159971296604634569595566761219793420105788819890875037783888267319485911114030546943251341061369344300601522527714789248474370076512602717166123088635644513429828972429771442647955822973536401307714310904499584599657167273739425736325329107290306502142448023841448048835157895643801280253616071070595717434770993853323561014660107719124219311628766637885718063030942673486862657967721161904524885377686329471358770055589483585729660919903691465050492810822915310284745221720881728585165496291478368204684959490243097421944761264316894683170993813137542344621813892005709528449489870074762768786865973129661273571745762104094487883422138442886826463791561967396793335585606316261917118156679953799863752235235886483384792157872433054761644183762612957614756650706728983839849809620455612072543381274644030323192456071870757605615568924180433283012064941784371564959097486704583331266657063704981738487837342046077943203834231893715083974123229669456895577827545658450893046104168356547047864634501989030754010592241607338536230205091161034317019511654681302222657503417327744576921367046509902173687662442921772884703697771409617509393080778837161964734948305076986443413150591741668070048014624569826256065910689832405713613637272756797976550775656243738313239970080439026889764464924124818692520620756002478851558715052454825756050396902484814625963189969198292629464434061923426944148103239065789878076868047836316665322303497666261329013636766580566861598037528272070677951391757616417160495461811886126429323672741800790547164764854141728924187895713413180580824810689414093747918117556378128875386038838153124446441767347853852902188552045350307968999108329753636521976433507952304173025314034194434758216552689121016651451901278932321440092140481818311187047623905310887081217132847380652704261257492098134202864200909469404527028177338731413570364238649031088402657327313987120257305494233331572069975139038657606591791184909826779296305403939130791245292575757265373022973835833150471459496671570553172993616334716156745270717665289323151418203006564743857074813980396736135329314368845726170510128830131318693644449106786016694294613498701241897873888321068545915981185438694380969631482278350534853185953883888110459251610728786174860795147913055517584736626209959675481464836575712871059463431552399305762905725625521413157110350055839143337323749817980839280718943755142486562917975219305293294496780912000021634499893180922082423433729441645647323517608791494732728415508211329341025976017016411592459216072773638398813831459421120106940990286378694850726735991293996025563095775160987446361136988427158245499931930111032108525368016317191589862308351115562746917304674912754939839281414645572366479251535271806131181887215091195718540273051455021392549141102412442651136172802535364978359831196569168427461533325881943316560116439138268305538966728091677798626946787562453601866910836513654108579899789831136891877242624967076611033308065630666586191584506332088525001122635313302359478018800010802373318300781860762451248119579116720417563150949869443839934353411762714592327214279430407173557093413862068885294024269409006385620128542331718037331335758221709088012403307549114176147932827855274907465113377016468904690966573323646949837088158435536347360628245845308481922728752211279337710572226056347691043946145075786764254235293539209355340798718190859194263961385500475358238453525783891270036093626793187387024369093281079775037278902331912583655120024906961495530812123823433562650086895807530741700993957219539942238402638264523992487224733333782760857709122662399949273112978889640831100578257770355147108089483536749135743772033982691219796563257831001741287793112073303752342195370552091774985351620880547004472874391773774165586357391309770967865741890266805438417168709262218445412204391771674459172033383749267830571972089906071757634167285172874682506494345762909047890410728723224582667980965084360722047053385823331121297305127231522875734132621803498399664126290310144450059628224913258514938588416641587945669123430564170832759454404390885576762303974257360728153448749531186567381804018666491420046631083971921430058179616441445169270087092115882535493693708703006645923089926248382097823346942704531860892483492026328792149001198967883097534948886438259199496822503443675558159512128022170603252276490990499630010313941729225821367022951787250823353191841884290077659550898511020905955020059079294803294363893229030180365739633463363941544433622319416489406671841246819066894431577114036018090714388749229960725666616619293948713663301829265661463325296212145776966781452823184859151955739803979603006578772957013007337020756334069378017426031312213938006731324857008324203455439981407041263277989093547833195689854295908617584345525703815675172704876290407057982776765182464150028166192700607091905101461310476512413404194064963118662783424468328970729397113420591722604910468109410157191433873405249850791627431027196503803795506478226797676235372515910746314557264822504876600575269842305888803076454256294132509446811689577769175045524212856501345683745841097905611925209154992064181943796349060821159650660969980457432652667704557801475056954836583417660015652558126269000618576817558826061360950362168122024507451986864917896788414825721321234695913458086182567036444177154049589375279240537343975698164845653756824445332715566266460609119172774630869961364273960015047458791396578088046490397476043861826933405635864278617499402284758799647211864878936987077528499104135879453906117464529728353764780134826996059210118210456351713289036153765183290335709503047860633321988780570474171609531229379799495666146664126687303916990559607310468732234567617970423313506213964764550963278167100777315942318825232309273045018808129512231668020348508080824583682216020316272060884261105710616490975884573852459011539231274847177176953120898854629802342788286474943173006416543116818896651887076279132640456422404907175905558428407772880692967720012489086110260272646081747151167790855159892188917320056461924306025903126890196003287352173718377090383878882221798914175952554634967001794702587769858492649894886219532786806319707499339148437563808399148971591320572607985066021485191425509886519744684921516595363827146737414941921992135659509868038116388451557240600842954406395606382674341645701031370990248178269229971348757795386027156057532533142666888677738534362008022680456803838864025617166388651361869776421201908193141601035617845080549584002125520685905500335363697039945887979448751096125424830676501383957068902780659346988472672595181407551723085227239896352542278449059028943211147204704356831471452726831691694850275487360899898669199583067690236193494560696893629494039380717620422920817814410556473649856570697426717811077451628724063358057252096489782255817411254124291946830307443347455272543197159652084063043365666716308774049131791093481233763646473280908685323676088648622947095592336951007426712721180168107964320816289261216183312795552101586771111402830516281985548973283008069278096654251847422325091093690782028626170539561900391731194700342497677842986642984931892251746171302348109307700579451963787427539097425935408431623664112139508970728382428229257093359743630625778504978287264745524085847191381149615260904516795442591223386151472140281360038152071074942111761709726375628542223548321720194449872677788523198539979603453325693498767473011421897437167763686507987935912769367394808920052008703037001265603888752073952075219479670391593846810318269248483164805271724351990417863273100692928748065612725463831781099625878590414317647632035820344084151941804079116701976708814634761380320152751559504309724184305172462579209556550914457331596954971517352825447235005196902211862727785024215161526136129307059964069908755615618945123322652390522745207038553312789321174519367423771661009711849098453833950012610023213299004036011223555934101161190924562602276764006774459591481135546172943502452227173759901735339924531236270368370324055055387278194858678581066075163142231156683442672133879049405386959682780394960118763145156000398535355971086956485507980695844149224316152964497708735457317198613686999246741593981045473256389896975870769916663103316918369832458547891699579800604215293749114685485109743134216689211789348982153612321100238338025433807786046433085024041031578584162219389930913652880712057196507041450858325499902892186653943131743347469111772573606431923094166684274809178382012841703223937580525333464293272035789396426695348802835913375066296614137393158795257438150415785329849062352559184124913899435030405094128494172455164455675792321495861005762815768698292253807364976284744949693405565585048088927528680227120351323962365829059250638977812756853139159858145960650180997897871171931159471162850251559840174269626768229524014475004285803781294243441202906686179283254605276543395133463569396994558489543394777117059141161172322924291966562969174045659899770142548157660545626009291195578507617717605572299397409657520739360857568206328005599082880574726555445873041711892344098233931755566727493906411758523255770752902093203027519490511080798188006963405966014155133755719691035506812273885624107342472159289254066602718611311216137471193580385481256260882841079519844300234378850488935719453069169153078536761017061348081841901166601326418322249663372900646767645572789392563253765188998477966608613455584272133021688281735119756146801377068147028356757252797676865285829526233837362954141063082585996804632955232201082018818061630289943152372195430847784912390972718352954690702739333904683668769176818730753024240277014775785878469891927387098570485595114756754588577095995700020321145698647995710320137661827838041687186847568296486503305906062002325352337870372266924305302078212712094065149363844757093956759942192990137263215535913227744454905326890946134241939576188135789881038915013722336173729594240226895675426775293062834756381359989598810310962485925575973502211793219547842654988664349449540758615322938300354804248233184604917024074988989722168231507138085006062585835421800787407158959128982241572316726485532444379894513907769866343359862650238981332941887750060489455167199428086301688116576615974864345832309305716515946793764954683923111463599776513898236861826175417568121271282190368531044110906128096158597678361940281930617358942623846423463609771928250564967598853903666854187780580387772139451592051218970635141333411819960724031384787203372695909274712115107842992880771600844658709872190462675028174245172722597211562819995605584837295051414570629432566383968008212642529912602234093647234826931764661975441928185390534354907725323792407480547770116465288279315920905071457116572388775919994760570912952857692851894918810084374649661893892761083156542327285572613143846225462558242269265276502749336053915463394995914814206211946753607391053963733717238036237135787942665102182077681261099183215676601432694892725702997979651793590667941125831496993891381839368711248214538915477945905982569390649344758832705753184910579412794731226050002043892500932146658562370268453319129326441215667915647982685415244952928821092866298644372790067709184377506341623451527083145170850191840616842874977292885760454775713124436675905246365210172459679005721356747438406992604680779852790463206738980456695786952064087820159210172769649426953072187187502205567588379803019716003422624104944048774325414802104254988765824569511825855646668225764449729699743277258818251756365838500112568542835613248476923915150707602362556742325150569553091874111436210786181565516565541884377418297920400518180386145027304211640776741293673686127093854049410886529149455750449873527763349669391836684648871540946950607194690263164040566476129696921694453139408254490393551717965539140765920760927767664815841940378307873793764922588270709358240008278525123118819138514843867553151304147127505969197445838471652659220909288729840932589028754566529995419417202809725223520793802398889090715900076620317744758727649642278619928906237831886824201740771919035041159189570505348237856879201427407160925371817758955291977217818237975090343473484765717475427984510681282198607325591344172591770188457231978430465235907006566234858753177424868894813678394076410637281804967100763538251146524851116882777534640288575827209402623655447365757708788826175957260111282788946868848310992425570722505721021389952619330990189338260406866683428983946126321504001720969521851753937743208133445491727900323313495265552446324620245186292246413935528348109444995669245931048898133254659756577517461418093831675899145105886693058758694670600250047563375751523922727371734556828539238989789495764413010818357463100551860147329208698332789652200318091218555467641292678832083551959690859814564800627097036608263056412144683257227871784319477807438063414629056438277513671213106423455127021395229811539991036184111501897067005875695484896172652608880714540688365955524290703774779552919136257284127152082907372713421812180825562576908789954928117703329981206181860012172346474047225289869925717794655844037580272018147724414872046971391957140974309491730824904015596108832458852248828583537432910182760927901490133325816016768707362513116838036584280011895318749199619640593046371837322710585021659279883328502012188061872584400438723410857719287836219535487698063059171352090214249548367482736651739054787326819649012598065935121484585966835964736925258237152167474160199831078233239602442534760240391852202938718250688523320832939467431439939244977690015472563398611139523533926080803144044346336442951384586441993593429492016110245062259773501099484608865411212048464635175706953454084434526333967770367875532336206083734948754159974145664069093407067151177277274723891540971651144940424492660219052609753117906326103720296231372789939808379773042821564141169327966056085515508394457390188326732064112537641286360948432520378679231211553902272082602527709927471869172690067696948946018373244468000493618930200466139756166176750572980877105192099136495898718970930919762752893096912800332346302998773030067794269444396289927907346392542844254577821762806210464769178223814274660500791735333074504335833360616487935908401509385535513254728525253786786199834022166985797645296185542171429804949962125696809167352655102258292764405518270427523487072091871626709725246429448936713828399750201893823127384815082005907862657112009316704137498835763480517024773665917395583609877164645220469850945576598745293457702158723424929200693325963875755155764665697399052876604817533877391179654866404517084805098722659324061687497601997785202248476918518116488257430489377690604798125796195822725773276274654132438943275551381143279139052278001924472917311386131003393130853904003196079483054196052760390580207202766279571464800553390183942634085528021891407521081799411284931957762609133357147856429588565745879679039668663735495793157280035108287552201191956926770918779124595583107798050075995059067501640779369384816698032969770438089044401096317295237112896152460747508956588736123619322744092577532797910943260567200034320805656794348475207468341376715479083976090004407243699564840098549316841178923495535187550305241336500218338864081418373027370403384285317861470330793364305949437165599306005293835415658609427055438788125257036723169908017299436194597854521493903404382358676486177937099763666010061370674208948448697254498839350054284817735083983719651609233808473775073913066035825525178313695257604142113306504308123604498108922313242350053367587115943898107995923124098914328894416361117666125480724486004959389462468860080734703345671206806703113727878839061617422318291372890324625618008782436604495262770236283660955578493350064542779704252638874768175723492624725988958280150707374360101056348998302611463320968528542442400527292049340252614832354140123958624554655814205882423888059189038006737099408324797585328361921233428295272460049719374001033395494881898042259040324284269001915065269389810402353030063281794587950801121131346967952125427198026479688801763737081943706809290522274633317079002238061605686396404098010043840817687202696871450775492521894334926656564649630370355420379307273030356543600506200842681783533016390030324827361356186530721577811644980570382310311517334550360940322306102978577992859534119838209623925423496299775872137558791657342653859403801458401462555636152681625346453741749544888114651818175900772649269256864939866389479528046529327827691522433764407849739861401524662534625871703131304804023182407583289162086606013260621707785845072516951505986682610011077866379756013970078048859198530553412491097203422446148773531811341641305905568234889067311085501983511673092606065396401983099679803258537230834246257272413861246644183466000502446895533199630789014218657732857063587978108560932005110469087300076313666396307253639994385236861874375018504850169638313624997894702237231149103743122370191452658656795886984280879110166277765066571027763610465104482813128181951804346259704580922306104268219752706248952529034101555894248111488849866574526813341899109407886396125581294467147159940446888774732511170753595626881240125456731085106504306424365961358698316290917498630781811484315817947285107010794834901199302252292258316213453950560959377525660292410148191736150719450919199336107033933421359744870200921423324837440996459277050890423088983561934608753967791510980165651822214461122747314204536573088551219982758087045929309986723530021382414001500981848722463342738913803786362780724615421872211087737423650604992572300116461156240273408307284990982587187404017442046874011348332914303429706174344607722142403891167351835627197048424334251824861286669118630123544369726693445774585055826570703755257644555505458331927984479215027951637525666266384330871459694646558017047017897186745010398573247104359843444333478096627015970318022598604738298019322227825942768840059560823902452447727089329589055277057294402082510281453816294130617547604254788323796544814076523007615197747267404555954579833088133059871409775207241696073486862304320215931963915477583690432456795347240576907539990366575404991766060145885554564916117868388752034555941825473830061949499224035850267101727464951073645754557364629888472748377410931454676134534234302805254822949751654429054222847723119599552223052355229525380036947079059347644413597867089384836600154078519549391772083681867586473986564711755686559175970763886321803219621006067203645717725586529546320477264460237981453680464534321321683676967061611788519992595503390660933215673322390823022543033407110087187327758078246362572897604718282106402149843664966908349593405475105023118028125382358025148119314609850507886446537098432496804727542513320550513496611161431160921279396339998122394868363963512350285128809649529907083130736890439736547671047996548378673662071202541968849648916504220393048542575101857201616021014547226137640884107144972874136760964425905281155947631821509886214340928623967880930564107732355187209164057570582694467495494957864043152204191581936583915006788002533762471047485946241699552678687101382959064505621986564915908441359722313408640717396892084287521167442602369360635177857609957373935877133312068586669313037523930495960694440511624560684812009421248704518374772779796077640524895903144805682625396356781163785689102754835888944176296248609246974060671547979521686496142219433305879137431940080647267397001857258287113517639451471845297827267833172433115204498855459685791757056665070356314298190873999297012326545674374713996384271863527316511593511452830176447278015839121788121004297111436510232653447392232138456514845964151190789141145736554275447140549695968685045264473586467187034971173730278468672784413803785087974345657451166480593894803493528871904426010582398403348884583582620478357244999317093369097129294208308303797068223428348798381952323840611559286495718028614238012135956306119550914377203405100058764714066370257198196546833692243458298284391300991830167233231300467172292834100405615215058365298911224829729091503710184373970365973320930843655888321461859888209894185289431533353364464362315487289505410746562549173432131523580240323921359547619222195405798280448979475374825075956223150777316296577766494247940143410577406497066182491952004995899931513082593878679046857001340303315475000924004162123793090105113781304904854542981900004914423779210412929327615974765420598738045550504502931759859675802726695149611158190806572507498131674889461380348681195092522231783710029922489242923438051226352463053500426045332079780662470648069932369446034352191829682420669222313033273667932983965241950205805717443609660357437080193271228518431415766146410048510236078631056828075260984536602084488357549014943227055381100599042632575483322238398673397319264170965970243808471723439119060397880284494326789926139376114877172050228328239755072258022367308822982530034446409944786589804883859309658179815640904255207399488316038060094668461236706241480993277304234274684253046581972427666824091842689716814059990483108993541120543232733304162520892070402469837068425492953813087637590355261063830487695330449381666954284884440321436784135831014829209429022543012923310659233162021755913487775239071245680438164493097751772974463913414922438013195699817540874006472734917990561094964686569620412110188561897274570134699172233974540080863274105061572497048338325387306532408344866640597557933288844562410636250933795145305294843200527505583411674400678073739728198701770011803385208923087424350689908377194008858369547225974698717391300798902863290018759717948775685357258793793854571681331747352692593432529828404002682633645221468190151905568954989310566939378793657504976406251787625369112766629894672526699407791488870421209844902817826966632671494217043978124356313129799617292858281958178817211635591621956633240198019286354427378086288914959028388095183223481199775789640458751516925524021807592696195070903687345090853624950118005251823953810090930543240693519615946634189472203210107978481628067389008841106341567948404627054678916592258860850038547034260803412423761498567289626700081290147260323464090187772090827249812399889872065640965681772633909261355917713702633478230358139670420299264351985301706211064104231969087909347390823652996436926211283544749291558096316914760917751143739947877905100843680227036472126058183672377418463431469560561311117281721788090034836653367023366739659595960180258530900470319411220470649730305303428193641390976215836058640605540546803723722270823890036259581940495286305097074542439001841314969267836557213504739328337770998239177282307970909844732353506472364989448783095102900854291754249294293843491480570211271944294918317399232128225790847863370534403723055868428423960443450220945183628881645051920908070662665993022382397078534361099273409387908364166144089387306557915258552901454980454169512296553663662064782239681671984211270010034531522914661774321828165069204148666328806735374542238019596833156289013368995004792924077446729668570780353004980536707142057182483339694782758482121683658818110458363527934475711334601281342409213925738564266301877569187401702958695576106655110945004680722195389552818294839430114990261311258038757514031427232057296546820664387210388389586580773235533249965444087986545934347152272931238384233565241677049445000817582833792444122799262352193401810160807283937381476010394154943510049231659965430788993777196264688875326033806791911437455003689262512615929854164449077297207777334396239491445733939215836461579668751587201648084864863801247294537098644077080609853644261661661014569960033343553006704600902112381346449283162794282182629455512883287539009200063992816777552478495809774563450682279377547288601616936292697444432245658878111872636457862609834130792807540226240121503875170494907386376884306364100680152391155100663795241365209847039291271598050299304223613828052189674238649074715627096543040133550009370344003699626754027281143501446775576310840486259780926421874187021783606885585084531583812665745361002162136831192939960749596744154303126988814675954173163271886162389886594563430594492378386319271112424806184785953488729010230327431692900255579117972582121173211236710801204800724556938292732837880402833014735620322500469437263158883779118608020826807527442188338498207782537402572026397487928202016744525169134768335995347258391408530850468309267996117497642976276599462716376245116874571579427016339423929837528972346374206270710006005452948116628800882043436295498131146089940333122946547506302128350522612560898224572275490629067274094955918442230356666299718444415561150356793564617716768686592868713851120199314716859705284033252828027015650982342796158992395842368148720901636624589557033517213520677832883499890868272717085174616550381228921901949648319805165741694493939412592511735421700975126081293889948620300986146434624365828375835218678635245670218619194209097865842649904750376898508493538319877744967081159638655689014300496162936131264898783497978876397436555321003891421328366350549201175980980286808653169279447145962142765529400594669148077058800207488513888824085881867387450362109065365810549767839939505655213750532948490152426524351959044599751544164817555964387642561865746680644248347928944495032267332103183408528180739172041133227814355940263800237775361984528441141439896800624232293478829672195110257334026200607684113615535766329211918066998212533611886740667752413522991690401975184493055520556568645408630877651230782926051112171281747654809523007811490350299847367929393364645751668870079394187121891833263814350505291089196253785912524162053883338950864756466017531640355880946157786467002933601787904490295770075476822984953886268346542236455046552871951826195343136817661601094662224404562005205118401785803293033110780324506985942740974275203588875025476206743469064948722793498894652916214952968982107685581239943063268500357040932217122542641405261153418737057428353468981206725256416228817566592897039315926063633357300133484036879723820385195712811346373410018894664586386585117856408022623161598093268741166451343773395222122170511257902595224138002402766551522726725438227447343693291201900138862636558332572091481152438916024894308368149507263591467603027012939078310004001635388137723956949670935236401069246519677857917720709530810495621688826374854230147989620039054543391376247256215700123351335392454683508239951399107919330561346954176544784573796171027604672780144035839759949538748503917736646197633532679388912474232336279321666535672125117010277563346010665391981847194978141904451939117243370774117553402389335749805253705191553112199421544023685393690279860490641911869775809923056186355304480735395675666040423253627570060072992233157069046529955089292128462736780422027285103255689511829324388989330828731694173806199978572959730079032670834584551127857671928454420901644359631743493696241247829845255948429636831416236747321492424183237761212392465091051901663219989660933331206420150908124943417258208567027463523335254203171357627895194904020026767216236648362960338069679692268233493853230051556928768898094461570656006398823098357614152215326613667281997795443499551330255259132781084426378260297626521593329134706347453589368384881934945508043243141934705525878196568335773852311040435791262512614202460976430976418090198951629823950093568725151892054326284937003839091946375094382174077105462163103070440043208131365538988056566541005892622530189140696528679650791643244717759448734125888082145803162061980617415752292846255072197554603601675630293429791361643320139544909159172793694993593186608414484191629892588217462724329867884383737620431837112287547681198624608827766551000139182689345764236510566128131833343772423947926526733416887315419903474443115555256090165997380752221807512050567628445888824116023911817468696278704503229539414788039554849815000623589495773033452268820555183081689930839331491380145276897709533571276393626124459033954377964903753649788337241250565193398955309993885632765605360535659056968829286560878347728878054968207420728082481460004974570804734188795178079256690093724869507025728314374005391045013957581313091700172507405376916796580789464321676361890982227589484653912425212091031956454458958448142316944930089786563996284460200421674865471215222626243158836505486173072082835657216793584194162890369544278524815163387766181078839540871727571852944255217049911030253177651457563913334801326236061173809720881630460551041221578973452282964462614405331308648648472786984396380096991119070089530614871388547730017075232290967823129969448190518714912411238189733310679112510067344881125326310633221409349726477693922343355034832341188985234147436672298874893229125049002782470654581814630528523874840237851875625373142838380565562623467140709698460173488912843216206221883198644791514712414380269162675734002892112918381610174445680598200113045521143706220928203071282485586544181460979327688189813455944122927306930745751391760171885097399794939906591108388973708718946764431808683753570393416753392317001583235843475526942134316819711994151975657063665784438995012073273549564546178211007146239527125689863629767386274664434360715547006019913803444015552709650855555464503664939427600605174928142082972530583146372275313699160140445862679687266686717602684632836627416536046852296817816913872798624783645750602025092167284700852035890194712238269036771164860501484957400913058499495975600336173094413649605522695851156633313187169590349050184197364039655511263254663674304027158304732003012671445866735009974965459025895749122849351239887485804366876215667759929508113123836593435590836967339160245385217585873405014367812829498158024112663746847680033695311481989018883476601805289082018874163587670570051945526333278196131197718033022488130785681651957781117814442181557582744425476520158223676523651203861404502432071062251759484920508351648183630521401825176527065597416194725003724902230713851043152321745769644344390581081225518176463400373128245620977702206940941127665562390592910877692038948997153361872178005525565680421683243046728150420081998468832116837499840420548458427778493982428807359259630117092401920381836299416780022035781013731206911425531254920937314490406496714017730735027943382468559996519205829049160113563033301932998785560669023756150621436848839520282247743840772607434561189000570603300464156487674155570073793003164871066761640818837844397751000565848579136647579808534127048138962383590343029919915987705646002457624889644262145710395596485551325232237804287159246746989673719762972351197528676523035046260367390873849631047482335729836318569649193857005449808017963367419614607215192080548409071054460154395025347105859797043894759371275243963748596062239073663487335940700861001669296396362684580461109502825447064200186810769810047629585553111935061552284522132656836816934262372640768056072999915524248723128567536133164941676071772970965521982628102795677580212520980699848213112984396553102935299726228104304791871439339613523378877028230919565553563503598689005376218918454581320998958692758574565346612904280865815590126664668134335479263531900931726022229445094705426805673505744026486303616144048391726462101003229650866884501096894566369322067693020958950856135306055522433299553748854255312693601257117569750122704156658457433655389313460385320622728159231434251995012203435164255634027826255747088371597514426813069639843709973413990986774516284170291142630295453635014321515137202742212823484441791701047768704141754102096121817127513161978142837753358998279267984044806202634111781644438459524077945981935167444449254664438238889433407971257016660795460918310576939864223390643373051662816202586913480928998434208172193726075879280905342131634166357596150375582922412363177098016276173951055783360126262964755460551773722255215280468150001731662961794417627178157922521387273539757184949954356587237970345479556038274145966428157891384731650023782853370702773026645366718252667354138334193371391733272828898217626033332239352559712757664067761636357429922109775997525263518402855800352501140937516369009809294603898445342243060945903745364202755989546591295695827467619613624759315587413084268806828192020239887097013533258935482684835627769428352956734957042994403482808700045036022129345192980357469445736328224273000007192479298579048231649224632787314809397213643098886759342218179252843378538897052511175454516476141104728643989955686964006883500960033659161473781699194141611891044240710175659983806036609987201754975789047340277013030681554453389494591580811586300606073143303192180213251538613271950726028644113039157752919625080155081431118471900827325213735008566190583900248665095745276546921316873975637877219811007112883846564785458166789351810712913184349987120547984460481807272958737707893213605872151227673477278783077120718476414084876065989697052823973245100521044784950352225857922163090594292430866459679291213154622652579141357327505735634930856307696893575045475511094057867959959000991052006977190695323083966673379344918596178373975858721743667183536338207521866385562338223361907871821089116789889225718132719308429882353913951006316842487864497843178777434290039205836745212558845134673682117502071586202216927671201959514790726773323022126522375580432775347847530320651621408422482519256889279495853528293467175052379865026392686519171415918110415553092018678647931790207341767249591083881492341232450374330794379622858867366531832475828753152010279070373898267175579925487345785810374561576296809568115997911835749053889320864148907260494872614256370476198576664352536245230211962245977202544336610102993435673649055943438733136419541135670565028276922856840932636763849845655949023354895978669601547716116355724454419795343032475115536324521451047707019548061021213025474014300718033670227183373313538658530135745800895299374186636202244319227886460371044283698378507834704329328703282641004178235574826399958278740972593343943911294088563791964562351244269800807285131068985628213544795203378653809466490515517134803661079414717384922845765968198228640355699466724347780135000643530564121697571725473454983555315167099139147026523372963563776952194947749159531491445648424757128039510529945048114420908401722220435988015681571001201387242161927854298499989605513959762678747774695000955937523896249419858350492143971424591412110912460412311342666813643169730993666507189738075699569078704754939681804551139021454587633947356930729794913125139288466827971701358066775809223142574728715518037019741778485220695754729618648872947069620070560461459019676518656609342530352694572926718613762572440240466794385920646403452633119125767277393557538563571848605605713721236186485952792349158578070365065987291097154870897145580354237858197738141411003837110503073601245281419432518949994664643185636882250801581813882482178618466524861428812326828274900205481761094259630326635063870090192154229971385616323300130209564605417510818305444930132827043926164948435186112588997263102549682086005027488999577985759498792021058056112311149935025993883794885289818325526194653111185059692895337650060618800217567796214771105351509589461890327360081613730445334482733957613748854918515033013639803450843345763169554493549120561625833128110576498765812731323164240892730785459420051231421589092791815243835171796431981316234184688561954223260902763339953217087275701023254203911460564199466492678082577695952216678169156601654320712369065338615685606794251168697258388845134529664271046446349496615784639941269832620422299656268503162775848066796903729622666970232801752304909885870536052168665382098698375008493180083694776895332133561100061689099288747130431512278424006133798504616714548763222363988900410985398856191265155054406950180949739698184935790545969146177945217314064125743155820477083652553065686613030501643192078147896388351746414711934730557307687069752218656100261484701918314283726594762897323251076973275297800363483389267038070730032781900566876807375099743071622406371378791360994396970663823386619683708279836103558480876473095376617743395634642494254478331996181223271158174952624640018652259672448135724059027367596470079872038594986047990306114388414662274896685603660103004812411294857482703191392922567401114850643494035599719426580264879427551575253178393736907835312275336632599083008992956684476435855138290706232494463370896668787572264243783842332990236186908055142715958780005252007120630247686729220498538850369283301821910050005650356242669968205009654600179079770051689152392740606431295923133216030954090159285301123917381208144204439662957751996439420721836930964612864696586521373462393804611381962391274033513658369889007748721201678653470035863472510932031362623864602343659839629538412216160068654734786873544480330994201461345031558181944803005922641685629887783076526248416286666358080381229103900643732932640374123971977323514095339127881594358350234826838665926790694332533036151404619909095464874420633875188346917041488514919149334678416193749204775732245811875584766044687755911378423350661155023528037686917605903283108859284514570423226748963924277728058295309374231542482930434466842669833134021549421601356689109116207251861924146729513838015317772573495752244386765880803102538716184537702319260565577404052274850120191938692613041827518947504355602024045523423095721453732924368157773857788905949115760881211882888105299223151428089179726068236952409057086104760934652683932665476212836510609856928141532494265719021471451557037979355831822772613328608939513403543442647915686438824365290659671625586950685813789058173451843713386786245505615345890392279342544399101447662125350297294650680371500975924386891841321216353608734984732275735978775489419063428834648501736352462297395884026185837087857822897125170058766290054227958545231073019326526334845303428219194421983074098384703680176199707576823423469059274946218498437430081710430398894190205633375933944668836314393586690034294356712122896293472893656819794831621143751024317756632548371607701153089680324303652484603488138771024623633983758855991220769595535431050517072276608471845796510910938536995136203804265966405250796719230256366618567536926597086135838998877778622619621087151447834961483421099979809835152845376470631561378723783735097738710736140919577468053797375084881872300742336890169427326399282595906199425508066270544714385607157484732868670107218027278352344173554091442250257848560568713649112943312224842726457357663026213736117896609124099219302083788882152084636677403296505858236702829821114107447813125750898780486613086781702556529762359247428250810223032466005926602663050371667386732492062677210375903947103622058565800818698112883501246005348476070484316799765253839613389972594071646984350624512784907497065545557003350680891679854986577568150301240045793737824762525442590881833760998400749528790969413455529568028983277680655238225149262034123375432182874412979183537449502619733037846402195839439596205457831160344017196638865924604210816317282432169945531985056118692656111127685626585088854110856727259441656426003036736699187217967120623975352474191309294500203571041086140308027521859308291864818323596593082894527755623973748494980870707152154925610657393875829180931253990380986213827890451151061344495443370174740903537383428898313800789863161272646797682122145752107575473126693168570288738704719230311951071066988754760629530606987194548900830026284978006085920054455730696984542045186512877330300499222420085690867628475778605074517199312104646878334536558666424973573341267829357235186402769544068393111539362098844302654558882582608408553854465217497835020879687943558509729873997409781060110897761824428674010499220103843727246865217483116910937280021766737337063100902827807115230423068037385224882427060544625367633175196504104958310444499457872471415297747465412348380258000312780103519282499330295563349163024435295777886810162938348163833899022365536598746517266590695586376395834142947369114931608597252750084965229805833665716517748792828444476263612050670033575053634198428238882012625935644202787326160788840657507305549200415516372437577687483836223923357233653210771237366245855258208065311645517842150720579686538844788750896044834334764790660387560061473787706875636101325667892569271238459614100634491494560462509846436847615985318514681796923329565223926464629892856580905155595824331579157466940266892539892633666728228754084065744730405295809120008301767589115155715822025614378696163266833708157649594105888599858932230551707546288520988292481279179552045462019098039135694845499832909861373831425020125339899803340968359699133268483459919773884719750497326302875303681562891108029813537964843629130113264200988908720945225361818393109070768311354283349549983493655614607234596646545522527028480373698093209416431941089790382744525378838784536056100525713103758015629725275802373278520517046394720223891222718015439573134892003754888463988756429267175667492735245802475079890016525688071268232508785751631198637386072159033053143471358508160783513702333363582046689305206972730146067974053567923103529718811371592135354007239087598269068696280970146303107822137507546297768940149372079251679237263925235699659432274692574788638333154521031312099732886343209358560249060929044804916858041184461812631264256566813618917312805723751748871798565217675592306312915028126704436281413054177013426351748538260243055256713205663095381483175900526043896257577128148017558520438034073508274939081937491200802081464476848087867498061908945393678008000943340271261409365425197795328681499495155344271643378308512697724185851380099635657745465741020283353776473473213054930082388708665386430998908419562612191886843861460024614590842995260343493270195203644215106993472202641927923112787100648437730159221958076322201797238846435470851504513972581643019627030776135532724065945869298866592380034936157889359594840114869187362714423069635441172326272009509355139426891088519955435738341633430597404343600790621385812951471231339114715831364376720555831402880939465463057007035772691625674198356012610526637843215389370563677945778270614785978458871452565533135112531448030304023887602968233789864469077750506463082591345352921359148576770282595164838940697902558804863365552764197009210224409625675065035727053444634199968336665908442659876807588129162832077636994945073999073212289164705896353448689681227550719745200244848645702795566556317037630376953007720262719239871494414249226405686985127162450042250380701918633105972185134456288393681783209320266362817769324971418150731687006195323896543662185250032246367539118719493463722867554979654998186942925822502569825680497076596917562966602149597915186783096924783474006634551124317011369656838025835722776871852855369336130271878038645082448437468183930329750505169640489625011086248634958193240513906918993944926541786481831136799471845717721372184817730891346056099472998246768340430421103486562206337874568802268015205677531574137256639074197655338118113452694356934684722385610329583962206198389226864752939333694021304271935388891375892580992605098326576956308101473182640035128228079685034063655016299186971253657536053501630527175512528457568793020935699996476487394921163527594940884424471815940591081464288328391453916844714918122747579333755663991373462917541938255938419688719010578381800956441127373898166014925449847495592286936573083769642202188106717822353150618653059390863642188617850555108699971189270077844778768127176012245650025879718089358720590044086745048902930062044053878989194332133460388771356057187163892940197585119125895567443105170114117821642241795815394607654385767344061237908950897091612142860067542577762111375359089019088121070721022687573779021544246390204980293404000876787558405353510156255278816164534431468384479839534199509743972779093512376210690654529284985109142919780630000045102213045461873371596737415122645923731284535521854514050477042232591203897294020592043823028868120969025849955802746963914220969005291038765303706558463373743784978132930103106576053431619174907845097698883099656791125208324532386135702974513580315989619082272707844984888410400501875873883059128800214955194595930307411693738145897287144522723996869940760314541787455491864233974848436562726737200682379960684307854040353319837934679443358283915091468993405827768626843604309180004754947165412240683518725358498414530337402151916073775563076326038270382365983020367092421875122760601637115241784218297405306454355549452009158927186898544991687978597021658628117363435301243648482113043016280798400426231749824934086883876651602525947861825535185204132873772086465876481873627481823859789278814160657124194561632336586038076246141283064881174771743858193268166688836854543661329082151769942162569839922941487341161273540787606048268545115573001552812034284490744557717510948908699608338654192709276113248143826996773609158573932006313973942286024594070906165456638301933709992101618163307700714782374500964572877426200624892575832832149159116774272694401610686583678546953372345811020435809342245250635502341260974042856530608663567359337246284825797300255530198652500304567216949222267254654146823329444989239228048360700539121729143681652660285475977138136054820753462000519227423861216827279943388935071889968892912011258975279237633547675264893660387056593509881307533795504414844075563281838981278637034218948254780794796893507459458067871975814828176834550747922480048510413682906285628271092299613046899045312360333093675801004172801345949980524757464319763675130632123127236896956697032397731282642631775724793633596935763818139816039583949808802494796868139593735030399801082714846551996070585919882074615058264791812657071119317780115957246173411864732263012988800281271039475097679875588364975278240601008798123579328124720880209269297201139334107712663309253422089712221874356509081461158464500610368666308940651447971845420580817496392352997600873167960956754181913942493680478694217822175942883591774203969634844588001728714034448090391689691097010837351322343943998521497175218382916242220161161252893420403597625004717155381970182323517872340972382079732023043751317880953594898856499555141369558301832114631830130271895641591497191648026167299185468110839390151605261749608164816368060848534707412179768085145632133880856530456537312605473365967533372657936380107152983227470384069889048764185740220059725093861465133232970950316139875621143946976929457728109429604081594278116811515122012517035904981207107969725195911546754504658848983607763595893612005410791305786729571586628165953443586407003974543113489823499059281526965497661366751927065259551306314169894464898010672344955377576003856782822919919920673346702820207999177510552093697074667980792513583223911817947514858962533894028628983224780416682531122432506709195171714346592533207294030562469628000941279725297881486742049440295517289384671179141013203970115653712381458956445258219706916001447897387626118826574207988512655798927920138583109436503405302738423316493331534427704573470654442279733076545719252280408580842069073092282783619531115277579784742306418186781540495249083049667746319060581911164266354259153513776527973290542195882822720943603197673205383695377861746355747381663307598395103307792195248509308737043710906112644366278781805950508586232242794362745501258876562444676518036826930882362158582445163512945299061024732499301239695639467978995929152767191350742539164102436290141199096880907304862017229282643112078370450244548787722475789126220951264926578215496185469044481946086752293799652443691285019439813974057610397126795119905819352324771621965180333393189168475067702792592167036890111779836210841896335115577938499556062212916508556147512882918228241928712425262602124755782499494329466748018126261952565322332066694948991193385108665230277488757817185830599665684364429535051909949487313522159488534853092089052540034059920132363899940167050827996924321753760961646923180986781085402887906256907812872437330660691968566181597598811316504508981753963436040325112739277849794831173193011170568087700174452736504866030077810209720147622205742309427821214757057790286268427001890008525958073680684248122508217762887237438532525136964182652937092041555890889622189075786546417972092125123497943806734151945649254386532858192843809486255432176905041271984846757470990714435439528629744199251088178846670228832482640200754879268426153127853277509874837042963662382521295313648280394642479527140199971508957518216350387004876702262878825588430752037806825172644028820919238575924108556012808861861434573131372151967103311374640618161442545317907288782907018878799629572737899715317220274364251519155554795238512124463619436865474693633439527486497342088701022852172568826585836554528331999423183731698897388545990859986177698170944073309811379010399916247832347076847911195071725783869207980733414806348636406220198026453215641160197441625983600701629334215864629703888348023606308554333712927185272485444752886265065523851433829150153376301180712886510001734222816828369988061369757805334434263822770693103926112216279793752032621173860431221018738272973913035646512173333515099264806112064860743364051300972277452781335423276527824686563156421089410527578494173696821079371216255356740693919625266055544474420126151162290797710883826577348145268010450495437561943718636798909079483661166522406903458167133485219294633650238505253951486015428825632670519333235438203029681649536214758229472361203017330352771059104977576704408277229713241434033401883122812383942658282685897789829246548206750747589548162146419795326830661193254292695270466921926359548115974330901013593995277172602191013064132906142582174982767599080031581419365642210122596099852416879279740715791381996684160304119807835514283039709468556691876248700070065820556304434132276538646156136226795629238102170492649729279029178682260216718672690512842295453464247103389583239679182290468989520718889129304599186769183223515912217577825518252236820856199170343169380398416422854287451761955690776381468516546614792238104798026746090966493692000204127695211926703197200865392418595195361586109098868488239186698836131194682795312390862481049499800616367127283795913087910161580014322278207504203357836159651939930265075335310016858225856754493244635352920254109098076598861348629251760975772301664118284519761525435968104879843840975083095367101987773769153653918415449196573801888714178715463555980824996074328826249411965751829783912078285723680434134988175032084561350896217780296837830823529747090592663278526523408107397458436873664017279399109768882285019177603424257164485388260062911542867551423269025615813356224361074376912281104635447411067094079985969455317300659003678862576352330032366383494325537801931113993410580283182019218590019909909246076563550262908925849075707748378032843052114331888068033849726612520341502663174181242240313360392956754104770418412302586875823875626705428393586116986625548259484693109473058943280670692252354963338445334221637446597891937365962563990760263974308003856708199809114036156268490264853873172694653149909499402067512836345506377656554734903721239204587184901124854539388930606974951738135614162896410069885916184652033019749627295540188073608735338797844533015525636533514542722175466130954705366856765961222542599755489361547248332693012185606180923047456959169728448277619092698165015698137606910207306037435534445410383224202110500307794506272947952339652134541910757000951891177206762917114619943097710621785483405562691906060329981328664243743980055789276073667196094392357019301049348003897774243874487374752290773581420323100244795209810262327044248117074200502558181469713568529773645752387290396995059851156716289189244855016749313898288753609560212410299269332041100800698841397072544544816649421556903877735219169342016776731209776799269028078414809479739874770139073465929720546766562717767879021145386615282820291956118964935722784463872979783290425870486139535309422496345974538685379221795077544831242839003245824340543583421834656056729326523992693104988213560962718321765100074740903312159902102831923690229156149486653036980868903606927915045611494883253112320514062667092776235083888851582830805067593435511973196791914543420626160066538881913493074972561310809971450467593721342798724118861391415483167905691391287720158038066660000453684258083763532208642099220329935757458924369126558374343136728844532496124987720800288312493873999171108319917326773590386761378499185318347630819727764618545946550458934200301689663811942881188099696431676175333118272062119915397954340878870717036830337923294855069156240518497119763978874323548513212427290755470195372474436696406075494526484799087930152175799788208211951296417309231146364475564162037207734340993537009828185908452368458945346483319730990854749552320548575613420683773842878490436022396561966588002800782191131554969380408169877819379072980787458161526635625647355667269862809844494331148172221937589023913779738097797284084644151401609465873831396936904599329532637396699352272814475119532878610475604016497461326182885757730825323594568814314159274904156176428111306343598388611776424621004473754669545375772014727470544995592504184104879736641457021908864006651663319464604702927388094202585700076461062658975182541131175610198384004356674043143029886263977440403604727939428361318168842750310320696771188707457490045645456083697393793047371075730206788790788031916545588159039374150739735444251182157430189494565341903066584926588758680903114707069863552269948747620712547966089791093586727973069094719479215227436614504604452057720372149001013918521270844534104145858816667191031475572231029060707539950177904282792781331044635198715989554185310889068471014676975540533850922884805791254832368818245124686280733168970983524721549641517893338846050839213949321147201171518265155867830929529193296971375130260637138643817207481541735168029217715654407068192063815150645464537457354772263195919892664219985386699699496219425626001983700731950644361544760370598179821519390279722600940109328857298141629022758103746946997888314384300900962754525508582073926440244740923527465559933712975428905291531080722961884080705544549367843270785677919308273813796858802314149185213959185214185903241110800556508627911718092625140819194211417487827137696808022885295031564408749822144210220822814377534497972291733794954828964539334300833767823204819448584715932895169103657952822396630473406520520009915197687508403988849403543478639032917553784286973311078175681176086022579203656002646356458907901295815505258243872297641023817975267352575073884126050611824336251061188093516580805141345384742094968485612018622616708720154382694720869199104638873856601640528831049003837080835312991806899797694402932404389378657044088661720242248319024784636295711847383946520947614532116016963071256785017449997009598817514851896318832433963805554915716276061300222591858657235418624655416544099300937149187985106724800545956395027258354560997287113916810710818355806918074995311543208809073656669697761527431523840812624361663116434953849774862352723842426469775783807073371466167658464561631534335237690026908507122186734404395523202878303482598083270026951175147112854320941375106117746058720843539104917627373717410419761632994558446095070166295643340786678578053940569773715575713814498183050007350060629083293889559925467748569051264890144677957742651261235059743056837738908164502152851159809342877617161809819280611549414150627563583962711894894683857300167255299266552187495767245166310435846250572691010455131739937079732094705961854278310668576252393985074536222754642635898061655532514920009762291738368171409697603292889007086378715588076105298225854638375595732462375020524801457503828751064315046951528906649404669132692042219638777030075694037616038022683494363283399276032792340502381666313988672353470213974640884451753781539556573748819156907735879885993271664710489642419337676606304451864621805971061765451602163387988285572461442038997466897000042242941425200049864226358344395321145481566745810530323891674051801975419969122247482440408000550129641406755024189569559736242324776229313985765973344885854031870901205247618932184001337506124554845937255607662932276239672273349063717543193105201908891196437634869507341459878037097678953491114688760729038405476485382575136983544714890462276016069579994468831849046178725858325860277805155791553929991930973930104739914167446339419565123200822604277927343612679035981044397554011181223044740619946859123463875858493209907018090741565917263651595268274264097008804806603935480291992872236035486767698361264970879183016811489121680888695570081314640178659235260550066294338628561160594939757810585919648626063098139719968440863436140116958256279826443344169044866242551486009658004393864925780717291765829130709642470183120511380018123955546366478193657044015471524023647499703464066851692034025647374277636676930602391576763045597030113391140750587291675606671725541929879157361823983269107261472912739988148555831250623640026966692565665299374225993331721947365314141351080832033163759270200463440695191100918321983413282960718082046477414291430612175559047886584240984344434825442315529067215032568840705528680455234612376917138847641565162804937633812492437491115408027765668760263544248728208619453148068879680647754637789335986093394565709656559931230015560488882020759267946947247173154325559886781367555935788736506070530282351237977092553231965679939118404325432670143038831432841055317845661009178400444407740802695355261508892612996799965966963373894215679294464280893237688908177142971798738119245443137634935989843850368529763319321644322498397924504326199368169387279739066111709721637471121681298866378293626543987167376027078562444054094672002134416495457202762615896836431656981019987306733014612878853546581477145970878810959160216480269231727383623400600960507432289824471791305115611676459977251214214976271297330321308781964924778596338024518770083022447429533414886126191071851573344836768214430659554431292670657088434895172536198286823495832782087057972355145055938356165272570221321859552467554074236918845571173302004831198012991069149372848775663971438400204126232297244187185512798677327420434082884461701707603953464295846917893053606123206320738778221324152915535030175059503735918307292205338789702609148438382201988437387547264180413309637691079391770516823436950640297000908677521106021549646659415661680374789682216116481286904932387492293761275472827474143076774251224716623303470864610813245759630829367738978761335451011117512781758271920711412544978120240956704785581252694332714160387610020319959150973647493690530035325849515040793869500248883225792461952339255757072842901204290370469720383828379832668823894273345983115130815072367789555926400019829524235529506577903190529905531049747959678888573788439733477417570248231873298761464634579958064956282516389101487626985213684258838067627008817518821781552435545284988610207260159402596464308668227671487334033195285204830635978668435315116610020222917476796900733342472230039773754371775779452745251947469062382696402983236305720621734166690814276615782379798737267380994256309058295680343372714692599014975831327969950027138446481676404874119689215738292279150813128752732667367478204822987497650526217593745214828746669550698454003096711442397910313684669034508412583792310277663492620111884392567244313894938628125983091858437345651248813811646631654778757199521162879848559975742126145120069209513189802206796924424697031054150447428377861074462189546501560883464854690408183937311047227532272484533055638418010869735561015944537124900929454990726992498393102499905444098470618898790364207272938956388272556873830257030133419946893686388793137710112677612803890192277900459565070078489628036817605881427347790435055027459161563296600261445072997702838931117106373008047082524634579271555941486028171406157880828547952948224003320308404881170878533265044534505667250391294637356809038718477909225451545096316846791172891872485195349530560995159903134592895260157434077095091668328529989900152255819386830889906995357394090262002178139013013971986092951788315755285989049374863913517833039441911316493907428770060144861428662655287153958579576099270562783891591046017073422021107072590301519388425612575650087390026769698107401696465408516569825571906405598696338900621485103242190642517695069402946481977064817282071072848132104021930919202237401113249678714459386370960199230893537202735138434560326851131402192143909814050971592579285148057234074618631536094652271119443805949854617054281528452138137306462206564324196559002738513907872145821326228685903196284516910281690405075653130861400007121159790109904420266120202235696648520295762465117078579204821993764639601479443031972849807339948710401229544143476201338528290089697406710381478542574767883575817163594394620790683419240165081825188895467905839777830028820314946647223893877872426507996392052152398040882405434931033399288101187017305274691833477635588986716493921587789006806195082570010220152609556418413813736522063547296446089110243365086683367750961116935919341826742947528802895004080530332734958640061709937295451986708500390903182920540135943314599391473909885105583447138533096835678487891236035814150119206395288451030179395752246864876799939266877481234169835458050698262188265134407350731210076157619715107993291590823581121591807096337881964412158750321190808162213746540740194048085640637346397566024443529340635371797506713330569159643529083100044321687390752083100148680298584985003497935400769996031335229115585211286338525238346366244368099615218983582058779024215681915598517179657954720470064701466209296425236210264513337172672366918346227780147759956524336469517751577989216710900930067966459845340335133635962918167493728717870750443607070507246972964364577243676026569485890104230908311718506762833411274895969483675541806294294226826219458352634477478331865037698693049033565944587189022904579352369163930972153872281051558226771991929234396650661090372754970143220857149662986667613340017602005269304678386551931947828366593484282385754553776025876861813531571068057367956940470648069115472385317375652124058262157979274456482138482610302697307510634840573498338687191774688255144402587399168480728284803286212952929077274526598063296208118147134588224990169093268472400744994397965279530574877326977295563212027863813907431123493093830497131490300663024530898984790658364967758153392208690323667596799283856529275616899807640322947615793120535384639551066520094443561946961407291526820308676471215767093831749543524408825522693975353149131048647901050302658173096363419112051323607523823134740445924656059171328422832664866062367091821306110109846672255911518494274123086017591862343151344834072812448621026560052786264716181020184909491655597199134868153954931147555764650837748039525301916806841053130371308460724511836476464404822876074432099687225680130186935793414998314147741834084508949387249301974176897429130389473338332347955629578226759202223616570441493101267246094132345648369091500679443721759035263309363682637010459612813294188108763532213410602264336203494111534426995754448248744518563413825364600898735569943791675439199328384002219350963432526700434130555160041972785878981008799380015098043538052410703798158928919522796262487056574198269360250254769384127321757151421624046522685312220383631089021165978928600263418096481109674148232371110269116468543058675837360416921172426154277322976319631205283355010730689721591543472247297294753137587564959291757337700301663286130579554403160916354292788575349115425002224254315661740032760834805317604696222358967339095951861574439189069395369305977510836009108425959918208360122256203644721992761412853305616176138619548381925310541826303729782025821412147159379716575921363540874128576224348741332871057666834303561796181939002641976932142136209662654250401468440371165464190532834605823461383010558609482142722367156048931780489336705135415991538503182494267827267996960089314333235510217277373729603204541069384683672619802834990648130289022748055623106044095337581568568343961536092297238908739167949242254059993249299383610157868503902029867893051310453618992789251985063711526557520640020884807605640729658880971488160888950732533515871764131971346391997437782841733484190552344732548665581645294076913583367863052982563295239854253348745872624639288135756717508528538904815438479780840800355267295803509125196738979465890303842359344680322682891778692567027220378894272080929818082648470163092260498813202915600638615554870320253086794769353773042114457331447366614878707158407855266489529979837169290355900021639771358200207923403367975919353726003355605754718286452826023851698544862043734273587892876475846076867863897194868621249231516851736708205326743467654518332264825521163239582629289424313394023029377878106846753858252880985158812577297699229098059059691624178506483594715219182155016971463165025921805874523353573746528779571566658449118035271456619839373699767001441228602293826326631055223701697184198680825892169735509104520545120077117101930473148301169651462390236976700197809194326337082586694902324671090350723373688330489905757105777331448105117291036225771268021894363383055504143439906741625945820572775349928616947707442415185730586385735620023318508524032301057947333460515798719931579623523336475212184446562814075911184754417383820882161093079572061036661036533871408640414704482555218470562580075387212193596442616825047601276254757978051800299247122046328652293184144562067671115336203990207625469712987946799370907531715972847687454246487470224074060878146293459036365758933580835404340925441531501866612651889008072589239917924788387510723395242648768677875583832138691629949141181625442861265693238781884041212988917830410543932027262181443414701485844259745048122582299413795038961338727639405810241104836616337463947149630193342013072334953637200452859147963668585753299081331621156809420039072473142245202661832814954626193327459699853625767240694933225407592633634428411428293409588930091041202765853094885349767123233876278771293504725539706319307504150824764513359497298124424550862087773237948575036893160648380094476650045589181493918132234645492811003293340114517083269016067850227192380040155714468369688798179089724209909217948429269673035914644310357348713710042143331269381222445950585398685056396687931530028371378662387990027118337507907343946009275597139087396085112540214328939310511769475429853225657349079366338747517585404439121838636019315680983390218286723688390147265947778565638808098597494191011593527308221641061689170907094546832024569795923932823981898138139895758880874070529324789800865800205066025842395746177060997409533081316686184027277868460901212183754662252708258764883976947807361432229659684610414552508662195990050917992094410431436914163863755185482657656221001169256163336061340629890915377080679505191811526246694084014758326130795554651170856579810565000870622936579996791842238559471079233322871891151225376497012119903851303484492508743804113526604665590648529003147737444821913860601328768440273286745193351644870984876363104182010607053641999991360767216612981441055676072682471285438142640318137320637211924955623842070443850698502818650674699834059201672890013154464720102906054039169717535001028602740435359230806787361059871236781955736490198984549183632663194564338196235366585731153988459756306360955557695628766425066802790270675263609726101695638531245862085041775950255786902142558435996129410049192733248491835566950282090072243743019562819413763709979918909801338537660227703954177061084142763693659933625695036531683247299275918050482803140085142570584876707056923160308552614933804773401622640976256542525146517924908642479645845277078037410355000369720607127181723499293583050218616688454895587460929108257936195293712648266550133689549366458072429429127465097939655458455587470612030956411264224762783377132652772680576297760702768141235658134819289981222571260358876582021311578949516544792207682909891656940171346187961022369278599484569846064859250557994865597705613335612665984987050246713275301742181799126490005378750229607304205988627464489912800111863865388088718166331106380541840413044687506332886384846306915201847821155296911048269862906197201340562253659481100748678022276606912980499953207448397630251995690533740437220036160050541047921717827588392949596372151229551867320393308192810298902978908134425189434636657313573116540307135207204412887066963846749629765448965269822970684711340298099889846768238277777613204892905437110881317035328857207377425366515524462352289696530989353510311686218832485837215507724116207426733449895814676686608810404174437802650575674775211833004122620600000207078486160814098040119276119736701633924851577831612449785933476504760823172358720428608925390052114898597547377444504428899858405748050540835061614674975515550784458003667786933143261846724119812561747593346545432178251618048745340783474492439151974343294079413036055076989718160703888148187432337675870331599427662411782654706638879156204009114100232249303434403743743728198223210762386361639584819905421759730749269238243426557789230280976911072712736660248865441946561929193495812195611396539609937954823582669219180866999229675062446109258498249426379278714689975185166081891645177389151550545699296816679270921092245918296883961938361073551384891213218083929890447787337594032092629558790592117647976555377410285967769565314331083100469252881582583066938295694760489589160764165639965862779174552089723877668374189016290202516600556083070478263876301806329122877338192313955856844432390227751787196747690908431509105161496192865055482680130654632976463967475080904631860271462131572086478096900470891676383475616587388763323966815135959508280054836482602416320690349811329104163754787676620902167083200242211063429367532507353558373000634564862352605066440981032925012099288606713756592333841108754950382879741344914600947466953095649908788467992357841483708948539466578881529705511951292219168958089748246865865413273732473549781106970026270286217331707414758868063752906953536501297727169977484493850433175151775601434236512923380666510364881476355595964905622349865306784152515870158947922324856653783580518320992594145261134103468070761963075762799305631049201973148867500561150011521771449768240587181112180637610029704722608198194524696397745375626839599291411285122334184638936954161927986593798716969658934864030310276065436135015941781893177588859781882761251576359133138341927660433048409159894382351725029219988280610028937686720331537677627249994814051497914014728249163024673420090495431836890675118721253064386561739350424352832291003080207667528386226321542899795524003450955048708718876634310923288513588088365734606901195525703980966830862475917049659017092153328753098434694544958763475501555080777556509163187712517251702035813376227337955063258254261194835742679346024815523257463369078902926932009376501312681932282879901736586105472943207610332795267624234242540002371101946699727310381259074395597764801124573796168309040821890035812631769223356118650741068927886367075943278330017129836531795936092499211355979613169552810288397803720998197981895669075662369515757849057949837078946309323547182073049756207741249540257530531811675756444893072911790943311911076454190674554932553044741680005645863957668237019866461209316877538940278510891724199830215856159515078989185025534974484488087043718315021517265061265219482427251968983498821740446550409208877305752193204372379596786582451869470037413878489543571362912255498606447474649415486612743536475901626865164813228269378776602507373366156084401591612857285057850424372841996076085243485423410986272741616417462627075705296311027680870724391809604939973995574285158311977290948358804636418230958214142145442903300284489552025055955350807549241190176112317529817233796382042754181314632914325457826508500716849490739998669859885967254243428491427563329232554054191953433349221531171044234670038152332436670050102022494705882686996871231406142165682696842763763245119501090293488054442460203927349609649492879096640412285962031639060971809339707933756917211103425100628863617389048128146392023768035402410539065836729770461346775208603115940633381781559260281468906726483378802173916064410169691116190717884937263469909189032302929367686719538527700257805279671418370898335235584370865071284410021335610966292514521250642637604054774005455226404906242661697306992758899329014283182351967111841358413359052582228389718358649340770345750807906616340514655333572184556537815687403716449074644908023594258247708454091753598121878401666001827791081467264668828595533144404360675142605102724201928883237963369291690414191480946844915147528524913395611241448835826621066735530723377046921407744404751940559801932282411421789234987480293941767943755330583400452540019143294772724671145887533197017105557563883587807157803408829706472200439329695612828943848179452600985072526583243596006158241140195881568238575627383288709678424498785982801101357728145927241865527980842682167814848150249337114058365987865363876025497041990787205390680025981664422407469282109721092715629669784325369066515777040191373198624974415244481047498531768568288889475157576241789257469957223165815533884800303419830723947759594121040476539133550502455484173937921466631057159155234930398540867708416623279266545314975770427505650930632705092922222831175908373716668935329889663284139685823325135007462590455339234855925391707173267635913294483298308902074686628194922891253480952291387742556575162640398815702035260517932185886417143830127576153908640775060039043709037256788947681150539471838690291510763207943916445178386532289801613420395631985535708865185064668111569320882579402952136055883586426273242759683206227650248698817951906913976999403474913964209662986489630850347948297610051641111703395822185282556289812414254295286068517753117506224703533628029585425736077314879769032121550397697709437793054282428468337974248426245058317751248457332303707683330553416850276547093305067149640403928659675889595289656767584729036647830698237749863120569335077978192855874299009395615887574840062692338439604455117251771045645442289740208858475326761731641320386688911809848401683726954378109266475981620675556424808655956211629189694119659830896632301182417717816362540009436648454628073837823000272157605358200006648141796272772576414344345980058709514012350765777264954544339554699878658137525220841364551943627928460995250761003597129587922973963778789464665349489916340606250773658036114065601566348486446397507748303725452315018029003383711748736721534493353882188055944085022423325790153310632094606801443458067227147919982772555635286215264026524751928775322556814193886352319427235273136679453468963213166393462782031944763439710320233208502525143382957157137448933343377819328415953745400621990246874794088213403143628769257648456083426350739919351113149695164980492816822884570921628438095882044795200410324615770730963292660808936329228372220142626584005726529261923357971798953015131005504525434957713555608434365719794594938283989934102713065537996232360930845805882360424994680711132209243767594600825298814571149698951163641167687941046352631989514030050160616429399177231967628143591461104587488755003158085574134203100832686300335421100134591788866824880753323109728414941561885957081211494546629166493998481274932983288900587953564453631179805343138572987436242430999162249710862851771902083357241565365978520283831773950248648424458291390813465176928720613426350905820344441554219581769821227239149928585259392150140610167361847265840120986855330254374810260554832799302590248268457245071284406613592750645235994649831800035263603114907301562209041176365200139686711045728608369984433122141541381833734915929223581015436056939984963817540925266890959912087067457667384012753622433720429606986951262240995682668155575701695035467708610165862491514647687014460587034890069435387418910815991429675717465606292549295994437216815438644383702773622868899409572120657250826104919013622770931634538987903274425883128852578358925480187962898542930392523485142289727322869433444302763420295484375276074784714803544769768658893391809711240056257565576277595163068160477688403620725802125778154699287116064330751232043397551914997599899787237537749040424141357644545289685968303203605473798541856907633219260562655049478087684256266114459271714935871575915271700246527822437840297553716109163896442233576704214219479371434465816473252811058057127252849929369284632427459584286318366060050830126804545796349122265743564400522533886022282524992363229297826209230456630859135670417430088592613951324421334130675781923343798715737346274046427239049231223832919602066106320471660712102471396162333893047196148465351346511962339994148970049944364054189574878501931996848466825502977317438216648696212458932315495891748704435821779721901794658072721806396171573561597401288513889520836166676557050333896307652492837237965914084255725213267423562306996304247386786911587347995810744416947813874072739301496769811370133828637990598517086533832119658401764677527931175920495337621794051191431912014981873793249847142399008165917020615367055476307786297001443922482914839947537587919070829872216954995262478434524899240715954981488086249913723814857459816566262919522319938011254351710978353659668401728650553286850347744705117046177430613110559211214539586371124914896379464950280476625606925651047082877469953643913057837366293791924325565896045869989897869604044303839187909393597387498556609643841257006975740369558673717719925425328517353281629031068266902688523449923473766794631231449954718210899191768365197176551575129013112474375055108185260186401707441871081306253947166769911527137565183634866574380078420976245240838628594269557894646099701916008062817137666363963500174132224228098785966662875811256622350366966237410196776389616235810074593504494764744205900341206919565206122612244901868865367286512951084803618551429473447361510111825930371408296849163145423874002402656242442507737732661889323476499240468748891969366183733512998942264984551684138036791294183019255862692172310895017109419995955636731186464280118764399513690287501348551315409202208764564803084799051968004624220238150456037896482141456643766393644667246231441845222628186568594384351522690488575232313580717239136888683374425836864888212382226835964279751382610757671697048742193406517588599689808811008560956957637399484518766675053345882206003194861200122608141588341562479591823171518617919230040439362495330016974000521132126423355545410307462640265051041226307141959313778510214677318255246014866565142413937588430211622438592889230512602037208034420759924758596734194063658980965250007982427358486208276661076456709532496683723120923927426061606598264872727089523712053244187866594597532844204867652427441226322622193976035430770021440997876197405325427963875211157116030170648716706265800046317468182987857045396944208562897402749646226006292947081327368266678613733427289556741268466116154677911618811432126403758828768081784158839647121331663282262893179850492792234880940052021955074259691015115589365558816449814444344169524591599645006783082394548646159994008697109908188856819259687470985882524466564397001303564039046568973670614288662266704467582849534033358916136086176616797198507554876949230909426542027033960141890252487941948280544434834243417848012108341615256752913996861678257274332322310034123230865027991426152907459576813494603600121445211612717791653184552387886441658547943843773193062519468860556784910502267332557412413626802844175894075873841631802070649100526818538833733905429343295931842985768232222693963031120951415299910999313756849416846655524578496548195205082529228456222301572800679691444407984739896254065825475836023995234681964585789381694492166173938475661838627212267688243767947814945046973634662482859493559409637736365804713311405088910055762677794967770748010956598671184459435523747213012194428488774277092157828580402308510181766766420603617359631112896112902530423251530675972280950829688689064759935857673585593129604187029010001033063670943630348945975616369100973730225658648164744669792112417950084393084707435574761899181895933385555919768551155699970284960335781900767478904684050669206421671480211046791775337309006198198568491802466196026237768345971586942872405264828451481986057264692101195320559832413942034306233474227794501779071725227884161105263479908569633117108346003488324611599503905166659369821065984730448747018824376952582149459548630595879840425653201400117933707639896273498966436044769968099577468225540661353987626415789879987149545360455204877813950357420449523468900544217739781738811225518089214377358984310966390044452624346270019697005087948110977009445566635026836890742305262748429471195659155895452162368477590677430291162877133791405301157639690502468790276129732199787827768518493211391430116251587768399672933156537157893296449743306539911523175811414411219132449031630311402558008667587776303048527540752400462042035996901675016250210101479021854351649225312314660616111741618873535380250116863053973600758451640645705428781771022546986554504138736507772186576249129516507247106211691913162030000172767929277640911231876936797257002011935883672795873123854843227870442623455909875774943968546595238304148765340910654699198624572279686889213691012219732896389068476267889733634633543837702610703346290205430429831072297627696780457540998057716577828259624492993706096397335024147140149065827299036900768869515205495539110151599330400014970823622788156199671767216417488624804935579370572089745636450437735449875306036143958051832253877836820727490379943365897412213361779578608698021496384254537771133187354938253586496704548451529601500091564345059179656733689383909796867594050862472863003736474850754148504061083748533946516070910424860550191350108501333201002689864039864709648368306273100471418764626095675758981066765208206221517556664684381228113730920146562059842690318702353853704383044550810288782027471782525300580206768796991851586145810941292217600625621491732801855266943732514627990421477545008740940566373149924621881493310751749272403692712747978805986664451709114667108732889520340929369334466792420801346191424784238499972508959780753316956645854057101174477302768935165432259173302067954874558069458050321505318211624603807320887610684172833697907110447151242960437727886451695589007437353764626799263368636995273699343625825879005604454301960272883667934617466391590168169912744872377656196240562702429738684660682760453332463637638732005482018970861177131594843451086049984890129004780434720681151402123823570293848604863076505135467066176016128026841954616085613618298809732835503015793481248201506316156308455735827429135215102273080997682437563178536873548759255312876904251012200289733171770552370414510774680534407516602326402781745862042141842011128682305861104433837226645406045202266663353156675189061185918306924875906940970651557446043575177495334108264267808471265017835297636779008120395805688808921298703425422165063892950017361055626467940790198319461555475103567915545388816117409027352887102452860806855610451719654099576652256338630534604838574520172031678285683518152067312260849627233419412567413392837994432003170665950795040446915264573007042575966850348417926352959000005942462377567749071807911783958948836603122183004683383044230447010054082130627811752520578567132793343837478672470041482218866880174107550376565451123272912373937213613394381473516458756613653314472378136289268719907214863468434781799394584517080246913223633803101635146375078383480739939538046894889729072543125359473644253662518706056203829396094286289996079015532231592354356227661678725207248766139874863002047774699923261242380238738303355203587012641513947671421584161832638862246567300549563870072135909932189676472594360624341025757998787118065813172279298096667524494384918070896342948872689695885355430956903823026363647926742099459192045323493839256659497675660162341996132395852735930520258478973955563280202061788096463358841993163296135576453620819006439816108854870387148377857404651100455251561352209061060287283300131139850171249409666829393904688105737804073180761068825383203956761007831678650738997742083036556885259688797523461343631158581209269545000297206194784262335675723710808718047612530108115576729127567418399297508997643116765084211042703167380628936188936521815317071142676027004322062328069929979224393362116816702593293896307014738954082929391736874714222245275669406531731409537052467508298500257193683756405008335237325887065366163447478201447511913202802580940138255416564054527134249836468955054786119504868679488508584013648721696232176668637537895531694249172047178597961292917358535907985464945038846630408592935988161401839689936217999208929381911004009072910435112134101894733204901332803192069048112426394470264948460476233170324366908931939952838958252698423280784415707736915188653572055352448754132304494874806601192887457625648945269996963290995401463705553003357744335661641116097759442544712806535313201035897146775188208740865356540307335084846130834539236068484142378451408136175744065633763037024782313674785412361476488517847963471802825807705910047661532682598225627997475550933330779592091817333001264427992751495465923105940301575357851309056343334878637440403099261736520345679251513326642641076154238925297171768447417539697410393401630693474800952097794964483740980282728004142413390734027872710533990336042997524488789742024959644376109364696986034094527962297598073610780344186159248943406013426054834941382227069111515073051554828052672829237360344202626840108046878227280376941085334286625158387027317579409467289880514866930170659928998465463069147867308131499494744834612649414572827695882092532326970122232110173789771413861812199689895304110986721225102168173809172034186517950215151269685559983398244187661152566518022498836893365742437888703752401101641531355034242213972793578520269591535579853607553147790097542558843346552051298332290188244295573865596623393293042640987160566477145222054814368155927957537804479119321346834136903896865727371236601609290184253608775266551288320148302109454617961856739388368150281311150891789949468263188956439703398432487956245739452205095599687749640154328486011468929504356462385753441308590500679414732813589018464725513433482643649252956469694847728339343838588135298506370495975273188087383396598992413536644833441655187875119974350265137204268244457928109748069325789817346738136468232945934703302875604589028694679305932286442817181870536545455585923963993494308126958919879267306087334006425800216948386288732695054689542713418035288743539801599109619335032556026433706165321248324096813923932167665287296500228475694946077694177464683379278313663718070032281751464037426524629578748924838771164038590455490781010698555411962973221064864371680306356633348207751485620205683174418487405448500407840378143765680466936843389105854347249752728484531749548094665494055041201945095564694967341468760727554295055843780179206432345478026632766849709661880726611340023447204143757098486099309558830665715062066908852576091222026655421548354545628270047094534817051182023913549552755074898348940005138580570917419484184709117036653298717715628187672831926262323551762079034817950793755056617162221340057857807803617732239257340435459822960667197231046096287688431685283186169448380268094740153628894161112762720344592753087664915479803697171886655456682930580690839853028992647984638760557786001347024672084269388458931203584692459081385210612352949628320736544362963128112675286941348709551233357694179453008918927429939705427470107420199675975640649172671558615112640393141008376810408225677378069800948519976623042315104638808845606078185593204802462611986912137509759708427548713496387827042273988615912408654959295425597384050822185797854250336036322661267422647903949506882567527379041621002658437848453417799772832911020971193142690210764847764268411441762755451032296235440450243267488383754764397642534518972626438559341814291897168201994467449316874334016618884409336357740574186299835676864201446665542319684954711778189396435077319873230187411764298084827566525302477774980676309708416572022121535596703835329724976426130070629967468253490985331468146139416298247741453365576815182006943957855929194133496466298216514106103680232968507011344849082764510855653009503502054974297421417512701395965282124328921192680821065505838994554203791534939338020285836559469723179443755163062869844953329486029919582014839514817138044253180881059471497195353695856743954411555546793936346796768322270849894755398336160871674379125344651350988923814300976496046357192347573620787359477788238249979447825550097723283448993489644259159259153882096537788643328613454662226110041990422801287245813088317443641507255261369139936987295155859205328939368772845336111797572015058044487601915364299807559889797676839429704735873280019420132214631111597433365115302297759536871424474121723605008169201891839772128804174119506745296721852248704244770783741113721969612812718298988998731652516354190556145345851213850627722648076488471628714208590527228546330983691633273305142418544477509143052917798329424597973171181365497546321081553946711162839729584984140473047934245128325199333756268452017947962380117551189014796175940928472066686889045681654266187003565640459569299124919526571158120094432770303727681849409545351107183214606517060583244867671260317939614321238452498608240818048999428638252053677957714125365627764655434613464075676564970757795453313041542825235430993692937493104493980327142050222116163742523469823619661877136258643990320370744963442375635269657220197996909311859709632507715019613832333014558236553498704372238437858646300219509978739174149043272426511259457945050937084272916389077833313806142093291840886759155194768793912521944940186867508589941321372675293000212224137941984499309602331907703703139492322867973537781306174512413197112939653716530877330378952841292122242884629715161547710369134855227594005832586624358264050457836573846012161078021971254652510789921818933677323974059132112176798890961300787998749895501981546568804073192329439397192678785959514830256462702793268606844942823249826644664200550822875805015111084654069959685907651789233107762543914277142915236703765152411198219023590347714250808352183685273758661259789897280101950842436637680117294487257032673275304243307842372133004426009447644782173266785398047815535944868555936955689191940684623807195578626111050566793048151477555121411146749595232618760108072240637497781116059653799896239068668781075188230741135349512841324980013719250126913133953859284517870294241480538192676893839771610403861327747189275676877644670280705818508745458384772795713222554682833724824086460512136077756716050148951509702470949521983101643420704733489312066299351186005755578929206397576784711821162397468529258535525200505956912129472607922717827908023539825025947569277798292506284718316577569839176632211461416793128314378861175825989036443431215935981738234565397797806811250209429365232296663886928369902462180486264017096040584132558628307157477355548959246057447037568413054584422530976620314810015908146888171692838378305153812608408947567444285077841494914952871189343208674763822459289429798260754113375681413546075466690170262685052897632214749522061821615554639098554027523705025744341573038812827521434387515859825440554877805849713858581999447864110702077200818183697467558383591326406500705085328369614192559049200093790243078757772194864737311160919527545561843050589360584262643727156108108062475057496576333311161753403873464108976704601101492886607701340739717552582688781706413964385006448701301085342119814608185542297799736130529551129160621375448251123205843728636175187403995213400194824457900598045076330146634725942857899536042913572535955290355306485152986649325514370367202985117459542555065361584288996527439958904981926244195765844072683270613530350540376605340395750277040294944029350369135786932985246458963523922998618181156758392948040575639074657397725364140224425417385994467153156832592138212316530309896119505662392479222088423137596113261138740871415036002971605514971617849425151972867217703536544137631201212431487654572871311633383107034080124364626485675953785580390618930115252762258649986998767661305075466446225250758984074996716276957312166677125004604358496346822633238267002087002371527205826397389338486564089670220837260483304693010499591003350914038033735192210456618377047390827319608571110844206232900095072628919922444355341951571130763934868018164858547527284608564885364912061744911490064274556424221801052362358697068359478479983438387816733394657058705302102869619818491031846142384762515501132632150062161874633508655866761808010995378463027211583841555304120081283603171923089417819275164348977187026344633266568281806016046719413590167821679303105810557546684521000993375490447290808158728341333899069388336936193926173516542392161988913911006166120039345830901697344840097447171075723821052608171796530835761122084436780930049638849947887383188738226976347085018836684011756160725950775379425407420431956990379149420191751811508418753129031619956118331458351219987642747317185346983262038366889482663636950763918108106508541937855921880787022832263829899330454252411228022891305649151593397457733754821636475106559053528818701851944990007372654747435513351075312405385153955997849416742510240126032724919474260347217035152903871114376008489113995291062806060640210388019533334450546513863819630720046547233525958221722985800193977494216386548330411627371614981921460843731855594273486893711405523670146140024780218275769113421030340576967494332087319107379813628109628738019517050818762642782214004835774776970295700941439715835161010989175440655140084558241181095440676598310334280885810664573854174891798450041594654763074286924357096879758829427395505260748868520275792103695075176709148791896257605643382392836311532913763754329976351146394648822219690004262215453691631452663444922955806552724298916365044924581329950197303644543008182549549216358584900978630139734008158326216982770268117768274790866278225825514735222025189207111710313539079489248687997361193380243194519328899811570600835579527496209940311904054098716560141330823017477960444844415070607161885101596452719770835297299900003456864316027122226136802663217538939800547000757624058551214378937631069692908328044244500720593997757886368622298515126233378517714362603091107674095454129209277171871538838245357366195130025091551725918695823479679407737907786778167052256137180022383318028757673922497066312698173146795853797651601340857765567218392512773782577499737104634714060665550471248803922770868447806180178822073427506731885371195088919884389327747302432589313978515665666730059617116317211599632686385178458719847651095267635016652998654798407095581815466364020604294726772061639799257891489675480863087122586371961336877795441985951059057072473828544084888121223873469835769361478536229061646313197224361247799783694562269437042200514327808681557188764879070457424166909909078096956117839948485371176846134470844086398226292221287630331974862810899595723738174876904186227426507393458765130215075092589705036556553176768429047687659038449135717267585380418949245848878022027727615906586004859592982851683638146796358465048190135516990085451498455618828664116467353017285075579084136090021490185255645958712992873445826912768436207737230206865566127162709006488964378505124656397266808486645623939501839989231710003143723694959393940712556792685751675591440033141531490292159625843538092913665035575732306745727230309380500107879542410836974404676779730094554250405310313266917191951824204043957283135337405322715533999642222243008791889984303431060979834856589912311990309096500009533798354760745541561422016583796015808212995817587604635851659841452784002693000466735621691144354567230882584106406925759884681749478682805982837763482445159523366575172236191156313821554392812118401855865686002875443029168507556771663042401299277532665253377110257942113877504616137840884501826010475171592090261195286619590057305175431654006332220574065872348551284004478939121325168498094922514198194615355230058568092025493263913569361246678592306019061048582019219601423813362029199932036762603500397172225135300334407648613552416199095763318735161597353859412231807811529353393324771803435467074946413455575038713019818612782454771639173146675344623009607174499618858561009458749800002340492171916073737672116904433648862418592480025226395173752713575109738992277208427714188204720173227323487306005943760808847567158870841510713551328714254841328046162707772903186276896367075380393957253615155570143016834329689155107047190251113119211331810340245906485514851335040323285285674633926300420482566206891440591282688593195547790713391504194491641709426830105559841878898483694565130692428657154799455310011928283737824972068857451614099655707672306487953116345608183629992982265501867645351844765812213980908718905596422410947340113665190296812661871060969946288989722565439151346603187055321093243653640299936837177702002238563794468407768682112938523089156556647329618399262333318660313188813772111390243991669589646980191980065153464143667088964513610587096050984885583018003512537936337795386282567589454787320512659171541469251692748237335338088010426983753884671172001805096327129300620880291719618363641364999569954666815334628026619835833014386225041231998709201853322916128727603956363551635049739505535247030386461148828058555493636397413200687714554889578317066933309961181454102087276410435516324188920143779019341767329144491392842939458701353569957734921458985877906935385163535717066017211211209243425641196859605733984545900008614818571608441376779070356190279538488775165527385520023244526401741816856818119781546392249791534483174149731240463729209239667693792365380060654851068666967026834027969831593332432727174494605094358103265794181743570098903420763689268418866415172290278800153708416598414413871007046303281986278422187070572432754370045987542476254346082138123043477462039640711345754484694440692689024059751643637184395036557915802139784872746097669746427311573568079687614859831635742944161901183926758571454582478898890124054037615868842354258368975421587221464776801771826853050471477065070920663168357023353549193596005881278891302968485738365126835432931734937997209826532833528693604415152429604258721518329013580765343963380637913986181082410180388768117978021874270141078576917254942272392708974974582306560145755033352342712663675587694812867847407979396219449535548581352588810828826889191433875428218032388772898628576449205954055357391876328221432447795459027156886766938891100348643497595510632034274021828133690087820944248272302261523812903880129489612756340865745695797275383973607382666172795913507726526819308835959121149116645542149542468018398409324691619962829652432595607565498361942613274239727074151664888648935044035741433075455316747584875946743063157908387237304186398846215999242940604976717928747636286058317872193195112529709001215512149666844676866122100596169709621368825153859347425889307240588323795271138653588083285698407744019882914892311417349789151966097817236386627570996361028587227880921863077239881725509938922347259581220577094709744286690500815237538806490736081218111627614159040953797941115126143367848593841630485380557204891327449975319271535900311555708078745892285630326462263889423888219861229370531655733851274895149087314893600612626898061433415523482167451231157003024191828788628192150036794365698743088225249275136081385556271813044502187713857632928158093850889226195167709950051272744973577367243494523529935743017967388156930055417160591671900134738030130916732184384897293353385118139442459724944855458140935581765203706677398402953992153264908134915177207387235120222951272212755491838767944001458315059430534354176542536063146485973441970433553891964101047477185621573144470284729741869680800892432264900947217567823790416028772770701007641681645790519126200005466690938050960598484678409893121397583271541418705173219082240261627633772526214195367393634423547003699281970390088258188014179337243184287514419246812396747302355987061236338724405838831879768992594560875304613921639070358381492577145158202002384211307100484211073216301933888124027022210762381855235782309600113065360920008112187203677435816888039624441660257641912272942802149363783801371211190983480052324410368675659213085567045200540786181278665536321703156031462965312910542238567210040587785960537159154336639799836318693083386382940652731179864570471918383222827781550074750304589578062861765869102699439902148366830460863417394949306335890921483875999637338173227968002057868251989590391742784698608327213112905514636164386787224344468204964717110662872725689977187039876407691836597539592754399313482683765141940239589816968099886710544060545743334618542628512899189925501891524466245668683196702069348477104420068136459032768831796837588513725230904823540367284350345365316174368610442761227737377476259508204844031132017863910144056058878399239779624673695187171607189874008529600917208823157236205223119192891550589412930050316845275339465228691981462078358389191480760657061023209644355300259269276426137165134726373534833674226806867207604465964466278165537909564798423501684958108326616058122413180434755224216252523460187973523232871411842285759130662228513172438639050452805939798954908200901659842525916112826803026484423589991101027020340688405536045302213019721251358578924802999283877063675192127017519217973056159791055832225508631225335170221387580426540887593562866873507354516831818710949788630172985537768935577459143433313943987224268651168222642195742842417222050285783354470342243159252423085765460814566695930814280413839059261642982536945859224608672171633588793931210039046385210124354098705837490525483969727653724924803554788240078251355821815138104694787147248224676120794970089506490628687769553481960456427776663568379525352292666957862521836722737038027757405725639726045099974083616041930188301393317226404080790378836380412641801336568801945847724307926063370183027407943943914412363366356459986018827697944230578956305561394689404240472381620103838233422093938761968283254063914421801121695750445762133488100203280704363696556091920368719071179249398618083662939134189427169902135173163407164811564238386293054154624005448230287019840239058975412466984621937953660935843954280241867119519581395817533503278232442219662527274807714162585533342554472694338593626668325823117540601619936434883962286842340722342926512060527767417956445160736614464434144291535138276714866309976773743111825458825248592207730658217744949529408540435753250606927042443537850482279242060468272316164704606594703327739574224148648331719358726699039245578058879649635761510399199562919550783683795026244910579569941538800627163195693421688132079921341755229079047472023984123928676350084384209783083761755687507320256000020048457011612977971053839105784137609958053299559965437082771435802594474033943005002635943111500160672743132200590721414444038140727463090862558641624701871182472027251885527186766285560877008606671291681129212438575640949973483043654353578600824370769108885101705833013896525956446385546349391743749319283261195690403021062399050741982358170379093807458750120387676235328439493048207480133243621721266386001755134503767853079980283498040000875764885005216011066121487264110871534203504587292456023283414900014407151390789856183695951697878623777225961491304004415732505488336817938236073079536340500449487192368318069699277690789781341269672424021492964662532478439812051272915428895009408120441120639336859806601195207579464684670583253389057061956555448575771049112614981396679758721408971222214482236950305264723944934791463145372774018612453495878456705177517890122444482836072283378604024511145054759421571089304661722894694930759975082331929911454167482241041299706722753757754875509026475037573983517523685255677055628087395645029942261139933776483011058528909396907647076491033538121151547300113976175321519077515764928126732079209163470054229292328534668440842264922062278464823177352917580660106425480252737435733039146036261216120028028690685994166745469336277708698688931158449288270390485049785441151134444442402495693162925817063746770997231106616420851215216685407190626896465306645424346004827795834184266727116032472139446751889301703142059349402172765094562658521289794357420896325439125848148988522599988775843090278886844623669438873100109351615456102413428457653742492111071056200750740595495132954032932358592034034518759445977676288680438692951553517797651766357704018252430294042218834322883841249002217845161420963505689617632083555842711630953617923966914031449817183556752414225957007968145617035420303840134077398790609556509024930803441752099761469926646902931725168659912170493172566072772260962765849446964731511508013003252844571200706239973690234877149170929414160078734779521582215630949361185591768264562662482528800147240811224144571016322873641210846086511775464851773095096238128791818076372394924913146275532376969397854477460214075328459612265116602672691788132368308121261029874609626099629391903046530583755010975533964000864680997111832204589870624230283944006158725693842445511551295183400589340453342839968339017907248326529851737714099506564063273514408637276315211025490236501485475318412245455584921504564373641174084065199009987219684754337132615018992503720602455425914444027417989518208132253669924008517035168388977188934269027896721628180505600303642707070948872973245054794998166826609735001998676425826543207609014865649560697149319170238902579319545151234281602282586733851730697796042074836710590585080789217962389207722412867251684734016245830799210962160502847450505191550783507887879168097098491632367468266500474688018109762599331110144940409623545282240786043660912092851060558712142584183668987032204748188476326249580103172663590453429495076060549000366977592193875519634006947193011567547540008743668252117480260587619179488426065182711583621416458045747861270488981640817402417807558075216384220017589679635215186519771156816842718983012487002609046897045455910894532247178155149150824745225554846768700328182254143182504639156583527302148792825275684381135447995718937800344198042229742875462877244313275007160201609105088677796132700449344534582828337678085431969008577516584044258771067706436764838061081488806417250957612629052626635320525684149626372062482231452153377278195724457996036355253784688528217550916343881830261607198213031619949308477914445496654339900350932411594600604602557247303417702495032279595844349859127949609550336622689829681864024057441864599283053719477652161764090297790878523927310984047972674769324201978920638875301022656123713658690285017440283432418863575934715601273276812933001099030031856950320681965588474323092688159801428523434403677913776123157226017763204985690922957722452499121745441703787612522825624090264767797416221077210846406303729011404168068392822383786789740952792997617731653700383479391933702235749299893315857480743528914219678734002856843006651230958750239070705782033774683909776063384913975160236492898762835599744370044554467665365593258962307226209515015327260792581016750948361656452906366235906809414223163194823676601257289885681441279305466987403944403630448520484557480567902235366650100589420492165379572438989204214683038707230381428974847042802878631509929510491561080496438646432959079165070987505710248198658211839375543916362253504119296100735774648564810729459600157499002703203006557127426816057187526883959507397733598517400025109054167041183522446967524354023823712073381295179568995567140608575552426711376359692722452090477051124679806630819427614687179657573860189116622819791008975008509269922880314805234675965066443546211546221050143158670317841482089929321484329007110235532997059959377634219547835278277759891568697727088232882470002899696137516942887317460599399997702731885244377568378553265918724811302632138618686583841084429157934791702879591438381973624521071782674295068001630236826406244539271777304077773893327265880898472186135157653968897880046390821604342960451516277149056526979034662094506432338128889966469346590215475428497558231047128751176640011484807130300053043691426339267272579957240906990896987396553327338717952722197579302897866932961452756031345020303599091973894650157090873929529387973583639234052849229328109608841880670546558776031366439044386513217085548873736343659999175372161288386482452125218482067606335422175562813551520512958231045461747840970676759605385995005838160077832859298229032725682308841152103220004413913941094911945393010547214053178506489413209755159703498165093598258794351483325676199053036291618676030013236108956566234255696518579454908484946398928284534692722219148312741851529987808427076156797028429407502858234847710578908111803917407940139901471839575799918574743827159854184370848364724771671070154337508401964080587487779103760609449760624199695977933761498408587426492695242953928369033659141162369196323130194728045283360893071696129547984202162316246667251445409289851183893198215750487075552631574695134625057936657603349237146452970727101037606793388138641523977480340166391603796249835196257850986997708228001628603182753637455684228621323576611579749212025384274337075102773090701440169633916682932216018483975291851094791831990821265180363679805725743072404290158278119882193563228672142796643906106747426429093261118707347154857753149331360502384774435854614316243965350389474357038629704035006870286482741883823035448519925847069184446922510819130529946517622316308104023409874415307574300295290819744928145577171832745046476068516316311433272289511208849889128031697640336154542554480527254827897290413968136441398285518836442005759953697116903561777930376725351646173093094820603585726893768760802436528889459554486012725687166399758889379506258804977918254504489880641515021422941749398914940956102804217424476809812422048807507707924941257213856012151019471953114871062870663034287577109990191106801339809353057025131587264583117636253632749103421176578900348196052593358186483321780583952279932870118027941278139920027959260152071667836330142798065460942980090740437928122929581577618353845407018168059204381910392008306774321399932572149789561585001281111230970820635296916002404463462125562942772408683546783002598408975949771271201829777100346992603597214506269228762072322952922633983662771247308039242789361458911948664592715844097723073000748647845506850893055957457285075965709772818255602837924259025334635707392270653485495287919115548186910520017301049368836024415829680887626889151696589373985506830073537149671109124195076895576378690654503467194045549684898940994173640323499351943313558386311550249825985315896136736513395313291148419575105799180376201986276826343001347925389866877515358617442077050019967823194536901038026741040806363384956559690408789431423533018753737792674737155948755307311643395806357329459610891220503738972537974110212644935976242323074356962814798797260680971152632820209749164704431441171733690880931000164806832530416998937588483964455615168825125114317063797322935900413928496260933979154312870892531444978889024761469748758199431067992981215139449387574485294719800291035039185327878638465300581383591248596906640457014318924648117106235800149940452755277936053589525607689594473908743304515909226557494390127639883394944939704179776824783736699527069011324013062147967777963076834560606852768122551442496297658033823892455988215855999754585137825750372478206690712575513608141598055146231863301051253478081974432962303823924983095770836784471197866385305774049141440047135430118604560661491477442705641316443782795321184577439480602759129271932831277303244728298950778018301104587639178241889281828282236453178792191741120747661846103894831028420019807525596904297558831533962435500567975703968844533583627944603079638040929230444937886866163217118019801607571699095514708741379083095461667459221905841128564978670510112790648990236103848204446911392642788762339400678207881077951436460172445057270822897094938363117280292914039591717679555724238066161845952444158136055344252080473837160602898821628355467981759922835559782286050325317327716334558157779333894552167767400603217676090871494336380432380952010809862109580789415057640614692317759548353343167710999775688261756164026892978283160279531449597576868541058232801073667391386915649749395988547824260579762221954181972895574928875846481610244227933198396346056454064361998654677564920807830888311387086332929653258459244601841390007548315382106017945379391779277707313073923057196511442188833779474895751177531193383045529597010547212075421566678292026479229993684043575010320844963791523222341361034839339893766471162716239102043866923602721124175253395805619587182627172828995592935957359501040146720892100839600983791286948346784134935868662017354699793942493264774950046313670557948451063965700990221263104888968301571752707046486862081535890516488580030714080464220234627518882132104639603046245013036406921588113569422009784345116068737435333712764294043809335492749368296577787469033955190194931740142903733261287993690521430224209095331625580658583954193320348330287215741717164730909523744235753427123544103898207979327713741806904869976041707847014729316272481584350742506266318276267117405008283533619681825509169539945133479005821491544124433795209999962076564150813954502819599645891035208102809775663883734002038524907967580483946481098092212930156333285379291810957786154505697952712275881841987508362971525526483294623400870421116090492090720995206972960170363967267757555215714465731371853648841639497120955388359919029990473193965404896667420761218902749175151101245922118798500722522309149280048434202423761700930910685993407594986997410498337931826857186684744514985173490764176554098055326118269137375533368568951542354890905835155418829479706751162570400060245478684654964023608687404922002802296108743234902133576714988743224688631555298700898363696711352839145454088122270636097226645330326387188980945178081833649354932865945320386262701719119812708478273755979695976701652008227941640532564196459725489083564499064815230623732342889642139204601252240986031391060565940112585590920741654014959330896751883224565653531717461714280800315074208403934425952102303677237394186921652144167966460508683922457061736489736209540695743512662632897796445948723905535379388679130809254021646870444249996519267920591707641711255402136517718998902435490224842832253148631785934957194207808186560465208702805118099445348886219265104548049440352340614241731589059916229166992361305420500064373057625688798905025394380328581259844139576192374835525188509074992106075064608434319950444768338727880506365698219100177378802757157669238690158137692218846293842993133432099327720916174943394379088381529994686516029393092626398332313802873647474769546182502139650328990665017460124418458653708387097067764068041355146835519226396544308140492796167950281969266049911183718968413523553838738172911794788080724715484793682075216531699686501145230949184836169356476461964865601037403163712462320130920624027317894905529982730613611980355165656420523323555660081449624357498983656904482593591514522829800080980277365760676533234170913395947298070627701384399583565713591162284749995542717330017987934540346872065486487926819389773856895516969540284386540877789494815685193350086187316756256553536822722660372980246917940801475782690015471385850740974014155193405220588321064881774958344385434421273339907254421949270579764314511094328595339371820299345890213428840072193031155848423498792522251968253632391796646433130257779265684607071894161530484750037172603239361619100707335271808599004103952413672133527775052557050796374981021260300092085938759793186457251571992857846177677188524751110110664211195030109025205048459448968792645098857217208298009191856747309690583112355331252669582188725683819698732788000008729179371395056897428046277078828393971109062954289883066890339509301961779410909396727334780419164179654637085750290457035617010146917994987767502623529058113152169586125256729590411195768122043463914063531938180841305377211338535376976330896663375370614106513342201478873786102204391562089167755261318483982462677003206066119276545732863704776102874501036211512563844720428676633887753618636377042580516965975942375109017042533066726953496404878347915018318879440596696055250801774218138561926250801913499651938561014391773530843831348905887573874884467403923343053156941057438000076128283661047690751626465442502143145942569680705228182287951333090145768025578702084451718635245093471495341176283217390824131167109367792229671746487522337419493643670190758749437210117249630033305774726279518149319527606838868910774929175144642126487332903586575495630406245153295081267234703026683226900750308470481451587401583266212190533940292387486186040489591555666815187856266630220263440045506399816410840172432620473695240152413314616652784056033753374145751406106651240370038911241759433008211254389549737882620564681761881325458918792110704060898057761350608364774836865256022613048671114206265522461069042939125308358021122841410469887918765891262957165030277765898304775255406350244106433495601377123971833284578548189016298057252375090094781733352792472091476314464742399435356781969831056741108590371516887066828482786757102626653874757795103374578736491555074525799887334336268536588587304266213746213858370221208700221500180916789058470328007790838220814094036233455221206555925685757420511732864859767893787682427100208814999796999499924541957218777798900770973546567879432883705593182907267429047642703530946043297796868711781114383582542093379877971936394423374097873898042331962169561899657525136467033516180852368389122951068436795198719278211925808726006861179433442290697026280250215082119149942898559363358788627933778787519471763765922361717294666076478205423969968427680955905798785003531535475120850881335429096104774795894016546430162124352855535202010679085690879748584623040469937927310311051448171513677055568370193552574774224301777848236205317292646588171897593322994694594210345223824830117470867822923949140440969850718790811240895443450348968752394719783993697868340114652210159490837731700230561010037025445276490485690415970487372389642643229303503944187159803391100397770410250583399895690212900504529394102738270611725905636214365926064049255207747474113284896003764276269313172805617477559376420387068183577223161520092890897096208999234614548614370634318125831066040468562788013163213861997421908914060892639469462587445198271381312243863226424661427869402302555572369563083633161579262421660536007194849958372851493872802515786987133854499280130542737422783525437355254988536810955154970607174662301493035378164577020919022573400313684895064469444207703307724619973255220951840415391677900807978190990364006483041498458747281767174882573629321710170275456223340896552870895678606756759719593464757959345909591464902645522944553837777006912303763090949921214059466046141663239041717263693255998440857668878644672077600917269908723548243779390119691714896108092032297225170118933699307124803568216453290325594336649826449987305731721857088116190102906347556998840314471722206547934744882457421392728841100314182034880415385042429552767624219608752690779912311177502451118887101243189622911359063483161340659050052477012435940467116691714674547178358021245493851167536412125353654810226125184909917942557314870434742596210436139796349594434312813772865345234137134324579817809082531234920735395636392503767393399883246904664210449894426449064039804403828803755294284928744204249735402329618568213881913750688361714459490552746995251712701738340643282282632252136963611986020698013317199694847302222137035659763079710587212773017071923214045273169348404159627029484907194627826506141610575901461631088430464383587164384653495360595490207407734527290590094285951787916684261998132307078721615387055316856771458382887173893904840331354338709306547150443599125145500823769072052749195725244972798049501783365211761740764077466983653238664610365552336449289255562473615460488492955019036606516755685080035629061711222531052332468951332422472782963506070006496400265387819800063701456607661149809243342474774129567411761455072595320982631101944399560094987877310640024407154046732972523183508469983945559432031649461420737626475944578995723441878652864057956391518805345423732617010441557204971650667273401615026247678579693954903073966367657076803786134905787701268729036154583703647611653390242719788420821472071966867530908745677912810358499219580528470122221579649680359171440512758248300489884756636593175858949797186761953799820096185763188322135303702123609599859960757991754184986039830587575311447702945043587424200312807857191594809713582493200493577769394730995310237479484712377013610579647021891271941141173280010272196404200204906486546407232818640263900262317723005069580193751557094874336321570890740245945054749161663991185566661645080182592843212236633734470422208191971564020041913303583652389765683343194655027573755511669340759046195035056866694797736281017670788684104857307988292403884411068139421984930226994986510181857402706636842546869403448123130283982174363548724884187686289568502510709816612766974341187458491932532695751153270493214085383203089239714557803132231956846728531576263108461479107602082551507847346101831448264765948246791559953311341642313257603958806725172945967142207483057505591261159210788267034123595080738435711372543578462632795676516841012548987102314587767637146914051488034361510270843465334035708584059788799549745598877379993357082556344301390706232173450731285959390285554124415115226764233808133018254347656907201278703764623914793814563680282277351027240356302716470497480000141495899161039996957467980695923528428378384792861394837992944162551716653333701470240437707787809059240588059033197398349306476154286220667362617380903313681693247868735746252678396018353956027395607664835570084186902708342443190049154213057306215372034734724638827793305138214036128096114621274286720761252564795537761370301469346949195586332100160921840236370508208340489320075589180589276867081067765856263797790685894759511751709340413079573986423875328149226504064079245337745986883166512266855461701874881225528469630338215932270245118706390435703976904590497046852922715403084341392079828408748008508102984120613121815911644040153828876979601186946555717141760532078098988769331914126429298399676265389115993940260644479451332037555737102978878864280608767216087616127617802842464940999405977199900592291183827163111117763063026543720495391891831822038731407172988619728194060212030024802515646491564097251957794064449923666506191763545842214809145342294214344977820331786961515568171278374530250520542226523929336740292468538680616239262463569804286296690373382423759661829998766819488345920449256268518848610050622549388984769338106117255209487442154811567144874896723607707377241250515068616828613147025442737837387917894778893000749060672765240131561401147552485230242710751126335925224462976449207477196074127611593669008768876029779657496642492518306869366268301792233733590267314431613928781400850188473576219461437910756183494246429033457490139983874219613590190801637297969585688725491893248118239570334213497701675216083724200724176524064896284360812012182675068190875447812594287137756598916468518481734511933877354680338116879574776045092449176278641734386330468974474457417712933824699718809344212051995516761186378171515830481746254781930288052129490376010778212553622895395513511170682781503228234872111577731652303005436084485899729474349132545948513880755191468022049175828122767212478671843028384718407081105279391585582180999207381502707235232834279258687117609703294044004994131216556908568055516294353011853162301357962482182609269847306770438877433309228954338260034116799826192739003039623272908553943502469209164634794354137967842650183795484221005624142932451607315732686030485798047936572990658282066116842855246873177445630134168449869174117139237064267690871878915023488899343543264634839668069512015160595862394488186655296792696838158947221840559157212473608776650563558075736240333532910765186621350344319764149464089702398473534903278931015618791399904454204219281425043204272619428892160627463612961480054617279849675929779116842738731715435614934192569841559201427201188689187153717462450452097681963403624691695959794763465755760564976351627058102159217923667416554452779892525558183324316885802100510197036728480947823420974933184678271376915268094754572496144638596507950327817718350665409239160923847249116517994810523692403659439009977888161156456201289918445879994180721279465070363967517021064452188391406157235962618303091385856816189311038842896699842625490874495754682464969179491053122285560389777159623738513761750916899207349147667712175763299243271457301705835459375666193798943879288984549333757502606747882902807865240026016937158282511644923452014218626593934029679374721111051666949790989084553316392124692918303525498702500107378227611361882937213062619745582061511685607812324956723922851993943325834006719093315074314741923884308867130036571373122779952678135294898204158612393157795818082040397317815817423645488495440800021403575421085100279586521516215479031942854529726041185858618065170686085610260665709195736707653007479946580866409075575079105874362286104549638399646944652427796043500094834942874619488167833770936031143875654711938213027199749133812275458326247077940907228252788073838582550819243462552971074860910588688889748072635575077195332709121006166664558175908198533348046875249535408380052588338291140616133033941888149347552630546919176746535123674134120589165711765791562845768494210711746325053397439693211246271707142693343492799209058331884111538242200063025430774872453504114051135133990664959631192515667922443672173733196112994996971820835855797304559748089505960438158473499730457778917770823663418506614913909726676802357493369912764579372673578360737763328276691105776588880511167326643443433538614466494475355699300465810866813645475150560373145967399958168824801758575273403020397053267990768923460477118716399931772678574534327481070442746066152967314941222732438412579655077421284732388589489693951200401508911624165174824082827787296076569468340989660721603948951300611680294050827365825098369546976817624685229607469589927752799751030962312855742673415078569704685288254636917691272390185457053508318232743688049896090557214697350615004944820679734866938958510640170683381687329553738599931103312994382319229821534202626890911331680113919018150036200040193137949694331390766836002170740684522596942406756668541471717939311403007441429806830841726973214733113150113669899594386526643590202435522822144350075389543898792299465263461841885390195006721603962852909561094532699001729616381997162531695977119553928904752701509375436228151621465303675982642864113308059573412872305771523478204080838010181854885980263602291004053722994022526070983944025577283178887664558004102890908755215962235057412258124085047092199274853508815572901736344825168451012050403393386158556672596284865367442071397055107217500836808425959676060766089972271374433481743740823427661915620582050038067297444690557057490799324904010745290023249005967631841159659657420551931737295170618012679793485451984563692630966780034911148426349441540852830398786728601443542025983234496750174380681341831623489326717180324585450482678467694758674340413003380173623639333395766738975472147362688773756852520877121862375294699008980580673996914717405393515244435760809843672490047866281770265265724908652477184703654583685029407165510039786578465556754472272313211399773334694931885508432687110902789665132699319603014541719130497829818616859749672236263962586192359010767138648294038090918348965889024226685373300031037248761820223360059270396730820609116351498452186241736840983188275481523680544204085765976745248519509716505053495665786110040268531940286685026180545940115223184083362156795835830338249097768672659531530587606896682963518599425039413625930215083319088683527192680674987472017352999465832294751649611784863694948919591890862033783541222295330473690808902471045859657903161776165903458759742625995018895143188720332489703556201807334274618736661178601776522367462984603094596952865978471665638345799933666725309669247974859704891000881813147071386187745474622297272929908167594437072861048670362298489653095659942070785966413468275317497536767150032462033669860307028167852345419911562961055614213825597597505629388248174644341922018999661583066933817089035355488384771226741541612834826231664210453278948315017954397779731815414292987725445266397438440402157457778933003522642495517457375549336082657818715557016337073931221680815334406948786419088669999815096827012659403821817837836167446032315497555027684267607175487095821367899709509181670700824447209851509166020420010245121297637069594824760902925974350716502960953908745151239422640846528285064927245372930151642005227493522721115560178794967078880751302144480358230484369926552065085057744350054007598613642106059031994067913920925344501469787004816709566194743758843627270339488152600800477106562932773671768381535626952706243584713291827494355272861552953862594000880912669919518855108197223717210686750242033618415249518908443709362388402134847210049839213427790071975506162589230142874221899706429404859720282251951653375988050859556464249000906756214742279182415934820525619282572800807511971017564457241067792524742470381317240708488087334434085669803906264719383601010239877215841957509168434563769841946674714440946581494602014711164271063209061581228097402003366560628901403386424032657353059435627129710013384550502553276701745038955352891473538832603739931802369880853466560282720432177531060982437902020827653054556975884464396132781914975944023604676474610788675022603067658160206825257845531797234115263028770439178644602325435592408746509314385424987259235986224141795346651181478909283492631490599191997866218543560250486128354257991287148335239199160570725678932616234591319772804856427877480728990129307279782871758912015202537070869512554910199707014482358314673480529831347390367304062975800153831057782331113354073272505184167140324647643394097683459908185513228115069127257585275326138928669659822623740718064754567635817634945905813033644728648715729539051985379906817965584790083500189181331887447248755126028260535941196572189474892737488169326282808299060146700726452201357685539818311346343181985647573932290427143396403937834318245457875450573686443460747625471661120361531905694018041540201097828778088311804607072760370311241313997716271591483267727164874497539962184687756538563206376309797833579746567063842629120696257724870189904239705530331466125442335651199525281514681663309044467860899380663892800906497114966022247353801922854917298497875180740875243184243286420079403297859412256698641222689125816061570561811065242796171488800738266090272399369406631226262655229220769995983736634934695729352954143965270497050207821662474592637167057759074014923441913446713817952582956726924962664477495413324371436610040671044550846507163392918562034434939116819725118541140979033504681013243855180142551977875310278704090960693882323970642211955221729728095191814499146519209302102859659144042946801481936761733125760847288417286776820737982439128648740157612227466319174885930350805415147731478361191606228009024423930573024131876016754221843776774858796840411793314466907834060133977815191315939866612710891693159322678799624420479128387517376541850487243882571385329734992224102901653766398742378086372448530812964054473533513537658829461664533816021202808756512520258058994960952641474427332085740218332889131586522295779162270759949444891280264626996183067700331966818696027190415642835812678097891060922131250483799970042782050558386290402886341199835049012874355863951331798202850458191060583979710472127606901875916127967937805439330673245194722709385629163316952869395907228161243975632381969970872792660372652807489669504413494537410914877903741249508158628614612747469353124526951314273774408609223448239434057352617705100570676959726758933463952215724358558867650247235839388721595086969243652701357779955913267880084475419987713875262727106054002860990971690464484453894986048191890443818934829558587401069187459061921457673055193173295497148194062611388009760362561553963834519899122082690763107184919906666489578186435430380890936863319065527457611622739370750784618042585022422579666348185062638158226749551798232981319907339650460205354285829331019156969763350116087022530836033654759753979408011622307372764960667260457332528729084514259241834106585817240052463363263495247467331111643508244667138345957372036683851835708827993325324425084495608170238311653743484268370842157488604619035605872587211300155655732645964688106863970845167414633695255065065936432176628207502084928218106351748619792877138370668329920816782142043264973890647093576327086091933809453737131481236583843508341805483713285771588929548257494205741977833657998795559916583711428556255344972295144235184482195714481574690695808304006162051737012571349992985675152495306173188798204305168525565641844758380976282140978499131934385588646831757519317361835972161723863324707348832278937139865157532905939480935483589856955569711668753502808871993829004339542242084687500034991930390370216998742393229021954293921035739386481409626519479980482532126967452170750693893620523484056458399739422230600718248983934537195198787967963370670610487818062357971840188012127705749533777984996229765860820479701609029226730023465555867310615110450449649722360213725173962388659764868591876362780917417462592035306646701165808932041440288566330912007458838800187688386544264715985433965809147779897303012620485497511130090721145583016045211098427034656577905188251006343867799308896873125398676559194163316671015101283966965425404441141531668372814234590641091422808480444503745629837087953162258496635062983432625443523864487791949066279904080451121212661636728319607712613823311557136987626827489819235339093878505238774855626660446001631252477994303962879488070136848304347724851504144354417396821523183108283854222270411147905049912888104586055895546289007140523320349557811112766688086756367257234805755808103693913532534895857500726497178521768891765628476673088879769623213700597727317482558931745985414258916714198119859699521987106880068884651266348846546206087200568961403461113084383798309045418511446195145861086841544651489458020974913322066683084693521465816385132238481546138719393832983462925524583161876836185193627623239799696429741648400636603297708317276224944661699285277948522747909842026540064386604528969238976436210402919743453024478511442571989001836309059931038517676375756732335393266134375372128669111545800330354540874441372175166723242761997743931456436060086195949184155899909303249103826727349311820102035506427381497643807324767148508569496787475661912637037257641838533988288205503155352564477255319679142768341793548773132829132270947347810142063728303079067060938015295605465656588190790747425915645206708807878271720957271316856461353686112027918276999696376111540673537075167283827494414483174529507880960724123103904617350469261575860699359002116702660692680894299231649368454615520225457962517304633620863355139574483876681174598485010415280441500060411806667887598240843746365722653442471766423826047934221469431385785297207528297806238088288777044393552153951863946202141839406114029186069432775869465073971580748497190791505622554341005428557089140215416470523039729769196546999924587748545979848186010293881262501668685711868671029699897943501910035102166819131773692425796853526061736844856766557959682946266831362328601741416948348278642739238260773916203196566816394088455188465314722362320135988399397364963728165925911085405121954147158114292221726395011554244092493661147326077210385640503604331350536746640805194809247939233667466436279410564435793988552715663899706571149040355251934033637980780584439768316597186146080660744386169834582757921332545682724931027509490359848602695755889129363441653977582760370697455522627024699181968002935097476434812241646780536794119135160378776575895238979463206028857805885138946723921112391248162480416343401266516658227838648124466608405122416970718571033310261517470646721657959304109745910130998634827701794053323955560890229685656655548488498846177232241890457088629056650635363599557585231470645958712906828629282333740509869246389025834614601293031759417003249811394522007658974928258173478535918111091751893526012360136932512647815853546735194547173707612165305853894973412003836430643532244382907728979705818325754579276382399622855910208427818847060056422632103739108957976761688210769572280846656970200242442411863522400603675870333641056251618179741808042495094920492101391908666512725884620752773236532674831887579886952896453245360195532713658402281729270438395121784280544181961363144691258550243610444677341468230758920764959773827524274426023379610265786721591814449003739556728210785421986185016703961382697108800992435157880641531180932514334405441730926341232043534533949972645021702611064013015033022667651813286002224617346834248109640853456441931024698863080065662106891881175577259844965839350049353511494676803954956451667741806014833101814376880444536842923571400437362332924189019781793887567217258066402088475750356502214000594495601875261123001855270645990949451994652984759668660399065804501486437858703788718557253154133574262133445811391568744036618837432358941096907493810104767813805513765701384271560377687695192731099175023870658832572147361702725248940988785670665187611671000421896787153187952176083779397006180696920909410590685539277608982468423878203683900498611850239168577104437630864434387108820881187701033573865433283450660534219144370898419497283966129375491017738647798659643339346821913104950795011014459563490333608855510909973263006802832298713844196134894698858128784410159594491659100871387885496783836702420931530874353963033834831706633083710664665127645430687378392491635584313990179243544880136642735175331567204779523970161720710906082403046498641497506369276476558265999683385714275905912806879383947918543731018631194992610282436542616673071995695116459333854021189468016705498663698800899393489007416040866132332973268344561623448757644395821521943516199784607107917243046500006828845481006634715053775110186590807477987558517481328176718943056038920266878244293028491063201001354234567473542679081676274110783539162065915876096509315774802911057222070989412690105973450020866857155317384066405087259995160491934755846956955749027732165793753981290896937535550485152957850178497545877583713985596522655604565906798074704297478362119000976328208294578160169510399907168477287814939887346140861282338841382328643923396822395609167971148886097022900456002605614216569814324094608646461961589672060135475741851982288651581191589178686768264405354676835272290240653279433278848526437573767768085719703245276751086494225806803234071051392305924699312439728158989759147368867622456747072093679576955288184145927491668855687076626779797774972145513114223281425270658826712100829773867359753210002022643283916541834682060713162174888922875014055150908517520487603127550302792900152646774057495179117468703821734901047682888378042750678011819595650277435847905365199986183766426711171908284304244346731801286020889931651087550150228769995576394539860077673417315876676229203685940435383540734609430659417214928310724544991751515905819402534286068116060082911962792852331532064361857315476519509891278489654502180497069524048540790975873851765686991292308690063669766452660535000847180143655256302683561535216162817584524162708295464318496087094246474404125722201656782838994713556139947229947965191233801713234151084353861573689605946932373299978890425971946455665459657413552515675743504533358935661496782180895700712940657555058645954585418641091818701091368673435017300504689320429999040754210118281444425080896068397845847573289069671428638233424257853931440821030194525124490937680222311209115238302491105670100338281291798024771205135026235608252470051887671532096459952762035110970991479709883780784100469330905151634383875683540392799434276968346780125249148744789803421270716123249256029902134212525573253642845338284318520540254497084835401915060297465995331194832170526746882708711740572360988377827474952668688113878652758082748646775835073651562492144443118689478403333675386082165016777858224246383028764621395914116744852115319387005458390047998635472238745855713835846787478499869384640617741382950506533349763444064038633017259790808156791965255860090377865572664012679539899142267941802700660629289628569327985734774972575405190594477167034693309603689322223073973963543506716609364927344522822569902701938083635851554383651850165196160496696092041876073580708335203234675411847437879058272139013188535001464101935911779817619626793947433943841032796870788196451551959231852990294415098978835401867134292362347489945429214334443099491524181220930694224580305788474094421435078937761645974156085886971877284654270666213705304542804463922282001612773565270262878470352201741734024733221429398072794674923130577969102724284432104060904963837028547531615843879128440227248637650311829010915245833997572752207541963823747247768414581519838359089154851594415748038980102079692570531215637227097670052451887444187316876811977211581977804607343257286326018944164793636480644018818694275640218554561132173157437045472197903776209543500433809851516829131210296885808481375126349419442967555249880606358003650297116614690510897703077533370700235808574501418346471180437807904307319258428921475951350883110524994360701976177107412715544340365723217745305402518338981407798981837959202686241999727303077140683558229672742126235380505067294314182872763900196294509764495153148395722008963155265834488167565736106337057918105643784103598491756576292039653255711088536602563197829847357142766138427822044107471296995039300360628134650285840330339674490721025908029243709603879706517290418266068176283587132879824148679040566139558176193255681347044362587041217120308725415339105970833208349188039133492258734029202787475060934663897533392352934395681959195355906489287872923701411276373528576241139229877722136851089182857792210127565400506088630953873734120856845316025558624341150728419765154206616415281049184600969575511271523119283554073198957405294499377845827436739154134802659525820239374418909546669961000441228337200894164680860072745412658649664996356518924466530109382905580619273040362902486658972528786600532852333995508782573212325165612666858965248107490169045872299733672578807126427517452893729053332031203820160536434498787304340669344290742712263752444661112593573640381969719649876372634370487104627494828941315104142125552546088324449620002447230874138719147615680291472899795967846824369934624075550011583963271571576472706062783720466281041985237431038893605009593333336150222814967578237268690111771235263120284182160106445345761404594635800404747641329658684687273027871711357042601957601429912955453384217068660344360935503682684423484300018098926017122104346480392722375977325098350894833498869532258003405812046096900179185664867654020927488660464364362638381238316306169742228758653833966451225443556163499578624959215174437999293495822897828930869980078449102246972892329654881806762363289451882328299416124166667689447958654367942887831986597385553688301205746143323964802100658460214568124022554717639052922651925452215209757050000301874852583329031257424058429094148934448351005822302125084870411263994180623173538124484607921107684193339324191565503078494605681257648919067162135869747628765964114618791173897606535816249036105517736975685819351967303590761740516312459864567114211412194597247587414632692987085468199891739707766121148217597826770708955263766372554556984780967793814831311975129538417856080005940257771073934699384640700621811999436007265061283168557257303295428773502901902420147234959763244571914339129449249520975360181749996125977196091473676212335398109985725410901472262533520872662276142328214748157288419514586443885955207913844541117861984041971064862565434413248938770227605589707196107809595262974792345490570663980697275681314195716610633733351488802417941527520233234542453159811434608769543806062145687360379047085390346919096890263703199621578700495259051523276819145179187091747481407549142622296645457963389008098456410468333182818361487038341430548647660481303655162766559413476322028237896328539271050253491331598417755025877971389596407361087638477067701892362685162302643370512007865701543618985380662807795052090963434321923757592440525901951523776848798477636815097911314878577912224984762213609371354453565776763722908793302678367252608172585480332806801070866944638784785777538222434384582960911828462560616636682940187860405261158663009428119141001731131327962674592631154371878642759339685238076561191440780631638560764666984715757008118912344552986885990389572849558552005376317055233964783033336504385307734239437197471432688311533662894273947645140957772874581251333630300568449287287444038595748983840163640818250176354219688338107972627560310253690464270646250921871058180319817801186095002751772077178729603837560040861038106505870386447547631400034228409840715346775358490799604846592375812036934810747283874071474265682185647456575378117395401654589166089112422091636755316184119652877373742123846953776292220783233168995884713642560748181436664777245774989695676441361710238097561463743099524867257223385604714310652889055460487190422969569769670334907006847587027896055116978683727696973831355463127992085378110686805765774560509261971362927440479284037739920383204869422800244291866345662290037788708772524220420308304770861454236103837326801830365666583636088564034297336593447818350891822196893278050758053001718958810573342325207265498456340803979332981564144838029877724608335637980943686555297462290512401435522834763854476101897845401022783875772184941558875440702980953728807451878535995092955672462550953188900034356177031993673580537541994802157851387391633412943782356269870523597325642016140771716883269155001970747932665582991467187219298827940986320340511625397644902426772236767117796043693987570584720424282135729537513027464866218778642427826577935746812365850470418672656460581681744260433797503894534202258331567973138610573069889489837292898170444064533692259280017655648888080524191374061333520384221117601978323762675210809619051129034050517371620480082221408957329669743583213459447732451348946732983053183637229497658409646130094894677599889082239011879542175232362957881880230678732840403535161351824262538190914015045774314668259467192954135928148500564509509008775026995995777922517088778813708575428673484231140758395572212184392300696608515368154336228574711881900099810271950648247674350482525334523231429987350045664695902232685589541412091785649223684842170967700212886458191418108863402753163661229360756628882788681417822656573613226721779247545975476803825773318392243017828308832151919288594563328298279201341534738363376142744480263085908973124379305911294283438022836380725348137347508016448739767357895162222170631921926655611400743078490898978015356604247132869483479990212013453464064397285958943978231671496634664044182631558340135127838937817583410987311882707888103406355769816955508105365434604047896331388970048289027303888283445577456377042746551908265600714921248621471266732362919580689891319812042031564439769389474912024462533711310663938926104263314150730753034046472373365890901331864364998714204568751572247734456591633671706180192810169754306299726587943793897827249869732774062949353902919956320312620785924644014172323157936787034097073914100704194661619995642804850161470162925819424126477919994227299115432833163995908396861059272959152612475876353812035572477725794339101029449736334511238830578610272557822282391494614341141379937921306844744081950971294350942262894974283210489643231884433573791534557483967813332330925927096003056864293675725326356556449143805850749280691477023976608996078238621625683626949348275995104215452421394481040127305737828981123005232105494366421034085823150815732754878268332719994805345395673584919731800672429594025032009925077924407841426077254501830561214297434698529031608560378333917253957488692867997251794232116141739915688062434461429571295718581229408755998772632105087147808123357901805604640016149812277619610924769810354014938057393621405011144417215151605483222192847138673632661018242565788842133880349706732460761727518318311769657942278390015875273789610705650199311711614396193629548367489764184482482161405102945695092725108963233145612946431900712224031190215399601330605838239352115536872938725427258742428846641978988367285034131657940310466174736546388565411457739291797560017727424589369598906318493361532505570322377386962793788484733254802420479525038161849557629078053478350091836241691463566537470836408413944514379611863343773768038060615521603456222319034998840239154528201043987155064650880196022124107761087751267428467950677565894092377041173841603819617772609798373373886345231236131395793433024396120278490028855721466858127304824670029216309595500295068628667217393378088419308583811393346362232274867892190805655949317688772393474167560013546075804411966358806359836601331759196861344318969598700731753209542524706242031852959479095169661928763655416352263739036629605291550055813145377346856603424641545328928172777170673243876797899678299783411168737381592355412658043757194243085161148553265289892342180065236403529364482059412274929634598566211035186415576087567922798840633218964441479975933419995525149901982669533800376164593802457407879121769114318517479456969146191098524349793889435118691111015505404405161461866292120452239140179408078772052487700205318414192350113454644759109035790499912705118194376701533939401981912509987253136930587656127074874567951734943309788172711980678908751671182301439078206524621345505354766496590566063476723092982637704980331397015922526398504987006211691279030697716651824252018074104310588948619112555860180282612944585193681573053219711044839038545662797694102707757471411679273596657132627450630568866567521682370089344037610891662547063043544385453765308905758719143303448485051101429348323908673016703352022706586069925194299314373677841241653827785457799754206354542918852086271505432011538421550381769107684742087006197403480404082819904709004947388733316022094383766333036423761844969235895205269225056758772298425585448827856399937981128493299950618370673430624055856238573875559449299815595134154613440438077986208695210052997722199667355351543393330433131079908313720147806878572463230181195238860818102757180417055018389078418668918481548877198912315186812341351609524319472755760021517393918039795621325168840030869257684495153954977820306279214030426746160082475754000699603007807898572735592252662825247566980513643972580247635173993806188244202280778936666453676215301095954760483438463274275951904140803197829292226026181543232622349424808430870939487459688831722965830793673828282320961618079762567539008712120320559242238604801032961127378266995215592384083270890700227026128929799129954568342493424833874225835933586054143572301865926475777913592453693213871905810895133620479650726770760771897682643998827865917467728753249378058207263179713646508328885676759729168437672945611805110888208804124393010885875092022107828242347682059063674184906688535611831924616058583707967594032634941782431488945964844832289402960935654635924513237022177703932325322996779841921093631507880244432272513562723829421283217867533035002143549222954380408718319625469048716093797567590787566383867043759263767503445804198213838782527427161440613106187785722523068282170150494672289995462935185023756865775565240677280960805623061384401165896335009079686890512082387458349459285935625950411962366588512506957180769842488514060871171774893601795070623950643974169652077698168509191811071584744102685953596916155807653857615441550204103100797924007184822585399049083850813897192540954815627703717820392711533164386540487320641015723790923110326713764265601473317952689341580723749078630299963650932201949076255842753208354053045939305704726892691285842425711335377806173285622242079626444848476879644727365878432934864552317249130501762508911349336905581830690700485290743374717226470972541884768911582899512594212632701752268745541484296497014526721168275834447186478338202911610737709902920566246245666522090810482568278147217594037306031319774437670530409382468199812447355287417639398628576758973831251007543098461396613612435071914039416745006673915743576062190632183662222883043037142719989805739256447982085795073813505703131200507713631215441563782928455496271634692963902848129701304087628935183016540043844502484254473599501152117452441863958335509539378739947525111663735055360557160999545038234005310622624631333591280171161046215560786844466080165237979021114555817622246692994009612758906962074912924703167427278465076284319349232322043175932342239158921862724815479619510359358453486378825065824641906442120233157584061758682075981020440565739071800921665313729783992657682210063541973314522513221599219183205244337983805256474986856530756705233065275248778226877292439125947825367364520557835648967891741686738264689046859429887179636575021213106797207906104080086640900561521290408235598531429275844860228045176662514393908497138848593674509543120784818806392355882406590251773184874710477135282329500703606270732891765541979553409711308848410832946982453472513704719443986556240691836953626105209606723661117185467922080106109231947475829317739237887783594009066067919436713341922053918320940530032473085977842417705889166549749073782437091501027343945242257397541179859978369932877258923804218610290734871035372496455493683755480259765346289833828643514386394994365229165598524561422355991765140613708583614033699210985325077288614206994643119935575279072665149895018140669692937843142060486686607263285095259512751315682277988731401197661247374040915145778532539048558203268199961529472501273949036265070568637823869808657379155387885635796611234187765817384656700039373704722808725333231600404675882434388527529230754323693036596351221408745698169032875069988741054387106909020557795272615850786394491269878695882356128554952314962770989597370991816176555332013396324639630254399029650743416473528440336162129684832230714626386213145950960287425854421639380510486703449477053443559502987638212823992016266659766549102489926808716363299752393298416113347195353671119082609917373667335158958185750468394456005096752289916345218365264615663586102876585468396216113843982887027759878104908850651157632229415896761014600731852563549049017139966521701013992007911896460055362195354880899754709922130767096136588473018141980207424945207496976394346249999166282550055433589961385462241519138569209176717311912689220423447091919666056019483724119288061851833633077200487882857900721768604927456589528157505640543804228795600235351820673624361350024373365016897207592581821671517784052560659995241255271735631412307093293480712351935552173299948439647980470239506257892657931329949838292828412516279595000884962253893321451610284678973730249544619263625336141449968799386464203043616358889825972899748535776465774324147751693849411399578149433326927508827015352780735476595059849564251848382493506979892674033275347488053685865902760754075517819041530337606895699901257940732911936596345564484699061579118244196632460266485092191866847385531393828227303710415141925144316124604414742029209136884234189313409070960223461884624971087472847884084136348359080112623166445809989845892054964223998214910509092165310401621054616471576871251822756455294146379062894280225286067109438415207977716382538802070081248531386921814227654836128401747098811888288487263136828080749271020069123180925313786072766750432856505926205148836736180389372974290421307912181008264024493565325493514028872336371840747343978874177611354970891239956405535685009116877871654319519889921850718406038905262973322127438864032221409424447228228575273569633011816595722417715219183407603580321532780164343829873675412976367631465031926891164590495857512453955097992149036219258758133804469880982683624013068415973192183655610456378313298185182553705375735643348698819656032938798033923157135087521077450557477030623926827374725205272419327475906864922079156355758595564519758107351099457051032527977932188231115088854971717200113751994306102332468134652440117551082206205636247821304551408867718086513034208435312879487103558338759570209552632295850532593597762506799899766697093787594366867477940169911322336094434877289360966462908687816342363702567210481784119994585788477648139256272716174220584846608304926409712741774954371548521904273781516719335129741191067295586400905247425129630934731409533260840354620602324848080884166566978809064076876053044259678412991485949058412988618899972633968913005812526415851585536053897653624863191280694370343412691074297992958909388057654136856267761606317828677322783721117913800816451186724459790051873670635423242574419741915140833335838703769940296927617161882175939771758848212477944906119016545429789021317021529389858572208922446937542491317225381824588681944238990030265246512006320949490172327667659702473660073936682671619162318083478827972547666083836715454826061066999589481780153619933304028073027092385102024882208631049945294089833871220830759133340293768192157408375510973736802645800224626771352493617229086716233603646258386574427137057020041912997714751910651313503946575925253842998285606633190824331870305061237417473270943090733182370946309105028582291942975460311981870213478392335416863150983777472043799562562430489606370984253088435392568771235603426888861036417920060015581992864337352987969712396148970123189020018163369089030518387145052499251290677524364521265155823059584997594656654694614183804703781456476370362080774919548839320334205711296408948098180438347691141312950759855240541763005670725800696741225127729066479771115454760611010925228212435167156649371713874382674341848317805868554988923487681904105742294017881559028351783348112498652224236785197715938655562973763590195306568906792460712411871343901792396870386186990114351796648665039055935268697933532597380346863682938157819765748330685228526684599828953034057117320043384954796543383833853991610771584769060898214172774632000421354561869568697573429024691546342371424650294373141585929519314757085847271476906570330697477641451210773310810548898166173747272669663967491280764023181491762678366914651567377178777612121193637298799163993033527134304909537187900896523526970924413557379697225329369229287183716173265806022525973796087190770209235222835492574131230968869248315559984986553092378520252917885621152694066561752302875130935178086656878666691693199133449029092662721138661798233887387914256201137540105689836283812127232088324260061511588315982131163241544005617922035203035992816159454826120545649486711078634770211528442609112893317944479852738568240922357917733478542582644083993567931638986560884221430207052621901657297971824236196115399510159839829193409971278927616159652742938120935709989172297166011950707577352531357902239026496354982634725878463460662229587493450626092864788470773532720366429992289964165399333767883507174171827616701968934957404915287703450216633268148992605289328962406456540974672710967695367346151772434115505587165149771788624767492008713589798315380837826951062244193826931600496403944282127295644614826071505937869674241820302225120734132598432640049205712341917324847004444309395191103588706529950626106917217264916366742872018997887505619330639821564538769865426714330996656745324146977773703561430129333971135901334820283132797991771977221838123303562892285627195235401255715038653742395372072517394984790355106732991245770783323571540338689203382480891847523526659687109872734198953701637663999230484715961744462789160349839740705564517546402918951209119426287208928305668786120315183117218565670312540978035931384225009776084076646918945219344480794538103054957567189059836575361840015710883088038464781216942278779162912701516088262149066904124451723353411077602924695252273343264652569231009390907136852066999993896394071351516646799839115271551146080190894267083519491541639041872468358006669380255148982893828504688972388763810424004855522375500161739698328962740291646161095883518341709531590990404985997963489269360345751341846231780737835017663910613578945518521135937276819124499667197112657393767246566724775550644114697070413614367632744221491022987438297883059624584621376058173049689325325692393035746966675187011903676849316728639388413532240422870151718601034703978148531768190425667706919181326652281832645547979076798706414155601898807511045907194389174794208587572842083147475785760002136440221277182191021201994636515179103041195116139614700630739790690197888925663515600280474913806354063748087061486241526417870785076624527931904929275119940214167218920502774615938608717163356723044365669602921600928548403657239212798118925850671902070716552735684787432300864910503893874970210375332314060840510731420094114714029340227564230820985496695616992942395136864715228337248199361753939520871556478769831016847169435039580896908013040577144139728192132605341900099185458474642393253285959813299412044982099744221407858646453298285657589026205344544821292145639784401763909413732687835037147016749054539758482019052544589750998819293107085645260731446058913928871904572072712446679963919842659079016738131330553147564962966688825474137501340103135215591855691979449226699942648281961365893354418610748937943828771747747395317964095047797071614496825044710846569960877966770217715250949933345875653617226056244420018498482673662559837368444871460942272186887471286441823595301037913208752423301271899132603556603500588640303661891465047701196393354799281406550785091796398413222904268082714621537023747895861092743387295084516257259660021314282344519943981568705955562019468995045802564624276258316832180869880920570803211632964187298266407652044792907940768606935382612117517005212501649377744372957013167270750108362088244141742718523253658191668003187828540626001285399349014233119641768499023564600330489117945265336393407178864710124308698727559855314950921625895013743337529106930037095641013250807853119446652054877351332847412360481424869123377441741412899472134925890558543573611747022351927994295492138099149268634002913151228230608169874222807393514014716731918429311311324638661831057508969342256246092618878935107213108122523507304684597120230006068675876785725511715231466637887341635713914304733215589857583973188815431658131805020429471860904408650412332682320258208143677656339058809012360891729880682380132499273192740199335212274004251776505045995071121307318463381931777807978079361282583574925968888056932564165757722358588983467781495689398669859224446807508794698000982028547933733833348067211894548199860066217972697373639317185219923541202712668882996146757980418948574659752402393946668169610576575190050754530063834074113831222710818081003988189325878063107401514138834773520873687945929202669670102226599365335560454572766490874514536814865221883225337775966020890602044519993428810966516844902123896079387829115710407342455681884088550786474449084757120811721480136382422445985773958857749100965935744587452951445788480488693404167200523264223276628210353385962339737990771052881448394973946094379894197243682697670791764044786509445365689880219445235229504197736315213484548038500014581439713304401769583446787343011753925357481093204112533967329643230128810850015408770316741671009930149177869783514586181380329475525067218980391043554471318798164918939645978896661225119386373885174517795254765159022595892565535954772070885948464655668562229301692143074185202142857024690959087904662646540733786480205217517201649746081910319085021412654297029844724024586616673922476492763997300669942024873375848800477057250026332325286084490009082517933476773244472464491610324709655335949884317996058927108475841413991503301134370847807342655241291783541592548666621205127864879607192316323859127664138363490431023805367634148028395467541806461783189768970009247008126761339401908004937991016053398447426704901987591875361905989417353033235030479720548523124440447155943845328453365398480207511741229718031485548779727623944957333902850238639057556385037236917033769998195062986322362235435243958166230696979764949454559185752495784210246292097027336934046277990216765881877243453192623367455627010959203964506332327278316837692496144311888055449318965484612001839450081770112169668584910680454953834032017753749111520336524813520183670727228938018651371655942036581789619699719952525415694029700783523727956356183877507572766887205543131938209841566547202328265108983904028159467296143263310937993809563932303589653926581026899247272848240204235242887125138285921992375824606571257776409557707832480594840985185233146209868848584236396887225571782492936736174412749275623271966420701336362130768508381608016680159186498371029276850144272595199657976628910103007426528264304477667890721239734929698789407308422736029707387335482574336774684994920466044308767629647575802024880710396478182134800072235940870922682220894254805935413156539429667615493410326103251268695821238275037225436952008335770839661852926819430619969116616511558783710984091199903950552151890043616199990911617498665246750857335773184873530799963458917162426328235244452257481363226764808858747242766752997924194077956390614108403719328163961547442342161035110441613035279950985533969958035661228982333545458092957341577735186859247923222981805266257444103272322377376549672535387460743703887776968402002966137114605945465067710357488137334058402679314369297729351676358898766780371715836727220304832218268286328360525020208556529410223233513438861155753049233771094022640500245311736767574935633220864964278675028324627566858996059064824123907947243181177354505030279888789244715089639615816534903250265378193005802197402428653593066350451426910849952903472933251340452773900470807644194769618793014529461357276807790932356693747882496887253529681047637726556638440949625458302898822055562697524789281212007003020338953653678733321433385552543665991440216996397556395111511018871367183440867459679065843752072336027420935666604164548161608468731086437280718227528132094109198789563887658499552446410301456353442669092166305594942260531333885021948721890626702563261896790152005093458150290308617403640952774371184224221070894403535024512653548529202624695927630376915670201852682812451418913887669462219786259644427885458426893524861791778646026553420235301113864554092884552934108807388755371958901276965661606152421071796234958646432498892572521488056327640285417135648729093219564490931023861916395222359637825395011876230326962973262008932464072557983098247107966870491934553211251237183596824596181281241694022203325291763022573480086044497199676694158121729082271356987442340559239562388489899810564924021931231513954108112490023927683765903642676423907673309432969592888530044789775864315736424823462372838212018807205370264190751663647848857267644083745167999556133775737934439230735187795873189964527442425319201969736004931845335541512096294793220390969528194880091340046216350599779745143632990662882298578006053314389679136942491694260836281003792881727827269956824840238693153225638681247751857921289879663215831948421644078843541146335067469110158048467038065042411651796300591131861175122990514357378648186418820267109173822887840835346749447434924835152584914073939459639158306725333228851389522622710303911300280780485086239617991442877836705306236730750435128057906056094571045552159792667988089293596324323712883560445078431199554396845986350066308969763643411849414443344738374126704297922416968411777952014337084968505044703574811413377942054585598158670305898428337623297502754558620601708984366675098837700688076370771498508182008225642417128079999112671456545431764660264687193627752718522354402336692749353869607485837529351635077290915223616734428029584917601698237000154529883853999449279200304855680905418667556845168553407263495820052695760242788642967673816297563709175801640702838831095059924696661585465167613793386378524779163430558386820641474751294565430874896829379692391031807232475415003362288672993088682225931369569827070772473115939895845301607423433902526793785352276169979430444852040567062371752811168262432984642752425291185633504828163628232065318912315625055823898795158146197489459060563660985933062566123182880156674712042781413616174237615054225787993304240043805621674796482778396960829039430965355801576247282521253342759647798370877476353223077718048406363813109997236496958521735527936995873014274422928767000639774997822970159055757026442639981032055356556110602418568042424119283937740663980114070315650514163384100131589205654564051245803630390290265060159206512104364928634980040597333038197215632418887845451644137960344890936676217653283275105789617536460273234197834605797941667698325358827361422406473496390021725029147569384418506735865191018423135197077674345974198182851198238009221980509259794872319795875777143438157007868302500912565070119964786232865888231108486704889207249783898159983291721231134376538104195027370024026921391549507111370765388400010795439236204710922612580920856833797995380280457393912360337965512336712372520517453058030627854117013434774034710925593967787226748038260824902976383512657227011476634374982230139601936330264651624939582787328320786162325975735842092551694407888499858387322731036819384345739054016789251733602617484268286973338960679496683081405698819856510067162674814491507596976635121153705274319154881324582501883311064780132633890309307658543436270123962753856131223552693039406820348803329648706663795475654792623097826528913887669375568096730947013975442669298279742371216245156190154436857344929027892855477038832891640600189827425857215985627684100213696789216182988200042447787748894630112925830311289058971823894427812041779892083963449925966770713885489602154048491393987022722621031407494514255571811027774398638197259948213888087112001545743458244122055344425345245987919929098030801903012698646265415649969198315885371342702093777499842101091707642132526134299485421123855048881604671526064777835334445129368380077783321051367870882582172057993813574700631981593982761885554716496273859233368810722585811165544652790600910294814895424411812141369864028860919728815293790246029834117137655797414077217249103330650881577651211934544224857282199560811766798225259709888538459033726764911460059971561599461541634313813566485568272858780503067946414624230703061162727876291687838796489279619283243804976318726511355670229942204217419269265570568625605773999287125980044606026098770715067553949389513937950362564417059374748513081258529898711303597046782681327119691573631559228785986393549797835197276099445116394571822413395564084563247504253613931878770930629380509503280696203158083088538376292424675353490538884840528228132553030458549376214344537040210229471278298780023910508610767010694147643001892295013026955961414535912513903270273631873395233421904831797031006069887661002303441672625851996087019744920994287417727580046905595038056721816973720940949332214554655635083789929448437238986512072318599653289371033749236435089788874232078208394712505409412686670519111432937223755723186319794226479478547421889360097146939915824730453740598752661480138695811514735083634273916043771785374269958498353165944490127482080068522579616988135070900150076229642589998068986629773761803356961726267583403825286461723236859517415614454983098153436427628932158121935204205436149326660721376636552679713943111294354408654727653105603912004111137630757320774350324921015929075160708652409247361515781641195241205603628283251399633306248437647876677599530671062121189010716139362962020977415507038874724462671185199368165355575658885515013214507534372741005093998619945224946513828765865686069768078632747565129254976097949924956239472481596533671605929264145347039873579159050517682514087608661477489008340473545353022306866710248340302972039445914606775901034313121773873383800330599758419131812617974829093407523036911243774992136828583377504397791214061483681137283218780568848111256958233753435144590229103909529824367763700185194486043898764798411600816644442231241596168206849374411415102227869189099518683196129920525378470569607471091871750476123314720744974022480272688520962414173219166602390039724872115789794932088800379017134021774968436410824246509041984756788061106763253463974770209586336439752394330536159492425724077561009535070939863211966693212113528594464955905670480500520801985806116047180438878474503069587278666342475158432505378149416938647456434564819722865364890436411107380775053604087388773497780406787800852282996569156529573785049113473721772331690245791592319064869461602369641518624292733639906360824476949998355568042371074363359113975565753430183161801951827144659702616338870753711499741180633539396456510971424189400805172465266289829918413917730105097111806486168448608756784746192654661054057437613867945954361692285878996009695696587275415532773429493564165472393226921231590835469014323886164484409656765346726355616053159886946237646705007913726715451818016630135225599323761878327327465744645103130985553284266198203155170251884437865797218620987876483825868793156238277691051758004758379076895605563793732866992443091282076639617353023117803025938598672519722984684383640004651641498160598679583268720409149925023533751636249573680041908215872263699036112932146903436678457029759180144880951361737116574482300616679755956078699567369556845857561999636038556204834278836922934085747980317436377412929461951435440606546264987313610956141749059979186442896420156789945981801910616407703902608191700054057452967464253233324010298353387654028333105693950405641802432827538958577922499798751417410296977231390070594611665735759088695302403827080425424708956074766054320743213958080932818832362486582058740378356646010242381912438703903369307722859531570765396569489233862137677199851772593638263982677142725087879253409344307122010535706871597674518886393833901386374377115791793371337555693780902173104992776206996071881926005291250282400246416740269601455657727889323437323871157873545590325896857871040413804593177766009743549754178938093334930398899225459919329092370109727856679836620854338527017303080249123967889316300108253637234686807318559010266524588021094814438012584885597744996497774835706645919696833034657206128739237059632542714122290661463836794105666642079081410817727668237990915120594932821570657647966529488085428616153335525331313342686601345115900986196218265202129923246686144763261086046625136984578982119128937326871587950943973881855141909364593771758738326564228811366338160828521708343404314426407917033126064172515767624433694842245231987994854290047998398875399150767960308562322068398103962573841425516442745254998039387993931762046552848782163332915006665562634196229418439867298849260385067943622088902710668298159894054365320068347281994458642847182735644770941264466184255921906533354313713201431146359627070532799824890740087398868001418361843223712025829334930998775418253012082472930470450830349151103906796865963184782293896847989484285750198580718617029515639271127739211917111401285057477874282652195892862424491122635739561577550272841595459031802952301045057320106706228801247345228679414654926748173111251258558759008290653669441593720983260918011871044917275201204837160223823598256103980703383506826652653132336401258930062170213868281745687301180653355281988497472568634457573875688161115834143329888205510467784199356241747837080522166740399131977375013045756869787991027215053890312032130021822125849169015462184935806067502861294879389402404680916424914283932131985382289170563663311625942285495097174945077791265243849065484295433148840493537980521570331066300568500692106925865919533844512366005622349013963946711324564167287356048779879724003725719911668536797950761133971018265051594924712407049927318958723358338242995065781663257633101504176956547793762826301208718689667004007186006619925772592962258359417006700257172368911783864296895346635222721632704960853552802740487121575381996677736025992512264836676881596576667063711483273009692334881523265636566850374770597400983130652145207517721310599379374512786636242423091987191465594841233465817887516151169977587765227935164524421323831896518972622634130684078980502318728309747146001062019406234389960952788918837439494274685555310197868185274591229748428633415411921186359319651684527999795360540944396976020399931204098390322602724855951433431824617485893377931244863621750684779143887101996243482370946619378034265991703887756593224009632256042467269163912046285698605694824855027418639893141657619056122113403950118274194164449442346869143689621673627688515410363377159326235300150936194931120549531746045092840623843391918217180858301027983575215130340575135336923441718063800247439985845286383251094003991810876730328362691236286041514005712915254906264103645517198625747073993836175266430095273185099032856602639160532095159657755703402396101648532997331245025485410775004687690787797594333200660177014407815806064807368123907808547424430511927333475381467766125228069758727095641476833200925046275749326203896696258987570299596979503254347940796932660028587043589086136478405026184301954671490362076761733063147793984147018609135977563445793375749403848528998803647876208917567949731820262397376559679677614604792974244856729448333941479157695990108011730466952678792103292056055574349177516837267492076520441042001628775925042534450402332495208705179933190940550904329958927198991339542523245192285251137763477252126023245287825387436916268851059897347579120804644911923585101695558962615658628484684598075892091078271657885108985156827541624037263025321439434513020694771054757752979848945028417227629417858721118855506746632312853124821435606899126282866717337603668791049644500854971106877187530589883226099444778541787350425930762436930219478517641503905232933123290997882465711178183178530239955652641692540877408698291763060926814165866758106009494932872736859225229588030153317271544805252660356514633126120651484129492506788705586738230295996563498159762871032133312270842852787747464031404449121512284876841822299036300400873330180507431186579908098593169565027928270729937710870039391050290184735539697587528417734920381568472422867087253298962670918398410007381314791528357418726394509641188429016167156161776933332822591936129533598548248980418431837537108367167285942506074256950060188568156936396967184591642614726845209177201354953511275909050971736093765691271667181022864441371939134246878920599578277198493849674031666442954635197657865662912733166360888013536933117166223707986370683259646036822860988128529776058676261170749225182340949214571978194250816076448767867667516853514287439043953322217122731137062663730967327489549057367891333559526832008882119190378577287529584482928209942240179693269970820852020402391200110566116782455918773353523272968161290600657368011445523707541168228514875601767971298133673895183168031234607501886375512645323252354623889919952368212429175270143095312240402637487052978524676114990310338502117294018392903644386194027528624453929798289885269223155464915727186402147766403024909298964755317076979351454373702272057882792758377373219037509657010570616797246073590823186836295381808701343681176394299669586895070671207017993651090466012056414396870448239326972283816783674879848331179802908654702769433756900504006444882077598349909871724137640155797544158214946978626428313101519888085088449565564544322183150890464549824229416351701799386126624746873851847199997169666883701881232041456737126008063401453582633035657636473984743062659392424107866951254797138354814925526117628960794685751497081689443612820486391473566691043426789218396847363848797191340907042543580181895133782558723442492789108521829978527859904912376897188730151639146760687892344506277207933367840120500308433442711108889682431493255122543225649310178401840003816162976077653699067478029393390653712780862446631609617182410156992710721862803668744161325840745705554770440400065129750534786945501240814253745328238210944082337852572322581694113467523703870118005985447345107018374707457970352658271551065244549193462316217002951645482921578759129212648486295143246816789360691768599961252645657845189913089692562846024879185671273226790432122610513932389866444000844396354504669976207447061158613046464845360520172693286370765357351274496579461043096942460686544161620861286957606709269857767652198689009357012743655178812149324940703008769109152139647036406548797106928717059599795095784467822199887258571692238741577929987104851923597686652527248007799494162963544851103992789058955855561467907813673529856418221988018127604465438831236960391475686120431067321772979640857972926885815982600275116467827432655079173813841773851560072929066096458922279232372436925781901818896804175256804989700261228094465923804893970219717774503599813913902414062176426511890581317492507188776354791874617572751439146234722907829310166593121372971033676004116864941124988948310547513610835315841997749594562825826162284473285221451259541422186217749209687705374218485237647210965274600415230091617275315597831242543861198893131481434761962627320103902103161617517785427570669503797070932033233298593981564377267383658825942042138017047015497438970778796642150340777882371372936842733827743247856784865301583368845602949839464432706462078957740109143209180920328152762587427319575838307866856720942059806582418594878047869788125886126619124610341343384994921761527759869317890279650023024613540047218129966504250451573169986476081822107851973112509798334289773984504495849212539752366469185209783107467802237206407052033555369439374371486668077966374559156261079279256866978799404504305073574628284545506561178743523134324306181048847473584273912649640302401347592434302640910403221414972487918541263514184046665228074658859463374249807281258338044520798666728163547088987301848105635233496906107531262476975052060779729345540431020759992369246903366878013692487779224948983031219950890510288081486464042072952635752860954411553757563617810242632505269863577947692352799443965284756862812200843623910669249209978017463644304243398417518466534211956403464132694963660891923553909757728918291916329970411464346520330252935525513079297445557303768620592694665760572402615170929391858620965479738037963038622850155327317285496009143152533106352891178510245907521804224089630796186617408449954170570410213648813590909785050063238110435898166807229171767619251761880075627641531697380843059419649333369273499791347899085343206340093064823620642460471561795204334602089231498261324607469908629127273551280488566324357385173279338660565509488966163694504472020868242701600898673448648555459591152568604968780175609212934559421143635181532514230420797603520381812598680829017675310626401386789286252382887779126085342869430236991745287738245718291399757953484473963346496374759620783203499881970934629447875721336938973876055628269834489502546309551700523560292115400322556605008575823972747073108903901898166799464402948416590177251130366277823851478493771404769099254523537975327796394162455596250994943192077841737509293432327139657863897742798926828217684512950614442081429055001063822461918686770447334230432711523108112405263228539750686120591529358794380139807023092711979679728654297032264256375593056078989256532624537477650982287751566040774818642942263522085699196161642966079450033739588219537014213586625000489845495198334001670805514736796368207226467878638402241372052135923423383947225907746682283557264091849067771633914655750045661212964041671058193181388721501333201649357302557501530494794867930880739891469064742086934570419251371299513715762167142960362056891873569415110139233692023876593857039265435794143495557770667505091655123096120796133623783257357778956242867903281895901193062786126377493341678472421280922860525412337185505009106582759507444902967490941080043179247731957217241510556746649635698845028494993343429709840514343389381149663840979512146310283368582194637782271367768339744347712147925143102348202186202573474897729799907168915704043443492532015170745725844162304404171862180380298529628831983938748749652687156153728422365353510594963879486584898708103217975720957041123587904719373679598397122595867665720018911435063528196573856491982802141000352595916979701971826296087551627704442812986584938776663165105530052161702033735897637993916303338190366898696324807311084541741992450426959106622131919635091598343064318910047051386391148994858894148999065893072906456423316298936747438107936751859381441147056342352645711108415881340760073522657886668878028800041473166354335900273786265463131587162885979271012666600831215915281913060060386868586770576344939707250574858337566422532705938619498337829856458253785867816753660124531461869490322812058247406004106358905597564871973810777108647874617495274557551752892673362491195580574650062154866216131425951949133376696950973369375031204850408916574471230603214040488179480475026176556388085485378850147182042759171089897107404542468465543337925314395231748616284263199191989594345104060653587041969867984653270967424000778640627319934608566525782618698487818931461998428036556129479458556273534440111856179693480756968314458266915581743292023701293737794141329081575625709023258279077810950519616800003779263122175339208456887172940031802938030051655310521172358724385610546061000404911752977716714757115207801571253460887023725128306744093395682393681969123591051430775213859962391864230503785654431692062733168249675642989146931014192837738962479285001602319224075015019184998381275837220273402607642856812605271611433419662820654888860095129653009244021254817321923979264173472093967355230468123710282750897585913164565308614598491807277885110215526494162927991664251412975872272935580030202271013234524802577501383790306930986252338323378238339648361207245249906793643923634944729391687734753859511700160541147591192956440461860313181285635090769176034406811615711933469326764035908696757728449703984136747991165953440981428335985623636482447388329194273929597428859881928662954354904103767644811712205513134682322168115285757372543523583966215608700376130466403258942976319291044993621477185249857274532440133978800163888008844199909005266973278096533525249317281258734260074520060143496766515869813727143857023673313109825131490595017889910945513882518159444785193914125628508226073634694223695098211173289631116463698438378311710038403457795941157257691082830665129677034927489725578707150430293519355349560805984282512055318959913198246166792863558282472906868606009614615476545033545224347929283690031409921939264860877714252853097171233191086429029894913238465223885159531179224749364582278266029693006317566452239441880817951715865303531922150497942647382903810480268442777332214467186077163008577674664792836180835562827043993053495879854992377286402413703297768428042053001371861105747905277554090661175310203902965710438920269287233748225295133043085721800209042433620146545588906115686401553726121211798230283763368835841464677139076971950654052656782204839412196666090349206856280816407408514795783597422928753113963518273086463167575264036018917938738667508148955393440024085553576360291381950543027341290265881260760223482194024000137822699990339194640514266891708752179927638847719928791313675933192539211093832482394334601324903527746513219999456491406743961720551658453482069568878345295131204127332322171446868421509978375340271048236284276630704849077981226488372073449179450302094436614986234689878974328495873939544581591005983630037774693269986032623788779534014362474185354899297103676792317949316686264892290791058002890356146638489901139976995094679803913215516878615188030666871186597628794589260223534314088713804470799587520094718055160974668817041431686669135988071442135843710752495258844003613484872465794688646531430858939836863999009457205361976255630518845403711894016210283230683301464503611877880522828975898605790368944107003419820781529996246027178228599331320564313984058730434997355608018470880233084969066694989747317088774776662855366391057742979065388552373184926223795077813636346328743548307699983827596894978109025154208590113027476084354350380411639878066850843517991459581310130746429767790706519968675657752913367889389472373175490757753160719849560936368795547872983511715418247317090705850937963931160140730135599840413947835007859711820302375994817230794335314056184836491854006052768122028746777622396600953302322844824530587446614021557824840176658334119500832823172255445077778534977623396127667720049762660636787692665121671540847658999021450690759074143972164268012394614985599833538892603607453390955793869142217872277028776428739452307003488182172724539113568231062636348733576593779329027613250193641598333411640287401011156524026581586259151027030719030184661442944739090043812276590759037635741494608847506779392897998721366716668270544211171503140956274591856115277738700865879057287536368047388483420657262392019867146838895229776598201403601583921303579189946738598000415820049477204609973229927467645264306062535576212804855943773495695120766472786810278784683018086031813812032174902199592159731023802572708542890256755340420221663883009684890617231276933714185705467220843087739413944924515276530859417576730780197936932594000234191746450268004371246206725348024942905066823253214410558824516745390122407327507294578699340217983860429403389269411780505444164538410804849874667234733144517891091684349368828793701578752237878955411590832639347371043909231114605892918793863359556533109313993537193799767787546119874846594142414414019557195815185447348220053010003865633374096420439134927989347288575285432867385254396444815083547414233029288133545290826034067369675518742848679588241843152058437739172171513345394180788227836231170154629583710394163468815708337188689602293806593814338279447853552870537715580898384945048724388600772130650095855381352891566919317038930787163705004021952859452092361975049159677573401179839027853079890339078533286432808140479621537819075142318465116697085049232358788050289198254724451137016920740704945064631297929175214337898881542108905848986370062584221404386956819092722540227980466306640157954132326081585084174105347643835549327078604884266092575839976046856960227125320783640399456192007982282894042011733838948135084864695493497314442276153720313579518928663433495779893108256364039917268994622336816204827026511663674296701419869652416289263367824564414155179078880261577403091706548044157967971029325365363971845590720336633287230290129190145663547813254137169245769616654439159192450164777244754752532999551431138350407364857484307208797831964395129775300250620052196861988615744758040536351151768946445052317956700071662882998682134306670064022711131516449432408616436285633990212854010110409488081172718213676233941218326828763829407242481536611940568580465946863851901403634762598766187233601322789432044868367816460178881796046640552933550560682995921894191714790419780039138370630796992391008796439994022207373268414458052370632762697503614563717458956524866144813822296683312083104498114841847333111764229907137476103217581313851327011679319365590456953571696532424559947976331129806126429825410608468332683398356913402571976430004115936824692302485954618976231065426218129542752198339854166315644318110347092614896519354106576421221333808022827194970481632005085599090170271894695878703616579200735239394133055012086980178628750187063862514070883884915188541572303182449896094407584568200308695510333797239207769519000481395535332478591150519973857038797235726332630270623701940769625033623324637916661778159561281180356939871293234409389764224689147467757390304881896550370368669610577736189792058730869687819874791194924132724042941628902018670463531501560392870364823515211985838475388410412166311871398309414648986840823804525581110457479897931797889205009486357824599186977397386975165304860903090751243782860469019230805827667704336786053288845108761385654188276711287156782249866436417301558679097177167377814640175293984802257664228720083427471835205307144639811326608707111063662761554885982733550632715322245245654605858035125344044344338750916527685982408590864495440587360585561406072154559623390101519114263201078849096249973774451291307652518083958864966585883831584567916272473689175019106135670825037604855574225476697541709061846818391742555878538407442933399126343319111116207120778705351495777734438609959792707015107764754236773029890156706842591985444401980342373928787399238469435305345790226891645473285162516327800292089514951795905744899060886141539967019346604364794628339378425169421327148632619216436717986303468554862494986889649525306001565923961064512792472136708410564237573763331864609721717085616734921653677670444165997899289142139670249570279758755791516970994906764605741059694827977377821663054838387558658012633145843018262831171849086078097369793968625222527995198498629003202255010980019106033354985070237443509862064581200521321742796300712032936320186373830253918338012490832290352849764280855978669099809500837472119767697628899613672331175045124259793275404163720043906419291909988050204314925869683089132712478355362011303322834779939900512247994870874246607288079903471663339449716752692768469579810806740088047596437322221780556110636309145024300662818062606278516294520327460255491955452714614962616195999353389586408967211422761506839414230239651275222894028738624549012340359119110111272466629811727495333718925461989104178528047986219340907209731817685480724078136322037022351762147391717939759710685366537180976873746161498572536172073808983686718768513370130483580318186210561274252689248309420286947349674305497260067448187418368131156285986151439012519254881225769767337666862799492166009074172881100901695884091370690577203231135768578011148075204609486716466953335469740193791422753386363019663885188995826755353713025841526475593699505790436993841336502666354390863179567412789976535775610224071656825069755695474411965367873109379701528693924088423699648011655579257560916882409799429061725155942316666178410067912905624045814749110614456817692238134382147593671106611314888088061411888654494815170739941576193420972425900239181359452114158341719266942427167137553778236759631600594727485295855351052597735659685257902961350574698879613451529227247616211986124447458164269402486990991022650643102597449268388699589742312883353192003168705927085750314117506387073165872240719791327190161601322410270748737490501616811460005637785918991440924535506456864121394008164806600298011382424652787099255282766313923086058320834439297076906077705727101114926233921362458281087339223373169365406162868919826458590565398744724758184515069206743794058756929321773425509403346873045887413373039447376245816895934909610886244850632577404480196804889343398266528331248236619706735914508378708778953423180024782195836622376931950611403366714420052420961228799215489910175693010935386921398608615472867420929699129325870587409356480467614089414448892721117149144681975391529559414686233365887919169179179430856779857735996533083676612747677586613283087149472652206361156250168130493217278672659144837887419135252865445932036278405706753980410305736414303793465646525587415875325002671810923964359793689308002790941939644633090973716166600813881705122079846732708179617067407225116942460371210097876684595591643061217070048189058888258807825575225268310264601642015183182254258274599106866123111300246562718864669207673471054897863433883117855535890882195672445798502743816501913490261525805003632627774131896405276316154186600886853461229194857236567348316514529292878163797699842440240088293870377831110090250356776388684332158578953280743005480236283049373736857001058537467039994284226667416265122205243889096754130107676378634681343490490022231238764619378631292713855758546671380995083237767227220554748885387373820582927084407370969157842815565687729718237044944583778241073970250637938555765415677722347767219451842851869671639523808854818118880726776275904872839441084265561411384458253984988019909520114543566111812217273432652255436222679786420398950860214623675297549804575209475951165990331066725936205138140996349027041849125160438145573567063544886124789776145606850085156345240523830624098810239628448968506404771643593190032209283712078806158876469044592891758126172021785618416574395850435335289915955153526779206064770548939046987047332251127165983230413745832987282609886195590085760692991226799818542053124387208548398927666028654674853086695768977471444878850918321443427194743113364151237034715900605803714814998730230635814835865937050616301470057677895088419946324691809895683217436104001512476264773351908012578769309637516200955641089483180803513169520764861026732082539710611599627360588503565141598285134800924927685059468062161166239467987343172288517831870915941127700595107456650483565278341632185507665908406021989988434520097054552373045925760536547111756281850928110493763198587975745238051273443016527740609578399592921812244526991813994542884565179677588102919758324917033679637518195226348531785010994074606990122981151300418568534001327716896369557867356513097778748872606105969270048256507144481241933106249646310552483681210030609826673928206992912304170649814184008292181562745051356018251466523684288530192265346560021398903220654745485353403690120115665628969057895038315909235662964560838950430624389580601171066248437621084642744544286522569910740323529468385618830108307822207090105484669916481029355553583653705381333924794608779845737544797024100015112905580931792839805473224512323868883171049205995145091932550471087688146462145422553751369789633264945536063345624090735946877907712546957650301259780585419675062351887468544907656723451190314313833372384705323706590149804383625821219368985936504341484303936982131219478657392417465625846607522770827187448817548236462245304172577004883120485780143524985012598520684218920872851734732068613331983734466618328270323721487400739005141482457885467701372571862878188350872819962683066842396046340532876890831029247584356581720630569757178062793047809944313513809100344691372508988768263917790277065544935281738083915819731131611995841614794898160136183165496439354737900536313668990394555532370071544632376290461413836307959190101158956527454093567943378091431133316149095315504077244129108348979730133016271220885574095863362376387855114008511436471930360278562468257220205384918064116249284842153862031861182679247804208492844635424488090313127436422230110742352874316483650629242402485185219061948785142592329329490832295782907574658432214877418416862342378224450357173181363518689087799747224865106217899914973926366360038632980166099924318068597468859404610842505028855974338035968440640720315741907102390107097913748373752005075842190440305942484529890710996542495206018614574913284576408630052181056641082407625739973507600149664594381065443959216386077951895011274509077488985812937647374109726400270732509661216592221117639853389426129349107306942517859809988518283047734707128269788077311647262171373779012365484541075221416018573306652925905681752957126604691805135634385031612444365055567528594056810544555219723262662599681993766483992487890410404917576940150214911872246340859119172493790151504476953311847345406233163440390086471820936365352127968415908053940005727009688305783647587302812991587941173449575498370033915829573689664712498436988569145477716659169727001448367923223923695962617749757323847029587223128392810941380754143809840371106461782172167217423289809225852782911332034632579287072811736721468586928240378225309033073029840425896258489917465671412817290249024704144541353520895813756551043738850402120966343739878675153085777170295449135163026028228914174601552484059618272969797337875471689060150065288744283960531744659984636125174450230051024296828736714913948797828012650941896254314587126007950984948317820558829304701494859012438284322088473245500394492447578910711529298187831889480884683792654911507980780942993995193427482983714326854631310753434230173634016178828814451426175365172342366947861262851038774134741352237988650141307276441666523919656317499411224388992312281686464260836341339090509043953220435028272779822923431415522902254791525091994385889935696227668103729975679548460097849808401289084673302405005134184056474657688966703959851645989217206286877034892420962837886486152505328600680945091650347959948835213766374315239432968978124526735008456081516282406760467666570537317983428221388624449451770420773942334507075290411569059125298657995560596458253293367643467694051974569266016266916435129586581967370710056724616895421069287528066816598385083188841825501305177474422306381744664960924618001315123314577465549093109306368454888868144399819398837516810474707271827466841855930721326969859934167545885531445451454436627596839542204687816610537090731584964736364041758979796167475738102052823831912444378146543183436555676761512150838319066437388455605405179620671059280942235749350880522724757963840510546838455181617657402595887227990241183634600484102261340228224545867171413898191414880903426478933082507880361395002949722461580488034551035003115944867210349862813136886420390773411370701435967332880748474548104923488769133877769505537312214143904601703895986489943447522305163694899708929014301194526612513027626722200858140810604100123993385856355532295446865176908195407162201811072615478048168233353660551708349755817336641938122050129874875384453736809694284314323391211268757909059753980540075798273288647022967362687910274100846890022382854345485252957988112457598352549032792136276037283396662596697961206731944100209481179672029076276932945536667223981158518945006956512993364648039331405902004325972957012215520713406881214398409549772501707811145104171592745665277369212421954593708833488399577675728152972913383690662043518614652922401932067944696441587722585804754351904586999104977751332125915211175737682485830719637979331459095912825530973992440908124330651815358329702957804725681130339758479701764563029997956399712082469318683431382700340287512443393548969850884146520194658610768652134199373317128445830115183000586732818918634918900301974120877272029942346897557517306957231007422190488898826307630563619532552063011152613490081395590688660706019291561405203546045384960367034735148073948908674370214409689964290236068615128429324882078483900765607624018366370774431076808261876513633478772680159787223158358373318327640605627612182843345356053557186110551254016202851624150490956504582581415046246790152304740629219443370619372732282290767867575818652134610351754776325089660575893944589558576359176769376270406346367097406342663812061480798015422704639237371796111891710318398695848796106787720452661543609925701490828515598641240016041008265594749931112466204873866819581578421324442058722274193569515971554111539666539990914314519997788014097064203941960750242156914869032307057864813270728239068524395898119105419024686495431673247523603420809624705019609173478176299892618120204500650684386983296659915710108890272522686711348850566492616366348054941290404064040502495208214980239211598964650803417118985816970066170803315820532062792785382454601154155501601429878397394739943808635020436326336187546522137325325859345321909392694803469956017502759719613371628054525974511105294293848742091567796708567413741001071819837274415889523463755267318255020739580147134678409886660573910265749856705542234573217832149826732200975703538589192118161756739593391838060768526699067567827124348045440350000033656888507154288533281575295682906181792263238728689093642175930795401631494754720640079363296987692181870643907273080458470487476102254540885627808561411770460269791551768628478728649177754412450575685244972409741682545836568723019676861231070987754559316398042071970625686361800441207463852082567130996304880385305638803289821469701867824794030682789765924582779430881291584458941369892754719704655354742260495825654877582771067619477557662678908511917922193400699800434624448956119261051066764723223523184579439121540520288054669052787160993958592311907675955799434910303762492902928770951302063860165212893558829433585627179457127256115399472954873981447411326046915744614314982300312129663881367618790833962725192101467326110365821074839972552651579649544027750456236402297014084040064353507287631893638645109886172894918160298145452153818362837467504701094061921603482647627245787394021853499177763736886348870334448905789339386879914377413306433570267085013452509248519390635459350032145058781992693936360750478921774228975835138735109194644966885956766633303921093048643843610273685910402896303658544036725553767264880017109886302988726345817235582637671282036988201931225239948803594304174237456932916517593955722975802204927452174115570211122620819972206593276599555882433335880634315191979701838078914125964465790288666997286354694556549664989607947983753010953647910289497518742264345367215684659092668932341822570288471485176342929561688269530112210331719653274727689833834223577871174920539749558136004398379819263452301227027539510274202213316743408373027198536741861046210995021647457777344535008378645401057776523390991920766795270588584541675470645451693740370238958390164858955932846733883080632332643659784535038887545939606895890602504335235552149320479525357936294054373463189102810437853091123395612056523668052917349134350451394891366575551214932422835691896335004681073761711692139407624107748861177536401439012463542778249224281496635722292265832322683276839751225094243738166064614396099920823592020169383092666738583010139551049551626443007658869091183813786032418583762274804232738804306369932444994811717314358140739072156565657409910600921590874831303166670576981404429024961219012767728457462462240061448998705818058248622785687418917842827297623916930777405265114629037742816462271664316695264785929429659224712006352745967208796911274176190771271577904775986854282249838916137137417635535363846963916850647021011306295026124436138950273714122919489006664494114231799182926410444968423230601910955414949617438048712376127360226411468611287775951188700003160908209358778289739069478762601292346544986021319313103048758427633479564068896750488054701501186477898969318873863186862186283545617187243383542342216366234140777200700959944243656162146800897047872665988996125363259531852303783138824712516515617881562097105273554253512746419499224613986721787947149696892987236890941710431338609125431125576979894787897833911477644018230710407246507519445969664393757876927686031116136754184967676243510312341204746520632084576964105560901758854188344992065792004181367732216411612392548905978087841539842738561652603757643226759176445294706819282700724274777887626872258555927222112484540124476755175465399448882843670306273502824315946556311036324547726514577004070198278378419869974428342646080461524324659112150598217341952844707902413241048767992384374510357518184139602586336654513212141325402520670419672699292931881979643317695674913722044960257229740297348487406856741820612182332317158922105576600788374853795789731576812994009457131530061197860116595502380086627406890561318168475945837999933035547976418796858555173467204066409953738106165631680050420056987421893124095760439409991105714683834935032257234490376593760951213248579985824738962397637715609899844815181532498496689557106464846452499731018645657027631978266691308697519202220714356629301916110515081239406651758237389995144747004678916257595345053423641719807464184770983592651620676340680119322833800806132112138477655838994175000658451795088920044498560722228903411897045986442339223643485584469977522334635385157753201109723156444925730335716825562228174854197166803117791842292846761551030355152003011380808796981948075429245212646644558543352411471237156294017207607411261054539761963560614359103321130828818532748586828141001290570998122055111316677964351778472050942243352674354953056643172955071302380315050125488388327088826290182992066932320031155099144850154402809609590996756525146443738700076079674146977389410707848866045255169538849494821719003234039392965125782288662646484224886260834839481228411991440455033831092363640809761812487901388277981620416832079740432521117514588216504852868611992898443423685069976070771237897143107912448441007433901822284535843803398847832557091854312208560811931549594465846984193513205916697123847610266241881976822372684223500296075686987693738622943886663623772414801081967693995479498101487404593861159767557331216854932234844846948552903087798835762011960082041056741556665798482696767403110127261433047143100732003315593812340609341136376425307163716730706560430701334966516571579679625618273767295440876170314960410723622923798813273771485373348658884413535920002025021796657435902337024945648828333613111801319732604903430286540300244223693312692871899144335030873356912534122596426227159932810743099837298767782206395943007428995490940310515711296970377642381470302512863040016351004770628791127558162676510725353682882615103590321038268496407079772907935428793144056568949398890170351984273412576445844591362043358473770997638805151328328733392847611291943895222345062059710053102218629718861224218454678831829545679220665114714458585600799158366598835945895143991503138320893575815861999684535924848091754620694247383849985720076076742066625107107497777169558204144274366966663573769224401601701939863839281330186064286192357143512566228103890608633056485272077180803143252853237220184289243178314489663354184953469840858384986506532537615073467739527277098687861034767573542325094906531108036614112715981261044332025562726278061549652570738572023830550921023058036077319856330741086907217267110578355552654853504490903253223051618531643697671774615012565288865099101102658421033559679325249038040893117539319440692671794792382045857034512483405809999429898007778891174222963580410161673394820884613732928083304538886751681205590034281811994156468948192272384745869425640536579999204686745656398641039524232226759713028222292831951108832199221191565616261339373887238637772555338094143247057850389824717610424413047281473085940186352023748962516567893149187758148240161813647383934346542174224895329697730056895034238647604533468943969654681453718933341242029972365609691449400254284932290766316836749988960689656579932640245733926273448238669463444462913342635899919524378047629656326787418617898916606916954897303715970950445045043522961939362412919371115796680099570063064267046556458362021897420522776558959583876734081950391108954189486949087240424817091251257595211911935652059769109610116129962332515248400290393216275144564553618960025397373885178632200485930967662894268404072785300834929673149969877409083131485513009446727253991238722474851764194374477301665393110742500853149729110497159828037833242851218122981697583759625305760542133311949467379899985272288931922795315177990255728829232486419728603634527343868615323756662288593584479750260468958021666487481308070496434557467197337219950467109791005619391767734420173921611287142971720168558855103415707574051050202034333876521102109396705407869742111159630325918561822910560732432767916280031822392987130935552615105570453049662619543540978341557107012780424062785154058101950850867790647426074225376226966251829855916844090013974229687467208256675395092922223397719841546405729104283317140843261792623789342229892629589933837347184826097898293707521516616762723515867301140961546806103820070569914522780953243421341826620273757086745154107105893864925569500889471688342935025569597915733631739960733830768446600884843347756137676634163804798191335846387587530500434903290952865670183820261496077401248238197896127300701151262163250853647484185552734607318730013572120274080950461671633219193063418814998596503962739961231863448870101679032883745575840644852747022358640752514335838053521501358403827997339217647192597644973963040814453024885088648584774438410748851131196245201630407924759339288591593603094550565502906905828014469937380925341854876253122838618605824315888733155792765449607814786684648315780828873452349058652677394722421438153806530150784951461585610552780490051420302602578915641450927959802736036097399702259017526790459330787236109076277488919690782084168684250701731701878889508700647900331957733456475843354850138161514372036485505767976103146544655793258055597809638279455148622613841621230336071887902397477437347571718679861030186439991407270889174592170534246753846904222309309162885508600850939125632993032052123786580806253583497671923010582401113715494134437052770027855335315479674307346719912379094585983220151698111117389590609941269340408308358234697964030316820083034106140817278738357640868352843729277856038073442958840676144561864206880211931357369148371322148222490984561133425835224704327844723564055400985515091498460033284498043024709341149662664742939594306111203799956978111912084509601287178184606737324846418540911794449960159941718761621760427799856333282127231199070280589775673919048709439961669957226449808875448824811470610368293421523115735633500567012046993063598553667575800087149613914685081831292439094613821682578775807932049086761762797013824031233100957180057098830828022708808616581912124503752917547257496590688250115506401905500151262133144725088738797723400776407370062032125915446944339250710321523838892469913504689535536545632998034601758686119303056135900317419068561202402632366602599730774465161509624640318550053090326201025784373432493250716717835739229623058793512821896739091697876797269982918712700722480186166008623445989848498771508983430396733743069201015212943493096583298736696886435618412888068982871152229698759178352412962840042765278876206763409636056867956110568313492121406014184619830850345096753783281197993680824457649678985402519959004729177125148414874072344292084768828390962639364596287291338574563150565083118980466555108501652636801219401540591975859727953773280490851710322396407617132717791158301785934528557233586991065304183604624077322087047121496648751132241710747522642762257923107678132661091913705015355648929692437699836202093932665249702482280570981637611909661618267227296927316876629426674446763864451700130867160454082410614542129479769558936216583574889707430263327080121433479399159756865323416975320584681496999695694149210578527520790030559555885296155579420054390172955274688568622456114811606849885886997707996563070015902340172696248317036110631796283200037239867397854735955387895993557096671803939924500691671259135480380436551843258356035444561581921978332476443436499152125208467863371766528943913125412849465981005113222349537255161675721287490076181149250634115766848117015995595806584462336117039878686807515678613600104202543201887109502365823806815055820017088357362591831541318230350393593925140005432639246291528472560104682069011055216441559044853770359723663099855580073610302411915264130732565106224209281928799988159081454272408384875376085617636725683340107893468093411888153063840990370946779174413270271426272389333061059570464535835060186190236860541107947228369773357641784217195446016956837616701716325642133478599854736986622182970611742746070011416903102956627373038702510632678735788439552316691034557084688953936697935711817162446414428164931870744807228366008548099210482285842353715960838542501933510469817455870555333341893981397859094528682975210186666820899690630997195652621575653931872170505792627672301908252923530026318145734098627987512147204456639892740107153343590577369160548621204171738561026877610900143141137851650458054380432379674087420541677201428355097836637478065167013862043592098485592675013436177270304607770024394947131799705444724154839327490028968811633848933091723395431022492304462807025511730009999117719892278178327019431352199727777300307344624489733175887249357771170059168469161954877080097029005752421905945341984515295481295014791017167094753688084629197509246360015766776376047350430760865932329207885991267372953907689654546101825024721325551920012442499066506853144415418763974965006961947172970031476801977751505981675532157130914125892706522175054895704101771656166781427866591561105160482019931867730264066530725005562208092090624866378386541545461518916470825123589626601865395746316174415148048642103131975998426611750878181738370547709079205280260693647010964841888642124982187306643900595599567010527827723824979149254486075209689825285940243030728165585508663807607181836761461982085654487784124813066680262463666634241606821564978606522960554047143003773377213404428208566927859923358884290219048222441472316100939272395829171145751545511539914070340914065299928672674346018926796425157011408179494897604184780677267210884319942250758515355845940442581403635724791376894146333740652264504691328658254115906079277582460123307939494688156468285804298287684048230570032105234782731717695218930432557995802853414170416730370742062221070543834081999982579090747502186774402821865487630975155289817199949241419695082448229987323037167567811530843741924349626366400302352004134521274901365199696209831897698041693349442027019040182899426037104562367470580584420323236684075456061959316914596752406426237316945355363347035417865967021856188852980170682032285940153903892554933448840585341023084319937957482051768409370489442483001875145319804827021265232863423082137302827186303081363022744449117900238215092935803786222783029786788770090533334221318157400956501606691400183470056019357772066444177605479906255399560092041270657412775141353236102085336017475761258461569765682219841796383719357688374455005675594324225807546630668271897444030724823006999152309683967044221682474898610391267426754656167168382525417719302595319677596627976385071815568256072470413270135075871141298626413314203834521362976484880515368312254797896459358234018188965947836291027903575034169911224268912821697240074355630567345924793306541166037519520841815286016316537705384779025095324056522974934909346995671594294595320800587514033066440748280109724674545200551962319726597478112864846817288839851072960593831871445342991805612255774418701127507083840194112679655879749930189322806310111899416743194484126018919435554658469714577700782720232510119830294494753972589294114373075127581613083501897565996635661864797568180119008655725749566295294497756814069217889502069714455075226887584201443477260196409134104228611833233143087021189295214825835934269110967310569515562223485679386213227706030427345889223214121595750730849612766318888307921135112471365845916244828850179620850245154018957759850231187561771316661392876382840769047532065630854414692172410888302842647821545433727129285614692110616274377541015320855836661730464902360540848088405475761957958229212563034351499915487886972898990446004897034732975786811795733068346750679947424709871228806753225454779343283068180890519998097276652906786091735995028457501203498182025127911213933017813174136477594129959154498603609556961665001722163298265319355826768736102052181728479776142879025131496366219168270294141786142363864291160063153886144880520665169014517655528585364293356878296472467437972361437316425547843536338792921480357979123628923710183712867129846991813807048064154733588732012601458515771587564505633996787581836743014857364160109457792973205902399287967221808594749887345560576089619869141298122173540504161662406699133080313931389536511991854335717137913719350313137449110741815412643288867022643755695778028946622345772837210824144281707655250863988092043367828508650243830148629843472918792109682777232978157733360354814464952488242798233041403957719965111357445128568740946530312768541753249751782248009389900212315721468776917915324690458893010646301525365372088085853457955958355007701009382073435095933831352375581292512977902325050325181866104416041939185676578376386842937345343457300788728955744020355046230337390110000812140768608942958575339726075499521345708752835805317318488601509862236390675275100331225131615709440691413090766545036359566107840685693700979947707143866769261281866518394335512502166091936929599439297606432267182389433422896181873327241752699122974907793944675909211405602714323272683356170511043062611049778777313884476913084334405518444408759011906981579330935035334266137743183222896244357396140716894347355974101528489539377635701305245819089215710366346121118145825336454222262252938029572560260596754972085228007563698311658383226661217215678334441649757962985550860412641218234417405412228996801936113227259042279370646151397031331218677681391756544837398608502732407746708848517045034248980998062157927773486469410503911054976927370028060472325409733446872493477802335949986670431351098761963616656017044442810249025751383901611701036071213721252943295916531227435257738382005579701531922469924775187801682827448610229902037438862609589948079059164337027136026368792824297890042133152974191698667193735551967798470232804524269190389810877785434768242100796542442188064677838807563257854095204778160510571727723592971607958553553321307027904431325157014772942975482577150405966029490219561777187836372622066426589258336174286526393333573313250737036516332021488507354883316114961052129950771224920611756158918074311947271773416097669031729882739851101794039278762284580741533512442214923246526577923350862794344983228723878363402274006655034600599850075141068589961239600862375663049630034397523858512185160735529598411893255536459765981921005859640619210673871019019731352959825920751495432631262943904259497213867716335152052864996015569053462635405627276023765204039305365479776068435253007259036009519676295995728169593157652362721696534481485259629282604425813386299209452811804856574634117638045161903772331540758653546803400880742048871324735402182967026101901089500303253360154563936550369413728765679719021980513291339915026745317357111872957506730193661969032657397429772526704659161981579017893735280112010517201223216769694999859213073615297575666881860298356316002680393246024019970681098818440617688609789107326580734086105991995384459393239056980418625399823723221912690465140737160225435372535581668630218079640845277888452142739373145069774049388202593329041443988482032629998444486101170268311701257425799909182216635462211839892131394205784215413660914745958163220227083639319033308400170645546305666802952158231171984610760910215257525442828596631505775574084163531481430194484838304672602689123923747401429566466340701157540329803113467087955982657850933827149105204225588191826286346892564894937329233440207303771150635076388925594649630446021474990319126440381095298299021992633109098060376342130279824992539398273938169832956458910554617490855377152869605802379982015573393632790645061251425463255820751742526158691518834636032660720473171471532694949126007300575471846903641905412747223563683560618731492807749615173708931260324261254584623760944455091862760006698312683949809204398597588705117764457363799935782476312134361689260374563965494564414834789907547310383154852494714274275060978735987986624393230810885139771011801810166117548555821845189009573663004391653723463498857821362785635737914144406649199178042962483419785121078812640073542397180362421383130157371400953153767929486423905059923201285478600749426559426425185597933511240290176509284603737679187700995815197584404722195165807577230274306287799332337652964400910357013656128734104086081131152541646959973964660935910123004730297482829894185898959916377080926299274525901630266611756652969250118606207603162528471317619065409426231799242331570472731947588013434599000012895922064146054529986571715944787275645687039206656262492071297859173057907135204783715102293266825504768895509593995444032561239887854700245191821567937763878245239282863461892679471980770022002852790063229192435692012132475949329955638172820871812266245088385661632642895042780834148447433029137502580799504087300885362078901325537581664413125551774573796985621466770298194197156482625696417189840633771287904873860265091966032748575786414623833464903808909562246298066783218842240509162766936590527397668302412210299571053156187032006373838458941512735811126453676523341599065185811849222716590718018301254753712094645921625786722345912738879153466900612135649385362964551045133673573942096698015107248963217815018529441298215107151520347185140319355152024280339985230808117864019438572368302780711544207984052164458922980799274519621989875078718152853951273342431020203235801943243909670847137266753668264955533535402400654553919032448295443961729156284848344554135594199706693010091302741251183027181571659966804248991370780868554230772243977706386457365366010299412502146787030887794037997034039081393850686340290891926859040418304295146054177579213501362753561416937678171650836332061155005758136374646553125979238040227076013998579664199415354893755096895780932240246151332024394858892971554625375467885552408384029105455838209937581657016089456893038834999257971792930348633853458486677197223020627770544763740414664749466936999638663525766240360092896606522759770485402026002983321507070694782543516553837814264740003042897159858582024482280959937713043328142342708720024589161152110438209955834037384878830294043747634466849795985733007252115006149604798646142643195606914273445709292981624499977346662474019519677702557085452999410007210402312812356864362486659320318233739645734765216175357644515020658693250312640273191620769962872030536201362226107725756171906571537342496285521106291526269545915183556280509204820968980628488102268662188257756344376934000610585450927318861302261203321576270384951542930261293282754177320974447530172253232789904892629201040746581495041492638967712368334134788821757231712689146172061343422108842069149601413411324162089273497928237096703503247812325963237924432413867242888327606404817788287111795814235094135465734803290279929516078667380634130274266226795886718962418752077102143892540400707939848693695939358239414179096576154906946553952314557627329089758712334222669286449460228002958702556490711078866898359306706226045210376538003149992181149542223524208894082946576076656014886522368896883657100511868693018581399439281994344569615632098893773956691390841989315761704237677047162316428842772328837008352590230530541586590136894364670916550084733807619325185506344681679885890967313644435444468749819206124369286877323830603688059030172121588536653018435256954026147620223375792279094212178840654432617623346634578886255221480895546224652207945739119347033316809815229322290983834217946675505984019432529864922520106301962810133838587509504409386192269328770203786384181576892865952287438443461504622743037074557344821867511867039488671425588565080398706722520132445152453674503272792388895169264260887024366104527005364263701118262090057311840253575786570729224671181007265340835467709405062772587041081058110836835384823564188312407752111541825234740431189742552575834831263952656434221853797434946264509098046130230647918008961938127592048367806288450868894347083824294714128374965043143145211002388803437517117039289988974117290042687591240348227607984662686314283531395005362363548163017017394612214314233626444004825142454496772676348194508213264990674406211210896764770762453662645964754764424111862722495178130065455990569363225155265532486055171328002228542814103651432369933186661603475018424351474785921911633851778637261278572427161342623530528197613488112859885116901178588286763576089460263655416314615035800770063114269833492541623849137867210751802995014109145697827360272664479550583794989986999568440313851253805082917608174145426027786710876430164784270367725942840523054100831956362851454760985266193252404966954069333331433456437465643393312652487657201627372645966441104039518423064667975328972107671063442227073131062216162837626855197211244654979291975095473028601404445110298136857683130698132274000751544200682059221155930897812985782633072359809111217099399806343887470102670407965981001831703150641011002081622590168196182684222548602842246125226068997850077751799182219962090746775628500965510711875482693500874212817654932494424275687499098595992577770887221571359374725087775560611382172855308294905193761059101057310300429212969312784658843095584393439917210198270833189574784070470609459070590522293977538625812825372628126659236326506748946826331956679713245243880206083957993212285090119138242157321542162827993546300765801098899086333190635844252593063529737604072257941759647582972104841014919404302768984189558923559062848105397955647300359906572721382993338790436536496882137843024951754202652316490733145970217327192842048878642419981687912657870649929628848037399721262021265248593964121703680210930229328487546902257702423730502628248497024673428171973014209114719061681089949434555725952214970723392438841697518233750715561915530000945179575070151599334118022282917633988924126922383479564958887040794175395809506489588519071919073038322389995975239806814804858785963369995627308271019250269033088607541526153113806741811851011325917842917881590943111010275988446552434725729836903343274131504956581318365935075339236504220994518086860284942126050058650516535490040228681017604630525428102387828166302526546373725011338985149575556336356075986201869470221707463816312045051820138968359825072858049867163308340743865053618673084963653837056489571959520058196774023393760952850191350639547068519648773107625884216631679691263618597199289790543429466170717738369100419411616016315664960405958697732040575947064549546840191112398957706514753712485499008514242775488681389384212671731002136649529212809658099059068303853453498396101690161808876807842937960008379256743776945804466746173831867349844955929461012935410246535780835444721126604396697447643564062450028824401879768116472634635646824545780488417140011077344188996606030977119832900908086093432004300955867438808416594675246370727329544843764584102931373544051036255381952045917296357420167283189725759972402380469297526621764788306486297567786452519589422074961629807606801140127421305746304502356120140817707583050479527058343064131566015214705416677310460971446781684409567392540802384959142958611362047826332492624680857569918130615017381714439445936977926563811116777341762551620557106817875920624925781101697924499626640441242773189292635545310494585587005595125021899801056624580703923294286709866564899236652611600363031248084649836910287320185406096669274857702382501387686208920958808980005168008469570315430548190971746979119627327981851921615967227194555016957120791681088567965757140799743236147280079865264861822911392832117728402725663918671157502037360215079907536470948075595630367116224358237082978767389826103450996771185440683477924806977003015368977121969431450095094018055220678961398183337424098715198352046957217808056286351785744624827444825044031446290689722034669112484291195422356732561226948511514477714106089388363529680786791287086201845158513103053940223654508641051915023987541803436977559784927087356684302655133554080319825007814798210964445326969264483961394005533836222468558918011861431494061305206612084480492707320901305197658637026040016368296677766714499347733196668249625096825315854610941809010352781425113581829647357262484261575234438177876405610959143529312959716732185641335521346501793412463220635378601762099410023857771071228362469183199503969381478919907021433228670930066555321797576256222318516083697339531182348701130230245088233946844605183169344528981084756464808021028508617499268907943466178761609983554441613519323012517252652829214316009293466865569357213183328227713450181145664884249505737986378403662826759432651865598746943697755423105275898614442133847562601215293131716686408279818091355833583508138721680471847794553016788974994688836635705430821049328990407733628778231378566872296912794203159218273607327246789070878050054284275318509090275880338399598500771711392071088379064673870626688875838282578106699692804544240045489018626386959440672763845042884584731988519451739706517261263553177460234154147716826051825301710659078002264026280949352522047124705181509520212533569226197081156153839725457044719657839843100204793446989432836924017062182998326392209766406772495996537587121294071728726148215672191351080273246957834575177114403741859670215063362284669448017963609189434462439414821777139551267378730620844221129228242130079757342932745284422045695594065721668156843310977871408111893911934086603263493415586717743963616826912610421738072625715346314773934778274212183364705654892180499278389276025411162514253219696836229505484260409640484036298424573480641106424704949134447778921524230155349783249290108771106149762061454029770448118283163379461930618954352667570853498133935138907883775214934264552806821910987495881136482275626684577003549771852322029316245594935735321040400168879109314945767893025072683367407524823119190591550153478274635702636588104780360124250114813916956611184117699199620403898490603503138641981929091352663961490836397150012771899709059996517964134239898297911869187629045316911423991273314082572983341751573505024737727519057820608987223199972004058329870147454222312418378233690617884419094898612668780528002159158596258302497144519908635354369602011062081041212155064707187096148054770591528977792233531391085709187146737923408925640399366636961389977444253960189283132939826564779984701941853402272889899426998695237671801102629254266661670492773148786279678828750242180924681834636501728724914606833131651581669223209159912743498972080479462629687414580768122281405004800382920745452360608745348933406194980031491169444655285710128300675302242894066984585266748423301935028394990136828901910964346739332679437764499323321881689392441916556892952546815002335008181076993881988393715781365258568588244628729372487013152876941403481541803517820468835396022872712503887132108166650182792132999881055229182579570801242857396752205392362125828547033097444501449039211957891194202252079326086708750666697632900436605968448946968566245436885540323356128092403894772498599951212512095950538801737990163997231286026650773993576606355241269530666345958990656762947520647483547144578845522718427534521118211301907391044569173836861595256488396635307373853140998639171930611205014656010712345049946562388203147399535263951214732256363536265526477528294539939695041617765586886447655847606592872933473144096631985602417553524401215157734892010001475510987442954924192618418347583233392865488810677578115084353101231846023767902835935465120786215186304326538972867348420008468039512163470691265952210144122466812212907087145640729847310391184582377199481006331430376137336919871849284056626880851302855630670024515911620613992551308242583489257189183821347983117228141870772644801679434672525500090282486303036723173374756582986623470266465938241666120746316091671099497279694874839433357104158312934161583878057895958441558313641837673876711443038406089600895497316653698049644388649051204178352119595705104276274958121646405824408708791252279086413662360703177099121070182735713413943350620263750600723398493313512725677221232251923073152893081153029436841807586479173037510799807652604132251118135858429979269540517176618792282833349469371129316783025328860524093887445318707119038099027480385487609964432894551256613180694057000215482841462419458086208635602666905098632765930944952369804872678121558380760789212319847431166511940998574947677081529752143101297862061331014603514500511224878452132293945217488959302771797725289573943285954559991857456891815765164247951557821774328663196282402898183775571603478047336988898720946108301078265817767406405976142293739722238567884236247529399339283769411510602152691215687297698897735876641500160684971733075678254993355798066874867111546786669744945008170327896583999004249365684131969358086678072019114649964610818310561305732580210939808416493923833563260455556894219822216491965354921447493828035044006503484925238036903438190101885324609815886819004747677434751717443123636858681680693731515285729316490668801439247118656465775292922683711216815023064443406797361378893949351608534098892784972212998684931471264027668830270676439292138986824311123415234219374244771680536006291133015289492418671152805787479074055331380978210638741435501376602223337170344663186262610014182728340408663850195860638207823795596514891860071843739130721816088489850061692011221990813287464525680674356625989822112236985306467962205122089871005694032415502320486115414198840113960321735448270745662699231328160396386374067063736175875719825347958257094507771145794283333405913826610929509245162797217354934163311797729431109701376579966640889213535077496721459923364757936497189531809290446641780014665862043131332700246807325535139596741890529929879470860397475496440736637834938536337192627042320669893988685301141819615789934927769674673971807723671630132653948776866984195532387944820010817150618430708746395218435813946327613721113822845355387188117555900191732953987195992212371081603005509325899821169825143040965683970334521426526905223810207582128088117375448959807794942319825862925655731648886714765547120977184740115360873083297400719970311849707134335117200345048310130705682068881655104161490999089615184008006770426070141741187039476709194199239426908913934335841317357973121663807021019035734319122871824831049250243361490501416577423332712558723073512267921798669124673031594702928097806283532128852358638632723371224068462293989255178566117069989319616738864201491656744734022461066151923936250035385918070594814137834399892545237260293733142812456907916734071615301663313973354187818892189672834892113307299525384109317965472707379058132106554486017178311645246603376657183480221969979854781069768861935764581246579024550138608686741547178354097563719938618554050013900254078433518417969503583129458272428568401099139231189755099103392785907338867462542352664749395089308233328635392893340049821179788657674963303520772513125605057366956190422239584336914633903185609778803549275124545754182091928063803211516496141162936242120309292968081012353923161425393819917759762065729360157832250386069987213445721922783436845567677221470942028938760260783903217861490749429423614930407905863652961992250331400317265436056296524953982807095834266495888691492702655833039260505644387564404324160048633477160629822124368220040424369549736337515730160339712316013919339507463001231290157402543591829398691863423198560768258155869024543086177398886537291880552711826576299840658026308778728532688571777490876915763579882896167848585559310211353055668091932883655244434447091880288179445605036483381668672515307159577330162741811559276818387102880095028453963904911638847712111897864008151414601035055582326548546556495489740241663867545766510180195321654899493545614113186359225005940340071162241407023303985806519939049470221225491152452076990270159215011984864450495060454691634906681113350889043578665196693325465674223223089561623036970598206993197732377300856279373867564635062377141486832967269381607099641070672782666242840971734337727552685527354073874222225695859278019993299098786906751020956503376267357560251224170796424000656255601905033063798378003228636721998183662917164943913783286299540096787522277092495533135056403589754679387128797045494954506224547839815915941915488099065500651081283670435241790893184894232796807969632445338739817995414538985817331585089497801499609059170077640485583743004083349410480447956083945028763853053531290458624928875777861834589566844977365899584939581889047439821731038049717474373522945548186664520029022924861814304469834268119714205483704702276166390600176115095502152487024814461708465083471422312338093076430832724517431346991120720308297846595840087612657051747850246291172996694312298539565950912453691813615334247745420780341078357106314442205058190176046257698432112608185785773662775767343106333452874325757843335008906775267545291015410041002019443501010881236711328035089913845762160328133206759032050735293225817382640444583985003683764389481599705670511421040556739066611220388089888289982043259385270137399006841209626756374411756105350066460837876871242645328652167045698452152269851703481661338541419851631629064532022655923573024751717174885080250284882066103011423761754275920305132286209850512211710881774328881552730147004161591655795027742203080872888347083514619965357519490054567740526715113639447116398630950335111885498112510265349554235811915616100868102000998117919610333647389603237403277937704267980776066664811164134223231673905491574756852992947844196255929355563207860985437435105934031013494699872615302034881220508122678109946621560036253431202643782968702801122864962696829166589924547674128605195340878286276176208899496372302782577612583577905074933621324470162052157577811917758856162222056399355961777273188581733368355740687179194262144192966743434999107518252607151874593315723878121308486129882681214216050857519407500495161870320146964674366803588740195436829586440129365885189281823492927660325876934658050988481753036225669528762315526772589055619728836204395446403497153789868399891248268418477823891251546472783230769709681901899109225992860141482468790564551843797876080312406794973020475897940616445682892960600467126563844217645643896315319643007299681622366323891946946100187257106021272355900519641767517935280733611084584310153745475167254986158275738840654953264937404225697474487308578010596613084666996273810565230053613481896582758725783647603410992482883966895150486110965950213214005352735616548124658074201092366104467642884058840819858502310986020136004377765725387348617991555148042622362861018514858014902780512536697180774666201354150004919671870694949607826267334897130057714320467290794787680093162648438785096224443330573479496441781129897553702769776841669075182909421313291862113888373666483937467656754478127227751583128120968779369236171141336551684682512969041293047700601786427433082576634818504683576441462218059947908535272017575814273457038594482603296558358149398088658063008343863825604217382516805544873687398334267097461646440454460109266772262116887701066847629564361890805580250282680515163154382847512632941167170578256060264573878675974794776784349466085283304978791479647997978681464360881020328482560095218038431283199299393485919186532716987152450857693049922337837964992928023310439971451466104225456758932050525126044058728178205299613298839404803007878674844135972368983435030718319374270659932769901826551657626875662279767685855217776727123096451169129617160925848451829699250385256379240551024453469563464510207381405020908738849759474985857922293781330625365328721771757303599419318490848028607605172480398360328453200319218003947247436108551866243148971195388625945754712622239840420708568435508580735748475379368040582318849878696646437681889596431465793719272962091873739166546184612531908662246608868753556699799344296136707544642473875654369567338040282554670914719313842063703328040607615861270438536892510494160367113874759237006325325335852586052501591633242670661918584846315181010905945092889912672492301320281243558517218127792213506565817910322854998590114461844790573170787147476033348584171077693319765973649546355618494005267522196451599260821380529291935138553234515359548030257853292525500007245841561255946739381205485567823101619101917404583776850332733743626571237144283681877579033261065285394816667289068483968507176953616766965572047653401703648596427747347797280702540343252069564134601178405836463486870756002278949309789491712289633002647012596301643800887152806845048571810798157333190371471107413543807722709164764748307827484892046394387819389257562624400556529128887064055933766013286343658657156996262940477455886149923892394705994829056574038987673326332135707767387188506052295875497949218918903437362815553705334386325627565252826569417351881872503054601126362357604742695903384397897292722215532687980718277331322744650573442873773111558287689049248602020207233564383401538323051130507730523470077780247855253879595645524427390060050627701091118520010116314436876657726863730420620514886871615144355313675759592309516987892290452371416260422562314084876660549808784400519126664677442533516177138438052782957904125194255502612177704362983023482727045029126062810162007954653457440641491008026497803246148984396204386371360471433512034566996461698119768341438975491811546419308655235684446622866983265670951334821467381590820398028386697332861039834650685681805748842564590270295884442082912790551668402051838424501029568507114229193551721618614469421968228940656644884500295617309655324728643541394101143780067993247713103981825174246478330131080060252163004712631668903434790945105033229509880219516225318922884293070439639651175392541896270499819030721205626833793712373192696669444200655603206365142708528164972583177371070279042715469294112293412354929557937000160848230363965616560542740980083708062609354334152136640686244214822449112002872497959947976200803400853141722235232778574025141510479505087650143320252032042368175057706713111582508804218585497504095563925009900919059836940732531531632517346798933405111979154349031073892563185892851808320071917398731735976502237644571079251414897826184613347869095568503133218608065983682887543805837391573087875798623579121251905499989300578527491719103098586878181163987236105358287745447402767854354824546734220576664527824090896631260068013552455942687087725191150352543113698519175795390714856286641698956758682758232474792222124326206472990237869186120808898337231731350394956092048085358111148870132177876102674211560811034736581554699852473173996266492056049948684710877547357258850156785288303285407235893687244546749248786128494284955693533102161158306214233084271504243197246515845869279167834105857270307120007029783313971190623954510559119071588967637749371060025722058062867208159367568025957721806561468753299969679436468581213771198912840064975470628558895217343985209575652936650030929781314964759863550405277859242698154809574863518694891976400076390261420104339057475508297246135877600767015193379806529852150533845620034204772378197834588800997963954445051023866401505500228601424396438180964908598316444809500987884330225048682380083316623741509507497214202691946347226001754897921854053169493377152452709147204868222838992702530949799176258009221198759586385839259916232945165861356661302842351658373188802664344940890932794755568821183817496587117674389033509963510036760020544428664163610364551221151579561068425696538066506138228451565639184879897324898021953584946091244129372008432829239101332507207571113506329200833096620892592483289530233821058373341853249484459521118318632053618584252097489399289452386416154172263889480220197509215587915419491271761228014994675503678747514361017078528477268861450636937265069492373341055248340075883905573811198344242362780027245029930013507035043909197684328087071864633724379456701117599984904429346867864829278655874646248085618661785996907813354088621334550916132923953412885686400440810318419240080211078042153199258990374831202302236048285281548154873936354439485885462624632095176448906010745195766612439394235470050056291391842623523354632729162668914595200013182355245116504791657637274947879557426740807643214953123565983240614389225976995763164318840899662065016458523447154990702703998180470746337349419756740660478917862270636315488775129140490867825540989527216307621739511070456829890530796825584034980395425310149449227694419853449159988038941600503924794703069034395666217757841340954124459009366901668700721636964168351520650458267762803785140894281989699816792809018824117420526855341422175147036507009735663086909992959720841983585023049985294271448332321056563897533170967329766815170936177078811771672742764028134368105940595102456753620439932100941344464040661779323955175349606551736747354646762165672018358592331054917948696137018913298644807291876714337218917710760297730949939811745490300662236164734314908499424722353591132014485578666734227160172085514862770883548915972853701419231714077357347690173978494281000862170840512479587139861281710907381621950526744142558311465984382091689550121652342083668201544041122193062426043616501294053559574296184768945829794168843655030516142416187666905916413587208257791546506013118050041094693159566029070897050400719087318883022439791613902439612510624669688979305140662654875433082162998621410342463200557940076169197335162985327466628031452978087346479467384520709870613099860909893278318585333990230707839962644034133237138925139731048509856756856083840396909596703354048898183895418087226418192105489618074628093395539148656400702371446209438111223407091837021308684777902673784873776234476254702109421034601522705444696766642531355350842236286638808119377190440915051970562591256497392047312326017192240414708977639126068420355137062004997943041095892906815814248081596171260217285022370001033261097986140523085838903253292090699314607977905879460067931205102314877863263214496348670188163327614066836056946180566497731902815240578864406701040966504870927171678535707722048076334685630232003656863582208206660012982011372246744851508857702822693246440998757970488696043330176083920659467313398894714005019616167508549836068366113909406020648332083678795066341589640624623389216222212340706471999779645008538933446441228717450073326967993158221042983388142099348644418424322974795613952313864373002639111555818352751938049119387342600104213915860464679690053215854798660913203024862864498723803724006027278025701793646540672649928507190185471094624028222571501700064175515039984575564661937566409576332866961105081041391841638845156844165279662360296661383099169918150784768711591217002601790547973804262625113260244732502094414194246209534381771719630671582115631640729154329974031792628311553982924120795141550847386820118731478762298842718467218924892422249646860042274324379837522854607272249751300070077603163419928265467730079455249794012218395481305602339942424967043574563087956305120919109803387180646009964583053064047489976841997107611368934412484119417370145264393134772555237481270873449932398990562625456304562414996026016570096528525520823099465325043703047775989108098177345314544662611854283290976583018078368282468654568810042792339331177637783958669371959833688233802403458866709796348392779979968600708940978635220908662237939916471405145647541775166808275472109769015010247130290936765434978396541129383782103610467900818397041279897823288135386877402756675314374296392738431029157655725913224193198123893657777233526729432742489492263041304798250932808711714894774853206767794626418799395576738736153366581822612493013003047642663877277957709515991097629864210416643235790876738031594653790160687887949027482196511413511410175733780808949298665669434763043163811019890213765206573904373739982571388797917003162114194932847540318437714632858186351875386830533430901099336264195779357397061881384321460826465720721295851153185390800270986541541200411496708435294332258414837100479268860654942875726524916006803744820624305247936059635648377625801070602929472162421874383954611834011006047609002587981367722491596494419566149268722726174983025441773318524412304242932281573750050352729957498712706979332139942469244686405610011068594793996860498927111810272672745814874230807266252582087543076221539812955290177569271406007925687041244500464967411731866044176364091787559529672306240504196486865638473442500497915361679660750906628817893609198927454372845790149354169066148634030483952306270057216808167078547785135719126143685397917333853321689909639424624173827563908588410652103853931323181421199553057090945572698841335655287808954593263558398772900933381566830748383753655750121766867880827698774343871633588718785901224108944406829998172349636049431530933447326148877528188697097939646139695642346922592276789624706672053536877477594032162577647505798638576780143582410817128228865772566391872275812000575952238178450398035857558405959149611908062859724533228106729976483314249177030985312002768363907097418119506743617116701453804107868217818194538241464905340124714117158788005902876543151846628559029930026435704000320480391954865170166448039058048671984246029663402041297977707890334500598106561608821670660981144565149357398435984820276908478940469739269756757212261991448739848749250863561570078627325917692992467760179102283578982294703413817994742835271447983539919777387140877965938699420219290815502540016073998194395873144470987436461688302019437562369382283614423246338400433124409493897639816549199578456937591692579705167543265522836438236277239123438303035045980082907260862232990504305939156117569796140128370721594925093856851870932071253476030804970064703990064071407339209095033051659330917038181307084840130338196497303615562637647705367533603084656312819808862650201414581108950395957447133472192517223323617423551559341128755647009912720752210182591732319332582338930709298979280898975232946020017809374132455436905970640603380753718825732910231273698949261714874745748038380418103247270301001712192255427566420587015823159628255527551203098340462528181676744388582101806466893168417730964724579477387339061743034692756582376007370404280743029284443556771333631124953701293194379142781682624948323841317406354987643314212775255730792243493000352814629768766548565649792693113213417029258047020588099725546279257899183373652717773579857647046345881595224299303335139615887976958699083366110466169988221934341203698499007268035827403987701859211082286553925925502539447238929331659079692968408612573060913204642194073121571480201134169082172185795484679558212635397807344064308695840396302218317613156001691777054448730717118723748314823117168940641946364717377622715322563506333933070357865153588132711471946988236031060281054706292728361853028063889161515448451860228059862252870818591829583623986810292678341851103966035285959978868664771602531755737203747811096889057781985178328818417896107942452544080054027212811648926654841484980436047929165499376239965811103683460335883184068048650105816745969746650657262486529030438703554826465370087015303385610124192416911223351393397720267060872573405135027949500977185201037865110055165794136501825144486887572494661323648315285482111478337601062359484750655958926827823225671634648871955371618788856335164308348366510549690671614429990455216749798167029717227345430671699680726107113150310354614783802326323340929239333146984402831318329575254065371882810898487408499700426827958345868679875488898476270880776145428476529510965624843232340658467433243798340845715405476155533842161218475621478275863588660707420091996561801198065617906726978218391716306822238665061104979771312960995615248808226076419901665582828283622802543335533510098645443470339790984228500365863442466743190551019911673425426031419994082435785052385759890234755571664826322731943746043515835254513849745888568131867252478841342987242072845229601325528778667752652780936085354488179890509709906784716048791740541619089393161112429230952531459968575145804477032879627819526925940761850115182959266857379590149376826245007056449046069345145460866335922020378312349306262995914385841546868755597396421418592547466178305695953333581156988393524567281992646871418625494732887059985041718700690619209961827791232112438513399344028904182742498000612427464383624159770503254319930253400529437026679631657909740387284134476710159853062240684338423287209809129539492723992676686361310664583932311549619340909376788537362562917648414904234029543313405614033714899048755641345409563710645849390979316467076841442631966977050933487696959489684907570136638330453921647685086834310302088507736067733465247577849457125625885249586333668875849695322742659034488512917652022013839427662081216985505669032864093156035474475375006154703044825050062293434187514364236244910462628850876841106736049488666597919802133632895618824218242771704117121500649322306139268637013855088062155446251030488351266403990499232442993789589973298114763614827422393872650593945742198270792465638798489534799783211789057772728281151175712876244682961514696764956619439347811069476327322890510554765558267833325779959947646683163477390168861179067645308250596395579984005959784676341571940877572772541546249112041555703382431410773668217557254497519272190209020641192417046071005097954173638228531324075501989833851577242767289776405824019747229365357512808142961613268013365078797329523987486704453745495596336587386533927026735574575803278639322679964210767938036497673606603662364469452321876735265196514086424286873078580235155969380572954270047698200898153266914847274382535340217764969434051009953785564841685867016618656793191077745112629501007375025794468754862917700019641697015472596008900482664755423459349258019996224117588688462292212542894503134884129302100182297912798808604778016119572039322578142071325495935542545311338101206685468674527906857809619375036749777542895542322361779122415060608325107061913715299641192487548561591051357705638958975140255814771126784411540267874007417691317471838654309905141805554221422465637225844036042271555737276145406371448354384013063062100197603311974779554177605546596985380683768463363810559092721758253082546749436498137243328628372632531005448061947657476105742543206700731620565525933757800947062198496204365372215790740713096515901110082346720890380757665945467845695338244444358065958233925094886802184639746518329705525081398649492581512334935412304566766268391810996886626830141318742702454723355107646156293263420218397154329407445528325639929706271350621169247193061053536338949841902622701519560687075296743526089115466930555908213307190394368781362602959301722261020803839932155711870813952054972175076046368306345995792604526713943743229792627573230883507961459003939681952506535409691974688851815244843518944393811937294764075541446113500929837388364485161713506250882248946975491932128794321732751177643512179474673567008910143055957890752138594496228343956792867994437544393941911237679859299732577125521519835543602171952313202255951053482518367798759992942982963499826186847474023777130906498155049947355512912131434254313101238674885658614980956967118428217517004812220230363694297207385458547433240039682737851681728269667923616641568265603617557763792539016894461851828429169589850910806218765206109935647099291377441892943208360119098864927828077447933820129816765121453304624544573820097363200679608785935812923226699769773579770522442434490983732622002221746674544241930480822986853669709416749470119001987902554295055923239914026832124641855156445660412066019204135751665295040277027786853512984190150591453504464756030466556041621980315495728930818262808573895748121514577562920822386543606007356287669583896860364715680930674644833339423824443572386369665859264685532055797527891585740117163717761551584858292157744621485638088374668013154823921504320184270828798556314801343770314736922329676509330912168519580302413913919438252695799652593870835234875348150121741918131376773058395504202527886031140747087291191075818804827475545174734350652539585088171346702217319198927878617098098647383432701993701691346096741643880823772192451372453313678272534422633013809510437702138059560212038387051745690480737198129177885292665861682869747940671085273995437926750181594743716134839216052194635711850228469027133521596840249089894375943419930714072294386923789538850754173835438797999742372136220239903839358662551550812727040268198983190314289547763652877179540654836906896259773624449025188777968299353574870787546729171848946668478040119778198884469029268633115069954895829029289471709462302612081110785746601180459184253152940393060146918763807610191009352241672082025369920111546197021703775345571064786543658096914650574234011847696267892276517059340231815164772146987439632741447733864174742320760501566737557961488518819465871492766596410996595882066056954485391977504687447717797744805064610857211006809472787404075145771635358628952838328023010522246906129898790174610500476969828708199472780512824330118500409599390113139975654261510098338885730527044165517150147374496925549056943719171048103130846171724838925096400927094880496403676247555523855368727248414907029774675854893928485448506705933725167614273237942735640551765612176944449741103276086770915296953986070309485718889953797014514301864365382391294918990408351643449599059959669903349708564050319933976463675212729205913927445130737391641074296357949934694414897233684192601948116975408284435488191235871839272912702269672847299512172121809746072958188569868619346250011796978375990534302889976292842714747547613956854916691709192373752394903012597609735955520337709709892918090880963091187005052018748310148476194301128418200193941857958889737315609737678633823578246614405168862383632336045525845565353560472931158101975484049880956836643463088946797326605943003462282672204142267345535547986459394397624319824517013918727927453304077385721491693566639184000047743132464838845726271011465394549324773317417719629852780117907669753224995858644114833233593047077184343593370560119944936592927495776762125576767955864058623596759499632034129925318443611361676662285371144787350661003693820011931534041449150997846588380417457039540896221638337628808284595146781996445068226018049155413797666359340114493992499821951524945377604103154147145198582612251610701460554055523127954621059436393231566497334564729195886671220226874075674352303182156498111537553193056593146459074236350943958002612011619621742439766761393980682206888762821376187390195785304565488204733978985727077559133387774239007248308840845889233419645115636811879730193238813939190940683766222173751109582861248860638896538285450553107688287146825480990649970496662887251235359378374147101076585546616821437803189133352116587136887546538376381557339543724232225463699562040329228705824872560615671393971849707645097720077932067484193051851039714691116534820987632366862999572211590080050746024483371420168821060545237195425899685033159497389835801158813037252106603660988661431453186553405748994307930991473920040463315756396176337386935828348117643097643891480004205874568466882588448734514606229426235220829322520381973553654765465818039552795877161456692028795887453214668853430119398781221506331189508126804521776332111482742867792832582118327987765597587424768934542945650845834512474113788992017959191505909915507356346714961041825411053059345529764528682527395398604290085463664044403371635006837059251172923366818080869515174661924085368341582058031745462834874018081467296047367893233679107120613369586589148948189491892621588608972578293428732934590330223689180778752164905333930023639969977532856261531927294863299367477411074611208430167332369643535391498593668414628007183942726539812616835283188545355085051307386836189803142828067492627625589317306392375026134117185913287827488802984471320428129419126986497501670245611627353852069931890655613183298681065628607532918657647266836079326282558225641869348654184230977445375221642200250752159093388484852779759928608149059248240723498497835969151384691788114074545278393223240979321441813900415352426130560765787830962881169446820314135625070885316517504086508716184736158735339380171450487804007163088165093283301923903571848379840687446977111267327914361082464028307688837537719221094315994217726086202309310054904508568932380292310761488923334097630551348440137867253240047527575380488898715589992507215351695059929590713665529384607967899405029118744126604652572301762137438882987162379330111083546105751404951300268305804887866618957692248644302494158833043258794695275042744162802627804601236421787588909015066475487092501975521479571109589849354090750730274493558137022555127421479119824746391105516772729902889928294576191860101766481380309176861605283063625020741343208154526841713627104767449790838367665201436992499976874801576021700167961726393898378889198752924925364149572348981050078796438902348537822972212868011156319042239245347459923864812358854871933811826457931096066395424794238103006085877698072763507438500353215993698015243200592185077868385615109146562991295993750399280373419407612460794948361861916199235433154843466995485911251958644012236745454074161116842015012171304260720407630239183458118686408469087911485591049788894049088095577392336322812985966195128297991695093128765754391854697167360895246965797221082186438784669461736700131406974593861046174495070101847864859347043965083228975673831799959476879250659072023924362009888274300573103633372906217229690321122730797187069653163466142626518059015889386171998513299040672658606905921969595834110400343848293092791721874971561096040928471212337243706558368790633652598431475557881275721333765528558934200411154872450045472777400889162807067148492976553770082451559823302289170254755465187577593953834431743062315945431711091550240190135364547165050739500308224774967565234652538900596446320503310498070573114311651951288168157000779663210412225417825233504228309110718021286402164100691478726135306408448864338538679691247363203557470077089583925961972373162575603995525218619098869003491907763434562202178551402872058646225413889128018855242833366443356240830209137223874517355348592423588606421759657704565755107701065240978867525758387309778822499825049079312503183125312231006189708384337945979513927130856838072574760757317596985566983865213040766225781393510456420712112326268060983812825509134461616708335744924972903747126880358256902075899947306924878155437636152682047685171864407316048184721702833233568811868161742458061962066569536402104381867703532086329104140380111103523928020360770368835145672115749244597139660492552880714955772052110586183176281967393616479562959813541280474207809197936856188786428317534296695472643065122329182824689951291456026510829251028027612831602657810681608033133852377519574412071799839033943020309605563823343370130732192419512568689581526856145611564324441305137638381993081543693559268077505509783703978760382713423827236547612994453721411802374821553488950375217120358151882077105475258756516893520380115482441559018524414741927915473426241162121016518015859287007857090536834903836594255154124112537643797751471801557813424218881953640079566809012352875199924929840167491248183516808384026832613031703717733875860835999925228234133666660531456256241621613698885285313997910348024766003174580913864447970312976216251521726681996870077710274822416899530464321414644999117482631887442379085054714064983904237257943867014899401457746700799739228551768239739343795461910781464111714888302011180039657775314377554032137185061163202473778397254627332616665545613742064515127185237338125849964045210830378820919199784691637400325766594763670981062221948210194346932147372482197314834894308659009008893915818404891447910376160530759904912216053395453785923579241999474776780549085070246843884489143378317578657198514662891283966806096952738990984178884550044555426812159838708884001917963250320275546635595229078304411091339189325002905341750397813910726322376552822457116974650367096013010147499648069022923670674754092797410737860370884244244559433340780611709183271856342471964596452814298341829941174028120720933117946639821019668544367962968524489274488495603084143537688443223689023754107484534583572615174156483021472858957683007888109722964130216343696724230602026222232884198137629401589161538878175037852524148854365920205600479774010849248646078758081686210683081602758506581638317574573733088785808800946272792332937077157433470649933249379804113250945786045437053390452106579156423490215636089424919913040035801727874619880432483888242289943114766558131282416197991831287728581880586387811320255289702847718444929753023928598205266804898054571472327775063076025207887806403584801320270757263207144509974121829654900177124344336517705454354891357234154313738470180458168867358060781397190232201343846607870782389890588602499623136632166435642159228864509611667976795703373263144479895862457454722692310493096002071158580572597179060038288495344526325499547724551123052514503944121781976102483804057313138398025250753681044245372218556133584670877962305932999763510229994873959645289827372477643908000031964235766274787415925894067757364764819142370283468819662112122649206962354894480655749360330663886145907356774474036413077270478735193289271657880031834180554228167895438058769667772361719285706518523771529347980936609085970706115433565773445039826826648676011567946052202250499192880100636639607141794813998015388677152194515116597967994098776777782508773488272028970514754451890258692570336113934339089463181267998999326158106257966078933227669973145805395768069886801527725233463679859846665297125363854379591914828961724890633693036841103288296810369101568749202676257416829581195466016553538763743163879894018723405086439632107465163450122836093955346863401687331920277775176380270092887567192711044312560626776283738266962252498155144347473513724315462089272094147903533810639824344412958793893626875031478316891235700107066400769545715501004569929545761503312184955387683053690627816173356595974238069995486802229349510959493405569629276530833330750349913750972621572361145107801931468866670626450931303176434109597631325193475660445748404467179557237537662523668455024440593759127028004221315754977587247453305788612871888541201574283422517187900199215675599334193189459448874858118423703671880738068263587177723756625626717970390388462401286173026013647380612226076097028718609717033758740347642504589231153420440936246700655365049954576666336303665006434862204273696921701398375166909248805490050937425406654494091521576105370601357028534259266637614939952440701024637324502575828210039724240977856778051354422825595484151182101945373998651133238932780431899927216808854111311302067132124543096066257783349665751416013800382514682477658391365082868123665081151844490553442249050929771745104909746621960655518288058766000720734332971397421776466867413528702956380551887843231201938137010566223481308014091694386239787847068788908589654647044378752791367780541647583788764797017991893442896361319851182840768098984557730330103247408404479273274348994847874549614754277902490435522639261866287229006614492708307417749830838158417819579803920639862752047015702306116480679611365292883204855192428594470795640874942555819452905662367392590840637864420689414964874695139774990726903966500878656266118813365219451943612799218201946910758373528102548125367217142387649025200200640423063673003010718355864708413971325707063010689469649661412226128344765160407225345109100031656498810883603737829347974172264017224815908178835470741412592248694036259529967229215129618660145918434159177094221344348732073292912988765163818261585814936909281126246865582462087319213523458208997035725528324724204768509522818085805630018862943697998960746671931501952977889104898697476514301045388222776802592885950201767704371086722747559374241647381612238253691059238468836613991922647102637615687504978524748153726082970286246225809987986975382367585362835717683416000967454891027454339904214854881964616645896379578882564063041169554721700787968796311802106553242214931382114339460213913190221909767793744390382673635446863862868013362553076181487084237004896408213512320599079978770115210518697933629957675109504584203863585911769689954865059151336591020027911463364659085366927674077869688062696148084889931522219839151070999666529958564495962407808705731067838220929725102684489526346078488399554009111817902556002365391690495368645361029153302771842885749717882367588498429914485250879141167603625692928822747831241267871496900996407182793473247141851377822188085315963699906686082548026699448355279548478748332601239354072690966884268025627602133417784428579588654214997426005045858099191207278299104017285773140734987638983171082643711590519980268355449564251774966563226828813928354799687016215026245013168917479056019367989114945459503795195529323776771251509836743438639528973985777008125400691068864477479934338542147337018306312780275122117918727354224919356323401183814707092305319700688787990240208459126321519578826623942255258506283018259248352080923906059786783830610991109117413305192156632393661783482535564057473249709724772119401213463299824695094702904811417258524829352464565027576943014908903904210131424522693322346326119107618153529443388310744191014022547566222607863830071492234485632574449027626335293555782140275657166057888295209554502053718642371606412379388433019507316616928420797880581053492596251262362293094364270974307797231709001992246317988339726855597393118985815267255919371423460156219071300683698028506780828555518009603950769674926797961802357710328321831467120303082016043366159278202934587664451228132260809700289887197824434681497731271600062617796225249574470559457911094551091041170867537335775530355992220071361126991567674055441489536115993996550828046599764222243587388282785293121205855658896313510302968318228445458938302791747794572654249247366984884822581800781285625702683045431849876790467766679222108849627310356734775352862445566321680258054456700256135773682533382168328640964155600745621410920962350429241678288999967693170509839801966200568195039247131365192891326189927887430577564796257110032860245939152335184597731901016916411051457412870674082672795686774947379311327291374148776079517883907762339449257156547154857872744928512791169611806393859532151789390572388503703753526761991250299653620333176472362838904380162516886877907716684471112596477685495606808402366255637417331385321385906910560531391433716271852997111161571331769984586056326181398576868126521844915856215376364438592964497410425320991953680842321478860007315307898746424792351119707865660641846740015641355043413076981925804556938189563985693806158383528445160877515492429582218525034136455011567981663192577368338492644260315595040998181323948512161127011614102344811905172211091807970962470411124197746246441150607254567558233766927191458406612898780192173693652247739021854457667440408297300102983719023615113043804685627264276118000824482933283852525846521008935750895393434609845677751307515001604739418935509035442715040406396705408723597984494285991660050696068825084233127185062686838293412849902683742098292928679450668898707207121830055917342403440214039214236976217061458740542300867891794250531020815499532818088181388822052930254152611298467648105871621730524288302073427272409464617271157280038699636850150910217392746910213709551436372899768993306861730079628866152314185000795955275175290970209627199786797483601826064339548029004024140040074554261151124006457186017494433115982948445398296863638829436351785522770298269352342603035444414954948263351785571204120891649964328881349390761098284100222102069396636810973774028582690619976754437758133521150406664681144840525296823624570166906420476959281044608797367430668068669834163520924564659315406699041564926700621427586010062448133388782920910729292274304366808773163146046384867527346730337916392754406674746657021583982341045487585635667587627083402098489430793555662624544711277341094951238115129881434948041829531370726227897837629492497962898890967714943740151554105551491146147040105185837660202078721314402008979739851430795633516136404965915915303787644437335704661387219058875053086713316717460012712882030634825475334704160720320865958565385725605808689377184360627238084733516239817931433427585683045800120055033159264170740865819196664363290590259742598595662520274350015047304389926166163936379519025375293553760103820310513965520026645375565242207346104875003855562841183586418532053968871920786591346943026077255767456678577065163566402161766697228690708250918297300574887743123385414126749498243333203510340078833142941455156341106876855160003169889548499210582074881536419401550074233747463724153215242841425694507653946810793461852551897759293028432716105594723736664461992314856094428107517417716013029321074839408393034733909378481748681962349665726927055006282149782106733713398080881854364147596859039164355582089926836051342700159201047189128851583382428491742879410516754487836082112851879387052552102092097473394929448878985665781226742014641031742826733702151644541552340971347116813864262288979959906703686948132956188185592984145484143565593958128222671578355826362353641418953428190992118233551735911064897952006584803361656766887592822021284674128938933888660040479845920917565096519862271700410651984759515411720875412611565168714096839179179200236098973749957801514844379142786189944098021231384236279005473584630426165214581724536063098445142917288313190478092914077165375014875630565681866531809669910263486767587089022248217079606078256355992556491503723156558723465418039605190029310836616047855114126174656013142661147590285835054075535219611815478146291752325991591063619117412667175123018465091350644436795424651806387587952807290389181388093495838434295804948404697937880566761133804069297795690382786351358250544726647554607834379603510906066847286985155276958070528271526823767173216113059463401951972403704304664848901593168252317107075083348958662480854409266415586057716714601474510642248490537978987457182937190937107757191900119712208318579088357544422107050777865023145775218265362650518540425917658269945145789599723619350250393319018533600519717025084065365286371876247276802839249961814866805595434916618974137090615577010330377732919470801938756073911991824340003734305349596841358141487209899101527329780821508396978284585443040073004823709646169556567974047699914246371550455942829760819633750510256424681833470659463952847480879469418595226930301320716472704729668926069493773771661453608110493997709924440770116816690122758766286937256279949294100209336589499584533531939132276332552404074942504767171556362176154319444458828857045684665658411675063362329119034796963253692482386075814495715808372110068320595888151818194537929843484735438801647725003042438657141354534156853561807062874287314841452637384448812179124942105960409525388974237092249283055114131748173356071951029112980832882547953391079552124736295106960868918742775886424146103253194113490818991722875390652251429462233001463981455309769731405194490684885849722744188949745794458596480728047610185993398220433221542223202354851199185215110395438989956700895510816333961854080829477142747165741165837811160435744413819620518100693811794803520807932706043305035090504514020511630385250848429453290898631175633291192626740486751041149580258045932536793677569544834584735116468765924407730703726157902603998955204756687164608061060900941249067093834959294091719589522054135388628737377405841809486313722221946576959787570362420997568501212608657574382917621695712547871405030401284836659021053121575144996582390772521815163236546209192961028902223896026347571288141658263185501125982296832911241353724976646587775861258638044582552281123043411004290267457460610289690648954169839261155879261554467431830118215920033864170281249258284476013557523844268961305218078037162052294078265189877337079750271228120897773290173207575424601267524930598124570245679686651706592490076801361431143082195393997345709743619212161387132443253555460882947411392085293855239243907423917151689585830100531003016479388271164611329516146269685400650782006231284504152454181515354562502045106749153516231310375365074907510794320165290857639919729888219914347284441937698585271457712299695568040169537623481568973408047031093529869573962390204829708464823452662671094432755600444623266341105097076652660653165273538701565286926124900078269644707140702904639463223745590744031493219627492949827333261595560784467112233295907540998617054459549881545898610275092145497951389114185694876679960405859156712121393274280953465337694316872385636761185659474716386670643006673770772606566611105339433273047417243942574499528738104472370871860547501590231612055384410670008990639561277450991291359692712805533527174839022886440554470264886466603624572429625354166494498544097015621532517097452864792246938117456910645505226278876092018930527237403937290150291763933542090974920315101516247390839549179416578935497022078873280883077905532512170012583789578113842729650408386436367853135174259425389724446649520818854156385313257246410970407128265091733671680787549986668767114932156484353250508112108944333641845779068951126437566884557783671077928608826720229649572856130924503243625109575694008762249245465076446896264038818821373725508471645516804310302656278336444924630961003972952637043924064658051465325749655365884951588525916572054810012613503629830103364294002834486013453231843655774095365178649691562633759635558763294577957062436633179757713141135077785086245279554520965670934025706462720185895436415521662864972362283916132186038400385058369671208511447421510675564135273443049931254387348289307429239226887262476152799107966752218130009431953228868256153329168424664269636221437022506067281441530820814963222070719724216947922261347809753355310631753872638164722697961462764441587378733041341990191386257033957725010978352403283630593961519033729204008091225188325582847563411459681700050958582615953392311761274143813633718923204417330681966366716698776714427800120108054752974973247585341393265459803273486218849685201175465668976384976242632607625064765387276314993113146442943248494498100347315298703442513568867454025873925362646866221595229439088549408665794213355517418594000040428400793236666085512109718838422376173142406376725152666541519206350658338763584776239982700882228889949332754202131251461279960364818211951361975909505663826375359924761936627590894382199818239959929044538384741033987661743156697803952306647233050433088215471993023033084252251800584918344117687007299762589945108534212840754644418215862453080537045379524574514302904392526474857296019009638201966817450099713266678480750962561356244921206388090403200355646479882045688420030539294626342768855643951484474296739389446015353359802145378366142251473059782531008710077166965960500539391046352202041478403106357822672766032069411314594863176665859616738221401632738649472020424276320700473716274861025666895612412436372570022303001059415926147588764381575803757227510652881614237056957862146336431857016877061582145022921318458794711510054822363828960596687056607186588018698423523531248568094489681090788935627492538420368292194290688348962039188755398210170208212432174933756004588519064969438505565866732565365660135398917300901596827613243414394560714652418545029918098168315700636472634895804382493470552154898909453603029947817418771638631227627792432116475871719518192143223136353384732885614480883146885523060318401299087950375491355894459113416598177535842409034457270142799813281141647080778700360825420941679247360096456687796441501607827362612142235445744134727062367929849597693049005958572268133023274834882339847675332245646359760321270461388880211798489338337190318061193276833353954494582546851948465521937686441521998020420652270266129649436756428299565156042154148073077820106160213147412879022217054138606229757144341109671110946797584016672229192425832538451135894849766228530158060581548249391159343710174852986726504148145525664757770487573197006116486669066535315200147680991463350111355886538769394724421996541787943178568401206820982568475644432340334767940629410978755065256000061011054174420520695441196726176383890857986966356614284711475462138475946034553381546697763149364866236501723916449559478692942321846588483898111607655077862811234908599038783418346301029586582364347939221747224688057538655285553266297692734585818994392000786012957987632911146662612332623645958625503846839552620250189329676415171972363757970904927031710873472931784313332052673194098654289016833718647498104864631567204577450697662501445843083657706223660102714952312176061249796566193334976795778544494928597837519125563576398183875358401043755094705849437841864902653991584526481644060348869907546279348572619742985471543536359395019645825104201222270782686647732391793483096824713420005497147434381263536026350694997096133821031213908759530164724308320939929632856264826411335761293343624854305784710848365551300463622311664555916532385962823112261691907725919738623026443546244789681061241300603478443622211670444075390924711143767480530896206422817787483969169009265363099645470946973345218188221995374157073824122435580255904604292260384166600548161360562318402063533748433743491378220258512155216261578005802984833679675619459703321362278603409900724871877140954679959918368045932128801319875014965070880911640431506744211269699241812764183840068120407308752013727949765901734164884030017192932131487883897606369818006323430216683763801987343591195988354066936977197653526627596143903045357960531558076055605038335118973171123343848459964703535110887540532071983902919625961608215575500360373565241325417027590564646837114943010881958129215947273809171401460435184702352504036219410440741903241996920813036949780551986405638251997745712363257284017055761024711120595443644828955035250346097801034346140709759855112604719874092392984510381140961175102567381579209726356864028953930460895995952375900524176923046752616639569133924624784096733537484678027688600899563269566909422637334855881937671217888019738048215350789675345334939923107113571796028041682157448070407178688608956088903374193198309641151227816538933617651092775824152500793245958055334559436440096516056173956866960815758669513825206555131836699040943798837615730776480069896995687442104445643387579169658471095140033831157659589330878576496034663057135035253180022556299612475988863122501815024513239857710916163953805958999124493140920912222538260937449791913005319849001188577918667865224064853658159837476407081832004371207553451680464505672329858266035442895307879305694311988520359252397841249641701665186117817298904247644207208582696312888587869842057383693366719988655868464846373928078114144280443650222205810897097648792142794604388271573354031629621611557234825909247366591701627362892228028591196370212640807779219995537379018326988873746472374475944219291940702378123189019703501727988702678852339111151149301543903601638037201988465604651819435273091446448706895726276238913736723884268535272538168430795075941747827363253571499724010242678786691196772071367707233416879090548598133829895368314583201190356814865361819740713908158243071000264157776826352376627008865206333149458630046602952987975113480578233884795377943086081221486141180364406704441031264342697821016808994747330463276737801198714023448968450013382094506530177116213450685051904051162131552221348958113279828644486630048882606633387260671248117123084062629444197574007946992319631105618838921859814672503638019529493426447395079336319099844057130675661293695752015966701268585508671516289423399745772937059309950962403375661825893722160256821083169471846841759296762666125586519019455166376699484965845325372932078930905463889902764327298425786281924352045890420735587181749150747661799751030488405201958640586686740337979796554127312447367362130004775923676060422924216802114175897222009622956573528662298551080762427874548731446965233271112842136518260233754756485827573400094196529160413344185331350679489715075206505319487384496316055635897628526260153419040009245979990123375281758916425279228258777176276894324912741616076199246783471144487332248418935344572404604877986171531076928545746779080658679770864800612874269626592568540396962103168012749370545994837936563150253882592662690702585983968165402774153859024978090439470454177709490969262271139637763622100113458381148652027445672850519581519034539543060411939250992170307809168159018819244445986789135609867433464387106773920787323772169037489891151523769009638501278809561922754376278360303059789673375344593886634352128361605913898763445695941195259270846305203143911669763549552817962877465328495996145912441352715549099160985656785704723242378970272819883073481260846823426482747728109993102880738859337641757769556558868724506843457655180689469607903992125768236257425480945641995028309519241949518638282546900632109524921888671292405498379355630903660667158636680638647800209308402285749891729538968735023461539016145581428279809216714592499209631915880588458217838047362976630018030144626225703060317275033260878955251466401243885453530784124096054375943714434904822848223479495761553800763078579114043397126013195313567103624199320519466355915808329839134028484160223799983107727004663064630921106628730720092412341046699458242691339878973981197920185220816745750208627324404477456565088395785496118452048483779269871171959100713916902394558718984962198814039380960416064158554947150068464190720899523221159114678076012507277827918823661521429702632815064267423884050701511391321207221782360116082750215197426702950920112521505332851430495994087548627222572762043802358558436395082440041031222124118005889209594139481253349496939667592068414189646783175838408323057542921914866084139938117595316515752632272346946690519358334194823487405987243923827351651333248371558760787719151734375789866577799037222493758310501889122683819477159214671998835554901435408360461629486982698966656120773413657883793536723756604235776049264715459086609390717812526906285450469150282957794662302223447874799181167986199822034894412725903072884101329738897240755787581923662944528252701477410896786852407569684358961596680410249213071079384731102178798172976202121418875656448324878143041435197049724664505263305815973764274986773265233360558050456964865036459052611052465130589281643910399835217439882221599036863537134278298346193491653544284934342372348092939876107698011763926685360854222785872472504175795243165395842936795660331940259322339712975414325876908394571196292199009759826985067146007104501273423386257324395434662352348693392258288995991445534808609251825222635566959756798077358776054447409464012380815105414898663505943270272594013186518624404672695010802849031562979066889089295081291058303030106704046742374811668954527712715653159952925007340229655538809559329379025833214604267921236825825370540479428606033488155140745806403419779457386787185710142851286486582044459226254983985925017047967112275894278403470347875742845320247260655659688240328285076274777845833151300553597250952990188135132416899928660318388996675728415454272789455524426073379931580405026941234561347015157770714336375937736625345936168824158745081959473744336745966682498087146983918643509209556994352000040759308897206321187221606375480698170570933664425957510207269279490960390611568939098945777272455919895559026086710191519962366959511789098446859139722761298242903849347553456590462686363960891134227146575141473498095318789593123522140537296152306989667182597847312927254311039113118238325785425746808572607719643714763619417972370977000091458853719989703951983075875717252433219522775235566688286699270086195838111522765500764308581453265693562297361059025380199502848437203407024502282678301744817890306003995909489258749395337453491446477872317803711628433946987813287600076098347139033969505148659655868073248384249449427515499228870769290935838526902555595038017242037858994112349929268779175040789082815947148632404874425097395158439797738861303538658330695450876337931062915720909776249451754297875284198597817329468656742151010334374521036443039975526201692336979925146989878334492280780275009737458757199315159616606993177083215305230835519715325491181719126376610715071016960317621075210206287055856423263733095217639623504655484058072057172184010721297982102931709495238126778765875699494437162035490103729015244569113905694663356799386220220953540453161243413072666428647871139852190079427615548352321927471950742429975835755720557698351897219452052552318846409518197768055938899282211246016545234337783537980905625784252035848099030377519844589845747134466718523706451292902422511389020457095187675920723613150894435467624878903928125694460695460528471088062514120140269445908306899372596410846678195441112602783354538664074143654961488863505966932660402219513518338142349062389352817964078533757535309958003682652664951320421861583343078123476535847061275039163665980114051039972291577772265958029636653571508816814231636872980829389834551707519483528507680161750147975843625135509801396135394087545863938912926014893301415491399479843110390331856455559058135047471024923681489176369821318399392416561181984513766944094770167345886467301294021124361061971069450723626059039449889603759138722504785871431560851373050328522924692403559652417621960029438642023135215437068840325294711533554411666526958716430482316734594707710576651875766901926054437365555780001868889368203212338356902016277598272961043754769950680944129951884570594822438252991424476613770543243653534051736227843266457426662463804394910866775897002414210456979355848293153773833837523071502505919615079649059887266908332257424604105947164493471199305708173714192586611696743293490163113372147448724192234781329720531926061586103934989212171511344236467855513558239490001632407400745813954337171582941231550535425433342282680729633699907630183479757015457954359472094656158390559285962061327033194989463945859697422141424041599316715704000367870193947298133895986073956708374738934138978863908366357967462630183243173761745035211492711904200326622188773154379273393707941906419635267056720609650223090080227809807369507651951437503734311774698039528578839868121219915937909084707454869377646168608390748411560698590693934913900992191068920589609431118723161686260247240221812449443273468045443538409242267947231352800904976988648027669818812665043740530715802574738055091479941623236420824194567063381865105770190864466145889853232861341476924159104207932560457528520890729419539031001025879889019457802253463783361115609793943365502280605398432213660179308523280505124098581320753626282024791013266168002257317741743582506965559325458752065392527419878539648577779897272311329693571054878400673241853596558850753169757638857404347305905541174559707366130886105716133503211742774791640986805762577501023170138922039620803598952779383139341786425855359976592540342519220361267363941676925316118713106534709219993148115069797164038055309763187891349756466823134885526047109836004495430532879976100413502776365868629841415780495098749389513266831238504970132781179947977262493162336503019654641123750733294913618660143028030069841492162295182058435222817344776755551028104328509414206490428186068915380967703766425923171792542801439533393570685912111294416672823995234264606719108682108369476338973430380596855498661828521146758974071957959930674288666299954675915249775071341913202876371488929350887733687338399112285554729023679251349302856797706939204992863502988361014966504731521209284059185807723512491930835829320819264705056710069570144497316065754497745618280033086348812716077617573464701929254730478848785440159369419486370941453250163164483330347002066297829079456162412429852768329758266164970965816431275279012740912371761892335119319565317564423176557134417095257982499674064315449582567312248965628838060320215788225595688592988509780280233561395248215508606447771000259361247440155026235352222892416365891563464826433513784256851688000518360641378261272281411899121551864758664534645451179709767319283373581747182094320302154445217426730492862138405950263549472955988919841804494242369961946714226678233223489506207452078566923739051189788406629430505662483314952558721001912695500534892942593588466262296201473943358506892392080896015957216089551046915183389790586472978063808469757183019334133788381792977111372146607724956460890146877331316099428273403734514324103833171027552281134248008257316180731909446700927466810709347201260381232634724707524506331640907664502395635714310446326436327073158550753785192321474224907607839991732542063911357914196476176174676244364498917919205117148532046217399041133180321082514921210168739583534946924993508359255368100027184659767404049391038881011633698078559758499014803293673913280206423880642061200294601474747896704837949397709843902734232708570006822595766062836691806480816540538661555686381810086970934293119845899122818082957611243978426681407464959844189622106428654606479876257935340603858497463229545906069599014828368384174473194289456749139058697861509652770420258916086480543343731687227557838259497738546896859615626040435787805786721935637111814459425877873897779574079150130059992709846560652812325351770103945692806647104893315112054561276116353345103564279272218826617216545417841533729870463580797147697917674938339726824888977980853477838030032148288393800821289288862818604441169579717959846679156160439339971292465652427366554663487903409110958151377232371450423376925271283484317925416686271353862347286598919813812749594560936554451235108541820512005581639786905788332764075827669230394212939406661736732009139009579263983823732700555288843066001961122332465751071898972576453011661357110878101451404448457716254844411847073556173719223219642002520526394547280138493830266221370244351500027449588016989746969118375186369535038385138602942098254718049933288557821440664775079491230016197041387247887697253201083538040191071983430222272088771542912219374996246886919370538378282973881929638204150922192134041671300054705538323024850708484260890034876760784249296778046911673755716421649805960818600916257357453591719549872942580530991504507528793371212437423919766131294128481944399729182865895331077130633238124463609252799312266171409636808458425034878733635766522944722028971771193700233843250467361798355762962606269188375948430372978542017498583363796831005207773779978635227265245225562085761620674044513291361488329228023157473048453430526125055990783029417689220576395605947893728437884630182036334637390473676889324029148340566111837310084170470596455492551451351416514153641446635967493189902750952373356346849056313909393355702645848602621887928972150727450017299978085526632283957835617058080941747705595200509025376538560558157259657399109071214965823044096669755904238130071045319770129206167565540521855145221711770162895107200984739823384152971792376705317682554887762190080606857123298120472906206247557597358433412702705855927069429826497264041091774195408938528042958185538224065039908551394701922103283666906838270010861664220016652378367215670759418293733850272647527904293855715602229764622743364549242788790200997437992253524834730963988045522483615044199455263046085391134746719302691248675184723515409172026330815006001760025641891549740786943733558237027847940252073382748017789190656551741688993094150123739068797438082716232006744086897175434473606119313901189438759950393930337159957726881499420058628571753904628741505141032083725473487522976334403458957378683373272532048542085989386657233724464781869034498105095787670665043974899329610819739399372080691371127419217469290038695034259338142417740926439974001780231979459808342421981437505726812910362786449472526971606610102457037045346122995852087521805073524356884843347324783055020908063948172787639189089233153843415080362129104950340772031787589529117085345625493913217142408437604156222930396070186800076093734270160953832402921267223189913936360336878728969873183348378411537859672143908262590723343281693576862168709378831816223669181095165026513169588868852484377992808715821984022452647235083415556427690811895476537988118932861659722848784086252627108871389734290092510078608378129965300013703034757237865106908123712528857902396522800972115996359961557298422318642308812420941080821933947489271712216403436868483756793112748445196946295439241423236760846455482535333683277161504453256636291143704784502258588766051353103572446647466655332340987961831657075555964069614571105478081971791120183195318795351554935922404873218641715395968268712139379928543213567669533642310643218200784789241598927669472651755838045946125565856358504332634280338349863347154524020356384683541016291181934047135827871498631797896213619788530085246975703610811341541785422384293078786571230738785901634288770467978763663726855992461532619531395775021181613079934061521564156412737477351194586017222500847896749462794159106998271141604636270338182469996613628627283139864563165634904064468786106678430338924887760283431642218764786089811883288990843513453468999291341904426881611321995204154647620166026530593308303356763466728647330781425022286038924498472334325000314568029529779927979462015930617869996065465516469471318107160920607035764063201804878474187191681345675135562976025141317395174436371928935993776280842146307159463314802190096836038684627469694440168918262108592988891873538950764467070523255495116093481843869696029268362914726364038730289409000973003872710658071916399998330067846924843643793711143575131240063003753919443474124983658517990862632300420163646151099530694337238455615054203329451975526310537008277391544736343105956280401219209452138915077385762524656007265154910103663555720542132513071260985117673316768456285149898123981184808517057565992002452390915618059089075364272545986141965853107819083832661281622011739924710199465556193527512776964714683992762210620791229631279942570241925567857981828994515955032756640781463624497693016069149872631640084251730785896378493582735543916157623650730574299256931203697237490262421164822350759134147169446614444352187090418725423388856017172309957979699088999740532376480606039669647719015764731475361948446101221179654470710528200208391200683906588420108059298365502336845938106083614163465863752076101710852453487153134947248648110325707624095474635282722737379637081028394773528776012789488027634145929625881787224348308595474320796778019984118758759129271745734440560434233454810971677798876077428665902721916104728728288457754150397374465324171828164704384668250493574351265048525368446016299803641330814534422342645413068452277883415565533057968279050014419920035497488240370844999155840406232362340786960010232417277095587719618864683999835813829146799205033786123816097411899769876550722403684942403446327742459897888192168425891514876563247037371835116881392250794045211610353421212993738671125847271717964404685135486350658331854402589381765566472192142378726054837057516941749644519577218994071308391856131005481002829262292559147715780117490095427612935322888772415883747892145432568714242202849716243083995731586320204296136468114235154520599219410173619270268229137948385568305403789706835929704912837072696281596610240123028308413737182942698608620749537115212465269086671769671168637039834512594330617121932130268037537332749434038777612521472913207781572716680787822180245301315974535387402688650627756982451719217530917414334320842258841441835017469455822354321425030242151336647339393751372413093430536890206236237270542946722098290658273639975575595623448557488851957766684419900414548877212946634393720491699171794621035415817027636453527067804304440628030163042837064173340456384766583160089576586664935911701754982307280453941829422011328326195015316689010117119813191580864581883880313270693935236441635287689272290833495826375588212788070981423180353051948443028818393061441100376260941737728809133321227250374582800416876079524696130370179222179899312138550108663837225844387522902632099011271854512554603080756151883479233126012526559689706346014736594563542162257502406133227594169415663627698657481715188731917414440848333649081108058143410548977180013509143651821945594524556554574764339698663561531617198122706996933006207785708279465113065707675496815102167480131610375259819261479448826960622272560899114027050825578282432663511956780638830687606394500520951833569768502585330737559122179872715640579271105299090576951183360389695889534318124368133012958015626867609027840966274060403416854846237838298336269213239263522501256121346127612951267559328460674048136533709087803418908286159000288322303090342746725603991397919003433312718836301452925497923218115742797341887069829470234593806101329812656086851820524936466806534738451593615440002175252361108495347362576969332054437753104647440257981452669666754265980230178188578692629651676991992085942956581267573327251261356028329886803775213684789242937523289106031192437171195342724513062608345729084965221671368637009056762135188707786175485871790822095532726388400158520269212396314844235174440056440763464823936257908824173439163742176210692877645976887699433586086418854187257317273755634774137729767950764494864876106892454500982162174643042397239232954522717989129171862405877880659089279006120074108474862850026299731965057640731847109310553142393200381028482583126865093947311077097882216685254559272966857633755606439452817670835869360786614044407314130995157367231469764062014318840506754658624952971800130396130176778767819661094960239716817673649421682779866790881469353418045496992975839453864923788440882495975239100138547161608272940877163007182674000605532527694681552112536466145749424158279927048087332792490961120231617637254174999970369503904548318281226142330234457578917097325859762198679269280120708666560813171595358441224964059668580282570777493495224779707446772996814371867447998062709676253079801206601209250357452507123748546764586598787197783298844668685540542023088407973102281606999623313837315860595101540150426639542872432203059332802711285410455758114208639646604651151244741831253696242638649253306160676039776670146447020872868198412711564200757083182108985767952854852319750924223763486942553983174620829919318418911164076920786257140039060327643340395714414401881886763204390470404655566337120684187729127023087402532231364128787778407176107520940147238559781757435205738514543120134988998504013471141588263264645020482447343106119733800347687240966214307407487589658772848019026242014530019452453562558915345736600829642144492332637537283658535090157438276708949424170495688152401524486575227984948446490256795974402522955180036625347903365348458449066970751415409225636912516488026152049785621421830951977340885112817092804872657576535529892633491011726185234515461875889203677629823465917905267732235615756239264296523518316984564095569693420676738028793439469599470934102412071062954820686591678699158346936603146405581385748428482003936115425598592092241347801716798752828450261318827607217746611239539442393509335986009232993356184443893252493487987281275463258174792140373543822782568561965424009180698707227439953599030882451641804244865973500012098272106323308367535219796648000513568572152338644699817902993525342740644375991696507480656404922399156636526795542413464210699423130711413483307049994563235635548389836961103243445439909199541581361226402697167781161402199414857701298114959040620141424422030230874398978301366349250962790956022159370799847717253294640261171391925004366874955585353501392358932081071479882203218594993332387302476110456832616330188249939866810639290005632517532772447813073893554209189071226839570785150250099976590607409965864905739374250825200013736357402238137789364960498983271665355879398866876726835969306325159330767745488669755524872115186353727438783578569077003693703097236625897499564939260966790910757864877328281940763903952666823653349569743920918940468315065273035214220510206022672643458081129045595362386278512132678981946560216094243883709422067914158378567275092431873751512458738867787391834668513945945154128098133871172713556811811408105412203615695780360438296779835680623422873039665172846511746751820866910740218647934410236785877896218594992086589621461256498030342905848590512064364565159283962966728490610682885639746294514132019997770280706443619834925385423243182316256400050126554965567717517401391792652150245448880937463261657250441900398378907530569724423445105293564657941905058502880876637153814100568302554398218632986683527231208133078109142971286718534744963857323113377684261149934811839378180601943788311641338459674942254544421931424470437490951567867615744846159590543476069471026885606769723636978359412269109162960350709594697199918726515564311029633844504180443178521313313816571229203576129761308260768983894892206499841669139288318867278846859011636195479100564670184652450665689925965346218731243461033639053288952183652351919991284850847260302402595022216735534521973591061340797860562299117591405655051844561590176413329599706660835893681670226674322850927476022692001113208790383986062928699157026228667079671031065780970535605234288133898018934831792650031409105882038729965783603968952746881553523341875675861449676805979599911922993966360353101257861914362580663208765618548227530370849370665025145545367658093581094423320857234433809285484448018699889112438318703195784962391724100837342762537349325942848755464529968766947719025730738328264770097103232043213627013584181516254012859396583730635712351255227910391815273565341040128677314073186906550516759317914085506034328747977056304444612856769228776405701962129817990461037973935711140554615558282383502802190390388095230876138409906274585515849891336615430652928219546186527488253496990981850578866105313211628981137956599671195625351179278165488044750077681836382574436666098597179803945152399031848717006968830352401087137731475351773166842150104488908246641296221419497788918675167589305045460477623689295506361147812248369807737389042756726199024559488639997138733537118780900760509647885683097269027623685975981944796599242708492363578179767351526947546051210005655669360291125222533917106417976522877886162795444208503584633368203575468406770506060796713238019319400127821797476726443856499202098529438738348679779837355505612141597084925253161616464433949604232905431040515495996734832523048057700517301474316380572864058610330344735895941600441064348413439702462188392210134719411119162809762003788157224669273537129863517800264625434387828131763429922782307207491028460429008167122247247432734059649533902580591370500260470965114767212060175665630524140261592672662279018398086987826490837703901409475007781990376535962176312091171877399121464246724694878467909847337432014759629753831981284712209088505593436876220696397784722890497940242357866377918945352676355249092739443177388587217428663230934239606157761341377318663354026204110668571487406946180484965518771396158195220791021595632321613736827015316167954685938610605452984018219777451933165871435858383814216057298820245234530897245180392483030987620245667136566757091296957466010335702231080464085461086374546289988359369139129916545824337024524104858204517317435207728134548977738999874204895134998243304669660759239671779125624823695240695836915597004818048082515034449203319198410991470384308991524822343455103034436797045604617510299417143634709590279295935704833235492007068746392488624795689401099950888766627249564396142764736096665707265269977568725907645286159065374896943462632711619093483087195349964059852533088881387772424510294860212804333615170693683747270478363078319064792501967997893228902396671703630236389585334392988721746152950309243954993604376524685967060288312110539664349917376642067649496359338490839300736599772748364750822840927900615859467695340373843108085619556715401764601854722546956540894662623143177281029265141442086208482870242645576267771702187940375768694211498010030702026414670689911772412345905077628374099396195231252000631636024248690341589646508404409885952723980962871135862685114448608503128268930975161208624931020708897640874497918785891150313043417214926916619865470234519512703521193730527995659262524624959922912129521342742834715455152221257088383188248584001423988088454446679558601959789376025304393361798313406479996950227529588333167502920323316826358719674947412039972402210303198426706156390103652236612438430620539934642189421791270079556107930626749930825487462853000795005092922473324689484813205723469931017534142701690409409266739124165826974003035178127784534522188340222666414063977816128951992153067626685504638317713617994067962810974946859786325580388956090798700271038105911329415651951465694320274211708683447885315613453904371560430830112238207110994662476795583991160150144039305003894263238189279912928015734126601353256024251530229874893315655394249874753537932290818640882026324341838867588746347999580809712122260227750290528540372020734944522877324516119938655045445684254636684943035682796493527311491960216718521464348252640456959969979734492814845050134896520569518088530130527585417348272980097453992404582385878892409180597257262365741073480864869254562548747846415817071244429623073507120056808134810986681438874432643436142512574991422612760411688171930866523780611914048185154538912043607688874694409542529775028414450964055023603351617214146160062395059696165307161121173547356666688075433065853407758229144914097026353175327080265673326966165771846956345408306917137607880325875777696710487025774048325376577864450342197249220251571401947450431653853391901601778687596273422572180981122611130941632285548512091211310147260029791518501115717342372779124286118098397301467544474496376481243390413415961700806012672974173600344047887918041123448870043378480539667323485295582514762121732031584053653269620548749589990299269651818360478296584179733738995824850355467792837187510175728760619543336062323471176198583239152739585335796093284625290716168360479338572408748380486357205957953082340716797988020892311686566635647331930203860362857022797333053394686718117223243890988525592245322003101261118419811184811096373514384221591443286058130976173151812420985725246960027706171893957666454209024651594343710155226721057476305428425469972766000453319611821175546485941585607964529036436642544983606415329444277403391054734391034124571051726095219274061687637712400489364737551042186874988345129109142371973299103681500213701607924992183804778934794219831335790679909210402904792435730103458042026126924484493215490691438785945893014691519477321205008880962042981654694459713287312498956285675095704259134191772486212125911140007180169053498883568191551976609934675933406531856355712507663876275143346633589527517274997166266200942117269938271387276062128354164701908502973710261796801985159383152253926257366552162510073148533031164916894339736909233508206926967642353951296429798690527373824423636335096259845290445736423181477096257198562692614220677125325440553523969859063009853786738814037221689164660000885537674877352542668403474303166558858757428267006640291750975065539421128030648417326772648269884809266719554944682324725912305517160027363489651823754922272748930305729522483059652244448457501892857810924709561365725138526454106934329379062467963628720616467453132925848046863387005106632277575009404394463426133488007701523682932456954262321527568745495966509468564148899071416136173297404005601927907793242392294386701938327931664600001576911632006781233387750235326012584453040503452135078491502428131224528274943429886501882937480230753838035152955424255319953813350363632838910508603645979020004949609371413051099035573306739637388091905424533400037241187854947277709647699830128360388739522985077631763594535274565727846296315872842254182020623509708479900741001451994632945442971318656193784989546570925764647752340313066323655838509699341137243314845882145840820945710793323961370435630895881886107901481473524505229841183004160649878820909007624360534141745810230336933376117546547486871036755035177113318230123752317176561471433149553780711272025712708218599682074335609081081309716990054165701484794220717559570309244685019339123525988962373890022666690193797749947722670413995632599156288963820358592178196258440405273922648766465542346107397052701945498675116584026719625125245530666512768485513410477371708290837775003198972283120203293575806650718303959390282145071014195131740176908750330748562498968163156101976078636883222463936389726916523640820010413622370523705824883290855290347914452860266711374133121588293478014315382997207028676367420707730113517482696125569346824509767175630509459755719253339852450900013648902326878731019931069407748719045678014341046702888080858639173107505168208605148200910664856216286239062828508772215336133958188226939779504120735623680073330666758965587366073932240909587242909138140146197335685923863842049671718412118552397910164731991043374821677631454258578650419702510228004156844350905891746448134939218022839633283741312049867931917926565304280799280145731392304838677548149845979890278924717056810739620746084892137683285445995737015684157950263273546798832754838756929420466860953240998575803994388111243463200345576562436720577433438819043163272790116240807529082915864180677573709194194844358119056838202075821144338501619747867303689854277144008788875612000318564658908101948049073468546953059516830519263653944735988699043114795102232064476377342923296433151296868580036616317480508985236138446623381202034128459410522064292230025195171914828792731520425785955656412637219689383474902166399137688667919676464682529535939069752361026049150055545978103468539052406698663074253891970797205073424179887424326514086497868832994192002024656761825798394501962461155195967697810995072927833943306549451909182123356548142917554276965176941010696496961219583366143226869000710542586169006838258096823543774362416111897019536018479631373275654415172869621946190692742360446962850686485027369101479048693158488663753433948938117037496612238239997548873645364297442760368262485882586542615319934722032604675426528074191497620896565478646393468937743095200571692548770848419981305259591993334075244178225407605452827234821009882652167902485015532863354990038562512701397796178203187114533662987373818283106521803199054056244558189820362879373939034267543631650193415035442767943011030394848742860164413635744999698646006137904310159948653067614039916202025483305174780552327118480313854448770140383905815988457231716358371989829504823941969279839381195209615146822904877580563194370400651926592065480998513925825973659368167499848316008568244894694330265551046233992966216315819732301182545009065779722760560001921061577990201049640932651119565360283884954694015105220147853508428644626365552165193279807930479908480656405859036261963654019987965728963627583813402741360762719676276441469059349309767603836790275018591482669902136259349909843981442791144040217221027667731329791717611644516243908011160777761332668275020848324756678454803470070453883251041118834392389443172751714801883314799616080063541525922012998506430361503177063797171885428218137659450415746888535339878664855654208979694360750137061407687094728597037041319066450076759381643281026955844498720380606340074043189195718772079583249106270520466966412302614875689898936741336609387939173747420331667872459863749731663668684216077592841610840361130688542779279414743090564663045016787286568958418687307126064270558040400954047573433974641671158056237973055067883494036834889595351545064743413031620676632050129981102206902370254463855172706717508132289329004370842043114346408830350729108254075457224394620185740555838957091170941332416113672693171988470263725578615239232236592574500740798626167456356347510938650029071811684048265894286075367190808267262935718454775540179710168975418258778853221164870315627160917714044269733109522797773754528944929860516061962811773540331075866278554318809557910400463206153116428128466494843186968720022079371801491234565729409709219257411707054537518605023292988137020925926930058329179434297169375293946718109498249749740795319676982426413026526715196908670685669112509364270660603817833334702949299994322496669963535949133053891385964456962642842892899259312139318488537944562238135959482563420131225233217812307179981724906302861830669632399588876652899447258885130620837924873712242457002946605160185540023493150925378563588798426820240207381553423362545740093441720080909038417674323770648348720421396546723441683403096304577817396099604751963284227956655495364526551140140777672870848854103649864406847388563247296999559490444779466651475482968312572508217859719768233456350104553040113921752901785824687535950515655445633759977589846426636219117949202428506951837375838213291148547061383056134377426989760943270724367768630970154906630991279529314059213260177772512788173125755951402954245339174949583010270130402932448794357333388931096274199644063212189160107256110858224273983099258813526884352606650807341179017803782800375996996627194112408991859878017629317946683084534861131431526906238419681601279269499488172518564147949706330839264859472947882149202922624876348918330688545997751768551439276502576610618203819262238516813024350438300346718946299449276054200212883817141869561321219535578293692023213129467912774465251712106815058618728793028830206883206625082614954180483870785817294290134626784732073628740107861245783891459053952499924846247380589239579565626500290825934516139868945634301402382475262209783395796314014724126068401106048408918555320719156218395093404657939495657108410955493660359732652559022809806208256480162628587513002321254370649818346258496051747746579136017008059038956808133887319346820456751710595774376789808200542373566920362357098547436655158434602981581578389196433101831694569935214805428152622991280051197424387525434167324583229836829631155939479752008051084579849441643999727969453877628934846369389145489251319136394507018042355567461842393397962925655734545311424019339704659994625625992863491104908064166779140311621579186189168726782024842887879066077028458828392698765918535532295253157898582757875801389060870196230156497833912636665718522031052734210118507986066951233275074692035461744511656378498452009024896172259613840184699312578141970446306885011307226054630388730646229937435114173791609123681314583938976506439621713846228526018636534549604540618874541360510636129100901502284791139311395757449104264699531725641854506822096108206208602598907664614246339682972217165192528592844204900518012973995846819711096356687040357168462893848117020854512256872440310978906145817522057145176620903752416145938016655298849815342576976265662593341481975185925216181182036367233101770042360639312606614993086568207328553143577474856435058944389846411352376864087482277431008964491174480649372307933399674094389304600297929860571868225247906673313292005325292648415737689859319626051933239114415603925203330303901098406989053430477324407809049315882008852194844926634311583459426773567844888574048612422015758659357384739401644312340518486729197647930840153647614638138337007737871987692438681026011546176935042978155731000704934884178938521832227113224485562760075724669668745874541606193324718035141335142987568915281543580294999353715620782543943074677058575650592613560170599446540555229029318624294008343230009663081032962093891136649055697477279683569984869308962766067048616487892382623850624176800340321489742290677043052830863906130532141753811324530011259682402736725717049486036276345498561578678994589110003338159845204070369226050528794167564192347762298481536324477496020791300018513423682027233707460418637329350256944497171546056469048841975994998542465464417909952291073352499564300157591066422059730473439800060815995991616338759023388741726675567403436533993185305093846079921348853673646472030112844161157820810908518762498966271996936130210259998749878432353428895231042169601033874153155250116239073876443644460982943712057495665069399952109083120781923456200211373355719562073273605922889508605507242572815332745527438125896450198990011712186121380294248344244098390078012189042900530035735910175465198440432781366526202720234538172043782100404762666065001342134572101856068370226584094097781528951230710752897927420501432971135016218543247781607440244771054395489150036990853468810992634321319270337402050096357870998141482101226634986040962324672952586083417065716364851584546087240514738916028755002620668571611417593585687628204993353020836464453551970331984551450812535937402980973600657900595295961744754566132678110722699526087211669597503018344154792693135154645854444580186287119576108010194884622058918557646743439382866638784611377866449804608952803056129349001042084663360096855019226151716722147638815778811273954076214263218207807815554257018867621060601639702817580888225879157995189848195702394305707281300561222246290019771066239371164534478832497802947615485870469901309864047144696063403672019877144907702062936330578733609884646228349861236834279790624997403320807774023590628176635023320615829449183935818282783710670234926098071933630637392783778820544261343729515084898133297077907827416793171367442662595209920178316882003724223909122713182539778650741032626709567718686197673526897180453941285682163046760881160398251198094960962392557869558232928251415756495032692895146678807732305566802548105881293049552593916256464404853042996472536520403111605779825404068280322795359838306944332484718459496067935185244023407578642647583925262765621465525051659822798314306844822903737186233668554677471331081392914904578871736686995199248926228057159022971321942904206309719547839308618319442873379801902108711799698354148159519819127888100473625151410108935578717384344434422624395069397447298722741066977967405605006066303361100871349313009414858528845667232984781793264688946540670601212054431149274238556415931720232492923765798209856441011873806387440112451786637380510024847932382209659954886966128726224801740886446133329390006141150580386037841256802241966170031054494629076693632966296744290419656453689956401308007098297196951852615388141197970602056127129338880430588913033118409485800226695238830210323020775779100319076080348368000985425757951655409005324963380624507422665859002655300108025159755688916341306135702677221748254866753335009052459004277082912054764010315916838129830257116545345362263996282714710922731260643802104726101809264357331849795029909593230634081287897775746481866808106023000552869885031365816288504075425005909089452579753964169555642353060399873348429582067348764332123869457781112517456081474625450392432552248641561811540632897802711385274658615386673680951904034731232018932975555661453360120133662556835652251317032025292715815392550495039758598180088979563937097701783318655511435850298619233643056912484652793593490703973384971938943319335515648206072815733145975746323656079711191662406483415562853874926777215243354791079227059318245166749231630911150864366776988491595741416302799786837071418585744077822180669791159451790577503884780650398635581118416777439788762864249247422532717939346196890579470504144944155876216296189921867663872550721621245654878030164820822262322776412829238235852880045566815389267594586369865578257827378096544387519644793753336460887932735493381707688896531673327799094521975774477885579055945879322412141631386285029590147075222476692411125474691312197204780570576099874872221228330371595109025889389113575028831683413557406136745816262939477186928846198203481395114396090740466760335691689352272663784648212543628513335559402891521344289516774385342125533700350485023378350142872572074153048703863932091729242135754487319718315605264266034307964951683287327714799973009974074077571850612125307806439118486123478073091539529883053302846324106359120737948235180850281925193175189207477167661276849482898251103330615577389678639568046821258994128352329020026547297084192352674001616281023877476257991571592568361306388919705070053463779592321610710483878202998623188523387681968732232012133549482143812732847157317997513503028169046942592523828960671388352890114412213085731960878440131681376120697395418781113604250787526424778872787979782796354019499510666019335566366135279044580060382489298250387101902149923928309077628426960396018127778986097992525448896074054948821360657226992370473548673723548266131633119676507077658450836753117112819711994927634312128648002046527966944031135998793409499838355882391911094175211986509974287582433912234812227072724529436911675464497653906575681955742012951059464407721559702037255649971877947811957527204909278139428190611608259298975736125519677885719125695415980580281207027138914666373943779488891562937840011473798117582314883857930575327559773505321885481906172129425709540935153663256898672126365249344437985033886453509829426021232143701024479677381094185774739652951773883771085716119862844128848492221362002180043095544399715487895843025605612096553022171074906049963580497735448921429808766464572155899652886227612609734821886202138131585454296407075534367770120147365054847360735961823486053475526538904668408993484797867786414238580400771816209330700731445128604522460720359121339901280535758619724750358488663217362873596059716928467370123094154402041358866567274694755150048725988252658276437939188372417602374478989324239993666263403237491110416840291802525352001146393095177688345959710519748875126714799999450613255499975010773014865750943551960697051947512710401273356801368225833568584604425268184561180990319650952275219915928066169642328487373841155713918569079231467254856859250946729053326555736095144281461592947842155272862795852113613830754049539140399819282288293854466997940744302339802762572038547387611183068127246310047639470868836986654578029362495856291222401976733208980941044212362695406163189436545069125608466022727825947265554329375476736483807925697387555673614294402678591888365588277122564021191099864796730141135615992562535506763686894532772029016050209505447521707154468908999714530079223519889494127379610844615205992272578718539180817669745548180070059503539826066181801605877649972388350962572496269737726752647645791906407271223411667849335580943011138190609057351412464287646861904994313374087021450580428428888437809533102948799412420691752376626942133809041716935764602707610176001173168382933252957584211638516353146569052617488183466997043783739279055387209142528166433662472680270210341588414693041253764427971398734204666134278707823906095564627772527593035783557096912839162725386949157948932813625445562585893886900748991087014123489919656033063063565540574435971252118079902679198642224946805665701311382510855432503056677239516192085755037164605270980320922312769186404662749448313945786991844898204233403028252153906927556799779847022281180458490851274940477311261944746460992440592481930714006636909818941364535552662541548210971843940055015814670367115794882775876850850687781623073534342937082963706327506602855886160026219013914060141433993486959721500633935453762939928651588560632476303531447813106326160539458845921476176609093316598794037652674470710166359655594076572596845020987847640621912672808930988502656226743688113978477219470965428654771775694010819593044022578112497879518854731501552646270847532469382462990504762231990981283367030829672209059453561520028409174859687011883256386438754483125506805420347752105936035580622059420884990395966483968952124539395128558490788463305097208914156517022994592178282527026960143939765423295836394935648687808104173643410896927366005191727209512385555750608229326411604917687770222186661352730904917060499834885860447802708640093412704173614632337929371360136533555248530394143746500920823550356831607393656325068420859038065590842905554410031068210145804830644500678051646753689853927314271365657791351476088522813292316619556513596406053928381447623093672535427567662217403530401181624123393910483508388432710705398695679397484985887746837304695222619371542137866705112526312381688417627868806003329351441290706828231579971260702099882402579051142760330909969522411495597458546871964205093962270755659772579453387934589146227848815265581717262964798466838888125206464340710900726284833623316801982047538849092666662988975711825129603383960037941305873091440456848541332815744414272659364704124623114489457767575338356363067901784187238505998987535652358637888052786394472995654607419318242813654398796888393749580554459911026068965105566339449980841303439569555597809720480917903725841002433163848040480122931125904755537014930014134509916453996475716575449751964142815186216977917801525360606824269840720817037965395997142711428027827387729410333280331671095890550577091833509040559134948835061610298208835856224679523041977679416316786893981939855516945857664985274761719693943599868062742634363757227708903076362446405909883679192048394679747658045386637646992587153440580372213610128176917225437321990663982507219230144224326697268430201875483195158047285963173658538735697352975100960721462370134809672093996421994287220854084794877711547781038459634896263613688729922621712690005124707562437109371577987901488120264220387761151238786763975106776871463214484422131980504653807118030927159810018164700072520889259500020806553783264896372327988122431785563538214415164376778042558041268349214523179612639798303982430450432940196625438647255474642452507818825735520349448655085670429608806769065823448438278076439002311467479579873057716229925367273954227075939083218490097792731385766190105009602205405911711181432082352783801644064433209865451320015348034119935145866121584468012342610997533376945629715440436568163479813224713283419426208978390181471587713545079025385599534166104674389644729836371530826660608755141570370841529145377907439541902946070150788404300658255851378410847306300553687363071075929625031621171955364550641914818416683195591175017029291095599874121173831878242065115955374276542039803703100515375428490667487137273854236690606396214915254842445026730238141383066140735857503646456467533655073731500526433773503851867257323464925592458310143533068203745737855911963565748444861720891535922059858405876616557950319329988205117974589329877388276680278740082942443894649208679803616672976309443569711341857577688022116204557365698232073606109405770389034379424129621722240761133581651310763666587265270775447353256297420101718330930929651031576397054596079181514411185089573331461488954472197988014833758793728186302266747013904164585368296470859945191205643786150687356998219799240102842281706337776168122594476001505792537611439291284549427220138903594270451681570692115403567247049593207414772818475677160670149786514414892916449713435237306399937659003645956040217792772311557204598518969362902589369155146027142684836279066108220656167614872213056463636787348491454284269432037014817126337966567245883886440142494411381200523584601357204388888348216983623137454865729202026786851712337547500849962290356127936486618008200882214279395137582094145961510164625456546144994978854730323844350892531484707615785961154804107803994374950327555792293870355948314740822844960912474346216653192758977821421315546588049415393023528948475487810670592237006707721970422968496603404268200875589239719231650956248086491298320221066648817004466803376549532897264002917364496814254770632693870044750712048091274475191794251566148501397361403360812061794441337129936737939782430058377619655123632155562805393940349973273316149526323578521261222150893413583442254394506050372846813876521995166563138548973534268980926061559571884334992892317012195853227762767199389919364828853632082736927569050737337777140328314923323558755532362099987438775250309823863484762010885311641657480358485707864282027806572624589626154107180279174026041789956654236164474528051836245548936593039747487772379811042417266659457063723714353915690784057478085721427963164696487608337252008729093211348509754193493049609678449331443183359716684216307846194483631929768587082445506472034231922920177613574941449832242487746772359403875166475430596604238623463043316672273628576191824662452889210522736256965371264831723473758649178005381807970595673924148679730333543231509017183460048828014796002516346454242991360069778294365300008973023954185058596370211621578201301475641650271162819413116338254185520782205284867055889350891049645439387611600171889413567427004787148297738964410676193532797971996586206564338294135422834460251032615707528746644387801716754214396015029736509036099884724702180680125556446804182177209757154136225424163041835063570616797861704567958199449051015565189788300814312697953621689212116094381574097974425108417844421141337177820166329066018780816930472850720787259685437701710874573950243218129059320492769205024543614143333041416265473077320607681190108621013096807781926548009567123062186521497130386119653650699834405741147319363774015643248941009094295543703963584886975225994620830909101434781004282844215148337401502957527410965978056651862573830264867918294267545980935351622621643085312123748988605167071014561056448038523742702113079270461188654235567785421872546045374243035230771472834641535984261171097665995316288799723737755053452681770535873694742741256877433777929991006881313842759952679427916841047112163707524455291103911721515739105062170469654329219862838410230654366700949997904115714413241456647291025332426947472700972340485527902639672847768347509787730618252445454812094527117739215121830192356421500840709300343043748471102944256983031414795962953674294532905811508144307734511912462837807853038413260579341132433551793421523635929813421197019949999440226363849554217837432319847928728684712947943937407685666233535658098632272211765259317337902052673561309520291824287288686632909165117825975197280346686951793779005974699444799981008459282528179734606895097793769370504547949994408668097821930249211773346592214576519530568486183185243881695856162468544404938002474987028721301283482834912832507561981224211424363100122446185282199486167800675522921173699370189107656953869437349724125666960093727378214539344174108113348065172029600266102577956124194799771737251893435700272888956875669274525804025441523424365790946185758113303123190122334788523919376365331390911163362056764118362028554678570665302500526821012925598016299203587484519567693331000285853660703483435422807929851269835773843307790521443020035124874203535739951598566311132015749817713300881848665648686557690055084846807039594457440990729180518649723035218194465966970446429209833457150082490097717689107855595439770157673481587549976204485673796670389860770001878645026638069057371741467327457635795417514779012289612898147557640332546125440096486906628196496143736931041620949324922387972977057238092607239100937444186372042775789883435772549826576049310603462968658545223807096050619364431993176176827665437044369510333780951101692877438504143847386316640604190886559309552500425851294268472473420574656446475270078639083288811949124782256332426194923337753357016618740673465835592672972070812488593310402221496912159748512809943302559778535895388032062464732930054603081032555362579484655909712782294885062175145890393526502946292272868916805181800106339975590472134558319806261635115282206841879359753927739323850748998457546395459847095050246562507845722756693415122751827611783364534259642088486869492782555757463799787133896301650873792548693346718351880482243024249841209461554783323795269317586668569195554986752745651114459676710570900236534768145984687321071423238497095344861320014376300480964233585986951584104858769468796058252727912377931559504799613341404648824820706829522646673506729811034823006475410955204383496308605456749381821358234938874405279082609488809430034872751482506997778123314554505115083518810621216680112961772384700703142721854433580641260372581052292082723289587301777409247019139332003897420900098318487730331392630242281075659378362600727687063096242618602038449098229352948580528654881070729886731735340102168910654379718437113959869259689483812687737700087850434406175714901496276313635403213742821925415736938092803605850646595960701932703193010553820479169102595226190465578838118424755702725223285564977622167808970751759831451584743235757656558575504359863461601191113699173318219220231262511853835064155053133731600867151598945534243118446314855474599968035321088919815327575263970618902954916526998346324611902709480308046136505763130173487917448912337095878888589459565027959366884292459803583084471324355198942898567758277197032980006467020174555492105656304710820407161758139427322973030454959006204152759306623229329457734622640775069491473008260396263124564705688581318342291943292045583973227382785968247870478895854655806361104560325415229247243970100798961315840655715731002814042344092491398176168947759318292700250452421556500940178128424086054159188808018939686060359937960817009446121391798695829042636869364950368342783877356571897841451474518717576089624198689821103931328567108156652979950245018615576507881571316938901447074735437545345377769742045737032797643647640824107735041880219713847466551352334815989849063767005148507614188904726407774103832883818512704285469108718606557853574888482242085498808348176033540936182869657034366468678277786256177274897931628128296609328106577266966574393278497935767851446769399343147262868823952370619434296660122710690745939780435836819397713212556854468479779903788427173636707042254606167610358188909895213933534957219839411452773730008049203550388596521615521757773393153352803761626094270869131370594719977456118551221240307705131749465642689537577530570136375473151111694084567615122387646045637260348311296635270992104084405919390678704543530704406369374279600054735979430702777067601160630836609181123830194037213868530517579127728892252524814818483574186603702509814208546080922526469965884961955724912211474980070078745128504238496232052071122273547596800553086180636784869168061551777113288339549274638599984809942934720501501315170527429899493184082114197732218149889433135095755213178019746159522962136696772486088527603183122276318369826839966195203807344839597114138166317184017765853453419224268308472464603662778505376711665696990330868965130038123766401084166124731052236851262611131646805754548794872011836875486669534412484440940401753372619919915348277585170453932379320627430751343196223685399353745899159534766476720323553403787466540444378738088097983329564918740209664005159371761351692849512147705811440708923337403761671223874101293310014310367513598623885136575539761631593227665050231887420403056405407222120390385352897695096788635116943620524059324275479188595955884462759939108052378464073041494520169938823962100486293516486749667826111086271646823258453307239326139138169773061006597350075722306531045100106963100319999032243705411925738441266980280809693650067109900823155027138244067932427624737643057676364829969875627549189740365993316038439496284479133280835064984200474840264639690332709261200417731811020419717445636941469273519963378896317179268932716009245061880471211403999802507995533042110107863309930868919308407471815320020921923917576556571205142407358690672204307883761410133676384444006566803112106141177954567373347531114297497312254286709903832058594997269386566464383370556046535321350841765222650738431016716738829507147390299036734156597384270219465584221864044353992146670617393460389372260633339994083288466550629626007768923343195085360883721139436022205975853812713733725375089042342498466034227851196758946985671995637040136725038729408931561325718689371915780914583454593846283080494206629624028131447102416973400659163281282091494009976089618964765017478881908075639365129112283754625496421854929115051881691614358952714170306322271879661996983193322776938007279309341095804854278652743617708364124252027867065133182058626804778129955114451320586545132966645720812675457916355677073526928466430584854993513985331149473727730404069053852260112491688731755251203987021525818227432773462458408163723083543229897024585189201709118907757229552851463731393423412909414246520173505305986338668403972054227260604591530641379722598171986084212073753924854827274601748110487970074347335837015096806954520977135671522264247066140817612758540721136489998620820433254200040438307307612433266765743755055206964923557202497435444226071946537542089244782766238857087515720100806368117261766097009578464815558797482098439810994569912775122328043819984738983223237408073606308415134854143188235819366964766108159674327520648292263112325949321402676909966945962449907775879893999944226667011489006150331159192916276205636532278976429110287749252920607999772632774330796796823219332109018035803747315440333177884196980477873060215779607949862179440055879981327008392137026450423787452844817594651423073654692802629296051501429378373800720806316360726029176179413991980628060810726644696929059532596472090351837025656034306424279710816104190755445406076577377772672367514750467264550888439669398514883712341809337680861469496813195442539466650500519211569571859570887989873423969748393446855816563350330961199453417525304399934794755040055704725781986334573083284707686637531173981140053195785680044047819240195719463191369651558709409960715050729176516122244412112318377810306717050712041799752605007324501986450790604435779343154113790882261052737366118739634601524226471957370884887010905151300605681999491684922904339433988087343387635007588025692768701000510505913502731028977044337870055359923418036845768766423991997295815663390248669878606163089848015024857941726909063005831023829168708910109894530827674440372232863911473187367754591896945566375677704550963997929563263605322260551551438715258502043668629023772048135733307511896856615482180393336474806407011838826919305506361628987201184083489680395495144710502552244371335447327793379866802355582292180965179565943797180985744806708716190121868974133898639694188930617402775987177554340392456094898966426867296187376864715613290520192771563149433873962987264898062198639785960138536036601287043493585905492173584721797168359335829346610027499442484530306314085470608404404929605163486501106421764199499679777490040424947369998668010208346927084466296527348321483363939532080612837223936389156576379168350864032099716068539223623659002046434602750854518778244824445211755724528127129573922573151823362004268214054956927830782544323200321694597489968413048618729074106765987297278651715006788295318656705134423028148668815246957453377061376262094372970648778117974188197480296199656323088958172470501301824006403989856842298909579683368466221451157254148646257189453574899126624411319711565645084294259326304615802224935996954526216891521513227983662614664354817012137023827012725261495867649755321876416149523430193945981663200926567457249267653121743604671427837245870414991157598957940469717567235176658460596191657588364726135904143377409425960421067363260014856118868726482215611889056769818663568747223708587386114109733269536385347834553272225741604366840871005437638450729000396157519964403814122082167211862537722945910713848097748794384536749036996764987682131088479662902819457195593883838822026605872202698708033337066464183510096159182022910598671231122924540917459781016650949069184511232442069229523963914062683077846743053004205488336671712465801483740534567268126952075802567232803352204120651274152930043534840769039872624300580217503717210549616077205808742252524968243952703052416456604984881170256675639521531411925336969728578381838543402565697486611606522159995439092676193232710010042561372343615198600487575730535955824610075179616736120542394657295237998372047309866761279098835922056886219238863971641638406263503666804008137971032832845721085310889938785221568692849807732635386187956020610924812124480540119502660751788744259884433344585938725691877625536202341244006304697614118199394909479145131795728777073768703698876809485095034565614660230451062008520827970086364345879360923904875789969050418278058392619642776609888247762470648063356823835884033544325761458687030081854285377690412794097669171122601616125964639952451016125278545002771549281043749840574705713028646811467786328217282571268663774403420637072819819525685554560869517485179465808240334909056073054980806753662991039431144089564522468035343085162936785860233946561335402858606919386704271088364932227839770307245534733787382533082795151079103594808795986447549244297396018279652080294938401428147820308928809179120327582754263700088866375152806741015573966140359768705056560496472820842154480276415218253810212473605895964335488230277365743706402511682888806603342922767706446223663835808242887660337343625804744056559471230184235085258463825424709161614195380029623672327299935165279568300619990965495821920772619308017919008523773296274139042910341556851158469609709969508996631243955393066403019059485414390250479592782891087969870177787936271744279079867542964403431658048216490362348899172613726427493568930609983990744218335438950089106022522410845951713278513120382233547556235865272639721223446389771731826136688915215838852590732901906233273577611231757665378811339705920026110309211838443148000312146704568989898921731677558069628334357913113257399402671582225494948796870425831334542839676101554970703271579120943120006216637444786408751152274170408231034491276854036238030254556315776536270315013087656487400314620903311321237409883621182229752463789297193515644849500617716714640535004250168570818271358771836991998520948933938149634908317880754715430778595147976061885303206591286297614829680179064815198904797986066749711382880146231519738329886000582669700871595172113993943956523909061273281639258621706600269223708320812666876105024800241672924105266408525199388427399256326641821586656888865323593315872463280581438754358545325710310361323878228195431689328430477532172139708935207941880453258091280582899838127702430824023098374207763039489951164256573599243548346556345253805998651793608039008301790874356555187460222074249810814249205796954362900706657000818279684168084379705001685580767870263723949424326980777794897910592118933514300789541051123550608379799198667488687355414067369562758608393124006308747750797716464741155822445712458893873172803797708811897758952138763745726102858437637129559431476546251485063934460901043064493660899603905970477769079248462618751027192956205007977828826028388712383743515200876044512552852455169038687204347347946996201598047917404194252048791412793030677763948929509355195457173805770299078753877814331633926530424114636508572086937903588895313854664264138483237940820604906379204280451912487507905185430355186245093083976743148545026559118698445554476721665900435934236494734909089879422850714715757967416492923931733760385799570979381603824548443456698506600636036347552110850953607363080875120481431972011183726194559240768354606897103315981005483864074008023391655722626447971820288420009483005016185683957206947889470641715323719714981126050336691504566911008223361140659797299467335014824993550084606343545367954881372082048069627485842637572734617513946584244809150393244462086111176731850483049505601715406525014605191357985541948640495967965493565376991604773393150584988148158584091928705836747145626543710600255905720545855259594654217988097638175566329160558302414319942029376986194359123597227885471824710484137589709398357214017830240146152872796452093016639198707420110599918858509751297995659146012415595657188279708204257126636044002132172329173131796515348514463333238691665970020205781099769431799897974888748432739030323824069288091017681682681919718921084490428284456152775326300027398327268388638510109603739230375273866411914687556414295395530985468890240744568539697817462589709381465553942925985395847067006895863527348546597713955968231125714824591066210683991616823411582718793246189281682141702560263160726840262815094968108335896561988511367096608692509701451357172331667642308471634259237170039593712915141710620534552200969766807503439208651916703375333804750131330352417539916046669752001813179233491374197018028213770791877840830768338910712242187145331040120164055714929984927962773737867604235767817398319856926397563046631805316282430130187993533172651126137836878247096862960367672698297860182133013643881294898609497827296059685013365383919182260636656968403526147964815351113325149045651081486397089398129443592936047034002713522077889219744268550823395553776324278947586878421486553339553666322179740855293401633241456423882926102960274835250070205372039800115913652142548134452558247647546569353376815209331889770923673853963440258824167302839141049253926895975575241041827888991960645199142824433969051616264565162952456544358686369189747505890310388757122543332702832986152904534391377869928154120208075720464860880458368070865405030293802997201002931446964742580576378588817988900491035847875008925807284845645383174744108600862500346968614762739800918522768229360800079450710386799630945715798098353746436015974329570430180255293982941456221631355066918604246064208280931914180972004716079828363186823602136975105061767353415414908956417611690801017636881637006738291032212968984221432928785850271456644524834070538128723787169308050692093927838974525740370044271021539399222384217649049184601375472366793449689606838884075254745668410159855578552612252303266488597798734927367545403177644324208483159830898127019821229580562826505953026315932164664595965539257227269557556472678480313521789092348958813177678917138731866558189499628821239945844450670472690463825289880518619051632201068535519979637485722038559404372724931314861536102523334364622901943226363164767727748300669578511057185060603931480095290254605478955847189184423331107096942028329994793951183984456669502426529949433626237440520855062955189518674825494626442215679217747361600477145249649635917503768289555934839681704551927954624316554738752863546623763944836070898479752178545929325890804230155630605177955734565218956620404622590603586604336117448650723360640616477311493898174800878157405777080062301358400180033781093638842742412171751843406721267499859884695235179626943577074799635780688989169028960761303520568798274494730162941329067141499629891869199949750141656084354115874138835522966715949144867399812548225528780786228431685779765004495386836424542790977128752321985985985476434087777733000625289214723126968471602434681256820271759800104456940793100885542747773426347398203113860995351164150443939682865040463661845005439053733733367506974723762361512897882653547979483861383276938168656827243795482572433529519302385768522779825607674773679480105148127353274062500246234344359329541325840701026704289534303934858900866757347227969721394365540250510014573072145368136350430637967225035169796924498103068569428197163661845162681893023862334355097618302907645129280810824811169595750621807044125997814055624138603049439541354379561171392757706736752130442628687160061835062792637059827294462227161712205883065862904296399701675109862691616767642758202614325966317269958787191850789955814374054398421825128650901833237787457722295672834093836762296271856600141636891148562588034211412071042771067546072416626015329189521235509033088928879906828330628943732554436804839979335071149199046745850878688093466751876122249402211254720659421760586361712796988969480356630474828096684853204865840305049719723958361597096764169997332659046893207503037334751592055497673588812379962325118911088303507488601227857123145245368606217584840109882754401321244339845909485062131960089880408288585684173802295947126010726383811618234098236157095960740881288053501712545654144742069168567782185277906362492114240998100100609662911330225226461351789341163397583125035709499364446495318176614003546428413280378867485767961812446287991000228683469872162732406357220879931484083774083748867249025784457745578360376744878648900113679348858159799492896866431799790628809460805987000583420314052569086306790233583847321393215176190278463081140940707777751959413998199305509815697587023212390812468238386108763120633395554172991624915615850646197522418324691748878258870686288495991980300628547558998943842714799882411416918008164710129375348341820498164501676638521920472078073909611078097755457946853736699815496179045878569819190694434305502307486560058320794010800592844412817378382477533777688104516193513309532435563807865619125299854869197561827928116154725888637929751373130593404564612834752516960758538542148075689638191073231859509997899735480218091428567105921225297953529130768144467773924687610381980457496663702288644786842616346303725764330518595641862198063055190999925983242008692253055584406350367426310193935550413879294883572303709021178814127418780055636591847347921243898240489847488540146429620250261233770808693998832204172883328613895153983522365300208490585227321673870648614629349033181696565212979473298456493863313489572585080746172947513073663537083181054347433356836292798862079847473394702686975859737914352551316937839991353364669381633884555719700888825424109395282674323135981803628036991587389884823910112197823299626644544161301689333708998370389770050369464220069502832972070351127142620907310846466529340675513637363676597524388774640399284154405954996839557749372910911936998680025032824459162260960072216908916297397891223021419666051596020530392886167898670718642817663023389056390524674780477232662490928798449757439629027342013492134489986075538461368432619094510764876467930069655324652791301382940493805074035894061339459189567260322690496739959521683915881544998958351491821292038539487602800782905187440947160300065954438087846644850135392696031504933511541753427685072520532155697096596650047623738719510814684958587318767412907391059001971088847387771139143269779887553637766758002673931397273226166572173761654208187584534256228323500540609614567930618533076453641303092817398267696618723775169567142745680567666463265753602381845842217200136062741778217377530506957419090186025192057637407862530553731692229997026221844123892509391659632535198567889080488863169230589857027326877533138232703554567729462174972726650237748945008409899307403697195980735732665718865500353131180297104581721748626126644360525451071681087947848945576443957130611518294906273008923169480727844009897993366834574962888365088034181244216817980438967874850252024779323519770378811596145310012837849642071007630466042892507810875445196734467696324099174734544667724514409643952589435049854987786489096779076835724585929771948368644370257836788767347921729195357376990768541185736413057710314244310479613823309635650292106790524081632924110137042700379469986518545094961912211326562515485509070873923992788507574699437986553612413655363518123553338816362994320447250022006012243725102027304627210272348614216809152926628659738371146054399338573052251101274105032611358638937513076418759286648076149276251693629519404692066298083514665198471375981730449925019376008107247749206996774825580145165271645150689829025303829968251161861701276402872296827675467906782891843450778120722060987858443840970687571782253422777374089469080487030460969447519881643456439563507346315277679193530622370170406123775796277622955497652461031123901406166855449440449252863774620939527696674988902730763681092877805897506807592267326744586500332983590436805043860821870507524622101995960832597396711816555363110968042733949849723166211348635591445719964137539483695428015102092010487234204197093374348937829284448589362250241430069595404174345773734156629047640460712633123344707530911509574537938150570911580888840227115684054553105611154328092112626648192988238702605525849920726852572891661664909603721683759529803603266658298744824059571279380634094124188000701963249555008513570760787765324644941498651117322768625914412708550245085040354035738892452875625430746882927994987193645346448204898714540595876907956199059696190203314497546852632534195084969880478263458146076866212633472769534829793829016666742882941147617228578081806305130383625025387890296190595827322719374258152537706933381971710604934032646231273403520402888619129983886785519608925142194541314607522848370862858515958575974551584398944782029232178621292198086502186903430638027740964276467491456620085368630171950869865097676402517402362402279565376416654260222035747978455352009351578194471309975748615071569643419195387450238881905654023246271117009923947058686564738310600313150326377767849001952261182167391802203190091216204493578627446247741105219142115569707215955405828158759835754018589681669568296018541377085716300809712798667639133548262782010520831501765175350852781991180664158601983178707571144200627345280620156606535424109800691307729980435010748632633000922970584643541053083221054399018162990492698467813094054427318849653594307759459072935148233082382725060784409815096757938747004205442277698042619323260318928156717859897930849586712229694172385088579305259033681347483860384669352707229971633671469456800794547772135194866269911607155693606169260393864185896456676037912704817985007909378902587514360283606822642382360448091331593607532673426746776107590448195751272898588056341347604053508321738105038201847463310584080551970302601533985165582813881095702014638493174081394246700975011723163971657717512732781337322118062719144321425444537479174575172720678258475090509821812570026703001657569993517385143214538668699181797087711553065519100219304126629704757001557572310061594119708365727628745104838616879072029419548990417141045934182373616644281058077777708642081820802158601984177515044753360428308870545495238007479219422045868599438872834289080678139902279759209253080209755975323578564083784068271043015272700023554775694425142537580880653704127145389923676729389982859554125171512549276617119317482319944764640227495634761853135823695585348274983625827374494912419924958753943430193674282248889973045556745138562839563307689191034138537148424781774954728243372314708131546125032184224120743506148445378665830539289430879903161951377189397539167137983367147374189155202233397238836960589363103704757923237482599079639993735251592919256870010076121815103853557171313555327013699887577290563299521993578253240149760285407030104163409174811673064669165560866325962582232833360248391134190930112446980498530310503833311119990027165142962479327754236707354770951209588095658036768876764979533344533678447729135260025855609487101122345711683527065913620438061124399232339610945668691384201942184992451571409403678484978204789495342523830963783056944165337421733870914859340275961398873966980649837489291592052453974527443946660676703360130129082611773242873654328189714087832331727220074659631156421253910483754025476166987231093993976244573572765630245970462986148464816326032147615039261061414492050075388913494485584700994409238817476237326542949251421658172821822660149776296159733530514208402097605046025707749444514343682912358814823254244190825513116964462349896307516181883093108729908674864330326689978514499564683167211894117323012460903598954540409570531438088604704301236176688314555921410299842840019640018438241688365100774906799589687352150477969446518087311972033907876421103569955542739238032256658182441409833407688521208082222606699710355851571082785054938137087444738898548615144203925944462746375004053892129301254298903727338208709715738659800671502606238178197790602082295183412049849325547459285990721382948767176109721402181587687005449297037679053951477374692873249039378547592911552901269685404764191482958008058986023272598879386756274773750001250560942745372773593378987700934228439230950182019070083338472955412571733360331613463113795223094525073863209431663596059620802208736610485364957769572748096387840534501143054805331471166114189671411503091935501166464739993609877687011439345277783638897366144800633172285701070583100246591596160627804548081483038078491327619615279646468154695296637583397251861234190846138600956269091614794025513630172429990827727699688207015057450955002343252998209649758708990542667762202850885213876936651677148040018557381878060558521697478477341473550807076980991347233478464357505572843384608555798645559694871627512083203435146090905379377919584597955425511597253916114386286360879956335778344152350590570273172257824718109268055118115630011492320308383116195142985596022179767822872639240191644974197363821768657335002207677052299372357143211336832240754186839513735526851535160197789446185685273875913579428282547493911267206391340441208142558168968214376221009552239489277805864890538186911458580797075259557403544802852283060576441101333365752576905556751642332048470016242218504775554001761930167564968277194810085265706057122655677254954058330022069414252550080182531976984131211714340978483109540773145901563835151015374584348018679917527284502106421980175791119001261348453285477602084675061739940470773199268118505439874742092479491726326748212278670417579272927834096692819803450277178913303313441894008056828789232343352374421048933699993554794004959944512905064804220462701791851658125887995348116223836265730640374481888375771711100883070516914215390166918615062109023333274282785692782202414651446722993562198230076735428856995096749956995303684484187795173466138409281009740766790900093244354366111648535412427536098495821503358982394156731112707197814564824609377893340846854682361086963488414097011566650174852690266839733735069320181897199024392802685954255290044827902299299628962285305907528198967679323518335154869496803809046463188474549724162050228478558693959820869598578384348899236464604441516675603180265239041502185911548201874477256146951008011467251613353011731723429181753856415238675681620864964740007645579371117154837350598530797499796071550258727688975350083812193344077841610958718698813536191414104567369488901899743239820972633222181646314479111011558146979719702765115707821246143483186967371212762495094168760278972515613344511458505512482259460882867588707620403554063997938551983745753304238757167721654193563720231346257931581027998102652111180607593835452501489125755767481337182108538135191525571686137501946086519506574240831934747096265919330975695440001055420196361971344760003776504557772107739991971497213484639001737863824478530407819463445024996446901447992084098635628354358932573605395790622495921284051082140459724634373086473709941881416323031339723502101678143832853089113289819733249461992481865761729772190145505851669496797476771045839172678593746283486010523732177443600469441433358288272191178100799442342246338295024518428369755091344957673532163827040997328494307068424502212972006771961306667948126140762608724002345872862002657405738879703081147326255118740204842309712645239360026253669174699590761213491188390867125104305810887646517958226736703288609665366044110059375937698832249470394962122488288832835132241840981880261371620576478781753900212861013196033030704703174140242597089977302929628669407639610522950870761161267091414923008550904073730423468553861175678954736152650425474185749223760745902367208706227844541828425743383146280187384816580837711000266949603100377998859907918905851653063246001081327969966551939484263701755028461379960405791280466756100540782221546943216380932199979316097637044163250895466214889255697059113209399857939576213475799251951364399488650056234425844862999066067872896454279560118890599314510915495998854024960945315470399534315281086006609647354428339311649374146899166766513927772786139446262433627452662652609599890600904176763424433184098971904392765448037143535406380373473701380573411047079074531348654190326240662618486216504552477289187388034905912864205952130796483378019347686235056496767429208650258282777754420416212305804253345804733836544100550350367705186512988335129060855660195955653785615584981664324300884514887867924828778328173515046309079951289860412565714710923863689569548662465974399232622072369384242581502702072350087090457952306304482508046136456715642859257109322020356139728416050590764717343190444060144551179462013117335012057043503686059978720093154004712028064002656811672763618100453553311700946087706196741263888977531471060484835981562824678768055000753910692530302467705855693150869439258943634576773543464512898131296341869040957079469315402703276477587397464229137355874386420262238767962090124688671590942295418300558136039550802854046384769809974902982940680014233476508051519192753596148154530359194828520985193461985695784579631800729447282184940710474398265273450796705709369838086817891961942281322801703672361674816780981559191783883191373228094650126664914346566956924038093671896533600397439963100359324946672241729066221899964374059332701198362491169115897462405862654220485075099770518877203320271871918433986722040063134401669561430576046401283902822963793951793156558469709997243952744888979604519935004715968868697994186516837050953140834351442309724685145564366811315733963756005057083234808397080846320717489598908248190334096474976068158028519780037786348776125312228920020602304105201213405622352580639615723865035389514269258898672559219785367452795419780104194401089176839401734982502248400637106359552204473653998184945793340148531774200602939446365509861147161279833195847781823107419755847085135891168851925671681942042653532826882934054198887607277359198710574698498539729185185492214689544951559161564732792932201269497011269563994412630899978562487556654696061285659241428901756808577537379577173535413388314907300875687815581887217125390499477720229127199397157730350926343524501197905716707067324856140283003982812706977644529704174488628331219260869296950411583999137491869513503708766880833538336937782377294368748868008628183038532486632774862819164883065565301045249657679853516663354506245792260536193031269702155015657027459736718890093849213285438844286140776033652616813553143410206543919341018937318785895276063516694487206134026253611601391377294935280296421924062727473351132743194013848584952347653507344922818297851059413531252429750438644730100767105758050139708130409087183520950998918190210639107341540224999554192993284431666162304123499520682217528643319217308510067169838897269987008336380946508346470569422832982976750514056962114369098092835063966124722610060655379023796356345593678976488956340371316921542938771087025801727185520373906336355827925223387099168111792776470722218072516489302379606010856425571276684454721681654343555180186325348021590001999191265970778931034968293927479811052605060639135791019487078812084303447187420985687846025456186022986147461338673696967672244700633063416589657494194155862614082461702645637698155772903714240583612556278288142600402146522727563902915236979040246086399215002945066273072317056259747577685267701890962871187755418020801616914812839288137191067208838608571215024439326818970904379712760115286102676565319496667687012358908372567703164846138177788242323537656041546264208255420555926811546139959675781116632201382283662256652053829242560645629185975664069150468754873391513514311221009343127340324518455766349983212107259728397648797393502496529152868892236750147926972171269082561439393259594351457256200159788400791606893752880554107275980375923539630772890002591690075787363254159350645420104143262064278536969000977883502279119037133479965040123560597051983819372262184952633660369764089070043561866867668654752774188967195199587063649451225887657341164777934192819200915909580691411524122898848396646326477901487409475232357203503489137655842835641610140260866710229415388651764669088269754204916159067379037692417447945881207623140948707816386274505655411607791424601206603029514639824465631651070010722448393186530374545981274332499552299127244918276667396063165246146089112755775440260723351367941040416238874068197248957058469115939059260163894157278308271084676242418485124568662654601315058359576023926529202253846791290205215086347444991514694719535975520568416708569176626597244705028235779231966557153751748337167152743348606004403380435244041369186836130359313822077657513557352558594820879375956784136957509847049498600519917070384894280216437722257972448424688950689985762904129420556092408341468675240975715540974766213330669413506712430428612041505257227737947283267467267127238445864240730507427346303415801943757417012660840482991907426535176828373868122288273365249293393061904855259921878039175923294057097150044987307262106142382009794692129297109914917415278904600755479329663955409782319818868286146044635148164167173401610273608691791297320372111229482613905138622827601215114553202987883489898846310785610472635512547264280726788339310925994730214773538386245205671329352270099139493278569287218664353326240264999014211987706724863279464331582026084197602040153517567004509770699900658969724479657087196623420984562776515304569077576071693931303377450791374210959942711478993752276909044093848394616459345828356979150175431433147230158395252098246130701805530770226095568161599495532601664921708477242108937243465843774818782559452058248646510349562315828334692699392498702711105384204907416819740815324512808970721959412257290965924839380279898815259537408240782800172921627956391570413568775244299261205027165001096253405025179188672739559010784460315166347562500598725716561379410162515286904728714794020479750546109665191036741495362606905297916009930193040495019139765347762121072204273899564403996646263823831135906635305221772601793056121831735590502141999149389055722034045678637535551879941791176013322476326634037117792567569806018621609947051517356312597109580914281640006692020030463035580366223645368872536318090482595060156671384298383886688167879843211257843035317676856206789067646368994080352272695304521412940496217206300395608511838650401849879786950952030015859454618455801854535213671433141039001432193422554785228514561566693056390839359217451858186470631388690227143112199647583325339389576274996175545220792661223715394439563755653975196290787216867317375809458118760547486289173873436751287406774422507859843669898240181545715711853961022879723675446072588901838837862219006897809995508182288580311924498377232904658380195523676615644899130907377660777571224808251191885975241958398663841181609888218711254028422649335830787784032302493537186725655977494404810696680967197224342688855170243575095624651983707635271305465808361160088814225945155769764694617137743140315459308811523735161646393905024345165590001970033656299847267981738988038672023139453685353568882424209256171021590077521473992290070295091346864559863846092551565533987461395000458026720117268090314952657785769477163297416480307898676505690804003815410016940979986833285881080335559064042642499422007857083869056292927820138823588930476214774663856974852810247999310542914181117992609560584041932540838100741238385804267927818806864345978008566156538005528192647727068912302657009444329932513215302797954611913200092073790234992921597723805541476834190901946612763571149193246185530556878990049015371273590513777840064025090384858907811380126402579902464331900238310405403523067323797907432302928794554572302771337736991769627378472129857454797206624491199098043898418068405574344250978639700528960962055006361545799156817047997847451986876754579265726884937314722820718473036083751457694286421077358537093209343898929578898102123385443509946653933327224653978129269105080319390830253914903360664038024928111074284083760950762930037230700179177369247086995792010859456224538309042324196978307219700562762015080204578648671480258311955003387783333595242014686064289871541671190176103888886076816876774328509877496535192048181729915854907831635088441482654541908160864227341136155360998643077150446546573054971767312005199519661031805203259662239869773021799203474006068560772985911991663735326045062127666023551554348805770586262651300143719753129965223397682447130698691128338466062205919086923612798351812008798203823369440949353787278349500840666050695045472231745006464928678803020089621312821545329162028498283546639846050815289141971355050729768618146818876527635485785509185846472187628659437362189063163477169648539344862552449498716837285440006656950381018278033911138340183512132476430938989083225034567063204727073314089079779968468757082764331661585930199604527307275825021794793198889495046982288149638977461089799943133255608137417592347135245572003994720641120849381263585051190717332006054420909601608346078222970155172700257190127737308545693472958601972295183151911276750888251038397954806174651140222777336784523095138236558544679624240402814326833846932281318174378007748262679574412695763066897375776196806237276984797213926620940853139876053581916720393945618463062700927954104330656488330594503668081612478963780244563596646543339889338104192022570586472996296711529405036597124190719134234116219924261002615208965653118860304521553043198679668026412178980063833945975364191267662632397367827224768933272446979159203993202510902474569513574989178165869429863328786071611801001803942377509370092964972968158690649823047865387525649583920578265675274898710191789915903586005722812557324973422141343173301697284278479671443716927925835808972844117698573634548253183446145679458042006096631295442024489183721183434973615641214736146771401834320612027525244116325377889268345920972274768102108723436656605260779569707088559053844240532283157654374975866829558621316074164324003736497514479796285789080670370297802499006484595993633289533608276847799898186529005554722139306113301895340575131676277022094813499323446775602053991454061210337760907857113355888292105115729724918072933319038347316041020217832785428604560818215943682520545524892758567111603193564592109530606524317795653263993454350658398659552351550864840223240813470793308436747288369415535778830928412065227901326223239157901659625977114111610087307103558104180574431611103109685751458191298181428686733827506918814623103764540149572056657086169548845265760017277673938114036051298846008515339446526139682187480089494270691067397482458095757741960504336141066746115826602541110396445469613731098844442840874070046172060590058066291410178644662657102851257147509711378737849216144898668921652464256434516666153022013038820073817107032176229948691500112334684273995881514485994120901930930131645495069037950449393207956771367950057135109533627789326507666138572716759914174617771393466197339023736865574568862755485848216758329710883167041803149743939409884804818149678042327456949327617430083213326897772487471693837911006680254956781621367935971815002395141720721325382451878388710289419002389490988485711039907949847851943580877114729527507679173401411169186523436743947090459411074315834794036663135017689390803050475379588061253279761096185766266603988218973860560206583558768325090401117219002181425802540586866366602010955979705751042575175694027736206413088414164554747953986729916675394043291813308289825127124060693119564275192013757163610923991688951955443693832315591768359904419279028209099674776189037023231820305916626016183151533613546495143945181184220573632959924705360808937519415477927217816596055493023096611730782199855333194829175388491880054715265559867366175510115656675649147592949071936400206986536423259298939644683190335207740174624685919301428358901689360921286130437243628093654678343272373892816799189568765941166541616715855949651930957873569554966807188765946726831822037445620623802299149014212615367460947882638756640443827412423160816395350736518963198797780874701019550948112902586889136410960229258299688334945311485636767153739067863851442705165306977918192722567813845603723198798849185168207117446792752773424947865292456859322395559159505476154840789874662649866127060626799160436107739085058175591043474105990797892355068556657511194619107767262486807285491076206823918246550592766056900662160317085117022652996234895824198240299579639530864079627259422342207801054140518095060977231641068092407073253648623824004184005869969807247160061919110490828816673347298505480772809203813249532133339669980695128096002479805184016331512833517265364865962080014340211550257134436909586329957327168148746550229295459053921304622083649002973869795216986394692257756095002936694940534831450210233898190272555191301514757991423931402623441446312304774935080061723418332227930097932440235446853190801390551339774336002084137019228207335248636868226635777512828999934623484261574373991906528303343388147453268065608327184614727513913620093458592595996900916871035423836432189356266070565022518785405300993472766408064380185827205329935133023182797022164375835391457610120283136453210360228822847809457162998512503279680971022994302142192402690654574336036278207495084304119519984125982228059039709979699513274963791518473199843835991457698479093131506051656140991332991577541179036583668009006267802380755138465217248100282398403507675140870742479899554236126492343794051381376911169652964349787010676771880740484293055488471023139765633716701634875815761521029846114143744023096708835872688709354696251557083720687194389811572023487621441322968867988556213933564447690318374030787204650243635021638103205586598311745001609700775265718461757425793286478138986051388504590535184163216839670851203482690143350118918657994486671051450530914629063904038531250219305470119625650528725351630868009872643132755314160451663306496251365746128546310470619795454036887954581429983298072397117147316311544140973381444219266787757937654109089645511252382173112226344130766352583896246981511775925242559673590406483353197711502172796797955585192859434694676819389406240344676490626737687373336031313349769452241379795804350645468578427238524283210907512181074099689559979009192884688061108431139161851196830294817975300677932573228748199221054618143194018908407005209359096048281231255735374394017009104708110034921914264136237380956133013417943063012602882209201024978469930479520833427680881871267074991469875052523584902958813322843468917016152763033215464313830416750452924197990188257094272123106230199000493446058851599396545867384008819535067350992376237836431234797048189287228698049054052827397169906209340636281365782965725951709902495961386373941677967116299443823600924037845644932765777660777211729060246116807610375346710924733860997149914689262175612954455331646731333927336127584120700290674099827866284706804250511701819891611528556592553487724761094613472949487749309119962270277142714232197239253948080398720566293089462532566590146181881277490289791980757830601159146855577930626400476086462954413224695391864760744781984438933614731178330515710371658670632876597104257681535293625484648056556061846747730569585092281207228007208251131476221237708080355045300602817626523192466634167149741257982690072931822565216079010340056273307934767954878256870918398176015182714959661741519647379515005932709094375470008865688947390475540473758313873241923130353406132170290480837991252031125578150358526861251152324121663120836082499817297343796738467537790163224427844149787790264679876955113199456940298345400121392625051894165044402030685012586100199218655136003848588027005589770042901879629267551758183663895905813086919353913777540846118106324661123339534699784472413801305539427787061585375175857976919850489962441679410535107900271381083453687329782569833874337223019884264560410223203404261278502284397288558697887822881894333029703570172110896660883088476533256883978419090733602398647811656783574726557408308859636790365361679909028470114081751157993062616222359437842954436968956182554495173145433859909015779941291875771946483700962438220213489786097848285787268773376180733279163936705417971812188051410468394096015118943564511092351718903498758017611083321528561324878531367547177771666857855137355487443111782057551330166423781660430146977830288714376827855757314525247493830266805124699218923728584861599568972924476196178396242241704875209206998226899303017985921855831097057341788902011901146834327975749844731300637423032081836648270999497304583398022627658565375915848116647731421159799891835133846224343376903790641088905083505410194418121439732988157102138699907193159078572604034734811823376443096575904213474560266690896812231300324991510199334653423140463900005732706210348014819443321282786238633437455306748055918160692223732695518607118416880090798308654750417681600556265762871073772990396873643955613637736487244814496597865539603453099821879045084885868272541919587358329417827409049490015469314109313805357835903953954736296915058882690368959489074442029262594886226356838784480116641645699412325498096882678708700384516482526528408431780682050871151418888656348952659679166637185107997223747170520747186669525036549678825955353536686097451895409607610769148412892115208931290761416147693023470080016965540277521957551991715791680903349846116464087504289907162123816620070150471818000000181430230485852401297588607198308614683921636771186283599229007668448795096028547591681689653852578334816706685719822771336913449009799152556166335419298881981181566318217066784226293300809128643269588656180879909735211092439140059950390144211478222075550845296508158862201239041583445858422943473819910447144997444899016230188803276388354286890465305280271426826994689720365480708816039240449492055123429963993749530160215914174828663027547800196197964977544609906005938562734503424628673469175194461463604068170116642773330921318938034388402880562702289467711508025724078220897729665035735422067025318684338782610605633996059352388476698323195241265300863999465034729871948885056396342252082627007241008783070746384664465403002206635790937539516322967196126161732904635404173022607145959108969531349956619691574145958665863535289581378451745403691396172380668250998772603182010858693980192508253507209674384518454928967257806285643706766636830260184261306419580976374691431197885005510073394775446817632995487616643374001104462974856119040500860674463365950431162212980445214651374139849836708027998363550607904463400961214528549067733418215477792309024924616945732869312355166095010095876008722305077754113139012262653471846374510539944601022524472086087016601876335080608859383204808872680490528356463683830405785679376700239412176110844425782168117135749283529596008357558141678162176365721103463257604444817132475873749047765821310813956590454030114457522210457930489606008253141667619865616058074730524107140228093126832398648249502873224296049991599948387091820669164939867982863395621296613078237995736932830295694993982630743470343554491177142462292321359044303434835847803293283502035545465927061471681043201745669048635023655435258884958630534650315172309846682356307544751094540250186116496555060462321729157815507382392554622742272088314384769128371100968160094255417136748206788283939809699970671189577877971498020568278163929680726146985078376058934412294705891602346481320633831195143212404979917162011432514153918017793811812537665673680905430382627850525263393969986830755098464030232618398184565471764401830953621980303742177506946128582067328348630143479345448918353315381308151071576468412753249714743615245374069970419342933351029407555074938358244171252256530648595914170936311658753001253923531254929555755377741398374342605251542052280519270721953524826404743553083254914681337833433051852277902021257774058457658731924722407740626651157786072183786678787878615166127866944619713367350358552353364769909798272443771759384200754974489601629997808664052182175232697603110864728918230933550934691301942118422942951075014414519016340551306700438702486699063385473628225019485917837024020017043423434499501361332633307379272989746623770689698262556400769436543223055667886971188155434552872387494707686981543236166086148808337081074090854097164255432596456487395954043872403179884402848967210004124308492584567492144439983415056308364899509207415760203543427825731125558232553379727386722152059982656392093044564557627231766772274625562269104700345368716560871880694893573750313808514212346684519188748784646105774651396642851144453808434740681737334398885244526705862653775086820308886942373791193036159305388850185063864161338024589140076306870420426683978866345292202236244736470102796688054377903281757114530915490029448484034914348814605818756519501281846716785930139220098506776280915587685825430382866346318869694487860870263140016936556127958939110758303375138276203288117271049068956504699303228596546313450607347080981603752917169279734319755900800957636135275842131038668647350122824536827809133564684799260639842699024952874033353297826277102166990268375734576954120584968093442040067905694904654687769472350217652725743420457756665195935565567053079773302121691604243605984128401036961269644316513124431189285097628292421372450148171883691946363139973180677784248089119172421398433160382562383113009890823833190757063297021158255519181377187944162293720491722228488090943583553265770288320747632420216513904731898899348027364959131416514364061339222695981966187068796943563824560103070610623957462767598852143232049465274832659303951831643602777582980718481677605399224984154227167949916092906603157942091740393036651096114436645242715132976711101412448112907370941193668886683646654431431111132971724888047954028418551822204174199312433813128946378177105405489453873504713218034752388344125541491136489898943952149948608622747779938133403620777007828068374076747663710390689442740208414252625642840299987961007385000403396594971812995076799392842004892014895129402484364741711554459660193512347604251593423823262834961933132539809842628196038067660199873763465033382843991279767697439889632921092203668770906317199858926856326425929703023093228389558822136176383689103257122450432076768214488481343892088751066402112575214344433000230377733164230265464436446108493378536721049194015298610547761070244528472506563891133158579456708031410694751172221335959252628636585388131978151422374850894022963150698915199224909330705619276558617959570907014418916777587925543868899772943194594111869331088385463527491253922778521586717129674613718745125695497107094740008205704776241917677820365949491443248020639803082486711065786759062374552650027028634701681974337975867764731455290116842404588487170212466845088127153778164997926588939085777249497486195155633847548251422985390540285209390118598928804177063584806468343931690475615812373931281948733306919072383771960595593999210824110766043380920046706630608804628414752393543852745138748971383166482967524555289964262170232047405048241816135605991830735787919348204651887970907190581414823360962504413082070171421443926347975572892677896201330592023073111323479011728015984166664346827587546806352605755908257745739305959805976177856661189815158034981160011410840042135746164989619561027440506881919374757104634713466865778805446482743061824010765232667625688203250578505796715030736026891058632812339309867946727448593897295080428341698412209505951191863351791918712574184704928813041910686733027231891001869832644851403598429971661214245351688687402825234955752513654534746971407828849740090050486954056278520907269658806015155320956086084927017956983338347009057191243351227033582942519508667544733302481310930875307953843891752067906562383204055060086231032504157143201007231536406843522847096834837151113486484187808914873021750634462499303004506782537030462947664719837815040564296574795071051591614455965913505160521843127935260577645595388597490472804041264831271694985410532646214865137251166406585830677979567999438615527144042072361329726968524348683030964678324447993095082123558140340351471845254959145050321650639484212470795498357948698937452947146245391974755897358087216346179273173610790361229751915651828938786640849140349001546496070971025223890370131755355968453223476330699480358929569497067638667274959494833318225731995333424098744353777753861847623262103107389450929166480226799305845692515338794528082343120010661318690964642335859673276462777754646011713187625493195590623438931416342063758491772600253037825032573075978411461639944699923391654524959570027054806432259171392862510642012915316313006201003615792191608196280092306126785849389415033588838375641454490362164996294418960411729458505741967879860339000881182295845697574798675712084419389864810337551041307548793502651982111652150947139973508588193386360319087370968495225474502256445030657927447040023091983216549664565155347361144791080174430910291319619460769960104060591039326691994232729580761530623199910731270055175719781216935562021840945662008926931801865265525514327714050847356921572316789907204330178311912360480630871474181138274478473278512813333075915636743394312885249632577414614107451899740113136960498520860123500370208575802891179198218568931354876429282983988082648886422604670359550058756870104748647040167510029866670212405467892686478781782320741279640594238926637290742123700421746268239235216902995717015938512185976305523234272388022801914645843021433080605800073004666547144982349359593931277384946745088719573975135214900750482243317671966235188162025824631186209015045464943090304248920656963667003558186855654952384958239197720155939154307978397104426172506214369733058020770653264241800373251664670681016689993471831106847690474038710964897055809137190746346532867388164591970360892444983723607355662968722142356594387855719022351672933518846149906258848417226836653928082043809316383075355036798130420903331652494156650434814266539167042906980792901258872971667310522992632623519093293648592156135762088980723525080372914752734420490457258935502943812659478233699693345331913312822887196166206194634603304967268146757978135101626693753427287605705480943554587017082337691320762822306349964728164633542590164197487975493602329685068814748312864373841631578780254129408564430042948685354646446996701335729725573929186791488491367369078111711226095582218467418556604623327989318264084274029326973831970832110554391252269252968808257182760803134351926709150478955397653578777352837280984466857982403696045477615958207025813558680259640651272281292707141851477219229458864022080409142029995507565587115387007685354340057737931715903215800634583070935392540751924275638276440727967830806017068433716851589181601882890032741898557369004702675960549003589342120697614634345829893716624910460877537852561135853998012127795358916121261184951550642644942504446558336820233328303573354439366687523676283192436376409870459226961277204591719317453542052133803936851794761607066018053101012619867304758464341469190596337598880563656504556821038298739005194074079829330980672563913333964946723259637958111827291289270539408709680683252623298144544745179235562135857130757901357151884289664585217249241230151481804230707085103058628180086567756648361370003625902172234734827819936570984888115070311519161682461057220033991534297031067029321242350252381056179824353136027563154422652634674192320591370936334742542546040316230362820405136837194435001857820338500800246085126706728726834476984291941722508055492525763828095337553834300995816435578501568268113388698511036615309844105708749075218722927704606837523959284480496686287523274410428831261876584689583733603198297285889638743421407959016173673708384705400533608100553466674755008463785959412989191638998058715161929542180911113985595102424035839722589580462784950621282014257026790694326539978436094857050508308590341900570218327341968816036718454199055448315363071448499990668668869754757889265634002714963114443172467657260793310266669606495289093565127675137357054949764535978819560620022630711142670633580770475157217809283691827891522148126348597439786788165187958863849881891064812422648942042512258143589592328760066696579856390972740258700791398575894690635236466843719869428540396889627701991202281386658201555006752201004985345502233789645089331416760805104218814626565918713808815663461024571072328832360995638345188427804925904680363144497742357906084978491886725001448112606635117911391460891731439119837517462406562644901959686171436307950366627553568027775453145401470450310534060647754897901592065225360133378890353081400370191605014823183841422424804500871511685810420246052969518732259450973692581077476400635933129133266848682902499480536972543051149662675766190863043555060864098868075476810517675646204749952940773008793244469199843009146677088818435359668447181470897259229715665462988648871326725859735600355578829076289446112945513387315195444517971190864053645835579041011565994208121871874501487352609599369132494460902405073673124963200786753887004187069885567602997866104893872319785269801212701806464398127358259762743128173460662101130270963428413307323116285330079416801067182588420267394608626741224543881769986998111695061597920928272470618288671483595951154808640646941091133226640815980691657136982308706971495733998043762779906435026702578254492271158079768100359911832026871096032710780051886603543097244474007326844368352095480959284649056487070281337056107666708719308464395116244242942395346623807343691008743071145644459763065851929963932363545586805607086497200871888415521074366817965214150246025205392107190536288581893122718631879971007882886466345718101940709712327113128577688524916606049366150355336717446309146333992832125701762157242631469047856940658279436402069003889264077267544949723443409181720358690342113594432010391232971685088931345406690024085875692976993392576741322995071622769563942892278575353323591929744643211047723258683505642423664324801611042998027872763486363774547325460953426773040474958589115924886689760302830861772246763433594565258603166089225074589006275203748134482523007468898219194660040851894393572010700803999594586060365026317175557673198710922324084510250466510824862600130395668391894126479678253428689166113022417608610756137608699374011186273183924513536169221115787089145797075034697059287940710018379100849483550858722614413601730929160105477802131310235438020719461731709406780553216455923809406510184990602585818982408445729835945563790008726519201496501739544376283225137250101686065354174057576138383689617029321139549448253318916230851213153331031012405295816313045244736999062863567580049596435798185499456315500549303291330943791140451537323463569010685074718259167886340483352779834575238956609328402060138951692454982037229121346134405876001148541441404306753499327421562983164272142542927288415199850701768362027681894557573281719192099511908246280945287944508705468810189784848396904288369417209165480044641692459508776768020705828257797707175945984929509607973844096966947026496883364209583740015721252832481289026216382562606747690929634788035663237468524488825948054168742707384068158458771367826581030210344639724315287053413458155173123343560351859062415708375315452609736395523962953103522141796725625859304900255109603483662370689092297854620447947364159670274536715372848453512098891822888264392597784689595307682347677130132858958871948590638821019107633648956234481094595585934984172287883153225944932075468162727377911481087797939610891454644516320024993348523826962787394422166877028073095027714931087881717203583075535535293547532057159197425657004234290924233829436495200337004593025744011192826383884008213874763882184879744690533350507828480621300903248089664867372386165691332396978160931757937966338081714003331942119695138363707004937936981320600160462193608204271218676833201640263973163786875170545527443617165169005505611987893845264111164097403116206852252002496620955117520425465658661326426295148524854916610789983676500751699133728429641637489530958365690928714881570459667679893624945652267104063421263617879739068703366707374383809697512649548968743519695413841294558468955711895380552646041880888709728050304891299772569437842845562839907432320479649397860741153977323069785768531789075142437754204146531106478472870067911128455368093787550367215978099541330695576440536027357944903919458463937208933627000737872972677040850584628160753211158847222703558625540606936973999345494775854908874626659358583461900550313623830650090280566186617493458215542131257720239029041048079226733223608816602953161141592458896396094926290647922769660770240611999737672890894538713091830069919026124523063958960032621181389493974907596447608568808189337837172421999779533543175374669855560111972559684995163062577248499590827510724729854441070341003439099032316087528995896470567346072315430486133511743377507413851736543205790225399677678480607728495675555244307346191934629389022776471555878624042548370501826016233430876991278588680578418078574676276298003741214056331070417542373208933567281324501577802868762276455757214427844192054997331756423802252646607010049590987111048903879468158727732495762275313577968979258444033112532989419581677786133949667858040121349489411835784828361527988917721229833385114737261994058349531293579828950843992439455318105304044050756751851862270889935383407132149539471886220622260879145754506531474378141475024069612100066216448352477516491324592314035115313525192625769119026577660821027658798974150343157684366630409569417640682864485866839406142706830765254244483343026277399382553954476241873655827529050151927908790596403543956237314674540720656099211334485055562333671901808753931298852095384847313516760567544316193799894531472850361823630795182866140987055750188598538625188307421820661576862754656710118007278946104071959623899656448643269334373522598209533998642539358378397107785659376335983405175724902890372045439492100963356858986163066945790933640606662684740471599346415402764137003070272306708874061699648256450324264120310049488714750178346263792775099199391315363005316662552025004301615408993176639279151299996349148794076680607076751697266918500499354229218298275496824642586016741269748132943244593016281510755688858577149169327837326250038167692402134413982147413767195239901739083993642312719057573748273877181873996273684417591184604936932790568439577727937019600315294535246254322309551119840598856714259632783895836226966361940481614010737441899163707143452251426124003180836920178586821147569035610044905614296882703873669870239678062140154801732723645147042603193592427110368658046320684126079993662074220570320693284054439974733194768225810327879498960269928552776327732754402235428709945393699713242659551816483373395332493385165853840203246856566300533765985847472090627269317346312661726131250791808256184298418237390617904512557408804399361835786622159352970152085458828230527133882203542540776322976535927648094077202718926456131075600109254481546845712517446239614555496176787328400617820953988775725568870112072299335657861972981652684035822691827776078973343275311138402129356338326658865835075643061514367736595945589203372224296658247627109028746590220165361812976049285447921977437200190141094822161549307000149534616971767010758104135752691814790688773957989961749900544646215765000462793612604749521383365169445835811513382844080347864800369081052596489702234031188418617114294833652689308685947549006406637962778099101973333764162500531437787670788604250380168772109821756546058271074649653126129298722772876747906100066378001416238881482660377450419439975942023975349620606614406691463274485751385702779471624761154576938187776812315518993782334801877859467253456842272711868520572370135868528074817841099005273200457779288613811074074533492498030638431460792586730007489869507522484682039577232073388386271308321279830377606692474371603111679785180464157442895959148609885472315007730631699669585265348021300656121842553873712715266054757985443247264155157505841912424501722313027659818654566510991212424611089262639088901485150417550674476362253054532497883947919135782242170820791865399400496664850332938799400803786575727755351922506662820096514536901135305569933573537377188393681261408787257902587437036420474995634058031998219155209741039212297777113723012683902742041150305621617807098317645159595009196845869823499044947880246313669889868491182885887624905911942240932466248235350118143395212436634961821806071415273289159213191980343159127054575650808883283004972126591931788545373692741061898148032617443634255768898187031812794585702152277581844562357349822701671674250700324901796343569514244562409976967938429369567664323850681601232346453392371363711630701233336455949309114865892384347638430551104789996845449314265985988860526229539849585073762473045579337592000427499165097853138112645180238468246078437908245778091323501419078170187042071973475834422134229911245643363031979808226670417442056910014248314724218699613092301282208833307686910696383058186086790966865995592870535740720273742289036328408732451636068439863363770166746152731036732568592730502544755651630371148912998361606545166072525041235038443196972281338015572243910657627629160539760977649495206764326929694735254105386522064623160682934963576150800642109201826535847019249595139536718645317243467307736359448093865060676859281501230219653321914958559592556628562038186821066696375096996554859691117670666126276952244701093572204687168004855528820327538246421548369493730303958449944510062775940926729449439290402862424775138420358849248086405098193678387661659515339376463144239755707647985575906417453302122579375597612250939487307315312918528722408974619567688255425744325769516752284980394845450020066561163383403335967267216873285785166139409846160217488012623014985609707372721600273441300731963059449906191424751310703320900720461201894448260814043626622186373152021096218139152770716269710791493022060583734986023303354568401112724411597638457282687105425890376889404914114616603213501380149704820998626786370843235022605103255611820047351341140136156383557904586241076313213682833604751459212511565973555353966672518129182745576881240697627003565375599882607302774384064417532081616421981181193385293871678959141382348478439402835710334250972936242815939619790794195190128673257963256413904941143611754272615658125951281227923720103434879566238976335697391923187854098206646549025220511046165622517542381870690692282809708086556862081616826955330677660525544507225938599619686705483044793901794664711688207149429917053718976159995932805071352405255526526958604630183631971331815049525864911222107695301193349816760274625198295151149133886351326352942479693261517763911806239721417912995233897857289522412275650340104394376776074222853312683736505292220442510586917273825416558785467181081089369873260554623440257206386869691789201546930977980755525517314507632982710292278434719519845296240501104657010164391846964838929998663060287429832892739037082121139983554917599032286412958880463444444975866566078169508668656842868146106762807423455027585534455804188538159870496798772875203907085510056159221554357814046222830059407674675527045431722957400618838483609111705480290796857682695652328884746256857255556309139570496130280945562241562301414742029494236699290817357963849036977627697342189698004142455574654610482825500940332340269572374612970618527882973819530955082137212877507273700809784524923517543395477222417118041710779580099374584795922767394215007096424307441269762859537519013411150974990175245677074906509894624602026444975374160763311764976195045161245667598822168027158021797961106408932178916889004919866177579354188598850718991296942231655022968935019698211299700000810949669215299793701378387164952765750319852350092220375329888658639222059751205877516410376511426640026531515705629497118021048824966188655863588233640470109630576719205919163127813094464844010412745820545769008763044366955050777002259966114131743846348037736422940275789519798932685690755387562313453060523363938418543629789853992321241792717086849815104806950988522476066062285430150877144502052646625267442288032106395740747975202177572928957938363298297172353744203983160155660015582167668966688474528846501910330898085920308229374341928725770628241980382876500832063077585802562084199472413723838939972741076002963276962513646237088135407083705411602922028816460018696745842018719368241927864574279111702129674039745992362101045005806204325484967803044903682293318275552244674005552996327397579218937176023929180952512179511895559663910795828476706742387258587199414670911556859033839237425252912060882383050605632667637453304047590236849335748983857176781104474947782055419463224340950588712487934351708775749395996438336717584224550888690127920293298913710105846332933868792458045701100203445098843921394703182631267165391872580139156679031655962200659548888552168135945150793582071862629153647877269198605369103134892711927190741298231799117496893708197113531840041148934842424925324030947781971119430653178539113031527160454501502192250594082438288358513416197895454751271215344155149725958382920703239794107257639550810614272682584111169569979201109082061248792921463434163317063219699833089954998126703619045074739582292298775964638344011424335513165080841279704647083205501042032847547924602223760640878359499164441138117179333481866857098525130056533796655346707288300204349429268104724190194896157161699942274140732574446168637339449300819836693914512420767497839813802336568770891273998232507810362695106526673650277555971663513515374255396447552858504165034324172400460402331936907750521049999802645756034721313071502875057248366371628968964225181118915541251155181208622058537994535834265380152602824209313430262010178981047491245639261663448428245446521831174910440913656691907125480325070632277325280595073848510959306526171589655650709107582216827544097913232251049968822576224475653219904705072359621995175191756493819365924509844218402397088177802878737964721772918026929814375737586062147550021156224067388981448873140227818138216846550683968646696050758221674523396093028703671060702524392418933547842823100736412152403327161442514516616078800131430303201270326476696742331109204904330799299904680591130874207472429632104395333017739498156567107939655779176687299928732280616880433265274575207044158923816630272906977483946586426551846773998087555161413811634657517724445202791378111144206219492535869837682073098773582342189571444548520328121015368248929659487316246556397060449725331473973310220674214825860395965781147209759862125532526242575111720860685090818783443992503679414781736246277083943672602130562200814173334866026160300746293391622034872890976632843691677640099565814369190600169738195799075456055490236056280521158107374457088326772718055993616188387970234927246478900428421572828842618641688426560577276367821597542295993753332282849664488768400348351636402596599435206346252305809526843994594715891905170123184648076430812954826724317240175974422272475828901856643697411559252201657868687005813422122072027310587416354641755305209136758288452416928223089691488381970701079338493921076189356659520758891531380394080635528480324861557354927629524114297100172898522421377674328855304246550800388121944573550749062963210333922139959540680428151384489757042490589114212929317805815325021340404761856698442270338874102025194073893129570868534127527235341263803530342924942807742914950489165219431992857675350274724056397144990802207409144895964877440028420826722476210578707374067109708732952882943339987845317880501427164306214432409098763122046704307446444246120547840407522113399768434222811095029537610902134203679278646453989378963883184609081286093093646735673434687285811707259836794265275048651837206137235427706304443562254844334148635228957762919918402726247694853370951985453078399467606504956493511974171379704687963715243347011239594100609236411614149079284182350689935761363226250006170089517900859685290730415075730852653439094841914354265784288551769867049281575349250332835467260975712378380611422115070229780441645135321703394930193409471246128497260924472324943193231157625373922213380654499422655217422142895602458957013258645476510656237519105523515429752014642039973171048622244000742071530490927059911987731009940493873444084940771353784440807478537171032445197970415423364624566153354114728241453088597220756471394339141602600840306578400852676784268266273854713584833616026271941897796935876532175090280202839500347792817850869377130673791982117663324392031090194703538288888299708855220830516123244009590744919463267182871732748423029562824970038349325376962017227667144439758747718059224581902390988129194283105480492930048240814227408026632521167579304745573131930039939269322430608164880080235288887023834896677111706907644711454812450999898476175278748163886138169158003491447102724612088485417169803962679359278253163245783441554346392118872481087135495779727797187017991740673426589222956465019734727788962137217178000669492155890254768512727002906991066103090133396259105630189804311646642141208773193115782536010502603579585363982327684755983750191736407019632023117552812786553667256300515601642557285983801983992319465192872023959673094685699551550394673410465261158048419803104179297951042856468426369483533416226655254065998382926475130968476720791156928784773623362092928144640440578430930845676092455742980962706258918189707300755331328690790978565067390263687238422934756610444542726706097068196181067925104588667266911557725972235663687966957362192026176472275528039804037049103290895184367691512938088044325090192627202965085943160256300099162618994279974375220508399260221686746096924853454056917780157629712782212519379879746425321411400660886992887029173053673328124778265935167914381227716451726245912671446334209022916789051915454949796707881784109452958767947965240130111074433587572699147312540095787274757519851137459541284799656173528067887136423796918959559712518041690702787310830140222746106486890419089947327301393838844798082939355010394529723090084139149053095509295571062620901290004752650455429276683317675349316963273226717143373634360528611668830734260858729619889496437960536960712659355792664351773216878007701311521807999667119323262247980493948027388809459423491600190774232708104898330379191291462488976502157354009428604406606546458921063079432721030102924427061905860340243441978977962472537444843015095585359607175851845274468967436861523192382036411546165144750919972044500257204938017117777924828942662140398504384580898281693552553560603613118314185371626866637594187879303994474345552556246390347211864663011247092159420748027390333241810112167798123061607528413843134676684766224461577072169783715201092863852909116953835881281652794782300633090309491723243063735911760341792371876183179506314310353844436226919499349113579963651462503176623093652373656810064203784774182274531251293824027959845401213118398910022864524511424901129863342398651840959181725850207604408844093222252347590120072831293775831684542598203287308450655385356313688490985492927085891526179088142720621416518518151621671956916062366392718187078980771232908240519007442216556795112380444300264242855904984399870281465530248063836567527515110287476030620480743096071084780404117623227787778287622209065669424060286317832239242782408318327647752017729544787112017078604590818924115425841884256053200512516185696405243021123729926745607332350385095572931567405238696262571196126728858104680206204075531781835451082504031171965116655233361336041016346852736972044632688726798740471401627140882278978929316483837866048046335741465304776211768749967209857452559074998277946101373124182130206426631212747154810355200274967756789101649444208052152005583981620100154387085573140217459825041325261998826339250621395726287266309424660537503456807676692117336526882615936572067370334148820851162596954154188168028835896576079564628685113129630571754172521703964074185118393028888444618776272851043904662487513306265767047922296967265964488788012873237970437832158734687142716582781354938842387362566066142483183497882616969387144003326012843545368841939594385845861423957602915110382129720599314089437037768050201711629967279437590173495763444707368933838242062695431356863876050046902020810726982366155551878316108465394503175863559269540622077917757268595178845093181820476495534929276318616312519772727269140184185400857550015816266235702287210189218907796323375887234513465879578888453030696895585214527983191648456837029415481103151170325689278407995585526099533896795751978174227858482960808322570756269194641960834535207000811212281352289492871519277978121656742516296856920312658694981137303313973916704397320311794337089443652973147837585052149369968372905453708867889952334945606035842557260411806249551966296531189155103374626476827109180114707232911202553999079587144102854623393709888678327098728214500378263162448290630052656735591396514281534230068116140824574794888069058678616283780689779293574562225337110683494288914143900383926823877502518792453466628792525663226988843660792575382445951956927770796788953570505723901487893143425898507025968111966825860779941887343089394442214719473010538916544290812348294202915212504023881743814207387435767649072305319985519500103804270653315293766188441040749531607716967190169501585002269760833446729452723220605291981990771837650678601718656127812179694431281018585416674002712257667313024063804252959097996941863336954862481527163140655638964280173961339881411300531316807896379543038408334835620216492901862599744704469678585915167762668057363460805017215771143965283102638894365242158966333180732373779866209877103601036630815058055443478009550446997003246128753902264405690984809453378342103201317179738953039840718404751691090925382674621630063942120304526952084441353456670881207451042591200426993682291604255135587601510453921249099985094718715231888474605684758356119914601989174783988607225934969720309418547702858702704698659127813612042331709546636792228900285689732404260111572158983239168378659366415493528552611638182771251218559683340214051112134759407510464244563699891444902654364321128525775082414938695821474691598488212594816810137811039196761422228318860394473635005057181977693624981616633334868306707464740849098120978512915110945711586009199267269314658287399797184057540723363161456276897240769240539248511317604895944893964661217361578994892201627433695071763126278278471827573696837688405957124321248481264278930799118034948510982770569474051078816575802669917889793213838284919089499412035697128519912203484573835810349344348977464536572690464013114946979790096457728951712417526987034214380789239028484520706087818077658746208948501778821458540379757830595933278739417520398867333291047288533804525389241466287960309418764356415755471865420350040714443507556743758400313564845756272178398851846641621629496686261227684996919219776655313106045943911357551075394220258308586546109402542866392353384893233066186754546326674693050609909085705493155316679215111669639764452801362498045661574569119944707661959256051844174871674657925493429531380184150414412844396875294748456228927151574042428642870374533254222916903676499135611360727205560197237236658544699260088530499382429357700178225331957062953579854309384763359740617669101075981129854149743059617835184659823533416326642490259350500975031798161184073905513149543750405727346107138811463321135157860688279698432923644550626233759217658787730588982018561394571750101819162908050068703849022984954118429614529164440008803601052934337500103404188667468422450509973680955492395294669906254605894971360702820713917398247087267368209376041589228057519523670080808828942539612639796578065149260287305859972155836818994072416531049467891988995764761197882344250014295049606481639285175385688018673538499690399325674318098613183808689241737448167077364712410530096964812585824595142039475872573383682301416452180380549844932778266736246340744376013114874989943116752669466961198601437658754409822822143389707023863101303838186271480274036100101542807787047642376126771556254581760251375127352041472720171847662167023959319740365632660207191392508221588938663380995841222830969190983386826474356422716762757255783530114978891325021961645284719591821650177380347785159004815865314565540936083684399490043305557351829702701163337580283696545093525424414271368341691049552152663455595210814039277554197353566441286346917795637579439177113443515370970975247456431747818678137986862574437083493457389632847244537426076528434352890551311936291562239582029446218778235870170226485532631327762142582595484118710528374605632364963280097664626860952588460897875778178840621403898304987981212027567971168719413996235154083652641873470456197134504956883613667411890218035334752195921964669991318173681842962474276662089103472199630056694642278564325174732042122034454009718548020398875902069219858203535322180274393449482975181757391483538572022432064853797324378995456928268677653706154464098899004762383746941887646336304266540601550567172829209759281315304150012650955099092748711377251032223740387478902249236487627694722120075533013881162481291064205121824607049078478138403695036354273540206739149851912303367662294542793693609104208741276160810836422705213766996482139343299412674847640831628588430146684653028217952256347609595045396157662334206459854143194597392272347994038266406150036284557088644419293283793254760774554107008667451322216874476907850996180721637827158029829163590220796647466860129618533536620740959853963796080306880363576736787951957603495831023252582805528024223166466897971025564511496055320804404121260243761474775875330944210001594691833508121907939775546365239419381501928262117184713291026168612549667483317672859429281791453586592958345085256639697846468369649115354324823321860787864086828520478100319768637141818466605720863233360151026414075564528146252433077392820516705475456646126725904673569811289400421304364698179939616229789621167721675585113570014285589301884703255944772579706981101313176759961185781575829586818151226788055799333706669364161250691541258280012703634397618718903525538132252357147676704112882064502269156016251495985133787783889130903848940433797884828883774726009516346214353888806516095052920404712443303336344304211711182968793102153025377813876311246788164899020860302313486762405302466072231010271634492702973560564430069759207858141111911807746101676516603966083509227731541926801323548045579263842029082853493041350653171037572207363641497773893637165783841071940969585526239171386120772120659498644740264522423963198055455849380825008222164149337850184075780223149079829752963648313006389407601289488761702839806730175932284050562680244745849512180658347786300176350632609344825180403012969052950493579744692163624789858494239750291998651599372591131505272855035625014177614904017378132714598284193957572255763110280736987749819756216736383994972878508426524633729355287464915636183260822544064351765164181133533216768418590516076264313429667470417557280950030782391339486303742446056644114878686680087386670729840556669974596571748012919539244742817912706845780857751076690805470331119254395621149458805284302707857497364436121311106225642347434041009204842722621474333774024716173612498051135681059863108767832118267863424294297780664285401899875526855751382924592246025051443744437530865661145847016885308464951311750201920279355763113167148534000171539525361852736224114908921204945374239534439107147526836713436929033812725325724436700144624811457330258081412025555300302543980169760970573785140871090537396116577820752604811324184443741648998242344873794160357527408427431914805990892869841701487425095176503626261893536694711307115948147880354384520182700687201683412390270532424606709359190458873336437793342387988838310616438650474355106496159978755782306461441706301758355207865252128800038365178488072359056103914286828441976358054398759003031161180074172478807503888482589666482717957339025281323826697653047974434723981002410739157943741655663375085457673578850696708778455936687631840684886221977302035631769444739668371718565473382202932484179473691738808890610695958997573961688847586556081314471744952617681592686358179971637967592788047624543906521287455779593360618517364089413111738818439767799970238051136284745895644440475582518413260829206396867476918592808650897152580302396915206455242837457700485147789726698734857109819089563983631823668212467151419963231313944128302660597218814476352765864481728050790989290878723639480483627227559332986295495054217941519043289323529024424581602529777487176118059807395442657300996070752218316086238853324625960179880119214155465048372178867193090694491084119594478671488084014936411809422651004026822398194885511371133202609691071519100868356236866251987380980904973644526353841925044109183104873145920349194312902456608681197250250176759341738150197138208864108100485190728697604021089841754962687301428460242318896353674654409482123725402269860962591907126590934296149400264752723210295276532217732100381595875921993481916570883369438384218132276072955479928375055269405032614324731563399314491303660740522559198657399996652790210091056552976195838339858157167997736168139685414766630400630183139411860081011662670247868522962260939679101263190420350496108230650635971077421102501636683575398627744843690161892428400438208521461341777353160789554559020337223431088097822916735346458946682065038902536322525180721770229213863704401867523629464065031835502256847849143301525618501644499024447501238197058131366855076327558109683059053467824403466595173522276551056708314250337850511057112156897814928151967025426433941311130501667346412188790165136244878180559676237386798544174647610839531446801113861327213412285496727705721252345692341780969583019102077348423681153482393312974929458605481289694421354218821976869562242570465500049901316585655217867878282329490624223406993539712257973522013876834866318091220004198968616770596760030238970976917788639011384909628512925261418590285589153066532370001266820403797636809244275969255653458866634856999328880370915350799607958661828759587215700030385020122223874485021418373210617235779834440814939781338076255269845736662901756726745143039286785325862056477324392777972588428451124339846412646742183086545286786765804619878028631513205181313664736360833744411607359034608129411249990590678502792357419646600167901797514375063852181751211458422309946444534239510508713954272855030143043141170058879219181634548585999912000529871697849029996925099285518063560146667408132190439950597322872911535719458017343539846707531262492068304889016542818396359551654214051209770929497939135395390804581916212092977738639651861078954799967766889726779475002621195861455462742538546581002682061911537587570920136653018514185626887454433006503384970440411713403124713038316585097285975713890201478933435672351687618078971487876196777597934477954129988235682846419270010870789144049283839455497225139803500198894020530009095866441267429145604880917593660996259467938267070247201747873356878088791748753592935330323846114684961928263335429177140034870853525808974444694181571570328473678595011794180263643706694517309378492263143543129388751999975765577274690617491585313188312399818628632215437794103437179935730282229024612680101435559301815406048710928192169358447059753878609108095405898596022522627916557474607129207286542387655955028653861335703525941660703872691519202114416154888820532194769644201438286521309748712018066404789737076603147284286534131160781342441728780254209535484240576830343025059568331025463266952555217483940751627075378073401344930282889426737906199754708987482562630483881297447296207231957303681078606417330606519986381032752291403330526169481762784313875522127691056960432680406983781560170030795439296212533431546035257323887171087650333479529404713015237709315164112399119175747209809303514161103726089721945076899280731417079391506365632259997717893977932601597544850704283876057469768787944274794498553713773619876599397952879106156960040496299407386355236218810536536496701866129651374031791367483787991374979516068004673114293732692615540342373211871564486021232088852536466029176754585597408521545287624071790784323673612839577224630551392909848537279491859794630603838129403803346328150293253232622960543937961345566976814116783238558025810189180287850877368737363030821300886214184547729569674396443175007533842113751282163859271596707426892792453449183179743603198313954139171455093240069784226922325877095583747399567208827332951251373164312594785729112727201618912261205639707788038080262326814060170997486998950131045294686016893796452925886669845571764300871877295392625684703244272755579547960236375671310437027787838118324073779797273828428379749321593196344719886020221141114788170324663972065427689103404426755053234113780311826687039878504417524415751217267788046026041530682679393035511683630376216864067785418963919944187218308369735572641856615073595888103852190614092132563739096783104559928125959529820889110380807695877389132609686837710179656833029930410783967152030066779011972635870399577489655236841074809356439981206981572249647006083670079122312489969114417154236386133554015831233620204324275556915233210601343870751979947710875929697399733794977843589619461719903093150709230606259727985422325005430762299643584214233198815399883768346219858743505516473460654700866550806811278396419842638798186427206011534386800317918445807041112342705052089390266903810550054542433030184731873476814954891292851744783599501889366810293272387758309803498046891507772872103596895672233974168159679711043295042255566411464229729888069800372171313340661652111178627707182526307673813958835217255156667853806915796381656182421814806658708195986842699588959992610594052950361585348841222882907826065936803519701384738887366363005850850237707451741528749879564837215178599285901718176233643323743599209893293364732990308500976982059332356975550256283686662873274878614164247941928356454765028467143596432518593624517425631454029388140454910591033272703081188229236850185379999171000928649375732107964356558657401116337585582258102982328813644708355485259402818237264171428389142494863873485854778893643249760516393527286919171698261213064032912966422192684893134360922329708548433542052760251533321720747159288507065616559337033609957863763401974841705099101004025718671798887695336719340914484071173456778267278817323234448744329773962264178160334522254764645045398905854231238496429327184406051173710151845146748650394489970774888180134884119632609277155699911908528974821245783185366278021140116845487520978225891774012004042376798398405794453266520690322800403692022437107811960110810812552698429281669947205546269602886466021160091825139980713932821257432353443420887888725766156086593998407900588113935555833983718475225597122006692443413036974802564388280048470205973230065763624403200331899498154125909064760813200973629172965357782875412014010234797704109644935895521686194356953295104952496781153532803198821789163170050367394555295657017664734690165617591439402791474472000743336964676449009957935613450409097349728489476407796053299924656835940709951910130818095412858914849933673721593602512336264822860206234303362922471484924803374216489493873147985390539838405478178301834738325222375438790731547648367820389913279142355050984187649493895543011856123313625939430393853272302014308860421106756258866390477058991724728795162858316919054880062542180149209591992310641522949120729559302534728633837495886678669229659044271951015350583430773608312141581229509181294736618139961470351233423433994311110010034480719484432383281087310307814122534472635915860241894444753931523492520543185448614520017859263572255213839309230179933330728855886020812991376682884106766111799764303800205972489092642370143783049091543552334700972848268125982848318538831441000945013969616956191347670910764474823550574541507803611618967065291044107062175159401944289148818666925096785637069960676379888561119945901859802079604724537402661181652233018171496493277516961824763148590160873730814281411254725226868931209244122682485012935991999558456355388591533361977083490291368524226010031621846460179619898231598212556277947635768811496982249554103884997690550658406838033232987693625884058949657513047641870891641696987171931545805497701502564863432777722075286609102847814433138568047971846131616129665213522807555237666755664914760770382234194659972208768883521734994143232434780931322522380353683250565406604495285023257741919346469031156026826412465930170254670336131055296349882853483027017242128527480422304761393523972388923778566766431728553322642535393402669054240201952325568693401677682375868364309378663119121003259951430123430954401948988980359027027337529354011503497435043745843513509806854648126114723223728624942399196422258879847693376994665354067687206794277942921878588494822718904393701353532357872808684885020302551085197203069432959803990345167415766544347185956291197754305232688101308103449751745284675616116127290380789184078496060670697396851367933274840144239661135259773743043832501439358962359528309298969318172775008758907695574682922095639682168468592778261120631434781803558417611346599571953744996158321836569846757463158840589406837834256531407146167715500416973360345418732512694277238962340347347468905967684226147251835857662518921048792837186611211952272608553773303705789753948177592041514305067997648426890132838094122628751924580153341015638603423046185240563219340538347167815549891178689790001262232138456737542632570700270306882519174838833670015342599799979416435647079409073850868393970969696082649164511424015479954394371576362232690680771541581458168845865307025178244139036104401755231548842981474305759308196327271661737119618391595614830299074336083896859649917598110730362454188632615452037843407309683812247604188807935370230109312616003191269708461147133967729868421114087062479769246034862940009930216409726635078103533079876896887302214130058507161576397223650710559127352634018142563039374619309797286088300104739107411448691861551263949103959762527090598290486797524365133555623745061902248781634183416600833743641472725571190650688644789433483202740931245794940322421683578671240325024418336378540293150173933458086244807857540462800647440509002391113566224390791448792036192423957298581659807671753312165322795421423206853695100745444468287053073452440566897723732994514166788058700751943285390861105344406984925960647748946650481859725813944435123716446444622329776386138807789540464767429181018523289087222639625252167071958339464023904712308306156705825211030445699273534191018224334374935241948469717977405335134892367404555143566934775539725947872900861562458110486669659235659989606747873900149152734999461528720865334677070806481665381350412407449908427601169571552315306415389571841651813802215039370113645136134027599793070688431483452329609014970806161655412911243821115781336518067517620349867115108824978879363077929264257517091657336359123711488721615092470913408685463431441390236591832595227084132967209716662528200139571843054698264488440547951233497718638151121934138808293108903357342934408522736043926523803900994342317793397452456427877439308541654487217031995265306432802369800451234168030972357458756319267162890425409486947538674066622561565223131786040580793731866737398764037988143885426166742824543691194356971406641214397789876238223158566490305528846983666902775223657625445489898331907877695290128671891210096121405162220542761868648284803039907540538320839950341433223725442618279671681443277015415646619493744183846772557290473955776878992918791705732212575803831531478283509256661825796242091554471242361041868998795144494170891386122481690629797701668954680492246296283873771078596372076309749129522622463959314074200892067222143163207901651712719431552113988068973435069624092477270794976700347026621512681490885625514995756349439573962945208852625553758417845738469927768869129186133427787151461018817547590845762653283475664963275024598770241579959924913431113167893834618223815174264327287966083582367408936671216732394683653893697613946033981418643594641026923282154853539572358173460680162639053056542693996600850271143347019555282847783904807787096637934165790190382963554355591039621966604280676051694033878936070703737388053283184324654661168435780761198659785414896990718816254947610115725352568942747024119636258653541786268758908347485326876967858524862438922643926565356976459824799502591751588666313689055504150111486548702117211965033834095978084823734272315778120964045257406049997901857682888888688703717237638507582864536480887727306592303259240153578645977809660499942076709870349014342493158570514477517877595172546883888575678708270319463973590708586215669702152139313995843253620102893817632800829404870078769512833911345503872350538762021272572561440260115617353921606674202767706364962567734908659634029249926725677955961777823430135993670779755221029846374613348321741742795971964605722920698933669721419268309481882547709661421098362285071462695778728976382113101196830533509171510696942358247595770452145580510382285019577926982646900452023943901345797042877760261247408030677018043999111041481262572380102498652392196271024490654616401743149019660269673641067115679951369586221194377129712564193592434265741496081733942723922279656871376578164790396391927709331812686428930116199135686423844383744306570424505194405172679241743561297035979203772752803637663702394094715993276398792914883099927517132878871970256208483400821073867400949756972208265895111393874093957935777923191882244171737239838741920281704205734160132478835414424412437154401528299524489878712358084177601843961103993570891438797850831536775973228793335732370838975033377698024579374632356545978668537325917092181011944068172810439963284955738303920340070763483604811579391415129267394720030849346494415904437220240523101834013915228181203283175583393063875006340135465099057476122023088398591899322767302321141279536606815939874267168103817236205004226215584563360453818023628154676958722138947349422351154621653091885417485987196432916832714427436564247811156408282637676632993200943460538352221904726722167873076016709805640553338526140150717336815867529259050730028897444760697798092203490637590708397646199068291204655860626934883229606644188959827561907051208477968802472235176258880820385844699540719815918940829437878468786526603037907002453511606390142610691618626082744244623677334594327993909292443674124684935918298423011652844949498145611090859004523001990786361976037187735907611032580109577274571031937396672096399075177112961790301935197763173942052445237353825672341689407774690719283114154911269235868510239778800824796527544803017014282038262358611083460044973190565936007712759170573126436300973790265143314726848758116444073485836334944850122938340019532112945784386969592967123405338828501505906327244188529118749917721908778591245850614330690186084841262087312721008338767354902087555001987026302322981550237483110135676242109435008217810214469802962477512226027901135986166770666428123479248571081607003135252592758727624467578908837355798917535536168335773901345014086950091747224593950952225670108556222961974069632986393984319971510179270966984902067442212232230776410147431677494518348046962445493318192559756494738038412974864560445218606995378442584439459175368433792342206891311887289132375652500492862977457260762034703240866873496967245324141825041944248267476393982943039136555836956935808236923687026008786199512965660952789562819567909320565944494511698122904389159678731405141057213372006797133037627494864183833712583957583224763757841451317271121755575955441938619522629046033676302381784265861512312662255349794342730377527770773211744977804199798073445577757640578574910067887774790449863924056223761029921745170531144378553855911233652408769858676041817299811349051535424487831957425081237115508523213575022176679861066226430826481254832635329656474337336860560342060382595724047336227551044784195348697778692724391887409919548020194379745445895410726630663826309962724996130871238821890709229899314784100926518542977734328148932794347452464050304134791213184898727020720164568270678141301321148800457303586511681912181224037582902965702706927376499603225153311768823952895600342448488097230873866304868420734227255124711888099497892936690999822669234513470107756084668856582329842106247299375031561059183313841627905242842442854085113912878907782828405822138668796962147148909713095345518675626345096879350389308461213977974894677331438584998445257393609562117836035803890950752122886672171961160788533142311012491301889498855839019759559674107852375720039403969112151291773356489072271773925711037900456927610825357049697964438637029929217718204579858955868719303030311954974133729607961449522086068635394021064755823778724079216834063151055445679962398370316582927771402275276948558894849964620070011831852545736581685010896084968910883461195554674696790323240440930465901827828503601626537094691974975634821091067366712461297758860347535874850865982174438463304369507912357512484062353671719034183213833690444528678397085483596890127657449189419264759913217468445137485445076670775672494378516964566175431863484976366826562183971353474819976908176817460861459252670892544943585518065080473734652568010290830609281596126623618917210350516269856826947421724305750415559309998226702731559427336949332210062331498847031634961184020078276338937316492643636531055821482036614839554860521517976481764964124970141007030645615571648583676713293120730350732231955983403503330516102413569756596964352487425018409937296385373957481962535117524142782593549759398655100921349920974924826416929917432848042899674869449309562038638174478394459624082697576493799009872543711893959380663386283340513678994945737126003944474606036386504243294053123508631753171958548254204221253794186295997515809692056061029638946559075412591212536701804513180712962449782744069056272099260318501503595067462260151691875348776521147947852401125256309050716609196439796130052514729748747046688602405574139744754250543915409264710428572004582419257121750824046079683704381864519438085476204552153336168424665470805010723580710198504113633586156392700493626059970480080264530106913786156224137744750079188982855558883312002687082389989514547790795568508566263629594693239823087069401951803937273741505402749127022284336399967975670903217474958731150186167450365000930965700084604500246290456944285890731585233918864712253952317310356830149931927676090975193409831685943151345840515053771363280706006448768084807377427377915131953684912814735312792915395666820415142452146664101518769132719519054607853891053684594509712251133503525291362461519984792194620011273236852011324710580108319933194747756122028480578386350812416133064059008823289355099914195277954727107314678035099478566695797195865305585010442679612330666693844609926936563411107771129989112789194785561993089826217180559421137783359401293423469011892298962070078266094369603055194333505407338913323435171106272000964967552781670817518993822726226928572998471307282955328342687178073894880018673055640601513493718206916127852757222233478648168058250317483607143357949733676473312903190311990734750728571785229186635890636689442322417632151084357295824967046563357019138902856902346139356742697319422189467039497610995480164881395532136518213613941038679691349260341782485453320729787334434322915907584541898513064714277647537349680318898694708854083646772842498077835613610878103850353683033690519633336990355547409998150833168086967571042981254104857737287863371094289942288348832876955080327967692335546468408700916302456185474405281164219043531625512766994854571079403471354069230135097159893457442072164748437676660150107750133778614353092957370136495755107792053946507205221935907469876674119214479754900722582662544194740130557495630538746395686009174328718286901300674514862351086424175927439166924186307002365192358985349842526410337100849737359370045729448780167534140933698633613845246724994017102698050857990192541163334636704165798566861828862580379693891070771253075246399730173413631275213478292391631698208422800232943381363719218001785973066981776398243921384603021690891294779874178469765531934332628457103495804297828033137547926785590255040763400304444130567497132229325376424793312260605448511371880577007418942044245523072785084656072358065964150038402929880151358409481655700044701221679143041189052561894852347711288797675423840515183565913275831448980384893148554360525912691675906246270360972963302625680423544604533360967981074559174739953624446919268408214739567524109821167744071006283137386346040077285931908195676456236607651626916566100568832154944108142968565186785215830715599481938985819267874497294843693386151659840277184988009998525568255987714786506739194763895826928954274227268795682158440394762029876986727078581355397954166346676957326055530862696908839180579731021448110294506144599040821288620976024321175728901711406921422142000527819818432063582599520906864160579783454309935028351995915610489310978627707768912471440461056804908406797341506309966597965784850300068184031725320076962016424138538374802481923323213799103944939072235514746128365285494038756994851909281623905269493939919630511694613391368398840175622165931273587434296587214739701152614651202038984312087672824100228544271161764932217652498770596984926551048677735037066744914378052443230332969320075683533913627836132509027336067693021443269759382957580031682964131624556585167112805012664437337607237276497931087428228937091363768586198839327350391083550086986598498750456147984326091277494909484509141621477764210641253016693319823034892165156766735712791207020041525243698872170994251751899695766858969801572428908616642380265616162649736018782509209676308384899265104055078750990568786099452808069810397496978561383700217830012583396301620930260255550051142637683840548487856023561302495983228518059450962269688142306688350223918200705472620574732862537422084436328393387312530846417970943876598235861622330939440335071764470492937154012005957700663908858412283100580191104569025067663544934770497194537304182952106367579210139559409950737584423473730031212659215683370903470684521598091533285813399310225801776326493055639957652506289841760593713875177324203493513564874229951316099811776992178194768130994982400067616025889161949774645110061343778280279869255364795256674055706492985213841230348829060307583643582292565178978884351336162682065694098652912630120777374669220370739211691638634073925340535265813152824292414082230637886751285450387167475304299227357772869571642469340739379258588258120854320109668595094173349537212895526853670037010700701136581741957871646287625891650464375364340609329486864892561039667648308031772863925815111264231698321757584375706470411383249563435231557923803432535048279626646548555487279277997884490123907178364795499180052419025898119355426421372205680143972719412959537154226079513211552416877115389217282977044940221296135940718958606257518838896153898500604621676403659332549895378265294011576578001787028562254841766976585125847827300324966090996853249864274326497890219111467149467044680151625610151346152488105400080250527485344809309682374738673383113295447399945904242861044380424362555039317029942340563128420368661372463836332051695894916113174720381177113694311197910476963005486457234617047764163063447369739054565102812093814131645030421705556877643025604873715317138088387904943400771409512792298181454244211353318917066025732041639099775921421951008892510595020829721493898736126907958479916454603731040442103730549562635277889676036471368177619723671192286622182661654208638472644313063838800277971588659672938623750881844915618724797039018914219992714875703181185598163137254109492582661689616627032044410321357443393915440973812262550203831714798869592603615457507281455256449903744331734331850502282859302447081166698110300532290685286020053561423758091431261944176103382936988058556626902446411621976732519906099008037284075905906966914651049134758834291010009050827603673907586198447436398092241530496473814375396254510527634035341130267352673402409689436215778433541040846776457280893728324757942770000995760488710378198130756562869015497846018254904555403045816635209752902900001425604497812486807620753856342934376779666231304647224897490743362691067301344404992297198786027125437748622461182608499487925266314525789034045446066083943694944947904963147528799976458220988356661052252931727241319283072150772188193943461564602891809865658987545641530945418414138279634544243779268473422408915077181843285438312908277966956639684802017467783823132846198904275361596044503693397707508302285625789563952986365736971589246514448414012357655952735687992663787315409621613017733755587274822609837148121410965632523086384241365302464402002595255544798321451348218924730556482263828281462238009162807272209987100422659936011425525445469317422868643149519894879653357094827170782478781740385207367921447459576565584056861714879862857510478563266430864968709113384202402818767890375663963284651118624848274260142449848418230475440487599067204277647936476166507952323270255648338222895488135820107578762892323169782704768302066449378072814476364505919305451359123456076004015908198163587185246292083020109893147255122409541857628613972182976375473079496896306565987178651884604709831857650256638831512870052951611985427064899911474439944893111412423705407781488096038670315550271382146795404112643716468787860651220413540376605230461335709732595269421703339686797973261710550221408859947346338155673608893537350347937081299674691142746192959976494241659868761346637362724163631485990338698234482186924039530727819762605201956823614478201756374928285490007530415133748664515556420073340409437358769072404308379098966907498369884244211758675757977512213676565626123312148554751977772079459058441786059315615900632589045311986534171925365786686103740724202600196266955127642717586917406020180016033291711679463987504033702879646562237361599819312556862911238143933848729430746741038593652952520494072657250591031636467314125487818442896656884885439860640140296236788890853119133431748001741912846299759837615535771780615597404414840890299516967654984043015244809756898487131120607576569047057196943232134787936989912163571585403026904111735660729512127529005726820682513317327212590859112861691051948374294922434201511558205217511438103355797638518919317909488340112082728234354344086854190322964987186217208131250210557886264209172332349390308314033906080294547423657929902030121984745235796877283277061987261478703552029147503453806122014311967744400858367594850672340440649199509961624628867692210891448120865096493574820371453840414335135774221405815644122984723565120979543645697875564158005041312834762366148548002655416015788698293905856102065905144417338097690686141043527561292298834024724699033216465181414917750687487444453263937349146329790164045437246929654172238168573014303381158969070166070934714397026947523119671820917725452401637027046444907181435035915348674948904980095752790450085101199904278659761564118478381821918300214813235633678979334200446070897487114131270978191871272072104703311425055235015671976935213734559180563584138218827571184840142843686911081933335072566837843839098768972914976116411588424752464167875066814560559136152776629215049628759441393497695843398014434149512261623967270815121095533577240559079682562263376539410723469593875239727564977478817188758599668074792039496492110597916434452581968485721210057203650007946212153979405347242768499064654754846342367940523130673722539249482684419594075818183432798209320469099430509722623623367257040980080152472926116780400470129443140886171864509292192256532642431615859474291064297591434824899832443921748857250400393381498580351938102526596546572927429707473331400773445744040835802285262982554991432589083035462289520429652068561506206561171007267630380099823938773539936771085710338897989416698506144526779559232049733177443869593099867088774019879145644126824918589375216463962012154761741424916843751296424195050724868853063885440649292990962763138667931776452344889581940876807844918794492869450228759315707561453663515457896663040759360937032685663377410501528504336964576693433930134828952439936986151135299458759408309157842752385947774176578535117368797287725282558584642409206435578445599910865977503879102589242365566745169765371419849395405331723588979923261020319245778963868173317523036034611090503581832483364168377178265911874225085967491703505778952066146230579010180472802772132375290630277647256581982025697782447342486039809571755899565572379037008586520927824759302084637833604665219224389818549464672082311017766200976280541635470048282508243183029751808330873194357225031380484109329961740001745083426531204087642227937842192475862707080589867004509260922065796043260836350477720211068261260127943819148327333935176687709648273290337180336256627439431162628904496749927365245995367050094581695858544347449562078531873935678755775502029865149227802914978579573918986905707791239389777526138445512896330367516399957663145792139647875457820534163080791724997279662933314160122342230973014482695606462470826639027097797139510428117280789153347456162609037326740105697239757807499876266941791956391943147640380439305889666465534960297133456876530705937682858290077596308402775628732366595300629090968453611283015543567284048567122858007460006119218335624204960210715412606710776869672254735113834701581319685109355628705601063763736875322951519406123208715511571221964417434281564039364484203844563726963389242930278747136289887355449475730823116122394665607620800120842963735606028437985644451801165748418497668288360457827857733476213854303144034346878108601711188063783396713805830978240710340027034352224388920199494749395556193095430015324187836335751658359203894785985629961783791373730822031363584807637017675961935344213783560465571305091204370935302993058553441458861004283336019524635673115731035410031824374242672834777293234962285324254663221959003059025007461210098047099300528567862355932234056122817710922953641933945816489621987745917507304616716126002451289891561073303357363480595809833127017156910224131099650742965703776233931604455338608612218164620733307476724481522488068213490733097492108243154104599975801442775218209471582556188807871054120690037138484753910214856495640903328809860538299704753063689743638231584403758155211959590365807085610447387642797520385975066900614841094855853934026820560637077141940265635898508756047910442181915283811755059462799586044747440430426745010376181823651544667267820876141942017253008728124245388664599338388979588681961500399849099244750270937925001658980844649086614104515542566527560371326418222206003803234922630736431613336226685110282350061608488092976125604823713157666335422364224018219209677638385852928875540734382927094281453589238268888166072154247966763055101398249300719204390458876806621586768352857549504847683098474967070419445096039528480949612625748976114191366028229477184717987103534743059366439678882526396975425298312891829235460689737442720413435808866117542559801313467787244745020273862615256036906644057388233099570337591147441170092437679615322119803524236217007873306111170052132203877609960137033910440773370469247452676418081655200496668676858952985179595148111366248561437355362408919812934643082249777364492642010603434532421130898179169945448500697539699948000704355636340465549976660547011558341337989130535133931181057754316445521199593764239505460666604619173021757776265852407002626598481942654656012906672693729356342612873088555243041927515787203393853489573904063675738432617780396531767478771941110612657713610475642856157204491036538578492003029929164175803920583561370389966173978842059379682593834389813431380568622405649093006336018503501159811158206887664309483538039510970934688501654626062297976821183211418988444144408158118707420049457229691039319924781178650763231607431630235250568076542621607348696333773515897870663925329394191869981064743778708348545489230898648475968661578310725213819533269566791024219550926952410990838897328712410252159545300581914311147810097124698133970374483501391165803088127827981372053590983754771753634612340288358091949906874438633885222983265819101804882389667692124282018666197329667219152981787405978625812440878628288704719161853230179705682946070904270669623026817688124156784690823716147751595586808862846216308806160240639428020806530733355406530225007269158282368376631702486595941299458129302987391398063921616035275387185646381456897497980180535585509515152509746799799366802158763182448013076364973804969655651323281616632107119842689956392489222762905158899904783461589397116320184111182307614122571246377523581163763969857223883370151355835383416657542177142872362668346962353753469236719939085668449981152529513572469430715979009871525503991805667569107894090400128651881975729470133443113008794180634775379241962669536125657924235527884833239695074519154228526218602513058266981477045882084011163400199554442142789759668913859864938823794327101479467978546328650518764227686022303168613249406148721229502895838534253572413856239315381763915846650902395248259291865584674800095338659414229518153700717503708502047865463318277976454547122515928950700262951515864643151530438027675787384058449328182802558308902887225038310456646914745898205183288826100599829794033016689080203907010216141846846417734688386389165265883027940298516979035313012436604953775931386600866421149235340147172673953784938886988413473267991252619277743395161243513562834982553670679361915625776444356278473916826213470768113715913210503198576402829600229053229534582033756792943922412905059973139880825510311176680196836047261188751352741260779199373181365262720818309208660809006441314890772737893318804519023141762847442688012282182734258440829806468803397612994972223425026237370980046368296732276286240248911956755142872583741270294507132088662558274664643111659898428036404636597855021658161922123487387941480747199589907904434500327515882852011792563337907726396419199192223516555162442938572425232487855991925307785074556221097266721732640592367973445569528119491476823164939813752238007755280903787932629592562899000133826965211738528409183371779066435024387802571236758183554133406962674614209782729680645614430522411121124038479022562702551821993346005873910615283409836592997567401367635854375581312578387661979034338888526355666995472349339141854463375711577946487539903539498197026263987725347244592605554842812657425581494968331954155977648976946903496225437199925531953971541816546957704510768890390118761522218481186659960735702669120418221983818053503711312271324411843973232042949934948862010740116979799933857109675652737048516855168236938381080139899275055555438047956057433375575028671727566477257952070366891000486781638656218253761965310891239443088741511581397092828634739048700604369348009460820397591801651667462607655112665044558674788809529233282940024182975631615616449059311069604004203354441248730556461886944110226214225681682207457702420795364665233338289908021242087286851884642524491088492442690393200343173858224890439455089136343196788683990027640548140668787827003048588274489474246586872854481064857991217356818070869648549431690256126550933683475066126992894336535770335084367546742378415292990097331149029306364257904615224783827992918209630194793021819618826102963794509686381749195451544861116347608443671359909068702229199115297938306436886404672343477324958534341952089260513522281679679305416153548105254131924515573222934842516902879076820953758128373859066021285762682206709741608626892182833794151400138743250301911468863303948634248797831570865363544345075175899827819163292971298955570258883259938068984984141156632297487951985147895325965717802720083651587577974970110389122957400947643816806716171482788744016138846802225585086001911429469299906970027336426313220052332974336666642454666187718221102774805561083284532284513708927846235092857469819081442462180122844706265793695956605970053469013513774468445994921497257787414801882997482221389528716716126014174545819165961342303981916085373321231830279812992127113484986545786174470104095123791777806590737491894431309453676578056765561509067611998165851822939078220784712744616414193877179795670064816413159193469410216025518046437555956572131860825366452101719978022064391125719437150962767888848923634209817135838842832017198599243070108047300957120467586751226813293426409096319788453763487221299833271756369771180687491049485316352966001727469735758778780379384704627241583174214465533797143063941097344279397549895608985132631552988893102894805428763338216568220457476719618088336417041429443217132828878413921385553256816922468955064043021689745231715395987357896128517712521510732613301784815033440865996499604895333738739419179862719279469072325235613407843996902898141166559951337177066065291056096162892457028218923054295062835783693497334377451933755517180198346734548465915932137854875770841591963369398545414780755094113977077169828863612708349466196972743160403516986725438439321781181743856027428808640873683245065691005103537800984481304658227463441202137089538887753445395615332433792650757060067548871285839267992008502782965907562535162805586502578746351303908362748829049329484073420684980112841631299814007090811777985434088275161893201212064224127764512361166750022599995140257182724659500883700359228111519896697837478296295997614732290203478403715782129289498009605292378508910515322903943882932169994631963622966620642375649081838772286273009433214422936912745523614500644427896542387910853633339896860717096937755246407214606482745191776685498028693056779905221497525013813065444435133184393692233894266613219787278812874404671084993318575993253394035380181693118408912377722227212975980460397823322443065589789172155694647745680709375449720999255887582698098929229860119614176286141070718210219076560933101989077746228784303574823874732293734405982265282329714617538742335519396084902097876294392563871631267062644278559473969786727486010578368652939621887046001879718237232430938534687877015626657086195953200649038503042014255426589635285869027607889802626894125746875284126100036118866364450072576905242311832069365874494180087676229208408870336158270231268169199714177189861495466397153656406524290097175032614840154025037543198647061788051235633103707695652115310767006808861498748722961932124994022102515441029707190522248095923640223624650679553784927212571481286099940258957442984265961094550821128970747878861953061931000095823751573146010048548223802828206090977313358205226488843786390548249503508396322988599665917700681949241835228251369817124515596833296684304685864982807960964580779352216835014013290856546546004214962750682618953767869844770585215896205973374094504356610459121745025203540782544272083315045519244653267406868184497494842603731348530314302917016119123978897667212392633583798950480000407725290951527736992420891963115662348806575419204752267264652810633397068358307435048964158913757216978991917979293308523093111632409948538561218414777235979450871539356180421588084985946093095396163417641331062945621259205307803534039440554474368205163469689145553919235401307692989191007352601704624683403041227822300010262102492833077209881696627647602703450570236548919837973492222103308957611494246868219267908063041236009669759122452064371581200828943106347267272658810934017078214275495839773047768676090245057790874796116912286050858278064621676487145310378667657583371341428347540508054681230217016805425947804728013420973016179675089131536496940177142110264143915656905318674619443735334376712406470308421904837554670823321453759299957185390076564259954766451803933448357687313023786315354439602135253984623798869164849222047551370375515235468132367848736984403902346468263211781248752886820922706984344351787461894128461323816671015090778604025459921845119585969572864659386388176414332304460656142925771764370063251434554491859919979827925890913963256183889756850088928397950772931657640138706706816168076793841408140607931093133936989364078944775135514663724591077121736956569780899291898464801381022800112192250675328769020625306758816945998905526190264729810024890645156601965390247503841419317527167086472897715349287783079068324158793758438053524475063430050935348436985813354657792547150779178112796216887273618956051581165203486459719538937011965189620758792042947981852149304091092339641577717799725812331585941795978554680264203083063390972232015552162729646834078444242604854741671941952273754236961482855959681020314246872217555909940755534142965088946961087680064125865851485261993540644939903195880893071365161175224002709121772029087750428074676914078478452729570176016532171352167573118961374602149389506706294523378648481694258568672729773210275842078507105025127475469527325832773702576579487850339387251564348307505479951331013521086308679409008435876712027448329691642706301796612766127255226618933824726906132569277870300639267615773546378224262133383372862798953093499748093107586555740275534307723271414579217421133686915302017667789451092329375828225708707257964947055281454348656111527035888571195716304579881070800610371310526966389972134785217269987088027660755016702508584494725030664695902061369272568091300715348406940259173757132292712387463955933520791094556091458882305002738517737926668143034139431323749960045947309102070073064333220739117438102109736402932936004756953327840529250578787938786100116637177608204516764043108028764507713991530167777317578510164901594227889691843032936158945967749655028355640449845539640605583663990568109112070328311197214753513057474349056969775807042736507633091474825272763931568031848418679920322104731178388478281799196898140910311959739077560475302375279965768724425131507820076012453867061231666691581423566602771486100286032517331874502722691305036446690864325962188265384928350627248619066391322433941725181498470613121166625997709839784491110475113649588112284225038823455346784559043925182526957491038336775083456014612469087809441828513646032955879022028980368989007749141121302089553914718913088170027091490004232141209491003311633278231477653961054095501763259516298234020645091850807129055367118251391763064109784478264062177089611027303173906802409289830692102634959662875000967585176022542530783459369001657639588874581940752318280962393464009408106255950497210226077823850038513607351323178727197122665523402943813264820635314466242533592267844689658703560318738746647691148195876008144576978977138584538997536920719859745941949720133024565464200287788696160380442185164791366490066843425304724337911097328163972427282032285276287858098300018816395390401862118768467527344215570255749338206227804514420033943541017230745500041461111866400988831689138571956206118254672299526141598907270776797509295966373004783251252359226702862245639295786538460715047803357530481760491049735364389183791608006847701644085753519732879902649782696371648692803730819984556542445187932015472393753838287652802862502873736926374946999972939557386025316295858125491609506782682010655710075920663750503808931478737244555940613515403786045765459481331800746744415553538730796506140355486375887449569539727493328763265926327802637584224475724028103470989165240958742769769461206160745673784502446470582871795557081204498793053797154476088814518229379932282601803771622557203238894529044844701726256261054919766168422534415801325936012883996273982749565834666149878076347975560482541772567920638962105766831676007521751799055209656832670775279494908699911004132397745539189942996820489264261158271254858756310452039239274708677310923383625237554012645728834948088028662935136127211396845800867251702177683343352795532378499133318089606673695241639784377117372277944427616726901276046639565976571278344356848469804352421277190139293938302557087459830890420463357109302064149043625720042602642324947272949168834325758612383180343718748648927214633616574454351664586255570879932730974278630326558539887730370394515604164515882184716638870831483896759784591408430218332528458929666739792120535531611585255826836905586508301769960028909355853444608034490003576074645074870208871374652770921217483733201064518866663483662888820150403809004135970707798381780979703517745734235988701683379338481237336494178354965502396937710186407697355793190861127695527286683765248031566138820832899553356769962815288321245125821425945014174754957509291371316026020922987317121659008456271733670267148730333822282903166960021339018651311275665128682494746101174153100328406263584304803919791294050321509414388956698862666872201042450561048272560355508097980958860116797058335052828141613980522322783317093984851684273132574851781022550977343668688416065003897169289418242884269639647321751178408584073370903726579785129741635436383602411063813698707500250079335745172354479011491492060454125848002303301106195991759116681041961675580611063198184584939420393441339936708389140081189631062918145095643255214808418551944427016080585490967382214528365642949618590646424677844198249305851383000351934479895301387085080021555039467224994404196017873425858036857351564604866329550766669454186684262143347509351006502923548555879555934569072632408997139225446614466525578880926045300948397286835362693155966368180916654494938406192747160467364653602067188626688779660034159188383978007652934259577761150286150674189992626580213083737808482145755011800367517879292566898654259542986223518260005704812266519022243933209252903013672503610416898783078028277972045187595182852745098591641240011497423103130493298459732817826528236241487529698419179615629728624352447911601274770935451546783106455253235337649494636939599329796858063744506098318253080294281558630637535558648512774100993001471274501063846933853611780557479172137766897266249440070850257491877618527293812786212123661537232421728668899247277408895899191232034556023421614889150121136795617557262680396214687289305588021763100910875051906316200795699818360015962034984270841085828091914286583531718784378608547611818170271936011659148009650104521743989250076320358850438650946056895885413473500579093921787846131902936006196390491133855284674266798537627855121654098834213223596807707740460152071095292035780405929225718479048454293570335264986751786076901847091525411146579952299080489864976399237306892655348599047713034096585568968966019842222784552522515385824041512702456204618855376493486316372059467354555163066301303370750807246610127378529224426680977140176109261353258734535849408678203535744148674988554328170484423692382178987600302230913187181811850775327725734954795925802986465269641340042038364344407797358074278459268616861791378911188858566836145489268665488549318167076156133065232123869830905843469004709208880388786368673823529803816988192055419269201632547398242274677239057463591390191731740366957815352774871414812708332840972208419080269746400023470302730658593191060276094358577494826077331525372507583848150335009661980254857925908673551345113631627409035420502293580103911217562405875677696930165080031054385559709402158160192951092058956218522267462772421037167406244810676687459810877545180192399100877301503495957329786693187657881713333887271486198173607195572581727298095747776404868315374360813870775278709512778929632347071918782173628843825675567609904833574075463366951460791087386972967863274132906396205403100968180882224804626679261876334450811260438117138985993978470602744486797034721583182443901535750116165251315803988505749068160639423853380306604154231355384105719656782327160962506678196799377932626592248208854537516791011507182658836107613496236154513774939051339937606585281075880412640521845678487697326637538903570894292539808545678548502125192602621090931099908475993107871753351620285987501378320393815566779819037038951302096220952895384001372491847440701958908905256257968943831350543372166222922763481611796330332739486177091530900146914633990690250148103494549984795866395641654786604293343177481111882818330432141402114832859613370055789483246329325363798908279495579152273850612629723194216244096185272190026307425354972120368330198912107698744198630161716199540060518107795626818790002591743188323159936755910278485470450905984948039343493381460491185607532476298946547590185188331389264925854995857892567360992123577484104794583553593053702593016646552598838983799741258896826537506557101240789934862114978620136895164510457313939348040192551744174821691066471692994961258268844019270496123345751452158826783199062241555908119730039658519365168390503666295287853160493108588953817542617427701770144428842032720426166867077066201705556732982295197185624426152946757005211002615861915025302503584291418079229753966048081441293430480467042962179810025896673537625975383428855017368104207413511337704643321573999051977543775852248087964342429559192244682935545788839598471044368380612903873092371131442865574379478738892450194018679014505276574032260257421145830612910587985173063434717422551535891756023357405929003844744308427249107687693881097969989065955086832751732385456744705849459816034853682719564319800555731240607795036155616067316308894356785485684605467578816438125401407859321016119108580848537979963724690101867812821228401102771033577222622967584527280870048633108638168324697148729741649317802548354613900815658757202624078985594417119761041258703603011658408871211746821302318931861549890629395048872797849544771034521282148482381181787732788871952510229162516551544581286661970539932752757151446097886575624840435092895040484410642695000131421353431718946745391202160992902895875412409467871590110072409575131368568468560184279708731642405293456016759432050984715870649029837445967021886581325026607557749661383700613888634486556667131235733332475359899040975544545773469977384449319023209254542955119160444634976658689743029272683502742125252224424381344599367537299121568270540232089724202015460751075570895987892878890306937576958498026448001044395954430195407104689668628147181397135979714910461956117104811972062714472315427175724394546912242178592425009721413487165744249350260089113761398463536935845009996189534796195362855898328163368482686656141921659779981956851455038609840794488174887779828914639652189783993399828960235277055896115000624547691648341106098558468764081271923268438897203759894364042543184054025735681938241780402741460081041555914005083856552366920390303053012871485633582534132609584693572113061372037386000468515283982437644231272951629228587699246165763112165137327245349458546576361655250255509399404673369501676310737008801996632032175490893874202089371591504517267910845103932895158207624570517605806024406471659415627629486895880174839440694072917281464510326950773041641343991311000795722241574893573881809418656701211521511168050523325289849915648934474744077249974915958270744817687574086108117802741032141355895640552057950490151270865431564721578781979611910680369993141152129170248012080737449498120383387546350210664544462760158579494440151941792282419222937166649927566559905448020649955761602019031303710017650069252388160925333012430343393787611318554319954724859143512389008223636666171654392782266213977083558405019224854478146484349742287439372741283462518515688591954751633073454867008942658764708541941636358755850129755075003485599815984153866974342578298834792342424328941444985303531767219858979612550087690900189596279238018940360822039448525567039117504577198472326704026260602771708000518170990138553236245800967387165049149708168157211328127334331782951758687530023318326902060520980100509374836452844618257825447590143401251147826814839958938415390715979690751031133869241188781348909991824629965597213873375625392778575022731543081132203846608031794795121758134200314904969189744174597157980477903499185719741214051532304444020960375288235998729091493562482816374734779760091527698549986138353142250113911275070160839427635605532764157885271023252654113696083865805618917118426440438868407389241469538683337396053483565399196740703176713774117452909477368872549490700376394755859003830962209274915787794787052268245670927932217684627846236200891556539844526386078243786417324981680775411645161507109893324013151498383973264780462990978254667898472006601853449449820487797633320355366125290888263278607603757787714717686588032492873249501380017142393570142034645639606323491603834650480122678811846218928340553786908723397661899765033789287744450806203340862164435995774301529000526018747488195895925873516234904687627031198852839658755468832242067464410051806184079015826680698176784016493700508183467942227142570273341433412407602408578273387261323773798178300857192286284735422253524472170534581093910372302905093901174292199842724194180955622044789375275126480320714430905595041417240571774381883918297919845336945321414302726743112323276186179655860495181751749074817608640512147717654409813407194466495991955135917956360053627025969212394842080895753391528455502168223618170296983559075144876365829280362276725055143884517389567479153837102850120534100560398454384635309654668799793937910699804961024790500201997808219428639286945142827215466210419192873632842586096476970502712768275367641276758371399907140846795521246443826185057724349585309888120661264474437307051110981966541013434888431711035517916781003026660717358575630662748149417108645926068955803773520914143029695628584250786936141602718505426569300351374611867592737313804467744624480390912967464876477739076758957670756523713908134723103518275207835307918659525362819006708951211686514006528876872342789059149219581566229881018654101479691699961692300600598452044956321977944756781473137216834489463908210489552576632025003552629058798101017281362032059611769594762946450653006195984961188373390641437910277753667614511474833074501758284030426086545381065999295429653913560008968103316479077509584935277525433816248340903850475141351766767555574575730188170192740688649415798633713025403593509154379218846647026277181397861405552664579531109802120568872198467339613486286577549696133529830378139181896127489743604447055006455194459067271418512467878176839260499839951614512475218896900796784594162003466442058015977011397827460757508872086583269435805273998044135916816495294579150975668241022923379575111327902345611530153664169659832648129822393142890923890841635682919776368132854261517544485741519596938980889238936900855165559111791957464994789974829477129132958634630735674694348520497794238170144392358518089863389793555294792657132651315399083636016868543215293761512680202221938631626874398943167705838175091124423110417919481126097227043713633527652454868595643990755010464574727557794111571780011379716761675004933360489656232735965486389391374780425561377446722911642283004024811496653970167977818887829368986612492731502307179252919723170858690586884476561345539855689319143761851874202874807600549598317567943869668674673244949654204413402221735953228958640003060756491399382250100489892558285459892429060620399387459139674646379584094575062969811935786676142572461890035465414666245319533095493453991849296601470547617380634793599231818832220714340703910695801241785924808631204083155069113583155393427707506994843177733456097026631297565112525282031149247162199356039961804488355318046402455850156375264646822787192719708852971780033143748069572059186865025882705360351589886236889746936342630235981479431432857065366213939174148330606177691493419543930491989923683139227120735840772418773058475757548492218757597490478080773830400015900091008734139898856420671383512525201178563483603722848994487434225403773530102369518043727941721233632252732107254919132510007092230182722763528788330728737710120843190960423745817076371068210459663065421186900181560038763652011314562162956842944817971591577856898969206733239673801221443660118578253485950582422536637267125605088543845674168083158389925371493190781899901973942241683038602283578797510970635860113458880241515038059489460728248438088885666588123748085314929912934483695319518730738340774860536665028905376982255799899114977400304409034241797518408867754243072147168036360849552493809720665892598580926772239271941143579687307261707168693262495586500617465584525497175590011430917637782272863926221755952330160857096755782058141686058670265186912761717986471734084393705457856039421149290281472408526952841818237151601057901233443482916765415236864629494032584895382430012240041113306062109045894997598117382421051402127505678378162640849531377290745620160678641170502222137837926666720110595396571868256233036998623661209649880820001519145788385826283679106654432122839677393656911086667403911212384479483725371081665792641392575041913705050179912276499102918702379169629622862226593921093320223207030838992376022099224512824879266538163247329361424610487319945641117088760084647771439043330248818882756519457075826147200792089420074187031362868001688557809702661223427606877096352966342085141258603496542783150887384003661399796186035206757751838877674863211289034732677068982995441622686977571759731536274925714462610054027128178234896749864684976260414631033094915452909813512061970404081111718738928472248859837329592099098217026597591117395464521047974871714059862270473788038381030230143484369389746905458946740910096987285218161116198632100970809246320462025212560544440209054128288627746622831739142247700151521440235819060029605765513087888822232937072398113075538938448906948503263091043144164285202217318966168138576626803632309013785790491804041237001956249104560733667141788325262728211058914614518665347962262310723725805303980956690814448177949065224851118059120691013428698421754646082530425815822787606292927162926435493215590897511048539105890656351263998657512434348195950116023050604462644934820687565251211716833163152118759245129315102033690334405260035951765347167761059516018955454393709336038456751876130838183127499092206895040772372180389701895862171093669322757615073768182239920934711064850975976972040701241484020359311787057323681286357120343004928524694999269645110154459544893248057149937705704317325661048656107383070595786937944568772440029285104331345060201409639829802094819334212338905579734342490739181937238704367587038416142722635910736921581489546323380067669837695010497367921568463305047697546561593828042316566378776642507642406522756446587270635581476370701502747338647683584258150860122419729548407972020060474707508618364635839636933597137318457741004045089463024576372082284678566016158618484020430857405508212881183324040159573971879448325245404945793497039564052002089905754381867671521680251881186668656250850448456747710534703739029997937647583036227196314121814771964503734665158226907588374237060966801214759942161901924260343114264248245212645670171230863405263196870475383641667902534964129312688493714880517872519607092757706445718647722777402147947864291934001983167514813019831352281446490313053840674015606604874796029712642382251823578849656201739803586912355449614409940195341254496765141357318528195178869162386775235195625421593346831091714199780304446965652149066466347933366322868224743638824593988929934573051263838820999713901146605610201817713837697887303442102986011774010981878282034900090227713554022756722326884316996910486566396353299831982948586699025768869123425432228411017710948836803670030660919417912583296192141432166936715491088843115484357210622135920353460616519693759268202957249090611582357741456564766597736144438243508597434910870975790763770638302538404771470641113253906454961733390347934943472363450718931331528578795725279485012920723803187312378196178897333255381054081125184597943244763795697423410606493115409659959511412314209209111130371063121389758025990125847421350982102940332919360702663290154052567774259104940962676150507702267297494589360101772525865079453201593521927197191162894355348500295944161724023713375263400690987620507844423715756400149509522623979185163384140574716028208652678492931547846681611338104220419732858156380856189238114983128289983791321071873955428244462905059587646625111807049864050914554561770696465307667570693234211490573864090100408460739307475699997496112968420529175960573375962701742591800882751737701846022343752739880629507479508687271411647403873760993691681257097307124217886001110909393624635949498768499989835263511091135043340721370900555087850166952208696233402323222646722534698503866925042983846276503742283110713157907917464275779013411672325759437164502759685778102415717757667565317186479188229723452920821392685567174654661050047057529793309612825032328053176696959447826144599223369994253742576276959493504095111791688764579082757887645767048645529958789258967122671963293107668553751423518155965087500524377151204129738424541411108734449014636007660501099157208710787837805912927214300664044582398322150184322568373959338535333921369168307786998140580931799238065621463297852762652747446793193096474722545843471730198306343464083392438010950356764736928744991743458932293613289769156871121000819183944477094772881633619679017538705407643615465832784623427342154059133730359108705129653395351889761477795440193297245015746276236180865288089658999195319838793970204208963628693584750058159324510637589730249392629517979068766747823271318966528725790081578887936369930471909655804465825911181359591718648099552667667306150748432600949486128714398825012597770482074358024668369011280854589554680552761501105819941901205001017370900371257213217962169631716133210365264955667109920635250855830404371277867752229181877299054937003260068925357567101171961145734447440429877904922825329097701820991226170956066828544634283435350458825825563833875751368905631582347022884250273337256191081478522193484041823678343362918932558368859899627204489629013314047697869884393099394003483567138784907794625454409448965716456104441674123678479491849543546295876632957527361456246400957437529554602777650851479066119092422142708619571160603817825416885978998671459832089799809282142575733973267149568445988441702676308658521981566428717926294442594781123462708251297541014632503135259037711410915090087136132859201343035032066968166035398705527232242440777980599514944607633019132723146817845809455368915449775550109380570269480122993454519454425298502068633761030543137757658514153566087974593132885610972419866333364033284877785816929456256147831715158439436308494013219049729060096645440918889317004219619511727651140968213308002447333432052848063006058879020309471280522226600306646864405443421350098291246268556323867917140541270622503422944420764029510437099270495666406498286077999718616780189801386593276596072657595591519441040020003090003947313122519506388794753593393609456452319561485701298849447364449634870715269645000190912229542781151416499957242659086211025392369808931246837138354737752695210846695302772774273294883526300955918834317175749007363138496267615956322774800489362046346858864679936385776110650114546942747851285038350344646574648614498645931244672950028249767141585210861955302809599934079972836006553460153532388824568004087343813998296949167777408762495133169306055946201077234491946906480875097671013056266799029032560148200231437853097876272930782938911157105469654154040757116753566940116339626752756832471145264278921159144689907095134486167442178987370156441953313773208227653243818104681105648449524001735531598775775100361452347049317976423180138113017137079314520226133829658168573660526809119846529225109864326043376782748622883294473346023609160854799896664638225249307978536902551540496101494613853247863549073103060484559441087003870082413949453558364292213582715764962421507802253504090634239345962554935697143821254940492932299007368474120599536281205995774948260683171267242327156743455866497036303310234164556293093811971332853403881956960630962012596471951622191756711353295933095508615520389669807572940260194884633206916147425412172339199442491105284475704433410102005311843938236307382590269127680169503391873422392720264156726479342317267218144209114174841741119401210618564728194298346942309791310925403129674847899598575392877508426817001762977032338928838739936110247902239647312253437395699582532033856556328368892373178334364206483371465538565324606181408125856038201909918503734470423281526773946475670732309430794644273941104542137450883452829642201346555157583059004623663077444154044030224651365064676940303965512528334241493479487402517745782579530356135547731667711132458484215443389731910814573575793012341205635467899304916234597474323459301394524487299661420163828519963630993812204323326435503321060745508962210337207532225983777389159677536505548788095054267373803740558087395461493055473572240818593382497260403330847705577782997126095984876776181780483792983965396312619008135165581727406625440015973203707301011807042444260707573444965381628434315596984004625081270815647034965197135972022809606398869417731764078001279985222424574492419110374199454519998481400669998829339416844522168306294093360526523992437956993495171137328755983347611360096898358563987753011013062138291608705742121311549326338895020178552986961004252008321218219564802318101294073912996397968240414391007354479511732349444784648051736293361090464723615807440929424760029600385745683646659832345800880767629111877009998016234696265663336495265008955236759696674698543975952014951457741052260951581825625922919693107893013665774913237664790143704181848900736335591629496673423690416008380826803872194576539692023816050738792727292668770029050616686100531758398333234961414526217788438321510158930556811508903976470624697084757392535803560226432849333579602316311502691636688121591459469352452684065602695356108712389824570100459221197562071210494879062254753209161927384337996372677492320934431984740765269185663426028643683531700412110624634833304692132697023089432281780941813203629133717949845181774190686081209657812762613968468739463008000699444244967775611757602677952702775915760294169685757268647890169920129228843369039933061875091338162573332417947348066864658210542174244916007279657748879134619865872161417992976274912033639656352852585741044883773249133425967144332782949982956513735301227283312762426595968909787131383330246160792022576214807882811338400725863925165255172269474902536816215394340480016059879772385940206618271728883629457059749456876156056819385036450060178656271577464608504143024006868268231491180315817822305984150834789641675736047976043563980853061669587166463255230232744788415043237817893211920879971196109882575359839326622242135683863950943299297020897913892940268625103492563055161016157471248371110785183708236082375607401493056137391393566319594932848313428722035925826675367027878060234558565134039574648601819376147745781556169058366238400966349333236533841366381481101082913034134336040522211632172915572340693637185593506630266356289948769659898061894465227785364438728347474367122155405044485746283641408043339216590069136345118997928615447744863976354149894804130241520620330983363233459552141122966845320216003175479740936124771784532253506872616187788391162866833084626127924551302699968771835221806666198519111693620265142361132195500687950554519052476884294303468314587515800383983167408347252101334264640031303020165737776304445780424039793410526645858021618791816701278101648916874373677894919689734982475381740008420314938643585250722653108779984248749648047341549158244345496018283800000604418464123540929596936474269499225466011791563124705716053467493964237033437715132536947671553599869294053963448533001346844923413799825927548783096224095906944107596498267726794084482320850573762032870885183409987868547185083419292240468114719610886714651656805182518303309128911973165593813404243113415246224671824676112393416121029286204708812101321129389669535328794228639029657569013583824736987793926266912302715093720334265726069472200956821370347675652730067186956851028233994924622049011135342598797750267494459441089264428966844059754268652624843011064084885263451624361926961829114963421064794696210678742022045937462193944739307070066091038593041602271363799008327229882436725530597135555822789648671439342139055424834430695504437513923193910169928406410787404358248799916220109433013040779711057014428005409991040943967352201434821831720529074400292664004008792185167042364701518630854795771455771155227163848513339540109166548234845585181713957571593911342033452986250960549493337068485364777595824956745629191451069730301145187072966866322408812099708483528167465518071039851140132490536013580113802579195698130107490340238046195094964906241601867457185540904247462125399269824916205744010564690702544756153052829867349726910152180155491929640829879402667701345526873484210211422717404630391677650281007206591436666341502986985390223850468028942242079336997467434026250315464826842284962682506142135880481641728527555239291226964243765743134598946842792711559676553981575991414308704807798008917658731692301948713936243604055524441195028375445517772940429639722354509433491104850365167945545022779680379487922776278311926436167166108352274990567902338539558074539941379125959405055382467384331310940146603639513040953107783188224329106684394562715432387818737903831703063269341025005807934866367651407400621179882017134615658576962085072398098662791465399869107648719819259184154221096429696416838222322898182522461629430972150195778179270186059621037195693460021864033956266140342695280873474823911513811922462646490446144928995355613207989276068969961274062997734625190031514240180929578330440871431976901660828969300038386484492765448442940339656639159446033418559487374386452355523062010514967570010497306202709175140741313242705873785275798747216812806271580604119739553852795920177804570691643949165019385084989729699858171167097891691459762873460336907679516363473292836773153558452486977279004307157144130429587434892683039601826547923963686655957563233375576575769376971375924687412723526948877157864015032383250120769312783734423741607922865847125469719359359995403367163838949552285244674577609669060307797290434846323562247967142211094139549706100340195448932402468258597079782651650250196805276540261103442718251212457260010359714143531754098916645135610114458082906423355591058228847948437736677924210446833776996468232179269384813909728939407800791512369880576316590312908493665636074027729596252201507873537324147747214832755205089846168248790164555388055746288201600121226177730522948534286038834917804733126078952894057268913582936123621550905011456816449965257284004857119292389527750194527673356094891309042023620375222389555599776222380882100865582981367573928336079727908764220300802642109669893949364667963361030041365737233005709556310334215286412115308293900606066452319772751150287191247765336954317296767358408394536216798689946904706597766187791076879334116173516986716116260327404353865252382662801078953529444311467196374934266304194323130350304573416690579611215693761526995154863063264646630666154981471934604310136249866742310250563316909616876739323119506194343476567104021321943056388537228815801349371146295007216764500068789344590252996043259529876149023602607984000705537794728577090042518637823080524542266862760221191710024264288120543130813203905859295722206691368761654694915143999965631733498686915401976726097547571875483898530291243328179560953588190879224169265258827104082272193241732059819832814879650650275049976449185070874904056584371428434779905774882280765115664250398102439855187882858722058602953411611714590658217873514733324522369204161360573635075298772732008289600042172402533842638258717155528008807591191357834825844067840661754173308915517989434376641895797996866890110227149845817896633267121147151100598040852569264557248377658615638987789080006321170463863594479763199291296890444044842442696267573475944283459895103007651149940892307187789248574958267797337866109156037431166261837940777127052873271720846897156402979232094809496711281706784652648963345666216667640693198884849647267238038315874801226212450386404638520448645552039546612225736922344948774206176816278120350963363246468356553088822211420381046390331654284642315573838755426183446198965057786427697949781275986762626076176164273544282557902031282854131230102443327488589481309038946053954570702673565069606400321564661030548788728952387789854721598994832367699693335790515935650837130870459023556740791354986030365243243248902153461632749068985053964748112740016411188257592584103027983853847313742048831889362011569365600459240851720326197655463754609486724457539451346368080071221545550395277111855621462635781877847050328498235448393920861997368823208548712424494536896850855581789413273823342275736138936023484090181453148013849583647913837820248040994342947278439875831896869917212587589056724952852517435127850275652287240601723196818088614249667455889357876919265466189151212305229178295261851766685755044466053190996535574712787177424053427909040328264087915387733153168014743337006611966740360944341672244616927762375387503209585385502808385690955998227987309621413306789428551984064068711435908449641326927935359113536939430784789892554888486734532929448544516492274086675930400438235751013290565664376989518685326791854197425991635673417119578785177805464538148117287198335695268709799356283631615857481052202329954676756877277942256688377907221641815297541658981754405197969624832458502058709784272315985180772923080016190323636685352497513622064845776122524471119865983615645389351459249834074139236267886922381325315705856837954022625743341804941042948574081415827921708964090922362927289992429011465461175310999249385095164075879550110549293544282165938507090097400446019579754327747004172111366182609299231793709330155766667318068216582789194463320469941995597386389006513979493932371454916140474230928853741770993585405266420836437245721078186488410979597130324156593615914380916310431097843183455221710513700217505597058142661819471599995615907227439024058442858148820555238478742234583239593899579249959414309071369976978000854158015685365070116391977331410451037650793683670173329638976529557205750447627785135424629152325427586901363631469996366286362623964189071300563096972294930890350777082317894185286281621954405783475843218023781594050822242020742379782756573064961514237359294166156292960236738393598798036646837535100130852952187996305365586276428011557407203486970429973929620433472233363163969421607191992350201507887944253125425954555116869873695189674623309210320317169740641629028377504491957944136737968325711786568108175553378852610738962651697018481391834678152671580129103432709778110993445872576925669171693800214051540994925262951477106170861626289698953825754272889516471771195113175251467128378935138462704803840587391117981991236460798839151164518162068286462629036679251196460869421121902338111420045226330638822214497242107451395234993837947128170687226508464579424133258116029081075545459614546271534815344097894435780740400023259810705902075715232453732057874036297047466411280143134294732021727252025730327585918894352457559443814767190828433840837068610404858047332044939563760324951602632979855917623890979292966255217991683221932082912701643913627765980939452321529425853800742052811117382133254064767552036312593980789308785775793507801830310886721068549646254677242032569376570952884702313554685985045999527987908164595512685954379935045162786822703408942897826857734099829762606255499273575121966137014823692898213191325741164697547343142733420029120457956732361077330330458498457544465570127639003534265353923732313066454632456898801660282324329162946730371135238080162339071181716339188760891201004816616968218643409342841497539573391505506879562403831582859270964180849088116495315200682483195883207507853266976727879858230416344679983064857609821726282987786546429618390900837533225368662536053183730874553529326800785286175539844517216191969506622218163343777007678346952481955922417357816110301422888801160938464794646140777125540073059073105263768253984972639319481837590182926884268531698937576298840552776731891445834821182890118234333450476104779339667245575296205446481858099877304002809106162511130306613507899864887484445631413524911181678699480055819134440451252234844176271745993966223943215855452835182290697720916013881669142110804452209517360788658383613602992310105062252147344842099022161903383611776457179621667824269021647727141213771407688577226423054314264560201024298686859571440832456916150586899871509074596732960635606163174656709344113887146248054729705843998112040484145359056546968217924913891244975728856764869143334879781726846485797875591731456674877273397216099973042539644360270273125371108981718778068748321440457684834054787174715225147583936186407552986530882842089232803503818886191187341861855899347586587948182588336950631746435483666805209825288935120233209507680817597936435139364801336336989142513504204057410720176022455710320354851460712416133151661968123654045223163956046374680803657842244362454004220019670659060450637508397444561042581152598589730255475794002848132286051707319645834830099256446691334390005623345881342530507039757533376880198394335586393278584022630840427511245505904305035875031258556474960751802996177830645803764630638096759235614899834209392063509986160907860208242550115932659042999755714940876165648770404135600246724208301793971069690268701694315332353158668527744730846959255139082077372719293788790606107165948512820286801959955603194205027236293347444112192580073693835777060210662265949564584283775528997840946949361199268246803275678156024263519758496134254110758654050803430746577345644535811337840889956030038831693392909920551052050400632859230913076828208629361105911962324467261616495919394066960388023555894226885279025397096213627113178016879839484197683423407180914707970701881332809614030965378228909698868701896682990820863909095934435147586576529248763793138616774069793731159709224209931380000918275633464062956488468585187315642661178713945045880494335570571851844636915713386597565394210292919503668487755069593004275433439569819360409529759400891997355868051359739624327563210437023772885076126296132383030948870016264247016474773047027243631119422831978798066070792551640086887273957754112097987043479469047247962162448370407731009131595005992979952383657859205263577188758768801149539710361442066158473671481888278490092964968263989781427755885547156081120308096917156622662524511812922848349922312785623414442319372288814006880226608861334014932933120725314391298580202355133766660778851328516099941906673283222316749621301891116235172542295764447648102478775649922505206782614176512378354504335566815767926945283407350352315520757984410853778702139134079755813512478833256628415033967969268438463962480350838011830280635999734947375813249741881688599309025856459912696981976436570409796531480936897034602146789699997798564483898660151689326141109684947786792494281038127216282133627663197918877708926327637010671953272963302289302985959354392290162164821680961276682154620613103857807520165116624029480708921658943729444337975231913201157312750532230976140041666962253335936848825827692893050674115422983504959587576430858151763620001423005667191660686998160922603843013697097590907959689459029267209736637701772310199635584650780556307734100490303184841991153128992711415936184379371161330202679552632937734639928043030287099601811234248399531727076558602169996165361169839232368150620904781440370799705015215840587433893990240786887521976490484021005233983432743971256314258687704084386840133591203893637563070857338024988320358723851442768754424627377038601043813013367419370406730759867137294511144032693463666135805989042128907207262972787310065495941443033192809332904757078687191074575084529591887122048259170108065037590100003083953126079116469049801402109840617687141036271701613326216205929947404032798115584922835681581961803192715676289589690670824603414590436946325570929430225843412105846987253738796855747063817555952874550670596490319459108483011486239355955495817126516492671300656867157710102085466396912020740904384129327048264973806105736524839669994043174940572451190058816190429472891756382241325644698573596385865252977553722018940679933956760664802376300352536806236109161782534627579783200542347772603012401312367836133327504733885574622966835149797054976839373929351155615345166435987389245094799989057294367968189270003305492341494729351672625806088126288200725957722778757693459696051433559670232613297607813581773247928832287009462568339810587691380911666449410716236684170868938609695206112508013594700181786925265660843102065683784048926163738716466477071460181057829775676204853335912994399037751137230879313372254898393502602198302366805090903955754975098937524426594683758191014246181244438522262779510008863280648128694125673883879595380297188862696395422281274149658600002056826429253443608462373965659029448171381937368333882183328704062191143457373129090972190453150433053260552976804273479731509017552849474420754406036220731098851414598765823920573714702704158145174253133028489415235107543018700446230819110194742669618637324536959419835272369587925302294280134718193687202911393549660945084149774051284989811262010847223597328359156536197776578568801487017967330465301474549328808347484256880808870993206434635734419015391853423594168164393451352894458655518753137889357074434087757171603617155210910297645209899678856199271837977758470512958669968223771249916693384990597851126912378365270654292744341169722402589316907701392929048896017168931729665340981286798850911876107873687816803954817699323165022121787871298873229024866778063694503268367668472393058168591886835114344442968958065182550706416557525897069520019086634591057684457458712058918440198293345969270014295022760811012031652074078061210267483402040809770568949297809184330732989102989333625829088031715229405227205765882727879343637806496487203659160567302121435713787482256932105192419191312922949871974029012824000146646884101371132930649672912481721170429053654153944641418311840818156309627038369391428690415131754924650777805457599161037692014011136471498574076389388048476741495618872532557236761333183238360607296376994440560708990212185350769874570768001814427750056561383199623637463411031413909873474945068917434430376680887142716379717408637321412592773277968044195561696740930441067253036285912878355663373274939767661626572857034609148707565294949532816913950082260062647016279016362610010046574769686589094848101890169484732528065976783240565385712490592736609945610063824314479378846870980225031845988948173532286462607737085907830638903688544872448222842744375620024865692871618535650912663601987753073508644684936436650274981035494890767520373881162699660828183327211789657136565809276276129397998358574381453365960708248597910863737950883384837118797247578192276192475484663658943226026389456419950167871891714681632352888506909567368541547733007245570348054128869030260852776707345708446169125312451961877347337156052388011035471894479006892856068396849328294728692283152494509475100649347810829449463733057003179238682868375101312046185325619527570843647177460587729417384294080769193838419424510456702680797629857608092235235755909487111290068470308451258427669919589917402444189576994655403603981755824751094427849682084380841846123151409421782740021475086529524267638632229795205343197987476607078918900946255454430839315966668999180208807056730737863094297607322779120055041595351645937575184022884885022452276589397266502950137873522184846396698944839015375450043991602015517993140413323065521491151641409822121255015020043559340848329505026122641927192078445410438672561875189406066316464267546738642108253382328301967302221297107515889585628527084074683687019779349351742605803756732131521886031729946337663937450175871436732158696095737420641589796157520709340878920405921187915700688542385584955135429884142723990219936836364532168599194587520210079801247676251122040301441175569227312342597824440809277524432206802128204283677704789499620693078469302810837152912713991521926425959368223997902980278133469106686336658801624328127131291970865308239332470717844906103916043965198691460480983822650782679051509259769990871876743081645014239227717542637571980920132796133052529606434299753319288565647968824450477527366049538156329016390893653837174375582557648353119821945526530851815473058811220147705253756867126831495393927468620779351071994715540131010571713192865041577578070390037791145901149047333296679185614362475300415795565782693287587532005763430198507308298118611925789204262916458848489749533316362185983781754553992127846769386451038813694101847809628315033207976682453489667334006492684249819189702142420260860060202076696308892284110823231017055872314347295473594182052571308290040534318026984702086712969015038172271081749177286735269135252951961596505565018283052968784606421732908503923480397034166414999455840524649625532599295922694346222057242797876467936988295334715370046374078714355098235218653085553296118971667791898182100705349977213726491342721582697556835704853702280739199699262094577404323590238893096716091211545601333713414495918427717569827925855300584016449823078900706792110778223844852458556984294248765048189580226467113899662432866707931893766828260063103073158996091426122449989061126553915161709118828240629788725299920217580581413291288019408098422321429882613225098393966702152547828597496903526075764787017729139180508093490529446278650772791203194989933212857535474524845244357323762661261524087531173013949605474436449547093853541574420210867622144636379217626530848329268900234311512993722414438096071794868872656376318097211456390416612507862665438614654692480084214517511514835960410791441833359865203548020477886751137990608873773433046515259306910268647790526174700498216192770159852655686637066423932728898989962577059556717197486202581824710952329868606730613425488345206914059690134195046785190982619460197420560155761772532777714726576621272466671515971873429742819865933312095399499376512275171496341692375672340692827248135705629572686600753245347106383504403619948523962262500543455184996715662548471013299947215473057046007916170152118082533515109329107836611501880715241028738772082617333011671082066243326170257018297702812372348741166940175564323713512527315066212948736996846985509228505801935061176248994378410456367696526257902865586228765455994169511868343976312349575325609657390159690877598595539981210154754510651062949228736812032424569626921686720445774345652105714871277162417496334361728785118443806404085210967560802314569803339638105787579692176369791744538289238172324421894904502686785105089853760315132940594567426854072324670555390677923127254832623315388962502318230949530185607629842963821768476822519227563914320766777776668318908113849255432214637245754078650831903813614372498640892029436780924866010437839904199875122328034413105273124891338659592996730717773842010105201292090349558744208628291046965329199865264797356141727856717215669114837662937009309567582146095707366565791251784163333093787756974959108149496607170533393907014175168064443123724470974772036287428476856222815787535970479684048458002454879136409682356089695327229005896636459445687491976492136516093926995262452384449680214602061744764897865053654708145907487829037844849165955272485033803405118236434379294183685070388783922243848565278191342911387084544124661390145554156437579721923914894366176647669213140639321972452765942699097040227446691767556964204482025888258915161644742626332207311313304794040115262169086273693757977232257468656670832081210852101199529600259518307365513779054484293120191994064085613391240457434381533365859208045866016341053823492049964398759752128501745701004169610162468747856490031342691740453003023047899568652360984366111784793712572472488064606296509229941599757924363354068594685878692630039419939957909240650407139441272479799302781800027464647434918447049511021041757697793811883139998155369943136605187346293532997881836473660459811682621173624536964982383749071689786011934569950932676317122813061725649648526260509476727083345562172439250207989553276652375172407291916827837778564373611904490756223785235678213145556655567571618543388359572321312910828077922217343771895580636026639575246562417653483951738860335031643441092311335346732016628065573240294777363994247574585493794693663700300915735044201599994372543060678456501322658586548036368405188036550750296161485235353877219488220690814555930797464993971039146083463435277510354854235119076023965964452893819423673844551483358594606681155129330590496631457427572334959149727050387824221412471668210446386981487134450100686765208552411265566593620877826275694090255302952810094641887510375418219506315586294244746469372419919322536156365559021393442259756070560484975193604092228025813055664594195990061409154750159186567199856810146815518341554146260700971624499573572916139587090521525841677054436043661109609543673233137433035275218652541235635375158834947356678193267963568223559979159981478847138930008246300257950586307170291771149975800450391557266112862723261699052266262293874106552600677812475783661108393556966935854026120442738111432242557470556886425790273256084063575175625107703290679531671871645277088396446124509204315569794013176112054521324092268970520918626911837857197698468294033280244099338450224077303810654186857846490126232350497147942089607406954631571654092520037175462360265991321230787810651739163347092700355895080903460710393583648643418550946296086748403428717794468654988081640072918664337151888543327472933796694284641942141224027660176415261366768334603759914491558096299358851233314198449179343937245543116898802972078222326030658630630393208568901098465955370187819925220181777648356554068392388310963565100346906238039784637057452222687259523561755039827222237501026688099943472289366099222866903364024479304808906234832523801076355792489142115860393161190159384755666934174073493980903468552524009048300448628023976634917966212472943875034205778382799940268108941596791295741995831108322616584726117351042538246364492008513153041395069829099648176918642108089995936030126462816269131007097821399750012925701496160449000482701375320222771614299304123336471867019822994201171900935609002954521664602290452880794286982292195830636887719752566761356110371001381946532696919419641323173907826560709415301573684126584631150573335492909527695463370025030870508359809416319773283603734726850062376429182678490321723051441075595779833010681408254635607760354121240700500811791285605708267530868907322761653850027233645277330810889711663296070333335329864022651610397007238883055979584246331829958954125764625672959868461715306580085043785148024320634737485328231036821960245471637849585740841436722521411168803972540345948040168200073398520970071426543949204981774217162752522104903664057323925324057191452673636556811473825596679102614079905842661952272043507040271423900327785170257769540564369590741912414319495637223593077098167773661612375732822086660394605903850409044452493698704274124645521294889481418086913040548951082321670577992735062572439043401460563756560229934766322779372225845437072076410096011383578991480040755531651142028421562726873325249246814211472456319861175599582379744824627251525892917032670036698191049209234398784959350111954290149696971630232062032827329896287748538610506601934817810824027855892493390979334697208304559179232445732500721419363860030094845660452388071628761333450536634963688649836302415532755104221186350460647692991294467492560574314247706929963732065254323658868859713118262509738671100616828363408808900327259986808358817950790927772443598701147439859110294254573364517887184516396723714514415397979798067802885873486638339371510406277929043151144494371709203892292348575679874638456512285600075617295592026336340971796085209139087984052142417534211113563560666636506540599007288783779657850196848607817079734919070499767011721514024684237274754132419569551108124189234483948050733018650598457434224807790771159085178742810566836768486407966308274571336162425951175378388079375767963888655013208101059823123214522227733678011663273080431293286803146475338121782753122516973754828565055939103677559234590736449575170315663219881566971207501837594742095952123571722322319015371157489643091174439113518629018600673390123886241372045196206943575711408490219380691996349419254933031519912209043149583578135939950811544319901426821251689725076588291683626367521011398899778966386399388243597947770639634580099043744109845674739507646453142192739545208311895525515309925979784459736316622445170859431106832366984579128534604362396276282249442691296306439717591827275087432721461424831782315633985406446402965024963996994901485763579369577529342298145397936907720044053895350198422333642400492914400441530638087984700600660708810521919324473562526394939035043137234146114443983709481366053342639837925482030676324655169620659225321076143298946867014558563655192561975310297547334177208657328716320281026293835711596183993784119126473890563671056141858131498152662518932420930519178242893857738966766917039593365213995405177823581363027876779493820566935460047115191850760153935727153291715424266828698382455699464622481532486226018603938643187441904515681685593356044893856611473527731732128852567839405472051041918658085919546975541068384270193651957279010800133143309388316027824575011568932134801211550835684738600992033848339992279007494584292854300812060129711842134392057920046065288255730676866870767815234107534267662128822126271115880030980017929789688026660771451605446951402781251738725809337321939023290665872900828466011615118078467193324365879637005930583799965979060977396570462104590556925220735995111930740928339266197790109297032482876389680329403965853152268016130366554907343686105747934799109641370060049978884784817630868402905609497752245299575449708692062155765528627106677660145904966655191976519793784520554048000671505997234286244358703211827405997312800095970021615433047680635129552429672522505463225994276540749149598007781692279015988109601987575156326645280804404957495196395289068697669491654854280908849083377164843262431992138515491906580687007943245294350229704166339895063124076028635963877657209299995465204028206904870638904036151263159973288811701479493018800393412972449066967924240847025113114360478408779714454740712930888303357883285727014134603690927848887647863643867402055216281850894018199303664424745869752406956707064467575781776399168349752550818874367998756142604553748921053188919354672991512230459557803908397633401038302808783530024742015483299301210032090596458380875472412481896213751075615688581078897387776073058359861862633925276562842397911255341604339173055253723316947759935144763103814571322030977438104322552365672297387919095587352822130944372819693595672201951741913029029609717383127362927379513520111891751729504670850818739370747828421590606528889771888279184302174834929597959747574059145015595926155628581834734033437406507113449207752987829861544233199217635673363108561236788642815081056007494593789763138168104639564098835105956762648008056960959668319276806286621487285048330312368777656589093971692519634050808273012922391865105832182324180969085643581991964203198056813567118205895139842904823165470142487993181739024207495928654094180659024979831864839706911709558949670589016163160854036549764958179955594469087757584343995841918928191714574877953224042139490931559337683190425145483855219419555524988878583520535003109091528779964044598479458511259561066738287390872888771034338170620091749796839711213687456367625969918978025370321376521549292817602860165239710515491071029265122283172804880463109088805773264086424486710668068971322517371487764858519385148232950517003265055103503034629332445156774920804846614374286931595184072692914289574726794320716892659796289715730044111432974117075274763602227749978791037759097977119587000027609034097070970681289225812562600542400405137187455617343621370441923553813358633212862066970839115131629244517354055803449582376306125373494518271220875294407466623484178701788541971325732512256499724408803843437902323081359162010794386520807822605868410059539762072928172353344199357187528387869767268339984756929143798045122122012890546802037040536173845777446998005411338885875930812528100720613313294086616158313063107447765334945276481705687111208611635714758964402950354881081057195457481969767649872977539238776543355304450850180818836359389460060171053980938569571632925810441860035864814532646654707542974842732871972240653392007333412504452034861997481984077304713633750573861328685559187558948812421312361087771565821517414490518635517882750140037825136769079600711458006624067943486343217599213254599232820817248110902110110960953114057811979619625972229484437082402228792475004605517040312999996616943676101488145725020896187620959125427073306409041591312068732437481638498305824028620377587415845093136633173358421686273573883008969836212978077339239437288326540288666166176783172573011298853380669533709568325022364155428528321394886177252272512333517892311671411668121965487032185604509228924235389340993195801337716038084323583132521590982238662111884352078180038387101834925149394491089330768544820028540685774152373969533326776033147995882814470022441721964620543799346384888967266577487625379600876433231533869318016957553302507572534418722187885951943203491678682527201825708743362904314621810808188031812694993715715614424892394711979561039741623842326747513233593149651225924827924879423541110311004895812911637338618548485189394546415007478406580925030221251294754379343221694703181091772142683428122138873818667777673490280015952199653029708125434709482131091197317239382426919744549375828549241500901916204006345218182983805156965942344317740500401854568573101989182698737560540013532933669425653314390903032765034208963441947819229218962040265585376584593176571471848963868532124616395608116857778559055361204781313069705044159339481849337156793479059671782097451669906608937762368953515955559665838019248070771106225755539339792224902578694933642093548552122398564556153479495411085772509060613404564712634757479111522552411733399909623350786570141865713963626057759971651483213033404766671409797095464172068589837140620829698554802360037319691364874308433548590825939367014740781397750371792438693119627946962102875187797854463956733436199286643551334434638080453620532638079199154028613532956437552830294194898911790600310072646530916220147630251426422723848946630981375110454964935516983534336738886943086302898549159397065682836642896167585027955630422599583122802271522660006646304181419925209257505300933401610803033057955168348018597659257850456764300037940596297668801007603645819190503779632276651589073609715256347317588933886898254484645023934199193726265746587337346967185209500866773022388811109581447906808253742447255003343844815642474361875710391675464573437956985783783964572189991910349401348320282014829019683508279835594605927692751868573488099996216537361403917249786186471153430486705979945769781280225315371811636360399014284029547195568752775314014512405339338523501299838738517158955436718298683139762962637062470019281335363171753562037350055155610475896561392768249353319265547221057614960792504319914427922471929530709315301892646157352520457108549569625315109714923712956488896968356529851301901457930531004544734432757762417576557306356497115270818414918641782991689947325833040161734369683003392495871189912010746531176209141820320355171413057224014047339056814309489930296669079060129187168445885014070915456349509144280784264471314426860469419933503157739980220168971947465078720139934752075789941184834308403209798201019463441738148432875489207370940950082353166598945108009035464605513355065262524631310717050507731803297327231076335173381315482562428174381700016256756409127988123323879115242864292617048453094788554077092224966953088331013035989633961312975908328538152294485409780630938428743634888027047962476281690064385879497680790244016422888696398219229544878109196785263600647987442657562989778833610477777932671013783519148293809973497534839767138559464746791450696568205843933569899049492911191683278478686852929110906389985090832112191883444475452185954545085596260185457275836022210111135501702209014073243339769006908716425370511533672134343566712753721512330850915372106497691823456192925628696075575313079332801523085521077807319658660996092407297050893244439151751686412772053378378743173355806431312361274785866113086986560635183223953506890999987210299120561769264276552197347137078449949279079796858196212229093643712907761577161821766437834002123740163771851121672893088291778462328422963881663306971581326996447262682927700724718906600156589823713326499153198855096317917839378105552381910827375221931404832612201285828146066394787547303830984055594113469811227959763024321105352611352565272245927667404900847692115928641656002368098779458814330862636782903546039307826726138195241516646985547300363226997096886719262613178596881090808746692192470147965481562291499551918766044107351162209247261560554655215003193735962748266865914821695862663554264627134826672102770382524253384341697643458478710100391190237694433039873174445908056017013657722757121561172962117784438437915181142380276642621484581679312689396346257060698151347212333035587126102051493615013066511708318023415273503876483685246009252602897211382597994643820597233560410583229218732077057499342294308501658730696515327236660409026782809299732192774501140618021559878876344267480263954689645439433047860375162164967351071220745428458033533714346581892902537079610994485796205668881824676582137856826900231337583436853309373857611760611638150673832666117167233262199278754732301532721324907394861077854275856616035639791823316394521777107822700708900023361901074986579883542083679250804003412230186011212288663945608174556309192904520074998468507081858794211528221854708456463814803413226547704417148484746893087489877325492058393605787727630409733946374454439231647527251094613683397485277359490559892370840171281905234228513173372293437582173468871294486520621509576613466406165895331418230551535172676431749677818385581906844332101363470262378774836551764919082436313546568273865166598079143485320854636495982198332898189924819570273369508939819540803662614865512687029713493905246848250959672243717690450131300252237356080521947059801987476366815498228028734313455598635487923950872684080481790397933728497305545493174186616278429262449074714650970978252539371008494723974250129980711620495277999314603452086556762305278371671985018244437193696416938783217657941911849625423619298954951059037265516861898111947108533751013769144910123019471300778929501490468974190903412373779513272704189031954827871676355564842942428390599373504814696494837660129992614231290755142910621064482809015987073306313429193808382367429081163915353307924675219909150921432439836788911372753050370457078432950977417729270778277658087497316281641471033477055696606763987176848657770972776478732795875680272869441759777107796418317080361398098211774002267511654044579359406301531598504897549644805471828823088673895090797324804112843701580722265382094148124619859798597927270220393256048677440831049034399090161005860854788347808172634159990883858719698663748381547384104126453634249037104843155493402051353115526899592525745513331774873153102399793436092116503264384646479336470483711060566395893529310440941893750002906258553616680203731096043004950127885428790402292064382640526606570406130449097309603218668610779643473007566614612487779794326711460337955833260159949777500351878715656636191110657753999476917760698994917780949990485634402209161515480631482367903874375422055203882995047703184068234807626850509943955557733423493842481736010502738799699771077511583813716451284196113507773495656384207078468324038685014789730802790611077382503886253134062872909176182412826757838872390149287361183156946691608984169008008182159261261254680851867666651513364722651091061041673709156171988935828066129552670275794049674247077328851826736052435170047805048915459864388799575671742044117611552108292358760188407834523467592294748395135821498063329767445200104159894114636558769348589489256917305461486769255019211639171771773020868493430576069869318377217989931650898046642209045969188734981281707334432606805554204148722988472511391876289808973528124253005197427848706984051707395266488617276236771387015860913709978776951160292461508054439147534696123196643691487567043854878892711336267530375714353256977391033167255387835689938333872652862214128584673348917848233945612656666138437896713388555533213419455882363117089541158820434436771856228075675083307841309350590366490463679298005254661921900891119816625305196864229999505307713981441976369879480081173322510859266194945970079349998437861087644172872477892382272891286222631559236681022321780699756596095256924781629111163140837064669222577315873336363299782537785863725586966523020590502929764613459575112924539113711745917328256755033768019467777555616168420960245089008551246848525714042131276143952679002785956702721362032136084904095885868230202172059184303817437384372596932302032514486694803908446781811225293870102353705490745074295860106612972599234600696131304205318895598543587494003220574478432361130586027678659053861716774664442202740017408353955322863002028352295239605822213735188454004438558135270793031888086653270281497943146087702284640214107001135909287745906606820283909512700984466067422757246879650117987599803727808583863356995723325148310116138350383555274717708987321077476193201929320837041621504858205767107100412803673925163365566943912400862915617617872687874651192142113390015322114432049320549729368194293973351051489087846090005424327979089943898095507097325755647864838605900630039319339262121891872507989595474057668624370462950906493780334576668924245213824276877274532555854310469239345699484996794865807409363761713382282984753437101049368631234956158816262416040319856485918107356284087796654002856664126879782229414978482302239932148540568636895402493231617676367583670331189713130536647764059332963148006677008915043989726208553008955078628094295630310252854236303999405407151580713835597302357461279449683533793802347702933043141778855175312804559128316266627570419984859815449678013862425541764377952175846376254886196687964229517280796744094021804572476455678511860263190594745798461821836225178874045040792574129672048224814094652836808613690804178311693548700339036026099097515622657561407658669403019660556809332756540211332155252371706826500744245845767667562009500835710883879793981029802095402121727337526614655785424531130429924915043581739524142801081163031815664601736310757057677037576034880220252757612509795021616204285368750306934962842604548993186511144561663685861782602207569432954101335591902115330272177531422501990668297448772049342524171406867993238538842537499746698696054238659140107902601289200690498687148699253656620106583527284222360825094949717795119993726113785564160783262913313036570252005095570098680987976563839469218049125455395894370801176747065568175860278526723335120240051264659066687208500115679152969158415138805989172586109193968522298455039853367766648203112183625654348379638584972136501148470883976461831728257234513656759932784554455059698106665051828567806003308780598848099446432691029074654787345524141358917883187702039859568068634381154048418440112892399674735509707615131405859439555539220196138301050985190013391680614129459111069557735368592973568285387032051735666957521140091576579354161081602414860825605679730216439280142472539881353894807309136494647442046461695528510092327211033332795563269582544876783426201892177032074548001781908979192607231010018431360285946818013827944025098740208971259747615986831553012228991354117704226551269546546750700986044612236378862836350666943323379229585178908955607202805480144968922461719128958813136272923442252240300339895786661997410337969041667343062490148191376787698501899205538617749767055934844337502429497079809240078384456359100338533167269889250465274133680086166804434151672655516889544232492862540574517794019635941169041376318231408271884436840989069752814506120013118491717238673703366032141931348144322793634462492632036763598062903991073130887696349152162561805743495194862579552622707274291405942984043027975633487468062008560856067809819610648632149850076156532921555920274360761579129159368872014283775120444465193790917890768195368885399338523392924598342660373535954999135058472260383068507872105012185744869480668400949461594513507103265492597270561918076470414933333832314052607433754264927472897198533479715755507796981967826764874938730372263589700399255735714703491332655278429737339966357349212749068014873093205277027054377089131973766121334003082822424925930545779779928845847712508529763817693215347242656377964950267789746985028327541237809507800575252623767175737725018934324886653728073168822914923789714555156580508737300740927320582071151360747355283690025077784557361886223405519132391361851889196651631157031097019950466411345778384280620234679284319214421866951126619704392529580389820730737804499932375126412794093088214020514331196688790427916250312163440013615026557006051253704376324570639906069451693075248367574028177943089229596876224967664618143245068048983345084033246358982152550480694696328518296015768679662411552436852315813545298204014841484040210721809524198144398234540865261803607133957648184015163268129013506611713057331833442322310175877681922776076306949355043089555589337007140696023260281833190040589977712429289090218052082905050766683619876221212790449649518781411849284899830848340061877501146786352086769794510576104829936546163675771703879288190110495822762124556336878402909805643120974606867621508271279041673309797386762666870659808379577319253617441317127342799751595700848145737435033412504484095199513619392111875166002765720037357709002037690834637724951887067912595453738847935758414608055287028094630962452270741171824339578636948644800297954453437770642990862838991815304647591125773134404306158679367995201390247982888046774011904933886589653122204446294785871823380077236463423261723736829523430892637574016134150958936080931607091000510097132636220430062957330041281158189593885484765995357371039487726948187925801598844783976505404016917085102157091323962626725046673181605846617867414158548526512754333561801103261869980215822000473853471514543504974350885163318902886099872987638234972917849372821898583341303437225454444904614119003235810560005263404560066047416664846781276454562518694673584352681889079414625531612608008509508455029606945171103782572643746466983823488672145530949687968970486952399765274235154082192212073055424476449041061241898709030535858867376331536121531086189400614745347628912728383602372591358095505235416084488136034522477740922464831315624295159112641253579792222117388359126521310941741102826870515620624189650618641446256605008168983514453881436687634248756245287715457154901928015913937536467417123884558656417675268023917193629783117377202265030498325761117271093829930174983377029743663061703937766656693552380065443875826433036957949756390967554108176395901976945156698875614019871994118281509215753571666803206798454329523160928701184050396276883815552436020306850630286590341335637014414769374683304469871380950344498912291773043628545979974472941270718071484054751358597657577869563433368933542036376588611815079480175024348652802736462238572887623835510251576376359223373870379664471995888226448202197334209275146390596083283748476430364723675177317699756039791338475224110924269351445739006383910959253325369728253188792503830017205243392601528530749639397586591888750884536499115179821469773275180435173311962951936147778985594130752833692332529964600080603305878961462463403343274827087854543256209128371978153728694905333943664343151352179860399840339888291832339515226027801275665762139058947646914623276024751646005938900114098700332348211963677117651410710775356301799488479971166298416947275288742055455892097826687087192194350642216929280601354400897013796746026828973214303034384773766511198741653379686781157310695187065829439770663881799817496370691646695198437492739566991604886380769386284934814833126940394738416626930777030862098819582009079104589042674462710799217689050316539689175525095908065081335207760006140713371438059146082075308355190703536059628411491604661455478639429508205089542757827736605742931802318709485144083364085888556242339933424993257429367078212714338977493040982843340006489544708426315769349181129127360177773626573259869342781590266032087748025929868145232881047701507088233899420378357311274845541061965659768355791473351683870112835563193032118366448146538105538730332892290614292111066981264813124910080050281811984163361838553147856807237619941930071736776253270023734191741233918681754476172284704111555645923710848833861986056176757828382750329905129090590215129090687005031316642186832502953991780685971421523317642569397336824729575514925204047181890273171639669487882733210802139064448496575473630132059017198383991652322320035844402097931951996568712458725993708683838610112704349960422719771108958070864522148140608232568532943883514896089010475320092284187679864605705479926100932492864408994658985524006593708321708609851215313887091014903052611209190700590390605978399131174493663039125039099551765832683343080732755465811293710588308374148772336894707507639905527432565416165101064438557561031471597471663052975774596652649984805739703667400131446044946730841919500847975016922945878824966161155725511317371546175796747524335066243191917969004355030284026103914190496545399987386535082317786978993219897239452017719928746725506899054693634581796249123333513577000151781774923701820687568388639302275059207218745102697449602030736207372626140206630731430217665384846473321847658838945071472032579382767796034775487127172313438946053471909985859548584624705193382852818048920409148077576158367879719589676013142647248800778082191649051435209398836921475415648174891141057714871409936026502800617027997192534231270417738968394602934488748084861512941829927653070066831123406034442875724715139682865620565905929454370140072822459003321175062695068293714425576713926969116823607402131214573038533624464411710959390370858403290937144159296135115174744401632867392282767461472701896811293332695280430856343913532257988113525685420051629576668304432720639888692462716839277955939744292077070127291295470348139939524936280762218880990709613153283348297743847290811429935064399172737702800731486793400852508683918858025700393550500255978289524558353631294203002893842538472820184489115720915342332930708607608351464357171049981894886330734899675123633671143106159216339097185108265267833262692631673233502920122070198283611951217340118112682668340289713442841454251258240668977772240270235411046117131991782501370165682290691423265738697087122695768322997861033827907772094412574091386096121073563504946149110566765345442840187580088058397321428674454435419816392115249986615082916818261794970086800249030334476854122163593617258588893504035757522131711028870979414541572834586080971721879080521063745698833489623905000150780030295180682864776771999602735831685610999061239057412883484545780920674988832373322867339772090555203584224127476138758337372884305602334163586787213622223455384327198838996296864052036067650254551956086870259544990152814622310380910803551233742596989896157806010827307763939081823210160900002781991831604379113438924079536479784028809082574481321107797445743725397683489569562872029575941506861862673028216116768305708045251463057536529296287323342135934731368334206559006615728299928574997237953103684211827339445864686674547829404646377774853149652553724610280005126376890756647643059389736730964938314757594009053802645971739315943939402478535872184259281270127197366835066224068524207209223767880003264706732103738839271905261912826433876495308877454629221917672629273777581957478498894696758905643663586971206990296892732294550342273116783040788428843275872444275912800863090934025344281339189314093329284462672006989632100704186352824434292868928703856725840569812073479844221527210337484973745934546963498476593041127457697995692485373329717708819983478537923977894891291451085518442416128810365427055168273399400837818970329966136223008941102691410258356235964957698725137684387205649015042458298052395627763009245370346654182605021123327942286926288631156579726347553143352447437017868131201166443892543466471824460995923489974262272453882790156031273670374874084281031871415377711842000271786403808181195253402840524029198185315504582925715259662368585361078177672532604352625619238458951116403256181814546431787387871012456768939753379851490493651046185317896739268808689063354553874975141130179350416850209756172466414262932179416672813339248277791178510029361424868531218901199265887288492871789667922110764820017570245653896198966980166919424314742239572500264253357056933674666920154878955804551390707904043845246676043549930281845423999804501265930144515022856030323083626287199693867923594621722877987158465667096509275386418651197851521578317199454178995337549582188819119363406052542471853248273548013900607398482573438915457404408141536795530556399283209761506731062709613769641093411466976527872892884274601001892879105001078636716106447866783471336393464174209804885291534159692488810957309646009425434071989335858449033115938968327594358015725188687712600575213549633648702881245666932679864488215020835621494264318487206428447828760252893403561745732827121443156427894201952615310475154330845191803850858660171959566914907460759882870262383226939580592176536984259110375828553529705106064939374761802919037972010788189022848239100562332242880671547909018981606369958037483962776817208679628507066559263817218944773639375362370167329394012039953008260001696816624269389290225663928054101042640353731353017973030541220121902693583094739072349871917634483351645917568114964290685394405001343526790243707100255424685850045025029727519209196672529663632877632939960237786214738958541547713302918213330181065700761495717342575864879280090473714883712645379300966628617087191384900234281931472218299476668022167591083194714569084569881693643996886878438268662200246182227931877240469551707036399235118771321570205661446996451694575754426458836344222397691943765929329202090506208803533460417638549964702576306191840069486459523328561697582173639854282403967151246878536118279836217644329246813965900777513504495260848021998825280228014288166141695328696182302021293317094080669776231978401710200722492031744671531012476913161571881514062177183673137383422082699556032764265297786993409621879895639432316137376332166169999564932290744109895743689277645468016818855736839872631660670179964832285905849091030626111953097153024681848068421821220285237616382338872031156311636729443767934936243317784825694283290801006337349335651014823705279730925888135810719777529866336345276598111317439239627530065430882861337558326071780886505666713259971314589064390717991113837585344379146429776531237849405582411717221849395332207303206687313338361631049268399985135487636851450116230550557944394832263357453279074307089819292392631149657769649040536876083202752300828096276743620391810797912907943847837962525843673659605161639666092754432471341564980859585342951203689841306354629607991662107788669786375723619831388182481221919015296485712849223115347589355679744346627644683891032945618808408829650895149051915320875764191850808244268277104153794997958361362993137029736867903766350948402060095267950669792136880628419189176611622020605180553602012645693709233091451556334286595892931342161392955251138354139752249681304338783878763236183223635518165219386850170801300637049160180513062950049247825941455268376593234867325504929462490659203424211614494740379749074781770830786453720013705333102867899932826017245737319238954878996690259605855274831574694227770634981539790957345973209113495962251791970099342748500172227526838742242487860993489853440641667092393025685743961147935573728681968472006202208590092499068090047430941413614408700409753462143659645199194884359607302776469245767522095622313734816298747076316015527696768020120466155063444944086720327775033920285772017461054316144509330688424184715971910800520139820645201101776455456618936037749923245700451364313201092857916374753864337093005135479869263128800709340440517594122302731250931347590777146453714150433290303039084761212507882975981182350000548589118226094398129940568562822047542423742490909767275739326548143653111042264886597227163389293867103302389984186428921716641375732327578068442600317581809307463956749428694094086282303491978358169215028062907698671389224810072097540666885476167020113544381375052473220906364657941819656295752659251826358469228794975647800231374746077316175837570968343252902116968408830357917346594578214420184245005524192976411675256327456908465022161859902053397472542546595882205219149831053747255671511005522458626455838368289993766258951213798134765095642977088241817501131947644491412607270905072719771496983273778502366934730575576288658272796473316091039410558494523606190427197442505888753607540755845404251442352744676097462899148764484133122713669756426177267259160306077375673124917188907513092926203581421044673160930543384933800653233953233859774282877218776967243304406430056918659196487911987195140697043811967936237202408890598411886526639613767841152433984633195304883227647357228668091126149810610043530823061254045960207027473499464279765649137039699789569609721227461635490302760104557489002832211423929872549555368058961041846781021173076642912807559480588926045319836444544483268405147177010238353983850132588037186928970520077371956199439923101868572748459705757142791138974238487025030123238813975531742138565740853825474796122443287075647552046143828427920860648028450468437634385601468558634669117917904877439066909065614902708310172336493481005934765752613506858876394518639837137609103771359170123182425722039045741499533857515203284806464786839040459037242086855809303411004404558180077856281652838633831543264500799648307134008295964945516765680379444089088353386135973802888688459191088407093536428588536785561791157297962413372819514921469427145868481874685976558099338215412042580154445857720051796271095334458291535011051422791728969283956845755312444415678518183615043419096424259801729695815682743598864929130029499574623226761506786418989859857587128635772866145449702508410052989662630998398127539627612341476022021277453883621978091682629744616833225192862351874451490251460967227224721125967084794250257529245278419472713413008192974943379585518704887600308384283195039826098598616305714179039686373798430139260287417969974309756535297563297217907812818658484613025610751635452307714852342111326353668172282592504671483202928548099897218694404097925678574844593185427567568803763441306404131026420519796168788885221518946423134218874604995221353145607214178721465968973596305745832116064511316986036051055574437527795133859350903150179399356825275147162810597448544177513592748321684536784729497474366116157390770577153833985918998441393527399488896856902399455893867231615141928098028352609763428810705069832263487894117965783061172455299742143261022722722593548376760173908080237282916795255062564400328504623797063540199105297943256431784675477455671885241613678002312582091253061505415603595877812802609987177770747415004367221424724470627574917350539680364128540278736199062391628419985192745994312364366437841921466522814505505390850175751731377707567791593168526275100663669069589319416157966410316723612794362910730284327303401491534294144569814379827075754307312644308047929255950330583327487637385953897649107998374397622432152490124735005816679185999600268322276200968793765756751216449321461028724159874986866071912834264476028887767614622515151598774679946307261435557014081799983247175726990578500382001359676632545344355549235147169048466949945070351250460266854567128468836799446000961468209006508817339256103134642671861642278747397375240962287356912529738638657772621325024408932565474429361699087970889714936565941612318686493078742496959441394850332789921156697190802968325872426378550789217912178598780560622500100873771199005124221533395440473696237478033678150482149232917306938495537903472950411547157389735896891850762290593176355588921146640683287278860998314895596738832113407555348028793485457547697172127385485610365113384444961140051586027336094726030026350988447088002888683464246789694510992359933870888315448049530768066221506780218685096351298480789121154668218288494098806292667607670960187089179593404701026819700991908846126796841576587850121067256439311867906874425873758082388964595621310182902383172354487962700141703035558991515310753955134101908817040734445923055810915372395991921109230658690619972267487453251993518310605052564363577517191668913655963095469508086449717825904072646699635197121247679385196841760723735668285589777418548604458303276065591810987165024826550932250895570191198569733076801724270168226433818994395659403435181362826129803432121248933012445519586703511359450765193248380522262697148120993707223311936358639992243964311918596940270834701248164883880188342854940742707733434676643062919464794302380771502492695784341347952015592307267461600346923573898709242610849630295837486351078600851790428063484335015522702780473749020951832141239205767508137052104872180163772673572796633531796359554030892119895336851954869544660164390844407151400768778774676914886912329563896333254228104104147594224502876153927377538784475887191643086860857429448379163058295681140100811771264343293202937909208745888148240240694829683189725100120960236063579373750954175426809615503942145320046693567243413160163857523618185910075338042439569259931663064798085307493761023164247336730786942787189377394647316343699344489621177361498652795924965562990347416721796241566307771559420795579271886628200514355310259099739271462029256935840938164051555313150495362592164948223860234319812697010167125923129380255125039037340904191124187180993722787471164995209760963458472859491863003910532275212490467598753006552394262457942445722789308162085892662242049235510884626880328835935615080381558493093993207948538474472604815092799148381332551831775067896137209976050820100245079989630083106975167701697830654334812785455946992637061219482062036227406416548083758715475875958788871045609415603317713840711292383378270056960207957559220868524040945777937949375688964542090944967289589990938085034387402630840015336105331975573961885110936014190139261529801229577871837623582946949158100296480846652443158668837703996820019309456283965309199054044894885431857977014917194506532212884194321226031888612269760181757108586030369331763590307073881035062749344197358928179561253126504453488506259356365291524235251272984137882946107184629112989628954404628412946101830971348454724765072569155403701667939459810730686842409744292937391797695195259865587414066296303728549690446343182193565170638249210261316202584445063295693229742099413215582447227661297162775473252725155870533739393420527213142224247046559820990528184917589634547116987257040987293069952699035881873513595693486615841502318923682951277488112638561229114818843852706253387723585828541851200759904949669836005221014161221789864968648620171312610157568898961407687040979376290162149880761045323632976921854568654986716995658258748780364629377573727757883780056325020194389930989853761724651802509399106352500174876782305564296062032988717248691702871111523058755678566415553586097440075191691829447790800148402121376158101739665709750701739816483256934703643255026624234256381942932588923525552004074499999523622055241267740107179376388851873827572538719226171852363220708177261335773830770763868668227477355705307885796232633449813224299396374668780337423354168570992309002600096035118271555116709936670527190325009187202806326010206101380566277197035910643854162556197683804988594348516315106690896823915555465974424274843469133270587338320892895998528938795236143369468058569993870485628468201258260525341219295641800144479478612318883759709454526773471028438801682151861388205057081438509930067574760700541456601953647041346627756989883646530065482344036922599508724621510129017400737976867408122495733760123851576263071669523563467808570209434055231038265710441147665754371480019773098013555192797733021323709394653313583191370619805773185705725963045757710616166448470517209173224725324698911347591910247387367114546717200707309375529648356562150694852155698352733782369469103896522647732153208692510448291102682206534442203942150717857212190453754805697043310925103098778235819383835359443222359308743622288716095767545187116322957968992010309224083520812507695192240305332032793166456048453759911328372878193462607458701843315410995547427712446499651024174288869545884531272678943606627260625334673943317660260859306416321038454059741303326527887197338263951342725885767918454167366916081168773615021953997082766633241493227036324805733236324155848276641322011374317073667673049650068616140697558806252255563581696007813453215003373711555003444271423249599451948582336353073649148689733255683833043090341140595906489913168238036235382325421856566840231155870850199087763018988542436860125675925478665586911131473967851488807894380019124937009482037640475801338092482932123854672600040518396098469372827137190694545692391146682041678179304357297596530388952621437196305052289762438659099535400621293131253376327066790660385254159379450365899000991946742789851044471997015786948703124587340487957018374322399696618896450475008023259788466852001567328659364082208782918773990174632818931174438017307923190373028465320968005002850819055879751432425803503819869760753712555793184673661359168454784501475733962712169686684794456067052014360988322416535056187211364737310452430812638149354166902589602982009860114274029599560944380932025496807212322366823324125021849995822613989247474774943355310285415120590646803212678642569303488078989017993408948027274824981717833904891244771322023631733690837011182645170835425319917899781924510402833340429404400008484466115276669679087336442114516387494097550294899608695912483663301205478257371800390311207425489697448775170159600601082263238180850027416214454276284261390089668165224974745892754682285269236904969954210746946904970124031304390249553704311555961422350560640063203424789726131549602099473349111889401061484295303001880321646351927084670986630394317925494568781216676460003667618418681961135849783145015714185754675099081564973043378738791087607029356415090057833454910615675975551563383624828040097384292418425136608380470378904374576800973924271339898888213672698860072260578246206214014658343404501701757960239980365724277615212774425680424122558975494591765305622698437772103767918480331990614068528436279704508947708308373514080907807580811901662171458091782606668438036578469592166200549043552366104661336891786164361777014720424554487149959790670366663933243673937950546512470383774904747487576884617727629566814871005068414908351502525886502165252354961135066808800743666530534792381266910988943430092211222062881331780373633063533406862850418210994080054183189801514656170210043829258392880784913415368670480242331420087220081344420517848397765880371001590097854707251479436299227504484121464978628786376321168972944388349252982941381359286782826478583532149724963376694930122175750263399613027941925821136125639782232747239628667577883611246030451502629062411359134293128050053579305133691616008373003178728394219445371172928671931366765590606274789395141485081438229212010732959715670537757914698187242766377355936620879889342671607329665763626612817046885505977458246341772005275512288962908668944593427182008065411786376280534861329682905592945936701812820865520422878548400200973249773670578208063860191092821807574307743159046507776464692888260599511304322830868504673044815907098564786180493726553151274235023386815843437781065189194098142055234075839187971465139582148939136323118393810213142174461201063433652182659573118776105101685461006251814897714498644354021196112909330955375774451072301764323972247806262734225330389188202392322052247993324822534109402434704439621501410521741939777019643531594617479872274296679945807589589134717913072605289026189509993521084020770211585360871266324744916736595933591572308518593328370798841518523751672924792428267236672222698907884988226092260859705969942017754560960552278373180721776054488538166538064915066954542061699850737306614522854256519945018303023359687500901549445999141213228694002882248692150808811309990940280930518015206970089205229657029932981493789187039785093330684658540427598738208937188018457656193147355869195492043596386426782087976254868635648853581285726634771551634571345323829297205540307051502351547216149684245924920306741636411931613096264361112467053968255485685446119786365235883888779725464759529207024273741407192677185441048863205983780229171019779798862946892729045910028198391744705754496304629009523329511130870751463886997852903391222266851722247820229182874163628304402712770219112453323749526882147806093701037073243940118316282271035307353644811742688042462087440865273291030518588555760559507637116690528739768859731996190666895650323735324584524854128918825099260106752157264214167171136722511204809710125154858985049198097015725840612070860955766506005766319156243844474493218323627208960169744166103580827211231206072256138157884690384974044682297129932049624193804357336996652155502347914586280424086021017531241990562586834656256281521556160357070308911901645660448611194050581178380269365702969156187337018268520272263642956931804027403999375213488036697523630292339887342962846277920108878362753199397974022879448846374870477089862954492069693112393523742143496874050800329006511666382029252601511625653159697785622797880514465358288336645559581263657748265005124624359491036626621813097880899933379178005135241321042612206524609101414990825602582003605971691272583556357867320267111269833125107963954999597798215039729825900223952180800298138036112268537289517334406685349337455255941706724358667826511075098810381774970437810944373484526141007799061966969693170250338231412378451370536582550319849200392412006662167982237517146249445029169638743053706218522831893203675074332897979962918639048518105464402326291247881143052625147296486913592934224352918142775417261096775892117507696949177772479368786628797633085848535257672262560851098657299893959698224644758365833906715575774310914241287721780016561582493365103426402888863905612930880139157207753124721173175286787070993071248047762273660916568227079052221773868627810031185897000442165443305571827321171522123285614287592796110755122059150116362559560006266436171276692688140341333084574837057956965307034500120429297656302750951494067780638885823196181229323348374615898582190472777261236077749512200753048545977416947479757171865959575292017140979275708119418773007497826103694531319061052300726697810057339887508328711022152378655833545915598543377458264401560394349274211948792709470354297690949099826601923334609867335563384848897179353743595289834278006060745138922662535921513143502881585099558336328418701165675905173766385628362410385711814965019101027188231255081518604965227499725809602993810016083642617884483138195139326692464790677044613051009610359873493769659864208220345102771717058794958802004282316159831725391103835527813046317471123440585530289062003639329766983800038073493567122073350570412372365221713884957144975809615543474124459027876942751575081666851948576243048935534084258533231169667901907553248091112479313813216460897007337985702180509611274096540702443009245941975472107548664763461197992736201583335484225694249472015865342096540419010449533485759858028216893489833888325979755416479718075051095081216697848340648028025387957992370539355842417940645440135077826789447020346703843529355127740752684804204076608336657085140229902710110704151953529640387705825851162718106904649671011977620918501010539843535231002568584979314413969134259597201528387484273978299666383064098221086663630080656018313476406746162074179340576306849124634224800512071737943350773308178611567079321639798272100151442467118659435926342739203818039026176908215634356248418258047696435221129239712236392234098264600785295122751113858811134221746844921471676029359873627948793401163064055497895470414613999367083444941003395900605706102735302125981555857661719372063753588503811851555194464803865575829299924668750871122776657760337402581429031715717036512879414314465447356731574105902740011945807557001320832632137693415083445315632200499510040429923771642392175707162422268184325676614280631323478979924732268642850355231971825772668579724898892293572730107773300516819151296707758746987732403214039618415374583565959727338582250718682003670037823052086433434578725974686835615532768080196519732328752479022800677643092603528467835619861412555449908703326609028351328531266317802658299800357311907841804028180192520422648418301777891484704869121491995047743314298252523605136038444744740280698401105182926096961062855864592297580375429569203801350257777610083030628408434536372123471015164758020016783052433724802606046685762450946597157270620016137572017723988026547362563852461211943847766549866354829506617859393136350770037240475073217653859973974330779870549015428841827181005889510260618936617053353327406723426580961642684579950743542468867515569594274942069546595928951651558577475526203204271253784569580703311514087133614268454155700546902444722477826012077575209538205474887495681228791147804646268892996851144398713091038430655006322746547167648981884945235032017972978305233150873174892918648655382877288877974023596295618849667582252183505663673782420059753167991763143261700334382890724522254595719611117659314216475951305953715807684128242158959518251880238905805690494245787169252477222200689625342718230418251781736238454345055506308981253108526181444831061411181601699356070206988287617105844475750940430098206340823523973195491079888901561135470441058967889157269082066178185504619240882997030945459128082914931381778619079709534129851145186283294715651954519154235803706215243290002027044257562707083259484920704929182779782122408435717475361992172755781349294102664668536348314967297351757601698528399301897244762278227335865580804926267076011434483913094285128899839959464687845668192667164329469991548287194220158073884670989925723935748953166028948530406178312529440261568704913739532563127720170398482638480936395144860276261021932971937061846165976471669562156278654499745894782639038011581990653675157340552217426059253476620103367605330631360297510311096063659090316757896501655499854227135678693597805839964996679602591693141275215670177358335504785831314061863431603924145631057999986382661236320310987014527861021618823999355541767204126927906336571296468643714083403018603951112786059338286248731116103544748137200876875094085033969653842827009149257844048959134303529966955502682799679125383467677247133044680653763029695924199750709065803843289476847428350922882475524272440177745297462444059086995668293544884089261077224018889698293089930348327602880905633096459608717224165290831783248371270156989179634787439349157089294771935588918447312380543184057393045407552067703569271714509395852062465349149702088031920822195706821352424353313336229369612123419408169793911381412084194787464691324316207594996707442053228076691975128937134180752282038980881265597867189825126762815452836025053956704079288676068312629951260864207795462512257688106400087774632685434379696149146636490088101368784024237652561189514640645375166325931979457087690012868875190547000571306129168719690626277373319875128986450729534217996604204611649575996404870490246726970336696538525803788193500945028310090453947210617002095090014144268114205601663434501677981644239671289342399112982123715176588164417454631527558876434260975956399041000160657658036072582988108194217127181246410161938808480985568378345788389720667155411477988190191023004005025324571703868719140922966166856920300891277145872186839923478868118503026048442527699417029527330638359730549799248688976857803348703973664997523271678050239253481880438324552552885779151790556139360767198882076794119471966757391416357897174357456039469454538822038058652746351946108788857039164768933055108956302043937592329631802283011937341547758144197411928372389816430074082708248108921030676356569490777314595779655331487441843655211122291758716724917461848101246330030715317705370791815687938316046607534848168428848653325425509543846342995658911387500584243882061577106803114361611635530570706606431382557634957291667182445394374461051142276244285514201372511011201787021780695342894745702713812350867419548083022947884968687090334348398799121088893599502619258556371998681069174928082060340695048575112497615658708467378507511392976131392158875559696092841873711476397236656702930014081040476808366151957501610316977153046174266209559830021202048976498378868684856771118750890924624101299071298539081453523541244319714586622094210864470165996065093821280056903229238784801048790222299675650282483473380492333795905786919224599916180794196890959608817039369052744446882348500169996212981153206370376950001123505696034995269669985733261477450619282205754499988268635215107170978026134654111576954216931352974939360508774384829804324164669113529262862899812566621805571460754713038969825408731686335632471207350780372838094557787244657959433256070732981838083703180912932037666655861768478166955259924467603251632277473238543743531234088679592259486303207702797800372018981475522981735564535012308966204734115942496415540343857468932035583691142839177218217676965630634709248599799061905443061422293214585872774526771714976093039115770623317530150724581151247839075477209877521107301646272849648365608868344392099089217417959790362283821736803190165290459756264416217804826828481387478518128840257282807683761323037406128103229059700945142297173730992670222618264501830668418938494443413474129036096221013618365146422891163323023613648330802086950276029006980599541124537618054468247859419109163999373430093352617881298589668477500172598193017279037779685196847900401447967358616804478929989158392307423590798468720251449831909245079630478266976476228077832851227823934651531136286646369614580031722522478464763152509673450023640286234081330494173220840728544664234552671222261046272177975565469474920335395018749806573692938215010047728788322435731727474832098611760185093056268130344057440587380198380801709071562505798575752738736158442173370796602404808804007917120112006378841201097384527676195776844566902630923466643699311463798575881284581112422756119666748603378254061098738975907845021241942990316855381717587219629575160158802424772506143496031891874096735604446369259068265684654048970862433594450572012548287669134706227590471505268328048525729228888864554026205313166573010828322670310319636757802028240058386832968636717927177272550763305799497771944264261263493972374899268177758244728420774783586953417513728982561935452167286849126915599340701609730656699935479868884753541951604235520602890873737390984487372137265167656034020776714767449365951322426038568098277877869256401316307745827947745096827795662889546116250916959800175763115462591649010767806499877174225532022045373290870955965891907489759048615570637831925030907886288299046039900120465523221135379946794193984684919360933390775198104793306950702353454896902805930273923491521604688638842563643786101532979886382153151580380177358901612093551575936159059552648730154538883931199783419935563870123240233896117273544088246091932489418904039324101629905416137179562769674763369031581105259428832580172946121857461570103148448386592237427373381524798697255511592475843012216728445397687480831460120896999069245080847023264159602983690704774493002036840176258590472288693276751630214280877267185595478056064926120923363340773856121418345990148079954674305102485791538911453850580997523476081995254658476713945447007820948514897066528048390413233081104771140942227033316260445134880620681237274045908234601295526299781342375133334504365498785823280091671524038331440940847734531311303433648778307604659443615944796766388554213585285806182354544406671383760013101990326893328983798907420411437905861760249200953666355301008809324826612289423635042627810613093610121623567581321723396246900975638238499414413272793378913701436267858072316927609550941131000995435522360741866265108707661864637161187109163804491966213769630911454720264056347050196894388337514954760551541973903352917832918508197834960265650653493581823854280584217471744719725933107455317899216517285482033839810026952276295853727931588294626521131558853048354715332023232748187530701837027142298148678784655307350167381753155060097762460521956867343466740257960145772266167554692331821267898491153715921994523063040116986988511122922763725135781750479111510459992958330312324639576082021913373039681567095418626837124119441900296194676225422516555910493130352328005715751660576359474709533640297544257102719773039027593342813455441139866042939606198291876776948183811530400185000877169072204228620899547671288807290842118697744550687335869892331274514697390647693363526755018882783803316020572588394283388363677712013793844856853587965513731825013042554354447893062421345622593158716777769369413754642038635288973158719100287063826949606464819646652324956410700052368826968573218912574455438970243846395696821909707937170038428574055424044864391386069728102372554228892778653949981341368043960945655602055286751138082221282782456210639148113199248073885538403135419199484901000318700999778964549875868975716754386603431684026082271737841409688756257803252491654726211382830892173293912769685332438695370265334482348141332808325200852420585778188495726087883719835184014871501949948513491924664147397264900702350501730288258048601963699953514862043099218416764439210368274924160798536392977726430849468731425415924849815201556367523587638191129641462533179661934745625752867680947509705781171355093405655059638213456070094809090622663820825223036911428154559636138018524951195987166473550603596388573405086068154447545341195003488029714349647143526940765411617602658462779184110741300096648717616735036355853446390302194007507458922373836413385590002490236282445142701619343644170979301744289338531614632127384025767899614813564061527580374099955734130563506789533251152325366389847399165054254242784990841300953107281489673559471454282812777693238971186075038581905969958707728959127220171511907410060314517592267489143522129594726206814587409080300511130095653967153054226535817272095703830773527786125567851665618293866781790390339981775936572875638796335792802921044875584043308131461626282849942789256032070096464176908212787343688139789846930202785005510670585559365752089634830871576414881229857602039855181522687643433212540500019326168964826924624354408835034406810237745550882089390179779634122144413384362413156726536214143525145942087594862771768589708691648430192912732839043554696119921998532699347964103187669665444673887405345803342147121346485849599067927141232104862468470208086556667332841660581069455497717124465165888984483442462377440193366626853367411692642563118761912685473494313255073934756383935388618298515959584367262497038017900788436064688306047255170550469763086558007513838944268590640068538350096997547644765814806090048188884261695654205858981106426836863388014131160498794612088364137131902287276896663104290730580391600575075716415793621883178385342604267720443820245444345009173210738985670891566086779974649669682772093550802566033365838094913425524838331261944653434451244726973779566338804986967069900818546495215408844124363892596032531911049067392259805192504088008150873963527172719534013046933225914332726901101123275782529183972451266542127227219147375960028631297034554520969486022868275048869656628937962823114838298965681360035956954921168586722677499781811553180284693678949393435234683547680085984757456949374427325776347867784838513932608722094594633540652249372001870178775691166879717776687713048946876077306981882977879447057736777150805699157169908582247332413235717867045098687937536693248074797822709866648581698348704227256094106594850830920659364705230109161925050522438737914272254711964176470871549495927116177738420486258530381904869327670452264424358778836106772585832804149942321704850833924918128469148361097930185072882398445072076219441463203728284844034567327447680045835448555402686694063137424473197343904344991267409156591552770310681972831896416602686778535682830072392127136068433471605986286543779130392672426126754644878713622983723159693740606866476934997837670332862723977977698359114433752579408758307772048950269573040738222642751080312932669281984977390559931331767067866665986710147434255217246447589917448476082402977618941263831067094815581803499113289944114560159694708355535837221736208868857846099251331572956698891901485275903851668478816305223567185382313311157455289600263134112222210711304434210928303286255568255719305922514363657190387541797936751160776528027945685263767692172472399168791610830313553430005556284990182160165212193389299033625075432941817914656933201697839386678414957687300777677074410280501268925312374026664308575169244881326196454019525756741797309001108233284793345353228733877393968839855871416677958923220532192804447799855820011452086732157656663810080360799648591949214641392786578633974343079900366941425428813232911921297731853503249294790571799052601624961475537054239389729141318397176886950557904995373166216307400508620071177755135233306423046495751792480138067638972225996203942219082255197259009805594017343088717373240810825106639067009157424392698928138244972709704070190585143234889197662606015062620593006347813656628350049022876622625219308997632507932824578084603777450888550407376678081459852194264924455508457355947942914338542684944707959283050666990904248594303129240267330796713934376850857716540734780642913287815215565639494529836092489317923915928963366689326924693075474056380043024908599784711874341962337708868820045265605865259038093633978026051764745010179542981806603718467778552387675609436735174293518727599614256458433736107625642797574284839317516165808303493406500802568960047245772964337475014188984818034226542298796819666655354741440466390220302030995691581172286222527023114672514077024930587413727617563824660423994780658092170591876078827156156899624271199081846892124755346124621913132429364513378976765363937046305794244563002229870450852831801891739715304111464650984619005360692755718203053281725271547566832347014538135977105132157241280370804850066075058423106995263160491582731812927150488886972199901277518104368903135889559868781339588210342660686314205579194866780504704137201110898974642061517668060315908593684598401268816633216163722066468361914572686163305562173342626857491304068035889637062839676826792318201755128795074183447303721430137826634497088997401648001674557933741148710840262299876149197062674364597257393771974991355089277354909586778359365910457953962985990501215549796809935432581563070741969624468114677717173349064265121509170066918986326649115981998961469669021522270042367899529475253282648849155680079477225791923003184753610042113291029167367511283220926325870546712711249278818737120626812688997643718867958305289552280031849249863247890517889079535308205433732582878085199496127086573471752957844332223436663345080501385570012836860728242112844349992482432877266216118747623682961026278115138515597126600664975856842162323465217926360599410193564648912444774598646272086378371080795200172763374496654708057457932863500930727964576748499793382314264900119986730050589925294579148569695730537704640351289751480497707868300676040574379624438808728818748203684688402757018425118445770736808443032916077037395789455045992461866894396834686812298692399868966961684908661095932898431921918397107239566585080367202971461183808847595447029299217835266190342943480903427433944318767135941861406503280485832023004687031439726688430818186638532702994217475652206024735491530614480563330844599462810554443698940021231439511378821387793069524391204364983803527915195521301906312372243784564250886148493384164835964735619939342813778113657298555750920218756929185970507370597706449579160418238702134815059952737965989731552241626007455721395235020447720719459618812777674857015371602203103504973173283667074624933661208632576106915688832591108379390546387820094316270918302163002236197810966866812526041268730171909865968992904840118706328330100017526760705559568538572640489085466066511756382068748266551009347549438399081115221301832572273776850405081813236365489611249380747163984262695732650079976882613356680354754780231418884013012805120301300178526853079725818754474170888580569268340449899526794812713474833250501900994579909868945335178494117286108028742006034186348029431113457237369311906204161869800881990694523869502148261197517097503844332580561217576765788805737502075989072352115369034001086670931671442183335151271948341879734044216921915738428289063978171292159810636677930961336244461716529532731768079690080273066641188843395011012387758322350763672941177737518796451633221695507953239951304707527142465194629765742142897266401148598215607204929542807518147144963011880473298932502133621457481950077543464438237108404767089710883535082070309132920942048890674588511849977481918573443833891145640761758456094776023846565995719627218013817095359557290842727081070822266968123254450309828679557446807801312095231106096375142099097376819469084399657570245085493837114093004200646235335300455380294672261146061794012895402075271071394714970792246634159255939637860723728414934877108765932202125596093140046166309558857143615908396570650953368400099841737068783433297045390315178333360288370903602884904804177240846289782665839632237347085428837907314270419527954765567516570238790761713417124560347282794367362279267492600675652400185561550005998734516694328357825636579303270916949719318255846876800977655173980760193449251861854617459069043787131578807718872549971052692829138274907488227618855050512492815781606083916457963597881302883001180429115854783961338185687079249534614023135355639131363673200013921259716980276812732226121674723483534436271757208364267083759767344881081222305277537869071997405369447744424915283564160432665226374415002321653135489108682501235134791737053268369016692445108974417598017361258969546077916007655018868040197647297998504445690956037460608304346940149856219367636613466386282227326447268154889782402486139977039047917581437846291248284456658653557267002688429792139089778383290073196435290671707499543873934799011532993176964060054288694517152917105801274061942829315651799854965949428861672425059851135269778741074532860255701509001701093728898120445103881287279441878712055809527363051357031266298624360547646018923891014340359107880346434980813988561945488162975244939521573058646230569960563461913676046046567225902405883064252850663292305536581471554125509742949022424896735218575518613081763794150336239889449665722802886869740916499572944222622635983337069851780329198007906762002924354792918061083242369110132785219801911365566739166106786048431384866365603659225014775878269645641253241509077415133817123824307601761855797099927694855374018014098986504233729909475032461573309904689139245071844572681756947081771389114378306043646390331501695661800543238118328021924792591817934609646844263434512716123567758829869158562754628193190874310658520633354676691166322666597635414020737723667908243727550336878385777190366382127883818556015893704093478577041131609444869495630260144002824387556472653325582694361620030322602100757241643673373047466205690819404908785047511454446628599829431187406695342771617823050941467864492117936689042562119977466800317577591794698130349850023114956661262506220955476743336960206267840491443132786549566765106551498839454037342135307985210979023461271552834795141192322723847681563835108761073821478167157522854358116533133959028837954711473327358155424948122690308279479913114034301029030293598942266306529127988508364135196058400707083527588122840291786495446277964179323726719602713511353155676910621198265377787842012948962418855458828081814447510035698157248846627426434817188737569570886633885212671154868323825758560395945739988403268442275825543409352309371336435164569175584175027860573521377488981880613176532498297343013342830765078757151256047177147483931563879325917904786451703972213911885919423325481573758913451459729959881464133834266534071991313495126799614033211687157320509837134188044818693700132754673875184514525161790370687706093188295382329092360411240810088858201782061289627263367373640768860186858468957182461750195977325358868576989509927602517576268463740767876823841515190127315476253639606039004771431172147291250156044023694111955002664859877102043060702946612881529289760790187824787663884166142148367093368034628343185811380169299340369963865212878093317265257397576193411331334736787453815594735458546975922019212483080237247385630368488819486135794193488337290759692219109927685070066850100545734473944404379423745807913553875594157858100503877729843916333660176709852562560586094571748040012202198939961375430169142526141736349195597885472638467064355258906284021405576751053681952559597584217306315088368240586042524187185095881455848472529841245622779678172556900250489443273165341218658329665388087895686366814768726741642473048086227218752401770441915188653353270824185369558813892688419166414613561166882809157806723793736189837676785012274894839877149959151818381199370260970742766986903090279330817114234248109205056515575592264698214096076680682058092254723705627217988395867012710975845864563892679806217448010428582502362708787736246282746248800629056917341896228309315586077447372069557905602023795592208277587783264295151152121354845926044382881439654472255618848522062585241037758708776312118100113642157298011516051627758277396217067838419437953659658942055416490107656556745187879580225441480150958747898125018004473388298961641582221563072562226846041691625646041280591975432695235556914872865737517374918797636798627129111762710184617754752717395041301665969840158099105284314916937292133140585635117339274745942321316982744213079194296422913853980292601906071770817748683871196252584920363878587104730875426666566964301168166198107742927962742651917313638102416491398454894853904817776182956517323933361702384546689454320210392611209035173645623278173426110943574333819091251274417641865831225800748993589311387289083513872277516311055861888993136887049931962722809187451466543085074254667244058332080081290960865799506265809872719187136029340290866248615957908591410483566155025278700609080767874457331420785615782197672271914725347141291989802860885136158886789370118589319131065727297424112120587409794916074882805209789350422273896516580431847687436144621851430116136743383737429514374049815173209428045470703789785717827876460428815199512769421152668044458390841837517671326785451892603169068174034138719982191381790736361690245346430675577633067494744035514458938679251783329405759094657516536450244360421888677647072472946567408225390733321643355364460907929376945128421520945974506579103785854800110024497198150293083723827973676108866974985959656293313577085510150808645814419093934619528209650021805205041632925629784298993299239641289034224832193432710516821035303348084018578117164785550095995191321238381832098797874339531656318410443852650384481733031883300934305929369832300318232353504835281242876640137447224338645414690938436058108760466976743332287690429646081448844261046990937125397081884220715942178298414994236839271107484480532887259048770641073918807309449885687412703688377444424678669804123940858153724067406548061267116243743664501444949456368744092213368505098886640946530993714863259175675188615652851368531427020198657393406700529734423720480736007402919184519980020103057922375491060054695903073185609491685126230589823085610741948408223383361544175613477271209181163526810354468304760971334852050944778685806644990547812088484622742306947172266736177182370855624353230409131195750333687724700117792387618616587525079436146514743407913624748038728231868294483999921912265926483165811337631635947401094510641918182407150901043365350637206122603700412787976012301110130298956610560792633502506813608034513497535014553135553468826445757445841682472442594979814863586896121855991035446686200182347817458462106111991523067120217213392433613739350596497593930463227486275513009681541195422958038935884407046256216259641030986441672196497469658051988846666040116050303416082097914027943844216409754930614667043077853670993618921272572805166229973644814594446749962515548352438625915452777328884257304516467114274663400267981474072535819319665722794390794647038483991716304394653077706901440834070525215044981322893194159244778245277159262618888112895818688489867124301480950887389087298640665479394137585924957428110837531298390570953398176853057215594472217124794238166666294508038656222394395176306193389955653199103282959975037038111127800381881457578522256966366084206669421595510256157064869191126242007674574293529737744084554813986074896802446248953209012609408143768826513642775407499882787481909937155860468479396245567632935767563236299528011327010965164113807774357803436859196818710135297628446218761543709677474141851722292736838518441356702662266877374640116047660204073312094485835302711735410188198520934070581045151118652479912900033641689523762127570670739468154014523589949028311539745528023992728707441245865093860226284908256969654437562924221952671343839352113275645767162038483472259153733815927077941437078651618903689180977742220076346807452871178746324635504443564117715867476451774350626777454972295622479237583904643001228831946403994921554946821302727654360796887420035667059791967570042043963300675982528545183881090040802818179792557462903584728793977733520329685765990046174785527850900272240762665892882200251517381924589445695424359181877844369328323016160035898644732554259207021395532174089818712224021883844630233987388312054663083979109278096232099338478580420224019215419623453367336332226958553997802012566721623804012907980314932195927807897083932854998005030874681361575488835959859624993913525175270737508316556028216066903943525586167118212916904920940951133800775656238794567414142911156531140782535186398871740096768853303921135036284709311162401418817504190707560070419009338812819115064043647092328278147926947599229592618622759700761677448841584327409388655012207663039466255905436703332795134743806914480005344166306893373299376843892706389282230840515316855175757900058514547717564938372121015646089724262692942752540975171102322939105850346920258726446271712073744283935638753459004532699966124090605161705020413561500291187589702074235533948383354328426845217615102858534649410755332657872843476892652609407670928996908348297779410144187088764368241331695454595151921333628197020407068969173492983710085685834299539180705653519688330558448172339685850945120888662049988789323672822334689834969107708071905003700986490841688513428452889417129286126906883313754754931279565662758944728919428092529277731798381560259005957844712506879426137235010764857770350444924132899078249452432624591117917458628439750328848981156965822854964563654298707875357909537586739180151842461354011756954493373062269084358414476423170637103420780687252494488851594561971188555993613036801471619748942136390597940796369706113419478770720446434906406300069758175966303784579788335857423225308647284539043754103272693614995564191090460296198954504598270458539619073182479257059345903484756953268618947922139587749783759053095012466513355117380547822758713275188479584337277644649841401004277684465644004183738838963079136444627395513957476726603538521804118561165658891521905902480966960979798404502162695339693678516830889266763534438070744713173531877011968887616795758785750321550271919389865091281307191755294696551321487113296227867233803111211678462473288300629620377684524172079169646125964919176355448241807217705772361104392264792435949378874710973237054318366620398705821893416293062501475094480505594731932431433223729491324517208440958811050012765130914730820981873025994709071328737650480436159726038865322301506173904854075068779167828473256085482221961637337014148297394406336869297952618561013058403637725678378218040303318887602605551760088031233403168845581585696163373266045230253648503908992237659507639764137828942923163971226313656508761493767813449649081026967593361366651429874322526596958245103676834398856716291169965067863558066968833192107080113931539969594790954314994432407889141104577410095805780319643086751467016380453902238494895697267997896207644297729459438238912333235763831713238890919991177717674751568678714146766910259613849681652617162773734529360042895735915662999721981576099158428219128646872873342399902579304662441883619513863055186122954801407760043562089384499216476150877597736058946136366395083056814504581790444909021161345420246573534652120332796989792897646279072463454544661318019633403426300484864950364177929057850526774358849234125327960880332869827040076915566718746400944869649129065778292858604891015491384765203073493432009990974564361042618201869759851366678701681914602156929091114881899245270287201301128152597005367683103600207608804021099329908211620131907785109153359247354620144021306198146044166229429636301680141437822553458160111273553179977494230765377182262044484619017294219921684299083298425935767650963517528315928419104586071525579757423110635121935077917563937432560408819155937872951142056904847960227410094558726148230132702726208011746320378538190219393209830464530078395842175177469518299372435813958592878359195515957163254418222681669306189088148727093162322928962109995443354388659485358761529819338209679216753430982303965453301294464382495855855737714955344585562798154410067349935502037123304177954944465618022948218274088176055683230238823658818708700508389841862984984175711640786372617018152227050964011573543221293418735013048269373364514881247818857351311576451269923447161340151490361265144304382704322662422970863190785944126154593247569631744196120239532475134023414274879651690391513706547368476854481543338383645430065933373412939397924332764258435411193715561276718295885846227652705464389105304726677653511223406703971875905054637116786386057163227226279436541386961537083825095420313695146078078808971460780267156903535490118617476917978345310662217711705642067445130572613924415941563374440741977865008303811751319557421392596730418837668526376585544357593832924038318077345630651385993916248751905661849555792697276269570636184772411439306819944804245275396007264887024807803972708589141861599377812933029292832030186056226726423819386130390165710333093624464874052579882801627611003327441565022373507895544273701128916246862072955473242211848945113582047708156334021623667960945490993177075501735176790353367782403433002451552391617913374049544876642156536966549617395234519986315582985011300776353046728917948475422621538367882881216796242967505601224673918282794018029572161371542289586895753558657635398129355258820120714197690286038500777705517105777580874265841146822484530720089859244016791951300798948088355240166072033534036191465890496228619914345865450262052111972941562236178676027370980494884113631621617821350894677170349599359294879131421059655780740345408604962903308538660547351617321069714855489664872979142198518099255428040709039865133818837795124640841786753120550748919029285691003090134044685833599145878956035731799229572871196508197742556667751660532166830253998695825491180214692568419498702600798708086452159181900081394476615407150248363539020637725024181939678804350645916549506843756179749450598659076174430825997749615850092577425366130295116954438484403036475334259049115067090298748478509167834962584596967400923681500531518190008569287857841378216531145948369648981536047815575624459016064942393909989566766081816273707697966925251072113850421881147425408772443779696446298618847175008844763618163323430999972491595928361851736386853473773353704451983226300752486935274280573769493519608299434675178203466781202541689265624387280330312014416281950065660361629673302385909913414559476976866976377850488244863037119400987402657128270095799641564437973935466777734004564095424196696184440982011264113476148629002698384674933453125218280799347053524045107305119564097178269971067995786085011218150779302757420964767193118292736084202693163097865629050978558523022761276559085328272639945608295609346148677412680647827316164760613422582247589874875693364831844330956581551147557109117357138735746416224300384101765613158499791623032221140432804441498186029754224675071717959188656251563351821167025428157118939662064154482027336658529885064833399732688408456991713427362970167849649008832930236158268671234565001812039901287556204463487222065724234010148134533398692319624962108211671322381532296884149623587190751904422676469916982766205821115976642777737437143745354285526121690550565457546097897387065552987833717107470767586737382454306057021989963842023077741623170369844021322753439268294958990993029953590164409291719902002480160505570488336556307600766388183442468926799523812619664761754883151835334028984445001880736030652792577942516956938242188538958252833928592149986212878994558247395400527505849492918096475092673387734664197759555962814901871245330174603915908336202992300262877515211327866992623061060050534782322610469050327807561011790785844003759425762515585625315667026972939541286967319323682518581297557522774147208305281157922621194588210987156699972859377555262686199788592364467152335763564765780642301478942745710044236316605997926244944401916708928878095629730380574200402895146956045389076677820040998523181782128226100645380737655478217775612137223102841532890653252343962126644715501707690471629887607393068913856966141442149995661421028140100492305243161408284482617369237202275406399756583873862613942686680315775377080978633837762121862744518950425453706592823648461643950359865986092777753056423776174589147810281029804607740817357409996241656718730210200016296760296002741522962221760347623014574835826843969501662965201360156570133200356239696252485051219778216094673216011490103298619036000751896673005063921309492364094308816622002597253553785232395236899315245649648944467452779322914544740311319105880661966068528307941570666539330922181015862751002036401963516213026160461060331110189778401954752919396488360481024181439833140849671053083743230699311373953360301815220657896760244348214879688178170507262190999117007425565003891727457889787172737802000061535157440039309302297291055619078360344703468860255188344055246153469988246940528210727579593861917901588942802085182740911411371337233207947102433711250409376510868496603753966014358022205899240810493464046311900642118101792617261401908998824334242038038294392536094804084412338425901394269665106396057825208096377286961292118032031367439567894024236009300131017204431305172192857560358982251254831320780622243515762200705182030194634285190963807230074479192622188774488374108374126133354856206497953714550132649664110998872533352842407805889001207771901341773790232755080008211022711728586364673632939089547040911661800443223263428029693900417606300881731377796332133116539912711026314930791551340287609470664838878214078039282613459655193553642633180498451483392425549523346962060247143291996280708331542093653715708180672312153113450275258915426607582658544916080188525932543911151302744859629498731380182956163267018460520844254111710660471526143624090466377959222884392577729599708260551634527787162799273866414164564855003033562361194238468687602697520700353603393442960905894214266863976215085694731434796125285465452896056697873405729689737363575542181309275282228109183892090583072434387643768719497635721695432583978584650059120692614849450886096107809955979010192505107536980658691220598701887260914981435388126713471167087376813706373494871570913788146090316150506295460702992345610141521615799825503279549789420575629228955096312834489865210600189205396625353952820114505047876050624877004073723260034150921158580418319488723943717637260473280858221301432545523978804134587935670460677898185401393591592890032666925983197531523896865975210762393431279259614544226830377260716753267260267814876663112823597553379371715955764534910363165820471749313061246394632895457022449855773525935242296778584926172232155015384409319234797823016904807663114601403353127879752251085432026554009936746886817766350994853729055314814667061338447218342702800527527032639778452010954672349286284718546988817381203941649385470042334908357805497936416464577908769522335842372348817825526880219387990648249079120715050381071276143771115934594318358525950825627781835687139146525040912366515487656167384831499143563400193402479351915789879776989134461441778852039431389995708040631081673739773421085924307585468709636734570204294469323234016954553258402705409954459896045865506492143504849774731561442710958587596015113265200517814131637721572880742060024683483754788986488054433912202568705766500540563632573148419321616445637332567448180771362167447866077290355077679255021419511286366895751692616853915338427891142604566974023262910198894609590638095575267849959708405453898909577405310567657755226662162612067084001095009479061552977813608032274984685323569281479577997914785012024394656355223799485097364177433853158839369768199348766976872344143939840985238966671232297518388569755092361530982844500507511323666600212921396289654802369704883415216614711466555764798942701824958996108241585877397602467563669154997368670104975099821507627211844240731802926469024524078005917984209080297908329851239226195635254214310176532877904742482982964970603303732654156045924076592611376902734899242619405145961553751552142230554192130711056777282560275524080782545579361320835010431710196086630564332948447305438320663363308181998896216469525146538324297233049947802167826841885678729320741427048029769162721320376198303967205122971164833572885300257980839671088057161286760813013374313436931216107731195025768510432271298760558788998603841655534879837702660670230118241439399707960996283480026571324881565226294367823092155810936036801350832059809302021073802750689512243980230218223760837955128798980961324227903264424506072977641557711839354673718923715310486599484456847359698960676344703482602418521583195225341013568229522832223686944993735157177814048585080488279538326577580462110641352597835138427250365614010323587614957317613463281025687956176353301815721367175753619400730828170984993808338028066199453549730660445375479998581463623403760303415074034090790664738016203100020602823320624635546657881731687996394609516528992684524690391453716297594572367515089726743139305809233398535399440300353150684055980876315553208938565946824795737474739856339324417694733383310177679867092241180211855072247432706643639349093815729230214533519785514588319173621468315840132406993722500614880309732299154227068749416984977845434289708080105727000020707271403312368837769351975206365323330122788887982360665838783392078879056446382733341579613098962190268329611477032961583126473570722692666166831057493174648292390674290437838156348135905918229486240866786616459893106110745688729997560537287625796647682129349109338390304866775602787413615952701689448073992536009410419151561992784104647278482243472535623824450797353799973032389561961309377486398260001128681548496099818349091948165980356935294929076585085342452179980104147542729754523539788205281389117226727148629536781599599519375483603634279847364493989943587588012845513633489087480477206512295475706277459804412222998479469359967644222846207091075398316256112061660107392990566187354885702056067315262950690655975173561624893687808098669862572900733366739673965526391742662059605587506756265564955099541804146391242677483357515183675085671010447240967323452232822118665656918932658147226868592284629455345937461343264220516977097396338369526503227337967446399171052195903397893185341980799950963287484179298134460048442977020533203859805154018962538483076193301638508785588264531089193663290062636591447604830548790167844774540881858796397895341799627625513678972727741054572203187711051183576672741602015787955123367747407681276737154131529866117692491507746464763278209407141690495072097881360962324273790685718445883823405062092234090081162474578440308074906178241459222107245853934252382848750802748172377407398912590563206763316864520335762088679095407639479873980423134382823311435046943434285923244840711614284387604879735975774398850630803548798392865988627580977319804835340774172779526990233479233555241801803891641646684686321005899158912586684364349926599661842768184881059442792386079841276935583103138199339587827361631145801540827437549376369041533123813259854147285591136962138988667559012436363788864847742115939712820508354995296556650156665854955382272202272895749347672187706850890578925045065348664944790066373242377359802785654952674044373176400336393432301618142414930128835662387384565392229065158133048933022359941787541034985336581493910318256734929867989291332905595020508357507733449724429811354975542827812375372630412758005978607088226351292034975375971641696810312152740061580243973026053074507088522717942975326123015874442527028604430701164160331717448017782835301478958911939964470257218032149522642182846827396997161001068862947166754558736125326968124276899705335580288909958161717583050838731452922552631630675448595206505375405544384969076314689445633789072343444598481422090260216694593369454983754518287449627656725723854610761498055783674708771966948767945967359185943685392131978290928706502582945573311229687637353550041759425860387372728372430515073756544797283890919130181162202371967123940437677975206333031719489171094000768503618844628800254374033662522874051355027107839419185350296045666850916350760544720228248307852087241573405198190835611659013879095186226724913887267324671755631459451034058380199193440447653922231529675185481634997380814467435547819845826764197218503859757888558398868129351538318093089910111857593815225447141873372947939130575318339192075742983777659956170085914545230507480296393125881988814304217901968990940337011884515171472367321426402259620695962340316798854570641417153228389547219823291205634053223879025965231990462001327877566664509377666535975793096195695443501850052104558692435908192386124700143853251637655272376433561973692623908510126146192001096470311053650275797845346560025578610839362816451312647218488114665006530074541500582925428727090074652500033318355261199022032563085627022684657559901138249618143753037934713378950825739462855954916706095926340214897777199734447306228210048142402068787404011520060318551681378549995258587976113383562448796787202216008245579942110029638543395524466652540363668072033395734608278794225693770420151746378399064508771150751422607665214463614832382782548416745557408429053264655129361255409430707444189748021364743171311014932359233722442010811901992512465596917991503641844241950573995489077187332393999206171588541391189403471959059058860320232745991180027093243039379982800696259282598387819892227528241901559179212367849374259759966543175730708170728905299312840751974385563855117980726340755608137183844665365240123609904676149758887031402253103843607601206440365674392062853545445113013917804854869644289335612053206358944354126338551600220903992297764813596005743121515135744971313804516841222615018117555957446184346220539115795690826968775881881037988019014518089706739844554685556769690991583419119068858279468685657739136855081107604068970129271312389289312096475770584622810961628057069843974674204026474515004480078461026339524813667847380188141277938972283579134096871996849137487821765890080119856839286366046199690891952996041616128469743917007155427002340989076297297097152393346996734604585606486418569571585789825504903491266750085103406632397220135699074823484548066221500390409799576310862080284532218238443935195847093850892194458959453431718079447322410571777199257535957201155159873582070498963270584910505200119489556844667598287566358517695800088180218168816720900543300032731447285594737101154199587618580354881418987052614522123298504478275375623643314864240990845105121792522901279355224387956191517225673521539847286628248987449304323020868097189027392974040705406668037330547484359293760297156970030513300292060972089472315845061969431204508286971272058082952184741208256792408002875472727298758456593700423532902781906517455759090307841185980132519226495611635875313756623057082737850415484737384575108978322175584126804048556999180697868376744252805387272340658986851288757176358270953087214145116737320025120282471197448468435245401922719376120049156963894011740537005632422345851664503993457123037008213330406395348910575858701058855766047679043401092071004727849845209484998254523680939245706578529198127781646267292417942182454591220601970997073518171942885647603961368980723985045066174930515975369590647578960646261611557023170614284742308992143184710602423685166636869200957901709356229160722176995915358760908970153811874775150355024117250457443044380481455521690667431052443898924246707536297317502174255129221679916359846774592958595065010391867370481845941636297687330195719059338378538700287035343256021397353408219118514847793133464319991843507075271074107150108193656065472338607089715007615165984995987453096869862570569932834095757065586570803150844237426404569859646729527634844507172216707874443807314613891602040820421337554822224578275415923189886558911863448767760580369565781963134811623852363989163117768381240787222951891342172744150229524323850212984833602738494317409133872125962415547192045299281879454224330289362565894881111186613052975442312286486802490839430769489805184097823892174584244807694916058182510520787779192146471972595842578815607444768581768667189153727375937298989160259960983069097521015647823346818874155059626439470901160519958038081540022742219331501848792975676582943386547233045045920494825916813711483800480375194180639725695071400815238356267347785775712252332915583924707321084147011749385475577232966836512426914488438852332513526342626766737973255590153390104163490944336501614607881336540780574476974486064501354698269705379806860531730414861245054275082334502798746786500166731708786507163647463439491583529408644629984222655555855815445582593751901887228624131123570854953145405430056612666325856077996314055868203850247632196544347296391917633401546380606530247150784738826090136237963611929225511667508266567932126907017776963022033577114459905994420082921375192099982369675052951183025339960555078535277529923014851254269710901270159895773811406832385554492484851353273783034093735903186479160995838496021295578122259380434407597242309148567900897767573071151139357845240052433825346528450125102535653374084667668309070696367903908730249658647786818663387140901095442391803358552282903345517712898318368755956487219864805953954495996670365724042466439137026796296790623694024953930655529287540337161200689245706574531128810633673955244870223635946375836137431024105228468544188773133074819264420877545104514210038883655262086641951239005310486410088450438403223539331711417041418323168137233445297638609082100411568602657461319497949117430154526048359830911735064626699322853468289423789913935539049585342826713975622060872486248483482780911447089135873330011524986421370282200363610732834392922631909623901808082213153910775600676583660286325856514657373828087622322137791982985085245286923794945531880961126917382356396714987681344370952874497387351920065340068635771401841871781924530495925356109034620127610303602538467267462787581621804573764561265936455417592893293440776402170546133143875524590872081162436815250906915765955829283878261801150573711758789303328735965873671459948922564897495575734917441066867075383559633783752206874285035873018681607857315495022781673923290363813130829556942514921592496228737813916157716073558175953220740411967369357781593715909738408981998349590231929183921707619405955909369463288717473951535203209284293247530543013024661107044398559267658571970863132072440203160977866381223348298976409537704962403133255494427431549059678864226696416075981634615805668841940306638443023814882258080690640906790750803345807695605864137620519613477054603613150826917337787416607022979812239741314264165376812908343690176562512921826999757647178088386816964570217564747271861655268313895329734563771192551526263979988516966072183359962926872559373256096815739227961096385630304114636912045867782113802260654939448054373695797882853181220324371262794003723767545015957869933580396063487603453640871538176147949429842947571415587761280826017711306719204870612259186162218804530729116814346261946180557276264458260967742557920205984068724816014196476341360760616772634418904350635611527847426312969943448209257180764725959631429921578336421569937017725065348414659762978409869994498001422261389457878068522330998312608423920396297258144744207003455562765823019323433265550586118679239046110341602747152745727006310697255805932532503508880196351983850751720698051737428704368468447560125976098275425739011154357341321521424887166173678316385635654743447966333904169003274935044175096596231814077956702665915796790874366339520734839140486061118694801629550633351195299633247116286478205933521414577035019928384374439406670066826009254753364177507486317915259838417860214019797566755249384123257662663679048185074382107866875092936037078151663623608694036833422745285092206539657039499547115503340842559582036744811344739057149812423387194500369966168729357373872651929573517890169487277666589084456644490571132686272223476177674913625887226196287977673866846363425334328503415081457690998718598650918578990164864737857441854505763579211417708577680719166796720758844771531452738814507667218140296915962569808756666279272335398021129122891728930443609394647499524178341177691543456971628406824834800215084304923722068487161493137284346522207087777993894441164176779223715670523657006623238443900298563522882152548014751760449857519367456121248973590589788188897548835079341295423766731269646048789496217512009275192951241614889957525361084705333895520731081177840963921120727444874498448120668394063838597221289505216222292301326108062554877320372738774509645669572998871468624886742999531031496548928008042937004260979472309701954052639996050137426899649324760870697865967158763510267065432143505127043165412003758331598044811761106087600900790647628655345890089640087839031184592116543930739941775999402370658138278850873965109951578171520278710798799517946895833705087708514521293560173427946192925134431726443396642761793800311650891218273715507641245942191943909492257440960560619961441295122950373109179230038472136117184722166198357542802486772845432634720441734443654629302130473065342928910580046426716823735544800717929250966051096533561599010016167312632187212214239126515188319326359727229243437996412345717823023253111408483555837958565235988865520547896721562681341455628367556152721189052648041908224371770534987601634561198649385885057325503719510781469937121020136185491819200349141146311114037530460577586872622479261891718816646120239773400055812293619944491748613191898058602292637834456640363608559022060427769215479529487320201004281374638334626913546507532793305178476761924680838616614354493943289299191907115577183730763244165857957089796043486322130484502491869235855341608656125153230438918395238504715973597573715611594186326631765926142035913097395844672886708295014709991386650927408196999313660724429007685118240430959868799262438862051757696409385324533053395727687830747105202352921394670836939454198523078556971570653224511904118179771553291314267046308499999069566619320096218977084017392245012641014740215880521505855903648765521570735009023226844269267033702184682267049008841735517465144616530040273373485097297203969026107409891819929799993321256380272720935596778248592699431479822894273957506701006427209401126231706069028147481461764412368770951736020196897056598684228950102820753842996267268454115508483642022228971168660364951706302110479850693626957529272586293180863280679199187527158386582620855130372392050782352362110088764159469319412168811840916049005696680418021960603144799430349927318511517349561799960587916560925384471677813241130557839603993828491599214130820144803440369027872925844362762579233018534294976606656631010383373251055171902176702676202799644370734904590031253804158433829690053623736021198052326008668341614920323311590985814795526003390477115180072915065118013578183382305061184772792970778476624727177011411724337309783089684193651610670927787225638370612513625468917810617941486868633538048005872832954473892058421978270161902705845303907707508224940041026333289416566333319225463122173707889341013063349993873253316718015198666150441109152684713562942970478762849182782968069934596742480908142888237624816640553905577019700990543348300054214132865061952002513069740450310787322093208420701142888521737690019988950157461400983468671494534559561438094357626210202737015488998093290190372666444467361731782599317401844202813744873834026083366532877562509691811076791219264436033804005269967433040754981997519743364789894581000630753911818582912928148164624602641144333145372556511824099439086606027687389859628634882720764349935342357585169442858197282817629501847661287378456746800262880323752965796800602416244232226928991872250951049748190455822579504880037665070292893599469948858201540768782451103325217509181208313425538912703334449302986011045163926339167186310753056449686341907542823798776103810084026516595467213639479806724414236312434703364540640712867447178351576010272389702581747976163838496916921814033341972090032994132285196171426898738700434804459372573883000741553529453288178672959120094408461429539357894915440991499324957161960607545828553461078873620238612630651700602989969272845998216510016805587774116574139449531258982826122478380710322644193813343813848942991748850702354276768713698745622241906547651614696109491196956562391657386312046048932746071168262980332831902296484493114565081525884515500299637533081498997698666298251712103569628041126300615614178500686543476233135086763807805930015683925310420234011609881456166194740942357449341407078284178145200685152844502085595951101547403493783350605859275310601701174990619187329354240743283487972681190843044241026466791255906122735745375722631066764174608570949113915045341177753923384861962800187789037993509909495505006226093421784298413128096665863108017592697437984784484441934125080707639939099451187422030229736296146903629159320855853590158747596265671788000553299223399743353189705813664854886516823378520435028403773414051754335740354321852266881521942601048221573024567813529130237339522140270065882660275416585663165672575964893704291927280449591311656903524636271887206982736019355941564416312318810433121889989497204344157754632962550794676789255712835887766623730280853010016999939712897347449596891016524750264599091335841626770627002915610949452114891266935507711558045903823836997893212249718613503252503077523498464506441548515783266634637132620242595220219200682661511392551506241181434576396033979286413970019460210104854212992254049597768192299330043381917738493694721764928067700154680162603693335194896727720438716550790389969570461477120047677203289546116482472601012477703805070746598057292606397512461121305034809525520654604915361421491481459546296116391568102016785120990949156853086391303085120572173566224363364590479145488289539737030109193788530500801511701300658317927319668039643724169402592490147760271281189714009225734737292308525974302212391533801020068823882166911332826881011867944130327680008071219159273260170712209075191555797557276514814494347589662075389648782665850820425028194348836869262679281972683379405148102445648996187055431721495096618874037195128919408672557643987653481943043710350792006930223305531522441376907725990750392042884991141618804849595654372851093034582616192352450233508123328268849867576678619754205081294090477705566395118982075810296558265014705455311354929955041327288196001088232136852622849397064482443480047707609617068623869952075089006034652675931695867894689752079575364667846605215254789897289735631679157581800989202793427608960853219552182445358289862126984113407457055247173283404061268967742485250493849381152943897799583055785998107558837929160579647902761907766800835468766826490286291047987660872404795198253010005777681587814075009498881770461136327502711294717124587943837021145731990126694766343356691895088738477783980154410610427688963631143575933835661726045361064358192265309739968460743808168889969940611610641525564485119428567031972879217868678167424439583350606834777645935581135228046154589782897915192908841424415204421130482605562887997624002903671345609721695866281307222444826163948202382313387000057560581571295929977810798579869817523203634752304097188969413161160809556408693651122532481076502747536674872751537625968371832767600175317089088520910355066805276598002636163610744458483382920438084672942670828583345554130445874974391266594397657276053380661861961346176919649525484276340440387123439019586610005667411008702433022575023134242751719474204924131995519258015612030032053519099485036705369297088479722923948407052630021150281882220229846339994827048852866670904739339165538582378419997295233103542277026020891344945189086781887081435784980819838836746893876603599202236202132293431266341929434532241280240600236896780109844373750375288067565390563493893352073366968258381270251656835918546770055329742337145849335465930649464495139576890525376552845484371080888793657698920633909192899063715304286794902240841737883774636518534922488427264273022083792192458040755046620351176861197155157747679548102628532216668258658558124086102488841034025995758415778065608046908475643159701596897340018096887074313253353089884278807111037258706577263025197574775706020020880249724226937794951907223617809015255394501703686513928564524187002674054435784225590049169475281449301704011409852900010541055748441718768062007489240005413188106601603285910290099478196042368200668034794762988507591077954464370148379081198454940896140487302159950310365695992878311580449374835585649357743853736902528472005800266288143542798444877056651226782906572957009969004236089594998961325398348361998464114101046473664672021868215074364407775282106624819700694077704902446283636460561929227854523455006447357279651480043684237945747365196493092767732927112135125265222966841747479284993793537397105863490439852691777861639939981688015453819867159898460820473102806607564437649530271785955388353431157662218543090145752724566168977817861183608928607977103061622505455135696921564490189293577712589087521508698953673863184182976804056510301621929937799419072927132746078144070232403245822368495717882554457998550102253289874109580390069137667009659502091236014679507447926492988697946805539559922869191289006980544788897951789496797133454813980796525333988129868119171163276507535204787677649273272593947181087126213939235437339963694918843454527712074519253793162558835011418735884338900345928949763814543637246669116745715939277974794379427583652255559043254577844860023080384216473490791443336581774228057623643725691584463063438618445937323778723099353086993259731623705786480345426517304819377119218099707263186121423017032777571411365403437398511319485946230948383656011198556911110423551648015553333953392964354889396137205693761425048258156758516045387092148011710541907526774710899348101575139741628823485652236587486339638145498762017464216988120542129054579384829070991327389254519305880146761777014383697983157890988284562470625151675330164624294077866974796697620810596226377904849464747450564893729544187089878285203760625475497907420236968756116210919864637668924504476138914101483696749308135984605232985448701489494668673955952289453467053571061360955257971435424896435858935343915067190988881243171134520897709462086970471797976576927703071560025247448913219508718414623604721620894137178949616013409152128887977169173105672029917057265450360374002436813606212338911660650506733658564052829292402080010298101583385691737496209573660180704381970515209566353107970339653128526342576158290700548625767941752446957694001201851566919250096604934430497022769059401117160000638278619230215239647363254210715451921426101946227766126538497005320724076244081956412109584218436174064763772041548985377232689186092308703888698060232943870656062941007070125217043196146741679919215334483817232184128959797351860744925559386745553789833883094672703448785284278748779087049954934521827769204954656887670852174359405013490077911525826177271454785027382060752482639784135634301648952301613416340034588291314853688408456260969203657975300793286602248695612979219593600997363982098773269548061007328313666955478982418537631140152070398967904695806622766574272855400745670029836588905511125728717679176772962243214453194323651116006986629503493392166810695531092031860689664202998978482945942490638584209493582378044302732174970118252038245312842209536807391316544826589599399842893924794360244114970989977003683597132820218068991084785205918324722000808474902284795780460618317506429050853385118644144514887461744196920634359368689539993424705029319892156306301009997041105283796715879952379272153779520977329830858818156839299808406509054972596574897747382094438427483690431522257888017028991761330574301502993999139689901623471332424034916966917597137220904996438954842588783597694150126860637429156507196965952918408519226798075818841170817664792896781571959330284671057920229870232798490630429482032060665940824331469391293185486710887111604609699138815009002801694762606895023551289959324806855953109200710877312840648161824830832731143045878806048959944136115754738648966117192591435523021170125038575152305540657826700720760880894851370494225414296463651587777811796316975791136752627397754811051642062461496676463196244165177915379656058795240905636454627125899638252334522975972606637409220709609272306834442567776794378504228742109358184827916120723579845763319907148916523346275838227040670035176822680666805257704740982186437143548058510628546471722861141091266079992371720560002156901921872887868136542777416001741560163690133854059992760610868719143895640502676343599730652634152795918067141083736703543690661364989460469544059332734622346424804441378277207712246603596293712945573861477604692229398280731583893043127591877821711560863747555645798016916410726184339238356454408147760170167117381635252924767328336934433317414865043692292673334036482299211294976333629247564456014800865776610390539931660948963572260289155932970117627324903270380509557116548677184056206759518023703766943903240675834610178621501298322215432278111972165523086765280277467277506739996723723485422367547257228176014311318539517721259643245649535433779895193207927939960475334933891802780090517191009308413802887265284294539778976358490899698843072945602285247628069703138434139373106294637774853763316386804831034975046359619784317543203986459657806597147079748143638008869501085037880217859802700370529235224412890741007549258685381754824724488036390403560322847969128962513728283919090043133448516267282751028696927579376955302791043498583374472074185978567554955293694705850675973709341425361500678486921657800722875988860966835277322245682937860557669837942911725217581965369241627294561092549484149472064052861061930483476796371535910007437884692839918134687868162302940523563735379010607719309699453080265549572583214799173430468530957330182508209720409972653512074837811543037939825677519398316788624141783557335567754954926226238839710194345472945026577506897210277920954514533679207096684206941266853335469567826283252383363552335028603158731336714646210605999900521412322147575686578909527862469089281569000102126799589855485150935142639249464792497802667620638448900142332249737755262611677426681635797166092803699670547586491801578588666961357079802300035751266163155705294145072510394320159172123359535584435646074851119107247283723453207493682407790788072812699192546365370751499481976934449104528611526209728196108556375245192980274783653704489363044425272783668723649201889548110002250910959008798223454483911594259134500597755798612102524799896109838699570832911237129418685407664420400186612255918562012976876885290370536597814745700648223739573780560622302361699371717017891453603937736159993934927274433599850512438572341369472239107828130558940571865842673970483865356742003649829030379595826361433240175773197540721574729227000889876684383620620917596315228400354389021478212739188708841609089690741310259293504614367494157677105141163799145104770567515916064142517979099114477617575794163102182338788579372684576507221209555783691642963437717959020874091515001594107811329000745370870204015517716543681362865486323824760388222340883467977268834652944636972754179579134731370675046103941136594053698149247670343280146027413123809133705650015939875127019098057098071640968451899135321739263722978322880314387804989647636978840905712082134763275010005508472411120805669369504152563327829781858719576042840352129729471262751609678308396906043924040046648516686168957533556450870808851333305611271427069694760702374531319074547870307837629263203312548370984263359852108967383467504398440215928244714788210801032696490158391190567117964965797143022267173131031778227337983424281994208156288537297332538694575061826647152510722428784066133402168773150210109552327671476264805702203789155505232303468808695131964751616636088251928466089161501237184462915765902592036070995899377758035158391266226266592075772309280668242572858272412292769933502215827681336635232105286437387698626494688919728314285468750694226874247072670546024677320567138577676755696372832192807403140661537078768856459227971730909682892262838414150533061456005271588793855978689546575046414148530527678640661980809637325164793848529525371769991581935148989560403613185496585279683708449623926612687311272196289091909221088107831019917949724578140804677584200824065356183457302739264044188351197545359570814913652414191900088193476918985056865168520501787109046521839925495421572494524515598050417644982298287269292107307968480749488187786837571446710300426181280447512288711488561442785049128008172566992978232957992592044070449891898980263504877101224240510631589684447609413860799616496630976139833391432721828213808109102852732812186655660919814822255781882764078455131271721290889217793986611056565652439963451374896834071670434875464681058191325029976474849009262158663193829569193577416115348305223727731558078285670914588109926643458353816350434932256550530751648393159610200653085434906148125987883247817385982540754797881333586242835802582770773250293331100367023236640082658313009344181938440923905079529986979456432028595787310442015086053423561211663241621045658451940587972106917540419977705167156293815995557475258679903592540951420992329997608001675938182087934653199793441461239231027092224509736907752217721541105287589738972158487198578485665510258530237560995339574999722907935886371818465388700349325200685226569136400755888941567370978734997240736114787641506364321233713501850678325336196869332685903975956237522203143970233286800268125958435301276793941488480947837275908955417247331949624927505834703202129361336390190119708900513659140301537926808327145993584613719276832945441020945188250076546558221577551493677997605966715850779326814294100695749061210489021312847651874462979998625351933202551507266353226308528439754678941436879479530306637789265614447599756279720190797556412066645496786620190565625968436191763307653480023329905439655710186347078865859701387652298846704604638393323694439782334420948513591419529329959859824093409251768877614960649130149778794652114435899282992437198194483202303200044325305832678823599046984726378118446172298117124255681497766166966932020704888591685268849869831192092640296317034591675301377974848077083615830100209513861472789395945309661552944023610895528475534710711229626049111425069523474798184694055189045403590696255749416293467548846790547896158140010736094193615724210645220530821874497471906479616753658911823206087223307288325874866936680324121208408760443467288042198181754435798226248451620945359804211985144829545434160643512405125802772635347018820369925370421679621668573363231654262585969980541353940625120653389021280054194954910884486372267479916875855304146248103134532426493264655152977828267541770387105037348931580881452163040733406545596801869350280445066484912239982459361949126639965148812567690720456206828616030483697433320789917603795168208256467735374793094153482192163137877410515047895872262626842527696714383435185796560064244523395459471916891517000778095355596213436119072700254855432202908209527421876487385770996549532668215067298850862940256607855651018221175250334377276162218121284498959957717466746075786484349988859908674202470509485385028547363005764834330872343371158481570079973719061251143268449737390997428232698756919528395954109648679439812898703503642642615048251337493436694662006251352163351043018702985002775014277725655183427459642316099978684151079552661962651032225105593057685629794822562516005730812827607135613874476564539425997893872512188221084531615231458245568717362574410051291271433164240658726461442849189613280743676561825252658796118120621778623075219508367959505554857540246663220022310836504437096797215894405036102615367566929965115662233505615200696994759511905045274758215781056166310322999575217776289332433711944487674249097843110921235184147879280427628476694090617828324168947871921357288285122180066696644544675839927738702902313408893165061765751345325292943368859422963826891965791497004582558552353612599278375534686599853642784293055534980685073391753656694858805849970351667249426816962514078132680504622310268541936273284611076067155176783178117266048716667728877114174167736435069767494084441252149570410909693637742753355454743878085802314451121280281919155762498706836881984661544610565170816919304746429314450364098463826080011716434145972261947874607276940561592297723396842375288741775666855232265702405027989958787445133846106295972207806374982037819054043887877407804544308802278042291269368225091925018691251054197582406133834818567585395660903587807715038127696842702064153769303767164306384449482046534327681046611012827545193718046392534945609605068102447088017466779521058638637312980445069484543740357428766628072360372159965672618337724051044131928295429580168872976073547002592806383787551479904525218283514387962215230267388065671156380095308593952025911283738224404259690809777315224578103675410263628537688686833706836774077770702989736530391098359927293636538401820665502230418224867408432261521378488776004317649557971390052047609311285347810095816754365686356901940851919593176510790051619538055324694196604211349516230653737956070790153587562292728694965254257173759575775104838336073538743288886777077712423710562252564973239733739494018134791657314711874847173334824727643059257370012194695326847546664732146206164895583642282265390419036571963364309716261203239432140493955998363327100737101797376234689880009216587343406180941950310488641196305982370680216736075571278985655881615243770673241282375838272442036615334573490855685226595361664247998622572862948788892010416413378620602881061119223607863193604722622424989424278981130028117695116690613535208920191695465278524552013695341196158485290190137134874943454480120048784451890772381839103359005724086528068547770697631664331028839526544193077853805816687779487612351331873655631205863048703023039725250396713148796931052614399326311060557914693488854330404019660237058877986612219874745634902268412354018572709698508332822979117145264329103265149796949342728093684859966533990972840320886171081446820217459658644978139638360205017728043538598200156578458135462375906544896949388089643157268475567209157793065609128496018315767068855346138867659835191234232464968939908495681543569232781180446006803548403928762038565451397308469836059456543278271328229040824111259646973064101214042569818490497871793891487349298738927434456171402524263681605532471115466526690689320991276145372406788286783958654173748886042449534715645996544074440174581641209095153712446382815733194656263239353211192063120671450324668312821915810452571596708863728457817079445249360941383396066578061931516065445773737603456887631928593088533645455434201405473655944863808961387924534402960657973233641525363225208925088017680850709674373476735398348084924315060122564068404657998450696564893394101647604310083433710141933262080529967357435837492021032575088170671007812519064083705187878218148195582224451777852706993884145416218572173759069260939618794956086661896552118424551031063807063272276696251573053857932418151160075737641634506626405125906092097252964878637773293260126641814901856790111859760675784143581136562647585143681401216896024486188481643554532812284394356524054339775297627722850105610133525155283922935185728159185256278105648410216048838422159411122972512028922684033308170581243036337075658166823799241557144186241187857687705456154475709065570183724113837089013779717709867812040834120984484489888920823539786284895946183926855995035911711365207269778211425161897699927208859401321897513121394157399195198558303580136532276588039928659403505517858419657685705004305325961754959593942160467184627326517469548362147924159478912993773366213636808586584054030311665663646940265796194901771959487769635600397486955902865501659279413147781058614607870816999017253081378683020023703772973601333771369184366606034745138442691594253599153792986048834509290436151594878053899185322814596316542749514166370864547006884223029523232284781828847183767490825937132383951014894404586717514057977960177008053498995067703363975724768099170340245233120616620250214172983000838695745530999426460330635819833670511749339521925735977688783264610598124065951285067051634637899659290934029039871987048961878391291552973941527014019353226326629904072272426598748897254623464872199125114086184504795644397175870270824154953661190371120488340127296435113062868040042934902552320665681151492253769458021012737491943665986296810654232996452436003796488618789051847096187553305130000603056494731694810874942469989611145386251720237247805615705306456786629451122692104424245505459585588472866883839392548703553933056555595911244102940624491510339799973748380170567048647388611276547018849838373920522830508710890365216080712497347917209129011754664708482345742462080487290164793791539420757165705526136589893838268075065768383901898538790067035401768206708171535287950147157789616989927497977114599262617961762595827277623563352287704520976036680855940253294488479145266287313827564953494772067606272523719307493504879559099410518137073430744106043733449799485907265573165029496917575411473156783856051313441688495768740581235620134077853423244924009505799664341560380494451024785558033306956022469925047878810307705688302766165817342749774664763102723645474019554058645570648413938995132542402946083770035428322694714095490243699009939181427268978812853744059804950475834654401242596055739886237787867624898013179016403221684949706886953688279484476859293324514122710471514706966639705037622103293156722168312563832258295234896577412501778547937350692176914525297463588036222850318457599195315253843988092104398049804519412516166658520983930382610499402984881895314235223557669170636971587342200199531523170404895802271988734775918603547333287757798347299205692962650638649721595916272394624402630847915544785105385202479927461087850154187478853455709585879576206452757489737810672280653209344611560514782496231158522124450072640451444566959959442266576513343311314655799336057813054822701879722458199927051292800600465285245839483961941745821334154517457016463997614468531127418095582183277349126200893204578309279022886210119710727903317277825951500251142180874018115473908024969593278553772071626743303551916989399457899040576823397084565546937991671325444240239114186684619879091788684761524929829128117495207103397015103480341887154122059187917720983109477455013570945176271766946002136133691096856965727809281781458438917039792725529277312228815558042404765440665089226084101022303587500213855505175206301209451080243841011287342782978838298836626622059706978277075623979953187661418597618271455165480691859974254536509985389024359316524596591845890941234734929630179634268511837505050469489298614351462160063692089140524556890395519998245296456176459047907436850065666400053474888732634954173431162188630099048602803863451277248090244970228520634456330711469433071424639999586893248459340383704456960376342664164901340496997298503471247793242588241793679392479858447639968867626401920981288002279760260099295089024320571821504512669819168949277726404479061145974433915290098123514842525280917446674582581636312997974283866473441280879983287088910007958615941237984876579906748524580848674404732044120039993313815729848250004900498514055495322338011012901519441008199268389187718228616103347984463654069611804729211204526634370134248352155696102919102020979164788070982780569439502231769951389976314640402072533624729288890136447059354010905213256894289018637830488342502315515633086773147132673859934962471928081830640753962771953428823459447810138997337027813090501719558357786761135981289919430106224480625032658913424442676186662067805979240794975399868931333755924499631121900738321154514674668586207329719222127943912431494579218713989910147835464684029911955818167881914541131294692128466882064023464088494147664116780056278800949042038595393251795708271276235451682958952529985393261869229875629659152601833772954445223415356320111909048703646239096488142089614961854237487820321523742981096965957418449383014463404062206341908198509746673320471020594395781513875849962289723853619641154386533546454907478246580937395649372147869511265615404677801066839371436351609600886853428192506892289344019870355064832999743838838363041366152101506597133472112925407502796547636711337996886997032134831093194391743395117015581394972637491009320376670011537904811600737954476888753496099216093829196285151762490931998976658077157349803399318383545559738953341884312390659746897770977553762931312687681376024372866268597445783766335062499328210661643256852929752725288567587129725403227991096503328533988849992710431245244499977640181719349670018161450793239948862386948907995467304469066824573622800611877695979060175886061389339130277579811111551645395440682783265340527447034820609819338139188940548346250816058731804169058356444257191430866179888737130521452566559251873822239577528691362411039923897274485143124289239791621327391007086295096127283063177821494756285561166023312814210244577529709446726089881978097355740032405044695551996008014967138436689445234484801438261464347802650454607032156480584741264177691029929761626656446122107382435978653170740744884491389810291061733353841054605720333681184701017780328274001491868515821398299273951445715281647943973690423210145205895450045093088834344877077069058070456261249882919656014546669092879764280961251091235227794099575630906215849967972590693810349642459384222104967112435618798794432481824623342439603348118091183114755777575380139231084685014748772070518628321560357446279289005361619786438146527088101825160428952694775588545733578384357354277038830838250488608782906147780113712414398364795474459896035824108723943857065226621160520333257802944943739681456132589145778291189485963749722412030957891703041407695407393949751409591647799652779161347974125962958244398984327452563496021629595984520362217769255677996994426658446701861998431692331780363008613589224814237982861017062980513536917194256189980087072316733015085923270571127212924249764239071325525928997231087467192398977683880474546148154752388263240250485066927157660753297015746101562051714401398771285348816440695170351520561950760344479443589740882564553321818651239163631228665459663164079947401929481012692781885132201047139676034389747977094626549609138482223599930993747487566079535884928738326225023232706280474753762142071485524502333007277098713485038140274185882867725914348344446862694704275313409287919813260132238911591490082639187420306297183739586482165806989401007871869244362170041108676577338480366981042547308670306538999539734895717494232814301476821993449702369377851801905546107133795327736707409107182435215620687902861115450978035723358390212604376323629161274297862451316599274051807408414038215308151995874794173832818234220853195917241597195111462781686937251923144726172324046200477251040267313780170052663506531278061435463767778961540816837153933542233351144110949805318327599632636494101812659261701348836892158855094405751733561946391825393878777053256001007671339352132161157212377660600039879682212845267200104092071143768925240469078594963151348560945373446716776174435765875213024173598176883881940510965773501408857889507612805930590086159446458085826549483115652037375339856435951432885199867393271667554803620636575046824660081811676672976739273308757019098990207397317820687998045882367569088279771595673239940090799299996126874766320817922818451194110039891364501176962138606667256225801509849398100929345186942887077985111088235218284175549874786312785188193810420619327758465166327467613692258730783839607116824738597403437751481379811881809861344925577654059934368262961833173367011136126883713956098201962521390596000824840269218833222773974577480216159592744784525175965367121982444529661180124946327390915683770140414312209623558582605123985990229695765176920908843007977304993522223941515220623667765006172427302302123689329494476830186207939495073732875398959412231754235402775850367965590722378321072729977888902482717562633015114217603642580149358612562541361350371539721701300099258564820079699280837433537423517255059302018517691334015455280429197880142230012949627657587478110316364613401461437115583995041147414154687893442950674704394994165927242173585556176031494983274904623721090586758813525968393857238417035400769105264566720397888987552898323015536492137270932142263864355825799288093847020743838398546555789792630201561795308519684406376858286318519840801458299095942167739288579725155075865586456786954372450365782329411932324282288195747477659203200027651060543338575139536346187352678784746863143448660527367366079852412906505233154333393035085138516309196563609466706404710380824860955280540140592937415800840650223703638626405545337243152897665574366371284991467712079840921502784106217138487816508293136607318189082809155300234548804376156967479691882321154408099379228175829472719861914619913259382546705283610795399160388876650228893683823339677952252605725600460886509362403162816132924644178683373202116486105919405927911558567093327086209759723281413288986744759621246746245156690176582591087171900124007023486210316565788395519458743329491153841347816182754064807197823499456274564338879299607054991987232314741844005055462557742102531555285487597984943126500092054897564717650292243122823322980746095671757753605607406092705354686590311397459077912592858087659547315407171026636702934278365204784075514462636247815710929554665367771172098536835438372663930198689696490270909014913446654296073766387396997253771553905614762913438206470879873858297730103826625578903525674450450378783944511401957036441113418478317277405537643434528066312214324428187579649535023716059600890580916895740188995256681285722345829951654974531742825848040136881340268529265871495727311315694669559682492417016728710609004407886709925629474764494529739951776745921485430898300446072806335759701097084962153146039251801943101474248172061868135950701029727181344783465234164531033200700062465301315219836979512203474685488506024711129527550617766538804872222232564172680948848888341667661415582506129738138894443962527183672732664899240554497392968938423853645710200002761741598381010710183568750393989674946187330040517724296118602709568758343499502645963484339923574470903814635882294458599968059085690398553259519473180652075521685946139463609098421347436601011394418698023931559842722085155298418951658763573507169788035515045232851213687129299213642256274299318245965751697956049291733306835115224925738537816737329647505641571853683131525606273498473785792141777930400617070479360910283400231470965767391950687705029788768655249333098713129935502997489523303027185513103462854169302910827988650871774461158309255059847634847179909550874530190700752550783690428823315174201194328973782160430130995017124033362106026641339620634689030747197519287521171149701230190483325351858424250020732565201015764970378979113202761429771475963804700803041175852935354603912890067119404401976349083367479425607061579182140044620978596701686793602607354939616676709125045611432534213802886255762829733450347380503942667283596938866071401059631261865285040136671695003058684025023382367579751663070934932183359501068854405753599983192105464742819836607794254221679759504951084672619532276998032614919991849607252062338479544095233426977161824856496579684008708142206383154288493459768772674013585591864377603772582179217564580877939992042198408555144078201065591054569642747722426404241546941744734417153337243891300899449648154130523491637772181965400373261068686767255120659902745094481463356400071213709063868031224730711492083669254122490707481948834013182512172835444726411237212770232552511802245677729110584007701711173061671690776567076013472644380893607731131566570338744526356678014341973741890277574296317546436463694597376902887025819051368052173578406824394501359472538324749770725369747121261648830567968421097100673616802287222125196627625497027203006284734703749989683039317157157280365930369252598052558482120511810029658847574843332399513152174340580408662660226984277604657228240219102455024598034902244308166115125923212704224892368770682813767479306214296209603247648991358970871971915173444054022623820404018509488380741649756118619483330635522419535293754096730492334354225893328257512167894345292333731365654009746919241048578598474931623772852086264053945342742894647398667246103116309689611036370970749592947660361198931592162100765819264097999548912989587576720710029471076109262663326457279866469292842446556001461506526156994914552506530199089736850899770501898352987225981533373685567311064421281603473228934547808181189180918063601262634227683306731638214174335727137587872723195980215060968450349587656446554351759701664750379708183715480427445598675830365604293776198250049565645776922605498230258976442924812215816611325840424950750586812301570957558768350262834654640998797869951127494881475627740418043387540050431480263452619132547522442742902391615833911923769033807543907493287501384164650089205552867121403185993275216626908461536257886667026350381067261160353422300701299180575754175145984509368515246187536615937048910589902330886369571971477406360080763530391607979628732451148210897687383240625073479270754195880132218482645181189110255156914862450444062889303988772994973240738078770608215885467029571245635717440199874886555438405670265740763002193391928658272542334082964007683379183573627973332944911061100357043661597912108678823793193619050549015480695683503412707370622933891003434307122888211983484676626381740651017643116637815742994985366272790946391340009516500029519979061799998834789201459619431266925205481925063989069673319849417818918778522331870613811790361456163699632334787420783468950067613181332374031865296376582598158426434557562983951203634898347049303244716427354453413679298366651758835813450108414755205920233709066754021849470065959470479820758941798007448036133782333173755321656488469011989686873651505321522243338343218735251833183894994989987241489564197132322688581266187480018023233062899752694860056201302457210857104620300803359932535165776489330539538594354724926319542489708431544522274814010499324713373659201036534072216397578109518535954650218356770244693653281048819036339036652662387777039373998724835894956867920399705505077314198703593237815935644366513050024742710503716269682567702469300698179325487335068095111953729521536248435285503331750136984585552155227904387491524204637609930562148188960483791542058307259335739128971792024435761150232990283769187496463274421688166584699360875258495830204813053180234366671249403288130079105063224300762937145547562733767417823654410773850412175842732969635776646296608449994841003130785199486527853255060491289134600131710494172516257942728195315025489843717564571223881823404572206298410133642271015095776674534814857126650264441342495246466395960899895763687268725022475051840820246269410115158056452083272957080570405341736677648973076698788949633693398468754392250512849188423411906362953013744203873931342173219262805612209962081901572211688030050932625425414885889077419923256097815100489440028027368234797802406891775727125440098429660643949478451198069767112396557823535089833826501165721726217958472648342523954603127051522498755167661611603429582793142419956765762954413980977375246745127848820148605707709084183242825315775672462854280037315898647190893228929464307041660195179591737267712815682602690837937362664826463770258058206917994845251686247105853856908413121663686415360921225104040608570949011767227367000272901899538524172424541082266772002701690811962482246949008503377812459198141880514101414697934527201173532960836706435325420941343447028931058647937480188559237004480613912141024915628267742394576005347102341786101986551357703796712394780014109137817734904507579550227814999208840996146542358257660476267235894403148586802360793575357846801414817353703548471440289912446842805026077691065256293657845425460881502337235745254636252666591903743813313194296360792287211140977632899667878540413014194079648434211498168956518707735059460790930357880604263479263080325901049103793792640192138942049111928051306995642673860294609794363908049477811478897986929610793951691769596654193588281099523010865008436574063650315253212592527629078959703184026255502716487669246353925900773347749200692739242570085487934255100755353942183835317181614314000507163736439666891270499362501550808437194598392811784267917474041358920579353007515689823221871762968038163756287061902687458494149220710753075247500631239350082288851237366436145948578800554760563904269447750656947870958803517335570742681005566340707050554832423394154711724774409904861645365637625482214721853329698116031672393681094888455412419709235977300843375103132543950365982892453978411913920773045337234531306956919665875673470696165407640429976066916487056269695413204513136033100348511951740604200663432577668083568740308454417757967421231447463382790964340957421003266024863368498420163543878833226049399805991422909362759135468282624177528135197726193425944280979623255662607382130892550549603119012774176923294904052147410617793073279787386550150859146595491298746908427517952883022597415537704470926652859630286409320822291013422403179288825145891879492383306734223763359508900270656482248213701123179999945485892713888157785906636673134541025315170921804013758188036166313858847859318243109077399244273246564779739945947541044927565243114148993564563690253072302093672804194706141813987306976989898940636886653963141628857210510012480890513900520698513220278636871502287996630367145003212498586575455990290962896100321540199899245005543389569998680798398274737590161751952051921776614593174612473033518168173689175748078528926179982555327274260622968279508804455676489287306311028385900998539046673322438881493227265140198264715593333679031733114290070020516367329376339944252125106492874427801010177508936026390801547356885872330193891465175259901561424890750131337817808143101811183272406340375149871306635619261249991112608514297598448464275303273310921976565095483886649442373170867608672874125771530873781615765190397336382259984000809189796717427827513790560565642241776914048552939163891901171573884665958006388678035765837940931881003475886865710462535615395922331583156343069796976762066638190848991884134435519126777195365733629886728108320518907800191023924297397277785838217397750283094184298683091114011871699524719769157329916935797880892063752036123014817134980293415766924935436988236233090797034662511488297382313672135479937675708772134967377727229682506125855400914096408984449900504309599180931782657066269243034909199699405171522048062228811091069853666705953492882571952499326245443458700229796994969174769858182868576161857958041178905231913028121362629094625037572537234815434826002989701048540445137752902186962603265187468270415760812629925806665800831799193467988221524373810651357290351397403116380983881232543554098833147499579309345900859669136271634031581041201270630122720267230020432127214310337625813508898935831850535089267581223018646671696690373709680810266464718715569189230636029536812800758098696138688023311827610133722092765539208746011461569382994070932825327519094399081298484562946884700601342842394370893264739059418991615796914521846393653501616922174030446316233504102101367472261012211107043716111835871824151310714914447930785277055224944895039288971156884090052118965187570067852703282793964572527228785952701875470434298590839763872977766898625815653028652866580470057720038662503379748588265300670866461110755044234511646388789552566908887494269321239472644476759212198717642360218310021794615788028356421298609454515436377989100876880750871492671161642795656279303998692459261815354645827417400987421938670167825810869541394613970629508483128908726924918426622608704191799438425982021648724051145809534007520609629440028282191548312610923266244744908157225159916192164023690662468758812579592879029118962617627383544522571768004564050739832085054063463921307526591630204211633299833368736756108665940465681196885340348568892661989234902260493143534025490039776840000901667027443941199734297065496875883258754826263863192765393981088158886518566808605457130456674900519187943098721882084243834310736167666449409936944563657195667600500187891591052896384736433738305591173448758151913240429991371778330953142163855266613971473539639130867420713810634009070603309088690296025457023840733791286053026193520451296864717560586301662368045135745371629804313620513009816730175357081227941051148443115716477335193946509395593574401589682156324496382092910179946458282994021814778354369841143257554141731939432144591648206380611548110111176444932184675787797203842445265912493653889699405915031535930185728333655829756556092816843466964913828238830559632339509290153600089639424875252229777815264982438763824002768178775094158007772084968644469309026530495749912168367828042045600721364688317402618456569149377871095829172948064565313234854600921273375209832903520276053317373213070727832352473267942970813296010444824227612726276707460818175499616932057677451834190474071771083289386278934451735589054078676013286849571782864980913357365818728476464699143998069252384205548274257578274559443084970270731605510882695777703831335064285220943068413513673251205642941215628448196237386770564029836564758590349341075477986618275984332879796976296113242268979231908492631157676682856115435920735382800094511977878594142067723940519558313764125065349365947855625023778862292914550207853905693174703513579835088628008348952810127717648996870596478316935382640155848914710921009619917847280940702107639243886532851174432533298420195321966624662358224023268921904792095014214336128235424364982924091984812082535113991263753047292621531227926948995344148266845860856255341063329673073273602865227716756328554247334303280904170387932526229016706118916963253598839982612708668317804284087994256279978712112966495801494150817624559374691414278316888055815021836660717922203881089082776771248630325170366976090989138401701226789195244871612351252413660153238230280689530741782100735407326082213602281591216575623846153048188560719639433125553455867833820592857401689423303606416426459655041421485606492260491938328704643496193735666992194113003754466359597019578549593478343613394325354252386100368699162232741212564775769797904109215206431129753358809432745436509333530066510489245579043991074754888938403037651483766537060611058722556140913653891016694180370518629223226205378281619287956418809640496951362540828019587669060722197733738417487661886997622309388108576169117362532095829960313674935789266056388332439174632274737488435720344139065876159784679400829689906876044897883979177125516521773941660779538976374831225683792295354697348753501782764179165800816499044915996504999140808156974331897583257291914147152595562813441382626033488987317078050445145401628670806336179414214445336808132299229985897957697219461548208194528398255148031445742325063402371120944208838244114658347292779014217192015083725158832135811137043129057175933789086905667704190060324397573693876953716170262791790697333330626247325103504015053636646467840293697855550749564023443373702372536304862730375145313967686375462664209093940941038561387294856038445612133835613190944018966671075563919709400055493071116093010314009874973574575820349406707819118133852558529801865175490716611362221584163552005933733200920694214743399216543644472024475201963839895187216171851785971800885731554929723161974095033484162229002651055142644180448304566145272167059070727140337038406664278316741720396245782510377463654437603417453482222294785703796648233494806381881764593157323587644354116689458369727871194196208088240678782347679415824391714784028633535529505905998481919819944353021038286598100440410696691448625440309220829448413178632959481308460807729387921943256622279612451955132879199437362432381214555687604405246121125812794163359318604720805509883831169847478666120547895665722550897485945673133950044688598927801954830279885503056554304467505590626267668752892960268542401749172274105762045445266036430411211909406320258533319915103988927460154175374787714066557784214360822815238971410123170883999596759362077679647562174419062213899635832645591306479906728418145433832219810805179391875907021373928354208322731064759957835229735839850520286508100930697232423538900436195884890880882230867373068040816744885600810744220841379443613410486195352944757874521042808669539007510378012600180935296857847044540217100440387474879009743570108018174120462776304739901605873139577741833320785110302757820579617486311521431305812250610948079429657935130295263538699231797444522518145637071665561549267321171332633996952725386445813241026902852967003250156983352279297011271362125723040622952723985395259837338488921910065096450692366068218968957604241215971495782609413712497968456689515852924919075566924398439517481710239927553591458723302297059835280454286941975963924342601063424820913685775443204214096447654715557104372615247101399912189632707068497292925901691655976584589951615327468206456485026214427738083093534339442313378392804899839195980681027535497681482951843719850417140220472664908233191779418414107477123827103105751047069662773489981181073113944159482386095200111229610609422188612936451157506322424372890748746381319538638845569611903259380647109041831513394266762585316052140426605180680022429341477256668150232850469962340248378970729757570530785677085933573253036690729807711066990329705257274815899149052177141377143275318522145566311743621431494949596118300739114383600035908660341017139747566763987379466072254378113339663298342893935300920029507552638407824237276990327595928518664878217377335619437008835056973603190102546766980376444767559432299716767362015517408137853750549826347314355841630014429788648536470337001320582088365547738007738496039209083506587132031692755612909768313090545980030528052452794988817929853931830121228681451987187285620089796988495342685859631303240503681518409693785646696636936221450128791925614868526980842551905963714770939948297644141102159653622248886269571571753656246627087177384494037882297556743070664674596349422298597469260533820567563950141183681145276011348097898634170269310295023209287835318790773055956247574578155593845146884629135399996980993947485816298061972464432289838400510138490557420496085460648843363650351202000150949316715694133934795668971046829663728023286014433084802496311443264221280580926982534946404544576551447144790201271145547170559700225208392418124233069093663167346730414571600505115935159719187352055743744541817586907428453644442646230214136562044726273427593435508170970490127790233929445030028361574094041872710224586484950035288174900006395455451300600311274614597139207776432332653379524878865712547605711583825443905760668294958852147602209540585623875880405761008209565307263310263687015389998220975192591498352649875382947434662130575317823419813511682194610578524394862994935818192099733255177471045023544661486531977677300896596107106789039255846965825197475150331959741063622864261002506533065582961323671474767774963802182220520325002211397860218582910963753209293084787887435874314947709586828374314592264267593600606553844851596975372838972432531467422021698567661856063589305627841046431212622829118478022567148454796274751029315821580231418402748495761146363617747852940891060340793756919964351747085287174475993434961885591171738780315481141924650259683585703774694660158753143245659810634112964749480735707697693642522543885469474094218111142761509034459983966865386383614203305524177576527913513057421296591953524066755909536210564423260749010552514974364217968087846146248160767180211550554597854852311622787519807598809615774993179970416081192278248149724455723876144542281547081099626751068359346257559238857201735164732774097325923419054977728015746967284402887520299548270125559939950004004638011413722483250169757984295044011128862863616708775864277442989059228875194702077189706659209836097203714735040251573269618351334334105671615453899526338767190935752790285885161208678941381276006057312939020842221178361653201618564149376402254830769827747999660611343775595830670392038558103452582811232365774514910967396199351402909872331943160740228280118973930577996705442627868009278895053975248474396283264544674140640182339483662868653382863740045543036640908380720713638564152874087198705767094642115751594447232897732810738305528115026239965743853774769570076461544785381769871477291481419985594231753058667518868507208049445449894329948186378319245805920801912673835018901510385594475012452688791287015860375922571782521973336582207885541475316042861092452201563716366525482814615051271030989959479878099985649735011798462152400823496916832688154345341291193471257121599116653924547100433601395492990439704048154881012034290905670118505957573976304861818427564422802437149218360864855135121836217543139348658924260045698407984484369533167069630873781227794846194872428635605361107549277003246265369047177849641853476678083711451186250162585305157206656911759445658044012457719040847070296694703249278438917211062386985973378773953689004022799856082072595280889223761302164393189973516093601001771521158798997126620683334146913861398586842317062733737994889784949556239093168601595732701330740358252867285083105109774714232153836510393661591078415574535140857084722607812754473910076767397235317788767383243259057470250947950339125461964479322589543175349893166997229754042624984155199741999645067955326526153098961344845686356639027170804845797656613666090218713258965590542880209442175118849027304541564941594404643089383488251565089510340828870130146151022914644924953816164785672861311084222721376408686620310209841390634263734535841764883104534781917842566880615258450503699985654433583105452420398911346960768801913436504779607401220586846253484069160144799207683290997627754940277096781294556809615868640806081197369190965488201335381633461480142888187441194678766556989023105400932024285435608309287489588903001764764728722478313627093304366193482387079746406179626117356936570844414858263248615361652534330843620027500183222929586689535654145402599226788736507426265468956323518605310309937831042083855071840706180325805914461348059738361442299079292777430728938092857093880522465981145957110598488689036171544682238156634260576364096891741319312562050525096664479942951841724755267870130034191134247591449030705002030011618047893872112266032007003844713315581415438389294889570685792758641560016684879900321289091773591147692669808941150474597012533216121155587012016109202518285343263239353628168779390843049021941308214126899154067779802317539410268691532599738671271931108632386678335874262131335275201247570661067474097327502886801251002958262310459860451802878455342928658087506125926083452507550610604945432579502365409619601145117668335212023903385590470476834194170398136904890178116512442302898812077861858303333276056231787033805721122478446301492155645736351011608439743208747178045204967393295644660514325291237623142597040227529305535272245045291208111141984697898166871522477401229316953928572565139749661663224409181637618956820942452661016710277032310150819995217872466167963434546219780342670307964075789825376082570623379378849691255108780234160232834036848888660316063919870851535552703558961863645198731212851166563972537660877588946391360774152967494499332449251364495885335732819521271071926660731171857047355433505799465393685033910440788597387722326847945490109736897396604284320410596993257787702171695479963286306244604109844879996060883577603577190011658017964879847523034655021938175831197276790388959123663052287606338135155274456688791679601721601224657021386265270209657568870463270801704375786161124596199522138118788565895912369706200484607403328028675395046661029778037925018142733244911052826977957671404699112947991451163321264748958215976741270717290490312477260687441187900252288031972179722506741199661459954032280930470270057998421510229102908654411212951357775398961540083227059618502026662740578371173322036205447281252635444573908009135356639407982610694662780280586506733438960061884034775589827008903912341648670736901013941373831723025651260659663166113916521576949679529314727188881126257104417817271870066405347007727465003033855035033554426764305001601432543499076945991000078780904630553647022607232220283948022799383979721199962229179687333847805376178576448036104987997591624705978824937052310990414572608574779752151580993091942668916085823473435440418301634979608003633322268202756232478515766848635324918470931202570718983256986763861518813862328709879536867996563264781564524856740527307476977266231325745302335967425844640061850215442596456145478171824078700151607358677769667693496441894449835245091178460260979066614546421060618281574471932248014169826568186434497339717297677023139978227790410162260063721036918466152346402479114156365479709555200802795521010100897630693547663393756756666805839820503755917731868315824586394966013563186517978642940498752387246460980663361150921142677772728373610586828836655263992935782432009188108953097007576942642835289723362464051608672229697116275794772729773027256259048618961428134536438939242633341997028607074047909381173489992029880667253655860785129406430835739604741294204133215904335451648267287248043699832338001029300027544014631447363357260801978280536817066348261718733882377189386605753866128219188833378987709022583381582337488371612152200511737142650710625982516229759904738124591525590316333014640675391900368972985710296592439414337184867347801729395634543820534598258666410997243138999541437776070363917981229530152511416583615234146722902125204363986330857578461826764462828260582236173670871822947183186175114118621468723527595348558877721307711429103152827837665780644788265348801180976678081980368589800003617180742399208296193326137783214186529205587831320883306081627514035102658962480199585761756978645041510078698345684198645303381462759439097966503016246585974556027085585423383209781296781808360236538491175649943240001385170446094859878173447290761190958689401036629830607694303970910895824101799475409911574236008077181683288603960392276069582497181652924215777398412375680256139869968386420408221078426275586405848593236820427550699037318394888766232963112669660328550974224825935673961274841839839676345116200169399901872631173353419068404218422113919553629804008801901427278016639628290452489491735596163136078349278501146890810003645477038249560863182467617079283344357030161123556187290484704324640424684783704289981697225266361547653744834510193305011901109440545688927627648818607268142981062341023957473647578589770306804032476621356355268125643225977809193101134934296327504898763129606826099736678029451411398934087339589132244986616806044710679012101162396390341771278895019315212051695614501672095049058224585758097593620064718712089366940933554393812441891110885721537214930421985953034441623891158519514600170226636438673919658919848814566735470005813539048821562506060753493981219008800313920951987270829830484507906781565810579692167173220235313141186259563530126376865901869560556098474259906152908497254584120342216531361685761373814843400559931445973260355842461333485692163021128785085438837692306220578660592208474378892687513160080931364188341506315446875627275107578509104647239612024198490047209572847781442075844306203984038092644054424385283862396991195585545186902834959892511241345509450612546938375278702540953197742615842428532505798264938583558108749773673080924171974775555343578641618264928649260377401934239675666839917714610948556460885207226830485957312445357020603908331642507053309682043789337233033702793928590752106124289075472923849683404130320368393354796773884072147074814681304107836921749027379266559931508764296159340671054430799586251512594572320125625657383731548482581823214655307302429806130148113509708515777884081976183506488953700082011741928236989795581032403410305978273419467613031937836382014492716876459266270984252353876413006973646805520146303251017771789356113370595074914476541885744112595644656178702049653865051477255083526260436796092942799633777493317718333221688556764012898792674359666197312922173628078770471516835808516509284474726529755600787615219978338242129530775024269120152949813539764346885632821884165729599563256720251994644884003977444045458696027723463078162009636830999696681645595129284216888528998688403145963225848558357757218482356119331073268746130626247738252160008719526780234648664154010021288866046265198702135455527646406885020105384601155638641891071750175385883610711532629993110767339882898181151644244176004507811583273820182619821495630201201966200448354345753424042760889021678005060736636867179147358087865746377261473284602849932248210219032389894122565634322315121124039198498575257308888384625080484886432923243783398349090035947987163330558225504144834732444235877050560266604186688441520385013595691792416863384055680631655067691910463825412976657053853972838720494086711980955392553425710824624738009177378685685639099066222484653120521531382750305446135849139190372263579987110552994092102082644766271252749808641662292320046137170950039635164029297662518067489346491119655764252522825034147908304818140626050749739377345189357048009628671970791445560257932926019798610836969822097207033253964556030148882034314709958041134124603563561992223257304699270022049240703642750390902595414371494796034398955848903792536097237860558711047540380986328456563786241898113286474418774045910163774607537138481622248100419200927979498194264896805174353322402407327009213681459377315776279695773891617780631169085795255609337181354593329253480053507333673851236904870878080153074126148313086686528918223103826024331559500275865465590048218123260796217530877029242562716951731236756547142151795065262113761547925140625766294634309555232489894996196782040541790311175236486437594439503201031504394509211033397814304479335698659353283594577468702174148722311285558719674981829646327890818065634460131706116262693970356050812488362641924378523097100305001126638043655100929784158296142995835114382886773642001416950193489784849129514388921077418109519861626651370741836528909614070062856918936080354795428340645166824058275799786462910963890517993764894192611610912873465429454935777611766707171800758754409512103969036793320017986680409726401499202629777589400646073402977112911644813466220464585715009413489594165162507965264415091973927269275657317406245987117242250375949817424441005875598049342899295220130614816913705264010514906896785212231714715730065542266432989061830158932999328341996286015043217757812551928515492830606999533575642254254827267674046784485933257546429008297192204804548320925534356260782940146649398266242987091113921821757437684195539417947698257071129648293634033613632851949344547541229163976919103601692383032461171024924163827685772662976485620676626333581277209534448346852213041885306491746510991046574477636761273697094381546110883631444803758497148898290501102820827876571472323120963628671856908389250671980478628820363472252684671127446890920256960653105548659813686760330346683949961516791285640217210300098145538369209711273145753795896113642327841225847610779494401867941951043001406790747760203594107321030382026828635729863819039514676371640894028174498198526745188778535264156125893482771272071785488212483935446254773142527743454505055140661231071681742054241540730491785066336943898214795534354398205601537993385203311378475456182266852926716767269809615436466116548526428508463678459225142731943346311144875170200492789703409916803607297664508379881670520527007499685182800439829078080270505832889410895954025480683906821647139057218142621705219666442701254101301259562847214266571960930446475365616247238822782672800329264095819264685188792611455237028073926706321509137624655992000858748451864987718424362717309760340627320595333783052184450049246853655438359047030626611727177635189818866465472151918617456157823899690860713718664067729771033656007381665318891927952538619852424662071002600586530465180566601928116772561545900525225651018675553896915942502743859014488130505616046242663812664166387902776972406945429768951802903023133632264361727992791835328928278856587211562449717117015936539729504615384423890037338705010356006269702081888654545624755566652726192754887048551595674663638801029826912808473899313716820969131651463251057005259381946301759599708453731830721913811488546755513666106843542306555124781636763265705018101526703899341281920779057599037574103257567250925530112369817852044714588768087859047161945735396788624430393412315329400012194486901166463974499283753057756684937954078860658139786822703082838642914719448843874138090933038459795038772339080313433029445402085341841746003722199458151268720088096961451997437704104623898543398509669177907070754568923177649588921282964189691301790508042384969102679849995148184512607977924701080588921158416910672557783196847030932447959759091583450346915717283432382194735952559930061667457347273517945855344500899229877340516613971932955398724625323904373078731029077614013860971198296162597895380654189863484550500038163244068937486964074391673680951000468916544609234725312452382292869603178785100347519779198911536516961409132123189102849897657295695671126290350400080297338782892202221376114604680161541591320383775575392926361878031672779951145016417538345817619058894172362346411539076022529447135882555828888261758062291407718199025322761028429694436542632181550254032826121406957347650988671252984795036587691891715086250208122699923773577617851987522793866207512778977610571414392307655502609603629208538698261232810444265447946671644351173930997011436192870970464971887886240771062463585203809020976275440368754893768473359903189228485651387439665156200170874790155540973830746234954405951852936397520881976143132964472698011247640971451489478224771256544519166572555980254555217547863808527689064997735191690695395207065116445863771757437972224821114729612309350444244437882662632122273635096352927843298292696539000759282663130752457851775794646375817781242578971019077049315301387827592329296006084796076372004434046736585291455605303928985650128073441668320403646092070300976108053021415625148351164938825883345106431407404173984839334405510936178627147225571172175871779848761882017003978387174521299238320114796765592134910438604415892795799059029265133239762771509811295629406358809258232341080138616714605769576385310363161605453228041730523157583776071386968198132983728374227324375122731415373945359837659405404034564235065405599968912422173261108543527688567177568926036081747835031056129417788695761721396583637880938469197621910598294761831459504127502456835629832433523646042900456840883081508783025357997228454466517552067779471716765866038239605273338457356323518591526278867373953660255206956243166389469318740997942954858122196326764848830691842747346438056376193132083879023999469312810337842023672892539089543717551434909977286870037943918991523752507944436109585896320954810668815328583554150070516918708651756506455555664293347548652177101939052257569111262068578886926667976934033101973148778566687886002467341515386199216483593056785224784071020448982748543827064823179379456078305936948910916713165911753759992609351693350412540810062524294406245601752264802264896577478741346574148196619116989306529599379792671244057652520410348334697378908843527287477206806128321233794756454561221031194389554614304033663560593534757302204168759425934407416074215229151455753402338593417557049606908898296896684098607354117534661083978456823649243075853554518521090896747088329919786659232858393026130816805330786922707529716238473889103036214123232012311862230220749037175870275101138174488604316218231324241738344670983966471341263771426922577130105021016646487022574926837629597413899680233510198584779170267352828639993268925091715874635873350394369013178804662725534076357956091375123853884016312363625994128215572358882738243901215687579065709644310238994625684766524858951095056830019352149243489220493492604635287070172315580523044790393077690270088382646862518603946313552017540339755864320934345620279311978753311618776790650521437472925023203919532873922740540802919063445009269677205633911891665833971138742960255619507223608210513929574760678563816479421790717040119750946374543603834174957861565241558170354683890270056117168974362426884626424604702755937874458728780828258287133481256147519870418902939007882399500572978994376068366179376925806585830803012992500975874058087992662123950040338193506557112908915725578652191483137651705661751406094846060331197061220834400972806010731772737595436629936228583249132696496124569746826313691999718475594194392207571872395652188000814099086930707994221754123470594703017034132099767894019189540591185525025505707604942610199040975134068383722088951160191183607152344076896769571551057049254567835059375245743966157240217760152868446029911437957859646386129384483636509640661659451744895407121485309664302513141504038893010055631612645210585348607582004929638838536055847521252166443174386637630353418752020124233204138115339569119838476083260861889740712634461371911900740109991271680800562332457385656237845667855081440754052466366432530172506104065641978761752773755739133880335743942748408391180647472346608760319132315120054641381398330263667536903914494623747012119728332703232091353101196773090606491678294044644286745144981948026552984666141718334311087718932605019928033090205959517029166392112123151180448030397168818068331028038270246388254635171308149935137526124134601626248246126125325791071562514997455434150209299375337004837114891259690550497869147224001638454436232957016852586054325883903963709077446123923765045895764675769047784508499756156519444097431764664414453844953256936671878969723316497320423349489329964488925077551829317878510917126776292477568336974605100849733514341788500902777953993852816908940139128715209488939058853796148945573040046947073131407020349614983222751183129343893896241834631957215668285076257530369179881264757512827767606328899888341083950212179947998895106782762248074183882025730937807291170469530670584911642077515260344415781054028895473451636752529864225969965069661991844884305238975471626482485776604635264037003247541056894431034418039681128886242872404249648343128777491663584875387098211963545042294708935358716159651168717679699268599725682370623228870991250737911223403946468700863473535792015866634215123008135746430312825684611544877464112358443985221783406904482006850590898382074550876803902659168718755971081668550267115511649603677124661458843608075742432187487320911797541770638129469690404718140896592505989645485374771718768246292923142104777774572721621661403941643766167717490737344758552424992081965774326848930476202763260511671638310450415234412040434837080966275052269237431727459275724408503681877616812254474439416382386069352935457169779129462497660276197846268064555474039432136479433290016378944976877927766931111556587667572422470241211641659213358192471795301128722091970785279921898784886039688859858303678176968456984644658465941146558353816307359775500206515460214786154204970005146900691610044649017388521510395295291321478912976553707262763344641058961442507069569344414332436623894492071499762932199486759730912709668657271112861151042247982280432454937426926388450526854815425889228755198719123718424803702399537485174326762273509314367935742474262629091887313132413082944173977788074967638388688649208022862733342378712820464423351145179711172883095652287325139907810943407830210748027327591471023620327927875067210317209342949588040951618328788034926738914695309980341937416135448227979316598919500045820603271139765950564337553249514048406455504081415791359605729092392192884592464373229867519206424450862264810050202297320216447353884221378058132322287801622327198998759818181804255491333677079840527715249715953805236946130963934048825025215617917808635657003010796242987292835945608614059325386224934157486830113470358916052167206113677969963656474473945368966903640840526489058201163509496497293490778875817364460187316119567760730602319329412888323542762862095454527960748248911015945590232655621149220063430101781512994288732765549150705128315426211929917721874212742738437465688347334387703577856092605958542374086873727082261071463154744843074177777930542423220650761269565316464155538065588361685594624195596514907462650617781063939461748244081995248583464509496962496048552365542542285571164217314256112552679442306981674880356483446687564446311466533406901834679071450033605778553483928890724946823475233667178200588382353260248204078534220082281155833732246623899000418223857425072138724133438654884854481734501132391327340316187824787077909819831138957284764865886301372145135360708656173837533555733384083798358336176785608242988308941554400807434013736652767465289121810898875643693707454185993202076471110772525195453884800386282609359591730773330392761166617687103365980821498170155397455143624016172460385992038096735676588083950029196855308329010643885906984437110705556650292031829528281780044068416227234104970222779626683621868652078244989454418917178294773414560322584333045900158143324660200299916764108272031012242737575416139628538107578576335581575386545889805267704942117985319502201833574088570701906821486108068635690679406529647607451801024470104055747853713658679681649866300760039028992334169089115860134380343277672041906686051651995368379104002505547982724134836424945411883334366789584147500565779458122683786971480587032368766916452459281233221272339087540780561405938716239540874393105624031973357795501679883806733733983825999045859820295603978491854189943936430931682751865236497131789560745959686735778142948060561744096327527524270669747290129403043808979874510486920696670561876647076279087796433228713665573132706872870143548933407568560508500310209834301046619074239671715251730386996243096320384319567426545256899108659203196765706844922348726309391350430684132242131171595238215143754347885993707245769825933237970797605685586396288184346469213779244241564827900614032665106983513708969038608893093763522508175909515311389247225901477376764090092583859698982915168576370455185323130291610400604979429189394994120656253982334222828470466993560344610396383621871601608218947365230993080618467274043404508878849860406385006958344435895230252238120936028874515566969753626638155437714745247094052462370732131187762990771711488742765463926660676122717920316140435034632479030640792133577929796157920975788951176204772904715296539487829222868660151443803320003135899596611937250221895774871812471549434351486774150257494965338199775548396638066968608766941918270911899027048465252659622443053656238098157068750334208769860000887592601115937634214032445299671030893290849240539912298092167775923095393374679348224625776570106645920185776536830945040127663124985634958531036892180641302012050150358207456443343733241703029240721074410411751199193386924504903653080641505660257476603752713402787661896359659640994025109390942671144253231803356986875639602079042326213372490060851187875856991433776135183524525836595562179037835289766709412354814095720607504295153268855077414179272765226090503409253689961808191191432977369083945290214700189978098257137047600597895461858178301656196447951204120050670729342035021956926614183712496478857535629420979900628154175146427803580602475430925471163849452680349196567769565676400904116950352654700811182238151310301670637125998522002173195144077829074487427004687980176461815418333663467329266097970001813660927789349557645812307930841003303378870793500785748113965004944894546413178084195761473830940429443103008596544261837849271201277447689169363948072597997922240758576963484918974873910677165514314491799365464227045508402278384002245712775147757866467043295056565554352839021162530341528941021539423745137257442518914362631572178136381297397011634694171160715585098552860483095652443571241114049819336632933327911342398433022370577455076847255928485353428271051500024202369458386925277689847517674417178581257433786229214586770385697684231607144448620571818596574364724442122630505657576092667942884051320365625275332428743153046126490427590454360654982175044376124504747291892768415584557578959772475123041797270123427443063652170940834676556685543968273245358159343820088659493088514247582373267340730953129283938562645336387241472658924906851014955457108086204004671803531661460806456622799238470390377058255613874872228871268280012744987704210395928187733856251060687600430176988018965700281472672002054326883939580846461200802113588124146710778335061727289659148891305196933706154301959446532009910345283672774284462493578822230284354242183343858108195954123267365950084639486932772495357860578676937174634559620589578766467094808432994728430716289663289304222683956424325501872595615304752295251697747283737887373942603807189790649555555434193138663187487894198270815958776708617641571665337782224940213224792202575146703122283982241116649192085471551016912192354125893950513413577197199060865634890419774239578684569149396383577824260470602399375211334641892628231126428875519573875417718692482721089242136409042019579218593068742669425267750096446947398410461764077252909291950116887079033154448966871177867721283819088824320166776985636654193882061469129623603257750538583616097317503747518963456922028294229361108521285397547199612289163687986295567070872165080626529304278473423284353929773893983784117533655348154719900409688146989170614296766581439927899414578507700427575698385021637907621728593031889732425759351877071683034946923918344641410580528076754306527902219664906792485407747284846987615156728367813405862726640159729304180176269977976029466833230086152416433830803965271498401111366591408710122766040566182339311548593127558882947370107673760611499695681161989573655338504014924941537953224810917318705977287800419007393592078715460677201611973008396887481496391958574614396630385474007292441065714400324195934763665937779323908088202032175530628342040702895667088742650696812160448016405525592845130885609716471596754275098344461049673451063764629844317425747738037476770751831106905814026320826676482002392327968889240462330566159466290185245661423371664710641715876779892351253350560461598399137130427624487648841295657225884461959029632727889865354952917156659021327577596927416512063560028831065997716147220806468628530973256951363028429960124210177097087106089813566846981368266427166459482591740567996243494531514192461297334978666160782418537455479743023521148894721640338664867873207640785953503541874274332517923136827326160313868889079217367547857280130841862572681994398104971997697765342061393501075030511189688831599257935665307145194695202054118078709902744006756443290294498018221497445767645671366932304121592567316577821977798232665792468573594964757096754305627129152910021112715250849828541706393633185000050246090728079887114794367244058872695054029814081921713631820370789390763721351962137194510814080630806411412653038934907671474583781195422667630749184794948689974738642629731052317596072926011774162192075214937231149541802163212958215160163209067283996583529271222244501856889661813598647606219418450464964931150040811280409113510648075985154067465737804011245117940382666504184228476617507206767729813806505014512962354210231936031323712683636023216260846698198874297938923468512789058866797936796027185731400300102570188798460766290769714623935068278746295114827174177935015417906400691799680881408699276498128890016802599100649539977823803969611015525747462028162934090800686357080432684521712612065789505153299096297411571867349184500253392904841708328409126392805674620933736653667335951967090199214916572597156248768973490970902308975915268459584655759373198859679049061749552722656919816918553758693252113222101862044168595275452031059364046446732115952229841635851237208461943515847864637057480341909798158605343074654922024411262404599850553774205728594484030234990534251897481970132112630102262889796283762261910910603094871695060839563829181508348647694748906395722402104434809091976271701967209412222592027223050189689174264498865612605413433641963787139899508507437219307142345274916502945615686856716611453838613291464483700786060204428540130398703572550314715740458282396506536528319395669418848196632955062229367310712553012436238688197869888833154388531661762041101269487366260901011001130247663852905188402815212993432208678539912869993945298672459517120919343486984682836135262069568442580885704805124089052135484652277385655646570556892452738719712126034892033320326471351825008216141256154431206715122859045789022867739389320855398703757768359434411240812341387314145478352294763444751215891684960701571558023866269701874234797095634538561110777425323961870130180923979603682827427872098463984708792889500553597576031484575613023440982561156343951650701152664156313803920904665654881813887625930812943935560055942117309292983014355081796718802807800499411720452813218899889638518308452398270851671964023376982819162471960084635629928497202514783194509974008213079107057743625187086574108585005087754798551335164360865655617084241342040644116652051168999292570615267338300480939243948653838448680392617057624277507424179330286214627214427308759364355019918232227624019044843704591647269429090998880397422803627092675999944206923154121735388753517106520793927782481169138804484605241495427095220551974359240583262418184454802963829338314502963900889849354147551010645491683864322545630467426957474794052109682919466637873222871336866848908313473999580113326045590877044279005250544924449758339735965818424626468024799183463658161865332738549914960243004901230418920828410260384872676431943378881073763738303205866072124008372762339063394659331601290888963540256720677970072871667157177065374880276311141781204063939317978264985433448113227857016735042923710643885523627789126104185197789049346285979280231238664138640066410743418264443197903383927855798474037959427250137212134315864331807431783144605371159776524796891505328130208475583217057521182076557184775903947670169574857486748304508519963337378827726940489958798633420895318788580823035098012357327428718330460603720199048870813716766678780385224889886171438177534832566660255190400999932098265108965766154175484201671909753192229656916167441088399890394246200169736843811673250566782896703693528216680922741561835547841978380868594057934224062051976297179057662028539428969811180820301704955154874602563652537159161063261278101269423718151954114541178636390281616035218566122332000325655552481719086918093103383339271618053004059175796347003877079892468180287434395391250984116558967112306807550456499811742453126346563734904390770676715220776970148760787682799055974523655697473252842286995053825195207579319441807460514047040689900400769036814988780786513182712595572784896285249152339645225376517949422063465947147978336220612113618417361332619803659176621000057512424302250739930847999271170013431996266703334067860982568883519312325849256081331610072260655537910060469653102533583924486508714140909773569964396562495150420173948495394264306005630123123500766421595937208373939430580395135166504315515417584797989656094666652098309282596739359283251507563612324493313709001506348907658980030084112933734906238042547310606084292333863835709606483349085804666536170112578720873377041405292416492497393889081306175703776823710895922509140458587181716561451460243248268210000351125671258049093640070412415504429626599440298234136633116992119442281948782115352920412036963259377092879201746779664651973049511399496593796510938877970897066303372380427365080708339203236766314810732285019775763660614466475806987563123641725968816023397603065386871534920178979324111947382008734638196361904777579888030099104052526214610319310363847366423033339680529593393249915062535063973414993035149153840762891232470211853588619697305538291957660709045777997381416654523844870319651945927710283835421816374432646286764704543579384577386324921005730607428351128780846601454995222379278004233425133335451814948581986861908615798925516263333687907383851552442488785905130217449758789774659267189545049183788742918468881601607331359405600911845438197049868155214021260335190074894254368442010004189796153129311378862231130825180104027307969672978582800769228952019863450756090165485890736892688734419336829599776090342085891638735880243851063478511133804007491492090604902032902846076387620167488152200059818368651970290783135511179109847136636870363225304627000522086298991044034583903549332208444513309488798630206925657293942339970244350388567204711954194907560151165585743916753316014424673165385515590271554715846092403971224806011257279691306191701483488393690811322121070133586141267508345892841891872784466132208162004528577195283662158431147111130810391493551707182224949094425804856113121319082444889489877446367016709217641904468072754850518896115894553777170057965670512191709930875885085235111033914777734552469836479082397839679828488483400876464048761224291819204722478564394158270874445904083221562806537500082456572227031715076350625585594012462200155449445459010351102213155054460471542946915577287013488138641153311789506513018649841316522118307871638074672355485323854930337732705020752779794565607648529773572753629831853179774445370638817777843839739451837265904967562413345292269130708956710653453003283151986441717187807258910463882339008058552584638023703848149843908397932346672074586618855200473073217443740716566167196354223055221468159918841329745412326252285006541834119525854282598645288552980196735280727644612047598362422941846289807156089974207551576633768838457155048603573009849316128865498267645514492727823227365881759657104495490480015246067313494038231889826377761641535853671502647121010161998433513850092914556021575079759716143514768065871919856629069754311295562728471048464921462287666129520046494640447102814243796565070402869928153742487848735010217698833897392951345283382901507636300799440703404674608012375035066925857563509408537360596714477136303556422327040684643401585872393007552664939397370847107191994876447447077693654249574069083754771236108496706961556464623154426650401123064801813325340576048167104211323252760565420852622294264459989636238582367442271754270394010865377976232825232888575694510873991173736669328722008653577300600764313480204815806881264704085608392660315500302236335873000861057323443545297989298863856068480572477498705778546789988369424160125610101961768990119121466515826799500550188920602321986770130700937676318179737903508140615621141976438691867754786799249570380559838263740862750791319164553533456536479310094614516539507984065777191475027289291628262331096763675137497458579129737582877320379545535118201263485471530657092631272576995493230766825486426266178456188856553563993805539532054137166319453733036579663974727029777974513783593001211712850143464875302407735642358929818155228408299997185262440656989538233105009645871399134437437764590516937908100637414364123976854172249725901780732873942718097979485441221327365724306200099196852085245706019111398267940358775487812453796024513466677699252351118245250443221490236263979514371199749774807007246140672820650729905970562436964272217752614489448558622240096744239843579609828584369974240346672583943293923861572126677154932031527154111877548698118184435770063227446417340233514005025464419891760046041082938466427170663758850230476798028727840220713651856039054127250313489530975818611373285486643238606177203834804299594466287333146422660921925429900453263464710574552756581766737945331480956664477697189802732492189049177937616191813656612971882858443079178263042707505967541953927251618873125340246079775937787218933742316515818873973442965461881151640612645267025166744985975628865020839915208271484712577198669964268780299393548659298370295364331777611696119334317860772990892780483694913713086540132959982250307269327843351606213026508521513653586967084091695227628219929695853982915427149987491197932124654049723145141237117928515522710119701955547368678572849973216677644801903084962718445302649252100095404470941999625177707674364657412476631759127716436326899625273206288396635874561265739748529896178148279208162731181081461686483220564699374006449416078834677573845386059089518500473336427946514249796260921901366730500422830837645803651363438620805694219912194041809200954750328616516561029436523044827774517992768602581368345233133258154434129392065650193884002925874809545206248393037087254632532210010922936105077911762987041265979185262183370537473393575580432277250894754212283247226856251281132990271539024106363044215079809462917235615954186278649904344687247447719093264266507592841661456719494403007341939325113818128415751561972339024577416448535745457859934956389499385821800136462223377543949046557407821351453248662625859359801541995817890695744242072332129165919886665970728364071519511715718270528956562452031336862335384288316004131423193741289753935849704670970259464321282332433678214144808669328488524100801266526127436048736208960247004821025161330984830966167058216030776173271167243873235605053903457474545622836116463557517033606923876602046935232933530371480162472532860955898807070852795178274873887797777955910959785907235075296150162571844152460600335569026453204133590465380940933242486177571544649189006708136784344141017180095187240484210048232131261904088538154845695791402859467122839445482324398746728214423085442608625641512407370615633017776219980641630716321540063370100703293251978269691141353998662467053867829494790568623190426173344787833303544955164280189304720577043350300554581751245995069458925163103069326157203267625639048810647951707169906106471010794196765149952257445946644830499119293370257988616863233325502998585179733474039932165285619615990908564024346178791411731617138737189348284956455239659769502569026531746403464711645449919469015089675982677520000976542680210894006232671622563492699418560905754590952258286649564871132127468231396021293043897132153706300084591074725687980933991742974263462847815626186667627203798754934009340159179203461408500134775721397929804631786490653709066004227988267251251054047989089110472264594267753825815037030953734719691130453479933983929485013017122578615304302876969526523286562580950061716043203313660428077023312563772691584535576668043519427442278505279830063266018724524771285258026077009684554336506776083396843282365393813054047624232799457396939459524944950237553727135546285064135510453322875300811145736909896482039623713564930906117163194564459873363669504064472551012390580850129053491274246637019432408638146573173927124021022199446551291603208860615359508793242731719801053060335212795939031736017069634169130600302428900163966826704453613772378786045707330285130062082610069003050900075877525966165873406547463692940456292453402302986481361823965490142481518819247649133316096551277696082950134890929691764943979175649032680017672163683733050271665147846350932207397966088745867842808446852103389431960543246512623550674970684356457172980736868270935519443082536726913899234233862714842135367163572171968949675007052753438141469458467183334799043902323806950783707095289556531650501150284460724055791386222681121469896881343384087670342137487505732088885491359366751071890942163788486010272942083821555862976059426731756117612759596080005099457177252791233076805787877837642872443363688472244305474266785367869072578352745053360687494216538120024030186102117707493159447772745073019120420117723458765140751556523588444782670428570323248745472972082504619884633021961303171334102979149519476492040654576064515510172166082844352300315016283489438376235812017522644617526601502074450006563069845607062659378208122899085606207113818727128709960965987063060724908203565776940511743713396559801736226269536596620073082457032077261086984096539134659899916618550780396792002270277284023020688213176253229368416114158311263551585887117880976383167760738628315742624104556235191400399235565382144651922946601789586303931599440526249314906840144595573622929518754098009220341170682263392111901958729491197781713380218642896425215319534278556579251771496957696127568379010869967423177419106626500609605889568316924327885232688296961137767883917560839627890207798699166698178553731713575757182288765251881766378997203550523543698006600421948486970189983760413890128758699859469091980534180620479778063839527787589621389310488631292466093451035948324927672869498330157168687636875282349595077354831642256397564484440949280945554334239706002859823511541690740787127118029627978120385987937568795008101193556542340414053944466256647175567631116186831412315739451583098541970721191693538983205780987645511666202723304320694576898797471192863006880766304066309451571270842779436409741532886574968638530468865909359025848825854189168481559193019558150833930091434204506611292982407131272152451503594593449219288555376575118109975386265979434326592953429498959153459333622636068833242597234119368894941629185016917797165899051941621465777127438330376894255950195034037078311214441419895855043667505904567014672559156364982667601636919862922155932414509201620720049590351391128042844883477399708924903595132344147777156166798996511256622007565858223796511863805118453260317841075798325289592417269251627022689211340343132572779089671746116131217705249270155503443921179765647601832068032807803023895851190137912368970803563048075886249135569982901082998957925374561581941998665665179603570362871455861302519276523010153365727254034536147522211046927025258107078790122142170991740002000396700635930202055758201293741695023862613254454840036955276131011094859185923127325586393672340286004202320261446585976447036477789110274981294421677798543813775328273274318857142028727470191769865688503308405164233112399527780569136169269790759351871161520533894349686475226790999497702362143266750181764806488593243702526651443465703835725213077752335297331695526123227726537731764583444125985031795850448688827492014435854475324859738561048079797159591743994996332244558919891089232551151956204250169587986665787789392926792115020645821580808791288050837176466823436778071246241995845150468779705390642627259689296831305987526364870814736130939366063647119025007558934181146088902812419924329967087196398922959637107477764891276844137622711353600816893561972864708125786358654949301825649545175679984413264078598465848456708519484979355451958286928740369652474431718349403846671441480398396327148079046950260717524127296136370263781625843834436409661817267904150030248953253046791915096404103943428825171430180493985557466126097663544571226004572429680340214343950787993749192637619455108422336585374678503622614099878179834757545355740814826100402584200269649272973124556867591927679368436930092450116378017032779587137848338921131614132295339230807582968307564664416065163674345744841471219625069866609388313186266100178345614237919994477769372801342068956154920258337003741940251680368949178489601619886216825328809017732892495453995376930239077789979202581962196440001422016533365098386922420284444389311069348316430027469892324704426708432987952279013883863925916610812833663534408478423564892661061646536085136256142177846544873692992293164219459696948818178584957943205226985438510420255159144679116043455804010168208379299107453764677278467245909338467771772225121278143281501160249560237620253856551117288115591748452300630752321932738081928810160264903667738600836712377695969218206703962710946661255918925606189847610356766011431315513214322622773915946624090289392407405568785417096320931071328827557996467731597284105386147341995380881101028749751246653355680715696751219284326953289570936255373921718266822759250677106043078401837811503270798308472971764756407012135672732701347406295481309033511102345696435847480341975735112362483580233212833179349781151901989614780965826152543844184646672717311088029123524451540334793571280118745825155617778411317385630921098677343587903540131067332587790176381467250809264108805163078763306286665570108984884879164150535005822486428336424926073005642720531266989160001572528123547869136306742574553323409989919793256646775597721626864211216927709250153228167445477890465049154165663694158147381444939944921321164898339176269170702007418484965103000016977916115244491226286826383260791871045164185719549973677184466095209292775187740361693139199530258566791654326771437271988937106860848717067951762462283456242788868328370780590545166708401413594671761164393228828243960219738707288024298364960710122403885497537571154310567560883048035683208356664978899329138773717120379816751291339314858589413074636861471585840254154362483341166977209380019610387637813965341431387904251247960773781341604688738764984971884488424693264975276369039232929812999383881213076072377437278089158504511242311627130809871132900703175052109157385629782302514690580387814799491369111699231475368553719706381968422275457050769502574209719782728909183316943128423180972306521169481842112333124117623942706133658400151577776294370932721309268171758219308213059213963031034476371471651244637820319429346810107803505847566832173890254541374833054645541923599020969987207424997343900408332659784921521372168872092994825767530407712572478642513387001326240224524856707566619796170378690579758270971910373594891921509183573706088927882045189495746775481388605573649095921053696611436115240942129298585931792533843715688339421076293434440103770028402253213695046924175189385055054450517654334219345227746734010161305615344051785247123336640808277263120235210656977684919582088918746966510444292197164989830580695928887379833028322137843241547658291996812546749063048617637777001181169016515288052299261320030866715109798687580207251242323768786483231038325486661845747616332856844440083320385562686778238762440741105883154005491397663969520089513891371141032580463056118127095987635715284799824811767751482215330449619718196817721640015985424476613345578078016403337069902648196970874397264299129939663820088834167173547701364728998714728311799413518054346129024818806040351554661864834599346821480420814132096584197064857600232238858569863825070596273010685902863455444206607004777763317835093557324737347134073715543404147410564903972669894149811851181659848982205126296316758756827509754357526919845387646547146802940230318198213566821736718581835526963047189123045751024996847204623121087529501535097519925294508095676608871857887287705063619887812158306640293999460888633383221204128940722398334935894340186638084298311171494492676964830421091262712474155259806666292545350269717726611129649619991076764215629441746730274899250856146334673104891854661835907026778229412567704553331540684957356816740335486809501917228219013962838413748040114053239793061329158377347468084956063112040655408725976900264967626392575009859360340922156328283638685785094312388368058887438476655237281369959467935514957009346229312235320712800931071073883191517453136596749605927031666828056416187592975612499090170477364429687671508226038123834212632473112828064020837919032565357146970013015659386126240191589329860599241683768235719856153502009054249136957663561271044792088120130035833551104716928691252515082241559279625411147226335548748902277726141315131318111315741361095476359620100681660046500277044813664336207778842275050559291853828441029041226548558697058755757555582344695959888297140471249702198242870491711607980958832471473172795814946805044669985602088627875589624003324359793959654518375134057536375860535184963762934208798391421226791059801730963156623483881033662629880973709098765123362221620218496685631646424578012052093436964347301296157789890874088221304828954334482486056956331923953257418177635851619076063056081157846200915252577135418110108253715069895237274281890219799745463275459072611957799026467905374340069525596626511882571142310653914717592629985430649214030740750839388841520400185980104247480325775804238660812372523036019553277227435262558919991716919852279916429877945162100085566073615990154998146391051308865073476248039397658713359988475624163064566173434956523467211273408979577401685477082417934364530797632269800763919685240035099745296388019345924439721409425230212609861233209989309922874799301224099807832175487085761789167283803621439060672159637329569497048506120904011391547586580936013275501159398461484940878761618537419874977110243089688796517289576498565974676579875579245427499905149344670586760042484956426434201047479771731511841028177668857932884650691448711475212230447861825162987142451840876537962236609556387337399742147759485674339799891756824357059265864413348727407460553151594001154222057086551420550297889336231415514444006145908652721702435198989304289826995377800050407696327415583132074458980297864273032016124660077637801185842628623622527404832688849149658088048453680765052807397016541879708767772529606824971674701352749570781977623749569131038034721467540703466740545054212348671362454747826749941725999556211019628277284422528858120983457809986711418686166990289077906971667629148632368149207732180420940340489036467409434633867324356173321238554812205510081130064170570513623148049668196904267698083466370418160012105257066196104355379900090636030292814157204589114863064249939023014679796166140431637014680201742939270602940652564661405040974172919280632384907010806649306323738917510872267236210457848014607963436870288474514374655228514666683328557613754165361455406989434704526891948340705707819826676311888208894901053498278083767750810304386989759471889152864930856949788525916905345225865065813152133280908901633052791232888044142815007318154093479534362056670289740110161949234285611108340554924163592409376420401888483377150894083014158651485140555391533618591630866248003694901640889834019736721478156490601069278867737096808241718370759301296411743873396231559315315558874581153934706026553767417895418090724123288829720877869635328840065759794956682645792681506564599628759507563743511192201850981509527083076367646714986019386852587738150386538955410331205077002881534492369152628519764678953935261236064894648305414983001471361156557088330430884024838894005531311509959696644441460252749963597537809478213121211377837477328751005797678523157539070627000941338220800966659859911285909008840170087140403080238280054829398705098516781638499911274068723904074814442776459274404367049422301375629473934258392090951141523299254475231218639169654474961611387964418910856822488916599119177552298831039296492699247115874362120286968105847925991816663769365964008896219342055854732739750481692369635516157356686285737798524110444573064519016058949112374118411718081400856326325260418374683401023898087909855465840990202161701038865129115516848739116704179674804968587902114144598782053533765048661124100177884610056834726508469192080930409756772431581432377160225325877482302393689941726236613981811094834236768312099725703179596517233290209722956584183495146987282542449561120554869563182715420999872180943374628328315282204600781519610049771715217404308869092094317739912956161907142599007753226576044718411455548289603933105831801735148230523629183901730766875152450238057027470251748939926878612648061926045675071216806460259707421583395820723542964584774829079918466105638419211191372621588962444231890721937879291834764072350699634126878817091482532884958743068386843825868304485085947464063916564680849010846393554714116951402010253692923394674194533183041248503275480646614115383971668443057938835831394532479805982511953921813056844195705094362418565436031565635627554739907840701506895082835369832408484844471071616352930388777714587541384775722626190114999040039554513437445401436906408167444126800623186792312666097039417362260997694055651562590781449428871239955186379309775020485112074245875484756852976485939462404333929116897487007829203867363157254627040546524330487946056025380131960903232901316642050055218724532145499801337512914555456913905921705686613594075714329861920802088383734765243073892389767016570182716297202547397295326424100059281864517456130778028419884712867811500418534683465842442924065634017517597157488190907419485678202136795663379692009769961899756283481371265803415643624950975596298943929598886317037622652507463340496285491648856624461784914461827994169939622690608769273175031158508993325221761873637057697458360630019083196080807170709231066579244760414956495436380792978309886853801433088337482864575269342617388900162582806930854894280509647535605263893995149142013111180427960033190056405452607129360110696965299920350554143598184128170943471318961764368314040227632758190765421298886442540495851178844334317623558520699744750244921985439984387800694810153297393622733648235331415422737724360814547887223925251105642130109187473368642414176829889513285344390970161896512275676047209036497447318110757416365679269241158401904581695775831727833721298534638414631517090203581765251972801490546421350276064836202774430495140405205039131745993588964812821671845982862608920214598254015856878419186781361838044564632116270399513140885595349071333871177443941326244945021031872182752144792441927171952624149500525396991133155357403179010516824355289315200731447019351029140888082736465619020595287621242261629040835678909299890150543199187200049656493341575862896431020301155456039736576258813385655150814566206552405667698723221329454910948735987845682879158934958021588007050074111134331599556861121862572003881846648805335408509381681493900825467876545657814168710533019283311167298796768444106203818431222172470899204728962314803678026479917302556373305027119258932857763859396121393054235426278602226140891784057163530753535358638058813743144168505341541696885596684634972813371589242711590416804319662709229423657440441616071502771399921024627370321257691788089172859737289095883477351434885107376454079829186603579793574058127964983158115989446892718975951795564487704743947597115612978261774277593775938089818226604418140206247474249329726729011500320378537430282901709217339710360983281360967246968258130148197504182783872821542881057056709580436688413248430155479579631013011969015677482248399732977457725126393416009099301523342765180540732132626891182044367418652986424050928935978319520457708608592932359435956176878642481747354953353691237503581290735221277964984182889864323130983537628099317392632688903912060470572279900303723840165975042920861075504159184383416455602157258278650478803764913296616132067741000253705796626706231958728636675338189959511755850917117363635749018161011084546101394497846150574105358156269702664634183677542764707014524339659870610789533341193582666559443145732766337626233158411776846395513998939699742049785425886922910166974286659103634020326129424598481435786866675055215998102385956857646682775884342429759059693831843111214629933856075285183854236287769343539697330311196912546545813347571088206014987129141985982631208335920503567790653072877147343222434255814917095526912608463534235589560646119416200750873854242212827167145304591703794734185687053131344664926598676828207957043710986993721239439625310268808342537562468183333659403897192205234835357242002243938811225472591974864843498881986120130015898638456796539912609477505081607099363394542355815910591030079616011775299596089014427874546906190956436825371789012462114207828538928393141158887225567461424620451850407350353041887039740347663003709258358614669494368870086185018320028407589982269445492644701560829577709627077471789979260099076934270202530603882603647053976920257382943338786773109126485145230391541391927417759949639393838213379883699078068504985568149108925714051853993932214067487181373671355868739718265890135378870987563984278863211282962863959708953215127079243368498215206133417709314337651079562027032205156067162550197239885912495074430795746545082954101135815355370108149513114302565323053437717737129548815951443108963670164506593177599152440079039546813124480779319483386514011497874229354446803666212357817825345162280103080932174488612962005859796188269646049576513078745853893076858920101953535937004880741474605926064396533664789240309522218071915183776089831692500258598251013155744277648292793569442862841375650097662190007723854055294757828446574366769901946059434243554414919655361713269613063163747594995941713777341691855537132965719693687346191975929636781995877095983422546022458077386178897512759925513388168068442876369396202792061849032463902785517841950821952526732678113418142626339239437854873317344135138307629019081114125001991993220716126336860847527987233411524392326571774134679794762048877079630369317002956282344146957084032213056961101032130445628850129231226504043212528369089969469655348299937497468107269518652664833274906667132204955217376120111810325379326223857966374773766468376627430431914731834497078526225144365011598807335135193920877125660494663331153290736862201428420849947560923430384498615686298742546805814326378423435100029596333615252240575686649203737266225969974883678649620448085266239370938286055935229718243094132807226297692547077101151407839091792560599027075910335878474173812289415900495559369544182109173545858649758530789741908806172965586833244278989035810059194703538401159932346344444817084452799666949033193250580744954208162445187156310064839446887805499517884047463841740775260633037477029405319819142964748035549441315342767740674122022921630531146292252228494751331747223353753086392649113583948648806428284621066632992224993126392626610449509016007657137589221518085113040230528856739111740478443743571467525922437563083059926632046258362426998081113944768101424433389852410861749244109616446328187319591202360794885610220588731314749925794384846866318886968302653580068242187650970635672812971544011733163232166296386219887111144552910148374244078383134205062171914388533850364426600199974031982842302802893561362315371988018157658836106756860553630366834031443439371804507830796361243078548076773171965444700947919256579918349577253164550959081864514199908300726566846008462403790426335802215963486794780575218649249017746822673789053491514023809746742523244280201508201930230631743316017300589227219912429978181214378375772011516851980051528619802336161135387100727760236504910537060871583537905273824676704925853881143465801434040144327242017640102135579896335163051853329195120828245706323873280071456488055014371393417220836926977316741217907112486720477945836374213325129401811706969986105852481582263811240195820042984932079545921031002715194855095947441679775359757373318964478896454457950651475259256840988502126588816184834827703605051705032108248242009528754746217239260506019802077314995555509672937352444972381121622281894586438329439437985849483680350158763400995172370323864673570790647815247043199559349985927753124732145845409686429232998377318349943255926683614756774130563160510989414988449271474534076888772437041675840876718673029999365846621893274295433242969984371536324061867822258197441697383330620345003561084613834925302362344482768707414175705616071035206012106839114042924734176192457026024541262501843902951621081443263427913990615047968234571232517041842353103149638843155107541099011781228097230831446024562346518688387245721744609768262269095428982720925207401531999411282960979096718926108935729181197935443151207095567174562885941200909065823904399153507289570012277273141483682709996541223570359788892608066209710894119347534139021676769666534825252241978297685852319962551677623579299775151024094444764852234407997475068133562149344883951539202985988395839169406557410662438021603381794154303886494541411745258537662870016470611322892884256604078081758958338612964496673539227727568546625036717414532293237698907072019418631624270938617315381786403544325051618253672092370141606185010118725754288873450128412195828310444985931059331349154932200329114713130975253992555647947480268024537687751436968642221816609857883301404481336125563455376461541951353132319412370344199672261366556414428854671553163348144207900832770625738357581146043804095144339087904725676936107324809871901841136716925254276357984003048077397835751250294068929121515162103467066921135260553131671453592122399452290959235975093169466906772420952387965251360311974961063291987396566329160047955224690378561478091238215592064416500702731726326427183843532831829054682888765801779219137056294502838208782622612324322259422206275647623789115963395302384514176517496016638741863781916156486120566610236360681442034337982586433858112097756575325218708744058370361269346375407312428304425212490949430058175321859159821900568884223271637476036737608998483842910200289299406181109443063577117902168154526672340210288709711595220342177020352922165778774513477776647528790156766963365435098135657548286264540725031826923581169867746764321866799374188323508661550833401562293648271190896325731068371841633617640251413293056596394165704992035270049039300848586599955050986712605906133389689026044188707593764681369228026459082439089935042778739587781062896644505226444131605654928502732861277209669462029439021431527559704516896512856870490102409119972362836143278976124784448099154479387889873285353269864888183525167235659311803500245908008752194304083072935316352215183228251369360469421457663745207954289846345843604679330793225016264783251290675352105247195775951481012014077805017968363973764749802962758317151690430988062972821801557393484204257602568577767841990011911081430749584272970496812818101137985855501517657522803469124896382149254413624016265778962231055382532076246254603891067419974669616896499126829942858870943796372624232638081978069782553905941640188928908551681925394127883536893218263530529787080624305413444501333900006327629218387731478895783048975589474407202758423962280185751046158927318984899226950287870147386542216357471577961898917355476051940119667027277150091086604254176646931730664189128282138839739372788816350405695923977076184242440327367808529046426912151172110658489069335309061503186616535363049654001770949959242846680684233799308762806990921227506608311820066676679592202043497793155912789794078615086586530999470511188688434719791284977901931984772213024733736455605829646445464688184426372835365540907313208815564456820269680822825479085467264907294832448926415771930509044272984378145452640268219782122916266029871447083918671744442274600384003828690358320576065908191051317647265756614293982848581036526886692145076928357769512387929181141131090648337458454137086232431554260329873634407662231711991068026677712771523083645440106903873215961467813383591727009981281027121247824259166666984689652129372883225069498485449356267657672692273957014906003903233265913756649897569870274064846294444623336895050307723284270711514999969529216253376817509826281589539617443650690473623665917959191180839367632323131393286365521483795519597097484141236858567404175712801463311956436920808956593083234201698388366089311704462127429813822938965971262562040694347231780994520230649358930862567955704065068244367096961714271811484618511521094071308564055919103212326618090961788217869071822305553616459697389960779532351872054939980638998165164595216712017477619797228088162168895605756503814853391647121938198284799324378249282207144908093383170081385287581742009484688711013381550829969484082302164786055852997779362721437385808234714852919093384859869447684698362022511752923997641025093279187071538998009329701626258366618994823903603709578101551254170068795987001113280760994404653600835892105824238623534580023507160118154127020173079854675719648479924963352045767136536605781462556465887169490151736845346726461713823907360052516286059659535872815113833931470795066652952723166698707300809502446004551971747860822208391264481122643084077416396053548916341580373634670126992964849678544000473185776332655290199299057860892861112282514006724868669722885934406635737376192330815824689001162399249992961950887903020637209844397136142950564354608188734559031233500540308317223029847449643153420472322236760996715282140129486587875726912505154933563611931601836508483709224345376219092354735744190915778438901414475877639304970767854755561744569913354826836690966989769537537280719355517231498233956567689868217821684178277931855749980052430159928575827852778793770035528785993333570882102954326049033921451588224225169523840173571817888819795767837113264151739239482644595810339900130357889368259080275419146084096917922187268626176014234370535019831530608098731853477986204871810029329514963576548334371090312689053734451179082972693034112927264562135496521688394052823826958668068762271644987957759126575690572020449681721608040075440205670914344627369395615784037521328816119209697055458471840786338931375209258762467533905897878958545153971902557217504849904825287611096223300286454139203351019056658858765268556065823712330304301699203846981846043687793638468013579290039456854301041940669076987267561375744968875813266321841487026173521742928065845887800137588624695867121699843012530164828825300312996774114525929020045181056759307046356002747162104189564910236549372110357220708747893131925936604365683868716076249976514917537712320635514759381252887760101041621854285339991612674731166284444399803608050777065201031726420236328266136484437209413256832845761049602208435608201112090692899012103184840936684569801110650248878556422992569647567655903676451430473688502938142101729445041231738297171589090898751658286562881011132166216251990667998540721486471295568356769454583414539495971810990086431319947929616445487220196419428413407533988548022429125647815170405236787466351368672183521841017748640362217519586165776730181380508638098375341477840987403612322155930715288341244870088688881485628258027535044540307596022151142805135740386848873734316826683645258368899000258981898405682780553993445964060942088032439507256087716726678848706061939650388224660486379788814347722567703533348021914172584885245813597998063935621478626216301647541765430669914755711242503374836756101775351626630964052159214914915016237313486779441333876570538158170266118326217335157172258844539978233451546526851407251001078722085176077967387526842707625813008281836071432575956211490879905999465537585075315169227200846323004569379123456292946475238677365028643400183582319840581542725473072302278819452671892914182788052939093564336219283673955056755355861481700063724996048028990228814005482648675786418421738362412745372451473817856827672804943233034361550215864991352458455785784714435249124470768520857670456739837573753447231955115093101010688091525739207684881948205109372828684071373696939789262522817105028468745990707372893441284646094972059953197860095434214420752360888625635080324590455096287815861887045551828996099609748910611739769409900059663719012294982093952863172976754875189364693126183654986724576908495823800056719230727987527809755464819945685087769333796380110346046111789155644699297545822888391058007298109127628777048644862942429838236858874663662311657246473743962062990228481572199562887933608065169063651238686778785594738274370512640592708199396780616367196975809816737863095970546285579501963727167922673554446874357940403098831776430435754621245413439754763681845589194201395013369834813249208299880422696802106749490195912226174114704500229689762705715729306257268310782092731740912519135086795500129863448764847430187570636985626192012657592061274653030529052030181161620291354986398252428699740340770252576546486490006574000827102856068688272891820091716641106287748540012869964190196191751177423831425501966880955952641138685135479038046216941679254257605166717784365641181830067620475023447032057558422482755289504763328953656909881787024568153407100169862516341208082310381758702361827230660686971509101176391054791304846691959755863575940275709452025672349752292579405661544945268733428673672337979102995710670698406261676785432024562972440707574242296110540482416597204176978025389891912897233573679301454061705696517439739217421002189312089466000397726825459906206165522508221662139169134772108628242854249848586145853616188417931676475134515387944982434309611197907820256206359673056585984512091037680127727660183790385683706795862465969476129606569078195152634316420986158606464698875586535930796088841882012786204942605137551462524232301529468627639241642798626730600912758629761104824999748842703234956879879454495428325367870641772629949572775668251502340782204179847382444221934504903593127577917731914784750720001819863548897420010122263883108777069906167433627932893709569860966638193013577356314530323675514883527392855874522059229632509696553428494849371149203226343575426197877245180702206711752167898605863133863836068752868916569174719619831813995204663624122707661796205528080509724242660880316542648375716097781655116684491588172505049031952045909858461557661964980410338292654967685530352960808639478703340740896143200396997612513233531035364934096206134585896551440756312868218154971254794624631711381894469251150894700602584305812581307506113121501921493286570235462716605075011070816684390818373227508747786246816273751161676530688619972270886262028467497877241043724147443884334578716194243730109121175322448129516740897737336869331724536265283655396069147883298751637287496799684337273004626475328569544000791376648417520411363220310008922420782350534668533248981692965262814157947370666359454367346033701441345161127647994686530801169978278814610397320542165391659493204749080783947356260549844561352664933692513264427069871505526568564460905060473645297971210754064375673809023152703393642785927331811277860298131049461688426516227216201898486738035501344407984894659411171401474280382017975403021485761125118772887261570826847661819909731097551552366181229937717771267521262726191877329596748765889056009980661618186123946286653009420806332041329238138234101253819959660485199487110283580303659958639028717772305933731856309658247472955686820155220575997558452162632254090903403493223663873537262233959498017166716108249453035825349625547923535507327694066549024937070047222553978501218730573243471121859940486842579222382953476342553412238332635104560103373489987245827524245066111558321181056352891047639823112236640094330670114037529361190358356729205883467998155945900803752862079480340137118050746391198133276986401872128944396900588733717095018768720177142367247319431734897514624558163200701606759928166882295628518401824368271837052368918876250340898812919032531423319572644231205228739213985334302674098323906627340195728321550430858373968108211578118623206449218756112025457632822912747651814378284222989655944554388668656658100887028928101071827011416282237256919309458646401692131253316376207465821815165011712442688829213517509118990788739857807242032458605182413100505690627324704694102897051773246307800912154628531011986151190989111812673992423360072271280769167519754558896217850736390757070218862014384737463966679980834070398892897825281829586001935559844461080124057423180539029445609071965434850473531837501767434972915839234743836929431292461431256121406778830242281287285326105229591668912544984002711119806095971388467086442784289339685353156375573521039703766528330049657111579609465238965175887644231625960406735494857981805117379060550849618658920471676238025458932623665012498434136995974944548085249334845086814175072192782095542692460401833511320083825988121505682777750835547662031613204919702186559247490226111051773492377711880908554389579188992689307882687751935413380007671481166553053261035587816140305826215267791711881011706447850281352755057774457317194503597724504037279360232414115377086996220671659365579003232463241860376376397793082361776472449924726129863555044737778111254849963487689206052478713953470143327384508921413056445968498497910717554335685210603731732931965768321936734632420581839385540128203940051668806653000014467605286858317638847958513733241506377046401769868269821353035954901207349822278066260593071508157424790427214434795482340929084815554717613945430468658829968314660705740923868023883903099865547663589857331859436709229340518281060986598473713962669135898503370088815329905370905014406275959494358752283892446558511460616245028303658868542496319313220482882874306905305627874261781817705053058122473242598226434125400740279876222755744788674094441608388643413255335246067932114672346377211239382878670978802324026293694347898754833357329591559305012928304754912353407928921214906959086769176096077669985861355320218032192361185308116535697549288223334120015894094249902906892015854910798121075864202937298971402331992409097817951573759162525632806019009249308477923261708225820333778451823966988189976316080086151709902375362978880987607298033978922181863384345272720355221726164615879481716916028416517143014529646148859119317653794330430893511467669333425799487894317586449766639485578700085237881819604297727848166326340266068391490524318358262847580052029072687625864099182199931821562733868243897342798979641503556934172791359218970072455618388264781357735182570100000721750272563430783537652395341538334858919285880313848738156065479418381795722806498321852430156226071378534867080392412841710458462019581661114136704351200453637909080842365215401505226849867799996504679204142721610543205442546137382736803154246304292820181401860260897041022792726691440431590782632029637536443478957136588974207427679008190968496888809400910675778084377784823849849736803687543062700404321996038272626470823420316971138565125765942300944446462177411172768972141931456642922717078456159637471754552889454999071318883047719402790590663000847427539037327569522364687593115025560353446164623231319463252847090192142750943009735981858029096176380808916250922100769535935095531581654393383206355137451347881068388507190806855777523864915920290161903016110192633454626834211619166135670646218206323135020611656311984816569917907758303938156494570081903830824128766755988841613742802068149658448173740993764277340808450403195428050454854669206020358886189496602015519787675044030798260098122419070204093062733330021952609828787077837618713838575737597680328968574711766548112348896275709849160518906393163396759033351662100731308264962817631923207531530417981979281452089079832141988746150872815130617365368490023183094516812301360309135102906855614167806939524958796801377602473140387920267521209774862353206519653791996230714918636678910872399083280599520817505986539707454548702191451587901923809217013242925505521074723165799793309832329699758284886600730158309537102200953836214388924663183961359085325433354120893941741069950734644567608109571031103383769223144805404572999578137489110784608980895560794789295992685935670375042796275767025371380364640798198148510102043117360680190891723280006750802901284169306697431348920054299842337128322477736380859398612027829699829625128263054488697610716868386292666718211995475547799939722062126259407309995877351935478868366141031999415086445916192732498018294129862713981003366546149370189940685726142257371016683915728274803679667407608119271173422179330351695744806147590786497068230021163168172429541005201103251066375053609890933309126854555721723071525864480524587453672815587649541593105310342842353089816589729669107068766914279207885637294023372292962105254005427675352025799592752524324563528446724920816762896890896469961496607083001369261177706664605113570110160397766345780997360634317533458115005532296094824108134607568545766678428728602202600507691756921832010501255223408532966354503010860548349171192539035419891428054977909869590535081206042039723794691389776807643624907031251591582909628370015024184174397349610637968088495063850256105748491881611301129519143899731101522661860803566208208326521274099097020389964389180565497276517746389808750925814236658989250572209347429763551642575321853999066198894376840037166598472689761867487278068538691175617583748535230438626902981967414570895169874956072839110141503047463219097031242003688591503221506563664545537153434934194121925696443634881326910555111299255497608738227950271926316230943966864276427485040672946199704106504802224569600994889906263375037994263250711295480531716672066086210643782420403771761818162473983074828011591880000958402709219947808185987067637990300485454860455740561803362190678136938478927426475366214309243994893946567798739251156845816951847946343879975315448950516106315340099230168664707571693000779143303296240963511245909419593551480547026794162837254646113827117453773365452405255399692067616610941939388949817451019021467426590757227077769723178312389946374994986682522531986040874347190755692162668965367681343892823378308511628133913095952131525987133092050151741143236977668955636049043496550421676968969209299750152125414131910122833584655193521810238047191790089402385859314470632127671005531274920802161507628299338117559033729989693944293683692836959913893631764435312948641698918489792163738902666164466196514916678992565501479048104143582661903825965290373562777426817144579698023669623007919919815862235660856470104375193477385722650364686110753338824831673709749605502933526606269823590983794612303896466138602190886351580136632667313522493618135242726256987696414224334455735816088359339023413368523475269327005248517438234956598434413700212281098850604708164780657955557753571266317330958472305965545979863730806551319027580423067023680103967914628967492480877884485052621262617978233058854089901270948533725239400725413208497755840182289007255567527997968717352627931531077933882941749987841423831122198767769888956296647205182770373450581252333092377825161674397722838903661500321260300411615282595946692514968254643124517709335219234014257277324544198182346300737389867502083724534915841779467885634833531930948282242846323213573403872513071450514409850496403590105935734274129279114706426069046219922422254286977803082572725399174817650387292771665099360532703538326674787459843246102528757321656171317695660081435256908693968174038900963744397370905290727485141837484448248895036859038494216750760783277575003134615297428475694024017367915645496575438765812242862722623864620947343048365086601700872416114766559237979883975738001259482555847415805834533281657730653008186305498813561138218792868400440615219141446435645090178580413559142907293210673838048236472136963462270456223091434031285955201616786996988837073496119545616628900757679257021047991685299767782372202144464015730162765668024947570840372851728171552285268570702228288696323105000418531798052209348515426611488514891074833101296267585554973187742942832728534671911905973513399846420584241311181342383466186646217935529359901376784567908299622797966022427399345694795784394700565546401852580470762603830121822977744020258871405074820091240376877103239047420051539981680484683384937313731702950442159595977051945126599950230424618910867402792289160604889303483547830563186372988122962956642998660627265342658234203637079825164840806694069170144176838639422693594312671591778759456444245165041452647921314879714782296346566565625626269971376739978856398763170315449663573133347385554471119491054574239327645282580743616913861581416938879307339364686205906369000770294090928114357341978963910653053641585264053959815967614379127519532187128972921167770492611065361298425166609067308637008494061606671263941506939572237584374496326785889814361175626784753168077091652404356520998908982223454527306903049472008765823942306056666274877987022673709274597418548330915811569002434970093750392617416376042387944091173293420176432728800491783484996555430841252375335802985839482358253326674326851692989213406030831405848502012792227787250108756874915381564895515096072052427446364461665344718253379749830769949440506981775448896087544597643179763278618744958594641025614017589634500240092035615849225950524176943897176318467026570423597816180896648782394455173481487781537294663228792669502164765670425294382411534337199795616935731721990154536387691623257550671260238192154203411398554024677490000571652127018116214677317359924896720081311987541585231585088809738710097185770409934585816634193965614532220500826594979142260524510388364240428855153525141233239076290131376222740194364643039077305040886363776430424760177596370258106192678757745378761093792517324039909917363647189862699462150166604928933688977350403431143475429967580821363496012601174753688768137744519290250964015827887320697242554455292351364390946585734421119826922424056457476621785539045803406030146142139531642164563080613807465046408120686663635761129781765867595084172274279955391310434073086664731360484446219969114627406230671634811727523992550497510562474338953376836358103426439050146284076817047786960791372173693605959906056613561721923354778725322607672455873692310902021812692486728276926249269989166963445848822363543216843480351003010743209439410227193380759483951963923964967821204970000190799050897308128129085600825529163812527718557294008335156921600144782988224197206416460147006411758917416433594001363546956812779228971516512717608936188400963213764046304342261965649476367892785422624370163752215665562473857386110103267672916188734034935225281363297314052998922148679218558781403077288675524704647009426531924857715897975461421494276869198927567147395556365188170113684098293197834043313509761821773082765789717389596704006818829239629931298396979788859520943261782773768168240192377250639226917444215543754820470953277559150023435305440503867521489260273980625376994939103738188610011980491303646772732737926835043032028002640420776602666493678517622017662435945324868024419299830830013059312501455729202818517250941206796449688739161699444759341704641639603556903844892656332608756197019849759590564563948250270572099315629507705327022675842975804554511893535215768492747319383915329563710949926993749777897884385070547565328467413353397777800513466448024783977762132030469143554135137185317954930564006291912977436165476644937411504379185400517205662924900379476245511514371750713149428470021788208648660637403819649040801348234872193551583795326895682876179890810468508382672842239113985024829563048593017219148555082287540939409908312067659063640723577414627746224668841522544373672892081355706931960657426501943018978651467407321383258397305698068358255345276718191952523838928585281038103647005166646409052434929926302938495092144492413546350320383211387377990452709941742460104734105083635688469336872089713411089598720625810877674003904982981558573277716071176331216302785292578961506875421945089621313713285595722019969459260218747172507657022280646280070972367599326355435163517406209798085313722463732814217980940474893593220144438814373518798165552562480878638353202150400078777524633689892510217771707557628568122691255200296622073524042423243378915002881404461275061371902034178306141736006773059353429134820580311511110233855919164191222834768039090770891509164179666486952061669370664683828256689625431986186371115862966898297722784422801086793888223554328294026998384026163907538260793629470282162804202429280153371454234001009455331598040688568458661304856030149030445944137577254917294147460747722392087000201819318094224178576884544828738524117569422248534458496317871241121752101485907370263480648816279794105873699767188744293773368170686878158083389536051770032669452130866501219134643404442783334487047366116126398168420868820304539639487176874031448898723036223443041072558928326810252336859524792846604430279972082389499819660444912972661494590435931362508158379508259000481488979865801514715203815826965354738283879082647702533880050688880127317572796842374637537550507546689583663696427084253131457287869773631919739172780573285547355588428479820502075055980345810842012882982028328892758513802089573371047807818585844299635026118824963812307578104714499939484066550774746272303610582239810700168067507849983207811331357366099520304919634592108231590823447547674673893028285408673238948535791655374699029633045780599147603624833296014707985317585340768510113249841546312649732007205193436735220857357704625090599771672178170017495217050123212376828720858606180263309888520001244714326614073552601868521140626312628048927295100492708738220641793581233566103620305886952894775509640861135517942869723032015316293734415998241528014470122973892760783412518066081224397528120129837608325304043181274878200694598503176469194730923916336689550611399132626985434046589920138832792602767259728551648747458283204457146965376720181592340242722364218008196276057110745288253584684383112967864942284016412980610895015139379074364710143618694761848260429467504088228390281331897700700561482883910121173862291161242615241323576347591186180566567435121627495375090846898269180209693118179815445356660530192289511614489046215959828836847039952568475788267120732820585554151208484280267529957222297739339235721559453060741144537158444430224481981434929594841188177902274126596008757052645995525538795009768043875126834198507387697872774174245640521594537410566761707938259502526679516641777511669891446934818960236789179602994042720660333383207000485809444719467387749660102897274665007238863781226610716804321700501902124767401476197478251179845247767057564171760114887580398230312599303556800324007139679114194357385003374511277364944507847235370296402568753622684027999253500000351487598940289045975486181511454981774200425476484481121027076966863778544645356934748346871343338015500651850396911623468437958525305263687460571521366953830066865764089502083983225639962214571767290498819875519030434202217625528010688274821908972704466076500523363955757045507683275545657223898897972967811342612455722589770293984589080551049854669466219595774039193777028981352409143773016236660154704712521778259262946898426828431950796696754437260713137286586128042531159401748171156698764329557549632203312906025091780055873282423177385935266339755017049147785827934331437960368439455314635068761403560704214944267647091117778996518765569770630074121004652730521219204473383793066304772027928720207031866066558256171492310991537540663214696752951210374134717637724998045597615784853340482841030911753609813043854976617748110686429847571382667272476902603910391006265898514840821872042017242079544278722175241080183373959711319533271179213360484949628351328305005333154026516081287466949467760431234827315336750237097861353477911834149714537810860549053624141034276100380210690244281931173704077409986721748873150907689863556229729747142210296230958464546547199921396465219075560016678411821058614894465869903732982688991881838473214131146353719381745491854453394848782857237053098004107362589998811938536631552998174061739836554358460299148536419402910942932777165100873790677505405226912802898540211611862526769634100631432873972168503564512399856680207625703062169752927197862739664429286544474278490971906161337612216153060312189082672436066130061231214495513333534756283484118496043621079448473332981243765213191623455265106214049217870089173742774491407581369531760550848539955424465149324810359669379334447972684497793224941763725792179427466767888482313116529840593514966303833452356922767270497039483046601084298726807940975395055890828457681239103988871922791290239881959798760555381294080804947518127689905875079455937149472469927409499170554365240580053426237799335517539641025178060340397010255537910208066286107254273905134783266733587847129862925390154965043904523613089380828026464373679898720656475629992150048524688902311199067175548128626527877409388530703354239421094220098598443553563226980360825137446918441854944962500240400775950637507092766751592257144451512478355091388821162272208839428272450781360104879428021497244138019446561926046920389435680360863764442070461058901920647579620873201693117684772249602380734700427077020092477847891899799352148394179794814858654981341516473250806766753793736098149786037044266481086619273992590949305027006569521528410389898335639944518854508078923420103289999592615119564143681684434529496238877970322714935836306723446663502258607177312192790689883956722996657755035040896108346361803788823036152000082189085564483475612245006180819390971113029222303193791852290747994035563196246785074509162136918173310619622628335911439665913365783863281395966312762195228344251024073813005986327635041812907183271577873126882956288695467686707168137230743710208270774227200775712579808205755253407774693418049050957475137950477899059683909496276142158900265358122052654972785096161261864271043467976909925532717157170471636486136598299542425083087204072992550598659298703445142630451648225795527371593171248572876285145462923399668793789627733999872926332048285521083002008871639809054712081334285305677659569191828786362097496625262737917195527461754533824729545100449848152731330911398501526995851016589984113809128140170069938614297947838741638607986441994019739965924796843505233269535358918757659965976921033391920367747951967746319437711778242525432781823455667286124116597743058393642383299888895385865719101880042193085342962307877456539560643951288024394980905151001896244498605675584375365049918656711979713268916916332810130946837540981070238964160997047682421408935569401754096608841105470904292576430296866231183624873532507106644392489739471680575551658791248937464285888813259502384288719880415536731814096115571059174990288266695842639031561408755997075046263113277449832085979289107352303792243116019652979753299448594554486427820139242860903674400900077974378942749964358211877930697389901166287708837763641499207185018862198673306353533986873922513556268674106171369226032332784516235514522315699030595803169417849838000389071244378146299915198518770481360945464472699292687117169333396019865233683992600641898037229710858770542650866086244603619245109284956670964860403830015901393677087208636887520121033611606404535127690468740541378740228737996721560961807025977248287856167640277471131747045304257094153385760567394410515613316363157717406481616116756189146791508300448049262302192989496857623618366579091098221423730145231946548110681202150604239035044650836502493041727428595132673740038248812853236770183324901680106927120987097057076508158883023390688423776031126566752225773732903550294630390363162168229569887612416088076717315770505424859228272966054699213791148873935701760695737055849054368012191973725446302958047028790564722221693760673665764510825873233897603470067222424468844355382064180862293133633665925272364279251386154341711182573124043719352589475501026078553666952759836399665562937773420682805090526619403180260543325903444371406105619964502572476204435280465639233627646220653145988080377818760651131068074510783811380846714640625328136758439484716758249520918129197508820708669379131068317587317877906240969057234090837420445374750437095358351032596398387434428914330540368369747647195665688683191429367168541959035098378769148688478176990416234357644734191367571321469785276737397530317529530311352932146802573085002717586079408675651717093027738098922497586708620392599426830903090181001636781842912140955349169754299879249976708919869510468111748363083854230035341790939768391897577139668195343543027356822910371101924262551445828677214608231801886030863059207153059097307548283277416347627960056674370594572158746033154886747855213335486208228532341942749610700289281225157531158481221572214853922425326314018522159579699454059786959152127759528934823283584124750120608401708476469691640092974557814558984313496419290863150660880015729350476624046427616907314467785607769556896691573396657530664202682786335148914670323197815311889902974549192283750725275722675778640960411464312586980247501089112835527556192867191280272583157921996739535837241636217064787353922159993508708195357121696152745739967117994476132434234995312392759303955036633758609212554375715449593922494781906941347748934178407252597939930187931266909238726716705226823731196569441839275203748194431566384940431415441786362289994676062343095128137945938942421129218382350085517980963355790464079409707601579497457740831725415359796345711678500782035193788538940919555823747927675195499042591619789886631156031503515672728481571014513457358711602383086154565689118751391834588239803224709959580244585036121116619637402310502499445979757570157158097225676020344917650179919208593832994026968696396849158426601232993240459072024397582302413771622079465576716639117226046617349432501872071753078079183236351540709973837655829596723289882109275929692726667388271345094516559130554994606148995311815043808713651006708257220418167536257100797620344608056431692742597488547938662411786296561051863562376869722617900343208090957297545389157000321870222272760545689804522126337337599378878720192331570330854776813359490176204787078613608799499165604805131514766949090206767296988145454528113743359927934404276866994349086462690860808781810814880780487011626054596276475916368361367919014133437515841516091319910464441997622160778451053896963081377632587000991571275920640404460941418426839501092809544976523228983387248272591660337567757854939143944635713789136276417236341591352572603648177817505651593151816540822970335006463090214489967551287143293715732813503791028903358915398588910322107238536147132749340249092542629607753385642538957781112171144673259382275128107471057427512567471938175717369490700118048579275557305814516824994538558708973711828311070971050252251443323599599524367123674825657044749045202057492930725653297401900065614515837791279875078697821898580905695471641161544368677947733169571597718532700140665836902032746654286875669836452554579885491342492687311818061794946803834008823358529858990050102708685670463590631092850202093462412952877556096157700347746845126042039969494456215588173327181551812926642911566899125528723655336803723566494825021622326413145029892468471119858145983350468418382803919116408101993479022544260277721872099274700659723790526972804552121726469478456700291581936423653878814110918281398801046590741723231964050137395348489580482898904471634610262122159863305024792339778613605120051195728123940846483467347434119149607496512642703038092559386682323518365335996303611345086606726769126904622435154880509263182888490083036377100117307328418196445689622728769571210985705155470964330068581182176369396069631594473115007091515270869996675521576250427782435939905838656200798524595135083652604140877996978000430924299727689855593278336181532617696116833944524336570785563507966789338555769021199558092713870622344348801973924331729404576991771107461189981570353052465919558718053345657387385902863307434828877149075633207668284736437377311962782067301088529551309838805169567698683396629016217793013042618983557741525398772483532620167869176569553103784099936168943341545427716819492152866274529923896878297586056416011671011805332909155601782931202749738288705576380798545800344772127144548794911152143863231649170397575875374848243647552572216680256508696402705731638223489666013212253998313640244779892938240098712206687940350902511468082215034510398193693804987163042030230977438095134857612461073884012664165890745069349356441883901266451301235545334384893175757425676753078316397137577052248919945576176200375473562999474524158766111510359174586977536031323778394143311408077112119656888948050360016409004587474397919698336004116134451281742342729681476048498636357597600462001409842670202221789099765408641214213698270686519087890975464427481643049751430204607342075257359286137980722578117094710092034449667048933940137846969221954925733736912166641756765461736348638276078771505116599704159963654256066707906838360209926820926723699166330365649324102046597785717298121432154637395032018775980380221777963756256551753683341313724233951677806774054925955425480646660810950858535462434599512021661657714725686071536043721805883781839605838528508577212476473204109604134897610846314290829299035184880732959293236817224744958916077527466938309384181526937592569260444140977415352457264993139075746123183346353757957496670823121614299016686828227658255397975338911178176592711673035416730727101871713637423322320763146581301613903301976871756890319244180965564725056290582093000143569607546705888393137513998545299448547752884585615975140204600881246843238779165400726691705572525546801933628620974312406094854156364459841667196091611021887866660263579178506932159337149861785988460971679360736402290283654265274550095607310013329796789812445947856790834664419212763143794662763763336129393716470710532841261519015945273038410619077069919820396541600761400428597000585761177240226855854174897679569619270812557167505910193348848827544790349535388595654426808631433945479160148184538004074319980052916688780299401852312325027025195726924194336732029809809197369462657931692539099798852580048187085223050334915321919862575279414623878503804602102497661364442986780557458239012409227191385715000752807052645880285821085025484575822049360374645344083087396416022581287248309502483352185444600704614351915859891576336315743838121194364128975151990963268608429605196059674062459818120852088608708394105738811111428587576223629204878801912693315797662333386249723902054442451567430311385208566293807446877733135290001609251500766116701157754617417104067817450641353395847005315567638985801982691106898492791770647108787660193809576612639875306499644420312622377081990518672650222144286125438614910160715939648836759841957155526525124535162131801070984476771570470446740766122356829191776388432934498121530851921312251959274574904591291141121823742190057086596011765094474347421867239021883006394653869347807757431878686938515505155948744344251685334851666316407641504363767587676240327472941220601850998036836310145294878016456935325669084437912303999778244508060145473737044525051882080502216530785203647198689744327159208079371984641195677860092223111377763773137424689738133408457481286784421420979334770316597380397818798835318738492750498634672243774548574973629957925790055104864716497516965524106539338676273840622434890690130208305925277062765171442795595049374648363460572415852317911654447837287132363397522980382341309114941514083941809591721822733307427868629747821894288885628114512273502357921774552903121327577929598310402037723051550208438936668193221061429546185242406490501757826584359114013356602986581231939029045543499796256091230346086866357509069049866119890916460420696096694637048791207480199807640977492678285164840240494168348267182269210455684254303295255939420786552641970325044728895549659164398952441869928389481952033067370373244919394068560383594129135730188899848389318270522364861853991595976256368799644981011465884305151919340378452456520269303697947591142290089090906587977708182855302800658731881071628726767652566916111863566260739437469977084574110062727133108770470551917958301991236570609220275914017524572272759918956839320995439969577146052551070610019182118470778830456912555756051311720081703594330437246879146582637818141479912238095315976142887999405080709688915872479239192192348346323123730870838411412536776715262318135692003905536160159556652738187724780358408864294496568231149722052890047809949969502609814117579672963404249317644009530948590157597493356193706492902938240997191094713354296365146578602246803498119569342913176448471730966996435770487047036401790278667494326203439000133066955118966909350270125809178502837148789587442481886949469872555841671329869233490776945570787727332096168121037251524233066036908591892112134619423928395503558723650147369811582146265782868918825186084275483009520663152240451427336427833571151977586811832738048385796410511386363572122814509595928129358491135929671116772255885456102078109579937035972838754269172245057457792249212141179995617489881865060399434150112424295729639445389071851990824451782740162769015541446320203075944892153219676565509292890504726988436011713821568873786402890642103093320556826740306648123282040509625972298021951527342932816666809160809951394401363695965233855493464793294877166019874973259873753675724208073155816342955997851230295197225006489274786419953858755140842678786684814840367463340969926550979277695700325497599463875160585855194180464134491543502374808434907630219642283629412778024331432106782143827042818059244732616645960868307637618586552000454505166253698721112243932905487615891109735382458341468055805157877605222597105772923460337443771325873360569067392634109873838833362056257745854161506262670228117452657883942705273362413008450008979066467205910384719162669267625799629810786013559505296272396200903102457643136861445391727073995240379957465480995829042310809488148251660289164358736232377168488356231347306827104976804248356333707189525600233726841719692812812084349639143457738802705347220878207344850971815222882529320715297509626460095611824493681024372212747901490017638272980782101756748837675227295541282586261344323500643158262517744788987067220212135685043930403793643460863881728754702616322800294822139534635281488988791596467566902087697988971761207180988293311715227178977806282168307386773653913818114874180474960660951185819062294972619046592680308569715602790419350858963496312659847607742077492969149241491662604732059858621088074118370827307958996821992480429890675354481581504711579002392420880484886052505084955195460062580706615206875075236896092625616797769736306813982574968804147978084394120236523915403947951525537334211382981664006111302799819254921121893970432549829834734441850923399212592155871550639776471951560186211323943400180430792314330839039447606146856039207708842935350792437156361291950259399970527723495399043085796613992623953908727115067456231511379850717243537503799779568864169951929602612538587886297659945630629275863000961607891553640891532847135783250894038146389764743088516619675699440643230046145790885408283661858885572549765654441972418259429223179795749539332678986969159794349583176856126147447287322603694154591068992929899395679513790219168257236817212970812675818195023596030717400146465140576276272213242028617332360837304742426002524771367922880134124376388589621733642133309452737889881096230875162182054905100935532920059798254597746433152856467012204434019960944955689492820566985400459072503567804690275172393106496810079702396609688656801408055543300786408025793837547641180477562260588749414604969177172418412239264121884926044978605834051067196875236691660681293047351334643151495832312373518734906363007353320158498173296551074206830144303928906098852742406031466681542339013552198875489963838300152761198031462945863381845604444966996256469574427384943449586788028867985436249760808280749433781296997708265469306611896230824089703558592670772594350584524936445927305626713436861200038136918559911127822642384116130445101497205969513389966841023828298441687817828282654066183994249083478896887433831996109871254758543160395128426272087636018879171092421170483054429707818695226333026588023039146988495192057689433222681758116485793406169921475214822035912191250362720621419385205694740891458817321407446737315930547881739139089437178966909023577003293779756979187297358597571418641069737319112594994761986785499209631294310003137896997918081294440812886686071154035760213961826288866945904582266626726574568529402062804035479961773486792686025662786295633397521364400325507454496085076854136296411327521042546305465050094766826440118168586780726502825055973696384548245156125913492811370612351936323412181602914265378370227766412553398832862750972549503453685829887655041067768775599549976749588659644365575232659045923037132257828132885449589656885741903882104358851721506259663655842665852263828446308841192326023000258861831106189956132646278578863960355450276839519088301554862371599530410987902172120884482941218939744827438882474921065679026321102142627870331458764906181813667542055065115556660902909463535458497288596395694101983942521543212880152752516644808641911291613926477752733302095216752859105399264302323968439552205640951251044085473088358897105423185622852363401869655646285648368321293691007103997124273640867035752514158853384854116667983736403523359312553389648052450561724240945933082805877984267843702828557859313650670554886432816495997263341904391120900483464090089212245472812214912267658113780718969245748023090010824923025161350535320439042589308269788041908008725539797278378254945820064202328223822668121371267324697349593598924002999484957619123984823586608770581006722139353251227957085089731241022246368549275754331092337263258597336400632944569441567124781603277888378775567373243074267568573530367168884961228084044379211463322624693171556563315439303695292133202845663317279053518783169983830229783851036331034529197478587028902531743474156324415807752254965144296757613589694245705293692707860349398373413266686227238251119320804932569194488383216973538822052926260471235333225222274787285352939496868660223136111631297383208248802326757040707756391358308611699728638272718022604607432888327505654331375101356110134587637848775914004978316938718147185666426452471880514102210145019289739135024811457374917573776337571155797369618280775109822108932232393545134202778365113437675882800793987882485359974659915383887311574137560924939612225240991429870197122008831664446136562482093946427855300219021760565832933570292652416576732951873624992969352613543071334574668466787336700732399388289243467520543814187434715475799160701489411721480886648549164599156660005591329022572554621034446165660052213088216255371931889606999852667799683048387220612073133982187259513986343964904845149407915942072665940938139015977525646998483215598140008251420659864592481282222836621223077788950505859108326833505168325789099744675360051014371185166675822141740001365974946412241868651122344948481352982183468359567244299781012885022059469440279641880328350269702356338102426820288239784117130037247873564957740000979507660818463915093181379587113249669964867061810696978377005385922012009131171801333179291225733368828213844047990552869297831050511071319860941015392363564952932365382454578236736468513370794889725812111153235539761476511971301834099526685006668729966155075952805449188688064064441604661385881356906512776748012904383325232794404585760652513298032637891028045744548730742468145166194569625754288866097684968783003272583402097035127934684209245739721993256502379108615645140924947752953054486306751651780703449889625149503106354723374284759202060310538274610558377245506098965714954822968186593787073991634756388706322269219529488731741934839583933402501746489766491471107987728548557925086326293567650435106215632817510815093967149578006857857492401708458260367426290205212140422253026500727530019867959175721450542103506641750002838343336574417573013711109600537228320252729310822742458101287401619466400759420334819288036380473386399667017297159315723885124089852937155066981570343019230945652943994085934680160575426730591115525487788372025258335605401778367394244225954936440819500435982823594510532000112186103477221655616253696962818041131686626951919883773802960029523084097983655342238069062778970045986374042038817495010616425674771311329843300211195568809078020833386783870663613244671403792356012046184511347486585748889115206597819279997402205283742451373438719946005934322314012494608805909485309637293812764899412731584553022689985892444730250534337220501280413012141975384180779330851815611186448005934570062466482816007154853233920992344971420973882077918176975671920898107948465181704744496117715381698580387040179351151798984991693039851799876051350971408447041835286535947061674417544901193308370681447757823812639188772996560472116968634163717461740866389000564057021232292591452921563485128906301573333865997519365828134602722582546868955335163639959579810310191551353502676655263913709977101462266631783519260193232634289181588876670637900171306955255303047838278861625368563779620463346510321520454116497032650421282492352460251567644605747254169573448376142095454320246031896865177674053130647000879619254111099679812333178152205146479246862407308383002290710614903711909082393415790766112821367688426947151667987110880813277648911905879375132693038152060978157596113139261859912945719727322936993185321871338530082968764631919270713168906030429631462653438310180541901849096899904641697589598327930276649980254183230515529705996489802855685563909028130583314631553052067454583623682626792946116181782260608269558350324613616093817598906974870326704591919668379581962632594758896350313088000186707402482457102822403926881876385114846875838562216816214793835132792297461728024137467738665535458843148904984127824672925628109935488268782659547140498236655753989547591532468402045143977254623139246322580080037466927906723166493457568984627817886528408718747524477054508906975586256827153670864912807244069321642586231005199054939861911846541210355755655609880863389593384067867607283900832836943500323441799967941289183458665038015848149631127639286276759920569752843301609990772320193313537160531107179172366952619226790555896324633296401619749058474659598944785161675063368000843926508839270769961924619136486079056382832630192772666461720308588662860306995425441835136821761258291691993843762069085441988948224349562389860927763181223926750009066253733668639316019412965194693101681874306836989895370906794700834328393590275898237048193877741368668440913127330780357168805389349286079500455315143027127297414780110156046949702601144253986981646281958424875977707309997669003624462888971562996409275359537317061890978796417217919415341036656332258311572634413330849674021860731058889200619040386928671712062849003155134166688558671902775494013890490961854892657497770463629974753481412626727670251925197898941141494268330869206810507638237520196986228135189377502481352441081015096193716795844412210356415987289785144714066995851542767386309228505010212419687978459503226617531767068352294533291636062935699803120281565836987545091549956610420370911655971569639267984390918293654925330345391296054273499082297666543821746447441022386400960429609511550196149004233868624155037490885721850056820138933711551846435031615135832143049506158691028821544878267866450792885963170368043329620765763993907555629696363078732948207719186484350852461420894046596297764127365295238683515157024715178233456423045485929424852730166714005122925009640152786889916340081372485500878248289405797597448952183653276977528334934227255742572037410813027276051663556897888629136427057745049962021463840562739410051321506456315367501351586543060638094065742978869333597245625213014147996069398792370353415794837870065248454125641964507794422059485067508882258446385199201545967061158334882477870113454124384978263827502015319550801347457840429384741649698437200688009524495396533198299311908095723459872397112796283063362355682141168359698486522033215153340547183723408404889975456270048925111950871968547636319633830482176523576219802763596245546946155862929876122924563562062219121919933449580457422051951804132694415441330245287346356281703750388323690611195853341399495328423413964930792564739236949048267054334834854234121144507344693452379608558708393575551343556241459954011455870013760898856183239612612292409918924132057614097515613200348030941151298814369728287527483911961465161528784070877771805782589320551785863115826634793059144871706005574296839266562360015196780436395576954252841594818177216011113896606927882562475901005031119623686205089294801206276224009640352564528342315584259176411976692970734457290293824964649994941361043587039491563139857339243201601296227340000812560275825020081574679227566591416065144893949723661289831075360433079822610585953974426285667757974293475250660654879480037920081032062970448349696908957156828819663619837867569592413205683162387848475790745629868187751151382321760378379093081368438481985099259401164356575531623300626604010569679790124041251385089767337209335293165727845349450810185233511258867343779602053746533683555245342480215283183384354341612182753064120559079563110087046086024322452861639805684999921423552144393988865197268684055263392460199664288971737499231085900515998248552830290883255820550606461104241697669379815123281953412743205070919840889017791299345026225928330850221658381068945251482312734298902674247292322340496221728717884679908699894279549182820743744247230536865780622104668722297165769922499850084061571171671662142770413917656917277788715683949456384473251615607663777198431611178670073603562261219885072867334100209371175816781373383921730411868967053171208776792795566099999182202390175283430440252849158605622235881653130474951384517837247885405320089475079819680654214611161741555824060961561528186800129307595845514884020168008349487114520137769286000492470324570004441152944010401301740812375243475632127181427471478828066099724054932449713385958063010780895968997297113047953598611913951057179995577488022043405249484981649936980356979834320621325083161222253803067305502210421877078586328214519573730081792669043300247701449135905719479977452245682522177240221458409164786800760822404385347471564459558781777347046573768993736523652238030655790709893163351726383000399622763355952568115790865848354058367210213381557352395230616835241181307561329652087365595604050211438483917066683116062726832008191309093244750841202337668881496489004374354794951200890770588986809590630082009361721347556651080710603987324370001525054804164926052477113651653885372420133676858526444074607223178511454284481408570296543546317758764376825185302589288778385312776392106866872553618242409184388569241123139894327600112652622538764400294360478345236562437871624384359561532874597559215448707436807238660587720345297010951266059015483897988842207831659066818446716334786135774888216522285066514747936978660153205423324413274302132842025820851479930171017620006035149796354057864273448288708416730182586921384878895469568154725183086698312977279576029894805874749512838170249881988653420113032715305333205534398216006450757420923493836901137123396779021933391743178090500133648046297823224968413156695960793072312293682937071216322741832508839147702584520224842553791566846898937579615938272977060830144674418084493696024480686516010080003547123139796370783077591530289998205959168008376936511189593186181847821528397972769172442526542720957239331570253826291290881176287145043499469834015155984798692476573208428668522400231388426921447426695335507902433244337845616491906994172037381055750714817459126351111959973776634615306370406487000199645807757406236140163246637942784809020759027817055159157584981672638932198864295106018462962688870917804219651511923049386985816780682313490775653893374769609557461915166996621554976996773991939535240031033944096137980040641627711457246225599157952437578412427547643144563995491714625271158367144997453044207967595388507448187142405086927355732377701514376611261700285427918787106245810344068166109788678755220095143259674061853569188824289353581136698941381267750293337495545099373010784520066679180921563529744133043709289184927368953688611288934008993111173916100853132119414298623021084352826659266698321453448106390047447430316244742725774735508262324988711720143942218616084142604714620872307508952605607018308669387833389316633050494564084427146997630384429888042874648097517975191754154886078026031641116334065336376486727898307451582642924092400354100824083539040040481044162524259921827964518157342526702220810658747688858367359076581892999887622548070780452379106462310820496369161927928072522046757056871432643373251070269411769312568900886524836925488231654846606892789002722272798100908857452444232615984907551937826601273353634914512437302511748044017817080137683280265807127705589286902958119289743223074114897718936806464717768542491979745976652262479157476345667089857616235825954607962114084320441246384528692401728900503409079700325543773927747150367462478714361434943356611376752868046961085543511855994877590153590049582304063879469050323942032516203342250813290105644477051334830249199093008466477932655026460168575747818508999893342815489971179282199852902992410339692645536373074829691807963022989045743837424992656215757899883984228566330487912230835870033346216705296846765809893357937582095388419244896943131740197790666301796006508944686706483595330457934694801371353362402545337888634225236622357569284378272589010151980374845352362239723160264655627586661295261255880902560181057479347413141276505339675123990313591249495697073534096740265443768586510068727642031115677270471683818054532115040367134893151684276479412036437856960196500828436644141421627199254187574733640339727609298857525002992994082287668233694818473135614147690683095167216865689272153095191197147894899633367309822667952044840441924571751089937522331852943274383850832867659436300415796230486254044078765357726399439555872715657436248161486362643048457918358382305858564755991099445538102052260082579314554943543726638525042661598166021792272655966952257657507993848958668980309256353947622740226982876752021347363073755938074480163036422452264635610821383472534735255618939643052433320095135485799461805717237881771272849599523933589013337341499398362790039649457565704692164329065888410718348763159287772255793099128465561012560269213600392222739365427090032307017909565045579167609331952556926908294579640961480284377135083514931387451142382855165852001835782566915096976459869329702426282973295320572614322530144919013185871103239102511037449684366796572429207236315953939651131690389127534933163790895893605605146620857594911917673182193477131598122229403194310541645407274284418576818893883181292809540114675011808183090713591497619143475273870714515757623904369266321299872918521397511838416803289618766324005525153073217555621632352188036128972450799873059269966986696597607898857255994609960927462951745874407723851413398733383709428377463290474392446533143258329414631455660618805151476444706454138669982519042591398536971338850272576391212354910850711014165713036282356597549534072420805083089033428601606161252547777958615584574230486344882391954604173884433984233295181159648758945232665011239198808086538514304350326233086896969121261798125396016876914851172850251199029732536635406484745104410815178304031592147027850120809183614648157488839687101299531388024960188002452470607288844674592511108066036258048013429785075479120941991620056542801925377369490606064873106630702051292463394925977412046558332334115973701046577033292806245565772656329376899191874842772089878068747109682117883105245107632215970789110098296293186589934760374562531140233346885770756239071279378104844264187179766720046052428239163987268442590415532046391318100072376428932430466097047186541930123433552714209381237294142931904044096426172885830388335620113290938555787035039842264586254582447720427217215662875771957541519355512535369389148714298307643230097124623415252149102043674563350024778136562966526694550381690244932901976670587532898345423902087449212512621770249051653660773101191084804208388957761979125607005203705397602732077210135387133601284655306346332870210888945468715835576310861645805313979751877114842598691907397847574977772225436182472016890100380917935641238641469170349340834827041727176166992729079791059019423907782549846286174577247452342008784762932431795320612302827260510007572333787734365890548622270800843441357212570828402221965206184495077162111755464173475085971464909650951196064548276394519358063397968301996885127544374198915610350780847157741735006507027255384456661067013679107039515681782025219868053429816140397349686718248076826978349574428145403160744315023354677003096916516418660785819479037733337749996051832460263625908900989421269216352723954729739893916054606175685269633978008137658550758070165926713694451077001186719960428826004148766052587265290070667846634169632654877393773527401080558933920292331143043214471892941999657863114650298984102402232543453588838275043795552614898522504979501062875626153455853422499345355668615875941562425827703538924624956291916488107528658549862051349881435701876381166121057293483235850973751620353052020238493100253428541410924364976113443437951194643546137511354952430502170906022449752942772802347145522313683199437902526139235647784577975270622024080034137581853241514097113764297749710105501751163033594811722570259596471266246551727444436851000392086396046621631026147968620097363711661103796774909776544330454367191902966815450534179031950007813570890875075285783235873790354438740935797179559889923462301083651503651790858853846467062310808752117650612394354251734019320239880775761397953732251084656274405580413709195611726674115563422159911340506368617360054225113007039845841557037811408120625573336652010825010334559907713028320630867825928999964077854586998652722769650096440022115037539542298887458739785370596955111475080209369159889592188121314712123438660990100777675717908350963637167892390206695792827165176742089801525294480104420734064766391962419842350128892985360745420056829421602671557492887004907784972825791774203740428337430462509584708656310257842692075561802134228715875441913567195354947413926362139819390068743274657419024650658387510242385580347222143047856622175004688263917537592149581134091445076224861508477136271407084576963830752883893015955807308644807507230188123124848023080569343932501472452238562206868160388788290576453970822383456813663734163454343633257102874331729486520434359484280861930806370249811808979942003533155016467046777339059157966288064829934085332892463516859281684230634435515847355612055221869460954088455605658978964580963224138409695423201092522991202447083470570099602401830755361676225285557810902421161746313025366265629118159581877280830475820045219138265951813005442297362972760574629930660334984845780040464079383659166974051089600750388050347143769420856353894322109344105007107263306485116458118500004130024669127470706053664794419002531670290723934686664609992026102149829194748118556982970517740297265332838109264768934936124335847105206980215474258638019912603960159319646639465139848048100258048058368512448637025972133001653646268471433144486087522827131472677744991117292229148690875962268607955656003255697684063992819366187269871352991855314560480703140083962121760873046545849381172376939866963891249642604656735380855533993710104086734179847958954088252667093296884559596961663269567602652358326562040302678221969358272444550825213869923000883035229255464038939035296846849263370843188755045408721852088967739953094576201643804926868480153150556201345257321853581829825639311731626059428282866449218864875168611700548450351826515032969959946891463016739892763721681828132107455443880258581420610722790216802161410608251763584306885672072881242167627632997594198493349712441213811577050589503228810031669641656380467993684679894405982711574315706641497854889781609381408599783411088728979670577806385280363417632007053116684821671366432232647499362140189393710790135535033984338406922274945707572812833357467601238360208907662341918911878766145233982216321092733224494824964170802420314769204105262778741918714037526956370060216204039263686270172959220535603728132854687645373639788929934627051647306239870802478774128666385785948826497097613858406472509870577148684981805125833994097610574571733472586125465560752019859740077474122578267639258284585509905660491664500074685438848976060708446269206222411995152252575349313640206882260824264371145002532268529538157231742998066687432809217152425305602683595295424317275342436067965323078051789299756967309325586789427641425468028474261962719103196416774551332810323123354536773765766848946699703540183344877146000090195662891532980901303459560590838345328585549220032359517220798213566511543528672347122121488406271573207652672955576212979109005412774633255136808852515160736559992525227697675188264907791457812940318641049295551086781079374297936478298370935517126107751613007566550974540474827392376784660183822059313475694690319425769036351453110811922955244537358246411239279458671918726816531353442967905333942537518448855118742973954919513601797918580885716238841295365421004748627572522707397852896169382488207918584511290290251880476928662752744361297333189896677581009946849565205048954983195780663344912078370707817726184606893880543194686384292140920039536459828552730844390676090135076573026745868574669922697946566585458465120824733811616583713894147073747652839646588112668091640681981779091272693558411539112798800084844893030313186552219747765797432719901037718313368445298386216440314071698488939685714582372398204406963318749479781718860373069025888150904281860618632066921603787734128605205595328774475020552601446186043226584171934355376480099468042647219445532052063033587567205173007442373904465211676654917933209432708863819356215477139775885233186695444364269675221407251946735615953301318814009865426377154748995944558296084695320266102803680978793284020226152253728725965291095163315395552439373856714543780699616543602803944801674255303617076763342471765965974696200613750206819351673546868171982848605893439116280456483026291005904340138397895305991232624188822613594901636072626267461819158840605930788550927871044588866520804166422665710680791856692294330607404411489676615029495051476103417752999167253644408263015381678943458666099146976720455481772651025495861950895352001779970276717842938782783671585896724645937340817918288519042350976797912791443091283588124327238544702365701525034194691238438346299914147924105452523613043133856501932151986576510911092746034221964193112932968205978162970274019191768375093942560377213949394240155962816703066709309387020137562118789303898191929538643226882782352155312777481992571854148211204464251376104346456658061361814616966028237069474692470538736694066197412783180732619251530382695093165904767801484648111313823943836204066183345285414122857144993975705050299695696049337158279587610637484086109709658194132650082165808016208061506995602254580618701723871367458286202097976186976031375837569327160974370032841425723657146057478552830666377387438859747397551128369714122286605926094564365307080085205515827720274151482257923364002899506555230833799237409912024789861959351395514901690975662871997453834129202321084705443585337235619299098611532913710882543762389900959205388933603534512024688802914514647185711303256732017159788575250925404178262814769512140120320364234381638466004335842906180669866272800246579219169059542133315528911249316279714548546380441344971505264213145814125725540835868167442015543690338014173172390967798721084720380052253422159994769529364565273949664862797243726768165843793839227883563654119907682198808258833755855207815892268411097496505440815666175572185974476765336188473703967004232633633033108748432536645998046541484496418171061607549555698581392571577872824654146148290116624916740086695309183779627901844380329858302708031320886014112413440220468444271076333708867141650317152305179106253265018362877476480539461589022099708307912916540432442753104849740592125003447664444537404275106737325475664535813083598389188703199581899524514254560769433413164391169251604125351147698076257123810942373997089870690971737649477678303763733813064995938940969196838854650832846112027586234633208142599262515715132510756383385165537263590433816295854550070704469539369086399043558746128031276809154213934271493800357315985910605691958188588465349039981413385655588103690248097093188029584217030136232762161406101851310911602938987867992341083230522941314950853329962825274011293589567449441613097779378086948949170918524337102892921403252996169373842764506128119754725343900651360794422457940517998004337753772196564249778555869048908643256344117055178066976836240455877484278900195024567363034971390950133018271702599283736113454860155185670681015159628710534032346132051979079551594927785119185946702344264029950280949882109751202185452824949805456442963666892374897195482338852571861447740360760820330893827134593275098685904690268045596617876289807696076901736222451606110760814304356218852833773803971736439334550542926965957067482378826787111045183414049996665633691434649438916434117854083510310694149123038255499438366479560147501048696059578288745288444150111483718669695488044647675989225546137384162261897005552955554572063096943523266002335708264419648474033099915917322292164050348896217037609810420122327752309016582592213899917930489124907509618456878571985142602675647066211407586213600682220971258108135960204976178597801928196969960611229643835836446748471337487135393201985942773775415577110109242273064199573572886317294395946692461065228220870089622797672403983325451986195803230622623740866210437397205582179641278203475335175362353553243699434607460507095848081682445747076366883963444636379992647894053925160955767000688631216427790827633704276180213124914275081248725251011374332153356410931889151249810518679496375097647041209010408312105521858703276756645706484647302088903343726934967786411612133420157702795870676436641677521264120415968814913994655085468867770639873356415822479371304729593451235324902358229154286392391845077313515921345082954570549330292027748089462303130010079197018556470957802749624371515056165909234492378312946364276846731605778568530779943157111477786264526300341541318600157890701803377236243570357046115592986458755083907072571084899639608913044423870185303628893240057856389014991072783825747452231643882976105753214208614920971877813054029706057247830709357630646270761548053929467730981235471586141771190450568626152468241125429582326510459813916840278445853112022245922794033492209712353774671597090620532397874381920548637804688515457506121812898411812044936240801511020816740083621081909940214019705349676024487367074170793176014518627364801563485070553302407961190659794662132734734127999204104671880189800457184518776408853192545847203949103402150457600841567499261766081409859491847231120534583363637793370443215509853550054879624142640385254366851901416941064062276759572881839217661773264073161195390966591344375966113411596663755743683657138667463852145905980053854486682338270242942571459908670570382847834799209808724188458501888436412143470801715588092917165820601659939288141438510548752777065192666072515732162090432674782275057651423422619468810680848610801269375372529116351263299232997597112558436550268127626946896646129816915184223648331578486873702879395784298527274286145924258150037685545956962783614268250155132035184067563442138429741481392070705658560300489443351637272572339094572473634551415624934115705865324287391684699746737535711145978957624549453922599552070632501451943115053638828585356336750423018519280923245801846451938625465388023995730158535457210326275502733494290980688932419774870941476074870680961977634758898434087098652933912438419271501974492168827065455585093050970753572155418460314418971816653815282801493292538154225923045433572536161197274212800851483732509550513315530832396593395225722462578310100796259581911149694560349350243976613112147050748732342176121563025430334268550194924600769336687002235436569936299341122754359030862832653650221634763030842800465867995073981570988366062586387877294317652913161316623080948930627681186362981711381675243621102822214757042697407896994410962562165691884693485654830865230670639646808450772943648546036293144376276973986489830125066461195814584365122222817425684207623345763767191238683665964638676507484892146815087738241047091901019788690214362775494716851271450201979983344990983195498941216513414033637747962388425258596558999378991868951190827012135638956796862044018561584201057768394876877541227213701655234244596319944060928163211878360252159008126746666528301719194122645502224801675439869929276362247116405941878027171579101021413094345111405870392487642811426691011986846588178676283275758452207881428987481846907876095597001062581770968752261418791910210984361987549998945858604024593362062386205573019673141287515275303766970911009589597238199639077660690441059970864046471577677657219747700716642526089671882182441977001088255900701380734659610429649175969256163352958997163837347751831364969363623011183768508440178354606150245164644510381447507220527483900601937677750305007090053374688904666778807588785630226820979817279749986066539883417639125300985811798590756614363534269707333409703300503377171427268757137534832376642280761825944960340121269647272622323008236580556045612257893938528115931468951030842254036829257938521461726332807094391312009953068733720603620512385588144038440114833026939884949461163915361463732813133077255349200590213379740206267836535448707570454492462166642855192751441049857888513974500247346708157344002794758426475074903287311024024329266156190070369782526785037270381511879618696510873534531603176885465159650977416581778523746474509159033984815144140563191664087393530686203361627749993725743642687666116883472520357286477058080902808111738004799022234213228398067300209746702647666814712098559901510831001562386891275631269892044583634086080890283754534713709052061500971931258215848257858254467945911658610636977942824430587927853575455775610057198085587815019011629706773866072902268831941902155836735916007956101817183982258587862512841722582187407081593274732505185868314396311874377411003646209265213285475774139776778506773300923245495588687473775908526940755478079967862297118404680546938327344782555232578457305909254617629740739181871699471033926704791894658055818813457268772906544492828469047876782034962715479245137003749456070954386960815551855117033844697270549595786437894170720752583855566586871955862336826085338224106923697247597460027366723929952492278928232887767718407486996202271646236234772037849171522187372034980004452221785720498221802216568086815683178552233737386432447660925945736744755793265877697817505870496980294094892158603054092976318678477645279782787721922397723882558391081495105712951397109259021006332138411043374720645409677121871297909279039434905349501177785711972227638349108220021809721479663334890668726795752631266596883949381377581350039635309867229950521783925181678084172798747104020884781921516558277747704831587904718833515668938408815396119514185395576714033114665393184616366644116827984633354812506637712788277431267254493948219953868168943031146269570763940183553563604966828624094847731633569446445957125310322682733966095207578470817323514920843868681113237495956829702745200737024278733522376714040711471545655962926305786324684487601851137730003834293448079563397573955748850282973032905758306467814694366220563816004456052868286105055294544592547432835970169387445141418558604700297490739355655628676254604590157018016531199785504370263870527594007836484092646628438677713896495160938438780099983373544533755400336978065015323321914775407890598647334009454693996755760364115739591242730040259414622154164539632098394602350232550272500884205718358288957857000580423755917653129438994720860118176398754199455380671279227294679547197483068984711925864181368161883744503358797244201314336981220764735385924058385146145568914656360391355966406182923251516742641920734446160134506867269734105876209856958160541511285404306208200175645593892275018983079135828927022494123850989729806670092464178936342743042736197143958794230395392070613958322606414480107077345525728890560404388118885401206816778096507984749568586028999567060070766849390041125816835709130864626550662932874655806181700031220337519422143360868759300709184398721795560172178977103234371186404989236418734973431662488458736040322446546656688758173984095471299485493706982855758982142124037359158282639568546089435803384008128662312237901148065392444010383482914478108136577335871605245913906483743810319121413924826468814973548560282927935308879998082501978491832409756302852533031075654176429827990421415635794404837839104418202351839853147062749635830796480879823785911367516691441735186966685152188288323828405545527366548478608886166723995137044700756008729322962704092493269940022145066771883858287214149613193620147380029484353531300586997757237238347186812318680084092632207847620341362633965352459851402360245909072319250648972778151826013848280929731689750051649759016815598673021124887728853145268314101212521402024632360219161589178827951920040129810893220420449212395817506067746437744669729002799444650243902840171209689349033954386702875968351920574956979693613383704474562783861369464870826061069723930708700312666428732622754090933487887821560308766176397092481019389638544145795223111172340828554914653160549075777683023667736862053979233174539129758028596120981630141156511710517747704484730396219069300062019589300594186090058205495265819996569070401934575343037702993568263607644402589276257343998207958074810221528630564952940423157177274455298484559900046521916716267501705684310455415476630596195975992844208410044612857751477664358162153277577628522431702594173916064294868363828465956502684590543685801437179159093905754113973864365123593309473235656998428038673507330111094951287616521398268663618953237930208549214348152128312566604120662644615297892404921945255113028679346961571251815263738532002456516971578965331308597291332740836966870302242714561592714325131717707858619682727360337708798032050896587662284366065473948396042530909913148343224172879285870124440878945222829264998204897208985606536142137295971665628051773080446380577110881379892136481520490836039461724147927067773651676920799811257834008132596087070568197001259832989573538927916534288605200599977067850537829000830104113063388008185261823898583556549439698862154998146900055663912128785803061446855872976079166282544805383666742713873929976421281976494987430584508761913109069861591507921341294885849920911262722826597467174979587921009150928693648952664482989183973082588295363091479390480623791439229168050697516327882613459478788045422158257931535123436790224762643591152388306691059836219942610037246774407158644476997468982152550744165598729903934028498298645357153908929705024316317603490518366909024268274086714834972832746353227523987636175243775815648439594329662920926940700287243139057653687069133250434462746164751009198657895977109326632905677366449001582180404275978486492790724153077045486352269977552917093626715481249773428910674313440469286888504574207258738661077841887473553498803099407352699399018181143409900501885516202289281855106708072873696921349942316735631315812581502835130428551496994071904192493586838426968210246808681251118045039826469847926539610448702372666062425522950311997439481519193553269944087961663843678362494189718608595824148360841377495404932230182928543214675964691437340462460097863167450120413077054166075629621316602304382496260806410318057858021504055784102164971022944813533126603550272109314133613302635292161312675681014282038585297833242339441832323271055590336839442072977143464814937172068317308382475719670931170686905031982109991278552140681896481035146946214743301680184407500397546482958172408334268039056371666872984087884634542942327529475774259005346096576693485935708772423776747053821856656586778823955637277372441676411730827911891144780172080107245190530385117892338931208217463895759630426526105663919808629791359355287926498849791268782142981336929857454797328406017599710295419125824750062561817413710125139993277312408873694695039514980722522211259627858562182241511239602639222432598647582825921014104110871808089501846452585365037615973793393330962489671536943492497565397493159661275602675003581366581138343727803640769696224122441347117816850714690653333192648098153154730788842040771034307178377347791310453816145037983124479006435237626199271841988711215607174106887798682979657235716991064040210942400250438297379137653522829047016510009407908811819736648992321690499500669026532732055937675491202966978357342215947587861386754050926420479148341625508036693041769332889282289983470311253750852588869975437590181050121192140036138968151062181764023284099515549280784896397340830235473746048826086316201192499101978725355158087166696167764540165773864428642587006028057901696913414177631095118644305944573302123358620671676880978752259909506191064193498870951678157523132917242781248822647721171373687799238013860463976036219247405986316070537785462164992824152047741526265355287329122170472285828258478234650515386819910847412827860955375185782485509262435098883328581863670982847506908651335401077113542651989906265501469817101298080457155313885505413086905207662635500266551386789402803268999158950276945802638838318126344423077010282055897361151515468585922699422124800352094185726057191881041727092525877289212194402797821996366700103081946114196375631174196773915823071029050283041510868166375787390133783490107226954381637143964915493444803617236758281479492416701122290621450928977000077116445420341298089520476278938325906409111104762067739285201540433184427991206674377059531529746848597568196360981116774532003185790254651798723480029906149296499122238463110980461331686509345438986240994081450704785990575259809652279131058129689524849151316558362214782253793908015924541214643393744612982942385118515080170840307300194806082992352366083684668286715951131951132008781924415391352226843553916268602759213388089745696597512938328932250613082990543037930771804740310555133614630327755034906710623095099168001822721535559734595058180740690000433263546249462698163313922892004372117347718668538608460937296395275358556791910723954612870608267758028521737189999152661843633596887633032003566913938479037285147284353369891934932657734509939240979904544019944754812565666371356916514872218275491555324367896546998441569156740198394470879681585272132298626140725888812735099603605606145033225538954496821871308381324505229037308909839085399730110831072259761364547694332643180253627571014437933981443785665320336794458105499759892757974825935691144083146491899898066264261813741342811073534731090941860265506803859670349814438424856652208516058457151292243641843588816373513653635088411382074605868563238260569459557634953810094075739841827647863441080501351165642874959244722663043538277728117858244111033014483423182719162224453035386132587326324341540518166596305583465184557927598689875111639388683726769430668758047966920522338403420626535116724618382777674545272124085857390926611065635171276709580343994265030384260112296702324870646949977494491657256968906971500180796662933311228883169278112358399796510211890813221738666487637791443647705880246566177120104414368969248153220299060767762664448823714357184743415622887380894470087063979312069691210952915813464182247904418010225483580666198855018383625463183349415545950235105095423678204824553916286390581656918367315716821698559887713398294372320861645871151895242228985097580618241502705295860244694255685753436676082187732247550870675757304437017823855976956203679903606805305875875064417586939245980328607830412321596971492456040661311228016430918248348098021682132531543977348576737793677797430615153914072657267807937214892713078257933474698050584474571167832806702226605320500979071503438979571757038050668815921062386827376902070933881626130053921948561626241143526731831077291085894051107313549695242954258824869720115926096545703086793178721814422851884695430157404470289430460899338523845698635296054904639432112707092965231135415792845514652084045584577534718316432911925893153029307707249000332912785650871524899415491172386567105412470580932618714385546935057079676695692219821365265053340218960161062177425049203997440419470359876248116760553532427120791145704177743572495567611314414774427804106276362054737391954570768476621888567427387502986386487365343241264344747462696904263934234678541816075565558416328511811172428662317702739293910169787593307310458999568279250935888666222572664814746344814600541072132575740248594503562607992314688403803677447411758958634446087759313067127078960546427602682903523989888111160651320793818696081604580441720699502494703875699256160916965696676751410502498216931223098925944911528028817734725841285595342198481287960674733849136992392391347743368329042302887960130711238718444414406120343023940037601293865316032341341687320962354758157186050416153594095307331154472346235053224529841314934184321308982344192159244095226450874735598828680896984345506181506487427708584066051712727050893743650990144281706834454792207010996771214637121681267435008577469154017171098580996366515580347404546260199624113215197087709784532044194809248744824426550907431637228185852818232210528427829448047491319516498919909116984740233545076057744464392528249637423974307546199132739827169206287197860198036056229030693404935058964563524417045484529495751538060560951087288964975241810672429235565250417578853778118217387576003884719433564080375707358685759025035295432599742070451342200446624367658084354122607025221842229245809549957503396191179804891652760993706376871057431762889105837950558075918747294531286867150710574039412609146102478174628177291204030154565289945806110811255005110852790557907299542517934716270944513405113011570358886876454958484844130741295859593040212515057955330402608509984351144343310187685072447266952886366728552173883891951140741679289072710774137289228415948578114263634785451097768564855603834588326491596382629775195034910838247223056689278217250304284127359350821641476666336013241921277196377348230369270338407072587698335120569995601556623499844888145731551530718379650884577550009423828544595216474581470785590501111901533447114846348310775004185626178332278163803668811488661709744952236831383333138798241039154485885621139731969107455888728061260536025556187843738480831771926884178435107841980065778789967272773107116019608026126777225739979210192027756301849664821743938368567091703072157218768765227341165954966432074937898893805572703233666724758388180998725809921626431714585933124910149373063700897029559553578421624639184223451490224197656126809084050826408071750641019716329411970522894462341622167540688961723935668092080201581629135037096107652490443963792050838526670528452189667339418726223460541021093206372704430099129925535337623583742007242224893707168185380818342693355900293593283684655154908544640037418657890634029091729518425527821887796316387981167597234686827347436106263445248766217918531153749492949009187926095572863495191351301730190023832357170412047991816875544901642545269907671932374545733089124249983288185351851844381941666393067780814618353940056493008334200325480524233200144591113926113123105408927520645445237420204423176497701780334352293725344900937690704355857974891712946320196322982245420461458787740467398104632589601721123995824914877721056495405581011533108789075365944922109799793905473010111746322110662631893971798112410348985937645965004046944089302178154842550131674092371664694551479779833166906146298965012910527308801057017415943293016574820970422864804318930147616965585829593464557031822565607812496383197958393751366760043793578775806503729744351162918596994865638389725907739093463488717449774734557227804090697007663532208078700747131647903548553755704590920473536787490840995748823884519752428156827406401531051908814873363714765626814956474334242260252165350364448850533091271246324212664680884472687699532708776703760417300632278036340098808337727177920922743625817194141869474408669967516879013151637988141426459423089612732569295801426006163436698695434959499659411074598603022208527685934034749488411509548692553912394056305975945639043723723125337049101649860522706060058450108704315432118624471361784041089366894947107265435503557235319451163874148989135294398572020652332603754535919092361978830547498533997851164615512040356869538460153069090864803636622461381763191345371480178974178250703197432197203907864771425968177410526477680006461612994950201009355834616885979762000322703222290310264603584948405741976121854603356261203417515389800438035528425133016521521495754869471790677124245504029833001389046216251461497631801543828488049939885733664672003330913348177327987474712403943383677371529204348153632287583573048049978747842212845397835190206189064061982072589016135443937825141529792994996251591611443515495430785914135569544843199076949274490924888183859689434370967557867795875713697839027729875678634104519893980741463250310537500945667808080877025219701342809508073367135411907114277246641291835313164298770248502709808634336999261148826629328292951121857991769402557229077526660305162012612773913203716640679794736599987926356400434724136044122691615760454750407747063164758730305395904995333978642952291903503884713552731523188272752689832975319658887967440223224784927185386118998718661359514224775910616951962811782402193263724163807793286808957258994894488788882901351914986497892478826707174823885532425564366427031715091400774701628729824659767033298603245117542421148265120407114553722665207458675752400241054783893904147422218490715303661915995459458801774647993039537616667519947381666342758337347632430718227622452900193002070660887726269990632291726143346433227377784478982445789225832168746488009622041883897649129574993756344903514322735234545078035694120513007930042321833626673049581256678780507817547885320202605976407071142056330054765371545569790582892542931263118255611837619826323365458648009131781618831785792062264087610041444308356657211319492294660463401852546510002734566098933119360535291337464826036330573990422137698022067049762039459723645261135200030042066698940538157540402651516149856161526700600158060867936796450355788543606599629285043298932648242749620747994213899654970093773206234741047078456596538525951456092875226081531877548502403869388582989570704434958639510020296898632040205507743038427691871329008728859954061300514480347634343005691310506166933167853949547783110645475305362983302862124225162057753345653509147536465971080227500381752479878224265648783663228365175617017154590124401752842526603272676610715930750006425790722103402507168869499262137194628849293574509580698342381575042667995967041069275030536816853098848049807154692344729174300901132544192956919154668526477257134014567563989890772039125953280874743777064793215121297511486308403276018606849965327926447569482972020606739536755690651798878509859258569254081570861033223830009043347174152341726162219619987602160040566371587125409602233884182201391405207387849693103522451154341903538506913181135665731702176183200024928937587174705092969911136217877614537709969586367644406159888117980800722562730707767479850900462812381719514998111455060237371399116666475408176134422379930871915252048857620980038440629021219969814711594208212634069879447139381850082145659892936005676322781069011854827310610566160806752931956241044839601030615679839499002289835590323043033049830500699035596697245453892688592760381333963728942861679056062510791382491927405823283564103532243019032901251918589928754223186160011124539234503552619662498489037340728000092577009021616174752217046848891967787985104161042633865020672142257086480561949423418278081691883639547889104691104394398869553382298200130410769499238826154167976503222481840992957886406380018469471840444609927848474927383417113266527805791650786812164584050908944315662199131528344864334584193020588178248702327703665721977560344715766924966764314716299375912447034913737129177790511896150315076899597372639729799276233469074310927658427292174107835376032609218188113335543558129219195680300721180345952143684039273190035124624596973408732164930242923138226754536850691078882149781516290646627158172655918270510252153208902420047136291267788155961986984006787105210884822213700119081877603852208046711535368644590816543439826568267645780976224488206287144403814359470496279778515675941041260356913307572750255894521031701256610853405787534145915345840288374108206270234990178343835032447073800085249775612817652511978197883783964910392024620890844134141865048190086180566588634739818386392507196668516058655591542353140708733958925641702392899252120098421489109707789504924670501990052853210382498966755618712097676340675390015956428622384797625183600408978101073888372252973494557703293362788647327590221948703213910398084112362593789494243142500544452561413636338219253915228030769879076353774564286652407176270698143399455201881373519583430453909974049120364666781994373667233488138211652355484311964059572097718905226016020110087491135675869943831006883052302991719291943433648291346415173368168540769435875502957968822525539649685941441192109240914769401166804444334178137434079143254178793029611310312636474933082304085994672463158716614375042576355312878593819301997266757959597882840340967125769410056904260574563271677616568342540312384560578000337698442163949871492782222797286481019464278492400481917783507919199097456970413049477042189948483136128699040393811907721388302912881761444871730859207378050469499889560070284142606403631937314715011818755107798615057778113638850468461211769011464843041302224397470193002566761086372244031216458994478222892064643771460405180689549706699938119268472206547826769280404590264937893722381423369930905014190068155367490134982473026472755134410973677988181722472356155898831432883299880103898685692126214546399629255930300138394172298132379078638708033468121333207999804339403476954644291912990676925625532472790460993969359878302553485395576092868155175365608671173024175048312494232558412282710607643748451429210118821797722440131952476142574585767216003883047305990410505673394556423587061981914478990725249231476967993502180897226913547284129968489671725411116036059647280898808022051813770414824261976110003795075597366448468212257167303696347198760424838575373913667198492836066940034800288938355210941011066056091115172982285228564496740225033585626183077192383194931665268217684303550779051269866149373757377136046997148976080122904780864514557963489972889628466057943538068182593504369539977520510607521345909213404048204363535770679717614574589288100404809892088674304884490768931876004034697452600932530763236048661100198330192180522572158401598819327356775165635854255682625639249500347292456913299776666522868660630446134560923909632705528314221125706807231441073575968687752253855326090022197389348379774437844122357672815842381762547533761415437009741034545302930051533793351294110732161666762386266261772399245713177847684742663575193591056973072494563850061447833028324511214063312230341662968520302056461692286380903344090838760184049971839836999580006413556994484642764621389552485122192739719371669800106990516423715936626847041486621496176419468030560756561559916390256715631731999389115874361702969401996290468268668209818391758671708372922491257911339249694828573956341848824434578316549219059829361425992834253983645799764358559717988037941908093408119520410210886544698987532877573564655538396465757903157825445466408104740276982514393575743597247992807087708811556214498541478190800390637423019413322789838622209840819619154229440042131263601948016846398234702019606081201008876609701050503921696447595026171504905424386150640972076672947123928413676345779491067493240764303791596573805806529583181568885390887993414106792197068721797109994898104046168247161662691707326877766997075347599799450647042369273276590790393037516447644685314672423491846102070767698273894582232694997222411735097907411802973669411745716224163465203925434647624600053176033351000998083013728955019791553314001173118341999055333128140192771776598883153005646143195788224437594309206100306740300682595770075629707713938385664391632263841487375528166272616355930056821129078899683070599051469397498772106158195884944142696446328894444511615302288526866463526852595799909150791340375898026943054950686950001150022301322719266793926691261626353444635734495248206612746278375273837748839352980830980858968817787872358952537858685966001714009956133527000090362955852679614472215586467677952709323077528631296131033565978968791200711195196732662169170539872897929700011901054064962785129032971927000869862854258599055155994885628598806625433338545339129461066321820013611628452539196735411226700899707819406211079338066143850079368648451047157202380142276277210008012453510485131499510490393376692787447230962047988221809543166865128457482740902959469895676410210988259033347519891736174881254908120800502581031916064420977895562549665523511174681429380225545295063220269118576183536616805361991576276568851557264494724542745001235635595767474841391944173081689329312119562538830554381220427151613397767560081420633188914295001849834378983438506182080741518554907228357079339837633802573623083943926106776239134899633940005277871198688434281344295201120624799123475623465684198104290119760528691844490071687708567259618272167465025039255051927085958178819601403088309318972606858350278349002335177480927860446244672188804660313480575675854500366592842546468219882023279878697340102966297824293232336843125598761571284462660095576518520049939227732680600242382329469685255135906633606323398515794048195634254303132371491507099378273893713576137211371063716524687053345949664579314969909775383706673876519042268167686497724642212044187250436825769343411204656942324101786501498957316855435642190063288718492348276383149869368472278998991750642579962994150973708851748359278957829110466576043171398007280258125622013744253537874303486888511529894101968508963448078787238559636739958191946930182171993221399544374515216897066198189083536293903137136425483159849153314351341136192591195567802712453874915313392026068315989845431087288289071897905413590609646398892670225112656119685764451617000695298752956415186455893528348649116577273083326583814825962536043049030701076616900481979764348404174830009242076520527662959346113691086458651772297005976676251384680390658237039160118514491819681456591766219452152305432497768262481364971065813313647874824691729454959415092781338167339582245792877040516517006234347764610488789917248221703742198952799052932433418781878297172766058222171970039184799372807788193019902958094702122503926722520956498480552330298026698789927120538387774662151430850901565992770932051145126452817051385845838318707349899561861669425220208722179676499780072407686779796246257186563843856012118918725401376974988149028775429096233568449894298582493036375753144203377969950000200699902939729439664170037157664066186144588757578875817117959290836449546560824946499603932190605009650918352988380591342454373307946126185020660957485338487181364841619809499665557454324927841374029645627214604526750642080169605993661350833941307836121374321457560897985553081838421122390943876916577354624195752297099885499375350229117720533534513702557407896898006976382094627504218322640129183452241734389255653172519246303088370103152569952150482405379736499611005875018777655154855384946120744423242642904245428292000982633975562232745929539183570766008949772226316312048766823662737608589114807207111485154586446016744400706880601929469134456055797127466618782488875951899531499977108572079249128677519840314478633940534315008544912188382457544081367653044431526873539838540473581766054919412933957462027155639715437380572592003277734294002311022654960191895674415471576077874023259184669448605734443691226095332483284484629100024722622332151679725706211737798478501182677049996664008113398648366131333003589628570560619861254753038675729551601864400959351889667626026784399468431394773142486999209744220467162276593937636442596564756308947430693393397426623947493669448816758179972973383407769735789940190237842236461989786469393224352571803988167731440663341870052391130021201644590320538926189067532946556278094617845963502449624708295043802758309996507161784138836345244918581187478599602958131756889824722701440250005041003735355921835756311014890145274282087081611124571472847954444725594423763373228968986455190546275715423030972445626789337942464805324257687442043404955975143303701570662243429890898381703908738627084197210798006981222206574916097086695282650188164684312127851870124483795230476846922690473377210214717861384106141963395271926334126712209899729900465632450582118350433779979961333272054729967802002662972366631408862473058263601034830920457864167645501718064102207159352312708353044896791016398668259208047459828527688214632452246668990541447768442938214375253609095744119765529090893627439337123579461338010887420285413600384450669943668577098799524277923025476057767641381428221324913827107125436933173918138595599078597362623671409612880324477961922876335316800546668662991433891260863233993657264137903983441133913203547591180624125056838435049803537505736757915456081708395759876945155959939868752744032288656398581923452651264622472703680120634022339098504438963594538339943995070427809422500445251101214698554650502034037102932938223429849317757458217737075176821787327447295065781114423896944555909822259490858470883164960352504121732030945144445589474529666075853989516928534248282146593105512839416560259357686002721554699384534550300833478773424616947856242695732428142351708532067630810967769899443430377093947856605831001258375820337222518689359783736510961234020525915710847726116755066534336671947632492190187766400025376788166852707739152010845845342458533279833681406969020583262790615933553445335073430990734633933066657203062916058123090065251858789352131190570340438270141730906857422073538895619077175673107636146602831044008137577060296605185745834000046150583956089827286722354917818780136225117538852480537043626156637046163811654095520121523609818682174750873671321721192686173923825552202201732391300462180621966326893632176574835012115945134807149027059164070551933880466340485100027857629205724212229851251607071382710349844365922617159413146656751696114710899540125216725074759270027660195592076681583825122980429383570572433538685016425203310123911411293322750438693929210196439438728654141037653220762909319839347487156200028972340970399422613180873109082272345577981210198727414623030572384478283710859185627420026390541397799663396081882532864342371113052104566457417899047160489168946074843058176472969812940288048244909893315760625213668629356267053926608825969323583009905656968380536986114878302756944290322031084507916224650160641475900342861305687334956272423703910659660910143374350756730249174104306660445710523892174186208249618872129821051815911091740402594496378077078484886227061801243593073380263824874289870241139132033387087529788086911837088024169525850091197789773583413378252724558180563285966883248225735558639037961349934461811975310853525196057694988703249783157138691217210941809695393075404468672724131074879461597596070865109898214081853439884433705732840246158641116425852626520754511497126343695987080851155082389289836465293769352574111555639838433455217881555304717481090944418068713173412413335125624754114897177651559715826208202552221202527601185129901955605103263831636622405753068802855354222529070202384740134779877135090925179524419153075333440744921388182433340690716202535875634084486424424551447922382672563700340853864224524091521646988510478282658331877433132542894937445666704559035964367976450888611269090517001355966432432882578510191495985303393368422320636802519351817388705477240365609539276146890714329138154576990218423039324258208980898827835748098599890550630190197256791121653407608808220642986297436247743023766161646632601328461273751344009088841713498657425251071228258347528133647286920274643900622083836995327633740572345339122330958268530338844803254605553874208329789919504400773581411343130304210493509336000036958534584945456074846977128826796274226126410711652024740195764820604370116311132719048375724216603151251616658599852286426611025254474347471301404732485025506860784675634374243502119986270932541497591695806078657295449977980885117480032914548725108901727504966800287305610504032137987288861664868767024842189207963457572530623559759731126827253862796417524586955659775888071465782720678469845038535114923435074688196793869089614533612199489149040150189871489597448424139899879403552257498204927166615058683526834297924973258708089488533578845361729015009440398131757424276103604150922276467218162072961499027251858551918217356688081016188295062977491497761832539810528443413225793953229132048572179413808530516269702766929664188962292778747994936537283803223729013844581882812238090940972006705366678570641322049997123722935568849919405167894516938175697929486104532397893466000183588135904234358231632495661972976914107157947730006495063879598852689619156234989930583104328421791592110953344687120044211298827005797123281825830366854247445055654945710331949730923311206855438735521072258996736078785220788474825140270977320554599292836316859211740104445908560282349663876850953653852404080887357023146317618197521022136486017691305478049443630986080953066825004771803624049898542254780437685911168428771784151063613064789732155864739761580244823091383693124529449099901865815811391326925839588257544706574688500439479748543615465121968548155268765740669163681546359324867776843458690098871598019230890999473330164260001107369638724890880614198106018641652325487192109948740977875002521066075378418950410964170400787365856250627258576251613941217772816886127402925870375876407072400655040711135673032800879003456755452404969730778208109057495515314619873403591542300481096243762399963573298200451346539943107172351420676641414362276773664768975054541161900008129549709550784596810146136576827957352204721631637952320785300635021610589644390615735793446903002127706658824300648084803731875376234561342888146124270363193942056925375207092364369901027574298611857662889116287695380855911407475536773349566601790641355500374581805528953865842118713681259857010083097383442794170417180432648135048194716145152435959940625091062290502110531114939985491555607641864324478584600500373046171719924618238479199156186636262580267876399727892486149316642105010662816219229506061753604656305971836787434416519158209462074295259696352582050960817021267406411731240206094432787604394544086023317231709223712201693245592359572235199611309364472112408421288673786046721764743078507423776587281866832664363639606826375730009583588460639831829517297319670533504608742894991479386125889714779058306064541515359099614319200492616518116704816387478502440110360342218087632586632166281417355337151419709568463638498188620322956045675209295190366435987594638280573079769667581017161168526253266350778477349711686254633007766212218036699677811597186425979755013887686357734129233767248814963045280103492568586697373262957484101106037675207779071213064434416462134315136387885129159573603945545638146361474360474710356834714836792741292047496668077876021761654432759534800982047873676012608405311202386946063459390646586727130371257584386320158671778641453880358948936865539412441979561373188291799969679114192528385026526758872165609806720226932555822618516133448399170099316769299384786457053544341207819379791946490757469615688585488770143308399775874688278846800406571610535054599367425239533962342832399245371245076524781005541475279835995967051124197348757586629723957276042264272908948321601548337928911699827925170298885804388112666204903892447837402730370047086894598682676621348977691774304520025676988421063264296488864466761711027985428024450922147651611465423897311048574274308530290026697953618054696261517737776919702844032712611935103748978245082860715308832844845627333232316856419657360061315514144212610514464864016659865615043441439146555376235269162282541292315077242356110080339039936700900366000301016953137297461825944395615683553711090505877428893345900957659334089279285363762085351759077996371297217888874933192693941758878068592295265059661279169729588125001439762770141501834579561967904739939931043047355997530863485342440469089788322781863460999790248023008447429477520869355657789317708204756044244912647983967427671188710418875946197536703171859787382677701414400766049943637505844496384387117669057165357229410263627859100590784601598539853389203345499971853928808698889367849408969316541761053709628843343831253778594630321304170329490846964767367854943726069634938774750323841500998608880709842064584492847389804409883502458123036451592718465984561682956721057724055267187921917589680025210358674659601327376544652013291730257215532102783065374283694190507413308666261601020368770904715055571095783521365153978319835962172851838343477993739219665628503600178285765890916771541881210609399260736936685944910920244000860482701720664783059926901473223177197926950061465038262250502693131988865613209335029059662224457197721977805644556951029423654809491729411740501725372382589521256653435770848778767599951797347662257560165146563304154741214169028640927375242245405335465725312846413965388058386178085031691407833094499245942306532913267723703826236645182181865465811741263542832260817293114383699343284208472416761780380042225224116081829218340758245711797433379909541047733433556008384879313510663828228785048859758770926546045967213752545018989073232302228423322945615304956184246060441501686730410589018058434034396648341498821041224303495834610581795128647957142428581805310663177793671656110206828309131839864085661111620412346514970809353252810605566558190607929599934972344305713959737823327454873317286343976498493643534608431525966488175750691132920255872243218777920076250645869903972635301650859369654999579651167787944869426981098669884187553819475040555759102892588846678421140937100400867280891295888124270979872540404512783006633741449113565084012765315192350793346310329991792256768428559539144091822806856945298204624639157862843960192409383759865137438531331285497213245653449319728323278937905184338024441067180327559627832419058439888285074032992694592369423087879675207327763138671652346058577699008991308074227988571059716520608512779961150146498397002391372090016616292979340375386388414374600413828395577388410582224301716275044012413335188532915298232686949079205138898170048256862622158475045595664879834940593111199319626358434609877949189891287963191917668661796273209000760882752251704421862296236513778036563539588474364632184066122592071894077452840876387210127650201743525057055659402005502197771468441563761464095232679416376681543817499610952139954651518903972454313087563851285410718711202121621118233009757023965147487052766571271778443600604113292135928670237973439545590764561821118719589205607599524783156439767128846793668060099980288971236071372061135482692018630330930542566369757078438863454045264407805728881324021860419214321690212402074914760890973809056115591916613594037335666932511862780453874270318990818691407248499143703498436086852019402795111289859463468074126653569300405381124407668449078920332789202238554042980307693526267267026576106163529969331073967488175838644422989028898548151786364437285890249313793039865838118151915905053357469585924631376816513088095627190498451538005014376131406334415477581560379967583361159095896535456340526897239605261434427186611546551439111655775958345033162415873320659338719616687478612322511864994222490472901532380195511845882798382725119456931013529765763010741293799559631777497943481655170087411524572343732681018666994997177478899790398638155676273597659209769111392704610245433799352138901734159273004258556909841890559043206784512390334132583657624535446735149818662775692113067725194755431085707605132426263415308150750117409742530294316181566114227988453294892659413048325708026723956457085960222396157718347513054736054957007534757487844977350399751123280137576298457227783520851766543049235960591648829152074608444729112134225517997062435918673033342434720025709318117382493817311201418749722227435254487494623008061951159185075438831488164563476404684955619134961132471285928946621498052436800181952741453213895878922482058031376606662278285100159704114956996595908865052519677554434345743634910220395937705063060755621443500336145698234004790887214389264614357255055449296294657639087302827096060601623392235142088827646136176461964732190913516999991904080110371910142704473888901062187389456344996669282866736100665169348382650055090151292112655506201751993639960947243229645079889458189589298394744198133145440614868231827352463315681177248969758676889399237710437232670152769305413768580137517224532152884450208264309195504422340771193938692814461593457613267164201445881916492085064681463789274345627315819256072204109934447636296385748619811675946147196202419225470324638650647212228394384503500334883984713384275143979975168326534143899803361273041824238060008917789747368554428779145393858561995374111988914743784564848282684689955893633862346974132259893839368634724671388807158726898952812537078026169310945637780043196384567291070138604639900412904858245397808223543847527016360294677294217297866585408602190715070065834482010457706651210459418916851626524891123314651001145899174024958738502826664893629281488744552990579356546533304713187794292435381186022177288261947544151231600783378757844540976024208970922183920342362393643562685096800767599490686620541553500547478324735114347905076584282416229612665789247512158990140717293879857001415292797684318733777156492938106593492427828954453297869452687368393802955856677728567667756226807395796250819749697154274626260772106552342992524418042865048715339667732980620219516873097840293059554969696428658720248360416444460165891292145241261616845666054605040257459185419303741904474516651023882751060396399579787692235976810720154285620508071981086096521826096278710110702732357285343845833035164743282977797325679339998605122201504538568681518862933800279889092597093942950603257630207735715774285509751989934433949938921913980620069582987537218649379000510766455011801315770998777104700853835445588152518250211703508926697796201817682877171059072031287778522508789683649631294222845680122955353646262140899553196655283306004820705532147289799301780906196643588456520271389506708207104322764814736882571808905183534155628080331193962023464266362457641358162707732737827906805529688455951500751177286746777113337554974218213891814179956135283979587912533848700052777872517870543111107485093584215564551868848716450223530090823382316943857102464232564726299219899216973990441627627452800421743871625311597240196197539195490697723794221457465804894162474994204781151474715653423361750320682621591697886552917688633383189091002054559382328225185440455462466303931633480003421093293183803696353350846148867557937889309833286688242287588260175607166165713271200227915219785163031910279467054086921569401200963389157114575020760459266114037879450107134457721593950601962178433812631684287091430405884893448351570939241620516187863073752218201074721889059244644503235309459144365759225677242528313253183747498899110077398355611080502401828391696455883573564762994388861778304043324084277235029525737701386560543989418169196194779211884107375442892779017605110994039482403575206294910560952496642227358080185598592454172427954993018216587317683978103631959799407024601949358451705641786428341952554942307332938644599174401105377798795007232243659719707959308892193383223912280061512236744007620970782463640121252700075807585182782099470533945588665244023445526998363160105745138367986262376359818652066650424129358595153579183577601089901574494290312061651464113068358652572086729165981581472522640719065438413377674871525462531949473389479316210682743438255939652021697763878078862259530429391330449162555699916527034748417544679472389486927170296535933540237421477223858872344028183540307591602756727503480854866414341265324651290605662079264787316428595359930455381301294712642219313735156479920964292491947539261045047805568335420112660917879202833269316650703883933181520662230830320933502944627117300274931279182651611195233669092424841775989143719755528311484546031846709726309744561666120395514874158954480112389210077222810494091218308074010983901949496230571803519879359022611092905764132292545975365944311333444065579521984960143892246069375220376740039424646235823338589141728816425220028537157958410423746339091226646164329012608144696746863264767177886729871849885471463618158999709609705096440496193941862540176675448263799502549875224367602074679098418637553924016275357471616099165072310857548117663536818666278546963238069146010590081765847649333988367655091547079662407079610109785161216174467225394781869684345050161393684861010391172863597038517521916952775400358832656880542582776780213745898714273132121183751688644414233478733429825102491785579013656351192734590228889706638180867704914411027744837334234596410051086002679045909778358810001463802362275036007363533440735532594890234142586503829638874999085594788329210402417577415154645627460303153805402282966235652626283294490711696471732894295266325856403333780682429003185140524601559054799124575203063077134223892143949060352715779775072912060150451025939592642249274741062975589134308553386398874030601723164043105558958970976470879398554377602694601222573992834379344228247870639597578219153144503262563398894202101662247526299264603010907944807722359449694902827256062716847095101500468919705960709626128084111049860051137973566796461162180605531533585688799409219983437015737363869852965701991382514089808074795309597209408919227705300682393106008275663320093857654787328818393061839752369772067927837766044016442195404685232367639142173221980057778992215581811343161357896597321365331227628070603034828951131897790979778107220506179774779044417594095379494151373906076626909111292383403027942483304728776860709879212943145995807560170140683463844470803367739647360125165426295054315540530842590584808300188776185007884558943344195851470504951856624898470776711667686554174017918463290608365216455193359065095607634644512070380920807545776937411402154659895875303634628295188360783180937399821671983637564251115720194863505606461188427244340814948568149407827870346332375353285311122064497913799492343009022009547616793270008576504321231459399654356450732362065939663245599490415507766248087252094362900503705478370221124339825396123882409237068938776498078019867751866076339003701903578031889885451334696747221084325130768206498585219833378375284354121236017376893380592775529762601607039072422998546499759991835642206220466812476938496141659217846407286721257669584969769350461226384633330779473288573847957561922019116428057766956770395149954288040001937676222727533480688290059689255010346415152115909086131476087557407118486672172144048347036353069044333601200634194496368039446634359193367634362971935143751350981975006412847670902396563044222409478127584834539200224059252393282397311627195322616096172562287407973904072074769470767887525603068385356916280890488803058664056809041370944198207641254213845439084557270434437302377018088960648876591536831509268504315739102903157726447606275680403428550594227490112285868379244766662273674862633924592810807430343506385097551028394013864780142043941252425278704063058182112902749935345510329093296856031470403157649472701095188104878276909026947549495202321162976163317674935138327735364195026099310793061805686643033560750612724331564652349952082815025020957749964993492498625517383969199888440565721027133469749587883968006537898738382459584006564324758945047297107993112872439069391379908044865485496191699468496957261048091501391154926503115811806280266582604553214300763327958895568967006874583687643884674274674384177708731717975763366976664584878874108555699237555497392893278363982124035100670801681259686989068698330580469336773582241418815437498963288452327224186268464398236972606584305569344932738528050575458518710944233797441218258941791470403484865418154879581557370759128931158576479279754385580064792313680834200886857605592497052477515677879845723019049954911233391290424128313461824350249776913126592008193172452628326514917857559886317214176953430674345701123763075804978422861528395832081525486044596982312819222834938318642855932374081917907910695173111089103850635955946176836576215902219720102077500566427588051924539394807752321574855464939351597719956650567665888551558231270103047000049121425564460808574478075586073698854210034133590340524038224915511106470921455921009922039597165702895915391724037278894780907810360384406762480016131108882074387242798957343479497167239350295322583829140213225915898981893864480722744907138762456989087682374322560247550642365180750670883664825802981827204672691920330072771938935992237830246446749281419478142152961654006142336761911093790529331339256939629312376142999534489870438407309280604411488107179417441581151407127983252879291610145504211804422535766223471685759710832933769552841578525444630446514169197529387930313299423994307338790204687600241175379020772122024639137277752950203698895809381308596922121792780283619902654651504328720279588318380415274805502410757828278680381563521720492407114480729573855917427305562283063508885819066318775723593290537285569089948924719346147265986363619127423920807815855072872085265359588273565747712764039759772132784501876768480974028488929549361981189749233279719944161338867771011352524211851605508322781549921545965137336737456483323387364310754618369076211268179545130119861895544023172795848824110886777445471199988160888057713252785121858922447902738635568637322129540550306120301803772073908109003691890408019813497033860245065785866359750934366359475220838793142138375357103901744109674198680804969623898989530487203139186282245170397221674518284843520114147570569929756522352658935361641973776626515641187107360737292762425296049028008853404944130764149736435894411308492528946261125790177163893563384144427398334153680384349769949249844093313891739319331489589015647109667634716436933938892635522978241561200101122112700792501160916761090808073546689509611302483009800308165468999079802665942844615666495751381111595125446169641110667743379619617331591715785638554466679086231703423787767346035829801871851836761680295775676683235134760836592727300303975044778517377085119955181699924553289015642543025593326272094326401794052679174528754312817639476574674208100254844020906760476960760154043534424950448109789240225359098007134380892302635221335285508619661496903155593925338488283506331046635327030112792685776266992800025242985708404095269869155648423912508746198243284616978474030487615984375124903144739783889006682590432655685380023773602463458681820744079050347922027949042646206794858789535126637750840474599240460975280685733720640149898587926431183570985596264809512037611538488660865366196037194903440020282727520702664310198813541878310018303559769623158937110962107924807842346184952504973425611436475351652583816038030613980829269410750750533761536790306259589921993321276440575861215070636569113762064718817204106347154226739924098091143845907298076230074321553597818727038455838818421014630909657845281123996172781617287972748685142349952882194505204647621041958234686630492446805339139170244516667405993252745437746556044991441930748232576706058800934679805802021742469267834245496185234066075736617769298201800972208013422029353239875755465184712679328705773526854556581336110347957685504942059250665956628038748479145261726271209454337618924556181613801511889833651665479056693145047593694794048489233151906207686475630883672535230124937401367553421118186917008815944835097511768420755295741219934540477449183594633805543488750238231398408648413903794411212869765774997248914143081350736576167291945160253970864745013391455376570646922393973865889551039107319515268309993540528375861562428486169002126456078525278956483336551570964367930243185702606720159067675339616674337568036216715693048409123252233322881110326657185257428496084529614218038466953074233475152470042026177295866554748083216563388004892899495997208421550299184999723361585800581070865055509420130428043260004197680912577935058867599499276146532531038129371678498648289506441750630296273020695729517723292686478236188320083872624201736887786976243791895123493580120699946308603955269352317283032405100160277780127484527673781708391415063061105010937720890602971325617821701103883626177550666643541506592492873746212036221492588249936116302924456458647353954242629311458954850095917799677453513747896654659467944073290049992756935043345496612404477305777975768900557075836775776248079227839592840579086858787568807725978758041278440921382021963795936096162138105502730196723918312964427679122011849201283847964831299099192885183877050530882031173152866021115857005515369561046157723096368837337841078029870323905514036081513515618734893734130205402244501425715572824582239637043025211051230876853286508924626174603158333460598798546023351843134417730913209945462157716298669736960067688279030790011322736930220537554662612715569314538083651924721602950531691461030624936988870589015141667853568478115899660743465568776145570185430326242217516166218300559001682230774469820461244943248814506076431854162993315154202318210962224714679192435900081326458761937482023880850118431873400377273434177726099485303607170783902760481279410458487001397274807341133649233500332470983651256985439829363772045543348500100173792275992810724311344721892055212317945052074183239222684843594655113822101986529337358772667847157261549388914587814396524159913120905823382255371721151189322169644375730512379670507379036634107265637264594283548376969523173894329122670780427934761573616868588585719264762551587557494049770549835212135960066886877422874452212769672997047075160032704685178693198890919609436694306758450242524794949553065995340277354745937776004076382771325605536631889516571750882241297784692724940346165991559904076569471100118402332484881649709712290367011703074561968342769750141438316961926931207844624607909866292550518609392849463707410299784540452808694329233547493027546800661868682242778252560633340542974105111211891592309934280956857800041848516047142074215800558944963173539926589260578064418351694990639341756657469879049765406927502981576017442190870357025808239577334966848024117419826670779280255509654527305016240040298927022425779410962488988123080278468177809467460683347065130845644610233664283803955973867944171446280002742628790283332136759618634051782694567761123225777931309350078874724827034893603605335043392774525987326062085908420845906900437918579004474691580571399159069296713269188978235266513550250373464435111710248429571329741968424173694261230933299964767408378232470997125860608362030685669988536097198066917346536577516960139494063636013197063507653182081738305386791910703607711129653460003430386163621047961483338592526472854851185526062985836778951338085345800547098487244860536695748037048536414058436988666334016482928772946819763276057704112571226772466034796559771038165608242477255469565112964359611298344118881345002806327556648632665542463744177996979077436927084687915000397185521833831791224189307341096625113164794129646827251377118328184239222997056068572256169075328883982828383793330070846205478705930059208942536864583177667778827650225591478426833499953944448747683062970860196624195498659687272201365323294130338712525481080945355191665114692413220020025308485662994036983563995660495028573062429163965635720976844943126625040334756414929948943621341523637909553699272420393682406644143480115036390911966574123524648098597155406219243678568560485880230135543183935439491594571459655017258799898538618331945015021150798286622463968519731666124826805374493138259009255045805522837954908173966762922170486974398170414892723909486861263767080486595432219923114316236597440411458805931175431719524827210356704377619657755327779438633286247970767755430893775906068704941650614554100281989918985771692133686549304506722643569028443938029590938234234739734840281764425215179500355121984760499052988131738449831192729588108455537560389085032644632717559705127065112341027209202963225021018504651262955538302495089293838814134120953146222327609776000849485763131502067626199148792659656808082876007580198409947291015346565231786360200638958249234818555073305152033536955788118482822365495111631029192499043718030454987219366399226242688396287278436719089140742485960551360014664280528601125522893663341951511235432452982267913577291424107655036595510565193625812015640816995650199450599756745415841148944039414390522741521882259782285695209310685348564318403482179265169210166769812246913808518864060821327306592956689670112895852279850217865765921605831920502038992441257542841892016741887107580236094564818252835341090276387462710872773082234159428376250511855376072670634454009220936991561546261394481419002801441254328571315980388101932663102532354084035776591253677062558600079867431779768973878370704429887000633971860890774766345706905804465328736517007227089086105503074051374896086296147742111871537544072497611755299317517509225065438410880939932461530848399104392837952042984378407311068725518260782478160191725863317512016308739192466449518979771899259286692103456753657983485764227603746037703808220515334647162929339352977696230496513520942435659763241666111185248695143054849699879757635026441031833022496034931162523416907725975729135053533140962100369985403945917803870491255364890284728459278144061075241198977887739232254899385295749081325492394177566235760301433910853774929412401420306660394703778796892234920419910990527617532771353511858285683257378740416314389088005484501925050450615465657930162106214272822585322610395987748097430422001265567849686523215489328008933189385326215574637685268035525983715511083896461889013688491613945279824273670494035056840206843865409908167769140290783339172253651889748998524609929339424765142212996432096356863119928703181747860814846707767013304838213465367306102720632498165990809920942046093692504387815998317474107780818816782400339847226063539040354880151320324897077210981185018047568523254113231963320708560462121297598547457228704040710368261115053690149467726646529094370189466616089773319559327730173035505308413671567816151083015229921181754938374771914028180484229565968000699201311367136975489317831983282913858833655637776013794489374114600396105216932637405501852405119763439242024953084973903763089641763428039469544424871807460455993605034486956256783319100386767248114039783190953282211516385263751408347763921404146864203641121489600487294266067034706448311982897618345907942880411690322797623493245202596882496499085644138284421269898727594845253920107156736916591738315145930959689904964591981915692505374201246860795645532775040350399698324754187843920982877648751571765316300321937422437859980584795081807520270083396101845606609008574923134167886907672818295406533143375310188311522910574811697347945905007153560520627837350426932210290080909616107736729398923433049001371991565021783530046325300770303448124067479840223890420535901922562287485502233395771212311024233529428339084188520399823195423377270529448533348743881075620459202528223508865879921362470328646692753694215277209151293218381618541966566350678061421715083587736509368524457084114058189552142615862856879083379019022335872613864819011458048505085363686360355416548319983283289598331634902607913048681896627980015000391714916358202030519766308310968301800125386567075846249758647538640636091651695064450414360662357399212943159439439007982745334328208283180165988434699749244129586896823400516127757419671681085677791028256718701373214526397612059190819316148635659617787097648281559151833662121390847092411809307688564059575415396894083878957775208594988493457447810275029645213095085489777525026713352665912818053461759443646335696046918990922874934142976238597488706733216902023972723464663305302682372516464863878771631010105464752137647661087320199398539532858365797258492644519838372528663586000662378656453320442843422699277886743240930781826979607784483262816256151906995351778639764657369334763194406775158298461045223537191477453956046248398578282801104652799531026051130366613454301629170961378649621079789269878022086788092263621537926562718580723054111635500368146615703402598273961237252575906334450347442955895844155099816710548136195877625875065393770387287480727796120111485074104756018510806067469829994904887770048651406363820843712101389755220423570674598842332637284273540813026978456118849606634210219187085560155280412077197393687416152761863695895283356592915698360441640852797757896216336249051809571436906699924681577901237196965129624499356094380072211015534841348532534282790576296452749085214773827727266955595937541389772782575093023323508789496455191331518227003122106365717518724848710056277747420174376398251947801276505596263235164389189050545373599682553848193084168176176887098101944108424992772326652593099874114173699043474083916585894601684779150879739672186883457127773855729869670637136557731297048640100267975850705899683227800387150284178965877039760032299198803952877383217118819375127237997306452229533285015447342395861685849813169508659618293159190413992576395859489615681515625345693011156967685771847344349863053728411126582731212001442309939889431162953708492815275098103733626612998050958682473488169122380002027060889497324052171483303782013993046559108008485981822650867336585794648379928206433253730922849568353061912388403474835167792416837696276726119302203060375659948830390843895876441107216052540045696422200249928403596601827854612458123973759437693685290037735362988382209307804329786728713271515716107564832209602892414183241447527935343752867276780474463505694717555469137263823958264613555304649811785640850939196064809172134145318884986701485755398561894142054572632048657371375094349863378292332427049512146016888302805431190847691119976828213116706904662272885350622203041099047311317898774655694634798866735567960826183548724121668952455619299091170193687896883050918257567926426188445393812658711442704686112989383412254810356042302373876904552018507750539846943562735712334015940409005826550523501057862712375237074324683938653287274399357502355178141889669426573213918909653776948866320337732235272391599340540647557557118045707447628040253303916582195071614884123646621278460594727684490399865638555372194409886604034582463063452860470524363970066292735989990965965290148323685109754202439154547147833800780157643928437445890372987024084018235237267197547901233320649123018854253035014548279309272530126507653790724420143324240083500450298204843116773165576880319164893446204168271335336176834163625549055138929346620895377459293105395214351059392547412032213049997664262832160425161042151254322677461717218186077063609236666925715102503566245541860699917015921048910379096779678788632974489616806523194535622721393150278765788042643848990194677850257615506499270664672016107570687076795604373287321950946971824254209999223663255121433805885006674175524798136562787936429354412333429405094322784194353541923286746073477415832665962772092756538664631573341107460230661075726819388835464397738855562690326149014474564492319255352892799420929832902191857654372485714279958678193392162991520678553318874256460888969043476478392554055540003037822081173920361826962341494859310990841885893447767999096294956393868398129889892522412923849826076214685692361346158677778091938625043074126268543662053117718001646561691081092832005073863853239119755213286098205283378728538420281318616488330573220183043095430051179781393259954448785854263076363332589982855876934212787804226998753535311852913395890389454485408801497951510584251865148541723514568652407274738753922249487896133161528838527076925896736068229243157938933718546790841005863863369805161812569945096703207106138691467282704032496003487418626233179533537885458368251637728236625754510850363402447606286786264961541069462975771629498807542711005318163371664038693628835635955425734050022437844667077953297353391522151257649936112442530258333168477343332141536985080940541376083162986926150823291973484653590514552444662369541722472631022662142411760060545262063302808906809627057504400693169802247899593648795384070918153828660575088441493026849922455584348910615237674481524755791792527359830985991913046154457891767751983590945335586188041916616762895652059533370838728033080527173874327104250443075633306304423041548683608735948534988638166868061837671212046279239064413241387638108694664339500527873049820001792182699249128131349302914778722032545303579410516858668859444846795976590883063975841401507680768726534344406889277602349161199015267026826319193850426616431409202757680123737169818785297387334061472748612867454463611510475486061044351839933834080051759817301234356308671664305291127875115441397272256062790586782596817408743958714531697017066050550715313514915189383425912646094285252449876880892003465729556108929730881028440407268646046531982853371773363099034556015063572480404155221881674648074254734267774810656514374696310760111642862672114277099415720142909216062960961001064788680150758583830348154816766354825709187515083295168894062242616092090779519170987319836912288701064411593553401151338842811025523711861574842752168955207250131024784699896868451390147530918597219891197831432871172549002529342357235010356214476133273589591018377173805089463666128566677336671786354008097101575796133417950130079592351294976275153082509356302745666322298607506303985384660688485962121633843053954245974405391638836781455388093710531516424918302832813120789725866935554773211672305290719601187448118618892885795365180653585183302003680203457873655381976096202765303206879987036273176885447068860652315437777973720571985238998018551075771307052002981355131734380596592056440652286006158316139503686052890489945503333868268231480434947360893863919190725688520110588362743554284925686496240276968534720591821397621268903416530588693553527234260840907464796689099823860740376855200064953719667217126227164651113402082163138000949933637955531587489496362793871741739925738190724206400406175151001164801261887741581632718057742559089523451838772847574444102231806495123762113859739479062749310018488522808894845811009921123989694580127075158832362612200184848023991508221679178065359207257602176809960460070030192931557746459444545364516876182859652490463597717504728865898296145471947714456702472788691717473079836232023486445227135997061457684957043354603146910663039804686146440103298782893724298767513772767864776741065081386909559430043772099130118442109560048112543648454964814099023716680750111300671819811595151040588122503325909679281445603997239204663508056881592715772924759780870473499985606522261748827518118172521845527118476056818649644249315458871859990831255082276479198459849394615790404173813986849752475612157674540069725887653910118801247525524260501967132772567748720574152590803096776963677012385271616669225020249931530993720870903452680092029504830280024181796429527154725347441711525999334317262154073252687329888128968955461965954534582820162343208688416633548291173421598130575362406122459910514901685024454591755786711635227514734919650983485921999045818538346872693756518443395806588688501753403153364274301716429750082350115103204077277293078911414978472565317882117763711947474190153775337672263373118773077467385219360258222886661374155751801529816060218414032128160022148657105166639582928472346152071160321585145228515361225443894023380806496215373063467835076774093055293017583730217067409348200230141598698163911048530792130065193564615744957012260576300675556447838583708410979044649167537552467182070984226016673603725806646346540767048241793641557091689049466510970602194103240629226142087691139981812583936983159567453307560469234501072187144056893976827914512963894651784729612891620019002443963145793302311618065132450672868622502395113647819706194719618547981387663131585425231051594803404471978944457326646721777043595436464540682291178692794571756138067922905417119079081712258820321492440886013989673899398163162372531669389374914266057751993785657892065762391258240298011667711950710207095778325493763598073009536850591331990574122379005807093498759979380376241228674692896788069785133692019111827039212664335989334382164967156397853072127797748601031683593538779910614796668633277972842022021818000198116304597847572653077017153505442648704412476491845312239326890605972858547879807327864082514090005123350934881545191319395380671066288967049589740638303084790008362499889961471280275950051557787193690722899352489201982242588585528438249827008848836381008094813293401524349049503008334950373991980409916793618221174767167999260617083341001395085220029795929125183031227865693460899347588797604409784483462202363493071535801717772297155522552835758218401536047122141514651354381770582180875726192474642685686061156854333318393219013547198806942775691694870687916135946920868261174549313918037154223470725635288955017665794790130949701484024348911654762543958437214263542029978974294113805760108117758561333039504382305104025553709734618405023064633555066150252168212646624650667749068356137234655702246924881485655429470815898044506067494238158403732434513007686976485458749584453340292333683636600464569873510221666068446375227805938213424422623283542079252123814657282570008040525272139010779000712367914644492503030866540003992589192686324483724131294532837891394971847645154486838189649728247345135174551352351060146675598820259194379966816398755218271613953763459279213805750679130329726373806896697552823606013370081141308788057879422263294777064161211273966285953870343778398409678919189910567414369664655694069167887920608300433250908661577766708706248432813334071932094589364534778167175480654344610591545311201640268198777941766687030277919297844151253930930833652379917454483038240500533241929554002148293374554131244816392726313845275053735006372973056844247564459050003402901679658849345204383968884223668398397485572012926211393744665580869240490348130289596602229442067675721524077323473084828711997167538644518729884252512912479707466013995332655168678568280346696771796715438366638286779035276298701538867366510522469388849412367733980573040146856825789229099239226329859247908011412255617366407614248299730246587415140323864430518673405526462014332104405198619353470189610997155849774084633352426260782694740315389687788515741372585240482094277506381904536983495096754216973112789770739449823256039623708434296214981692396772065290775472115575619614776283592828097358879086296027946305398955254707669584664288890030033742638153156171343143895734051068028953900907041528383670006946976503386048505147184620645644758934214693494917394159585811314850961033808678927615080972108755670520838460045126631020066971694583561755358997120512503990779064011444497474630208438003332992198980182537847526092464246734543478475475088186248946286359466274176862721246624160401776321512273844029649765040340264533326574686128284876676240568283859731868268269600904024126575333503932626840191244804988832655729870479370164011785088551871903439372565394953796433931504984448133357881246192486326729957028321523070045738819686374820309040269046643397562098247897851816979256359438030259485977853078045464476637083222360103465451678805691109864112932659315534464879334376808283216310187351126161420091960069480399015806359751846817107091016202473038269928372323879814306124221569759478410020248858177546858390683177234066248259946977598355598651324114676392091073296364627910795605190249837400698314480356531284595967630263860750196408004029452307167477894792919116580416303423943162146333530643255576859111835245607619893346071704009790486446949081693959896250872988595099814478984664914846685166069832599383304287878806006274411678672556070479034911186285486017527053182101672616341610531484528345972412317517402411643124403513114962885044663570610599797124830966569323614097593070055247684742106369367411523073571457539785125572359392590828203721430453089260634535879366523287118160179840299039770022762528733610754348057615035677930862944022680802778509099222050688425399217840703704010880441437601666138053897332160809239317793258773853350899729664088064874588235062995652349645462289262074875650006248755092245722731131981211632225385154310820436986840643408178523024335817138007359082151372766096756370318074745751447043802511461075832623492438394036469022158319351545481704746865529234784400757415878807895436988607132570279134968398031618943169997931329884775918108134200586994644923083585657335114933673551781973351599215905747904721877025785787480479069643430596134366423198094500635011933950342884775473484662831868788325911806956563740334708966059228855505019498607096980985234806467304233269487902347199253912558201932289908250671592561880901574904016785017286237636884744208802310123139758738736903468370819570389834538842325849953946245271324142742118453168472882412660522600990380904634381174624403574826883570254069756512523984533749297269848026892500721574617475282338586197135156990345946841627317301249482024650272746619267966114959066772733811083677259526354290299389699567929384442694679317827613475007444350876095840078917533629199671248377992678686146396307557271974000523334091735051844449854796417975107976862625144917755452524993594533551998882786381854778378721921570349817195698085486075912110821461886090667801445646192981171810471031798773100530917847013393750028352170043091732408864029075690381386141429531329327288321842171103055029802259980623920910828309064384732224339198253897105188989395955172451475961335772928130574349348678694561055928925991240077238603173052213182958354644410735111450534002828217282435938516749608332916652648093005749831603081645174872397827305545202912500940919215588553049566374204836577235833901977442842043023655285352783817337454450661588964608592047936784002033231033207821735058447128533337771023024351945971425954877697568040955386986163906241610549699612234649330700530659703875887467254115161293251723862688601585569488754405404615853085593273717683511609311073638119036766211953264794204087423458403786174324717900557358324263858631814585046593497708834617539632925794545306940151666975325932854484121069363347531634788226088647972642698197302094726022595181223125045335843525081339341611026137891096381108964656247901431262341093832414804796547633758588643341910819287478639399400006940294161241662871502004972374803234124762651420535823819477173530687734898593155398849712860963269831897919224838597498083289631304526067756359870144450760356328621167561338145356674936284749683850217071426933936841982836409809210160674055295580010550133648633398621158995300016221990688544472871956233402187396350832445803998161662292449904856609613306553512607062060694174507582898169159643819084041811645375019868920024941778705218322554897693785055597162619115648194781303497262810317822819991006063585978888991982384466498854637950125764101833021830465861301092596883836463929809686772659302065008070066620254040067053611854613285904975463733069999249557695744949989476033498116457033195714786936173107525696071544529832361957340869487612520338636869788748495594254993964758138451856659645284707837295700818314447206223415988277396180052236349217227674942613541680463717806063970289394682234510722945517322913668042357522297759036796127934302902401539233231564152051554626581928467051417873244053635744643066760278967878623435368039845861773867637885889242527118665995071354214624878061570764218450557760259386714438901333906706374943125143018822958740574799026872208775376268006676133846293294443007911400284425086411324002568782344611270273541417621936669276611444662166019224622274554488938302643514746113835442570742031834772306745385672395805558561782490739245930396662038998713043025435979351589522672996057069827852330813028671733367632266372477679638318327639772777820896507098421831963656051289611742737771635839309425160942561537690952221259359192006515524284510766353126557698532582210611012755442384554009992285291526402606934243331145177870601910212429689072204737388426664728786515120266757536962756255955415107328614985085510950389125373884472905769998848308053398967628266919321266296959763700713246349304707120270780641068785722718206550696312306758118329752325120421109589371436384759784510056618518454595941416486754963220814500891901075544214369377760936687629578530333315312776420948252331967945483495994736018037973580938304072392940607056069384989907605172267514273361513425861164537331329000184853776305996508600007105620042005775879217400657809793232179498564527645450943787120592021000201916292761242778959392429706620249738231218537238380306157286675656066172409039554318620769613638570963169272751318613457381870180473508323988706147026777696078329174649971341752668320650493472410716274947074365345502742947995009453550805821340430732849948872118885645784119802510891970448366691531511245652009623199245773482741493814539783418339239619293683070426781779004153953422673997389176000467570621090386888621590407528838832667488214283433677487200483047217089183212563494843787049957258821945302669665618398509705284118107923767213370436042593562072123353465889104499782284228738335826008767435659449477309237426828178700663879032186470551591646554271950925762424550347294938198523022782389665255096708588568886410856924384244745558445828408484029272701328796155115700205693801709087217824593289475927656560280452434385766802560553072412344283956598420118660587901731354754575598628440679094058583534306114559094828234683452796504072902081898736744919059985788034900998349660351677509110272586952036719803071281558634489326097226647522195519865393752394084287056945368451463906514048564639451033857746125320401850851993804229478383152455465379434430685490816348211325829032680978036430928209091794651562352137496516597027176036756904204847927221190342614201544922236319336330512789153261877812718901292268135899081734417015512813253257656671983255207731786513635742954048182547455970776058096186422816232466918392091928855574438359496384817681418106374539393034984168769202974990705535471815705261584061290648434914175402124564489484406844658627092830490470102408008985992083877134246524984776154567080204143588862121965670792550873367804523839138777197153767569425048902342585164365462096589823062361885938377501535136771557728969341918503258727736901828432907771341587501919954255098444342603104493615939289033611711271028635949667096225205223562333595633391856616257756349412836375095603627983053214762900247029138169624496328034759333345738224423020936352892778727968397842121206842663306312929289913205711625927177156172921203801756801645596370965288899654274512190364456304786814252343955439030469200558751499749316808798147541254307004774940320888025202349542870544370050788517368446532454287723963608661065518276581043267284248608247751333454165044336909568641251534427233584143459557072230022737451638563468858043628733092972902671263839249516964136180356115954379281048442896090862220421879392824444015913499156774208708119713718872081866557126245168780741524425881383525457205967078047285786001988732032136539571436027034085318353584138568542402095336069416014714907374335131356378020141914895100128981104147169167487478598128576030832455409956716147914884490480732765436083678846004043054878363457099048945009941241130552380328677256812726833685425539476510321909358955650596880433051033113807878602156558772750732785069941644261298436820973961617917523450119572074373672802433140324701426246948917751587108485314793182075191503393619119941886193711470303781500845762802148876192255572951668256705200348174702444593087839337509490128635060934974358693193235797590696403794250469756785179310925160067816142501328853017564138248138532176996693439778008488245993858860278220008499400460725995603930617916090612154281507366159315492480319919949791675352116316329019003793140739608950019427496405607371909166174137728212271360780810919565335196506358692967490517618467204809604900609157251535889194014333971332005091092377038456310166499973016949420251786321671383338581963239678217225387820397695323983828803060375127107513436195981286839930550514833970368350612609398432781961505638016614118317941866596676381924012466274382453931932790406581760359448296840679043284806824400899077713114087384064839612766107691065921247263269702927439277194836172393576420526573281479114249233239011361628840073180792601206532470025659087175490429263024001182862162984768462579186209901828857678633351730394223187851111170082026283437301340515066099278017093728395398140864832634592463691755420646326854298727252005124005738632819945261272384690520364441651167027578025209655768631041360594780921056044516056402300282193505186307898939446076902971399916810705374148861037743359935539998692182832464440585592259764731894910676464171031056790965515702309825701440465131421348799637434695952268733079679947526480544579018065825490977436561558492355495103919095289541260473056920740121811605689567256801142802532522874047433262315781521455059155484796007896359958063252587540288656936047181358813632574589054319761873796471974726154274353411387600319632440961345387298060591283067361094788867065096010935262376417873042305723412235551688854083332530774794958145754637623912580633308104702007811596657960319082350413609839757753748808868080133648540196795170331478252872036023601334673506499499557441762328301334552312076884811365655612114055532016625237068419366382750847336575175986183734887579292223165240208872512786482628186836025554376140709426894040877941203095075067431049557846151055895589796711850453815445417218751938575781909416001505021034816344974220552136644994782246282672709548676630887557164246013857352758349778668343263154357169990764237247479881026289388593571012950431766059031536406262032127182754281638169157645672708936079121096170538406847757211087165718771785824072680170327101284044133069743187686551806392104924656243489612823167176998661524244083878071919353239849792497345992066680539439435856690338942611674004621098509709378806851156541294266286246182852514709094318898687872690560526329868328476109722249511630418299115644123212434309953201312791635865421618573448348698545881276315446714651338450969470852644748100688735347145121316313706280693982504675834508966914062795938324620274294909977437043025211348931253837521991442005663410740453419526937078202377869362097167438039482215705225679032312857415461059404089659411856390282723108156528804761904238829194486162036806070604760099101803389819786242064701835301323636355135209823792699574318877565808240418684020937210312913680846045014638616930845279953930064419388864251071509696433379126834930211463798141349116098953387970349741955626288482383838006510471517593365961441391596978099311004444643146331835732877983584159380810042377427053183513417397470448256956114157394830644625934587321193699543564678131665533455025985756121281908390132748378194053479190358443698023901242999190729745113041580271826220270270252901663515510099576574756611417345450702438311659388237842238489586580609974870926619229754177464730358009961961979765853009065409246237884230661743855228370516867221838858398240378176822459555272227209009997534211428978959676951237958529432969956042864002211713060178154332131014265091141238564443559866917002677191371174936679771598253075539687358427400227615031387350874891043394910474927552019400226145579909261155657543058879605674593168568997397628017903766199235614593299770939359294757053483719116057813357923032005754009665646551779843323026407479097597843493557263209659310350783666460216071943541806881940340063957767730631498704317035499266213305624228619656263514998916081775103348600325008242714981599845197820124181587635292645188225005404914531742355243965312928135344507483005559602203957286795269323911998473430139337494219996124008022443109775728414132398716011791265657147790673383151083180043310765813279285339938578018665620299465865482410116497958285903140489557591404201987653618851025043775593169880096633071745168301086538242387722278065905568268319171860047196906857864505481670414613946815203396746797672450563530155631573997378362137548472500693700644081221716064114546115475485222042182890853709529251975804266602075448008631855883641447557364719657043202373454273457017109554388701633144181239442842736929510313444842706808141808173877648768874185601882067752357150291396687841010285477506969598432931413077398631285598969383923903614440178846252419996185249252056239476499961680876115147450722953287712143186822941329743864123958020510830962243798647361422556949640665656907101479414120990500731269487419542523075612021015650989606535703981476952956214120167594419781313418417435548666867149772739049631070521804381077768209968750896044355265509650040847387128589793236046865607342585351651901191900054308397335042690322573274666832061712662996485392801282779872271821061454793789886736163876984559994840472357500621919859737381671246833904117295622862349862507965473397970372878006759812917439085041339223224280639324618158886355958465673983753324574638029372589349055769707438193686190605951670670162001922402110639173382664006452510518639503555633078755263712674857646091523113450624293670495754018946957151397681900754272204426227363879221642478203658155380482812369883880513909650658224496843774123336021231364975092816042954246628023809201366243454080459443582850033303178789831402160032885697665157392480349837951559069131158691630970876710438554935944455573077599289523221011677713307722499754509294763193666586130123344247459068007298682142455451106913746141708910807009213976868407715757245046003257846191154253626158231215191291401719091576110520035470441370089149999312358843167083123857662052513002133861203024644633286666895331775985461643981440444411538729329346969129090431989925687875047156305925102424448772640614204633160580246330042064270785389066416340240729264568100981596200530848928312613026353546549419926730383542584990878261487926870499133548816177348227754671151588532025358750439678961031782969006845235895841675675119643721959313412140725484596294866691442901432841955670285820185177295855255656570293087112787739846449905304102436190327884090897068565718796109563428621307921501814663451229664249089786341456559718190293335076105202160266783003570385453635946475414972475802648424534815387984253954225279901228462567566065033271700023137529121285535516568215517211971887655335044032779655070112157009217815130867958915578093068154519168606778967689046434313090130312081722325444144622419962391144382314127948023245206359708232711078762590230461625525334971662516549073332280861813399818836742597899973245440010486911715204129070624410856904849813356835082212751298474901873563790974130621002444019575888684690192023720903960476851559763280788934867863172492958417875729311192016008201369297738816646183724194984355461205063076914559569949445586963642482822742586071884869482112543532025246875047667468693521310921874201970905452789140864637735370459814888475096971129336011079066910851514461406266849001132941416561143323157110629705982248337378827873770999277728416457131702414952365815824648226050038978808230662268336160935651994714989539098492651054172460536116438054949776306605860529587414864336873323092928570876487050275454986013931375945643813244673012736566314795463588621057589212320243433660908186717836507129602690175491209681554508697670948053530313349436076532304324575435144719353911004975611019078662741223393125806512398437617098886679559394123376378400670876836528628485042378132356581479503403730446284487722992165571180765225318016760836908532971277135318393947570406408213509322095189770749594458426050529822186797244530275262851884792343119238352834654731065043459105975110098850769998923728492902810781178198863849311229532151571024495453441075729022402373482605796948942300140718444075326947064998741833763597540129762758349160847969522691178731098271968987242036241065671336211016213684793402661350689522613256194084727402323603810541363203760804778485754772059585227396464024151790403992090912798752769464544832584360021663249074618967598982670477568461893980855861938547731114819232445081709278740278096862461373438560709906799873125109746675533634701573327078380143369470482411806951521575735803837142470645927125945231918310231340452465013775479441462289135855845494790050150590214939242766250394234504617688767831573073185359776401947941460509776402262991124571547899793951973299737251015344107678027115008858967048296597953672959676076538254175561072035780814038391945887470575379772374232404534140437697909309116075425094773255797482855135158015781274879226272421777483147905818946593849314668596022978088294636214406493737906660076231857065511280616741798641167783677141111413684457486251302066420373888102038255001185573304220601606408940044330119313908080625740446009406154296640617609267005127653437064988001925648070919681211077127287332090526184905675178487434420255825314461433811117749598755920926008175107628422866557797542876130997321679213700510954001004516557988716565948914421702690583060493752091099500255390355976416787975637741718367880633163858078558542860620101461932055994979479000196851575936369384142026416442273192648467343238163374420210776119265576250036428580959054136682293422119975789256033348232625252557129058007657614603257338443686022396290206688413905062682999486954672300107889364669025188496921759509931253896582497644849755020075359581807204264882697607034615676037847430633093158672115683495647354028434829603062565197370261132954311995999025666427351161318028080277816603472547962919328371612559807095280723972607644206615155543602001828366678722353477984012879798246725417804074666734790201053910746245386008217337038073288783061548301993791896744732137276312076452845978826026670056962932632840937324251135499237594537640793687375634305267311778106642321250395785425589937175530413300343416799875300518983873571838106185041313602258225191221995268466523652939272193813842391265565145097921775750176158793859112114996215719304697931024577835855344905994433912059345844452253743610354773680902582988160227229834898662379194270466059544207188534049791378332546424846255991081117592492042043889041339091791837559716476194095863782839523070371846095012693532230654870832087618067248513065129313884059259687967885822094766884354808902196893012354615701349134025862093414236305307256684611955030323456103351338393524917747816133107043690197547838814310496301580476865341661738741655280848741643365563523899726455193476871342252376246547540250207333757273723869975008662002317559592996323215254090481229444385825222036565519077467725598538505102742645177725452351725924368187904306129445962283204956234787611612717547186937866399478296447365383618105074105311537543268966661596970361474927910862348136763635458029917685605057070050468428365817170808364119353851241479556450073730542360957385045645211505084171257957210948231826079714744936483917086928246563891980557498069383104158935450618280381031069480258811355032317457433841996257614870239596164425932042231175854911306490169126005794851763033623731180360765050005981627156748018851097405117041242546572932199270692714775477896843381996017684848423549413949556802097646647078092063717734128143771219207791714604626865127398666676183184635646457877326669515636804943241064330424330182164505339776068766022898220017936852248759003554908183118880295069129822557763028919721851351477665932900553986947276390515859106676712333973977259571660348929016899758411278176355863516567896348829249605225807154524714901237670899106327494855682989403945395821598009323542557986632438189891664063588955815494339142860365127028888988425586247646101386466902715031772344729631017875203718408744117272475637394342947430434672853610279152622086634482288701881440103510697307701229916260772288240502498701701601086411927934578300010291902458847198736134731581845120559303553599999505372887196125221672760955957834288041214467197319467597624513800325517545763454507845103830259833057959227504944182871753425755449877160066938220723306921828915427386800624521785701146616850329957809231435744010457080792775802936302328036608690885039235333043667937107926851049697181959136383035517898938451515675143348124470313676304927651083983239982017740244890025854682598535613325847084677259295388515448602128508945247298894546249493382107468229828766513015704310963289020182075197861856442894901286607298056481200768707023214624860803522501654330302011435466731123171879316617707852885723331115700824145674274494738596527165614150048216991484302457976408412178037102265599007099677573542522119510616247476959072380404691073830440440783313926098437673886496684586865244849884349516632399759076322103133561683037257335340392966946687317765165222310986029863865572167549025056883889420684070557772547141831874930527717967297084711387145942911232159359524504156304580114855071135190683258166324191808757180630434359477764141572625650398468805230084136625158813451381904837420321349086580602904357819317460676974684214793936757222395378755044713304811529627446565990862823892245432684000380745618118381643690495631567751626970673860003112127506150443329896541355138935084584580897943917006490600423575168474622657873853737181065439902348328064001087843203973671655360921053378318262216696667274257513152797832477838604451671367330359769955733931504055791557998148228692572181165075311411968056779966671086318243175328072056734596003325741480504957263937580534614342880198770760363426529357639191542304667599031707388594719793500672813611527105888839397624087290731824540901318632142224812677906399253137888838271002782060315932760503078705257455740110687764175907454383473570943810679951670244320258475547751403636665128659136243999299081168743784578778983421787386547731204621206410051655461078352379137459413590447563477958252647468836812545578175819497785568758172842878746126778475358274066176320700658919322542517387294034074148237093324408359846139065701778592091475962306526030117612202681060752894713082365580832584164400064669342586219177091801226000383381128692271938707629108882697792994224661924777097810177393931094316423747852549392388845404962598884625433940174824915477957970440132848059044765245492978880480952373206955452656779036354479394576372000872349138563568923144934332306602944562110013100716179138365849342054730155456014204043418565508269525181172066497275483579672503203870067841866722400486619602411747315233258488023346996527995321046698596667594408440035849492576017614980682459101304388833351727188004003280475270140873338275278144376120198332727692423907323421890456069325453894117822225317240377222869642456182524756983268127021969147115304072437875214481188140061431093061631729280721196304735770386558399963761782714278953513624650056430326962175008294292061670878723256543439409757046282606862392020804320105347406795183949874147795303812228799639521992034267715146077670865304490602535407403805499107242972382287446969456706703093221728982976680836817002085732605584221120382042517984658759477884226819546544929819397968456797730424019129539983432452717450620082923804927926043329332268598503695465245242403001555456117918605030687648617620466844284141661774436780683353007954150649411296448326691233057090972235837442226407311613870240840370547274622651414156297862980794898024019306555823307588801714317324060453410561754587428431968436054271046275180733088447837349230733828873752508916198885214098421816216149334174976023092190163879980438084818647119170732427820600652498893983788155792590844712763793487586703150092240526028395298496257990141587717889712724369814010656882489952790657833012139734608520625036956837408389414721178985215531513796748791602333617713435836480049364022864286173974585396039288484783493834673166019337916769761415011867884365917197642169882242593810285078167224970868894692468733611803813121040762917774825087075703192037013613376915609245964323861809940893133085022425041383899955383307771490773601930354198828818697614226110979370959968390242287748186476777700761820604931469975618858176611051365617288954752137319333979378676390936227015545624609219822889474428985977169855325986963507440540239488790498205229471148666903542722002228379582278336029901034755946685917002051634761620179796911264546769847949216907824827708010140616265036447191951154224842028029300106555523954896378367383061679207553412542865145762174989456442251864086233374731668764850587074223807773196484972551000407763499518182213744380886444943903402982861680439109269222995920616349264765641595997952369941113586599225641491029750213034698244252402437116395980176233886133622478705779612838958731388694072836859120389163798853853098979238556103116196224526251813672441797639455933864366363563057781800186651988209510168622989222858646312615207042212881959408799985742437372795372914906924214536666967669969461379462678907388967312586162389548357017094864157214301883249471483271993521294305538224667610867361525117634201693355825674265152397989632480451274346120662843895608199232038715856072087001022730453901802613192250524099473596952375974966218694484068899047307926411969069755022068759179637823620178190210158266040483296796833956671079881018703900281094000155669797036908574026392895978915748192019980644496018697426812144873219087588422198999011788633575898494370136303729337021973940223707680315371427224887807425603410590246419508854147966625536628662222686673303403079861750175702896309321348695657266233784464849211304499355443070031488881968586338490275626372900652248627061225012968346423035468292384321300823303186015258783075174535112961528955274075719057040056644983808562199865655338482430533344113063749822249105558108634677649403310993479185283979311048322430760516710904094444867366618602217863133652049609381257216446625620559677085550127423599830084448653516871561762898575581604616810308538859895809663815823233937845301910324264608896204517722789685136759235446629258300106716417541718127536286162412894166582935295249125578534565880509723683986029687744657226720107409017395106852546123276785926215953933807181517065820987059769743054106407135976714373128347020818551707491202286915258731980194835493280502032338631959071385516315085491777886218613138311055354731324796227131805874587971656355053303305140731470042398103970422961631746335959290330777236016252245056969635338031445402445554698202138726872553057300535966269440989293529135113458458955415336513756724000226644019858037993621681204833349238224807537238004371946160131203604600065759503980064239940215601428980270349429653915314448496486083910428888918694276648220131032011608780160751667490905234627858819908866177474275266316667829476472910908154010987225552653257949407345471149444925349657724392913786097422202159139116232901775010369235324742897306318222103938814216596824880266356708451609490836835050373226963491936185687211178951051270877685529566926884044130870456830593786688126604664037022220439047681632208743419709554970649109782032904325074794590818667546904811785538536651226844726371451007581157469154932757803437204514071249911643850355873725326758113112289737150572931527607811110642932558663130444009190513671850858306381361629969346718863736939409808155563579964846577313746301917241272991018251773498840326783371839391253673147982341211170676223019021258881877331750063827455705926283668104946674402452597797612220104629211190462156023391486761921997135952583883184620787299441110860684207054473371188518989088045872535671906036232651858864566303915560033216952768712121946412765754983391597776004305770786216323660624655318202431195998976358292785399525008862916113110488868400770292443167989041687516796945036026899789224292525339358016039217610088631198849729865256598014571717817185478923225311310806489678030224999258963667119733636692280541949288430484298773323123207981213980118671233549025045545795191112850094966927830838249152792547761562800102351643855440334979343705031815093398382146756852776068170266210774582363894554187787974086312463904997165007796317450569930017137940065813630177009000580286373667486077105151425961676066645755813702679574379402238169428453624612920053642469046286748350102188736992458535798184799269369263412438813228170208556220435480588419206883166349505795809374040032938236567450126536402080222576322562180744175084581180832461654980135290360452809304478582813468013104858350259464768650724283362307849616239066627051181492652598525525685111868238776019150474706379136200972705083309030783764724069491968955365670016920904446368026380907444123953632554714944297995411971872619948536550430566855749418651356672520892498325228563811382531720888108473142642743966173408712661932417812219244188499245457786231167343946170374139732274439742843968571432598886019834501926932968093915737346758316401380099635816981744336874888542605510659234926625927430366055796386017440353945280566233244133871431794015395862014379613545833784716099199845475424065388463056484930438803308938745325297746999593477141278728797794526349587832730227385159734955040491236986776061453315395133262524496847752551679061218298384687761571583052482413717956398891282536850284981566790938876213115255490763023222016331118958703765438476921066431717549743780155732187006336298324550034862030985612710245458963281108711225954642662759529673504453601977346499207509036615540210823757490872343161761249643398184464762332522080646091566886315304453516657233655252796747241459178361129605219908750700244804072116028267714637557469766355080545418110407474892738294363520551444941971093551283625331242548490388680449890999504243591653684151722437853042434725782682966008819879415527663163164872474471374841800598491463206634133037806630283085331507950079237412160380335040678977079572571907795689731796709935533292307880821865093122753875183732075517576888351355694751427313394406284767236651724614698037387536857710131531530552728074745110972478723857816689151039459271696151015540941134546631530157119408812967845537564028051586981828904827667191876669991924507490262187772141522681814391166483986162438851194401105669742231971050180178948418348712489803956786275206788569983064572734383461880645153868667362597741231443332948922610528479758913127379363005132277951698648280504315897616284590281723399935369070249996179295063969326035975050069299295053555088794622130685240777977452780363405504831550463349165659535965247045696957786590691398517491423656366230147468059433716274439069493730816025497875905175076919865295699129915893001408997797266658289614365872345498209086085104577597745899620755508796537493554873818655575921287247820504013602606769496185011222691454363765950154449991616563663172135259088031575565106179651233532463593886945086620924756211600540281327541248881416258330010965094052934180407445748288110766608146879217303987513061236183185792440190865637183282778195787089201082863533912418986027811163853872589915562510608374108524848147601602360904853458054918828078667322004573498348196297557655035384855767793128435208912228205259750869803086807202711420859348911165900678271399362723597661991524478563942780909812481644838829940542524317760632068101586980502584059602040842469080788887712002548429479769992877466370678465150504083298335744056316498110595214486271282046659018408488408303804372449388813794515412506061915689729778883015831161404558920802159154380216676852446004111601466923050832632099428078614945361688564636489041262361114014122955556698966200909365266948848891528184075061093754435086663507676325608774296680405105903959680311305111657636697969408515985859776354633281361748613252064168507080549837848179205860078209884655880912243706404068981068945271492782343934693926379637628936853252698249424417012845543164055417669851849279852396198567476831401136872855772435549303811255838688815176703894913209719457687947603731834503473128962455514354171166552720858943373509114529149020949810301997269588081474460606881869788139305658221929921856686194333219436407350427304581052235289509001214524190402106849580254068731127007486826940520576403574725546091230213744782189338097737713171225357287780198015010238602176593058349418995143303808723422731037418393727951188379776967339318285937312453898391858143597653898574229450407554887772127983170075798333032456215631353403249175734166853411094651859560988052447362607476462600895376996116707641617654603417095861170075119986827842008480531439772415689417017317264034250578378993651054704706705331013567325884354596451029381039506316169515247666933554188397677151675777931310770338155919525773917148768136191806540370663694275546406242162036698538852628485307021067716463341409906264054889607624036672158261094365953948784186678379979934566571730981296527701797450254205901639060572913853611912971086830170139478200025003487158698182965072032041935405772602208603318836488822647867643200421019189978219609019798841479321831668611826793619587451186840101591622096142661131663645500963247258098638649253908464026134614595217003992746104155028934534507342908547246561999727286043961779032089954432852358134443900702813639422033021029074450748194685714328537643847779790765089723797858544182997620725226245649422901531735441786344237292547548120134524541000998302832521230926108099772998188185501524654333712105398921448340098046871695072964052945957428181255306636202584157087649453200330782292610380821425873284001342046680644135752304678250337789872330351756486189279724001759855065472838210954807525689212493765259780574875279331577233834222208960782472668798356339265904204895056501139547974334054580651032273251160766492102755082953384205910867170581567465635647059272779207609025308360773374889293582480771406883544070486408157344747605538556653437094077994702469827676219580314352582817323446009141241917976794636458055279852434819408709658246748866022102994770526275426691250091269130332508121893947981477329285832716827980118511043823302698749867082297446023256646770744504029389140508677373877565754551515765532775803828985195119446649324563513205315804761408889666974354845448698950141601209146833613694854172712288744869759719640095138948647176217079529738065114399464634864284825846663285926669112090999264116022923765899645687151924997783862813132760892985562176846449649855886241260624787664606522162655331835919353221165068787928486171085910817025597497335728149447187710650180196910186027107102704389259351631939186240314982375483441497867633936969868152682321762703505175247160117622178694693166457438546191793513456823518515025237085598295303624685446722938771643115977924872236941278846848243715737328226066977684574840250714919505848400838092587118808815591949008037753728745039181980909619302435928738115819502547254449929548959493851774109794118823459916408742580679910554891273873072798719556334564216256009660850581764213995780650159928363769244640402131978299781740137182504546302273074604801419856356855501422194210352975726112494474566935093471288707593866270602332894207365402732596939984001482383475678325005643898089752599071937140475131707557176845227820362658930328739199072937880403071995751203278893106129241496179945389520406953057885142052883213115574322339493228864700739328809146731019871224070646832392417586752303445074271541092283311444359896335199973996824372762777323024366935370542835228791011452993229654343594245075145215161434210790295141372790550877072881374183558601181112058367675916169069880806313152376095784578329962992136723971778615254768994074528421940226358333036741920804585528902697471924251959212815287487792021836456751056835551940995869722693724826400384276347616682844832243346640995146623183933547410799282454279208499978208211652188968653237658392704894837308188565540142974063124735586683084333896438520509065024722320948205344059400261593860405556315940642352846386887717975111198763065173014424401412257335628597104793096815671849063195006879298819672882778756912395244101179801583191546051767277286997690948523613862170282568426177188520425705079149433885057554139370643862943931264077312592565229952885837216826657289318534700879426676086042276704608115915625528245686731380536675554748608566048537755506595148970512545868297929135891153228297441401933334100020272869761154006746268688196691097879440200436580151723836344411677605618332999521658092296970799295160944273128568354905625228961486380282007101445474076746895504377278000689666086110013165274382375794835464926844341705826191479224515045414505479195233681979197278852860138230477710689906409704119561302980894815975043262126128594470225302071713008778812748788460993574132371194089939026467498392636914497605028484942903753533789721825805113806290885542114319963964289509545796905030809880353611143239863044605165976004712289981525804799825937255149084692590572749765016723178664957635546125297430911731771334621797658792980737851783915801620926527587275576517345104438981069435279800316431430122513601154024210081041436235589575436861053236468434485372427069630556568211064856983495756875156917192960332164841199902152966437611260861169406114431103028794078169938727129648423235233029202183092046665289468682820996344275039408940936855912068276272053638249070018610074832846152455934097374532395681944571687955811628766697335628387324328406345786074675614012971494914311934679222170715181158595276526433315872344871964044959114246841113332246119761621646163525170567745595642302708534382407433684659364061795984444940516784528872554841502782534926459396418806423046350324679340357307647854415013540608013086336378603815927189177998919969992146996619883678301885226286671663938622212085390782522778170443531045119946855748672295871134204594200518080604128999988663806462879985882999917368824150472759797429211814077459076315560575826980435440040239981441456247685412028544445553340716022634167591292799187826591514824494317068830304907746354962642311131048760379095540200466766805772065298058069024436880626606291118954734669958434457372047134627669594441400917118641658090734813258454473369715333125497337144116730273844323916576678754274429100444096515673034556691595581862503949018661438033087240760114431429297605570759108488716941968300894825959090338157839426270522171702797941902563387751801484816548801329734780704950718283423684202664668977270654344048125980964107428315856085311279507798754921351784225852303047119950918441125418032041597776423735765643954381463388035440800048088316125816467678758935425001651342724251354415825062354375601434666777079798386075591394542653719244426177966875153635567914906458072545882304539515949811020071542439701174824328836904555907974041343801645673757883067155688298578755810860468008382198840543195143990659376139910131144695327284771758606958092283252541057143420125607826052285855509634722902944483703137359553402812267115191392700778350436334053312639950078667567272625669544558775230909882440783537189840397958113670626676547569322650971117864053196543656876613148285074154680761350532359771905762278665865488483799109411447637950769338571184622618401950007769923351324278474648889174561170215491124386149708472561133788903049583669317766943058831342064702465549398338738247059069969374662575999695322806297484384333117285966883918303515849139978666659923489935584504698213868619124667819065431080213538340914506308196826594424486041133265005669039042787038658744808949655153053081765489370137559599289470991041492625677761435501361543236906529950073725969993725447356252778773277561671322194922729699570301051154480943633814904821749308110419490848913568902688976492417003468047430854084437340042226826814232957988085104168533428599878401654611450395495466163733089620143150594450545968559441860985635743214161017113567434935487508149208329946537480131376193887946511248050825435239183136389175511995343921287539958918754147888792193899578585693572043147340597178607440291021350362834582876385717156229255597067945851980568222697532034330247115768008662564907514279568808807093582747972939856675821414811962204112421659754577427845300421408561856845701179682002901776596220807867720808216125452903040196375781969973746757506503333887715821710074003852422810147848025251699792710700864284829272877331240177660972440241913795405358291271235988912977405070019797001569319043073863030694550866136018769005779251485510815342481059367664765470252049963324620499177151426936246414617016178531918138804665559959310445819666700596571612122620600124722634764016154029647081928802205920241547536445815994625407678639840762796067376331967516423189379586902650639827010170498393227958003493016410127117864073065811755732332444426454827289011703176966321500092287999182922301006098998323585327019381403363817956612904482482925362363342681632389794305083141338519869511487403350111511897022101976175550871179863693365287960633523631220742423323228587951193674723943696231466904355465042715630863201531715701162024737629293014773549163304914509686150113678425517050973475421786363742840419877564670785299522891939406206446838349762263762190034076420740427197736828045946462337102393545513738692854245027326294821767857195078680714376030182027965607118087959423072585372138422611065010478580619404728720872691225839497234943332399855634410272209329485739099298636745021577218338411397110762904124006096237964555625689420285939804788191349937719194749021014502968026605082678876707363653542132177114233076203714367349737542795122215890552768612543789782644913049622866806214022819948479089929994378850734147113487289722026020912286570996181369603440093624951967127282388662858010482631715748476886594789613599059874625664661075557388816351464328306473764266876955545303186078028339414956644349509499759789090880479013443366858552597975451608883381582335075555160182017109221394693764393964357052183762225759034189319404350186716244233760414817728097174552276245924187161906238283735408113286606993755087381271511092820164884293946950318239805695435416314220707796083785800017603406955887632168233910689323933516841404205113794469508537858926476422453113542721075298170803341165129236173066014821119108305705988596902366831748777981270034790198486990514641682839173028671540215605963654672467599205554174752929228544939724931824781351466790196107704602092123587884449144706726205487901411511902804385020610025352643620223201056161857430535567310266925979249420257542390850422017111827383682289050660450732872424073401173328931115748184781381486260094862711594064859499724889749083923624103570097906441994232498249643531862760115133801753770226134389142541910156883221578291207116221757643864334728595492928572839640020522484321079840480440870474543574926827318449053059796588922622783928419455829064184361246106232971013903699588797202016406338648191820363887677479658542559219017014469771635834472100120796504664997594835425089434587184732084528142128792440404065600389332876894223262585736604869749828743501946081871244556907410813907497262587669262961826740000523054933802489655341536801481736075560499658155311975466480306691280667809742276610234329146829487665951938152578594505726074715662218418738597681745408461324428381416224089753377090416379237118312119420620013671062072956060109648527752169877221393533864548359024063196346484222204859143399856106977527719844043584709781337964557515908443249338644859447687102581388992181514863826947930182392470860914178206575660086633026362755499453225171391574135078651540500273647357119854439806463218833597248954529241387724074183384562593780735100811588852919615037446786658723671124215979860539071633677173579254067463644241354343277033111922453351004233917139595839174091558003507130046946656383247364692731866141276371234688311651191539346035067851990386956201064413452110148473428810734943416372706192586788490597057811656170479474997795779390956950728874362912539417538435555123693314988216974718463696580412231864986182739353428249738137207663780474168424220543600583243277250152614978736390285086365764990239212138955314367947729377220239370076079159976549662267330773749173796381063793599598764104504276667676572038589873254930958301626807495842309039766894491634700696439385530685889801301686355508881965644574396874339652338660072037484466193528410590348314551635878114410292441231748626524998535845492551364233143674140324921635524057639143092871566498606004967864365152366879256531407768930257453601127040399632614758417311947586308601969796460384774298612004560219605211655587958520172596504407240419744041145946403756359096981295195263860883792928259302151483406975299534922751991747805155345263689229668469684242498799359066807536921366764475768038936688380945745892647937485715267664508970666257648266151553922274836569009605274079540077671038102573381865182306545545788410878855454324664001768078614360319021194986620354123316373966443030959455860512183322729737468398761322584623594632520902084244104419766391750932305447592143350921126163735818800638176525480156700395963345753821355044664857283614540201050836439243253969059555675270048426658376989402719643130780680281303486894705580956339012309074781695089996278825605840310657022936427526218073488700387334426757845093481351552892924916653972538033700752586670435158175109321181045414579324284377432847186657849732700243466529651501600526493015241361579232233881462792963330522912067411576587638932659821055688380018535947741770218546887947183575929005022159472901247775372869178690164314297075987476713101894381294115123474741753909424119242142617953811916831247687895312500811916378776285889839507053747207593417577508309008630253236633125487334532662434921400616509892236929486287357249512894638483542636875586850302327851955830381921297907735300457929680214283690080069193518120568752189506190345620616026510622320439672964865107201562937960497960903648865509099777343161333520299453641270650349771587810468075164382523947258608357271959097860236485030083422249519279205010642858442273332156807382417347586649793667139289778431326956799472428074536172334627815063837026662132440122355761419320300880231953684312280390639876809532989669625980459399199094615349979381927881893571492352001818971685585695515105242227429577165976911764717554414813991217330429065506430821693649185953687744271236607017187985623439926261223942874743542721961461521489549248403634183213232113798694128576028658754350632026005208141155671018341907562390453453737922846210799838277807607545440779319896216692737982718484206397147928479054028550602602121295920885809831340187319624945959436475472635419371183143710113632733535762837096304990261708076911486819970924429628841277155971985090212100233147333207774418815707559441513581230882032068929203456717490852892173715743491301300708663170692737616440748043048202376881694249961761338815798747940899418057618535770320034653502116574586596802401739214719298990899908499867278322601254048296566755282313828742283085167588979835824815723915183098643346200600983323679647635807934478557579321805801336154884171991517789902391010107147223809394663818864253370819659837261493100435341837693948540705074712113908635634814759165247322413866384764528832100124255672047102535228262394087521466519940586231313845624367316468243480733734987729410560956518861327246587850347290624585640259311640003968767084136466999562490633092566709366452993291661646256249542390303971084501131293575365427216255752723128608640750909860488454469360879386588160437316531941413980887130420657317399380732534511335671523689312783450622613758890999027272947681242800363468847910422027415465129284244261603607887254487024211022964070911753907400453655106579700891015983182849377704041523108838091168650342300852283873750656287705761523436484603827702351553905177507973291805130234605758598995808092976712271367695069657377749991871285678343969979132719116427137923746270032065174777851772972030987896123209783123676784916815910761760948008215421271815475594230898232861619787276600220956971310842584805433668604009136462381037459893567655248843187012813795232793943105328653767603461631696588079636782057024797090899245754447481936147500437119464919596636198094456215913470455674937129124277011333637862580099110904006103459240162367010977071091950471129428110387295537793293575868168863705973425616115850104528216876823178522985527895289630198833810123512025961495165508558180264175875019328625450013777089799382940296230371206789098662591093207460677883837142771505453725852814724172157498939191085744037208956339043242218484674473738407381971086396641920338679814833951686821950408568299770907650718256114794312012552423801098559338178785817851830043674111614844202365018194744488866482506778355512131323781088071666821163768008108887999422013942821325931253365011007335128808027914529404434014739281286814757215316532753747005541242230479519161134665957543882363763136877306198244101814189523083046449548815757362282114763689036574803106098114708160070797159525834450873137889167153168392235816480866006903255235154204698257583728502390946206824479488146997076227424356282181014825176031082129793518497579561270448738039378008465885635908998325183255748587197898386230435708460165564417125844258756213586847442192536107604942969369043388185627590224162646130522473216286829618103895261791540515461691771014311261100251731978589176653989828152713815610963772752574449100304673090751390438023397248967470426163374021438318802841696932145887643960620018800550951872004426309561136219153512020889374096772539530026812794423067665022338680189012087694178971709295550820508752117073159634007556995731724686575977566005637078784516883245760370122417054541851143350425766424517559077410360156272966155530225119237210475462750242295288872996348222466158976874478474924576903808142815923031941632319893071201414788994376531677507503503971753618734280278942349591274512027112352935708738308331684393842317735453950046506135814360970832813321996958721074980474630570778981273205891365154051773529512225540999646358758119118752455226344261545481432651169205298969804627074394732694059388032310350729810693132349220605402651911761294032008928094112074647821903406892980714726361695792283906491483424249376512655660433561623516647678933136848681288960914630938087529921935284944256150924859248690792402159893253010281662255639032942887534405830715704780520411116805305461891965731757705141433750112929401448107505801359874975105831569986463175962182358740351637451444315428145729792198822421355693621160152794849752456774177437427675845153790869701944243300169794279401216872959296634227887334770792432632093063425970774904034495679697334511617229846304990753762791065287396843416383380998757161854852866720387744112041337185122168229725340274464921139334731667002607604852738201586751480067996895396537438879921548836369974241965871710096077174177764119750529034570928821972228896971859171256402720413229896903632585213794197945479370917636422719477358516490598197365374466473693935322608990616552328559501233942221070506293115714247337298621597580005822807796623403415400191279553651584699247582359396522199645052499758561392592814638822007145003293741391354932156074424552309270505756383907578268188686519952465262944964179668253202171977793078224212769813767003148866657600567101854405609629826193270729930025793508474885865264684179259500849762582859515671436139933824296682420391315155235819428058749084858547132162272055356604249514311659060342834198335954696262954718748220252596430422215955947567638658683038820107030695988861504703254373724699260349365897647975673111029869637281582929147353460125418760579738911383457877704479593845700932279970034595597609240304797792311300707662177629841484347154443806186749475327521105813106648281078859587667253741460045148483513008188415700667287404586014105974976185823928644005829965203287929965112692525299372843333123797578013511323304129252627914198630408610836529433202580801823396557617903105965662992213052657303410509426192490797256756826544181176310698786683551293904476167442026757390414736597571123814441487159350995148948184973670194038761003552353489877037034303592603629384658516186288249743510116298325650296525986181733614158904851257117723046598726230870054526243759397885478173708366880284270066697569230802199874341362878470326340252263248865543580306497209558390892625287755359200224105638627377979964578500468965063801118339895281088352610798249999956312668272435068271230726914501193844576436527137139620154863642543744752692666430186112111988739299910234529111013622697202040977528036953552212215924573144869794028705275574785284774820919282609169855739190681736591165859477274880300222285770600348964415396000337745716869150609249151437835160806610354017229317888630446023924521726697271054714882632117361709925300653200222390450601810239857892174718637347180211994395074008474782954730506015921442122767870702225146765621068462989830933227242454007776849838222933572671712811967252851397738681858998071573257677824192546019548158013266775306670766512480875641882545888573845370781954646601332359920092555640408542665876235341765350879440328596825260273559929743704258575095219168764087227296108653513122639546905870620932592637851974403511703373819060962459452197452046059864877672245661973727432002643768381743240411288930169265871451402749894706018713100520773045882010549575204083645149678233293401744181976014741132705265332184164481937037153726453807712370036407345528090841715337013389525698134909545532930586986361552896328367213753678612635208672300499512423585282338104634729656164726327887712059839302596222919324767927557846181166075705134640822317064177815930183998571232373795314912852532659468484196021661947137303134852917167269967790932303075310000966057913850120852955792600507003143799662368367673655091568888925127596978754856102133196266385205824806469462980643057359664164585726877288027171724126140846128425434934404902043577684768153348035093861583079027164662377996611721148847513492570956678586498672333906022478755988680594082540914295170080095878847825749287639709873997216342027646587431773129876478523232567477703390257164394218959994472095927175306206991227111742613730556863537920267509518399545011016008772476763028821100212247638318745661723033524784901272210833848819839259516737085634301078959590145257850887371742037721606153595054077360886871043808460024597537779205022788660269097087278095104148485147892459603751893704859548660790523087335488182804594217527170141037712524260594590972646658890813580652472309753871113140083166825839489356551050905817621223487706571581837869689254463694063030601506849226989367875085527584242131779957360481335968076419428612533256819334618862718374054118973622448096925492409834622746111309729758915642066783048496560653943891276010177552797437973835541127304322626587002304559600461900571194374958735382292685069528636369127944179355333940726254739684065503802800534779554754493974825342117667148852155397497175400891003641632663456200037966998811052461798177731403650699006083965049963433298754883548209593736973381421231934032009323592323361014321660022965156270723437922693276011852609227076044383356658140597839774860759676970962743853792142627055001835678505006134188209624748489488621420677782792782330929907446575098912345727638840680424131314483453467491848699986491092887818311748077121242751422808521268279156068077362414804961888282891300121287782038083704343479340744200013351855755230619590735671692709697784805182185165382154480092679701002052640388960780827226140484259369741356739961289470244533035386516486237582095409642851312558981981368990903747574430787523344780971852488898792825849573480477963868893781192488266445126018908380801416708911423893842829407408316322463158463665107866229796248206774296320312775020759558160945927211560142044430632916103904905706117295331226989870989955013838939864292012044041736623928398034782734922176601117897652004276514718019061885312425836811398663347221190681148793463139305767059011939283105336683041487850899676214594920216998675656298640315551330519681269621167419580413529782758572780990238279377079339742469727368200520579088054436442998538174128341947594799844871021692359767477042003604828631454008505278393027477775595079086478672442766270448108621181173206934060281447073460109377938173054571119268874847264018754217120508572022632562573928921024270026142363051814868096344295533055136136761712127386738244565224250914131701014757802249379904157524738966963740708850367787519987288049441826234565833859425447629560022636156301945050500247281640645652829991159059071804516336687362312981448810048584205304931671514980795754089165137733937924515443663327458037916587792919386239889075594030102668211184736587377832202544956563708461263602686232046093188257667097982214685358021560755501141315100720019639008327260747765978359111839466632088790465514704491899926564989171838697709393685054279138667577942579745591435831208999938359234984490649018544556390422098476748757805126527558305840301342014281908949261999494226281434842947878044492061580795008287584216952862373602475815336784065645322807432460903742605550134606604319864706809492839663573793937029224877633031738415140351045065257705913859159845834506763596985183782486018771427156105301199007259434776148482463753552881754325803427010669862646685180698211018563573261471787913691413318416730806480015192318298589640845262503423678632200377065638826710233247561638506651033523197943260794494606699392699808536927519185892718441495768277016500434860408898427859928816165471904632553870472706807150714251719479071448769741459938859408683584746200335167893421320692406588396463296680788803073144239038281712866956578676945004466126096532178473476722438084931275249337795225767590640225506415354820712349525620150101393181528264152126443338693637327340889956432050588175893813295498277215304412864189394472046246849812294792500041407068473414804608575560143474012173608846247830264299224608076578210652509315889213522613168005481785043995754519790096287641377641733555739866481711125303878160502594427305479127276645078592350635954034824815496768256860970966775834696408095414804975344088695818001526507814078419066413478293812182079748820121163050731102433815068469701041854410904851640689864713279545775419469638322122521885880887624465372336307053170594264142727281192898954039736748086824407991111787457933412730322183429893426908410478829451647533297115043809415454150820922268710427815563365975508764325997780899889588363189478381176320795398271611722362025335214580318626835758308895792374818296624755315523717128227500195622765553462015464055455470625256765693098413217919510206993636065897162884824945237592320598060584509236041457299994828841161639073742494289331259329712414869820837578993307755981836721248607473415486406834590948446140522469560161954547228639556090283107510201985680323589270506757825462667628057932369679113659430572067736881979502514142801461320594567314764300350515507138425706582801839415918189466369351602477858585175119499404858771459125593883430925589367948047255846354104487259555795212212275575540885308811919820413959586574791097157364302649144432276174231873183979788877502937874883295174760187909527714729792400248370046577270906332678214879702355385581924283454988373054990873412520282796903810067420113505319885214938804678632192358465011011142132939543501907167175867880668244477169405588156208283922906176268887815998988767970243677412557913293645446844775647775500043319608021083107257288638840789042702917736619978359194328011141951577033718060958120641389317368571461663462898733306349925583906714936413850160017569207664672868054753588324417374754407626341857407615816236342684877630816820550084186023457536336568707467055197291157897344361909474432249521534684077693913297502525857836916228915854514215178614476786827057280887111312797557162285914034232631355799340568029623832228040558138821207454620718675135036485818214254084486711869606853112759372621692013806671808567540501702659745803264424797036191351703227752048063729218970258669270590795201757060774798516406361334057847596751873053622736322597991895500169231071422605724105689937115898664959143678806439016274866896827017594768735659850258266729126512736437257003352171568169598704729935304645732308393920479682993987335427655834280925823118834356220239221129709486852884090666386978290933765825916707315124846697915943974493113970400490880264238868100199655824972923748105362836332211927292072434775197284615360042935389980880626415075407941954580421618490434348098999414006330848527655461441821262598263629143317670409827627753403330884240725894515454631293868205557552659578679971858227113285282281145825691188137452692783882247514785987732248026255062327228804993647944597482258127679648173090793981252187729468264969223963395218743647449554515079302838746791163061565387153773835353284175301510691095728017334735859600657189930555090167694000921148527812181937682962863549331375178117349955389834454341049135577618087785976890726668737523359441188356615782308570013364390752696434685804908734402548363433529262085369699959644423192826283666648881915146626545535112970095060335190247157122266018283333376439416232233727662164330632040677881664046023740434053964834304445170820565244286739623271958434223101116835685877274490121562817881751434220332831841556789243962926740792356545152717627137372176639381575383591032440015515984100018401354622638298247191056254270335913463763017991001754001974601230265541155199202117581772173751528496027962821293282746834904413302891472335037818997315420008221404948504477015379945921937286977485130635880389933677641814959064198158696056364428722282777869977706951595082387829878004409341444901781904452443307152402132829028844455363382730183977857704543788441689391789625351907600329083113468171100206219764645930514257611620192233375655111598340267054663321088884695620818045986833503336588305748669749296321036477974833922255766328727478553326402821334804605414749186743630509601575703568035454761161101944022467864746354368807159956256940082856278036355840710777436020339903571046279384784512759898876595861429733987177181388201772530944519528385323130528517133313961299398326037066180847298305108499318819201833745974271580800215712143028912424420162661117918699110371631684263386482467981729366163969402143213687909968252235401360601816549915813497360261123054603175450150670026963974528001871518651902771981818629170494791240758045256609766139765159776761781684799103747146071984799902633290734592943063147832212604186559551972131456193351355115244595926092662526610114154747683113782165656587523358039612141112163528559849051143917965243826762260127205618160086694712389313287965827409892178757704629037063192489797258794923865943111578607292536015416823863318779019314670836738504906346781705826636372106783406147748930980475542903698596429433311387886181629476596399649893030211117319238482401508593488644556631477152415178838578268442449836392907306175159041667463729780967032042702788200489940551739728271836349128501674967689452523283254949457068634587329562777108108579391633407587814144856337584360572793155200518096263951014306559793576015913988227160024567097968461571897523024968900621495523142380448185801557148381231453141204545003434704024705392507348159283246318214635238892300951003206560994086157724490821183938584916209643652802313349518347744804622437384366860202217699677636128763867667037427497403673304410751462228954360009782670647346138131197843188710527845461038528856529296747127874917171280184233268990229300051724770242135440939713345045854919837096314012166372609337524058644289585261060874326080626751871496114104075865086903517650297502794558204584202705521173955574970730399681512721105141357918280929981439180909380670164414916602085213264213138160421000571376054794101397836362221944783974131537861209168244201876947591236523708400028556705993291465425155899298717286343052081206997153790442728288112744688040518249615829108785560242692467333192551335168961144652046808122269696255386316842795373574274615532531056828361599829624009087432661901170145466195554210291300678186463237234947468658968018868177628664675896514455652227770747992853748508058598083188638262178652596852551939452863203695352538729498044011718483038770989088130702731753706794535898207975025940946188331489846573881007265830451903945841023710877798582614694977222174451801702054087315048049478148921306920323350444462027776126002481913968224745692747889464913372376282371542985835762427483793542054822350417250207064256059454837076799823543816913305001260462837860711939934565411169430903402541370425309449581286328115624719948218478179307783785450352471912489006992825665408717680482837246111100944705101775750429769220204867445409496398511193289831358523927757788399706215216790262876738727260303462199732362950455695015896711553833057122360943520677143060499563554664271576479836731069247060476705638079143522786300748034583909683742659116219019511050686889677756399646620228887186763538954745243774966210486371923863275688726292713761664711879703258769359027668733199723028120756388649953473127636300155896243646116932548694428484160852449005936582491099913983996746633989419527042815084333859483771298246469728263719467255076604477985841359032146848383341639309246821132854921700546960658438790181751480615914491086233649685649134061074482417000491774469873200045828424853490445376082805123853621712741620570539946353260932621647649698273642208395505788116610811293112130157636888844471520040737672780339750362357732102061199559900112546019897520530281498784379182932414507326253510796520964799655240292403087265922105975497148655441424127208201809650992588448265661230775952348921668700413161412742194312905196085650112130706587990365684337486926970140549064138214710733149069354174469380721424427718485339935634712686445250768492918972741375476448901449483139973856000248079188200540430602012612616599288587793858549553506200004751334850684962672793432703507888453072490174958582740926651207180582430379925848345295325727320531766548063881241303370216402455250335666188933720758100042312263584533273935708592240562246255078595703019903370564315824829915622649883719582660351471135832684916331008755453634358421826368532403374289892392333182748017849237317520368507270147845023856885417018807439768730416356468010192930631656091784574394782046548756548593973884981445474687940944726362068204654143744436766716372130115073827217655915410100894313005544827650221373681933480422828469821295087165426440509402779727402138163729155632661146574064826409653336650683183018674624431791378788873391978486647973613449244169318582260296155244565373967484493357437234744863473628934999500630563154607232216182421242441110293648967791252328980978910257665916630189402851098623330255997781455078022020636592301084360327139055202048711956111096624320895732385176338084172191171550172150439298292656188356116247397897982596977599755037370303312031233790626397070431290992687629892863282296228578396920743735256054525510363845205561728493162734042597400061363785678052837214353092905152354856698954613721797013035593745404385941047125174780826424267194365122361922858403704371915008563249502351412045300916084867775724712030385304486550793489395827492364334247439538121211912982081237403931122193592804965217820290416890596222899347992875137857060101684580622538972765468918391519708112056329847596255724805975830258282256537402089198533723616760486567309117828552558276933505910941475330689324028115170001870507039173399855131190071397546115260585817789743348312100919453002705156401511968193847818686823388352418206719549751551158872270983367403058651824909696164620188249358364724253430567068837907980937388339387470229301488051305620247994776720862549928666797984046659089852877760894494380029662076957612970878184445638445172665232738203246345817571009763705211495585033419252803303882591424093608030246622118392172169231274191962076141543604531538654579373785212294241129926798825999995331839837808035673168178753252837249606200468372249880580438181765539389591480283960312921040411103359114880584914162765502910218975204022832789602440455340975847845018099580121189315991142089536542692963368382462379448326450905765255977069259965754212330443590964386287753523697513345320818838479659631673897019247719450434179411785721850622250129324306902022350948140625824400519284957486563782420828385568675607188042236865177846062830202211557509497714083315795078199927499848930245749552452113756673654337352225938379231845917383249338749915661142999107794993333895763899915374064320343532357525578410580661448349446272828428530792867835825091338262302433987356769473726852942130823173372134388095669167725839779408700013798139891498051626359930640453603062828527181363349995942226185440654519055769296086704029265364820456342202036151431248984817931527728982912602391656469686293819197600448593855732109440970936169013751610260858022651851830724760841023805181158791655348787026958977699953038755137333001316703778102628869327260391603741881742195865185414684663357836063256595578849514295139649565635358372477555061426830992854981377582124250605125545138645838431239205042452427204072068111134048845694744148391598153362002732819773316055295505761502922103743014131093738930335164171938880704350252629545899748765548099863347355847408959362998247995472426620598392212622546783896545684066172253161054664103366102298492620134256390176392353731419464568515052323082619573587084659240595170277661737617055967536802079533735054720225858439999411811333970298856066740323061540770170228812646304368945079902789199418042029721809005408750608758282182548650118842856565977551426991041185000854665474164662125205538299242092373798978228852057111114963982186104197576066290815820745648989609770685765599076384682655670319511243299125842059730574090503102240459039011535802826755713639148890224809992507774485514183058446040927708619480675454249579215836273132107816003822018416708666109598452420207408110760281777152024424433320534387391151941489585164691337287183903646759503691377095589131467224997620206975681687770371490390037540832522895242150166076024500736275717495891848777536199213291199716524448899412809370924745249346001550183016299983907181938407191077584102287135487350847746284027071304673643706528198510412177912978315556618475963278213371331970550212267802164400363750894033770403105297853244710085874818956039770636151366591122470140129856982078440114759071820542117080465390129686783530709500643845651360333311572053383708866904907407430114009024912484799121476991936447921137989896570669901492263889619609581143709804630403762111291692118394487062519773693455116451673275810177781367160312549938704607365178718488384730486558903969764420488350724937289761416382788536973421072434148950466197266373500931202965296555276856633763531942443306599671518626782026901397883262524614100489643677190201102918639982919004505354159910237089838096337567861700714341008767189021708598863683405157303407237292694066266594410501654831122781787232709383858068571717555054157883140931083145320566674790999768812077745634173649192797333638932437721308194220214608246065731363804107956314270128386546397101512812324897913684204422562368425045168815050631047787641981793138526728105738476296170298241219796278313371366403239343526537687977430226601577141029578413528686518795078433858146626454606312499002691766493018601828749343677259665143461131622800208715554668104082390189693348505376479491263132237567813255879730495898896515349769554149967815629394611590259976882564238308374351472186914593843613706337649804068280731285403059935290641761165170548169347721282367502474085256489001842473837971352973847532973282075462429868711355478830787916147205307690932841695808029752123303035914101246241003624597739346206786660227037201815743490890669019621928886797901224950272758008384318141873228455865717804495518290890769141719684666384930537120881004728817932440448026697422105893944375867669024312713868460653346058993669922946560968557559416878159584653445768126572792671388116637935814592186465443979414980635572410586611292426177643154823798688298892274232093788137245532972196056887869266059899869257285416599406500955162169053200598722947475582009926370639618435451418985067138393764705246449103466561622147296032056607141446828188699238562174555698226537586170830340198014913236879994268381750807822061251772378911231217719950746244817670624031936453362908329576260020964175903200142165255617274352278192343525658457053548799864454616567362401535820089915385533416163527777879636140676413063572635837231853478848735435676314015474077515796865669743247402735889152098709486496641277862394981749464815971324592652053427309291129785124532009644949824069742039824476899794709283195878208854158773326309456295939813417428403863066455196803716703165994339002477050651924906639462824890032643379728254335676125076116372840556700155421692199593784289173966997606507934043241583072985503195534552342524350495692273226217690675995199183068534246226941801556576183558594287025043366901525755732300837320328060454873199694288475412731805575653531827166491200983444045366812752162958450958951631995261114602631235322779209280268484682331794549029915137319779023515430434996704663079004354933470607248350979379407061268263056645038868445816363276312199552772849417052102610358897158403979753261016670536172466744286970236450386456841214769741911562107092704107762221747570483654225382135439466401662904947629641593390370289249742926983225758396191617173067071668238977591740878999258390458816960598558187152614479617536963227064122697373366604907345760536382935613797990732485780679190999343509060156231537533050310020619216078454763609842024027029449799399982328451874990944187725832354405255442197148080513335764074109418748446946188632995162031475011515080764977770632997007387895881370653854620916679658141407388296422072947726525385711659706256993142437259509259527968828251651461063964141976165634168408600590964384641035820547782722990650181816462142632297297497793983318207010392604440003308894230335643932619765492215323226509774315454994732600807795299569761757192651151702723872296299839483560442852637978749646364954599955430362060669293366965101321391230083810014422360255299157690366062767976396464737109187983179581823346059589509171019530549824677818264203622438464126241683580057303544096996763328354978649443752179737407138086725945879543707726280176367555748954377763850332525614671010454064388117838026932420548009060078299745855387055353994560357564509795913229752941568252605266782120386110106515642194065515381394304576020503034778626844589788810807797360364330356878735635902461951460095113633720585806349904075684654703816120242964196480116910488581425150679406145050215989499841378328816058845262705689840519955699430804636602896063985572819053730462035965305093586615767976790100162174709399623234622253247820580803231332177812372229247811388716304882728947383566003327912317955443984050528989024533416802218439929887575402290370205456033779165745174089583594557187275636841044876541309521585395074379419913883067900128221752276703582153796173926170537681685028340493837348953750480065891157949422830724990356540555246962499921371624157574673726934043061000530179903876805448702502053822715350147600212184479216548125281359645245349584514276706384296619265814496630791384736330270018499033961993171813024093623882738770012243520053557181068468846276163927376900172169569298001176087429117197130280469477264613160940978383914686632722192761186240804792365151298599879867247624537908825653990746642850346918397972083740209093248479664435099459993435537617492475973191346489871857222267055048352919264622901525113024329878946475007872040213039333986190018858195043904761528569892412308512117657278365993558000305329624064378741302168961689839776934160136559275809425298534413982709322091749066918076133648229325230016101040236256885873628707226493284783407934931463270547976099522254592131039495372943199124983973746366954090256994984764152968510473152726658718076375206833189668196849090404378078081137819841390576074140730901303678479470595533560915714137262381512086269769810821708533774807928293401254326088703411451047714160390267328456403763067464000435017805011882416557707523213579976514909477218432742190011708671172475181192077531253756216725887715989599253231267674402475902876015086385493170841795619956627072212454196742238699486435328291197441893182661851591616617766028636445558468133299167237601723893603855178827410891761498292000169567034945735069876677971788826890478674157879962897865414511263367883796521389352506000420879142863326422229649746698307384430362153991930441630302618957775883452360253956332778785169157791845354973170409298046026870113805467239221607719380167107163949171508769753380954215836689386494952256292238047073557818745926986704638033477593660467996440684231047036333987173626881409984072346040966073537525768308158090768291327494030807149656415218239289513332085078005980433166893991213271310380021346387938324542009823019862346763533304318388815743269712068509237088494846932430569767500014252548500974259673176314786473097766726570596492672670132065253622706563857405399398925961015925674559062911026421313309491413760659214360450473168777081733353150246812132535791168224747344505014179236680118149051135603438546273443033454632734611576938426962680143632505044332725404175345206881071410716017114703694019305126126095296666223694997684141294209117216743332367141337487799557517577935173418498748848717671732515788632262816674793909093449216179535162599083813796966765288407328599841433678406886569318025753540998870240704919577269886008590073155250008906994392534973437538368363587086004254312023008989725705593815533957765763026907092629253636405395521357422419760024803696646810459460342572184077775483713270769489602935189361131386139874582788149006696763789790554336904384761809505579839985517312954755530932578577605428636890110917106709199154840870694813703238478723054022101409998879170327710431323835769809051951461475778644619266171908977543854609171227585474717716748717277676713698347052712809284689538983625137527636533119626374920753417074102973665120741084541566666120908620170973560315106472008202944456298852404749527844168999090902530645557582138198473500531932073613035562876539013247057105540496203661565886709898507459006836101631809359652887296997980258730730895710222500818013064625403402473289176615953755072504546940670416790093483700121845906047803852409544153060162775291226552759567931001923401163091184338236134773471020233353608677942536188575660982111380827149523229159987569032491242256302740684737509253592626951477657920989912410253050757252349339300572924672964959058753318210905673948419250924689348834295317824660623963590801737292938765263302460914307173848012475278118042509427915882222368814059862719000967776825644517643511598041883682349417889045632350719244279638896255802630188264488672057141222060760425285294401542463877452598249922766234314829189821044532879981417690363742391699612355411080356389483037668516689314140222012013768495075101245457075629588627415281437448304310642769803410074968350254021055018463123930651411566271520938877996967957146739447588226714822526483851089258229585903648021180428647107305554041218048323086354688239415341748110806770059894220057184763739802377250282030702139660071231609986334336122755520525404929724041969333112629302800643781641872803452172574225679972484541446813380203392603310456300412688032871025956685372638990307294707614550815188387249501258826415317741597018738945924255152375339462718861924995709606844444539068778648307569608082521513865606497999549617215301733338872466182911439039541175417350573249145304858534056620471696208568941315570676898066221815067142906355241837383704536008274859151573888575702380673422217764079808194631315600222416602268185540178256144940559759463226440451815525317441306440392507898261461696372965418894115830296963902138777358979224077670157763354771566366294631575049206015700921718053711386245627757921435799562637333868972128017916687161112157620293199067361192560748801828533722390146081754705295094201133318741948890175284257502669633488743445607845846716153069556649226513457742802527003712810051060017632935788273515348372804826307076273901403132504399088212977905276065638240740166732224076151178447481459091453880267289932191373875386785517891621970352440184599933776339120976264902306452362204916486982871429167368549723850802055535207761106621416305005085767678584816501238673333354304616394642329878286332077439760369931985299862592102191265937535708046144844829292895785740495341208820056789568596493310143622283867258253432019264249669801773839812157489221623104838047643823720176847039047845680964144775005666311154624388219390189234117201484021491718345303659883836322330344175939823009280444023925328337287204247404669642191092606642617642117724704127801517770162528935020004862192022531125007250919763037430087990364184298904070269429251614157462673649331330960588563654996882741710540169774697363874375610853280017030346226690584339518569959035064662477645418008254844513224700357974283712912699831499384298108978280761957116222307272524587595215720639790648931724998984422410079387623990798850080783260940098359838620479999751459726682197119621645280970677016212561174547436275877591064898521838879796779557176154242188711924284578435919684480567260194962559210705186472326254148273278477777523448331265582376301320399019835539778899302894179807054579363043510485969654724303392890892533281230783757415553455121141584638637413191037343692133484349745907369588119047191496598959982986039917265337224084303583150402512064565460439247962877684026902567768913212887973238532914412818535283954487398081374261415467466885071938087533394180106271666806812979439998532565196370315671822876490800727561494336558313539428978876575442870022159512806935524410969255084209579986740638320336537534842829095672155973764326180072852714290009303739393701813146523935781196871268455331639250930323290721695101730721234578131401328665078880882481960598076066100766439018032835865362775254923398802761332601897075596050579530196793786294471775896425158153000781296636965064285281492186612165191368915407482067920248733224270171224897150173603969572328412947989551553814654832970660094443984901798773193292525831838606872850481870498679172371878818330017360294994416421775114337736290945360412034714544681909117314478337061525121517853107880522974256496543971797929213766402485239713553142245558152612978853494411524281150941719949188481514691553904360862606874346992391814404574006275295899866050531944116060288364102565557653036798032940830532811034065632667875135985805854428647421810188255720474511830457536110541991732862710262622722413737039485367981462716717512517912987400659001090302868774112721560124857542075497974280843512364856280997695295850462909187367373782815446402260106054430424019426821025077518775956704012632092496889126177171644819697113246272541927589366671054795660191801025576793956691567660674209489181322649254816010653410709392163606702717167277825992262149045716629922168000694806621977391949326657623099888267967914607788287544724852132078645597958501702274681943226728927435416883653829744834102042303113899482373970701593629502721643858658355240628299957147850953131506425324401368255704139300208403982254758019946666129991060776120973485083946838575312301247582196459822844944065794891326839496309923596486897956753549260452250447840651880917693439439482018319094952224217698560143437201891005717087870632452547608310345219466530612557001376293411327845531907631121278332046590562896562626699372672693986257662543194157509765947446494133160186939334177893178141198214312809782651858524136164247073180811520077152572962287488800975423539940854374061139695859065436698792350734063126539734556030507241205675043307660869100239642050528837181573277760555500946787475139637004104814313938844247624375889960319865367343722890189240774940558829954468317199886715834448302999192269552142054722161688366568024998464037973208892375540634107315179868189856596736161431866590469978742476950381328876494128718807674074476735306589323682505459723925080399043900928537069908651815643024121998426454675567159469657445342267642689472568589576421798047228251432075375479799693645106017568454277144179916322401065146839634538979366383092696375366390145240222171149526387518248711028930531318511227275628321478188641272151629828295146850408699683374218467635809577183627741345991123347830119124262795651094896980329724604308465043932741142420848655930644510304751587886623543089321274773083917203364027289302331000680970621080783036443747913330240827737623598898001628198299419754723577277463784596272913124780497015529287073255808204569493161761738892727918169020713457461916192294940602639817513066946596828584324521345484413737099930114739282935534204276175681214285067769305301197287574091381610258010095077644158543725783865706838873288599200792585285385070850279834460289679672930134731785739698412568160464955084299037999320824372966760993204703100162280558802802120747277293193834656434856554059327297328091559839158031857747340854650551761086741491463923432786601960904018780821489539826954987159838413178345163790425715205139084900034063743394066791736399486522292738196791437641909827036559511500465467774675783238431485845615364596889507636926100154696860614320603126417037280925877022808309334311398300933569968587187874289228358263743939946773074419532045567008169178998743134918515687879155387512452133407454634673651337482807332776894226582984925433286934321361363970310739643490146165113904850817394093476153645110648572161220542188774624615627340692814599335525074672227116362288819928126448575798433952807464965172401023191167265752840233371016114470859797689337982763446491956900080780513435440232485955637462201201333867914623967145652615960736177213758335545772890421166586258369696611511237937413620765862237319147453754343408281369247407771217616777359682864914534610899361356121561936175351372641846970936995001139519967205459684950046657511651588137090504458782741055272450526342341736556626382570024899978838387133640445479816294584379913925575707085865821002352707311843810962752011389824646507231833009308364268960570070618263889522367910387276260252207408929673543102909725177439830293734918298279923846310189726408110796258501745016278679061471605179201910455898096297379732903373908362779831320366555050114005537777900893106956671934462455320576601997130192241811730160234891836279570026737891865753892499180263129265014002777581662130288549683842876543502347016167644254324034634296691381504350099517674587188826980360917453224957239285959445435361375352794194305924707081715092357756474364350815055394412976155224010176920625218581249213114367105486382701306172004261484722049257338455968210661565242340871095299903837867908365862509897914430190064991315474296501669885069237115993383495266039257090105000117209437878146243148786218831615838919116053552192943538852253140853129219719711211191941172402381286302589544515568544356799066215182179527182835077350918092200772565258280210920755471549654920518489374100496089799470354023761758645617412498003913752854291660504353048196499959070843948313488103508284178634651153319352285973534928306196410815785089764741917784941225181186710933447509055091139759191498687870596373002921194931449029499340101056162954461563066281010376355446458445007940329818025735500521090001607985694056270670345933393153424142335464072384588709377641638260839817213325569296734482878667866271025503505567948739293315231574031019815793442974541262311110408224583856630634689463228002886424315275957270122866412658325742116659759250333079771903668372849784984229634385226530941469154889366350088694276269040114361683050395618990004223475708772729805957180544320430093980643413334778106890849875676405597259337550295108721399459472623460174696564385247127666128053207343895236751584644733359859464229771514671470677495779896270606946795375165080750979372883130518620794650899488124433146189061049337113491305518589271967259338910148943233024695818985524893270522828793449482207421579974929088231550766773537004259289266040828561882536007344409493284642937627486537630132156813234303270157733867966334315756746998014216107959204473322789516869983692963564978245290966672672482862747060405972907631433271226900347910800438738597486167948332002243315929186016428333827474894004340319911667481099461197102588122091811672043339288101132602403417198541369959978256114068278690123735968688474097144202962558494669521613166399458450112500165797123775615028302523364021741788812022186738802084253241199912539634389988497187848029102617762560532646374484555240494635252676908046914900989279728680946455486606056531679654966496566591180460847949293021990131157140793049873442332392668379557286711550693963811375841211332306250412446311276026920081095371392666415413971678812803561636416977489652253552987449293341640516289925879975413886577019525025288525615299396263084175530084261039162425057662755972797919970063073291101247217810459660183763392397792883329426586883107683138728353988246556629067339347974877672754868831267712552621186993336320004291143490296716652180170957224260445986191840782892162619735308113541610184816730611434720086248689767994237115502973085233583698479664207007355646041820958951829188407027491730067872260910763643794543711377607404116670552527860285042786642679291478774195377201997032645426735018681161421149534663920953170956721985753876102515573134474585214432422768929461811825506567184073891436637117893534395812329631834393419646396268556521205106008973856068919286799491452799678286396146580597769735713347773843277056098761443371194807110633584334039795799640469164802809856579276651349677863823246958440287206092317554390844704095272568410299018723614517663331738564890246326613345042833531820190891809176719211004950424521657699421566324084424838469109068227846298407420211664855596223012745008604998714386097030980664944001249679358778129095815503881812987520994975805894402105347675062833728895572835897517315458215630970034439793896616074113428826592441482376593990889134420102937079239758226793851720980103370120011070517309374819765459009319706357154349659171807729250779055509021932478691395341222320962748079461847743692577241420606921397260614177689659080306951389340287226570270253302875362194735927175812929246136699619090294429161867506917354828472265717455115852940262454245712195084901471480564985479193276874384863075396851731502558260146398873579156936922278537071620230453642464283080385410265688067239995250546366738125783975428551049943993032857989690115210289483056841096009775967726510618038620092506677111079427705833252881874449243636851230193802848416050712441074448595760205749686351381166255374843935186560186775764403339521012543363845157460138596145382895818184089738263033905615382351331466583167894406993484868787879117962801050365781973471061062599581519740891387861156667887246698141775220610393373150323151405700114868502848713742062543929773490210402959768094997867219813879004183256200794066699169787417750223011444451086771911281035854020999911020532251891639847756719109160584497947622339458983637096805601677712291908483311617819850160693195346200685373532517322443455138195693790203765193680139295348452329827696660904626644747847928027346470131931756412492023994716951344298354261786396423363903923223868323928962872374378204170178214559271908185418751470376301870581334593742127032905096654328095717488320101390146424862449354301458484107835905005548548749575554584562403803889758501205833087926382048831347206189410465320274905294134481265134175581583657760463234728966230937735174754143233698049789277319939124929308816296786002115842716051955203907724226734354588025911442107211770037339668761122039667984188268450451069753176127790045699065617902417890687363166837202405623486454635905785839557008399273742025793664167911737728716597841432435425117113486273266035827175811347562991797594075737961662623299766973613901594326809897856795159605730990107952484801263363239287542779364844396901244418130509421680880870851878669940477368317464687679051212926758682253255755515240061403539266848085304890350528955286245198569914657700907794406859661585331005103728168680965680898346109689549497225994495130460823195254611076348180424644850792204132839682486224956090695275969224689048424001722282239699646018780850783293155986465369894243894898662884178776377341343695999514433377861020166014951383147950348430911051938021016423271542946460034096552030685172880204672546130614556395730126162013316586332004853507033687436936523851562897634848971188161846716666226242108022701452371956307899148810501911585928269008244552174882474993503144162330711705828891744060675060313263470088989674177799243873431510085431911913133693203561613769025999348312854135790416162452550827047772179567052246727802723040827927204946896872656321781314661702640783401551535223785306155220846880769325308269995393469730605033856039351171917988589211518670034267305378188464045286639367223432024970572463844731885929370422445296240814338233657231989880184662572642380905544846202018778904761434209963836782763870444702880288568715208535985203617466303847829267004346129325940677907386520704922061848826502210476204644442003677422327063791604794720109449913677673405412637176521380772660736881388932559527780464939199936111789937983878559649660119261757566444937701589807787458707042989215786728404423170433561119987701064873701546459475254686799348188931615615455615558738565727634598785077424478068491022602223929460536596615539003395921424058516053363290125972769799061223951821353327110330487665610082903853388043294188989137694666356280720732292829193155688538295821255192070507420858388896981626498380543087574592286703410905996453853616438494520602481933394678937083319208650330642735179188459655462532238424718654938671662488652687618112563737766684817477613918916740862523799146908062690557274752936801064090675115351482935256123519630532797564398961776975593799034831659628581813546723383588310662202459878734678316929657830976142574019674878627271083750458540993964597360254625535299595200986571439469512246960140604924049685089540819460976651559595111969552228322188759061111772923951967316304369283414295233785247368520444848980638778209246611879430780766726744758743248598222876993697203254129955075775400026058243587258207656485824335407278216518516907814166275657461331680369279262024487694190828654865960244300028882369395238179016232692568499456908008995719002863023131375056893019495331733669547086437877035780652413625752686568654286390572637622275415983841076874076693823836866768847714849765403162989896108737374314064445597496384555742844949622012535776515453702398535331728393005311151442392225837896513680338839795127236213293218726857127467592425961809882346070647058694558075893952807380012304081824398193600478862414198649022024335515413099056453406284133493320487886942995581339528616638662031945951114238152593193270850580174228977097142047922956428244039259256073403916932926918288013959721191825179833697313110119280659925694436401182199511098559412524518722122069910062238263828025108625051701599655585668611870846811867774864626682127483056235024398267183991929266200170640547252798325284673128491466763581449445496199958932897957834752897123388398022553435784832893237553878416239263651717483970943804719436505058866783267569826457368787986977278772275283588521809255715514683452679387743931968381640230037932978200822935681919771496924648704220068194652286065505097261839678620507552457881637887691480225130806214626910822210481561094705622252509109598658410275745866885676495090304362571295452139867330185586901757721580870950505609434928742789488471260814798045400109377542416686540341013827988434079654705125738192222844749017533317275459345316230871423934129718074039334087747387908371264883824372570800859403458946902692642834767398338645178139066695046418961503638488548006937400505199289789687781063491068270331816634449413503743020496713204838130991725789197166569291760511618561492877586478596888592943034068012577570892124676636984756039076346021390915317020222960767227471037524436590917202840648722547444210593197910330341573349692878980571951182631298357956163396635423826531692728666230181277002177776245973196908562629306320810696756233993352355008401658385950385225780452946350349231922142293189525530680916843731238769657633805228897172307808868463231746887064732989383595354992397566972908200137514509193599621572539134414695141539543728474541551242974342160524200814430388130827197497696801056772852227538508249392131062881269965666050770463000951734218272018326325460572540342069825451124445544488940696021133118168683227800091075062312187263161324363520770371436564110977168134985370738463080851072603389757063650096422857685803849351746643374314175495214837873903876882131154912391486077532817833071428564731338788306119618024190106931641263263371697421034804413845072944226501047798148184316056995794851305022354174996760571623154409324634770141125253486241515171843552270142624284111719428178018337532016082773785765622090810532050417761346914591512979210792640629375071708738997885710743273187069707772811092161127500378982543331307716637252805870660553365429691218779100940928735127013507954028829459659751804111508150988424720531671648445992567737665902395934074837562546348076836385016988832756774219989930868991104083779423651887930734728521108064892934760352689741719400720928661006352067398505233920975838012554084977312852555502050242221071243891814080680704252991980733329610219780486012518270531584159348061867028876605068167174151063316427669924504421817898207076009016767584653332797089131517675501171101375765544084188975383625229274685352322296766891751693546474029714423557916337486134609737092660279839974145761089421670409862238104442281839594270319568386311056905583590830200809578581677052311939243280660668312078688899981830598166375311130301519855586705211045823702796423089457846078107432167390450623496364231912149935966996705142484462725602166023475997181253577917596419337093912037993449609865628576603692285332283525811323352373855105455132020088461954257829172553094987127114047521521311237312163101115181434582656728983415296002733034435808853281763882366129959490498003877152340934044865811159622062533084337630669548656038617667951949718316654807762652823998419772490321735094437192459991688160240378446035495129600321557277127888680172359690576492585559727308822619219648627854565295394762211336511573150709389372207765757441233899102905892083219078644727692112756021976556667314976459248991459682901654091330019695669279376292575046802402210144794092105654851212585432547608653228398040613839117488181250750537200394824699197566283370109283665480266467268304514011704283180232988878747528749275804662120203753826910657988353507168018731826337440204384238458177293078173079542720848712225166450764025743315513859617170754035088332854271009744171121674855350418370287392488332047054073938959720297975043114208222846290937986746418661200179013696941568215615810488648836033566657505864591945597181324043834823745182602094068020485825755258564592923133546541703390278431474347652276029399773934231073146625227454332866870986218335242179650154888634974007349687303825002551452789725835844840764363671599327307063799055204623936883477657795065476759146622690974387452995629913949887509734716277435847943088175305666806463683536425002901273529363161060180371532114573548227365452035972303522342187824057895928081973018981618002580777533588913313109097280177379707608883377472873454799689831323147256372978391846230568423385682784455057116974391685958520081048285070721166890162862911227694603013878067748152527596936989294923459285534519346736058245175166246605685878667227790299829278264381214158963975163563337146309820500552323489279993631020200099365683760359605331517248971581743209599186493206466195863823297513515517195747709203437445794231172224446815671586360141334204029532250591677407604829522885102626275512511611687579585230586101379919437504302100105284655699690296450277148049330368126830757121305153076142176333888078225946008661446192453440916357273896946458368217404781382061839950541624848046254591436748774540771454918692223350328981400238021054549292029795520463320318523420000702590385243622510892105463886190905840031437401531385972741174576770652447319499425199656325675921959736358767460714528009985315212126943355342984948523951071995362053673206631246733485896273370815715118124215865308519005833246745551661655342335633257497987654409334679995181151923198624768437026644124291632589009554771968455012697549546029839257087250927796487547157228560387690012918746539877604321511202255960284860653059873013478234626005126652637848257342852944690299118481391439615804895999928985380468959890424157456424657128177656030391782319875967110786231615508864085072076301325189173839786710863596913663676911228225054288755565692641100585999565163974316749338251225680053150326540554952458817018790556509260345504095115892499924286759204816266392597567765582930904288636139869939357525201762576658278837711226535735544259968427191085328136988263889958563035353561038628742801726430226325006200843154065339837670257969211649639353923406786361007400756841813720362632199179334097088250242483788519572936055830127147851050610369640469387794632774384662282505575731196864083231331246117103706863140638822588128288833916482886906677564892661610897385267968461909924456251490512892368822393077440160554714141649443358587680657297097675166962590885343834151412694635693630133874876993014335356817770695642281660302951293846941113535224873615284201164123035755104477805713530692387380957942729494411346738724942635168558146684426607231968088960014422432195864787733768636157333726029514093398455564330359500971070452985485673376048544164800047666321820032951833561891472612116509817775467260888644620716131020759933970485605195839040826896497519899807937943138618005204599979340475060744492509531775736322476382259695780947373024729287756809758243570439465463456866353306303190736607070280938545930889882184738937264479122971538650716557014752275918293452419955236300561625398905267053492421929997961328968010669720153004037676283888927910764888124276896466955369825602195837119282699314178016482984126071550194526552073402743825278934694628566103757752178420706226667597234228185999191791673463123827159196185334914259934933389665125222029472451314551478634530249554476932039456323609904687421086078359091350247036215662679410903185737091939832357311246519625793781871768457180674700347535074252756158174163718344791102323722851859654395741266530466591558100743042474627402181511890440553529176029470825656691918279461937705547092111493453069995974835578650505704241014846493948885521713149802023065282989040732983110804643516610162712266796380312583833902017376476899290905538832814533747528637398242534399036229829447143093533623259382757090327623546094832239747091090176939268750141325568728053252415174423148354790955380722702958243942023792945109166986121586953150466352407760003600356938737229432451513389918251251616428770791693332824402702018912688327276999294382578839641672677142796257428692804326174242658780053583549419734452739523207837950757567909359275881371076753327026589393875776766740628044782404108075795455731080590338119234532955683352648458656421702553024806464636176804750676400936120623782867541077957393165256727637715026393689999955867892390900377230188402622856941182719220961273130876108973020579517135911498904987641552571128704513531353229210707970917511791622674611326512903715205284547162676292164090053696609603058769469352366065082335422305605759038268885157241864312039467952507445426385086904197606984611017352624010019052171603302895753043767880582230989467374457026712583760664264428268789769843991367542873681826487935077449693027927987258983443061166997616955745379451884764339066837822830616284373553856077703839340631310718650204017197780099456190732330463445902551120055756220254144450864169369629448996780282289459025463295588776693564811009495106205990481252280178848714484072224249823078821009042563931189643194386973293086393469702347324242619606118338559120009063064999190038683948230690042797147742776513510858428216239805203055047091975382206557228188386513506235080831820489350071142846965890431650286476904663886822749548324782445495505254404482095645718508478009561651595364637233724440247086336030594743411404807605322755516555767025285122993733237171285164324991091151529372668910372526748493333721922959042454811369301471934231195980235465170991902632474450803571867136580268393971013054761491834743979447637429362779149649844140779510348617230583811676288592288860040492144278043653782089426131913743289794377762606156125980972463010672454149955478743976540693555267502853014988964201079961041439010729526433851943067399497326804600607937639082848522550454285719385663821911971686877793134806696964471298637475147243928399864886582763377491363041824829252879269964036760117682342275189943056807875917173903104117788143263433378837932862594823677189544631092161775846115178416154595663537154782070431418715194175538291503190275851846473572203748465417977885518169917089678318200125441116291372466884329952165089344764405176822188938983791241786079968956963094776339959081533577722445588977757521468057519173139368497786951049617336948707130118004740622068746168148538476433472117340373041722854912413490317842680780327850451466257758886681837479551137417058788414554417219200987497626606631672172400041626391837677878798916175573473906201246889210080441210918051713825520198544273590029035312643731322706973613872266235718555127437563063618706454197380788513697586631508215707897537370053606699809524833337608913884783675485785094776816853335705051145232784673083967611603726764499427148966332508094859684138534796756770894223907426554710047216718620905488421007347322503662220462952450397808906327599066732966767081517632014314455986980390159131149300481377868727649499499014240167399583313062655732860306169673528630872779798657262054747965962666645273515156038335981222511022350542670578152818002676662527105523682605909658454711424256856678239647620901407135240459706130610908447510856163409777637567596840306135588374805782617961204516833098490258876443325443801219083861384215915225823063740238641945937298270432442668315281741112148604444397391490131794117282532341764481081875383229380282493473625145875510840058227342434041328597287028853777892276756769740687038198012168682168307709088230533802997775610971429302970931481485157295365188387551412016837848309793027711174738877093898340979348746323239799838570923961812896014241220009081570600656231198684634548817406789946068587552738432964137750042635841477191502491075052771091022291993823793649835423150881160130009715198036048629527267716350027195683567208757666104314921035797010185310575225245506639484902581291648522282460896140803538533391458884242746270782509950970280903113413430350666423154009350763870899469462736656523677927251237778542249016727637958295540173761856793281079270772454729436029307916116346015470469940014317845074232392138569013097877502787580905734856956628366170980144660656734709425930264951119798852535073542744575308874781028709102162371559388077267161580674312905832373984989876783111937472571834107891491427504742142843623438380398566860826537472110039186116243185454101731048498908720667139639582100801149169347347609384041630340235817744275184289292572753820294051180586897874435151579046028845077013994728778234181107171822575890668671229428448663152360785083188407246278942163332867466729983424545982347612191123494307622704216198405203595520256573737708258206021323908822708031685803374248527041058989712894299829297505836847496044521690647581711522251518502503278733343313137831207257113565037760447050411276003567141564040753533190662952212859928513237820056319700058482281548466467481441246069135252766544648784849459763781284936199431270887488557933917519917972355943384631212027076383237581717933046758157511150089153873057389736833335625947543909224906903353490125577471679760555024678035199963504083414290665787362247153731958738358203146545850142951248146855350347107833923989203488938066659670326871710379171189538683837235599013182746050818927012439559702030489148004769429828018528005033618107507588999908096285218751134359881976565037713016713462589198811036265631302939614858595097851620052421697879438931731455458279553864917881095775591536884532900630899573395179348106243075738585305014592142494517383023119603021881148171483687729269571006548147940623979641898523573169087574816247078847608611677952346053671288132912225099525872841573671148585847327166711115707235891565044910852690360634907285396797592361403812563060742829910573744904561052858761115500091385064620042470748648016988332346762180465424901854237614654779580612559976644335772075912593861236322036788325313158974258408266691523441162589426559801121647079938515854845273618263464558897476029583114948089242176235750051764934859386194483850570732114990603818724782582150776163889070074096222144088984304435534885662517441030553872819159536573563738910517013619446215835850459415612216806771128423880530946037207470603005771497850373711382617381231390388917004785488203718138162351782825119986969324745921958879963176343661767573383285423370354273888656966732675792078063849705925434240471624437260560388588505438742717662307613906708180263986471635578031271610233365638427196224776478080176278588521399466093993626514437176952196181507712648451251146091511389749379140899835837781542827875861281260969253699397370890099048551333652584541269234781568048228782252749983903540096438571036260912361938062220437557272367496548772249779195802054672977512246743268854865523481455305191943590392586354495673405107718501435487864218847424081114850390919117870619966212130348776916794277956564078219262689440744627277757277634717770720522353440768430514873774559262076187895307738486313674496808537936969133898598689252676084027719667058566284265657377460449374088224687756931235168113838509681592027765457136704702990208710908369348998355383570507875617147477549283955767522606099020319376897243110771939217523920137540803170493721879934386736755792278941570862302992857491038680503740592684919595875941050764349488004612403161345689561005283003795466358461741389943417967529746904786075883349984554290494609419725611209421853727486000717218635838394095298668408995493763013626270148618970247896420360317839298717481267173321443860132901815500767442956687942216226504431736629309730780246992029571452576090933240615429618974324441548999633754984140366143939700194305102872751194413308920193451111916031212759449809872757947033295865844450436679986607033598441936791340663377532953740626956449871839646817163735566983103977809820580224456172443637907086387612951083830070697416261819862575571095312315776564752712376924587786955380794352837248689740018622112345634620215227535762399019351134506333918294658553478289954777965513984442090768826814708235107563263426351559689703651076523370090783447596119608975995941574556668988000383957800351857617026228097767668750668504971955710442747644618139568370701741804830276079252682954043712385886588865272789795081917014115463322463702540801592639805382992888085155769843317171161696027640852610225451365352448060114997929837548155093807463705641553337001471673312923873879293043236715009157258090494757494881597000013260965908904518377982414009919878410332178819291264319365743205486948241980436185360929240730499191045642580582148718740954901369101138891983708067129973393564586991244213835475561440975451708684153742927655685462718712725567849988958453460321968973774707803354070711870450036565942424651371152238518534237205675560525024371571530558933240677745526402306313259499596975775765164011854878739738208560386730940397458619722781194808205764044606853440308885073854944305910308663722439768214432947208818680671141732552800883375689491294811703017712043965587790696877029677138795491966612155334024391312906820250215026214437865735298171788694568362765167083071692817213910500549818607802229643989033047568161065891269723544676099291574244632608090179093422165356647854016725291871339514223985257227545633000338531983006805727630468274830464272402921299984370606015370958572992146206232992339888213358345295621215378541923772992538673034608408724603166178489857473930827778357691996028773272843676939104503005491083993849315194951183499735487025229570643731724462446022480615848300878291377929714638388732117063916546559001659053140349923806403204662184461516137194005568697382572114552572966036893223915946088172630322989489349978723404876525343640644473179421269671708616989203293273610447594943619584186990156836001415037598812163661103813100522522902365071983078756214768845385607638863139838662897104026943504515112389920477747839646610852831850702090803052001376622178193664648214355761247521463075372776963903594571333028494568498626373415631582628702197143036565456115052025073998474393113266799604230182943292403413834250855596753105549864338318201394557958787837645570698898643283569736636574377085235108445171105388354774009122395666123647863226662863283169049401761768260327591118573448308821254935666192535649029828135842003993613592997800195959679484899047495536926388828079472585437273410254569788595012435843912593437753603868663190412983416786437058375790225920128283941187757533853402713997784047375962526174600447573074951072219160494521289688405177730700802398603992486597100373633578743778761018561343671177327263360907398996628973133599749623792715895467405908736747828232218860278533203716447680456592659434525789355273134024558694815834841280668917845928795719446498892570114259513263411429147932563812080714108196849174015967976327518280961146526745022684709505694116886024266313230828826388869351354436362830201172484873561945319289784517557095791314417754028309118341090675001776350235331946093552242069617349366748289156937418861858371305234992370671657538217641385205903052820653563314474807491960981768680359889540153237384879063443010839706097845359909028205315686592295961785731861756447742840089843101226439928100386188209669381751746620419901271675299332403312924863208673545401334415852827464391130246538662893381193753382171268700986569947729925147998401798646234351872384747974773460857729034888679681064011684342710046513570621309920357054424675092476183402706311709843339530579970669414452913983328708240191776245134542847451999090098904991325319437264736397347466887106959312356485974207226921127671100647797860071007645190483975824262447176377968730425717344811257568480377007726908641094052542338430931926763620777264755514911498207788304761611172365108260401845751436662696553757081692635302808872932777877285563727649172587511542063208436230327919968064208160373223349272380815207032898476886040268619578163236947291666866312913765579142699048997664414432756100114610224176908871948358460904300419384840250349828395861544900004763467114478858996231245886344036437498283612107065270506012070941408257384426290290827913694726512894119628065216296523220011430416105166084389111938808017409227728512282146588593512503222414261160273039786948229562812394033427469180735432960345489904163656792314731867308089393890394262973093722633158838317457406335337760311143045359785538637413307404824257193786833525018649122095625624599688814485338115342155633461329216688413610857224083410121191585713480187087723025246405844241883662922058273409738017207408623957382823471998862805267015253549540694642884046009803010891501088567705087904969518493116906116533951480589158294511154299393367770810602768428584874227549371453726195367257590725719979400029583848825391519488091401782297724454442482035115084475766783341775867039426904495137496196881888483442145802176741794943119111018046323228820097551882394764073971304206315165092132062450326887084046201770400184030705312671140253886174055072662680944278640856108562207097265498702078744166204287791007866719081603222904994501820388486302333436737411088552513964268970219220544245838609012829860611559175871485377865352391174517034949466415078867340631148852978035513873435963691743080634293035684990584327583323749657276448427819031396626536989152245579734113149081525068364218688959953376981112433304078428109829267212768059304809295936051684215442524873770491600290464506554965210758831572151525133804453450875892994568705678726908511865816756798458101117875140664006296961198348902311991531075396956071241123154590745585165751122178898919159069150957820578417218172783308748035321720459931285583520461290858040288398311178942134769112033749171658358129045709294133433158768772420672941698694224963661242531405607898986660896682636026903643984521668181208671521379387261286285790312447886441011008630337873813395115138474858248206832437481644711166497917441654867298939293884288841492825892888682628029353675620205248007111058490762665978601272585219349467945782496855190858850005809785907028505547797892190614720194150373644406017131417724790003299171897570735172677694292274434378000900553063475707331572572791889082843859428035861789499732438316185136620133565989448605729566468698681474437384872567086775695812608934628889427373003665150860352768661981820576999881175463286940038150370103933764452711199098490161253254615136951539363034000026836560665750202734448456349364017171874489970695038364924371112951699238737799437544450081008449456314571048307734437004291889508804839797802754092682367055889626322595399875243365037725848232842311333881207137211675314672618638422984652760013361009992874115514328248295949479001893565194616722199405957002773552944544424799956491586557909643333922797815047067462235373163719704653181825532768340259951984355964230890757903263258603694217111827851590722419497950364404535781640757110753263296828315611959473490812550015981911467740326632971910593814134533158728636409343599176916641764697497561916834925404989555062123875327019145934931057427682371357072697071498516321585284735454086399382829845110373330530828923148183990535119999315943141878870049081880052749501726478699095342967674040248837090146903043496930504183209370983523972549397037944074480336611212370802873137842572515767376081167453667426651162550209701940948227502303087386253264837921356514890089397500470778543899466323867540004032817223766579940831237004007959671566075445150511429890226425834637467049103356063996897505841916143455524035572093883986206835051460022556809415502625664670467891633254742528134149153681777432646630577335086589786575914210643376204470997705275336229147015308369427623957179590836363550625453892906213536868623347254517337394125338788765309009000834525222932262695605210188970688703262283807194093506603775633093874726449089186893365603046165619038329706729120128518660380315846478784085769013978626007144082160737144143627886568942478233722291309240570283358929016067193959564118540858634321045780674360900920119937188336128303486629165419248564727243368531555659559654217991502770606959781606418894917471526713785087240904068599844311445716802554403613538521769881118211395762535436789287480606125629881195291417381143287145152188261663309421047321438297556977259482032044332588806285858130133527111371096999755902166255694905966167743502729332803195555127232292802443279014818973596249072709930150099314442578106434136995527710117834574149295168801607689572264435344248855203611940696710582758238050700180069909399259356271589065427406592317824544739057653833345473408345529411384104564762914833491005436546641361983440258769277309082549684833330144368816358851814865157200662993666971449275126948149558915502053067196953626526264811836340286053037865000321027260065263491400470769525886601491699336821814949679052484590569299384874907393022513878996520162850014397545552695409171980425095422557705001120540023188419771671179509790065888379685334501649741461155405730698381493830823299469787486946799918699869236348815549390446628853564119405350938443472217756779933627874067734706881028715662771488605016548083337458299226960805582197807793216774392181632140038545334426622400453724377693077874233181056482583228481086019789237559987519850226056916574798602757856152815310374333104086422252700011242487654190649805561381211320799947786145679315061407223102660301934573278750623064686360499344486169697262846473223512067376108432563461235880942732448959266070711065468668771627349977690065024680865759842021523934972793823045808461375300512072266336583279897748733712849002621149347495936217822701404013800329427124072684765082430065221369693230108364081869303657946198284145839659994072953083794031243750158073864431241652884264287159102921824621259965486352439365213023904044713704644966473769223929035727956989427407511446105876771163668793103540050529198645536770563099517371978728067238856850794898478550890265678223056220788672502293852010858947610712671442545473980874433581554920729071125597681388308696648537012853428601098893396272950466133313222638465155704513998028281350854001501103640701847302009600512959922644225949730460453963240207236105465879000079997379727657034062966417716332088521074793536793799313433070752970528039175724620724177607625931696905986395125506598705168762198808548665354775338660300054006315199963940343070336033950931574783540423877001104450230224035578915951388520948452955297051632818932403708016656511748571609920868408762971624652965484942429516788240287520248660605242791073135822684080543226834227910357266201395239476348751108712539037023596323715314399197850148444742895882606680274460509282661771256657202393380954947657142620393746417063738736131569758399425092749021137078083135207378981716554512070985655131774714477300976366695284762337678686683122514320934178695532133468532412381695300565572168304371352381324488255440376911804645778413551003761002132147169327367331177387881072185291278924074440535581797871101008286589923867200245290660918609275989191149543346949452978666811624010125474556579390411924369756925093606851862778807925092298883643684100330467160281142992774415867278398042103992129376549959004477307375799371872250904720583818104618397755259132716238909493411183451319406486276322245554674404693444230366057928955487053148138340655203714459182255223065891046278168641239149272671351288194475090879319790787258746443322073159349556642139697472991494030725950069548825763774723641306111829191035721021590831159210172980520590023392613212963610382027081054129675373138958005821984575436194298102148490843581901908687902268206551445395199709768978927722945095269787068995257473691262915538768025781714416082936701766366533822728078053752268998321194515243751384735599274867240652859284577733110997395637487424063759266422572263255728408344305380701793461907786980744709355351862187035819128512170523125639752186861002377618351656881724565432382025113695489140650751406557966888535980296853484837708869371389594261123744801772460326087559277753725973976059362994761377224721125834312808767460763957785630677019778549484624637772070169118674199400806912697741061783053962486601076801767504342685837434189053253046564711846670501955525865131617988272084109393672081828574787895585858941789776663709412586456807243071533636789847174792643205211496647769145261778679482237326237266047095999376118346541673847374683332437612378062522325421296270617558337767139601155198434627243013963066414850606215081833261055660735847224235377095529078770462159093324348965987275385297580709721044024592865529335032148059988031331363005347110166564165518153554102992259204093363400452528410369786564049961485349950106903495922242928404849435879594033149615734823576809590700527709966047080112564197295492311722244734675851774169347413418584457465001838874045010185218802729618301339433100686821995727395879516358322650368228757436464996482768582316263976836795208227980263079359224895996680969829802081890842138821128235520072653033940842211711898414907933780740504757968655692239753416917328457709787862581221098719774690646658689171976180093922356322246874643630644835325772246930961291304106989751201325976895768958709996018708043319265963449616237511160422284293460194038923110204252119116582928629913822648377327283441921089019156314647019845692230810003259206119113738951923098837272693018402047741186793670674234040611244975423444924259891625083040617123400730480685707302476593488801800035743061724921057277085386693501949289217394193947063094240040945539688072781065033279249101904973590917141308225911676488370480415134554462559651009339839841136562816198696302548535939476963537023387398338588487621824649107343533319835789123364583523211633034486708415678699659282093884180987578224055451331509850820341173840633252245075082003043170534098353168727291337108041592578049764488955327113708736280498111361441037374630576494369830586469009983051480626170169767605182080475138794856164176529718637923000376152642384506931827832812098659426304462462838716367529892478838925062619143585042565418835777752763186923628841775268169152330660295110024258576533060633714593003631526072646330936836046828337547857286528463322049657602630076136055049781943168944669987445243125132634728514741348212565448514755816673321496221910819634471957981324781736112563778455514976840657475026964602294707246034627051096037341299854684828950666529981107431734298656803749014741498263323972623409307702595496059685616789327134869341346383948331667491468671947406977295709991359581809093780488540379065138699040003355046801779474364686757774414120317059296714090970904901815332208239984551546342828474618928774022509815752014921289266242082736447004453650968691875395160550191649280925421284388621421983348336804515806405966627580402389378446046183481665278451222702367039212331598174947132924853864502020413158748071379985378413178900130357737631615050732196944699724836589061035898561918388748554397658010264289804601901709123640103725463959932262664217476201227224876183552330297119501049946462066027775963792618384573942362742698266587988741182731472258692481201681495225567760311798708535346064394894567380475615629819072465516721667214926277558134696743879195568420343996418883329883901361556243068658816640535332701707647372163352319660701104238368211528847881975932760645916330810395299261317421897244469729966210516333459244760429637859560750562607681691312931652462822501801035307405696883278287248552408714617833517557515097349219641443100045260772548624243755653895939660976184348692784526542818994857311643544127666784340098842731245956106260641941247773880198197277259937809425165368692536179893835206937242694138804896503390038092606148074106898257273774459570774146957802120878952957164770719198016753652084981547153351029444694176010556471866755674346565889093820262778827252676804037146160970582839366086591856320181430294528443466830899584090850945220277899007112880247832060051773963005992848843294301983674686601736670335706960810085250625760771464000623496879979798216968191063027708931498453552605642168473373214773044031520751224660296993215556103364254156335966929826569977347990980642170854945280752314015943763759512860767415437338384753410086746035956849654283702923558210527005626239145674613584838199685390241533850547147975959861532805288393134349109241061318036628195102936587732037554548556244788998385075366691817940101142847133791862195812810457522636892057843544517597214781157822077527031072500055356737740203268587843926899494217962121041667318143198452691261007295121072432288453643721824775316148993465899933794067403731829148058742806058422819552628651955268680729986393429242811072091002270406695858378448602066849579995805796047598230066237765434047798463729647199434775711238077997608615997587734702505493668668134661511034688013614762205983241778632956860034724347406673858138385528053488740086919127388723111271637839434834230610802544682743135825998298764563029176014394236209150030021989945647840951611216315836893269616447047461975900206430575163382699989950279393097215070337350415648785040821126517069815100979890820470811600043925539931866736072254011560958752324374256460042551695545762189736210854712208249394194977829230970640522611658179010000338910501963071624756394374573057370688458893791187646098608851740046108510309291548744956629471497260303248298878362741907149839206901887305807410082547728450498636347772339778161579553140827505898356560947420313693556148293530740910709673101086556901247795619404137854883766826400669279300433520843520375096356404642121441639799992432619043750280955798498215936997679617073171053667538918767734107996553843165608664981992078448650678884999999191827751634820258822187522969888308961680023286594817701500229897951979200538803486356237565818673971061625185258549838635538950445937323469570083955689399550732032607018554610388849564084279847246628532508086987563480369932391829641742044633743819427089147388129839816189030683601736629354683605092209377029194781724667246648643595373426831407583816596860532562343778923588488678815534049682013403690181913190212993802351797380149938853009855793593599067575860894337291045864395637235641469223669951431473317481239462129695466931572721225569792867519366713436650102155010516350772586548198293336851142435782147907887610542711900542456732742814958762201471185666291311941594580384473761331481053528512729789938135532589568501120353962249406561077451305115259836242787830810466785485558538953069289111044231066123739046502789692914156970790463925915860155655431429305578670659426001977347144008102348359844510111344043887337500201169974347482532644388253397636944690954787388455833634125868375620046154396345149506297709713253418581161243243927639058996536723748550868191204816822404282810397374025597947627476130494741834440427350215661288623626082036795898176483737366120437030540454243333226494076796547486834732584535430188591956565601945469924466303699099872647537503552060141589495984914954760912725017557769069720572107359637021349102019904106684808157600627612716232223800035050776051078143187553904745487292298408595426050747933253461153766029428469429542718822774181199809317423340541148500701064469811033821979700846304934982480583361093384819269228619868079512050058807537806388968407379391176572754872634707552024833174446924188664321289672996960375023659641656922554557973858438225575306053800651328508694868530604301491960245478190531135222287103905841270907143451835191913064834889542561636741913478782810918356307359878308810758874841403864293437161463507712529662035826195179770273715655003109579693310883906031031222417523582482279274385793531642003672488539410502780259141593516045799185083368243453134441551780578532878853051368727954095964490703220218955846797409209939877717675180817943911576243179291075087484046169461879634036529373560641103477193204929291592155803129317432229173267405364591501101739370957418281911132589215011108231798310999492544194630866864841610338053241901469348317911905967035877022127072524481562489740785621767055158096030505262331519244098533783272648103235183812811732812311576641244001209962537768661184638019786295314916126969881515642195679289609628386275784422672748520178491802184513703790812861486142014020217743547182822326936864776821139611773228357505796332859718763766153502578048727017884655026514400509755239109900318100111476968693995792077205914043522078489221478357875439354047544955544342826397678944923582568051063749509876282730071839230505227515751135236945485968448741137724917944678313453042487185302038990569055931455646948417554684005744149037751443302058307587841353591180312362746009677471137568040521970705282982037229150710750441061624751053778590154264745136526811659662436449183415840762962461469805369369738700563279480271148393504074203839600872590976463698191804440790464490217344313973137895735865944175961506108668718461115783068181445908052034098875008542794865867994362636657062392853163629828886120483235897253363655457759521560467042772219278524826902487161004096946104892894160436492894845219793351893989471925821920055996527294910209346829878034815480912155181813032060465189015225121760761127000658239496870859114859104173401478733940002580658709756140016858144290198023496512703928900412559086264326400727003901916692844471374552454089194344015702336707228203776307957376998929687467193000656184548901317912225720532663270564900236767221560911523019558616272984400884235384091120108053844502702413777156443216351560017903686420156327143710399123425590725041846743005443254622769941502308130103509137167931631968061197409411160995226633920226669687405554113667228572777505525554642013215429118960730701575384797464719827220877153495003075460203373956771024513641283264088347504516343940297593310519484794593515990818495182700701166587638637211851309116521321483885321717903173870429819735880164491760501598934238845202245315525460614468771561519904376925148942185702227831541044804565015989775397389323686967707472751107109747000429665979688908463303596282520600165454754225306541093719153243849594596408564157112582382136781440486996672381029165079041286756690491109574135032539055861604524950843395474999902400872810563711893350756531818703580168761238837499642184865430750434435820197073019271339767086728328075639118742603594310737128416862420236785807638449809216308275418144551060813118902965578495336583475316903600786043744603256131955315172306676477495304314998858790474637877541540585961926429600769030337286766715851398285260376626003427641724699304531645924656898603837502778311075999196631021138125127581043255570581485414059478228677012744971251521193034223183111181356753857881545271342328410869002824734302814231983086798732414693412428059050809588469489789898753682937675902485651894009955525363823783957929246940531081994450989291410813230163879293087210147265022425528521751335804489138755176370907762078120531699993658615941009058241896187340858354215354548807216722633698738509779368377415486800424822084199871548902169297009693057590939508541459775704928826887052940534327636731609253183646990955713886708260431102264872482231942437834432066975032936460627217390062953945558305290125082811571730915483882981309303261793309128611917376212849099811410660544666525380337392390497261068821865284941583662822052131420679107272283917065657084081339492255802716537411732132227815535585591431648697832087323219336670652707003003742112483263371807605385481970395578418497506476598595904260959404609576356409997568669172563029905158085720209429972454447819435621704350032811311585493778712424553411943093377879148547711925947080642619091294711707542311240401391527777799234868822790889442037712653733835320349379709817875032019973842518682382811451949443612039810709315947906834146629635117217294172518346428875705396547845104932477268852132592243388517947679245925329849130723573725476857605493916413121056465004514906806350233252562599702468182641236233886803425949982630675150949185801184642158803361328185216091535394078939538862179187938494748196014154223961599744737759306597078357160501606849848859091336651608616961588970095512239213656367341728072190131090581012537272005125995132974379118662451330074222723206024400217268929645675581423787112144869944213053446300902035145032603595529924203435540889180029096431127826078198812960347058848333523953139152447430440499049356633748407006226709258480793584783032785264602161305026247449594813220474381189186024136022435546835757809343254856319909064662498556672285004497933508796545339501116579260119557807252057915968670443346055254551536215887924784693217774090212059585556271220278497319578675312745800501869539741377821485265109922858213659311835566885391327471789241770520229686146432913046701955446733647651375084703978176049262684575069559136459881185840749593782644262562091250660030651054663025641664051430161337545049932117505126363141862156486505863453652793066654872862384267420779227081550587004317066120317838306055427430158598862111914707828402872537569434396435208126471077240466966978377218848555540950802738874114083008555162566314187740786281477825100290496876227836840412532589908267209032659661139978967762913319357493279683651011904701940253735944685942475851329747056221817663641782308463460216428467020271689504916143339642122716883156956226591951830309469087497665490468385076740990568085840691391654811891131894318467577413512894610786361951793675014317502572599788982883542737002966665056559903937067428966247657787326494611277918285038782532178042822082620189871036135232824935372814203730803690282810281928746252886516814125496350327075596657777157685604392033004563145696079125979884723227298591944767071668699344925859619631077604828308614440616002091620832276975460689043606740233586099621720169465723297598339769136415559639046788701512117775934288379414776826343705968336285597542653403958788367026626462651323395207996662798161492815925307613672716216229239773012879038615942045457257707166501951614933882117777634478879516122607609901927926831450609787200905918034852019955499894268365268558442500651271001497340831228590638052361314771471145637257127888613555202155224930241513730122941341463356796202550235986635677665267343416340528006163985821872557511022115741158156509901411684648315097223166178440585259194132690530293284749768085516535268883239912675762316775822327905201917674060678589401793046394260530841046033610966934149598403630024098784876403459844006631629613190967227310987000680686112741525474560696518853572025217303234455104895472815847745167809598793207879852685680887827524200084809327479180352605139303581030308314463788064217120638297067902492216907570694672016014373378947277254215585931961536464290168304158567896538986340635941577808562023077825975396437152838520620151524017903995333812279475608958906584876983503145876309974433439490315756989550779201583700913747962089168101409859561812573607798093283702280202704795807861057530814750116802337259512481886928356906942222386537869507901762554061981779290739662077377604465706451174574593800451267463993633805930914765282734749890568959210723531919512817102566444998345759451057078301160325065951801057584815238565931622839836841815665177705743467682468439732620665048914936549961277611130136348524022880939839668086804335181492413082302798473111222914715033401208499301849578120039553214964861648136230015258177728654209787620827849625768592142976998446921891964013488956109121895616461895273846601389654759981154198413740154636814632081179354385774963378187531212402770188072855440502251646213809140967504445854609107300216907282261179998719798685504354552509702743801835202930835859392711408913810107678610180100227460054200215229635241631408767541973444407672310107138024303533314972566675366133292493427084810589338910866435115464211192412519346320372000330253998112993466584825590719000446547134490878225482716124176721752885071650255949703911596168005130741601691102553543157324641107886133159664152519008382939084299868963615756517266499941840539078797870153230211918799748064094479936683609052246374885763382495241398850397751406262143050344915324025161349444626232462805610248989816242366187029086812280372897900477290715241281695328846731410546660614047130473074535820741196492561281949626226618856792529934644519616069136989070008813170652461227876919341789126349484849031974061062724453209269331492620520865072626003287308758295966514349406195180477878763624334297569674181824539426280675120183393744650534514682818990952790700065359369581473622565230741412598212827065936429777241140958841519676705661139130785583168692585120644333174870901498968179316505168878168131964471229931101528884618146087719867278077900145427405597465591090601502032585772418090822524879787168909938662699061050290842713756065989679795656683760348393856866487420966794847193693080620888360646297782406956177750441837412715901238222113530309850826629634004874711263089860590173158724014463690525344763896550402327547073398891477243219468110131606926762077995413039411203643680804667988689005990925118571870984634285983095432124484131473905300945019070821757751241548261222332163651868835968263296895678328422249537353477904124176559830315461930618502900812177733081427253838413567760658063610236222268033330309709294503400190855626690804739370498863407273419405307417056268156439621170832225620084878450436201229095438182272554196386638523880788454877392276776911020776087025779029314316130568827286936935766611173193474973242480226318312381268599997843686080193375829050423240471232545721359962203871612092218778756259665270339365626042816809377939779405003654430719689131968046088286755504774134598203141022902770805507697590748601203271524247055411981594578874608276496865234144716251464686259684037589124347215730037260349523728602366376429558231827151571083788145065300435221340814927656886244842389202594829601908635989012130615821526200875622470342222450900546988027385489634497127560861535813748487205155544269691772021162453992454040792029074865178100626973796563373162406420183485221597686219777205417370377930018622498763662808437378519413421406957232059446635468759305529666743419858547050800160162679145733647269845050414323575275170375731958654671836193273898568839704421567620606762374870811490148596583919317015086521552589337598703656299169853094121445993395194073938089391637415320083114506969461190987629781132622898370253069082935936671408684107501340654317768745351193183973891580601461919400596685451960826511476732667161990468387163442222959966071185643237784103185797346437265891317176396518685228275902354882811077815579043796199654983305287911940578940506668788590953309804323889580404103531923494173175824396021141703916559538263083437187341900105708039313114488238572400488352173639019722444261070148598251678945495656371307239061929939371398913795359843321274557248162688088926522828512990239715665092871530794678947111411310786209971996889029844162215616795725844190083664197988518763887964177133227990807039226714358679213329504942896722510606673287117441383845331335654830810370789658815524607173119746891774513368437344761948908608496248521477336930813968828704835338796728572230928589872821653897890684476215889728827949456672556714592165442951935452632110725353844789324090102814387569460815596540623431970002262798887367663251954589176874715716181561687340933002443034945979821435810102178183073354098430251119663851642097739166743401890827955517272811844795624487283845696267574403887002188866889096766612524111446324142839034626551981112197984820500613964671704555353106410169909673407058505597543144047567245685411933010910277722097272966678647011042988568269689392354561169436411452314414455002075003779798981733653020665308469274779377738837547177408807061405225478174950810655308494154987435587998284338010152193588294007443014031757194019053622294705698414345523037145629118090014644874988407829995407064326226367957594727324427538865901653969983831422543473746912332411879008350367353259089974191680421284252676213588611391189720346062075122422611960263825120518756439331270409227684436650255092408841245518051361754495633419494763115052393533757300401579801598466377892661951002998920255414044065148413074334427739401520535706931622688045045577864018501057277969241834490104529972846214686196155273552537028976195449402320804694122462041814295243161222450374228370325055718997308097335314197790933663480607745765830760768056784392105134674281079897368070317565473266535937961240483331229110648142431040066635730400730488653785672614588917927615174232456039970848318007478631003207835684913694692413110743165383247486307059352671428805305945570191268504233575691575897001590013049819089285508475363193433571087849660289634206985730300918904143948783560380436842607142297644870908932141806691354268875472181380368219299023483673325992345050646211451269634832199468027669445413170453596957105375891327440475196722386442158966420574313673599006199694581104774257416835881651677082848433036834113190669712003621453889215305676685446157060188715203739944854622857627055793604630716534040054909671062089924887098197160958899122322665938184136221247143660075073620313560382113138611459761992118823958604661421406779669061268284735879958332078094782759071458362780077436664986745577781920146699170332987487084248929362593209623639211806495555990989632209754251711274134067532682594863116903561200009928142945766600118841406526277026799446912396289781706808739640761027665220773177995044725569436456068624331442498284947832747312049376887864191221666277739114219733889986236503717649179138649124681702235119798648891175777139676987595508678064241337417820505157662358356846600651111812232137441280649610368911031043666504285823655629388690499546156300455301903155271143621645019361909857571054665026004061443786325443625049717646432300877741899151540230844162872926246110866927267946683907152751828762692831679370898310908811261159921403329390858024016488463831747491535418041481968290357616258935974156651130915288467614777562797379538253977986540278451209238454225681045286057971207573125706962782281665524683250916650907993870884452344426282048021922826269540405152955537916901191037852311059659832216476904837899600147230652104437459919639569818914974155747924267916869273453570552395635476544618599962434341309979130969169935339012338106563853540979800434221789477230890062457009632852552132528481207699586596457689928645408346338782555946099829834911525293489480894044956947951457432354388913382385402250072781626638765474019753719135858519390289465751955220744430401230827056089857598874885414646900631499641207820366465220632651404998332348679835554151124634263261279055046160676466267602814600034207902091583934188264975663512928024199769228043978929371080679395314243645115710454771631622884016997266538190524456653279071092208519176973895702553021098993477453594598889487620348614784069925336943853538326794066249649284854429693130784854793866630450299087020093366696159605303523572874706575689046715270908405826735851556021233168255104431759457887294397865392295603837808976276649974000597910055232084422729578293275578636669402346604255172098631981922957679895313626432881506492211139272533228206163581598155136192948952433924130876128197568404553545178867674325078853539930264191176628793537088929136171994861758685614556186739952818774759814621928231945535569797736637863714693775907455110350790798130187594776056290099838358710297686486904646394507406991863147224498152531561820197527525851613432100660292189120768800342886714320333401581762703153072338885911470956113644026834525339775973396773266060169559491100118942357649059072009091669565472032874131534178105018423992394893163727035562559924964537024161280642094953245269799076537623594045082906247597889931265782603538765732108247731383836831400199574535820270191686409271532869598927381061963519577618518730828337516707666971015349628939901116822618792297284243441326498190552724709508781858377279581616052767967118002572693411620179304620158369640291094077106025799923479584083322750126885685729675910257343818789804851682807315479606734112800749039847032833101842106156238216803252096146087194125867239092538255523970855537150469048108946904179074020975703920959873399658087201936205749943981169573036693812221460320327468796454552442370417253918955232717165061517218392970104088371992734720757058869575503870376671627026294419362176963090682327011934448612263474247528972152231524814417167912577028876598134864911246881407947715024104701346110424689185844314483525259415602274968052382237139752558778020804605782867440759783959770394931289370434050098042667541648564829524741438471548585533973101532965478393284484021747908577984545403847672319262915794058195932918629231691912903206158033540869809397184916151894480599913994918904206976275449433559143928003606631567446221948322934930869783694529162977197015422012087909748135994972458777169852949584398750995489087192144755130189880176837297116598885836569800185536840519334720887988013200586980432492359592590611105042182645071928986732312221653832056238480181730556439850842019853130611333913338342076002644930974079330486698247566654404856571028581391428750035218971685607442048412731147801062281623584322286401210203094156473683174361232856193134137641008660877854112349271776743108729244851833371715759863038655899015418129341639881080801488418682360710796448278225960429171860014283284189036653335337737496232504703365879724613889231458459040698905410600340062540612648332450042733273248292181240656395638393459487666607451169481220312139707106994299166062615607930629709330932004064708433648111525480888834703616641401323030009230910235088942042541908015693991858928320460696271486476479726445969890793024609483102013493675621506843770548293807474793848370429534248866600313543570286186281114371615503412304295816828178659290717999264183717988380180723865431102082894779928141413322442016853522995441666895608844716374900674215473945015047522574017262844712789540205949992155261896048193366229656350366249511429285245537503105724738876650764943305503120167893293697113858881951915583908201235264387727890716517232002872473315177390220925685034084047452537792797818573251771470340175540680849697480859343055271742116072098400407039121814788240608702714073503435793837037261398526159870510514350199087577467595549543684452881198821578678986369345275838102102457793589500768784945113825794510728571468752345898193254681186500203273296925403654574368916729544154488846415173569582620412408626853016271486734734285652120963538736184720414143573348882268928580128594059838469649739511412658333585316981058417343973080480865110497227136861072812642624081823090125272218356574006168705005209138934888370942614900781242186882113617898778826173560765353774097857751698172237877196687007840220064632080077479279578883247346366961368180748638576079464122137457915652072888636867310266056211311304245152380904900642528023167919145153349788383166467376264823415823004420925718818292023447718615588115311514937798252717526854030322941631890026448809177877162186916625357229542779040697942910606543338677114556901890095507725207482551803960289685382861240680383827167410548912880454528200053217149602729534698473217356972656865473413485869793284805496642088218063750903454399085207841985038424342524069283742693375840444488195072024751350213299989480101696595038315872233321726407171970981561571459589067677666845907952857682063151043628302245694062674397704069601799475201257085486149001191903451568527218989016665186855422420988038135877771800837961687948101373115560408307184897049701432917488561076876684750460855047614626041487648187291087909181489346401589251805680268642108374347865785084222888083676703539539931965322680247171617858002776155119136038725789450430864073692321393747849826627040089220909347373056636294350964956413534757259958581530761400390339523830425650679995694594320851690917232695654905140336251040458328908365962914320833153702538527811657081557697893164997620850931297251087873394055919607426135265618504666410383080938874828934881986238099610102896460216604060509415158702776310591772479969925886029083808880956189187448754976366570438929457084775856647695299205651553519760011231589332006876582546734875360408030790054581604730675614222494895181071819279913817923579885260617974415098564215642039917046749632732841354736922196251722050692371376038954684264509921928405752403050634101104481999006067322578454426930684503219773086070542889554247205624426926031246958889416479868588450064544762926774753407630260279555692867858406584333976426271198719835269127196335759811302715376673199692170310664082879145698555934767146483722749392764480281087765792886834214780577249132551998137035259521180125247538042918988351276044943397369593860280028260775735680200504668340054281979426533185690765112151879057649873099024581828389144029616170698521409220129902442357523820982793972306304765218703413353872138420295859381445346266017063037316532658475283174706778954862317799653900213898688239676287790125044401244242902572772850242148488012236556983895144096819140853188974641094859563098717524449087385821494606770353048580091218730374779281012106502848042187367483120737515556601101092972055874060667631708439953865144887614688884795579692730937662718236066116498586353668437195765210511534821465079063050759441481372156081000795479404779114112429645770288241538294404830129653236835702505180379662424134274231557294253025837378880602728171126360095779297318330999734847533356818534295605140424571901888116382341836295239611904532370398917213628657752676672308709632100498678943666764823604567908244102784246323784866910010656423291175287215250809875483530946430054609924494742433943139890026192988595556600773445432393461657021179505605964955819133807191168093489728695256169022952762431487663713300568870431886313815863046704644982534029194607512325657448570601490535648405945423789075244612169760716463493394386302567049627044979412940674840623556044889330564517039827717708647029149977912795761042958952238310436141112660686849063016651264714143471464129879107831438847186886160817712187707857948220025894939487434960021689902643608054177772605508173913795896517465075132310480613137002432808802084290951988069689767182407293981068525328536278446479268365135022641391220945556833793394240009572653836379569130139153162657505969564871880493286140307546040499467510775262444539052173738160091151979125394974707487625109513129718808932917547103602476995560138687728363658759519826738266588093346248115888270751122250414887283739297624377256446324502146379612150137193390436239141266859448090404748501435909729254008360662593507710536374406936426032908806436444786419049630284165201899746296247019882672253058424848853094433031065734595802611799181479376426000165345214427319781818861483568728937676534460833945434014693260386319538853423625703965936071513794134529939073036102984847845883967262580800748323360945920632172959816952373718826281908669983261349862647092789981954935794008210527737166739174723759353840226846721951584980787630734712250436455202758787178054472498266271218215572517635522102074939123223230044381844504886673404667675431985007130622012810714754187660768645583988074144911068893125977525277325202560548609790294588257145760757200305104232437341635781176472396192111568386191826799931933292430681563215345053231505034386692353473242369540670777827454506233809754101052220468027082310629995505123495982208988430836631031754627665586867068747731742289343301670783578143518806249483276485749166327075549983240395395762967317420831549868011712008862452564358502829821656628727990078483373972607178029280106459923114900861244124184155114497161714118067460809694222856047188959107773597840433240146757712120504108724395993712136267917132108289225591171209510440424241312913538884416685813596396911574114165043992042501385115374429355323786437272367597543802904583444787958389334243749822189904395950229711889875235437302801998023834576764942775222723936145699357434408889969742646838856884450747228839821246652330174456673691741576736838693244822063188914850959693127314626936872747173769175775561752514769001732345068669973758621965372705202415485006209523752772655236575314879401972089678557949710286814504696373457458825084919778894914539471310494992154408633171498839253593126521759033742352065912637405263964796620935295340714449333146982079959179592096632092789002733076933335650534380525265773174018797550496610748549023433977819997276566464215199146115344816481687960447544798812232245422469116433559886252223077185353036984941096235028738293182242932926773033575882055902193623191907364792093499058002544793529263690678088923652362522734393926777653259964944025455408076888431846902998350112809079629733679025322145427644673798044871312467621937251036703186373785198507542939004346592648575681157898095348815098928218604602493245649044458750929253371810566929519866405388575690524362086046495536645864974656892392671845348400972858646107066625063834105202910684532158670921397872134983225618412615675962882481060416776691817507970470195215912465663387726255459397635126808965738952144199074848631985420491660397317422529721862961230796580490185360221816619681205317883778086612156346994386297854109034429987188541777945627385418207363601227271051455191795261506751518949805130745015600532953303040620101249895445560428952054309444470886610741145400772152417594334738609914348660452845812438596443986821849531998014042796717847809893520359258717929671758395234305818478361124661627628342244751692219525572710135751176831227385291855841782471887104568835791426687919229736994480632436369062705614686882998053490170648102732048778976836921166012175038962606459539143050994116338134434445941594032204464714002768840780320823257013650823627261355686225315084750858045509274199494448488982860276457589048960327051311167486482501213043161163834753719511354235351344835402980510739482840523366188127010343705571644426556366609730264038756445306747303862414932401385113839394406358430611139755056552289326658846517453640731505776375230896535580941966476376118422906196188194688542034666296003991475427312178152427252321874364576297422834383417941810822456058465516421433314690995436115291365894859837565890399070786802412502343236910363663172721109083429801984008077920319799215900130898474488274053225943062815183851619911113696719332295651492454655476209682939893924245964627086368920467407707820256969929278527323162134461053335653129909043815488723553062892973088508728534886524855001542281482170794497585776939677000086368515368671765476773213453916557272388327643892633837192062562923816710851269313463224347051642081470630585029615143761935099041586948218678370724958396031221321668884135086230104506600935356400149357675996548402006384137341475507102726340702779977060299341280047631524269430789297923670281857732298513932252680977256866035323029637456238497863269809905966158957832689363668465182951708482765163440082637051719758222186971462978239016474260393479237020325274109512102270435576254100463320858175006823387877187921951026475550463122462046377916521986469760052350641370084621109682884315218438909878656312684573334313731766220900228246010254191776528202716636244025948086984210392163110470888900657188724852658602250579643864658216078108205095442411157070792089096083726105275652360265541152994551972559446646700953017123243398055231615039461461771797147478544411781731972182939062095421183178640195691571572574847606823584407639386505028745773608834874715966642179437607757906204521440511714424578450282823769234356777187766647641405514188687882309555259787367244832177819330756865546408177019082062229984587887662374579993291905274100811510522620504705761720922198020968405561866004393930553460187215105257313316202414419643599727899430671726620142081094665185392582975299119280140591468259102452188036913117775537929425926695159975582733175364443860216742326676711867621202571802467168315531503802721048268458111244885787993062337529169749358757200531805156650436502473174761014543378718363302181368831017434072991083474696266216994798144446989461107052394301168173492326463683039890575970756665039556196581546091909378856261570921276164553659196479518420823148060590058908942585990716846229977605908577081256289293994267818365438351185912054563112483605812066112715819967738924304981273650580924849791371046431464402368034154801264658842852828522551008185678789856405499916110038505817531730700551183928533364999358796182067130614091614081636877547805895954884707419637386322906543660545860592640669319972994621098258412012388994920813724981500737325671840254291037565553803786279791327919736677828861848301536558654922635584527659009910122365148810077820815104482971532093004490080136112649752418429433207075661071358118899722296241705561769379388883817865365282095521044911118064236229840460049283456271571523741146579370361274862872663738300192725758724070088069645281394380096405689654828755792097948543673015480340013720921212827321972271881683756202928205884408568269496959912795566634040564670409138755165836240582958759830065798307033162454016469319739409545013224409448409951515822139421835054337238072791483537410173050990004523628231210782826065670646872122280873986390908493931564919140202181205621754099673430109499255472042061584891261166935788227600153479236843586601581307386571807289193212635458626692580546614895622975576023894629427372857958376360483570385874329220602301920864469053259160487654343816287477618768007045061888818215625979278094329116771704336001533344218641989881069060195300986498565855945736866804079708124378073954749654046356820320410581129004398336134188524392901979515520643630926865060457463087741624314613487028472805910004571758060085475891134082780882727142301540119779891392607801789234491560202274680248476453796489087950147031108504047029971415897020718002607954818595950762384750368067828694384654514079942790728495297371440878571136987127508460870278352074994568581435289469003368025462455922860097888395760799907095195880866699127479670358298808266701567809776419715208930242950563276675301640213130391296597204866027158139681116397042487795905064299221707433247749007176748046733763804255449874443003170827304772754202167139322156432850555628759169375511203809933404662872306342143344052894705143961659889173950986135122942811577380965979666566308969268303736640360073267404287549254490229252332261885901868546588358307365503063773917848186710134669055586086396974795802381891122351422127414022112290364907664193181879609313734005250573553859951623263195615644203667971240000590317441258966604344429944440950827979774101075817769440301759419992505215944974342446862103890687373678678363641900870532642279885477386077466190378846626245008048504217985055342673264888231199580254385775636861799580830678180921739690814191747084889945492991091972809461952450560917703895608053099960242104100056754542460072564041554989997123157245819892156569931218813490960360253505224628903002734814590098170129235798569324530736424602459159639770731108948633265833110893593001296786237741818330527938786052889367455740478505566027062037653050891958753881083680898174008181933598915732061850540859818041525154016978005617252997891813961423108173081206660159290149225320507354388497773549530228809767366286642161771817271106655340947751571753023151926555130135629544154261376419713554105835791139805837041540976379851703151089654941446955352162128403836135313463958450617908439520822998992343435202126707272957831449474371463394458507805602295661499828259828347257799716287770568595972602026001132349206689088411154423645077443098563617495362662109339805599497954155950558031844160797359567767284710823061091198079911356683214068780499935754323196597300724409314490158961457806908462686294079476565400458412757125126329339553873323018552970277811426752795933816752659274249211117718932324461672282545009264785206522479437294731816879479615330839311221477263173926636678908001501576039203426289462634933772284104271038136381137128188035414579554693131445060089027563454388188925626392673595020974879694454063621254605411650490419696817365503513066660469016545554237355614838507858716185055856486516895390070826711652823673802291183331254811151973104960497151505794187379475077669957782620981190233412134686631417358509707328341284831185758216642359754236118830497486502732055017171753832366168561267143738830654425810672180457899374324335449148041766335794730049192571124969067622393794895551751957292768581967786634140769269062320486836510753301145401581113093422018321005934531145523819884861106490047574791236280123261106410679475522578543625346388217085946913868379246130816147862045787128768053035518422412963168611673469723913837890390760873663797354755662661067618451401041600264574033944325238471008408454329700105295118678944573121127111114163395367943705123264504158658196959318979450219835473870544192626911161171152711268720161587173567403539011564812255423972196385839651986186729299120145683760965860799968779209137724612179477826278932993502927206889996411242558626653691126027737483626280941113999399539618311337348776850395640937639583906560608172358937767522611837830440001788882277898742800737675083720838378912941117276067198311093581546511559375008767353296329581589212651122215603306724067135987033770389532804522038162025746054329931154367561025363157523967392799878617710112619581265154894739568922706335350574177001227431828419060165463945584229875615510832087012491961803223461917835311378220227180323235802647896257288439770712018162180352813561446665669515932388569359507258373802486495073690912086725391411448051207427757303296071631918960168470921367043404297249098018092053561654517462592945032269445283107599067819614370641886340119032854726780939130389081612459706411711576585640408353787956596560672026349026203960455372901841438972522914988584682881044766620484367222151008380118720741026989827727972052036268053305517130309856712054347359796216047214947409536839463176511664708726874602987160196740179327430871524836743430531341561319188612827584098386832399762673305184420485915127130418921828299294395415122846827377917680450112498958223113008994629846879121518225938981936094899794950811449311201908884806397461827825647669880068459208634509447865214028941465136801614167767821302942516986918190883262935798983636045146683794938482960740325354767329145419641738449539490148737934252268747042182240113725860608723000209880650784297438517869999375873458193450310678519593877799088223261724289768848356083651558435254213914012306724792061449051722149620232502825872028814041421142483047402785474669823696985914345762555696220003577165793894863071249134850094499262883585880017599178127233345603987525265392239644406935364391856303803042777662641473096399186828766540038032943302165015117979944151612883598953016136096132094158992026163315482885839200554797044758555155008981538669982635483119590197828838433768870233626462075888013686859798106061331166725580274152327794567084568140859982139490461414534247977018470972339251501276048945095055596183590977365369935914082737915852569041393129377149450100056978789445414552614410861599945960344422927485609520697207554692351222000224087742807064655689353556588947339913667284179951531007847166084765517826534835815585095027073599216876592068029770667530722322816057069664105007815805499897981893565303930992928853641887477101186395008143062334464595835695245906256943818740500600996008403343102232508101909655971142414289402217897165514811250362361010965199859570975672283371952328655215308259762168640755308349621699159793831894584245753849941158323997525935819255570478683595186431304994980878131722770172204256561821827678211898415794709645342661708871914273684343191173389882165761335502027879681513365216882400700272262588171590136675997965399481978489848593749767058095311104010914158134533267744289481763483432616388464778022830475927366762755367805443096060358959863787995725714621710897919694891861697068796026639759249063137419517362163547052095479709524482043432272891718123183844611717477572733850033131383383447059456203157846608562607614134799129948320915761282696903652590477686824101230782975394649801128521431890621349159072961178242235137258513138012935834928728085270921811118784357081596847007453563858134275487954728763653124388219928886428912372768671563109240703127939549122337074003592562180525895579096547615824724175828684738774948770417483642316031531709686365122360976854172370167154789515908022154373171761386252602961633186471052644016306571192248163099963158658526911060143289153792686857842790051674256578165390487807369239528234859470936295782406216704803977831413976078081492694362216098028829300207713075248633376676514952573661236547808890263096721110505108165221193716918480258891341197049395590673709730562682005338641787749504431262800161763529177618462911474737894864632953768921250691399444524068328552759094969536271670115399673903008327067102453494374153416232407677480503355551656512787481385079535951286675396149200577792386589254525106472854286539895550261188986042349883882079231104696980349247762512701058279887403174765398884078597648495284112435764682129612789347561679803789909926587454278398450127589456341772756723267329632617739557865940727731067059018258684031846055926812593110184466402444002914183478760999264802530654038679959811608126494120290144463164119590211437814162156554185539395564409866251176032284779407811400330170854529350371444477526147214213552852717315517037617540304052105147936385143815619157728600809421128157446933628119114321374359888137017883810133863080306864497067063573582871347560885862648891020864171272617544680842911922408624576238648029365692869424893206632126175839285561236474416013955067674217875934578104455533225310650262914931480507460779262795614626095522733736249416168280626708816599305922828755143176632047968872043101351849341690887278045120352868307528096282621887997730828989096556857461164475386204751363677839853403937173999281147637541922820427169461164964812852602278479534060733665728724294980190814461806034149976960641864263842935684770318575707758669106687491841158608060012801160642495653992430609984835881800919413101879082293047072947903911540000204868429673056043305559507842641468672320751486972940286279267954524364851003084023359386236143131899915191476675213280667203176202781460458684500457613883577073947532556709598862018465804306231823468744434955026197945772738011777862205346245294262586325011350793413038584584398298391500196508969771688581955796633415789820294688878633362579780734347288876472068103408811741400354475623517698496628373932268876672284329954499870367288453662759847443893525542608930233075465316269041889837399483075519698668555612871113968055770466864619452569929941117602797715683717255040495864686953419931332990820953000581318265949256201626435115308096932580040987219434670904027615610160047981063402454103197597301410216151628048660307355512904248420645560648191833044998879785516912561327613089659084303433069110960378189120904780148537049404296804843844822681274946950991040863789499435857272368709289790878930601411242180628463493910888680618359980346826936673365241388117646007379319796384836467389009106185236824270838270782878585258268253349003674141963091028804468558019869934910320072680908663480755394405514356118820618912296436327696290798213912300590099710940155660007690651544235222251543446051942591513331306495883921610946130220184793669233804124123927143701120010166012609309289091921125222730048057740644673138105542479380887785765517092700934619483351472047026914240492000496697838462238430573706424635528796357268980532181839680041499485329641868480099839139633328634504224519643190840451377181311459551010353687438390105215465782174467548399459519989708555569337315494182211581624994083041528295314623038736607452094654418952301172968037217425098246719864264832026680165897920527205747355612394363093893994515617975575456085538619728968355796219919568580739179727023069610670294819118969621840801189682849534908962030963805707410031407720019599158076019625436442970043853936173605575687100915745506160465724448066324758419960351474046989985577765565251446405078142864654943758308836073336757810651008145387269374320911925231388372181510077191599880979898431005429974144140640039153460684654024399812407896866090720309881529735836329778768110432623259141235388105962352625380387182800274985934339427660208809340673411311372273462927160029119945932406458340385693518513426059044941578610333048182290424125593808924270531033145836137133244999279838512114897266964049328767814408069240990255994065578588140786362681803284772766842696143232769728964903416223926684723749196803838941155485896377693736573054648316264835807142042492326667154802710746830121320074441883861285339520521135644130530878043986829351011944402122586696966192999730827237748522026848784743722266324629055274557820018236476205614455267108823869450600278206175802559126626278530775893175914564986017847202482638636715652607731859560082791724744337925089472618855905030995526478302836770883462775909907305376419473984814432461116442216165332577637427132907029393645840474089758569406410641714994221161161319706486036108943195296777899614115720442330065192546650027470431357163377687723585686580600734526470278894699779214637464272102882851253733424006379876005806636729453478942154519230321902695832209406696767996194176568187058895204987418157421816960880799009564102758898902987460522153359789538791153361552445593505990041185306063623705826060901097884516409473039461590666357140622059452102831549977307743129427961876991833866759215796950538704127103964552598888155533126514850736184722890042445087303866397032559030503284254762123492600107001448849104730867125179655091829871762991650036387144595384610900048090374841131405358313907967212702140768971209678992992686665022443168591814705419666450058394006273473907981779571991703442931028405613048218149311962888199079256142010142327591080697578574338262320311009034784816825532532867313891200405953168245832518259937581457499193398691475104925180835881159371361291062160412862714366065980171744448128270005732777123901401896325278467965950623595597765920928964553883673030410031913501718308627814409111327839523478836157222869018034789284501058806562170081616408413888073453002306991721656893584955249660298073230463303679437560312487151141287584204789714491021448692753698799809983312300202782202288142930760720104190927546737121769041121211159569310156453593076101520367442529059732850981712675603660886290009293500247053685418954698835417354291876838013187769461189955438918788563505732774501361234482083729340272024629007773334421830035046480987759599998512890387534248281427779317637341922977139976831349838850648754148662900323801003474790231439747620389897292948407225444986410624183773110329699642273734149157722325548720053272549306060128245433261513176619523725059549936673882974975963350268083430047777564020818824438743752011814828478693812247875132183746727731930525454510494639086233718075933441695350641838366605077416918036640434347616100269418448497875689680630973385650453150999770883404195136276509642156139882563331069028463360740312517707396631295015631947752397443712900777568690457609487253390838499478546046950430571151665256960425021552409533394271593144355974498262876945241174242930632616597999294151141816150539239073580514284308830190850781910517307920741422454442782219687812553190761884050304720800748310237261273506900202616099610211070418535119860098989201672422896386773955358587275447632779157273251776881624763651797676397535760798491299425607223849349686989645387697283923146736357041552828234472333479747977424108571146277387393700379811615721354717229296226325496357768035976785221378672682370242144800328699137720207333151442009704517869188228020709035274519018535227260758360464214642099974100375045153164152757061667811664280036737067233607170236200239054506251886920993648314245162190567935306591067846596543904032007774201018464443959313759337470939091071946019917280336834768417528988044660317265425223067472479871815436484757434444185780292769595747508507532456272845979864237500750499374803197523884397230524109831819187037869785589656376382810954113557491709205132376933845187367525289987563907093208655634999261773842545399816725141002942807731594804739568291145720821495726582711069947550430295317779896695618207673484534111147460199640664040057259091890307404686313589360851380796548607266740486036306068154325496421948043720023251152127566948316692949991618701874385519795221652531959198609008591347960068278488929167466414706880164019183687922120507461476212960762622779153779965138471567848768598322507972732510653206905506460099938391405295355858198935699980564543707770402026153835422340496299246775669084910982614955813157272167395648350292105702862209230661717238210208877343124745471211487520368471634421139941689723327327817489527133816907820293954501465261025189130571406168061815004392616152792762711689329937973319001233159142874643084464215692127321227093461901746878177783472435743948770886429953931753701366524640966053183386575212779425043635325573301316586518165068791363582564745659491759060842125850059246866255136210187824446645879357727090322034447124256851222958163026916150522502253059835484889848875762887248343242088059571627466984517029639543030421894545898486694185809007475581659718286800730869148687567880606760551774223611139591746162136823678120219960164550481219957635501108038866241739131557385854881636999837389322429750809296826415905793968916899533806357054696766407226875168431685825208426776011362098738101737123808792090473240289183338021193775729151428846885378302267508087274351444452820339827130054732745493591252951837034165924607659540563332463229192765709763540690492723577023449867253728993960256582965677176840707062028954469860019130569178276695132784827244811756627884430863795218404952580785631645037822267316984656304003163896131015256233948398186195239011900869124342542582578198067138735300859411568233733089949715026320872071265840093294660304952220134118961646842517835279248186525751496728338361281948140126319792527543966706753419935938114955133199252234402173513055703940676128471989794011334788272411665550218976854802095198914347981549265901867398219679604511519031777394255942708938751926375599448758773479930591643666143983835516546945480229142155515780931150570408372585407247861536549693758612592460621397503669860213694001539193197355032832466218906813934865269287533209664814142259497271879272997539108321148174741249149439543018032607714759376907941921809195246814151156303134765016884591498619421486929550350635133686841026291063230436213276811875639360192714878907769745108487170058393579724907248642438006542929608276739208716345743474779858290859521148904675770025573550930477696295893677431640562906577269642282493744644567196929874115870316530301523726996232183199286055908957413099356764522335789877711649367547231976670888547657744614851094778036617511175066408976246151906905179072929405897432238822341694550160874074755576608302917564063345892312357891808633944708827664682130449857315369755879790844275192212543269888947901271795319260047049220416363923433510167782637944934759237386632651370788141953279520975115026595142895840718340968751746684943299625136547538761436438653740789810030214367907772252206680202346916975409069497497689143650906102684378291719913902650964037549920999782940106712441700237222417091642331239242515711236490685777061582213181849340825985292774570566755983296964105801008477869440373953682788443989312247485924293381059755152989872462594122555463110703848373345833324551193393168089925801971080043988849145812147271215272808806409935712749079175701767738221487330486889659338091325982266382810003147681870446315594050578190232849016980848456205151342319954242881249469469382450108867519625203616685249008027992218428938848997330631793920968179022918277546612802810798714923340957397579140521066829588134877036359233576016417196739115195358985873939355255475295390816589221876372845954479503217398281112109387824022186829939017135971134027341833490116729950321961097258963249286301620507507965663788965630723076104214551483288717831274868996137402749278381092577937582567706214772890726908340942251031120424225154661239508508556244966539044766231998419507414462455800288801388575363808590235246915141839123855481373953126654725931739697539760469056576933409199942886028224389596015405304130257045071593019443446298319641397416615861404068514514846094601840684943479461195188953196629532493682409969829553868376088814025551846572273029879466216345620680483749172380365526390079422212955486359021864982464263193168472164774276406381742152612266963686186698198317843494169499972979003457197005715811499431340131505220993220200204351457892379509116450265686827607598443607203165701049721052918892303321301022762897177714898874671828159861618040640005275032438587471253331543997955527376488517325176687467522846059685420432235107568328885153290128823021532263118990401728671994967503650884483964892773670027460614652489995473964700732064833446720738635532411660886635871314016547511537297511397995753382460151973276016093100376718268062448932718894195501871682821594575496273619232612147220009006022074229948925786624115918929245335438757912260026412477836158582931352919059075895016300679146065298986886316267983280612106213521237668904112816350096530728200147513011556860495440983550171740080696883813325997296016764632166269199204383556377091880901285117376831090513337938031918239932990858169529970496322746968246147092588148424091814212492450318059690517582450166838702461606335210738879259207083765676608383041821153333058657836682836106120505582217011770143107892330882283922923529833121180336172801488748633169214653758994762177389686252301248480402973443573650255266682898053679502815069081576584743295386525517080410679374250574766437447877057771248983557915029143328456486742721043649869517480215037193983319856568648893427329212106263342095317285872579330269619393491060826528686251393327590852547318774236128881413733025760263437491272937095073317340031115183161995783232611778371775075795263642650208017656342135792032228529024580341693117639787124166581771982109294099881521882442938346120415589092412737373948507620368274084346614366800362041879903307343169655532754450590863272087343410115155174323886962498399313193145389195976281983240332919694405054506651926198317305562730969746667561729937152833654481808394279470845908952378297751088916034311925354050706063207281362693602568042719446177376003268721525081135952482772124358923655912984669370300928951793756877489732566351843657820390187680703245189467496131120343419764424063786150829164494496360952372214372147845454821016822522905343656086837644362685770055156511261613021549618891360295882277847331828280055873821807974904513882304952942656163843469521352412267015691322304291394608431096412937601874236269154228328039204272337587388727746623129529149707690108494197575477847077114987998700430806927416060949209496206583088913459698449386604105097789898244811325411965212303805094559033989193948474958972633388900190890772137411376611071885625704100393336076427613022480630330128252239137927762430527140168938936185869065229464902611432682904552139262622908827642997859353449372512215059500666590079657835517813446056850568407870673851619678283752632476202781288671713986109581087947542082242364451579108930960323747524253929715064825465896401891808224405513240582721408799107647881916697066135738190429424371406523178162744347432219525438210066361526061795133758537907426317784446213227507805261072843193037002907496813198609769282839667066207738565182286393130747845209703032347494660866074244279525692089494242820874115951378898250526315026245417563008375739292346487731094713600120372433863459329426234502930310550135226471777093875165978620187645753534895265980429833566826675525024786229690296503339447609246990686195087535547078657516214077029129065898761314272483399021504849661509365509021641953361594081868245876205270941074770460844509224776054329409033602177372851897850009477749852926603192067957671080891964548971976249606511843265188068795767193547848959734308696477977360676151232514830890251080720630841249911614601711519047662265863410157441347317811702385006818672890285418362216445193719674778586482468100923312529953835112295050649277163058318595797711523203643575007808032950695787626151602238752086670661620100519397344477747287918911735142602276003330847523102865533838680818155999494723391259434638852311279392606538784836668499446856717856046732685540196048147035919434614414298381764706765865621968721124560286216803629706243415540973786531902997801077274069281315063219609532299018471272819016128805802809124540306080574943655670671112331138852584193826165471132654954927850648366340672915035075181079860902610941551734212306320538719029133099250294202211675421062758615726654455310180410423507659815275262104818920290157561219156049617241393023307731226901223909933967454076194811791138330295344975624477709329452057780182522513250684908733307443381072155709190272910639313467974196111418099265587394150586690097694459127824084605732597971619809175410768106476198539208911844289557008334844778301225731424129775661877859050978967457055106009638630378702533910571145755951888600025077715517731996844943688082996778939197076939960947265247405833728342254596825988425548295074199181116861925704051659160063758368867113796685982050002541690265884861000260360761996991889634819598998260710034389090926263874637799392604609503866428336768079681894539616399663168522115740139757921977173736669759451710981021157655263668263492242630051769921718511341468721289721691728249373852411432533493447795127681307020728032150699542867833015894314456041514122333232432295005955463281041177047939547647164520374889909153621625638733102889092111778408810779273166939413750837862480097202971866214020975747076797938069235566660332110403816975970513623046033216041427087748710465069050782450377873801968445363289880716660834991728948259103149980984335152269711252418760409815062763752280900901919463962641422072786638053903281612018752573000396726547410265727467596591981917289227407640967201629570604029054231155087829474280081378346291255884066435827088944382875407092240789542489719898579084326741446576703110293365366514294766357695452739943825762074664432402592707804680378573769117207035350607928920905994579745839416731319410776367648991437854864408314993256533427906421390681576246569464597179924905149675043565734987278928843679227673128428143837419158353552789844516620018028912018349776783635940428452875967190528866392038559692240122468778349715412819402696892633957837956715438907042265053205896806821432140062974175949895405687855055942323905832854355496964375915111373516755533633504819976491669595249845205506392127738835740099109380959985421506067901305235267886389149830988434462605006751355420588865997080311153059792028886270377555302843061112184441907567693656739137041929135680419096826929917217651847130197837071640837807531344144125790110303171261773011577335431790147609377939212427249751071624282625298006827507069995632732995483077521013748061822778546526448606778249192378613767836182022377355691315077751163876552847149859856557215881656335420081041455446407644678773599720178055517593688155068728464859113535022414375335273636462044536036623529381535227361962421185644644976143144590580531266733770709719870961739077114269590234985539311056416061656549314032542526360841564236854686010230946037112689433754731681994665283328510662995796115294222893572044917051302868374711881066895291954320590958077781582182525538969411680788717650396077977133958862498210440963780489991698994193067955327744761437809345503679696593993774296246527550909515013751492309628902998679609248588488563736404861690607727541533873307883662879071670229770262678393595688125718411815314765544636418008434001415336680041348774134449147133652529246626069025572018065308854639296033626978665845554717396115425186617407307197874709633647648565979568124024462310695639626341703599307689133216274107800269720301702185684413948566588728417560878047582109899088380613870388762686589958071688719440922207945783114373363083712273195466968499944148896313449540398016451131979244903065207828102175505930509701470761227186316230293930533348961883191959526155737769477333684418224183476293495611737049862724799018726612638755835048271960901127786295667890877715981696445190402914745937723234187446272759231415661177245493722655615636786033433380061774794533376113005914859272473013748697100010186970927423659159134493622267393518748643892769978846955836040674914990495929046614473835893705683342853504861092308390852439421175176409087973899435390766438203286812828941435099167398227445735038647424279643604205245713208424513301395934770847585122910073044323009016006147882014291008564551516956936387332778160346505065821435882315687472396786300273115250605413684393478647674958348153601931509950182641201321469871407658923549486272252286519616771035487950865725947057651836994135146150667564418169768484136771107761278072796954940357299480082299304234243857770750535434860168103173357142057915649124530225709032114579817449914551771271011036253313952552645465376741578183943847026818663562068929864111610310322458569017259276864527191025769890206740206223589282687480341820246548651650267242895723472454568526079318399849051396232800699129801237488264294228300914415770466160077174567021813887715728417779671731148911953602003983630532299845011631083514475919874576569220316101878213979797884146945556095960490261756960321707376544000619114167721368517448880371797140106327089042322369633824918275988013398490997168286587965196790191688273411337809992964248901791952790734397374255584710068065360190836249985126810715151517890754767203390135773995366514425976299941231421341756748506926634010172022132644885947824186177786087374309232858704320729197702718478830504191402458139886837260437626715692281224006292068939447484671880522864658813720506047753767078994865617369274683283532134916160268428328118805596824178375703386161537138915914732186639156162195240240472032667547175444549343142515695592723013915036214926025910536153599406518835110337603245518865276927005747243831443930865513434973704566618904150809065570307470812914526276316816078839543912697328738758092719276076306081256275692927229054758768106163304730664216339147970482810441252976574839271374303658547292406302339904788461726288952726216695594272849777236823795227144316673071175436376793807684132461512935929384251734373640734039227007847186086488241633560221081261497586122899685231091343239400557761276812509257977198107904840658938529962762500713817821229051270290616003493370654366126708333337434302825679720692534375886134187781554243399127780712447256884792618822452369040511797267425279707649000606527239871428748328235656939561429951693174706248737563237996119455850234071791568837659706931882350361448192349500269309055913301161245619229238208496948855582795768901975492204242319944615672160180342821566231741794770595474706799085315186763365966757115450053226277067670555730191699724983496266212077537127453347137255678978786013524557799714579903735479689377805394021244671139344553276595138781505004981949395694337581243828721568227783734452296195836751147607071101822197348906848426228052010862337794585268480268321276384344895106846415273896468950229794433568008594310607671023816066988642441645199005373607043020497308272878457415251110078125472169486058694399730256563589942251229436225907665430126700820935251853286803245411834709275840616251638725123077041907884439755708861666556679972418914059291642714877755347456757364346702853000319571881160896083839189519007187397316733073493245970318824996916606072416180282593512748664149179726190410886271417353563706160828808461352626502481696767564884590691459324797183876019132502714224038325100478276667601753066630529413091198765463773682220706798546165410849607219724681140303088377570240544605770741712655539293834848635198600321217164863540966033735426879463981264384512149732311761640892033242511686593865854770861950026369246649177080737259721204579387001402378121717030905669628785662025634856717328342841128401541152974136923901475133910475650376606643791203155840271101874706982590027495976981336621117257904307591763664566033699682052461096274921789809482566168401148129451717246098393073958887473664836442161960126960973117812603974843586411424437782630346884169693119586573978099086459812893656643013079947356887565276483511706327832408350496394589976231369372505808730316759268480111749588128969677155830107627917888310211989088253978960547060047584430772514542331146982810525647233985043622486402740265186195253638320497079951677605795270864562659200568950604376072425125296223635105686278815336059981950899498876682799892515141002531674403020243366324469604845953431963999605139150112384842322638607964331127361756031467977326758839527098209564772184057541924266272996975890740046786740678686273398626137219006158024671256316797926325374787998949274536952833184780662468542448737551326337938427130344417991021271170208223470047161216324256410325956676251688123186826190921300500716021738697576365742891791596846900594458769650010349475476367684080079015322208939316597830229900055288098888279799355089135900697326825351411269773189804904521763832283161056245138896201475551248899409845845592855928626659913105188255429270166240189990181901602753099063391240394012242584587568139876842903194117230786786701951748440490977698414530988017791839852602281905253716122898865946687794040784146594108315942517749725052293855343814935585542861387870625250930045910161772556962477947885693443282941326794371277915197249723057303129423946031025639390430263545539259003940666236656064143155894704001283122756568036122147519421207758942715937904863397100571189714542553499611296713407928446791428259115242881333604971336967513121110217766422053413637151399984591359850730010394245521297259948983933914208800304870193947536428008902023759599554438824952326820799938678828652065274817008202544976726150055730929440371779537384564040901392361289431560135491973809201966139919474118460214625269350346778376650165921520286280060834195161592262078552801414765150586713338922182558813033800447386563283730349490890255595099067111179684680951854171508193390756509349356927107580353632525134752335937422541007855505734660003482426261469105043213661844321055117096338207882737799601562805648495483228100536042467747961012963106376821348524933163592399613308006590760919517688194588668982342331528943668383519189156088415548480067519765707757498169772526313597955732646142705223357395569945680097082403321841354556726216257856752357226908650126145617482575275293930892826260850429178036233044147999334728883466187357271861743253153292199972068131485456607851426013783957677555901129043307333733166815895214989462837466147232048464480060633146331672667298033538236284243365248703453984387716916833946761171332660037347051388168540976599803864448336657327417321944203850523426316402851613461144316801937948041472542347249108286772446431835356767849747564500418836234699913162112428298088502158342829606742636888895636217001810767233806857547470506869265683741682608473498337925293266529965113077269111776236274844558274392550294348589196202787393165548528168026716317631566402688767101624474580814467299447889072750918672489214847055036893092414703274302326167028065090658376161142280447809371292210594722886319408594728076682118897306008011673587927038151154308142718876197809665594107809357439944976807585616821444957914964732401999045352158291269728142904861103881417442175292493537668378488608481757418297964720913455838417981257177774727685607818052391071221918934412622816644433753685281849002236452364481070883913323747077619069936671224812930160360411110963529470230769483048248078805993780649804853762869383916779787225254871877772972819234211537100183151832716576492362028693655145129012020539426713822699304053636336374812931428981503606561237939184650101643793342548555115310226487121866329153656104444293968955608730748264790909391240375631331246233579163491535090661652150463662450035161590487604569800399361484471232502418545418515534609569339223190801971929638589137975419108536358410892129267054929767393940799790984644758209366474144377269363926213179564565941971310902326442181668357549015584472146141338154399119229720371215234417399355044732294642586020484976119630465275343808586466272075983985593452753149809335492786197442820339873756715778574588189782098228505374315641625594893505796693614368063367765623815180511344852756014827681571200851297143147939798551813378248416416541454705786603234680429551680825755012145743031882311104536937825833409115448328083948695218299920729991283229514442650460408766892806633497799122495428563668970886652715614014785404619546116579260368791806380482514571693214575951192996137986937082075302389883641676864264145989194496129092416709895525799648777019438865367457977424709547057460950310253692511997444498857141007343970276735392074497532330848798481066683389797444735463634187814656457864029175036495439848686697041856328346059507255522758495320677200843132821877790729257856388275362214441064958159089545287834386036299146205468123019662758149043525568211110583885729021572453114504931712606040665797222644871079451645861015467775745490278043825779093812028907463761569502334632933916743840746592866764220246194209028473912808792526996483267208616068811832856232698466590988022484361094434681369710848607475031018475649787192102512028619174152784748908547724534353156488611095569227888720943835422150606562402316766680160562586407717297938782581384059042169928203485866121302560233301931480825249950300036768510051292895459522006949062663329159570564921486467512824628999017407038147256557668597383501922095126478428457880075304278061158977925064142001680053127533649688940969871786482276723773312899810742554458622320417098918317346157391671027389601430511050615386958319342411697079058576066689498290125522073922977474812367186972657981981479714041314795151539972225880898253927575603267887153400323339289739727601561191251301385869145895335344540771899959661482855792994527094830278552152997562363703679872160595725515110848437563790302609867552841602449961686546210085556092292181746029680096600909724815683151570721545891787296984004266074705014024133867641926878262582173613053423627103355809528838977999833544410800275255086864121669746892319606869817260896041391182344653750767100543184563300660648855549624440850014741759296725581200388338380251231927424600640410561316410195132015579875626644317275273312881364311046724629684067982254542233543902848925741236131187122397890312512766342505913559596103151020335996572762124994551554328766450424777139742872786627128381868757468925956675314147928238687870155540364798782254635583834523740433371303824626350019731356203502133218119511980747772734911145214710600449852644991354734017714225219285272121514365595599354296514175635732321358482624251750530229609142371914397933219885930365054791193661055785076702778283704737529146238827410646378560738211145593121827310875523485703503073578762195710705705626403937504382447002503079699939219239490778380024377968523449191595651642296073265113222764224545316193313851155245920650240457888442654379779668212611836620209207033333924726025190841585693910722390467339462876156128906181004654610182805824387847725187276704822288663824128426286307111912219867453849870709687901084548300576417259053951676294311098236292564297583876640464555837305917680464814423864517380221836853397563370646335936768188487189575765135879734451872859728289671157474044918735782145143249542531997254944245142054979026876552955489582870573740055477259151858362176983297662251958274833818270039675593847713529741039699929563274311437044680823196654468433884328492258207436623612185140512085484367347407097558420841463631734793349995493051125512389235252519065888979828557288333007146047880479010313410771207018783434095765982922378453382083610877624091470245998460350073762792945993561826616127518848094043327514028401662847736869089733407260273506441156160860201956010596591449839587675899565595615049015448096788467365166595657512424769273872298912291170075229528842501633993427501806745697076593227321844780995093569683650218579678118852976294193563647464184997018988508331837122501463935494958884552311534353443124823692811854705536883318938554135244408885470627065280706425142071565589356246264624792106496691287103846299088731752199076088146289960327655691891591672580158979454046727533076601762943970750042596944177539419191694966172794482648256250565552239272815865050870857874235012860005595266300142056428365532629712076735839020891660646517470324539476018186980510183623934360291628270127426636878380100475897845033160510871787294165482476958900885820403043295652359706502695856018301867775732777465262154570114792851307193927475255079945102522630196958198613901145044079086677869135672915630680604995531963578588001127818196513749933579247695332182593899851810749770344162569770108816934410348844197956886353339032434229587377985790475553818871290030830552805310144948717868855659765051338054127514554365929789123561528374784278087150131893221400821732366235604692702357556571508525716448778819635231234062864110337545708638470755807188728019942849215985839040506225814078257587971546910621021594659686214003982524261546110223928107409550499673540464904331987401852595844269151134874334051207319926892289962043184771376726266610676982316748271762207483542306685759844381336445853398630497304333374693926307479114350615605208401246827865686286773981429756159880023463010874297485255789692095604126828749693854057838270423397341732869485626558195274042848636396269644224200768789531394116643187048159871044044119332898161787448450740525658170180742473650982801166317638053188192376307659802535838003138555995596168778154076370731683381330114966362010738260901354029926997463323366183932889384126895624119483775027293286731727826219170165882350428554145806257844978153007859947057881024450651902150636208857965225586707645731147852390683447282082435878076100968585280621921068102430315992386930464259252431657149998977348215667237939993757331772212593824453671737254665219355840562567606329447339844890668849433139251311059443039200058516977175110335078062231576095182068758145024174108505327944221358563228393858535061701177318729861474560030750333328375158466364260944450360805678676426188587353100264462229390838976420029437974144942865503762686473651993318363513152413143010833119586223365342662846890014543795057430706488862248548924013695197780235046228220247097980732759480542417873527980950344005446749474121457188876413927615911492280492071510875925399125209176163279475635515333638862925879020650787204575766246081355727236879789778870965513494930634922673403370177587010036332759484129209265411418884287697416809339793231610909892084796458911355766042362092810317754427144038094333353957794709342831009028425087809987227016448105373978442908352541875407207363055408362589364560770693992477178654160223182714810612331405566103519310257716527206468791090969343444084162882160099647986005646771891686193864522743772549038396671108737833937864214876459355761861049293658686187062894045500403124224439439240428368215259409343560399852193336654253110861221352267070176512576890760363480246767851036575405547060865488245452662401851320355329123214113902160407397488731659072302336461459361888594531174999524440069464430023781188655655389554331607486486397363957291302675584926034468968354806954360730648789384506303831986384066371427999684563910281265008398318127446691155618737338999340170050513469687372876529783264774592089375394155657220728756516797628017060544750866795625155443217310886541500684850658550183237508320149713987990171908405796886100346038405401357180480189524087811881628558263002426067270992874943048834751029633678316593027513778236177613535158021350658919210373825201132585666196293797357929595153563237635669553359051018035470954561119009843041439518874453186912110058289675304556838454308679834678777908500781648596542359308200053755454634209570600108780798577054568655620534824545376363922490300523845043953606675036986066356459157569461597404479697887867420354097612202083265219260935945585821840892030399608134947250237149132106092952531651727178424840457102757090199441831848989334763264534075332756162041906137775571682210270069621767662654766591537824057713379194457377495497009403150924317514941094312461883751787930295040844309204415914757154085576470453288961404482106313383486771147255116997523496790916851017882081040344539521784849339337216696279454176450586084322315168115078202725531622114611636877083814157799535137091981631109227129825027158342478726012839268165153942282108590561003418161853642974965549456215375385321987893230616558707150883749872116575705428768701174549814528381440158410071838037869857321038136821800484602866342851167676627018915042302145939148511719824737582781158700302575242538716811692310081788131209536275226013831885695718468114642626064821015269130988309033990840803748692540440910530159943729318033828196155650286702345335406278405499335403271322700053874344789880678976895442651258861792813534792457394044419829038322303776432457236938587706527459419583935436845759751105570337006294872035908937625816236088774867202776529242304821465568288455151683717283094011911830998842944462999254094874189271109397581870996650948124849857061528754801042228327220932826697664137843744952315581622776951198867460195085770734761301329781703937023922801961984025497785701524879188139320800216738616986680918210173496611347785413421960193487894649593148428672108358452769199881989687032949890083813016372883771600287360010755194914170825863609205288678763886634182813762705644707972684304849502346548049085376574948071113145573905510943741412137569220544960118238459883992253381247979297697009539343775810343427011787545506452596696694044716278255773402372467315855648860463607900443456228105610044628966043134280261769718157454953836104132601371371231779728359981253526148504660623567890423125880010988095672774637242543108123501201325269610422298607029994281039090093047361985760829889078358228387459110325961991266013403161966815120586891975733164459683100599517803487663068448411693302520214791365949176477022143871465165729344915021677167251916098517990638363818816609691368292981312792675508052423560265694241764148454511527316470795120003862016587171270671476846022916498962758334915067437874851237680502821874769865900373086527465370977482998054660649385803585199524565876251985237166803448631306540762495385617232370645132707959576342378844019436663414901760530046175069759060375104327797060765554516426006993861433431756815870663971148530476841410456700098501877820623336660499509901013288284504924856821625556566522433680620401461115545386470835042397781005469222872872786298350253883299240563875903131238931568649277144675897032051244453590432961427669330476462701704824019243494242565102585283947678187601244604221793489463314085009804086559624180824224190836963471501485141129167607823899748372993661656295369071435752350498143630697714432671070792209253793732750907257112173704091779819200598340386000462342875731377770497194997839324081612553001530071353559669531754827472693879480887500925055260906773171504259839534480399567902155700098907570171737466421365410589887236857841543108186038928157674850187285787690489770912250358746024690018091716816675318050526816529146898576972776375927762439696696776083900195673475592494461326898611328426556269656129316205842796276069473299151544295527922666265786343944954347643489417108356430964908583672534491594317708920051266926946943597582543750315177381072960281252004287266069550271009865990408617067447798784826736752948072724075358040631876823961013786463592436278403243006779106069628794233417761237153774647609122861650106960006392352576019215297369545845334227873495932330634169456452042127058345044024362131490596212775666758749935165814993696499980657925017216196682848519159837489016169120595544477936688755133009390079339056264105717958151782931904893338307353957320092811014911685282492122986645058896317415506313837610900614893439181760688843796006433371550544674259459950154537455420647955856973375879796537700372813546025493795688498083228624009046206509756902307383450818739204333107822374170649452459349526576477831280638132868259976160112519721830932388205484262078362369711495730845590464522851931731532705663338764593366617583072291659904551699147418981947549630939531145681869065235871500676568825571667685255464214138494540225337826073788320262458761820388850554738517707238092514013479348190281914092108096888355813787162458353257883404178153344579033518237278328965931573927402201820627164178086876174470688452498191576349261253520903622163185339467401092247515503108119378871819166859659645926733233918190513166517199090419996270976012254178352579528917966000948218777817952679028371376007240519612529349552499082780626354004433576624066122238687831438246923062797327642119552836185088257777383556841145109523175284609283133721105869182884681788575289106451042477168281993549662065677605249476707918923328027840159933355264645057242245850424858830540924643880350426939967434763277200267632219156012940744410917470720830066590123437129577836261904472231741968224617315081387739363591831611182573897329806275684544049828094769953512066637057807812603431592630868117142069465689024674613730653518429827147982139494679283436814276478545417456621184384465625375153996017684785806437579040402470790214234444010817178994844946455556907903557288746857502641989431782769211119075332709671372845789609460478422371451445970014355184752965605949360165194685112649654730994146912405277196372089899257684752449516099544857554495934686839888530631899898142789926531358975794014645481203725950004084185657510417004798656468892996273680605362104616063809326224262511512433330075860887021010098501883645220010330229558538610925618720379410814748779798923128053063437419957721344767705502361986292067389828216364929192166284612146482253043616357877726431826166269629744537399871982221631485295712886058513487187723265745426708845686037516096271607656974643033816408144717269699185689450739516075859303198918329700461766455698097597807684036340680354151678814184615013605066701702321126096267151969244244009460393481833603983708669806435452720690122469117346477810831345935850464866103388253600365641349433641266729875778919390062098733087941072090388214933513461783141956345878654011664687676129029030220517500944535659711305986489251341331964264365943757604968111913666020669105363154442308154527778575348138835536086392611081959688779789017625337341693094577004905857741427070269295991359517734299434541798905253987850140525631641081551278177521836767271152754188917360751872936455777224285297441301367427451495752932593544388727183963952921241332424729964569538804392100222208261318931930280078124057291187437603438253398710743161949628050711801643191453393831416056911498181050754457917579308828304420123813168795244501429799087093282942075544622897635064042939880894450220229305981237070875395713088186480220606265380430663520586839956910291980306852116642610922556604711053323273242824140394486716164170162349678483484958498117927372060521195578702853954744197713724410606045438896676962599532947498198272597757644654240314888917702808897283312631672674047755786555789744568372639275248262532055396188270738963374623275690341373967368569041463799229042072850992229493504064050547914023923571051140199072409001402280873258429160455836635004560864627256166530303393674045959477059637954723028755165097827824101179488604256715341309223546543722580641264515155936916759857548950851752828512605683670345163253382317112213887123639305694369613454463136863930845130583348216014171307586574534938614803500528675960560609370126311446074521644515122549497822063467296630736528628696971496472730036870753650840581795897474370187057429475703659258128555880609325199354634839005986647636048161982622251590338014691756506090264117772852124817319393119092541207144139239827650335868341880178455446613670018293476353498481362485516156369955481933936144340916254087424498325890453353933357405674270667172239249026112304883230009080722972643311588341793234615121546932559386865155123539707245665181860771776999406880069506383532524881153242277758708593718259179038941957059654003450102068353177227916516213092753163481773123000714119510305964384320288459688503513458394447951113598081331326900738515431925859889725822022481694431269955287856593841045317487743561291192376395617027156642656632827628872682434239774024502947010255025650317826883561137019083410165714301993041484535527799687981073594590445273230663049074868315548363517347791277356455472355657422422591003829180908037412662054749937153995890331097747625669907171764508316066734602888211568458270492181893308739106863219229076205086734649796629963211275214769141346087468612323797315384562065386554149319660559770523623510754213683853570950864870373745211960689230559911836425772451388705116795218078660211635379990300783584185331489395096902051812778718649650887081325553584201449478099673292076480427958582136807251600872171409701884914950981888666846891394015174824359804545975704183329481511558259031814476343322341613541564617042404337905369959177926078387001832146080610189316816002821638261453574741494591387909422428532674920521854233278735493182661917366164010031922914589688184103671238443751632687170401638461927307221115060777021922019471206464531594950563620811179539107875673375535737567416990881254218750296597657167609301313055086714765611180134839823926094684946801781493460909975418752065996797931542693745552787875033983194980482550141128846564873401319497787701189540889692220852301816571970543280300366666052550131723056972006348641170993398763926454520605000290465417745153274733515724016891388768733606877773474480256930597955458313311166695699682467494112476429454159994499670728966882951540712422694920601806311615289064097143391009844423230335070586930489804442974661654273775079414722943345032757539485907470685452806062415397557717314581460867953715032686127712022772674760386392320780555346150699155861552203699838762778762565068370734687089788360622897792056700717753974398790761939809632379148030241697717578865286711315824741144750130131187276914239071552123775143731604367835052873175107084736330806956414513209499899906180460125088810671506267493705107379762925508076065161642820837849304095555494317242274723946292104809634036821016399127280188336802209587733143026359193713081109291363617879152174906689041470950843572181539924078612670314889714067292323841133240143824643409256391300842518335355894214673061487637510729976147882304097781890233195174913958944970698716700426062336038572462858104081605755897965251113219639976912565456256198165422023524094576813245553745392420015185279512672823554762889253500643452872138444860876016623693838210066416130687954781060574375166045348110652241262571762237162551292816865633365443364880171896877174972613183875391121164757933727713326449332069792943527757842459993322259132128243907907763871840431172545823195564455471599427726513948218497357999524076483498612736111952321148315925455572349265158480640582303716319024385111832257389767981677480345939429824279959792338363731935231743884732200127071135194628220740304283909011971219889636435627212615983635390141349011297234829721922749385265319176158901168891794116627319263881871627184586185883427853567602069261479294671379159754675654184933659979062356780994443943800914460985663498799923812236474447981010343225566341696192058797556438248632420679461996351805755918000051156881000476894708075898567935925179423766511908415890082652170394367266037015399080724364154934180853298000000374541817741186794939094084466287812338070125309322611876161973966692944330777929600781927592201890781546673173757687807416982102394839968773357313887169694267145426217580644567499261034449541931299393658571225458155099575805140111829518692374400494516233984902837953297212974176948161893178408662591601365182397440879114236303698331442633391666908781740658343848161465045838260996887870363133230431587889391624927909790382602932739064412674769879855285619720910105081101875342188325199409679013760648499727495661104210707514548671056426236674730186964759454150913949473705573172528067894501386202412228767475063763822939733580765176288160940308781825173897046501987424730683962235940955970061288031813773189597319777208661791895130701490303293697353270809213686601054613960268625753485071581391987143753599350540944810482776179187463299378473362368940842151242352091189548439786379701873494593336377903654928442320522462872152920570016081443393578974693345004852347837219013984825744948828700001306358555641857057798579739663719481301031494877943133771572484910220141992800409035283166669065711559427661082763843202626622469935664929815856454575763477346887190363407050180141493149485582170191217168219857099427891770845484548619379753404480309844813099436364871726952633861724975767188933399878334748171081840104381154622434328364101496975036059495086861985420885841629517283668275567715298815199270567277528875745400630181567005843578172304546156683734878139114802114015012327719659010745603132490729394507657057269188699921158171567597369950564072122191817494403148339864511843865425002836776821617941706574491524962492226368621023867130359454877631171357858838157553621646016312741525270560682054808615055566327163364455162584142903758042676511215146769222408249807268461036118968687876163678696776044012319975954170312791918205557271305326379448053930856839286933192445300952012454591834556956104358013262158662142294376813792545508100112760492667692016677654312917748564980920997697604841042880737513767939422499085036351714802105827008202122842616565934964515278212684646721851486486598724480058592638216379557449627818235799196748001878750889488860515626743268188965896422618234238586374907509886524432394244317786487161314779281053761272442024979091037797336751887263321114356960110162258796615456506522589884016279994783567850193901829708138512387739862829747328491734404888706451188236058456919852238306438171478496181222010719193892747500155417641452465549731229042530164737464877087500727257464266757988194693376738935908583331922071580198938141059873578969154527125338583567024795218903571149783424739084177581954638653680626765658865314519945189607893446560805348477386408871088580720689952725146161433999138282521646427242045256778577418726474353807971350738008562430103696530141072301483183826596919547880438449444087088111703949982539224664932125049702367622124669466117830907370870909395239008793045204825371274556831149307130749473548087999091050502833446563984416711759253847205448907887455735052571637610120831782147772569765536424324397518181369388398563814840529766420478326039466191493263386839976724614460621864358643694300187406627602138106810716045159975191127419820851716459337255974503915453548778879268069408817077388706542617317642419979049728393178965880613748415890570579483713826855316717181336173817825548599481857935656931710870624572815176196755824996005608148339297448048555988748061194479350181231224498600161589065163232211050286555069165598858611469677104331398524978536503636108653363393994278972985128501042885385983023898060997732469515671016679625419143171682456164582532294305486939609256111396048898045186768981309469673824225771104938621981937151206746979902437716346803151987611096214634762868551521910919491747352272225483366010110094894456078540924162576248269298306660494223606652376206678536843536751512969171965420330510728907891800543948592574205637493437966598753638112564218212805414333735128725056300009048502553424659760532330019567884750703446182448535456921866271165936305493062988457436696128835868388134870458290550629711101424951188985681050949118665940302243207388787801418923294442172200209075579922147343391546136503549255312147870189109274528854164181182974144710967294167821473275438748739216381450503834884573524954690653330032700246108980391343459827245688482936565866854496760701063557502765008423273624512244895932919758752848699599483182679795183078911716158313655443440361090298919231003180695911325002185980592246372192696485830434762115388007831472476444278885490389858419038922190563585957725886602251124270845907999796172167050406763753079074536860109882508533732365169893892432615937503481161673434829136210837520344265175091084106583269595129834528172637356166264495415890647297478140495611701455297035378506317924753445177994316497210538131286133347697644490920130256482687101154112980568171852709906147832716268906144133251130154173745314347309739781480862516504156620277966721464624170484770424320872103585972177840553328740683883802407237062354130029185489238652913567201150313069088636399987552545564555672818469354977147041198254683720014043092991937344691421679824363449976425352179839525846956843447599481202902376510796009519042079223380567137136732513788900327327493731893397938759133072592918137889686884312474528090558245032729123670119878708866141550159275421931042096171851622008596685231245862260352162166349188497535502098312429574386819789134969167445434922158048777367039834867426883938346158346654980503798782900398907496076603902982331416277671708845078978211699575121395830153237572917727426422710427334772255788754447114463396347227573323640171155838368351191543177977556120736762976164894946997549114255700976301649427668221290129397265044686348836903509594132860394510818488395143148562863876294787263656678973066018050499359274555846882275090435934390343729783640112172706483026265785037983351939505471034422479029448729951431500911889055411755980510683181730739654628931365590584533994988677984769309133609759048416030131584228216360678926539682609660430231803884341584873722183575588975607940596869385380474448758561059856506619385438715699504343879181006202525237603205637718071056909635809499594900313151905522888159361141506636183145782864393415636083727132507520396966888923791912246188977118395413553406226209215121853458977320421198729974869102868857671318680196048200602773024379815083573580155527429138372143207096177744567757516815909907343388858726681056923860974894415602834295101299279441472747663764132055485332468762883699287461458838868942946987540689907946372167393042437944455094475298215377492481046308525867873593353889879050089502978139400378817245511138887013331129016356547806929148907643259793363862818970303607385876766197422012033085707450718483171643954147414867934861400061586844790382547461717223454749158147183363167495579135053421753088607558764385219668432902392562621376656010397851000901276523350547714585175513681030543928163613144242461455786788021220224873762780970152661604231741539376893508340974598778639689859501402381188877869030314577905551864538710111346543103080186763354417751749071591244562500838312591859885665153926489292823952214974603458424785137270017454452910677922726120511638029684768987542152563465682447791246501192806698731585656023751870786267493669357111022441494510949199835215580191807167315543105018007102626158078941292260889836672359942290737973642146033805351618608007742038901106840349127803511244595730133033543855995154657026300588921340761903011065294959870797219141923157697718600487499120380319123834050581407658080718369913668583570878217954001627914093857071520473253610919252389140257903362581789157298550498631006317208089462028551045437917914304826300090935660932503336943566949971538894926957680955504735229986496026622471305451434929579449505788260967000142285662935811114550725184434184469269169198928524574750056310706539297492613933224106315909679650150551878674818168807270482963925994070957866823378781876374213056491808713224558903795372785192666209540034467188508701751861974697477695278867542406352573741979744403601032514828029790072037840514647429497864871329022191129324721465140552025211916743609846201472153454680093075235849595988284898318910476727536715632336609653338066545318433184054070971165372578560239537173815631092973097998481412491652714034847714069011522215879937813281104631667343082198847104601671636211162073193335832890800766312172361321006945428284381963999134639018327446034127179325328688697530506030032967695607236638585107170766165313690600007268243501947684610408496089893337623863129198170198613285063165912618125332953978999800417797610915970313827217233400931184457327784694070372417969988823926613302564827665821998839875173562769655059517292604682094340264245333702608798175938205328166448978845553118092992954222706088478631312706364917862735161786869283620457475928205945919550887401469557718038221401013714780231918090546993175491343138289431360758140824928769063094735485959436321359600376046301246464375733580165491092898221559997988535387506365008667183416269515362869752261471442366167615295016563345750016496364667613223304236728946237959653859872730077036214834354686220005789507673442566394728599099207903472637066968120334445222023016834445467518570700520221358453817757676801108323446138250268790392535417587664978264104953295278449436705096547489299727762299597070820323948537160870356324248376017153650808302113984261422591067634491491504013816346600254263785052426205230512197524314113952885658446862284499247849164735228342521977615100639874248397797564485733906987524998562277370777250057178276896236866646170309114612224712374667853275670931950364984134845189127957767811682935986251191540453840835290647500414533949227662353622439540371995293534142077586843383491065812791174416747453879454764113987501721639118747767784724875651137432043680428284676741674680668322946455023031479769063917369968617099874245313832957026393049105193987240418009457344890993140140823231290690694798846743381190027037651865758345461991304460656055678744326482083955956823791015227221499686025070694316090008516848012756716277643157569936735930254923577487782147152108928149208249169357545827412786701092955983512801433810867361129709766092319328379844102529311399527183290951954458456630468927575487272016184655961764991997275507038050339849903580144520006614604915782721711938189833526756610244826827819391388223992514038702808406338156586538942011126332914778987692124007157792448723213148582220757974307396039031005620397831623602502073548830766065561131402190786679086396216839778247444217470047613354938800724547803152997543516556728633025591156296044512178616916458540156792435143718306171006512901170264282149142659064014251914294098877453364997750232024647752152832911175574315674721561679901307829161006235194103889954539769386201293085453549023569481996871202906576526779607996718678744649084344731896251915223466453923091777742662102572675420311899106867157463581766107092751210546476133011934351123811543421916112306949552682718682488861045856925371852940258311377501420175876333948138757536729397702937645095165520045464847063214436154283053599296583136841919483472863204087628670799432604667140931804149388238732175962879674424833528679349858836142531466694458225528887932462110927568066891520888771571116066811507737787025297177345557400012801713026451356853014965859034846457934693483818025406401112729301655777024164797268014847503301402228899718158261172678944306301028938475131856453621218632907854193251909798820467631372309779362429377081980025292904770004360533234566350197825125999474499625820150826858837099545324767665075943190765961830670825552190771852830355798252829372645380113322560969820352291670979071610427697049472559247407013688963246053748855184146079616209440341459870190724529708301725539757281766044783322875553710707142972567241680751465816779372334446488764277798734231826640349595411491233588942559435309937295174926343049479568654628433079381223271278904588402623738533632084063886005990689639388608240552209368549702439811110775112139049385334421665982530962034871254987387897698287807187248561137212522060900787046049498961746954040617617191194997798791104536817295042748160785427514063816138902881756298626825367950531269384758301954313718293486961669655513786133799509388619265023522394697781826865929271283189078184405178030220234306286231457589967385268657821232513856484415033318901238694580277903575944452680792524465843665829114944649023526043922571218024122048417605299345928365116490953418770327937352547750804868652537798425376133231671991335246112923581560170033798488552217832578281533772668840247702282520921604121081230637522580106793652384034780710479218165034777483203467898706606865580505643146420016231281989271835413722864344188189486086030178019555572530447094835801034445039537892684771391695439804244863942585075423398744144082562417367863286050695168893520977571696280773032481630269528751216138587294382977090443233045686626798447902594920984272062170596341198586777879735260859666693240544693162664474249611526286842922264105336647597150430578426624607752796175629894623317796257861552817977477990524814730263239928400110090183588455459657187733995130101135779541166218134567250581901513183717720793036454241570757259697161694935560985036584313768033371476804559957821967642340008866612219410056632907611267826575843674617091727889718840469493661172748501944444242648634938891022631211204310748797196612916134938440219781235954403771375728679750909881165167839484401778399062793054706839250274007639388210203825565259801804628598681661587230147546448621221822513806393139892193737833503663459624782894732765713472101876966274917184013349158365894697925156952702782550605132381952253037206608114796837839560638891041246005514258910555803183605047182725473880836853033926984735523130521351714698141493348754763547594946339596297771082355662178133698823543624491972492747453629233366213687864016864038533052389844272866029772035652933793813849745513428790081576590074790336673151972290936700289503832826957545570370727918169242044063807934838291312853839595839267955432059004200423277404528756127267149427268636248785863482063299520004614438684021132289807918992878423946260650612335560783496718756083600312458206395089090276331805342125089665802347950250391565650425359950837501984305855550171652455910219782828821238089743780970126004500736808729867754016986291828085348743436730080031615828808877859009127199722006800017957601291590841322004178483773870964624775775591740084383064715458110610511208678470282935934177813446890472200937475299783554111643171927847733040599596620975831060989575695373229697884517118417646387650915577714317587812764784940814243195343954171414273694134538301647043060012130149195392118209172619182793796984368289969980119221704206153846897569715150811025492176130097983061972236466300320176737053319617327613074588289919950176356988627259459919913118379000888428565880228842518260318281040963498093833200382143348052662535654455478240234356351832850861321557306556991566001718405864867565343663257283485292506056853416558975624345929298320432247709776903702719194124598429239298402941116321049969241089846335198891802363621869598015187977487261222938539457899867455207312248715910710112707031820977432128356484799272449307992929578500761145762755851501684760225718115689135200885928357445806403613786749999912615953393368332818646610816226436740018169464891672216199493289701365496865762119313869292533871283642396010434423986815247444098228053565941403486349226064568511131422937395554933181883373836833939830731942359953506218860173963893193077668343224554438679564703368929922958198045973522137392970148510821588844869458319946099966856374543378796711350351407432267374566301575811414634666718568441434964249664529118732034616804767634979859211040092384383815756488912163362973681492884279798602895630245002721926133586170099665088049554318513994633288761264388943384893015486390766978994749569667829754783641761244237769974226218797821048747968234874858799138400823962590095381570401983688723429306008267054543914922881410197504617279333158243382128208789585965647156258632646171017113177930197539431141583291010591965531137611727750051923193828406110965640221271502917213088598882584872889792366244183831423725387848343203284982314470325720961659263534508573505792603079784606445360839395415054168366597243219988521287573110143633827413775567852896175835849585941594203124068121079633557363535249806644432092733747984249135521212332845854741350329331541582475851865205109613026510042505860649976835254538523580874435713927742026458219577611618264955188155511518161345220743051766982777160983995615847779220328758456991480065085726946697892115168042142771642263526551468550396686429221671188808237284740696317296149004973628779718738750254271867503632573449292487122173104312305443722438107960657087340654314198050945737384709925205160274750634221506581158956524688561362749661167585464610211333801376376101126875429345259973953105098086414854158913764346919312118699491843226331818655455458058865912474444094050269590191594151297763062919042034093376194403406131850698306301793484466941447002752670455307595974136872293005684204303507235938657181305452252115809803295011283406666580500371858705444360244353660371516233521829909872602791535937584712800118467868008088449896621561887405421824925224292034441448291958540645463538269084316543931714158156429918458623085905738119727940182658927821906075733599213034603066721797467034666315211172803777300965983929233033839298475952755024174264909349168527181819338002297516116677902076114841518632948451912129824215371239412512322721175910613024760787076242699890471149413662452283795211172267142026422578138226274668505299326472792074440960560588322746489541571587192724971568633591018706568187869489676470084068501940409991939248259498283594221809053091545318788089553961454358533905453890305115264047941619031048253294598344671225862283485709067565375874200311006532099388720416017720812052637340057396589388922183094813758826425403231157227029811053957069935205353778802818557166123369272167173817026336143405178395368761962601403348528674106542998510111180749405580229915929935843275659229039286882037269078017179813452338732498537569840367719362030959989489611859226826137235415784897453246199860737109776845483610064099711682760354437903297773068799854774951197569767794891822935923106099056528836640630355169157251458523097030846919307053617653612353115629098641445600155122532148744365009127196541177591966473621879850445748906874045918632744663558098192692182043655212868441992422375554795675021775434188439591258538677752443443902626711154416360890703413992208034681879974149538543208901248279427114078087248462816790514890526029639973751618472453308373445190803560968036650803772968472307830122047794046188178060753596618195099723083141106716867445151948338564998104930434008366686938387293600607936329989516926885263314138387720304188853925655404231580361652162220700604568057831922633575033639425438627713528394572631626323814885204029048130231852368352464395815283633802968572842176519990846908582285651798502591073927584487855687358679351939567787610952406503186757793512962247520665672871676441677921982085160886419204450807233328452707068797272231561333627791158485299069419459847945043318238178916733926960210714847595394914585973440187292068223818642004125690132461354835755054972570883775495952753099378440692289384408487817356720798517260944337303189829850434888043023536916062562083680202838930495314659720663964071799265339943388785681978932161126879320143128614828898001487032911772527623053422587694634724358711926951215824409634583474234076839126268296397895008821939783423072209232487078284500205073060056634365145326869229813464263996582309231525337677797936496450586956330284632042288427323287729041982265510745156744330631270324081121443343419118591658095550027582742567930392068825989865638522673157516309159787232435281965212208761793525440086632609150210357665266427212772508528631766279445828838352737488886770662336124092818308398474892273231873908329178164803961240789253912051369611437551892679220697499511880186722887310049977053796342555424962270850220078869645115874128753719687515142001213600085527239389144600527092578401464197601835141528610213255659227994055258350114067657347106171213699809477423553650529907131748440088398307025439983991259937284228857112087621854487190440289279802654557257149126538137605525731480968673279828306035673137903065012058432044338786135553009129988726229233180170202344180053600155160966991274616207770537067350647180949184854766612223925975900947749301451564083673183484992559343156133629098984067599318532639600191556868934300250796536301662493905380962641100028825481610987803241887583884650968194658989570495279869916255989445158591813225483505947623174917515612524462917056796982751739805168251337373852351184113790018862575759377404644790502964163429691855850127859660712025034463803772308244252201224460878032209921344146671605738555058705085107643530756811585497348423545060798623466560074492859777179390956189298410490305474945260657760711759680488492607714456979313731013573441974262584724704882312877333558467443793233107823551215505279604913163492410611627698158625978797273426342335608779722075895524815352588607309731516691302900251712635423311240294282835434434526267475814584113441977557390919163648815988311604148884954476584827896190283576685828080683429473365532222854007483848008809180242187333987175374467263129533611010227750186234989794145936470850065530835922823989409672168431161204151822690008436906609677652209866702524228454611241962173692087012404649353242684228299543844872300780433035123887326247042840466111646871067010955339359625321365216105748940403909063292760250537486948296627624079624456906921050956758238257654972511825111598202958491672601242108906133197085320528426696477511091035049323154849122186628188518864649319483403673968360147544605205204687937270747838217811835145238237475321523123215986807356684948053301422137085417636860018237635054282298511532345310591670600871220335818770076758256630545288148008159723826567911063065318567856429790055174146561438178687102160191547929575837005152945226459913069574685328167997644723659050942462185909066704847157480476539629774970386244050409810587249473717443335524592810170755356351140277731774664568505007507749249875259418346027403152344404968989017677853291394982871675767273479149669957790576526429451024376881415219673788261716576757072082763047752638999432868985430816523354440365475999396951159385457584550413248624904901670832667913756182185887212681957196055520309205796739447103006132496028063139763537353435114675155745142013810126248943628882618034343695209877964939246927269072083610270961298796076728880826618126027140938925525626003665575210846424106693054115946541926232253379074260127412454158110778989137402208763252848592860360039418071516127258981421264959525485786574330097915531225083401807854458165652744164956485520129680256145100450139162082007915811095538769120087811309862797746226935348998301005699899037913495885858293177247181389200240034182232766862654945660390812297718982536473127438046711529285013996060412252151814806067878530811161394410535338853821797366738456614415748575244856080049754657042661529086267758708043768661398993801152289972287047040581261665547904459437984910535997238120485498302093132911295167536543094022652876366701435994457296295596254822558897855448952301752220112119531913731679246452328087268208516562561556173816119773087847162039652315079786758952817512103968270978075069480725682270268598879148291059019180166840122317136240628717833791340548143746352777649351895521284041983634739123373917128807564380537866043987712780861781998240524536547136713846010132260296241064946875753172172275910947447438921748486961516544535524252056375202119378018763195034677244646847974522150608111459012947128063531383501971468313872862138256416875813077615732427447372123774903496279800264990919553795547698588489888796095425732422011474407771043327906324072348847936581449391336465348662034118903962820211939144531540854776071828452630024069756421013448928590975679692075523597287169479480478844035945879734560706645855753648873966459335544889851061618802586329986073875689912653100872800433124104089479006335038576582922736291082035668452203406634460771283927939981518991293754978423316182510038395756550532060707069208199880397566438137159699032115393549978292523940927139097728378202586001416148412033347030546494420970426478058532346861924301538349486762882020062635860722847520283857862533929160333796324019534295297156951721876631223566552013934866313903237949842952175594901333361357737718745268831404308496523054929221451254359475351963334615029543070956304483897215535867688883256879229189087238630681122986103681025547419617340672406214633907361112243672872670362608179636918753028856838229576142422043747653454916386611273481930627265104582234749344906321516878811099497356178418213832251694874359967784780846161690828067344727629367412239253015173836173097270126998298786390951451818365903922667092926389198530595880080704698423471936367985725610016023619124129543465455324848688750782655112475325998601052874598469514678099866213871101715339448483566513305794720740290258469569870582218047420871833768791493025388503976010177836723510608588448837820613128546583603921022194019098058875752118183764869308709899045499566008308014457050686263565213121539448141468967803724604615338416415111054385197318472400360375100726434731368426433933386839023689127546224356434403445817355934655894067741882475412005010326934934149832205394511169484698353309543452558546043527937319114756910920396554117401815208881927881384973350912258737248586652534923849348832099831432767814331519919110723218471340860516179682318831073172046610420689405790342576522586788546699805249392568050424742539255572946327429971867648979719688991991826881311937495762235597527798039531442117043060363538587322735421873737623652695009885475379606172927066518144486491902347856649644901067326178787154651069537389537180812608105367689703776279869876435622519382017302908798527437003799664661128962507729780095834169329339866968298952325269233350936159451755066530611482291596935203128240797323597365182388869803815015984867162498243665443589028877919524390643139530332620623929819092373598842592040717040982969178832479847528119224221984571572245424637482925122444092099384625433866200851452620666562158966273885371826344328101353032076757563602480147108948757303171277747143898709984832539511669061326782200122157904856348819106571338718089978711086395863591398696792601495606859176702112382176311875316454523377974668681597618757103765127829613393145707396660846997431813590347880200428410535450195927783783353704971100701356008614945674907739006656627035294396557866212486160258748060445993054656942424124239225520441373939744533805640246147828928805485369694631945460115905197296025602054673758102373947401682961487871535160283767454255195781392520838723784226095476710704070306591966125158773300685185978444240692592441182648444338828250004848944670693078264811457324707374713684343791758035739180072884402688455623207444116873460243917311641977745274588337538172518412861928143762313501849990233724048992797369558871140616700086723711112144390109980724189161921271732084566301675651107627212186687862041086779997381665675021058413091718126468810926016663010615179833533832347294777071007539652897779190752596007228155173475842582912228663102130284532071026956577588186143194136903485355813526492708436722620622364261219084672728923608920190580656557138137366630714282020738941028559324266092618224961596993392345335743065060022087193119533433219533612872765460707198332443524017620604218480745224555738742106493805147690004453567155927799447279106873794881447244174103534077491919366099559952833680850590868556890035538262518111469464420900900195144913432901176887266431215351987611839851540259908837636151541327952298499974603089229998904383979921880084954800047785864067338804140835137609589842851411382550030154333680816192197280184782321037039692938923921209603625734911266538081677379016919238420909933060498901989897453136746599278826722883204579158153492887951350907376732013616729072543797069476586008916290621981764845875089963609738026971740831942117755844072936472809314646196473895124388343892026021214756784258992851365801696055291956085964692117869788282317871437472169123381779888062986250954324051178046193097254976566379403414422302534192739917713913668139795991082447686815382145872717512621699669729969865503278282459553713569677620884445288202251626227038149447344858050276649368307931260571020419162916071893093836191716277669137035347137279375908624817967683430203590934517515803791722092156738776780741984556463764358497074581301169070538364116606492310085269225747849990667403733500003361484415572796931610052477867613545540024961984912212425610021754037031809512643802910384603150978340103446345552536926301865115848469029506405004710948665020439155701510959188412149339876510975345164490987415754558945328184584307354173522985146943280010898616097499016112366611933773374777952821036645064922885192232625088668767065381370204108663965277100556543898284113254466812522691694409390751072368794652855050463354516798447773742651285758144440017487591160486261089045273640232389799143389112253000860358128597493954691203001074238813270806531289546907538148303280689106915233067152812981346689327997547377211824004007052194650356213563077001170591358100185724135141329000785494045135922905327880843277371015186196396392763430685470010344841731336348157541357630667616640349164560399645339486538135516075093839598937069161420048378045182458610507827286273349526464348097624513546915888706615882683396449636040342876593720453557501246218509025715707735250406408451482335482675432057738997002252472766039855519270735882361464741881948966735805838811631001607753115769407741646932297339765354829516401726092858287353897985640739714874628107626826821395809425125881759656107145795131806115255384444331353248018468276998001205449900773071362915864286955634425087637522723972105194464750891589873166446227252247965778444429567663615827498239325475275355754815047757590922866940691788454039237043782942788601101645113118494821898438729399664502632546393949469923652168961102273729995293945476727220546029697319421432828694425023238354635300857265732299527192192065380896251700091862485868680690472478794695379742984030776086413119429076048286611649743106916815354591108318154390737755652734626739806357631557383472175687369559571030089260123748731729159817704798533358715488138514182244342778962353806420820360719457479377251682265380007318578316093092501132679001315637083046717557520995449312093799372156315836705408958871347343485039020245187011431389978937994220239921995500028107867242078077815463978654145917159581081019937450091632789434554570395042496485043322855212625822097209197819613947193024289107877010715180448190882532161362409589890509733108536917581647937822739211098905320628809723657556888135717055719111016797766239262479056539179986575695297244232689503656612945958597077681426768107205974002452817016874447389826640492710830070234908977309729802572695494605033514815103351986343138031519718003262540812128840032756504490316610940953010216685894788106195113071341818767495413458038644504254298050102701675562277119049169880181243903545498055881222094096624328322565036722529049102315709770822722135529450964255978781629001968509762841559645537284416186650941068770307119400751020469129964965077425280281764761282200180412163211955568625130355943483446449352709813531572302366047308816157900742765846035325979466162628061744334373982601006814640065936309545335327180999531872558291371007838585112828468475272092779534867654742462593857284563939436845072384320712053301335148945891029997836608519680305001058767713972574660398305217099695979039290846782434172380595714786415875125856983772290890130457064859255663237962629456827642076185280793004500916961876606276726408992037154068942567851154552735547657924110732525222093504278639484142237025593492232585028130312303238399662024008882432751327359711268337955838842953316417965439393520185489496457926117626295163029631158825938357144136367064897904340031434415958406450021370092322162297166722833003878696507557547978755814437705397905564924974637600833758708051311833147680152378315694126832219356650439521115883555445613302473500470534223364773071868808109375080297730657229468844572178912798530923412149885043423585885912986353668564094902656008313304947997069279563704667883668605625565816926045804177285179753682833664163614554245519894158677531628177913902224688213388562167685620152842944714568425153495352281530756978047900909234376736415093922282240152828813213329841044767277040294348917627968240784464901485954896854721826373657230725125544530563557661487391656551440119693748720159616714593037542283401953614230928739546954708155287093880716504703017863340459065885379585514308324717619048646419887473354725304916950391621484350198330796765936873986183540273318681967914043389065354718634058528321433362340465652627160011333285803083631820807703251312991106400998940723513607362250191813727934053155151628758509074075544526399728679229333902918181527926842172048793062215182931606170909526412399561782468174700138739708604031897890822432382924159287300448753171272912450345106600052377202312879081011921379792553989634419701731739162187258979095386337905051888231071024847429712498624573629065366521591814538356755743015407576350821447407301286778192863091406746980868161115775608333599429658614474672736399386207096649545256427012605797042750464713273184875765762452121363141636066790816128050362213119319937716616548125842129666652209780684581839416075625909773491537682539788826789354964847548986385949555854693413880988584978691517200163049375827539128655524239860267284740429913447845794278395057384580786183637789013953579661495145181489094840439902711056179142056460610488761619106118222894226855030170724431804603479787104567717548023381771210540032451259456218515202744907131507944607915463469743147950152887067702701383193668028347677112896933121737028268988611819804515838880653042952217997647794549581153075575016981420131487247243120935932928756697377029123037483699558164162327487795464555196832295766750314806591937923019250224003211714750192960457826475862870813004860516875432862598201315787838551539535255821672490294511402874253937596897143571471537524740191808990546736803074891560760590911123933201680544824576267994136655879310531112515206253726813952377286973830020207339491521058249169881557122010477257797750713472928516535117536372803051414884234523152104447185584188157996046192955727308005948588373940926013384675558500429568553261616651422356585669927255504457762958044019407967853811714189381142249496736927054210916285702413633612610138189529268390687586239179371782466988082376941994475588749033065127414971547680061276252484434383264787800108509579525006483178289197992238481780113681885926939406994541818623576393533523013335850177041210236626375398453613515706351172820971446657823551492481233004970653566913972757408214251666623501626710420154694891997193576354266335432476133128476279246148773879237725166133017341508227195715610518056244828817094735786888485343048691165836137020236809455240567085929264076969594491440375739231638397594964114836363560244345231160568149345458134487450403017911407899763799387538756503477327331400465336334344932552105392491090017275143047922913032899993435946220850950082501298499511566857292652777001746286340444373647475366855987193481542392499443419777517974395826789287759996499717074370220618441236513973053133955848984479357448306459283297429405983253016942923831460497859223370133830916360678859905707395099099523597534639279508090065274913561229155556827760590033924820271931525968625033827803904385843012032520726619782015189825848715173227562703660197658927738115428006506722518749927985308914804820006636005856248626959458095709771814212777445318479551731053978138090656537142773168743326849153009871783512995610142477069867117816372103888021173408017478026842608088372432909366318902928338696149362980994212482830892122756191222474807291432210053162251691767786465347836497846683999317952045940671721279235066579523093222271824542060293234770856373576620395022441695407654558158492022596939484482200145277796950602229519701371763003788330798164850551120359224266531263118550074636372296164025812358704715252228431614204438690568189999706796948630204682323748726801513415295103499580809748160679514739982904807166387183650760189856358695748535335135951187117942278630504390342184306442820052510271911386949360738623548949929782858977129106007297823665067165323563205752549155806091389498270222675103127491715802932203100410466280330972189832082301039682735294186210022874603911892514097603748634115935577657616836639045733286317384982756714836793942312816424893671040614313968820332820019870861903288485860198363751509774551441961701848041817822291990309291861705864580137120246661938746336898009175493806738284074177337160678059291208305002722499383774147866094367870667992656441627883678601754443885737424434144709264788054076390729706053282694607749666410761703176748098931382493814374220896653004402546546138950436886089193853700552301089113876926460947847147889126339425806611318553706732878125889249992955017811176514773523599110825102497396593243281622304278097435362745014180931439963519197552267838752994266894417201052037303296858868388323405532031609929809597653463936493181204449289359590695460016128361204589788388885716238431860183603091692269108774866324510023963371973865620453900344450246783570487590465903297598514988221615046443268895242943223595445883025327418698755691945661999145895495804156171870153719393286726570220741038994254414539354780064568394741646348492911263400401810000388009887087736219896330663305365552997763290179250666648345965988190180493795387321705071874163979828689760505395400896067793154116301837576494673906325805259215890999834587041639423258747750216066622323381743635993822898748462135589203103665145897536016751558229070237136910346640840919140329568113685866103946122216410884260914726619093446335651578280741300030098299047887917860855268431395450768138647294263659261664871133124134783044299849221358450864144385785764463832695172477124846430926478518329576290782856970550994153503056105282873918477678628008609053687909369450985021580121814580811847966413054257246496835261332768587145739982188459914200526544935398047549002518147639729798410752961221648901637840615034592532091005803045536395906997449392362919977522832384023476262010412921745089323570798324187932412489636667344179990243762905202151056551689172113198564697993724479274697974959709358981488481244279664968135029051780666144555820239383279271171849219793963481354318601397475953186167796991821839808464054924719018246721695940350264967200083025880250484735243714057019099965480909592138012538323923754226296510422280681592351537481006725284412251481741642128807974691592228574318051280465384084378282522596232636719177278937744775641517843006744880362593077250726231559273916979133536323359836284838991622819919137027569197629816516658444048069558684473366763419215909074139458441874399941596382646494761763351811361101090804096331712042760609750126936039736798471790540313487683415998698991090269348236584907717166710629376181548258205342911580247776547832637052470980331947746372086021539150947618384913378781744982128228486480821738043283226761378221431664737174535884695459364773634921132087252222786953275362263672077481176769278080122063714992243176487016157665771780562235163720899445600190406321759099610924432159360001689308954018997280851989774549460455904758371819221294298811867228591875027954009285284871032077122440567323075700311874140198787276055444515163605649667859701959483531716515941740760883184006979746605770051019029492388218261095146707071684587547695438607644319248168634274793846457799987333788334239723757458350168082874195521608885293790705724230848701012535186163161532998253533469387397718141717031553962043730247592953178046568826858275799508358292612134885068456204560698151778894605590803718084973947221526471520191739195930171866712543028509806775862307324663293234752611747457630907310051711599739281065495482700395714364468841357736322383523284662594549924602747372194310652594247166465109431924040476098198647786410197329454405582618101840800781454514598313379470024838472705696959715055736169977006245097875541620860622431828721947246883414605125245095214509758568298717426699369375475843999375029273258400997992393700728266581285932054036887029689935734884554131950475534408224335055070864316701870846854292478831677311282890161805640977819307816602873443684752463208558968864577885972089186330807182677346887986322809449194701661751933539762460696848481484724374861553738094947294606213546659302437157100246620610186184012734983473224737774580433735508049793991375956612245578017138230699329665067674994839627550524149811938717748320600556402020671159488285035953858349441039187635432027095114846647304824688807767385094516949438525110221416563458120164597705678234766057574944534567234399148778970946745435617345855487506009576661055180612145861009907813294459030373689641894584736407194878310655452604797899528244739515004932736317778936919744540999213674893918589334949062795263373425260559250731454610233504196102547614196896894716853318624917909003891108116212290419835952094612191713202837769861998424367657280479359238399365970360508331314268171277052578502046121611590282971135752435471751288221416698062436598714076717165384147185880267598679047101332188753012123760442623329447682230335281474483856547036988859534884956601926841364029369606548902479594397985929834915674537342095919823307070156767815570098925809389482316698788193345540622436303889477489980693142478775224136937002714092375312040644440134653183117136187648138051218726746459435731154142246406091861559486025903233045584538703084613883884961296247785171470744597856466313148959816980277987807855019489372201005927301924511657260525225109879794759111092403774821983946753791051191927623189890086144096892155991865832716886830532188053264698913347703365351069415999843221555050853546216583080263558661737104659578633048433149616206036388826348689123094499038914582176364211185601623702725513049301755788507902501177135509777052106559336228242701288229760127827569404476816173233957187530038246545366160328345864764597888537096893170323709510107114856614635509223181425798522473937726288307440335729884401190119248146890258066902638101168779808919389059207626634182645148703353436706299705806349978711249580657814211925468736597619534602327317319327877043802732703211018226391470135379932235401547278472426956449033555515228554995009285527432987566781426741822558728386899983470338885887961528007480675369286064209037205640498253975336797385228387170559708296436425006133633744142384688106668512937134628935067773522538077119398446768110262447660691881297720566837208656015548497706733864581578723696410035641459402156376000370832112928837252716199624003793639280580873316742835722448557199631793852663439294651561657356667822269643414989346145823738035282438755765763759659336591896157180467491080720139437757305193371233182855838112049539463444394935426698278384850021456355827306190395080387170129733056879776368606348698162498516202712650573808273386576021246744067706688134770878581125262841537388524785468173481332583107401785344334553143516141984827351069664947584105594203297444354809088906535909006459930478883988315146403157872587898546522424922691662064270692268218139346020191667482569240208458612909233018268783259637195882369198355538878674320426573789964438731793874615110398027976269666635613215899762593379796972575100311115959887638563596827923241388926660346711978189180641691375962874903183640433626317890456035526602299554088621255642899914310287035964054178801879556209806264794228041619186585015688995706085438223337355681264943568127705955561851445541988389854378193257501711126452023540196327441931809933004218592616045622115382970707751808269697012928113738882457937802097553611776797585788736980370389328498723666744785468704578037590583154973370410817381251995351327906750749028208697839356370532453149864033180380082360536407130380394710125141864910787760505935617189724665277713981805587299548087848024337712343119059938010332125120490645046189513914913754122066909264446068363072479130232418917793722100604283471639638601656022263617002302512663561666054793588911761400697324774239692841973542640319170581548641176957902460010034406730710281969857491461450587345545685893577082266581576311279167068986656921373322354364902161565787858448874663429553787198086568564018193955119225003481628668134606092854285046238291179657109377632747233904662294782981501666934430882626839776985468783838595873959920827362696174527084018731338632963120786075567762819635935303114793545434305847839937782862393499743654417437150771176335790144726124765664172264209014808555508761827599560491933757560589674267755088418918422368732076770365563332247115351341441147014530771378899722937343743299164421628853884835598310250268760400691012035695442015839229463939395246574976955045831066915124077633779331302738642776455266535273055369162499443941716196219827489162036072716701186022010149751078459087935633570852052091599055344848005515469909687081142156496603198370341572094308183162013685928336153609731184727614448047123629527029053698159526187172324734712672258546769610934801476909080517281651180909662692356835962301609607302276796073901405336245491714034294813087406414187921160347055680158073344239746387562667468033253576476126572626130072840065004822444305486672507086710554029878829869754283709062418823915474818834794684114405084226722936534520416732868380906981399661459435490239999835382143089778361453494133200950150458842022009134496206337763887371569810013553253496733749787279487702000136061714614201193345397319118492816441964839392442358370642431827520075864473591078266497090973091773265867488822116769463978947542387568150917580249011997941464038107667681522252176965449411446629342896600943941605825863408657241404699239147039762400964623987668077597373564760413257686667874372310559092509169849089725961224431778657310390575654732561148040595240176871977396630278465341441492365969981323259206190146517508131485505723069591334289208586499814342935374045651615322816014701893579462395511732716465964189740988129366563893177203794326010100384644170986995890274817003012872184696208127431173385210767729330110255888753710376243797040495503424043543379446126687515890778475568958453763385345135459638780925610903650669000552560644643376380000274853227432291074232831726719052358030774061463082926258966709041067329184758208127203656772017195018207633093020367895826572599843343784471480263313947519431887762237015322000367728140385336955614348516639721073651498071832122348364305157554841805582150069723639445972046200224178115934222637479425140459749735879061489930597148680056727076035666015195459022347806855870331722325792582671384462175651750641189769880665132397761124064258739631561847783023038183051358801636014996157803695666722209380155162682210537952228557138742756434447795534884750015553501840334045206947055836747973071921953516686299997644077905394510458424571018220306339921741423933483448791831755193403399369664822900476450931285601377785976879908852776863688075087432485117620389287846266124023400456001250848897360260671259257669819110706555640436653369050218138012074957788922776559686333170110255876509156980751394661983250181100319871997807638503471382713038417501820182682723331536452825568448054106981140928316719209432288295805722043329338991758481416261874773511600943150159857830133167008631777971686301662135757619425836674038739544797581568579088276574846049828384860321741201370502540357910463925376207533695313529466332339467777568661598432688299097910757705375848635907947661141167588988141594627308125244364115358406577761468175766130197403240623341464736010955678818812617423947903113428830058353092270641422213073058422817310944229669591346115120906172615108356051249082017490317462424099299243704615136460518661937031851809465037768606102655229296081686916132731886718900676228167510885380381532489602741127132002579001452666717229802773133191954804322039121539819648629475209506693094163559809317688593601399900762545320083774900241579179374940412721867717777126401327343013096450529876818432230058017795948330743545919715143952414684462983696587006170450931758638859608670991350760739128683145109145332165247737126183843739245258017088197294916100345281133779292908233769600619953942738631771096180183820031091536923989631120758780696283333439635475921614751273028056423089976280784413503857874289020554713658007627450765487156561885097078835715509505359239028589903180283502626719786565871698048067777215924700450284221532467880648083925174266413186332071253569043956104540562089574270231850255904603504917227656536801227226237977122137143774067432849370791433127864646537359619252881812593823653736179087517092892113346048004570116405686249562574772915290184550781209684945463650586145539454505132105093663068728478298559206137841718710727577469927211897730488084563437581068895273797362752996993072522498862960040436734200188197958282017156144214580505258825580619843481415633147553677207142748821428479761342149392510971337827541426322708137973112511912546326805111204242274526693064365653486060644312786892087437173299606254187654823220598977713059317383259940340216288134958629359239664113360851917862449823751267762480567277720962970665064744040832649470167921229347222001632151932306054670302747426631760226068550013086767567360147561015817811872884980157939180807471081598386828056918281257022485823207495738191775233291435162085173028281071267941774840123627017541414368343399226239034979750603737699150036203643636216695270927065888780445212983059049146650717156625153227603424869459338538322882128059518697017124770224554559205669824044635791749684901859864873441768708219564099286782247960395113703571309104799754085763812215376119820632271626732067958737297151428982869950254599678636802183576703285906958795792604584783921433391488762972883926418680378602524622758529524607068197532900822763845917991749887904060240199281872777238250802977102212034626221421768328963838603874053650608290139346248860359201172597735768430062509406508465110783950015071272093137216387563922994542262536850084044607952433146613820226566010023839158363105484492869057252315122692153304021527013403804452455194976148039514571382694967230012535288705633255525192648894155374493581605646256738122911306625297747162020654432851461082583086531020040204183164066338920188560681746064564766255704080327284592760859340896455968590044678993292581825809141932594424388961367445103666145222091133479617457182242292804822523407870832564752135752875307632613889053990716805520415707200383761059798298678611366599690965183221095907697922614194929934394972173668314198534422279386040610032120044018263985601248351597227040964038771907907515635867524272600889180469485817259529223886908665430775587674959479745953289504574365568200597804076141594513585104471611259907069629913582728153044004202563252414574244275191412417824110756203332199783426863450058024981706817274170417555685432855999596821611786928201239240722705718482264171674421069298411711694598637856309497706731737500196694048938718431847013437737735580846782106915967416431383819273071366040803106534577285540857252302044726365665480290394907592773158625894035793186212851789046310949593443326357886308642481060656624979558798579204022702242388107475962916951567032898727666242147812596804958627814261714091844865492594303334805481263101038576038453911359729337324320886741532634960162251312073851619269995104171916254394849893441100700190145966033338128786705908999852559514582290836403053832469111716667252432115264099620252493983385922461845461305273992358286599831109966802384553294973533450624601694754989108625379951809906976332380788599831236037331758078184951637136630317479342911027566412885690286295014594613203079266324273162665407801040294123454519439421710501757499700388428129951797959255774092025683976755357815671213008212239347257307413148478442815716216661333318881331383856145935182962268599010365470535430897808696603569356234174316891529140612732684446152705580299995319981746769686356631205072264997531901751978463641940156520090862056698943611840931817881714321257439594937644361750232879087583795536123067973747936244563063801677570333164228709518364216638013332029328398684319646524865541308907053552710724203275596010681102311239141291097341819995288014544476071738250628771282736846079640732650321500342422644263778140857080167930807696046151189100384459622687694901316607289984071738958850841467546144293915540975391807626316478293452962770595918744753932570737808223105662541842558951221025247432398909438275105800975349216249263482576033393654930827855987379522939498387699594429880318849829493204162963533638078280202657202789401775696691528114333789590970798434964250991597861833507549681015567385105714490212949267443663788303967584067377423651728926047843561062183155229576173463248790169864272817592771959304478696632329536168993471729365890815888533663966504794539527473826061756975067909174724094919054762372938665675022321215913815489311047784907433162472512884596430819195347397055207455763139023807601820564491469828885222849942818757916650541953064449028815091148942641239748812628993279467426545558824497756962259212045681852343973623725170235011664437533291004564365847733113970381322797348094691373828411607346073672978101361296288982333812367936520870968778901850492929887069968286353102318736457039219154936677198925307769693940172125879890232088862552618947371441087079481065283855352317566727960010270781531978058924545983938843522337551469013894116379337099959561886428759771391128599113531078931608903474868245165849652127267446384459869302406666517795148346276638516884433961118994417436056681165693530435509645056892744354485339988680089134300275602920037418433457142853850751010568681157747771873931794830212447342982284408616342661038282578822794995144422169924968147020786800037902952835122312711880323205515343751411724896078301543628516891553141689946983612901331784607246723662808599240946510834969282800872451976683762809663594921438522117427162502038359468315733967436503078460093539257292625676474271410444963589164367405783321042071618604712682378131449712761646367675194628191716866857507714490161856816693782405959034346045471108902295880171661124861915747618781832676332872903942345835551575372131536098646309448841672933442927374267282208523089008913400020088527480005200938900916870373577183261908256933140962508529782010558369073881261822081705174788412202533368889935940487208374025199485759363402396714548689775636873367350986570334439005074533310794417112125487489027752931947648587390670798905725328298272064687512359361912975595161780825396097189566246928877846518166836154080314294586553206513320981801942419419229205822918628532071355898890008914549395780856050595215295739291506587729615697534260865399814397489753185636848041924938224595761657665409654866624884317931015425637822260912491667781142976780471373288683450109778199353178241251716127373917045189265061877496409432448715008027835567895304157713789042623599296931153260225874235825585546479058408491535513379201140179683174608848108049729956044723460612079561064099017865940670556006839953379201098887697264872772656915115800660155555023840524166061776042041814608328094721750283682279117372461462540377204120544903443979838103897623184178244839743495468793015740429870136956836671789711920937479273547447668540104826595150675407715255736111888056163124069565379696201315019998862727327093101692032605693290394096738243490154316367654637997104296010117583761283239611072371628062597740915242028190657185671767082657472872149770423189720688594601131163076536854889182603719328040510849343907052528645161480204470150394428497032353005273919909605093487142306142942647405981916387155775428933763216881115021414491926054655917741373691639573863664634954080464784328037411551700428081176469691254143846672338303542764687691065863524214682181907392975737267116009335820068730778890833994778926256136973668432262356868688828702895524019956760881549132063936969661617428314183086516569644197303171688261244950102766380599321792304515393685337728473127760258890201109995533469418320287175357712228343905488268708187468940731463664221802945155598629154113100227510122453893254644695845933677899299673036353093160351849928770279883450833060792730633187650237177106022609041119780620636580393048071269901171689128080804785043020736721039932699594004386197889284552623030319882479446461366943373215935108184838841777947858521367553519733586060223318572205506844214944009221560911760941945079110351054485807420490884362582081378009919266463062072755781067891258824984001857702042781304880100229474869049732955306912036226934716456317255857314012692949527896247210454018932467218636558165363333425243091820876923978059124958411852886694902079286256224981143840475815247322377907985326622858113378065085098915727614911214868845047899511742791085597079157173662542557123358376641618823703887718065130417290145781456214130359927143002075040101732972907550199447464931695456841800601443722640715149158286418231552211220007691920296442371203263626618863853654066620244443246376095853949846748565086476571749950299571437936206102636725801245297749572282807737969971560601968904011208605609844591678800617750833578412896918639080459913889223833694347437953148948899682694719495617561055655226007349337192548333190755745756209842398731075158912287777379231082607825863334349026029454050940146517012516423770087252541210248897877315074595388256675409258548375736707862583816323920135590825538012355721214166487885986189856907896668539096639126004836444660837952935590356317635130055019731818628106733747488517144212571706593932048617001824303823223862024166483973045513704163186530933468673054178757483433718585461034968137290815312048872752061831407755053919577289285866913654454146683022697698459615533525221240910524119492521778807399610920155506204362248598138279104322993069320537441908451281779490804209725121487318653513313180556900070055268069100662012187478736776191586054810920146943230299839004438451242627828333896301571036080281824593013779823145721829409247228805543185158450512505966102632135825027526285231052244057559534674356339122426873653618179337766836379535230540841951888746128768469980311574340698731848364814196307488235968374913364795405972448082977290296875523197921684280598165410279924589032630559966476772872338933851572038370407027782376430816335913576149348587250329619418844281568089745151011155094441888766006571294628141775005966871441812895317787865134698248448211727437597636233325631282908045174613333512471899212438459098134986527785105943783282671628392348500048062464067831359008651396836378671553847970879515910816003503057798491729014927510549123515576009805898185828828051863373589258901842641345010732534147339280557457246163504334326262156466129199044556810585663441015308634202193096801480880249806356272336375453858773260125164835472557860431490709218854068624802762246078021547112529631327773452950223546390383418576113508310793397178511051674232886085719794712167323688454736707176207977103665115857592149899735295107478521005914501498045854201405137074944939205251351586160522696062520267538457062819906368582586501963490014071402784620493121048553380065528280213239244962526482065369557508206915891209299752716369277061300346573410762062713955473740008432733280248584829096602382381502024264989177015364981404387909597148982904155104541687125127999764530764355731346394165207764079076504017316614690442473171207265757452512546423465247635325661208610845431758928186476773587718910141594373724257415474413185582423513050308534663837612754661924302522242510212356004255098720376628628957704990083313639660255686820544136653604820654918322218109280447901692820271868899306807881595232414812435647824603125579839489117490860990836280670154502822026505687399566362447783694518025484905626049561858717550433340032420380365765568225796837646545735490940996661838184940336591173601910866672048203954171205318846582597098739306768877027566277031563569818860955971470797255043610765698235987423106968692568078150321250603924698762414578356884026164344916300169453480308867244155113527310936961403249808561582882084647971652002204134003670054664957926803943407157100274431682404273546327421954014455036996934369072133371474649300082263199503331718420008608120014774520356874182269084190801622664862464770353940729671780206320327348154604661181429625681308207640693710881884845346905562284636219633943919726432977305381309722422015292373589804924490115656800066774337577554944853143012800950784387656756896084749258201617358133634857674323425902321449562440339330907209223607303434202242580144058078102575485199444728567751360941698589737115027129053903383029248003358193725984983490518013066013217230780912190568044726839085709527428595181862522683629159628317904776547469822204040436010043206285605976415792496104369811217742121417751897292240041680026849071065339409026379427175689883970502306562938656613053567624119475841231862788168389964911274011829234132040729721605436349090473999629762021357775442211839539223690197316984419461653465560646468625150304603087804035605238844866434939226094028927411593331774474818405760318918560543775826138785826590068630724941034400794802079152206819752691713688079321868740017539881385161071478990658580160725044927632558418879748108958241533012151498898219239500197637460782477091216408870125111005131003331907839903744617761983271332927622051306510194394875275495858149960500422941782792327275305661589957807679646078140248885712117596768300832423814581788578017915632611405044379189303640319796608209038908888414264370423126960306312010219092791326702110997005858500615948386118377374985893459665695956904585332633486348269420930964618149917081425454035957539223152517415989786075728910046396010896333240195572711755673993552664082225689404568076064375598737179783745098969267109492437528843431356713737777782567253369542456827617356745335454341047520688598322395845083033678034958523935008219244633268730477696147079682261774049338348421071183823597570023635650730071752131645831521475315224606841783622592952194645215378688674414081875105040825765395923461791444702964625770429907661171756253682123929117501066628854424531405685180712694194324849366609452318754302544115360176057894783793034247083140545507213625593240232992113575835124572765922764564933447790971405737099378097253930347547012558004123531824467450452466125624299522500814261442606897068250313479697533828989890128153327213138601615512256201726447320785738609611360568961920184574379072297032415892754762027887831265985817699511932086715881646854561045856126418984632345780156892707539161881896433521272917289224596735663538770797363228659516916652243030576237323291438965661896643983523678234287418655620426044045353902665288089641129107444361295259981926986837596573711137967233001567353985959592993705078498819770754749448630676842819022146073846281747525217198847912602810142326793754490072732528994679268205490488554941601056014267124317338093112560950060815218044572581637602265814620810428282988940721634294141161555087963030743345067965752396146372111638561146758278262742578541691265092457487667382626765677968289901338347080947734101004222937841146176105366460538067842451430464563919541155953652282810287123618712787407917639740026200196280422986974222853873673297052324150830595553738582030837248297443948504758438900550924461261067362867105782163752553651684468251135356416189953593376881764814727634209109498926426393193837880926397874985802931132245823278026729299385008937520000108496774569998697702561869636442554535969272856288602267894886230262613020179478927765214558439283200964666117753042588295263883648804603976582176911196497009487192523478508403665121123745466802401938283887100210172934271687104136131761134317261743506483020345267401089463196588345909753265072119104598794923789382354350539941704758488294411653794663962942494203193047288579922841297314467196465679127916407807867937069208804585958315203100492049201013953753332510795800734906477341284536333958969590507729501787133289521830462398729342137262320956005470739725413021110977003489124121241727360706394577467105215966879362848369920094005279686468365519712955251349722270740513344940712440334300061275208330249367569401245575492850322996531834972453484433956148792265572135831780539262914724403872097892089504243045261741947746713517379179202399724575287715224239776514682070227545079347233886705361749539464637846043981399555442429084687645015063487356279695337410925687909914565860157593853647014710165944833873293736810915332123759063182542745277987077364043741591663487493867998568208853639069668360469805576501063556311690763964437246624777554106187418256181273661756565958057502691766178535224804739057735646790466863298106301669416970633270296437986340519209225182814164224116711657395400827400810389716802063883781782206799725107119266056893402337704277850995731026338552050452801524001275859091164766894067120642811468344863123058740975061007850399316984020291128853339675565929918580260929735085412208820163268670381630552236563117876004566686897043728160659555817092850315915964912184227717156057545632405505955131639644069211342834497239048955694878400092816974758220193694412917302321595691024336876587864002525442822411703415482418405284192248547959555616542583834870065620632159392077247602727996532994790622692018065388193101509781272379643986720582928631250925078653453328772666817989253435580690927559000229175273811839689059673866141151375142533289240727036626894287833759426288036824348030183185849925819562817232395574019060847393330348363412432108979060006893774380319688213059427112333046257368374914463285887304122253219204766575641140520506971054118980180324605909821886059067322253556314082315459403683485352643934793155962975449379750176720147538193338747265686513821600815105577034418981235728911949397328175793902418104685258705508210849638442514788196508704707157264817278524181818566008526788550835864136984684829653221431363683820926642805190217520843737075920412386956368646465598907339882467151791475649858934959615045681454719364689504233846230244155417726688349708708486864142555690880164596703496548468897778619197672136102972520421608867934461653034182106551201378737223263948818373390913999142698094791169210308779653735640910816138200877420687810730334045082675228967399787215637875127218506602367849261864255384151171168113040629707650970505106195945538369407417097788271039550615805197726805953453253446875583635865022449580357151318982935074717920065198739300659801119612251346390382483895485213439908217705214011413496347864229252466643183424012338076027623899161383232360807323844027063648087697220647319643252111911796603245508971340089119954534387569244341720363862565399560472575594114942975810809425129267759121846520085312095015533828475518833327491589958023716026952215687516757343373189807346325021603967924109263461871100687162353734045906394710300036126386274193489813682467943508536102236991448150477176543588458867643007406013155265417516210824920243655541254265066312519851531192298997947873903928605007689197132308335716697310083072143782289851897779253688791092171843826185165031716291514490286048711264950222354619750690276432129520967650623936184331698825298637119844172872036387505731863539975695577642706145414056352637899434457180917713463985125477848096227258796626638447099663606045802391223802824912117470753035214847545663520785248513587361233683989376551803089162860428034813030664909904943749692066221993215149439990561942902769572381057287868442693238253927482826732322975422017029474056555874410296580932244774344635943530471805778875750191086895408268073082231408349633053904868903430967185743471320331966752394185823429062513973182311737851518471288424060177337891487153095358541887059965537343574602688259696597274478977738320977324062738184747828300030599723068335247457652986189414607561234637223785544303482583676705176453503407985633707945838672230281310968867510637091522439984705643285832436811844658686818784958808269412857195732986111125168555827014155577707476775618476749167408520700952799907587417003083469978940657669732071718951136686884602355845503858002188218507120350285866909160795884127529596384356094960282561338506251010669705776362145983520232136674194878963347530318422830071861463755549905539071629342722974469632774314439921336452499833500321663632487911666153290293674714954556701824353695194552900127852461892380050275807448810351354407564696866127690070287114146809583078504944366451806611343992461932327540428275294377996602995822581939051422251929213441749291942996574633224900054152963008186878602417538668704597095805065624726400278398906768560409872066223330133805687444567293816748612793131427737085624254571035178002643362829847233752606065369775388900105513988890805854132183634735383775741529712924883175676438772774659907207271771866252235065489144213561120630576911893321529808528313080267707846113811813668564171517142076016235584971441423514500969012055952746410739044146349112405730407664089619034639245173852015741165209760467986328152860920250872455150086766424731109963188651511383614584100701463178802072787736834629755905796810983095163284050241451641297914126658211967691695671819805737298827730035651592632227205605978138046696643196948628618759765920720312023432763891542810509124257609780679771155568859272806926973923027756381189051985205645148470476006532388247073990707311100316106514196867891823631360859913774057461384309092574261667774738210723118474566071182612717059181413358772955253659609005777296718990669250843183251958093373556489612666844098971937770705992963179074134071505777711212068118867062128124116549905463005452836429388561347819711722611459106282359169534579858049738055394636524659411343314527620909209158176329763869877971778954537364750213991238051153577748430831540530414695136151168629469770854571433362861688122102537237915467905150114692442541608099826292763233784043965222735145026296522559386836036069215582476356986625385322116889164116357448179340659155527918655461455587458026147749451426105348647392707465163237962548957180179736668961786495118069575940213834029512528186255987822489644100651671467657867627258135478229178434869640725167306110030392007992231632795593870816843846364853928022243152086449333775282871367741573333564291724650354727130589326229021432862177637836467401267956608012288706395656868313249650650856805457578177076699653144910344207380213957211533792250298096218118076843301612624948791678462148762046913693961254146902366783848442339701136796620668449484740129993384677930986963392247905290824317921041276657361813211691045800396202107880517332727828760087477662848877307254677702352833053760175163374958293785625506207956082932070280328250422771683000229552077384235656763623161209738125995837226624927897885745846370199330743237067085661412434839645886761774544067341753633281204841223885545749277853092822383498908100033703440483260265128548828898042626066998002489529888411375876032244072322445005486241250611904572353664512393234556702729183747848855701288522004091299155129043414943462240880991763995445416349662616041741130059466279598584130803445228178224573016251581680377725463663097129096730917418248407572740241053712348593363461881034453788060529138079959543431882107585192575716142433757490199753191116591059784181614015535160197717208450720515932240530920109404734773669535257081022745479344774510624592782751099338119998646452385285768155533977122922721759368011050130272500788155618238414965452315741816905970132711358425138069593102762714970699560296792804683061133967013291991413199960936419051266937353641764525055929743511222718003782311273499372344948754041377656889923337888767019402592701053373012839402804140852192008712808649278108987764716775970867695282946806238856933566251161304564922640272360369027435987217444509784704656608004388629553522022624207490164899828832436440821436181817764831265300118867269086075014409832048222088882586577336034048361068213375811899031564042100330691687049831092974012591114653849433931544055514559833321739625343782010842779941313846700363329240973562532694972342092543593781777639370486292979650830528160605699157632792343007011992971273166348624212838134767937389029340848735387839537551245803921541831642200744074820637966209467804601951876938371243324585014748766477609050340042249784710984596428084533985128087871711239956284959259621651405038429577612290161274383553551805344721039420289580295551309281095809489396505677914055901687541752772762989798386913707150848043444142388480053454193483874330078459785731224522901583660836728175669131180369997978258375245391181213233724281342690480941164434019360293186186275918662769858012325532766115068025960367249261101895525458706893691174544192917064189842416750097048916216368247360787822272243324720037706164146399817695234957959103104901352588576916014400394082880239496740908552404197839631140992910185178354800741148100900940173754062130825486286194865610415242900611185031361490984244307599433627542581110925012940097740275323123628984460661233267937617052424168848481045845087634035806203944038419260952516683664291990583887071946697808561237794733174514814427816980586663359635381702150504504971948372349491627581831776682002255513617440316735605599767524185388848199424162894418294812571136724711102932839845368608034363917134643597642022675908017690027828590320127023965852527865505274166082813382917230385843091231246874889214422434477038761512058940559541838274674122590368001697161067818404497812078873074309847901019070759135703668900719060410630718810305322233872896268435481111278568645760659943500722558644291626326174127325292323417214308382268177904960931793683512510964932873922856264585834710225257800934623857501292242419060494954428755508042252885801911958319488191501236433063325597732286453585610336647802835660529267118261178916177980081489381842667179419486632001424874480210042277706996106120956228018292355889227204662294569866871714152924259161167653665150976400323442302236927849967238222993697680344303068363130882861161369029072323066978005517737970482200400541863866963980018965924638402934101004520953809702731424681446498648436749964734299585882454775960567863843285508716793352275601332465254999519155534837072156000500803885008359040667359528033027601862081386803428502467211391199051981952065983410729874826834269328332038138126637236776415975396891619751121452057393442700820256001828040068099602556879449547024881232468880159811870767090877368168321829549039961463514429337202901122984177046357812864271155304923462343615679212214326377268644725110399130843342727820142005159630345975366772378583799617876326212824689490716037143401551030110235078315553441115689972301433824040729712179338278304870912264167040482634071278042190457141843278428128035671451302677737364095319977053943556813896018107958984136161226302595394585294895867130398754564570257144423928528452410875675328149787535303411419544969512561044803649945379118394064757017210679283267218711070284633289971790096063424947907945039210642190885230505376207169235923094748919845285201716539859616589766752057489306472291540076741380189321848692494433904219043505251677576613211728773374489240699895108577079487552031626548962138941034494209603982922828884915756436899133410150066351834750156684952707309688429708632606313626800005128752224857882968718339522514211914400323031071996425723188446590683869407676994832486808490397993767581135213368660806698268283576373874801703636531345854142208323423299502061827579775054267741728442322316227197503235971105523821197388656390419284505874366447317131607643694964584768097531233847971778392938323879025157514746752564452110644124917662876247597146096520177970976809880802324958622521169491529697426028709078433450969664516460731780732573760610275428214497271466219793937050564409360021144429861817440280142265038367210532893142825069872241505015823636390015648891153720028061224464128622394808263060577421453612065646553099410363730960833813299762772267104436018853967509653633913935795945921674995327964902175852922422817258586696753373316539535156152288661841965843425691108854282761859047974645962700584901616010030959049401946211036332028071878378937127726183446559374144838618779722594935969656028162252084115885008520779435029177123193018215850561644522696335471113267797568072020734962344355840024210025894892502889034461571023887190322013718911919938488759179401133934202856818060570049265267460807937665946636084117454836456443947859359279592445260077429945946630377168323887296004042415435033562239221606372050383571437755945183777573645389562970296670044782417271032548433572626554639402611988271759078549748345935172625413655812135067357855217061319845933820614294767112647606727778662333223187631597376370825778853489330561303562973130360233195580968339915454411364917402538430808706705639000311601222059829453236807684377162364678975031201401112962845321161613469740321947470703855018871120648424493852640391930433613782330658208021437255298219038300806348079427040166174801631612459767490946916013656578822513423395628501195706309435139860569648919519807723842416708761645549700792970978523897150625364533230199492716483776823844381536779640883361974890233301011649709374208975476926712516848746266590646655330427662779164517569500866834709446652838795313993380014340931727886331752511188547394068992658831357848288345660758762595237921487613038386760934192514669430002064833557136476051463644334584179609420969858361322223276481179670970777134657561817858188269429886928239177312729011364199072111821974714995809312821017524327136961851087004404439476400792733552497831015863741360484352970354942739861086154117049032654853733944880261966379730716520501882251334928031180605683125781162178433983252750701448397441271409853534372820505716498501273457605739678590643275159653521444067150582391214048327515447236127233409608609288382674319323753994987229354869755720773746381457439352756032029332907948744434520860732996731387540878802156346091172759641173452109499269619515986538999307549204666882152398274460986408462977698463374502224519226512375072765795034388333833611671384610884429093967087656584700315007683194403073009137125363410878023488101523606325537854466311170617826634393021488463632908492728568887465444506065100419037598130484954494120726778213207383349383887502771872671563522613135200154417776229334413674729262205707180632297778523396511788155497499488912328013563832452304718781323753157476917294012336352848811733899366110964871923021776869594018015391228927390091009932086429210103147563004590240454649195848653528730129255796247603392807940342399292768877117749494285764721834872772808197152135472376857092456441318379678787280949033618278528209823135774337683908812173492703596281698387739665611905646021384753497661388728108764264147163523127418136690601700501746093560024175103434340927857177050427475564042531869058882756833969325360006845585615327314803890035530203977201421640008039041741271772411508680418673418590145519084652966795047905314540223957057653158348276314686219596404354475201419332758247345192291479902311101092226304247969940809318993216933677933793735621678098983218458007574176863335663511276601083688582836749952047985544222591923971479508336876102686079417201881303310643928720961185760372405643948593745842079199962709307728631628564775715948656628730934351693475802899199541270266309568901552673862579975896813096264488589867711521439164067614317343488914232223450820983730780817512125014139903748233142444927474774702905448299730723653593781032585820647851769338965293117075075415422560402384227297316040834838960334509213352250603303428253680491528711684090014755652228865730459607841384213124652176657448424694010577308242140782710332059459882420721780030263082861263052352606401523199078658093022805290547343975581709835356020145934373089628129424731650718543257568345988776453811448519335566422191507836049910614654464024665757625589552891593448803749180112731164360161597712067857908630157456210244613338669001595156319268195696352163309805054913449365888809921960391338244108689859845519875115622214738107625317700354179101699812278108712984331261114789449408114768284730792242341195518189527738886897702904560366262178935139758584200972675828658458322842612713809573986796466579915384746923759453652941492600533902022594556887529487434903649760165629346842045050151702488021463844645179494553670188058059848939302517376094605166182022113540305700844530007177213424516933365381417322026740133685051448541945669162394768935445957191036190696607690969249703553876397634519629565017680720030020616923788112786240359040783973219970740216704170917021892832526980021239711036422163727657059117073668028718879901967509867721526461488098699356581255601509849495379991142068017548403615644487205185207024587231690975739570259634499788834757547593380052661068431055402975411370979158898528307940835888352432047142085816836101664295723304956011449227474191064646287620556519933374234915299788872445239817991963925274746404302233924081206274145081921418619998776205314803965808632338640660682140798798712368797552976402912710909368967541122326845683567574160068616684216902125537220014562367594812198674032917091022839080505830219764599164889370617531113958337115711761296102963812082449296418009606609116072134887016540390014751249621315230352622030064055243601556925272441904396248909929740699703444730854929914238959195650897965009537448396504547270789782840983957859370094910584418000614142393878405401972887236230890679158492456257552977211220601848792176403027067787328057785967874395659011945444192693127357298726326681244820779746861517448540449635572876800239698401096912245892124625789822481479253124863121748485802072226748964143275314685696167725790246026081576161933867687102000443931963494742768186079877591379026365060791198160269890923795555056055758661653629229659106944710542563695749746028663926029490898246865587531908312700208444034644981653007081905142079590800307692889306176466248249364771179690454994491861992516288939108498309564050538354619586088422305725299820270184532443855670200874562194823064143017242529541834332149101568991455363886242761571124316259879910490989352454547188717733282985184845919350011604938393231128509512400622211806538749564185205206925494118075304412714846759970659458938328243805693927661974185418414269137509836914863954932949237404453934052415346362262427902679916490893892273835058310125907161331243468087196955813810092890440919614870177944872566284120917364741300726499826056983353964794311900519408264277354432598587035690359055613263889425407544310826335271381413129574501902486302255648266219639352953001699720684775614333781982635435783381103682567543384436741097279968786166710369062777590446459644574965361583832403939601176386604470066926842427306941205664172449412818356273314784217133321053691361431258377552808699385139674802750546811684210965693964102057215030978143239199956225451025026545384032720019360252866072136745508779736992491456442307274449532597738497519798267030465693133116989924367784020702085067860709554373774832605011482096066737135602313159028154110400794566088348864127887109083820107743888636547824716579373330159660522477324956032180812719050549505594836240259216235017386053790328026771040376277795927750928264298760603407581062705834907680515519800181723533907878646104156367802688404334538381000894500353074409961989807782732871411315137354467316680641439490300506623710854304773534250236655650969246429512331240956847950681637165277915004929638137585391009301513080168969923979442699846386411551597588989096462778043859651808825425848245526981781235401250565479613821252588232709889390806770784888911891621907840278699487427335111622136192846608836379656337996058467574887603589641909065014465839295300634437968987361307680680956041257889446521361344025718514907340368948739909421738104759656067046260743495439239921563553698868330081617067003094592089119585662170497054857366438128719467659736978360882392768309175121192386077637424449356295450973773810484221083364554415094967362282424244309826450726197301810176850785938536184850876453066880415386265401785985304849058556310093287849367000910218166035757936044741137900503182865791371436495021684312479976094503922951072387345248911702903811680168757298892613601893687350802791158783211427883884032503102244218385744384966473097839003614819684302970886990433806815153859529197743494547704236709518240392341273502069319145801571722089469621678100671546110115456553591497938580653923415966786224619823501152618250281455841024303774466872449941960581171943689738738807650827747157295847133466592159034368381633738486234289648542964912000038101370657412396661585538619425385975924573495525012775140538648902251697720605162135032037204022216905841052504601502003924461753963891148767215268374964309225855708346630709543789965169413519805657471997159227774903886754992933445755736362178374575118011091257553849668614401076535604783106528901896963463690811773001515729515296842344253232336834385465366405804479926355364084245161922179035112806245925108276051219441536462784857989709528047017716368948059254524559944045655356509987086761032892599908533044244901763604746090468273547826868733792716939278466954359633527354302053059730112686651774562474842554888043688638025263071705517871562730457408485918145276300809793440592695917043614342041944616587035360881195462216133141275591531859341531175057665165384820738339185174243651516832052817879450119637473226651266650386986476396493919229518201563922049597382519996226386615669650247621452311520652663209207737449157327066832740458628937532880507466412388717298936308216720385592562739206016179529526019103632248473097376740041974321032463732463670533472337975809198167450910470467327349261331274281291440393783007667180697671945184748305097337742696106367376576274796212719282536917862543060392502698646451470293217024203446000725079027625838381184154698164085556739548674823861367216640173269126453415085518560195696703861371480434133077028304393342541090422624439070283394999151466749748752044587141475680168423097926520191945711999832251569235290824174417960022080355711805787130583873869005504083095248535437377289116701712988638935878261829345159947646980070030249215860581541163283501364874622348156693828679708049727209879634181667303118266635166285871222734131255112565407621262420210088159021436415158766297136758316702649072756259836179214941222389666937021104251501755180607189943783137513965068800794579843386712586660265674037636865071193616129571818564225936847288114149981603729091845311595414106165352529457280682166229841582657560226779330490577226141169941732100434366711026181477257955742122509092652217155644661661895547061500389182362725810369307018272830293056877080204773974086450584409484137978433185289496924483330495566429442971491487609647921782476982190160219302845829031589737663332381156955371606420114346550496702037226430210994818894630039137483601595313403181748017624256114829177362865657213385339135425854772260191998257668179235101959911627144595618495674895201446720231041457423523160153137829728286931430167285211502093760793556077057127166123403555567707211546524666114981922982588912847855834212810289553721340641746819009139140609755611511301214754839709077171931592410363214568973828202435534093364541484215837431468020977279082287645845751115235428744608471455890037961481589332464414829935862198817071238279648875807275469810231698862117471203709221867363970475833216791391071611307972060352839246156683363989954049088268599333415538082939548628013886100918097722946220728001062362920092681792001109387220259949566711469135556150888574855376495903416056793865641312130709908844995922817446763273688937978897569202678004759312340130536294078713683109873162304462644380784800697526793264564598715905694612253775364388556585137941213270816720955283274941538175009762285725129356394614695129315124261698579148478780406652554696861098921487879023512611418547688982601933753056659602765321014410980228654438953174885207972753565346343642150929736844316782759731666487237531853260654268541082275880169880324602940071798611615079005905595176523148048135165059475918328041904525566099551865883520932465689117241246332993912132709228286436341657077108311944500648278850412279465911124400171279926557156443609481594069101718131335785256129653638023095848585748532511621308920210342596944641120012418702057265679432788233729960331199766604328008219667275868870229887219111708730039161036453478982960963651141169866675103484913747485491570741670287290049383515205136622171771675194097701370899429477276261587611339306341153545735975938801091342490332148402293244700470093077055282922343394140716059042637252021798336165410967732796205167879779541280248237719049272792594802604190337578803660916484558734666401079108276052746930913713088829894146143846421292566106670169921429999329003594812128036981672550663766340091387404837640451360618798655855408878618518892953852190289923699599965038728994613407005651671003473453266181709848276952659112249300967987285176034269053739348619683516028444491617059881464126572938277436400120881165940681727339783230153997243197569321169164610407735620671471496325985585993140071186369353644554219371940581593223199992849130002344546009586366899566082506455052032993549026962604452592280312975242941818483198084529099186291307136244996690227970940970082816167481633803232495306156317070570751948438162682030983535445879413585873556648157795410231606465033241956422262859102956778090643197189220779508281064279871288543165967432411233385385590982395225015086896904039621984175837552065941995121699772134592030998829522976778835112725311656257651981222354335971875746806599353145328003450003981106583048688199783109000451463139253855873908923284340999261486160230634509470180650445429726603481652426412970884603539913906491262705039033168288047159470136234286731993452617904689869668896392401329910357245972888129180971582655506472526676670334894701049271656849235095431513766297507145973543936333981823420863437816683750385991792334757300341142408810049411651780422798300330774699403373291083147698248953078260341539725616092582982131541755634198519373466008804236639268588061964616221581314811582034921960167470781514827865424565509785994764901362824165537085255674780154446246998201858351817534718266660330305090811503328348133658157881993675782519774952016068407343937273248662215570152725035027793360940441480347837000389764501302836535623770485571324355934880811794101219264851377044592567458603706428587735139651438213725551917719979020296914146041057140210052994584775157849635773984768729655371663877696425044248599055345927869780139507486795892496774411089705080831775320130169455605311571695762700825701061837050810770880121078501039824895583249468508610385488743244902401346507525153951211085421774453016370683764066709410835357790662131780904927182784162620817656269411455896966566352928407790217685924349317729040802775958460301942116327969253010808350550410338220280247196461558416550284683188755511838172093750553755728665268588869492929778548627286644993853343852376748798721831634103414346967414557760137708783697452773788023441410597930089160370386089786728972400660548601643867212025617426343907915711394464042032909863649652457628464509621125257998877464945404484936356340040462641305935691835791059622585725050099536678762628163376317120066050826760633123347934005857562974660884073484263304141323317523147379579911849655715914249472732116076407797742339547605057991087579712465321404284060738206579195219796843259433417632629372456033236605320340642547319628595884497221261351097262805516225350296841651140350928047954371150542982425818830762956544714366928690704165144169102921666580055464326196837353722404441280741267554600048530459206419867853207227583616970573954684588800914532217288007847446428411196537260609833286758384462030385517879953642542282614506413612746714921826894047582463188319117858491925847610600856230382916285208748587983602719454600928878962830126938576701155138813646032770288632063795925626726856780978096753544251163673488515315026222176003005175582641833193521884932230188714180487138175743715879207595629751570966309439267092454644671005751168133427230166578246493083235614097233508149344772195766096739494240697910007139301197251394215048520206559830625724180813150067368153333876770002291262707282726806829047577984318550012957800466235914133881070939422298117370413245309224074113404995135947459650224313459418335554351118809219841886252802614065669818114655711683563682848877931027985833002424453336167588118731080588527904734943526399078243771499361310420373018082705195141956475199050447673453539644764344565260554093869109767770683068527830460652298221520594108220827819371779254390174158302465468258525981868524566668769484020063395673987217063262434602518073456441442941437732749812687048161320601169509091993612324300038145683565354668952751581045580604113217306141567948976209558243634240493027209720941210393810353539250286694541896851080124365464538890229198349075023376218383776457244081759327327520645110435704056959785254142068980331424554103115549261551076875958852651946819435813543269223235060583051228012542239957236266597445048351827414208003241499656280815038467104924510184441257512188323130912874906162517659102967489793166396502918766629548201665236092683366597171184515880301603050782194808286122838739898205836700917669769005849259793688464873877546140678933003899254352393581536210372603787492785991314434657879790173109404998865121883671981937150323387815042392688343636562454108413792426313866030834387614664389136527493453427657522652827123372830607239859946902933458786002351724446824486896753553601945093729100407254862523046853258647400390496996054695633984008462018701219461514310097084619243468738170654084976632287000908905457807858711617522210909371189956901500690849807710835637003221408379233960231255865958922199162254186148519219272569842097662525702492245158406025844049779318316064617384423185438755665148380457082072413099709611649253956687023888463941659936254257113869366785258776007107962957962959259194779310763702934236774901703570785626550585764174862351465299842634127977764038967626185267437036439579968879700071227477677338286519599420072521274420797200431457783977416941963625507579645618593912438213502820442285764163693315333980419414647570035221068523105563307769238529416222651054664999976860930907545777466522891754843661700141520512776098619443189715369306081603456893746006729319808470744731468298539413430788418472931872895683082677249353495292351671999396578605630300272300368434881218197862811844320112900192290213156683523571919843205400911285820644893772059245054431168572077107552720016079584939008179825775352139814881841359066106356494612173568593491754950945852320515925069998939829462061384480178359777046932233016020589230044883020765368255388092672939384605666954015015415885055943651445503848804104939506831292455726713352406348032523290686213968312559887493147852379667977753123470408781145022667309925097537196659190519476984154845624014096418294721240905107837909126677638246442712903797659003921807430221786340117330691914230244499598415867236707587780288474102923746096387314934981794823818683570235152220455491324878288589616054728068380900330139724324023871943969670879816957906161863338204485198898044084536686072558412637945903137447899748366695800236579419095312794417921730683052329325988633495739266245660756461159133494655564768829206335967293239048427497313701449990474939495665362199761767968433050711945536871335920797231094515770145296333035312716171718133403350157080882927595480446431063985946411696448498291629099043528008916613329728076316659233463057059762813609215449105718901290112686691190274500182741766424932619180213487824476118382011245781528634481619446008250785634894223558121468327697352155115356597159316503260731486460672559945400912341173763774659013334084342796390134078865407951474520894591552689413541976930954543535370923559432264832027274219892719313378693099712152367370287140073590935478963328630383470562753671646801713662671962150144036462471272172678471952847009049312906621950712400843134804296608887836444735155640303534888398771006219483237981911643323184230806432948414418833726442710725548264777162267328119565153889968410776343425635731753731032987546686907188214345836204857274247496289510244570468003858301322580986856890588695627961657168650196062313274767404509662196580810449369886868273482126548245127509623708146454326712746604787916810584496570100976134796511921604854124494985938877256980803581077980894729007541518706027701625700017749993742708452039112728115732152766451855652801068816511639233898966366731550280825003840128792855887332337354765673585217379631066801245767434954022479267383904531624626689860024492585442247553541655419672816824108654817648115148149489981533172695197555115204223588261720485426255031733532212726057184091464097406380473883765251631121033652033266308057721279633356386407604308904721530984752873756328170525110013597636069739815489719044322890013404207735382062550070123184303921094038543680827196363377820528093397240738075290202610117788695731835273278058328994897589667018222199545685044488289832499793466702602518720133383055983269286735995565251660688218531124982346479991299605540372163783722051769022084685482159963553791979450069299787120905625404851834109353221031148442081337836046951251527043422537948508776331891616785317419667817140677979436541159724255799647471136958012017554318484535415501017744374778752937140253581931149067641715273617505512907635314853915497042214595554239301417725306128895926955465362204720071762885587614774984164728630437238680137381632058723108536123059043128204376705951066621197693737318036499517964900206231904071331242136862006597588205876461069452159819620742522548844427080926589961626546376669102031706458517987513068295398410682722282645432527672327035897284342717704200598457705744995776157456440067785508403304304506838079079464121906311891272885901852315982083264095044530376111371970900117793254047522188008796619712931486730198235347690436932815373685063314678615629954807258680009406227965048516281505179582052457024443470541119989829896144209124973217194670386809712217379057433918691627455229104994590245672088480727820526588678488082291837174044183096274557319979254268751278486366949650684600667281722689322816648586111306197491616813662910707625141584987822185135149798315541895398069543878228795847541850654079868380845101214393954979826892293301717832536512651313383670742425574243778721602217150677797585362957741593447291627893052443885922942536959317880517334881613627580567742132656631744284910846747614680297106141855261544741567371110164766040660034919949460039480609542994792392167466833786273809745079859563818296844666957430493444432253627494101796226436854428961343689793497654978124284599783769649502016854111129677452479568020126661283840199309012092958201139899256050186525763271645319624125420546685770807773501581638747774180185314088814636901296699433199473414701015854813275612158722430294862249812426841956503569680636678510133999867233723895547585147408771991733172748909334657297646660256160053134962191024085076601606364436585594790427329255260890031156123440276482633451146700853021335920074090775909351320270930568448891606714953040538102749302927646656922433086689428324205286074292504017109821360939238005407351239599981919011237063379294840374981757949501020029859772289753665849692916468043307482251203104662356613467470746368629659217643143397842610792743270839799339772968353950236035580879287597282429474211737566503853991844333913353707694308572361326945157200550366191816897747460022839637657383974743004113442010849240066466634607600335462923531595288081933155008405316515534386857549354132075002389301126199208677746554771213652068777047581613040045313202090157102147184482285194680996936341064662623775351286767040174882123815695393952426339476304225912550974822544242507022816998183716740390794875435566258984935295191108599761459201671459749580770041403296651830386099478901916814186070130922988049984496199623524611044161878640834944413773117559862611303939998929371349107687464405379684374982547664229509547998236987544633830729217580299365472754281422380880858297649125807546353661455349229403540768373640257970002426301043314403057986319346899307174038641415424601532811004257462072089438630741580829912644073442417839521151080264208438233773086259172774479545074850329099686795315456602089312755864830804158883897409696490165030425054993402073784473399982158564175726898861361360389834680263128409532092632470662276485900307849440453045144529408715341735717145943199189302581074495111051826658904012689919415258334766663294379296000604697960236268471830277018997936229320622524450024413305086416497058893281431638052282251537307962954098886358114996125687278381344160300948970775633264380209923213246482600569458225487324439513380015060241997048908214006906474696656146357339634025179571748914441478336235962527232928725909046727304210736997267359420235957445306794830377756384869390967186108717338647602065008900356752770287379642381466865766599036360403155275470882262741036481065822545238794504492396806258701155600280919672893400379180431394637421342262168644958953086364194727327730695316716406347440736572452690491101809434278454603348345276536853448012228694213012265499416639350484074023485874102235915584901456676677773750687166053452367947764826626620252751316984675264819360764041671162374958790299411430920824396444355049724391136724190625933857728495052539451438169889511678453810912088194996165918491580840934170096527447086377042755677651013767673878864101754809269194033837999328503770601429604529006386219685814154565612102250373785255946054756763932828584931313714567221345214948204809272409650995354054189196494003517084773171326833568562503798574659365345210144858322773752028053241052848895638250091918226317980388202679795052251762620238411381784226643984860544392184293304068964176863772576475952767582699073601017245338872791520364919774953105643722011680599649775220040245801536252431380789870455731666653408112069146585493348972980049918527117196050204946193229288864228944084878356779216311651587867276074031390539164674835843590087647397480854218260912000532046561617939468978340786250586342401648822123814879310846468053604038379701366321607330255383054845717391566822086010696220098540198864714133445222029684740981071916424104431844776782962491326012125575604850589436828643502246112211973353669448327661727057614275693798663778793521356098316192638924479137175834328992641256104972571889260816136679258925115891710586916817023697942633209898828725288424250742497384811777655903151432442019975941604085674935742728505747510671279809216531781772791941607293701072286481240698200498607698963585723011626745779697261908454091758850214998698479869628498727210327343980805745628338349733351741208663317702328588927690325878310225443599050026146834005939897802175546969197880454969101675917601884240088533107309547733576943564444384545825576582770860725079768187353582426449480727961387940604486055921510769767932670591875857963076701306107373106841496022716608601764934152198395062842170446591614134031578499123534565909467674118810662075641997371946834792413012704448572495122415810019086105417392455038322920705266720136933574442450165200375197039252706430561339757710306397086290685986452190104643236124410682619736185405754520735102410660162078856536282681538340894703906101108302876208321906647742522837376771384023857051295255049900578948756159284286687196729158588295301271908171294016981957277433126399686867125694968145248950138816261521591071116728590104925824202047728137133028883695728410582579748750236147573217225187495189907764849900723357311082748248533018224893609543045977231549918948537864776752121241359517417636435779452103616383570775485080630972119321792354469472096835880615082957869662882041199583068289459871305624747131702550800921172342853846545139557135139215892634132493718037223940492123835340544774697426738319161416316607656160153729672735811819999071862935965917078472080930185663321868009388340105175756581220716366193798548514474972227704359122343211722460405565181551785435486180743171059180163331932857966786365944664163045008515894654107390626499618224688124600945203365548357955551778031380399542509783975395402432436644870893835681567852015069016179382410053178628763386044369929560481465426179296692880618225383176254517813228235775737746311035910980542570595874696521901047707832424412642873293664175994124928769286451907335027882130559005097466136270003508653139328503381129427552637143708002765883961808379557981440651805903084134136925250386317716778072170682806159614802330717718326484532717642805477720924293654552130005040051069359040179100666965422913359692198850957893866325759655495675559354294683622805797229540675944943540014507467490984133733055961840897353005377687621655355487509162928195947963466404954956226951696923499506077974854457184041065455647871964395892944481730127876631653951710575089972784233954967308873581318049807466499433432328732188836405252305059700020096369524616117477136306106375110709588110710824092611130453471222483290585849680201572172991985227988806703633885835582954967896878519518598106051442849100407686952969410601372629826611411594506953990506660844732469769904017249661099226182227497766230532782946145424072804469252604215111197026636673744899833692327629630843202045581716098973409705843205321066270680541596903696528345160873123635092744292626493684425236276489112202360629556436016174610554218644368152882934772759965176035911647686763008857947030713441263294641317346238917205888833322689609018066027252944277124427851084091194385405548113712665804732583353097518400749006373975753323497862784187444927706031766085850165096139589883638945720487616671804238932511418261203781584341720578208270912063096013417370379526978486949017429276652473736264164914023530604381772491898042561140922704476381468185872978825889796173261552456908178166129032040718317514709238456159901691487468686407511316885840857843872327190273684340168308818855234613359451287889406030266366536975845335982510391108870593955544056230448840313740550109216759198648329059754958991583643690046698276401316584369606168852259489873795976093263290367638560998570901751054646365004314744460451151395670729681554354807580180226500171997299346093131926621977961473549146262070408876789410808650597811439178059913720920782545517114819854427415783470049916386969791919859013576236503456568539607709241216337072152563429416839385391236398993793137059311546192095644582473799295052818442537488976760801598816032637635826552541440110939986099794533109893926906975440377295381115026683242435992272790011246721995663994003661054869233309007427733197843874315514581542339873068677590298358949753360838913950849131442064389880674319119254268878291503694474936451373311248476248379108385412465483277473987895454776401322870455473399419823295546939071079954969742072211955719774622869055466973916200576969249516313655150065347297126649506423122980625831860505948377313413734451577957668356752923613354024491424325502275783969739951441613921428581308002132299974060870650143183697065481385276960105368234643382394253883135140303055914120690430936028257250095750023200407563899324539396351694752725633426902195723530751679923284550628636724007102663451898461927730513203055818295204188765469349018780989008921154070648358498131090076591497430673335109080491487711491632747433511883400829381807262952230052464323802891720759595492247571947618793770795509951451806904121257604336318101822286266448232517523624024116673926585438167730522041903926658147703294518217578615171050772293547325745853102775361123684130703717183162834093408797280864555543268790864499073990787028054074731498113573959539253600678229646300036626050673928659293465679935686512324822847177959996533547044986726563521881847786618864953435744354976811572942769709528092131537003427271141170686552611559498986929042149514417937741144842927295825477701799145139923715262204813231509558463501800504231852616524925030244278581081312471890878131142507466851107274329199809949913801502273280010162814182642570972620747395069788016027334602265657510041864636527902558404730987420445222286439591777368738344108631112572230135784094602007639648530875506956422844562228524736987506417335658072911402268074466989094305496069243176945036115593667461661271922152537849196665894686502404950258682164919414752513392238271697359547270055229900693356555399782774665969321166860044908994902732253403664889334434605673504007782717178442411774794342849017451509488389348438727427756612061411078682209744564618100461075670599970820933213299520334967327693304728293893006220503632900158895264414427601252738146842107921698605843098054474475496492305234517487412730995111182027622207485254126784104306454820031427131921341635860720319025948289984078178652329153630127123573153587063478621717761415822654546054587361178009341758779429595744145783486996257976857034270936605711040262115775057754210936585441742284667301554153428341117940409657865499974810041816020921435002760161423839150148928218688946659808208944316189777775975222200635270985183725698775519785524666885496402022893554934164403030166288980410903499691156146519718472253823213920899979448286607057946459035760198917373324694502325425292556467696437295056537190634292842704274373785659630080134739301898860210072709685222662707686786523823440646944326625085024103256074240251917669432682770972046053729688463692393870798860099032123810102830152371797188824436380748173187745685441632669005720970642833749206958893278791671209603214903651329328417590079563325368674082935681468919532842531707724674767380819155766012369036337320425463562212826382241386488766079848487032247673154678659486748261108367260452434294809122075218083571991334665617302341723693814182207382586277493479245162886504824302845945199643837609709557770508489711757962748054005678838370951483313152294194033089885873276693533750053919215585277023808878616427212056870208688630698192039875969475119934412773474173184604053714857888588113899111573516858642057964451585161945776642601677993307487718309202130354514296064980101745334614542725828615153953081173212682704477498056592038137754791764318777519872648532607316519341808778185745081114185216285639665096205476807632298472804385908614167021488618622756068050087507088204829963446400921206755282675251826901243695408352276943240998880000131146672015118518167799902061467407308882269921789873183553310014412458213324318768687890365821021766143066584057636867491021012894276939494726204165029544434311239701768465320759009023630446824412455052755035070914448132587288136343751668077657656774162904069053033727297074434696877159068444788550022355157858173811285610432388879559670538608781175421478839366955796651736750579041986716056515274752756004068121818492505248293619138617952926529142673224592498910931974171712994076435713372063493243462810397973967868110339911161358592332676559550181087888420244334963899708572854590234155701179245131315489204418563287104719316766219762842916426720311377064447412510580181588723716538428124390799332481095913512607273951025530529186003954114527509018338419014378784610105130472681615187470946842324684067881883012239458050787503481523566608360668483809051539140308633337064228227386261194106268175707456635935060716653229030243155310936978500783270666199897615179491309386080856434260597013832703187413107677111801599115625262297624317147282541762111025955060335159085918208686185834145113911418001499325821620794943341732865112372009085024718528892351726566374367466399152891063540836233309582401970195978957278276587854868313435140768688867729783536360111912680661701560987636247446033079923669561102338814781162319949998365318244575082818994344584876090660734966089456773699527737718778248895148915178767628976953521135865547340907723955160240909519724261664028725348578273207906734615523966735472132295733867879024990949299967346211581649129169977225211632255284618774011672850938958261198467509274229744008229061589362095871268198845137482034135770723494360782542733022084144258556868183080564205431076455815434217901729704978302210881332062333254047098432956089509385751987622114988178976901152904422348526684096411583350482613016969631228858101390380704930935432546855740227925608585823489801165391792266588054847385652265355529814311865545092711443373379359661281921368201157857997711421425251778686241482095841231410677281455659120129653784329853835484133380190934451503626524053010467221935947676357405655212840847994467336413255949707325750295224740648286623539891134058154830479940418940323016364116887210070248460341111116246701077837089083913932830169276504700430530075148227514681303395959958031046106395116332645756934244630958701178618924931316448406674083470503897028731777108241687962949919004734121677237350949026595211347324269780456420094154632751558507294869930236455352672712960985799421852367156644306844339000861005413826241923880676959032200686352993123870399113871091054162425587806034977982199912297837761495352639517942500782289006893383734397502534178831494784999776611510992163079590773990973567026480262576072954449916843904705999035247246572222072187004224360665120207393925405389579925119323104922364390026015452888876333051421342399729191971812430220224240912864180825120089544243875964392155967172507811471038569982869179366371514924368904402124710205026502688707634892341986546274707892492230868247594670224849645201067707576606204239342341862772761009219607530330301387134619535103439378670786042564991883053742697888952792059140374813538904512864156070637115833595588611674516029588623242932899680469305659874301843449749339024134322733536591225944460038537284938424693250210526814146923100846268316722342636888030857596841536246433038149086135292173380276644547143598450679557952273708395781405062358119026822171270305489292602362038302841431363606385268687658173824530196539657797246112285309551090368392965499938525689888331941169498668957021682096347707964126364327680790448067095422167405892766447054820829842832039422739500612801526089401333760323196328450868555616552025002879049219244434977230018177989622310817729668981551728595282554987121586421395118742257377115145233140152497337581462988739509907975938748608883253428287739941343209539429456546951437336435538207695473193328392848332313511780162225350596034068695543781176329803880732433655170755495036897419844277513436132203031457033528590781076410711248024540907260174244787152506238463496381322603026335871712927295632329914664839820390745254033255805623277066946270499464950902002544445169513373757543431949381399835693184204851877407915086958748001795850483791103773115448678159329864614272839859291262957955385427494505875038060241682247559409907337569698883862946916330206661071176140042623917104653822039446087886263672519551685828939562442978617540643485223393916182019039264575314608021673000056947317779597021386929399079467344729514018431820058334364471910950487059819581567379018085687049269540264475539339144087910080009911041947999295726241243868815891514851683272039335127337971886900644750452088953162678975472268641752167426423067916480342696411235085132519159142618733832984296597410834115896928415238920226348431944488092520802546913748530270607657532170526606576201974395411482906619643928518030951915420642387418559542554873164910986520759391085876416964880619729768850293830231755714074714504076345237326957039737656373547559036903605773868460265100228654812731956816168885849549571987548095032098841121006770425141027131560480054021702719238301480545470280116517636209777518337028397252108508096170584707055661823636216703332270704748367895382522698058941096008621251463704685988608128827404791965872379150276301281963781099066611834630901256991659737327389265759906805903829154418899262122789045541503332447468910330956301366100221267800004835021108513513480096896214394079094563368057329400966529523514913353131185877519891276300111362474316999160720520677365612562139916144521750045851386923209544222259789537819553097092062533404330442621581057370378891852465157116122687073895011827124086347554598505435648093801006068271659189477001419456575124456387289504648935270188583868154774784702842403373607544473040663525723139658908199052020339369631573146025144075430265917855576984885566017760544927649590682134181462340690377775352757255905669152436849049128360716643350559528563794183743738537477591107728253537564079953193433486122858178900525993375215740159181589321990110179211490930500455075627506709218354776026923967667269263782419604031726853478771516298468650010543197840509753509795951984066456049900230171509214509687923799355228192691450763854085905891765263912575434255898817581175742049376120404082598379991077609910076166328196315356162404593310012115959694379806878813501440040855942794135054159567893963853058268071475806973762843330438007531443829103355256263836868336510107467957882531588526133289226620051242263490578401109944819846342121694030727506462217764636863901246322648649073330756877008977302935277433596010429073345816007033647519827877456685550314089624853734013369364359990702470162599312325609127113015092346226025049491137777615570061687620494870327326295321701997506978272764065559664706590530512955379617874935444794483131105524631245573517284012047927151725375146479256178472443805910747281541495837936297264798885129130719679492240809621813099077702167891816778069355396280754509340612882615965703169688491109520893195720296840823293040541880570889265198191627425720015194811115154635505243624186561817719735696281987106847000595671965090868219071082025949981813988569882938762051677943359671840935930161096377660728405393478438477510132499510202464747646199729043767793059578594189972497622150365927605879769054441120564580266362861192747130167876216817983613477678903341610912594325997654826801935052020002749734388480096409648580544415638451589004193428348319285146671720198752104194316937986465519024807451133575395317882047098849992897659205892691195737077296879944741725458143227803269207880628153339718830781526675104957782178405009848433304357659306354649585047921210344646266215996432960036817206904317172856521496334873560961917613600563130834000285180409740849817824147304209974296691777877594249962987892286083900194315307492419249792593240338361371955408587265328180180379343691335275388681269258532060455069444319280041091617501909566378845496473808771009693100038602084518958318369807521805253317229198731367288112327844482928558179974795711901499655576163005188094291560063843750316122023059273916619479889699006218465673987465073044406299588289007622709141700115248357261869302455910449969356415297661818655550115201096073199594150991536138805185772618104494155473398495850531176733730134504649751634273802261400740468453637428294773432993237269686596881385155605987430959222697707757036520663865052172850205781575192360260882458668711761055512954114287443540916456718857095895075875805932388423977046977301784677472021002713929393476626683011671955466302083304649110056828217001457872301730767151399197612283916111006849418488165369782908128827286082698847531794827130367058931817269044250855737584790090173360430967095313886272379953663934977902375913810949416891717449436861452779224264232558389638331975687452125039106973684710458302576147878722195496869823479935987414571829217312108161483174164956964141141074302770852351319821849693290830158444499169940972229642952480558068845032457191572556494602277737550286187320206867745033192035327775169326572794170845353468253079752679020346499153071091837356062671922102962355948072009573872833627620129595412532262234726825652109087834647577190545139119822734888819865728054375638956312257766768393333032189083435201084244510989290326370885364243154594945162725862143525634338009383678872582763120921811582762076389415601234842454820333404190798275132957518115874614227390294230671441610691997607072733919308360806341628172934365884182286812031190629338323646070009437197582617983242900206872790031676102659768514156037255884425341933229193336773992411224866523414011587054485325542449678755792257631908564649402033663261903328086410721069253422229982334890948605823812778663388143076347204396041278071294733046403365118258185231501594099536058373663241662600717295310136543196093047509914619326004487082162973432527023834338982614245472475622079398354752066564141522868341264511122459931185880596580567660223956341231394794281900502724885012071270955506954865645299587113485708162550728001392829589742133015095732448964573138120122251592228138907934030287375006414618914831399700451336444055367588912653409456864314292058664216466334673677682641684340979890022665425719899145543700305812422836441445220334884114989247440232973585921422089154653733155430964496158619224928773704226015409156112249521407920825189128221107955427204946150529136065331840531183154178526308031241446320574403491436573586194764266834055425633966418739750709607941438932390676925996138038626438355727231809699709101526108125174358504596402698238395584291559030870844692439899659837883293800339116141719163709889537309367972586417875569871771856980811868376076929779284415647391347218006787330215761049193765866584248647173702333315890283569716536826632561352675885086990033889957212949074025362500952108611152573502311304437318584442136940340092834463759953154964542968722391403701653412831537478506599555628783285367520633622814045376424390640936248952949522476930540366315345180552007127539200522555162173463418175829005663700673203018684031442347763907196147802335143126697426133896600088385533242480587494673857835332125485060335113769870667133576708143784469987602609305995980894909199190988361145912381677321133725163873570152580563296547877311641088133824515687315021598124388493653506555691475013413323573193208824580838580117301502028294215849226556874066059480749295900565890877085313828434856739633261988925672854299893757723662726409588175774872283696025200661211297531639981022484404550837223366107917196215804232777697811284477586923441512744944234654633663001987021500942552582233715755369850587213025147891871230842850728631062607178602874321588324611039162974315439926557472706571047857738530673859407293222981994536739010011719137668980105655825062989290131619522653886389545839613937480204970262728579621297832664590227890496725524545189704821587013114656154364745010523186803250513401656124488017055370138309703521191974235183448966070179315092981854215978035743571461444133452816416241360856188016466681941956637581400169069646093430904110754572001245296009760378103091216761021487384851152986535404983657202395725612982980722166716513720474826364533738591293583897291506748604629972532844196854975165804686529679049078111885517998682356636009435177078004622169802507561291937410162831528663829145746226166135466696795453242306366339295678127011216529021126668831169771259487524107414325850524227709939080158130948061499512136191167630587258436243544029422326669637018295379883338614406882032655360821408413462636035394677380208837231674441419488910396836060190887202369261622348481237483960239413025068430134496304109191426342278846797372582507703090828738790216277461956982470981847877405101782522562455773267361041191260292343335039898483565598168347509208042549753511765444254520138910833814971569766253615937214252036978143669746913640798480456580436063986311524657261140155690680228051913274702985486757019722028936855066144484770661145976511549183700310121074341076158121654573472979699447458876497462122494932863464186977213493331023595798400563707104516311747418580101970410701863223016816611682838206613661000980277170707397960260435773019555999483558323188283550058803861284178260126312282786768698168209232068217481814831279320126842076749881244378697274241738903541525548032408356531144164034235763762569217581933549044929372546283164900161070107540687286827695237773461777229543540463353860043205873764701644716374260677069230346671762428350982782620424382456947567304124750126924091869633400430761054976914313160017901899197820375510364309750652942034316356112273632744444307573657459103116353409833665719458631881631673047142159458257859754774821342810837818285380158915705307549511174991818668704689853020459758914281038868111826057290579864017009769787283089026125331156037341287722845677943656674965964334290461028487925777903493660473928590371589813586893601723305199243509115735541281969767572178122353209482578713683565706394393511336578217518481588129802235306435795193082678811313597631336703954752240510420964609857188802416516958249857428382014933482971011551318632436547673098753746462235318980135406399030607953288307153996995223186974836964509816619830141268226323976652510432985410193214216128184910740141116120745950643458730090624510426778406532447889200747811165608269786725286665960092517326019313384299802332487190832467775148623344636027164167863564611355126997360812126279637832700876977893431370551943587611702259442863504537145240504365313981202729551349272897007200180317316970838238584255492897201866170100166946791622869989588465676033554756796470759488319265892820022063933111604078716114578355527865514768191009109555381943866392871479881157605947357432587337990311008559172479002547629220781548494313016867226494758866629228985008354455338232110416045480127604636531931007150014624293534806575607626480349057482368774693946023078906875076228177493653267978538536156509019700981388370657312261362204259047031847444575715106872267099008816619185120732699279952822829829781657947045645692572337564497348070242755078814728749735428274099511000128834924598364675092265732493477580807456526608590253988612579661651506641347324485890195436566397616643196576132611010028517329784846427442785660593261691890045305068522093371027373040536846806919618178699413403513559554820217558996742960343383621558800454815082858506345974666273656412838365641469609070439392263164728575961726639896336939226116075867829417942389884680683835534335341032170715701031963004910103169562184540158600331918929961023014428496161438244540070231727802215523497901706132378591185167005058387989379890807083733981066370595555188096552981541110412966201588216529239901664276730518189673444840426062478642556193184215034468908976022353672858573906719815985299626666162733506883067485388132077023180320017822391255344011644983144619945172668444224665579170131562131108896860690803746258154505020662877902284741448194722392764396383692215515078205387161305141540068315483734443759171136601699152505481941072963625215088758933410977194808329791581558941765998118878239407932396607979791298026231940866068187093204838030802640380375644715652813700862690526848397067455830833578033913808152196792687307545822598612166811413478159531976993301048843478612177330969061045847508473579673170218842035995590399819245848622303029012873353901051571048151755689734427445698018851869570521999256371948729849440046423786860413135458120124557636147695296197081282744706807740400442225349892057278804235831330219115260389646231849516201400506362713257639761550757187774101020338644436146911759082648511018908421526215275157817121096906230656502828181517967580225168361419338175851678852489444535196406579035424214160911339379403896034893937791975049730813245458622289494000315133864410637662407182056687838770203616312926712716850009888656283975072607243766582878924752231200050460152608324907118879468477272782096010743097852362531188554817138098962155223479507785275110928579382597009135321322375426818217377934381222422882425847260806657052987300867038449200523368311311219609294242801378257041088655054480658165612807211826410583372224259843700468390951633906126030571910801932688973856542158255562814984739994820673025754584057123962736553533533904543097514371740803221552986486552455668927714145562334303355394677281910477699961481664730364343006928702290448655152130228962441408320493131667276424619782668933995192533640889062572408099293389660280915333938726690903580659411155059234270154191866701693666719204974940860616818357342878884638965786641312767174517791530396062407447072483278483893850372788307379172722966010791230487851372374579276089037080430905866145555197076693046755344365440680782787933540602628607078640939540891918129282833501471299307224917512354564779943606579929923106976397599126311540684760167714993185103299198024690931122006124613958851117125450461704337977707849152791111887091241474525411763389467869725747496228644060458433428973791263743211391571640876136809839064305066343825800275485287070135116449734982760052599257884585933691859153104043448378623185483492731657930924801166671856754528515378708236238873721728748862595488959852160383126565367322181663044849883013959516538812933951361245544250473890412022202938747091030045181006151300150188272239414328895751399575291521518615829442064000540384294500339424821740167507870903452896453833028744835885989867849858084980123386590515725893754195866263343953211041286994795842608369997714479625375794641524155808266810907180753721007452093540046775683949159486588360990167316506733487272287343584354748965489352714928222743434141004100236908402136948250786616405668439050986300957498995348609105111298545496186739913793468465033840945989045193028036287909748834822535350385708980521378896934294929381869691298744667836758428353950731744938699221058805532011367098744375478301486839463160916893555268688929984015982192680835728852452764248073981450078450154693488343494990566365953564995927137656321185300178059330758527984283840427858611050911622445561583937683380551361238407135916311762727582025476847377419717284022827921328735128654460300080283368445397129013445089182456403059418522166123206151450155676192867215742477279090699579317083989745538292730564603912635937857271681825371617607508157023549019773321035114937633697056568783321056867102691894714188646396903775120942163341072855910855972187890496197987661647481312597971545788631618604654085989542768419051323549869816857569725574767360028581691444333882181341134077247033914170729753472303892762523178971349649475259212300712793974428120975968627984975729104438848780868681807245522256389064766198009138216486162241859442984949666346232813923960423528834700390324354040333957834272274744306932915001766780154881124682974055359715534044483864234957339123312445205422027429130431524725940372909659808529684394749345274021581598477242879726739989544010991157045658569471324531856747317533040673127347462201507700123119081149594341723916852021695679893001224398771530654191314177856735193271332498874213272228175444756471761345968976352531242836407487635488181044002188500767288209335408953082557908489778347058470115372781991202512078808616166752310296160439148786042965711942938615112512242670980346564265204332523864036743433161959847990943309784671383859751207691443269643399817785458334670497610370158769230712805124304309953206824235344763861149783687017641525979105554905011370071025326634565025578443426811417089144836303457418334581431540919495180153014512873104063904472791309395576471839425148403511282985323110320089592997948667387052233524579491367276135669898849231729152039779306474492936422896444225943295219260245444150577075874556998753290516763526749446260393239527597447751633421553604412309605539180451529244955040843883873643177488386929708847265121060650812154315980803253100624204344259693501240699344595913806270112210344878929508979028223185838047263775736953382339057739591786877870865614919620880319665407685457845855941947038561832345569262149018309764845894591795405555966523689507731975058767634596516265021006832550087955293257848518590116266965483617194419826913506908339223831286168793555969287369049086069476452795678507697682955987290171125584917637610120121610146195441517184938082157507273689592162784832938271328644848974548732415019253846099390956428449516138096423853132176813187683413926134537916144063354143253355542308351988119888394546400667893626978554178497304025657854519490216971054308677924407142437462200552909653373535607503506070429013945082987094009482996472216618024619238142838200886341913036274812118611113558392519095954698892274798003939757197980426215245226769561801948936632877261610789974381794382420281456431599788801840045813249971125729425348403143920902512596954739908220835936505066225992653511585467089746748343199808371289968242273828705835344072924091451091971699619837887158523935227463148607518212141149619429508241648042489390483763151002947313007829274381171819029049411597802754095549750558691351217867586048084076914509327244849622629503746961726513085994466190180739334881639606061906124324028639913031178470670096962771959454534340999229973705645466337514899690969650340567729004431070778027236818049231270647494675866211440236785831921452032231311674995336209051431302340190087604836222937862310022513910518291118029125785338473974993435493644849665464807070245951931861964329731270263178578536114017555544028206559196625162013678187996046458940837839051380418433209857953406501887503308568116365396371555705461179275058623254202396155814439518373425047208351856773286567449233468085291901124854243643450004829182712177958315710154720114687827643414782694561773233791704416793293930914957368792304992873643619142755250628127634352526198624133089667253742261898939342773957923108032019180137843838546906394105926339819643752894433094792318327309355321680957890777575080668054834580995146473767398888809196188817538899002865924657910524072917371885300100089942544043491097951749070430787487043725669882403987957392274648313040008934127815378311497195831236385324422776268081208350135427001929406548666773165424477046907041312591919902082801901160769241733750047936422375710471217145615194189380208863837699164346332435426381223480710542814020923096986607530030798254713779432822376563775795813115667368142439791073611434643490974269575536417545641244249984206263757087067347788957734035738439164107814643709042081584664186828863786533951050488141411413876706087388981779504995429663244531568890806244992253133885861100945101449530368147099320440454378651350420131415417494868626205176311364361929437534030313233587110419937784813797114705690896014525466116129095648517934931818653350661979600104258034657971278728875605117505151877023570967840112080499903713022616343631642139749848790915670114937248360463434416401907481841761538571583597508423141314759932005530994499692967131584865612404009549571612025456419995556158067428087435964687019725019411638781601705252867332648288395900971627675870091327531531695362417129542872214635857296822871140926982175442271054767759837240653427701790438780691929395406961138838864823614442289139463670626896743969646163886413622992777409666435180497075996856349389228476698459686772805733096762650722466148721169561664027277678595632776324563588758466413212479000964083684357051433704785267964231638175399138444489611796639257253773860160275684850044747003123242149494064448129815380239547728511060352808570322505221207968593031067846523294699654144496324302280352995361420114198295083055843843669459403843554617017234375948010507636442121109722711908527378705597495391326095102102595421111558524382730496838056918937278666501557604617218185806823251970786833850289369842823157008355833085942761476050341449871927960755145311577186275744884978948345089886322064046876636827014407780410502694361583179461466065079578143081961922594432243412990565584569404857396158219848315935701646137604711710047784135113943372541724619544972848720435517284116420794903613137622231464930145369805878799079856403968217529698522628713384739653241837920255548489889121206967319872323542368622969338620895810446800740249788416636016089870426564114393246250043653902441422208476003567383851566772389836845650750731327938841399127758813029602899403064645667092364844814238501046517811931520712017300239964242690048713442025189716055283434775784109507233541641247738621456395189730979057724630653278305387335059163741216085034245303872575163893640541857540773435670821829543868770009200957950597236759765558511335384404705387640212782988286864610051716925076106100338400915107703134157016728611843373737389624697673822935716446098829698196102547541437046388321571617393646931336086429314885358365140227398731109761017008456293130070727144860293886889055831450958627531635462987613260238844120681887840574509098870954188564766312398239905003743951963735667445250928820718036725403886323872724831566415347262513336354989012189484022815102254399591447337627346539203868504590153768014467471555821096599084636914258165264158997846627167345321091136387926555478409533966400162633450193609713677066908331113741377698769168596402572591172052820979234222417288594771146396552068570106318762257294886172596639875289480538999944866530974590313463829299067132765853332501670019414226938918278209013529623483342398994510092112659282249056519402543231653388518298627713792409358807936000488307023817910707182329466918288871963867734979585049028074259199217299818881452129105185822417193132165641088773086344727495489903035661485320172128211455752570474183960117386351114659292972411453801452616357378644895286819330432126461421797623230024232334735592300549743727367854294545389705953865237923726858569501565925409824789003625818672023259631962024201445420876162328356530593562005025115374185927842614348056897408714967417311985890847560269804350233121693553238767945679959155197399679621550918339608266352156222194071690607019479288413334562996194937174832141344164276702190227347231846264625279530419316799681898260039015543634942014767968330060246806474023259163824439661532575498076239441347847918777830118972976043680866299886504790423581734450363325675133364489500924511453074707086669747375390821396318216344694929993511793186196823767687198197555507189408612023547471504324039025955934521289887533090274256585381905978658551284033156470504303491101815237902227432935287792992317960063573625399730439452835717603326969424537825531949474036815078386554164461405732993332815222701108364002970029426523302387327948551768401885679332874817965229948610454365251124662102448739248117004421544479060141677147788502306527101012542357695813837285978070010418813139926174930279357392343928218911270471697635295528135929268450589310683132256841641180422472909630813171530229718524432425005102892325350771980862888279972687400589664978219161471144797533585936785406121416815603115830512003160205779070255566543358728298492058045928681906910126435100349403020943024081604512805875705582815426658721420503796869335130576350330166454120145589310190885988865263817975850533185333414026925387167859859915698712333603127160480256983606261030846843912381076709405016141869507069892177610886449273395068693321997173604858915648719933679527525084425202560078523175606233481353087655641910794019626948832403174875808898558900176937539671402456505393980650218062411062086736011047393276659984722090198713701842594694967318929001497135409318396105190223593223386093087877398319732752335292613285536120122254884969422364504514172249111492271958362455575338953064188515699620960682720703681222355618564208144186985109225813761751463259629218722683393655952705093419749147048312449142835772684977791922384418057788928053200859782833700849063849908084711287216651141429964451138802495649231448411775657034054701865068898442607525807599731790265784171218664485557742678599350940550053184576206965577026182296136942404166361598547284877727499108266599483474002739577130026741680136309989278837796135224262240219909893790186071621152031004575653799573975239521162995738209192064015554967046739652088267529568267678636421586113428513623642426621663800944684187506652942011515283795299222465944637423928065239150501837880560287441231448802978589042642690936648966243480638691889604853096892746044301173505964030973342479711599509235012457606627951491612177081548970282985840846209134461809613335146226275403292148423435117138328151553324407617076778174645994115855693621725018074485563739527492531850329297800610561071385476052044549117358626109471927117615988553927192897401510566657318049688395710765430268375217024739646950922537967322532827627322778480211108886523324139074392364938724191593514507617918614274788733688785234152068130671880211886374611238337866054110579827064534349041661430144394541533504716783169435424088126369009475856187736968670646229577460199280455501769729644693402251693376841493652720137367909118442744465820143078159326580625428469962955730357618297928269139329784906135632379350326083999514568151454570452354646030140070350677473016383045934917589827090822509219714441338367294771671083707456569871247901572603782042142066972337462465700453742484442277427651376195569992896890093381231434960807109432905905299186792322786022028971162974060788996604532633889317124615183874646295036780283821326096861950328331673144312821094063153904634025415236248786648828725295369930436645292432158989648491089148036174679225172716355183399294127566885128374742394903037329599073072781305469901565859786702260434912665591203845963804687439606237216419987228733023549295650503189212086712283549351392310355527925022740809842700486580609588138303924429978491785532209750206105607781955886149222901608539344727356019235834491807756598783580434290075207390217221510334053713866352647380140528945560466860855352008247708889605298340408823234163592169119820800390985701087064550655190347737971059685310051665025078860219207247462172300947722384472349822098289526780482390634970152331440545059844664459123947157076740227419323324656519874085792621137706783902469709449464534180077467330593754939641480361005728558272069890077291299962281960292510157322125934557389050550132008911513773528545607017485362764812062347453830541062284627424743034005220621190914274889064996751340456307278957225850532406713135752253666096318516215185652012196109575063454434009414525025548481160878224416354136169269974343153874938816922690787508228045369865041894128295190728270845217409823502521934565609704173355698772553644867604423478923458577629598113585106426816172895819177869444505759288500727937202526886699802571546136638930630001690365897502241648177121138779801297950469679744156173075837708537386824475254365446398991961365335839088184212878721915931651719737714988615798809456177200651138145746015865070726049781161027150732904339148053780038913525159569692237711679213521626674329208022663350163537286582103851466170641520561313995065128092899344019015935249104095837586238520518568174722604567704884137568455237814404994325210582344855329274055187028724233857432945188259632416936452306775790434711591858806179917112883678244030157063239402785225031556435442340740810553811399862843742138645560248754873689040354003652057403933377878840515086306012520133103004422493094061700894993581001253999637424139564699227512682939023490425363880058290384743778403090116477184755466358280208469556455529189361728310950870973771425843350279568387775816405227699085395134478368980509910065232392419090805485696744329649748364009863594962823249769564299892159376474196012000286220154263268993358450745568814979365096696857368442334627986375277879261503466140227995980865268440934294958318139043913186488903308148590285344357588060994766628484646709893535474700871245618328384176327431015693967421710846815259380811731841312338610529688442670484325837408735847314733804175722695369533475031171270119336608460922137319201281156416072197259366579214725271941324024680457298797467757335300187930867565181322099079217100170029332868883904930556285502065062296338628961990888491787363504197952406240433064343176128156452562435292147857350630383258824374570626054055981860540643961837533722073429005892118416078416813068066245109362590023145771739491659016087754184328704830545082324653909050128223804021084812350513765659853655941265521092327710222413315717958765479783635047236104101147173757174573895199527553537941079599378700267424504931266108158029887363189691826197480611337840679027496211630810101889211098115527613381774810938322521241082766240276830279703776263297235184503252470064631919780599329333300771938705513870358232962664216682212032598156738265802319396729194290368736512233454669406176886724443965746160189243665805582952801747639247471181191783304788993362346945789505202595768508425326333035641239472790022358358356533407766837253432506651748167605193315057456792088217271594745834181326616935972629400089311429405232965591206119223698838019846999683442255740143018011306706490829442599570682024048050226623695095766299383933029203250412395665689858741728408426544437734699506874670394278078137105622488503305139587119508840604279005491721001639312139584624871878370930656225939308305746952670409533481089289877808949663233900076177969147169441376487574813100678730463404736788206892012743356914311064811351076525233532712095165085949858110165100786909056069803727547604018238585623814834715014987790080243130043046357155993301093389204996769255264803062492497034284206023436619283461722393203064166590363980782791554900591850248995517993403066028076919463523570534367495715023507810811032001321538806266594256451383491105990728925974624213671939256614694464698466674982583899704305165942775012416217470552776736666782631795007636956506187261306338476253601065386015379706584320185173605829499852872603627197562078446013813850978328867178546099101891550600830387662446771901644220404023123428962261746987223227002041522165551089346956546233973758311425565419797633147306096057600916475385632220660860464165101927874941763240182774904116643773145019607043405120691473571255821239318225696849240542969426427994668128322390301822729212542284861778018402191865336638871678704017911897571784080989955684069500094048573803440621250812042457222184190880617085225872565715555449301112079800110354121467432266907774241021745940715900123018705307965708042674216881822902351161634497965838268683603066475378404385306431081053783353219777234459523007301108371623216452791156534219109253007040858479405958254933353947468739981274549328111324007945008450755370725961934500015052869440373603494849291170388996501829637255283098230872703857971327880773548124602054420922610123591389066056050173016005012631821083540557424599231841380503493354034043585633667601118397973778517385013931845724980008983182248473017990259752825174902053898686539752118462488562527183539040402611141818070141023710904919947361381446946914978840510432186641223898284825981833881270670014750018815491102802432851557801168825010459196341026286517341743114195490755119433585887178606642284758561631583734944283180567118227190422576111569949679233590808774250829671371414387159482103353442721290800478732648235780010374814419882533223784375887162883800077987084838944838146681701362028050726441588033913589472832115067093147766995734091681565911991315376449409770982177853538995556620504492030751940700444037509912685373229877833832994714442664792020491771034866698051791394975434802446263458567858210636112889513378396792733450327230760111048868676189127714381188261024291117179192379648560191011464720059122291922371137801404390221669059262616636759909344575237063061309060013754973211960460456162379865274656320586302361959507710338446308016472431609740164833511977245471965953565199773004158200625626894758444919054763133708990613766165407696635286368563799404861744137582374712019100721496187820861338540612595404747148664414661640833251240444752246743433080186984659223146769774883457764456822446830451123709173119740333316645742262779851521353243270237485282102461498681788179954886976913110842164967051256290131230058302040188131425921094903066746311146833991510896872851140433188788604988953487636226119589323127475076861029216499386286032902762679879797755864275576535302615146004144796409673184190301180319363894705644483566067852579557786288711714039742688460472588481542556285517996996510677550570907597643048440709818421372340660079415537925504422319370279059182753380887905479604947822463795932411340561982081470547257060164238801648227608189360994789294350269086667613022601268326974670082143774917449960176919585335949716824974298059304019429905573526494145589161929155793966129508043931260214927844652240131943337932439302580721802785387582644787385213113550003208335987335948987993439751637538357283477524699649415237760327141121392364222374898351287500220023760124330421801867788002904818049200542576012517325856379058847405797715153853777108957651112933398858263766964329166450855896329557370168352946225384510729889169291721102828925295311263670072853168880751496715507075615825327443131094151025235723877696878011577047059915685566959063663636789553845011827587124067288245420383581054970819056985154721028875216492014362189143089358236016812688734549067883689056650976796156685969954903067189732389485060808561300696535831535716588848897561250206022131327801666345511567731743084672198157334787782965361813290318379408753703114524696189226569208342910219009711197139209376360724517349169957313136485042503675211499419184060553675741897172672966563949605411146052128711646527315038454325026999190722452787559459810471135961386595346397755163200281454072500855504745696710720596514756737930024128658733110126871031994220847651865218765898699051434078364363361022391458348712043431906789412966757964325293658824820971314519727788760328766158007675421921789230581569728668465252144630932548242514900685824979771341761946060668426523611149799658176558938844796540704975512565045452002650544128230147334907363931009020483722964737418980727896748335860257572548373162672022061720233387990065174305406110793334015640811105695523303318950154847434747058596737527759290002037005497976359619600520062238258195442369510366765137929791630182311113550053041790118145841354632525380616227816076570057356267320180041897025070181899097785363158527494788859227770094281197692981134359131485067377509440757441339753571285739029782445402817577140781008535064697328069403464934095256270657052704711974746271939546306149478859588813747882263896243963637800654357016449847782208459866928918236397379990523416161249938292528337213418336626747212596984903669193064260377894758333704330091987010026754386850042904914966645699839949429962109934554761950941894060846039947384141790496223055808555705907960653333273748349774105979326101663133842079635128919814602787961319508361691132703966757959316235523446700502496996699387052204546954963057895183815362008217249533923653962692545944798483957947065620237817747374094370287317685130885047569168281555142513099889861106793830341053769490929100379004175630496986019178693592609933033138485680005552462589093292862933641357876521818857503880290370829263108923063925453455724516129393840893255025554216090841718348996568404063368842901601016443399103207689819873850575852113274535137415036688989876870696980609922395778301268627276909387428464375275808175042732485607884880782034776750107184051106351512637841917570163578448006037409326739291447427358633287322551170050292051018890507098696127131077546688253987049937700529901318968629111047194893447611337293990553434060162794813601900789338868628916952262891707225585947129957619441669122503854312274525289595385975606697872664578914551201448258368011374999451378102123927841522642586989691794639109360234458883901542690851071751524996739791898405803540775435487681592921557220923804386045652694729021954385403790984802592556820186714490251849630826695139402822155439643377160610464074617985822753853298219100281815263675081686692891595471690198651203396974825918491948308541627015395951521222729949887758738754856423504195179794404490687696416338910364417108313780203466900337547178761563251791859973676231299865034732590549015901111663574154798526480149219082579400611515935324227251536794982381288785156226051393477992563126928796734054165572547011779100722713093780478193725698418949135934919557636691563284420615500233298553523910119925707241371397063410065520648303458504773645025867729847393111830749069027714029814684971555656294638454465746863821090142060676509167472873700414802902854771049937728964154899045529930169353574419820151887537258801920972289305643181157511262173143393537446817319401775593645916414690949203641880368152046575113225149939665234090687607661049309036877941305519647909784488945014558826128521390200678419340406686859017559134241920784733929169146297466640299571846934006620270452177585377208767463921907746495152837811188267872371300800430407214967548402493762183849146146476291371047759647289179479117835166884854497389224793691566439283904878933281817802711637278210683749464480496549762629485066645902640648380100530347376410264322559178669874071695395276449057185854507411578429842405779578970958188354142484803405650429660091685719917157171055571030911146878069328225394696071504713750645824722617991574423637624498006524031562158983007446575106521944445283448132098895332107584499489789239356404666081831037635482899093950061813760582675324842518066080964525146488992534177813184446984353331048167472504562156320626328732654735407453961300869095846500893452736402790684395151424930738384192813707040399543712876471345969839061377294146503300869022086540414717104358966018997530614412311372683184516958613879288693353196463856698785617668597711911739116710336556619663295036990843421833727288409072786563464649688628756431917991844129358751216353219043541046505102790004586748617537421543291686032069242181395663964309767625977566636345758402129394039185114752173008526874384078488568883604585385777815362947684388382827030527891926786322625367432101320021307413997256776830678560320512309255130716481552230487606891563522542913846335926848967541634920979599291114638680502761524815395959656279893928370732609080782954200277232942537869154156217396713744402284132315540342274198107606253223422567436667364042498901521902174796615200288611901211508835115914877341608951498634056315849307819612187818917031316669142076333497178937464693043359964327171623672072736683549275860857638387840161822719291299920002424318539123584411856238842435022564511342540024779189797666855458365332304064569164220690445237477889584974305082125087167356918056651512249710747613925957295424520412649139053030445982682393444400342564720020928696636271318840415320463764725755434601141087620584317112808178743889164631087353773186778192014273613195992158103325169375239063665219325196593219820178687010698138652473589832961575155497272535554593978624909156247102873292226217987966713751265888090714325904722878572554413857695595188384077651164055215198188869350683611255341160408650421522514301645286672495267306227136232377478881001584092346849841833300977790905936334444539256876168233742053868446277094396860640383301023422122346182062784363255870564839441007282568794184790982422599737900429339460016666854109996583855607729288883540663337300732486552933774937602256734973479865994462416964434119236958868500417856725590056964759182180746926307727181595690633544198545822273097437539812193800089840978153503825481175451206828586790306641268812451009404638699309238983339005880151921285296932827689847100654110811975245822925985622595585692214766063196073189628162619054560200549351741998365314112963782138085646922716304957903658053496719902957828156772610776447708052368565181170664571200166104162304146118066560510190023543156639330406035245650369258932811781956925500611709302826552723332065352129380630728644626705643228704628694462582642600007575258635927944154163828997856002855624411033041267301682628472791845820105305472210795516144332989325196736141418341515776113869320158133531890278167978857622711697734814664940557994618881190844673012869244643867543616348585969766684816512814731959626047757742313965141630366569384994650586839412922119725837981341718827067520818646649735350592496870773699838905211960409377873023928785001045570158108862280818365952960911051759451982260098679790844224101742093134689415072676333824859601230844995589287608926099887908017071590049371011055953627769205694414098803002295302332151416474738934074206235052587775778110566727764419493161010353457417785647655773394507409779301656648263258972142994417925049411362833504302492073057500785862619989386843239722090923695925562219173779357161552485872730210885698750947843707570965721529148656600950481338616932355342417160958960657751829164541183946278257541117129776530338500206804266854163132760382975100890803908845754157080815721623689586384095561240516332845732984497684997742020379598030133413130056184052456450417518394921304924127345051989707281628835908153136210517508100905080247055357215430923102895740811876231731514591715187599198833952272978551845648346607966340505525505091377878411218094931551294430655742355798529557005840519558642286089146356557537664913803941874538615961116944438326797248397755619238253434691688000385003008874236031557725399358596254453545654389255158441496328580388976714818225530875873570131839419013173657929545533666575284299329479570713241361811915837681214547191149749259348263540488888452687834922202330762026144218938153283599718732142750442782755108519247976448904629121656730022050287432297940885151945524965764631336350948486742751908861197814029939094806109167407956142398658976424405632439476040064500313598027564990392738080572457980961462036621492179886149900739195716600557606895429967122013302064846226273887805384070413982760897564107385561515463987425900826902381575593729471279305776483364452647523359645321803076192264155209691646139445980149235233792623927643573224770966464931145500398148688585085158957802970453690160093975127949303140028708714379871744107873653402990892958307912010979023314016356897217047264783010439997915152834309218101364587767330589026521572396804495691085393845241711929839752931539187299133888234116487735852072260607550129721493260329763572795495142406125820451125628457464131680323059149515095374050770281976552696413165544410467886481446521704731239118982162854409075954381521707805067128783616409615384946747145213423456768736410976482891885398301207178160098398256759517889540581313957546263566224685152862611837195802956854973535755297643159802826300130254083125027725934433736349337128621219512804976664512461475395251178298085516166141968301455761636687678314395058163868546665848087144662190182068663731162210344777306524035102742062170880802129583029794841970962043769078411694398412632514832146369668604969352223058527133301710916010856620782148966377955545564053364403526538422589708900585566443790399608795138825314134389177136604449588242829680900198026125035574150123511223561129587480782015392577903706307938391613975896180026845067019132242028289714746190885448593256488177711315070154865016513861813088279610692078114921627526982016236337377705602831156858786941470173403325947506962688986213847059190342262490533838894685312719343219873896094736484718553282124383819983540121169646228226662978492908160933487392235826657621154092803078859494316983693706671320601282762877261974988040165010893229210032540601928153126040666276687628169296364730329086158972208831284515104352568358116606457180647401075628389348833402771035865945714543833485983563102845622922858897199342279950523110302437618875192341112901839459318155935561601443643300770448127397891362477772995044610324348855917124349526199327440496432178308942642093586628964869422935201261129240939654353358353296294398914430241884412989540838412097443844984173503587049793529115258748114245696779583493840199790422016752411478697428042058829771015896325629068431098431937040959682114539791511167704699883985033626438961952345470778410533213145017919489756816933667273124808830307850665606915390315546456470234708959273963297438279043968153333887988118701870404906268326198021461515569910031586107137966068169017703763607684183001808871484326111180241266999560770910724687161778399385844923340227165253653214222586833201698281244326066565399053912060315048732502257175431380108619358821625614335889543119951202665169189213856153238912735453789020960072466650140135380895056233278632064342692493831613285582519208192910587894795879713864750884436451706868159202095704106994055945139319769610695118019384914962266992465880336783212937046301850878433082443898559997154902255260311058214720511094547256202683053479169859464436009268665954066285545239291986985634284396318909696178926538263057757719494117118887402620210118391079469584705384909564463632498035644009519922261159217426673795233291135628730728011870359095585011416933838728201020014018979900720646222603726001828034714654759289002666095189832698232203755894410585501074030396649080218583374578123313065369841099046979674681058147534356652323870443462570884191026205675734107003443845214108117249400810137360402504994619480103403962299179356033214605515903894032620648754633397734670913470531017447951366174018239106950099745358479028739712941298148346671893806765290690205443214954969836745111924944596698774600099651333410725450323462374468591566462407680662892961193029760364786530865095661374516680084482674535566357841541737243654092917369735576458058798683698292612501012777606640749194491436864769546621846193330580228874318539084619078040748004149165215926204372234881917872017736511904110444285722207061130848288378866847970049715774456794638402180270985303022241582055242669065403191552421952366258402571605081077622532196038554927548840926364634748474275853275746207154038063948732405146185346246319424904254039087280103831011231403591921552335557252373002445599144502369790651689100834355458641132272542365114669835445299292283341060887047437836719265200745555222317273793264990682080252514058470016776225224010633181507464724102238306979148777830307610377787692282712364910239671338508739465193229316078971503337612268746058231672511325639331330092620615347611363304404315427067044661110961433746304280285510919542121080919154982988610410843167978943206092944556662601333149600128051544980531774577004431382981300105439551945320800023133672106149892566395437814523939983028572705513338240749642722404029541206960696277630914705837171521862372104996456543422860873763912085954642707811766552405330914279816818832196911963957586291139408376300806674105431658424828884228556340360270286124814957760145910261895475324584267825290285874926798270128015394713429581373138465525512991876753413941274784718011487097521785471703095995512795654798530547920819476821938317316607230252410235008351996492530627250143610471341813886444418418843534393265426988908309434411829958566947845714262280942887058155197195940247101090425813208765329018977465773034550156620266931354158279645269414941346322709072042608766583102372066171071474473830302828524575697882935887433772167077585831695480042948027978691940724253457089838416959770707049454719432380840977165175675188564351968271384814189374529830075934771837625024461259296951130513607677329516135149503288853470587582547842983153621283707677458070980249719335942321479080186782395127167916827882170580033337841349838915617142413415363655719906181681632870256209927791324541034079038818970420718849886187446699220516757598310902765139400911032783822975145890273005849705323349281702215769326364047991498256679341186403549604577378518429625223400183158058615951907456370870407374040194363224917117253821591097640728588022639046737073681387374516393135037653401581402509301309330448097366088124323129239546820560467006756076461048828805026249149092943268187572197568570910337902825961820993385061776633578817658554569234589633056493967537617232987246118986649373953729314674665813244957503386563371307424723118878477910620432010214725553002857470227824919910914646307685848451703260637300761188926217462339181593129670977840706391696641898960728456542977724766415526787026947464873306137025294217162391805958270003153780512546723561771269538311046490095933708429124287235260925651455379703928051355876942195740933579874548190731380970731049164308524397355142182952784386958651323361667467430807316189309144455324856961908154707501963699959737938456104292994189159697013527109414942088478086608034017091112923689130892138094595820332661964754060351945205322937019615160334956760220276170445167644595360474762015448454147946552118440078351898050641036079618197635748728452316274811717587845643252645035485197240373195176888032784035158998672620788663009225986060388078482375321657766672010283242741336012226206081335736036220981269014867600098680192991924494700708264562396999709886241418524159759813106677830722737417825116128331191670238709181971646348421554000722230332313737420897574185596374160383060533097483337975858281360422183244857124207255780538817641765739324234739948630422593864683788675746472716955907679605014751027364405474580415297159762736757889579423351122872304489650385913574254635866504999981215940936341616745401097083733702634181777416145211135056621351815325607464604425241399611245834145648166390032663122355408146940549245171514101536367798753183948693844282693947872215876588188603925346883774992856976422193370821290832647463506870499980335363279914968298429750137267753364917508917082581369316577523596008061964088320404458145113461165227242023401229391912817331947014049912326756232174445444407222333327081468040110992219423763227798918826946057615591454444808333348250558519670805358353775483745217922147239832533786855386819536619984218638545068499473183209554453311087298803827398573582379344239634107651513056819964802501363327630924260294614414393323782911448498515065015847850252681367950781773876757048797647203653478311842517462839633353853263184330679803289922724030013081075774191460480493074326541508789441895306197164381838439077910642161490187290689877141218437411582837371311312236243837671021765714304832160556168820213878770281164998132754653490997550198523841498463147834996190452912956660159429284595019588245703037588911105890076210515795146022103605161702455621721118047107994438864164929330792393066218878038247611347882091636313591310034830621830077893205702726447842923486448395367047688326863783134655506150955394600381245827625592392621758487045874026471390403301409690207142448082535810926918281242618878616206711172793612181021709692432412212363200460142059906432596265337088471103451730439964219839908988747811696287478842456984516206971037379112974026260182906601426143817473934440632815666970296295679661713104852149357675335695569562911033847632841178576469290828569476494043018600416104046277716641343705643962480393586802409346962734716018934716214114978598310638728313339917835887634981414975858776550797475623090112738420838402827196760090885083905684247590826197170911143803767454867611008652300838926525368992095749320863539610403270595820133756069176000668995737015282237269128752351435355229447024705159305440017915610320275116814602573734655197580380824592757152055034100086963546814676505927496273006294821312428755932754438398984756825039282304082498945984844661103967960959932855787529470725844351272146049300774900535422475166882812214900180675765462920292323179349047039050958198558605956038354898144801169329482921231731767007299404933073581491194316193746970514668738126534737286410857195070945540630093568428377969088928074255969501970385332588830300747262579445532923960280139180035212201748800150512939464257206631539773531303067773656045849160012395145723395516271198711853810275853087504533569226987170371940889676009426315591196566023188556177545025803727497138784899366736263101831100034792714595167011701558756857803963981687322182068020221550831719837683889024444637213502790601458720959107031999406332364895906384831972923006870636209534182833630967718218903720690695532636856629384504851456568760844256244144233585583672025619984577465237798441394325120615325602234944636016891301667818197527001395238900695485178176709770188200437075212856756729864541089988124845756307948868619058590331304010368289506269884185196027443935948377935679757464783933285276023264895708203848934923499994842653873776843695971470108120290290058748278924692876584193797465389374694273068318686456576944210341853360595586483296469784391003221558598113472153639691038414368799899411932913372011003537594501171244255033598073327129530599658235164618845476701702875523336075473232891654389212512177420494791213670487769457324505320077790597797856626349919672268629450023572345524071649089748648276204009179980993186582216897598296129872266290844246926296557915757506697297161852973536608680239998164701618061747541428122630530712502381409092583557266641387943537964740771016380707577125573121697073367483394122997534784022067781519896916029848418158634669917361647866539554448689798964220437702464750323265614075134591763828425016915724018656675360990275952176749060772391066600185510702952944444736985396210402696663428114470678051797777722117924249206787717058463480201112862961997667534350682090090366053102385031278972568249376665620050576283425366793768283839608357708027406234545501499942969839957946364078501906258046347281936230573553314968392539138892163425469502444432112444072274649096158969615462226299092043767838068648019708400628430846894291529183901316758044326108603038953321531605089437960986467029660656341558602910635583759605149996616120903053270168659071541693220060582298899486757217921977220574814021506281882315968299316974710978379367809615414725747300451275845203053620089406978439051713564430857479054071451409307401248540999474635459647401770310130588416644576402120948201020694635476659459348888049103472828524094474730620839483896067317460877486172442473441978456554676198619315414336732151749412866133725018136500235996832607807128877642070908278368115296236375928107242850219109112736976564939115260332880170862929176917236721145877484901327123487733767042347171741778223208877367488867430804972800768596308247030583982179296590550492633143835983273307354735320291413559226178910680441839382103114638105369974361426886157483598711153712593205999503157577229579714646675908537347518983378623943226022992207721456349742536770219134698126392043803605115472773203843448321632972213107609934006775140706614673528701876548999855142638290162427780391830830235036625781483661061642036039463442378328187612139333083819342879930519456114801305062941015812567818119718027937047790846139185317300570193649733215713930265435669170145368908317661422722182559251004962016161034558374568827117667925693416521005093170053013204760154351167654067197425502881927512478600557214353339246865802420330544651369422933159504038299524115677255629067947942983822499462755722271872453875195733322868968439677448756735566016267435461286433844286778715942245376223352700953664616197934001393711024167829678056635825051432188198051109997220205681562498218276071563229177428290587171286906309107135095166477838424969064867375258023969615959672333979779879939208681952988371123999263626359910610456263820115437957912770230865015080372771409647680363632967000381268766716393093704374715022040818569588425237557687671990867109413516224892753618498132557498987153412144629639822141358705291974598364160042743434908067579328964341094201184941134427360762594989150841028117955874366825125817890224828226698276469677592780276839379045950812646220436823404587039834964282529379087575505860918074415658714788629847449870113445105237140483394920038983806377979056542728608670620311633025723956491857139604948592757422410088382721377049207995805409259477256369304204832658884023231068050313366141830039754700758903300675284303146400441368572838417285875287673225634851463219908187953884247953767162731689954055122219619848057696192006335039459630725880262627953417933247168041745708657222025979149711125508377892868418448992184703961224187259371423064467708854397554552252053980785560185822512807477855086563715316303629001496897281577638022491431112898320868783971507106665120253480128191254294847856475820673839500624217443893579069889327293794663645330970186348845523608308523211323949882575975528031967098111708070441893739612011538867507879284277867455615406703378521388240982131987081105817726339905252044603718271812342365544961701652409916992860940527633677481376679458200021878278126761097126613440779282377839608350174404266163132708684760381630854149533839634156391000622123819140729916989959729578555719843411014647257130297520349744635954811669507653755269372924143788514274026024788578032835863221952208294392235678292449961737538109367523679476969894871065552403541560169909468607355934038165705308255218948252551057940214027143679560774950225264424608250608077342301740407339316783932295453935329012576395365921436991095066426438124917103220604384457208792595491960729041518107308430113900269457230902813599259137207751251394814181077978203832295124768738602479940884865505788319778721280293367700686125329576575564796778712100461433947681696458804145017258227440010413874151111154609814497085502687413105554995164477308538933852712165608412949723109265202682139332939410510061809327586953877090010742407304661977347662089918043193343235179339986546095331755744977230992123736460737105606539555982735136699000256162495988789850161742208078726505204930781084880564281051679749463697173552110061433635183781458199223512762237162208140403601115678481240733128584218605378318329168270510117413640392597180737960847314573649587967290121000804652598825857107102833421555545771923246646584219360095525127068747195062622326022910741730621039226406137697256207911858727182262296581030535580009399239349619345071285704567630540227097731999287733600774209649698767714586718775199204650147274098860072080634439956405965615568537058866882303959835398963390737860799813663635725303359615071549711932397918621601046642072675908737823240444307136414229623046682902930364710454558114688764005863158279807036120835498176102201981987915728799740322819181154587570928710016494250533634226334189867560576143768322491487902135493311435800430739852830392126402590811968452506064076158632307917424916886107785811109016175794570483150936135280834981214577085481045961822433856878649479428575126456644005478386101823561954097340930229978527736770298369633042234061951176732446963779363057170648802354576564762907902796358016373799584886648524917321649375298148139491506893027656336280578293099356110472727585611255133343031713907363721635866840355480615665822357052813954827154850739966331584930561305755541676435514909394354298243783855241647515614638564922192388802171280040199349084146530469426095458648200771805444055244848920055894604294230188315181185964406135192041371929644838909225001686883429390065098046063576688413336139632942686853921590838527983393860290988759974805234654154729879270712518768614891000813043867003715086227895753930919823886034631953069668152161730869785216383811593863979722594789268317242262826585018713906916905557082906975551498180974808947566922660897416237510071592333085773245315926964859945801837210442947387027795548584171569361123367683254050655040782468673941016375854091450640480581649560850708368537117317655646154192927217075147442358318393756371428545567324148078785256090290333547129030312069373963414328032064898885549629835254775227459275641076119793580780079530003727144415237408812458738449762108578605244555011584850204865927509197901116023075798465010468835469952249302741993143543442544344647173793931984455384502797207466923437906351592754167058816460299964034290685275140875388562491261175935176401096975199604633288209574838421075404052448871551728073611648760161771339269266291711553665637303422783783784147900074145526300105982056246271071702792609271886471566992532018237134295278116567922462020368389682290521307937737847162720841172515019842434750594408160452513295454872737757604638213112956010107703328610780903500137221407781023099071773830853272532168081423239816997998829087238542665530048412058351127725987504801432915017233568338397263484948595545231486480120343757576910465802639849609586991120484173177586532208255786684290634397220817756711905443240192547925986878046968570758257658553663006134852135420884385090766016966263644252313558906342463345096820272825685650059229524761799173530246164255316912389784326939478856722403509737570831292217859569351268076884967982011561709501374122049104350820992309054026169288064180734076745027553839487260195749205575180646815155223227351969731587846376680747112257689710947105378442465504609390125115414374937731836334446753618621970380691399611266458034290024594124902446843589152812949610817731389672068120781881671113803661661997083657523684592048040244492056224727301443691671948472733108876122366022129000647001954842533919733862055746436473598042346795718327715175540761942439758823205581464569288866945828448843344408269589223108488358919887490381645818792682250886361840371058854121705750620678895446624341440813809069406739397951978940510451472017028222458352809610584386676143513010151799357333400986646203777150740312023704324949957316349341258957936464619599859025623721285424972039169785077517314752248293734204885089894870943415687870100670270676153846936356945488876026776678309299592662208237087753080652012750885272994249462930641505550565302247602048625189905981850774472232202845693392114895924892225681963408307133660522422883069924143864816143521922340081424663169194631117220190383419162240198366098234330532026532621146674070352748913751238056350988502277375142468538166942084693121232199601744435760493848117747514257241315998642853337536220092304637361450324360905962472342691620619338674498686394192871779136622577585515422173694601242461952432649448704635262817268688144893630375078507785836015854494260688592134611118269019685564092585610120804714277697724033779082704119679233072311028476810934317946554369443705006971450557927819538665466249986487016292680167898106820564917229032556546950485253867427987256882385437027067845263632571426450814221060967104539915519052165479525516334546321881890047570285383928346387607608520523442347700296136836489828959247770138020327366042471185020598903614392749216670829657058052909658546031572988723174770070734785947364468195102531094121050399182408331905918266142075526309980904273945355698540091373569683893017798078926492465684040274789619289115298294467027533125017347662313563457638850220037260927701507041996184249367636804505097652689914727973118285833267991260151272090027541609335031559467926740084851501070120525966708998768031370860346720162057046867540850908996990806926858083722353690587323105643628421627582341031573703086580870196947865433553143021644816456230514930311028316753178320548987888915096085022844914702219626427402501798665980530156819083815358313496677292344524152324677135054368077046971246798718695507015139225238036233965306354695932386839125228417531592285977547894402104542030403603237186023994991314234437180332153336196131525717085121917558036164599450641361267633729256764484536371548659249087308244211772118887141660365060780083420597279708375713390903136726212158404685635678853901178841969011958958154905062086148808730754435234359988720134826491617506581376361414259720416056819947211807291255102399238096674730044072181104990249096863912152848647589640527610475947868629975898105969979990644889430320693041594249987537914918381280162785692229244560468666472190184107614445646296188283714700112675665053859149689090932881873249317526657736868371571217210006877869477200438256114024319599060627482003654952681343314864562337676424824660545604170490200058089915720253669279052538664889964742596648844942400387079838273681238145860209549831473332473578984243082060885112242401462583546874520018088937222758730230497540106379578743855670607771092985063032683614458697900276971385612711305714788519118189543456443342786619493511045790450586993379781668117167833075211010837034738470736187523871478363380106325040214665915943580498716311656331444159884474060546630449380359180894653815938399676993201865048446686214150517302713939320003547459589225882980748881044453565324890917534286027628142179051417082020966917445411942467897495083937373449845164056069305135953669656242894827587678071702840183049369037520518100575436711575032943811062839244949719764382116586180469699429008834655249125569967123573912900787957632579724402640679057628715575954419983116038884355281671964700220322560724586015477970296566130174349144977687872821637116325702582303254193186711715286508525816991606645618786563039278914682882977348116129612388626827319262551969448592490642612346086230079292834129083279142086181879411632428084253228115704780111895889794931201296179460877603295706508826102940890732627765428939108856935793513423288169908009877138505976999651283535186637529587671918462124489950675325691968685378710478153943391610445109037600916758800431288741616627670855070496577116609164417221610085115352409938535433095751996562185293394446412981704233113540739274065226910628513785374434859685768234151259130276543012325485936917497774391996241083208651218713473848981550890438701659245541012596672658384014042834506983517451865307018290149518618733445973651999840278348067905905795722162884161106761338401076821143816744548991030634819989656437567203252400781481461492799697372798356393993229520700735126764502482300320648574977937196337581558207233217820183788353186578603752537245275441422685115325005645595083412501151924210023140989728214976151482733144068765256791869920204978404632523914218975260160644277635268148347274250309598998318798234603408306627100707758736851906699587263502097652761767068420174345057718882799322244720340109038625787981228230673327835831258962248104031902577762897813982775766368795376443102891317200492617201652539537900325271265796638400377462056347318146660979692523028414215382528392612108573052933314040951588269291380742200806045731510702124381729799066717981474271851508171175315209007413329110275099466502762035387343436704190709149112182952593282970272029196857800641835068042122528557079335474620110633180839119584188034388035777060391341690241903515063037195239796641458077686901824361334099652854843865319771452402538252964400852966903023971598435721362832947655587066962875590097217725665836250109756130035727826354056458034750893860547807298404217463298087883246913970979320366102511238926377371513923389854645575821880166961734026080582215872684280404189452926635744792506768139171532190611607814954410716363264190613298405663340214518376332792256852877492256960316681341338711291813134204410065656576619162452982791508970421621513950077546070372574942584307279551591951984584183426310815045296602931060357683385066990972921645930745315996135893309555821286247075084734010392642644674772318679707208960338771834957171113910834966310448679775136424061903787049371723851752210182438100002155718175440089246695582796046659880789510170052932876285210138456285955780094594356664731531471167601724281630195120245669971315070605136076227450965554808599506281759543049966861326613339705070551519219266843605007978031765378927106581199274126669539343737215887044302193934414389549095467364822159314861111050547001786629293648846185203727940882077857916629203808271272231787147639166798424706929538899063796032366596599006771817356933919439986489471802108539742895848313218552658119185051572752840919304316733335184887703991469701495886235542603864976454574136828008716731104122065946009863557326203997432805916479356777360257187089179249064459249621120013608403984742570406103286819194765442295768070403072221258371620961444485517599502541049366026556676224739999969937412015968126774702491578884762058413352916481210034082740521671942673119210278855723346329247553074387707396450639755561349981712181629222970414748944762782037951471049659597121469640240626713601505153592796976049659751791474586277794079083668668171165553682105713753901785506187209567362681826071033463441963818733265676142713431854645789896607536776367013429784502834523313592718147587418996163494848239726915993217273713779665404011903016591214473283406136171098593633206619266710367761243990920211666278023664332621366866120153150680846603617683612444677274473228322109508833628063551951774389569301104683588663222693256022800939541526662552340589923895501097654393703150750599858687217142107752543671627031549165451940372407648464976626661691168770036287818811880065431207833982435061018523605215086758577810068667828449849120466854784916828592909919100965789238809222323504269168266804556892868223141278294422724903978330754002125472615872364974791621475154599581603082870008733870135696796625037017016825300759987920965591002625106184354053241563901475459047636542032637998001047568782989373264080648627030470824426825147795604637392024738106775450374563844414797092266700471625480824968129369739731288476857030637137105847526792643535633159780362198729220548862462595295709216581806296833693760217640301432848525913882608808575623534059352835700779583267434664343979195114699121629109993004981192827918533056912123551520518117862913983923833319930726077390886824497486348709933943457555833282773511043494841013958067853677778155098681135753972773319545948987441396230210521619221764209208978212568836668565111662284492328667580681051151531836403582426756274141268664384305412623610227753013709483989781763284611836579252932700773305593438114278111771735559665419227398179821262675335002150536697922507676148452220318866265279349839509610227057616602042393553369360928031116208846095445310822964137564087844391561828197605256514581830608861049827885793802361948720577320026353285609394138517830649968033511575223030638704092029262664013782053863816516476171547555435260452981428844228073412522085453293844583283314286534550931997740461403101944895294125638902070859538054645292042836941721624280824051399505314903053981805729303918136570510570190377516274549511426852519027186529743294084613008592081708990929984144667270619532163428921885516480023849313053427083974574530963837354188598651660738575334886242176923646694342967733539466118497720923452106813530864109971219124116866285836531803940985059134713632175674784279543589943494443567025306271135970158951613443031737282629543573804439990393642965191921180617617959038115893923605393901305182086037851143186833575849065551842828106066119089969068480806441777587881427026538645040370927053913292782240069068321176611315330604047907215130545491362809145879271965601821026078877668212636018188052898088950232407269070000888360262936708847098765595330540590018280284332018681270887409492833776177318988318561863633424298291833064416291594580731571976632798671873653082804061023825151490625245198727458764719435856342903141838627760629660006789805764661704269221854448210319801644446318748227256890474531021283268813828651333703359191888300999475517918238004410812383802473606543124767542334375325178369154332502686560180452502692206524313847744050172996857401021333688724408193446105156918869052316494577927138244195411990315011698996474572253765678978868158116613964609489231663592615215740948113172900343618364771819775406635883777599103359180154893575167949583315571668554035525760870396750112537487431824165275758850947818015068786781483101417598948963976728106530672961721395842617010994647323946027015452693499713774297139408231250207037116039444734804383384500712665863054972754852138225691286416793233300002831776770870775720060311560866087211985873285863891257096832822847362826465580430874825015150796317832748876148541590330758871718971503318531623791943465821115656933245026285191554516763145398720297397800661241183513888856962498912365238327890150108845892658223535016601165459263592157408467126071602432210114960594347133234378269552074256577658470851781162899448719327209426092745817132044162421758605116660403226877238708534430142179435402932973343644988184831293721834976354489722781291549703606469268363439145780227130674337620558025091903781281497324744850481250234283767046525266780306119394215375553977998399987340069438043085669149320259633417035933848136669374001118094616311955762893567626446189102414129421369212772779844009751394103629546858071920318960501805587214319105635955467150181118587815134283775667676247975389291348690509467856197378606376606204230535494647895903527789819633916038631239781085566484678189598963753344405635195154118615995245658223372902331879652558882260339452745819909078589494579370372207259888047983415149269778272466573286880312527884149687914758566076899685771537459292355493130880576181088355845253733907379024379994260677135952486272589072587505619590322223133114056409156128496089899338163317019914954926732121181880147020768593518093529679567432037874363883879254727828204983759866297042062225949795668456076716318325351848656986689897506736278557216492636786305541978581389317852238440255497237080006119951372045480066843155719022732106827653790474262914986066925771180473775305380798534173662357075441450998801535583072720675267501051669095128814369483036033634125590128520005166761407914715266623706127855088553811395569249875215984816329691537846205463386066721641892434125837675845215594148352519137557405831682797860361863347081788758915082139778636849588764771065274837648921480910587577099460686499779051628437262229450028862914551068228931568718627195570788232156197166843525140848151115976692652147054815488023329369077576304820170225298338390670104145573949199409761026337953138355747903468933941397469659502943603003363222777267803543021144182682071084109737385818222552283455703964180458377518556616434588778033879266689090299854865750644998710467352466357244249682374179272558498336416265757710896243107332258206082163466058656830319755915184773702037747682333928163410177411128695485063763500434132997028019476739634437113650979710223635838608128587549562734361263568467042443654402896084498226551470929121896009086048380138293856436687563895824338118352808408556960162470609569608571032095921543752326894795884163975621621601008564054855947378092688294256004464619498080195526624323181710365032840405837850249575954022162348632082428515141178932211596647116219096023928995913349593846639911286891448516932213757580098168204508327632386011513503776639046739125578161709225092577841661455500289702345907336518136960793031942462974514567413243156309235163392317006751118261942592262752047332957708495668053007199796566580549565231179505574074726363946764649735735342030737328821760251143582515279742724072571032303599130290838587001385776550335768026596481049600026749488063871507942127851070866292448953612073670950013254192035329787349795020415558931141029684549634980819467617157269651560502412501458695688532013882530310525876736433458557713119777959796430928740662427732277728858292128496614638167014346017709390056341832820980680739545452089429310722066356500622544131787619278677399073923626671516805024573833711062041504125713134412920886540097937154703929445485377609654105655228780113684840947380691901637118768933608814269934523089069182211687428874418822492137809326886703333944549360049371239178225662280816387774609354672379437503630044211500953077218492198625182932912830003518345626232381548855462579123380079622436729763198972395500808315300798442710896374840314362110990904645474615700671529257851974621723858113672216877181823489438206702021773941560753535411881425697500770381609210887399980612929779942173807141203437232010376849549614754674947182273066841294412161903585026237597191464458381702650048142356012852806705492290969258688166475932655866625809722729505930638207534902580979413195904560533047491793306690993925714990481829999342157828066189890682030386825482728620717948996946691601188264188813256175338631011269601010497163626274355467042459517451274583572507219884439441802512055181898312522244930309297424283890594717650218745804531681778406976181442413879145737571748339420096604255990459655379032367365213924590693565291890113013351416638899973057756892908417107774023569052744042024886218495462825958417130781317281133474906516942821276428874653226539772628753912941046928662724281841229038103995669059832639062101573267489850027238790288152472418620971963237563681938978203431157244768669476817783230456101978584244226664048918298166145958415723102925486550673656300151657002172922722592466396941463515360788808766001664572106861145719958363172303456610642874486015313953223233005773631523552466284215919145070445222049580017653559325135181154198312172825698188616294064277100646647648969952217982578664518598017367353692162395110400610005412747530439124938370935332884439525884074031733719878623640699439821006918193072886547347552543931373560212946617510429516827458964641384006389287702117048843408152567778433700180386348142117777049424734947575947805059152933305932928772683181443234689385386664178054260325411466366660677191393006571450101230291675962143828290004352699712626804815476291237146957377495193676945726694685124751159883951094168055898795983058939390266212174813249943841961381947629245465912346372332751867422854981284582874378768788173344370940717927914874743733606313781559371128503802840784192325430479843491953353501573820558601936289658665878193808658994604308742034355122919713938871966122105406479149960227159631767945394418169217976197124556158335343572971313384179569912733573780579106106287948607513077208091596890131708215243707706131548164741593242159412203633047713217670825391986142981373931428264913200757408477210445324423335584226735503203195904444749945644667681097541851420851906337114352704787968493278188781157362612931421296026824204587466994340092576854356031304583019998321807816045733900815321732392764984837619555411009700526303406458418861000899238410083203758211054303326010621790084787940901160935936328653824579432317588235543926842669124988014300133817317180390432611460896504819502393563790705896690007798769973114709783027029202858018567238366754307500349639634814260036063868339608073406788934212215945485771457171533452459068943369285889023856425888665085086162194995038556878087695036496808118156168400548263944429135626412255574506195320599989711150451350108765701941901183738838563643130034681702335327037970171842593906808855503331757954667206847295075000715082634506985742783163798380599338139103228978791537458759517086687518110602997497722099686915306934548152732283118459205119403930290141429711054562799892368602382477800344910891707119015446050354581261387925195195620479684956532744427274808430423963950114424867056206354338117351959895156635740142775896888314911286917248869884685767988576040119802241443954914510469443174573700448754927600977590531989320597365978677102051529130265452357812539003379257312566621850759816053262278667051198788148586639437894923665796154283256518192196518680021606921082329375779496038422846460729948952575543856128254860950319255828130353525388284962202472422942210474344785683478723803587447237140377508158587906716019259536896281610468598769971065295189921123342612692405586329138467212922064505983547898219532028861237872183500087802350945452358606753076088959622954965371065877349255151318666879898071036525388344378100350534605412677065415190833516125481376386977552399267854747728251495500601385112823012082851487210950542984349112674593032470259162008977324500581636489739001957971041318266500995877101521403033214405445390405057414488232619865980853279838099016575477659975871545047972050463514437128588309214131412061869925911742520499057166804141963592637717059270492319651818879047905796507251189234885055536671097822086222161726418823542777225286821476472295370815450979982901974972962273638222709613390226165473352075841358039604794902296987923032513902327020461498759996622141788325681954716774137292467609853421578463607452775607324053597299926678639907628692469725202982837645924371924187833770411470154060709180029040261536044205260251592403901047663033389351136248539882033206278900559515782914871965934649871780987492036499711294563362123454127664930214574571573528027905159366720768614503390537617196716445625263918803157631361015923040952473432805203444744473843883761968077771902110463787738502926727002048281131607501988357187224109926351305962454346114209581967379492409377643483664817079077649803172766043693652860751353300313571280691143734202177985757002553868155187024033783038971133832402591524024583987984057815462288082065852736912087482513121229127543466279874088369230931525667936547630026439004706130381956220333472856288801969502031796644431349460179574143347483810384929671391942821921515911060630776511048445461274066910368327281388683380445587675360441304691068723828339774942509588489856038686306852130893472527745703651183464237989381061935311506684577903580938296379579139758911794966619141446593439636313205736004929880372514749053555806677881683924199029473109375005486310498901870055010092483005863472251605491838196920324099816297286158571359012891980702280272174618559960639484912004192083827013893070135284999633467541878897282164434129279345782338197083027425768616496147600880128701887025288947167254789456535497273583055505424539755148117856888299410246875497756900036504104534701298520703488068775283137098738569878093736668945353037517226540551106282344466908282928849629687644235503436648588315549004148520567112646072962136519697644370037377548680508727660042298636877437505933545635436042561415901070557854245045595725169229522490339166554104723103249543113376688345437048728501880556431335000422820090042608478896373154932045153522577118189442781606707413136257195620101403353214525953759918892155333480530386482325101711157317603650571657750846634360684599790912298787236602723517043850453316368706908543987736754612236817934654187763208568980326686752370479117087587355304343783604805428284646541472368585044094264634885190527747853560931383723617797990147661488193239108576096554008150350712712421879625341722449341632661317409804571703124883127711935474446603045425500148599197619420821779716682789164154265131552269801381377409490417911482032087521323270904934921859453070341538250107215857277570916359461810279929785489791599269114300004798221081729346166905006189396104837502224549541552173637814834108792316732789235130576625414008870235796763731132584764357168610302875993592689008912026172348572436544637156935878768846027599396384939992913673107832642443073996180450275356739444283171278419984853225614973840172988727318583982872942050860179912475693532767133911878086987625229226941090754755559817056646491688187042755323259713370616762222186374276913224004790976429629085126972942581657637047644744854111611565258059015917339846634196832513934125669408357896905639880586783809103136605380599292239124053598897000393369265446942908004585347334843783875900873849587223685659282159633799226425366309161891674119508216589197573138963026807852393355113159042539542192041673241871675862206396848465709768314074803160519248803646648477369089338003044931767833782633085628543803930499155073846575210669493613082102631339135569333746489267680155247509311201324443042519272766436527320632627964831439830412948862370917632181839671319196431038393263750102340931677855911537189306275480437721658517315812205019726954336600741288841673648351480226351100746946559039862204936713835891523096809860448048279793269929275255954366517776927517788962608426785529192950118825448924384181817692611803993845566526822385164222236893083494619928766695606488087858917038022382883281214274590607525541727565951420108929681520888665301441508927408874231895565658764414840286502559605622072673135322893448343028446391650209317333375465790761919218767176392741296016884315009098311448926436723719049635049545004337130022061799727374938359502207423469753976687746132141245684563699573674174691706539829247701542839120453905768987558776081618779000239126778525935520554538866288300378428455546003321779053549090432707713814147412463627670871436346344177519590469004079058428280733645058542367799793034591774789769682227147398353790953581602320927954191839562552499608662345984064312557642743399066476142075900171403313191186401766189748272300804080214165323085014073238450135125724923470027422219712089541912640372527787320744334025696705038379072887649212205403004302969537638539974314994236426258734349016709436833120092892554258334160931267780253924544891918315581803991268602039351732391938697275658471223897880393203450341405840497138135769843852161569736265295543770925178776592956273300138536915864110696172049731559740550537358219416311831982468854425564576187902192411506448132269388020651664909109342659899203189864720669590571603862046200222556746799457427911591471478346544190519044094918704207969469675501370748519615391084085121621332132873485073328356257259168786165557992287848841529338315376827241565126199979177859569032578319488499419641932102827871734745935381583140542095194538558921642976485971789182448011094246511956066344331292911674750863968124104149888016013928543356702712673784282186632888575491696009921058202217952725232220487198097976766517545613615911818625222978350381466120999462060382245674926524293904790976463895538978562616675376708428584605336937448819686986855895321061087734442314360135322122000196895660528276742138800027674841470761455551908004361901810186531203997346260722786068911855499995254669335559152767286455471349115076546910935861828717143869535886301914651938444934223360377781566530204420120176240951186629063111678203058728348656933847515294043037550823408090145183679022454294019565352650393741599361767595231112851614346500315761428203073715501965692075417642370325143989215352456791153350483948214251622173918906734407133605050020867770398168722111319639617881759455777134989770457678816009775847159457035694552326939678464529744358641430030207989124008136774047158206633051320656343601477043250224631230958335852897904901139513810376425777163405890530144942016789484914032694172522157947200634844669149029630536708322995350677927472621291390310768370966820510264200529763756979713309061396292392374006246432235500464431501858563211579444906207320701204642088047806597535877937870857218189910492102561032269908550318566042992365109404380169847540462111384297159674307059031093870756987023471322311476603990211681620010865987446504209452230726603151536958333567346194888914887114208751047367759357578582685813613300625264306233420065712772692368052427342073798665507251697033895951166063447751877651359752193406995785966375120653054660052269061299539004344494220493280790072703124233866975619915534879084979602847912546069378282777671709266512510878362154518599064003771127938572038913173592925932913566280475398063580418030624836242323930898938285303457020846464483784385524051831227127807593889135966478229640537435541641404761850323353769059695949219076807638627760722023038218102756402063767601150599914811376793573102204472334376632652776355616528363855009775835348722694077298600143644904453873227489961811896889490484284569310751575644732088643557544594584213847090921487513988397685246006298072966686456438912317257780223328027621105209574060009484855948130964157076142468458514241346244529492785215254328198488590866937888925937001741235972986523655099251618180486944379462903299297627416919342568685324694927660376623767131828459462872163474706283707238925237640052782655309495080307455959769834864075871659372508686728862271183667977440703293833233528459575712560123233697915394558951585145954749099088157988473334201417724824512104559628977044538756986462599645237678510244780015344084926703075778535180548350008144241069553487873420923496013803244489194292195806996274798995395497148571005734623269325493413041029406537494138241012530203913817656317027466391662911848217274717095679061084234401114925494607606102954006076731712822101574202931727453649807849314703020283864832521208897050641502419262261055421619878168387062294280236779591429169998981596111080251689905416220344117418946806783573912994003899194901679535362820085204843453930157452221848247507391998072357264149704496807294452572151203986731584891461028746588076995653101677246400125226659867950865653283727722315590872613405378021070789642583445179325149897706143195971228789281304368902127907593477192720219827708548312439202342232368715525807717991949348152623760390161794156034363501956722367262833066554905861197387694001364195270765590136317191708717123623126203002296192861077774760687557470469319864450974380553792476350414867972905314048489975009219106518280117188148004760958301551695916936471338691327153197989191287780827813936070804205917073290994000082471091624384196757625766173478326135049776783515288726831207254664250514074499648780067886168548721385141384068491250974548183154723880717009758129082873844470765829101261040696285172749356062793367700051161859356461853530001457637332229709286858907459767123879269211553928510404389819445135442012230018977005065831387609310241471714622641514086656560926184271381442784020576094854487674467812133252526617754980791152405066213096385802857071193356457925727555514155631592667278434758642343493900093396170848983982394596056543742175097984844689851599711389007649391984616779096215937248730397170654209500359630671193020125419085699894823604044562770635148280428021692061285339259834906887013263824506456156505909918481204568943283233347101809384458621523178374245854939109811667164754712234050579877930155690364549575283307738677735620545384621941791114436686823930427058172393122658753965209777068443068996821574590695903972338679779182477900560253288040142255249505353889817968202509632760839735896419384819940630141304314586161970664916157452597246924478188181631191930871893457129441767063082293710307466152088577952868556477484177278624494223243790622427172939178283375850580070084068898273402204033020979114482775553093891725237280181912300396998481073863302710216208035646004540151082719606465832673662286334515958216495874703260732118350698841866655802293716193096318325927618564134678787422547517798473461861398282783153538123389612966483807249129514057319836755163235376898890942561480659823161321277286276487252342986725705169989662427156192086879393773487630168289645511436809866684289629622416796683940040202496263124135566073180598039665871479663012424770914722696835935348943562223896043011560759535872635372310244529722024522784551198096097971098691736361314441090819429860410549066095017529693463523778880207861219559099522356760415045304636881627091525928553100141874307534952287875235790919632653657248846011103135989988071972946761388570410701754756709741246924418163007068343605264683603292255426209542336608770106407311182886008773810782974619429111171668366606083725683816493968902788277858798485986675464990342894736225310226341096377502843618169925020848710309424307398358700502221890062606963606083628768956065704665900788535493327809679888918532192933726185869490983020512762927537504033124969855246204683760127281330898187950306085362504356604193201508750198753972144765450942491632105652217212547039327609252632170702758469146854543178392986013509683330367517357299373589710637191928494183784492909026634309860427049438613465171910411925106914778937607578069115096268044644000671443302031938306715227513311506620020142864242108120999787952482365579445942287011474776156590841357215841310480864081938479875632243889895473363393696808547299780780170379702895169517812241208691602017705942433279281017032369175445699357179355231419748723989652798748742679410767434758615105161763096531876026580778868457364296671184372335908710544383768196936833607928740170311061053856091045712541887055335458566653040809935020842662310460524092535444276726103624315380965377073278444817773344840605713114996778618358087174079862885758989859830460216577798563422067564690472901326755641028757916287797975020664531204660631473247054709309454706565771788753396642266626792775018528811360307711922594071227718328033985039627018498115742558481720585306236647020216520551089759138777335503855980977569018335808244421701458192983193925255303717735470461299065341384770682000708201777622562222874255579758287520157769914565388412946751959820444410123289120341120389064549123590275130480225330194861078474374298182678047632074185291129173298365369224511713470018644186025466420472080014011342687724111012459953357726434486340436471681129828761065283370885498686321579073644893280573981240952283019592746399512120156219965379989105525344991094480083244353067988157066893987636924496092832754770146006943910845460306842721512021341293109242866001103403492506604024293761100811021269440490811462367124907597567802545404489731659876320859098500286337730557745447525826472631253548875444525603042395676279400521455236153155223138354745423130714747977686605992698066441026698435896644360191965609590145071204646785669877975840770019137124379654097267530197279307467683930074199065944567760387335201068127278966013373284936113589796242346432558702194530171367791531924021208620681081944658655788399948739578686566116223009105808964937210655733813606922389096291113261419926156128863810321459454764823997452658027223159958883551177017182896454227389928047099695058915830225171338997451759915731660959351757897267406797571560980481019072677662444510405079235247672512409611717899988607253610207050356042870409039944948900156115760798423452639678290700252247205405452796755494775014939193809564379052602094337251643105381690488382695335466008219365274837529507964085520748552744070920524414066453819808419414291034165383967774201767951802498713524831446418705519580670001410694847199875251571423849948063656358614240808774482040780276218951078163203287615579376225386216234712494129814739118794213922529194087253973974519675802327754873987161560599614923300797487360535268192880402903030333353033546797732375286642413050602471616448881447457954055294860256085960677532858028666276426977404549888113997289251996116156554775284053899965185942062440408608431139466599999269871965272098833281496482168412650169464863650297318664238916616434071246586073591508838524926308803979494621845677078941340700770344264735107953219104557859353851213865045046775753014095383585138746882799442805535138912402737207648286077183254173019690997821154327771543272456343238990522714914206401739401858325169027398898544580644243273369250989084213971674333417896329650808125657024920162227350754419060754866097584005836454150772125996256651808662512717409286119157285123777585522409327397799357700525376158834282436615277840992731380734378191736718545721229996092191205934764419141759860693433962210034739655675800641639278058223886174874472382710359342780299991230882036688838130595921198382347299867684766214799160158567987440867330542529872489023692811342128530580424477197853021952060401048770583421080559693234438018684466037779847408709227124321559816387149995709368546690028151293989408398650923405105431114820332270315682501844930463009866599195833032278297998045004977226189700080255676293446530665503996499463533784500941392207464599557699924002013229413984524182006735679411494579005342730559614962554115620514804067076504603988788883676033194662597599544164949224577584053875732284348291416787859946616629853963602681114496747054833584653400365295247380784309281292202474268407474926484964015223213053299002524868032045003891460211876657866805575360410547827331511757521070981681307181391136381053825611376055178472396445321164535222551787917447308477261877205141629559270415388204503390692663854636832541461451494707374409394330627150474997774766672750335038455480094281736511711630047417670556851491592632384731919068682020325762164470770670070282804430937317174680347429986502361135839601904319851036099988708702069676082540833746414045442180042607951122678688004899348566396284072552928742278120927212913109445397374686697473209768628950750306496901742133810640816000118210103477372981800485207709405885643441135235334451329776675557899760082945913163958146144279132822032095276950103518969110276164822136142546094564774152466796876622115423447390506454903418360116761174882000445220111458649832121132797428927901655632536852579533073612187218504185818368832068417384150601434905114620548184016347083417392566663169846386155174132606538486247935416625174399879549801616446317077391094647662172479877894409229703070845881391115484216744571272963642075430604932562658503159829760263948896934503732926858551873726455448580308419656460587006738095854298465857508146201004309600687489046479517196525841553198294038345601192312849782971908638970029917322304337292231347331164620852283191786484291594961719638507895021992943976099319985593849497968178325190413858604358828174284979432907525488657078601902706288031699382911817168624266377422159851100315035925193155376400376870249798867263914154815188214127442007906753786383277927162471563870842296582044528940172062853863077122360968681687464171146860998555938487803556861773821867973793866179192775671066737562150779334164686289189918573729289194533110712457885911774786547372184920527685693477327305859084629606886895846818273968395471355197781399983622568239569151284283054438941453596935061419970012513815702308998027744222842580069911916414122059964802230679038075626798123755491856880862343336695256068122182065658671738090106391822840745172778022141545131900490474058625697900594341963610036013956607326200877023121912301076923333664465514001572703528888881426152494334914841699021777425936756403651332247376822180694704237071285342951747565410838342781815213785923327247517888844545537576629438166257538639377452077704432233047822658061951856225302462928996986305698984626039446684781208910993405157843616294544852088375424729993127848957847533092577025307789082608957285256235224363048394797282869072839956898682572735437622097839639502708806524656980098846467512543287265912856964367344645840268130652460966466718944695694730540162309677138365486424980393543747881336558222308625633830455373413816897664911782344056946713465894260242422400303141882195637539427918034607557903457892788075595916564018150683765989874036638116946448410263513964213334627901851760214542174916213669011469556103134682355995959867709141411682633421730408987559056803160447394675555634307150529211554866481836989568119849375163497872626363552754099849191849862314126532658523375328046328191177067738414772944045907951256967507602756655678115087258523203468549353516794582222748990177771530087774730244137956797252813409181170222080825368724157099138615889147153366897525393633206608574634347831924715486631503057584328256001818417764291595178876758691116492717864879175905667204855734925169106530096583426197889826267219587597131264449088227105841551319941367639368522377229146943907065253967539932830472574769129645756918260002959796127260440857645700423622733466954945361329870733185828936168002018665714901250895755928845164894981104508153890266897555491410287512455231751396883563875280918210387606347500018292777244773022753362110849644554577567667739190579449404157031220255409755689769739235743992944010436338369085270088563329731658205471042241377907199073445119424461392704067697340883162055281672774483996774549271061123852991287596684069346932236050007502792628641352913117415608374735506356055725303311577957493446569205199337121855559688437310268737596999756218327775327999121178633458564689252512757707773770348991139186079402918512963218253474981301021980836049761089244677586895492615681788924450580239644797292658105055959703018069998247340614622215975801208588909861954192036351518948217359336102546295225236255051000390766482936427625145230699465191258683896455903198341801471176646042717021522672298766567037631075163029066596187215998942070842082203268998215042079830246790858039640392307122506352034734839750244080684734464045001288838190454381097962392497294739789189906449128079282909325700737619393610865835963568963449737289323352085787382602643488385910004213970763301531875771394171522839730426388288380197782658279486254766281989674712745836258071775728385982904808749924167981147699225773195484535900832284510954444180026281719056608541043372381795414517154188956446593871218563001179847875901984396521072791500551752437203236860536402370991849310244704894528690251034900009674045374570741892176452003350786517867478129396016126782482044250851320297511034073517676111508410255964865218276488454724587188696735885280577064644622999649876557907767166201027050649417053099928068545015405767283649310018293893997678674496576576644858561624658684968860141086228904605114946097845070042105495027528070675089268879709081014266658295664828191228251583829858133735746095964638878698082683050877854534532115916692103862585606844550105330255884517587977614783678304262691462556859704488763037638953467163416574468285945112477148514668559238333958363283311480407239223049444205721784081196229795248456902319428369991847769573423812668200507463073839696556920856431318663328133605029270475967396419673810731320904802004242060602311647974040216577360996202226685650214226815254748069137347386733434225902858303622033516756352987269990089198102379652138808501854715262864914826460675275543531194010008040829767407680878754838287604802357387229576280908320977715953370575739695427918475202567533255291428960068668248548287590654382916649826687176472835868921177016686157946992328766749259415196289659050100254062544566833344274540179884191913297392761049220360780718704437017554545012329914166097267212289063670622023278074366344443832940211515464740927708990960974611570204083542547548087996417097553156440649979914187616428407623921542061467622244909627813339010880381311570613769363946514985863890233754849881717544290682009584385676793305723571690704101190087242558563099180835292121166305200539031913107041147942032768891454968678824780792785295968907118330308983131909096670985370455275830968197707338638850879601626352885500468232952090065415245601051206381069190914101331238721208332385650121739574310942402913515597172160038599284872581713774866826152865780210556122999555133722436462201050914460077331509381281408257408264513445251696348081527786005803317596812422901007766975400212915496877584961439056907495577070492957694033708019139431655888452422538168795936724681800352831172454792409734215154835929128517794241905191972930827940706866230083577014950046230633952171715085274658299948901803996070695579228318141110708702873761527280303452299761943686759721072906652806894195976378155276126852913137746189031584664601521885927098776750181444256586952653469508850746125165618901409688922061822531784314465237027194219476042365895106331989701319958353271195646264741797226127337304014618805917943299177517645781657129081020291332339687065406845331899311773978721848182086407469539520439399354340409075881904051521480903989251475489246534835328209318881300592425574649228439192864272147165491006373213519406069756759360474621359641333427217178445264683509060336657513783341989089158326002364752809553923605969999993995250324520687746505950185166184613770128054063773269843457586822033122163300162890728327807758126108230052961339789031186204267484199339756268004309914477470880122594172362229701411320067666995972162834282539340928542036727115987194738504303100499234972574919270535109310612371218333379328738518311301833420231176731107783898078640242060847724975528342026833696482668134464058532165347515400752706269167706341409974780950958984674744458151093583019683578221830582869118205392657610431025312862622058159701870980042238775792518899339648601497126854565868336042185338608074301653629119049519337830616947703357572527682574203635360454348890170237116801341394145882904678790079718376826036000299845793490305982626872049972316580382990513580433035560161440227829863443226859978820342438635566832765387130760233693850369159588219709613753147356447145830471021767524847294279547017954011283638136051899778260028769309707980062970573235391879331460297010331125343813086649149955765693650151894443012311122253522856991775961055316680100062192945490571825379015670333993086493320385008292511090462194826278041687317245467608011449438796231221486189639911874390511829359142861225917326538513389511479584886537349178837020458933205300167201426981581403045524783762790402334397835027205603139958316058866147406080036454026963690553994272823327169885672369511316972517623532835152210956057169231205772586652896756094605855635417461185331481848336109289984746689137972538326387883644249661170136145905232938995130126347477356196998798115165186500972106697680712700550028238726968140453422725700004074974024859573013069418745269586949568208457089658288306236731544781155617181952576355046645360054353739499379439972732628482665146725343135397340297301677329487398235179956416303670716388768418827181413948981075382047688761522346771632973840946715133683578979291343281769133539488795664487618132842287611077768573744960048281603412065056994443840392513908451508007356176924187398561874880032190363406971513996032541397953661477557485758952092301985590401115766297188309116404352007900422574494779219544345512595772017836600021409661005330204889480762240694249456756237356227199467460349998690342693536484507924855773138191931830361521336947647859174060673394532032873746150984087011945137604627020537337426830733609517560148365505649489852667067338203410230936677132541131461238195871653990276813318612885812162691981294609649196833310727131466493126479097744016242165097814346017905935100597410940088664518825276256011838059188728946079126081533227597892610972431922527249599630042127552681561540270870078359971233926679604345691643104014444346695266519829304684665287968037471385990753493472485279525695162854814950726584745428627636836223836787344695512217130095777647681188884462011626666612311893733752729509733241111578743109059989935949268404626376925745055899930794498034770646315454130445892871333577626335769831818249582452176224085163654686153357132348778125929033950200687440642237929945750341518761104647476537292578126970977245962986232359111101631441724164569357319995644159055919997991414334371796586832637916151859621450298744056425598301157790605356651416999611641226432805884435200539230902953136197474217599606365976826084191784658627471326614399041689245555402615446533420181640872968250048246342808199541638485951355600460689399476872188202182350013278320918123697168440608474761794651147725963747829217266958391629915345225919194618445359840209809907052439532232731825616404911487849772016117762363775162007204603294637400486900681908585160511993322973308615631003831161775566284019048264933038498097778426352254589919377491333281889213544128048136879293693574988471244044036802461991301685571003214390243417783940119107840916653866775854573513819979448780046284453580884673292775820560686424335835853867632960569308373745145474142575645541003713667486174208153106135740023997809618477868464044008277753464339060279713434878003444107531874039866671275833985293504517444255155895421753507921962656587256724218732835028032374494692792865407423299490933318966978491605332834592446752203567420699909335991925333990448627238103850429858107143648686633867945953305398182702682414966458948499183849212495656553378720047955210166157280842975358518307564409923423551471769874492226358135434033445341746041485688680021089201067337751851791123872581021985009731686786012731601398780330770341379891290043732586799008279204867441771978880284274803145596778951895124434482822240278950193242715008550678404755101927519398081491709950813553574746263189372309562844335130755712574873489401518715522555859766920299642658584325996107667881276481095849851241652369762185404906357259328908603509083161015887013135458446516596744443598565314043385861771647533620498231253022008716986766175153882722179739280002477360481793735159660597285225221437257594043800216495211897561917337868674735017261169503071662030257968556084492794924721445604100827426556336138227343724333884927465683715227264458808771570961107640234080813741266640330553100123798381857017731236405487281041576532217560403502633211745026385948580273060097354030287158929346451625494786141276515867152712570133915699989574453169891628720974443780679454219424822512868373505834621767405490176272634477953456456106311502283966049653477447569143633591290123839698034345904380729643557211563518474882864497411769925848338102853167103056590852366408562833141030475674577636902029325366119687804088217375038740232239419477225889353952456672135127612949992643208291692513498548341406247922799985974364654409970181411175328351201476490205162123826469790464857453888532162992870890034769466519447205181318475512991434907710723897313056238773097219750167373948575172645024782021392207572054407222616225108542776711358569547245250232609653830003402636241540642436951577058634914834463886752003482516609232572483734071959332759244997830036562316333965651212346990680334382566165605671005108331549652602486949365342978178585322374219767177030474545923712833071471120811910287664269393182381437181297224042273730589545088798756697223047016711217134843355308687984941994751459574246526050489434217740090367975943704440929657678388083907831256623242303706381943948128065646012772903191807395792724700234108401463237220499454045159528208091060152402786492076748295885115612891420067005525574936594286508220083032335000344526507325358748813080338243420892587692309280594819293768000194981777953961542551489355398053826558283674231311981907640936134609730329207386589901508170448922578612877344595727852721779908715048366635616046471382550122705393147474773474498735211441785327780604681341232876329244901029415044763853818916283591051692317459881678881414980569222979904246037107975242248402534730386899723736327688467436435107462538506817391390254500164655277362182401389173858520397830726152764733255245912142024449029739324505459725884232396242353097785232337829024462466082536613219834277501712282645392312889159080643955051476132407414107659515956218377321076841028916505716415513258239846506920739655698441433292271986261843640929267862445802337064523420832166058214646244204629425590233594411182655691233951832013004729775916480471321000743216717585537421044279842096820067067551280867151778165447714329672836701084219577507124669999701669044456633753838565854040884984069472295336199226029136120462403540400498699002140672350864618399166179324923939602804606016508861694953082048157861829784296971261245079366926588775062326117357955505865011318189634235716647354063649850050848313727493415107621881545309500301876329804347092405977508922387892837717566738391687402946336395796344121001001583392621262154902226352493727207261985404378226679421401457991386283918089558182502391813218158068643745359067385138979704430282450726566322414195542134501139559488113723221335118003453879330281055121681720114179516609096239587196641667501093760380534874499444194492372534158571717955810453057611765535393797257084672128755437149860775772604525949996820662156316081265879118739487341490627446287257017925800615254041058326053672950174373313162810946668216612902037034573920612740626059455112472481183623617256399490147604092144172208985814179613382587620480269408443631282889328862188687751441446376817304021174001532290161405078798100859387296360175442916853829204727234229736241600356578237623535305780401830295873523152431961179412273652268315986240592057954531056511575444371978666930427054387211480382485890726365181118539198767771657824526840633754358567832842112413451890179762652371833195383431925670754057101989278077582423846741806752347289613653282941352465358991902240849904754680177766647205089076749948205131704133168492556036001684111289475030166254167294058488352573285475831012703236661193414289342096108849971415054440812930911923865346601267225570439876193766584362973891726896043788453391353987824609648915034967890584270326399668952792443324373187467985944874668359462709536672518807896053923214607056014215520988082308766726987028901380420101038473721629968391648432595213402848761410937511070633726387533391417375583999129122170530271580086824092009763707239579908947469856318876171001019377835332685060325355380149283182039721489127936420829777939828060548984306935997085719570707211577225268846598338263488529035856072979445966476074150572765494526705317543545694399450977441100854967798925499015925128420030559527713874421938448755226206178543866647533527590060622723182866114801131439263080492931906013243557026975182177943127337193625063404695180383389740842877712501366559496249513539779385717259177186575772753323665366376480642148486622985032626082291882424123320438270120725113782259059729404544796221760455468125369230671216978835422555758854622445193792770354042349141084837279392698900097750842257981435660083429562575498786460141255574123435062566103372562634660297725220734604003067077367289477126955695408126234387350529486126430471522226684808818202331575581650627733575189729374723362156803772453625381800294102025819485990470275543658010836232305469091750031804113446261506238372414247922161372857182642462754014202176323530141206447543631541869631063584950818935225060894010053782546418591659490573024805822523720791893104870066841826811476581929678650920714148656692076750410955201909478352895807078611474837429918134692255320819004497756350026606269991014844659812998645268729784081073479571969210829358527600539328321859028547122138459598634162118745277284051144225396669558136213917655415066944568249060506084259672253574125419109527231666911355885553977083086759337098502516941745225510790939519370487624818339228128764572332728103538553725750783549834725210851835093089893426844903634548930398219923432408498636925264875126312963890032690933060800730108513108235540252846614388769022012243906022628077516014878018606107688678902247325626562177353696297557802713210417437541575385991067344590409610542582036421671888826959369188698806938688079723169158672524235694455300442200810252830508204867295429707525846323515939459079982890762959938370993892339791371401463028881638837799521948842685721023620398276052968189318752755149898732717409796480560516910170351756890709899156896306159930313723370871731135866766097282406879822062749898501807864285649275291235510216857384994551452309431507947356942990745358707392315664854448050614091580132302066774890106650994395907504628969667740977743514838534812634079711056286066114765624718579160356647632980485312005575485553674259432723339353594386980555497733633466287573598275288654757563661992134232044770147874180380669826202409511313160986789044749692574653566858404750202278364124600297580413333064721944842184572841572977583315720059214979474574393946580446140660539344794974947323637339581314873509747424366798593081304463085113333179753813370159709245860934616398175723280210329554149172339423141594782867592689050103670349503369406311421128596061426931392149789670876338675710287364254104228265989372575544994369731948398003398231512956623802347977181320236963658190218174568401325827524258586660065260884810111161057931136880716820573211236916453833243971273972173230899862717642179482791993370202565504329108384515452264865291736300452667136463443905219925106057453970192839968618846558902504159495915509537156032638342665118544369702269295777629320698852635096320103961573847219140256456543906084584927225404566633108163362660458890601798385885949372022543700532331464388319626167064832401847846057444152825338823580637731708095059923882437324435318399105558213782910341953540111683258571381523174352746423443281533961860597830401054040784018149315209434191288088621688754014340295905789173945957328710720937440578426558638615796361667700796739312150562203641259478574400154182823727578150585835391644410592322362925480714404769247242630088138829709881689370077582508686060242522686632535778064888002115505802054946852528747884567288796963077417742169336572610880664630493733699353011816414555526469154970798289513144228488249256982367202170528768023221926355335404916423375821628720674900566721340280371252910582624623736741479232473383657217238710449643951481156440806852362453361521186363875307243216359088549712520801235435151533840418279039684870145551956462036367740184771678289219178671593536700464566717745978924609496662975668783062968400847004263895679402689969453032155771323499945200131912091720719773018609661731023594466041933554294338181011206398991148132356434760564854908386248241430781952833391840592219107676271350975757625458744375468115361044395264383802907360325142986199107984249377826877521240218272951877603508920601214653280794012557346129562115072183864813739671208416319194993811717136448617149988264285421821917311956485363658821544246195228479072589650298990033877488449668710488689192202779667679309970248526368396604054049837029997752588906089553431900852665610324239508651070117175991098531868061262889286313665579084400541997762436549818340343181560408068812655972909673150367683015426753633246299188324038257357771729688935682279968091285148035857054007751656237402443715824412557091792710738733243564070339212074598005405929272129307523151869481189849204152278459285184442478761057985729249398398951220136585505904583824898448132291738796020921880218306289571350880501441293577776223195662419658674357042913278340218587135940894816551206096555799424123672720508718659881857344863204482175156349460901486775896609689381946234543221551990328185576298014744032245554814902415661503004178529144262425913006257043345874692867314038445639810690223316515641827832660289032158194520804528854796192143772845434242854491188270126220624745913413872085587650730484318786161901209428065755420167739776565924539601228028965462853458999897839088892326074021980563417403274583618955597213471369180645548025279000983844861431755702013808126569311607558817218432504910156184576783920527019607513007475369645774290866673756893107972696191965781685503537010770515164365361714919311398219901223406288371765081294581688553853607761719973570326761861118811107384390110912146920034249495845303149868794982797017977950932427178545731455158022146602862597423576411035600877671046351037169547095730395647810653860625392682095971053498397994198892946452744709107434195173099587934584969393973965590661611303347738545237544477481065283984975091772489766701789427268055504557492541018480288767711853581611039784841963490523084029774546096291764650229532842435687063390939539287909070868737036050912870318291920831504835559162479435059407933184017406026283921927109422870586207266589520472135472977067987020854282588009145422717522047773455749926368381243171610916839080916439435371705400230915504029081287692529228554783559259218826144924154025512002482555518471478863046892629763687374952133577321629700063562530896429578401100540304893044553348485837266157677685708950080412939855345722755198722239988584868698505576240708123456930419044652372803106202673022522439911833786230454640264924872715506510492480500820641914991338530812833662171663258612356722873953870786666324487265745653103041708646427568893853831114340018786778935007101038615456591600609535830335963248912312077618754568615152430738563818373868810808325392590398008305850293458503276467424104358501002689921074798884418830523908123958253647300752233429683161552864110246039023071247110334372021774011366581000494914308345869445598423007335166183661665308641649653456687700094790109819976804250681105172380455662199398903852153372039644635319866712003219981694031898741285559010431148472604177521194134759719903901354397738400039182203409733573904562567063768338736263413000341737994885126270244751370276941704279617467871007455280694766486262363426456367206642891290617586670658980130963876090360528285553867228100452594490440919637958994066890361854457580768894508127356210962116734106236923489285123048104848523587349528629458375798380448786605128987921176516218419408434651130574311122489057512119698304889144833492475380748183282870832750651120510913747758796993217257792407359835290952210292650531904437186461148620483069535976415228780796236567805159351313608454576526433384746072509711275661437959435588183846319775545707715566973267114552712283180215402374167232642519551325993449773977152701210792994329213391512768973896296585610266957362806224383935874828427730207729484152927668014227075202658043520656493777838500372879036232719657886731648277890818110408277612005914739303869337395932299418852274659694315306260895441581366219778032169364154565930043836063276091157412201452606689558564069621813961206290968721556227910028863152868002025174791240862293574612211985756959866656557155510657232751966083712082495630249450815920711321076865785842114705395106936283804382137710326780443256568851960359296020506625993897638210773000316818195063785608579797308001554056224651994421790532995192444000693139178620295157122644525370783553111426004538218107315313951687644891877265375806786418491158617522088290995044519386895591558092178100721159648124530838372602779367900627565087445741168092632089226771984331174438379115621851967224695467648289562074067798580546721858637327856307813251229436573030844266913961796374815020425096761027335090641057431373485585128822792813564750013713065833053936241808483152580918396202619123884918090826913616515999931502741166191962343719868520280254376267010715562153967821180463399014527899792040433364277996945746464000906504939405106618087076043893355618132162233477633468949365891575276538397281967748307931542317671286653430894768978545184743528243986679022931801552001345477093248146941277948530459239235192506526883385487264694979461191841542037510798628388263064899555302177438933200332335650320718393025998800789397424176740681606832519676035994177276520698987001752303651082236985558523799866232988573357540013908220946794422235461365602919710954146549299604376315580780616641496412909760204019984770736293447328135409460757026567025593532493562408928361140282032265817258446979820106494984970596756703044776861315163691400521589091886142584043876684220302196227338199071540822226691581781026203191421161321012722857197134777547718464309200847983699415046452689860600654130409006602230682924153834612553932606046013938441880088180805361490148062899149871128256506477047242809517835596424637198735530060410057977917352302872605277206186247117076587007652909125740495243381476246566437930216955005192479130225432070705604982007368788104396901179760850916337983971061895650922896762492000281637367880576352930415121116562071528859473119360305289621417957609494056632352198807777886309968570892235524962261113562140682787887598635923437269816305751316776624596283730347856158106878260718881984171021435323967684900435029488005495414012368200311006865445634091210090439969523170522881734104390279903485206656388026011587825463311257243150281606691392689226728873900616429018002742436366677180479063105699081124109976844416308332186988297052558155675127211960915177037181350497275274690333538960995133658500899241635278699311894447650129143808456166285737792609574000196317268051878593786160855175926023536291797033606760940827665839879862745950394799708585978487417405822103696155581116377460396705423203587551409833137411672107542321465448363594088335021423561754849678100782021563371065437639154903097738567262321851501083459486078934197210855217329753125771412970208493030890049152804487818251649114472177407649305585207852367156990203304258511215847274725129089119825161574648185372765220326112041126217657548803634992071691852014769317558367304117188937240098453733815304769175035859678777740215476534567258569919255546331806114900136779594635920056612424668845292778398669466418357211119100997708866490692321889014771159890839997619989846865546071396190411456390447671367060679604331651870133086632958275542267536724139590611282417898959388307544416553125982100467759255700510556735616313074326766152925424494835966540225373796096584296378723058912731773297569734622005029716605541433760390052078312376772815475201030900772339568517257472951077711041932579946663640090743611446646874364508936350248450799542761462646314096040700457656299659930369509336763010501877131011591083013333002458027830609441590257726978118077432193338316003373387069906275397711371417821385110909833139968413553855311502301942681973650517067341224288384532031738586914818290062828624229501775613980203701390362137726900094864362066708940961062486208500266632116867176487872188493672664008038756075757683395502998116455538933994519404046375452312794878638952086131744639690561551600593407613777702038823290111847170278059165034893902915143163781512832273576816338790182966899875540620635006079254343239597777199241883917241710517245448476145998183794508340450369018922145359182922298333015518114707397780625862640133965719406651989048589999799361146185167555220062251529370876626883513585450921372425014614332143808352266924987259132769455461251908344028443696113612225241076924826185889644795039413112470157108059232930313134008163842055841647152746714849691294766328466226814181669751632196048488294596345635427608236772317288878530914719710610089333140442820457006353546127555779464536889218103049346291693655156193567164886236708756387989431161221491458347782427712713088471870042632494311881625305985750350363214761354150156919024857727824888645910534315783430470035643258235467731391422655143887362384404923715983237389120149323124760301808838050862152505272626898384284955943628198084146813388144842868210833022177554386863432489234712001967461605560152924940737358351903815913261000726927190468484619309271954874962295481051843959587347246412521119315523698893312589981154911948703387871877689172755083062590446951860161209993633920921843458733557239630995104015427185538671742055841846413892426480266221000928986231187787301512896038746857856067424980450762489437342544908656138443010886355343319105169281607462888165313202751777138474741205823498648516051660284301265731937984763787200192866335685664902038292319902474787812573860828735172345779069210447824166450596983992784173508022922965077957059379027672502086056644299890472317150491156759091056042529918846064259987683632419047224059591190524403167737973733912533836034982767588705642865440071347967758764074720595132902907810702594566715834694243380531246135655669615945898281473603121738406854127672194907065784801124544820371634491294207252812839736728420711697811600924034854191996094183687440505008590485708840322697640925118247414080868598916412970358984669669723168646102986514915060761914668543923534512629535017284718814290392969130517563607667237321081989880232139438551416791917836802579665802663917205148432898389235443041022568707489120253164853847058925153098573465025247842332174069363511417249957843106821610142625308024553123849280491583944723250521171819440070223923866972290040071723486370556202374995376037907593761411409927576373124122689175942152335564791083313613335605659715524739361540361872578144254518351027559434735398188932532565446450845410507742989596651724914763387099626917011502823079443312233648480312633317724724165637478786551040023268995852700129289519482501659122256065772761675863254670672948058287427413057966757221919913488606321574979081100043255862139074901437599548616489573569042731709930847874874632665172679889900300586470694264247321455666278699443496291190433570645486958282121929928349947877130253537407998833152040352477002576516055088878539196329978257884555302807798356984167498525307583915338746957454623822806150986434854032818389286670553982127421663213325174064346341878490528443082989259387160150377996581624403020039925571933135777911568298030428489414997210052746948171255490050731449057879984133591693448078178439750233521054539336530663058240673953400887325332719978063760594352252841035102653038194807863922618356545267509206498136220347100699397228908058516782690551633781433655272968403456052520031440561711528817359380672498565626130009892424433448214732026331547378979470609631845547274318792055015158100476980233505127445440064727730697821554796601727210289624721467134757398135896660642889082682861467334143827590003287789744962599212590938255154237221207855973739904926184995750779545088019362218343591509031269656246378280006048630763438243963947078514942046314250510362016035419250901401145030587574568424000093827406348242869810449236367454247699032138841050777756218981302328216370889019029254032634303470433832540212954159303348330983906054372834214679356700925082270833713065374392296128966295814078853671313207538958232301421481682959379370904131723673538647807743773217997494967041534625596461250607977122421920093957090775619804069954294135049464639424040266128990162363534371795986304109282099104290729998857587043069940993825219549821368630847224641752313686490245937826173389899629346299102632438588391122823419795352741011659988248543513423890605413317398296025749168589027370716103264149843788720883048390099557369736291785867902773111171686120305430554208783391302940278298659695702897210164980481640262002322821864457956474546048231910588385128064579255974660774341404321236247726386155225170095646777910520324402053939762387740942105238502471928258711596145036750616110661088702455540139132054601685623362353799800539918248463738649921023018009101039134537335707381232981617816904740679824227382316513158894630345199050856421264931561988839270868173628431100730662540582696508676106257840563508415605950437436434123719878454886315050907130635376721007948211116584622092422552023185953137141193584195402825432105451277167045659603449701105716327293904569597295116558535788998975087964550556538430232018464675825111371450389268394734012519254008009727553753084034095500273188663544949821060377874170761779342849041725674311961474917721709823836406851003230239273962912292701164678495061701888020382803386506102058412826468106771719627590069474563087376038760199778907779769086897240414345338389364459341039785985165268567116821371970852266394919086275992456293553039213605294062330975678024126405758867408528852679739887479324523010104143882373883852765458066396302978030289465918513886260129200917175425533486367480242595544132920810494880599060979241325072175865326198313513672209145227929805164000685604682929357926199172692754771513957906437786014838956479178906350157072391012387802198379207374807060150538838946246353120060561888800180679595489461308624138859828839518789081112998381259588009746162819612164746782690348921447230331559261790317885802645267067427017364810225719914615623451377286881403569223254892890017962611852733751440053882888655126701459922963957556690998856039784483457417657654528687789996796013036463717623686603901136971553310539557912738714312569924974158903732222459916210657912306430238322810699684068555934946308005627477719189211541393481847927052057053704808379454198447709229865922789269561741828349318063869317217794965386980921264874701535874353441677450136548334851464691650635278109621216330994541465371545350304391675873752274926323054649681618338614772785744417095978380065171724971694243216408786156467020656589448482552823625799786495723766458017016159169846606083458179399408167943041041107005800067044721029496680349684810590903873748463910929037894846862757488766416302860992689626302950003106260402085061575246327879984727286159803662230982080799387263123742903385223337790944937908744062220167391821222393840827161705269618462519379661517198084691574490583386488554450267423371755517864475016551742418954327671878711088468198056546623298971076761253660660596142120378046241816062394427592009291514081105272296531999509050536088393398562357114595389647972612909700540259100413685564905831315267645599892991017486424670614397411089045008982428796291148275266619165885100893759605894229846389135571101968998136462162866593125389436886365857615257412589860687991186511538425296695314436426504381612175787512161670393266173706011324692142821039688707913557749509205853764561807180617584269003161621472577770065700774495108370679630857356091972980572968895468044485235739626361353803221498468588819844700322423787799402439560851021000223209282236404943415067648171069694659855517974881524055710868911034263245016875610445021974150331407956745370682913643330842772050678777214994562619902301835942154979691435495674608540661344943500887541379832192702552449146875415500225120077811744783974434451982198928685600029650598429434032161394419622274293954735608510527405016949766279913770402537689659881067077769763458888127765204687937924668185092401068263333853772678453489911342054834510593567830895313057912188544052147616820681875300122253984552298774671853501476595372958053968184596212172828392254315299467833046819710749964217161548737403722752196378578933082898842785991911744719424407723891463534286837253994238946208721220224846749017997288693084487403447824177883681637648915247928897795572178963386250552065420078568497298442717124830419325717175692486356475740288796800180142632796315948521137163485967924433384175497977978008984914191226953723157006512746908529556660156883966332889073249962659040104973894526573639299592509363328897840366153768718144298912183602192761691419862261179886282652345212373903342438781502211179130014206029506771067739027844154902583675465847847775078057811464608906351469041780331607180225118591568139354097645478828258203889285073823861666401431586128411664385691135743496231274632054480763864941990628645182190423709839083809137690939190413106784632635299176279498973916830878349135271552439729052714508605580972025922466371374810236372125629925053289600946532293134895372251745965957470201976554671485704768590199960476697975866590342440232462746919962405089799640218599068370233214038349742504141546462969498150503454115375571795927265237019284160814003148352641813045816128379282415694595180718983378382431168988807316901298892895254047068599621293898328797606479639157804374974433305927615912358103311796129330870267726975717197505458897779473793612835442247894313581615984145243783117852298457272980506299468564379761462613038209243309313585585016360869876081805583811703738678961245416486689296163660414539806779545676263391684802190809878803449743291247874183251435930306183125949907789828198166315164175559479403448343421765387860446714361718941240701553096860776597521630635975278322120867969924928143365649839002610180227154641934766898097687195905520907983725696801031919577713683514832878355291289905563330128445830357818188297226361886185262611669580804545954091999681925093266511725106053959847221171876947833391595421586450069747267878156145976661514968896636255183070772000821699220237538961065370285444510733119222528549188237463080016774254726194565811824403900613779178279449927512644333464867926848418946470467429096687692797005471412593251700400157123906338266967508294396057273810889383353656033435418166662426530801905617249336373155852864820604095369408043597204934093493548586798760367556114251914155904989228002489975056429625621763112385157099002866233514734383004439786028971299610045541682350212119744524801763010848376983124745332288197318085550819214665152332804898190871001386644225294816916901125643210946945674473498235304970675702211575035516755518050374264501348764453438003224489792321296025697512499666536600701652353263036402682760744291508584356489491062409374092938475204233340096782784492205545685462401464327065240597989254176511961921183047793599794869898457025983788310148445698466919041188170430853529245124430613881645350782968435243519356665972704373850883812662984863830166770788745906377740956529135310977851905444139446122705720224656974799630969494746889317752285647209641313906562586584716085768974582250395161594500039957864113767498484872776858015577638190163947519726334230066672953199903970719885925558429799580079086278901437727052989879515476723411430700828762708012241736961086369457132181889050299972684921372738726858558381779538880933715008934551723537095189328554887610746080834362861274046649865296146757661438662694028264671862125601538948976819854452818777789219907506874529241686491272194973714036637789010762727837522741821540292706143366873807923373557579381121857176130562809780278104619984072304178280625052035916597807755311510402361935126030919062712490836568109942540318650058878716087495015009666032733781151950495699255089641991895407631475921962085128120641267960771014206964894791130221816520321138926341185613161692171890770179885060466843767102171318484908336584261176643824117539894820144996947823623305473345821408078093479091082583777783557876027874789655043620724285580735069039307375742467978796168859019394324075186243921246968291978616165847992915004996062655811750903972915458132955417420355630680546206663149332810454815666674330005323156074415843303625810395898251793928788058447620870177187201461523723886195036776324543384566328180726024481474231772605323263383287268133406349694213439195341040118747178400280528699723035302102043751079868839876636983787321026830712235861493729516624345380761110024493135959850255219767495943593789643568687341590275403625579344788092449557218120469112246560747730839028369048504740237267332401144559071053551161196425496948212589115325597635183263435860483279617249831989526143480264887760827649799526659011105689634019604426089839160330391644827720924616941884285053077077788136790029800316378173426531651038299928288955294109957085076584286803409333273250797466486212151742407864019861406316409174720041068026390949327014523002456060508507955590091124321094028198679178529381713854573028281412527177499719145484040492203731760865870277376511670808718602696361710413757531543587415845859328682630615801754831946955413945774058289284795877211629035129312618473955624629324129819432099090914979283731379343781473621904296148324779814170939523627122600464559610887910232786130113753469733834587971113141926277338895832987140381808219762054688211604476703192088379785021741724446647301170408332328829109384451356017427025543840744983421460927606662477799007432855316932174876173769387769908239238432623747356914265668366087614587959578250644738219771472056571930407842237628983984780796261869563700379212145581108916676283266519303537588837642991611109772690290871843480954775367058248790209921258049209983049738417852194967177580419616063526538452258503622230890676013818368628088405443510533917463812771010672505402717944702202340587900086621229768701174381476948636085089132083427082123634280111424180378180273175865376763118264072193121505262061353422402222274295930267023152080477640646981583311469977814525359203311169767395464622826544399130907664732261984111174868473658285221541986041018563743294656011314863440152608061606045628729783682728254307573249614190973809349251244095434336027629604860358593081871665955182348885564533688223974373769646335774370093519600579234091688531561394444479799885213676537414169120643028144620994271538735599398986944965525384629126910311499508743607788308575397470355669903347506696698444129541981289746726025763474923942439536786861705723853476791258900861737924820710201667780456057632097537420874530143869959440543286178692717904612513283040220214001945864717603092384781501276815843945881052834075117809436183948986122155570540921295891123853094149199168405006388432014620426993271689051397432606200551109358276548685819764482640469901887144427272164589688061199841577546162512538421347922262098737251484978637867192200166566507137519871310370219510285912147425094699956705573159878549052162842496071305348745946177103442364359612656191170960391332556043861719280258847970127643762959433960480082646499197751860729085122451286571307199938782420879831046909032675472684757861908173209977741986369404403849454797971049119615696279028455291002876095333232550905796173452162318881831727472218192989139859065727852650552893968160663461438653194119274147970080414453965372752899917421773107694003164262403448609107790127130317122999310048672260153249443829666739797933947053905437692726293354755518110437528860442325244834469024812958592689118723318017050403597669396273740430876288237302835333192047225708171831159075173683133661806414901355591468555308265761577874716977816456419108279628542575775674722785483591557917908951380930613447114653406962240114635124586795574632370882598096188112658736226793715003088162197048565839261897837771201706382200215000404957088788838978934986672065915178159086654059557304439515373144025384113810102642163688082317254186845409546890832688416574431389255326849586518951060497869127516238141848226362360877525251360021467022157146035781679921914430319144731271837630950410814951765535265966423014194720705016646905300751944481434361056017325591341969102869142614365714644609734746259805108404946270463261532905164556187861431052408773278598216047555098483092873786681188637454922505406685484730939182924437923855358070512953001306681942317612293122122668784569605264718962826683315799014231155466483044205869342123292941344071208386371328824289811375090701012072514524563379052626541034659611163014413338113141519987836947380028402486890369311990728495636581057090061977945374453057322429043377517611383345201441791042160519865205370641850980996094093845366852731947938359497546581218407034205520188086325595606947429821122760062120294641861747024182687661523610027529319312249192239162976384991290822716898114032349242095526624603285020651140198717281139068314337084166600513916847736511295677590458625606640000188017245083281936454040746367558062570424076696228712057718139074937075910350165354144905220411397025561513919846176207521084239196247089046227749231157990331167316238907768507627206205757511392740781643537139814199560271273765820238099312320381215882161569366092742124922407850021873039992629073786417446389902844999473428032095289180160825393871931789027315912457118079834575583493724518569255995894585304451727312027601171885200545594660503474619374574269183483365621143819255225045436352727204294356605925429046507066198651638856597403048435211737657862636088309227726059680958282969021057038642191669623874487779555396868578911959942087259728148414734692013894472490867427806442101472061596604326987842557215572089651031465782752291334465347571408216698978979991993887399730394907991808856322768943908482014939448423104034163505179240289853816817641593428660660528805987774450966452004627134564412997741557821324746702025278679992324527568523991987397404628118763276405740486682830072250654068747778094979944218120852835713136595055063666834256253600426471168056438398657071681646002124355771246757047277124137969895287816326367981851805384143528532193081320309101368812028312075587005164209837209768501894946800362694242211660747072121664110058030834962178062982745673732754567448690024559922660280685312181135967154114826387957894368687266116877872898712755305025831967099781935665009634634775452764805108637937824434667388366895237299587429427356688239225336980026954438067741797762552494103824821771672300450641920490850509850532338109773216965164307480634981171231054354087005110364326302417086393676857275401638122039427472230511682495165073291761846317432123538082444417445218259306540110659742311057262639642215910605844788802285465276753900877923954854620496944769734642138082776478585539639161317940388594207277609660713411754812162064224594336096749323833813952402184335788823854939750587156031169293730397065641204031405701837626731188562045567516496573884349911655460491000023668452682206643222169356695547641203913229215357048973744021694817669207244100846360445431199274365165676071298834114900757217905540147099117037745650142108568884691667147259926018232991196506641176100758082422790980892520580137219826336150369548878873095030092944911052284027124418374848598591729548216767574797325005593696983242635636096152058772891166729666424281517256487488069801602581609985349261037951322754571836438358907000909636745259152000200309851174811952922652881595203153706097812438911725886414403576881946023824412317973054789147458288312535749021251756888598864889625324297803201153149235052335702037967306361446838442030208081980114906130746602342848669836482165108853605327606636616231860722120062194822260997947840732966677438794714887091454153587721469779275321103688348357743264551898727128829382861852020123987942019729797298966054576884378751882826964096015864149453793896798114490237390798982182527872756278679583561207333838341657483237170766956126226902377408791388066842003571754625222269273455758091247331176586459119326843142388793593322439368116801397918303347314866776485208821833066904738612011593843401053777944901638362800409448989437801542888260274701460678143601780244536373896203938513077005859359452837864374162911109575373240489731315945795950300455494240861736860359908841863979399452458383405992201789493498762631173860769193919377298460778452317333884225389626416941788482667582312977249337485765645348700302052107710563905035279677736049910121575171380102589957870837550556121686385866155543720499320434258368511651784781151133054826027797639798197726816224633503587589353632590852139159625417227640010399854607830603238284807926235844931663902340112655938849913193768753544584322012436041394278219863620267754927662527104616866169215424727949810645230400356595056088038489019206435135560427127670801119821933887149093565775714309596289832383037691274692873100898616335450203765447989890591512653341213056740642982713518662261316723615652852201793688980398209368377877653878768048082619430296598185273145439261737667864160605233196620343577463708206478681861013942737198045227569571665297838210862916470893763535907147799192494216963099425837685342104934753940032131445635034841180601789174870192961732116380884035817587048760498551478711806974805188376483035328911061184095513838007200175132796873478627407985341366875790507175088039662413887309347283171211244819094016240091084151527598165381369058957364039586115497169995596102702679532144587960177145557915496479613084313572851409548368673588105808372002069791299808931258930777225390533098844227603198606665683710872341622108868672086338438964305183755563480980061623447031628737901865878552355838766838996018594861552824470544187808661203405529148741382227620330101915901292218664573480066904169771106928833452224226618369747440312765914028840792357501637285889771115286870604010750681321349953992932716427821337703938435727047661779670346824882517018906505855959070284965758776697786101511525919552148074222897754671954067578563573282317371324970102130627720185063736632224237132078760120192838206111279419478651418447245436204917729765115900552295126066789800120410066586726976534599640245481659369747389014155092692156512562736306749321630546772005396406150658499897917662943877722225293851101272869908345070824453755697507054286576786218460178425518910677078605701387617451367924019431034214921527208316994929548710289929796059284837728861236786049418772705247098026949932147360434939932771981855690194332952013368750124756752503671715519337930118725545632097748834643118593540257681243914717356993384671268415323251789948600979734951466480156136708513191177710800455896241766502688355351004863499745853978455023296577459158229963303207657858816703604442540242591962969554362818658019454703883204685857715083059379343690486354019146958017573842834554101804553926830190836226908189313310837439784305635951847775510093875013546838582890897434529204473523841986323187476007388353196605708361248096396087456120388444845392225511054612649698578946789457475447821909919871925389749078489205893694970782566034135211068752617582990011016269538294865872384790406568625222000137909122861774247651445497648334155424963794109490882188770570788180575012390989317170458755202030230791896781556765713781790113033649570694817072001338937671612948223424056368206255003146701372205084841149186141624436588995734439474634048298676518427938985371516518339599897380994107137009995741755427290179569221140728832055161300087963246698270309913982544991457776992042320127788916404294639693295241132021965367641363253560592673096152199512633825701163506673555309002182486135736401584903725349118789117091612658440704773059985050384927538703057468425910772230407681656413856308741286009001296062646457467042576686385292203291331062665709894166432239103986142568094271699456836923986679173248624073471978007271176911677341514098385431214113759743591711078917071493815671139150031476862824588319534101720882560414266712603688787563581577690586923737464557268397149626741179292118112551847455865060160891157948004299907735360920547788964143244892557820334599289613313695351831691901247724206259878119195974908961495283212874181433355332487550928428414430277025663665052807256845556706319738495559947711295870255150724039066521366271650184068052354800660853899564781335224920327315216305667963144797848146077726591209745183800709580135152958982665210950310167400197568319321530411940585856373264261561401086975188828398346602651675311302595215449723097211735735545915949536023834003928515112782777685432094783761344920079394180665551480727493213680598583225559133490471698208794545607462756527821459737341596724270493437330283104303624624675156374748753094941671493403303508073042296127977572146178415606823665054212971508552081477993366859366197951269078476885614759365157963940930185082902690229248356381278277360973583001896173153960144816879320656205327069911021995272506140737843188680794858668665212481645221302975452905828082012605492136916874265275061488040709574732483834440021788850644678654520782372662613538800281176396476497499887930897117538577956060140947854407086872239738609154572103259311439384253636141467921295455224883941323397966005768035394640541547913785290958726403571077344261751945504955421753693844949590339683656326252991288955737317623452100074676084222745919375581244834302424957783138300994318279674146636091576662824470780152672037128141531130934040240435717827534319302105437899394706822965683383280689388920780230830183617465054912135659742684405449945982672677471570455265808683181664760440430318454776194323714392077388077646485877816400174514652565547007084015407619732457622439579253185617662727960878024477092386475758194519078704658292560536976759836245852653310790488209851904629689644060933121528187304895303798859820231609745504190458920269640180467715710376833568917063898056156730028802577461913625302422265827454521406823654601789855912087567639815246110052130656309149162773387589180341267511549869842742557968115779037316742933618920787119326926035714627930165619497547392813850255248689416224358807034662216431621901606628535298897736687683312996479524101077640065683629615315759479019119564431874074643925363262978346177760464137378150289899101380555339734877904199928357747185059876262755060947673267116687901769353054462023968415124056285304743829949766049770565975188420386830890308125189803530100723823424475189207710389988742901924005767225901799569422910296722276482438344558715518783637232619823891495133495925078639177020032664140666903656495421107836360695705439262612258144372154040604637567912083750831160900994561275673129602085524357871487849871201550846179417715737614045194872106845630728157496476569837775885881207571173921694344804723309779813250084821220545574921086408812391255113540333971382600489079678001160555430472682160253554022700391346207922461373993678809380858024104389537261331199133358404978052537823349322835036211817348822675554986792152916912709545650649325153367076991959421403575251519445788539750593764563372799234966974112155873165319502438695344434004345571593210971851252224193919438705384170444633795968346596520689331565189810978827514796314860865775878493937144387743825475681268733488211222827612671887285308723461170353551682862344758699566555955410726081271782408338161770994480715858157481055284727610066338193187437647983157417319279465159982860692186197373757801559037729561223613374535281142422822089691963391177756695043041295714668320580183366681066772084987697888053013317072885471239832655732349961080439550298354989213000512271206400764458248997913733199732774689903986215278723398187642596722546064507740553110342231096324800880787449696505219933463541037885634667883324236039874844164269049984900573601310986722959334946879832399015879464160256111338558000549993578573004071234505473849831706941577650704902724179642896918206015937435782070708560796097251256023048670681225618499268723207704381886507110998112159394909994906425114757363652544500747717288167613887850625925218224066758491098323007031310424564285937673457022420578723357754384370419653350445784886197663254464979398797685581549357232656058460653009510899315869565452689261869763349199174158923435203902989629806073300820332148856958992640828252921733139775139284993633439297847562573587118504716719594632303279104489504332707890785038510367129271205515491032763928737950481929468337887275198216434125301409807584953776102536818149095191388066315467961879997475788560358203024581036580316691610949485229472871413577111350165680993096568120229807456687183546097491587441834685529607087433857413971360572627613345066386196908692556639066830617901202972334887877615025114926938426550271361927305833280496061486756609473405103658189669478272549670413834233590324464527702730892580514377809630612244341544341859630487816475467012238211265277732227567321433782578590678394238068856136627390298069113923000218683244161695246153788190017066052367433623555786909208232440739856436352306548308373530826350456340277616269288147427311072572194695361205480220686797314050626997408285765557937041769559670222327186881266637883913297783276179572494912368385189850135251054333062161272855387928826497277323233932678042292385779290179698272481067521865611614887339557413897237340089260980151201162614589621784307944848202211787011415877197778126161927423023033725767728815834075230155721680009557820270875008184049705879470289323071385125576955198318601532717226333230351307830180993335506435285953805172966235640066754514784574026887297469841863748767977902064890100717046409357077173410747742343490329985969384195962614550561761183185892144930727313327155070264603669117249747764695474610961973865899907284051543511459138844932983239356618923433989652367569220643636530911541302956992119390993880308125709350913804769263371046938232726369655617544141661729271575804305025546586897668191668669182790509729550327385259602851362520829826306566945629034372796279983266258986864500415209865783100533059960231231704045533031699000769878606565178868275750381267019838441875056222034898935319647121800398469382020571713537112332769900618632327429319059145655954413845384699314228780237541134856121357050542333822000492854032919627411163508330529262355327969466895896959492632690517114000262216738244406531812688989031499699210845557890907124511532656348735742627376948191690870399681897580784865074697892015675712189826242814746472804719837099061468222546235447224643317800290082574425683683994058449841673879841557257685587713127670714618624180736850745003224986678014517616546858538732845977890571279085410408500064034983615149084243694453984535410574976919854704400119219062511427667195208349359276907010626738654321439593438351605772429080044346140909840004229086432101450243028562891845305457337331561166874018432835384333046630912850557102519688751657916611026400057274211297299195864379867133658868691536308806557704617201221519561707612156962089013434186044171783657730963906449976818880918813253289896668699119727701906764401744701135586307508315609226703371287115400717749718776028803757664383577055470253648292316798073720227480158524583816065188601961825726094719875235843760915230903873185201867775828607448374778815100829341214077638770189329968287519707920990356075673530769622327997453869034560163632796885449571883822533036086935580939158631663060484565768824543475763525714475339326790660221725455859936915607640968052806015914230203445743794849765657368559744479547671956040022425651590480201476183622192660955040050505371017453196244089612977586785490463612997537127307883121823259351066340709323367165334699331116512184900329894515414956114103864683491450996597831419448336485364611410847887777776571694114371812209647747166777770713408898154743749530163115229114144457582724429990508388702239048959299927981584391012751718258899544509481319385340737607161979371616253809539698694202385755512958944218722243072736636615305361828461555068867224012875662254385344716321184715656113966580993668184931447323571876100847758545543923158062704953377629525606226185417363599495868835709556288916257175170414221282974228414300171068112609501129791090593468562893402472999822538340061007338078327825359502244555897116758059714646068227513426719402694786505419692698592420899553178764989590477574134645565688868589074015986133562915216709677998512731732302677821162956170250765633571652267193315569807370491634293942014714528546922527966595157524035417492269991994111598095968861897782847507525042525223743537882766093603397039370599803283901279165195976867121852485154949369155213071016185185239167521911705170985468912809488973890778670429517959522452995827877066402263182730810620995170842668990495376154843825997757113235802959991472442605462384612368128985996339868024821601377553370984473655117498570480439275173819547776810474500522437519011096494647988169112681829713771234952919512945642145056796538181158752113501668478372227675424416913923384951923310952021745538099918721908545890731134334238980410124283751373545945718986711379772956970168556821814261076923212191357069723470941020783382289548979819577277007304332486597744385275781639177287493847247109171561637012497749861243684934251117977790136482370465683101298569731534284311327025523469074291096177140024823645854768083198160049171315903337155172890273973902687045314879286046267693946339908804484300974358393330586118969595208735718605369313694341009715547801498931528807414528242177682864694780479674773926644773211327628270142466342856537734247286283788395227678713466998367649433804807577642850412115024860523183982741752366705723430135943415603156256921958466899400643203744547173033837265963608230122132074296535211404772998378841119413867215335446372417943930707117119814472944376675749499149669133126616050772582700226171463281402497810918954405444422877324618344493750520418537544648682504213242492783612776335829689918623074307631609195341905718870839208745955230193261581844923327893926838551438364595466036329603235167357799856885324801757917200406881864358148050595843263873899034941746381235308237933564931324413994338163238989027555917990214334680877276208239457288728555107281790193328835974419377101068489273649875312983227244723397561179427127457657198457957387500657426888265230678054852313931854600826068118792130127469834696591095699918147082255084052464640884656001340372743234595498152170333026219750204269682518931637531913356311695147061381724497361502100904190011463220024062185251546192781241915586714732146880634913778492941170317716395822212397053505728662977730740471775958658604145858428005667259529764595535233273429965845912311144000262711237906526041375590170100680530527593707834516788387241752335001343880729141292879513372500053807220241082265600003993233269263684755543328218135191392835940838068565674868650019300794140177859358452446512994810588665959178825701745641721548065674331180858667116301420539371506338970780305597367949453733043601188738059703959126614230131028628398643844696446412166455104898810204757537961071976373101604370545284239951668339020224168549765817553955367925788733384724716736570840141083923436643838595227440394374786670853547423522342302822301807416619123486160769177413498900105387033686371300874970026155263636225729050527119593147781595119589522386489996613964556491059052362083399170018097627528896621578734525630222810729523762881324141611717937201033380551535984837157970341353692671449893894898105024810961245648483795304116901464318422168682963903845594585296533945669478020804453070001794344049641466296089129503334905234337188685233598098240484948520292487918884630404665672231796698651861211836791255448537368728738699374644860435656752854892601279529788393928485072777994224752153951040914020044960623870164931221696582504644503862988424351563738603069891263253220661831839966111220063666838579934478461691551828501265930634346878153502823534237506183196577502123159123134968520203737165084115563622026038810823824440215972901376136728224415371035101240415078099152866189256234260410616751941526845203134906735778477352345602620432589772575751955075445678071311104618123957106163128120766877737382459127883160189064361628911145103104882467942617993056871175413874430247271879593647826666382768197569673829961720024359400711936647963061302083180933576856948762882026340954639353967768401721533634098978305701770254410117112692684971599608571835443713885773056229534431980928508579702525660062567462020375577548731498120985780432817665521279312352729386876434991994571754464621892747748936822490699768650250956718161913233855321269106093399921255824281355810230026011128299575151998150109802262008367940421318999513527077879366222947926312860838361143757420361227880801436915146488843863921065299958837411409063897827685843105332308301119685346917333179340763648790423745247349756536961658694347332854809944013349950540974725296785148993326047239847582616839798536387425539371428444191904900703739604294529642023402684572910750658358552234325381471215661043226317754314818677141027051192372264079417610999741297979410097055172388396029989632925273159543981014594646515914033552056948326503604105710853365166495712895049269121976249827662711646315430580138466869820613587807224700710097883103027335971304788461833870940183001550507906399034340684658169615012302967289725812613019462818995463328760522222966120216491921511212742030662129139046969296473597685167459682100735872081123744400659357156767100522565789937804696995502636134784935105765594470398234415902382578397046539932999487006986007138834291127565672077352987919485791660218556789237612302745758455886297089399562966992364649930637957183243858897962137778906614323948791105886347243012115730037778713119029277237738912926715716724642566957405623386379620913453236639572954944479071590509723701326533611984836671563690126065473911202245383194582673698181696995770245564241376269565517433190930540652441916968634545045234749760920764056045011916332570142827931070933025515123814308017365232801519584178915586728379092356770987107820438464168083246918267831297629630135091741612669342974068392907563911467798527835075690679354306806385600509397390209637577908189351098168441725990135834739908726560793484445129526298418369983727432616435726371728255595236575726851703077218373847179892412693360179949607788939402997543166528200926846489467681076712386072494600990751785469099977921773842490548299432708490658495708463129895261765977426836409787264091643035676352626216952542039335278993376401941277270764826053107562103013511969224496664851027764336858922206312032726340354620426454787367536392189032082076481294534604277544597264508079954960525798824875649242160416970145400276097817428591324559516757738489065940910146652407084208554888822352294289201495925515434373021958217562039486734041568409585107474182253367339838014896690462786638265862219401405993940415745208318180310041078794772436709000038668725418564361031476472780935511484048093426319787538623655890599089999572328027132757748199210515021308489080447798842545020064444109924366873117094442479875046490917045499542215394479272941239410733223980732283294923499794976616298055284885024560357714276564646129976607092912798756852919669182103558701879751928541530208534483406913093999227806373218428888054835033489082439021010624806040759646280030368497035749849794096918847599504586642204125300966259979396543450649599302365908017063664446159351696017932072017352475381218788992884686306969924082868353303792172565469210142802703020128515718126412770797931654569628813825645981789153325549308427908051774177580171585963848567439811047544257821342626471452601734355092126408890669623624407148310169012794169631926289672729632502357329115053302155817596164264217279935878773972990223211446112507175653693646248718460732942462916364267088931612820387465415648279992448553149498386093388937790670170570724791180157830097443681852428175589512953911427569284260550994629836794795349893440476267419973984000014971247623390390725865210571555649476409656257167813158293705997340082800375382638855391717013723161569151039318609644826578296301393951962991187793704834741071508952118481150122544872652164443908937931262803751783656347875559819122990627129671511213141967234580941813581724561506534238170329014487011127474045023710570893995468533517170227334812431353181699914460100892297812893285586524788480102489476838534232404027965114364846605351782431402317383212365730662489089781492080202238946356247453840382290250908806569288734621764481701260842478713021856758625484893180199907143776166153025037911149576282622619327950454946043277634763986348629945838147471211892116114375020516639864206513716834959219877177513660291916187330873799087852856089723609665817444577430078999523517108829617035133033845067512718122278000221956462072202340720900548021877677296689768245930274294065197648111258065764290695759242197767155875441519773583341011869485688942512482931496689221387583804593076749529902268957199755070637229605768041407358869100331385407850749456127034970071702294707499635197266868878198870663751554531347828517117692040499483235911348044495332759480024804523472862803405651212082831453386053232116667635203209246215590089845170232586257653204114771933509987136608764328679176320798891271093899228034059368948380316223913090299078440937656586047162943959045222768912041693838922419852005229840722238940991510751749518655257452018794130548372501489040342514184934776442366791870169335482184175495373439864945633013888014896706685887592423613704088689958480983649749763696168004081490963555485795894982986807570215832297376584579254904665146655883268108019214347625198362549920844046335913590306961435917888720318922878236417344199003823657916455945282837918709303861277606749000084279760669134418108804626704598719432296370469166239525975156296053244770012327113744649396655078976764599918143804707654222236920546898977161187757658966236674963231041771583379866434485671500017843601133990194954880242411432757024191103853853179120924734337239623238885214722139976129110500512865914662740102319423184415497602527252431296482935999510907423580257749179085226017390559399132114621131165740020403013458609604726600668264333280816417456485477125044790152939904414405802117946044500533204960840949471980262939620640025939533257877627834743926681569526230291756649040630797744387952058539749845859650529992939872456904734783057310677534320890850875376262691462580465758344131767973769104715624023394699406185084168393196241935507516987400064818266851138273667260756318318348529791078857566984504207427486754547059314317047431395195170076001843235383449033660452831368631495127212255438305369879935327529556728262262925005340207715302607307939694272751177109043321388870491039470868897905589070374013170901676657757538139405015234965014582637388267529517191468682255646480886805878848997870807615384317334394165232711574549519173310467022098941721455914504157199327623947046044814862173066363732053677276946631688015707168751373376877831489466536624436873381674707485305550019076403012616384853575627599105197978029419621391706801717717070250948438599006665914534922289440029666543585128407557986566975701728399749871592582574549392660183089521946820522788963554465396190670583256793880609832153617458224825391768586715322145666211375951238756244080662435743987220744798312329364816866211505921921374786845763009931814070961170532213652453865333585847532168121950653932335643393935677198607181179042890704232063858689464115801363425446635670709108534062513855474278571167568357241058834869729217475768493847256918713129530962434205798863666268557504626431624354580779620467979913930577288706038116253080890215165830333938471992842791874197180121241759507331673154449684984986213855490598552323956687432241025172775949104953466536083023873445058877052882479441412799760138129411879726591889027836416679849343477424357961280561749763698018037967076470920903294324888224703821530372062699635282849058826232472619762204982732133287880257340806225191855087601578451008894501530674109225323944858767427026126180125114624696118678923615746462612971390073358130293276429671381550302314765883340684994995834830898873449993191866345639085939235541165613623987056739645485998679801218683349913155827377937142301275339020923030665253586095559050686509897030026261835325343707717213393393843536214434374308313700938002581623419013116403467732486787743343268395925290863680264627745787286634081645999048672838870456812488300864539482413987192058931623198838951174082813342205838354386688447756185743628146348778952021307268221169895039134434083196814772113638039348591709438303020005425671546041889250114601741496647642035007627588881409152606322322711689357749157055083688245609441633224620613282256872021223207266943241330508041221153019432926236103475445049734974561668372095374449741845269369099147717740438689016623465395684419516934873147030879529165856509034696211964704128110602564921873416621717782803782713508231391762054731147234094636605380144748647698256214974972757046382521928809358139930747609969742184968804424523803462120275457661235363361776033195976801129408841102233180016343354562396593123652943632426478969253095622512065910691224254077787533443230075747441752737104461987596806726037735116737242551028628194836802526230570180395718451756102004244876415578462496377096500357493021263456730735874682294620023453414242580370441290750835309476897529111770484646871827978133807347474121942365284923284576596277557108211223319466951826366855330806124462426040571940273416992630570207432507152071652097257220113913503566522633032548093225101002557742514239899726275091047655807232625257926191184451142273096085671953883740342522328055599494510099749654618923269359198362801542870786630165674470526299290864690398168207623032508739889089041537540284007864771190741273025365697349383679797686918851130392734947149770460497220496442925630756190516272890091335314514640229525529172842947708891370472676863672799819033925729339114724911068610127518824041066775345649689358487145657077749956469355424320652736878080414715929699014509244668697998981034566353880886323604123731834264017728391134648676591662270913962640425807875470454609079414190977665464781798651860495419108003881717107523410281123794452989882663763632821964478686596402225118900398993391516275972541112643449400982359987407123870149254836576446942690105963725428176059709438813564661683668671281658947489328354466631917717333065312982144974469420407193248960895645067851458114464423022210113973579634351256566826886583789069913624216950315533232114655779929531060581692273062175294538888070412044041149238075772480013796396858851422878154159443369142391305264189698388489321276819803147535064929117047197822736266071360502960092618487515770994928091944630781793956055760887807608812028161026965591316650764625780393892177888703515655348693932350347156434424914525159744841715651765160974557772290082178832249857381675771464292399822611413684792632665388806458634385416452482632986657581191493646320514831478742905991957115477505422448405866020692288093752923602506064002378453646106007347825122643862367147018837658720410422921606702834840602078074179134018488119137439338330124292620880870459572685104334100710901938407444339476571314018100931958200134921967792934726509834513712613715466637712771254405346492096333169960610631667636411252549885946228593772744047725565240664253703138991008292693059726152851994314900680659034163253430930492244033501224040179336623925498959612762989956489281818640907924369017474631497066570206451505810054308964230479717844680805103539909492668995121418162044842603521752979355930898495373664215439154155401384539167241537247062842674991426961280343892052286858290505629516982533468825487432970754694420245673330829405739956440172734197052839669678935379013649974574108609814558823612084357030105630850512071018979725568753722494217833963883737996996953846766122619850973947627005763205655358956737693952888918468509240810991392823001046039267645671098135746724481373688706921372989441562498154859494321880463373788466952386272478082955709660691672151421416956472738803430401616573269095975983714110952262455072540900055543125614734165913382442123368044125576287268764322203721567434323745092685579453102135691802316569194385741156232240100773582213199461413458523921632793394725671165882311156645188377011489672747878939657387663575928853214166059780092491401383634717459030203409152476369086938796641184878421593981404641549276606300754977730292010783394159148240562666553760745146514151653082579274738929487501827253285863609174737379961834272160215490754237721149475397099313593098962792387784927427260118235333323321054628381613932645511804300950101592224308138414012962440593073981501934951636711223814770251420916285575485859823812994181808705917310724366784551202935806203562491404108181858037401251845252173895984122362832371012396048613409784700434142004117004198356681744955186784597785534918346507121670070110913759862146772569781362394814067765068361337134024051276811489831080425696323246651864292780634464675592918085825756349663629276199052208931203116050025164396617033701989329519641761762475505520752529185996482853962153740485022575800260566840772634678054372934725182729129475809553651414497260159264723793712281919633764375921404960123512224212492775441348988676696825226209784748355593700584005771520087190747080714081344383192869858607997033978254574498342026908989180884389776799151877965756316927801888407634397388396354593573380403988296228162592312654243417236792025911313710696669070938395066326318297730018754940361251250479531704206686521507121371027860269831616955395256746094839179342111305815742874046593502814811205153828111845583799556558337214513003735334591410491314304501249904514757537287335424589192145653499973890925673208785119856765015872094101067858596565674952158470027969289657304695402383420671088802581610633112834478296765457609581792244545796390048576317632314238462016625737996001937213837534076596436726583682992420716912007261789130808211102642908924262013752863554926401519077624972132950812394462409108499711341048529907651181994440728707706535389804868449814879963489820366077105042602700188108566837065317806269589055589605753452057250880600612908012305159617549101266326179866506146018546878488289296213615491658192307095326890766545398293410425251724852092938303583376516624819877401677422979939802240222666135240033988117040029442737427442259408376374838534119070633227522718745766643269671987635434337329728623063003956928604257730075598262230304136575687602511219997442558575061832302395326545205212025855911289130009499633230143453453895587769547187557386056305719471294128390308662353655947958496424310267924917289706104695801808239764673783552615331325485753395880947905462105202486203662205253744570880823026446021330283402711987304084961191263990753795682850524791795437246037738103006994365395840826888195784887581030634624338843283526025293606646957624283530324157506337098692015021388928581505820336282407737569328787185920518113642931104498537851484377923667373221142365536082860989715088918007542549121084176685839069155606484216699820913800068886384583471548008156953894758390593228802514716955972933651464113415632559980751658480337139887757307988921805752021054016618705158716679916171879484375565671757693797820258148562568055763933742482317582546794084573484601948080929894631783710275781759899885109909038965282541650993389840256618845043339938436403952800466355685645361667161104395634006283840119911436846245261194835489270919354356179803111856033834620200742390717215981857400260429382986316629198530347272042212551044390033927062702952968156645643665693632370924921586566929987220226631483598553838494991210810246164863009007927615621852238468102461180756785852564234214754775728771879845347184030515232020051489744582291237369520769768384461815693678934780967901059778952784683470364791292511330877827729657995354600643897481753204650339704423331121205660755662762224242419011881210144960423163653043337514396571060824394388116825832606434297792619585664588122838073685160908261321718424027682303260418780856299802296609750615496322048914520696260817802171739487306245656319009236530785009582814904283589070462693036753504669019495105202527156524047360985661214135813703966976416034430783174113484934374675588423833166494009116685896972424215563399214555770424383688263991106706683385496680034008452721350819281286574351012507436314388665282422496426688366047124854614668443620980534792733666428287310290263852246308691005689893001096419707200119102708867138980655907345816338246316687336562095203090716261246050716801606852394090811460540057614642156610249339415224184951405865681675119858170298093843500778807354983824348468484339556524565456824135589624199745242325033218116460630927222908843377437891325716847618451372159773400869472105315254249982722967520989176973374346790293638096961308873456019951166312656762322252740902374526232223702641615970304607495349025927284207511902881664751537401768117741102765323618004580338632488809127832740591556544175838093664801285529574602329582228481686311958042181500108840602752137518768382822561525515771275503141167043841474529931450749356903349129867991265049916763077162263422362795533676681133613104865198625699718525821618430206081294026346680532463241074056046613650440505526154828470955329000197471921243018917902331290247971375243209014575961866000160244445972517142920207097341238038206603449644774494369719577351098794545579067484970212758276911883025357189640216803733697564853314935117321663963629234460838034091531230569379947219110369635249087097625260212975342803604640727485714518073990777081479086788966513303691982036183415060109755977999657558949095956959157658278329030201915146452129199441793251137391783201820628905086016053935211038694106408107583799400862133719093042782108641461120556923929801337079917866833173846995088804750162993305583356844318335725774120334287656327601243293651712525170314869047647440626675738425463116594957369430376429376643750463796505792280218517478609465392311346921945825973187144073376454553551396380512385124224573607355440522828624738556474676486746480001723935206130547210012331611589139446900617887933474006204743498941707248439213000146097007778526907730835077594705815832603563798107866384210239181033763378047357705714073103423199933218710161153086278328724415356163127983952462820804720944433537558801138711070588715650146820724390076247864969463872562142524630997471705193439527906515106705373995315372372134446428755965815862447944403806123558139154555801446429899136862283960491564449703934119311286830354987290796964525260467403479039378784835807496883791974873222371952298556614843196847796101077762033498866454536467024873718077570487217100203653036455959082616652332621317186228521082236717510677717903014072963689437850516996659915395702747193393862009706859646104447906082687739940326822909754852104952230894558523282668098956772475015151794710165900863857950420480106183187559466725542268843130878910926446368036771610475318200267402806701784095910395642048508387035368810943298387154221329527228096588998627581245146810414187289737332377326775384880747925791717250400502574970071469786542815936728157520538642415007134739560442442062047367475309500058634875940866433773418429340087243103674497328918030693944710034458004966720226911316587989996232921601375226604910896293209002202457752226501868766411844678742719232920432094222894273728756410140386088853829758361166836711270426322337415368207759051082873435643089212331600448786901036104022790847185869919974569280454410782346838813396789086449462204910515892143788814893203446628622396022395892613904172735413445861373946151933979904033168720306094635036428664749242475974910202306740803970600400540300147178231865670870037820673881082947576928113740679194374518686767872966646998733431922674872565975411857871908079601019447491702450723776559001343812111469442035731205071865606532667901309464515547955812827252043639087302226991028272049097296381611675855152064622593735402078602503967821214420365393566095397038433867870491483080825502590552384089825995895441892654121461072714793225643168958355590573216644962946655079627734446196365218057931066928370210986223962754740841275173618188390193420290928982036169937077499718781244695612205570418507700436188113026641743542945470696671745653920365753138160522791359481258846009089862765763080841460636149477815005723446860701996892874359119154346729239935834104008054970840241372252944863503390756228340697803435788604663061800344085898219658443908030927624635557246532052484135496197131307651180647050058692739458193331329570548372175932769948815167601636448676109184553957315168809720002940075506398009275932899945206181045981878067973103239093749985634327633565957028824379642505929495924684924824012315994645924977603063048905979248587232484990066070211409619557417268486932714382829860322436058807204375543717862767961206377323654411447862704358516886256516013791044516160068602293171152044169036821156547304971656038428546877978451268655668204289033968213200577600012530463964985852824536823114076310792444080712764370616570108284592496585683372463956292751928387396706270380363351789753149104265138220160512114619278495745115294837385580027810642618334393838105402719731810757608477222749798188368059245149208297599398396368625282253730276417877540251315552744675854347689055163577671310022470000507828123896077975006318988052536820017264600391937684056289698267564675891206486103709593103407135397339638262751666628661210556491454197576151141140831369595259906633845952532893359797858072912362128300367604776666077664038360713857369936644742991803028098935074718532781866744509037897433933520038949123466427096447664611720045664860558020366001953527926446222006293708884511740182912429395239879016404068782222517338710890101500304342489230182545300886456217654963373844215335589281829694686419029815329359231622689694462724650804938813631869854943434819973104349535724832730495996817187759305723663422680089107138142266388710640642140200311864987430229434692494436077780417737316699698983223223712794015935727397323271684973090735665417392353610886687360480908855612280132547866639781460558817774754381653460930354737401839132277939291987655201756145468949557302453250722081084298601904387838099278187161787625043095434344518622049643438169363166777436970834704984727102903326915667564272795298808270016421889508894536440286548694149980683108799718916558893838623176145914161650514385308936160889686297276566909464416990661710773759342606952431507346378327730749394949371295625129476822475780861275850585287364589816756065248923507273081487861260005221412974281053459193451907695904466609040533779352972641587457373693389820188410716257642030257333261300244818589743113980219291992362637905366085645840267218039010624894807636049797914483494627286830856809058531933332343897532058431995959057027530794468082364971420209521516749105631350908312339018821566267939228747317242657212583895589195429579564774404021229868811824337342601153813956560221227846504035006503763093902972406549722842234319241752750090043566772093995402858791880603987164415277828170795191231012153283190037773589650738668846024054926962560721268978824055236709244392529439661846509435333537318838215900446894588655794622588012849643406760853549012826132512274925012529959919544382863041460316480814935679329524557760488388838812857761346184167235126913308132124837025908618583365925860010034932330522009056390557814254866080938562714720274241395509199446619899955741179126462427037304792347990917629119469038889352765545532682709690410302499228599804378980644631165324205270584570004700259450051372314947435180633920019288425192814502953983470172810308421688826283219471602727123418596404582494762896171334601320896494946981140323405788736206284299781175665250011858819096058546109088583619929796370312168158347826321579106969956462520866029516001609066163710749677340696565901202926271160743190651749177616789469547612326293628411310120963930851923158503115371229894546609527891621107442620516111844133569519219675972779705824804522761106259509153474891746688596095503200698554035317780190132982894611927436191459452646200739333143971536228968429355940905184447891919347739412356755765383979598999074128196268172048877505374354207441150896410996251841352665655388861120407419024999478146670056195829719683129782776623658510645195617534652477831615724790995156061697174841851288430221570626445162101534133006867207996335583159401046354382832628026808360028746709046307363918310104892714505716322545459520242582261581845179053920007498589451084442874071141899885056539292225959374463631920479522490313360108709803948577150582470511368599353232642775827943532411362003894657249609125847211725388844880293423703439065240648475765670023973756767290084411617441640796730254148472580507090579092023514168254682873965449861434874428000798105398351300894505949079551700449434738087061772957262384851990399130808616830321892216116018478975765785818017798183995846529149222384841330862580729800268997788697549923570830130285666184245470646776857982538377834928267298488070691902985248092012425031914605455933971636967575756491358192316558093936864400635720193902778562808897154817646853424377327893937475310378472584501238273950909416970069722247629021800345922642420104043836229555348685783377978996693029126417423309155642402099837038666766931831505694596634152890671098496499814511447636429407360592034112216215804193662378801997282158165124163805414112552523695240047807715531022697843785651003467357696988484844344227100681543610536582757670325841755058022806922560043420194105336252158006192618241010495590731546398747415230572482944174080712921241290011437428038397912932457212410539120565205496989263553057881037725137129234888825507803910989229549841413123161359512143773264604573858327163240985839657839908567745939796410382679381333303538497034609874606959653292726523207796652147038293734459932338510075966398357870758350088871316276479013688024738413759228426029505527190650583345034095620209864098252879157519778514790428643404931579724126450637376540550182760806065388173658441527836303232247076939908504278340288506390660047444894385630757312975526425390587066820312785159876682584143923496562232260907178857715830593573697003794773438036818242587689239849867747963086172652919688294232142809562106877276471554544687379386864453202041952541962649459103025191346434038865385103827584916873075228398218448597001202897252091960163994302604929790414282922640465655849086711477729487481810619281561620834297490492879106169518679988559652311055787309282937149683583162274664791802307919477012491433341179940199726137350813063402420551825169028332784108993989742638730666133568493177113218481596466953278209765183267054483246518180760501853039265927138892078183789183104696141327695515717854198898804105727555390749305001937999027354461188584706466900693388784723669228897232984215220100855556502817133157177971642343476090069964673952632504769312871634553527365917442957554785556394559095480315816512692474706476370672718912552763414612763944754430345714433172074003906020632610902386433685067156077161940574386609034784022842067715194720060434320623346062882844785127599913563566674161346112333577935613142024408387003071937586428024815167993050913359937377800344657620889734012941500413124895320954303384885087816676112336056303890956262741997223408337502524513879933063745962538853772737919541115803677526024694413302739387624536987762121805838555787422386529586904115956003286878079670593350500485432839200147054692521984090966455862621325887788788781045037311417340308852703676372044766112203549456227359833896388206834156591799276332607023187928405111305071711400163387600414722867828666070772253441140336231037527922342692882285785954865392366785219346055792330366257750123297820444114862853587076682267798873926742945811960892482912881502535981219044058323618856350407185787398178218438161288640639916562460289389519437413610167717201899381426477753124558754768696066902956476743645520336709689238127616712246783422669897977838435194557793168854114955310800978918804601619718418050953964123112256509201038375747142083421032112727531167118865785043750026901627410423194810652541662280798823699130782337663641675963344102080775339212388770681780540424015533399934350440638272095148515395612316111134500257275634621798945046688268853423945799573440046128399302937835294213886997450386587499541710720405972291311444040605284200289465512560599461538085141839384812300419416261952678967696836451251882510223813666953572107968028460792561800056377837925357557545312506109652012836617989444361622972354164923539706876901210090995817911727592031893579079856247635362076482188813530988302878112249723520827703953687248377701129695233809129121019097796247111072711160103456498553867060570871746642997748462704153445974647131789201257657290660225103974048396626371990047672776169827375372277720223600612429270872531363165604352969898829770904144549067604378553433406290516676452858588827967571583552920490102576047678409806114729148824912545320299079303971928331503757839051113672138795690488698211885498054542650802400146045444677067299161449775377092463321560900857645918364821928692829785523306566359152019488777584431318137216404118198383680005503840558088988410189114219038957101197501368159912305495618954946305139013953847041823355006815197733986363933581972599507354997863145088584642011648733024146372992872237969186532312960080858194825259947185140811039136991514770209211777347417510234250758636622390441296787940623522122596085681939421990235537398325930265948680633536326670887193922907422935500009344201544727788702912450950790666183094626228866111269127918112221761924330774673990016031291704718295152509234807637307415008075225486138556327227279519726789785214910206080978759007761335183783684922577761747586484048913152336370060728266263135893503129384289043452585844648648530899177310559580515730048784279867579806148211488841845352994360409178504057880154804077636974629117369308939900623897990532641496899760369594377463693233366224513683974290014604914514919440603304392855390781097680444643860620926589157192550160916102984128618906971565065202661899799691896112344377102671838563048381383711958155577813627349963520364705691019012448568301495585537833720387814105564101107536057219851046543038653863566873258444524747505642243077343975638043093715925558124254554494192194033696660676838076763235538832532614013970214900565070151383912483870622896675292130339863213459264282305811561603282787647486497311593574692121684897677115097301625309369726874834366498051039776674336808832521804410617087852836127385873699007952454738879385010132007950679736436632302952187610518402782291873484876933675330128602751111979987889426746069931150516324171191266295097366877383362212633044114207247358725924061131644451714236019590063726461109604463151136280669635383314570132791807215896332597179799898503528056584403140016961645511784597745555521218915408886992019724581951137422534524884126887175891607387073131596120109932310197190396714804660536828028437124637430683047111720577581183616421532209980000218840358412607280536583742342870633925254781154835511165545551623178021684138574028108565523205491672664687902710793663353396894329677030766151345701121283991389699975492987644680788112432260800004535842009689289244348675604786313779331500213764746771343147366607227174743573179552818702970608512464251182458316954641968644616662531229835354845804337224069616498555843129817871940529615808830700417468766074378767527210009638801604877082680017661976405906248122246959461581764406537789747762916577649576452445555346659922079769639572498732684159860980209141079284277558781265394614025459528757381796323557005832508188815130738016251672868834153861784315409476009437997046701365979475042781475449375667536700680419117336598029171511727539175629107891058163801665086832233929418404460086981389230207968863003347300158226346369717183022774657216044515835933382654350611190969029239844614200193501525352001654624229052514433627406676628662620831501224282580795660786219462262379127696173530111129522111694533125355495208700352825638715205700885509172097472113483989375806507852133607615569441178053231194591403457973473892164786356697974744278315809095362852764339409421478385132495211617432657232483398493846873490650532002409209015842760302935839254786655889861582046286369497808286995301962636722073873034675791083514653956175980444139425170958661975180709907753738693583136589262656531752373852348219532402080177729319720548555535087614818129792820885618986610039970373670579521773174643466120927349586884945259977143195063019572512455673917031979894687370126720317174610427491950036661169616286396837621948017683709429525037271456260978016916849626964101226533588730553522275703159541126063738157661410321856791906138843223649854425553240454005726506701979379232321984735421854383336226189184062852671302479321519662007941919132908261194790763787421821592418175242787925789944489952511873236707639811240849474054958461669544805289581139594131656068481579678950318010226426504947123174916836384790036909658013338297568752107354231116729281241161216512549360452108298690100693606935702309282051588640565517417973161529167812006442939598469850909734278521434128113914764543016909433456067662139431746588254834654997464151794621702540098662531334316384755549352494661244778699740977690267457279223280450723008749966908065460752665136895687036712273684755228531610485646973141804357707050574627487250103398195963605782850588473858090972329887892710265381121514179456562367085641414251185495596665824006393417481088470931320980115547894252684445139138023864391393355821667735935038054958100091702151772928613091345028816023990606267124016860425339367698763347563095493707833568592632704165991312112432053191646667023217384643371215950448480204289729217890170563622635911187078035900665996399409152620243394926043277704081655976647002927538610742884098991288047342436922894213896720797450178426584976718339150386037611846353568821221518902579510893737041643974905396998348056686676539249922909055114054586824227517590364147458956702818530039612768173317928444342080401258932900835267996036055542331585337653126459492054756681500945096818649315699887249386475674769008512118142154366849969124518985225740107191120273914239667550859844754177488506255109934192594473931022285202092656548241486367939041530752807171538238730533597841153341335939806059110809147007621438439065773299742592863353258600526997999821735225829289828897777538947609776193287150865248386003730909523192154144513918485964035893841397413888755924376623573794320732062753025763798989224910520755098817990514124832948656630946490593501468967192739490237427477454102245503203993702257242630192388110240730843189656353820312292435454363246736958889638233614560867002927007878658423183716076389448739446265020889703013621780643505357022659683825978778670263358561489891814190586201137994885581482982608373462513145233527628917782937752729408633867834455234757346089103211505267505477589581071981811493150854352618222388330287660692947979394739299698236320984752798026526730756924157072930491662142412144823756872670160993095480153848489674452159243980853392662381652833119790403812360536203934930697109648792942184316675498379937775630835210180893207834193976401814269645456579229954728189362559488604912059813425188128037621236687134417036963193877426303420574857990447283195146205509049486940694094004639154855692532535464644117569229512775136979409932178089460571282212485244685726505130806200524349531348394744611109895673372453757453669699501440888583358814598942086550127713033580317836471401480075673446694959569280300832759953684996371366206914423612413470632440910157194916223021351515241518706204253295301055163837714150633725594830596193131550022416597417702004649856471412861205795619114845481050357624287479099323903730133192811762719037702469061378335529325512584849425353295889625236333237715756971997425613727947443450378800208823095166533620742706826807141117915772979696743311554412040132316374983207483812448055954402217005912443809202256351798541736443271274971476832141680256251487007500929254564216456906697805396273468003443334608215270617820087855832906000561851515402278405780915876669836110787413437224809403921708698288712770128140917353621436823518586683452344296575866867732903265217068161890678150693065132352432390394750774693934587452294423683983676196273989848215838070346923868746143311581128671960679730993026215960448864208163767859454659579250790604631507407076200908322501775958322835556537579302432955545776244515140279294924169628258042309353705268563050343624260169113866489263786474448573997201915125945014668201070069824055383767442456847420088729934688844704010694633877575009685772253174719179569456185992407894578223660905334096804912746230375974168698724597747323810370152455800575941493956947136864910181166085615175533726957377710892181232461537793435182689496828950837579776127777635434744665993087974272775819536005809059264810218775669982709924106616015125442453482923652127079568713110773196650753151871434065247556340171793044910214618442384033898267958223673615065118999176944968712347034074083827725065597053051982938396639381281123138944564255427801894141905630792869185241744181376403100481843011001656503029779972225482638798156276339175994017910615817699085348385371597171998939556342986428958712675876838399101668085590405177848038026227238835825147666961271023022805590597104928507101283042357196831164876815631645570931965749508138785512820291142970966698852637005321362196093856267252263592709331104360605375866498701216692992233568763907875098474402308234981051870489988787140781693474499485439308038407288519157942965721217945365366360318551302943880978231753980038321491322104505858328094533288524910661475188232396403135993122606929041607290665276817150033628673015508016850288488330289628482770777346980449582486988173116303207013292003194164405472948200859038834352895368629604060542194724539767346171660177318529236666850884025329015049428794661288169842843958204718059660858884528649566813567010821402717924464998131466511742170394004888808906294371723925939818457286936215190894397744383041854353990829362436495832807469573469788098761105749572625957596724860358758218256695236441107862216302745268037947793842452114082244787006810759597436963864610703764187421814026752948671419098132440204891417380847804138369827974789543376381945319420329669812186977812559097464503303192259661897237062849406160310227587362834866395839480099416433214205478003008611283627544382015200635363468941051782561122407467232843580556107829877393750974184217213300951031916757439775991216265832186219700608835099878170798865156399108698288743284769617070557202186275909398937218167528484476400347280393352621755987465799086317770366547855130574670771080164679796241586831147578659348698408445009485851124680160495446359842762631622088269738799145997982351519708814003852621668605600112964035894708904662970709401746561191788596429741777673886652626169702217894708981408157638365255773589215043152037149749576075507779597520510735292477522972994437691954389456318532031456445179699990078452084897728221450561767927720870781446648819800936992117732185010933423937508911015461338261831189440049676967345046509949958863577218507945790154275911400363510039334798649340701327146949724368629763193069958621730570412719856527236822392468300015655103009855473724235792403297032130573418446048676875726791642789962996847388325362456128892733864999255327269149203558530736834966809559775949873355476526219619618989620882279157734746504661627948304464178134798872666754170887897005247268790001515507582033318744312948445834443773901465577247282541897281961954848084371874088833241743402069864793570051450074758757600130789512946293646661681854679277760689963335164484368686405768014413598276223147497233660942240861729979042914426802356012957353094939209372895353064578194770852673538733879464113760493123914461077665858845450903935598518341714944918059366272183230458679808810753857759249775129378633418616698019576775299887107565534406894976554651434924605886726698775997543706220130847354373560266090641778904547121641082208868333464095433290416894807715209346677517777350776778272292489830956294407217919555417853772030719429003576151800990703156976616136227672776093058064295192611974040930949844178041893093216384988869370913154711761021885498827299943148298070937845739850938854007250706689617814283674504094975139278833748973295730810117856010413192034530752094091917613907604050437960353302743840258907334463586273614368395668832838821893513483689276835288532788584454396280744817070730710030153189370227448971090925213042359199270004858388743518368461220371577789759212091616291635600395764136997849992364987504999869623150037719772674454677500402282145605085690317814630967644430066691401833171847200546891067817544618720502054968004245918126830151048207058010522272668716294020377922463506767267418518007877140737065144962852412105755943020830351818844170378107494413870212777654138044295068369120631610845643200937446063689953396485064905806306618334795184881195033684178012224758903476554271168168825043395413886484613205917605436361538896675795264847718134975651479159145979382860597023191158283831746646556469966866054388179380430946404946317773595408416688352906072923444312880889963677950616105094309088240166718838323062998280342431709076401923977076797006247979867435325024322471263540802049214563862484976912269246948939103542255694635556531330676516817398458663248788543208041084983773618287236763497966181633566982575925380298170684514558373281570570607111067181317600145325270975886303168963486969123254064880571656526163364641997028397587661294260903429598034265870240537360793893656740028989801525542222593301571090430652637773390202354864713466170492665902462351383546796745775837974048644163231766193051385013742331418591949883656227865745760405918348824477051110758936454507905773069347486396124621548565504747355518827664728237930000978091211563611590319979376242711177333381208954030716409710396346711713441103792165739459159465365254635757048064668843502302932831658760618572913260006497630299878731919632031206137538045040204282860516374470648287115363645288492742453348144644808286203480067397130825207455395238244926741406996195302500681465618521412294173432578211562536976815521620378505408052526245898505890983575836028956670660652354274998886212331581760799869476459423602955896123094529578236369968331296750204086262061996257578053160661327736957300871993475832987482743032317113598697646388952345403111899832673639440725881905493183706706103336601439865731411373999296379499617587034797862623830678311090396017918514412386618663930902446921955777037481867527999850917937548547349971782049528460712844245432364337855923154369362874940395261297730166036181817566743124946402709491279249034167013227191192209235313096624995997115128114497559338284904616981668524083165232220753415088971319925817300333319870026934630393436074289618615361594067695631602363626258629360875811947791529604703243662493467756134213288248660868331630661006822272700193898692849718476867989919122426201039876303824011453012380791448037997820698304265095430330080424383195222964517662533264854447957275675614274984376063577145023587287738969212722420895717021312082572855482916126392138450225811442082812075943127891352000924814711605989163720419987189921285910766960306288073737630901723528431084429504075912340970714307204728615657364185875336013714022852826113201033271496033192733595628581444248198250484459572124380816566748757882887093765384830455837682241684867991845158577696688355884515513890555130056443959293141801822395093572891400527909143690029303657959465137529820491575580484345190914143196990783784611753036514571420430508845466677499370090593526647233374732357857498868659649799769076895851722796740353928969008607638704040634742713451671714542471922344511096689256247443775433865054838067167946591415894895667324134950656417080772590868623225426288442734395195225631010053987940519316923872790495955092621189531649908413745788937263748017623429455884005075753738515909423021599797638209314705447641293060680811356625449188205289758123862597095411197653672751834950855509757865942984786878981165304437593395071877598669515639020724448024261773142007301308398180626541277018402894270208508652487781955499093681008872084436609583078073597128368753236770991384378330478984182727411707463397444023531051560738788375540974404291358104748709418045657727356808340335789570127154086605603191143914143603162080651625559776751091392622607366717082556884072496132221883665337442712380151734955444446117344375522977361391776538131629300129442933304043559283125029632664616853826897558838270463018371134191361402564586288088700007460236263264571915021703912943631586713031079993801388877838698229774405210695482107450350357750743263050397839210154884567696256253224542660838391925692209954222916775877269021771866104674269123361990660064627898329329270586121741655039432630701909788849250137541144169912763194681455243081765735352498559871345750636156339506846671138593924161537205518623366746911044196429389695109657810493688878642040436309079357211692668543974410438125342604263564400203183675561977255479439957363469156298227123359399084864993706714190382742153423379555450332423157747454528155138602400875476838975129733851354026217492733378652430461303153549294870820742716180475845483789362526017208051703152614136156295833754722333480335589805740532199791897135221704050731934909862704189641077053907979936571436610069354292931606145638741579777003513164462997202147685971530239766889712911130972455320537867114095720056702496411344943247325809908895063538968865640962036773971459754910323997508870463959329062990909205233269002565253233398544907969295564037658246943636443163142519874382135572664697019248611719827973541501333385419279721083375214010808595361822229614000369877648309644589636273905866607703850939942475940805349847197436397250381752554715855510303944568763309465656623499302583940364574887161415718061155991972224044223054500888203991471946946557491696276401826649059467301841865645787961564231984282795386546216276395027384957121598852831194794989937436203193617232015043501545648287380354026043853628990500452167601097361245910416361787312484174037861731951126064588421851326279843083667642959396066249498155146169698103618481996414998373161936021411582906668401902390063951724961198026010869309113495698017353170826573436823864443830683078357161065779651786139288841627214294383526579752787155144139106601661619873070479802893483108309381981889117154030230639076807612225804189773838793716835223634396962940307130493775426311286987790994493338471228241387928061961173134765520084037590515049123111346292324455784888398770748533670581468195990653979849994332546050026714968203121635841700585562156507361495846630677161666578551095556682933749692596708719872915489524769677790902931840081643359634221264179699862207861815651317555364456640349173866442973410031936203084483899596163397241837656031824779446567202037334764534928376742309944744423901176078690905462777697531216305342751675954340600549698845369684429105100956418096185979412185405026020149521236650136526367847682022748614856356153944949356211722264867441293954363570500909335134377835493932029434324389914032279805636750545862849147230124054926973741996682391763197477408775955990075184825592795843479294156589552282259883924856163324687998873762617827840628342755656836783892600478701767432152842013911889074892494795775617709410749434682182401130833035243996203453380028468392270878839153207866290704813900772198276244525157059638271453981871779850954848364297319120883509193691900425150916485158898476838805065828756772207194646171228810087420490855374278448694795247982962405074599539944496411362134880386571718121810589591875428518562762304581713676422159927216209840560486145336516288445662997606650363640955749114107531339394375933199192239043863835389480993896672210756232726442425465874360024763047850203609350698567204989165483896589041996733357286884005859547817678927342396444053355579214924743826656226936823678937761799023708472489365621276512806295574167385677111977178918973077979462599844807617151785297299924607232078876205938520931615459352717851914451742222301560607366316367310561452903094909740186969888863163316429982562674902438130834631338559410997374306455661671146213808590189639214278779450076143958655902954658914831244060336375916617468391377655717490979350801223296740334124179589207664166083814588867551430437978584850906197781040456541631000589842182629268623311926088286622220026200882632004594043440198031583114057870424150380096650610160075639052766172025057354170658536672407006872159731921840231307292826531209670304613742691947018597554009633625592818075905401601705502376870626429643940108876812773688442368871099751536218605576372205630891870837721462523379797097508974923781920027825748327929741302005381225134521800185806701131228214321799703463906495496782928920529040574819524377690492559639949339385400652809120832882355250380064028558539238959041391221280406925915773721282322942468702184644398041039840153467430033220764968349019348131076121588137659189286912803192483598580939564033810713979484845427241755081711299112927893929045794279744052056780960358031456917423600949957396342517244812597062843492628669362258203956613807645519675375702539031401129742140607818931938892086063921176299159079163789725890399821196420884865582925755775175720058714887598775322431936171862147484092464089620344960219946976949083280552833626984519204473583894055213679228137420980994496249154987453012256930418275626185957680857153256252197890857670808310326249281607540841228472694858972174540613811803239955614858306821347525505725444884087723066296961985191304023720177659475459206593547389447399556023937279145744755605886476141502167892381075056792587530397113389740205973385034937621612425792257904877784493858496846018891280086060135820468410935015365782753721067422237775310198155216763889913220807443287438988801247436959323357907645684520308606475832468631725160918023626192392038093065320750868267015769981807607684806648283805487651431086219057149385830116841795497316531237746474185097692343704614282643319134427949603711927857372874432136569874156873437715518678656194430832610761557407356391747335080270361625300860713068120254812301014202360367510141848902128348030286648256564105430276419819009424139672433188753586700583786597370246309115023954437244651734341863842028421916291210470296763712675420201091617012538828849177045372563078383396017554393939294856812076158797757182896657364762561340686888961656401831045687780682950185239023173961473700070437776215087003090812534610327841990355881887910625408306469958185771948548366008672382854441404136943681838979069509072679410381088872206478999212645210958464996599070589366991463157459897048287211315553986878709883994268501311975858899486562706823533331486000589527874372405796777820789732126598197882330701381797864406335856553888499278083903552250904316683671424698590031363836145342664028689232856539806185650355201953052486024731736416921706257777264847114876926752118546480205941236355312481331497651470827987527857331123163785615815634848882919208339466265685660752903087823099575704075894843024159745234691364985797261951814050918433371451095447265729994420026500135711302452562646615997689914004894480996813786386469515250632702441085667863814592509786606024124098607235474454553458828959150871823807433320126575894587579142865079766081023191995199347317222047111127804039009461004067447734626282860818653163146212359084006867889766028324692709194297968698982847476289630121592826737796409412484927810909375419315820681847763519888471619085079834879729015862324870412892214067209992113667419182893019984895252331998945856628942711481172294757647233155664154143126503355129907102469394620849416549005178984769014574683715850532723531001786602538670046796288621617336411095812724124675830307877424066052088871180778031147259856126182677016599189837059316602604648137463600070085547201702264137915345560660449687991271086883846679672362290736722153080624386104327556663774812512937865295798020654845320566093248181969787455923497586035671547730439070990544571875955161387067395848487573295707157859327731724220302532683221592678343738200239232102076012792268840222515429195652462985876294316202326194166784495620729505566932669234586116698132504368841659782134332136107876192643517441686288778689398711330752513181722392533264275578968813366846766955202462008916011066736819295506358898214291206106247659268520101551031436099528282442775262489428217073928931307541629819354018772398873615199832910280236272876999854352280079096013653885720990574184183456572318691972206812140419862517048059162758512476177297026888793872280259350184952205466209309211910409168593553774648171493847342233923463362376450547400030205933887079972986671066058812349846808120627200167165840827252369023268167047152438835164038173275344368198600556979951604657884303360310483248583676733034257660633052278206434077744028298190487410234776056284361369232614672221917646204121713750307181775934879438663039482571068927047300725855830803030944411787303859471303659020142510434507593048250768903268055082127402082380570013416168283914550630791888529525956888789552350150273093950079120915307125504850783230118059172548818542473905925897170891944746663583667170413181337925362907875431206535548385821127447914106957389643723702281122601333438882273964687767157815179414325747090166746843609494942999681434861246180113088307891304171538165418674139548945635283813282230915731094876624396014994551550079158123620585050813520804280182595330691783485475123917882528799875427126162572937777316393038263641353369573776883088845348681018161717711092390358160824752837670902565300655355356763966471353561888680760672669773452435729139646902379140029911668865283440620680610882837913947030748200767786400117995274490437882580194718397876740159549086370418659474372876607416236657558783273322668957335436020570805318051711332598780243240906911369988516682213164727373326191078235522867836202674740615516880405843629932500689683721906287603343336813475145761664452769254298848979245456871372772019856917266841454095890890235286128553490141925213814792653339907025162111358676925699826988024022503026559538160233859975112418177432670925186970039842222324417140116105441414724784666323679499589335843511255013123022426677070040516708790840722746170238298363578948972780435779934682689666615570128220297585074481658794113361685237212852086421205483567802854658936217728306935681978476272913733241722089654754382807458639011544328275402689566267630045829679131710906006721178059895128583740341816497384772498284197272537591185377584949982858287890292604528787608149805278033488879939753942908281822948877045774993763903622467724935215694607772424486704414256789319453114417795465786293892956061007886104047724456204428847091676379125165033612519038645249628729568214738463765525684355392415118829894889781185071111645294103495589902730260274679909435516872544042808006905017491304899675390825405042712354086730853411755272430003914090957967720457636502733503246562944424297762902481498117441599916329902702162833812344400520918671914439369399864040023806520541740825651661433862965627565639025409519262104563672414459766868824846349915025222452717917433759758103678869572666761749862854885574476133040665471401692253723916032129200610379190573222283715975772757458420919245626176879957202954781431215777310307856980432641811553782047135106481407588830035171198338620745495871618114631419842052776471395286784409435537898119165553341859028196875884746453381281807915802189326565987138627519720562004737860293672106351399595398727342294286680234470788977902955855815588965976077059383121474942983885438007603371257102927915226870357083976048095814073860456892374048323491611539730670054913742555479998711890378978217015345594667750716055700450845463018505738323834734259474781744490611740554629549462487317922277270363488763324548958580155717143636481235643785806814842184179927869430656288735117245314825390771330225722692141131568344206576908333555885628826763875241745073435519797009637670712802465648658831736725413981263170925848255377850689970781681878533292751847757286226332528636046266848746633681540508853464384120348768195837524894940426765259715647959589406956039755424026340422873804125892371819845311838826500914682421286667622573926638055055895625143139714966496888360739345296648675506175630398299045636280589483757348037492305906296781359117054266462960620627880944672403316384732591734402580480458762741570538577561696393915763566437099206731751863916511102488434892310621636648894898145046882350149693894695672816587313879763993766061547240004806418963024735584221902626181685136428672671671120912029687925836774949015782241548033184037764471617173531459303840301330834378143814237093136917935757361345698882567917839948717080900802113876651442593706697412683115454746241523951833155392624779724408799231016442050047226686195315559365084336047680192414363831891075970183345071829716427869491288303825991417343102716369200431977763542958803236704898455023426278183098307323856073695368351021230256001153907258192991441084039164571061860833578012954514075666683945330475933285444978505040375051019042049856683655755499086128695757780826424750365038603709958568817602901038144278195963934920501940410500746998092202325777114087722254618629179613352219328937202891494434589064550505458876966177762656606384014154160227789424813055023775643355241497259526104394520004240759639886945078779800377069319957146630244192466261519323184017743977904861121036288472908831731452343685952385238681078155932060797961701319654000397700676111133709488211299718221931933935083133359356958669382704372216376514794688211148132051658196158218954697092238568776057305502525054643945845485601846080780546839454178709442963662018311895985594578451381831916984651792022741582464769579915842433513664706657944109066409803032541371043726626061871962448650550436300466967219373283908069782386456849544522478634379247733895115313067908117050145970041360641024325128879579278013607311238426085162538497050017458597744430868873417696292365917180279148503051763674593076046398777968834299716016150959467021819519373606519646141927613405380329687590034185292090594795603048951734055678183339404095020158112416736844749439319792453013607163748831174988031009662153463698007194162654496883479437023626945942743194167589712072663352828761514956617967727030302661751872361882715505092807965289890919862211557670633396292275311552940998373887724779938289130015674087600597100722000747643329350149200143243413678450686295847519573660342122457293517594320957822085510163305515122532093269830389323360977787451292064788615061003056432804376124339174186937262326007686873487112450811491264182405412067244638557022521234008520620297914821819937621130556933760483750809840844809235090707033386671168580933396239718974287030164477121207859382039572033832871315178873717167744014107860503009549107084820514247333385271288654971644704578565297150115264633672676779476691269906980893854787726949498612652395887294326573593299573251039270018174377189387533967128932660300519909375617711231110331245771624149404209999004181313158865609921985443821061048710703545355054020536391260263612277012134689267877757271318078713892204136225029014973813847560661972457201011443146620521641493127182843460830127359436212535077215442019024055143045350166611154362666027771180128291012056769858788599328174413291945518670615949444323098126673522389416041040171483442755727174637139159723394803309046741376486867771534866018393478709091424435049292566902360996343046404754559064574226944214930979764524073913981426592588503907775429098994552538253954551494241740480516358837001914410503475471797893912836070636715714071997153897804629959287800701069584870068497544037250019787279125502688066775008261299186753833792579182823675283726795294009709655111150226574162467558636610455394289147844548721681041245307087953278001358184849956630760115759481285352504048099834920188316743363087160604914186713085080461629317140729332250308728614488670972432064045138100072416285858115797426033168434273070600075121579029323642595280195091355957502787997694357915160802643070705013835785206640025599473249149617356784449198383543187816726661960382581599494866264040195411085684707140801020773235829291283655190074054124472093396226193272993074077971071443475405464385494199908731965135709858509404138641152063138549013231932280068388307925237517761625324235464872467932708419201314765366019266653002157478726593796894735958782455639628404168298996752602481434294210861883958426833109552821169772298252084551059675213858925177601672878918548093536621663096517062734687216990082643377668803526932060361361777940312729119390106790364576736645634489109972200126251959105061178615014526842040799496149663581323324348896273206611108317807063479807844586891216036134454250792118424470606934872037386159234055913038165351777416320064659944516260716135955538776094347819666453621310067061930787170486818242284526958689534238118929473608361068912694200410958296201406733753439228814309506351177956450265753955415854684106099134650792116135364352026666805903625498353595775779950867283842135735198965885733656007680241212939678542284467349702295630552872651882219909358442028869954741707357731326101284657775402834228894758396168054865181397471529016492797689477309493728572082983393988979640216865379394336769394430033824880428643146518640922767346348709674241665735789617819332216680820871892069360902843623660086800980124313398507986432677812150151717039936438680529291341792943136978325396059227131076578076764994296507468938332837446017478899530567824986895773722247243341196925437133891907746825976885992163029710981124960278902412632233550402361360308019897855536808648894559446790911079981472561887946005504026390279010329333469197383122559897109963296553731741977201295535481833822221561644897501106308871878525639609649354699413486344325280593443184809332498923388622559265113794693098775030427104617672646766431148399173297494065601907097472057175596356604497769203368050469459206276325375555991719849785235218633017898464242329194289982330218955752058642936134860245112989129982776707684193461937197875267911143754010084486497303553687359549512385021207179911239522697659529228116333562547474608652836710115552812372135443003989870923886360643428377909910240590148686537380003785779655020685420276347503459357083144979952004783802230275847675786967773066160820638168900026639744426361395737147299500836909392140148860410732216129418296093644587567536009858075766633112257100557117942831164289288176563851944810617092259293587143045768008915146034663195283404802634806978008155915021864802348175518351920501244315170396103786856342572175653705840567087270445154091409890489614431186531581028316799102548529668350575936049833771959387819599539039575462112306438759160116902394739849760580032521009756768156615445261900159039625941102330696539393392841591439713595250785956310984229083056246617651125980450259394710327148325976167644911278496169496753736570065718763307347191060865949670558822628086325831387342050780100017663213852586428736917072110226979589462388449668569656568811991993634212579675726709628731984114447230493677823242992966352744925461801557968322786113953017239549373946013869090038662150149975969782662199327341081252114707431014063464810311642922521684821788754005090096330203954138995643922036362702545945110802058716640778380516088850092436103375530931804855662549214558482842247973305782372789707301006959148389470783012081861504368850380425074166386169137578481224188156796103674024250892515493622074012530699150718810090334123177877275267059438080087015075571938783291154431192919571917409954025153409181101950894360786135538652529574120413659264436590652106938903990179391151296622173377693718161823261082250222296128364803239742795462883593163866200772737328811624279714342263638125454799001566624005469246324105627449977932440595288947965674539721867778689791006019033099934130944948497184129237314708521235880255942934145166941646216023098005305217060525034706467598802822618751143716775012803587286632499508883932954901251576220600238689013340682494194019215213366413539060660231354689494302244908955546633343116259273880629936592485011936642553281331145656747170766318777938379871572888096545706820426764548253488539942750230570892047517722723645206497612917101616572720835713298237921711296527691091212836386250152181030200715052171114560115345514493343483947858110528489725194051896298625136477642524214007199351790178358730908828048619059860871211274454962575743602869888159916368657803578072725988247577017536779309582375793248006562331962709106711109989769780664769430613140450209910435863807095779885768657992540115862101149036427356953443840646511813707171937394002828112405265624200244580103718939151550812576694374842996074632626974980803073182002945905503047971645936825706523423035600278288738497381312371327422709340555785146705762126909763526003845001525911031830044249854579038078151636782302521669211075075345934887902876987752247173806397859151152737696085942298984121995687456343804865019973048633768134900316433508432285231375085931604021899709941461609583985369437223660137029733105598417809230419231695971917108491999874975806210000490008212386900337172507545450070706716467519898895613292447820228600641469563011183260957344983810283638650765244845198510352066159041299127812528709002117053154274541607904205055483914645050042849396504239868787458757596013568865168020247419747968127443464790938207514393642733330475410705947909924632583269006039931057776774398457264763875626925480451738805416030736630140447571771287498256620617178956870557274409732950115248793812155882303117509304833249872528146807262869428381571427307604506068941921548951726180983267261132585731386883995896000580933310318425040259749012959397811903901909311542130831739594829974848994233067013213467305772872159412832498680354324341721134825021501533996130242240770999593652157862800575122321175538980354122187443790691346351227794917179538202903488090797988572179197889898462578156680813413646023235095823825546596871773786363288745294921690280771505183633293741291066278828572734326899750471194204565243495106113741990451187595449046274400283920509959099289126909297365372027197062892074625530501923136587436320365883356432763669467692593027866330029974150374289814040076045374423233667795815812992124435646539139042970048328413627469249329851089191637698664618864358399130389601595152998193475090668947305107272674194275851525118288655477500282303166055023131524949835358817114677433581460349782699053765295153201692356273752153744749595064060800890893884672263785290275736065868837876253904535523191374414642843587454666530742957965746730728432228848680175387705269564341513334807293939312405342252905272281782032208879894237115357095704827296730935441147739962686176364103164334143589120550871266767261015591661529860267128504983969560754641954273186980404086364900360682780844055681306144139289846032759369521256496864290371460632144807243799589445955114194871320787348522856435489522726970449017905140328374274145573162662854788920904773687542309140192513316431264763753949905884276160337736554680455397548568309734281732007500537772779381526439026857098844560135316143017485947167375332278027187102537395310975934536291618681153496594733626693615712867882962289098869984526620664623694840920022091906232793617811282456397811009007230549939636973271563994434016513384683755034645220751666231319550548984703060717927594234095186246848104166145162729288919735678544522575245309063371225696714326122223621782881669183845358264384534514392329147929880115741491042543288917475430470852292925606622599862121087762836056329481128184012792075991640431382067228550603677327408326178644820392824149593316718694802820334557911874933976342940061906157557161082202417593577940592485118107804239415652732092213188802494239878610381254957360582652105953596207449621190362952945253572138845298433246843295867710440479528450392619476695453221451029119476180755560163398327728843361795181640894767759041149397907613927181113912330076944946283044042984684060707756401624317508958005867785464080492945102067199729969662985617477913740127285369374046197657675624420921326809304509360801106643793456899341955966619168179944423621927307997763219665680736115709008102312981175646996169160024104870031655395227362098805644298098743039246263540439585443895995546851377656252219123765745125835047733252138999163157784438947538821616436906599637277721225963653363734400595054392837185975162658608761133210129946459223149307556396694264978158819663549126922710854435955019061154109315980037210066874567512531861019021878366903767422001565021695814443654383422804369837709347103980655752817301622642603594785097862542019537532294439896031906143287364535602011573817536653068434915117740002038393243556988346943933658299558370787624798010988989202046206931210121823495682802930129235651920550190457590712304410375082406589808373124745033181208559076697154978599185517372425475171320391696698858288931001781358633784002909982055655559493266844586864773938552566145069908551247504207221675801151541979250270864413691910917100229216551843379023265084715375359351892251218472819984505950599576282411142081862647943329151432079326783216472998569551119641002629114607286831766108052027861298318800707805853499178286842237495972930772632640545478651148001033466719615666309840746919386559683888270594077926354953878931262171226801992143657981444166732269066030185313753847390681455244930441680921092374752512242287222723899880154086257943528759729588927096840123265187545757862885964040090907700130392773708176556526946181192135269033610972204586088473363793115467228045723679568021692842254502719610750022301097578388527364610156675239942669994211640416543298686849920048523518068807967712774976095210077151698998522133854451160133279152163370910327398648887293697746531240531517428611004124548731286336362016416173818577429407378426602625700482194184336084650960198730671042483586342714999942194553850719866957456123546110799192426349600034135775836843211508588355724722276828802318488795997197944776665763902517191796246161575454552763405275936706896044739013402586722123081244525494412575241742004525753347276357509787025752933425757314147103345474411048373969608042828499368265613230979615275663322746631000293747022615397181600469178124157769094530232699578558921151399282809253758252309961407388906690464450497726478131239600434536677701529938371702418168804925824233441208476692399169817251820725711690939734399992414265183275484506280729679547714628454257340625131523014076243964383656147522695528000014868419139956115925190883716961971656416414244549389293511891938563957011801909180076081597481261958808208482952150973351844867094127106913233432290797586989401624212218797073411612807498084123594327881681986874855801937352980728441373553097220915534307961768998374370016852229946246947246295375656829294421781740890951055940987147638516072071241130761240816118323236454049813301406217249247490076956535225739450971840399070353368944297312690881783386278214822443448920168567347614578854279686824775475372419877705952406185206112257703211905054976149512449844547694534409190021726736335566615441486861535852727973181757322645905720209257417119991138610522512081739294095451535697105646365332467336633445906737858152465121647318155962392225899286278119741873991009542135134786009514830100687062243818251877265048605933777220553001423902056795784018882842804741835937435240178559478212513216438901166181222407755742228694324093623666480552407833342468181850292939170044471824597499421468538454880483326659689384803852403591629101577243401448339160858204502364148954546264839735063057156728658935272755534952517006143182591471867529882932317056804497558131387436600988839921439182017673295157520720533692768431500074241515220236944244452052960956337928919786079081198613343685194162185247029045819127262084001229049089512212445361674993983954469820805401441508778331111086215025595079812773770854461666697789275391134206324856029065351655532968009226995152850732816585387495121479760779787414744171016816650790644713622509363783064259010302146961459434020417720572052803986548591356485546945803195409846510816871712338751765335073628814995808856037420028298416869386607048870414974041535877519121053046726333522831326173081481541684374486423570345563802338357367874013323955064767894794919494775571049215715420979235039435508540915119052430503656508582041671371569173203675663011056050095729321804673849297170158565925069827878543484112626030730545059477674344571498673754069589888215766475660620393499613255683227377027436324919287415201385287902384380746507574688319837951587028582563532654846841483070077938197792537359409401891525769441252336844170675573405851744633510064780396270904423232919144672077142283958976209894777142607042892553959654284851342768674791270982886523905203079150123248287009623629057338486540171803953611801256118859441505448027824043543888281863643559378434121405664319987028409895230251006496806891659555611299791188515801146059524403699115194374075363306688275868098650572366638707408006989562771386378389762872762137270628406627944812879062393177262770990901618411520878249029342012873054905638210089699677725294963954429410033615430925120160125670819156480498617180519639393805306432585787707928541198329990242305477334448222235147832747437009948065739121328502228101968517478174569876304560387050774180764646259150491457203652497290442586000740129445044074240090055706062734496753406865903617915724543321822469684289968915250603330133049176369581816585693615336346799129446246283484751775833894448438540152318656474953445902236556206989763454847815100405793016251731999457292811704091545636166226813644972463429519854015787989814769321215276444478843708717119389481068224020488024232590791219232840129787790920803595230542007490359924093002633402190941483692112346011954837080968315661572831678117046665579962083487041286662020390076361150072730577661006418298334988697159962755115184008168068855638799929316754615339640404788405821731428849246234509611083301819030555389364799682165715624160322195170634449966421058271831957481598425293495940767858380417051935949639556718439863194313803396949782191505583234842957561473380951018609464347557083035868678321814384245214289478232538025922300753633771604341751095659581947243636627980783125554937837277829278297292396840739536311188721137286182612655968949122759347064848687157628985594458531019046813601264507917635665644112593570519684466890134423045183967106009466117802501934539287994250246570929797986217859949078938189199224423124137945588878501109873338264177835320309326719286207817999145277982063311466883976563135554487127653655724838250842585789676746470698972878378729097850112804067158959480885501307568090491861746534556414721786584261871095830189892170396331721081790406302903530145247243751910565333532580777604746123572775244641278133069835872636883379388991916070470860526494057724045117933451320348839657456099715992156045891153350432494390868618892570074460683382576530887394869523044226825549544957777258270509619671894142156921571759698985907705725501094891387088444218557857509916248071867444757641982479990802488258981839385569344054398139502462377859960071152874210758706864725480135893655036330924579807906628333517098053053797968014273421268869920949475095693157804529411991056185964674882904601199232434965881443765575409756936030095542616217213986046946068561796275965152340284629243590444399938739392114056087226192740339224075047468583679575878305465407072234862141442779095782419195638800400536418743727135138391058186171673260820573664983587225730060258591327268659415859928777939554893707825712775151559304322295901660225714005038482724581619889150109893660264772718211569700709298007387414951742419234158043380955969574784238526345597445713132612485658820805462530269795000958285255210500218821507245681823909458167978091499102924836816917163649301156376932918469964887232313871572116097950617828538394377902543594544898868427587878315365982179118226811437711477163272656760904044148744092310997557357915103404625159416598832974166531261054722018098226526768204445959753238847035103845590121898089690811375519634629613692999135036142302409299997239972014256880609924038580517743145284829500463680863390428276510580440046108981153782313371305005176777873226542369586270389802101359841736323841391242931312156658486751928486315740123952095639881958543685292902167063661152359387098049202367835514265078372233088439318478172038668477602778265095854858672227445571787968879683366603253277113774519202497019317621848331184170480799481371290006570850518799883404688796555570308262719852736123615666414371862492125963957779585484564449925461603242949917534401483139960348882750314923655683251204426876976450732136162125798534245121859399604615168219844025853913615091639515705309010000839188843732531151494812470604413708007764945684358632026945428242003896074555671218814394887764400019072998440547689774442565828527931217930281905466494490450476643768348401703565134991687280156883920722377668974265901711731111538327206449483845652347718896889073414034159757856024077833216992502978604603985533737140785535165206642461855869203099558188767624968994289629534447360518148373887323814872105751934757422501023454615679967542022112133824769744288271471498859386346344165307807833101459374221344638704837752879850794927637060340730007034180342732678140788112311762778677540043899454643632398624064235806177830823911765395741249164376887369946242747097858899088334992998205576620160456203906797993093719443898993167023103809549519679361376851334405497309352843059747140262581886829377534042033186984121798854290048002599675003036109098351653909509116189326447481465443966792511532394712062401562095204809143307618084215963165731964973953704306366244577783591782735562749461392512746975006797393167268719020444018365543646071053569938832575501214536364929260741947960346612737123597236774538617845220540500244529618235648725017668694025525192944913796417676429131204142061860549733537145832201410791887424952931232335765685405738402545980898861271245175578802423033387638428843889652186316483640927044222478521399562311302590550983773344082971782779545314492972718608991607947487501208792534132218464394078059025290307300224635744842128268017912304774733571646168841558877767054028132608350995560586343844378217592676769437043086992386895079097805880365472625888813575160062065722335597279828145120031892230944949068630851617967392711096300455556772123760888623061647137976799152886206340942748669276346001913748667708241799932353099749279878024122995667462528868408622462837282658438457782959232791091008853826684493373897281773069661072820018564056411528501652830613791723838258184673217344157340383838194167324827273962951551610582441809431809326161076177387037655460339136609659500772366249707429263536644337119853572455952456493000232084916555036798269749966566735967620669835522087446843207903456132211448165615147237917919508332796650728573801263945853665221071095133089058426675074059541771298849020692470596865450746997464275402218517048027914614474107650677585346239143891552934080171691065738962970334129210725857467952988050650339128231013410214763198857768683780346543765462201877911803293584429220287201545092730896776641139117942648166206537142776437495325671872651085220247769784570498842847705934977740625740375539881700632060883646822557005832915444105462316907635161135077600240989501980736706568128746284411652537859119977390321963376979927701291144034439226892859416800894804499158332799712519364477642187143786161473147311481918312696848904337864406696422694152231308428736503196530913261018770344993221930785153106853871284583446470001211838194747862772755030033398186056880068103385150213378501976605000761320137291106733127227772185980817221162332886946981871246525886232334523950242729830828267538216864167794987996417330326955121128531073634434178368594723007928120107248887805562002413128251931998724754192137622697304458632311489077841343986206385219936677778055673536556832009744541370574613015400615769002242604055624218421500942770453596729828042243527288524859799368144226240700572017294569892927797729177921466800938537070135392982988933310704383278923518381934936092537567740369199656597692488099912518504945516393587573819003435042391800689427011768051883270225214843275992716801671023576123039388572762588477889713405641250301129382329074983521853004627484748736196814515890236765198720344539072826913523380418769926607121855414859288940746436331763218675878345789205861299876069859126325557663318701518961056074849752592919969045816370966696822284147957669340696526190540246167912254916312421144284493673508808929904140904484204231445075619051137718927899414820173996895832898554286689576967009634087054819876002558955617205090823157743873593247096312329584377454458139959608496380105398803202342719865957800706485373574571842701995342629937265481067681780132367507570298700919400068102268695067031987517370443795538129809629716632526836244175164560697006170418668667379834401580572533505521445531454141500605977687611999872336705391254134814754577881409880615586287327305204433417731545784588262953172543471324192427044313210295931210784108145005916201931843763646686240743817298657840787590536128239241412481355968533510763413662780243467711171526076504864707190788629977800592303028927593916759811266596837637419888078670920026258079645417025833081227338233814848238737312926948670547866330067451097014730493668887800877638463767774118051137542635351262016979722125409152853047608060750747533633244870465953400220245162386366165942820507317658001633093813386924660445750926256150391807773481626201356603756406580113677131742106879295725274026434944495771830994171137346940412146454697879849293686696597342372006620586867925596342975801081107199510937980686339845345257519224273374161364554294902658581975840039054742078773704754400502181929430466847555387442433455738760734467906908785940851426952857467413902583412075125497218295777755060255687976475450624100377297785953019906218337115263038516191811133194550394870457167171038720819764004785549471045561496054032175030482771598625860115887339966665773285895509518549068651365968833984849215329246370804768940564423187790792677109956300707906707599842815041004104212658499313207292100759135181140856932337637736186191932138363767893744202430425474921077353342241903176209108123011498163292149964731629024628237869148178616381376262294962468641793339123355414327669449903021767897190912794890775163805228526721018438321711595232319031679964262909633799221795164669727100106497248190125282917177606776382570648668225084172310752697424631929463182317333997573060192502128333790673617921363766671863936154887328619970325043959903288539611028330947069694378280032978790148429125782529585731583929039738046046218794830510346631900824911109668846326107333805821917991854670864446802241250353867656246703297338401528417518396276287781511534599841644731311810708078906504519956834020789989155680580846206391629477870081612984256188370105404805678137967809441665596732611075968929757764587623981681602287071625318453883204564215478716996020172458038594667962208964935407892657844265916739893027280710453994556923567210077679366491071658772949841855553365832856685898566585200121837704274710055634634214432771251639585129235667605227032069925818390156708284364209358706477661233432378787001812878325899684757132356202127827772796316465869116414284770569996860772483890960313126129292473488888770527753578020391923869295236999048648180964614085119153406291683318850986767429208988611751232327354280265011431692280006363612118032691397884300346568782682395271292076493639372203642660090754884141307802501302813714736288636814323375731486538657708042542619750510860506172755814162737670969041348681633127615796621398049045810371213606242924939234117913332021527155900835603278408353226225839833630789630433254163908798254968847338860353858441261436460745435621012685109096703641173954800726255536318001529722371845923487091753631009730814522341288893852603297185708243232084899494607735245687514866917728178951403120080607487199279029404411571479173601810369578878057818789823710241773571736801057610589922299492503298633045368409148732633324074207505780729312052104999759399522644090022667008362282257549350117133549008530947140527521952465439277303712709671617140624094411115837661873563066067429377630858646581734131327259434699550191499666530353185948068204973965042653565639633680940827547673848502410157093091967874179653760554347022331035499660520463330058143639068924833885877008633334287554793032652492501687734531476554533142979568797765459406569735928414446780529246992468311107620917301537574277968643076978798146274040525648719633627481746643504166158547635666519210822507148515059462239908162090910151170607577792458564634036435825207751622432842964744383967452961169162617261477186599496297069731302678508929150117970865494968726750147330929039424959660347734111383291058154000731071978706257696624881322218641471344865438211778052783638959601702578218913801979510221058820064691664188574754655721377442775526143471921033936488485918680406191667810283960442561146956719631855507094499926169985590201910961376037777622743958683888654887209932472732229778079686049513612200598189498777680550377618696497589764619532950886933005628362009410616630855591159122892555260137437950235881509334688758921460700633589652501259247056199649907914283675180906995448248651025657952365186952515291400509507914606058265198942365012069292496631162799643884971310371347075721116534013609318687054868649421841929612528820917529299289528857745065049358429566376522803987092495102682661517984525253607004074367204546918200133922292183240186431021043412596271354056178861284305060687131556980718665858308104157060770891313992415153948581015113354969787954937209835988942971619511432029998676578864298479912285131530059867681073414348585449737608774859604304116881027573297698297987454646671235664941679060814516856263568036858199497339130144904865908698976736712308943495216840551729091102479023085685006811070159585946288823500338754251876016009420883479838936674181533916433632743611044015092546651257930028325358348251222242558810931910356191064849675665841098755108524242149470602468435320677808852510865062512809848004257801293310281818523089241833402527116359206045262101214933736274785697376700052317953364977671724170525264408512356793197473781627074211987398433011607826332497159502718315404333437766295617184508631555184683187227732282833652556204662612651726661095818236581645797403614230716920177731126399588142072968422665180826968440416997636178196790115437251378085897924599293305156083959966045789794432244370057031462153542744616080627383654273282925013995189533528342409370334408985638295005697704250058411904599312264051176535633212397922426061703887773809953392766459557321889527118870727945000664015500964967592642011667462770016069965999662433666742410999268345981850216006851205483267608531197077685742045823387648659718469831935155554425532536705877245420439308018087504085589567965122212833896949346119475514258563712833514114557107876123969765693550766521033476411469442278393614402838654643919221275829882236591812278632335119685474695759176036296808745846787712948729934871405397247091748502103486695271003642917174322644133441901319443536944042631807115339553381302574891404923942720957806463168487664822778925704076631708224977724597414185189937698467756978777920056257945485808150510319324618511368776892512035573255984515332470743451060310328435635074686747924679118308331520057123505920561352960825114353714730895069513470178826067108689114386489669844218695625687585333457931025176622550009137185143236500556997826411738813137339511892635119374382505903398599386650056341848921037161995305468314124833248279390533440970247730279061983934839279171426190971854547454670892915236537071097025162894512592713793199441139713355688731655285456362215000434561025802460180209646198676345441697148241014364791710519785498648923228169553216131879752095293994157670489333800647760834734830499728123997364005498052157537095376181258499378711216579433984610806954806953347435075901428920104712652846594542039017190452542858603978982280006150713480748884616927878703495748237547688343859129192181299780382473421299892125413528074712383972283776744623693113641746506019659224739475924256627920029869185547765560783609334110185351913045296213873328540356347846365724256826471881282732430706371608133348636368582419423800468813070211459933232030608924784185540148557545110218486451906625552222054985486354234436578701682700328817502720338536700818163576653788988321741142554168629369544976485977690774287902389670405325863976530855773453288809199455324228192469790707503776802191197311535485635755696933319163159209105510392135300353380458749561111286085591229830329342938412448394308066491535762870527787491933570236943273018846830649412813707082173622310267038184360300521657314567551501688772519718386517133920400371221025067997168592426211376399330750506440268109216817389772935826847845663177133222185750596091360260836509428329297114387105424063499803934397963190405139469325757810243990043867240686771441313107944681844950791535307011900515388229093401801005704628830506953936911356555018887128196034178227176652737837811818652625242774820180110438283639249521349309071340545618802603730621676939751411549356802996719200705696436533088519043281203835230341157907431341579684692599095554867530633508842707468823833598860469527928241294649638410750049374815423743380191839867201330804654917384746481613287809350755569472561360743510739249534764181186139731471918348789508134754558339244856533962075833883390358734593716411243603703920443107510130879765886538923236694079419811841667370148351571197051165813223303173270800465491399561353586614625390637851845065679292375349948002879869876310675634736466391098471183166858712844162260318941316971041775536021715209411111472873419580693650875652147363440652430143836666044201238545259969140966056036854223034603126282349145039414914965248893336887682917798742749483993106725353130646232080749706489675483223789699455773082293900331741293168494625958435088019188383970430876988954102584849090499451924155030814535521539764781506765939069045504493739836652950236014558694761629682443838992070510571961063656084713319726199485415974978060807222880179960632770084245501912017493703147262888964686207781882872979979717959373636664972380523637330883746682236343853747662148579587613532051872628549402304668060175978631383127756303812034335188612952773210413515598065056991223217083563406673916332435838894062191337350661841592055079447148646346048486985304082475303508967020634827121766804667577335179006860356070045315703789092752018781490975997128134987387259381532149015791317453187065491248851795834703282780231797903345864429300036158842860915067771693813244066332396547085524034668661283465567327868327468189045032966634312716849543848250901117308428881441005453849531819307194640647566018765310372220815793761480332993655760098988678677306434512450172335884774997288222519504929547884800768799144616887857159856192957423275309489195225331183488391166623966493102226870976889478386522060299248137176508840608183577671083463459080073765238494264550480906780671623944092209211773106775289925372131423566886950722645113356218455290526322327862610171993907578598866130393682842044532605093205438610317256488254059846398699701959460951734348653340097911545738133614165813453825608831965951195158347509808620374943869656196830182472838133993775078373290534676438288393597477845296508574833962488073575473910711693584422971328442359822839587022816198170229298303046676025196072768208166404974968832789352044249187884572540298550657247168685554291297960465631620300815103559521780896302924515495270470832344824728275069019268840982526685618544150563845403150847491303082237714083914353139181655422230994283584295876223111993333656180720379942686758513561967535855523189426785908369854959133715613922130811465513041010525724408443752459107315572557094077004737366002937876671030207023471806920735613875261032525214044287225368900947565973229018695905039315807214474925589005448541495148717464660720248728912266844033029484103926623046635649552627483210195898681520137791870258004329076277452502050976973003950652440827974731344388536227623217637292932449840027274846748592434889149805903615878709970665648321532929764494059943315688921585499109576810070795841328780568464378259922601517800457554255442548694620553164949286815359020092981730201327345913657686311895458580912110117871309130251342568473101363439052730794924461524439227581454084674307718176372506252944865944300211070193457995248319167941229936235958472566484264642583595589227122291713807975376751870761535094048564585822691743702538491264995130900995460476040443050522338624107176314951097845075565966869581851758684175553987714088046373021764249559421636914105356750555502161696035375421094945917227919552481908488075253436561719764342153558996743243529107341316376611135704200249919159965325684676018270404123999465966938547474374209312035149494896475325264827077270303590651927353614221401225295392199798492408466645404460464607132791365910217892169844650613610445302686095915693934344893557678892707119235464290612400365599530242977193493629862221064595386720089941798581017891465464637116090586247479928047739339123130013203658009264159939901177893444122890998200942989004992782632041388408642226217965805233826914358149441739968507932105572872653988933850655645437302217064691855430746662937149278725336075329933448531657060041561870542710480538119723174807552031862102515151292200750402227252436010577141554637816093872694880215530466371659944002312994537696846570633989781668859122266386479136400847422837565335765011809936894830637425445095274333885603001146952852479206750024331943847617250676458583459531035491138414501219232278699515739214614605669406225449166969559785277740757179064545561328175429230003651601944621956085051529097396571368578804902195514073270756901915749373230792907488558164111754962240083568465821315518100792406925337252131332941534821286341086911456054137328640616521866012259698499964593629211929146233023380060259444677997211168061739140350185803744983010015014920601397979585501156018409389404975353929777930818879835306246072372188658158787660105544041744681183195377760122906907543391215196407545796324020116942871276650834444788626243358419629491598370913666838990640455338553160225634684196324305283639467127287299719156763823593157978665498609201072836892611639972397706523719466128281439517107555010292092257388977560502409736380513243840374111760361449550668194661927382691802353077050284863453722806966029576702403579340381838016196956498946129709924993582374056572138775323038759654089564064004493141669323977746527794868472769501060985752943643060553976145534089948125470592122535605715682876123776402026284459868470142489873495463754471043840677392759959301311779569025279012388053486563710330930310082537436715457770262779698131558957815823691148055095195617724939505556452093307118182692499220436907770442528895942018384065036426103019079732548333954161177056207313226105009955970521515548848533850932922336431175047071054485810685656609686028521489154567878994816132062049574512010938345524072988754173895259483355210688442361467182573714543742357345685416189029502669026954987110085127344074561265791005222524000148208679725328927039191654425180981376017119500665837793628142620446711748717132601374471166910860310463606431377812284798462725443317628699851055507084376264726102555342237628443988793484795169285383538107702118130925954953403001464180966617148210997575967559873363165061467593367049465602943134315354451799692097317680122720878381108890685516882234110510195129696857468538707104384390328762163867037719868331889511977985748833775495216658159279834754508975910738439684287232176544540595659772235036177872183487824222726307712901171529932263702691324617460605493292935054590600621864767687816665449579051762444756444474928442009884150980088912210032461007698511772088798392528733380853238386098000960366730219138266350804936845957292603327602907417994116892516819654303737367363389129671220014298479974051866002709704190507409060188856246078805397819123303854877287346675477268727036647663255678355665047988821126461691050492885820444189325673691323763179626386298895971808785551389351421635050178132430770493413727082169807053174107939265049876543680813837225172976051610855896410406766761096100715101833912651071063023833572270195225487384923138411691812895622007508799332758828838516650630113917059800549920233232866338033977478294395843876165332098080088879038257910088950299751042905942949687554896549884462962232718506379355707340775278434959688011286951084411925568180961103602316995090951088863469192475321874532424341936660077988182974822607034293942488509112749475250785454398110005098138383814161884078225286678159359604373425012479771728868869906812570991087125424315777346721076782533116616003151570005998832845112896565028626037153370434607708628540015430432346078580935360145748637951810320356472803929291697071254763309367249862513717680338490850584676806760133819582657910249220200961966636591446725891555770327756362496821661231955792690032403782021410853467081864018946691447488768825826472429586992462363806083968046842220662918798350648892174317738299467357572445578711821868081734740364881714300123915017676921540145508397910619558337334893767453356992886405616340448235869729097442920820785757863210964923801948206695806796366051399978620807018112688835908611779924841629709578252567609832539183780874398967875043628949102692685139691526404499660426297792004398000075401965542712474598573172553634607856800345709819261104437251849527702875872695453336845605192846471033590748680160411555330214116097327014856685763954537947555164081441938720381699556438628586121978291349861386916130253728600163639259752932347082017932854697951121743454507408401100329488659255256086870920000435795700654396132031862086598287907234550758987742031759074799731828996529283370773161701885569035686095863656928771534455792915412889532668449200911958834939315649897149666163150932180161152785080333149595750840063492021822058216451163001983383459362568635729018512773737319289536748123345804628858998444468824584767231803829174990092480386028055860072555732470210964953069491219346055765071664320630569811339210817444383990291237956115350606349415988289201539144845739768625064152188215162928319649084862085476370418963982702691227059402254600634314090610406994075260208010521987078265251882416051689463322976475372002011726910661695974816318993668012850490255010206802226861517195942425875760701535991091424676383360974940082593840758743099845036800969740621817304474397973034910991348910967964783870637707440370992736281278514735802817180470161713402281337165284656119597459797904527066777526122989896828273160591792937940168044191487973980400481318331391024882334333846477950642848230701771489531671253465869595933417450992845088148279655667716412700939688037604049009522204949656290985895717739100818221266485762595773309959240314327424587134652542967724702222516968181961249055713455168221196316012605611953411385368646025074405560699727869761539491191012985252885528841452780159687514210546525804906228531155184208789805949215089423960583269300867221034839931336031621820591651550081893159399773742176286537692871653404577857291851430649009300572286895603925025854433093248997757377080345717567252980241182233297703680305758215232583806657516641736287056093212045576943559932001105058639554262275066446078719124153302786875438915167719234389643064464890529100599955027544933572731289656502259767228155011251701572355948115495019461826534280079669874882932895972082149109635834466654902538058083686820068487586707871395356857730854629471405467726996372734019692159391526327340616299452906196460542015608882680902625824694599271889989417478993727250119469077220679505636801759395250689002571414757674444859279351096288126525314844696708563043325675875684727304902733671426532799834530476245579621342908735663682156517830175265814394279176233241617225444143832076242034117218800481453445589489742725586651133167062095078005088835650385526824667513180945098792437357350844034902346382991770934404136714729032639553334407925997843363685533885029106703839845282436315672446940803225245345366479197096024660194822235928621783565970033098401730976429471242990359419277621868533261470632452489464215796375495797177624836344136404209577881892180751718927899153242090273248753253258386262577511467281499892256553525107673764073514610869581025237099783864345560218336069655024254314215154820922045353304674255635844319550733472617712686635520841862751543459779257929446622864922965189111258203684150497179473805856961380040809782078575251350701727548319829756326128930786817661102754353483517188298642498416474086286557944553256173185523468766329309451649402660626512331800045765083288763708895113545164983819460223257083301516329011544225886790237910317547272030978163644873020366741098135984322473685795462029450728299136051766113045043517654623516903740785222479675730268182788667927619988648914970718454122428593135666905998668531089781704420647509169833697238516319723996494884621649288957503314221362382749760412960342557284628217872113459448988292595994959998751878299102086005010372388363941908229023972477187283768246322568014721029350618213879844119687588903068462409136829320570935896775093855948856896685519528761375572119854636003204229019260787986233524323784117024651243212461195165136806492652247935689536763288980744166863277173444513494744577648930846871629775387640132578780965527633840243136365442294866228279150352396997989174772024106992057937777123804814373670731526307400014422906588859309419955290114201854210764564553766409383822630966499038315040490081066954445009041634244140517933234730950734728231445656420844586537249209279122568837124581084649965672892424233245701281802486196463738035846798684697115287048665985192094046550587314827667365235381628406816558789594441535551041501426683040775002676027657873526969024186684135255350144769842689084031161940829148636082854792059126849813852381800617817576990011002743665804948419033777666196047951535970807087159255844035868414888005799411934540419783730547503341461290344804414617178127751140738332283059806914496161368821204996883925896885486496137008996948808084807691427176251984666308677781710572931974586524269984651936382241320603337689053314077540950096681413114357420720199552489819052270969327910566765904522970688154305971140464440652126896134848128858630369023550206832396893053871380459944540995800605340832225338607750921202283563440832167314811870237032321721631714355111531998674267142275973336652971697691789732935716909603039555828772790556010885649348552077639309263939274476079474922613992688726808059229129796950680514137829977003534172400446557562391349697308394030142656217982526065848640414209885189041868300441460274183034436235665202299266399131025890789750045098349436449475993217453090025211033908696377457374161965186386488663255782396228969952302148411156879973375697954489015048519546922136793567595300285892829312001941292653192382114882320455093359953222444970854900151964597268977504059565154399761814428680803563332603479584040052136072845326143092831822168865946683162302469334199316742722144808787752670097074556589548071616966590920335123568272823437340849980799446520120571722436904111325289246502411560674218065298252315149600594626975563914902262122351128682173860047835469074398966451123350198667439321826568140508349095352136054268521971488149471271132747342578078191691387262117963781718302682782616953910132867304115255352888893650046927675409360613602896152772443301919077535116937854267166356800117595764662777397643914543410725765751640759529689917882090087619602066783510286250382174009082882347939183912443551715950658853251932120522974313732575560855078738755239606322389352376283366338942026466840015753994430692612859855944913876295083167608890844809074676268600710081732778083232958267135248747326888457605426294541774222631707026810635972861570884858926899889881199483998139093592188610433190105760392098294147160499475533371837127170487815882877216824624404104015907519407467080349888291572047621569810359416949531342018179257320508462571269302323179257544535165189155587235335556661494663259609580117920470961016226977891609321420792578044467592548341482257118024482085863899437002572765800626124442713417879404445180583477930372227142145417973228312842591722384163879973693174574493179333162574057151530793715388413373285813707024752890575790541915150417437357505261587455845499743544488943939841658614236190092801360581210031640834532938922225819560835462573141593509640904508413361147073445705954337448817364054013110392331697394111961694286583960979324719932089236806219923638699325445285181441484335753618159917678476994937998174961933773239589006972303035581684605269244777172217110150751017552366379212089228072643124918093464062733196563492208800634330551123615000798312208575312453127323425358853706975893640260577103215044607931031043330713559717395221574121519220228752425258115914180525819337014094069964295459574711561054803721074644591620985654336598317598947443480234595719370070505674116976560588221716361946046660432023037111227831375113764955898788205131437829347559418811995383019173008678745121342938567754369219657518879343517396943078772614821345423975840734270847396452931275685094611277916392920618768112810187605985976427742143550032067443401086346670822778703363405713396032298630284627558426804819612055658585999814247876739012281011451143288357281295179708062480729139463217856148744169479205792950691755959508838702715906233189491528600217764293096937606551710558103206983251232039271913163988829993771704268053084844647428701821759397279477837939511032256777374596120183148193479725732053576624852052691567950078578249058863904307805474997668604508554220408462386551428513767025889265972219743835440646163409130131302950386459432963386626341714001851367039930143936306173642071071909498960378685263362485038291779592555078015995422969174723721459048297183021142580786095018823221622687362361595944303364909653764462632014783714346217332534443650672100642283295293392157550953681247448708749575323429056650281029530388292059243102265444717853700794850120246248747789997216400587230932610446262993953880600905971830409673329413622471846954183591590113892394725640805454050135811434702526565404154603592210948418343054337458137131732677732543654185851319578086184059156976082548684651259897390252867878694608652748556409220490039078663277058768911373362393684311323379177351749781324634138286979264770621294454228629288044049536241627078852043270508718705756755630679197976726502225867034750373848405580859436048072040273776928938721116940379130160137555389199403139244999081906569476486060468980174012063895949796320957221579114208175476416414252745395820297076994316767148213289758291967578519998678426803630135557199947086847182202021845745273113682406877789230983848009306100726107356014055375850599315244212740840376175326058556051432958204048424893008612631534487258384631741099208611775570869363068634425357767345258743845863175045113071066344698960401598900465984126772785535621037758843855150972566892046162540416648411144693438201095381045081293009305573528779949283175582812289129262939527671763674918679229101430741627879064898267756517665730693085964938482729716953685527597775541132597549143389530282251885095057942475737850602029645054915291394491565869040609692965881029319254775225195560297470937169949691603649153466424852052258201483899930217681126275860948630992888795496093886457080246634616526999179976877734863790043485705965579102562004609442473564626620874507848276539972668751257225702820892795287843199893325323253391308398209340412874813107382896534128722441273195781073145315740539390414056974347218999588047864403980528326345268748766725767421780755365374957566454023601838865624670034984290668649263146735349157924588192945158978723187268392111603100984917097234651888292780343587377580772097943636950893859644378838198983430803509917969191011714070117092322166684697625497187962564918500449740499594688026597161582808527798421997374245467241453501966755996648852914487801404753672442989269377055328437234557359687447605158943168645357981660731840478753380661394141599561530883114435848203116462878303937582130635453744177672869857925452688006643016658841278403930915909558135873648378152317040400424160078944989274645821960984949539495762417601234398442064485409193423906002305170930786644567427477318017690590693482967976770910606105213965399490423126907405904895999409171444230900723501719222588176388796257898505028112973595501986222379310074219666653476880590390116875216954067392550769880957518806367587193994991449009828914331750749083712103165278618476301997547431299457622898725244333434014916528427135014537744936368824072934859130429830425847273179704508446011403215590348976136261905709980131904522560479311017116820515695976626588293952297875140900362188554249887657070625246768081878572372051261848764869839752677253723952151391017797530448918167437318099008621204029831423590134433475902863200312240754507889712438842212611978068713558074737126292425817564122430173913021499533266499002538284767264062517120330117277109407910726983857480902755028195363129756449579580657835099610014133878404655971762903114463786663321903528106080296937335409117868927969308958752911801050797485281835662896014063467718791332421653359843697535041207436944616010068590941597083204945209689339492592887138976926149895744946744641083297238815429655445086013838594051454811479931208452228534994831400200205723634289150002907073786926619204992847811622688941642682471924887028215375782942807621492500102396564188764241815615123072042472640422657890739480255581084145731345695730348237759961313091899294418248235344055087456739539345691703908413803307865382786079908838501554916711114074419282497454421306663030211756614464196341734203469587712324727245109762554465346978134668648754236034840948770791024694106930125454675255962392766063778273148890168315830491025182504325225809915055192403620983351751750509151804621889256022088369353350840670520453891732130826214127069118874363569513282333487177656603526407077690521769407260940914595576287883320239726033520338378115839781807049916060755017859001308471734800155431982791324341785848401716931582113871451102665433657144045595451750591636992635669299793437340990961561647898660330261466091081031358876120134076634447579663219060228274917276078246447844012122230768391993452896099741796932373336844550661807131608762556754109420711188384892533041384331543207336922198185660361175010088602319194604965285578672998546612417853822619926629212528296413016496315709296036099121118700302637520184866350607476278167139912879545175459953494402509062027053695382765218482268245382549223178586073298939937830618367268546284518851941350763679580800054540654885381034624398879229953473721262095484219913833786664973591545134974189457025375108092499005487666759803373417654508637311231175336936072844506357485003759203382865410294363228296416242592784622500101554097699393844861324471000835075678351918498580439328700451981558399269132411941759355673472348948200077048354980754793630119765852553845685579742963720319810124708560978281271346432384264821981674558156780763126686311758409222952362021755723888989974687859791675570012640469591771163114093528960076612305739799505348970445276353674814144971927823184125499881209403031217112949673320908644789541608778134250628172112762836139975005520291543719895699557545000128381748307664486259865899977623408872570543947281851244345079650901260681671770171708565237584962973922962925043372960422243545650934972220925406607517728932427379707922352567005617327154805210848877296207485346205222019834453354531612784821833228245579364836243838298430994359780932075538540561736866859847824423441418460647498583214953909108225048472417076326150988027643200065903981148896795409557406890889611393279186842609047236924720405190896083144195148158727520431073968717449789285251378377685705467070165603328795872422571136939608045676695982080248416825470918476802366186661228072497119839259127335706231069935046862975085357765910174632822373549158629961671333039491256107036135796578269829414353004752748252561126816998223713853684689574091748606719764512840497733750663281952890809658775468963445025210844302939009142838232069424547631761913831212607773709659252975394427856291731860112020089525769111832917951637219023899976525345802888332163039608942061351520077580283629462591880681961351342439110822656166562046419006466412782071003590820033493258312347477750345062344272376438310180047691322451103258903272128802108558608248167827256767255780076067869320981974709926851763438813539566100797649412146498310365484324179044493010228716119648896657690551530255456910761860511911328336124054878073165413339291259877603920706362068672220637288182117230910381352587747785623295850643271682683202358023373772535481112162618375299859685894245269357879962952366364189977281995431646629828327871397693752318901793244258935690254907001556684106960351540506513516450475701527865543601525573301495738878721386571940304518566744772428960239534686258819749286838697695732216179781098668658545348690632393836543478326074095263638675379982694546786906611030917074514702989907731869254094309709081000325229846303741504091990821439354905651287107110072736711501057426356753480256446920298403705943279054190377250212828245103339278750087752841805851802897141293477220734907082664219634264434128978747587651796863846287120477888057689597917879299684828972123288090432633266986170644166847495261702444810420511499160919606124915957481017268606393398750989092080107123038467302118320388693036568567459033979314768070763185879262057761582974172558311794032417884055840693307705081604904210603639234084689846384228280593257221637007298881971813737027734194542127922249146883949322506766523619426527100637528386148482128164324889892438046558667531221419279309718232748652392888688248879138065915354312767349688441392021899164259041273429938092325740396317232127517160399740334065830975213512898762122398618098636033760446207210162780753336711390415035258050313870964669684047770292988116453265673015958475922014052736695265193503228418609066667287404896531677513050806205242473071658847616651984842869612776869956788572270270723076372892474980807292382638468229896162065161416455034553657200253804937984864056692182296798132564163621322773526612942928142639495835702964699810427557062740754600764122373229689624135817647178834486534480782293086153685704110826604932549556785252711706488509600964819033398818838969722760789883283353201303536429913958332703206756576451180845454724706828029099964640454945848437471333659773738201447863234869994763261498859009828603643144727456527144299303812677601517088556117120401872258534755409195529240750933769907536014405330793710241012532435508449028097729391818592943500144814782999927490698157873512170776427117808555698337215652772198201107550584373471410012522183814402489860264267074850258340521827451794551627721689129792707059404629792514204525522973043959806236989706709796564618717819277755635991096885437314352857407743013142311732798804583883709492779486940196168384568655308064348047344904678309647159763469584196890947581550695967478435328042315856664214687541267513529700929867660585564362921209298092268896307224590750096589940932847523006851469513929936819496283662304046911948762755834842478893835884325617416491463246101952193684664665827839323683895303524224518679189694501423932069730518334706218086113687047992500231397965845929362358313542910968771046563617565818868208688525101042827324979463098503895440644067149060941725033500091273610418428572872073287077870038424788232011986418568444645894782770711399654054429613596751891693367112018819647696336691853575951642402605090308113793214002698445451021163889807310359803862971535815048573555003641226976256232505640142412477850548475999585955611767908805976555598507113227129771906266165826418480873469544457239883882316809753968052050577347455261183149687995584214216631296633737359853168818334755525399036973554618267753220178090276240501980079394388835778436777509779157681960825187612812609814314702529806851367007763410006692044518268967018695518704882091080479772287984807096511669228226226025882592425304093038717258662486772642862478913419691237440493547439574303829079658599977826314674687380466330482422543008202416810455427941214415053151658090071305298037943323526696838685978586569363874136497996722395526532147614410803175415345671942783156838634101245795249613081985304859941370005661238172965149629365348013195200925287401108913714524192740131683053706467447619223334424038247548564790650049577974508757749572585262079655469766431215784417376222477439234792427631992580100851204340483616529315108431482543167994566521754627203305475079071836443692423523918031916177216990830781962625616592928983572872966246916601925083659555938591673430219612598116510006350989673416829058721172930160885440629667918401259795422302117140567301619856765186401478964227684166600504150555859244094053307830454528637875250148038885181653814903579447758041947271292012256215424140756165205909265468056328306603753980993946405872869725736320465672139986104654989831781767906097429570436464790349691282952352909384480935886606727801045394942952483422865113938873144626796934408102891482573758454042251476035734625570598250204638365376698215935286568762388490010221388662542336139966578541340667408372306062124861987329858839006907524609946424490622413137765730693902332470644753807027233970104896805665282859657489910427627862317502308040674634859277595586726669412647419724013842735435868633787783971801744449184547187021065791867534687120019208227664375280388656483204047218930384368954783357774672681889532162616666836928573679458322872523710540846649426611863507819661916869545722082923602008916894222399235066367513053596125540113029545117848485012990896992401785720656725200065378914401066555701167465179816347362626466715159147276862727078765540880425563954137051256006694212392187000574131767259461583243493405339415409103831967081541365081784832987294232815813677671733115710703166254337044052837910840419123190342681021076843886205830088489590469945143985245526973250503669406865372895517095471009812841662294166103616737535003151899291915513019622767540935111199706992723518241692806785276922205684913673308472748117799793742087977383288498979094019606737468433384702344524253941105952626837251822448043898958400982752728582044597236515524588557987600000224570241094025521511502153014345619419587359051074463305067875085582318459819022005704401897153390883902920843416379423227870669530433633688792398996405591340450610776535214874504590319483684045641400351646414880783732743512866197105469524133993063186190954670483626376723911083692915485697963403129687320272698149282713663313964904277748059686584347942210045885956980839524228766257954273987694772468135340333648527853371410769816685123008744385725057071709307709885586639209194614958974629290243200007273185139311517955429258128983520408989970430718215225416149965320347559897111100335762176424131321582283185177544360823307831471848584747620238003883251364493467260081603071155618848633715532848866342362199903340002923021689538567385338863862434342719030013043668654580696851056251307698978670270019006977257695675992101737122229859007154292466201695132427328426875264222071193764957795925853120469988906066320703185210059442095796537853521260187832421230863692532602700616327469628622853616605946689256975876633865775234372530107152970843157434996465086364513938115872185630176051007851155782926393122257859887082769142324183574786330335649197186409450661336059732397969785403295167794380619128857880848317670816101556451813396592525220291362388857176316904913345791292232011623396933786320916784179567578594320592535702477835667128990316421216217201453100122304645607306005587770426070031757794641201503762710016466293808821635508294616678096810255208457373636030508755179166416432048537661189431708332752295939910597159561873370038338205190269040539139721593977109878252009448733594049304859650859398277574393277900395933332887774857415340058763158939661675843778911098275216570176504851593277829471911888756186771960114990707691750469749815495707612981463531320116426312430241874026741583615130137041965273900692578736481548813268722943073557910858735615722424378342917281308480816443925581756761909796732217489118968512155289508695340394521524534311691337765823307471428824937761139756717859780774548941131133356851952752138914373733239443143987661947113693270268138452103684653250111678066530277194291069029012662481162171432760179663118186384357745381034272291701846710963366663903839007077645856278540148356024989476283376715089857655235217529100561925738727430904369129613283408884943402700358182223224188573186581750601605828133101300360745662647212290685988562831197580010090729723564758433594947218507420076148261192783044800846251295606568801283232106140797195617961856715480723056750648403026132678223954269879857569613048027946989624701782520430038045640432242159984959702223661711159202830065187825104098008546964540595797590470671270525086733948063928539832615920065138740913565984837761021063347397439888379702109760830332953073341810977114040974937396579068969144034390823108985619927538265016815866892912168758304414930448980583456827388250102041742156755857924775353255087052086461676212967016636003300417671014041600802151768874905166454202694430077665686520227907551872864003932701442336977804917502808239626965069381153344377830048468895079071898531007622205189540977768144289614589115087897194070058835524877472561586173296275849378648311474151777511124913167038584479389233459591469643912657205036931000722854752065394466999069689850430198349030713349354948548300170643025044945008518257033433600444288585280556455511580684564864214844304579172993646731798169317365802303769905997971080526110327107744219105034411009166165798870540154764822261155606357207952466622711619165417557242365689068579507961786733360901383891330366414818290715318258349162264140870946501335346288103383862173094418104911686446529307729061061611107944418313943753665423306705420051057830732937596980214028250750524804145880873822307339789519843466361765390139880584775755846617987970294036541035506403685630478406766066530816540952292441447175793014469472654320246913139375653299954559568676740609424018441726380958596851681962578757025135398611760957299187214498866781171969237981878741051530320621349512756196804427366984115967038183851268424432542150690723838784604950377376946174146787470366020336476112578885059935992503754328886558585201719035639197823376172301464671706072969624423023735336980241138155359207035659478768682128921608254432534670701202940096703267301104154020902714322630325107030602004640266099943897972573736703888959696783775671719128652026672546019782322637517263080735381463779553351795243423045421067967169710342055016004546446307458544167653324109806942435401943554308516365224107303448779388526213768759440115379833452968945722740357004828414743739805458345193232451369496253205191337798345051808926381791662456084299655295969007999214614693278018964150009318231852077779252529965004511561132125810365758511175820169588799330707260034869379249843582725428488355651716303602815236614955315495679361978922612346615630308305863397672455333835236043728963076775872857049577167962669896421243008790770733423421307551620019530436170690287324074477591282673568973377474418884752915850488923696404591075036089893893289872221685336817474172018270022515656561277657649802340860814779328142627519365944210641735181404460027008330176683477249055454533890730449610540542469692731072579425194034901884100108599019577074122997441281748069423967875502994194064341275765513595988667026575868508204275172139229545960204115623379761238767668233672048769383619722552880480567697330279159249423203807197832204288283035472133089650439658374108522152916210241757350409826581416266268834803061301732301446510785850616987435610753488563235932054370008626414929387443745216200952287933419048415328665811761132310671975090913200742662408479743405328249545832533274658603095263399200394187657998572100712747432634505185449486590111574249633285582940299831461213047197904026214396727492784701417962737132392844841858825099543716962449194577044259497227710392524223552223304159317283719346545063423091932752573241186065664550591723209583349029706475716584713171599264054800959041690685857500665467487202187237618477146708523209166565637530581951080287304232585636448682534516728013160022256391282574607926985669078559335882925489140570965454892877234838407383943036214522653166590962156966891066184789638580492602719802909863439872514316746027314319830003763414629308561811961334423340429064438974421343295114202902172889053810565881790295926718619237158558332353351598167052649981609843538586828254994405427417752305926668931990489391831157649736122373941602587677401074658891326167778114959035627998954541130958644083553521495811784183178272364073965967262573516067825122084236068572071983397756715096834233767928267118547532465455597094189106408290814812692917074136501418293867954592060768425881441193233660429974667106328474811169107429239653310833873284210248647250480135196229228761968197526894793857828990534107694633171176884091744666772309763175830977949804847519398755010801863966739015107585115086578265086729556485600707574323005721120671620614393805645414483842852950872004954144595372738343131121544914395674973917638455740243131167113386902043374017438394062598207726015607976716864270588894716902850709165419123587498078679825579787825540269680367020582199153740870443581009942576430199585650056839255706138238770074290012678740644392474068131283515970997992910860656912973342620436949793730665257980301090822678194938915560515399225879201762558878339528388824464900127502341081790064047048782556120539263927822845793583121758371507831803551924284371751469480240350066325605579922249646857516547272786469308426501213697785493410509931680520117978473546292730592583662850826164093794023903194183241826934572569548465995306534800184799097706249966753554825522976713444690205363639460875675217493949969324768751209472479788806482467876550320389517792711847276416456228126898384471510961545867128947206959844823045140404982026427222450768646835124661800215715232505668409338991643637507242100022248914432907563864325655740817124291905349579377325870517385853217615752157048886366310716342915504382024857212341273683618793238719327292578227786922983759404450297706878088353684936032082837851809023022875147163765935216041188441122836572520421441048245985405557254779361726284579564291675800005455747203117366248160192130371260569523940276860269707977903423145791735719340483186430140179637230251080216501010467038969726708870603956808259329615748843159829636508599187694926494731997702708661372909513133502995974218445781860652513597700190810032140796323103273556251372195030557045542141643915747675857592083821584475416089933861919458383432331600314801344572719127494927435770582225587985324702127894966995490326819500516967614962471874166867941599975190706722913826838948668862314272110687212474026742873264159970951700459238498926284202293680459483325027646677226193281986098544955235227956030155784586388753253050825771725220905884686852885597710337404219084276569167938122497600791227182448753739641171739329133622734012206834051278928156558077679556031138896249120034531644081272565239218742586181962761444927868044720269314428743644960780289119966225182342944343006457285600781617024761321563714454622088529937901787461748680260821911902087672022026279758071219740284293805959316905685419480735468816500497229674851046640290550557159786553620109522700310079792562708062073399612384003669785456088039032019372008089190866858495434095690418782448983939254426650542764576341740629394444474412818406272820742206648941316012742655246900117043327172316077664648333236552641686589893414089941247206774150666768282510638027470641463134212520179557912230280136374694536780640158887068149337886083277167061913103340569983728778764781905467785887956748409225544966359075724721965137201142271301806362382985159430751551453203970784035375674760826307469961184858420116615539352887716160142752423861854021555081172474810935078900476174002010687240434935869845206664227677155323167712158518054455997553176227225783431146433615316794228688228543722973101637939724577042643612886940726583806970300240704682620350671918514953230320915412158411584664127772978033438111257144213415856651799613536135510197853282075427568212786981614297699353882131266976763188948631950002453652961884327322253402768863461235462798732932342805662744167691339432013828577108079723273186290604498943517097311355102029709848039805267527524969388220728288675699289764105648966645904776491480922722808645439011347128582456512813317995045035903505552726237221099038639697595771652608731316706289090436478279652089596207155454368747004986010432431940565652218253757791081867653698088024476981751704248671181311922637426060131798624734958101136661533957285379470855035730885959478884371827805841881950066500039238326843927626886031191338994551739830537873891006917152586073282011571308926920462335706887423665338862071884364376069138373211171682949446841489172171076739649624177150370339946724918504959216695963626813855779005616349141388041304974189569904615439663559340827445526437183467116356047269474173805259042677450441611402300810224005900044939200165440737724352854759180079130631063588962095792028925558017054236792258771620975656249486900383792781151393983164068891225024034671065800949565824566912731597560772833075480168567490840938740626076932661908027378821869284368296016433156246072326416243231147216867783366763444799121170863752339798578823839237739441631804472546928733368840224409708663703174653068822247483111086099584381901809327362851666308177405053731532938177122237647383952230978773024386494258313427611362566950342958142592843550012566618590000022978905105904078554318143191117560114891003324842565885231251203869718003584087601590556624331090663144261792225570021255671928683565026999414860129670413338837446157427240152711339664680778716066321795746390410898099342829194226860636124391407901433350641491866873247155491533354207918153909685376085970515106073233059299931595984611270739307017519592226938447381213747530229460081580122467097662700159627313130249988378740527854706926178021145063546799369391292925877384352463428683334634777689232952906681623600727759749005325861113055483367442770868724292170692910313535810460980133345316287979550148560622461851560147205471595249449782823765663578248826704820629829449584307654550545585288199291463234664586037129102107125716445791788481907057697979256617877960466142792423580035905346756744919060982206053465296126892052688012394996875895174204118473609875340157231013774921665068428170492986053865464445952982326830403907774290192689181331362466422031784802215574507108949929181614390126484141713615863540556303490818291281677594351773628614413166031163230046559994899732141674172762095722521742118529583563622575675916224745232035940382380106307971361821759287218423184832368225332613845938063438849927502394296326616263776129065594434131359139726905125203493090649587342246463917924649577894135179299471161195316467866485014455332035368575785174373203617041798391818585499243214325956837131190005498739602995481807666801657785623267483097950618649613576613864297214169184360077094448697620129654384630126194513119999114321233190277264285125605082058550535723621107666412723924509851975922930404019046935652378136910043095793481877543942828846568221072617779815350470624385287307337736376761294730036192605688926675171654096898593351941969064051874440139920933502807021659638356041392985381417873930801187822332815803347395059276215104705677722271851313634609039879882136274617587278361766323555112328945059670697605014214343932689561174695806825974860113467557250739638598773467203429619718016265767255859529744565819254356097476473087869852149884444912556718146801161879397767273534936890996742890690570672210276277936432008597747796159882625863916998062267750708620699886841509399129289019775812296390606988873968463030769442019731449370278202276933083670505260085702014458549023780883551009816448090957410050600565238578037082684222724556402315875198397835875636358864271865392232534168102928955433306948526064923945468576140685802989527361402975972607378026679741439158363241985984362654556028790442553378878612781003360469321230536703842802394154319638681918389841161728361559885358187875522775870032255279895310521180666231367407871370814417417242353551314807555567218316874615452902292620940717095114471045156998646624247991718783704632886424425409124894560545253009637693189221249365260396967305873666273552794613222106441808393548622006316946395185704509655743721681382391975917236495399251819405696838413820336396067418331645682373325154747345372558028838332509859154611001340367067189402249314121139422083777886808987329313921748068264629933853717512892040119687961865329945804057904317004395103587349061815231001154258038976585084395550377353578111768835500439135553672050407341279240522232002908426290181165705644484596314808064968780479366171794363950414569784053515089992266255002688693728414525542600078722059089248686953716846280592276147940749965990961705582167604727359644539694814485042069177363840017690004221438355827622398860870766341214777995610769337068355348853037018051979634056163834692714612592445092635360152755758546122324228932691463477149893034332375867038109240611445292516325104926238966458995251382104155671405225434300272972087595899898704969737752946813692148796743199733569261084104525511497076775504369847377154592930329319394158044934038840555569126639102599611491959417044513740766935827187718542788925457478696289981199684515034347220732233537308075200853922008351868038435110758596096135758583712427780445977352088155970731347746492879774903740656428359132660541149138213812088353957736556394337116744966061054037331249197902023549525993466584846663681107567299361309079081333220867782806270319298648073459126658728378524301598544738545884026731900923105722231442069922186246086324226217202423074375748137755307056462017282954773093928326130648598757895131618057049831837633494991909258364210739168693136795872488953280174429189434563334146112164934537255507672696144787221322526855288915269074737029390302291995249089793807491769897928028593608565524041969008202460913504304873862191606378169896679017464382697085047162925616866443856710852300610161717857398788578853329450225529037282754272943805663444311528785645012517741658131713368602784454921246073724100594724284640672560742893158100856424553923382469584662856903809742755508405446251563205598815699407260467024990730745773155625122207586245196819411583072287826646593287987693212189543983156016761806376754510322787210569274494564770622991764428426857940030157265551449941985668183226169380670717824591427319876583114426636881295104113415333252526452608084673277869183208780986575741506224771468024991843449956761474336287513819725308281111114956684882938142700756108625268380817930119600854084015761170189222423946126007043635181202612671621164313405449598890275869444793820699866716722999137149019257458343195165324434133504034843684467863273058774160096015020493047730253513011888632931785459906276589469027592629179897260910190143973464545651505084903715043946935276035084851250447079282615359894228277976978166730577886309707492783908023917249822186195768495288981339678134787930667280561131850473043575183828796066176605311916334754209032972927014144414983028527699808664262330028174240560148572501118453598399480526735523879325393606811351682625077575860664831329771970494727342998881571683584871313571615023235918189641731381346489613124419602961002097534359143807308058918192872815917235579142006340584927488348856299927452969212531071076384661375841893265839754887377058469834880689260244370426894147820131877277448789232045776278140162142508754835861802114988231688434473986244754470631067896181843339779614924793850962036255445145418401040195742933927490724144102656731064804656020020257677012914405754216903933845687458498535289442974049483502454505254147375706433663578231961856591605743525018758293179804866076395066082314461227071282150795606386585878030226230382026522108143260938327665961127404544940313708399728362918829249812901069643702922537835768498903253454476571062076678097993460300704281791170320077449541970120309215591791082206354890757702730695082891201711142098423968071531940501052022476014368344246819679707610288656675504621842128594154884914202727197758921635486091874676921674787010786870415363581749184855667225428473928104249013528081206445877671964232842767691231022742759492379480396304931577272404621650310700388625633605444571865310066330221694591455571858848811317778971029932309175479354733769873533508238523028732039290413579817655522037162742673098098564035153338985646429482911152293829692200730755037373675648369539877215448393820899412844377076039496683380833002532590370391424790048645192829277719909244812789260652957296352831015901996290355593384506748244892489775458082016058773921394089016145044704460614827216631423496809505264772669939796314093429238243313908803929546616369781168820029120701186347702162169742269157529348079217720192935692936146076710149749338046160620283870681484707461773645381896006197637905407626232168967551381971328356747121408979502929945498858344598603270249918121104878782440385104114104644343461640973716644424639680939310963466906355779119731961368100988865643539360137635902634656535596127395963043492212447529526558305834905243505211508265732518487501628462307296680678581258838947501829190429996602065624389151421690289693997060464438432013409515794774455969757933891235973382426596412821918027012235594736829088286727456487832294654999096546847774909650710806002128066837616309576553595516193893376948070890908066746019195040638093104794039816589800649516371157729645082214637059274812622885108466982066666409903839915666689038196970790628531443760863734063096981481124971465733936080550769541267955188138041174042469855040633609247553637295913747480293350160449842929566050321471094508684147884503274708263885993428112292800536880446676698359597584156951328328739580290212738127059818961113818219773594367357763874482172589146395242351516468088366830335823171659531773209646170444193456542788301127235878798314031774717798505136126701039293494313055141162867009255507305428826956367730234801790206192788726780953592516640661579163516324219269790497038399779084170579089927311177233253729733759782298750639857529585957097732461337340374069926474555544580175597978730375541279984254566010634636090012087862161293626560200658587692131050786359236053799912301109647000869519870098858532798105944571270335596154698749239810701373290874579857274619003802303775837695337140459149632723295190458377126435755968794299973772017820981852665762786520379882937159927068456912689923748749292388922551080563720793947788373336907503343120578665065161912463532140069482471678827826772138058548596037434121591962571747781032557443945992028182646163113075210592608274028508723762034269302155917084889915958888807510398233892221017263011854806408814988077707067189544430681445883163331643975279491552657943524976323924672322687310316893265404303769621043099624149357194564159662557530398984795941141616026855430929856581698435502646789456475002329189250822504696888184522858324989628169602457381811809606273602108679192425719247457385763711685239371500940046905405238586485143791609161294634504270686406726983249177507598271644184573537107436807974071844980112331660043238603705150182368630851663896926627958026051403315185008664696238786901223636862382189305636066674722140483772524920560792732062262244810120898512497217316847448782865893309291327105127912170305710548646147145162199431855500330400993144729137766679515361529245748576270369454640010579610979050678430799020944967422881179216807737636381265001069655867237650126172659533253507204672519483668806553995043867265333279968491323587725187183737711389599443957855585887466594159003920269743717614738454988427358927049443640148004790336874726924776443323700010886152443428033748751451504348020932709708442692532826024678534445487243421003536224319487454138790441757663758238413091897397439255912882818106203866331157088779011771114764798951744474619459883464776454181177824708722588462066331234822489339269217640798027303170636878989795574513078097880875527365508954085691527922973169633090578295386828525112638989383560592903615292084828945260382990494844884337929566325166081945805183649957503105658045392196409756394016871477906805178623507049506280201538227157426708255095587825460549880294878196441539386946403525560164836990220212014142808738901632184250221395118229168142752214336204201289898284544051375577240304993272715295382602440850546295386012721643874174898573474708815759888683489146745933379808872002363207277608475684944228745314836385742827295615997916754657490693402529774107429234781870298449463148409165278681842137772906684874301011185877517980962832957220964115631709611005797734407201316693449131921365470901108274116475512765691494752325545770043890564942236549667127149504223282039137804702817181445008249570925466258440865740504196275207008551522978377607194266468562673343845980665161479633319448488934690251665732914244869934235081017721620176424617987046626322130487230654437269948152856607381693190821369819194270220075306128823312981147177914011457280807586056619824813578068274871383333144006512711963710250941453541747724308344207832222448432577154350444800122813921152121966911229082573694487329459464725959671359595591620207417151137444700665516052324639067996405179631076008922095685522294087272428506229614741990290017573321907137138203572997854139476045452796793918563625592064766538821871316426895302000559768067721538666302355994440347246808241406601217629360572624552975898757671154791086909643971417962113516625143476550756995212724252659296777913865512911063827865842896241248824714715840637409722009425852380913345989233716306075530825833305730678850962978373774774179017666570909611900402404887116436211535608710249837129979375705975227940611040593599968870159174294078374672177792737587581224283745937180291168758567541593876304535763667056325305950435856474283071792521044126336583864191548079021489990301738886086964036120249976873535036325929797059121664272792114929430012811383465912160818342673764938680962435111286394123834065819648900984459783084423954985934579464978059767246506998242244598172707253084573337924786002959816719235194171374635251833355885357419111681058191856101552575246423305007015613228386630988983482430070054751774742304601640233344765282035451564877189434112238352885212343052751447908356124398308504990656688024989491798621491010790076872378686550434917917374150963388159830807343360773315443950884912904993254745288213714417635883004938022157212502883216917706010235066554825331462072834804543600852686541441038936233959960192336232824038999681721995578136214608933325907383457996309940366875099781804548008591113753250138253835384534189320652265137144099251897863164463298643731555273444308825670900219909318164709512941058452263721284294258171382529279293486540013476378386362413098324552600832757292613271270238687469731183083158092489533873898374045130947850054808713980060712998008273572259268931114633584429948297624321352186186681580759203141746096809442581466725786105835988059746885402042047611112677499371226781783763998757330652990547733005149604238380260190536042755372378007884478115050367415703313110861877033211207185004636688658580224518068969580731680998636826534220279602355803426981046768223712142488364588516734368445614067295126552720631577260012194460189336261867985032160908487597419501456501146009941750677324548015660793618247544553597852069674834528253241469556410779359311295942292738983491535567260519160531466039696864245991719057979299108143679667847755253712767055167984689496705034814619351554753120397958625960580414199704606403965836465193978060841250527262988801348950752791126945947913718755112047005055556791062031090456204965619311567893073606979049312361812788848685806318621477117158298287561269909734519149796518356026618621446381987304358122853694055866681436323209504494023042090531998347670401330876792738961273482824585634118380593716628147279079320999069869076989619784883070008076069994916779734696315624053445660003946711787504156021579573774677071401675425493771053280876506746422724185413502833935071405422431426552620098286902115683430530229737309664031222382502733976479088426162320136477499630582736732938444415180304404966447843616314289435297003332797024838402230519080501549242901070106654644069098111997196795221262570897078477784792712542045751243017654575717615213737126100007327128150486089110473969330014843170461130612489631895873584962683008949949884101159527935654857966084363243788821268687975347815130972342594732322880035252319727949996744590457997553650291367230989772216453365744073294933667613033171889776006812014558170614112605987615183091701622230701717600682932762985198300247986651626387674602709960373457053179831326400317454852223857600310197137568841406741796506541981940634057414970687611490816139221104678032429420953580472987269297589802544870560308058553886426615853203962116682208345498272216792336851917745659735613330800611006851126152968244000925493200293940769740184956951553306197850556664815155651019878610405005631972554380787414084531600666300595698960695840147415353802984647570854505608325664134214013738628012147656861127162964282057701170439305125059317031970165758308373496091224528685401545527526749360169618267785983949283746029084527736204706449118868212722425777439499154708570797659099841583992660334441605880370578086796801888303808621271652365385663522579437292244979836264569008040368700775006593800949973881153177036115243066862427903403837710409855981209444636844422692730690997306090892467816106443513180818974739190120320323812280890592851998084310941390828625913882585454136395841307146887277975355116481145706347075454554776769905043036079557534548794633388986485373601165663021956789354544516858979677270030640917686680480560976189915972730126882629970864735612793524711377465808078692691474952242239115830294069925449101190018650858029036433710077468914917303917788504654266674006867099753277928833519481227560600776182181950622646581248462512326412965031839395922027759751915657870813433662841808830532622546787584984251976592476004853625410886468265674588261009191559622635540518421234175810538954824151403176005047897465791465869096104908139033133275059208440250435160938066909791474207277926569639851662387600951910102362375046080814715886598289636039262345154768311994645113368552966093206845329262393841560121195178572775154908117387496267518709854469399754157736928441889573726601651092051645922019677017643337206109145907136489429296895413506043666194785793778414194006390971823918801716463841475041231137927861661300013617178736900149689778335023067281864602598821330648865947489277623094957907856424219023523711074120917638296936750654486979832828957147143869587369094121801395364763771325914321762850617910672904344953074196547613669142018204175667940453481822228506443514824939762405499328344327548145885131011671219257947473735753222735660808693456449599292009429207610226680302165598254701637421055077088619611817833978663639302335315477995388284868189909274498410228134814913255608740800222307800224007454315091433914049279581830602714980680974796150421668996607191215587590508250995521727801600955044725241048275602691853010859781034281596895447808281462764702634863173773483137695008857700418477058764581763368364743184963238169814043655515301333823111928501790544966539099509911510588127361286892939203023611894332235406994759353417060739022053683243929269216106056962648667374014542810290433278896640894784063341907218558638313861496616026635205255968199046084572576069743392921773465430754452824060572766536746054925482980921937339592711025439345788828560496335827471798729292164581607371464692414138857398129520592035543075972248207960824597444333966385702032685193571200281400142766434001018511106042910628416780022402612989066064636781873856519537174257539072105787406637714712376256453360242617033245527308133145129865922179898246603653823192028594139125469413990833436467452980539440756106406140162268213774164661766588493933071299438588121039646900173920567572220358002214257970296871797828303910275165249846898132842243750985527887083179183475266082651659025543876028717664952528515399316202895249974400662854812694781715623888541720123239519236371100964936360689722613658427006701919134156451044018370345478506816455242399472573038449068065734237614579050640246995694946340088800863927647546365761602555126550051082135313671057007220271553436572593424183352056298985114419125793560347162724197684232800311270936999606539333389519545180607256601504371989971638844558934376072916511484881623958603069102794039553406333020550502032055626605941738025830609018858852088838893636384574344139804446974026596486262431541827335341773547724106809533987921454248229777144621831977913048895698920420864519075796877724878388919581734409435499981450659208379270106252823608350659280480136623360355443397805718313819846271767025698056941581359674582581488912052920861528733929969934950541650789611177016124443974206211183900646216836134873613121661137177724046863578441988588992561706669250243612038921101102429505239669479967522529291132490458978143726905559653072099826240047952992178088402225181797582699501940987101499135107037329514085776293836370224370299587307999901809638972306398252653796877918326330753974218471111874723747115087235789166067981521874117195011710584086991601352665779283377020647063054296802361750010572718867851329684636520393632825164285228844287302040585053750742951205461274483121929730898292180393681473614677725933405508519337398884195907495482181445790679158707668612825859346805330094601215844028528808892397575604103894350044378950287204243992327469827326187561984940420643388608104796662679953163420267117111895547196016791242854735030492152032106487685562475064428087121845196579718363760266127833062426761680602228032206643601231207076040600791921693586812684070764469657466045966263026675822852089817765131915047873758640924409300458624509157019234523733410522908443506559379539380627611306076554186317334424746389317054681708857536731623003714969993084085035288574796072987531218687141446341471169100773881494869543768655280449473146934716621929569083342753198481049055156734033630937853716076906692940276335304892084185301305665088285154120394695651682245119899871093710232424980513304926646804814736046347631344951800382326537710909454654921812963440300661627671278012090225723952264091480288983699702700652723216759881255521472294681878052871102594405053307014938604674951955069289482747055282433542180862845224607409928536342879241101784254300560590422561979246444586146930619936990636798804132692992087167020410458114348960133960795074058111800865277869389489220869865709002947775778999914898197308613419176859526866238056962965962830252808745965949475360590788586101340708516398112641534474666184022451208477886671312867343939148648104978110415633870957636000989087484004949028528860043004779814302048858305674111483432744370686442464030029255375178943950345641117501413388934681738375805972611337345722365023945739848745928429424533644531013809098314443354393558351577375960650786894494509938518648548797453511579198746622796328381844351598433742006598800392273260887315273181123851527726086361945773523710862429952231269971622229960254090248562057262894464970831823161336530047718793408222600663057458187652741001203781616556238033649984355143564524402797630215520994409316494820847679015068468443625705347806454955068537676717224262765291780426652401936471115271389670646257251366391438428189396213760272825934043962330675062231129627232668061415937755452374401262761952417446272466308727852219375393757065611184598409470017447030700283900636854036609375370110124729177815536637529429771181637055177470473448147371745379473211479508565996357252936472092425386872088878372039060080137506352695908633883510714130300751360124327221036398965591484224007216197644495712579356669822244053226371277237714192872100457185660151596423274158379714082022938026370057123880597723624859577555751516161648228934922642902222281419303507840034430746888056375980039558005585123591465263450972932272227394430766966294981383648047509578168753687256519862096573674997217334335007454084617705301675016431678268333330976895563824626974558901424755689451865519857759906346982352491391709665404238445385416561159462745832330287164204050821135342721488807025103541984406972966030687665762511220220080840406105940815908260743684237035749514952155660747436671537548835192775327739446342557857531750547316586703534500884971461076204091008045841150928785159169429140750693388429095443718919297436530513234286874052924641286516246874789897430617721049605357313907356382445343477155633116242179675195012971539650642509290617571274755267075766037862496162957712021026572375187052920413906526579235886172342400295913524963355177303594237498204306673212112254374549788171387534089346284374108191370114438031532691991377685750971187984706408764507720355755149716021537247028938475257683920411780675102307064052914459005018676636958067629649697062289245551773556175755674638514352254694607855793468355605870554301918734258301870647938094784485676900716096218674074617410323689050043804038960297240132202883410525793463528510677876165116362776077442654187238199968257670096774200490483985330586698977939180196945197423198223398309936050757435068995924630030814486240980039108814632471450876238699651731191066457995024194398025079986556393009469327623441093848167315602302993707586766988559911865373835099921430312200383883648517083170873943732302197604953358783852826020179712277279762323737221697908760328683224885589235806213022743377317926886580414593085208102922493103461546579872115774528368896662026042791110236543790807163818900966118687742460012172960945070478944626824131341551786582304871561010662530941542902292556307991734850782764037770012215829854634770787530158806727688452888063284311777473033516602054905873845900848535977647987427498835001310275594631789772775450073748849835141187493137338705270099294714232853444689051766148585460980169051821102881208282739918884165478353218116494601067851329921485135162928530031006788909924179876933965479017880564021629198229199072493070658786980015083963302455324611135300965613680918716357568484758428114041374762209555016223513128294491138933597903723470720928050863664417664182572348604240087727134013423291495623082995413850540134120180505773766633401758230541604604139332939297409610167214809563958083220501911938800560138664600732005341584275753874059002816404959514089008364200289376479248370047749212099810197069987231104178169621593963748657305282462926874183534671759946130328796365155715112509004272406891829810471635369744492078000078651808452307236950176692850622328116196745340505030893607151148085419162248866708083275537361609253959548725867653125829738794621760835858039236850988200435634214499347135207602611957494327813577893086073055904270450292822938096374158360823787450633202100481280415350479913332412773670553606058963663393634668761344414422447490389294723865494908116315548447989687183579923104296928043768569849291020957807536202557303145919825587441946312565867400073318162130677649420385391955454992623389996889042738368549804994364963264785949751455474213580315257540041859530106654369804450899836131372662127238739758866597814087191622922078465595992237929092021451787212820939010342162878443361573356699310542075770044658378534769859965377380320950326832510922556434117871475847579684874749586835646454017939989572075591828170338005894954812352040965137279029348873692313322027368371520360039609009690308344641859833579247211078300434255944177917350889205989746639263981491683925939002461385397628389730182970966667664986284084886859020911963181811817088562204303628584446955012504544944293483103467674190786129370424454002920629643436299189542477267130171527982771192217765186638514560001868106927206092009349688438407073695325946467105466553971718529958241147951351829938855703333815138201354313888639394826447963721583001842300637068991257351981160469578026492106588567268592617258586250577517525330793452128346342431249401784973204927007271920060521846214439246944774814000139092118261480911251751773796385778091147385167958127817353810030658031360181769182690759360081110071088238586315096033967547538740491900190610493329766215046238146568872847965581360733253038575061996823500558973044802357925588291376698479680876175698994551312495269823872740515053889621222571938241240062354876102293277739116726558674420571405609681452379988917711930690816186890843176286889605263696011458989263688850712105718776674380842960985264065862517224987381744003634381706889481349145958474946062209265777389066446319370765575970135857064419226254666371142662970828922113886811659420901351920547314924838597589018158514610453944749041322516059537735976502307539116388228775074157470134853333780694500430367452490066463487899652602206311740422612391907610196261734352360425655314783523184872652593779945516063205765165054116365027672881317860151484723460670152658675742523990279751695410892793619791392321245687021199301485223529808336859282611762983154401047372468747460150365944513231106410240701266839112959015368417104350524464887866793405933056509603269102093467349843522677734468614611488573167861679129914932375320175735784553229479746984856056511207124503710552406823758468936511505534516730958063868001538936856634248461371754183339553833567289633720787099218321750916902152365454672479958497733811551315285117940310693842778128010300486279130914491963092889804868599587953568218202921901845105879461488330955755874653323009111508777490725203183370977536825900268307768471366742352719540972363102350519930906157269774202492215343921744363933265576091513832144075355041882310637819227777811847992604209872780322093169869235783907275758391106757802901811695993899144056804268891572416279428584783475168220539423539209151547994773416016652265677115290127003676915058559262267248689842665246590321723260319273943660012854376990485788698126133898396918304103623080553953579107008463819893518731115442821106547844915378665945825346203035019463082993034020055996113459258482394737428525829462631663746376785782333904532940742718245586693477754171627934463518704961526413568802603482242994206835182708768210069679327103258924173896808524427482393515330973693819325569150389700196972717120287617775390759458701476299859585870687483536787186613301837578472572065263102591887857664117337441496759824837052892463443907089088198270865935247815228596477470668108842054815075060635270554518011555234211215031422363434567703328680375560587796170218706698539641825946169943105344006367790767350944035362515419461859517212194031121457589862238458797789353025551139746606599959163078496631484922196602058990523141744406290359455390652481580384400413837701924637532882835222167785757017820470513637909789797398987055651430540191487127992607387072784440480075727172274904292231056621723951451386003492298388452829713027583673286094364993978364062233409200911469768126585582119681370908138114428843494418593413821839099295300005677143824592358246418515501516091137604409264808331924348968187170998602746263891871490845199556866761576632676295410419987382849162568795034208503330650408292963263018650935571500666441898061771753420519441032377187959917655374700998454375153521283769835613783129655763918104145868158764748625958579432996893832406436220479598246575256512820763193432429954788721785694016425642189824946476309662173176762106574462985015253737889726749048551305847088500033355596620157798265541296848103817196680557304813637275248419978679130312523646105846091521938050017413445943336112450857787258369153227650737577799843568709767814915734547063828768365414578622492664921448036138242021720150770313255729372786851721679769162783189680640709566792668213292617965506225845141703393376477391689969441950621142423818707962261262301452260447050714411520065860985630345904250978596512638399468720337732982517652285182631450011146313012237858956276158145428372180655706427304262845023379213089336282205039255950041382097586094388447402325064602380278858662798559724382560400816643694149076591866929670521244436515793896370879539273786442078649977589560501232755492579837167306047469793652511902390860115095915343663358475319601730570054337008512307959828364547227603241737865980719166084628394829941805379504498460658814569513278603550029811576020023702690359307201453281568127321637857118574815023851871584339225029168691545939946078229960416283093726057912969301687671773623496893341027661081937468634667869753443337023588827789524645239255376460510263878869249896266737664026149116641841699228258715789223504729513238208999803578755280389481547883203103735587048976493333867748022939220057861694683339973711808703888036469607468178041479376546756628879727034645227296004640325928345174215607920722681602416075791105501622784929697222221799436733644701441310853634238757286828927900720847421908986942848443133695852506877361957250982477638971646677510164529276818533376598314629468954589401002863943198871517229814729754161320224451250482757356887623177089307159915774561732551907807697549185875023988524916719917489601000966529261659320064056214328410237159464489294635459588264933705522779900383747208634041020869838543561070810766556220443249629481255504802554010696557567371282759213912822037123761566687437024045909487146120351353880516248277298109382526242385581605009555765101958649326888380522526694945198547004933142790750555171743521537993856758346543170630736566559341417963570455424316992584276205306905067784825309462468887776965639432078490030589970606029126976000035861398932330905846886465898542819936183880495940049404689599726085973158268100476834555810042932034250886052873672904654724076592413358719110240866063463199341455725635446201842004735832831235342707321872255151620899036493840011235637391549689296996622184921927891938259654103685150488759178228351545321216894016428008651050544740066910414862693582638295750333804828697510014810486238534919595298886649360019083200720003812991290822097830781498370038705328886247701492749073893165366940486410635085652021882476090192131740704841586613784965134810395881478307008802336304860332278328480485204224302525672840234088301472256442724049662041511153838359543458933941841304375627057235441073597221153958468522011810717333714964492268814570593470109085493764370184754107381185502280918433450045780020385566655506101481596281849241495428362603874553009475213394522270829372088499149875438229629336394074624211453224718484557167832417769445926813139895646986241610580423177228803648470378707037589089202885184343514952649633518774181543418091408235887532892033662611727564786670379853089849335297925047881998393169301253015926206081459231458576696522337604810279082771702196977579984238652805278583868575210619925788005237388177732264501725366548974345731574510156198870582587271766353154417059964358170340735308866970085887484424632351109744336896503307717039868693226898832083749195504798449611023209444116633628688666528478644350670750981984991140891538055709619573730080781895368831598146750532882959111158253684348819225211534642396665398327077992451301326100851405429693231435609257477317302508512966905286176682067096526158965451979959514202025033014341418938826896596180404018920329085353581880770297932159602800858581376954398967853223091796273783269018930569162756099382396764762908828839058504519151122957479327601743925461901080638255010320562838320035583580974933293837433750290496003176054346493353817077647094454757497943096848157072282692431703298356361962379714427623183225108735959332559392742205943466566340820205691532700588187545330128490254827274053632181347267257354689360357620553726220601142524598998338354182698060410812586745097808956450540415266668135641639961612118560284405454528494755074804444055798600114920211073504185224727012067286096960433743894380884857004894114455906534808288449047499418394097582548605806661044830589865205446650167601234675254939593019654959235838564445494848462471376418043176644226480015668188038471582257218515201518683524751644262345025121146143225511546242922951257413326552393438908290283382903788964543145026034985506527143472449626129388220188311146703677222515580668948586939414035972319982246018441561113415209653735403750415291799059313648092117556607621004154308355370703245363702712873789374547223946638453571893327569286712046732633048403776009849117734131169501079013800869569391947646546554574290710177228452207557783105176134155764573214164678467197960319764338969674498187978442212497287375726247535866449802393673265173289079864350233147251360179035236357104863706968349826417853238444738042996021753755187853875785169435489395756508637447238705260749115336880871437378337846620412266220342938087844388869005784162310180941291711464258439895435433327025322787352562532678507549562199458871223489830935054566712179456886770140202564864082020993462436383029233280181790877884561404390646199169084084760198160569075809378406970410862407125895270034161185097018709534367244580460335340337930380374164237239268250386948829939445500307007356008090066260484204873005396020387540997428437748045274833347516357839868510518655509705094479754347670380665164724311824099249246885154215305654906543052361668382154605619912485871673016039293944198523112712163500793844014727721653929480738388402189933485979669473783966492330212033571726655631795634676231951910752940743882690738787393415625580523922670476937775341310649581893740197309484806914423267966265881554186806893783160459643228446929852517944471537860634064576911650685386489173665447110996567810818454407994616451774919292941729615897695395840578313978572635409459622913939288818935386753462330785522168200981457918919866400234185508931528357728572476040428519943084485720646138295845580629575073904903067371505751482100478394673237529857939847315858720752474575298482978694360442948153865721614897479232524091774968834263765028364975011668172983457509498173642876262870910690649346657262583221584786225140170863109126017530838212199875344277876521029442590331417272974726675291610697476207127053347025528750825623365123651486991098539835463476584969023772170340598721865702654389457018817877111565034106672139676303787958258222697767010769054688349786668215168730245735216491161554870473359081797934159852181557665858448864175101301691759990624259458870165459138338959175844778480642400794136936974220621967304679638848957454540594771292488560633664937504797884701765046869576849248191500032850463094786730515774788160368167150284043056369717043922254690718142181208581838285788722455774894902601524031917589446397848473581425990812090960727424242571124000271030747370202502296934065066676148070554879075358421339422411638926242140039999787823971038964105134314695814822588926760775482120244443344725677996631832853765603267341060680422162436942225723041323914063694952281073584927563763357002551755410016069452736083568523269487625965729539921097508302993016957331122982968829007575205052064376351059472985925729583723555690708544450656605697576079263844314562185431433490542874310414629442202345681547897261878655081867508971955065942126194791328761353620740291239545473114656885780548819427879022016290329114523684575457879327520252297074557840344885799306641468314770592877056876872056619476324341806382532210623350863179600841835388518989856275105911462568400826683739893905197432806449460685650052308293342896995751296887334051321602640275154823230981954254732033819483104208010235162905916237827255600687655782160804201648798268972305147018992239629003826648349648341463378827029584083832774441760206418525443785589919604859093823849531044907364635815762726481100114773727149803873049041904277403432152429518984638715946244761561126722342683613578311766022767942806727721260110333483083953664857585111853457458009720499663791340225212821270759271592919202793061421267693985590531392096420024561499086259601073987619883126840871522127116266462160350201477179332954350329652471868388358380983519143237902021082412934165391419186268829778700435724775773773955601119814658499606866174288400265062367999293412034822125017075666601362478274870335663438423115837415000617517443902935108816244413012546866287401087869565257233679283322695865636326172781383126646978018959588898235232409286703789989168389644097314613505199508608062405900193379640201591121963550892319841012181545876051525193519260481154489866239189754435718353398261653581957693236133877154464107748758076587459747838033065432597586972974723444071673235460821048982820672475123116270819015922101414705414106247315288234993254560959315784251575813985933748754506216027663478273277105255147353208625750532329017723920556489457019197060626215679303257592375392060016269627444612501782518640340875177326055632463237802727491950749929510499204522183436175062033709289700435140391816681198256584932251914866695013229011523415305790035493367784942088416737134700202088517670047086512543884041281675412678135832361110696616099672082568759498320442510285349626080039978671695936084885300480316549941568244339074533333471022489442971406445495789361211934288219855979646221656871382306100726679953133152203659624022879384224434091184066003558874197662807152791702567105952262273456882326884220234026936720940998321564448149369162945550699791181887012718174108387737250355925714457033158178531290249411905002014881580634532465807397635607080251044399603530135208274037435629720626601030417299390078078156641860780862457558075489641097023731467463853406018967772375112523256973647436478597562683337798872739647805036531973764314990181555228268118941142652807626119023799658700870925606159306918590255255983610589731172708741241445348128904828982998330841312997646804136887948998318958162197670923480075614672331866407018969018796413831482421220375326483839040849189997528567628131767539354984592621253965612096620827636724926617897381061225798324345912906005975883342443374470344163558927926499404011454811771740352798151318123574614513331203368204482921220747612384809436902924950935958947617425392003067540090739332397878531767918538565740047599604607763990317120702439987809073183936175271804902140051444162811400488573729863003165360466832947796062855136159867095488127393671490581516165575580088837988098497606787547081158468100307453855194544079127139843416239897169563332361525777171396200619000510935832578245179983690921399411190348322203432540216980954518460219452860470470555341986395032492340034065934952434225683436227908272720890004214289212612126000146844949577189313542879897530263137172215612458994389742033282802428808493052220028908131245428477299964337500307455737299782695902667249530998627308653942020783074303770733761672566893065356376368494896958699727639341472259157736305451016438699538875488561677580871012392696814866631903570826743706512641592665874999622503228850753432838846316085775849921905685731347840057366615217170132693734716319203299689477661815257306436067702988387898197313831348779391327507157939900651206854628363905527969861044825230168262213481385004739435111965049667938588948156760323846456880733071460684443476442379008698253558508880970632467310128338462716387467717269351189964226888476905962041864074474508595608446048559247478451196404280274923114690735860599187304063302330282805566792592711232509239077050392696232495191189326033890537513917333389702858303344841576447643249826084662692571066510018055218511084732845347148398673786352925955893461549646011499358086833591076133571103586143610093892269638589912378216969012263959188011611927986690445050615003261013769234354842968131211977645734238767193797952859773910180033046441025530031274061438918181497705045043130713874952827008714129714559890116423454509606586983256346437904381489846744184829918798784694082916048247736773091276819382910515880407568649994071925675545029148004774953717510025146989258347288514766250390377004285123322186660045085842892249661960724818979546942142302597063612258072777335782048102964246579780004095319966772573092692697096521881428537923220275706570715063040709270866191150914716267706336847421045667164641187022380930759628680187690898974001622472307190688562230444789635844067816973728125526825412669122558462444727642467465402638999325263180837201510324711161191206910222254572238319343830656003816863693871390584789524740254048574348397026123751665822616077810635587410027868366023097356246072290516779026200591190875925375911307962815455212842780908406778035298048092278758226903424645910839626996214142548795538465714259183543811351196048170526397552447558964990700838368233085049601873670057786502207863965341375729970333114386234619499909418466378268409408970355357020511951319488862074939476033364806709339050108589875184720206931675129460084467096910929741015332007811187146655938567874993886707747155581536035449269329230613136342688253912201034067970324373074188175522807343226033175674636842033448451636297757926849211721235463998669179153057261378077706843410888719222856276212396604165024512962501939159240179342552003765041178159760220021531753839405912478151488730379721877158937776526056210788853359480230292995959348626587360227694933363163249985655818170097681333060603500354203592878611670478740399230813011489245543185929046967618132695913468572628989484924188914265350251349040491249718666534700097820003357440171809570521230574323410229008043988974922585930754353854804830249186364691312627711329697149836716624689619987302284046791939568132195765096901506033335537465189441321435307545932900892471144851843531035999831791370770044358284701825651158789082335010116175588385656762336816930528618137022479811960669555164466090232689659062873380903611951806722205354094635869473281814185655530232928771696952955463157987447276836704356638563123549101193866762110003496523590229076836413431888835228615916838868905775783753599531284979850050849718855517188151618624249028555930019033103501862300373480814240341529534955104341430197477377679536694500777889132213350183184325423870863182567308070210528851947832353338001772545720244332938416672245264784308845107010928164331482145093748337640473676371209804599087261795859826006397686480521687591905884068866850912805009261249721161770341371403666567889546065066268941562291501168333512124622558015730599070768814311274180989156537093071750273572182524583257630940897874926260383812116936663425972691396105819241084989491844386903706832226903763409843649370405374020904348900520641339027834919157773468367019762047957282214362456730364527336013904298373685565095268802724493789505377208285390968046705347161658014060987928875916748577111738943794611473197306964509197345250511866665132646189261513188292522787313701975199025163730647859169015304878091807451665789296500422859951459093675615554040246115205953308975917522621581904357859621312145677196086983991487440635552382414089763586719167878421435842977625554600892801789934329053495300091995113909761993763582516757749819217874911234576181125240849887734758019709305576988238882210486839036626039389962138496961091684970726029427814694078872323067058651590172385718161402588226674378532662436728852977416881078513889347310125559680687932254060309320834873196223464321463962622670409694574002606616927568612184042492534478047000205624429247296808616317429568774215646013814088814550775697985762206446104089586890478835924496692676735607486550082207049395626267150750916061345531198388769960340050121667390910351705129647764421950865446374352100706824842244379160540117959206700923453836464773806648440160630272049778842759708756400159599757708102717706308696206791334110855450638812882214048122339661429507124899886342016227462563150320458664467846476827720231449985257987200582694749150707411100827670954253437602875256608639822351480735760404632992958089215959785772565246393641360486632692092932110547627748307073652604128843870621113069075004566775370568711335124663638935556843527376674022165041882677277873389711891238057105401190420417713357694614842398986620719319965695787759357307169168105538850514079814695843116660384929768128830225704860030102044557234384891232151062179695190055040373606549066753640949494188447814740639413807145084794983954516966319840033368124067171847928484071611554125791634824038245010849349012202584827356283854181206675945982694825818955770905649362220004219331444558388746530493691575539731796411572725998145352445642923787321043005374932112885929160080144243904657768641579789852756381603946784121135787448344849549015508178688850061580057965369775761601210010551043059069868434640708417302301713173741065091188654001485761869832870849996181158809812163446959307234301292858123630025856256336762676538051931792222127331701820297538475352496547205906178964753137308621451427635688796359172738194228314056476397198914283529534728410174541502930212571941358231367293227160277853949193735053683893439930189022972030763255469648147869939038769929759791604114956763201557694743814892114011939010738880520828655195283928881606089521814331467525616634787494334320800490633210797001410498002713043360692056685241452139166288818707753963061534439997511789962169181269026289208961181451362324194204688202231546800846984733739546452337718667034001006169626617344091247984280404984084981306896361598970345559389894928450174292909679660695453400051352191777512367600750046259738085688901444695686706810654051540235345628717336216843310985912418591448587048224563293885595130491324970702676994136929427845062653228414650426099609280422978115669275738804922241524395413321312898901571985993165165986200976167113464116375996383513009955425784528332297106110980911925725165790697829618272715512944319172180117184253044309285520959909533839148815042228279651848229047484334709234422843414019546339076944164963318329346414655078952293534060316505912763809863179591434468021584810914156307743540656368214199330280918840230033141319953855623352745315681724893862081588964232139396026013449273618414052184070029086746167558932947303802456597498743028019501376281965557629229756183172502055143038249927832182667676368338947498533252187656278595526496944210495164862720638414543977516046910311149898810944565762318094907925373164582708746280270267307525107232508840346465704397217544027688087887806075667780218089336592875832031264357893848931604547753690736783576690393941929609482965403685809826482967614323410460532094703198729999251688171292929896455969161987772374170841020877102842745040931719392121249980276839807731871080969732848856790858063356673698321684421266103200061637848307991772766106273433347741424793184582353382836429130862463251893630757540577294170480582764867644551209361239784424147636066445725011176442249398132732481721689766287580260911741548716628250267544351182843987485331546929141562915186022524594928842415468311063484579820423891269912621900215760158200783007130391581571378981308647349082051566065688633305242649267071076065603165880460183220457736990205380443836808540484120310109814656382815018454760181871373272952494312610480209933534973593070281293190423090716733835860952657404249324421319798194004969116859491335672402537276521510177761632341893883121459231706940406224513856726875795293279422788449050208882974140078180472540617159412159018426944702499849220160339488228706457233926707113574556671353026492179005929421675795428953190421525405248357762944656041000547118305045722422324127740272319397734228706063918180616561793741460152671901150219926410445854134712790668780973615111213129975979314607761976861093196736898859630097298875799857142761071444018462748710777685691578128616161744105117537183249839879345417742453473157444732928010118188594568598116832811888740437689945914581095710196087945829632032366521741809032279925650052430325676301597358944194304745899186317102442445322280093924741072146250005447469202295437113656607824777052434930384187755135854206484567272651318660432962307741297167408613643191108706945740554865585686773992458679485745828133617166401641584738098318294967005999319337464924260406419493136809860839540925623719349357529232991594080229275595801138425772394725765285773359471337341420363376951576447713472390003338769181827640845669916257037681600255716745266682703552278633922397140312663777519373596815599429168097398799116830357027754172438756145387174084693743929563331495946481858960308838962227836368442854805994337155320221686003836328158938420020019839271151401186043755853420979137706798588574979009894567366665431579702254946594240566160210176114218355524168319494028749811817581869230872503866321627899403008735799921759788982686084993992812389946900322460842320179630487439826787567277408407196517883922860473822249060202735326672174980570220952321024089384502841686775391222796165315560729146992994703701064826166698266252220872019988806192041731349350639591701757916155794240896658315824678951581640901336706769839422413403781132351756929618677514801006441345690227118944181856705237195234635550051980138387890061815759282284127855283906722088993072595788110996234258233083854094045263726871646348678910254553909132572334913711688208740874851071553692587258238130340203911459843676570423752002778572925240803493764630550667989876556072506147487540268579564152103313519212830016655946116825030134865644749311863258689966756083322648735981916429720416787879384692556587460377505195061177509967002576843262634949777630682135680045082591174125438026153604574993135147776949510646793560985318085749317777076409812941714263029681543966268076084835475220378232560466982714724607385983123069944635178100998229925119078520920375470977059996254278809111693565262107512977261043911026190541861306553304434227100718964461407036858329373424821860054469585217859375623418877427209249761054226080348799084959181405056141409343624802744173008648331815001549206654358122534394640195296067285117217058654685144640587629061996869516235201252690147686727433791224737787740640196860739583010539872006032948615974988198362652816640457354105434175763823185824272049185586810560371809992667969374630319059760270380610421597308181888240652187802153865519982480465235208326156069378702080561454426300907342842940320996826403798917389833875191689761023607516289879671843845223402678341358589034072924087098872129698149708926083320581084388875724754675957176428034041857166108100887073130957427509726184281624538939382693673343473134897725562019147972483573916868755589113528111239474040506006436040383347783244460658798060336429996108576090252242194744931773472351762398458965880412196379356044998495497488643782090414507707036643116693183857320667039048206226185183505355573998798776568308093632361099313530367836042528883552826410795580198864302420991289000043270086563256705119949446798737210611204723463532951959677344227024013627853219854095249494207542794241147523544194346352881859541380007527569288317889327436052411152496469343923410374158321160356006648849373154748659131048782397516251611896725695035660456696875853300400154618389263163446786926494495222376059997840284643513646584935679588931876585437442819593121058671353046779543691899955371749500902657708103623446681958869410118256516836516652456678438808257649161223474423175635007268371432858432005449082440000031628392557297476960550771044705837310893781761434049558347988349174953477473823833799576016956865455286094688483661479582254633650266172572604930430941847896981327858215621463516843428157280826787219984638893898568104654663444165322979824935579816679891156268990055932647889623959448239831940103136545301497719379189931751804321762632095179063736101817390857565592603079267348920913843213468708330515567795216208305486070474189988691098731245026955936397167779395200026660418783637141727420710109243771131614133302776605947791013103935579685419918170935428782893696613405443569825621305062650555302599954328818933107475062637851931236149429917900723272581914733761523679240148006332859908748097124117864043743239508043871526717921445786199055917665262445558105784329762637868682261713134990908899860099193531420321195523036839660534274605205472505290531847250747217091757357797050151874779259063137956419242771693294983727099073038828132795283353169335448562493113851331208133366670593540001736593549551450222383951021999672446979485341586205229915489961503781416101051044616673571890088103028045387971759851267481454042912775042788722685630216275622928422350160512481207205134921547356515276147814864793278669302077810637612450742979915364428912080452358115004664515524937524167610182331598154975483292694349450309973410853621406696303374727705875173101758374149400196034700708253726498720816445483190228049944392527032625835381173369698870530000666563442680721157767374472669437148017310784437782399101385058815546564024269048592212706353711085970326764942179103570392300422252322173013687906514819377046790694825248342484462474764894332283103561895640393766226461310064284341810804795481492952183170857205315486729881826873541332485506492093035109546937798474596384621250125977104138763884775774821993746307350733942656882916425441197931694661578726317402100768666023533294015764748743829343929513456808123075918743687916202525777452240714754345880182980923198843412967810653561582196146631761115515527604798521647758200309383633440194829786861558743079084272399112621096976638326558956194770704594773995181616890172785013044073027677159339200131500624449400405639973948437864279879179935372929142459645179496396128866518246304896023370014970514466023899655675656625579542789302284837605787854676698795011886356489468856655557814622298946892892439236393279467005900607898948282871426741499364377363578042874998369927453964348045344146351561632041621171444863564446654327406253831236636057677589726980070987030924902879521259390830335361191952601940972045780393234233537981609165014964526766001261206008140994841411117170682796183405701356336062228281571194653732278619028539646341568228486404719449174883090769862459554836148593074146198944207485405173610462626614543632535814619325426637201400915252766550056237769945609896993650560580603932678135607494135852545120838354071212240536254639016064577294219436028646656109904996791560219605852046436400762163704889466664752462518137399960816258951864402933293260291789261260524869125564527452618990413793524739978071369488983263649444393331063227047970097981658139820845031702623281811337518829216469399556850931442324741198853165913579109304215658448653130933921354925600747353604480753102405372843699198933562236543735644524837829440514813568154862234543711665499972525601241702681611804103585244122573688145178856645912442563091105232014497888937120092661393772647958221234108134742187013781218826581029923027616160298805036110669792193528413519451378144061132121618063862532996488570719305672877264175009727670232218013840716204811604435138206692119157246182435771897032879969707587567415762841561369564498802098483640761031960539496680713987896630188991520638431202956278385512491247198670402375811323569297080577190555241397108742103767752844294795046829202241563544906206562227027064227338615169894875407982190782969384391025582558166745725448444090968110545208828784871578778412038233318914053341973857888968177664538492794270764779290761266354581532855920123809039590969043052264923165714612488607839457987898315102915753388101536055668013974274472908927442893791534539427952483839761478288335499390321492664059879338728900065026036823528517196054811480791734682434812291973755931742885676877447226104990572372566671235207363983229499593395265884925043726749655456248655754784040762497497005746002986595538847602299658493316858078083292358357214214927064555065625786477510664223603439310185546322837219095211258904161101198089191226778738910881613458363937008252639197567902657489488001013903197021365727553516522240140010227181413849535044316987941409545965096222019951329943743472108234544846889414972872570087830782379844287894224888950291728309985405453344237560897907537653670289118329888621583503005943489390148143629090537685573430054537361629952161364783512255929018339277900768893984244770999757430336168758171543027150899742542017059055695640895868214918844085194769764959723016068448649075728695241446206195813511852353449945538337490692586185719641152618734523521638635769908292282940437819019226840105294348216414968446102008477551071358326867178804098779575054161227536515654229679651498381602837310052236888921523264686133113435118452560918796177320805727476672315546836701972422267574997223178901235568428200463000212089631760478827964772597791346129812992896881433843413596775953719812563708686720680907334566000927863942601463870786715464700506725049650561700412012790292174886929648951913146546142428739745671376516940929010483155437886664338211095448462395260269434597628216265424674454789481906346464402854106577299374072333089389041836292162788509613481606309465565997463622412359548456521085980049723280515265836945722583316555423008639592256515767019149826207998908060465645025565852836499836472504656788636201670524259766959138398516389436782174770249588471414808125888514065039652340148297682263909381330161123633999578718482338575273426144013037566070361644937362964730318220767866583921219234959730617351390721324825798271618490553601750292694821862373604999894916615952895161721032751616961614834569577731603213821142636371860411944921192826099251173785325553409956663370353857767365320013776040259820212572620263173251101295167705482513963600365813781697904815633953589899867232212623401365820966881602851865277335256893238086289223170829854571572867953205241901996141947778861208813388401938182524555299388954679981739467630034803787481417939484565306475431234938118727432695590466562636273663658621855908203329136734263163221554401978705837448689251936123753658619497199805661901042957384021420221713105377868434136457680536108973565393372495840703669671642632219382217321117788013420195464377009112107315143297596327844488426482314598422114128615119715816337640326229220069397927166487172866934565634953044767820655830454905696798698405935499330938491798977822249741216502549299533505435031864495075447575074487901109458577376286708762996616396621663932403196350989269625844184582863996092706045007333774485268086814236949065274398003903160302057327191646640777231059682186584544158618463926211193719835331313315212331420508453364625350346211257862351922765147409637777080989642125271435609194373121766244035190987183065137774790023505264285346581599779638897643890251263856066465562211195094248023044217654095923527905622419995075158888127638829729501045885797164262851913461306804498386011211392501094996790197999107168060901448917841683654740008939181351102987414504952508854931260316470435021598106668947254873048866487399978704821587509270862446778533910131614423386690791038954128752332568746196903239276677466407830507594781404991612710526153180336463933938036453524315501111230647218506627468626798858700454391727038309598612823808252890647408150056928368139240417328708171567327238906849987724583603045989013587025830976810000613912647358001391837376775464892300280273693240488963889073895989694777913549354055605201853117430640306736879322010856890284816878102955130387694452549716223425839780097040254513229029288568097781450813083455981680964882797397806386052883893914362661348130086987011754638308084736786828913336005849289011864175236446665497803619430203680456097666992536048283060945407654381227868700402311741535173583740873697021732078012699986899823114538794193904866545019775208994466345075116084171562514874648564096105319938228001184581930379554660114256847311211763064434860567391562947696286034980505687285019856616700536931868539024277019514102639959532603312749540144870369045195552654591441599817066864192088218870293612817942909168728307156130533190762726962203495348557774288968659863834239242901123183155586724838667491448009129878706588597140669561613600536582436153779517793764967495788709103235638436276962730967598560912045201892249029256313710842210017590549886193812508881300058538383698310549487252533925410685207199228228712069852067602007293920322436967164786129254153038229812477027971740634588999626423001612151571816329926772441611763693918082704805045470089224826938277103403298815006358726590774783053516797495999946681918433276492496317180581108205882926645777338361991607328145307381598451996290237244615095947072907241912124916868620419473579247614699924466843892779532253895464840534118762755182733092664635846518848070407562061810307102675045191122153553897601931921553232181607535711040858159127485412600841315683211027547627512451801205534144115355988623035695852349928564388255553400883875999155506736609277820918089479943978102673472214660384094582873525033227095769135466784620220192188521511408041602023268575523554622475316315749123553083699558728564120714365714483656350656418253550240139443962160742923217482434045103184403290129437227938851656897942307596911646843603897224372930754959600176394482890047790299811497814014641444121015333032516860586223012939245752441057258825557687853912194359549931807720485262264150520483218837801895601926122187201668430999483328752471303651056859917803460274932066063669100845164886430426863456412480168320895817660013577720714991513126294223167205415341628943309074122176212861013810793826938773833064401212570259762984764870068121281082074812536598605785306351729407593656601893784005026904672530788856831114665577126376896033477945035073322707878881425249555152266356648906215812515907313062626158008353156580896304121397147397202390236586125298523019657834971093769931752722624961816010103945129872063282283280496358988090419439982742464321409525918153893412140263105475279916211653690362896632938953271873799103416851861241035442362789739709521337950226666572720426778488660728476882255265876683820458463312777094465686199467428972830759685447342585725570784729110201190696669723973868709159769387779768057259512009950402239058630707046244383537859306664360124319056448309665829466800168698631481949506437217132103797251792075770057131797331418643818152785708273600149154719943179516276818353729449909353941269436768268480514069438738828895950979093166008959724311212524857370030127133265567357816657181544985124114129732086075772593885392092487934213181106457162348432079678836642964886657355138039918446741172439692246079614810811809687515622303466473174642869485841289623774128950121695381054564469285148112368271549259394119133688117965748536529119660282747466778444833788848900417406852478424838226421433231196484726560987167880484297292954928680446156369578628592548385526389316371162400934829168431719989773995782874505542755901174691403359385623213519666067462697425752513178048553911920413014942225662700932268253641287441203763450210759358449644911222033265050586926361706447277157018828074923058257052756999756976945411052319839021186051753091547860111456619882472771792776872105277468324760526411852961165610775353193258744176339540900049418183551705545997620933778391393436353719756984302092731374626584360011023678195001939698270393713425488515179293713546285945964332954122193219916680004805741520164679299492851736547888683321424679614755827176519640709993827797562845245545103367028954546020294753812166064073789416524748180141331176771084795071919940830063743386563399286834580809835385160259507792862815302416260626019007888232391640203576112275626925363948224412120715887982416183778928629152228312425972982854446250534087683894588316344953951689184898996056231783073628348134485076480657591769123916598401812592380935899951952822487772534579996142610781242594621182160537125738812899731629787341438841728086864311146236564976256590009979011342258196366495352106418719222302205289766626353900183128147290251656192250017458794098423218128171926211812962119809417332927052462347248825045216650217282867923824871780860166012101821194015809391923298097888523840678141955737901658877656661478949326369300425400173254970512842797183696224303227698654829151154045079958911692170888300150986036611367462368278404117889235539665169336278587442886541012273682346680967477369712477091590545927130643632428126365287653311220289818450271187305301902197201454756936312598807654314613807742630568096139307561466271044117389832781017502945172006891172941598024945934861302148704524604503995989476876698508240830325475792095658101956709213111323820634159112574750002252390923091847847338529152629471758093185012553526808927767633748416148281346383150274558859881418991065268096485895681841964721303244964228374395505780989791806240762004265710571216663320104540034492308872186812363479451446519055081911612368361695149669785797851419328256506406262815670433058342608776030961878484580118879127581727900624492946179874884657966069755702577060176088886667568881168011510930028886440733836603526398811427729105221398549936935418573782137284847716344222564390558910718204956864278502963667188921223928981893247686972405159290645350320211470116487378422111830273441951191823348026843131717101801576959287004918868871253924282174125556898085111825515086800982218842012518221497347208677148330834337469842367034123070486620890191703784476817695852733574970661491277417402960969232245166682514206202546722895696218147909955695580762129446045419646228556434191317429961657129179691254970345547361576213475100603145307105103315217218297966172433391424561232262438408607235602178835870325807639264059806194343590508697684512595285383397809694114814470487881249754663898805596939802005556044605321107579176883358166232946352349157551535135175071455487388365633897826170599015852215191295735066461392180798119344265242269877056491380463675630936432151499556001499510806754077810478060894154995205262238298085914793189849538043826628202187707929037689530125234432328984662040263694008809612889131875876885262905287585498557953850799792541668806182088692668388546743191110299325492016364754234293815790210987878813684202501091766465196484000906596678872823267660189746865702328399312374852906291146890077155364645619205128975979964281001264570573401639239994212883448895549589682335732446453144812510228195374304250697011724303816585160625551155574689856012167106652983791703134678528219563119398771771778910006809248501628324275718491740122122300532128756838584359832139397569155048755547464017090124936259605891760346000427476166494703851609625898158150101845213704914308925552003355891097080180374385597332711093185287620840597853616215388777487647349743216515490353390084498424375355547616525211991204603417594170420749603912400913807495649460709374595343450859199312338903491276204772996566880400657307845398965473074915200205576760034732040733658069388641855070209454381649122702068031279883103212992449783461761148063549212129289778211808565345278239826387367039299112240666654616441536184383886472501689213567519850981547925463725458039790424987558465197500459416008951267743654412975945094591032906984522318785333243653286238760395782611646474317744142817942933340476750060393833795755438096097675881557427242588093136877838441406363672970498362559714459019327298641331041143238027142593313411681126012417184745227887328014569843557740259868125664159519315505343669830419997947820848961877448971518574493270489568750779472015027431638337461177172003994804568388389210931599276943057713285896706157065234423209559540161034354688548323596744018195170676681601342461624988303263551090624586717786880203026187675180784254078118359989372053235274699936832371984136976250520048161854727945400730453231444412881360519095851414246649668133550514182373956368313425635069089856913921945425695594613734642347488404510843657323199258775899548386899592976498560197337780092923762124728255593863322676900012865040094171499612347757425784495962334430789499985608412382784583685680284368294008014005438479603188002937158682935835668621499742050138209535938812737007502059045766847256534666309643803590140897907531358082496456734781411449005617725897284421239543393411581952185279557254870023918250802381202904135772364457004784013015886262139081326211001955090790240806751856579663142484982034038017985550159453175634993344835007313017457126063403041427830635548493720959184930300401831515679760133552205988841888311791310483097956051054331979312299181805323137079268667443040325396447148036480765444251725492128731628101884553350050639634562036975540405422781623604044302333654264182446144494642132160950493635061533283589079723518139146116068531623933093245390976580106234163416940707097387979143726905238658456036895843215369977362718560387524080943021264143813367775326703185901834861894759554854860296170791589096564499616453757421951381313620745510517563313442892551221632519945976254794944237665504694180975264611712243825033633426090099818119620640671255482935870208882145553722854889139726467635628619337797583344059523153986234250181909610963974117933256617412615135845261906621669136313492861474285573865029507897405444653003830890012391245630793923832282202171852395548639331738842652263162310481265869147792793493342352549099768947745284660063133957813642380666378246651186607011759724562624834154526607221830475152526879739645232000322089560453520365003532980347729480267930562685061687927508460739777057095732763452738235439797694266445538735662890749090329786832671799817918005772335055127103300095485748899390471287487252965924581837070436404503603968512306672959382514773772321639155761210002665815719665660935172843102446387569819553318555329279366304048618785333861017976819513920490637400445164151507809661579916396473371503994778539349360697615479920712748321360270255084648869162199053460077948409254099838848477795375886616442719788071195533380143497826516389115532082546712529389444705050119463555914328653962676941959473112567329619190163174481323753357856007242138284765889692761778042486080446587263893994443974028273673135367689474912147751293428536316144943479652554663019206870022058359206736046876264423126130485951935616022684026977617489588403999774321088433303504495181534750500462332990180901178311245146589079367525591086701122941495868180377764405567288396060099043040004387576912132015688262443019738896605175037438468851531767652026572138703439468776657045540277267455121025051031299827342726481296710414034109665850830397890326896760488002357296390046577711845518025069138306693631476414073709253314130838301768143077625960810440648889444614638582119796446347141513255220284669877606649370081195154400965429030843351584664437501908318046942092208730461798210245889230627099724420654342462063844772709302240128025829746622740029994373956353630182900011955460255495077118360041689713890863161006586917569120301846293169850033020187966907107587522489001307204120152179085735876974254028386783234729065750016253140174061539725612904606815487358081891859294801936616356175952523293378357338009513023794240539459207035601669011014365894698055539231131310915616583924395669212953554973914007330777725451354106485467356900476359755972377341622622657399319781868756213399326926014544056387747298966206161249017372151707484763352843488155583912848075502530822352017904399076895505646583976107720171622882727287565323274652278801424452606657631142611330916532569808277601630434189247934017168293011813760102699667646934847158550617893226839603306512933159649962620625529415782864143947823618941716529296700174497928199917749569874338471919314557165543749488010818260558398085692500105113529779724644389989990243172505197117628535892956039006571311537670302363825642098625751490650157721204614870099400656135455911358245421897285263567528699810039281303356441398488905665917812741218695749319162444306155642885029747939022291931469100750690569502412784168665709721304792867517034066278343938382532180889329978065751827423076912603851529864891145740483246883079779427972832631250916297637840092301567341219610644748879077247114903667632380102654975811933547527141036361454480751063424736634572116833488875877720242113439746639949067821549379861607293342924860691749483960979875622555796186940290687271517007910774034849095942732089618584108065465922940164888838806335993180923475883559095652471473533206534673200969897357332349234501094160252711003119202341059817332743362308765845648984942652052462024571270231438416648292191073139684916755185956289934596132939456999355469448206003907930336669579763884930855873634788854302386859658868867523795374785090736332340309568425862983233124620984057034671213488644034566765521269138365524148197709148664920606159033478175967393498245271582484112032896831684836662363414777925396905969418521922005063633297048413365315638840462079681035321993269291448074362338793538199230225671840355476620306002556550478318888452898803168542048044609776422972487159519949658615637549736091924497547470321093862088840308148138173035116176075624472697217550653348778807141835907674371967504098427646097892670288727465013737614119380642837752359317342513596136098019445395178866244829653693903503380062848357063863618389287417215668421829016860695401178093161313280826530810288023597160509779899287255698227399035628989251011598512165449334363392246669095244130332217374768280741359720463347175893570276334995115820430805164489175314458736231284908811336737250103450009876122963323730085538016634726701681660525669092813677677003263943166931291813381862365847591213991425595585545047672019551965211374772281980701443375099222175272646219864356260752711776539968921306286685651735876184468161840010717839063250344975600396136263663674441608876183648166037748308453938235218052913211978873739361943537103875466352012961278195503047560554428719926990913468432915190457807420248737095246174805236656288237041237154914043692525475795581926282246165033204221453252546341608662454500378174534293038877915707825447106480442087236455479435374267878155425546352667666843410750048666047437176833717148315756901724769173656220990307335150367456480909024612451497749410022927754718669796726101056504488237396136092938048835419320675631052003649333718181437909816606994901902780804420471027660416840715109939539617772606565808576542139400524102831422475952519193686201237032937325864345439475157493357757366698892216457998156846069555166626787598882272130259459410640436849377784965299410472533131652940939735824562791613259630691681088951806009580831877380478231933998840604701716417247611759134497333355404431419039338664527784188476847403316221683690166053282495829327970621192989917142313776845376568859130363075309923489136832080831582801637200079376986330298498108593216635731100478997421276479025015354468406438359622114933356734279905070599930518018932537273911923926044053983825588110343061806677109227721903347715335671284516082313445039250505966315524450476274390052511253358713254672868655611311769459459570337825173737573835628592466834105662663844079640790750444222803663855783204532860455126658937276754013327421884127995289567846380899932055396317522721969331280026831027106166051129509522854791403600886067167943909825828408409229808164551708238444068800423391367740468316415636356047951681260033550043856437248559665274135830653180766713328588982562913749438189225227688643297293914356429173831448492621960975176542034345793886190193897663095549923222939085057422253832623222079446989025098557643556958217813896877020870622605919040554712510097737633553616988539511800873072489551264072831236239483355831927104142059944183919184655793425677639320534122400496490280918863098271037058509965947415007690380015974105220699812612486842984543994826263611957197116418783951081929860181481277443839850350104684969483397476900991601876537772038614156484582114859969405839013776863189537810729450246843118166668194711355127323401701070830609022099675607742631909136958856824485629444983908711519286007621231399398609854478467280963883071945658859154311442167197416564188950626008347038968981920782140671941735708341399797548949902357971485677944150793569042591128373755545239191242859086859354030287018275418854897623438168502753576234842495666579693774491389064778610161740375916782503551890279754758503038002665986365323284630483638405950758404349404976589180520185224761173185112361349684363730590937841205452864951752293479872977729921511439053454877422736978097247295943697622882689946178719707430698971280848684494845105530951636543896109912258074434253564561885499010118076606939400742178460441447486048609857377799624123335957987031380246359202299986770210408407186723159439844520677924326474232693573830064327805259031775457112653175112577543422875775798910359103711632022335402537991625626272999406938424343286982278793413320665255190839623424129763664111301561016918359257240030995808324337453713253683284212689956050569090641310016409701542684050938101599949836717439795750034142325246582749694665916780720593781643353328716410035955017441233456657477472074882610694607012952097250083259474932753513308524032643241516031844828258057647755624099935195166161205214722971653182782394819230181588295702927727934828528765609691647521239677507476198484989473688614445549303154704887005640889101814664035768816477924319632973985463846673154295679538550396422786908663322008266846635571655990512748702317023737661463333422733989253931217138935127066548432368093115728152055716245429961456646760434135879232662262613670384128947309169998669475553989014413254034049881648355130727140050724096887127321566562606670343936053680377625654731865293414235015373384741561899362273729106465574779953120341700812139536167837684032236829934398946519616215805225577566239479834339693856994146489513681443215134387238175885923862012862844741156077776209119258826589826859741664188006692444190916094835435582981030016946605472135339369335813912833150283223383717664535086420727015511041112379164379750865158569425064527414666614446699994814354883104677558257022451691150244636943657117007973174808184322285953065588237075049739146553395374554608407810659591026238902607716357346114862643350114818475973532556294325843304136143401758834576093373261316384411407829539131304108132755017347106338237332132663760007426493978325900675643359065282432517513000002026632986865101149108010315342994522583650755155370076912675971935864689280817618189679447006084106446767520028827391376577056569968344698589561455666387222376829526409432564555303044953691784011731033641517825197135575406507123503105483813745305566330121550183307402519858456269571885402497041893393491821406876788334793169109618424436762227390860845276672753889531162821747937423417381243064176932967610140341710510330046396897923500374732605275850628133009470563242547054427555574918820070677848678467456487870277727704882204021184031682277055134359140551342044930008359796137373662227344502505972613870627559125102972916608739501294353236262406044814734188446183162068566870678705861600714125931688969654916485223594824734268253622011624121926803187803137623791786287322579497337115065165303253824461189443920207024409000245140675390208085348552450034165151882525925597183156526963167861607464010154194058795876753427073959304561010768743033589508780885876212598802252110609667762420065093160393950634904263360528773352161788620872689500779185695104890967953397491799462231372426978655873214896248106166032409890764984573614044068625705902235903152547194496757626443230668698959056322359665721741125168353097826663088234640277169437704677246805134758707288848918914712458955230777542903060495032283657159128488685864081696403611073543309385290572215556101545501830086625704009018087585486486389273592898036027172305345726460191121808333481205544967337532078986283587966912627135542144736639446807927485439117620114104702583559991400370670980550254732534471958689960207740623781525637683755368232413432354373399104647047642723194800823977907117119267114282188204863135692279108566176708304155940034615376597153157770420083233865825777037834010599963499430337106990093145541385164659250390531051967850742318890925767348440217966391614759127318701503098628227532455901304292764221868429611862909308075342302638987416238565220695076584624147700274063344781285975535924742240853940256113499458194531697442025677859262703203526403992392727140837292050350731475029037415796616194704088692951786637334519662063581459397572511437906550707452982847487387466980400008938593590256228880988989542208275966276153760363523065057105356645628851594489352051108105117418302004860255851588929923203165948296837328311530631626938571950324620769240403808331553079738312076792178449801871664783554553460375445563759947015348324216097478912614847588447535189389250445993979893413113825716414655844489462486554627285021519531635634877239465647744112027596515471651611606674624421587216624766975551890374425681945139147085829855109506330399538434103377274898175472136916592929009403387218945063508020815310505056501207156180536715405207403819438172316723882306800489125591347209202631244142553108445354212421547200914234265518240171106895271491915964667085293840231590488669954830977738206070848592027009602865246525377631566680292899626115128504539887464457126725917291782516742596389520851010493123123774294785062917377678816337389609065137124403971476108328801914546856539295082938234552826128442712388500536704400304179913346639847622952843468529738103805491833398591170557330014969013769787726539462934598413903164197631060316067673727124167094145854362960144793380298430276490771666332089651006746113753946527881507431782312019691096339447600999315641348770139891029772805160023678672640872058446375129364539626632772740071077489675756428608465612090546553314273762162166109680998622066646442587616894040255041540310020206369821511680013363709851602832083138536085899554674263308505529750579151450643032485506688636841483794256168390259510498630804887267882269735101724313546766638404046986299966743273445313068237229020561720516675335991052602611769874418308446210907097296124598644320666148242513748031110017056879929048258803067256184213634757643503332046932173669838419375349425126639580077264821721662161047146084697124671374893693247523204570297888911211715000842180485060216805284680893369362529901489529494595806374256025310570654216858938007215102906160688972918125431217675536320812728278190956000940669510873351143347326087147648806922327584330369845803355971107065831363891767004509910794648596829298528466011787138995319584228589579300900292107404590850413191944422861878953036627301201786377897230884152295146389031612884735684598015967317123671406614489804886278470481565565953934833083018514476829029119471776197825172472139177641856087597968364807212205690226164273439070214997773979597940127744264252735384275678283885692009464338864488027203912624553144515454403181011780767694795189938747561379120009147117907810612139651041803118584225032398020177177517858165848277933048598508400575872877474070405265656523409795179010868144650013921898525235065328464709728629939272250502282296891339170115667371235731758789750279386957138782500056527925885048550590001174179534667150147691684142467919221314882875400477172424575438614513607223736091991761583990515707108141779615095851205723503304689216216883224253651526257126457291607348980652096992665151489660794938502262485475073995519692130041013248302964267840380184580800859460554572589193083341421495374274530163827596490192359196433852691916917612724961823000069566838224280951886911725029432417380593860716834928905009535708982098743143295183721770414017169088191366572917941829687769400743353521818351697272928685677956603407189759776075326845968946583658871312416009830519004376862449336446707365238498228522843725553721079925696698183310820280162895128564938041017595130222303576551988134617964946288225419115097636884350863738202861597743448719450670378600961156323199897129129846445055435768272964500020831579577289506534200605356532870027051702454141834140500053814483059418704610484571306809743017495302530830476643039405975212815140425868717025509310393821866414222319752141268406426222751958478465039340159448083764825354894682015508300110863557166466508858981644414725880499186428577434605747165664125523046464643026834408624223175360061562796827040647338029892416011815274055848094740191973534680265187921201587462859514165077632334759309382239131889524488666776663318803948661541973180870692349571414110270792324931839344779753301895125755325305781696424228805925338234131445796181893888433174816764069992742241066596274947987214552217940456251343770746977521603081244900928100061111746025990786381331212086155118182761115955049293082367136412887822637036295158172112807660354786744056847179878395742319921566382798406544192249283075984684362358115853916458608150342199812049064030921630005506487466363926131604784996040833643943559932230869260371045669899229329851711374397478482065925028484969295717065236744488118243618640128771850271805320713381223072129347166228927184199108586286449180165237217630011867356946767191989362127547081987111324054101625482957766375190301669698361918347765069879789432039604827221975617379174292445154759468891692484617762400722436481234876537282771273470737912941474174047068002925475443880199971235675959076147116849653943973194791831865110465836661423416767446560704725700379014803593039415379093428365316105384848794217053932323218688790298064590595329794008794889413660253167730607524216683278452577246105345443353113986632367162438123619055734350838218936926340329739065327701309261019435828586484897654577426039465681499641480002079258120964871711525089231319143436718879078005432107787034704564203684364814132404638499129722795106135239231356897780784164662905715354908813996220977516084805863732772370185433472942273648612843828888509166178889055243610273606110312670456495331019920127849053460113202295275054626847335515089531447104543021865456745840168176450918783457272216360123008578171503840294853106742069732627200774178048157607185282066909432579031319321989431715977318551074254019131890109806455184616200417412788151361996710778576829300033696142212547232831702743230588304490000483945851709533439532328359675246349209797575899275457476679785040049360983937967799470321168256140490712657753231047100640457192163425224951134180103549247756783767501256177927528865730135682560027291597485774711636592024559694140490538366939837798869165847482853047698407910971748888061550725057399369984270766914751565404400830298757958071224258819583666572577364074142803690636966129924345837297833022800190640509411127515573857743416765235744041109087161474366198672801688904693332155858134329028778288887121700834916985240008464075020420023568156122141578552436121843251589819892201937316346142324105293154046288856201391386323117104307729717617697917586702849431585313127686857952677784207338161322083977533408383606094093306369532217758118003685083504354058838826057750825537710907284080009006453564769939499108326829005427756765294655166772135855242564361845624616182857051198402945151483287312210966967229544078303663790591227321093584764034553712068228223964997691742217588973729889614975560521848925696331709793229079115529087822127244388237006690152627603408962671341544432423096123062999787488274451298743724485866641657851982779578367572108205868107307517268949632592350232173445360834370420874595188992430098324603103127627420915203795694015707147583495321779260064875893635657454564603698975948799111201367034925830742237029721050047558919566098740662357638825404638899752850534654841137283956101646092911117194343655289103852229510018480433420446839973004791145355434629073494521368619499375471610871604383388265876012634921574926875980689347776225231764829852474168485395152347605647769421444152765334111786483385327785937982771629296973041679715219239105369263328548968387363939659001899810747907914877462642837834918282511754025842484942757749736179075649129824579489579444914962374950702438325430858187941461121604302885420898041121813553631813943584817607978110121656358683741996696713169338003909436791178172975137203406747555615703191345435840614493075312733656137642285652362152554793616917290234042309788431135190423253519669817141816124952373249833531330677492513705065864569792325050227118837549605690083029537221780737640653631084643495740825827659166922314566914198181021081360807239050783683887134886098769819942495538358854316440044570756398333639202813384801253121163880293347925506215553321389749192356531253999017102045002637807557893251029210333114333815284999967204908550066614640032798891170738868916222549671092323929684971834068576613915456316905066975230135648373085235886225571794419087322225578782474918453041706537667348121969562177300293497902839782909356294681606211788382497449280616061295370018707903934848479432148915698680412245103493390653777078507762329539901088700091513433592362263942462747113498708866131924025881561419975028781839224944406296375687848306367064867379102334508233567993821243447614658292839342827492696689250458677438720848022533435734750953045273073147290303395532616830053465641494518623299607132781395080576302865407275407875605384377834589452222538814275329613780164968732768471284352786451351679606345084114638920100325226135068042167958469320409339895466518908929843153433180745165691119007838431367380228584581032421233268686359390121314566309996234302319987072634497593925547546604315201513821796020771095360770041548265211660229835886517679706710350956646879965003680187529206780379091812051973290777958601697456635538404881099797929463023848125816299390240804773141822190319798524131662546649315035683614292370205801412209820743832780513244375645721649572217682853635071743560278269747201118720290608690278504071785208495786861471410938552302947270129251380273572812316983838962137569582992938289784912457739487929603390531568440006565888093372774166410684483795362100479102756081071260597289590832858284841063218308839959257970436594334638406707241617637359262197229902580861990630261640466678962336443944396154978914109655799206307384145070518223426568253244865935830121876321054779284854562712348574914428070488141724435654757913204194579425524578683174860615329914736161543513416741056702487265113756423098401173453520303162888415154930091568394317894491468837809656073817223391805158542822093487269404453539364569402787148995910693150946565490818543644820033725677092845969607007204613040165514127737950559868943503623577179344320516676829634959791509211226281641878950072834124982467625403874007263863456988465713408455601996558991314666348275423954355505215710744798848682182651615818548759848446883933219366933275256083269145088183201056664642199589446590021721112556399284477679620198134689487840866727854234685806690344642256239333366733540337633863246457889466334544915709311069704835738244945319546339840847663423331637048801395485185729819906911806406333882473598198160016867599019196406430962086330352491804223520570711520780497986821295568378660345996442725175266034761302615234344016515934004578209485388316650128489179889802666310869492644053433071396589194079435931596715785530962255405777248332131339332490223424607049505616884611294628321489407398063889858544191200952484553639477980368028254047872311586759969731234154301311390784266569786657776714099045566172824907691225312952865616925178729132264540328734718703919810539793063742931085586282231163996634955786428513468016262272056642531054975371469636806888310904770018775243161416841050375070033490439703804164901516361255456682648231801291921488460772312054643226307839035850076791042677416216822278490426337999610089457820357454944853048535170437320449749443954780060890415534807723597667771756945551000681597163754536879882062927520594396589214974086732700079569687441410081654095508385086255191517129704036289547120607870251756747103487932121483745175094462911626276857911571216440166060308721657167002038854110734884692309961054931389804332719015404618770270320178892471598749733618043611485267330090428160096889049121740997089369023495021923470010402951436424137147385740912048902210852753573394427309921321602353212407370638324260672149641218332918484554092296210013238628460410427214423809492194723194909812976786882759249928496697014991489943433843050167207708071729871089541423089248984681545757519382028986765008624447087363119228662011843002193857244795260705294464674712613965863882166224190368205379773903948247352905170021260531227058977360977031412834226721362222759560516337932698305552120117551080270753120898981476125237444440593276104788781521265429375055659525734933801651656945733455106966470074780307840962158456146385784896038846884373312493972708351699405504827154751891691352359352291885610689646810779039818104828162056569624386170364066187558487753004583175417483101839679853223200829345395986604822885935183944226078513666521320276173569845412944999767392696281103442601249760188995019952793054607078991315223456185516498593065345851096593044616467923496496041288211830357169745680723739319273987291599408991195700650107553369883656432585453648179603513033914376732599370815551674721794308461492180734314640576901888788723047236926104631771617103826691863224640953099861947963365301689203603717256907602124946850301969211462276106402394381784281931490555042167978373303965350904119696167536936363583952389270624473259954911162986955268989423067681011827586137917956155827694833195517586215447898761990707423289405313231287028517772147357251520908821698680831133855178265395618660313095424624360680192296541760421406721187010926738805447170103700298360510473377659282931573589621892666836730808257945908189821915344000850856904059278042288049244104288038687396827130798063232350912366281054563134141527704453911105414942142264994770241471324933944476391838337616266433516578429788474494070008709915881612557525975194528471091891262477762308805555278355036913290787966490267757157130548800142647882121218167108076448581784150194606340799123050236754140029802446323339430442915217788354176122907098271374719468854570701880434426741325824369836633569531765296038206491915019392412036323979317810387474785432241642955320405442112107561013075317122964221395604039535974844125560315297059807687955735465509247812917394559251542777123651352245292512326791310788802610177547145283419046883972153600819890244017630696838868150088982873367653286986591080757340040076667390499535712479556866431642596065773291159789457830052896169633981092456144938139019503135609720758681927655851070902047243734004597281853861544939213911220021940212538269752927420768973509571158253698525229119978778210172903254906151844486831293808296471888255492316069064712239465561641135966748591481298845014739079322815577794422659408942499869518090121673483404795571679468194650281124574959404349542538053597690436592362480373301999101709884350689924241645523113685633481246653974749256241529048528959625442756880889921129549130559136152308720679414804006225321323608794627762077054796634875323276050886727180965329128592006769675704610089045632853127637323725368181995995390621722925630128787178297047533089259939641922393293872596822493072898034654998126142471563468505211787123176086327721591906969211935655788324180051655702302923120001710174229366827389871907696751004976580349047838494270857977059743558599859967978636385832153997320139313137161642890517127543130661237853146657961686084269440403690395553097596527879439082888165849671613767790185209218855795831763491783740392968400406234405999002944880255281804815168412575574094058241984569692371889838975899439456952715917173722463341266679628429687663337588392423228369575917714079661116832239846834099651122576031273991247290684515227881345868507226559446396081352743199290973657295659817845935540725915434792805447898942992096522674069122703990697919925963853491862740329708991224170477330918492103846997921653441141823873916158025399443901786550282893819352845346633339991588671990175752480891851041068491734486583756887154075259538603132006718650287358718757315035008833838909347243295011680851985539116395393475584107640746152057831826078215096545830334602727228146752606193771172442970721620906716965181882658114321533345895931764676635784348194757311931161526898332517701089581742018459535668242211494061169502863476613535347304262121489836232293658687109217242308560217338786219451532264700746788392954347442277114453854771232051995095062471942462751137308323212278654649599818791952642780224694567447419416382462569172297219487919974180421912193845802997437043388882097667563110584421287616680011448332429323273214426601374019527164205531769590329214884281377258812025091900550128167093237881537264400148597660582805550168105780908833136483715074400063625214127247204127306773859992468058943296880384137947972129859551563587967542675494737039272832032743599249363028004198064967993230790045638008031878803790674101402555448031616882061482832153084891571039257624402551872175851271953219225784844419877065274346987271494447471387761194791542875430520651861670190836376712914489062485402716336524398379713235098138764525200578471389056960621405710695739779054961807782852274503485231918257691672150726167813938162902728858603815671186062983989113962833627193234070801154352428372890338546616713360751466013573099412057233449155065608987210351010227155486820356198143016310357361078429761173296437663597866188200805810969784710715121272013947581002416644246156146043649963307336244847061317110009194821293461989375648216375242726311622606216891149977271075483698296831153411865446654221176209521770903032148184786406051085624980579765106763604142750523536773233482109437876463245870346468448849123050073938516436740930540097463349981502936523145042406917264978030413613030633334129708603482621907452662274703741341737567936006440207974037730730436467603129429352526268859885759388967334302753468626085082233747191303727419314533889617778859184300027019635018268061815145581688100798878321613013493196210654673354851088624527145857615160178420658483169275427730981452430227721770982562600582210068206143981582286806474045027819184576307631245586723836926673959604091194924157783021011906106628120929887444140614577622456367532316015619728714582698100618368633524778253404923943923969104168296933191118323293061239319360572791530157161043680686202734776571132002908216621109521641045040284780863880968170069868233426125640351937639477449979363266358957269507998580138474232034554719447133008708329807787007030982789324030559099013629846462759735149309745271558775376726654598615561744571154931226438937983808607420193811609086534294229952144119210883001226499290611658764579024747593762513255387613021828545722851634801919352504285123990688987961101110732572849170964191491524110755375987238813669277696043649483094265737523642360187796959568341022072107979274128745411502758885044048161537818711894304729692386944276140445276053159660501829422632730351844632702861789869165382310003184603207800787814450991999360588809836060459304782508379159741768238985105690732540300898527724342386073503154474226309873660760297973218702803838505622713111694102708963437813963018523258971495386461634966144476279806884261320720610210660094705162027770066484581659435488780407284460399403400316839855807359657503469388958760365697038032491703847607907617659519593256600797500323386635368789606570222681257732841525949054847176433221620813628574059607764351117652088325320513644575642956751805014363591019103568321127245111305118814133159235728860717827832563428799704163780041219636409802013685880129046264665540693026985089714674549165057027844617008683288251319869792970314433843513170716381291000637159825313803385717665735313631913451263065656712378088944065710198359073137492760949089806878673999062012707304452631042907438185900112606647918173760992949565592483836896376735812076383812153398947173496412304219305846792550673733325983268133702753732003889338547486604218692017637051174601226959954901630753478174736501714500774858460333877851908347656031451179381812984624711303830543381937015298199841854463466074847919731588395586562826743329784656155502621353146388844508228198161583423399703445701808067893021298800269763689510661703975395756542726916197378490707396657574548479886159766866308119593752335370480981361348739676903442615290987714961028766741057268415855228259271694593872250570518183791943571570420308731937047641198100163469867509198276904705965869262387457973398781576049182214654831701724030884762308538693719625100623535770964713090943812562180746898187919730180213771763969437563836291655764303639864708877818022562914472138772560801489740511928784330540937916609673714414133207695466983720970463707157033123138111128719765124712679135362753780848120218616197320471332052070390541796824350785510496758460048485480135872624313764277227718367209765989339635265172601661703383275640988006944957735573269530764324058589191459231317292988054339679154260981075767203494881995847019031313460396744974163414422266052575325456071602262769401652952832979237436507830218164694008133363408549439421094737273196298490604675854172691167975650809938002819260133580685744337047932152064576629705826902225236557247690677921614177948377802818566015341090089987620066966197558512385598748900528280903503467054094108447470187672978306738833946670040907644792950562245029432893037641447749966049229872562625795668038652237171495086267852686009311445710063048086111516941110804086782673707815437814942797691595260964980857666618978293055842319467202158986151238318211002169378759045724964140202034103787362785199528178183765075588056460293880144481757352419279369760234063312855788591461496747403941934827791262277601521915143732156699590714387588704942092553796273304209455583287084968213545850025084864085333693108152500431283942764798795068856805242645032226483718931479995900485862505853717509268722495217245502331640669035311504972582522181314825355352642232050111888968757531834836958040389527139877856006963844167338070507979086564154792930567095303313788271687303615881828682694836074477013057080572689700222888719895773683281899713507277697739777537105795769352147878698958516188388932145606887654418494899889426877125939535231349115065997747225669541724333421113051566940543464894780758667688335507654564375631272090270878255566363249016220607299502397635223399433875745814085775581969765837498055383083540399012443143997419548843118618785150436922840187739294392366803049540431233146368582070279443562611163562566436453072331663957481330916184710289126060597248020535246887042009491646854195293841348510404775709742217292065250295129371246676666408929500935532985235413515076401576447804592560119570566129384671537268582895943792373322513540579460660040639771094672323263308153636715482877112747289452199737310775501677946631779274154747771241484845524200161158837337603733829232139413071693614318519158296305093149384866368186042220526862229099988046043414262728580298923380704987845502773449815491360047323755006204277602180546178564788509100320636956443943345433520413451682963411175650443757861933601398894568502432608344879717511993282761001696050095244318493528094597539150681705126802626694039489433514771536761952765975312217053783522357809799544614183855649482648770119298181639956791832254612847547651599914145378659469955552760854084919333868092647535763071580340103896848316684626621179211078337138500112530485941546277608456236112691998774795746566339882250890182744310556633512155958593125210492242635581994063086450415353740387014776799583691852050367518429814761792535537187938833634857238602402539181057275662412620680074300057892822564927386201451992666109058289009490822143410408037772043327298561262092354546044583106028742607007825771009469966575114379897646589208435895740857330784709796539507928448027523566828281695080708355090125745378487126111728768722117013251211652607968275849780200783017248044074714048169667932224589751879441890501698455872650403540898943348088636175981937841862662850687581441748311062111118256501395151051808659752097733304700658930562159809853158804802077930491215256232858500780232497163801771700374360219513331167764666043466773256948290500969949410643787413658512309516087318223144899975613339277718913821348394904487625171590372970899674049400976290208559119313394640793042898539174359852749673387028271140195489062829441128984378780985490878069956306750416636582259786162040069098505049588695596150684417193409131426779392023041755789824884010991741235824096892089878365761237799877218492175067073832938472637484495635350065862216573589010476143847149096342384068412315582983820443878380514491296762500033515022319322557551836963531873302943040567499912828841514158637337721199949771281546795867789066202194252026393419224790350287934706691306343324216005130773234501719505259951407888620927295680684866633941401498797452067684270865794371696738612130448246748743960961526692803612959067344504489127606849800296667294925366493855743097881576822144633852255968112762388713927318992490325696365578684878466193882190159849170950983496774924776994169017422001008126166693960002580748115794485834791082941395098294919059764901773735577925506206701719042470344440912950721829449644872465832307038396993153950873123254013839330084795457102472931469645161259383581860986073953700220299948385852390065196487674814442082171946396914886807671322591325388146556801934855299234994000696354657244149214169639412683626806656573349966163364779596029354069473363267646011275633628376095428734863931004316642575941547366161163949271553947883684413519152395284578279020078912468726695987781039016784459682234161164906254763846217664617875084874644314761220191670096270319662649439185492663030397339511486721329571975770968344017349770486191910341611938244647611871043433817969445157020866716942658968078178509581973694753093061489318789155775918637047617713569640497408207837980696415276918618111176824416987783902785334297415816432549673907807491524827430406708915942274431112225759748169689081922063639506918755340538574221316596746415434378497390746116074807308426484549216950649137590140023053528612565369705916129478096293012533839386000193418293086443528543533835049869586857888700855769220639988850068274160820679239186403326923580671074760228278043943834332343998607769046376122656084355398279446755570367222783422255624685417710916842770656830956865190858180834740738075514688441437750978518327491303802133449715135154907627062256414093010050055769525294655189765167487237704592620396201496719106798041378782109662350578296570040590333407998099058788827736984285865465183639788290075846629655530007828477057816393812274695757104758704361393185943983957691644981282205351698249784732293484332696881958699908179187677478570366165769855551192915079519913516630953932513798845876995860651969832139469838305063186845301862327902185288000821604670540615879400847224576582150016766740599913011493124131694863954726208672997672458151793050553433308363720271411549621927031028992473617634100971370873704533698574797050606364192243053894045081450792006079637178880761833566281587951080873955545723237087683018790574029049422373446648992849529523940111945122685149616918954974179617856509733199664395777558107034007683564901584690229389311277502933046041411198610000715796191974160213821634475477485897895611230413556726981089193073020383373128370035104326515524265811229276400675203995945961606344485293886078665301690331000812148796034727704200313901439077495733538054133812657352858505819712846499785803893512297861363400569975663012732941745338711716341438842665174919753512563772431175727739708744279177291193977465017567002896883989163366525767434395473165534611519975653113988382810890129397244783814988092278730737497430992087531372521208923209320840881847111587687686346868332115908610443169075950046197341594940322305162824407496248257498732770383474759010411486835967737482311669045415740230264344559572640934738634045091744824951248788355401380861296923755854150292983889832265348575635907887577598233442371824023788958111480935722564865074242338761460025442013406713294430210146853375383440342754238614995221674794982938746139127199859252479897501861798997776885965648348836251564239020144284041267813277409894829233765099762820782151375166165024581226974339671072782096922615071917984255383339206767166846319594110481036990472223993103594894482704795332713136554656147582329888573383514761170459134640088873388168421645558115828515775402492725521349110360793914291547968967574239748535505299226211063294245725568438600689759654227179689244323928266823058526993308890025406648760053738308241486217442876763545851678321345792534813840647411678924118173383172780331262649951861293064378394415200030223904956397198060759356334929700754869738519087833214266151044714392875033865524705209642380142239593129784413643938262149080648203604274081261387818059516239165872528841591895105793131310094612597767733785186427572221024232625723409692554198101781461504886087269052223630511418403139689612285271179240431170806172293128576793223687906354639801630161245158806730598543053633998415646794345729118202746356519118682127842341597582348220228998327684851010150150214867851757806860187085135347578002728739798051211865259455426190919601267001192416266421474182545434875893861211190716609094289487336428621768491348367481238418258487978732191903366515131747342314294768317072746138424056397444077331335647329928963635600158976329616768820504630205891762612561422044967388770379900402426623600465815804595377882135480331588428758738623794064462559427975102268018153772598515307425406284005568618892797451278277554952801065526716539199358249212142216243073119067293462463203952336383339833950398077144086246389410963180878530514511215487961653115945028730800543096766908843568077915852137201400023678054074233223427490118050611911011438163802932990412519610095809670799036044081147970245080333554989169110964184153150445251898443886364545241119727435565694933956793057775965441203081956946663275862685904434984472526594218639466523239071760576405920772448105719834141553433564172019645732660487627516041443796742256511110014688465971172248437519745208590103863500933873976195593607461733720728551755523867107883061121943477283257936796999017263475221654813362062355437348063477126712945497383946646236232929553314578511160079648849020897023698521674598233295424572937735802189859645772393642540635510583010804031146326673415415089554719023186596748214694937381203025906066973220435080477262571838582383318140436905321170602423193289130132701171213446888810307945148287547598061555867396686791353884168778893926740523729318277571532551796011545345941038729843893388163411234579225199679960556392568572259478535168448814335716584797233494758485963301219477784563460916740796410479006545897376498801061862438745638128866482938671767670272637568445173766105255355082181261477876633561002214042791681544034559005406279537764633178101642129643749681098049380088450312539740964982723270860657160147582772464180144725347607191605924882394538979974214917787852631500583755225776246850647467828228417056316002898070828830809562514282734551393226792386106102672840209639988857008517456200702048463838085373945906657583858258303178711789975778382654781085509478808382108450721487829772749325409953820659696648102965864935671640688176370373417981068091612551006922727303657603497538637991030115257122126794412078734472231210269615937503690542287880377794567803481135615874423116681384322545193287779208267181151657686104237554717138215792222377321833208536930667492925328756023412044201916227882919228567566240525260098826457583667315303049731407451187417010032461337288504706610448707433579072253238551913149520827670170970647256543554433944453351110843215633944117783528681871170856576130141405397741356089393102745191366395994681576841898078288622254126025434756002258977883867632178627867060241558185259791208574079915097344264511801454301454700236475480863734368274624018774360390556353098525057939308563872250144716980565574950545308773292142266519714865335011163532215738171697447372239487213329028440289981881906771125566702467754031255193455672666602690499237982119320446722474055596660046490529654371345113244277535849741282594695095869320435165009445638418880194902032741196229791171633622808816320047286361349801416913226325771154332501430451342962885797653864538018105810835542087784586572890131292607160950019215691155776782659793561552746702858174885855706144920942403527132276942078959467622080714508947653645802366626120567089672639696179876426262097135149403217882466920497396456692613608486357916039009817103589734630818801110302899343536661110521290821461834610410066128011544665783072470725858201334418229949440829135746707884905283665157174560452794357146519091211961438374223460528306845105810834091792892899468140981388376070567756328969831012491890096358872682581417616740681603639692036192470445851197505699301153598146473545481263730085762862641335549839703538920355328701915324431492187579825226901956025429194069383959860457567702640086474451661272559622485805446757797956000149647379500223997204146836616136851646476282560924121830104580580373624309276513135845915836604625174211527539493723870081357882370663544853552629339811606464412835846065060962488472396390613629731719589175133656783833434420204390773084743550269484178962348053697495655129696878150868875881948668403623137179288309342664749902866321188342192909291971611708566322020192281267331957099969448338344601709225569767508034784386664732364549463778805753245311438328036306242235495892669535709642786576138772572023800792207947514403649091463046110325624067572810847228516658670987758981044033197335018976145015300230078151774366944486815971100374329489789340033692507280871592383805267786282855166028498104494356670895785440159366613062915156414946018672761330191783948603043373092992064561741493476018075169563860472186591317960456985210242782343048356104400411256529314024429333107348094415575973568527871657932595682640560578496409532334384622683066824959399395387521545412938315412505834802401498720171116245025890231573375099140669098455954410816921721819568880891211702277775637980823183182804946822721630595146847082056321644691042762970486740470967353742468317025953688099502214642200253829148540786940752058780005744567327109937811887699685629181534344942134971049434910515120045696278897837346663041727332124457582048892349973169855230121374062250059262840703498188213904700820959129831884446097897675976452166834250387875871011256300059734879066814991067186175254999490005939516965674115479416396668349191441829568343611080310476375275354079259318914957086162935952268446538351411368657736469967724840626366916112993737499275992672129252971940234018944428785840564359740643387975983715796757784668738016273666786222630824603110792554688159166341045746473037712022532452252670490766894410972446847204729749927654294616716112259242556008938909129042696156855429047542826611389637043927488495679645236569781669891835245520054503796869936494171594160664084886202677567521502750090434528771330673977215188951605665896673291824980891745871589279666894838268141812029656132980201338549868465188514291149926398431424498397086048221459084703273101090707634363923608420518293029471209870725783551163187158900981560472271899323719699567150836677087258777963419729616305115395746164477850762093561386399349345229972673118916972641859087124433469689322197391820845683803420007537109238588961005593672802533507416979637521074143415996107331117978137997098316730470190603378234528911942890700431417172030707293032115619627765425017175828244575587702221166280430881609319741706915278805628656143390618595330804977387831382650244630574006865936792057588304426653687442493406452644587490510219740898683955032698556792704257101207959451051721235542533367203587404869339335689239662255047629949103650231137537767302348878039872930942193103160973185593955016108673221430096241326476937296898750594737406802825123651606177776938243222892048950912580454404235812957699848232583377659611150496184422486425128786939298263788741725671704781394151263207970069638523454678366562729133729397408217089250401824732336460695934148715994106742953858934005302927454904643207685619100725021246161937170563222869866889041437751479325507262196647469329866551158241821116272709262715723908557565307422331445522062929461052413406486217392523174467386310219368203958444688641659580560637329006689711035399698221002603102282154131328782741359321137732091333345464684694817614829294384714167171911466391857808113270989307225402198101623087991891310351514627757719292324856291236833727624488497361042372512496122986209214716060682961267188590640164846628733262656717633411241103574599110492902593916622530814560442657520513936764252631609907618362388128528488253499302941760376930925022622222579595399820637764566232699349059175202618807848684840851929381797298663263525654808853138682324822759752553574306617896662738647163520058385513918725183546997824529191207815518089406436770474301831366925378263227769140751588383461537926694182654848963872552219366223015001869541985135108729993926186018489173828305952294494806296111002212339269717881469819775061268605983973828013920029338920038059793311802750376168738063468234458510840049411768728656684062778254863549174810251808784690720336992185853474878820166840490495527165036056482297041891437128024011507963355845086489112058816268807507084047931979125656496243736108963732181634995893705122947491565492682385225186337384163116686027492699417589408185426422397280139091275174347525789293056376901740876770285403815186884487738369194932187234163934663641985099548557211579368531016640278865180067050257144337955588185812576749990565222619256569251834972218745923152129748276762801252358071307909389630541497639599697624901781983994862049235626470501072488965208807620445193887818891487121039006373012174751008906945670824142675100680960288235423961629275083178249453514131798548245463325985871978376938958180064949263671544683858593834488617264286785344979047301401535355966462102789378045002505699685525399375045089135096117549306587176769960095142751656772355626352555720160613681942723987635591223741500654234539867463152248754021724302461616765249689180181262672458220447642852407724976603765561542181898725478651444401185995834418126255508214328208812234965622314832993104085639300231889098162200320695393180713744364743999578038248008635651816681490970108502717818364396291707283031186179708026854857923356300408776808864213692085671038976182310248879829712403004920760803403048868062784093134959339255521725730755863973495093007579728389152924602994468574467121919578523444399173684030112729906174568813458797963824875468976440311304613992206947029159287260563527662903690874914065297452886179352435796754659761958370721028027213743590037565860583366508678026231083299814461239776137693891815821182941061274437545993171432709174217386479463778749587903348245456906766278667587651981013451539798177161182655478512063222946691477261545024302792650110540731301819371032102240390866612724444376609538419590038385826002294012226900196314791413478635321377200417336728399755121309733411197626907504566947058534009319585241395515004251617850803201737810807404035076914057956392466602928018586852238443209420366986945120135901327523613056418919508724733941544570944216519563686052920920608844929718851424637059927948404093265608942832885870048242298795456789365446811170191374656062296496795138344733089108120729577552479122795857428457913873389650921584497111993706979438552057402337318462552525475950620177599108533806569554311498882076103778808547621127631548320395274855797842093013620845951047575010610476191524941461238632441409830724879249467512027652039623768438909238940608025763268037853933789822997167048776738752723332398860376675484622065096681550575585218307115016724945267662055428639439236717049238640793152109611038727857152920662747716591700375385208807208768400818151897013573286056064099658390202543417204723988931770531091445139688494133299020730945234852583448406446154039714876306304693257052659415412238292082626116312526432737004852290735069177595141535487266460310185661355601342880417765102456105545532025985775214205336118551470939018320789316060460884569956165626850816567412460620443661405566372582121536367809018346490480126410104829994418772926189388472817142922966187415729899052638716785451340553653938207440898875408775028556638815748732862948003137818232797866209967799407440078125487537804332539512496388845754402382784161651395349659293549272688203526669554961853698846908339239805916540269420212866563483190117132233872034546447782679295997871353364952856198830409829915183668083063718020359498906276801449917106973475816461955446077698687524598583899958539015755957185115499793453589592198672640791379908250149218120407980306315089329750973862615666368988094356908584189871229056873948951808678075859654766119762552123662439548473120986126108638224661500321830318538456723645073381959509906021466287743561252614509465410567185967642175949377703632126549340779451597650066403160466820790248529127121520713282561556764799253060063505336701039446334706352247846924066061730993362286426656323492173300402705354949326417583396230518986067990320625432742992423044313779534987295237668996150772845003605492762168675508765022333359520395310069661304059741944981029328352960132783395763256928273371980720948724136747420650296615964511566583774947702094901337947132923992583669830289138594509315018890244139607725430150039010290378953144797166182382947557689214812007721335738377186173996589956759014517444678662183445969218651588600105504193226510766382845250570549509763509068014029294988601359184754841758519477905217163587854488887710879110254786682695274068065100455549011993624415523400201540017157177987872606855169260037431305761496574415592379129216725437915359555954301170674132977421261050217265521297479845844887593298092314435977817456089182920943554013465326302667970538330629285354108607649254168424486563907692532321336954979526312393781782007671804756622698047956600756048970486381408249021270876110563071207072074159242391151951637760105562336212892801181994973133163522866333085995288637213927281748031378729969575040069783135858657645465405996084969933241333519851779036136465958119559243186444155838893361320173390536082942203670671360104484536806817908107212906594275160324812778418571283109422248202329971952097244296551205382089175021422977438924343489351277258307713886020724300233412570196191558064937946117725900378130765975447212138231652282899012195242077651658054213295439899831293515925951315902452760410659999429231139095422128540289983911215134901441275987303437797664855688804575255530210597886881611424789830104512255708135044171412332350064778596564575003576241063498156136362346022354292628438034126823744566299122433568447708232826573729177879895105045726394064534212280973162684456947454936533462706411614464622097664579490717714821696918506587503051790989838565184435677762893918605808642112915808198589088710560684899207826386812924342948826124782379282547397230985274858161996586102906371437132512370945303833042570905419973611143153602425887196509554231745037648534226633701680122546065086257542005232475955742699574372816016079959155904357352380440007712251606113556034762944203771151777108879897154449646592414586808696768693128363858721111557673852186108754287141435978087857384124362866317404665393718267405756566527201358303249767882607187543557460690256052476587842590525401872172494874905588239681123526071671673576072435099032657652963987447721452803225390986688959886623265409831485700000430541588916701035373086406895027636595813489689228564282695621974442436756827907329987165227173761029849453485833393708499203699503483580786107398606240306757013632211112004777174662837898563646700795365768812453199513198885613645811394184434896327142096569811490788948523783949000878316775198415037547741153741320803573503987155151304659538411848696634193402082815033600705747165569811899001599172113781008900227714082389778559522551965735767428672590291387099633384959085504967715345517078262532214265164042625066206575606604216072940580419394463985338637164343322475025960049673730136271144207546053230911448619090303565142434724050338479755830053167152710803584209446252266223608898754161556545825089921419931020576972408033502863814537297551402329973646161803465989587426440064771674279828586242273256146234247142834680301777027279283338825350633263597661706893576679656569583233274648670049165840355096444589463535604251034793263478115645129311301244170750468853706437599857516827270684782806912920762486239653084361583717432161945276797747638838996659075908414890192255970059524071773142542615576624242505351361159180645562572110627704310042815137942778175054648663043246201403441196788537453881935778369880031314214972209816224276397786476066491204025788440421899752140206646107193420223988035513254358963079903944949259417315805348959789729407438541903755196663577358321767010415914590061872649289677431511286263718149942825639504802134885458263427730309734780440067589428261180576828385298424361687470096172300203568085689203726665491152985738333058394409299618911201119403415407674088516761475312673234909437926334273244639472477566411371761303416909481240927161132050025634742822152210068037183209162394454994730709113332693563400774074449085243643102699308898890434057670935977618117798825643457404830412967261966424076250224753897505842453423871019950555117186812312912886965690410423493355766400797025593760772408975912740567533939224330537468597004191381246891387900483597105749436326902057361227754123285034876524605620763760369583169944451661827172567160298853376135311718975770769804740799426340217675048264893151899197662849962999134480695898275245205273466108821476528628256059412267477729882090745429058449549004861485199838823471729328420597112628180132446066702202019100338378448413505519056952071724283710349675519282516320770065870268907890998501401960136721427914854407443607093835063496899385392765097253434314968556388100606591978681943425248950337300693409205141732129077764108802733441194399598264365644015842115627940325460911742670897013784077428469037417361337439380698452586113448986527634272389133228634340699708945720820158378539633635271113136006808730500047512524015850946968532412547763015871200568458316038463493520597218788119220232108637003850096681629720692881227658481545057002539971468940509583112961729613561980367029556815847009371959664194790692027064710297085230438045960550193563777297945257129158153268934606937526597956781105311397266548585467613540888678941974550865301559709996767004133321001049140813730064703904817765489695395814137671394118752221029192540923037033125557301870048103045085736547362126585759162809957375995834344281344426308846020531756736306528520225161774039220311417131373914679284268315608872676247056984134918364585623657970610524959545841616725111841819935291332534527484750219478466050462206180563517907015827224774800397843939463763131533566671056395578937987873348756673026627244332756908974010457977510749700770373027601701460117865811044189344133956904226938688336002585931098085515483266179112842021680269171984430473275290373695852098535123716092798259693314827801259932137528948694367921675107832199848901512219870473010277506224125769305983302884572401251047725269335998193257483675466560514340640436842168176397600252426722937462000036317053713278060675798993267507181105056165122517497364204065600006789161928855796360407436196053636592592371365950378410187417790714230044451679049997882248327894283249275826002309919453534943246305404858689668502729010131739992744241556694633807776178234501358859793562755858795209165060915058347948300622979858393865814008116362695790259518144624382369735893625643794479552057893981196923143212573120719178682752588278134185835760459092657804376439402573501474634125616320765172415821910481594202189930585718903562897760795967306787279707828757414431710341669252682699408811886640335552190740614890534280507164521627930094383690204756855748776391860994331172237652823911358635947229759343617238444288697648100311820319514879923917490995006760666222939557698231295011826446683736123866977060844564407319209137403794851960003794331427414771467172328357865639204140902769460000577396858175850023608321961440904433577426041230325373252116274125810837692031457789214551558708270767658342421730691850642423407976964463230630827485442302853837219947139267899822777009169962725919726672211602973137036438686287962039967864364747499818459778048534454501749304739742963445370475251296707272612398632311470515966680167718698938822698356017077074009106185250089484296136800766695970972932371295404281627206242115191785866640612546319878224410890815230492417671665682013187388617802059249371125236063175461527957345998725606208575390780758019330329314759441600188077007237472442959706522172779212233493973751231689628930291663825542307150370619226663157761694489682958772746312756165569351833745258775770777693039970178366996567352116325178895861173164918712256824111938628183112187471783060571142773160807061797573572207758785432724635894047681278193276030842796452444445682202768818068284432564967640955055522444622287330467078200372394145290477310563065595385874170732707242079866024348743770680583321595923257363602972817768264714037635543544089189510983841099418435380368891222217836491999051713705869830243935878098993293988016127624464332513675711967625065568121431370101878625958836380748509144026438348335494078525283103007625016103168839055288721233200756005847393728591421478622937241800160132920978500292103330647981587343463498204918914510502404144123973606849439940430790889735646405833624216083847434860059464024250123741960365889534567633567191421203654412907224815574356540477213533916411887595227631116879132657813875061551954208406212014766789057796140682788542526237178210997685596271138894263954631908130617012479305599442533609077601494056215310450057007537584042965236529588340614592391324108219716773567151480346139349469568717315487900189197942278785373952721491315185867390753061982503767128324799184954609619088525665056210688212467865693343243652314199661062950287463906891392134854648334299679190738192735738838828827019803650447410255973114833400138929312791147850799408585511879337373315316871531506030260889059178455565448653033410613194955920434801443647840479894065501841146478800375104527322535731830415261127012064644469188494013893305019577469429555395901184092720624322944768274448566260387075429438783345889040525721812667669978834084188610400451122531211651848376505166584236586946378520417752226589500669483819926511899905561716493009529244794931623739378954381851848002428184909177372709370248328705768981811969906197570661079033488500973210929649626775500255514830682355411979421806807130017850455465720187454516036391204327752110690410934818925000380341838679422245401864253146805485982709316505535836681761584933599407305328838219161345862847904123990103178146405204018355557317027803411993521951986633518777828320090883535779467707660535695840746433993369084489902784726142428167151035398549471995155698825025219267118849239039354736155891959297442305489620245015285569725010707853871076075598920987935741963622197422135226966000005004338817613118222349920470848861244286936885314281438281140819319662693400432496399885460559477956276938424460444124367595510631222518542433185133185556902969810260133945544121671548598190131528268896882981379770392428520855118153154314819548730388031755126363619644488297621708919161520594803332287115376429654947278359360355591844237523181551324678845664148749765971097570456476737227985906606089557140275360112224097373417033083326775408604815577592040969296715949246141268010380245178931823875020762762943242908034179131681704886612431271710428655450707269931605618255751992201503698165508135632679353951302566999788821280016762113723545004098523668939938524808544059308216879208000504384141357829289939282492703626068471258639544100910568302510807509726934358144815739025449480152951504906124928651375716459470685595700983564241547114901232814282278897650681582899092330811304534414028242089541147407865514826181735473981138863320881880098191478966966708184737193637638918163793572659800474284409467053367338058446892590685939464039337666151580958736519530671468384019434887168049331233374723703952429396255425541718320999335050107027488570600938630709856249176362354515091064614024657796883861603420385197278403293244106611565814114344375054855144048141383123605561912895271889248892725275962694938444424967469003728044644544698150915642387371351176428352057823145343395495124348292848136643561954462877351909747346488638903816038474699693200987365758170314242456609018693423330529030748350933147579631093698694718394173673623014269697715719853584782048260719870060961820657780602188796971584677079816175723069553316957406731112383207709626786949907956587175033093702245632939937405798094932147276067582375436876853207521208521101876228084718364999981712527130530754160661154599447047644987629971273028093327262141466957604812822208644915922600315104487524491273788753883759210627067173851792843434123979963772646153847768489342424592539502518163561871283587557535967187531401644784772428406535370818788711858366558064854607432623930293560633379426431272841231525981203437187135880414977523950644650929794364481733153245003267525139968921945162074111097818641244919416382694831428035669644285266319892503570512284893827846768117462110653440036994010648218811877533210301720855111777906461619119261907997774817582369661774012174509495929496020236585717656508459590290194831204135247800011323419332042084260996083229860278395523170097791258703088348914593525513195566719244858345756165844636469801745415332775635659647882085283143827141125544403305391994550508474464123701901133729421218131241535213379357371435722290353431217422174381831350340660272028256610082182391259752031070095504669991040068599310889403131827194670884527839589549044666927799531963117753964317276697258400074375202257938786464207496621614890872937024509346955113414005555479020978351799538336130169754829563596072076164616565170217511499266102135636176694115940972492901094655102915193349398041502435892531310482713714848905148963033891265452750498562795282984548834623143452202302018630722215026704254714152991382049433456597401022843742932235985169120052284716012281206090942269055957894741975147762624643083326864082797697650215324306211517784933158694183137547023760622904470534322801060368119449892596876212529829931961714035709569707187425118543155117446128345595717423515928003374003035564640108093964679668573748085002994585855050181867123504094472022010936835411989215937570902529788734918963931720542884484684130717474991595526514215271342080783913276960158249102197152149894871518710072824225687237246463602631359138747161586410299622944455817885228010939244762768503879664107499212322009586035942663768651827877007699869595064337564837071498726780747849566326081687868849569360401548631459228192080869937718744660054280534285048158148528699820559125777082597176178157634922275962457160724235657452623200353072879802515944093844976081282472675388496288028193182891886093686864250662272527876855801907233735765801120418329704846100124101872404955428036976363873689606967238079880488841111296691044225827520073928792250970641870892638411183961261146238713927376101463237086936009905213514648076799438720255347217112318232386389406588747491574199370947300631171929627438175937670259706992217459842771111092926633461833664958838481003906018422153079130349667540404994914773428202027617303063341171941231691527319021398681957690817622538851077960748451989042334035290097411438697718419103716861236140921765991759988335689991058990569328797842624626838696799873105215281349667976271378484403621971790254437422436690251184140950131703870538735917962337531191022924251464988694263471729971093248037169042621324141263870414596515620851551152930011249217436278848575939856176701740308754482689140794210466555104581441257657175337061706080016700049687053540168956370112180762600221161362377394335469279828941879029738481847621993706078707512600702489477951010315792755105434364257186967603911998443452494664550261227720117225954805521962484319493442300810959714774565256745838619043991456465655510687692485452772851367273360587723919518601894035884887522334648476906334845090886882371811605188938446670611096390441150658242907258424961784983928216360441731519822088939493128549029859630631290643919834749413601638827748690948988596973241917190792173372779066814657985759564241600234705672730061837516241314337430483266976475844224360855851556448272854027827016216630283322715218287907203373352426111635784379433790909962120714148278243633766017620870669894255693586641616085825541453061226966043299073823800945321410189478924813028463602249075120267351600280854315257227467287333013830698695639889052042108458396698125876071985727871559079718057084455866270590426849986032952495270155732497718347522651615848318172445974892999853042348127190491464195463196190279705759655401350308422937447357557107341664997568776848751927342732448221364556842121944537019185555799374988184356324332479895736071523113370868371904763080193455163302506695645109848859838978565259556238662647281469685468726875954017114460704305267451842415351026333907706107199951856493060475758214711297629617253956919876849514102503358269370550954375439067663321053027261475803018275780336790841925439139406886478714915261994804036880448513822409936743968556098186066409674370379918120987337483128270818666732953735617412750540567577647691286196046337855457858050269678717037665796088386142199443154574564849088773766195468869884546290791566799013600432771229153043393250329083496998657406380761532445186303838779254540072186603551205030607368978376472979926241835207712536504933356830559755087514363408469454808853570371243467977683176308522044401371926028658998829907577263946447700877394083673957689315576888391651934847747484520045729246819104156479145933503977810006890923924832166303157152088871003802617867989740730646541836346637736865979923962906482565993890151174039594703844909823705603246331268558708702500041078287253006541031800217784344691394846666262864200665595408668073866097991449337454081754271470685576118932825037558473650865659708627004633701435705607781495072209719155099722750186494091731648044365369048995407470574682796002748347703156765558845549397495000762076348038512831247749805861352590111921104897087927210039159861352021140569295211764302188337330105546296252656957902707366211674033148010112222622488301134561484976087881809174414277506285956056209026010735181026384822012624546042759920550529274900959842582891526582508646616546694577867681739594544443598536279776717821193829024273267020458635149979346981656387936663401887143743966234850396311725957837996513598987307245948171198581537302617521541546094526139909741973733932812287285583171078653136599959623185916198817575990177797748217149757696449718402755404801202547919193938047357789156220194199044512275106520557846301268081298816512487518291161081877946598927313071462325636665244648786526495390311055167993160153791816362190100984760190035609240767168734553631719186554018970670766281458588250961065736544602557434472668500940156222052920177159286270022441925620683045728936717121547737853169090259848075788079173439103062964469767449652868808882346875312993775657583035156413850870247470683033690491404092795316584951316921772540204022605540736052975441755297484750931939830280242682575151221682585261906196890608083919653937607970510293961747100492858247781013099445851190409132101071896385979911043676981241333623789074712717025374018949055399815956151666949149853689592739798854660426757646754707796304545990373706025518987804520533402889613822141301160771069679749998807285291252083116814671676316686863922007686935147140007068493511139490659602948375394247351360693129243500243507360732153557375229981188052152059395100015444250617348040170239275179873493849847579272505192642831582507353235140155433711288315764078292626239439366891715940230694267577045042280072503044848428928994443533271587624142438946697969057119438197823131704896799219570443753019748610791475654039653942532551144776755469460246692449454710674665810615975329723488160204469701103440578185143084347996037431886557444791360918432842074427202897565061315626134843183715998376593220767040442227714128115195698687437736388817842141269774912905396976822592311184277760911195944601391370497770002600326761409458556188478747937722972620588702100615053904431847503435365605486169253989855646489644069994749483235186729424074521443218789630911647829207737385175724000465456008146565093022043887664638736103043157215357832935934169292024106259529229966318826191016193191374430959408908982254343576613608615745255844870120116209311253944440724168844847079012803078790100112498389867058208945895707074667154376540955281454724437648986623979776372239192224096675706540324178615333590983242753127910253118479269661009672380713065524459961028642696408552146427021712708765271063921693636757949113056631065810545746540220731818252331773574947330682507701864926028677026771337613878709678574130511852610943493567729716689211545351669182384678990067744238217283216237612729577882453788351160877047276125633438292263034191997522396984803834863425555349059136697622287290195935174055512770395963581238514500491282258698624461192704963854462103340555664511770433609777774413257509807886669438501903806413130496772055009489382769509270057420239430341630352475002874549948381661062010947411980752883381334742668918140972754132621980822813496931168935501822257824502607271743464280272128194968210005815772766875128335662329020869159463947905509829790307836656712945554629314492292208256768768525923336756972495239151216164552523812810998432117195159896644753904708099682281425132347504725555539766279104692005902700730282689379328920152381659765782253876773682663632518788950874990510316409439429670471910948234987070522802548554581478571442512799238777986854059904832735050427120178531478858589123707230078043844008982197844308094788882305698024343841798447064307978793844023372596042680595795536915068581437707889786538574333877798157558687856515936094340529022303504774712387178113767911601930895138329421985312312542390781275495923937674903145542369823048694784537494883774618714553716448544454144378654562372211772024238061334402797387064090735807875370639076822223563731839486646095284592361871713013489335493482984754875519784726516736657009896758418200062443006982053127138198543131741795941762802490349311239198611358201704440138556497307300291597488215398764038538403909461377940796632800186894824162043433142547025019726313221765353095721943327600930471024863211913213042372542482311842715836495970183363568511657372592661136171366617211985292942172630209874861786421381565449949673714866785934744846235408733863437466663917200120890182362805411865497944130146573995602045523664243452458132610094015928090845818661083752798344498768629626463444332669404088342245379198121831541595152742710637910362784472818287022108821836932941447963634101171120139673873703511176287858601983118655652192105061398906653032938068179979926602341815468386754439113894763128507065905428645891012983155776255935487854578139809505143077771755162172176125824638949670394059719248799020439219112417516821923233042939576578123392246587710203313928392270015432708223743073685309058152202111563033330125577965020091485948696999638937139966329921582704895944821808615972381474484364558215636691112548552620029051818199655605244607599007050773363584426256127886069890769689469512491526421597487171416702805038313110778962746772165398889973939430912235912543504013526962732229919801817097488967359040035795305715163354188954637328248651435494230538210634615268961508374845671545257114160416026790150464501951887827642321250407293204798084203154888924740995689740897291000303398203407217144952100703082316524102876738932939478258831658248254944268906497080282612245769419790542697714509398666907790286853027906613032327384339210875660456955038289863611686626797504439971903567547053513854744031341398110815355977933946627815793272927549816513053890691688553953753325871349962375187909493099581051564818084905718658080000614621216807089981807752944607700033762822289406056442103876048472734510504629026580642400885301390316543140534855316174323916438587705519174378871508396085714657667015620776449458164762853082223119350836334867796945636095391159041338149307816028528008379008333990607076420435281645630746687679570262182103027836541105945515738988573619006338546959217543509265543047952045230723164505614087155397174069150197112816667303840049069874514270318125074250039613429189187118019329511733678463003797781223875356388500381303585965211251156835081135703252709494876427067160622598466625675528213477294117790533663839274388133839497756674683754634228416028046874741806528516194181600973652770537097576677184494800472243330436762014109327989091287891955497162103072786310390116061159764437704589196694914830623721951002676538077957493996836606425533683583189549246524949683642031755937074808767241452024251025127797581833003369825838459070623200105179811764375945936449215808003861964286700387842882259453218624861023821394494934133467590125844515229948798616234604072110896241978785737802122044797580016982232192762388261280263105948368899589447293274330524425431994845631014958919307323813359706330128782071467994470287327250300318301455029943493467903386339786505418429508720980369306540799375237502295993935893604514155357702641107266233917753631515569114854683520636439703179651208680236902008255328996323449634495285716714623937786435306503157786093092716559850478911704987893144929023845642731669117208519221713289038696372538230006528320881561648971133806704680446576692459642727451887438036077723793645569740792069080652989519120422944643533994017629088658165153377378373916699862498558038082769009817022095165432569655877867258649333199566389278814452861927066597123812917964603833677215649220878042611964026708555540537246740796712036292589701912166367636705413757418783788888589873742170523575320788470171173956211543409335193676417815592937995033850444225780748424880584518601947246726457354124878883610558579545445985949651037061133760563236451594524761560770015894902745790995065850361571864155783214727292148779557191540167228266739813470363349464754942988385710707599832301793794896498008065999439916130899973040294671198305127333546905102884608723168990744750609012840970090783396984960099728206200313716754056008312088857006454893497495115472471359242919613413097035253714311682065082867459414699892550376176371245214931323404422230970842126933722205830354633814028037771080658519327718002292499868299439481458567120541849129966148351226770470084052463347635718974928218236611391602529820615781072148747180513601034613408011802424536884466174041969015282818802286497375979369423522965262611780466835850460948830654024005611734900004735641796758853140057800283197925876363780531178832483569296247392255634044545309713928483342745962873732911779304751417957833600743793873175327610173364770210185035963688213049115166987289089203316428098659431137470576999686393312587535681829078256309028633272420727303262039451377352260724937533749375294999618509789853218007937243146976724983214171228392253149766084848609955684714167521671397754303065996782862009173835938776779908031467825936560012306177817100033291087667408485191886528753545993649660659003946487932953687449737498435666797701084602795144555537553274226220532892516049018473307350348790083844153831391362769411474199946876072985910816826176496526747701943765691772793188831927774382375550203775056224897004354696561831107167947289275966573452453569474993184124167001785346643286170246964105095655659108797989509270645729353315407783860237524863571896835829319360562800968818408498993319429614573536599123237006971180777592210155488802096710137216884154934405048017828360134044290941301807925414486389094734640219482096923026934587030245231938029988618854114202682217054185826631843237807799820490041974860281409260813574935489149563474458961313797981650071476972644496493403328190888333332796877250976393302855769282524654088229205965058443176004973432127183529908336328290054509400822622826126604276089076763598864550689030530881858359755844119720481026795644589441966601664157503208780771903670925131171681126160515120733297022017464788834312540749897194385720213385560091556556247254960895198472100297018636443686847609693260713500946208214113334628393819018320445181131188492357350420477646939948050436770258819437957292650506057498654204462749881374579599980784305665096127833598839105345609316495662602081702479963062831071783028949644336935409166023007915094464069456997513303731309541690145473472750211329967050347052310666859484545840236055741447618997759008111466592243933834543821520709174143110290329979452190136280198465988774863492870864054785725153553804526389523475154838784930479401171879325906664796540033923742825599737590351950770004577562456834495572268309276206520252950970132678831365486631942021956642320661921975417167219883082289997053104635815935970173263369256813436708942306047330497518562825694105181406385908342931349982173411521773344137852977013985904089023064532120299771888216114017784197892132205488053656535582206878985388474741211590201943240533302485725418493979463497825931582117235194070697550677584660559526035556492906176681535181863677112153128928012745008255012047306188481499735812397601523647429911272244489036643467407089901756169343926892411870557544290014105329175072699275373695282693863081571246101837350683394335966830506617023750232562452657070314407998199460886015920081554520690022323249593638916518527981028413914871975073510191083654781762239476390215686796266099310725794497494070553314544007923746603745323135525270580549990227877969718825829836512707503715897337266176944914458929127911083140964032615908111722106741145693114282110161202324882495957582784238190377551240068224275078442486168587340741743107681193461905869274909787887507886695041849941198575465975132570662182448878322019862004676292253021962475258497863392162179870782338848074362442511419981599687203400571317937777291068315373748843624918826933677953822152876746050820193682944563177896766752595062172391426763558474497266379592648924898889172856370693277061087422791513726110656391250011738776247866528781821718500919694821279185496386221709926317323028463193154016855107718590794053759072586326847851048860056652782489763523379995887448064295979916394891303163930588295458528979395947501260646690209462270703841181108803806892447208282580812629121915848952213217725097131209878547962157889067370421011751463100148886248388499940388199772418886580895442555469630362703452491841416359695045937692521155792985920093558852398017725418843963593541193159620043509284623145016548490017361622322072940136698085924362579847988703935865685394450802340265289710697939818195495931290485984353985107922966243793331553428450326432287768962807899930265669845807560997088871582018838183119768762671258357944432659467772677197669249153895021345699055397393512563658795061524620987395156596032762144420827298598889616945166975159325476654481637902957643036208889665096846620655605820656981741312070841446429823177712545123821086995067226621934239521104112555499013756568763266730433898767443097584967137856997635783039283766109461563244654013735461012310204987411311129755137445681338065144138335375160094936424240861695707119599563142907947443509539339537280242056540956520166131668312403338383294026140091109484816506815505790132245647990907157540886823712487082035248851381716777086118879937654296921641436613091188424853604793471004415084421628246847425704705868686287158109105957071231580341018342495459024886468426414588811013470944009061813923168518107089476400222483058686472533722723480227640276361964803871285339308380446568908027749238928961507179630424377268056765818789829140371604422132634420751301787096677240670267972612289033327933255673147662987488269996930984684673409958892658208903896320478169872143449280382125038704659940101176639167088070640147148594918425343834398379064353265915854053433105791667394271720391306890019182114949678756246374200982958430991446478941890646553333736108990562211995391969883288118563703181478451772386262725821622303634287998503146082629227507213029581031807763333731337598729173956603644941572650096149942962804672821161695175902490373264416604048144346680991332574412860759148488545365960963284124050967805320237584722445883355103942768609464433738608350856796198628826096142057470716000143949299562983415209143408076796612674588987060882180741452346538984331598869022129635023853053984809745446279495601511006473486098310704164548592227939714982183543959239540787659954562126439489616317617443877952690089966099336571665845827183934179154050074413561049408090261047053410888499566296993569872153812316362166903266154808254153572050948614216009047880141528050677869919893243926720468408021078635105407553570655557836008754419979436699497790874948218368544389917201581285554914409442678068399490456892726081359727229241237969107510766688300013953802527686065860073896426299994860925851461838096316437323346181528110757226622969338103198820609708747515376954454484392254023362284691832970321285030038856210361375103252225485821265658198478556057233064218149954833682551393098499257360355815596335224021271908652140942495390063481192806454685900194378635380279667034587636817339912879345942596793040446756060373519340531774847003450410643512208879657610944982878180037337891501771328833716748383263178186843320759815634841218813546500631539879307746324210424215347359133978376061447690978085976922511479028554072035026476263940150936245875858922094783146921234132943675517287614734048999325421102688105418609900427788008652265077488879936631918865541307285429725167147340699595004947069004864059543459844917358815900939536759221664143390458624534171179535468797778787866776364360963258954699609516245907614906025441140594219703943867828272915140865911686580284059891950791308189075683241298792416786359090709262318092329305368070285351137349033090795152514684950806461401405202936683909242599866024155011526829068542558831216101131362035112813303289556600735038968175088292579545734841281242393929447683158233358505015046958403124465089325913203068871272396332185218271341703869236300901319965205972904873820110035085248454155928220045920536485406057060652932165090722838094368180950756900053254718260872163508030331497052631888298530635037844722426645440024374519673882112328396244635139712822694475011941677249439332294827208511439067654692292230843891809851333211675427763691185234082422972620815373285497007460892469483310692304584998267236810843837676189104251134101604914204065825582482343793599806533958787798235783120538532625822334864757611255170923259000937503008282354402572503776838716163035020144259803201117985884201985972300627030970023551750585724435636072210048948743114669442969368976103400750740970406824420199626063369913910067524573423093690134727769695071848112543729306060436421457586291702865106255825246395205971319226749694799484690302216380014698745237916614303208345873396616938196786633147718744491026564785058628333699913715286824482383868767556645619852440442459468006705094096041897581084838587557095660552489786283022820563160195000133871269103225921541115589546845403974492835760304208750273951845194368754893336188906736495287578169005464718419032720182596730149597059235422119639159957987500260745028226400552293511912974365337056292145520725409679656932713771146347567321912710336466366557741008160692572599861951754633487007958277500259945460918529941451099729580685187718472787075311176632662717171677905452652456304979200360394012899399228149090432189873014780330886663671089362828160036586822090523631809315637889376759342059010348007265878487744787102573708955983411333545665906299243481709966981277535919003005225262575419506333130360520734594005995116075586187327584517020190916251783577510580014462914560227468848968858321393633808903498606638224058374263500472824957413060226211812007855485128486003607381089380941532921055920371236385408141971467110088969145268021794756245447701043305825115223878003379850188347589918121664173672973576006335231179675973614393370242272845182050676688881333800598206336747419453472612827419712147026578036557811463122631351413920591532868352731524690941038121633281766428088966922509524546767192332217707796680826525033059927656680643916048787785117959126823415788710800980805163495682726695087437257552497904597662211492887290462197980287125595219623668389565503225570737804316324632432036261378122378544689455998358516857090817757056804073363101732374450196391074023141100417324213175944073500850522518730307668411636285171561236299660094427730432956282465428727624241867779442820569121455615479310387767441871952962186803699863835072205314873211475771636065725794361979181467124711736184070997381427100880459217796487157330308062574500729684114792320481986951067534058366932348896446401770654265294833272093637903232186101593560518380232228890838776375739021862515820936982281129608106571662122529558879434659089440209155181021999414480498328998486803696266747770061898611835712606343991910840657347194313891962800789559572529628549332618394039175363840059712483635984794144967540869245014030181076133657345988974527464428625047037766345854933381014448229677613590904394125795488278797708107721083852571799553167829786116058165677698492739510378680295308409273281093651298414248536083343736380656570239542065813055553100943918873751695703808046766626205062957461340273330422642739729076094350925888574802221102836497070610887764632557022453077567871302463409050170300904282447274920891789834215118507272413956816173494287583778776904673656001577541260220689850682250693870681908190891854031935758245520145154542428241659681739056478225420749469223771931753987378896708331199347107845566316619660577442631542242995733758578071591748585370852314356707960306585011132785904661383124712711357640424642312946017555134021504696414702121591339454432100984334690475801712531333857931403651048546569902312019078182610416391050045628375048498390955738802982449562670185527983064446066120432787150041850081948830966930160761398133759486467677603779871944117426181074030408378756843280862319383511379783145455473974973362274905185334447119212347767258466661936201858516085632697241551184750471258927946195463294544606939220576321237120209451768678057078232862195341811031760517871662014186063626355668849574220172075232150969810430287392371452789485178637245243602163149627457291579841032340016364408382107843102125617199200386304149984770778632029688035337363388441148958741647836751762172516558762353127529026750104062493392067915461307951280998858720251044791301056590037519340512599192690974270888520296581624879174388456491416351161389073667072951059691040947097751841947686669973012787984702666428923980159233095161002424268421795559546968114861773494702434730015515577146762365954554023873854819223450641681927449414810261334830856023521027063052268115972253940450636214108084871429850640332652710899757324235814069033962517174106533867670548125271481626275446074141884337220708142600178276870633548687682182200439609997657669144665833638249790479429681848623115283068971229295763909650285929342879768162949882825162436984097648404257791697354245477564895382807462585425340736300550749315778884703755426101032009712926928895551054587523363042274163477774194553590557959329590108687612640930956151909196703788626393030727623788919969229832223632389156041353511636537078023195531216380008177148687546753787495914979459544302645935152105201057310890811405237774608765441281691200599638673822566406179541586970572359167393431813138752962116986941544511023264563666987691319566108706867695340229016518000887747685574769379430652496941168933051441643738228788819023272639897892811171886239791299719996572927298090348132578717961324698856324768880000066641526443352512837159466048022507720550149432947579991345908557207063089392101449852610902368652844148735133985922654862020946586447266492574197641696620052968932325323236421747280050682000672780583583066164789080919052285572641317986911842812865266647701388145628064969014229848674155164428250121177951627469654062386210804613909769395332270331410513784565516292164442551243058818469887196029029383821753767255006915328961682879310756807267185248848004505810198257689036377745761403368144667626200432195284688285355985532920141292857453961307057296032619071226529528011897872624446006149245456105560578305951456939731319375593664485389299063715411382331895205209591389799621169692063861371547646563869657634587038185284215022247801513368708042115905890552786001689309818010405874233674373161432012528806713230146506119415075027887569183675623931396793318950511767359329187730436598004442027884132630522132541952817316628444561357977636979019490423614006265109831554070592370595862952081905169563453522503114023045086943113825064524379879741162768669425786517529529004833635549366461505543936994934404034076851108220383035603405424737332718668942230503853854227581449569672646613684182255552497221796845609082433158941040968601456760253086621324205124572847978229654892216424237021947517951748134531368171426636258278364626954884212760627311430026125114321558589016730541523547210417060150526464051733064069772772131616406940003099124545278818243928710633254294886943054639736408102357786523616583706044056627367988573916770277801937783997348787616509658343549448321627904932204021899867132635633522967916343318912811500173037807011308660219162179381502905051187518351879929548948782917943039896977749278227040107099037924691422395334208301557235488439002027295026145306075417084263484790209639623504725391619676712963042019248411313880408278225961813271986411282033530327825995227711949116254011622541810889387537680138462836214444965853925434824356498167409949155768382555896444308806335191690101403238849927676347315496966687254522880008743143432218283320207721565481885399355002194543776592654154935306760764219147162893197492679272098423702330133952386919421587217431421349370233371916250219798702064041874360795385802188299564484251801238809207751218336297375380546420000973388548523665602791580054919409504408193857216541896085412058498570450584785284203903827750911059546618101341417011214178923502758176170285804566860721722429003393098381203059377161768763654589303751465228781246629351996745077577071645268486903692411913518204924894583950159046803755086823864277405753969233090408658081955352534754319761269069565267969529243619432535595807400269580748328779452758560779743286942570588947868954163496518635156237166109222351265822107005980492580238055592254867813889386757427715347495893578476031111266490472107356101512188791998517451835292570061871821744455650221436271554319736110133317717026752045585603165816074642894520709698462769354608532663863314844346211534054867473142689640562420468927198428370619949726975866811448207144511698408085755794633936158778189325893218525604602980277434394416851996623347517282651631249755362252974018671070007621880687254059202069501762970279832369059360063628413462858111471835597903781863162996078768023517297363617452574089900129701497508566120761081563058954803803660508800623775524562544225579496111546333947184583727281401178236433295563074649243834052625020039236185196566165047174544051970344324870560570253748384577150633735655804089870920797521588572483400852737446803201860904660548216053278139508556125161325366850619334819543919078096024864480573629495459102950563743946427893345202162985182496488762874031963139320117513135653469366562379092753062324154803623478870166546871059469149836001667597509002273217242219800121185650302286991363021601904283831744903664023716964059141506146250678442851484582865459305769343058329068306941083661552260067823556087173186549369448899021270279563146051780859624461286757614102001379150668856625821552675430481997441528105467826836934820121168948695146648204034317474154999334267947139430478475190781633359557125248998744080237249192448053758120354467467959204301483254447661539885822944620083863655972525541428029607467770559835103452626029897469424848309423670561328410429935659309578274455780504248749488915211101336195521023981134209214270446903475090456750575425045882468951592947682273435306448684350057938374006542051818351501390566536235579597179219581161969420743745299906683413155295230124257349136923567399954566778333119229803575477504823409068475593350399452336202297937865710475592773448070096814659627771440084172664501997344671771606910348489574635235502328979640713599860157990893826693258223018774959147355275192010602197024252499564298207814217158086047851874390088064001163831165122079232669519527245806067125839067794094639543081075568350268964025338470016707017447814236971144258104338351250428631268343763505358408293054429821472395044383864738976084092565589617670874562749553062090881937093183289410184434042852072545999171570895211953442160100704306263337858851246033025469997948703122923609773151529220557186958172130601167388866224336972863933307554782631647372552111741497159988068373467247408519587766379411833089049754720790156261605607971492148156707001055091711552506820826782491037361311023920197596298794312920899502872202963784997220066987161902285210625483890854361218411877561600401134845447461475540227536620482323710828006990079883491439972112956289213484053562893287852935782300663558020648001643294972991947077762506778929341884952950309826035994062280314214294252608414273116046179629035382031390443983972028180061783614556277818440009733498586815236409932463965965556193931270894971119004330133572651784524076939113014904909965127412073499172664996870930914965456266589843468354455282697664300864329549964692742763417696854857966244018387835420284485624145871245177855994637023564006161166064446999049323454182738567555349881147927551899022401258097626898275988391537730062978481380114251423510309795005953986737411568521562311695664632655348548868576865402231239363206912855735117813873091624014638688043582007949236668837464506802651986761174057338291887526758472266070812056915240645597960181888442381057462094345388995468581969073665354715110829366261493922222924913646458745991101812060407674063110122568201455630554255641263383499663465287100778311440311871320643277802798504337729072751013725807887474018117399228421690014452897439047984748965306229497612554552649872805298094860408899119737769920644678112028770148783900888547223221316578706113761669190680328000580638770930706304916276737182010576146841438193864435186117137952867140086465742604888679979697037931183431029688100308432511608821045800866926582354811127559017838504105225742521556248069985569595248805970613615374323933668244788765422514603055726965837265539432515603201474630615827235031798360030226293559152872707613632972379205961952330809579538105115829752556424816021874921219534115604935797309669250629432271587620402264699256119403395494694003194525251215784553859740903088953693775518589960075722435646291905610569233475404518057536751161449089108185737011834809112320363123688582507185337964905101012672231142323331266111063583165096498937349692456893839191859202367474061689166686327749832783017240865567985644994073586857725907812572962708745621286163816961019781299831356092140955410394484891541967189785263888212136489232928603622641662929269323296745993940766842251731919155942239508138602453572151351078702943756428761964985302680567740067086943272928293085582941892199115975330809682711164179086032435727391969193918733944246081870057627364913515492567412877966923976199042892557571393575872599610080234394221083152986435502494957585818460693053312751792584420976020212772222656350464618364062344933454025013423232877045408503312324216583538025116672986184168624285240504500203384784042376971576943508923905217002937243760844665323651836059668626701843744655280143695379563398559966141362300769139478099983894595429115586765839094366153213896381969525170947036850757988239012334640199889890161887735676139869321500358275761554979559781836695635079453565641542596565286516524276813262608653653983868485373540477406740525137771667575243752190503989965796104438508627657694678147508943262019649769908378201954456938358162858583870881339430127448679972224951062457609254131361831020804462878457358490016460794452063657430627076042043362884420202473730028132282572119246693661460392171692335172063828227498736836692573523093520054281562688099300118782565960058906083320138579789050619332979800251968761182342962920464728719607106603726146710919076827493278961803305747717882983647738576398506910918457532404620110940178833097021767925443540035229425292530991707532264856166117800602533755858469309501252859810220120898311090214342806629710216520010569328144509611976747400175993270843363675408253596920263077788062084926502232203656430532641397962337872921925251654052211176523955060581531760982266880462528227665801444966361735842671190376914125669436253436738074879695273283871870006193170506710134534907738251220372153760542548880144775217102246560857485878108382880340543211724544268935788642297920880317090181915657332072887757884833325932570535078176662489747114753728116173339512988287887052397877545237923777975813597368906416735633532415397368630420066967797823311601919411799302340917389094962996069301348482591813877835990049293751774835925414095356661383116139955343705925175468860440510330619169859093944987894164437867117173072732486021866704934197178664647498216213651748199834389941093751174262111367472840538324575278328985587939322599831983789878439721980693607837201752156436854920964284131211587426295361715211824005834328608956142775896266917054940675666121204981043319538259172272763416389109474146169218332996306975988094854883796373918456665259627359208197016588324443134300227475459529537338484313102480968267348149424299102556943544346861140216312608794545653739968478612793378065858119021740785980376862935056525877498504457600073102879248352675803401799638236110110879601234663778229220931049210487342849559452342158009844136475427675154605769623264998282137024801566061260336455061327676745276076856806273168940957432292145289317457277313369441451394364519044016141354205370856853757124724896635068417376906234816806146354856699876299088572866197850734283893639696099102433773247847266948643409955604301544116153893243798565556864032750674435658296640096167995228496104046244248022659543140837647429140480982206849544037202791983744245383266781043595955832565810783828044427651116539594551542588608260069131325254360912363669808656136912618655119962451432324791593203998366481392273072758932985366443768212304428723262698586057828041065494409405811886451837397864442080630387817154723239976699386426782695758743170454564416742453197140688740269870781114759100188370339988637934900834191520457398723780693001704903844440980610511934395468204787512344303503777584164553953346016589677440299088140237844790310464826505763389087615905323875689420959153046331370616424021543377826349584693208069053648126420952932769393911150372900514414249611199440557286056494318649782528385810705615234007706821833278015234633268196875333374724307048948358461714103582240706871025689320753569976489644051772652145916916451092813612903257960675546027980154064562371637854946573884581397762525912273806143601295124346535774423406747651425017705940712646352772822864228852289521738162513714248968089818495347751772975972181354460138980533478495274815530193056197323526892015788715195836459749822957711938140482926333227989358399074156926707774314786301103013384173495214560420178735446139986403267922885057746545440483203980351454974036946887114383972795675237270708817576908805239518275444685861089995165742599016974578221971169682987925895632613864001316536233420068446843718643967664649809424373948600563990591444281072966771632612194829289873528348062524148615060883812010028885633881536534826993107658609105237198699932685924672697939290854984357156881405064464522408756512402560692197314413074214644624055520015234001082831621535727379425600194447691417594612509103479555888301228649039964346917315683392725568783512705580406262522594236024479745163202649830668406340349623467910996422957652936413498998937895849608692999610858198995370323644345868961669976405168232148672149090282669078823824777197023553238722993352786819450199071384324528517130221425281327756944102233567785605669222240606876759096846148321060812654746211518649817537385397909983636274960619277755025795450530675457543392393590846691126615512983619290386969044302469113854361269413346358835621756752240600672825346171297626249456883329664205021738256815758040182278489137671075675392091604657293680866811556694357817019474364536837546709647668739593872793217890785460266713813823038017587713158942969829745858203279560336265697171638829250277003516369319573080357810190263105118487516679114200650216985042007832696737329413885541493600340417988994332055355840097954019356857608729326475933421371452420382550311576286645046424263430800507622447948226334120177051006907685644076452256500877284640129763957869987298939321441746453391362648867574459095680428328471465863037122565897026767942401803760275779646909639304233360494592368456569973090142917390270596069012489766858280450197915914660383694942677637445543684727819873897039375443919515096778406627730120850904652923264887031130780883824517158198081255784688221982241578501813278146890467191629690220445102705246859578622171745845250488455989697685593797033092683863535253409279308535894358394238881287510887543720251125623289871048293062981326639563988658965487329227224551880720479301499444047544581137185206618425835251079307407059249485473411449429528508022269277538777299896574931700221409837006821720053910949064175816584262388164145917153032664262412310551571799328567938177018130965433952046621345497131195564893496804521564735575387662521446708094367832444763535990512306496124096347929349113175845994375534832055970579199578128566355817678919615855195524266259518298492645642868170386995137252985630876490610340524151090029224244789937778686682072752438418217508578430066441085585950081070058568009086428890882240733671551046843130815197203755584826866307334846575190464982188425096725098783905709206672345986251234724921072231348489753490845445566936203020470007892416010870692260689692979957531783894722241745339369075143391753745169327906952111165142339767436557748175774790805611993208380849740150872272206898415538261803713470466023249489348492777872751502781200423785865056121599619930796813901515972547039610571170852925322932832417378718472396289405888119173577225269320226201862211623777579842115176227338166816643998260645601068675027442495216728613490976982570396936590629223430281416486882174024890765802192366282710734986639387333491796024796090059818205767880868213103876634862538954624888796525500725759469494494644420865273321143782083842116416959760292892410346408224816820162403592984742036082061743497846193245746993474093598890339475884129343796842726601168786031986867149207985610662352836581845501667513730114708654290093062498145542261219555097316362073276261333924805094179134132558982307863825187477086002819251583226848899637585429882916903791222219608706811614043164943171949469360713362397266538659721568598863843362330827115078363127390646248868469563998525991314118261267671811573593066134184114909109070156228948883007029929621773743794011220727590285366475554400004636567500234733654505132242796397010391320070651208571997725548509380488030484016473014572926891736670588116529883343771290194674679869677140875066924076061006600170550819468995213646508959274742957013075880080679447724521969390451242969102185234353702725092219111935734042233370024476182361471302874584307326147694123093083845076837140331206426467956503771120550542816971640149244747881862447328226674764850742614081488639722997242148314295935248886643767468364751886344214091345571614263418507371765611220920059404724258531313419894820179861330877964883441260948921855685594660951600879278872142959995716264976935291112523183655671062507623100850369939652383622827662181129483717398926542389771447806310101019580641711373851999435276857159967495466929211741984807801138512184141690057127184782463150892057497178795901335479045950229586248741674983831882253684899104700372344393558031319387809190066350240049118588372750332403727743745566317821100877919165604245108644222299230547705405366904658996968469724030958639801581335749114009103072781448762568896844727123778740726006362588018181437571468862922361368250945425388093668846733179376079115081311756127353274779953809095355413081663900445939503075957167953340320027334723332791604401232705709103803781007688181411018490544733905581086455739369319087155199636871185375876154084090042624723346798185223044140694747014678486957413303855474358566152036995389816554982318136133573987538650826177620247312778311144383484364579371769432002267709917508876295300336423261638220120374111208193084607967466246891887216444394379431732246462808924208441577037668639929616086577609100019180291022694826435597487304234434149968976912998625675399499787482689462998572956435751299642754353155329833053007942636650559098846707364085896661949809461963278402623585418603491246375253359768539558265344548192516390949765386185623295472292641422809142337540239831735852816648479922406986856280310242340192848592954554210066039626516512953163970076169781586315279832428390378184970994518900934027371902565382963573491187068602242038352955829561468256147906503960120212090281930551574989163163532249419080711133712110353997692219824380080038320083256810414781901333464833266887696191444973297123598790803334683294683427382945636083409040215407845616783289963242383734447467968896725262140388293638002373677668987636356416152312190514401888355172517530344063467787174749360323449207696222543668002523004886028048068492066072000788392559625837850753319391792784331504349294718665675475763279918599537404762661622685319051372291459949468441169141208287170148837368917143311150848418344006912543437999935038448183239298476622861158213073532677708924747143764303755666593958241176773469090043937345112662477480139891694713381988057633617404551961297937869016746587341982261266997290967881327390082055433155808190134027936060858379095857799299358497749235777895347453529156016389580517599748550831505645708827262151689849572751750885841563443889227966953303877976519928603645979791051565737910268802109114605071732851278463139232237913125848423578745682352201794317442312010464152075912201247363154114322699025758223571115095325746779924666730590188547568427985178028164092178085313628642238121273397388901612414797817779982744105949532276314132728868596769858684126318982481029862035829589870912221921868300274172754130335444559122836054585694124620537029047578732072307831584094284253646276022124144157182802601666498384378970166920378218105415435208444996427842687427813851199850619461628813174520485089799306863425442484775818965426420738195743505536446233825846575405884204046290584183967744669230053333202828481744988860163066408764066865618818206910436806916123209168293534797333629481024280457632632687250250137385043125313140326242291490516981677000642434151086795340182842365794652356961466480888498973918401794692179740437686384256735296697067309988172237877636956937504619473792905473261541808148513636167911962690231543981628459837833346981838783747790203078675967313262793486073111197708450823999876393904995670355885895735729814112258158858972992679106618497068798349509739151314640219023881970695715312018461028206652015366398814865325171953190950710296706877974849018564046191196364566139501858909235967297153274987211343585317721880869608794517903842637615526606902879608460898032210488014995731390946566047636296643186654519985539545873884391388346885880769683009302728780197944636243805223294245289777277066904298354649904588107625880663273745751284132035661327963743588868533451846196101583512608928944542807465895555235506610789288869422093183322585737643024122367308929073975670028113119225539877224210004702937619929974415594898975700188743615847783265534665717881406441807558867770874839336598206704610528938444417052090660020940974894225330027955543098310877585859900874779732880348883076006040729301841994485084062539807183241050690504521082008213628303041238119653835120726491320855776374656322548481705648693166319864952405491267213483323972720821367114301221244311716820713954877258478130239395441700531066753864990567527921591382353812160130754076987437538567530217050068371841354924860756253804521672009422509407490515093758838677669072991303166478736837197800791657504628525524442407800301129846694661574120078789975985936353290883518275495229660632240522331962513532566802066145679301145605978230827883793924766229939519642131210131842661404443351838026097313520560694091132315914175863189115158126197463187553310756261835510761437975744221580796452046364012112826741419695765158101571517467638436993945064204789532305803913036162250235626501212504438226840797508557976599973417520999147847674461816098271415875395817064039598130097667186643244257151832555639644244195865719840432372394656513333626293993892134197060100450312587989531092952792703975716467395311128169465458848815602640643427185152741961677347729494327634928168209079419731329262812931706252915024345748505355925281465446414208242863098416378888582222237408341922240973135335447943467230448877042806322397788020968803376832425698777149625190820808113003124955918155766662960351938604377535143101354640789397427112303368958728820357491723710876970688338471405071457786228820964341720717170781759565370629007842793875863715032946645956379752807843956165506289744025500966444797447650869684883655424100020763473643903874296775197092683983573432566571560410848564651092360169842363581696420536203553514823335792284316875758282263110081667905001330822940500649272031963346943710273806998363347403412506837908297088712724913437092188744317005041612936497876962234359892108348352250694297389707609830247546018357704073156714134944677389333394672890167762996222214101418710765112236869828115106620337840924239325144823499295032650281346580254275805457267813442763017650238387929982378178041352485250175866377093429588569476646856857573291939166076882583521498948277482130357147758334359913207575813776621577861612298149782471784917082372762138788427463368092093594114954649110286315631925325197946850043828997179868840054392421438522163332526325400309831544366415208458841462663421433264640619910015319268955446665645219262645136961344868078317694512543653232210436831095754426389117321136548583972012260260457998366865781130799844319856532566132934155555770268096127116585393701728980348362270272797610783302926484269145190528546214886390811865038795353418681766224452441243975386569838334010474608394093679659424987281923989682522036063150537456086787664440801735922097357386037364124408960960238161020984343599549949540488902516480291874560587926739327552896580761933901954802282809880713876648834644611116578552578310207020551266127793124326812126252920230050820384103273468820332024309074074106936733062401483124885209363852437825980067927114628343815790785208677567808713618059899771929454662010728862594039638430993736358655276414857061386522633953997989899041775223668342479312045639622730605467775756072604962021466257060305892511522608390271327778218520620510012523417271787401585935185344452828086505308633779637788418424244127088301232612492227643345454309609522772960981580666648406337799653676762117551845793671582175224454307965996041144818942079427113272478117021825522078753940254699849619268997328974151149313810739084314038765648034295624206365617940792131241599561110959510514322360718407830937171998456699868282096341790088248074230175363614349774867863562299385773800751192156806447690147606813004498295675299976990151739944171324370780352965445567611541515551647369511767435820233746424043540122370922475574765697763535206192008086798601954090632602888205519112749493791692617822292094161022730203885801914473456043669974827635597813881840395883706122240505264758537962228193748542349430678747679860973241491680181479124520406450964879143423769798686725467768122380686295352761075086567957318250443822808833084021743927519116561388600421314975612595116930608935570091997817049339463483252116931389510366645514877856881488087937163686452409791284736863827625132989728583533799659476777236330440326825053373787100845794333642504753034033573328305255122032137121802022651351465947788273763060865637324835785189884643277889495601471616632557157564273121301774233746672451049710496146350918191763009322209664688787395796774760733581556228058054754724670151049544348585569044124829317997543301288873394955715981340857489550795408332460025082485533703102815665407615665393400108528555799474091578907194288339080392386610542794818748276112487082608626806197395693163520327997224274546486149754938945454580081159635245571261415764911900317983387287151353986955270797744093884667883691141793395351505559225073560508490656039901066956050548867739457995534516021398202427852128122728388816594441012232027232322975725555265593776658323024343922857260430101026824418617943624409000190214983176610974787242466402595347818572577681385778165526793935389068634995716830898183739173003502254494911213322136964840138879886904976448658837754145009143911155461049968541546801757951635346767316147476864147364764200460856622542105487319793057899900846569002736665246865822156269732871731771206293144176555517048392117546757232117206402424208012697667868289779438595687846159676402117426672576292285146498312680127917771737316873998915547447404448108209474460562387154178133465906730002797403494709918379230786028405445953043000111878236866318040076918952572355425020991897108772130568730055706059685035458883078354509535048797004670219318384003484115011401988885835080367160835468644511429570786974390516225648295604614774694465404194056078914736621039348110216239061455434302535363106168908767539626356900162264434624341951569820727969245556183476477182505892018385575600146746137062367416839159325698440316940248040589125762451744920387141367678936398829620407205546285073168447527993959524972000918258786019775543315026782245948139503430144647945753811885209497208129666769039198147350864858233478044482556610505959343857850217105787692009979828373460061733220902231272693578986320483820405233558524631951140811407252043731279995261927230504138684712205302176481047661670703938735396758393165478438824881090816390036700662681272166868581838029935448007001236909582608685459346419825092868307267688775732124363680024420032956340047524353431139855539294984714171356889345841624247357915284771381208765703506146823133254548758338644159105828647099879988181835055762751623356078860106082852599573618853570646012355324171503825420357380601654554214673434137064217971681753235343759358665119367957214067921302199938886384476255210125995882610530513178783672580020090714793828586721910703004558123626554875844800021672966352174757998676273109622586765968781502635803385186962334792789169199764952928252342060712345053001824327140338596015549548181679880782379556055054874212566287981370827537695781197831500975578357667536235856954164614489052812646966468555202840070875402533514524288869830337564808167012965784270466283552955397841143678812137656375346273202525585774541389242338126991553113144102663090491329477241419604729069358091156250740582040821566720078935494025826831374072975437256611542934344436733418768403480799968864363108556090456526036289347354314349744180081285430013718040116839891009391862578977972317124704707457177679239635160885579174497333525605609504174339475045942431490583625801676485369240628792356153645799879486354833850626027978200531590907035508788642880222265080159360996165655996286126522919321237020093987744329403124694888914310500674053274363272941252844727707398018206183910007975836601928858611400010205379033952813062041187259444672705858251466661817472083657364416436251507759239949774740652093930572792574856952462266908260699612133099007283592321282410667254771148237892430386592240633728030050020408044630864477306248981584015914961013649970947272537688182315019816716828296478856467289094701092150281005299763210338414751141641301916069066540135123379491965957888950146834789564303347736016549107941847008195033275272893596994638724875571011835167219988737434936393925712713789891913839273654922505976283425839382161653937987113853020954211665880275618684518317152121355890468984107510871634634814668169914627730120978406362902648996673256510732353450402925163041297835298430315979432988195698223741769798152638083615766654863456474506053942472578924139008347504311574973491353859287936742215521982263668343557865325794551383802662541309732644340580020785659352133862582602406522989821595158967525357843806048000925994509876742982448793978731718383353668769403236411950217403588185598658959042029165628150675213359870885991577575642073102344584409465128799323680577597531051481124680489789693330614748385949694767053541664637937523945557563218527678163472920974216749515215634717234513514373287385754969080810957928603105234384346916505004250986848421699858278814047929428888752229880075181591618555538455041928527231979740204060490637704974455163779616105648417864565008336419079344032255047789991792335794249121408122007630594160943569618576563885697093437336907899767632970557319568169995551563054174630296743490273037200205695105083085586915172402107482225248236010259319602722090908897495204464649588692134734162773651960040037474257600121223143094957758906553304566598948800375538981510987460107781709233297968402834866665322822809308062558512530174412512529019924135446750368202497898117416543399353529329133215879352362342920207798970855259635100747677127928303291656588343865173791518190855371201748143033253830425855081219649519198067692536040104590237140748646963626914111023193638362891255647526133391642214512945145027866116978535704045022913370010805181755274261217865588739566948557821884006188002600078575883393350771464510613361462678731703974265619447546344052250103229065919173288884173268303533884400976770391844773668783622627270345356009266946157377797404495144058684396813671645843488599839974115572267001179204869123287076064167204305983340937249869042282985525491861443604649043567777296490164790619566519912599746100070225888083170689888412868920878869413291863463213745600905924201561575141926240854589113484181059720488287338600394148040072209067637329517552360422924137327118061855663012185632155694264029998083873767244727897810026364634109351369175411067393767020487405334125733888214354435014429167016880243044126030157399498731585474666018983442674307231069645140746230534411480443377045223822389233076904291230992171592461022814507241252967965333687946882171778657484088027335997386334326771468127004720031578453803269406373856807784536930156606596440969241735701510591397040076304649619582024736968216672237290061781079907736838378520535328805856727136563494366763062109011085623554254982640115781220683548357900970243561407508942469565683363370497821511656991626699444603599732848060796222648955621524312736788851763243391085905571536731178081991062597241430385130401823070513078655046864484138505491605900969607084487032423386609060477289549633649377584563297582523088548142559457501675793210483902203740455499479374904522108249621592777786432897936478073406951548859347335357007562384620210070809726531407138092894081629998315913663263308981616724989077112788095409052046408983290037939350822269008576905918761824357815774312177410448088326914629213817690560505488767051549447397575602550769649716056674817443056697004450558730053668943893696546567955491143825098830994602146779384120469822560701554880407433781651755084383271186464768152775064187093466822974262746890092701380889754586797872547911592967709458080164267071243046571952106131230673103532431882184708835526191779508893975388519984300200803457155049297654293915238673897529241033002671905875951348759634977394452532787387573972876315626079541439804087921156956805008776874917089742729198052683665320295034025622004674718249031710127044557102074705240565896106533507203438919413563067000708484319668460666011122593734703167178273570071232523735357834031479293288279363379301677459346096355762056219408361706417526789114007022299616046595747972361697810833941214418891827376221166800203645847325805668477019007886487126252053558253341174377209349163676903594776528925932220529629247455546841133689571093811025931832036130989497032063569282587307160228655779655993283670673086415936838936498005205404773591468141646043492179306204425361644400297424785490688577234624950457065895044028676899601451990066775839875738975100015511398794588768024552117136264214458797082776774593771303399240571000778448455881746517562514883032708989087915620911042666401786193424454823295799765363884577026742845877133014471436671470592888056866963655132124595807481793318655715611355544323785788722347968029897629752032309863945061257176741608916585180266868161759560132256521630439244428730432334026574726420390242066932457581068853156362067437051466782990762005445317835983908747045590116392796656944529551927685603911572760522880905392810393779740681534664903724770674326946174637969785524278648038255664456024031975461730405102183468630107540535590312269465489992678802680546660641466103297288323249371857763954191839481462984083265570276137939987478347672406033467893859564866101945587853348204025882426268556720813391140505924086022140766906399476684502671004953431272658052371729557521841771631078553466085795951581633206170107777411939212085388002759051556730699708825473258336515390246391946999620440274757471813795535787305812319957579430529926001077649637567495572085840194603639644986069462964111137193884878876493354589201358640260251854388384351894016762222251581994042074144580764889331939988649035965636835671869732942962212545641941022317843794312778129177140019920271007696308932252240343244933802528610324790284258842717617784876451112784376924913110947127223776058503886825657830127978476266923579728859725040150039667468215376923680945404649711518201627121020316947994969865326942752383984311457767664110444873292365481842264533909813752652801533897816026019017713960530879508455158935365752832009518025683013119808516628936915038629353053022061282776263148619327948810089494375328468940862462768826342174947294653719766644443463436023591308756987456037309848481772137234185247785604179553095312403446098138494852365159594511547815231915383580733284134613947704745318581071741185357833965552104487353069919069576596609302292167911700947816862695218001547356301544189838141104265498671320159058727814758368423390150248039025810188428451840887645181217190759561688928067595088307297303113705929641009613224782779867876488028433905304335198134931670214878827920171776338839738561261086646079258880702847106064971911078291026153148860247135319387130721238704436523866444176795116274862672982845296861336919592369360178235017719869447654663862201741707278646668529325190985413372914675975621809710694107360278221727821501101461058818699466457243083861185279516504635407000812331005336403139302282329535813338283394282642336576785321979016963961662444919530861462453938418124760427068392297021044412451938870370713383253331950958395304475446666800307612438782317467549034382078025836758787024238073579849602390444849902460950126509779957314173640426738523805123301696177963104769113617816297657259551561170913109857742206226087695190240295772859536738602781221021520498759508385721824754404400095071083709888966352242897736081193920773082922088405804106347828006795146456409015778227281244632632613476905715785081525456318674794362316255829670804086845093415043437317868025535078307464737601722305373264285212799991810956422178689049888772545201827820140868909901819141335708560599249900009039983000274363027292264724241227191614171988486906613586201095694747532799292216581443423126783586087947822808964608709831573411901582176994882713205259175296706878226051581057636062286117279634378137676259814110441165759984773135017505770438926730732994962369277177875743602439051053688280593053530238921564204645662756605412548404761647315313257389066452464893069779707150915860760582574137659697786551725514962040282494300029561900638820943240177080230779633297745019726762064823240996432237422047007407034902052810377181342667843454040268391962701232853003136944396404130160902419308828522425339382845786898989428769988242403680751879216326824609029238900000641713258161805738892744702280444817728836142135698820905333001519882549770386766057836360522792223795778974110353258674879634070227935101379911287523565637356015353521767608759024863405656601732678612844917201612360742602334625175885112273962690410152094610276221617700486651899617579330656874642234374364304274106301200397630967827250289518762059718678948521346295782540471903210592383138496738636035064111662865434574915283478854123724986103837044139243754042888280758196085133727636199052164384580905879367576254229328198781721324959236989091746840365067487706894287659444377830498217637405527447048378839882902254658560115260129745021342751943739156808085580820581319845222177588795087567915329575584828319568097954195602630241160745287756589310774589988773290274804131219244669344985251841098089210665137087827039802666054779244363761032831378408516165801756898541967519472373479837431571589085160635150712394420428261072356525268746320342866969596566005992377319934406737142486288123536686690193931811787134001220655673276613945221698433376819818689411867619468072259285864207003506807706676102809942159808959377020493758964820083483011954839656576936848472927223641027448329763434809173595016399689197648224947870688852273140250325550844651544407339824188913127311825455752784477705073082468034663433981318717409223313922488149402093566464648515349389356733376321227476699004346635602183720041369665500350199431617851159598865320862242881904385308357491779018675761477750095859592312976091023717518420269351078084515692669656955831325617656266981486951541453639051516276760166880611930903510135671999267387432667364378597776482681668795533396766744577072594223887271599292399752625358916304295623214515443995568605225164676150234543497658000801263081356144809824803592828770947837558102318910550946780235519062588854520647310024215617620481041138939460969319300769233586118421331345881670582818355593746483078068050186457380611132447155817369296689398416857445133348539998792330553579158103127742124029526118615893082215660926617775949362020168051638809929734505552743824793222221644009021775498109994827489672028974595305894509032835469295657618039560765457950138156153126656541201375296719006230915573898941741118080988296315181865936144308930757474801189350684661940636992644501083770351057508882200691138655311606165971691148991910003347739120425818552196951721243572907409292767806161792166523213923488830584010603409111719104345787723862012859536885693978533569065332369075187361745269461134117552533311340206720111743649566859369268016776458853195230629738583538255370184548609620098672224942033002887125582244175914199962820819359631988312002033185540232146327881893066102632036136052864114798276298391448287643329990747492840328838694335560990710013523784560901138340290131167482933306670137315141008719651423803825921254211411764332451237944548024701999036371486004134949418633611171201935407560251044070914813809343671683105042894120252209459322341344545697561882602973859655638777837484088730161826436916450434231011173724830116822247868518316714982149589938395915962795311912367754191621866796765223872784425616529033588665857020817560768496000457119322219615022109588275361794473079715894070015537325795822308471594857071483299595436702391555970954842669368418514438021056607384331287685750523851487775629601234042874384020239086783874913815537813485361984694437045554898130052317055551599858343430465340030313041229621192671390321472484772803502132288063974453296955531344627757933245133380950878258661864973733394463785332209588999694958690799676752579090622447291979027125572855827044474422165514120665181697975946326085478705636787000665346635786521676364565911950624239235263811862268738992790516526170041089718940670661178589897130504313269920877523561886768850664355001221797587068919275883822244250224063149487711840728753834941572435838956394107169684518677553685713609212743751435770997026204659249169136748664079706873180684588078627236417397604950844548289960006898807193960894937447666288805775985579084592723327779577323770398755741468597304220548412011509019170296763600620467647320263072492687525308533542590249248110300827871228268195014530337336942042764427034248499880270478196096584804051676850799106781161212508655349980427578752710739061896564584504994834201886967249949821164492730842895797398568222467423585197475505796371969898025983213374489485755032809154969021506667796602612614903066495254273344845363620156716817816977350494893456753785504365349367005320106445157535541602655575501440116059592430404307178491920738562628237311382761686059094704212164917304843442857872892581438939414178975281190331846752892715036082114248271075646034756995805159833996810894092712449616872725519770216010930051211413727319687183805824472114634367393544857395080388818198865329451169945515892573648995191934223978898325773748769825607630883959139115236128157526582892808282285851537442238367882357015700531173418019921692173186314207499658628461775799127947344351741593478390443036759943136478225554606662731196452826582185580145670025571993242041071988658390876088201175434365062488541939846031134781739417577521114689998307864591512991020745223026218070441741986007990507441470590633205691633929818243795578177680916223480487288618592880302701866969829072938947528600118091228348399087636820114078091044881836976500231110836205429814035877629731745550939931794826608550785056774895565890911846432711053163171099395083308378869066580308437644902227150996516991678857067574582067666023524607510971544681447239570319727990913301810773576151717199355837780162056481410967346741598997576652852564574895038410916694430059743653572690153774686574801149937863929377951165826409269883199359911162447542773995230543958432184632255218865364332796787993387616924062295514421499347580409915370751044617084089719721964211787409435526530321779442791078569806914714870669893714841417666972310732968374673294254334330226371237098549479402480705516955746957967280286634956240721914231083146708899364600313121935281250635606387639555165129824309779087609199536413398225636566352151312834668652639506655834172947797687122529213105113226701695186357471255974081027924748561763249603149163155822866080117923371370989637727819001132015362140773799343197691032342924421797035994010774715673222165137629059161178609312848133638354171443607009830371170363234615693296746660390353721299025643525597599432437135960588780763899226808633473630797347498632396042568090873833364915959394364277448426118541058438750346770646739068247760765900792303566860245396534271464019575333061448481770338279137129093036941265230104749624114281822920521937126461699072293556692924423140032488804188402335111444135456920329884321866973141893414361234540490072129927400870344152852771755134070310825301973812436615894104786212499929523422892539599677740799123078765078346570031810386142390409946354583904141292677039325734957281144895444772595515290502663259633140814385445513755875051615658293029012374629190851863963716376733098273098682566449355069498130268492000270198664618293085816729702078143465783612231482354021359358878798937504257117573164515952872229172211868156839402476123807989914001570871337200594688425848165240902400762630399725556806223278011452839348555764374686976680743816506452620988054511037575409227960827544378565478021899096650509641667473513077824475732433822933681986239777311337143052316792391042421740159976174103999970483276231696412408134645260330820398154806453517991762165577834570411093537508193635898546890862465714138341954666255086393294617436636952580015581222452367942861655262118065637358502130969130032528238183163611126970938680210017379758559254284327133973991272334657326694067945290979936038624695483208550810308751667293038733680498098388560706309568131042981925381873252948712374693038244892472700347584697434537622143484159990141695327013467736446647904667198697451036947801257296031563490638348933270507915500902885254375202860803730072757577914819682517821924766472139871901978390774161476157348573013431636857188973115945715419401672055828146671259502538063312334404961181109045569624338458440192481980431313663533274362399349880671432172690704326656094980660092444654120918844778265661876252816444501230871645632689771012251100009353810587494848471046881235640628559846892890724821000833691495037265510774976501128842112472735610445018448884818245268668343188894652836059353220161788946729737470362660247472601559738844506460823532927620947824181979080440862043388672086489697099600933323338052965280540061029121753743663682971666830062143000291678212713922958946046542618387520232509304373866664767770716023161069371869249783780300510805311218273735219007164793261369560179279323655622687337030618808042554970753534585554153032671311025657285712114316740673829224723462983789775539266782064167770484492852065886530081162509240141336133421487678028048064553945711296933955762851415994256976246843999742098213354384461832463928973856932637079070243987348793163528315793490291149244914331227865732672317528261378119234034522984319881209013521817187359410912876478863730842242718388169671467625858917976798915785600119925204942392568207787737143711846110172488082635801830301473950591547123022460851113303345087246714809990092795767646493464374671945079273687285008710224657052909089429364013653680065065998468930304632434640290511290711731080883813532967869086728268089547208921796907813261777103119262530747075669162695787571206484185022417850568597102704136679422863594669043792798836211287524346394911474233775614823115328812491737737477251240752749784780922812627367923472014832836148338975616915580786995502183537933515189550134173234519770138492204661083762326391089386189452984785688496711608249896202254616889431776877501941233614018701526546082712062811222996168422687534655332328465682491725037940592648696504897114294914991858930812272131310433077525319788216290711349863718003478997020925306625515814261278409806554735335261793942813361560004748955169972103541778129082130394650152333699562613452926786790737807866120779568328513083389973141378819377184256541802536061424754054687421374238974857587619667690065017013646607833795553341863278543186351952586543669411461197191752879996245641104821991358165209776535106858041363435399133789770391742531840837525499404726627955808426126802464721849357094338167763229759822644942923253929288980372110655483522558101349039133415472485603503864646204367135104842884964567407622514009340891166160894659510633264530713670589174573748049710469790040933299860947123564920168846208689929785969576878817806467683235589905176418810848874197166066575787509466860691246734551084236530830503288767603131862763031858190130268374256330852908458914792120339702497387558126087920859886730606414524623409184132207461527077687109592471435759446772844215267812263131776317381520847689313490204229308524811568147834996278566920453273859473254224692719148118139978259967003140278099965928398310523419964756368633184158655160262921732883013774665133170495123399615776706501641445411605494945140753459007428614195509443541681164506670871267770033614527790845620536867668453264284036204149177947267497911740130810508375085282127141259343611677451037956434300366987546261711502625157468566352423585768314538199364205456804275481446231507575258793550601420588079502967314808555303608890715085607389107452915312777286697657926882107733534116995603235883469913729071502614773231042007990145650596959124312627444031885465792076542815739895702344468442679637505436651066715285248212694211298850872784460342266327873771265109781060172029982129306863563203583494047029372363266503281458898997661068353625566314246899768129502090286684524643237868775275804581840092653566321728457727163026339605863223061787716029218453038134751000753217266323072320433591441232884136535306105080154543417364426958619675602255887941282441970851424967924286501515289615803080377601336470808647106802146258999475947038251504376238109122242670351117347349554363385231072185856733430981576738750400497600782754186125152417218838720807090671634072116800308245648861852914298839432725775313357764849535534563217048140236162317982666826855303484842790394444029464809722554127798649647662953589530706961029865540963352919289727645958908658743425919454575367700434952200783252452583115272182206309303223413683986046583499207757189959354723088568595998401508852412524936216478299759077094198783320865012815237274440316637426023070937618788571937802304142714658374918801857825364716613952689048138781004892265396997506832556799228820962035983306231954163948380158620448686633374823385835764804935299081115754467910769244830172391208577247667056381327173684222185993978051757572950113191882848594122369693443402818112686792253784439003450162594011074942717473215294141777411055345895200685883977814638077604398306847639600840286520346049851766918727450126167809496613882524432661138677113829163871410412187944736543272066405426280068629022839729214102321888244602827161351118572756373304433863620687097622994733103767252018182634547470650996188535823574223056507024370907329466248372977186441975244949133033644131263717603428448103492186385759381653001713112854134474493364807619615976051817129708082267864159287823572360701235332566182125957703601576793718367538870322057122516078511166140806077361235519302655366087619667106338902170858668800646722490036329065045014556612957984030485154836843511851169783069095717776374442033561054147888534068877783239072818157676435463924896700138145627917397122474547875504247661240828672033042867179015529845484249307740771974570260179610979124789980227059373469145160283523743140127921034717519161543632770080228547283287305455617666007611001354428952941358311210671067467373570834443471961739259571920843082102117796102812835797310766603242365246418846650891337364760458343911387566897289689962808880359103882384010930166094004839274478572490294871036975541201225109484407898213477927528423754946351761386524399250898759264286092363299256146643390504921962129727010995747550273061240023840450695034943769839297347054428077726594387316074322654838650316728473276459892848996151275239883918444119523385682830441608052254839243032399462477959350350473612260700009020519251469636983664132900514117873877360840299465793502052276044953696588190691917139414129075951411425994778747100622459845741526428152558243893086012803683462132261031722683217932170877674950139446422590056481166502239035860863571504506781085685418620771693694965268811428051735396670188804119170646785181215260619934911468160730060696972197848339877719176145376758056180011519790567155374167215101462856190711411157699054904417789868549816710032884642183100111217314287402491485596923727686861869434600919495415886991050945594253134440601742756300181407505034736450267485917009206794929339878017860636456154067661410973955082395159238548557520322100730410056625689964570250654048747606569740793291707036857431363937392118077451542658549088411678233681603983760847618369085774881089291851381000733723786154685332716073342322239159526182643332644464158980673845268128901365859441792203511530676379195269741153207472765717940453272085579559183023728639241289124134338191172986077483229373914516450318075144140345459065202601757228498457670606834411227096011030500414427839130918299820298360058729289022311316337044434576883202536468172633610217940754647374123647314036392794979143195390337166960890668706803027901026649504412521484727781758043683923688610465475739091781317783610993061955267835270024359604871117659278597668737344934245446738217436122482711515790279022597986295455294328272215302734450677198991792917033101140108300659442706264963630599401908320602340859336953033652004174991891085535855422590797804094992896670199967186212154935239038042506540944649290066166764157011496841060407031555128931798261943258522109828718654534462414134033053656546534654112400000503340178487664597918428971532679315306313818593132066362693313709651821912510436707689506294393904366798735775883063661264757899780176807827740980096131414111216609682182455231270438814090918286213001098689141929546681924174261514614826118602837588006287505528562846876970184965656507051201897203014607468072381671413025059214466098567784112027503899808029438812111975450445795130298216051489210171856700480489579672624186826203081560082478270370708282002131751365121680739219617587055113172106509264094433730336372434887389011392714520463956079651465146083614629891570680263366170040736975221551611657936394479651010675511869347933057396806606806112884628474537699474607765500365467733680098058056815458685520675511907884024427003762640943032548915127618972132306214247253325382815899954258512839044835684547790341121438899427584001780412833929912056900030944945845184662513532998650126978918093066904813161003890446281464785279059789111089478881779304494236960262910632419785331962351274863261258118218235710983260414085476621141962123095146391781170830090302262820454615175833045418590516077543333091817380180811787161834690289190955220870196782227236678252530776534474604063980989151133894770873813499848100273883002284250098917835046183515778527280265483749933112062526914978803041174534825451571374502030753885547577694020230562239328733419831466007010261828707702105559610571581246505363771748926503968465768687492895517146534023738364833037360010330863946353871376948017397987121201923803733115890204961365572297523680158931018182479379573818782566013139782171563557402443210257198180491148172567315612042125867221154656883603111067679156679232280850661365762736656432820665361831500626543365024444628080214761259224427172981324893265736189422324780416488568583930110187722439186623088804467328812293286612768405962059053917317925592382261985907450895597651479193132411189858965679870145555107841149866100197540407171291965087743448112451265287259039043063573734741728339343589347634395185533806168989217243514377178452102735264071753469579523077313528297336750098879427311580909446039705370988237062891727228093035186341362103251283825078866317172312815408003374066794393025035115743047584508318054188293745263311067559152184924383997328054119134172817481466569256710703998205830880441778038209097226446315337735394004320594575137157327478440945535990750152475502767577761776562029466393855175078955522934398589448461955601536451684799676310971238536831771579011440185280666557338371752739319177864071064008727079144040162194329766479093491158352352202615270855651670589850851043096880656313472766091086009973142520673895414170542540100000620536382595871655328525314349993952348298453830360505446392505326766686295334706186615298035658131411871495908913378191805533102693887142168788829951091203958230133985651110973529258195784560211441665167715692611935255139466920248409678729606722866559160487432456646653123655277058033629798887089499673627943117772855397257852557669444466101725240192914832118512813560498583385088590159835875258396816427916221686346944861601163665245788731037084245329577626057306035432301685118119274642397432879572794292866287718992897988006699098343652253288592759755652342698921165175878421342461124809916759884313853392001682435358971934344681751508891491372583820831488659695299151196620255140266613599055785493262726232246544010011350779024899869071145280657193713107714732093596391548692723866680621503542389159427413352470868403886894999639102330068904506157992503717849692952484993013313441077609201859924854601393908295042170451032664797648627412797981522682244688171177109599702283139975260611569644413432863864345462833753165932830669601328222251592134496655807614401944058651685195455665124641889006618204043866603916005251840349825169509756537347048670633668357079981824809049273766323913150682478517474684023047359527568471868524445937875150430943010812664437541177794460682353767551781269410665658957992744427638237014259216736697730615904673309825467043532465380581308185980199823563346715139254739620141145598625915320171213540444140463641234052434711647514413414054120855612804970164051644750883071216160977118580562619867110419479455819503325123262799188969623556236785420520311932643523619544632933371851032766567582347005941324759646884483196765813666372983997218922786325535228124074738490928351437053417365206865774726640014037894247535286610748251112687593871067503567896469423139109895285697730856543169093278978283463535298480390431650216959335601669299412451461705979081485925474680269686648085307345921892655574085825047246460308781139205634889489467292393504600045650869865549692352140500189933737142281209506531206530308849046825017612081309039229108048958817018489809019125868050619648995744410691219253927840282257759736478803296026228968504234590931651288785638236384616543488311429522389961978146858323406721390384658381260568831603753048724877526214266574137117643415933305333292688274237768284198111605944480109301431115252386603853178680916512791792624502235936882122031766997994365737988540506862675937923334785110018485828593106635595909898060180536722689822600280696916578509895890492391519294256108317052083170700779021533969318382354526013850413409273204064826307070168896965746043464764430574188416458615867959378283063521331006570536841976246350163000130853247106752399948810689045097842544809299858083100185869435969559934223307395215085952874634004818558855781126797075761683393305778795568601681603791302265207287301983479814840606463036258321804915378925455763499028184028549209442682395985241745744862486971469696804001006954169346051815848551845006730841895966837897046969813917236483311335301583211517805866752694638850686718453320660213598552230281803240872363536311257021812511506066413198884600509897700954177607486316650117759627757401931938379441069347638137824363482251797962545754038584598345256644206283690599361523435883228669943280375129747415566857968888951161856639381308019080256496304206406212648597263547916546276975994289247761411809241420512372444712493370976810702010461403945615335621914736178285043668871557898642734790029768804944571039105888947597598934648814108286666459866600551219931967510241158404811798643346664408870909083453843983698947266297524624035242064780231951318916634982950027570605148142088874465450457137645758430627838339040647816056723444713149784159584799183065266069669671820130267004276298229999345809264406035688024279090681257623327000840475606231524605615885276839368576567755596043344118578975466801441218550824335877160334635383126338462440253639874456034103201147035869422220763061344672115642977325766629910322762810470116570547607788082556128632219406006727176678313606497078926566729013267072111674085081416971498084776975100106549213851680330527996257895034308284915428779251701581487456128836984374322005737543838348596817482995189975234160526595030698079389819520915945555425018398655100398915887119235385139643480817914806977068036539750040772153652299869203348091443705132136894510534994630135677113599945011759560702185790052927214337639945539815728615142129437866159447534102602164870636971056616866947608220468097409652069677265660892580132037497013257051691970133706594114590625696955586421669232422463581833509387538656770044560660948579051648638203346931411994196115940219228064862046077498910815039568778184775021184422649500932385642069861875018573980286377900372175322303279340634580204183370548803000494368808492575560468761946538894839990374966001063225970283447654948655827575152613085325108884204740899114451277261198777981299393812324778202087245275587237289540105629454702492684772925088956405051835032052630361933006356773697994690327606115010115175621554810273344714379930015711509025350520042141274015516918370829730400795450828147211474110576339660295851334800923116991816849349325634659124394420058867993119725370218952435409844978025268124775232170446153549311303914166520649407067882795007244136196533792349534427302057640664597869343877003793507724854354894599004768482747473505029795155386717336820354509695797705211888569533576632858141068989645226613852572773487744734281365125305898029171297158042596934983865189530637141743040298584975765565470534350773443567870251885745365600717077415131976919499178991049755073445429173252206318052046478194317684279097637700669922656542504236311575858906171798917525066103452082033924173117256357388423315132031339011383490253132497685141976849686517755582079076276475124475894307646835844520758033637879116574905858023602765817322477924023929024765592087119916172201419895121213206288479049856851993577702739362425805327607595857549324348267427979781584329376234078288400302135116793552224353615458948081415220512009581677923809439480435085896170304374223746143136151143333402331588043113960347609790475067196554493509202584997776804319187219817353138898117424452956835630253828466976877668586422819003195739965401087432668263667060224291581805652360036406215573920843279457837157731579161984153593299472508043914472690470730221857926315820761579612879696887293998055341303510542147934184707011099279144732571507124104998409244154367955308175778979828135055244063129566271601051779456071498407209243781230876104725265663683666150262251152989432218704350535493247250301209099115080527752886679087997612595211470396149089201344958795132250138489599185419503771013126038668580307097435201870488851543602396170639984831463286852147849141139277375395175826653370846495311410313269294320979245556387294081233724686088467432615026165594207170671585468102589986263547120743697049012396626001637550421963067284207603055594544218481357011991292419613880323584463216004292055291913861923460322127986143584724768163045763920929838649761478623669464781863642528989196355849274706269870624143786290584402521888239379617626826415396258910160537953250900030789751169158332811988233247151409365598904554569809834221204936264009179341444163738911951667939494208353457578256617790236711068475456908669820539348815842487625923537155877832166683285863366750779279592212797800508701930001832936997882053749746971319400603272951774376139927223042991072697879873606900136456170259901037064565306390405128102408754098171933725616823952055460636647757002031062345237487574110778137763689384985561553259338530211571065155344612043162524844102632398493732083966620514540714933280557843612659073315604222893135927255653855747120205872247822637719463332252911450809232503229717283550955754624814683989286406911443998275841930020252092374556471046984658723869806592821055973297414752941387284763016799072302870370743867503814853494323272311159130214656441321506106411137918769403033139567667482733525291992796074437453987068147193961182707417437152375611907392250800229139933773850862550761022616508549843734450123737968082311447439019476637762431566510761234807186871456749441519656123740475032078484280941491451624885057894912887266235228595361321914014265029060046911863373622064058402898933138851878098504919386212006377540073944484795046641310032420064214788465377358027077944752849440070345583727915482306931384009452257857655553823579501520269951240049476695509485085640570174881529798947703581159255685206074522766955831620854991056711412711447703682257319008494142290891466310355586784823485259230132081368723227999068376653984377850300912056622697375303502006537136800714418048327534508704210814561911280210215393219555615584628263150160759268133513760872710337120444170943204749542965041486818543982163007746340383303377523072444963141188417196763530112316953599922520273089635996638784708599131048416045983814183620159895911202615808945314858517025995646902134727239059766205006377974770008173048959149235747683416314772886413356756782319924209642040462125500286149870465446453385656597413513178826314121375971636178584826880869035549532635347981860626638640147626691684165566185145225104670854182049742013506247919855659493667396171507495783695619077053400702913469434444307340558078162951028817216166021014058927445527692976316178273022967329908890569485648922031247373904739990031216845627304572650374729313611925635413269362256628474504730727999515533684915937595321581169879121227914412157396570487465841143687564828129995295738981601083310996492802612195700540268155970201014575699784167422279295883376276256643628411248381034414578364257743294045124444137598055203946956930461699214122155462490600387202066487007858358751493276885095192271567807259495586914516461601341965840321705256088697430267278002563759287662474492008057433351751351128027026012992077476895244570788168247692098269409371694243636750618573895021261910115629045037534131958633003520280083164405412570877905303488740031338385937447083005712544423141232017400058654575437153948481006817099377760280567311876258035996970196246936990400535752575162213947369291611090077918733470305729396461155936463529166906855579029309389507792258918545745375613441444173566801812382626545371069011970208449722386548570726119005494678263192665156776614095330303498786410948328593098631190025486975478467180723217730432376132197674507722054055673297689569426040082087471977948433974328867183331123113899792589552088228409434946735037562169875282313450300227085356290605854229950549846684882649087677921976758434959965527427898218257921851839826368713224042025956175633339856625934032790578238668305624420262057814722893074195776928587852301328118379255789818980565046386120717724627003919955261620011151634350789543656100663094346973318903033279406871175796904798084853863290529182218459480664905121011631713272715479677648275130141523407353438850478884564577543943993642611173511685649856985365052062292167568553444369552107962922948487782613280128676176566895309134532969849850076575805543546948058514001671425397691872490360017048707558438011944611597879938782211904629747185885800157447768503741154128994335207253610211015723020534867212924043357650577444271256787077803699901489687947177179917435088563094828000386403809681816025826949571824603935127027155949249121218465317307109100536796266341530913346249018080477652565017483583854690255451149368435040245930752724525236854005822611553489216098609719226889538626493760550307311846197174733050984771460531931814978888068115456692912309469545300766649536094769863263904067167564024738175571954688300784437020181728560380751300090065547542961330570122893197839181533560397001297638358878346105036426712186155687599429264363183244236532026310252040460465040962807257367727517192177800752773278886915717626377737734175433145196588077633070785466913472178840057473764284080904941962818461125569499351662166634266435789998146228820441355010959475447479086640198222446972676078590522550938782329241620080519406602663886374803006911928552699318697619370608262116929285727790490247800266007622676696424699741186937232398161816286351857257396327095091467605797764409330889426436363159698515848898371773840274854858786873326223174623045405903535371098588873639073191845151531199774807412693619400343335439292845465717666954286765986945435064824256872471517906630493985741187546553324687502399973287506573547323309066244206406669022288844850531209635095364061930053323679204317395121476225715054013656242866652079046553069672418818270584152515983477770629047366978460145028834215346759312615458559876906873348759919843114516344505064375441495057505425276146998797995323207901099972954401585524999690117244635575925854335379771461836188774975170584881985816706850878334355642347901624809847238377660085804584147948285185198408903584482443584921607742206738922179442205796767491363167410263603811893951698498142134080439149983434928861757841748647753514125964364188706060072096929709698727685075946622691933219939434230596657665987026812756845761339394591850528572919905617462920147060325119150091115789075055930156539014445219710600702523615477883335286531820483523889254795649630108046662058395287535366024562869728653055067666066119447630958505134092166340615163127059203950950821435437775179305091654899469274067186396900999682243573396037058418805464557659855861694629719383393191758376961159957513526242656119076826065669194477934140799178380660076825951736931126355744759269734476113358996651529986394909734040542411645594139637122004663918142366805688445081302535131630621506053345442418196912999986154877810062811096122727298722071669543467828522589194917130835347916188053735492977647797819575103913360121308534728238341755425761093131242144139349337905028020240838910882430224040509962584717091690544877387734053417363308261213170867326704695308730988861705274223097436863251343797401445160407433247459073982308261374413196175642685583053792659477355278261334734561919355010186272375023027694154223288227664359883684183340453452949593684025901718383387139969120645808078959045973661143930985695626925830222934113354961181045700629832733862308649671847950628340093218913049192875923792540717885082555898847512444652551297374527561578713416841458385908447656568941268781604870495193147909976659492206698861115294942406085152019625981780677457200948799722576047282770311214169843817917961689293213993507963427342417186325129512775561968164711932757061557861135329950740285664037708677653321360313402896273822700485522751961327476922505664832363521936386011316170820242269374091633954813303640641041972293540593456643755179652147493489298435241714833153702997024167035587806414131418030301909590078155948249276651205956083222175374785483145955540737364780144404025658405910312020629036809656543332409421447361660659202222810655283631878816022801415285011458013943095830904363825384441117056428794425543737307880957105505209710605821211780476245806474377896791572185313663665092898208177983300629909319778843953549874087117967711673797179203561246513830884749362970216744269038061441345858767421131482818909921658041456790803460328716868359594384993979989198545301189415412714770628230015025186109820346120984155381879486470861608217459488274316111014107360638911007602120745518563667355659338524245241340083373989231526754000893269233725671189911357903186953633127123597242517345993666102727157956164447211497566205523395850084703699401874813951782611363010749646007172993287195846498417746321837661339099718093994431482436417174330447090611786287039874372333688700101455995939254255738862555423915158230740892920950111482824885881749773873790765756646523219593951214114803688261907601961874359308773836682290428410590142113842100704561604361158048872471426204288377404558346484413554386492641861463708590690357514247307631485250591305360200553021875517645857782358833230644287041713823168423109429671037948119137583618952188618232346263431536558667132437787584087011053910989242565335930448950382233723540703489430462529094633480718518440307453952349032112726785100418447885782079259480822889820385751117951875115014846306029945269811294317228013992761604500564206619754454879869118114416034365389907817306743282773821498536762252719528108688962486930566126787221256949937679896287411056204558557884884249976142625473971231517775717111873057216156908546730886643499021381323838794737192017541946457530488732936453644222818448989903173495092190919415768929689266546913391354843565915483508064199483662512552246063459211413826281904592815655110125757052720573654518262003517281367744137629882306909821082624037913801706765496837542213004349289143040874057690577680611850058152172603367046394837567443177474755513419917385814897505427185321010875638526513456725128381205205697068113762356312495748977513408339934592516493206219749791098261826577491795680499501538189410121812113319942890532531908115430647378612773018339589781760422238711527813076727249160753076437010650070517696191832054332340161884857317595888533818834155689506503563509979956546056554704522003732007728532594617543327445420719753659127030505441786202489675664048670973532081363290900157004467046063001204289568523927812446846530750239013182900002197428515370708082424155398307035036245537373679091107553015579764777705305945906190805110891338906253524175555010585181333224005656657973320073513903377468896930823676922375179268786565835573769016824104742754310412494059328586738598829787772375275210971121863235431722114093414417934164579021907548128177136979685635479741215993020550181789932504699872058578981094197341613152379382066937259607112993544206857903936917636668019764845335038080354251106643153971774169467295646434749941120780579703356774750549880778279570821934330577379937173498965294288824828451241119550191808639248826510609308715056325189224973732706822872339368514764033931297715439796863609876810893820755234083890512732400452794761977518485658784214986276234415023844687373015451774573086574560965823800723401473858751798153654646742307395693264004171970133202436223866769580488602677688825715127231596053800212066648282041996128928367341353043991360172192577753347549602585497785297894660978992963796030553460145477524740722679945735339997584294973552381929099835306943211528071399089349759193533734661775674263086947796739103246284634919958659559233638542191709854370323940907904986281370384769947658150693196394765367231162337450935765474041194600607179846853352297027753868402171457514929035102635358221368973831911870226157766687872510222111472679899661627204208730693911376294114978531670359577339115891950916653222095919508267216381103106747427467358410745224663479020817129150807906426415545245607205829892444962517619865865601386215595683079348027588707611711460162655181973324952493421813957791665126896521187758390013226758767917587836192866550435260353914639856838869544668468938170961646539163216364268146243526306845909662043099793199974027305347391608184266608839001518214876406655953417157720974917382552369420553317875886879102318285627670218078253804069918080906301638543050445167164975657945716868793195773574163618120397969708407380080796138265923031144194597290137867591551779224930448263698993497965444999831914183870087207539487557795373945529271200670084972498650226329884485854447878525680067719683880289567144439880257934398458161797761120789558772812868982245853382642323410767199981206072411847516977461115333272736326741147594558114158839757478880248261184992329776583599987639908885511516037583492908704437086301885796779590121002889477729816800336595584530162721565243786248064099644824994008819652035741343351951240908953709487500426285358251002398071539361341051504646278259570589702564829590714274413720750449277362839643926732815464026723959411557771787362381815989543686804697660108925982869842206501547985040127977645614938787380334018586826184286756782781516588077817980916943614493550622292630695333827343146729022565866403870213449355597705249225377768270634425961899470715502270061174198164896066852328583684863465287599940785355811915035343686806349650025125877774419762939729664013417315255095541930702163980900032763430680638459157585946972463194139519355341414948011780560314346164510199625944294593265265721548237794249389770378656454612060122058747785021021606345692310814508873547644801378543527456408546773462748556436964997193686504224117225387501511699958578344489395730779385010020508214395852941653528130335952974614992409798061598577245813803164669696956872701272352488421286281116267772206530967531471954009444293056443189428037580457608052715681558052415329891527820855839492151178287584458403273628920570363838060814282762382519470299934048453571462260905860383478192556687957183434310591027986564358634414230763640188506814797104752558224206661106830207018270553312220551107106411002620525861985352989837850636017194339847385772974291866726706159264000390203127863999703150818492786625416963236825354054203510452955708634103004175149706249797023520911646003488824427266874667600930905910671310825445308787724403094856074871126785268786549951829774974933453324715597787975659370674102773525441009627223785857290116731672023830309394604732496792212999519646502564946136706856038584610403275497503389270429729305620814294330876884911199048031707410867208781160473280914668088179344853587259297121809969161327597245215744392323063819700639683159534776440442642292437600339896716225926593310616766832495742351388201544411092781793611169162757699066000547226259634928820089357018747960851058979441887226522093220576463638442420385463557516540490544520944016374066949697162982941163649303336432729669726206799769360670098258049657920885352168046148886798046405317407112997824960750157967450678180389577217525408193053933122607148025505995642898100634498644778068745014233403640821436191559946970507349958243936267593124912326776604406847103385020552951003715316163703414245120263478913211721469169739643304510651734807942643284564051803804730069222019824245124098696386305107256128474346462548922601493672746063286823810992684487419454462458178369515339698709310487568830450210245903709345168704237692768509173098610660565287664992498019903549736785245538230995293629238421976077858700219237707882355741559949431301487768682249368419339941072502882651710477796903583446792081083270563256032789556185256842600876502382624590353668953160736788588527885710710616748129573524524793181270694424010132260486213585545676202620702590002259590014807578508027156703750731858609625852415309769885223598390515530729293406870812436721542387340249602511667278231343327279678127068669142385185514928495868675110710767316749944119863988220232258629349674784963877095860613556636247546998465368852650851339558164323095421271415452475278740722547076975917574211595818611486354058837907958670536278664097274766733840428223498504337295593396744027919184494125043552364470857318135906688862334990691221558356793691092738318926819051791087069722924749806817409658211056433863401165874716122523993404275767070049800588337003119356806310962263100052021839814563835777935349194810395403450808289691977114348388213613531634492368717098756553292908201843647305959104827581432442208132470008061951918499150006809305210660041605454300972250490538889263424066030235227196290011334988343633932622403369783740230972773681148704226963536433263604130660479539125698670137700017347108112714394221783464283162340390236356083885687960053231927514794872105779597763672626274454525942422308323865630593829956333174208962179481311393849224188272356828796507776416029202957603289723885148413810706269133306472804615982177461985964875738757077052914061379702579670315917303968075444138942834647392918604122830014212447503378802635389653746081480945675613871965837480388271899958494390717385158549346988139001511947500395098572357558579579167330698938272316484053026866759829346480788393725710318113425506294382985670063149537809602444139940319647044216779894170307877146771493587404824719197304320929176570595908072500526270872035783037575005777120454487282366411893763491423567024432381703365904641641804749230894315994589061591020695774384266298208395906859269840043679346245303174878501890578264356395276927973668726859482276373619286921412249176974435834412990756615864832977312222477031712517839221862414537229148488077383955774884718965115229906213812673704199521524392715270718874327339996774452110561876718375453438244363034938217427947784364396586157785177883596707399247929196708116100509806962802604234595585784836275301305046913568954406244671916196635293915816629334213168925209353704252288316863071824437715283361923948362870179340720511110325739026603768887248802599339544008840839952048067248651501022050818769829325567090161419059011790489950795676293332621477003322996413595162516147832035206942594987607876537786220662079727521781398206285383368257980696177465478358799648843874225985743875773035578864300783084679970700770914433835433839605249053748702105807149213211229999114551589298205618822226783311164935830961028496512860250049512672675016170213672965033514490859044613129191500112683000123855302942998767386304083770272981002098876056685561421474247711589500548384317311928902396719768483833120636581402739959939919442903300369563900126122460664045190324708592869264591280468597510465385416256091291885919952830159970721221713631544514413850896681524956280296162267299618214291492344550112643547014027966249378189526673227313803008215151655082297695574492434915383647895911394900651057337363775204413539303868409861496716432056759509587185207476957455411363383722329715712814750114104586289302052733275492915318584981541043702127873288800953400173636053350380222328634601127147067780091686819309604061861623205524195158616685318611822775818592377923866338097895972713204088334345466711619463961403215169024794125782230582281470392243709378406554861397357390896711640471425163689176402942400240902332940662647515676239514403080613564573994793752134180180788027930095297865818041592184150543377169616715105672385071168398927290678799907856240420511825872987081358799129149485667390561209786697879256343697707701372483513914031522587221336636553757878691687982775232609822318401814508902741939781050530919927532029349758545513879131130557375534372908261520894555281156955025387870728850354310562384995743728013508249746174927207868434552990212272856017755950552519522499022985086623670046820437158635685590416952626484684792654529762276190633036904273500753886113554153238109546671230578438532884099319122479906664727366972449035494379568304179960805621812205405371317248822946023606609571799986566146464104495040988746229720771375651121277264724257813717045041518831685055546465934368279878617262728355584303796873460976124606174366242964377067571163836399081846091310957372348948819858622329049898790565549757821255348820111839266429093234321468890593184308789410949326686510364763403563148881118872856652011635593019480020927616520024475050071901073867045633020943074111893107515177487413717340085807899099082787608292839798905302943724023225299056724182776989301904834372886678234227653022517546819051042665012473061341816275335317652217836097809398163545025250399221224277781590488414515107546085900623615453082426595143390523098860326831445783173789040973750448868084921710959550161540055851255408761440549202412802586263210444363639034874570032996935807801010278747347556202111037826139724655685175468562608595348220509746875408281037787513011915721589925099995138810302487854209274339598915933819160683467641034554111415084182971882228438025655928486016095678672997827182627314560964639821824518318164567986881928196920458106420466351444434333318554809155532378269813546029568829353730314487022837420866579346613008963742826092462340816732842471495807344651429695911592266071726720473416477382327275516882189999908445148217778006990801173734685210843885335392417881571056871093136569105036224637424927104685528558943743580381202554315027955195369578191346876400046532424426944645859981042944544777160993521017922838077860992747258762098456807454837646452474672121593575266684575024316525904957999375882016427120962728303173828966468845054419684785226004588604300013937082684676095485977377210963007410173828700188148088427244799429127912514898738362845949264646763785331744265459295549608396904958165011367906420498525768404790789874652628340560819996562387137764861401458218640306561186262376869813345581972084102481992749966802910125264949744995040541750021691701516684941929657666118681790027006086516452086406236995673018945205310326084685255549903013146498353577656670426016908966533968414657376639003815980213143542935432137284162646762329303070202265651607619825469842574270556095639122824850074769419672888397953949384698278762856491649849309139780617676029370089630615286333575072759544967592988188748667899599787648076293341583591066298011704922704203429904158683476914725192207542280634726205885553716482805686368500402913661193407343597314738852755159272032171737154010425769368195055263736116385513434523062413145418198708683939909899497280825594418872470257856228401657449339311058047109441023196795651399835964288272356298999478605544600688890461945656215683752533488180705124250996580414213722002704738552976319374259942178679693507359065772882590721143080845023872451786331689159450099404355321193199566799476844603950041886353382451215250495724818325521946953018638804739564273050437857352758865595597556777581926883945013585066716531950753501444025308545599657279924172678095531382761621791725220253126002716359305925430170498984067910760761756551483048760442564681273520922642908540342595044591683280877401024357137533338690385338900375836075791030576939980076938899557108695815136591957622630398126553529939485019539089195002973258940053729599635918444137711026822366053140381548441774120487620272441489259375294012990570512693465422795833277387363676947947245690512938921842224999778861605275755096299657956409891625190810140658785841570965251448199900721404947220210653379846401971286557874107189993643909308297756706807752507513445741318185869428947226214522449390680534083928356010075504396192382472183946451618115874312074091618191999393418331935431436331626241931351645094206110799004642600890587069691232421647921375292750581367507736863716773872067363016696833040603699385328586133467176323421808904778628768967880017879455698596687113108637905692323294405806573478397359809146900821640864618541794398470444965783502201568952502697830482100473924282018608213389490980042368930222253765288097725763119123605173933873342676108621170583802852380884903431631044906142386892458586237361769517491717258960127598423187895065265671535882344152121969754373917578665112231020681602794796464318363712900846292049437191544085137064451713720438916264439514938125512467761430197737872581867688024451410405713076196164959522288430307502439193429614710268526129062037449155928665769715081645401422788466919293275705039616404536332635732409293273642901207828052742317827517650232668568069499681065938058099885430865919213309780639320880122612906660367955264225179257820743489037545109398835389848290154625532628345567549071204059696791238085633336200287206830244571803478050534645532238760015945469487552711668682559722174849046114783288137020652992934244756656786472624777400419541705011054199952892640605052747680609493494777376897025404711093917400796923964152769115840690164501514366989929105612024869378257350633872685614167724891821247043365556787403000875864575163322366927216995510739762066634340793045572389719712022404248432896182761898246206337212806762161480019747140061563311524817039854583798152450972770298625883484211606553640895977529136949771446417738086743836812577299933085500146471042795437665387131965242904570466596869620711016365120471710366649895277975802893911277871834292883868161044159708620040062240159856193841946472041308829564795472766265495203186433604542824180426358000304949827597230769813652324072435189514443972799229132399582649839920342125099065763818888602857124188871137786866957844257211275198184500589097463426419244282701913593053786922934193889938583178242850859495570818640594928621085092071165793263076924736236005107449285738538578294469157079991576086740396875836915550730787905472365756936563499236460824259953233522213876184260139047937609222214970689842658373430554006715294887002493395625663744881578659900940421106779828908644048326408093651074464050956573467903787924063025415582655754385543370147574571738031173545183888702672052573268989198558798337687162040321142374102418318622904950980918247000087865778091731398675193252739794214658831029177839651436978115440520617575206554534753725148871775823807334743791507274609989989213016441358797568322600210848506066633956333755441657245702776325649359129376144227923653362889840779046111805778140533530239060991021265831596180979494792625062858868160539939966524281407421835655232480788597633466353290153405265352392961508442798829981491647468823498540342888933744395874581169491965192962470004127406133507789382004180385303521876035761034564710208466275817808506641524832931837309315249535093118724337539337527728429095960779181170431197508975834700178843534894802332359942780384417624166807775886252035897139325199393458786473030626407464235191622159867445223309198236500241022524399141358248351503856928143728763306420859312358453810786281387732471008264269807801958509487996647303080917546015820531426441213983466844106236903203708439512569959531472001766631957513286970219107024171235940531654682247727565377852311311070878933070214151052605927242625837070919503059257570704023082616045853687580541340620083332492550826345405662033341352738242144754523569394493451079516144023669766825205756560633549644686342496442007655851314132094421267340948794509493683105437732281820239855024939425834486816412920729814863935740208557278236803846573058433868041283016534888865057947628474403980227822618409075048316839524284199789312158639618063220742562556021767698471046308903782337569327914576511593693135523153393042461585571445574363197853288689972715818834728821824455536885011993187125560197405664811373753328627182022874538992493999196830477421692474129320183040931155325038442016757851817094673150161583656662796968916928507857073927407647362560172158798888328268631635277454910678819336736140268056920737656535024981049269063375161007541998117781038654288033581772005777481881204346978509247786838102925099235633893893844591410850298067538796701671540656514092843594314296270330934314973045016711869701278356895135258600931306278285644543534949987825847809540405048912351426767229196549652996066987606120821692810978770956443463000035373382163647236832523617427168436091354390171464614075005526126843254872776845443691836997707848968360637380833902327635567800098572400489435267439452271909422924570865752785643497909238909055398916413045178102503765530025098845207931612800086455349535163560975422289353091314662102525465181975609581069441012782936939923430210355234921917896579813563331551958572442508263622985823825325599366957200417237136237019744649202246817773818594557900462804632088957405515005020511527663278491273072914176493293152850049982095540374240014111938552635728393396807316556128615070661274535755435617943402054201174241467852184721022827221023545151898111145386544819996682062663015432724629944040766308643136930677127608399073700174178705244625384706060663281020236264607681408335711746556566943177935743011846086932682457058926187725577128221173552413267458562987958962046391214950790933204357249524644344343025012563811581864501958581316694296654910383657368991705026255826681296935241780254276071993836166629982981912631720966777887522460371210714218638691457950774473627499777996445780694332599792594235056951155432788967015182109637717060473745535451337200611030924350323573740774425801802230878086992685576959989645228916403254960666942565969265966836789077522899025671303934966366278391765003625281233595235965239900136342929990419659221521066003476278892654139716704998730657265365932750564840977310659515216011867459196415118186047119374072776391948054924800505122723018625941953768104362915036162591176929603132598076657976050381053626537706641168762885205110865613382945283931434418722238749693979810799117392137862319549027036954524838892298330752112727505531981975160475608491193321033319278104889972632460634350529265389161571177453238367651051964341481201261535382659440173923009922787044406180043559161214933784953211609864159991634819954602569347501853887694772334561777058295751247362875601822604548713010436697027093340790797352671524935124967805206640233227095376751467365880946663156074814228392118565430965016052089559930919039348291671078416279226614466053167140602510837884258901476494575776479722651743487276823549099802154607889574493674319266270628184086151994164906447431722733559312613035330484940854172681571365679045624012649011667868689231445452255376140971151937499775683420571377551278820951538127044446803815088289924759543552443004933554517802790537664581158990795385764526239104632558021683915730426004367842663188801901382190929206766631304717810844803026243793444399069652422642355987206331871661893495230990470169308184469476194229536442209806973554958856695853398484080983067812839732522563544659388806119865046931461284923234485832895354924073226150229896293132257986213704683709959544267719589852211785382846806851527492255543552884559462528641716492257500421990133904265850338052969672474406731334740337815579220407145817692217556923326515398049130611687472709689033437413039894798617333291211050347985871968427653562950552054348864678091558470930270800030678479286705315716459301487419124658918657671406531935777596714800604518578278908073154388102826393762359627476404824593452137425885938563627047058898023113577239349797086130774029965732146661687109841768853218746907088274112951133357546205961077955934198147343506051638207683231410757911730969078199044261073846467176757708413633330365046785944664353470660535862853549260202984873491760026648414930610634789419571649954711158265689081981045747481265174853797892329652884733613145039262589357005891618319306763815344397981867335392733049952926797130169165047533237517339764655884199155361580570533425407083383175575597357901930820133765106244249416001087484119007396816786716286006510035712724553951402031172810340604482155962684554288303787889345214166013345437041181467706293681773022973672363743455567512900584183328211478916145986807013926072074741428239544695089178975891413680359187454422376682646402575171048219795743498794666215147542704455234156626685646822813466551573224069183812238017550601650793169516803432563243989431793677274978430430745264468617436980904840814675988432497016106909720777325896111449699933092110430074317554955335099911105798514910287781305112475889139221489858792136286267465721285635329841071320361940296803879272163649169035834757018998666117990952489760340267341595064396926531655153167785756955235968155562485836422354619312955520028711156001515401719815128733760083457885106373298720484316894256117808618882985578739096412965779376074156663810311648659859800479139907246183909779608198528050578739200191682686509131106334553238428522279409614706409283018907442284735219113865221533877313748190294708701796205511141196973961145821990904697533007080834085707298745861829077582431431140947190824869296781630678641587609150010719574800710126889108700274731734790833993990297597682507965300356638403641208612303904542361960708741635049517661149715470836991648104195419263866289033033733069505282649398427706030980456176604728911038880392498514989002771492905512659890747443824203934223322453179715152515562726293827212778183551427755569959444730020991884515776683724727613086194068152591306883747123315917843105332123995569349530162211763051163503409314776054623196089678248158728439507141818465984616167664245141505116347455530730900697094915837260332653148871758243613239515118501931732019393353570793035536657382028808205292823576535103421567156077915503519265990700041760590776649397455584576372436142113610131202057640327006156498768508880743332531265631383983861500002343054283623160675739318064839705230444522204448440685136826986153515867485268278505723891319175443175196309969610716269604830589991489227173095881170481374056703314853798355784161922567259265369437288454173445487033409389886406417936775426010381158692590808883198517555214478994113473595268816968812478502758496246141783963302656415749988244178749609666975202380384247916807079563162657201365383981311475366443198018117727732761020117737467396099846464647360079120767461113983690872872702944273634110513502847767153648549142464583635088222489745524505933685106322555373402965543854525839543168779508456557537512856302572765225605716581906202162160990596890417959717197690925595330343930245639024223887991339070367561699758123454752428967881905304088561716641149625000209584225165928786928139260033620345808892698165204232465201790126442683823297306716847944100635291622407874235898632762623457089842763679609396153803202102713107464352741335458139098479015387472169867783619429165215005710942976962941282808555338068993209916188786685344399561319954586512898752244102984567500153741083470809538956149395497524990057389186100027689756867302180462878686747746976524380980810611108700790692849247522594021974169275548731393839595037168090698529911412259477923771592829087091526837675372078430780828280423005931415629137462802088512442049767072621502432499580284109835293148795510559871853716488448689070061469632877154471171863875704933394350849226219678598354765121143508776201331173862047569431156268874235002919901191054017694284279917782574278564556633981447435543510240967187818447633314921642623226537237498317571867687888008561677022516738238522323749922252021055389197162448251841810953846504291477850911428335584483285836703641209592308171311865840896793841209805081846119517291983034519122059971281660362402822993149902797313747763216834681976837922964302231481978761655829266763014423014289632810851702796288097817247380171143259243860592518152345110242956633460528768849821691146698951149654911013696466172438184966789880311296351806483114757709844885415654291807851454913490745850330490252994265485199986640352549571194147532503475252542794215118264324047804729199846218259950685478732710398264406489431570082561161234645102105098743430987373348002392732659170361935734665219730331219292581922740061680585277047451598059899553071168927589311339925292256079082744235013422087581266053405515362831502974055791198577892917287760941822452007547137359634995588756840716574935811277666525528482428185806797358203578190034660315390848000538513816850482154866585072586775583593391199507001096022280733358499741516166571992242385185848249895034869168221729652327854831886542654693816893130935955844487558862101928039430110517612776939841790910560257838198802005522552155788847988451645592984317981592386168928882691714838444069282269064640171219180441469451290774412720231709937557336495560599523653656275580049415894683254328913377222224017331264519726434289347695473278069014135550298997277351806938704459690856949747621943551778541212796058893477561055224303845882619355750732398192539951364593228272106027355342647291291066244423683635007206524455313080084863745685396852702968091842604211688008801203373001810377362444604745402488657330416486402803827664485778337490741728046817728129450580495509717954447636972600647893133792021267518607699074399802467624964696098145578523162792053224941945906125213848653321247743586476790601764810049180508280864543267474324044719634115344953181568530217209720851630995077505201543218547820882870467980436799310194481741992766952107417171384368622710203227210821939741181258865867219842434761300846218025138587796551333048863204362803704607792146172779320148648351561905064815089120040643371838002199270457374234749765554599759318306291855105780818853302914630454583292949698931016358769059522022156051247953408156277167212389539973694905296154412326176836250073886375302515900559071836103062124928541906417285289716847552779082101473034317258326541166247245418620303651754015787601831326191804226422620861508984261674095146046091834757677592121090466581208262563654268544313697064455511335559945860328397000845206653264849032699453208514842109631872469213643860318402384112741021812527511672590341130584722147037213939611441203658119135971583761540367731102224601370319870685115889188939548832722412395221077913806366842486144813024121436118653711872722002698943311885555543991062423615869014117145853255387144191331950244353817722468751642815342067917183405147466225701918937151737127479738811902355836523640732525046081300855397392011426453127367496341666122622229636628912490891913300758534434480549283281878933471955029291860934936776798875965609470548349724918951724564923557072498474151595285680313791851540028783518167260801306860694612114026991816084299030414132402093761255455578088700029042291293397077228019747096658274748581393824750382950969743719757209803831438697280948413537651356750810940337053188851955588616747317836454027162891541201908835688297624007886854707690546888895621071581368118015735374878089722488796623683174256849486667708013244578720628055786286152840081696576566962911900711028815371924073550508331801801853890001601722829678087134651384624640095617487251106410033754225807053238385699783556361176719796756349170531647363734855143106919446514754041038405856604611668908650881527126598945940793187705109161357500140730954641270095372266998277338551597424019523002172346614353537315473650999033709778798237562320901685298523909901733334210531656183777187657988291529458392448760011496632574598817823054674186813922074263191941668444450542287884504145650191186145078782772438225691119213682544979616730706349233702458349065437017277416858046928668554991610693261050474803128851733484052089274094389207667844669355584317231875492555604717783793426940078298772234488147027557666775023610183555669066930150801531727321189002125965093703885207385684923625833017384450531915709809099990419982672654613772903274101335230746334926359443670543045140113922135283108488537010137022017016881180138433601035414848402355448536086094549797230971722152075654169584920514530181531667793205663110795647862269462346566354013492249134114647235114137121593523805032598916574099062616787670458672997859162591107927919892767222111887444904867732557769916948406741003449878578623229307480819220062152263070341222121984107158738436874069033837805439183273151792179688552964314812091226294420205293426720695270789862182810517830459860347455690367574085692916595014823679803458469181714582809188625883250118701666498045140074424778218674560503244206797899199754674116869008995417582633708063926833309609675501785861656030187434595598622961279883874262076881330889071746276053815600300531189248116843363856304116077912459123857868472228217718987462702597711761926734776982524144225747367176853432534420157381981842853606688900636386715894179156380802200984315075742962319079694921020484850154874214718664648157919803474753185354579113165981551808470821719468993397846324784496155068641635716096388889316219328270434561134908392742349510615118086941134012549507649784370256697427502998653779979897178591860088745500833904759133124763697201281636199707203833117049110588996579099063616812804307705571597394562417174016594015953443804326468633575528741403136142360038739777883146732235370113867248077526826132334238579677966944998971187207272403706287887229353806986234897537659023282688502714951144657648866443912767484863654946557981344830291383245408778077719196811099920986288159836377582230408970159149001062276677875213793318594932615584381825624198174344764536939967873693379212596255446271039344815794798282177700715259625838607269402215611896838832489063214564808055652036701020280668393781914128703288067502052350059855184654711702078163780392409948141547321872967309875253374639890540794080336341902886161049368851124008973453434599704273732005252709173060693019199745268879789943968384953656097115601609907700585417974869734790242334901610715475052734019475891642778996350552662584590801989685012721712258150953667730466196063388228178331087554425556250836889066530752731073798147930377571281817601601912312517757783851280361395508273138760091088596057040346795722604427924522349680948194770047141402028285879573938886158519096566225312741210403893484928839067786813878147369173800761864560106618688621990162499773864293115754145786405084807423616728201269434979111555222260284737004218679567204118478082305726099640177698347248881703361818823820669197228409468679362853185160897714721905973204839826806280343200626234580823262305090077356852200099133285554738037142088946150065503559934828156732170547349270751296234097670982837214059541978737249761325454626518206389784633653526157652690338936190942585453313799081076587519881957944232921438527912256624561364974911243482111489719357959229140679046168791291229730293299173339926471530244098315700086660294443737784346533401304750637253023616589914089678943449786475308112074862437889183910740423795919965504443776346573834704764306343803961664720759578836686115517209892873043687953391635720094002031693369420018703943254700987014000959014822768906059042040431724889319085777497218364801561492809663430052608644157239457713225021908316145552413450269269090419979907806887275170340837574865679739469041896067496829667903746232681925720569151620246941123900845119223382082061849777338652983932306233806510606479139886946004321924639386762649279778281906483270297272111917725881428239593718747782485157193195438524462517801519279068986964996138915498125454348487516901707141717247268285852151478013913882833111738398821845728284608575492855048300169617063881983561363811698699369751813089510559343277082920642913071005888066436876982675173197860812282318625034429029909092449220119437951473775395848857260353892982934605779530429477754828238125238338327881162194220628368427951804053525652651428049132166981498742499130883333634208546687630311157203742879907639145906853050101095457272232471886894079503754250648524908033933726076870097276798340463875245050397018268059934677117503202385665501165833983761870870550452250433791765823447448260182817686280492219810199158365540454952120611067909240001472331247803783903461976243901166882003172859781085396348190778864221940909344309769848007201817733695431956952255786572974974427278845831248370206894073849627641354221369892148934164465328847757036853336197402142803965131661593654381132378491699735355091224379044834986366954140387614994059998276263117356718347992746679759138284427816225409062648195720234694075372449505106225631858710955251148786045031696682143437182763553611339452330263208860578283475703741382885581409168515738150841758048099175291743868580083801116390808134059444236108442780692303380255695876852108056435791672620530984911979263305721882034652879767964076445939865139051102334227925419552176115664569700950517488714300681212196065886174210680965023195187086895555391293034547271585838619174912379482287401160340335459630558404641895978935484897748764531313670889800974339742489197371991382701390918373541838767395396209888587431224009656647294806079097772072027992005806604645296869081594886574559297294245633474820067941008758844598768331765263648718257522263109148043279343386888756207569977640722285294491397321469268697735887510586099759514416591760220823940967282264056391484697287756816900161670407349962609976272977443694288146027128048125746014582512506985118163120387683035578408609115829063271756740544169854397761799944815622460787263665414431227685894066910868478529964705988465762955317358301275808367170897997421424127330499540184258339762880475022505359783193095219313421452107512382461227428244194537365179800812156579271273624299529539741616672878585088985083247981533833335512303588786607641678719932236719483938440276287644006292025302073399224453048699632475882626388944244340453160000120986501619637435979951934948240884759139093423955564650830495570068425523698181094485789361937399161572876821524034783462236618523381199759872620226004130834639093461597622675682531622765402253350463417982100702802270834747593033755051805411880034488775926352204799578241752510192060917840858656437695424169245954076244472493010126922255381274795922253820553899821015290655394842937940375260145320808291869026763748598274253492512972109959052021742106993630487833136913166389415953280521162116646950051409296879331279928821920279898889721649873213211853181791791014219993899747274389766967390803184361959826212520394422544722510474507949166182982924342143129688822784079794797440907058434099942794661509458656883204292759097839016315870089738343771651288963198458798564318851470371145068061775846141552843746160406701136310116608266699007740689167068051062160479669244182881714633991389629418558906738676506615947422485673187209353060326344951661895710085880311000133936884909313526556309274610112669682319872781406920874851905937581989465073556567944322093732287971233306559299260884192847022364396973850395627056006593559509493317400503892145267006818903665140340249735951076798504989464071503175265192055515720239331503945281617993547084990165436630008245355145995079247576092442079570321536855431193303337758854285380171476237229800377186422594874838192114260729937861545151718749178904393178960708549349158266288945912257742083810785610154634392933919406644828101344015783694578863960664596581935023510546233656288813095853649088154153415222624651402345965877944432458319957685445763424664074062229888564094211111998452787536132023246359407281050732621550817646047712211987337257926096798499585821800315003752277205917704737361663591255159972861001907110183963643258593703863010402096481028728254005455220946831967657052286471921962733339608715191118358704662539377558296813267369506765989395446499968963603216429853951188435385782647867378565153537401881043348886356278840211793944676715201390188271350281932951473365823844800206741023245792563599745867439283836250382154360435403824173831564243230061748266180739293287427569103943529353053818258182045194566163605836155547629831671850592223937389735740366575742859498125956141393097679414660856080495958975204205706234771728179812476738477768622552068193052088322902235224381883075665317875172690189925798532444237415616633785114996089997522450321800675241487728895874512648220757665812780878123829910788785040858453152454452642115442648706109698495631678145935155555262372697321509999376896716575559782842304153807417989499267136302175885860120382415703490426848968026705096050978634349683162896298593260961733055692958940840778473848639108437301538332854045602642546573342538610625043547068496104853228798559339670111725368452133063709773112303202622793037826285631130347209466567204374410028871193978406422918794562765913332731157401957303293344246083285341408645418415503161999667748546721459185260577373303319473788187712292401983879386961580473791392615849144424026234334356075795013581347615422342999960273467572627228871564667204574844733869742662910182734781635428301267560354993771824116708265007008275283169511359780846745815851388316129865843474313810915407811498244315102705719939717446169847388952208247677499982153426055499902335295447334521590265142963395289850105357510825617802828208011924162803746718689686053478317102738082300575227457925199187287925251029809890506900297456224995928615348294412225132774206664784500937999346167462934581839490826006860970291556073045581127131889135801994758882583995058009027797214898166757246603637849623642272433959294144167677532958030519983718773761927402409546130221000601070431212040391686274571935861124444426768883995956680287188662623154178772929888716837795555639489696212406788546990820566663759088940664849363753338362072633407278983913403385795289169022709636689984525136712128947598082765167843988863441466157130497497490343443676076327409848456508286553584439923991327975412641661477735181557969344376102383051457224884141719462897018473483379481183000639975589030482956861159565761687350500272563487025905662331524603755573677249231989602914423151919599596790536273948239801501219166619340579939302304408724132068805405361381668041060053041487581972367166617976247431721674011191100051021113950709577615279494778766661758910268121251981573190071347937479676701929634705899849865938815242204845842127057888604053170014371904294995788981778762086888120734961351115097719044537297587795340521022946000128320295173429935981441768010972828819433094333480005678743695656267669274766761051797818933137450760129232756016925284639161923312876366313849801571448471310276826748983389530617311896279974779290470742881051901647462386787299840366431834547184625262230811177939118276383809195006906927842164326180500731544246333728089624634659912162867454304975538400553752835944112759140880572166238045945368879830477559542067473088480815512527306549607641459967432305354271600556414470244706056859989370188022764176870115259580175252811066873548528309460058797826116658536381913033870153923128288725883927166750937767600422279976659399528100011412593851545888144125525235321147834901311158735685283809107225295080227205253143024512712986255083499865422457926817322141483445938289469276351097277903570660674872492532451812571750074727179150670105100949854940736062579595484956511567551847573330986075945980903440262701435093598992211624658113263536316907211386294523389977077573571001153804082769240035046654681039068959091981186354466249819763449838778725826301716515762363754507606387816264515197720983402739808942802069388466544137301065465028242648857292979526035741913229464564219624560672613847008139665481144746205058891485084867046975385055594659954227676012677223280937616392231625749513635582990044676852217957444311352696661993299176763631981437052714727948444135329662841092949078094225850823940686071787275366260836497863648864643023827152360303615483830029462736022720129644757410434444292707385803616396504666737971638197182069941975393707076650765250559119028751813951407366284240211417949972927132720029428739915082030038259445556116243486097749040224618698287537082179600726040774766729688352214762998836874981174672662839903627377520524352285381455376734183384014090732329822883660570740164030822438373011626587464974414119406717499548009892472917865893857464450693900379025126071792672677077268547980035703297123401743969255916458601800722643165082978678902324535688959660679759276068777395944344807262917772021513161051330508896431909594616215050710757922649395924368795169401938317574348701273233769128798680316129477222424160407505078235956619243549573055557516357614294896665223262683504810360048742237334366878102529042273671213904452112527237228920399812684372392521723498863124893747623822073193653680049729845113155557795005643980254837302835771558662512820575939232721343179181488883847390459833659006040183849387412133864810026658996945374906986424273825638828542800989767032926931772765321216095676578519262929894303272657021825116595935499609457491508265643641949374949072225553355407734992036992329568848675948590446928049320002948437192650584837798430924721205013598226229527951285870079512934042698958264683093235261217566960177619087831116232671528303397435369598214514785879497431989468748736416793352529190198210419648872281541154991215578359844997485382620911632265843666727038089308534219798611360727283923671083425252344268608007840585157111239839092483663488321301758087875055130426157397056892933275068706098876611789423088011614477836683172887001082507147076483888565005122238314226256340175054110283005956934193830200381186137098034264831491020398661098526544826460194176008745875347917421161213922389718655755592467470829072340213831508822559176245849331128164067395046921613943165850882437417452557201699434529693374148100123607909687426357433515826889762893823736964207729490110870824529716598808971959676724000542137574089462604860133906197223888578155540877634841687626225604252250324804148891603854052034597898173727422180386488483383636286680893045561343974825758492529293360437337643866727125377502979785335442162618682944089297290711514325330821300761234866029004303540939120468429979122158713481105570344295675180007074017425107873677198891176191657756962317048826195093042813457536229252961963782581906346311737974952625478258042307135815632187294749254996398647959120561303781302658514942493042207550615860868416813971412798595153203334246091601669315920920036605879277451852607618632109650283938437348681618965614771705655635590783120685964922712467478518772334066382428884392184568795472084078115154223265891172979515119168684550134952140208664249975035617022772541605154282356448358487555059001933657744481714814991045569056500013808902786289245725102320471179077509054283228221959480003585404572681989300589372511472569717201719177298808542438116757412990855553884958421733843615938354340105983121909035325672369257400913400382905140957660349649169578630593334798636924984059266793460570670024647181068657756900027855672505944259493550506309768468044171907768436907112481511172238795447138039810217014373458660065899241126704115134147602678747914347821323230255636626520585333283082787334313325869833254658465889257568888616031931333799662929362436288460694437139380847034881988070236666930822974448622998628915082193953506489437553295614164629607521678152221619092900207061714828514634207362710934488998376120755972493337809678580292868617765497113555718506757911300061990980170131755188130582920786465160075491364711891448296736215679416994990774112192068214801884953174411250547134107783913712527362648385346011582330469426522505772530854858434809288295494427231976196009760921352207489894910942276536519384733858446004675991143538409551416593160351817152648576550781601049028236551732081243010831555026381672714896137016589368887274445834823327278936663335404503866210202601057438157045364708792819957036264528438687885181729542305133019126613505880142812886285984903185796219898102255936704599590147109887500507762003114336742758258931167310249714842523131522935937007465569457844267702597752395621609222730722669857942117117793337309085781436540556386393066811860162004594149376610908793599214595247335427659903851937289740790190834260291278128705068147573591495090030167097501886507757929362058358201667124252163108218939833712566466215512021792972444846277657069028476819023705430374787004045741020023417374622432413606207535420850344210032898141091908930234333621107580334943072695828233589228068576032319060307411846815534475974194003126348492699507145626968185265044243281672508640862837854770138004930432918072246056892761133478449118413095390549655982732756602128045573049320640485104187923367860983821262401615216599236058972363630083477850692783237448024428499431393568799975557209837690110198281074910184756815434474682333018489417143632871703906763431272521742751201712999793382972223171623598925956160488748755437149889249870619160384091560192710309849542830259200331683668402983759614865456158297515481291439042825738839139709808260515111911993907156235288214097755603490688209323735725039511527259209551530399749083860958113164100351266202877507940531048219292024049699753586485095081591813272458991596850170114978802480607926218068289786123200486147788792064120617323575310590696535923545847355378285450109674978747792531290560743381784796360626025233761083008551463243231755456711480299590198236632598878268796575005858409909925795944066423591560545295535608514590812334416766106761970946148853808306327228841803152407925903803001200114971167999386777157567331012776337437737624226264279931449919271652029550254775086639920489373960978818103699939181924897303947365623990049669664477723227896871812046613660883590536819970937642817238921763302451439362847866309981268035054449781256223056616644300391378365996913542523433404741861217996195337368647089292684731456107648963778121688330883302327925780039274329259854841997044365723400196097932831873765247417560446065064548439260268142562906431074633752850545800135092733127541778817057880381895017495694504785029196509027675008688391894772224419255333365099874699433108294752430606559987788870957770449612039408865764978666489957336657743008792864291030102705598275951393097925010690848288917153399311443735568361463035207538039618948552290856878508742336793524963263589765359407169073731003940485928603490467598922445869232055384084092648483315560107993790841873659523954579944537451179713163884163181807466323077211802968703156005410653486354467384311441297364402042786006002119929446226509650257036111384440306798006799462670518866243180252409407349491785998586778224226091279645723791721259167840405486897010881816669902085337768261014624744483357520343631301401124068794138789505506517794650858630812443685658076934616705692445759544370477030052175481234135223517302789484633476627433604976430862798172588241187475961074858986195366367900010266402560682395842204128391471632028461274936540114774732344468401753068590063490027587170962397999593243586344593540529657790235417230618427654476699326698890711079605859227829100065482459570184053726711700552894575511268786212120408429585100571627756794059939190958564024843481692707599830778318722761773783222439215440144102764094124148869445553999216722655413721129201903001866563035977230727233368936250132360206091516437626101167359030372601513603765492024748001007886246781060665203530932208133137832163395654856255250729479928030689270528267873849243441975527011918152827404574286902908747116839631814555501643565180710771239131970994434715550005201070886865170796372337481954882581008650842985452651353871484303397658638074674367523679334445481067244278330127659265239430754642520102928649669854043715060386382433569780324477011398720347419091211854377038746309839657016135799209203411897972202654836777453411526701852981628984406094583632875285472041123521178341572733228324644531923357735061504790945054542306275601682477097434119614438656061193225496154453081958001299361967535417028522148156426324787966343899137686190694402740715243919771345519820354879881866264571920743964156465496225921492352018227545496787704074085229134689285391155928838003980032821821508595743679612787466267669083275963320687470387931019452018841998953051760081652774474978954953708921978571101635927988608356965225832026146330063685548295913903623377538801058003934295406094233037674802904985075826127179330557269782530632370623184684475256958531413869084485142696263594299320917963426218758802354941917139863815019047891420461339649280887976344872608165528776918735918841743850885081245543973599705958262740853157352665100499276315441558368526338020818226085795435129214427423378944667575186007673306064948441694546153747417624556443328941229781532679681283395454666047300847933088745958588851911042774369358978954447820452309882627767558255341084623490182838259591532652783876224013819415874238575415313362240882996732010679612888019697925252908407511235658734234732577323486492824162520212490087208865240346961693401362936466931125484717687954996615031530009874497473939270810574332050747968288447448335400384409420101137584327845845963508451445539258724449015388142335052114711954603957685690169931408871793652039826600297654618837440048927079297234030329871272253468171653014676790631093616979064519812891775247935643293813717198145309062815079438151129915989851709761149323480742934818918485152566828457346695246315027048223110238376067622202982007790096721757877659559841808184970964917144741809467981450788542088505196978704518532487556639205085528169649863090719329788080786632683093466965921530292299949973549650241939393816340507203188146789963712485869869054657663449254368214348854174726085718615477548214717565536901405658419327734483797534573939379107387494607139727879133072887013602682015413377181610446551797167486673411425023363282557516701268228377584779352776784637080175864364943193594084131034625583916481915875312988501256222059414581450568494982859177198897207323606055583012125135727138995481536523931173674508973691225397671625281023642053969427220378438843149569228631782829761468500094554796383997257816604766876977800366931188077980692046674338645583059213805229037101148865176641690767692337401610871230438271131834711286510883206103772528104429717022056869426916703752392129444096943746289402837329760691691616975255139629702927288498066534343973475835233712078027836649243082826258385432928150291643136205476285301511463806737624829198639378771289116585040149423791764832198947843591396766967964702975580098409555021824641611220193582079825377450827919799320836828411116127906714637845085433137328923046338110281528163534817660411295014785250908760922555000291056761569823310338425498719943422340525506789470592875891919635038404594645493955104164747393629688030963411521283390170615459954516170377615332530559312535690297806319950225574876154602798935428850202870415779433499368931843810483935995293410460842691732550234853236278701645118377355579750430417837309577647564629355441062299469982161766386349963416074840222280900700073604000431794816203196602960436695020764826591301203453659969718883798078169818332026108406136786193748760183162393011807852660855308445018768016974342515440626363897039925393970546434584914547719459006100990925028158192386524837236695449498346402442578896251844811368734077550030954939142152858461737616814361700169915440811596130769523519927543254969497067818799495284082225978117082711312117782830828136010709474807541063047715350584990933889501561272994269542696837617611139708128264082736682149843607764883979135121322763559396706078076857169128967187112381752860151315275891942680491601827694315710870118561478399795259744148450026119855843047050633298570779512400711704756631250132723792526297458849323281376538633150387134704450169765170282824398365131681001253911458886277729202771339596192359870452622765417682133134635694729556179748973731162865092704217137886008017137358940366640101232846349586115542268017359608590313274219685974292973327617127552518886901195850334079767097883355139251692829651738672821356632637853223535902387040312002560175400246458967501262846406399386487766124563433176257305259520210480900815454654543951573486949111613775426956813355490140700049687482368212348698631240856718339210619554375060524825448065645876935565103410918329700205333898273762537029973688489477254865374277471594251996056377770827321740296861842819148090387789056284533631524573601304049013519804800581981111433392464422823055710420886685931409427086468784382018431483943874475083209280768756095017701213950830517567197826985949511302133205741483009214933412073392889629473291755306969521311878764022680909193211638881972425179193598920382015246611151550995244508679811422794014573569835270522409296385045981653394693337675328233719881775452345132449778195284896061427108402490446952054629238439599574573295596465262768579973913782219572500636999598697841425249651154030707995716887374107761619886798588555204270035684578610931862801083401026332137092928927225534788016903894873419139456096545664335282051344617985712780204987801364301575646042927477280844530408935761131068917022616219852867032417281134803904230953358981763238570597060055361255810045377196754686067811732982362424493524452569744751218112395401059156437551392330126081815381984652244421796863539758942972658153105444566871073018839582930967163230051538245169523035211359296059874870407091314922105784606315093782116791802330333988865887268164872838242838251192597654709716200670321890030091819160547556420702825810522710570634302521191944114398268263006339229943909686482842098472199448594074893970431059284243692964455832907347452918669165536855397030458401625593797463460100990987500412094592079741111666231389858048618091401982316582439232753940887964815026450804275692130174959388240636150221896545326791065219541709971316021181799478761311103364053582286381020861488853243314624714941194912322652678261546883283859760175447654019923136518444109462042537789092366824796365743418514875633487067790425092899180830256427420886715784317813133838112777066675964378673163532469675557423859020542487485647819565106379452486769551178440134495494168002127804704001011824245838488851766393396188051924605396257878977847614462834999409936110660142568232870668248991678447768891451928731424893624368514301653381421716282285940359465257431239523403102321714653220721929048984227280569352919042689952187502267948536073117518640690667024911582547465443514243729092095434999976562146838570519018076811959200165000899091311472679906284092316375372281659022298108167157961429480551832761923492677240562648502240791438594558528769800440770802918880223992778803886439698909663195905767822412934011498578713116513632938450987178784581112117944022188612791753360571981420055343026685834273288231578923183975367075996629313006549521951488951010678510627107574937464996009879592637645936139892163016686685061807478360568845507284794675526459256868599460332013973295776887599706677993682414701427363809536259097472358551892045756078800652413943638261895561488541212838443541697232900429630837992910918426084001606017988692282117328037664003704071932747837623927897081287899329774081671281719832094000208746143905274727482512230888352636142936478577107351117492380252144848439527433235292728872044375834061282218818239629318288484369051438982900192928815130567032827462377471181022351457067831610510829853168382867297430319940617861402136306141892564164881170645546861254115997463235250394220072681503075564688333953339894737514128579392692331896640355011911096605661535329982498675259148348446579850995634914997607997960361247479936785441724885692583726244869550013890223168983830047666936326933826907954186573390873463531568601453407146949351594081271806114006794580763852063220463335902555285653358322850777686259752668218677192651158496896101101303989353725055204536105396593854420749335605012145907180253691327131465757366285315293188811554127486349412057595067979011430714987504085741820970017901407078237050878288846900377366668497726475746515979580448899903041130426296216624827339979465784522258121509112790150777053541645358398218134118623553810702648551292721967150401796643831843029930536777372170766117807403583075040345050399076938680128605119161321044812221443176388953072324199646200669940952528027398904655220069509068074944544913359187234334461874232181178803758144547045598556790302867347857523865912777765881501447574542699370584567033147206378846335005347842134290009107258812596281582573980838316272056383525393807394233061470835060705045753426291940328526673157140606965398935378170736042796498721366339687008320694773303277619421892756110642081525219019180300851608107733164897455385769198331556810707914291273389360358251414054177076003357288344009931994148611589712934029854225563763247058204399413468871315034396468660847367905227133394526064634936551431202091912214659531396457123086323138390377957596575757923356553078512261608041032868696532072208119016955741277820518063022799588271837874064856783198194683707383887844561433209395148134991726303033081687685087859835276037759266914194189743202617620977834253509668878000362311359467794254276040657611080478448078743557118002558970731164004451440207601513558512834123787524042300474020126252044491837300635232356261187758607555360242690576631146484099440755852225716777193026697861992365494096502647155139311411000683433091329039074475040234951555008043143376345679958023078803220699205363405263423828463971225839208929080004733990444981370062688198127825253625796450596131596496014697060630024789352849331995574922956572716394543118942760398257937592002820053727774535742462149747130319326673174546421114663139916675989965995442391763129174891005725504207838787920692078666393873530792333795916174621523302035270544747833024028260442101178908171005572046594903423892172144435718910388311474325891141137560139862332345677470683562651032878032754638969767914111026742616488323292731200520405865712643040090230677567148353848840916953655266942619974186308193409870275464013404241060083039467253033055634258933298169448304749935427064477474295981265673530234262807775399851174431357797761675993799899775254775460971643993398000894133744500497671997708315323190130458840004232742733017458943650671700246072241165804008029851210126478286415166705968614375453097772361522860906453423182329869725249202177272825711475493813461097288209826945117922098449388942088863738012996450818275443553725535656743217178535424645724686631757461305917296160765386154108808021995095967551590875838095262406531661755582698974206763300976903080014911700741677164931167804491189529523854476507685900920617131476746587596759442461203203054066052822354307641497388455425606992156822147027799013392725546691724488042173183597940978180546395420758280423416607292904236630904310221138502519213705956594408015359138855538666059119413480154248662890519007683409768885746293208704115132271599436994294832850734771016204930831557114583338039033785749431644106338200895503657571658312913519194157428569527249894895930272658834166775390282110520463129577259906113256696748840643102413569435536140365803748329477586404189246618580513471537873974189900591198595331402836504136487328771195520620880011985123279837892080231981118901570272777864025541165781028609218703532935464193264677343918314619912384949337910128082428709075016006497536651197072335838251512704835206203641313797412390428071275990476857999458402485733360718007454152015757167786938085367193237820027847927890353967275037393853722548860729862330937176328462811811620561092063093956438425742882431144239914854998434220099848856719323948549416006088937321692155085257856030921143795416090153030829585865607222169322167329376646879554167760515797425981919489489583970378590971602238796841436501778758988968113429035806859366378669602718511851750314785128347954528836202218390771148700262627951848703379700538537812001304494756578090913325705576091422977307250785271220021939541564831818896763052079603050276902629171000407996694265437116091135755389645631760788611030179886206542602511850614759254639034892136046802750196143295337338473486184432168170591494349086458610510785747718268899205387795579389887940791430993104872806808601418006005994576534966486430138715540051916975209517851494997712282005923759603408905465154891556750455903126700600896305763496539505422078457292167074290805297384882106492468712689160831324608585585032010949688451606281405190654628992550702020140520936240544682625037444252939857605930778230931925328723120469925728707333258399086571571573306493748255693973568737386376370381720456992280309480958762112920611679290160815859185600933281056596708837058567512011491668206551917401306231922873819158229159954388586665693255451615247996430424660927496667898715129530781290784253483434219095780203216240721387662582620338063466282796185865156014285588609419558517398122245876141124458913445390309122707311476019752314428515630394077050447527421488576927467387185348270863611403980796291492263285654116574802292226276187555137372556786207118298238115824434847361569749425037240859997176733614280881252143406918733469589657695816808037675040939732211126446872653626007549016238845468735764285859438187274072461084330567176436810793300625492716739783923865032749133659690009719489491999395566560478005202611954881031314030153497561829169760413665380890000201114047715649123817229869824560429929861026790339635279504655502561606087760258057879874512029213621701123908853356225048253849923282201593396693623852489759567633435476837576772606567555465784166340930533312099766628222611321190242433800393157695623471977754928475178368556398495423468944123765888427706904945639316951919835173679193214656781211304888916969625454953102581414884369977889707044615253354426225186595988200325712473896274109768707042702225090923345513134202702620727129959900682173547388777922813826030307566895892853599688163067779351161366337312080729676827114637544754794269634162100393643667665072997293847412598631646002082158604250822188600348070345898583353204499484490467363510458985755533057874106025164015500966318140958909280728206181159312517444186119662850334494926973025541423564363597400034597714501387820489008163552084515161143403007073696054341870658618938987715574781288859509778340531723028877634809643532433545517655918240912919297361642684351315992203729755656561198470476521263421696222445607035333014720735799060391660347316176751483009801739485820206948511927780346057683995020044267893653751463101720603049810835029731535505465440399002900975431022800980849992357554624697658672584029676004040905825468597490658563163940290207149521615561019429810646597798733527519306462551374238368853842928285577452067919146978664307009038641351970519007592076349218270013548889396823026029440561021684145203917840238867154626097094760750695117417487928010664960053044369142821874849241096076604941061059233416503495796920198656632550022292963499045706827075279761211485087740331162273320375546229956734271370451215932649860149862465343284449537997850001029959180191103685909146833056931343338720845969018038804951118210801741072522341557725501638850782267157192728906506981472319231357884576142002968765117613598414814033854530971221438076681234642427847145949364183895922563570421021786787878859382320857755068489755610826330483267292102779245908915819013083479582795469671377034600501254617174506964900027594933077602622896295011091124166834989027724970104824200875240196608374084857571862909534757402356066058723265214798148636010296398599677395865857727064574237375840328238149094330637988315082842557147885476015999358136696315108659989257511340686947313217176761409235239476625002186406292677188417200545301911364056270141221527639402540683228373996861011992685810129276706710479316204697183927937685662234458291330943723397801196313438202435118715414598650905064586511924270903854051845946947772138001171780325746833418276983664263423401968948848149067548556627053849175639562293859973877159230258258233727458138599512771737379652157391359566565462375822998568234645274723308596653113248448250280693456372257408994838965963095818496401749139567282579261376614976713873289645785158479406042003895356525197539730036631308973100425388616761729627522095137679465344778449243102017784943325411623966648195311449461821908091788960613411234371349959871512611618861938965547306917765783375855676972541592879901671541020577949465958982356424577966925900051837464244196548531563019034843669750740741775037523438394259527750722105205263160747686795385245639535492469887797369340744115953701204637971839024263630305110344028080025129141683657322757315138543452325025594468987641027833646471481865726150054481724263167633944041864779642559421397889465512274295609937831567517493875786891305893148601783212888504895615607916796687521579296270736716520992977412915798832480095866769265561036478937230161345265011896259329567956112133726403132438922153731751954818032437768036951593107106266238694904635017152307862568726814789697320697812745520835131126531258168254642198289157217796093391900036531110322051713314033516620571800557068658285362252452056165051095481491947747829066392856415721735753764677413518426602569715271574087848275522092359222328637414309245898574411328612733704825442791881725877423556414651086521923992179396081537454290488351245385286711406122591018226414685084059219461250691070631733403041721504069544047890944645628739121360851394993291001959133526927768707087570071659576000451419858391706839056505917362613216556461700486671608883591062352119037061536330593834458336279215658825812810518493430906047503363226533463575920284500637200594191613454216292180941852159888690046778963248851720571284879018158508988030404597419573230037404121058580149612377416855460876009555304172373511387590376870553300925073825489417602554337138274393532041688026601189183874407707179429274442648624114904899461161824060045066504119365834579411056010426745026374556534905359528137567998280612410537501473078163364178479795356111778324980907008341785018876773626653633441637548529448570458999929706211800811376990454853905078569370437506741699094903860270540252022949758272980418853547159448603354647297798361810976608902240038115601378844596316548131723297683910362258802046108701853136918324545296565453351354990138255025455202047756051076106627140542344866883412347698921235486118461782428524954306743476337371964369823405376118923242624121357005551458423593517363878981902774940885048428475120608600601819696810360838046019982960378284643140310112599492748061189306294309884316271959004526602507627921401975181393311690252816394439926461118389538544097792032585698760958736899253888716145529781858627619065935709924593969376173213571553100369630849807810428360268119966370447178584376312853029399149891752133052834645235347782878076749015406075435531760150896786408527661607836000131558733227549937614855867898170594630653931432426113569323928649595798209129105109277130385276217937394260885061148453718326189618233983179211636406636416413867937981641122490667072350588975797401425012412837690939266643793814741560045741155740503872919178827238716982984832992569596204278708526336740331676123028712525344866757364425271422379129683083900413602438303241541984558291884986809370268325952388267042942176627779228002878934195175641614443232981639371000384812660675744083958876535998205052958568637183951700025163082762275170097827909620904176878782287142956669019997903078822898009072760867776617591036462982794555663416775564795357364164557233042061076272821505816029047540156856641659095051842854660716151518903320841967616329641767177003256757904442420897638491363507750898087243881333480738530045119859150793516377651849371919373072035796001743578346668466833947083064193699941410829946909297154643114714129734061226939907719964570590659884039531189597897185459796663268729829295418115848972214502007617944720262607266282358690319979438323320174382621708567026078244362128903976031523958107477793662778392255440662754750673504931254688241221317909351853091372698275526874739355780481369575710110996061236612921010759837045213891670145686572521403066675248761592089182660099542999696983889239080511811242745755610674534457521623893417999290320246563115774694256624739759048424171916484366256383970347293936885306203604176104796711159189356238861668748293340957131043196906881148174428358747784363704081251119528121767888077784115780985593345082598091020772228645486727517255147248508016650926699171637056226518322976773395186335387946212681586266660243638671348360192512376336378626180857424634825037338490573638468309003136646618255817053895733027499678851239938824027245423671711959016450797849309036471369604561887036868874905095164458296986694343849219233012796917948838070114000180114058754205906612444840663635871359508000538052123413526970029548274255064304898451517786935073526732334215062843949651336937736726794202348723471700375386965039555227612356548501213307086379467068840704122861935307933784926091317512142723320827569218219894121470768600403399301737236660976083892622926780219341522051215192530306014049103948920593773546755079605501314181242645341272122702421786733483321488527452298466970532751900405011833881502658531834934772780079493877072393600656160610839887454376054672036837041779608842094281551530627300360232292012481016556275976108979567691740330199673999132133578685953849035029480453272398544720022085303663126586783626949529632064449088403481747140569943694906439992381371268501401705695945429929658009744587216646358390306556671282637119629851186139474852005109757081860588378452428029221233876898451408252931471903408397278513265156117773526822360809336039656795074641545615541437229951585515963308325723926137668600348611195081486420055228058051873010669684739690084436691427126985255435203373953263927262369173612707717235864039973023116528893613038428866323598605965040020768282646386606304768457211625211804388413089694204435604007292648255798541699059490542731228773803026501533142370915963985655593695494138004796207248102230154055330337408395518093475728385033073133888511653554696538901585046269883434249201804655479997407819167256897740260425775448237791958106682194531885201558711668330693204593783765270242139627329476069775284752441196686752540115962294122542240672996425482410821562266162641153224404027951595583687420942051385843375040716983159861338023253063869795854147610246733716451912101262880042966061646249803853174571904607516156767707521558949701270080617505989028801625261541741149842236790907831677916344611542512852022820537186913481225784959217217335702614275179056228793837557817563610629897201268735258377545897262190194351548112838948533321561582301847320793441780997793647704254737724583211483192744774573710691841059013966924223717580936842349005702410113723981526526550244811661223115976459635234325739862217473185671350055772725710394867674254465979625705461591234539446281675032835559875198056470827981982416475470322020707062644681953731921527979030095281046350283309660774868681707896086073831692433989473280973354110080463893710474431015195258531527943580949056038533158023378973665330174015728600885677290923574208371230054882920213125005479706344168483269618158612616374890899426075730396984809513733392926572615555386241971279561255495367765812716095835064842525913298693234785943678174442501269215062356991905023750728772280530057474673423979707583641947459729471932218252284876908235471524561438344266597274863396787655731632711835241265796196065712578788558772271398591089407022182059838389885976390751261838563680830883893493006319361609448417202100628175136345825197472606826867406833236513833389952862273376670277068810712433344421005413322656159451295653232993555764299026935431801227411848089486883668019019918159553230173043320474640642891097761299719293601298827584682924532173186586065936329354147103780708982592688403568624499367280684649185517994648175180039965434963090955662631577889493318763379853307914612488464366146717736062678651128187524213514618360212754956012078250497510020188435476638173698893898880279813520085033710245472601473553106128185510576393695659505950018317791542703246704439794748471864000007703052565367149352850869916166380332764473560270759932704713627962142582449578957408588733397817464694152519150586229949256963888586244829281604267197583919344049946887383693377656758317756503505070523793372843170518250788047325851414666646367381630205736071351958746207967041559622726768500458018556866928388274316941258508196798513064480083332744114378473632697724415654824553826621092148802242155860768743848200621053938340899698767056505104782490571561961507163866730679571818903087310078340826332173964084390458227382698571788774491848640306637501866175752092398076418926722432200386642358023141585709461063873858178827060126001106959083306141512923081075196965623361549474500893721988178631788154096134549773165778339473420223400386142887801883009414160237827508482992547857259179878284161579502395838003103638772933119312184392803869279134956801810853099548010550883951089821216614448840639183158231469156074830603164049853324889505322841385272821658070518897916256007934961419461581131063091821581481087480706540527911113940757908747314804323967426960995607685455499288305731040272284527117972812186516878768159129688607980025023277962385175297919798979209999319088718773037444427925244180466927370325936188169128867448097134138296737651781176392950306699855595746551033007472618741332835985888000954467706801648039285161035260564515605824494152246555605702161474119852541531662012841414151631688534171470460447727695220563075040817353856941903006940898427363734814938454554211982439865661285954695976537976528024111032840764037735099283442898606741985647324425876114406940954070211413853050557698020508626835821438172115975912769002457782987158701518846760745356483958887633696500437486554770657979810657521253972229570000938926845168346644003135924038151813948701142493729735228304850378206662962119975894879335402630492283500199722837777639297191050703606055918298406931609188007706920300895771596267268371150972089094135419961230116193328504847350046158923642917037096964661942320314455851042427792802301449916603309623753780151301013951124297756282421161950071990507925679573296985794885796318965538333995302373278041986833811654828631861030570704857834748719957654336789052733902640656226368651764726791509114672804262278439440316806811092255454707778491103634758505536551283731933777349758600183088611300916768548855089869066970562848107670035473835548861351930115802887752832934499726823199679132400477290971145715877768869847017465824820077648471385612958533980340242949229948607240927557256769907733993901958843740873753421147949200894987871127671992725274783979546106733637267756891801323639721138578092325138167540670831802480478749357885652011591403337538685599911036819062647546679133575840648639052298024688055488834339936406457464713954518269188159219199930742251897769602617441900530202198753534173792155666835337972729363798353897746279187011244127389720656121656203052342965588896019744216170228335635356007767715043728260029320304298838954855569776947050291556195865237587563104365972919471477728474292414412121091100525856869651091316081914149868505518619694278543738777086857878170580628789882392202039554714941377732570444190124946847867500761157707655885327216466738442754383582294872843323733845100227234700473044058022766206455025943545667019579483105672523018920628284126442957287256208764554937007913089332090588113748677888152187866832338349719129061166037115353810584437583448385327712686890545336488637012219301656025310723957528883342536463025102390770479133685505683579359943093555951067980737511375835435056757228086640285114516601906086950370589798052248685323339820908385732836052536894210988756178867714306651187576010006598501230146375223052735512951947676801694351566179705075020635440906095584052811780378231160908942528609858403308430366188724987366935619472353419520578836575611856540678650422064104947664193856052802279360625698487657443413215043071423759454036147492976145889955920146443215750731000671354073878789514808272616556098943472514415276632022051600379268329743556104461337116431062817775107502082448397206876327824131883655248326899770070994652008869151329962694637073102458272724754071043534685513340283698524924346339565855588614274263867112695849834300397883161539632564018773497052855487895788066385024619319244823524745006652069769677105485951411571776124524646025769783970843867512230355064594819299354298394574678774045143564578404806758761934249338420317411501450821755002736537597841067509116957375221790111645131059277910761332406571076435777711745556121381435591373258888860737396164825584593961867630400583977984427793811894298994503991698299130961890134523673693117942511797869770885198623699791773443554952699634426324272942864521914619947271275788244469001908491650465532127560991717999024972336670781739018427017360841970898749464408078421265468399745633826058374918778123704854871848533977655969948090744919704590352931843523308776771794460438775103321202241151111604931445964714703040593522008816186465418120008054754264117516835818589361758421742281496993572378808606359331337393092639889397475261896462319113057824904239335511987437508406458917189711420068731535692120977800045195451050892921447703246706374496590123524781205129216009511954797498439548803535236064532883960132426239319803723365560369496817605399855966992001145930498734523002305077361099010854816477383297687440538373433826742727334729182417937639872556900486310648365186446698073053154908196471008595271768789120663324769731236783030674183121767371822751678848667639742985926187738906346811303968779399779508383724447850167850257187702499255529028775888957954067258417961866397549395021587017126086123399660791920375206746466922136023294614021219762405338306670105391907600668537397261058071867338866204994295936324181375837308255396156363639036093022153628542052801762803234116092051038223535648328745248629742478398038502797949762076384180167532393562384023671955590895763993624316162745718556352863652788565164403213485828834424059786475783255621552539111901770499798185146620648506473697559756826685838502285057882253081110573094815849368310655120295898761744979122198339453238039577440420717761360501997597362677292424396304220989232017700715745138888014600642940710497483058665262546910008761874781798577473345525354666229351663082509036049956287205327021091027439588792916518483869881686852220415313587547328840269004846942064631218832525818669576884999326171245568642329733522471671052862732853191843717738387254298219695931507348274880732506468994167303874365627803753149257110137241597583433588994951961991552213867415182711522936902720820652422159478038493497916902948854288648826488149854697251252471877788880952119795210737147583442308462602136005784332687565288409737718106796696492618397201190933058331521346034980220672922105573817324249537574537686199936503258779283913602644929980753272634558269483067039080988803091947528367924668668241478509691883916582324721695388976046918996648179902894055645855808120024682398672651744887037968999178916821121479251843360973357308827449376285944911345910559543446909033769023439374899236777416747052435651841262268353813262257738079870651875051127964300319827817017969670173942119047246449852166966653022829941258200693547411206605391156410772419542832866226107755130178251390818890768549696642865836906449079151975649340731437609094323259019491122209623826831846935195011541729412697842007118285077515124069081350167928364297741507461576101735791031298510085029836244645631739829939644010913313292709376841143457544306271658889347565013668309112272267032563303650905959982624315563276544268612694502868343362337356505238842493065067384911612916823591028257471486612917453593275416250719928732879969336523795147551469693448999107533408272072531093280954829784770538177294941786761849953078660815763646693656302677374391545758232864557967769228628689997927891236359913765824656326084369302485561692432751422205226590970982865676021430392990455077463851377962559524778328138464224613122275697808192860008227843859447777958607246623560201708527511037676395281571117918376934423215429382659998500289436261642153239261615620921081082015612283534476305945205928088210770974482284085968101017013868973469776644141920007109346286745830579816152939233094264422038218163723111749600393565844729578859625793363601459173452705258041239957321913491392195956216586104578887664857166850789823520050418682481865896324243292221151013185977335946612556233844041709992997591463256493375428443266831098379285470191646015034200516873140382022890579877748432765257556658909916036285026050370711566954558861748827081543963672829440299231754465241577880695610216253432027087690660226408695172388653686203678059171857505883567707131182889722395634693883382104417997466343052156593513417995702887182109477432092639863774544041391197055541145377625652725186174195087107341014864591657095077255167457780295592093327048779211489022216637369451095293697732230068970249126055122689472104913462034276020591747729025628457930923028097708642021355005521769986118114734249609317709763897835778432776565228580059419685586726807083383896422798810624599424228933408215749340708317178568170730549469497363804912181655492633952510029705966301697740062981119955775581885218024549079908630395628547247587249190274665814419466509451060013584786798199737954350062321283546602304801519764721325560440312364608825285558975043685170745975187207509727639918536186986059384030311235650540608061890745955425760925773309531290432432914373502887418106337256569512872249748189232450241373592965408841240537095218947767510572153072103844130123036619540306286144049118337058653981107921329616441856392517636759125516789443187549795868007151897616427243419602742253473508459563476521185690491492226671401405667620882460228758920601586056499133473269326667776021294304668072782621012741277949429187015840043634492789019664788267809957510665418009820766994639661229342624860800158403548993089826375560323541507743022838780699728601441742397590040413822609117498936791296800239881378233998078135424789371246589219769488695746528057898787777002435701482223596168302788754031373556709186262196221111054661961262293041010227255115569421193855138451307900869644085193245445734975015798449138106514818311389957279427217702760126095422271583902125580061833192289222337925965776569461865397516193542050646605163748032352822957490589293796376499526515431471399861345286921284464447177700769483818339811930256259604548871548877164755894447246189513778700961384030804121833655739696970800263068359493190024874281676513109294811104287569219875157850292329548933639101723192770973619941669321976422468629674295505271033228124065884734150311425820386267904101932911402663920346673858421582949126758419430135598011186915535920131684144841290567874628167075335252568542438865468068230291949325036206578449969093657041654171685958165534290610512686062722151259734022056836490173585860398702257288798291857106500921852609551577145023649103015186022428687254247539924861257591800119633676923846297257822973953150390712960665780244477015584642238038964018389180162172942294039281767692218001945866506111189189731468161229045391860473723595795312164196204563916902325447234599611070012984024495662262459810551580953837177335754581828839823124184108595083475507080123585808218099058867457508275180976209247045694333336640286368222020869786811917005934121415899503199856757508832976566265989885690738865802612781434148011687494468609942671161309066397562620516569598261331247456275158301244702304319918435782199189667151448535072500864342300800523878773489541393839336325683725458041029830372810306343552032584730491918140454495993678111031654064324044607852813208995535321278785243966102724640061893341742279542906159205931949910300699945925687714278371772827915334259998008389087629572615456931106601463244502417147175229492337895374380554398863941900374081733662515759117025778594029162149784463826540688415655309544297339227849310483498964994968688669270570106265396974674692166394499334759236046686395545214834193674171276919507057873702778352686393897051705581336345372679145587492640565418417862453723467340020023481605278754181550424227995141497777974819121871025091582748175663223488719556132169539567023716243280509901474538753274646576383367318577712148862601591070626039765578961150206606277319567676118432219071019064269446015488215352169719807648473372414870474945588383821535391785797049454866204165546929425427518406715866914130810735011800911256246488041726344095989513787909560497355620861930901242309135032297672159010486054052156824300032932422495311517552639907063094791843581446015735085558141920838363498578218466810414085666944424544200196412459712542883030212036677741748418885738887199664624242014685376738163276067309268411109185068018939433279898688242855553112941642261330334794139019594431436347298969324040551556788576225456205794585636209453099850919790492019010770040665606409884336966097349708401850239600776430085934723627196128914030881982931686168348625426042759834212785115706570921705310537022575441929531134733493500607637049504472979762714519349664940385141383624438783410183317888991756446166797604087660853657523255465947244475632130160966545796078849985702447527001038959300749347868273854634187358174301510004250358382314687272723956348947782077144250264227150909738766933104655006453662723940845676784088151241066997460005957843051754140023517969231737524542839683559072980932442485858258277550021843013893978286164626312496818755992807713412908358438234712944398868029263733495914225229428033276606389344329937984298396596834143372829786404277522207871220420099548428911172438751186254320678902328958109177414173149602752925109945540857018173832225904863069970801599095736647345234670233484252233730901854940261877819884195406590241163474773626722106538126480532290746037502323730001485086463337860131935845096848373799275652146183154919949138829520808772028929441723009119388273644752340573402347648937032551770756350348241549254420109590551244597287011642711129240744829063515418099229540678141227736361842012876354065215530281187997075284395760888105851679794810090653983967042182946964995569619671759267096878284042125513389359274647380391041841397375687726295927256205751605513800478040672037770021353284311131876608290999424583472573174892202352407444835713976234927272438636803536919568306927690504435496142115313685149162676277468054801132985436108127088121702272909389943783955899559894058061665432951210142149965411174499609001925193340084002714626266675751540233882547602692366923244615674795993911652503018898066872521579507555119417208130839033733782857688657526028813976545794265440022261183165297049200553239970624537132414890243989019355474784323385172123584117576202526128590809371626396920336058638375956122558816637282162210055341329751511670654486239757993973418839886594357339865922077357434211359840547650512362592577024835584337085607542993107160344123288032242236598369635079408977216511246687692275918719022544223009984960784145625769046719573819050991183346604652261228015473020472289147806020704970307983977417689122791539139771790235487915916072277202209110394889658405643243368578493623369293935868081101238362785231185099520994840621690984856684028669839916645602599254024442487318575842489583025410061774217114669570868330459978733324979402925211085422031078280054963870020851833126821825142534392666648153553194741620193920011842662258197272062691289891020854283835842748749954144827356036680145456103700151505270354904647895516962257590762012953944518452943763819388852873410105572161701321824215731114532376566157769170295470019690704685836289020504735543827349597158149015410595067569591561513046895766883497301293606036160402904181324130701231255006820315627491827816444082019282252386618666116824591197718501021868870203948422599606557469934447171298727530627424074958780581458558501262534981828017292143868288080840277947655024165286935662906501107917742038920692492193691800804411068387267910576019019489806385415263017038151448745189718124387223165072262725075643795480555514515178864849229069653846343545500389895671778917894784316090528291661283262319419738143553947949602607333485068249794510700226671213128774487887924578088187060485540179031820510267233800792284249911173909318479684443624100566674668436826914221116740549725517165582422104219481378387964219595660041501053943621542790886374864281926669250984574535006167385138446128633689370914148774363841338312498511947557549423685637106439359786939550218890044252878734154604346025768368822376416855685268244964019483106822780511962432134208286024977366974392204872355551061491628766402725793311367569999298261471502510034823175179642134019390533921886340924035188759016073714137015479613923584220026771699555382275935056836402386491225548613880158251679021929131297865627146210129875985222727067660537641751442588980254951343085283125272155028973627506588074715116637191075877461061052192395926156653313388380673484371231208893817672320619333532737351304949345268491909183746331313893880185277414865835159193051597300132578951458387911783929478149412876264416406497724406548932318880436501368402478499748070441677102588826443123557732736803688731984363309541963677109386334867133294745817036151772281626965759944809597362465551384789852151106326027991289592407741865752157741840431132845250278997938681582880486414253913785306930381611894771019309777875159809404047352283850892821374808426396849398760745017935283535653058357034567882235921542910162138582863931158068137113535593292897998963176040238917754226305205069550362979617263271405192795418124321662980497616030526947865914913921300299326816425266935450744836292208911837442018239940043029200698113207712481672570404730998829593926935437164693697317456210236879176652736346679308704950301730051789657423924803602279457731853780098547006814956751750625594521639968645525163451007510401897785409399080920888542122796638429135333287498357826061509910295410614336376582433420592168846208737859821694857245368708176467974084632417738158365274772787830842882029175558800539410611606205364515735512420271396275447788544870239365651781312962169861646833147650048845545754883745274232224369839516272683961428339962442039534941389976832137912878623310470970214639516856316749067503030167280230998534059084191870254105757109378217845095833483703984652421356235479382801711249370614385710919357301620632031079823502417353350132640164652147736519332387472470568594731837469648112614819322904338996398907894221708552159145980441044225500158745935679261032107467536876965883924615999530199415438887133329595882040546376185501886149433374128687928245744441716050082480118964781824197072853848315332746798586313993966996679761730562118182140686033742133603973650162790195002856194631505941008363982878730596186555451618240269356334596714021358011570644699510047239151918138905071420016507220704393165498688448037105662979636295408458847539233934037016187084884445727882770051231887271309832533977572853350399069329588847217379822076864916302129043640652110134627692836149574128416715486721273822714898706687851990485247716276664923819391470862749075666024522227028760163131490512333127890532567149211916267194086533596212515787196648952562916125916392174168012583776443074030487434970427825699254408075441089416123531077022912081004220140818048603896030333302081271041488713445002429112278260768386052640849056073813792246965408306912918572141787868387421191547923904973247588730330252294470974443355594653339496390347941114034414640777391226401528316376347972367874691911912669284349731039856795904101713671421666770005469749230557693276461706564623608695497478833775324709652658348095511927168883190585845605646401938404119363903165216360402291514859208886777630571021614836122212128388517611593919039131158015435364884350171346763296438757085610904475789589404217252500040776384805686747363373859630438847701030511861861941543886584815306488390713518600132025414359768557656320069313054251042826199579401998612427574437482883424893748629998594220752549980301266113326594197772374462515660357010964254888288267255551781518762375634782069132205703989540704221398911673601264334403942434131583671242352853230012519133385879585669566013229302344008233819531953721653902534545213333391843253625266548088975065028535362788432404079932117406595308826753798292211239021887805878212121871938027857649419543294574123969832775294947897956289665496360356826887399316060238043306659653622183170782774902537206532682866060226935717578464500565217835221362354235157037001236347998674446953127355190294030163726507438358879095322125676070730181976325637814249798492903230008486174308982957170745915508888575228955034931830135211100453960601141413682547141470079928229414554124544358635039620000132374900874618016217604009426770574486735517617501181419394098219778520042771380617556352772392297238696423260552114189866286535764156683219452049089549508592728017599618043325725535242781535444924571336239180928359283001363713507347171166566626615218219859574026582524033991958862467951222822594210746053405790506837393616347816592503870168355825916440454937090978352285325457969267490295952318757580134166552786396678635232114013901126513510513565437920051124360820536408275599805506027435355752818380652359324173784046624123668133899727391238170973598957772295806839669136302117389481203510287741952994891985038917486879171406875604526287329286119968477488001865563972165678465363132374963404332877672653210133776574566633719509894978379859551219174882474824335154699464588889718590665321012629951168769316324557545379748577192365910261915216251696542659867748803713038555257077722860454429300617926856007291244805893798667044289685510241055641335355878592674685203242143144551916453301132188520927317043371300713947385713762961176982504546847443790144819113254700822647304806719480795329122501624916724953264296041269766820870754796599753465959206344316368279510139603046452321360022560867973960002664473437636194890908185653198172975063537134607195777441311885016234175432745582062835045125703792349146653221871720117713262533330597888802506253878303000666141978820907017694793039993268766274991914411549168393191852314013122526202101536695380879634900330471846723549856779901264165065461758000004904903339540627167999736558423557724699995425014089992060799892301984980545913950488778112998752304352602109365096217810896401929084663545502407839657440406360258709773686685679951147143517516848347484307464899930858785863675681684142617200284043707444072078534650388804050568287387887013966257863868417562548913671348882414387407896821100925066968445433234620262327983534163007775471265583601766215546826989057629194788180239537976406271706929188287559779329043482445214757880200430295190148734605449548212556635967830548728870162345816954637155510535705912731273948887077083845357223768798272604460187747801131648333182938342867723184438112432996759948306098028568490772481948653870555885745568549333770971191442611158375296918650415938730917593997734570635527037336711042442030145188869610195183583383651708826114286595070116191397541824532125790937337904252818331540251391594494197664788099653233107777374670656026794081370516454829974055812824678107550677719787624703933476126460885615392636809209410463362460868839797359413346382896226813600468373880257288576299710848717963265844818015924243930071714960559177571597597075567730791594456261461489123725245296558300700049560809545748383808828520945185917140202223527658854219524506184490883031527920715602746083845060636872477696016477640023644882075694749765254538390237009520251371295632706988865337671144068571363424773405135194284250077713442430426244990431617006738101904330498135315886513929741048462647848088175821809206719677730778021370393279254254955761024466274594744148105594328435183508759294664058288995771994161447713579939965714945916710767110726224244988305629927554953963949353187443508357804469307361385745254452274552411927408245664353403217913378691155156916921567878404568349025599420824861163142774018694472010084660037049118318124912471426654426226777866094730147167171158909114399106469452055561417729291682679011646448545162516379449044798220228303703209826604896192086438129453779402881801400394396119647408548351258638654463529609593787033654154139415722158241252635771450262703357773371250102022643537977853014610079454129158314417834445895418457928829485943010336598597343072963099801950817665491013656714692083530227986820753416932283721382842122441349114593306877537405460210845644532317821912931762455254899068311702705598779985920009804725248099173208681613666947375529382774281761736466261896857192411144742184253876379284030404511292344789054188997716821259736558480200487936776181478899920491199351992797035919176736827839610857081067134657431000569275768385107717332092930864744455055844947794465513198484777024871411311306864195234167794600327925690266574782886101563560621213250660337376032185825132160811025661646239946598587307257709504022130881451093383862230259909692626639738065879006893338502937465155842397530499072427272723227823724679790141900894654461570976007282437762642159365277004210969457227883692540433914959377994670140131606846762922269161325493066027824263205357057029586310698974107383652797094831931679572051336017098668052093031442927507891014440934185205979139589399334569882468277437497333338758387725987475224666823468613844359581259626740584642748677739587472552163297490907965831098507049713013522782198342994439678203569196766312714754697683814411857244617479147002677033173178932239807467051485806825070838376143736058257103428832489120169493083967837300952758681156570335153347534113593468420810763146195585451479423358026281272362564857700559226360684661600395689206286643226032975246365190678565259254020547542557626838862077281324458809557002564262222493876061276480744783261664680285980386646998365939574718400644193309227046634482493428518785948672697676462145478858053583434573412616952370342063891488331896921842083456114528579404817649417131303820197774653358366637215271863420256546573672882461033938050882925956058884281882953103473519862757232566249601066099960024450231780480814735891394775891160972601465157491070497774750768564284463995065834079322599761049309524275533536564094858967068004498163376496824680276401175257115080532098498332606735711878986966826824338261369789456716204934258333199853899210451847287699565156205010465895785368996144325151314115014819088208693250027013684999604857776327997806651117800381068790093038230381908466859696546605017185642413628928251755182494891036677370795422999887881852175911043031408365424747178725999705781420731936026800493319852802748188327639362415785264320189919189833393064951551827108522118073297986706905908937025449699229962232175185686697520222442094902084083257550984326818515970286559471073865327961833380602458037312222942025155747711250563867815062799110239944149850530953967204426218774881607081303248603706244198704759375458463902172327587060164384906385483851400948161788350697982716326697206015678577179753635165924211270168207603836259278788820189186179662117505252609776069674315508858942294837526165646153325066532621966422725676688733133311189450351690525736369925566709052565571361932031054486595315366305872178628322011920397949950650947044512936524375040290708722395770509805710370175762766776126886019164617297827046485151488318932829990106338425192832247763037133925645979433282683785284400835147602465578185284489666727777165480523140072233651261891542010602674254221288989197678262408163822530445183394312213440093142680102682483227207868778974553403978950718265969080886980490735541346467141977453986531550419493574070490125821274046285458394176873654358447144831305937807275370193132441127389135221734683891456172639872031150671276142904132839003293782372592180683317506824153466603011445580141359058177583621241144376581530642504882543328715048337604116424710539989164591069736085079214112337143460857506429987189551053061655432206186662020480821727814654243223978269510624717173016957954965901066150210378409947429277684130544243944092058000407655502534998131441958324639974033136071043335482200073070081594789720104821687596733439110378766143268243637117914323326826988705767562845051130977440608893975010561945598228428074902877548196915260968403362082174272777765525248425995872968674984227485543636034502507171720029589878982758362968989474421711959928552793813081500974439989282513513585111093962662391639258015815522530041512552749066839796747596868077438431270975627734100267579373234733134243608259903122874150547434910051450167337163420807069355783821408879463124233841633590486147988157105376209175681638976357116253691925632766412773514565751485539474640476834155840925219712035216876990399473091994999944665512727841521937181432862720187098086817936832944202402736409330236065572401637819923732133566890053224480850583419694736297161876535671114271755891606784412010341373948115819898930170702384054156940068298024299827461514546513008952193441311629202091402013202727480158820346004138153293241453769642730267809723929909891190932792188894686798282835945368824944021036300872095180468603906815332274305796883373914514808154225916553628350855431074573840467809105313030185018180971669418540592710352757953135084710142065408258388374511871644304568659479492326881408753944054895610897863739159809634342655727739660338520335201621136887460381993547051349532530339960568275085896407697424960191420364870443380818187994678142478263917817263413962025913555112181970366046393852720773900457748692284196679870289013172582547886327488232236668657528432931555901535600559993718265973913976374466965202224947452826503241598332360416100667233683577498981403221195798354790173625044925668549766482728601466797604645734018735161280554790310671283139298418049851375615446151996375805792853795710640997841058879099006086413903165164600585226047664485805320842306940290965407334470744967877688137026008064016980614902292954919222869582651422982752249649898721635175202553324051686923637150994934119278959289418081538550448749320545690373141543167105477799875386239224903439739994132366429682684490369337858734835801168098118149530890436561292119264611768067079769912024278589943073676640736253755843565651930193901130451402716612037661683304363429008312593394687151497781409334037037375103664895478347528218785378462846702033180099942298083869977389157785976689529233953416634695049357933758558130141643801930053413733814929650007417276829654131200978833605708192638202872562669768289445619356662358203556861426174501739042713937690991529417011253691507306203658322142381650081361738508911630449102289453393411846418253245269605949002890455263011331358409704313192561451774507815224232187151681838608420766091828843340440170396170234106274746956211074487089581190449272121492545983689073468437165107396699403182838988564264305174510901245909573924233721083508468935800706643038868906166304181440911408108650111333641506713212918402220291684346744112946103645310817827618223290790232398344613669493498889497432501532835602417002240652200469316892412124194198103310839002345022361976805003993379103616119255049529555572106083273726127292060136547311840109929365386153521708589517169648111957861519906761352538385913392759797658904791548713968922353695817320888327647951053114473189874093554803539415686991438812867939701894609555197907573306776696387902000657054627059461246830161947787565938470116178253279612805955689766970479127874693453350637571513593990178604404202402758827184825393641687276262336347429977263904299828216633873883260709165137684088526878232135890473316324195733936664079750995174660442999640017853687889086722479814819400098204910591132934195750101439615551271615034759439193234091908304151139324349204467306602001452243559578754282644159176899137227521481758598132692483309817641982545615197877995015357691376792821023318675983493419809149322364332992034657105448655599411338548941481281746934184836346994760632275156292044400004317150467176591896928084168058657982983327940530875429665574192457887663829666443389360308147029091445429721530382828954090241595649596260057508641106524508893259385292798330664645251425935407513828078678152825531698852990831689970295807177640364617202112994281539572508605354674576143275135027094526388408282878348861491107163473467868662378414279710138809486207345231364731838376717341028603718596818736366174492197373154289960694118260585428591669046751648562282263076525118135939305522226389504416442617436645974738596457095533135432481790394776664165710317321417315755659243147926243878904015951430850364978455122587356361859108392616021538860553678622358574987838867835915767031709082463622815927529771444482867273704045518126132307320651184821667897387455089298083810283118528739555282117665596856314596311202707670174853616080068587913777829481155580701256748568041927286840531369257082671042740469632293861271198904048818418696673468009913453238595063498583115258494239678062646510240824051098289969512224762506844158058207729152060938388039259737670411099502556411964227107595297072361342251773601130836286558912031601554075750385986431626965060253685423594052875764406450709570019453941630883633530842639362771128977030800723632786559747984842424651392535670857166418277707895577759895431918577032640130125328412186413370712893099543443332152926351113553771073254325185748162205592483898761951953298205173384244661941489770626855780378917582073266849790874619978802699732127344233104277464829853662356109386801276879171807381528030692888490391606887435338860154560424251245467467222684690445541869994826445779875257672466792755573816236963180985342886862853504395728525465677182529221895516955305091296977472092088091555456074918086603995696932794510935258073036185444405425939373843642625862491697127582627999173569766747982812537304106476956382632418671232989293884214239472346773495660531480824549930319735124060851169384508035037651662526332619065318925647700200730517096768695211660128591400782635577930848588728280311291086837120136065615906148502295198146952848009245211114148434227291465916132071438379995635848757596552565352488233117222063237952453078326417500613848523045159269077268992561570229702762020973545082410900108630645866955286041110439571691271365600414078751791938877114479901775755562565998318383432814854444643907109892641804463001250078695017965085628021220323931834744176813559673860848977893785987755483167100058830777558656948378340161960314166817922022479633701326817585336158439381402322187182138919940045524289597182298356683964507841739311285358521488136025753782756077278079859730910192809938656476945607628807653783730464612662796704540155620507807283900576328469086042214778640402930587115090861197182400174180968109310909259407834375575641900476986499762627609579915623284514610000099604365594747145336900828305842464600823015939325062105178954613936013439351801874717189939075024429939656984894762553503607137560723672304266742520902133407773203713295437712134765871416228030841405080569474942886750578275323248995195539587806593088568208404810446533996628925184728129023300162251437104283974446094822149444935229776420803775643457621858019976244821381920120114205984687170492543640935928119740210381267637211725346330230086060287040450879191325800153950839186700592882956664490769916447630834100410303543639150594765379847187646304357264774162554766451696760197503827659871490446192857964421858778576839850081728685080775115591716643576753168560541866460644108503566813485190600457293681407911737687004805486202103446595412506307159697974138947955105429077016478996983893289919890471461190183781989627131818208602871803046139400872399954289700243969965248816661911913177268507979908360579117942805840473179325791700118325668198063352165097903744151170720943364449988757596083344270116183035229270235541788866493407971152480010355516768608956849059284428570866320631098619928442726983757462321852875059443140512145477013970745567269289647539291930995880416023491402205007313277836148390071340425624028431047633650575868867976273023298509498390187332170359974506608264732346778745549799048729844575429136177331793038781040419370545875972678442458452592383124529780668803514514376603616659204221727734219613851626820023195742503253114995726231887006417323434053969190639574867281218704896315865047931636277577093761146122352197235165504466395359834177887174738017773174667605320581424918769181871876767597902157524661916350845208947807246575643513439561924716156926698255185639336237818934105187864440199927667561465516820306672566627298515889243153536065009254047611782960507236140911517194877971650549091536012406656435525050551070493934892087573648952339651633072630499747217928768046844737286496803523143856551069401335298634054298033916481465717311275609224302657126606337114748491606778681034995232419932485535960133512709081610243929330528681463324062322250383360263090358882208283815275665979405738896734446728328501387405461244995337554039999108431349023111614072237052012568755111949794936506041255919806338215535417637929017449171699187459747493587303395938722941229819292942636090559566455447924658114153932839836977095492502318465073341982278927126182146031022091442966254466518109281142799704533196014530298637090926938800493578560592769741318364742963277310732810646736007485184443168382491445909189709589285111334263544354739444963890357955770834013200868994294726423668845542506668307846290979247302814626732206517291782662295106430506156981051862807972347627711813736489907131456585988394425537528521026079240534904852790322453753001359768055381706004035059550199589218189093807960690403967003796381996522740193373462890612330482220988810038140666656349123650552018779574852897967440194806841629350847234717575846497895950508630277996755527239838559481168463685795662961829098338154909634997320681638949460775874581988815186587075475203367594785800485142847637551664884345470801401217833181489118221988689691637124794081984904647270060252246365669559892657562735538651515383782691284667564694424694204905885761955941721307352921678800348749155408365402042284085200079515387203925289762244859894806532226842038453295602075013020143088057278196772112162659369417924923389380013966973857239914840353314555368051967445849646280158997354326792291789833338190654830386001570327975147209438921912630296857040203800064197057824748367679799311681785045057497888975893808918327124310882655027230266132509194576416554525540841971212444497824526469333257135228025282423000189519280614224993850682357938176736609434856499186917321906085600935031920526758673460593466974142183771202568884258852257254887323122286259743354524441039435086285164350607450299637540134647268439019991902664614224473192341975908677800574406555994579234055799493393864352958726757533124839254597374563498217130367465333857012189309854190723591254751313484844634937557499301708080697953668150977057961991854786572302803250134200830407708316774775499420798221322854721580539565005543003122605226027828774093421369542887194117850009799414904550893444792733316198388990947476663836009278327391669246384669044187592869152951784157425426178629872972316262800487586503444366409905841889778136739217260110178258751356135247527363756397314818275438113940563866345421231114462411091293276041611770484993976991469132177688905341695835798265989113241274733109688120380705312303330902577213386789447065766124282688393616705427781662765137530258183114826225540701655853140622720293162795877414465649601148010238560732140788663144571844011899494159017370345606889709040480785249695396566942122193586323585755892882917833977129023504963030299303798215417890441500192181193911372517691833650315182766572399515732444520202974220688799820604025393837054261048990275882200260292784249404678272610490627860756076793575704639190199350506378219961238480610197796366375284958188408357910360289129410764748723423518612541016840634025810598907833303300741824909667456393329917983200726859789967254424412756091455418752249826186299498402431490425194284253318594936809382330476376243796962534233149349390656657532438380714533622819387457080032974367104775221609256628223868132695052590362093921605468994950032374475947837637140228816091558388522139966508174242172312672287840822920841289472741568501273205879466710610576475889171132273303603014478415312734307417750773663867229488558051185438257544326854242111252218975190595993099020724085553851772264385094391446490930520523999732448112990468101304742125710250904882526979667935538561186770142044082161177978850831579216155159492347382407498117770416778280605036402613366175319945649003720017916760938119683398696806266096118714776716438073036529868681682784874295535566218105787735181892521149188799375359711393698598671832650204387797290149989633230291021614420282464782792678659938024391116849004634397017497717366309960378975511660437457357497725166820254893815636256741094645129919199370767083609175496046863895435025423873800970298261888963313593577500486679449112262015128962999920962885525391111681829327264482767534192588415031797549930488773259297191961887514355273743140515852895379708441615770268159992540918891896159187144412340640021836980608280180344965370335627923317347925075012952305004428231972482585707755705748290313421020299202318217844880499842117834128176040967645408877426195867665555993546497749561326075964328436790502091168156374296537864261683527575538752047827488469744561553319554438425499742252019165189407254987648043626238773871448281223875959079352585437512634366190880433447289237360600819140332480032788335608719708757692561761496979124172282079374583221822860291152957649315044797767468101762537719654023990562858100243754692525267532870147143258215679597800283741854624360953622193281529121253325091711696292694710824744501361103400072954764184851762349807685682085940510345615695795675537399494490252295922525544397755948708116530003266751532297468602726626758818760873452915324976383019685902233947324003491000208818188970564550430428421594017786807134829504396709659604984750307453201238070505718680358241564681370193402157155700361986361492415595273989278041689316471468336229091130491235661810765060816796952942032414365047315249535464193560574088186023912273963951129274471627244700800755747457779929964706278074299016272107095058049997501958057272762639257550686604901950315067360393007922152567865554498733520030996167989785897175624907090713507471102285966583112447612391145116463882720164754901821848141004245382492373848379572962533554640072738222790801158009243500230200730268622089696132515783953081803951144883382130767224618025802321435493547175759815455082532341012993945074363820240139962408057503424667545047379007253244999595606158077243995797245308219825189361855883025853540854945161247881352608159672806361557423372483833773091363417292039642610942541070876262628220071678924944801626134577002422948330978326323083430279426180686323546157436054980866517419816679199853643385870953228709619840626741356830462495295887284652526752356387289564777866505741982418713019625333395687130182576521927636575937519528459857313905805680405968477805275007466705136172481846051339274700744962692901586399514499775723599375799389898915416589860484753253946451961289513388105181729374852939291151526232498952971079130000333496191037748413143297197264140344524801998746679118967427413649124381764643239257428650650179517084156949098077451213014972121070337484362727959344398943310639906728933389394146399233241310967976106611137322532636244591482170406382979628913240843722358843048620362894474387774189910555826079650475075572503231127803201099220992512150918662914196063258066426815681150965068694863265370941166906925740008670630920498541397581585443198624266059141107069713540368074824813045079993127896090121094431083818470760228597893524838332195200374706265457254503923396994705334188836531402498034557772135765715065986961851531014081534848814207970983789193573185536555080171243139316237815458594569699679265899134786187257458137987750087838431418742966567899950436309186975183083903114924171734924419696673616621183413681133565253762347216920683790468074400586476828496770051697418417810602565820372082438438339771035028089810125857399336040280467323710866611765274257471400903267424026143935513472866577913680061152089491924404654184466461946131494945971117147622825683978318308584684129484071631092408710167300239207706200525098125997325634336897668354684451215044790677108418716042371050044813247973280739536805826575116491486512763705374142136266336580774000059380442384986335519334410966680423201124402177845874116945201397728344574578989760866402711427109974659908852299132367105930884831654205046162610963898187350388322521585395368987049715154279871300309196319258583809805962891261355611459809594352627978425645714387647272160814235856249945261629962400006964208197505694841206284061539542719895760014837520592847101617995472859054630796044234090368951677008548518215780304725987901317530888152983558693528976201186624297255297921684239682068334801348162650581890647624816985013554380718538831547655736027223040503811918124147700073211718359798412272340416206573915310116191563765879964117969100951945855544233611373976162252346898150463328341062279361821538093526510457591111547279676036680704242979799065173026496673787135208532489816082631921028216833471768733224542631200677017474248714048259225133882255845082490381342056270419788824521467075838450972984021669602688045648759487325955176878078848010970289318153765846119120111949840929265107253333118775685957884003096631789061867827508121174689577741942022195183808859391525579358344243252490142148003816960352444719426058097625318411776995632920367263772259452585660955272372038265865928742133276975141230495234914856285905033548505618829786669752940469128932150433453056078351517516017352192162061837125079497920942049768219314537157461586958806985128588535822124382443998159332692082632038740714055298270186027088619406793260986938148795816391460520905631899674115627327429989777674192097011553698742729476688407403542547088340600051829827693803603629520742539538571011621268532182248120850517131007443461626398390353477795527878966495033753195364350976453653302439400279103252787198381579184139215481778688888740963124272031886829902739988124730034102721883859702570268607855874630639442092848565622048273342143707831950100642330333877922561515738324255598788473914267705314154263749413417374975477980151728446415743598920879116288364433128068620352477880575909414892486830954484525323969291358663124446013507997325297080957334574082230326662134397490586406623279218554874512501210304910437907010089987063500876369171651026484334093932215842144492089283813580010764751933657220566143968690429306507475079095253001542871042515596840283223903321011354336247557655475926173520049110442627089276462917825296999957359261634738618006222488718365036142335682529106009478560669634573863443316206255972894811480976306459357779951082058395734538967629677122440376427607972135943569634611695367119271592718984072195451849450339007020213013729821526200172117444348306046505484834754225029996849891462928294036377325663776076131508357515457549510197269664287256891099233900877007902989652121435210609885280378386037562775238719414657409428477169914028306292057368702641137878792346641056918456298223862629506598682023512485756611253332837149314769725738996715255676240683570154036327061368783763666951460967578398698530779930770283705298284297086317067075192566111130338273172440573556865472603558894356417855684594297222207049369265438640089884715498620765617055533224692348813039060318527595219085744190416397737821699916466938506085407558090829424720332570153604304101315506425190034540947754134999440340617628630106689025601211833569230218171909137143407831556025968794416589683214302183514206714653614586214345083834874278656465291062668487251860421426268217017718380508979255233204791949964417239091311993275947746247851385585123848904661809804039817786595942744022570740828832730375592103773235577529472288150273103495916980270531822204549648874016215434322039891327875271164221796855395186089119333823893126751285327087381878947882645372591268456197379258695637741422170869949292220405261537323142061971499491281222922236779231653625812989306390980226003909923043923536535876964822601996379749007196214307819823905617678290106945281438656447193505345472385630423120815940674411722819927931685209915562630878317419055026373723791789794751522975089962381625472429250990738530939922802734569257288688499068485757214807168779833210078599615099483871402791495244468533836768199778621983549553738269798562135245077317730260098278041445248576400799468217613492384843860175162996433872458190729217217386978957713371777289188419961723786082981736198262600015982809847543336707409524603402188450204666931366227277197368655795956508346566130142263681256289691550543214276206039032502973896708676528633008004084081932128184335418329744209944233304302682076868772612871944571926984358186451196105685903031176489320640174732357391653056043029179368194479175732837879689051466583495789603833650042520981024938150123426450278366626392821911191344480501602932554659530963017840242802596333783558223943047020393546215187418309011693705946431616534995924086610322166860528452638798900448665152475339618256516788623435879050411323333143288484962266638111581081640639324561038624937384587890320414832503908600788834092165076673656715205887490333921081937189719311727449157114559451468030734050571770999886289781150412627732317108132750940632686718855209948850896234808304108820137369620766417887202560387986275389293384865409931389369434139934820967943304729568747655686698607877189511218842109603714170737152566424642789502980675051453924248110017918775107621402794314443592343791163994820970437261752407300088283170153077584952257512199133938228808873281493051467125717748849609277937634994043610829033245930671185663860326636806689906975253087036577895822927953390409619687855199554324400183407520033690710829411281569333922664075168758428197479383216616143553520925501996016077298392604377228574793929178941161530687175920455103070535351803857307867117419448204734110481346389295102824936856629291579677340492165910413081013199945919347975437962897971645362666170775291494979891635069347082285512900348048040460581871575447626542423615178083320054555916655802371910196343895649422177264944207717822438223366769169632933483416520446625417565880284323044168534363640151602492108810436073659955393868050490246158162389465154740968911041056225112533525437681427878385601311229598537240004279748172328715862423569260325998734359726228232182802707036004117674641378622862469931175676472606370823419769711687406428286872296523937181732408654764415921710080668895175512638709291996193921690146630223079384603152564412151162111382892448173891564775068262399415196301996296626277394946133474289478982255924826134813101806138903374414406035252111088991100019486818207819345783743264596062937823543242102350359564445520141067882768788238592447310867119639095021875248194284467739049493112262345045195079801191451120903755298765114883865031540684482805676354071312325632786495855082145254551025341536498260776095240131576898545967027026812554941080163619548737042513363772540250916910799524395013405965575824301842629106740935137178392224829738097124920012866019818516555487056862476621130296981380356655408020206198487218809966695527644288199807630022844181428888367316093571262385785657087682345446894028529370219187413372298573318458830600693848737373510247121601407924848202223334799259684833803644646293422925470056884221437488650231385218508519300533969911454419765018983929989049669356650346446862096299650019507223003536541148366498149160656363285318936773452881100612641607041784275820989220210669543662802267045225002326563549631831332733501049961106188336697014528186829065363344720050792087823853832604921167064919125416188166265861708770466307396973274482707936669765714009458110865726084105420131338255370248628668584515262473374045097964838086242959391861725720923632166960348147855885864428258748049203776494679368690002344768215871108622827625573598919689928487585962916155946137290884096996513141195636058629289205182705514411590413705254351584698869890521056086205907398182487073600333118498532253194621824524941986308089166395792980299062711067042610580623148665958910787858395765607505120175189423421807598022226005466794865029981827682111803923828580647699254560087837310906286648654568229913002938156630447934778012590683197195818637701049820100761912204565302240039672663338255695516091017616986083569792498890103965746621879206055270916765612355723416001666830890812636223094695294598594002915894017289491089832560302551529809373408186890956671391144756709237971592055159748818759464877001439259499861873407041566920318884689209040825434413614096937591466068347429006372252999953953550252128647121387227607086900413372163031660390451639687587278378856491842645513284264847916261160233715693851951734468964486580352667969900528244942782803610167123809691640402307964431080081927712746647635750890995750717867785821751867249627705076247136653333571833736272771951268184260672531773915381586995422293747825256836396995639051344416921863708081359112111651636280802037124973309416948320284673900262355592587184966602935184469375757551734930704976349951436728832156992682818596325880936307029496255100154691140990599174446062998071264193126701079161696065376469245008827373168058639263570651497162428648428693505138504003378679846804884878848282071713120048400937225933989560100608370377573958041305502723986351520419674966657275960690691268227463341136132242444362727364329485265361560475639332540225912436270885330424202593620233905729369600933954486970266427979504512110439814546076611992714742829726688739009538528830602655481404606302732279225369614536974198762140771742348728129032500909668427137246944508650519995568736350616846618476122554633667325501702304852165173243670615934721102861066233157088674385474166511648197385450547501734885842766867957495003763546833111341340280943822310597099270138190255790790598505273328351141418697524308533322097502237933782308900156879336128609057650506809029629437872504551482043642126231428478221678815249791567668256030383441082311289408627875794556864829121298425363785935235203713473882572349837121912861340890173624962142581998687567777155927955385799188837586581819914074817394960545339557641230823130280066838388936296054406338959038404425683096903893827863927292880125695860801077880554752289788748306320996576526342105906839588280992490490049859566253545332835173552460349686797716399258749571557388668939606002721812433099110846798996593615150099947106863557984910239915193524162241628241886783075882297800399579832233458352452299518089546522711229932417027607923475348109397002407108768740066237207670471051839907613440004584134878710787254352958333627682843918178079568256962694459343943744935077759831729692777907228641032010332364335606608516733774577452051678366531062444284237858635719225919474685169455277669673497443753030814209581477099185161105119094541180607901167797167098997773456002104345178757852839748159105778223902735240288033602562608237853706293817594763826934194673670702345288315046444836962305380405487993297817652428384221362099098321818154006872924128166137333084523266304944879423404576873525177030627463600901487905620964883748302947901099112738111856188118196296481407384692068264409507540943112960146774074369709544454820302355378913122927440701678987192182413172236766087748228515716372360128851965603032274917741827575260317078569052279717081098791528818056724489555400872011604906568330802102060539899180871446178672774712045116606131746008808614472958203238973498120579678468360266985768601248329452003738613948507257768172911408951675608243141853413358626350350110837996811561941397525430437414427381725848348795589668165465681538081356464498338494746384763415760372854895923690995043891750500594058598524610210302133159771232592258530145681982359338525091309900370402916534469656000314372666875870477935629246117547038041828590639487308399097128994033313586887591986963718333483423500981163760522417958269505969880131915324457341951255633107415776809497103566282572993885033377733772672575570953094473738894662194797577535208554920293667976262816858991511408870862834327898545367575364412704409056055270821682346197260279893189093243010246317524216315250881584333882173409125212554640966823860938067054694252177509413699239476049441176321574499629106373167740945515335631057311875752725532908203477057377944016904453394265815215829666864574718008929490567291742073842742048152760149989594570019475557345273958129751337511778681424568830348437487324773524624256517063669262365614470444251842456035481101946672075497842790804004099589497631029241431745546576462987583109364332754859016981021256537739659949739256166479802638895994744086036238693239919191702984592698329415892708892408540134685730062386715500996104326640758368798322536790577354958698811658480945036979745695982162898471325771453798782619928739030401762950034082338003650764830752713579474941655903060291819973262828367298662958929710992538690023234346195966788313437845285975557748141884632163288850287665123042659712021370133627828096634077602224782360018708571670897523873983362855635113067206847713494245517181247528995463507092415382891558234824217807474685131996689711785784689692455143386035470878990525065647536632004776949440444941238029755768783352273151612326823251095117553329638535511837112869323290874072202647982054943895029002265973907098020096914715487769762526434331725973394205260257221148647771000208349769899671626604031905606673067161233398611535109722522560836754889472122459622563164262389811973503745462116590066524034540890254092830404756718573498265655937950622643854528948854415495799536722195845660466025855983740587723128270928252597073777349745621188037577936873038442500524726503544921488138670286700391158157240877075752689726926379306026881624555185763078882484388921161715560231284427515161628874076694986408269522936997699085438056039178630891462314449242705099806993563032287220119352976739325587394809274423869237787138039423853642633630713213907597795078020654910869957541698102573038584034586020969006864596167138074872163700729405984944572314759231287726817937860302015129567325493739263012240516221978227176759503974896428475565009915848652950783798985308164591143899832441188477200434513271177775599759296671207059166689009808389013140647512193455912758951233077469753028496449352131762211485238656284708000348273463794257258523947071339971084653858774426685231586689998342716013204693080043816389147706035871513436922024725550725711604756486379701487861845954298910743955645677354946940314180075341330912351849645496291078698799672202632366182852296990392282899779629653544885125543468037146193113170197083833072192902505488701839496421350953771460242389655210349565385231983778967717233770242427318796089309841842168374243993378045406263903078671391488401799776158068047007952608089286234288431388016690768389337223604793824248378463507402175153908352199939742479154546107362767711915279837909716205820773949059959304825522021428062967768548307962827746864137956111214392707608468452198837126238103268912868184111178899817999985577990044261614843784971899332647580769399507431142675755019442946986452828826391091006141091328090225750713669474747667012967953026802061164608105816627451569424662618691926527546928800624114832251902046019593164814306967596714749019026987121251482479768568165371166499521523247329757066734275398540329435675331776844021751279517687463922328030769343695360811354214328175825145741968063615656668508669550983052721904771982069373608480918494940172706371096463636702653383087563671982088909116035838261069376277627648285840528167734487285128918939736953385450773169947008271865240325916475325240662424563659017542787498152475619931530140758104089145767196239462323899845249569189669180261585213217882131032540383675699565688813174857101230111738396808771465877667831059199123228790369390973269970294164992122678592684273215102744023486888091983454300688315654657820216298523382299751125708756174238653253762018764542611816581726514743606016256271774765972056864227574892244379228825350101780627590245992125282266534982092136894550136350078789377614065014701015275431349751040817364132611998305766471936696695178485821432692085114417821849738032719148671883668440380315540831025119758105366041012223503184883750298682813470730961481089716088578435381050614752309818864641826740874599687321151869844726796636951261136230598081320538990882552674231092714043677825284270570678830853223628621914627319174984777010438704742041589378835465739001798013515596903416746129951757406173680392084567021998889509553410785219325224573457998992542093781245010541788922878232015127936709674420451977414578444331333520220310079331122458654391912195861504493041868471248304241065465264370814824517257451089452757378575548894779520279035905044466133141007468886425938004351944830468304343744213431588908682569464105930083394478096888363062357968661163104346497785986392151981352786923410832423085638874977767434790039512601420030376982399792146248611758322717383728440441859662759989824052601275492713660209321486537271709869567502858118245534865384908609068710907006706619367845570982996890284051235142016201545167973883786803500107910590294182518802458561325045576601386515901050668672075227639028623914628837321650336060196927540037259421341622662422623918143871021711040148458660401647292289993655032039809073810014067768561342549120171007026782252834453476655932376177419128072513151764579081186272940170493024129736990488003237257793343875965082969711663050028217282469905164462199604875685308433523489399447174081383871495536082652238627461310860616480185524145168333846997954093999563737322255759414523877976861151574444055073213120549215480129863424714911379198369445566530754180262600811996239704171788577397803806788221678895850100641665207737276531949256960042409114717449164918748367362431719928052243903463845514128985618915094696660382646434529441778104281125422749067011003533170653817203521836309572548280947932537380104055499083225534044900789797980555892631044268953125597297394870743764530623963548678675723512204226505301117382669584738946675909084072223533698725321716817714899212776742945590756739797920795527493247042516372653164262980112739150623236120345552630229339655977053180394886173874470010059383546095043362640941157956310906199326992491360072442744412085487410340711030813223776502898926002295195314783614191359698233029878523667747668481104222052147044772290421182113361191181755109454704131235027482536095664759552775164888921888167882054534246677433901935612830938441612615672612685255086343342846508663643086958367956892252683033599511241532261182759110515173852965382537325456113010517215027406097128076287697014968836253105585913703997178156109856893436601215900850553213168636798377104540656068019099481947766041981802967009205046247634465684069354228432139265256954302879268413265030277582571584491525522969644218183439881529257535234920088676762827888860714504744898081119745107058425188185485773831324383009421509115304752536249892077406081454353565217678910721342786461842189621807262407445539976007900391562767608812614189577750606874633657306541714281536428260813121256912621570962377087635809976120709110467378732857844220583487678419551238240678890458543950747937550482412811017707995133376670313999834168072178293385501783688648299755453402845251773183208508558886739264469648711244107593496496990699535544864309109209297912218493963761678586035611495103953045803111327811455968495923376088689428619611218517641977785186400936803857235858457640112848488051360156444575643855121196968163881989250259163894130039407604154072379995843120356861347304047072788350553877103654481413989707349261126122593030517782701560671066076356014579357299953729627274455651408492793617432725074080454734614878203254373942101670491939912368749573199786117946410758197882292863131576942448090116252452545505384638169128696710308675165256994788976235253108879408812684691745004637327928380463488727659734237753715834534650048441557328667355529014703664201133077049494938091130827534312444444919118432620230184683343970176706134769732381738880277381268495012335038789774730040027105178816792657795658607629743472063912650102717943848262075283691597491712134686910745245630314358562878047241566756071114542972954635776945794260716802730666050784997394748010727697736846402054692954868141662488320659284992261454225924402655945559169748107022383553663982232271948599463681493306458613539109359406197027900074459727404151404588759374305129345120835309713956367594407623194382937311417081530474011757142467824971957134806868004099710272373288772473922825520107493872955907718518613219348475281523173759951038358683558651777717856936262374387062420727412718752067109129855358609832962693531538062418185076481566827451066086057745531835265219042637268955791428385495948106049012476704312082693174302686564984373235674701729389320720278585482218031668065652509387879997535156702366762982539317399743147386519245161009362059923307445944462233267408229566549422483855216444039818260306683743438047955655351703252341445479998663353968199278113538223262437335217926224199409631297193242857751016277539603128073909656770939707176907692756765741630682332936937661102330120097851431087302141066731317574772472717204517992638895729100717077156867910276574687252956131987951632075842359565801894614125313873297576342715332405005323410062913133067149217997152856715930223002440304741712921142345665334805713344624944066095767173321484055458916020973742932754716041321000770019921649882165716908861897249762736331173244459901736267357216152335247892339085389179672058633494498175191667644211814920844008875293816983500426337832718342069597037870740103100334477814179364991148645967694301096653743708740936567794060216401785980816313750042077218261410849581801705566724712611224837259793752235940617081934493876756594466658759578494593932063535870510089931397343213882174735211411021882911919858829209978631492410882178701051244230536688083314850877847127447467496930219784442782577596198359079808175203632237717859783484474365095129300676424741973973370587674974405432361982289119375741257664348518250048007979642204915414195088935425945411799350412984139024419634737352929818081445985242367340028814228408484375428229663389071071237781712171687562572423932688071059532869082662420720571081320258762644291062692386836262698099546652606438772614773651704360620331034644715341669402359109720863507728508044274468273204822518702496879353315040761944747337811230479279830862085088457068171634634405237409494562218218829806335825337155662707273325978022354399998610114235925180705085058069772320298393423747585372035934578119388289207840486473556499264906350457826741037806702797213290337313897271470866809160555149443450945372779282662011595057453999002417987818098107020704437754185469098134178098732709589902988677560950058809188799900473029804139621208422223386981807159144789889675511736143185582408783624609651689503547806200955110142061070242553306153127715311691555054264639069704677090025945729517456253506801254895675624256997665207221052257814517231076100476852959746821570941523656155224242652705350606786284845391084976475211198123062433565928169072384344427973262792719563710013816055836685058238574118396354082468725504638584001008653725805945742304833510411533671455144591227241849488709520271401773507433606924763606326274215753840021134570949637956031648560051443030865039533464616098998464051543272037914041230848616286691772242020314576709834170869054147437431776754406694985463330001512712859472113537313366210412151089444476973547967721999541281247562485333524629689067873498662759023409572263082473626174532707124732519632026379973952184021275409964065389211430294570276274771543788627344026838344558392398439858983420476428440002139206044223640485834260204642772611046544652093442953737925063461442273632296331923587209053873320844163931034089496032099764669517792659301748544847247859584396083803927836872739851814098733546878841523440327107141784630696134614971366184625867088799017161304118823642652225927621559659737881893141567312907040525239946962199528192913604980669956868991424211042129140277559958927050495549102546385888948524005677092804676213233480938780380028396221906037476444754967141266214420684614721906294427693902339028983643620438689929846302495454130179924712163456079284673582404497021589968201309198938585167725020034866576850737427814236577018033904222454867358680317241611012411922433023507147354460235128548172816615793802903878947713297764356226248557703042984797424073432385413353817109705859041879068412176252782652122461016144037632444398096131459952679182226062039412893012036585388061232939907581583038715835156868269759808122695900023822485923063409775601667385347180319540498328679619792775737310987662530242674702669577032368193141997481335707021826117808269941396122739197448918102430527068637839986416496461801559091582476030791629352337776223795327147070586634084061973190495949174445503840651455318302788581519097646224319968216616863869434102654682811530611869565336693205391660156772746459258884612490909755930626411697470182270601348950042932896798224867539692899467391698941470357721781057788218820772474986835650236379599908780425811496400340440046840094245726112010204157947885584877860566868823480768902033850936569071430783932003441551430670264459123662775462089595909031659330293959450538482900656241291198994884602885359936876233377862067734672104400867593426610351541509490789225930115325705530308987502413324085714026264805860051380451045137283614474382852575653953442507732201438379415041472541248950450768107337843467924562296484719481159106410204123362121226830439552610378096630648920923872730762920580975611294917535676839685923744795593256039555845633041258452518966075683166617300922465906962348874599227473177475133450823162243500652871793545318677447615250346629681934523367997857120173358949325633258289492790810549856646960487723765279790887685994735092936162807919774775817009703998586135483788181178080872479628495503820491402133591241988669831162252536558599987339931604879851782578338974227062464032890793334381438378232224928919795866485938637175748758133854752654785574512776537718330295131769344681744085055828228059626915091913004119466874479198239373376755201825727916756030269957447632433902950317038937607270636433516267173780263562345274288826689617017201896071689742635532345227081964858973435024455970215171740743621843277681486185399117288181820150863464415869261230086320296001230682057210910630285554237837573802768317172616154782576823192281658229331052497864032193221430688109588276862586405358504958533457436432830171049937923056846310095568164448102011343633667901471011658729893105522287977274696315453027932650891617403434104084579845913785188847462428859586482595108902090643470293871314113245994687293636980204600273491395958200422955767324941413557830764965487315638282024209594199898517001399255945678948363390433668163059763300087972826423454061411610207977422232188540717782844874272382261814025841964285082010869056281313313712416127829969082841726770175327394993184218907256245238216201598487952854785374971072054864931640596937696910522732597267847667941973406404451787433630482341668443972579197807323451326017330019541965982833572802288858062713388146005795296255345491054891030130946942155590730342551653943022720754023851923855602470659331540115071440407420864657489371995960701481571100214503996598253155892242947385926592983398063598762824062783593995690189274371854966327947926332821365381653240251192628207623965447592893132459174857110734970820941731392401836970128084096765031675782590210386439530575385274783842216294964375486126415097358752530189703486265296060085661505501405490275188905738478048109324121780734892030154147789789863032039555926875643401303533693616595894099837687417830239596338617268217513191121489289116056803599584186093414379317105551824866758459461558440832015872769886531490791106836233964555052181860587369279559743285757439716571016890858275465856206029030515184013793305838686299777143536013286409238283098708166244044451510778885497182124181481706131329590351124236326674828406830893562925537712614914300313620978884514518291452239629196047468259068020915072878818763372005787366171067753446606775591936660068292727071303246195506025760279531601983870309566637397244059825089516583832680071595851984132679170179887133350929075882479574670363725207448247896091880496263721278901318165370870479174524085459229711284543962968326813206456549959492510391342575499688785312010549182998732038130081427770891478254797162866628333578092556988544954548670820009931535374407936503221665334570616656424991033841923136817983680791715080168193372528369929586469341622016971757262769183876842877848815795179520080260098415755899726972362214994336760280407703028027817384760813304318714789242149860413857388600668865960878749573648265246845893180446393324429373938757111154176329981276802193928301830738126416770489858933885256469283309875920691352347514766708689131518207023426266299663087747388008946628419488030484853964771786408742159299417919918350520809189625397453161304631027977847740399754342136414174746574599198028044015329834788863072759666710215737190104880500087333228872230300940199140778363639863245037560267182861145866917058956267300441971928608585491622721651881447475241273279993766502635829840175790330251409659693162621547190484082470222163307088095663839668873591146151180807097664368582235227861790520529894469264227289326164920010779933108457602538702899344715742516793667763282882071127132518051155800314937415559298765936084280258028720890821395087239253756476640574036934444230380954676074421748553973351911505100727897695407471473958316307022558270924811032620968893090657498291487826909409798683650078629902301800083765960960272322161031531900551901990934612261903719812053216484763574650807878855647615329284683160781830142023104091308068594035729274009401330140492291793262423463462483804618737273625516877957377536298955836392209789564405268803263321729232940657968972761074470069616863515649950922846772931107570465460829195097920909166331505920007672776991260006544447128208380167503064175857416336420945256980496127733057733424285995019432070553191049291643604304797254995225177940728736843967056568018441193166411702343553771744387561005896261509378944967151886348555017283842106686020263010285357022575031184666406163004355594455105359412555486544758183279298462826132170803408002584434865403359965520876749883097375111193897792160241057295198846013060106064014912885793185970042781641034574630685802922799035509678361713750361598894517595069256178901947972254153381880887766457360124317802883392972925034187287978662720451089688304377648166429843432098816575649891602968887533975324859328874750059010956985237006385067929522151450877677300157411327612898962044717337414424468920364430114888490391580181274579917084446743800536054344602031106133474483914289737116065246496481789670485068447253266531859091195446264949570950037474487555654784887317439051671041507398928782943351774154161877564798797029787903520363941160049006669114426128825478797407555276244047716894599365657951587397264577805361205794812407815841411015175089352779770800509269240185165109876430151462812262567770650239629617917886038991353223299778718174112566255997367004701822262397076923967370983619192175751949094071348737486802755645207956183563873809561267581615257717520820600662998464762610047239578958879059762118893423917031755207857015393598007273898139247652590258430866346203515273155825187920821828876410540651665348720012091346710835865592299137072181922304872498458541227392047468508484455651066893121448352308649397448636266820899382826051529090667176694813370414071066725272043173430749485044317119228350534345740168569336425347559870227715323860304950825899957080674456375887900708093705133269831431757478707221575069722701149020418455654450697934708276420066268350323447001755682900689325844519163023157457880417994532050318817120121799999524073255293228012521507412724242514705556098097824674640391517672736797711925404731638395934255880700160839338014962755459018705988610181779957837267409072638623596906697017283850673266627479849901596296084059970345646734832065089266374316513991299054707933657948733329318618864795389915725606624752776282840311726065683590975142921535404471618768317476020497483378146684910680594701909809124523598912914403340287451855998937833864567096676540943347058026996825980646601120054051090418834030688828618881293357636282653787833955575355548920773719969396544906700911196587816570194038916532658174279921106667973409601941175831917472154431907811735521422886959306730175740223973552324771848045722455270782136641732298468799480041251528254030514199330796810886110047233957997139774062300332344647345734061775711907904882596675910628536027212504046442658172558285461424252336009568758585563413411965400551957412871984941486205524294605092476354076054148850128926932066123743456907963176282734647116799439706050732730642084457021749108831133687026415635405375715249650217519757283192138442317289054668934987334968262261413820161115573207586177900934194180763614290178530341847086510056587455415980909167645631394526985792385800562089420141205833576393101919105117502894053615772004455182320886202979391435231493501551529544348916517626362193944703242991806849821649409974738453501179636931478544454131447189350611593152951505785576124281844314984088803308849692547935952371938640924921488767114242492731325471201471174775306354281901022223809368136602706955411645553757594156094171871294905846713911195031385587523205254748411555696331311258902977603476791664774974059311297022911457920226538730804392991988708894503143386452965803085733407563097367375282094298272379496999636863935161415905477759284800477657221686641289244727744876575604436106295081695799851313812250461436850206144092492929400584578206120586313382131956924697389055563856107103217505523344785540926816225413213967877004944453576543221130293008771915479304782976185907442381816045818790331363236898855428467482385561378704843013526056846954393400094462961110151896748732495856107577228473153130142896263832936041861831969557039977026729318063721189956317487491003906141085572810819632622937446706901510815333568817533413528961362747641832934797124772538575692513260777675890094336304656374116743647194651843152560991280509189127400128116855797059496833031206166412980957362136723666481878657148411164661300044574901605668696225110290543712795481570320619779101909528148023052398735291921640365650002584772992758387221084010913623119153153848171786351373527799159561568810522587047243291050571154136601480301218069863947861845074128712475459458180641700001146153985869247164767166299422545980717393944184340132961697694309324305287926381207525418219289750049863152399871619130693959023639492096360273465721515082191557532502735854703787410800554438049818555165819771799461676920375753043849631673600971118161631604528108611867792491294486543160760220070748427824287753590464488412837822547943603518535832548144593487417259442974833132836792668741132175496723328402949098645147980137456905974848306148595285143877676959950344047275852652002539627849524938845972733543863243566682706387977721616602860901073498667240133542326662265982824017669617632054034835499682614385828733881689125302705734317353823932052468405828240580544247548364340589002379021676194965521183069558044299588882152501168725267323830230762499061977937204042540115328901575846043684330475909557077753006223150009321188610544271890887268634264285045400071183462235661034718727026024178029814968565926995654065726161204358396340081460879597232970390353436225833199931216396570280898798039080269575387310084480849334282655654873465953121706601144640650276390221980389505876667853573870574494202693079473084343918126939877038412582443344779639369938940316057386508222927707059132245487702258010838727543398399919127486117692663226466646502372331277805000493106085973891257473180297909116053942202913803051370793454026672235789802813535960677028731563970399268540529031994968611064749233829937047057587083894377766540345435834231435018610796269426583005029157563653559481477201405374236521353352272490799372280478927403417066241145306707295347836671051598900962118436521906916622346602067226279421796094394022469654512457321280217611439330123913862801405298463104200106882986687168850931484116495738297019706091850641814520151492185222093733148245393397140452725683250077664028207905983172845731758898435860602259812122778838093426612112680044526169793064547262151157300944504217530200453166414861630375570832475524489987647931881300710099807579549152114110095413395778668264135983750632158178178890411948222330777454840566783531424702170851000048194326217412052122776334043912400952319342901548718100850059969883752987664858963140140332545031947949661644520803689353343480592296577977751092374663770476214297321292294553490497614758943736490765809269346051574648539457702312692233464208222575030485694982328005885181433649246025234006006019297981587208591523639441277110691141521538952166629845527231589227634054302086285368061763479177583947646247297547325694508670777598987362553438517186509348690375319260039722730653034332312565244190909322549917105384107355251842266558809756676867902708295021276670580047760023027310343687795652941000350954402255404191889492450261808041936549790528963110575492695202424305178944556917292859668186538342271329407392385738553459370227290648393777011929675742823053079957363825303340918473644307383367511035183659313677195033801212430535729442593050694337342035641539937568157863174194649603797582819648895334184923447759046269083221376246059533020718032876890271209842307338192932009301809233519560891886020799536795087766869132328367263186736365261040703770430339980130461970689344275939549395418074412949196153352132132146841337963610231443488092384851904458709589497759191405608660380519108680257328129849037377584489576902379149181303534488746995607841682924219356645285605484924300744261659377441790852244124918552548905078478246920363605467496250699574953690042319544793119494236172574876243361480041396111862331198068344004911681970003830399934454808985277681766758009362792059728235696744638578118778249792947599008290155900140975494856102607289755469074420570711443687558167761648031891151238882663135595964496480065704908254264621880084413258796563904796960488730909087659660056827913148766087698299070144788043068366610964405518247196657024071660139526153746260275358578702506420525164740818678605507458700581035536617941825022165694545604183255955218796907289861060372675672980109764573411848665721716392689806112457830135102577758118362724908206944807598218656523036219253301770779994013603307020414771853145602146795715346316900173348066941336456652522184558738419713212022876902353701767367989137935386127025099736287088032695407417542243467870307223821379379231380803895793493263672899817375756828245296853698481581375023160121310399845266144576356204754866173112886809098166863879153974061846847649992572920056309095222438264264371436894781566213095588088423343162966550027997811868084830283563356057872515003717100197672378122319921049587771979973223347059652716559224095455569252075008087678537844907342542171046310951573265914650095681207557205790280776277931248353315214675162651070946605789525398108799223869138435949576192190929919312526330238659427615452822893047084480039353351429445371143576391103114870391625706457336438588463504422111390981242000382937851670256616961517538822934673573506227085082338261783367170302824876868767008903978490706776634617105379154277726979231078804272624574278149762252115793061212297246832657274990052354171603451282413922495611810318666127220696885670772278146760433753894144154141703327133321767476466556306624089937227619547936227584484573366950913914503334608404458031510905505953369736561073089971682841103020220376562851344790231142600642916075399503981182684941185288743660461979852043999177838331179818471172080986023709574096257188584777923439526400715723775944704444187640970831500063027083072244964320894925262320952697157698619786887483036561531365494417311157588942584112290382593408862955284105281239741597862795906259135031913844135425542093878132304479136086301217057418129587779952575554334236644602506818119853465116695341034435635402948734669679178733967117190707197365925629138461969161525339151549038831832346906751288691771918895250911650551665659397661835094351135526307867485128556098088525796678629810787989184898039897331492646397514745420943252973245429983743813612554859888425351898657028297500717807954892659753059464552891168806442512512383243344636847061769101528724104633339501647957540722669861121319847453401930164967726599495901537865501874950905875419182459957122257446872839380810559653110337809387682094712640616249484100675425088763984318876591535230127291504712724917503296884989691324728115176164225399663925557566889130836584259463267528387333604350905037309846425738277197342604994911493974703631764659825109997719121513280233587340570979617314665567003220225386333598810130421353015367401320433922434266468806379085268206795920686940084155701148843222923385523087820850979363894577670605019531252170482520253280479737339641125814182792349151957308111837197233713374115958986514229453519392919514994529041265624932213497346187614336565943845938317092919110647848090330206060201006758199111837534833337872188234661308550451117712836616484612573232677686693354805828063473401870673345645509632992532684512841701353996667098484807257508127760144685351659451897754857086111581803359997998193189365892794384723574998222343106320285946392843697386409357007015576418994352920015909845617459213162252373441716051009192836166901295214842130045956194620424424515611977338300656939588510520388245886442462631874099425243611878897963912854335561432060685337328976058132572469375010937532624328497020883594609198522650373815924626635260123521090417580477892724573258476658034008202084301408854498440638162659405969517931686991972283817349000433917855896661409305915092273336774179502133531918565050098378321802360916363626716910735147614671354570415356352401741234221625271942611281243258000629397410959560347629844945303586057499991167432719639947775550687520262672035449608457275465903555804930967145349555328432645236104889755140126103089320634797288737369097451110616219524334701135163980777429311946121389106705393779733171405467714757366783948698893581781984115353462914283264308052506998102235361139406714821582855730226136452011826184477092303994915034741274021308584139922154792967852698736339254001717813735332034960271069781732655869711461066503802388070280932281255939467646362155103414750784573653576184755272851094617344247789330991808412479469676447865880384283597691168152713368125260437403646632112294880247411377313679804121658477372562958674001003377023505418935090062211185885581859226649160330701053789583211377531469045656511504751439986582195818119885783051630070239852827544451804769222617091990477710280564671297819090772927872752673777906085063792214927640291913119190683185502807961966888414974819302424391254120012782042711085087887303560932731528873067722426627097617545757652737696227471676293797531211047726348293643408679755254453501822706298002857418313195211326660669900888239323499156452104519742153166784853255775141442967311065374589338773888402880035384406208616544609783917570780119764067513808694298469155213385523292962264617830283467910544008841206427887210400364364618573862452459062621354560866926180028625300661781314844048508452559416765765987294231673032046598609526398408576390645363402985168394572753590186868832159284784530835576142077929549890524062776374303699500062178154316009702140109093092223022797937627925507924365489516406890496914167366101943254900915257381377718410223029667092271817860700722153044527960829853718216113498621776787572174860207466021214846473927296999331954057362058127949540857265845035130539601885330203207296390453404263260147406706035024598609462043122270762758624292689368460757623620725608480409446857485550004055491717333849038816582862642371619346787454552687826440012440726627556978225319619874273539851670682532044962144401667949101960818733096927989165918673950926094425564744324595573463945146321852588312616163524294931245613381606145775189744644662886915802576936809992756106849193311228002287414579290580411085225160204281631594244593301912579196748806441481026191124899509655093867560179861431219975590003594541949002299217578844963529782604533687885790838910035310268893979740757602634883512303320315834840133698111923216639451475383718988559713817639116486290982290789266186203843469423008313385531243683959571897603215165334948692661906547718332504099323496167013486609007922679735158870878278420827450027177426586377840879977269801293607020327540833025963392370663647073499330586937359337094643683191003639600080307278854865805548366261316056446803207273961747122520962975752703823497350090467314074274679833062746408066865102920948795545658336959011633322577838168613130277991148278791002106936044676762016446483773236639840248521998612438430242638917625160486139633330121323328354923394363437678635403159207631741186832352554816363382771262463721561249726446523572576303784404062184486933728697899643790768837432512550435721406803691283960817217117811065852288321254563863266721279452237424457019503671999528608218327385396973001370218435150852519151242885345156365121987900873431008604122249854619510062303883282587105724142388188880379938671212119435119952967997615313634238407159161283796936477710984910447704088433644862645337353930174137139220602457772596564076045881347914304312047415552582029472261781914277323470492242068257921052096797140340049738208343979596636320475208992851937965690914542594666190152546872440749671118633264358046644188133952650939470576858235931786052173717775687715728499099859921677051258798820542721936691453776966566811317128486200364596283484145716546532371078098067838705644487976210316877494726968243399737276535463531444464613354732406698186460947661625015738645251649374811130165975653223615107446006986736503415922908705640531560094546009379555349504336843754929889934618217417626303439558873226309744951613092624312306912158659334164016024543165323417410016821318121767180936265258323832026601704960662591870575720604313109250859448085136652871042043551452525627978514071053353579332697870952200881539805652244727022716176449042903499646411315851918655282403305123176165769956505651141174938367193236499700864288258255721026409690002368548081827692946321378850912521341989992601315308003938335214708656528367321492376131752401192331137277143054695872696162540392887938567505284754873304283804239285749976898062106003259028845113804105063643821758159379324118708469815477984879931310495364703150164916003700737770282664101693436551048607443117897483816513597144208524573819600465927360872991556132712341351200690536925907797876017513715799902422189870374244490019364852556977054723547962940421833437727390160271145116160730409876375541858522503480393327742461447468163135060423904792025446109264818155005752330310796429898793075277492296020021465036462577506412122617398597408829619606557061686904114302865117431976079599657257932568339990507912838170510150839532639208671469807688202183889149762228182898684500179165432097010920476462696448685308428892994461212480736690041816213386213980020045933511490392709525181742744980746818725218846071819352963212932661810884171289659368550527146398903622083563300765406738111944586107109752810765924078652591939907621862562204392021216358450748367363670975742606702367751582725433745367719354481830305526598656687342966967972124000908658881311756721583592218935029532170161602047167949772401752348991285938875544793409720873014033947566564413857332145798884079985081998094573014507153955256656304955703260807830243077421895822673229112741446976428166200999673032444102569559234856307537952089975594498965075134463233130130194747110625060627859939194765400670195157539239815827779689030954443132986678835367678912633633291245274410476873906533961957456605825587902695803675621236070602510529229232607099519225642564976920259908424274744390477032704275252561933170533204715407787689582618024471158118267147846321390973931358572087445998776636060154341467708419595907318957466212042140522274539326597023627964205995882738367800911251029920864528039403673739329457295746937040119881933543189797749510178904976183890664611720376146987879907459613526861828011701463421505149757424833514398485082443850610271668168212155932065630474023702277183072755641039009024776452429711746530339082193472181055960126761445573387386897049507780681647356952360004314889394743725091021713357980195015725853178198078786080671949318200629835281139141835161843536414240691863511881955964977405013024158404439897652268816497912404155741942035063655919499012363080059837974757250202017446035847269676186274152633384100167866665006001875050927283585945065780234588983699165017585054316589175555723286053796878890053847308449501186687808420635760566704311220173143046463833938349501802878089445003167690494414637812806946483942018559242348680710796285631798942683185070017799801346837099325390183892122782156091901363988095839926544179097605319765049363596744463617001636476670997750555525804394691051313898241710471031304309777821174449126536348011799168223446766252956975327335389523452521988593798678487719203454027256074875759060375507775016204729020010297867005736458451418473177089669374458785015511613100364988752080952064384740749178368613951121396052644091387261577208489034199936246297047935309682408484717096091365551453922756659156681174330348358124723130984840013210713171307663414436892334394290828512679127443874928741809029707248875658183787381517577243814623209463603803692803135151845100767250508674885537654939448211376652133710828025325876806910130446167288626332765907808874730144977657974011429010201579584442681748006692058354739125806966037561502848103214526336529099667145482339013449438168547597134954646757129890794554671701136242082902484621751623601505252372849323180143107287528478507098125540117532646065359237621571780499936855793548660053659955525419456112088627641571078942877914090548207808693817080563159653493649282667220449132355343032845210606350716168821923702595663650708988403891423221945563519114025131711072540355832784555571871375806098713108166339791333922017750600803280257900792385992718133791158583540765533448876024316612107435939300039420218715932843332304053156085126155773669414105361213617063798988289023611890143485626063959525882596034016753037669258880180586457941168665942320711525294343583718756540379575028078213240648883747242146178384951982110001673279698507647073415799207756393679747592037716816693003630819426656376919815719168254976158446156084235429172895102252246714354911876580989158560997555203922512661298676811383584287637246966544657902490607807189345202961459452414825814913313096658902812099371718113224934991369326670331246801962036636390722966154924863704480582927906522345660102792039550319361038695972760648448408804621836814447582933328503826330693211256167944156656560907354639293737729119879448830377477401717349727864266472130639713073321459913109229650955456630858726255120871647668817412560075996960575368528671335812974595336732738860657469376488884608365531312646565401601984157390108140632921502000472586108681027575287889984179804527278732577247577252355251177250449006306661464198682479491547299015135515929499578416104452076156951125009407622676285976913027693982489862669217777291807337645736510204985700212337977891132943838397256863867315873788386546042455937869382151000897414761631594982441174010538671481653373133026870892784449738117077147249873940358738803829655880695193947629924035660196167558389580074972916342708340545679203932618396489719425070004514159461563056224142411926409461361109566571577530339229982405240512165303854275106116916240167270308807269511633082218423602873342216113865492148975681985153487264590344335392756418395051298030364352308523123663527082287352154024102324167632283751724952240471309428170487133305536143958521130890302232005125129268601954693657980674428630010194261647845659243813594398459177151853153088501786875824412138619573814034092957748168292411983850005849380089416504048954920531327970230371174569504423103607574720893479418801182855611912874885467895316196669933784568115518661459951241990207436895770499494432111362493021920165332384913236052851384517900103105234221653979781768191674245103302895714825656745258762772369433196152320207871144233203236398717215528293678999051715792473653402872081789637479233324641080540032722332770768297350597772960695529672050493909822245024522506134705338502699170261276996433841369493706203025424893552154104667105376494445810695904676433732085102916710478440618460179481371063007909492582060868812263060260257776794240946430422320675063347296684373805223111145192866470090580606003048109434231245584005421333557350141214085276655300264999042081926929231727104199855969325746150693160466054873390789891734297825679743680226654807840104985264659138513708024938489810331595238500086346849448876065416696157978348209767070250492805734084663818658240665487076313625007454650884481895313003307142103550150131168183509887813643167158514690622671090914291499615987917561613396792708213946097386839673929506134856613334153693434874591670144150245553934130916244367307258489818013827497332400698637389528956487377768876894439774806134212744660366406264444048187053505130249128439186279505397627277944610580617778896700717421196424972601015270479262183419232778319609409139674918343773409876615258031563378592389384568703346721563624233752845444841869221083462818827355678320456167853475640809811152512738028580231508970445971835369711505364797708187354242761804276657087677355201144475410235699773855680534526550451213781305808994455726009270067861318939463744703646391598704703730988616644536937296535093221762467990295722013737605669093980144350704483788664490173301834292978427643784518458447243831624581748455326143310708719496766302027335436628024212947820781336409064236357370908746550014912065729864345458364897648503678687459156393169868610814892532598393302057186356331466035967447446398403446344102499204099235045820311870656317990095636987256145221641343080150721729453002401604166728255471887223655014346466610742018857942059868419967183950690902088965772412507166301068189624966511913562276109874529026784694593187831840853175774497667136209134768380604471384934388435323605614424702509949008783843435258199614431701553120334675337895344612273427211343448176441217807344428034912281351466213135040180862992328776537513826227515405163745606998503353338513658262334235994907788898479167806924640792293529352904080779579099515468183245265297253677831068424534610343148757329876005866856722889542288018659571890493635480061809084905338317468021609508672245054832652774403743351340407863293717525836401555877568059036022025896715916041588874776732939587070340254548712380692620355565156785201567897200583989945013356338059892501624546540655925151256873474603962151995256467575259892113621523562147259422364324041947077718392891443076447251046654532558494441873188996058014439822266563745546207989950689014768856948541312970802238787846451774485244613685200670598927992271752652945591634889325527034726652592053203062219528238326016974887457651653739860039019744592044995640818593263932933303208315353164712443171210744218652029746847896103615084080147229460522880075396224649066372443979938491260894643850078004212673854954735238780162106234643384957022067598705273144160006998764802291999120572206342750124311990471116598169043906206166296400424388593704961133978647314322443539192125320914525048473489851389309793451001233405170509018798018790121317342181135967975511600879570844018810448515197096888188059099714940151698303667062010774591442788639861154084865215026536849451737932456886160197189320787795491321010957170440360670545880083282511703714593637131172917616495711784989762822022577629613752573612326070817668406546289340109325134374687757569467964911827690804477725988806080108190750753528312480733103748539038662758901356231326695577061649636395900015676522200738884995441719840811564559316507407066581174839327740219125340062220625066353516416042616777993291416121663241247199378047386068945939808874078776101863054917572465775640122597405893206120299888978121543143929593310479452091441489415815627389147050286716970944840058069629855415517136484914817959963820356293327377133024131231360056551788022277239814158218990300777439642208668034130857502389081733567395848798859499137968089077782492051741846130507728782632321646084442821779953656234311947996102256928714947204289671052560100774027360116579894019567085695143380309888914968274464301740435714272755744493779709655752328425412681347749477158040651773568984073249774847130239066720345329716423239506536442282601780857346257554824015149021815385910726916184498771098031265409724870886198255755400299842734858089110416342697497344586886763267943376306190702426269991977387465837964428377845433185857784890161451297220778868309061880491249923234826867879969884967125100588802570026689807332063448617080479414018171492753262529082682951537703974896188570327479587075070546209679749210768966309363684698801610946284850373838321166744788055344739421550383797121236733914171168727281670943091698905435815919173090056494157340103904139669970845504777608186617907059463810913589388233662631670440104222962410777451838838046448360435024106667412186576013548885565028272348460842347797821441247639133188166850757124892236896976573432455684463194980425922223923648674539265400922184502175171363244724678371145858576353205562533760448429856933780539661416081285845010643885361621350460611353884136554812863650842146036482200074734368606836957626716658042982795874284671696777240571410583656353158118696201116856475285718611163864257950269907113441049369869942107541328813385513211969167456603831116408360862681813064016324726632623348884712477348164309992542998494698127583371236156380958688110170000648466336834282824719267104996064676892931041674557504013220591775083207628375935656406735785953076709416921661537536981190215912612479616572034566594922223184330050517373127756405563945339167135491553562456701421612160159464036498154091143632363707246750563117412954709419794870506166437364137495390558618040644490173452751441193764555518617784389023354773571035875679458364664256761473586507221366612755495468743920230088598467216454860714224749949285927331673363134656073150995623018634465132345660228665284585006837367254416945367348488610494259794843591429367423980170015024218876029942921113495561298091891690298077308851776254770388453172517230006654450481633744121126813600744359954676755571732856692393144252283500332490953951320226706542872553946526538079549592302603960316719414993028512328686326877697802848074413840511965591165835277152329365104422060304950059188235249871657705998132049465379495260494297703879648053256358345512714410143596944411453890774364683309400627749484471083804461346022275287326911510102393344045882027091597521705052374529257094469606242438789331803210859961081385475676423494175621901180597479280909522545195521462710868639745098912824497365138816210471158086183927805793026715175452444700484107050705101973441456402795066669416688083455410172266503139166414269309606258377578205136102145690539161084442437078242588107140384733585263856485952845404557560958210611972003819564724734409395177663031708105621349537393031232790971385280835410353905422712295040695077311515215141052681706639194456034456320784025563428985172516534598095549236844328226998876061020521540705446829388631082880114447008099998322014733598959761654404981147338006532074842839810882436281268792374608095007565041583916338814812537054295912536540590858075087793473177058860064385474718302853397106546937947643835772298492834840043035280654863309924552735517051320507903550441282408856263477484178572118479618436835980748014398871870006953349931708970906055201089327523855196370811949702114969064112652092815384878946571274417870910527917652515139175450457386319315891410485363022443359271204052998355935271703032115337598668848537099186650223324744560130840529956978973108568140038438997709322264130663304604201207547064361724051643138503427774071513993093134124672217133897881178039161227410785058081333930657743742357681383059530935752020047435016476765941659220491139516592756241386036640473721800320571589995644330642859071173356479848940370443742004758897252908084357853430943115506274118072074838536682240626079913645237280355406676566705563571827964744431912218550179687862450946682461378916795484876002750207967339446190235318256827858087713734954199670667713825278289799114928461022308098314474223714998547245169966938736141571400711704592197038498290815275513681085079746123589753196956317939999974815235295287111412301029539339474197672570044443880540426179113140812350398871915002922356195685668953973239458534645638232063743297182705385732609550374317980803421622500557010201919377419368471114752846684658752534136397337457371576751301223735495317389966472692298560805743745746562537672883069513699010989660157366581182121302111982288971508596765316407380672051881496142161611292124902236054508505320217856590210419559020237507686721904240890226080115542928585504488337844311785539037112808549573174959116184654058134825226605569457719142358701014259759442805603553469681216388207525331886558685687725987081354608636708700672271809881022794431871599370089330832779785565407276223683897150440930923675424383126097373767469883177083776586415314770518452709808006173257792525601967306215499198872305286819481716087191755585692317576147384497959636570869016984726501091685235857054034499505516340006707207250240598469832905046231807291426602402077179428989453186590734754792542619904028618270822441374685576563337858812308374086597616138311621089210039617347231363606181307727924294637073332331545298309632521469555064739002360952074801891459286863850402668925526865756221151885956445061050590062315835660019888367748885840782958783879964216104281433925175822546934761798881296224951312306567177011017725201263222678572257768097729991749727715905813415388679046382186347533856893804162595923883439926244396448619276933888624354172421758590993523170200146142703566450877666365211987944982526202354643761378194858038864167670730538499037888588863673381841082282550842451656609287096188545722857855704337089905475845005957320090700553815344803672684976502267222381894910233603166113546649119882099131351010048667685493151287507798194031504006310510225733052278973222038189238552907883051700304335130684147700794551009503025818365259698904525700931186279142086776239799900027069459985094220255248386995283460523654355260766692411510783255166798111620773039247460314025238840543619191203697280308011286915468828086827979842385192081263251997194138196258781608768298641923649409190975779812806056217943413893795616688906186089528453335752562095484205395376700472664464786704593694794172475043008699417549014696339673692543347710180725082675185522767032523471597769541898348919052384537044005813790841215377850900040210680532672140653880380704995744671460681610174412329094358008694138129801284836412958703702091994343108423583053980735702426884815232516717558901775634779607795283312027459378839981796882576403411531063567721214398116541109033079137482416002120421723088698779914194006736236240234927677531123699923540205676350611548900414839918266955094281754480646773985651630559884975635044921801490752713652444058210299714428455465617732553378786030558084339526309955843497603129058765385731946825950871026598610537168079974984038823978340606902107463628092173817249202685955476913681591919787521500609861215403243952773116175406338050266199318364356747411816043801704376925207281218968510886278176736829763130654882936637040141299659743732180597143683202710363909089060779717170679914035178997893092138630654939963597053312400848431700425009167075359140801153552895340822492418274591295036350946812630045666453105422529403162364234254037525632575373392703080435975121983008160540922157710801196165341012594435998923960614139578533746789823223222716412309472946670905361650537039260446379439367060119854311652858816529935652255315534995933222349761578419994281061033889500322523983826322093661397428714058864724582335176195295772058011285383292306896867855969117436390245254168406562085326618892269456793298051337693630030571617515911260068045897533709272040930475795264454237230066418439657043308360535747880673024414945864359554026563348111536896476313014175960837526344612839446998190565883250543074585639576014287549375028658882649693605525366139804450252208460761220553591007737288558266504601138778684569037783751214534739005744336412111870658517391217489819758966638526982768577387655363511631199360586262584661657228480277237258879825799423847122165260827523466492704115718888793801023787752875709968744821855701658081097495135444640897294886910323879864265939067919912080069247219682032453450640467190491788179739358092949276985487997585018623726095943755530752021825268395458840636078298599050653195994587336752121775818925298677445326129083576281185063722461121039108681622248614952085867361010902053076937369612595473942219701452692537158176840769988178777936369332694337253785478692393889402309191188636191889022938377123097318482027849447833135644458714293523244994063009182392479197803212604363825105314339132107127775637993002438171562533343640045689502758716744829084314313725742492079890905927123655372092431294763674973625301473262095885346642348762099682979174863687352085253736164549328852796701569941213068959866524917259840991011457655849843271792175784329030918716282446276112868297655515786351024744162168009399176011217103684374145278791747772685622898595735363857550123322523565375963213404891634360924956589562596484865859114830857983247849917211320514980546702109700823737658049862508308614981939406627695173280411472680184401218379265801838127832706987909940964281984155507738364458309454130285910547765539673529739338462878187725356982807199327651755784720043704232852598629924681929718819002442631204281037126033933971217513054389815153636903155800971431816538716965206375889284230036925879196173234491764632451067388898400966567362873575628384624198801540560293516728422147944975800281004286488474927229031114875273699410285728745570314820472610014711629406357507744356157744453916739619265716597830352352211352586476266270244091813369793061751294871312783983139161450423918839784132102111965935710451617485389237495844204851823164100141785543806149034741325107899607577164594807153377437228762126778890718098635810092994634350489104869158140570233133048903721372868739004405814062788495716491181350698856928739894100985317703232607848634518366833962780083546793217267842866382191454319855894014598353608617578264614295289736590692201210966876805309722200179658006545756997966749327050965554293836081958207718910115839868656412084936257600437871531615587199127841468709857573431183307967226381806257188745345698660087114576060156620220954973498458724595761134642487041258557400019529391129144557950926756704720183986110008649035523883656054878777062599806339960181537042258709890248802143012339421683754927845962193220429512584478935644769696293233642382955466361901363712575455319189709426417913736490148558966905374617510307129015733425363406635688262266307129307197305214745507185353256381890469652837017682919654624313048997546890300435859631445002467330733758708579600893960365144953340631218102193155767889981696042354942215583218653924903548415857221322126002770191010210926139439762529937728473106804062266137156342507144016420459351055949082902640883526194874224485467625705189378880772323610309406962767176197144944613587884307654103814459018342427474660685734677327644135936440593624868834577115382367914057168783798977806363556730519460635446752497710043164212246711144394096138224981902427236790631964698849186268934125341349226103358925360878256513204768533963327887571362684344068510079951551359023533797355627396963085986592328747000249251628049861022632669743977042584624697811229129715410783723712952908263390823492319479233266641495112417603181664111295460649563356854808033475552559213647679203347891743466064335379015839931832557449599034915073310077094687901238664815408008994464056194608252711126736797915855972630349507955830306429373734789132451853952707490220272536057199046538077809272216693401157776655772623470891888799852155030766824214616474954087932669032567963976546478769321763244710109571682108370974468919238377259186122802387755537997575662954557604251117349527870653236062750357373839980104241688275424069846473985850158002793605403298736888424128096780763026977483958329212237154979345715404656889749211643948786251977577234856417163776038906344860052757907862947474349383058871187724206108721262219557525726981065973714238855346515861586090676891576905680389220139034877388726914241835661000967648978794412022686372914866197480517416151822950825282500990569054741382544497242582192772702115859436454155658063369386944896362329634983282817516686666981285203177943412005730149377731748981042702403934977554297425185513028415119814816248306361451975758675779700075087125972121708974142619640645873569572655593182041025108473926010660719694946912622606506644136788114566401403878333920274843611507758887639232220625494285116614077297902234605177738705131872500235402985766303261104855787680558773989474035272227072998880047322328767784663154793789170485243772391427095682971062602715556535536286527271187676895764693539534227222117271284145481989794688802743296535782570789415910099956179451581366774724738021362989843970010231143550589206796231216121329953727877399733874833598678397612941426050956283235442182414029591738900197061519075428319454244352512554304527860787562975571241959624458347417301384274032140713400072829748470967517615090718116484880995255941346339795808109809775219268066437114354587328037084096877776096754373561303721247247069812877378270278914099467037546373625380394126416334710693097097848157410024208169284335794684517440171535366849080071783462649053352901515413539594301111704472746956223319245906229729930088961700726898819033200121002819522911717830550519279419162824970027143550312514499459304714280503975735031183545020841406498990065994803699405779701047914125128029951737274542978024271442215658135816990871599047161516569144777965106375158152602991087173877009782432832310712212792415628966441188270802620511963617228213579296296555727100750142647286167495389544400249982903934701621251057217066895816652796195447857189225907933637234455661197969052151981179106030556139811777906102144988486333826855987167330356277628559477362437916611878226919259081589055292222681557318058969224599351820048756580704990879535234630849403392368467750227711566764783141078909193749396933408858806233781660923140038403962202010521729377034659049806291110209747067662270438150592900695062771838768473501780825925241910965690906637727833843686502485141113837343156437075983162846919409705815234113109255089750843887683467305724194168029762241651303240979669966161378848307618830685503559718044372825974685736494791040117766021309261705986632783029075318212106294825735333492665006631806857573436622199462359323984148172313198613702326756222798091495505603321359464216509173673595371053534375276781381132456472573932759610243126411460018916994850170452687473258903737674131181893028299309061819377391611814742642553851264730356544536513124349167134488958457496594156624086686648702069474622275869810012664145057219490960394023556601682746333202147944362109343091767522826002645548058686022171990821330858952998136546493688818394918468481122925525984036140204492193290422921316075580892570145883636748944173380291205631907195860392347656154764249529562014002104462497821309193585303955400495957994227356823283895265230718163101028443942677398214026558140013980750739173616579786457931106495328365004554518101858825567313226001932616287884920558631332656308947293441144344522654394433885265353849290504849606662518920524238658008230284156466686688892350947915308516813765258604050420894697282492362720453494422473030551733241418542862883039411671334798811441908693959634712202017466128045574485193264665823503086208674580929085746099997941307472013079417894195013677532401306979541296894207809633302979977958597959786073781945462265118400732440437024138412194638653136164198831995524003710376714821023531555137457249700562638499709976334467175944994677789472329391448567245882873516834037184028507689303691709232932853177012395717672872891640613339118306321300075946759560213541149360079359364540476350597545786597334194621801623130233340964187290835177889092370174377395000172035479056627709638194388477770480957343048591559685685922822606033363669349616617120601418038311669023012474023925523064848587174629480592634402018828679623520600371919567757079702615083537789418866723055955418139619463393539086812468469599568207833404482494840450515078204481742389037006153778139308220962220399359980543485854233150288421766831656940580760219209690268694677009080167543311057846104928804804272773200364785008817267702545122862307861053633338201104165963765035504294034310733594973258005528541232625547717776801276693165542836478188708171782078174544633549365213735561358602655742709155785318737606782079731686335960526124689855524505363737020403915991474148225526578324641477394341680633918693730509504208887741838630753481820676822425993100244168977475416774304374401527757548220021365715512729687977403285698683972664987422154370441590547109272052044541929221829809088007066869585240108837119686741176479022493636132670745442209293038321784304325893420824512861231956616448908186791897621988452638028180080207404579155599556596134059654928218772915989476467091028018261359819598349968868505745059111032382913905231981659484790812142231890648575006961443057500156379563213708392509112028347000111118132147482369100544156807207151759649225954912421879156654071489080640352697919344029479657895754382163726208034826593179298532042173604731562377052190957210523511977434665997869598470841253371814025662964558732241885347681573223998896737296603177526163096566837517075852981031525111093168385222354121674395908606430621791484449177197930856580600488045377390645610746039109538404604419081528724500784759410079828068683899915697224937599296208199468392085892491131519777927892507324530941688723660251542670119700006575217633994550197138970461135716500486244935945295551542918278589814902884769331800623626747102991147759923518632984468484891073604623266689227000339461980263958612222235817944330969893333135543062339424574098902994348774013112500053491862762820015375486364033016883416790933671955785668873268573269595177159207423862048055391828695751063520208762653593913276473154122792526234253347904109090991113987267256704131756301358271330731987834582652254109955705227146319023379422550380770227558888430399321828431101124755911990386707037250982783869327394714295642313372740740989745817575703113559200415092635128718679168356507265585973252237238454121070973543192223054970758397232290932468203496497351664498903014717685069018705696768026799214998606725077996536100740158524051066305445042420018784706672202705517453474888466174433915136712531757211199108716495776949951210940795909002035883280354699208678709960918368969140414194898373548828724520603236796074791848957737656444098496895348893299524393493827607755956358537452153704427322087065409079652372478751348697746171863613226052111655954821611242838314850845017355603341352284836723724867684853502105660859537612082376510057272399706099497979634807075123390041217529249515326055711341214879945248407853240318024943009389160269665416010977994877645589161306165017236555768821401642996772362339086830633702390511472192480302841702599157723894181432406392010630423017459520570307506121070689742147600280111384310270184935971543566842678419738790632513167686894827970869059490477915653306025720478432324784131884694948251302832686651123306599914218604566856530802498089299229914529402729033579231967549362924306771387903151822043431859821477270011237834161587997098903466804813019887203887285135992731660606111522568760343572958336917764885069297342369800670957306233728486718540987558907713913831555849749580549234151794617526706899986715412830879466835168582942851313699262946913435275809433631792758910278417512421489549334471438894118764606631104619816299016218440630018883151482807547512078013915242617209313871236116780227933382329039779122492021755177717207985434573163179639711342111767624499033988112825027496578395591859912471267026166359650792635010836197200648261184168516552550683303739914372010519390098515029067424006400184089702970701076865306077007426221868156071384853290682566267207090865678225381716059586983290973590312175076140284107142374790664588972867411936898874468293777003378789332049840311203426694817643113161978092320936272307735478160774490707807003993752543445704208319441761172679619717194949012055710439074752435555911440897770912941325020147504069789565159854263585410742033728012973314530175702013747046357465413244469582832932267017906504032400632786145887807239464749856334551446418453044830300380992554700015883283204289452787895905670975578578132934581911947833539259356862227293369383594833741953700837504554145558437013352208563326892329613056071347391750054089608037366810809826186124567875414061651835296119927484628776650297302534710289685060752153131376965767997641554270714894067961631432644086442346842302552170069215603939054588343928856973560260516426783581422014043208509900839527693819903184176999414958465690627196922248110513483785735668729802917130295106865728318956285956291122348204549168690887763779879146148899577054232315568656270971147091322961163781886295385373644049361230126642150353483918021880954034211609033362518636581865581299212635002222759966204352082187682231526774747112190263935256926289989619695081803443316058062639912296876370654795292704333001287782359040079338945742259415488685161888466192178981702893339553064563840726806125790330647256027198563948110206539610762101651085579562579422799189837799995211893367343645779796690930063009851688339657659654931842808151302158874197894455685166444721752981335956615937650379035293613113204454933713894771552147106846023645604141681300949690382699972298893679871438964454196115550233276920176219270494024602476897408824911157634619165353019941536658613908821219665308666528707518009375779806475244378138421963207903839263690940178195315658774798650553928429516009323236358958243631370093204007373701056956527913315361129085597668047222760901540098184229474290180479461450319221873412645733575481988290566591889971497822950343405866356645790369093551211953354834053096636121466157301994335005179545056007259372395394352233696967995830645960159237808166669246827480761198708216352984199154374958943491372924547022154622039545928394553183958209140561250654755551244749679479630297500839840088019102408667495459601422981364885295837141967712561864618866363354050871193776233550943509051380378218900609093722469551768017159378019111276684763718377247355907942524311819963978988492181783083502007974183473201909811022789323005747281000505620390186985436560311685391779325395628198459851906572823846313794956666896320043486026277973663186135807679139907785016715733534424440542832009455783260301176405615944489316034757587076917162562018171050463810050537371126490289822593780135158235856430089473816685137969750729715024010118719182131907239864269173737842346456129744782139135740470719524468817408720560123460708688579205384298332573254345987074316597457230881998781825829638530033272322647263609387077901604359356393302328485719145909611616328204600753680281733261824560157616327718068818915123851536227883156329096182950756931932923094156456145394689771148092952185383302656104967831676852510896857966592368646871962134848587078851185643373446126394245292061397447068660192307234642727112247003098826785903945095074803734486972189662685167269892682363977362962130116409720684330394663842589188219223968975699145190000819508670828728797119228055470878273921545566436061283569970552164886773845889483537625612931147839493714558193022982489739434316512836177470242547095390889746243977500088118658729873825332395780347420680778699268387436858939378067274535664394932942169766086321861812466191785344177242730357076229873863522150419603170867749818329323528154253992063826242296962737994349367897546064803900751050175575960013580741084835964633051079262662986413634182848458221172306351208806432085986171537942195119766055011556901491263089235791514936738109064690805827030737477363246712844723229605691116143087360597039400025178992352411466717974037506927535459276250384797279591549695215264945502691035654460289904917856996616821230689804831999842406161540157187494346903816353110054237375193061438961543691780886050450556645284467909936632671303536586638927798031762692006250302252000658853797883239930714307925471734587230588401091393272920853084774241566839939796377373679530092029333201717309357715583598083053538066601273772778262076300261678761566155900952204710303648493936102997056696836338256397384680679254262176684135525637287216956374241435818389031035238185697685401155498623517466235338105383001097678675446566592440087999684525260351782020726417441553291642234109206983894547122990012932379279987000236521019917168552993105530289305725686464602453454055949095685532984105019155652858359479539376759776842775732553431722461014747521885492113759504008097706154056031012792290868183881094915811118917087046993411842740698397711144515740508786379876180524496627233608563775865288830978428628785206939542470575417163846573856061121485820925427476889628716871862643789289701101434421229759409847344683623522136846532811613792372032186586547851858884162574067899532853053455245783410688091539797023092409163377658968145217364455721593477194347396128091225559887449276003094381901466109483447777007936136581733025225030192072123975405199324158778278029261069662635816204462448559142764184298741852995797098472659696525161721181909993347108133440333108100496205257999402973117118689141337099184776485514851005942201117701227161451968377626550274793488465641739672973357167547302110884924510133519101944242121246091829831496071315936933637451823597500296897145558343473850168212752245703457765519142293785617723498822539991024247200887331333596898702999383054192061500019056664707017492470130032046578696681835066230510687232383123445138051935884151234139719758083652383510353901495780789420308155497329787521143389007744465976811176404206380763214708181674319129069960602869578907840285544684859802124136151034043421410905932406354362902517233134835012807080169589622961135854635815849082094683027456998038223386521939972145325759278087164407167710699708917196587766863915734419741976757417816219534971661195529138967908994733942088274618934977293704907627306835057622701747687831906544868636125554808011138062019075347948921319980943514105159605585309258951245239425219826628723563754353996011479488675504385917177493712068192213866092779289550545911619327401768314736632609763776894080543391233393121677800541469482048042249206820155706003128308453845966889824791196838260513629200577760989476956065285234052865315570841336646439779401671321770895517603398800236848337514914419012623877771751994147026027702895108314825832717012998372257101416738323370667172707003906667211636118411546742517198630674341008295954405353288085814173404385636117049242764052968077766534131766746933641825678869628799677636559279405244341804779070308842503072961807564909926554797705860048372710910170750657629544971404911718576331789197453657233634929974779853345054262101857450259854424124095670164217950435028897656632156564982703474644825234907384491918694496260234321709984578082190800353233156565395808156359351684574342870847361382904062899989729085880265719786034978101379658400616541785934291142671989388516044320115204074972681325274986197396002009423051700820658917982440048479784967745522809195467579985777490869872505876750349899414000433379125344783540716231400769292595015258651402386121963584777486717804942157750811253414392968304704229236868855186298710986972614599118010949237333976442225215533244407816011749305593167035849294567726874331762747075995567643682988542622548468309370199127751213045956395131877666568031447095622009777163328959895075411811492323608723707666578304662778949335403587624449451965082635895310968674196637863805168780751485710784136333236052540750961396193518405256506611341428369750079154152969284151757161254627639468386402255005009212868342088401333950588655246922264876345588507966336803188253536715910895280607874198099011706323821726224394354190591430215960500724120151963444745749241344739088806166692305757437597313115778921918824529657682864800162294671200791811702350217683271237882470260423640995014134647889967725462088233669503120626008274074317697541632914202881677306478457226095936861644778241746863003003730854481575417572691180501352824934659022644001557469507403396317965361254789753954904241308172607957358369481776968592462305676770260215714626173203267201616297684481575827216929427048377184577665259599448396530735714625925897957196139385553986321488776685890959468970450134919949874473058848953912444695948517113860514131185126867344271789359407949530663969393297818906014734646967320215344264707843394174997437288882986342409444540110677995852673250354022129990981401416479551784639293332087650655424458211332717898041184403626353969143372701248911981533990641014738110520495479340595527092668114492296910890100289072460507380523925062607366056180952253849994009528185240143391575310895970751484473335707940893421890597094784590943453348058864026120345909349271875771125323174230491053184615377382796278818793754858258787635215223391404983223325016654163381501178576409028425536971252373722656919886714665137168747601738342088484419663740496291086189464094968246380597727435823983836035072057752908287570292037299847262513575663204177299661789096146700028351251575119516582900180121806645663536241820653268463545380689081366535848835332966242002875545820603293472047666963382069340624424411374870956837856776589487002091905547030426317941879028592976816600870345552238739012030912797428691081868764802205378599140165848269867203310312589427189057917931233446053189277675996145848197207216234270962348301875982223088338021562617782387936823805526329134359815991170401220584413995132962272619551423951927878703127563097059231371751452170530321707794291311136404232266871553204408968805863697334395553716486964404948617817156003915211744894781234576878565348313161657679806587624599891224045431171320005084893263562528984617809585882574034815499317124340622252607536798682324561529216357565931167988568545531149957093995821499589834742502397410188350555873457363237810065339780212811534431755611991028559704060428080835318695599541041137612869309191802540734718965586067513835384036104080443517488987780893851793458946380530975723035399196481542377911249337981385699018491359227397022882940559375596634295868204767804153996917715182390986581597877376006165980035800326021286932779748050854455800635659301900427106935581251807990979796765853263330440543193210785398682809367698098746227747708212282849343937831406921960777732205924890545418312466270109226679224329868490155693789636498432282476873856680914275052529351331227332265586944110532282857212881670784118269753023260695080560228352487170761986733635190277223565821745774806328210343899156247371052497565019192994479922897712953121565591546058519522915724585491454670286568869628409879327994751708023386419262426379829363077633122247063581442930942740663580889707084300910850290057630816594968448106379966477588781394890918838854623657084558976016256843418758346323049401376100120689006293914739034716519858804886522998436874315394538257787031885746808882161202669893324089014407472909765001625377541444813385920795472268185320787527896187109137570933811770724987110144472654362456192208680651394030424922566994795040783151816319980731193589435690446828136899520929034635610890822822061474132722774189282509562215526776473650178494661972692849623878459980063746947464124407377862518334138227555172641867114572654185279432448052815286803505834106997677601940664093357686888048485524312319006644169815187620509414709151095387173050053095730753746273926435421030692682565347004031993115722228023017973516407889764443809428304054249695377686995118616073826094612563498801989513751454326724167122876937275656509952918670094201705759457376860827695570187814996411665915400643672924769816030131626346686499378427318728686229464795548223038041302634836520437352150853402613277757081413497460100271894936432734297133567893553564994028259179059036356260690297752660235039282537840545140005734293574382611779067136171787654493409490455202135810949100923219046166768205872792894616887282347895295037138484564860067155975245908444603600066783067085831308718523589823744122101430179871137224863661625199724160903854115444523187976005944950610849395704422852216357791483504470423917158257724487468603448839911102152669623657709055022810470576581548973422690765474018960230104853723341366986589916387353602521222758628856054330221243821668248728221062863112407187530999673891666458775920621542423089279608901263876572197176782365208993047130031505699954510541525376049641692867425011961937340305024412231808791697322573797256102038150728793379059928279960047439932773768859439113817703018279600789686299816431654686358100193128313294372310301387717454353595675078872797865501596774659520594473719294373388271639718061570464789055828668849003931967315307628138105340697271649288475555367537031956160434623093369079217452197751771000405574723835084356023415658303278619229847643414363590335173813151297149075590294902531110212833297780545473770627034797705601162440870710076914131510775580412395223525730735044019992361033755944475976496191391391227309836793984480498162889176927898008520906113130095765392806592770160474390761364469296632578022630065205291603480678474373063647703668947946560710712160995876257494350111115000743087888314553698402436501564649022911499115970070909997618577052352675520189225029525120801468406252885130016902047247216433346080324764269002380514368181902601830414973567699752122602779948235339558771158635721354813887109976709820555645201120631129949648793857960635071736579629738638650939388525474790593381517216068572651995219691930574863164440978753286184233347273421841829315077065198883528539125898753633803746583887745373042912373150956542164714134523219023405616712764407047071003275111881718807410396727362057714067849505154571817280382121751142688906929932098962578607985362310309875347057204663057981907484922071603796589066788150248356079296782044578633820300629354669073605773934431610970197412430630439254512962537656152229084726353772921546120381806924327474754420199702405926833815514557641121561437885423718651116720292181823654997504680533673454363231253765849525193589491210466431485229296436781511859450639720740712582612417358966328359108722639634235403497663339090305285895961058923490459970063549712581363883269713508059686973930752391290979072826070677532154676003402098266752542948632834012882476770601616877981354518677537172026752728307690399885176154501294061758300316261230550212848837961732900845751192857765973374758247960873181402996910651535650343601673616310707330860408275977378930764290876106536870696299581500180342525435608124865207847204877486661757911108621118820957154104571024817437708598135173512348634927863960183405693871301350716271648655414199967436282205065970591963570053601195701238359289963804786137340464980106507771863615087684765388023638039382328518286325770286775365327546773222601877207685927007330028108968442687693735959037603769964468300620528544332049090264170500941121645793975023048275566671258612892143582411884392812799524403260726211461550202688456800099194833868211435977523744318440125390941775055120568854392168391657898455629141366251644177848470851789185418639701014821503423819487380439356870709340028403863282417785086887427863011908927272669699951630055512739521093848390629761207340060786424330421779374180886358962930210678216368721742691735400881514734663685893871246259083800977119947747260831131865423564014907073607669943779180532209823430125143794636938531850346847271851801458167243283681238346084049787533215079196726217329302134084998247132205925275544990950793725964704506287210103916800205660806558247606647292080695058017270875666818282859867757712932762136010373499766528974555591514632976652107742455347841834529393683251275499083038322528863630327582460327998500287371182571878329729236413012656767517992111414751550839321593267222373402879938544085403775302047492022300451320103715971093535738731715007674189273286738431165968480997572387529818844951994331318553530760741822975493679398497201669328186039718514216699689539173520807327318069670519771080230191095885378757694669133080989014262291827376236932810707686339498050153991667611940056117057608568555954825679066938792189326360164358226693423499474073376200175847183109613206776158138882399971471737387942002791613390007575005853419793517540459960255125404300730584424809821892029006771513102181534977941472445233158482029740412676700858108516053960898615322526850022073743914805688010628385449079611078575252721216270257578365159057400500328753674606642768533344468371628957801659476757655003891151624877689254363724865947319509837212444391367052978925415660865289799641085662512324808156836846738938221261046482073299420788361368627964787175149059234568491079949529866112849268875387753783438519879466833120145644421778952549330675689748012324130997235184157408031467615095368152824611903030768059800918261348205498632611831934647328411389387371838651350085428239778101116971251784209255601313678909005840893188032911651947931258771377148907818011556293502481951085048128160088750187992083171255729727196730116413485864098238778612370880783822034672025384783019632799930882998643583015540915106752534618544372955461236918441272002610496419659433494757227508904703760288857744448944764672650168924664279855216053367267760010781011935334303990372714908716136315174436681858785943357777267355845417989505712524011340045759764252337879891156395074783277059947393654515464948898465488345725379518648425861793069213359900888101423238831884890950537342603566997843662173616736113306051126636979700503016491033124103867029113843133767132910495883067073915117886861527706219643842678274053583890900896793779623105645217770233569423131765516573583550866602236702482232983809648272788439051423127293503516414373917835783625873624521970156655581609822066046784792864292350238514608855303177922514070022825672058968010136306606329932241341132741471901445158522725083916484554850190063490605898337952472767584449916088582816620139956458054083950173895490312840446889023872911853196357586529316595996488451028510718646148097047366000786773202957298345657639538585163870713845696085856061315580791622343746534150117508321665501338314115807640206007667302667562090146994728271058250696167250006747585497160259014524985238207032976083138820352653422949758581598349932416840813862106673759617147535215644250727176835017625295665736963848991186347592913318278142628307918409081154699411455519634068577827156207565247421876482247165581508637902311717436188464923904365122872672046472532523076573464160117072873514056778975904785249712523694382382864785849465562294692208477671502074022906138078947961937901645409459540035403663431882089617997708992095218627914473695852358340460254805003951784978011429136860239381275650104476776748900077230419350608746025638859776999653251052022435762544504418570079754799780589649938648693993404425847579111369441730383443143585410471206192590058408138912510518607639025947070581515779868534252032639020312673252604853281017225032503208597494706435173944863387085500529853176080769458218926638233280569042503017245103711572218203750656857490865176728413203138043137542674181714327662968827959262443743393108751236171109294272020523143041081429807558075823130987504204947889090516710860688553862823431182643205141991807210927412939596722490520665050929994593946118653771596041839670478680212421202229563963161173552253020767234271329540774725896591326692566341033545838588194781485679587251207821350687875638607151602918324377021622198820526293515401088041530817354594273065826349145842417998692781720585388773778310579518713362223285183720017285830109469924188870527112018087301128112475614550769006640674557698901452538476512322107560026430922754573784372973707341638004830500599111250530894549383472008689228223808540837260847784917014921513674831384494251369097313117608602115555784251917905245556729775369678932399848686778150631423061726521951500342048010925954580522453739477829030250792015893972639665493329553431695626238326014953764469734337612058176073407619239067862383469736610656602882024385761665641214937022997863050212242729529882949149025992026090310903209901767102696299246137857434810825717168892454881229732778619506335988259090981612042939690674589476221658282145415300157821605697964305992329057006624004172795838820949375275125241045997978580795772419462983663399412225908167246013892079594044520383566107960557742666713839512034411532897385549324767647744599266755167914462265165323406602558139885665927572142883869185349205465779573284408666014719799035080089318973645022492203954825686613116863169268292627049461379317904228712378964663923931121143416134707956572853208304163831434680866661424977082399212457585263042389781333949882458982738874539188353657926013834317881738044527316844157117981564557149420957817439855098605472263929051201168025540221015892455371123277647750421430564642370668146730029165916160282220557036258355087300336118698039068567520575631325204068812703109338139917612966156259691827018572111846582703126321433046181230788954818940767721440184438027106242563166419960338557216067976192355205336894040292440636992713555954901370960918631081192984120623744232480216242223762326521027779905331766760393197825000157488463044618085944671591021227941999511899056916930656189144154825432715456653539356252871868898031403830585066113421036163649473330642358198426052089086811662907779935585105981858121085810578235440554617735191205941126812433903256494484092153780818267879690323815255091391873348157212023545029662618902925471027728242862934781021327033337045489316356974600688244463256160753957395895681580754773708385061075532930589977045545812874971404133425548021134885501921206390129288178163996391481022975408311908528500580874048294007493071322126472385982687576760146543898070802813907254928771515056389610108007730156635025436602078975846018915122700037116930141147253868067103267625408151770228708849338438758014685035708716635321948661654889794376784342026596612784886641464851241576291956853110223286202164153622744158162609449080137537142692589610584330439173698851523591339358025781957046270164714176947627677343177022204364931117871910397438698827481552132014518225999024555840252741976369940490986436034857758112697393466942517930524099661432076358826413909498646758458166199086386845059142153034460565504680629252947057475421448271587690887635097286976635139543550393433917615897969510824419730215512843135694792476595776232510991791136339033584250531446553560575898356375721995483129764255907665538269966186018097284611239103738203329261689423454274628469018406148628076108604428527231021987541864823804510472537945861406168530623702700693448568363990388667719607774049484390440139023655925247358195394974081972939806255767893718269660703667722414774098332879369344107625466112296815776847361866241247817983266807629294309436736560225838575168432486920865380645119793422251088551644136445815992299080948614268569193807292791661157912558243116866594694444199043771943084435217150488864281023741573409403261349186864594626010429450283332821487297557134243918484874522973718065258325141245438817613999220778627770699198737383919114648700210202957197079081334899751227231904564482381770704322142539841666585438510071246990122599819226418987738784017342832386878596089561118342789090817044386430645093848408065513530100759722598242313239600293365418918767327583424683968263435139660361468313379063081325424449405595380285421430164285399667536811826394501963414697761767664905385436217781424319919334976730607227435956227456319185847500457100488847480078847291775879863092647861247225408361252277336156558762588243459171943457050723508030026310209322289333428409329453000580473734963147056982491955307961322549849944590408333133679520396335468676866408658211742226330306991916419833189571277127600174139917244150365321123451983631085216630437771293265536469219363916204042458300289528157051830114957499403539815577564935647968810517525776653287174177494026862921962609281811198472434692835199438204509295947491113115240503375055707523147562095049185522420048972664317480178997993295819334291507465101325991523621265945298731092638821997162614757139205902627902364642570032628522688486653233255599961887121135699200287435858962435534184938798224573021050934729682148639602249014247135790984600048041657513011823819199274298879716261545675421424622264086396843992483291244596251631518119647583079235930766678602319210002980913209141868356461734288002146740658182757200559391881814774415812971154956217831790956293134922420859846476394260134193236009961577409506769312643114062944986111250866502776241202848353113713381014773655770785996154403288135924043888303878723996195594894126982836666778484548222075450474687205481978729714185413742976634849536862032901864649069295603247836814341353661628558791988611297372242663577517615983513514394809645119713451336885458475393921387657451419773493028675031808049706133695892540789966168848745351781088266110103508517994510080406507757489288145744687031091137607523662470269502869620105838743802624231044346220603279986213419601320425152656999787772286315127826997878287237996012104399854358270414814174433974951802241322420959212144853426923052891888486976774586918218808819693250710508652101957001470164977750531836979995827043554261302469660094095087758952270970364036268870820525442646650177246651870504451520303202615358517273923372036808113034504547745510015313299955406211758769888182421285114509554496875625916881155345733831880445724001077894481563405448637810974157910158316111220281124220586112968441760269698675927693109629290798641996890859213398051141149767559906897833501811534699308173575692089245766250399091949688406070027700977232642725272341394069425221812211280890934545186252492173027780012031968664196811031350016024466103322486407174541454842662763879379691300088301646612907818928427831306189810560409147785969138667523309697799567957019319935747870877914613143030177726410559937772334505393034973181965804799678051389423266263740301625930419741818902097230448083945518187315035084949268145516780901483407173575070461911682459340288908203022794180691950517574899655626985764621843726869901396503597712323484448092192875937985472561287309120056921000234100846030800934308209800553135213756516149179687815925137645680734906361288885211190748306562203529432169394052466955691977915943114620515717844854742558629695047797404244748523442790935496311545354626334962749802425876231410493824733881940983326573606208598419380155390884143119605134521958140446422051559175577420601798792776069055700221860888627660194745805846057310125825633089214412416406472687155828257016093791360845496189527982085492183166571453323062030301145794187018207701575418734310245929359771928185095857093840636254441134678493419277572101595055409708140562302702050239968064144117466963932564276257408662408925444392133795242743999025184755238555829446198445404729956603504736451898683930749832576096901520606596844820269775751402026808018140333569134710161567791225460576650511276287114131529493807793856609893948975250281642054658696058325863648446651592994735143528494676307552304865608598501578512250377095328491466238072347559495098206254645923785209900561900815052369095985157909038651434650008713342129494888606310099065781781518077082948731709081324609007684419659063123992752693808530539908827137117337165531142200636209981589493617551304312336550817545605934522789926977256478249777699205395749427194658661562641136275073552346837859494390821530442265606529640468860328521311594094859719420909588823614043851928161087452015878543388395087775121580458084867816773278434153364993192267595901979818549910832861926582115202691208669367452895242805906014360446023774989232450133288831611451400811585384220536394379878630772695233309823563818333253794122742009771511403314199753662571593419856734806438360475872164487352343724631987034157664329673211626190148424626009074550215855034474112230479038033130718309732076248108283941401514214343520447205580760998390775791466120435358556191072039949111079093985349279894380877849944885125636315791678969685853993654295509091968972604289591754072278951365066749677633011770839434662267657192582392432643323017745005617907786746901997214031802466845807748573989480577342543502566628034633355795200430850874484553305359120410584520476082924332399631434775424215131338573385031832761303945617451553525542235557019200359789113610389180226179543582280461643806995580792834252020755703264602925668406218614561306345251103278309119086563754651294675167717836429643835535793800615402099470066044886392933895897603397895400568901430416483091912931178366358468277545784540609190549564773812148974475457898276486484200931929193352733314504974105311511248876644270027553447085295413928387312017640572244484481786076283064640029475937626794172312044294624320222463949402252305727251232340588491985241069863437861957711288809029568987862742715268087440374902922096821876278744778965563616503292898247289915819304531342610558424603817430005462151809881751250589907521228646760625560893141870894346238748343192902913653572223723606025765697899112158735332586772519659563365600445902497800823366665456903854195296255606245645533684780608931476459003005897868391055580720615831651341467960606845649827641146939537564297092995200540916495083997687748372531555610930611138140756825880494524841129248831500795494469997013638317469792149148676810716997990789734526846487011454359468012410982938365278853103070025156750919699815085384549730815890822110477501524135675935200913734449699469563362840797422163826109432167624749397758940151055258826214706776365099429476369463397348885605775773259800195389474473873050470276944766207276880194911368497630445822495471551597637099114383281764209256742251681294071634297571502057418037837608028644201867939292121086334439380821706519194185144422951098577693243589869608284119432024021107545135835992481801904716464853291996802682531691163042360733563883137755427786811235111836336243284283714856640961640513561228017729117552602556830465898923639542840238686903845322085994271479008162852367361410538916717808839416266701597969547019101221998981349996831476549309626139695237331303162198894363908861187012961528126527873658014174222739219348328073150894510668187946271237860892301659288405711345882114211472798587440868820997580040661327393536912326682987045515817907587386271996185666292345905095913923760695388561524001010475784073457602242745848575920395932021414353949558474126001169527797406164206818910120855613490423903729876618504827615690946581391239837100703846090929860363796866181849082572313964962673582094764675074900340253472040462019941661594245528259958024672927445149726111428066921281996653399072959155047269302745881092820998312862099660433312251363712294722887247626576984438265849660125949643316461029255214646541948697688567322303578886991426316523593042869469784911942661951072612689015401837511282743934267946740236986190121108209802977631180211092439164041319397873191365895676185914822649777759914604078786416758676502777132325576902115653682191812833400449405767373055324846347116369888751724656611443631388356408273711054678637861403337386580974506918109510727306621290357876468690999317656370480551984431809769657603483383597436782631421751562365163289790558573324608333742185508158502982178658241782558610311241951843836665780376541896858182378489712695223768421469957018507126471540126631600847331511306604301768972925891404757745719287599469455305813626416877725386304041449367449251767820280063115543435279448297139376571039768001777236665329482106914451913422522241499736491880494882828516604071092104005679621033339462944633892701978612996557333044462814595779561282083968895163843580232107412044775695890369287073696346082815070651575580811033294620619694317831543530985757679694614476954734596358912053225180395755404366487812760040106103209628475617420850947803472846423899312976519964186987568523009827685137134076258815590379017425484208381959726074476445507673632981771350479866024249556968489351074582363210549467433415721234029885526044139252025290618723029852629340976850859414219458950750199972124871145125969942876150702173176414084906994952034396527860927438354192551070407034176352626407568154234567278893060812794171822397438179558221789197838187854928920010494900537054272431762793312260902394506018649315333227336787417027114145638209019909545948523661136015912438086114677632287508508317185282660265742592877542204703442414445813491180318438722021183782508360559543334506553654953618853949946244842964421994232722851847283558139203001276160061439472606343531432599002666572257353068207435084798053794343043833422854933445672669870163519309553328421282859602439746625650339879404198636881666251020042791571001540427243977951453863874255789098571298177368766145149429126196356603835252547316702956007792251095408289103550536807308222057481502818393415332494113024302512566239453400190667850631747059797565993006597597552940110822948307871979470052265010090339932238339813541458902310978282773880518569381813238423637625286371314149756992911994769828325260815445371657999199575961555630991100304406506482119165879890786139861117925430038348043169600656491519491131838183772369192678822340063354807203478737050353054751090598263782882469386788691369537694647256315658665397396544039697128303282004513938692097817947030090965006203486277977011001696271699680100556038272482785130931658487048864469380708552516722825626540497373705498482676448334963662451595772891425284303253199423293334443351493904067975852889676693697623288833210480218251430726098428824388955684255515837242852720995883900358381054730065842212349915053841145504138836062355603790792341485848708151126837457243769931916002269341769514804651334080727040146148493308058386138618890077202493290535970998413279737056837313354078482473218665758537152907512726748474154470343499094123246863421875400567118062483847126588387660034743909711136956541018290943668810506049805740213954350195544863277324656799785863730612603715555785001707331614882684046398648126474391469091481864996235867333803479921144105489015116280289388242180727537847853436731220993036022873211845397857623542921385053725660027239720526577413133887533684258239720469203434096398180364084981342101227302690595735670369694683702931981033629682636506233178960856464959007010143852122383330600697067996928559416976921049793801739481886355715581027110458143986465244468331751926284636647315757623429995354844435527916933316605208277919397425621631695005469737198357000085559872585144419759416702056648352998753053877280086075831063346068801393337743144958756360181766956047729938587339133651049030369760787360733450641588540887455722767056467459471271410678551408822741406138379066041790419759314083507102753152501550293731510090967491389900460755879118193890044661568888960216780823541369528882619879527296412273998676931578709524100134329211815636533957721270341326829521113775266328770605194714145941783598532009406107536422581241129088758276770137125996393121265414276594755633872729699049659167763878128745451912176314602324642068682626851136861599671959508051781589979619907625960532562184637669397945188692773555752277821897133078301077609733577835328611767768533934569638765742672794718680484075851113595867593586083673061246501117139440317444377483760378539290255301993765430237063116682919234801951977977434289552215646085071316523600209407359418254254054917495320197369672915859202193970743567858660062264090092544263668505926934342503541331850637516013877700045845154368252548967131917874277764005567510748398762984534562696777962529123877968931560827402809145003658997561182015816067046935316734030701554400326505598015337508457223736526586000362618060977839911140944970598236363286141512748577401741810688341529978871213168911259723709300473557949921815360048782636381474006041115388356155930698576150946851226224859719160488914788099474531499362046240026176387212801979992230091314848495485118206868429657622024114140855391121979368029659325488645080664967421099762256221725793850854371543775620474175759323116986297039120710344220416270665808182749825834549507327277781413719307018879887578254152163775384350770628494054668926818888692166085821962966473686235286040051659828950424781329766833858235235850064063751559409190542578129022832538329315736940542233819334571948253579709109535429834034965823082336784846866359494606557461713818861719097128785059039900281249261056361867833325484463302459248913707150632396486772818908135078645702687444959832717956532597508186236912156773859071145094028055223251316276559455261445125374926609144067312242305042932210964886438960767432039693296313704567881906492798532624221482496768549650407290176293825825434672317144904424371730458491302494119894171114593462153043846905029025874431674760343401341494949153460970145954017393999844352012923036218875627643889554297111623354004743815049259686999996838839191771930227004880592479307496834536174138497964877923982037677262321592656481842442253034349350463090144553332076026452619337439002086323672932934453162040096252789033354208812176939878033832177372015976397760861262248801549590754897146815750250634988914031552798806529441174741142670998787624491542164572191255785116613871364592036765287923046974402748384122634853750807584437790987007141685694266277573662782860138846451739126440785133531228943994995226660028467487789462321577284451797024960944831894277499311243282534401351653021611495391895657277109747971286006278681689561330901109676845410945163079889011070917951998688590706287715418581427669520801513175559490125734324093582240022527556659637779938452155656398798196134869794265846887932144906277240137341732374049621863467740299519443035922169012605163885000870677322939482772779096495989799463483040239751093678231073055530444788204744792353977702456160608194418844946939892262638609933285114149329642849984911544862636506392642057171064196034208547790907404654496713555716645561434143132390112048852176610665190389665205021658493039420268951419052619692172043811423461211733025195687534605829662919063306275883592817630884298585725766953724431007975374084168531790679748804272867183610989219328332533706624778169555882437535952851208694801396885655201203425262119397062479058354719200457785871995369711200750560044362813411936752162297251966632683771970524017474112264135409237115105675144700839625461701160847704955945095943010996810081207713375384084815698912238561835093640380551175929293565567660696195150625716083188010461628090240334560350082994554809271794888017928245844762508257292333185269693784604887035722621587021212836496490407753307135477955508131869275739921716626578159342494448325695406276759198143960135316223567634858323766927113089014245227851845126324221108231565272489561914698260487185283331873934193419290780667782272493402033887089198936543106920617520109011105964607080520025394089375852576613650633851518931573330850978017988384768328647087307671503582470085094767680681036921012799138230512597763983164291226296519826257387066011403143139945912550490776974674247234937753127502966768871761125457677336678926832751417932707200385817455530090290204380958667783213311759943949652149912314305237707217627661882954185808477436240735668262810290727400172653593976399031580025013095930558658709506357979158711430935727542905925988667823562928655014484423769725900795379676478530962583000202416049034468661574412841955883886187024565678821925610535761676143333203341841233592949606616354205073257538056617714282503124756435647605005790354724536960386568586461915921586761870427858560251757158802367006930263879850395038855871837804726453952083255955963727926688040112308858185432084025098467093982422000846700020377959270419999816634858307466184257043277170646261406408548536418769318518044292808666866492622677250889407164130849390654085488071872391848587944917462353361204110168107892277625168463610672281746750973979015782343488400143058527030044276658307808583520486861061264078340991392044463085662819555047366996699027496652411893024574349544889126583597481533407949887074570055794426177633417773377471149087648611166326454156198190174792428435368522031662523623890037967912742168678457823663590244336651027979165037127696400813267023609060098791945953485345710642095146325833956923401402080183531809406753429972494761772634402662195796871085888059687308437174108782534435196864714672689817981377316853262143178888381434324028480969609209034964617060146012327488888289055886464670986792787850843264604469518658538456163159925104462653290368982629507258014012270009290554396842071523183564035395395368374275764445999906278718710785318408492884435120440605451147122866394431527516138130915760153506440784298898404047541299120003116274787114007913118090163361370431454328128391161744160007400087526850892884688853684790739453838660014384588132646657052865618271892433627070446795258741388938493096639085346530354593436990344573204032152057976380273777185735886841060857158947365698604467359682112765094948898109132395321904432686677171418316322187019130374775167634245630789292509798417862523470208656923814747278598813384392031584624135715658923530406191545972842265238247095921704077939975482895442528054479009551168610959426700479156035173972872951586580847455083293561302002625618948072105302133645805497867858334103207344032987199913826906386652897863313347750470688296055840830071172099372651599121923435239035470622608022010835513418064001258842244644846804864564893272915690511601819078029361546087026148526772891882023817856462802311160000834871159881387752644978203263888907628084138222709864206482006913622971803671693766826941508509360597452362482145678485712561548941272773458069620122574149262727166332609313775575908286545904549578486579478284859831228988286209201463437852354159688718548427346534273683002765958555019581331087296804420233205767389797690860595675409815007884603549129903541894647584760932261483602793415834146993877273167013953732894910154685373920060604464390668690838350113146837241128734419006868834255493509159639205253063013817723724337990134485295335567014520426907615217793691418259227340090201574931494253856353201791906274773070508850978507708941795592251224915146556387954065218669019528612495375004552682055618455791393593999142158723904092552087580967424868126322237985366389972792422360674238925378100723242424180527637714219859199208267346928646068039927727325432782214994101226682418679548799979991289205861162408335911251655560018134329639881802679329250364056805184548248008809157678926552133466458506545393978025171585980110298530574902276821335004131132504115774290295923494064022440951502906627168284763542170679185117437157284162141350388572541910112384743921055691198263905663367755349534615685139093718085356264129672347924621967692624986016395959370244225030657647288532963451212476323388433113994948893254413140976728019510761365820725748935827419626214706854527082348300896637681565104687372834985411059250738642416673506125545750456675789301842053062134351043445821900907882684648021260743931856912358135463145099885887201272574436934710881395339087449543018481366806889544881964752531463526505209186442194015915581520749441452726889157088934503595511838681498504019923065884631025143470582216607129323075425672201980445049569895206299905615295835797743915601158537098939899034499699372015445627161085980510368978505078578966089965274665734959709327407002339934568399044347128561470899861714219201546725740337397934781355619942546085083204797405107613288445137258152119987825909603526390382134521235266400954051326898332613928952536712857122242830532222683506512035158316428385459461100934611684992994773741035619616434664530473308221417301746658079863140496758957325349697376702276078386698022922313280212468616206584224152598898217774584536999505871813647193997615378480792278086794786601947851926881966394881362811508461228038500673023956611084527895845499294489093999201326973952642260462837919588632910234339955061999317829988147000690154672618527178820681972695299553617726657884047136911683434476949097708452848278162843237927597300880240689831079120467997819571593223093867962281865737815935382306994237607184784397382211684943985067566435915171034006539489782744620350165464578249830124529296872405804562686826477563256244940469828790503043545544837515570717617969214435380024999080275776920619580733370313464670576830732761064340124127084760770509860808162083379013152169382849739882417092272488032182046751100180263901578384721092569099169932086376101840412022431798182268382542009162250644386220260191544999532538955905376149430554096875280641103983932966726066814427093212112955909506916966161215360051266454411714137931127054916628774722504426057149105207434062614812205186674167471552966008488896632568418578210492038500883720806777762998392365571585888611205654636397682292393888166862332925726150614620028852186134661031288289375211269974225352871870997278300975207666651287717128951366207345372588081162248251907536117805564810078961283160258774173093065674976876983348572673028561233608775501907637336357778012667548151669689854343146422383849831533476897326401461423002728119648423805282403476683652092536097588106701509213671350250491924358419464101877948153332749128602774767041079340260723505147413098233360066370067080333404908560666952280910390172769727882972509703295511902058969164593036259042489523821423687453835346572970866201039031216652004767987315289666615509719901283174293114468686871363890528853684577161965965904607135818851307232204030143204351169264034407854552995217381058990499173473227977598724764148900645171973757872931627805710911166743256107859003919451917095092891015585061906499800712782638464342105305151721383325925480882443722353495398427259651098011072549604366806292329236733730683059183943413426524489479013405182583849871300833798281776333924728293534361750012699857766500276152304210333310271805296926709269989797322539146648715906074511294568699906673049140646176586766378056679654122300808713257637210562278463236962745773658349735084974085644100058402385653202793549675307263016917459468215356848719786961209476820337992600919040738706345563541183576485075616264883067768996219544603991216356154661689829488690879743044694256978497313641606064144341461470404389083804452329260710411512943736256592473012414384658390592658637142807702812611176979950929407692510713700463802944512974058986037338124019594381504889494560273892758320156353375380080370021797034821835226808308320407412334017228930875750914725689170341412845773586380053859705883040540340058020553253365633650836271422922663535352186599268714888703298847006280267308083112050897542185828609568703473717634638384516159777831554503553102390706926798197086021221886433027902158650804992213613600425789744046468833221969703110924697487899113253877768066892549181572303248108056910456184582642305689976654000732777003522753308638743780243399517018509197636470267811215487791514540623030489149156252994094259177504796188798624624916974239030396771159181777946760696131797030361680107544473049765021387999000785821432607134045779208257078867443382037089455719474611988856664259495682922587117497155876408672955247468546561148299398844178614140166909358699267020876433851720275584665835831329240822907320357712948591314796716570768004622092702029569920621563017158075695408553784101702475843798346246685142185140595330705341956716720791038278228598515892700851515048270118572464805993694134387530412971481794153740536280964668796794873032071982441133930486932942405377784581575352323237560991908713401716704157864171845056973911464300849748634788402596288209671200476963988249206048885155949532803886936616931140583262415970133959697610312203617970124466523631717852814110793840886052198558877620214979504280383264775088274247616623154797685974680331393812408526731513760903073295640633841232009922432457785117549724816388940900998908421568244389902072442661856370535011647379561744583609572495903175613979262147210319465028290378287472716527787456836322993126901947923656197201832794965939580754529479634317235267630182217839638565018011489235291110362838093167096762964552245393398528775354121316304604478944472985285306470033413366811165040894693856218577325190308988401925392059231055663482209226668286894358510254877992641062979177773923645833924861129519322336863634209429488285103058166218585683516617973998028041679384258163030066399250023635854247974823768917751023064061597046951741476135904534385813056466157135055104206972858218908232180479990630862869413763507962183300565408645768068213025219293587208243678017164192135139967272264114328920134045072751319503891207998203488505678510460245823867970764741592834613236265438534524905731352281118290876408943357521839873353070586586177193380451489706266430020339394399329740035951709953661336831364699818642650671710449108504376371049292476760589096347880742387190642891346456958018370928606749450287797364578248378547759621735291785197299660084724680036507040797481233791788895875185826081232190780493706191438823081382863792466330344869434816664366829580529852699530176114906706988796406244590243433182880257525038278870920041857140011990318199108627681346913756704484194515408909639910822873841439878316752088828670361955577584248014324675611857397895804520310724160464820047495615083353614008951739405037457286315998683663057715669977204874362699456017188328689718993868281172711883696708765306108441925892263324110273514123050973850372951531148993581970794846237918318747025538638181115310965184734162206775985540717712863123192709031166689030522744901362628230250702941884892182564180542210850927479692083043826942926818353532879645469447076159632829844947361583872404549455680882078910616723204622600425215412477186655903555077123970769939239482148071609542287028825984693942240206249881146280908899833018834225455894529629254158109253809408843809105027246363772150068518920750567275171202102085332159917956858213339458493805896554017192457509632980458808633176611300931367496105820730392900857944686915786553365039996076133934276843860973210864908255675169566588725979725219402266840292122135157257777538325851162744741788671920562432779307291217019401596926814645118096141802378894972890215785995639887227189778431963908297660681233344236656457523942191487915294509915033629368005492676504412545177046708625971266289573372907524398641177815910415574110351843601625790674641875668795854230845012382073183961521295848979157628966947419974007356116309996757856157285259372582024928874625419107677221694135554495784048212950204639818575595826804433629499289954624830822684231366308005918580816126079839184263673442477918078425811073991261826333918774422524996119920137578798004759495682775281346356661241196418755827066579322436886852438008256609838334895278058098666310187066168444478240716710539226361568865370063246338882946094874698640557583067098493683182677995563748347985417364999824705000001896271463485263458396319527425288780762824918299018229312807744294576038552597628464303421651710177777894847985453026399448312990378414797349079155162518824165608905498167868134055256214220703210999009732043900876226149013631312362216928789224729471405068145410697964681367015327727008457795028839927910587241702583790782267962109993985064670595582753780222165294112485645680372122325913860298940141214537033933197180066290266454472460366469782503893665642672742802657216027238255082692900152176056881651428486067742190209775261895296432637764573704971189596089575016606018732962791321989952621958196946687044378264665701344037526435964229977858309489695959031014989068207202541728899255867216155054601550100303167787430856290577123866352005191478325983671314650106116072470267258853661179133345304617795604156414464498783921980223320684972502977127255681472889229837534180279698937931124848408814121510628109933968299963736046831427095782721365657689925990442992468657956392915542852571984850773730593512396996074141151676773914739592479227154952711601828996969163293424655888943832518444406531547849241435519182302575790725595574254430961743486038003885764947850054828008139490431553144676303250752047482173018847388376509807260838251409381835454766603478052530367480368038570752419278802508844672571197873562307217794405272063076432547990540037729635513394352686892727214598968781487144464721198854726707911187186336491660106016125928743597758419423499926836028996497442410354768266433227702635173997754177684881750805708122684814118673875131271944383312391870562901898118613368772099183789250104548612742801040125518697584857946096468947638330052868136967286598460192065927999614863921625223888129597707586485260531128137949072570859653693702217728879295558521662207273868773347890472747831386758613225595094895606717017288887116685062879728147575324924333165854001432924925643806632516697471887913574480579756380104987144193325369266269583894074182466908036699975253305002392103950784476107415954294262386230283650144541260426152273444078041073845430750441207539885540873897995172495269849100594830401305240257327236637820832890319032915822831557571597277933366847585094110513281696914063218125739712248480288188368725903452208355388258942360348889541677645551561494271497337494383964336335565961910050683318978960195320306609514044083547844823497438194370724690390775023655789325977517837389516459663973755103833701453877314624488532407240767974269794103100012640772089511319654401552923318943555793218924846214886800009716847796971831938474604519302040950987232269238811448152393567629676550031615952794857983153231955011206721594688440700746238130820495918531484220230446797614011632847671619815710508697712252221062407776413439011870712917894380047781834791678822767100818796310599609460375495017082260060059882657026227967904281971990935164842479244643241918511031978780987485927082693812240320026341307087689105563718883732359074889799594756579172431631728252558201858452342841420211067030181776529917651702602044510110165693779590936933338427117360110884583892022518500412709700000913961241521040649677121152120886743518180807580973762400151008088762336318259140733521531381430102117571463849912489984400553434810249344067349771099834473897736627322657745474316536135659859160912954325545250149778910861938556358695999653904527804950985662895532629747130861271267366872341725596742971472281488677067615204547855228086707027509103974175925584888061102759565634514692753953239512023667952715792091371025112008516026693340047397113294681977332629812928795943997581640215312277173848955327119846566967127204700231186171137910335457661549030560401622568280203911961947311758451970395747400753224724008669960641074439740403384727313035762271640621801358414766934493931668797229896753430755474996803293071359826632702083622483688619351187192373334139947868015049925678200210295632491074364891046507619727046046627343287041289304454218127334982368087616003336817845891103655531473611761546310121548712536825603227637179269173595712201260782791961357340481643642475496025999397176083669206722729493927335747836879820783199731786927464507590959626623898149745616830515087450178880859701171365335463981969685029941664638374317971528581935632843510828226951354712943751363565371423442559352130673804722644202930213498253858658986403141886115539588416576946444780623699111321148977253618752084901500744966856724216013028383293362065430775626473274289863813085302906730759602538815026200991434186167526061749717860399273027788241061979511026250485781209129215371590715060948910258304329351558721316368824936072484776051856492539943996100859154418222613441628641949168956323676625024852250261808505143384895860421800328195067256647291365719796235496308160954797117240871346490479947647948082667973408755879310394335601792519325565672696993456293687064560412500683710115786843102824830541698194694285360759612104104827534405301743669948833226399313332992427337877365955672137980608293765004718016945772398684594838761832000267227733889484873212236443466568709810436651662834438477753621611669964830326630871333280363291922272721892165335251943784962986155048102603276329625869242392697453445381925145588632596935786580441947763090793375710293897164244965952848828670663901277520665813515213395519271364183332844344032419841915500328358282720712706515888464807244909211767315880879000305905499114605404264038866082268204904936055103241667524392524000606838784822762364771253431632014615407112466172723873126858992288096772898064135292069776083619987702272114980316945714933158746228986297501246645419490367609225568779384612918933039866033163856455161318069217826874391485300351361601740335348273041882355634207862044725237805629691433887800300200405751244438984186075996447610131802753495754578828944970211875731557713131759456293400075562722397189479782467749041018886868734878874304582538116991636223862035957865125149045860933568731352688849121582252090461082927705272532180307558653615761277923324037034146723579591083402427057820593395956775059470451912217933478897542336504890751928682820111655303277926928851249448751694182998098709514210770495953182859945166140271920876545582601199277707444077832737759913873649463367066793073269382696794828312001887207872559408380085035937284081316403120614739968624053695966352449795655003826883979971006428697942848719548077729657311188874814244231644202451909228639318380852094915925103617922282728740455250355187205957921901750551436064996791752065815320832237234145540082898640092554099526083545448951761565578399829245060243134828618977747855049553071215858831184951445760062934299956267246864661166110983210373747965654539046624380387776889878397107819593370466752888900336143177714591306530782667563673355772091241810411925574993013992647778084687120760418637341551375047418891156546734398944854596931978870299945843698847527715990704841796457985598123798368105342119691234568330409276168379847972879716938948727384234372344250082403872462030816396113205708064503165924469892362020715395557780877957382826808649829771777830524744416857921400899619104961847481479576328265352787498666615955727952290821912511146765524816520299481886715264725685931394975545530536931154308014811209295692545332324349698776830231557452768038721031362606913255703789005970175524160636034394649619850185996630689444584023660738799206297435852107924076492305590112574950816101727472668884427581485495142618625166721372201154904854779041726139113622405470164653643823662065991044954431046625394104471970139035047605112279652195024300879861942029411370940750954649029323126326921849838860813494086991355433582804204125291360510327379890992571797703766317097190975642757429977739897433421628443571965641459623225848292760224295872215293143989395804524454489027454829859807426571497652586125860042156427774721109895278339839777827385624187471879407114873023699909124213751211864264121432947292993087216784176903052274119986233844979783872647486007221757089244843051646163055004468854107363785438003885068806464031093891049307338060120016315978516304396229565414450355130484445982820724759549290740739054345623548106666746899128841420987198302858871313099357792917978883398534458684214454241909289440225777938796495802257859882057084288106280767517167125744486662194721636059415392396460798399938152990072312539717069520398472637060985520870578487363603392978699637044245477487159146701435681947961696077947289808509909978356913087114696732651777774882794393854371414962451656412003436682024225291773952838598285408439795223536028368289010071449803615065137710447753731965739539766030470579794324514115120981781473085607312451010491395706524157292563384154212793691894634841157810954083807086462686511252370297271151822611178568742881749474084229638680077964222686918048410583328975327445024782482864916673499292893753490549202018780596565150310741758047132699081848471277113931411179550648090818007895867384138809865778250616504665464519433102475410672851656409944281937951851616694048718741479182778759352643500686250612652764626180153198014573529645662264613202737063740472420526294042939329271028111201467259521412919652583234127423370372975341251347735845653752662465902259934762615038647911640694432082353886434462308759171072913000440745633389083461965260329053855641094098771217644163052637328309876846382170627995999788096347823648621685059402646928277054621510538063296799274131074712833884160287512598185199494220943592103311071838060740599944959945434376185734797401685245607193085672183130340237769628259240751255903092842171413690386758867768395686102341449150250627431482195324647625540146507187646770702886926000374923003962183411761129309056721791575375178105249823471393656016208507515866803473747706022351339110081188066052401023088100798041192298117115965310460881850951955309906664641945554172121984020899410086729010745140974909053062537558072847115501711245677092904381817051948079913987871312307746509751877142182843382739984659071011514749751637493291192018430624105944847424438339197460080939588827290371429650428804751511212423849687588378589718869393340100203012706091598497515142966793642839261650158509729384109671529924809575314394332137156996132617142713167760385393993408126128592385425983905834950261629384288884656229307823321471190626274558052132360164341024580773967741734898166864050789710431969003641987970594249967877584695957570155478977257093100640670925238953997393304384638097866187652983036807537218194625243184008014627800292476438344240009181711200985230215364812010041589583297304424463934234046047169481052611673331322781384638963325214595600537459284900977472966530161634961212128275112203825630205320024220418170728530743240457579579932883096384930105942292394508196970316090182855754373780534922168673606784962991325199243892031471472752024394363713695577051338067581848526257877404689545460487727583406594432457146055846264188044216400301998590566621787797260915956797900638873436484630809934892795195388806409886198934907039407413133093912519256113886565534636272184893493631294736765825296370318260608754273402192203103577135473097994551921496275164901610827678179939842578914556444233520579557931146267536701484664565117587763254119773032116336901863183443490768402961174474243347390497646249597030631667136789166381129217178080156311798102493136555590567643599951623858080838410012743772373647515988853586717583388236656171633065210515697750136050040790624054336680009472678384154107906558529018069302832983944861324858854004754584042469359530558045981478609150446584884401562251206032820826567208566277441307626880696851464669311846486671082764350649717692227530813494909230147751765110129068931050839948419949633958671837851633253986549576128445289323126398520620070533047210982114087654521473381361444086865650928814170605023184520806560084556997344547445402874253307446149868129653966394283624866300492423398722788317384529936036224695217518754011432423730344196351590865768807551577100792477191467146970921430695684960911310999041313873981153709121644667084671471244401194131881578456999048857070149674789268328109749539950205842634855166425329117172291212801349574046396144601355196415847312625079790140825131756472798812291055200241174571915031481308623182033652578230834818839953750822794094524229603677910526067418484228881042413498272967915562224117763552130958954351838439544191681906836036524466631269701930560882853776426210230365298775151693680896993768702962856751432615694333449348872121484813497467840940003161492200299249480887819896328547132613968233690693371315713947593390876965651538259547921926631464636151553502099667237544364525792633102695776130780301610660968639945593430130729214314687504946781854907558639973957414675272482830072229219309619784598025069560653410965259535753862990626649751927798198434203630217266878176804194770265253158472764872074742171206116300773867919638367140910634146620475392131715539764198997398792817032393691810969182280501058185217183151732639404935947896534982524639497164036840085999271138945546709502310440247001289511474417530805658951824249907908618905509059202294323026275825643619715937510796042173195976074661305605574119701427843952914460430033895375122592593431761722212978869161955076625631725535389550899596408828497358146830456849989465147120595913437459504272643520000295103132255701592941015509755033039942485345366874088472005555769493057425483845952108884294437228009210677438861152821502961534418385007678646068633082623355898160836180429847368745603995130505624796131789665779812927376861085609954126635649340473723334451800874164286247639133684883342072065152410736487609164840334578425012171786182200152655685707164362347223460449234887034338528903817174565616945776929945026406860006373569335387605529567058367185734153319521381984948535475644715834815830983472657868573956770048970139540972078599798817980207142825882532037152299206417835662202638139366584242947531602301462370012250118234012326782607363818558109741056958384907039609210279836242966708278943008926088731148217175072185917083547550586052000267205876329385899584046715316787435813387136179828365436775692135480158083949945963868832510702812103751764895528053007831492412144949385312921756126106157220240766797365513076279224010466548566247042771090083861945290885950990520250869975110190272244576204279114744657397831422704051790173141026376362745260837400524189547797014092672185380818467389746763728162091082309911608905410463765637706104943636504693740337536297323384903009230528449599549498436547951821757698623060889288923645382639971948732821932439081585617314760626348636626435888652384826144826594087478679367904991210520796506270621758138839257033521417175819843221363010702080161171143945673977875727579613719107769971103027335108907821881913783580425906378899031972870858424231834024657105345572420665196788021052451817603912981007635308858966801325072940725993519367820709060034331709759660494036440059585825375307263574038915359328920326970072301025556114561031161298938843269345504130592914051811812127208878556661857746193820640512085920572240640199324092411266110352831081603647875043825229544134722922721101464224952558743945805692041495121321863315657575042646415500159856757135067841858003949623029577970720329346541353222206457385602559838909303164398810528752173921562837406115441060210439131314645243395274603781053471104978839367698930005773252013579139060942459796493912760830489736829906922409976813259042556653117024073471127372203178782561275204063258941811647611072352308556546051140881396650898254617438011159775242687320052687485951145291511744528153320880105763926022142266370046437893992335052978655817799768743439066503380726331248379557902963842874673056714789440545711194260937518699628646230893905779948417512378852825752600353334385416595464782798046475418359716001922855771075416807369316009206681506141699584600543958872744793157746203235713848296942982935995722523355565196975059849800522272881013097984075593299482198669195510064726663132075775842654704501054027935726547868653598111539014098171316312109366857625721990640175654311732349740460769315441605033948555456541800966385679358784102230843816905918190182814759908689182078629081734055855785994276630498819914975876042573097943941504274687472334038519522448013232128712079991219171238134982263169316732546425930898731285198445115510739986135984703068562196487222265209867318865317014621335348087677377917413834774156869940338958449187023174472603869375906815827382775868734711034493361210680262599393441794275026793220734280666947655428988309310340833192290711402969254879783255020859619099691457390840403160006935863092617021166569113387700625088051514194783074827361957366266284310689874422421065066198723882533572240864769602160280365070217256366757975450445553800899606330585234740166821081467873966539915307636656161322622865492232848250075072989264137902864308421360220577031764810845307517796205303622170617643606619945426650678238134885846909281380913990716163601149862060012228008920833972668448349986544397134782375762863444907627385729528078767006456529145802714628562645636689402949695993422073279805110794843579895754624904962678692870007803937962682600791923799356519542646704364589889910130500922461716283888114935611123699379076577276553136920523377756044345472852292822178929259740062227250832575995641181624970452218057907776337146329235161495499382303910702134149661927165346339353522603716604829289499400526403516584870412140915486412313164397145345427167237089362679781970252372201618301592015760635676947435135733461474766078405440577590560516832418358006450970977796276891081217709661090927784999957901630711599167952904954966776589642165148667420243792416014662959288081242336210245738907749725125435244527720709247619897157106076891828872221243095966352918456381189930338340402357431486082346391960705290707206646785683987684305986932215732035684032015083461790493124447592770155713802931225493209740957751870695299077868655148703208574323270489553416629626342925705892763386165248310339363156392895138982160629117839492940969482555633472908027449118198492302861391145628918666453573635147453341414016377162128718012579882460007246217168540597082758976396751966200856572884911443273335166694340024911144217224936808849916268991049909793026246451026245929957779393571600105272638757433635144225428881161877214408014616278259255627420676065413611984846435523566520622987520656840177025108592972443709136896035431367792827414984297836926587962831619805401535029801509033629404916531002405659277199725298556029101012920650896817891892148050508423164689983768510666692293118045875191759741264411300561838509583890757596779462553312115242666555271652265356277312798489671685151282548694468418869201507176444511755658133606397278319587318163986245578937226070743135163060888259423209903425888343358335219519211348973335369335564898830690779375565029468945026083231589045809184829102199401203352582876869499959919534858829337818235893016302346024320649194912529649855999743898265901223886053974442815410426633176900248260209051028073894241800898165255668562673366775754252996427920667982385777544877997916845308386499772046921084668253588292358677186956691951147773166825536525713579588534659687164374533705933811942472111745649988606850498374660612375804773274155151657401727048927864855730569446165307326391190129618743182138786249327869670755292866080966172215444349690551706813526738504488752747802784203059378323348865404175729938021032657916418653761911584532409504777267149569476377360151685918652659871283814898276051669009753493779681540322349887369680274542455083965644345924736891719425498694297820906195952081291576191045236981012500934749928747383858113051174532509696302581565710352706855687752663866494290602951272342670033626759732744784220444004679004028165594669493695132395833373098127048067031598165719690104566988478760805538839748329324701383671455024703770628799417696774831956071928101900891990687918437432916844864049572964987462047203672520174125838450589892403996528534438114817172925727022622287934876459255692780048840282903596218924554488152093684398625638704566971312280541129624657116236750378679300473877130649334387025806107425372648832758727610451146852412744280527600980390346241370451116870253508835697353937883773876375300361624428288403353951578951330570333156165651333999294253549252468044678436933000627334642689796454082007080899492715353041054749645882197240063078679077008774695272826916995662726507606706646938985258633787271436767864443619758074656903737987771902136637373325040388019476986356812480833265374042071161530239207802006242330604804562506484110079888894236442305520669459590322994393606569197363959072552556230104744836093699572580428221390099010592485698032692365685963212350532111045371033427206229817429876535586888212917723342630085399508242601076935876839433482873588169407833422203245908718532202559300893056444367644833787604499562460494774503040439556037278498065018587930671658481280856941725296648390627849300710591044512504373045951003018612898723176896511508020370781164292392549677666218204674568392277659011418760860436227985051205095638349957005683286278815812583884355923417698484751634278181163847654122183685829837552162239403274935754837780343324792490622464149543672950855308941329091348042473474925654407148465672950959797467707021865720230511547036067425324018250642516616753369293778523820139319238197673462151921983116762165984998047097587381309062859580483650507003884698458975811092269116279791967110932944148445403524900757601312571131170807374272476372095727455866870124706809489496518434772134144362600031570845858260154249992477416476306789918637692577130834388075447716351804943410986770342926283885822735892234068464976468111849084882959268802758311540121871345274578073838684989692274064215676850827263620976677128657977381898461346475234999577150845209246247982041023882162492296413952577192106436164093926495809126336945782261978356301082023601687561445171915328988235305326015026015654944044043850775705628401444315271742164263934015421661494153272534189984991806552214804914546283594634952706168854456683358952527906826750366514410740837915110497584962827610779073279207570729941233495313698322188591050249313431332587985872627510604244835553619409750453256206939438152820516582466871313783053210517467100797189238582455902773751019791182446857917048731963890784709271915984287434720435714781176774021680553632444229955444462185307289990711532395645958407804027742823739580442966652814448054554166155614536622917238639393146921843451833487573228841992152118061198734566258648322945588722007649826643659750522301933925553691711480650727176326303979222743454078494385312748295903329633398029834448949308015355541445922870196753873614561441257762748937196413468769026811035723183506724054209455272010583760501088692998688720419760987590028297911507775438480573133394646804969848305571550564047035597202192983612429182992436304462111689346967623801729505613260300127789750549302821353606985092374374007552957266020290878949341645952972976781357353316871786814596100049182633760882200493135389396062461411203142498089965950095895387944993069515146571999964629174161128988016049996439563577816603462444768731399253289968148631346746146664004978871740110344389097037940230682399257485931950779921994989701016599360140114694366261726661921287037174382703378494108862562570516288629686139356096979222906238151031600501482931028992747825736268055276004493992523470931946554855955589465694161038490558771553920265339823617215611972429111740084239261211799467452260826059431241117200267517886798022343412191827034420028148680398263014807464107573540581804659756914019483162708832996879168091878315154330052788705653701131972515569690724854229967772954108618356231778840578192043609327815636214103272947792168609104396457713677947411437695561852009254081824909154036716135103923578567137040635255881718606397168942249254792952522928585462007108146852421267515070887923016956309827575375080736881639795946261318314686284601438297007468526864291261438853958658494804769004553693486917388264037688373613063301001703814248157758859364615665543540660530602720530891490360652399962799228978030361814666750079309739682129745269268136942918668278259884803782306744585093684369266171607464906713294767969458575974974433189809503228825716593541430659626401394335824925585886332101562049520356771959190800269374709272319395041499369216275026659054683056105876693273412451838196012349408996859270203476634448449556577486676446549066402727842842498883410777410704936733429227952426666514517698716998319395114378259129654489649814072147357446597176271353231861616598418410549221238360628829116221842954076102162872659442402998450421637951609028680712127311219242001365720583035826031798423229396682978010845710464438974850918129319336879713840319718596937589597636670707456071096275194534604502173823767297252505070689285913682153750394354976090311137701353734163784633334550515409583973247062224754427251707208155940589103418027227793383759671856002254217919034478538870980113473997748922790528954144400762922598553221435777317618005411295833467753388025757192764281028778776748648818974363126959976287144012442524516327310771638400205368460186792380981643427542330079442010209246366151906095201281216963653418659173524821655263589444360652770110761053818392407921892216430158741963175095396628984900243890979749660089263810216466568277814711593281791092203763006319494009610204224420189186511364664026234472036170618556859150404329280477309367902944160987230889787165065801734054488037575469174084355964953876058129160768879440187556601458531379280844699009513276730644414745514577417207302808547411007197557538198947700313837509544878473390834565354183164140131514174705038181370984688653202865023371386523854916541100497490193638375871292095067510452082171934353958625699159454369036202625931657280763610236732050651542872082644296307494687997153855454728891274123780835944848304244442650470684247140895521645468058574897999405864752995107714419127927048412823015477084591366750575675270227924878790217272368140903858603469170077655932653765893781098499006022717473382681385234366650531134705715739931618311496597297307850438897388695895618069423483105205341467815573141210616288913292603340234321763911150995352116740834753822114046262763191563273076996531711891060592848490386715851308540382282337066796118544758775539052816790119436520477832541376490229166216953023777365252517967886719127439126637652262150570984097266915297533079618530448550941953735627978899354199240970838615841114727819673118303851150353876122509739102451542799187061839932190122768838817695847509190797625033906551578682733776702271610967902867486754544277387424654442025758736355807019606059321877211236104692928078994914586864924032694674803781000484049793122069350752651095481280138807057221515647134889629753374388714539757639976165620873446852281068493725258657441596077640670786423919351834795205232537017453632346338182328820717074262663091034832625388763720484488039472378999480478075839516251111424634513410126942851738108911739826359185470917340824333642985955517713401056537458434863598723536679013643947121470515550489342447594454786657563201910121852528227590830090471092989216500971009305504109097922357724630695615913201795552075554237582266518315440023949272740862601135089242050425443518446373578159711131668125359902049247332514025226572328808826829835967486077671694341570354483149305742467011678799537199330004514623217628178530813430229429986959208005296270804862820690056053004036186627844156149762376724279027425563447119608764622503051902662290476060069201363825932947551862727750223460982828487118492888260274505637914695481031496453355829966240627188752694207664853654915521925845144312042575728722113787895815338981650612350103111407418585530371898177218659756290716527731308388134984266842930196503839067634009549255520579820232479527329539321860341575144971582250025074204413661907197678892989217592086278192511495670720882716710620717609434320717007995011050309781170148369852195449218170444909496933116346335193241940094715406080868868494974717704216792061704088681041790170116393088809356554154533144411239740070483198353727148581013609355758206507727794507812066950605057824629661548515209922939903297949761092768225675114285365480863432019595239253872790936108948980978276421911615364667196448851386685556374752352567410981801974768099939713378987537591048259989398409744847898239998333685150427381086142057189244086538204611186185454973930666941880993018389387079885408766470925329601246744842810768100580878214808570595275505472219154276291863973951817775733012285422278047410015981384168175672482403204592049998169460059551576732460337542286225085739579132362788861200551535182571430480680146528609027246672756854424492735106573596054385685261231975088726508815596536310631010548398647395502861897652660598413355925993995956882722959402597360812139183800520747774903872430815143552880753341464621691555686228320731014580480893990186850482058864769341058774189435168807311130782666939965414356586408113371925085930491917683765885257781658828313714870542027186808726095317239714361982829351020611914795264647798002840626123841410581082152796083558749808167423581233208098651724219106207191154282974760127645407844859370825454468879794296794899673921489506976573664957416034637258221730526632328984354009368695942706355030328478689529620400404874388205998081432648275140237349502284724483513476672615879953895240941195007980813699579369031011629967265841476860714255665537122644502500238873881498530347430049882478600414815630114962858036881206088840566214065776703642267227798313716502055052046201417703764007003557359593402621328042793928600714068841665301882088945243436527516080155597606004901853583060360762638808684512223090459613519507371723194324590774471552196035951524539992021192812660572220180206341256819316261575658675918087630075818093684001283897338827269613894410588202884933052322931503724130801206729720495489609175519744228763885482667139623616865655827694182887958596481524926374626859095803175792541835429991300989241160626335502283064704879033921458551511029030057394060650573670255307532603402526377550635033587753460869509034995001201729122591662130693527342228300335174359368352091382838012134010679209282033929515317517237661295128531622290930951488208031300108477383500351616914584222542312992281415677293266123465125906712338194178812177385510049599386245190348468509567792489570791679213441753911744839881120523711115298246153297001017033286196332015513820127233551565906327528575503173661189428312042752673020184813378062290266272059316450425109603467894865758438947333546789145721821173482599734963648186109424680186580467011059370935828113233420005582464598406852468470765757119493941256170711646294970412896244707436821655305207066741168533312480861192761107285316342939631897912280311032819422263826552124516501284701145217268806863711867939266355592825572663454982175957610568619590214725979317310303057076317671463590152594417810872890854028932765580527037336337689340216423544921660474501653876905856804898811555901186306127299321982953277044769088642576339023963730901465411946719101561998563881048014807109089678811139304688420347618482405056038334505455267409781129481888911778886539224370478916759707484225830546338385876880690526276883014728973939956601249311321039164007816337750890806643869695660389821071695700776545556576239050855623346484983551504746074909346540748018269118936496315472969212703482613965806325523935913065012084625218126691686785357230683013589650971703612300633485067966135877488724455136449526834861849199635759017541844176496245381540831658392548639199460937449539345532152013891191033758836179841864117296881601551004297334581341577220670542352002864809466764080970387509005427894213610774323329088019224518674212729816585376294895567828299945345495255126356787379952049892870915573661348296808867329243255932412852773481973438782626690824174398530242584729047502348637121838062703419028882312082198663402314339109128217379383979127392312613985055187860227750503901345711853473501883238777971936457607810137525539216914524222619784636162759984312178924489968278677401865672410906601191431852124925673264412886040092432054734516709806515564571188585796480479196519936523590458719358262434923418111553750959765803089486882381607547555561365672921349735070715698892757337958130814163458152415430318709511471621158517181878503133377126790494460763617533220548210015209119225417384129321655570271167460908897073419278896228940661389152310701538320118670244165813049657793689136611784944076125011052207461485722794861291160549621466958558129310011012317065813763113936970112806554897770474059149507100521299009591042970129936415099937518525000844619807205783276227336799565769187372006029849998016810307338639910711211057250277870218548802028235517214584504442085730485684445901072003679771862170921425580529997660597112763369299105858692441986661435518988701059994804007367722191304722224031567926103619861717612277594586114228930296484553632351627286757648450026802684159799423163995434013281902512393054813196824774426297487125855074590146174737749418093240677377466377355319610378932384727326613357144772104905153241299884763798734616278126015729529746788771364613917154919194996134622205206365748982838019962357720304508044739245007029016403975298080008330729204617132566051281670778428864574116676882695139791266878628478774905658270641566775904123166876370570410236318161221818529515210748646437600746668419107013221934908287713892947738579464216972275193884158509017596425715426913705600294493088167947426836837685536245521800205401578903921036327036650814792768200641718690923627383813243740475016222913430758318815429128367540137130851886375238130838791264933078749629314019999258237836400700925463338929198986431133240857006427850606094667386327134627992794457525522651890804632289135531987145443249752376480341093911554461933344861846777357875010208716025110993803353704363728072906003120375979884994918306770801231238351269486951746605346292850618542481734762251376759765277081053715351054011833439142465392868674624934171140608070165454814589311679017721924784910995023198381804277676608060972638076099535817213437716491781065857510434068598049086303263346017154537607143083665666186258746726748145279743804641249394205945878663349147809097996773323020235517446366673985219838219164437830214756141767950254917242073577268675181548115405625935344801392575448383266463696902432432991413965745832701932458557990328088874383961413953543359447601967630646688973778927000661079746646872827307404659841458247297611746472276159541709885462389064927027015545442303493588136039228033874712074773377266929032567697935762168720986089746955684600045611371250403479800237003297980238257519323460730980563919267007131736362561400297393739884291676670441154622158643444169525576255241756712367267663845742246222829877386453068654100745803043756691747581506888223137834673412847114381083614095097528254101055162908812171670253388371222025374507500093625355104662473471472913121718972437479152656049631858889939810199012933649126904750577671750572687984412254753948577702550636060854009113064066000665161230257545895021406023878303614037691734241183989378265960393770949944708691412642192883627614702619383194992746102854397751996293010244899635397327707301286429516780970279430262517639291338970778522533877206498725936262733685421137491285486572335043473621498870869908933489793090488070154018220973644127991413784741466512171877766331160254642530671995804752331092282286692735139869797805377575299714463643789516497537157379148581034943489397612615293206086130298524271733032714452588607785139849993378997443958875069617512345177545340789604807047180486239694266198149264245422402079961419436412694451190425743246025722037849828486794174351073998334453701425741263604157815683510628367757668104194561196676114837048360532846501068416638577018070742688633875029105620864958300896854482900886149272748296145459643575671990537261610797725621456119467043163719373309298878796661506627342641358674530050819892591167738120123247856169131927335785418066220783524108664171311641378837357307597720657919966892056309634214810717083428982665530130741076909481437988508769715708065459092673925212656956960387832750988469563731641084479208711224752243425673567138347910410310006317749394284313712791536853465309504198832897542637648509144459953489103512957860714401121309597121928239284925884244340537981372144320282898310816343055422518432576588088150525276446072665621505056215456681629712912661358431593026425040377962698512697823654146153187509462425256263762433401175562495983325293225251334063597960535752974844763130402631216040450740499506137319006963688827499328081073098457349717942906597020563810270735300434776998847692734275020121273603466306414510735520741232550578030103651664473319599211048686492904614051917885301598416517545897303902748552942657648612580642698758881223896959335043655820110658749352200138926761947928795611173022754749897735631310653713271969457639832831352825725237267004423199741351347223898918222531802325344713465890100457498105774363120191819319266826204671029580583169814377459942699212091508190019743964696118747022294472139021120773493183861504749297182223920321674938765701812517163598394874184028041692460822833826203456884142432566001379073630581953876886804854153810847446600604423365923245996409600850195971767653402743370707364910381248887945073097302345164204021619894755993185468339537567695003580178379101352073441388454332381017742040194440282424688973458009081510724443727886628711473078061494454676421795884241380304401136139759433181179680100040766595181807130271270033755091632603598044369927028028069540621300889718025891299566942751073819269075444037284942907111452489124937778762524498190439940903591006560210971155832982748366827657788990617660378753082700202544534133152534662509959599219136222793057976829398634533256941078665481605239215377293912949313898148993822028416879087327361877043101315247876954141602825357052542149464637184178255150504878009185719947313528765687541565627335132274340808825925773567298678504967588367864408942549773167021930582704184332189966567647885630503533885772038624085771196402280726525128268436888116524748984173930205480542907192593892467450955143730546190754198085381845135113883401089421338366545106949755932513620250821651333252237861662181859425634249087990706701552624048080091785513705190362930093874650652385000744548797770596356748605388765950141623488622298199298531110917368456218074886808079880119079100764840579171071221035132224840880716433988647446305597739283345646419736653182225996787972576500595598850686500204245846386827733792022257258228527524961128568049823578947706445815134455018806832546899323623271512158184799030129914751227528235603262215838601759603672327715457071627153020103126141487654365914918463732126573727974251757162224951523205291377374499287832848716059233346602490548354384488988319609729817716450374428951095625915733560757968517762387131656113538583465290190503702471701434025974857144659798628906299414777646843357720795787085028553413975289005582544067424574333453463685439799518945450917601006648437004558693465347063124078459332281653144592961210902056845668880681059830132881306496609636879602974006411019866981687692938329593645591806762133952696076962215844851572498788457160518135414560334668435915987928567389461804365520533243428662358496274424962481028366431602864800492335116840860519277189941604919358310921625037405342991005269089913392254851064501828247396241817781818500904775264561030522626367677700321474363241281601157434714864300517871132427868753262468955090775221671776712212191920719027724879178352686816345308661547828125144640679489123913904321267556026791384649717638488897697861982859944720068167824130671996651958894179941753433293915604022180398383546005937469377873874194794526753792360809419405907628149310939817377256758367435128495633724107103174533185624176335109528939860896179786376583257741650924531023716640485378917718955450931392699272364927148516616227997480377799054478921779823325995634789661353955162842164803234066024445854150522127926335056437465997853027991515595053612787219231020828220739404445381884017873898028812665261366965302192896647398707954273476678875010083405726968300583224065448663595930731213812686571988262924874124923895212930980547159632933029627269121322123418608763275055900939250354743952362369380397193341387892743921910537460843322812944956547357120302224419024212306033810900840003361118733631900068322122651273137627750036718095316872736559515663756298397722388403347010671110694788260181225960314133501525141652889087006462719868872258868903676758414640434598986110954276515940008216611004199530987702071635820691846873889577390497353475537973468384924092718005303007747012306611336095684543075024139263721318688923740577172347483519813016636056142661567437161022942814760080210249361599561207106418411306229207394721541260890154456754024214431808709206350376816075294928116382310514356377808733242850476067408184966095015455848417944422816983867189438044820653849930731868128940693857142562309162580029266517091952861030604090692888487190207398509412541379614498376290438412828598847126071587367802384839735264253907413034361376576987384166398925271353761262001753490412932323208092408789676567677637709153520179985410209960925130165642067743593869440426733689863100741931975673252951907435708729172211191545590996389798488978716044600918969946503740402004733094682536229705257330861897986717870458909202679709318413285849778774014434817914918505778214155697066197599667177836035123216307507126966220254925869560273811970202902056986629345878494412962899041815650886234005816660524442494446572669000723762558649459210427490637757050982729162964421328272925434650105892012557938749576817114596117929445675925443903612300713615790103829707591799336176620938247566950578531740465688565389007267933718950995514108559484049629575444718151694523099640143970778507530468819334258006714721240885657837093415684734972300009771300683048997692871627802848416589815614689623502795203134874121547045911224867986077291197126749607020270634079796451060746701702776615975939496785746386456467647866503973451736504747733424185612342843380262093500354403851524680046091843341754671972535539817328447449686247369029569730998738088686961848181312171151030635868377032450584795874654157292894907651723506283587785407350046585984897918618060484998931741910308099946285985248413846846565061385956498238854656015778347258766980122577743966772154101858252743914071333007610397523816286870823427996454179694330395780288676049874963310705958020579557848590806949304610776937803984311645393448482551390598998358167789018793572325818308214273861998841736089595369462489747422263019612482246310535183518753818784410422834405003035562315688929186851165063151322051389289336023484970914252009230374438886841613402089759259751054360264876204566718070523370013324566232293960406309949276873766915629619877928286951930220461713063777060514817783303533139862484600660591985269948187359954584090561238170278990349378896171182309076672134801710581829916502222525064251977762217160027847208901462333085019619076711297926440545368991933907847641300992985216262164993497194300400641694313743937280942153274370927153249916603750729378076329846278727606779228075201208664374367422297058097899672597131794958299363073708161073971819199755858049130820332138701449007500175182545463474200202671977238322308763934200213682102027884812873552414984457563751386751089719789673305517081732378114409858026456294421666304228136833552970126291588200885287318364741559455307454924006378741743560494334053275026234019607166067055047298942901567968073077124392918983922775489951691563842101776807851057195048791040175582649691540237179027912893306347820268101529767469381063631607382444109499212074687425047083049104909147495816519115622440520578745998815143217017211329009483378768619838964818712834272788552127309676349867818198126433372159048017496695799157068352674456814973253150021635589072576968775826190743330057524547203863373356939931141899444603823918011506183473984615821890717228811828988867372631460934674774202202750290685532773261689310487290753043667762441692406174508825461318295719756467726828201290649126157223742152026860515326521671301573525605577508791311622852739023471406157951027188166580983620317315493088412619579712923829671599419809849609742367156269721458792689547422475906569450324217097315262756013893907162527115344739254946058037336435681125418385388738423619695985681790492182404522288131455467734769302823039279266668677996782736936604262492970808027678465122499058375863854459595330991352459637029951242591154518435272949262095231641905185970701918409012498216322464927654921050186060224867891649439243334859057893508054679056666600189133254117768144798343018669693495282781666031372230540111077082959304691483914015294693123726777646427840623166268300597408788966599900462707062584935160339969634837322384419446334375645068047272641935017520836885014642618244930749491899099045602435479074486643893874549242716382605391730265520705127117840774876249474100628097770609362710617487481349145261747675608631306089699326363797049581585824158363234547896366437564750643175342669026683084329154082643898988056375024772949128692491702284967206513685567171991515372930643246400796055756514135071473298245519409076655902942807593177783211189272274111277155973443563672723332072053528223333079678882762634732256891921420108197491214910519821151951152697728159097973326642436222859605635435053317567023398050533958053527577360896024071038729835056251037411316802797446632491148349936352471801047896775113220323145454707811320274370217308662541122972495275861482735936258216929016008299785291003642650862458641516092855730387436726437995458773065911421837491655060383870406376999886346949304642323936393041852963516429548320337505765746325643637185010970434815917306766051129690533814688133966514903066603771955944656794226519675480663349705016592614633186192829437227472232940726340462609068080009273972088969504224682622616144714044614930238837400122145559568760340163097232332339674762735986569412294128801327489935913195094090423784756151340022681706430680831546236616674180511483889048197430626310928155746916513520566844668277682515329935565373661165370145043137647325341914811723858442120358795251006002220061058923334862120140564678896920828852740694622148453829985057790501587926484406900736596235035758979579213169944074652108685086549490344354744915271302266159443042724292908774531498834053886787618414616933372066483887912581096275324838382620262366873059114663173211329988683937396853338487674407495999696211587858004333485104738659394617722736564028547494082550173754028265487342639537412335173872547925993143456337468066166592949271815781118222216533804452501601958594564604959330782816265637693294151625862720475677371173055600392051700823578119173526383411093995804398982653490716827522696363804276893918114275956862123170222157903230342047171336231385261115078947155617955307818167346445265972288711256856301680317688137310441453979672205699556007664788649889179587931119869059438081463909621070656276573846812295530297816693270106494501384395826289444457512122030742759613321216206809450515454231996559317498079737186557301262026193354077327831916795063060126061559808461394386992374699659081806539145303859897264137573038324755651181404445882527926884449819501492401755935520902691416276763215602975156612664384656751723631396149807425403126364762233296819508013607068824249299294069044351891439551890583790097830107371298196030178367386408640402652643718330244856253132645639613691993859342428594276684164649366292333888981688550331954206169354228079806690607004467642134612075198304308241380457002755370034108768120436638056864391365007055642936558537692191553653509034420136430545952443490913746871144564203103410950839839359370070401133877270991431158103123911814188018497907576193757591117118796465610460578731921068529425206582170740980515151906979877710232228686136428373113996096132902459576152760546611334231527644162881205156287355807189186987728796551684860425826487267463110688826168730774042059688033078670876360937587414931842625343580614162895999395259688465866349806014265334059648050977299050737704399543400507851312575365337854327288738379656144666307161185716496331534174267334404383854110518513248955385243719822517668468917315423145869486326770748403640816286855433404233524401953787891130785944591921572958032420251492335973010136059929340807936605575313156718258057689552046809254939743945654032047732422836586369208926555494144338445924045368895215215091530104454461388553327975874616671315531650537209930328262197358053586876762246922231493952977286589343196511876228937693577464100582036670466779423875351683495363328620494344947249823320965047189974339170650024084616225591454986366899945078511561716091846468207395048172854369128967966512303924895394479278130884073799112581922761876226853568856545899276128551677253346166763837934726976125739190932894683719626881746919642398188614948160751774667947192718836490128830688236933322552253806026651605767265207730885550421761122519601824996070876458881273609003854396602540053904164464764561638247376232130189411198950342548957115359638055154240170644265067165759784033769375476451174578706315087982804669184448376170625116750441238104645046218524142834099132038711212246640953714245174062206871675474781777888262123519237098486148036814121366054363083555680344606320457338315476137011945311013629325841134082483446488338886546164277907744845126577067715891971223048674723636392356477993446166856222575892030866107791108864136157541651313086977225554811614044304471805297338407846087564561410206866577152291059748278858198110586814410599383643396118418460212476265020746087343082095880673892049096306514949971834589136463810313635487689533766934795578884235714721109221240819243733856813292062308693661575204229332228226725501441425878645269265622472712335677046709310755247411501628645102279228049803533413338880612608196765693262279033081614881127524107819324315530430084587890021623769626527500664246806667162911688337610900489392111239631539089799291430796719636333825868070356459918898374025694573471242809214303233960028125401933251421165383885298906600588811176822829374491812217676118232306525209274614663250443907898008082398140006076823205207085063950260057063086801264028379025006670155394940277751784025934044098537305993218273484588053258740591932746714585643553816509685281455033385563950030151812736754057091977887780849179453881890736566027091175346852540204395619077363021913932288931289987032538355726176272045547000126925153204226790659366299174946284448094593108079412873700268305054768676423216078452546544543549901632972652096341053945842004831379101509524342876026796092799744575342462939501729277002889491067004033210342496147283150199464813039204171458956102708243337686500401621851833611051240017171091010516119295413545434841608277286971899714696653030386798550056168904750471851276305216276431969914246185070647403466528777353921396187246030894068095001396830498644047114901309717049888863366033799060075786711909584903544020655044606255989910715685731046488119474915735064872147135911724628753528444452868770116995173714718776525482889505198124739238750825818406762744089852477354167201261868272773143390168421813221345006984369501210208555596095208912992072759902922413149446090776687934885615739599722357569674644434456977985295520588319479105332935772900426624590137402706217654692889861554311091917119756007125031434433641030233498817428289823451733649283835796407085889381423882518096832023807027598457790076142474546631374382166334512126607535086035932295965673446164897939343815447122407622295414477438572139733519291538831646714185752667346840809730018523975638019250466509322714781427492312746013514754053675892380573579695198404956572732733164936386096466055543679144250810037413021249846390828312368555468380471896586600649683547992416111524028388872733772733064827369207462297906513849679670666017312315826255295249266598111775791048329365302732440897386613846735826796958456518144707534083350767947231875483906188574391373181321607816476415014459024430312935111411967126352637112868150754882562686703528432023844732414437547722086904136122542939895220361807349258075863522130801232727888033544492882695338489580049355801830333196946649280202932611838231216879670634361187749650551800538189302352057076987365512736547221151743744435404362755637965646105246267521348428593218132772854682288307364829829289077660639109640085969506252685894183352949263277010056744669095303673909771826353128258774801024066079303746577548397181509573836092269454757465738366281387961603919725624331091542602937615457265271999758214339875505387414990366920551995250394701128905459594144491135077474620635901246804730093377542795128584910592788326187496807027970421661899948986607483250645843754948561695157877299302026450155101505742674685694319893816405547235420635857702690126287913756309218915345564109643797774822103195949378594549775758033419341772723507845718196125705576510719825649002962846115720879192343179216053595920326009258822191693563798237845171445437034432487798189671154244007189463897145632495293904291239908981158850470044344703295557541756050618706174257170608837952294432522602724740791769053314409807005930166132715198823512866750144508674203435049764979485990528857420152176691431812271707571665953219108623186167977564307103866219106886189957333184195347392495352621438547720374648150460579143115577518307584963227211543012877052945298015967435130366497478220390979431595916680735689874282442985007588586052975151904578094890858837022161802391796089295506034215953185841709305596009911835382425877663999709011897005114771931585360482374013441279007478470619459197791620927432046216414714705899858695404718610099488260775287229699218924692594021522604025162425051988652542893048740202443763987878576834242068283593336034540125239517614363063784780166323902157454929798103236573267803588161147787931273801483146021925033064677937974904750435431082882157270247496780176906610177025859150150716135840621431130301949400732935142393847552911293412321646035564251786222869553440635198014235697317753716014118601243188115540473862093580168837372632912882150953831426301148827534871943883841103325136260473168779399435481992303914383347861241804817970678944876282386834538093903841134601079520358479850757989489699662154993885723704810758496771950688502189284203762933206058574354872579007847699360028680755652164560768693966636158032042095946997055662495851824363342851085904409688660681274825664941329222605059003754778909628173664208124832425345859539535665113256947376183460223439333599303454157030322251968943890071512394677229760000053542333941649196965505103949815607418538299582123937839373589130027598759121980717039635802140029350997279375430150285859913728616506372233297583993480522965386043422597104825886539884115362957381874684985914691554420052669607938251501948860473075278969958959627572761881492098918159519329662816968641736203754126979215897783289467947460334982663735288898444601356556501484077822097504562213327085878336587105554963317786329618406945926602626801009934746283969246554211313980884532546311684381328832070806183040292469306685333591877538725144647859981703378071038238919482763048030087729824182008365304831821325795884779129053398024359554541202080862614692361414699735757720800491011678066066388081522133058774017656208602820568114938276921388688331441848987037141975833312521113110462994840145165116975613644721685729403231319502054243648979986001586617123155080582930179731709859866710857461809286951405786797963919993644495361766941553123329338540161364690334243111762439914123297565730389822726456038226010064201698654849098371908488151964238072011445906454622443101680646365975141882968361784168838729933018736018541741736275082739045855846908242095412245686497790653372980867568024077838986847593629327093951095658449466771737639686023866485565013922012916296793807164219423981923497467592215104503942591128292222498655688870869549466932040226809776444231713346598078022586679260372651293654769537812500977201338205386143688145416534141344326729941968401799146843755345737360316183856438673380149980088952424026284531476802557868705315947302220089586119422042789611444156698966429720310771325618296870090648046637989110126355052933232034533687235494043408432933281872614250671354773497854027849358928424552204347961153307681866483859661757896437260411425474873825118899143666531437815685458986295700296847461094968311549216219092123624904674080662304328820245392513978830430498368178177513719446073662384215285960845833212715079921820733092055354696556662756681905588816583616036457813701828725939819384277852593779980108380421964652167467272322741595965410303403075648222060931390569745106208584898291823693165914357223538393290551022886555102954221131782453625850077428571101402304566905762851693088656341409578876205901904117027590080102488664910388037544140152330782353216856091922836481254859812954702526817691260227386119556152358188249577943896016944526145177921842250809581590654377651109939260394618947653831501481162196783549847755487019016015210755303506961837803470353365270834181198417719437824011943348750968126343247544230659519299982054453702070924495589897756591449020748145850412690796368644532612177808387014882344553671809752821161477393244354759297331035216563024880360333505665043430766090998551696155531489728570226262798471630375284554184533912417489441724555276530479624164886499506541765712223649706451636917010703651943845391977249667726529986058353476183609660191315022403778913695025935344090379825261892923448306742259462699638527394429735304324452969086520160268835222900220907521349664847640413939684345477897385515381934274857771450744678194417179062784887219290907611047582386722656107755932205436850036201602621778029449325432551591503066982097036965115863932508421948325910464298269235954435382505081832863861094868092421516105294996549670019747477600315337927666459373900885744470192872011100651413887686684177046367542403809976025598517409891146550172442601155752133325997834606919257997872329854070487618450181976692424703776904870144171256884449970978990130715750558031877451894257191713751144690224767324489658454964402373116443335730637895354132443875982829063635717196584213151060354082516371341499647711777613186656314261592839623360097818206456241925530890539709327112767264208361094393543704205393461379650780636753394716013694854153556898426909363240261144730206159798505221023620457424278338095687737413594887437637204291642102887379168720782368171572772824263544218419567777407681800202053150576182999805170894298314673643004154314225216568594948603911298494091716380905950055655854962536806113472988493070868179277064431548795954598056964159149202449825026281347959339726951904415784891264296918267663797693067168129071054718711806079270148280031450744087724770365366341605461867750527948780145164535012175904655517650267461601771605418014142343293756871468341172577240628146320709541022698705490518246134372086745233531831714505667370853581029938424796109243361529572844228879040073572898055636975955719324728616871639279753342265311436136567161244281142575417872030943617910984140317429953172387161252958059639987287196305097293312085457057021353506257158576879948990408399136703024918450911761445442459214222664328224603329863633725245893678122526801161260663723342878299290160898318817639147920121840409695371651879832624497046426317543705734617691057436248185360476987289317708430353934757459669106315722410947360940644761942818239330086617365222546820569154496004048318560340149617902657289232935325456609023320954903998235337313482422750796082227557933049560779901452324849290067841373579752749945898223019129980065147968117169193815498099224190495500138071737083729207088440320304284333265724236766484625884470058993077778473611886043313942293835551399510728475532895323316529678959891525429337400313296382907767178028838152284081382592984497307447400571600409142437015443857833527493841214010674494165963475978845765575238360836903634403336373820925232397836845762222907780504785212210441521770918540820025703800235073941500633558858001346852711984110871633495166686483231486728443281215409437168698551467930351166819506046683538857550940887687049270413370452555711409705406693939008872378259431680437929756178785357361880750175669993816194602527220650811804333250222791408737318601102962518801867720939262821892478340225025510961603430180802658488756259613692733511468549943390902622064921943317142581315929022658780147538276267739702313936856946235241907966658598748987663561494500641537291476170257187439609662636186600155608031346623161377879080575470135598457574353169148637725270172212321524184099760093774812007038703924302293566295486192621408964973217144632505114428709812388435161904844813890499950327160068710238524459638598918806969525844760718903039279095841015286563618824823691056444003101048279912657385901875940263971363906468331741862142960634056987611660884843532144082103415717925808222548805227276869479697212188602518174091938479989689763008599626204327241297525837949888484144121261875767032627716591256668413937717216126452726395045026287404698440741863960158272136798740165274488966724712211920698268980648159938608285837916848199233029897873505401791255722894000344426058412450990059041161779224280650920025179676925785356629478881727825784532312696840756197112962385966094104066469908323599633672077537135691244399113104596155908193994858910512692711748693013435671742434711379088659448648298823390406182064735700528416980867115409820253385049744439022148438828723655208698846216335452642437312670763056888837580370452731076170408676160042308857701544450694384856787585031459174605976289015593498507182518843584900223808103654504363519531156486528610783981330465410637441049905030523297336285522312143043911304267440637106943613148898217907317135123179676529022890434281614179270399832582321030337541677721622744902713676544695418339617133958992904522281349183333289971186656667440485887266436352328701108708283325137432804439537398139559887240903702580651684848177334422675577177488573306800498698575551418910267073161349451593844368527455973864183003339449906790161429587698907133527073893243241174226309158285584151465062369741051532843733527037624417117363708393875906956521248582461115009702292176581130791440311450463269169100713409884273658106956755344188774227015810776910772812640172009614570454158595061768191639162324067700484432808016525949085897655040526014321219756938645441078349450901056791924124605314421642875172179269781983089611586136251178064888677610135827513733770650823690728699758428037736521616228102006567783770470777509415678725816366074018631232342196553711002832200701347353097607952191111920015739619281248512566666401993330884746065159218360464042165072659589466636181489661851388385892050784783728846022365966974196178089220430678891467297599189029458679381647421478660334682518377425900077122330097743171381843327865323964657230732457279155765381824869427851176178937038181923553479013675644262022830290782788170876674408326950580464917912858400328671315377916518817843580291356290828061074644965488656983376924259111319970763374658835399110553439575456160244529460205327499900634326738720473721654453888774286723482519341778757209682448844993980324320251244171337831710707866197660976914557438209952866302830436497458992270337957008142583327936499720027903523872020787602363278474317063066154933353776278989313770810144214025614915615173497648671058376476386983163396171690475200593882359407733148073714675598949020616049852131903031973880498633236865155363179912440781394810544637720552896256336390366105620084355622146619850857104883329215845928313288998662318199307983866323552344006080817958052554070255733910317228521949338995690817667227433614442293152775493822188334186531258168737787173336013422718865488327555497434092898437735897799747789338179937424432947255017126667266641300159442422389352326251844961647274776275509907270011369242812313812722949277898291413521224808648176111331542629704147598764108125771252407055849530881377240438213996059596391283767657597745289073921203400366206417725545287979212266619200758186525741573972834377179088732487129811186261619192551120041855993572828455515066806383849931550755595076185796695760225512812874999298626971479630845913777110287013157935634830961519244540436870358641786713554773503828785907896827158603320834996613863976842810960650817978512563597251786573057912524645052274706191003783519409370343821975747621847171062548278727836035156863909590026303752903727635368650269948559927513453733067636871385203914635287503855511690292305368402684938128569856838053597655265171383878166476784298177913050885883660640748505541913245894415625674031842262322417479390319568533364366411750648756046800602565241341788531996084486744903751871417925334032991031453253003433731686135139624313606642950609740738241614223937481589251626637822009000089504223942349064548997795775235265594797162576976510310195139656964019657765042670529237050297620436819550377292853111939776560064147959086410051285163155534139653917317944054584952775226235190750950826455881240065199118637394288341656270529013827560957276605816421493708657534534795655165723408068245871285336906350096056098225128836039997622120947295114208342145784976924403155310867329978206425764593134415290527645229033270002739236350668874264870328674885600539753261270192809987850259438682383574087850278207159730341692775392817039371592937261306534643466674171720376843691758556996322449699413404273183713287631123539629444523065747530571405920081353809548345884896603184592131023381492728271207839975705125759721356923546906374261502101638193737350312271520857598895136913637266526074147306318957104957666267643097683358175497192839947165277315105041113237021053223382746310248842464514368438724033900107001728146438308487516414008648533493774168187935712929649117484718020154957817563674275206533651532105272340081387920486445072078630231885078214123096929245486036710752105948655815743069669826744842190712494866657449941664710470143818057003222614995071272414338356178967208695364244479118325070284821138855824492880019589853679157726123568741574046800758827259713543784337546105325156406115737254439772298258956318416432466098490479574594592061985999944327846196947384943550812497968130010801148256437943937984122963251716518983342213497084484926757084490943798642142592298941381324950165251890109044058787409851512420645509062319098480960849987279303541335986812236530797414453694372014070920183985080605409683607340132669057994234118388461365480073947019374319716901285694537955305536267393352497675500927005246581441801384761244429550349855500606227043396386149652002704820519541383037501962193203976724625849859338061432274665590470245347238677958177511552093926920788257077060266004282660462917747145514706363893772904475408969927987020149541767061009815886066703860065377214268579126880184682077358195147456252602533749241688047683488685476431415421755408142457609577519262249211834050987019344741038268229395112812275188947043725948567913525933441134568864456276994123365416809392646088295802740411656511839041201483983512496170115873583443322355980135514047146594503322838564527618191972557664644581470259199393991437660065210610353102431173704174267102077284524778757887974604911190850135072276361757074461968932148748174037535639540747640997292895100796298745496309444426216447945306555725177248429817233465182688855988490830311988935451367913118397045760683100350525776138434885783503951432699473206378165197557334788314411155519565862728979311400617146151718585565098906426887002552230466092784617243756180884504784025816383484014957390862657199717408730918539391132316641354147961450672029128666395728045532205042655994000318824139175405625817292377664114471383269765283140157965751902987703844096642351575855364336762910315757772373645419581290753980502300695330536424841191037504528598724443883980047987692309666310825389970895138244468481873850269634163381181181324272968151250019233541385428829250543722717882146557737272981115605492703847872051524211201145221479045577824876706812446339269713151600152789262709690063918743954222981762976815078918515894043428623954474178378681774766452329999526228683466834899121005252936347313595945282507793850622397379335219356281739679307398746822117911161559104505061634269591476329863518117871597547157305641452891914494955188057694960758736692252307344922622008072977208736930554687628326816354574282077539718876323600993860527610743186804649570128199831387235245079644337868067742248398155734445226638936106962383085050972605654725343383027291149087594277083004567470213329222505089176871437390831891663513477814498255276437201490243858240066659467441045000903240035192076852648871228889894778049237427667046932642263875169965823681906296532162090268172047990434030922876841418368306081855218874966064500585686223959097984948269425419390869748037453046351872630435065931998544536378828257761510899576138359268163416731387272136434155873273115565562707849287887440000062893484813387376173679140474530958277316811058885971404099409914595852135950929879354518024869241674576939429207845170068006019932373439819871919677761859972804575982717187790408826105335948587960136445777135499926105216869502507923424668177124088495265621608644612058585551148052744532700383705893040631578081296087685657760572487178438249853171820647241709217654241305812021144292601997106760851680369280754266692907577848995079562816188632587894272462133210283547317994868392260767700311650983369793894567189624488085443596446050147404974943680900293225786228207828527765218089936596636288664553862481606321386999650547449913468322462950320840200435792521099062679602284088313352073410277568981556418691061361053750353532667119430157259488300430200311739771714213494825591332772048335328344325556801607267584837964044299826233395452105136295762610881771655545334043847564046994992678715003840657735091151516396769493819797181988521896250094032487612899015769962377670486088810031818614670645691794621298883186750718820792595644245932153895609066259258436535910442227820685222832248406138992108920632611526313888317201135106515462752676169308001046660061517906527602290910085472617797196514641206113280212630699187516505028263017987638470551121559750847552082498403671351104256091876927924285956464930565825774847778610206467717890976608753052256746621129366398864750173219301541394866317776610581881070407577468357167197567801039095706475794507589899638241733101863358234187137240428633984388736563653624902287420734922958176704799203088981595890562548136537974064976217229331180429907961667443231059264591045635458967128998567447441837086809231512722857454866475317640062542740240812494313040840870382786053596717577759578396728964581466024567948255398322762197905243653806862779725973132697010382267629661614105551321313596619988712118387268226949275218070029878390528424095849556572019733779279979150249831708927522797385131353082293385572592594182935620210990533396125192040968283451383609079551545757304921474542414271451649787290425218962943221775118858254328286283128671937218071930993787704713447939013509326296060923498495734293267046003335904512385628734888328532436730047544921566956473208277018601875571294409515480244351791164833116759134186628891497918097488414442783201378025850595885519252249671661332278467969650218975720260859684138702955680003214649550155349990758106135351409702753270354851176550472318507325802118580992200770514764170635461964189276219136788123095211263410913118337645535779707631053850607710819821503432928140067299486123154447434439777993898789129120146142842995849415950317507715928619177913411782479831556736193015075843258306603066165493376592066399821590447156406928137916863170206729658038405123344486050086195712756214018702869444780741224994889629520632310493272036397731244076445121166489363612328807484205501244860871323170138789638050424293101100365249225473684173337746607343614371397366165166005896809304766280791043909838557210918285316745407731482488589231991564212861790698716591530552069647895415959603276858573637372685778343314708273168154222954847000527394014931609124622216010912891734145720506242581326308729210828707679210746491852790501569402712401404587504705908201522363533249125434642000241082246958607300615762726031173710413351968684902721974270397777501116372110364346774367052126192110998573813605668472448416643520842772877122491402059758720026709003241196637392721850725303542475986842128973736126843542140793857644644773387033565892015138526667502811461861643829751713988099781865731270328245454419085285323215556765307900904557660806340528263098188679902200026822977520149502453066006474132220600230772701523623161610416207980163098742081715514881685285749072917488419593642306553999845458642836644015734099882830617968788880562593609919897244896188217395822721108528359990217080770812707849055316411931238877351606784297926642255909232399174591026530044821468871833106061065185827112682096070648743927781522121596961603943018165497918004748105740879156971823845927181394707842366487693766704669148815273745822294558554790042226793187622786149321412189301342967258610442211444860126743769266532281624480566124469052812187867090949548342960690427749585381878234613050277746523504374197793560950061585256476879552283912145435721284111010047156573268565913084274111251046025441945201963031825093252849144954539137365628888740262180454547396713198613914903156209937449456201095479784759133693413281233176925643662076614223726860563156998038444533716906877007729408972629173838302790298550143789762575838448941460275404616361867463092133186756030842553503203881043532918330168797510212097005291627486027794954514374099667058549133122470174567235272030290959352189151981761084164106200043795100387972390383448646755461150009809222445925093936148935677956044538378345173722216337965108262304965893165745939249046935775067626300001827298652114186191256293875070290252718211215472280112471618855404144934274323590824497971544785436684465113002649494595330015176188792983530532191343168038991610257640832772589741017170114115996516858938286406873628394061729067996036438397802625991277325666422566472490542400063794870554412545609143309059007302635616198764338025358411292157619200083038465529006397679486608240640126571509152996723356317884854420656427103916104377519707572661742182366310685943241346922275054633360370534215282962054899576828896457835834575973887076746079272816389957694725377482566756050164027956493753016426306113157436632908521428455480314063952670513754245206969423974629704847067077280844032242154105290700682730654121849964808339679478980414019967646552639061289582946682234937404521831824784006382297981198224306632228170384738070477663070155903027959780109835241445905128573533765297274143549052234689710717308122387283931376527376467323583534563476852750726982570018155049117108386372137188918770182145473417453923770485037692724112272471218896835850908189343928994751976476996898498974679177950273476552772651765716241450022962200697548281301609915985218708588654353903146920736866496685706313330350137750591983410159859128187178937234372228547234046423406904112234132333419274032082991104128497465038218434042109730480183555958772267955368101084665894668918124213702541433885626214358191702080513291348043721809643004484433711616335034202404215422757917515989048132963994489268601159450650101164787290683919103744746561021650613318547536695381816490224150196822084002136328285830348305545306355596785079270345122818557293567344592120403913288985728547717560379341621447207407744372768515329764636776176316025299417837108674107315565887349222220266980712203819843801224950289909479368511087900184532660949312028686999557639818014391705707526764318168339287595172226606933080727880103683832416130872616621186715032306719215412120653015358182573396182660312011146747000736035890441239757917887853705110273385253699870577207555307835059346936145866411295893161169596214830427311798115842534052625110995466013300922369056822623246907421358931823977456816277735867644065502971487032061446131880138507318247167517771227765329183026402977905708659988969363483955252192844277993902166443295755934627929456840109083754355008723336133639885255619795162764523828705753001968192274950725513397999762321470857978337728032849446303978707258427193296159655151768248707465657400803735935564328142696905037866705622471836500873088272118549892176201254246900626050252836139084609796868685125843098342059863756108120945088504313992324600012644348985029700196743957914942421682212677408340622144120920936599245717288175119262089501202986839846861162667828046470455083733415725833083149715315186593898805698620433497595059700337546393595272112614548669696975170411413969068800839489283804694853942112969050400609556825110473407976023950956219304841556631110926231373450033222823394984548527297940236296013759326831381512885566207825908487223696876627497609017124144128283197760358025836194491071977585361058511934012301789529379184542440246172035317296609222094943434066506007925756874675125895816758549401807636037765101884345621212010873137875470848754548148915868337693324528135076463167782069633592134607009377727563082541847376293388770707642307123252177144141555309338065507125010373802219460518361019649539479095224243293541582348873861848298872602010487713486197156856797096589946711016167606141040009396081429480715695703934845268194683680812139980739116189315005236323925113845493459512604073931262612874506140113074061564885596156956049080350811708981966565732808365728327553129060948490716721040490526288380605048126238227284055021659025788839371868119904209853983577354684090738187192075319387864977134778863279370594057925506826302030872026321506157765453165290837605179832490763288806953284684053220547992361299704298425424066168082182101922822456577373987078069637731562314044772430875329804640225124374861124336506775229581295091300994747559627173195001377746946517568660471132661917991429530315515037055679739946602931799216642942914417198846696939202788493414496585182572113935798073029275283578159969735745203249033045157852596148035929037267518849545899455887163861391147953910111222887685868658204466857077402118253769090792197449068750260871161639986057051922286808402731231379139206655023545264527028653685929074505491569502807445649001399275932861568514390051762425494572235962830623440845333976012343196085988153844073619727573506424784694033240525468725147195388212185967183135448132626540452729082196508855953630582890577373780135926667911807542622625276380089378502949823773603022761006597008360162137048696124356495861855637781380541998613782395309468751169045739911496722413002281186761085747436609138611027904794543929581218779937726975202969413175038690185161666010736599063048967160395668324490582089858367249959461791180977458832776642999075317974672489982253572543111992762111699286488474619136463092064202846342319139983327742381711983977886664562245973765524377721526229290160749948775789227060755785986727771024972465331497917097071856874875687789227889888182553244147261625484101060115819467585127875583761169967681341717131163506896338232089201057599154327473493680416628474452038258196642280879629473339246488162827024512132010862661477320414993945619126246672799622739581010424703962694879057029271104436990529433885288352656085124869610006295407100494180077026284066867018731375091310948263389784571870950746765407413462352865956683534033298908345667525746658374860525641220060235427253894394232793473828876367943694019068638265791639898946605297859859365241765143434340786737317284200096658143047817057871908896013442116456558031954290839494490299501972806847180658080648571257913035430116741378804955450577396843338617579131242769346734501856154909694564860303196548712833425605088128115475952510714793975197550753071290898186425806537176123860424041044936940094816159201560541634388587164123958525556668409369419446575170217705169929247520497094817562010920209797639215543375140655170890045084828145493510031943966290872000772858246731413681425517152621591152671390769761519382831229372226560733816654411966476717048341019422994037923734851187553890888668446498228277175230715364994720372033891961254172994910842989200497125838630838042596228573602216828588744981715167142484153853853606305301540390051838088251327776942788892948098610263815189578236751481315371403875527176076291286243629154406025853959622819262546170445347449543356969437113262035128644075605479635200608602997076412981001443084735269528037965985941199403109129155663009237961855471747393705295923898788922090644588413184991707295442070435984673712913192824206234852308443006706609877350398500623590593376441355626119223270234815598412398039737558861597604531064435955259753130174820175514411471283746471243074215033656893742767817592155029297895427335646164861231094901668456232323199262844143203685401951836959189161366493496031768233189918738778181274199573021358992961765798099059912384811305101105961873094805736381164553802145835928177315694034692541186271981359059021935394711273185599754959743410377791690289734745434269281583372214705358780730348237619468444949213682863803537278895455225155874083280494120116446090291472428292032858364188570851640153812415593066287753949684979561655722807156159498380062399308475468135935301029457468532183820957344243046069688593502222245459714664639073674908686911954388714791184866657311611672450887377507232685266618330388883701574909776598019511599207197489013622910701751742085876077467182257724749645742840609009309802146456722985563589008602170649956988137794359039322268481422766893160903025930284329088136260985756447829995220547055201378028588924918512690523978116479301866499676088185054192069393656235682194122917070439692852811880845565999249631775374153870281012471304247972255813786484524843968936920173288962143010220025352870488084461198037896610906411894526946540798771922871125522349040452054540199458777529818699818218065522934193093063392439966889734278895083252348677806462414618381572271009294903932738667429060573617867537651892358762136753974626433309109030635506459770828268221428069959635865573700240807460674567624201459869278861212520555586179303499376251252386888124939983038103889039253042985447726045257294358942034891253688710361666658642992961706856344568136477931550250558034004814878328264666709596424856680489817014948980350681869592567609486453737587271298799286496221884877870301604979399790817827524931159269084279449103444500447469806843564685615256376891979687938025467164198396724616802251444856060550837375775714128877225708276643731786817795160050183591878645175440601691495856089520310790368768452803621393968745769400342512658631312821768864378969259328679118006390747153557627444632832240760700992578028912619427072673090445370168517992684299357674420555946800975098725547343495712739114763074623214384242422038680754137130403289678074847013777683053466028196410661169579718615736361552146549964339956405304552066265827846753199882402522961284922206505146450177180865673960829889901652621088074751955817107611610672341174993415651461733558547371274279958400384376004554145154523147801588413150131406684813919913613286846059692679165126708323678734589423268862867971932577583218631562752832016553907349410687916133572779407028822714724166287033540014756568771974339133548932408587012563639691959378066350126200310692671324399612333394126732179635612803588809899061371667854218730118208152915754968053192731072536798232093670443989146805653070213092218821563677099447665535715658985973354630028364867632651904550126601474842774197437337752373916792220625587521580774621221363255951034580134878427450755009040407364877236082647283727020395669022833749239158782892568176766136156313423111098213675577978789350719612258636140302785352179182187514735668090379904109639761740293290112124454443556787840483200901646233516437948164685942413939970343761044934944318009996521684459306166684391813737377788872237322688645640435649894756892501017730822300246029380033872079957190919976322685642118286688547001937395716603521277865465746150849680338982887933134588732858455785894763160685826981977626347963015414808929356764670138065543057444851897129969707299130865131200512229133386398407906765872709259409265931216894903180591660561375948778382568907626510612230268769794215727157641696061132591170787466716162077330812417444493687057121360006514522377688678679123530266360661030071562291988666517473783041020680427451387596990652212513497179350981347263730507503805010111907747171455823318921582671107719459138468935844325610039961226643731117763320243265577035774697967724171816422852266029096032355204710676630927022752752723032922440726030572879792957012198026482018467482262780875580944197702849487460915832050715362269279984064959056735667720548311321034764968465862263858686745630669097921145518412941767854570125812124687948875486678806589814818943926514849349402741194141400712111902555886642273249951683992652429542363391480165041590904116364295206983285485859497879291042424227425473663479703528376916963147306388310411637808900010367058561066556123281874416463252537765585054579364853062273471156349424993358974432881021325304018917826405341363388457442364640788881048153026048773730458098471723494248443109837398910871828256944907950987864263410814945010308680646979965813718457038885935890327102825463905482594054476693811272173549892222960869638890049592377481412650361049991575290884432318193206574287897050073148395040448445340273873490379460242057487965213799338936991120546990328551149598589429657002823162463080757222022158669666775381561401060952003330841562162532053839381203865157568218798395075918455998864903786279902376497369705543373511734627317319414355671138061338809679870887100132444140885550711691076203695647077496064065838808960146439260798025713982136859688134469283742609994015828838019861831831861568555203228578768990018185975623683691008998058041504724810120811888572155332195579409296882027965195378947079194910081358496356915977243569094631661429352919099467957210000005674484434921017491516500100592149895743816486686841709465655673248937219479311623995942978389802825642466958967382897384265958947298116380167096950705260042118351735070828638390312993237581682805796992651622658712668939340192052062617968965930754318154186949736560235746156058949748033735811940384816460586986880989399873964872067450442996209885491719150255950228269110141230899032645539763056818728221252123707946525568485789043126911774000906037679298163396530083130023976878064633454395400427283567834004744363526499006738650080422768517434848067399680853058809391374901824631131741622692331156134777976639317183126963397832877377467508467973799711316453459302573228762484423836862293819863772097333482293802710463737629091969538803356196002391104585681408129155635858823564462481377292554367453165505467660015540768513695194197329328416121380687423479524564817165735328813615764747272664108061992790725800661499018363412259504865484980119096703415680413002301045792394826539538030228910399995383374129996014382707428942098371167818580049986331715095574717204448062773857845530166784153799336809799959803545416314843265841491441952839539125395749175869574519612611904538529220671499263996199873578313591277654809363368976338588418347508471687424025469056883847398858872033845243931649456186933429121063632963308004902253155123133864507563939486787000967194662735642429523597749546641950763882813095359343846709021841657478775934014581121249180454841569692946141708765473308746863246234709610518608412365817213628906177259233323439782188406174600508690652835225401032099983333836179274861105076490546075478669911372141815966426779933808479459889848089598120150242060356948028966989055166179130644711649381717914160400013141744512289467790272630675874666225793145155338679673283138104601255333547963806268067625802304063278509886750245180472607385853671202097697360175065872263643924003070644476128875351455661374887787170298423556828623579908427849000494530801705394049301632327442433604210620094295208670604170066736227599129510671782396067878748423840966311223073559778537655460714991751545745599740307262671875927964253129300269946144103986613891866477330146334510334007066652939562496133831309720913328347452499114241730700885358484410767837462641072156816754260139752356545675413174696489878972464314290058218038847091217850351396135543198054876465531232093576275336498083540806267548290757445443001796097010879678799521817973513696032673494868735381875419023484025831890957150820694466705206619484923682637750132479258963132005606971566197396202674589510599830524979896411553499257426476711347204815161668846010599032024544606753982696944198577053128734808521794951967858396926610301827891684238773192900185436405224679151054470302910759976233520885126894965512978091945845234156736785603695499603131327514890492014587238260970009252387692313957950350357319981091398894718302169757218015869254169714974847959573863138333788054713979732349493699359697369099354242499395413604413526895014271004360122808043017255642730949093284912011650982613944956204277380803802369965576737804880503969899847699329398783755321231937453551261983676130722498510781982504280411397077264191873866949988494275444825172369952481259772922057300711870787083241301844418166588586304577044556868742265209750734213446658071761110271697248936697345631891580789945913205008839596416508286391585627012283280153498283349789534882345150895063807565542759311757458843453868861042741034759328652578426549352398218133681568936394797349796793444389326354327787378149998639945484146683172080645824011160852056921888641984592960492553780795768226042465283183228937741095052656714445925246464267509238337765473529821801952146496222291553010381304517904513195950058619010729980695619025930109374075991288803897394672091030714552030909571406493223332244941221688949149073906380421708199993898272805625059148702832107821639979703101648873938019084046932268047044875820618945438624507901708463504849919910343514820955107064152803933027614454193764995910699772680036482488003609025967532737231909791367104928314786606065633366786588191152313600390255794792488872726437614266668445888649821209914799690698926608149701957576910378806132436474935683339987884109088606464238494576846718393376607937251467600289063031071055780259409807676099865530768998265433111177509107780287196293414319303069444722626096845409476096650901478629909269803371391583781150703745300270758161797618510484524369120592949787376840938275021031007618594597248398182795137326765252852097225662509845972653131621475728476833692846848850822466094159598382473954028163929982128154925725346157500025061898002629923331435279990806131987352190279174491873365077587126520316531272125455064030598872125993195020211603438658362970997120322058385111157241080897332006594133086500699992317534677794419378471453921519147803572894693618604241862753245566470503251902009375360860490082885462870590788765355276529051340158666616223623582505881044428252077049615804193080128879498639317597155603875171236755913788263227689106684581596277135285717957651784770082929223722143926442979989016746102195179908280609067100469982561376892786877583050596205792215448006513983444132500624332639010517556948537613461169639971093821451944386212288303830429290860372426402054093355067562837620137895497454964729788942336773215626986174044048090752416322967021586326397813783065084034317662013621446681313315113758368590229637266701009427578474432004879249064826852824787150270499558737847826233491833668526787547732438192647453330185849867134320656639249685110443650621819240370266111617496469482704543874073849779448169396747268266387573848320884345073583670016945993549336766590749372994211983002287838404461410827601577220789387055354584551350019501168147921779006691332724076973670070828750380826786580804372533156870285730785684579148777176183925252043989835483273210934612337963972149575996140351761642583392638740961778499543086484649802621823333137233241735420959139904200965140650408724965320380949506498892276220829769607660622996720893008744925561196985156693156525260680855482175317993206113616072680971870326250048459379505894980933161112784638512457020173266663503450677298311470773089623288851666932386864822098082643989284698711969324244232053023227657546712010205709524983593232769893102967232544564600492371634704697439886596308412920417702168259461904016236082344936957533542029130753960823721432386386976228984044622083391360350339270923372274762684234106313589237539228151222158670484735475230423471442645890613535220111798468597387132494595942129672459543431034034996653178119730046371250612824224880470978592700836384975737574611029950353235734560200559526350570479340129999833372511050133033857289484295159882490602540590298102482314130881426217048211328612316127613553149954050302987887376427400193267655150716137742109575437420486644526192790408715618247328332462713355589168780744150600013671247046423726715947090709030034701730044616050682756616967949227953423214015260344935598265617582536395044033154484099173653492606699297017745688002672202154394467836662712688277107430960201622969964896210519441415636582182113642192080927688713226621849203479890966475567733440520913812448358983720174882952806762475176162530044228032912719813485229235670293788089884430484605445248184213245277954865889745623572878637795233139453030784955961640491051785809435431552632512128775952167867504259382515104677411448833623957410812161930374761413334140675243534631595835678776821943776019322843883402899950844472741516688030006064504899570242172308570821754048818587682380998317204153283440728913256816682082038846671162996562346645025163231100871500594090375229102797513812882105395204797672666735905870281620229824627161784891712147783507897980143871019407084695134784710687518734077983287587808844317125368390618057278596684034246306325541848258356605908153854282305476151373410985116999122088261870156738671413015184125522051814382172605035560085412618530742493710428435299887914098539926800516392357522091458422780213753556276422026314364084397097075860831162703761831866512636276153170407961735219111498706890431588456466055355010419565336567618985263130508116895646620389063688042084746257701725429137503891320375083718001882961012485173499092125505158920521749588074185940369966313072947793494524362869672222545546388377386219436259156611889849773067599649980587540485269912515734803136494795469822540596442906404956722960314055951432143635058265343045582221781745682155911578061110300284330056948181219913007163684324281209754997441912125074025040727339332959678369745840200745101037159023097088548628105550543659465801697143210693721065369876637864119562539575522145489466562616794868854829173722440074649554752032917241827794581126564399227616764367519257551181724278617777548955872488332929158768241659554070227373458222076759403223622435984403102045521969254377670082439673388139640698515316729801298694391001629131162645555804761704350835954835126659677067135958565078646106661080803586746032219086859201577547112093526213902425231063533983169720700129737460809468110631003032333056468760079653269126401709924462456299402181731984377912666808258272604023054723415467184402621073889282186331676599275969245432702942220956772629388453171044901967647001487078490177080441106285045275747328808255419258307474403350587388359143050223340077740717832102751446878907925549660266652480486908411340127562603100611046184809716410824713558863916275248644619038188099339091556770763389571126812496597646371367042438728101191212961905891153520880003185961312970363619201515141568596326220237340219470426006148011865212743823761983527125437319536426194506591673920076628901521135915435156156982188196973623963635240099516102466493586237013473802471822038677642914685525339585700521878500460309281316906156107825318717345184126755357786401259002985807810611627371083385922795118567137727286176240688568288212990639087760926986980567372074542526200160110881387524869122384522062942120595402891018723383586128138122795883542451027906502446816455405642647887226965955122582929483558480402043731409875482303969416455601530070559965701919497522862902817442439712517463176905605013201741126501796975944289240087107794255169902514543980801741734893952402928240061676278305025319269862146780199640781802464147847188434542783162874275054595709220052504250854291310476266125459377937795274472162718437109500307406436377167434951960264458982288847187301743765868307733742345607386681054634104864895064349776097554929029123227086381345498993189445487904728583334313463951950191168642348645472640441441906076196380793466569189065494765064484318834141203329628044710822069577896823930272854843419432330168689701750015011966250830213209767024826153909075704496558218825047177514500588435304440662882146576208629028239856044625647923507405912650749874899165682035711203014711908804788902237045395856167373124417118486811676885325303529255485764861910560721237908491600856961470329597987389026716773878918849825847336101188734229806238248059835840142814800976134816192960821916582859989630455538917496831964001425758298266707645391505657324750730511443560581776463703180821482357491860637070441690795151848618125313487339823372947645960641976985939694098207216345545574428239264361186752701121978465202327672422302920994599237932031631647408338650085384235798204507852848004499799810880906643247067180303329069602405580260130188905924421246463508747134669053118355450689447911317424258035082565329076500817196162456045626472826510037707446846178648583137679410401028248713825675630510964901453050627102513112148704233444402589260279331906554422715547218548984102435983701624651799094131371703532896760305399414303155946442436399292352051614358196645086879065491781264710807935768532420934208890034928393082690493888627069725997941303934317926192268829811315237265148821122691257010837673668331482601429920598456709273405776507816980717519539741587988701529786370660772600147642047033014704574483184390119551839439803126062659229554813163943029504437836265732135193546843346548142611068760857219183461363309980842437681195795357963607088544310706161901497053700246837014756072440705275978865021473665733461919659032597844705086617029249313174754242427631131148876240163356692510423474378542169826679577515025826414928518497437604472870709464862733379945810763803523442735796348627082239890218926033329438830760489586051814762361826759778240758597433801417109739528635790681343492631590607533361608045980835059536956034918465812427655628827383729076973312435005392203623553740208580074921765415342495264187429850844200500112954807771226679726400956074189604144980228127970176504482515167351766319772911337028922583286783504685346016580366327810156900685372350972541310074222612583197137180145712147618293176029072393919728486495119113474904958342202833781071408358529233310782404780205525781802123791086496949233501480994479168216629536634014161036193528409952337131201353482113881713039059173312997704732337315941597038329824926634214751679541667934977526033023355499610203941186430859543332771713390832614687499562832183351489140235466967729777514666758939641537778377632608310315703269102218972900795238978503722828108379050907087064533061693941022817756008395867262049761732047222170067114656086753607021511769264568310170349075140087302283597028305254475072390740208332592014838406113281115128831467702637103755253212670676964606553857485435792664466827190247672751361559617402658621655886662930933759511206112229405142205408081812986820760774205181852812864382785092813895504987058014703432444339061075337511874183130877087672131060958094442695979491697287059929666258369214057755997960377272612656265289463442503834577105013150857142190920592208361924770793616977885207005318193472128611452609396495327062811749685541970068531500798689549936056311839153129700966843525258479870257083175668353472288759544419243615457951828405282293170658555434941503385072635748027075401784497539921539665848823107873143296697221044623035313514291509359706839954485331640469923228298845837976609896453285298868030508150143307097587969257359772884016232175648283508521443133655270869174941515918282936396424280646668461244052726836185464613955452153970766634964442027668729978693778932235066835953294506757464535779697697300476457708810513177018084083853484475540322979705726611046253836974995411846096153321461830511292033101978577847732614863283014019503963125828537798317747636725530019158722861002417566776907486815487313693530950706495422876331881263751555581004929545565630346146427718947825033466697008143846062336233654964664136899281979185250066485420827094898773054951080382861940223029897136010935928803719196490058617655565254223967977111472460872194820606981472123142907530005609601628368167110639399493222604345868813478238977491974981408030785944049497186316618967749458149516086971220255477636578162680432363502546572530386142281845895706261810176685097586524042150041945913844665352250843604306586328242486119026996671996961802446309423099562222348179399580654325981774525637087665959230626080320384556907383641351093846319942562143502039399283644793581208654043966784974864532506212300992910125720861066440424125619298624687701947812359747267882019344720572530584462709519320605841117243558656455937917601493436094203101625486307643742900431717625735169989519948992135607391969989902178984578171842359577997930337578860434097104698819440656521953502527256944373876730859413792508314315678493429025871522456316409792706308696384498562154416284152804044392349412187691068173025169753955608323787855765151917613992066749025451387998919482280000508725230788751754514915752570501053725303649999132045066222562941166812407806646288031279144215339090251002423938977537552232839447557285396100844945275341967111453235617351636775298762115773543578110944128738308651221569030663901889061737319758320819128611366437803507687547678800621455163807421984922044381373516435680492350118633773997794733429314214657114001801991729289230859707338729397169473555693979949113137467660999925421596029508063206799265011260284228320370949278201588525016370756419987177506578847693483810296296699505465703649715101873933738946627351299131914254546170784572841158385680684562692625107097848552518335051102505283709977578966821740756895673672744570775287567647848881237143046879530546826974827516014745247606010450631376932992088151458987816665290477942289827352245646219526333741622948465920041177371914911976160111470398519267232077704094003126305028132206409296244473510183566218893229825894129488057852686288866242141451604635366253436882574202451854610562594806765372918318181547287010179992794293198275722518921883202097642595173742413863164728401950517946129137705300587455854871170905435334541841582303765359651443116318906064425388863760696449232054530373363143706241693883737760194555681030726975105952466788765741463361584232630480891020906651237730467729656806519981107031708733031785807581828942787842941950877195005732914842279247206115119386344063452605096457466430253867263539359366079705436868236924736678441607831164603048007075748617657306509962338647484761255926996221911072622154522077843186502591806497311643337523327614315047894089045396576810646135751776124194444261117807727822373170192662555812033024961097414041893978111132032619624175092043592741959861033594305314498009726095416474669505124152580560139034350601802700601619811962382377546663152412582238476957830772051403427199940113598799888857017372867688144397365229090960923215680281876706273204121488530970258920224951573588037834253709237325964518408446464299090489134126743910033173791441483748025985939894081199413305824459287531888405569415660688962882302390598022004707328048749151252703392894957460501293044015150281594559473141286112436005229039001672499495052288257179005452310943957489470556103712032248281611316360690586420795456067282629820726792485442856260522847882041892650442329289943679429525563202674304635611656829751645799646955953252815751299298726981949925166110460417055306251239118939274373226472083840063343677502810147347916859544566893007226015853252339424782544664054664654849552812125301959776767001091590575649137164805630468268902801534218334362148083221477667579342434386136869023145243402388334401535256798569539814675454261411548514135696668006639260384627866628566096563044997019445731261846397196802659137992739699054140593743599725506397465981683316713307157101611238537756005925349491041698578723865201541745793216826382187925249114966030732571040937722106759230773287729310288843940768335117130812207413676358582760650269205894208725039376698829044000178060475563268660704400708798969513382917611202883658821633472536778453600655941461680985430197544206254346490148285750631497809340211438686482070167906349605333986584142765752917727228216519861674347166936645467886635623742006209345130624045272386497276080386313617813471104862495009260533959513619781390829736729297560007357341782258576930711736532860967281848829873593505249304889979873968463884958045054663360181314232055321524389393052282710505660630624895102066456259391251546964331892771287599934536680905959196275459491060507968890967306810117345801959193367987827690389199351534218866010608995234956922416851875404794493420332051229679982210868180481266599813352556320020377664183603765227587148322248517019263453303867961204112291236864121773270733239430293292633094217503497575263154636418586987930246072113183882836990304757209644177885421391003758570963803983515882310300946332573893544726590243192105442820397043928700871995273476058056492013124374904917251987629907172688723394484149037762733248493059644726031662484228390004983529952726662097597727781987647381723411486318315981988787373578561825233947849541984384000301364897264980500565455434210262621048218999613171615932558612978651315183205726078597455379484229440936820070208095311604574764701660386316035252929135157471179421844591216556035234840612789542769589195230210346194951027038048107773499749793157472708866709286063053894910053366568515221518522867602560402382629998585392049459763665802012134094920781144759804206895521392451648795944003421238556049699249127640585373867154992373587890031958747687446808573208045716804779026775635391281792264083323124928854855025975795713369774770608949143453510244829167324082958867248634350635863467008951392743605398639976554150105876135805729717970597156611709555669980219647811113107998813609037278916908394479353336373955930233827003194099227484518115847181777789221618856184570450739498653796186819926944070679378562021700575762296114232165764028413091489931924338366730757812692462229128171455244763034852848434437368874200394586598429391462379649405401418930392242195931013074658106179268466454130885587192725256428257567725326277652801831390024963883823114973626840385023616600332965856700203567975148141537974350006684125776731527379332885933582089512244315394954512550184228521197380027102493273304825040686344173006240035466267710456330235683041195508547787179926522477164880338231720410709229769886632989520928163273354893264149840322351543518896978174117614548390893293293277742689358746487068958918108153539026167388793452357545793533305303663987825700196151734516833861906076224763858571521935790943478640746838207516956636793715304619704183891283470304267475139093183924538708081528553249353405631665514440845555526686645076797632560749322490474997175274691014060496261861412127522747788196467074675909172398686933730711651932159400838703290120501010484687596322422339716193098089241352119884229657048961468404561329698525525985740546172894950403847576000952512268540727795120426312972879678121044053095951780112223356242411772417049797139323795536514838957983948889276997018981728720709634021580722290537630501786937777995972487341990009179012159216428930494254739066538143362714568315033809669177249005366909263860866419109160142217354705447254800944728600590940649330696476157183075892974157295798529135229919309236503131579568588618459570237838253802956404474248998698173117516281317827911730481737546999479962962067212663129961634332846676765661181477540913806035940486939833108456180826335672229020166938565447612082297961715096996889865571592601236809120700325379723683224811921303944228739890894153150489523310136386861863757008271625659668325720413665637474145497939904238134853375179478749224440888430065142780570663431950204595900944037287067927639428123976204303554611215390730260605243769450700339740675519545016254541125412133292243665059524939312245102653474004261918085406207911234985523960760807196718575290894386261694865561035874116192097339546357566332677690751962735086347480531639856986423745966497310676187020815684408005840524280913062531633843850349975097640392258259271465507113578969149693723865169879231256648608232513310661028710801729737139468323670058226068797064207130660390544963254052122782848284852645015211140544512445538816331011441382403623999245562020723521688868691815319246983478849723870138710666014331684705665723950847419580114554658316955085820702062425384597976565128631454290537173239254386186282948028952997911623783594266428410764433463873121918871661273174091246329277373463061270812012584170463572783352740356489326875758432726069335619077049953873779004317171801184241597403699526592358332554572081784563410444528800903994378938516363862070730012742160224246604681530504428612575034121095577350097497701341252525559967126894162682100494079341214583743786341087951401211004823661300386840042287434596003967365635537625883193783073962982797016304182127401837497896141629717158616203227547399738507820665616247607229606775878218972154772129281395278301701316234943227926950013208180724227431018683976498222948716642498580387586603829643192998626274706616100476143210259332405652394864656171073954548693556522870786498684799042767329531425807201735808347868506886539788304189268021744998238748045893540034980252263291575687149487485806895609381926626790337832823616736955053211142249482857768046599372440012029409981953212856648922569366390642051187589374033110225680408493483019456885028164929897522958305659858380400562905656020517270246528854056144053788824167437179303270828772752286407200401386506037037270885224273544707018333881453002543483379099340373506637041047132414898162616818888740240690643709122287173799580592546411774396437386184608163540008204161475877697490820527558583902644755164902326033907360822144172310375465207685651483275378534406400561733717619316862244853607267146796363490272022806488384591196388216852864138623700454569022250225171361463036312041533692609389849876402790939830520105621333064012101462893627006266684930702708878009761276217558616712058731995660566854762528883477081371849766510317538664563029775488244175033190344474242736521083565375860233384963105044191300585444784586407902443682616340996621867713044664688361443920368582840723077952431525534953256527092828045228244297116797733112757949040132413684583563758335440684859166183671488512529130377190599881684236692937944715739859015968747975689754277171350337384275699615194859897080539113668640166453026660355291143412893589831200667272670636589268839417975504478148907938512094275691041469074001714277041951377881163843133260185422328084676574935458209184292065743931696515578350310672904181118679323208414518994154831439950691067344731813037644653044731506869457798261863073083628171114045133568324460198308820940180367423418910013497668755691708053574861531994354129781604548743863872895568004486282294489717546419696340039407869391381725374267571552763119372961324555217548326249807922332609722093329608776420115756775779873450360562349539331531990619134356924172782778186220095548105646861750165368257332300145329524473381984556928923975969760108991363501695114202683286868936472596001514797416759682519220653863805303222750469061024141255140015322493212473066653425114626267563761526396306902897917645217939041464634095478004326729833539752565455881124723700075763968900394775378682669393847478604678885804047905991278111601754024104267264390537700301237222046556818959164700185516658915399120702812608959865350051834868412616972236712112690874494269610058068289429767277737039759378675525587047430915230388581503907524134662696235237745293786452153732765615023951096633588436884125278820888210860973069053498688313820140861843893289292044093205945359715364590582331378083839707179131557066817074577614233314740303187152588955245831754558408672378920134698053587607772812821052337319275737086205388798657111086199001519583838830372087169328827373807076268003670504428433697219853079376602783697005160156419179460670928089952962364983403428076302142705934779374947303844629432272218036141717049418534114750451940249362007287082494816035302374257025098076519762040317129796750721956568242476503865965578202512447857801069569899223297342763551634697663295218928131678094312285093489021259276079902100776939772735304808831751982695956796008540246276030082453597224458170874847036250156918341986135346839385503168511412127856363995966149209574661968858102064207246321270609107927644882617845678608323177515186640886024908165363841065106070316502951917479569866594056866929681284237150168705016112580984622372096806466914835896246774459213943141215556971794810392877539628914458255640151432386000558446279212934217228495231237249415209892441912535511623284247255266308838428899564600495011130164300652125589671777315294629846020650193497152681604802446546205838204620476814114207720333531886021381116466670499363537644363763549587103225938909915675445086276405686850615006469567060864939317411803697765042822462266417554387592047130517336180683115944392666166806425757311129888718863869364250286322389859309120142783604531073068714526196199579548551196924470667630135284212233035566391395645874638576698933820686836113891619733000466417838800945460428454412160801794110634871518541219690139466736470001550985659514631923977616693380848628348170057983831495367421046635565997936145955800947206404477404440297354161194200479024109183526800104337746267450422393402846671667000800342761176177670739363944201993484766220382731555964925207404799428969445830413768815839180942000434163995787235736925282297609071220341183866519474337696519298839464235993897122482636183814294611525339770495386916112895742035628971596968414462360964193528305995915892976625693682127735457545666549672240132024698894777858223955311138634082089202734168120882219810165597794435707336781438876869827999721919897902152060558364354718986872395654137823380632768786320994917702581072397640823367148105354463635458629656548760433728318021387012175185792971467863039216291929563738888081194282157299549531249435529568814512549592547792886893235176754460843867811144135207538680920297650784616296291449914892681184529951122965114657351967174130577253962979342127322410223058170866433961851017349894291671494277397216396553153100673243635224813080801425709072357671991538040514045466286998269613217603966676395483649334767711010418869957566745825975457317236206649591013223263788480898432863046194286170454072623379511554163661543564022956039854712851270281632076297543567854227394263126678995678137816983763377925805422756068413632033191472975585290399787911378356854881632344121621082175000475139695557977015202046953160122525720812555032899002702814616819216992370789470296393826544169180456820461844102984265707804464470647304687921436483303748843288521319316873113377989441547982110547288792676392516402998672847763968571776717722272286956228868780373004633608566352289552815774453845847580814219898369266675690977350118535848177361494311750487410894338297522412000190046960208212949022149276290389940669373083637544808201349326132709608833763217831321240307603357048896139958609110013324371799481125407134591559794544578021288123525820608105672545902047266957884033479849630021156107256240964995062913545539149498658554740928456999121424545543405347995265781370204863708304762526003156597696761777113853361109510522900964498749950665586689514964832379252823894170451148233883201353543790053372561282337642220463507509102964535152090052017093914591412965429314776231653892453460524748650576661614893844149294966242582633782588120022231001545378088768822646748356841484047099450394247192555019714852053831010887331863332762124971276929055836384993393313721867077444994139492613713602934912140998561276309494949819692762275525889090936723189403909715344049227279322568787862977178404030908760126051686805808472370001719542745687158788777627155295823877942838987221002808279710094211268093866606031623742541213423916045516448807276975671603378384703652766600747736521834544998176477819902342465761054561301601407418620498187108038158452796831131432446762158370369619303358424462589889157596886733232881883807583737671382882533558789347667556782862525789780579298423556259300414224708781584080701966122006227859559047277580419110995003308742054083183927684744419266917818994786016691879027375600147771806448927392140155342124771014381055125033550346922632604529081749905664266180589803835826552570219672543129850935605320931423630536552489277072169715113535461158239498346942065292089645087935110153875631908604751038314759304678650261256888929830410572877703149422332360879101945482115687542250442579404647839085637297581065938162500809773649271751463471250639493798016886125391763849127526855908696555219179269232620450216247113600361188872919673359031849893015197484164110798117429443242332569870221686097169799615204379963155119131032805943953283486078353726110533679982680526834219906263469679879638251208135652395497168240630346736576833935065640697782944110992417029652304972912808173882041905513373405374776167239820975431354057822090084614905550561011272923861584254882821968454164199707725470851554879830653355012221655115181685168457880681271676581831957940632725167464474089794218479054528440605691464076772976329719900006867730833395070243845990166109397788837783397807154243875299469899721890457763735301142709860695355027767931603437352846099708988431334132400283324722328079862067097224846717371908761616699090115799349219021377221808458004594997941981462031786959042381786176965847460942851726663993587337902106963489178008978272805670504974067454074167159031623126772510542471291575195383573792249275978668318879477824385597187841374910062409204667368815864487796498864248655281327714149094108613571815684008755032146809483466454658251269672520830275291219101850806806278366926036122666067315858405071975455953377926845867316105716188392094426637856438943058251472194884341792105481510964937860254407357077232530695212462524401805036305347125798754906345176423615284237096621470444852860069343193219185184454240863776956320972429405294984964385684298971673379606002501659128881470115782346358688870179674658323158025693734236743474082470838130176363935034936528393045678515724535376147764404927018879540711465832322519161840045717427377767717913743668218825247267755645637865953783936868041710084145293310540100042024418604966457318509834076008092848522460628994613553807115649147918377555618455513589646352053562520368162765977223220378781973357691782261765431281791560145973362563094053960060720553123830652675432858005037158073304508737641829068454479106941158892004595352187274332507792556173536660359231402412481405050335280887409490649593825477355925951306266154521911850707593517753357552714163539106655678828688949242450552120315269244526001313635787642851144490546906177355979556539194284379469015531871175402548755196981788672892402631657569264628373176758169303115142674974925133074984389132734186073510261955201654799690975361995207052254739415474457890861980177482343473689231189734178406483878229503485819203300948455735459172659591682689395618758048296852927525071213195436068711142625609296930643309350467792517206477303179418941488025806121813371424137188252575204786837811116595813483356757682137259594742347961188818360946413787338557668521481704768069187518621134911925524411890165256414908764692391243812601766117377273822760025347342816725945278075710690018920455121975275786672378463088340946319125337682379718324592941853863130706728340363694252712553445979330997467929666937135984704603192408416081244652735489057083550654662046069374904425517540403474837941074076450501248331449313595050208312342984283450233959768401497078524068399373933892374523025280838299063039219304905094434584719638714892055946330522765364815258339799932177863606199763393597103744114038857963823121220967752148965077520774326805220795176686577691931692577594976287416804329016463184585255766114938854215931912638161983341990592460269878185942373373249147096511945921876112699527492972067058379219768813243410636034047593436991627924713453973475765276590184386553826454283997138700861811696769008907392334409712692957929868988954247680477856196669224365576861214277029070669131064165359770702781985413147009474828561548638546103223307126418522911382603877404789592028083813902257055463216186801581109359571211555914652347160372753252889181984175005050833616353781951493764717794579089298415711041296467309869661536036188420548360017148812923591487613440398826289308862596149174392463999516938783532375378909355080110162511655669194354611560641432249716841301388070088540225108298787177871259431340470685428375421566660223757948078511138194231543126953726725233130928662752628191152270695679982102399623186204254979694742548250488610974379059404767962597229078596770777879568809147014665049254608943444269885724207206504757118903751787620194038654809017068900880998535253207643243315064853322429152391473174601685840831115103187983262466282068830352779201495207594022431486241371186520858830501631085481295095156647197570730374375420427774904367066813969782513528976136714693352808664611225388059444894976324925332694769077778031605487799071424296447467701697850779437558082218081997566186122534347582402938118914508347556898171661820887834572416201291858332680658505709101302832627254845830318350349584260985774999681737764871135377682705660884328068137812408853362579540479316034003874700805243847724454951791348614427525701544472786028260429087264540198881644321911573954625161414097324899284876094161985453101952515603705341047849597384805725405228851409680013042729426540005022209318504707704464140412137212818461351761682468289116874542063678345578352312901906346829738114478436370011239535157547353396300529118150563942147425055966301060734153076641664196701532516293565265833851586205145308598760627489565934063792200978638665058719081317612066629085895884856810972254652715375471404095141976131886326111016370290707858074600338562453799471021343510205783661604742467541855102754390531575650285964061341756667971843991854402041887946116734353792380856659735846302133363547493015035891472841904192089088136848800780435490818365178238516400484446384389796192222827803125506949230107993407742473264419525159501975735042909325308034085816167770263006126233184768817086378038342617120307636210123580141611028474838018773673853809421350818801831538417452739545788684142315982813274218769556418213105174341415364751472699508975583906151121012645390442026709230309209705821459837201235837364881715360547498604670365869945613528997700247596837355360102434139854041845161055525650300539521835695694647852216430953250331058562566828766116415636297660679940709211789228884933817808914931451231450674404291486237143706038024711829335363244578629101331794718537594244617997643352686976007423683868566014268750005545177620610464373122468498137746644872660290381700210451511787726636162858544799485977500020394530564845355604601375622676285864619314764523804321442498619244557591877407561451567169350239943235904628234530885952027169113854234574615484179421465838291797581800320192344914243115605266467229029057409116744406080796280003706910527808705312982845653721692083899850887703462164285819669115470742957583146482634333587997576373365872301381185137289804056858191040686287646651125628411125619308281192462144808174920299085697758571146358606916272557892311570990093921747249237095361727996698706153372646094694929335671726460312723838494058984949411503410329038907364026242474857742583787831495052059866721390846135937048080632899572369509517558957269230304988971457847226580316005332847794809797714504250734630874665207835393701139019772524642790723116737706406888876224287646329476247201288876473718690907847433629510942966001392902734149952986956429053245424151835145528839350676629469900580892426387664603761564281700042700649917832707217976765568740533856850234956866345647918829600235404406474173431605605005335978927944999598803111464906856891175845991106322018532673817018960052969033405626566611115310009824094588498446880165705727941555352985385276793225842977753032238260045173561725904900332082630129723539530651197541480083829953600264642234003257422941741785816747349667887727442356209861783914331700220048855604997377358411539455451756455255041095035567071807866978454862823662045135148935987028807231360086686475831131691062763114242483834931806353438858061049525720033569510984361026631872855224083609774561820268284777127043232662772098992075042773177369234915573051731838554987693453966417554065175306296447661285755524575681243338193246196890423641490337394431290448431019336903897030051776211828572376636006585666609688189284076838937826791232283067525936728151624158055669337339524066192686919092642681822278259565929788434373167226070646398646946174477297981298858440888911816556500911637258084567055713113313760283984811093451762571095227766915632577677541394770948338428487403318257528918724555478019842100185699028312156840040027205993772170259372534035998972982430883041916551036769300930813769790591745064669786825518470411116290195674853326688779555624286608678790905383762530113390389454804417348606632436079780546242870734888635579493513207353280956141933972385753361390033477340483794927207918437669454695722579169811926609672857989363430857912286651559510344962445395100846185069853653831368019467456800484601126836784538682342111595348230078536544325548722718393497544264051930985388439683296877568739342961104341826175924414531096789724848999369600286914065582448323098280716223794129081935008511669969190187884965861894122788385159812577305459466144102281798235527449672816157293143912090463633856658348370222592005703392486923692406360965310378611764756376813081162353881829781437237985788127674901738104532161075860254236674499788702618551425858265819322431846215642688420561295835880346981179143298835911496753674862484697466161119892890155903051474478921950779188957545640646433141428837569050470387822899838765542930874944341239171823825270286174177331473947053138703023660580514160041054941070486145068625817234444754471446007175175969494771747202618771081373496465108321794284089785836597924092663524284225688490747308275220081944473749139408239743559374540177225275702651567566185061513901429836066936239163202737840299941943333261511623162037085913307122479372281172092026890413363702624108380997773889649097716494169057925268751115351812352777096836129405401313977817117804640170585426257995206444217410359464790308186245344755552810590632568004190312489010393525285794761339801790660418339274265924290988916232836248476525360191029795186689128780468258311073120896098155133968192499523763318224129085350351817358409316905778041072119598287561863602573465972149420104768563155257456847102508768970985561434557456686670712740166960215991928972382368695973511547028444489530469738822056453458230302096753134112698643287383687878128326747168208126611014990785939530254311105348654857224320181580996895980578762753974650786952045255033889202083782428154819741543426783272600547860117302538185512847995080490289442785675508045567644952610890508923343978858784760201631590753721095056351911136828354891202810981936628428475875831589153538968863885782714635509849381662051746554524509532094924106603062063824454281920414611459452751894762471616943068804746213125487400974703690873788156299274971758455066274373377359716090893648916296247197651928262624781066358415468528195476034653504603850375561937547166708861819675754777247227522782319659752735365022698487412879528306720466386602507736061624634292790844181884840148563394835860024739597946547716922583189296343022324317646915150941074774385714651998647250970708433396460069571261576784150110553379882315319856936099113438246635578352739259477251675465665143040347081659339307501305979876691309252834742655447083004109589679476007681658730484508402838554893686197990311025386092992812844422276238448758099357589088618971623791575062958837934311090329702388772418379147254662527391847236408709762436197049617670276153063373008445894572185374943508148960738632201554603918426649397692049281081771512775361569208310096760408769511582887019298375357863459653662065159754479755733392602112514381677372233954525962212910003596148228991461484946215764092510081643337388979356133640870440381120419860536984161994163370733230005219149202950730545553324746894826185130982003311177302504469101820455519658924065890360311900406192633020053100524638289912203845264436458775891549666503799481771785674683373414726131174856979399008509877587870672918655451368588669398865856562157443992051779947728949926271260746222063497649425167324139789073307269474786595948520132393195342318163734626590151074121451517724867223766247009919962794865186755520329998308714168899853815205600539619722658041940878744999354565076181747103148876861650750403771554256555695253174462509439252176466682889001825330591136882987762594618581200238189438624938823495162386390530070943553941144500066361593082674070120784971722018726864335347193833394876114260486809855423335006176107461786508374156625147628321568937924081063603316881417681549045004915556038495643548494080808902668785990450146629611318000777456672905133077612837089470888692010709262388319151622367935081928251055190657813124657861940118772064725098405939116907747299997865142949049177536119632355044760289848153808074674384448995070697241351620163790805655067158070614084949594494091372761834821213859207397473442323577877383887228077181133539930888342364810380542114275281942899849147629786553685650156645706695706661565891596019065210600474870538190386599733633294514383540085877148688900836757378768681211774051781490708608436922680038936167106017886271125009795075682540420858154806466320685297515110349945486945881276950977216344450201127776869057981987128519572850582500704117645509382693534813251375334598774132558322543410770445659640511977223754596537901179899161379688638055830538522735909718414237335500046068343864306232385822110925497427758924452306321592769078225996892478880771335872285116386570224428262735737564199153120082412754682601648043886931482119176414083518895032426324167200469132987678532599680678266675001464870978466883360116564670156850891460651199620669351595960340244445176946351590916512362609729844327176406693220787468613247450753703797401133930138284198382352924423260500148278177270002611880563254199658578915544802111477858150040003042437616446996063543775264421711793383059139707555996005514967641841392670606428811180969071115626669306285524972297720657695205535538526235372805555235558289077495909290545267974516268487358554025565562961254986319660809096781239097820469866214678771471790278812259766300660881959900154824733954845749854626516982728875705925978248718570667554524270089484298050311030235391584379078355383196134176454745021982876669742450363728206478560856773370029925702711457471148725165217747928810227981319621515129491876024776278709016927140244109788483085441157757272450623882723002264284303215922191779766309410165299928661620090286659857200331173237795744288622985803807809457116113198680434218483725171344701706748416144756121748777793858014246306770784354408344728640091113188431993505942705109491741770955989005549371421471417489975883182027482371991565202129463205449931026599071602568377448914852126004048575768176928754850128766348789055717167322472524936748630946405194476271004060554612309793019673322045997875671882283280011551510736707609296981747903675544857450458461943392690059778900141845920451037405744031173629902664735201391076939962612089607973558947894465299083740535300699735134309278428174841519238083052819361976083461220175942985315954023343047634524981456474113886657742912528794124510310798707296546916902994075484794361784636804308728208533700344837024747986982239082197585178648743469057620090761879898065028290510690689324066239941387427972342405841019573965390407794109236603196938373282956661368524170785583757124133886647935289876630846317611324228432131360040355352800964481893866720347211602612184585741869745133541197215394153314511970697467661693907856851753938944524828648012856043707017260983779760413121806276833456351523356358092130159011568314959139719198767154766687460931226311582019641066919477254523724773377013156439591182000656344862712242166918231891365661444610105785749916860112078775754683117682531437398092253009164774903154996734014534604319081960868114025395806624984334883547916533369801140934912291705443081078336742590668450516365029635765625973670203023023596065195346251549771843637666844681809467643495457961120389432678711647812828223908662672339570792732012810309944158541989172346146071684332879340465789744260540624570552301039055905587927588123247872837605289080211051346198284559377759252631328421286177947387048963492693198193758113829650534252738436992144523125808128139856210455587055017607558634880171859749279072701428764552398486656249929199124735436224494827070071151721643274603677568294025009536002870462295460990964550200735375378161975465606317749342542490738135285574206353723660534564041615035569052441978743365072961751854826232886085442151927714157001116062688456557364972706774715602784650051900181425763076038210268161517918791004107755340012137058732058772970662887728407525601245651832317542257002580349834125505889720276565807100239792329493230239194403058250546437331930144750497974647188097918947860563999025611621880732445519071434930176909838617530417451967223306225612832682427895386796255174513471504099502401656715833042274452328316925682974579210053516018504601310116470248530541201495063719703700037146861280801322872524118747305742018128660544564480012354819427888355723852849872413030111428113197276929640619438271724920173561774628071105338095285944720647423751154447252427670424987482040012643824763347903159707309579621093095571186640033565975794551362465343036486116932507653814201721386843825305370394175482689526762515396779306838557762626941192444482365069671542025597610919830241005802452600733735538649705485709548745429572740236826137695062379972830610571465580942099624022763222310668245499375486243632075282559006636181281411250233888282987486739567915302817832522703091372442270800059895555734643694589653460432228886030621952974319030962683864010100925768761698568660167652423593628089516712031193380961801333394618363273425925478845042686052954357632497873113017378996887790509297735288519319606197084837241083721043965575371345313207786735302032417890827096805004324211733113243512963219613040808070346567429085207302669638257490336480992053648273697944776842719185590522476817695882804049250835921314384658685279605168117328621257148543697906650889409434569454032628325925676285058682559707867898760583991097820807440627511407781067372529641392430346911966685220601449448162348385721370713297593339079846192866181701187551441511600601543920687502089096592968457488045063024286443051436431627891721744327862640336859249734964415859895980584343250959450268678173651325593182165107156667122896522790156375057688765486699563737706731281535736948713520143718629627608946288381320494361633600022589507303891665081601610884085597894767989917624727241956353963722142800654595944418728083033830136505870442512526724842290338679241446692977884265549948551730377065942491485191452881078620301065188858356910968029242227064342615853698429384947544861895908347551234600123257835750707648565585287876853991255241950728314272571601847618134876039322878472857856518754537866886274535490332294022954803601026647661135612843983364636744300088064046234964933869871846441942502081442728986876512437090512135061995836236410291814744477298367806969391879799534670874116586087283391300688047354553337400732212889639619769089111281599327349656259372455394372990333996102833476105038504599556706913126311371847060418571743158607160480469595279015825672155163932519368854804198416845217439158031046806199052371740562608514488013658886891014370179695267095750181722356138435336261756958159112493771916814295315353386266368914896170517008483523840879837188917586474201910189596866495826342192621803761089042030419237516455527234834543789985518827847149312628606673515787219149420668103785647752050823330590749433018105483571286821814511788373046174299864429933953860563890531273279831142686218317674610347180607575283444474453865413514412912408905267415426185146768647752509929990241601424162876154085824824001049351471818270997545559960638348112723664147541953121864603880781837602906836428123790056888198958697935159504071607994019253748380381531336901525920820330326377520943532464858672947053146280775065256828792084739113404750211728869339557868939108438828514086059055678170320085183169214554409386955823355238801949765636748797537206559149061781961222110684403808190611102236748183369259579309034699967602742296683142743990815997317575541812098872655058455305534942782017753206400314428506752025399943322406159782548775487165729131718995758245333798226332393853729623874565537759392356726310678609610086548701736708374282529817251678094921311802804368693615567105201175058383641387518234414466087752333004498647301852955491585040732017923306087047213110980391108928186877622806119230571239632490898266580516655221519739963636533295455706476143435036342921492043694923457700283428463300121915517550001359623684010020698252152481569045393228546917348155309545725052068824604521376168194924773178771123528191992638007650933687645153476354407932954336791934412059188430554619982456429850576533501272150819394166092183837219514873696687188567660318689134019217180648000027463712222540355215492250217054517099004413168395035499202541223294582264513216529984694897575738465164694557398063557778413674935796363343145725681555929658741480857795138089451909638347306703962705017327268535381983866347875286682647342125474153082504279686146699810063922779437715746268804313906010086226970912439193107928900617006671368267720927381328083548524738339570076085462733475819768106230301429151874671840000895200034289701733229102860078104469775492938249909649741975949740838719922497871112844173857367305303502330645757141058870850302934856704312213041167797875920822720110812757945058694309070132572510977930158815079782026844553332217818021845251748745727975527493718419812599705598171300198859872402700100990097650595596736190138231189898585933739241019257024979485319146036413410428308330266609162097885935766965914565296441818344608294264828352145192812789625918034135756032910040045477372699809902585737164895631334404217566584936160110224988535548833506747276581310727991354928075664542587691650141009807869884587580641362476858654593504307789754559645761758710169113740776718507597774456607573251994394597701993032160972771868548348996078038419510755547188082876591041938540757004899934236624914604291977343472321793512347421609627823912143136499873689413473518488357289076184840903255866430570102659881347532246822200874219306608747044074307221866978522840064354272021105900101501934810883335395233748486152450503533184564740424197704177774416302559708546015840368954783713184964324760874362595285374032841664970391148391514099290456699349986238449195467721645513789866599827390337422226739851556007914596013317426444415861719590898397266670815495754001633686039984107865777453481075268366052420250605825091594708219512927429295765046042248205429199595863997055268832416612702102079974819818798361893554706228059052755293851445086329439979567685793598467445005733360605795453756167267033272475618234696009094854091411227463146121853198749784711711946454698290160432791915174806337431906631852244219834249977523606076216073845509421898988008144128155245434720569670081319000172429748848064108960437124480965818386335327217625197716872586182706823094744029248506353443782716474612516727923652816562299791778036976462266038096359774972551596305060401730378435869184552615690901055606230635470259569137904891161891867614371581953838260906999041763317203947844788851735226852440698556762083835981098360359272392912967046570310629720689009750402095411370583918089392332286219365758363587089090993465479812016380947850447646040446183114156043296133568652045233827516677853670911944664364687735033356689273056721586383960093759659991889413328688554130432255005131836247020181380958784315790354090953584232185451883449522439397803404347839277007917549561230272073471457358164026945056254416542308584673124202644507101217446420528318869867589683386790350973654796760789526194386286555940832358820708240042114743604916384574708895901342416476902409534891404479141200105080394581760556615059478981235406801523974827080857938684098232157831175856399682774428561084964556412400029706126226705777420089469247992415415167937418573009388506297761197838471349126044998354412758533222108301574539646137130089517344212369722952968429076239333501113295955671510196409644100651167050783444643141532547920833755544888646842925431820741308140341077737192213603516098697207234920074104312272631773788987574486521146868345620009794795398999446270758840296797707347791832670360060850389865458400271757614148658116032764718634081695590989570972544671409185659913693774161616991975952533728995164705959875916848219610913875506528873478555401163000484664528200622765621689306645151422936047483765969086144988535509148211423776643175664163748493769469090305918522072115414384636073282646426436671798437037458467650417840027979716656303314403482689681794302691887499554552334411165628880239529576275240632275326473134325110018419784743586026193190290049849231586231983968397953504914469510663031990931717420650159956297401590581406258534739212911945138666906627105990678698592553224236321420664291776764370564725652200628004319579470448054422174555651046808689153612017456864996469600831236766448697033321768902308774583132492736053600574396970139833994295940889326996034247948270199983672593478169377605335171592908538363317835042269146776431666503725267435126432690079608592921065989983148274116962734614171905234810164101080250681600116174336756962438635712135881868495939010168481321460096272442792307167346122834150401125838242776352505435270466417241389367780229348840839721985379722483811886359175786252697999857689650322186032557315860135554875729973969479156172616956204801594358982626239778135457626289423501497790719979398454912315517613700272201286355506652140749631286034220249561407467816840034540495773589972425851462714429826064574889529346290571842944756392297140985077875353667586945518135464284483397924873045086874490846615624302845083531837626653046241585019304341709179731597200475546974876533235828134360689143874342185215315300674989416633170216733797629102760092748346398361843520400431441918765041148505071943373788053206149047277787535120557103625208732871379189419756535569332776737365836291846675209547434915750165250298966968305023966886483728115579853493078653695549102512458060166656057280440496941028895927322066089978330587722157418704203687342170461005564885055207034038934377556888430495302615366219812207549012829787984914522601901677194614977875954030520112738114319742795023758786270999910611493133205126503578422787680061448819947283188602456868560569904818973075379861265959369883235088523680712242277461089864920969462836025831785995747352739749406047158366215507879998600818813155120171376981401590944061835426971050294913050245264557100123213902106172564927828291027962138789279127093012266143378021675494891836665663604294372981664265122451074785261329879416119202348292463790847696061217917256438456587428088559086678486484900424722990813292315090100941747232878254653742468836196535667441432005320458919822415667620478284798460597689276374883659193525304416219869853402730389720148166639885626486814043976331549565132353368258072809863172863680437729182500299581216165536307065799215781027359189367203250099256378097988748551422224026904140179721350542188857539842690467989919274677311161568066571124264295002918804157282406811297175678224041639802792608084132154744247617996702934063599692766435801152341739465233998807570021535830992412842329462017311425041136484110990910638534031697612153155094629883524378005009091174462813442494359697856739161750924468023720263180822248830370410389110925184125745024392091781204099527136567753604209696869045106509771787296375862004806538075094631371875482346220848858769994907906115846980749228795128373494078286622639219038558083812939027165815666904480308876856710757344108780950967262438958776422524433376778365723089795466057725195161020718666269575099429611660702019109106437897716429020876356511334582910207553542138253179739951243320389746717224383536768204841927075698491160202017904711922436951091976461901539203332950488400666986461680234133981044656369622968872293690135312574318238640005529501763826630414916225572895563777143984927764222039777196947597835221296532012528236807179067128118718967814462322284154745246977510939197778431330205981822946722229827316936532480324179685371838421700211831627384711564501034859833990302039649616264021561892833112622228281745781552304014059757380216931480598009180234477869404348382515199513727031646372234356215147400055613619351926791472854699421277302674196954515699535076744395240286305187457455028345704391269065060171207922713711619620431587773208880726059228449626157194724937872029499625257510191549413806548804214040178493649894021370779276758200224128034402402703105014756264618014830307719909240318140069048946813980583687388727339561196376399003166681358905908154304191203941489766018171157783537227185663107189534819060220570706737911280121722782279043230495572161559959590529204120284357364485286384274079288352598854995829889859474006662738793640442917841468052183704973450781603057412243081412452042823097611535671441889845191393309303359436555042039785455735341068199896581878224332533722312775712843735730553555216010519172715468376727058090656050376767928389948380807405800882133119303823122838215610005216887079404630350477039184023809233150816295526943546811043373576397471826442143613998914126984972701551905247649485223079869471925217157877287826747765749859852626248322856998537731874433916754806275315990552737642151160876213994468806719072643269075640983087008794883511678448150322100626369831341388735064346514716147910038020274068014886577368115672229325787474233547551184881341945678437128636830939431355764135953121237629113498457119508705425386161302177054357668013383783893120666115818471562456288941703122500477423478346568157760013329797889686522026109317635582614947199955633258567548466968847277458565577464758520862581351972552480981996523050958270838621645699430416991004661218296904418102916653563270989009810912492008282230343716789795668938412854253767167714449766234046379491542389698069213240533722881641055280135491368554802070737509523841341322935775041815719870139218367785301952011802379372227352824556188712206219006364069611759206852694737797557766273635540204580616439113801872055765376599266106558080658657156293042222030846524454254644923313893142836860588481212369426499432660464581287642062966465937259337297961595633562150966561042121463311320408962931429909681820135445720763352185444799694007743011910909341248293794531735977500394746489434285361728512792168270044764221052185573454045392944357276052158870531982039270580035366577274953390039674555417846398773796301603259490506793474589895501684377924152363230517405896116988045502079610454721026120568666225153519331307581872941547161394858044481397427227440797800344723357432596121273043952296071933980711932028115949533101179409732520734613102033552283608958866882498210600393490525567564233852208718990730456760225168703671321661799020388718837574843540248739920228445344948648268507408674837983550718406967368956369638348879463148203355593809601517036404234042453824923175386691273451350297191408001516160501608834739972670687434167804146775633736493107455996273008022510298595102990397475285432365391965423573988652178559613547860234955100080487386988873020484228443550091410959089843328535856972046743838027072460981901639944706112311388630297439956503921032116772445087326920186370312268411338111114497864120561468735216634432824997204580125115248765263934396033423010998493305588988617643021994329365473103214706259055981377519622214118148778025510716862952677364863576142017172230361421289739432831289384770838903037219373523804938776614455456498566844969965854617191802704275726910754415965335315193682497441864035179173347292929069865497844726129804450276654268731396009428260407160883144758636950554794616036363639058555788465074006787121220458571641785447886422925154536054692767046903760141074923762201378784011413518935916723594227513675370349945877114342413832307720395275458085090548405255269359695900894472563486557932293445207356847929035052406513720073207058484189868629764463481251383176852797392589323357668537928975195891831879259739652522781814289915122384128496561057153231581371560874959364223617226848318880740621792696881198493343718108006441277307513781635043343951611925364012960907982024479933345906739039137152278843735858923276639772757283472227470406488566792019259507996975859044341973304895541406687272159443793464258564506329629673032691593329519350297456636180294648099837560715503606541108694093048251577840992931531900219683255582393120997399373168275979170348029191229236271145453895393339160342372942453361052342876634385561077991767650886076406564538510398495932032873452170719735132407803979840821752242718264229458175787154364321027678077465278052893492755270811643406934409727699328645511919578149509088648506066650178347050811758905051018660993706461011108421682967810479108410830646496302099118313967576875104776119672860096315872776972313172430927714889117749875812447704705004395955943456254697856471148195242372664493912729891680830419331574788087810693182024173166390707049187599264123963520074403027889263355749967388339203082049941537017200040252552188840781422810750404880974881712370359963550895043962020476875700155820471032348495200135676539725233250427573340866123533297114645918396985820270720584269302515079421411874928596955923973783110333086917473046628566728080618606904596306468250279291373769528130223755877557677473724091992083583705688425841230374834199742062988767386405415616475937067622888505556605760309237231397480396806988228235223055402621273645241933815163809947898061554423206486116333653963375369552607369500328631840325343252409865578720100552846936013858168866358036150755134026157591780761651261988991694866929770931892934642075002177640907671579513646854572719124804001310182298638184593187846175412157486785833833858977606014643179755627929830158727416016041607789863411238527719535223682392037154968537620546049409035496899141636462351532090206013320889211997860734726681814781078755024810125622138421138098487105233239457715938618655175339873443818621480350946833280133285763687528083376815348856826254046111558730575747357655948081847213908377262170606471963570325446171895391381314852105315007943174673034718435251990438292054888081258888397289807103501278945380179569670594415469256539060844436898296804500881432294409718827802695862176149185375579180123460455042732237901984373940636939804306811361791359005600042686024364312411985608622548553307911663477092139265474895959228444855681876354538594588135382705926514762003437625301377432258317935793933197702197091050830921765823075116833171326635070727384050817046122341305953253735614634868042173015124876584238608106498691532159459257962195876645377522549210672244629694962949890305371118206530167243483696827928862953506699514455352640243695922191058025056271115049382687919371683639455158582673672730784592606280356146595633036248196372755682985297038455277670851705133989809778614816605872830620850563967602180543265740254887341507077383566275575815497185308405477182438165991989623836944499873478922457653029509259386293890279813066879682789625230172899301786125371650375300410782980399665027392299909705735450224715971569462340758452841199780528618482238429286729212591619558499387883529889650539163124007128793898917294498388901198492144996511533719390384525070772906557998289660397563273476669741080546067228100969716566397229164258116434959417697703532596600611392558407807196941557342844066126843543887374721065992665868890990495688767527546263241895674261284489745753396739291081213775207697548468267127658267568853671685179326797092368027164323968766413717050913724306528130569631130190747558924845185524422815879050737981690370254023717275561959196798152763276598683814667698715062224131629180252142525635250297592343825936020265562556733434175145903984665348631341186393673832988867718804952832457222484821697084278298835672131884043525958744343331477125284171105141418963285995101404110964988509168542976982584430528435972332188872678539454998003803241967621499414358281713668929465654133133624275794158579897281262526972804647325591339635755991625898039500843205965484183820199650858182732712314951246135037050441212945016505927060774867448904543478795650049292193540711841455341318049517864045855467162260246845701000775860423880764289638653014349717551776458160439184771906401675174754377162564989121852217488916266136606019606126426589924932731738416836119626789464330099622594571451961496247281362771639771295216635919312854095224807856781361267705140707034134501171604767072721139514930266950712697349420082373589596936392582546237803253081223935054962396501579212204736622454019081266604117255742460972255117608686631580488410806229523827619031085688174781060698751874951159593577479488092635911191689968290786620469367373235903767696005244038849617234124177699550453661605796801506250714778177111229590128707004007593109497953297422809674981622999961138060502196075154613267505134539143113487657960362503241563126981172399444505618524547670384643202251807581897114090340522941648063473754387017384869989602901213603798881401791686816357416769120946258952816933766884341441107067947819542592757036857043712654714946594609480124841965964776952374877520575201661661301268996437942889353783710745872600636702135647939703941459522904059504569959428133378746131581673616989163761979111473445073614743032395690597509211717338806882002141564774243317208233031516946212679204386517005784961539139358340643696608924614054594366195644243158631119386863931671592854924706660304715329761419431964453454022691227198677351198715445086155202296121981508970973720179928004159941495978213923122804456241827400905238585408481967812829554348751377243872774026104373152489606343283807821486913831619236392884105386427373831808551021574441486112173355440534796777050008870848139255969620767979583149598080319611889311696384220909979870176704057681994827019917408456128852658317526675617394049610402467014261818630923887322875823914966538201617843735058462504236278391685111116449127172028062060370842776817542853221246892506643570818438254877084346245757150486130019798024804753139006550220913188616895344764251545164769198338609166152971379369455780208132464428569224712820817978688017675776473281579196403167253543816220016752080385517364208241209312139970216216755811517028843072707535439766042051127694250182638250127178721503641239187547990777370772385768038074580483778188054486774235889038715316922783870846241842676923027774222884196142586741149279688316427402947662798840549917924578099603815813285350072528941375381212315610302877098280106938762667667371358663974556044916954745011188266851377673486156717639153092691514208158580165601296300506265890774922938929344823494836617480737067863854034613020633325284591410417907332722796824754384183201465886932157576573724450123927290268791778173011328182762336604737333549025843844839635277478006947852871644771833733069775613218434695422895187693500089662052764916081840140308340774325819082817344706423673472501169350098005952122163331653517707419555097368078779531189606830185899622956356464324172131450301080934183995234292651174307159687810751420042475054719303290910718327227274247374015248521197775110137597178891085588137819186005812442771865881841721345493060314692007782949837064936282111394288052432467734850724043230235660192334549615053296667836044310052522851993765513007941264144096834922037415798748949752766518617199896999928349630109269579161431496516336296954632614653962905367345739591569367222722565666190144596004045356779371509785065892421215722473314344781248424319487759311010144454649632190251922150503330454386469634051009555345375081826381640734139248403623068793408915700297018436480640321579967076303872960760795838259513634407588591878343420463677230269311821749160646839416244886223098024399143540880059539586586915840131069021136872000538488849385425158863420366625367225155034175015948622122811579221813780796737652010413331805984419236545005608144945229046305074547364500227823840923264827604538548724249198990804395729066649683822996839939880386166098563704315834706581712561932175981126717741751194619390427760508402281521578607460423442993522498362271424651999750973567863156446317593530157794738824205932562007058334015464470269378380436301281458862995693677358641084129806726447580356032804388092797293965325084224033072277649194822839697579193460560540565703538529836869774435059383042039330143406923272946178739987918610469574130207793916956408036232700619895326384866988384898207315009332637751380172897314885660646274334203832045588850142575648384321192608537605234422692983016661842574016952909164586745743815512156593520825394549239735115468857082176995691392179546620690209174806149845968504289412823611233652742441383872699107882842888052427006674188309799850089350473355125036696955831358536023331953204578385539126849432929141258715170684586615545963821218090723932104531826531737152720916910492542979982979817430852069486293229095567668033911387730123202458198494380691383883594993637740351725452561114432040578029598196117795823202609943753738665248344305950398775053481622164644269408007064160320933515090835360146325828017068328310797868865644198500714077162104047420554726462561302635586199950888883213162147634401080975253868430698915201930902669391616699050463187711651924334253671613697263728071125367894730193911362594115905829946712525198922034476512212334266908742790088095699120942852441472211417476203079207126493733354086922288559219034526118493413772818214176959987604586198650548591302978690223152891982137681343383645772759035038738391448588845444547240611131225332991418529278279839505224824215528283487624878754946553824060333895902671681326730848175886941125165688297369517067140355778688739058863138025982115266487743385956901610093110392033989779793340092802760808634419635261774669512142148190194197649941997173024268909887866229808924288980911387900825571664781347557357561253018372009011045707871243434344511801049690797011579967236821413479077413856985098774372516506253368664144554736119345772302765962410165676391010084139441344777867345196114489843249932005544407371428886464551013118884488743949111723986452782017151348115527297785991328015033914036503802314261927810034724017592967690630784583999128174012675473555747832952397907823299672876823541799505857939760578519802892503204867766553294059338997725715017446024789336918684404162235025967788917610310214282987213860626443180945628046166963433420468392092662160251412043303878177279810196751069119501535315210692782266067191576358142864689622657446710547193121859487994423690856800205303000300772721992516996892265851384756025004460730922164904172314852919546081192680316473322309539255127027580048202690951387054993170118136691281039563170143454258290783674057781009738692770735318124043248065723322807421205272487813193540752389526659154915496537775331382753317301622926946889324430545750599988492957960259556404351052704188900886612824080952528019890196548145808107663771839721603323027828289816367711296024541438092568913166696489397047523958609622843422904239740455543528750886349009033923010917276660172680856228429655488702763806145736183661720142140997575887642342656540756535167763176141058494446157194911915687672846974750255335145209161237756265260657056437325757758425929775890373435667965336162589778432491632163742307609711786074095875568440623281138560177225082160046493283428311344066545696588317561904038652406112719098574017615702136002965520924059234098964723167996131722385828151821386512238148851213321269745112710380066780731289507214159426883720012915228739811956048161183240021512181276953572481613952984775019104735732362682630351946007672246183031268007543758291899944488316900278843026103307235374662609739255492852980623070795939396493682625464790444168282892803861776120761932196443069147148727585664942534879880684765686674102053718237330365876955064868943084564403149752847304885053896412156826200917918597508212327731798075372244382820022085045485166950184429329088101227410147141248454451586779684175661695425934225974195872825581341864945898637103780516891951163019625339747955179995280873876561885470935899114931038964167060174686469127531756044749363809237455949355313023522044715221940104619567695736942537622870185125252926945053884581065877163679897494733387740431381867814102518974850668875740867820310575544433888119221590643323848206725448846771239263128899551122436184273988434145631322681587772216995213435265385789840957704774401904457358931864060305701346598673232986263300175799504596554789762678039748534693122662171156820089818090209358849773188027453587731254458089637596794992969410441803542017194171996967441930473762513249912854601148597359366736465946054510451841744079032116500319979787273640158321376776144829428407141124092077084706460847060002541847663114459206439107164112459415409830022333576644710455837129702953898242093501659323417764231351065152710785956388635832501561255661109341979461743191541374132417497104984224108253095499124587584722066699770615772062022743047006094791701221423300506968255556171685933622590850003516587423046749553904073562709645548920097856296878411698963281690066637399412349853931695850515267653849251653765982293535770148079447643910685654946847131575466670570478224571764502183607489060740758615066077310391545355580217239880783661310671996070845863795083874778514738280503459032848875322975329859183943731859786142572863758112417300213727858656084319692398327709801788517467295624884644707914891333267389747907389162506116279925175269289706090466960642153749898921980709994814419820915445148467230106798909596538932711561838932193100039763456807109549465840422940343751297216952285329308253560160089961724067315536543296713675015682309187806164236775865394567158394377407815352700045996825403068363300314640603442147104664634822521226309622702660289068891816632774814919865643424956604192213290415160304108073035063215117976029063559448904225349080374954581284305056426653460758773256916846239822651025796159557655341214962006843418628291504613041864995876069037494113632509956181054746733748693923628654952302234898855535386504709061293505775936631158957536766578256478135759828522009268524835526446608095510972122484663154843601013592353916580713516589356906811232472742138575856453485921352709276590042870107942063689760688578943971804562566350808214847834538028448702748600219086953823730297273963511281960386638887395841875284243257451509235887754687585539087729703145760329432254411950345533097796228796915499807680545433021253312314429765378905624194583441190088715711633201143670441429347587058546682070274391828847288401841026941102985820174858648067245690456100896267342209969599217719739035485931394012220002562158798842310830749571420257702674722762977824190506888603855583630252627296883613833035320859252338635655026046975581735371297993888731103737201438835146191621488104230232222287942247796857601952210164314711532710156976220869938822343713096791276745416083532781449691966766274634644050452131359051777599486961624922930120062584994522045201452385210259158783062289460102171356367782544815930478254764375501437684740384715991976728116940060597994227858043759199231862645351327669212751639316260139084249536184387108822438588233817770319484942597545613880382520447858997703579914229941159490408554730875660297819028289122516158057507075472389666847182395041179175639600542542543254948552757278636779735034164899719665955372614370662184951860653835525097592040390628571838699460186262466465782957048184836389207364402858732358029442498014605600125591376063862545756251356748465141306521369546729627215382669586962380736553795337167336112657859501873831342194884473523753114308777429697406019070230346879075292824232770354859960556139131784348267682395766694357960471814079769085337333342208105691259004844946469123149797483350028150731370232265495104704229513964744847989872753903772299207468446883144001370310913958029539770432744729150880701897324206969662270244489375649103562550881014829837115114025022989737536623584589037883400463042568042236425388859401593925320604400060580114521941731311100748868648706521229415707837716801790230039515823853373186515154387262983797452189869296824963734073783089124748318041322662827624930594139822026552678314033065580546638537410001677502973790277394513836444149621973069863469675439394089677621949877633159082068553355199648225553028047657783020063584588475241565772407079604502390819722618231447866474397422580461004526893226387943388800638685772747543847956141603271943582722898400877704429223383676643034089736743123499715268064654364614100055605306247003091987188674080835350387866830703429443831793328768767763420725952042505988802780134753738945700132769308134352085022853745109249022316737308466627703766686737993948877041828256556601491472874647732908707329829084630120449850619925730297983662530003686804657873749710514201382558279304719845445355562676353755452157877443144746617124706130334472856493457136641855471281930027930556716679727176962214173620849139398044590932382385290157958155096340037811084543540709882613148549511268155361895030651344870780895568590534726320905788115849304638218940892536122984128302344982212710900835168232957600227039060940826584423396304049036893384958508119502257232545710538124175545338170647261988151722553886649315914044057912058207564440391021526158709587748308686029282936265667864780446811599086646237917174186742629359501727066995191072441578151542943674396063297290640585047207943521074141390388194214303841119781690136489659590751844721739627451513593748553762975724055498104051082912331433133889641640590050952791184282630339382354722597634559198905124659377772915021548336846528412708167248209589194022216868424611750146119921813406294206150536049404962845321741155303336339254033396656220003363256432018689966361861126762540965199963259080122241411921630702221753845509206347840446611491375052689368783453698135558510406942633958206000776952255507471284432986399071482493258820440437150222770428059909601018472501048531117081141612108252047303399444618117792377158692006512230513614350053784958377293850514372240264026383298488526049875655549787575931814214286918785422121450609374763738656953993084812246406064505032702644272473565553056008502256524401880343606242242268257351949004153390385246409686143500450925916159044424308010694740440859361536067297444279697128336025614388403321796972130835208166349340046277597792784509028711004681723454124833900811805987889740008428098615910120513077534945130038760336429806408620452161107484474236724887880000167357588769872419936381175232992961248585815832868627826217449815008147703571394971074360809769761050969350140678277942044674514138321643560605010392064538126820009898469164405732472363009976182609737204636401702530590309313604371036561465861267990164784589292266060355042236229406916153098199577305464013389555629806886794328955707380863145098657373954111615897750131288587857466307666122229636362561099890614470096120466622306403040484837570703165785201721555740796469548852486395999598737643437933618408323277489155872074334931587843259951976807669096420258678772085294916764080078558502923508370023923637060450466171259546053654098518107154285109588973117608471628426145356432372760348483470727432902815818364426038156019837573761033564649663261185997669721511153094477604364280494152413031737248251966371476226741619668559322039462817890107658258625742939047513907782420013368094515282044637334019935574442046266491157503661674038252450905226771889007839441326754057937188037770864994514041672492447782529222019414378461522757257991618103221316666091114668201030123227283424995066118452734344088582612259483326113444854358487914136019755932548196381221142849975075558204294676422130978459443456912727612804572454290426562397588011780429240478048510103634247240278098999672642277750291920222804973604731639119314715876110200242781978205241038783360483347512577949139576819784706713498576502384987940415103670646539834452535758036964135373041167247846675630474696918368181473085561234646721568003759996523816112762244973564365441964168311855075193741564488296333049301539011395206482930893296482977637019153825810527158079269087010308075917241218168300280734450889327152183258662147535017834582959565031507309301717422031671345311364346507111745286050572268701294654985263832653686815791785653894685617778748452114194489124102913428698601608933330423731595987911404890355507373349415119089968559416515723422078619325994460220775122528082857680612921637837675416406097538685482457082212685690991341794713352468706403663805081380833502834868591385046573296186383750980217336157006127136834787082323665899923339182202504531548536990088188131312809406698473091066807198760191183882951275713274703314912843040887571785595634621634630306725238155627553532350255382585395593438534053284699797308897805762773182474884938444903749699841325966476062444078756755390353492791556999480259175308469252203049862349172672233077718257182585551601127421973089003369373346903645750229647786408471006826094418272198235511306307033687372983575985147793245508377395839141731554663405903172138161487086052536462980154361296597984999199715390035203649849752143530899594853182112579440335556812539311012103704534375476522328949587379448826262092902985230993515706167632526489297966826079289132316455515669351337974512677570180498021194361654151217657114015812753869185062410342334990910736680784477180163228481900769995749537189938936049102927834658413310281146617828344411964374782770315721286320259125022269555843276894887252800190075149400147398819042761130261487498380825961445810524128607950299097195264263930490060788180241678281869384795499360118194492075619123632087712931216590653363100254909946607830301544092634645963626423143911155694717248605089340349417245580413071388027984271666633028084686188548568717217304102373032467541417690978097015134464018424427670280500947940397220096392768289520508501448603284997954850615940668006510786352282400251529639638115711750899822405745913128438461104463496502100980651898826279706466624927344478968745506763431524778413687575850725987674759671153530010021180529335097635243714706986802550096145261529522037538985246462444974221802786027093996863865983063595742364117476333252777409118056904523221401943192199779925383200822174752497824552893051958158453026370173315670232466905825081133023581673715089773302194670090094344837461347784164279791365345400844384122678387292777848368993285536595814442080658747745361693267567147995712857603042077107792664096620178286227850462904564004975597533909643198540322539621895974910454725752579546734083820129541975811618968997873868205971793679304265663004058974364629620783466934598586582309764459948178980812369265874111193110837310609408173820815081368509342735759376358714123164337333130963146539593535651075581650624064413910156659897118450551032616830280194908435011730053815291306354035814668937642371274141649455144218375621561150854669060553288759712278564825021616097741641125148549317845209856910162592244311162248636599944796317953321111088607644329645974149468788761626764932222955764854019687803882881275752636798283482805525425938144283441844987413700534224271861943095768859669215155629430145869566434766112181432538187961434795100692397537034943704371685628017409554042957875411556072513539806802603581394241508641620033414935829851794079607145310918273641532553022303657342685503105293334570036346327614395176519185300126193451118473891751893214546424967165144363922725014323246626844709544609707642519777180349410494389367118380317493397375251516550159653430071677597826290610320805243062688677755179347776300215450519649943894980332239313457696719107769304704871146283907350395984246670681583872719709598648145791386073154663807632196247442747731708721700045046561978116629299557215594015865564824961139157633801784085953278521993618223841222861560980481750404824617011708518849666583218507286087672138135088435268832761355129289071444530184632461987174759970655234268329151053496180659343863502650369250831388075094352177048241650607090742078870648244259597296314678218829434828776616799905055511501364115097305165704911382413467741004238058219666793009339033840844668661133051659056612019963423057782322744721857795994469957847828039756481303856656536936824744981449862404671524229641544634028052351835838313637564733683503889595099215742536764912794959051670387682308797644407367292175884751489312532026121309379823945125588746160376625684527671532504777157483690781072957930442851874928986772248109133909652404554058586049994600553554586271113634292933344906563675368677162544321540228347905984684900622455567209541544576257837125040924836599991196118358999916393824059867509009415489165043140001820012426167374727072321331619810830244716784883566700277275286998988445167711232989784629391961062020794219599199607107850901225710246355280055216392292507997240379993446852691344824653240774268600468746818197500196715058368356229269014176368090746118128600754255479307727512451620947698665707602435435846216743566737936163141534174837986196454159215678573884817055998597327722000126270455174535046846601728000377795958658319714881876896601582965907153988184025468030014752706948645552341227896058759334753138706371054141222613020780566161242804073727820495178213271773434864641515350017490824554436540094744433537354185901962059440731790446256481987368777772956997979622845818034912603191082401544857028897172279788891595748506959978422010470379286426500780709492210054060195487563406091787499143862667972122558160608422802690030742816431717306929968068220945910264417582635957863145607872234489455897153780088257484262617736301687172375900229751577318273147634034085661828341784653527943131453161974694242619581698831063862673293390321030228790653677758456326527046214383126573785680546078415541602786016088308356084669447433881568380489528679815718362175874601947775392999323312587120405598416794965858601203788671738966857878430088038701354898486533284883838091885178518599064134800873596424721050052262701730620369544619533504559804325633876583374438556960735372091954741499071814233933083006801340984574917892580931828598189208825251019217018527434240881996787976864685119665402811074858349956448712645387734992661770780365200713741019147627491016844315732693614652680962720386575234718741936250256352381531730386649577380947085196733314464865977066425340983247178072952444648539608640977494911649298170848501121132772648847698803463993124731866477489954815352520476226932519845509857214647008445268886978497123879581302732514875798662994097190295035501978513091472272072184675076860687181655054171860298810951730520780214772455556421818213206904134581200236829511518257975292155563803677911299878634921766846067060121794419428508889881084948439396186005264659033250024457131959941842662100483254340359703836530796589950554984216434365733858763173876419733319157810324116678923491902305853374167493565652155040516841464555225918805513480564053690141763776261223164800607642843936692029101122961012882053938697964288598673304792489043679310599495985880320847369789637300734095794229216915266762307938665244191820677768058462304701990434729058149771631944798009115558913729608319763281256756012630011896580636724570391237712900019948703407194298502618834698974827965016768720467043735623709554993381452647316409622319593441852178806635163498098192687190382827128503083711359872647310963382891995761429537121643765484911867576768540443206818487131433838498024700815300843873528642786384799913485202861972756552269551567143370456904392547434030802632224622931898186690758481186082590114412663403074355355013770460628091534550323701118090643879463167369197429014035121798706264224230219394988252958613044674485160550067688052236672516149249274317722468992625638531531082093678921946729864199183250033218869677841297665157557611172520032951293404942251572974841016418230559450877476909551133026921159149570923735300688355659517631325972579152912059618425197918341646831466151037916478809032740583354516201733735348194477974398010107873355876158558625843473625102514547916933823244098057973188320335370446795588876867243243180591549030759068778386967202809085001010717242014541499463503220189103605054190564942211481700134372185535145999689918520857017162342634870065158501737289845097099231284990303444501869336028858075011291523486854733814906979016747294204301905150873244436734556323236895808061290512787850817862471798005698463669567070914608354679199409036427804458075489171864912339014747840020515474189273117801972714805929686844567764355948367279811114759046115690733903282308391648180459923665639492262191684257944233578536550382119613436887813796071689747062843373309359681091790979481098321003551319405586815216980048670514695223432247973344203902425600314913064850053027346242368780654938700388756752429635464725788849369338663042471951103847300894706514118085951405167688675521269790213103457293399053455877887901088683048970501986846590372392810314204330137265539884304311320486979481529214799176874081963338500088971175181896488201337437741879045970869431146627608158933048305584492491895931113619919939411686296201910374369818938320069452477623494008361653570029248912625438375675540069202337000431054966513068676916609994807942289585782070431759516517500414964684603395524295975459323517354841943717816336356153047741062266462913480000583464936941941430444018134735350660257238218268999504862822268682779817679997867154054988785051492218224721166143380137081833209607748587584271509203478562446198872189095835020453565900719108079270809062174699474086627665138754399478519963283255326286079088263696858770623839019015802743791474980404865676664522602147592513096619109754582326374388958066760768397280808423853463147415375100490913610257799093243119515700629382385576490922511920694692713413716982217731411732395964064638512516657458399949015280433994050767132483352049633239038919117162548699122485825741431816543851823844134309214923238641546876929462105379383647353907545898384198950820609574805183974582138834189768094826363503542540273141620418111084616459929141712840938613372230819825396369775662050963176683051697884357414826792366430615587098959503892544546421638649487832694221760062671330079364550221398600335360989075769655105790483039784953196826938131217033542757433465037888375789066633464593342912351002533015770275597294549461536435357463728137219093278463830803574722860264319691918921451951169938583939135066623725896917198855816157796222828914475909475096289081825717415511366931775907319394873678451027515477035014416669693171712732555744184833932019287835289333645136450338179684992173923189464756988264762495283784174548348226291357179523302488136917722894005338432546878299909535145647516340227029488406959453520691592597980821158929501684373029861347900885863530061238709691444365660989817134908461896651675766142434744309908831706395117269070510291247270176100484684186366073382143698892785771582630061317448375446009549917224590066962885693509010805101649394456141611281287303834266218869522649924904624258462074644733320916567531094020661704149986523138367579897284439874004078029832747981123209060755746837099707952616946814166695601593882483189686870728797961973030040770868173990081055360000379740932550537009446531596477797566752293947536461533906879279027882110173557400842213366878317334246874129845576193875222880749364707742551487405238897618087403956970219036153745504289547617645699999186361578542237685658372789593484632247764667142060690754535033130530430344535932295683851013337828424772153134478998944070091424389732510938536702188625336592702819600796674468147488677701016121915373578042810503571701217410488031327943941701724286885498544055921186374897538700137840768586185303985979386401177695884067943741441103199334294326837161755597072371447469965090127434968286529073480734733211779323945137145563384932871005991406111318606491488860588651204572124302258214949518253216295407934244266380622622463195575791080653698007596498735109728686637377303175413997364075581852920568897563071876374748795499654218306319043431817345636721014504907959498837292077267480984060840082104280419713684833994553384973584191519097697289203583883617746289815077744379176120535885898200520073294836612000315159514709194246344725458239202640812987919181376140266127698821757466908008623042155602664324907592762041479921599892642034810130338191492563582113443473223320486829097403384069608738520187386310156323860202873668968201203134483560539412296685786256237654103375540847170858494411104784636715317396310499353107165559150911875849657674612373951199682975943289625691766596691373661451738203553695329344641390987799255467576017414574393761304667541623718066222772946960565684535441920207481985822304105669361724464234440661847885032501768258211423920419833847401342420147743086989447146249539520696945016665870170484400212503625240833085832700246573688801296278512979959390893416632679117454468467911982256407736166617467028351765628062096487424103467752432699563458964409347890847045392522914026393554736358063051538371126431480528487522196033059834535337678906143814364430761182751935926711712120445685615853196984140856349869550159368223782902623212477510132029808702023398748558165254569443842256471647722637849363691719561174659503960734233840312677761580506989835391484172784442576657153265552055696707848489804688416037246047744731078376109680306934375663358297255686394552862736625638320238596317107920727640289314364236060753623692015360083237885710056246872351326719904683619877853901652504126600521307464344937824386209664936442433600254317813995717531350553784038150318101563636129214400082916428430066897845830296554035683153079879934777567024971384308538380492317870712601847034860017417335540136844969925453245734910016885283234798745626166385366969617214772943564579494478334464077611541120151420716329436597193982432892439551863173691975283722559221083116349257828859309578369889542314088372774455375111692189496207163573809302673644760222627557864159258073294840005146132121813319492130738532674637567619002581495642615332352584604252078824276369599858055421716347895737564288510726302877985885948791261578356907452768232061563922604888183260010427801289242983460569159366636371737082747412083641467315993864179068542570291889905135302829243953738837730013907353431967295941216898932654254176739550315617878850902615255706803822987591709307008373623923994892501819822953673162153051149013010885559428983183910716155529390779818449835183910038393514765210420328498297279755111940729941511647307898401744243653415570768349355295895365957474384661711779667672971231286153686891291795159906601377274088389432968267654104392893342242425085636913730029721658713035080537513526116640861733969456272452147484222816549133042128183289797644557485072201878189701848866397320517441790159318249290863907825337979111658795314827778169317314635934921263767100347031027054478365125413973404046151367267504404493479731689822574901342024183934607443868007190848610951949157781494400513343337390850982314654626020482909068015137889548312620990238272522890447202299717281723832118838770412170421343015615559704213698195650209296108173330876275067931900738862217768638354418008849395216963364118310500808542273421858256064968317167317296911521102612945259909013734481824462135084567503809941324747938610126276909035411882748148339716195706555585762885268842251263897363337229773431099669894160857650718440082296770185939373916347656744630878977495368611736744561253876332590545893295306975021366319741309359435256651624427409070575872107401334662426605677163160346403280933669373713401947292626328583116998402684161922050741378144722144758714255916181124900955543997233640911769153654553517214079977692040445103230735094885368923474927740039868315822141762739005448409178198382875163900644745522102792514103921656436460135193139244578447411478259451930342044840403513080691378990124294475371900191263955423134353342806585940047334367424136896658919226002040619679125854834188458947078801766874005051120141759465135743205194854523946153887542514964664259748436472566203686788454541274401319898754518241351561433658957543334835342643580581836542829388463043333766897884880042275730034703301283476801072150839964183614501144073939238726672694078044743691640924822743573326168937511088131339070237640815229648745946233985694415299895078466424397451372237423829962593810715307523225306073168201561896307715289666323458470852886638293028489206946116584679556314723968601150454530164180252039107048693177227261819828230191517195997419494320629250592003052432564817335421709628871169120563918740208650467916111262434335392196395811988297364541308022422155626660017243839261616601128852591470693003669373328023813804886264039707071169948669558624130414990485774011412865536973381310053689168001877941263728745508664782904902271408492166854536945297137059353393683634086692652249959323422601997600657716462772075795272265497191674436249041010949155933674834449069675210460104747169787617815169044412267286800779579622063035571325062141982778614887923643951410294119824866464262564725476083705611788736135996463510531945484196934676817933691919479895488211454843312175675987225716753645895498757593333385889999424426306884997170237561671241254649890576805886480879583418149882237481240073579339372148098683205165396508331878981258334646817317516782416765483406202786227607784505997306949110561268577033423087850061101759289715175612281242540123694126788663668421590894736108311407370306019071191528500568548795880035555855894262472991433338966593372648104563408397496035722784609188785506024384817117430478107061752512469931384220327510649899636288784843949214791095094604533776431256945707763214307153417504023418019774799460017736362037846644116362926082763053198189067421931065568730690386595109345748792808525624669252974449399606565896212190526339954334634253399024479822476440957354470044680902464267841335629259925872746741405882476412902356140570487557189608729901041581200578091267881165495401297395182095185281509007974494740585468893623440301305307070778614785512880727719788679290901276566691277959352034308542451294541190109094456198798430553747839237984210025649787983577318827651996749514917875844829119113836100650594106577297235983558785893800334988006606217234374372704760683875683303793316253644283833671162223832333639252780307534173717389663155538013662903749345419192775719264934454245863050530978202045274678800251758834431948988901653877524677859088577608536962326059595837530811835343218381995589864908359691321078282524323843116553746191496844979582588255665873100774137859998114508606193857910761474936834772850392633946871867193569202902672325513978752384759570175200593491161702023790797494427618163420356176369577292880066199923665191307228788244112867241005756687921094132039198893878989374726853913076744043151011215153913917516918861830111763197844015793247387507517178269809224088536729240548616220404537805705500984356436072747715912666107621763063197952372061620993537735034633359162542924955020074007110585219330039769684561344843587139028869787925642237819895137849743524517020525022104142352945903990083723219616525483542911048108610968888795851417645318809448551577968060969719937253340666491358028596097797616379000366829211159366097546370934144238995048362113178267243802704137843567264287091268324220009492525400191525454058771855198060530995223632428083693904796397629926305134477891067387775859485378280377536881446235557440599124544917634775198972210598836097912176691276647492681204765272738034508211295768273331482847422162889940231059617559626923151739763240088656629692824808047716208936628975610892922395482689635478381478670728480558802752446708632298208186285031210475631012357197726183551882516970918263336497242203319760262136230720890294259330978312070869962155466312681088124653459396776351765841980714416276614487365523885300739187192904944000243481455078530527541458432705607667242905733601342649324517214471543610696116850801514124799040036361488353448118804238298956037306808233420382863300029317164675847589039941922313697052565964006137737255926202790544006953503153481518832705099356402301268733583669291271867310946164908598808944566306742711797514388362257721215963503064367583119976990325132789641261199390002075526215050792684793864712456447884837675089934756199166289404487163202086900531731472211414542128764174221691980473842617160344756204692905838025090717810934440018111020439999614377150621746009967080459845747917970819142070007577479978899391123322669895643817719354141705416832294416635555467985359477725325574026920941043662551217962700198190692634091502730305214528654431885812285172362957730327125577303223251070309818074620084659808008630510613287338829556770687561951102220577757872428976143483156124532687065064218645958140907560797791698800105581626848319810049914296330478208289245251330733814876312290094102742996867371960459796381297232517529303552485030553760002374359687920843356538233389350551604900932791945075571185300924188995691554148999195644953137099886152332840433575212132197673515132335338843026063896494292614460331271305898743139011524240975636448034905183995096816471705448678660010562377509122799113094218193578114286047522212473293536916534099990090846398277938775375567071057737903966336655757791210228273060028036748335421217433251296547313281192323764544903569674823725857279566099284829122766613749103157825625690176186457544137927754589426427631447819059964142289687028127370859535232417785470536880965247687806434540783945807678703504916602437945779924709032132907192249047043562767140201672444323205956371471988299304459871258875815130885187898173348847206532493902065676614609658812135513205549742130687148159976273415049655813973516666587331802137846588872214444907654740399138878888643113246784690047833124650086624209896832598649021863452285278706307382351205702633272052400078355221535765133655350881447626983324588733463752901150554055876235845366708888475119285299792616432149293624129273431935067744057530021240843548610173491270578867819324535428577529800278976200525572687487308972228722482161631023273127871798901320031580951440499289883861054344583300744569197004313782062553341860608368594381035952748225090776221356961321767003984817545981533152877605790150825495482503011442976845847539267077920761156056299724640975553308468547563391882056428601038264591004974451109655086495761396632879240172992300706605865133854393731400395996357374265039984401347337127935129066373692236520649091202293398845041235897366775690738675731321272669601620593384859742812505513934595617350509492074236919923740373541471068630085079951178837685474905795997300077668194906166554520725251652218978380738086144619505124974571618552271275028636698493082614804212616838628670695689665280124191312412069524132314086790382109045276548760800540217925211877987983784810446842480028633217654828921952370106005482818037405706497265987706323620621017570309944886718013080304836113254904419622690785161386757103744831548412481799451194751727683222782405976294391542179900423117009824102665870233801300235838759351440218615345281213752576143393688923407488731524444089148063153584880693111639736817063616389364615687684035858032086687542327090244637085824603687434398019701361254635104184776446046686904372396196003518583051715344205409021488423815220167771138176996173044774520265398093900674737422554483024337071026681297200159259255547373820630843484639133381356890995506161089789068301747032112517520873318895468444922365894425324191592635559422930281468915685343659057566913587987279095354225676462651452592085537791641623309870369117319653079094129526319549605325232501410908611031297723838643419675672879564924401845020505043266636925709764655264644849956185735700652838213794014539236433612607387893185230429030814219837285424574065306548350425164869610107291565695950392380505303088620482966071689860121490506112650283101179799393978682239482535546187251725305453025995039434592991326574484132495595573282372103604263323252071852635639091226349762160829527673085562006784783941156947022754481717348561681488821122170010191719013851096643847584257620099443939348462345217089243597948850959704304323875495285596726031304395570450091307081973425695586480140698926322812117308441715301656235216402434640738109511495174951966026957863932859117173012109910521972268244601919401470366562894359899551527621826793605598623572559811335013660763287347577072342464220516164794241681391820671835503939810583597376837515905694623399580954750686780727415132862368013606346280187056054369522673543078663919352944489593645460016707813991080104239375132901716229917161095010114076591367344839727280871558249687925053675609070261190993674165039511618310034037278040006291725672734915183556103206627480453825092757411151589482140364387466706285575323498963619133536912708757931946890224159927886121205544643357354724916970938807840027836102671781532848806001057034389422322673269208126012040836018562826188835198248878400620716373163601196799652951325625263783908848960965424124076260630194460803732867646752550688629714153004562214126524611101984048594335174106531241366530407643728034598194874191058782373857730010619476564551749634715610593333178337443789073802995146949513951212082654816796373227182134331047381387165930818483736477401153864438926660342829434486175881538703487094892934880075288334320715731292229798834551209173324250396273365963116935906949479764552696001232064975512701010106904209973121698821725263382567923692762955536103205191595515869490051238248609166655339834959394034959676329546637498671063333300668535416180118703162038428337670677798216337917506906006974578148414882913027830400149024342224989669906665589983921881944456560786296031657025975845029513776011461602899511135866943503898722940210595119759324318475681891309456698644931377404068327791312662915507298372823841461651805985087684042958387071063589351459664354297037301200920490263327741626145835944190481196592504392276424536831057252281806235912707856779210648359668783213521128498005740203171757089604965047989512804326113033088799489000792668573643124124275440651526692342779701054930503686395926988558346478993400981103751794808210316413978323145671749560625948664685850856786596048730370001194975216744331505083971059059866967759006295907615911061470731707334694379057549962043218225872432645170333288848205843180682793800119828843169221774527674297370159525940889464946392586261433253040632680810933615333572188513814739695892696763054954586474589725391208801380571015235158264107539043249720413007458503688493370045682602999876175742082159866821660196619905623412752133652392759547244779556660453911610318327953670450466241512848388371252349313801335966079557645312799048774064938857705553736387096297051480944059616177830725238987403394073697981100349410567413250838754268683210456907630990818475082095635882201825166194627381539889228383830060386833093673667931682013042472136758582124329707352212624214511757954849800659028274958861263247143671573158918543481180998491058908515425052158010851327619196928416261714416800942360468301804313612884988774357161321396578390157016427804724273521664407624188439580419194895795339263520412365032355332802640288661340001050018149735406238518819077063016957206444807330133043002120895156745928777267888206762867656807677174077713695864978312926096776015660167235587075567541138612128071871919755128074174720629753101049191835724022147404038463716445307820409158659624611200293091153827789622181082911492375997238610453868892996045363737837361158753346053984192184164823884953468158658123107535547233955059911686199489836545458286274875296228055053738864977704279251952672599577070485450539831550945026044525101804005055490220004679690249463811903542829981029690350210201604059472505329125086168464257118345327367496086742955965103657381915173382108154430391441181565260217844159297716597896333500122907352143111411015110475549584373810688700093940293034516831474604179413762923502895007699756903409522720072812662141012388871318624826221322959638155652397973183150486032008547538957069762876684109101611543846289475347976860002297237093849343089936813338100921455374415928894284534088180092334053575680394974362544064067994396610017808539760197967639504653790182010799576622715752829411897747487060255713500079364287067513934766982674331659434015178706051097754259804695357602938648011475016817409104417846473529817429380738762360148847293254327671794446745090872446003970762708594172682936496466174745652792264579869111642380506809498129796594138531905901072513357671565018404959745073725643695854919468002739139297349963226661998535154991140421048524718529093531248452536281770423609588901160933600458459001081295797948969454014673035350450191190514426081675184741032514457207280523560539107131624302046492032782458648016048187321353697433994228739061388989234879208384854717007499303972955079649435690040788091919536987472595466763859501655222427893775040130220261004750588585677675337981921234943710526687887966379154656627697729424227928355915817244734118904458017037219881901964416350743494391181299681294142870292845064828797118918084346610363350649108563652232011267831664202616919922513007810896558608449647159769573046102598782448109768333980087071183700283659943337182789307061373933618125626297893737504511645299541097906662537293080945407511424862803980293818278394565815315811808964446645436182314669938379982008012272611436887122381335146375757010037590796287154113350672483520737320543827908847095456877279365284940371443527514441578541326186104444677523837305537822340456430528368864664765874871011531092816347879465856762160030566403676336739686893561467510455277303693334840764400784363671491030848504072620254109648685165677084921449000338711731332992974457507780398001057251296572311573375263471590730068290056310895543498241723315234925698067371434526867521191558406262792167184006952654983738307028714702026221936787831130516941430501852750291925512502540295529477314653609830355084737896138129547580248816905804852456653789027636347701329508251396295403156825498559017261129432755591743601554282306304950217437861856776254366185563443005035208202506753294298343857477429339090172147033697602590482330664602766774985654420292421260238685965710908775346479815726295221740883936483171022674799056869060533099968164656838229061687088224435358823318633404946662120509492618257540288305491098702321354343347792117689094562696470210713851640817190600270156984277178221472306987738757596895050789857762067024788114726980804024121708593278362486158127810338846505060366960158597625522590964792020977544526845907152950162350935625368720474918136091199621573655577532283018624787238883108498128368440440533940126502763929648681910267154033187695542209736024492666837488262948946186911141131999795879995584894698575383215154074233570181435813120213875706792471945544488796869531514760238977421148572380734816256364602437287277531718849135840943414671645347153191592975063978793893696202294472478428581504634404058008461424065453770841577837436718925941731096905329035198243094108139834539414068629085943857250033873666978348864637630571763006822300645291849180961678321676903961224113347901059852184626105620404154947475366747336519677893077340069643317865591946803739958756544365138347746578249917110811503569116090074328478625327211006448938569471882720111580128697889524561713394134002372130242592464100657417891193187633638338844515541899675758414034192078171135021107204874144591993139533538524026660184260382421353077255397718617172043658692563802487556376472903014262617484663322923883096679441052673609051623872214211863417645120315099643436456530729124357236338952293889886489790626768039182552184498124115006634151332934862712839359027926607673413144657568821293737845628028434244582477640086172365494767814427950837035416823618320866991617741768909302404061582696081390472208810175410042868087857971394265592267434380067141386971682497693302972571426613087670199506326244490621129119241180756374412111451239569264898860564557240617683941589472436434756868110398559149791864395313195944426849220625390597340698778356078533063288503263049216495497671222122313437825661650837109016791623171372598727816244924456427701902507030703417261783214729021068359970875743789033475185608125400779052576945951758397476803819616851851352212587343785697700401505550205622746200618543683706216751755066746116159613145450433077928819863840348697433798733156190631536581406387174169081467060179881396338708226446930163982941404414603301108550437695815336371663594286163501484535245507188658056105121385869207477205336829594308102905603647985000329859480648191177481270381873044474381331832449988800703784046358072323539005615486529058551903588177657762732354583198087960591452586751482677751859125542956427663004193076823675998551575731060747564166768113024781617024153698687446155988855008457014260651916195591052673880036694991642631950602250593035944467883180945391820378617909564031333420857604572383110575679105888055416296422805741482174649065731724986172162029236820689425943507140067007228724986242860132492896975869325842393292456318362806618531145521986357522641916134089100004145848292567667146324124163425565791301392364101793219754785380182217999597160045057522968626789935316188412093579752913102757114545012482889241009388419837567080183651654477914201557120236920833994362292112531161484919417215780725288491120886115891733893675260050555826765090329023735475253283551151962919096819289232819743209683052327111686157095206798202552209250669538907413872148075810073776873011264171345646287398556360198114774788753551686343897227124420391126613679916085494276730066624607824296982601904891583488148077838483307251776234816203264635882720517319029058494668855919465646965758794608567521051040249947172023522955941604620452441546194328918331894100621935606593636513531177492854612812028000854457595507494491358160010271031675312595023537849756882189970014687263759440401314964128815838370079281463735311186467749499988809536683964579274860139678565740171733864704716784267891646959893262050618531573966195983239950096690622532510663244298658284642805442349328176853257596450215427567760018206093812305115632829254785765820322814161404131968112970835060978487442535223373388537369739920097772709003005427745898664545589568368863231891741748715295119080996975033699980191344963737609482957895213314998858382975931094620484052904921885789601128880306093484030605704418677976268674784781811353408034761082434167593154490664864426914967325231739563668853670771336608263834998975248681808445094763861015275071659489994665762923063409127276488809172055658416861905289614505582446409508219204534821520763247440093360790480182623278020983441661137795451755377995976993217650050472152854176638276021848930276751000369875490024076431359710110222123005273883068481067950854608712382163818803839485017834922871587046585369970172082326805041977706185528826778450703275638248562734622940848454762957764160224421321784029149711456232119593231902593441209326337204318417857022011871885994063177501673440646444700403002021189316885899521645653520435520026562829646506060233204640567879340616915786527093541503632473281056794089747584761661151577679294261224985156299266260582224190601734079966257886256005328741811603768984182439397272401414946209024641373963193408191350522521542147835313890672787970129232453635130998623864412499045924432228949390357231205069362211297240832834995413940092511010621906512715189301538555872837960128878865059842744385732447345683619108660930007601204724701384810823343504222887147137933473646562670210140461461569980218885214466914912006394017543512522045318771471336027467086819682238554022448523158860040718748066857194878927866087621819312485058943200839092204926326090774242648334310878126024491693633686859737058467487511819364556572164537560442555321465410267886625248072816282523798554359692705543550448043618563700085425084924776739018058554231580646299391500025744339064621365670531640994943078380715559404276171727555274616552163860089567419388568295638610148946963226227698610618529743754681347427474876739897005759396738587234195384304085512021730931913983927855742338003986421352729129507521312187134175282456091078817621671005134264910482953942593638111027921000133474303653389889512570584181296253992124957928221773463652867920118046712313601752114982435988153584804353596048515931372706840497534237732710679540917439393720851904927661062564687107226015351708167204929445071804926295901985638706321841724437520139418913758703612610541616572021486892905482397336512182612882478727917368104081407840263767113167884918923300144031460941716506852442329684287636244300234603421489563317359590895858690652948996598495418148984980994515032665585885208211332947651276271159346714214699220337668174384358571709882803961354542265062532885888792468369048490057616507252153206142747239953866844306454983325368425176058696130543447906328256809623646776304952935450933388391326226513539714512470934378452587697455844310057998555143471897047822770021901307050922067543466219957867330833365644557367918953561894271224440983878914047268004778419264647279064257923015069591110713570262038384295789468991672948771993498443938551006538829343435797317255346661136862605738247529011427498923982685669545815802873335764816579936664336103547316344582457600568432424930504991593712099065897104542255716164530591122554545995277826134082390198707900424376537564502593723829581699284157511562879165828600472437884852678232935552127917408610645546943506115451167287912283666817474553060533816864135926552044052433320318622509768343054493028767502458790586819581991273122029676310752243012649204635458891225860328877676867007874551697080505330259432165215781920213713701102688892706454096654407658691892788325449651424095141553550470313771920056763296441510136078479905515646215047801550747129750122474480202215052015929608183153908509373871120852012967492303778339960561850433082477382541559443281696363622620210011849379944320472286693193976877832335352149680577616898760939678115899925345921150401827296038883924446186526814908185582675159109019494204535950802566358183281455863758184294873711028725735923324065731557265315152500680700312028040734604758919540029268424118950133357864695811715734445041349051578157234229579133042924997847888722118838253079792999264703905152187946543711768161153380339089396893668469096790896761754203163507772825049683470880142348875618423547794677548196413124190870745722708629721075018830384480827657236576713605225401195744259523991778884111056844231852717976090654946331366480637939817693712262721544462115022923361043921738828399828337887199398953751306855184267197840706520606679127465047754596332003739057818342339193356842223049577949562521593303227324986342615617415334183557839138851301489788995300734004008970728958205853106206584998968844798717710880914050099467357085436498956634764882904269516496748318343428117339282333140862600227384573463373237557967783050599908776673891974540420513315483952647396625175135050640099517579340178146351061636992977531947376104411997492410622052993454779816902931304983849731205176004849531648498480374991542114160578782498166299845393200027517442747263065303752607030795425616794582504749490102142048292985374145445512646651876842065001720026201728827361935250504837652195176324012339734726820769081626355327584130000982930612189949396240385542777559820589955087387382757244978968809339083346864950347435520277351075578592629002042556319437678336630139031915355597874102048080820668679518355536025966998858384089933301612729792170141319790721631663425224040731396397951387023409452450018189204513567050406768553409960127012613368512177209626860023072336038857731595880036050279956268565637402651619163742949651286386502806337452816335897174954579241308857887793559315579765514501965991092205764801469481949803539387244387458419790135882521167889009361388709678033557689153193805635782618910343366541727250719420380203574411810344409897941087909480945155902250071533819973988305505068665464302942544379332598777319745193647806800754143059534285803008364037285306386103818067067059513896718280187636032311127375251155541826888055047805065272806305044902634334109390282609950306920499835239854252173850194586732184267094291110498693613730817420875866083049495550624935944795251815071132697902321119024206167889943714098957554663472466034222917741819428647592268488201693123322918207140481852068138373155300371939648596879685912950844267059336990269548069644298830680701358990190747473593135077973500937525613963833633513397743372160279848341814372343789978040322893575516370722634227872148714826261559787451490029298660990533335734242085250544495367420065660463475249098419554227188791855663175131679371592551068188218012982821352004692834022406628475013830082705076405597821271915490081557369263298561413505208908046581253659796524896830682065362014929384838062808575403880329692308569928130935422703580526093479115887941140575315593142941137275534483141274224540268719820500261640229593941244649287659408219740080029620830264197643496624575647197427635606088983349423113861241036767654686116270891056892201960617979577237055513048370897677943701649660311487090745536654148846208157511281612202475773018618061232257544693902808999749258537546507378575852438395720959375325134493063392863267374355307492428128613648634324405239617441656006418336900902838302896919715912153240068797296319626562272282170748682659902949953425686310569595861450507742343602981674915888471843635128211712424744583943117565555882938115808737180550936910681520731364008846860858679113251100571993844860695305575011297449131570475832863656744072546414440255153188727443233012876490411450062152039875050857711594583444298563823315527195801628820335377535507598684129015962995099867323566201648692203006911807241818408165815821849051193048485495817034244451836901664449957238113075146621775364285102707681791538135069354760219920541992017605500082455085916167848233770291303295621261785327493920740423941219356533519875288224498812201036187968814012288638142965369012191139950056125389713695025313425895980087782026278555180297337370148477094507060816183130017932520683968172725958711113146648427771406028191680896359333124531250724921181601008980138907479328537310271793903708933091632311421377410974098267595837871307509427048445099584311503120165698394922778220387477995296688167014017093474419012543709696173923113437161524792271035585282114018536008750425508738375708057387393769897783784312895378226144516908540547630607961491821971969246637918502883606968554356237777353762227872128534114484622472173646422969863014000498109719371108595603847231982574559624062273374935259491364289224379935156905786046570574110430964223254012192673117860934646462221621426870119361188559479540899534666261052014917907798037046960829509830472600706119308849860473320791183454758356086923266488778495111732535956230075284333555189569414318199078043470417975421029196108752611075582910064899435384482576916859295249101994888806011704090398597954557644453541104276654343654784504858003264514981196454794170790353079787177564358504567588263797045180226191420643344469497465122130764681031938342250595422731406174223633641832361622167774128314904581321904935044827662524384815451074349532912595949707987321995140520270309627904969883614668762215198764137546491387182624814261861515213544313259749968567246598358571625187001967565672405967980949139526570412506459674782739973380594413410568416462974058295540662274546091133314007506197787167929913281260741692001067155375926436331115697509069224727307779018706457357168250679409462844903211372651212898423911368764808332337307472783086164383312020599318867852483697419540200576518853945612256327322505708011731474655347984401024729200651962194170708931065293036459544798160483554443339146190713578269557214707756076939034292682564508283559740134754469448974638086303477389929150323681596931655109646526183618931690474443097491739973738295866038299133078030058721386588438262936119619112102163449426421765897749775891750215855869405835998462747402243835540767772135380651351383114161686705363698196488520029886393255615786732665155114731502877152581268746007969152690471678801919538197572518578672509968552214361737143118250643618706254094295013916056448925615806262491765134328118800908262734491388901092222697580611992843051036494531013051924422638281132824586112823078125688538421028713164447356506260839739505090102249788415769814591598653184952425814388604911267884638188676844651159345857953110013704912058742140525226940895929428879655014547918561040642867045396272928253128351022171956458784849668847377477857857820492464848812812553546316805746075991024996765331808785082110080257298907877505027725454053421909046082392856345888226426034341329038847140009123660395440929016796760051563352692310379838212189293397588861641703071395365012900493716329121081682387798818057178839154179765111068853019220358087523328846161441693725105237856356052263630688716797607371744255794864000656957611950136227538482315428999836292194055193808769062966749773602525981449446666013501769895212615474607607186845479691781757816478211733065295446019585240325492668290108712516509299014674944851150360613494462337119522090776774430849055301225171041549990186413711520966149596395404262064603417861426909205579408714851404784817062522348235154814207524382662530476142830121737289443133352647075434150574190436054482106695670437787730368252315609407297221355506974932335296985825063005613968084119183541192489896394194733586936003199528214599252218011850261024209696299228047298229648002568188369313054896719355510184758649151215833915396901389664558326145708717412463874379880296561758890561417265471928305386873585569926068913417231681266625133540298641884523990058396532666207462091248380632749634171360095467987678006268916813966024207427712744896880235549994940280261704821231803618020664695785023661674131578108003192757261706233599401776762011623533957705214965154003311549253926336045095551006810216686494918624404879914304528779239155930573250624197038883738553986027005467918048218924085679947603364665216537024106171685273670319578309575848909546401964742894902804277975570148914097467584793037787365434226506519794787547780623667157037749955194206051530169139385222937893647582712555569902546998946218212905423749025061666584110960500807633046581373165625520338261437714980914851850761869301081363935814846675302687084607424207116776385271290856783776671558230963608721947881871851340905894812783108387265852418722571613635693357433133639007198096623671435257768327379862574612623096193718812840896764236408275141659399021897396671627921553813058300597342368999625122829415513440105797328037063301353949195572826928868491646839137313351297733230928715794650432810728518129224029019658477722871026492133842888336400592099046935821611285715314192111600535001449223598097274237705016661740686759933141789322151049111157212954669816172581740928948777392157620348764660107618614094821732573799653023471472789935357346194774488009369377404000292056963642824409505882042503930417894289729727452198452864071839656125277681917008172806591524288856996980446473192734682828760666765709644899349765015365007207561943413989796439217139487700429911026424040488944777059473115016387796865176425224210568274227831067779135089221685497285605075119473344458272328762059783286577649178941541621447447330419139241747003176203157513973591378216739698507386926349660982948558979607965699955930971343522274699023905125845368491357995607558408029515948836867396794706709347457932284746490061985914913241088476119281962821255249932142634140774737238242998323403073597800154413994845131233999267872481101787465697672538831228126255159864673852417644934031168439217925102447846758935748677099411847135197971398945976612494287802697575409034183174961834345491929310244265420179594400744140232748841789207987568904186098046599323276684353099027044966449366343410288570511548592888421767394353494192835086392490974052024298798478034173670862234549280848348245352180950919022718680308041291828416233587764472542678831862259405385345991709381170442255536202529416732588953043303842613749833556010851145796097043897776699585474804826262408719103581408837019471262740857195445785139037846248553805999807518462890478146863122008500041992920985089098102024980163038291705556089063244335685631611706835430729260848879717890169009676809272280975593460632784837869011744563112424231664212966081682631083549575579759002343595088356435240028135434910579525394530817480726707864431236882920801947381826651043995030333000667681764353333704855904024818084235175431385536403788575476240995964311552859978654311985531916589736866464355835879003214916717813201979303592893090707720396602742808874080593607204563612153782932044997235795286060688211383587281764792499349873618316227807704579047360824435101989151537527564056734307479418360942267588489645824783073456795033497497710096854551645705977876930368362342753537022163302732982479821005918162175686915101044642828075855294505247745718520084080030095904162441939007887806725663777186847339476547733281055264800318037293546432302748816614832610121296355222737016170445315808052526284332698996462950799291527102653164196069417651040147561798066850859685664329499597248531314753079778323524662824153084713408603855616435582877638094325196799910575191446420537884799879689031830574726590522063293220053969608835762345882386717298440542374682660600942960841852459167228860572665997860089115341968579829207882236240592165701623291370302335516439543669604007986736824491414104914758550123467917076661965326629581563485718673341427320109311506184835742877701479075064792097073261370092810771151793628335352281719487564980185436533937911807522018839778932565077040323533408576251589853433663331698429107292975860231358188185650379749869938799389785491624898675362866820111262538278522023536112513708999103516748869506269968114216814881038489879283502756685827822033370707741406536074629884568494573645820632624221662691690394868105322727903047424948758314414402734752879298910965391952550016203563959040853307892762769687596837859541650702253194053128393994047708232938864745973714500607490747117937313535662788562301777757276480869234989374189153077698192619947820391202679007891221006785716986532926734034661462631041011043852594460849593981719560294809779775553112995555982009123466111369459047908909167285571267186209810740870990311768138034048997349211542566735852070889751646407901209618326850557412766888720319886570408988824206307083850270935365349452060840985082157340835114093855540300212408816761984676514931044022954058920627016458025463793402748775192406770906670992997390488228996537854545184011139670301202406105296245411408954313177154972611652019450327993831984751334182299127249634350813604076666881721756940449867378103069693521858758798690875984745685673934625372950494429855359625863278287593431839918067420946398704030107315813886829226544396641032007109392062539263850059010952371138666049029760870630100668260384690996137707881035255273620441582676656453625830270925080016553844449869832706564241532530072787104702576993462804685913706880444724945024837449155810688077005159237844684275059697917428102957404484554848205608433604325491737586337977466852432965025811904777026546199217162588235285476121072036786124271615974745163988537109629658613720806501646747638731862794197987223021785618008596868015506908764395157769483400380275837625634639849806805112601590069227755334538272869418688110092430415062049238679639937972793386353082021118445623449614228190306584679596084171564687058786370806856994966211906460614357154164383161612646555539317221043516874238703862543457512526313606314713810951395599638165040868858659860366127112684245556752822480882529481101174866276760963481554001566172961192355597318414657222788485096026226719869671797498697140537985701391067043847550098714063747406754985895002474046351583356427091499530408833142474221190269390521535982548852357343905144506324219991740638351466287477389988632439863510756571790140997164791986522590354712148517165075046241470743190838670184881930015509469259091342611331866404098648865009504838455111036676498060847925970037853286012332706835167676231849022710990125518062614851849989649401444053335419651051679689433848367863228361059326224865194073388453905734916701543280968897212841078103378846104893850606421239387763468309235494411231270994968394106473936326463520417852982579215004353628888056423671868861253639297766346241147809383903899216688238783661635630990174696697197916074556120282097014465271677030231099922999318475728241548560115385311496440502090603427039930117784104643335407261395853167709858068665949718926444802838449617936044769088174650926887649486233182450417721498770885377686520858350372853158553726203746917162128188979066597906421982063806144301729377134036810127177872659267351660307468068512234234136606868495286735996522778062015922500648532287020535945402733568660486107387821923436399051753760179438972731419363351888264899202866246695997904381288564729874403564432088082003163997814977717316169736596822987728812195032558827342698190406927335553757266504200730171422300553684855519610476836197717002420798420802705164223241492931838789880213079201804888631367759282134462473075355630989151194766833092599126303666236232570652282093706871761476967163683124491890752049524066209947979091554250244852580828843685707022681469170391419858655991877296742503991405723089214955654099143245691250268042291397077367936805334216686699623015402758442607338792392213608375651668491400123136370984313517300577093515705183654516098417900475700542225980201137675429579447700852402976014093819365350394648965612068513433829177234626328932590228514116654294346989874397923256843364709522707598004362873863601207605176145984732378230528282623962259502438492040957494984915165572473699695597219581190852752954412412004017901017667934561254411427353939817908957768919880917374178047451987087111871044251001685357909272245499928664296478426607929681980099542426760246221552600634997772868019854473713326289080472572225594679538350855379045563821565164857633286964047689119001487906088488344250925758414883682089937772075327792482335770068890511487840812701942443115335654771397114483784805750505277375537502080190996700036950744272485756433000284756786626955883978350826640601262367719130909093070873705446277087416495259450464497383602427138316556432938321095255593659274620982420911776955370827879338471718790616474781041970777002152821434456276954137673757382151147005705359004229263032370727195726220232467081731363264720138483614349458518764376630248998186726618602926700612026244017422996466321193282129180474917814272740725005800883262005328431166403657561424625194378057036255966643919740037708811047440470765224122305283305560505132826976298524075350231061560558774689070076685491815566511115336194404978894407883946978530561501611429513404359518149207398501376342148028481001002550790599810130839159914670559335674696179187206472809593446347131297147392191146514693101703596130836531075514511819532564895719844558202844330868458029883865509315775469848073371426567444815019506705446131209511965794889792619139912374839673637893702283654269878275234263936063757349181562959865942240250481189604486174864366118104863949726754433529546893019369583791451407662736228685457835596934669794473720689075169315970610854154865796256634975660506717214038893142687707268358442721042493153004345766965845740022217333549154565676504674579502777600318871598172717161791489957434965855963463899046266158946155072144358167854755100237904753907351161106155594073876565766849987923308246594373998880039289741351656763770545693664183327652702951248785641802965230460968093915886979020107021214582020299167455547481258747304242838226391786716087527478381575179705606220663009768658747363292746443271772532979114608375508315332330311555030418807378214378913825717329317691830259008845917226525958865195411711220085936210058688376040013917280906980066530535505034315975790883451973446241174837057935178340631927246952160314142105767683539540042890623374581926157337678835911678325742311485825587896524298781982797424483660913511056446995306766020097257073263165519785434900366400837665387376597610909835136710573084065496278838703240419412374886805879657661210260881858284658100109675105408033556679630246593372393240337417176083632372567957764749575957076579939843434417651678805324198827441806988964411135653332722710714578692993471725170853354363144948900348149002005396625158154810177615903152393306369452683587277036864885454677333133083665317087276893048786281965556574116523104837972201965103627716491870922875409600455843319307751348988080316245555403559939237315311016381242072297075032433454346244190932854288111228399752610243344440021768432505457997580079006697762469704427585344969875615119584145118485059144035044489508289673706532821628182737010214171487737610004761676474453009945643153044809592793843855648315386516839974320111587034808436281964163584411735328437859104322907703819733436452635078633154997106812566743344222917378043732192168491959825400190435931196521875108458372186480409369444419153834672081579931866176925447584232345003796497210896320480900298029111556702574853501082117695305337105060390346997229739027889844131519076211975205211777598225658372956866090756324182332608928894960691952329314079929333222117566817206251122349422935633618502338429093866666050048868033712259267095865306199267387701511529969003915394171737392686453866015964732683475938513959829538096614851281049925309382540204037782945948437327505188490923632150758759201547314781522328366291485775949237922063900898332630500276783403709279144604689054668618880403125811964140376326305784063974607388993444985277052000594375850668099979655758232366952608403802358936317463848800076601406245629069222311519869423455927423588940156323265824331491052740809450654128380538143981290699920972907456799643770971033071782685672042396762270410279003109062392864310332908910123127839453932810155766775909065701819658122500206376595818037771003028962356763545792094760467701443162017996999637616504573171544964272455756104553316642765311742204657232517411485956198483053394331034221094893060606807992371624815205164779198854136411988393414206632352549346600928432627022930755230858380781893667268899514178451850087211806331034871403023593740053925663473003563740439720176032347940367086742943208581006083809777921999747968763486950089856302038289647887142159510434526779483946019540209857369738320293754479219650019559815491717321376954792217068132311319419262559981226705794998285344978373337407127759613756782731869633559374384717343250809363366859741796465899829546030291140087150794852328176106110889978550356034070484780659717326338842892127107679914080504491465826178288560611629190514051994329233029041194467220297633704775620392051318395873998822453579248288070961630816486486211341817626395750057545792549468862146657298548309852597863710838173056410262334837150000156480247645728947209772883956016987113148903743834301105140486665214473706271315172634853048912563578251904970648852895544294829961775071909749343674931079346252756088941219551558021982375341158928865016036114832646755520684035631958251911594939061267059624031887260024489548329775587775212037000449279762979673436340933602540838647784118726350498853906725781602436343621156712829098151079197776595973177749103844677388831166804648494076329635284949717995910475378758272839161885731019822485872879802039829851829999225367130311735940405531004430157224790572181034586610133551621676422180668998003346248685448721727514359821615631859209133871775226444756776189301304256830668327824837043426643133261767696507966745191523698457175793603875259425949121328678508431593765075260859654113489485563716904930164945672110480784222226285461350945968688781420886960329984530784976650140964947285881394034091980090048133511893126750798595956734792589661513606098286174505261349255937985361137205289820441388739904534716422521114894535465765985884920502008261617295519193826498855242271531923963002353486179080168014616086918954401759412658500997487178114267409112333913384087954647477253586221310916901650895285203435360755884111002866750206052364258264951248329149379822076074044413411144676814683815089601744088054839272254136845247053512026624955402924283955757607097001591537517238870383128463354639294890324358455473281798871647656996073125110825071683401964596369501086441155352522046496228519778860872351071736233633387062662645000799707176173970950067322902125713721254317809526832489493568960040111360765128996292592751572458672693422413698360135373075213022933239440781335907100420533946489449185782159852749240420396179533562245103002280599187764208394885050747368764033323754006147113748647412327590696205536911011922782358886655847179268584050980472656156739164243989516082522092233879123782708882816623719134162710494308830070122246882495402397089284209979031983578829831134904226702779528497973428113841100811982195340186399242284791727587194856966853407061802295399905148452533873999433685974384486283239866390708660350486441519679867480121415513892986172886400244676806362524850268419493916962402874833271102351711213435931451627348083871368537583670820847819900992193254728007722736514386188188828453382296871002685096693473187702652293967888612212322617046358874862399086532524832278045260802434174085981548260579893526588930773261974332880940300114217409946619749928323299690830946972731730323664582028392078072864417332667949687503903935820214395142920331402466814308200635580072634499794944911799939457999081921382749588119611977691832757813222187318004175307272560393184280915200090745752555707020695241951159618815259407740183054885349555081150906348856445364795463615909315167789237650578336762301956144750805755341012602821010141065405257188714100603189230180339328792198608718886411787911471157844451296222916821161018444018107631972350164597205283462206805891635348490609932901056548541336898534369311578256209768903062871224843662445419141249638747312019142280659436955322967520873585613201751472213211236700010248457820316704242362612545229220571492922164241059387088088741364793565161439630352972670448775564657045701140526552081079337940063200576465881047433721372491139857091221602072792604233157571924367635368821792177106255712744027087683997985359034057249385226652619446385647276478865755445883004247732225626318392618780847239434172923773861280716978268788488358573501256542040378225866866759728674565632849012755234996222672336398335336930931725799878131326912271774692966280220178782314301060363161052686142956077584343418664734737089785804167915150449618287613603313908685990136040585094602007117112651646806421766883121691802562705921191822768787336546821312196075784867719147008119591952464045573065664550670516410228261792491720715794885189520669075021781774926549247005681883977492965042306844520239060856668826284751432877180913324871397103693295787202072583330817389392302279589467036867473078049470624591135629796200129031419834097865214047409033072191133009176887458504412666728580342861809017614016220760180428875163016208857045446637017138199100662790995156835063216338056327038952182251918194364946377402409482196010821079788234222761625362215964584459913726131080561032596255897456865694921262662410787704224779650962718504932963983925266534526824801905115195126761362962261012135323168065915891890137572800598161593243868200220674340320387836911772700142082614844376810122294811786683756845507988907464051189807284257473806726818968649338943125128524945964021104319394821842683798908090427226125564902850133073899942787770171547452268725267442369280304570048228129032962876142926677955602126664238233779718328570365212536082548199571315228172334374420844357085239190518385069300302178600163590485263243234500463627124389442495947524852873867909646017016460420643716926555791357829173331036910345908039579771150124607494931801765799109294730578398648688480473971195125454304730956829573382280100195724993248330069513266756492020047954398720521638868526156440095709318256277217238644424783071453637855056728632438252079100028986096338352642174716959207981601601795317864305199440629755961094404522513077832614948406003552626388539088649731824129615058766400536171733183559162517243228609773008949679394616101525510051637987996299753593532512400159860597447091562148656715672155419708611358068352645503953392300543148311632190720026471548095845661538148680207219404782155240534301438599668980106775442450251379434587535210659397024268761270289328726214311073563263701015481632503681708443592302048966016493674250297412609809481110964595214411025170927194385098360935855908076596211645712367790368188078985321143759864378528014920410693676934680659874548318993956105962214269845617229819052420373178231854534271445155662135708070535368970683908387044520324839152208013972756412306728666625657545198372988662782219754310120950195789700683811373467170820469717457994755887370112498803837534353845264579884117126578811916089141041727764581857901522675129422132145405234335199747705461688445759486824425731610921788523867733380350825286526934111041606252855489490019771152993643935092880005475128304749348966830623634974067267335936235431771087449042954941409801614066282020696849519498399339427931730670498707805276309610615605349139714514387842224464741698551245393909707680408062341562316284570026648079271399426182148427734382392120000385079303620009953101467405943780533626741645985776606815748468954618755037804127613857480207839985616584321235389894849672736907865559111578232531906468912493073284395696446108662996401591515603596913862281065063649802416687934804344075771919371353346992486004643397992617535257900853808963438686187375113490139113770815970359884884081020896071920906797278396374317648751034946392947410024979020692647648689767619265827154370284604265771178650479334419777925271112764650188499319617325886785897801990569800123322669353048752261356410421886129978489538036793829250788520135852137350164083392428412861747501138106412618522420612725612838617723958427989637129933069492332042364462831978800828525037764627571181741326559659772718898718333307128220164150108415977684750146275284038168830981204283464889152207724907053539959788977310548965898538804380550436365968617556408659947860961760151733261736257090527849822759319044532827836656932260375431277691003635701334304400295182254937716044250943563167146524245375957721892454632464267342465849204916773447529762593345759607088731061502676001372569990119375754819368212606532091991232099817270835268411055832364982218020251712384594142281078734713173772941789007997325364542887623352007086654575635613413365696430887038000998108352363067099485697787849611105639663546155646050513729398929865658649100035158396599921879736709995301411836818322873907514013875646144695139458857969412049901791628572422712953669790744505167286323725254682273103074269439382143872088486614595804260093949858580898481121111389578251265906221267843092112827978453649843788282380991263567829136020293901277721041673966494767759171067543670493334670027858452231025280458740466624366641076002959142011768494936586688956418436284987239880656594034273027188150131902725881677381568304746659259345620386599791447530526506986866017466617874709312477976843684993787311671144684184845573973158364820603088457582590325367076660187857683893580667616294737008633589802774016345327705346346528509806436980929169667339050177638960134298528664073135425033281971443642111044188718070768866893744464550195089250413485907590779694633196152621675657679798089927370682220985769076161845042533375765397184742803863527739255969920359213537202493743102454459512850872583889955634255737894395639498031686507581236651262236626082575348072828745026912613841625470649751399268004206237750594104793046132486116898649918594281955318731108129871707879576169974182920044376621560089978619162937308929189460488564220169066757711413329936755349162909034189274761140936039370163985428490541246905881973768646712434272514120895164521021499176856991858082815113079657601722805884783062838404566816936112110926215214070039823480162948895897811237854401518094733936830880998973907206164218602765680339414928203064780176087247849807952707921556076481650826769600896713591725988942136856392021295810136250169379268112281045347230348610066564383608308055067095479896217616649102387972605764979520196245492559191965619390827525319309136054806084280326530020937853594903114863546250158707809568187398637126299780048867587748185033919888312637676615622207222956388391726888038017855248491928959050303967934773443496814184824822993653567008714545412884753110602848890182141626865766001518506665140675131837770400348222615933136551450966218642097691075180047701704655665088752224751374743219836734518199100924608471738903171166747112608190930726078590886276249481682074816486009919527880630635925324436297155342493334909755133986614443356516197206303991339453038253110697282672948469478774752618917604843391091327104217672374817517936634549960842535253172483969901185825759227532777220722678865065099661347493351693832180765984126412552434293684116554001629573385266633561398675605864688569206936182184302129655496853549646848813692686249263037118402114247195351754495959509205915900280536556398562574008971165634479154809428869945034662780672570243485907411967511856480329203917852993552747306641810462116503897905566747380341338868971631283550205417837403240102499895914471818356888247330743080455712133242029771263098704454157695448453515303981247083874036231287483782913665603142100194502416429550462257830692207618864095607408607605762198101123754157046085770771384615312823121783223891997620845045645062928450577677538192574802499560646265940897056493320301508771710051537217805026096930096470121317936399171966056384819435330523285478387935794513275970930529715764498686935950922459397708105300356268829094243788033736525771996031609158569450792731197869683859283479969194498440812732113716139408561950518135657015080382408716272844035672053705473582548650040322779916547855526436368680371653290036433180015032538806810206517905543915733416046115090852922114292176914287574667300998377753134160554563390102080970619514470652483054223132177772864309038064133629507043543798946582026942254630246383172940032287558898282027976136181143503478595983802490898354085779856517746180008959099551039916450024551021991091475204184383576385492489479828340230559311346816915615815822951591654140643245312937885112463491679680941734725241361635737482791854371786055845620241669270050292112028705523961573868957694094493170201182779734542457445798575615328570055397518257418580816439085260342972252418202812521087358784264467750884993821398409273203003563775568144790336419968669180656601311706326412158133268086904924946022048875889085228670378885797771242084698609157465783452635501276435261601376194425333705357417301770907583719920034060702352210431198694885654044353322361950521843033247010961055629640184187068141526266078592816397853681555545669122398743839098390308565143381195231343432927829594941247449858525659219175907363352981026848427510378526232291224385527891322400214156646799610061817015079276300201376616320787458238355015503557747803513655017058128641472354582812247726450797571271295456441021121681725816480932881330678709647618211001949938924972235171190035944240326115711277114549635730797730264549875904678884252746208505446965301680910335937546988177547639545372127765416466531312505763468117759787765196673559085627528457080358969799551732813179457996352011283123851668332565243100510578762361324963032433359785599808661076324551477517362953943029679930921516345215361247122093435088645948291857522058547540731550650465917826366059188355161555416120189641728217363307628444857493665656541540036292100018128041149358345248198566109816518692600101483139353593986032087889013211369558565237130773012119229319632488266606221992700454609546134482977372647314377614999122518023419770560300565722903164339748652990630036493918660135114567895561045912144595002952674050815578700177181441883961040673970160911885888721272089382730182169760480485845811620463232313994341037901510494860421981142133022001570417914364869639720918182391689381093896078197983192443910755950405112361478080710940787952906831732506318137644970328702770077181820380173280623851158002541333775356665842623803445047849323567738945684715309469809019738558080668144975720306706427987415968409474038887413908468023667505278037183429326570386031833710243982708193381935564390961106185672358497873192252050516823583699400642293340011113675544366974666820452384130582695949040216509284940747976028790586109015375192182424734536621820670206606577071617230998051194173339636739489683537651941157398874973853875978854064868671141694426560225944530580412279631060895699129637324395503037349149999500997310957384152421605715366936149313287631925807129261242149202272471231743296655604853917316827318675044183810313552767898535611215129352675644329964258343386026558007807550984988162754166611937362152921177931756812620980492696775626363262273554606532433320450990530474674229202358385164810113130741218967920932652657387413055367590248620670111221593561759306297964067159035920166179071375691258160695969689829966764911759054782071239985267008040318397505607528093277999844800351449868045003781256523000718640330443779963754781569798926677833892223390205758248732954588881926186865356119146769033414426183969703138196133098373688735420036695122043043384519780895124661941211993928723913066931071966490295989393093908590764254640031154756416169460106515613286523630603674623210851009433481255516713783929088721550217242401469797794017331115320004738213200356892640466884980894431695095229887665473493122385322301181590042832334520474015799134062011710383301474630762738349890202434956468686943661849642249059379049222037343812246605740873930793234885475270158226110754957193184978943702404022765746301916030190353267771958104379028832657821442886997988841454617399335030699508331481454971758423827057810999540414772646136753739811185294022613936285376395938014236814691812419564674712107770074339616738424791539868291572946554547446491124034137666982075786323932586787572803600936050834968219520910640231596743082128711965667347447691194731298317358923454356443388239443220707569406586947083168486895673443119577455975196854488666436552975288585855045845759386132870614143759829557076059792259298686259114962240304677730971585125998391732541629366567855057362204128880053761143075674557990056031900589270392067278788221775541061260298600881804153772932263505726807822207070740570584261868355061854181258822626934303318766284186287571016504826700722666029113472515208621598529354806010918524725915497308323096630491493456084689146984462219988313989373848891410500685174669634859270794081340375471989769182117615494400237253540248485341296846556347425939736711488341072527020691793716677300787933541116298170992120169458874746373386911861823680063002034066493078154633222320282038471007096821927776215661986527561311697408086926993912369570114739519814621973506306851779027656410131133515691758359297621930004559177388954757713657855813676296895250576356023013968064361400238933044715470309921082871528759772537921509146768891901372890315365935892722788805491344745967695697049793763429469921725400467607108947448035348536946246448231154544533419550088793741713249631188948639252044818413702358493330936606670849557222154875882184432925883383351399244793458983889711343976208700905345296145770383507151212576477958699589025093988235479713840318674970262686086798669890564900817550237729241519474014855038764740909519960519745045280993980178064917589041658181971210327071514034135454423605798703001060495554256548681146776333028506534982357546430835035908674513418935383151820300315063599184578031768588169602222917545111885712424782513057729076617909635379169442154630952955545355145254598344359495863004506496552114070522465910469492922595728008699194793491386386900303912790892918483588835359228840734877014604838940736328534601590852911327731180846396193827635884411594765449761030648215508630165390441627334312672482522246799847730285026205067465528263597835876236247963556463387309116100797014577424598310330559132026629950898358089424935530395467801188451669510180548036769123589465946714390176527187184034073283798662356191343834034765859998467990593061954304976571111501749371411223295903453877241168779906050376690578430721360804923655646987225069574404517933654154715481935575012784486789559335748969696778883185397862039500752294534182308518338122435280312216096137842536613500204297297395700873229201397884012869301647972659169571900632655887079301022292059281897461093970338197453478424504085956322461882813145224788905222357103206367767979023776128650453748548532359952977886760158601331184308441791994193545899644745841118568668422459808817731103168654141227473708826881927167971865244437493694880278978611283093314420848388777417155915114968391529487486458967174021592568113770036188764387123178566042762609441092664148602433246634368187339546459220534458061761938440810814256267258471579145449097008483029226187495237098041930494570038823866841861703821341169062571027360042036924982218810087233847225914696605057138393813273215472716534603791966395638652254476367399051443209813135424445544206478789577552384800482566650912249160448155335653757270052132893535729092777047113899397052746035822666593904413770945196949528198457882412927608599688882245982805687959206793135687809787956333075479399952309057860312924759729042966481059696988789865750927784825812686821072368519499205594788686884284057345892629954311359500446195876647656025882855158511869591281270302181009161995280376884769253680615424239899162541237837882545160138136746921789271393697370726109785027659029062390887173303348691216471782845102604477096652714959649537648957562407027135390496166763666242871101468141631443492763433069443634011207268988000428513138093448306875799922677231929319425585830175187453844857077205045371853137717416493781309838146878966191075612551058122606750397005667218783985656828558280378619567326884160102387174426321863456432931125836893209528588468379401338330727265409362312829294600759294399762129808577610787318123686143753120591835399318673238258843519073511463256597067679687778827513846718818990934337220600785392020278024460918401021722439357173834492035714752341525252289918586867912091841939231899825058869272382810233753364752729960788023496409781415644123607183004942034557705350217167608685989279313590080934442383868049843013000184847583499325365230794820480527042536600699294845478017456417000810548752032327207053517957238650443769853839136077994484279281796604353634831016145892913482818972728531496620105283059307839268262821378914763337389861530842336156711700841183241311381118421298207727467310981491175494429903162766165977395592352422041522391068228613840921053308223380972133607759645278414288105557949615533782832977955911061653628781841601286122996489110362663034323396550319371076341501975234901064345992586161944216430921789905970110004499607337941514179084474167111065031005097434521819823261388066121906915438395622368530199861636429325345323581018925804175664619853284123300234546069445526616844250300237411725158451137385077014736459263071561471683884609499511828115971344539536773532619276434369769798975319594731401067524296949048322236692566840020824414038795631823183107616812297961403892927874930356037218503597652033298059448426030826959228145304776568228103523660895261835573560855671281316148706891410497175650213012005879016352321124664531029650974532473681275677646391915725584074257149552014679538506983326904355811484487239914004446900282117447028095848531822563390072354069877968524590691724544507062108608383861619747053324840090385940443382356412625903992115301347950300811516711267723683867554446740940298196049945358219480378413419400952377127752133888443918210506458247249633055758967533487173243287328507696696691576937338252576244402092286072586362180481788080323571878390119332647371304687926128932794284666777578233423398763128155591627701268865020549651341150996326720549462410264894092982935238408059934127141397787054301366182843311471179566020243235939888257668214210338401125296248196642722946420685326094824098903163427530006645186672317219884693616508298705136531335726305408431730887453785626456120179027165297912447440437489687420435607028845218364902911160704125734666043633878679468192356573514325445079365241595576471815426739993255865560003309700097806176221539181064110351768360245913819034803092963271215321522123931188712519977839430630669564522288983521553080767350115949679775569935472934834987106412025011078188082802074105443988510665957992975264014521848576918640826457625646944243525770168376970855474911920505804351504247952988640502012078297036741067554606026241703743756109991349756331945610702881571309794645518341055552386558937216319379198160950854470816021812352296434426912620802022133635914292263964434526069134260213984514085930432168369304519173953238246434712375146216696755174218300788136746029620568587226071411783646421112009037795153225373420983884440283731896271322130804571756003381316702741794995373863176722715861534839209521154485942618478659795800782792906854018578546549944974475327759372730018752332730375754823432108328232978251386784190877147492153972886943551085942504171990185542020570100052288859155703733917440471505087773537949913655260075619318799822936265755604746665837987956685075085564597643136089121217345954068000644329850385603294204882556303003848911448735938824206016007782130900822202311856900181211944525093888593565693286736316479968792790959946037537697562368781135391253178180747508749455648743483760935945880132736203293347031970404099587712867666439349860098280622878447469811381039537267504050352890807222635615359787816722058910054199207146726484285436125600946429720202789756687792214102998095638681338400665900187491152382696259718993189705897729764729825375117075127490708054833383888503841405127781767223094631895862242634768007275895905824788246228217194666875873976022326575271602100622911243069234924152595861014322761082001907989973849492507009064295343054008405337706919957466773937196605429784003682416124120379759880188406004025948439199947046746148695149635942762615660535667905205922787124972472250470334886184653225536212601914613358033960084481402467913209862164131967984001740954328256138491943334150127469051006645429544458694811119029992203378981813008853465239874212699409749081600409375852314913877055919140390082757144971837521259190459791778167285775981832631345896553589727099460836965864144347272583569107099251338647550695431385738893274734874728686429555297230810972796472564028484465061659570205718152913703294271020329783133604282710271899822803144901395337003892526870801531942022002986925801997506880584702392550950960140528379021643434531482135326662158386969964567099449890869906703955679431981476369645800503086474439403818933008081380960242741678105863496203914753189559233058895052531248921961347574822920530519732933035015917702284621926930077242489329062430513898524824689400252245822626274890641180083261782428055690587140341928923886440624312877271447346239016123279884633196742244512565269043273491743974794021333914693344652020187382694215566324041253383342987332027381230819669127221844486376386342831683963508771361422062144655496632884759772375849711456489983636948930581894201470755959773275889195787418300145329426363757105797015959110802856355560712491751447182999883430579882038409782772881139361852773025901907118171418424824188346145898411669680040845546818017288286151407881060553838750429067488616874801394898075264573446590870754740042344726807047324614304437899061711146685603550756771948152788871472137821924076154421995044373038303278163686346508332865061719346290422671304377314612034379893056732162597917588015157513498887851588151603542052369546315432631475327462371174005541216014734112893690030494989564735832971970244155601637180320181262369679639197168040052753034440062256064270645890966080213598926009832667422821394164910006705774298010766892776679854093195370612226579541206282871972119737075353357396340781646127266822283299324475193357949113724119487200339042205301381844895082968118541724972522972269791584503948176118373874370760541451987971796415451584280489347212169973682464684659685240326794024741672442241654365895983729994272543225925304050752874670161956410279965019337629655915166983473991468282466253824996083671879523768026261443976800487425370646735964252575315757705764277766569501890989705096553435269607412991002713379467490086186745694807896967796482353235818535089222679016913679307293686155712840055909248909215449089715873267859379029325003100892809354604370620736514119785123492709113965452698889664473614668310077089930852346643336504380762471065386600689246134025074812651859470534200616820912314287795559481812248878339666111844907929628962190962284024706721969698732948251743448497512128656226966513106714618101542844816501633798679440348559218291428796108830768121338519531205043017845929673158532000663961032247181644309932073829700248122164411461878828785657273973919138381238690073216346699506090359447237483396196705194878385560574273198454518774573571378005382307883619158861052675095436533867662791683013998114173809790696278576860739968058123432545556875901079394789846814556580504877884976530280173745847947702832684465471865353713213526962491150289921513165576182262834875507566055899976790338123160488975730422810254860222696992365326200695400841372655173695225573885138241965999924134740624463819217407766952322288033167266741908613590766648569605095138852244801671765369152372341327901967259021741780981730635864320462754623594397528762536387185466355834578007127489408826133889479355486135476899232308825951692141613820982913796959520587895189782754886652605093428438085257439256824166778353393017550403996922858504500701497522598868069920368752654833352375508475876034034245802511128957878375007356120339565910468436604441678241448016726923090456423947882335895151312615916549371690586542418885971633104505383067893773762994837963168581276099281973520698667824573900116665231656755103880328607808512875298441275755038321449967949343683764749212042393768182446393232182391066837259755181007901865060195453336113848954290564030148169275875073316754598317583698953440802813343159358235515789205204985582727139723749376437980740401153768130154760535272622269781381870905344852599832443245399421257650093349478464733828354175669132239364117873070986004863192909939096216635945075835566521888909602130041434124320919651132586988093233828735876946203435747474911438472505834226334030935942254332006957672578083023803556998187963346162539810477615597877327292142141867113331753410266577968137864238973034285298845015647991713489084309650503222318948864029392594115226668874754630102832753634298001821874203362617557102205263410591160090512843287395542861625675456488870632997446319017060484293079527040200117321382196625324553817042089881920915918602746123960838605369662544880935249485199980920509116153621727681373575342607388138718023179841542827299216273986580000902857093311930557264202077878016602719416780941653544363863090953786777640470568183968713969191763736579931145902972786125534089208958654194325364950104351671322881117924356348624508413641797777636872714390665447809866534370354804261994849843411387861431784098102210258460388008838798337929376275587973753431868035983571481613504959152151102243247523878999009295825784003980318936205769792317879577465861846386535293745162650344563292798101892516563632618488698888006814231554813342446351045656541954546440744486679719683603352370212566993226248345150953936001345299693026847561856366559481739352805090641654814824554971940804802064356664185022971946763506926016617263699411064129980696707021554745471704643917802940942865996890032579928600123035906869121660123042095070496704835783636344471042659958786256257964412512675472200120915674129788590643159084770546776970238360982933210026695181516148287946154208070056921822846701760035572482738040311296348301552742343288074590176927557229751567166766642597297115555806731995495669065689882809208686994916162266923553169606903931877463375217505977926718212763036238019711056087074762489431102227334897398132659814860469520023394961074293885999801821079060519259216479074479893776781244002951453119408573651129778853377790873564170772452733695497930807660715712571927380118102642356322640628545110637491288802498322670565139436462405985172325780122442928760241270978594900269490967866408069957564925561870635479360535864413843718566853447061720767648728666715386734542378005461855617434223642582182976804822222977811345306233391732225101666305110137163428670477434951107887993125231275118062253059526214031950384071511400701886952753030531892055785922776802419341436854899849968064761979446179095315431214743219711636055578042271782093811517406451218848774313955355130255803041975109852490217749240608109294530736790948279413987798754877541937779183233107594062083358666940534782134134636266774972566004290043731546027496599242976054295195874856725224373132603744135684748742651946844422741232195712349203455254157341169766139927874189640447077678590508966136457762529829382094513417132274106067166395857844675284770481862956142412719674249315708624007893487406093516685821678759515493907171634094090822288204073412388053650034360603259635871452630123625102327443429531365748377403811793176448462756829021202298796156909367061530029769459580729409659511574099340726169544306451310415686399042080266834002033937647843145513875972625135810727189632651252270859496575880249639696558451094172879085507110612649292045489886439243939631317162426737286880192390904397665610806897080390067977645586500847253091609676492975162694654955516293595507013899974435029011659560635895425150722223383051534928588514402264517699000075637632899755432443302251210208872138202702679392140896150861131029716786473446540656889064079061729941334430070615087266462756937831263324150744297562824873094653793145627008483514847349830489510560665706874066001365565202369286364347578797367300866545375756705662253022310453126331330456261789521378562273989414727514483024661478297887598191971780047264611028279678756198630049162932292184217596850632612021034541556381684737011423033841598663726252609972242159380758701130172688757388797310683209243132922795775716338158144824415804169491453485249128482797670948440090630344619603372051010335836502815287567878245193224567846103968352614078095464880378945154614467144012752445200978099123553562401746279906526685897920406076004065183307033825469851376886629001948428133785359368353687092749749111965841355567648872098475102204503577161945545975302134861728410140430672257567492286185258089126916954289671845629404493749655239733508203538621707490516381867056701322872175909778164059751306167620370398428735384169495771941972836552258473877997350480290934531293237202115580654089780066907549419231940145184270887046898562503094140000985918276268552471632052348494697677853338770873717093312550208683138777599616914507176851615712923841241168593313478369460624450403314612032712775748708731041395717482910067743265355502230833972349695800622113270608146848596700235517525597623860065000498733655260844142082820579047928706742631159973777994077047740657777363456357063240950108720144531036576377707507772465822998090847785875542217954092408106021771633253418521952826489356746779491337172356044086620515389176701420281460753374481212205445717259648938158415031343576331185729837222897291553920021147369918358827521140444372938356716606502410717275423700745171412607672363614369599042308486089828955390561913972665183812652883201807388542965340560388786130766248951944261599132435135201083691956568487052423879486993838393651304917811851608318694002264474750062172315772653420664387470583881333953029468384031295541514780824642162462808734573463882685983849042826943891393245480890396098157573562869364824365038587476036040610398984431761152980521648822516298744077034892364566833562043335162103551395898873433942687124716922884608644374753712486378179199320408397035745488237242267839605930635803701639038412988203938823934202389461483157151129946732822490575417899714850870876447366956024092537538063807788889171611582760596978079881960063702336417151491291800184425022754905558130541368546781080746324742639107215231377453641506475075638954733199848945632497874119090360254974749566765940941813394074108806568568708183014471063105413127339899528029628085203272504188860910307753852662960328868808320692109085946810530995181382933084204088214269427656197117972587895768508808761076181315846484252571610824234473275302262192937656262058313946273613212920998604173338210475929441968913307383342209026943929016993705217909768841730881980311379441686068387892084135857971390634066442853366839434847362884976219373010573170754957765631239399130492149290996119253878628734492761120845144591474433916094321570170689715493563259629700506455546130389331137821739088232193817280385484719953602096016180424554563767611082182458362930194144996704147592352752530494398228967229688225097146193561718246719444800408860060656672793761290550351156600662131114957315248004799921020003951348744330361440950737510384747000003889489522952340153351054876811512941953891793723916569120272992617541930755496385845536814959643629468149761545972269719561938450143633500895003350191667577317598611066212249549804487322824925056705898796001404934879306225115061178715294740063197650569875059660552599614064156762518818416707037804148954719121700934248301218876577138372520218277839893171124089358067277211297316739880012705323467390681365554852290439173347388555342602002616957145582073774072045894363044272159183871152921737899831046647843810263423908148319392312551754104483061969658390627239065433316921843216200240023057663469062213638414116109224912406222646016032220575212705787971382133295502909001428788924961246683213514926306847738940711319956423035263923788885821516540043228749066128688657931236861438370644627188137758083088647636231022198522917722982196464781077690661790819822785563770457459735119701460038188440661632340791011199273720863240214309532116679025609785780160812645803806959805113309070783690204909852187907989110460984184365193665500699555757651541455190274015932651828132261228004780198155901943720087751312762844005163518111222625523953706340242868719931745681514356865782084462319854766857136954609803583551057926340206719379662012978290847730385322228019037249081838805245792723481959746425775572868067187254023479534681414841868261888696795546242743253941564027892449291557279346289354309413571059628986185743679349202824997436507122365796224102155455936503851598497945950650575165041846479494058391024684630115871070787686775846974026546053048080831503857977319205490670657680782432539858631467857895942637367480558515657404058226080461703743424641347448376297168465144318436955807781811947735215482791814802948651424905877842942044100688717200581131863622113553474797082238672950709561416963799678667839196913394681595961482701245892694267195077632204447491888889098792214066752349301921432302172693553332238693134863908496594433536983905814222164138199753190150767300972882137217474083870634942495469409422008087675090465786479342582229576486179534190138091214895223623948284859613585598476090692598199965887911106842477871642944793844314818301040340906753436317870832388344041176702755655678791417694242820092692218604688507252017402595057590926957751086553966294957105414119104205709521357811158390949648235492914444470562081799917798310702205013378608262863065724267895166538940509212669978266754633863902975149871174405709526929915467254102851171336972228581949629107702432894163368284848711620440067297594576584855212833332381115370035727365946069414436173226917107467327637839327144635404101276130107874531986876769388098218832819649216919694542067712141769483453199699215448918958837043739215877220523479719664608155683541044840452526078324197253406186855977132492100321613933335181866862168860899895978680408304899481243573345656654020022990465266169696742103875895872226502177998055356312545393151816785555165610947357445238059054068191295780336628087205212835141242197127100844081752505818675833852107046400943821343334645383846813679785650680721948058856783630731390650870763985086633898625522340608241785204922468043061192809812993726961716336407421950257646143826424426692174013404702171850310160396901950704320589482271659960735320874494559612928451842293308970977585366058282690148294504273060934733588311522633398492246509449126753328584061672833547881506767612711592352012447124841907460891118769636194275964037167465782202109057384097113319885886034108754272600537489984695676552911341535718371291451087087010969846060603514350772899593455217115030047239026397907995889699156747029888139227144590755187799731315967796143908532968616253419983148882948335871759218185630911911329090196009359825666463354132401114769021180311860289566657423132773698478998366679630428135256908226053860630263898069606872806247380938364546484260908973624873225304857052515307933432697071870707445851848507226425421647254852515397625041661535993997585984489681881214137370292232098011764514303898635566874123780571308186137159912362309566509593120982026754517185945910005831065744943536381193918465042645493587910776785110496217420199131536667493332247154284276713924582993294577221731368100998978302351396208864795921292978604522963599087996291724996361307286662733686789913004116416487819855603302184218174866291850713543362755057717124987311885432314614217454075320970219978852689298859952811769690017612280215850234791276514390132508195048509791219279124523095193921525551031318602207339133425871020827139002147359906908734986223806083513562866894499293711109663339264189530259010744797828157584196331395561492982439646085528497213212102995137283607255023848662103996131750636819783622254692020920589032325571588820102706125840615648388998054110344694319925723494489559658443623854250352814773025102500435290691757156187061533127491162204505162441720920127811892269359675237752171118005327260387834180390354352981636420798386661000759205981836148579496697858627820181572239401959685471473878378988828170136585947497705967547023003474253193981894969639364589675159356633372336938809680223442277348139958682308795688351620543942485976505489198830343599334485857455409284217447695950097479720151840513408545532364362389392875304757132878634531185966213941290028331186842555270892448181199552176670089281205229508777209600565587034924245837162783956477132556171522162717713186107780878665388222935994934274082319210253653186346037898566851310730895044535339612394874589271752218707980440762773067541385895932539552062327624197733059285929416708814542770857259685881425459673993425302850168653109652578083516765260816222859222083165475201591184234572133241097809261317697609146071929840289497683512258535431886088217802905904415683037977831762882185299339342141632944150906519724262920301310524289706336007104245267178898409017720871998815642491570997171108914968335546046142069581730710267610693997507447303128074389232948905995620582637097199992702517684341300159619848113638308221627352537725535228759961971523378028132391608475404123003098429858493922933220495071634244978351105874761679237803938823931118184238013305107075612787705969135142239070992239765320460221998445430303193745235607048694518651913782849049892072033632059547835287459524142463525273164000220096056085318666422566067011206593556776908591114167614302293273208534617760152665079260611987235230307876781527843784344001671581617596897305559940346682737910183613729923738394900623425643959799771232530367852253440343284188433338399093156379206226515448618738980555062407825701771273495954442646953702516734899678215459923231134283105869454594852590385893850543239942859507173160881216464789371194253566242664502032520469462586685040917271499824902402459508181155217108362562091225388522107283610474837021235236891888221440171767488494916918571444683102851112992752600670865228411803205510928313079077673353521394482320138051589208922596451882741827915438064281183951857268339504785676588478470653151394452686901794188495854197924334448114976511202876867668872232111572006039871154220586267475253134019005884620747208200281895916803987350401473600705407361145152675512995692624984431708203494315626421835847850974707759010272351095543766905318146381238850283179564386159821320701457883005491775030511166313165155663957983037238820479209510556744690496980448103233529783128549674942160388056814189310291954550846235615680742632903467974047589375468519463916168166199466723769151287494682438363858731595285839813823790324833518402201347688005634551720339634503151972799649804089332252825308222154713630550045356169877822404169850042307776049019456658060449548996496381085587116099047018008106556515732239379558885477627292106747207466829354200366582873606821161775272924697635412972750345520724275448429635172524325547192256299620948224457254552421924124975424592505339927212272611236171224387568360232797215596135863394018512984379185507837348607497896126747920599864580564349717420269032554283547229558810186819652980465936369617752687881297267512083555413709672305076864922972649973516997516233245567244177116213161190000816033879363709002492953855895478389123361983714978451787308307238931191079856530272381246560267791250803033725582891497422291862212917651075681901843625906510211428619037903617888740614360021872344558891980204170758516476452619440628711267094913137125014143995955857348617292885193881914090793054407942060871712783094962017891704788344506977415288354738668853200483498148923062404641548009753437287342138443527091512430344557451049481495996666533137504544813868254157772672496710881275488793972953536544703290997339296166488428031218144051505935525594398514265272562979288084333730038380530675866863871640186373001707538398974814161214883242945125543671271050880162311028639367107846294783009293458447547635431089060967611321486249633547213988148404732596501791724673250620124585685657022900453658634099026516982828013441257839659844299135973535498227671041727152078596724365009151589090789630753249514416022415346558836944855526628425744742107152140961379794434814631884597899611317375439372743185606243368207716164628730740520531353674815719209442436221869579465040527291973245607836367290532792222971113507378256220135031837750220479014797217222207281042282637663320803285526097464301308290721973662989927594262126515779568518997466546416513501985713863721667366756169228493752932223182717661935921642670374310522615154999252408989480037382667126790231000085371771038228347914360406890974895459810452310159616022295878159809621844794378708133364862054887019244937954479994277139480509761042617757395099919956031554849531749917021898951147279791342979549120332995131085441004028906514663949112580490945463373062354409882222297023848618355130508689492305830046612790082198436024975226039763374925293244419656887576536365290007588505439853677081639965553759488870735996473565265422292733601430356746654870772958558430854114933040953454399854490029520906409708525333164499421979107047060407822486724936485277027378894258247760000344809266096826681544751897702064675405356583260942558821241460991778407735461983306033483967297142187309783022767907179692188487307505920961033713373837667587889714248870322881299480205941787040828583006592543279762835327333166205722275039686425418076043486098144818543268200462081996979815428093738069082713520822040919072207762903467642538694678494866504216843783747774267246720404548273648851339785930739815128319420664375589262330714140036796707198766600812135535132349048660711574393346181300504004104315606756453407342597460495784256154026252962937470904643407234242855697425620656496041456602765732195723553795756221747189711927862734986979723458869151528155244887310514931416780567266737386901695826219994553766128057673066222473985926436936882227233014272507307110063152034105137256308118156610259875036369432634261651520509312289870266845165839991849498111781691577549169668283559553395574754814157983412031277495495746968163457037334440340955383507457568618895629454800805300221956354527193175539453976244920864423148431868806089524021743484679076867727523494677706611343153809985565484977879393068495622317008100173460766989376558764136912902376872122171915813171265773454160735768954556259749847561516857936587846877895371428496774012723255730905071156844551100804471824636101073113272461633816603892343006174518435036224400801053943544036724611594927456325523756091132641242310472247405038248444432091194375129829511530006255278854056436115713434603593274800067420401598374178352165827630779571559339041622592898154357758980367826531185574592755206738463675924426384682228257714426482384758437160631419006085653537083345125587247767516332011510382245999074041245786040896339990289857995155475673053823040055144438314228397124322554607055102576956460067892507873245330625841706574681359009255501222892107171151444579213998812612983703037831369293311671135061094598195951647765835544214045123871505060513269527026952807077668338521825967454419331248419228379675511449015728485904167287438350005429395767078368252215174707198204889255573354672334822160771053447581637498268492030582177129507977575330223359963878878611665338344330413986467368474590774651728615478804735197844844887596771024938560940068468934892892271582222117215865561598482367417521037646044247278518472578476416919734888969456010893094952165791133021811758812836451577327486830134770064781738353695493199063311679601895830902014938256882217110210621108139948724798208513908398028079475189198816875461712915650180509409731105900935353891152851534263179213284257412365352161116911721575027169086547308911028842740958896433152873031079266234335203758422115270987181375400457825705276147561472813628438142891048435749970421431800042503744670784326207990398445356328251192685950286575744064275579663018740424101632585960876410494736910773064211103279784427728904262900270858206571127926129549768768575040041485133286238249629865550756350277777248320858415488589970055272066901658330231684288789272860524310723556023588715464045934836472461394141058906220806160438200705401428405202166289422085343714013727528829546863283429375349309992793384251924625865304485462232130935494193045939545964401296657841955202463784873246464480507070234571447484695212317817803535699116562471578267180627705623227816715583693538580050564591477864609011150164398151070979151350146520011086406893025882777497034168934341890679768206175611066209888234768216500926449068135556301427379328584798128233976448735777770659825276840284046585045854603640689196329697224964180454220948153844288981460382011189847807448722261226553064233201102049518315457791970697631428875467173043495727566534487092646298769194746572659423888154732176522394370785945683777657584135947811792180889379625165880564047361954552701021806971822353333520480432254819585054049778749956935836319563173972774430065299114008977600260331306260397723779479970952316714943034351233779851792025803906780772226894219277585830910849388257657642246229585296657697658064224036429882394077127139609554055636638245239493571450311462524002734816959372037491983518030869422368524210281439458096835770281569087863138654274191066694924081214878024299189836646054530179449391385938189294839112015792860548106753118352347116079463064211350474949258107526517658272752086532803325621108313786479342585820952850075075201222582001999930260763969767509628112696230390629906058246463889220273848674754325025927362024756377774873681047738416512644339408736292435605029770674064200956542725045314316019271476860500260534214278251870331027975576660761471314839687845069746545965323250986994612404448108030905770483478494106933570896233225353391763364598495583102237856633777994515893398816547690507477344050679164707574405676166233349183915967683216000991848618423873656566432702349056773964248276997921578887644372773623941279807338485715727615378355850346363417329450328986354677335334220817059696488485492926261317745012413871221909108620763285322460418911716223309211626790251998806689207888061160300640865213304844382086633745166292233810132929929997924951672323851237991760594433691915126024924621164806056359296865937914046246485844906077921140333358663384273372832964335554795133369624949406044554216523755581130988403607506624129865358071402712058828682020533025544929614159922950887541946479869925130095205330612975161697796079073629567725410623922624920513012122276085155756454011673813693045431512825047592821577610777502321095453762234280684505204471016668037885911796338487153194317425079024992851272423718048956079501192789660715563369753115277993694687386243463577272977130631977714385359734397371566201344823474997865388678573050608628266093460357924999416303249436270379880303311044647126491305842371367206785080444646521657774306482761256780455909120256485688759564230675484945298236828457946657638453088172310722892418046017838988081549660682296426352210273373024218094286325956821746386057078023190974909433851009768445311627367615697020320705373791247647341128118257438063950785334906888286835878762940999564355259041980386003095977234295033876887642340506278581996660170244830793149572642672924529206376073625606216758160187786647398104594114642467906139553689175498152936776327694150040392997975952233137129003613939049024221459588788819045813594281845879922238242792472849307607916813793683865688341028947328742390524273449833462796674102009509003294078402488219746189056447040727840947881635778933286729546289736387315053577484697249555928566068567278958517670009879941601563566627767510977481303267895691556176164325566664802711881288426356284974958245507742727595072238794972100821288218103629505006033325377106123830340445235287973351770261137889609453999127876452211095558009759185731899541050224339684369702647561040020911569705971966940592940894351922285295057778557816104908707755485185644322864915373123303789670961981638343825608507559620181486451928312459231770038929771576677515651167265932190464469646486637468797680079557405571387932415932097033780519269362923195384945853357455056175964823161214886826553591293338701331492865150295552456885890454523757712960054971052401808698862863876748770032128450760150433650191502076623644232249795536792545370853460499811472252322761103406809623660847080901750117337812359686564913251429757908289510037593162531682415497422844489352099154881509115371175992242807314335171417693358411002087766642453130398968676828453668963371015325511735385381906700575847024790646594723013047908901131742283800249344326381543507551977958744680754809839989185860240666593369660977440654705256290926042543118910030535257244986505767777513283724972564667110532147407565747114254502766075450675281162459914113767425139481612839879946679043043010969642477482835058299708495181924422740144723803241289121672939825469526251474372252785025880506412710431052301344153344855511200020606209336999980565513699251558249014072956929070849828839799036912639589837994374901148332650665308247761871427108865413185475743609144989736644866732671950128635444512116902215134809648928740509533392562793729505138382946600520358896302754828959788593120842034942171129964594382188581570423878094976127056085375360741218013393929800416526232607323840237329793409902823864587001819305914757034419544726180113635834295174659661308676495057523800598071737545247983975817617600459222829393144899164832399703907655135565489681500694279742050277366068865028713057699736456266921060510712037694527232694779632070285158906468211503981480769445930980510705618961479489730073122991391070747093088645484647989617418244823120634371282578888804061329418053339618597524604363196526499054507838838828563320104022892921870393466302132943398222382169631186304836651826146525211911408067701119174281819265533331404402230581406799669843061704227140282088610002771808737932483053565651380829205931364688274258163399246516221983857247200078605427720098165551051786341757363745644151380760584478672456242003242331280981050810514955091828591598629076661282633160243363946373178168597432611588066973021278274942025429929904165941183089636507370727413095116145198662730112766763060334234701125928898683389351345716014788984093703099404478333420446201704408153059086936653808692961001932969322452152601421200051425715735100864390879683510517906812474846229439991449910591109565325394743976273079886428621507283400734012391062527532695462636028886491049392269117562183549168233688131076802281215014467131374981107719489365950454926861780670329447207389690916193620941883719808106216645037609497251328529176812340446280655205906396261289725913108574724370172662458346853814311970000583789937179880367533602931228474365804740681825837326217807974308784348059965375434595035798291619925699273539503377107350245079313692143540957728469655704881518219595187896116344714529880055462099141666115057318528992345622296332520872827037114702645104583547632976002890396481250390847171214680256782222365403580881523778096566132261677131453688430237387058690737478568437098428566008292890523409027856016429211779289702371425711553334995813870913708687610989453773333214528978777320279952758549195198537713968262043720725339512180107546987097898481872908669532398739003471515997119838359114495320370899360844784493674256270956433940947506836119914710595636717667557064743147627131883544535826519758889961082923563073425460980891328277222795822519342912403185889671270986207326061474562492493331125555368494784691490310591173213017165995851667865453297223341624648999954004601635974944900787377943783119410506004657829176277836609382852859574442065234171453877549700310281810560893918903020607614711109547637908592905499306646844688880702673773598156330148436066646065513362630254268422238011059294144466921960711953634007652920751450947900035932074486348880774529563256991772675355244625227357014299243281355661486711556681037254896324854921428619390851868640069876162485465247791818108562521753332352003193195067911456370997749498926432161357140429880392217830740611005610827660873736902439225022518673740808227630608591998883554186009431959596406768308936039587874862801824009990564385452614171471360066155004748379926379976719861557349947025945399835934261733140904739546282586656189552586042833526393615960245934852186655314594087862484393037515515785821152655887428857733255420805075355186870303971448350763555566108695695434314527907564104566212305615040375839155110115083461470545652551785024261505588983502328901738880715789590901504185176956882191254481384975693433104701401495474372850015669446631933013989582730342890814779491045869565581175183458391933451420191146885430315638178463001771062352456833652818133369155580976425354128238709534906060915254177737173784660649556559178424537984199739121477744422343978237484446123715755838319758492472481328873931777771502049804374300741238604970025202012676466168244145179467248931543816817231929621490385668635835958611228854138650022382335124263623523225301011736955827322875445573091858257912015862010952084652841708591782676576506447299553186712977121632981518985723764873547949507475345703122522088157331751745147887449892285503865645248335912105008794460241671809770170412251495312443868125274521005190516841574775890096691013709758684645792307344642142692503510388709353699850533601434125227035404758693582622186150232387631392272505835430327232679620145734125664941770639752450139709508680619191113422261218978909587595201561247151626270102048900764383997103058664742365107205586233096746236483501167615001941773951130503926082612777792069135372018719798897974051908466901852504095839622038450037839283614828764418966274779178724474921569307364528848171600908589203369913408696937530571533204343781142452252647063263544856265209970629642714509844066652650393308757824669993977071740133371424537086947155721624452920936817439676336260791849752993089851370383377356550410389758035505981508838483423711326067619206481660877223874113145497116232985752871265598645162225418786472844285270275789098724977950603947936915765046626365144933640692795364869744319510004439266133705015805781864183170770576699372365263421871530101405005364609293252985873953873266431811981470390127032788951230150113214863248618857661258765691627485220338211051234724561509548661410498151950666398603733098444426885806418842630091588771309578829850126850672031290625151298394243460754927940296707811163921512858376552980292739509130367154142384289651671342796234343924990411665114386243296328491792741996852286713807692385250122122531125900014739084540610271839615336212066954882173236074473335901291668491130248988248008866472062610440932181061618301298823413591478334778357551079968515725682757349380866711552855582871195928540048970244413265356366574086658163350456578538538070047944973621831864817232599942320588525574484359217852475810888385483305591178722618338789944670964342410803935810274888204422813068179807158193230584985980047720927650865382020692186773384083200933752462443319498374476095060313957772153478249541639390746757482823485761160561332668759026643420327372929888011307169779791482976625792361799320000708344598251815226912704787883212805410923943786701709396080604928458344573900429951408821755944763722235613872748147114496030751207481171063753978223510438971261416522055636238277451212546987942579116399499498177406572541964522469400012282424760052111372265694209149508591798916455417364431568906414827526197600072357096583646541971304800501412002356971874489281035380005234257465075502308247934069078931114778978219008857817037086204796925483494262922532268417564461063287639951661218501222488489167077698096422557199121111754592213488450753148706697583404340879018117377801229697640077726950718732313595560577256973715006221110826873135453582065550141760022288018647352112746951376697922838660006629911910483310298228127840868472118180817416351224480440612594743756844636449722997561722754143147046421644834465715765115747552579363142382017927486034947027309592999060817257918824096459106329969606621747944820208490732602160679113476747129478520359800559234932646318091428497663757957888430138268185063077013780476902069649449902745231148830269839646327578628367532938119297274149933104811035601101585635836087220198645572625817012539713160000249998483772740955567315412492793085160721378929383963305871968523755728206993664579630008329447451171308946280090263847635540331524002625400832066476614028947872335609356988071457175458700439525128589053330731843005933793856542551286951896123127602146045769704969442810450756091489333012595165226690744381615537635555171403294411027844292261712634723660736619896366157472288230932557951220840316124673124757894474044702076523586887099551318759247548936967601418053045716238506756222568124575611177030157697963496905872219370468692652744395553327436560350790512311334181958841654015223358315664820916953602472545719017926919522517058718539651400053253193468614148504607511280657442678244813975747639130598545860440741155007795087912707650982116890974258284906222235357018585338698078430310328532569210441829823204158680637406883669359343141301588303894741127737157216235643822702262098850809171187188356339530485753035612221396181984728406317608755333005787214486160169690374146914509596026314711293964352526215791972046465602940381480949162067667135729241277467140128998934491919445171856819226862440053508230103651837939729666844702936010120083578126718667039128133034598738993385912420587313123075419297734628997520350609660714171969971259501792318822834089042503990602980387863449301988625622219480659882308233359013101800144567253902510658378524125166035603296003653698152324851859684011297321427656486253692594473629735563850103004546743270308407410534216464739321151039665706837436709073103902217799381752288575355233588567397418623256987824036183621014907676883229560479559220311964849378397354350836684943092226700637419293052467211399318781751715173569075536849909830422491892900727058989130579854224469569322011047000942296324658290643106969352281306688591919995824352896869005233613895945373118106956148456433264697159776722764908463907403394372617902134419002439505994843856052491517684343628595888742540481954837198431209356779176773697215831288132947743914245914779562012371320318658086434818011231052832504884608174667340757710701452052272820580011577592967195221018362911323156052409466945620973316761116103346754778231822990023507180676377782446891237605343649013046795043178012185950562070027681046643010604706430422094915530203156668903710875954690206134763540044612818409674335716626994986226420587085108698347688270553253881800327261843087733333406556686165750397078183351374210480855411733661370312328247787549011811424406428440133986730898349351576515411959752994677555245886066688475753406821471813765655250433512858698335084553260595228222032168844860916879260457273523412017771895619117084193854725972719891759693198460558706811776257049371662457832536128094350121915750119462856115263098718008662332056138225956419171717003541912992932046738354690918453646523081025230678105418474929827795438172476718122205080737504278011154340424354748638279615114317967272544847732573931960127541585737791058446798367704747150281356836050620584576431184759413503231239124994984672127513871146209551819896583592212370647170341434992955359156839366345966862217908583584119217649160798995443350711247591060058495347477529845650706604066772521446755015922277620329371352417714733808057375190516157742902621313345041306173091381502600230057622774363476143151131933208970897516534609451906097904707181481812532230741456743781783748419877941925952072440263876124566210960114896871485755885975798880891615032791161374194209381222227578824524863754287163087294777822288028799065055549268038461416546270164462462655785288073092533592337957539224978786065913430660680827375457776021563242096231935954270773348092720787016722052360121818469649103636617664340621153699577992770057034747113511560180338455163524439912293383454841267306541467153203948880106737211654200846945849853937597260063267373189172816275183224306322092747260880930357913027002441894031653279392059580311863330067429733194183135227644338835375019602469997475593603806813827547396687734849688298706738454273502297064322597192256490271615555373259818756273340373043889030189837055051387924027338995692596042922355597863751388535131708052914112062622613375888205716239933202223675281783102332033253061708552374584020770742184120036515262691898223784684304530319930878167336861554174332441182383984916412309910587680516988736290554062086136334316780651001348829323507430789602496725961143151539734388612584618294762021590856898694223749300097064160442205876486268708805552274024583141909301493560536593121613218909146629902682490516052731449781474941793596949650009733969751769827734846998059925323177576334053632326928695942643747300588573068094066705153506705916539904789842201387787962881009849510223646392434691431424078274767080657090098910697716844602742674111305931127061774050973333316552326839216562712249323952123713010933069016895808534750669015953675050993921528610088971867470228495107711611080668478822366846060466998925406123697349985336375542508494630150623472219030802178636096040074725776462284647241253861232517674897171117215305956228570566224870538362655120801148163036252519190458744894891494164797624168856696263526379221322178357993128372875732054788160141924451462691632691260182396758072316600448342044660777220703477843888171909628948270254061157547645938737982821385494350597121035201768283590529722829117525598617494120030735900228889221101631486427331236806152599319363839032841957397448571788104228742382753895880455386114272638129744671664830049190879616978941653539547741003335268999146753777202045537069506371443621995587768775361436498561369173924201876575616571593363618369931451344028924846507415728298068389768999267249259334951539981545639401049624016159104455567786496997425374491999155712382968575538758258653907407384338286225996257733279449650240720664685302393164333602437469368050899136235248811196286980789583508025649108408090679154495018714620471720160458581570228005371789939430875823631711193401302250289077791647486005087959427260194861107531788287415216345796064444135757328449379089502423938624339186343359883030493549460715499701855648730258915398592182900560438304689419288695718433962739963350993341051349305079841759027893432389751031084139516992642811518579328562325480320182170881408695041257628020994243392035768785861505956738745575488493938398638664625128339289222501905635762505655712867460783758130579879037714504219006358683715794855956903507568013095492268204528210977617498154011750150777990458258744657070607152095710931514854892156948899066360950520620263610601687905514424059670948211494455456287945167121764287700190890543121656937615758309119009298289404789525915365981705326916486666181287431803001011173601929291818200038514956819632273400739033828355763120848274790074737401711792933568360638746814366045291445548176322975159892018187915329259741891747972109714660102951135359505968019599713419320591392622065301702212196964434831922134196817653752442340436868961505698607686081700351694859907061448266888730863909280524632110025888865818467584423706519647834738871978167968843285248272267400809767238140839279220218986751424107536883324868286536093685422071470037304598827213797619336924186881762074123747316842997777909582770505573794232139987148100089531671569613585246197629449369267177644473872086202027009022462463134572186114860593872609657001031219534341842742831483930018542988964248015060220922583545760215132022993612562790562461696544923277868990095350193072564456991929509361351623449651884832256447281756568474756530627098293994666118087006152373587069799819505229915113545141535229170829157532565463172179383505463337905816179487044839357855558527937565726803427618740161913031741034224270920887147984913988110450424770142111154907105246595756393342363964065753629769382999297237565277408451640210667502386330849537660891826494527434151938693183828048197397006214904976031330652393234054417518041555277085982203747443126497795321234024982790993621767951652278182523773362471715006513877585698727017399705775215354798946823678196713544846280335398310710736356512296659868994948564709154122527955047902990234242443781933584759391552023977181124483636939493616219165050552053549123089175079092794395362987384000177524073200111489034596268130394960449760775658040454142013543737648717453356278580540894402507355235614578633292423687642747603750666787618615782559781426916196652930047082576330639840881990967058024431967138784671133582825655083541993055402670291765965064399661699392747922189388098369220349517076147086953530576228314802833975855308549218708093774413481883258220927785655562219038436706616134956568177643111487677645407561746521747561305976657196358884361348195940555378415990625029872445969145066819773647465786942900444859177451613131674112811763375722244926658457573393240627744413574508483807163316495074589293747159401066831607000787157865344823036223121778065177119262245800676214672227977149244831766096034010891613899970274130670344422160135700603604832935763278133818003201632937134849015390937249264148586202051933070310956415643654184793419538254975104684757570117613129921924591630032180848779544912453737259146184102910634818927990080937651637867538627346220571675323940105369645509976802973339875134327817757020214011664367288075607925508946812528059909106643766290989887995930740371766357903328332009520844096604227657614186998824880925616109845974815590858510955767724901311163584710979097730910463613461454489752952926647974206727336694243223414486358515102217575727928510883319473088804042993874947602282619504818167645014698626164562136798099133285846559257079030634933686636123568953426347796355650826490847413760797669013097395617452128892505061681839012519437109715546232172963092460949592553366438478538459721663200634799214826082172248371179826333759790961943360615584329761529592148741216391236254298550496493670522184616805281285235513215794883906253781499325238692078755167497957861753440715558161020304513397070113059161647138375829422811254606230349999249442427422228116677313697782661727504998243895249368280663352646498909681059096724944531361217449292855653197112695051916096618941519517403844460679873888611040717222898581585301228499012659213449818877416220832731831410678996550816354550197880320356446302125654513702720101449244665524135907468516046572218662584271096950335814247808740959543523244948762430002472747323420961657641624452879979625732869236484318165408838852425333683601944218185867410433489058256290947917436776428396244987321760979673677731621636966299137492793542156467206573982056032524285319249735788004947658536172577115332812686104460532453764620642601207382141341473561667347642923233249834948118567233155294907777315422073416241786907101543058082201137564818162600627909823769996290415354574748966681759548212719295146752558459525487040037613233669162709249149116612400399574426078654605321263858515408095201467057451868212664817027004933063604763691509685698397967267062181374324432315705641516663630148981687235732944030951363088023934430644328104310068810733226009336597800821827368923724227946172713345671903114066700987551355970343096258431256198306227012108619939070661566809161183860261980866767999049939266553723047857546811688040550615082037735700718109073280146011349233885123270495254719414173988157012202801415136515634883266970501188372538149106285825773291444405496086279501546821523443074942446841078261478104121386603745952283446121213132805539389117588745838532756400772005677861866818681233045985225487899800341619868317723242249377451606722086235847343598636562689756142457825543552764218851288096506478142994838829399766506159164393768293693312869365861404383665121158728337864128163594766677466134921224101670816315462008955732308736311557051067351127993092248019695649875146854041534663213497075359486530117276741160690047086359882103809271703878435969788529269106318611239267666535349590009244992730838547556979391366455500223044458593671993312753663662264233686011674870927472975072390979767594854998102619288944205425743047260082931029796397332330005549953142787352712092453212663105728846780504088969708749660486355509603533681702973529828041266720934263471568252256237151773271294322891310623918958025684761439905904188070783193212051864616186110196199650259086023883570777724791728531090194450254644869916548511393950527543326925559393885025394549855023653422283289223447252066047816033617752685270600744114047129266878198111245827822459588299818626027702748791491241888645166672791457213804523275139754612628644254890310662874632509932743545197689724148958400274161830222278554272751036008645544601412453255155673558714093491286900123750403670502516667108906493434289215946016575113353526309242705692284591187885587263931729426478235434800249956555454359785883188428298370006603315791939314941114403172810447092831771837985673055466060006543341870538019188357321542939003699029987754820612712868625790491227951768930098908576885292826197776515745700783476951256491528088646564541820728229877822991339637768574720232345973638996349456664039186574768001597066474695057166025297456721743624771901871603717855660608200132269612708753583664989625188729964119977040776172185188631126213540934921551845579099867936784611978812667481069866457965996743852536716887549784177769180361436429417890320492394459050169011119483330494940022427939428799586613726198907760351977509721084037755898085652223361818015220766520100902357328772362670119903960749752125534541931869739861722190117952729065437126559743398970337555618242988683281631067668865250600974997947332166969382158949421041051065851392782188453539639437904019296826062945219904047742233408186561459123861800413535215393134232227228615239891485509504886702678229442351824902411933545433576661765047022148285304224817257391648307841052277637727462447844794673448869981153874459529740179823214030542054605119541136298408499543778965608315492615213402840381846381829593838533738594075509501432464447528508835225224283421644840934207243284218983147691701006510810884098378979593970877396189858959242004036569658397390244405094308131426208170619351503114411164626973103283937580824378642908618531043281015775617450614863514131547078643254966987509118251640121887286835067558355967892526424236277708719963384523947263528677141257254096411739199430599286764536604475295287491198774369499062337115068779971284707162532250245382888341655118175978571322847955219431755548024820674416116195140432180761096120352504866451570005299984247466155098963181102067856738441775816271022193858369391482230485878038122189694825247341762707675525371376873985615884777664763015689471295091416260630125093012445121131304925645248480553681057478372882064574869730115438718572823312428172414178974253106561607009886376866539835652254297502005253040650496639533925768987716008200799347336901218944192031200951111732760911311389654713205670383362636319196381232290934208289148678948106053362546038113742334491943656874012273986545857728734498162283815210116064628486231729582676867971607176750684021308085730210493703804966295108095477920605509341364199281980967098256737470371865508916635191413589280953173096903698008477392130396460872579151566625179488846313724122776612337792352404061465020609918443264198830943343314712684041008902378248518165790387899113165119788873658631638159398602449159534142347441255056166269864251883864664864095751855212499394332061425178945277575004367631313429281272726135752421103890404561190621497406398314843764951118470164577349079963240600767833023432819334274952183809430222114490018985442516057405645276138011061175663050571603170569296295690199400892913264682980961571383638373181560565004430353829897228137658183084662453137608347969982952092563591472268156078783447934011599538114200818487092041493195182671814258987620133743320076954019582208475492698004467025139207239768211795793256063893921336699359386828763719814691021068646563106148945908937132486039189268242649638655831277802744699667216891743524687928597277433324698452527699752317753805978771646645451887427606441341564582675864048760937120881456426785069044284542014813620951483306937879877260300223175366222572425415649140229719543957329218313362862959791134082623605463513339535197574719165062553529627403106957861295366670861075206637091735001630831347907500448197464383166039751705620412581979886925554231924751352842989154126684061134004600050131027566440574388315119847141322316000670534403651194046078655086715618022423452689107981329466697119422704443904983661258811329167942024854039094565385679470528646735508471655662320750817489614111836497867453549172331538429915743859190185693298347328014249051343572379026873177094674710723441693235263948926789335431135826128766109829086341324086932213017747607157576771390188448238114884697013175311936537970255821731231909205323662592261551142162447053856203941452435962149662218709870151098770917578205934190660190419533153903942783670323962808262339634581606853762786271669048940987068427875819743847355828941407114723634030880879727313424634982266722561634140517737783053734715773645156726971794988638986383314649587365996976411884805355874975594831570724756736124032226302600564185275656317606420862292730532073671427761694171573909444638201789703418278299263348947354760603202140484195866905420990344569657232635527837973566076704868174631503931826835264395198752212914237735334586416986495853213901021212376776994307464924684444610975132149846197981876639849488285118995583868329638643529706546516376884164910221898614551340380021439900757254659705099186511069292415509727730329899386454242741330459957158234296134186719306740039501071042452893210109559667383913978608778846769522582605445072855967738647749128792154777324163224809761096308479450757158723246709936651490335673149545696863527899531373325057973482013114355867630336908944885813574362779455647684520839067938334537035852997548878993366879852533025761151264190781557675473732983895884721032628789390136961087564252573954459976063038915649632286493101882802312415529133474178771505276013917958286242695147364719081011958405169665531999224308786545433655160132229569892630964076934486115167395827604206441842436011309621447163113840672351324442497890937712582735430694857369924976562211220906904585264852831525089571760113078633351520121406765207112258038776936976425705492997014138665332895157603060301947878863753638662865197858829604491830073073121674170963934404609109694010456644527102765076765698936259551742556379782188229384542794058387442433519848852772946722063561725513866864506370084465866761620936721962699285680994467825379559016295949119587550650397514656971928092151209579394041338315501689960124822710215397900311057560965408060904435519183591259534375506572005909807712815320155242545689506975120615995091647255097160933148928318045132392877424726693518859916758724849874619820619501550484582621997876259295252712780411288130410837719044987538873092157047958230179110700385568269866333489309803342348127570674928161371779825348749218487585592967711809286206349918536160975736616440214448631062152237790983845091667038228540528562112934527758947891647439892446208243783070435491964392524516095586968840866628880704143201285076639610465928656101497708003955870845729979077445345470670516334370076366291789220900134845883937956440190606278309858153396632187080852941840722186070480311112970051506251289095262266292212002695849460929433716512649740412274338059512326643024196572000378997383735281406282245612338102050745301486824532892047081459671105396533618019573881511185109263351973587393483403024673221719310023111640429115501267562244972714271675684005612979038918078366536970747932137682448625428312103114922171433674656660745818183500847387690909921281576255758373388940129433971192723051664098216796916924438698731614596995590587902005536193892264720553567774515961873819375320671752001778990042046720691281325956384814128412294254936022816047507349863561004920569699028954006417052211045198737903143257050045964399725969587651993010804676311360197253061463176423189922110711363098258010107702624957943239945881768392329691060335752985160212628992867642386940937573515177092849075593583017507894510637275201370746398366793852874438469783296155182633438136607986756541252311994430326087424395770741612566172576265516881528119316349032732065511244006573846696511273325738500634088047591435133272021143563519238615816998762559421954401504335752778596116733979929830594004077863215538048450441740892445850476623925657594590616533545159799662084711910612182895883149031752887634664186049409527596301842804610105796499933465382083967118925196769974845385849792313739153662460299580289501357656634369424554280356465015555273747110539669046661438832533055401196823241501372554650320183992512516801168014760339967808357841617101630952172686267541432374006756513797295648425837594009170304273785073109857006991348876532767590769186486487087242308525439874337501927660712130751596452097446022816916418123070168379744014251269976405163915094026190892730037343091581487696490745360421383548658062380450949399360200043975287269435835616081611188756257856083313664781135198862407661866706719472439155930315311290373201811180094919702083221288442883750881715410472989645336774383145027625977929802940243895829424220367553568708778000683034681991817824567043334228872041403718796590293091150459654648200639534683921965493572693211744801356479428861165871098113296493549044253798070681608584733709449453105002466178524442159684708174466148949057154490754516794773597736676855606032747082188335119397108915699867749855925370272802365332268145238615480119423233039332704036671105737046481637222931436926421235868306423579102976973323822705343208702354706892829878206050311355668907556021895616528777343389447409752138810602100018777676842946877751315405301025554974189970350469012019776598495609101279010283874035602584078859059348027910938382143393831478198761772678027668753827171514198908027881696073435074795610025126965320600631702729759473792700122202608189736242846677654691255159216829869931550599588862293819743072263232470709933186090074716864169914935136957236699582045254942099736817622684081295816625332780741403814856169932111455528691833956743359578444979005154096747979544167342462562318630629547569533616528803047840234444855884616056301466064591660857988277700556702053646693728149269752521408476874969289407551366030857458947038081001941751264363128855356678237222111249288216521357771178727226151103381334767454703882794850557980007570170404470345672022329759868035785047522457658600447190977719494743087784313872562489285511599103757288644720278815556617155035570418810947434181277415946340738110467391093788228647601035820711253169050770654740714027788730645288435590936174349458559636470968281059172815934460652803985403603521179233528690911645945282051668849376242504570172490009342553632911420052836699452152458779194876373926662123024870242295715355176064359979496293608282656184250930718340507748537528367284994860342273245274817072856789638031994576765150102367563179530152447877351737423661158176266401709239154405049880416738063782229998176517381072329902796939543909414506816629367211418267205664032153894747482575253038722713711225103327722787027308626347284258056625024898080143782766312506717535357440519843155336063413311968627626737441336788490343573022264964518230162334456975301416199801775847554253597721785824549299559938701247840846667862910348485013257488005297275174033110327316365158153268402364077082192503234987259437883411201389953978040855699821889199509703536517092562231448380719321861415469544780754381517195469286245592730550954400004186025127590529794727450377794319829880473861423683381594398718145255501653412512975862325336223283421337416943429705159797235517149264802320349531192585624223440545517340569912349214796718931323589990251360490085604335143143301994409110706233052705298493815187789476256433448727774623095738350957362002824216169743452090768311396289449741276665142789714743486301356669711708855605657244324171338533890698085257053662147317394854691456270210863024012794252767241773237751000248911923315029376050487523918009160887359091628290418319727919463544025387497253502445245421256598919678031338130562371459314478432163035597029850101119841319909763502022155092633654390729924297318528489988086049955302995676275385673622040628880476504260910060158504495518952609215510688318923366415139679629707666940892456196352582561378688155883531565464812099129535787287470458304828342944466365138725323682009383122155505859643957196568725716307215675782882927676376675866201496225303315377077789784064784109589658178880627591851567007691624914016663036922880407480091664342650020720570752183904903091093929592878516105759876100857051523926969626214224248595665243189639766210173506757970601726583594161212172983962345425573793705592497533266957404657123416148679777587352949754796040602394187609017647321631820791354790598230419859699246914707706989532944428267989030993069769544225770186367400694229016145686670481495030211453229916606968507574796865756470357948792523714273419678850205072360123591729728904021053736096465688595880959558870860153130886377594603700093987364094596084790953200291212287097050828894739107863582026596453405963902023418792554908509840479549364417451314829502994074586244654774355951882529357844452741165632082378804958640605735453834110345088884491084607133880220583551667275543698516165734775002517058393391384288669419352733072381231467853320738127010595579694842582654369862671228166745183743011483783133432037557757517517381386627565894502128088785342989585434616811011224535985125895165626462543336679360454516548519375238722991383062662737127492874127602893321195853670118868217342693562239751121457025648876030635129981023698070529093377737995535310640727118369695569584211125994495379953679424875443552569746131478497852431861356746892186638831226949282072606401080574399693675251412002899465181299633514537196164432123416153980706309759208267600331286742064869926543080354718108273503225801734380230171332181616955276216981685813244159775387089969579643240614760753027122716294724135394547610983807204035322444932038176159965005312147001458607911362618064619485737472179628525020834484957149171767310662642805134653531684633389105397104553872545258928789045032217216671663505352326995150826457971896368128978734367575590926697439984636221611361744744549022649627645897117058823625365743426901608465123619439926123121269297871533881062203630079432612323185644254357188099987024803054493352300374922691127258977270233421046744264575223127716019399544139030623391022343585606952496963827884633761853947180950926392004523171398011010090925116905989215052603412485464884013504948766878824887810841632189021345255136474844895450803079558339549414100380718466710741992193112391006635370447063280985325141562377135374376239104685912141753323840792546601022912849289277684265193606550723090054891990216855511955071958741290198627258789649266843370993534945513791112118863098302337374056360331603292390916142530157539786493103895415322269523978457862478714166241831949310980154510194931998335287092590556251274233490555078307325266170528680863921200861347812171251619230623781283325633822978539894933852890775857849356966032516060821633607957865705746071726978573149638464335496246129633888089529347977597361518313388577168754995482893226315906838619774092226723706670772904734832569877149789664368896105660780806142008196168909389185477455718046034327056999899613158534119028458401454162441005924823500642147403690268385451680251523196021422118080659617759144230376195049265574357013580547546707358229020901026880291050225607070436977581415239042057125024730438502674340609033230409279460892597694096308351429402694540929202983046835153838043865832218110813918362644679694176659146238587041018026414025041347093140935348860923816020730400141583357308649943421574754849721850632552404458346628238480956835242977433809835160872114340243372558755934431171181733273451201250411363877572123837864016436400391280174939593261107938252281946236674891897043244998766500280819437937574565480511489878610878513749047508814286969714165901767661084194425515605405076164998769983566765856376546642680473897629445973979796987354699880869364654534441328178013170732964854687057149906092346922365132906361311733042542047158745341850487852755373953935121724843883361379366522570465021473095631686403207801773511692333424162955985836019159377173947141502640787465865857914218600764495956398876707660849687859155178627167852248418694067469831443724111034585819439725605176368003415163877320935912823443798637276557673565550494393416652048145027566296287378452155978907000698571273398564737359781550592612285765229900687889903246818721015265218453542105939690401311514155880251805059541508917068544391542973628009742822082424197611777424485320254296080535947568945348667066713858714132754256223939468259939102882069780100306954224820852949858505373489935464186025835987163940219090920502376314575410998936783690707916556280868143347215772868343451268324526588443351733675534006626074758138350114777036367523758024752189239461373820755538992877930493851373757758239845088106542136721143867898811612682583430888770154586311804419194141301412279414000703447348322713927166825432589735030081726500872307249739009253200386292306782058613718765105609697225187506408262772517832473998656607631610341733824670970241987150584769456849607982512786102649770803824627191716155333280286068354752568782481303386688327444286839634739362910192133713402428640012326845433238469603458079854930817999451663770784543953031120332899748671566347158358003767348997878302630365081177900220523786155452540944336474131411290298776317184437512054054774525232480002912834147798977555110647234388136577898544318955866091961293869589507426368542782047251219524503216637574165646874787378204591563187882770457181238705862780645084915140534915845293249342346850263484317523294697996154384128411344574543593815590106113200419309480301426488883180631280476963062217144047391179201377880829224039175631950113035348741505729064728209990827597858075980642276284412438347835327441394838309972256691236726855967582374746038490689072665201034967940057828159210933288586903638015043306060856340295640737976569413274399628914237223214595204994696904022518585824151048285322518980157608433272468245282897956318594523082708108857126530439342468615567303865390621201653531859824036153895940630057083147117238732758585979121986659067685912178648059490454322515961939526708232333914179976400217240982459393731171432740714759147321395029515584181216219217267761378258832535526870755481236199501608599758708447375486283668497714992461684481235897896444134686108702553377633274077044513523631487322087937977975043408820398581135855150537914748602929829243647691888047081376431774793183122400032110812022954603344180178935482868738175925051745235678585375058224509163302136099670877928501653200315776657610724207848753803766281786359787234075230033243044638848958567849344763599087310450750079257973726338510694462385366034416272858568095696926030390499005607345511379258180574094979699834407525421389852546428541866910474499616201983137823349006308603811592745024691260758691940846138053913338926571541404755453906859403201837246253736126234120900963170184884087630766966712858329466975840844034138530573971894226498663585858955071111279268505848175659447702936198548671020381842311604479796578102617701693263052604118976491124429028419099302476515746071737801310065425535485119051954749528298340629799414507326802904366962809402624132223121867700525261771691191049101756500449963694623670707985552426915092526269552383263560879857005361663594807171398392694967330474220805544913911941688878560300911713961659286003149274487893668413682123776275984697110307633014234875497122802374943414130060151872948729372253694953336153455511304847777019128695026708118246552192048788147959226104115870630670655533882272276456255699645743720782211317295612655972594691822411879581952605260527044268098106882596587018314021577812266086078049682348855798363539868858656546389694025652520520858359475418385780925277905280834585150180889503646395688085724647370435264219791509806077406484720002796560279757324965174377268910450334885399326747004725072501177051692380348596513828796158369443154262786244967627466433633466838076106001646784266847117267824640541516984780487758084780969529893569009185760086935515706191869453315851795357229097966054172820055512552333677977271717038605414181444571379700801750572099376874493205018369109053040742733778669171501040601590006120395449314138715343040756830384501828819723893330958657822010833635049605910749499629982363117274560245115086926345028694875955997584953653359813510722541784568306629663427823315634574775064616908316257527719078836536274919002220204921285040051834648851509999954758012786728086909767043399140308979046534619855617243907150764869609176355099518794832245565545634372850910210673737935551415684451862802925797714567735385504907672677657682608976351957722342351123742763685547339621890776278877974171219643882715662732165113210346037671718481465942946560943756139088291112007009368501342110538683019394230776801712309031380440691302303099907184780628978495895454820609372770469290482239029344880962872680924406701920755016073949181275927935663199676578048369355292877391463735393682643178130653621155206087546341050921783841136270561079022884106556617075295033307398009697511614039366012987003855059953761634184388899820874064863519786311180419982834536949927499555574515638903662372393945072826846128246175108839846674265498343317044256714860599999154293843966150694666617557558469219546839695432731198731320119327138354027322003928944046165234281625702307642316608327792391369409680105983564729865397096452227578762576990221230757016857356905446805527823179962768318695379079290579588500520798669261019781967759343594377257708688688763641143332847364454559909357988239461897379928336280759968486062231362241228166868521846507740075623813492281501971094096114444518326634611659275532468516669295928367359114274099450626113667246452836685449279315408492008036316793783403745702431451204638394810573827401703581999677481795682481570406421459978809524234929919028355614001644649157572935283123549484838776506645315592298984260059122386702779217331261677691809214165573981547349060864599983385164729109991634190276928385490343519697991041836263121162695748632342529913013542048911961920286916995994364569725795593158740666682107560501297726598695795041971943330431186918312970569485382224889491860457403661075298457191649842299867681511415345098866922118237768022203804268393258005780752777273696659446892729417339317294193738295839490806007835649886066071209750983473837394506598166759506024857984340498210783594643812525921257535488069020646902397160927126951016891425907052670242447666324967737459221822802866993364593989063822325571785968669657896945707379990742909473016347201397799233274123087137524907036941345138843377615502224461967724240448616026660174342299690215164724313393944786594322423949326409315601344354877686657848683187047756390564493994826637480365328099563693258969549878114393811518214963458038520868553317942001244348320853118622065054407197590703665084207146521475867327588838141915293055552090961503321276631473188742629407486909696569553880295302421058171640604670230344063822183938296087145072341269799429367875664954191170890348068736701189552982517796512987521802089571444765712812742312845027302836045173844850719514415830324373516303468303770307067044058849963708761827110328020257272857675896842307610190958585739272427613983597045235386829318361783191313950401782603315475943152728182456604195137110680106365069728892858577129849420785165575767055903526480493481071118983487296362599172416411327396943815610140756208065824036875189674654944768077529279007664950585279175106442341600919025284634161121621772917995009168308757131848703991418319788833844944915436296867188449626348272552581968480622150883875252732428060507257138329897842833824160497586468867123835775452851362212934711002683733309878340516437568722435448746778909246911753335639605954013207697450187064290846633469332740189012730159289824575708078800226468191986066876328957843170963391156368027595469773470363679277739899154598535176838440023755735203495913878122491168879958979700452291698311030715686034340548921812709447287423333108691869425305804187004765630107865275332276502228189981789073910614141505287956643128036051430376714802770636089363582514117169948329087691333751364661286432808321203868212026218573074634240053602878779683446734575445457107285395763903668554818472434706017809686590281539559464179512107116188860604657652116800466827343253137420331686210398595863393828661220494460103974553036215777949051184194488682014682753272396903937834088204431305733188734181508995804040410246741228878942023578467395610399552970012228069455911570899706434666518515902644955379730235838144333346994918520728123432031663160624057370560832718504355415720942760766077084973795603761020613293492747790741490112147355584568052586294154369290555722563174041650888889250270465340547338471009710721168393271188038511107135635499083801891899847438844350853037134899936515155696146486409430874829673809144236400769128035405541356863712021906674254692488831834157791775279969524835055595766419528050793183466182158502797811052381429535354814865294526501965175817425814787577855812568767552247449039695529772584264443301923573006284560671772113821558476486483061360168265850134817727152081664240508333218372907576663940470920298095966850462199081217896224127748751941889937432978124989182355592653359168943737407025303305329752950345329253339151885711514676460447279968759421034707007833065456821154563769222391027975179266296306540936310569694683281103606377579240342148347108470970528541222446520633223476197884545281628310525813144241482343977378081455399988670772179602047338281444231497723011728594573259449460195015637826215716119684357315741109374136733025196478196096502594274433149836340841293245025023157352637958828386364701195999151748296845175460543692193621169916387684220866156903858015094777090224639218403730568941086583114681092003196444220769276714906312995226085005624269660688981840380235515549741708344518462156341241750451889555917141718160655554740960520777109546659937031196483052568231992384225054926429751466789404505520089897633031606981330452036353205872339103585808598093344167186580182610325707159167287693779688527556315774733244375125055830767442123324856212334458536911158324316125281748757025072266617429034209871714534865443932834981437305694416079691979860941768701698765164793744454457519604909728068172854441713782167900557344035096953617380138397973064205623895791315478611689942563757342152108397867610275024400726976549269686666492177983523937432157896360575370258635957130906884048607738043829155117131745002404792201082214321473196427948753303475078327339850702542503353580002446159393278887262056550136772217433860706786643061539929938676252617091802163164266520207943176430751112890979141774970109182182857753254824265115841171148025132337006470088491276195882338168460817197446452494087133584123086748771840143372091081840739457594078842657997020204813821864516649077219002835657171578901277327908090853460168895009497546831933719452171543339812039839315427023961777654342040857097269752197940580886911371994256591900408819287025668488753573565281784864796543630966629570726950781222075354261519701351999318372577037646986941260100043930336208314184369683452687374378263128247623079502783157937332514205325965413395334177098815040137249422395293838460156843158387162212779744014373085818118726352168734531049116427803684812339414865129556957950889805837153901231632254927525031963080661778339447626313807615564650855375145289378919103201267238395990573552409110821307470749501508542378724208908734575328844925756316424527017484062747504731366577342020388340785706439163047102858864214387955917858303610399058561936160000480387279072757276735716532219429648696696770970393017730385956123221547462041397184468564614406518469561157693176452240791167222732500025423894861150160780177619178111021399784079337891495798922388986313189895503266157086822898924941371897483526432789171812132471523352368857932917424440552009548932176197932338267123443299848364582163791659703315827870392125370406405019019610582470158472251100757876700007918275246228987374670605897158322569329004461468804710220809121805253257851430140755159423504973895250151861512625197163685299906154787284161292176804088049213770421521949346248529372105536100770353711506976541191981650831372459239544021229117459075223273156339935932280808814869040590484928132789426995906554983216386307936693572998177412650936548037125931723013034852157044592021214868846588070966487496773168615369062272438956243716762252209417968743572088856574868172190030745256766838730950200184116419919284904075740216105681531515988928096806177256682611708294557905508259636708016648376086550359710567367785789421660358303973817314821760264620774952246493329846396354913210108085867049554917166219813572682607391839442929928154342748107164601532977703215368269563939727126051594140170562065352571139170007996508013414711850047952528498614391463983212406138814036674311013088695402920795465829885818347599124441374623871823176340156210373910986551088316979255238336729918637186150720691791722449717117279819806588939614309848454739832172176432142348990055544104489754430572315691347197198636211484780488295504601515191360359616488624935968171740945410524014501569251813212574416376144505174168619953962416525030510214759500048772036862847287717590929179810846852824984442929680035377403851144051891371353944433934629120068906767081643788517275156739796488375590497822272653835896337864815719772835375349640609669695915703601187916654282572337822575535793522507918796850238481688078349917921820537902116733240513873940604779639128372388908722295007119023485786740226063308567508926013867389305751680032839558603119721705095252585834652012817508152930468392446751271512895381845815766217018860965792981764539077094996203921555564324264064689885964969785177295010857526258158645777667739663518584414454328574607994113226687077686007210441977942453274708061291361284994544798736609920250416508789578986601154397423028793130639417699946238000181007635468160674787351833810232010848544369204179312912400908655846312274656267641417344273677870556663078580135806893264341916658568288061155513194628459424086661719593127378814293768731489407556390380830958945106967353132316585422279873440414577279573879141108578486003784192717678739102787178496290108004474466904743957113669516576701930397788823728189936708514213019112578103359876455531229281310593956100017291048479671332776106717891244346597934717753253907590994196587476592344397727797805855325797707463182905649779721292808449811153700591924611579658892860559696186323625263963887892076693139166236813188497537319065969173474689969775070400909820954684842278932681917227757255710601952774489011453899033694847393500962453095839082549847582651022671446967646912309961587695605357672399625176476536404605342782878568544961786089553464121391564728601600068375867968687190899639271992512328673269523734076146996462402571590858869559454991083019306589009173935441207546651067941295677691579212515158413163570717033184415602678929123553025476274346408528412121849508912053731868239326999140550783297002307503804013350895549772367838450164407103093072613234865758920064489173113240898073947796580919253880361241541215651186693429573001081816188735086232989980410957166593205980327979208793593735811200316940767470647767717348022350905136619952021899535420249446008840814731217362192845220594174614539121249732255574686251644845689788406234393860061603188167674916495272869033554803971780646847353792745372215932031238359651523419826112583299650961039662603891530301143380768535351888727986041985383320126534796503274708672734176458038543690944228210644344494486913072902528189166828759872344655845617098981294149267685166031200289443675181587409712829328841489495162480891023174239682249134712154593770369564365519532035516917322734803724690451922956556825261977860592122641263551919398520068597743852535895985279822332606362858480701272076796468447447879321781425982134298764119778920565355190414375801384806940499009868265985931205685494934480331333451020444705879256004034041805541234585064494230881561226647715162515763015050048735093623737719707092228940186888397481486298265433902198844052783432940162464189725713605963102045094333081174253249469488971327304385364591440677007542347598486920272711367022568787105027006857229607352862875137238829603399410200254994267418877047782655071352365280646318426071513696170125900570289550405301512340596319634881032748885108905166890854199792533672268631501045927732201480778012874887984696061538058329887322217376466126173735278927835619668611800746900235831333983816337397730361765930504726226964654149230654215048551146552326793402022972525455012695780650191916844785941617774356210800217025455446684834108433702926717195040466590517523507013619519450592392345092493397407997504353396055543359438459035944362173304078696398723986176603799150500757659864544176152561225924583107302142888027988027725190683558797809075839346027158509572216514816316665293500229591163513128569887564032352205241608373733498698947940844463145077283069524073212386608713401041474300179692391584374061021916116960692516811248058884460096035749680811094581991525235569277348716298517159468030933146943035277366321938325377911097935215178176963865455437001189211846984710266518708694780272579303813772436211252195115423902037552696817713347035315837443182994315218536125531649983115442010945606738143271631459066665301507136504882015385702193513918223584494811900810105509548308070210435791372758578074851340598925521897735440075346241003179954314353507052259275557278965906168711573958320406679683551271608633310072437201180662940725451486025657416603001674128413701127720403628763234801831398204052481783303043753198978771376996795657423984212816496292547345608712090691196327237924520009879769787658581827430115697158377401167729474705680991971978377524258214446635464988019558869564921676233651840969743814817008905811315736444891822939752564198047507779911897002192922169760868308706979156144242098686957717995312999382075341446100475524514377332285758660928591829595508355398196212618253224161925181275235112173801483178075223280192529694732632378344410567805973209301345857130986962310035775215688027959773870680944279906378013550805157378003007841429297688072777709888423759766758893171769191549578589960877938171359180199401358139061114247562532071234101002405509366037571579362532965536985449742723114224140939951806721345054101278366672079151279894534736061163386089262451439654730278775880396546704887007332669702854082257151496424966570420267532210880754356128275608145762209783951949014616602837233349415850632909205204443424036010667099109709590004360181655284823151032390982875972001578384823076943703818292778836970233043180696759756364434309222578812673665495093384469282031721583802841132164038332158880249023226734203729643338107482703166307770583621919451188580411152111471299843949172986967753522557596303535638547121550778250899900895376541734015473147820532290758197877445677836484991861606206003442782750511964971534226203045359991406983152258437362114698395178122913332032330844310439910385989238546023073389656345288696252585196304543436333673454505600423298857866140472355629715933194804994855892870045138942401949959178788969059558522872686286974192280384651682950706539468298117692068046390582847958794381023188395830700240596163706239566936153101686584825407934403989550757638729933588177434374269977401375545809401136833991412161424875660648216728290073412676763795053645321840183252520798106011727131008506876029790267831052413993530068695604361309711107366746847951772172054146654473241541387490913798962868482285622350014909792142741299160939212735698539897971745946545361030252964507506255713906783295338293301180676653467758967001616322815069148324133402772044725067560107200552371805583599182679842898334315624177356786259464106732340930895537360698231639912243240931012462194012581077317898101091108789293042435405101869979150859061900482512139288503699376113815966637546027131497395495941457663646444501638665205218808753134060116120530730175175910790648959202090824183401262076224069617720086337464984980958827180225818429369413578926326105773896759165471858286360086579997661139989868669916361408936776747268496663788229426071662428850749683368633326447908645368873509861566113157171718536992255158902204636187687212620857552895314063555226660332088263708816683677433913507731724537192704624596588259089268332389368794971344200556272909177580516022654179403385729020800779162057321664301571117241562697200272049427095760972122727201230139500846355401010137122547008551579404986694679076157078034219296883211029957458022852428886847034489830089378557042410699755853941004207921955188275226154559897111353238925708163732138731246790596010902341206928699061383152731609967678408765197518214783871024046765885550835740537924938242785030809498514359369983009109816751983674639721172215969192658390620451240793677920847379883473058942496208429285244772464138801944505239876189310789041674333016293822611955852874841705188518943919753477674965825345336310959636251755781159047573267814700798096193366288661171853533507748583838287325349125296719111762410185466287711790782035426272955344369271717710138050513820919640942477643955346908618141197225498156231346370630173691103066108585500999237000147208859525928765902360425728995296895271933980023924620061422607670915953925800078912054533905426543993681357636966767598496260216662554258915159452956820178101546156934119372623299331299033787949093529376940844177218562028477737047757395027033204604774016699503198272129762127936319852895104956167408343515783431048862936423032684168580761615693381716583679631374090912175265794335339201603417070656368495145849519862221396203020234339587001069256468555389112227800156477131750524991719984917770939939806876420719983089462819927823160860015512177912380983330818471360829117524774218036713207551999738244280387508276863813729688659366212853924913469218703726370390213197452508046288831469247277153884161325415241542510606352806939577853630357273646467248118554527516785529822997253356449741358201482997275995702878400978914308640750702258837812071246047916172046534106006264928766619215073666130099579572068335597996857457618829482258417224218851245880338515355042041495300845676242439875560501875817601726658867776376333738941724455806811029999503134505196907588806235559699642997773878778393065178072775082737500437271061557181447515684566886864757139461541427673773679860305360084532546424737338442320062745456977179555788580981852178547135507102748877566220799455108812224693764717866161326932735143714925656875873084889853242825204809306069663690074037748971041219445226681550788661814447498195503769613652450421226340340185588749432817830123502706611752920682617912616417858413050136301240475555947981054358315183287399953256495352412982717578539139249676194575405136162167420008260083478129322730995252946700055272549625873089894555704128196592617389303725590630200287386919306853403450631651961394466140171443681239311233971178243083535511009521137687028190984564228929305968748870646707649634214673195784118915715328959424055732095942761791588923104289276201094761896768332717890167946558216429168485586307335357631543114900245507566753500400717778722233656732219994930476343491990885748548691516217043832796793628246146780921251155173052496806898860738416527216206886006142834021261608631193473428348494142744951242563381538920028280092301906864214700198389765500290854280518482737052512908829392534851224442392943286584410880826297551241115569470107464351143904515954081577614596285708382059422847624236511744518783752986730320218583642010331852726853525300035185218023549330134900930307086964073623556236629325920607615807911037556758717946477598847538582019462888420780819729615214504194362679531861186525397652115308230886940131857396763791972665434565391380216190776337499740077367893068150917523747786808379707650722951863267931919557321336734638200514041515874830246161883332899838850297461977464001203199029466378068539212250300829724748078560952746032567033526681118980160444212314807355021169909904875723116807790675273880588907017516721229588669160888128602920775101075648647185021127263862095531401459731734371974038527417585433314736769886851972218432507606931851523657570567192234085956625847451328920106643587476873434936903473605943431451860202064758005900393580752436176768309371163855693824696602830616945845246375321390826826599200219322365329004429208824752704191499081862864640551623330306749945538297294691397265769161889664800747000157053531587108098336532279947975982644936310929289276370055618085329192887279206138863202397142909121338196708203927633572584393936975831332873433964473494972528720139815229664373824998925395491428620092455056813291998948421208698931785656721164701492095655917386048023611505862700852623094658315806867134873085114146255576646357967499165534900227444605584532907728966832971413376752569505049478099114820944373343950950940079205099301744071657730459291811081988292407256098347697783082563913790368795805212859120296265521475540670907488777138004267826637760675089294308780642347630390910351148476386903215450112657806138052425119147408210637884586267950430732104042172597739627353992243364969032654826275311530789924260010012861493506045983179372140873261128159554391185228841636955033309680831479794975889078155730653356312627732168777818548895742069848020744275138600179350632072121408803105212043755976817266336396872375094634811232842394612489434782130127597597443636373695339596294866309878035029588051283372555801093018721202963680729758742870116652164973396771731992638477279752775791350079998798139600219443751718410852928570348904280018596398978784685839251351292826058578993197642688831918567156473234691483020290441325492861729912403776321755944439829572526572486286911672996343072608063108496701693132866937651412960471953613787167947972363572481337671753393803914369288917036973113271963145613185934906112944040585579784630340504156369424960977864747111161537715441845018582017482015201302628589784698228360501629855753689244526414678831110396152927184409540742415621434075503093483806501848418242010145357023619788784747678190743627294690669083946503123940740688300936214139536182936219570804161905620729559173658234588485597644815351048453188115829731530666599183531975309127375645872428027984228699193847174483907486603621191604452013029847075727433789779772116534029534482694588917806711089570915106595569358584674362175780452645860842302498433015464002614132443124797868296787609534174563168844015621328875392098816129803003379004251499290218833717291310046167679415429652494053474786684121386418696903703284885135025471920133890553664093246675862542742986188444617479050665868639626325105760755042118162497116079522693693274720705908997889460357877015688732758312646586461283023963147826256020221181914415069973934176126119625010590312331256598201597538821623932590668963578379922802897190258110872608584932557461657283793968847415810845927996732388991164368057023820342321440328125928345822257573208485935016953943421343883320909323211919621190168292957805716688964062627507689010141942061554165998867883162541288516201814269283324192834540719934102746872891859344230533550488056044108253129541160591366639567109872896306158072423735709800605072607355265931914794775718141979775572763771528566730678657245234878700338343409887202725897174826506990264472211061545024426355048094061224080961212681049701511842864111021173651531988272096149775822912381363641182795559873305862470975713591150558658707745229126340716022740292522814867356422923955749628250863113808343328812399174405116995862224352961566427878505181309833013511833064469633459024996823701292769092916137872210690686310070881425698122781960109365596789426977025650037746058720897821636479532164685303965016725569606377011557329041786540494610086405201664975243409408610763015161002207154912960536776631208303437407792201657011855880757206919042192580333291705279712595426201095447319792418674948393992510203939365602961476502876649572012893806303358692731404164427489842025386887279863289890695771138962427360320004804842543381794556479952314550307709165244919306385546848779039409529376717656859331178135695530497410528512844735067996229745328165227022795069272390081080347665323359520776103814032223337340441622284837606268021140106609839892860777915682372025041436393744121563362833343117716204512630718763610510817913075530750474820510516514522692461597008568499038380795242185752052220452650396495845379800554596399605520185157461281434663844055919702594299703799810899914803658804829796100626299740287625132349202214145230740211645419758008962971833190361825426948477719150273476080348501612469003882564860941844453776120667781741459715146191614529835649521080746945554050892605758733707719007280754437830522197713054268925746993607325794218877799776060574722156569642069443581008818115677112905184372244819782156731312991573263123062581446636577242997904204130900538964538714896938940210508253398824454570499210316598612513132808041070066469136906654818197218549472523957969124516495690382757999468223635350096826406838439078576526115771275458464932340506717990300592506177767189829619549175759883742027173666943914106599513918400956740986980262851549519479696422600589974141566411336912433372971239296996748214752078043501315051477569475767037005062105298794428154272263577728203117547102086577324245778099257487818822004990319692066328346040525835167110645966071042660540390861219036606163614585470943432817461820701648312278602758417986744402679087163788661687941894012869534018756928835353687018174527816105285320227823514191470592801085348694227022846025618344516675441166668580578369006419382587715806967749108317607005413640895613891237958517537329334022753741847735532856582700945274633092904886749752022411692240239062147079465000954762057273367873723026676088350824036236785939925278362214336688163536265100042672002096942207333633372030386282277714183791266541634894777352629630222973599314142996006151439472163480685597274282897579025605799266091260117998978822306284535099473987876046876632187723689355005594017894160153006445724773238021987189827075462079198610727699364120487230170620980435953017185991779047578126277514538761812773720707819319934723404795189967527443533903709126853884243787765072594926120414716410706085408205791419675931991219063030526563442146854847738675072840918430807913372969681902457478047863803228447343975401621808229643993809132450351762020166435294121728103855636542744558397793269435877577550672516110354109540906477032724313022707383092272941628360016822247620202809235882907915127553382553484617933551958497020225974570286257288567485081475581746944666477828495155973587183175750941273039152116721126772217850052859913216156182469868058605334887281981023397282055283547457940931109031905005269593982534174467255768891234503694350678386087414896095183677939611167027979862662790408686280720766309230603488521069684863242215104375222447088578497007695355610778160226783599884324745847583375519424751103802752397803441279589559876425454945876948674697970575767670842290130629807076605985271118930342339679907591986963810821806910513558384763962097617708618648306414357376745977949484870192876414756137991321394300819188588149519792793506022937141191868855427032225873707126909266250576456106644865740302789811444679830852306772728546129589447770029692529173490218488728829784216207418887163215810701530147425306363071913977834893966098104374630601594873154332334161894553560947542257624522511483583833290718225301965765772781633985384265604032669069393907357856158585207611532036786187888580397129250135127629589902316990838731253605325685857636876186153220375605637267118634970262379750180414965040747676565979692298475826552029072849617745525263162534495900309732624780214972928402840025464400914592351274364422970112271754089139391184324941665095595765225568793214075009717985805989827706946011155466275673293099392566994568040650735351835650629169826337897940238898054067517268728391262221746869146651269464481633448052752204601359367172776660805588202505378223563047768223449454868522877445337915761729918985560370601018278533156435410031465074180591023591746824627636341273555115591010349973408750510429425493117462084010146773746404494003234855433462907172622303683935129262454516092827778027425263729769339220628917243147520452073666317434269396999630229220828294103355025607937016067623425946672982340240026291617612327581404494659214710452521998502751421067070402175365952537991568837531671840053933551997129873467245620550490982096695480494712213889512983758084326368406556895025784847658335924355618925846989606889590643764660258496304646024830137373547683401121198521121479155254785324781806056808721731132341402266884858335724995799152423701004768214896912437751627052326262633472779969880450663278910364335272119751182602440030618157667815148209511168533225096519835978224407756778299458487889579455017983900456134043040536922241471247161769717203628153136933212057696476937650677540403499783400115798627774301347611405220780243354018473971010745652159662555909262369413921494990831014516351502052075616690356140617297501149264919317060039883903643281245369771329148907630049087808279036013563485869884195177620609782457789116285591038291441013292976448981789751903096086395973708189367867546615115480379221141927978742854795322183650072005313069169740328343904970984475928973198327375973674301012765738966624874475138788303910343737097721843734163120162612812671416785309459827165666560154121128580930100340302698502587993771237662134653886246790694612491651676904005248249918032031522045175136789329917562816654291297856540609853788506257188490408862515542352148607494645465335848147339964192123982380231277085118972447367851873368364750271324569984898369331482920848588824217740766698085744076738507344627082636170326037393485194032161851833700791466448455854155282173574171045863692343328376120191523749058177306851238813201611091847554073506038420588197324595178845285221784688354006497597014610708752989512468212603986733862632102525333261262232330256421207295111873828713102341841391314868358248090474154620495195551451225999337715582804681421035029544761228847995726006464442726247252461310631354096829576364185284485095352874942632995239398074606442614817958041590780730295990986337487988843887417547125015910798832746107717219067941259718144031244199962658125876478159406546275523184676815540478341074884034419807202466964283782786591315405062787356703146018643588281981535829622099240896038865419676118706044643756705815693354336371167122370828492097545187189337794381564263585016715839690174781701725480890455601590342718057300607116813651895061508702538619233392777565372187507709906593500444150064334127757172838368673929019937054276219803414862040195794083316131306747226619069324030317440342106556197464414784772732475329275208597417666567551995812526389664780974520639599136073126507054539194950806732421186021610717251635026306555312925227587880495482502090523587800508186212591314214839519162809764519986919205179798321235878596006253641030092288295858827758998758525073320374027483313948258535254734270420489825815875262436708517695583844234521573259598973131086055874549558291022651850141969705217923988434928500460547669098523718966445053886284681968191796058378460948529373593026741598498744504871638980385605995301806874282068421047988992824981512394328023663171243836610199574806978465136385073356432632487005063069518472246720960817334345881943552012912526050970304249974729556854059944952592388137610369984240006786380307763162298160736273342923042383368621123209581724697044116814081190064757571699642714887399589214062831330403107033008667919521155529723602404675448773522587944906532396954470896095144272388757429968317281201673089359935912254241821620331922405175297210610461112875625362203446696328623235936758374387426614920238762809039354651303458527183387527401772642027114005691748336288978215090039809389329190264367694566266571049013947245620981001015907024305278770440195629960941632454027282882059841738380897247495631693864596951702317768723318772415088085472927376407631924092850578434007822819046926104032874682218186971629134991748986403813142865016689092164989255374991392712452032393340460400044181156763297471249975174263652107047015181015278551232773819843547905108294947351076404438521962249326196827049122905769042809446230904090873898760774184816469934866349497491527326043148366721878670365023021018664017831041610990546865152617423568133161896656412210014314092942024025278592233361006610004191304041413482635899987654105819313466671012795450414620906127781158478789285039366704560174229617810858071834757315525921438762062233763251424808368395701445910466194372985105035859153700017350695331948999756222605473637764970746169510812903598028353104085096599461722192535248248519005704874360210824451056603624316782732222099771868177860900292244417606706054489428656072968309366822535785914842797957468918007835097046586455150471818968000833185705651375255708825176262505900315072731045658489767079729490143018937106541369838480303351519402474089808637887443853859871368615213771657329794736628245682313533032796473031601774201699970224490660461598936915420515004789112124102391069032885209616633949398890750663227481607942610433923931625372355229761704893829668509003180560617998015739563949887388804247677438850354465757711944115903715987475107642596800078799151826693934249834580375436595588464229354204068614292420324626503122278013470439187205446167157727378739521313273013141080244981672576439016153686999885356943015682003686716179405831838276458884332041813868933520283612826424864483923575138053624731970146223269358001936999396238654698681998383535011940454120199098777540879698151502295283400931417204359799373284306610587726109378644125360883165290864532178485366208458903862192537437387373971775805905478754195263167151551997552479269609754371732566169229349456701443965320773935673078782808105225010901962336812153391294747093237924260387584148459113243036651599257760023072236433153983672094319709850640638752952890107149126853992232401483357194077522299945869987665201885383505098218288426524464850610472582844477391338154582847111514223810363543083352887221261608239390350741578630396254826379339825762309688959602507103052038282933687582514697642873946692060608871794607851570453054492457853993229741546744867178511308364124940902630513947811936899935745514414744909611919614426887906290554882657003063955647356138087749226334351483532202573143727781965474031315711932183653126873559786771500860662959057661878022474523326852862062088258739216831292054470103764843565798724586788873473001787152243393165554776604449838571366251463647610460405977821206422447420240262128064557702795825091390272681964084393569944834182650012495999239234063519987813500822846060049869901656999253239235743421003029286359433733335275118320407773186305877171591301525542790764890141387587693437784418742736405709323419504871187984671483331764796985892155040426531521883662653283655650393671932936571407337193157430519193139016965933903804212684261385126548300287525043325070661025977485309194614617123461662531926576782092595700304074347499756178992645630374292717107849906388376443300290641310885639536520200031645217262042393473890794554189937814029617764268633109331997727715869370886108725496688514823901724572621094749188615503548167651504761437058587303950456799161347447555424601578256948665276516712390498992599244620470492465579120050663209107673773092794062629753528737356264637327937318024499889488580298503313609436506237037455516538479616865191271790173541980568863423373661495684153460541328718543262512978312003515958936974724652205326615655379866523033109604373709140952504339691894791795704440275531246581853169036331041968428436404308595577803275695857249459188716257397224696083399916101109414861457673372962809340053269791723398377092203399584346238380292933433958993378648611754220004841957857214271157158989901877129778283615674617742240467626992994078087960630810984093368638952150334553939048517685824443527669592079418134558903800359858110188781569084462645303546589139374260443799107426872744530710875248735182366209129475197802651380852205019108975955630846764909130972531904690674561789504055424150656268027076925714149555320380388036251437249988295296838126661579469512752576721211458634646107440660910134730894776092507721298880267763178275300460838371101727687221532923838861178196053050208676810269675423006865987826000255773756968231479330894532169631819268456592004199309531523825308517758456892944796313361492972712680726896880416133973424128741156940695662228101188588769699961488552579660211773742472988385549114649639152012843477871497853971114531563053424626181327009039946525818402577541256903881221052109251265419528133004530813043544374340079174822529129428440575515715697311698460309785571266113441292273526513518416605357314728241445112757180683511593725578663146482915300369965250506837818847345691495704590174305172804540027943959573181941958370595670667817881577979200652515802337572375571661350021726657047153945287954460857189904391325807295571612228658714751046204267354847902969753565109544466697650918381700946678585178147688834451456951087112647136988144113894458390451892634026090993466902121232632999315718288410241390279761904504735645862724962565238726882163208432434929693150644632953906142416681307209451861572249284198965656127328269152774169246738623490319896564034553102114145201671469891083722536172998725390285312740041734118737194343587204664930806085498805026582771172844932611367921040785693331336438881660361093099282202386839672039891400600562886734780503737151733771874738040522433506704940606592438803362957641482833556175628496942748623945458795994430539555130132294713426265918203946164046913268771636968182062181562885948648768122096860560995113960851393450877944026082650872686036362677786503368328699571779079846712338762983393637893235751662240932353460863483605655996777813863720685093357316931325149764713001923627047373436744342167583621853984286641445909836229359339258225953252630928337092357966190373172824445521252732652933815909109906204091753097635722029691187247540790494935093456928456772728601649561246675052584599503738806360484569054594494237214552462006501158013524431999453624299132645573493716692775138019650538755106786632294246237383205591865217744957095291122810303622501430160858669097898271135483542397226967361030677554690523376114038533782593892827945218967738283258393952755511986043862836859456812224712289775955102439479655535600852746776378911394066400364363741756318540546194113055689174382980700164240905458923530776003888689808683521778164168274821093897191806702100015303052665320019933113820091843193768988432312221221272172697135545169714815471334928301938940850928371399272668905451085213161589367312233817832342284064508388190447526680991613804973169771115947034698351655638074514793503636701778582348715910528616041925288678244613447310256734279909510720520845865880213493492185591597058421852570782719708133857841658913168192236836303636873208017914538833544208153685891901376958355355189054949160256201209922394736077830287928948326749956108540988332406808160007624801137494912692548162100159210036096576835504638440112454038253374654037606400718059556794395794973619389107282912448922839134604216079557601393169364567597782252063147576579175950395054028094989348246383145396407148574925083695092012449159682153819406024620213886241273656488814592735517468988932042190149788970762436772214576780939024809229541238845486814583805390990127066776609704791086993268668136443237377569430959305908741103794098600336436623830889918645486586414756265079047551254260109406891075321725874872046557080481072915941009980969317022473840336295416232850649245410475694189361563873608689654550284357657103359573029396356410407157192261552846439918760106101541079044080395906240150681458019494402252787199771761377779192571952104024153667938542595049738368626949294621689297807594600371971455005280929990336772621991677024384632680403414686178937290156273154245344260147857896689199087120584903369526159490943362717748145189999633952036962493651690038817744238115603079178005383132300758626809987843285639610598304513550194374688028693793596075816006364700205995129025077337340902319588751330981458264505632666996119734425632328295499118252320617447213607543617027856534844958397424419293509954528896418132088125009472562163333673068999589693743617276964759578391250363283273163502885095306956733174544408694145473132388880161121743253110156691151834116674725585503367849892429160303789745930055992219808537888823630975199854201667378019134596114213152765016556512438913136806954966881921579655827733992918392648790199750877372544850003998066024778911181041132876904908383992103279693558074789017469860623040026292973718701166099839920819959443343126014808978897923970631423574952209388821519305907156053235852808058816806126893768263003079299754051759506207591144548179105259760970912306985696992931507763621518742510107884527498264602717640439292628831492455198233886155266266863926896130444794164285141473084626823936109883741914583077192745097780087348031087285969751571392568190315140629421359357418314728994421977171348663667844771314101819026096991096739432355021947884343553649409339312668217870368807030078909677236152789554822350505128165007929626513376128533504036135938185475691115966526280234910035610269340308757955450536514675255875493177141939339055275326735608543019112121895185835823266596790765265429757063304746199617969912219232001740285282513262502479383521057081469506834958493977286524160668857878349313873608843359800539582871151928245511330425112312619302335613030733221377268390418125641415748556047527682015388492404464768226542235910456906468738981985735391793949509122229045968903780417892451726797405358398265195001027910669273154797361185594837903071363449354118230403966664260662254357167401953666887625248695987722928490980134284897690104118194116704493342261853076777435593880955560496797929834355945781734468768619928491954424400746748566842095241083536285114786100782771062942949237309754384785238160439191803083253650748772208147590036000683754551063964067301033663111894855248452600712669586528468374760667982951216358566952608589722962048506592428513044253355873612130526865411929047512738006025953651911193727859451169695949607198687718194859265299483184095562156368834618190168216340358877762627565327629335375816349687735959951286175404839614819641789675796994334198680868253304266937766759188983109642443392569088103363293494186071517463264884356258240912424282260760781278925109081435909395964283363091918995288773574615498007453977099913470092816067298016473766278715466974071408890574287852520066111675456731532884865321983380674346978886596226276321316639883995124258096324597662725476181355575485831048788479238956866220293093862909946136051400776766690253692083462291217587824290737891520019682519018977057242625131897154239308236176704104753829863153908308637156341879469070517473826470906622656813902775153837560964260920062336338356057923375992460414679759135619053787310068163529541579993006373433285765909065315540777478554960257545786648676372194517339298149903765005086324003030224183667734778333778908376651326774730252152666924519686273103265416270719122386637766269033069362917462959573842768888255768379590135332611869586322093716104538916010900127685505574491624313059103139258555343290694399703707718720009466947684098263309168867500318478879488934643975918784142237180973335510533965525200544693982098638405163148753239686428491003880429020810234245097343243540414369328686739912340929572085495235333178636844568956032296822807075065257025228786131710385549668863565321572202763438731037149682681102299769480792055119854518426048175013897091985769012400455920914323917767891204100026590685826529011964659468531717929335906344401602053653834709502081714418517696688190842731082912015766402513940914254981574449833256501001181505241930095064104955811588292185746663084405296643707695748050228273052661044675044867140035845062146997393659025184804436119928675675876623711377622104736779180408904714703308347423403586515887054405638463564328728900139273839588255908189575615629186029866699145108198371408459544215141159478202249605549182329138344001192789290384068677243461328808956377127758560470921487522604546179928394063005513654899397101704315781224761047057848758045447949892604526033389215330623428847775657834434047755396504108565242835285073951879988700538642052095680227554998254198953848211596761304918417094917733206816276279136143374206547300139964432993370578410865716341900716694558550791437082689489199100407603901278504220202888207081955670025481092188677986189611888211104422438117316194179195857164991967676142293536922610936275204177501086450748958734223750157592683072507331560355037413523184249346740727717699825995227034993438926331287308177584072404685271547114098006166712164772418360209517936356004952757919176758667466423157311299240247619839952484210247082338100325376637051746849330706948048643481071263171420872406524697409401211235486701576186862327126364801519397594493046111234398324388559868582391802452039082307377121420445463255121855105823774944308685972850330967252634413420246372474540157213836804764831824472621521361918037014912861422864766326250953860658353418156342515401177871760952102938295399431630141992977100412240100218425397123425594411685214338024175925306900768244380769226658594295967582440897304889544171637572061352577773392734040922612019069110504513011388592559982303745761766809382821033738962709359783109946627460924186471162700314762314293961156641602807994904852405853640582819185592561837281762540558836906657879541399736002919003663175486786794455565446536209572938157489312991692156445794209761502942304687884145704953596528339189249041790604647101412046230529825986009425351011798182133643619304260882502904498255516338013600856195401503679998472039131670343107705170566946119584087336879354984158178929473777843679580351376470888925667603158778798575914159490051042561057955599673544825814402122439763683400420591405614685725589858382740332635884119533921251201711776891831373372593161363137010755888624559095517295948464976311481720625730596701629742969578828605166400837406708311587516312056136068125689098004866595661694142268810110417980345185139409500922707891054651229356167471768746607425700681656779802211080311285791993560832640850173563517945656928495882337884664648019577670996026492933999702428195026298681613307114464658265581498398871237723480350993355894118598562368383993944868371866712456266404685298983737233676703644546868930123784683341583262453932394658791124828612865883724812015464192165564460155787765905176639201740947625324022895904719249418895621107531889352548347028195058105955655652384387947009320110009184291871671364837276477392962309946552617450915483076913980211927208143575832785232405599840570319277134121548085604486741070670880112673450205764745150950976125444168750126321915781967699435042918649485075316775057607127857905058581380589444860855253895049406504966380952222645303313826601982155446302599400936899962287338860719442132686798331332124060416747208323179190304962488643265963773928008112969648859551178397448465271663177720737818792261787607933590897606957873486750162922601289913917285960730252790025386391430794571648506659188921659469052399049108690366346935862643974695089879633818160804971153369592739882743513397432890407482772327443338344790394854415351649464165033692322738468090016628819440532475456424688393964211915805320918139658144883865473501015883157157625282951046277827072962711389985953459159183008737126464831557662147332725224580422254878518098471246975779880635844758228103166617352482782049240141439919823073025884825088074623457206350519641050788165248486959089234685421728311822603718177328198418011089482905906943914033358324976559039705646176812059944378701609766185326296238436242153471876860305645873725957042966328466286346854775190984482997487277659746793225848210662842347923684621572049663764388441726539799752579530143972196977543294110733202227853886552776329472195263814774220292591095885747037749411454579521505816154988713230190029308893325949592124778485013305440298187538695961718300118605793300173774560636838756083935758511163740021914923674722451542010894442431033073005152587394222946360379663589144408936836099479113955244192854475552697713962175838424536676884692922689034617486176302742439775798427876767332123172328224005931092058377509932607302861752551493252270337729919567699233341033822685792300576940173843300483800291150404881313330172496517406986185595830397995609189193937321013722120802935485702963623009085457229406945947476403193982012053138109210037003087674496958673876409609463681261491311148752985761273386331613502957564699555504865699898326576494868581598419038822275295349402201381919820213150780166203663491137992877140119437782974179045210945871031227644112623530800774998176478066775978960318410199599482632347290910442811411077933887704959656171151500943799624368489969794961364336561251848034813567664496209830147865609283045502524172773120969366911202298916838040719552284026988213956795696604467115962110572317909860070090814466275682802662333456379644297138092907452177743910530227284605344987454492431078047677295229306475537810009385811426838596981057549170062955727110572244890984551588634432882538627841016252906371762892384904323551493505003880646100129606691365924530880006632044314351447028723576333079250281231074833103458416031803935852616445958756549660248111050597335200239774064270623582564225074050583496402698485648974342349320315112500597374554609362662277716245962439577121108625192529634525923816949539206311257889301372106179194288812865884310716653200121532626866841120028255121172188492649611764473199603545160005958878839398253046285120732482881475730780799223669227204157681125284356285540352130692274935284770649240252524502209077990344684204518849618565523479159764326326344056468904406663560302720554813954721084690727227513771647899150966934850880622816275428667577913455718420624330088339992175440973319503313354379110779187213971442583572633511087680823277360750608264642026929642842632591653544480910914097478663640553581106918644749492068612656288722837141714307107832402216487356787909067423178010836608539884232154432008869713988257615426597915719319909548409326051262508706633296710184977095818939054687950602672271994429925389462281862352210883581506412299545869669554296505555501762081920458476653805289552237519412715553251776590626284236404202009656238373668784501575959187763416945022414936563675324144919280110962610364728748982189609308980861929456056932375822210583406293714064711725390417473056218176002114402122151710822333939299768805223618394495541432117372679276629246970095109184248367526353833915381230398078606030025965415209280071533499480803033381925297118131679959553104965535516209646655113328240657762322505365589407673556166445689568455609793018786247344709081345370526040439207646677001416567031882627766967098813757691432320387376415823519296658255973721706801729911787237353780039237640533038049624789866449362305853083355659352897786558075156828402077136589669551346686903013293366584922564969139916706667091672077519168113157629826133746033026173730066002059711213168926115810677896667507590695075761695875602365238012416225010299698988862533515872565699208784254387508088290883090276110726152664495282725654258999472467432178391671609329615333056556276501913889018161507624291509981427724906947236915633183440641383720615637122604548147655675954936019213992576910308886548936072096199966307228529711373299422808866149917504408230729304763275811382394020546876468124500969037496635978861777195816320483329300529441247726955541170457537460271965532024940305987055390095796795801497272588407404869986330207540850792025298266337509619623502618294668443433352716013835536679697766353813904631278035305198512692723035552431572819156801055634943684766718540587435724192234623486444442884556751605659187665109581601594259581453011982566128601458984952619207396395499438195274943018933401415561226068085117930413280176774887890136030095382794913532117468848660589221523443425826101915875428499803418127945264486557140759235587264490121502903936782040153754718644297802852566483930193012310038359937363987466111066115500795256733204146021035511366606664079765715838128723820924168051120987876615221561500420510647508797631270382839577208146644942564992238024188290228156727548107033487725807870212194741805477971584304559291789208344091396457427611531686375740995635833278905047189365107727953214543965202803349857353610683566165457888726519742290748161091327041487154485503696261681262705043444511485438126988817385951288591159614925707168565660531466646162747178333675139269167355331884762653937427800226037463871202642120646284666333401158286059463523054290696086130877520430862349085848751984720772859379802148998709230175671230048628195175185682052119495330075867679805921484648302129989390130310842612330438402280957833171785226589091620436623137233362022365562835800008309854357956160655081936323705258822324952668038596618277980700753538778666218723734153694525493927913122865711001181447443019340364298993599738748671510589941288524640318422289267935944809884260515033508423727841204378446382997397043955511345428046876088056053323080419895216025855423515960178126835044596253946314802402414077014280350129260754739106948192507673018518341984132627953179750321949784972023547449042265521728341351658412145557744482300080815519641252191396465908720256009765882736930559259115563365793659212946909181012639734286400372771842925800006930714405958009925621305020267681647765145751495345471059865453090917420315819825861831001027445429718153858222025344484921234636918092822658969562961369875360424819507454143774149506386827994167507909501286360122386622360912563219605279439263362418022271723866157104494966898230283767057277707064462662607782995582485045449526121547086001555122604277019099057568259163757936163266019996396148783027567622010709765261266879244560462611479109467400068465550362880979225734732266207715251216799623465982998269038180451383880576775354780964021295821228333125864306122885076469380764364816392861188085550334627324422034013008247928239117317212047930634436562471883146591333941546875691888144129368261216165590785948456452033132055320777991527902848332462789639101691029132786431229302737247693475100245817218526792172610311129108959291022959066587545731445428376826826896460847017330288400441872980362502670378437350770267182850099203892328037302559304381074238778697717907681697818154008178383305145530860290620806774973865840674405849108042862225604407538693964251654147865772003376950113164959608726241441364072148140633969175018363204923579520844244674978356742038187375136170091988686821963198608923245560408292777904415744899457994883200163909079701048764404986838652771489608591763573749993079909796826912031206554489535729606037109038675440303670452298633259507944922601295710244299538878158730611143113622588765147076116622514832588866724367303630497906531704975849113999783052300026652899114236134143265178609571722726167562568054837801591210067410794706423670346506307102481541459610760202312596533076397740531058918004166119984231252813069645321202641826702352593019024845426572046940778034194566881501201399979055126483372864343797793863764494854080090944449633899454509035447124861057203957173663661507678716788052692866582605741856955311992448090959877170981524665112555164677304868161552112891878889731143046886741827766177077370576075905924174821657757762434318700784415993799898994514683066045816404976772723275003484678821860893978241683856744350788753538086890436929529816806699851187020869185508487564829094473695077488333220210203169557905713033292093142166978770587178683121945414913886814523084302688318144598277919988584376218837948590090133659520208188396935602190632662989399292635770451499907397704321524440076846897828126924091431720624445742128237910850841310073979546363258114283544387471828361250998382679128522842530098304441941327878003430322776109098339303222732757460208370531301351232733958843457328293055213268479039646527565125821115458332645461197432343460213676629860435850487935347620287908788874343431147391731839675246985721000668857254336651850303915352245123325627125681460214845501899890120393670059357370896463097452909327349063630248731421105961383120372260680857110120430672137939067234448703317094357013549061074327202512137629710162483914886365725251249845807852022017022312870199729278890475603549405582244499814904743271707130098996788220768934770009422805988023483904442995291508362533386819685595059162346111335986311679162552939808378054588463822675545465073860755410000557432886660328988535727797559776173872606785425863852015668992004239089360521219965181820441820392740110541119278803342606768518071263764545153438924381540905472608193437275474355121315169176409020690667618911230775810121287076223847494944897485489105139296095943826498237402752363571639975838006734465400847284345862244796048592884594629267180322104026701137031751043541924321909956411683158202473496276386451564917790200665415738609042502449415661462251882014997207375537340595989654393326102125886594352416413966080931953735149317803341456375592907862576497999607038665677268061423899158127423681107944867496749462246009234487600135578573145803889815578446058065765967691213797202497875637536884208473966011598945802519750414283211796535715314119671227126481679035219656703616896683864226899626791969881793415797619434261132684752414921709129720007617407710446163959382031215700044797225121518200418860521634378361485833084301178117761828201849450166672984086429952155117744016797544700938313838105048146928800051511634163517813932613638819435916916152471359806114813890657599784408913248684514799119064989484342143914562011554469252002785000765473138602545283765472954600887865808389652412785321277914395721815453754288472778676609116518563351307669628466585993189139815669294109756088446051288879832409212383723281878163044702294847026851824440146863250459847836671841756915945809435836971970140214088249543273109620979843008916299030827089781609782652997225083847172644827614263954934239294532320169580459205185189299957836576247104360560647871451285088364429334577927973474396271803842496275824173080105203984295860901659744944869348943470549449906625976122046568483025273576607200522309163410783011610869073015077506271825820244942660189099446170861560931671160135567629426521542940791022383069735957546097931627983468646894558725007950604039026338910755352352223308357553043563217004203368550649230394565984665208569832270715773628749684204680970921347456550590449408528806535596985122662215080870930195311459531004744134840222663921743638848183063449188870482486902175692894577662274243465421775688627945944635081173319014656921483544024118740466707925984002667873785803490802884752536889639461276808554439605473443418809531707229013715942818708730914321663381603401530296333362859408659753670561558172515110459564019875805832404039552886620228057176758815242827841198130110563149124090611104488653088730809572076943430839398230844780835367953804345351895534455006105461229332943935116987757096651483134193266085452452625876586609161257470125586871846406548583061672892808118232937242576161209072357537841741418446727377276144013302256586470009138100934953334376765260995722896682389674801830371357476828474669795447567867519842735045139024384480519311259252629192235790836796224522052545923323042799117255844413461828728623590524661545845109888557817065389443275309338305207099029881911156739519609787926619584922696436775964741428146316540569045817226902329847783235871760667167217862429895061875539815133413795826128191508270551070260428624289582662710033196129793826328608131276146134859213766089273863273664265438020521784811353752846047376351623412629050286527197655188528347410789031548195744762811697816599878796251853120946222716573426310528452689435410892875274443307749264405598798015413370707431403476364681345996931506071744253120672423163328641459541885670831846478095177147445133770371173318342616759196633782523535332300077751490465154040354202404019050799117040249514501800613789732992739763008953881697939557895377652526194008244829293562111909250827349392805789066073746836571143879568355877264213169104789239584669235796502947982593638071128756180180662676794445882437596131527238336394208133234236039645886588616631087198429921751052698515029015875191345279263997061880818065576148137323706797238607858280393267123790473562596196403704053379714763630272976884725085846501346088713285188964246180861776147018458362365594236772310481881275249545638552686873719717848997674079983384436322470979370914518799534576276127812671673367957327146721585050141549733700781832582583260177499748688217685142847711751022083752588726503755832709643111538947834029627498589661866264952960200574889968913491594426862647288662231970211614741014120603924284049559085405607342065237104895080733381997357854104071482300456017572556645780304456685155948715815178309594665282287853934613529433905532645237703432915365205854192322809273758902909761996326832381041202021258803717405834609759962010226282905976382615994394484333424215766073002404708797319336434750769212573207499512954248609124101194017841003532815620108931774528176851621635653879989497312675778740551636372341763519258965246043418351654877382164332052768070258464915829667268804240639431733083010683131987687138910465788375444747169805147132947429227700715461323412169726566882366755036566508577491621204248281331940680501870431232895321861213721191403556359220095494234653537061065656421782238482439712276973835969102238773335738386604906297664644163822991367122312450711392708965308385089474395642082996656869307496667943953858966309161695486756714448888722098704142241255993567860595562401604410725074283190071498404385276833003596688725976236391909997766487493669487671033162857901685729247426389101549286346261825577043707767778509135009569402480096666579104439958984500506108294806892880647361741040425701252698820068458970250154107478371911781933186430660790128579368736978951313949942250137851728850355104988121334103606094769365475354719696414992196859649660083318404297396593167384469754254859620732307069227759639004313295412467352043611217234727673337645961197510064617431567965138591826949373044962879980244280045721023944027400096984150290725467923440635984643852208087475677554002891400062165003445000324061801243415961574730824245741730084451792193035307481694285777869916466315751775842342544830868044131532200937801340325670415267390784828378398346873768443794758493241559106576802982165587839694062735684572721431834612877786870874802737454028526960975406160031366024830397919203403002158809408192963460451389864285266595746418262817823690013622856217101760311770463667904867668087642996715338577764722918248888163933318573228767960737275217022663953473662082377655706011665819349548403611233823082100638469882114586875286069751873023235054907943553049647143012229326019150655598050226769533107432268152247783368747632733755170987376223072049702544347521161399558729801827506416086994493096580207734874900980117050043918661326961462042722970992722537534929216255522134982992266322354793307989503769720275683322116383324754637321051028875035076711291241575694777722156337167521567535224821546665960799948278500477086974336829196986124432156250960442944992841071995323719757496240372801964820774021398243421929943939131877359385210602178352867448406258073817935214518663701210272200299483380515944469771186882199040305412017337337593833520049789345373085740000587064772035964507535939899910089118279815825530982464517654069278348843141761635988055609627051711423649300508425862562812003477221162442274981473155209955514295128672790284753946580911587688625376681376913060882601359015338979289568557699043462863828740586464024361179296124886705580719106385144704610556248161322622466266736561332056042386803675347598156358259731014506796116177965965608487566018484292923315405406554957611930573101330632813254646375941135093505791434167002475798387903019432721050765432901408052085106609114104706404115304681678167509546805286650367506468503453311355095907222821075458221149057255986579061087055042872804702660537490792425063909833905173473821521999641383176896111824799307810603841932462883980116371749522017016691383301030190857703702627665924518143835436493075738727772826953997639523949373765895089262214065138567067807623664177086765535858813435762309752038106961220976692574624513371435741822810258120751274144196904873570090597142308154233306456979079084555243186256102783032611443786225923472906913764790158721064213359201898061115398636899347055747929374751286505556130825986628870903057838498763336678674429161709886371027253157496374638230349849268068020663145497947555937859578493350966204085103076720198749241612308523400287342685659268488017177201964306479371124509530219227789846593318659506179471001364009716597876101127012269662545506636830178093327851826330841877594795684583040434659306443597877554697251486077667737824010064043288314859463839017623564375103340778263063413168503009107245636310993571714228760437109703974462545914728178586707248410577926605660141016921986184896258447104981572098470009956616787923117638663719437223054161495036081969465852097469203023951552821965010367377172817284873071804286798445894120845328865648612430720674982046535366105808641755296405028004292825873975014591480759407362871981680737860563074053557105250461154900644786388065382582619248995840941369075473710000347547525258417053695538218089046820441702615631405523360412472576712514235620007383017785190588882369069075426323168161128661899565048638374394254669670998376799069482736520897193143380277157372970066286196444967324711167193607569993432224261553327763517394118287357273391565327112907471279462103676371215510723047386495794721740602181715131611644612217796390241702035103903277863085384605841819194730319651806232264284654815228843705170878759916640952448639795422700784372818777994663930077173183658711701514026642863408898146745437194968116552527135759974264674332649080614119441410372369181119987659197240859707582382073194456971107402312914001474139172403791199873846273095841903756755781713171000468172339681264525186225923406902305756481031207719482906445126236800888889777762074021262858230606101238000109493565274720859289225745053824095504480827800026952997138776907081093851764331044734071378122109102120473531669434391240474350549286336886921164057438052181000141979372211757015514610965560726619294640540698083585566225523653743076364431808783205177342667068025139669885445865058632473724781454739805982372963543379000863862084381427341275461552259073533106890233006310552429577648032981655731631832529134220688746035364235648053741754764797412511513060111280074704751992643849953637195576876424985734640185119098024204504095422345794395963425533189023725050749237791053255735564990996345760665725768351914033214161711248315552482383496684370238730922776108705441323757686235094940553206372667879297564228356616481054707637174718422962286887107267043840479614938008148361653753596099545503029473342354159705987969557454767696582352592054176721187132951486500822563810345462157514605729910485321127097491184439751595051370231989409065419798195925675360197117231605041029840695456611255187128833285196307932759206416618887966711562376603520435707219855556267963870114391517806355715138408912157659347906866288681479594701477035892498516152315229822429880425372805573751560488718861858838843733914735515933903814398883029285691186558608184193646048943141539503539333542650760148631906820979440678253986539844271692051713883733606498879902072696117818956971157655723826455350300381667460748152003121055161668169919671557821012096210833645112331343053791425626382531384202492297900368873935201141618104107201671745422607968465709905971448541885063230556860794973673973303302951916152118408170179611120356093711735453870897546490951188689720410347323037865470621485871027505942729324737262679954486635846962630431008194394195098192288909605434017194199036103317278806284489927154974776069097736476156303500981894125270158582746818392018414717972577584281631161576858852970401870270322435974636413160401295157576017136918818181766566562074497374666521059229319966867563258317526174414096479619454963818080936513851636671211487436168427458501747168814500835251572454502032024189284775038043636682552469423966781962359356483617478847327144867168985740034359937531656318686892082025541117153220010593695359475569817548397498439406693845091905308063127864410960480966772946744101040735948764346299132186581451811307007279786655344227387328342945762655088975963907309561928906081265644648324333234758634924016032519738136133885755002212759776054830617474613418552624969179792228007973897435527434533939174572678811504882620089172704570421015710604467926587118668349361805526216153597512531135857461877055293588687636832699048059399683834910130760732243585982622713983118190139468091162116405694381994345732367202697877932264890684227429183416866914775726862078015622424828871064330087329546579131610058646451216398359815036149847610238342467831125381509843811905360984766778886045554049739592408757890049611252969028122975127088251945083439153230051114957819867327858570256925115571992665182298929898582640056192032503352459276933518939085734956893860499609211560876575284893332569837508998184645032699497943712936635698560979399394106269615367743651137561216287298261728183815546664241689436132508746043992032147222673802529444011426062585716884176089738003769007033826402893757126167413473542182117188029193108217492308855888212867112206129126655071409056715673820283420842671427203907490641401959053908337447105382622498538944367431500026954948211887836922193095644645657410784457660617357101405108876296755329917001009268338730716093400036757694869996899446957668773689139180181197351392124835239678375000911253627142057857786044163448750434746806077141095604540616424504931048146762552917970611372561711074369129039003553019196478202947573114044435324627867975519752961037765756925807296785361703339272763345376526065874565724804586392740461283482129509936507274032518257580181749943209586527356438751640489093482839692220725905023558338496396385436369689821186184546594685429879637391297074505945939941693611492886951531070268595352580938830552263287231179767348217753473540998272581702929715799681135832865365263092493868795418693132990748145580772821727396929557948144272381893585931839448355237320564863607119798086297875064014257077324406678740551711448602263453747784430001836802467122325656681905863836668047801564451068737958994687664402173555648924635427971402411591893888246526041959737929559868665952862404654189692127761662112370112959236308750579670434542509017669444050812311358318831810866748841344801642261174623565205101939849230907517075375265306539946101904122056802619187259946843084224596512520279682296301327554529261754099769314100304784763026249117963018605643373186322292527534700361580841202130464075603120605042786344592592209813221569948540507428227731875935044578887344318713956982164603670623898412661983047520269413607579062083992550687353500780803306676407921147346191779300210113425490504965508327497431657804963981568308611370313867312962973512360143959919537753965910341958879022694458611899802365890368153965552625373873788618704032719821309251587057535105586382077061096309017499315975056666302845661141668659686653210874571306588483624758409954073814784981351941940601114198003215130256199348429106645793900266345483203383271731198384084099114267397137734716434056574878481262042628777239052679687463051794506753702655265446600012138219123588744320724563303515438892966570173386435273769888428937389639789317317385928496891507937514884626980078023473826793497227317866386845409397126705848677623980278304419038403842015629802257011130117790041972575503351088760408988404715954123357173762234926740671278554598674795301658972693668838568261189302558671994651315512117483632351110617724730880355415485693789486704753062948452638115676382108554082572705794064385857285823758217590344870647269438331234286939885479083035235001603448693613183935445243847009986392784563750397474114221676921243375197220905666591553338914479859315616438491426502812015399575783825202094336980770231680064711889665464325898947151361784790586337249318535440939958618220457421430777540330017136618431815287083924670663474748359078074125086936760139247865007332816684858334512173085211694112601026413642211456444885126312157721512326623051023364227811450795502884538986379161747887935244531329744077747259585892950478115487579238438159177393917012055629532894341874510880109737819483880379344912945654854501628849532486427202338649149708392151141801736951323735737831620787766360469532136614803690873082589688998156081508172230442301485806734043955022872110226740553903755266385165896930131124934154921175411460379072835652066913946568928876543974320733789991334382247158549831519854026682846869177757308587408773750171676873915940042701340592501414771940421617888214739928557019967282916272361697775876384977969911286621729862675766659296009294716668782651277990843500876282283629935656110875690819732882099638255887505632082444786637034911316335509311847271674793858544807075199207177472624992157905994099279879456820704748684908465838164547191035596417895522031927844101418526899322594847130519370401917047351853387795997412563154815658697199581360521405881685554034909242978411507606576261093757621834253423591352702500430520851969120152681882513466275764176360009051007886417111130600264265836834283216089557935757149270371978364943309438094291384986060985981469626965391835480274955393234349208369788667362790951429749408706086207074168130807950691150715408905907497395892370038273101834457576009698234912400549080560945114951316800547430049776599460462475996776292643420466120424993250052771296745455010481521134938327360444308990468208717257313122245754709299826676203682542178850727558374515391920246160553094463156833606640570882416448426848236653309027128071095237742366023859887733236070476521381542637015140699938988426569865149565342095388891949674339367099398733110459805036143043938646445318039328984864433944491644492302691231297853415244392794395520962133798615453580817634708186580731994368409648034530366100598380648148834274787120127814927566630867284407571451275912964804985030306887899546347282803296110908810483835139326104933342633979911797947529044388228870911130276878129708086151447027087816477448418586283925144637684838144294307859799315983044749549773756815294233155365276976225068118603063047231243887227231098947674989533255923213849445352034775996851038650236250257391956062724150911016495849038872615378076058899442172801424127261237119568859961584103587274374215162088117140832484161503363655080580140282914491579809514505080399191839704444460750524413034015350550934002611437168306764270733231742706551992909271056870931959431459096572734279385242881823581350029772349908287659547411268322311413507895112190319411738785504843172499917457810644148339602164144213734498516852409496369586345930452916128530411467798294564531238926406945243912255937468546209352263964897855220288330802187786950731803160675353946595541347943195707903922362468526351164866974441278719789205428085668311395499925420200578227065644200032331618938260128487009838861501052735148940619945313649212160994114272881807753170123227691205185416266399554453930597897995880224374654346684133105633208581961965623011258947497970546769387840271281260328696972686468481602271609197637640778271896489397257570495475412823783008211142798703510260972403183196603136667739414236025607288478552074754682415119313294354803247802822468482644800942632447465402769224352711475959394753907983738729393607750833614110837780523085527099888539106926807250212671302203860012192475789885708678811905453756667836457058212451960639088004413195849371038629009539802224936265385122231580778722343074615498390992997165210043020817782111024419990122536749923650045071802525680951425599533875085816817399834233601281900436496623381813536213567334418426052065323454500110793218588060252922029357884864913736014741232683586003180451921960625016647574313586785714115873797746483573003972538953089743677651230517958856745474305857642447253308901402023294151420265236150685363647560637628495318498502890957678590494310874352024722414919918868895136340799958686454901913380420830720972356104709540876054660706394772500202364194874165524197815119408897249914668523723156022336602777320823002692506199635055971775537862977740880512771904987080141428042488603727964958962979425515648762491618993480150859456853076046881273456373336761202192465730846862931784535051177623243418554760989679899224170166887780383413736835279547917715354782025460868355735237304168772119395517357442953073988583310983015422156254794370383193530722191905841129507834403105737155214238706500054070144816088681482913459703866481509192531829431700674598138749153849801830912218985575401690086185737791064719407165699188295554407230990752566332675426051443477051628721897113973417185450615295270608680136192798778273020954076305911828742549134863646678305025648674579243036407486713313829259101910773620532862613050697067328941449486090805393504226541916372307101359733074715208349642278671677692591566380257703292021694009983373031580167602186133321434618937178094618549950984230668521332608315939070162833901325191889131015150009402245998012109365613078212362633524029399680825119660073248404727820274965850115230444452672422122102739034646155296274933255766582278058376272891704316674582131403100898505781057910219361985692792916919313146107366646198884696915204654508128365120730695937709999822556431252932511640940034153350157386515358957436851892441490468155710135158932235044140276283115378779624525298673132326034940700638610357355356743170444331324323430435936041452884891617973191106203313180783618896670055232612421870274850639912982354558784787609535016319622440174008226479694304699767860314852609725056556230563391840730075479587750359547558621605569066530667964068371487694017701752754573957662132718110540841607525047007288939328752568450432228631151153013663898407146780474458328153666749118037447813025161514836573072589031792120720359972784116162706635460909657789081054829697563346888364946442256676814040446034725776441468600681164053780137309599698039425170078941184837562670914988391107417861784279436583513719726008998418236020742182637321191350633992736545917380395580747775494456910048572078572489302218210577579138010292893741323198279118102632830719183247396322146810145753293207160440574058744055388958627149266470270146467027561192487005274997272124025017880254792562838680579058632211129543326394300422455200947848727017309586874792777563087388292634602120515877504395583270511667418619401050919736513140558729651910973681439298170272300641672760557919204580881583606073025941000051906115047478678565573584228093525432375851102210745756503508680095611153742201987524403629765039529085377503985571334674751840331042100568785758004837808675414668216409242123948990221090808818494237549948162956753970903235170156754031684358899077207052528939815254762728829640625572488424961516810956801143802426403770001333450756351896132805860532401885554471379653413332929660778632736983834523818362420740308419029624211302433984443644913688998052235753253268510570577060341864937354725901485702537884019048922971016221066495146127531741844395998206992960157097889129707618183355884478473452324518417065836243903248519131648243033586176367549397417174216014180467491143521041770597051107297446124422978672365934607974491496657589914313957722287170406071818462941986709465257025131348629221678217071293017908451360447599581576378596098403432901990898448078559830201686258404850540806185009372077152277783860367052687518635984006651930439434659890043106912275252444154426331207144009688995839467954442893600949877058563771519140509444557622538502562610729868358346952802463213492209831610021052117166810082069042183527034902236351024543573014301255020104047699064520677060027945172701945308694802486633095962322435817089499002641899474319237348361584175300095220035141092347145406166308151919501454939393759958708046538071618315958109391691505469584891085275801426294029580464997729889315243989764662624991351156005889511854520110058919562471657246152944970114714294102214997020937413881858691962907756603001732198077929136275045314178908599999606338705232462061825201104047693410170380671470968311942335038741232483000693009381347144713286753085480190065349442022441639424102986801074093945278460234916198002891953924792297705864532281715056273198214520691258260411244025865908112349902027374839467555432829838012078401603564628154115650679410613613648647433430973132737207735453539188863772613344219504042512604620413244531247912087958900950219228373331794466748724896931192573413894848999153298727851612299049563553232478842943441991933292277506598594568724284398416720840311703007286234853505913855127390847849096775096528452428735346980486145745616839405143343631991036785355476166329136872349538472928828825733777376383490088098323427969999798575997594757638490594022355684185088320344148767094711269253959255892111455339828913336426110270260002559299008811548973625601229389632895506436847855199318823441131877943298861949750450116699844135234457983236689289847354877961064665570963476830161354868468659817874010911132959489863000246656954114859237458765353441116756200155602626607532523759329533313821364689500274115042479294006450412429355651811798284060625079598164521702991914860715251664530650809282190254750721448354358091553706439939367844606767185568215289073600245908928770997303638642067215052695936404953786262774052577478921805426512701435612511622162730661310386494352963487447291515331087102661297943522783131939431121256425715910923805676303845215358883774755422048689168607272918381172105195174277514383211607443536983343180380397173954826442052384046210242796033166130469715846071448455099204837648216324874025229743222745019438500274891053634246403278660157521968651560737174655713316389568809329244347715954837646325575657944139414057437675744612843003847485438160908934505990284580597994563434997108139041589460251553310175228131667424238783471763359260267254696793815019413837054213876785466437184175047004446319761205806578995811373391513261134578431292953747683276287076633229089785820082544914199624303764853049954464009017215863027042233844655875798986955609333839861320783917880469365371921959619498159605700382047504687265646934129905502934047907783189345635978684458475272693529113076777776555358734808773598282398718991743105923765093669029785167627673778138250056098636698430273618404222775332503581053095932137800539926370528155346050999018823918267016914510631171200290505930600890741693937806431484600819808641383406948279726224534589099181150057862714964794015344311350694912602618330625763955983495263324563760127097577524138140368495881931367912489256578713625982561794450680651586197490666393917273862924562147461321021943921134658161450803424531305900832338417320217910356952654270613904328974971182659867016358536445999579893763024882001684486071431625289328407453587958579349401413842413239658275967897980079477698609309202810387083353694932144388279685645583554454258302712780869649315995589543423457094336665945294574080269332764446818058526918713019540320067310958166622932585378121243521930466060013089459610120859905622924430769187135230996748509779496545946282270368095672767196071010314624516029554483131874118581254817023469987674172606233796963428139200241064573420700614395271179301717718838913318447977590440319490503092386163920909474254262980017089352041854983684210505349946549624366881051239464304360621960902342205293660969284766230454111419211124555544541422837594820307603662140597376387294370782051921676222261531405713812728890310471385299900377435304684656946941226260754191669311990305606382180610199655750897107164943611794215117446569522833901750094084010925605941738857426429903752422383913746962212529254280487263222533246162250772408036019201813963814199782549296260970179580922381490719450121074805818543996751198498321800093957676453175080285506768589309341783343770289979146953453534506751790381976734226178353881623416706209647148151560506738242256306325027540361314854328295029624252407918538515361724238844738991788242854372788428061822433378048122645200763689724714123539371162024734699683718326201340754741369172568606347746673794160093273495172271884884521648972771208986847719298250679234816102568305933895487413230130997720657806425247839297262558078492406607161258017267941241568394354957298146200101228304245324545633076267079666711250055068623298144613220934183460632944927893251647843540580161589848297547851347662475030184032469266302828619124680641193575222825025282932801536916401888346769946334274838555778417499682498010398367912775834363043199770354170956998137129360623734815164910642791114222903657810316742261386707920574357840138884356690382970938296771898890106513832629795180532558022217078031068483590114867096535020496546336845579362328638388896226400990005628742058338908392740832090544478574330034370168092166542937057887863830404541662099461336952150730908847908877386719628871748471935419408071838971173296777320710884410019937137031523310763727778389803459699046719107396703301882308600583028818016330334017954266921515694859535685340777737757411910797588884978052762504385221099221469749506891792949139646862716796578655593063576764490399587066832211746847648561653532165429910236698530487303373097509511097663298574142768560286637855406947681020891758281201430663978511813185642976732806596971656281112221329065173757296580963181322932526167277470593108322451270694845594440780944979842350696929638209701484787590012919916151726875616259933042833081148081127591218793212544001058208313005911999627986886813831802166235838675295334222168584475719796140506377438046478238479798982384760925901397183356209843052324755435154864914123514606504927370514438929420935213417064836834786822774936522096099357518691651219009653137538629563557583040392446134280998809595915304693347933759554659200811203387583233054819066896158909119350731205604900191070211531576018177549899013069082725826119134308017640569196228936317591400711729302880999452137681306438181110870972176180458431142396189039137249661032646568353615760987907220509797513327463501206475295496596049315547265939890329796426745058069488920802444776536516363315831594558417837526998889947381853713107055639893446058532902128253070628189946623805830873805250545570847088154170937095785406961636173347973872222029418589347694136283864009551380188751204175295347056160403458804601529183503471910476012337816317254534763860800903873438376363640651680687564639677239989686666693592903745498673151026954979677230668136569143484200003374338550876619342399796032385477294561649887722937019752109039284575873860833120062578714961903098277520392750548721861601760195768217926303699801714133400808588878341639790745196960618271919815515260904958409728717269713761012254162436256796861245332891293299209943191060534451037483839358012311492760978415164824621878509509226086931193138419504378237378141001133282193091804520346070248902789493273064272803896175420238489302469154004312872149836205664928557241281821880690359800123444760507466316274707093867146310034418939343034419389106721475118983481380674238351782797535622112670479440259370140510313753356633274621372806035187350305262340440953121197227461927499774634604182015156492089580773816004441561248334754436822011631473961427852757558588222132270937574209522050411431348945491216784777121076560696107169585326532190799462109506399471037894713762221039667342437834990036697074779194033776431750492324873929435351476241150931236179524242115525076929729386931044149818201429967015114953800641114100114945786133995900092310222546431548852544633913543282236465478433416315558202814493440438236409954835647841125276897971736858219530187272158595554650950144432392810581726200220445089131646661277311063427139923473975643233055116570959019457421092255775377356700597300414283780698069428724824498571244838011152422032258961968457483893242054007992617907532864109538165949299285583122152321236030097451357276207379538289387764123442342703739911405116119524087291551850208088622708913868744723600968637016476185407915768350450153544687813664127099188138706602295257513329317175249412304370465030790725916360861735322667638904513991707906025323829567577460630462209353654349025354392415225501427550457309666434321790676364351614572928349717072962642007929611113414345186391631638968231760236250223549560236099001764777247028416308478821164105263384041436293303504735456065049916164678478250171192153172968238110277889096381219440102142448918857938603676835009029570932495911784003565222087497629865940684820185730049405606384087234510408858758817197774769986833453298251208224901045038938281900019683774893124137330028609147514823487337092576750771897465188039943517958414292682204523611940742497795183815927266514456974255645922227597816596632283630355467958420916847989583627199615957389725343038139679868996924336257300297539328117995781791861617042048112730567411709036379028429059569780853354495706364166676558064801281189265867090183129593570298735759884574858884959572964516814434852768166048453971746021417868356991645425820473011282488832859721830727091241707086499408017559878598658180576933560409452352556197679390218890520906041348500388526965698649707653143207938004561576162879947322962480598649205446979975737155011019105116061182163573740345359681430998592170742437533811029528415659215389186988740396343341147812477564908579128797283405317260611188528074220922021932449439779375589107603562181315815231459705723266900922537845020480801511912582402944587294837883473689924717478233563603180987334305784580128797553990636665283392151396491007880573889716890442180418458368385152542838442920352200973468963493011835730908513322857822580117485811553124850619657181279310210695796967461774706143209284383555603466023332122577349302553889681945718118008176603492271419925342461049665873302391894709300669249592550053322344157351395664690337277094735230320112597926214730117548864382391402759891238566217777315656821099146751169092509505221179863997608551213070484935305203790252081692507350887771346596841101198548237833311462436031022290303538793832595893045646886616228594595947428649947156865825137085758067163572749845755711390835219102232496549425998582741479712766329411515889708168314066433735931801157157187647102376196973964280005094852905655063025796504109317759072927522740009644285944468061611256071088711408929616740494703823225832235266235602938914665921505065049127937653215999910378521776184084944747492775237507883102772907271579269917207528218165594875796494513999893656867809043445667787835605874953989034724853503506058255677515698296776446619716852430909414181252336789722282682597009073696527149246836323598177768423770260947244431584260279443215580912119309982436056655175326448072860309592718010144032374819323425812944186470471366982360911461681718024873868721405102048511815056097671091485602230569972104505176848888825110919436201321353532083073263439061873353683264365140855008350997636160024517826455804992434438827206334593441532586712767763897742469069791359909464047083958349515028624661217536225898305466465762126947611487876476204654563722119721757990638366986769607569576712677858367967575653929948875766622055194174430991851978639993216735806279996395153780613130600126958969780668811231425145219240466396733490780195075604341455946097495481895826524002499764748170776801940007299349291962696183571280685844056631727311309162222589620328047226344013291428185482160890294138001836058652028403725666012950007465989676291174536024226735446950986056108014300344863827975030726414481297142426588601665275779491893917198617176839890390539005847654862524507464485133537903478703797651711887111712380950249880771229053427759795804332247916253453781545921244576543812918144202168212013879029029746197104324079783351239749178750389049242541012842540957756782346893005014324731683313545142850230907846789056062675915571093258751155407877096670457662555227583274745961282407894232746585479246544775436676496905876930974597992100189207651373086971441484049882069930690794344082292975458176319877336080565214185808858117246712311778946224606343218940879699891753640012451825002795839545351712052708086563786701474903088388025841550610370865697822636986701369362909051368911961011585453168418097547179492048461487793997694098081779270453362672977226459666013819665907080608833475760300323951311735249482198571304917350546941161917538642909714002873336768670128504628017214333292211434415871232312132242153392876022738833969437559536457668333635738181798173481355522359138374889713336122709112796640749859316703440960839281338361525954885077042655376746860829069012155637427871004933075162736485303770846051207014061753885504292327261752838102144669687724762931232692328357098782762972742371753956788169014306036156108332274047071516283351058883506262461486803471546541212636985860081269010203832818003191605729059741400924750928176594057489332638675718410492387653652406151502184350553574347700678117014262035761906192409964731424110229501125023997549529306868234395169645046857467457781829130413017689787525667262491128137706962764165943895778793899943267634142597603573664513638299034307246134215950941689488589943892373254851169457799573645339160463193989605002064538023431573446958549863861712113264375312420824069691716297146280351811142431323337063714903082160586393755122217365660852753067234886314533586163717206586463977337229099083737462215311407398173397034590456904645905368979162100381449029743304677593695573289110541541207188501122572418258832618278327658096969990457943721848068048576580055133172114051565479888583073323585379276719963221124749076771380502040817942885883075837261431200972628435890170569878017426765512486482587770473607054919239873722382963561700884117693449901783759602029752371897098809094795831428559131105552364697970351872513438686875481087271329326662258000163638589933003427145647789139392783219896714886681340828298958396510974231982461057088262239175667723866423948787136268973963992640670907624643453366025910895972611522832704531742204713136596167420269796921624550103065750892581422108221613967891253296626247648506575496106091873461173056605093296778364666185270117685188217397321402200336637136729937194323962732538803219798024125369576503070047373417364547236969542855598785514419604584559861734553438031283949968697408285672797706731978225834027925924394606561528472800831441737466245792489574796677610352172051662103475720579786171477797053230035409658670228863432374978589203022595614399377649724475434984988426967979134736375917673327616268708063831980208511951952006990436440910531031426188040855555701620322245224766426765535633700665559681072150051288496624559886887747076651861728392000165197893128598426637468180186515845808081804536222394396540770833404888038304228314205364697647263513333627157264577554926230710971376044400552872131478350176801194708575594153713344956791336629506457651799997306761250567071076471717261898797788544284772915934952234806198183451032069510064983027747099357729740983804743300896737734110448753210557941364892354284339938042179276809522699420871987150248214045046304978301162441219234056080822417062501385062906052338888648922654266342455496197790700055351659136359194861404622111961519613082577584764749760008187920748816798182583756619098745815036062628989929634642791062763651847619998274928032176837898411184273963542345234499648613624538610533856333208036965430110436320198975521654897101003511294129085234013594498881715471411777525252960994622198404134985222730397424727849251776036071194170530006479647925826865118015464251896079671640481155685956346754119482905369476434756103499571339163354368799835267842070710859111310191961798535676658012076112256044118932091401292725111661978433198286390706004453886266392678165506085290977300111169486386159603116728444237993479145129105665343854707364846551498211315373389586322593504278390593389996046028998065760676812532215931151849639300657974276225757540091076625285260078670468594101340654513716689940642748430010911811941712481625523011626026904361567398176360471543212250195818969482743035237598197472914344601578449727023404111083618789210987458953795397049347460061435527797435197690682138258346467960738062234914328903548404506501881689903171166751928516661322676618623016618367779836617087066701219452174672795034138919550343258808223827431245136468254028253398064695175826806826006277811044928594908724199147152248075041026898141704130538445621797750965975666083295333262037865500428551983099263763666262839511550622166591331940648498892286941375996522709750540508460477943520648571361305286622271917746589281457328960964816313795347540354192605173536817112243526917494307838482899053126219365941824271042780892636688353415722753578462818515305633865716741067411458202280021902438989751735660739551572889408743413880043758177605922061875953246446814418524560310581240047786092309155000498325397659215376448217323510998729900529912044256160891041217898836469530897319070406910612932489667400967743296652278763344229513195927698762092601644404962395885755019943985802157262604267638335003517662929525705474333164779015717453799414831853593951929000911686979575778886438220303573003304331600765466304802901887439677526223828423535377431583704929503066984683677594071244533331527837483060365336380019273790718035205167886653316422425243687561003617514441072974123413176287504914315589586668022958879458728142478933937411358236845039462284588249497839876309363335408890463440598643922914773694634739340568013377444707273085449853971863945680335334974502915548013147979919394650987152779928341883311998752585310202634325758698203669191206169432556268572262823902381323457106474675671388054158104170871592230814292795243456430602474213961987632646462130718030232172651119902106669103290366773710368908396821174357336934620508298447210666151745084782592560216287952897142143168804511905211152656341916299821065354430593395066728098931347200136092562099701240613441286487423655340698106350832602729020295063180830744302813943833694736574986299279423801026351805058672407967131393750605522127724371308891559813474450014976489536383060339243302498174530525218574212664497968661198581053159302607834859644792308666070198461442796762020285926605567732736725544318421196840433605471032819401212311155474909884372299317460917640969697154240263659569692968446920442228477441627473966902833213444141223905129943939512240764525323464716080759960349469228256814928247635401213126884710010389308965075406307565523245045623777159538044953676090394957996022693894218057522292494615264395671149155733354704609364270288151699723980538115064450502512117605737480142033315703568148036548388709696401845932799800650509863304515482940679959604916424590907353243569392751375796208748048284412554484056281232665980025842046627001538149716054018553424310406113202566458708346892363871459089073824865618374793133564031970194072800639811655071102454196285075119917129769030523045483536123761453331840843953468709979014139487646907226316230076577804607603641883851590430052529737654621106588088358427842246497694524473247895672501200822424912794829298576651642531583030372478011169993917905664011149614643609090983657449049623056014104138618733603241614886326181768065935908701349435743908780677919916610456503729446897320873319325896617715699469894497134554674585033611397454731888779651382130811062802692967954905603547965219836945001907100494980044902353993821551976301379455145151669880756385013783510961574106609524899828006820951597604747184428486705740425030452946560379106435189106648684755429097727268843488655022889069760170906858098537693720404729919964849919222035141162574584218353605789546120448167333686017394521167592171390524811002436513368810646163686226812726971749793648815090507123232372046330067539849147142243201755684065379365498200034440816649557860273144466665715634098285841649669382319720332852670212740252797970905596678423818588822531046531060827463027020032378353541380674474739985814192333219783790657457562319776282684677860960128954251306171375365315872775084429889081617608243745807385062953781575073553861656839590587273492482932957955483860454101959091573151367317335093534994894681844350062345055427592580158021650310938135313497353045002917527322907869480654219905152598056561804305922418919025009873288344329929542615852520716762678480819365159134103968377149543516032699076793709353724250070176943683772144825438065039857575932275078711873583289875249302487901490931979122681174612736146257619464041035709174971582649394038392811925315768563650119998975512465228987212075935608447583102940648878901765839133896366600423890201177449905000743589102996993015643437346226249608965747908392087576106149720819750961658030650452484309197361735664149492439884412766430227317111428839022787473374398128890250044799255701324860524133681188082651162822870093078962677998045726932379900987815288917433307571729051697887777903465816192885672681863147464601565274807131117445657402151053732422798800574443877202425926411459632186388576571755970118539408002143292466982587960265641144118805212326456520262653382098506800250545454537774426717156357724258654684544584264945611763515801258662570020770395364136968883493339500319235749828081112111151934915871786585428050853728342160038068309703341445629071790053744607957721813136118660230850820891422399782486560149844728035085613278581930603021739244677955229435652699888747151547653790533481268852189423620643233537098810157680014910070730337117857436859198857817763452000278105977513841582125933935268049320613470726844886850597616290229872360463860629775457996828808288799775130048549837308567486745186394756927577046642694733256800379477750444287561467246638072262729109751104504233281664843513183246742688121956720273952205756682913487076300833215078377192515166272142187807329128624689913284834642919834745293147789446616942674430030010789853549456955450845920296622539948681223177268265534087899688278367563745958344428893672399303974199774327726622990710013707506812309078266242841324370193776813534989097294100196497245058324441020477039944284976606952882470306987880487564805131312868884635761451478666720647837925350405098056496221728517650464748436686903039511909833162691916055516573710379055349017027703154306384479399824185739760658101036674842871548648590408040739062887481804226022925597686592515209347682493825850484930823342946631824773153057024913157212778501647289122425050261296039266183211396513317755358389369415372307430986710409757923105920906753135044212835929608577812201931214757772981421202532302687656257125580510243181928798945044938632474017221044475976943378648386480291397724427460537026678341120436303117508733388427658822790173784906721837683068292266361197058854408151201580375097971375390588474413550853217857747992303169615491880935365347343649690710115459624175288929108500300251979989994457213840443753002779246216778592506677056175824356768908489323932266204742030254030332096871933156424554573795077940264207842345278128025820366596720484363645618473423853708139633613103315616108390690759312040322610800177161110582515633221261180863267349822662239229873468683076866799883071973044321604413789481176809964957964343491635961890524980845403541044017066427149474654103148072882212896625592367804444499047464829039006753080551663756096553783382712017240767770927754388709176354762732936771345956126373259525871552651144780473607904063229572175931710633041222931674298956626318725395778248739609013123545820562679689150555774531644363663291946242294847862053979589778750466070233864417854860299099941936769001529358870678187448936642404269135823707228718643706311771582373625266429029795252409105302089234936996968783402220131999258228849914774774903110308958949972908382212847978117252558666629760610782406274396648048123670217783609100259817580971783779451176661611707062054184605969353207547383462091593774579700841972826294436424019012725781672171471014369289233492353013242194795040812964837204393818050970473556969738573515501115724008640512374683699198906852388088917745185260561731678351095798736230393151210359990772396931841023695863576751491950903544861734931768424207265698242416384705785770688599470875194424983056997081119681334394605764297131687534448394263197463735051694803128545436776871949711192198365218309069855319762598489160234404245962853134964266303166502206047124091445267181120203716452023945887786692364598942330387978282836073561175168040645494466130875576217042146671121160001751715992367093785141522852642925554810364431218975091111674187423584769444022554389483762795128531361793513091060489605886211308663914799206084039067352423133485912256228252500347722249886253616798859956523595664903450694902369903639589236461288287354455871154664927174565305206135312261286942191176579491787617775546950989965003632846190121120207912691164747780743855040434650282689694276470392037731876256445110859086852457741727826955101710461430345194064305027982967738856501914576646436632917663870493589090576243818464858279922764019387353277756745831384484249671190119774505631792861341891097624371973643791995355327412222914905259374821043876157670819366675544198800880753724622056374306523637009088299227576445571346467561996803320864271154478520722507889758312467813739916303053113527385584997447046138211016285624332187477353571893767820801324977144021189995532609468472705211041970285542655604213981091821592170829734510349168546711398902510606583844688872737313754374114610440867693396619148466979455909552735094541565278530228796086988927920912745358385967379752151156352878706610995348676590745489978321365945381603643716544029544663476092708005965706415890176652545523145034316165068608356389275076643093489799057165229413453638425055039927282822661938364937622614161505413991878229927403972608779994125073460774625004125655237413151647923673987790687220143059390479004548891018908469442915748464242649149015565173253065708633117528030816245192519036525123078284335310216259277228590163703329747157964766961296369669875875782880088128236553873790748063556400287560870548199290905166563892939244080101788087327348262275849240251525526295285910040928018010322959693385879126957491255066572717976336160598332480245880925961165433872427184769683982788435282943582306558231398449599743240373716362972774579427690547877869947310640643240195513298274747394898197554348887122241556224638226754455693390006663770068833400022641039314465273749338871283016125423447855931087066600882684031733156926143678278149134658108068518264153303625460203846558825696169914057815148444418514775055692412167036255635098184652272268362337507519585533869641065555175135893800205881850588484163523579454881003694023036473954394578301087032375827214316527007328933302778607329422003202481835557339213883744129480781636625622050662244599904254981883317650078043453551777687208962842979799930711585391605552122723472989242865601974851928670531084654233348890735311670858139007780354547762110219346773449408147842103191311113126675418866543112930106854847810882560916286123881824236334195619720440829936173205777486099175436052982892939482688423395634534563373902203162725381896475698026528269476396565844583648723338395154016057635000612372555632906777574502042208912314704045375043831059904651687647961887802035309389150472723319681362513690892130178004755298003273910086188183521887534587772237916984648710268041388584928789310142321712820325084843343044425838331966580425586605246458143438433732728597187397445705865272185223334535203591177740116950068417067214455886599245451521326797780415597346524130178754616407335840329328235670741722799593608406200951992250600260002526556561387907795079189143671667262484698259216432824114714879067791739007018237907562159257247911510915336835655546750093679677797407229402099509703521609126143107496292823316721711923853636506817336048130753338590179998377039588348285724728468683102467698945893286372701941022395614431951201635807382380353256447843475289199900896856146289349687484356706518701503695899303215523560906034079670275419626417661561913549252014724633683060498157546121864581848182960063761016627445251483243755935450585322292718381802733772181116622894939588653648795452072569700819296004016637624762460140740040609447038453139586998053612697300502457516291653079705721092881303605762374262025239574470379093182087060145564241149949843901935855709225419745185082376445147767794737523193027334070905168287671410812812797697313531276041435716784554089998181602790592921082912395974722523731630928744544515589205086260651176775593651089434106574659737108448375574084070609504314804334143055447673768192951853660672541810074834906004056779989717475669497955887466131599362308811288562033522094850069590612405614359513426591464577918772255659165165998877597423540609998445334557827449377885343277074313170596463821186635157021437390874953360379323082515480172933819229700310544640630702812934146838946827572987076887760579038399514755193019722924299085861586921064310060958201812578475908637074360481875352220095569650001389052528796714544912319007398764789949258923652156582801045025139696067563902990129389991836223482978689444354769529078705313660571535690932219501585561845649761180487408245225614853150598121371179580216868498039986980202203756045880806560498654022498047477966749439870836039089606330667278312928180888066632957127238725999155605132417554167418188905126449352874040590140824800262338889559223748115514107446110975264105584396878013548385015965567243545881104469736799725847460190589393101039536359171456139643589910130914595537617262515011767023594785679906184032352173033894636353357366817789148000732949738029343367342400696889473326065259432319831054301343747315595481023078709950868500533323843126873475990087977420702901798583912380719316691410468297525530963681179790463644235226768891519605677520541154357199920718346481369318596888103813076957858845867183745761884674443712194924874124932818592167401340938050098586348389223814141598857964540766186609858328777813692193518544980080312555066982209376090378465724389521308746324443034565647350347247158084297400063908444168210162800423743192946979588988590757576630890622956521349711538891213767172075681039139725098354519092144379277176101228856292914649191417468464497949698835465931071740003308059815922456944563307757244357324792601595367846164614763215609604958864415431264539592441442657655080472658631979559533206740343654090639782179798224202718180106743973456018204973065261529343202095623451853548036675779605708670188497018857348480436462860597073507040906225935761109007455910905768494541810283858015596321142892323353217558815543255875090244748221624539656623683903942929307685160259571110799669595857475137007778882108215968728694787561160818863228815605329271180081902964138072317965805311606694586191763393040035508645746127576103503118085334010704553689496826181323228178890214496901208824967865164810933866246157051233616277797778621652996576715473326392362370297981759221564475903086951777929191571402045258274639242548904556898479335239576900365857385170258768229530153831261803560113320479834734887497751378146777258052923492601441582918082981872367014312466883632185360334451366682746846693438783306676583940335173715451814219534347648913383712738965655704535423205595185950501674288494505891558811629394210730027394409893175769905801737188644374841342152890147164607099225238837661589110973566845767463385120786529488805966911484251168615882992807983943441533721431983871019420985610605568348525354666837316898146574731415433177982707392132007942334758215716468665666626412396519954216665136370378573973724377042313960950174137090890558542650804205784772590461920426521249310249383968433773263157070583149476575002063467115916446647174061639263750492542161102079902693507222067487267258562661743478409436906776661868149784533779269365397980617963946194185890822880571405227758587961799517813877707869508696564010488416694027709614903880462499977729755916319311693472276632441041397489135133837086554726148094794641241039710203092827829440793468844449315476612985002074524345646115571679416786092368688288102035180317369724588453346365408780742663594766779426629873112589114565697809004379766095344290104205917915209975268055870831792973273431893716764186482163484826110700050368079649260947337648077530704153372274171698461404563482806338366375698965086033900579698244772722904161009170315656628676956914025675390102682052304696305836925883081328699499844330836149816666405003423326014635627380208997431975176355770385525142974949056002453053613714596407529278561967977541902048677524196072474085938199483058070109639826701439697107109042033216338207659386355126070796020885688938907625490240200250695291595864072201822140688325982272848689761745665712404904735722409459356845644418704304514169816850998278353352420555981401900790538194583949491376400667488916801681463750981599588282885221887988711245186778828659518217808875641682461101501652278683908989770143922745002251679245706367204953793272674713261539517479799008123712585631320230737542149870353826248108227952181419695783296511331712860835912128389167273030799916040308135316621767042287006854814589105765909341154407502935396151763697961257340533967630033787192362918205035269090023129037886162603830251797465074946526145106509491785931856481888033804682179927785888417213312047184278080322950206664658388854926160270520069626814971428752028891122209318350381361371641814997337360502296977373674252510121319870166185018820065113606465947919879736096076961183470689344566271078804731594467086990048388968857274309457060946682995913223628544277134373495808085006478331010407229283817763779523729142485170792598879390307454093792086710763903510992820276516963223421056135595239500779724984836654843891407889074072639406004573072272926805125864870470420218677424076463952639890827946385494684065996257040062098708041134054594623515076139701854642894585335090136069962938841986978447942649227120946296644152477618606409363926463696450156340658319831284510154796863037060660811479451970896156780701548272410151302494191123099565618822292921781303177607510633624633014911602830306751922868476894134075031109646997101474155667204294369683813212425500722509618735619667029636503899522475104269981278958741817981276882454650080330304483678175001648373672044029431048939392418994241577040153281429476284524518725866511608863878444219874681154775657918534062621025392919822363258762103366731976319456151630730676294763663146249911807881572094046344703111624145059247215312680700990979187784295710845733281766662797577550068212741020875517139725485690729404337752834223037870794896075643393893597141159935999029356222657728378949981463942349510093601849536931417513907434406028290442920620305952009051174136318808185194714974828358650986285206740030906414223789329051423333065259356555318350549282261683382981436463290546650415036033494183154138562596675730130916327775930486933486459253179047920852983560209196433266296693749115611133218717757767897563139920649619473256171610308798453077207438838982821131506461046666349887859730617454396657073748483432508301545621886783594359537172589295775099909985310046517800859411252245556473864641044538917424641709161561897046564506491109004306919954054083916447618930935775852471721811260516539331270204266406476121320747286271096412092139623562196365588126640076580749042960124662615149651120731509059789091001539986110872027766439968428645179595006857130740044768753768279100450896668473365637663589514306164832329412678168691405340352339423216935601758519332967949755618497908708423130654669139997637336339344603606260128641520869127335410962870854912507839542019485957120947234643612974153980976733180140854161072561350590198894820786470542486701594639612159997563601471327983228469238471064400490175192577941923080177999803914121183250894666443468715291535841538096876308188713234168290036786825254822588286516290080155033284004882877952865585597967195163116668959201002920671133257914970297050158513126716179840315592531130650660335357363139128282156060340696546897269255907109640706168272557876916798466203898405476411224473640243453875639245103888487153642921292114193682418291708175927344880602148014973360912497941561309577513388412124105276175052848594971409469110218169949283070476752634142671335575662771635278812604407557785624204385582542479414616066322872388830248827710897155954234725549011461586477421302362950778903116427950704008554315307523873895583771783402544000320614003531227587573443030731916254306019667738770006199396360950598129390181955865161273187494564363404287306063243664800029166930600396435627338044813732406752309221320168066293252751439614073841623364099640076086884597753224505254017638747342496505748287722546706881342432705679862562241532167798116983033065084535162072349061606046038408187330534587336179494292143426696518975985905131793261663407927616005850913904397071980429758697480839667524023361356653664172901344632200419797791818371564621645958842389003509116995414540001071944470468903388363455480290513875381254184327459415786153796884557898745676702173142293954103880407132563742214211457815749619116479562760737670382271216649701463319747003026259229327637683892872420016575867059400338419986825745484760037809714019362668670637159153216146573626856892890583906389832194423845153929245118353610594896288266543153574397272247228171726690722802270617277946230931648990231393026505297880744505237222133528626652386528893508633819020661600025582527943787496774718301543658505570620546830758071403495861992110417930698618186614817625942105495127891689473540571208611037522741817017127653908706194200326051780995487096120135750040040120124546087503014872080360456367838886261721264211567575210619093965152951865238948341663113574508608005919243455376582953526099971819640349691011890103586445786763444433495453521277037629061810877341361651112749104116964464380932705080918020357446390549276243601677256703962066806774293657968970242865743423578855829373521701318955226880385946142638171926299832692888083040927765464900772968057219598761187577675088071422200589376769184238548223731328370843585036877005208142721011366106432022679249974253040021414249309198092471947871069263745654827346026797958492867707405828126162072985370376026307483843029878590480250262004071038824818117566637386688490986791632450081813387226567582029884458565564106419424564285892746764903833733503742868082347382895893929133070667757260927374877828976819744742567577719663730680363939599572481330970338686629355731278486678537684091320894533974313461423683793248633964422274048977706917029909437989599533642527407840011537743894993150689155296254930350449966973136914529235230724589531548416611786240647494865779912854958746403222090631465479852980437849308512523503456162870912300872199262795132784045489501476204979204553687514214580918441832520381980968061914159050070282478565397158182783531877220934168841410068195133661387342749497549562861802979165097129380296747528192832823284075037930875067873097826980738186665886519390269613991981126952323660851151772780873448726097682342577354793626763628418135941392068903834812584686717721690550650889045041110737925276337868561397109781790125892087152732096678618009522085298418198746339011457846018807606110157463250118454407774351468647020967716152115457086650856337515352956766661568928676306912593640876026081389014564936734172727614852682027196274906898089205148596855246308274876365507563011826832268922769767489781044685882897489119906637723995197120855865784889001721300580529405186091210823952994971042972049040863646929631292576546649977315887353554421098335684624955092427330063493000418575272610792362779382746604481114527352784399061239796524433346570487215132235537220020188781913030970966811687202724119454330020931983681001438215248409359578218622983479993030287748024152799508974196455388535015362413801545664534809203010441898767390235294331633307285845328141010982987634940463033649146642477183247786384876689277122113889790618341328804428407749326381707145418384897343054232480462501668691761849832219915848470941067799935333442190630418656932543298520475954281062893736027015203585073021522218782745615332209450443851387350679277729908947810873471610970471450417584413151295468954653750681505964757627400924901579312920061380094703278766192658292613197128185033012941499434785778210882554996594374275093646660368695533207232868746523754209969242245209116194646247890183768147651801005383956651776157084936385868110107637774915780954664728733343394702458840421992297362068987185675777448365667068447374256180569634524858685864594133659098130909801945396346364867495112981417901111973037150704247892459360886672529693241714783958500296146174574823330915099809219761685692522439897097414408793319325595350928297416136398127374524764664993012251396116563379872253507299817623425048454365590923464026414316576691758430525909812517570301078911003277887436629116341378358918125779770636962740097829613327164446102776552575500760269077216192510950734611905376152727290374236657066480052317658441998216199638193497465178386843305587085015572207730104081944607886193699143029542530724809656883491719370348966655736311971821717729804918731514776602880926843363468785652608027905772953420413270708816117393537629118821913035884370569287285195864480408520797548595375823916677863034835084954020675460975008594911085852079491728738946436004144220451881116006121235870304385240896695659779790501202129033654950568573702972790405273879615336078530880725201787148739284603848585331189597776207601064456060366741616144343593505077910778444231367494013251230976624710583554389774745204232571607982127476479382979500030300562327160467343451902479866381852167821275208455765433201419104285231179516733460329056987631295317740829189802612702667055363466461846345490718808552236831401914590544759078525966276426639456308055851044900180224831198153035248194007217433868253712819148767509918842504416580751653652262837720772430896980252851553544572450038226227350363466021645888221966299109523758120817921833603894417764514396032969707338323443241345173885278199003539361465938172925187223562462819164374255024233682196260398873440645281083058916817528569792603832059629552310471332629715143518184068853848102750843164529011812190944251214771984501576490401959098281179124824620737401000909384084238222983657779050070040054610182187454588378985367646703075772349172806927366607996966559618249351788080943929888299635999032025836487871997477852090355141422596698795673717786130138469984975930212924783787038604371457579708309098607748626900628321546099811715575990458971662188321914862327993641557307876293389905094372888014419288899801818568380628041479580933927478100207651149551436497033932297817423408209570903754435969321124613693582347255572376821133969700218884042882902980353436231077322701334054194421057182609966693006360929203654352184216889323777373753802508156471947735879585291396366184192209242530290812408732916255685263287093794831498696442193326624292206371323269716677558704794648923552527475896833989231904638544560396546639054162228017899599382571959420084961476132648844063658239314008300193121493060208082750066650484055011044345655623455254853095732258104872052847586042833411607209641569993046459524381373765920025919212282994603697851140248311160477086708447929469199447281869976178427386559264825247176970065159403070668245299698073755745176505170298476100328835142627727066897146307029401739814822314658001227988842183280699400557341961440531993618261886917514420870620546376242000480710882771538682703554056514834226503227666511332566455891090716803096499551961595706478054149224070784781195379795319676350912569528547573001163801330993167079579424008911124668050117121551777595006772021458431918458229730455794425115292444002133925662256376132497982801024556500731936558873887861393645151642398002937543866889961682770940797214039841570328929717104282879052019683012101335880240139910253832609977709732566454959146126960021961880860348829613217747997746258914572541565599333510988930566301058771951180794546018746994741707924800412133416305695706464151590819795723892757764271338915765369637589728561671646718612660339191285917776254908773371644089134631218523734769945776098296393132186073511471029247970941552983597737114302676490624629583839130822636895952081105956897959280438020326540254595426975776787872201515875624340830444717028112644908045915468359998229591959098080087436859532972898682755115605083900151286392569219019787162117438234578620622059460241975713852521403466857145163911843622555797207704890573629289376811939289524498041157433674694305009250746423593668041288790541545902610623565354065040729793060826191348941035675870727233696822977874959152552206403801806690504017906912150674879094256057903129328645603802855896990477303365437656467062174894604387355196541030879405811866955934744943773010133008147318812651808214607039280648468745575168368669364313232609382132466697217311752007642679433865636230492437536988723323195640827821766188881492188568619061179239515580296542773779052636979853241183437906914087574685678291658004697627051034810454810649204012531033058336454765045185197566806203751215446429578251554150274537102240775384021410323489245873667262191225410902806392258654316983279583411517634898438472479822319536002160766979366083130969967109112937948579012882154770734418179602991465576601330780209609953284006378638085380300523159366476730190731410701574125429619423714630991278296603019000099538344261817690727007365779411734039366201893663632325620092617895059799295319915381600626970798067255357221446793251603499584759080849282997661186247608921086621924786633409269221853507890869100802760279181583385816149925336320009963916523254962602007218265851186068775043809630560937960019800061008495410721240105986525481691196218234378658205737906943559494798143641209838088353232234871293402044277019949745281871815411053792963176058465831772946758163416452985800265822466126066737623416641990880278010857317361617238272730064229638846201180269777257636667988930242758370719908891854781386979727931438119208605121877954574942479508768182656282089436626512321660722543924910361886389143539967455315809514941847146598088736733163421113520861261150748438751318407072266325188080685796480125963418709334529778170669871325148891791338348388360712945520202843716454128415248527719543040909451122723404592017213032467774500796153406541954561706473610866045555319766886234051629208482718006465136299126930987983711971007707387997214418884208464303697188585902601027566801220358169673341507841711815091785009692767860652458164632130519062501634981100527019856868096105747838552701885965574760709649065707827489493635381551310586940098896836451643462887077942230805813116333994644882072836193195049873359257017403067640860753539538287686438475266778932471513762066398340592316008921165583419874457301627942394756494390811595947584702826228244649783541201053417842928682951072723297692729554354966584878307802274937181920944466245140280895693946800005667861940873245967564305813021899955911883631846278251519192862685637657796492653005660679949371480655182173146510492901248331908997617521565808999616740711946271887748659304954448234985062945149268192486442884226439237956239470703162073563617203429807922561935069517624390810249854151363953774282542077200015232122440378299535452787772280417129525298382268546371777863421887433172082497837273709690136293141954403622138237702863908761821294962334091422629910597055623239268625519456071148676765280101698213004305564715329698266940471259797395890199432447461033627215150968251181549180300982025712854506687785447012713426630372805320342049113921916122394637411944827819849269419140847794476298715333274389886312816273601611287999842848797320707922608193477436528648184517948106291096247200418234972701782698032385755101592593749398153483779608265670835599828355023203054990189959733474967168531292652442452913204976751366957315517710880198991534310557259851630844921707962642324102276141456404008220654351940745143753018110297132354715249727275593264053936521113229671514162618895282954040781023036880906190297505345534419599468399173338912467238007195518999879851110651893216520268285878359489540723987910740624265420350231581438809781880621543943207766253654372827774886168303893688280494490154971263893559268744420627887614956041443506305747624890564566233214332928822574490984817778692947498391003462776982479668936079108603526761633679671677673153792061322961799587180680646818052127603138035148146786377282691735547122011272550132658711269437825901949965787483431885703550621885030174240286440799789234802995894963611915535288845176380573490404612821957143536369475221235416990359988187263277496751612636632868148946568403108110445548982042064275189712787860857825761887110957387730125921375751961494788022054105069177021830308874669742992282137953740752497197347302046331042892048309099348209977758982452423756299876480239006755222057117072151541071184587393016446637075642578257844513853820157875405416782138857968011498850508671910391688327672891457073329990191329044667754688489640999459306423660724215574074209422892715786361179708921387516601916639231715344263240941826691756120829764105628863932385272100453879092380967006453442686588436775786496056461597995169978070042946567858276826957981293437729669996519831533590531721805697224967629263744674913123904077426443496653510062132972518852988069723457051131473082998361813885514733254761541866859205915644998139029317015919158478738769340757828714961555060221683249016914304189447328678669934612134089184513643658552828928826304447411729299986545946191619046036091343778978441034965597650373103131475170445133685316518738958413413366041576548489607233545298157094997378405419324093239106464247513957346710677748580634496486592927271244162842270936215669829035818910414697941682660549697092275989259113232583803125238260631662187570431353307749021631716068217055607662208174792235464127612742099857956884040610197646968831536336807720027718244262756521801918929113920042590811711750415197165101189442939874728957977409811350941136291876314553519352909791365631270606503176222494325276056677574519182831378369945725051219426345251150709278364626043375320897696532551349421724397295588361467491482816239812360157652048697815673081335491116737926936483802790518830316300472670074621361082339971321878222440706871183408300992222098594260181071445812178644223351215437647916686793892367127383223155700824360123629759786665461233848686104489412531942000567027525214013539552415701223015813985464640477653507019888699796010009608113474480993332359855951028436653491634573507173412255037064906614559769410311657937104909638484060189889120137281767543153358078074305816995078255171989632569071373773700244125980551881999017101127299577965597628321833201523206491639845904521004745634071883461256766898414609706367523021152552367154862719716165304590876808052164209324213056578314531031157943698841592995928449804323738567238486953594474247276095584151882266153449049709958007971821152220103047967914164176960400168303230755263723972820683791181500103245197236660804248603217993457123550907376638121569526731656330020979366425249775017943694153496403312295259429258849213454996247538865388937413967798375670915954165158276664186355923160673959339152789605095531536867676941876398114181648643794402719949878268946089509560332084317867969698440787304258443163520318636448351496972863917654796627561281046914399002916714433275056793882137944876136084800598399496101660287750922080906575521318989137398172358812584052429843368299812187954147407431503987255350481880313608129172829199483577808443835401067292540193437012182693021967797297692149766774972669443535506758285437489164913756288896354546135110924896021898152194734597206082897848616879253614440440514514560886502512066053090825603948581478323520382715404163061096001819745005818181375344477424310701733129413872871727056514848852927295361257913411424674741792342789477601814864960217022225816266263116550416040225749106739784125206541605928455715194417402147240866021832996887495863104834085209159908731529874659749348434650559670009606964555600674969126105856122060841462854451025925813179620690450895596591645022865683180432031527076744035941670251960771729959925085211564417512183021757514783254070206577702974209977428958154647912267009177286602258669944349004589570095412634501142925136151755272244670393509921740864298127723945552904771983033362886804466559705388764825620031077067697363341030042802787141362421886101834435780487975302045274146600843958744365307036730243796584672500517123132657409368272057987872292825743138148670932326631771694508279478293760858610224875605699812739952951496212175390287267819448002862364952102588775489759751732786693841783439316316228531463030261898932226081292323762488441271880296907370946927716968259955392249670391074791206631570757303203244852058748438757589170569680247625200291770508023437215781435846092431907533153871226131675556205202527101719680771445661154429504092511179917804037318009330232636996462547864436499860277290793767576330939730917265508603284476526606504910491338604420128780797192487639142558274565235863033248412813980342427270816924517514823012195635579787823793629398664205065956728164899548606285073710589686561488127731622168283683319791823001662118415882792645356357589260877770662281294596862388157454723256381430069212228611878632624476859660017547763201403366322091785097953918793307675560578082359215658807125408965431365111722133665602693308286742839919896590497636188849835084330311887822676134322161691533079814833338624680881784664243538449064255266417571294488900564285837584913762220062567521849043161097599543093045180531025257465496622612085236384419889322343265009724237320419593638867825891630039484208505464918038432658932981566341257966650928232403729528169574106727736619775739408577066177389343375722808987953615288836452845557797220628623656008801011057311826330241191593116976396588604144014629230110183122089132349575440991853366515593567686036008277041864056504329304580100997748954180611250843201973871253836548671674643399724294698399005101103934913138852044015038534242299178142522899775254291189802974377101834516569022733072963323269881343057917330099546475513071217154522806915091071536371456070866979270805837442324914948863053443480651727064444289193516433266687542790452092807316250164452174565230293068348411549269721642654131005531717745324271100973366011754669930023935511694351582254039721268704236931717594297541807605150706126204892901719830563566762902198761296708980086943441290986928338473048907790860816143138438128121508714764885250514030163713070317915417426348415577381360798306832702247580029464236140074531626395966035771068880866600371761579576231154964379669969147951447875449387818212967539042557045742578945856111072084789364068056441278816989735212368289272597037143026068870794829350084652577202806256621511159058252230602606984188721015586121375220299693424530644574767213881186559704615133014021796637455489229543929707228650975363371731824640521437902248492437497742638991854382985537298985257100068224616228068811469206335577354098751994217074014553801609142928638314468122297950647218814911248968171921904387803975047955465161526641276719874310864518214329613953526131446722550632912752036946032668941900576583192059045115698856418941561099670916972159388163758505814409775716116664022786927361278292673823718912714117957500567521485159479456189571946465766585863170453423170373454414179394778855975430874161756632993491221202598762275087396680466561855075130444293465472734960095242904391092797746028301695255904937448268269900959367826161650170464251312488394814413443950416235911916172068118465292156049985952291064979023994407726648250626017679248191489362283021136483054783634948747538517632409525983067296970929172806002024438438252007866062287493760998904313403364519414869129147990045453374713629992634093994607673803112786587160772494525771564388340107278544925490894595999462236880267636977069859810679977125481453095873062545453362531099641236875435670138421810705742020791136576581653024967385680158546468823012364793291260745825096575242431686811666044577866944770608140669443545039135628749878782734855196868931176474500152196466708127559107748634368482712329262047974288398461220899339709195594346456447630953750169530719139481608108747054434287554411133297467869503180862104066135345239536149432171863379570761844039887735417232279050278707055579454843512262813014305101649858204754484849928800732884026792134197766432811043699377515858693624853847416900558678489505797882718977468142874496604021651416880811208296718985509078867433179633426902280858088307318431968078743937532397463747276227013343429705126248912041474552146041988697947104413182325269217460971815137696162002027028801638577599112301030151122046748492574600847844324208736830775137871341868803481547731204609539937238789399298351309198906859370636845475839911498252928477082435034905941473780778698933443482257481314346111494367222013355693965938804836089702608093195519403222785638959772292980436143731644743457471589339532057737206879168565858478448082082620794620539197288573378303394412756553111429355609222641123034854604462116762997825432739755948749063075912328856583968771579833391065916004705765330015603282915386677065571969452595668080600539763080564482467102781780309928286672759810894527156182194860301186623545816672190246238792525157057499694226500304243009882339837282284639381316374991615073922860024128460596213392326159945679071036156050589739184903407562760994173199524007934640159301635597570648467224561690568934001280045421457842358006961959669332160174581875177009518633680548001367515760077287937241628872702148212834339701140274622429675121103534073404183406073487915135484216512920531992272476016862724478496696408010995464849815908324824234683634031267050377844446939221265884065362841881595248176246354119212930336304264623569480011568916826803961590137642663123787229363954419838861975240471679981921942582569266232230597101768738826051833637486918424039912248600535529437631417391419235882313544760673708681382085086765171007431641612768453914272953533275720373877552771141657126813080910023971277559967293978189638975984446890260726712797397926321958379831762298271505923054275505186344603572235390157662756029938485644371329719890802686760578189495315103930521159302425569514222750096184008074715424985236868909487924377144844161509713458480807407528305698802452793211040671715177098822652600654853717765970662205398062968094863856111910235251734322212857800098497617835446499422997090713890052344982763542770769743234745344471009768210471816920252592865550747494044754859342816693436308298449203564111761830827453090958195164232321817857108719770929888405152851522686931332426316981973093870265208539020142610439125632240954879414305375995459606532339368797340350588325999393681476218072836037357416898375382054278947486985170274321363923840845416106243215393384477242164887918789229168758342539604769125220080194744808418108254859563167082793047449451356904389093774150230321654531110171862579365495358855454823284430410560568244837866322878490372587505886847050926884661260890634232802206929995925871523939923683914733841710747010184033519631448160528077100853333430256107988762171365179594478509150834247114967613119232328081529318409413997742794968900145674189240741209820245564321441823256928256321658295265451166228234683726219865078023238663236952815699126250625602348179915104586813918413040575412989300416750623960205469136242505325835952633179055581682943542636487678831550236840773898184562491062418727314934564677054942836860649945176771424190384366227076039244911243209839869460563205553922866098619042707239094090157795319309343269113946474931220806367196266744989308924331486322642249167660148018063751893874463418037790052193502351684604621861448893344586087635624151235704303467444210164809176664387628806814542656238999352816269112262177431322665627898361176897427291244114620399241367454472845769980137356205588440658151468106535162903474064605592475375287313730588091129859321718581638150140385573879049718031652781117709290628391967046423337488571966799564733491801178405214636320481302644767939244554998375200255469263523314587260739813335648775286199935893620731417927097326353714444488386052492439108045652658772626200400213839897757956961262197518670198879508107104781509787128951743724866061392254027616152609928927154057319848780108876703307386080664399431732245934084978645694847736502482139003255483469125345519087517612094859774391410205052956297320616518701719312078388117309128209549910801207139152778914617611744025686400624926647471933921213196037170020884427255538111904241815008363215516826055808102687349659620143339931147781851152777220576506764202721551277398311489353131999182497295840035066463659517870116697928116727598125999663886359834503968463763278617368660189160224429369330017136898187539586532881119357711957920407969089860782905703327005972542462147455824601274951033119501180012855175396785217168450736167286663388141801777440155251698614680304323173763892673186164767402599006083921480328756834681762689200126670134247819000325826066605619040064504957707420451982486086106948043972334787386802275268431285479214811568485636140682571526153359316249107887973669719076329635147790874821115832380893280574460958553410877091832402207656947804187342329932835179787599487716586767366704671474192201788973118970473576451545750613197210135160125222940749402740522542592853968787805368437518519475786617068475166057332843508424347686000385205572657013394167832817372533715823305444230308655823862383026669538269638215994299549509378217276876972381624623317118873001491995370697956243183161245771299304622817815867688599709595218862252088784887837697488578466690757996180993298518777582018306522140922730189436196738241243734868246443810862416757995339345949477003469946647820170578219821228770645421151302289203982987779625453091219276057614938380457242401684977650670141103886748275463232580517843617204592756560702295829069016080550444955331448345569809012881854752407743551000182320405526260730813388871369793217218649734268023364721907782613027461599585245769978272596655374466653417255502591517782372822185266962762549871570691083080684628781976133083379114334751054391795840648134618545453066631244903746607686573242558266450842156307672347132713785632466455431521236376547337758690356246761411539174318357496827826868359200950391450629793083028445216162792751039861654881303136512575088798478286629484577493798702467060513696929172239241355718907226159476690379926287574776903284676208539488041076430227999745689530963368440168758804907099983241716912517586273774843134579257698521836362912687346480943276378110737017675971023636455422033084156097007644386447220542722481786083169026812337886618943784699235640088748204041477788196470603222911037698013746940321156240458342984333072739140532570855128614081676577430307364361514647094035383217550918464848167622687634871905751533611585005023419895609449257977552429341094963791119555265242472912379194458700566528204158541194729793241795058952452430991042079933796118479578690320780150916221530823581672880020087837031714499952206967709189601106300965086492301969675895444470065276596257928025666479931641612039204261127629779755778291474444995273809084737629584663470656216512925263149074898727537969518288528193605601161714873910146898360009791262705221807299456479661032140370997856874162626230238497150094031259121031460787100186814757054713144348930800093226380538166853496009389390505323695993204792077895122032488187400260367566124970604647038575007524565358751516845425592583850142242069093747379119400576432364781382831078106548565663461709972677111932089973574396636389212208444529286257065176797619954362452324350393541856281738713199035912758656702301096465572759197429183552187875781827235762497973501844290049324290638690561628272931967422149814302038625160967483362226097242529118072457238946622507965536824301143228249149860526227929567960279635939364251453199362961997090008753205362405021455623559599637645515553077097189975277216360167286166005829249265789609714593875533444815210597486012780860175147797343298806007924355358520249512670903891821622934998912245853050211162082593751254934924914826888978331948474961049973379322699295065415539991894284631207220420009618184353674522845862398989422170045517682765085293447783077988115679262272072829989892746037054698729618940069940871606275854660033764323741557355292082493067785256362821658466500034433029820324202483407312099048355572709912442536067842575032584983905610634481460715848129920257924537028550018363342250336582955151456952533522336917436977534880125337363399431337644959673949884793037801786903442706189834883236775970010075269543207318289415708791478919617048641909665696005630084555026064440173663373708632357626012302358673756830543850775863694914595023964167631048794992509607041031561124487418299414392957275404307778228355800660161918578820461154429259685358338318797977244520876865724175236088155227806608239008054693321450678924285146035509895723879610678601363029803097989586240970135782243188235401658443344551131490050999033298944813657398562839787854014138254245610140752241484359846234611410834853751500386739789719001312945071157249260354800549678579354011072624409382859998796789302348247860450531030046202761442703102820473538416869774007255315764877056300608068669847415401285123465829038390140002991657733982609814613467311432024699700147078233096903599561412342373224451838560728825498288136368993918910030870519091132034024192357828598418712511228806568933424893026650780495488940987068201512792512852088960949505113309186184758978651916645225308346221376887246811683033033316660147133475702079684496425593005163496356148134122026561063634306532047450274686634958863342457691561921843638411894283771553486509374751887696812661213132374118409583154471615725708391405666694203282268423023616056977110338250415383136490244147927449653789698310845463821495075475835902979572467254711281412899030482364960568930239965028580014003621662676112681469609718389204304275506644633824900717844163534481456662493561275450154624699846208980530032150479011412269937394476532896274434148124996521735716221093244104171209519108846941529842738094957550244892465982315626071365967867854262640887149116712085512486804611412175168082401363559604036426463446539019712659301841676886561613343045042601988509036131982621346093663508481771371406981600206916864384401881078578307186521126630511720178347099405761144292500690288422790543219297071512916404451948415422277503276257760114689282818330057292520702892133924023468470330783012189936802982996229445308852886390013712506889710504181168837116889669090333595389639037775218124049692100981663235458866877216412504056884298105137231493372381492853281984412587229507579921584467804714426811563110577800663237006087974305493073968256369330923792498072128000910032940635387528600053004915996558295877016499411602483064203872602538464202938705511621166552806505187364409079592286768787910891512594207857168290764541949450422750674741650521286842909675672721936020999870902838802352598212155213725438083107002283358763368137623458519283636355539288235087514403783928372241405589082049198641587631064058437271688749557837070229921402868994652549079862127165812927625356272798897021598840484366967371379750371069703444653555704695507193043727694158338296713049396336033524698607740372670363157356952543584952679380861039662479992074421452813441187642883067061940282228994030880263683791418197457689852543982636511662611017830093797992428376455533691502236874218019752124579649942803700087464570559785687704304322050946717135245039963874760847955319045632643722657635250600519630484362761351459914267165617691652023315435307003983059047633108162318081944977815320814029909088959538660935053044935904980008521096188282016195738639938382115636554096787100511729353364691750751215128299616011158086038473333959614363396548097322370310640685322214518619197450269702528107364582619252655972565471980484672181070056289374613180088884022089034245906688898328467433277542559167420849697841441010613099571607287640947345225160300756069138060064227487451546397461246781431284338806556606126975988230297017079093281582084787465392041765483729140688887029764971546796637528324005456468562067879898122288059973066305820185134561747340715412124066630242085456078413753582906089357130734248240895677730446236889118769183474999632546736164579489713461873844736898870511067801421148401990123347392478558418084764974424159609471427518651373788779688552666236006557528830625163810763174680005598502026946173435389997940722555343973433657478865485261876605938476606974168049149693462137474676564794661395538678244093208538563294448958154744546095922098678275287129065924106159670035488062800178653748089355035931610237106142329346048659282483908054150169353682086512672227139125775872884509576667579347576350466365980221805475412871137895533351092459359264826581306162551316073424968563667279246594912731330176523790042202141215850037050072652345337117119364582469121811108169455885869613544664627444869650201733144731232758646857760078055038911035578580775813413836618639380815710659239351147985240522841674445768948802133157584019055306983502915151254762433237120341343242131235007269122452221730906709596893975718645286460871446796715660846612503027062642168499347720789218180250017420931308150282901157306660738309775586798751579652971149560761576846073050285526412719739100749248726812069648899996884295592586914223954083826891149672086405582577386229677000127980433331369970721901017946622446903042214930597374476045428086148085245371839541752281365094742148804536406339221827432630702146328450319974113752578514853825520934342179446640577187062408587492209414743775968074958974917505715056834825411631267188390101615033477500794651098182939052696314266507135984832423512177310479239100775510013867815861017433978487737841711204796349805655947662585239331459899719853361143785308994837091361352972814450584723475572359612675157606423840385653742966668753421571891547958904340402992046535780382159172073750278542427176141389694079604350498196054456771775863365166756193972069750238855433339482260785147127808384104768477277041250518935753245924668536176884158182581982111027153392266614906297579585858575512659609240145281298588196218352419870579168198962279975440729829660487223776455840399374903073275413776592172802346688125424132540631678342191957521613680759502718447560506656852495666401692346869483081398707798226009690877348120156879791313934588131295592528807886523422897187180087056968801839594755972643781416047907792501121053730499454603837369194807808497865959835091272753453838484070473927682111317071181364355808547670222524209111554565796589988598529819623168399364724488676836670193821455369779293066822137430145535460726248649956380650814496117472637694944319809722267043016890823183656432828580910507311876697651037112328373915005387139605447922695304755530873186669491354608029480242335692393849441029873310085538997223134110521112262759161683661762035354799707950542611645311136828645012657734940771920138304567283717954092393132204436774941731188140251473278956789045624214758510965535246750204000996484220446315000317852166152421295559835803487174454174346231854599121525553385301281465888714235020121753230010906898209387051659090481662589916060952398574102261242259719936660676470445456788344591110170534644768739567092771600843893216768481569167008766363805735971232095625984833979071993010068228887347164529120902444536353025991288071314937587525231407007839008213572686220747030876214434207862417846035841360819527508779313487633170300408703485687154709580154252358998545269091343467039080774573294329558102633598822878199346235148202385684260185039600974878693938944251358314661463166819752407566939373914505786643467090749890500921562923872161036747655913495563893165373753262111105383237925165645522419952085538501030627915628072522346902882246385227789229772843704216607052683484755656602067040132564598299285149485196771483386402097767071051081525450338572863704623462602043400335714449647693380240404249171152717111635499743319923220769740377427116670467686620552201996458109439297803644473063203910088222707504998063620729830353243770153815870242161837284358531978136614356001278613377370944826866298985803999158369200891793810719148219875333984978416725814175708485372801341559693373170106103945044841627230140140312478052784353765872330888060117691779750148238680953520805220425455642318743228848358646897670068368976412932516872630713703759083088589676311130768802667798514005123157990014708588041434068332338717044161653362684404178445500702884602040178535509274619274245046924999258639420854308794046893345550190094275958636794054579916726829733891203328131653363868800530563628012479397736664621882658534614185465821750965104423597665092486309438082577889636328713600933876562507083592964637252427331066670493409505206437395451447293849371428828155163538751115886199168797841001171832817243384748674860371477299952345874192308617149815154937534631334180425828123811744036349361517718932304644855051759764363213160693545540953714898216019801232956446423156448990119650245163850467588444951243478840076702552135104616920531678205156800125765356923861583430196855452491833222037414186769783238088288336200148585382746440113245716494904257288653949705105713914475283525772989059745358929556797171138917046355154640916226425090952531448714780991422464060341119343083228462560544927395259295530027264193997040454089460605336306735887272765466303148360942934853231930767313936598077690027560190772357923099841161962101583308902376594536445330331307850205904366283771428164388555530625210255840866886160685310131617176180810313698675744348276765679481356618809558269083300823814355035131441500555629870048534820154542843536713839216652105455017517341326012074706822300947190972841281270971836831203683336668635293701251222269759333808193928701281043438085247396208479420640760379161962949545667545882709845130178051618985782609522339205761177213968131978272150408262805592931413226767747348361975923150645400411574871651188127988480247090463954114701863298678919702463520657468710086954746228555888717580945022044413143922010979471143394396168134083324357623722869955755903733326785230759201447308311705021403730736825644103311396767490270609772030009318880657394211548888791138298357145806486385459632024635681660074120095161508988123037242097006981544123829310918352127643884568543345117949453811146831429316710651360196924899484432526247079779942236527761693783850064761981691130148586784744346643447871161139291272009742039067307812489217885338018066350139440027856453843641162926587868485138336387749511571574290769213190134213518621138840725637302482129091630841702526256961102660143088799202569491854584573796355138188642460553343170123238772516117152200186703079642913091859851536416160836473120346571406233766808040890725747686151615593594374504014295552954492895883119915026905029593942327489959275057503447484560387293184920055489640196325872913809281075555051422660342782740540028608157118315560246067740989444034669837831827125640298108464886527301241406293824889581619486114859188325649634122913171897043087713684188923365989146358062931892992177694833603898427387920050255671314135219750334231422959215912064031440424684256416067710598308631719942050425826592446370849941497440038505186941122679942868060202097605294365255510655785394424169609256298904197682876928851433929563193504978880851207483018207150286015967454593426067202987481821588047377994633429391334172216958537928762274776345181675538466739703177445023538300101716288213961018862204763626390069391641136713004339795136864815178007391331043067378895983696094771033829941701860543364364243754745160921377790610510718334111114827559989078545139060978548168214642644712064061305830253728934134219973944742194855450307813356515978791857315909450784321986640897030322616471453246443305898833538008128868508106357885570773392904193326718039690684582521280660590660291334229811425503095690929796844824322869054893799234120096856030781761846567018080116171199797925652996706415106028890231368374980698036091560689468894101344707505396771104580267133506181880040391667635602603626679993652004810636378614534886035704395443038534146941255969551853139658479044397295885141980957115354820578472183895664107846419722102562273894324354279608078121780489828864566970582378987823406190482347930626466157593255611890214154994070992834478348066545355575103606708551875640754386966625134977753370282587904153267837955793857701566017069803055254613902911213844225332188489654835541129682643173937900094562917439260117295341230086170861277546547124418975841668210996204474185892440724103037252356374115288330476513350680654547504142320090595324576063057594396574072111894945975890202853758288325666429165495230380156304020086983467754367698083340060024350553804801762174169007782538230832332545600491713588806258330777905629999466340297935560456797853354741783722066002518794090899033740291293696089088924838264927524085765761498602048909813114552971292369198359756358883719050298381522047431575838544564559303895757874877361780416444175807345531055082820672034864682421542283628156616939089416005538415455608090550772803306645052527047115934424510188668341788400767194578218812620275239849660038789405444457203281776576038223395841924722474449339842510437963548652509422405591363045496935713906762279715570136444098232615736827689972182566814643446830558809927458473758295265546658287097483503260478784476837196125188689568907214678660937742414389573713668607084821701376782628065968281569956835820314942657571428349761249252908013607893136524766070178599530650819570177194992948352467293538544106582001967756545784464467660796817237496158674916418343573816641691764858362760690797571251654615972552790862792961505302024148203801886415058938177477851979913184379992167669473351347075789775012469136339122905070337905250501223918581496069299136019777849027504882761595410486149161819561483537229539048904405087534812956885750336780430708005564933162616217422311466585420549863082993804976876361378576081422176850772771384788039914895596597528270430647824574327774999532417946862312147102433160936152642390017925384986412899847593507291992354445396696678069080505126272544375414210230328169411755190603618130309647117732775375326330216207956105285354657717946098806325571413500067523044712710203096004455852281321795145883942354412004521822996885467429446955380983885147498404007792309815089112259532847829069044050181354151411546554144395784354207945773895159612388443138810241759349244410208765364764288183279256580560888240850207638597936785684971141629078508279912974585558162311837568105835816307739011602698961452332324925509863990753906171323564969566461282545251820833621311725275692710850595135194620756840261375151472296773986271687815487212211406608335967494397215571069789611880256114390134336625634092933349313421732662756201335357325749575757349334368164407287316840123797397422661705404247690068475067260763605103765481154415739954123220287635689711708875431699095422842323488234066863111454992193509202009126298570990145933609731324213981695722154562622628516620795648352968200163641689864890894406520410026916429176050081661163058588417303557062621842076690102262247791794213141349295846350122346968169895084092767691954473134682143189891907305114118904733086853483189878354029853804416292477757145354163809101070771412394205664619762690408526922658351500877715185159697361167897225896398687853096634150534520710302617362631521134161258031436645649922888483117188740449504258147244951044741030464500518515420669710500716069132188335460668752457070399910810071425240991596899802398855873590141423327246707459086132196908904591133246947249284248378439864342046365386153901739019699013553296194099105657890997533433453826092095260866785430228995672509330157068105821793556321383570347751978410559271524531351809854382413037569618637752906187912357254899162868283228342623230383422185691632418611862813870705855840948106501395528477467208654175035845618480306416544995178418417118294680539476489468140749945216422873374458978104551366317006127188495153001830826515746050695719870331790886818438611272337242975746218615246037326853073682133064270049940530063475700459933586245916529862333972202561739663320698401856307625296783345666042435771678858440708309428916197099574126860710899453888261975638130421965226791730207709091086276236841710779719882850381158377614395243470751495173085620453912265303963489537561360299122114228853623202724835122965063686964232818816652074425945221664459288922970014572128973332637022990011763293187399048538285240263225011008132787407074460535659601043510086459705778967471030749694946497408886192688884119943410248500364075896157704606397497301768623795569044447618326119856600392672138391483284135485990846579187014444769482549303703450477094198572730907593826549140623007632275699168677900506147112186763556377851249162511879442307629016446648952643889807130067312491523601767841608003295069361968836848291083890716771192598240827817319695494936058561706017856228426643080094558962491882818928983855168798156582678875071948227367125816865633471659220349236096032975546135154299199835554569914211080104150412507140274283794067131701583154355490844666757333615526598696512223696056010681545386497347196479313573428873560657496400976264681560536628761091514729889022140805077947054134792140931375050558118271648638718110231431632823041670147011110940030690313727457105080171057112912556503993028419665448190731438909707841425031116298404820176922006001182282820689592487882329484736458659290030974147291969780836457205594177438606888865461522510336275118684408323322183861999811130094908137431204714366099584837185996618499562059729902812698505955617553107557976042886632031718822779219228355881820678414011948387745588337153486276407451977853987420289282711218320644739501356654099926654060635688633253192502919583622166115656151927844656596352861020831916499133777778460960969929642826701658918997613022334351411725964349841879880094742448661023624863376444976370227885626165780203933321201319902122280363967878226532069114342776201663595583747382067462201113738217820953618967749138673533771778572244658830037203400831201479623468984350453234399517909887113043413112178624930718730272701539251941425467944117722074602664331296751879655997164316327840236623905537886791609366932376556137301192292556817610643225589236999628759446339153516271738653284754562425109239142912259735691023698739692386821365526837078590807644677844671270035264672599452322469643657949742123367631558411114678204685210212215443032143415272388151376681244963997354347960970482347702154193558472953966581495698793783439163924812571709376547198132021059303697742210539505907090537250016498728474960076303187224388279286194695226171615926743210447911366248091540268003748320825519375418069345216442585789502993661835234341856822306444826975749330134592781168568763340872889836548031705650397984725516316601315092180343952822016822153223306780539294312005640182348811362660743155090826431700898851019863376465017879049785276075255412597309238699280861360339292948394615299471433847908732901986180435834872880000651956752603279707142575493764677504521437672290832330806734207124519521918193635381394645157382545963335687960879283718422090395362828090191977065983163934739407728044932980096663051846479623951201693329997129296275841997533568586721386073447188003539149536606258701198865412489388909876826443687845280377122542300732328835505464717052127677630536224193885463152701109520815629950184525024150351398985393186105348853014950839760554669108079427580847005620049729831059620862790033867439678965291877120048620518851017395298371217485027352882520887041140190487819517100614061017062075250520185017134066661870151652990566017684160968853650353633263313165405065518825383749582605384728470463484896687686178725488514074690130732229516635832567752809338587850758998455926498215820544021293206547237129584406148899347046658911614627650923176467004496773332543824070316480428177374862430081194801442936883350354311698732829977667021725979906879413060450941196218406543327192989854518115451376493352791718756714824737202530860485422708439392414747244785374973329068886130900878616859890961678075840606135337456283443647821224203861158031709229651840423990682917018002441698899153729815810573802994088102813621685149251774689108300557808088438170012853749473522110163814059511176723013236446548686100334896005361136073856593806031299910190768416910833765072293572564053015731353431779908783562560683434583130514454489405541994815704655189578779895211985746733695657662378556006511290760995798618869252233307417797537539337141719638953985919718528088590451414007677145433858164084010158496963072954485186512859696898113337170092560579845262509342573897852329586314354808779835342747901053521126019009530093740117464566188797911125767147472772420697871850979087023199787324783949767661594731290070280830021474810657969895515278964494007567787803916385016685856092232361048861689878641833371955437885427043721212919757299122912687132787637641539643298208156231252107389683255837995688903820245408853441901578348181602737169272734734091078523320424335396849914183390991470886364488351167807854247194045823313862073098245876002961005036728388408003855694703138588920027902089876513992672144420025049167241307602425512507850696842545036326415998570314858610101700729473836088391513648525733351031835379837643592437846554678276695072490453918816981424015625000120353251161605158137183608721843496584788924449815742812741843089785947414851346255208060054495846456487298340278688351316398607538938580365009666862466620654989495761396881439501242696828229128647587029004741706487482212376289270229616253179132042107916962028852107098533813442709776646784367427958810019276911770612225621160499941185513174015662894096359973016809948769390305645629174331038345478909976276147694043682952556825592093365077468451797254921206048854304065776963096461962144247582790960765263865563889718932120423523773039612012208863120979666606066819889372339551492060517798819288632854772217360178578844578402069984294801949832382695722840655598103992846449156217051139242026660098779205362632643752674686996683195579578824659882768583146055029961184522419510640200191598073516861309360848330066406996627069534739978314118338521746303996528885932831775212100924844071314957443166862939089946845694215244311242676130699590707085246775143829433530034254436829639760216468060729610913752806492000266734259084245949603377542327734625423936131734662420109841903849588501185552238875852702659924367313768017928738374574052256916268598876704091975442833795697334239942958220995288783230176680878833575373766109955477800943316807424893886793136980969184105341283871888850679339595346710103605421215675555281455022899609297998769591743902574856486640967638495220355007634866245551326397108065032175649826204784246417421638496826528407306525019081780993146260320906710328137599944216981385806729543340709462580973687591580600135666260654389466022228699573314457288681738491532256367196026412777944710201660757192941690778783411141814181945358281868085287593099579366946878324495693286549183273900418377143002055187412609504240894759094791050247183289871926639709795056136679567365374115986976770729846999005979676865006446982988110123896254065411636312349881100085408836396516712938364131032612966194556216898370161516576153756821969436044685264762978639127501280955095609114182646355481715185602377987663868432034848672118298183393716846546700910817293091534932186786516462805191622587267703211182107635775961497200447999878393680761174429092258752924997515576775876851877679913383044414598837474021814903266185907066913555415486754037103619734253514785256571808635695804222368041315133358502104465387663721692525598637550549145436604885599087627234055962518124513140189555760993923115806717729960180050734432369189683610909675448667712609586254177679258348128189397947911347934589533694870592538872281569753047959794866671946439477477552253116539139410585433655948333378827305792038762179043849079533683007701389028782565187172550561394395082189107776530385755333672013643468059618207913418177003485935142924054414389661630756689288199535890768941925589956046308945452018486929741953581580379291015574505779546006119727435565073916785509892627769445570110593790805412602661954299465582210141834707241875038721744604934214016728266211399741878310394891984622370669141816955218729085147357013399247766754013523152726327089139349374334768083643424094382365648006669894419531700666415663211634820566324268362173602623036344625206350000883788435423579757897057411515739753879972260903309397154292489723819117198040344626084123546883243415050566423599828963419551778264086051397675703836900122907048603332907931145389881098951544956236603403805125950261384326785219356859749958390325226619653899455912883371730953880545885812337476856207978857382032187410886235824468649895055989767149022699322883880563793957643153064813866549265250694565712045036913139815357136197775160294115023456316581972225617922154640070422034955216453595015617525304680049083870548822212604230748529577628675981075589855788193192887600065074118134396336261160145234141753744410631446165879356310120936643060303358900392434599286701927830310865672827273454993199217454431220537453491669524253795041146733526957936902558955237767761192596965599358363714951932923779071784633272759971393516109547793585451768235954050588120848173211450931550110738327802678584216188594994109776012897228513318913500930357469365873390397333768859972964843732663968711384290731394090650788041965138484297868942397369231620049592462557141126234553463789677441405197574148355618973375409621153591649154108212845687387773493640215893039036863409646455553578991223110771361510313482026551102376603582250656142360010670394895249024045811669989219682712285335997764716939582725607741920204490731206250879411093058172309400667770987762370168842146346808257211935284576684302059761763032065090698005823768981428244904749838367349188911200034373779885970832850668022969115986649588247772439250276857798051887744248435004638783826821091307700749267317948897095313961271523229566763950283892027800250150366184431555149388837750287009740774149452150303690603754605042592907535888472004936934831948041193832601420478825750846883957421873294307688371826263283875001686230504062765439406493955149397823468183272690227561192864480243138817813402293044887430041003548861171586253430005417272979713082089306381709651278387970307246103413451501733538257686536813948351909817312133401265181164169569460652168739034315773181911393345391832554982805819044932848165691121053132342260344962244917798565542471268965992030448180334966249031317801690302244149555718619919443936551525760895530322022572223998347138209672896360423304982052630518545995991265631471131375432837748195825112193555162679550606636111475801788907146405105672018090921785479868243592603387423589568986007181247040409522981274368839201727986642440207397193511992884506550554770988055944014236114304228576078783327298297109030324833463097625627964303720165260462904870710215012986730966169970682118235870079221005651168541180335863334671590548211979127130847936914245161227521669365501549343756632300221221548537589592586140473693145585672336619847920849723133962806576413351336824005795608340860869129140646684565349435005411448675416585658820006460330186155780925749823277191548219196429088073333267221171405631085437260234516070253634823896963142784927792625272673011491010456250198446149858617141083822856698175968910088664100686690743962090843835724757624083571961682030525994092306691304071802038845392279902789952692685962438707729709294156853831617957730283815037172476296136684424969510710806182592070271050731475445157021975631273927986955899008265601024518427403064289418812515513447134156412175847769210135554578410594573149152057047879523635007767874643903791048269944009401334180498484395465114228660809861616545536327457837032966123431817545445580088659139356720104351464586334822407957920254455016146432684778567992851436768576239639934074142483521137064377591006602109017672069115080936223004317877114081803319977265559904548432680624278683334517070405472489027546817211637927291364384085967964388958177882208711907650927339794318254773349519504880442244297077987691897222775907718270627689831184268599942924951420858179026242253239697716383284406423898963524209854199017600391833273313591502880739667450573922777033680890877929926680841479250875576286998526397406462907599830676935527877902129880791887958878001114429655250704275413535633617021568951433099287450242404077004001149212308215258247310797338623613918086044109291861263003703120928875351889851257492593220726607598319433855462395782960394231277523252296281977286850195633987689673978094021813084248126942077442634292723096928883808611583002887279607863866921252382367332021974488295301980658873961097662833869065018512385684044983602548081904247367228004675751253173861574727001744362111254888272260641161945777296228339509297241016391766382554538981573867069840111705595113184679643819280990833079297975465600243657522144646782224177963395033300189184906392250856675737161708523686166412684599934372289694105683357007880126176117251695074425743513564788056672219895183160104612653738889145201625452181148893024189550301888072156522045204894914111912665088517058519812909100661479241641906311636156731258316139073998671614018733050195234878670799612494132724550069206317051004027840531098640053456770181951058113200765431040342629250844131938265662458700386988807608303877441866479527889695547664779784414876518310050530337145482278854604231503909071208707155583612080774889136543704892425806007505640196044388264225480986954196004150630305749261111724546922332446116131186188501040871629339402582131529120190534093892784671469637554879472287561439904542867928630414908210539013871719684103128283261060496037448981599081564704462763788764552306780744351270329034783036373643936715967536454209835002347806607157955186000164141922006503701431156014323365924575434156044813859580314881770339084651536532370722507023459876714460374528894985964615461148122176849577110152472810693202831007276074590837432998049159486892916308784564788899726550847098004779752039457132383441747105295694022054710262101282991709681339329212713886939525434833587493509635299000545998145713423829641232554646008572901625500445061593312983122816151884409538163106676686587931964686798010409133028232111943624324988195810384386829310637085698775127735332193969677286404031488657422416515845154814853047255531135969263456010864800638290195950872340696280889353323168580286532403402142874161557793854580199021632422426457317734858586983414580458884074673069323744930709502798703349934838670702728264290912526556036619002781515921074771921779380535952196656166090213315442965571230004220610536947368847717603013202762862800909492833894121460970372875049741815809705620536302066497697416044534944990958237724546964576863006720319627741454244693331168307810799202890670784518477607763724662832761916947905394748780011185253558315633183594671304156390207366238293034150478144654389926346969936383007028786657941289006294861405681915785845699679942158325779177778438720159290932550253396075090135895068311065240524359737747273276007242338068547665704591123399032052503028755123436513081393071510964497935665780428038251682110912170828319330479624165792386382466655220604554625621309114166827315075620535476103766633544538777429762411505571591843646282400320310978975745453948522208970685473445529029931944952544967404419215573229375256122526730963352709402061209829975798697720601715466138222968073033290805977758796323130341906761656278809662426798636704523301766269064478424251895939932170835550031805104616024056436764256040947743694014009826623765795976595428719627934395076660024109848400278023582418601285752070418652809385772450800359804365231298937512626389427275461317146738215691819131566530868130865800243276244929991714731129876712308915871589645213034089794525802749706408751083818709920506012247086694223962798744104474709330879084655265809304670518957520718671059115481872077430363129030599441888657461750827236000940877860296981186177011262322302868382488208091353271280530655255037732501863081942362699441323245601557989962970986590101355852948902967583945670233271932432554912262022967239240801236898342445866230835128599583568045275822061636280851992543828835510455187611625326261441624934574369975972948219446716352555494341505844392109949440218011906211920482382891871269961774137751294080137468447679740963548458665993997782918415093388110437191386642045244106854992565541828895687039143194668377167581428294965241265070442475447953580861761435739871969002319463143600098913229712135835602927872122054686936830768039576736841406319679729334055047470454065488544648362301634881711140480583996187552159814011633096071227298031940192350730213051200489351285643179284230184602847680813185288600124334041267084858741711371580954133015903618962114795659873540093448683428245963724701871856042549453169871382860286791466887904483459994525332867821256757068885558705614830992224725912651112108038515421877415431029740896707899014476672361268291414593580994591592398846751837939512544988864042132769391997697978870144268659872094893631713035572849433641242504377543130466290732253673121705127053986426449704791438692613769036795204636679633636642558215141243493021912104663881900560935144194632942645534598144317118636924182312164530261011286114573439842405412957929410605883520806417311709890080795355097246964583838877552707135213999458649049315077817099560130463360204376886709494245704998302009941775257727478043340835949333028133232785668271026855447492981635075108886854703102220600367352320380777988202363915263360933010786746838013984249273798893040354215253475351515460546145321131496133286760232499554098590443660676562381573665517411183632973551597192165613928224867075644688087769479048286484355807908955607078177902885874453728205223737426660303844894272206319153106998851183008404746193883379010402946079047469927253842437633775338648364826698790588673849220502013086216366686643401280111921605966877157199608625336861533738838930177160380961696651715950521843315032407795376067086154651258759949554708103792313116073149206243489748344855071934946532561263904669055788454941131296285866323538412357026934876551636155158473920371086491889204762764964595887982391865825952641264876737579809681404214839537449005647387156609376530005152734080854520733040703321108434969117020672140841481817182343716161597947101256869258756020304530898850073056180157109730289602257424632737178018101485677505353908208889474888344326240431442168568377378325045677825126832323268781291235832223767971643974971699541577191097512952503726394696653529203173704413007698363537171230113673418116020962997910421591210515322328529133040532162102201391851872499942941430189893107498614149499216798690962406347029827906875808100799764648681034187679361803397148028069620484708182272403308448690237168960873383720093569129130932440860382687358489475488371502462938877364782451755110517525419939439483659734249275730461232166143219358679186585361296260394341366026102929703935697630396200017106934466640767862946891710955845022691790456637240206196028706612938483715603666613737802723443119415579092366387820185163283573496851974096823498490135333781165217494720715920029449700056759025745877015621593571345272194821963884407069703681049884952851435945311178102494299995700557868661106099999227693670723206980918461599123214264399710501384992568591104923179474308526817854712564712536829696036814829973310179700743816241381625117318267463209318877107756446484951106056006187916856459971913465580990755329549869713436525617470051316408639471473989923702441882277934697465106181947464393882720084307637141238786736904867892801186241864933583283078670541497573673479555727434029175965365228479993771937704424655233821320432285251139561181591298256360638547959355075566590605159049671713317555574452236865204795202613258434334344296387146769787494470621182444422565781501930825676175679812396322307206268619107864069213914158751942917257079487081824934909252668629576149160495711238100237425410518811128268827797940737054942992398049310262829689376627135917866130152846083877574650182684313504969839819535779676414488815220771363446776741212458771777838258345218103569794250443510160413847156012593508701008928278687088955257080028942902100462182614508436048037568144280692712131066667894585864692068425440074280721591032510020289114470667414831934460397539422120202124000554962718792395663290055930179268653394462371528126294320576991022422719947111605488491256390302381751935037024106646683755484993910807235137191901551823930842559684203286783197760759511297483373089911905639042890709033342234127924676345082799822439919112174281581334266566205155599967454314764625397762540598279540166937793542393247932003619300405481486914734305136005618194831031084546037402527366853470325356446693468426276305757631063114476762390516189504757002708232974315091752094995414778583778815384219477610267427534008138147540122760663496963155452286924712070046138702021087814016430383885135253819782613196409937408100256213967265492201264988495218357087432688437918757753248591098449428542469584320838566765043812822407826462845632390884763472739770451996669598343664831602509331824437333451019561409688981365833219057924802810857110731105740757326541464600534399738805446795364355369205447001622353376833510711084909747736354485134040232293341351543521833762376787119984614245094860698140842162327221719045455764245015107046416061743901107915085297481367320249750922218127527629364446067726755282952984951871024959829162789304742758020264151685324111877285113983647000809382379555654714728792661233244284770220180944920670958030528239763026644516644831526988638842281837619381751615932902836671617012988447445990664593593059817921802720648959684432351520168158942300841837217313951050596894504002584493537925139562288086464176132947233177237773934235367516346006812487110243108267098456277125048543761563445745599159536844258690242248863442673630584706430654633441513918856809198866068696101496252802035615611718748401331462190155675567302624492922468930869359810143663321356049154070022682615496868172584297271518441200098489717549411824253919896534605647073841880968734471230662493290240733233540915592119347165948036587630568784161316477031113750068536538012766291414032593627545633442682451305707111701713125801136601225170544775606681954302977066529984423141252996035631954422026679306126448795352902094122948524472874360774026969766200563763642437112647016070740286695814185415875468653189934251448464831991773469087751586764640022746825592495880375577061872006704042910984166373927437648634518522052294402050660577895815474690468256980521184286206974986531717066811778803456083358375942402971616532697517333773484481626678849276843752621566158799563792658970047628969657070564959609008412180054147827200064235595677137793525699412418808477345737784913081238846075423823967089560425345833237387576594148582480988614169676169864906963602464358275366440252116029616697503456689157529629094902503656890521888785270405124142063168798330858867862739953072118241296736140130330572472919114890447492850234565322850155968326199267381542924097117566210868275257565543921865276873496814503916215855760061968114160888782956212328493350424176956533260909699377206057342537827227352125150857276882190414848035017067198434288422883752539539814079091343196417996162077881806872863772537502059335394175333759931688638983594061739536591213710991155390612050695974700415331589664759772064896343284386345371034255404985598392527213388916619373109130387402520724392200632428246055841822032296394599826472774692534646339025829577207468375487939185664356667086397564275098153545161978236041861691787235917264128465157196626496850938275897117889646290472308201019432222134906279141030087960394033871117592782638005031386221950216098721465140988996192940959378820836207885157874952654973433530929868764926969909347100865684651744035137909292401575673123820382637998467249315262915080241856500564953747792123016955368060881165471041969012372322599543182832059904393343398097514706195152425831258701693946601162292735412977067549870687660232340487813714358198590186823736365717486225092169652746634273655727188579212522179187372561695425069882111270170028717279974180505407264022949868530582769455572134231497705376002646538842476911733996135886647303540418702813460825200303707561552411121778046278163356591037017825078222465628012122461751398903341292731315708565282670296701616332014888095851193770779408138517315125215733228093307688448646686912725314438517755644871439078128297233302159524715926501908345273061163091323573199367711247928010495121295754660316787638294097917440552048739350820951878734397018279345689229796609460154118414991278556249629221727232524413985765456464118971030800575653108163648604616106199377439094544151693847918266730863499117237424229293555572881503503272015468413552939660296281903931584087055514781399249122070805571294845069535991356852387831983161632368196426709349948085371393102411289205224996599361241471624352126108818535283072590974502518247102154583547508922139671993793105984950726058527339045811252726788908546678782810247839444352633766326541408286564338835949941505428065386468419647023356650207011376758779261343362877919667766490118134301204327854156601038299166350156098990805931028404923740977730735847846780704429777706278900710091152123004751639628932795258307793947201827249203857408581060089015475381183041193442938034940358774928586951374097749528316235243024662057533689559715272212119738802434953163954988952366137116273879852974176219566678709397705461608055263332572949957420511943130120520138449146580698948765302257739944686358442892224649369295467600172801427232971639553142336200393208160913041210776614530592968950596652956810898161577389513702033011344037227722229748438851343184484708658467467529715272803718560432535204192059944468041584658296793908526881556493279332812266451494319887668250988415442206446268995420384698096570164884715687964412355923142844977599783900069841533478490110451251352817323426395675339270204495458588529464542036382059874297135448665826115181514288006778922277729543860616187965109935627179904383223345423142054610171210168243240225381433886631628639973653911946538336399810306653761312707941251526940564555332701846583338383649699745133618687171237492410759217006349345304856537189767498066393965756573026072658796790096610203431224428990241377179554133123752523963906970087739044473679638044841233962938444114986801458067310294775519983155448864908137215448229659217286954881408012144926433339137708922294281256411756703791596427643489704706626388296016505682601745343886970787398467933156965980145557332682066739628303164154833217385140248186420449178631583747658117859931972508620583585932555570160503808104385245799771159336302024740485892618426530875013568897727745668899237053805430127802375035050177291777317722401151950712451180589659484459218979962260871972672872384841859024959471446190037066720548429463064104753548045284448181536830553888726018532778352025276143811422556242188229156542727293847814683951131528157570791437765729482976439212064527176231767636488185106809350793079304159734543692348853817546574407684361113067029621333744216107176002856683596137878275247486553973230254145163257977615336324124159880684757455003377675367750539658734211169345430134150379308601051651040528387857713898711635352375575677660301163675476650236616306952870890937953730085890974714111940039877482642177801858140902133654756613416990523907478333362986431236329940295675069194870470858196995381338604861370726104731588939162300839500462685164601331581484765626079022774436786931004256215201207770190687259896059567533336022671010449940928545116580316311238905563203319981088120959282412635035262478959964961579129917304337002894733029342849357228280831761945644973720661299007603341369212108287552159175383400619553566719595031574391975947939850805121964738412696233669376665947534609963014596869938700606323954272822950865605406988749731428450645097499839136164765853562645554107667175043868499371087647040173293757087966297004312726187071961079911988976766997963334448338274617162627801047667917735593421980873239222616793397642106987848716145696887629791845785528599052797562252412380662620833392309945471897185291212863045803927218054174004801712683653201364350758734410099276241659873850099773840983808916014061222433368020376049803655684644278061389874424597961443262892385403373498346052056168392069970507841652605963279650474426021844179825050574333781688953981241143157196262211460832341059152765758764196443259740092942298916361328355163658426859411806317665775315039504831856550677581703454660197012364280278613918499206430270366306136737296400634970707172512268907089531950088352299471329323475759797101137836888265708001791221054337956997837693196966878482754377112308681323597487004181362497091040541875020997658040450329618994436810352459707809009020219418483488918893913028833607739109520409855356698992288269478153902446420639279140927560644926627583638069312669944068139900260572613505017790940646164106602618119879737285113545726202540991261201889736327350024481985527843174857024494654422276608058788315677129658484429367535072595623133518058394232473413687003298748771984840125618035028301832633026661256202737203533194587237927968136099969779080820958999697837590645366021191980713172942162898165789145119044775841249455203175727601182148183979307573621362985445697382982909698715393810087253352814356413855876213673791237804604017552532625932958286363221225358011571034011045325859596295075142974516654533161570914885582705462830594607656645928096034745050043463723454366297952861422315627537178001602286145123633276003507589578435150951621603967837239487109475120418536883064420499158174422076811161317254937469733780554548501845555928995606891184813673498902079640534696253674191849440779938462564094274828591456203280592281137864166098989665439825935200323713697399027938240522371428748308616109346138445904822946097265129752654434255566009960627774341355978231398329407019517000651521305672598542859571514195727184930804253062369226959464325128405858236692772541635962348154338535063484557401371923843733385801258560168603457189170739813828699812252085870426376915091568991151259138402273792626265706935066860814384500096468554711091286172390427318422157296556667299087459797279371504821282165583872101527303446092466441453110521604545799553279603110551526553359085261450129069352506325324138909101181938340970781684413009057659860927901369959675559740759000587064246802999799496384985909076092158515209328345755426500812116113044972755641673580829719156079098844453117012798224210999942611452281741062930515746242078148248246756895879111210849881313101078673066325587376629954782290364645929260635987192119385761087784715414330372573044895452824726390977499540481979184403318517688833233960106544540829389184338887028341421799458402285792569910923945556080090413793064985545926433294334122797622462273226791029227696690848666974928990057797456314415101486777108798664516855556719502260817786350835228571466251958330225310857411705473601654751732894024892470252146268788432312052120321096298718871400087169892124444064768222083262006559570515900905181838386532857248997680531620090822025237919991188116680426096594255024726755500224123201583646457010524439178138921897492344070915079845881389980009798327773267767435594923403328830948413665162312115350049594558939017040885187995951376733833381093850427487664995762753819118456039167958640300288276919275761471547724631784210359310594699547803260257856509105185003867702753266220840448207204322740559434192602816938866628811465508009509557589129100523925690932655619224993793147020173086027884549144024056359885175720462459935384255549159115479891314916432648846962968757185964355148294187959975251115362474278322505947420982371551191435651723004763918865787391906385897523057281657744676959241883851427429781638412862272909021374838013865951986146498765773826331407388168521955317190651426035296091144149523882975749360882243431290572411097371100298843668073125026449846308335772948865771704855705249977622114814407983403949405975915177481696520580509928992057941369417068760778457584979495123231829713268846845381677153493002916837123832814045155137896049153599637256669377363596912767966144517947629062257192342038313250345866834603918468807360726135645410683070882192380141820254105491684398430621869063698570470636283382189173147894515609316717419868582950090681325530112207610286066671498310325840984025217937031307904813628072286175440081128114749659985378449600184999678526273019628575304010572013876832672587371938264541572892674593541314478169453763933699099120954897293179991590791508223312571617568693124000595121985374220810225537843769686073338566765695392671528972183767198542377568565109969670558735701965942607911132799961947395890787857793058177231422531597740379650462809618542982367008056844000340623962278701166864812337922731852774281568093637236435420623058199642798643782202344941607668319031493900442752604188381461512735223979954931615734766894316558188184739551538049136609965832227930599693914532741783273132206045362704805337575674834748799259705996192919757342021411566735326602502012457531926575058867897100003730735539053164922654331424904917294384783499244819821427153922534542493891822019215387324554137511769259320768342337293476015516792246638086316041623765160668889298567332608986126916796047145485257440358140550752097734060633213947840516810569500891446993537073061435279424863053683983297401921195877732064055478784771530555369840099378349961356048241090466216160507013606895158225956914974210978946360408890196355070174399814731067267804211846787799334429236484374750827292975223083497178086292375950280283698842611149178349658611553784975100363994254131958552832408391945332238411534148531333810859524175783206160165597046725080846593872681384954666999616010245311826455627827916015154169899756163507110724972349565393520865919141378109025721140488970538452364272361567122392914426632525829001091459261084413945606330396987168839322631126401830036568517805525641870828488785201085819375407625634597139936950706357921485018043283947841925841349244821870752593710121112790071875439044483461691187488315646171409748422573127936471231243540463723032037701457233357571683323370564616993486545072911482939035234281086211979136235641280847362561948523557299380933219779805950878546265028136498486634883432741206991904685296860983433089352331283401280644802644253779553626050896713205793317486177075906916423576388078537803116327217302107903380475720351667180579923812806578760072979358910400464205626541069795198745706331463108138877372841811973279493968833877734322616648516592081545981698112116403369844577514341645296307303139483276792621351957426120641558432002529169673676926879614157654560027422062620611611183063971658052306370950976538073981954824533168069589242330163827499632329364471390173123440189010771071142219361525372605922222535376949360105309341234375568208816828286580642043626047248364927496544102242660978204566407514105461520346212615011576535687732849168475499726265617723922297452027752251773623589279709018846733095076426022488425239173848579115146223099697886263663838830394501739789509390122632398089345989213273956646058874447795597640540497688016701566999745385259178096194536053283142324509578167539219070768568158314974985792638852656529131722932736298435556338425534319452089257219731168146750327381747290048423604572021664457967403878290889416913415405503825631940203909669326560486953509927484814640073037145501342116110563494043664375757324959352125757217185469923417881325357000574631773216723637830168393918069708466783595609374258875014142100145326517549815240441900248641986846998026494011982151913622040971434033111146158520087179170476035504850168814811037375236376901985207519567692687805335428660733393793750156111015394327344305892209473476231320938283341160514643434722001612971084673698424170483878889181632498775507361987832519125493205870036251744065459327295528912709417970556532351391021220175288907274285242905439322115185421004427577030115511563380053901164271569145731700927016217030223811003785041470791054421281923073823722252239988969595419823781360641441401210627991573340326085623133587625185604289961626005018874353424391840983574876673637684996070490889728048706039432800814129065296810642199169331303577404409742083861538378966873609864447978782170920299805139527145009266286884457493901056720272634139087884841339366582215769262156091998323476284613433342534380666028035228769052548826557511385068865957562591080508508608413419122541708800950898676618828049983417719409479737820236459149496299300531257458848550144097568188498932432693077930077704347912157170254829928457423782174218255009233051220846268157833593645228563281798065782305687898877040563333100837206428870253575618687826280790348574182656588725528388550046695039284309658707896286962988898034115565815738683096625692019324165846200968408928135094055405917590228129628969350456131007467323808907071280343075512061961714978574004685363480102060294466133490010670183764872068103935429093152975043378985766682252618509189260548376457101663628572657009555752660371887232041305554573596573372036136504065037403979910370221325535895698837174377703595237218212020683459459376367344880366642699408800413376975082364900028907454763538459481636263939235219965203711789810273305453279545749047538045979630416512564059423808297280190713432299868531501711492092581766446589442514662289887119177088145730188540141984764247841300114065425749180327126134813536818441934178648953330502252296334878736994387329506918242438731917009577009090398526343526054585443132249743685631815118503265215295551311393692041512517106605952489377553152088667338933045364707830774645760166948590344507779161854899759974051226973655070443315133648481293071402256382115057375159172314171109525976809107632014906076865839188555559004567902022397821841069522909270676252190427147918656233463164112474979858615127368278039070019741086649451429851290971774195080646821914520106718399034126097405917942746159626176029662216231044233984782911857610307225417514651278947612228090763145105162999458583238321289342075599537198860422674326327147090028750748532681334075472708982804741147909517754305359021091635918776275849973460113819410944208942195730637860164513426673415690431545945128375825487598667629810289827796477570670236594410004383307311525768665873779223563299532238456078693262446530275592664653128110064483854043683444038332583408624774452392690047840933020858164642560692683154603950644022429587355191011178352450512116443552134844286708734760412751585761561275529457038345732613591113862817732099353542038958944389156570832565575436080253777777415038395536993852675736389171059803928051483870178782057250080932477971086732368304715585776671756193298812472221875608821867467627568888752443096935396181119012550323933600802581379447076317671650565639264884472995321269653981395578253312093236989298745022763490432988957529535158816185259047099927753811662794230757776344449058019750503689277421408320259620880902430386327500102069253574343198008559555628636869303300097372353818973644326087143377131401718865780479815085182913975695924661247266251083848378695510198108708055796388308982774288849469465546688571550142561154830814218158832990618973956571454244592738255799933789064103399795047605965119586653830298795366437353232268702383489576368233474861651402284844463180056384122603182647398284850502147176345013606301259851620043444398500254054147253294746092005736135549420461220545205611083174722627805398466844894485652817806483522625522832906240212118995968232858945862030655085033169224991600497196358703072393835048605834798189521214497661340457234906804726325887342059036795197402462905912842594454735641162424324335161615755065893206055408627324067719138182776124494886443807636635187548159279966979143874434320874132701118354896995085552836101398998384094601644476542086301281170135322795288026749036067587698929679563093949271711661008192105257024607716713819463746487193402305448768661365465924646427567643028443426739224963799132329410934412239845206655606039741264705596668482941685856693847966785733633759809383876543247792976713085219731024743359494166043948948429850123934232580136630545483072431124918927858077583909335073048964277495637448198477703055497552510219909791863294275704238183004043450998737242626676350844652134529706926960281886414334556332361101267821802098581528231995467714919971399317713283569212006081840057897236188885812144378942499343800924360529534900239772874350724498615109489958149070327465532873769037516518385197779532380939684763309251963768825220164428625330053581719062483697666504236311400852254130175715959760184278970860120812077132768846093355252694592225021481110146498290668211508323870667205298900143941829043699855658189540056033883359256915619421302141534364952122446936103991206654834432596277007283103212013025552381680248076264725525229285082842391460888666558033552173821168574587891954949750120314307625068287004380668329050809897486651048172597803165294689161523611734138817007066626677372574368510453751578668540841590400076882636491348683226187550095356643614113450889070665501823366740852879601949199035975722693966101193675685403908250059555534702276476175979464063287418727590779767090494811817688449996816121880698429138569052881755055850751187431391888756396202575664105736499204066549169110567397286627116400921443892119350822643436266194368331055532603771971745578051101801003288218304393961386478545813676189903235678562100098823116444602914753032799213588876487724416670706769835109204768701990888384058926290783312603724720140900017390225667054343065565513011973937388294763340058506838431992224366465865007938551338522322946873461751397336260421902437750425778352952376003936857932207901644723811433207455749189827343249660767345820940916683149658916906339853484948760306415636251883479406675824805231233027071191443857091310472101458022907290551259092749767701744704010912063266605141755622010407465650921427352742447366801313041328544923010298553026519087119410801026811159025450431334634821951470068037632430243035024179833046501491616414945128804958042113901275637081431338554435947938473475615315185048397244206298997118385725980274182016423624962044960388712794352642874817988248180254284325756543173956172197287586357741296174243669407718291566434814824221517996705685494597417465471457867909015602845340255907681673744488369016962178946921094203004960591248627718275892401272891103837954060663123983864125064658760819745611099419470645761444617719451303124036734522750142712676631408558958268575972370896048493350147813633544315049496021785189448226646427783992324175082738858085840206208768628287449964118416474620789461991145111912025217662794296449711565901690309930517316911825140588723589586701130176906989272665272685724770363669170021820074768153126778380992019533912024594387601500564831002374125604854975286190336375956255003035213823066175399219565303951911346918005776691679677717562665445985097700317913933565937142537676702628922419103823292895405871700746359396167601678609511414592914810586102213983135040149649602308221434347717136510103878652872120952815743174001361649771960442509937482966083683266521061576050696051282867459228066375892238799550968144889798829607705761723287549450663986618847369544182980339246882588318175498918408497917753464728002037818552530389546847483267626464818319529337659776490628123417091021522276722819426171800195315514195808267837472389286129742920548641618063711719072204641347018004364636122831633834606419676569181553947242875702592230134163746619481877545671772919539098758029805850291101565876059378493835179883456537647979049320848112056097185970032781110930301867834501349763344302725665418836116864733265785199352687509679264486676248010972183310713572388927291509672429210959270576142441368035041423805628712660006382163041964926488204144527705477534612191467522645999323017351329336799182872117396691896357118910806194830081435042586089123618469468658385423835602624339020440579059326898709446588879574343078018916472660527383191003939405839201961175425045085237846379076811520522048798995063184167805586021921130052582915992585769288581714506772861098423355135019128361062451313181202618423709605381533321093753312977706535640935126513168535617440584691273433818970874140329036999811857411585408294547923885501898274370398666738040581052732129697061140745850517708959018101513207027366219846945898778692761277486419676303430074612050119156511316072222703711110723495809120169494006080780566875271328683822563311770735098224492281776107305448738770229403561951778490106284886595347665419075926884425066556566363296442353871519648372096251427238692757274760795086038941316224605272079943285647926694629352124865267080408253825706614702911262379994938197024727639825276509310283853636645379446807850219258463327610467384258161423105518482203188828565353213289956668177309946460671293579135639460262905255547681461885395224892790622037713435437314054247154141394690252902879887628661642871930004415955181497917146820172377531912949086374345968699174159028144684968140929487338559870486779714682600104718492980697397986581582869161112135892302659910847202784062982424702844783313139213317517743932746281312306786635770096175644520307169996023044804035857237983529028129221184728607494539951596142628009379441056902419903489385792811662361064710129242539639111753324404050541316343880825810902008485143019684608803780182059594523316650980316474058406977509122725842492401762615272416648083394003320559890431351578426358356448517575817315625325478538316126735170747798228548579226792853073451876908967996973896233433592563618973340599505920674213328515289536823558762922367587488197135908369467804345771241503642863983037498751054294341922855723950573094765718109157013438473836597327913892446860183213703751969811337578420041846678860105001052878915577397576810316966918625190508532783977827721349514724098162925047433920288840339193945144158931156622112884507725579083192720011441202359858642190337910291027855140535400472854765376435621946111994622214802957432349606966656154102202266003567659541186108141006800145363782785536340523608114648088998100999948767406587365498517049372083942344861716090267163137191035464566527645133243659336701149913306342695270321349264413179244373273697417711162431143986270522407542955801157470523846005390684372143407547432133233449916552441341172827116391623915504296989442074589321748632640244035598212525959354818749714953998199366405622870691105478953558820155779141473980721180282873949593219552814117432619654825065670729364787394359243419974549112871716974553139140785415363413578562013560531236536546935140571219433499813451069982198101063613791099352214774317492896556922667862088397443000697288888599425792844303919346394156153701690235020068118195694734574753352522938504839625760035628399788366078791840628094826915129915302620950328870577979851600397635347221153187960353836093834579582872232373353859320197778937741819546377112769704962170904050344379706893725958615000430284274670354311304050114482803857420559732077803357529902787443113529015345153849892702339731503514471546253397544524568383641458435544180552385924272136894097526741918380174845922864050443919911445691441378777578758378246022629816290561513220560199642285628274091089744345997390290174509358629909121699955333066219736983888209434178933320135880071910510467023391791264651768154254392958401808141668014100839803455919343344341323343250970599599688159552321536768925560302296920455413410733346226911679125276784979960115945530849636185310323130161515392811394798557619481167369931212791999173435412471174135494580476678115780623618557228353911549418517594270571877733135846763920585553403952837256390671148466963541365160575423081991912093572529687639655474209447091894298206615856446560277873821558048609432486262875358558057272782278849080017746664697427676447013095889758746799448234156037546593065000070961588569841562942175128553660351257414648648476767684656849610393913099501135167137162368679525007828668065527055624088414535093532248146459590825525624937012377868796780987106002262034397984234213930838164173308552859115957258747728424571898365191696859454802581865170419401327625071863342851213141697211955140565581337855497863772267244643727758233914845556859719262950321663850514951612486436415517644868829082490805931501783974073615498085573006845459266900663972820295741295119307075057333995905612862300779289439419133548163252048418560160129489877589713585672330296971848265620478073239647466729770008158777320223635226777633274853043142497720111775369881393108315634282342580149578217013663630483572568827415926308203559362046780036183951361621600064411240133668801339181646408383022107694567000060606353697072507559628239269475969778460776970625228673796581140782861528069224455994037892422727205079755403293394651831972395128384814855250647466014380790838533644220867774920462863522114151989045071406080471498710165222687421449551296580611999589663072373475108253374609983095739496111924139026169149186204231895043617991696239557379977960391729675247077784404365386558572281238809837077949474233423940519725671272193215138791371734023403404017466555475910748550364762987480108333074252267798629616591302807853276626716351746115814554366899700324627821396983699273728292906594270444144270667042851821290940206154165440880425465327827378799667897408590797653679784140240136898890964750400429691265668822397776625973361156593458852582454081849982713725441510717486213863727449544392767429280052776553611624116416601080251815152037499324923071961754245781741883685114349164661097892313838610549731010972511377669177461225499219593595053377040079735601441303563194103105537251282539155755831915934373205446953082038196015939218978307559018934589875791684825863152425024897245393464659770799739799439303317563516369688455378693918713217757355463625648741644367361295841234861767545688430107238494430038127228024376847055208852133057928907094699606232830676943963282347100646307435111277366514872304708906944019351742206658124144252377870173614341250375354078902956150064252060068080900871355916531195867646521937539040430114374676140900575299068314626596622797968682959140900557131549006619459881575231240935144584066396793796903045593117318433923864285354081876919271300420933536731007617903481430214354266982093705706349465809249898951419146679631530123900029442022176471715466455365123157407921971712726237363159283815392470466028037968140118722139679176889943324501494055484447948006606736108663838010127677883705932229413149268973283892111854557350611411689433289748980816667360062833349123570676022565570475331099157471186414014809551176454049857076509915671381761677301009756777232063996361203257062122333260336608324680277544751183178750849514279062059144227107228034544903699253284308395710670546860435539427027208618943215549554084532632733300753701464547150948698686218868859757792452162442848402378962946693608881777911711115721739579711525215270595292952347591531580784210902061169581263521695717821363093256373303953282756271355482727846769026812355943809505305635223549346117215475037670054724718914723022410972542010404396908862583085955656276217829041854821361986403205415631168527886836595317808278270686830765767301042230632996086824428450529168631314784198809284469295516587602446862063283922206864760169238243321197407238933000390727516583275754538186538085579497648467045186721537277714837186739414817148801287198935605836860940363987286011394663063352781523092736518144380457923125432933761715416061232657552054236800854534410083911935075585573693976654481224187917738860610821662542698580761062892765760755748189693045463180494392519513032918124798830414641440371300413442092979866301017488143237904504388622525491190581121667000177063751348329815599006572309693934266926071218710733854970041831464231054783545160679402631359215757968440501455622657066224626181482927987353551095636947701078610285520871118512841910110541704233243498970494131140130765922687126280282211016292276704258536945475866723377319915512033439554977156644838262020922850503554013047471462545866086008471392712473804745625040315230858310657921155429894912708525949943506446850695261576285028811372620312959050650567962769289152040002226343608982816502448511212423089656177809899015358710253785913845978537679966661475025675658529382873171866914520805907017450863818079017457689602244513960594104554827108976690400110548747865334327268064198476917990193842006581239610172649440171180891186381954165474964828880699465815021053605650067250669816606758927648611396474484044382729788836110114630924222986406818914678603247638437974394161321655679649969024483097930500500821834100383305552430497498213411251529226275859827441620425640771009732677857020620404542995613051950405595307149004599621367598819249260981552168385596684750616666817185065399532007810815800575049587470533056157439550662012634929814151830581284156129821961054501679282682164843887112893409590404452318720317034098409122908510089660263738417090412134923792608227987669356294178217816754360556473740117452909174761441891610469975317076460050240073510116541309041963313993166905109937898731429652882179210589794649435892366008955210309630407771958352744653796849922983729317378044948711535627391419660744499618351094442426309195295039151695507858243015534349295728720238777843242581244852012896270290945985048864302424751326420133892648511406639130590316905765216999245143242945968394562932858709927857125020325242466473387145389242258554810836816041357093414843689567097085356848989994881006275651144952818446115549979090323905702004110684445269113066886738371924265008878162013477788280303222771649245643269316419908305738906518194749531987494251403230209372135585840645906426510239769409484163117044467345351850758351876301660384311102555817770505627455853761414459264744692743881269792175422863991938908054122244292008519103455440634771953223734243792098052570408129151127306028720858613274369159162509674637472090705128334225620569197078225556702657416039846880026168355693419123033117436260434585318654549365820867017682031536639439940239274798833556110641486843355372623539998569228279423198959063928841794172881655149138431604967040383810183513769406566477743451669905442540799706406832512422927575822774620224869715147413130271710846064984618432102955640402999377199940356813712126948775334667226451050184938751911507348058145793525590078523349418894310344700440865763481376367428781112523164726416683184427701489916318444163149317847855989919657465031601085211165890803965046217586131925871688426699165091736008709597077767812590429152876358102397611310361130692397941598331706746984588137385483739110980384001209453202661574977078196784998605258486256397644497411463028687565466142407009346715815303303095611539522619896450529564514176665028787611089337002609967845190358995749941695065015456721584105538649111141938552226772588951678006386710737842199799099896691642901335070541080566940182778503746700831689471236710622635982908415870740412764182577849470803860644884584224194138086665344168266713481033856847505847780027591024477356512754892238975932454796854016136815916211592886479521705030100543786103628204764622169021412474567906201414971814480045827382383406169898446920179519285153081621998219979300759410898591444563521772871332240118703919338858721784927882428845009387176700353760579869040544720683871490094839552582461914694054065861477116094544790971531750556460330961052915553824626866158621322315016990575557170352991517612832810831167645063813119423843860514481643306493775325244974481109628830994105823018648213115117887524974425526294351485138119387739061180627381051499570355996460132642576680254657993984852685260925747755203646598215583874871178116651225175788001826197594156252710605235977813209513514297836515900279325544733256175459251421500149602970793400019529728087926542824316141732492728579137989712347014328632522457752253857827279841013160442864128775331471788941510161789008572597758336485248154955818455284703880539971159015414393535885215571516269339089855755502954279688558947381359161512397411778278164808052249061108025267916778406685349062503229090492544864225666165625257824267557540099390765727923917863971463637927086043065240331998358940012033909808634972769272712026199204369494270215411669113999965999366994176534973695403341388559724531637323306150181605845729813112676843789136069365139511691488952833184464422992904294577570829243096358146710783144355492643649106261559148750678585849626516642484784455758572264466399968014242761357626383104436680911491723721370653310628358599620936009231853586832181678613025648136203615929140591529279675347903239738246369286858993243607250419198978860457733849469205653274344107164329470567417154675139857984767077169991767518208087117695749676940666123939459094605377898335809434047540349526168411868386580985714305963548818725830630095986084841998014332823426817057301263965483974342694249131297102776544858274773262157732624802824707697382690418995313216360262234878631848966547270925627957049399286644348559545234729864857443706910760488283698203357648606397673902953208043785124296103857344403294136002804618287560825893175422828303126618000037965130472993950246230529727992393957784428803834630712498156169243109621971648461260937297911162257997969531533522521630293183610229216302111395506942407602563458359754171788092438152787500304389039357125661881432845404873592136045169081413772647695279004727220032105439785979266733376297045172728585211814596131643185096922011192860043726958719685938655217647561631022422415451853954894166579250485852921804021884382702858429807972664828153522400228628080099763050510655449806687527168290463413630968968135897149630152429468613198377016899371350567297343700532672111134058402669190489937072172082816172475397958960550949617205568182963057510925219774892472169735639450764693975416398017136080916575058765598176163105496826810284468892961656811142595614133787572468111643260970874508957149898050583490778024458744981008144092619360719022429581515706488189702881059595843325833299527167273367352174776501836920582873097656998436961669987193765918677420657533809654370575782803682766388888278158070122451290087311282648362252150823279284819989125569779507241040864307587651599303710212535126907147747922625294579984975395369185875331439464572197080324744441489480122635029321858670285654395895315083920511988993035488944914948182719717291508124208546046404552347350147128057715151243882059971193126384017611138075926055006775337075360955563824732284624383972843178200416677998051983125134974230976951988765661101389127020014339810126414925618206734686949009734004307326597855288715396182090666693391759681580921285556236762703567300134657153338926457497885591564370292172514127721666518800598869049275953951043002178150213087006554153828072635945237566981224264039171601609464734987005022639581602722050386124693952538280499821117368535585914984246984236735690062541612175976307422437631138889084983891957785240168055084083281264289544755067751668312450639285880481367494669850886719416855610554832507915476292033866847961123170541779600531685305705085847032851917794987761411609233160753751312568295043841522812531629055170208315721786512044949953200177661252067395236113694093885077739802758207800330133383953664863109117602453036948706999820438183983229059063995247437422863214268110429604078589534544080496131013204380790469159581703355176780384156733684022668991661282231300664318686796607901088307852174836217976850827701953480003926492514765834439101867522831069501941885608429334341302733987399338707383350778550184616915896799433810255063662175225185723860353244869071521546633829090503482978344813889342365863669233932419488469428680535577699813749424084391382739320398032510673202973466051514595147466486891844636007675194403144029215188936797015114986615428640720373855732566653446128345578537412440277889475767044366502350695907010792887334726896666819735467846279123710463193780579639105920113219760334056135088075042975284356868104589518086133757575911264041021056825974705017814639454267153247790708099230198016878697364901178206222989889856559659623596028369797612283980677529998297473632167381743941266139552374799637954727470304142922244887721304586890339167226957623236968248798335041829985744163328427869802037345385534621936572893866648835527964803784468014736417806861584117911740705959823256243769360666992627404057168087799679598867543015925134509388923069181558837487946261900962265896175915808878140953355220142598932248489112890683756333983397727350147891571671381130580636810605467896302433911832824034852444076059040856280373840329310671877052726576064575003108349020033408224162017490600966408821279740829357128256001779806610465465795618174445696504050602236303388398050710240554538206931948474225123854019370054773532033797334427968475563052747730401268514138247688974230444836020004676918979548005251408227122786426473285406133822566009122003687778276253209775508690825010060746076901101108303119639401255910307087772915152695143288828925279464003833555080848515209302024137965076243991815082363540074616160299973392321824110765903246279549485465262440962353880438162664667917951434858024715987593914653789298702636230854797134098223891128685849853823651125362540317810652521102777705093475210705254838740283478875050303991867947570845080228465445097596847033641269111715891850502422959965949401378431338457388806137331600409154198158499438950528970095627356341757894096916258268560642850090645162792009116232113468755328760295132773968005806804469200205480210667230499803795079674581072338735060170011869423508424268160676201650972143212933876212670215544616808619934546330945722544246119320951095778497998514450404681125964044224336824851525475160855838139352266787676975386022610865536774555984172934021891941456734686725098099269229636661133835765883776512584479924427544182449853160198786075424427718189484906703714980078895234715902017732207338377879043545427531703121253625118039333702875763380596663773183870466803457030448384743108825213666861470501472235112779042582361560844553537814056024878649112376890907081919651059382527301529298346453186601926605319221902801665786207011830185366781694207401475295144928648261256514604281688390101018987709471340574555661942081860145877731593526690781823558293761655360970534980908209526256443473049439900102677830062261518798194014782274931980052441253854485546389432495419518919623685775364842189100011201980728798365203827585758766336462035621113359047645788166031533523655470890510114386091260932263659009987591083682827131420342219997952570140737040510944353507352001719565694035244548326340347939517729068564289999583982468641137081794525743633122632973988855359131568607420983562824235414343932901728509177057040147233445893388117315857951161547339874504826632879000218618177252825982561107417581950877723375939774924929102443688615313577250639150457153497973172720841791795706990324730394527414071916688350082399918395108691481540141940509902383136443697072820524451193172892919441746339312818805754425772874522549328937182645897267399677339505575067927432488668159928530495722858811591612414312662608999729010118772601329600992675506491700152749591166994521124204159084634121396138295339180312832005713539412704291414443906105360207202384149285108892978461689468856491646528448524191382871876398293415443522881972156185610849845429681298763901020773464165719042280721790265851140305015863907654565058581354088507893523699426821726169982322440441888768329940329560288482108323863415665508899224870361855709128610579430775822571870617797110501379766830433102470294715800543888881653254122371716849182982799102242841780647114420130639369472147359131302064752380013406088161668828369885308542753874299144332353649219483631862252203551213753705189042421141047989160078082824269161253299283368460094758448450527937401464024123266767469218998600903246326494671365510737560098324496769969187591088994441520144225807035799211131447524171790382419687635568075205293706877492438451780881172718433027335327702837498772298351710112031910372636558346033846296810387260393279021743334589793253031274968367645243802887980460196968773368830237411447296747760212638079160894186973731084861713765800919964360778674015826600998917241380071913081966313390427600730788785521283582679910605122425650250459851384063229014651624986529297250132597559077939488529279274892519773013224122295387590217729610290981393833575480577972471740308883933778269584928358773961247852168809398879518876233783797366047861341043919511596371720858757075846181866904481449136081242316278531278217894220915293610585559299434867528782056793799680502234589642864766994322442990482849428187688830230267619786811181214441194750379530524087119603033792902849389276594915996167383534841179739255444005804107125152118973879950248706904975956167981012838682214522114182849629662457008866275545281688309251803286280662381308077559152263835103326653483729955937964880910440812748741302263081238679380988281264203567607205231269777237034174560185112109049049340070700400994142566578760963108931495702569354331376216538769725391420970791451512046107423516567472122605917724751443854928054964318018583945883692825727370045062232973132011725485427550267706842170267158701082161868512843944791656376265532751773822226496200582786095293503847165942442859483483265097868030360479286160903644060542654355841803347352844533780164304117667195089389152849299343713274440448017928893654199210713952325450351513081521281695114043746618430433984033749639522243097722500518863216158415059039856089518108544643679213035891833912344461702748454214722616495052792540641132911846098578733594748016280414825570687593627388013016070782543047288757003944014466351110563009724951462201361853374670237632927625713139219167769322024130498903042351688917382694387158824237774077041400187000954875607417410406537529398649638997920325567665819291560754079803947506710324806742453618566298222447521417963337612122587749195201186880848460461682406263499356350250700831251484170905875596823614225095095054334390611733256631688451199965562183721345817266762237091676865929175621468437304325649209201503474637123041278775825110057512766308467854425042324488834935850063456471379708725582677234068957687999034374948528248566642017966421196854169366158146409928068367264304548530712122790299516544847474118410567618956556612980552083746890878250101644220007281968659997294867335578424915929028441224715944630632232925152327735335535864237720507935847757517470181164023308067576945235489607221481912281074455667168140202863440286870418615395939071459599603707047015102908745890309454695804587416507668119361950312833188988522178595278859488794557516347343502649425567182512724719026987101671587274991192392939807587377771707503192207951414561307454059936395549660958429112508683134884593153818927654896484793627157794685311700505020198222096030135960151851564540924551866063493712404754627452073674952391892829283172214556650715808005921207659859609814172513932205506305002241256159034443623390259218120369358474092901892992265185460412771966459448660016212153813007580008977168412140280171315246380205910348399606348309634742788873481177742162835138251598211220788553812287151286295787329372711954735852871697322394628235405899507887916055414151945019601102937495151439185271859312847601194355289736928627583659639272782456518754191815085032795355616460622451996004029575585252818392290825238409932557737579574336126315758462826733380658724707762002076675340815842374790308194962671253339417731214634127005529160797649875427995477766316269564298164094284266024657053851638300174710602460254957435863033948444029954477285446425464083562676484525541301077030980904316332592531491354849828184805124421540540024898056828167668136865592637908866894254297502879599955465585362923264092381115429356867988887069292901107484562312635068883294781339185322520138741786466454542834035398078168204918184054195314305253820250929943556939343312030629361984824703597183998857122481855767971849876731261612653342999106223929677803790792739998177737715481155522129537355868332785036564170792180886059114242961513326940884724954698136394287096008291357518673889546297741918312797215724538696082521205136665706938926578360035504987909354053697846773830013469080401021246514223474603292074431833687821401799070288844321028464295822716092831563572301469863981693366947486263578126123544051321325856569773811619929253968732068008550130789223399439247115097543267542363803113600891906182736157753136506638081596259479181769653147393470124912945593100372119268234608676373020318454821636936753901082711000635066226299234469015466379372403868503728390186518514405480390286238178072975858909358947228561311546505350343554580780708866429624595487917591257949876858084383330248080731979314660271277167507958900437883670174192098206220035118126110943860149979952751764725445666693179373559995181194895696665800923645076223815585964430476622402903139612396843911571032247468262490118927238456762304496566351913279870903634051820806087713457549659710850154881862789675282260188157206652835320026710666085312556664526716698108536673809346750433907617584030879636095909147410680823790979633269687538212095732687570624510686225948928169229815375130949974472615625386066738235529956828873588111230047166606328105715917297604209245890075085900847451260623875594132573938829387042945258606268018553087968772783256084161063204300728168831273130757984812227955849184649451675867632130984162250463710333697286764966810417763676911761216363618683304271173216736802327440372061646096515229832071707748620986424712169389930909762799312815833642773608967748411853575071446253555119117882671325273707164743918561566849194979102046535011602541592812810612644922972234759307054653024773601622739244732168393283199915504195266773176692777658144332547331841538110290619771066955968315956189483364339293365748715395041003145053259112458614666531033096048359351152672160303969953030185262195959397388299796592265121606858809899393791730149758289266946752813505440349355277615405812194384624052956658179607862225735113956738804885848948226564353400345825966498187003605681153542646264914719296616929406654531648103658287186774695949619193061600898175483770579294048548467009975321703734959006444270272550143180857222149722618648453354398745138148814175136828485019348444064188377142943884250942088450519249454661631503250202863251837769519223099525661040324816624746800404018293154743272314642992400272791231529636319240109274083357268098529255488521817080575627670955856371184285214527615578400535610843819092216582078343506967449569932149968443762887794863549603338084025129494839885637809533749635973304415852903082248201410143436411926306331867487255193699802738007967064838489421489547519782301408011553916646612578999036663227741237449378330947978292357955122957522501548148910281063784083489003459876642331217377739215437341272931553729260725643217868812209179514796325260996568728873297893258067275068289289751436819370990288576303310224589083615290349609433910187620661445423568480959690925071889412052951807625624812232715928638901524003788986392762297407114624330249328433353351777070118990798203471988703621528976349961863221262898699427662838141561864540882624220682638533415245908431269448758264853872562250421314718413599795463625869958988216969869103438287312140441630552227142933430126727888847541795937499333403728733113536781556580624698018248755935764592891357720127290939684825743378361306194620045778217686438774329018792610127401093700610072645727342613127561818874553191673753078578390133614404633733909291366102304795486049033637499760556987484334463157767682654770380537684289151985528051480737251742890045584374456259334371070975465251742252408709993090960739155307570578505085676133213000551978716366511401482758241268622743624354063896945738594345836170177251960519186801484863799893807213088638692708199748553108238104064440272944742955303145042476360116783208525701242520102555043778459454310549052850934997313769780683622809708650835660050022458314001398394167813719807205169542624686685980727583852285024386263776203148660785643651178739356315223120879963504953260232799613700636643100843939725378100892760579173391911760297402396750867414705611975928032723063177468819379388133043932782153781351027499928623557435966779772032934633413881004317158687315356262993315167559620554796591284911839193597522338356931038354501821767570169215788416259942357683299347186038081135200779642020617870587367626248094991654625487820446253827650979349864597181860097100271039763275289596661429895197924700209545181120644018051688224006385979160335150798898119903625683339290119971177898195806902134572685055119943956517016397466579036286127386600777397005122248406954844558508268469445885279068512102559029222284651641307001954473810119715783531497756051773254786143103996774807516419593652705311320707177867064164202951838129703710362511677583638244134803501116125787080636527573206564363755524912973912275946249588934672847573545085345575442014770819251163766045655021918457205495254895060387322605331753146285005811378062842254919423896994346838556450049609530906614197439701826464958462354014309947220646375452410247511782899589711045939880158237028822465823443818966508083385556256661528410651901287177672707502424605365654533506868916660265299576532577607818414025479232425086121233666630708821767397664102126586628894873425002932263120642670607659427362377586781774054444579494070512155918360377752830163840419841675837928329867003733882744346488402259934744041724959382468078988112654102408644725238612703942709682300095064155537206405519702878529675695778726425694968310059783894442360954232980510962484785039309285662986148311735172864513328387205055198456510115064039370945961044381383990334828538926876349910435161598658650637677000052587088475439605747263560047409073600974484531554286331501794290634767572294024343595302872628820432064098001393584415620821805439892026960185606059703353692912419078235045753759585017958095156055691076930330838895912384309789292345999837966045153776191438072388517296955152566333857498965189837482556069030557076238531143423030546491441353355171792918670001805886355436492542916490079696619459634165780646821716498354219116869918698071514296670805172212223980008898530263857307412511554812208892828109361085920494151981437819229220139978741540209546850448234607989478684508694281624468543624923373741383791746781607664415550644928146866111276574921163442180456279501910850203781653187025032620592390773928699222516022814617107798576879008246601731866929186310515272691912732082186259666773394106744037736571821759171060842588815761856900829670317950055635003330582786852750754095866141918311362331994005867011897819242158884188859731609727425175206995822523415286290455363512453229068640206354346821060880863868190933597463111553258844806827307375907954473977372959909975211552964971776141945428188947890473240191623675169635186957817235829254478532177026503597078779011969688583168051491878744178283461050076818151473318827032523561400615851921867263622822868356520268260731197421072819355651957570818929123976084139785996145346495961367012327618362741028166735194247019845291940149773844259067186579044416576173318318864267122196458315463334652016074459261888435497279008275152082219443883654264043002998936399130012619141942258014804161083064673195422479568007341743416820118803490430545370720884765659762663376007839702511796443582380801777973561818680338421259535505949267617404291642212048963846448750675618999186491167451895592265421615028003125780641302790686396514505881286463753833292298029476808781207466352103692932612656741569351323900761982292321018693526556281116197435978796680581102715793453148569206482578991117820096786301159636772804863572305773392959279442584363998172657744312814939517044871077122358883977656385767032396696604070356421967217509852007967841527753628134407825219809801843978155897874613287063158317374878621815103802509160455040219581155149209390118865799647024304438548840647815331765951844139235091516764245993544953612535705152815036550954817064697322348643732890440368323568932638893058566177844504782769476001983635481555915759514165155970155357766178839719106510244945647694100048576021721186798354055570800842839284859200647991254846285471511205934176754272162783990604631891618861643117220466910718012280176698881943748665286545465825441376266183692443999004003900151935609563398746585037561955336557499333914230468847812608965359218190536086957902692211571648249401551793841351826870229118780191033381807284755953932475712120729283838653697733028595191868085479412592022312475191352059831197181814893434169612852784868259496465848934580855526826806251005575404843278784090192276660148273233048210860339348763703079054434405379707922910791485603918861663838804313432318609571603365639731253282458114259599138214516924491363537321794212763363593411392772822339996982435431148947013117809365688513852551671960412929092316999771915345481899384110432870773360007004880910833836213598902539086472663053069137010215548250955739637040605473355293330387018235335534741437355773708136419550890153689379063442971048216346703924635110994447453414089129831249613248280548939276454134059165886806737923584637386799532458911923511346209091997524191739841584148717149605268274976807423939893530906727099795568367577914296394615378322381304114633484666196262640075269448056432538818797243512426175669277467823004000639369900654426188980168907453520101439821759986212722718109577713838500619313358124552448880919462939563199499721322861403643701700741207456057701113819360409601239660259955467654605512710175558479360007489087540148409640579640137089543879378310123397798748712176035684017872889906554708248686806909756990607409858098884383237790128722377611073859559234697965998400093917901963126762421489235281079217206204368294737058621943995185643913391416770613570248008885464680329240309748926572768919549987679589585378399788796077458911000390185446689572749316241875183748009407673040831930079215995731250053082038460538456444560953775756042171706705251172947653057794238896657951051629087546201308683481633615430260884540674258684419035592853845298918767909394753662973851481197396306554960599977366801436822924815961668200393510245024905099700604843934411345286860458636428164593884356809214939480333632675967847307347249933974500108582877852755131173259277661861320772398949804608435435239120257704933356653294260677109992990429272578032673046786416590306222062323161746374015492683035887669829197524797407950626567896698999787314933485737756630492701262752333834569346159371000203712411499402024797757510546989195583541375990236196737943753615500326569728117439986892912653647088983324224959832690775910043098223812538032591600954071011174998235766101977070954247399935339486749780295075346356368824659822813629617083072578894108948784183168960628994870152577911393759763542671906032356713024138009079977036307788694209766132391793355131252294470199329668846265793951495973480817712208374911343797082929385429776004318040635278484210652752803365510115440769706046576659800824938570778069782394115653526763799423027561230193477405746578692178283501287482696875160930649014879478618248185620761379482786386122389284482150713239686125106019838659825159517603643346722565877438540381737410849760673641763107380879044536627951316448212222380998458113365937696207475232380567130929208514103665136080848899232594311104627234151453119357090876723107825826908864117288507422201798280536790721226023656737863682537419207673805519798543095609296200141039213969326669046348310917993333721145873665811146401491638923217749223338777781753506271921839106238879686290482537716506883893524002479558059275259773637571451579143396656737283547386666052736161201330148539875335048707092756298406975242512111513031706778841001515774608937999035642518034643137954090929093989889096626522864327282191436958837917229832295754185498703747105432110339438209733692431324711149012984329543735671030858354470626777449576892680314465477957721614140580895504251668243313073754897244654791023288458769153301923138951300198885523980684369273109351539853966220285870552789170711464691343882193084968069071977757495554452418099584885853981111372417958078378596270257550044687528847122184378204651623463161440539964205030076585162559895082519115428908130226183483469613120737420029685378280519834434275720894905336680063345876495734207678689536602664611859189850277582141609629844373301865402312512468365520134743351910128815060931478864517438352744490032156457890854881954688403865588063671123592515250052190610224586201544619864724136653956092076444857880301893947028956515800976850966861666336148093458327744018352491038070224697260794642387323233636732981969091050838367893032353955814968227350217756872134017563085800095340524498064878154677649537663885771516135884427828470533038420669787957578725443477953715422804781022706052061581387500013591818380929821332609772902297897625987243047863191259965533289398332257375692807793585881921404162593281010587927152997708120034900262180769593196076316728406416299120701601691732320744488954461584046257470724024801307436536221434299631816670514622432339489926135181866665828410749340354160045278913411296467358194430863919828400625569781592424645101429644298970567301831523746597078181603215149562132230648563958169297572017315776811553933481538099795334616898903722351089310065100529462537719114203425050484585322391400516261009507989599380100633546433472428357706477580675253060525248047249908249442258671147690240880162950756132693050061824047149752270843639409565795628013923415281826298417605327142337654240936488273434798223379671173026327118065380182410726799388122944989773864679019155035581010008987855736085875912738615895444600352222898418548453461835589230323162942111246393805113123453377829012520958283031819230321217338339444910695002518864599120554719483686713632648546569484227548972605224321369980920308493904822335472358560838641385685359484095719806656868870699739305678559978861925140613105217638635190610439874290761250872465424921817818692496428046241461547253082170965083139785897234401469338381369749475834995642164769114350651946129824342729908234603779202375637537798664742597799767080688685021411541459783204526412503389610938972562507143654781999281308754902023145820851045544813664884720761304395021264371712835073541973055344223056402153485224048223584566591951026718674738590364095037939566761915711481984414750737488685577922413961838107775599554988667451021376210406386163946068296586973208633156537926847395847966930937735370458042157092414492989501530734685650527884172583418315605670202407170219527639371202226730460944246671230031479444140175011565084092545961234200946098380282120727869449781665200915129203966728755203253485188211688719611019173139105223469451340284798716648375034749999570973022493305828620641001032917761040692746237042454983456012410693731856207012579078533774741030135294767713968947429652627854119669501114224718466280055583865640102393780287616965482096575336828766660149860589704950953804489980935489827881044798947132103815631516987444508836145447376054342850701426868718925593651980756597028417745856255321752415251841168351884626571852043936377368478103907734385356032038449524304903594539182952281555670079537182074867493524364587623054093266409889885621774442220730308291045958496085939288535711426718485019690806805659767307207320105457403487832355522232447561882666744408434132673279511533947950524250634263297079430685141707441790816980506975422207157506647643631427880235911925094467939566487685926753054194259027715353577235780475239859944179505262223278578857064464688624704041127522876252057230738314893010151673468670545035785374772690621187946383557512308074743125457245887453948308307952996363604568525524380541580430484714077145329223747343437604141277419463376884368187311031087099294165670338799695930798541328452796174545145099330500918913728674872286767046547780683103400176665392077025358979892276970632749578221682116776723350682029483053431616314460142439570958452388903963365186776419143119685354291087854398481093440442748433587514318993959391415113364909284310275761917167743379754359635064760722365217063563839639147425468845704911666006602003324031857038182958117995302767003717384757059512256369204433182060866838841013136770623371737009118562569593563721105719367928998615490212537955257247685026017982850440540236111483831813213596030580733781927688695870735552608179980447722225204310371573179616678449090293220528710519643915306098205290662885108807605778320796468982401428478895422889604554391300015729897191748351857775523500853129703033870664508279979806420190036544594008974881444053496303570898954335603100440534007296631701374106165537207616567203353360294915849959386843373902671260133361392290385980722351984435601933415224007946377610454132020922436981631397844962178107146023178196193448681620261731167818761003606854813280904228440233626381749582853263408101551340811488229262749316422880627788728564079495057242695145932829887061747813758907522442442719070674583251322285678528233595945963210969254513730064676747615283812412839352183309806449597090081101750069510287720219625912844960805948796760247524997476624405701089169811189135959712200659220617597124467650586229628852794528259576330807666968358377184736861120464827687694972910303480601081542688618414765723751759164158800532226571713060683597321249082725393644900857512654120150930372271071874972678823010171430576062000288926896596904525406049664568805489434575659837501932364058228815913717750775962954938852015138453493306585210138244213270186772364374545979155979096940449424641947988020057303973003265577323012237259878528347610168309361383544081734001222337619996846700748622942924701475308895650003144934869946957709974651468729925810207115322574519978706673477091470832162440552661629946475382079399598579414233571927027116759266459538164660513951789391547049887979662166422041012070230191732357252731556360443928457689281231732790846644917686990007115721995809242611174535666518828716146013299114017791800320667949326228746122588672273128676989492875444930137273306973465768488162739311899404933853746037532128454815997758230163053756235169559526837511838568872416852363065695314537037426714509629328690714252320851219417033195491682872239602350116175763484596730932468269665721539192678228823900178357042571473881229699844210633556833483603432425747650156803875368059822726345127430124841039964301224359176758870920004962634175305375441427228120953873219669536458975226982534318147615313420077357943069293730840372523463599768284825276076658381063109245740177127992860216725788624755059896248428371476274883476304549518554877522210215683420068377549389430811497213610684646521382756889181114525377765231228091715650484981415903521489042538546753843342213401987522154260230833489728586311738082388119380586915906973964263854836238696578993338531111215172057099272731027255293567829764265883520944286492420005595878661893899195460630259071104419826484104694781793672489159759504747703098538901668013771849213745612451482300609341955984974383669361283740290286693602931757977014190976348495181912825450567968653014795702962667189097465551061328613658331794266358746464470089140795373927578817837821063285058410585466312438343386377858646692679655143169540751137340108977884871227796156179211450323614742479959843930308093087560367390440454489544313204536499458046640815385658886700513947104677456987257700583118497036274437432654566058485707917704909386631464705013324043506710547825221366331180520609275427502604934195212824916027553808109294385488732138097860508500132617869337976139114558457092684704923071302159018446879502327536865956646816373507074071321924541444655539907517172694654007367771627430407502028008893288055601761037793887097140234701978735882787232745363959521829580856358937029842029355301469958634917318313751400575530285458763496654690593609954593609638546141312427108843725078899964885497067681044288997478861721866141295113622237969174222933568886344310524228525736833375680043948258606799662889622985356826799974855103510960883407104627586086978826676268336072203742164409570296655424118322564737294662434749954250263898454547103086204399601748849726175950928837858622411124558872365850961404181907450948695499049208015129834686555741873726835702474600578155526075167511432955309502946189713508635997739102750518846627592222066044469839355100833040566790307767632419229142606947013524826371470259930044634244339756373962812899429747619777463531042698099799999585510292327593006001142834011468942837587163815526464032622086465531668898596372919921667343931459969718554759413043596436333062186453710943807951376233208992962807688171546716978972677160511847849949623513258764314288817096775004586121594831054333261868694437170223335972860039592372172917479643910419129448505707594097832647544049604451145721059828568661489705147916959432191420073564879517728914835249453142700659082999606809246982673530260555455803408245636674675371176989461100631239659930113076193134410217912671859017071952322058238669867210061966047955183259701187387041200067419208593410578876142254110185697470725094400512926613310018886551629532136682271622132193135241266284225286544362895434546495951480521973139923480952659946292907963558558485111380944848798355100101900504545702425616304726997015915997785802198790601347471637380400761661725602628325623045142966756910527522769182854901449766578943469270706756154054023416897878551351364412262841087901218264978536503284760742297526615328063444239171465812335997380768457994304774161958157415321667053166548348075478289888761357546780023661478153805563480807978563562865010554759744792571312862925707570331504222908701416777804551513107349722792700449854933970457224379380108697899104110318979720221940197318819094736030366959197779564796031321321317861386161793803269402436430417177979594763773220005887399642442039048954890379106139241417136254867129732342558003749692067864090322098066510593233171955356311019916309232378450212875698891648141967281376055015015762714879948291963765104345065122739742326914023341255485360074126781248784106280936412763135822646268791980065369450130580400691809030287240750570659034549114308381282163919922133024107029352729352741985471408648562742989402644847780762312915616860313355898125853477857636886740195626482360543232463688412167160028840580091525782589524924348734475809028642456164056089869937681656000162461440415690099385996819497762136252672207195592148771831601962530908082111665400520458474357285685540310481223302614420086326418178010356929307351985106919554935761757448686297314061963185263049333357539421930369693778205923114297909305168526514186838135342747925953027819797398989681259584180224734204476175092252274960958294642071711612024870035650694382737747509415114958525271239966913346919931377309193594083046473410352374245032351652086885848606818025906780455978058038646980677569213735256824443177844809555898832712722679520195846071589198553814051272916924964582934293967669972982928630606114604281400444339029853263126749459546679546194281680117725958576854722590549159561046778712766300379650647740189478834392287086809653531756163686803866378062560463495701561648013629944496588994956903622695133277693324140738786731514414193443375792190984811362189674417862979116451857053014545923890032491053502709431240914944145669318678513882188242951488270825356812626747801256086148384934114104990248537823159221346476621190528173638611876698734532287764754841923184815505058189219895622466590496072456213419056460031784467965233051132670587539246916218731180502906639362696244064991369332049864094910456760573697583605921547559164734512022868443746108051396780973157835118242703551681007460449656542351721341396907730459786190372859726870302596987440633184730013568771343032391954481102831477512642270686892906808871247572244672313841196444027304233450304517629058527697354504797914889357305830543026526596887977553953573343536306322141957932951308101782673170646529812867517590804866046499042786423877683905972002077341009368069489282683462297829756752701442619000318017241092844475796332284594671537880877408038723835739775649552461284506248189497606712915574147136221396333760671911451237062593796607463224337347810610256354143585417776984776600854853867863684782636112993301196478100111155808128693258777848849836063011939187968221923465769067680410102749555305874573040787297535931748364389690175792585503264309632505431913460286268015110503946004015809766002694092600496864241083657870328272297881050615328521543498845294727814336879319112328377625291189745227680150684170813937448170796184260421380545403671179310487608262251367649560201240002622844500851436989579210561635710177364525505636695570939121089632623959162741953878754932994746096275297396447573929054283150616360863027789707066891503454200277140340619189260433878456323428871338910335935311694025379925894026873818194750337812690661446840547606302052151796646298386004274376819794656541232655106399248522265118698104350410439738853340686227138698495352752248255289618245162794971567833848280858969855171949008242410839061489743470279361155140359843764963426149873176817684011690806776146811617685535565180159295430726073230736501659317928934204120685186864539979711029853261684915976253381331801703999027024996856956006703033840131572517416912551087675000136057317269230895837302375703610088911876433937747168985740550340520091420663566477452895901676995995008664688819864665411101865990677885334598012448212358058420653274603786877173648283863553811984438747378689738876769435994255501301050053672963585453227767241290956704467271824846169664974251812606400813729043492700981784440010520407453308661058631065963049233830962848164299136294565341923422098725828851613707040127964136505210018982901960354260694207149069965933801825551745525937242484536669683772448106852089252091215111989994435835554896738252204621457448361930858972844136410576148392128066129934897268049819173242346780247185017447891535184481139312723858531283751986821231852533229249237931267887289381127558378989260581346300872313456262724680142751484795479807365302685807897725019127235818630227320783913108313073885715810577951438714242862379868831651568458436652074130948987233406625572646556305463382590174168954375813308713936794978241226626730382411696957405730458261770305700525272198569322488560801743228279213546967716582962954523170821938469256696940062722158160577593957834509423414358703252969913774789610143978381915790158651360862081576401667015828752509876653039092665782640124035269936294623646550139582548634147453966071073643207477659584435917299869480649279903885906156845524487063665350654212225736692677521665859018343833760482141880850981090973708130720306566481857012464960693036945180431231959518660900084805491164342910021361643516331214164389326045032266130617703939551842899943463808720432165809580941771676577368429834826668551757100159042652862391112281613721617046393141099741698362406390288257523745801552182112820997025060514009421566267814560217531750092903056103723024224161915969083775355289657225906869038930752728611739495590251756536246523268442555163680065573353426014301901081276774861466670880375239477509048839492278180527924989945304632286517892701779679100394975125277704684705045275329390699605414146838024943329984069239588288853481484193215662492181065241694604848338778209607579819006343880409432999298112564551008931075555361439911105167620716235454469301709526175572755450918688812226198731805976163699517812637479038376475289112809483500011656267541972694245691427376535688815742840667692752668448932835132555808002538834415075413770651930869811805470876436016486520148166114219397611939198015565038932387508215628534792761133270077153007390756196179526108252966112128387537009813839224810557172862144988122366062226711493525137295432337945846803080125567650156099002008834618753037107222296559207998927880869295967589727725124266395467408563382070301379941477291179587684038205405679181746390425457742682026357569509325649879323358344833176374105896230559252507694941704404900026259158443443043785151303653357779778435503835817231180082937843922876995548580983787824806910093947441449425637567317045936469682288877368107601442078638417112412140784781660053172131197431584229667063848194720481511876138973321718460550849462663463149009330911219437047444896955003844186895214025636697129175329238926403521546516148120946794858948407316989373415107292928997296977449964001306935339225052972283237446641577703941354991765852239588071158998179486917073917193703506648101064128764622795233014550756491649080958568765183555149329030677231939863872464548093386421307088712429598777869503797427525163094627939211929229776157661419842582490882682723600518001771478956523612519279268423163663172124308571476766375429920119031747882154451854855721788510646447225029455387129930566114015251722031300361117717309419535147183430929827048169965873477175135958076639684533104361162971626006277118778969681461185284403300726980633022530114064879889651186795171106390871313769810498342246001041884120339933277156554895034060108087078296433266774772130759933866247006120718585914944111035522989884093120697607621696426311459430539005291807748020279706114835248200105988392311567386491003590245843086225434121356253050313866855408900902451630353127984257163352806808230474912233802258053287936515950387020405713672141105173307834296007720228813843492035613762041667498886935226021916678113054702253821169908967321643635762994040651084491024410246648734430916086305715995695323663099913966564427398793835096495050115568447021959607319727889022350986763691085195151605344019609958696831261630280332045689514960321400825484961891627406963982698444725600643128508350805705621904430022620003185688287106972064275358452048593107148187440158067003479377363566335450423127720150879911256872671281193865526072018450024552365472453625363302523909361884508063824693185966456455299358416011605944755859978680529797781559622348753603255425088639930472800815896384995570124552452504869837724503246422561359338989497262724714531035134977816320902768155874428593162387984822285117728096356579917150498632496360690283619818679532162043402265790754809117398287418562247994203063015475443363878196271997882748776552778857014539204164018498427596601815736223654257146401517614908698279095122501603752987633190717089166418786960395834843784501648616733646534218191144707826874716833993508961429953893651755276977754050240668108734457408987671443682982229904539989804919565871265002132238481044313049313934928552297722128816768535074204789603081301973444904107025262286798322533934762425763580162647673520358475477677016555318781374744755021696983612339665853846815217047434303446399263952272575975439106911311313416745589163277313934157499028640999117477794665277776279359978521636588840645942578013305595519885000944178024663862862871258682755709069404752655525880997150873852257891418078670249749743673671206039185312696835738996514955167029813118885769360125281055093375240447565781560692347293784271300783389596727504606619728577994600274585551439856291724136990288284579468324996218451727164633005778901868019622816186181509848253373446533769324007373630163147162683703741630779716831364153638396201826526360732620593840792481078259636703998013711295739855667900709919936401926039503492557913439226370194815730134785629394851301630503812024540116502450900419814863463613453796481963958680002844897472841553405965194000361590025217316526553922243203631077383462097630310499412728843237849276607598006650571672214057967422192289453595477063702768198370909918902031050298694791089950591997589936297405059847823292291987024292720804026111607735206451715333593046348364760736529029010613892884488824193529366089375969957739705570350493967079131796844844463467030111332286959068130661054993939786462734034456294917710149202469972893160909479177352972018446830978385945049237852526992230069935970708000369630558990180883300535429866688794656813027171763461893544407056866602143034909031679736474971165752754461602874382113962695997528361926673977649619032088531175102294834065057029885963423469445322614858115719215744965444973185530713054011163672900502189567490871066460552770743463706816983018140466846241292814178930195653760711642049200771612745518352290161556922528745293277016995411301010438643862992103379727119748865580726125391897287679439127221027302169172479524349138707291991348427053621664162871884575407148380284229661946574012266918266388161707312350048641264353971633417993164771681169655570612856952788778608913679416670799284304662456688550983201583345481916225326383797844346520050061994329875713326577208166576620905866501790226486238870447109864656672702950295367719610086365888852658445216263295016182365220435438055189013669819426494773257275313823603046609785550662413640120920824309884138843432009423483247022414025789690750854965650166909493455890146059926900641422111566189268158439015795188734473351370415713303075117984642053548969605240630421511654528507010162586014829942903874692721793907172463332806759493308074821257223530116106867286314246818145561343640119163256672912745269000166690438352868137786841780120358279268881351800140672668117864338439375735001626907976614108683597330720784763595009275253967267394554511021361906123866689767780946882761719159290390525866005137639426304853912384694513460635534137813925704047778127195294589071357950448164491123133270735293448113225121278048948917926840989762411733598315690076698003042281516758933642015365069741967522449033164341530659337137882443170502882771011094999154370996265676575396879401107571090815151163186914867962011889720102571842694483324244449174174314382793339273180871866716211338720019080004165217304977630722805822909438222078173803905281751527593929606413650877646465694452624608819053899974871149948060369057045031000230350123347884389584692510879489581625618472421038628690566414876425066204055767317839887707332823269151642198458395667158780215726993310563049680737926653637886498105273142843237876107215150411620272814541698955484060725610141095555323965195345090443736423384103412738213687265195907336039643068581461034520419250767377992706568292507581395163357934004072728983388961290524365322296473678416053529893787562079914737495851892093417404509516858571273850306921298072443604545430015680080809725913421859702562031378111417217495031053849021141224745155681691535207800350493836315466592371325253595861923258388274982512727443822409702336948197351864700927321435001043237953367742022776085891362291698982340483145749829853156514773028911758727099286001913987790784599816370016141307560669343638074602397672574913488107016392118398173778636658144213829957735419138603632227207884786615998841296744300487515808879005581878687410783191594761932137160259065059776016612598886836473411380411004690861736653163503469556887070370551000232662560886011268978045964161280630860188815843982253173468351971140773453841397480784879231645664172890326588510814408975341191019225391752686693198518369753569046249653217649935472498729851204150365906740278405224281550561070996522618741849323024714670550088608295278038357007864676288749625283299913015577788405234318895818605163238390533957857308360468862607506692914628088651010457130905828265218080888529662481447720515599824232551153183254286669557594280328822253219762975782976482796070365406275968985273116998043610401857154171263335628207114383824812068919131151729447621084676989389478519152143504480735601741372664334218316687924479224998569068223371712896142617596998701547851004101480977050857913812883630082823423495579664982201272176400224693919331689764431788076922780719256749249486541506980153882289985421800826874080015091391966950295253992635804375780715254726197314040859816913777005064055416819741072948695548859406879763952969126018290911170196276163164554664378835734346217869335439954232496040185298725418018052447550049016068388174192188603032234289304885676538074639913918361749916220623543742628946088274330684217917552773708732796381441400179679823151980828091788101306174781479151163833184632380247716163951617313818665963994848022355108647373812248044224538430454314032292997011976882895095322735349596623495091506283091169629823942858059531482003000204533497952572893470635107967069987087727097936602600825341922312411381328437637908384630665843834595252117401538478220993323912887631181254915935745913452171215587568003040536259317795891704707729349892091780921132851469687308433097245431412544657370169934732475223831291252435107151080468986304659830415042643324838855362695642209199285980526501306304876929444677812199028947743872179219950614881092954242255618129843561572468212271869208617052566391415302237264697838656755986554146056287628228322354547166709087368327061622675728910836263890090127493530578618944545163433150857077016284697881521596378063964393741368649412840391512838399176870879580993850719633972295942491220832901405020395293158059009707390864164062038442178436895323235412643582215464331840917605032803751418583608898254283706454772472880569716367440151564650762303534818043790016768311627413498924356906913926311990102197780109507348874230853279860899719331657172734871995372780489052676962713221039988495721069475384108565634941738151537154452851313300557216128173847261649873403588049071840251067874786529070969757067717249923405625419757070389148185861532372590264427991725820229299020420030826702513746433167347760241710172688725436967373953423533808592836749833763829887202432530539178346329596241922924079601569631648953825879706879812374472160132864504532435506349592385692206540496043923949976976840837112419778839870921103304817332798889790617724728931742312695120653781263281494781090541898291869764146991104185064503876447075004619209465108526386494057764799606961523920230839273518103894188698595084066436809158423425144950037071975029051890358700637112726342077673832017741731647043163868220209749790521563715179702614810721739343781885072107999686661180421730291307258434310971942942351552284722226905210961567492087822656581012489100734285444353680339908516454094709915625898469255634154002007828396804192269348479477576522061048114762055698920566167208323630088979370379418346599063228011067511591542273732370270897991173972440667611536903581248848028247736795090781250328399519085378516850703307985247579697775143476107699113641304756799887998118689118706605511193349699203633016325030140531325389452917026121748332680193811375956933859938089697644586745071291556539119723740642485826820112496721855359615019886706950215637364243706945886776402137319751421672285860003557802960807058544332011501888199876121398498109184359435654074850117577578562557853629603359327007608982901285983655039486647796851742202070023740647622079153315144150779143727051142544286790481060961672928494312784303507172019786000027424714453102457111276496808146092182560450478021312625006811644377512014248792459175726312860037565558918156285822291293174103648860781336258094007533893125715440145763067004126565303105908463708991071642599557495483519242485705522264186569928766596297770430279911129750415822743300304350368696147967923636935573579245110983087256177278742561827417907605579011447189453278156883645528373299912118625103180802544850442899155595421963102948576546167140527311282041297382201465446019148230848556258192442513100612205342878573833576028141982669087678340575954934791150660708009107839301781489763459303142873207989622391156350679274713178769218652125648389593108519419394859244620684599032308231084336717064556335274837914634021021194861751597097780499657368287364529456974903137747349402934967058291257893646646705548498237697127141060714689054223629840870036132595260489169396241125373512289389525950859169511317031192258132647598649849740753508259079785231049771110311736306090188371136169014802949268011723127865776526793007486658153734170322656684912463374840624498985879014727750742342710487169247159571361206298227769794111053953019229648774346277249385241731329673886410311167705342976753834219535318701493902845671986423524713690908009718520392855862504677147657540391306157376298315109511793700732062905699746407209796300599674026949216844033615905059183353570512193425394705666049990642705496904272694382033346785444571438139501789382919397609677846539484134068950399112278983492090232756273348253046300951569562761113233142927428494341036588697630914652134310944920018757096226330772613102614458096937624357414780326943597075541294831024913711370915667008767221478363461748089413090339219760590388152816131272810102508468907430620477679482136731684808975333113614335833695531584657108888392517370819159047416301441797242127985235989381241462170318538321361438607920491952148151082127243689409449712891475442494982941301788610230352784877710447659085152678187241937742200739297636837025521122610717442429483599355542138986638990513587226844331685368119890823427681356462481516807678037954635725575998273557965512703928226392865443063304499843936814453380076140139338485375177527010959850785764826645477306743561577606506259616628003287236805441235912768158668710069802789076056444506517759616254894571826885355861549951257959781973384080367626362987016535765955081639861331975882773995101672553872849615492882531098823380116802094040995168665306919759710175116553524805717561116548192710558108126780490205259024285877273584832804286886192253535438296313675284468226333656795860067771901918720195568523370952388040771168179791704926014099345689375831799316488062982016141609793437850906930410510729485015979712109241417912141490484407573282287291932072989733515672364001226479049870270139053656232728546826000783471847941652186171082244031614501441628566839394908527950523988378169882056509208122273210966689360472623818081290871571923437852221326700242377016863274130095764135259629906379655732042017001981009615068336806612189680936204864303445710221394634478336948315004715785767052633428703470114608471342415958099061495168634835680141914569811808594907414396552492028030727334235165286101427937745553616641978686375160140504518701611515411559815215554477796436398568938859064612734546907677283598845165634549866902060327457869852509601832405758524482568619506893951265135680912300890339225540578794615655711205088923758227411169860167885322203144936379652639113808365863448346617606288618034283935890336526609833979697567548631715561253871461905773395623986382889015635332267625174770646837455560298221851185490398467901360445494941865471323847611008684653364976557833077416792356946630621394719011835896726935191606650682486376521353472795876132261654847926664961407874289926347319642618317975797054661383146900886879414645960364250772560576213118540991051262164637459765282547936740309897296056016598185688438666598170323699232298953720632971512136845166546885764564697066854590368981479168187808560784097320153766727936854025679491613305307613512371149544311251192763398819527870170834963175340666538161972381958236134207835049659149452650941940539016224767442437440258047438108595133727505284383243592561310067594856229841664761724771322001668302570959506874704779186998900375569773793405937037651372926885090925178433122935498239092195738922123743869736700098304022842779418851407459848971175903974467163790542407540078532716266306188770369738559204097875811523552565177553137778314435542217827651803436138129357661645866733551217229465374853961187532502904961709459325548873742660971692554961167301393019882774214218110967759045967608638266498458579222685502056031986156293257150637488697686577725319816793870160067470290765630365954322809255458941576343468376219686416592703387122662092607173596227401663328009207445952907264661760737381932600542088565256675369885769918684367344766948316907670474219997684673645297998350890566543635945486926823850830814758734434249959507094030502202515667256767086986672292630464413042705640199781377418461474358205714439635176676653257085021926829668404418855856809723427273654719709559885542442079810076594819361005403466024362548890858322100214514009071902354408762393296615064633558287592809618799736535353858898666717654983221447493242863905385737483614969918422712354791304202586650281904954153888280368704154675684312337783763050224187008284532929275955107236013602137394721682688990217941632363072853032518875439503492653927135888023099258136007011716208115592248612160753032704321466174913505319932499066389923560625439215561697959976229255379172931784574569980013320213058907179982192809642611852254527580781339126591436257863590998881161574961994643087100263877160997396992306100186863914107723953111085739383248430372901632106611455356828662838113996213473343968961385974910470599370666516978456412406782404202058916907295580443919895935295924089884140706701363280168706844164354514342030221346001261968119853060306370106919771849313833607872010706629073053514933948439876605987840325395022227484694340669398101345140706039183112031090378123358110576443374165140466167058853819286234696792410815141000690776239785332165774650199361141249225470846692974663204172269535144290544190419752455490720048762146367559018443567559114915411492349598921521974273415024164725856798356432813238294949796747203128237179249382412592854676201347545295768072783694566461419364598960680295759012109561916411179555053587755894163670043991030328933781984163612080533121107010079932603764451329267051809241715126072556076693778420293033871618639823552224503966083790886409990247468117526347483786793725306404012209104335024821282259238246207980985549294087712192283506498285299469328287823391950778259818976696148235718693424669255797221213227509432761875427948790905313372665872726700257588317507468409499384993506434707899153578763703752797171921497843906324091074486969676629601574997219741918739680583862022687403137493502531465135298479594391331119500214048009749463571796200795563427770377477957922500696969860255830239909583311337307465891525244444617684986554455653732020545260534061978814922983267966569935846444370729922727218167236637078072745851843211199657505811602033649274182655069649079342566404747998274425543270409203215171908147526383907129074272538149255994797140748592007711377351627012127329964113196577779858342903089407721695103867150218579555231574895732361840422271962183626435277976565731279676474338103763808126142910699324569801984360892607828379131421725254465893238408721201621260014727262417667993410835309773324183463557686293294952005940166212665994998555396181904728481780982672373258171002949105744557239258323370511553450951637318281313385924979593279674446052666982979197022057265324136698726192864353709328676270967731382933456116974262030560182508342535601073869163949879461372990952164674821203741191807392909047090518743903870645265129040855092348294355147510917077700186390442547234816101207701364967407316688699974666719551303453774330671669948851101347542008610261309858666280103478184391983121772841868657031673638919439791202754060661543848974575064085674133515431276451064223949799491088425289955453008713834246495027211560253343055663132789315226869331550198793747305421848647885109283035299849737036655166879022547842069417414179798547378984451711461552454387325309142139617344884729073124506962477336706866257194419777231747802617246261183947975751256470286186723373879587385669229793731360295884535711206170164042950312350872908369083938571039032747176195379850815768803226631481866520512162167913922333575239162183736232460676785782036817041190066221500856119186510899437709132544019160741151738439254392653562552430615846304258965393885312405902167268144596639418756621819201221949120603810210869286032202595431373861446584583905479064016835250794233289677811987183886885050035573144434528551408743783647788392048965407793625031484813637961414754594210980566598185633749683060967581340298541855037411459139701374781379909181922063815658709087018909170486863916776562819123637592823164664917586756617112380941898419453915402647050494139442556817291352974294164610457308536847819718094536959921218350485893553433104460598965677491548187968849817882759766187311614435558781447612018256155175089140461335277897647958468951114045726431932632006269680655933957300700319426683168585691071258984663301378410718886744740535746027491424021711529514961087392653248300907104136655601958090376663972925535398359375799903467101431815858294720692609575322588135586160497894148229201498988099956832667185107331380166832348357930263611356847377594675594587629988972778756591537371274657259475287343439817691569407161014843330992535072917118678976362256437128216247342008405570431350357564278417091174748630905893331804407077239658091709375615331232652280372486503264626267121857052369991030937959690522952442060542314358364627377335565195088780208050507897051908460951536529730984771916820144976237276905621165653593039489405115767245878359939696145171667092363159748565911894131895437031401420846503626497074807873703164067795402488494119948320510721078479759953122143505143070416011374651330260293473117508354342339510804807888900543547530015807651703729799361899555462077116074758429670958333668950387199853687653096021162485859100168828029015518498725139838645618690985576484760010634367217578688765970178340328745093680073136642850103145063173338233978010262226666405229165190518599723533377985804756413858096128728096140403253967295608512480973450551686553022805014680890428538180894826612059668516086461551663211344011133255475468150776862411528156417118581770918724047257039252846382125541781194464126710602254975320230070136464580144484181683884890954840462100325253053202512678137712326943440536326135225850505121902870400171291006159171865706292312904101853192363797364712955006996273710979955284195772957454472839281513670318044846659326368090815726694098826211364723316321261464080948179829920890063535008769462631849223769636434348989525891496273163661608115128198855712650478236979122809377899845737370675594053612728048087160709089978337824899171702450172180729714985035500342881666961324614070585002715444337395790267045405993935312326855557433008429226959701229058666903598590961938340146379953126684125793323710414533708339679775479183857099258142387967023707073021661278633732239547434420891259520833778768810434361603070309907832920045872731333470226899421691724567838755773943686827980247065961458237075430971748463790062382787801264171816407738389430251042093394844998805101975757643464487745240131972051567826806465152089506355048904885472720214837788937621925077796516193071948211382040209002133242790372068595944582595938084706444910679227943845983563136070101674007490192334966005687766588389445176096844819142534157474685099915669542009589578697351092048417851245314792656217495409400861321025474766401760077864295307072225561847251265794550006374548417015543749399634724621960894931149287479241157547450688487237158599660967545264809576762645003235566430572152697214221954395655634610504413730050083875952431954918168350106389178467908861611501731023429325426732956503735125762082169036349191910701072448063902961462576674800397119186507375463250866444300970355505245685029668038725918829130798312955026225444731105152478618891988554653788242690065998167692141880450061938381586148342435796462551684501821703402894299537671270837173842583315376286659085265635702344358546249163357012195170254292653765763046186758485841321905937029134329222304976149566916332502627598141770095842235467362727960279490801744152201218382441910232293878489120532435377593748751207211260433412726805624549207544483591716039392429468900071155906028019867719924476540189551323818696017011079523492134440995040353179139772081718451963994045652857358922982361048013262900051204737723217961430449305874789096968861525268228770020977003649647343652691826442907745925010163721935273031264658374169009416910904466415770813418463636852742101496194041718506750255411219022158143931209500768008120066330486513803187387544890383355428192428979421775340929015312681083106083935468866393240346490735245005986845010748948986365614412890650314644148937655466945232283908770450252261597666348234574259699296791117363360749118738295464047458182222720552395290766410700757392732705391320361687612627513608210093847430789500201925422824441325511368178436778428112287320865634178623953698238192104598891520585582892957223310850976479502940408814914504980546976871902401849187337576780865658682103517655337512610949530109717920538065020211685561984220266463113260905087888191551586594738391105165049397262905529893898618131437040588805788740318689391000477494000006725572932421963003398889002305534958440811913471172491354826187364490865855551327505956558770352683142821808279781943088618758444327546833585604528063160117342005856561301735283599111132407302142652369405345339543449014193618454983831078260451831470093281923552695486087469347438961860790920030747060184958854316441466032088629046995952267969098414742264099484748797388326264871157892100799121057671887184850540174629413855528719639875134575560942823192885717332647379369759153933250637145777549238785307947868050533753919493770473610105660998231047904713574117464491204583713825601849044006943016580399261575079295220151078470101088330080691247518614674758922333925316402285536827650379686145216629083579285922842064971818161854685506740033908484339153394604986661492818692718882038320297504146377066049287509297852371324432020991833819629289138031015205546309944034707820283650170177035992789024410056897118460284956493611187864347694128814253999075407430851639713677639500361880996899540570870114230232995484058234714545529865117703074678937866033565353050290373291735005154192172903465912651874409193049243554739084865072789452977573180579278115572902854169546520787503597823637986246751715623908293441746829324973930813648325804174253515567215977296819671096325933918798735731291331875509068438797548844285182374626908806629395560741605248778915447594470343657886133295393942236423227478109648515110631851071382339778701836094841196878593165677800923439558150604825635011720693603806882164281434976117214469503283410131552357228821861693907780882821248377576403988252641732203360684632277555695460832510241707639047490569997201979610348724439600623124603140574993559863045940507614202705474320705403446655594829855151402715690198538808898439570583577375162186357023718401109158656380395377761847287943335111168349103652464007296395007280739661521432672562538188897701644247972252270600340220969948263681864412893402559482463634704441015319630446033290153114849912061756713827574911568568465313463482376409241614345586193712363136727500529261542339860198045247897237104021566148978497650792714885814718912333164552347270377543299251673693406636083943779088066240991660612961200752491116339989977716729042055177001963188095179083426959938507643076715366214718902688695443067212274935241556720111226327224866674249592878812121742766657301504946120864583994757993894427472682837300568443694080372392515193325340198266577727864062408510889047646916875036732392212083778044757951523761748357402127699747081839782226809406008987063912821368063459146361547772735120583231399491897110626992102347016839642355606769308225213592302476406395564541044032515980191918681621060475855891762357674493635809010771317392579850353405229745541727103642605790201239404552579288470145545157193679827497785920808867912108336347613803119011248095249896195520668217067889592247438948492593623689644095809582025634160724500961487391123442833121950037128238466093221611262721577236967101383005689301281579773392693373852307264715115198195957037394843744133997645712519397292590165363176467796924840510249715414558226384438656199047593186697533902577802287633597479621337711031174105310866801487616479071061922780375586919429482803090899377934686217358179511271259709472271231093448164941988500472877564954325442425200593458124848959507055969281893613937596173586816861299284061785322559016212292174543276069585265825804232705775766084055340961551296874661426432312468149151010390832535582674389950336028733723103982123649191240952910215319177217447839318014724517471650314900673518367443943906624376410948823590487000173214973668496943543023336931111737050317922969868982834325069417687302914796759259513435014779261364887889010171881795987529887625624791992514720443884582838414611409876838533283078155950559152982933165230210674426508171512975758440154455639361290385784314816861420615122246570182684668362652614912833890384718016875920872903102255981481943912529757631740688813927347228082903084503042488476231523380687236598563125098352722723655129062461624929723419979400923452955436419728406375504051216050791384280864091076350220138936717430723666596565303847255938388212267279963128241113106562561290419667212479073088343677644728715203385905004429752997706005682637386676337747691865170865994267162968925197542001265171033846179974940382270998052517320014454293658404118670711497900122565743886615397947547641183865170786915412923441026043427841781107354374943093792518536998976118884528599471476286643277857633640702324323507483960426855783705615651285647646394514399017227045967084952263414080157303406322039157569253492112173760929378886736096868919971904477714120459389092328804885325526845742808999019847726626739629521101320797612837260847726652906912314893583008069080112522723147124277463192823775529512326631657581577934179700537402553028683375794710554032879919560785478922595965124752457493985987694051833128839870097276736476584796691793138580976763276294796704446187507325759861408858982329148395209155459727080530844918988850475768643142736765415537830929057728798848596083781143652794972634552813443034539588320201985968854214497248482695815397760060350594455190803205490112449783882589879977932501333117757335449177588202148338938190961402022801414860710716250979250161284088453363065840993547932951262028045950214945255156373625326414688346343002642903350414426393429554792317804918612975481283426112678077421103205771304191671380881631913823263773974056036486498798883902333348967981869174590861845720381542489551156072077175816227417963446193376439770683586340118100800419627914101543271411892985046302545307218320111231176440434802335509202971322712498752084108921023192139386165100003224238189150356416048948147185630994383669578387442275056772601507218978232575473550491232888209299051072938726071327994247867254911122207215126207366656303123933228278477781600747255143493450187117403860848422938547838536996532805066484142958324298961517078661765232112832740361405438106661634844741477579086328707971627501346523537812922297962837474766100378183318884197151799163322624718733592902185482553605620793734319157283303150947749981380372611632281764300452198413585162910632102761427903365852125385505396768092883872055489893016770134859617455982436099416226085548661469210443134696340566367876915802950822089223027068119621865996876986055404528369592503054903765822484231622244284906598628830556312416016300167341152017010713420054689522816605646318280519883625635914184569896820696949572127592740146281829724188112502651536399213668064592368225174761494302579655007731930195174347625158068678942674940731905340167079799413345287594928074198989153952688062155253442577278889984488752153207102377896172059843474590896870723742977591401980024046830106112584620392995142159756552761490194703937059118800362882685780577511761128736036078555782458581495475470006549668058448294777446341779551932655881189341291927059091838774483888883704027906636512741761026691253352768276615166149702432461252402230974100549915555595501448483562449973932713095391515584585915681474077127666871129644210322303973903236117032805095592540586016633065822382606132865546261471107517152028699002672543730599901502242180565652802191328873328151703504357570043095761773332174351929779393639247475656060695894516820381019638640846590830089825510699531530104275983074646002990052503886073464997442226633940046221741334873313883607358606574733623568534693105126804521259885240651380807757784447854471391681596122632157408244837531327869637912232181509036161452214310930687040295723482558342092718442395543142812953317312536857161989290727772283583935541199821810714636134031117292589234020180118914005120340152405755936490943273433529018418669295160451029121602336624491863174730071175138908714731633620231645638190755955982375706731517396806985845134494220895468235223223934918639783241607023861814455490169376750042612471319456172904301471475307703482558445429204243817309164915054163522105537591631041736718444773897738646659505579655780297594254337932654804524367185242195047708713721303307343911041022635303659883774541976695568395770560473326483345287882570612459447326120430581090178163009214884103795860419811844676097931631853128271723238858454060387171271059763875270090158280767254412517484379439371260251243274700433944662087540453504330442971829891548326295177349133686830235658572090702820197685455926859013976417156454704491770322478637449106157169055950795250214942741925802446718752138530943788150450098163696245234776042915618852643561151885645358590475897862123036452798447160601673898397231701995820225111923285871112280556968639262545895348571944831703959156120647338765696230308694132820502678470628311001250407778522941509899135886486311707428347920631384343772753773106229209035034317862892995771389097197942992819511017060714942776499997127203454676619533078235711381200462329599589340596630692384407781670835909053586073781278808949562010148878542619179137514786693565792945983680282130097305563949010639455675648001980585902710461937207028017302541750249698322727331980730883887946346224039754345135048396552497042482847854650893769984237240436043701632308216581901300033616413420630627580147945890766944102089295832140960072098542921133862710326156040210522247453195232470818435430096328234834743997392874592567783937332274621506347607571545822927626459339496392030422364117981851629441085488635003036315776627146426450552336231459795019807096002189682959458060166642612631774796094715925875950994520979273621155489723212516085464980186958423066992450349841199035178043264523779604221286741501074149181632681547734331356444977410339866000223645155030673291299718566543654899664779786053783053077823704267281654782647284600162231844231431592283385237126856827413745266730843654192278544390495135795396693441258552838309523688731221749987768379293802163920638440987106213216114421200488266776942025671385129519343071847422712632328181675418302719333974156841515442805012653828964240227541891324504833960554813898974869326034331488977260571028711923429617850197406286442882425874652571521523088546286346019912297370366673872920614169107240310876371499640330182537174505617927219822452448729284092416850919245221489159888916825518481820479261087599886289993966349655019357459667943936780712950313010948554415698308647690865998599140488921187365978656288890767662940747669774946803131467942363944867295777523224927643594766642472490276791367619836705530911824407045598012780667534387628018514670802827520264083378805972049384837296176582626620635364172816666625223651238910722655151090113718715922407704911692253918191808295546281269840181457078541055519250393678468191084194149827096638065430009146148708351511095352693514525212852903534682970292199103271284898054338500344821541686843310730334865245152752664696954106584397431964545901552218912537270000281651162482220371541515028513586619775372413856603091036171478862104033068530003407776129082474973663047683960263368645935298140774549564293772721326279915090677560242550691583494440758805258200176384585148715487208645085691163856349452446332040138571127254169851496054463603687603117332777368012316107078429838577313380818182755483055726291657000729105681033863100144480957688874472143759804609597570431112380947295230804092011340616471589307122448167757705706012553101751152112773812228872550450083684428699342800072415358282905008005711250884899468866213207067498489288028352338844617821553074694009794584812934947254734694299209311530974364804005867467620272629470389303026845609016644732432200282091502961923852866043599783799420627599172556768768192554128553026835746268946298807426112370946733828008391966164929194489144672976323549492930994336252260569205811154098604595326041085187960929134723668953991217031077377182946138116769109650576246578343790714623417813677244627356260446075931359767067488232887699533707719044423718454212921499465645325496069291865963722377505271309114482382815434297510965659818545179765709536806675030505223650623146005286796951033960332048543443582133509199362003548306849835836627592537575298457162331231677550177178963149370993007652091405086779295558613145761984017181328906166478604251919665270668475379411083195304659932052386797239595961900769703679248485691735491856644556264108736397752375233109533553973977454715242715899279176928929573032553953551241524640007759381650857765121871661804855389874277636379053099641684620009104847848694227660865717145912873870851941547119407148355563148353860055896245447532409454919320534173195186557593378694421321869114468380405378041786063746580371130851510745969118140888787640324855870053367097018511606168646412605854460463185734718998897858150944946899916730324002247117890316234046362252507082762964269266468449763996906931947261975277866843896108387957784225278118233759450434354467728411474671360420598169306345098720934421253316517834440783940439808712150327811386763471398025587986516279203393048380111464582648148240541943706397046425553638275797449527692303333880645561013981042910697936244869691909860209349755400700508883810767601374408706904090534040668320427616491500854791626223960013488929647671737095775155691564773153388615681437246133211288880225089280421341627860468847629296838422922672477732603065828768803209457111460192149793439666109494604114850917026448826542853431187227016290520566362891274879985465656866417988208461621097683909618232444094987880440691905613465376021274201079996797904613024340858192720990668743292021883924431907860458394115013960363903408769841565513546645208793266660888057535470319434893405391295803649100779227441640295679433984634139026874820255039963088100135336452050656799275298060820026651948077114971943942760639735650376392525381551409308709165233696649706901391744465047345504219550436078497641448817027806043924222398681160407326710736377413757115047971165555109125289525411898753053035534277795770579231757865529618074456199937382558007490005481746481815604433352147628292921740697420627932783439905415852924698264992619231365803186886508488888602288622435084880542764531879887094467315207953583794003977831336419654941440886066548661048221679667332524242292639072560782330182213686873918950595260062828080981558334326360849755168455112084432687991536110582593014362874662370400578127374818812560635791011630405761259063665019436963536696330800508780376942934929573610322404003374308693743369227909826730931062914716417868864086259905881613535141175513418920384692837661089128361812772732180979212594813053448263463966098701286261875630019019151441654731227281545496358607839324098148271277422974459223415254121569669945128948230249211426119787489532558381914031322356945479360338102041507682276881930422370716993638523492637279859285515835746592652629836426127686305149600253955319524395456618112842347832045367577505403795447640666412375538963745881861771801799440119989639171922929573328792472131909027195291780340167188083176250794272529108053628658640799832410807737219220403291272171490359870460664284107749147823483795118057054960756499992499070271478141102757919607922032520601877489704348731217571229332520114278115259930327102068298843008155117634217406430558683318905781820015240601916327218502708398181287160950944187257347789298630472072613818422692664064193924475162845815769467026308819101729839780370008524701610990011230503954134394413359563764813239798538539171259286674988481672577385298562887075635824726956664783233372784150632681899013809767523936919085710911278630372771295747386594328028607908047782649867166211394514727659700486658331543469483840574267614451251922508066691364991772897617987623303712490133395461313939030284820252165262716324987458749864939770139458139003411664504991666201155010284668355022228541135897716732419826313492699174731490605618395992512011005024054538620210958758729872903699228640266156048057545737221069665953306668047847477265476875868826932934690509818783046078673956665176798902468428852104540441173328434569375714748439242139061813627268317820436176538195906632072918347168191557639143140861458307768811366631594239934343149171740918383966458203749119742210651258972532849532300255124503539656273587885782664301000719237230208602425736795274440429503043414597400278856311295233095580208681444895911463912582353051190780290361074535800208925653588570340088940416569648604349133364023976045837761155806770327726946063296213407299240434186787007862642917440621756778133026557999828254935224584552299115026018444999379192131346905898450349474913078491933025108473193722275145895553034183851108437700788803128214526913754004993803877609169643355407457311755013451661179319032603465410910096936725707743633353118247840399611376808664031218060897753445712722780796297924025197503164256202269883354019697420354096734185765373011423828754206594400687300447144359651984960815127183030932851931332747374291946954703020477354698265243054865349114878510616633661859355849523162250620697148683828624319524801131501159832234761593125245759224472515428695366355649767250368302208288906689856384467529781941742047265781149455441600608324118865691474736067907585487403296748215814113284123083018720840410909482090889397568701774934941497238501809187218823011049486393364134237540354503585452746890309089410801059195529610747739980279235207827257840178884047205286107762266352156185047227952695581404315408097524689596700300374626350684526139118354542287751505209854711831509741295471058550626497505818108458987274663274859557682708917911789063222615997468498533154958253949272657428520421956702890625129425900257330294269193004967456211425872664264418256128334673433469685288225595214158954335329791748008029620344419682107245183040451778193199613226249466871760971884167798806611263860685780322786135118343909790872621750882631165631575650288178019729174855999692092899774633980474900571578103187004060632844983628457565364741107937334051481214540026177116169010535581623363577537720770864694951361619234222015080681776225633396823751617146292014814409886444226104877174090653781055116895910556809477592848508974115936933777423461462565888240641916492982582147945741013805433796769201916777487170017010098765581872826321675203130787093321391586449584457616828811879670633392257530429624897658382694347888550135544103378115448344829196148221321822015924557876427434200626837789368487047836569967770260440967595661616592986806103976924305791970530281477116331094537261783264313784863783332887254809916925316479761557419420785103056554944904412720173543730721187264601546570564671829111880747962953145899630733514705090790849356573857113446289650151148034975044811873510911800366654408582288145048747352946986791211462098279731719625509715394038266229309054601624366863699496670272443022036618950205855306579798769206123028443716792428456315699169814370333192494595308039258564086140048645976974969214051468033146669019660465253950353098388020217513159057416220493823814351143628244297365758991949747035705013656507649505406374462032122128288340158334210701681245226619783876638775678220563265942515032698844823397046836247403617850864446226385065204875849554195616769524215734120500310158615201757400374427809270815424147357262372486602593051652817663368653243584617938360189146623902082234736046192997133139932920999350797091476389430920953406770113413928926344383952397517074533712638159012450675208640895594996658158154827111896559617893203789125977921969564030873135528476133048352527018299460638062322528450543062865642665160594819557482951581746953394045110556569773801959592488052016145184665518278936204801151523066149211480254959557951554974722863640967332184373188621738259380760893820554866375039941587119494257183617619252232976416584670900633654159685035994534683674635395840496300246578999763624556891193930933631182968570175115472031981347858884956781980713451781519645959004599933815332535619486955026212308305935033556853593573323168807507397463751057919658958407897710369612940626855219202381165322133796085751244666044699501964907063498675454000241377701035205630228821164107755854022636363225455751919013779402654849359347501079476008500289087873669323925655335910785841353044554351112720111953572419986943519809458485139217006138769395440915306058029570456029276504906598874608709823409542165959548339035572595534250786022808873105326814004647004537362528021614216369951733673156447012974367999794822914657758144917556001169417640533013108457713354028834809578753607025914604719479477610889014937446191156232851618139903389328705455368469592080861637114095836377627224550557917495357072090582916464710827886518614393332883521826881105788017442255394140911845706987587552831639463406770439620838207708111478659806978755012407732933176360569831715636115957693403231772414919587460280586865933158516300580502946283756284843117717192082989872417843174345745018961850702340697613372299362433363635907970960301048896985021447251915859030427765396415043821358196052654983373125631784600112515298650414838978701146212349615061618721617557062416865628124518455826586924027729415412076615753403488385494138238742976529428496533599696942180448129315051672466538292453905070464314291975281252559827661550875172664974512707087023501170984550129727423518699404583709650574511258048418349302577427369568498848453223781239470486121525486942622234765436414476500383337340361482995424502720256305492442434550866399337201201545765191803516010706379524757654417907472973885889868126469301561591258983297474964862904520109447945550645441063162175931475183258317701992442140447827991560650221931101189595027271285266270617715062347020094377775460962559534066551222458119910336887517769039380925873767636942338648851005418599895370480240821155309359348158302011160273783797107150551345568088165271817806036716272127007635057609962276981177683832934845080756112121950637360564568650762417480779974647827109719171482172366831262275385296926372909520882121007113619809436623472936584695667766179786249158245991896596351549283475051486681628150757852395614119592248922751927200480915312205517624504001931249389216976422783008287741815885773109825100675983184605939315274370847924251236123303027049497704592016531465587107482832044961433189159891334889486921487753443561789890200243147462721637690116657217750259570134330773111368196860868215972761479885413583936723412102159336987854363455090977887780781342390930574869339712965553115411241238372980467007420271707974871229723951318413358957047300223592175595008429364969598718263393793355839534973693812793736964633806566694767547323452381703108606016777223519251848912661780892273615455568268247677495876174089983711121509896108105969051508311989123263578969941461607075626040984901639571992753903652390115589494781080695057315794920575559544765231301896611662443039909434736676392662639509007536682692306145686564767536389245157562447053096378182892406364265988957305815269467319528721494395055468266947993138490467588336617963678001670247444847241899482502219837826738730445742073914527284466580352199709690313917058387040782211539349867630766288807660180440316643491547536104174062298720470373030330435284265432900588096809615301861820704862901656610537458102014051906541130720862243708700765101090681478584137964094756031529171182719861937665671417528299843509629343834346852735617107236689440689976711970221986732378473377611371125216359680318606495264249205291108329432432338742017453604120890198290712568681099715876430952423607639345371595898545066670776571250905454530246749867201739363419405230440549898784048037069884892966716216319112100149366530433057119345371449022110457039036091817426830157392838609253499983535152968191436681465930231536323343375963334455730956795859779272954480007465020897401509210835050243781519476958070879978958784801612786289216491647549110294765588863737548094400738822364795162122177475657354699162385637361338400136884957131436215470192810601698549528156783893198037311527879985447238354753270052814605102876370321342033984066762772419024811231952904477647456354700715810787683820273805850209715468763941831577055974098465981833378486240849360595650198878536997164146619076144014960585192015793255096693588282645977070712116922714745818110726819993320958744354382388489187584607098618686068880836980629809634914784041972392587557564519914921840199605482170106634416003176840382683430573425608908630363463229384562075479454202140879960168191597531537546158932018804947523830026793948384821857921881077831804837536931152914290580927655239301775371639804071625053655754704776813495631063411533295802568834053879095183169803043341035015858045901452067710773597205292858497478279884947968650765736282766794805153467089727473947594367784216062331720231323205291004391252297775183551610157787117381064587001761875985374701616504075163733152660066041898435141961989466886032774828311149131262337745539213840735513966810963949576041271437338207362046629191604436949619408379258529843546473439341706849298654664852690971216497849317998025378699120137028173831836671211834508426396546662812705820389848751901062883880211787665469796080730001204743985345893182690560854735343312712469953979641507526842773030525771964482121918123979421234128784267456600147192257060794483646586591242349351786628240722698139878118424480413007872375971464787631144365270614965397974405249055644342895246438212120112585657845214579573561178267147275211322428854335299080053096965251244025369279261018013473541122598140018755346825327592944210672667849416710717585679931756421307144155458481797727355866909982297887238827134856839129963132651709092605166493855638360356689876117252852890033229508714928812664296824479565586141207312527373912603302961601481232029043348493668100146613129514866165202909064943245761873037455869713874686875155460978306580278356763939595330486815063846773174316826669162769606271627304458626177002111880547569803668509876750425461230923191113987703828405448687421991035441274455774542393842793526266036715065575970370397735409930460952838232228814240287024468212676276997745626143230946208899906743988765568991569646544951916716046872447438690120132812832577265340720400938199924325201480728909312891088606154817819897460089847625173222102808719267078727252523071817779620680139562187405620325982275044740374551953967076009958409035557556785488792521647255596278273726275192737691114261241198347763538434892871172822753335967847283595595634733608352311291754095717797946238831492135230092114992417226825270143330559282256710318978517882042282508577389292495967870653176280616992663899945685822955529160949380095462869552785068543273152068830047939916254878244857439111543250494651572010300584469807630387300518191095402093347423158685956868213997944688403924057332851462253916983952114549676922733330901758615688722735003197604209469679429426383355942320717186757376595866618783231839780811251096295479920188967495755109647454028386900015219291568924927250803222968435367374918892773496363143191210900890194236419379855536225647055581770653369553852439436662737801335787178490592686524656627769269325795678984952598259862610843976760105143623157324234633338318302307773640055184074652139378503575066756381617691917514249192399881444376329698023168008533239420376614903951116782348171582970968111188139919009362160080530883107273689385517362866905451497647176219215587145240924124955020874791095266750911237670133467232960703718401486321741543927741298021176014184216960547803206062409679383246120548002643767027481348968423972471204272528714236797003827067888761698413321047501965890263605624007459100831643527523987279025864177118690998953098127068979708610103898360738751499033384725372582952144162742382171875330370942692403481567824165650798547490176497050786591217115390505293944408390708400174184788489206597240596384615893265487399161966958680059427250459103788112019801639405259491612133323070276215814605924938131613564317094715242410418311999837449638836721933147428377854924912058803885878628311527008223829288690360784963183073222220026387668919646851615670212195749396671417165464475667805587797283421781494415754162838100486090731169224897388746384064611495981026175388013665107178671621893043768974676123888705341836873991293043653042392600408453753830755403243403379341366209979688012944667205824087422313787848235338723359465455699291170358798746626027876657785236904855925147877035227914376802602711535571233379003289389264064290182475421987206441352475701653370165554807428250939175511510702244159545084874547409060116265789750964374132747974835788237841523429956345706284795875554877681100490167703732055713743666318069252638336355198069179194210700706065673343161165146321438051046387410531258823633028425235898700945196268894863931929023978358479891590478880304714466404942341544954944617314775156115295521687408875349987280756221373794127759907533788552440145207259243615969587927898155602384878568439111298805418813054968694921712695345412816604090125459813152122483539034100417021859138657007394139490710880845433457125567735037861316649294412092707621255043778599575006893261927290435941755749113348072874326559245491532246199192651585442575578213873729996468946670232632273426472521444531246085948466130188231682318230412766789958686294308280947272248543449075986866162420515531019006950511600534667989413083303512852063066489339485820407489722079016393755453451685841734710863613809110445964013264887558575066620694150999883327606902010473629103801738551044936599748641671685187552231734187489541939334134481219598187316003272320511036964007574750405029546976288474942087995660940838614154726326538885462030238848197395149371296550598046501643542425841153553752456926786929053945871502049066226140684593003203503594417027463024696354385224078614083115777980229914511185781135589117412312228051770285048910552598950849192218496553016256659854182960468021571259812201628809032898110108201598143983366284101330858708376822319693306837087423892213418005519072530700201118801356521550861736906066435624424209060591895783461808466358327122994814742842782831382543827602199202712317172703918590067967465366686878615525455400965994060963600528899968485410293897775417404760056655282827718886180668490160244853945893657884880772157284682288729395058946070315666767135579534767226743865738208404487618457953232053676618236707974022915473096985398391093839505538026830975741135292301597865322598798549786425380514625112691479904322412858486733935047241453530707233825631888688846460552629050434853325814385261232015717442042624368076615099290511926611024060714441891101900216903593716516227463627727018619170919716621514573048358130240610284691796435072657228272872049903954644353691243844165336764118694074287307672829266581822278874777176876865297930860742630881600134321275105831107138200713510413854970396266748167507711175775068305338015588787575797150357798556954650503915722890688753695827196525356929148789439099855599370786616437137880194462217949787419659501369603776814646528020493102683873496290071803462633665499680006532014597029801637148827105095136205618190115980182336974923413112689841097087479902550289830795061143070095366965312446429317353440464816085589353971512889272510137839320038133137906627290267197788501216320582702570609118711741510958074006796400393568045144529258184414784651503783923938660340940724070057030759607175259927765147557361300131892818564389785477466339829277100111059226814418176072255002657538669136340962655157359305800758988798543709493938068078042471549634704463037749808800992811094579387277997985465075270268591380823013943084895627512050842242943281450326945967980943840917124490051982395494181205904261710768267666212772876303166795886547237980398881599882937615233697080606497200553793794101841158978969905579279914152838612520775188451384742863245881241186903011397850291487972335221232148745684785599463841769720856413043652881332553109641731233324562302943852248807998093643770414199744738663102411928156983919356711065049534745261865342417859531646844155057838855718314202909058481822261885289338479694558426452981228597830427766801440907348397211327133333327178114086218810010181551728839900442518352051781657446592132189853670575393470984117721984581135548366223783767416659708635659011984991343512485502309775883491110140410305134017385054953318046187005071554893936787577020014390452807202657538569484921495614456644978553892759175192868684965966037809702874452384211757546995210385258995465038259854627827636142603989863491269127450502182640878372518795237748554623317688960750397278507065091100000611015082808374163282806799272313283251318116223933773153236901383667284998822491344535747356594126473096077567330985263756210463921112550284155477123765718100490398325943995305632467220476221256800666730737253090060024908076767614263725338842489457220197552582320245800372596980651609834744150777881374817757113091349403753765490747109730711018529031632949682792980765899138315153733298920613040586371833657142497038598027116346467460150680866307787659090219973661065122641551361065102143933378997037646144827384930278853335416910658681637037631073559462072779363225637331762516272332081881508487557819504862928877157356964969098792334477964801918758024885618592587325792381879586481078964989748884940582876452140721441769271694266121924966946779095049438013849125076589918532947443377819073741986396373044857359546651303875938032217496725974528053898508940561984457515248747304729274876388052769196144546931291884342050352415419153514842711107041052241217096714081462991246831218923636609882362008059930895850689662384395616648234483633108913412101347622626721093721154939710269675660666934867917682899736483812782089565900577740686923513652900423122781555304541931177183912768881477606657472258894530009808020563747342845660233852137100774271127884814781447700797860599874529089486575049371585738460960787797848095053830322346270502604680469027216296105216278546678967341396524335176143212680497253588586674431846370735243424348326003783933217450629163689860321886756501682206152352626709185406555646158309506805807723255408675480087726993896649912507798375469613914186410939391800314813778775916312210233391094488159876312172691041838747431087467406002526695378326236365628254308819466990927347325741294250742377056740792161988981428631996543477536472140447768905013357573784619641902610863868288852843441294210089559611711161840971353027980746814178347649240685068836943824764078230883129021961454204239447105859575965391373377360631910082729304895125370857399113346893235257276282840203765208584467190729772358754777589724197826497439763337149758518399858534215982312851309006099773380291072439760731354149951014269168402139115044700731261318215280952643454654964991319939817559047898371847675461978655216272390779070281792960977826858123471861315295387083128262902900243977160424389836691751426392979058730683099505193430925479457165639086687075774869888918997753563306303143868538031598112866533580908625549608815205162508321638794251687122707638226253432388635394110148422461480193240735426285417532229416221123523434248727773377875238447497043924864892307605988122457491487946169119536780880222072694471952935457844662437100115500311080480640939719528900088781912850946403316114205127738000291640788902554273321996216483333052957414723842373533915796721740279990053294434075196522835086933269195332728587326614765936068013053160967971664265181368303416667526043282769247768053234384498718271205505071281215195276603338052428452109565001707126935674168344740545401085263908987139642204244103190520986832380620365568325525403146481962629541360387403022605592663787467164727110221022488835441345074872783306275585910290508655336039025666231461349534364609695654592747058787737309567146187167593787138966945838559293699822717943294230280847387436144209536828148659324875619512075157755513498536831525732292902569657267581099442391513878705449610607474322242784362807950949623540778697235220160319826774856426467596711126217657328353103403728418931536311875256987667408333878640359419952259131051407759248353221758928455301119885611603966643240817007401903306000739539576118488100582315029169854437646394692337389202587310879968184372375004613854918509506698198242747599797991415435759946041966285644664274071190639172545407807248770183898778032439014828736290964490071533064744079546792241525944507289213835418281263591783991888871630814573724665095976666302746085296757820196194945096350031643572768105907748384184349094392403027386046680858165179068958202149258385582185160238999397596458798570007457590784843997770983761286972211564301096849641412099328302488547783929719838601175193216147752000067821928918372402975664190594927159585245240497663992511224399822741032800397465360803959308359360734496983218677844450136303877569692620867232244946679288817817385323313293020604911892020895010952503090141466786132362757883551511154191043246218754979227628817517701973172819011236540056477518917128970465891529458660069632978869227922585457841269558174767438288180514298299668199271158194629646828943507886813388068619743938390316658098107407155838942548136072839652999015595105665900066116755776068511880862316629118365231448300512723724389254180270924943818311233109961866733126385075814254616384972018861729573518187531838604070286590018909540096723003974945435895063057099687542887198071437764020696360107325765509427135125871268732017506376992054669661945797388548306631559546965777217058262617697566201128200009200218272975806377102562909295464332995841834483495763247182429748969670257621433841681668320880518369293776721060930992141667348073431368831357260479953625324974901321986063267950622948997141558883559654112394621906964190993745043938279601175896490395553516849997922341431056165724510852331028691064603215416339156576482603425647155658311185040673293642919232966503073130202316430809472436205993120171136364113501968407551488834821504476458463157075767216576221959579220025141018562480557374338801638591664345698201887118304301616846694224950453087072234128284512305650958433517083971697119255451203176516126383910961149608600029138542225938806213757573660588601891402877730190408761437251986642341305617833604470492922645394303834887544020534595383432137781556721630447445409183586723095481086995831276549296562901896738559389553064578145775696261340459291845864405515651809327801077016677297858088846455724726715484011688942632671465366441623475471944407883858717404708544192118510130952661070632456459339402901053597808865586415504428209019053135115991761054312916519276768374748484876497670495222026620928203909610707720070642991759353666896550876237328615334404631299321958923137354174672483863991446878522008357397306890820505250043576057082976859934269446033221445335760504213484799141652066880538720844063658542494717609868877646448481442218108356926841663867353546417947195364982585580590088941305251563948779898852107879827065549770852375510437645550542922047408726323069106031066927672280368660902708509980585155280575038976357958420385293470118852232398886711317147811842538203451272679946538175774049989701081513969007872608800665291946718881218759564587717410473150527250885879625488124690489797539064759688617238837866474092900998355697802429759582852138858455804752224083875649870949061126895391747620558394044498725765966734085135823123951854923881756033608178629628917553816073967172937156243337725876717474178723910055791117854315994036688702334382835848262313171835751368463238862906597789004703404704412787607466504944384606549000229095815840225068729523996733400373996343482395816177375756904754272739576619407643828458139118730823028578213380472588057004023217810184174233336562371604752035743745336460046515622099171911275842486586250318218658817140273698527172231986678681921991081630604656286399383504907309005847917852610651610317218259830714421420478642953072683742475908243777727200085462894141769392573222995897868523722213166171261352850707244356347508129635866064997061216177857694011801222108468470235144803155168178617656007779971665382918722939998926507617714461825884108544752059644694605999620202171717933721659812310310621677470719015247758683152972881918522113188512904397075949652593992312482330686562904647257413898938872687809530969489347009159077204094222247202954645494004401693652080635244152256065842593137885631816763204278915376882430698205835055876366326896943807098147487370842703695945296351920245113222367590297283245965245239167990352689048679959485472277849813598672191619304450470780698696040859338918753823660069789933173327089955714116996796407618024395234583789775499902563062328366022824589011316371653884098626597564808211868230078223548298192137348302589287826507121748591423981334184509971731043035546926592275027189384181437365240335753990345116983828849039076975893998632594048903869831147055241430577430286434950054963463898972166386079718884032970944700262156729628337997822926487431066900120204243033730250184249369409591477546615387072836362706057801922882714572449305327315699017885012165921207658136220338111048261609590712847368226905356858563269463976584771016702287811509883719618568808831211518959336636718011416707052215619348980525626548381052109427231071426619415005430172728176035656131510342582684311833532741646804606797942610722081935012217301260329470560052038472896102952732778808736780548287385045817877465336584133735907345135541558252803958657610138837763498531779589253145959904480408943487360274426053074541693646752467844731869603418579616917436520501564570272572644057101970293034323765498844744242418252898702603682986793058041504612474741187454843167760070068434534010633255909553586864258970056916164233220076389400149507596783666244870203286777118604170578205862262192947494569656030741576308533942029841558104239953051087283787979782079889664160813355925984196413209151150384529967480712001335590464440276248205361351705787223372898696891040318884317934559842816773240094624360277105927797757778990796861320177073218550894119258161001496249656844873045353879122345090019431678174546871772194392295566150914743331497001059388554767940205530628742572750507501037135863097724229543980842260027964675380117702777709843095348815863493474855456264818228693764083880790229398150883173742446380997018770157605577773485660503412265718287444999587827878657550517033666200687381371822474837437398526766471417733299935462584632690942447062469920192415150965891284327280759453689750391609810120958871258899210077859196948136044510304951409086314201190758517790332496003368264861786430102848785968833468027712185558252735190549395549521996841210237001580739887964633867687955895847487063262811377205369387183336823636336239336194710290041394539205594127948838491365091179666738404283953763483998434814994554219161700930138425847202152129136967141815143297272077989671561861412788361869715484804674449394231556122052548680089501343237502141473795726976459013687515657937691098467974432471790013089665968339382271141139448044365144117121911427360666387234518900834167470414304866923215862369289879015681910932007456262631432619409974690009196892978331665564613034489598897592991714770787029514312688874707798662417710882911490804495893913712615320139450661670415515245854364603756960246847124256076691624219778547846533957329185733452157649531961984519450957029238184883191256104655322583803868485162040020900387898789344328821868359138440936302784722981983885288876827876073987281012068005353224474814951384323520595937052159624789750582136846482422765249756575645604989912770182994782558577801489023396322039536957735686263959259402272584632843975636097139529605994082777954521315280452710597938346649844882810605712459406822657274627767452369741541592144801083620070048486093290171417863030134559756798533980368891831531712841590123332856112233297828861537707473287167187934668388642817141935022416793820360789745321878298970714710690154007901984899199849558586306346549218172523176494939323375101049496403228665982632621928893985128190028353992821959904607830878472937289808898325293721385480040535514379128010805595149864745209388536837797184914679686391559276661376314826754236689154277647145761330988923374416340767683126315333500398675169942373990474986963501699062580310604851711995885477372326426524317087495933932000820071154331685090662605415444839712955473476829875132986014512903171289794639093013946950069617822225843378946440885978867537691962302721189355325755735126600627307595980097970455203133238385842022391811082082531856156441532521399286401202737734545763247453184643051891000417950553815525686998408966000491056776292697215587900396726053529215273452674654498556863818564962076356102426874116369941400938472808355140180519728488130056285930997911391844939527172355930148349063161108378715494716217361603170076460518633412335127492882725530094950657891458384185878491043817400692521784828527590572499248779728820225642818468931282898643195911712577364790333442422147320839893357014505238203885807247045192625788326876759949787495743435819415197021063660270265597846701711850336138909403533034637265771763020788218317076312879403517759211727875227369668645652601512134973707739179659903124842571233023792852820346687840199463023386026226629236668126476041096916025160686442520992465554460422062040769255212347459812227619807126724556806670791362555536799123625374885450948914176622280533867637364668292562948778949801020796636835944291291530856614696121949554914513556491536303111331336635208357960238864018835838765469443653791048363314941992253633327305219870297026797598217067434797243093853872686905486642779082306390779733052090852980127702011580886933160650065601983656583599402463422460489149312535434706894797280404218407668055352439810020899549639298929359636599033560318184556500819696531701278334229455037813348530719305342637327920264339644926408856333858552604086447460579433788948595239308950378407761683756850656447989469175510713673553794015453146479881639287644083490719191628604553860516675267161521352600207964306724647206563664738324795111861908694119384295397409009624210231743257927624163355139690657712402737376886727193330670481504140407071276016209200978845349644940471830658648845312390744211304136224754543880275014029694869150402091595157284037953996892002586345337021891686560026331397667011700449323137516660629872927726664325403507707633981267669149221650795127255043055115795794906545468589883127111347389415945092109561248126129221582058845597431909976805449885866987392828233980969824163026342989411732197478476168808600345276894030278043457339296393467125196892283740425111399225174731348332965471298161680306268264320669467704767186432325609125043615436664694062300576710994621692876070228152883023244519894648228743149593588721716708470930806916883076724665553050668092944531129104439641028740070908704012568181619651183048767157522737852222229948813537996910571917274533745242933191976511682886709338872094584114828172295667163628660217044394039311844566603144471158888244779465094415017456325867790825634067587039753930746147366232798448854714704056501977005188004315400695792385522567513503739644320992888912038869590448785522701916839837389644360803016583026117211257371218018395862523304834414363864732667292419101572174763896828758956468580282382139915313244257422367310360384601350684475547607417009811997914185598905324305107542849079213731899415367951662875456834638146442359279846362349903076935848095254010312822745469105893647493337987346754394029805684057188092844452475627141610324703845454846461660772581835577041007233613409758254064253807393778338988627247067113148708999944639077059233311578127978197081909841430739359577587215321674171044489663425982108660935409346666113183955939375255058089598448086788542827239016666168395861270265134493756092250656327330086613803704399390360153858947423706916788665032770871148380924048366151648366804211818927852524231549888874249426833936301134237354393413407324327772674823318941442691630314892995194035556942206235074262597510780326103719674428985748105398992039842275383599173694204557136834698371496156264136954906986044565581946916988179509851597694569517055145070964429223661467225040556581251512189343522871196401098389755791118227846040355263715377741524897893232472728666449335722584769327789704712307609622099127225859236685817135686318016772033379620387668879711778443419758066169515632655506141379597138387075959388745002021943674400785150957270783689849086923359760084951026342611337027140468760601454118556270020678913004678999268115919857614761311069686323504142123033739438057319635345318972141259319577006532947165815431489139569384114469152614700073349002368043697583490963916896637289676108452583823202900519539215095879000970484540195942397075957136050728864181576072348844949141123722692696671285795276919106064865546918696322901752398382685824675079236207345089858485571475798767738558883436234718372497961535863770538696276259225516415407560020316713645363527258644453073009725272430630665107478353072196618072188026812688630888762965872873922205772639402261760922198009722013203324394314225305984882149332860493219734765087752238994348619596948569300009089563496001133666490526509084705136164884871910147014648972194121157605046181334315276540740221507639537994701915348679481016226041746671240597571801997907893656763372472335401132240083250860212881441117142988007761429682700798172676825075023311276175358054516826505006605654921428119413728775695129176834151470646368946785780979374671618956097305323130647038675150528134517191542254999159191307858953413699013752224472081129367121316562540018506298565745022519829658774078601009333790214615799108169645220819041626996214984864311283988744636420461107337872684321251521641886165625755757246813304731750050596551359822965184537059744610236830505893759169659833071254858080373536209064758269520321269798904494242606787456593156986354778910365666729255313782931429740931006639703843275665073813597459903490191313189243914830564897321355622284220214340101749684326169837314786053500185820806237029874069369873324222286086421172613642978798391062195058553492270911705912860734548163249167039676211716230254852154709693211561319682603989310583553966480474456171461102589733407796950795199952848209447877200839494470499511229847108153954757709979141601557952198562987790861730667143122622637547454599036613881032277800329390261196087580746648925514958639271373309400094603946050266615214960346154293785753722666023027259811757266292206562479816168425627930799689128221174463378743863800545988825994106600759262334100505370043652219403047351758585612657949981442727943175870003276230273401146358680407093790901198503440024473615111550073710076235469160960324662031213372457603177712925662173633164396932260944734395585049391318033219225170129413024089090677772129216287546402348076635366210509918395584390476766778236706389975135943214562133368201035327066385369002491189134000149403414143378394386479827664453521024696245011802364630556415845428642690827714060197815863012992423656643052524025968881179203062152216761594716317797384386496853881402776432212937664032532026133629823102265999498748669487368462519434741978260897382982230064342283332328553367770021291145610415413367120799861833430493993000281407571760936270521588683531157195705327881465946461234125119144885296294207267499594016128819086408735794742170999691620751604071736377563987945945580635067847112618547024886070670103323040162469003831867956217976220291901671871175780743002165064140104225362049663854388393827106720687581948393761910841180156959323073861952274423115031044420350658502062418535509450156442961089055196850493996357037940739390443135402612052040971709415511985790954559663648069030787648388879921388297455493246890358493320317440698578987091902339362185418856208382282082721928042713875663555668308373429806581795609997006814342786606917205148050891360801497478837198294760301096756657883271989612077154358968871396303956037833373675087213803517573881296428902651513558972580574523106506278131715356651943442053465520627330095244439195570579478189245721439704736035124741226074014583383903937718217864986197096634076183861033841385981362757969241024567834446670548622470386565089736511085943423056638360134625824409307659264276509206836267461994622498520224660970764114823099731630485148942937069636837190541085973597134157572374250084320939980516912848159308463442812004911073509145307198993374193434506599071772384337946512180967261509635483249092754801647977518159906208079280177214922486380205488597789389996034110358993091549648590260039301165059726168933641011778391122220298833773381265872051263061447981015681848000815354172509327843387044467036545620508937381944761754235078784612651605473014702176011389051847254745615851117639371697643303558536692126323511252560694259585207301532334160974196945172166494236026751939204283555038479286752598734691877506269523714755724825616259781915827721080343902688686512732294966745434133787551166871058660609090657372398130948406134436387926572674006559063641077486505348546614751596727248838571314147651079434073505647769379550068471770670597414756113331685264712064149704128772747767479016810573557387685442228018184941424390340445102168307525619979527598014157464720881008771199160531755928248289175652689850232166578752594720019296628749323610653505528455206400279644968337472171210287968001294711005984469261276477948054458250881217519531838118063421244880991102985312786143259108037411128787301387137009726638253929298719690499559274905597295733943963335998390049014118666408828831020959840900684552182371278175775610528340460777055022368646254261250912836493320242874262840877972199365012619762773796918349560643747905662857873455596387868742848791250149169630502616902412690186558825235013529558105270730434620193515824406335387971749535944718612401614891893903365558187441462223934595091553818103469281850600435734389855512851992320524685079180114105400324290572151446545307930365538336097474674076136104377024776762820574833408132121715057161246829121425785039870664899513948234838838673527167515229814224535698964203232561393014557397346369103896862195961807057423661319371935866434629458172190099727201386097700808900979643622044311983554176617311092171461822848809756080859382100874819192172391558329672360784871080702095082636584789038767544423691736375308736284710144718838156896493928475260601018205509738272909684840117849951607567018081138625873115056436471910704567276267272975691039948172488853864656118632042943152947708504291347996904899988686377906704525071052657383543062251201386477534394902265960010214450726048966898163005380000957412140848572465412194610660598346239470464729324969435588669781443785041690536856765922059267231627418886637446212864388114665098336414694270886873153470985916295061135382012176099800761922480588162058860991421600299200180894161090588418748297735742985840555644790209558766218797191366294954039862397508662074797871642844980080782487809848118165845542363500542161928073818212167479141524703215344586705206421159010098180349653762082471242875990525890020875371740461948600097549612163753413904908097764739642042735813291601404778455559794266075507111492148426800717129456705055594524083417759251195728326003794771868456274066322834900635017429387118544446807594270531248006377672501896317594983496712229474572648912031061028440858329943375417697159539210390320954302188163387865210204597914043257207941378488058917139820470426095428915435663855178863540730969089266837972433618263832562943781878623276022272676304121996068346486192964402064434458806668619777412326115330030065732740219186183529335789877327182094355969244247396249380098454056499900487839633833986494604557190023873810373990032124445513023610418898122398182060106053219976698629565493483902178783428298927951509891678503039701980164343774730908852209912833821417146305950211706413963544435958169127067354642239000040214419895621242509426948735775008136660956186448243777175566143314118188235692256847744263418901446157679758405602864324865688672935571865955285473920083298388809788481601377632360020067398177395751577466438253743156309878110451362000128705142351845627326128315542649257216687997757416379174484683213690424157051010385098663617257600042700671523707956967512741458194002155507907008617779433333491817407890432078473458460022933488933370317317099225828179214962776682097035581606382295368499093483882034951643162080052243775554153962941669095636451372720840504318362377067533918059513339972333338162653039562779452093737530651767815963509920301934158153504626658096236637617682649479511056800244339531952872599075956469842858684855378272810094897820553408233970056639197752670420187410381160456813275842508648916137182032456233909529965390597868276100131114911437012893971616720708423863731473427816966782454922049447807113798416720815377673433173027633368529924738100777249420762979579275302317558350126327715190316233156596667845357532891620983291430901940826787694292428623535451866348603377488167739357085952307017992340788854747089293900928062222923899805285725666891085550919334789255696359025746779624355965363757000999548270543489992615064739655389575858672728735394253407230820965573701621953301760272937276770282920432241601458480136633173810710691266086755366645553199039786908180877953830924628112329425680756245618339627380400842360495805815238999920680707908919682766316018223668095066616553540697501010899026500480515578708271979844313441368643316413685722546738525416995091090938830660487633727282480720820839220788053988992140038017450738608580787484380347210490471626052282487439555354870062058752761296804682876735166705812042174260275714603463716075637181296662364320775963220747757587135550230634048472416386591395443087050812812177749605483960211852424029178140971820722315871935252805979651562135011781319111860812320153823660533539319431651395002671208349999155904502633879329175938838432332912665816481748382940182366549171845305726788920586578577842803876553501072250946723982995792352291330916922696846725294685351515623771882681820646724142787941882732630390433838016340261839255059696154159867068066382472612953153742384799169652059191239159126384836238087334275641671304568153579761786974973681499302460056738220785342505190310821972354450777300015755264922152685621969861212668161200557293354230468568237951294331561695590803515855234117448169908230579669487366495778480046968735203612074400920108058771860676333998094094864839743764834559836468248628885090016596625352455664933704531252042287338903982234881417461552919334666369609148979271229671737304082341840565939403610484222071992973504974134441136977932186994060755543955835300825565647136383656328202023545483492341473757912370600965915520147479579048559722508411770859575107064674544547894767433944772218527280337458639387354594296377416782132479094287852809936919437167949263695063252464543810212052356093324302103130198318714361774050416154259760738084694060331641960004586988131269376240193932518249484777062453019454364135778324446902645095468810996930262033211608838515978984975701603532660435176104648427674954708387756083147856918770177906621266835954121370101796040881099057842160022827788127784129188423221867152904670260473766285880468344161328319892342510734718608616753113816717669577949110688796195357328326281087123782768882580595899026781225438456304964171349201944936742328079836771231299306651440433717725652456185457844589129623081522176116293437419553080984806655209178025442286288970740543254832346080169520297758116378145251085102802391067053290813295993734220039582724155825907604370555140795779916429004892834552972881882121363802242833133506471732914885108542219623192552343654572179213544781249397183170415133271691411877376663379369037769067488098250884185480591129813942212976190511047301841602672608012481222319828101030078259931069875838984955066962286260978479516101272736578991354994357205774011022934747130622342257512905653996205094537723887635850764467608680132721722389690451742718467811583380360102445696035401813255334334378239274558214637123020632295792609788112707925533262112194044640397271502123472403961970599137817660503898169721189448644914982425973598183221063263348942705925521389004317057632991135573063846539255509872286049984081514853176947258035012768332714087459170013017998219946381848032873008371316225691803539621716845886074361966429612037493077543236494054736247750778685975234650474229823499939703324893979264744451195400317405407712507165157777126846609669973569438022269712200873400380165058465063974122333657374497482518100696845182695889339779886800817587300937489714982761662628861387425873883176751208234494141969719042423445888235211295149371723502097603052887164081444338221826234002762240589788343346028147209965672020992503141674461545002315294441142698669397967636629826425819131184355735099783448167400572302584693743599994931081466050653667987081811780606685509430137201481660157340999479852410039132512928381563617424777741201568001084284747164776288264275511046895709007897164745663666162098520640052465308535511468815605118642572742693061482321628687411616057666584780159286627709186697321690001728906069987119922688023196846740089785116912399943167246353815140950866148119296818241135581668072012741248795116087282793846260123101887897080152344293865572179610344475248941587653313133530587372319183033679790653462198759610088860989533437492454580460710154834921852316845278293403834542782164555507527647552794873369565052012143630597919973654744753863915516305670277452967199926635477778803522010597826727026421023476371240282993709568777189953755576334216408747504063739981468709412422231337368591635206813232033800393902812523047826004585269685233499839089052579734118732121649740815864072138532265041702038751977916330450140673897817595343266609611811865703847426394447443918048268005223299203708834452784624684264400593190977641073011682484880178988346987029902363308441822303516705167839042246020895019967073244799578391737420890277901448337833107443643965715175184704998190177895041727401005501902718610454015126902372739803846903547101764936776368115696852387651592946765199097812968284918587440012938637640676095382299629402260472021573201058646603782057248068337103896175240523567673238386152696393633702944790939734187552548424633004988481240362333310452131868728224560970870016161452992301886654369727893906041148583187703052902796879487149740988616690355946373347398337653305284243129756618053715153866465807672803967008200769502732715709030419053459839396140367031473113883869217040420565445557290835819959596380705198567126080110249655408205051511959965202866469634944626020804826992637985238252279091234147294029613148479463378271445481925119735235460342343786326095540471718499001625421629894482037091634405432063499254547153012698721429611193347981044821143866683589447675562918455381305308280040754572550013487488287331540483337285034544204762112448278267291697702516990323205820252337544146573478698563537338750295994892367282407703678672572155629047881371917095669283431552477887019594264660642821332481952332968293566762445842513578062499173621690293860813648638381991967778992834851448984973876045553204276678361552884510824043276247620179071771857821027794821721053103405217507177515163347446188909987357750045655724289570808466937822635919167441616989553123402678991627856490278064968428503442940359046387667074801821388051664037234552660083906102917235097101436661007517168928317487871012561508797655567847171147982361436889161180097492605188447990740700492015759067034263395315356800864331685872985216121710577405211673683898095504763763251126846574247365213832140795711777445694373808478479813899263138319504679101743744215552932591931243225190179735701033352300725379701653708840402155067517070191721148147826320337793772029916904210640626777422136441333370840086417177502724623324133641613680613276515861897861175550554019198416284810511112856635559658354751857464259150430118085687183456525344589971122177026649955573782432963580613498647291382653587931402891880385273657211408607233234648866998887597304676458710495288830253147009973346719493982465497660484579334266031674200789117768640736864090088525165158066655836769429397341081376826968590183414865636367814417938863595080497315914554089858673978482007805322946913934363907308585395495872583389168005556089323478691593307903947017718899186912541720165591213070824796795512947484321370317108096168092361549666674381685597267967550314213659658275316268012351126129466684754805455631466622140607871093395859930261273261089445663940014518071286206110210897980990473009406058083253708136756662403867311718290273891790953335196007204563592338140510384849497438920134739262405637037442037423947861321266698764491741729975655289093166503364321308418209693945240718000526710820067988656284847666658647871875556453170387450900468872454169767452479697738304033543316339227660442767761033445918579037668741569786369188458931531491799555343402227270246433933767804612938172658324754350188282608630141831259553173042867365980159454834260267275850172127984894749148400293769895159743773201034097859937944140106969052140135807100175233477435478505065578984877493837515414964687022178681891141422085852140005576817657185234273215627101182163438833195534904918103694826166691858347702412847463924635434764984415885071827702947963698795304372159416972672289149381193868885051357876630116373387759589465068091607778727709030614387650813966395243210257869268669107163079068048717340098866334116280742616674925352477156939547378988362002949673061053773488233999178270373959423776516116472315633829214323692272801836980679193738139605545843823026391453710891290566707323395662428895252150307707343227310498624881469970928851412749017700141833482653659344813095552073024035307673130237004609907525791019743084282735329709163799067108203145400422654536813664750190075167571157770725735000827066111245202057061964845775049787068743360541251191143876422006479470485106163805389066338987323434183954761201473724322778342978288482711441810589548118501804560372828181538075683765633450203200084929758808532901887490537647285203591644311467372413192759419358399470965688480784498322295562256561406431751571029699951623681991376077560971398468509255912922783087885779065558745402041318041829588180961796338985090283788676962265740667275982904411336490070323981693244010650743936007812570325121566187155463284108349064505804052439945607617336801160358818880657016005481014478050096697090797200013520221791835274982337602273828553246828536635020333859374796412968142511684612238340415812860949624462320532364906077226478392754249538164920679677933784058429946513364090606602403509798857807055354781847264146966942440179673119844169705694802365341189577897600862312236321707000252977849806241050263808194752418097715594963741874586679110689608562749229370922064500929431300532527345148441325370161484757112098949277015765938361778988827291411032842189869847366147317329657836869002975973573536374758057349895517490120673771744695059815590806931736882392258874839773127840532551419110654356848762380007210230378883547527460880018835447986416239517602097453896803979711833804874316393839631520820017287025585436269512134549509774206906281820000472626503868871225368788326050058613791440438393167961824055390088969692595195163242770058825419019615795537248323440816642052330922493308914001896824618435572414955573724815129663884248305978004239557808165739687242277661448167517266914567592683909491581441008537570024388776894400294192275083473684676629754169061288349362004393000682230710320927568273385704586440971376935234443068627438343266111695985881211960879069308448871994891058070002203596510476840170543038632428311690083085337159786904824721208155419646072623190464624203492858577342851085582567179460135697958808121522348157174688555563936285754720164259846940767131065397890815379713743488587390103831790921008178500244148529771275334147020595822948271506109447362173464651724025213252889933645057403717664731503452200611483187521076266966910309355543174006269737710538689801532442006602207535419135522581664606031706882922611527124272972243958732066751671570966003638826430339598984815278695874076656112019884702932933257195185649536087527235891926961351535114829310897734295841113314406940761615823288390846997543082270051318705458051338952926146791504798368995685149868965063973019933139987052570886666411821830121936173251484105376758805540339619691757405686208013474770236705816905213216164433512022987900184758245590454158746698337316874942375141047123257905157809581097052522729114802092693214584266793495558501583635518347923665482068522364366456916544933233696743345506634440379846979675852558801860153561087817749424613528843262215349336824164047293355242292392410607403351518430744385675491299204547340994216774069102991086670838971395637047782224513056542930249234454768566432443002666325798836476089090286854887630109880251514251848331749800661183999897874576625792536892611104311537166767268190608923712489805755216258835294969991432605794523527368610056916209770014462686143349049748655662493629443938798199135523698943180016898676427635958644233336100261874815972087052589523811417565415620495003656215745997620637951236707796376109157016618368534624903197537967085447857049724188007346289849379880949073570823174469795013668818047228436565220003206827307028884658907560911661114317368495583716764091602323020828253628115031191189968704105863063898029838791857008203265487053209884935104214373513712899157561423774420097860443804662231835932014316969474326656081557508835371271971318397532132676449732167095844639863399687158198008007207127210303899496969103374532758576520009059653570190164494435385029200968218619297099621447269732352323423402582478769990334785348677862872206217141333210111046106144283952892907861390548168865116027987098617169524833950083925547759598938870874648576239680135649163361730490633278198013783023811559743713282775636204437468431102421282264386110487080109431464386924842911080680357921324487504628983772433575682903651162693420334854992520748525014058246793286989193358662269481840507730094645391298885490120534944251856390928823089669188380006663228904426917961140455580125027304402304509548001991645516467885473464199679200963554684784110524443003119270946597376571869365291437271574958131639730444048478527542500863264513940012865284932533089887728390956953675853664057961337833377753729749216308964146776010957391624151089338280624789069120056005475323551820456980576435249963277656145269889220704148960417592951695588094731975783650526194727128880182879666823977212938271002564170914927100369739861840953267849315425011316205475176532625298314113753725422776248899361714088899381387441429897163278360398686784661681640308737230482160847533618447215572067164984388242144013904563392677554467517460784595472679673664067346808164909960120711243554672850039884360013421287605421907021882030786191062727340058727237529976735350305397411761888301180483678975319124761303576598253540991791615653545357572761028934266405663596388732908305168393309771895106872979125613900873994278093975133993371914851080439230066385457748527365935615154811840572487479077684708614054237161925737151207949918036349979358445307010116213154594517086212066238402667535064016514335267485773756843981302313614054923486963685371249271066532416203259509955581122116550372933871060814320505477321844957051731383232970251504038189236787907603223958928179693714822429256118375437589023170533687295030573311277802676089689289911162392354922649114276549644373735993029771902940548181682959934245204144731169441067966403977603570053751060400209844270216060087693461533885872680352559816796069317145602631162350039921118601978253168854172178826451295668762886140686303008448994183303732552935565263597686082069458412702881883224184696091980845583639068635768434758647315959748660080151895190225012053300622485159495888506704829641438579884241071253556173911147575572561331171228293578254907776521987017188064959739481808287730348110508499884751245490042573563721747763857607501625726885359889146476993653342938041340528860340561758983627002047129487853067812346729581339220618637264550302794393876872010226374669889393866569484176187471425252982218115129623800922835796537202502689863975548038317429218407371972329750161827178680877165662980563049678022750117211245402438151341486536056063789658665336206609813189065461908326562608846409276834732950133917501863419505402379997299933402448958553633556280491172032122182683338899397399284979317335777632423996730521743449110921282598312784611794788024852083673875854258255832703934525411885113645366353561067663806300700484025678751745123795004963924838290098282436706385442174202192412279493637345555156455959708253007165363555559835491016538918080003262444180282542395292271069797274884572975860353441520953267254922832615496532990425685075340587993036918576343373322791810122007718614237275373511599653428201938845338044552311701099261295516748583836133065011080200787195349018464087703833646661545797863706449589380749440439525579954483430426063211038172333205167664752322989342034046538999928543244561049240386225816656703450550304883117869804249625446834201048430342909335059796749568499716001013490365474621072690405775618912653798384444317250872301323676556747558981997041954296243454875204375326268782586226600229371108301824359871733095377501082031853644062778142010806802544237178358447223019106478810660054147186034537473481597989355356711623830703213554911917948128931111324403016046108359785893234981338487627715788054475050759249178535093051156823519029428659172057399748127543083937945708298882116842503801210688384782478989398202615841097835063562142019568280439898674184389622367588269801770973855084038992921103942956762458918063550508536129885627627384458677904230511004089245841902244272750070957350379056193421194396632928411386374410120035166289676200888493066279425789988657646088169336750208929576995964591699576427798170941616193819722625199862106750753746568483733818411095562575094276729185874009237768098856527615129092623127992214203067430099618028593684384645670591897494977782485180286573700766130410899358612740977284674069932724711992482047955008975214355437830927334858416989921424249640205725868387337368232842996605180445548752082328482796329873533965258004806440309714524366669959959153255800785847731721770869595238384237518021515430558638305680773443137812687371753804092314674447560700169580946876280413942898780326068523144009783110935686448753472472335378901256361828304606501742624671642777875937498966094296162059073513613648237041054744581704983054765900068574499814105597865128024395659346949541390726522488210406751748587406001357184135770347828676609269705306012805598469442306459182157261054810533901112232533271479786362527675063118565330760209279164176095611942295514408838293074997440827341513994479650454870207671563067220394614914407101065980730804769985111330100230225200778067552832195229656399961945068817769434436767387466404054469217771121978672770255522912581316129846359555259992274187862610757762301668284782373982991587927569808781683378735010780031812034660622196519625194320401584184307912240886428204632047806349103537460495495489901264441968917755732211791353587747214324477294751381177348650905513340353871099226814438961352049918022623313453055272663311617444825220677810187094566389454263839870739006862002480885838459297116996371313972369495047117585162797380131932799096805093478685336642467438397563533462038890042360808142359548095182749225121952645889897090397926399203065445402620714600411909452098068157290787280641115578652218525233957178073046643563680668094145236325156399989074941314838460041941773243253453410916853093886144423709925449879056813057621035380951161531473550594248730234169740618849904717361688283383548340717024360724065244480534596366727500459485749421683819370984693645486157965590172516971771971677813073054206575379726337136659035996688244974771769249601498707132891806774289872499332796027177021921895897214161489935172557021072874815861004853263854018570479032938032665141763358313022269135894657438070488171053990917271576174103431130761498714523174769819499871854862857136441923354928562020965924562810894648374906437804014201810341263141227784457357689131987047211326008948589433195826575934446609425430368791893573799738982196574345905394519512096277884248222421855325645414700951437862813963203377537670854455925806827224247411100291028359194493325424647244526558819099987440730747756151383434470488800651760787629797016335114227653172156480825374117453872030997708732717336482426682333657125572220994618864027125843169570465806059311336698274167998621999876292716981211446387419404050313963466888519516863348763663450134072358539885944745694156674930897883585318426064918121404881541413378261820420500800639605553495318233180441124470928384811293603957426800217707083711265940072477487010949457819245774149280574039874437414868815862751148754873495828286885749347500825748483944566435849433019530074615216697462962317931162673917600333666814815257988337992460764689558327115974547068245468917112062396903688531325761831851327091255002139080134088193957046296896165641933166025397974378196285742346649989477543365710765230603602429630615010790762976199227683967101614359248284186520497255529536590923353932148518078706974252156424904445826139263410574649403892853181799248727107932067463759480884147711237572907670391304413949270504050763136404920063378275930396085548769105812318591967386604046950139558618734789604301187439383870050190651777204008629814601133363461275888456443461225819507789530584219990781826579946897202470750342976991267016866956569735494769823284772407696566277569226012560174909071510996826926079094960022009869939165584984738435595240249603979816233883686942893102223106806323667287504686405870565373926834102645649689165327093278851210762737549411136040157454878442984411220695167480726701008764520863962475951374245564890120760865799025252709588355824756797422360615954955960690949532901083523112757738334405751510755182549655166047485791503671178804376737211131511763366968049763165548018388565902449155629551824789958850308326005370572454367520421242004765905007305820533477234693034737700133062287296760942165451403381600953939099747446814467984886612201003878004006759342242694753026650759803586448049705254465607492004673832866298997535947442313232832537800584937599430063304180824339133750437690726770836533325557822722404613468335949902112237720723444079109247083917494446013537530645245049205734866840089460045814384706714719397168487908484641883068354037217288164503915640686281876849805278256069475590690824809373369021286637367225733682078594509130502762571286219165896299969866930905794712425701901103531023768645127955217392536093775280853732001378050549042548844597553402736307328757238749744222274531618381498333186673463338053257956441456876898972603262649152106840740501361833222833966357848010616670346793086225259095747158021916314947720805032825604895139489035636068619295433785983453956324202255119599312982372867259502175274011318368231107098338976910387196709090807998461236749361108420040600535511177158811837374051094967419212802775476813069159998688764051518166168971938569131452067133929737137238553937813583990246555899928152172870483368322636604752076711761512548066875899291496511257980808591266947093745990523288039242620001425125374741053197197110209555596475549310672703583271285827645907640617637121603890670297572575742832950942051255759298005602082340127879352749827792965038370021765977450164355593341442752764231664563774507694752143805036998569210125751831260960443810032551411934050452385861571315396492880863508500762871652111871726711025706857754126606696395609766126270695625994310850257162686882941246437592380623738098181850230319354801870353370844794583844584953712943660639229183510963103170921100741622862147489937619214023796848065198518657460200389170501134214094027501790154190262250530186985213372585006741222152088116597023692859095910602954538373402247010738136145666292893392707857325633573734010198382070315183110274358297319825335740454264969296439348338379340955915671709439659131766338928439667040830369191067641831636892602379560860134459950184614421070976716394255626985531595220027344104655878821776935820512211137285570488782935982971672245672558380293381979646069923935861582978856856097159615085719263416419126624267122389216541872415891858842062696507638244229224502442214030159149566628741868936432628650960717071346664417393903196304974108359119330194376142258255405907745101144405571247169510758692193358837039709447969039903319520074035003396407375104952618624727130980676190796688603790937573271345951329684518271390420338996717430284322880572425366889573681911242249313738679421604546578913068143027062065814229973917691899888983348375332089154979145350697049436239826940105858363429977968715659919478738063964551112054332773091219682689055853135045077379791188037066430820238004807722453044628677893898637812411710099465562197282371835646716215462441997752252090244957040792861996778273395856750700050855495311489418467544515744268539478977098757791624361304568984814154279751494932573788843665327323990867959572332296979339562599450382925410515920348481743221105796685512412672311288905271735411784363724380187144900258857226959997897612277704236251124195148452232846563072240259992725589568248667712501038671249274690221338663838971717743012434887359662607101297396644860359339535072467281124681439526659376954130568016958122939749784012464209619850512861655949552581086938540643004892274386016876680744207226179402512505116417165641436077962462529013739107149941520695571685210088361619741848576149818702151514988003596355873874649358373456361225541637329027827110274623764988060823899036605997243955837096162604627496460106842324222330015751862212604759080367885363306823165243073908669123338885305938642807762229308473833172553422716703905682767413425658949124941717126974083046890501600142377268665865559866010091208957914554604607366663288375550801924622529809166381335172948974432420322269729322425529972502023284868139651855411088896919610876964864443892366581419688065468534665012740871960489342443000042279358247019662282154949615266388650732390256011317278454061442298632113915224360168083280099621480883852022947964165935198408446860930722771671268494129833809957410581299427190851466496110416041856953114850559460777773218082732394494103066246380970164835711513471275061530442818775961190128142353877562703347305664612758908594764736624235197179233353396967631565828050449822817253975101414995636968489246121625830184116599027793345062731886771893322021160069152890933054334796424369359325119552543418288668887901806796162023487358301012424460187337898019775134437472024324944675885349319094915445546002108436850745217048946817602121758143655378213717318516093963848546428060509172746118824787836962113077880316243686150719363547778931995031999480550494491588388223547466788150606327066053100118591830763154562104713935322633684260889678556258718665784460881105320107265813211947821049001840734401365781923738229656387488952537760530554705226637868319430880261556070547325933883490560132505895724383856057165990603228342016310353671551754489705575701122545077715028286379279502080371675652383561277069405554887022954716547710978842697822551860329006392371870837923508096794046419301118787771739944180129480479777028005384170677076189002555918750503584607378464270976967758434750227622108567238254433866180481699643464424853311925499652324171490918119443194134931331790789748676854349762094655625591116211006018696857851532566189579067709295675371342086199069024132255626024562719766545801133193918763966143831824605897126227191625438522331934274170876853285734240902184236716850138478118751414038031629102604124023774122914083616419824899960723480753986512330430159166436748541927132970634651606619606153487157177784482698034354554623076873022082644506975818126214396470175817310293685745727933776568246086181400216592068713584144949808946320248773712578566640939563859186177524665008333248905978551783882824074422696664502820799312927245895934559811384309279387890030024548883101475818047334936864414662327839393580891813204267972656037137722931592395557862706862903014190984543773729765846426908296448055061284521881312969624326010632972178764228920861053048047225269366828317859012445741939756411500448909102953438356469692781293709556241997254924972357399146552029905318995403672000980128114077964592279722380000860241029818778794936709639049854070575986049901033621966708886367218204312633129409445343519318649036635949100556131445234335670735784950002638412108666284844863999933423332092926571910900172267869731482444443295130905605673933978766946778945420320226643786711211918346586270444535474340754448487766528498773512233027245708272202211724860843049827598656310597920754775465980495724506837095917477321368974293760037483800825041985967122936417685327798176676847094615185176544283299197080528540673537951923160403564574584812893441171877239215733760105903519362704877931184801556709169671854881439259734995944818320379617059331824096992768409189312769737211355559704050436167801112430291118648095027248113063577112349670797782476645834889805503821662532018287795421601295076459608638311748877002140885325689819589431645616912761073119343586991504145453475729831843551461477919203707011350579630496535070074829935847560399154342304302384092635964508142774652636128221161855122143690082301307522130003055468814215841244984992170205299173139498172485838745933738528381263661583382742010534841996084229847261284083751801422155252978306864087917670941496007032012979568005164485245552812966244451548102186936228343178041161560178144375307408253414005989693816209117869192121144376670195847143229607988285357846080947658194823349289932017817114550534760425456308603290036130928953027328981757971782354581398425731041433350103933560571572078721763865175874049888518134740526815066875741357908009107037158928772364752445644429889194192659117649630231560198939519592928923930978012234178969370698140764863873192232125635999849636510780559417631992205101916906550636268155878769634430696726015528336138161094691363514815698680077366960294770277448615541840843765333892012218094052667729235819390362421308851195877308539575751561161872588021917337555277406848032000642367704737061832743721628324709430485600418714469524673131833450581052430794807056682047187521012211325026416145378253063852653949724000023337921325584325673164686981422230347277899585134401361571302961391502084878844542612640200606642526846078649588786189563269694095070279563176933723450606245431685177331069729300064332983443643590040711755526084514511786462270072385068336689540061754281609297925251764533190779545574974756939177965423604831189312857158573637053786344326369233183886997024870836106029468142693496815227111796434053541574345700492688450922799109268322470137458928709151989756731378605425900457653063852711415745605616600497848699474318023320556501592174606758331308424652299637590267932334610635621701033955261675843888873052766474684531477573095582607940727345420433428278561025286567959027549109570999878534003052788013229466662100570690080365369646171587718401527087701546018242437110170679505975792426158787780374732720426970179471607467825885556941225747238478263151342002770797993351457164084384824844980676031584513225319566889241906550705732636090693693299703103400596944604481639168787750130672459795753350113567242444132058393568511678619983796506606570903571850403782838639592356470263412005377333151324005631652827967429911710567343778741108920354177546128863437072402585072827782457884347401877330487053126100233711090709193503362873334219668882023972949781389413696627377336258163545116843791579994601092603603828871211211341148775592832624903884075146922189339425253698349404156068989614055170050586538126669878086406765232246891437186654852406329285152679351474970857492330521392460337055156015600726995080034611548802097859145756212818145990831253665609261786841738219839480477714220255034484395775608435770226348256925491779367134450274102206217680715056014309151765765390306973637688964908007757275394159859413492236503183004663698603700109976707108822647798419951647770019839085749193325906777513174499188772512618727807517882172590320040247969905943195455862727088853166720596154516756863179395572498162047039759822681123820514147486945499054764023484281584737024719412773789306291709630961066041471243045947884817933513782619674374270196320487446682051319265681353749105253667126339609169887724251507355127707904044977564466690834351249319937544082542252085400134582624653153308959376483896310687412171259921513879745432328435760619359770132684757410134601462901643852703658284051552715426126386350023566367537965605119475436592539004081035464355285034202728688058276930407281759170701023087584802450194152001986706262919542151366161865095340904030937125285567480537682307817412602368489500794876002288757095396131418641691387772647531626466421115001797566968135380645060707235535930798506480800745496776241539405490297057782002008702797622431680008356559706423638650031065182740280945883418758161323467556063380505289028811138887677032845776954822484434538919896180736086530609215735239834708748176247543202337214052620503975596858503559026519241486598395483183407803807238843949970548312138773908134063834817295697101509582384141598497227296415408551806737572686857552578759863413765083179384994844796774933922975311124599102748205556523263488681599281561606051323973004930456475732908779757891976164406720792353772470110668118280522503836467514610595020978526141746126906405784778740621210031849901840710904054998525425840714890873810377145852771952667087040660968174163771874790183015399954192209972786527794642841001813914717164202535336145811223872015076496207524597821699318996178349249608274489906264580853660459128266948958152155020283353459699027621626678628708013894472005725365184315974333322937600108821332604102048955836293753535976236755614274550356000878914754702695617668136472101457198673874570923086748615437419006972758165526757385564165717016791713482591588294068835897584618550823332276284410539715361294404347367362017693451074481560965445322464396121502492578365412699538598893631786246932121243975181710053949762903474916847396546488876385262222401576150091559917390540992606018683999109129670882694696981226870641918049369913744659276484098401936982357783290885195368488965735325990426804541339317436585628015501981235292232690477079413316081848496016751398954082175774940451640920522383089632943762246036637047566475539099031492243518231026414396236782633167287556843675674973372133992371912904519909115541042157598237821161741368945794670061885946365366862702074076058321413208911762079005456834525898541399829827678145166772587093904100640814017325177384044307585898446051017742060474540594146837012083602623209394867760722011308066725747420674570060193421801500558688906644549607204386861261335468257276389842861015742033042687422120241280834950787278529930389902511266034578574926308618058013878467619352939105868946470272042269171954421842379016288992468271433898237739606989698295988868639246130292763560574182602287483248771896087050843342822297866958271497364252475434343044897950221645160618131927620605642285231171518006757508354035983033394787094866460198012647955315952839849467456166547995017091328593109608004296802405384187711243976186080832251409369480478362264632414243812480930606734981477945492769210407414635014197487776999446419542078483295541664863323786705165459270271600597179604156226809501513337939845864202408566273884034451428006500887109956095038282991738087718680891959851610832085532693938105371549735910752035078978359280132357039451845604983369896239103643055990314634942837172836011259090912579405830253567389662638170646065531383554637740058273700723329200935403439826775155290617050945644984199563160330022619465949963306896062173429094587858619843101784215337755321809126208320061391799180621764324127688918112914774324093589547539314632057623662779171893304735308414791826758143949626259824349698428926339295527329149189794231872405870882107800039758561726519247910029927852488535584761275724579823937572096293021088757939072105943175966782883237721333880849573409395011355993969167323781338537033515110168023450063872396141697083332104772039740069964064688773352071899966440388240444346487272239725049807451999070505235067928178015151590666437314551448194291179245390527155878523364120017180634059411243137549425067806079275688382697805899062622883689043825778636370324002555874641714599509761392035918273523656638417125335847416741739467404689916455268312827445106137592276152798853627320175212433892988152332631630381075151402593281888880711675382336208897177017011487744038677434401509134794073025259203806035567838789190826705272438397370153612611101547723049771548977238768675434541702419336257118705148454140165190617522704839394814425634213801501636335465535092271066048789581670944428798031459605029726578108722061029491527388172227456313359739300273037415746546114294263959547334642613465568073391042513361836225811569764227575610336990562407747353055132811184265167440553543807481074683693626968716459035053555535443428361372842956759497668460672240213899053058575409325013466431232921404364798235723609610221242483504677853816229656546736736722845345349798830395611354652708423735501995682254160119601146810178025688253513660130501083186819295508521374285580854459300521870962366517270431590956265048098457486719453476255928934857141839666396392880733614988519886843085059226210304331886526709633598348595958219898721021821950949268894390340255864869717326511076950645044945859128979425813737210111553932031465384547155733671928028557894765095293624758944693825289130043399266839903125816093326032694390420202321808947568426922528442243022647428115920984014043297461908711325218418574247384751301768288391706446805999245795988886195915671522629333236795807723267404885891814371363395871258411872373242275583383844919304975680243645565811302463205329696127905359340198613209433501960260756851952220347344162702900135131200269454430677585993332857356383631992729785687948072349710171033602195475227523495369605289073875654890364868580070739350000405626281806652550258166811834947477317811144236449624875144474474381916225589995767654091705768259976221105229875328551327884716039106527435786929983346764385559843680332327911182123085333655105111700522818579717838615079704118808375153978719238460236513803901329087986389028622020923058784109878993783555620792953956856300130489667983592481900192659661152098741507803908149411558485922107985335860646412516518909258980289872688129052709410624180486650852911270663438421660018445932490972482131845390455059838525456273349796148232240889628494085518179598560194691207871813956282092167913586986945254077782711560182067815922970032848281407562700203961815811998766150691757161408906125716270964882566224015107107671198172347202453491246181045822567163261161977044647122521863299638393506053408550541412503077704260601120126574542848779527935179843028932743769577417628144921725586369862188943122918101975748978936559846178590787295612098378211721620917745521964063991017599284302061370741959740892057513278539690571418155156724460415851350764735982733511822385528480211910517241399955447726671443445306516451636270935031308012420219827694282641740761381558989476779299538021233741021892830007300544714072154294844032838323572127329760556137369272052154198787088620954831029562646216563697647292902950177609301298053256124292906708250923845697483423481335542664550658978175998783324797289124504601411005212426345883235177558541990361259285390826148191364972435523659072092237748635333421297031998897089453721596737194640371987308944073390558902311675777676393249163497625734654321343953473828304273909773768663400322846173489008864956044814140109584648471317396805179808077778964963539610369444762378573758240897498291231084866820350315579417063777266640797104505636018833664191764288509007974518546551311467763200838053964510170346656510105556529875817228088602814645830144852267322216587360899625717474812532530827522015606800674901316473451744407439227715900335109171578793591301975278771081819015491268097229333484181155127383737887946978518882770885558274710188766072293021197475460778089876853681061509177137912571312146565134490095258602320392781842388893065245112845156120967073847367149827460023016968344375604900510855193501781736606650961848500740316772966688676817345912397453612793178494281055933252976716657530259096042315797639882925804706770570983398019112458578359071155185706269096938158879864131983282638393286392103263525208115579075510980753902599680348635338957509252113624283396876310020187076711469605800487924729471330333137579633646764265504674014880929433109735943801832216992556136285004106183795659124456698361512705238884406830209603568609034856658393251582835029953081560813902110416125278321201652956982613775120037732281943192109772542992871285525267162201893016619418976895288451649103559394034093979854851751564784575702616475246038964794652157795021470092579847766636185707431577756440036322150264442322576599674159268664508413215885918002296634825567192454199489273460183967171365515526418097408859342608200681609052875861259644286372571893937512093509086489547706306475604446699179155435454962627744377423724013405735594752971250687661667945879753967276706495424718838232582905497253292575066806766046542644803071069906968249105486560524852428658446758666225631563067209983412943910082741401309728988800054852301152798147191315267638078445457744607142555936060352118474867879316515648700417127835552283956775364849483374280768890335465989012223382624683633320028536054984602195707435039095376085404811177544953299096907702525151271622747193340974088026057815284383986754796599466227537034599275385263436143875375562711219190943058329591090921273420011578104219447339590814212297796011942062935953158179596197575001163356253947045963186354269132984953426697662310223091261214666507531592914925092632566300524568425769992466254219261054246612414963592086343902147963122352409930138076777700353295888544678487243827264469128098940640740821210806521432416184704358273332767056974091344460945840443839429761944401981433803823450533768465844457410636505325654448176578461882501379844410788996225425705908313236631408114754290688496699571481494555780493270440038967726795014851114245887612897014654822404976915551401640101701541073045179404267695730987146472707922025917310493733614104071736489777157401821078234364480990288758249646371361533579923533965604737338059246456282276016773310391701969029178769964689111492335089134686738384721131281040886298770131565027437394897400995937885854116285425565613108908078482767403318175348830703740227582641963473644857991163063903660468151957228293288085704298761937089886823062462531887031286214734044195040003916948233166868220598495078248784355704090261303927129734589775631375475567097645456890189228818037454123026794545198243145347631177851684238342900933244333997241825412008415239693297152506810738803765705423531206044666366480656048692139775035661097994229445571284648531781188779905541518028788758776700883900179023550182734177924151259140954972719246000455998361910941073774010286698670258878300165097046844412625483057558866135119597477138645011110607951767295703379549648520961983730469196952686625754906366815945177675346208658176422372891790802190774822113089679346671610952132886086916226441604721446723565328165900731564209453860073906368197449786790000560803103459035635620001325028099565344946476969918671571597567211788505410572108952770673307814639010424733191218126389980855605678253526866860637870665400804450675082843349127350991057317893187537960228421406651419287801622832916841809436242262154103150707968136410585542171315650726566847136790271588263592639960888833349930989015406996630609897568031701139991255820163688087214018940509452503142503210038388965804415653317035450551481149041895870272680192905233273185007077074024996706336963967680385452267664399299122820446031257406874863323645789591099276748724592645590009397399818439095411390320830269955687069317292739064653199851844007898544625588879782660546833323102487257968972641120201075484350739216286960913541386432333140183713996249818719678714202210524305493092282023155755123311925970776717329227683819246217973493525538970533051370862807817597501067648728553941167397054437958268524269545914598360832822790559545809901095497571108985705246230747044522517013146178105238643284520077763303729937255127344467388550758652888482979958070222764793365476139947410243157558831670962462073344903002459369030727492438055774893759386981418115156504186652388922278563303584459375937988719813095643152583319432209431022762843370844890761992967014736656553469974597831274704459590560774052363651189687337370091581198374009020460826017238962952713409085427137084721937826089215965758846393703134087145225886301201891378294361407945842388143073555830547057135141540138294755526808891863085582289683528463011599167279282877741489901726102757227633115819579626020583500767466855556811769284904989098368546355672550986797570039621124628301944224860894993362210748054629423911389376059907428734196633662055931628002645757011194793397107821712856392286732534257518423393705426759109660784187218534107418358190008137413690642887842753922156300783940498672371665693371734999483598493792123851634879438832978970198651585266256060246482367136957717214891826246005602127149750356056132287924026092658018102573835217436230309576862848158263044646311663866821023735365129098036965863123580721631039590876982050767525264764613570779712015564408455116330268908294603185438384863752118093681741718538557285620082722382532269288856198566808462956898720323664022324870493669055922803819416109003544308618936454504737681444625554262218007241732299286988285515324373084181144807344896629287258588070153390633013062787077032333324364438242271406629340035433963594810602184166595210937888408507861649817303463345461982778689412106203032090405672973727047352103643399545299676517398767695579909164779292214731864231175064766375562068897786665826391814575415757642433309816285373841113757742290227022809727820306520860817236277508894564508189087265814065198974326383009554790134973574728598395994977991582486651690844809165225105522462827052073323635586345485518749064689951327035555746024455790863374503500447768994909556009865524097669244613374003137018960008752018179134471584019082117712123336646241246366463948001473804869443571889538899505740758124159215366044083656984855301125608208795949588412951070912045948995151238689124452171842000944743530158956500998897673281307012798951972681463927549611905863166944056315589105028570352517680559881494003557913957973452436674341593436113086111085308476414308326621345978851033741268890002251051525015518772335861525375596852474530016211702264568940866930778980996378210317595936500800977900861013660712376071279548371103596112134277344793104905742528820467345255226337114482528902580667624513396163207757106183618871339030586466667620509948931803518159376615378564859447474218632542055855626331826030013152313695380099652031264107260427000283334285998872243586453177149498191803169563963726175702601702474378771997054010548025089192711987904406841610914028555432800459874102681775047000257595583477250562481100610725127372280478519738731066880256868132135714352075357399707466391825293526531928994676852646363262164799406166697092978825868005576732398028487589649098150758984647102303545393665267920018393944828846177319493828997438764848674667956924862671807406718549710597778958575729578017963468181353362349531577514171353060455758483942953131121531314701015318673259933878411495365457227850463003968300507452647959259481233847113027972018573601590749339626550918269143408513344010054552687218847585150959272449095636000039491511244221483899361427803970390164654715735097062893093735988331280180831442901224905868301044303902740827348898363034293184254362045474611119946323259264465043742888272507237107103502847718028228419834844896501260437309990846970498172634644082920124146283470974891914626703753903336817437661802348585941550779285300397552126178244882313577586406581609544072071318859132122464244917770072438800099978222192251874394679955792176653019471562554896284539438730541451646822024595954464636518901574438039628939991807567203549690811284822197622236850600524254535354838190005721732602806894593854934310266173858437519183773479558005464252589909545575771445454083966792597619193253299196952339387098338577990584173955916956234147541836815123174510492566499257881145439326746135204654962299746111117775697924648729592002889692657471330205320832422015434860810991377966956296701602842223265458601287296047227893622001461730637202306199623461242367814742817693909028211011626035456939522991172463342179623245315223229249212084218440424356748687914181484929804531720186463170501993491949388909649886059665034695555013550761676014867036153616098640004663231227862946915451103662751223026267841686453794859622413489237312590964900394857508934772031064739944754317733341478415533081309543429133122463184823031237344850625583476310948049941330214505838803229528388900606256748486599539277482220751085134899880886628519314754059215166753297271589273812547751865438567181361237086927914310014686472823597377788247648298930005073658519926884968723285439082871525704240252310705264243626303926907438764559537395458796194578090233424533865222969220614040949369526065107979477150459478111762412367183231943094294453015690898858960184879698778895791286621981436082985433858134555109145974953151397891948649356029238137360317616694991935336444660203011976379993224819419584334455357576147321385730386165006100832564579442014794508697728714999137747989512413247818080532173013743946894492087793886287335271754754810545819942355856310470039597853567672934653773279939062796089068385133912820863514094956681343511561349135886670391327086187895754031116627409843453884239618332675513022394836644192313841716969684626740775067196129518384705199429039857258445274968327694882245110158892251462178887235240613248276867393684692529146426837441879258502314351729653830427078881227803116209083767811820467966495837955619608164330538998965644251271257350543286334738158449757109619908588565556821700670505069192720703950091338383234806239862336756305224288277292782939949078216333775397968352228839408532991314914003437051432976582734307004425915060811822757675400509040107805038661591276717278429089514096363566591930188715026177869238769842628132071085356635225507534289763729227636597382386893447324264432517160010504078658808369647176200345492723901719948304927905404521294629659850383307722779166468549692358495740304961037742474894448241209178518785113254075164852306719295747327112955501954275175914323950020916114865466195162885563540844909157473970178331506425546548367961327001940212747244697470990288202608850103485014679852599809286588315516326713925493057803781140701532224712007748378800812093527116268515000365774980983374662309460252170927683673460073589132044832109065368396688938752435785198211813691495846987967062743057287043073864029320618617678935856933897174136437353011152260350711843084033398825265724008292463163532963729794354317013223074676964889223357513086098238684264862050459952710970581888805069100205487083404727746938079160207174789957859198974799943851916429073131436139530345930972940262648535875412602198924260797354210875845174337039532560486482571030751744679525684608846445003093550951165379316448818221778781169814625709494541488710843315274323818999331310006206761979817100163705337299509487866650619241494610621389556983180497696534956354458362144086745601341390149688227711891618417493365400775955915136499061045070843736799824290529086318049448185231339490150417010857950305658070813807428978325228267713141358802477128045873905935269154230249017316847127437182811522392548808107381861371250685013599855024997367307483827875572314428736804809531429859971748035466963721941106790471435487190135723155530609258681789448909015954021030885980014345167731155651996094573635580570197597774652547317916939106836734642232699339600727461627617431760343974071519250975815355704191169062774516227114599701299623973983048061976545825673196060910867829742522989547954797394500065260388765231464158422920052355532672889796167661443610391855019682909057232409108941727705706318927646097479810075078219071662173688633435834347444263113472294632007459937791211578706127593424604325760619517455828528508984520871754886891561635133906923576090262298319817063812410997209584961070658773182304704886581419546942357373315540590075779864824315725441171553756675075401580874149183483627017597244504354437486217151996126353830314130275106661696628572246478476659210682596739075655451950132233063566108273127634769474018591481463582183604055695858262692191924325577582607608494391362673552590512746286863886419211018174811591869507052631458906760248279246195663048841825761186042257787147252949608674282913853256939083726583826398872928481142544832964375595962155130696819256344097231757364615549404703790179581260229529600966748424504299060157637099345868120509791544575519970877944920956661030006469782687470277344767575904513112549241104981627282351990130785249217814688701592027250727164331234229886352144708362261750778916846266282482023102227679248933134066756804705140083001791645092730231249856307566151099130905461062490297788480508827729621596303608299996335981513822479709852617874119981452831548057501381433151878360992473621977250556669816630353664908308971859076260491020393261949250754215558868004504751530218893544059083202308352669964510418619033682386279843834834181856565697357356574015654816580067352910982343547467601671080165107166662355634094994783784755549422775277603110659275582595424022852291845984512658509896515789956659231124885519248778611528783417975716651917848829594707149346717106738633214431905128241271989253269327326505016863401137348120686902178441001695792860069826569225377630542098133714536979729036604708278024777206603183537631185469974485658917779199235199361743235373138827988891827246773430801253431873798880159308756725302990890216664871714486523262855389004708365866970106763023428145151319198985500295201849080176731598509078212273250472664511693495003593131015846995527204101868225416227703286191940778582261905568126156134818201599705639297576031773564392740527452242042400902652573661851529478566302514045762003646336993528155512531713671965366017713743540345315714741530591512147598599090356331637372335819380456429892454689559183692701112192777119486536335243288379479037498516662259750310810746581912279933543080508194399699065459177093200000717251312103680999678092273057752651500377635692749484417483241955714973132194403869451016202916963706798522045564016602609256192764310561356099085452998596879868597081846667714140551640716345355461410581931425672485536752770075426596825758295960281206447827032856472075702418918524365157485412093474780157972985649815665416721755721162374407934071607619830375102625943345160227032287727924152967646137858621848528069394553711643602527731512188939925122426646513032278501952108829592592705688870196657367444513871493189691505908821325796819290396600046125511245038898547201806158587799462293022837534606378684174649119069796900955399612808495931873838110385413576507309625047143933057279774436060278238938316149920428013279748402493133842728320128972601196142881921083109119500248406663019995359614749293585312704177484725731173193211049010105517657710776347846769036747749862149572542700614613556006383754344808806617355982610884562966611987720784862817694610095724043961426470535783319169036842492511564650002170044536316444513029627536518576638980238663786019603389888766425727094909113418715279916266030566464071053658390176377359051465058047163912090423052018422638238152636662504807209416733029188325826763472874645801130886721079609800276867271248063146071953392478601831771639382258257282267410802368843180535121185062920003954800246182261413051866859121560273554566528283942889552984193891912423905815789939399230489447938104354756428715377565870697626487219413136350573367400824849297371389402614930988725774635758947916786119023589502158547032570904568060559107016727048618858366644079780377765514416509208175972811273360108004160170062642540930692651078143638278517401584580664981876173094268519867767948249804317718110624958526904882200232484352387110361165187174627430015739908970179018311370858816073304787634871222936507186693711034444753657884857417796204707805769645370698261387776187719862485739410491336594071221984482242670246165074641850927845069177128503518542582335036592059921898454095933989896236099965187367561589863920738452593846638644419116366460564337849807864670440962092117908205256052163476449064402947209609854249377670203875152905145072705668609695770321649610290819289860653635450638047337352164863447548825443381033664611557501933703943351181890502105885216473020100240190306721110862112658260908405238473739221326892258645517261420191449997842493915853468019296234964257456910339668091718108408576248558431904765588666215914183684707601791745258595971490579068139376122919877544192482235241303770281489650188871909529490664821814758317843145798290734678647241404743600394042205431450013813606071033326242953208690408969913819058097632418936472694522382364596524191021764863983818383235192109933895258575130042390548802210706520223587119232057078047418451520841923061263956557496312790119646937584401257057920289388900661499369352342714912294559281128816232677256774965809044182171721340172910553128842367847816374963516105167517002791566366948116547691949926239087626202645167510510142939144594130247504911515146638011579018969845783200535453831962823735237682698431844987404008343923402653667847388729839507492680743186615021571807158171131440459012323654879024430720471792552713799868486117199589882191098534918220923005662651173044332829913017509886233285503599029390000864797412542227253636076623335649104520626524339565646206812714533014114487181137148448923211193897385550612814070735998211851473098294844895181532279669780542000751484278099090322092158318033217304581349295211077425592979941698784982736608070395097550588744390065979962890197761873877817482336020414853178493797318531820988089071454347575209056321550903590931315365488297227700157230974135030808233452698075491630974909579826560690550605905118329939648401593510714948086509013709261009564322664434467840229727304486252620088504675573036684815359046587683416204716892956234313515435617048842466151179160658131860689270496406895450320532782846441055564646651206293442980267496304278871249908876530984211048666221785492824881530056918131948692203687519526251311324178227160433000183814558589314117768263407763208109258328569360589419689097390089305800647674041096778290806238710187865926992375637066585987434555706703827527262983742014652605556547902280936094685897297211565928559166465209191917093752517572550868538098948062664255924125663418746480008297011815443305598511144103390470756883603767176696752350667994723579198418718140701299751968670977112974590953676901517805293978232734248741998393577296625460841450802330302400820044646164196915360414445277366857054511706407618932929980255184815188841513113474104109753177723773518021137051180275206431093687375058608555940664172544567305200694960996543836293984746173127490992135179256354077094156053553520934648541203944868130108548374782937358580605059042179526510360398219838476409311668406438380964303204418968326154643714449876398254572335502131292707762517452947337520980079052947422073843241705209362824041978390000110834361134606744202131817815299796946253032068410379633246357338740361103331750193044319318318321768992566615003617312976030971186829439471618114266598104447730977575053587830968994153061906170547888402933376227083704752379854050929901259350442696130840441907548475321520375830747893018385679310265369311780403789547516549691559339767162665447862509378533030740785345186834344641826919085971063098563450155220111910154227124572931207538898073566624470691434317520481664712002681807192763319636827750723440976599134145028701155194302075619695111539285013842520324618172449709476035242450603516850089794291076237319968049344738986418398003386319543086308448145554490153584363551227731426622467095096951218014868895099809567225568832835546292041086920887377181405513463363782314953389137988729273061725118054585299124699175140429314732676559747918370896633644607959310239105884331701615577819119388550504577994346346127568109877393309550539573030731098006790648662458416271877938314232413520344681340419506609861653291812247323360792590520138129463039260583138232698638805946337330975350066740226192938097920996037326943581667627921236862020342219727789205889769980071386793993500967491531105728798158924186962025922979531090871621082915160099495036095218799667270791277814022151156401649078717127720421721500205436746426400819157816796551324937865600990559808744564402519630429409864860440369709227008546735366220939092795994038249036334466149249715212383380876173406288697435865041444862709605752130661742075408855614778688269448146286913721283726683438649193775506757062142789866157968922365987976374429234817059031132033533853536018531783778354733146047809788093245324502874527094959040914741823660210700198014273523094445790131482275449222925180931079418337424407513445088621095099173310282448914959371283179612431978834708459832434430447711036779119299808539974558672742065442801009984120141744386326234712217689014694751036229463071389979662217567895873684548592314730792624754489258171007621970451559597004685131505244381662131823910074238188518611249013030931641929777901761033896731615932622610982710176095072648608276047553145788523195088056586678306048291450759947755774498595144717973404533661103656580424051768992251538797955966365085888272298198948670603170379870295378645036332663902334529067585460932464582415500105662323456394382651917483036875158764672562819507430860639494496269073683718807682256972703574121642865489498698831871216591120265555875265501379841068150605543422809055170542763725589952809750565828965750451640122902349455874395580043691425582981789844587162821242383304161396685479412501561042376297333056559163113642223898446932479972318568292824975014606476853111669991736002323630910511351163029767498732599380366959388586255873872194552388805224249522730983922949420904230050426409503469442108057061321221373619496695081758962116700360706606708948355687084861954113991900069669674431966565662812411624156564164183181006404776291669938604736989411669389495105305526269021814298220908883294731271231389075787456120396438943989204012796346992793166286767597851759519228823086121896261674164834248202050662768671746290516853956125130986752063662093475629934221947395331040813358918016326376679394187371335940620972016914333666731670001139658103468068031487266627530349313206367715143704498629166200575214680546813445868543360744560955103197087024121463624751021774301634348018122994908255295487186000835777701091970692462716294874528997777279860611585447006652307282660630919859963590763157824024169543765094685282549180136335403445932637190107170202250742617523646051046331560848038493047702528734279505930398256913597103917833409080903287621453664928670576724735209804916216778776610100653132479531030076254575698005573022779607449702988392390401057553297033929083171994370899258141662274779361115927979850686612443258163504338742782685297427983444378150859374692049163788627073027512727005489347863635406972120966164169536084301409142313105841034797919093679165674131886153632369426319671683489520079117092802485129093647249796579671475130868987005246966028324321282144359654316633950500624291136568224572551032479020970980395804374345948265410569583256284337530082704078253819305000718541279578304881082522815093695372129761472586307601680383035882501205599774548653077649259153343750360674914643917615184353146170799596123649807211192989048339574343829178970221464739074720654908316993130878546214113859427091595288746972855890089826281999475142969400699800723121288783018731271445692017767037707483213934773264212508891883336332303608458554546036700508406577743881232349838692360142668732790499181099563006137235157131035226202090283492999261485184665664396224257347625010211856513576369996683762817245070263033086557940599287003533042480804776114914656238477153213127809591316105745359935106146377598023702511885822348223759793804127997403486747332854954970095100910311921216252921287643823611683409072257436259950574773589348650559239767804815544205141853795841704799184023566553556377232813870679807274730073161518434915837849749648194032563885266112088525670202757925324218160774358126676018565192178659768870483227538785548592193037607342917686533662193790894281628132352394028098989368708802669419107738565456679433741710452562030932961521859399879398371329713835347775259174263219953082421710293705640347203243053761161949851422990133704548355913891717827750207837620769025088685615159751075150865639802441347100417171131933459586296580520139943118758510460893377402910068910089531826541802939849666814549676175056118480009459216141685392934556535802712710926169325878925329575479154401837173876785020511009095968957620438400628739910544934735073669506343635267937022677805749955520043873758940182583228977734048684025597673578786551960711733930833452115504184029147445630633325214022036809375087620681362964276929144814236166706499768198878206513892250866378142840191209723644081310970839987418783182718187100636662766091289476231670121829893186877024659913293809938809353063413341905906444467171825773867815156186655024831630574524385237022668374341978702099675358284168258166320146087803541862432962853756708089384692467761258679901017061959958982049355651438390564865482910021180112927540707140265200384253877347054020276704078060013608604597520419584292024970984422300647724580364511738468885676108213876224999911529304390484688923679540893807122314527731983297221621742882478747327569290003558971651725954946422751418777649546874717189429767586968298844822912584078742622708561019861962269546565826419482245963477123093519756344391249277333517830990497350209390745130311815780142224646353730506319253093085131290177184113867061982221786112202207051742197442268075425898343246127419102835375499747145556260774764884292668746141470092006838158792452412301216691741355823031069334104176370254830897052829255441106854914552939740553167740513197165134028017195236184941348570310882219006909467078489183357812106334140494676125931347657646481083365775491955643736601340094060248391301947086060435201530470623669614270677649946587260830798325365222861463947209391085671600513901122671176112705886510594226444522217965075648874016982383910290732014373494140709503415106546849964400630700069013948493169891183710988539455370825682013362054624355535283461529784492549797230038399694877585548707947233549676884865694119771122283869823322735647527417418505338395118138227271121794273544989901923001901300433290357202812365129607134421124592284507861300192852598028566016617146265059470591297298879040967029689534712845139612770226697728055717946424215375261162731500548633062685216534451796896135911467526059398313044860674726143444112647679794534364273369052337620184289383019895490973361148162733629119307918348813419268757955645268657838461163460168062127294633526509776281057332522590420148950224033245002146166985612007176303106954869877309727807582797561098644771111987366074257575069274648046932056255223598793179997868806846754479176000476244822725880190897355978660466715687020111656200129091027960915500828373935954314548024827572568542423864661394338381112370870633452261705690330614380354471824488677618301929712251946449596725553170973518318136111218581090636316383529771865393748647005075132704946005067097226805866545824897052101953113516603032253666722269092401562047772639034446190907451597250468037856202844534914773039058123465552211880086716872052913457856638887668167649605918568914662196638518937073569256663164989451737449473832308738094601836703997756936874192589339735747132942661007752048796170164437117954841378236769316187087202453113883584401097508393036775536720435550167430762692683097783866683994501426073036422885483250477596795191937433075099961209294095069488264909668944464826042011076946537821728006002349182911368758487650343893083761099331274733188025648368601706438778568116546798061576238880346735270019764732133149333369102025578058775590322191323554079213701208732458401953692856155232983417334281578899028144673259629082648835332248169277074666090461003229973879149116168584874097727043871782118217821623480675602013699287554542328555996423803629310808751464564972715714827470115980195933969478235241354935868163877192024478147737155908274536014074989371893555309023344993337513087470772909667005722641265869947146155432611679228326366924597408091142544662734484954222943017860772459471596904543873469764831672289803456707013561876409398984496583863456606772216641070695199470734106359510567000945659498320336028260086465894137280058344643222836958363225498669472733443086695712113858181159337688061177348772235268469232993766977349718154552367265352042943268676419834851284539014478538406175536138428706914015021842236237223384971552329238223522159722320882325652053127873582748704412908443206895938785826274940256290156603127472689169967612583752175068322889102193359462243070511826049087401671184292946916133116143646374379455030912704253679164444695296276506960473108409781059893943902285067466340024282915967628197376760738384378514257403143963022428203497695752099881905942120943756306065549800858532581794712438873348007669065331096419599818473785422696247511079564666682785387624115385634025284023463903652774850411528756731523127001368637375104301459532612011877477218416539401960381400983996571715464137764488230678283076420686531123623817514912193291618137686859660978479434770920715520188452025128587730669187532108788783085529311979562503539135562145139304719904815506344687211048404749476594339814063787535326705615435498552139746891659277055381337492124203172320857671080814237530144590331063659529058300376538651803263467359694539664449643924245933766549204045894247242856792971162180502657974569155219276432015748317146176624960299475523752038100864132678481172755472474642746542691454517083816187556043156395374526041547392834977656704459457832906379492123755314190330137982896358952853402599877701355223581197969345768208667778116080147066571984448048084596861043289565555644306436015861391296864277595675752491991173573055911734075405415978950479798153071719700969716229238912574562708329865197578151138319126659340573410517086495712477257467108066238010378461326223116310353794812297869787314013683317564408717120185607512548632033707269588876918713081157363228622365714214452856182684948903172870044388611465011239963296184076140797938379327088834511752385793238433730028072019727380642461906106688469174695393185642216831606999708559341025477466617278017912639419407828721195834680453487626425818670474807258121248397194867555857975977261725964472606843482231221655698882192074570586074076773128672165210457967134005697909700529867444171027100281985277437780168580665963045970245814191547558396399653779477115728091555981860689844816569261102252591272046286812084867619158820172636402273240207453111716624045769093993637615527022179811012869870958394815824476002745894731480283148920693396906272365478392355739903231322871426879701134285433395573200841290605170483710938464700070093153925064193501382130077624184156993363884333679743688858406907021653758910972831113538650611465623188643078908314753421902677357112238038986426681969481237178421596344889149258377253886550228691316765630823565115115587230808139099567885144393193801215368743059737200748373113353105262777750024552680909736686885903976874865498100607269100643239093298666520809942276770297694383771345945298251714133567126346339108622700799967527991460581768202422260251575339948371065090366150548579049287635360712156680169048844215967360573944986665760340157565579187896271239212529578078609491096109760244831161302851728874442225882904284792133094142991577171824959972766946075239035334831908976187908311707123234847787221398587993210387410687684127453169755473567584601023115853817825420858011073899606344158352021592340641775291217786420924482357807608829937596426262482727934679142204698867592295615380208026768293472773593686559912635277939879887870345127948510254974147419048975718321810636098764145954184112520953162983323072790690817387613759441033905503843338145109188860003742061369680744845745890319765971864167789291142454165933355501819841021699077743189072066140373497577758145842789414283901502285517969385016529553276348948167070494568953860889826070162028897757778619960750654652983696145153238942037829047630160928658608320083043820349757427825509359105148886549165508935341429648814228128848035230708173899003418400096597709440325587172960786847653334614473141474610181822285900535992273539282985340385269197329419978642946062640035151938058332899504481005382142789947523789035270403002017646936438722178714344084822384494215694711334442170628881389345966387553790948869270820896362447860848460780211507285787639448902285195625756944722774313649199859618521601767084048627157129052761736125323790579134852256679447397145273194161404061844253312585202638959508867256231293139924596925045183492510242248019590122687935268209237657758302601130836500454495331854423578616254385747274938115320199009315003780652329812138497583885430817297268011403144627851230586921169030226610178096819235389951840043534289257754434233206476790725480322677301833138575820383168592844429996501845042600846805979980952566256043971293905264585193895233730686762975349819392324361541707248582161763582701859078955479817980419340279705183724504640933939089662216198134321533509874004793321930135962377403347619542149510337879638850032000012652065835276583511804618918974626477323528662122664293146213253875539015486080955047977962160704309002409279162067589757050179546621660686023827139167895328966800881444080981297003045154392251890927774276562952112907562021467152503362296867889426759484780192092925162731212125715197445457443030463040936427743289857594941783676866127437733612855232450374901837423300294816493156990713683888619679958785962126800988154868566912357020181000848052175727495143771970483346473983640518969569158025975065729570530862611464944382720208195897392281897091367882768590715835431249218950301537160166178631835305753088258428825655676428814425746797164857512191680725763633376411620335014544251073515876049918801335797009727303870427129875072955690206693094643981254245621200931948183057983666855655716159825049461712811199693485776259142729087995194195943924005808764271573202364246907512901657851262820805899134193740433422189154999336153965817253199679485927912653484554380154885609264884843235936556116002006202491914389713484417287307151596365114681248554988259095409717159321541694751187303837095244755483381012564534280440678604748495777568520373080826780035802323427182933446440901734871483862541008293961117567047590285744060419390475530373639062708929893160260947193813092171434719468021139194700990308122969181699640227521146875400279555371865392375825115907870877506697653578423195209273145019395131672403100853883806447900135380747527137770523215346696114972075819080836309590516339760079378754114705682534702539194676739872100378224853148699379701371597849386100476952552821816295945142730652302183776450111710489049333202429752771728980336043236723041414086757350147132818972062029939649386998634558305442603088683236217869287130864957858510006625106222662493347497744702705653680329810221308395359601614998204998973214080290264201256857381641020391964485473781471911965820586098150248137024449001721067460315039008912695844747978001559137345108699378300638826877159906069870742505168269923109592439034730915088554494862540523918671124818444389316029014326763380749619065770645584476711020955270948877050884314812876841401811377938040420502204428521257239962159113167494223905076027044079749354324874333202146438931914853344339768324050469692218063723042754989483024472959990710354357111402816865640100922829760386472036651347767972738645611905172111162745300062537401039498261740184058190068931192183007391833519835000233952204846045394151507148719759934586712949583574239464080450721996915402733507937491358134084238702787040575394813633273573294102221082657697494264415280189731174527620570333571257378355854868605069800457175648717191393924886131343568888106061481682782441868599470898067212753229912909558318409554045564170162926626404001395808575374902927077272543115137753151378317136772917600524426794131522962065861805763662184414016656215257926286144722176108946196936173646518258689718521283018192201802768263935011048894007316755382822099510464763949063277496114815099598839391158997647987429879304076692050810908773835620618081956711330682042735837248815258984095300013403820176562496743269731941583513753096747082022058125344094796354762128769764076974421665732880860636851185544731081472703234136473170065894350568933609307009393375932249874078421976822579627869611395201390115672498551742269537059303082431873472530715840341310355556352562147736469884370265611614884749780601060162413857085123811600573502022706683851387658576444003833156488141958372340847707916436489484426459304120779764973064939193363576936321515817869155918736093777498463369742577836189678781503319653829307142075312850495477046278992461163339518180651211951334578810040025523425222524672000138072599681843776006197343008359395995420846088018106311274235998651233753366978743645104198645980185434905059058346433656534583030317087582152898768527388494527661139331470993923191333609033494524859826063455345854662455643442965459781883808723664551978158761032773858968121177593102372425960447157084819830585736409518566510452039203229695477129572338386030282490598708253231902121762448878439605546839481829622127915159612961976878990570291261022488501069747831491308694950321486446881862887021807829172144512326307838809890495692668919296754254626970525161841181447534269181674328018443521075847296660954876780522311820933765841958896110379140825848649361620276811300013675929800768795503224755458192866015042000306672798872125877479320009048383065960626974732364300478817192641932733088078673376531376169814986627092466517269184944371892587031980865580058835556865449531563296758682125921547766609818741682203496250749571038164731118288113586426272857038760883305157486113145146244081416139936692113405798743008759909699785185867053540755411503750450833832415113414130657089665489148435850798951803785427015213662550233979342142363091533732181350990627085756259476073867613870578572116622921877486633422165439650224086429962286708750233256138400592914672838943672990916335753545388320826381031102657452125364115547374257646505278039943562100029016498787101722081950350707068297146692789971764177637221111845721449017439809257757154409245649221964608297742568250289753105252983030420510128314788452758755792784540278791030285668920348736091017564716321860578701325918230851141250964736384505410557562389764595915446118004728072149282047990503703236978657927813757349293851271948286964563619410960208595848221347133290937788423257722127474274123716206312423222303968868199042256230943612157934725468282672881802329282190252811523166095760462750385838304973681814861898106567158998227619589835454342556822738834233545172014358227812984092106146206169899537252958272326756051592192297213867270496967472150542539489425514706691522295469757530204756754636209682697917063944128082733214948191783685091941144802231391086625476821567469720044963535849755112998522707514295174205016823452200171802756859562155338248168258077343298971113913490598196509174531872127511612428853514607797066418282062385585260583377732816963709711067811160111143882787750894608126818780508609675472819283536643069170071634584945817814993901310945685831179152393259163736590688729299551034156727593335443530969197058817928537722890577011346194819153424172398796239020652682539270761291555945087235155649227246919835223358311976215539185628830463540313442272981026962756323111003240285225269466494724258855137947806304713067836130647390051494364713120920506344827179934133626190431440999191888713607514296008051304066114079909632791979369904166532867349223584845886724102259963033811959215505641885429236840664787768606645903746940273846768616711319906285648842888636811238218604543189111787138752446074755983736989134494962474449123018320277622742761119730141047411202459558170876910404709779658931388104317108717843334113493385894427024840404480738213908473900684556751933685728352454924170812712463010650901601615379111232248854127542558673104161722411578930014224457064900057721614057440543959320937451562755683271685548493485023794936913819475599444092076358686908470342568745412580494294932931014292393812914686334543618751428369710831783792357937956008876009832992634510419905375606262677683759140175944713708245609016165237900967150098906500718734875471987448469251976451061635871751086778346715796171630817416499088947505676789098449212681145632978627395534840578112140859939460395901967098677829172654651083107044814605429775622824345493895845451526084230377507990014335859010047966201881379275405148987502476568540806993613794412077025304345205979586153044364486831687330187241929469915982455608756410561917149163519304076941511860540694786647120885108905318092815682713002359638732813922000161377301660051174748764772002206446730789701075417837973802991669823147619643535130417505016007495808345429896833503773383440396569913420998478177375835875006512273495384559533679201135057907224691384306276597416682120073366663397547424700017483660683410337938612987844542304445238990431123333732544706292256084564748671892287227788880654474664102901479589383300075516940409761855815614640116071980791289062131087752461512424076462684792207910898526826100712307406493514254242365357101804874456000846824060419364705278743961688436903737646791657760872564636929145358086512363856316913885019816032061214162270954155771700129555403512678074193967886808585569725829029831512540594520152624267138157795563742012176567423151681137603088293937605853138883161789036303845012142590067252979519329053995027921119258947199131415338837595747785093330863273727168426189975546676221746802448689981439163990528896991369468239724297327261604970555809222483168960624402742056422188344092583787004953971187820569601001929069681413790824625446784145404796508513473165528204540680898201117078988387895909872526704982806503759077150690660678027113654474261258269574798269380157370426171808960350447621467451630238833075840668688009365263669631489749037921524022333849992877249099935051238362596180009303248569752055245748006429880518954096265880146376101863782284486675665800463750267163582371799461578594515973502637803164880063443560481930213229540994898035791511375756755801658495901858567917914538704087601320813240744905574167945868965324450145162487375698079767966953633665148809343852921929095608306345434877508268720719211571259822589692319514611518347238848313662984898028877883886031052475793900005127932252442907413401640731495713793843092485258869975681367245329843428440386473674922250263779006303333281733256658551206206488327597108592934342101730832853134692959752412736256373444789622834154139906062506390176099743280759412435637811088283583331553534248830374126078676719101833048953699919597362539353468425370036681173056278354331810626318797452858922053522586014666530787836511758611700386272404894261999203027254612314967643612095260447311434026879345367898717441878375184992091856239744759316055895417204814454901765782689169485630877081349561560564927316023810949127676612845735496636490903724453676951188610985402569265308634960801081490507233163040733677470410189719666504475393106609632865599543569012836121132181149859192099348345967170910311612597369644602721343833138741736918816050750780004425911773206677332004732159303111062160173288008304703826211629400488288786876126343167449692773960816052627780542910941340324030730171804303073089626430539590718381576257042124966335780718707861249312536240712503326764083856447021703302780701668597534414905160928840472036450902885060056790251410056295214613228017003593291011464978193166285072221031539218505701439808568657476227310518634929850754805883469437042730087462500247529753728922586644215028374292433735096439330543005430242358118921051385603247104479920966207209671919640670425488179386349847534712372552758715548671140207667349933031667531593123232743291035142246070561532962775994509722531384996296937710783000258297190039709098486156090781354082695757616792653280564667875782493515449234604985034290951250106307987386578797660590871952272901859648046392260699607840099347815161800713487555117752452633242178301867473246785643630490538362126156691630306868687393495556692024112737555302566834617304881487966918275910073076974299207290398598592372642296208869957930748299827420207102710251235558780994793518237748220392422855516078747769764923035699946632581162070933102135153276752609075376673274222432041208068635182914153774602164717622545754181291901867877367423780569545917226305584617620538806648202134140512531092099236520728031161953722060991199705146984450836362010335602562219812667517465655482596604565560132973064437977464207661040137211750625352341611212119449542562151385630523959045804075680305337135951302601064213266683262830295403392954093837401055732928979044945265160584763050247619762305777673220578460567031304675940139234052146312767737711454553022211589095004026458041776898928116374282775989013447035239927019922197629157938031714901612257137970463553935675799824314923620693350033469196670634969513046557736373236468402489010088739733987961721967440878809399709699482345336110168340268186136284121834851499172983067337247981383206084114398937843195859526986849955747427013041814903546929043648752078572657158295966346206785857801059816702534928824352723885133811314595430838626648530319764987554821111867264441775666027299928861916668407806538348062067591082779164917031064231124149135829364997335644754840116695205634087600011844199148821200551488250144864231152356267248368425496539000130479036583793565885246637253835841372779945190020765178822094840386488784022325174811316425362182719340284173733526130074042582642325558187414006204967592451696053772969943635337155570602181958731934368845366104288728412416066515783418560868613178775227136117487017664742787260248711229777097406505453442077602491887611091641515831975503879178106814800371450378730399647963458607607587594252419542256399425490672057116929982843527039529566936845768680624245832796096340935886396287080640947518286602206506434858906179344447809820330266037705832388561500376374079990315620551258629604468606690882226622103484158953254010534884054205468493562290205580804974547368554987642830490480525200564482253829974267895245186591697754620972659965067480000365868654182760247501993355024672842968621108575706488763529275691293159792439254227743352503928196276859878571231833355218218438655920318506149509527291620949142405031289755359837058737252978767879440112582958864184599812349386031175080691443904950504943089592449949731303192923940622861073272855311664396487850573575681809786711438559584408288008597362149197914718273611089330255569623246160963482476081481227101694603691752684273602850049258336932114346399490652288031268425821046073034014863715126058066858932980218831032810501363279450888073134710236918091593846883563209278905271722724962816257379473313982543399754719216830194596537274803289050559043926383998227187612651322148136746281130304843009748375522911018237678949882114016035658638137133963634756512832747991810979396394434771224663498223671732153403836765105657058036196972643631638925300489405316818030665579264833916330355979886088296862635070790408612517046474110764871874742589650392215663232446766568524616119168117326901837641544440553370209812608278351591897892863943519319670234132297069438060279344361040748272225268998445106017743793394561153391914649346771439944512089239515775653272117362119540122484479362912560273205786181074245084560373099741200602096646468415579137519992020660487369695987009048750246225437998646243493241344114517413706735637257852361497672392910619338254428349423522134692350335739794405832151426633576137328125045297231097022831516216796545529600180831530217007668834333826765442187805322278668924424070129163881715898429563659503930489859946152054620019701915362500048834515290215995431632354916634420748740727957258754586178018949725162253175823742694647076944180334812939580810316724312622050033612433682142194730548349970513167411892088692642552729241369593724332290046398440200238359503238181383327190918343501453210482068152956092702165541135262247612740447568429853867838222585689677032395581771714369423389951983554095323104782524267097714637416248709679428432993896898738582640868034572970264815627434696752868265616835511590587816494339774702615159562921445990589279014360505430239332775132725247166240566669204666149941215571749929981392881811026946565053186303582029578815493898034642922118989551511261989197908496285785904485299117911498944708601813040816675994392562590172281648256957015080054925975276351346452518819477778005144312041344865284287601923105500156871704065778161493072888272647390420250690633409757488128159216456114249028654248996776360030881944899465701362533561294886423240802351913439127958682536814726486576364275111384211805039379825152349349538692510858448375557177441297712985400403446270036565915426912808163802084256374204780188708330743448922568094890538345755373325847812069234346221871309428500431995897185943265269190714167379207677706356744738395302273048963268324205274620562830189366941457494769249526196483991637427771289867440260777930923389790993185604288185176358826347251568278884006105526554344783127825036873615028136502953993683346190381177276186189625939719242398593031168403136385695717853346801890565806821794174659985897806021752038789518762330437921817390563358875854439925128276312121223299341707566865780027652128230310866728578190873837430140088629795147500443748994092924673458105067512178159575940694447861507439511694209303712086317121358364648988019170134825660710190754257502582829341514821508559612477830020996951835911360034870651909983602498575757879263928744478876255617047105058799797838238950031691149329738136963784371438469619291008079348256273789694910389503969695292301921340159598424008236657844119901311468233034676627264008705384366809761821584050399767194137260587484010343520432929884578788941552945556590772242426512991368246998407044194893154658568991698594395114476199631706343153222826799556505581184751817477848596209257004524857438591772867242839109037220441637774159814190803216750900163944027705054569770817151240424742386224788133310338990547196394484504513841139366448370703318368967298573527947884152050940741813673248107870918072847771247410066561187832559800928346009675708515984937728508795768088248829095178642306092482186646198403789385997450797502054483352671130858476392224105282664167129570054880713222252206140839421573086486082500266813352958434513201020138641237239310549289677092141192159078981399305627892706923169642491235560200025630712541577221595245557737675423258318745806287344830217778755219678225197569836199360027196123469244352023713878426305270119491319663019533052510954261460384321207427559640212582982312220230462683940894306353687663852088214107731000276162242239867681506338032279143262991465917725193943875658309810641318799206445415357747458388974145757071649405809955608024887215036482130911825722587854444424359070802513490219600274557545967262019998198031034811710207447112195293964734193531902808970740920582096936886297366782692962964972681185613602878448175988618888476083284783733561524801994973858212610748967501889821544146784720264143808589748319933075464592563414059807305319391164672958252170426810100437364005300928708095306579273736207676012086467610858594506077526277463197829617797723393371368930773659496581640857134966601099762366505393343278847862116711236266585842214975325864010268616482948475301480093212209205511214613161968520212807564278316204402938914511616562357510668697294788242694142106279588959154015810066996252560432324267133002608940644021973169136519056976495265355649364872713821573566086013998768200058019118817896261883991033222639694956612877995674758548962040901807062851779971004279793962955284422936401081611452027218872930109121585643925450864506160435009079895232971943409422896104000748313499994385199697547206292586597917314209798682880380155035167805896662602362242289165029291280834657727644091541601190202388463868303996315038678405301640267825979174072272583299192405038327007099562064917354314540231019182745938715197945499273782566769160669963413104641765478057404761680123708009509472566995495338086814237309801558945381421045688129621664286008020428192935396660011647789225725616560297644991631285052939147576364258372307123189986930560535433357378581468735845290261583464181208516207255829208111166519929520597721835762696573358952880737602739955123908352026556890398357499904263465886018251165384961223639743629613365669127802535035421802381392797306831307835291269437466805723732845446332667556525562142370079232681591207388799527964886005318754370661130303027049495815999450397426455782182592346991589647541069221713136504225790379248466898916385259422101466108715315807548496173492749923754849127687961652121482760201032265591254367362287452903374354160611592502424590869894079118689993519256467457225993319473396755106030698448016726975646116639519844243400314477680930439069548066268459145241772486412892419346250030346042620137226083310798993617152442541547627264027122352665536274557444217309049942551787259681675485746547063527369399271345967283502047256920354183740490700138174119925762329820813115207316754886890873720353269723487812463249433644325268785773522313646678104736472188884919841120760900464126156676760633699883930978335111958211334839963903139899273330137604934502836939359026674689571328562453798337261818861219881871177226133466531261808080202588341990038767453034664798429225121434021422498131996650821641846871128978046893923370185846413991817513176691482282942683198494027010637838575937409216023578961421713876613569540983458329867128966060390662653304635845380891416104191653096740382008569880825671086035781704009633197931491096213098816431130469596833166646887446787260896559706937869559385727994094918926913588693499030960679340479567324303254663288123993017340830778477094356941511376394175588849321528284107719192544319709900127209466713423720025724774703179271123593880522565164279042542816025241047886810397031937458816552617732115766866016602910419900270571304080403006402876142727816188710032198631299892078382177466842357587224379108143693430746300328775576321970267986621770891325533513149189948230342905696380150230553601049795140189679216016368333687190040744232011915558939711295953627240732954812987741265216322400848998678609609201265034625714590945901232048296056662688940369782398648605359867601164985448818629670875953754253814875353737291284441454529376848557042148774899044014506165740590115616759301603442600917267609840939423214292988151546324339776610781468347722359097269086737430214811262386739599147949667236756808447301794313526885184031513000643800357515345927467204309959088068706914240582501264056308069290072170826351921355361945337116452335948407787227325697582803159726667222766034747565202535489432945187085539747357157011550161396782286142897163207569086389192023223664869166250111293619621661480325836772211733054063663851489578831897777390144119762110949759634877924427568019313066576501519492637341034707517086632262847599264347547501668416936874153876904643945175243757035040545635126758367768576730632914873063730730953025156802344620917409538096530477055098179490945391618386510347852938426555378074652794013329390773379137378921991055656528676713617316052639433458213035728511998794252160271751962792315793875150595577013726418653262471456950210429470182900840551782503211480734486712754894784054742831705227567034316850947642494434639694837527523168172685737852085064582658917099214994133734453016495783309387122974511477076550547013270982783320256227053629535387698697716705085695103815243845560311520277663591951767863391607519228921122233826764875314879411956463815263238319251371199946796161683137761677467688383090216562792998704789966814013727863461693958613283119425091391561983398763071261833476589242837579643857003186457379031719856959458014828003467574893831650312773747754900186735385993540407359564922148108052740818649663474426830692502356197448157560423455207159933837802590696477181948851312916075679562353452839395964381099182696396447395122039286606959876786440035643846591997694029920755718494962796147679216454674388715957264536471071126990185071176028684778522059685816275625347011752076558048710479009660725961843073897900219658088390428713764625383296519018122516344869048272556485019016951728276302349852507118204256818760440728830041349734331809357319589248702621462574000398849969359354044443958686033666676392655747832371776035570289271353513559512945667827195878595857906854295207931955940871909233248728106956310004449283066424458715118901734734431648234041620727997644720565767004090441805164756867179472202449231203088020041312964925379616297877364765290658751903238482844708299808099080689634968271308200966765112294520769036794999512686005596691146984316740497204435116812455989907018380478595406333110779903828460332801376132885602902931046562249374798271908254213335580663140978420515562582695336776002282888968150416345102039002960889649457236605084007581794286995263400091689778740128253137281056191769422105554987501365186798628585731287029983012901844775763990567103952961178778034306989668856559224507515974562261442874897143247105593248876108059923179375968049443875348961651368740311117734188586114466484950460804578099503669171988990584135435502261055289806282349393702745511033984820881443541462091335602502806626617261142183557706966510138791076257619187064732559034937418674921809976725939976653318582945701449147509965011728416779228582913400216611104148165756711610163931450523374883362664234322731563489905238472386139118752417426831698968644189512138853052829062722329355681352715816440397994954212955027086677413056733850850919254668254529645867093385275006025139010463365500955242600406425270373386157260581888617438649500228661628306529857603447760586162224291390754192024778805122888587533361292237394148961625893427434692760964473824716159449988626115193553143159292166837218110733669278333021778428241827916855809844397626952603865393234403340322991026936477772450671244377366397800564162183061698561709868859560253247576413067526304624209663135255635341599024481973823089766553539657144212567153872989331540090998931216609742099459558629190735139959292380216742400412704431501996801520347025127160179059663050053633926927229050289010196333158598948664365985684373950681319439341795215003716117048173417930191157934800776572999969697176679873876337003961936453494708819073497886756400719395805414718538760151060128707187169444495863388877488782587028350284204732149613950134506678913775063076368877362619098624843214146127205884957049745265286865574277415093257984757281684696551689602721467601184269496349248765424652479854598939776189497969179554906060257407250789762078956848287928626705025693254196405272506733328128124082703778032133229485173700318042182657828092327552392401557061293815303694807308438015374986775550023821054050299830211237143473205662795204032533185379828035235686229430778389987923003303524008144484357492665552462120920120411763595278747587532927489139660195899652675536908514288624337665298941656987721071725252898759725953045474663484665782384421328968017740195629216214382120867168335812632261494232994312733364271304324635207927997340417353043218935641407798039070568127563871760056342646532431602884882538543187434547907744340183522087288264012953551897688518631240578567364170079119391912054770367683745216871125935270197774943493875818477867092522070558283103597765227185549767887401249236868952568660616924355096248644969860108673166001418414528201944292980347758901772061347869851864663561548839940504271957196785084457567998083449210512042330805937686218631875462057173175678410170939130161012755013393619700081515007554043004574177144214570210616457046081457848307307149426923643316143708420196469053820333774238528549529394662722671966781591625765214342271375039205178273146395446542068327045563875255369222714186316405269122230093759241466441003885436993586776043425066825181346665322493776899586859715771660535917043916024183091495970531043794797963249246366307591257383931430337212523259568610106102219494806804806896472833478262758632750598857487503738078744258079594026603615506171439562291909101608684446318357882893308109608206292365342157713983289485476912544040190778067015310698240156609413400657750888882143140163277345059139087498726366851395216019491416809796956635224716856056215469830659903690262143774237266648906805853542698092442941777685082404659558016204663236331890689553606677267598940551221121588592173618766298443725685030167830002443207014105547290419274860838760443264148042252485649123301317613518818121945027068350487230771483637105818465382703592716643593794242497360737772208967267351334523339718426501068502390739210968357103974412520987795715798486281216039518016062020982300088953368779999294305061163075705018677055192087835329728008814777303058408105745303410707476151920168201974129041152154568277794999707421398482490916904054548738880619193499608910354072933678067753542081106840104310738620311555220220731819964018512782245465060555879947373976335776144806976902952288499424524323272372394254559737696533235836636101530549731514831993484568881358097305920315425920610129709475683436384530637539100193127431367325321221478066966009434190298219602721841999157161873684972733443930638459407214986732318884988568065641942070309526973403788347041552869868598765766662347686923736083636383199456024213722965794725201111763092041492121784035795713055535445573560047370059717431621025238893422016705088714827255349698577535779867648373628137121447942965669421068178913312610263618888131463749551851093445704988268078352625031008082958646590059758176168785945216318024494901733200354947874815408516818435993761437863525755758813183512237487649498841302363569719483220476090512594414212968099379151269031730667800701671138972741073814056988632933393192862377363813075466730744452209298593487165533072153424396561685284124314165540080183934765194192106075507280638897083751592197175353388454588386041962349323661340863514988819455625082279033775987056619659189159263071781284311449657202760081676182838656856448680280872062191444530747841592476467495323219610206871002549944014890120160392478933556738075911267954190026751594595165457088019173879567767469192010029364965247676179034443353045561390713327672611881388001963506687614588483695560404403578057771973024452134950345110582659790344433365312561864475484242547921812356919130925591312162206972207144630702684508184167619995628178384017278470715073102067881874171068759965008995084828849650463207376829677155108707395615112457873361565666605435459838695845487523692045768618380373334544350881815127895077289968035080242388076939414627956703374542682977964219829445524864628497901706870303211568508420672419786748713673225204308101377165855715654768850604145284821428697554235486718935195960620484612470596023376504121181979530739756467526170598437418580535060430694103448245639598494842192635902189899697584887914399199677998470748968331354298557724823767464593625271740671933799832179478088315664382289380769984895440791581172286340868247738633561536184264851259388446411931539770245774916524285569630185665892262166805863431202951791148317716272268202241216977473496564281305640091324841355900017192454658899295914614171765958975954481417497880071866832744367424419335338707776949416750846540874402978617183024021665396214460137147110719114584470477701477814654905950393812733858405553177435762133982393138193091989211761363785830565181801778366968731517419892949654040937953328063498388008262945442375525573018844572925247709088418700600316283954687453005898120096636290624980335694470253091756224668230706678416336216648543882433585143145350132450369334554921545910279450946426536282815933000818185141405565639137075087691058321342589130123323941080152845109141175504649532942676877021190608680375807016925168191380218442724982943798814579330607786551746992491533496297520376340108335797498717226987380705798756227472543503624839250940841908032795389536325422465722653217039214551977624497551535700864983156096013026054139188752613005575111768836051725694240222256305432016393763451627517258615776871942658071958796826514300875579325760373796259774607882526789428550337903775905911655721355957524036743822105072813316407234257841896515174963248390957817595787479698723395613978577917972425244946978626926269989511881848555787654329992221525413307225894603876336630218345772206478332420655803077844809574261314619490448482321345880303558770573376136767523981138355630510566628900997199686089902172593008871768868415088693100634098257958339653131981344252724487736698208234414951938679039615565847146079953556828130551339508284392627794230064159508543319213335687504655093700674051113376546409820227505651447554451214939428365702465260529893092862818052263273401771494200974773803545950682347800732096280218560200979554140676120174838661849685492941804380022651678852859571114026549003575957571862820575336638227410973009757374740474117683914634509793164901811566145956812131358780829370461984831340428506252049890184119007847437675893412116002198314975574588533549140106887408249374736771762611738326201808274944562452010223880828956287725262512079320640712624863282371975896409213858694682493740553187952481638908183512433418389893281070991384308822163398134429050504409203008280381355156148348682819805127442131742171294195150396734187589309437860930308161367018981026397257618146288106930203675503357946355103958801699406075893186262162411896257060014716077786105210285474448617390210294581083593996216405953443621443967408990236753146284042581535234164437247323408133021159114246219045642449845723528299101713298497585760581851501829230262275599972593866526511671950935580306344350784307764336577323644343128015720863309180900421674116420509152793982500640882311419979781110735604962464010044199502242455608120411365652223180317255478674037159966818011649299337538786743430455521568370992274141711077825315165539878519195727695038987982434859804045205243717266109141584110798175607955948380662711591663104305706575548788608924431740372728361695257544878936112408991294226480578288281523316923135539447853736252277610824758611402463997109974430192483701933858168269062044038081902062226194712848255965626269710413730243813091435942092935039622633465801656634545430861178726118804125450879644383201035445840732448320027938878206842901823776451268394554666232348376590503710659359671675173494361938870312744673877233575708082720926015628651871075626918950841825877031118164917193663070178423376441823329757774120271570056247668403717833206262526909532590718406236063849380713345769560768174770416158911113309620497512270619940111740161990562726493002513511580118898964195485803647454549129225377049469730538406923887543061215990897029438072877096225092845564134195715665135716075636693955102533567517427024850850975344568657254605124873782937498428914379815871337099125452279212315808706896478590215905949487008732558990422687423491342510825653500816703462268561531045205943044710013120691477585901856045926069602444301637924066692023074654817269107854059943087783517249745538244955885413941696490309923036418191848046266080719074264228183464827496852729016006176253428293894433790150164291363512368366379583315430166709235420486881871775829237187880553838251334226870989461783408796590385677961247969680959474284419080477746518068576390296988414801941901910514497766824495807140976255973434077312901573715610168071385234292317099580924432137463554095106734407465567223789783505643235826707515250451773068905552952924908800855434109166439529221401393130125104697667580558126910390649516787479255717933187613344801755300292310755192466390106140256805291295439414682397561216020598157626262546568765127494140129471106450845447868804156700007910452434866760389514453447665883982312357785120885538754732026483841011851731280799208556039134025716282980959772776454802177622135580164392064077706657789547963233669301478128209760731179534320825392347461838341367071476528654767313505561393125333222030690574415975753258072082243178179572265340478963781178479358056150669291644598765400294844841006532857098913998206612927040412339493230509139358609761276188431155144299452100819490544192615414388273309202345686585103105271264734501918296552398761538680794641236610709024674138712862524065394240439329596306076180921300220051046776639633758794115634420950976706043237067456579370937987404176626480859127664400297082947816863516422078967667700999885720296155032402647790851960082213008072046662174768866617877450784711109323652559236132485846439590996061079315058930622185117012712654046831367732007775301208197907993514256789272264085434403943953165281384914407238645761124895629341566523297732088025658520691719431134927170865592903892619553399161898829954302078920921175775012407611591010045348169702078117961288366052614320034812094307306737809851036048555712697772203564404747365671126150205639028594924063269553517511846321991836691644092478440523066741456238289895664743259528167403232508233751836789962653030510897687548571547684986302670467906839368272770334690498078807422980786557703498536024692855473111341221165588969978854526560065498893724631879324503228354262473853159568352612637703318451443103218870349246727180596688127747175670065447494284651356813176208100947864295564040648570120040474805840474498294276839778095110094842638405081750209232626037091700718282685718794860812788842484880175486999542681861799948883811367154152933041192022407660948498931553227378696983085758860154497130487452208128809441735116954736296641345398308428996463606590323925620236479390920971521367158098196324120823288575489865381993502322025171226029003065452072082639023599020362549724333109753058301197575271382648711394318261461391639949865579348287427959757971573932722745203335286501346818902216935399652391865699531037038000569581757077486975232262343007156861230626896230315432175589945067435736242271828135529771627834378355834408001125268631383871068326250243253121054426822436100834930334474590998564319892830508070028658585044320238301953407668070490193103427391411296240584685056926794241400028199156695652793856506320776394789936914844531186294972606208753123478516531725282777510339878613321444055100219140970358423268765984117306699719767385792007674963842797709874406135150254732933704371773843979135157415707814877396727241824329213566406110565496650666840324989540018014515580541734972245391659976130336795223284856583227884689155427550437024350593622920872023228724639511416455141013011397840602320990940713017717038475996580548266860545191570834995946431356165964783508040831948577938877206617305981497694814062680529185061584646233902602439601495098660942301603780910830154074851968887348043156416562891840101842535206142830055227438860032729150798540769628413123803836620169646204697140909405860450783466622982772111010768520148360009312309310250003947672320808667432950556561871646874972839442476586977200590758440500020464405952756449336856822733309465616683114334162839674469119747171340222800776955301822820097774106703796641331260288744921480208209871515722126285026158075780104026760872783911313016738423690536196730060674555133741323434858634486358630943227789228458591161899406459054393620572028845240263387186166591464051353771489769447311734249024252387515254369082192155032279236183021559699155701401385115818500324851047782944904755668211917291816959309455354323351196947739237463775652194571120634343471454624456548446082131342315482551543903503088072051249163951789346148056050242588044678870323760147261700534026235772387481529681615246641114216055539464972274447711562084232232763911139964561514446535377424194939688719988506868897629009608947736790955834005870796631711436924664512494160754269860996459032361243826039254229226243765748731081348100956289606999487358358044478762471699735898123728520423660296181283731981157029177196762552666895816165100846175295460453889491587238368412112045244707553126851789628462401552819690996765077481629044283058233220100363491568738384117286832705370143810848729944929834124717798360275424267035856493971712307768562388132020782362675929118470565927315305302202096126342626377139601921793831076537993368053032460185998388101890642683021784292112567035472353676018989065575471169864832241478475785196398112455857189600897206382221279179137229929028052755978305937128268528963779521515068436538612405035512617413004566660302567756176929667607199428901882267220655013008677942470111789439620729533476744107370740888206608109308231790301938744706907636270320933585094610360429754606401955232522801469824022373562545467141351688561148875047226290565479285851737572955178734780643297535834979543457302326657579143289764862225773391030439282661369997822195692867582163589815837787157009101077302429437298016813450755808103402037785729855824403456308644606709131054850294808145699213722889643738127316093228069158403831954165047651431213720758696044234651356124124853503995219019214553485549898311272963227737597129022048817234485247342656134703261747462202578297196053210990194721378163928882228395780603164499748602943496785241230265262875190138395636397696295939779175786231981568431788249701672130733185102824901121158569233216986145475333031399737776533756788221697300467284841419269413970353824247040255554752499162426348300967968770084644367460653966602957087658015075016793072202782690267440673967559629727116879974024580317791027124509354914866515080027449684921304084186108270232337907663082796684285047744192148056294637661437211996543911377224369726350300147336817643368220701337606930855149265924269434284386536342020307142769688862800188632421111170555662799367740474139648711854612352369923020741833300079513920399706110634513467980311759188511791891736979402861690111656393566682267793524495402258645089610217717988568541324931202326874457146953625255251296402278670087505299659103707074301605469531769550583414486290762713542744168938485010492690492430524200899046029262921912214184862617728923385999709753962034471771340732433936117738296363516361379034092769640305527669981736774961410687861124806863468043062923476461411794433418145701398753161765638779712605914706843179480149259336130063635808461806822462208149376424257280018636941585657526427308517778300072954108788383310953492271682626932961181928520488602600839650245495622565592046320541076896875300595659615307194296163326415295881675628222166254493249052436666289823255395006097347163808733300284005709166366780450956002216218012570525972700096207104157112119735848126862251863648800969220789402358593775346065849088903972617177375961623487195235874606638442006284486985433225204630215298440566497209941490900363891283566336885898952601737389196459917178049085892741800439067280089637050965124567036471111667281849272272218160452980778097403199343299791134436585530841990789352247579387732961115940867865958590878594336917480121948164889265688001588642110921264253253027659823836801642763468156739965963091054960554719080929162426394625327952007868305960574670619241657117989117505453241350257593760145659794694072458989836842821851169201303908264343458786422712490414486753816278670418460349246793069903719502287446446281504671621614927942104903819338964300290675329568752386469761683340726548621875466274865059703424780870325509965021185700254889316440919983235892350803299404789289291766039438156587694863650167056651129951985543282034253520798433211008585752194611417150572347760305009237871368800146805806868518474166930477234515899158119287140567996748580015151000945205952760014513144696140052146876845142614918907209039849199482896032811577671255250725051137144186525290895002540819596288063595686935671446913131422112823278707555329835025843918617018723239542248298068233733169331168239193131268735643660946965723023419769353575305263516595503131733047441982731999738459042285010048669669225362444455310520897935733258377166732599663258697850323730773112888966978396601099688123281914655532237635071776846655935910709598024386085932982518029860621388338064454556022010897623384273086199778918797574298647684246528850578301987280643267953715067101880361586855952360642017412877392470533728681943297789997877177400026685305897183253240598180101138545892959471585624361934599443071523280682380717207137810717278396047643902375452683642245107080101499914510854374039362094565636410544068634240272674483830608441164625495956583189548285854028999603371437942048356087284850310870269195558710211174793867768441123061038367989445557869992662681970581113191641280776762334247972485819957801235769485655040726377564898991781116813399974253215471185056089527605403476543434761725950501308222007513135696613219349914680174274600185410189657331737256274769102510047488184156453201417412044477644733568120985428057972691003484763639933607084438774091510853437377240701946813037393343591077533589112100365796999923066375767371728799835817442493608031262851341825570011268784134643448772702568219114573376638013584315322553352107661904222304699294762523232471759501862126100016074104172348666147559762083231209569110942512477305369326112601616260479109239593088362699464667592639856713190585652155260539261181491034518613031923053151509037205011987871376545787583872953938229216766983396641946637577883007657615045850915081953676967854255659964185273131450025681408726852557290926643454254878302099553085363830767941203509251367512269486006204676381317581765570993402358628998728271570154304984904904674727476046384140101671669854975339086485736756558112447976707337377956584023911961020259059323458371611657232856443739463525847669539819036713023399225176850100334569326348453269080626672245553981798688301500275457970054186222540910014402398432392630962050822823091425487817544382308601206130407381367380055883219370499179645498531844292115733838420270066841256585238151647383041438105183736611481042842336586144837839685839005276853954996343576390829678573599165228308391504331083565124185724058147370542547616970019248925408457198275409155992048274020670656278942833168368242935654875759708817455188386868772635026318656646945877069027694622536070593597932908851345120431439963452009601315231338288106995859190397787236451608493227977647728729623303666101302842808199508689300729757462888829305046795214901368368257488258677865903450874141574847889479408179396357170510684716971480761911837299522018752645939261583458067531936494330831510243073155675690987217846502615654342467324742575238410172897771056809698413891409359909599591921983162334425767227891818529840905349469035635086477683719875599630493462296111618584227605178283909984425994044993659930179422811957926760889463045219285551276640432977257245038237358184773113492401857300390967361140627588792457116359314217783321511344395149630881282106773084523293802768647971593857426601836482069412426872027073284475509728833805663335192608875180249619451561603186499427526941743344500530923556340745957817485319925687089941238802307104076713859126062087203262939731465215107184839972861214594391680998211047523861352845481002012876640282836597291853555228809662286573841548971666377150655874411532462960855521186519774605543965094986345655228735022681130570697217577946359653148230353737423304304436576114539581293164781078906364607289746429351507275560065576873429797465487084955681822140856607604957715745084695055215529780931111891424361862857452733218251500946828796677993858190195845925437805436543737641922880305639504039129001905319957320313993365758552293480820141757422898780951916812462979497818871754039311103782034229013720113797233225825440111200195479090145432234538614972979876824848302881002251476625421242841158505644770137960146332148191497224379121851571663979207198868212968260955866659835773096811104553983165524803913138840404994565109033015700066982831767965998785449217006422650109120500435264438259402368905603441766880430822834866914767850805230256711195382262687820276435009095769121567841656112353969820502105541647515329421415941372171435582791863309530672493572357615743491368479757409976236171314858645632858750707854162069540844572540879435553520225770184849707777295783195333774647821269569842003547496410361460380380948850105498282134509133294938339284943958620849495473351922089894190658614363915277982271676221760500150908912423621841030594619775944193839799989948203415521617201366181113855923515804798309983007615453887549178254700804182867633285452590078437029825613453477075373641499382556126566529660840635829754189579923917511821459670634202829858311786624248798091945597947913190826771223311567543681476192422571778113273988547839319628282734487923852739231575856771544510110184054309953107173233072966493935142339040267051641144191173858257706015606387640267984575906099638213777606561660613302691175593808375151403263094296065593794538887018225655752103942665824344156927750160973327273103985445456563697363512064074024571129599563215316219829044789627676131659670071964867735340455987889160834241708772370031025722805025498990762606194983428835260312813692915377202446032484761477530688252909241237381834992587154343928625792850390749241002205889798171994643921588125316756858142968172677561217626433029945809363216302798813527070301943389923306022101898124602598661409557636697351468302786968646655031563856718201350846159471974241884132949187524040861016736845065958125831660616907247957237832697420172085420365385017985206913220514089149132337608454872964430902095351768272615280493904590418763801448071356119499710949311433440997414624694243598950270494236044873761956139252111221177050032208998304251020556283899333964084347955928207735413265776592927649660116750370433366610909199490595710131214081522899380019307787479776045841778691995554181840580344077593818331672120339163744514251311369120369855829024086237985996462639628775622736911828213639140617962710767373122753124298944790527358820356594719719745192398945162703768058482401539883222121535011072723037766003085810914934551757092702863620298844761899609268271208470403351114469093394959398788145345070908139120334356351086329282190764055850828589340401436179905800638221077615082411596544597201171512227727322740420130468712671237849781246717821630210023388111899713747262266537626486737507098671694239861416267222027520464380961870133719615949942081098183688347030902975441137634180528007539183509679421219960875100201865809320583731666252395298323134295241108798495605083831862655436875397139101912498958317178747387532712825234660032111492950857170075660822656338798013744219501316595174798068403253821647660543225897419400282022313974877185104369495223952939065573872189123678020533605489450172936255338922905386430385313117888925494234542902130468595636795855607027537114134464951614073459853420174489585122410870865607431455176399931581088300611583180351288512767784831477347280213253931725857982394683626473069734145043286675080972525688790044633489334043063090688240974393252746354823764567021957162106258019782538131332667964349176336733760172276589199912232841259175239672393540204102626134362833557432755264185471869150114685538223169787337727666177749724147578441438927321417620095713245531251326457186565065491650450193260512281773570316413972133165532786359260846465752871311825728333294350960269195425962479090613551172475170601813295528751218406258138472706376591703631631210814568900281171841050072800837332394276941767126507885911959007243478933091633424658534010364625548323743837836796384517341469762375317397379483476039712988884361266818453233358260084628427017827955665755745751057907220296441786085734178503570509090901183913676792791947075388419651053660410127436407978147818218277908222188020365921761783737814853492992215644850654378739124408952200882122545843493390357614821102668482589904206748124448973464528021087475396010023888786409251976984284370833920077840135901438592076430251493205092598092712623777403347171128144920287126391829491525506871122928629613699245176067950373860462934417958286611843175774311316127293676304051320087518141442081069385253147037692575847696886382368743283962523136301412948602275739324781821083998453194686492139597461237801413518073962527827553876634308702494261198859485519009239031451692523336681454224625700430103604818659629530867529601592704182229266075368529801455421104109617553050122390766315981291381750610293211915079748458786954871030329780088702984647705407525731157651181746427551541344796394744905825922718432213677246544098058261871260320987724513354991857930544182139038315778760904230483023740597349855329780496891856319866445287061652774566708965827967978675707142691773728146542219303972383945606491509692171654398464300391556439347386605698114905850376633411030983386014139352603884427787333063922294091925152466523979101056115108561918945620266783490819014401783341011519451092207733613627310601047202658266719178639971572758575081305612076936044328339449005071978701859740093241793953890892055586326334850159346976630073364957890715600324569719330039479566084313906919897996343677842130568492140652145635071184989655604802767563713644982121282743870758566798748465933840261118184094196207736147125247873940683346468280559407376596368347816779886448804328247025683272286235781950241427893615086115420040592759394898483655838776886649543572019146707399327568668667923919688027436066658790352505154177613053620758372006098730869874533652081570450572680371990261941319126448585381608808439121929298593145065864039618933238212516077992544178106490665875164909735289115214102359972542746031016826530142863966979357036600805440918080624343484624552994269831570787962878140651637692164901842700963715935036285680598025281539699666304462516760527757508940430123452316381889137381735512174003921288476266430418795181282491892315061808300397845426512994723268463584037821403995974586190578273778674674965198223074228305878853719422139035850028836008511633258377866555307995778701229862062509101185418153440839273387213689431037104004957085294618332173791845759135235350467262047249530290810066788209831971598249966157288921349512555243150518698706228569750481349145682897900389690522303370034438402172578430530248599780785493161737536765165434195547855722276906804495479598041999301355858811782778858343689623919900547297036782009063384982641811125612765111427860787476043887878312389265991558964097784287036852187645480941240563332196240000056325994024572670046293794549215836597322804353286935227823294682661222319480252928150517072189964738225676897227689308268041623537227735068259686752085736070734592384154752693588603563651468716943302637619480815930291605487769793671331560517463073021536519387175602907245175897289385609346750291497000104149294067534122716871637532864603547759104821096793483963167150005840711852294674694494330176229382980078249808317943202179505911579132500610604978635725579609180360679024326393742523963826161122806811776551366981745025579458632858083971558980732212785260722712880465555766845721423894292973984540447781395648747208457157795675124257640242759199165365518011122746342804677544397880596436370137153551887583373658241838738050792225831719234719695027608101786956905546626937241714197945088133501771243919233677192836639616179709690759602773618913335824729027294669516280385236727895899069237519480832291051357010540849028057113641058956085435197779476382620186240903145014516150220753398232470793249030087298802277667444937650824702883563163347132718424039961416774593420674317591535530163697666044762473277862564348248734995320878200194311793924891266148767931731486213106071381542219076013395277957950240999569574767772224089915606650787449422388173906360945241682256246180278595937861032719965843386365644361987093092586865627401559084948664372350037018711567960822520539897447166815843437252224374941318117749163728016487181363960292683210264821687829009503564703322998665434820167064804731177793775720770751959007037174617395676902959823745727331074786284381870823974401870033463329056823447796272459132045816689194756475196687637650588442552546287267084361634161999603981894326680884682894026217661540855440440324338946037479998915976496530562328059615760967742777782820771369374063622266691262972741232950742558172967556996262925692875911252431741595384610565236380538815008970813849857371796203712091405655440040866045800165399270614996515565037082216169477326042200450651420695551469907981474073117905625469997389009346898169757747304594760042398587623431361945966772319405862034299399817867693956779131669970648069989311036967723230198083505287101940021367865132785082330524574343872810312711576496256990236162117884930854690735996518675721795982340411112573725833839790541684958837127596637711827468714031209918626794628029481382386361916178112669506464522132259505594215818986597788813365359809213715182965890241170026549459848637756189608707351041413964851980281892160165354958433326956932680582935554225297072920757757386386458450361990298367022722939991456429721663938101267854785338470520870881612819921201095748900275779623525947350125206697614147657224014670937267144070235316945344302862415629516280098611083333858911057060744073883602339972774576165503746412325057867938526959130592449644060998476964015067251756913848661992501906185977017931209117314692051654600070273989227272322877408726641383733648297042320743488296905645330051201183493886442466974330970629911823038418094076648921342676283051825183477109090136686788835805387896499457088336620877456249424007150300785839761003496539379134478024560930740136390577173650499074968621116804902088553906565393349133833642247340210981832418937388321252123500183681192635936005382070785744467200392288141992313169686674982425908551886527323450349055424832605389795174268171103126409516450517475984272868560012379958875556445637678325570002431072607554832021099673850467121976758556485798369158374317514633776200841712629130704365132352522520023109038152043239188419984626161040955355280569813902065767893079071316832379966456279879432280615763542664292165881462828596684536339799388541884218635985720668683924563958461529293890118949276535499614691217177821102854090447929148088313816856143134369191093210917921126735475079396293650509137633718923352507107308114413542405067825198359945921422200951808371150990363072512670735744716211857748461921014203798546525479178065838342515403038115286406313219565396129022437152363926249770951607207807791914991358211886603833113665845197922525684271948628512709437219883448887199949955696516008352797611848931264659183235828771990051567385450859746247363589159472461316706051130409337933348708369627920019693318365826836135310939892903556774269756705295766395603604926642910812493131773952993693021070627977384459062358213564828070625735349896771918083531777384362900583968214742554892002519335153953731427131798634913783208642856494404514448160464354587746397296538298369504967662953338228951510012050920796098958072611368454657714520850295082747004371166536775949015144514473430297485197909543317384326621144394368509578092011674351197391284410316717447787567052819870787119297809131372882496468578709886161095526454365622728474758810286708529785371730246083579903022140615666606828615232444987530261762290432474498292634041730351169857982675513685579208940533016530491439114762839203861116658774489296282991396102191941047750468023040095105996374485673858790503468620437332050078742187465235312994414035457132263954904765307158402033958235497619523442330107648977852687597296654700657613927977729076871110128762708961386014058543403714885963874695599493417222849808641597864328956945931972825820582554606045093859916596467853021290702435397071324325575548672659910774125444285866862137126050889508221982349280555712298727108584579020844627631401396699907685038882060525208954075567147765459833339895732722737866497265868967958843783581609396916095503011353855572310346881962943393137326815038596533982126048021133545060232352431436613947308483583244438866665737406590353461423042603605541610254223476078502928816362471936542574884192679549394194284481241349387078606188210290580951416709563520687489925640852881791944146518971945557540132539459654322087769032342642666699347885093944969248639203839328549331715300593487417251439570467762273097622043830700177510560418972391500149417865243999598537211302927786335808099439395031943641450572620863517936036187156824762677548971289183063023789178785602244156112971621630174208012726514645055101641064064459439224734897564821638967391376493246120097307254212365019138369807644905952720659581512179342938425203753209974995165591871684766390667297552419770697814091738135635487393021102659506300957200652218012274229287976302173577404828162743869635349866930088246970894111274084317681091064910026583469243605845476434456395351767046687564507414521295635080570154608757414744760417030910177781620904718670535149849263722526136261227988243298244487144072911084796382678296331793190513893920579848212448518433113254988716259293141799241203384880036504120013558322637489183159961541479810941380711063532279568845654352145213470839350121529701388328623988078517331965682813671805053306138655138934579492739679243766669834986935023791591285140373340720436125940268208894719452210489742392504779887547045454554275728123246721667765624248362120578665881865353307318483532384823650212635608403915127614842421813691018155941687565221158971893735087195320895473779918052403787328804574949728953932273124822443245831261992968186169636783377670901131678055240918868399244558421963183849855599287811751444590299971372994808519415665283544318484797630404585969267973124266091650975756946880929059810394268449444689368156669203530019895811123976786666947656650166021888882177396528276101089868127139871926176936294553379204748291389280832082505016025906680897988510625265094137239499618924939564789358949229715978373565477538068692013239048637587809120313158483132997579813607024918497200851288872885832955476009878060230924147192550401780452766422262613820433882350815782893652572746378061744850884451618859171424064297575573751803797649701267636288247690852756779978083953387295916292931707054579777623708543704223480495990267459675237831923126010095575193195854268089352729260481970032814333851548290878328391003085758716273483215329829110203556360791084969482945478136234420351212044134274321352704727596903079986041455418952590034435198726603338962629463949143069989571658678461059938335334925574372492810221042766543683179352728004393612556418308268666835974214777599409993445210999511600260125998542046313394540354972606625433945729483449107996680701967514264952462025545929345168863009340601579223335323039925670052161638389695910512037164909889879241211745089915250894916542204366289084969743821385578074308186745948556134157776168004871229571575381831996675465115659287081631056635269479305468128001597999597953493873342725264610273616254778529525528833367266353799882283653947112353589108581770333631154046249423667506318824620584528190972442788425007893458637393035497234860758220796224571128264875601037705803292140870755546861593405284786607312997884893589317457305458312789662262101516259251438024500618005011693967074376903576548045308362485526869082447199414365198774074798747747102256974572761557532819053621862846384623255563311679640214784449664665878524053053939834190311844463480805417118149670755250619442052380721520458953071928981295066954194113246965695120247293774535326447390197012248097454724213678123151067252241959017107365766299221321110738404780256206422672306224939497481548285489836990245317965221327517745860449330236624856505029736443344838612764887622062120223746686664639954750809619722754534110382681256476301818280455734688193058525002094234390069574620984475293569773694337823334282691442587962457417593501678967402169763560837644179472416583579774071356212767607248483372346572850724404256387598679550606335814739795014764168452633292082666747580520771338646281893473379990870090473247356683130684300685646245209334138258890831133491956076794956160787583230604823841687120487805843963360802917960693740163131875252244169690677042921338997405304884269684254432896752503483245550599006950630994803608333869006090713932170791268082868466144328596299554119569028699452945298220047576237747259966366576382692510820029242605861438590415886372175920625168227243771186344701962623970018005522990943124250488837894189723526937271617618317864890710771243531259207725221927215949016358976941367837253994004255432821390825823185923545395716547553009955507983591371111272919029414925480643953117351537078279134427915470509292496936266244311253469275617627112083381486824443836088683260349001548040566658796135776342189224282105023134223592948856484857797308457713780708985343108717146851642937891398927944032271236051791149137926581070288519021492357520222109951744789032860475247696639258092232236322720828269628993564298297774364715266381356913116601461077876362859271773612559632818766558445986816961119695299536838724920330444833372829833470887404927378175072478488804766830253127060828763615192773483591348689275123565339262758012389224408778990207076466274309522937757080377817331559100990716131399664834418667824209394233388272448545490010310999181730094361450773288021199991816022636786547864421376228336875416180314480967764201119047085311402312233081822664413109894905904387122505209646074309104423157159586058269592392636608137404166708353903196304751531542684969914802444005096213826908652132514688157390057168696253456572608318136277660017640096964381967518188553596149606758994718922688711023881393308697950268277590003067903459713837468987635028564794467210028031894623900971858590578120657963454685112194609739758090909491289292447013125018536247950505078498631568200809248513833574022436339338909448648410509679650358594919566656577159512064270351574680128430430715314989679834714014653178600342700639035736120647686301223511137406501823863639789729406551989721002395555486361605707474965461732955806042064897656484336014594706669741300714992378478107621722577346428595819288187174709044546682084862752968164636179348272121357600404179382198324755928066272185408423508440732980978589412843947898357144705183018698083958707579427437816530036455888186708848141647159772286490559662364438628023052763837813260376213825767880827696709741124616382481590481677234628484819322240605401427061843888860875268057540820587813439307665803300504182944062163523263233114263578609612921084896416637034859482025782715237523872026115863222838078251207712940744919511184838443075267826468863627181994038800116403917256809920920106497336643295700205931931848076508720778497869045502695746842682158254583581045642087271800163795921884644441575236382903225500115481648918088244095041129640074389828342360882604158961779484016828406546312394900327794477257487402185117651038308631034824205287391100941832237847960429954549220545534157359701137928212283978854259240899131451724468027015286663698769495390060240531141535063081465517167565196113519348990066235466755936670954338413499555018813861383643192043573406150694800888902177511538474732470154598333458753223563791627080192866727612870309609321632387247738874394816228511654990425472848612110116997890525951991171580903045472625117077115036912243067329906854949419574440798830216588087338061636800327407971364832546137487879940646784921049539498214392586210633406739778589128988141986045081247910042046732240733348258708122561137712726577948152010229100245175027999380219757021181240475655065135506802627412984902233165462503205855062272621363933718087966803390903100755559910674235539758503318891040259201257049705142967514354516977969794005036999741851550793437312479862661577859582558989461120542734422366931400342784830448670922250866477856047294121070392298851024022664977710603433857916832795754772322577743982666237634344171530353120462628493649066698630898256196386265808263432727309318672870794168194460918801534631596529301729807528707409576142854770107664530148435595367323952473147333270522076763318296157064635477229260717756182505738255379498112526967328530559979672157786841315611212839021387888757406893560237614522610725838803756545682696059871371183953627942254673255963148452666749095853117904361115629662273596974801582965473052760242251196336573217426727847360462472314596889781779543824460758921403703225571511719544295577318761653945452348472949844131070342068669471503632538101510087255755182906371091013179045080597678376698280976845144183670966567786159862540626710773439454012941176861314221606069392278541090544222207368665432360622808429908058766354073845812754586239114295637926677229312423752943127162620006575439216371050512048208678862785638889102142072034919794267952867540298919135383420691463103450795625684767917250617383621772193555660443751476383151081759753520454905957120111592592071972759225785209390770974124876233626021239449261253046800799549153759691864791549877431641190747599341653598357924635444632813680347624956607712144484252939948986679233279075640412319870536218644261999215148117265653142165268904937047073180073155966700151648763794772054509089094094723455197517480790159066352665909878637266119725389207890699250639395142230382641356449053671160192600892474901466674241579455670189730305831063783072435501722446396381434515354089592963191460184353419280492139452312730688228117325239894290919480942258359610594351432151681346135840594497848360270839202518795561860648596838907250402431174239022942067005000527323084088518575607547770008186550352888812493384436871905583125861302954554147203893873997579868162907137133656335523434105468238456990078623738906615079317925987535178925760090333731663855884173969110308651178807434666883991032645272171362230177906095003319927826629789425064626504266443677677737540767520975885493761131707696557922413051908608233215068568978924798306219890935257401686553787830219163159644075107140563227651007873948746138246558961567925161674061998952680593641502417471536035659761189755969474363143677632262882050605735131416924585694288563852494548171627630582713861405075307583502383742716889929818211235973241494130484113133787978477100854474914974846765125553536042458508449528268168924055843145032552257901506514335294137193696385389609669598963168224143471420522234229053210325181909254951707124475604675775645061156131307993052518765776145552632420083545381014367115132853303066074610454860424578645037358670847302369618153376629681505677691529380711222072002512125255184679555327090283935106013078467307945900332248076661292533427349735261567875676562100140269406614322593190424706209431954041015227442222933716410358719133389621613875445362663245593763600543098091325907836210187887945994499331746291725128670173269001488804157618250687705723876296270813995627120157322374322376155476543730600288405873140203044988429802276126156982284128756162003117946543415507509416940642965592426521485370491571023690625123680229004551208235538434880119110298020445980464315419985246677983027534351010449835323868433825444546897485074126143633355825130671391306614750427458093898258447001839336636713796118088680030351424261544398475979026380657305231179232998705211435785225662837016040851678098475458562498177437679764027228085010027084914921747159940867670857038262526238919886832113272219068799660970225065765406509778523029841135286584181563602656175581992731981058367226025273235192651481780431771525483695161617627244515635079012402497869714770870593584144543323467871610233584766404672850824393726902029189366797096511528502186384264149491402016276583604699005968968827265038376717919220088550125160685097701363322491736092355360059269464609824455753323829549909113043116684304152764270833267778064420637325150718740821642835683477879735522008970341153525624203244289571519119493017731779837541781838185575830104184934649272180433211830571887561316812632064328747269941983169266282815619627749212317658543310657189064057267243259166964063635507028817676842359926964534546297143707263499574324095819910687973813435460372422186758438445505065861625202154052917016761937880002719532719821217153281526386382881847758051328318122426925593832952664069805854638280281896437597596534725207598232954552938716586405578902124619168801956284331697625398018575367480376744099737422599640111729206458766314840585806083801964216892413970421249470205439111793800555937161610470615234254758615451566620536592531909438044503307750901619417814808709816309713818897253271994280136654604089017509452830682651046233577633970675752608040282348214989997473579072314219111891888112688868959946427923602151318245475907940004266047845687028802793243514499102592269009836691032082393163044343478521802221889534630565078747082858739371010812169313217596738524899247471039706194167170186421676187854138763490018854579008117681909233161086312177335478230658723177277785259401351586817815400117498402079731751067403366172360333295908818944268701992136368108252483533283521918309711779960870169848351041638837943451763908323338543350556270658230098216858039381051960391081418980261970043813013758962459370237567241853746169675704362952034145172107296951690219130046017002481454645888146793592224541631016021385201881922615547376476358881503397614551776218758201735490525303032959812370776314055609409696224746946554274066214021350002960213159037495924429909996387428905027764261926704509052782529982582142524533938099378516719069997256602884316468241663460700021710709489827963102446809970996139018928645078514111362766922637354567738798867925483135123994613917068045057423678424564089715278543493894649690555585784333987061724145227999636219504388067346398923210610423736549244591114593145694051591404336675464748748072398621356958129398590037107807337109884198225089123826562697461051928297030099051913231141230716180714004730955846918324875845001420504939879962794934921100180834099572102632790623832278836247822932418526064496885724147619335242596737937627900425338670085933001034593130497825363208982602693096290094906049888402535910620936775818281903884496799788773509929429271151254851368378190130072345020691867390995782219596014930477220049394082504245227433896646122032609879670466095894423377244293772383796429953965656273206794056625521022801544906992771575178530106904837124497503236219820444133115331184200449289936470225198420044187300836011037750344972311862609846628127096141000101208770880710479297122695955412225256714158955674835408548574455613508569838488195197436190369995433291798323055408229519983165674731358972917531283719881208052351756035920630479415000596869323995476777071702681591544323662659388895360718592936495818473983924980916066794104951365762533622229562336870968651445272655077778905538045032582576137275075046596037692805343384567547580957016622179477381304587932163771333599757263264787621305186406643772953427232591750943767288786540666833145066129157307016363510395382542449277178160769759295526850177017720022607746243531857543706349536527745457991067068965823172510481289181509413197616505110214976881357482198116826430373249965806365959471715031294976091792038197903275268923678552419552521041811891376525316907419531962376672757104254994145734225390169140827804432077018271277188907454208845549490596089425376991607426828450988873255881712362170064746096463945737902226989056663299599599078208797779113531723882108740353286520230264966582030344454434682704083842623403933607423858506707209993636291056065623804257894084722245649160580753413924569523990642526329648169475553176652467705167224082813586186122450734730255448740713550873033191189728684884410251159883172925816452893597535243007405048769736510870393177140050327626563420511756142788522760416759238230340554450717947112989000345726778481939925282943813557908158106448483596138592489749715000109621492530866866134720135332363016815652708401680053752862854895717896707916396997661186660891641527926920591486479860431483804697252369030221141271378691895985775138428607653697795929924028651105475241810448945727271434706031674283630999840055972080581579763007684252368645589040080816900994481449239647999671668317153251997398646813558672021428946909096099993136600070433612775615916153790265058497086863190426113373625761922440058874302503147912796832249051318263493153163109811725881141145788090854311864614682542708909870863488131696362943916789843107752935668643415542730058566961829558015006055233910749223115578840510855421139026562664201390686704755197571361655745281969531580835325259759739463454805836917010562091106057863427101302653371923668962776526728860108542928029657404672373909507375120173238608127793447520516097086917899528123463675522221719727428687710225515195089008283010124636720398674511355386059666742980148035003275962391852800424725899134551162203224484142622567147290633278861907121707748780690128185597828862337267850433284913131040528614513827749088246666623036936090656075126798940409487039997002594028075567123164306598348152582413530491247862370559467735513514045698419386218185981209813607289729842975219705923435782325367580986098094964430261977464481916250017704675212439852671056411978473836507193195070762776602724103165064471333018280972066413792293767751919932332625304310284139797631393398302166393939859194455219979656209382241662509937710286098963662969029846271645766137476118854978163409209249370505286760616634682031557281538562659528175562742243217959887033293363031910156107302771226687859241961911190315999417276698569770072861706399439387227612337860950215365103599901710740813256172787187447339256584991915847507646005596731786979343096330632360846143175605742330160586561113629965182653244350610807877894957497113798766906173791103777718356804241623366459174463738316975798140845983101464835104026665384224343598986544917119994601650410165523441178220448036370431542078977079559910107465325079079292381437699193185577937195159999313676140121139121493759841879018480660444048407054540244267744526721749649277406172260223449075447181094502187717940299423327581765568320557579483844403132262347254581739161505759001173353677445340634489104410734364833992388776923667116087982129211417025816895985298633900162680502795826465790795712369119095694309852846497653217786721929446730904437850574970939164017099898915660215949673926088417325903259533439676454067355028303945020865362042752764388706432013464219138005846932051073437260603565387210752700026228133814192313882156310347591349300873991848675971698353169384125136410427387837909296867400356794091001091846350209283176234511405644217131791508712147576898166040651069297520536230820845693254604829653249925398245495948118215395554380175305677043732357441478717002834950715241930047782745046244223031914300985262564032703107843597203439373157522792978966763094363426727316286833587458825819857103326204339494667625409465302979050853168764132522395622868421829374668577438606296537116935184415421798696267996818353158336593478271422320551924759533993717659392057730047255415638268036815518359130685074227039550907527463523706072643265328759528131823987784827331709651054374590631185349356657391528204871765154467933764840419046015772999413525878812604763572176715854945787816505384750466793351203120421635900385504022854561319424081306576199500986593308869908841116125663434824235095008566215665818011029829377825303982263439148010537421519279916091598609135584619259846914948197817623799223374519199310873068385150292300744968582956298584132455998898350541495548267062011189032177681587865639825071674624899496598106534154440656954389133124983257746959414196757244590773243018863252964654912560912563043545712156775651490690836422534427664905171305563977426206886549533706508349695092362486422834459517448930980486420824528044895639303041544943817864125728543256608313020177650119211319807167893090188356867111084016524327054894875937465830915668412369708003287475264212193768859942267522196676734287450048196462058636980421929385863611252220717606034385098739953369371389608779753291551811726527155869310512715141049525250831475607078935494445948268508793552812723695105412462060259672859363532439633052240653721087762025094981271814212278267886930785359651085878247908232429688130567520335281307342835043446888968486346233662138472314845110638616983437376358515114114022755760961790593878469130316459914272328524496404238051945293197148627369275249747467530002553507783867663217696951201692596579117886853097380467196795027874618205748500284101730496766244803484362692725826213183737610473523397013878984276491748360529372288057949365313648654800174967608210269773697101122644551428393234004614342022841080898091277493175881351391436986453526237827350048172145980095708333194291126892063745152173955660706994275824229102157029624158039242687852221841419604363135889883257289386775297461480058401752405920095446996877763259238339586229562510031506238472669755968274047605545254927445735400576233966383290749618428017317995453142184566661011250456413509941575401373680239035781142356962978261725304058000628921363590460022754340368153634111860612478368218583893087278549407839859047450740867856559531520739848199146536678796964988720771277082992610674293516493787175851349341886625937904342869306070697751013188149807423939644600599563502952072361214505774273539972551492077345156860424804127846165350358508411530680798213558291804403922095633511603920520061368451179174649623421282749572722600037248703975475922496645937294274351788274070005363767565024095622720934480314736830875830529686231515356234290963094877519740356877001420199800829545413132610410518526002819033913664664193121332764165644370997105911867531125875705528079297679920891518034558015396076911683477131766695599327171317703869772276122663273735806243692889530519967930674529270717644001244600892070376916112864910963151782142569234663531315280177139722657448834173857648860374205348934568107662871042586700951960950178461914375597074475075582910070328459266937331267043094075497021298428884159081123594734225732252917952925721844374110032610780084834888648020488974116747635781077415347511082835609231186240201525572846623563988556392996542315456738013657157675013012798404625967162354308580966674631888767569630395406033992724134979576603824582883579553616210971440289378057083184289556181357956099233529441075938453074128756700920230220292710228137728968790022902016572762111234616428851990385584605645463122955726031218852931587955322266573416307176575863439607843251003234361344057499680772632346925636394090281090539859887119058614786269997904890826529905790657355847679697595455240350769716711687995764328472601610494262581763758599960710913184621457698577355408060844322541124665761755822299609640219353527315015880356532704918423336264324688369038180692490658985353738375693581962159276599378718878649572652995042409085826467822479047927491910965261073170731606281002561290546426014249114743438531084829132128035122952179297450982205142334092199081717452838272233061276305515673788558836095675129255811575369922088840776695812809244560343227754366471689786154533040948402936763018922866504622108825073413094856736479107992534633669646637488227239592984318157972843920353521923013383295710705769205870104481502611652579287985382057684021765206227946435573883542154441975847730636326588982134783769510614798300037827309231097006209397808092603681773257519934612658962110181297043793970551348706425401148509040535845514459518300737544648066833770134891916953465804511476766039492408299709033820792226839491555734102431355696920997964325838631847751735096830255785974802380955493659953909935420657201567862348182260115100073371415748646072441492661940114809516104008209451707846139558027963781308770333008021598154893021846749168849209985886957629861873351151655570199226952063225229134239047103071124800437260702632062153906711423145354040114699697421602651969459607795018507533924663448930395903058301005632143786545608189023478445095089552387099224954287439066477422819450795683708545285450775520503756819965464707692123820264327292817425797964518206989116982796499219731912240410575445912851729681516765872244831498481992180848232192613120030061660474790484285197943188508618521118747926893594488805799597440701848533511459117295258564282882478091564575636155186995503279184586314906375867214611624555869271720449483841910881102080231607731479945954341689589171126984206293356112274141381223951698671648799222474104968276067279487832413747225833799194159747443775625062205509073548518786955759305305492224502560139493689788892141085020842822097178067831382558212551874251429287759538524860546506475102798570406262188789217419633778050701410578804966461697076324910103221065516819393171247822603302057446188344854791560667900405847947455776529844860712408008698930460167110588581227251262452664482767925326861338188345901982609283898161539154918509026085319736773285156462111207005227163997834873518385132215827601576727599669865488947256299467271320552476957765224839648880083753517160746429226888695227124310457196399185459911508839330902157279935353399692700870201533329823236037604849208810013119543351564043078841811278761358681766437887102147435918611654674583868205420761833277998667283247865600367204950308236933716940197534365847715772171284400951668681809816043212735050162439709436646741533615063484236124002420085214032070246670147681249074682227829562719255792598956248541506898446959669822431954809803657160995839044392879653518290774847313667766025083065991780031641106394624561144973145795429352834915941906386387899699821980384700917470134717762105008081240089575152272109972068283955165337550906507147145477087115010283292898922092412186745681366893594185441704529679528368766191768943191207360562843620019933301025217603992621255206038275282277442263019131313855522294287787429657632905324843116744741143291917632403452624917029601880094670174756986131909129926366591713253716007360166179578881138811491395955863560813376775822519704215962817968189681962400614942507891297270099279565806012011611393354480574256672664798355658886699614234082877464519300171384961405821378684967609441528791357598513244522224533692454635155370411654416367366283252015348533580155938761898221488848261102099233945564173660977227948416019329697969503042364486495612358012720859125468900486630352168883393800279638058167994007648074487653757746217872297409461546084443218887833239375394649402500272679993309696122194044006631234904999542636637694438610819041896842162796248479246148847993209945308854014755491703798389988355494843611118977706331908870119208411612756242744712797265934709960217930026203358524380832687601236274133552809500876243821378418963198092568063752706911695042938237893956755050399485200570899094277754067593572465775581482004334262860877886429372721128623707095605805624997028522356394765500830134077273081907370671422180136122979135977350122755433073783415218656237582209187057003860623548312421972974567478741526750629277159520537207526178321953996314099542487706381789374241735154828131546938804515429913286722123847533413613218082653408781333466537253240562385074804724935376380732631748104869818560533286123833110307442639189473068944437636643010462074583982646603592873366263995439215137800842807322676449000578980863398948876750586015893076163568841554607747478436609318890884909368310790692332794724620376519805362669370249665630539219557575512960339558357436078839324426589704848913946356155357796978089883226254218353053782066267919376157851594345283391023858657351202919905521833949989280612494849933251072532311957462580195817666447381886517944230454338856069569619523875366950888433827642227879411897504972872301607579662746048379976028157611420590129312368799996841709977597566545402250035599299500595364285601050996197202578616901128488206144926972108047092724019967225393301878443374815127432552596937011155243294582117221323107484146606308520555035537764520799314565949951393072208471842286451103285257824242543782539759610635777228717513458498172656623745518841831368000211344264240054177343365844584799893563255794625348460219486786981855449662413510722901038246017713161149962722319877246222751744316749298481916425442318391854539713241735552288883570421667665889546815647418930873535697095971286832569028382871361699505834677499574537961395883242691072170621815051533424322954692015151810485344881770356224785748119591804353332410596178495735468540810835438848303368052017811609544807235300009126088690042797451050491696786062395445849420240289989544644483375750246883120279915544997076508410508311373653677667704087572942723956671043606668658469378066847048139578415607751227227053563248137062873860909639507636478422244752032978233459366083668368675277138451822991963792222399733014880560878718894033563188606539015041228214559456839656968921683460150208991163464704565275949171841589946723571427472398890329958096387836025414220132966688973256410532392750902306880668255756495126471147402880882036450518404885676158471302923741921447415460433586711402853020724396522557618657544794962575487884920430080318238616332027773901341742291177780295916902783546173057371436305738252611553301567749103477794036831082774777860033382141374067887573159009346609558186367673261527025009811609971360516362909837741293473301127354722335234861320714025657580532977940451085553106242298010703080590244384139675592362625791666978377863053918609871093801781865534759562242389168301566716633865613306131074072667789034246925836072739202002575964284387245541729901014509264193580258390330219891426818251871147880474174075819629843024006848625258945973503122230064654929303566987397660246212181995662621703634704470761644895993701151467269772457297863992255939456347562360778520136250059533953935057248629007703824831531541312318298502639268849758409722379181894741333714136854818822925338268518707030139636705729850131355271929227726575235699590744984352568421536762398427022563483804756327559972857550036319102561949864840018078104524380182309299307898844496288585383339357872511199375896034944951126694219330804967210284137798403645640506345190600149760306666804531756337404198294691937552894976416838054804697686098134616260793252667718288515790980995577764634986725324202700547300830627041465940524798242420009537340021825014155340781565981215311067414134032071679604688816866961550921140723815616651686421683249120635132189253069408950162095613147873291581148768080390397221320594751818994096000435747270247132016180954823839410567695868644433753854986517877957000864892957534426613408688407487347218269873020710564665152228416899383123168392742084070810825544610879943011644823970757181735841383189279099460958538667947385661132427407335217314227935104502817022342337619460081976104338274404168699469290354628166139784664915854001684618347411736986721351044597481863614490651197354827410368575783513661551477834114104287441967803556174818177534119823080497157463859983685986659725026192732211041674479851423130667426439492218149478513202759559553288153572616897711026720010919167065370555924391040410208609577021183025299442854201887066714749007245176670750286987980030656928800295070844867484722840657152926370322301805615034928996577149264847709381618941873439475877027724662201874124126730126533275047348687961184876711155344888221175077145690513522615436569554966927071323088498186253203818949433385374989608937072390126519833743751612728577281226067902071934690979299592632609333986530108481947009126624807575265332772228660334777047228374117070285187251002543599990283193794242511957434553698825620531018404739665893730530121542443405574450954462415368441311516277559205427450080070608172859917238566804964103880554880377119487172000003601918903379233948430800442920571322095388935925138039932669670677937151796798570143230343994242987531613690825881605858283713021417149641278113065426779277905137136301235114025637874389412797123029022408577640132483213513479474769974977087852708263186214339693782610694565453377668066670871000797559329269846033180904770278962833535993785033591939690114440421331854169756704180792527098644455770371886630358916331790387095205939767661301048531407766695659008324242445050475451901245362441739628382290012460433867360432745731967690273133510656961896727061963575199519817246382883489812442446765526091988212508818241131438071402560915235006384684596739296834417997314720674376412413778029964773743528992949499579283543665048981470754148772559721643975419442460404410901413043038440501798758791748869926728260409239499557101713136430837596026381564618163426488631574086784267821375230378602517029879015555894145238647010019546190579438537531703435207438884919382822482266870924084060908431747987879982864986957434493956527933081199784318632478538401897023339853574844843423900050744834646582473817703589464258326035963694755312829018242302912080018970011202828330485435454487962574276836519319240604416511681310411822391250461755346748330048627361230785809127938230650292586670210612200349908511890497317899640270373332368498721596965036584739653749762360806065698031434792952043906720514717897751703066203618571704712388372964924786450488401929675313881836884746674993428354221676586187769255794934047031994234230408684585321048899805296289760202606035076413469447165928622745382521535647743106168201300380115808280228478818871528008685105893383043449854876716544043753147552513429468604949061909934020798226289015822187756322364098347354238141100486585084799492461146181915225498536371729346199886058898924250133377700662851241271710161269859413382043689327455452287244194205630664361033960125787222718062996199851606812918430138391861027258063173296158680209738774165805253207149044452314123688414019893241818539290123510153589507847177719364981576240770633022253250117657469910358216819258413515267732693682421319456864560815027171208755532296397562098237849845950073541727087833270051583003075872399377960867420286589561281592680482912584355474669740341880080945662833892950472258489299031273369574083687823364054652959971020143150386360380945136876420954705754604405397472925530903873987488416605500210414571468944119916540845674272394510688053733761059568954147449665996996138652190983708237993257241116516624655235730619482376612909629127172555330418158968907242059146289869750815681376930882894766572757897060893910333033136612335964471829160202629910733884662121009703780884779798239870293873147978443567115565287033366093243145082944749437216347995286658838505782884911600914981223804477044354886303820126822343802565696646776435665765408975390807087839860111573928698372345129746655048306739854417106562776053664549333820261144419869308629735229847988934083785261952726584651659370500786525525294698938624154756491926183131656753760426064139436881387063012657546256589657951114995452496670586511247691437856973828490624287521644521490643445339794500307181364018074391784534105178421343701167063756064162413112872032679724621277886874343829296144487907783590883302822663207995427789956520778645408219148279447278228747972726842839520529295971085850004944437665381407846423831830138505221213621686458202108058991437994284998196946345602199922423940825806934351802690477554319975660645160551973289462838905432831020684131778478746058780903581602566260325446001323882245311315296730462797778720188728593240947660268560260826681044833387068851609112480266777023566474812196567052365020279565799852744942858302737059453088449288538507124621713850200773936074787157453885691012637184690139309311321914485619060006935466416247354238546293895638249730813537395814954972064047449361363172804962795713110097008484889243595710687168130833385313270808955958445237194241017043133266386255715068397044822054691091148750167368652155941994094989768154986798930206876178540497496954584596983841794734320012516179751101111495745403481641714458883878959513656495101944167022224424915100818304125259111908035874216431547040575685645786250090087974824021894311482495519458174483775027611716734470043416579223021789736995248768328565997207134412225939883641101401626187028550400489509558236279168822839048958445562189802499788548737054766040537544553383907238108812379493445645676904064388071425165407628391176201969529915258361150547251036460300979545239117304630218925879100734668204778370401842575265140978705918303586181755881054672373809293647323943999284931806572883078744598426744610527274315665646333002082044015864853467558065667142747395204782899209554836967068970384049039631182761193410046873763620914196257146906931601352603756703072347004936018272475917197695253910224644596957801811147293547760284136404258035364837969235918543260173597494723553306439946222202972577671658372058889010761645541181767208448863448050822826532916495501578553918595796860596181787767573865787913173174418720337655290676411748128048720596628866668242899264280518879859855450334384837410646915231169107037027694296316538609337455317287392447740107076916146806656443234497468239039803543172058954642283365653405499822408104339877268661406293824186737906225749464593331246292836733005706926602085324145784094826276347563013957708892834254239868492723491835106429952980340898881962418227889055234342897586788123444143745353321303776077826314014908010858272470474391633673505996065498412911258845543167695689219866255524385517552691042069535673548020055782786622618104535937404905008302184235972032152350579099935333166713566956938073021559065163036444382868060235888823044949801314314562806200867991451680807844917865658175785091686275813726268335158522316839656072544053471472717885099172894039339381624836399189569996781234669303043700627605474712035649750259928796394865458627399705962371204283928751518126032708240971775930134262564215795267975202094596673751506329693406664342537117381642301892650817683096163804505941540225897048608123039326041590848626383391105796560439663854956087595393621465701396762585703459465224949108966921201398950691349084448806267972530123825895708231330859339506807990098789746386908926863218290189923944684793142385562880526304283087498578762345852959838237809823775042632417756355007394390294339510278492390090742923887448340078790827258331911384782981366713309524084625692804372051546337933759224732200678822015791571160647421774983390082107849376040235447000491815077098757320350705163642472239922981955554151478253272539670530386338013235384362307042241731508923084531518715954158646955347401790847586514205847818538581307276597819824408053001934450155016694004208706520337641604702395384492487300377758891090514546823745348153141180238089059231637644472318204704340523213775966415343898477081231567626519498092731984683388129904376960144832599706164744709436564258097519022322793233455537688424648139680316641040799942673022774479944194282502146261897574166979135390433635491148390397665753118164136816908538506259838400013637602024922711958634658277250280918105644349175173138281790533175635590415556608314291364636345842612578035319416597151339990467536137964736301540430001154607636316894231558053977267555547405495594955574681077736943731012723573768077851085387566441251681301941364335910216806160161357804791727881830605370665205942991668000838478956889393994971090263706600270557304315942550083108494294442590903784201513910650926530279889567974817563221705021154520937155952792404816799304927522668121827137245566376240408453721215279294456971650102467440107017881703563602291688448306288346751203229707995928045078727705327563806158029859567295561983044720666237698249929737828725944372132952309126348480682944505198587417698151069656350072182951572676823830018203577236591953140295797298539440797417806974674063012142520805560517240637598358994116374127277472744649847118827124809057306925560760486838919921427766808789453558977903370646567678364472591888599068581701909857747443638946400035171444901352756956122851036913936830707116074239073970040358323427458699340563301508069053839935074405949744022398271618607044361374390386765469548765082323819638240030450128732875505579105152531195028044897641608811887719237489290119124111170864337527646031054713929227638690728399412052103936531641683305048188547292676124920632491121257682030838128123781997169324097303294419134852282470849052044534809513461817370439379355356672807368848043628461172568846996718680140921749118024399119574500289900022121927654393572089780258554180101916686545947881752078870813500841657429685851000664723203225355365851825000438725958932758942363998980884987118586040109867283353696888103313373317613869992645789241329372967420459929600934678032432614477204143980758932863908557653410755429951813227277746899174864309020713663933002669288594976295593463371776846744296321502656967734652058722857837199534324463246749059213579873475926562381701126036461806066478092340709976065420811485258807466531997511618846251824458925995038220309601754269897966146970470338155897779459633674015246895927987348140678379456286002272376412935510879272681367110219730994698624457003783158302062002500882626489581220475467748988106129216680004133734749346353877611836743943280043335692807093399260834046531178453573544872326575924762537937051464165190257786039093977435913879365036304500047155201023051214701245329735766430715024866136039903427523820579939610185940639275538836245642563909255236940279680781471680815868807408644289314428749619868035787014084395092028542898636544555445085509377493544790168198437703106127657815412825747588591737788269582692059081103661629492273560492971435299389706723977371004656079949659784509805730236662553170552623603807310552774595784164307064786420455508238227917736177578524827375718241230718864794228966670533437224397171065950796027043624597311249274531300908119477023272250250253322270663933829664585697147745941977390701722116821549154198294260447652667254727900830863761344927211088353383223068436100832565129158200349049546103756207059443932589302567128007609747572841821587134158793313402757594884894176126394063743092615299879906005671073627717267669646868837869798561745818673286706223704742689089437946689509665853982517109317904039908384420548812347774399379880498235563474755889487370416821898902382901880049852157865800562443860586540797232382230114122918736326314083479297920101476267282090732136831808581651658787061672955517239357513668210697493112744589493560644717160040852628016918821922859097073813149578853539045940983361815469443541387189888402844942627410451531021689871286843340876261579268762618419631376360999129735719569004472300328847897485589828228479747857711734808074607706932434742033579670897010795003636513484995338193361487322928384540731272971866447303080147490288079010663281282771657013619284113294371898865266881555525760561788336174772459440536934110108792439149563675594613397969409758776012404410201252457674539270399461737149539168219755724644303372735517625975472612023976709750264562907423613731943808396137278157510502966117520740594755086127177225110778156124631643683708200998011925690707025764715888597534497644547764590339703228434223031704797915733318342086385776796298010466787559411566351811382801210838558575535290771872001539559617160284533775734038076628633648031824587480062923224551728346293318428131582628811915840459051154167353063199521791193140680414556888736047604485798972768267005056428887623246966830237442917223479108161140108478727976113669919170500567891838923779350241456819757902739475523393242214777182123476804550213365761116666174056228283089923154762057477393975847769402125300697906935273631127820628461237438017044075798988644922287349684345690650126972774528701927210300700607802621024235259315234798202542605891473143055354769841896536131688629594934805289167463094851379812047982791343774680162987892095933175566863919718310384874609956772293840966629628630314889060979669069806156937061586885637752876171606733386850470435649817322281388580335823952720539959930339187563372296565469469500505958609931018607124595647582548512819577350295529269562247106128400691319342782355104574334397157907068852104502800762572191817221832918027726696380564684054235105504737314271907114990202659377750620680484056824418314835615611904339543876519508342489743880606091508083338016377226873459362454258184187762492855192520505820949983450082489048442850309387028836351096866520841489977122651855411082868829026755542548667294899836141843161206844332515787867884382942543504673795488230668773449302288986511373296363350833829031190233611286312714829949006201480912035853055071010402472249141809440681281713405537882519419006881204854005757207175615630959878589818582366970459491252050079404065095447017501495365355850141884064273388026427821574602814022150659503167802081094674939265719603104101350585098301387680069893576730056293779501599597661628341813220030151422346561463982650270922727120572999940877093699400885466899482267168242096976580971586950956692186295433277198530769096831899090870477994097977408488546786829317649166398364558581026083489145328424975749734976490428019613346131192703413562602630044362762797579806586094675251081210426365245969840336245677837004373696700041032114076803937722982542684339191635817969166563194793849681957046856371947494601337556041811189722219724733848563447771749076336391267396978200145559956880417755926666703982053802687261044164747750489264013608323322889097760884696360164020340289817149766515279566712501595435279705808588064358403352626388458228053418238088316146499939604840492507974691732512185902930032276747816900894918375402644502904725957092414915822345357043688672528981611808279768905583633104849398209410070484700046444260389229805158177763772474789154932842555962930444023946233362668878091315261582917626079299274242335005371870157852178916184408935677293885231498015808002790136927069759333497643498976720998021250025428684154216612916174226243028788599253401924533697227909955773165746288634707668462095372447671600418674725287027199048668790027525811184683078022599474800462424676662474698072109051254626613171075972596623235176291288465277659834529793977520807369877338629452343977054514492871929663494173167587429877244420066404076218915752388805738546620259268116752502390909821395906260397667675093469514351440195938077864099684228448877902852136049358254596387431561258729237137383058644088431226206609413501484081690213266916554818954671233044653460306286301194624981079200998438576351278168204897252421626474969582874803118736265004240594649232671109590741691139598193719157808810456907729490618884356780657344992087263661610163034757010469592582163689630541819442949963964487790167554700444711205861231808151970476548837973041749310531466313746921231263043699541747950815965447819392558183716950595865122566371286722814049237157906454597843565719610536845100720302521923907939531720587516153252167213048084699711891481488819448380607257046687143627074645216243002690780553369899424622280978538970887647370782458323099277135205217991841603390332472063649586917725303364411143906253016075004939012919771740701791554824132967812463430066321346577028719989970005545928624402059725095785482444429077381483049390148726818703358514083436461447745487324692654460228211077633580279645021767647014231895852311604518670614111881932298045725343750499770374117544443792983899926120238242544797574542197260602043670884780886611023143727639582722873947449090162300189170045035124078912571053363027689187377614455480013121662857196132597716409309582342102673464170444423554793944725745427483090952964610668679867880606773612422505244907969259049882292873937189396480936010934916731959046259392665876583064469556830511502489583645216938357239631343166701628003490847956807262643551921808811870660235533370926430484637372288419268611865276702875555108351098826257036816052032789651609535358646252776252891736994242393863096811900314573654635915049328130566367989208455898146409637861077948711724940423130258621368738240209504903814549870018103785463103382422592904630032190749899287474474572225993865058630371187339407687102374861882224905921972368937066995999878822716901773081400303507329604713603690694291488242871958981431816107570095405040653381826539349607658800058727699286494182282606078874881881378431594455513837773011204073466793218634753696043287022333687562535607977375985982073780733456601498685623753523975295242650325392993743118116633533527837563732639301419653312133419794799306874738609821289830004207335961498950372974867779787954592877695279350579033188426439522948161224314360104745640622123642623924229918878215101155531008563774101709183983949614278101999278256675310890273250088357679574462394628743706855668760637027957361941504769066846084169901883532786164778429351759510446830667998328933231840937755105059964736095146385901285610056167037223265490006189426453522338739926077421662316668046536915412433485787753958430481962723146619033848512352903281606422396978659261019796234064765104949082870133141584022192098364445207015911280248137696023135207219399622223892417074945092444550530099721564118231412237359719009023783452373976284566263606803587559066085349877350763834498784039979442487034430524687044101501793687407786597838399718037946461274911010372472773578108003007992438214049445425444834627045739856864019079673535393549952142519291804857238264808499850030302193957588207785811780047514161599535321120264676566607327793758302411373626374014342135393132480309575699138782411964854268557962567866387651273496784085747771717426310525486655802090840505280483028239667403438412311888315973324416080904535119131759669868566351199892806375334673417461534756008335935412376605536046289564335116070653202569278209935093285413632697083674073560026386808364901609510849517670649844183662010892905959909266173351888007253592613204654180550635359310018289310096126652400653500136709871359996676474923900083954964452971150710594372788995319936686406967141743458204319944811841615971817794883455016580354238883562601099948226054259014419272645804700455484406632245334029220875652367280098094241115333552782802905008059917235749905466464867625159512320619487392032252585234037477780565789474516392559209433399290002950102690557765978739220183033623288089834058274042062005653435280457202318363452367141725935622347594536917883273990145848775430728021381672801454647809578613368211804991453215357819779869689360938715512047903214577277165956933414468362706519060004764065202936930334367116930676014554375725476589311781061366859123056339121523494405391162139201326178368016312374295993578793631317627507662963006652922099991228049845943092315928313747892605980285638588696705317965591161148486851394192343816679008659922357819446756746712627205861339011590292751126825636147647028785941582884294141475151365752799577887290571208010666253038645243667521112794118377581308797463235085248115463535795012667289106681828669484491491949594476144172317334703664343129461511370358524349504632284018197619852431667359411527394387930764148017001855361750172417162250465846478791901571760548821495268277690242528035026723034882977443320823711179705738765458607609943351300465207593256893608570937565001041688708414135108893305135074695791211490678931570747110916464074536563946251313586213409180341263115352464001609214121992786689794419514992257503748636460505097327763455573133750605191950956067914793825916115261409086487874994623774094217537338532271089350984775679854817471015653311711911863868505639453467206309278788768918005240090185400587075168884579082994924372622806842321560899842529907592553136475555687340189915805495121965124086216607998956907110877733974979481356147820174304312963761691160910274335243665633895259846684919243090162230643317554806621332169868830408225625098335107058945413015535801279610586837843616398133104787835952531521324913354595714841433801144233380328951013255156156161743975436503581955204796375906192625503104859850389293976717501049419513167421038790224004863766025431842198813708879577517579422616967487309082330342870916970336735208238630394681261363783450085276348237557800989960728495196206903225702591946697888371173995734762690957686632804226914866078538072151385520142528014206522298513277171550245109144024950471235693289679232033685639249808005358667753860079554462497063304441277670982602621417713588887920452733740808146017288637731623589865779904444812488756500310653856258750708730584514197382613749904534310086667736975624531501043611899441206558672740094677329966867015316292183053359144995027882062807957124512207139148834158452115716387546873509315025424332539556262061846717538035360708885651793527543207003084715673464125397143983201615933080020268282954679383742879198801463483278999296681724010755001160291092857136778288991166478320129027734757011841927228866073725622851592156098429091452198954496180871493764237290918799899173627372909089601688680078677406172779618612737911889548120257311957769099830798803605151935122288360856387478258934623193399507938828141397630851983474623513531069108287301509881939714116713023865020030053521388640382289631233959986522628550488953197551151442928439596920148275655965358081157089043407339343646551249743008922561056592012809666745815233635552772635196226776246347290963510211039265481419404047111981427758789599249970856583765242372532796025796088922061861834485395153209677830905788823931708100755584569852635397910216050774053859761607475430973950937615173402626124595852581956046132732995232535429682610720313784464533699583675276454494552945981324984685559265095514111695261507415809140570602023079338979196672082944294718637281241909749571847396969111678110487024383906799295165083272934415862212393565108838776327521110965156797431229625544432747549892795591392369929846434438581471230426802021072781286294476281353304746844583905397552037599181193499376472314423511031591058685519741245937557785603101802892537562599268988391124959353249269434343209695902305452851767892307230527774237375158910930922474452706291293312818318121064192686966208676163446552517530513658285833276115065440652413281578010856354359049691503992162637975442101503725515253963219469326618049829803532593098536942557149792864601150471121496852156718035693483963007904759258123498342592284847984994309136299790769267781303749240662415677458571540714470967492366293929394149247655892953812121482015452955152631418903691126291184220864343576965977232599076429472532265757309325272908672478683647450102665014823591086705126097578556362262023314407478755180667865039726846954697130158565925060268250691277265385356925886187246074438685610757412333849579891356709923047322877270024107949593713621946009467618907258840319063261351615070528585645906658924104781571242624490707586024531178380844376016515016451619769348979398318564141405643666538191536506733409485666472500551430112358248337018863307862570330408977581782785871782751315701579464495322636459020701269460077474528808512930402743615490652765172571059790026983454413903550858358512147772004140892823389693423472435626754293035535535396149502109607187095695808934083067464555377242686167078888575949287688517581539123607586874991701543193059009026650833402267773558089483906399131733643385846174674657186088115450178688102388353451557178135737758170674663890369366770940034112113511887257067549328309891391101541068674096573019754363333743761973686154971873915429042326400949428913694697944453254439818377607041447506587177759234541769217234593564711994259217633577280175387239861994819236428871848325295514841441581218532421648535215518194762317947867793362525566446903318901846852935807808799979298631964971897962954344687342422051025914461534723253155312547206516902511450868845499764128613915778381577684221100050124074494934942522204819244733695125300351681414052312958616636633609767303199829960777575128806908656568455921332886121693604212126171506417624720012743700939071444476274923799062472370202811869532494843727990924237872489897070594665301466075843348202113427401136991185696745160584770876410686541040831515745284014373180076325942842853618926320426541964401695460875539614249481120405558674767884907809004818948465600054381357120681702096875637046572690290597777979718787225085869602449831163088967432245351461795061712158363838325219461809346761187531933526364940334834282923598743025266663877592130762202233433819250552593592178321241715274007534561654507423602159656218905314484178916074166985234532452007219584152586113883323719723940716725415671702398996518183972097908702007689402233621163857365918863274246331116686706050979731164399487947528225645766535101509538121130016001326187653213792657799590633186994095102346190124288742893424772012370469785921155416040811813233564467242006222713443355366312852322842772779989938029874810556630583688614718009519397016085356764964565987837295469811496425817543412544017654748407521353024757256221448103111541895738758394643605605298938046279722898990874034017111010586508514976313874314962061121424474374749945173760617474977591731744558865270542077770536038533085681327229635028748478450375603228490117370995084267243595726102456874307361862018887352527013582790954434022943377364818133751773583705650245207172576516396843144023986627876120112840216144794017999676089692906835235902340498939874982873284472231076142776384423439904079407100472132426956817495228747724664849834437682655351134318995181552769608711373797841232615528837832459174079226396541944966425192006783794528588141382378454733325905153912416146569713469948413641537415698107436702487016921386247405971082332165692485165715194678819077913880319443686841792145589334039045865987836041334494644940020258713596445272826839858517684315062472224929465416917959720828077472195323336716123776367654482025702797792683495807958524518758560395889701583598362303101879521539692033326573158347864667117668549746431362966941759082778929741413713119619788779892841757110099783002481106130440447733467773287286837787730110252307199374184228081954157598373068427661749354718216453221306940177865172086182880613047079906126953634378664782713041374859324722289940256438316286463835834051227390962578133913791990217181476835191462224969561217852017334538505019736566800261584777985184700292823412186533339742886140202897260015289670201940949606672743239012452511332113479002359943943806626831080425521953263916121637096510154106148629385003731542196338972523054035493493823438213208705529612909803276176794976155637115675257351406117308909023323044908695380059570737918940290761044207598193898870306695484714580073420431974543072767588506020002886613400878082873925018200009692126863868312273725008742618174133124495990154254931259873147506192799043217962128535245282772427165929708054658694359102447928626868657249066215037725079755010553698384594011034453649364345947955763824655279204385022279595075290301472951051609359685712417371999912217747961312377158587219459772657360493795384084107162377487042248568278509758928719841802368236493349218566779563134152884626093872356622190723495072457225385119458752359765724372025314318680645884054090900112098423880141850467905011693356961230959183269610535958756273992674086276154100729996938373278757513027540144423832908635240677571795453373262960755710781645839645392275184754587211262101022599108818623348277029645787982168277617746541867803600026108753672812842945017319488472023191985493301112990739300063422750770763842855491235715203535714435277428199443241202970379646912215084153360773321271724921676839945636690874719746138515635377836314850885104804859758442296838740771056588167566374165924128201494247682530827772805252333135522415664274830273839607919656463553717103072433479413763160911905142946093549635989985971899702369188664501766550897895083578098880212717824698033961264391798560739027249764654145568613326832926814849938873383436913249377305235582183421701343154102580153762254363160790783249720847458091236913465222176528927526662217461248326154634081974320860617920550448806932841839446357671503188073078596222993046340650239414187992928739229713444455512673651751122674157333463899367099532643378306484039034083567721876922336501170341993812469509843136817525528869992136366118485728604858407015101491881826929343851658265759605012523212414710803680890717664619282464315281396594840668760427441620439393381698372198521827672456512234822810052043224148916464870420120557272877115169975851265553208449270661316252568924051055842185824097977746948943479508726842612005732849473306160939492686280010446307845641021410394538823453689549201556940046175567902877261973997667564780012437849353547081542590388363065063774618738950697226846917678240691060820116818332261533922105527502737253334488925358069260985094806385424020876760062735999864322893168153114571571390513105618707845712593334231161086788821439925935998087826706028520260277402927761278058644223829120240938320254468159897587642897554432131421560826766832747436300476371109227603713399145105088853392986255968250007604463129087187079709238631624290535905609694984758861524288922779739256689413339163186771799473830398094434818422292920816820266902812602082104268504846220627874555057744958740970366249496779271166710863136532259251433374117710906110342059282987587358501247304857324448701924195815095528162754894700906962574698723468404571007768607123881288758443652836287062638963368327363991419208861115085831189588541289978025956809472706632893043251087452465841822992651423587423355872341890766632278582905340412055767035391462843362045913827604482651462579109606720513656614515228213793203468442761061600667872589022084421551020939949340122935528007627862002599139467999242562081800005258832108446518792796947788715483346509908093816562739087422181216994922675078768454423643705528550843819779761410072036704147523120551512583536755413983003282872109344174832527158863008698206632570494536288708523599882204155130905916386043078089663407303679105298374570677395692480393845338119390188724166770994548298454581958482424562021932773409417777899733646101695421971411831707942603815101800111903346530821960247053516303105335057625125543159845800405207788007916662621328115281052273314200169971414350061730607950291537817677355832982653699029459928828384738002919983821806633732121935982408844447809802992905295447284247836172646870774816114766091814056991943746979931904051003567888686619935489537875101014270861222494264387588672011986728776731471488567475516860584808350469434928080576289102380074296512202297519991351316880022617384407184975447127979812539485057166235804063563338152307670882673580324285590143962567997638429044250807144348390338609098560766538733841618177953287668611385481299027044226238162576919029984927088828497629546766994990296931663075750703478009343943566002790706394999149955074811724978447447996253109544045403188466683786593754186316273090772127137370454009990494589204066911353316586965757455313800158891763761622597502013231239547132389176771311652808974919483493283899033734928836205301998858894247083332146721228614813925666498664123178144155683219888095507046179300882161951627568551518384821701849148102576837353573642185686241271400788310482547851246653649310633961103691118960994329627355824380679271702861977843598407973824050945028283526324911917038699521994020138749837221948704569697166867810028031746233915956692815743422618894490910886337961162819382653473685684671398442094955402806238832860526624900215036088913807324088023553112619507542083500120813146930296717288221453410793102590467140424596179079574241398950231253884993203854959385542468483309097844333933919436251580942991200840880710658117887399174386031808023206998411663282830482176797737655394739772578500466304955522507662610800547106805674570539973089115158982605161866092101822664392682221817541678795546607388736304216920575139640256812661031973267735768679951788693720236963605841342667312728577863016995139425628676108057291176924718927996276494486811787433102614380414847801021080272891796257557798335934372558408038570395367648287961936719184926932090940099234363034285965737743419982050832540847458803491660112776351213318276476034878516281002966995923736436874009108523639262323639743756244835689334961833142468212143932326826537831194139081818702146535261417037617336762620029145324920570384080979408968909877994853026744791722752175123472213545970861704122798159887187482084321582547828776245648198749684047018498858632982773534883994461909564392596881091166944442853080548903123801362562576175231522329319083982537006134324119366811965387465677233797044206916659017646522241134091300521647231615858925128491533952595749011082981519882780986180675426536718878394826623618000932992936791555294697889716537161637214957812548752365732413943340831963414629722958176695620510612786363391017293290976452130195183833445910998330637421679198360942287683484865233771775671856148215164101003923464681883029992389715124854808938513020516595529608742215478311739679128209302482759657804935207099771242619982273975166309636945958191383799380488087326364403410282696476580638212424010310758447764689642615167147867730808722800910897599822212948201288800987291577479677645127251115201592879243653442994191902001595005276076113537978785752122107656237805729737899403471978993986822566388304506320768288054631704211206478439685143267690757863769253344752586208647408383305017958198010993805978189437301802021935272336251669892679462936409065603055022594890253145679151214200097656454632125481629639680052106755570499544525333601659263006494917047423802873241866624089259598114019488588175704619134495579585676276840737195450874445368095023613601738942492999094299525192463637092696672357935252040317487169943250028882297662991350781250132038389161122890568095657835402113041531627196168380240615432571648685806750258139156449668251289660948555839125611276734414614376901361910613956093863303014293439145495560030030592388737033410471813273945106669632048704415381941428304803174151552887086362987422880926141695333880491751717780958860982001431600034793128536500356019697016875610850211013156202246483911621358150257812041166382031713352332458649584258507616493073778954005306319719225539887113244250308440912228236712784716364133610749532022975103785096436925306238447255973821441347697727602394116121584762816312556585109634571152398829616744463611067581675705857192660247041015720401174519884286051631382776804993389591370356053987650939155049187281978330923660405636493936165040231324298056134359602055973303091120995102518119335492306467193339439932062217812527919413661485769460198217355595655150424078459524184413847867163744048232645217785312168994144159121344411733655842257088253490625271834102157844537157829921451124236637732436447513464116288375144101347936450889757040538961036321417407146616763256717041052524456446547084778162760792437598677067975846924095139533932715646637313268183892258705261263365865179674381432809023101828875998005522901264286037688948232243703444533588064891344224874858457729996883314872259869955152429774503926288663072667295303657477627923464079009670705874268446658939564092455243061444265473163457476601370386877145994763318777296843029171553523391999691787218009972989431051530786637983076192820494429560540516935969088371956052605061065381381899009521622677558743465249205999336034308103463399153904348073711197796930542329850807955012935536331953846256763355149964833464330014840042027390945122349401209240205968719534621484837601932516126141619555909042436689515874922515760444881786226353334799222129469272217004478330768610054208932916492613794414498095094115018558837080788197907746911245971326582793646210367229043832046616085503403203438415773191061763166680446104938959569867603347524610458067406243647322941125374203207172128052093860202891876370371915100802273574897673709391770865222577157233586996330598444479383726858728718538508188704699270816225769239224576904239178467928210121310936142329886459575612187902530493377101955673680158089196410846567282763838529962225307242695635814545080564155210768323585787287574797895258270007509979248397401597194300458704627020417532070272366870629253954145918400029937301776824822381084618606313223075813848000040130160829046830059263247425202174213816193935016409650799305497412415484036935536174013610714625152303963533172211217434389057012948797876657595484136904209899094495735670059228261048588948779748567051690474329459096545292193269782658892831036331274801282530495705636751107352567663136590914113777303385032495821012668835756928981641734437090367103052957480030568698017762376926402971513321653169829353102230927381730430929501087280609221375333280684957233778967999848568961176834569481677750788052061292004938126054949989725670371572932201904028373587234342418457871804109587283829800550688916272632831650523829049590125062935913727233118680936695055900157727876483325474431799184321626265401706965670505817062502556357445057585751503037078839239312605986079665285323549587207227754815606949929444434922979552120064200835145824454800815541008077636472082295628842227152013353536077170431147505745559830769399900077911069529371220864801540601778021016212038695878749136629485552443588120638148681231512176305966954156293934913348697381025107709677713062106647514573863870181019682722108011848452228764651494404122463203617421679972897522061841117110287070882887973855487969255743421592168619067133813469011030656395148634089622083253929927604718209104376787648380495230836864838814142859420007777504112369682890596046714015764119743505915014338945237896751108946333254541148928318813302534417939848816795532195077342018640657743555866143941894727507397630409329409975017549823071884931111390331864591360713834601886719493408398625763219679079919893841411006200300798520028775922989274551687010933192679334160836687868008819847459509806719735431991088279932748408871727868518135340767920588820301759709043043369603449900117738309571419409387717024417510925354142487894811710413615080127237743137843283145481186064067365800076731008230231022454028308108368809933194238209065518870777554888854326564228887964567988875164535805435838046189302959335519545393979419188548378282928459672743548366913017786660084719721293601169723828255261009871852132162121260467045695901739005938796243203569783895838378419866428271763335903787574951120515494558364194832123084186860892646345033785616580794746348341708291591450990844704732724760932518262962088465785027515405121315273234622396329402089205942984779071403270507720427734041161592297248285877657652503430677495967915846468448233926851454330436029646737689023017522112587225152563752730031798163337365007713659478966118207697846364306864225465055884178778289488554198906905013401539997184315904312879464536515936688937953732330436356558198015716327028806162593319945835365668404280893106593713153360817442278414259140674016964214091675650005468371485488802012182780122953433669144604768940994954681214384771129673797916576734516253335545719886546720894075100293209346715237621959546821780216088569172300492070400420947758299152238248453885864739592549084145156458890937533841729316052176590632163782531526820398110554427806983248070876807723220467953439345094668175319687241107282350471265983079468424405336351568496762880022112302083712917297585449679017901612560214270001387041701359311005930852317391282523992780703541366070949111310086303452810108931925772569739710743442868050309736090010623798137245828208046002222797273385939948155035684616788030489177707969102610010681817497921350786700642197451267833008993015050730244198015009858349617692937746413242226330193364174187069941226486563464918200148584014524950579898485591507452148539434835757254147672926790468256046505813809856948702680055670903688670979337591169418961437649323001970822520139457112059863722775095977302639741552962708791350545341590008321762330943916822258685485104121408819871641645044688086639647499569506640650810650573159625024830879175445255847183533587205076466113921458275532644614453090633037323338199294661494583172233370416023182076306014512499589280834268875184763052996910599964574244972423365452992035003189502478931181480834823322460195874555274912691339338266221344597410420514503885330099786376063651912181212578502235073874221654178115579691232452366121495901508799475126433130458431988672054842949931831988633228952813567286525517003520416730079605052588997818120830332744362908979468552513251476046394790803987708205826544086981460137579692601202222583079975631870966178784337863555993614622284813405375306620825708542045603262093612795515893550830334111462217734478945843496021422805528386571566561289600057993616668901422066752826722612674351876773946263185417009807809557562648322823909872907389326964603851074058979013232374339525523758179420154869454807970158071616137629263962944661201279822602865863959075684766811948314085332132720743949734793414724731575164643883761416369005981279659759436413558123859519328955977715952575563337550350952765786980473494865245516796485228250764222491541077852890424497025078159753813862586614758216927441526662086731502133558311639105526295303724521875773341173388914456451871443194936934183360750667685860611466284372976502996099670610739632153944734513046514289330319809928620626477887488405848316908840691395842993899352729314234496158472995703051059468902546775852274297047851287176626714800436562639678151910532804704334017577214243538502251873027127492805818694811767242348421956638893854813839518802447827027489992725111056594157398792786230588240635401023794635452292359270293375730029572546057992395522174879815894524841837513398782337724990032386348123991623936351169832036295514246471163224218111987414135370949324552517096157966637725645135522367828301080434407168198842559894274338295073862734139135917217612349730145644494812262189262447799726551385293546329366584692683242965180051690780586831086554858233881595989805477262763943552547196452875203353482384407942223432253473493490924677808974330816719280779940656528920977505251366818326638153971152506333060318702261942568057733733505591227806849099172689806938920688230595938715725409145596448365829995690626520511173100302292515062116227301602015632636147640205276053346025459386866249145767722865930287002745597912033647775195497871123840204219817245970348098921609860283448276204053819594346216249089173269522796119924876067376902406767607693956393373172975346859026859108705639503183698360168861420439892809108023881148721421114219041220200071151603410843073767033515113599323008028975145972989419817405261398486883589053957608093855242320476001216223508386401988485197979305258050109881164405682850900515783427264200568167795624062793079814452994946183848891939524017997333615008468092076558001659770831493205506424772152006766520151163394281322195201800915289732362301984441294591206995439547250437796374380759374358776925423966573063286140943282176392225811028574855397300341984941981679254097760749702434672650876362999147677992337100912965180327314799702455426379281583349830780549854703803290421729661481704694867965898711461205599266838907418014390088380272635228593784167434708559514224329831157979999484749836052073139555744927524729250957113907615405349956626881837585586705079004583482364327886317783496027158571506317725898471793753476997644504709658525529858498966548870863956869297760916870141476529581556082652109062693993253058673864942672351478789650995699040303119060037078029596086358082430522142866408807055639348270847045832308149480012076263764506380967122381380315437863160235930804352973212045543127072069303939750468118132139143418094178955519576924042871225651153446984873052844945424979985019456987716790584524533373122657866876138706614055722542195973228952641835831916472402025392698576464467113091915003387450819069305553339757865015217833130983608767049799818271124028359489773661252799324445293408146402644167434427266458919249070126024148463346580641990720462651308121280322200557704187479114504084661176068784442028328890970524132821757405649635779369438819755126489871938351882423713004216590204761696012990638499376176061597041598331939428505804385188502136642055030836623246959591313282388319906166236270922176124107029936075340128265603577161470158886537601917336329919878780269388558621543649185065945599923926980717876322705513312641397026317138340420074066569655027193027087772708178890398291409159040021382085246147177206229614422040092218780246601008476503341606144065265481513232179550269549801271285015589661649089529148117749051787770243117272789451251471765634957742751710353224821891895177093495413066709895532262092223242069561329074256198428087868312712526818019206954988288541721597193628031066217273683763819512621766852394022007592773983300101999171589559586736878499208227955296319525934116791910039496799493141799298337525833870918164027970835622785724184589304361903442277638686430524675555661636135227800796571167881970176199579753374337599797840216092425304813922277291610890535210965200526240594644404820990925146239331476174789363173794236870164214512484236257472488393457148324366636947549878280434311925334293258214624831170487674504089899191864323980739125464605533626610896884329049596196191209671587410883036049156809031708806755581541842467283105738265244489761859500146411622170306868513476923688409807601185281871623298511282090884309612088710786251004028965944162567131671067237340280188135026646747840299635072016250914248568978660184413197323575113641289124941830966158831633890297388761734551255143463927926582096191792591841849929431984078364078043648251534366314537214707248199669034451844017687915089975595488341303323203305346031803015670981067169031473691881365648399523201894175770874305141287308093545194356028629639938875845092782179996289416661606243146269685806192342847807966785011051043947270580156265552148352703752033114977564407955516944008874903571140084214417212042225892548108150510539710346478735028100830438421007639989113361063647796159539269429227208291662688836068441817610196393578426236268480176808720583071113696147894447855966905907466613166428434473430644414369282157810971095405536244630001734080053451011112735784694755508292473470564327397146467562679555973129951174635400220136019225890663577785885646084937311416333524398352962569713336804143393357135123630113959846653898151712551625227971064753539162263842437787202559042349069778999934927731063915753564852719537467915085882092080504839405256190978509126549137131667067470236420855847084576727185879534220057920875228428328432802630144792682528680368642057923787634135297457337321590027863514917270041045240226789195603923524513431092896262764961469419251214012672171946760614141607253941861023930717610762560092296250062863714989991653785500826351430405271208605885747668393394060402499514060789720573546374474562494961617072449551594135334254611318147839146866263381860665550300163262781338606157114774466597327443031338629202625648163828382741185980002304665437003124616297487688756151724575316994393786880727102406446273404752179336142635075429546504723205751400425889831462491090027892862871989349867334974734250847020451165513069849101810891972149383009156837498893217333601789562226238958120906740227995328932021531482610767176662126365868508221774627049692937634325455911639931873401596437252725587602565729811648833607420636174892154945489653164370596255141973759168512367590672996001814782200142407175589581598672342911349519699759455401065067146582467862817785121759227228685732834670692763496637529171556918802594095641431399548622271888571544671673183461842934013673774938192819077730005356900873134448639831587267551928436244755909986954071056574061651080983296508336974431058797612513144075801045493323136186054966014246924707866819578255389490050469447604376757832612312419224367228557088933084967196994988735716244942307327542322579178523477242979475860066586815599298503998842050243129180034802730665930087894391315262637943930568311505101380766285427885551296376781801636379359100715210913730151722437173998108109092615548154459320279228989237513339064352072658351807719368340080633099270978146872319702358529837246361619587609525166241094775840301486814670214935622429061727050924665966724025726081041639560399131672857993398892856014704570519342988435773670664301975139483223511077888810697087522853689679854521658703516925107715600961863065154927221187633717809463185431859903678970899750210598750355581591364306251648268727609395234179525288541646973696675548618326889575309688073395086487093422677947759283682818019727451497548196196196669826597501492545837212038053067109316895745549812985710586213663510797241682389711362186910995087498188777672984587287302270126534687578492682819530762850404988091082586415742955852441927988209654779666328172217102800786578138552516338319881404785655421269603948425398154527884617158403918649489121099881150147499246575666750104137801608137765118084785200177151601366905199896637961221097131166242538765428753891301618463647392758200847620660229203005132129243495782919752906383872217031947825775861961994092281406332355538910597983639372985559524445803652682625200194956038414243068585411942229979510781644725170928028615821046260117645303647629612482420540133590916345032891754282748595615623548146582450643573353522216881844056926044282738874815542684336754704283330883772812148079092881062068887392939623142635227261558814472627017677545190867731766028409499430625607580680148706136511235066399930271515134905790732228497534386473222039309115833748991297326536722253209987267435043918114302867719731489533116330050383342446522204621664282753705868222598904845583626864225170387741133523162231954855843252413028359971118026796091649697076765893651718375179740608818663169217197413459260067279047528892902680712656670968711617582536065087576376848593121148820984455175943905554884837080248190289578446592647736824208139646526153212396012792019889567135278325803478791932405079302562169773679405115794106080738666594785394443386857155491034098226089922246002768875057531225378508002096588169109295944186254023134805706244984723795297160982778813982782278635101323641570558656658719184513212115139740533091402960197785232149738358173807209669767420163009798131116657331090899341608367734207816386867781798146674803693992678213139576182576018892468154485676452538042713428081685897344184500149490876021529667270482263868793064821453943321664099626828416831777840332698986578470893155635985763908091491014521691157252703533865780087748724878186215793012332912904357465582659327019011125842926040149321907908067142702199674174086937247393992828667437425313716920704358385183888128148483599770373718047154841129406294571530146602171330862541166730726664616643037813562899038055682460225315445681242596130362748745989793665562037009875922805573754565588631138499769626259845467321661068342299557251755070775559019660545411436540917132358169377826593526082675216297370146136405509418470062540653456981661679472239647175115522196816490238715042777275411508083915203515557220071941405716926871308637308878020567054294882960747408184889571131526094171103028509346972419595167098530217465054549395975880842027472233146104195353059901414064721974466054336710908886103043784865228338761689260265282369531667462234791090652425206745691231469554161907558541130311406313726128337735553490857486067578378180419017579416473779742433963022666453360626768447153416578596171321586659401890428258236866773023695493866107065521328762520130334592927417655967171385616356977566739318821296423403315988468223666480106824397796660456086803448220111816851665519798618167566027257398887807828893131755128856244159096617200990528203217704580813982954117894250702699039610559945871561229167250753026107323876864391415419945240563083332197201378337837629827809587240771498168900655993626236752543470242131749690449619246933051755703040565890667818408759076120632462052785373714696308851317530624571933579722319662763547713299027457382090720327946400116927828490201482809194554519975914052326709123127942116494176108454252523450746263654413894084436781454786954652389156895271023289250416749547867153709574089501350218867855861928789501653167207313404425109994109025639118279530280148331571299524999588593946843047134352584452846465162103405923782545328734012883385051085821995573267633157412968086520490999344869477866561147355823971589977428866749397075614367937437166681026786284825262556384226195139014375423368967225691973840533300567301646142114789821219262279721183338330020864095587438120709013270219069708996216853893845522908656019972774350434818618199487362913789496453798128541872710713366336398594664505481843801143493479024398382297794724128478054668779452743164351425380166373132427595549080844082798762520205150928776766992884919587424469060712712530727137147308436210777713801842394894725510699309370980995488282781112821987070668328001154956928531290687447529968714982091381872951068595176439548571350016180524337309803039575372666930056097883390331600561148430971356852056325459419503602867333989366285929807822927670818464352031001459489631858789598088894204497129730044129510797843902575917055729992488374845149335671781894230276937517467613414129259695648162931991082626994011544767034047405098593677645637066904947647325827241430244469091314998949017342337814538212229799405925760980493907359108952528156195266577261579258051384602477757168538443408025617428008943411426018734801356540075482928351751413596605488502820864007321035461862975687127193516867074398654937809047386179451110100246535206064294958031912424466554690835287093557386394646961210411014085865070521298693439851348450673166143584359051910222676378025828173874127143784532317707462195515906602001671009603007266823435743618695531330111658875485955605034323567573783219515738081740225485558836579089730478585133926344005254644052259486434056467014869519068523294540150071866914653133123533850828637378624272263540097064980462554132226944322772255506751778450399583847860149288668530717950438457052860193084530231343749257514221737703267373224597823392060411394547612182224397114143871212840308771410789997543009714984995669247931707420573711909148894429291919464511422521288398882120026306921131609484111804511263572665218246026643538954498988363512193634807671513885105406614217666723762321072958862460004442556317870529253522176747727662258182054012182133087657017034611725922444847764355876118260114644054131930305292058882255525311316229689142952925465616090918875401302688674744180340297837151383988338368749603403769547642191471198958532938264938089953905627330476967788268461762863560268124674521208423540790812095575757141412826582673575029067827325212847291351588724048432353764345461730475387497796086028867719534967861059037818979883235285404168951740632085153287122466084381634150326488234490415514764276658541520006208157973533292768593039306088311635207217414229155626543751476211357826216573129163652323846730931425664826452945041905383780459712920430137786355246287861057078068729498088849846736882748618405047871337587190503650746625090516128786885584516569651556428749614475283556352539865224710141421490609450496998829379077106718327818756346335836850196268852367171100749345842420254542017180550973672190437076966105128732810244612252301644880633383574480821680585684495945439217037088722314863357811258481347896991502295813560757539212026156330598205130771732386164804480307756689882259235268579832746525611112852754021072335442671125365798352537948680343077475748365771722357733630798663270647444607368678486238476728198382551110977890777234777377196343000453490053606732575879537608416426238256128304774297941186460659860728427162286886164932872659597489515218162243752603458543030554927686764836631198916410666019979792750103560875024124159077459558052550886231541232777201617886077260362205292171453684631116955348745898293782887589317663922688091339020056395105364143746335365489749745177204172739470078732459167355883179478904930804268130295183852532714912293815141136666385219887135943707210083603731145120713080163800305531628079888161977676831752439083663510280174075388451281376565468906510924914064979893691578667563145391631922272949199916508878848437145459872910453763936782322965800856720981678224635863315886999427066834830196778444854181658261441845994477350005014436239243261404236363609807914551540470537662957885781780210447996834282128810603011437965583264060807445658844785930572338873179162791410508436613745562335463679268314912951937122317561137316587619173628991860155963185051824368432634417150085440369268488209546149435801105986366697627231328470287968158652376326966042866816751448545078326327627265936110830403862977033709622762708141850424864206712986955636138572395563231494337819646356617981107725339216666057857193508057624519309061790698377439147540778934474894136114863725649454846067165560122543076183658438519957830755864791303371239517260462941056347425766397673205879164194641202366817418420682120206130293761341220610169999039484174836307098020488517908931444933010114963226038668832647261344718198795202525566187981854463916087135400834964247340963544396622681520336791550931850407551152885775266184225091207978887013621822028378608505516730514320338202453742860829920330156797932207625090192137664179885426375191295184746528568618887432991657379646616867325620305805483511077899274893448500525719297141557011518875305114248066197432267344732011043245900026312853342873249791944347302470312794774749625864258770006015910128375822001548427781051582083137974887096686956469098263217025085528195729906910220255590734959998057387679295681427802378527266784264532883849354546513261556357266386252250232881784284438955087494019867338976015791728668188746178654056169949045777392573150515421239138314369156077359049364817521188019486659019375268158071071728895445335630834332958016122021777274716227053350289333462623782109138981695212637697643053522160435118447683786264501973715126689993153851431277467254454512754148069093378453694834564609243534303384735023600259851466780581188131544526669255282796140977391499771559284803367621047151251474618589335510364612485983339164176648316702738153856501580433103913132034981162508143879555773948315553164756898540862050732688344431969187495915673635302188526341711566604298993443305169985698853652405261081280935632277908157920378647959232471654239794696472568569258664479167244639772734284401607847017437089098554068214751381048279300744806749497190353647831762698964225677708025202885358321618650895396101541577523589256416442738717589189889152368494585044660055335106677785087096554128095869987290133012515479630401224737120337329479168939682807820288937641077451721917910705115071571321094004633850327613048129981568139495280669965900637642627422306909913448224837772647572181469371249255176294778582077384837687340519989930540534014021859971184214403143336263411963070716064900256999712917457381550125681871192469727472811174121883092769612808494027263102765300754087154339912327156456079562931826980373019568410607147684363656494706706524397635755975261507750526335141088811592283459606078999740212312284621769705335143598153369599513495409979192412330064007345065329881164506798085424244931505352423631462367283224797034288620809874929409591581578752636483685662577998913833088978994178523742187650451457731599807692834804033645516427210984717635813028041888164466551160180411118377243599912105653888032001841108042333714396803012595274726826721165906450537251113254146954310681857709073068837168686633037670241699211862207863423811692528223920239749480857662168032077192952221733694483340183876069728207712550808932847319024333744974849597370292735592777447461743554682844174399217469790696967967689513879581708366227711904015354692698306052538625777963072336152474802638539184600256986443938396346750151683853243215053887648467526439083264792617231257300452541896200514694765828097273373856646205515151124662246800660135741547327232535157696418798659959980368710944495616384512463537369966338586342426158218189154299935996435223854252947603986897985965537925524700068318996681856493856332888158315888779212132721138340867240278308223516532257522380171886843658248080756922192198740083415693362864410679590302139082733605105488259494782463587372448103970352751636036972917179180554811006631444972991422246294288340524491860292229706689513140875084786545509732974377437596678376379057032610068705009697144722921962488044090042207244191006248434376745503194472860344805624882096801684768148675658464073244319324167248547031238022362357556988295618768139162454182763762199616792867323276750790849445839343730501189334161042442135945983468756392737323676991430799562314104880065246859775905493775688128639371294762474292792675452316635588204783529327519536893069021794826309971900778464527098979487271732258657547824108206530718228799850013648022298665072730660114782436080061537898633852727013170267218664130163732724828302223687510596827851946321261947185472682662615626567185298530810774960825277528231713629758212867667296328775986609422583567161528489313667233904476051042083938560050671558649118356659558844006342679747246231388108434734800173195705876088461284910279418152014466306103794964202096662173886690182282127451980424095946153738353946319418257750314440143052029255250729365730522793163318493035526089428414906219504215426955363099645823937935600466750869182919239506484084731430433543333662710447451155427477115477702396557190086496471910046664365783419682265454680568265746043385475126828471287229724097266486701887946916807936648794088415325106060920551994697186753418335015538268231721365207878214875931092413677010784117800543662476457767924395392492405511923460712165697434089509623497892110448654936958951334831269569857913882973081732761843778237974880578871937202165466188057336688005281905074399700967971307493348659386973359812757878625863795983855768119905167267175322815064219434697705122900655002732708768360181008994306484189237106352731857998516928307543338835716554560455505036996268748474003229142985175105774753664071272743037295070839916911869210430497781730478278727321739346868159368268250009083926616090678463347189208404637685111356663089377745953105309385243680161703452019606959784230696568332967518053389324286959213933278382530396041765043716736966199734675493336362969031754293563048290863270025078779569444207341745385840710716075168485022750422849081674529480157945805695884961928548870493945992289317431062491880864390581601755114552111914691874990599846863728958010565281229458013196822825473049560407065373989468555771258534852111728350294514480653261447555649169504154997065484972713641917322426561371074726545685474619447750142164017658219453195040853100083562613777287846497115935841639575307059623869417792996739606710360539647647998402848284524547918633811838323831060368187054968607436878602162244412998110564821008472205462147148775133119435819221432232077646104262951318215358982384161503046010578904099222088589851032822098938365000578961064665043996611544820533262870928439294234405813135325332421029138742950274434538448043152907020268720145901382660921302163847078354165591464987339544816812862110940257731119746052170258149909989184009656307468105211963660754603178286729201373655489335607435901058019814492619508725950313279540230868085309132223452742052085183090715204831877572881470215795116974494017403337140681715974275716092505737467230945391343538542091845674237913812013822918687347662611938307187328682528178926783058417814902505848772153528915956438144081266879024349690579726802367462286126518745882444631521491796430589431033407420825016319647279902513402056652045573844433645126845305507230287211394956134587743255271577718330462146813526572817018652631379392159213132518538887550439222295081493544155090397876975812556031184385962620597006388572107232648713385257222061359118937533116778009811718794552786128035633841908613039475707507329195298789875877129560253680122185064481970038624741774116634554807673599957367465666204537290933226164887577713870266314664042113790765490819549892534486223798688339616574234756908663393221896730536057522145628080147793017090016989334155491616642053164192639129111466257508562696470575897282314071139016559273504556130536810134316243229097550098050342394234968370458338651338429294755786803867627568065001104544288402175066220463811107178637543562263809266804782783530248983910142294451693507232882594237626484729698937245512461530276337258626984185494117572959586501643285412899171307972592218285455943936776903574562199815139447611534070172421893480604201682089307197360220131905911423068769787880228462904633962329772038885450212616308511571401555017057466498115030839174341222998335926489567642892768026698599401735000808343035048876895604429026495009192620077452414633982489076056910696531428186785126114279790724001861574605377096300782196498723300236025788934978748250567284301913854593236402251225819447101743380988855555303220258055117339762052586074852033225395625171466293880396028821534267737834600100417424227293827027427161163461360975129654759059519506842512267268201784016204868292405378312889934076532954119083702475220508166962122229069113390700807152875427665562497418414872591938596294411070670423204602139139501934711631000467521984442991595709628519090630199030268339183443600663900938865635893625445018534461378204612629441753484858629298695782665790878436866282098456678399127755994249704114337369065899901317873474820359130051271963569826558216882156909488462616350753312927607963732971103221577748041575259082923250229029346513654565975800916379456600641575446508471250277265932060749286361203235380612648253554266674834591616991231637791980717176133436157757084973978951312332763759313307643390438495693333134692825414973393534030347944374849171424691247020847790040790306682260085270894607184355013106252454971147978165652863082342609953435329197271821692554112343892263223845912490244616667027248456116766700912781373229957030732974163056001444880769744084712117281147309544271093989557171205885140589738006356407891432458884915921921935952616121265354686384695048236777277256239379631797671508144219643360454216559861693287936079743617560640327004381264150933638996925612527292563917393587829191025834610548719457233250188366007040183078584046881529448302351696126408447899863114735615263310939998221296328901803355387240870090964060807182863663679189494252164927913904821632339827557528146038575319123743948604611515684804059845824754050509165371566745305863932337016037877390382475048212001100706317207957621994856196401881518974789706845675360381418365385957595081741923559953164496033144134525254756855811537201363007918764760091389920685823614618898273568100009651904243651006403658566541992861680414286271495571222254285194075039433987804201503299859620897862185881573122071055505243735790521194854884894598173014490248283546055488368657112509980923791510963919583574698812163420094353993248378872093611831218361789679373661865187451638358042654188524500149292174160447448240089202136804729104081738355622110663145402168368858322735874809069398367531136257577933754389595864233297091691725332788237294017196823784095676532772384519494524437700263715845389557852471701537972180758756658914896130191305249215760771959539969802035432141606256535238897124659930841595731089664523112451332360761144921336534389762090894649572857322072237497646808836227991678088817998742398745993788356814051473400529444588280299431134169009845038389592715586877986432395541768871945123388973386445473191195537773362370939861394255621988424052953306824877674854350787094975266794502416286596746841744741011498722572877949748809629733675025801729526488930797181281489450981509364327647187116678496649194637332697496583464815605910826712582092836981948019312524691121638128745300360192417225656118640824481035106770134018035880780021455449063661912879217997555363637341378977360570406581321375036250510961743283242412634607243609858470716068893584567705271785585813735224517189012545827448030270576074313119744142058522264775849037250535522049729824238801697317824364462155601763226411114753180277113029973283220194789163463324693515420996403218325149332598285964857195710188417730529551400745596451735786186520619321691160509480956677134476900805174653765660173203856937748742278944197512837022288805000656493478251677971895212466502366047921996544213700158175291230470848624130069021555386113812261579802849140326367493961402500283797133606683070060876145924006843760792940884812595788095219468441052574938224067855770082570931511442922965235603487231836752320896399408375233776442048506475716346467743213064551370556587082540597594613503131890376459448581962323946277432444742069513424971790485664662614705923642475642781733752813607516480827110908122582316070096035571319043636230148307243049314701340866904964336599169150434531839180285076572567046540208137858453618247165365080827170847933076810208462798311730712185665074454394270554420864984781833414962178239734552561655239202524735812361833571018494205770490215688495153690888126880226028707373423455552425177083396771191833605337834782256810283551482848808790255843761346852018350470612345565123346950365367426109180549881138807885067233963964431720251821379416358393648853443016541129143027643060439359049682481035494291080243480543528667291859321204711126011266249986630880917731943631747501330920871629192959530951776659405938262169753709946789301102751533039320984414780796145956439502162934862876870110165399485197684140579651656950099295719589685178952018502867016006788418260003351198696499220249367356185281026847322153117013684839256332245316372160783398438914297445519428499329772667468205294799105959632468448182204606404794578320987183826924356184566383519240358683997130811077582487276792242907385850985517674298572789904202415496764605015171016917711076543220227259337819929965949981831501329557617347979864862093627219363073853648996077275542151444911642294850067483264724053543989963030781055862150166107799149143426755411961075884984378454971134161973116263444516540380389942636057648503149201888060815306506247119194458716678160395601717631401735135855575872955778755928284917906350372945196448310808806643033414540310624244329553504689821810743722073438277551656378486684975897395591170615160786117613417047167018439388843507563628147059939399474554882352336115081625521983085849394220006923403189839986417561956735917820863857348141509365537474608367720494204564114461358900982537459918517155747914408713840729509443395047350828152540050766698256084514217564465099239678575321363183856114312190655636312816182486991565595681369392480827972146115583465395398424273789638964995134456706904987627993602409958831611207574040781724368367872066331212797113493113953972228423616538817765318839141734912799312615635018945340376727925073042695466112309513594994081909358028271193313602679263192059388785270686786750261224227458847596910198866641751103624727415286847668299740532263167014508719737445581586446662508451299815527444254990055755938547211207837015157391705892664990032026501103205085206573804747056284882427538997844420287929262024462339644001716289764054727389884907898592033457631267525671359805222862987252532810776803955767220655357457953546817157398423452084469373484947491322516270688481624247656899621561372993804584565835347658822725093892964994225594954392149531006081781061263576210507947415536132054121541763337421522886952201421724017448346223853464566034281003978945131270557006406213404393317885440455005625961171395383080976774106880920102035912164600860301972988788456784803066923011480725195707130011831530026040914368246843958060988771804455290048160116003392505860462409182354789962907494368394302671865743564060510415288188275399426556296646058699722466565943171044557894599416617061968266812918029855718554361535474586175926300754939802691762763290187338752980616853796677134189198308654911692702985927092677596755768583463151551566897758434008731537278473895938110163950314348955239682249608262029716032740203668298758264252897604072762168361631317426856144558903375397239898184235134002165418509452669265105051540047620750078076296000172923520148485229649276204824165740235216477054145290159409535144555830697437103790533780207617937631155378681354795898871596504754264147765938300351272535758592380787957582279781569117037765468851000832258935426465622495829541044851616114965157173056454537618128267512819240024065161205579824334926721192037444721679818664579178714707702017458479222924788606541304238754804367862923962363216942591814605376300941810133395503512108255402154345945903878097050269372030185983934356433882071016901028655410502097104690388175205223410572746703079313232167327867189288664969021312993341233722198130266223679306317572806848902471528585163304201274124281491335449000249087524616537096170094146396108114000505008680544534293003996384265492152835889113165537180702584137056194609624801290498166776936443837688554264337130690270673169598487327303930667896079459276502379064106709512593835221309274973007712090106824863545777731010733985891879201698736354685253509890847299248204080787728689601564068424530370860732244408704255990676658942144475778178208293780142933680627032890607543821464940572220910848396890849188141425057958374320502420093639848974011571888147025445105818151046999360151090104363653180473138502432739752417928964864611494068126887605545908427886932378031702985035843054116605647030320396145504638463694355783963042901296330403858794851318491415305122463061629644019070671926650623894198829257840272387465112488038149860865390918619226803330090701531550965761324774486607808514618899818544630049054767522059872167884563074672358731921833694806497597874510779325887444561725763611630046005372950420019921180878352664369616696007809862049781372029701375047694568548168345666103279057373143119591981393083091129573259893746446108818910798314941342617965499401352187901708965828068003599797960107384379493776265896565075569085016633400007042304173287940984412517060563108061694422546545585788661431848337100064730906402485078562408040286359102302499957237642935230927451387256331842755039394575078727444048655394213492398363878650039464036170629817139176282742920093828993989115261887306120787513598100924564503661881018292151600590498642103949675959252020702428548881893208271480420351037379059881567565393511882052922959188620125658282542403390986761355023870258647222858347048364257177291849936744995691348568180361838260760425509159084630355307426002965234600387510062128212813687050184121875501837952669638300032612324658504985632627802548235055021126086785068806570761835963962398104155985087194391628327451764902640390461449397498787715731636099952684518306775251277219001599311625391979911134301654788726410588893635158901609456878206992239204626053801408083781161180343769012920053774758656647779974599334104322352814745798419451481304149808054225651287888234035749628228706859185001631300928546142171163208393216617695762403251034252310225769095587904407053928209940927784278386733707836921498797046797530177498033503592184677063524168009230000400580544488406864312587486977730092323610296044255471001613315269377273470312376488855818408899951427908104549569900014888023452046843640310049537351425687565397567209159300852479742453823020961237859121804246022637154068868987569103920512965583905140202064495955686747116044933305438889161037314763100682471434337136470650771220773836884899244674407079929449665874851673803233424659830818849925295363869000157411102269868363232261503725940459407986939246635218400893604514611264651807448910094277566306381767375503672090799826539290983950472486633461630472222538340809888369794613026602401324848227868966172076271147083423512954533132903499235144282128429024734872319402289485303439216281264915325713691425551012244381861279502298823448998086186869479594685163087335943120933492701726355078785606412421606092344010626827603674886068853151032282605869433669200416640190707091290793104232208246782998630135987872818016261218294214207578699166886649871080572874394435207654723590866234341310667077537336230474484666107761705940265416883014198729901877256905278662406249425243012176871718177090036089691406948993115389832956499651556500374387319009788790232716301569705578933004971365492201272181857059022967329843771943907341600598192243549657492792662657481809747628622667353119136700752556878265060446945680108114424637097053921133143056696842504321705685238568826586668682381870996557752267269240215365487159517128992550598580356833511951536966312943946057204996149016315718598325664560631369675335114013638270035749819905749812715715398211357877160105308032006547910610488736019885609674146115877043631800540197619519692797458579547052800841154962180606058210728480511161923743103913425593118950378354961524492516335302169940474514760349229575747001157726642121612222484287716057634087525552459719701207220115592775993402287307730789250038073654273474683989263400545232307336920111766049960778338111925641554933896701866118477959764964622447786838007074183571337912580006632684089117237472333777608527261550332437250080067327928481031731084369874962080055271768062618292481268341992173849391939474969362448213151036489557639940949492445033903400852478244966731818148846730024091003311717920072048647664533825363261236984131202727367778185398501656559872444589694083300447548401041422563690003524442790727823093950346292539318593979856357347085707708602946979554008044334150938617976528558747741137875701507997599832202637847380404989014564501761742939238618955156873903180859877631510091239175304601547919774130717645618238175885250604196396323371732714899885142269051016993771009779788201771732657144358866937684085647618187385385913788163005141375657571541770500908661401111575829081694284659089632976530970286538865333028491473164963825188316475944328255002435153654466657747966894615864024038498759690190174320936623255871685404389491774476748706574622922991422767645407192984597690209025736251478082250835338001970702784407656200901427099332239893796181114032222653048861905345520332837896011093413520370434075840472692526844821444038722330236404247344266645663812216145189688337949925776356816578330831288840807376399307093914628831112864804441219892096890578739697159405698151983165912873973113985600463243079013344798400120664135177926405560325826773851034634093021821231739140776843193845299056271030270878476556800502754261064939574884318885319700950061904922779582314071506030543063501428430113672976494056537869765497123612260090257713889006103621390478074411419810321976566128426198047206575513375054638916437919488443510220649561525310111263360779858965440812654874446953371792828571634159827355263030493653759707132969160244664642521895752849761946297948005452162780802562970510326227795551022302154317333628403755971279133125444058609466128430579082168558360859363014189600256864262704094880959349941940092112184348439396082051740018080799723836953923445119710054132879769006354691463664495137653896497314957039227848399407492582451840257956342777077894978887670746516047243763737383044370663633784939506961846856683569660601728875511727548917515166615105370447862249270877549570325267339028726010207204841488007668178224178678732541153865899257747336257185275775698112453368132822790649157620398843622798473498900026152401066218800601036269319672159297398118262024751218931899106880265656771367933016024213556186963685833433712346510762091556075612560666783716012038160570849402013446309783068667302995688226475605462181834458419358732938255106648047626731997146674803156910803899846348968582681705500465816145555389488255540476072800662787649648022430968914475296421205508426977015656223384774472627092176818189413609092126467077245861025350766477959366060231298997181830899345902980737755120157353175657691891331582173640451196773085854399952112776218399817776369570055274257455185893589161552329541481042196079171480340047807080875631109722777515865025547090629138899680651549632562115606586672176279069736523778257680376386945141988052639300125263287003635692964338191893033576683796654205191016810955971353457715892357437667667365752490938677321947309811770914353677835186579439932694631226664209274403688366017397047513648514024517927242533251901835995310333393117982780064357652848384345427557413988829020240224062715147214234465494527047142639967748712948767918232632576944379118484693714196803899742905023962370245968174364334786402851364443612433584869255206050944282882817758961257749255185394607367396631207371775157534298382436061019913036890894900562849689225054103477100142188002585289395826540934268808791906251495919422377573118023464203407063216194236491357591982343366851295485716391687974409343969139167102046531967827990371434101120293515940943898560792171429373854026975718274814658925235038411521007865208449641141677342347742817090479523794676292841640532649448302772219224132802779750245476051643404397527422671745373125482467672839860057179930780572863741052579629163684673674485928036318942938647719565377868166264621748117170010535140093961041535341187737516062123277370056924155549476092294459332118018982744876749721146530098951348564288692845871403721872754925649236521542898539794096713824997953076994748864734669482547110000131593189440890479560742428024380612399168017349218668033383786367038704720990564440903196838179745482529929727983342019591850329637209498196058791284157656445544556002645355248931723148865892311229953169334740725668153944275889788334503244602902628324367776573199875936465233949642921884216170718473594039448215889133789953747009424427102358267149818796089826329357273433226253254627636810236530280646183354309546145919034285764381933032120523490682289913536723354646984927192699124751243927270289782709887277132085660112098052621102245441656618664379199195103161799579250398449281106535965810046513319574542423258989149335224725969738296257213837700401025178184799816238331602058760527988028851682391118406207251743185763141506485964321884155027275815447391340679726370506853206832956265787527072400825229348547049671292943848430703517422108105001170672015137785253940352193639565489477754633059659391693650718277883780861773215638826276966353938143443645955244818268835877510812787400974702472921364120647563704778644383300015264944796070289726416209036541465899853852094665043134217433021893217155435856919003347672494693849929396161842559762733602299772871566791802968465394380300287379078061761144799857577078860874266826845721416784250620101348039482107735566972453048532741260009295037814039279445648414533115968746382020898614037028213414065926227437182048639074020185801741900230066164019323294668919249793003460307175562774245547762700912184059817298781343650932653616598070819252295395100288606717635377504715015225297937122549762240793072185269526676155383920394343272819074245252061188191593699716211313863434149306937090471867836879825436248017422429155317747981420862456979431466390374777959955454155218858225435603955269261026723965836344857502000251744976614369455559605068393008590958528214114867033981602282291328842516043515024045184374032486226886811319880491620192166055177664628831593556970345159021227656157036598820157797841638328635310582287133387201817238847369090601866264274221326985305711147107520416227963060709865928164759192740515116875346988979463004150846352742826695417935635139950811551914637113575330380075366043061120761862111010470179599234978187048825174634544757369417886233970727537798512522055907855966197230026927091869721877960365568629667637632125177148239378430772400426532961571811814872690024437630918766357984353041873222700829747853634684378971385672301813099924966051936990628712951707477439848265124510211287298999981496407085942176286274857514320396010743294430297944090833851115745626079358557657988111782281494438472902167952507692483939292986852480213471098846944857501492805512145262736152145740661587565771941310495718538609586718357928916128683717828657024784371190245405535919761312262974846137810784845805117449455396904385490936222130368687008718848622105238037403656851936445240834079815442251722142136223633964191612945531403491491810624721543692760117581542560693855479534981464122603458140235321379087105002382968612034999218416756881429229834962935861189139459533763450330744861140900917372290583763239750064389454165913043021997312451943002242350248973574540675816074455405264559292182394466394477596484700050033184416216472098012713989069177554559645586166334609597416525472777990273095416274357250924800493862079009272386034834633364974412674993162984030262197974871936054043913865510081572807243308141309212431970510805698211304313881155919094999791160139532733989822494248081234143148584023133392402800664526162166659590479497161837948286254328127233042306494378477237236390888855960969856687630248979526078329897596159463219703215683494709004610090631198895388468201651030097141910668191434568196971245963524519037957769934313334261678990841622527705412856880813200987275947054137827353443131864886367368617284207307986845281703204501024516062478489119910610863313930256555363163843454894274504501679103145612028876760125816216706133759751922868999006287004607330617868402338372347744341402208950243259933371495543045419335091560497712526895624837399257123554218415136659372205970430158590980988274967123154721259502810244405401726064036903323659103767959290939947016690676749169757229248278632266809348865814085378168135936911558572007115126066126196136223371800163116770090050001970431968773265779442369867524130384622696811463659374256424817052523956178550759568493410937261970857776098586225280018565823817495413641123897178312795077670345093601885417324629649036333369880362026077095413704820155452322329249598528719192209943190193910400332202146686358981634782304676901590863682198083278888639311088682486887224826161854170148875334230444406675702048715857110295692779662816887972146000348872264002577697132371328654304009650015547601379090288142015782342719344320528061681560658572346887712597246321419626852055938955845236780428577470199026824539761544393500538973523219442873726641129496831786374932700440052936596704924735923447504271242297843405666886337419008197073074323666111141231250607695079382664266033594322144673506008718506755351243053420426749121941722625672971136504988834410290254356444083847188034929129061375668502969293885430867157700852292367493184815348606996254605538838324656625708017244528200651710957002030521249158180838975223191904812494283158901200300657731839107805262516765194243355475253933330298122137217316197687894165001188398546833302109103742322819207014169693065551018294384622218813581635190457991095925450930899189807189576309978187212996562205795477819233780701127820812878852883275635520640363790954235707474731441743233534769555031732977476719954607497646700096829507054278210826084517351638695564571806268203554491440653546826125410565901893497748688610480339680528735340420308749693303987108963192695993126524404099615602481092994504642260481392511363911734535465906585156321257875495788320669866289623978318458195965622145519002926534455686091246324797784499439335300523133651863602540230412677017006099341950442640286024618334032584601567806674808324763381766184447092915194545422360350345121534542413183093519053616574450683190964385127032282899118244542086533787682174430702428974823126860398560420779709333380238385482740791126275744792576778692130213258986601058670551101989006677935222312239168155945452592514736944877777307548469533821015392669306906581640722415448120595965544560452637974757031607260583006829886353566797686884091720615551120049261085986480874950265413606483072434532019786305160536719720787315111887643012173503802546732715583928750926413404988075985091966614053827886724752434963946030134672842666142123150531220666895637898797547316351404084817785149650395022447449789115129640876644292774467764235674266677557926307274715083274968246883255439056348521132971678091326927133229424727116913717624170931217284068946659914220001303163734927180881660774886069181529494746248377666988109644737994507974219928752405848621308103811753054641997081456731550848417089582290467484223996337571073267721245732015877254507165077494395514249848334391897886242584257500622188450370689112819672306065820041498767829677267128315309174635530762466035114435076409140053552130854509937825223141813066216199794590724389043793795187365208204834856448977053307881824166879781244200655868660098858912514285410372258714542782756639545099796193376575482079362026211308828345774174457427991579510506841330664603601475418534704746388231348866290623434397861322617983837660729642477924974895314028800430646688464358843410727597032679699450076263532509383374421253278711068041619148754133436100744888961868702775334699764361723354388195723605278977366629022873542200295122529566228307304724030290817441657012407886742861069039202888707729404773767767527064047214281900731856675513974863832234687190732941999311868994916959609599283350088775001600762338671535775875433279043446740630718070480883415962759157719935545768450574058621717932861826507946488031231718556411170516594348906131848309829598421214261780432688781699226653823843418654249759463894897786383018372400730489557376508040018873142668895043652446471832645336626770106713219325738055501972302652449956606484565124017374548513257445348055168845427138946793607625438025261465142149376071397210950485062192590942520628267252983464698947569524365459057592788988505212071020985384249873668155007466098363790319866974787898153599946629195899465479211888664015737153439802350222340467540499453879775584340495954050377614478865950213943035938818099916947363326214143455850379765957595225645212875060053682697650541565243256974059313233026331080911574605344001262770022727409648546576208614215392157944201283691848694240149358668665715891758998583121721690569813999998550172234748220832552265288319790322329975376784438833745067118560535672131432083630885923341338232026547182032707459091722555914839892281223479052264575729543347330356151938924502054042991854128364554635458139770546400287260829873747120128190271826495844192511684635080661588517139129382386871132315644585212140604006626373969885953400681957911256810470414727019495502318439032300815881876514320466324794546293032583066127102312382486231928585482316898948913401373392218451414954641453367930875139513844505340027504885607388639328551354285713807265464445370042249801541033977229309264469301135096087391329480197991751824735405388149032770327278334836025129737889258261061755031281991382933241917773092364218105825734457814523717150169335640216046766643020925944926441892828988613248895035110181702341834044625906398891458982549936457402944890144063209298452005728028746383183289519001032127178530728364587062638804224058497383686091847296545993492946960631371592113320521881975962535427978885057775226435896295188658012387996077438279559795989668106390877578456162000472801263223699901423638183046526082228264265782581958550607956138381741842307434702553310641339615710350724605883292366079530616368689124266497726999654092571661214329116457834496919816603583245689693247715779567225376231517639809333143562063539000849379369395792462895944303021321233876994345877780554288272084628204435100350691637271010399271287816541618573082541684442840824237564753085037850866543541914861696746122110787741955254170768376349599950455415610274854034463885386077418967643013143083528425117791042926558177205696773734308132471160730396666257132224575472313858344605000076125575664038290371934630690793791756716716105425490326449437949230856088601702622959925030058797986372625822075876484230393100800587995289185932129503759074719523731895039759124008891544472055814112206137440605266542006184199741396859528434156939881570195275798594393567486756418273614181922580243056574869266832380144183236927373807506750500215396640634443099083146453025050852217543608672269381512730548022526685615346055265041701280243545203028418295113449958772100360427660364865596597905590499527402389526136049306505325715405708178613861585544197642110629370036984722713057101385185770729144044952255479674827772854363622869436249467496247049294088263908602552458692055807505787314166395676970452593146236310755129413894405477409557720303094620302523670920551735155340701898204124979310941072054671501103736898349147087318423033061397776813447783885664264878354428002358986977951347701787888468798091604421074249113606564302000132543244452270614828304371953712425548677918539218787749994861581379951566493620174100224082053179218643423979530239206083525471596293686165228626590277188518826001333453575820001788782538855546598262780081206119396637674584819249924591646915142005881494693628311954275428793337891811849148132920509997032563993585719171320261336084946668303707237638409806818917521892164131133119593736596967219044247327949050458866224629384612287915205594191748767742455259234154798405292496593455681758717172928306762201728427313691322643671704844115566677286699154610103624440778005727526327130079946492971525807610215837801473515792497235337304253717219734623389210938683046506856725046352793849068656652210360450579149526188758315051311935912637876069361835438785095690621612200617967028514707394052704465858032282716251588274746117460934180024353867090549401139055269230130016905739772660549616776909229956938311454608072124468678444958023346834026731625954903195970125132381678503031114243230843972524717686829665737503921862007137843778408689729217320429023388339922507711466308485646468952487926913008649094382360626000237181615649139085489186294599487156061420516126252517342465037482219485847329113921045109549329086103874225171850600002871393125330133316543254668100427766260137156236978601247070330542051585520271489233169425696302493738419414067653820324093791610010719449235015585893894964177260502710313713807386782107525620743648638281728003194451759138246129128036178420745435086346159926760988121220193585980185118880420518813872597082747153694743697120330689182716278787044409377270960211943595684630083531501266402289692099192131814113593993934561767002220677904233544101603223142115656264891729402744154776508070609361857428043513583062147240245339457157969920064425166943824302145046279647736638351930404043065343080213231461588441195161812684927159129895039225442612675169708663583518412228941334458857429647787270085508566151740763922008166171380348551995558946481070905597562089908139683830012767162530292797286744540601914013960210173822400205461508848079108877971363796021560437184901228239947302460749911276272244397409676415389247127918340594399897562347822988595411163980394644788164985389501148575988024470490614249136793974696837725827190176715828162732894670799458369629697199949089656581385639824687015976631747766747181522083654078101663886361034052368725458152574139396111986178773520439079461221794301472046580104441610579202302764557464082638395108064346397625652807427505207394853891921144797390108294976909497554599627826433300932618073096898131280999595138910117244696035855168389628461279941927085380763885733215047478414531971307145086150706139473096602639498193072558926446722031245870354667436080677060782839782768218594665677558773696477079034545087541213306561518655765715060258353469252655104493764712281087129659154305752338240706424011525995168890541351667245607781433914233177657943989178278944833517078700835118982103630941689392737355814918059412553202279214243345014424473725205775858363510671420707317475303496976548474722406862145431986991530771404703226072835563622114682903255548177408757092456214967303337728391442379762477853863486227029704934636313187710442196691619700597225546346086596765874332404478232959311861934139058033501439494640413976757688201929247253387540294913512693906224226857461418349862514878517028050710353186394977037024160468986154032897129658485923088286245081252273767352040167169356506756999351193579606844560274165525882441078227378318604106298225788935493147553603542748187483784394930346506285370189970088839320777613100750660945830975900837453824192878729669071440376892626910002640783848994345165562501192370220936219603752423118555837118181223327599316830137860531747598896427426872504335573767388091749383498973347207946837012445517504391709611839730833505446124293815296565652210805436671982427750715678766919527907965956241581221966823063002734266785138227194849058494202271665857077888839542000797106741964056177413132245757429876495098753100059040115980040033716936382965066324540466517258301548774359903984565179983347923803181137600640294792151385616385536250619625049491191943260642963857922124204480180262462452175473974745843526261147878767243441511586315714514019826616032083035382642922298761581198082149207308624331618419728301900185938753502456225036547112816718697608590513436888008944832556591300910350506988646483008757035369700641910173390391546421715296508859188740532357100507122965383109329011862183159240031439056689421887191944885391781445374613190055002022535012016892806763334238793991905176849986025766566510142102618467900683529479168337924844479615741724961396347125401675698607196287616581260309215873642964805835686830849611733953826216448305147057425793030683903225189796316465492278625330890014721527581875718605245971692511733575455341532097134804047059997549920515111261774459259439877339469364367382686519257500409412967996510790362678092167596304710155154957399788340200812072097582452319794280736506127957137515294465699279575245842576746532481305591629947736664230847904472163655259668452987718493107895027185894299497377580225623808762013681200752407997236152372853720738500884266633883902873788452676133698057065984845193717771397859960383544002107462038566162879035024218398114490527150890397212454849982661574947261865021329827770459383603722813792534534844278065257751999969210059512886137069479267232253274043997557709264260584847741169405881790626407574916821226290575434571726469432135747101726610796193378256643252535513452910406447010250401985913378241282659625109660725946288595369348164486066564124387670908193819212742042684165051278860455980802440896564754322888219492588242830207258855655531135520204990744762850718981313169312269938079856123382724032037982893827442133092915805146811598802512953796719363721452193281970272797267489389654867409081827689979608566082213946525553958793924498288412609302975711043068079029284822125177677879455957323544721387389146451654308843133257345293566059197622507985336112866241905441193108401384338032129014166335785024926369802955226979565338543557919158014496269146274785852556535809250792935432784545770917306365255390432399911180621430938710570579485781979556433549465873816612264300167091396739419006640840616461256068463895400631328998011064418171045367647058714954061202973453297269139375694087282412017668593528611388606258893953185595743536249831031859930116880953465076352770047931077753822065535512966197374061347338816327170023630179570609997979636544974932475196206847879539654216605277369290594377123311923355984968327991494683710451911039252947755869498121418035570716582436210359717433837735900796621401404207141845180489583462840822750115799431436156795081754331640634245091057661335737954663699359778573213736338639221932529861563678319141856083425186215048173790897200272890522806992150408522977185173577593664529555000588408424471226350121422198580475078425921762176928593115985952554000847497804978640346017315341874510802708931267843328410766796841306359538210627834937464893096774906958998895011138960816170679622608615084670126084555158916079005487781322503887272423411385703748012949491086096335540339810815818307692370474827108630254998780501068035425810097680742600145105336647312876407824992865983706129865268321032479949969379580127321926714608988636150453357812389401951906192338703605697394261272689507730438803730883260984756462661592166525965790798900461265051118376964304399587906506539523220055827177031386086438383776848590926876117011302689620864719650266520047102001977858828634795392224485825294177869159394612337569672607143189735678797728468535863851511290023243799115442969529781640379638521232112482358562221077829012934885497356437732905605789563670851428398671325650363952236295375779398608669521838840550178209904246693705943419689903176213353319713804523629439647329081672729607377693532426537863587291546712813519064443604664432942637690223945688984021431942466762054715489384477510200211437443968490179643962116668043552829094118388092565900433448730749180510558168516058578719052923614015478510616786150145792197975226608893326308692215480821716032616553159995735748932600011830328864121315100317778415032314312641225057805373653920187550197756061763062812110826246066138001439388488034138953387287065165360566507701379052406644735667057429833283979014612894986133537860933835045306135238454207602979409768723040884386237500533665216779653321254913386126088750611430145518059148222020156122459081313385912740059897803238820393600072549877601202170343672905066596669035817619741759697229297794259539068976176978155198382659976287643257131731487153292450829263293598764886635627787667322232766495129108001408160541387735015278805745325062151497929303141655985464903954779356054676802175167440436103199716781305634852277475049365920282038401922154263079547402058824074947163641633060498021704380144356056033764820634580964158473557295055346317320401109586523808061392688409442044319156558283022428766594922175738639634513451637954763849885087009216631120767802513173309672452042471458112726582008555210753614985410272151665321585405221174071861334843240057137983269518906079787105278338419338121933164418862171972228516266053398278763744919282867666296258572383282857388277300967248366468240251067747350033787201188594428158006184798008631453365335490602157976258432086257323534495883458583824025105377357469732560110742408397839402916145202030956000021177363333500380237797365155298437506310872204668635212167959509342035830014900873699362872392982654522799159028936455198629543033933266645891276208588027703050025258609348709450841238976669312690829488696110117335522873102746041001501951117556034674696128912899342899541876589642474876665999109285453245356139670124219821816314459409241282444891271415041969810462841130817397932225841959522138795232514757203010695082442207844314229257280372636484867282709760304093130554549542052819332292430723018795537399088817655709953567733435010572161703114717556450453656037976137141403045360629934404852039647031681579236808628101295599582463542302405590564269265766494391530901593640686250418699890907685984535568669539780822104401855940758869347637426199953088098277802241173665351191441029506159218306289431810044438516687970617652540323275403757929281853985998370385655137709371715071303846199630269449073072164587704068761384499585870682202872905050442530788723754551662856498842636911344571739440686439826235350001442610449457278775090091989293501905238396491580746907767326344343036268347954850543201330001857423216301683741512264221268896502718871273171798620989135324073958024413671282096771654646029010528747746949338970495901077214325844579503942875334197508093328622547748737428642744740616581900865025401986362646014565052246128232916275268702463278960730918720561333739245900636245331190899316915053900362507255542986678544346273716680378756196174374510853909735629211487312352401969305592681565656050010983563974027235223459718447445237906229494988334431470492613886488704930233647087787585031704511929854099228068198511105003406696070224555088006805131030731341434414609374943110693284175412083403420246731365664057806596841824195498997225934197555468190798291244044533034207964303759301981279255538575548260335904967568719318172253155298017405879154815120251293485632643168115216397870940115925944312915044531699165788591746994256679844840994081061163403447506593354797746286559202646676341822181127884185942302612628051043003439438734599533625409691791806922756166553404932282405425072538529430407865995380277975621320057327167933859970333374038963033559220596916631727806256488321912488522074339846326979291457121520541651051529730188232154804504381302091481501690884595191437932136590435918096171269413912930610414932616464614226639799141377431744176147508989081673877530142843667346863247485514554337311152819496246210184884841468501146177791304748380465021335842224843324357107103182861381179285442937718246699970243917119686313306520491139325043389729788203485322711948666644845244238034162376967548536716506278976283145848313652954134111205727666066909145653132381900429763252133838421595647183951627209053226251979987825383474877223408670007158096587681366718562558358220295301465000346881779838031428615224017327844020701830894896134141861469391028585708103952380255823425409950119549747022009570390338096907638023667381572554183627063653897428892882509820576428758600721326433115328382801354559203942962854160865636787673357644118978759024078758921875009109987898633046499113854961646771747999499523387714528462363520050734066403124757676883217748909234186717330551634432826119357890714450952858385163066942374203019520012651345117086111774038334820771261400444785923880269063746965300316828858646699146460768257820121249497265468456829263090641965868506284359420125635216074886597547521194684879415286386014429636554161694889905513098666501159339768349794592353371335841498844861963238566698334159834192360516479081702540267937477474847092523473108669274256847587017777294133691553519996608927233191872903030352889417179791894299400319242262659465448739195682082114185824906269551681434438157535139289993720062484059052072988014210094088587016877878648846702521085438309773801165297840686811542211016197951007999838813407667936968442469720935438981014805652307116075006958147331009212496407709246141604839285675088010085209775073368533570724859759478016287497519675412986341004418799001688072574133457862146636338725774903765326946826494790218045035981433611945075476965039671761307663672163044693666616300669878110968756115223949837629687422576352923562297567951568584421931913121020561740884679497511788215481484201511195182136439394955624329862670019512088603701458666854113795538264652960402169224340061400795722678289738525247388231205562550250315060454604232025590523031256668221381010217996405869880615437489591167013087526694332233759330002553601851001702386755837984445707581861682141280248494744941933552400874341905076698997643592383307747744845397203115105254495385302811728441643323112202748327235572602309128849991120557638858194844172661213914629789414842656670450183190440692601691895554984787436026070699953532394386072074399557586550167789960411500027436043527621236872602347295567984291017431730010940025685403707004988651718444461946528060490995575336276729813201354640872279979661669287154200050032253783480413251588766073757880479408812557390716293971982181379430256075697124779164483598076493962778892987427265737748356512653064923695052484683217963782966514833170713624261890953744891755861343323695035949632956848167258920066113862394374131056554388796636642288417080060026673946904099143879729613293265070064009245032266024868321713040801085800340286529761644983824372517782361864087845051508392021319998976470908015478471235480901321425133943112816550800727053351540473393062523054330955386812448451553883613708895147314094858887133988216757380096697665349263320682498833428311096334275950325279067617564721537483511486348922777598056403114972073397641355143413525122404266724424803132233241057835061888476583927841046646079614198368775100373069689364657875883071608954561623353334956116905557839025774272865920165408144684413373270541746275731668759944497462701060207067162863966626485789494200401793991002619603203819086970801033861673036626368901283669263820086783704340702502508973309267341939310480661452150937921118513928523789716687709995396230585555553905278004889505544247337891334323069507078039006060576978176653216540352126099796430425753975065238306844475417152733481522806259744925356323481194839447403556616571039256123455429451374994963019327303674023213262345222049516567540974682691916681991142991877466524674443387394091291539171861010383212735775378755789225579168079397885765645838531908832768755448786368396781087217906784103504602099824976590939009052311431725410809432328951026322923394250037393666592862010119575164694498910977693409117833515977730508412996231432466570492110461364381743204242304026737782097764831330963291948471261326846056416160250532513106307864985494993757293391544220111318778578207671577490013835740227510812899288389653001178508404879628050770802710662575258086613574171747442398374894558501144150290297064026588078951085452149794597766107386953208092630893264953264144189377363678273998568578722695201574347043464901677049247790012295723565296774598348338392735179232244959258841982680885856535117989954204151458434205673599649017474717606604362373056749504776457025335315508350896678563434367830828439318824789946398722806472646174612231222718278897295608229567151470871731493461976615308647159736781478283913202121115812169456319725766701612207743747995668582232705736000863184438094226045173616942206713104600353669297264826278054697955441972493797807331243575731065214651899045182169023045722080708441503384116755668027138932017059863030348651572537212972675177093261056048603906385916233529879778518708265055100822340210317616426712112732673770464104077965512370683369596014745375494192946897316925200086245771526512785414471366616557838369728183687582172488620108825189549927406615900007238775268102906300986652697782303214337155143109694749567761162517171445910538002817287265124300737812117659858450806818609932955081557951397004506605544819136513366249468733781677202754300269903345132521388479355038756707506348744403769222213164011474045791567731010339447992561133708172314418615340724898019572935495441794301786451557481672011731907604947440866920617744323370364864487627354724361069599426564996545534180954735104884030416750568550529133204726351808725533655569812472498103402691625786660352642591039549334606446602839855076949888550518955114151028563997195176203167204615226363766426575890225422226079126529964441040992820338124178358959130904125019178551195089650205166065236569512799936702060717553327067125608787759470127861521359855053394218732751687525499400487517279261581179569997851207521393940711687033937077603531847064806633902004337188834632156902447996678357605318032020982352761433534420771435889331279550439202590912416504642939505708420521922948966884124714064496579141750838792721149118197649955837046132417818377838930770172976215306295926962955158792984810336935991248149718772578505404421081158999403373122594300227180349024502950093599271696438623148340948183390827571831198381779479060162138084483485367721311318893715749057030727117081822413395927960839823232394947885828927235977269854262907223123241236302204973568083150808768525089448594439298710876767658270976437986913559221134070280105286762867005707499635043756698690663886913098532465609606341964945689523957213110489746692925239037807024387828186280246887574872387674259886740690516786131725443637400864009241893235589770193249963899208574162755972745657968950090636121870186857875683880652762749646468293458075469827092293482200919635578066289776463973185334409320071867270337918752772568423771702210984219595242880788248554296053447725535247715297493416752040138972916231863951716363424857807001804029822823348800029589619914060788270131017591038526021247520426910858156257560543146308689012702307333557788549361018302611994647803961194826761224541470699942394461473503964797384996393758912389067930486318284174057019867894755260031773292084300230606593257111715909806606758977997621982939588383600132954203850321644078323891621618314101625323562620211717237707435240167913553055101972547139459604039476260013239543244799056289899171465001023138585913820163014329878386409474012960367158286859762713161191331073579669196051107268947278479613215702356577176621465738787658489258010922324033860110714166796356981532631402920741571270317863493814345367736473834862258242644445951506099146950026635195687411835085850721329075616595575472742542564369865220686690451200643158724930965860915253487623194837695670244846114858185029497459718627742424921298447816213717878800692977252056729634428237516519573362139148007658751966867854099008251862175124458433559174022190384165910568870256018468972459163867054524232292115433130057841417818677216919723521897979774284749087944582536617587672568047434159611804714381192856072304999943945275571577857869394904993037748310301943610185079385703921745768178176865189935680102902957480766248294343216807133903584500961349596480274005449026816098278128799401837968644727007224352339685070485532244233988317960314405634968683737893268202450183996597441253328718355380618076307020801333675539894538937240760389248463742441196962493769203899371992665699086418188869636563373974866529929600892142607165796679818866705668449082595663953997052625380097412826555059522157296583867291038406568661951999709283141568650846190739710358543306077091746245651884771683028369347184684960177062651162131367537329686883099749506941532688971248904490697873982174778799624828526166728203292741202644952596324575342516770632580471758504217055494249885018147041498238975073266098972829736841042363552946295405314619274149030247231756718778505005077231245232677228668441564181863890968228229533397545979814566837589029223136079780346960986135235829148760555347066800175255090704965261412065035326627899735063952340588669257730689715133037550638412717460926061028559964707515149921837322764008422389434091530757426649532883475945748633049472739643413021937403986863871440185346305991052947150221573683877079876793532804740307344694268247494098392755322108173905302413380889408698173976305964271944489497541908575972659213225711010642800637468963629899434086397784426148242295077342372864394850250573075640109599956170651705860801316354035834331856438506023784047940887530384836300203145239379434888807963988480433226620239193289078152456852309366230958877580201765788974637217996091544008954143357712913605862654450616631992584566799339134699581883746457347120936929067245764942980972532526300927774272416819702257819512545938447584058966848775464622226103009260029421333084107973643038431242755203062590699143731164621484696984016135619460395900862648597580275677067219074129910771482422729638627016253456871140146017907373212769159498058674966118918361220503456939347009300292906033635486809946875133369911865500673147875315778022563273888878418220263761652218511904173669593668276541868064127370231170103497924758896105197629814680827249654488709044054099025795426693013290858573881977371600443658080133857789046304852074990946758455495303278091291637079694652396938988143914962444466827908092567038317755951100708856680892729052059669318367277267696597500161353452544796470747984467034289148896776137347955836427388267491692528536415181008468570232122960344672402984341147623343198576147876780922928769359155442909095682532387676319346915168946553323024586095986883436347502632859049057068987289170154068538840385551452560159212344785971940634678026608091812788328804476195138967874473064580318323129394562085980813588178269311569898580710362633957902599302312356991301124224654380629568716554933827601750333433250145130576785607720239305005765628449467964038683304333379715315590152751250453237104321709774949240178968055777719494229463381168457408063571093354835140526658163721407345171427184725307846069801454966045528836569939317838596566088503294659371423771786532992116003003851784899186218568735089294780113701226186504002568575730470377835127814538816436029164581152280740369962778943389517290109641255173471560334166668029797386123102159190892744765407380491160698275950730247215490376698302939499937932154216100475940689556566657894558306653334371734311843852507434825518456989059097446751709489098130655413749870348459524936970092132546484916056104132233849068109420468828761307142640828138471842280475823886044088896547603059111531152484075373883321809635799330034666157490959267793847815989107783227880670989476629802168724532349344319969605520605052272097529003100623804539770271379511802964582855195401120252677326995132038067104853238277362023605355415590969130003311648720073948223494934748674540418570291557908567486588123608960262306624232004038016567788729288219627166992140004931700696339938637988153141624141495560767950584008792321789283947417419470783166030964288892581569137050752892938223717319994993998256284293194985379418274215664468998368346420879778794013128523767630104028070677198255985909072790252672459301003324959980452021452733291642032709195883780650078467931027659939511111017556821238293056827655071539722086451223501472432427943549014735911425378061273793438102210355863710727201460206882737081841435458723395820298753248769359853815815923560359827041660059619409161134420236432916728806521299024998593145342841568448409801667470800227790300453602185314303062405499429304173689762021162675460487026995271788049935232946604518702328347421385469788766876220656857754599022676486227601829789242994260220012659293366815116096430874431156990691750029502624350174018316903091106994755031829735916377906764784922087838160419654521033025352500180574136619591487353457917666637154847234370690597514211206117602355173705054745947090392755770071306910189218299155066165769753507572307922881974522389068067112390847272729401465282814043060726304348062713418498434428954191536255198355125597138992067725178930437550332616496052330768058620191626374985342294355155058292438221097521015735427514971826096048258069628984319030524433530174106501996235245896535726966836482275176972605365434013917450257118763184291186825617057104336938663019650319608873454210615765028156146277096962531627333165007532570920048075536823594244879281572266900061635812389812464082359105532906644494028987734012555739011915360181694913636003783875321470248901729040787173873053180058359359504534584392666679457160991850809799739278376905044419342408291746619816314628824532466161733573946055179533406909418468483341669882654488644361926808313651567063229930256785330175569019336362398298613120395978963386629404598853330360707949412641795336563798341720227848773084614766313532277649160977184691928118713617640731252272873013257561646671037423718399985064387063718551119045532603068866002191907780450399838204443704151325142132861609912109703107402991282348763433780435166527273322374523167042633036901232615423533729244828864798072122424700012513935462869029699164373875725940851636356844328636049363843934113442415368139119310704091261807234622675795390143953822354886574518600148874899892448958835462693916576639829698651570110846480754416205310471279766788536315283363408067773883984028726964856509967619324001584031984619971860999057568727876466303011239777644556041400296070468907931480731772406444227026214800225440941034374718540326202753199131627220847162027462563501735069923054228484890752085025307882544003144771293138960643378624107525717009292855235818777913214508775286859608254375527559816211046341434202780462575867236192240429986617024374177418409444195822800432459893517621185790216316859668076235342130249364231709514530489400983331063826069796190110816885675047704470259728267436153263109025493835524558545435447843353855587280626503754119335537777361758079087679326083072448144661122627187628839007039169495648639771078872942925393325120032903974844656855358886127225152161210969131327741553208284703420856231437048424319390689381574570089792520197073080505308713861059985007839770342679889215815365092549652200927706219729787571089789790702127575340168631904646885308225147433826365170742744463693622547987758324038759059313574674527805508591214638080616977019309899372390833795534518897322046736973032356481116361565795801697545173128137991749663136270901345788966586656547951672745511667573145593985756032711777532636344438402631186008425951133335123034430365741086679927191921184093259850623367936974258352768900866068045502221307277774880676848495490889807006871722086516344759735145742581324566439172384780825418201875296481330976104886818196957382270849816071088946591066478715611426252633859719689417861581462615913572879775597385943646667675872897768210317924198523922285757648487490810509862738471451297332380891368479951013102932289930240115901730651378683976192735332254155011273202076054728796167217336083996402761182039003159225087863997056304110382902807051986698775996807111932995067509100821357983489922000773984034493023390993066450657348664920942779916822486332754157327834880537030426196265908125446703246809338589293230072174518825376107416269593085662436545209310503502039468358890649314953608786562450584926107452594718636055930285960311350944261302390256129686457608235063076456632203634713589261645826393596217966756758139185202654542158377768456014360820698232828133614904272587097707714574985080548519724334582853523312508321759005472092235568006712013233048822942210231642112673786817072023794296826546272376983480252001792754816548852515829187804619802701792359890718574719384078125244679048091120668086103610754563520694852913101194171577140702878116860997552740160329452426657036737820781386342770695213706038559481701623695698894710093956841083108260290326497989563253143356324300217997398387041475293279882165660090752544112719755510479735761690769171670732952492773272530156763632563915855660273173207001733963429552164109609922627149689812379436883553967496188387856697696182393319554685471708638143089354964756479432817015842155759016739224586364003386742660292060916763466066051340969053862858956527318093223973224465672835230610174842631570903598330234627875873452544509414383324649505533548958132408293938206295780354372972977902018439774287804767880700421055769555319525264645629355144250307362237459062536032384233452141563623118142866180767057069700449903586977852258620818543171580598501964807047451442238933201528930439732741421750826932192542726488586169329164100977559571890596099999001620054273917315824008893768925027887578038112002538605682521686742397567667231715184392093251096038687410729079687380959337334474321856320465952851913071543913685225871279971329096454215027011248170395712322130807904558607565352979445728487480311640454588066790448868761400057537790101394138265407195579076994385988616261447677320121685122067224767475254546394367692040954258787227927011127471837016365591340471370339749019840199180007421769467791497460619032138197520301772572246677967557165194070646301020843727100419644739615286161245225658541206643775537253963117320503864217356746016836044096758303969174081460022467781106658224665327312435066959479395217069344497247891222158211592994252464101638767374635556691037801726394691343879270371934216391234443844964866720035503760260354986132818737102922826306236574202752727653365843165266894284278958004598775779982488898954471037032447819294630661264012657753911914529620165752498848075358030315338252039361828986696490454405759082599005883837772573665131295827421900091092733742686075530884361776690691888184327386470152137078002069697052162048506300499582264956632916278496368518805658296390295673900863567401247588262337128763909403442514047321494917195363331035275493319066179138345423730087520084614478520436572203702909314007817522540441233078792337099129832223269938689476471743272611128749443272568961793805195876378167512683311341825244781110463328761490990403090556793199548396935090134430712248691942188438402571319535002314829283129668728820084553881488606053543903990950672778998160416940766225222982896596876468086360812570164429438979336029519452579961283408494613692918307686754385276725237190351440322329364040083291697585572577311304758511925469099245282120703079349454177275218916711699619151948710376569561800813804702896661130683030009908734643469134212020269665221797837191813493057411167882028324479838679535579399959721410665964030228715708597739325915071354723175758483000508519990515597444804967616818808757113108415654044126252131775233092537166474984796559242925410126640756503987846472759372844026832109059168016839951174145192678481930440539496443080771219693708373087019548754878682018146064006746634693888206918031081526656947463066742334570809669371541591846811240989766548874349123038020360805792302874276851094496438987723611738082213961985757553644713262290003471440146254519510122942461915553224258946909622882830087076675582359317741102671353776066468250541298559263647907536887853778439372669428134474572306523122885093770134622940840562280691010218183503585974914293903574543612009751559420569972329922675275706736005340288967778567637092046159824312502648442067002664585166922836279316344558611732089725561223324640018580454664325320117986618648916457231545301399916715369819189488913516954136935471123066404451200689602014069230676047753257583298767989589659153876823288236243896509901742688987853050676493524971037131973212805109763455282005474974258932610120479935399901573027020644100966284286619397125151954575542357266942039641421012857655461985343682688895020620115792771739853021627984208710596180987806815258222673077652162639449156912157486465176390098821609384976001215352935682189606665453061776396450208024585131903620687684270158684260326580956416923246390168802224607089638254598494295798559834334980732427815063914110056763878017077614062413325307284682217597955144131685821035624384195407665750248190402001017818146807655886071471652117214206931145994160744164818045513186383041256615718479346817275325965079814327456814220782731750009668320320414382669803988317262674406166829993322677650184356460303482727839878788598436911464724958121435756339582565643633593066664846095065749914123128722706997542357177505944173592719690200260240045356816969275624988955718123893347145338005548311767710823480983430728334289563379034790934824895428362152071983720549094592051236474887562855069677237107189013628220746428559560810968367249215158409136039282919073000770300524908804539295073603584166817240048474525976138901062888091088223963029036974946987168069147449176225259551054642147219085278710285915383057463665915380457508032418314731324452715249377997621377346666955490668666288427717164719002287241304875783133175055850618444322110776482455621369527248597850873157464032332368850112312227685045109623236329629285306045048731623530372433415390693220517446166140290454802419958518110536002047209406284306496312787701735735703912296364697030526480941951730836708478823213268071931774531764857423927765887265322151723076693362575340977518369889557317021367914073072652476177631808805379053118618207410173978299485933586761576391024942052689110519574803026773281600006115164324035145604305419508082177689601341202015131773240067880346989562145418653331141712412695158926000343521188741922636741179283841669882446681642779613282772258467140684861853751042624607489836324414197519918143619595620703587700927648053933222672534689489236089040979044104805907569483492900800036858891535006748944006415107884459178209156367738957846238640103771953438784516028959796254611538016447055247577912788435967955839586671996571443430841308612773087899521373175876796174100450292582030512771298761105721243691072882121479419092177252416340337369638325247145036721627848077626850326986023372384946694152735071005684153258213436391563914162465974284878439434175202820810227016725754885657459960409570601041844802907743572979070974148050054054545111063904826215354401666100806026410329785980494165284273498439907909091837693642733416004871392935561044711363692695537903645134577875838128384752104682738334016337364587690175426957224818089561392539807036613411257940372969821412403344835209295067986902353040285145802812650729954854959448860018203200675688193423520741413700339050553936149665098769796141755854972957983930023930677294261451317220962601628714673632309733411631440973209065744623562679209683119219336686061966547784420114223256430468653896412594416763715149222885131061300977287559331685422561153224063744473049602397064567381903859223184927226146460761157903315440571501030006775402921149353472190891389306449584597636818880005096018675573452694337660768517906872115678285848896655766791552219961539160904879802405176570768098836876192994429477798322936692688145698271536442793292238419737908489804131484045957730265775866983343871135874684381985874258191286440481709236048851690671221998544612182547318074675323098904159637927100070528044188604984518319355111904374531325292817130602774317886287202481102341583607794384122961144193956602410450872167937249755386233954344938881569155504254935586510078057637090374731725081484001822710236365758636586506252568400297643901347177217385956684880638416714805899678724669248738100255943610128615156852360459492094194117714621341131246309577529183893792056916203037982773008284617212162995433056440013578247772049525127731817273338630239877043698605516462051129354835831634634610907668234190961460009838207358199225854124859554842787522355700093718655044130438419677590351967457186638098677743681668687641591572631975348694006876528013973566407703216093010973784517546083060703986219899912742485357391184299762513897982194933631765910630589879492185884508653327832101407167843900490848405814640641073637370380635696414753051928097772405612280876872796213407524724982637027592458090129284016925188806697660719016174140092659403510737479470928146578621581835001377902636370990615205419168927902096352246384792194066274558001753933437119527642919305844076869290263140400837458031242726926288656311495232621028586609932178107217873640259990653234705828408669611182272190724456266732237787686004910057001224303486872531328865619022769446455408938676621437405855926516014793055401773215937619523614995343049626489001302583689959756966552279123962205205479077337283540798152366469046814956765418242030541905943155531900654611530967774266436643198569828473039396688441196327528391729472035552441272574202194216898896542155327524035562759441099193057880964282723148850556005264078389031213657304816692328026825040720912659262119106051704262607089791005376882397315760162860765496095637119666170455603165371208070397598247763598162541171227302013507030608957864914524258637555837142031170795460733432000735404527310607094165082768358622475447948046919044904387194638378015551481913224749492007075253724614182914333300755491065941539501642154038731282580919569942271017580390771106848457291583644431960635568788588570080127547681959359284173771305268070350198535209671252699147317806442600786423212491460970852876903929357891070983403201417344754831814387858524845101351190199821212004176764965911168019298316551151504480851134870380375474063157012808616260451088567074693446655737954278974472898661423074787771415645430112477843870168822912284285796774357604944863229386400100614025202730849463318236733551626396512061386483867180362123310363929991930448764373047607654068521372492420410133110982923982455455969118244456920477300641059709523264987118228995808366431236946331616973308813937844736605681881649639171898128053371811115956418069777127525323988268193654323551652199648224669362977634243320494430768627089888649859355370009963847715412818073905961711050705461620627204657450634176107774020626282133352616769954754975689148133939698554009541153542951347947434313164810007773006454127957215997553240423823828984954904279252183747312010863984270989296686222007679113081296387392400988414052871386766175541967490619114142221323861616456014956551037557836056168968068852960339902044703739364963607586971007978381379173639461076077870456359865530324823296644830914955298633351147333189876698647194892176123711690680511886117883686634974111013264105471725592553909476305801313308718141529570141382172529643151927739215579124214537291232510021140714509829860060819700524908046398274891526719412363670823396787781417154835633219314912025359012370145852721059400966494664284354024371605169809741738144342581823562363778894951218812881588615230270409838333936234916336200887036400355692376945990461156368838171622957086169847010169626767800605515387599888200392426017953398694680993787146647552761557242689666195615274225278392994802335410356506969131465863883652103673349533070173476620894051088430176928238976585854784397049271654202151310004821992348278586833684574595748746727917117191954573756286053196137140568925854079893923249145981780684766398261488064347478161091495390823240593316519202238263070454464622193321032803582470519108768892494981584279009624603304626942727256888307305136487844461593216640267035637931892649152241791886491097706020270107409758749792145504300254384116457972870401391837834071168810934450614945123098081743225267703102075752387063582262489736303347680915921401201446795547645241909230390541856829923369978475805808772826204025508622091123672198076156392516286414809228490417082793305119920903534065304997905010042115773337266429390671951907532723944558231613143555625118037956427712343264965602363437877882967289258411463976744409239806108920114592203296530604293082253051535467184392041233201943984335578827282840871708773188088312060342478554066613717146002106475154910011521838856820488222993287612812446465030032486252992305911811961994474464835012363588657617550000673342937518657127633751913479080889383623907947698602097139521978478952135946561246413930720011378420106585766633781102583848793365980088459615947831794590274897219186446072028576175908408267598067802544574493119889467677951453507035794860145110640810109643297407662534399130442800594574367005370157534626906625715529257861682403443793796365904134695584899263414800348092237813600079922162623772864079042353223071590405124278178387509675756429967047801491256884770314100226263056670286573274304973131105519099405734610938130356567853673106338431066188658773352927801064795003520032662489522819683304202598984629112370412165841286230732284800740852956871406616270982982247918629965591819148966906273432786043638221514177572852766820387899922418359231899218896444611792921017505673619031332798323122518401674533052868824979585424205304409054905125222773587995175410074197312827160292864410141865930516150992690200102779885175981858673131386233459944991027890113667823449487332987378857842288187930909741549583661210710468426216099317259517368521965231533654157794022378440716031404879115262481144799834218006545167165174791498782811427835159851599285843125397717956015655275591583257517718822117451872743489358895347186016737984975444954166141484595427728882266129667809754334732928387821234745207249393318070095126943213173713427164556279200515866667512426009602616442136769233222339308085109512437444234269570252961061745484535571258308435349373895714998107996815535515487111380017793875978668026993978911625916788058888098620604378176727567804401188898725751731525458110380662273599829463339698369136483822758032623395984823698667047265900417999157028538891213584517495562768047082982613321515150000020552007193012766569995868327498762985090642059611331027243059061574692488726233214531090090827623698298010732377081710226495618665375238780847101680215829668782352362217095535260985513760176122047047780448876688027227997474612657153884733308945644020701440705916479711351041847920661202652066098151354172689114962953269101599354688422225648896941106492522420251016271981859914910419622722722576264503962240528891988357877770605843615079618235623850208345040412160945938965245902359020636322549556840942868835514444456475515535205471022729102563831342228395086296091736983330458385966778293774918950579735665868811526106074784370528405439212477865990308859952257181247393984945503254743235505255589984610371787865783479801336440585923855768352319864371776637407427948532447064514407502035432615451658677582273391278327453633303381802516904283286374086207929911635124949220588996696067824806820177426636300075703758138648931543257168978124315361737894111975062479263976140158087221604878896150297428389229899112557368426540375673304063193588812030699348339645647127541439257571920876803286030997253811062572342647101923998903807656024904485706977778792156538830280929907296762837478183575534261644467647106418688735828102432196743807245289750493665160718658647390696314652636190957196962320026767639067389766852342948779903005488092729681562316952627107282182045040832585059418573372777492603867310578419958237539359025614098214711901305309468539820787414545662334379450218123136145927008453833304576006141939486561299104576141243879541149582710351217684032724996111591991596728052779896007615693794332074447645345638488430669144960895417575418530383777569765764207080348537808864585541224096051915794039529669183158021810229752559404211141735596574176695133532362723314741538056885762653309075309592484211863690699091201023169337756952151664892170070281140971782392937921777716435407792917829056122941840054692225597533177434520200514101080278614920513483696021218829409443673043463447637064549873673689558641336816710187008272934063443038146163580625968857207924958963798672558764709222488316906759389623945626995911941958651558424846142937714914747172622642824842163926265496037386136432605765247511092752875506042906376559357567264860141164358600156973055776796297680203970329182408478322388947201854587474987163740683586563912323691351347028898455666162997214886200428166969411637908188172898282768426254630965853083536093353107419414067073341029428021094231053938339353719896593505951952684908740919239972969600064763225434793165299868857270927133945909233794206301478144308657421437286013559909725335510595909616483300630399769021592093779870921763109683670467409513831695120901136059863884786701282329423493509422153723135079679650316410414850150328558101423123880150556447537150680819818078178585592732634982486375867319525505916633552220774566143094853609093643432307504098975671288168347343218804315679424194814395324288490086216179386513918803396478359364154232134512524082354482521801272518661516751887769397538427672126639120980193367297222980762377685232029919106769400081949185862900199960667450151972239928275663199033751509980114125845350109017610034526137117633935519704083913646420490660604259604424856917991145462010362007095487638008288540809379644983458027385823540264646195252460644454656931328353625005231187428798020044660716768331280160196116872920288118820809332936852908464794070066606041298671548259652957034437631751449633325593005659801479057481244444335936058962033755155803676482942925953424663908463923098104747197714865724685669192478989808393283415036659195464742060337887915141813949108578587404222706942712462389515578943548204141048555520870706790547146160636520278198429124359066295662336251662092785241649392805892037984900326154671292129308887914703835236952052134640767024534321998042309174751269349215177649834131368073671428013949542961797722153984957381126926680398554425492870998373766911341600012098933886565364491767834909266822905772744897016927506671264946156773908604812085645804912813202019535348742665062033864489790118775638223982612392908751757970901380102648050920549891872873451162846403510463471917659268992597668900722512046695630027591075322112533476404981268700658749637004374776986171348207201769478650434998629096403309408794616737539707234482652996360472531725326803913949765210492108384303267095688889805605203880413482928710687871680759891614857989368253508087933861499437314488082934965833548554855577417870134576223536647080774265044223684281590150244297557183848228753887156316581163920689635116878611163871853424473513556128924686397288120204570110554156335050747277310831529419679881366404879410601077585406809768038427216409329685985830555706470208832691006004332214073284680654210265174513992882441958670066064176377079829232854664556741417008317990481584477763602326783819633956588237568845412389409976186253929681661231441816740778713197567593342203779040412416088616531404186607116462743886089868856030228049874899089534423894954077871792031277991993377567667900663815196664750451941527237322741742527867012784969207402579200560856511071628484576940194753801084968445343650486532064113729262200643194522225995015557345871333878918171698114578874586171980074408072129058680736664233591356626863363983576556110013375116509306467971960382151034533166733987386655772818700472720181366106905151125629305558753773348254207236931189727283170329180155564772829086976205172790284766901934399078421526241960590350824551898709915621206554088879570546435335376175937073803044502626231708033199471535675720172146080780165533412524188305211248973913546155109722909611746375122528019488561952245305457790255704538289245936351604241794265046161864504161877623259036151493885144918235247018387845365338777268579636801266743354940924072863822728092431769520874500220977323526533585077881471304764264784217025131245045824693998900718631103025053000293327280325798553015434206729514734954486954613812802447528736886791003903842045443795820191432907858597408681629742759727304627987658179891704010938596963078183240676950203330645639276758110537796261289027359722406692723212458924268526981970583602283384486501441748544397602730429363875146023345584889267532516222580347666763633319660564932010344174114995076533029383776102108753239903984132579105429312664894024018478464682343930768942681965436227564287084404779332250434645826784578317804501164600618126832594876125931450403748505652630752805996201754842743649889383361322859624294532906307194723895479209859096782720257426969162501171322486785475447245922199919237046121612644121139284504092921855456266969319983835609184476959938947939990943874444810659238358152812347461713146202732127299239751834953483963228726340759067653438006407906516934542158866103872185665650656604232081206128962829106943702690219716835133038889317017803250394080789471126422724313217022764411070652172932231839020230948344355536062653880288710082216638892704548441234605079871624592096703621600573156923851675315296601877880335281560087559214746703356072530924089785166543179768316443275757342905265842763131423643237993060314705632403016247645210718956311575169312444557547924150978982228617565619570413876044283557587799834581746986916713921388355656334721147301811991812409585684601438763542475264820979321747081638201737787914918296899563685577102751380927929143526793893048276702039814096849838034528788259259948418729557030473422821171454658241501415725134329049158562062041195838147271827341714199132047348849508798823976393052303277599355262267677960312423975414225351816993160812047737942373370270376744955674407647387877565936199291170901752305314113040071336425749298487679873594472365725335220017586756678731280590591980018099215213698650924329484589961557672282819481314154691709871516231501702789138615384605030651214209215817184136899097304796439031857810517405469518827082024089993919433599340637516367704279184956066689890915025403075926623033178570136371763194220454608182258512147530255698610328101881660939478661922851087701342767206060718467000000707433130567117784311887105149978516562734473146322676816961050321322413729419567639111139870075721717996170129587726494982960420053547567291945907127201551445187644730388846695172359598943841547815237916229857178645603138110488291985488407997483806723733151241664448912558365831432011221525647287660480701854777179253662756883404594759032673742127963388381648187290443019021884649044111161936552848717509614607547918584154104709421725216796776047382660020741972151549662845327347763974693950498992845112693770004833465177743664814779775798224236058889387614878668195473114100735747999599722547284036473906368071930173164501010879506598295299112676508442595404869735429174016866079036736127791399414421294042996059936357695996070618085294927812665913909272013849940921149033860365723128342319920863774822268336908577823286240742718014540329328138592522077755965748656416269104284346606763061214243139385302348905076148184337690868601711397094018458019941070297325448824927345454716148310962011567343823643014187362511795608389480828602268383223611071047761041939957036914749018494975986954224752842179534016870219879054252337962588140311133388293231079534592227950074425821325917652906075481464000704596619674210030285070028912464988241338849055079760864936506391992806028237054261270994951390475663709057746153972099386677432955949101028850955042456221054032543169535672304121007725650392533496120772096782350590093842037909104991176028063318084917240226571029240219980918918234204286533818445253540400717739983788064642950656050547210991999893489424601496986340565475465305374168349097916692016166149902382986156988671934233881564833164999100399682970156201520070434770057483426558156179317663675080299892278323249578669482689022984041238559538445315226979931663260144009412896888291497681473509014884781975421111249489948945113610915412663892630564431862838173734638892130112147379915593425936674845761449444848053390053743197933122116677899976515456459385675351223344189742908856424883683722509635009734436996560208517428481608562437895077626916995974235516318933453866754580767449833034982769437511775464923985425353611930170427333936860825564128516450456208155423079622094882208644784052612720610026924352266722539914274223646581046347471371057659670755868687676211943981922379344608112170681053605844954670672640002005892567717372585343757032120935449193365802388413851773792647783535192121728317856267271730149522356676263636881245975275321491846060581534229967271755162640658243408538659414008199101709051399387799776815633157382086002193173170850446010756297458735023718809404142415080104976263755706982511159147425784835212727629718445451939508879546871266898596730954210440865680869812051546927531231884748195441571027333454011253908831105650393936154148772257479347703572069858244314622378622743994320793547324724551857208397039735896509543385774652751059903324680396576764452588171470194754209147698461375525174079446859662099915787951617376376442220117529978200712097778300641887504761179851912868814969441514573068320382748801540217107263449995890932582127697523781100171797763757547271129321684011754146629199168585453575873803663963887196530736589802123800759026167535574463408659082834401324585813034474423116701956319666860560794555748008200394190785774837273349135974394164329562675167158778919491852117380650904069985794607798749365060362375727933839887248377626911521648219287629005353650289061999386523890984148215403000296761582142014553870054032341238362898783815299247967631917931817972974612264352218575902132348384589836378517953921678454837417339856387471402416326012525022793377336331364980073644763227480898988490698811420190620182893684040342435328586984797820853097316494429005922976458026158859068481292273506507102320654312989136022065005674165356749034773514306126225920990000118547108302749963834981071729052145116803091118193033658180348203600437576384633781242010899469710423886015388766656398326680079893901843987508964416162275701497889882229268355355563943777483331233656370247635177873055976503837569402568571425679139529282581038789746681711640947190995760259668394768366225674320325717331108687180690633784430690157853734696926020184648929422454116300199368164474268314208550046555874729330478682622109016684005660981500797088021210749696172792210173159505658695723421654354901326719326158330082304666187076338863756545698856942017413040733413600301113987467097128141915621156924704399011451650433082908772851912561781493082063473131398121282117273867400295491164842409076626097792684313850416146569687142711872875334155145041215853083810428087363267126981092308439183561774200547577989412632303646496606903688941237566042391321219843478088623634774507932112597082366456760536143759244808857134110821343248170587757076065460277308998254380568125614242144745244955645299561281866324900296137391168827705481146466023675237967094753034562481782835521529406752137240743918553567898080441647719759939294806901445831349967288173539911266828462022308464487295756706281060358056695356041903904941100036543494344477075971929331081809127084456602745103574033857828852050958302650057466971761062868849256741730126071836781212267454105017373370863292166839552683268443709913235563996228185564157098870727866104470567719229572411377712067342264753418449890392186268936634839857005479544045002838063873204137688871600483076309216439406740379848484552846363557917911536329513327356419821436990053608467963197014403672197735018107457030724085670760646052713049008157533519640494740728122082254076630207952448620559871732346375314714510133302002428923195048059569152470250985961744896269303234923077671345079340868572466349435031965637795589561030158095922998230376522533464834604080621960923339569326510184631425183440276796748421853145722581205750116290806039098002407044439908658837403872354550210831868305389783813951026038346130167320666533915439939442966434002887970953337445236212635727972529456326290029511303979232311894713533359167073714724881512622814009961102901063649732433572745870662621552296698427621492636433509750539519757828717355066066400445858344484978524554588354461287514061471606835067980729270460917054150988363798381146335739201328474508636376522341532946283177480374179157870099317317307327635595973373179249582460406486741725653228055078432852206307669037524952565890217889921501435038281347257298081204423594117699458085033206177670298829904475134406380109376878639166931224634648503910128923407958089901735112267682958174696669034709251899908306314248585151620663233726706389743496980388097001548563681525883307425317908114539125820975086694643541026478900124049097876882056501699904022955848030171726558589699330405637577260028718936067741743533265678707235956814946481691827059663292471472533857768368574864696225571867299987206206631572876737965079669126571599843181267977269769780124060887486459559342229939249571542487883300792019876103234045324682067485105245553300347486069743109305522748652302852872939338209520284467678050693307631851815499760550133038639834443502748024231468547750463836095719608097269257066602254082873271323447674493497939571429703372375825640375731262013649333729501384005012188424264008238098035138774148272379415835828659833560448428548305993188856984538329283454557614113553824165562275617253173823473031082277652226883635989121415925378811801747151785586449307222678626514833870931993067501822556932667827579605278429705461930540469751142746734573736883490918849968077299513870789216224507505779925238347439095365244804190228895113787349102604095376000084406382689240415338482478193360279692609931499853332333352822854350480329063689262291740211878276444751470493073546200524900592887227876172858829837691722023268591856371930546523002193378138498694470123401779828037988720580321897388027209536484699141396829641666620867971137036737041629350082200025049408273128698118294302074233795935543953451574754374670020000491686030714931777049507320711381680652931664215136433917372371355147279746073695404460391673031669886537936180535564471442573086571881052907888011405914933980154705083573567251842512963607437598734974522166513786475574416484902917292526615135324900539641108579550282521369566425680226183827486225414352098588000354331231735502209517252235801667921485492845071552940159805791454887146137710813098201003553071356129994762889635478184063814852492111100893863813080143401983932625536352176169095395677462449942686293937012030556782747077120355116724500381258759168264296203866876460984458601666602375509915131278611975981151900600630037705901775764268505149704675792395862279162243982059276900411264470611805060386093168857043274174503427209935171212596319409615477237204147426434789509152854742475981995837367148379472705001384018142517951049365035051930705293737825992461168154512910248728795190100677885519628080593653483708328996299474223883973444527964802869316219208193807955553109149260708043077974682148793158921599008246339728565530558538775904752789793140310900062869213898245140413600041263697756625964615639149712760890224267246408028722328050619912549015930406021458454468954027665355140968440980936994032663745759800068647503914225438664260621914506149866852546311419234449364144342048977283340618105413636660470608190172421840340392662334777433493821902541458042414623632471678333733128159674385752388861897972497716504129208491437168651948691445914464620823435674040044657142010378469445117262336907862385126179459099427893707617373424827935297531505944456918805980175209792514668825529565224034241218907065666959655134065310984393261880296439508505404300273923151089281423198042917273082522014723211028992071054550870514718277515046930908886456845473306070197493400107788001495446198517901975047295135531373269975256571538110166040374088670256566662407385734400104143092783885670446555225863300319471422240059431958984520293085370322476471417478659196663289742940819865463681996237264715650176471709021622463493245424018250818345585910441813223777970608784232026885497122361169263874757348835424545593073079840346171571301274582964848530406527311195535596947859782826398559109662809664639388171130559516679096805258531616357036001927586199212082173809325407096392567235688804666515439638643763725780812498526595214106998651166117349228160428003260269047742295447713669414801913545618204918776109198347435831229201319717501430314964919840691735763053544729652467733905744987587142163006055502511506588312458786279678170097855024401033262816819447720120515346699828872551777633740204676293169275320693116667917881478295100711917231994782056112531125237351251560629924299497051591670828162985840613914658268202956275521576567651906756254473427492606880616237085269495151190124824465877219110427127643917930407518363164275443564786116062931718236014843493342087184019350762426582029571263523124977281377157405155846294816793522805739994188684772729730928977187418311928324319307140592251105006733040668420162630391454100513855076974347873902914195046575122728733570481175165162828105245414559965737682286854239669055308166523381870950436395189391564418049218380408972354930092783184920840656413015476611937110758593879892108248518130190128429909540480399793417551167392398901698791305391132124978032521070567068651373541075311700182257097629263003467469076749686920630617315286165670988918790584915603628449854255655308831567789172255047546545723401568923382717765555776662259669702730728206541126890645911297160709231162726584192161216016833179254831195208886290611378874553107550133441127115914779048217987240555078299071637190143012387065509392356748333324882189594280282574862474205638949331442974162423552987999274756641992663904043623264439575499548849358291165531724157625230980819796007349825839756196468931564257699287280426349774171476648757718184766932458183720222045643213349242925862606780171823104351715377599628890087107273459611582231389732285744592046770487869378591920439061057070405235831831721139732283764298074250080741806519733010609010482225636759298076898036105570182002533633052449648881475779838429874560646251323027931400857910793063408188889491435566783601629047296438240860463950409890278884134497073748358865293395476200358576924452843022817202102878683136424697585407262324509005636419262861385832824654692950240469966281300160805468663452852782807845674073015494132515941441929345033244784839439399609100491483579853287406833024022324163353195775075248524174582222351017769137351684128506621124757531055938309128008019488206583945340393315033846186932252382769078165485414025196848735219507003833946977741363931991094137308770417018201973786116238216858285781325068988815484935646245128302162932673595004025783846133470378143429073502359236295526449391682408233714276296855749157025475903440754461708159912569044741315798675759219663789020011281321263937906199377997043132310214761000793992043261603201404575248500012586977914434671783053173719593796626649217258700863027945613848669905354128084927198430666780362295207085978306593020937474201197635823569587441442207113508431855467173780332117170258921244453436375880227747886549395910018246813978515397023615918515731309711773848410752333808338074003349849015332517986380623679618345088138532437151503556657670944601847029521063277646261097209474296870805916317731294705444201378963563452859061318959460490651439593272573683836355992410349444659081842258238968641389841540283701697580183924573943059032560476331196010759748062195126546901126571496863387140531607857230237137717911831849145770694776954527931725857865950131060292979057445380377494390037799987974483288916535597507622506357335805195626213021517056435109484685179366639298316181696628136905006549409625458570542556059718569908131525542388993324525438769610005300548970707966021334075056827506799645012279608806935711075567377589548100284336588163058543396120001962779148833932622443319645828652245939403962731566705415981715262773670042075880313017437107933710802120180154871960166898063059524131987696918464503633790598485103477140630426667316232039283302589411337180758105785269266596096208832737960093445315611838333016530700612209200361147421436675697612176435847112502584228017062117044263369708800215793339443954143596514040568682340262420303251045418330816043262407255099701212101464187457865749957596727721793869699110958924543830002625911829298848151354563574825660786128203342676037311415244757831032286485420637763007610165548546303716084447157944914903070789821955880124139636337207804132922874023290283056723863141136587469327105291828698198212434766749908371589084607208879064424969639297639587331959331753827321927087715112088289769034598361863633820986468812562632042844148819066060449917501739456652656225325257758908107904109465128643121056564333356716929175260821885512883694458528411164491788287831699694439454592598929601267044553052123105459168848557963464754673037939981354114800607275670717701878533779797033978921413753415827184484092745755194770949387192752964693755221826996177626230073030883777184294294402945478053668850607516452685384656313340584976117184158042778863724865112684263882639404367419557614579042453440604831237703166113504475360440347799349414052944524984109732510121998907424036555772875734401220654713622177877737446008108679076984861157529963434302457088087254070112087881291275281316916446504869168493839396015167502745155508435867027286049142859497924124145624393984905838106828869037217947522725313271632415097399503955412517740178545957648518463253434236752078612823626057903969063757204763365101701058460798631320721436898013509284559510737448012235541435261825862917274357922855132546891157051456322473938063128620999359922391498528168141041202825255309027065534643616035745803869948298024583210166121462642307683135421246670445261127355143271571956580690584274218492974210646889456739972477471258101808430683548285599901016122397904959722457173329011857232242158201394901899792202278125457346877308787763136079384008311892380327720685980688572199325571244553963599429675096634502621008731580013106671609212620097088364828324915460560649523562263590017301008997552622129167389377678509339451769478465201142047117569232931250128291265881408756981909216613518154288166712653442664007419698554756946054480142278488357505688695828224959820361999236929980198412971547970672222192375350219462690470399230336088448072085300204861832001487130838865148819361029098632098565865548366998907172780102031596150481956570187239155963031116170974728137066356827399230892970383345270629567894847764121422058404649801481832837801905391749038887300739120620797052115950381685897368636324976457437646612620833079764249642091726215951499106251494046886469874649833343430813912035254278696668202432548186432469823756863655929206042359514569796260242492073774942965502585877482660689486335110572732700876251469807175752199648862463225448115872202820621044588653163159788948198713259115191861123518218926816777513144593786630712375875671461730309170427309901632012194491717789021528125596533796633416599379626650132917820745782718739386775284205307708674480325790374096090505806626216314925540255856231311192936789225172503473703263950694928754499875698963808074597271461777336192052782749324971157258786604413253452719223494662933595925119878858520764278707223837292652082010675322690396463269633719698670204289921489989934649920109698058234672499604259587032990182424767603395036860121985976338969491385982044965795645143597628261752264748677024810806448479426961595750235141867782472742518575197266648457640864526767570838657423508665766849829840449421233352292473259267445227950991988933400020172645185084829867531999882263070551801587827925987447657254885732024729842980748654266010066442387830453688338672542742144014326879346630418692950937006514619323805639822639071807290675349520609500364627015196582770359420038143104714800885294390845433332425037780765477043407422914928659558292603403992091620024593934505862795770458807762743979911764774573964658976215022358116486211683856761481415731407640471120600779102813860007789966616438415220525866752882187090681658637614210552383407014947496012264481285472876606737248828238121897656669123546004525914305008720683363854585477412389083434448650566351652351524054066538668192166891124289864783910660221093675848070520632832946599747856255551949036302804715329608376190648229070425320709834049149137398492701378271083347454174415728019938590027073123432475783827638714955834871443470965222547848997682136807601303919542254676884909904554404187214730354859606026580187471219814233506107617126592343690262452915440639760871344247814613503150059754778959901582305467334403678517910941494805890521486607520176509173039883859035564192048864197508464167066168317883451148335165951472121083474080575955128417655079912274240141583122226478993148471664494473925307619677845450295417789562975683235554932186914087595406748360923369652316959208883845901963972780687191781081985032140700694513932798696455663622811219436320316466765799841521416385931339530164452699600845379566994267600059677426777506957785256713702185006427652586429147150849455897992444411959263604380293629428050999145457429979241832139346897669386270454452402918285485377668064581505801478765098219157964610352470587296569057107301859199589482386720340522325673786016369157400683195149692952181884158602766116608088903881453707869005656058975003366277620134732699949092355322636553163893263943798864828072443108664901375574667470199153770308951755908692326815099767808373675581364936572097007762766361595756190567987107330637242543408419479174505165165475209204375743358662492063705949647067346335459589744036711765855965107560025452082265207390358667246008463001379907842442858086085653010001769053411508364709905022553730699728492788723592949500193203352974761507022607631833830384424315194966416024904830780743695962152126595235614474709713484846890707039300812108097105565960228198750896624721071230006613128648582489206954533491975639161291454674756469850667484842231890540779252364158174667679436706737450155654081988332180274952535171719182412074157126908676684114037362525621082295323184756957869207852569691779807814071213083839239622197469785033953982907626172581752023530333299703101833274463094537487357225075151765541209530917475029906584078554073493570419986360356572453020431887367619098144352005598155367243833479819041599570479929854751024247056470204566573434796432024001255618374752011963349898966435476654103771347391941188327387160636503901475089708763755923593791996194479145135840708380649698556329175311590990177324627330246299251120181340055244434180754045015093666529733705919750757599361811317396381146429712877267105346672230862826891365977201238839642345116833129482105565509744470975938075037592489816631382191079778094361197049033526013427401867680347912799956145007069906452238963523907785583979610494093676456227083105943077405253563228356682150978448981603131371612187609221607179034722443765841706945472697941401696479169159186291846446650663854700588641742126817376521332374949934960077756288208859703115068376458067344571669285139304247113570750288025558181535992146343405331047779737183592226576472223675827265475644451159746248420085637890605453642220361934783540996278197710470922295745238163204185906677345501030140671931004552592446223114922242646625919816441211734775354288918440123910896597740207931568945820968339856149657001599500139905276346610945621656249353016044252691926564919816923917252103242229575886400051648855233154986210639446251479576980635199491942208018625670229176086186356897145972175211536925391314261777544298033435250505909167510659938524803518376873532391999830392895216541494542691515863383123184512314854811423492055522964979039500145496567737409593787296993245538974247955545129072302077290039876901699349786294920900004508189293244206974908453466914963043945079711894412998437472371732592132535361960648182069099905053699576732309740518723796542743998242823115829717398325647448008178880177563218293699868378837375678176549066007581707180872797423105834866797304574166000654481302411583533155502195389076004748305398961118004942637287148021740688774409753897298105394345627124960843281411503636170473739100568740617881720482391453448450308819187553943362636866555857171830042566040089877088974616189435547541470463732690963860002408179974612227179833197746718754742324063387439960883167144574484300910884828413018326743435503730021293665689740191473039922003212917668679438727991611966182310920555766953706354154350095934446361205565944136610253034295124807233485150585313999620186480531034681595324043063843093013031355709954613105157834617037595953903986378273822912553061737855290737792527573246720426860216258339501615608405876937955504289288812546920132138685794560143327570418173852404558055662977549837244973939725230205343591448177986491879025119883802883330549525858901070957809314300778340176018184544142277120542206980003275910528759879439370306390952503735535434221430661398046282746529617545220452740264912094166063038273157873976281006059031645681993068085660934656307183143646756561947421004138291286126557485041776202268467118905371822470875981188658158251647210170956001210812801813250536385280080413979662418649656229526507021436531822320373152902291614224679707592780017538126647489201989679175939541484100227179089717056808434105798937498715203035410158898978241161686275038675193679758956861379849388400474202522041328354023269047857478729345038464635011294530640155537417157367968195847739678070592432341272786808422595422606202696607398641491079002945824602002845067909802794843214723434890442241350270615572623697342904967013045721383348967190750631552171416698784165958673854939347604874302868352375069954237965957730504087180269418952352067541155675764871455551697334084789934182670020896227588626801526095568160267661387453209626354575025734928002374706274070914798176939543640807340442120449062151045090145261062431434300906278804801240025177585681963541951459564034759727032122924806561104360214975938343941567627510988219907788978032158679975362520005367783706865589364500462366597475124223656893348480819475469152544622125485620959909959533682686220016896598518514691036719037542372559077483644564188777417022533968724544615170266546452472763110751019262191639096627747637385864660036187688174985462636170212094529978720861510701638959061475767361114428711524390323552035947246737487540509700376257914835173986727338398557722088939279862998658662202897300335484474749137768867859148440125863616229242156929295821002514558046227933402839266719461467260420450237709540550634443667600445928297276979069501871622430940623483373800271674449453708274314016785618888603781472615603550346220620066584907683714043657625163232579403222513102458584200196077895688732557384277272029175811469189957362371291991330600171383381518991399748162896775776445802940733747703034860399752709230930605596591873860087061363599845801419151396049504746328881825494772152466018343598084302774206707585464914373026439255691151456054624616140309800958096603978088448348201643115511407339859592826246019885497121620497103569026444833819642214562567919412071344831459390595556825115645727521440498543830784086217552769751975083632694149001112946477170277253579990225949985254674500107847763402244279975325419074241474236808666636539697477538129041456443592339787813511353011757029620902048770879158012687158438920212914312194138666350105909780367590447428580310290451625439892497171244608255969602030213336820350993372048801199609625326066746559227208587594885687191192370250747233278013535427648406403078348276780007809075041172933243805923302485803225862680240864338197561940017379266494328527802219296025647060702462357308597946547840980637495295418457192136816469323213912523388093759741866018627829771965656476722650871698443503088886606868830316554836414047551028154566997386768871481024474177828344936635822111020879711183111649942701007658676177313276677714856351753689788075595565957951412014532874210650114535592061700829990744404094143828668184682359356445501072796548502361119500960669501429529712566567427387058500146766638907787758000929681225427162171585012837643701551028147757391304071270118059303483440546976798272079189319093633535643520345116573511893883193969381911693531710372202329139397691690767831197605618148912374848312079767264060869563081073931030304234286984794598889554736859810949552857015050087797116763903210536202817191715800625617155205112643581850403963914469347571607898877722596071901676299489408230422660232423579679018972467873583002375083485757669542807093852279535276085522041678051590154593026646895098811801448070349789810068031204401530353472665330466819736620703298452426057718770273970491022713841724975957814058321961698098335828870960871522419212592359792090148165452833571614288004112830472437983720306763313011729629716003021522812659054253393343814592918390573030538559276581824430545503743566248671322320856225052033514283962177110751875784999423545471166048602887770569160267282537812380712845276066845504415597219355316173296204385763525730182688664109031384869208977479682624462444090489156216208570771981650930654121460341350682687857297378023865588786706865977468337439730913358744935659400777364808570468367563959437609474913531438914394451657615453279419313658213025426493611607804241519687629269684513988844103266878562080269479435068956928187886276315515578091598709884723463253595839342226674821816680601357883612089593084823377821832937911457166196165357647491403700678983014002118207838733501211658856028142185667464794288671723977067498111210321933386697319134823698237009086627045363752697664538683278213434178479301477732818183018638054026571571664480968563849049153891233375122670524114436374631179495698504555388451757167658811599014054741565731973744980538354929239946540751903728747660537248737215375730607451386094559019286200202525724643565179653160816564308883542233799690935864863906595015162431946700510361133414409114262438995760636746663860751119844263442973948978639071897008996399404563823667983592397083937795020726868473526289522685973590227106108585411551211433814105918734433500782683202289504120827120521104544121003246898223421803012801787969943503765648296671680731966768146323437614346093394889176834037259213486500917170545212422287818694687659875006154734551687784224630255642605097207428384069526314660121172018234504109519134462310545053521486300498475454527464120461375544681148217915811851222667465814862701679614621371413807091233855400775625037485089475921674494086151885192343553672630056350811038454436051204547754742861486614879292935642626809368165131748635049333145156994489998876005610529398923814205923889229404326135308661711987779976348993768529711440365961170701755692600022622838061149078868876882995116703224917742174916838024224619551905614540659696544345694742860836634486488530248408759094146862883033610034242429348762451616368052245746787562026751955534042427230501105489325372238875295997753322490230639254232829063637665264654085588470998882657449289891355271348332524207944218816339178695856258567101222557477899959448485870288574624764243593294462577818810067640243054633628334736912201770244538989943861470574965280396575904689451019031731982626424417005335485294069006265924012694032061506210204909618128987463635574887769920252237860038141692460257935915856426864284488407246294151628538146895477849947401323189230314551061783480015215071649382387516833204069955667097333729047561020453528179501728870722763124064529201856243978772886493965166135334863585741829401947555245933764717126857575750367951882079649845354258805110940615260049607575355739017765243973707755607637857197187705356444033738038004142469154583482389692310659933941398433108332795162628039306489243761417881267431348738340465239529685103623424948029156050882007776105221925826668003231822380677321941256914994618786678952861796442213030148311198538606717243339766617426740895544847007952939602683474729195323055416152716845358734312908179864810979132784907054636998364712665821228663466636660246652717479104275102231879510747201830200921108449673365524196261862875296314910797635108499788415411700741620072066926001720754159555470400961035217131814462895300219831281601801620260089533308740953630646639501394951765895509627616247237470752727386202454923915568850357411651898804223089332380001001052450198425783594664101068389480568220299510227646117753088384268954968828230529067981487849715744572046620992436792317039960575357433626864727636379036699458413857894764862522774501274198278724157823935693865338112669265570912627541293809158940947213792071258369717843710113536816700897625450697146548609666873252822153546630640910623673853650084194704311124426520548194854807244063318592332213217443392658191275001923732040228722774739331129833431722876824556978072933321189866691929998284078719409626594181739097181659906436686406944636906759665934660243738633418289471429543438322112951715251107044309369540697552935162104773718465223836590306547963349347611551491479939600403989207188091022872916722449215048721384690062978903077184469961355242659984995749373949377701005361128242812099765254847593894561246323855777260710454575961471501383031562708218488332580475251856676040454908334659814494479944594674734844483976783528362376642359284765881904395706801593786581186489529942483153570852005741191409989473128699399855023602075638303010732601257849347598081578180086489845485375549326083356498907805189069899242202971249718543915545339672385991499168904701867047645484323937434881868432122752568080991581410577070209835544871303565827496664164248944755532557348613044740902043505702447226443484615506737621407413507729904451162357472564154286103417457750675776261926610589742381782003300410159331466762201628596218717047518522236950676353129021743146178268318080802424013327089270786216620534260984891607935503976665332492330256405950288360316622840763791435874250449606217439328650750023424128681159187062269243577564652826714183976035664149912798810747287009709133143295400902374245100295250392549351345783837557476025633378371586894114193623989216158945078755430380546926557249927361098460653796761675979813280932443444993982672351356706495170697724563940709341480523344906576934449776475104689596200140799417168031763122462207562162263063445113217225857805688480373541012936622104444775859292025446543154043622318197225859970515870720357407343201560612770416688880031184317090839547832030031417460193668946681866806303870132428693838968017416184878060654025401164535023919855844896418385090244422529525044364133303179709730457536510796358354273133718061843462806784635569680426218512663392175344276216092708834484272073388528074434875219720227854549509621887200665441665321983686586670941849296041862945632570919220599186465659683553008884057346123213906095493500369387414009473774348510691996738158523912784079353070516907634522558982359162516519501437553394371188105402025136196541652401038474446888048723589567293757663956427409685112005217562382274191982398570522457858592005929147545926300415482279156291061821055466937536906966255474101309633340825901441076826997810476285241730003694212365468341986706997917998342600003143867808672816553921133719376153290234072954322204935698422497983010894640443812718476432417083505146242317288367152197906649893890626523190164913700056647119932271869594830114408321220986652857706343781039716658191576870291357180669476750380235552183453825665290339191051205035976146440289960252672251842338118941198141044346407190968561266523106328744613555960190463314605305771131527279443569016992993675322777180742168533325205256929518311232182608973946497567057938028910779774680906469102130450967472162479884551962898428722887940369506721943687907302740543741026612034083672637552260183787015452863040138128456673756953777231625331618474007363452846081398179023171349066115720377629754362337071786826848105876794946493849242006632781058554226515233368174358166197077116541656569804522352092893181988554062356540108087023727617494774468710298635055460794552588569519086216110273165707973437435576244087715819395272942336914337003536660898288589383922391172594346776583538322931055261637233991007170663723878824716183914037343004802920345515253654229046448094280671082931016505560189006394220794149367860153586254754064408783328201422119462930784862356359766326814400034528399210121068701169267280271826077736196629163597056873303951008677092250273618749676154609567345786202453699934542813108354029130037255340298862468726225070137935705280645376376898656270771034795540553342994330662227854868235963275277061988793076543533988762541558874189484513944800337939975569579559730281994018062460117329939401471360316066042454525486255892374362512054513139287646737363318264850883789453245701447902016357881347605171338445360474738330587711426837890797855903935132599815165915944129611390035708390371451189836768176774270414850867273173196025716550363716124722107860726375378362764692572978406175543427376588615909703330158428213557478661416474309530535621594900224022485711856227806141406742085106279982294293259899841008781798716753947172996331681456207082787400684555480472173939681285369664050962166670986992335857623595575736858688315957321261963705213876575695294799858313688161974806951771467126177779096912145493682391672297812011981221728534341124642247988437632741569014507706623272113824395166068145212319631140354402773545827697113523159986526934436794631676125681422778037743703063098890912395486781101154376574601930989979676105242162360219722110702232025451892976619442924087302919355660226468801972900920054778884858415343322124911342618356313226651559304316001927712765549092267432843108272097516525542043772264570384281526856099875795748242543856348807329243660605224100358250374477839119921570131033433417162334423119853289420457574353354717224133078503821249071340470118804806479271760164738420915770987043942065044371431967119075477363731927297700601719759183677317387088190553757695511009109387739859073073887207064317808571266328559993365037363609014021216012906868521314700155863368316495126269035648778636843662710582213519927275337199452163212928886342970493725149129833774138102707183160198589189900920712687531340638023973680012856865029979177613048333861273393024533096753598029297855085167568993410041768157740074299565211552801508851997751341972917672062295095703136234404931603096136879614119189860301438890159484075325361538229225072445257114630041448429081155035020587780913695146912376579828629394506594305773072625325750405735038469163384456697059279841620729560935652201723782996260247902533693991125880776213655379791328862171199860490149154862547931450319608556249964981924777776614282695480407422166803144160968914651055677661669628273347497868957647860397737126181820306215821171762774318734436752589557017175049882499454011626295315372660735408101723859971359578105584136463922178043861551664104955184114203129745472357243689374632742268423178062978260727016086246290490501314392565930915231733403754753520513238621134393652747292516857721062788106515084957356903590241372252217236640711913470987203922444967438213781130423759711310933269149973040878659560992070841939148206679918171249743087234259052114135870230289277241310535082862997675073721537780950031378291346885641290065905322500542401962882762290683756924599517879027027011276844771017390431325776354473278125862616386652731490153086776975311736237789802383565376166253690214454144656572033796307794618943962459574079995420477848190473076987791505405600492735580618132141013996267848340534845892027276938870727233076232233287768850619034961512638294376671747271683856389030410430940832402030802476962454277639504201025898137148947646321579610091277359937114923542536188517237610823080684125931492243164418738757415507193533488295466339344484824435390568413619198169153569937763203149027402839704304368695844249464685728765174018272866044789937876273244773828060189028968416506819799565428607632302500144205186471738176334277435909676833542058134845444855497111611899113551760385059498281447071887791704965472555368238731759873602818939229433465555886611839610110549628923481066693542421979468613931554682952540938718646501750676458820815263381538250118914089290484325692511194650675501791950919735934053142705485058752310392359555058819086673697115117111190008935762231769538127632532140619714110666634161994157705776724706471383948979205167932454873848533065860044408368130809495855154052389973623588613330985325488069959767410922014139437844675290315294039965601746754137471720256143312677228004228522514327798655997669785287460075666606745760182186927545785071711196430813303040337013752935670746744540055135949105480467066429173542539650133786806050618297766137574272586305935373375856830803087037241981471230984625017075544504715594406569881395982471521258882213473531655487050354888848988850775930622061011951533215844929217728564515077185509506922128621468184087512444028502602229113982854067851328574722891763835308027925317392768257725359905375304336266824708545489584492120889089771714932152428724881641544696788042253748423907010125008898149100215597604324358946197271388982553966903037651863961527316101866301062573219870837703169061688952416872615878657305627379945845153585339918024189161014914961177152511546427033268106692488495172667979400069847355212942843244175532787556569892986938605469531635264439859777126109573342535498434896622272108475013459500299456927044913800704513784765727402309379238126120339269857639077555035697149007192154872557997888423332995606724920809840614819075396611596615341401363366263551997209804244111986554252118018363548140176050623548941783842639276486511365729565177762431918828881276694757025743278450924981653912629164270396379592361984181073587294954715187344050862050981129156967411650373283258269915615751109506102779178499526597888408705246641383933766738583862704980370937800876829106114991740254212908160592354902562843186022429343405093171048312973427236322380369942688918916929189732374944681106132103998738612052284096039866129391036635738738415883881727132703156787637126624051899193436657609564440578001460199574708384324854665259328420254626608753616443906739249430151443442699723684978624727618254270427072974078822751745143441957052088294360227178110681388367117352081670796514708640866209183288181156773029560847013842169296074688112310061724259075966598708256270331519972757126141194110263581785773740013348401974447315927868533168749240073581733588052311663390569762715329622415646731714808334142663379771003646125215053569257693097737279153089456937768473116183630810815533842098577503284337235071892771832217269743229694153348864368505076202155476974795581878956776389808020712643858340746997393880489123477754083316122889918599957680360365422976136647043469930980114818914865637901238023402450836891165061033626732309625803369361341139941161904158849344693089645736645543074233367356317297503375035663418568913290630394449571514052683849919031723911190108495272194838819712925973994365532431069117083783646258054428103493647214823823727754113765516842923438753584974536770943531437839077907166625764028331396549505184444964150523026348455537944450294504243876300995519482066416196905286361354208929417092682215369835536060732498417393804233965652048149245051065537347382362273728975493770341711172733405236859660269423460970225677240952325621375709440144539830588679366678719723779559144064520255450579575404795123015967492211529617091109961335460669765165226652400731173573876858509654074720523287549023651817386272013111656245746360718203492179321964840510583436774103234160684408147439038847092835978519724038768522584806697863291572805552461083253364735996681881401077756545295787097187140664371042785227034594669594028449760677623510655042176277234431145397875997467276609459064486981381322281997137488828693067126420470590571336896520937304533293980024077473031008382859361111651723372862010833099387022976229752086855466229540983686858486519869114010148363389655173062566233796986313408044527149644179047351968270681351468137620334755635908855328885459510111815736218823968107633209322136429389230892699159597400726129367900318649316366039274285496044563337023842006999289546449617236387252462847748320341616806116590361528971276682875168038351089758267401286093321228905555900971454565641068956447297964320568680110588816123402463402817409646326869771591707706244519515452703773369164737919118385955495622803900406310535551262455972684917738418641728521937111065669964293226380193194907303329516737937583139962993420956020625410846192299745142099017930760054049478086986117484219091995352699477760958449245680999374845676365833795323802422972291210630324055856652565519344818088196521493550532433914864797695775797406294968604046298319386196849159129438289856590132724942752126877158298365387385975372963012685402756447507246751761348404249485467771821285932452871999586828965917877534957795368192675236962165102393896169581871508365334020078163215231298625500163345518391949580547265942076427144972530155233255289476396612421392519800916129145562059250894265738026359319695487388193428099902750681726127334478681291547381568086905968374701158088263071049286518017030452288570306962221930744094633257925449449728013124948268407767195065478338669694234446744060279873187453495987970980876024655225711509022396529684749924017048068175870931271292559270636870285795346327954669390002015483618821513588463127237250676520922821557674482232468845745534947551435708625434453460004107293255090741176105988501522053996687974245356072641937938704327125369975401592407597450815874105670231422365938695304656372871270684386550399230592343958073086981566709608434629499503625015087758993385162328694279936681478939487696592945010283477558886393714706181987981015180463853012965399975260352006928489438628339785191430860179460125178773256901586266821758413528663559819261438336287321785208950827232738366509608331409936261542330480105825900803208046833874938815758740762255932428665308212092292575912862544288354765513620869012525755074831492912675667439505143036205321395004681519477341461850065576712455106716569519427561285310202576905207594110777950466336138324553861196980173483868469683150338088270610823659377672683206590280965473560815310164201844680136440520051395326693824331128434835218084269555336420565684971089837885032528020238713046232880038208210165815168777355761265668280982460760527286368606125485937038050666874373520025232440644142618521759488758359645129526863465610917835577725144051877260479613924753101223735637591413875919962535556085030228619779683927259066568694575525843253113942668597456252153752986405071431489295766167878502027368769647478577594311749800630224960802193762956325659265046154874618694266687700203293074980492716332707682185953297571533882169459099414000127572136291704264422296516442156326509773097123557783643939836620357599235191894226334509849673913042041467487033172248452966208689663640745081579453359490153244887840570464916978653835797176550766538920011572041841055782494566404044213683330035293539072984905352213403910295007195368651049949980772553355218150546401509787993301113421106268875506625096638938580189618953352610243531911769547127548091587865926641646766307085794705158324944613010085445681597337316066758384651441382953736548637376965609108224996790358062509001344879609416919182679432096133680557967512383865036073174023199651287470456366488485135787277884246169246853999226438604617979006332556119160029633447740297724660884676329840037819326175930171573534741772004321878536235620967333609717103511025440839584656318742810229099375726331614285534478633543191233973488353736561560664712084968741326735588569909719437049424818891598696416560032888302184818851613826742073791866649597900669728760620479092807792359283038241954059686932678008027387093162454567891527245047796898103165756014426249543486902669764191558190302320511739962425529652548328563728515717705919752532480168553761400282622049705777701345746528418720045550022474413651583283711139786506218008326371101588883762308908911491509715218958567891932443037127013640567260929653017989570325271685364473216588043093141993293505628283833276744960444508933995550636067936099803162727088263824473127241339687637431914770321376477053466200031497087363830393630129674459231078126082482567706412787284634680962889080264270946071763393853089907853947681111774686800694822453756310270609154011012122713009316933434117858815361357323096485182496927683455454125765167918985714280795507310393356471207919080186909212502874754128614664383996215831228755416424378946185318582635853460135928278308307280231162927358906398499566905742669137989378803893897151220470594535445653142933504390671697112699161215496324971230276431207216315018589143195665955413021226588907807323207413589520443963219454858872759577425212942850091059683171706713956729835185262043196027255503392884365031606074427316215970427885460698530035191406904156811257150013747978072438664832815508201986669429366776561773500463478351900930553146031452338647041657814668069966227143708050776559397755912441012376384842992136276175805863449336605209701763404135338097802080124759056434369951650165551592402182630565735217672310899309563492677832361074769777084288249462155657366088779846919349279079356815612942118574945421505355842249281651642526301698804720012550324548188387032952041955892065167960381116551000874197323765042902560785779885588634819493654322791322109586395616135478079589351010095491877942871699324475203793312984283483915444175573076717625794025985105464795092437253479952041447336988946930282732102639551911680572543411674569584192971245530978164791671303670582192856648572446292726874124913699386501517905687745032828488500505254644296715250992781297783954254533904311699939887885808717155063154384406471039458322229688451033049964499968534255621969390398029161500910035942394831817878493471282968919349260836371243001791388745739842692831054573554184778526770399119764086529257174322965611154656123926911005489059099308500140812957474631303486116449828428482290005699914725352019096168963799562412019595137287403358907643627312348935427718778622416662436563695349614806884041406163084649770066994336937846719127458548142510459522026349379048111431249071479418871779841533419042246759643436883849273681763811035842991090849885709892992873058292930498440878543692837363722144699329967317320800644783691150130454812703256598992687395974479159020512315877050886116354183141633576861008732758629551460225012267981310562539030201235829730621092195221256806625756953083523027617407427342112294304928476466322321362098332063442693066650131431026381051249697718820823345121919532784046112827657661488209404144995634398773913798599795032323363034052541908634621625241435418679896730666806805148940009866462171943285419674730151327685198361161672285324249933012682957613254478045882297406056406560478957047566603408741154087585674316988666991495043743330404822307129526705584626628898373998591880215304131344728603198706253978706231293519616653376664119401931263205380327403865958281387226532724764804872270987386179190014179256980029056961551367464636127669760279402077442451407263986681426182006100820444392677793731115710282020447244338831252704965756226885272204230092902249127417457337336494669331121703565521641687852520707287593380054215542311897280639803370793294716039085192039544476449669229784211898428970622860481355061664376546793246542883446745183097832313523475265611195881114268210241905998567382125889278475261240533000752231927373361783339940684492266529332654436018850133774106195746652810216172273364963034003961530535871210469184391710745185824518469972118281972112877214030316539379373725781099884516702566843516593526565572596783835728257782660417657512676477331396186882921288246326321129431982192217525433370545057103646914216006978055633384995267225803518662160257150526172949256324194213816046760830233358049460228179061996796352791277587384242689022165809192428672021747172980309132867267735509266247809760116327008745250809944731307435178184565284911228643781408109789166348407768799254074085204590299712844600637975821804407016413047303892568713313071751890384947622003058519290635389932908484439083724015621472375851282397127442150284102473257086819630690584640854986583310079517103870035903383711732265221080052113768565690279240014105797570723440041128514425378430506392264306282539170931334351568500359066744057501783195442427062785797545489336827728049912542674441434873293722961408476725272451188831858268304440737272823399862682831671100908536494478773465876219835556671641588246865891754412828204381034589916289677195309636480058670864352148509935358519566187314581104093363942890133422314336619795313022049905059409055817194315298194552102798225575058898613669081706088022270408259111758913816248097143110730389781776823301493543612376825627906631170396324799045563793607289989467462405994491521020229140002538061649582130558487002562095247377929342268478329262844220761318472948275623662362809624505914607580589449391510779717071480541350138859586778900100956907775844485253576084127491576061585368476553376712964895049097991357785500689684023394674366232151328901085172213322214634290935035893365321025062373711522724342801645906089277534726442730644616352236641382519811579508738057616276522127440447421854039114515867056302441853289519019078240887149839754997788252007346344685241224296869229907160912496908604414861543737535395449011390208849648272325729761554772510569008490845909453311745060443622334263943111352388104811604265114390347466400127159532587295051363170185050745526540741717202111265213412093121917659955887006078365278860318144967093820890436928378796485054672642065818426607421992215811709194264992244506784947982216393516181410200229951131767200631306019156308556731171397558827068794944137369902668832421200525041647780922165686179672663020879250949526926223091572301712543544665262169641915274779264961648716701376438477505086329792760898301359935443185400229253919516954906986047453734290386871225211452196965778181640787491664682243538143942822553790554453302341378789709929779521200045023990926080878524893605492615856506449125596165287715051926663728328920858217485221035713058331149251806221729908276732862255077129900200865425117630300740441305773030858886343986846562274020575877504855090115378182384114883167600052818496293445684545723272037514858906343265842378399775175034359980221437848153064701860453051400436020155601673082094945624473054489118719516462873326365473167171812221322082467745789595003044417446310884194429593092012852015072361097519082714467565741033378499228968653091167130318418537043601179943220554025038946974981006291085431696655309233833404285353687569165643147800908735685281763368776412422844828912205188946332397998789358450367373214057768384268430139044847114312314618895110718138133407830196411679899590525113732074120392816875592130381198556749778301779361702307003003207927997266287383396971534351222575510412499489702541632499069653647505983032713251602463901737450479526977021461106340191024332484735760695199635957993145762057324864505619772722967200216333573531847540564742325492493102397539940955031685823029988832450388595833256554751945436153261972880208658409955100923097158634777789676557045085075944847704837746588407236777246942196880756947163598068156295100386237263121926270815922571837602550837622369022884127856759417581824466215163084736166000166922794888743009002937325785840296631987332880982347561328823517957593604018212236852587214635684542968804820466474445629927740086373882480402577749045477288111065452941019677540799462938209225085267526285403122416945704743249943084064856813326179430329996952062368626994980524480353196086946508498099399737139702449407765720409716796380092226910659114606179205328683739574025199445528514750974910288454210512303249701821757482018193480490538120985443160243065988147087581400171887808026533226454291642104894388615220627503910797429482847763971245439400223929743952120722249747007613123329022865097746074184807539184755343765050568979271652111059432349776371022525962108766080896252471608757398478026029685614521092557835025525922663364445470296279759370323240334346246228740132317871020788897092279128158375844681049295552207242235512704403789364261041581720295149244922378166327472668422216100304208482211283368381685302069462900879854879644895103579293525685683895184415518366737568900301578241462171494072864466290043344738402285666126642439917297265629637916799163288101279446205323245639185385914997590296129419080208225782416333889528046435547524531823572419210254828369655455094015453132953445973815800534426765764122153649929878814715040653120564216121958707920643192520966509443924410467383607738797171175415711825572492680248852172643547862603391064154286919062746396183358086750034669713782888349222723417928876612128727212883641471064748702784719739321284948212287938901736504298782268827586276447216673170249694998282294631204972150113605559862698308411918880266278811407414898281326032314073278015834026532284371002804617533793959630123009384448143190746664107884506003535386645429581124501804533763092650668824889982368678456373860088801093705905692159643171151732146800362792041769122711991262917247658157344267247882480478390609173139327428451731742926620041004123602417281750833169012300208546225802901592103990070595220097035419197274142579940059858618546289624370216607046088115805728193278961379169199464958464500844726309353499492025531371442839968393330996840218346436120734762242211254970395500899629908681333877136844623130932410726785832571522129797168093455910438468372696230408611497950412240107841125648676404861193560457783650992420910164992739584257594982414273510716710772595559649815491206907181324063831535067030239343719391387180508538186296809797875562064164718183054878587929687011772281086879013956339760457882524514934242761499739439661970242677387984144234703502368569367352250459686899434738422045472718643886314663821540370481472357362294951676223304164064114222365608928124612242625658925071159081899091698538466982275064767388876944025151075217486787767759901414904058187943588745929716262805158275570141213939357751750490497545313162359478662341499560427921234801221617093728354509781718766505895206076042973320416843392135596520548235036033453830915749505492025680375194589833562187291615581400155364856904579269005127443531894161808562235660921132429942522667097255264632323768475853862619330291760471302346941876097303034110818039432563854038907741877977970224241236721268037310211006115741803265977084058415350287971263618691061548550602121384276561829954365429844126441953389893092752066305497826778525837512196790509908105675929234459164264811540787834962055776157541357160141362353424283928706204402319863939536006989074121352458969622124731526206809148921572701572685887713686527608484727056166500888564297911496095646540200723781571338340289805062552868792734976139155548643403093201913853033280013405365961132838720013300261340355897337131330639103589204278318856616921398562578911061710312156546852669847886695576038913380552893081359329243083496304299231597863784914671066921820636456031012337259502418094650868623709303624324283061824862454637928726501427873054213178091722694875887703261252766226544534297361029040556741221885985686901685021223350390216432012369504772183786216510366784235510605102078087882175328361253521090041402201505508451926533863016288690942885299669770152233897449593396505979110618226778403408507536843650201318842451432187750259062130483947649448366530459443032708991391552939394765314137381079592931127565309418693803168062193335435422737599381893313667339996017920873231614790677042055845909921021428773039451144722048122045899356831953082358296120668184296162936925671278099878294394014286114933295473853058986679407480009391503353211658957586304141679115539440348156745929107001260339039897725323461848085696541952335815844778886072543075999588470669748599025975966980462116643466963747762828285018262555908172603914451587689204321741524260131417554583368620499787915927043434234828957256470336531762513341612312684621565086786957041083288309358202286696877588014695019817259816652124892460347958403505579640540730488566152312801031800171755039184912792624483632120543498523781673518111808113141783441112282076450982988666175353807983943482848010429387210109680423682508209966778813984922763572738612106838766946991322371299761426454183882647939102702780697239264202076377521950284498969139317997806508949556444584026865042822158299447407558364962630532772531838542370103263292150048853293108847782395566822667305958145728912258721310817499297526976630494345711906599114457823939436083448052292822212015541911878831216787336951962339235186788509563836613275809268779381212057299356217322777571407807523051006940382241066237396828192120662495187147074476376210274864415051443304435868630168582593693458845898032113335665533413171448082928436310047070647341597660329887687606843664246193648480593867194413861265831182619474239808651147549612127115621805046051792873154355635973754194119890361859437199361950347642030946413909896244205086793704125793708642844009540062471846954996439801899348739952762160369455438757686194955357312096102340168721931547787541170703601300365923923391042293500864817224521495259508999378693267061857938798381688308010095325738924320612590617377485452622146836568719316797622294584222561179671330720024687983219281793929899898399233097070815233886883880010168400153785575493200284819909115166217821687884923485745078630954785984927923068219361125277305754474506924122913695241386700147006904925372551494053901242516053660741607852758477116500449891446103106870538142301012763550289577246435094059672018427860869788574906628998888606452798494187581762434886177546592093625073287294496002187233231200134822998253780505330952252461867778858679407188105671594145666295494654309172043197809230155845099477561086779188696654715478486466319826120639271568992716035140959222260366819904639893892241596436833245608130782693789876044051091960462826051652455020268986421251019888678533673489996962415585024463963942194615070416912063687723934913317555832043887931781176526894661793306896761843451063605081730879728165822198201115387910379392414590202231978415340171602528709640883203142218998726997762901402003441199718719555198622986517267385406787629973057370659963677919048693275019808027225090569283020638502384675850463275811085574855740853753618464916038572129162009429772801707810575080854390257270921139934585094044133953049640916249961117489073855342778167815818587649954230313871518888246787287574971035613924848205136876106956296040474566117351799578301870863156301029690133051242482168147364695362445576764261614464069382290745209526762607478632776269767073797412016584583552402747295319741323088801645928796672596572275292544290034974112180765781568368967274419537893688280790985980769790225439220697026833672075953544649479112950810718105153069891973031957104583564552710410876002160095877913655639420141983252299296953532140550161970733575118046495863451405741139052716333134396492360107394495922303539590315234096934657738655525173310806816718744837428695302008594223529047167604739536507533877510413597319820325412257244988541632975050534265576768924802326154212282130439652771101526656863640035869989371444273160656167729904988872126574324463870247146168619623644699306917668841242908778992510049574349056758099126579860098622479932977395250131046045985668781387861979181020714671247425259888359739961850701091165309341594070530464132172883537411812153103476197127199222843770039846564884581077062432230304232333762656301914149665918739421493155418686626208774952608850345706769657527741457824472141824258817635424006107512694775049798386476018313110995935608362813309317378357904953474929648938338126096795992354101654562205473504508445027541978510087899829725710653866648086084065397913803586612235880328069049371755469467489062351203722344927964968609919060092497419208038218032540975155761366392982067685485379724606340328641697753678471272748894121234457475313572640716916710275484690472642653959801647746562852549675209965446032415922782248003625036574006190937595909658908713886504947045743388647145323543119700009121859633342974306644193008806395340083064561374998304738469277351805720285021343430327672536713571354700018822988651850323985409446526894821057836592127901158457054786742233032823344601724339304626430096662878520257554676006079610822296706369754518585597701844705975353956684126979818156711468839496431306860669740066784987938516843575922782427615834142084598705760811989401019326799256988888661058933449417214708042406639433736541632637214446109563541606675545860350396101011547644866812930894589746472378172935961666829755558808111734733501898824307837645282815771436270809405554181132651388200166678811455235844303018892526880857120328370805319790385427698553193348267408464047876728769505512223765383653764878575238877456752713343401812010334929895478291930093437905694952473477376785983177260240648139807891275269514436666776695837355361440038698103558701101074081308415800674650856545553018419312326008376475639922789612807867615378072696731431137182582864129495534368524111698412992990073828870830159581957928679343777404081861286525764591304984313068304082267289299928663080340558350690827568952906160966158652830647800593920252162673563952357159872958180107994559526583384264427012993988197026044631970947418830534251567509486446242224947156730237369582523973774747434223059684200391847696185235004380863830406298558099388859175849161933993724038260690544812151056871840897796696491093604488739762413449194241347558101874750908725329448732582788600701947230402122225164297909356586171660412453853512103359089601629463919007417896350994453739047264143976850881302348857979870776466170912239627481771129695917403927168706937604871640657239798219369743719340396007081773028504715095495469928547248768346646546146790648181998605508744888798543248878952593092421472615629864664007813752897330428730273513457895745163840562503840985713050764626740530049655149496489417727639187661746426015860223599984268153291483907515568216023244120146833622080369802502666566725712230893735467972948196643067289860393979704808803184770055101745551903528203662570156040658488563052791094619625251864144583986704070999924251982581684603022344118987638559863921282589268060142956080959931461805509704244443926518698231996354749698341556996994647089826887028706275178646515927712199129880315756026044204673902068338278596220111827871504411916319977035644882171365680286609442223938581534071179169743565405873418017200055760904923424484667385756872355687936279500726923252439095657978033325946863528628589932736316633579416381283694917369434418848534132260220093986251663207509869217143623196939709207333190607116286756686712285807135543759298067842761847676175468249429972817662114810825717306984082004556037710021102031705919977572153109515235840125796241068594272407807505072222683624197917424546834533947544098162280048973149148318653971360732571800026127194261812303559749878790702253395796969412921707127775072132619087117208946975671788491241671261871655724696871928660544912073617565899840623968975925333869970635092324058909422053533003388649216700224951138109470801192173171126434228776388611200701452732089052520191356287520085565212475300570446391268598074988626914184544694020496366759032851819556842699024804523947834356112918474858855731682035523130501115939363360505689522822314131156941748243450699240274039361947111171837123654638724323811164436161991691441800454621600672804527977560874249569852346352421869741465591029097026895998095111677069228956503892309629719342298461808201454524343770870707051690838691084231657375352588700225412382036024924067454869254270998697062375230142098591940220277135309350707219513634989933283175286619859488404665130179097353172502818257317150860338049535024749952170580694973433861590825687859553581340807053355917774505627890428908423290217183003558388557851538854835642815432894536887946088963268642270384715408062787882922788769767871501602223383803471366785776036853218845182156725519552623718064913972302870440689789266595440702073487067995514675292433676303179587136600357115141681514947938375369529607894441484615189036007730420263162618347042565789646735798249503610559049574378707148479897597800646182480129348384651781155866894657123028010114411192577284414829742665134328835717905616729493004257995571609295094128925361368526406864328105803095125204429622571156268986075026347293865375189575264668446653336915966561395991324207819200732786730178428731889105261870472627153150095025639783710128328079106143575078954922184059315862243967780623443329464626804190439821794694483121048361241221966170513167701966452715490189062809815079174167734017480048663146540875773028257380485567662239618846982239576149921900682365895775225258905848226838022490237671848574987319715672117640054211588363166452169958974744406337531664214793049492095408856104834070559719359204053063036274201372232997340469434726517238329726470084735789236097086268468946739631115202480412732906193901930879502560017132918131111310202282073153892763324728093340214160681296961737338335700055877860703610040660760802214545878841359556177744945780378632572113647437398899153497666208377470913303928942030077575637441852290025090473912149071398073778816521607081385763837084107842312864415834331983078047211561853823881194349891459950030764173874910542234698787415234072615745460902240580277478930817405366714092835746166348431673027754987605445601463876477758394492938903822651313159206686892916825735434194086245083875659696063129328098294482872356598759726076744432979552558159326741926137903584786453905513749875081093237800048083042501756421959855217205181196584496900250427648971443576236771721420480425137981283693316623345044020112941086031439573277144471953069953497133894934281875107321031782726784119199044117484280875297857881967080083935333848688269340537532363958909951228298763567287232819086002086027421033691683237811930004412529638309587340420363461625694650240328212343013593007652031055411859038660438621418690060596574060200892153570243060522031832723030183635276017279607932694766385318985448631766460917570008417039417766269460438239190049713185101330855500695389564130748414289852892217806995613885027368780568278740447650177219552255974178617083982726950021685616890484187636224670088158169845756129314219661557710637598201670537402631474794904878930882408645046648784145865899085287820560080711839777998299956960637840512656018304355028884163161732133956349145728726557945262263723171052342734505142690184205896399538929787448013924530827013557523795731406238922782599701468298526476760565838408742818809924859095415818596642989336605102907211720610062724429506135390474988295449477208271210385074258752491239076591290269676067354475080219212548371601499477564333146720598721325494072579547978837066217046066934449185775755942503529608644569134214441707886087651078853797316045855052181509732699104236234678039873512740607664589975110902865856149067383629298798413549543304709469022038818711816543572680582472058580739592011091960992684913456195646879369406309409774074938766474012307813958400490830424320923385472445199606411562062279160578720207991705386348002499723151384859810794946015951134953348035997128717473617084214935439964726405241179342227064683207780344382486938449297240796982154212905065240943893674635846255182066752992209035304868342427833677155852527691774416386384498016672863662890204648027268979850884730839237299124217132952765690749618046978163127130690301828710545764713011881296976919761177332249672864087393745914414531001731930873206776341726283655223838558203097872874172571005884295744734759854644164778642635896993244356744780237587153723515752341626556350870770121488268055779229321003606282426755520450867823957460759757247162014343468399551177785596023102580828643317540461317239098038892100189911616772566773152034578808989791428773260296941522501197960864142765628384704890546655130322262678424486926796581017935543602414077056074098217411867082982546749659156361295404042802302546797469503067210694822442846498717168216382282250201787802677122746973615678509234491042150244522235419056821597674394601681855902215334340682524536439320645868003604883418739134719189333122264877476548501231960023937945112657611867608170949941193353391964569398488845487655796036591124346253593119626999129134903386370270496058453672065434356375268402625608382217358732797474596337210357890352754348949527667637591502152433083233299124111199915054293736659725296864033058999663252363354547157521690588943082049821335184758240321629387437854030415129613694721724203491552410910736423539893680948289173070778356842610999748888867686112387535319061587384132532565427497531173387738430098264350038407807685602531485368332364173867125613758901943307387225017482709615786712279523295369593299449307559590249466794034671833090469240861287453670887134752623038064232416528916838830708367285802200564803161017089995077772047827186375499948885721184954303392962451510981823731988448044882996796448619064146656660454722158702842161852812517479463062358769373410022459674778891486534454120512126545399432393795301827704038574497025590573226701793406255709384417493311045663328484475462067352441160546344495791364175592531571779772509197247520291715941988898559190234301183081590966758689051067034663546064671123755070864502534448306818567557270962681398394018415094206456151018990755401284064417992538126520141015140936307434870924794544968394227314576787527493650354512606156628795537043646102712361046589301683027188042806221785705141821217366346118937678124410581836227531725942259438538873690111668696961608839164869385865361795663324332620662381417772431527636835748545176752023458108064895219501544586655013956829420332433676518900227085258441036541797481091426741432237517837076644201085862157099953916824166086364272060702241794991222277845981257355885873731473482455774863025212156303496936003483265659854038639219076772403872780781757115652696526440557117482041882210794860560288065182336058211079743888938657675816347496211590970566928684595496414764916266160481295974840676710918840091686613273835706905854365702052208734773198600124538046941841993321621851977201454360624832663734347005535401001325817544450972434971634756997171142534618405603447378779156966799720702268502613134124023368969235480510394839867892631387121212201948978631390513504208192796023922361383655967683665074741041245353574591764311312767444430182441463015649755409302823242839165320575040532456930695507243355650572458087572314295050858736560862487558066171616171299623554101408303516099316525600620341376921915036847928302519855894882130261828514128745291297834534459093851049558627593084861259435320587352290715302594943887715048651285603925993522593766879161791728244517810515370759921330498096647569266451072074584640462924148950526040376532632815266430387045894420494283343906697424210295811982108264349866431115156381599879775359583739428155913008270257752717778072447202619767426659166179839865903897737929140616873492769397298348917602568229989510557131707881931794234873857129430844234973081545094130712020142157743101436759220152009097031973834608853832497620086544795154121875137085697541827260529175675295552640439102995388509100272644550645364761578363702928313580590941051198138407796578667906221289461253101198667666273934954604440572428257560860146097742765692451654618534599799554304988060740991721549711918348903400640025443758280854606734021899704782848683155182966327390198614938932041879149823849726159816042173440224926501686737522811161750149081413716513316398780402472599047011214856961316884299262173944381870442924101159515188653136726067581907218271667942529626810642794679370791488710209132612916579356005607228543729500380709758261560227050539901607337352059153376800035378989801701139576093282825849669933389860746042203752596188262536906664811716207477999227577767080124630465836879860891573184610173124930532345892024568533542921688023356162705680717866377464530770997967290987035401806236576939186267548781363043230829232439266157418617238886859381541035208678243842197460172510144482196123188268597513868719294077360377567497759996770348542752300007663325031470166545259396991107786393057285527564122958128921693739023854445930838633916611738484278115226032852772410523452952079587293283645041846829755794205260330078582599292540419866056237408116441555986661888477866292708416570840855037125938641273114615796667183831144767352055921993668438518622089988230326580493725951936130795086440465373427557208306894815362952883886410639511350944525861367863043551704227310347430559649392428680781409715189604386238023129878216077957860173214139055601369984084197066962815903308673076868268349878665568697557914054798143763994818814897004758857988944956277130774235269247485729522830533773410166402735427584564917356585082535637080147529444640506110374003638552145982274893097398452176690103429876588305148662286927859581252112076800661336898189530766812364334594855486428977710136506346832384305747570940211667070667113015320332935051720835788073297188127233564238531932645301727073554469329426098448457651886365313176720382600528272360609892453773279886846027531153003400909490747971858821248348355494602089151165465902064395453243306230184027904886596658929673476823001722740466208952160883177557606155872247246385079694610192132680356041788327390554542576571326866990275931174701562147335178495909401799413417054659122716760153490529154975610422546104671145410977899408959503627040367266924862284427511466878934448931915348094595822869931997284047275773251480698553012534252277845768288894090512940089630708937489040647321125085475287191749701009560926398637759607712427543091545820828348170309238143189602258048550466988201481181182257633787260840590250883469942323293941138068129337310629623710956578661047440505138566559733066026329679447740377814961547062827492728480013226851636945474205889780470660692187310007801290481543512211002637287754540485930865307624376175407485810713343605204314965082319349484628979451281150232359437436461437439345416251996862624330426894549980869006731421518107928663757348913703427279525896861893934382282016610374109231274205598907993618169899535108523823960860947850430455468504870846482244049714013388629679575559041860722776812884283152687197543757311802498198326435722227618904450223224711593932994171984376812967921922922027026149806821851491096331274491701256681231348624697081479951093553503116904277097272897120139271417547733785558645488484797620785831304512060260220291457171016746061623965141587584794295801242440120867952150904895087219741021889233343339218512661587192308745760572174689024862317608069408899960162833906129640913342169163531448720522567906514789324721495907605442813754654353742654132220745465726258844952226178850103083787950183090299186484962793525191020609071321276720447523306606307790862695759273376456339309189227655996119409695340052825622443753500180388383479597139017470053100188510635551086100131950082460049643405687081021224430218336443056173758640698070764314324392137148654043326005711879421252829547691931360842223064034391485220404558913061360205002668551273083220261386706299293725509618285531857337206678803822998952383179922508971081077188867170238276408947524875132329321150803151021895534268324696442963679061389370069478385228168709459885090361492278539138221140788779874851461259284974510321300310939869351902264427846756213955775417432208053005857939010112106915205057508269134520201378110242655211349710699059521156549669985331356165424524309599528697339721663808967384088393794267349131807606537075743016457750352569597887656571984613519704496572288454734447734045322775688361218521566658783670703677453604436409259031285509799042893823210330290137086334868611299279523059537173124105785379508450250209272034090862883376290745046328117039906782598464093609774060797000466292084756737375593668582001967135033502614734889019328381003919777555698429560247057534055996984175320198298740838698273376365705515034567783230367282338920414288983211430143380572681995714258695986238542799188882529398771997337669268817918183997713714889167224513325681308133469509184634516202123691523303018527596793047491912191494048539811085798233465645591140381809780608966413565270587113334175984882913132701398740249301535151369497617887986677248010072922231044564726290803250445754963144705943214205580732646519298069551384738368700393628610143643412721252707483646983124950214031950016970043669549618520541167753094297021395027929897352355050316432821431925315999882250996853979881417199074922195542294668396530387259059072982093033128258163361333303177282973168756261502641581385493226388824189433286855951566581231045629390112520409006795423625804036868364546497350799750409700018818759469072124505851706621763150609137496380089720926308590083107817705238865566133831347513087391071294488936662617589810690672600760539444842252704513669009566070851387630390860860289432248279554795637551881663947578667089508910088222326870901933058325774529003372754910430528858948857508355763315311724622460198954855147631336912307234339071151514696056056567449237946888845375769860616512082128591656642753862553424596589260445790217471626929339394338921509423442840704727026987464169584783462883597974728022877323059418707169283271296496305413699749404351282733703666912598659113242819964981900225128698660143190392705137402999850462132282701346932166348283885262236072427248493195544349887991714192919507815490862770817388555943658138982292729825324400639198945986448154247815240654030969690149557878710811154866211469843160003137457582979023509864339345964165676024326408564848820075129195978241170105101559280044249515304726534492511798597596508050823774890693314900026834130421588803961837569999567133160677774009945590439047581451171866975690365774477705311971950068828283783609397050581531812831548825062891566563754441109739966038552100033323325068473649668582433604888993584018222593348397840596742723937357663442333851089165506484289899424715005149752849774364997107784189744011138207991698529090455241985015852838366859471783259758593727133290773111402435468120367934701437458906217737939545584880397297427338180006126988157671902855974718759662584964959247295919359473305152128631089257439434315512090944589843416192239251179077387390811011321642666240900179434735743566534548147352920054087805304971593949878808740284054061507100235670600173930879301897813692955341051598919838457298210660445628093941632556396402792767386251919175271429103951737369489427961689808401622354198816864035409843795323398660897948608786231806101094703158894484096341263710171340755724937060823589251617814820840034528325828697248124947954246393483638434631691645790563678632029194910459589350959693187196049738878710308415572192897317474279818716928314331515603942753094449096754544742578654067587918956799115748838939879114842202237814280167777905605799250772311746694574447221244926617105181396758808831960226166782688625006043975504436797297568295307807331676167791002476390569164229018168264095074746019819479716347976230492077162676476430871563295543589448550281137752302633590173486343988726993193750630328543163434557174773608006972919012876747684429908528483228785813899723719320531761840650250603146756736532940660843154588816392447245290749286476444295982950265744379920887230845064191611751838841772198336310105767201491910926439705979326944934195759149093598750487316010358890204474598004804380619743122811917022770170604180068604006085202714073145500988430754263449432315098728381576260194364468266114953328493716790596780375955828079667889777915013093402415765682697878211820429681797960561552664967514964501401927162794311992445353946495375859910251030183039940264058459464846526472561416110880853995967840704637657370907469180098864778915615042833822133842437327455870614010935366682076951264287429988067171615165895991993608684785628421853995041633767439661601311745512080339114652268873212558941961988457560254145687196314408668044251944435304739003310640893036314700233443469625678567232259588580996628010233170652548333538629723488478492634354689575103797689427751097476712986605938831186827048331281595921859235592768659773111749902537311236221830150979588839286079248096071232732279673784134347657470993912673662981393938440755235046757976211172790506713749945553856440794829766613275034028953149277157284684342980335383943068333876690439552704958341864644279365948183281959241990943001526186465389188225630211638402284786323579365735780922667892847457918478021000928973582835465355933873156153548717293487369198353695026877979980336509962433897189637110560535351605881242676563501832619149687282904760658745422579566050113936745221809177997523415262975215811308243160459274735496561066773716395415398468498311494633154879764096835802756384312396148261095499915161819377059490490871600223677817981996256335554134334863436266559137096467182878254064107712959130948931118069748810421179190450365140790002943820062282455203423957210507578360280843516485146893339103505848856173042709135083226265895641136064577876016604988858564036970453856605521472303961683342627077077052226098080502972553690967244118728936247287712482748575387860521409790627424118735913828022712570985943635054691912441468443860624608623740911191685453634264223758612809160812308608867355565328795392978774271866886449882857646034812652718221506737772630807897937719314473058343009948395387003772210749156812130726606009181310053236578492603307347301674006877083622158148248424599504414061158348305229342461180978516937512906216346914578164012083468369200853259349528933324745488755089759228949164561419375871937173963032467596867294436696558289025009623560377517561274356690787276237660174905498815204956972466395471541927554310459373226796233695988129639034783184733294499821604210837660773899100160817716638240881581481287248564901949641731997619828893921899085199363476186602856246586265068632213903107417865461377312031820069340520303614226902237009321385382439355577488767221264565274145408605779526138260964343499594354969039000262198286811258054949032620546936253784069716911731433220155035368576406246254373022837407814132804660702912284629520287684139273925819623618883840461306800085300491856782384960113053263190271427036106626538811130691016589824869348019090052389095269849424524411506096612354102255874252851175302207937532470771168411078025964709969473146746187598381505947550283647277649536440508225078176934023021402863670001160855665547775019554100884863035203019255729157234764836814682899665716496025215052262476308549339089988241430055992639043887188807480742357311200976848477006967206616857388972273179908596683985690888042202526039139119880845107183458729010350171054471028260929900595583898665742727309351798346229503348210362600264204152056996463222147356959956135874938643132595835633855772044818344732915957588673064679340820220967240817092258328630674570897854486620164966555001863203112840986055519483003227982201214673701954963166988317610482470650302789934169470553846966864413370747608783952171548530732970444476554339017813402625210726838395441162015413693982470025445582790804223981050548849372653223262678009596968714117309833481809434747086830101132192175209347826461933314630411941684336056429445924300060351801874569131194299279665070617737763422774579918410370191534692274141556355731308855513110204380669930267133177342373894564327291921057964680831396650691620093809107201267812848052097538474831069539048660314916812348165728914692933759727896341594699717666758852983462857290257645303408932180169384876773811819739352293893712396569636249859924240420365429864713718039580295939982526526981170076264394122626851439775666461171715472410538342615028741411365171360301509213903126625932538057272425798535157270369395612842399002026955053649484599694870492266452606539708478318575295101531799616287705918037099567353436574036430352719294617991472028099508336618625568724663141700898710571671603333080791197048729610064176382541801253736816500304786912440065211487203620486394272832014347173532440365475964897783624880964248592159191507409635235704998654947202143100441824273104789845583095357707892359457712417459965088228215292330779150485490066546242380035386788013182545615588164789126692796888306721178004899685351977998205061982146484096791953215355095808643042794577778615047171919153717286254315598165332748396220443913474384298422605205202272591458912966186445245494670109764901162617402921778777170402477296793473816475144113507199203566457440925150913189481143880422305717408370445446300092931571297481058952899578488536847428331429687148146182051566260091958613041979621661544834315211745930341196798016590632436329732110774522951114189511208699971196477621792577597874287139081979343477431263605128014799945177105541986853461045171200998399972805339772886677010328855637155665980873717448464174485594405558674132247149214249905163358423743185584239929073800762577083263524253234611351605590342598673960780905606699458257412363010713132133876744845970323591465285900964677610926985136098983468870960151610520708271168138727258084366752424870167204858604984497653514330686651435578443383182369551653721135724350014217482614728603472473965745205982219293403965187517706221887813627097813377558342568000576428618853064986806215012755528304999461170791778640917036869719474973273867365545202775746753645027546630756337997117279849568140408358871156228394557761605299517192202336055661324575555580485411624958227711938893150513157451217291760794030357541710851959200700812374254017284202073170681725464995349371163981234732966015141696782513482383139269578102664681353894460511207636329005246318858543785068741512722033131343735553792407962199795234388744910730240391006861669289697515207099351075490909101137174001051200157373743676263528028167854591725870976728856604845962652457378071565784921707631315012521926818874692018209883650757834192558192123913090635316551822395038224604660577973653096045632534393511932705267640811073589917770712328329676111751668377158346910360912096045189128588599875638604902801106034053914469057049320504232047043911290192668724088581536058456182920747510670917242745166548015044747533371768521176673230779286974068733087470083912402202247956635017656561523820177563603594831313213911006669116547421647050279707802420240130157844715091391163317585914825583751220063778000919349918108611570989528949946535877682268284698678380934768426967038337048395548589718483400169310121647987936129768778735534809333185432072621146990000775296854215444186470865744819731499130798999244952046695773148490381482944092659318188294109600748513696469511142955727587092385075096941844612564101860348244131063935239005689139925964822160351674288064477570813672468550986661348681398958396442594363727140179025912868601303759712919378957110322727896177588502544560279692418495414057707240909315170948223896515564093020672020853897918206064845752946721473925723910486822143755730605014957498569207569658427778861246224645065931770939949781406839161123492082403639215581816808104568875436476600925884020609732426146745586945290033140893679410805528023097196390009531043870147288820467020038127527429270714678666433916291681508902796238147249362357955676853890651639337817637387489361415755422472816976069574418031870974046615889504460231335896583294202042778692705215414405439250697317598611304705468857540406370424712171817786929163229876507008575119619433036321752032609212919105068714941426183035892417653432837591678412931381346615517239552603791874510783944123541822792101811011050593491220631760075977363453473317688955972631604713313115408871331209286194151748519296360340573534011131952795537796069619946440188639830920661434832906217855136569857696202231248378198062016977914155298884066853890532100391407349099838487922196288178925914897737884062351033040753827701049535370049595681046525270322477984201434281670595036755718078338228383777931667270213664014625420030386256578789459803267104824078004752404952676096994942467294299581339717843811001815011296779727793497168228960577681942433448037549297176789956320203048336547142971856424512669816048787024600065489357027960815125695697179046791990850404839196013745376221953950715604101606922433314872197456869791772038039410569742228365229732316846660129030346267581598749778285706959078487247679457553713344048992159052858515070243645758385462829497346300691182261495111879240012206209161581915426404912100482820312166713760083956742599165211906347949919027665285054938941613042601292115579789051978373968594993577677587759674993492903765836454084836260641572588738580823107635109526699499772147319923170176111117165334986323507172119770726127895184426265848928416184211682004448644409172109636484443545865429384771238375451783960191733813041871664043249758228789033856775584808184882386230736610284674725296513766587678654677013402132787641164500832903468005144783130426905838693041332948798651971215278761813781977049341985779800744757979137159230167236077321726224876315213506814631444822092178381892689860024291285867480740952937549107930535246158523868828162241190677008849418838254157256579518147724500121633140886179771109988645382339241451276467105692738019031872178761477834435978142226982152230415252573582368218976841314659388620819042706172485662857115139022969929868902101695988827704452583009351526824152574914823327963109458325100203662162589633640169562244346888117178109922411995272015924588892464382934361602220588456556640897313363810828934249755143958858747721489997456528147436602976962983967037392584934398143878806764737770221875739104565974057964815576626129921490054770945236880850531483351769938762293880566534907027391603884651546117460511510441083056243253410086780012984792169232504803599552834443836257561260386859694539635156028033624686262889810982919523936766492086814554740799339064303810396089492765123180302963974274192062135145260069426995018106479498427927309919164110022328369918987924264310726817953325161759253556512696536603017915264869774945989238645509501309632108750459119351111228450826081517709234518424016726465759152390467670240757376298846567270352592487127540118921204825551253602172920756431766295491727959199705604044488491183270833457779280356811440002106554389218369742007538420141255403093315941928704408113463609034793691590905483328847354865108221769936900315705254763322721048185211293717687007778860949728730486376958137551498558633966350019211023624280166056236410559427887544859071991346398403882429303567019829206310430182348096250731221746915986308193315010294585923100643599272658110306818134889937582402967421245786795797282313631828217702332767475385422464418280814162143546529006415933704422628469042722411305299444184326398256813428259393154521503628873999868006220854708696629549733465634813548543209818314964205179056244672924325060522747541457789523725464352835202316026508899263201315505907083995701408956210167171227511304984478287185164214949992936002601058404717857970324524316587187250962968449841285106064565883433951085167645736187519866379543573120094805456053095201479607412026780494372266252407164375941198234489286121770502738319034489345320379362756285202681813745999974339200029289549322262052037312453828342972830191563697155659550788957111238389815076566921850725312093130871863979784345920520951991669508432107533397160158930795506597453960109668382189327789786220981044207213121628759087866369057730588735706681331258931657599764549753397385834273436122390421490892710235524068756838201537313152920173194151532588802912301160893510040221841868409771198195953670571624352654286510390464299401455604959925298796393664087165186487598107868591132130643421382557064786377504671904097791152148948902294556172414583951505362122722432360871239874731281141658069424862438054389392556581727850706482429392786632200573084283521027308711462691157846816264284815692153807139110328475022520178635393525474171011698276948213218067643127781537491037462957944633452183935439508039281648745674841144609426098681412142419074896070740613581326745776810414136614081120672243090397247012579231115626693573955924133780937895245010509955877031581946909138724649587930835130578858854547537279386365756243959742080181346646901120223024627626287040935842490600307906223593518525723659075344556922478823134299452999512695032431428897869688752093769606326260605160208641787756105726696998170146015817818841238192309801109086470014200495796586942710956782350299361481313243313749545537463696723858683291509215549331288507977133766434106755606396070530687061853251449642154623115542721751302873994228629946440297420451040745426198727368353237428095482144593143078228052262369050690548560448488691875599899491516918304732067367725591518206713761243918606921497683108296485101363172437252410710061612745573618175015754748170519456729322590467624814714656569493735318114692330280193864001616502010693632019282264847155748557768026296078753109651032411851948733805281026725201990730984909465799939148086179969863561023342616228891368152347691982870196366454122446872788291256870051133211412444816672946229401436866337428833045204792506082663288321754693057148579231896839814232476136916200141199185417903895419359026185896250298106801702051119205839187705660909818774998472955290287058495163964780871243936176197618593612702349283188188733947383452103767866737612199172392301867811431340944483700418541656856144751369633430664081422637626404564185011976695480844206530715766729077315758287452741437228722409411550620055419708011915551465712453504833864054329395497092409831830881620054875180224879568033997772126850342183508473055221747894328415180926375415734967539048481850892198281160172635005066391569758457148657490847795210324917642971949290767795463913007283058228891503947076554840811164764872557676241590031513817752309107528455000011051741396361258994187256453573841471520208915844387934579674381583914910466256431485607425215411893961586949273888063519763936675883153179470365676147310246703156684382625800612931503888348331969176176799159843701489819405760221418932487346165400838490808286193997288850161244942715768321861659631376195351328372168615074295948739226462175131443056708936162595675716153784570904952620756123892840018018742006379446537150885887273936152645940944488774524761927971463831391984838144517249877185833202243740417178835576185274494141536598309940832745844916387846727215286062132370451506919069090648442550409476237460208354600115390087570523850673419081103003429468837340316931009543434637193152629244251110563092382188066003573834524627856737850750896351973694229435433871502166020320734892870790502966268049183439071192913513133492536861697601240789106342912641827293632499757474178093059258595071561320559552510571732844673420025819045527073679665112352645251478958469962116415176700699377965018129780175037317883029652126524598670935289244126723054144151150561926280899385358050138273360932119509570673288063656979813160088072185515370202741457326131228294590598843121503072519724682929839821846296681350520864224554386673141695872376252141454613216577458437454174663606846855367986055583014989793305309593615027038625829512478545282054000286739495789121767265101555703673012756566801284225115737841335396063690919231978372101970360928505667028643917258576093672722101709838436505670898294119145478114445034832024841550267807882924830600824442431521595081409929547629131766429900559403184051583933753167903845578420476052295284553785118469055821105489678775298381129947814617499039450821552722344247662092527377259050898906557064113824766163030214353573266042260589236727148681434820170499249769129369477899903779727926393903785285992718609438044925104256674076411067752759419591162930076116459423684851728697504512918273624453291929768501205700881140795404433137388947690557988308295799372568288631486749161520704175052663716240716685449416535482552263091534227754336896798126364506078189858950592128242999609757121841105397683254584641011741150191766990287286080772319024037892098905412619674411338297655163605609669847922860545391077358503245746346895297271070287351601523514069962551142057612506164231907250909078263217600704418687376114368210914505428957464352641355737134526104811300089821600843280828420984774031506331620199614647244687698464302384248837860849015987897807048768584447808552845947959301221419075343919328384019431854796971388513920807629566532277730949137392333842050861851474270769158995062598960038281449362804767948912322995435846516584370514470712230716748962718435249392140255014639609730644422906868482162969038974597906171267116024960637073831830367100232352745781778931900456894200773642953877898627341685252812684472565646256989114110696570265718012945494443302057038917629967227642934298564148557666966229557870754346649221684346453423499549488433343148985542542625537212512130974249089372393197474367801659419184022163547931225624792973034374163952159646056283355505495587908619356091449478021820728961420872520030354618974167658873753289044478595350634296903846390098900837871289724191809164970095518135487647748838470705584027904396627529660713177985215779534810213625133420128561952876461451092624959398749130209648354132328137192028873493123210173183527282577485672640270059726844833033000335582336612151451306756338593930080062043533175898632490111770564014944683719243188952467418469465793056910698335191631409235065025820508545170154671948372833553525725991464264383160621413696652899849298436487571341051224230999575741975585905156399045233752281705907686245334193931683208860509708073804681137004094257265412538546179326319919922812104104473547226772701400067274757470065179178006811293268846689718230169803545935047625053343549316356009061914392787473523488360839985784898049581367692349420627032798338765193260436471938829885927232868574903692377702196237704960959880459680010518275799000061889981558389962299727072513728534211215097671036318723525367251629446227341394622993360438384590471503515551283541480482111379837058076219142880181331360939195317504872206683768670151625671066226033083261847387911568578924766251956127449689782542377347550233199182135642208713302103789605450272792938590532158729247677701593464873202298417200954225313967176803949808247897175362048672119419415773932775882068043471873635013499043894109552377698588747357650034942751621860012080476793490755700951488455933207975135488021804318967550569249321389058209324545647305712017591051917811399674134870195943633413850741769626538580394583010559231999496125878885685597588045387317830480562494629701388904045417454788120937353984056389049425791200583793846537633217240299191844617753876868215053600208441240798349517874512625171677409318685968653396635786161474235030558103541543088650335136939437339577056032180674287763191715446313751814288254326764750353855660315481528900330048803592485317760570180040629783934716489686077868842871140319371536873286755130955747958715100316284060853503136564352904876248047729946439779082780378567522428393537001865474698271104151434946697410237455230460974388890282258710207653704969222715117394449304162228650583566610211790085186226076738992545293436474625830026650365970389696502149521981475660589150660855241497371035407814003225039249992896981565536014483510665363012142105052804761309443732449031557078807114920842085630730401410686292627249656913261265332533101506677572300880167021346370118399588396980494557178487774799283724487442887399158530588975375987091846294433326425607639629834725300271665840262216859189335515549113630292109451211517464206049200721917259696555300730003474294901675507820266909468400830122069104068735234044457388120722275677849332839393394020187216359306516081444350119860909599473083886169110026553172933466903414519399945704243527301929378605678706275076091399085923252868846131228287947033534744070172632798854682432855379973288070419245314171964319275545606634718154335164910987916558781606679921078695739944398938425024401831574489749914537316081585123695973932219019372778926285835365305588791658279789959736367290211315693175613653622498919261632720784150066945613493749767606285613125100530793809300406701603201289646336722291998693421606282744301711580158352840367595880751880495184098086911744202141867569147557445575739458082825027878810796874060510371481613700725390385696650850733452084930369081679938343268928648749327442667754173954425300308050943174083756295872875975766765828705171601970730436221835117430311000217008012396611207487164070089349737073048297148006650195845265687244318985433551333311887897360035125203309743859285921740663208990358440624749445094588105153805970353901849991956088119448156841479598062917313938167006643702207651398203721656631783783223835859556736345403621383146044748524230289080247845589128603534122994944771359635377182469735388629008766423353036387414418231832867630459335993356217331874941759208017376602504775308526796141659286844996193833189316618230416870942675549079298456862358065129193743901579652023462305174345486904275970080164262021758249145935293617397371360313809208775339182505905145358185452600907534627048320401894010223901934127092464304319797216398132811361426826431925274229329490860570768970741349455890020270668454784624310434932082838074565653514725469259312491099028025537523056269366314943708077382107857325561660314281255684333812361154476876974856513316642294492560885984353058886421184681145635023106124039090284233744687706448945468951598871395415698077322361394482691511348899706752746629215758992342422619067464597518193966784273531847512133381828690568893849052033148578387911734518325158653794719893041782120991931787350758100797414173020748462867886688617567364312833214036138911064772534568176531521199128824027737335095109667198962210962472327987395953082139337256426133867617320847561752984495454971282927063156273656423314367817100500018468384308277740770286289897801292966089723609991751508576454270486770082652689454235416758317975260430904808184530359974369408003977528078927656290930282764922560538703693574380676393270658039427592339719350064819233315660167498876400116553212229929314874643078610835170648257748398978645299195235224486977492250370352993618335069936310941710402997719314065418722466129359257657601360097960457769449424371366279629068927449560257824461162758026451761785736759948882749610186190875642294599142206198708332484711363072291236039798027969026517755009851281354864684421418219972833384759376933990173476936250309781547772059039734177215035558300896258217600401907973692766969629328229285642952746687611935928636056090270776779687549594909485539395945789320512541707765870235023183631649432054828759106492323443235127783032118796380137075202592819092745279223499187128337152450803941545570691115595066739074531232859166523588456401131296843827382837553478559084087073452712515273497553499117013248257424033684492113607965206388768831554403771154178471197491941618816075226288494540478071496570669941452838317004550901540152199239092297265610957881233300402469806707300004416814225993670012319362692516738038545596591962638854425145811295031400001410756024858455650519869531784362810811127792266538519425973109694297354652968868024435274089383919273381845371694430921245842493259570976602451923189291702440420723396630215537163469637495144332131455100877730569629230667530446192337968837298369814072323078619017639478188686226689720903689298335765698421215658849901336761415670429373330209603593343488745110050361195070544652902288046811079812063154945586106760077653489924406579311116090071211381248528788742158929039644128296437669895443058459252091727060937549330765038007059655328598633379647935794113900920345231081290220077618552610589500873306062096275594195626435089690793236313576031486145356851941713464994379508736992143462173704598814503096039736199230546285675593647127993662138048106149236619203620641230971781075099902482214242003969316405893814499535822436585770837936938282975354871963767828879933052978699410260221901209272485848109257288716373807488048029352079646079713844362637293311001803132180330646849370248590090241319507210443629096831868384017720072243118882603738369731225208164323051781866773270077486621571225438419961394991574836114267492998934077768646798622602356508210776642436381580133491602802947875317184286863356735452312946559519376123232544855066476294145644426847068514569797265960297943232751172895292977140360351000819464477070682483469376090381894815063306730402936837492577511246681080773461062491296594139004417687450795038436171848494436446469471681300303858560357470608062239054780244298532137773799989119333048274539755205140339210901183053375868794885942824190762698123564733863487242688340577707964271584279725880579658473756697719362943302956813019522909169640720291663367437938667450986010670049029703643146584488433561402311811613191419967940156540679667800990919555553478718493693957235717507620824118925813446457424496279995106877227872602333895824237838851297824114343674508158392209647065414686692372412997476443137828536281879421333415348874257852948550804153057984782829010226427021563618421490153942837134956407738175220097638984200694782086357785865332184558949707465884697937346161867226107858339432702038370420456630793770451531914261835583432793393108352910164882450138262836711545052200674164023996579240319049021872139740180296249749905954091487971380269144081256339072964691415567324227104155439405390469508314150101318898202482688445929314894575271697314494055501928581503106245458834638466440826984590038219769747628966543151207053732382599878771297314282992693064480291049630513969703118494047999822384254922715588685077115011911013197647947189457308128294193041081905216338649514912403163052347948891520695501274469133527715831355120139411519567388275161297374506311051128912049111210963973469719097179108628139972959450755312655618070107504159887519289537006810047539522930533970210121899465015064755102372661209940229462439012353384259729163173646338097437242803326702158860127168438599321771093298355055952658647920446426011054931661942684101406853996031372382357297775792320179825394277288921087168503083162029457552444001357166665020454073114753663357526814399100291793348478387257692992843894488578718286309577557573089142657814112720077600340272981209048572744289304126144707556443920142579965320828421010317943179033271334611346460667903213087406988766072261063260693919229935865600942743458280647426518489047789283143891545777224919332441244611860314391641062393780849050306089832533656929649991835018847180595951909939427969481013617610777941545659767960605494749963414116623706044776511738771626076229972131079033212459548166593291786849276814841458501827805441991532166735544405218124274627582368729627051876911931558006672903523735452832123215904932719596706852239989034059961775013220750196698528101715509926807505816646382326231679315893099357012289062243884340313200526486114862437982759756211186422087184738021878144942197603099060477472557770243480498865600656139965836633001944899483968631506450978669140436335361590530008537919723432900254503883454147834039022738471785673905319118319052176159481090320640447545198109666531087906115346089923119443995580452003864050153475190425228704422193938342093966287187083270375857350071220002894292086982477198113086519587551867345191685805429078485992379262495251024951221572994986596150231661337275663900278984894308835060050038189340997805464739575947010469073311319188689214199723766343483686328464392105075725837074273478211565154323743374908202633913999109019096445889993094864573723773513909229509526665864371107973319863011014825574645486751906263395712948170201014952844311619042598392095366607054172169104197129589572918585063746037677644410946234407116788629181069614394132775279705843707587880634251936516913789839555193663879902953420287088346340800055889291057504791308263563664298193629800340181449779331851600269687948586094710688003578762269029217768453649873661569464576596571389322127352498124679271083119149881939269140466065746941550460031626900356789538906807754574072328579991378253627064692263730650080626441090769632123902947929504428108099065563275590747890186055231552150485805542873325487615489460028315560893471243720804705259887576651619516366010518927965090209989643900473568125352231003557394766588525250419643722346207548134103922716949074159332330431278913503570264128235197952938402645648416092515986179127315653755007498009442955182255564664765014301682904013696642005698568781548561336442815198574935752035939717398952362703353159365820288788260505306351818961874105816375552015101300628144757551195080446138459165165185569980129111217378628191814956424715426181332477683376123586170948674009156865936702346099764908097220500757461270803577930476728398049783214690155579889667427816554883073312526238479325351204713829480816968775225558158546978991429501466068033036008382562917731207032867816139306813077118937188278020155985079722097431194599063135360473712603948194618940192678230388070710603446623442805961290532469893094918376012699620219043501268169840201280803616235162599245138111208334862657769704022169356217862273898285529396724664061708467252015786190570722030778058694669583222167846507586458807788626859097698611932690386333187603217261016664357655812417886201563487781794629063454620539567811008299985754192568355412645031028431090401607478990054417525899790987751451648379958598452408478543104029218714646166264595178283470562359307365688145699265303007262031775092770289045592399773603951378002626847088371830324010270002934200685307855483708647586057110456269765627911431654499743404380937538285111683124592418561997799894502039401565223850317381299085114047357882787285099067281614970960404022006310513403679723206383100200520165362825529174818918722044949558003287529416149548193732107500775842074752021645241946540178885638942285670936475541091337736977090210378482040022231220308837813116758009077695457941430787893505252813305073186210452737945452729194734328131706913563074119034690631304883084213330011906308730166848314186848711430621944953768255522425884604687610678264999386176605829681164998806574005868325638363619259890089282086479935973560269846436783607144694666127988256674202973928654112778531877872855041450835812600899037126820658712915678172460796315808265415019495221327026182168550969932312487966735123902204751929333390158141401684794554573331549493688707120676201441962148325155196895601979437181375546532585610022030788896105450587614497515451788794740122837446735445476679775878748811742151326343995923606786466039784582477697435187654156000009352282890438820780530153903158644271969088680273643519648295788825714125984790862770429228491410864938722352713781561069966688987058565537380050554994260036815349830628983426943246915548216978251154771716816459600602643148192987065597262496105263472023694634296562579123660719762546239307939486865377455237410218939464390293329305140923224390377891702165044226316426643840732083938886457814509585702215803917238636132756337024013641135738790837774250305351659475335113433394431429131224071746423075722953769823387790013812369991389205610706899123452526271567590766785755205366919199358850218993912904561567385837003150717340970747581594690049749068967008532863372741456070758527460304893914825421718012112699808804528373826087529961453859052441437302870849109769404221471630099775409502369491489373468660677000940890481508970560681091210318742165932323988652216539072802907349608669709280934420093168151407322838901078563546318925979673120382866247306516916728378974598835945534856536683193418719607028228356430379441799807160949194883326018877747220944848385807833000492275785216223428914415112992160158149258602804631822953027054653984818242966741056964654814395505821109966778122713173547025394122924591800091782174351994752814257458479334918313718886589621328867307989875225626808829003650189679097502111617267028886337288465318407749465220513281492870809696549169708974089488513130878192315328175853848674186075015289135919001169943768004696019467700663629728748673361707902077056410040665571910280206925986522118944912347975836898674504011656765952628562741561704244828652473632511839442388648219760690268315423060717641803835923323861108177771360428603325025380269251127004905103252707092620639788445187410451546705397928881815462599319512344432153901544916265654665791610509212072413337814385637766003332899654547604026215764065223677169276933348884455956448087989990584245721755133641383107803225677869988487460280190574585853938846632795296219478538309579459389563574255481036789185301202423177488571331671240229816109896953454216359916885875256715465130755791296446317374299677668600643214868730550334747148180501229705074283651437471458760325473796033703886853594151585566097384467379715368256124731430290675746967470630132332219750254447418788518638766414438836304718475766480690941059344296538453055536133757709696813886032599943484813591083406159026557537845755419488417889583958760135010206511148960217833252195223292079905228391028917027057098320117419776504223032490356867787172350279467681659748259495130226051371246646485775869109377936320532886750153042074018649403249942018730363005650133363544460993102565498371868446775116369022950749762582821708907456428249084386428100284824500765727362039073751522527911506422001893686524334258345216872127371240126138965069981587812210208938849553815766219440190841704792473375706878882804825983249787107974248408052700708892946876712457642964468972265080719541972640799895400907134551321373086232442329505738145015298684996911356825417953656640979454207464567834949343901045090491105350656606183013607964768145408019219137466207672248991232600522798564582366901903524662969031934425199079693431495600856100614446321446961064682087590040153530096091524003159165297993258803452108951461929619921819405683472444905939083536172736259074515702925317257034087154703507264155711867794152160757386832104319892721660760191469700376513416343987791442699504092264317046210773691130296669486106615217130062870976114634177513580265089922031016710689915161143907856981995449537667165434437724645456512540741796037121603743424381651282724645256029905960489669981331399351165991714347040854709298705611753412158247417852412749449695945444244540503067743572765623776285127202468906032315467018032035936257739876188152842633559705839660354809012310057866923871476259446248195543421648684995689813022357355989525979533035166855509641116451817609954141772234121675132504346263256675632676865985844380975593880792454309103793877574395282380157450557418005491866906049733718504627068773615192278299685978038615636330175569969501039655321097924587792899131027668204305679427700733514306969788407942656201660185433426759942825033773095143227848910182273519345982435240157600025579593260907445275234032916670728409161032854758324162700121625204688193893865211408555122006530222368975501423817649215884934688172714742540651906684294535286458396198554868275272107093831447925442766306797357165869866067824178734617793919532612278802645987162506220194786779732829863579326382987654933879819626724534624796257921501042269566098547827453507267075540729089163014035982199255283862377537797743546521544234196645893716401576045886444058434842870976521894025233967413340639324157541343276265671939773317402112890418879324123801844698322999572837380734315132126574343769342711489929747529642640466628169803223126243854073694469889136913936675310262526352820659366729277458199363013593087566572443362861134765644573178686414238528324569458257750722624523902300479856751620353375077972641007192066240274702458600892666020397241443603642764014779212788680642006165739366930737855739059038971663103146190151164477415793679512493647660632951452762488623812105678319983813255853067292137640959725232637158998712198738393541026649981063239684615638254339559518111584915803578961193642557786419843085673746651008680352556148909849494881832336869300015797564544519231663517484291036698948356095615982842747922342663116480208623751184623371365583274875088083002110423633188129041634469486337701535841048235879655030164816275147663972487375260741185757637973540528168913481290495834184675300871264108279356723673350939292708562451991326286286830939074032360912619424349154245191757952776307731826074436075928879218828018233331244328017316188445963367928551469103119647386015346572146254099475121053051606894055689953803319946677593720525803934153999213931125260960625808534728596936470174243632737582473238979777274013203996843802229936777263494598818885527553567931214176641983338327231777295086608536775338933269388555121380004422441062984202837564313126904600594524599883367396281977102553369454224172204212133700896232876223324466352497341734916280704123745901060170020527028440325881564664416306313679231335309531648842320161939726225663652574531979780466508495219877682279534893811279875206397537934252083194975582987319837048534114308119926096345047764972130031463869281996318046904119708300248337210113815048979976934184410309771349191620408546441600559418626550524039561590866935683724892524093445864903916333962857532115365156265209196510314867521676081663044824266721190612502162483753333438130894652273704807954065472960285846459006664264419122704214848604400017293410160801869647511545289290084512778668169139055873974671861917152039273051865182061868912721110564019227709610201969412293126464130605077244080852535452708165235995844527450570603018118771171333829798446811004217001524427421019432951952976351975650894912081291539145397014617851190164920219964636865686933580891140238697938415886764134356866454770262485139812862905869360320131865980643865924208816037955284300531609674225392576380004708456816235767842401535073006714524256691100768751953666045234727769879874364158420888425211276524119020150977862325187101020235663606457926227441615380982450945592982889655855217942857540270520914571055209188548107309703576199042400801456134109490013505736387788859055353063941468158235218137789505197301108194097522809228890755988373693401004820335550342111949048151985527720547645679152338082511436519478565399961556270205793496017365915261402133871639059565441109831671966752650850601738743228547016423877639563814759931583203490825498921960362468482590076400228160551653022886620907068867447060329934899709826699607428676933686759630050509041482878595913582723160487255592860743660996108237994917065036183931473656631391978504167907908700960905555460653587293360173254911717542818145888408864275806931971818368116605866904333399900903580850189526627238902768856829052701960686259405444867453153848442913951993948501018440237673956238594101946496098850535144666208677936284580385408801762821076574682769795395398467886249034018314239057659886444963706588040364631376042930816925931271748021919161759651765737844393434968682494816369212925502136832276206329941817240588998104070211933440794455652099666239279014010725866716295127008138075596498962691447131389182886380291171636043449771331720710397152787673006052660923089576408015012069260850940610955487839825546533626595487354811928930379300016151269066335831914251792849351426126121135868571057241006354370065877097448827612729864761485165283726353416778948715982729090905187407245804318265180159146630580994247468433826210851826761706621637450118618391841113288323591550878517488222470005873475364976711012276898329668260835661020055773218465179838325288069379290135103767849989236200674579648891486138989718371788731057309056768095508294292859717690320047471493159034683541032523534364528252342098124261680519264314129580373404285537788696401436431981666930466852607658311678925457321193851059203348404634185818388949865466318004060019183207483460990961835157567028107496836560076545543233396460559882108943312930842884110452857884146912912304887620833044369403426908812415513904396910698957856919677067253149825289946109362957851611774392394846312549700744191987595982004520972162399923073455327934395457355825435134093442808835587665681172086599776696617383500351178735421714519132857691866666945282933749731364753637231285845030245795099372423354182369429576864998873245014399140278550087622646742311106683335341194381688718620856031169541503613218073528258084381052111175837187300716267292468369860165877483301717443308158185124406611142809556453600120459541054015789952101208241667274555784498226916859107769203671387432833417613424427398976268852905010030955943739756754597642255304110358515838172802524844570437380686010276706781520110072657604485101131232781686023120974069805351316254686552617026194027444863753208561935822293932252375147299337518295568736519242085329834968467835485514342695238747022585596145680999550892331712762842349849802273261596602080980257885834023984131930880505023704439166221459362138297766430151820947492518607171344893069934163005862148983517198456884951186554964896262673477997937185017660646206750984343132670540158949629998858163622030579785462501424844688187402499055722323182970287974575091785533597984982774321343839951750808304240868351319574538925492070914932205007415928305658297883891516709722690874745555381884059930173950500706895539477166397788807623396175727773735565669948792765315340838161752054974596649350161783389858574045828600663908949820067713135220500596410313679414390554058673647663316688262002607299077012034040864361447771411541717456113890506325124721345759603168102572872933340573111276412619271126366922540862154461004356179319207176857348580678572276840407015439229147234318024908080521041104985463108817489192411636244678465935114212627980148577123278732922353137930612559145650108952799738979793588115037652386407597195346209752157839550279595358160020884614377661760654292044577964287727811140396711513856193740041337811699458845476500128068623423672722908254482220041685908612981274597104653415506303209702590436669859966980067711902850044343593914213029430856260012841948092191733049745939246963714326330035018155110979212121222734243392393852244872540586940765476059929239025530285350245789903773801721930132154461636789448148782451752881444054972266257803167928348759935191636079795217081736846040798297459984473407279210468485896026775212401285362741900268987168715897101092593018761164332089898469587487963343410173789009964307430762170524260013938596856854112407798195116794731215441862730266383391642818536934791666087953672654755342259238678838546553808279867407080070908673492480087570839227035796439551310843316185714594756885421880254105006844966126120471191235908668584502047922721234598891265752991218308451525913588873175081259238443780384967208286923270922183188548131559054557739585363864473278240616609437894617691639465320240749390115020896778096114193432621723741202300425463373960877932301252568681389354673823941484097506676827631117678640894230116969703792361146864351451053296272537930127440995989084654141292231789257045637934193096635098426362910692983271186220534910953951846050122372718620516464462518386410528975021189464555709969977841358523689975656194997990057601372251268854017995025471368417117108780348863971840590743330373753740610886752109473851345206383737538322554106760166022789172294732556350570187967431170767135497665166428714674675712432825852150290881721057464513612727292363005184049122899727692871182989910821901861822978440701773717965535160422680276393035725041540745167446289415852124080932326752943606110931389106913868549098834542300622800412748936375080897566093640902788773593082050412132818037142582666869205556824528378904627214146185387511134202110114684207277854721804383300669430893344459856872927335739221877098026786321606882205070117821926030450577557817708015674020611079307495777501051580162561115287032220207950770830637146437959543486741316838552505849045421750315616291274142180532465186799317153949306083752272671636091004025905770712814554047809284597550298508535924203756796125577274300825565511311101579813340065951455356764330717496776719519511468016993955215343372946673125155563908871520199965518816315947857419297936866907157857157656537968318820778221270733440534268392520852683147429691957627540122451361574227498259030753340611172313851200396616820042736129658721049472850808756733716893198960287342181254207191266118158140258163107184785364547231435022832873084548475278483984829418818557906780861774175101436978550722567953273012494628029981959732545687683371612682514133174724260878645509299636322135027330564693668833260276804043697536978344089115607684556253997150327474085788460627156998391848967218781558792570850586308822166455016999760487119881298757037666562461608092707516194807869337410366460715900961000148345584783365026074159747694752408331074739185925348043880601838679274109245941332999583159198738601086211559656469294072171925158687900531177825966957817403263852972471574934204438327102745902283794395578277768842373620442774677979661310431474703117873432848129013946318862615009943269289889715152712743790370714417817116680446979647429556868183121460333808432937136413770613721749521082227140542634557423011469352906944735234888127348479409866257182460610959238860113132649572955190142100120433507241366365744679311688869793976519370888152006369065645361410893142423758900044666672374236854448495887446326795427557417614486805177032780838231079878104535647513540062813972575542889441767140834037069174435398648947505334871948662658561144270799545081294957832732925937528348826970946933382761808372365588802271815481344785208257120546527681461726708937911324812853000162306573465138169059484520326979847037860226053482228141607172235985964731175515007054299102990475268063668223339734325964822815902657856372583300975704331390467355472240158254131447811033435279191089968354963012747226196640959329216695504004418065572661032293649365546397548990235711397986448285344598631049835821643246121128944339800379269992379996855949193282005573320518136690617740811491903333516200855919090929177256537432941627397357913966679322057818974329365189446382418416908531408946485597001052055067739719675968204699571170747668931629090130965008630162262789815542230589932696086298115188054925174603277361558726427910252815116979699641087188963504020556128315940190591562364670637284768454641685759292156478620129999375022085797180776216856520473271103998539302756344091859404145308555131040975833366872567109725123887168383758725400075809256485630261492255453202930578998639102299846229287307048750513863196601596695715076703454184605514383493831800123237361856587174187757983196962665886551786292750397295466135965112233479487045917343700383355272993244663310439108591889396742880561555935158407600853830033659611308802312948517938394131670340588110979049563150040199211700189517999613813543579921435671420571717991538443562071426955609918999780453194164082425706617907708586167434679536179033035696900959104438037897636040477666191300087166226969076777922553895550607171959860185871429952522548036693028144628178808613662981971041112396375678727502399923939692645588247839770218475980677108483395249945008302824919202773715794458269704027936142967813448014385083303316536838613159514278389777329466297693682802153221847121168044340597083544667032525585945725352765968548179898760380199898144519047799757358274404727375671590290638047085100787061639586991971671927480251267928512361996440056775987393099637070486160940597350443650902365349679324276112493796559055275264734659020819300713736847973162670207380080734070015509843893735520794467354504906651506942685813642475225703440819494352542799642695664213797820078623270760829619028751149832564448807461960843203679861199771094266979701803227379637552354629259957898408990719838102614257762283976575356241869893539848613391934544435304583413787839950509869039900969351555852899701599434599405536877400076738653603642270011186519468893201527894947795236565962526316958184921209165428500754241298800753230987223346756645795281723294107134064100016921473884075599630888087418317333879018453985721866065879283213617399315924114291075443595317256671628299982259822732762012529322500702349206147531684980010860576291060121545594111530378740696346690073768859486622621718087740929172229980131571929128285241417990641287833464000504015249149712586760770684994028917653522645420133335367611749714850190460357314462170003769186889407166881843792465832591090324071867269770221333514520952364070511213331325323330878242177364854358693506165546988476605075063325431696828411034801710179814391928691508642130005671381839526450800546517275269392904598652838192930692653826986735626217673795248267902072628641148977752512687522693103625955467696182774150377612846659969111100772944599485773324093180560081459908377870976134236673830465016698273530971054921791394384012345698591417530173274233239453695630561545578919105949487362981624192302413094259566168543261983940014357310190441203644970212616490574000035988309789940650187759568377921508981273625834550568566044307779312446948861833421243976685604924761515036621389105601979582863073724768566172083223633531690468827512178784473552417178418886864271197206186248221961160139182297552143182149249610916351535809911220988610539599189062585117752264130086260657263163500952557043826131513836039495416517492047513755293809003905932717412509499685268395227783788211113691945683385114726807219679233697059513415995786377468977150580877105915646283104417861217301712388534408596371428940263952124471475443115856367292845553532607122999058748463316991259116174219432671766852206674827713051811690735254713486808504383148984908275745883507421854701673062172728780915676885095329208542796813323843236499312825940093228945290052903867061513743136589296954505313974155775545174001298334488721548737805872923848996599456625016526632469819341635632259747410338246182078505418672465710788757916572718152664419966321169716677308720710476904967965838942901404927930684574968706987427742403839626991658024179150595516395530859736155784775277774776950057696429050966821571446392973360109308474911904876548493207131140193296859499599146817519250853701775952279639920911185480798476664276361542740647672839119414234990834851846856765289983100018508106487473056279513337354764870284174271844278596689889173790468550914341536749814106443844153819498938828795785091902192133558131226931882980008808754544733811067856125708172637556668208332980150958185400785091901256197634210884897771335813950504541766393775948817549017398386545985240392918027494834177476061846533022326960578472463744390253032847632373161041568927001860499482413273367829876485656357902251831072512176862278403770865533484989500380094290534273442789136019412749005566070722332135649036831875811879386194199990206407352859113912953445488097122408984803181807890805282526043473084802647682848542919505257625658878008383459193616693811354911091811755826593176432899362124435704041710569944916327922777946903213435478917214389413682539552260826434338140830170183783146901775471601314174594763637864953459394291251988016198383940473018477689743047123346922761535213867508378763893166683280076026422356465456352932097686525388939987380217548127938496472554663835022814486050494964964064054888526086088323891006925803119572816323391354893993301488050129867609944954475740860361039241735339175637973020049840303634600651315534289494745325441948606943724108085381283559664431747002340929438814982622138871078746902620197119316948883378232049208408068805062850426885416496194659000321912867245932239843817197173282373925239621531575969570636447127498960187013306329836137224520867535120372691548229435218471280754818642025512012658092575831613972888390710033928736009585515498162020706312896260175231142241563300461105093660087861402608627263690232398532948657734840354917983567803540748775567921902470023980756184945817008570540542817675240932080518784914328135808336639036090972365426278212719255612676357902612111613330447219733504823449522214636428992995780614187885344946808026060651019539530620723785496953729162436685556024758256632104605410720977048541648496223990765863985276274679439972471449456745678744585963012591303870554105055551577252601429673240643789970274374555836911396161761527116332751161104401455114222466953197269297785775712125627255674798240098890208598148802356565868747738542659821416882773902348082599439875423953916742134599319882750586462579846691037972102375810763586749086818217698816798201941424119720996742351785259138118486533513565617436097805111909421913038723365256371447105758776032277343769859883994975159767372795434267927095588827699174242433337474283830573932604942463420399369032673999219003319885073288299642019113581866833473631300621278151961166909334394892457440298009081037470222391487242341722004862948946444386822677438295627434085906795108264393473637598148566353611585302254071371133762213415732740903847511893039869258692428487815273513290036805699466970178571108777989802678740123480072007507614270817798692686706206201412227686264501766293395456429327164607289848494283902864684775332483801183551265945410658697578977544740442892826589866957647958587199096383275343654416125227294690961326446278509970860621626288911815466852752505426488090369540122909218028973146357409140829330610702492452395026687015056228710029906620909836642471044239265491737367864304423111385200435590106075568495204624679242385864782822994172235591340054513962930741141725982409092214374836070271514825929167637669291510751990327757383440857200670456025772330707727000408746485580913404705651013720882298421438738272715378145266497534568629453462941406104370761117701245520812562126957613455669999919055245494680994756422108845503635731665180237056057820332991689463622574537951100486043311542349017183393166484909631311875370553770055606038485539790464908072036213337450480014005656246780402986351298150065938788737666029076522517226122758362611104581581692213755167776847931120720653724931857877159673320137420769199599468381456545393586354658421634629524337350006610058769979229131720816179421878181853670433223019519972020456813219850075838059343447401047223933914184657662585005728912042971020928721610350038924561437345817974166407394381615757640919555931166000501239736815156168698848712500682089090452800755681747191032861786793365957540775898117553160756336795193629955420335113068581896226256049357802366503134911593961318970748854860201074324120880443575291773556457159342551115989536680147263574125513503990903042275286427811484330842828353691853859002985556377138895051587475347334819794692934112727227705918713284746944429110166976229470598273202252408989064879203174452509523440156946966037738043959119050480425274799349266886109326010144604266333700248567635684285013970240648541675580969725990562124551299605484533011719277551260379713884799850617004012827003010894078055644113339973477467231262810118624507604369221845020385339722384206603150665444935490992487438440412094433511590357168420632782012059423844681305271860743227239393287121172456263487305072069414120243808186393666171037787156608977262640031564572228170431095151057786620691500646195589695593501706220312489739951397944327150358575189858486107226229251837398200933694294465671723984911940667429797516419822957567906558916111525973841366303085699967457358269183944081853691429610748425514785024778612644712030440460061618317058588174712196121534130749915582958366055279756973521689937546079094876111891798874497118778021861072436458239762283333806590020246128141785182842538714913844980869015090156155296703716736640788772712550972221883242318357408527402999646572678594262630652568948147088938034439457939693072318653451249602081267287314075829487889830807825198242921398395762896839848105914128419256201442720931698885630417286898143136683002202797723257469504949016371543277367763639300736203485038633456745938908261428860060184973374198282736073423596220682462559250627020225207073160605992110435785355959228476033355269471669962439824879288609445292884821279434071072908103185794358042613620688877295983119371518988942334441134877828892545939820884738540833029495752291798371054669647735046669887411777281098388427314715506089590998626541132247116946358661292288011410743560236843038459739785442468161753119489459853882905014935239951305652056063760058614152197533356954168674959087194504614407589339999405490839679633150139202999532609923046458918391886959011039176365005058226704764966008020166909001240271196235536147167022992524683044217566218361529359576384242549311950187633111660087567055746267641480648368024954069737790418895469286482771797757985557101089866674287391759725821953170839663655948826874345703657383987794107351147055557467582223163866417015997145523799228178468357768070700464689567226002621050864106757678139848802942627426916446806037875349051639233686860796110610060583670508303147663306750602699294776784528543174536064168774651499564131620052194648968671821136258463639310604936578647189796536115448622841445035148215020077828801226330457738292047599006316486824262255994700981399549863321773334704824954506839039090903396379471812041980417778071709212904252761009353305250997330685693991759865290943997993740922543082550594554001673501815352354466077070620839062277080805438574078420498308852103935514792938634544587692686020815832281998982761943725671152541233545173318141450794822239976213776296905304497412505514920648474099642938588966009076987199691460618472401765278735818272042990543061195474695638850018058909796553296431335720421146454232534069363642021672386407975914551122768612370303046601418321070306468683004911634699371006394016373439188458783246107845974403923873006115426851270507874931151678226383443026322342704899960463635485778615607223840310106248581966875722232080313549661442710273954766782260200545561315300012408872795711996116858598272970480395738989573490834278858309272988810904562417718434782319264609523907101067251738882784962898205296867418249713929609029635246762012089164465191788572123576866263911746312437152501242244124990697592150103440406669556355193973412543018565880362018324103341270122429994962528317882699224068587546269405289187624211045983739316454402100037365355346647823554827101307186296920423345744521493848170479336754709254852760185501627173984830495383628456077311094985504528260370810367164645763560412732927120786400687445536231210072275262761356756563894386613003844712711077948789486591422219569924895868983067702167605891028461011924146879564927209904110399561330482110177282430284787812154452860103251722478365213621951663491703007704105794754861675677129067512079032073268082679158910813118850170994871672367121787288454731530173773919990057092338469502762581153376478239744434336039006640152878339576658652040279330955103702920151335163936898697208852809333931076897798047902348971562043786484879799412336215995384872142402978239036714580658774671865068577238629272606400160589768325667465952212389256874961752344837414719960009238342081952073815204041621070351231391561681714320228031602671718514219736079979185078740050603551667606408623681820547425097269561124941373146408401383462513646487871006959031179953796373456312084496230914875142727030386341005052424133961504371876593817623945998329288313394839151473263417020839001802756914047635077656155692377737890119334889507125519977322288941392767354813505669664494946408933684773681200208229421481789449303365942916389635464003310189549549264831294685475255276024855325513721573668093831854370187540658397984728352675130084761100242807940612080473230564383272947878429252732149171473702770329203905747215711703014145840959657264925592273662178098634923328582576848297231430714876747740177074990062310807752461378440703878806524290853924855608781070123225667865268538459865544762523569736273363355398605904300113197709950275571886733661680247567672171396315609868708333432656673156200201278758235961827852223265433134662928198844454936296406145652935207897354281554200160959060469829886377894670581915176083473823472451814185073524817714471936851725509684726115409562236284393349652876587447018701955827018386725645818385648904928702474214274191026464824702610186651879627670546808489536296806294267088094849833185440531303311074677310551343883180037635919470754261492936358329614722414665099555877773503424040696403359727278946397407075142197155911729332328262336670205820855029449942065450310499447538526635366845848365272837897101095408596202714727275787276525642005205923821571420655218032418420866492820085045702229478902809346367336715397278165423204512003830238756213669310112178140929923672406125916068560315277140198951203430597197767092128194746483837485213296884335050158976468176460856305250852073328398985211230738508362189208721635307519515000307799273263690031916824795535704393738924721410565139087549655102591586180972189917737607800673493476259986202140501763811218729036037782924885509193533254545640010443318114119048793559284429784120878094982799564185787803492775086100897512674621737441545712567277609464022478659332200865411371087764235522772181426325860106487515601032413520802552874506115739598401968408742164682423058053380619971081415420290273000435673941163853914482517297172238998062837263957347959446379362039344752678895810338400968768534925672866490893154803369052941653384605689772975773621587725270390201791109014745804840109259293931124035526845224280492492427282295045927505910020659332814157201962838940374283159528841081835750735028023219073977517778206553269164032809665233812022401110250606899151871159199092985066562844077366162131784424502598400787488240194620755398354989738067939726491031612796112522746742441134878637248713826426484906704947535782786432833743043070360070895382130961375883858105044615144468123107221535741495830540456814321132319385514812187101590149253121947937743639430683687171630928260419288259750601087925424380438301569941902264940055072323854310205885090144822515019595067368415598378507621643433120247024494863302400154484077749910280006651295433973927331251298356052632823365103657594503608477158516616956580327259051452519968992496881009506017192391122284693554211489322346922659357715237817589421459915693168646488635990480939915807554498291196008956602693461028535188248839006236436539612115436805234148682386196706801251327218957334312585982678657426490200636177262040985622502208912252333130134328234183673587527479326322487352493262696393396653955886661381761403798503428913824577169966600964717015979326360145294980743908694872269087000471756821485513101514855246815784314743359327191490487335987930032098400887143449942805943179955293538513305329433343071718765002165622903542938721385847593841095548383145113970643775578977402623043880200354120435133631384612589511216090205602445494591177285819215766910366908718617531041245815436329369895517415809813180252077249561356507212435752109434575192715931887301449952937783807336822190895621224152603656018818008209562191335849519019596767143791552784634087297885207780876951715239853363285285704663031541005810594402219558590588405434334150646909388216209113175166669290974255992889637932211182827256812059092850607665448565180515608596403134700020301690371844749495987179205443699691834619947553466245636290866066121631156534258399527785052182492218412156439968792911643667509991884658667842466758214692532975181227129109190854303931489629300933947939300375419935031604122625530043282485059435969037795661870796250731959541833650179207079364909368400971107469482033366518249285313700452595080051672009832973284405968050344668690774482332486712078448351722980992482463829598386675921284810956077794607520869448938000518928794371216577267491646420065284296987507582525561418946173932205911771510721964945763452456389460237839952840077527328881927137316389742218791548050005815932405608183735931883706226119816608393283682724132841615066636877209921671107027850025446091728992581227536727255408589855541025295500012980877653078513896577922122712052283124395079807786841827280148428982440831022576963636165248895644357756146443959981408519673071522361067273350168031987431926223940775355444473934519226521257899570271041384693640763952818971938237538957819785847581127601493260698294632129236521939996517899650711584327959282042895935558349501969751684181436127913808474860406702487383540467931225176038696129890725896756989482057873114881684142682742659122936812153275640978683542637787317382326339017075306619376030805506925912626728696559186244972648364666668243450886868214950316077658142850537260150276899458260816480642896628691794499979348801371794007696871651815764522940515511496132983725858938097395253964070033671900086035323131379867658443091246174993899524226379156027222022522366159640187925903310484138472772025590070267696223681122374970265774564145008495289688557155314555369243223334261630255486479324005393764473206865590368629922956581250824804070608591562909586956291107634704302403279119111108283545893198129259469479098131175523151458642877736443616673994248803654747576695747725266438032417081574085862934798212523628749593314646592450766392674573365350333305770329960637944148898381751200584246996100050320413052499575386544368048275580684556231444823429970580894343123088915158136692404133725266183885477874999708004776652414241761221762728543801004621858231744834284952329004930020916224003457938379490648745973013422318703189342353621878954705836072015386570715911810496757573385544417346521058260859844572111075457148356205023758611432577294322556771429158663932373156172350021722646531953565871780800569843918267896225018038456095158454404771264129787924179313645852230321809226656906337444591285296276491652043025186068474040051048540104463899626283136342195304322303282307940523434475000092328468593394163273870003643857876883766870445531785723312962832979403992640726179473150129655588975103586785098812941357207878671993920329564576975849656030769546807706268377302032636883914656325722352836376534311584743600970630540230432717283452600146432983779945696183680108136498837506351799297442516001904383175897137284242600968133670080217808469189199643395981885957587323994931300997277212893119287795814797357810824059735387767655929967023027864227778724061559908840186076594398329561334862828494215165296138193290311858271702569652505413729554962961187231708531009679279177097027732798592494527982626598433369907065454910122601197212250876473387077450939374940228693528486127682475594968097261770571759053340718684032783788827582257240065610710657730470542068743423560157245820081685660382787630986230275985681614933059569705265515546902121276192408303791967498746550623477025320857958396313366402300949169011961448614345703926163599761952305071494099337367229050665907726824783418339504524289570460438928340467192742602417612177080942028890019538207971304620588278313911849694919381548166189444492564981064792462559339145675997307998239003273808916126648682565063831991459220285080524061200262792505774387356876450937691249332748608579856775471286844246658223660731665638261707743544351970392416298164811221398941647967513732149608456919395748248486418840074170211824256548542758504464182484957693540725559172769500098164372059981837303549632261158923371402973563459887806629169280103603800654892639928560170824528317765321538941402742611382883480853344163151282839985299376916880461093676582186114101535085350260656213599955721344273179652120091323992265554852214829189110689291057934238195534690445590448942383195198036008790406088547478230678780896493752659647275764228279930955591291728746816105585575206889585530547668917521580900797633760274581306618770428635195421107990388163554770829872719772931434299940194249185239839100912669141080694400658742590463792108063585118122377138271062765870345677385343026591241116487593356719514384828723095105950798669667340465844469116141737165027769250041769859368020655533300789071714805299918153905717784269946969672772535872410821973287299211178091914798892228460164580366804206343519785523766525587503256921448294084685749492600008637831747422454657171704372382340569109541199229694611671604965976418628965757537650815221706150471719396154873509896336911634774387735065440929194069039610225413465006548342479853452475323935341410761667571843990744589333134760793999803607464265462090493378455860470987283674659986273798119505235579060055218185013190502040076929653376817399304354794806851439842197516102842954289219664415803136215825432616899060426261586514192325626848488600621695937100155324861439624374686564474874397406542870690536868475376953510126540960993873420021958777390318548727941435301434844920790901613955179968666767947857707598352580312636905505664698288320709060024695196573383115608009588890645844896245701924128041159272454893674519493201673595665251782956910431257898630358772283475298563603847928496941851230100899731768109904402063815502561467817969718331701463377925768151114090505906668588992429987899400006619365362273088363341807403901817650082720067260991921537225733231580770975822732485702430185346956220330310490019706620467695468097880939840605301274951224738560938253492036169446044543098222375328425404953986887369960298426551850688475431572314145386474342383115844267025811412047507857651082341288375968474890536388750555282194667762557502452408076903302683471812370016910262720049548861579024013797392845795382864245850161293669440836486142224847982924588385173247577099178119633630515160996689095503285473519670301163365527923505588460447285264565609301115496466278424905040566183893346366323541456864077115902794657144397519894131448340737169103059239213392053604678000131190438794555643738522101194420046432804635176624300892625795404196609190614606895164731116756472347591874207343515062865241474872981103400005326015084953950490377676788979365846244105355180403624315762449724741908894408376005999204278522605316825098658143821133913215671358079791775657889985787336853620549732896440972087223641694128698662033262985746322791899276754892346495534140421645726330111342389185710089929321976052693270649564621911348145567948039286749975137450300065245474414641943900532356756816440038175554914361493818351855033158217278118082194900319449957543296758115232433864854399159877694195818789353732237254587408159352645106802222258403948688035840815419127659936569900618781356107060585867304060272376433912145738011234234154423955024266333559648006712014826482373323510369848301795341893780345685385574934219034364053178084202246403057545564690581785460103376846477938706774085568442694945738054390910484789178991592911401685244878530436687462840134198160208434867158267896920806841825000784607617352835175103180149984150896312983320727491606169597963036895441154683256984999158268414894447199874312074505605564213901086777380399435825411531637784182840911419230845755626199197169275871155673692193711751794904929819012612858826947901620204885204976039420268668074527252482899288177597255094849468467996953284360960685392936394479634388090908895086172271051673578353425623981258629464838580568143318024240386202298610881312543468804866690946067256887630499414436272239575366027819194402987485846312258870927225180688646773694547104768008886364846847673644446990239703086016947999846308978515071800359506641807536181691410204490045492093004853323062284409775926610718923929490584121253594746927561864889322423442880701155120707353825807129133373106638374447884682674388820018528271505002388010110020465593452198201668543748956068093494125893492748386396126444969566605033549772386331825681501425774536457167561628171107864792711702449493485491379499197819077148982936171322891764008158804070212728405288100332705033031079202347191138049471466089816145243936382173078278749665631575406841668907429314225639394395898444264461849592736585908622622325923599801733339336129901794628154465612501621316488570664220421698891633324797067172256946101357864146612460750757184466407784996704989945381188152921038581737217705686661489149889754536961510095185099421015151062994892017951045067449258941380310412646721194501455089195540385267964404365452043447273817133429605949081751618637958428789702003832946217062365917810133723422825122627995252217758780338352794892595628958577542070005104641971091542062235477949449641109901569244547918079513035058919952849230959730937537760550981307583118805741146833580843773543679719310682406211788683787566106743682302221512731828083485196129676958275640945884730431846402535097130110616136473254569907215994650273431567427132567801629250563110059945549221627548070362475420923328758322306201900786961055367990509947068414885950800390906559829774726457103047101699462485775409037958767369498970996277153720079689493263444713646665033726818532788449940869812435666215588344944546295347047436820120595978423191728118267288283040080840819411843287883208015765979093476852846256051972419050473248398573517069019572843794936566103718963156809214185648785077058493973415878840798838519679381325622815506197102573683455962336102187882793153043392461825682659390150970383878921677519380222778372382919620630703472900728655885798613070662057865598442609236368292957100037249203490771664579110370797081542430834768237941461147649590634543856525526467758730001822411469342574204689877552619635878444557192264598472448280130629139680925809011033818160939330810753227244989204386185578707182002538003244439434764691225284377796209446156343835561671095104096191083057772963326341676299895986923687901956879063750921621898428379626825159468776353273906111703287706345066896431924723533901426024709828298363203734165366754623137896727230537955589309863007287585042512348352415831024281910017950989489031820654295587848821155635864587135978841890867378725154819423936744999154184584860463667858378265525662922725750309396863876678168044322373297409105270066469916371247772031977986133871923808793601877152081178870961605292227011489683011786476867710812607365506197396016628822201543216149888458598855575018234209202599373855137258434405419783200816295010370242057298257097078968255701396537179958563732747659836767692807024180152469057339144036958561263802831891416473067240765112287576307179819935283456578924145581221080800809065670985581671867826805717256575900801899896589217117900764321298474591781377137991111226456778051429889296138686362238968866181836091712540158315404673435227394041300512295028658672035355367566617055299957155666798729957894262291950215466119104422541129599738543044202899828402136091521305396209130286315886036183720583814546596409589216849640478974779358271699149843130546955802118473864243659469815342413270729932431704528365749962558533709475761831491847754986516415674423746271994731627190750413046569232712333709566748410048480074012332236990761668993200946895508645394776908788496021045557136582825760918632192760890999543464890804889197013770852577212328312594965712474577394770375940394674098259082347828908397357040318711278560679006525230055534227408943863035066030997061950760353524567220102980192203314663653098837785928676386137064901836142924527831229566492285687501239839098168205044879746732960428156750555997077651658992234895435412238782141962271899530152477705008121200930287129185773861632148234389908353523728379611812196383757605592620288900105420925133630947570876741198125983078854657780864207896447780407690048205035859441926741129748419186695511369746110615456558163173554360631749624201848893000834142031009226303197715158927898033015830124102470538751056784266756619629358158614386445948792662323977467592716801723982975674921933682724050296780514331221086115982071905413109247713460514994715755305835122642837715413046470619453086275367162508249728539914377595933911316548116504897827599578353403086617254152121942415007100453734604571089957833623060262137091274226636643100913610458469732119906460365812159196220678584623874000145218168484847252556554707337834726537963020370082447580114956831224044105666541625699909508246950747560399506812488050355741991704970689647344024287485762949778056072899797834282735335315861148406854004376339942159979951072317221789857887840645019440660141731215393640714562519023476952412684166533224201933682933214160389005419720188877253454268707752678745621236266263792441886995568184373840408944281461327475995649767879341568372667016949331942001819332686287127994541394458881699432219086286539978355439119759372214087440471333521073111767836087552500859566366799438167947399886123809952285321438266991914072225949745209714887897182881396534207642780238845232301280897150615657840991276723649668736924643247444603053135938166791499304082859129588470808009335581220369055304989871858266657963667796931235387545273695718176314841380984326313636024590160855395788802437500118723676610700904431646787493458694991233909484538769725786784435691413442468021401127222471685194008191589794418485611739103252925182887047204526766647575165411431512612418773312714537292034361526240828103029327313555475307732409188778026241128739371073562456775027072761180687947131042005494603441092576330081629420047173657953357327855787476403801140715334855506172601306557920448094329509561315142761219244097021376635668632905348745235890594357143255959229318300670514624404149009263876934394441139023425161434853468128542391093283377939618292116296043968982960453028797967563660916073230211449885588034973096013856542509681360481786222879824344742172365901943653663965298122835047423753491374981245693034943199780123246348354967529877865221304038190959799788438806930180334794435671352519947901793133801013985123630485295440127501016271363296885999013700790438687269072921705489441050959672355445077541148795445535948937272048494505146340799192577939833471245440953527022006707021171137738559425784071577820656305171874956905953791487506231240768120512340298305666358144738089044696381559361541102407943053327838434344439131832489383819947612805746162125046197610628848466599788624903969218813375858112276782131636518002342977479311660819876754876374329840876184774656573657969708855711311547435536631274370048557764954857324340810001529223719182280827489961739856278645616398457117759143816429893480560722308067809030621778802985008390366027792725488529348977175953555265212125877429439015470498194342061554773121066773182878291006720469239394148334250051814239753280795656579403521638181550817887625973465248895967949194931224188646246917584020579951401687389346452027366391686928970639003299552405083447355050559075922803675747312491576562651703471147477002378171727438514993360572666165003575687734533397055302812451453348400395432236590719074243769742515175352781887041652990567935204771168781069750678009856462368727812136851832040138614441351369080777598269703493122728808888698224284122199546701793029078064723521865892314756444314211103390402479103147895992667128023835238715995673011228630126344341376619075091959146063847467767777044361607915563686303720164756685362782427651973454983762176008885689496745672861246091453147440109083627976108976289988102571565119372334602102826694026848887989708139128356619555877628442980627783789894536499954833501976740503366113149026049344862228920741218051227927004099925162884108553083786237990153683165947845602345466281837216075628811672489279602884381803910389076997338464088849673893463207509511656620335968060386496496362270543769561259449867935378035492365450709289989079196339888890369287219000939373032767686083488434187672821717936498412309939651946370587485679701047188491888968529832374710163319983168739617983797401473422166241413272168250414281532162345938815533843493921386032853176996418570140676491559980260660848350437192410360527688004498155174272871358973245138751680240545010998990282351727509519554701302313090364566740123268469056342080802225499057786305200601169429680833365391240952972945090715033178818235890859753719669215874454932185529497181851515794266537648608243249562386692457242403196974863975459568089925877822760300680053541930683210276414795331826368329817306635361678543810385103117554056608355541908918552182629681672910624133104785629612553442540233724319408888629757864741761947896306175494764169238307666922887225014773537066463598813136557965784822890826697595496781132001689515226616397337867827938521795803532939760965201335104685835175088642739553686677194242606811585572144929369604982974090718845934248196518084429897567649939587727994555427885276451064531385389666661864842918805838549841621623413824439033057812622286508439867214360278118003525310291360856571651920414382571426512682994232145430840186008139151850318977526044024699555714702420555364055972428815065073439667773492174865460024616458355702635009939214119858668698057793269552005320396092759856962228102772626540570071526235522238699197067826711868379626869436601565699402839073033612787398144762882567682017529593172407816847925962681387881328615662095841053327844638055808902170512783106996485664863582243036544460306327670142232268194070024662958981060049122768294402382301452273809135112050902886831260274347278704959794609494013170897032810966918509737351168188604684193502515666913774424143545071833841608395012281596055167433990844742428441816605151420861470488871990722344678802173080249155226385402429218488559057150195182304737652777437397389428562657022973554025254226549784204516304531752818686504803712756520505578405673461256746411409346929028051599911980484995272494122364680988157852369135937318277802724764413964914801525055242425476184605566462317670836037757453819432853886060425435680392233175969711736520573578578480153756161171151331615993035587199855674442967045675453395059141017022371549928488845202920286521304180209611528990036950306075025023845810445556188015570750592969999442639151135288499080472141750436192273841315175361900582185336838865009885244642677702068037677800348095867053531913179856396948280935329233142793249269810165731368302839784753742141753902215612339074384565517874361947102298951003139568818680475749123219451147946204309894910737755049054911322699582177700911460745375203012324285753871206685118843548442160444504216398596240761812746121318383375560880252006260565734946293431486949375425527809468489955941044881327695495567632487376696785571185411662947701849485179210810620414559180230542377068972207148864836386526825606367952110555488780270863940069791472594135564489067887566656288086565726642270823119076528994054442063475944039243415217717042878479827807062889968035031271144815762763253010650200031160307333563204680726416508930684507598006560619220420075653728777855367753538018854209209260563562923320851881581754165509327418238996409139698097201132000224564955997967277964760212248354186343488505133943005110786210214100066160948044835046318870963153538988424623145888599321807569027223031360314920066195111637016995450329047256482940394686369547332950768569514992740876604046213080000329665338994023145901750931138231205640307658341422883376378714729725510281128805420491373126663284832943374823381914539935829172790730247163513965577710993864026022192959371951029941303743272063498599640283022921751206196815407565268076992322719833267629779583679297547797739092303401888348538121399712079652421104033302282037299819499334315536184719748669057249267577951665306399539034364865093718194186912721897571360515879348488544151516997896946751417199449549351701315592348364208871137718684388954867242754538345075096172060012708356387720279013559070452896573298694598998001324833430243259148457707854355474488805051626903932425365388305189295175798415957279571685379449394867936988137914060581438077057183290127328124374785324700955711370911680847455306670614218688993864041486710687088148089182802229169109883504469809241029919616700994982685567589179030453666898886407486708637308178964630619248153609256661860605736486233944834425298686103266058514267088578368936761240127854779879438945478644867629646611940118092527438745802363907723576500007093301370880783966789741829731210825809924529393426843370865241065078728962190729106195291757442440327804029326761193538482120670209714758427577153276918778892502597841064402829288433022921205857546303747735292435420532722801766508382050017547738092516260981004856410933654003059805841235025675609357089227207342442534753683638317153430598155331067290504659949151801690577839688664869544166582055460630046147733118653190790289474751530339949477268659112691073487902246335788074274956540593623571167915066509698093220223196489168719154373704394681389138926037696134580595188129051639838105386228653196110126168752053733377729266363806314940280236719411624059261579198021665222354045103256531076482839412002249228854470230817521677339928307216258686852074947243665801748726149468329454203967445510547674260645269627154751724623540200181184101346181026019012951006745500919164232561207329418261907865268315245121507355231931943176946775532472240669814699391024856329784454549332497418869774701266400498262351510469822922031412953031377454224148234996409424879655314160585472024675394245006888943788923127285000042228281849415999058591664894229458232059964504727606111679829884143266686815420287731600599773197398998245295168590230663235644888139892816459302899100751550991968069577987090856225338285452580446500802870089331001483543916547675624524815976421037526764886414245288154062104640045266689964060745246344884385601773926392578494038113263643116726235536373496330693815414570043805401967071493035470602557839043934867428072209059175296235967865237906744169369652134781763902091034182382268759881261405112065466143315677372171229376397281774086989882477661752359944223560946661410199078049674039017468236100055770914212844881047766709376222483088366106667183137256358391473232813389057588683860076697057673861558745668895316733218102254840425769802739454121651290835939199019878140109710539295350190320428453605841308566216541094714620212962244356044447268469504025547720191257000835878053041067471074804408183360777599589277412154874764591506677459216446370739649759313509077815469316250186668339829763673433777774181201702257114415359115710571312381675917315877822292723681369726432904430339164799436203584477533777647880815662794868185164639130100586757292456023294818432947649596574304087279231007755906393612772848048985142925629069420183320925771451635305521452966278814670244476985226041008198995801602420446727241630687950705272326794918536152674446847112136049659631628294156052274003388546715511711703972845892168013697787659382996034610793671555233750907814854899880090318232659314877374061672695315693934747793203914543918497374370703300832858124959915281525829294314400184482831861420904896920976597192103356142525203002158951092343375618668255038408652426438108133850101832060094395527644809427867628392065384313457728462709406193808885647924879398346540018112552407146770777558729263231503387421747311135706992051721460986952159417925593229142308786284238997372493880742193153349521682244737867097858511194379462170948996066052697336494928426568681558167937524580232153138896095637542148712365808128471648002508765697338407445717924079122929267646474383444702279341763154321866675109501128395343236173924306052064652275276395070680613681934217487127259766237483712439959625538143114056520661234733551626322679002503318735578350193426633623298941380991259041491290361115684279016546993046927435190524644855030171859086662444052444901874377540980706468165485464166851327856239312549427243248171659630975003639156991323683535505630973494494963146392578084035337423341469659309928779284614616298368159272299032928532065640118843494466512099490526443621508541100354233426070969723646023712155282181500506297825702187469838976134319975507225090352052609751288605589113528053495995712595921950757830014797180644813506761939339023296514612610789951608258992858336544715504160758125178546340617763316778895501221549883798952811302279279676665030926849291333061229512667290442650327005895977679171703224880491867969347555869965162367147689801867625626012916316352866252957824861266443498877731506562095393985516018351768394815395295011419426004857528370504807845470899166230251936315118101942200275786978466534444881837918719653526493294999255279913021203136758195937166515222881450058359734415533075529959562558491727533932414400365005746312054709139274970031341959295502624303848538927494780060287649793257757144598657422112021709688035057982089328094286619699495166591717388287550258849135508860973385462981175117068285882918483229929978288526066734607369178873971493283064862173356018834492195815768155635728019924249910681495940380485953120251831790270546063228375556981639794349461008236822802143899796725309195952337640779683576720740585791102177557701513395084281596609009579168450186389159102944133981186928171244459303978104362140068083911004853224147658492695399374141802029419278160905451241476106744276612997473920120792801873575715168072572834687873805477066458347451017072204763154923392533983691055634410232381144424655345508480275192218743150503878384714756746568544015326817888006060553065363357287508949311081955782416554572488606048144091892916376943476207020699294532399297091629787452516576387525591534944426750999598286550670778532271210767200499313887722429985834023371975003461815796136944969635246546256003297674963254385785020312516701803829532630261606451460049578214214909908055641591826451565174295683172528274464023560194877790010509579562480615753538002709164084973657282281175880494102201735960581960451546943030682827671822935082481294658037495922721666550144271180511773702918736707722930807040680286427362471828806163923435920987510209625447800189027154281226890443045340679847136352714364388481209886654454903797733421173419875642584474142543610737721925810789673799780376123124959054020526737915343946569931292603000359317198571857229699917193090709081672042197046133717829147881589596770927591015673491576215833554724960251642976919467451021930461123897769703205182571402901450085100463349409201700066701010741417579854338383983737614116602222380730458980671867416475282173284218277643261615376566781201155870894385026451077880748042522054622768928306365035778364695356852821738503808345673361027534961472339645888603405512930664065108212697167502680702718843648249516203775634473216033083097229804413250513958875965119771769136571045498552513359129026229107318310146637577021452092164339301457717291719901184685968563404644159535155106666743759694875909498288214185994141078381320411827055548990131399506425808155612424867729650104313364201942418965776121485005226711373778407446103104352548423235034838505829255950428246064883722981176621235927089127378498753616800061691921803472317409578444967725927757659571741070171120754154666620649821282293881947602820709906564787258541684851283527848238141830520415564468476493253380202892208796947529870363625751731227156015111374266082630721637429602881766444891391938093496517751309443477982201030502394949875648658722388906907174893073648915486847536576636004165083743972092534309545352012551465292749322225827296815050412940291102251641668461199539797974014647435179210634992584399188884867097164850946867231551368797926862064624235913407757650750418773539993541367108789739298313612867527286007701495553248770532905800643848194477437833956749805350216378212969078578523500402397051718593200842517083956644650534660541851614238049771851439534060835381622962460301772302004172284045668344994772299854622942745849154832565621589227457471643550046555240145059716778949737062523375003082094654974372848428274473403613684427981005674057658481582395741455421931814828616571076401701925240618588954363083122717255288763055245560153443467173419893268543963255473005869003774697352784406421805714658785813726284917990711685905756087013091946984806778366139874483733599766353973646680070582235966144018184896392207894972659621673919447416229895274130379226558622093316417374954959209686661065051191133653228822341944995567130576442447147834792422366645654039903815801405595750905403462000622584153270081655535604115737895884640441109028466437275472088029927878451880452431263075800170351640517114745827562525552397392175867270003018271277394932337846674225759144462991746955995779301902826514221458362301832535704416639436601708289008260242128980145501432699623968550365552715163389022404743565320022014346258168282349235715579100345407822532862452012503646687495618061419969389930357062526107735759743731184435774812196367712710333785685748735663010582230349605967687431133905814103302882047140273691952935266237079721439275923583704355695535675473856008746755935401966353770246479912102473330037610920630234408514142403094987310452999645982920684890899109879658765081707739880361478018987881553780219581804082456748296405079861347420880029003002692794415155450436351876353906527048081347086694471260581543924445115242404872644061801374167921476193316546792086155075669923628024889512459056546794030720145209075763687000678010394358048369847198396752568258625979358034384711382358083565658901329780730316508835870657362161046375118727254106782977798280233935658149693683744429438911215844809516574574038009216662046460871706275691534808820629651886188201931629985888132601506954312285256909807942861747492224096838957771965674922047522858165419800353242303468598774195889762964958554157506529715232859744496645476089005643045640768233798879264168054911557541563379880072613031482238081288325056938109418090801169065113727425531806868352866110286664334189864414363712265152232320303329904644833577581120261313695497655547495349239327629804010024620490783980358134026410599354554729211106783412321069491632183080008578341898400522678729322905475267495767906776589859606312422568284055967542970526109098184797395464100161746278580957508799259790269623019935590905758396090121175451709234635463591526129611099401303276829140152206662877226639942465793654865447303023033884670144985208212183483354212584206232022602721731143853318693048574247270556834056015215450239363408579196449919233921214161563433946478124970799656502984409265171549336178704887983526556521247454229540679026735296429584994500874779321499276238706888142049240391772469812004065958045110424035653399274947310964936859278566759478975912773128392548351488601674925253264292498109432838533450628655965443499938751556488549407429279604749172146925288286324989833866195701746183249435132385284088828187461028225106479362671055666851275692799009787611517530073999407692500363626935866235348975669267797197853299618299122506037528844494292762537339730681076679062677737948186855414656414494134241267605034132912904907505131077845433448636770770032607754754995174926926495567373619792940090990341806864422670883653523186928781984170517804238312191802686303357986689348130448548012061896076243726392216011348552547707998682049250718636465108040448502876638756557271474243795926398308587214765502099275355882319936025307336815078096880087979131731986732805041497721661253687638173127004784086098114575556151892033450292657893601450194236003903398745098762487743918346355681296038703788339099865325549185639807564498454738867962093858822199211363773391874808590789406696276381478196759576594704758322014945333832263198076390853851508315820457238209392721732132754583996102822806885215103556524005719098455000378489935144842494795272515750732811656622343135950684964743975657919097367211840069346144781678201659793883296131580635001440005898790374712268586182916373784642773042222452093305076958753616395310042045508913762454046820392486717364270719502012041890001537620552558999668243284913094406442599394435358494822713272177147271645292689787532790671020265107533509819797844472732885614280082188579551624001432159800550882558708892070132598673774429705457097906892076863407194022832930772050581665532615322873535516332602715399075336020620863299553450489101912919735440683621164255679584988983954429127228805007676178290706990415141862071045842750463540489185835636825012068475996081407264497431902793263069749583819503427561671609270626127858982286392896605663962398676381708160044612344418126923590059943846749422489401213990259150891247966991533858077549935951382632299249166255118029753876690085114992726323308976713892972900249339922802433502385836098434865253163957702515871709429533551179512484942609183620728555666018556187210111090930237761261851650108466628691366275215148209594318507446338322749828846537638622272387796771877762681944064833067667482413009962745929211998016160347445060688693921622494733520935672098983868817704516305737505425708848831537769955810403557928075565373897608667414217265986266217492749983207108750387255508844182664904458554127143264128375796565328104587710948337993092372442651998970647456516894186248417869085967886057107955007559185812744741096436287869894388853881137720212390607248191808084894597939029824889536921511581836150523321411723812823812085611159395967602553798747211090454788974384301105073685921997124776251540128848640509560364751338676274203580298739322770205973252830070244855591101046651302415965382748129936880458853265222918900554994704620619097906557765814379957063160825810256450936807449580113596725555940189130848747384142110034828907266390635648318160721583176020867809397662110510329322024733184431300052518129078139145091723701579265578838857672773682847824496494818962988490474515031516786470420611651567463076138088781299749227920130122190628911419192241034792172160250499432030964115824959883244068535913275933625277568850515601889973883135135895090351780135674689278759760605253949259850657337375750675754649376919931132500505099152713313447758448207224109138920867963997673681827711607154525975204391868760614061624039578336038347103012798405053647313602800766657138108590201352436097481184145518604939168568479943326939965261212826657975935100570828905364670038983028565105870469212460521561233701553614760649719378704192931974455578174504542474740169860906366978081968684469297190222618330180192105483813841948416323031442686346296141070095030184645569096215548332141834228572401370885552797634051854517152256498185205613094700207712855301413440215096361083976378255666138668435992178035936803424315697494192246650611282281051687435224056564230284911022625435976095225542539376681366650026925875728561893375583656059665902843678942827320110362157360029634500045559821318482968497620296467703174761405005293233552791155354171807425861063005112099827790334214951632187303520628632052606861573702596358220143252885722185506619531288248550989431691794037117884920439678378131024356519447275929560477662518384559426428082087108576150272262817808547044191763574719337174726102344221382329384332011695970907579773263376365448222352598679913509837691809638233296878797512072708014871617365516152416896816966212719235799261891458536536268315168196034536440202553482895716449624484329711204960634555012816943336521753364702595760642542028626321288501430757994607389714116222948933010833534926803276166059204327960969873081651545881290170752525751807485889526452117772341815965552919806570303709430081737245305791837687843970951071929214250945410213164820886632535342624318609383421283972098199889809863313443323223337069292703008003571106492962981979083472048913739042482968041051519944831750670054734491135936622716626536476502962063735469532817095391391692498258425315294734947846314597923124229883886901786717434598198324560727055898071051069547208258169275425435095793854828881488233033563331805025353994419841675962767232402089673020532646822592490723903912241713372366014134518299530701546824464945684344965078900625404645077160091567664900785614789601127984038389148067962081435995131329650927250655816126051434528675023412364291340597293416074379731552183710243093491626687071726967462390078448707760677514802010277766932413966474037839363035892132437226657279249876690026862641718476921949665484165150711850778115277464581203961595634743349589363161093090460262023260426918213509785644746869573218687417552140073703434062250856546168872091585002095011608999399443075890135556857812522521821298800392023963808804962962075698712555021180365439815414651986396855203850115541182174568145829305560039997324814098174789912590261411164889976569767444673131176761776133358087154859740436593137664995029213873505307621525295865106169454340538738993126124951399903161304236146916702580148124180091889040092332189879301968236418573247502797373986897248922701941632886166039401717148370794537855030779045160237562131085052858551468214932781783123038393850698456426486363680505479554153223850970443673058010974572412479745852843026146945668123947119835292694824405134403788090689580207277751258532795287434477845681806163361150413697009107126430542834390967789742412726377239832658673256660459517502598113975156392409798560051902442353719987791286542894945835695761156081564446418960304059011712524795327996254167880609418637593040364249510486345878412148338452733954087923842543724192875729152891389802253360910002778827378024099066650510952333105712354478803219761238670006048831466135156612797057028645739008391057007394666971308743361628220020842251182342043319550695479047457517341303911880149133653631350493043242284354864870370924295932366963062368981177130928561380841062684331343664539620753705035560517691891099715945129944357485941106052876438805881662610916733206573777391421462780035476432999961466138726104923055503487624268725647209954920761234910824175728272376109209540223635188535878853134255475930297529174389187011834050812040004770807978103957233944237075518778306912605087545764053854032615868056939126924505279124251633212263460446685654643314292179412119038478747175623574908462288145231803706490608037006171760691932306873168477346654129219856005560476659384758538721356148858978219731772038300054200760092159222940180893930502096140835574736636056023136891535301388112192284506512889739275093710308276190539155553626120419038068848966943678956439124790535262554849423893666260248312762760501685886350420889849954686299878808720489195441054381147135190396035975353779076678107289693216204007291345941446497349060916496930171787139853139460380043852013130881438497945250592770759030931704430819863184607504725878159978859512495423739509463747866378414437461932355159823907064947846165315530667646849172984786329207798595365813828780793359413884353502150264481513041732816234289302890050322040887620824067810682854693772284719015870295266350251310079343051735816170730522255442071609260504360033113273721918716815832229864626354080089991652353158713763264229056181302749547614052617797041191055933611684055766319095420801477609483832966429144319496422475525191689690380421843396627658774005065785226487140643127874476186385377160187967179554861625412335126168795668775119755488825506260036552291787334446529137485055882535369471047904338571566688758414336664687419959647431693936497992733595767611148839513538042384231290986628477711915215385478206638316150535847244320170467090000784498594717041070448238477204216456586444953627378370955069552323939998720533377255077626780255525881464995696106211159027253505273144693429238372257875852532960536765983723610959079000285374407277888647536106752003956408292430637731552528971915834261750731078169998394591992084114680122374517384256923691870323325393165614466051896926985784568580500855649838472294969472561383947201719073048335711601532361358575018896937135184742437496279437576206860111955321106107717428704519396245203746554195927097648709814677198637961397013422771921502327437143670958240281596685237135054991691866872531104715394152239380796740630106905155397534254187953659189839667050123245286936003080872175345283198486484578597632229178189976780664682385944004658774855282557068639747821459331684993394937740842231348160976946113165041244805451956751581654290483661356723439316822435450656733908089666368122398700832548563583569529703745613706716907818489390771178173062752309553250337955875222567075336970943474268342077409641482324755511629778234447081317929456504896348528522884962629949800792026201458995431314264547733782087665245153625125895836980379280708005998909576840053531064286398619453088683072113245542204667995448540314214612120449724744192869138566122861808285226219621073995307677658510682985862814690597007242474010423633632654982573241302709041708891436992589194291230506836011678883264680121888068739007180457026560296425367498779347921958485886183090044225187066480700617766068774469257042543207162396036215039216996314961916318376290823427224810113820200461453105805772052432866714622448006672497309655620443377234766133416919722581924715330924529570335785325100805206132919003166761487894653547413388643491309198818487495700240826847979545987130579529469528879823731350713620809817473236795214321211896272894409830991581458171172971614497580700730352374510901884096912346476914505084785490224735678155450075997975096505294539084074411525134459801679024480785085288390634325930101377852370072934330301454491473706093957624971888563577711662965631419046100859515725283313610948641416446145575243711470864399560749216792877080940085958592695624904755529345221859111998581184163619070312186166339294114275188702382951748308600040977050531940315197908238906815435416456141363836268551745150561421303172015001800941210298020108706045188578674687442610501306173995798984020607903430135542664803057402295451660084681191938238052941071543549323611484278545661956924113691833806267714180723197938270398010872788600449002036126169022957661131419946799391309153965203756375617489037787106294187554506223432076741372211067621839789859182253014625905279464091344514048308411192067857953500131398189215349786530417520240847680374337778033938118383345784178683310954894328391088485715389383329909598432867958548931388987423820697122637839548471502424203929781688182248446437925136170540947564282653867476247587466214188429728133451774461446093883326716474516708347530074704335413413415103409089371816563252537071525921056833480032871473497314867349179927023954269452375132066077345125707048842081048317631805667428511419834784048213537312865393530029549235427016127546701059052081221135128350581734376331823545879664116554601314923764092125418932952659147514933230654926055921210360941306732757620328390997526660506809763673771595892879840749721174606966163429853613364430353298089662616959288795880809039365218591328582269408589328655905453134177400621513497285764702605965404241493731122683174633210676593895257970472923498801953459909730460484179782793532291248835809467382035129692150375480549052977788296768921007177155422800934657577769442929023104101720198028231267278663555640421032449858740418064392001376904562063311434315850044588418263260823169632599947112521193189070142502887415158271050048495042915188449842420349869720044947394277734930620482010249236441796271096487644307696486190295275846285798382948350793650618526667705219331362331566341215661933583027200682345263595931642348259378736512520954021771679341350978092709252026158672229527720632649552725841384211292293798901830651477165837366032164712946809192894303240317320077366642178817890437262624795807071976599782772077593916668761240686073946466679402539998483577255460487311418566914322356178959840544496558620323617074108206455421128371927721974294772526418184556524369329087975276192661243470933593467030487915013902267810453994258541346416388302582051223237156457465968500359105621303221426348749461517521704433648483815834104551432078743875101250487459729887797568518655144716914702508102234863229242318575310338210518979255815287580224223837044431735116807058894528211431778288857509320032901322222519220380270612794766316395047279745072161521932521245405365447967280858370029898000878412623736338064281236959347111509410741921587018531543254101906655111219844427406101018560033179248317744885453370978720632250127110063763489714635045814185631828906995041976663416859135410412753026995704009756741337535760897426356560000667576276262939315778035266615980150595077663527638640207935448150618802953753419383436730285578431311915889867848565473118209217622711785310389960743380881364869842571059669836280547920441712257139785639516005892829672526898722196840171085051696271026548842308616228503978090252291965437360365293738928486177527052426896132620402425933745067789473285466771687194769513870319142313234485483615575383091170646878145664180737945025186449965996410649612939153076189520535999113700897879258379454753055761129330599706326782228214210285216746345617313813606823295156230372731522783116842736655303610561521130354812063682436327527444287153449329989428556552428263621559080252665493055167708494366983358168801473453474410465467537498953419455538041135334306244062102953222892613403482129899711083310894075324688857416043290243397815488390257258414910086461481988018886134872586051042708944162946693807402025439950748962677437955821605114071152157011912535584227611120655444956205639212703671453024635316398621609086943481569380645427875648493821682395568028728074530228494688501648587554763959935661918729102702165098042952134868027225178829374887083241153650921528950594638879546815056419332274057124362885014776544985381933222449643324402636567246716150833323279619919047233486485894641094996689848024457947565793715794423065191069291454412808357016847490196234850835372337375459485551512759724211045810912906126246269167846303937596191200921171761419758258662581241910009380582156227943711281959679295408548255841960369870856812943471302390227569591111420416615984891488947023760430447130083731871085863036115924526658613565767893979924150845514471945267951831551282998676879118919714575143843318667199941024187782575614915696416085760565814693111771435252179931319221606585973943017346684809872978419234090403961990083489770434357250085100014180161575706218076583248274489228167193458565480381079100144575311095952852591100918993162136928851712701731872670388012352094698796109938255227425454853642582480992286594774150847722193176489233582815818803757035057537090581522784417197860477702701962282255174633301560961528102809487003992505561371361714802838035251595164693105823181696241892999008727931116202405715756613666516190410028897553256896653904494906483320250072110050679248106041885620419997416394915215181977204782159969646729047469644594053073478315281670399642368164598102252957941043381750715624283610440498564135862763735645008900496778547322088109122683533651506744638876662836657789546950093194498193244849273573350480983728530445518619989032353584980817470070674285154626393623303881285498572280624578406834881439195858243163442854609542939557153923746651273043178622953625246028590253111635988934661272215164078714533685253632311216204478430912438915530187010114845395527270502810877501782992737462315092642264187425388948378028510088673383459391849606894313676234489084805144969778065954675186285038252897414624229548810912175587964545506040373693791700455964450381475212894653413628993562669203583212968084880668835909692484067835293428104158519564415964518796634898836975150317850764404873102707037242853662002684048477427058811163538215308021510265487788678330233797123359584008191746726183320322601974267779006712666553600983879753399270965160560807348935551145680579604284609049819807478765259776182354040372768199086556755814380130108741497401604337519774544100720863430393096669807159876748946463675576350069555609189908119845138485017685212117436024954643801298032922018914984445020495061864466749713974989404253326680443654495785046809997660188318107862021913447581151168844472486714313657303986373898642073403093613831269750526258373523971121924691612473622613210657357436492525475411881385301848903458465646168101698888708695105422346130398823073405439862428015978668535777873797478764242127307924827291230879646523914258237533418196947914238155891836430088607293339027037980084011314472864396740001992077631439146920699837893526738815229863300332274895108800076673314278269250024810221155940948474222247362507617073162490845482484075407740466014630658604031700913542404648167520893941346683928569383634331878275294400430831503819502171287273389648254419475384327233670352218088303382289415382967926376424953301035816242546057833321651218996624202818378971526104712694298815527164984326515272520850275886508100973470680365234423150159465393842619346205528737038846354513198286918667892511410242593688274479189863590787528810296138328370906028237240526721383031796817583983969885869863826231606403933976586382007086246815460189283290144481158618166541210387260068145902427034665699810148975318215719635342906897003905449493961117742880880999223187185995816098386424302152425727774131843128213997918155898666569201528669580938728869209371158064951526378081695267377766898794832231644964413487196814565033356572031686659093895939047080070734202998766164084812803786371549558980876319214189259171712321479704609229224176292737302948123963564992321476859735608028835488272295800543234057048683243764956920203502810527715387241080704290451460013499879473871536400857970799126448377833318836007643495633104065162961366778357946730733178658987587339671965001881944454482236673926100306509771880104296044768919484591429410267558927925167721236213319741730592391471059975292475750291587647573038149850358959236300036054827716028477505240509082219797147320364813754691613341902338771369833704743758761176196760887182110392049004380506914142741408410690230460037813048108897152803183958076930758254677977812897605488154227962649825077968023779041614106301688086511853895095692326837115172224444500972157846770509408238110076774582218046266176693760152823220852698213246000741036919895707867814839108159804284139044431169592903897769275241842366058513992820199808438053236436674422846214458105334439517188195289869375708495727672423743457510393971126408990070203893200021324969683153575904878838654065916815417406569481244230202629782695319762314405545954710788631990118434131617928663278766324560335780729395952660137340895888114645871927194798424941316763222438590597331515885169164063917641687870621525406319744320308017236224921402163060463583444698526067040729115549922588511508030488137906232830756322714881674313544329699880676795057555912423217791162939684238063657212202171877120299893853466356824890042590508721383470457105780531520482191522602446551156452503582470670160565204615765805629784290050879385019497545144903992428959409302681993681325910556726486127010352800952650744611166732795790920575857196511368312109860429516548780766715701896971945858527547909967598478435832208525949289247471702050853596983836658341278623226398222193288471461242263380708539942089331279557860654724519176551639278462180021137564881051898590304431012721090219776081521724823140370533655936545567626029120375142418694619235776638176894733226805290134779143457153134363985368427053373110125845544579123030955017841195282210249111351367737605552467560639079377436913159510128172113212732216455552193360822233329348516025058826133707127129886860862624276500456618070439926511125008331325240853268182778054840046236577376364736835731225329554727513106050933456933479905125914105348852977966573711495061954257294805599696469077172510953009209160801811619069487008689987928568105226763392318660261349372327642683725256469061691300827102792099088164089994759932554687409979774409585521898024866932897621013555394550053276375846068184826199618065040590770728391193386901145646297371139393512214620665940930720851058828373998212792170741265807260995693584318528372276624833347551411592885305452043623114253898757061209944656865231916398239324656885229053377310201772944840256302704178598682100614655724134665047902417723611603915616092331178329466974943781447841078027023543863525551043042816812048224542602511985273567902041760529937032817315267918840991012236183548747269684582650513758287376267767988646379945832913996578220912053208483714677444798410762955017173465866193748793917894622100199060765725917773526933695370458777658892629101918380587400169264946080397211095226073532307288871804110297467759573361487630558019040176665075174862856899567983649578312369600200164857615545351510883447852482781618275125152839532642929478503535685390136023330634716195728681848293462987809789474916443835111608235594111460396961073070136439406083093493067194353038890037294257838612755194380344414438519612673783527176992451984173307302529113024904650102062790537647438502845132128456540846178348042347651087440529857349114046458486261134982265381723790349334576072540512576349416870700309610264502995090013949532468840966457906541725598036993696041856371196078279406558488193344856463414469536226617571885971059704086182867411931500151554443463304751568606049621522944257301406442044810940492232748588942889487326078477964623475301146221870013076830160202384487524502602109818552296022454077723263182330621324535473522948801400767239717628932654761812952990972075159807506169702042436891749553221443647896733881316141055740583372563407899340921994810275820422537803809407538302633277545470060803283659137555033526933641331899242857962523936307044581803407242954730783933618540237711257672409590135071171111927293032810061342915034331813296414778736644510429761554997899533943327875677599246011654126040655803100718743309192211585275467512587732946836695456270444615916297935058035966779366199957203254894934536621845286353761730239011647824752353269362447067520779932378255416845451347459857809095980797637028637550722175872760973601618198201929946561480796405987149674636821095944431860225485415602786144097655452699867088954395760094952762371485520957238903737011165186165785561917743302818087542817402133173458838287017661695696556565076679950208288402461990415572479044537734759737483066657084368209177358030355981983962265216582287852950514903756975501950849349941203858706312498424727138199820202959112606642376226069366267968191471351157376595513746797762577390540757954921632004000315015061815802431101164345183545170963351357259141178107446326154038834483302014031378693066241857103010161375719822530552395431447789412890349188294076957411299131493107840610468514755991937569313768043549617390906417739620198325425328530871660399430663658129265518975805463088833315205216895470048795517941974491984236386692735991618306244895099468228997755616027540476732194776189204111723900665711485846230611488801310568507529949561792461922244879684703386383716219421262520863019894963313329522552591073857295003338314784822053406137753408761980046211465869015894844735161182248089008151377360779266730131090199564513442057626522844660243442436827324043125204153020530196348421001019006209142742572090632174787587368707023111887627511227043962616223812305889295214975934609476352037745769847537056070547978405587394636818766828775074354719712898205604291994870722920511999014392635455168404297511711370394817602090372948094090885200247416142065569497472085941709492932154459058745220280066230698114168541424358032738272129135434040326135595527815128196111555221792976242309755090322497546128717139393391863871750407906200300873893071399361630245049761683691488292275254761526022681539749896272697374163951783894824043567070495145035637183760536085003494732474716796854926256495351291842067186747915546122408428712018586707853228260023985533442611404330134028672839103150198685598624216262696920036421684584613593354689296027492777538293851464220557221764544168117141172414308242523080619234199124529932804064205423407945262368201738180461085033522919811512500415350220638891830819665250213468282518329184133900091302150054954338564624757572146694671337980197641806768970292304261480567137808161804169241527617876754905301441722497892822138464615078476537012608438503220455230265697584630933148700733133110709185522173364283375461499701967481325939029877203622230157690113757805911718824015576155500942625178819076447728438091901740258503205230956860537741055885488805179367605818630940329951690970299024320420000330067333779804424265013554696747550418164047226019879131823549895800637930628169851294696169748365663699996648773082357610132056118857997127732294453223382776669427778901965261233665269453175923708058860941495771376567485645314711155014519345316543465505591706928219723236547866290771065318080554818693984574263098099987006486364161090258309979491969939885304681700425107786503626345499497145800705277177946292033833787689631540399913634723627585486065298568972428838113870968022292073692642388600457415032487059675507260004653970868534071601603349982236277628230399126995111694465140703042437115808823362160608498114424367071787084473158057484103707355592990761151858663114154993143246365020861644550649051486077104897020892394932098990541391060015859118414651137789208278084708679074413475740820805757949381511184112408697608355654743191913972716405512967659119627875439758746446846734450627841711211186179916512730904167859567868394429460860205824905504698689859837457506067947596092642333057789394264083699332871828449109439550009990673822478519137952931122557985583969534031348225627974761927475289914597989586481351458908619950940540085491081010848894406040640926805110432632718047386443265311004675724682305185591566535796745053503509791570859052030350596384576380825023535249417362640895822187137741106186419871338505106981990916134960095413924160107609895539864042590487886832528616143571321138576506569690258779968628863960939964311198365296794519319248730614646751977984197845294272087482651311400416091568083753038298747816313909262571399465915171623381880027099204112080803512585346148019827776516995220547547906214843865810170099537132140061335820988080028467855276898944623743243869390534036567413449739837299455948104910782335618230776975706760625001268330246243187979674018619413655562382902561093812533897794628938671126906001662813803364578239072433100004255403829135332572381336914648116326668969836753899896188359633270003118772049424530076736860762619481997349793082648182631276234011573226536848334536361916931282207372540098962489242110409664339315481219758082113510997883828739328714110680733483071647236042794649673584315911968725380321417460640945898838974805390412633505633815499703007348473704547514523663417667463276958511549507134785508763947872998244884076472702693482963309155913347787225930854735269124615528449562490961196567117516616259415298753205604387888826375199741775017636678159673861207805288446781590881367668979134224499856440804154001623535465713308648688318282052309311134294353191387537779982031748574602730299405498708152330340291208747636423811746325513162379385107484076192257543212171548474805758080419032736515215112588875111528189913134839421058908557594643253851930200733362149341332285175612892123465404223006385351438887525555005774572682176252920629560790064684203490996398687909584787717252139505971890911319568917076753545419962609142110337015620041253684804922675935325954721817964719906209160690115993697507741860500673601026488101036101242955191318186906010173466446231843171823822169949357628269764251598226850019985474653517540836652138542487544830280604740078959136083796231403599506335469078207804722964112850570831541343591154738411658717734538443300644800186956487542351820642891417095160926203885953183095925181520887526768611944927089180681462115769735668152625553697596065533186977287374734125396893846341070661764329840437041872400099335570275842136944915198682138615083358796832893737541377871725838591814071005899792652619348699530594025145592875096787946724908656754433930768987812959586474511034014950214627944643001172056601275813106694918015032959270235393300215245865536756567626427023794688704641254083078257675222205630446879751976525006610964997540162253214243722350423763768299128030328839247079175174627085633310403914643244232141839697324661037074630970586271694968843067946121601174991720699396317501957481405487259350915139692336546847214991110767449491840487760163373605085430137109495102743134283729556723290427747570029589221158648570361714290037911748014617570996848204909357841744009842819884953105172196690149768600764835655426643094323775835910422998523292021287416338655507743711502789834731319559898446557456744709012883352149716145775883473693008467335366510094713958523582186331094957579988883152063148745899953156203260752340123086907199039475922469474959232120727159841896369099439239371794349205695263356704811742654350214063765345617554388672710378647295189787039212141376791877183527843994392598618354039503746137379544499779227580243896192327224295962679533021009815499038764232751074870723539284066109013546793611514510879350553752144775624985856245341854125334796342977139888958126407089375960711814554602866347376702590066637974382825386263631270537064069997376891373600742551718786503472689066997876197311497317215310039504955250006260584797475480069953611264649311164274830494922014648326339411707144440750471647316016758648031180951763870733846608585006464561703459519680299162439163006357040058565406759008697112843333851969082364538747173078454527718083947862491804779135476027970865509969270728883103044716424309793412564088687095886977211884043899845651903849616420121405601150649296552291336351194756923228959814008917342945007317000555868026837387831519917653186017745061160877884342845447430824626508372888590593236706566360155299649600302323169807186690719430751147304140424923415812618364032731645017635386820039432919215753014291426004422574102393296221078397526193908538972080772774105862696122582785071707638450010930165193253573622484824369257593288474204051320937565155516481763484695036150008161525768023302367389599324932375356211200594932467177604239745589903299017987039190066894688709796894639246913204650382070856220755735200205008168592468942334136334601920813300452645700889412337734506946119300053677147067592385626532191033377642428502228257263917988420443760860973824779331830075426706453745940642713366568951204244370849177582855930944517444480667065502242824549137017873447682320574781302979367351918944929452777484563677554794448355697616167064198381817517692133931490591877096099362823106544635740282206475569492177830365987868968479183123482543997293124174660038954023269044007181200008442898777015965394221126466092134388208230205831934215441349325527338213467079705735492151210336436630034996605112645502965651803350292775621270499377255063116821131562002302856183188747535832895388296437804653483810824236090753936635400648090118877355201844798693731929242721938679825220731885028939521364673605671761241880887425187366584176864039499797193945597879109612534626638218103191776236004544354418062776924395583231277276685972163735615762963245612917159172574978090737799296043892244731385306836875978077467997724703905877590201488177795068146220750866095843538567544979189952738888326839942430726809365620723165521268974966100705957292060343406532205654711570618482344431569688311309518642276695774880563729293697428511527733843212464330458789371356503635886430329416192409796264981934758524231816923366666402051809950428356863275479685238280015365016745902423671229025258710191849149991916091933625675139148275527279419277996469387084219204363223704006218981438713260449193660843358756640940059794253505233743635361993622809404795966142269279175500469305810895050619199724917997994092676087237866083492822619306818333373077107912381736651808725034261912268189925607691853076760328095971870979149231645509026957731359149477565301946194292005131808146599298293713887486131549130726800430932699890393355573698390393419561691644422276475341967447804622237599311018482455464133600088322671066974325812014996249612906714896807132152763061844698188929123979091405201152130625047659433311698205743348037479032449184504813659722418353792136823441158287875386331354934529479551343881615633161442380511081383866260239210978204740728076165034384723363967889409169133408784752543070153387111160567250461817302602095424327605438882693594431042170353038266469492447865512733410245768583039059789854844246805310124300928063704068151547810475378152713482227555531304585582716458812972995287931162084671980390295481263960344068335530427759464971943017208819283836544036980117133645041639899006639445384503598482369492037396446861901528766516788457255942609582850865661146540774788443001831382336716079764297978819828596937856624957794946578626629571367913331741479204221061167009079517049209926712291731266248524201071538691898739010145733828848424615262030718642645065172325844952696036537091438959211734824503720160744840680800010379103264701836595936758040207820117327396025305420542309237212776136873440850101906628406736215872265649513085377286513028283439277145519942159723034190199469782504996089540178685303994784218179507431058415065326319065099462721173850991864392110566643070948997787450337255735822461041873118976265377627887220251483057021348634033020064964275387975029303030081267206489478209368099753765062707298326919404953116163069126940294881624931115115707471364900958454494493131606538477020992018558392222998869057632817469518062687820224504951564357463579648669934920756679026198026257445664901567489835070447847179805997432812612377215356870146911903293821288228984233866844353344239766830470283587232948139428842670437004697312308080679138203390061525780917568104727944092534723849572958357100073667342803895747311775754720173518578734181154297473643560275739562661523947180295346576870031381776071276637633420011823611435335464578062865738811111330835033626093953021579714654797977752303328164095075288596422944842269090648167355224478169754397617144858859042599853653523595804888666038071273291444195309711137538889928912859347398806387716945861092471753877676833413252078223995809120510703208926352273691263470732284726581787640563347435101664733921338143385408742863268640279515965584675201902570496229435484092346436193324523030535141821979500810583651929787415330749899006300935856534707161435568632216716577284516652826079822659050770881889874489639124033423757610043160396945559828704108743206903735132892044648168140241191779686879225510109327711340119086709297216824268594414958583063847364931432293084779860959007113863263184712780756954628251517938912322554222442591354940002269303844961694000777012171650550843498230233114654024017357347074963731419095651238276156575497839434801251023650874511333176912423914429087771115712604868887045409640704825385368605098597809180910536833738356054024897778327167257852074773442014728971937145466205236482126115420944622692049616931168610566480555309807908156308685481025486491190271372947330037937959733705329804839812667992370487479362884094663959456144060941594722891401427430375876413122941581038876337646693215266156358796697885575387525558115036993411311916232720256805041126552570666872023670912070388842518251595379338919337053984571959206536994479661300885169072514523753904866900479974344936243982669337475772629457058976095721694524259146065382491621493587117416284921238427954385321700706945528524084020114522339830359455833929846092823875042999072985486842101734887286048184291586006141835077535855937812144360184490598871179125929468414029455456408344740926245562161936594840612348377415585849105697414908296860418061352046002645441533018362070947279373900340573009094137554856436393853812744205868190342188258661245063522841824174492668818682376697999771498369698637004446675607831525754082101589004446926570837901853639030415446729534059088425692070434644496592672165795019554154594909353111457596220444640669096456387260860686712409173689774887512896145587460704994410001641751083316271961218941903965807591762815619412473272183927697787844570364839459002288842864341766858535584240226084373503784174935245260105329962505172198231839002877715030854056832613415062042532837207078265265742916427681595636092642198573918369878228028617443626932539908914658695758564769772257781471888076006388765982061220280849980952987819763726060220848525948072315704935390833768735225559138800215713010852881492888659054643951090990937331597431700804506943610997957557166290869336268211442067531797163873532040549455684675941238203724880381779708388742934866320899521582136308251788327175714661977329612273003683074018883676638488156000233949465291890953527712012499514107472261614649197656289393211301792889073866655755423179360142848757417686329238989277132918751316205817147876446178047021345230240568182967521526312037065297237262118666534583442009456327736146285941766949752067261711528284070085376498936056648442775582447853585255582766874456912431762515116457874055721349188627876147731071442980207448962074994013472886075025822651710849151405876611517251246678862830913938451231312470062440833268969559880175023926059705637139910861586273880115820402028272897398753777442273810051786218868074693801703832048830389215671929511603015024857240206522082463031662598163512157663041501110553379652191651696470136468193272659049285029529652539708340071072113658618923731233266836693985189710720871029655195526238604734749330553587132449367761364721293655739571218045122276384195625099548191305406347557794370698434344748259770052697897763324736454154157674285236547046649024325145299030790198443261477346938056607129298827040318414789567066858330360216879248254260617397379401007731650223604734297844755070345937785703441955133946858939062912332244761221581394496891486943865692005590246302858529918670727361556617534519868077778779653955781552817665096624821623989814514197480439137395336401589608868491025973087367733458034607264115949608785286010084719020017115645023419875039385212695409951819621084020834531156836417240438462854931307637792075690041238276912816811684333479448809793205211106966231862797877825789910628036415845568031900585432986182380958818645965976267832238983608493157205639979417926209502062321009778924332366491466842837825527721815242892087394470025379231402917913613371821029484179422582580160748842002198194479759938802685007040466897135657627996920621856570882935713206609465869043225249232341634418233490808560208895553540103891359257301895628709240598998298567871946266039108742675219843162137072030590682314284734051361975735034014644443296136743924428674485775093037990143908370011047589579645756167233677554476614288164274019054825712579049791524096901145239813381793165826318986998033780596310287347649419707979626934529676628149706288926695840728131495516224189589059263309218519198749958334872922080396481876320664305251034553035177779476533500336969036518241556653661109121403968706933034536304874397941018266150375949856810064881018986644319435116776928605771451549063180615792786694708825690585474334343575514407994832610365873253142515462014390707809322527309965066240274529318802614156104571143175594381010669970366171778589383427932942131424941223196209618063543608953681427313075590043442037139464265299756721813995137718848323280859016829340259143739319183207474998887509506146642423700822041074337023488045766052503908777460666939417730405291996928193343672115881879840197096912344371838053612897049804962601589146480714407121220062584816298135079489486128788693503092714521360065046301245283836722483748814780583097657544814476091550486415574329130684002292574677383977638434020173022594402301038975460913262121073777660330836190720281426716108553598043530138970221418164123745639719812046011009844896446380563673821224390019328808715000685384403249465005663165348760556785858592913701434721735994646925067930427102534617110611015814536110568194928390010534442698322640784943543424725364752701597521954542823501125406577167911569343107091587655383001583592845105625250648492764669958283739104073559793679825932011326004255243449118238892541763214329873857965840692199429850498801720026570628924885223784585568351166768674655379116818088729099688982418480848667916077069118505110606933904408486729782136468797670215202870439769325616750396791586692844284987695303908364284346326851620849542198975418000686086637984879436024307656290206333642381406826739066531538683126061627440602998912253724070475996312622066079487035879321332807385697555980583318160435858369977073882420035563557518665472165165704555162017428671258639811807165111429884053148909794765962449284536642931243520321603951680617121728342854830219629826004939272037902942346362811384934030690664724579808869088391454557301745475147297544263146283686285455513753550897019861429913886556449497920716404658949908530718501888533070456088991176643920687215945538541257545890332070675759474145557078986046230757049988672849197473480026978340957178876651465393681522973941828491352718157582299581506275607481657337525685077774558006233350306057016857867223251600827031661679580431684777669221318480612211390200830383788210615660404281823202220751893449464335278552652338217031628561326552390384562948118931794259764571513875842499243351267874774255347756879142567812050187702053944637902541519823543901579155039999078404056180601585877279602936660390219999622086426692305772615326879941124812362589105109527276612606164128977889104579632116668219570324106178627539957089792099462386056951227594882584472827500462733547303219160218305875446858964842912591249952460446741054982718782645080145842099020921531204102390296863907964134740898402190186022387700917557565211770774534011602791812676436167954541804004391530938185912625591248310152162870234943417485337785310346689409956456128285319033783057677088100038424567043966865845047990673590471101998520829167362176014742394760814421741906165649465050758682779584183069200971575101348761174091399833484689362273321794949660924550188475781516569455809742683824239720344480712576753384386460123145968121242496412976824646620068269989415930082543447859572321905937646914291604084481288217239580413156694255495948909287512725570769859774861665474519950581004450519614496619339715730042665536925899586940914513874375695717147935676673807457391976349392305238137329003005146023082608222691104804647564178174653983966845542528593961279791228831950996809944712683549585561833546911329537386645349002286071358647616411655595790972095955356951904987143972895419494025301702381355236480532825035808160908364959327006571194885919341191759989928324450943808372518497770110583256927101017839031814636265617465969474309001103739749731885618067509751487718228588113589449555666353480764441175499720028919917752312792178651116776845182675115351588746853181363315669130632823226018997006857309134018954141340015136923333185665167530498715529221064292630915681538039417614202729444646214311702453607726823726768942143893777909798919411694364056468133605553480476117666778114212218669844567274914114848953953889745723168192149280859153847423364526786810250674998919241866088061614123830614060546211421582453401305236003432124334484531434399428792559005993885858528088533846089352949162335634363126998992551948793575289068167788448397926876085834061665763746995404052907021161123455124393725439338024446427184814810324904513149966274314834646410218879424908857560989335008500911360968192103568747375901693465793839375319991174363669843783131300047873830652970579865593634581671532205043401634025292045341534926879075391638141200549202242504268487721351708151122175642558166821086386034737272637512260111631470740087921503539686772208794987968161608984398469853902038026573205326613845421557332829012144854468532111788759079053145991306057934747657706390291247353728099156183638603787404483266834949623602402176949857999146445061045167788778190222835277824805863331761738088923528991325058103240891889656097179039608350711713133245363937918218701743025476277077887988833582885339206114300131834032182014107670799785281104009326061526270186283114628927252121325288564373891749412337763224211267332521278691051274329293915965248224649195055556762509363582698505082309472487005045437072716714480489691785273511469741426387521742433203010584615037472489790209672949081515197429343246240735680975987210862039263738660641329778853265957612502384281313569715101034860520890369983731887493122625204124711907467327648139740220413223397039037692893708240470256042570525012094292501340837885476724639896740513707936342196050082297509030118185221997852307089198246135892596307891333178054225981793888524253559258816134417049006650384006453761332520045489988049700238788677263174645635307960039447277975587595699558276342106717899697014753076998556774499882340705076044894679369748841140516497735780877873657981013221354491499796402231583077073593669803364519707617816267733632766760930956391642027865030355429963242613473328375644230785857838087496803016195684854112512983772266343429265403226259322168304376144857100050391950844982726459249425585648584707179842125340607510586319096225151270849596426721617442571977618494501935045253646978148308088728321357546115498012492539418122494720440425544534264561668224186393109465109218168825786381548065952161007782557372917396578617490528323283163773784196781335438023183766226833139592163767249958328157613395278282824877635236039154948486485479053386681774029853615529098552718379564212222806530290024581495154122552384328488982593619487455780307915437538408081848590628718387518701510288153624460056984566028173095030947297238306337074104278675553598144635498808231261456653772089834909232686214405699321093966752856448789148723140085182832275346596342104243694239521587029868380383146333633403524041044973090094226828973176825185287901680590176451829560450491546347141998259812739561057681090826790594853108090310254232004097360734095122235365770397430571004685338519059852262576058981225141810026407430532811159633999449243203262197332159984883328843880116183658411489461043772326417595361261328977245369004724748172024127660650408202487728134403525031452086030545984291055289431538403701631182634450138769209204485856093032714532390435507432081942638660478664989527884014749027235746070777121112831957169499044366581559155054007505598706020084466185148246978164692940685706968905362502849852641489304687201261822145900777904012647294008227100151054654272276971239573641478285810488079230668483058050181813408953513825930492713456678321426015905596933822625375317970882940778520083177396436186826605669854441936560507827610705367946083826613554109581292616131859680294753907399287084482353631649486198761010869242934533950697868669809913064545818424354572315863763008598642501391273975183822594682705324445122213685889236368578776180392703375883860341930702103266063735668552284937895860511014756288680447328727728900903049293179651366412709522694370204368901393513386558346994813445351134557911611477116562235207128866359205572330177677942688581191606000261099670876353179751145585176453101034344066779089953282139170604183288712368190447685351065032539386383568415385944857167493164270001905543288210942114732328787946897023050640903937855905662080072862870400849151326267808641304566843123061620998440276410739277118021138441304086994615736364004640927721849399639020956214154423959162759080587828300619818824093479121232777712728057081830617685038167638928412829955167478908988983707996320065356293093231727169952576312174654897107837551102426163922675128972042814327207180841320183963867022784925841265287497231848589857176107253587692043388904694393779199842946788575391670143366603071353812579579553165531388085466057425755666799202636048242690766884782490886485733289198588164122139602106293763755509477086172470868155738244458375894065377878157032680944595566608773146835704387558018737709644305138696950267215893681164675726243840139636845771542297686177910982387759042796436554222496423931744378125293500039334543799374856803192979918379245942187335690067791404362830290066438730240040883815561311316333480992359672910326580758386599853316310123970105497452315283429943984539574667379385903936178487493469874168653486155698796760037150160432872628914303305552813509817261152493920629057582007716846981485307427068858631782168218221568434100090339355366980989886268815010120204773253574722933851915869415724578306328842664704996530212840262957906120464068132737154647816842181327585399066723288672918044269900445155261610689733214615275501762320408804057877284684126288793558057281482084913124527157099097295320048219095614776788163403325463375656460702753456472542497523706043846283693382191314803632960800656001183632225054041859416224412583325908123204984351307428030849733458173558419752551462164728257138727530062330595363087316672765996649948551558756658099871147823279737554727388344696659509173233328399331785821715425254958381542329823637023834826101142513751034839149741947267643812856837577625687381759700575661797065841091113317079087241970724840538978676385363441211823424156379660956459224275196980221612104977273764986038173827747581847968862552371153591370562346010463648715020890095999828340194897851309858857037480288325161604017861635851700662038718916863945971324643579051230361737437028718792625442604759543356401559648952690903891430161014770862941801315413941825247156019414945585766197514575446539175858387413539013277290753184213759553528826994671701016344941731700895947163547776169147484361860586453395896725737438912884252389283934332924694090747526110885062158707289679578239090866734344243198048569668296859373616383498524575649819751043996582354386507968498671297245489842970787357697752817170058093801480184064749655362340743664810586389420898312763379532245455998544295203232891174529139398082749260269009799183918978485282110895317018657416707619342605716123754684161889384612983608938496334503286327804054514124981919535094840244339725864617339625825412503315215749278455950879368058937606731515701454860481584638132020527716424686101068694865474107103359514376643144113285053172763957476919810827973785265211486933759641751232042956523528261448538807489129103119068832633117627348067826466846169699633831528328594189256829273433921962732061206049663487005745721424128099663122945353325018384496434436247632338153888289364397547454850763982723695913192797104472569626613729455270935917280683641339081423847140422760720870038334082530911328533251706183607957758887141559470885676547649504219722433269196477094777289308220667084653069766155820369202620927177045189395232283664553278332035935373119302313303972428600400234276929580441341208985587805365517889190100421404322807835902757816418235894107714630517736415383495673033139706992495971635872066066812607770408056346073829062106378826549987687588690157117797432535652229534557198401678210371972528045010979539191831053359908414772876893749557502988228650046140829219716110121127644606308679051207034704819629683760326736000425971435242534866427230512685013738116176479091771619177085082578324340339962096031981979760448997262624324335326441485949976069179631259077066627637508530353923801018277950876894338045207034201811599649866558124010793932859916637580402767771339792922514903705636555724351689174986209340385269998512332691200841248656137137887767980581074699760695198900545113206774995254777898378961531685369636008404992784176460955105391814478051139732880043311918749840408478090131128988558358042190827761838857731626575100931504512756842157209986483099539037386758106895651884309843001970861039926365748448737084848808258309774069413901645805980556699906159352463935672790811884414971926507568411278349033924352998104062136215830079396923054515193848108872951774319022913568835301719213803250125633449996366511737476158157479353124171219630118493459291279129683680537825161795553735131455916586852047782968405995657980763944043895549595553471806794757784789519739567981852969746309315715109208008189201870032607875337163392961765016943974362109456212341268930677659131320018148877290952240991742464321918491555533809261380153576641607622846877318033371807231497337306147532129854489193277343630451296623135444344257240012915453152501898228283799209267220156052258761103845696909409862881931464071966082014063410666938489761561049958195825147514485474278168578281012551079638569479832062862206354560783343934969605332895144368569308862108976056657775452384808489623469112929800451267242418359411795088817375547248011954677235209877536233523137321343301955341382551917411773325167696190158138056334416525046054736943153653728608497596292581290449453856563059393847965772727334115930007968033372323239008724535498305338950587055711541239598646516119619450471209888733254405844070032660219326525537784432421799546945426170323000941376667289235140585165174638819199603464086859771263858910204429356587461303755364031509417833440724827734752198429501793955410184782081003691897635167546991554175003131326418618338742665326754782910312498473423516902668659480210365356410853805469643370811473572189141579551662187056311759943379744100375097364416312203198202684127015504195289281346891713636572302002767081877140106991500971222129978410870753112587063580117129103043546917164859133643989079005439993075128541642343670632507459975870369749410360759282347602326123008581997685981221632623481449846908991294644892541944477368293824644265417146927891723718406204567403626791588367225286930231338921235817360524789475747941021112843222449927419769278005734593412528185711438706372067186352354170054236571805157445539308067648580858561066668960161952303989359822242285921354426204235501540390287544024597792101642508972897584122453292267039660469066938332497643831819465881131159394774784094532679315631181849117314195585062255825589938559136147264907844739185153092694013235230058748816857770078926352604158459135840125682746975370408615323618591563897268649165171155809265144030739446640446197790801670091919664887730441272799650075999347866150931309339858821302124310975520104735974605606171774068332412179247494226059200665378379502220888399718906920420346955293493643142412625197353280319263284264580253072640534333253035138780841645003428592589734848323924632933331751720543711105437698111948425630086394171123960071253400905011791394342515097415706755658836797867286462805375498195842658762555086130522381155514402755877831060675555332905310065764622017084810174200543914035737814359032673845411780285961523211216722302434571774036795422808993527072773848742947903522107193275099746662510200785142113471021762523288175680984799097081418208169658766144168143514061176584052522227484509538325172924148655141286976485031243949315983739602444958588735957434879325906372704673478186031429254654326378381690263422272918618663700406446877255859995593911618917354215791586691924962434750534196537161448769675916220057599183785974210779787316202891982583134027089571412940175720392015155417962644579923604280560822093000809444757970693309916383948525790111262376074968941582183746916681631397433820572717816893416694579730045482258110091027938356975634170134578456845776671119152124783351205278974683727092607986842140141381597427367505167624765351470327446728186455901576313245904060469433691998275347733349451379508221779688181816202050651204431542917714801263739684642019747835985498301022358014444922210294850475883331538724064050948865047105482078725501012831292746511151575762905313823291688220849140102506248580690971153685019751499567047927717080404776609094762230687224696639117745905868565546380933278195961337204591111356729853660746040635488632797456445927417957894843070961515911547242822471030005244040854419244723366510984372545956707544731872452356050105716312948542322904221735059099060665368674070255684816108485621533166658311333602187746493017253957995512417592762198289940930058676414040256219842410973191636395611964835077701287580858707529513673864555973384068331790411095069081868507494400694699365410713172090938523070614407246496215122429884278600938739674286854575389866221917397615400530999759704574598884139603367109629219707094098179585113140805179622619533951519237051164254479143866077850236831174206444870160086775412333516639264488553325810555990952097223836884702125290582917691733678842496929847784962516292743109809099775956117677623134824023126652575593371436555886911834103906482171637084117083999041101938819502981425027023180896635280396376870774867632672476491357468978834816653520253841969348479283167034059723537829307766031425609989022223427982202189973669489239565236975790537209817410107201535789017757555987318062692635244329761688594648808952111523402833900297656177160231752554107169915252079980365458245991000882137626327241350840528788621684719630661845037584236093972396881860371947092481224435405220100129812411012006195602861487138374519009061286064558558930734798460010686377344388535550045913714695921437472733319822422862466802308383563710038827559341775730580801318331192197706386325749983060459434493893452856612856540290490733764600223969305022636239950246321779970076401727584551782863855023867627846167077964706244823628506728506467758228516742144476043947039239680421906100806928643580972705676894603425410357287840718476753188699927136025028298849351852443151579406446516443371673840540094054512931581044300866313675263145811206571977850763837182511759076061791816421478995953964256478389407759903599612185845413534197457959281527068688691841064292366602945321753831571368889088469811647524140056770003313742020173760723969929925027947711790854541300050765616149056573278555924729449776528016497143338524679958018494369608060978618406764799240620508946335068774471591165365710376468311906816077776606475479028107358005644922592693220386605453571740913996315507257342052273321647232713731245077182274277828877402627100890045869425271132355007971580577222108094572451531708728064262771655953086790367840490728409146463481728111630192375515310877950464259066524716370336820425212597163748006060270098175482270310402977955807637692930008226217016943075845867995774330515423329681654279694026662659121536889242945126399805379822251463762440960547251660576801686467078396284087558305548117608831623265099206268201222512973575746557060871396419775573697416955478910311042814106293386522339466078888477615639327539680939618593632070402677327913437976461576102786192185728777004241123642457188540181600707265842844864388227609740178838618879346717052374794006663972221384480746563449090947004895984155252321978214358677869985761701878478073627824957260403881861318368217275093790054156376428554506391965181683698143648271440800814801100958950621006912187964150249667146629532222026987012404305879178525000443734864564989087582632119925581250425136251159189038335149654174372275697667750040436220853844340069488167198550924662272036170261747824034890476110349706939206147530071185636277161105115825496795927586656189640458899662985476535538334709598067361295273693343345215200531048645691062944491484589793991552961807306551417545010303013948977896477628058755681956966180868102279707367302761852685314608233920969627540301040989637551998919472196712512192348920339134352569970637086810872205455709255256607854658923340975449388375726180792961383001545530853524047974529967108609312024956966034678249282546641116699015127038320067077725874701007540682150206252662195164162911113254740605172078707502910047195477604488852616646808642344170171055793640359573443706398661180240936731462088525832643822236965419024885683192527065358610504286746041080492754302917074411987982907208488032432867911392208173570964258376508644385776061418705789240453738999372501145626745706299226471232173976448943874157123338383777340678542298063260817497031456615672366197251370984287520916409508250974808750558353044354367224957018247617397348540835272932994250174548904015017291728982704764737816410619311382868003431244023164532799177621039553831279461231583755211251706237406792889902805940446730635053971674134030510489884816145978140100039759934188323874330119614910318228770725992465983876825410232746106458317244797411032718914769461322142492080523944997414795831938443878745122017989071112026563460894540462074896137483733487436069610791441582511954626878300140244867889241477637618673384824073355609712813046033894575827421229585811634962483791176655918729785789232021182995397071339734050076973718215370498554571110003904440518645377389316044755033778096504695268971546265642789228593933678842013244386144893081998564021008750228674471346368353472791757565697471174145941190690043099181305076515995277926753792009750396414990343259285730431670303683425931116713822856531738588408667039343898466141036427704831328207884679417200455404642456422778932496694116263907982533928408584213612355221903004660154005411035711118582207265977030940954014502434879792916072590050023047312642392324465487398115415819211545859098402478949767488585330117168620882335695236156449961013947653296734432882546861018293927505378524817093801341703862182994421202923811080922101140914542555554401878669338419253521815682635025075168339221721805627630100264021036542636986066024315844967568854156570080868381848473193420366055491250715027701281566178916099495548039059750066238846523844651169842072727591185450331107915634210993096612735213555147811894917505038378142059275522604186018334273495928510201941233249453317884662277162062012881149244258177263812113693196514630411000776097552552895389385148116098852797601438676542789130216292791980530449351183242447800365230433177852429787457416072899767974806579940361320225037030508708604811502949347443911272445318748366714091154895641693243105579438043498193301420902538718413862253359107411035244700959611651587715782561120982838286186618132994134948102431710650152455434636048635746215096426768202589646987389979287888743640950585342914471390500467697820194952158740392028956730986795262747847408826570944243631395651998106386968592547813977405347007042028925164954107378134569266525674305676421560448848027554394411791022259149233014727342232061390042161998535681895051357494830171739171335217166392618551393488517381016638626849246276070651050642034380729964924256126534069799734116248663351264236939252779646814835759152603171235809632524499878410660223351519540518240298399077597604781152558573288648859603051130109193788318016018436134099236217093725589117267050517667474376321479533751890889750884310329721679128063875782147146662520269617878861880343271761173319402016569527580526855153707189785332971644138235376061325233856520723975217577278647656768094964385837216116360477212857538504816488850543764826980973114328582889541078999590173672515414235149882431407015132874082157637617968637039697112889042576192654358261839784308870803097988033216568321489988234914124659757822318786112108791333343196329729070741634868523014080616198358452245767570355688525971036394056640547223644481090994298147893709084538260840771549275840803465002790572076419529413773362769156518450608835300383744737076424115220702765137352162577871811635224449533393485603089840455651933352394821846025698187378694078246211439055560248419417734749954141006734954989903046463180743867595596986732336159108423793647390901691546048727831457721282844806581146385520169262866539984579345508306030596435853705566385286073602037584154096873689538684480069277658477577106455070467172259111213257702104286315432854154048704355131011221628120001713479704679348347068490193570392376630976073126997360359929056477359643725801577055561905929551742310874228481497963041155404788948603340453379051673612449726728758616460204755027678483173351238930348957215630179882070955965790606785279744888742967869591998816997782080981381540016689639287655401114029600779286287290342748063776003313824016841975534904505659908347846919609557308956269524548184793193375874349748514752778663916424667366474984798810019457007702591743345428162198873016644103359670288444784837710931867864759794671413167091836421135685271846454719451228003835176003376969745903246593112887546778493197728221921184917519383822781591084907221333540807227759835969463411505927517766490219788630919795614915499422748182289549029227011963825768450947920761108616319131838139752233221211873111927483648900002353851964032015329102710083734221106341075791766194569402166254422544101548009807406392492178495915976355960057312708245726467743831934542889698375376453848418329108281226033904648426362966364318076555697281941226518410551816027358940802151707284034761393902090636864181087339451169106323144011464960634105103462024347430391682582526593631292070850592684776678688719342260320384791693152944140409070895566489804784570135232039605770487896169001890125463510282849947787501422116300240213848040262996545798957030103217442040302412281081953390522124300353209426410463789499895721633237766044771457605166899461151202843000043581427007221995959619736113824688775212021677537781621196483282218691720374752559976302825588532284284351738302334687164095711141112605456806756239267800402398980942691155936085822774512096127736013950784448352821189731235847803460636775242679242945798278944766817513829659527785829816109570693750690063881730315899727796775196416959001924778142781791666153637507595667279132221433006440750497928361540703261336602124463776711027299978640259761572607786766157237244476658754354722657822493496315008975959429522282741077077493962559346593145448056342453919960539564230151167510587856845635872729341805542014329565944634222950830941478281782075363776128622742510959236590660076002644926996382195745077376636722949602476863029384468481897049781021858486903226134071494334852169377615103669889590821260177743824025945729718344177162828736683877950207262209594130992231081402459596362690281158244768248174219011683605777138332984904981424328148507021015950875848847627059555342672716862045706525760290105805139416295485971982204668951545196947369889267901103755507002468022245958782567229734116259923570035373973897885707562928849224154115303680212821051452165332014545846859843318420843025183563929125087257894135586460763618324444512233195357660240102686354702754243582494911543964376273534960984554490966259788687923280243203644691467582816010232176794527505723853692324596267936898075550891748616596795032015672405267623639434190061437456078928815969033486593137769245090789232187996238136107904251200858307076873415409438244024735773275636136296952040833389757473764387445277185372287642830147915106283675630566182020675042449899002073575814028893517322757444372581863396994767947816011396704188806660556944086507963964700967650275260317498518678081946813787332996332300590523661791315142397197541463783239693452114741522311333652587560182478710800621411054073525422474156366237917800932516918629095050741786194666753286014635747811878710307234545909324955933622724117107749180832029729764898455818532156625281993138969346176379329537957948196781776579748265279118038181301263054454569149988037945973748464089324807736261833593529706634521130033505708967183912886785170066529450299901465882086845388836051534575622870803704069154665666168684584817200023912222586563284857333259031086001062912330985491121223000850901130829483847893411463451993647628672086260982355388419996010029464794113511703490549381536049579043890383745996090734679908119546735778170353361786059943040550066418737420555816343526465291564717670167620147729585085789782502080322813479031608853225333581705779608036715616199771551634226034270507269036852163238228653577252327339455252175030262918642011529002695904579254699307703537242987762154914159035357543973617797221505698513522438122945178728732037949041563875415697615930419813331922993974363453304831101194195981606637174469297324161793959490891113621361667619056002036491609760074714815463044407307385745684190649785628976789393453688976644905262343136148177673709157234992492251835068284581759494518947465652933594529426005109775767118864707789453599466529828843289825568756781861811062998208137440733335942870885045381987116770162784274851725341785192940176649258678122796603573614567329172327199550188622435790395565639885698498522105970585371507041147114790850409632300203519262784927036462578966817002301022443069088737219994960150822290138558473972274467459329380023107408517904590541386276480131732280413120333361073530831598664254078248215843211449443354589135466601167429554158354786986956595904818633471788441981964588353184455031120836311809198978599835577064708253917838511457859853481275696864619636441914269632785034436561699070701477114242689233137971591125499439478037924645104581164922217119667739790062018776560267451487198946985421110831744448667541561968778068574600845823589099015680732967850913028657310490971649822491559568303499948609868311575599039572583098635043544123878924010141933220143875746744487954207888839956521353570423597212602612822158242523140007175959046982385278599791712759477906600606367721747027010280874574708847948037511753575493343976039329264653066641012990463558765135055084495730750364040411601831964597254137140627568872271046287779606880580561115462408449034391014249689014282686899151865540704266836058469191865889401387642931054347994790490587881850836885481722334589511397357643377433424552925522571706677387316335549140552551215533538368568465879443105139629006856212613183413195885894035082369373793164889883944796883330972607089091145896832398142016459762109247929178064437257127341594341989420447012407038050062606135333233084121191801752576366946755841446456950602198759815534888927723974196011427064044793862376039438624961698111972417536799214909326331465146639270359643084780528046001435472038237070543853038299352640886535511068152953563254665855374129604053013291385779265079700844693028106362657287334952465808527665848925225180204441866901463789997562881606485619842808135090100303375659106231878033673061455776100736054858882730525057318748331693922108797183257429220021345275243276121532931295566913588893821647616587397498681943097681676710563326519786015319804477792267568650949475358596378316527776632819003144366638487592880299398181334291719672841617603859653804499609597088977838833917548978362896359114558897586858545650618577547900703556830592108175211196912750445935692781789735807037111003897281725255601482591601341535461989270548959455015460971126009130295085947912451899877989195554781554242686130362873835776931236696482401220509375588973794475310384803154485186162154682303220974609081893949925932906317528479209140421255401136283029280664966555365577711286203919623407853532656325755765481861947364429056723119571607843788152330148901728281717533213582676917447912928910432010124241200041999318159063718826095448790348703953029954968352071497803119688197707890126110294329590462145470138364561974345125430910523109415598693430088096058010202116023997223864413093120751809948348158969493765988755644312908897038617534563327131481128503763079632974048582555787413699246339079734646043390204999905706937950755795277686286219243238992846199824942121020328541666653723687627088685549970825050503934951844037210023416904202455942710896900835772404858566794207715082282431140481937060604067506659660190633138584178445793714306596656038930807082053609380597052043359016016151239979530044351121702212392995069904015004603052018424875751087318754642157833932625326303989211947430468873767768796575227067247121798842447350635848715934563674750207898473383052412171740191950963381826146191040754827829489937849074476068338346055976795070777303253423249860927672822444134879106392227055091738903151626596246635186325094701871490992740340723186105785203577966646845550242152941027072393694037567623310777063007652935465012426390515231641707441465304937994041716989932795837313374107921907818006788176875304062798332587585606001250117557007118025363836229663569368847377037183251523815288700883686055602262623380292723104386561510558014203461785227319789246957993092692365087224634583450127457454099345274814326597200013156202173385745639576763610945939716559925855738336858898662777649156536643495082327381398496450354546875222261012696768918781031725580672908830132704372847375076652246889169688489920814053921264078834470999740734453437054879067550412351445797305465412442704583694346991360247670004267262834157085900377178517712902932187622587078304262037107009059809987793283347594959538164885589782999365842726022053382439123840467815590695665388656463732688119549691101235421343929364199691320218985777697327497303986163922022221124622935329352088186257476177810816587184596389540286890604491450178312218745545774190537597712665043520268328613150601637620310533730252738701564432530069629097664341524635866739984095270411268892951473730572165032409560232156478032453128832223898551799655150998957202309385519288533719789897597628613127451617229349727304227960977859704515699119634482882411135806687921032877826572242554962011335113006481886487404775802392013244042292537078065087559671602452318620051398751238698387163210353731943601028302075333267686531070420812709821443782336065611925143407657960677840872381130961175804939589342927175066977917785392727084806670181381741718603305132517437295412663157777394373242708909376780335081390665046301776165544825962495801674790935324164078022112879597178560482018073614774215379470040197653738625024598273253216158779061399454341077662344001954384787114122458465667805091129876905019580606666529622061220420091174145148349317399431608446639244470617246143637093314862331808239019349104540266166114492199690900789244310269929571024492652769963558715594978783287377780761304807872731925562299171358182309753597025545195224496297511736542041006221903103035819056324709281184141980052220376424363278759368031963881676456773327530787974925915835296641571656529335680607001278069668016309856838528518960073382871006543602017980258684429413479646855528341446631312075952130830925094892196037983004015968556368516780139086453675904913075908049606842583151677493526302996885093980505670556337799943481751043907509017235943554341206335988363506866639243046529147394571577045839399313689368976807525068284716826874059200800628029612962954971456840126144886927194842075819595702304533663776013932644314951281524957373921951545017897002500122128732930758118239079950727372010240059950937699743629322526842595777777813486475875277074834922280848307789431290461721165451886811360041181042139450560534290352292301173730611729845005346047646311756731284986690966039982989597591684576372278234314263561089846773591284004831895530047938285836427068662203391186500671336717172617213540971468834511318011747767646605216136754328770871695497618260460148139332659178932821124750711907139812487592462258271668383146560818402906397504384601442021354877576318324321937371842080396441646382508920400628457109234885718308544646461388235010049395242876304290314143521000458896542781412259313817166898434012689998317789719422913499776999603588148267144180754419097156933820677823511653815899702595971437218558587894386081135351469457693466610301937220020542627714215367148006143776738558455953843369698076458713358255603688465601639468372743654965478587478929207398039632275871082309023254994709941973700533665452605164788127720422970138900861855073277595639911037359687913658582376261814521345515583782827979424115436776678120504249175966224571236956914727356062250218013239168312441896783072545000102665980159796591244178799672750911848671640742642374990717916481227932950026602983248878032143420178922877775769272895189624393331830472111202716282203317613614967282471315897873818843622300592593066337399255658870461137209498633486529336799957450327489058333862300630499935373378514981484158990359480680675930064061887251275594582458513795160759014413086551796805261929722461754113453750851609696279417258217659052480118914477261124070847716523054638964048172953353680299358002995815954494839182261658957587136715783838861852616999482880402087550565530210703758914915647195985559334403949691534743672580394962705984061076416667861606175308413743942269265694164668364283180033420162994308134838932666586677858193041936977355120086477629633356543560526418942665415396516245866480140562433764690365730153636070947454620476034342308079418128042555927639296854609546460427586691413129353674518924566853751930345944979972775074980182426323709020570431043766173732219877474562595455022993269818130027879403885218743183152214944837005290970430686997996018083266717445256106932471000125648080299791513356427607988531476580016615761790359572431603642036924852286456640861321881398485509432117446075353461354293612920118509341705447875168641631400555821890386638070330619168678901062842351095740433974647072397193304494103872098849454842698052524428000506259803057158208891319744727782432975247902373923639551785630772721787102656054550880789589999151293607328644696313982404350556706363089505777646565501181555744662476045432618802499099042050606499088190765322834223060155578731844751092593780523307893284823330560829581819146035855417947309040880816750387107470987057142103910425473085975936295631789462838279571933873707781498270223839722357480855570807658059006555965845206989238560008849581036027729807191146246187280850201160569815347478752781246545001446300453153703176294008486061551726972437655029195347671327127871010890314742267635618502476954537133536846041496245220411267176937084705210447080818348489728773593701029620342545309880268906190484261424991642612698718805666942663811399677471292413393372401062927537323230788132229258206750130512931077891715622197685434507779005404072212496158020092083479027957744263138343999158648666151527371420715419583447760751157635900561135635525093139462996840559083536209856244960649584295417495136819576106404142283044394461136560323825768858804694677671022931485300731406596970513082178002644763112775825698370676651385988619719914468016348602438765529305600198221457367594510850143678590737860811225969182871202295488361454827457449495863223489350196120074576803293919523742396329566906776004536603913296574463209427955794458785769569470769340337161202312678951578333637095129728624962565100770297653827069094744635684407592058610962118290462516315907287948474267888671250324848327246902383316671023643325246570056788232795461466010205216625983471856910841854697451334119628739903775279314509974938022515151723178065550092989688357118892481308657270469295042195290594480674055470829655165691815933043232937102390714336588429723886796711958044294364764895081925473714638188371597788190754979059767992979743977828727289538829702038728185449526994635803691501968045509907367465188472199917226883482961508266506984669014638073625815021455671376494823651548824130686600370549399754150856874127122986534436699325474135114020391007085652884456989900318219296119086880748520178987253273393711187923454638376448831593448087061818535218279488679848881482898095310127906259163311832723003798957042635154390952014787686657287685939304419266179083334161402823334866058069712187384584446732510375399617536612923022866992696328077368932818102061728332219441945987776203158894141340576045175678340042760288080915693561880528929495363957383623511053322653953003577246781336736311248557229087574821703965546561695356214905206022467508866770914725321146000832838347164191070003659369781001498228351580960139966372784078504740388672005178595914753493243564848320083526182846420096495444325518983059179995868301949472398620823712171534146980542314337223815224589592613787233752225165971715353655178873658869663160625648660436555690963686175937892838181856899662316603455192117485027606030557481818151793956922601529263685677572734282487255438869750911960018771528300500185319061358555191577999851231296750903148421380803221693170606086231077591275380898192501231537512876448688279710660603672219501965035269296513989809711822674838419141813970110615362340880648527828969237665431070698518594270438741729530717977235943666041321907133320148646067093649816870599148793349218329010296291459398644215745043441194528923021470469661202784787483623401061736866082372223839141063134596295277243398700184672382005745327802681218446843755303472586946956283910775448657585159237749810335753450751501566906130371253178676337455525655830963156196943331139620144388222626302894915497296087472405299188154100909991797092495379136944453162552031078041703777669876466799367984449530362366273003321138566076625409669652597849247648321049757433317122355774262905105953265165615314906933278315163583895751207818410239960830995904030668887820261005654519509043860935288345522554966755897743055742390156535669168897535483600343825724608841679599110482697983743268773150998923826053419710641441953216785910699457027772187190621948409474487615889947148473250661367701853536458779259384043764250214834751539821740225851840700602022670918701537779465579018033436039685174529765649897492179134424438736422280911285285464882628010162349643024296177801394306952422836119191658432043247730546393880945663991997818287552858011938613766240744550182322963778736648342399989019582998169909312669385188387109573900251737760005204070149173762808796383599118009258410538327338506821329272121593354205888699387909837600202679026017969835494870930430542057199202032278027678543693617708882343224143671607905527340570747933838631490181952236891228728380877674824265363566331183435357200651869638091002175658453012464701660229638798734091293696711479238059849280283944414170276390360953587529521454885985231967794440272753714466409571073561192204626452678526231531282268919656215659887927870076881361304855406470603666020185265531684118767412604679929223661209431279941405033995206847056815617459690649447716245396744298880580100530345116327822374561951831337131894926940682156570481464658364898160846755446626036733232251083502190626304109310035417161609326577478564757341500283330722433001735382814766693203938317703880131894047554416659948103678504570604567286712990082601412559212501493379487276464995469088456032046891110608512006165655961361939319634601715467611461196452612233463574011858383314592683788192661249038278679671357946845869430264276110929001914355500367187559982623120399168376525099055644004458875034550549638417334028907498838834512955761541274337424659622959950225614776194875001881820339065065908545356867047641407573773987814777635087166294713768742378914273745784688555025240446059144251533230569660122587850045968664984554242244657854165453389234483296094879277992719471249414061513941853992172429638757077721401545803197039876382836187704866752999397645473571133451059213555666394612251769596661212495219003757959237632166648304329984958128600393234254627238930287770816640197067328320062382988387612035927953482259197244125065742327600624544446762828159438086984358574973040417149119440486818680234649756795567414967523919580615932685411546503301704577182954688361609612124910194718641633600395134163169991990967792464680222570728396810788983454182691965150902777322071802890761033913655731568508820215877784379700417596804880532122831193115752485516842702334397359451611795670252350929210087011946834100638906568965282985533684755016219176364319576377878131139802656451550879780022100450298601603544354672961169429725976804371383423003231403554071196379835359828846906316075430280494214066077003799423013816150976246328820694090401987935356178786078418596547292694954483618910423215853040616378017345998124077374864911593048832811445382581458220552235056136096853055739305847960565603900543212842246471803580653608116352845791447701309258938584568139031395863711085320547983286520327020741049191838631013649495330708173435852019819013981491579872806245620370227515623059184667503383434204517929896966667972161106464036705234650697420808814318401349202101589466252721845562950407544112538857361872831873441406725872303828277431906967749667339619803929043338140863940070652745069439270857765331003736896431576910325648272420204807518051162081497149816991580517680937840545674584276299386341718815559760731537513663689855928992767985732764707231764927073623799256479076757989618923969449800950088579727266346299078682906251198390569537501134573143108613264068642204563554109292430345396519358907978874242839905263906581158606312954508382362362252044413451785548115589577398708247754187498985799971854209013137867957031908037401969459925936931158356671759615035458757541218035326093059969027005990987055727634004003226578403893896655801536787616438164989096486354094549052761619114291513975437103387956361629051430642931889628863505943169244205133386515227241281437260301252581291806628370987081716199828813284481858496797912467781537670427620694619601972407172918717451637005918351224221380884022573944752477144187240768850883801847369308951740154012224811101471113251704165211966949249804194923201150866110300378013710360992347494472014390866894050462633075517346258198815021215860429186120970131644443378369717366110957451325826883403401538515819872323270546194775065565739168959852698487261401277108048955920334094302642123610961767681239392621001828845524791216884500245298994324346686898995760529732308631130675104928149045787570597789350467949410131792053966449179770462097952164666153247194894915918282508269382200449442596192636787542787645582063948363018554261686454992693640356627688364468053902764952566105835668493685971562431226278239871959050865231035423090846163264000825736977946718525352315034480661429530856764312008669768802342695679344942428133850462556109888175335934630220531723682230445251720702270475292459518005784148132104179364972529717880007400182738103475223760542361155071937683815867568483302738252629312082593692095351367222346185575401070776578436591936418926161501615781173544940807064365756038989485364343681207797602638194184809126652517389156957453762654921255937545712133972403111563913905227697044534167288037751285041155639299066126238682118280487564100978522431831106737025324798513942453896754540565033958174517407769610900674921442041166718417793573026832116763466910962801357656459497430270032328237236796419015882778092649277450239570391449969562426410103707356687824506617613645414860209767078243185344293771480335147823021783264051246838282178353635896663850090225982870995556944845991839138301814460353399031607408629241846761216956108274058092145391367384919095806337161092405136859468210135334920578437350114744274324256492841132881148776092138702107043474873262349504292098372078043258300629311861897573357757545750915053576638465509758318137221598321744085711973135873430978501839974006789360088062436979156641452102241652316038283693844772061798010941643744359058617300034031407287535077023558194728554366174853311823414329184824532333004634076596615514668078579068993208984523131281253645491056129926098638724565370703844781264379346088771569656712195054033578396919811573514641937671869226137561595369106554436874657438883418415923565130289219820472435835824696296412109871686945983615605316008500340429498265204595103151139973562194326466022341218992607985266744581096490684385326078033219773015584569012260004062410914288489367186850289585350271012153246447661909081633361902683976215574029911504725156243508975502904191362577093725622089829665570214679431409523857092704188253574299536638049142704531292121238147442842560911566059650749429893400119435219677546597088666295143219274706462541426264628601098202284801871408872154348775711828300037390447722801062568616903916500390231249582938999030883555691209625771797419231210601576681732519747463723379487525074591413273839788903850035727655812983664469164526909453954895913859193816189468378638110400179804533648449982352717043323493287136847138967910694859736457254182366845744314200956067229173111899565018965227246476178057449934858708752099365620962164485361860284049557324832965442414352104302549218503175820151000902834201400435172230890805005218097003265151805034310420267649415315579709866144077811678175678107046660739954513554882213369428720684678573724818711237262842230908417712140146086064737065035917246184541474157010088600564330387171007128181282635599929483249716700766021112372465823015017893014411328165767482218224167554431297108029166758632860266224915934498069104765773818108294926812725571126566332396618363932759586865720653119075692001990845517716895889066436863432210404618432866010514336604657366372674839685956594812577445995795891367272866415570019312844412812567344116649659648389057000035699129578954502013014454231689048377973032101481534358741497472313614304665339387638004200546646776696625597825943903638266310610860234864557648107015821488555709520558977602888064115963064398516616473104776120469718045122974651718266913091564326576705406176786225794174270446139633731738643779680214270958145246505545986199465648209453903663414926383097990696954162899348480087983575014691983942309306494989581428051794705154417817363642269203156930380987039128610292015780573251754419306937527158590084348389207059518049480597499750500127182035046605919643424380419818648268327647870240847881378270712601991861767240122405905788553839989850736037551745103946488292909719794562246444976512995121403965419908077589105491349471645570525290721730835602087435583622411787038266979407598589702725784637039002309915961597908480549578612030141185060970552170824563981081811846804415153018424620033737804314404949746531762509254605673230334955291468657981703241024682143814730589949874977869269232212186886531409569562948194919251191322243688276372599318384231276109253003826078273821247536720674517392293383771418696112912712847068432793919847980006970417745300861607319023501449351704272209123526355547260889539367827556288236836514879397261583889324489477571274782548560064107610213627482897385828892124597810748386690987271009787813932395401108564229964423642523397564945858107258630702766314035517721306862420498098643017409227239665499478984300313927187071806761311295414945622472608579713618214143194115297245218123191358572310002765146002511663129849820026759319302423322376141399371189625902893423164015072488992763739257196439711640475073273990395362779620332017774342634981708624822358622226283218166738248469508076690931706081216247500375579284344471861622957468235687356176091984552656840765377000253220779149302180040730081459236869905538692577655978513744943911285807139068141687052754787892819072075914528804352524292457893495748406412151046196600412339997083998802286546889141474391977936306932652825789718649424044950627283206253709606109823295547236812668267232070098891515028031313214700696535824220389220993347472298233765314096654448717331455984800227006014254540210866048089511652810205063270239213811033824611045052362351833142777358295492680641647062274029538594821678592066590511573129826362260457049512247311677257143646681307747678142889483328225539407209009658367928875470486901070379186736946279570371235464711824633154438839239717599703852021994906651853209677537165998432924594235427137938586300352281658671273666283537694640328036726697907403786515985073212841451544070248086680493560353530442266904364233884706862959517845041334073497845971041740660075783833278007888189204867759427866419333021474207204536998736161144880654523002523937470034164644919394962099741286107266273657726114326221583530392618188810671506525609146354385826919069341715491024799457418758376719970978891643513259624224758539634328736883758999405115050449492149622585963311910282329238631962623660870924048441595982205881114722839959881761548848328497864733589088474011461076209000617881179641250624604907463253972977521831274808883130760449680355696569716433875682183361518524376959338837116450530656614368988482666124365138676074007178800742368909388644097705161263484532631230982215661982195573311699198380742441930332936717031581294498525986079364379607592661228102479996876201149144718223950303211064052827958029687840705915266229349062323783235901820930516961776789592710151178738752685629546463473179959728770023296612716493485395681123672663302951667924963499647503666357861824482119789180458730521133789340474571435348235593960223187710870285686419758300408412862576751231091656741491500584116812173672999583391402188439614377318598928528520357203379252447374430671025053616604414087333050004080389414205870838513457007781563595328328647244141352914447855379851070841547264667105592424290845283159544659380542577407838949679808274748707587297249509608185266323472864522272406669240696398065952698803079301146320326538763531855517614173655977819988986371300413104657054457722672144393668447199277369557643215468031126541727421744617959310641408623092586931689673028235222205826330540961973669732268766548084561530908603123513681725447213189455100711228026314880614438863198298916325467872809962973455531206946033365801280088228838560065368518853255280264719360309484046827764748503755639995032111977834028046562535262703399204614784802199458674063701557060600882039007667510642292280975447819068819153962858599908047701427023034060675629964516651413384055646914816574538342165624910109586952169464495869248169160911631082927394417657876819226018850106838083835056885381552649380206854511567994161879980057625444729954199509827905289163181323001770647285497539248915376888975847042123666159540103818597240679063847504166242141463225206187334400217164702378039530932124150132748546038184458812648592001831653040613999777912471667141429322063488322623335278730630073392405199273329221647805077308312529121231183492956625513842077761681549420043050907086640192136052800934891338136333249244932720848855088059161340831691075064371341042090257917505181007948924174376093865725934851245370636938245157338059432388929292342933246180087107407189316066501525435425592201042165684967628191393997015718553724282720182210819655749047253432717117760070222284240033099663252311564583469134975880070685940788740532983485989510633526856091616036344532265432900397405270188239386639969332338860848067181138750377895178894259199574943262317361563375718888158074939160184273614407658318801153008370533363257749355479400710995497580245454139032332897756695096049800309914073351285947132560777437826603534949376754513520072159934723743587685296239672029144363374876006314617789513234918021348819887813979294086708590560434224519120999044569972996345328360019000914610229601054463177469919871796260642358981049228369895809942900235376835656787553428486525755194744979578202031696269389517427744248371429192327771693034549254479807032118114645699268870388978348393380742597954470144548736207487891519998298350110035009552481759106889467039631654050203251838614791825086202405885442014621402324553883789307581879289270710140426351424163808140349492315445145326896308026443728505351542487219686327579621186363454332673981225382322765029168288517973128806209728999939766773063378922900074142992621616705055201663000857073165270206726704906365865435785239679643222476216890566388848818351523307945951116090734839031397450522960239802781730632613295193204651034749483933943253822966920602062952976009133731896770568129513874166960877775021363312253327425622015009068266561608959101952619655419464384079953586143989858022727678494389441527511891740768544833013679642333648538343593508035759256232753411302503613569314061275849199043916769154627771453906254913552885827850318183978725504750819936198457876064205798666780392213403078553342126776781085990644094898974380187152858173548589220389154081027209233144610392179202552290948997564152557061958759790032625549880773508401011638986751172011456759277207984551211853997440558781027430194159807712552332730456198394434381291938050202822700968973460920299331315229330881829759615483510560729937006330671770982952341416859772389232823492314470175762038638828187594946697340275491429212985859884939843621747493220289590743416103820108139689220303650055084511367769630153908387818148987480571682321749305055292667681472407232994905224285064868076408633048709233717413432725996622348244194973160235784138551744140632207042033807494280876443626249288922158988100793972739793302182980779694447158746323213972673884108853539366770839570019317322730649229703854801945797504976637704680883828352823570353053588196815330384427555804880409504130394005110071040249031076689134880341217714566541345635242176703248655155985123242499030364961526990457058244844870458798035541034541951379292864581501999696979089709926443508906416938554229906611458516037486915288276344870438149231744377425355959352767232218071246985306587329111819015371482568466966823137369661328855580539871070756839765463646022962824616655100102563057963989725617050909959082957448383558837600456419959690785713702913576666504209144796934306967190309490758639157407977320553635483132211459090416818713189692644469388486722304382318940944287178058308659482317565016638959539043012688577468424962554798785548249045523072600982198281490857703195681905724127422493053313115908379692810843352384391705483766045811544759784468547063793930320225656570602518681780041781415528083119969639010331426583966164295914969451292951765116754785917466703751503704778867632060708214496654491121690770662155641545788803202721616828780168522734917921098883212438122336038694043970235385290654810506644160683586646254443203276118206671809372063581449118930269027765923426542886036093843861647865399413037594845998735380064894043383675665190941928279318916229249488592122911834763821778225841397901494786182487659894796045125047086279356846921895794824800263308774098161927240660635460868751429469807188589695889449790324182296932595303874822611831473291522164454617046886994004886191925381615442467935784198508949064800154431675994222830953216548755205944628647767471156682341122907766407722482670969634101574128952569869078553690244283528381968774100658724901380209486129665163878227355015578080585426439546344526755580428180636175393404573892438327231398109279279709723354037211241753211270013901874829216389318836487429474310192552352270597021466725900751094267115768931181573305453936961227769236152601401091996207655850072069322737171167975540356818462869559805246790923685007178516814774924653203718694360359958962430730806308691787107185548019088619356055563782408362213711437503258401565853992743101055961926178577459634271280987772815382386139770353393690965390404902935203288439125978873626435610549396065579910499526994967811507762220082115717263948423242787604323343056520181563268508480022673442531510733823290306871599043453933750087500317138695861814678973604761943214448843026785775808181248011110862367325361944270454874202266361553821873719496317589346683498417183350769581641755041331409579465522144336352998802853797422065265066027101693651636614796910916827850064259225782023838746777587131552513588272852258843431477678206876447943903270240961144852499801462659472022515721294973636216077697138620099398932445525335830086211306420330626054038103866965835388866151573195537895295541158092324988494912762219082612278663136687577063498101319705804177099561048274853938999639581270176954679507436877994034411483324636126624206032567182704190113451935857177797697152259052797102108751299257071154989647755251434327092143281433767821939644083780612281696999605582894683965536780308804443737534151384205490475873521340358768230658611351416208534578945541881622830372230477271432364294737589274882793332487972802562762010917319119716791590905468582247694686431068000964151139028909041022900173098321820454988064753004956511916299110341305717022289241540275250201822035370148042770455396595123531111529954368685651355752798323473463253539841038744809821818702123080943728003888625213520126110257485575900685346442669636314967843856144538331067024363966567214465754504824520732659824323459017498340745708027326252594506110917654931762789550261019831308835571667607246662788318054497284188933198286439077109325126654901463978720839453119974452680044320736403766646420517703548596170265660823500005357798606134573849458068081347404349883142719998612449817471690474541387014108935087849869927853609771930136512705716816151534537673412865886783697989668766369601594525129017260554888226502109931495858711390552067249967176336226328886044666425894756723522771401449731504853275959298130084199368713451165459982646611146676279570788574103973268858859089263031818962015133572456237735476475582174760641534148572829100169864867274601983271375001988994184354047714691955859340194731668821793357705602304222920458826039675374873778573686887086716017692666889000508179891362601100340567460569223768023644237679512600562101906885509964455172154046795386684272907163934179193271459104566884323387332889587292861814352669718056355780281589482189987478096283218763994996454759290224031137741887417013823550652839169349563202951003695628728133607289363515518188563284584218975375700800061969135709775853895570755340917177793183788723506335008683166120268973329398076372476566015684327775169782563475555818289150798288627415032302235270435179455172647817444646916673187705983673980436699207485567633698636851884729818821957580572644143740137019889306020741032256425304867478661380982461427454325713296694193971179710133787353819323148514486602931276442952272370925054210196843318548220813327248116336993059949834097619145076771900530194271016517696404457369767845122667777024198039061718453615306975519962633012845307743834873947367850141315717532229767876369627954520275475595320765869487497076296685931496738850595507135461825749999785787438129476060037714678462852247722368689952126356120583378315423939121406891634699123824173884378495360638533189367957967420951643555084709123987275123599486597078007043492002115780171099195482895581298551080979356715880274193424639964437310708835316012063226009180656393393367605857202672047995818359002426499422774972922787237573045513646437334463572837484619889719223951322345645046974227407038421812854250289097040158550669097423558186937795891324056018214264369809603258481452626217757908562731711531808622802795879603861437646398545699208849249431805710718033479519572992081048901780715020080531886659132267815567080514640440541885345234000184214698468365286653390905188983333783142645548803424835455290145070542276855371540179032796056903759061650741538430534395571363828887601990080654011005495011106959624578557196509410051518517824037558067977520548955774330130499186038887396395728440211174017252576114873857237002775862064738415381933185727268146738101391729166566515409178557959056405734004396059244873441542289200023679906806210976955757187141133309460416111658848386203798409339132516887651334074132041803490790137472953261413831805767961963503382306116660669570774465687544360110509741427498887893529298429518853898519337768663606792466011692579110035040582194736240413920267218645893745768049021900605266466018139669881937284951742480371593144088363844278988196290543727023184009786099550060696233451045770106297157447677214412882982970026458420426990133618839868417152778091137895691284177505210439126105592466069349630300632236871889038835797032841837883034785689214712096583804962605022135420952608259422569737885807061162789495099642503745376007686278873692575357761793597805383436314502913312659107291997588333344436263784790049458034432240445253824627610109812311099475834149395937524896992790733586817320264551546513878792478112022365310297913362160062430965969454880427584394650270645743274726237486278119805493706955401625182854704834742465199864490834520175599746432266837264743095060154241943857593797341258651981140250491090950851936907411947585568502467734107785536124588256853469000349272311429970250244627288280678103310847677458683007306893872930679767100523004613358641969907459734469316792807928460106853001533070240194303466969304289645101671874849550793913938578579251787948665868109194588838503817358118545635493197912802863821379647179644079021023011811684251021423308332100593991280731120947784648059284541012820533557940158513845251221371848785575452289197545242652526962815866708587068930990230796703305609983940105776942367321361202224101544731692156984328119788856004344154274682007267598745049036011593710853790006904465844242650603693069151498910834906786643593018341365136736784435529467588571539048225982469985656757107449842929385444954238104985327769607895716472779163451691133278419719491556866417092307878650748603313929847685317304914062266162031193132471518691701189764890087917486133418900408175746341887354477873038641906129929448788700373674237028240260993253710067224520341169866164729722484186497222689426787038409498475947129641967018006390566418282056296408035211037870162449329702249764790976172352752320874271150649189415520070789285339227661442217477097882453247795360722804904342882180193575937799203185355378378939780876015396966625597803643717105727453171910380850175434615005959281063952826817803239294660997509050281745720320787748714538528850142225163451535852658354428283661069093461381319738468296587796961547410742180355927125476838311394840175748879352999122277103431633281620002106737627836479148363491897143195260106025028696361520616052869979055886863085886766563989100134394804032683172428787641930263633511129524641498378785446455744384802137217101711741288025369185276185315812557677711989328016595541768837411110017369080631910229661234421768334506302831175960615586404445930083213298881284212971613616375034932300964078008057952144608730114781542785128528115140308920282089430115407153766888417001028522883783124371886014366050019674782982838336974199736133948290006971759673208028292730536881938069744561094660440088199865601871074709614232963822021699681680407158367546168114582395305502729523665182186749159368969692066337125149200573994707869341533879098411423314511423129787547425749331902816643245162135848957682607733745655195777619767213113455967357639554270526011291264443242338587156281014704755387829690485588045905361915352236748582678544951662472047961992862292529295817207176711726197684182950923538138959781713092414519704927190056962990222830200596147188771933925073939473507204808144440962169762262536449450374939124289694505953578558989145152252893197037102718430822867325467421473038502679736563395608363589902003264164347382773096600529801539491026501070213881367966680497617759981804980163619656680525463543124046694073529538256658698961489264703849995197998367566334429350510222060807023928316891696600741922934903821679339781250733364253215385990853320480677811399383530622188166523113271782500866521744774631046895827374298209250910134157234017707297382598763272297534049336698243124455255794304156146028396925762792641671727059919385737308841689980885456364548707585151528663552132645756376081761827300256265567080655034660862877450275375902571427011571029508596402411473971145194308940319955590432457554161476849135665145880496680657525492857100643809226391384648187942968628906034506464977496869174331545622411838952010761094222895386117719802844940078048206183892721444695974919564097827757423200232810690132164277001153738674219410910848420665641260804655510146938187926966898384592097678321697315795196049635001374764537356191237281135712405594425185164703489638017442839386851483587554263810049688088207561511412731854517771851719104553147643038707022180486102758756752092574519947300265299728482575191041311288799042131939889877148119480297817288177659705567681702786460078228415754804715196432818977313849496823727610894226304401574674235078783378263540502181458188087472666657207698156519184112697001343206531121706192719413523096028341510117984385789548186433895865397164241251483995992023779041365438937441498718629887039241007543390162624918788184614828937264027042551324742165637674211634918025108389280889588430688951365549566824095712659415499854021395824560072559742879079880144493569400355207205770293952469935821220222870151200337059829254824263429136954781310662670920503149937807473074311207847932931707568740693247545184920215506568659371657246129915537359895709913214318336417852995733518292754415867670966758448172081433706778652552500032917746565092654788402520052584292433558594291620457773698084396002645550203749485328452424229975719933666962306066999274758712916582859819368327705718573119643133329070408589577037069751208552371036422172894147917744159670130081451348957864493765367634776262918621194175025490743080912756997852707486645081839605147017448713386083897515781348873999081165358143413629386204780691663788736580663229341575412612656539233292123060313756176589326220342602596643055282507610446316263352040185352041123006938280396171493381380737912949409933201521309039847288862010914227249353802063561171501948673941649138185003497416611804630869978035635624779455824136485783082053338982401506011592966749834426753252626526764333178605050168429130856886248470560100119088317290776912672405619114231438533357898721055590676730371307366573332995577226015245513749905038700241362056539809955484623131253526021050027083405120175837161620970008662461017027461010475212900983331140208619891311860963641524159726873275984972427159998747714011370459067291161264929698885550122333270634446867014473128307232266036866647172828433307400975722574737166921517494130257065959697186433173197028371809918229497075506128691738864183735517659703841743452210842511975394278765272387974160392261547579572019827018843371025125254456974370364609022599007868023355824869191189969878969527878679453712007109581742926954900557472364745132562806965182337657249139642783137507162080154662574163574847480821837221152597521615872099972857090557399631818127213550029834620529870929514213229607885747935136571474906772880741737231612735629302903975681492707672769841239945719870173380310662698150153345564109400031601028212608968803412134682818201475075241287764083660669970025440220685915443276353293730866568368605840111078212619574200038462259223915190640950581212304077864184000563475040497149645901163731413109428058811023456121084740586097627172469013364023302988092710243322763783717073955594872567925260110320639939785414818427867749640103690809163034619591199438006473292801191307709615517508211411625524311400077289840810186853478361543482660308014115426026082993848835070930270528846644508575408103944004367966059165083042322964120091757960207845201679441258508440021289661038243033539661919912413555089713221004245977925910328459991146766513785380833107018457337208494805780495095476179479616826419693158457139312576786814205139381223519323624235978973158609685972101919695298265248470221234403044157826042795348536382541372135958907636671582239336949191471838721558492974556517469102960940284691807037774979842134708601615495035727941823714825322118111432075816398396263917240194107862039097282866425165735355630024909734784573285494012727853929760894710969023217328483340116937948224796283021067274933487072896773973106911344347267879930838295315912079008254210505563518029237858112416930769407870623797691796357959869023543140205467331212472859436188960578046286951402858428381112597423939756992471879631261500382301817860192288251668359389258500171940964412940300921119976010229985561290493980381509423044967172860741988060279861354767476314124582313973921160862212049423554731258405568254921908536073673863727892402443586193001320144301544294947114208485433902704602840169250697488563762628013849490434080993410887058268223444430871364121242187104628478525626424820322921018851957788780794607395634923414389550192744265024816332796984035020772407523360520336804184989290082907119447104824783285667824341047130965187479802121306984755530186998363579808959463755048809213223978484552067289189274450086350094777560578120251912250066611985498181903636901240392332302545003951757910836265100254037163259918078014091015605742179418372521206002068777031561004207898588111149899326360925233836153531369139068116952805550158523363480488315017294678150797024503139154729317914990322658636382668896305418841106165939918370583511158297142601014965057373673337183498415186344988318323191842260798087992384511720522094731222125744862751117635680124056929019299076604041648850746848503333909752414605426944177955215274854336204938863291243301072146471895428077584065146596517299005466854942773311624621579177335029582402940564866350875566094067907491977359396313435132367575221989881959217215798504811893244007199169074559504549455332365721628642833481442924769659935899643598889313654155562396285092513138593224621503850804040133463667473304464640331603645416831233315057606400835605334069140109515921327283770837304636292883000462392161784642994553902627978934811553641513882689939682275580518168894377104997307411260421119450333177820029199663027622076101491812888862527101341273064837192515965429967699409800865475874319096335834802837258271933662894242548343613789880719036556081373834337941687082732429842351588239521082764535922258710208397375312988448318062557076788454006887677073605313807089448134108893469403479058940235780634802252803698194255387940572416327381920949676464304881532614108185096599490971488258342662053397755306781691240528967805315082192406620262473380874137277449022165359841087331706936559478870606890210762329490913011972406991935509852155625961674691319767226342323081503192882062877781261285003725378800753577438969336416968215532107667049626714544078119872745817774096094246852656909810877761102643013331220160037046384177355408257616619044114997197700162519823341170717957429324010871184642756051920090104072953825531072525986429864206941255702217466988002596941426452828515174400261106778203256489226334403539594003251105937008452276207797687343505317009224598696825458702381575073242411125928486238389948082291591835476654742249779677182024289558552299797227018270517355967246998962511466835500762593692944776367649598334786102513153054476303564022131812588080689696691818835270176521486531067632770079993572025631516497292088592798150520305253422081060333069719092435701111543180859973519294670799998563095524306583835462970511753406937141428398129913125551642911153042187735376142468821837653432232466647988399251725709932631133419232445001296095881890450515850661390095813262085473043091523430629433306304972303292069359623843139774605357141379073985496797658860138299798108564174283286757705691309666906032225566318605129110237425698875801247996077324007339725108492704321657929963434692608927679679398853154192807107710723704907272579666822628736786059752560052673372855264900448730466061205747625369934274706195207859721415736976860399207245954791465564954145154442038706618798997903655547403192712217200966265362780004529423267977642719802126251333796725985524120990883524634812120004806422707872017074439694402903097562628373052715190349782647347139909767878920050779402784006488312001813340145359657197644261223890274390795072247327064034818766378099326710217129532305337703959604358426081498938132653683821375749113212988904234362318409335221462503586710723706333658722082682571883416126216308999678453222040751295142823265890981290449983150742620489384155471270632933572727817623427933240315066050393197341615244569866494453593189438939085127913981492841001059306996989284770763369781612771274881316408268271127193011429870434786240836676284453790104887445311610772414515387831778758725964512440034054505126926628008894418567679530982560185673399263922427558782262403396239305185288781648907406609309176082833938417259571092682998747339391746285708186532904538113652091918958697020252553149849817397766951443275295823828153751890781749945971266829189754844369184231397789582209499943968079814881685619131899897774844386742084557359358947050339039653047565288677033919732191997994319830499926177654140899946543879144804711057653496837748966201874579258568361837622567757741993021381032135780258559308128478653105446783041217994164746659161387970329000429765384455030759839950529038222880143161761123628542017705304548533170561531499001407376528321011972068714244178202448230036936247438486350788816838853824202975081586726365316964152508024109893132164996334668371267367275030175393349491609620395387479073157139946131071879773171890552363011607286792481872476362514029709428641870589554379347876461955795274764236093278043786877923646333390410804952434709190048865993727578477962114046662929307787142182178323997512167745813813460210209274899782798668974396735346783554843178556908311304940658355989384200197837091940198319337655739894876070858446635622367335035611537430410517332753384683604086766302000779067082013565945645012995372847073494770164228403331807899427667275299370675889914960820408426135154358819722505675879956751518962186672442637645625796702307303106318537134118288775391998254831828967378758037216073564143809194647802428872461594427901240623968473197855764543549756499453514726637349022056262948933442556496064603903761776953749869054140466190923334474786499290053206113038461404985538899782124205409042303669458940962584706633139729530478508167948906522292863406875358467323228533093675747844925876632350297288465893124433039074347972142422790325136920972283945751491447639243837933879622002549557955654886594751016694551036167708307484460638498906724136195288569689182216666308157875349753748598859031103650742031045566061673400868984872397191732849746319389252703055740225490818250675921924790333504794989379401483872090878523211696528834754602537410076193218523983713816731483094370184978400352754623941535465254801655822613622745015646418757555464148701442185478818360925989364838885813145395872245646942072714856979683094970874153007323958078712699849648214146697963590620041572793246144773968365891263028315565770467700399402169260423820528368650592954688113448270984581313286073028522280920901286397451840215605452503712096717954135877292835040213198675651082964756938959038054354175669103335418690864569058564929264579602629678200414883700806795794841357621259701698973176307381352362375268220069568309191120848581958831547872045976504288808319210540479126441189899225944428966542129192112190862360201510139125760113639944674653295152909591691610707100056687577415974195284556987760529861990937395484112306560787227615630209226876991079086943088433710847526762816626823871615578284348330392403622594911143183757574198401810505352915730739585709801218606237402620339474135363261237784028202341461204625791648356174220313478922204269390074213905665110214097428244130871471204266845760906652023932398744817837477834516663996316532067020000730419237277587753733819273489573530245868401873816470508977286279386511696161244518636385096456291298135645074571045072655174683778310481152545788414730771221642056096123261044145765326589784583870298660651214077027707175605857827333658651917371634155573906482709814969104661019875974847095565133152890099931455793849791318542654853498549216014029902213184770900923187252013439976509424040038156575625035369925316572382014009953101254356808887309714557824196270321795429579514522071160409038298185663295034622941144896239955954308355384125331358481065693275176792284389923868982971115405646803006611650427460738051548052287954165981621697191653700610883512511456783884676440630677392415727597604118554061475670580593746685073184902183250875791657340688416952832792321383829965671015888921331936299764102865330265073515817905865480968887784440325554339940929318227233497295625626441128137776652664088078102917546447349911717292646890395880064351496635956417326920278299961018841952086915686073040511569301421242202815278711336546851419307003257629208396207683570112198209331494584987086774122805652939859908490677435367110077232030131749284858075549493951765348492599039385147701465285244101754558397130148927372488492828673860313936500953058019394777135865637436947029684670432767232019340993225840719457487684981202204952497824647554987511177175425706577321228955676868016073667444041104520502478708677211808252564590910676408912474660922811247998939616311505869968357059652135619263868503168275332274132894498130426036602852606626510099915789896812563370764113496269954397124823760047561246727998888577056941134295610562748422667058935593850800090817211708281787254014614406392005429554651740800842829718374600288490905390313864075264175026924311248667547540786900626751655120947815874345867866710312186408905588784123211273798960392967114345089143675101178141925978583525958687576828527193781566548469243712548834895078472496867504599353910485431399609914471653162948840327539134732415952378248136739297042725078972387015497445532962333408125343213131016537780808809790512666309466315067071359179125045892285130223653010311903165953254243093565740601844879921936203774090927474021696620216601013869980199825242288632828432415332698598716921251458681445574610903446313353871106203926638643086320188468956852174684115259147162672836509404942845939118114630000116467884051114299083164710169441247894725056006114088991681556262268920727051675111235719073000218509124886305943169944111356226889991677143715208911087670923453753224532610627719004822116163223715461749678592463569549774518963416422150913448183775613572319412919305386174909228001650133401059191206655332842280317215895033615025239439436201232398928157665611999629890049759807386844532041976559284003308465596946389015536263584939417060345796900249098916599213828620319507685062845820942568759289018989400307294992360071062004320715143908209546616014200672175521165621134524605246292278191126125864140245058033386849095548617864113588735580271812949732090779140702509380253281421874924888111306022380404735929799764741935272761902882610921011401576044247396894174622040694279952241576488818430004557133712988232732573970365237460616118992109157497463336307422225768154559749516349419087405447547175722567463267613465503042244101003239190981726661990350904147472881179192392114189423329367423495792659103062318292670182043857628243641866924009821227825286108038404329388261387056064288513962462629060827634606043955038898839620869547906603999313226301672089115717986361550128751191920300821270613312019493931295173508315691092084279696319981679352444143799771625400569681003312296935157650235249292996880229275733841357176614700548881873217728990911490713385227266759225778770189589036867515486217066581112848291069630165276243693315813766354072716199334290002954293805825494969285107988109840487841334461148051693255034512225416311017483253120829687956350039663519908011827910343084073260086282996279677205123694506236112060259242891375897017516348467282609900766541402882854289753150432268814552815629242949834489357055456179759275499480198717199138646852272890403565565188392828004143901603293260453474280001924996801055726954240026449248492129223417527344078768582644229140562078851981151911300016743207151048312205947135881234710272989865515806682254480876892587362070751327393491683839831741628698646964156717169506214206880382765183298586114089641121084093019593247183448150511954013082909553309007659969042498403828053365817744249142443782360482325566315228181855093884438010571700917872030021069565769588295207668600952254438491326514028926882555380446331815273998727971356990741507730032454831038024116800902508825840330501901088070564759756308271104839092015967194447637112491428603575466641607663155487044888675098430468390053956933721435476011915614208676697641442777827466759282663837256453438921825046359568060853956012682999346762599886112266089540816971348771742715522669550520261215057657185618376518435611059106400489003038869352484186434856923562649571926323087363991112255436280277240668121116833950683633900287135825449838733014335857335988265792997937684358153573929744755889963004607951360198005463274710841040150048765381813877798044964421291514091728942883548304235342931868809211132940312152238025566729464138336434317880811579513363430828518574376784111725449365542048493332582816820401309796428293208580658609366136139602608656404324273956212725253705228691743193743278879524400627827261902318539273480644359755865792233594000439207266674961996828741576880945053012240479438942661189189337982843079293223338261137457607951864819304060406298381095226916126547001129205146573097623569447360148708873371461174992091133721668727723010342142331301389298609926147401227580643503559531183957319869644090716463026484207120608917993903708722389159006358438218140456481168016360698006111909361015328484367492497399639288859042733961518718393061231617596627727045126136178578777529377114224874657903441242755472708208359764769926671946706796780968554506288400039286218790746907333697771099099592142346577093583943818771074698415644765832196494357963505940914030698704384372274082525695402770354335591082819103621279322560462369643219540328646855534830678724105105953702871308767699349164279303793378721742539233811056642498011792889160268577568501136559275240033086847339946572452978184799307278212066202389509893396727121993876616980132184409209697324064247203183855443254233513897063821950339455832516743753036022853700844182926486271723842157952400839874972689569843509399088285278156272653787205920819083849388448421763251944501247085633911007318465091548098832399394844375937770100363580485670548587554764894342728329952797315550035802058762086432287787970302620886337784844654200210138744728643473007369359173704232478448078427321109567013309644190932235297862558331441423571812810616701743751393630649839910693131273987189074306797141318138250181330817147766343043114363964262240090802551591126512966451309452750904485242748561707529218449313050209237496603077063971916273692405183069732022649252175928944786177452387503921899331593316296937104236830413209666065629344502721194833497227598283875793804206410290344561576128777646978292324125012204491577991807960563453287142030261433748608544400353800182377657615465485802602041505029575535527857915332149855106436827809907534152062636998024878082938304072124584340269583769915544625971087109436517137905506245305287503227142407149059399492468098392140870867649996573642568757503411601701433953082659079680463606858267949827879504199335219007182170537166913101583144770694624448325135476905489372913482932382917136954801979176307256088907086411123702577255692515819652258123594793717097514579072165586408065249880404367420675888499278848307004013785801475783505015714899874040041123080634707600071183842839645195226423020529037734214063938690267256487705806709787648520177313416637093189256568305167158609878694247604537250595672267509858125903582930841809307967233147210332958843945262862005795505317647663405939114074681088260453145348865326467987561894029417400970948224174834073136967241794983449070822263167623489356569305627195485479322409820110213195936496901319388631259750609012365058721399628628455021776092098336321829172776704869063136218983694230990202466869879774588590112902267946750098550796054592575449190471379288581015651879663514044167896664680308577280966448269919587179216010682119475266482870081879917270575140980181132068041523446221313618391903398006179676433091534480520284190957338398581463330717250863030410909029155238809036115847659947903826496165396626648417060793048736842465544187904448645926152180119322281525768314743598163031912364494071521877177772596662567199252280686179169377021571228498713175837896962361939988707570119337666460251059154311752395218419737316251082985183240064448643688594839444561910888881991893021943930754387461663737574618182857356061984623734934730752583220457115263854870515530206021906535627868717948666821977920825131427094809885435183181719556679779592639101472712173183716244285856550744084001112398374772142218096922739292600972995926191776777445016551253113383473664250368998851197437088834157921301585939750027948811390273686642339793738235346287489758749814449107070108947462677423977734438984773258550101932601887430879117134568746091395825333227980017594603106831250207506512294339084602659613674345017248755380315950520597701514533884423895770076453596849381544902054044738632455017107264413827976653806945889023044226458479513146673801779279598856833958807056936447098321725623222768543028739835016686496509700588357744139903898507581535180630652191218555369456920177429583967700309863263174831673833134112085517304087529517872260263666181560276443815399600453987287472701997975879687880366866911479426874982737296216005369721894680933964986119291305726999896567267593115873786251310775649951711319145472329840995775640822842918684705436777864272001104111305798604279315702186030793614089576307698961336902869554866919067375844436432826199901807351453993118625918720958855496598755558963112586116716368908077061235067333674910336074017142988966117112267214248409961232402601282131514354737969107052730405470636428725214127069623022437057294645031970856820002453768845101179761228573012778832135123854729492491784263068001068966312801715070159903097629718615722291264888027034937408473058359472339025935416275347433656858307285143942665659988059786107613724940529550745553418953788872119473114067238536983582153947667377270007027424768470501845567180323307220282568396591943537797078392631714997312554574346587863987875325879776472542931389217031767831218760967065709766689277238379764525540926781049385943073917299623716217797358376985868744102745270946365972766559709478276289915985036429804025893665501579019137463731463174956280458681312006373984867387162752391034000617950168744339948805751690144664066119508205709398496298503407536946644288753075776792183793261606250303741653914376420625224432364149512379993576400361077552449035445983206730296509001964814073892008649604500674916496253753159747634296966783890129596483760258650169714840096350482603667604195122079746108232081189449018260505030619254329751933148081812009991749189194238409681419023726052700220668598562969646003334702587465761044686586279816526261245162341584911320117048182248261125252203920083498241321141839066895592634188636443961271443094648166648624709706360837866135426433635486084147858496474727662243968450858705786025461714470553934265750788532839906337554201613027281069748812481992785769571656468221978438643776785341922452356218782251201042614470794469893651943376117252622641318022394772679607222601765369537031457858261378479773949597918605998934984903717969868442502145466687503709838142823914748225057048408395805461721312452259860678498414957875555937937445895709887808833760077878491498284732157383639660051447049253461716181500240255228706200122889543008841481657993645943677472193090790601711723170741891787185362594824426514136845645765550133242351502466203755553473028078440340390773111497551438036954748691363935879145384811013749644364336148247662507109077911588865744704639660098466344229552763179324777484353124973184973023080807055183667126921099057413172194056614414412479052521887792409310359026498304384193884074661669705516997443147724010292380313781567897502425976816059616744121301225087315463986833378089965328959597607774531411362847404316371311447903230374677318655689093510035126420902617367267237550334790500734718632045577011744393879619085136974373485202515665239106539793058475220013768566353709982875583221104251621128137322733105484326143849388536654891416330125396664367980190238733420764405889979042414211983177123086361243237835123454993946120089855707972386760440163622206349885301114878156980261166077108264319457342322083332821132685687085798103153006041263236861404786139883873827288242644124133382850584268482194607391989875260752253854953455441208605178436652779429074001290356491497877584454773325781990404435787623843545899092116780565897942098633520714137947839002701892134652386525375119058294570445896953201523178691170918441023768728910592633051812519048480015684122080073153711846684187175758991954232758175643492561768291385650666024514294899061678660494283207264740733253024384573600833486630444265205369688907295960034798036168737418469445629982372920663397004013273185618367967766122962362089019875647108482247862981622309241980649987134162553530196175878312708879097676765224150051799628274762796535849192659861580115024528572304923067746925303739706357943525089207527304976831094065066568175672400988053813298362534316431937667483635823631734297600087198171924312034534104707225649515957416091336894111558668263241625307905806303350878890098031777886640548617189819287460587297017531335883575452699176210487789545984209798462032317479894250075227955112292774759891076738106621198783843413252350354307461186529685452021856567945344919701306558235316009888141252307013338940010483542053053719839623981084445134713605438467532524718565327875777523911139130577624951310541547832647862525357526826482871352731514524204861093103425454477678981749795687125398811922518311047348665445596203332479344988403858126028423491929178420764863850819111102082115387960414055124750684914448896420171666703450635917353516130475564871121583179946307967370753484303084314502100120381595088789337412277783305154909834526961611787150386674312972665078317920301066296778128114007393299648107008489805902344423410933934750421194095355125958067313967126792144918030947507041224565725076389981869086510440236459189022282503521350621418125129442162176485464981670435041325179743762564822740688721404024132561578250974321623093248080722312855383217478685436405156997372971672190496384904271971997210787273110801783576701178042162170389643148810351971896540902266508872900908299503079357736247468069397200074353359295301611037127917996184431767575304615054004960269915520551411164469955934300921630604066080673974138326945819744920857397433466390577914100486144332137223757740879262804966856787391814561727887583165147031476518673785622107454623536945520646831007104701185752948920542271172639351797680628216470902477119628085579211297113873672888411965695523290589154206729344683235106506066788411260362422770251981777574658480464802278477459737082542941370757800671976504563873652803296626821983584928373570380673526612264680827678949477534206084303553108154580926708763113763529228825158790453329610042293308317327743714693418999467762210546374761237359641629245007729890623285026446701933515417182219612458760668219903942736496317417354902661753523109754432892073857910728253731937550261648844109178589810495653237933568774982342696236499666357673207652122321885851450052449819484701665056312174870232420382285107899949434641261369594179482978098993574220407256250422519260039317836101476975100694273823449263578123119968905288367682511266448872722504509189201970145015126230345144044804331619463747429625755125080119528629848837835335380885362896761284908898440270139473322440339492670670690984602561503409023637978763595297199844144056254920629493116066033202595773730760278457268364805196256610887953505061675178146610529787199985130257136323249474754748224064263719534568771241162376815121317123188831516214689800902581210217942209192622071903354844672740229631030173899613701827918885907494633912121760303961343886444946169861076232996224572537394756126401713797763594118397741739643687356791825024648526378754843969123165395089943468603830247705325732977772325893659871368528536327354125154460082129840588377600435028354453522532183445082693897102129611159531451779714110896072579551148760186303797380350232439893788330402117397730109926980402527261589505094452601165549685212106537424727786933661941551127186268306352611651237426101391296607413653908445259636838252973397754433474948537674047418739614156461852100558396874746602418622045949495241795613003717225140164942529498522517223625872285983822013319170992242705237831675756789802736253460607560293816099684753022069776760833093019585011527593890352598881234972728804988374696837681204184714993552815770026125519409868263224677414214035082894768744378469273130470137320750520913919807660223664325789616014107289157706657241347974582799440612928009062264714859136693366403987616739212980988089553317536688632870024050908211379720605682790266870907843480598241193291251812962096218396076753429671382307478797880270298137808331429188218958848463787918776997043091045573937586723307143397967014670046214630165951931326538409049786315380345174063586619812153671989044457828759197426943839836668320514372251508385502757102650840294501535183792412126915124056134492441504546674277414589892827029385435480841106651419939496197740184533335783470177299201465264483663922353889772866882550564373626510549372590379562362520362030605405020942867163544631621951983544426540027424771357976113733112636183536745668443342547251652316039580933494202698475907751911366790652597192226100994942515885764232300634414060794888228757925281483352628143795168745448773627095166416140719743800612791463169852615045664201161698012419678343086894269664136108045376681726474788415724655162332857750004837449740208664067874955736889212042250074390654492362799587287014826168815817166560076511135255199922512926671299523638011686415486836603856400444636295652289985483040127181343866521977053204289853342652014166140734986741763860487841459085718850556045469837436991035993343456394874016431024024088391180040053345228020216543131230079346060658911444786060819157260759091505942298165370433177413599890260573126554076684150545439449717884744455644937304618970309143329291302369260513574696369950665344274315296776343124636321143568179365502601161037188198296997732529931125956821263243241671733567426703490165305610073112681890735815924192267619958951307226446897218996317076536537463996173983605398437699131435527850094874992466116284169716973195708626634420285813713579247318531227455331252382747330644396186414528032348674923525109768103040051292352111982958736928968688954071974272243841013529274292229367945808883454274725956635262139003248649111945804567435650825405102627597081772062735066235562949439048514182081037224008536389414549588676688633161378318601053187779731401903600455749685265853113488400763148470640745628434999311149727119450335135289983430392035586183270001235590453556935626129393821979256049855473521989336522317208937139539371424955669838531840755580541673489913880904055955799704642222257944483731506779201845352248239739974158402820644424326913073541785652383118791116173653358988930228939377779009119843662828604402271365242850512626957800419633068322118260728681468757829061635782327802726044437336586539520639750977242691122408984658405239977955663330868698590483153446918351221755248020402042593656257957131255012742465041388420551588913535508747352718901514367542918817969953161736983066382471132795357368471947718932758176706879826658574459638135989633097053084263403834402582582818031256503834341416654430126522642925561984473727454045903638019533230712007611656731341547027473820337481381281583157876867032212394110465667099341177029253950711564564015487118598140909547366168391837213119137637308662024630994487037589386482949457725583765509730688440820505333900509099353756374667331877409622933775286189154560944811132580669607790451707030597104139720920648178131691617414620557792409007349979658273469817229835380540008928027171124993998231165833057746719574697070994248167158076285638344322741582443294924850742157474372625572297676092663728139096965505116477553419500122154152374205531251363888559800136089551722986806240113994345650025443707082485942589099647697570249554628480734275106245708643162244064679399730939606521186329327961550973423828659488115087027367743209720087833434570648152474740761146632051812751977524620511331385871215823211208409358167004318317444586578577009889851772676067633519513881578553340984560202672834956203597496820704903099134215714590274285531297786188256908843808608328770460447167354003649791708164259716722687695646785475788634011028414613605640461389870833880440258580478277087704081793625071605981457644775467841062024315092985483897997231578051820563085408604661476506088713908447914819104499800008370940106919443409595875360841007943568265843193473947272952387108441618326126589337991373695560603072161261010132845686834176806124138225071691242920232402040357845966915091177889478492061380554598647425357670118114814644784805475949046723370669493485197656720940825484531456004979676528661202118261863995093649425821416438807110573633898821203198782615151127753303445564835727764041882022422815297749707643639104843693012192891899005351730787767068897517888593321782069505998252511481606722344838544446285852307526323447591904900775678728081366678394704852917585905653811091983655435022061833853468925731726746717093778800286913016037083601571623823403614859163624226372812677305327827385122276428056318411694823900504670228709939665382165063880815269722310846385706684674592981061979455467838463588889767529641595954943540584153964783182455259305181538078073066672616929755732380128849986873642353558548692591783320730468040980272574201832753164859713717820341756889224813233215530132176438967180354766034148866076721481410756917809080769567153109199499057737099686460272359140985615705047705749722069618105783074890027539674908578814727420787236456356767255150472134665229012566832218717621492630871261863173445824289455095816192778206678709718607766125378919747497278856163231330456652994861523926449587024521875987662957126173326518483734973288697679051223137036594922010622314260597466596201194353203863050175841271055646004306994053629067071186906674861014059593756678627192440966211928881738115072810941629485277598562273833579689782152617118198515159544734116309468892149272085493579803147658257037464227280866775559329267910547213020505165647907208659051795115533792253484123112407503204085978198653543102422932328129248807389749340342731875461853019820803854931167691667679415866334925805524108912575232705431000266722201856493056664038320608747765310116098906484657724911953658632531018589580085909626136802228539915945066428910789991029579290755244053127419045802656883434865535493394332440834854302890494284443893925345750899936151616144250775422139131562892284026272605341147537367334805980073757470001299005749993106270037484349790942842066783740069551346087101817990166337256112311248730293172012124077909965741310303223545343887992613531930851213603834715767652866708388077509612243633964266888417217416192885860268317168567925128141107298885255893382306018950657335699190193576960909584307286111892378259580482604606992837504493452438666197519850737636842962437037001073056830477706470691095733811663891309906553030283024410728831438904203706487240904883023515068331153016362523693011595443148408329381207630811577272875700969241806901547345925476838641325875964546878613722403553130824106799132444828518236714980974401215435144347119684012814173170563744262325701136721788523415628808566700075447997888587282228502183229156043872319647144140835325666712126018026273144214556038001776705163594921017268086645099250009599717344141141138165477526250329416638809045379316534196991930322288099263616194221203244440409231770853950323279517330455813869352937287609111846287470042161411887534825556689523458039002620535921515019008678687519434358663223115009121908932851368046943841644600002013700020614601674169168278417728074191357255122350157063782648006227052236863889826127103832652256587539150618088635064563774610747029819183317186879080040364234707168016506952202600056342532818086552222105048066125261591718301376389984758258269482549495790220595518726046614898418347416190673064199340427074638330751493288120149979056143498168972952067424937778776323457569473043366823083322284608039582905583713374144452377457433486625119699729110609226291264599610396807991660336914902557174440687481807819569904591571243747303994307097663146022959349834645054245415286592745053436501400335610324038238806403151046305925507110951940099233616444424574571553911319833214563734812967222238011417763579212831105127285586016209335150227111248410634965206055860163048569224798354606407978014015480293759844475368451495493367119002088570610172061178525218992372609756098628056494584080447133375755287211478156556969626800210438614481625585396002145153475372257059960307296984886042192031556006756482084764525316444770528595966018277869803066655927871505906223681748613806594097427541504943615075524697233474009139066637890545947767829340080877449086532465463854023996321602587288769083218236510776006964903650896964560241928000990020034127750347418709747204340674314380544925327143151027257485612151988785710151252676876151493822057097995105451469396474192670431146377469792128034082983690544893814418122159190962041561366505894284109481110737689596037501490315989878527993676990517569823017236421376773818196472389908450848860066746337749330887129992836797213288624127792726188755280885905318966113602856549930581037845502981749621717982589920463047531672642452192898557055016795926235326047390695203623073144111608367771370610703899123611366501687598367559391256022134782180069262974291596662839035711720891457004112157531452692768731065848474603074560259500440479012259773140702774918991178437395834793204309579093108039144317254037641489344431231786247481142495159938295200344626213377417890052420861264251635167223025686343495090010687636480916936460932502908540004096093434593489758497883137845793457935967883295478861234262100455068498753360659341583346803916711394980916122832506539283923549416505825267816491492377562754136017955703479169855298161093526248383055990321461762430905493635191670585643092663545018488799773961368322928685807788380453609251931167879169004935535850443531357984635577569386862052791861447509611207858973450915382550702450248135724671113738247513788128457781245975151262915813260558638993563892686464422865330495472438775119566303643750705907011287054211221770627056234658182340514005935599283841851992220698319748956260194880914297375838381724625928683583038595542297399504765389409980846399737697417999805686881878598175479682688616742166581566751138622084553091815580383262551098767080991934192095807024309973370111111619734683887583991761186530317488006561263981622417137338143426295599557408542179895186915391217967514061929358409086034771860345479494325164793516029925251006175109451384720618340296761493161114907282085183071192821102777556378204653026884733029379482132036905247507979850506420435566856037319864550457272009093493431309371322928162545464591416735315153691869080554388815714386481176957782625369075895378326303706363437840199195635053676059550655079531312409305105689191093709997536591465668000997964858097806538733635609494994453793087144807203979162112909792599201302107872632949026991150199510820918586005055968579218812377451050472202432670482156762596515037987823962523596594572057821386796193328122661062022319338711567725141575630205093814188107373489402671127237668763065300892592208400633715324142242673360430716885831159232786620168988128350055898799794254452359455190032927232327607734852065340052884403780859723001564504463931536037843952432988870577169591463339021856226096145454145234228515916529241333727747111108696492464548703749971119028166037838262487261887048117325877460099986180645364839040987866198566283106927087834502494597724835453685185166599749243899438651750457416473999902505438042309063000508042675746050048824493917881069106821638837168442373764949448700044693909125649316357972829985827367824636395784317973840978185517648527494586379976198414172820907627334971051169974763124742672462593388825580369058582101899044947626808402696449396301858663349681187732544347856421911746669222526180136825812062364645735272601822078929996619547689113863663461285343210657438903432423895592599705866391858956840573372690242160203591044227750030232538672860446262024657530863821267234624943235730740093184503523610818962021184925158507587087178161867170112154939613044628306173043853648522303333432197848901736928516529828445028770205949522123409734620051898451440065912389063819052411067632846063664575607450324510246124604674116184023782026387920618054011348146426337263258978223121724299119579265648652568993580959626873713274972855373869732198213290930664423258018909407531708444652604654832118242789813271127292021424917103798948768811204496257249746500473867270990069740737342099542770467624583215571614892616765892560160044832305710421158989020692538830104369558935755651930045481394372065877053340918916540432233366388307608194948892321919534016143103970425766152665453728726471222849408666995081246360245918287074199849347637962828151376901929001300935601642115178025998726784424720923688812878569544530160953811820788194067124085351039081307843945361346580668798098800670968117959225845090145473016513328673388646169002474504964237519855484534170432132943086940146878573343371023868049636102780237910879448898348268027182217940129836654430219585997468549227314897520543631650252113029373265101393408446896116916458166141226936388284388896528082241676645175522541070732333152847181804222569742385741289745013398161511945146932720007303650073782803076496561479756440902214230634606346004039243954282135572982532462410978900386133025236732812398628163683007026232106025647136798951831851017544716534712019636987305290206742118373535496540634039518708852715173742250139383925593813617961657646738265241953664311238153206153550067936048794177309131912864264987145954360147177793532061380367871361453664042510462035082998816471076109259730459557923511879307852607045186362600415349828938147176504479771327222784545038733243029387791776339337396908484898818687458418291735749640386749554623358927108612818650392829175235390222269367023607828468760724295115903097079162145523030918407662726918849889754397584786727166833404936522936004361869332905104300486002848244764541773167410594894542596821287436369269222447613900230682717875460145659786942606983067739285275112971941353150759358223114966573716838779015439854686731216226152121745671524010535570160037198641648023689972495874265980799783376526202403108385087441407134574480195624022123163462220822113533947591932606921071434524902256565010270803566488952718343582901282893418229826763983772562034441115290615345325829724965548032292101277655645399349704540691141885556057006477462892129881809231322440478608758165415044923301980405010509345197203969094862475783055651782044140189069708940495804066241177129506328772956488537411338597924153190045177586429642402179686126796135821369639496900231129205159683940393208209973963816144260495544573835158226599179715018168071275888969210300771442120426887071456254901313184947632080694763295925833284983908907292696791703381387103267111134631247762004893312434920288639509995746602978846293511404332713911617539729356454099161705415711095486143604454635928635153408527251502273127606667334600971518211414163136663643255594015481587462146590169159596670189028328148616037477317187612629931682322406215814113750953817332042241530757512879194063176854630179368265382586266881366790652385671833116984258829653216568552077782472068986827518516854645319849955034013034691473974409814073819361084271488040339702467316709439421805909327114960580835077695708667673907602191846891318267233121828524015830547673243255901596782421277068903087101220812270431023115956739052510067926964387387074261294628800127917391590435714868974655048992151505593505315687130552101243732127077575757704308892512271816077866375361669277708261759000213645224192593207279111331966283765128322407823063146023635559450090532705518404433473215828976920568736336687618826569832942769641250582386217471410781108638537070142056426267361998966102571631651434355311580208939507862954564388741486182366019969014462250197427180167297527160566106563064135109587009674600233509244392940239057538722233378939486059726996990914728626587479439217243017519215165814828808501294390984672176960390917916474560492711397679772713413731164974995149835418848458334211987975697647937655586809393462183004341804668283746789022613423462913771583185640995180452323485019714467891594231468843882721125297440096280339143841378993469299687212654022448111717284822346746362646929270817535600924427200704561388320364464481138893067872924456973840542854206043541783903949023124868922721579548233704210604896757741889025455228797587812492760730124980346588069985282254545357395892693144264164333567082677427535461086843385496772008256731207440079059489561775882221622690874397715126224121018847082460886542496065319021841136077250449203136300533548476732653843196228625637785670262463779666748554518139425157294524584735349335636625731318441518268813202287949387269365518348217358901026069027858404955371643335930212227599765763991616445844380352843157446006186179178140982366932907259134110337266323551539906533686012524619969549933736310289826704488984341097512648677231622285598079656287295880321749768233279314547320074665870686485929832010671816604281323761656619472153276366026863861118724624062849007522630834606185418394498954041131944317809254513323383119697338976617076076365408412629998210850582027249167918689045064648294645367583425379887535560216206207897218237871705606864987504910106051171637979178737839019789996995149780922077111308470564015140805776985259313236640404353535188847513872950592867146429882950976768388136293010114912908409649839583903166420209884523327896182186278916286903816300091635600753826024717288236316481375976291068317012582276433016391773538137334501802679883370505366334942908224972651198464817216389859451834913742856916070641660714086755074677975309096066922811599611992927667869970529043428432402026404320535400888816398575458239431395143038754628185211442435279030449417593126264390282642879574691829424028566700396427757514651618760097874074452755810063425433225433297765262262204932386655249663923564685913045062319544889108902856699538613991968664709707740444481825361204629863692095361271879138633835937786869914482320577419266404123384211461839136642475212129379993075433685777397541937074227457695846003748327022246180857865320236622473237984414646852895103632287794985352460587583138684491297128246727976082556093609262054508928044897175617670158791194160100503962955897667527712344072911034745513815976181282513889172224667734921593732248665819007944151465672816489831264440144189689908373093244486328868316466059894802856233978979714154047094856251920623553432366959823058762301569339696231833688697881375152849037592679078228437265198759935956852336349507917447895047201156940656810140014329531384180335046867634153899128600930882154861568445799294944502518863635133960883161784801804491405366110314206945854989164440168795010431357886500723064229411102121418155232982647916836150422386831179949945683534818382520755278164698994136364885897880829069894937844428555019829699322035282493000192410680161277842222921406316078528428745836982570218907796090985949669825525020754854996513563127012660621550884025542421465941473926749616938361655965289061591676015249850049650938171475964187126315925342214653683449276631079725067037611696410536178262035968196938855567983371956630747810285343623328991951814828521821530050383307104002448489135111599408475151855444007615749152105590110563658286604512372493698131955791285918447626661709223371932268854625717526324613290604675502600033576158160619645187976022581822597134202966226292024733618331572447509260182025559613948898291537758909796611587605432330071441133291883992441549693880804215784844835632007845469318628535009522067998122951042403479566043902700942175114554088139636926472079230266318616023541767585772965195522896518671626910522555488955466826137534964311094035165862443078913644404602317655484979216306965268575267337545154718388944940681156921467517060991565852871154568701845594653675504435933372299866918437496570588422081955111904079291365101659993649712897926894781198030497227859442219042234871853202669079954458363405583075569012187215059564746174329808868914348997328559082761361571834344058106928298436079950150337463547036870301675377079280320117851432382732455640717061557051590159536972409954145530882809298541853957456534679829268636768854847465869153685937926685035099059791606958303084747992254962137233497438655731208389065216753736703296686855918740226088980967158548334218062786898353150340200308695458541897572890637472498856169415689484198167412033039275826801148459946762294057969236687439467224736707059604958704025703804137353857936695878078985222034596251851041494324034805176346774165221069244979782228997390741711886517672915837591719860311026074500390163220891481652174126244531694168541951198620138197455624937542739308727776513792286849376206748831928542401901123386026583280742720575882579983264658494079973161934436309158879489781319290489868656807948473211255089345982203510586746117289306414200788135580673330748430903886493476292916925241343575247559945651990307588962164521409700202496030711967087355634010435391577854427957870962194294450180267532779690678345362506854102720554606820159451182222428685174435665961055925707942145458364372135101047853858367390180640938107182283881306017342506782472856226058297045469711841932055489465910213702249606798260061849740147759011491635205040232477839202892667920194087657281777467246179930955198817253467306249921081393912605084955882212645755549038038754875044243939435835073619109578415982195667878917834860518879264087180838200875095480429883663015503383844097172596527011907867689950568753944331792698712070707441593420162436316587745769869716204827661698785092370999660233281990016579960338220350954825076849713308947667574354770254907870478026488981678717662016820791924624729990589726655707675234477813928075924299240393489825534661734955545233938676774067348529573096495313125048080795665200844309831794478538201696398597102590200113527597194082162955206499743559219533732157306242173988077180428284697661634626222948060820296906245912619386175267912873228364717190460998127267755757688983706287522385606908863497251843796812113169618300407160364726124870301656228023709360048432425706809756115918176333115777386831671767528113659551887369773811712694484255219671353578406396554924144670674652018676358797616229281111168648054735482166216562229646632333223679264081488380019832741814455425897334457545658466615170730462168666754793758372406663646811100463029218210016954758148230035371910078031428250868706040363211287279768118983747935356714794501696777909642994212646699457478949364820349643803485678482474551284024894163896085090377963855020708444056225843092800175033654093977136709838991441628664778464168682237663419346443433892816629166491687259182263308036554572159869821561395640072096544414766443084062485126404987400237896015613809072857960308564078178595371500535969033990966355474633756185657747708879437340490193255641213722468100474853212522526266966479824043485936107468879418866609935806133928761451035549170322658676783834208780143910559666660439625453229362449966047411195252882131488838688444882017125716452361379311399145272785585573699891775529389869668215661606042097371603086959720973760341149311462801842140861039183383149283194565530943602381813155319339228052166456885042765442858739357348736848969461786651754592034824289433213032936018457573594922650995607179408429596291707566943746376471333874016329963153765805722724846472485073254532515842521181254801217257294008467806541680864154463475973090958575702827497773536380120520307487280399943622099377976468855823048117055936818917086439607872550558731706227114222659091425275585809988483052199096546174615775960237394988420085883518213842807739961472216096533344595608945028881743307632670517509346655238162161603013454892319187512313043516197466678588469927775164808862174647503217612717099408042821898865708155827669294595402045824927701405668931654511904068752322394347683381427650163456489454741821503747554661218850381944531033829689929118327340327671016484381141129780187083128240057699249665452036926800544119169791262074376067810488365715233745416779109840200047067290111845908541018036220067906727069101930627425331678250972927028560002430772194551621996647545250754131772885188064332808342523492653870559007539865624656076992882578938498210356334935051624545761921144560896052266395053841845906483473937734177271936180253983928235343321793106234435669103590686926594487513521785594939077953955995558960156207084378999353127038906923770039458800124493491358030162151642053664997339484535645824197400979431983508523666622850379452855555618039241985117767730390846986020504042742944051716476827390456797869658789861766580628930245928787351738170254845380682823829628945015100965101383456367036084901450930344242730451225647520883370390318529147526136468928876310550814552309178471517564860816540579194624890628096101389490728428834866835731733764898706874838075540442445845087710187218381195745412426857568123070797489187251497717451167534955729794992926926352704678408912088394849859011231301267834575297895982786198819388767144615201341139638915055423494208669940859477836317755566012791326903820596796635697778713815804306239837611439586088782146056699550613300379375597805048858322273916402468506210709317500757838376696736066080273936291207095738312166662477558568591470648855268720513415721601164066398670691431657441152357269786955817963721538141227279841956964698701534218047154514251499232263564535379895681286293639615641162892887791309544200680166095452280310455539605863880345004974112925255320423741616230571047278992775845713369275724692750231027959703394568606875322819992999347689419914278632411069577986948781935333577373061459451395940374110683449747025269992179758912761211969424801109919381408225720955558074499089346844056580851893894866728217669929153164573465178584682783739818050026589967263144779067922268079327115636524157795038188036275504163262327514471958700988029747331452951247713649623454886922914899711397073048270728869967514487660589955817450018579075519773897846328880668251594776725148953098843523191812311035682078289590175369147186945737204739917199660963150445929605620022682201761579181434804822259082207153691060093695927237056972088631353822559856210259682798850506970185736478232521057871582296298949606768311079883429628580368774986553356657942748484007323539954338087605233831876823915696907106315630382599612217170758938716372444810214226301905872915722266300123972055066902507509613715637317889215621646779625802826160006822869530668269105775067518369230263487803268025200597959421528144275520379451335660173248419949635709295326702146662846169918733910197816042424675810229337192827892823486950390972566888697958284048805035461652486223209598285833421188377608152443282813150622312415152850385150902731146880837057042209908510195159119492016627820506842608660687025774739567482914949128624516195545481548039066881043984059713798955092879697468850480185687387662199473154072395139897910836586128716198829875632774952559169828389653195781566604451057657935703251930650563719991363501646197886388405498754577929201517859749371960390610067686884916261419412877919777474758224290431658805435016684830170071065217656093230946985325041210418234782324416753026456268434286420737684427883677871903861654511955215583536730776595079322275293563160763308219928373512753227154047327814890491096579593622922933157881956522584851904960637943538779628777672557818326732071986598131653581821786839394730538306113338645923902700418580013821365838873576826591259252078728194999445116537822749443194337594889663224610852023147803164230810676970214468967257505647009602437205999478413406115179524210183870022175325124843260745959018022156168780072129746446346982500719452878797881134570732134536117651016260948255384676713226229175302473118786632711167666948554768502301097664038387255981119826571023438901721284716159064417226993219504292703416985620656840129402645411179580885010309721470247598910372575074919603885662802274181652416885115153803433542999626334169062309200641063024879259474657036974115754642638836962896219548071729771087093908443555662924477795122795857361940936294511169956205911672040587913092070121308229454365244092804942842388998382836207125307902044460194712734883208117145295094869268410335125936627032946873436720106411140897004608276105305388816674617881340981262554223955457723412272998931192374621897188211031809520956074443845037346273343787796453307019161465872172862505343374226999979896604506240124393233555635067480724271576923750667986144972308991129551217035243324804465806127481128194817661260487982046273664572631533593562422693461938432796811052108294205732489605918034966258065354716285103090698065287043058704106467926189409321561013915838937196988517065042372258520133972970451675497725004719033925539676239464722361504399855498427440920228539499914872043954265349635382137308732299263956273246658956214250730526123832667240846025858197007567120024129882456376548632846587698639692673582551386883881023572693457783145303391561034015928061099490322897278847500928619329383677205966105732800403729809749781352252723461859203363277401133386004192734891531005934601214828212032459672971306359868359973197125930412825964179061187941288621425243567134583978670257013197409567415414509113760107844221961913222532875828121707322814064042466547764159490330678093519356889770729790648989101040909345594476506044907719786740503797514251645844591729407208291216824382147351645171759175500769802996853723321341256227662363538934896059207933398832326285445518714978798044126474478685278036868108214510179441200459739948141201482686767568391721854629519857514663744900679743723844115636122087001177384452922109832462131824585243648679182122636178225045891161907117949190930409067113430146890218539155882577692257508897884633775328447575418530336268018863713098969663623697192492666184296065970755755461165737735666710124038495111480924881512661740795873087411126771159691939617053754580651130818110988233721061210225100498430505627132027934095486075835886224541605908870738922544635552745792780560622171618493766406405492833061829755064470745756895858608082313381020160323722424235251829200414051062073040841991608776237041609088485217373797972397217839187057714886243024245936682086916028430553869848402424986992753429197937231331684607646498592911683160014023243526178760981068657933888575829494487722154791586923064320378955013802917146875010373234752848109456863403563986055805155434275982390002785445550858836634781118909879995265856843791674500383073948362024952085442528338404207830871826369608701850237367104888883367394357966930715084267108983789180247453948559771225706287595338987005965748115656301833316229483158193997259798091500891490773662253431684806697300477344771193175187847060778437742944617674096262586565420523367289594727740354798359093749533933502944533734533405265210956052204258859582780365598625177119256067190920518524802512039403763560895950384153857346063963264949136467554525369477471445297399565223283940331383304083612501605723752476778772616291797245441393938531245321554248208573461512892940462728137434469617702401359598282414313849722177145681315312304556105615942259623704348729081015460789928435545944797034349472808544881307083699431563980590650572620936700249682416871908626420173826412737150325743494911475559037131445564479425780856185961035170088351949935814148291791943237583704273616049417181499893986224783940768861769125833275668886124842854184250600607984395780290351984159568715653395655711788261060632899920457187232590226621120840685088786788103523282383434779785657638449030304831566744938946815922361760137728803420066777296041882098713840335858278972817346990802113773165712814283742711810512444043815806960656327117352058930789607595481045017080535805377786449783433549162543871514519174508281747373240622290380145132855540206392410394798581476516232604662621336781718510809975540629865591628563586804534587344249955423783807636978649449863566864714081847679871714407397258376165202721872133387685580004549364858360992951101878586043331592846010554516447806729882575915034823229700107756611032939137558500566770029715765880238564599274564747083247528574782433705824781089019599246641063794795403906256713959694119485106760355447992222822690423577826038406300994948409299310336637142650839527492278723107059910647703801869057483626329256433073512527021682536688687196983791528435744809583761015575610693392287830579687353294887663935672403959237726472516204298246761522719910120999147160358872392483806312004423041985989193214711757694950729869657083114339140070191980904356590415187618067554214934690643639186043979839027829188149438749756471141767168330124927758186719591276334822079676289050584631178371326156796706627488204895700408724082561253651460481666858396244144305065863327300642185737059097137239947706250660246115314745346355380810155615633233844381791468084843313147655636181076226279680797376017670151200372940629585703508143912980675189505134281231596939241810639014619022108912724984552610071309571999514493365106358796341687681986604471257924481548384195499830530033787324872383581953816533079375613215519658734796431202381559735557036270527476431878731904084555993644808975500213418014840272247227377970136463542947828009419777445292009733533280877967283769493403879663866330546531006613175811833287817104340714811427480780683561150876609028805185040272758943931506342181904888112008569783301449503256727060733642350202857417022223138788343516773962693960360828396802236944716038097272875491389227881062950250857342979871884961904664795090755609714074586767935470953343644014911406399510048035885218930227284328201729681340147596577654549655540037513239707301430526230691106750354727318992346490608708793736058439821503172055596612406339736259419458264257304156223457653895258577762487563114555350555816724557666113633596846401290887348439808590781669068620976792283800964036222425997156332509759768558992293255576392980003869203482534709138459025077933310452870154286989677559808545528886913409779737629326965968217610574749540242634336651548217216085233414529011025968422480616045838711890098206553273277491514994435021101472099798043025577886458270919343866094238620546482009604286714578385225930233106140193794260463782634500992448479854238765703459635695469951975419843442939190026178694938197924920326365586034687923793767661304037546363113075066843213358405417201136251604437951685791702061672529138763514635266038628532545298822722723600573118075642090243725890710449266330810152965541282528626853854519911080436820521485689292270861885342258163460366617356661363441680885552531625874224996983467814720229847934107768874639281928021503059751009174010241809861988510008924809894794358669593355468639184908953177759065554768112088891220421102845423007536086028956968291956340918560739282220102641732749635968589544314339405759460766780511222306424258297296355869274464354860777626886588678560452006797228812421843574304779785544546067529123737679560887577506282593323116327901910500002391113826365942132470489262577352900191502672268562440019478656906876209559689445681257378180552471833212910483288836755222308198504756072590571021485009078701065392666441371157465491993789994067178710300449040039765444564865738317725490758142829535104398784838204549757070564794326312569161412009465728045035337992636688842990479764497860063229451478869992470603089302880516650578882406318416678146087900446847842375593346590406111484512022193420905534403536814348289324837255534084891755746982904800055188992003527856258420713966710737874559025589491338576313684260426360835210372593151462950250430023794037704474427140109175380207363177231454759352655354821464149841702815086137947110932679079608078891873170040103545267824898814682965411063116328987487209235983214220009309070054577465411311629658237225374626777062237004328696185822973911536054507198877288050062576115703751271057454928445051536657152824484173264950357857642116487465483225845539274151627255276079430714975395091820921402314072429295639467794268385477399026664498597158652957392617560569365881403194341206306717566827807147670781615941643595321433219250653694906115139716537936185290472053155839907059030917031649893364737616825105147527180200312352833356843171206645649076860349511034046911038120214421978670710432764540386474792804658181290907166899110546379921932390085112964206266771283779990135492826094725495939105216270342502529259614293775438039196962873537574143033976764966486483086414778584068106326933884821158982369179339062903511768671225240888450719388868540639143024638287262237717312247583545368453757117709321546537739013570546783446366540906789361786864781937243690973809987546754828106305632101234077740911792477017008450589254272673098394209923421221228637850846318949591131718414985234736433951664789251775447607870082515215454995495340657986713063602552989569134328469426428624500107133382076080493127061925361894656586476457203594850899565122421263083835266434061935612845498817003029089903118207284531133096236345902475923708974195510307114525014518198270862361341063074265260089067091633832936958006464192860072548456244725847653003311943896532426399849570214985649263696407145625297756357575371058022917245898813913391216700551035537150203308513946682299991911814686972035902772940337876782620019369628518586041755587275061707069206560470384491255350868761232895160536546530308695187236681011237459160500924634858157544848812915258168841903501628867497473936254010456072737031507315439841874939865660382365538071244378341723289059381229833463885445838106526019595287276212100149822125020969927538382560546018996251130809455403795778801698960792586060534331106185435739483054270542497485327343565075396815223033962381753342896032311793536144158650676748668215518748613075854960661555993215317110386914507023886342511938184187368446215017060688332316349798515990427771694441597811905301668652570436503129103040436241721539078827159437107528481991866611818679829960182326659499529118408563914171461565253395322964742798485391526721216604376362280220485991265651176651575042126168991696894519278229076460563115884043409886190123971857963425162422419961750167957669503658973091201553063361009472875379874118575006617334481967557187673057349695952874654129246709071819825099316194649134754718056930343419223717377713529303642935262039110889996834440176804635171065362046590949021493050679453895622302960098701441659185263226407161599322071767561544493196126262146698546352804471767210237376829308390407859867719303571472412676921326956344247694219661768555266763476886675457684485847262005447446850967893144544967318566349719819947940502657811558666845476951435426505817021347820570135770694348715625702940586382550245873395197687789782876643283779434976959298563288584849835210636502235193579798022306995164044752321239336028357240290430338299946046602899110792135780479830658586053189930150356059999175158248939933673025462578818663610095310110753082850364247038267685113671404571220824754902729308971153870340000422482146322423319565552114288914865976673759481571084537513157499842553835812192250611753175352944030736796132382347337752613330394025404171955276601048292137563018063492312007525993845085573983611026807556423741063961384733579634462456315861279444202481884973030314950239383477451974722517197762330503396617881648565035601573199593524901103812270878933532939284581607349748866215449182255784455705993107087962098383802345964190100324853734783773233277228647696814401651100345806173604191067820817033654311932216693570002232065159527954554248886338817148242467087296101014796610424827099664124674023916076941471828349142957039755289317534506285274838392534276642455545094486685400638386699136399673482634772712267381775246140612490823865055600963688511637847975148679562685325205213911674561815384866900030145841761488730675802001152012289278118918891035595501598206787808731462881667305505704934445635660448454566478151930739932491397010896698673248449981922921037370418607899826213536502596909893572673178131249434937503061799747796196590449861205176185077013096783829552236770200567607066435170234803693180568655522139366905964900864447162507840488812605356871723783421297705035330345155683867271175164657040919853340588221857675464409720751660913933027228915113460212047840952173079577309346292353287072201511687833664720448133723987616754953378488874553508731890954734019397138671774903776682081530431157251866361190516930925562761514936205829143380210866980296288865075332224353519036444658910531242314876633405879835632788736205801372190517745210911494869845613850659328483930417846839295905736040348135179612589444513543412998326622131377330257633250157397548923010213321214863670336251388674551905102705914516207429129358807025625138507880565243811406312371921820459734546451986797755691612423092315332385328961359692345482733633499836980533028190108931257969483744871841121099908374032761719954493866084613130085566288580019851105648191866946287327682887336541112308917447729669779167776238066130524227345617541389076201831416356485388453675887626517119039263461004681570454803617825628033989456875790585394987916964165192143641560323431098590355853077995546055852559537682963295083790753281070938349495531571951605907921317569069239496478122287931457857723945722429802075025913835885825165170584538832037149996398315012894854741872555042172935360336570455087404017081636676465916676516858813386804965877652556118792579176407662311131945499681660364593195344100931080376145182719359783494631648981965020395857461093876444329057595984403481558071655807677376761613788912817581966854947158772540055354250571961958736111746738988131848638690632473673334811169139201838660264798061197517416960987081849234201910930584167400572458182660228405593633925414064896878945299836978420179203010446700294148693058892047366968241697048593265587514683054928009451830149790619879881463080776039140246212695222985621621182917698689972651765205884883041642642322987166369480944539005682535728103682036101480936251209912171506718689866483059530963624917321220784128566410807493541443800454231815016941982476840686025266711290271170685337215754344310348823418145826531525840040155761659858946311638578141393306822698854815210936530082141162048884468163042361133370103220145204335479726561170340176876244798528866107179456384335107062753233566689334358212123924116632675015019909353853209275633087436375297750197258944936638444166599560033736120271733585988897220102644055851783570328612384219459795966571302886753749802965907349726295752635226657289709852932727493448300315955467021143827470878937412691344895112065347613727099993743395011593991979582963068303269028800952170155463487039284026706170280171336246941373862477165213857881760421927625010437842929910027172539139115859596372031455398847634544408454101198961151111013799723170693038747112098237402015257118352924538958916202285485757237125139968136086653009123268066335562098667552604255137509906391055013211693811945649741007766667561486392303530532048359573597728952855481762172488376297721948340918479438708853305443948741861982356139755211468544099645467001730999710721658459446385879193181324869462167969410057218849898959538445213692041746725571571433848644073178786000494534621016781800261947000268250142009214717168486525709448048106210948294399371207102669507803350608034585958694556351822562373742800117336923361501792873134368307613623642171285102167306458468690651003130406792999552036687098947485644251929876831853655367571488063824767828880526142741618234621106033566203251379299946446779369131005727968633388703087675976900165373667665181135903086919739993870388320516532813249442387211728095967977570383368868543305241737430897456067417042941543704596308016627526180890348997394804042540118690869938361386861022599330968119256535132715852346807774999210867865569917099744357760843723075045928479682487863049721518851029652396947197253832635939521575696258484280779981734131817583104720799529396290960759590431445827123242741026801865152580651653577010342131624949476082841442091085996708016661726536746981438639113361906924870501857189029024431676783998668178074695529529964757824250526852979252823397170144272659873325336463980126850717246009008053333672240807384504789173565886425601398604315839527744174717321133070909722936507735698169693963560809375477409855464970646066659434329802122909063680834892476093927285692973707413442283528319481763372728927358678692614161203607191442812512894314630077678419204110271190967506755831533550500355424695286183239838848532848750694911109630428461550250440025844978119775097663539297552635743598906654681436282349590561511023503596496487475988864255088801119511149060771190180894426965193082531481914020430901911414683355826197726027290699128131352305887511287140194530261462260375005777346167724614064668471332436538681180872943403351254319764947188571806450106405464074085012353370206320959194468713537930399296741447675358652920840470104102750655257445210418595144080786070182510933510320544238856052760368036485434049924432945351264070089204954553139739162372382462998377307458834656336462837418521847132279174592439207580688026646558735548603368674128091219549139943773960761344675472454137235236098648380468586818696738262798392641685288731456185525381104907185614269462491242995205266170981621915553661226647740134100560863569545555419424890571279839931695616700003171180929497915911725059091672364748481373716726824414512698674553014959950721892003251260613954924815868102007161374990756448404218963355381447170757981876396207242426497646893346286879779107566253212962366754187084367394139379296338032697144318902089114135225370559289243983190119743810703957479155669500831946124144037914753459802664607351443013109573110757279369292299514163897809404387790667212221956438184320156271943762227933157941534927032219984328496691063017926072059308448684229884810198958022274446899500511524079616675013501123110213864298979345135820579557793608479599068671652654504340256381519305445870425204382540252445639196284966732329439264055995652419003929803387357371293273122294132165894425811164497693964523898050058273122322566065463871407883164796177440699265568937754297574592310020024195006280266811880346149768138143002484027927504192774688154950757291894670493160788604982141854034472195977276256999574404180546935190104385633233920489291989012270951124556410040188248945963541478804495992196898033603341832024379388755015586616883163902463447963056817659823047748661756653751431667276687065775753091362492548571717567650272758613650221078104420653612139314920777879742523190921554643867434280280794060254127089868956784737687877502988731636827374912646310646218617764196858144830894417146121580107219016476998428436352664876367103504642379572095705991746317005606134809313408556872462933928931761323987214833786580066068850705364421273785488078215305137722348134431177520337139712013883495447339062277512175355263372981764599916770335999131101997873634216450466318045800899680901036979239592732952146047941665187958239505615568419832032859566112568729775839061652488706460205409129024915983529049105069361257044766759479298839500099874547417151156156333986549776850144388154579871483521073743951130170131827896316371251590193114242840613635992193135393063234134223618209827831195219511611419389933512026015878013319073330176770927630914123451094081877331650751035397000159854199399022215998425929979706930813086403691600172094799340905154587105693636721972000837217326509126098157656896101212816662527628024459694583845298672085101851274578630140402521209603704254462596556148845973723633053312778050483036385347628757802315629358634048308073141660630658703373323398157064926553509533612867869332291524705290930394080856809044058155718779779324259582851974354132588398563639289924252909371644194718926752624784454585601369419167903786599031052959980943545328752362666739723929878347832321874163145066011949432026764522952432611405498968602489989792502847540843489669805827078625929401269904811793854607617132974943248139392262204286295799216947077745678857649556917691763532220433892912042476503760709062724759847053107455952781105684979777867476539644948182482032307009940450337777366779340377902735916251980954176471178242484538114928854674520850265529812966351164099147740975183757854260945237213484170065317284073255412160469054495068495187332736295899626733076179048142629375205916982029590697030352239016956009389719938937827833160501190709088082792827064767692683493663347593125736446767505386646368386786054117268050627132379977082769254519727084611077170678089476071590851615855763472898164542837982497799963977861514240926032595715501126790809249151829750390746112618837302613609830249951865191853443450259158840712831142022290172916823094598545447231033728134487553033371804472974941255986020818691739979745815447700153523348207188334276812179364218329112496882213001604580841131710046438680927443199782749894724128870812921712380927005115372126435054052727997455600839460972441406430916831165861483658454226493100392073688373574370611328397679477983398427943292122969935036307708841304457313167377093165397245852762640492294891942601970684621547659920304107034777464262852446722766225634265945852103578860302691261300615506168634948699484793526646001356091136911005825163192296024520717727301262746244635460148243673502536004955945406738416132330641423940090522128477907413164376741666271864591151735958181437023603977244767436610706350552720061329787372256274837839171043700947200496300798102990924222819841235922896599761418967138590698085397188509183533233563584942880439202724250213916767568990815397916417434447067144643925832772064503185041101434411119612377966105104202844308115822247285061325236082102961624503884064420579357422238165293975641943111938324902024959353925022562839320994805541338003911259883751394597828978367068117132298006948197024954115641328298002586815076884419521674757885929584573277328819379996425882878986609161959265835481719964769130925188480640176385546740462644997283821346483535359313813718798419633228244533641289359494324179203974866316924269733547333764254526176423710609866291244061662848101599177464101325847163855620304896966747958431742703983293977913514605886885496508823073061866472908020851093133717844100854017997864741658030498930591097084965860729405818086341322651214253903946745671951855258447832370106468021794217350425247199521225767730844708744036069810427905896355005118700115964021783142985267395076655243340889642006746504508963517400984443601001764541838911957788495567304170214761155804078636086141935407824588031677608086336677690372695588742318352201808669293110858042773325441091062248956392000454677637999540798999652253794155593807036125681593464946240182804264256999240359090815056444376926251900426157735594243307159125711961388862909038670146247206288318271033340505696594037427489872097873345215068494216134365553057054875169301628973630754623220651626566435250313645368828852246706222103956429232832236122989255157392886514089285563862492895301673702388228761456848979043989025065445509256589766528110038771790631640702029916494994760291824632706889695632580977269477845907699222637434196469668767774653869997563615644345018476979551699555625174678441354672036538685953374973609666468183241860882032513810290085012839933539024793708480686690923988525561910447925296645240198886848221934364255427974930624194928849508435097288950128508518081446943778035265116233617966582502967659270091667818140886576199590617070630643951690675578162322309242964879617045155039985118370767934058410437843338293919580636224289147029905111394688775336311485972971363995658432309866653662566330269897163976803332343695855220007865750953022117429009849201839824243669515759017655150326027266101449505671174573348581777441144427459329259589704005302558872629324964276122790451160059012639994810839036868089624176575168398746765501720301211276511903345815500942134731942315681866335871121751685207388830863827229340482305474890528587957399287575016988155205829170725311559427420754045295610547889537044050118745661554218696977829989048463563877574099706769801028480327567153061531946579256218793760721134206966173240481446331193883714637627829696889005252001811504968718352277468214711179706183108725873614703791047136074430286853358697353583953958415090223443355535828206706140185641789268169581335399042476999936475418801647712931636319198109585020052402744300669301453931464723972557868529385719329153141184442511739768560988876105103018140816680779395451229521024044805195381389697326310917059065459616270799469606377571324603069915025377865885563884379972867825596187109141551626693250043272679562753804306792898369427894709320371552040817133162840297200909172765605262833445774073307627384656935129248723686581815051957906304864131017798032416583543211036846153336980575285401505328405160740545499191694002139909827102904741353224718987450337409686378528291890055992668870442228209684429138586345647733550962932523991990339113191329562565566669203139059677438063948982583488059645993472763418478792250882272268180652454354090660397499222719133628996661674697518934164137710893481915427086274316984663621745533643544066379687054578172092883791158723929058091199735221932378551168662140761000916046710450266099846808860108029721709955988336422722537920378140992505613239507869110227770831130111739869211419420995499500950828408505795926127191927798951235530770393687723665768689255531762275366225861715270090778214082462289434202875538655965081570798092293912262103321584939606693518325650247383498304383176759343205604676444065033235871258002567407732765551530784187941333959951494776939422375762293020570491711198667290502763922695898600625886965362585645144676439398277388177609928639155682681489579156622667533788239247865550956766062380870800138500140269777152985117091698545324287913015477208987764281931003938820142265762507414345317813860071926238910216211962549309783769194711984446686009271114613530768069504697419261934159508166059941198410957798058596794652961409591404246638372231738348806192041985925507561666079126397958711529931705415648578554486541295510331370994572309282279801103934912247034870194812920213614975686182577961740975964484055668487344428668315104819930582373214106740609412655452519573121283547123286855481955781395948021459576654778499334468312700877083619976158193973832292651240384985969943073401298607710310642665675785866160040529689668393754559427637642785019877790487515664026755820181430892895525424702333099422517888567385884224554762559018480754815825902743419488835198966839642674715399830339879422579943712889854296116232409382599859241934803663664255359365907179189491996968935893683324003385351206180436037857145759676826163162294542505113842982646678271671520862483523011569577777534191105154455690980923512270672775831979591642638229025742187762695838472445081316809277679127468122890845587175240654705000681560646735558631912025298645498844274428162512964762835945224542833544093392352696467932189716053475974543047712399654885396429535996880764755877256675759611531235682743275099449635024282004252573732629635697650516664465085589670186500326656063319503216587996078788670001027303200276731135092347728949090200906937548333854153268118632528473634802261957234284071537234031163555900948666276213543321776101703502139590060067254281397139471194327899131218454661805741475982646717151651223156859825412866102495124346541155843564196709164715889537502381716267375297380635643430810730847178994694921400156115125746651226034248625095887977966647735557310969867156419248549288791472112818774016769594500424894207217016395830134164958815895057937714536601144923544596878128247546260762902721200331994949852585415167497655124303784347799847893888078685836079541913764439042047574845388402754958493641602851410596810050993304712920106786265231588372949247789375357224499569209771419776264109364274816240478370818967320955448486781798474321915486596419193792011623974241218706542447847322028067296194835957100612743456603911754590475880974324190069716499750539625383566503260483214260966927879887244819557087144675641361038928574868591931592287813407612203038271883497263898750144541671627266898279763658550210343229217536217483740942334566218204621256478691513511515952544505517530353346037145193659204547428587260595197637506386564875138860206677084666448490381290807562564807869804478699931547782022012867933701978121095489507762728164136438171036350896354357476205600627094334868628746673155390519236365579250697038065667141638973313347502213420522958282302361127658424986718558363852491305124678222763522762093981884320165053942387539501269820853550690233935508042251639225068416688738891609965191379910298346760501489790579680446220171849997458254229407927341464691101665316579593196628168830466022689384328987204094900171793554649361934931625086678013191612587812978451328603438724580694171218835619755457530096847833557117338556129703881574165905582494222910947609470812826979818111850963002381925369648547132345525497055685278098701785854470830308583142801867189334764350636237493010398524937122237428560646832850755248067062106003207205474418634584282614200463362551989022003621685671381392593168392759879597312158431562403085599299823217606582482307734236268889816261788589517582965636012031650812743993412515885289266803642418466138392944995011305437669318530547741239039724011571947899562475542116711303820367219179645171553287993331321347918313784057514383088141133008051525333307162419400971406705453666233246648809358971663220139082889862475235927126387397088707105452471779703298173441276406827391086501444876773215415123773872759807236046116967655686455494937035440053163579505977824226480670883059235533123628245483059538731495282352200932259768268805393551891234384162316295738578418736681470045704376773813134275438489439379193072804614212608494477637537291095801190152081898341222361741009229804263095665833528776044287584275984340018752347186080397176646287518862322287842565445405943984670466041139193724806327343283777096840243018853147664547590891325899115147246480502174741894554383208022148372466993155463837708873829703304313210871517024611921172354884950667264248457495069565928475098378228061246951143539777448477172940337751112647580486129056620888519933047587420575929215019281918460869175103913333328686189689847765643766926510373841344408199222490207916343828323992071347269822854850931031166229089114436137838669138652985700990186684550973571377730108895980869517070880057584049700412965556438704287709684749993892469924996365859640956130199145972208322156533655556607812930073778550571134515244862936088547048377898622025688748679438183272135448907509605100654598251889384114054992716596420704167171763387187812009237125266719254108276571720301642821502146187114944419478775863266326147945594588619834461889986685637852237583362893799921118439789139313487511085923235700099643952792609127304662004131152243446971841918603825363223148831710056160067227708923216398224295640652848264384551604764010803690182484512069160981488475101147959590592731275782859771927214535146007081545965212649541904746266632763324108708113321844400163010733542208054063850350220440822793591750885337233149232765926360620921176169499236836463320730371774383973409363540790280650005632739730927416535569302180273275747068425600377944481441940900347226022628650885806438238828636768166871220890153694550585456823437692165136224021449836479680687156060666086842426470593106777045623667061824521610112382973945984537584223354098464428917389049291351998863423141548128697646759849920245425081468468780502904167604032661992283469226774580584455546136665660317751444897694911050253858739594452796858419841118002474106423356028288979820166505888350813737422997800784350510412351461913296811262174793335816482276425773110735766528558464223587308068703599391623575041304028177033111784992704126086881868899681855074749580656759125237129730212129931895628406671231127946145323072977375147078883731877399898718960070427058300285772863634567167336637628975316682334847708612120723024235030358627360413570983433366859426943839105766927244314312706561603224470292189223577052661909444815739410770895445178162965801398191637133511110117450183747635431592619846107135342227433428683774852268614922708002810721779704536258739689083248419691185958323003211382088866308677455809278913521753604056694099243858516335313400975073431578795582359116406917304473655297556115972867082666850003638244033219001214591004809360407307804206606813708984458867197524756280820099262841304749442291512749927563628155967556780462554084454419396773598716091157076828947765697869469434750395370872201168051697178999349153605293269107954253136696000754428180603082334673734461409858588084808112725881999405184495993852158984787887983206243070974801203274326874621862882212745685773898880590673367315108869879032896159272217941492112988820020577027502391607407102674103199557752973633953928212462623855127403103715692592922098466109599798931588435631718000120577698406119054601607187643677941150586578291760674131835202353786304931261863611026417962706523507280604011341444460956377064084183332426826883384412779834763972229520696484198010229371159665868153170129330027926283684930513376471146086089525283730997430740248170652081186835147519982072664938508388162850221155513626294971497494867852198404947214485370703700206797754332751691464105821513045600252066797970062291574859413818700083725990803588147321465057895519760685789447905647895718585153397268902862840296711587493201716389648152740594417514519399158287179209121046672614522501497714625493255618405188128708493524772335613263298679727187709198588726685390517021048971378334848641789662475830817114036674664472352685573312937825846306099120985348970195817138320278570433020945086428261235767197889531440934795549999488627001908236148711771965419226918258230693716233041917022790236400492325974164918769321298588728054228432759284874835452050088269366417552531544418367191681199136374461935854628855725750276085510306314873025443226051138788030973614927976888226016045994706507662320780019619739449208066122380329523884364464893138162341749056801094683690514846833087073090191315273272179975963009110699074803535776294713382113865782397359730639971698757784554259450622893695746871642500977318073997237891568158211789737198995066121107204950725361343799040555188298982398489602204108616689368259820417274863392177891744240522016874967665735248819169017814334849614447517016536200812803697086204581980434867941560169313821023736778071355441396890106053726068918741928681801750985840859982584761490061814678201684548887691171195110398059043342312525495827790096167047520477366679190670965606187625557279756080706017471645319005690995763616803048373935163005061132340890363978886534722114781639135327708324067516516650914771590202165617955733709674385997640315478399850621926292259960210670512485882578627280050963965563210301630572597271599025768758891640073131970532242983402320478764185846310689480140675059406680289828438490160400465983028337378857607568659636764768659313022061342352333887000482996044494486448103117365771365170496206911368027519505159734418296027403444354141292019096691235338520818742585039604240472054880602502589256404159653531829171630972109104886076180639907694689454843972704061113933513772779448113873584149769353744651511685402611572856236978482092601302446788828377759921676624420205906252479983235352079860077056177936787074016889523121072450591844777315964812822739822546754882690374808618198833428435093053072151912350725703230281177725584780442354561048543964221081821828473118510105929654588157135665423762782568365149808024233196352662835503541600136844395191474898342010495088772141173395531778833158430721152691679046258156843679822208271418478794454182330415400169503869918512820227607457011336884967914258900917855751874781692086830581620187450244152042113781295972048342674466065998308713281429314119572690233272075873951258926867804994789755684581285969844004332561691863695069020809750672810863587446182965861651480804567166036060837624028482148548327682598838746653568374742905155584029888570180549163365162942378120004628687630936260026856490911810997852627186284475462388972469560401556696560535807170047256195045816670552920623311226023217692922238216000856614792111661879852652810892874411011189099042293125015220246033150325248771179970670189932267932290230059941850692941698332911326488023742642306171125036628459861319501890180531762814865680987440941911024184762746133279338047636879039869385094149069704453032326497460257398554729218690657397888838951543872234515733751272081078019495295045625799743520993678078471912224959312201882697362495666505545890223270324920035638071469911353822407042829012509920273261898170907063275944924976407437380316272584578308233253607869970746471896017860403537657287730098011404186560704867907224743594845466871380710594101022951715796177108863277934394162873831647612014136427997004603564140125088527500108677135034429072083547888725547832032924180913451376278300407802628176155807373154893530435737916424889962592396023307470556972975515866685446856742398619872377222534466662162001267352926811664999802692857950951437285266851590893470838977453825254729857614425211854102466293397622558663497232790404617079519580494172110924893409818643614049553170141693633563418373611217553665533955420772225418608412915384617802067724994471805443739418981792246534364000001782476081708887367589669181697361010861243230847379181139085502090553484567160015140745503837608224971503922539412842945368635006092779135287232855080674116500460472331766571132860100777875687971256873598397910396800050290233070205985421069168609304202448396849894903273243608620460084256278597242406263077471771066898890037525933996190663066930970989905124167896053946552947801509792029112589352709278978389618687420631971545108885920422686763671403655390878677650504174089868290727098297054670567751521996823244822792467660822358294777545773443297414336027334523624266903735566458140152414713197323264228478993571158420504579186832213285185524112404306904789431314614935262353734563544280956961280143455447771413585242461453467810680249822422331937682541653230316235803947441247790584719553195056967230125115529211072265495747612686306941314735719049874608895761151175195752507940695489384063234860275496133268607518275991709474658613989062669787988369079768698673167234583775788865918079359004094652174749573480855532361866849566783751338401001592439079159307710757610222758911161920492278605925948957453118022131091741510556534272652128990939060852748065497196054198725397860427945728961487836271830013760357088385877068340437164221679649730707609758650763138815998853316965307041676455812071398027454114855597355438968593416635450229263058077953121069014840758356994582357379372170296891731400874912083252921293435980265380026046748358717430963527466303856439999266920709350627059981556632872812842358365582396773762347002102026144090490386166155505954210213862412459286075706712734320565143644853571302468081528047535795557389635790993780730802562164578071151040509846840342917872384735316699190387728297332666659359809934525776557390623899222682534156669652876457061097744107552198664742654597195824891874277286129170100400421111410025672215914044365278646533123731031984140151024093481471805459479957187977987134484458409346844780060792009659018319106186723572486745305414991563319733726968034961495237271660004735686501526643105217581087783070978744445608050198672477321326885437263026092955986708995618008080225884764573150077217574107950725624341150892128292318887052578589175046547564799139180090458568860648455536910872107022742581418753746392819110753603774582147096115723571673257983330510371166214790294160191813600024895078751882729984406605462472287532770295197760727184730612104133398587618670022595893065564260274054179017141155142982095906446817316892248744354374020404614760091487496573108257619576606166605666873155418438581046723156037661500574952778141347495159445642919307500696383045077135401533102825091591973134714103093127594099927345334960933437914868799618126002597848356292828865670787414117336640780516052772718713477762277580375360401555305067783402558143569974880302597380334105647114640997615063845898004758863933191435096247481562387806290934853044462049348150137294638010135474218844883615369716938069774824024553058529865044473330523840448675911791029452909804898517182206681388558914325503737479610852435732147870596371372687696317090593880239243401463869515125302390356598492527274073605067262484834705724383936885228594271641280891539414111748831730390373447950726984494650193286826617638885168509451930397929277193938813689223614407856405988484942266999939676471687045508834602036953498883539350874550761183646348115985556452068894205857819516662551300164680882259568375791352568657589584936066745224238335758264131472291099727029579001967819315667390648377079297419544771618769771706957581061229384617092254379682338307449029464892989518060234913255887255157096349145676470504500030669233608754127390891369080375284362387241011025393494754775054612194327563750115440349535101134319239135291384955962526507375785056347394700503545239469514177145120266008922090891736427257855548318891346482241415513947875307448643472320295577625097276681084509055557306183418766609300628064573147412993586132872567894977891333488894160694466536087119337685733374285739467084807627658022098297332957876120453222209784990517514658775305350490532464724718532720398856875765774414699267632954807041932306529082895039638013223510230467628850224030297975980197345151146195774683649219200218180528624626118251395339321878058268495641660039221682695892376479142938204620388898793074098614072630392200472341291237473701243351908958346938085777832855160942035918742416493658275533241002344392123635286105294822208134495400160624512590511838459539049044996092806975679457972344241091789126906680991060030482692519573348950164010865581845684100575478904830826454536598474006980067916669023701852306535318276328326147106523965916927969143211377932032779478289933359590818573982631350576678640349326638017202011338370361451601601383519684968964552076262452820015063145542850160080723929767236310563538459759137320878350125737466972848337476116099052861618606742398431370901334475351509450773710384945085103045998799843068249172042736124456449423148553071149666275760699933645959651246040924993787345593140981190442347181700329793112691553208484459112669855086381253142236718263695680939938860366276204103006723121054346134130261393782664934744710246495251595636894678975355398442819782389535085630465620378361094231467746867577996868571142760445370577611827625888786096669170755747302568306955084014034852813017166657289733460182011563711684632816402163882828105782420499429385258006530868655498000029057889364455940184533235893989909032571590224851999307425813737696846522763821860870985845805650365304202816397504489177905571225262088579203904295378177207894002644306192322658285537179650536925292102600156387301965358407187636080551476443653888051862249951455646042181729176428614055239257695281665108306618190513593326602139105560593510496340136446610799716110362017084654145486993125245599663739595490943798818755406602571187654487613149091957558725056984541112869154652511790032468252154197860404762191510578334509835192554964943669080279545535254238478967485992619874965155951586242358742256810956626380391677558896600740463761582735939083908632288002391306524204709118034174324012476164989463870028436925923681585351571199849852212023678373447972869144469624546968732074407407004885383218389142455720773992269430150993451339207548252364135158618527710921034668005265474349197358437787513692136631655108833286211102773841876553607955280261473703785854100985714039863186875750435670569094835738491765682545908576256853628014172812444730595871436762636945955447599553190634850369190154840288997516670718548467541850906935675501650996445807707292955916130737233906039756103555062114277802719495450105999297478783191963913048766071394121304237664048703956406356863886744127534886574723458290908477686209914497074845920790436379680800297933189401017046721351890688114989188149421973072353129218787673667924293560027804912276935440632839921049278827401441587690316823547402087390843512702686946233690960666102241413764777257448965383796742812860829785985688065328951155155833337216915073442119042516345112176489306333058796422012285318473529359878602128713670248345031144296145646541568559237420953529779586214052601107848483637450379762380976430316555927889394770105263784773775193634695551330114748567014418985251613116734064081608968837199013954267902040810597208875802793454644576670691440821187993184106091564127484625946786888644364241317643827664325597052435377814650260901564093601447764398143620301070777891410046421170672721142515080567155327863703220479011364239789237902816086837872134610835433802966333917229360849737918285197829637059053616834971309910637911782593907284068318132778286538110904551010285092919029300800002571895068582570254202392277207697493514053597962357513737818143733098541439632386948651599863260491093590625037198149921955427911198170821250230958370024348661266709336020686599204355479521155701168268304161379065287177837798810788682408558473434249186909531451136294057264126793426537982524354554217966090478727193566136412855368044663595453173637295550570936816815533860695130088845928041608597395236423555046678386738986453419526035292199419074126655176826581179522089748700424869471639521897961522787607020297554100763916579514064679601931924762344595847445283387395846076779094897495992374832506990119984975578125672943659620440028122499438245423102705489088355613056723841273648707726511516493705356613592680817771901408257861612091298104645873790338222073593589407417191442845429587487094341122387202712273527391102794326373687926747926296333944843784855966515292758488387077217733980712299980078915533841105487739724773161750359020660494669158653030045729279268160719544815120994870848935392189760293785718217529142430172569017686882675174570797179216057306857101719880947448767792958940259668472723070010677235110483746234615009006188954526787931205188047520113965481823779936151321477094147370038828717037641253917964529966024510026528160039209457692316831217220729386515239673257176093982393549473698918720240801382053734616095883200502471845124436746255229152952815978067611419445606831203857635041065556328803552847952795530966030472828644768194227313064946805560656049136290659011372421621419218809483476499926542697843698883922922806236494080409820287451971912312085500118374741505793092689473277159807538523162091440679435951297001637961667421249587298638350807425891770013183764252991211957697002885040462614132717976601541549413774161921508141587895495072107513473494758768683555770670274411562394295778198860172125925842407684653641084456896683183547170933742251271464801732706728891089214744877820587759713606732580320404103727526741846527859658866665358850575158487567924033536226107820601917999469415145528751795335789158145142153215137127357939084722123811203233982691507769087641758834060926647130296590751327464938175137856070390835968645627669324713232994640641984260433777098259007287538608436759120971351995622073243652132942141857806494385710051433643886684640929376419015257608460885212762136897756499100621769102303647689183564225795929029882856574783595153589064187385055848634750710185098774656022257653913775428034311270670733138153556132571712052085630129460639540908232924997903153554660380323243295362811796239030011347993194230338602570348190867275434024918591309852158975346214551013008699056181305950463197876183924095038407198263668132660112461684075562765514835739077230564912127972384078647316584451073460643273663953867231989282557442417095616617734134556321408826669713989101538398429827978569040816203117454019573620490867747553860445882258428893267679477324040116145535180492075350501488856224084091942432015249972198914083236767400468006614876683481995892417498299191217483986432698470510712264317555448569770307696705820193716923931181694860111647671398095786094726466063649811673819838815041750848193980312559288070761728396764335346904037356985953052528706049996949549083133137390841043912441516665694393985925955890504902759649048504266024438870678201386314645119933955999358378484141136436762230498800650559543332763906723175933545384640778935156794484535895441334537182588135526704896013559904023405120728003434645190236853822219074837113252166065191132289796088828517797807856507513199472832998369158861257442155055470684147238125774679869262497985767494247595290449422236828541041579656899880455387144855329802267353918506245861356877496702964589503079277571193812069099586761879837253649395884913339253770715872548034172065031959956337275978907433669618424957565110032389690117089075943976972965598240160492961001021536226452641977570096578793287819991461958957674496581186904677825270910322005304449321655093424428183119073543340125032395250560503780567833139385888736027414295274246383333770574123343385546090227840985824688638960132758622490610622236017472750176300405789119909901535574925839586940603125234962538165303212260158733929941227610318285071761491497381084659096640529398484016045684162620820970559741668253606966963236716293370253957523560644268174380141551127143801935158983232242895050391727143103811381667365921670366978309715353730036203521386739685963354494540462234213814906944861049931548112771095506535780374691369780767639950325194141845133836586112554055542752387500981534849411971846841022883670366645861581731386035922422516238545796212648864025883836093232443294640662958412791663819925692314539299234842199419968821044024351189407982442925906176982325934789426367228722702973745851912334509048963628931858736345502817431393043471096350557365619029526675523642311674585904653311760975296812757738640874125473939444706346928479275380866398276068956812518399148183517185158165607808334039206906211449938160672264692927884999399315564991790733439024352264338205010236325961819541166865719069018752072921405358592037626078821906352462635025161074092516367811059779169722164679988867032658017259257731254848378431537577734742361772875255405486558400644874269169638188648060385947037699494916633119431335665147216276423997153215104871805299473900403560750869326570692202274733636088513668362557525662827954915806335406492158311872750683340087574976171643571335532546643518508504133882727067990196543855245623920724427606159127246178604443106671324914826914368003249013029930174116649262954106417352240844618603993963342937853408894749225275505515083204644046350659825175872240349823390593282792909533452990329014509443718085570359121913554444604643750142384047092762377135782523105205752036168198609338210149786170520516336173450093431139106382297365384523998999062585442706692256111263077494846774148062922036025562039355693290989416418401061396849549581919325747455166865608019475274159791554509913254790700687277853157059113521403343521178659154253584168978057382398221631652854807372376336208931673075018804795802431977938551450403958426598716568314128669765450342864284191149033472154922288626324595520912802017510319589167630139495769069591041304176376078361572297425744223412104184301355333072185064075866010359638912055223049057722050247018722141555880169433519989727921891296869567253587275219753550591336619470992009938257330554290679441538525139758252065702555172599627966560504030585482098432962332629261566129933259122964881866023282786512828944928391355798763897653181989680727895444572209548296082111809725008219838762394097370555552880353710309829138455225604105132553282760341181668356521645093421687920803749712020189898832278210052792046911069289289040163280915977585955058133358893536942672140769949777858035932261470602051355171842785982720420811645409939600384996859614156043509178884065623300989837048641723414908664510802946339944270158641584876848355312354382598167380403424561126649620211935746850656656568367385167694468745280127208277211454211412548656304140268057561425557046149439761750486932822363649829934558244501557588007721522834082180844607843903450052963016053669055055759902716701279198782008808902302070095925297261875591284818147547804978022691515599818154463998466296416120157116131535295647149576900382750501928430409984195037668112090021419511164988981008411165666452411520297522690590754461948528318969148115736376184239456610159395784237829446971206370577995798282632121184663273999377840919043305993441844949286229778260321492692656171714023436052508007369282100504238847938162164975603386948694568546319565841308554283470576533962595506845957095502028568738707623720344010513737797301100731819349593418035965347197699518132100626976377230600428062358938242457570959173217313149923930664390018155054986274933389934871070171448664313421067592057836396334562232736568215758275661560580897742368233582468724669986240388911709870208640535284911031579789597691516480858680037208748700720039493564223125744318240498502901832243904575100140462810526356056216256146760782054263495919788809603978401607488767531721508775579021932314972063403220940269160701261215332893713899465227799729789449858638029477657577721610686459317894908687530865877073410053723777773265500202493906250241753384146322845607470092301547575314390155079204757227750998703183859108976262507703974471470146364588486627194396833123308295127111999282531576410545613663813830123518729305080450593377660914770732912248224776171837330016760381918752207286431962091950146478418426643682035953935288436097659759907896329010566973428743408656387139893801224036772859933222005433777540396997606945585557316462498979483252084312502381280957704616414656088573702366694313412115562497016651213212770033946511509076420983464792970538225421716139652597274767661925822580637249897626480343739888772752279057788748813298466585826074965781939330897108800285133344902334785004357305488570414765517856314590406514617316654155248866265945074675976607297389295521628586310234515985229020384375064172321857919523576153036801788225179186059238395037057812371165824202552066321746138507203325510472178076854619096584752379060368964070870716242788902465662575861218222061580286174496971843439911313829975363807875200796181316472984066763822271122075241807818051669320605621985485937049193744662566961076539923825174475524597572217257812655435182874520764347648354218836686283887035449024961598768581994844942597854275061485178036401971598105547133589877826249903364286167633668854698003309481287743592109277871699848044258140265262565227625999174403210330775088557581753804061065478119005881835745139448435062536567407333260318796784775600243462385601023953204300580038210319155333512320522956317905647199150642416814005052182094786917089934299355169802403972183990844079203395232535168849683039785672465851256295156531785842299745643210896827372651255277832745919804316801913437854194623457565092848414251548582062956006150789489598749208380851695486430599454520507092135588949377767607359017653822790855667943390298931228466860146797104586928777497046310459979147833906676405214893927939729470387349563493017484306688714695769498193746444922113926005503670477531944426140055636975111251897412899326774365288085508064022235121590927293219019996145427029648805744266804548048344704564974401893370328881972244817935741764430176507949615406848052344934198778110268680174567436718267868806966680845294297377714620137805890215542367331139005682977153192357643985018800870485714623789484271501191188425036487074862390198128979213496096846987495445521075872002630527848474414712341274572356634461226097194984338196221540289734328264521210011375325972390531171632378217800131921987175181814211517779102113430956626631555028058486977306490406408200919134349025973224703975781677666940506412838885325658507018907328129612013715393218086797111923307198223323590765904924882493490969548829639412898057424716298289731915593845561392729402062404060066944701989040517450357032779077787624870315268690928169338954378272517204578449721537241858993159518019041412993954380666719846599804437797680507404943855742742698678193682741865049276760451995563708248698743903813907743746910530453874774008078790181450064488349247666682820273133537232773772633190568065811617589817990055056979152956541086482426401998135949432212567633942119996767892933372787765847397485939356159155560403022443003063385566094941298561123322544357090582902539415845183129989232526923306399750544053383070791469583662894233386958331438399372892020624963302223812457389946441839441549284399565840773004075658730863405227119230684946850463507200113690866387729774299937893669519286452169513401288092042031656587443316652849586735806483060266392133209496523639341640850838024671366275541338379055023586515382190484215787269209275846316671047833652841603580097379358957630330322479381596613039008922587353255666394569476673893548783193614514833314886189179586585003881674054266648812478292675057507206661422237385596240597296806561173182455048020377696740977369555754237072742842238914429835338418064532592478455549576475397241157490887844741629184732663433122728134448794355270433049325110414531239955320595408860749846224515570434707077563862940600333995380615972514760718662264745248884749139030587412031406355713157673120904052090335582367636100983704900901594702184938274622980805146512174237366847074855039403326581339102742627962250462652115951984963907595718593388322795762568330481704338444265777547138507318053150975091309645232760265894375211078977127364402556465546225954826115820961124088646810626448884271809384231010666785901936527047331137508820196272603156821696273272288252684043865467447145846034758601742831771848989711839096803087829619329551465281113770799154913308135357307499045585871208606558324959272444967196598016378908323216849760820511334732958111030534494067903851125092626006809635460041160804044492822578002900061758724448742712828677350031099291930823757042314707030861522235737902434300279660285321229410649219849597726664371768870571213939243222017909537672417629468464879258961335264022648739110134770365421748189588839160041798889693921321088860765928765136859054313462200427192079602016411769696101159440514660001001000460935619916150831856954251079336266712707740773726125228190220062329829446583722209389344060563316438325086335574362921084836905764497862894143329567272999311471903242882892847470815478873707438760378231458227398530987465551989111143007586100015574910232042669616162044770922266572318555442955309383015130899862670720240260425144480174959577926307800125796762642855614578527944914857208946661828287871536202024461515679253846625044425264907779054103580486070198746372624662349981275105566065899411970696982501735707763845330111254230439692280045421112225874072123684997609442675771993091957398971309054840127982114552863222695715011513147202938272414562415757567008796093764356910610454506675674977092751947070650581528430670863140658225985382871400115157499859298742247028590942896494788284981074540473251005035539173822403377260253472867163518180069264742936361775072270389234053333503975011253904478994333288934074409338302467992056657709379390986198769584065456593427309902764174060377716541547441622553609498444052787774487650926044811117896716232289061119033992496019437893404908704889133479328597916662163074738957570881355213577901218685301771748352157879847095036935370981143067538931468188037092454084580222760004984056293033137229809996854197131599144967255058202968081624592041991304263788657754294607625084543378898200585797342836712592192958435955236309544645858521085785350491422202654011138246126043981390022475503348432922108141477026983803621975625540379854493691579231393189850482801875999606521488510683425820657274513200438271704438566604828275906581086560968076773726447289368368063384015523490011979025478618793954475450604787583469594255813342547545961489142055431025114136470640890129104412440171757502379093529422246953311533356019539000068296533256469988515169529346793851250365036312696378370210720391482248988174224234835782005591751140257961877534812319140732416355369277744992822601357006728794903547735036250625639735054380070902918281300287930530226094759475176894288201133174858368753594515862938493038831575397273128765695925264751721691027172965592243450177102091851055718594011544814396482724447686883805272533202970934633966375627256501764239881463945253772753864560952343688880345403797926190249760726079473414897719519438434726487186113127402438893336441826644906022944141259554761479040369738414319202388890399061500520228762235831851698763723022430494585624694307041230751370913788203056996000729700317363281737957293883123163843803440403535166924062802718778304164457567760711998012481348705133966801465929839720579042808241669322772610147391232493515617647510918889862084098718746925409711220307610644568481579460501973385723167128290836153256295778533183456290877414137303060281428905161622819876827557464883557426376441761847447400452646310459211049178451381305379406750713607919196154498807989413733654604276886289301182902026252512685934940705193437034496079819554727872497962971958157615797632104517704819411873490712571275409884964939321100683932915726839612966860371598963893597138764848312345417767630790882290558436116005704053803276982125689285090267305818442802046924460351216938493926378233483768307977675803865330852130868458355162782330251520168643367017518512718224214642340703325914337198854082383882316365653080502128591586658443107589842399024773325502227470638735794985944503561330392781486297251509835290109900441590614934044367750224922857846925124680571437517486060722314204022444039446526836234176832255084711252739989420553139654141924846543670013265265015864299082995575270706510040374745607911938788309339444777431082338121867034286429375120666540968391450678843283849342068672779233172618330750644531948656946789790003459476403122631774256503635582413652970041996873631317175887796782538559650554290001039224390973473912659242455553262060489099186247893664464427075195259993917426728635433796835077600477444065889765713756810799099332593378341382199900694581168865770359407039472336691143574719423298274902844138079641161284179942208784211603502009500063897537061043327739377945294812658857630324818256151137117652887726263998129137681738443206739663535514042130449076763766553505068126413803282653840455836242979759325429343041190693591363919145246535918578739863819071602424455841030134425314657965194706008952932028374543636860867936225475876394942457486064300571825689962750034482902236766701759014573938747974877680978894906462984018081183353596563828340720592153713614416959285042798560156936992542353811205598114002795534605265213248563180471482364714113594580342298673457208238770552733285009972884261107018288077884262993063678868946951807293498483638613642742756968165800637268690059149550466001171357242227754844576797454751561450632895645015647511781925444199691366062848463414506499929343181327126997452969753538631739750532351219964642988620963701552143093410940366520555832706086725235539110308263598744857961251561304016315535144881350609918113734150086567491889688748254725673307655509510653633617224190521052587239060181931251793132692215294708787810029394743266385515646482357328970757602070217208147983360402199356995465526776170863901616868756864695272553967732835337785514279011642576083935259462845420266237166143246844485114990110564187301524379285792811265064457656833059298185919582732493825429393969094417525283004393384580129324329327227487382570986719597146453991578353918020542147187573055923166919566740814195185635902086660877205815321279981814699487403549332427947233870371377216309049340825033950700985484710430082739082223836541740221160107760166688212216876620658617779864588877898807896098249425266571414839496240144637824178192424918971707913319722244374053818039492704852507278109984932253175027263944643939142122328966329049939217425572324699497830531392392281335403095927216674696622340050792120294473562712565834508515398173135419701725107662477613411567824062230263521635191690014503993052751347759818784888532126105471767489236122747957046973124466666728889249125890766475177238354504446816830115795946266170758774042485490765655647822457012714153096946795081316264958442148519095860935564439104903303406620815319970562847109458661947282377928540926304759561945443170131370469722270112987614379107389159863147466637856996945616432219260375261996303029722012631715637735384669077854501104000487899576958250702034222744745498113348664158184550585939701713346487283835100655507446555061251957630937317114114487128409340872978899853337490032825854841982376358291271184359964203872698926987059973021613542629341591032047074170396791495479640863145803905964788939292834499289405125098782836592452127051922801335778332297992498099958227443487911292756459847107339618790473800801858989072782785320750140459314661124103294207793642648595427395678254792040649460246517732098530638574066452961749285730844716820399130790761914562817315131675373735533697011342700955650744729447950879940726026959162874265604915177600227103877553547903700744115703276378844488186838619481973307160186228745888994186107647934823360340212818222303760397277819017587438717583166535825138547032552333498052170953401854097278567408124535368018671784850081976193306702381989430935704865634818405280643724699346798999064331837250961536094001548095494498274210343677282913964617118615006068220900517895626738852461151315527713379936264121093268054908243113612993021794957931362519176791757066571095704828748077973335334971937368956850255718419541233718872031400939792069923318030631921025280861831102765349932065073548756123950497947021515121215943742064556138664959571806291403857346230697696169992939839205481261629471251257614583701582464234990559402931331367888333959443374095640440524590290585670123589321342363448641300915321066027956561744036922464169689160528982360967956661511203209774269579623992549496000886292273266407085586750320981995896888162207685111953235616349953322945760402923285832728008799678795000244254917875088072447803569576141392269660247039983166664294676576484782680196609381928782531240134471944454480134185680610143088486871095204479590401646509197760385192541031446148510623792989717601382345727866941728358404074503909614388197688736366273267527679326411586601499933065582366616801686754617543666293982981289398109619776706165998379362173507710336210837108368910522422150602997745464449471362631549652297865066988493709114165452120891012807509108172450786319845809585517601431211135336661180199166544964185963522458376816384224585105791786869600505388025018456663208806764388855992721713350666758360697849565770834097400652058675896293030279141660440547416802198050509415485150866025422197015999199669405829614717971644999960791981374934798349165817138553805966959357611115205320446026992154921816784926790129597378644676142963594712579695739525879199907340033621792979035658726158874985115382044787995301151253259020442963492002057800227229069386131080030924912488870992564224322827763266916898076011243065014138412725367987236014887107500456301845765785554087077259092194114814341443904364949306509526872417992403795347149579224018514588400301768258412476847354434893963225676124324144655912537720514708462626129179747598234848445457954737905055176787138738238870826830301514773763942372609616682220517451597071896468836224342053891174872319743184310637947260828040473349040326882257458593751898028307754254297505698504249874828249411757947794657094593215659550878516015998664786243893816980679587275999270139309208796817815383595124332848513659469700274810353864165390129228381494489250892449932844345266193416597782116835186011707094674897047628053219060360902573789598527852816324197789503158556283089226454273310376186988109511562672185867482133205128449327277024036664861215737546482640476720824955812232396400468776485801915977072795401367477687329687874974099779792521799209447630246354344354352394695767264766776670652985432359255476513503472888601698500971248171491707502864572303631202752042337679223239358759734648592731985385504240707303689046457076940851695571581054384342032793616862681297796837610987452680947623254406756936352534817158988492338043638754373123363553788665483342523527862577430320125876206120050256682663177748756631322341750971378988380873430343688623260061407608341411984045131669320427079876383325982698711287492538491181181156048459492780865700514418334670548471236959537501979572654745415360751890909006647586062723364282610799608236442983309842528579992582611647768897937090283630385702835183348752286221446332164367449649866298124956576679408885416956020577304978252029693922076922031698949116073496663507906382623977296165682170065946576615810207656463456962227573365458382728691525740343367028200250815138486249385011092173512648415478045552922032195094885831638397567288892980942242179388914064573421277775938320559192785344589884863175967470455779404669196366217434949386176840138936164064424430129028970961898123839291512988773338345770790388895707425158123201853697017700247041154798527319906342486339352850971238951881333218035571223332786566694001460955789731394203917241705325855810286166636808845839473953475652578815343027851889604615989487539202316884982118922849043181667749327059401528331635378363916178903320474947179454980026283781779641470335460590238286944617744996203552319143374563013581542425912412886860248069475824699108086647256916414225451565331486121519724600294727842445396814470785488722374143633623773873112893155334204382881096467327138578751318442478422240691504679164813743082597476932388546982386991872611337285192642984570045547154250720248731867719201453378244473062897440365525309116404123137131819695227451376255820806801878859234954896735660585187436947514582655803018123827154620445916349300427174033621697003689159313919310143917028876166436266585744998488944641282428164793171077765748070424838286587498649216049386796379878067782525179786238407133032479321855515318272062248955252362781314474213767099240290812277420862711815486640918672448035013994234269902380379680940878499983332869325984254192133146014001565168180694482093907595109941433542033034123958058730854970924884726371778045398181025930452354380675955546958920373643763371389921569881076909389905523409861577337036828207782991339664671546820169103199037617533525939776584649837370662065807912401734209154670840496818646307871584816539080016205714643843454983388184792126449823346886315066360510872250273799207677420736010263314767799540439913318740500443540597178509373805185799542508247549582039730451116002684805542432146782394983066541462632902216610084627509881266795946110742105711915857657050198878063822624524991236458565699582222483848090523386958356657180791342953011622030810828345472790388116735471749970774812339664183360190602002525586138370240647579751763089966009267101731079282288998608781968917440169747976092751402119847127210187394979382757664865140102475910773935226447361526927509017500686453794421735153545297952844149318641980793256503281882954519925978368226094308947789506192070523846197658994442760863831939632367478224007644305439126014793840812620217715517225589070669120095000674797399302171803494335159918552904643711959375606400033222884691759868316453724827794926923750547583962327228744026738111215232677776677334280745798967924921964727571907119887906277297473879848831010545465317105584468175636761492900026457955985931214978446205359814680756908928987909357651331642225076798436175161749398875865023666457347041010793572991716310063524486411104951241994638834302929859696900209143249657295741354937152048963751596223649105410852144510305713168191744497019813391020106017757078823742043050004850516299952492373871601313965215028733104590951898120343141225738129787445130786050418602098352073746228477593390156579556896445873808557397429367542020690475414683873202659676923960370752154679578067919952199877071020205145347192053937545633405959000975708647207093108024756704572501411959866031945867955198511639352554802177774858895290932074858720418708357500639050827942900863891195219391517442519392752860053895624766221518584901703767735722423762773461409098334475608686244690730533960795291638302838446918071915094046506528495185827690703645493104798546856583864272999601162867368039586572541388965640716749124781106224189679133946269357811960513308531443653414668809286268742209830639933596540669035732244705671589905844962362413090841005677730634447240833685106503302043450776526261696102971900872159066354598299707555777607112784358387478675053153897625341360987092073827483984103189416250843287632529706788027925083532836483302720875772894631912266226443681020787466908413226754897255177342826942792817077788932945076128772912091917430926973350654917550368257521414358147921799052105659192563536166647736945856686087776092558950207271970543785735909991645558468889371541910228540190156233911982852223655954616469803132834988250421309289961875152821267071348895204759429748150402927410931834451204285881149775207228906061445724637308217637167501691082157991878632684266588617225619424578947536531824613205178911106420963640622078948003574048790850881728343418500298631098901811991513903647917340464530189302272040361356467780582498829510832477114910896800928232200007005025537927911776299304095959181288142512178884227081924165013669106498131262063940543331253352038645381908507748893607981114761633827872056755631820463669895477238071185554162126511796901549930129703642261204350143296432744484602485250171995246682547734787896686552109643853895551255063320262427406114598890195812983746516444050605640277844170551321052476048243326035992616661124677364101863935220729915505228519466417954252934471726454861064014372689224130002777107325575916398096477838524756410528977645700551978653974662659732368050067008570745469845191817260328278178557220128760704918148817656933678112375664823150894120750146077080188312077107138897996930395322681264357829033868717583144823788300501380578918005741217644285597221892321387919387483716435100163310514812602416548633966560265443964651106173072326337275034340289025972684767314370322080721467993379252966484062048717225240595842615942776972930420340751127493778236856518601535062253595163950083153247107680325033656820912053810563505632835462034145894897452803074552939460353041239810569813704699323379133265363501708451330296373504465504685097508174534073294130489300872502666901235667596323021673676589252362058411283807709782041925801352582159306797681732273483737686691569132266371430203522794273232462705611286889878943666248774143730294287133512522473980162368344050412190213606996232721279493424622339727317907849399853118355294599075001196739105294115320803798068359498295956912724733707093363158268354889249354314387145159178670403359416224499761494852772339711157401493120092462205970005591385910247245693968014938884853135748125674310023382309486730857946267579849573870840937761196416878844814217943381812877299415817566758805801464760419948951433944326957829138041750094065772142151799363256673672851198129825795945673455086135402152144845636568785062295896104247727930168939259417499182679152465555103526732540490942409422738044651398319143180706562027215956148535292012137260435927744616198746705574303341975461088862945558037010335327204765619444458546842485245043428847514681752484871157431267094207906306981188236314159375207782397132049027893546060749525507325967020886181948800966743418746318081475584455045262133000970825279814441142741030676998857387159734425013577904495828568256449582675456402391772869870127988705430921038953022769890713454191649983607363858828065689142911294126212649174854707470830429913315195316899039819040693676436672637545502151795454508363058336723615725142420988960292115655080222058231545813435063934506393837437654632640331986345245294004799071047675758455433676258465185914954815969413753228026597752638389594880372299991491699160698000730117402870526038480164055195650309619986941036075500069597833859810270756292100796614799859374098553033418453507511764354666746123169365726393771444980438081204846371589170304940141335011978821732119831567371955160507136361572890669142596504718549995429227879591824603179765484091514826786942403054135903206821667198764536298711301451255596612898008477144661383130936460027980250153107212596337982416772818859962684796271082734670455644226063438819459874467458346005019704038015286429403538490140639176407103721463434971904091502840283517796777234373745454355158207524656871020970176790693422953466025312758715789533994886255663478616513262806655611533239439738558563834835061249664201536894484527266879053681543061045279110611678447559978076760695326877664961619534880356529399803254333026592018994208841094135822973079737493392535234050860409684292386847691864697295086510939627038858372070515006469906541085490281011448768785675062865332016436285335312513670060473021736080361690170172167488436443318719055977325156134792395668561543493286152573359426436536692813954116473766884215333268954672339202016060082753735861987902312972689712347789463456973832433168963226224879179469558582645266971383236771609358022756683321686440182365095748963890083561934967833979344211732718156289932554717844484349139337407347536091417706162144598394598194693419783826348007038674694965422826858199795519054077360436365007151352923645860373121748325582608765335282244441725471477845786542111119691930144357082337028486513771380388492146221983803495691332097804760400669469145731867478999440895373465330785561154294032344858569475187608681630881745165432007448759098911976350437071018411789530926374281494351156078627617183057414133266202093806783068783429276037807134811551879264035335921545089661301852567326857071409083649652318296951945955621076898889439739431301651292658030530990132758977302242914734863237306247500181149755409771549050905906783036424594926490646532868193446537913873825930385254897046429016804013123489769339967237846510336178234061888563614427170561928550858802181650787295887764715323901906291322401841410455137548437075127536400725956494179478251086295370535857980686670023621183244146104584813568521436780006025953581645272711612021962843434897450577021985757411518927184063336291740609060162663320833898432781295245884961311821011282156855487678009733182501511205040692819621706753574412974875435205127331132175014387003542230154913812326663467087372830217799589772113223363853431312968614376240997514301231899443890505618752535763443059120197286948778672119078246376714863633001901785931342407300289466419223269925206981452226198399995048400141753732525788223977501567911719260980579272060109796103181788546397070465752545690481937964187459747949437645111136936674229857694728800360830195446052779244869438881128452007122965559026035582645507992680687094926080934854004803948857224857665211973650161782559773326963410039517323389437254499584439950511075883798109634720388851224237729684173553488458632899947985821995961752106185953182846629750657298619447984335771480970225009440808667801170397798291427280443757458990577863416068933300917365796270394608183460851370591828208370901177357355791414048254194599726165772301621085769291257536812566315544656034400386785735640024638654207645450789623296240713419551925880694250006718922650428983880689766576380257793042644361196557853568373336545938460836775670759682980191682646092248559647623101489269184487552812471748479449378498867114331763553938631069901286610042002322032904246043370271961626491632130010147779609100550780493329050554837285734190835807510010045779648913351848084385502790890744746987990235211294298521096424213214165358516997740109227597069916001061215190081364173250993571840714459747826708333968205285066636454600766919191584571647393141209595119969877796804954161502639714539722066860730097050001324798857968059110501764066654228342711149620159951484114698967973969385182991141528683478053934741465608778960234503104693312029592969205285399680672846390896421730933108768716950325620958470714794517588635676337881596827236749620147120762497268539290284420601820826289745999077489452105761118969888552558097594021479010413357978144203599790632121598758794186567903384654063904664098979113596423223063174498361635148720342997834179476300525797465990127990078364911529400099054089147344652935381810310049702182477469515035844773963611187898214228798167550546912502684368281640493417122386783159889573866074744556373770654597278153158631320697764479577908592813881569086754405754305107457559802463843403165431994826916649927951749536395915157932930812672683974318402967274918760011618628454358526028768015225843364533233681568675835322188942908291743855209557676135764298774623826790214713063955242636173930281787784027782595399177583747572299505999523285188557880578736678809280795591760256160553728273752934337238105895758784149257051092025866124142855729083271323654040950779841607408038632563594460059808382334412027817369637370140370485708200732065369399442447659843110273022880735466384685085495161504656421294405451150560311353200618599376467195838755878240727626196957409165343917334691806643031277724030543786285551197600058773987840776320940307150807903107670649180581490564792052432292570039956437469819893490688107445196571066986341243649392235056986034622217250035529454668387859675842392193541752974326441539425928933691412239117242410398257362468058477577694025230722726801563152825738937231019897037063775118340081682532638211115717187358260345194443647055143274163622671730446977320303718590719969237838107192783604757681914799149861465679514110457501754753093886943325676908464432116962941956320164818478645734867469698177765940210008627864239873660480822242483387354772772083598007686232575596123239680082261383116257684721630815922348923901666907902651592525547897065888704167320415406479092983734592826478602670394687264568661635216650812004948244362914930432339468340744568529718495725592774015079687280055643319921183862769713924984686395211701442404196960187879793511924419311900026837208315806903512017064809821064820130658801314788388841178246854163640441257924436509584094060424425330708909563715580491477075202644771411673349783310245805285804843181902879403801770137047573938411606991801691582671898577970219961773086459326069687790553233111794086879290689338051749056539591548902935986010528237825144561277233813423568511134660643309964772264096567468686164793139671433052975375912087745776348105267891999386916300722515879802063951510571634211967052236735069068939836830482968613891374475719871885340533045976454813530954054955271333698118545770760178587001494990601285202103204715999518927373514562040473206335013882848102938359138914573276294035074540727724528515216875897556124541132042586971149647475751282737396037089063814903228116776484764364024530755640773284817108485406217357046050592739208877453507528543705612396503227131852437329723902197318080198183309990146060207731437806592337500388834938253321050105185952313710864578156569643880898563456209818498947940650991032241408870489323158308834023181501974655621326556568572623997525136727255086237481529636882352665033928964196665379949823110170350007098447684005792859651104147259552878957782369575462796578371630571934087666128989711851146131551949387736347946323135162348868134679720712535091657860115268001345609438738629056100029854685362866099707330306420844704629095984515355710151787117668508548393626865556614646791768947651726989030110554176578854380839527141444457624541712006956130034205704901637782866435624650989297228971568534785037397685020243476964017779602246469770764542369671380564595948531663019805077374895413990811210716652125256246019656048659759603020108114139089656508680036671638321739789577690056179855586253412769463619153801314346120762502442073074568202735718668625483585450028265184178623455829028417375023994633133221112739465970798419592944175200865234904586568613399720456286306467931049901109154578565080516246100028306950022583002764092527519591688979082629203438197842554519143111799213836110728823615819524164673064189877688930479899983638553433856986386150057387581212983228906870923225033538825948617862746756004649744023004530306496977204485505560351097697185135805634182036101830427684672037603378627140507209190352493719259795619376524763546086281705444684551921356044076686888782114322006492643057192144649585960967579850824223414072719762292998820238754893125248495618395651143385169949863352668987120366303539965925884190812476164065487042262781528961711592065646817649047527988037840348304472582917073380955771600555054521479818638700154281815019418847789400725712894698122147934464138350432375295033126178398381012726041037038028095627068926478385637821551603787396741752470821313033560863341844414507166114953451589951706678266867561833533081474695761301615006207086766170008967951068439432481049381629578996832925026784359500380610492188596506478136306731412179356171436876614287846624513339836365121229369617691478525349400075216379440559713343816939950708485724674210085846052380534829173657383264351346563598092236114962096082933706445936511442438239633619387249466867035465706383020090068181714503776616328343457293591762231244325350696561380033124106063948263960111619618932790412890601301403609338141924455955504325088944642318177055904654615812002839190544851145702033237612666714941987395077918019060576243689061143951696273667223665723831238897901008938641958092753444843306653674867510333149778680780916279232310941554931046697141900491153598830703260180792083989779203441811975486274667943896495334475291801927692239207286544581793244080410687171321484743838519884601118470794860999874037146835239638820868293405352428619856400691298017716829331879826850709996028911188944772528772397474855197713801663834323258148257301739921042742755867454245203509004985660549572636463135232762244882397128150730321387497073820975241911649166902186936036727289626779392865704540611566467187533038031465172719525468358226374706557635123937274115185064965348743892878943329774617802376945100392274565219854464960681517482061554299108719793338324732784178199037157178313786469902945367598640257699548667455301830994785877344560644956181475005157275763375349210085546753608934749786579220501624424549336308131162495006623594036350997232747472298604448804277234114699785649366461070977090459963967161446212242260256694114445129049693458398719514303392190729625450551027162289748533342469494739846157453686617036032996785837318294928606631614658695867400418696357603271065965380862575397889763211458867824562060714054190241036516233651835997360800836167132571930798185391442844931900515723083315465036018146104028207085478145329894761275999623797857879668478784415682514232183887735013931290769332401108510072455061890940019683033928592653888609189793630270745650802544721488377073575324391847517994833035548440925006614171018149081667370764505997563899386430254767918840911056086624039425662230692189737553248981388430785049410619331032309158251292760955806635113347903035225217891243985167512987207957450596550631911871686674334898586698871109130829882179698003607439295104071008456579951888245245917995880950766112359962544557441460310606209815722471550992028903650235618671507088933830314660501375863766132845641422419073816094681146017004273409107860892053239479054907281217255511987425687704519190611282284470559804528779894236597864044674264233665830082466559352915987257986655023276543617286001265356841412135263273686999983747445906949541832220583221644051837641221001565415488046513289895514895210479144530499463046557863132892795402517215831984349504406445556613495454681284914504937244524093823953476862220711137132804244825343114854159206562961099735700250515662364382713876904134772829192429883974928468956793864941402752055933752442041162725953642861961065769962386846573132972683452959351121037146191624499021548576106692484711305718016267393062945129381471032720293306635707282534584747997900326480334091509481018515815173490228225716678047844603694788047864510739205045928610201275906951183218221331504185617294275776489971429092178940954001351943232560130369292203820061655167639511474185732801557358338304708101737455771631820035840846506810035657564726739841652408150377026565661009479960457847835824727272146769139854319323457810533694253037028894491476955767528765836789531750750096008327408801504490669993376203799225960654235579723336349294192994949144089791223701577087079679664711285224519992626966199595610687636352161390822812705178157023003678877486807935521176143967454421793253497219518278414384044675554737960755637373605577208800674478873697181168591057003498497888240043788419875922255485276500619173884411812806521559533142748692684886215055775786544201888451345404252283065062420615229247159446774874195220548156285543876756065821742317284543824127136848948587076289484858012107570698308287736722856410556577895643043536051949350366970704812782118803918272271646508016775650554252724004216391256998881907919417016341002320904709606731324407242907577677448593304170193364316670195569539125261855132108123046280368671958367843380260211673308595044935804363763208121344242438234440864796760991279296706304301485306913050631566675774515107750662410145165542573922210073367633250433994650345938854373502116407576939528332095863574722620053266485165612725600739728032811509839059230934177825133509516664115008386061988914997656669215161380189879643445115951774196987111019254276833887088995472394435072233906473221886054160365131863534087775437271792750992929215244362124439761091169590188672318404663979469577230130276101217948547710782513161284529707598323253726765099045500453429837815616333755261259782659929538717715302724224143095979010857732241101680455249903547031933293068870642601760676187369800075658936243774908736163159471784724551331443631253963609197855684700882144128205226937046761624409128525401092836113271514617186250610846906469390238316761874859590250408613799365172010041749796103681571278793016866564650111242905827250332392983458233530915547243580263443223970939493050611878056291128579936904066452859613324721691589130958750845929189253707740444143145052798056472401806514721970004806598793030465095121620163566804213003749479463190664843501292821281056888634291989500671147289190628137616467778690105748243109867589516501494129238911723650168110478329026691298227347322315355539460169544527290482146813176839461422700703286462088261140342522614086413117035981469386995901805212968318206710877404222000524174263272269964405416836589206616632575323128581468297836729898329140784117426126957053110580110768936585070891626756519327878169265951099839200027802695396876571269490130029236570157124013255880645143154699789950512373779648951619089137884601987525068800879860471017227897747981329757702833819435452705543077685734973801314792189981959975461849279276519114825943984485708117535832471094479356670523676136747549825433916690871669554285977514774325954272158386036152155018575802079163520306428157224879726804945418254673057317589657796463401044691175587742216660374387092251844233889360651025431967353382137094527712501724358904339163425961104197849775739138163884616734991696115541196126624725722469148912408528730248909437981072239242094826126153665859502468115808877012555344819891466233496167254272769064081296936185711567353453584052919099118985644071786853557851076270938513227182110627213983521370943997812032576455318272596337080167579347685788985821583665451345748749103602713670863775029119340816252346641368371946837816969091002495333919712365675427983338884534660053308182886386909318603398311077501302984081460022991667259692888722153327499105458163363895056039004164351967741961841185996590938473124780113817743163958645602291450694183259075109711323525939888644831943209098737976068697895279911239506471992456632754235853799625950716938356466450415788729460773967927822397138974595325098129901521768451644038846595779467107837681572571366469720318467917514683973811742630517234091952892618345085011884677934143489111231598115376319025150627787615927446836433949437801778644163089491281857322777026857957010157358685406184932318406642009098213249078926610485054893933526766503184377370509164443866124388987657224397870720194982657009597224093739212108274782854243826269009082412060474977090834905109924810924798170764837078513551035029154452415440203209528447457617652431354348989587406079991699733539071954617425088954919888954454595089961547220139426204753904110325023780594747349543391180484266984039377598896896808094712698119836084177706953537673198292168161675645501631466892511412322938170837161854886140178583668488431253624585465891205621706392833243718625297387990478780257804161774174613420166605191857801828246181324439337477767594811506555449081464212747252851837366721219719073864646347897771161334953670510770053042635316450270665142920852292105453977550351655315002770917893547975072926279286190165510642139968911302463734977178935756976058289872460757243726988662943045676820357764308320843481461218747227482094284856300069907354549130297373215358365067919198062152151594990553728675861241163051111281314666834707830269136239844920859287544801197669485730185149979314592923078575729147143375292079079852945260609734223961183459299404506855182985946685951699144668682350745189475709837862224055742622539562867599102731902121903032422460237261834653972334386948146141799736079840863830927301358634730226416760695551969448529016909123401745713839616002891378896238842154734927848470310535011864790794801774330692669007611329160565267830076180855656352258807308645078157162866631294031638689743147228910376926515012367253114558310344554431163323092246186843420890620817546714961008864873927183758922516242284640241039878188786474098489693324231280881713175063144356412209124870855570174101732155215969899944832940370005479982007845771635406993282513077365498193411463949067715460635477716371084437616508765800444158665792135005327860198002413209971345229042735801292074058394504074798912975323015216468869556956077054099608000563743074779162927304383847277765368990885647555076873264377829923141569992834063684502103046592375114774244677923617213273807293375675383979703304560520520384516729878065035646664382174802725643669073044963088920106904593607146892849723542879592356160099950245141838004127996438998648338617491834488228898070325479069288345457582199994680086850186671786274089108447895661422645073699472367773801315581415633058155331062613944989576959215277805274171359410279122956488898360051687511170476083631662679509339316807118261098740816833621591506139713251340765688078592405515375713904088541852040056645355431814674846779215070898831469268093156594337196060881584373301384166816766485132789710622688692798617554167001902412294300586054971269693472902806487144043052208661657175032733838429176555663738986279332133199999016930661631472937210713371564777118534731344061702851363414943285048001897837781124062171774830378906682149637169194344456664087099054009665850858734428664744377255229992706884448258599049721195312757873602553514543437660453190210058947448135315344531372608578819587467572853955369547122301336879899497222884967180836090132995449781895018276806477220860437278308976709457029324334505759081031968409232001672273098173457965803503789793206936943822419760281640612874444697472386432741196266535751195130523354023964962338062145004849272942267737187703131468754389328095859635177192775588202206716459846319562862555214391966920889070832581678596347447270306311181622575466781901549292649482614598531831052429604755725077074558024275356656924478988524198108191790810858914796863095679779162882897235395039711545992332963621262151966599168593125312788516326105552760673518053076290292007435624995865061407566010795815940770593668086057100351119211513999264754259590188501579405947473615943520409448276221665430493187380364056437310808633966298584003542087792912399177060726195204078334716394521371003517173375523666473759404649006498566833625706716844776016726412936748891431927514095744010328228140172831058525215911350211344105390466870648033540822735129351578538002543920260718250499482582731008282933351860617020022292547867884035366796403043011436827435094694931005251503490214225866075525185583027852389834315394488600365660998103208304937752109700493181585705421968304366783348519951971865286499395078231703481829406806565380549640531510277954335431474142377341330947919542543063507048841321940235445770433956439882377557791101203402752158714756034535892041718507364919903113456183739550835728424755166470939079251336723508047664505627596887569296330012935587831856533512078781375834528601123040439255323556355171731507635067409461602320589716741351778551559900244942616646953179910455397659005342267075460135746488343836439574638022645844904008302212930907345154145262128132160146168732955512287990376519961058285251213538017608787605558923250975068330157144772803139056292115706522269815319539115899757028755123804552066696040445157851939102380840703487561839307697163037218129016065837543678311621854853389739980156260243358947982425904429247978731836434027042510002334471458750817147294888819875458276525194261833121482982738282650345548131607014546120612812524320067378708464807442970007228475887761654539319886831041553838350238285188501982049149402543231210026237361273470340356065064713544037273796397130739387658312690440415409369177229549574309666657870201404004702435742188020539577151164152361676015766850174871443908723991493590080781032126595171098054802368817107861278199116485285107657159469814198905903444921419874583848328348386658602619267356479186539119579977230450527843975664541558310517861192024531895658165412560758988601713433713440189397867182046884512369224229232606930434699595900102492374502590746740509552838948129182151248526217092450731527741230926931872626713935232582418746585394562221935050909458214618389735858882544052851689984589706208938320764022937517365022962139978010739142661906162211935716331110725444738370152279150820838111764886851361487819132023999056498305306058922169603840185107339331926716782360918565689183221935413466336609603665591328372210508419870302901198790087890377055599662890035672904756273393699125643793348837919111762154022754148699425054485356456455509661685159361498900959336431027639630957327262057663533706179834905004282104442715529099853949909497995123137612803007492200540980570859065516961683589542309900873736593041259997181003828841267181288463809731010281415212784630642185435467454547126764866654207000459984543056542313915505521617659350897322377324600933025659238387713352509822570139523787879929508842705164542932598803071866058237403832405311375546928092216053122907972984788758752071450302699962320859666469925130775461694752396475712545909817056964559427603146408638291287697883453151589469586324201411627428405666486184146298823591876637953001557506820419820596908988108269289496423013132394765651791403538393006282374042177151123903811568962672979161554849221004282997638972034162058213469052215239111591248821044505874995228660897606676436835581743669323847162675415056453546813857724947250778792909575129416991855936793644335142802647458306090054010447697006503205937211411107793407269846976368660268737991192040915783397975513370612584279390089901600870283118519499615894137833127249096496347475250384084747775216784018691394006362214583493826527847986501556100074832203652687212759139314368188569031799521766987701960838508484345016884758954071555990677350421487158882479491665423994382472997996508869543055163244626990528825883585407222006434798809001774610473850742781105263100976916379490383720933208261704080457888022120065661076087562441196872609247106095282522602935221958151797329450645283340427637239613919466093790587282285513821451313699185006122134866381741172209927632366127860191631843139675585466735704214556540166170204339669718970185858308444995574655655509314178157828743546524274930775152445871492772014407106786226888832470817822643243935730386031941904875078461690149584282775164592750776639445782612827038898199809552683702282051690854984030221178100170372482966480285267128783747714161229222272839349239266183286574519646539655885377147167961960533747745988650038932648999455137539927822539703872344533397498077324945387079020657569537257572055948377721967982754163063043987417902232455669525868978944680663494647134879901045398261063276503760427699796297554151056299558076314349547590653091325595001843706908985144765154824557630409017980688286157336259134361242470415227646316531604376603390325239148001037821766547213460206013253938147344941293212919943094466091030542641007807962182306801251074906410636559497934008961029102165202208483742187224415270708529837014330878370025527758154373816801435648485822279733956152284987721750369377130832507199491196525049935262456129550997424170181543444875951679204180427322361507572408134187201811198138545794104406263121657542646387961214908482681460467261988108589505725021605653015702497453016154408385345676308622658833959385590546758087506866829508765622266759836306258580278841483618492174785656124919657791761411311113749750236781705882874586188247097376314534318084239683351270840975716416029410936781746727159931823368997995279020501587007987657257765692540198055997999297805350139012557499585176439118859040514802562631996992403827937569311838583300182706219616277238215305858733765125274358510631500392582023423602578771596292201721786103028721737136119853680025811361457662518437504324293945401352672064829419713402742927639760214867396445545727935214818147441039303018172937218893604854022095818228643462032844073428230128408539231576951463288709060549017055431574101360751765113874832712170591478608805584185688855492026165282223133940337132299335672678222994075552876322566341781019827795200959030589961952003885346835636201444819356654854516699353833607042784839254667711552072265232077803533009571684306912173526751017275011397161228878465300855806561900759795758972156832740148960959811941862120053123266450922438422048982262939252492648497520767725403193559120644360976778796811398761401323348345076238270375669200855673711636495795434129636249771708331548436245093305426795337862720895598674918995934037296894194604731072696100673672116374903769508445209356584885320038654448324484921444956512015614900656176304406096722364059104511955850728748965755465871587458445338312094148860456757886641063437195653278215768584800220616109050617648000950337797705981507108896827207692630428540901395800328594895482551599014105134582087085274335475637645469028770423943551439737718558953039871628300738022219928635325336581983252458829381121473539326611493594641592350562485156892889972984754904868089859496879461834574723361587484292278987476908262304156596612357908799510398374991238574812270086757563824743125180337720801853656720750510668588376855075422626455680853014645786934512808323201202387798679775577802278565516714749625617282034154347600323423053046568261080128069211676936865262574716804553473054537349345499731238626789260454323934205377036884170671165263038360260827184662394475911107688231550340172466374731205421069770516288371427471692975780759510859733679968155480458435815062551859377374302283464771294435798965593657735081366331545196268445556790808057964799095769037311782540680104297456119106421004930165494249892960186943445227309358271800477860970628000623983828391357665531188532618846265814581533983687846781267110783255444706795222072470475284266401740072526687611969741596924620211002548624270479411181411766714908700131305337787367241605057198550421210507345779728117523814376218718494950246107388417404598094109872079868809315154297023892774301618864437640981982986314225510348501490788705078413688551340547698531809217621975699864483657532385512317050577120125467457255163460942943045275008310030728332301601213243068823175781692696177383549010765833966932546684321876417214402616662999778369126123664656326438947126928289114717441526937955764560645557440488645837330975547739892472319495189223637929149329276034115709049991800553864019441257439748837884084453442608805033066730715241220922163343421255056430449573208372805659905121392078414657086828237189914176592269737707484587855831452923107335176255139471005770885032072319321500027569118257270996177772111457525074607878643406840178457550005435732347859587864920100210090423280145597444433311479783561671370794226528465368912342417354922307534447419912877104145484133885961462062761434492938206920664486585454441749016673527490514460746969423228384037629935898261717066153875893651765620903279539746402153565928051315954178502130556495808829855652721321961232198330831779840872401166230874354740425465711257939945457854682513046385607768971433004491200647117198575765497429826324092968342054351171704295178964073226074915756699936546185649287614681298842130257761719632433376615673558750941886848793110774011991173857119710054866549320905764718585718081023588624670695303414835654147132877896339264718487882676663720884899092538277283784686894699507808573881682314130876916383506128189541204740772723829050993592117764953258729114972701499189623139176969038019334787225000829522032013064808374364669494719775275456685217492982482465864327243055264700244255040777281146871346282335545083510973227434404085573875842785013850480725954880713402832983051348948228895030244364467537117717782734937703185724531242946695864387678222281352587397902591934687733079707866427905207741334739189794885556451310387455932256607387830902248232227811079586801305942584428566441256765179164143223731500975964863409755193388035167138954165735663759843486753635836122429835974909154820130374255199260475414457314180506467629179964813642225706187724824253956995891024638376677261910215006052612959859590877659498575034026495384816928573245597090097869087077875066951685754712771965666905412224463178736375189828600430844789456502172532863809769093639250258037452192946442849582143950268335246158494125502253775029749038971034998042486749999578531345203751319911276070729900517481118976862336686769840510331682110101645790159162493892171261910313633134267563617175671777855215923254583725561357930435647907763044587447286108953748363672187493842573228683896002457131953934058014537375972073868969296881195291623135083290982313946573623983320375940428622091209180873460135178931864474616978002175586074832995393001300802608049102989490263136904627442507396890759170395664566918065555237487116681016591478187334539367375470090193724389942480042414500798706898751163963797337806407300276001647861611063097959015559506157163555327210124532890818586107548638960777857427993624263540402376536543662944028808942418358697900536410495989110983598798032682307728617199768144909215624087892528815546773211252948157362601439337805383985400813230411337012291339563302632022181451048685025038154509234801925213050214321667546995942713396423198609944806885144124878216622696320077680475162161082260604782887576414703962526024120712560734661369940183338452956192642540292435779722288311565005164727473862475845939331350994003425949450434301048374589226621607540705977312627668183943527595677084486766133469297517189514581515337365880519934188342193268729459365357015118002616512710296468450407159870064564957923695100364536766109758361710361240117209015729319519608190836821821182829368485001245664619861622017176839246216547067486338945996425839740735233897226658965995905912687932524299846968493156483703445153248840609312907071333931095223880632845238532139204746720801530750147345312082920361557193658873764306664523316489759917888674360976848797124433251851200141352821004535346773924457538034434962457906971419842648470593911290492431138978428129578725545956156723396279127759953077740090897091690472064066015804102417177863770080998380032367588468831286601517279654783880285641831629213697152503442332023067254355579735099298344569275595094388028011945019699906527582430005168259815359101194529291578718868769465260453182348214772358624516025044994836174948517726162541123109344805916336199833924662276629760988899858168314233144271585142791212317974899572992576900982582256851498000273412395534619544769160000010828403315378078015977186925495823495271862606646490235801949326271834567337753180395925912695187121648312856547530977714347751790561141193852066062106572362851083405893370380588066593005983639741443018954866044226081197321828310794230058308869122867171905269973645040736465717761700459132596093220392399178992109534744144753597637271000030434558559553560577973381072182774595385322997684330438418711579286773909993785317986293497897732063428122216739104492450953192540355154164602202968889359883257360729616524739044605044371907879822211986799009153183999828186117297174724970535345716064676633303622384476430573437438353454861090516503010576679832695859833347819557785077863723820819485183436849318927669258211745374725417921055604980552960368286780470468664733195262970398366896453160871916391326290176651979734762097904325570113410584304609348851435423178288230865871716856873007352354639766883507058779384706734114266715371122387883464484669542220464688830374543957508029977287008336697772139414375128746772036480534938437825878925124189009601077987015270504909323726683659539317909091876160478324470620347733361078480704743726484917807469611822577288182211688360920812393639861676313009305469532678902722689801589271439193582017135656297191551154188671693255881077616641202580390677638968556778086095880151149357333486081899612156048847499640548526112639969430235206741661751874561054577160997532246720486525164872935709933848233193594611642263807910128876611326854780646007206352663987209938569345362033782964638706580818852741931802470171381635091507150702580410975965495888448014913258793076513563857998872817478629679732715882904234067434634200029305666955917314816256116725927752776324142641124514645488979971850994616740420327246667772540408459786392867422063604355380390887332178394507414758534916105401297823065592895389473087420767322974854812977035641087697758360553981407069287542467992750351548816632174361227344746698137625762465275154261074377042744415536803983587530306843381920988797004201942857010607486599750066526180669991232802796027325832249080089590457780237461436160998862771048163268913907738065273955599785183509372179724617513569019106986749643719021183626803674347443508965669304644567770759343762279377101055142571769451712723428247350130085462339671349904662677640004675615327255010627467276873010423366987885326024313587624820084380257976796615081799081766863012725749021866797656193517314331721732686753415093971325113061560759460355449286422568432177537566919021289445618039621590630910050194122919262350000699139814789061592953860450022489325431258422468964359195546570679123495359850417294618539489837193176152814264499332704786913855553701326114276306352861836415830292249371161814871984774447127357774517240262251568854133995055380821005781343667601104596096641916553756576471432530640036166142242392583452085282047585946402808967170118796692431210708542998943047392081232583393196714122072901620477115233639434183391405437667566891134199800006912404500762018121049109746092863213663257898868461608620641163081893121506624005783551097485128001945588503656963304540322022134810985452968781290215160397758106789646338462046764567919807069931761527573200608489135053111624654528842877685498495646041002226914575103494390686039554748569255922948224499447809181589080084879520934926390213036590240224041191863017873300472937919592965932867655935102477205130566717227344374150198020688637671504961135631507438232425988352839994715484215916810342016423233846451534105273291603005961021909537681233574678425406007527369426736635119689626999303401217294246844304242645507966049849282635496159160020704882174683676951438169513887875212710307542594783741035876881042147315806013775660700222470141184285170701042543687495216974406295286482135891233145739062144673259615653668959323492550715175178894853724765942253411116887699471878697941623329246771596069785392273676885147181982174558486079549658327676864986938107333429212308738860492109123212655907144919572069126335589612819853854674031197001018050817597001372727628481711524577313571665939574209916294964489164862865459578090443693412250183458249101047968062052945359850475419349597507525303884544536321223905170671023829763050547390946671222932650358680874255983790977691223217210340655145506100830597518308422100997146580396185986328154086512540930230490675246777450850424856918229949995807233707822708246845987866639922928466069704742191308208915148751363346190739579029073164693594800636847701097664180604406794325935354697138815790568621757974645532892072905355847756888176292426575548239135185296854895977301280059768997117021655325020364373294954401364761731597709895904659230261802914929588122142246516015319158128053192152825870550393673786791151840435257925595116415811631954813068010665206458540321637120174554666071974764917965365278760962129009958824682054070910990437865960521666992741222130512725469012489051027758832308543026579750537008596907470908735087685837783514604971517043877116721102211438286733523708378938297201352253692850473180396869148777705147206526866170785835830408204240704373042265769375328939955690194192516077198423735024068775284412711711941892356890276355167796276704241608292210845449493233513883765989383141472627077063515943528643996175345572105664628333017889347560127592549859646951175311495400458318369436410014381208325060918400298669080247607333468052880966988191977307908349500507083547191461815081281841846234182182677065493530571026132225484561126889792781782751656375291019049262609167826038152205925431821776833711009141695202691148909224998635356955887877640780519815066116276631683243979253302837234253453652368282501286380194254435140810903671694290937868618376794691039477220134161557146225032778843600461833352362578294833454760609250945574445351112333448524718103927313563982516230135079996135798620637579350466134091178388854847974799024893491543441345164425307631383250517108013745240054318836042103182055635915877160595389629600045481796553787347677725441367464163252826044777739271568257451559398059259457906517326079025735498654290033847484950713580984458634228745944366799683184881810927989771423768741239801123173914850585078228384698244189365439572715682534118242601062848883200419893800686039250318423966341482359144474285333308535703485136744651370193043976998255229145074539546211351587546955846273187040942070744590287019511050373388762034810802791382642397260698142350976001070459314101090064017844034072468541314034579007385492644424598745323528926219647677493491081787355963931595811905250788473340268054767941767773161560884843026796282711009702355750827113428074811410804097770628604519067564471401591596816366787692969763468086055376593947767624391117786131083348191274274960878012153015270339589673565326694529687879815040944537930660512836105525581998120807513520895319451524116133699460990176306762240984514181871531850093818345769770296848055020085062344663189381067765784572943310120415626910660061724030263159432225943480096095608887693220909212127649754502854651665835832138114749292870320639625423526239678931444805582824658031138746106821301073427563988897225489631318330516653031490097464576275238377109085658837266848730811644690414544637907003733004254016061658438024394977963044567362415146134165246150337310140747407984951417958584834883374922077483897333193849540722059339601551638857101230609204390727379322233504730922360704248883089896999477112889734500397844830246984716223503649087283467868725455242126749490667755557376891660735800752521132611653899687281067572606240218693809310856147593199293643479902245434604908205954992192241947832951422065087460824836876791765258127616256578282064599455014631644917990176695393179530223636981566756293036264709695535219415814528969514707186093289539667784920461612953760218208567923320361081004374594527509299705697724403722995425697661190112757985990026610453793189156859733151403114692741872824405053710571280686000421123904495273657695261256344901789558271454997068864312889672656851280305711009181047334317902971259001430552579822906486366701162985940926941231418000612700751383055056423140692867801650388804231818227904286083089144715007479420894712919704996162201537379700936364954176723786039259359530300812225769532687848105428513016167241862753790681130987947444470989975275861241637499727925000675264394242628943567149846099248071433099077069905104868847578311839454357803532689443882392323975342333105223697730768356803510984293791234627659461215336486498207168047683347164585934803713952113147259966323377742202955108825172928743439377426912776299197535400628844926835334488684835491596781869890850601851440826598891421049431822937498771373812820514890034138762439158156122077214002086235962738745763321670503732506961452559347064683365953238691572843713337007163219605837257106436476346279127489132061718103759244000991310078790977078346319727858891947360095178266509969600835451449818609336652925692467551902861341254022240588690254787789470429607411696362193285290626369891857073296576491386755272454220712809654425071167069128719514917717612720135969179107743700759652774336488770339440379227819313149398284628704863355255201359949325494247234679926722152405872033181137187770290123703144179841129075465147948919706867194423960449719874316481967863465313117192710923848034746852798739097487864096379180971991433471597595734299258376333434172316626965804683862070822424026779157066026982392559120527902266603297917038270044498176699758825544629574236882257455697979282984688440407992975067915985205152574947315182687251266837192189053739753541477185855068579751921135855321528877546288205871717202730875422955040514221433439192940614621727618037850913001518745158750842226582793554518443022984535488237063129493421616712215734866841808994271831598672362097529989522747281845693907444331919111342995087296492779875317027451148290426891918953500553386380842816037441789862344253172412307312999309320392684277615549059540226701215477825195436836307140490542931209472974495844599458138001586829424528939739833618741618146723485470237996886366844199908274626806437623665894179601067540469284090579131577826605941255062579147084200293342166652351439612951237374499954858817202807477778925286582833240227883319620894841561458745905517728792244299870536417757477117688001633036773104976809790529622002258914235330707957407931569965035824441461194798589186925838131080643149393045927343670466292419570133721292678737460013545934378522769548705390292357210006708505311581734871192167197478846634062005297479697767035176694837131351888351132070668920759640363119096586297891311162835508584216645018002808577107022623958007699652097588301664834841737410265093799827828351896282011206004078932102697491540128211779176795399477619232936507654095291863325549447878577861494430999708556550582326390097838687900417546040183292598713452456823077283542641829968431711109335392187313554978020327711497944628553524760449486146280624400804245920697255104261559457472752834327602566935370952290775669837397598299162402039341210135343208736374063492507629135409067285577220344283737191833171496774469819393508681957132902950822879666275533095115512368925606856692133607033504846072707260689739123089227968786469680865020355481037639756710761586433936597519659206000879629803477561464793409435406531870807760567621586724494466283691081261840089287668816165049258348296032941453060851188911329891341820512903246012046165332796081754414279873128761429127312332512935445433945681154934007399928792095538943963159114781144302282196110880398818456941256868197468979150191679001660228950895871988580898077960062355150993279382421667129690310764006090355069613584652304794697793020980306409200720574160843905388540184555678696383226129413684266923214330183962209239261585783455610867037967718498612231040930021855389673138184946885218344840700227619150323233422261948311323760672844443148244347918281901070380176654605097860645423960903824841950769522973830750824645052967261887057936158672845055768780120989516921397942703107268731514222133716466143336545280381855758398755335972439243385177956418755346500791288125925050634964080507931285750234447266599226861605129582860692144316953007144054644992279968946188193450319528485600440767647585495722540863284093253365397762521304320445582286068393234392638974334219770100194507811296634888751460851851624892934189214665167186980444253004284912498212993040749258295578646120537660968950648038427196039745971306467499711725528340252569343828256161107527475325172714399878599094666784541072063388502331752864594352899311024121790785169393743533869618105959007020328214228517939324559554768420825701478855510365876964704825307451433237787289009821353261116587177714955856915510347037344544958088269326291361166987635055591385828967294040955682300182179424914222876549107252732297962021627188170639333490054137833904494890591840633496701656482358336200899986714097900767321549853632500262172018691935343596369381802724539324870478765508549608885623978209795170659711772735601289957104211050558202132737063860163759324405116693491816257929665724501724044492152880854157549455848864127602201697125230128378149852284162594618121531379625926422357454246848060831595706929466134783163413412780975000438413889878749955298635985495260075196929954651135265827137953980987073215332967377906663904321398454073604364024963434603740951653501609448132033170797964153930133660646179708074973299428197781789509534522977110647970354102387334308900383492399371163634260145230086782537317436675090348493552340133991957814626597069016637358778510134014356875744051914026613692859768148780003594422424382883917203639846193438466694546496918473820288864088578792422115222594468120038405294360791512651049559338901353229195674800292920214487102975783432085634921701663337966492945958935536927465696569499106410219539640299730113903814367731603535621760322712550048217433607259441736604801048946080133746039345751552105869406923844913582529916791049956207146989097901650512404930793706384264056260775490532107298981881606454872347026207907820122095005226077291490418521774979661433133078265734623813091415566497058799686374480277583242281649135240031866930029016297978574412961661245901308495517151509230296648248011184071833327410554795369317812555662654270346656140052105424802268622718106575424179546728273080486966840448706283935840824694143736443261970924138698317085505425147216188054767255846447110910594367278102362366898321088523613730171446676859637938405825274843704909105901012405944946326177692066286511466868450648825090574378840045373859762036709498862504038520774950943763294773207363224343121199804680297158658286847202050002988604092125340474040567166852558546637749701882732440514576738248677927585492136033242150414575411995651239625790753739954867571060999809359838318678678270326320992463677235911518240270205416811030948744349489352724939071429309316771380160743793152996710992294912565282993513007881335805191771001189601978400898237103431171514493770589777085727060094892392772163297288873498517754548800847205584098441962251749920370209109423951108185369248707358948079064622704357706104209593899095928739891709320637422334007859726834515302532820679477182937866591846425750691665506072412205292301459947326372807381829508729069402813673788790187553054895712111365167451543667355097073378415068189492901021748872277563408313736967852871409836055620334099329563640647237393614505003647412673229925337558312930269211243488292782669622739435028483868595039317818621199935214143464848922556574260922083493126346455608585238981094125027468364730398767197299199037715949125753248159773065129884926643622948806389501904941199612296285572806468570915759120544373837081688676943970096238455761324062621862852566164509270732480399875008694315195575039402430960003977500768205183280230208848286786625237212803928123199923607307826643292771065510070740477618004028025510262042502948585011402745768902848119547146361772132651967977338025788271420100459100339755953376233585929483612929185546481299759747507041220612588996947950406900444185219660727303873986040864984645498571014785343539422960748817338710956246476445494340434318546696691213276392252075817018956175774303462833061535065872592536164885247327792161402002044733167325196047637708829999704437904429728754054712894027139192262720671824201137644576967442978718240591214142711417703640936667196988847199676745885618421817573765441795264922001742876076286975512285199579752112863600424519980951525180607627424054016993790376800596846633146942911858862001803574042413015778923766555341140833615908096983324603325793494018275560132757230501685323038550688878788377669156664142823761665942949763705587689007552047102144564308071378978916229283852073257308622945169521547072611539224571172700684880670971558909683143984495077489608750921142449421200768154256715373383917010798861429346958157237491090780128773705346810572742319304044802072968773115237614746457047528756523385341930430368923727275233648546338480169023243008392902965377708311692913400425102507018550358583755031581926583514574528355598018597050337219330508538078584969405981824046568385995324947686231415124338559640143327971949640229239420043111180365098518808284674534014752999059669216028830324789614267751261685821617294082968506617544914994243805994815863882608426366518327077574560493090407392609032952140825406832023540503557759038552646023926652392247142593465931932297219211318208705589390401122459568272201964105374243193050988126189326531802094147074687235346414037112324811925975767763396233721533376799070793179459257754142071911895682636046820869843658621641068871052090567572699697056068591258368711517400402164419829787318136133509391972103791116710762848715061420712101358191376526020332772265789642136605615843182002795761558721440601603252729542338209768580120539470110208943051559036061716000871972781346616178444981624230452401228844840514807584010020497269063333182084803959224647170470955939064495576253261915047088483143653621808334452429436107624901598414382759017272454248035994608237709748859337054560691414121570899435539861956098322895584863235825294304809218899112401233800313474931704006318444024688726235197442320866676513296464765048039683752277693907288742301472162584962302117755560252678081672200502246147595794539294568695038240001875243728305396876431843287613614029965413632255958473643475748122137195005287287160363889761405150499259414955163761539368396600850582504887027398220653477878669983375741248939437988102763073198485790749852925873443854589151432724301657502512391841237807828038945614826410511421135127976286949291971572537488690855676915170311800117538622486533376019439264849370139859035679880256315945975075237305324209038702418409799204343553021893105811485243664343215867720677856721723983820040425351876100897816473167796889044404104333843857448568598565997363229410700840091578924629216086377813774192517987172071125085064293427594674104878593088859480527176916053902066935534713017744330691295138977917811026705215921750461767825360362499870574889311748202857151465086785122140649942304015959269163281850777146069295599956941083770192692121166706708550204603858461307618551913183020822332033619323420361722497287797558761379568789401383857099203059184276559514053328593974330495092849425531978085512041822323811557611510569106519146919733154131798950872735507788099365298875874156616575377390273417960029777888817668352395041082873587158058418813140841303458113809969196305312120980578064564614552881372936569245893844174129639842357972795687890525086540951152975265128509154039710609019128434241538962923948485821717328993645824134246747199321839830933368874360277228716612630155661299447225273979487483461024086245477215403024145193907873866191688018143939951191749822934882788429097892627765182173133816742141997153179160386836262351854451228775044072137234088482044522360570076550641529528090828684678813513287980829715966612951915528723269799242692307220486537907257973317372793009790826971427323311378293437855334799813253360203914053044728595192925959683527896721474658754965704202352483268101603678249715619281546870494156222951512187465390312486055516407191816159003854313042379657656104366423961214953653417027106206581141310802292495245334959519996377154730965377386718129178711907838312298184572121091872700919749398020916495323170832845388220250103563414504265463270341492682861333703116195667583120747241349377437695787443155819597307294238462133192136521562411400409186675588197901501347510733946137789556533629395047356874058023567541790967645853255002895432811698705098205284169860569223249182769589313121753454727453644251471099907346894784531637121067121358421788116111472545307363761826637103289435820910556446406616574127061041391612177345565688985616871173968420535462528314361833966335831282613019268314020464473335209931088332031187705804200054294529500545116412437230387634342079490556620798877539810107566993422995474794186159839676250232173097606092313618318627446739515853177761592779352308069106165595846757396516324755839529921890955855193261953407886888704747463888897953662224668083956588352139121434500064203698808031520586362645088065289810885330684326952929776616771142852147722160124603177903771024381608246648625153139970629722823731982656344104256751636976081374995102377724801303900976329368861408916541829049264676633306621446468536854112146296757757538470991160384543769802299357431718042132465746506434624815676128474735771667839450044564624596086375918749644675395874044225419480691736571575579017387952394647204360299749847581263913684723216880692714953041681320840413263915546923940217535471508163704551266558096302818151887803009593926326162916592551983762922080199005086178426544275382304110540339442875408087574649065718870994330636023864226964875162519539595172360212182401871390312685393260645505489293030456383957009343651339065878440988579540872716855285992900854748235313216447638681530666224456852856434327955066265147357303511521285689897613619013187703190802101460229129507049494282766877179444518210891999811993983382090803419436341163815474427949729451771360281245109707846613051807752359472489944684150715949016235121576925130884042818362667638400386960254363114226445921270390637003116683923191607088683497398109975684590044273182770121430372413326998997140265891970206189590864257159252865478104813169655407766531476464405838733725933110673738943989510736135541531188011550870324344102528756586953736751978290089966147531426145938204658345041393485922840602511893166697794103160956885697545521227881954588825698964449014069892634963755381642974272454940313648695298683563698562317991420132762169574706906236254071332460239111757535479359947003878949547327806948075724785738481976433734417235799961247525165629599571257389318465207214994119285304999716143018620802979655156829338125015795298692840126223695731317939700842444420254518466657476922765497604971521974033031697186126431334165151310679948814226104990760334438451873009099334437490387836770811088798771273816088619523506267403804682452730645225519659481418780827415980222011899148888042166850559152542341313119693082594685339170796660556963943062978669418999186317352139418148135734244567521811395986638284028853926786008349245953452383361458002549604546638757837754582863229073110422611067324266170391109123442944626603628099377604261127249228474791612274550520936877624483520875690271851469588205817921361775111130739795873594629984196406054869807111144088723539201276540709527961379227061438742916098587675957849883579906500355175789402216411997861034595348672747442208691996356771676756698497198566716318259838185140651306631677811887704014917367252607303953885212004935371699901804168318535458167241921345547984932788438406948534331753064286328130438304077703392283045216153456497389805862486335958955501121659711374992700878395217363867043702980270898203210517798470840450330830695500854970130795807332958776858514725760118431982322033810398378398577125737591104175164564660651373979537224539835595341935359105423752547429441693166977469096878317960978934011053521093876533776963380287856601263337845939870950559736835903831175460063818170168045649307733820975186756371115994594634412052980483442474652622838259437005816853940219684145753643901756734974167578814170530053298564968071553829246179051052029033542517774672239989277538718089006219749758639793962146394723365869898657505798325393803532265058150339684785964164087521637370515278830398793625207519131846660164041672880555427390602100619474816512695520179430419817687246186412177037605479443234665784630834497093838047833581627675619939032330814124453220363511777134818578765182511114586357090231695954709175780031123811885068559112381459987428736480518757649773138165222980684765565298963474454495786452998647582626550215908191453482339548745056100167654084740657056597885090019359949980901673907211554290749532954263064833053644648453043636538461962427597862777993871404706392097233081083611979285228873215047476988235353624239682969742142015038787376335472901038567543147846005533679164247583689616595037769080366672350872710554132738669250702263356981827291175863476268917281789862337843093376617609910198891698474461497614179218128585890651122739562149616550599740595128325476592802573475432335305073531038594918027722942039883300743940270554857087556078374733525114360410147087764837888615441022815139316045761992486927571923214876498938013955466759428422419202265737213468271046491610476999026679794377220813285084254246372870295551753516221055173271988359688035381348932202892552427748576005501492151803112657891305231509834222665820207232247040085281198997178796179808197149519872896798029762559384871207747488916884540516555828716656943381062173522065127997018251542154885664163532275429945531265578326586535131441142822771637350801054532382068257598200083966838546023111848580957343106922594608889520652316503032519330235674379813781304572023476543407994069231587884460817446746913997930555930035989146209039745445932084761673575759353080635170622702525917311276295154660952160759003429772843868667905830449216980693112124323907375020139219978374927921221135222821292381544552958565922539115743363105348533789689741488619393319364471175599082011592222522935835548618484958644586755076523610005626887605216940316041357204176732756233906238582528692946132065594529691338202193232394309450896567750582231855223603216687945377600787524866363514923466926601898514613651120170141244328990710989059424140975001144933168624071059166326602586853894944661825847109327612614559777560262644087234964172635371814257290848295565612750813770015586962144589357891403754075396615572025707443264053782476512921637437388502512051387772758176184187171841014406556194105317075140407242324714053775987742281626645268520234424142940482100256268247267735161591796330291877767762748583183199455174196348488992268987600250062097583687907828773523127863807907721059204140457677846780215252914237486565738739213463189559930541887166006849665385831803290831245080435538762055507109562636185909932747765937492381177787488186252751711090362369755025097074308279552245364849605808513862661674590486723571327853183790885724630075693547005064596486500377510920079038097811474552496114483024091107948392515879383759566183793925539344408047648912246307922124527696265782768696013248880675384329539804226796508236145717105879934337484527006059153239746990590764332175322941061056166933778154079286062814968977144561385339235717203498409215815112746889950151516102732627178258092839657790585210226433456514727471132049681373422062763399162045998890965264189074519010308062600716189603037490343360202392324558831982037295836967061001789963351190010455157314720923582416171475258027867377064890027738333083812179903674616455530833362849151691405614095878153075389610859530694375028769080587413161020188220399472501241597800358704293374229373734544001408279185907183999444203761590267210210302847136336251248871053406639214210009675636186072411891803772597912901205495472587787968520642337793993970400656563124716700681774135826678174480660350080048898756055483604608521923460187576087333013191114964915496422845121582946520520047602256998541699116982738702021417550123923687285454958905513411105860024389890984049498613852054613686734614548802237952139964138113573287671544781502298080320545107781364618789868177487140774231299191139160614461891094768029816090452544478698861236536709610608414885957047716130291824525611685437240933087563763390636804711602855733547007405592483631631627724712690568113328078707012614859875385639779730761759240048988055537369042927584080073248547606627626127184903498424144195971592769371861209640000718585237391486537350298148891604308957377471788403141074747587109124861493641754592849881403532297301783167121115938915689967951606735951333950637210241714864369185686469235378244585878704815761238960881468768815449137735114470762132901379261958016183120227992963810973901772222805324100618143589594412000222143371698301665225945874997008004556385725187511712166000363357789176831503821088005178077849321103515437594956272638544298645640902066392326389840021995992562090742772272387354004345870129173598906765110563335292042663607565949554276685786796820761137903026928433658290081527918727474582325585564768540708759455630467868386460405498661559119923014996835139200778360271635864039420971803165608042550027929569086179396466692162301450924456085655062136177769306531959916864175710082091264919901489920320713829743494283656198024767290980593305026238197543951292339699666529829375937254160441191875726570625955380713720949997938370718222414140715719661974742120485637410582029791812084164975020021902724040010660501967959965804671579356455921964787287630935246740789049229160112411904346526131831816558847649926867360027464017093257743262665724240830589476397016796530267288910832288104234102967876302226524954779567816232798189498674139179099199142457926749742261147298198894560190193662046697939329888202463609524058191253001210365040498197418581401174367094070376819430597423371323201150442299373089380839891665021322319232560636392824231573458975112319640496114611636320792508743443450930757496323957256748814154097325977582379717171085316914121459985262637925110839638730487286787309493345989429727955648065536638090239137778147279647998244614848233694398495223520583859227941767523596723150913822100270441291391288527320244729305582222536755546830938990944150496784670966992902885677029178122469905105024233143906095101569512516866516758563421696241474777446764700877920295802454026171054778295182413725794317744498692834790122521420300708370981711982000997667331437597567894709851301845311515625534678619981538246329673064806855972330972120178568221316801765311010529993053852881194578717513277726843401376361821611855521953492441876122612072851075603118817602241427480951359321574931373732047417380776940403168383217331422209030824199728574217882204968394715058265822476141299319794382504889797133458398144850863232036360253788479906560472187525444039885741094297167691345686110960308819656345566090413940359565610620552725886599821732432021328601005264831207659504625155987791887147320866895982684877287338677553253361337242506065022311643400391209843717649404951556646011930552987522871592184127949710977677452003461279085913961275625311505735690583615592855076646778135090554403737142640321559275940625819145253836664894976239631948406443839153715619580806871349422959339515554405918959135707086756475877007078274636108309742963642905875753686567671542401971714779549301490210969034129995036757452521431085561369016652407086887658322080462386351567766104631199481765677867568328102484132217467858413563836351386455683707944450422784395562349329066639796864644972118917582411506931725090848114312934555753138414754632037050672844354832042058826521105524548561525669112192242972223515274174498549194062740943366191371950510992240210493688877923944079560911979283194038644007055192452586962818279066743294592747873328638886126430439731283033977941449690219628017439946745659264000809983702022866950661552535473270306487311307290352736008757481211046806447043027213832269060971096807697157067191577913378380881617424135211083012425651542557940851095660285222050185858932190146242880891847209733434747450409746393951533387798038732112077787272625757932928182383265978656304285775294404314316806923772218062733844662869011842242076909433327571382822355773948397648330198085728770036716409410982063960647483215371136175588427340291434913571290061684636224507371256612146760920894817035570961434401721797541422484776704830891886524870815603116059095266779695214602665567036996919269135417671546670141982103587333120045910846321505454579274512153889664810574468109608739724884939170500249623343173556221456237295486923658848654468315842319165571164247881867900476486288388568887086086659348207044616633689590281021976234316646560718392053971308461297261769651922822677861592782683074996144003140372912422690939408112185440893577833131569984507620421829173344077952562136800378416251839713671030271074311263558364514446422972398330305805505457222460499470480607538387608084610212857746081921524459275750875355871991979218536030813421213329153855031237103226403916952178628138810763876002252635839581864784997533844960921756868478443539470854977202667714866756800728392474466160886871057365745364647057463363909215462195195472693144320537622921434925974343094666636896811200029297055887606872532902201476511059373823049175396461304747110455592446982600902977683012899459343881255979860395662108307199346031945541821286066913685221503461703404367285675914072656278700202629207084931709392152928202370305371658685126506734459827569767676745070361129482798751060928833119369356348006777485577467172844038147154681692234008521342456493798937481239899750369145674175593976750641357689235963379336340128493900017621865918124261727995208637047505847666523969538839602552914131450958114298926486878169762550789478036587202547571743112439312763852709172998894190027740805498506776079395791504357932701729986660224895322531901779883954961866381779290967457021101586686377647276209406429366328975644008130975527658902922775326125570497289522334749455380331040497738867544409249551452199317819639242038911237795639338229110238949057735258056746405931684334239776510919342211325342659731616870928507029593231698630938686259692263119705858606360139974989656383863608838970125630485421274896129518209093485355287521781541108273309714489930754425913562330136651629014274765022534888416458473525678682514957110290131956339146464916617988952845626003842038645152338423139203992879834335343195304735348216905324409336238469670420703445617028105651276645445460948710561006683839149998959855704498047374240512882797058242070653487607270125233776325906863967482273292896155615890853678462229521889937709273950337647929462707669930921637971061329310434523787013223125543119870857267480737861384441512780197735658791596875195559848844038421242849633477922082278630441623011843336159650630093547750225603490719058081502869576231346631184283377271853760674750923601208561826082448106371615493299759720723467602290694465193394246381184663422703212495620283051861316855313358604985182531258150466115066425218169700230248841927138148577746659138682027445115130076642642352057424091224120269811747655649044366820760338837000265681665289564642727196458645716850168648546170155374381116473440950103029262222058159690208823486558949707418211501717798825090467120390726380728060029157068131582872240777593349733020901488341127940756532233557901759548682300483307074778564553971773683419776429196295991036567513142455419475043466691445709420516731371763812054968137843690564128143759511965107684997802696671642353457262602569108511722740158463613435047046847591963463784343676629475903795398010544614290124855451814815017359478772246735711304906890145927908497156436690504180392373451250042033931518303033401416346522210740739452640494299554124355829480283769770089892529162550975778866493049878854522396433284425500448002964042713181131482058503110411296083340652800730718100591100976130663028628667721761569950772859407896474583375371119482246077078438720374297448667690611680826731084069895680804635123609729844417187952218652606614506992331784857250343411885783856986349807785493863888983864827778834209185239927796465954597810701597957603502459518617677973115446395424014274322657895574350105568233268489037293291950783279994125933563659611671312365557446679375723615090208367953788245704225712074246410287584064177848905720900260386504308184025415200199054566010460488154981102454559362803426099038316280345995460412611141087977735661042373205486758812938116060946812041233768527414949155111243201925990524022727086854172925631404887091142038731544079408722322580627734011059760953038095643796892599066506729989588824852761921791736004827081183976042203475157559467814323514278393470016536629518073900193917112744950976669779958088098988440581252644057573837496589008729494905887550010690770908590418584662451515771811211174352698129302718601759007708993682740951999095185380180579608909571792994551424606318640267137500031304542719988960796660396989312703565833093786830202260815591814924433894378326443011404382258920022030213316754403520617381148401070823144577328588805422330997404006407413211955942389718744849456889673351879604504123620859725998935117864893715760886510916113047618321135565564475049618612244025940223576340768201979270500701667670493234206386110120615238762284966863437406515101475876176723501796283444357674940900156631609611060124425957904001865547494622012944061645414447547754115624541012069474709771297361898722134694464095374662411198899797213787940092582402631433422880327750233168066902941267674916536235467024938402018309748716354647508921517284768119611419811448206382177125541466416026413295675828767143262808932276440429813350405844050981174388681716874946048967977096473265676840888819642858012641970276489045082112227315975119160470411220610895577640828340705606657576826975274074164856339250499200454231077552983797448399440238264532434608300293506662530394375070332427078558709575095364522213357872953823594727316714931205405076062924036187043815754794119791495740018363447484592736297912590233538786863967149860042671325145591605414503093285257782013412569909470612903021061395935626274113745192034922128477687235944893665647184210146285709308083492456149699360228976774447448256027197156093019568743708831343629669590137872033731054269497171243801024620983851003749100975444068134470937550224573231379588142098683890022337876297181387415784455109654169172838990740257508827958718111859501322123509101574614577508448547529974917299704518406229674247875607745485608657819439791392615864941995665608683584130983602895690393155799369203188307058171608718058849756959845579123213031925950220172462107087414654991341418651163750928788054928511237427397501756675155752884854347111714721015532231266997903922836384114139348943076140558018589898401234803832722340132767290947557595669424039277803370432040530806895556014192724116194976224510266060465778793217318022249407466138282022791742935019580066474237947785155932191360362303384039505546640606689938536201146586862925282382120142194601193266289664264587068836375399212872210030681879636735668318185578874575699311452268670341850748166841436022693522623102017941633457879422116489262727106909128070356432220827121944584828580370553702523401308166936495463964673777677851035087280058267533769559187417323118595140874414447696111075447255575413501134337446335388904114702811664988199445787949344962047584077597898863284507071850995716511165263445898433132720309339141384570170102302562663110831722354309447782091291861603343415646556555163425438727737782070499603343350549433684677500825125031157906638247497709200700485081564257144306626860368334922030450231776220653246777787734419028294917285421419113449665971202151044944680646599068850332890568310052241307155723152773728721379743548860726396909948925710413117766420299280506341807689761983142380345523853621833169656718878594858482152252377244319513062083040944349031290690075775251735505396860394400598488584469950030089361705446060967065081616503578723503518789965947212194823849215114311805740126483120931916874759133727638680656661263979663832207959226597515511508604632967170622753505502588777976664415618623932018854124102703435227773447010308139788053920463390672991926294960239324171831903375118970991631720113845182718345514579538171601129399307051217497897166471300602784014776374331493626731065978739650978733298801373901959672878333555082348529966537010927920948161920409882239528932912410901112060932839386557109340357973405235342618518482080598213527323302517789290068155479505623496783829515140334591155928649287290205339807787272090886312610621416483798569726284233732461337111600636525605375689662484155110112967244636566460372641963368290538448582806061124384518258198989424484562909381304310370307235084630288646814200553330017030819741294393722813508613224417250518155674924757518156336086615523156148845201479951390158929958389666971738308672300788320036989295905518336840610540744903192899796673089112460160077748189814565934942713577971162307265333456580579554459133085205956980718539083053882987469389569423983916485890200406569537983418939256018249639564131233984204336240434705413312868495000846705222715063518245557047786337641659699117849800604916759526987321054027775311032236063334963210472488590498031282660032107204216583623774232876035895714351947363984233203777136235340502478855444868394154209134182838993662155194791960223823376882801130956584493836327468438930151035748756602314978382990393033667929427447384426465408766772185844091491638711985137855721976785902559741848266564723480621902860100825385897151627320112910433283732164131588427965989963598958690067437935544874504747133568840338749408632458019789546267315550372273007045442037804558723261245164380707830957800282470566888228642911554127206497477715470030840566223106166668553861380461607160426558460073147031967954917561295054075513459083694458660809813381284363327294764500411988318001380330692586655500230748889140262853585790094185783483407130326120679128689719048821358991605383016850631925671393546560308519248658892474382799898600303288120137915957870634938696879014104091782615005848029944369763181594099815027806905307463338026960336965178256160144346988525966007099961137750237263126588726507539619181476189555764541297948994171666069996780548154778735844025483071662169539099505915499193985359530983945505095510307209047544796124994457352455656190945545225989735642075198184021230548013122963054249913831503884190648263416703439295793908682674786625278591133593572197818973020777713401681876233521074679905179852793817796068636401653572441055786703167928595885846592744891964182517111180838407272480207827567212789003627972598408439022163011805055937344434608639047112948740870476164908778930956996524780984035998086493490559895688764737357568121178253055869807600646700763760700138432468074089354628765012874679427824639373794105130970836432772918672696727045733853645405045991301117175958489171589937010395553752091182464000503813905880621895573547099941496651666320349296520639398686753676412107829712089574577147572309324286657338559479063889048875716910728559989485745346501847796476983150507922649258010566258451208128408567537188735562561687596463480195202430548653731317636963473814679667124246013203570875075139867533331072869950770644463048153571944708415667221037384521957732975468073245421001096557265657278384083369756582557439342981773669876135155881389502949239208301740566859841763509709630581910108172427394282781474413128113946013687436189326814027047574439407539728142946794810665273103045258273561115661401262497048465132150968297937557091904727020111785136370013949268724339977793725376347234794338551475870025168058199401896920498110403429009815713762650915058921603206672391441553328968642269070849361961426304669272637564032635568066359953573033060299374134939503781328122708183671545667916184890582265288202723737796193522454056179256018862813469432115511589158811709652960734050727422623747648719386378584213030945642012381082034611699196543356535512334549489995352050905442162596502057050137573556031689640819700615516515417549451247352171986926404142907808583830065260514986409330561096881170053622211788670696280115573497375872299018138713733783969341297341333952005959387210629259306311277441512874600532321639793970441813339002366085826622357917665492859568717375236566285164858040919877012619679083851132018770174632537194421129599560749758936345310726321890650790819384566028661127473070475169691798868557422810010268666110567495588437069605966959921804793550922292137031169707417774124711388437398323556188191515074436193449656973036116859698502838348761139984316612614715873162192693316683571388827325297387745278766377366995611058033425348027311224512586925563026774070936206817160150535843232729108066308195491628374257804100273697179123133999719949279176107086147320169516031164002104643319867384220073237280250566377388099713140553300507979064647561009009289866515233059964917944071403486776275948621117434228897479667721805105724674617857838594088022411755732678823249267895541467366865970609166704914188297776520974984133734135644405738997607378447643729310254916158171378563461931831822005092495775740829350648780005478665149993534359346550556338244785892960404792717339562244217987877975771185477941699050221907908715158399329908263125585249765063940167845383336446354480674227335566825814717668605453896223009015802888326707886317036927609346601998215769102370078408696411707371833228126607046889900753176796167708007181253834149706798816531297208502864472948915939297896992623070418804319370724457809307231784717774326897472789470201532679129959559191369292747278468900250068490761314681005702769065929728140390155729382037549113681858248963966235953682644935866962068964173022485272431198922559483532541576545248396225873400766834134030538971416154255290132765041334939893503766830328335149128996661905720317376221376313080299251731643626862068585706774103709698022602021692375164199631742950098087036279259985592746648305210297428347498146865294170281738675281093939784382840684255698114214656659133806441573004276235509912434239248917635525522982301937719465615670176823313098244576978843802565563457585343258472585875084415978937866008071342551937572898419466741825092565762270383752073276963102058235419965234297997500205837105869868095611331946072289698968400612379428035982553789632218584854073313199192371464191210600297398166310987400107661074290442841197634407677549031406992748249558561462263730093376403750669998033428777786264867947600687269579343115889100710465689009321910138757506106462712439247004293608273246536633522725496432417464068063677295802935462745517448528590379571714011119053029254777586818119122297161130894367862707949383418505019096365145968279888448521573681821291812643593053166116717541350664849997227710720491089895400434584444354229896653667969933584666764331104979652476100791755220695909858379460827048449863709196545770188701499329349780961999233989321328360830565906220821369919614613034780926683496545901650332868005567766453205931054593068288012214028977740762957109927126021075459824239352692837988699077918317766660646289692758379788219238963938813906841464324434040862942761445932060108645195800978728452521990765244765591629263593261301937019419286062971758883933707953176304273516878212476084560548398144706536679374308106602306817368761302690339255304578571629694504063186072629092590562174022143214025342393418661453157918267481020469139836992581350263396982790911010560391513496719393810773592529512112734186170894283213528289368915444623980096850171590054957763875492382856093686293958433702361084911530859494073535156369041196489559280625937912466790890518365230182236835993801508795189946098696570126644884076315928316386123712981050392091446898934615377311010063005236078414421843481163930522710228642634903877786349802661885531800719285682019654439771797843171240119502196907035700297626575541178526915224405896425211856086551369362034981930367991284814122594983811363514406190830775554385475728668446097490783807954401974114080719306261764722866016106190293038976115887869947435176354312121293596465533152932080001823326932911383127464417254247169259720791973589709211309288127710097335869283333588550505651539152412313032772340344613641608891404282341995635420496540225900720209321475855045541520506313786973849932081661526420616301701692961252592789337944367430262957210260625824172127147076456364783878424502256396044897190805953478488211191403610026041995796474385745250692870165430080541139310073272748907243142788462905042296045259961747559940915059733654380791429415178168127606147904048992350928200678473070486969449898285526071100036733029641742524606520348739067640654048498038458818541713432884176029687321061831817118872172508501163887416615841122260715541990605439889489641658608252138000810282540053040113164768960833585443086910514381761941581894736742467403467102926833469379967874078000657946297095148682385460074865871354997669790883415114570041761836692304371019500343900923876442815118685869593186842645652697098177456099648233590052693839110935562716070513194447817416618755581880319199864228070654305534179951245073267124003971474470089975390292637799126103336062548799347068347437231854752868492674949003362097833075390549106736120619992259397146347725938553777314125976374478655478311780238814473539906163946420692012458317357270659803156764139376200864799247526633653386314802442497779584075737625076041055496088507642163713773934582903469783932876495809870943972067472155722281885611444761815191436845903726613984452465551528178702368427488624495406491263459550000083834221768243230241237493106411833306259219612189910444723452278248962226664126496023539657562795960649167186287584104547593322659367009615216922244235023509178474090679487187309102861498133784105277310740664767795201503167842121424172367293591728236131408396305982730809668414661623399025794212227179459312713722202583018858622388854955839180343630560885691913562898842184806777822715484581963770442513212256069298056468179508251304667203141412189969869576470965871018237436008058843476733522469944657795478313590736545952259476637293120505488733183572188357174517408106936934251028910075065776926019913296612732784877613069641399736965353101721768162346326119204194307140203295182635930093130597729275234834134136404588102864341151710747012995096707027212964150498775758933978726773489970492826753129861129224078064522703617581326208375305209768543691304199659455160529572809913057131093870810516683659040822353245429686765529298036396956777767649089031570972919758678331816281790383252300334917852294805860545207501026851944133729875472584171851530446951703678626543058490365127140531511611040288693535299614588690573025291356755232281944168622308898301571813288566806109121822255956829420771125858442207778083141147524794799138231291532301116213062767432605727314197655735792915485868404315729637039366167716319983935389180926578078743042679865852329933516633028806464849107531619568077242292818619801704209532101042410960590887998059788392271211586075964948433550966295209707748717828522708782414718114540623987637431419928708001334944770275981771888856479422956169244890107405005267998656782765938790841092261720383230372332896868575345228689560525252518230806957336335458107766589350772619837378956658366516962660361433471961686260687959439286860083654288287714134062964340122825786473311549883302506074085562214424597822444143291237947253376788195639202027723850822054459471024029204102380443029158440523657399977750883750989213741314431031635908404995555120347402109403828289604860102856692455572926102489883153780944122668428989123007250882340853900030626424785972734612041550541903192983410236404802281971743630501031626926092506282968445323702482254793771054917747464614212508275526490984408671990425362111901357934232026328909436510879264842922563686538877071880967142694331687759861248749101287296137448685426254689379200881665526677372187010355645875184129520097226494280018371092637944361254292200489872142448845784842486860385777219700660575437635643899531778552659333816146071871216256216730549663865329653528574587691883110082408857128033413772056257051034393879746085516075884590073564100578189906675614614729564991968299958671351888965628631435993448665801609556530843381736539817071016096546628995427076211295570888632794654607176398904580676815492165645197108693328115132966364372339993108997619895129915393500460438979888583924354021214970081849609313199179999483211158200264008233580480270436676629222493355607870937912819841855352418162030651404751848355419778962997209349802063714734717471581410818141493824057476705876339231613421124990699008217884408570210031619707195967086059189582922355767162780513255691067828023639431832724151348241564246977777230960187502651162357950055437230937886020866619530708562312612415425079885837036462345039064817505594853664938966211229856284659035941234041122658651751629624374166658090950845460898285894252651781051026521102586206416483647517551531890152685570844871629995077641885691047330996710958119535168572136389726997732148571794411526818304796480668638627213694797528594449931437222168569809518528280383703316930371694318798969148618072640859431541980471523242858693301358931866527591660132940604180440251910800846691740672693160456072263479931208885596560848170528498845133549336045835395469160180009452068053049736984986408010269961640114203622398834572884367897828149396513800951472384148102073076820738424760408126599481678334871326444443873498180718575852475705360796495986818731865856495252742542149251498457557875902895016788323844845929141203138745284472836315966782664574361898891402733610567079118073270114075477266205539013058377053421612415115767125159875031754302966701162043822602952030358532303954458465937661551666511910494520118079274273514351464026439417641029871140947687113423892345668149173954052502063153189779104403834814863993670642967359690150453971564065734577482418682560719650987314553666425024805077825239584609622963292582350055147888657019357586110256276694625703199634650579275035583307630621555296927236117846378235653197343377949260547008369995318617510098455334795419566870833302659594382672408415065001896036966918261600730502318022731835953020964500434045879640608212648472069934011250482520412834417092675792617690465178072303222079084295085821684213318843910971384680545163428596729504640145158763678414639542605778185998204289871676328948350502547377283332842060978972543805450387811060285032816650329167904276417983695270448975983143463995792042922072021231898275334639582429599871114409370721894692826598689393222458376731893758018817735521158766117776450351874357193858269704312023045209846999644595610748104899656741430058023966941126883603948383405122027045240889132076113202666080460048665684564804878239665893101999455255659609479696492245143552063787719362335511579031510913099545984310305209960331875470304722071681859927505347447000573781775644425889423774219796382831991901321270203712401511657442336535974850214302488746997464132353799174077093639769104530372056053694500968332148269863295979578069755490909299377472107241727949632233600317412128436362433986981693659404502148017790435455195510947861462558588204028846486201049338405042579774466910327736710678830656062450689616421220887942666419858124682844629514799055349071454125648321343533827986030340442178657669467433681716686487990422692806419503676351799779349037498668636855256694336194325907225771749784147967324212034683489924834243805661327929881396631049952725764247256289287325440329354544311530444675225386934796658839563847826969182739634090443156157055184605641459428286957524007113800848953885148063095383846389745456333927081667936712767304161110774780082561587054753505228583306540630990712425972409767782741393838275450800578011395859540047553613279040123123299929214202475914185166503910145590205046909457621184825720534820031108483617434309502016588356336126546758996077233042375497504018759066219201570736532836357773493814381713453170123591642422662686921016494537922652709281907630502426116350911294498460030154864117105268185981367800385771713908930724430206879053572152106667227976344102912928473779830460698057463731787641422223104957055975886543381625454228666482889585247177513327060462953905238773730485717919990958739989117285685921988646256159087062438370070557559180404263874530661745405681874238538146123727077805205974275588659644090021289725540964549136241747782217891319497740455480980473819479266588169462354795943354750717319174248068636671409438425279805882851535966917747014757471401494253685984076123723153650360000308415837541963218004903848261879319029670174858072792452576953991335740429361591802476692671971354479869343453867866559527739671461204767967673909989339433933145119230733875836410127566495790120901874304372676198912131428969024778361642552427999021730364947276778301903081067806260595896676890644132289857933884729865849518750408814400114538584513135315392510002371018712083379832733348625636204712060389651254287311243344044589284428250553089592874364046478682350319535548079384677832414814963326013370248959438424324303822453964978054026601793827071218017064899027646617654285664422521214082682643839709022743688414274521908597595960548814636550962882186569933256087750081331361526959305522490411873804855803821198951338882872744255957476204125878736167126957080031262222377589181189537402825837793864382692994795127621969316574288841527650516956011532020415972515167761833392318576795823712908427722054997216625629266093778322939921656012865992940317675792087767609044988959513658672311130681141044989277906821751343404113012472722241958544163606652411412385677556525965622039268261341117531793256555357052977540279975363761151002907082896703194775498630405908398208156710831693697775499959405322940598266359337279862622142313408552846372653797762901211817101763351515126546022784521786663247531858259066077841305583800616699875132089284305253664307426793311990850741292567614211961889325955058515923349214116046065136975058215362505473598827455236545266703690416909854231676724891144118473284684858356572503493524112780216927972800064801510922381505692607835054840908858608343365569420485292385926937658912452044208457628708772524144876255005983180624278250877505157575590556415889811735004516270146058144780401056914038371543068725223853051749941809865603445304906392280212959044093858947716296844284219542766364940471966877224834991142959963816517794483186948825991670665748127573813541659160246153588763548684657166575387251183410549658465280173830163357937365726606628928195478380420792534167333463250104201673087000229950576626839140683449044358252335430981353266466896184072121221471822150178776207225315675492261875343745020797349770491618926223360104451674823257159107229012267623971788397070609377501650013631018485023673963662315478349610364108255810783326143188532013311900293157348947102759610761666546542144794344459051863974753173923219484248013541381557741653500908854899508321964830700384773501735515887119924276727561275834655541781051578059145648889435082966806328875928863605368381804309203126743382736873808474316593978299503129458074811451693241801703914899407992697848883392723237549374832269228152207450029628144893781827025978265143286740302577227108311863019004658911197915145319845991773268114023908728718394396991928905626497976167926508602971776232243052467217128187772370602655159080281025230459001629953645563506523171618921470590445865404659589980922258112309661581177008044833990341946210125405842223208222609763479681304788629104766163918271682484382989302765733110050698963997781807031242533911479291966665240458989837967738281200646577994636420051320643883919444776068613759861192046393723573192068074314375085020138305184112413863103394759984472562176891619651341315113642887445489595886890342915877293560270355573921289083557404217255030260039127424075633904412849234987259282070261681331518443146690820279016664409329777044398793195119570393461481939732427147324736600134931402045873356782980312596065617185390767183333696529996265123731029547141715738126909005396638479238686374967736149510041925159813833788544063829690100643783185835009406522315865381457021722140082183210820519293977764530391892846803494941237230437494196243672833016266841521546616298294886464546359008701104601409487219090812466371982603302818459542291035276096001760725667185876697673983159513704623924260606886621526365091121852926854970650415069009711167540321362481579960904353774635519482049002232293643888871338904181085140129025158405490234922474362738837287795447380192098390318676865876713638314545531698132696726073678206634240027236227474774640539879898274505107599100417925918945170848769169319578393116693994523113271354647960498329940329106211753590678759753275153840112206323909811226421830872501418936025480027421403082334922280897492366498192151000102425246348601412181546690164788516687456917308175299520094228255810023808306302469511354383529006226962746077553460798088625576516076929026828859480388460127260235779480832330763712538953906075078782514008797910965101355286514620700748623148771659624474577542729121013100355825172870355029636080221199529378750846552761656385548845925044841625727802541743081742361561490863847925389948699229653249709583231305465466253221041318001765288178827586234252228500717545604932516586578832110363489092838054428355154682330766426610659276770374693650243944916041759762850278294260398269384921209192884645572499929599629706611491306412098225759447504765862573036285597578502192012513671433139328840287748494574037969207539012258014550727569891601790283833694935305302680359490857386100649035130276440504473471081165525800975309593062508580376424354124528905869348128626660921759194888845225541505024116283783751236911504931519714630131686950833538262438171359037185765393421855706314878132365016154628348604969614355666856949068896445870512446812678396480923519860026113689769206704226568953551248599204680656896626472572693301106307409517492623452727589941901887431109343408494074827418140445820568180991200210011176485081390087691199408797826675819163552108688007912709452298031706519668801102158069828747671933981713374099105063059384693174428704215036919230367093038228684212337730647647698172408372822070424786131240689821230150147031746236329830732232220741828093130263124029166327340856881338763316273146026011439173589357284612039232352377933283400630654366693935769886024707084618455316471810886999118478774515779155626343516617488718986233916062969241020986933458462236778886549417984664995967519196930690446459260797076075276765983390660900705788129871930418005283919709772005512524933709661962629306158302532367932325725146799089209181228236668875598185555468197527019792638962857965699863410012221841188317939933131845946503200843300963521961346822867687938679084327502151857233133260564585591897912216287723691229416375644617970023704139334647610881211747479589524088781121237338382478925205212693753125072051504972132920261819353686818564682404927016762545750940676721529459941811857528279446902267344994433033083728876676072935270966372810612128645381257188033923940463168127736141535548494809806234183848438173423714064301579727028952150329539746018322890755819022798555101332186640578547519776991209744247705237077538686102891982079602153606479178886896347117104150246991793060564824458175677615490198588824466899154614970009057364575576097060527885875390540717361948918043972175568680290413027227005154566845347146204861041614948002000198378757454583796449617140675604584239668149109041158619501846282484286228803957088553441593506158317642747711935965789157158762622009258971089344336653148550239068137027208698676616393755146998146175507610394537543550799142042451598546152861878465517582349499350708682293091944955220343636571859595226080692606499474802312433927744972642879855688634182296418754707155419780582977170936189295482039631789505167940198949120672249152296025163371775615140964751380005088801641762147353274684286571747152939798346721853763710463072703381096092493469470850069530615842976188806712583562141299838991201684704577364641183394947079257884745973989597759930471004021064685288098550891819435598825393616877857713739327612728936257713258174168369037984330995684104897079127666601874514681001859125398271438966211131124157080513498456482974520372277671084297239280313078336035415072608414336572899376761490916504259128868791620678514282585245801908680155565704179713596968510481178421994279446084605000446710555077212745233217745746717253822872127848382786571853443624207524948591474993474141995589789739196866397460258729328677688598554158437860423287878111418421897798955725125425583130700840927567230773704349627380462778950165048428014656851681230319227425225063503636268979513737203776140459610913931110213630226719208606940309006921390022459412222364260165071234041469921697213259344829026409676241815218246048811127398621743014542331858288772319923403839634600834176171379850411260001033454937261482055312398702354052481444604821089999229718499054866285198950504072565090686543562451553088145691438593972361166301002202440356989678460224400616772727239811178862590151177358137201847716166700653311033768314664653193783199610383435116700730909969285221868818822408988455661185779553950656380348991062064310747019008641592360497965201133080769869252603606990617445304991919465264595754148119986835098869409288615513439171109397754805687613115537201804693542448426100668259532673902621932673896605964487562361462024595497240056934849932798262229173356711985831094581609888502915165977861942329484829308963742394601415347874444158929140426450571842343228986299567410723851060159449850905198195922807173090048433535195689591804044445254629351616777967923069293118713206857666597735135482310743041473318166352435402906027313043790618984469908052424040362201162581858952573972807527349684751411531747466810075241685390485634717450884081735124002549621530723508338367566092201898636983699404419635545219927689604023242234776025897906832413373132152026204122476651656862002807983583008117177542686868866662725637618280946614256828686877513764027540540597695095893674154500872928760372525302759970821475198446706261701384203307065607280668071886500870789495754237691780894198134482248799944386396599213239423550471310134237295918117139191116946590455377343511745959932512540159813107016101339877767890120341528733838194956433387697961350802882182377665007158554132359859744260252547207545383054262569514039871132235521497247282583974519758263083538127922953015574996072092083207517273673075229996881749906770395843845543702610416796477059160509859844491989500660341951471896019560219923047854450173094530874430447584435454197817621415147673454977152618584829441437356622879308507597038229120231434865791914749129138488227938918379951055267201000531145347368827875726168649007197227479904092560116635844160239583737331878468433326834386633047258576968500513178473794805774234646969328312672343131538877807900489181305369295345265559553443524307603051657904349189309950681572231453405317473176525221061536433101465318002172384464571274844274292730863255167454697159171104152326002347591125327496217621446474529583331036042378093138294060328369595690009495059255819407512007620250226321865395845059719985948818168297984612975094333455836424723649136737447585646413415929163182512826949442187694881664245272622263352437352674785052688547056427532352938957447649390754308591653931227759915846022420494325830774481796455520530282715112936224840277414838564631051839991107909151241455520525635185353677276343423361599741084022194071365312618987186425604534248664343869054128107300920626123315383554881190240823866475587083885562990996161546351926080704947258136119265404282721408593842448077744864351114102117655297089388999215247982643735947016346647098849116438589974481276094660515693910474723670661336042684541471643220791068586200085799641317189893255625376281502450796228015731655893807614656760187234980908392105303467680280895125835115241979083408038064722281182702521939059913553657662848168529164063629394188459460975465570780570964740763777402290863349116948464309471205127199130340559769981039596805431063972446176328949710879717238129279188623237722214933648806829825546429314210442360479201759132965532414341482674834559979994701791427208708903151810449527565890832700622823250051184629440848363474905147282306300742638096363079377999214481119809351081166748892908784740642804056589512637830729492349607995933475627026123827553506244194288477384249816476412627619763528104036881634841010563957850396524706465545662286574562972331327350014211601270691079911033185496119808355864652370696423614648555315226050513014014785245419893365296955827141985494519931829825843264150899062332690831307042891939565184805723768876012450526266411286758248438623225069109035748904336154155131681627263740333456052915946213483043104249718176970632986522277877207947853970473237406124766660405761643094251614716170390632669113714651416891910182806992312767443894454558714477874088411055241840253980726143047506821341679955669075623846382015435216847232616474073265162149474205589237195666790376409511622176932201637380778031128099386582199049312446855563509916403615246967752185116443801303158449815652354085134919431152327166574230174574235072436726277693175107844703549989560359029960819954518159219066045287667625172862751108599376347728207725014587851876716476939179974668886270190241906840445425026563004081549706885814115534037458742306687829503286672731569905970096260367691729930975001613242045345892055368331077461299515767418698066977029596378205651968161852088494763725766547023891635722522766861632610220009650416979398813254830160155900573702321553654365639192754808813781080777996388974012843702792190185060160250672918933932114289224738135470439058103202174855298634666294505654918689325853107286788072128949060886415388698147420268292719721817060269108179532748688596591029155210440809869569241048925056460242252749096312676170156873844719142044025307865958725227433946407954061145809510282953860394086584803799937977451823760155668411031689962212837197781853237144847331973956498672203350024843371848009406818632226973011185505516600062179087060823098759434915016517806504587824140259545180875252989804795919037686190451450921055946997598397658537010282335059438641698545715233163568074816083094039900455425533787614261760241441749026757992760073191690092802758717239536566564047531997816373822481995011037787504415098096556824658098370583186933342611667415572959408583555130171050389064266863601336335788621892521060703219084003515450521479738673143896273721199981877777541744065971109576461584769968365224351858900087257346686856067730533872252638948172227382360695396906472469904775975692804156033677523065912322035545299757070419983918303636615457767311975326292538008230270255952238290706859372509541021314579650479037005917212290638864364412330327048926540900828171275872701206001764411721582235690112260705567207396260463028529554953529474334792026017342699400591849383135359563364810253178712797989866983709711822072160286280716773632015752427407995364060680183727459174669565544614688394593150817883661058277848842537230511980060849634594032107489494653801123427499295642424768799126220061367309881372561113508002623316787357164524232812815067782026111105442402736558232670613629869807105589933271602817176002676803031843181540193625935266633631611338512134672876919403565364139920318016072758857072320427591532157902406139843720576709677885173319917188809830842752896710009063942548592632993272400952770026055011730073276089040937959324888450236596445486643626353140606909964855524514338790390716982049780699817123579965516127349253337297845197071074479830272887417969125634637018357559884960400228021270554057236760846075022221926780052598958516089660599436798659979530241122992424230885367250501373551823000581534119424237481029427332640437181864808290316569146337934583988685962775186711757245829094414330148549206279368107912950318665590284642088396364803722144041863899932692794471407693859724563153508422140852000478603585030013630139211267406665517330540654248904320641983034969647250351551602529521868044986185008245206929533981675264028574690108659361474675930857881601647061783132884075235866587337319855528413187923170421936893838856324243695428840557731275802642289972310517540967990628491375819838595995629109102960131731971906391872879981782023455470629392913367025811964160260359399720812520349548418543464979100227208574184776473960505684330778104051802909852454363589938798846719025952907417784421452805084412316636533562191435052474668357927111973753289634108335624903057873337448874508791960049327620632582156461103086509023105249475248711167960761102998322709085777497513925204519661412695838733273757942238136397248190472053465724851240524360821237042698037112540954693409949495726533331505618159073183326405633538459724833637134882039054934410528819701985312241435759984635341185243047009515558410510970649373494384037565614554492855588396192979279096976016014827817985231166751906236851433245918882863750921173020527211497021241877345502869238657466355476567162197182166143040910850234156970832296964031320845800151039363536676245551824304583334553129244762776124891878573701446502074667188429595992503802710734471718422485357017233696762282699267528172948022213592837826853459838378314227096021671673111721836981923996562735621793513392610942193455406245281173507177672038144584126101559406884330938592587864970438504755715100424527290191740252577887041242208203021865185520179949425616021495237318527443107522032034890440375445934568408233473288194551220838043567620369350002682693374212047866991108394346793555374968546677410899502675796391832333823706837751773184006577244981951877297517926554301913283120900950546559990877045588895432960095568503857709500108860784305106758589621672061495307809634736848128341689856101958273269216661742901621171446082111489471349993940273025115467592127502585354853519061508228034617281297626342790715133526286205687278928563412087300186290099054523676202452969946844787767265006253014753778313387342566543010127384497848233899978025088001408315281899808626464803347772351150746546895037110225799731653203104025493648560782218769712950163518467298967840577660186196213810579118299185541313130794666366008903923217928776855338888377085748098034274928399782287718743730451012801673964047816838937585959286836846704433704227195472601357684369357576569088014119355712081916346028965594224602804923191816883405867771664382019266388721756423272403392546450509958842439796839576516343169440050073538521513024071988432894431543446472352333244768030726137460694089616031955177258422879442318854370794589994204236227503164226743447811218573711604592193274503668349226827645694121108790719597203190252703351256404569800318804798236856100146219667175453907774116282735691651214002226101736064021170044847563910924379313509572853270185764987935845432146484953461065183469513016990099836970851478446526230782856606997170795871313718963399422637652391541704753924552806613934528190677467755311624201344170244444538729199230990020404557761422385663046385583079732637252859817499131241565948221324357330016858109471038489865512240665935380650098982808542067544019359000060962480917881009213998227863719043802156364917541668933047034680552329887135450793493773873884984391609664771213041598755901088665319022047793489467475185878643977624849267824522216336206663205767354692357214795352615660399900102834753735473787136379781187058003057274446162736471947518972793211825449068255233445077267635532348387253073231510197069703829076293755400156705570052947028216377150205691877471965252834573628871504467701879806903620442461205268897545629519008808794876050360249192110460827081711556405838967014890293087453433317142115960728496980725833368375086005105179356383520939944257034336440115425760305158634539877329431367594648411206672263004369086221959771512142026880517581767944580828908735045789904640074338796606358135760247001028648921950926794708611429763544211312604403296045043186422353225577286451930320167712524672656790752256512408661247617233529787808527841136847018844919986315762793645304781565211630854727840466806459788557300130519071854151122223330646570819308452581790336350732328159347922376642983373759812443528768794260116662307533807012172751654701758649237810636649104526410117408111147890076697109687502758928895630590711580718510185382306523527333450059457781668615717693726749323645038035744920045293115732487090108044389407278259556066024471967954428762598507222788718442438064890581003197896991899214811865027146853355110113864702286400116351187904265416539946261360384382047166159975916997865562476704103960146445836711653447563307685169212644743004105581228579025002315484636571464695751301515269732912639143418610964537527211443103856835548734914281758513532223879704518133131594256052714486707677722123933631572275398738728125111573963684706990069077508808418487853772965031379280649937363284743778027240680775462859785582782414989191946786979966900175351662297757318764236396748346269823345722312841243769200762493473156225028789704928213775884292159446330116902146358988814472065112117269329896374644910175648266042037543289001172823671953616192034113671330891809752544057100138584426069617105856518840186031099787818118609800915597017751608641841508604257118685956857866930744560002359634846537858909792842215446272435854666723848687918558498996397621367943531318157181584279787909742238868459341832823913949452753976633306088446461375346223702627306842615160725110049150214237490776813800364355893985392420071729718520622998380396035678507276939016654917240594514826574919704367290033863636844245446297845260125242563471249022644646526235460203781711063821535946450098956836168951452387041361491162428141712065596785986313101414220383669832163377390944376420220334089342846976040057083654230728114215629848426101652394253790659522036012534412848835793135088860327068995288459746655382084170369177449418632380353534937080475000250720224425400485893580584633659963841974138233733434249544470809760957142155088134427970791161008679636552665669888077811584282733929848355870337565885046900138677021640629243022524258337089689481642866263764575594411208268066001392996489977576707693661368882550692912880267954254625648778811207864039913741150862741444428884798916718742076478907405467899076631099897563710011416095866574809065301174952745105759061324876327447561352980125860830018534003417370302117117137380285551616853722423025134227230917211192910309543735880048830076691142186646415265399693199547759101655450170771733814286300538451565022967950817305022028593947508857962203576967664381488643825859670525680110533025583292618358326048039238727347443469312829525977279482724385883195159331943350256884825014826410096445274649743718436116275546894632561447766777042519977998636952028987633757473998763936407457983833494904061552127988146334025250935664215258825356484682609602737264472116333368575220680460372591321352448024300465104100914735004329927198289863003273748262192744582704514713073199614480173018869763709857855864394951271673337316331658132826135914616966162845469096827590873988315393850176915855012171757665181803587425092409159395833262569584435080056193199634022757944450798554608125275149007440806566214223405329487413728824372341556289179227515726245039713495950995854709052832170940809350500795314978124694249125116513975696285213908828875914244424514391511614677069019255940106355442005981579614956337057743647671221328925726256741134178864679985588320274648436336421478815933678445663491005548929002136643707677062930685954328168113210683025271981947696925467031147141859911144556670798022478783048030896179657245958620734869524830552972078290406351637531606933922182056808549300876024701353907770780301924182297509033985088218972454641629275759454813698535580510104159024200795624531604252957591443832035592591147357530554956306199711406150008594719360107707810101818930538176469602868829904621387573154071949442211680463580204716103422935887526043154403678638304587513307108334364516623274304392902783731297764093172962221336791365121137009696165658883084026353470280013583005724796036949228617955888716695634805384135409099292684974968894791321460572579040088778411941522855382197179654277701478156328986325974791623325593901855261547269605795489743747943286079238299810914435583675444108661092590476654094328066242682359790806532646579000511966787227304157562078608215830483980800005081038753164275579593183516166268323623325051022918717663590414502733134076858786754499522857725252583065615444666496630470474804130394467529871032156913252524797359745393150349349354638000885013343990725326183146146889067062976324224552963534365292833058607629750698581622412568954000240902958803744964451414607860204187470782747631583469237157418909441125010128066276206926244117042370157690586452719884267758657513916702346492321330428090465472896966279747695319325056842145533025165931063816586904587501325714388883520318794358426250885335190863076488793441533824988265902523420580611475223566558374886028645676440708171512860930439688766893242037384634139407653307434422823087371900000632601243187535050659872414267935925733062181011549991528031021594487720652340619806028418360995802746178507717871655536059023485731224331162023212339934650847947034758758535956794940209992683917252103257550513696840630482533245478020209093393001652442647715663033854790360200275622552905807106083852000337954352353767180942138320800898887826823638868593083631500164668237030787457787700879627917615607896171445516361623193682564809266053867415676168669170125447130001984136388843860426919693389237245286586586028811570575157000928464372374563140206375498341573039304048358696871240575202714204557491866202703942533409985832179384450773203797159226979476211277459171517694102908894809968866270382878378070006683725409170936648183753727943339480658770648709791522073359686423470172880020158116680976753682680145003210224573887234191586634427284855170692101216229669911599666519347949236788022440024484448110454192368952286075017985864776699349901510514464102641650569611908515166090337743997620288938379759987889235766546377654444166933945658177645366187134991916553304298727599562231488204271649403000833285980601597457383720219739488948788672599157484042225426949881853229143346844284173356498452554630578086900498789056183923827182119405683944866577118965283741044899014382515459190722281030279553265915334294296774474194308295778757554387750092208379589150607915536005172132879620174490096008725628782943662081769859549423771991791617682633653383819659658427907366834545545333438958569007390402840565021200712240485187869759112199348144377010738427259584817605502331501256117205357496918325861102857198209915061346665131128399707663605156007755247645105639588845140365212770190150401736371123829485399591936512636097282760654528061615973290069978786639234708462327403086638075130569150820711928715078774323184196242674325404798493265327056118876374913990633388943576743009959485638949386300219009457724191333321348991655163453218318148649625442543680128243792489662960545864127756582587316174857390286401196221461777785545426107068860329705274897105296112405301175315789873414428732908307571041397628875565655261671581147070313563132047849021665196172109051214297487944920036775673511549991454861544535718054787384807019643467221667559236916954136333180831190730330176781608644930532939159307747813883608995666476024322815797647997536287764957909207476997965521236314256870935658219184548752805429812001025372462723220994309006391029998620325792883843876159648231401076019154854304847176824125024724844632951241754695104241973767038247286642660351477951424156047466415158984647440799322165566617646199049941928474384352098892601185672164299226745625819626979549071910439201627505772181685426794521253122874742730960924633944107587199844184147690496046053252091803274291629914253338301985204246791342853899048356145002183361223454019418057461314558131777652633887049601573098089891159079850519961924026384941242338104480261072787930809261838614115737016746671955228662516246308607006136349083931600690275260616935906601620644168299177402608865984251331478746414145661416199716181591903637945340790797779372044909959199721135524976333389266324324805413306724613229378844640883900735983855925139300622081948367870134876840404405004030377630447020183619791837248566278238028477408721796844369236284142927280984879649317219154343829301519333586134197612532596160409769761091110605215514696561628318223715765137020105514752269473463591820948240598791233422229330503602484422674270571139692522102515510354996091219525474679632191499925331262352325742653255342035378703160714871834351424024020480287947555948756891617916441501873248439350341836070631017181477692965193492608636941184771784084762278079741817692600687960714900946380585782316653812727180354318752174054072299844377009091725417952726979464454049957754888142305125897928342478787907834000117657877680139275593660601711855377953624571104256149067376468380500480782173338393861940404694082127683132798432314352891097707929292027297676882763147086770668888093908414483861873024557868963026485637145625764708192581866504569996999653776928154690592354417272994724671514815501541996453688458504706032297996364955382237472279359544071368865329206572734271169512454192128338819447318720141520793188446817582713317508977662451174125004203539315304910973169803037946314014194775655683634201391563343987052163376621840172252687291911660737586704657056977642805183067284043081002884874577972328856104912151771339890921213805032095122768704471263679273868091315227378234439292744385368486072133208784554992719983681282631384936054656659426021005353441689842663623983835077432519655941159558760967404870030245399582469035463803877927187648606680564651402472322926457649196946686995320141682932911322502062125942368932209980725095861474211417223266990368067742633442606748404871281224589391429035226236729608475315618350020805601418368485462771657430345377506753005286355814375238150560589628829688021411662995354255839539831061467534152495975807963149775010554647744362219260797955197041282304610411281570488921217394519703448545434814581928240309583570042328723962752864816091139970432425394135077903747160237844883299178075550660676263845778887483998399918837064965464033014373609324299369343251744687488711313338933000625010575039358855976350154881930860265055194922320720822631660412486199176357921485847616157561649892837454728215974017695120000694634781234809806109649197762191776218234920476349932974772397078332057008883934626373763710365720238795746255208407932518385738836607902848976241469751043977030926903496848376717857049559346753882525371720529726257640025411855280303563445692449996490175976107756916274508275229025333822020707667854148955642381881064974026564715190593138571068758743127635168143535283125310802884202020672258300305125008293301853106558583619970730524076338723337728678833767627915890912482921860172259880830290667305512908839092514776457157256213104216346205998802958817784314162788542947743898454242112428614929947332205383868737091785624145758756474885652074823505384255903804855444727975689867741169681219698109848477418530392366841972285110353785913453182311817078325765334405448711694406188884625080462889529654451264664292883088366348211115899109235444672675992458787218294612098579813882188663859810220808161775544866187859376924579067673745885065216208362975273761401134952615803127481587434496611653792197977939820026113228945358339481268967192530573598160943029531522258538892983154364834715381569019730586579156820168552362332058071372420944677668671032776184019601017404327353405054962471607867670642019656754851315588232538890989981332827050568133625953830273357888553119414407909186347259752786078885512295313870542605813641508479485085262709393154683259757150856403224705335671572093072347556523093858682345844755750823874406990750514900982074160139438868507474759621221049896373579373845517684171398138990379082203276583525776493581587785888501592835166405758872035286489719558418524459467876512493194544947678916146554892645980315448591059039661610579736309400807744940461777589238825941379515353730753607024941039890707990581472608364930942727216419556557874542951036483978661955435902916164684521577388839144989402049876113601562355742228525072196209620017235681425675604220954966074483520281464808685276835069192223743852307309888588539361683709654193364188529077280909691554246798482253417117386143978837042639892899498641776412448844965529067077726575682220817758827134982628376911805161490478827930154768087246179945135389482882367928885180557733166823828905488405921856287838089866926831813452190189394872706144262737111683241848679862060430371992773241335085622057957303784890249926524250520849641267466719942837076944031628633018113173676232030505190737346989360066136971098084143262370181339859877130549217146842432381631323668057083067753273758403093078623177463757645004240699173888207231392471755878646493798008527201955940303661594629413654746296490462818212274323592451768566251407210693425706724794900204020666266395977178667280443290786466906619898571791145204765805808790897510415354854339228122058041797623155268640417892527500538834194792231063391741264519648063081828429981360082249210556734167707021337494531462411767368010500706627728402676648680854209669405097219578134578254794883584328677135029521266580983137676273733764977190906458093761254848489020082039809411175238709895096364661954466730977872201313513616315527556731032992837365397437864821038454657182771162100966168505754810007380780575903227959730946833302833935722525040902134741814412935415749625519762307098549147049192042740463714462749086469153329428706062536148616831590098477789152781294844688447286899221949556681123208595288780807068427598521043333782063926112935705264055344040279863662397710512755973718222707213303704374433530763111585224526219760546537036803324340676733475225538395192086578077839357623527097138592894778418084051910130602753091714979776391933247296976340596786685193165649582299934555752814931397367582978370046716478970024325649598425453449790804950834960878378603851852126370837192643825771912704961787220899718145212113141486756689935063724593923706125091617031399879666680639204108674901319614292881618194229066663263245075512766044202400334086601345345811258200181331802462792271656051709193667670188300727386820843796397419755088777625418655007528947815617043876446024925774559755929933701734296798024468806692233922800937475792620822102264778128910692154991894052830150796235628954261993114255383343689915081160402651589420753805937155705434079469926715060903564677546697123073423382579816995891311761843965075843144082026309571917559081259433899630299175279401978997358267323081135615129115460348806997239902888281564557297050682122805830054875661349761377518116115649726253440805017629314118115246595300443249712665865568801302739165081861159844081719090203066963886778497880902800264902035294674927528906832135926519632948213150721387844144777177073504824131832657538539369207134962947427316635799560762742158868695159802965111152389419220571713733107724444250719182278038847868644605576197291631534202326032469518875221737687791104700992047752964254131202045376969410599580488022211095778278311743581518114737788413397914276566746798807383387017877503962031250666588763614731590282865893187391182141881990031669222184752859931907846073384875393972225859101083536722967708432241082615199539897249284067465254263252631441016902981898808703643866586061712299124364993493915999299601383351156285754343375355290684904947136139137418315108661908678938511574799498199805904115842637571363650074074618774152280957495679068446062226265611743503530580527172721287030915327342726902856250051573447784075494058756063380197965504915225423190284609933036713860380672399847192457600173564723562222776749968668644268905967812555564698633474100732169580775454821811900236546750975266617399436770535010172886911154292713816676479643134983424632179340652215704561998165722593204899702879433851347192613945060529609839949855026795833756112585980995914425049631654555519561888417119728547664490920339191931736571293001890269500746800607650953668107629520326824245800971622379708993966396868884054219437593254639501200618350744124522209322715817331479545436335274279629607404598876103392478630689886006392518099258655637915762337600765026971154151886718999894980894749241521092734904719783286523200670210389653515270604981008825455079814785998342993946456605464763823461550444158713340348911457384152810524649696777956146298018526888040430669408319609147166041196246068315503094143207108769240785581023629842938894426169728955560812825743903734709335061970928542248674657653330702457912734960846885670261744312653697547518452188793661401954688537227374667730737409826527904944968383494511190395575285354086058194542408943306319237308204957392689349780770467496019701112979160727339007553381149909826961020118744522961758196769416210101226149667162196455268477608925120619884190158420170465026229958006345876788179217555199616797533085392780502694439035126143529562398641443509520418387443731020900965724010565873632368550187816880363917615009974904093142865453332998142936670092218324609578335415156205161188267804237601768155408855290728408047005340216561987794873432456153671967588266033906629165126412311207794267788180960832281676382757143902220739232883395391940827358362679089305013687968513960172988812337032593092445755118935290377503378902772768119380985439085582811923804418982988409778740959244389852042442546522808020906836939989046097279300757466093104900126149978498358603583466208017616817828578476453777639509305410684887604397875994352491644802649527726184955634297369554533857896521284335938205988004099735594798497274852512416039334819271271210405983363955535761363083848825648448948161565299807983902222119369237083696381976808305980977141790059460208238526495981261727916347254459475524805532173367256751958821283250456621575884791547399085007552540590007570610243666489731529630429263130532290344649696694918789121521865829578800329870778220155541716607965108040905527158031201437261560223311670351189552718070984832191230523105717605893386732622497845582169615111178918666075157451329098143785570672522177772863478378921427966387804528058203594157539875542653999972931696543423688900458899258717748444416638539227853908643437081776160008426352810165688578867057303899412749670680037702067757911573695297466616434985163760353534963352505932081519134656106564261149100912614137873034633327254568079015329598518247461740584771859305439750188073863236835624517305870226395161814563977555205913575527398645700649087190792644305277534167907973039522548819860223968930300810110068265114562188630491786833636346661819857023538109253374181553179788170171030519863327078521544258390466661310865005157694294517208082303468474022495515463763419610552723264065256650761788677735025728373384100198250692886169860878787792051551336667898900884299102938863522750754549245580831157856758880034003392031955532806410839485098234377819602422625001791152904712382616921043372028600953003468726476485265866950923843029224227547706200956552598609986077397136405837441838844126712449581658094929807328569421568242665647305125627342977627757978953674137039581060252348096333490513807775630359512077092242244080709936940311872836374733962884783112890455133842534381288979399463843753554302296435326663200970181439677315483279110646394914754963688486503573219032226424350666738132130575260981865428286304244533882610487182258940198684940132585570642347311102229652311837324204781965328583003557137423569495701989682928633580071883319093594131248059431570646093073096655923547259980109559973022670040095145993142763383805094048841065775938826708053752701812639972042155196178453148254364303499806485929738510824084814322331052040959584636304176038286436996111463321793115330014473267210059133447652012694117168202452771314501901288799533008235317122590917281625680217819131878384396821975375824564651034719740566093995958906212014314808781584986228425994072452734128505911337705983217343596812974006025920167548094835953950271239669130973416636908054422282808522950215081467027479464295899566745446252505652671471984171132782252363859444823809388245836704200899167320182161291013557922597515329638942268365882554421484444306375752411234973895258530602705273524798765583237403974206876407670226354188805962554351703453546668608312717962491540772591567637920643263227836361942038470549042141887974634944570019620587153363288664561973973089135979728937227041477859594654599060300417575380841598438253741390215608811027488023581060293622516074580825094917218960166092936224781611424547906999773305629138319962636167593735833148546790157035151601240966308115912013003899735818706659938299519975166767529961266325281210775208641469773018370530024520861278113577573640406621032197925475040042905866394568380524754251379714416154365035451144891411329988611373253977270128002398918834179132467475594611247011425476084766182517957987275089673599114578057004432879823476730564416901102497133590795071957990033415060567542535693719919513776733264248304164593830348029267785896607391433799353752310363194801138903150764579797887064371126288891362760933266944887306723843436184932664507282352169819616746984160714371851642723318227428517049015235888425090833110811997170197366882718579657387947814543687606473034514179906353080794511891695191151813443574267323299169327697938498443489508408497206560748924789357524420650046429334174277787634452605308298115861700904836337086394682192258605495999003389151644868138967758644766469537201089306691934293384473489440713224866181432872779635981608826314937741478522583911489471670419849918191450556811700603181985511173615537961144378595469792303069024226063115912295038008665795677457185041015316888274464943407980999329537116376531449262987664473085596638768792861531083835184220260570121138590968662008075963161204652196689858726412359542282889433536495839634676275005042823352968299827574340706249299120498878898193761435717404476701484060321131642146722645458078815664565254983674822063313401798191323776374805826701350379754318346053320235662533277585832721717244112561830561938382948113727805610173094524029754832457447945680839636659922250521002582295080009295842271991061676954327990133722674302912367166794812704245573471711550033722719396171006719975908841994323269863139684695887814675669967294371310593704583968736808758470851309026836225352612722147881994092449291791631922126367339627574505858018093510714167141102092568462976963902239663505172215278177037269194643711653851237073702050357216540307926764569349159982626021413863076202170476212131977885747343443633977159381931468068274246179852945716040601947037360693463586994489024114265503120445276890192600095955925311548918680345178838263727397789989597729638435031851665116079327218069208791934382724472914107093809942915529351066615007199881169189591333852111223361000327510048324766365807712513152641914375558330198878742097219906177073381378666222526883449613420323829784796307415268829649235001439053442205728977194004230182068995665214186661348081174113526269955097049898023155454517398361055254559518047392640040480105883310015163675279846549523240606008231431171827916088724040008565856245728419516480205418989075279309786685357156808197280980898548747367816854253558492920933759514845846853935312542048839567963381972774687530653962233350180132332949617020205918150438717102700159388038402935484302101225989092332875615574451438610582965871628957092659151434775593456121284072252001930934062774516631384603693170132126482917555239813531899360818664413024103625138866089566030257013065797388638485309181210345412480781474067630521147850517137566674904577440285209389860905480010386936661567011396292507415308811114369510587172871292653682472509204666596551959778600947130788212166855446781810812343233255206888609399820031894172671350347247735464066039004095570184346614662803831405402706329359223676040661033478783512282316434002730192776161596535117469015080227981241983101208776769201025125121570817018372114861536178350717820532788102464478471447466257392319447937476664537533344986035830947955560732328103668910847958694409612064835069183074522607017285547427330882759223516748069201383053393808442513906397232069037731056679856760917515804904293284124896605579902906001975960883959972080077744423939237097070055221319747461324996131704482665147380800176370914316959573223328825607509193893160205673693276658964701372833794204589463325433349486406086210803369538727906998988733227499144376706821241920051533113975758484062049224618035922423134015421309532223529624482898714949160668526160083750669936881330159827494893736902831230010489827862044241276137541599643141359769908615872963100778162155744532831628839615999101313833129571372016032212985186144273253783805306549109794158487526361833069346244373687891109998384208853707804104208664250905508163078651939259356203730353180109271343288257385650219219093528010777990305168479939447441865207937793838176785101727400709355165481089855911496441822956655476501213522724973453220728483302488135594759600847719107292321909485421123471141558165744295180697902069105999453387732814085191859905635672359493688453127217625160601189566213296255541365702786146324547274199238984319796987026999197775120308401536171558702452005903160602785330641241482420542820620922073908688343039996057691276397987049146783657984234168844534590389511886792176786321023228311285311626846911452904679308429915778640504690637151905788908142342936483817272567397389172875473944754808032194393209314927518860487498607642313601833571286568034605193529603142091511724480387457981164026828225711610294786456333832803045569316698792195447921846972141376680584645705297781721145157717564098643927463842047075744803558423031740937601558457839470916092321903926739455023064048780216829857770517062143735056002220697651168046779240303467430151338992135044491251870011889479348382146527282308534199842138634192379427503243393499950021713736519032544994816576525226853535844627768202648226776910050818204634118110627550252628344993176407095858895096435951474567243970192648664847857852893290627929331779764620557981687868342732792476263885975822504106431622530173878371745018428049842216608925794601053792564562489753554229151515411954954019958553338586681462902594144872670772859402843269403166534398821567055887672647097619228821194578224353735371251299250540330271136879140239983352713043634881222867058545595014868122718115845444016947533746379655030191166371043048474931440281709925886914787803617440657979460212512422939274605482637135356072166893087824614493000285910575718920222962262386580959505750932849424723253365917308911388990966732588549695798233266335451741779744352699995199283121544243606724842402290679204544222170838585839326556788505696505548814963964629347952257063178747656048339386781853112855963051355093970128253152384779608496640719339420145619283264405252921695048731727061370406681052803268233315371889359824805266017225592886358173593765480613348313600391890487926856725383159178756801535048319697602823167297735393525964473299872219281001237525439101889686940476600338793073236572402373956762817996658016543896462317785561585156855157125177992375576525204219308575875990157008556861387900878011016819879481110509255168650417248345160422990403372875946937892154910730172429965428236504753323344265154908193176439398884987128640230663840947853798174778963318031306885946801210415328607140913695102758895586966471857177503121633034531841026662743083673819231381373586555150059478610304246553446448394329030492155185699717736969107579411002138045007290128029359117328668360947385103185074633389271046112862833502632730074179230756160622705888796057835654836057294982245713708483505980323931636510943292697138521309348249642706707681428255748871456029692786830346983267054300841490682798840691242722504822636837409986374378447376561637745558233873014565859537162529046102343104117055086102024196321700807149849611847506076649078816666041259204529962204285073447945141586804671884135741425866464461420481320240128232892062630903129550502347004812807226099827703817323110056047854435764396225053736668429674547188847799838741703955972723975285988194344553324380189211242743897978056879144897123985927862951717952503018728280471907942034256117139895508310872798625323329994735078634730077295938282535295557986127168684256187957289519123199945298849967571971354362052575984335786609144274884461438309179089044600003844012814518232090571053121823666661929206880087503859385513442240582794644360628543319944381474472802001879232468794650422040928511041103055578467087556569130155040871316262787784487488240430356487012525750179405292048710536471071735659848333759582216042393699020527371044357935142435301820011873078127097982768140016713278852123134799093918263816068296496299977236871150743136165332208205248155281048257313288603364307517851068968606423441739637723601806913248704522070495013363234093369625369782242339337018646089931158406644872415645018197229014926823909958160892754494633983242368093816387348466308158688412321116916080163506258590761262271566069985051613156150790037871809159880443258632018220804772580710293380730832783742397877642570530791106492397269348994331846725208657686916602524759155701990901854572348073576630239513928940068762428501135535368044723232490749844660927182543216626948759294693722472149233424111915695941559664240329923749339049373544225148373624909302059909466952522050987044598090223055419236820399638027107586773191576680739113886660801985053288505356634277679972501694308270584193648024819527464278640028914306018100162207233319418818273586689451788921007483147072833020053371105642711816821189585492285002618385928280746851923745149836493309624060215588406279983715045981318501696896766871733666262932257194173440026612514225485969958631694189293366629025096399888662920795016052630651648770738699924391899082635403704151539282972371570346441350212728769786302039122718893289236489769567427533717584442286085484770069173535892027959502653070287965930304743290653642070511629652188421072557669814823609550281205718646143068026913174795764654249035812795105294356275049778920235623764401609784662871198542509491370876829328829412426533363641111557891323615368181395440862882852212746074469816230727955770205252840912468433162895664520988224902188718101803648501030304377399489636691393626058422289489433814685885913299813619140099891429729036337643147561474228102993243357820742751234135170460444349718226957621763180580112188799492469084797981841199671562724040036484424221384693562161448541341789037618907434495376537252675428316873842839636078750427408326381610338474387946466010471155958207284203537083041964807453491739373658105395574253135306409010022565414989078219064613617505443592040995234526275305155045188215523070246941472393966730799871427681579983529843961566100306199389808815771848519334101987406544142960282246663325361477739547784645220744810066945105800368798977801562911498434428244745821078271093246145407955716006099547469056384647344860669182490888115625631909619716949017603882220407773741529042113893135914884820526038162909851652633526062461518103368357509422846320043558014570717429370893504145442767328065411277344906814457677885208200034553683973843878883090358628161960502186960041710546313021951594538626434073675547540760490747782951966564401367612450121686311263749694940941310003073674920511210460989887063272129101253907438703557195592604840767858213735139954947376367854974170035783114677891343595451693501311532209001120941824353112035820330207857622776598525662928034254087154280944098090417123259328184450406088541072132922626804215153544274656863344392419409852760906053880052716014154664133466564728181712631782265771293637981751452615648343285672774066773152004735015989169541299392248640409409494142416697907341256122781917337274633085625856769169923107851086724478716652907361824595083748263737092120399684360829778234596194936868759786780674317050861373207383385655182815981087597057325019603998611567391311142307081571738117457228709421907899012758070000750604635309910655741962356584335179259446620565664401353254168530096533088979945881851393610221768278616392942060765416424224484154441903807974668734364019888202041767790786152616822324309985398543993120104081801083770373197953322815135322467209719098636836040107415957078449043347509323841886936610915484368241439214086987818158200624916515250685212360213650254448697637146214117655170144015422848370155775603970296354764214949504383474758381143840576780164531049391773784062202868310934940891194674159863183482130111568908294862331953091690854946862707594531444809435650906429696944004176073461995809563625829474166839992204733219600970096176071965155844852841755043687104689481259902517570715726885726312417348798665398031589025411945512420365986816807135596778264071232824518291356862669944321837213762138402924721021266035602174913642046455589287704808813960254171917564784923373448900600515872934003891545261224883544899018354488483880270610042485716128542240491387218573800203204432100367044291088067505289434923983925695148855243621957934159075106841218683851614764097176648204936197550412665020867511826304266927943580827367035726460393950798904063308669157272953842037071982955531427808540884186322670195550871450511955021377057535872003331702584077261214891471568444957793169791698470744663081319771126444542796799750975350777980713678051196784983101400491396054309015471928457278865824954149686372598304417443180432188645487845749788176971286661079947570132914253425679898516281652493382628759328557923787131022214405113432645076090626043963435398055261244974644829434611397641167341908042246891602588419678207719918556029278471634117325792269931576050250059235563017938691112567594308946584183251620636995479449999079111181477146430388673572222547369453188871013206531087296485209983778025177509702196685985564824100826496212962936584598848564533135183217158479373228404595296088232193878514900122128743447846991727119020385219530722869798656411171589013032798417769865710016772202690376385825406168600988671719537054752083261386221880395778900297023211585382560431972670165210017172275072074476753013926365246647877858244475280693586301028826162812864763180214716011970419322022422176408556257124531515430456500080244463262154607845354445314433633811816305132364326963733405713100864804177340256106164012650511557513758145345417976646163815367319414591877159810723741874997997773549594731822068033063061198083906768138831007375268839319021806731519670394979489534902400511249294643209627213584953971001710719963795696161552209474694042608122041068735624079491820408622869890147921818613635910328360581353270241332695772525444559785009408202189745257962349955207074779417465629219126412621486279086723637981335066405483223844654593122123115719998736895069106684964945346387459430438781071002552145906673297563358448663283760521695206045055819273553941530003914713327300047550265206070181196356400599296864577123939244271480381895542385910236346768258183901878517475591386312878974026441953461187421214146744439810475079298472074114439082642723734384445008898819553757454347605490378223942108034339981033505210070755953622368134424466091895931642826537004460103790180768062849831264897625441838802168194989301866602837559590545828157803078105945016175364182537352059193349330772750954843302964594357348393765818610450036974611953203120212896125906785447114019272709747393763416659252104976941773733200651433432468805510573690721253649498855986987134809495221447597034593521821767424755467326661068378450193008636303037206266847382226139194189800554750182219490227456108297495974606483197464663121248985765750924289033490937114834532751096575815814518537976673218245146605813934853378844094610573261938982128829390651138381715901402906915915535139891718638784584305575203273518544484275224818075613648083862960595243574452820074704147425538173589823432277208846076934149614060469196087073404361857409435382331603229326446260451009626336059066262502505358193630558081314631491222298323715821907482420436800320410589562174270081354693242099427916650299886955864994221798656084638066907659330112060325737599327200688862255027781229983264235783597411230021744717451508300663581090973565244341572683014316722098711210671406859180826509472048011917440979781673880656583435633026419336028131615896406318077638934316227353687795460761316204189611833273719191257484200070467902338274379000077185381364049918743872903142497128422552001579797136143210123799713202262386937489800098251956109299388123882532644682550349880935705236531112099293848226234897352430880007860455483065323754542493446078005752680008002293795539998687802103393060636199265879822377784437969357350715423974312293375371102609274528709281669489356393320570256555999116971090958833712496713492489587427965031557830321357849528974964422004994971330635708014538041617654965912117227675435666491776941958916934893074317097288290181981519697966039252463508428030820456545876810853794560329932113812882736193404890689677850207558034165795143744266585989973151711133340379292019893639454229925127448480748101828532273673200775032494073316859810965399638413521253281874498147042891811120785669914874751685799170726593985323242949375997488595309095264556983665131355446172615590266132124235599635439614979722955091098841728575974606612924695630233826700229492245025838209219614656642758354685739890225345613663359362511849310077737172614227829363549262660273324245707579534796163322306137976689327159497086779585654922576199757083018792171951227469897538430378840361897641967160410918727862256257809498596473118644674838704505262750482407093287136180310648369694545235377562579107632466187739533325619543375236873856020510873317000457368514876096291444937006933934283121348647038291975870406598431585042460246265035409495284022584083446090157156592698465340269185254662939586947417827856314738066978534142658765490026056779729061487032774710369904688074993106403277747219500765928756558054479992650819139168200445009103199788554233436879408207512646532187783515830878863279001904586005432882247706702609477813092815719487874129661818989943825835035105332622411044803428385031906404649803675759824851157128881257325153274597853026216633908524184522902109456038161397779006784913803503105759602800797777516330232830203427129483738891043438816815175663429876808633727834409038616403312980600089803583020951779913947264495881400717313890959250469802182717724758004376037492704190474825962282566366187586475025847530731070030657963293502565519056995993876384204873064568512734609499316829188833385913363104771293916058615628417631630859137080980558336329653848038549610436851168359402780835140572773701328863479292521059784165032390646339240825187026858029101636794628154927549978664841180679701245092083811884621483904439903064420617233580109980521210267766731141260557385175339246271630271184878313253558792094413341724003388938110417431220452288538609523609525615789977853693805001754774554850434860707106074264605897858953405394965822530120916710676668212138800386083246918370298839616772018243268203921196125322312292367328305327882886664509695914594215169851828358083583992076335041890140674982924630846871559742372698491727678413633926353718104863564390050084796715189560167815201329697964169283567728444776105184522204277552413363701900817335287674925939687724996040938008446912271474209563587925760422378515871106868787168737664578553632888566097967841464750020102632835230090364501249222522563549885781727904045354542782801887833441656808612117085987424930795248246468624785344196644015770795476341367808358940824830373659303314652178240124786179907939935694526673180353373024416391503251075485437615286421473556060922305496080337943724741240020292130579834636900168363058844037307406438475206472777864726617326927681726145464678532156491986036711357786557973823866776096458487173961850997428950210931885123271812792385927465994600115811355634596116788641414705820311078838321573424037416795886166235544721733833602204727540526227356800155572158623473279997580706725769725603816567251034980502290955164279363789975621334656394880094774877643399465585685803803802669649678730010334664558322937207602622452350495391222719978211470199860230736901933026589843483818549127946667648589685780985451487215810408667917782174621007620205164955240311554807278000703133846063756742064353852034145369079693353827771929304090644058399316553415952389937564688478702023563953655057160765769835783778101466873557227595175223853481299055022667610674503666635215893253787685533104492866486666156701812306485781759671284836332179617288223903567286409510283518188400302240699517741599567428990395116708894204461780275436913619425122299258428079775369653672621875422311739115376933126286222192128890751577324948660299711328720133556346434865856953327990784193841662685361842897477195857946475491935729975697477754673968091832647198564032706605851095880699102352371200723616794009882288111987080264999829185298260277435415944839980034077204761213062082582187901195999513487000331287511381509909615662479545119404342176111315472040025349422413032494343862656800526530558085850234560396923384913313765015103837253069370828207398782825151586428954528648986569320811630006311317978480073021310034458100118490004930855805755597493139348518815935361447723914587038360867526975123290357989401069595248357273758509789618879418330808528444976819506685977122750520372665270089554634684173263806526537100859708128086002286853839499878335377348842355147085021013035403014502176132799661788274652911473709149528564932506551759974417072969361184593083993428472740750464615437310630366383832060699635496402442781427854753823176289145521223632317940609980683649419650309140861042113823864262804130260295224880991561751726497732574803604584229703647380349987166628733687921712043391352597225852801487725636052083497050012403038577199619657685291838439913268633770672474610797722143353810147708109689268085347199213373107901814390041082118585423208736597047829950281467657795319216257564489974353649003820310637694083692448061535386055991125292108911600658964307029444128921634074423438717272410261228477290592591834208736266256159053981904765599571090879385313803876482326345823427753362171707889204750766330164572638803560851653309136328409967782076913835760640856114865235424082596410540392749268860579436459110725849038008573445778293818232938215346487465524579510478961355160923643708047106585883733266022536502015502029941020776757920705237830638684305496960555684060811650497767769178810384648219264568117527604395648083449167425413909595698244386044807672736106278905579605389964329339520870567238429446479001147598084495710338554431193254071104209481146098543423921219419044375247184730104231068092433908556642658085984875524784475957438684325558730260732318783254633294960863413031984175588756466038849549724904071296117692917586949454618549060460779494113581949924253377727381712879377285463210958035985503874242414801669844439929352999831241518194160886445501860254036127112825571311268542199813337816872611023742936020795405652489283537680898652798540058100371693228360401657839530780966560378323832955907143605663790452917331828314703559577777739878789725729701956946774115237291077294165341564993619060525073427531881663253304831213015169466785137792970325335166910786236768620288765947549861879212392381997545090384753109121131726408895595332478058466615043456678574311993649657894914418947270918122686093652296655527524984874345986605903933854699429582323819284028343813874903891378135417548507260872850345952388169057464752438685688583252132571509869991648650131577848725007923597018093076581646176494990101060322019810355676413379872635298458541876432908653735099198657971637655014782655260524350967200229243161105946628763770202397968624592424641621005079938918626824199153658601081735913218724922750857895364095919269041194257543831981342163894956842181748316133790597891184466833987365457786389388699851720030781458353031448063735242642727578015365791632143610381783176258756527705655321741012331781295515777387485351646690781141406002073106748990811437346796125874545850306487749582330627013406032583508794928633435215290807997226804889907946052791894666882887758841288398129648101332246181468519143717287237632419250218388573127500953732005359541973053991705253011698911500207348953763196290231526351723819207714939340458221090947870819435629801430543477690304140801922458368759090450345986870388253529653457050495408592284308831280546467439949005101328617498031969934691250108950104229846383829627035616021016989584666723079118072561752530255164543336232567934773871344601214744673888656920004598648655618295623703378905182595342606043351654988373603524155754693616477671936764348851889291418113674963456711455535406641020541920585949409043232950787433373468219767853989331078876721251868252980840525516331338202917325932457557995549207183415038423693657882521846570990305110127685456556128462406980576214582162245031702180976626214851665214740407480498937050680662079066810623205272737801279335935973870886711482494499094117446105742221671739794881102687850075444343042187120069924903861228940889838431487891857282367704510975453505176123086959795208723929448435782954632019349848586106974576254050767730792474126942502147224209192286560586084773274019096742739434787911533530027000009627127177747014180718568611800891906882801653818031581680958848765741749202121501717725750252071215659380604242337379675798904484199944464936869856237865565473942172800019485069271339548460835040985444191168201444190186073521519714453154723336283060679566019120415721557789939590957827058306628082911431076829029605581460250316340934836664704517940527372647877869498297057924461604496620463342842557369033093512932202413925061827772311578712095732098355942491927033703796299151832923174074171265307086541032758933265873477582253609060600119935169465342411645724458151866107849687383425725870680504161530129995922334616577637249275945477160819156709088581983490347711422370328512577041698483470293068953615666700893032129573402554928565744234470681307791083134020180264077342004978723990717498525488484597208400267456450419707600800982210833467895300949076917344648682511011025242851343884992164604573375243876421361307516366447411274464613482518098403529370641769736851957228278227963025401076418027011633668252484632344631357537502082758440905543652722761858150988012278856875265082894908198213245494619751776070755295180048252019095767597432111321659194636005743243232049606235671290895876684503253468848163469178012822001064311860906369730085711523787636412902745052343827399481296667830804009209534280007209389850603454013335568819091194084235009121587855573121657303991951744915309202857956713428383529779062854533155963543986257904218532692083286020123781457812490490928069699074482835444204221615691106780047648504584565118157002228933390480368454685714177132447940238834937571546886311816960052866406584438622935128818720360255237677872024814096755632435673331453410043079363869339019311653883529658251765961181211447958056690103743628298179139719298269645880907202731219891125623964454174212404768842812074045059717243521463688513813962818044654304979707684958194164843468854358645521751972101939341627443821335143671371800056674263405001055898026910362898110220156856193565905835974441348433806764896003598633832068375600714995842281365050503723459603502094370168551294868357044837353360260977886446153512643963907595451873103967440386347950702968586776775453317954822710614046742059784087734950334153202847606700815326641057513015618731013709393280309288508019554413974227160551747945671808506726473038759098892853863152382069808619549701690096482291385702158115941163115842892244878335759769301742445219385144462376652818047770305155110640913754831597055870989738341832492393885227247884911413132966772436280402982989773034207131762225651541416935817008435704530099494983416956336676845155179554626733976280623834034811706548766676999644589450409022641528739051504325283575141317765873088203453488054000843614951484079602399378193688620600771269240213088501131363129566761432596575928896121801832445076743172523013653117213010849048910865836845734451880082324991620825348172687587903761231445112958590346497562709338553822080107043199358140379524115880988374143527543915662409386484314911017206962150321705293929870027587126810094576322632886919643598168353040082117367358261500026992192955966531702205786178543952264490859003648449737737164614951768383814220883672860844347771861381493469780516224972809586321490708911070646751932598034653377909409886485719696214221593660272416534662864031012108326418462683980377647999912928911742878479683883959624567428968962818498785174100128022340753753572134215108731153628435318878807602923959504893543858678952970506901870723352341133966903405032664752591316123894449928028127943642311367353677839861838113943677029214216480466527447274574946667579423400225971477924871753770934769153682324279704900684151392692222062775033417573665520098514571671742455110652118475663071839546104502145864839474676894874928742313092886593117040976411754643439707248617989482399608809831223369886505045310876472027877606285828491035958235488544503221600263277239469870964529950004377065672457418012653482280397360863349294068068245277486086348299599708133425660171455928737425356486031336972019603509204781080544714512041942000416181389502014653118841298290113058627137826886048133021372902673017812497593643443583308568045784799073535667649606378427308627476686242761787581749007577583057689151238089962177377511800420719979194487591734402216666374776193485251179537173049297079080930012121582781880473317943126076936427548561233838909760278004248375007804342193185602973387743963892151164333238592405840904552457396625055041721715894004506176991339225629164864760701360597510354738873223445421189992458765043839320465468877121011462414010913920761306054930141665841917243159291342202940455480241225584726781296921800333238472621091104656348236333476062488755069934146470724890240945796110984884237650210478672468411436906078759758051773781661408167777693090843644028826631119836445634491679092218621741208648547774099190050022156889520763973418982832394217441305479145897494174644274234060341747856657797007225012314034142862469559487426090720330153483115857613501874391306282655924767600074181113307215832585965730904038490880127099859985273494713393838813362508464719779272571765778031945343455967644740028552928387291811388362768723990469095173509092094358742443828360033859340345341981414838881655391713357921909021957383460589578486437019250743203844947931138583074036863408764287368757873517458820892355455150328903477073680721257989933224565371364357728797935948762734379077416683472494293024129211737411539969583864033782484762345010739830996680058410850530231268133610019489923782935782159201244367186951581037784795384457987505781189420646913945099781201152333348290143021007118875637417786575040965676999506572668082772901183420453973823204554943555824977332958059003886935373569648222383630744514972956851333678300805653765501030314323891552999375233317035414735317270224112590847066213951778818523925332323326051326346799187115377873195401709068547245885400768568529459700056590063759766595408127708572297571240706132803517187957397231508751146048895757339190655433834436504463307252198363386100761557771520270882517244869779495191786205161695098057435167070219360118711490220235691120991708899824618141954706941663590122058952210560225462714218176595206936570165656929966814063423507867037741243719690131624022326825758184936905269274840335117063234667379014449236731268485344012412670877870548448387354135892120154910513227335778814019868974089721955805229170980790059539249518586715558172689851096300532355716909095850801026203696770207158462070670486737817676817842931755173639380754309669802149779404675381897884073597117913222399773789850264975632538381652997431133898955242700597515458691552119190410776129384659808500629718956720286661889453458397713332352331108500569655950754419093646502513971132029342496020391339120567985533569900478479602840353232552248743511697505522474975581536675806311663382922515844684333473964064171815381874374723975747027723268300859026389986544617346679596890206965287345758383202492536180891780323111766183298616854211239929664100383133299119662981340809116450129603900825640891895948587675035020284637300154630411476359337742121440439833211002602775699618764407567115163870068682603391275000105961241811182595095824023770727915847128023765375324313873011863941242895832293387024799004670463459332502526035450980542319129949138030041981891983761103720173309574697485380506212293515435930046737083897638149042657353612599827917206918782739902670158059257939435493400698403833693975416914775320623555783450941353245509342101459448016785736475009935850825908288471962285260173190751884154787110521542322308877838347039022277814180738635184182294647980706452605587159371637034132831301931719069765322506694931032012695680363927726258246971161807338411947146988627156072659013758486876644300952815600857282921419734161078246096575333141076916590748318381401851977023192942708404270967912303747688194182384700669340716577492812373537875542639454946734314064565367503731818001883885125352813013594941710560739919086484386418937620159947269529421407963157573555899692319198747596467880605544166710483931893595755312354785502706579069012872391666649050944625119481320407576913415326743414268619963874870963961326623470614328790217353485867475760127510732750444288422485537371112791993879776179393253913130316696687985752537403419053075685827540853054823432941216130230811631912624618908824011385951916525988618182147877432606798860391337748982132403166836932957643516544410907744729722008378468517094535458914483885834157809589793874615753955947838865885526727419757249036995138111196924293782865051763465634920526871943783153777087859405174806482114860644673741694067398516769815347523031247380651951001824741246110295550208114738980407173767221265175133097947517247164813038072575158717477104399578100641095219375760033006889277372147461760288996364965886951634593969130324743418741473152329883974934171532035809200030665302225373146755276812684055505013688077875822647905321254787133105796359240269960233792404417874770802126612329017599862371794513412638841897610905953169400009682943410554733458133097748265123573098093436241491138798451043506866814813266586143403423194035153078112143973290367684987187338241517006910883014895475448341327637825858863320570705408597044979095949899334432121298549313150095322608068583771300352755711897774779321192966464054068446014177757790011034813627970853705428073188134513681478338951980148645499403199217515744182367834465823823166614482178065255375950396257148931155765799072573976879280855669199149754470897619993677935445455429249502809354970995668186915459090840615642984544430427317393477464200185238422824467413109483612272348035558560931031028263897637201998277161487656926467228829144759740235217650806705675765467839623491538540098737589120706035812529698736098448844956316501421158423748919720142991527623496699497222910490769535630318347734565112829848115265466875583087587774770904416096763766623547250285611253463784936831977036591115735028558495868348766286563704126235955081530376050139358791796250947789189189141021953543252287439145682094802004348941403359948807797319283139410607462896515314349252039047545242870689970691572789113839725709012233683165973630030908670090554496926320215575050457870836264433067183222752710462479831327252707633070645814435318057472763839828696728594856999294982967226408892368138961828937627570169920346023704980864678644534212164974187651589624880080497295501393498282279251715110085378091925869389894398023714340473359722413019317823978118057130716422520629811757675715434460438766941635328290292110707226561535662983055978720776971970354252024281692887087598496621316359771560076794099789058089815592440843150859534545234409460223783068850815122491805288883878606146627701749971742055481047074129081142021259271365046280890409399270359888854201405846190769686057441724796617025328169042925047549657734623018617738331586867895348999767588508817832951909597224657059409185893283410902915609681932930413915401420536292815744675051990446038252163049780716725767576005947614620893530248372902410441023405793775158424091386852252211097968724752040580084436818967889381322384710559284350149518051023624035186152341693137952324530981867056409975375840486957816970784135704760930587402058287333689553750724288434462144795906524150723626669830205705921139310587573256331824602616038093326198509256598009500369854479216318241413086708708961708822820707574072163427403815735979728881719633920248608643738688845112332370021010583036835351615411187771328914102203687898920019020843344803560828181759878107613634711013005605794024710420679379745351332470703997448352911748551613655049310263278870555418382932860620279783170926727322265937816006558286332521977745399966899923444628689467307361517536174045330808420121988285001138264688498408135719183276361062749153027145340373306702162310191602498072547304105590756750395566897340984754999485459326084525850440454083516998497774545496892064590910104190424074064402064512966867989944545339016458497948418790415554951816766900584436751619005391051518013138607671036797355016589552871316494247837231296056341864926120291996075940746539643877638659710316929362423149534133436574343625796430849677678791354277250530759955521510431995398578731557130431313034390372801842502641066945983991471659947039696097341638541358749030228180529717126167481082640245776873687057735112803051847743282759713331906453530435479097776178789130336824727616354968521897918354396425700470843230520843319525861693013739930566067443136120645995295386464740851149039719410611417781367203062146995520597292414440119206714726556655575445298896847526898472247582894100811114783372544405590430833923820330193046551978987178080243833957581730455584094888285212055608051725779281094396900103901889854542434018878633175575439143986201889269828152292148869565104288360981365283475912612765066298551326227858106969703546626811590291334469047746085098183519719966783445381625256470257770181628816193981123109325375011291571581280362765085364560455826717832828546451977596986046769023225121267087091305896094136254949603678716785884342073775086927385678170353577838751961650208673959837186392963604653514235711123872472573610032316347268505513234885266644343112913111335165301382243539538660553201302785208957679118738883614408406823865077431961006899807501539847049976614098834864344440445048373065244657531466225794835853382751892006859623897973722356932296826665952635049653344433747824116731400209138979562864515329323427567612321853201615768759400440630823229969717872475509368269573799457706951815329348351984591503836911025842408488797246549012185889182057220910274697993826947608595589128656908099897278830804992983523753254361562829041240953966116627560866336219889408985389369095524389613861729921726382855418111267424520058820599654340251876518396387558364049789167670247639118785824916073790643313624135854562227004034074385719066731695614931615924929168561092396474730708770458942628309101393460061644667675337847787120765962505931627340612695573797848204767493386439076214794000191758836407654998917466774026497980539629650449472326988840508943397294971633267796588332609356362970149922882867067107221982776879597123546629212853823891730604733552015448038623434831565138749948882600088153635996726347939873997596930219585966345151512236518850843923751421645804787840502645582089450493300709410864168297218611222662124677842747675795292517429832066771629614502983627156555229873453867664888097509447036377459367388244419427024200199194763854943952832217032271296644961997406478943538173185191001792497901158207102997998830213489991818829401419508954171133348679973466487409850025075447717742303026085661320006627246766421456921944613622315872708090105974734953957119319921352741757157233985776214764268421385380454070203670318730461094093220126072815932925960528554221769605096952459063348905565826576520935571836050563690337483495538568829381970367503503879631219264444336159580894697910758156424496174613837591886219959052920873232719441730323306169486547756940853097818612387563092402689381907399777249432139492441192889245994953577855799503050770039420902254996444055389075048282771524757342479981321519270242919973993030138718803247453816136576716765351878715552600942136816654550039334585398417687147280292439521260447924853873832552719402485128533775027233373929504151031884681798772560295847281327954723170546972458164027875184527566428328182813813555414696976692560741493145987864501403934470823842585590023061956538514150676913406683388860184108399021701488200604938748760762809663014581028047446980126250378005412771350053626770248708632596437810957043857002639543313822062080244283109952781983811919227074315153536206161087509623172896753749344101844160348923422731936992108346516110311297278044628063538693986556487199802843164913904525891571266789409719666309642344690784790412670230055127851874084205860038181101158130416897934107684409104497361014952007472009158005646913082197857466604768720220836189091106901586684242846489928117552997224031315277745480538490968428313564691739418512306472577763720254194683310903634622852309373007228127932910433806367156325519716803111213518528850669389424920039229019692583440041254935772783821114399325064281333555908886314718747197614511581853147643338657304802974285464836131090912862207270906030646082577631484647675901436469139152815576962273433241357909592142558313204082594173173727924443094005732779883696361836833265271937143598772563906748469379341255907549872341273456474227890066460290565947153479111578452299647952302287947955805433597068283490408401557095158722293614905933591695591675852593998762708844405774726651206327434167646952037176447506858969095144950506115223855942927607274144270282261691028509475777250583946662593165299292190238033305547725622518591206947581055921277628896223509712057635997424045934914963536938556616803045406888550182121577336697808478789695808868856937783227731901766628318717172007105145559859216928850472727727406374571932702656295390129298229121871761089321600779664134221027040052157316580625975355219937839904861567430127250399772092453412393914739858322617777120304650823935012095959466556920966060295771014335041505493649163324095556454832535612332562795253690879779282218208686006170533567448222434424020222143990894586662559672307444292094843247712203393242672552387509516648637579924348931004863804932756945322913519291390237895154453776647273753838788691239848755930289821477994149623518365170082106978178438727040873558697703656803938633540902370867307785990321138868144809395903141667385717259734422980531589150555510206828159481378871801093530043603820874159143130342662309461286455569119193190988696591571462919480506489346660696372973433565682149615526919260213315013299453147477533835240668029130907447569234180382990390438610447354304332517668185304404120928135772853298453721790096813581615596709920019338323570682663744677347666891565506673708877123264054157636117595965343371236262692021273103689733411999252261810122510357645687652596153661387338211907100009643628312316957944795899871406042233431197074075191211963934000952544949133187874494733775517405871804879495315253861020150944352340834042327249687136214408654450337770094477289804113798504668928458939125569589252571484698782636136452545502434718973833074420495113227850031194486485108583518945508430539842977590051806721628099894198311167900710352018787982200885266243333973714792695494734246904802456838575807809670872557819953206445839240717337701875200040631233097937329752546324860283399758943952041759698559947269365921908805446288781159238753662608004042337430768549546177258979880695765301670889972548698445076670794655846977547585530052698603676736673590734751656216026955874913363890664169207494161529401872506313788426909645482959843499088442075579278636713465872867295461600168281171973645192264258301121457989852009410116333228632705921147000868767972897495791545037644382245665133933217294009351165182133841722844053930589553212833559948860228720947217173360699638767059081176111571848869824974952249469548417825952984704873562190841194270411903331232031579299459225949506165046473721349869096250908166413782319442111649722708864458597296077265889444172098592670651488967020506793503832648215809361069456137171747903690662242115865378230763455269452258186483320461710237464905430107182088915791890010677586989879206200644688188938899920653344467990859059111374199607125489488804951653158408929023132771801719937087848854503234522037968602075150295188516312028605697794802792515779522880899140482350002685754740526420989407710402245165887218599703248815514439511049688776154177489025860883187475097374112550640894325364595006231356999059711132385478445408158489062158185309988955839838029367554834483397350190296464874955166045006426676533222144208076328274688181954380309599730576007362450001302985463854204427135086374568640721413891917082692798672934848928216743489437378157052800397188106828588933531180717312065493486959049997906326833898685359893694244356893702183740434224366851159614021370833512125770117691049859574254318217152080268144918415945531229596927698381641120184275898842891629682059103424015981339787499571660793465480403504560897861987231702156585880961761706288426444026940302579841116787383641359875301268812468885502352353727240435479214727941223084775570389015553069861505277404684518568571897546899823202237778068252992030066502058619004907892733478890184185620818277325284205053044589279928855863566195726475161576881656582468950717468047711690518734251264740112324350137873286244888630291534763084628119684579341383818011915234194343093151073169474062179378809660015912328544513107687913520949769415211368519460572043449291772195961137130982952672818169104705948699716388330825161530908046383843609745550471684149328216173109869902994789844691346355059678114651801955848313907689585506098884532398443797863923668073627816085387525580669374962243683469227984353256989879748645026774566000494695754302821197687368522445753016468810623805486906866264640178142482970660886796778123654734168479613734174074645494171166457348550915852133436925914750109937085859485422995824215068194866648164659370852613256724316140245750340659407112398989991796590062149484692176851366269555031544657545152234018539814571660715071922247580409991681752148079161414758300489356128602999494817499538288834504359408427302323177800856589503812539527025976838200885761226572807099369950652107983257739479509674662212432056137580771852639865101535713955553015394669659272109971120345906628816273911471973851584022596586911023115855457471091150390334436844307480000201991771304306675463009477355927407679597712158748213515278126017676815186727902742776538889576336158415279204379989560927865016968718365901520941755451952651212931706692849796835872508012211288800849580355103743012208155670703698714477080512050617899076812296961171563783275536906893227872398741796504284590152185781987065106781333835954454381199088697647674987359239742860934497448115295525017230953245552627772864424634396796451461839104264315546408078543611849349192964637042917207224388070644443813981139783897868444972313850534334901063954535479372171081549791011280441715053118722234210201869936901025619936197564517818652503780709459873393128004575893378748500583282985874646103066876026874963621871283938343677388930995485046653158858187438489659937341955382258861701757451691853915856847161454860227827807027693033994585148954106017505660542567848229021824945194452878501328293262116977235985690634635581840432709416571051010481961694070743325618294123418210921780382839470867152622523410511945333796479841368083016866103510366331103761669397531075414664575840660551067374176069642197967071356451751359202602713007015441305767431905952105171671159296680194558162889255036182746046806778854745749432219168703198776099564088300584279149215061882110353845519553884888484352191611814275418473936097102703344697023135675862516502012302447977684309514429262769154710144264732963749409527219036393838072075534819898385188745669723497410438879958886202651095865714581151830091877480262226988819276934770839313373040176669446542113107151465412853980900579731691592086586814544493192617155957591244521680716265217440945528392184208413618116401097340956948471010246795577732822328014246840353651256222324544633648110168751009285211004729319389535553911209790901185807908314571692165326608326259203037464279761933477916980026300231485660027343236355683120263107583027581537692986972570802607185811081900003770437131009810784665251408559897743912964776660989381340528437166905716224515368440596858838825549181578990226232089335929640637518343167869426908129193205820049871722493577390571708633796355739822348749846016846054845809042596391438678481035523203397641448668802928098721225700880928061958406114652956880574736171453036041651301424254014769048647165286213207830728003965203229889350635678532458377996683597649396920589559812543741464216632213187894549824197956675658476150673102644281873633822536704355566460120444284686008283697197927298983575557201957046426155824431385248084717727762169363799510844778992122943214073107809671722918270232884284535534357715398169884381840441027527848662761843566651323365414467779795854641156103942749795430029997986585088305254597522055123703833708110496681622942819444167598285232493160501027832438479012364309017838851202312780146462831083493944029788736063549471414224785004870506378135437905337835990369877934547191791347187370495755991040344062302303018424772988954982956038984399299125694347753386604422656287496723548555260359116643202313233448437082749497895737662022366890628398114079746096897538321969791043840430680519267226504494319225928057831227966762068047386121467010122017317370120334980010987960838618062770904236487721109450699868106486397514230417514767635792094596757673544991281337740292502270509628980334785247238906541563913702755433413121343256848778113463097766976635298704523560997814295380141663781789108047903630537046436045784346221242319937272172500691229251538880972293161768264248607141667462160883662170606777862351609020620383810891544280478955331505291329489516592626038905780406913647460347523913456520721810776211985130894544759834426247370887163317922961233403708178124933233900770012894655682495881317512495622222730553251411146381215445926364771225914528631685174465687884335174818515279420887823568271511076695636849324942545710018429469365417656720944690600170611206982051062963730768190357493614724257088416611178900024331490216377920614852458245339523991742924766613209040745341863817979889000017296271015937038099146032913339146009603484958975573655790255131700691257745433956875319320092261594908334585580049424051128534497956532339378147971699499670045483401345378948294130434977308258406874173967599851548576482373053755364802765182068681635105637848658385524685209808595981544378367238922336525468078727946354610605566926850200861359934595516612843958147269979868055067200156120338106605659272604307526815436497825173818103544974486888030494132160269407168343787257145978973140948537941951931945234146817961937089649003112067459681445662627382846996726902832203308798229983417713819096650549774739660438136689061325301304462298248376699516037967261863511013530084659778819065163821940943185404337771055868227192874132377899395100905055952476220435974844417530439754331241167310675954029198695839014721640398954726944040908469435582174408246388500983422198881440296491139693297183484868961227635798975789813879346809101954508148600426744780624432965304175299277284468537181664948556809551103105369894142150624112917937400584224000994792568907131865881982564829898777366353737676381501241830121680875020767521824008483141197924292504268112100487243057844206104885726408591067128636832226797965188808094615847251427606992395027851957300322103241809262239415591469738759632892241937038975853063826737136202778296504677651609097910561217716699543898649537566719933545092595226952952934591720752707068020737391221322119506950144319319855127490260928515226276185702772986229285222861027401592784941517296483265655127846683741615781330608572080154085711757212502286248918687019224059836613929134926373185837958596608230394606876346067604832259630092987393352556719984389358961237845152247609536226574430073283644585107395029784986331348588522395857912046224331100840062011296030460956628072552819858797619284918183675412157877658932475407127373482388178954270714502633565597460338588626247225513077694103978815096707021491940281625537843529857329063369318200577699433165382504764372592846883677112344630180893757690904510714263025804160019115426048246904426895623024926972540235667556675595347873774326065625717887480211701294769581644822429734337745025123788517250726224834496004367826966729412682635073879653903610421883113608173921680356328073471477176240729430559855179089233451820609985256554781594657880177507238676336950792186285632804384123558496597191865680595614422271013330816216311403898657561380179424314909074553202642419667787707590788644372047042624517181973757397660369199404496702656453473235766266015585731109037691771262343982440918588873936380621809682574052093029354774430291910653121725829124651828027843774824032694338721211096377415998560225082449405833129632136587800376727449440294725713673989677164521044467361921369451739692218506167805914552499778224109905030646483920532491523256427936456199758839720935502118926855776702514453508193715434146943061635408188897556499453642537498391478200913221216790392292211482913591767872790588283855405754685287359637780764443483359447855587561990198418748720959044901282303517962457191808415728594539840748075804538543828117879259406930818116890266949758618145209141717539251803814561615153393441404989589828660579686167274315545992570233477792696618103729378753588816203771838371966599144964847402792156056337027862959062522976966747530254000177906386286848616604552616947369637030133982885021542102355229876748999648883524529600646018949147154922709596495928507221386449908333316133468851958211285132150401816598084763154512370567266025959508068109859955786756365920115446340006916536761795608065298432383536517180558662707804179466341003345119295552357304600435920972542677880205830863345305624588633617278275254379685637669853099373680645182618968892952186664093449304760724322735627850624236574682357184488874597550686233572907828265750680570477983477670587520532813455965290780912831078358684980958261215265118626904099376947636303943001157872519554065061687989934723214406690286091499489800838641372316290590124842168244296049102387138553175371900228855112236980236635666396258633739810625982498200426867424890313829680034775755922715705857238187918895540986731725863515508128909758402594346354830697008274772726591000544435238802468259357800845067514799756886874724798204279365980573568864735917395210877295133845929631322315887931136978464235731795348331036703431963463078623326391283815869713275033584364827331035807155172037045210778891785631089719680893913090793239121899391744436784551569495799714655014676299360733218224080768910293607973165316404741350967798231684642695402458925581802239639692180800124227931191737763141153314083713192381900980906078113735172508977313733904180569471582895563734524924968464425011011186377725877841157547504414905271360411383609111107886738457937549332864368876200422565859913040148654599254727066502892598750641852436580022132505691339206052290732383324033911071376568919758910062955641881858545597867370040744856782886933523847842905191559773945337678185010047341024782078042887573242589229954784905653396431504951206903515761520132768992650276537007728949290660091269492417395441737333993405208857724145386748736357781825058064363650402444810721834169774396937983989794183937654795894604966886578329576374145515932697761456037036083175658700061712609285278701279799212041892318681042532134990156158153629142311960206630584634933006241928118057905990001224430260588223797764240321547061786689448389937564999879719023889314592082317337296451390956506280959178482974486093941006368395389309162592328004246026457257944901763683457688169154276321856982238233176409398612100446631225432574845801438955721782238642803833211534461032815833869611309734435739417208409643607739479333655331791301771871813103200847070960508512145617363562471198958442268448406178186904352396587652031834345396842306984695865074678879332046262435737519589022843796307815196335042653900975970688514756577647052539359431617490970071758789734045531781098532863942475208140276346080671169586111079248949868908151709772334883650120584949574680402371092281481827045601489638772246758627648513821548835418776150687025310640449529520588927881848641409080876139829863114857309668795320265718567349241759875582326354327891498576812270083673649179254228521740224243521188399837505177890648792526846700998147097509547519121660829319345694159762076084902310069732797014409580094288351554317696676650246408663396676256113276871824006186141219307969427097533331712384242451393129734906554536996247958174110740044664951947958681575185439460480354882429614680782512991259226528699683082306367533686700668235520432295027881333701020126359298265924097048068161811935943060700337781430315342198545523482473125913142782568589301888851845851380890540273733943514424806306545851726664470905837336379011812680137409037644639586296508178332273470592391224908086368241626697835670794053719882683281560410985967460987150083732817676624690240221306390576449986795318627631609086280355162846849557967284478004493476239290597396396635633457846366038312259555544449279581665004024173455637306086885834148646511166613715590739388649508570971129701218992444940450992071508001052345517545151057381679288323462585372417378363877363173869186283766230413544830959535603124746893895525752803935899967726443986193895152860708361784978050801431437212543152175660401809672159349714250894891319754804372459176547062685075625363954173501838787600533039536737804442542273062981765041512163342235481731502348893943785590770676808181817342989031818833110691304133196626038722859893976444123536117995599296343068227037080727049683997879216312508717226464668706691702125094729852344094598928177764348973792299027971962353004855527903020856793736414109989810704697245397645653472882149941217903571410100160633087272559433686810448417882266156802676555608883039246898657305542140161471999643937213335597197054064653843320595560335906721244969989543766349434896259433879248034645010868556226355078192121093625550786478469242283375316622943441494544964411158015714274880629362716487937987323112264688843155366369901492345253764410752210257298934143126920236794522446329695795564587603069471810107470773221141224358904698497852211250801643434290617595758507534332084821455401005178206673593316305269843566215914831994169289007902034479430128069599613843054195285448028697006551669829619828336544023938408825545007798855332586298237586969158724243382966896881937015106017003339831116320288814799901097749298611791015659764100789198314195154812372238359703359970790753990832909161714237467441060370788195258517594741204049675189273706290611658651546057377932230943434428398004483585006761310934938551138690115437565343813645415165936201632921278550786881843296377258953320335972126657932606017677138620244080624093459603832693878431899853288951475929984100243007374247277833466127123716470495074640239770923703760306346901762495365531175710978125946328237292167262291104032944378218025459584393403102976909076883878118607949236618245544746204551637040045849171328602273800346206177502427164974431850970042085414933022866369220980390379842238154663001305647058408959477543293807546925759807391134768404827226983360579116011068617814663752454726425150822542590371054382499362521580236238191873821746788362450239731764237772243356871112245135184962065795373660524819516203115780908291315142338958189126354531402320613647126070474275926684378219370457774621662956702778592383604625319768813253748406733548127529376318538182648040524324974401558097968432531853970935500176698177807975103090751673873049083495945389279134507876706721630528400396719525707516948997959940531401634547612692179165973457871493167101158117366945522675255184761721412852173514038968531487161922300056229371721355264930538143560665497004819376535362339491099035108770965878754104582518422925860783516592534240637108196195367254629772451525431182648542773749424064594445513703333882300903267188358679005461593262469108709386499672139591617590471452414481682514685064549692278701245807544933877071539926957203038114936044768123562593051716665150178606613571991476451895873007367512732929773791833220010190243806762710155510747418734388590262208355749478426328510452629031602039792109360652041585137984743519364237789698776222039447043327966080682452718800224899192902941239065870215109451033386294537021337375072083412955528731415374207755978616849633998339040217867173321151493393780614671348765667954093264190308396814519670487368186410991545387146042126963291395728975194279988457964915245155117454803877632447427792379537101732943015038640519853662303404507339231151145492319177837322598730556726434011524917292964887685933289394110443596307411491799231297775191602289186844639260103446599889049674416706095620155757487458120264094448803317533235376747778007580358485518836878797051655387307280808401457072667218494890795325094501307153091895885227027647297566090104040753447952450065919852674575701913862943235538892172735503896766779138172242358589774462478127620398635669015782600884707202993637971528593927449935802925430879239860002075452065219312307872971609017387751397176104959760374868843048323131962430010606671886624785534076402096496865080981511393860381618503438778804133857032787961563334441156710057937293397103699162918662592645567312104444930053483658724250033150177551414791505969741303104312498895549903013616836211449669842192939981075950156190550831819810517341294785693807633172756454212816532163098453914686746323120924577712921607621997963228614227190013061882537790906156262649498784303160302507548873631178047145924315256613854318005371113328450180902279310690194887175557344581600447993203143375036877320037750801985866684065160252994036649216079323235033861512606104928629171272316087683303973190737803399637461069927883830134728792867593071294720380784640020709304905222849408179201456145510380489693859876113523097103996501802200071844592646183762228786986554585697475319496455375698929862136895807783050451310422449899117963961950439352725598531172739027600047821252853483291914511915696883069557062695806100535382822087520836852434443558738106623924727957514389927991763040996233277752916974799649981409768552142581230996140671774076427570753153665708997706637795418032422336258840331943290260885025252315343385833979046641944449210353614235768557128093252903049153551237644448263289251106787264033052373388883833601264993741536493736709350249134019142376466507758587900803932843675587541487810049444392145867212381557954755829244908587496278812278102389748192866969203010243872357864798579808512275305326099799924887556053008953557103816803065249528711346729289943227026886368391223332626947290785858007223743490056351523596758525752667941028786699186390068972387768570633923313942424307038794743334822366219162927582829573106200645251224605483373901515648325435212280869409980295048770262335720434518135647732444628501706611676390037418504937885591652316486393689345096405290269517885051628885517181942147634656417003357718276741371227747236894277199272652506563887207351602615509243044238107440014338927289666273987422573384817635639558974519649270408601301354914291482474141430735660948892126144444980230326694123111358530928384065165123673631257620794140421489397489163605053803055003549311798974407269465481569476156200697678150498157749897129294792505086382470010599159386650553559801431519604323052975287343797687361809779836069002246241249717920980543828929725043310477175271470415088674933984843840171102804805931751356232892709255812131055296705100013535250903006410375108592023439431178296084960854206733908438871769434158922931257340269620700218755615922328062984112664725295926122336995046856333007880364376713639127464068060562434213198216034712939480166608483345941145065090924254353007286368468054037981948086474014513248776258762206198433285817591863573650425193477155269956683543827530951749009159363837905311697279337620081886860014925028746974729847340056809355352452113622888871480608697019165247809255863925352049400162473870301317222684202603736599872907680251140843605121570218388190486020697787748358567793705431014984529666019963119217890245076211349078277258336319614799839410964345149174532690859809913221226386399700415351773981219144270586785550958169633303699044116570098976408840236115840483744910482541709000908561449833677229127728946034757260192729304390497841142045426688117513010691501144948173635323514875424884652597444834756966564392416348883763434974462699834814763168836820171252744934089243421427301556516936000623322854079750982400872877832082670684635546803772059288474970280349439179154643190773103141530306918001958576969354515743360647732601257589198668983468384421661263129615568346372162540435957746102836148091192468156935257608514836799192395303069917764938612507901474777538677231170161489826105805716215963792617446683782232037597584986702677073616070824066735262833178679977663026022310753945416238348844500796672053319013142238021778373390699277034853175337817499006026306419304802576983742549126881512121566714095879114823093886685568935693319721061005072042150805738889600893922361605737153799375207235343981672477071436028169060921140585358770308319752867543194037017652202582613296381624914984647434268801713788191662598363370252025588586847325957549639655178634444162923420489875537622451787616670455922567030137278243846128334013078128347225624467882728081304189047907415295828953988964931484168100593676272205902937639127407118897628243167286538057500340717317827779236874298954166396195185910497881950194336185846208475066897289928887676844536738259344663378806069921905470307118230966894976726130135871963487372818143047474733869193011735792113308762508676336800224890100644809457902906465698755925701635111682307645462297986741546498646004497744415344291912373659721655378903305771525161833346351613408978055685389362606641552656282965494179446281954552905319260637806980244720071679245752920627981878477506256766419672000022032585287515346803264949460775682495173993028392482296330587410002405699999170711263034913741830128643608206391336308329644213161204357228327024739938480101850118559361231034155813735221948226561105504756325291760811566239897599919562730432756324859899906294661066117921343540446513031492579482804446091260446933397317473226737124524650489420012340271355965435620918460198451263668293932835328783574366555148035314141655023416386732009275123390796590503675512081430985599931932879242124954186144575456307753108141550739751474523121387124876337350088119042707694543544511077586736181364486395887019996422574779007304745089830811757223328595946423813989662352326600423666928840802690370948832028014128293620813924258858015512052077733384379523128468252394928933046782907329748068206111042833610535468881333153607337650074494440702743608884223159473642779533080083359427790506248263700383340275291561910474436795278870786660247332106908098101643624394918633747993294601525746584075429605887661338833553443946304058211808933892700674352079950217096129382442020211792442126308215962960537456985947043232357925077895533469470310393115514155602927533208469733763218716672160900515198235486100820841457081633437084728221804264455521950411344339453310714030893847870270377720927954412359238663019354685253725348456415860871924886321655688160793951580074555410680702916442704143251981212829333917294895790232874697931564260943628817386763176887044442355932282357384145236344944061665142331094372431130255604770824282888639665218709706370148896562833199045509818338067807155803166151601999663700973078774369243061065769032608480807889199835572905480786314817476863643158036803041776906431570636901479651773795154899005601964483646449891727999331001366908410541517669636180444488809673493858555035885903474789952498662578656295410649455329387314135588576281585751129489318237241739181021491787370552290605809617597587357286129743446744589208743439838396485693581658972140006535077601981110457039001153075247456353337460319166034222425856272484778867401372647826748129777258378478615043192154155347325059552015056027158035765599518621201498293179048452364159514243967908569766397897796693758672277399192575275757008002839745976712571233501094811860301392505847577221181077503602610212335302721400292475340904049874015901781658409473239346385885918356563360841107900178045135814028882013907330697160549270353570280208481953309135230533665273746204229315632812096282274270669256164458072015584645842368289334030732909079957389159010957424447672995990036031364859260117221462394949422956366324218629657174211884815370712216655153586830682419709348464573653440033082724289287041148680351711694190407410494967023615691403312372527142154082615258597247681852204430412906142814188109443297175251028745657408160608144737862053857120515425154460544071780237366644746084904229292181191443454949422026689713784996527271816495469220562480055290128685420915538585852979916681703847974485689418991007152279971484280405378196852301260094194253053433223612907879651242609878732288494925823735243143301603196419628578084623499038216422375500846754411986137258126285135841145984600921074013002522480975132316254693999294555755515678834237787780280390681789178665931610664930647469087904145048398059025030095143589909032981141535376370189089506660818820378483303905569680072447495610145381860956829557899261880737310817116326355506101430557804495236951121834805697456715190601206572940694625988675144198218511904203012997013630593254848607860399597711648715668030039408798754238465422448571086758150250509828191520331069206044961334994523138806958820962277536734147963909557863505374142536561034935653885000484380484212836319074969146389726846748888565576996560005481544750731503339330291962426823996828219712648300927810647946614923147992201371709716570072478346216774049400767593860784003602386946914169355595598327611119704959429226938754824440087096180499917132475245434593841682815118016972086153776549893525281628676706199342484300949620217857348504622306324562129412525000771858967542142840803611027447778473304556978294332576219932965192868948240647681444839832546805487589445079320455295458295391630386318637433164693493077595692955478526885304555364887799740275390460024472746200546069482038017946018001701577117901463652008397988473528795647036103251758861394768443852503352592431968930449576641938136349704059383196527466702345718288959020560492420939638657703304488957767992789000452541763591959684665164959971973971322146454602498863434066768103504724468175533894282510689595330822103050812165321908440759950989084390474683839423089458158193579370907373626474699756487202551374963098360962397240586493607820699014356057272992205032980965480690622848305500861508967098458355652838473940743407461870322223260601977008837857579584235995810382123616639079197674941664991125464484846157167770064853304505661865845814016971762543902761764584762064251081187089940839344376476603385787553872929331510062479646506814192622587162289381497991422645746151140518884733413193219891664370986643532300546893775716691828958006831788142833201818006721412454394996577096910609014373225808580972458650376847924859001555948451367067033449717394192929843833721943344948532015395411444718710665694583395628660977303800980115456701592065605991146338787111644769417620458225474169111050805102416817974166817644066638724660981563110767230607975949105424345471795471274214808227150951649003639422377175613013805494219035916790063411519494437421423697631393329804573954009146530420018353108968119015847836525237567024893297293567783952559115127175164852714894104059379215702732217502619170788717584420922478909045463945429485345348693407020550763917063564623122521137635560129776712976240322996599774488167346170791590417838704961142513235251430579528472850115523435411429459894445464655627399525753876545470957247456538831181101555670703679733035922077060242686804672809129125454212588493170131643460434906122928515580149269109555676494322129170109453256937139472152546481520563427821458560284799719625568776983884706399563973620699042341219109370893372145291823576358617943596697508538932650513355609513410269430895201098592147846790092018815375817556329495549182039818763804701417788663421538956950372950204230265350897794566502756455203529630872807437923713644241174041673206339812396755394682061949185940722924193775690324600381122655062175946197632351265916682604452820078735582656122396527812018071239699863565558199731586612931449624790901509682531680734070442613347265905098998045350626519058900140299083173561829689172418636747054022195103641510198413393267856871190773209912941494113539990683764998646521619339131455629514065694076052737115279312554404047322654474115550371643478042265886239048895165636541569392010780019273633062831614396641624112047634563949900919969609126573278486701320257758017771205209809630913441000284821369874744405166608976218598484424451522088231743237626084722334104127039618215279887550207967606869303212307002919282286525422327873000470972205205982367520548582057246773826431810222827145248522297774071653460049900209296049382754122407921417692853129561738528561801566945501047113249257162690862275881451310962314870792212292873376285995079060976602015299713874058576049302846779261417787775472626599388647540903211510388905691654258471424777214719983030045422255914743476607880765291294038810257984044587579003904641589022934357868643115035500458129232166459558000127762608124492432470376618327505527387440944824475552036436528439493461350047012786699624301439683625460867006630457628553498912166516450410848888463356254826203583091813974208644489072295808629784278910644571213213618745569393736812137093958421659900109161979047886813321234446070327797113646308101761885984752004386180688780191067336818026437745441518423469911030341452610347432060720011526353659728666164660459169260895711843116851277138839429896305206286414106914259249801419565869237062586249032411448053819328552215153550429965598431243222171475910496075465658280422758240742182655309902522350599447891342655718391045827090479891606640378106939941184086511676825220390383056863485848970847494234517822490960324876531805718703141791185044891950248528663589466430996700833529130775507125395722888930288495925598813583515664564350592792840811735300995570372545245521835366837371484924614545303314087779581554856842740542720419621070295329728241367197677280845125960576497103074359719788379229510378726620325401886429480231597727608808509944694457014398132116301314509232171877800028467180069464113096715950306347566701138237683780298531653183768058708527293352605634393566783339431304860047255086251832758444877238004333443815767588017471507765085005619423752565208668216319026170286464434342334223054211447418494988838733234883474575560199954407725257719511664048888033844142887699879406577980880824931482014873079144413903765877249232316795542259024843078822320737752019664444579658377718606756781501631376893325064281707394455200185840362914358730323101966965796513363049292143900792318712967313009120883591220191466237033683581443482595537661323945543292917626230026908501372789199310150871648251760982863771229920622942872480849474989279535278060632417278142114037797381736928232930690118735294155607770306257936351895443575276558151846393084297921583414483448686172897351522930986371773958523305975285952770071852821050999291978903660946490010548160880660976436618935976618007862775112634652358204838603767251318733208938674314740049208099944374552418453647265003711291070379704814609553645422442160500501942440980937771023858728479934503809535945579657848406116806064579757254508633934605963834324312464222762761625006675409489957417979738332811350160561175585925511617291884448904657716476617416992041092994946917659329048215435125801125397750773615827836938388750183038866384678006470465294724306446757722098752049484805793996726777978982443495751177747871016233133857659358828996377611550588254593263642679566613222032733963742658401127824245113128630449299369802490189841456147999432529402264369944436554247880479519585693166617076021001701220328846290032926916748161637398369595200160753245995624428480593074726017876790935207461237650917228354583199516901598448723771711247171049185455027142018414880834922663699631214061305233599634668712280617382621266924774998273317129811136820437221180663647549106788881000239403128807923737375206863237970428071490018590823874867681693983822371326549072293529064892399102249193486341006695771480979351130354191528080737422252083917290660060489622256098755129799137936065975955806537938230120836155211093411783154235528119983583522147289168333422360237712189005753637105732525750132792774930204099081115588418579017319481887170585386328837380796228588454876548431159247047721097700107841585052168656763108367053534724537313493683428485211091869523690589207486404118514539378700208375023671009152612098846962967452965660538031034121606862333144160396867336153670685718816708590957010493408609302720603129648598550808046834447883321796720448756875111853455891243281222567320026507702268278156276412841288571334888183981915856208363336333568029751268427568387218812204290320354970613770222654351717691035592184101901460718654838836083842639797944289152969369760621299630510990444086911382044127025525249184334837768143277520376326980310215201581684441410467514145641177952115930939712218657759234058009396604237324500851927543065524936473859998980438955130150957371780084850060661042511433844581091313104995002088142949175786343962998065846168755351631188994296739176390554895804627727940690355737133182926480148451392040807061740641439242858845341287238861880489726051895293818583016683718184554862557548170582398755067353114688870944135524613068613072808548569613426401290774959963116236093131712295912185390665179319916475853843987369992582299719875439014693544966258027053458753552682775868598384369268598114372347497664977141091961399029608372220595817402483624636416564347973593562282579101515923929390240376611503105106993563122305288975216964377332720449579323846264537358076467203824605207463122357240853898325047849560855936857144307498811616086538685592219420153519476778342541467369979512675211553515805264699826850565895351302028989046748869263276819571899640160346606761343509304727185543134956404057211151514006549667785151792203399377789122689713821511182535114665168982553577465314813270708306263288218249117604573472933216791811978411659656307985505233106533110513280423440199519613296370651545202658099068578243816005756360606070430152647456184481576828447012395280586067418642896131373113624918413507194419408526957166382482300600187907297099485181872641747867344593211748830602825008659286084555645576233308595259037712202786835731837742740069657339883933508581354956621812697545003561900902089475910325378704004005459884688662475135372533843005161089431085361999726936794660770411443930782500169739158479570240631460589834231128128603716822222011079905912043536466313033376685983378763950948184977810161817282709665038087268764666299490152481417470634792941910347843058797474610780524745595043450966925872340152273436339930168125047266394137353877135527912653395685951455502990238965342315698716196877245983729511480256016354464853466369096713171356810069034180287925598385367483286127447459638660093048945891582209162844233053638048653120735473591570055545280337417837573269317419940122683861792786105238571093745139068861678205286348136804281116236114029836946681509042619364089967035290748068097795114016920521524846626376770652170223261616050424269875011557875496093692622984429492889797179281318295295809538303004494017022746895733267348728454913709085873463833076431532333798222191258972217463918182835200977305795389860363018560746611217577362197075932464784164039620108325337304380807863208842980452702186589093577426096477426914738086453649316991640300343914772797373129378957399406717831990516808345354921091166316031896641346772602676550791963776344859129638064583932829356522367095012917035875006045364085326684447217186172293779215148304315263151188027629339155154995069658256902503686324381643655928629118298959503287028921252180525230022922022888260454575251757447733825036535865222992703441939334542935936957289472328939087055183989315077112067480001612824842640176330610654552477792832517557837507363542997835802876062223310370601680285671713098189129630624611693114944798620741449469912468596320328174745678879319267055821174439761465154191898593661858240307567092519453087373054480531554992892210471913412068706170181823333187147126220401055129586121384783914813208825327143296153966401387891436674320589060900460260190178006216077746974731712151548648768263626233220686278826209088038158301961493564295969540028930179663115692708770360997089446180478677586755053533181451736417951443425801890922101773088511447738189462688901919130356450633877022801714038804281029976299723649488230342296898659889361577980931768066480901529025330212707985548632807167789746099666482811523646166645026910799041098029603151290178054725674682348435121057186908316933708368642722257940952503533516715565967850257566718305702493944715733016887943123574409685316258725846298338098888893688448299812290683468654116234710141832248652205859774459835716744541544909190708204779543042088446691314507280215117768225131448186339325961395879660509571815103853237168090849289197584019590722038471477842395444417950856044176365159692267501445899691362806758510459943591897113345692249887109739677027799963345982979688873577801138857528876862926648007826815512015922116607276280463208730562309523237550886450117310134688761340937531026022932442027862843002671412728902075673045681462095419983415638171392331905646519952885500747479642001025676306310048871622327514223441886753810920243782903441050250947940690954044926118948687784809787821188032485168123034471467049751853577068865862940654939707218505874523817072348875777450549306300382505931447993222393265147840870772250163766337152137637945021699083878824562713998188649518086906436883882472287508379614175992030688391850350870017460307281328441007040737103846147761827018286416861173907963028365555302901845736961153058294796422914796105366468244886282513893491211748696418365772038613576925475088501023962482244278135356187666922422329542317990393541503124980483230687355982231088672750219609154742100367664873150189334049506073161049358168796123407829713778377057579799966081070683834393744677425106752019386108427516223721882658388659213020436435965760752225688262791953423837066449285580659810384864745598323339481465443580080907939699582499074171309838778499546885034363490823453485115974696223115194727895688296790254758056257944176397525793082433657872352443451995609606991457462994934189862474032480518718913785707320629722094686344595446027874063348735531044577817215518498608011404610578575295574677663414360155253503644934548452053846419026612214445353861414407930781914864451131789796741734175756120058668710015682069028989920841853712254401787614268921874316480519220054343361196486295549797319337546320181149493506368470750975362268339370903713062682361824155246900617804107805380982407427585890976259608443836453530184971058171353166947137047525863119326242493600467499563710892055366930098797709173032706309260633316629625012038192309280758717250352498410246350960488734304736100711702842112429660463603079369291141162925709047892259731419616372710944346615898188932230615031669131557097345439356485284414321153934730360100151614391404030348532584314121704778849713787422925446055011769668271627680662876182177976638987788437180591932958567691530281136300432901410071727839532764907062988902976230017208221643173953519648282749769446342450408585003868810642285904535013250147715455961006351174986776866642930436265632226195472693191320743233582532884824586076715254436632374466352945456210640768653560191739360660080880414779170129310813014935842167908324156974018360347927434610558909602760981191423451338484579285866128400722782750883624559917731860194720778681996585209864170067788022323917793512652247029990354526802139634207762768906893051624898737080964295872607002823789558910119337249484209226135193585117084933801171108890778739255259788270781544629993370533863365195506346197019267077535500167740016775991607221233461457714779707255230599947270433807028604022181571245875693485713351612354420928373243855961365678804054575449419866455916298497290823868393198002395504874463738080793484684730365071235314129585215363407260097242997645959716601874350898009885880921131908697389795236331298706353991312074476854546013896595337524221155725532407345430220013535472336985185651499366255476455672142302699842500124634233270879753222838262602322395703638437612614788263918133769688897572087846058395447859237202399394029877101198900345933939727944352806719950340381364233199544797164967952850070490032337570788525249474755415335878636504687028642731732636355927108197722229666398858223174266944230400429769957835657351135370416211041729955336306310256128029678446573126795678362936175981803884287035713948167735271790654857169439205251049063389862170014976345681549362800431489256078933042644338611766117057203142380772239168148996112563653117688176157426562151586403130000035069552886619164798190492587801793243113830703828648349804018993231636060839443569484827486823746695079666922092776544542651084252666090786789117545150830894101962470462088366269045213825936668969647585164926864389689016195158372819879882745071971906691115016930857044400493461877131024853380940923940222023405080635148188956370418460057833297438060532963802423132013214478178565811380588123911134749930854418714258181516130409116838319821950157555892771982517330484524158737605700484385922630081344197400388599061995109916109233290412182999428502379132279393837949504904836325953692690088052469872207042627229824055477274976765445144713632597784850815319609324449767998834371892135094765849356962770083701943339137835431702689539549536519202417964710790205141866412930927944953538068438698243091661753924386715932604177858944299423035408765664680049802095617183236954001912614759401915553952704645576294658498211000530983669157408034875324429877420445031240396275950019347038655112381239848587539178057241318354091048084125770762814233322479139057511029595565642310618415801704729535553004229300050949316747100293325663233575417032088157463459264445548593610058913297360951929456224853207736579258972082549691455079995034288905818381729726823170718148150778570073843474081052521937341909472274845004124601266140480363201849449984475273760007088680194236834987139821095590123417015186789873155506286169274544148882487368339846046007694713868704404703603568036396399407874570908407176888137556602982261038965488486481353574577270602442835037151867354228286721512958591153134364159690524397816058281166503835809054706941779416773798585142269259506840638700679781187617482559745957865973154101258703389737823129388930320899264300370961313663405684695666042103957837063745207075928306312785023135755063637720099183034923881543971592854006874862431955898915704819686352440639811005003842911847443057281538352976210511859804372072394965801946469809345905634538728244491679749450298239317462878964223250806751064629661676632735516951721000624751929821241564496299564066440025694607942935221965160762745375478759907834278141222243044364076596681381634378160959805232386536737674246782910518537732771518706619495886734079980072640633843820197181780868274439802675238046944772568057728293182748825328716766155132282777694476564974294213813353993429421045452825353662028416637393119586740324678506778316408534939150562937753327557086655711150288662951979789325377240065641341537973771119951417524119081243203280485822796592966682155539759096175526177517884379403359138796973506330763439201041652915366587075199828197924220620052243047218224579896952220933053226315589373641843758098338220648429454974644433763620709074924759153457818209378300563286383653101358051880347375356130849087277296757864153728082997287502724669837842725777584883788543637193855415352982970361133311167882181831265593725955880371746975629037166415652568998733946305700009874986759498788194826655016663576292929270515674643747902261697178234609224428990024439191888986030314045045027706248799086685751269705205191974433051403970663526563056684630518116725699920877203695658914459700339189344405783415801635506659623665518346753163727517815034701756353905976058943272991625081999358667567410424835014750028147203615699971647875522429404483717536349082373310898948536910659077109989488351172939509161157356174995703574513140903069870097635395571782207354271482756845469706938188244523595016100374505676679025564353264861662808904651315909637831039638206973331050419449143716885337945980368214422182384548544981048307784344753242694011187579161083154838108637325317886765158793443004588889087887478553247133859660383764995848814380488161794723818604049934646015807687298335313055112171423785728188154376462731998611694846152443681234252509916733413102911755625989683937938762118005130120046261632298815395714467777939814721180673423734704052070650614117124451937085064715621974673438492899898411086288208296408400576891170762539611100374285656164773268983262612657839132580886303428761062524835041861056477739950362327752167404941520738362358259435787217342808722913907982429175772053322649130795950431712962846970367503577850960318825412546091603064912604513394272254592491500809407367565688476382014094392989414111787202822117988547245007462409135618304910357377505954267144301847269831129209605790620185417450476888842862322295833185634947755252258947770052118687252265416010231413587075985727788366063524166972674541786016547160112745554707089178343638891234821216844219401390583895762004842940706075254418098536186672993650084137202614555560241166583625480251088199772516349393698749172750019608442139960333676168576351006293402007143297479956791608419102379974875174586589715409584346937127427378913647073773699282955640521512615026538839573280758027274517759316341453070715103104597845799541621086004522576147636327944324093897483212376838360669687116707130011874208416580025482662345872073545982740208789086318967802862452176832502654890140116328857684443214592670464154332061433325911816005858573860989962779397474953105323039135019416743615847294773469315441853376906053857884901217468513610891734101714092558544409013740554617439017366772421014307218621791117676430918733758484419313632040342058916482371671111135437020608068755213549678023176092020225316890061279542428021078868777200773652547323492958090735642938070586433303149972784627654795373295010436677676264364881021790530608727422699219277877621521239965879215103172553405140769485424946020709130220890415718725008662220941074889648154863537939346210840810524536089481466774706067227050138734038298573226282890943329051675889184965990520260242839392444379198146745872467663510351546498700718280936870067217455800431254063237367488355871027033831206584114381479028985368690392439654519995026282138674437272534549755303327968023887139473555284684336336015014908939470311969882509886316664262789998766173696720609948311743858183229400719235998524817429391289644899107745999551272059371505884653139320334399378532768287002733229957395677545407334086945749950019622597583887183648721952026834509256897053840342776120458359464086173334374054998972783069719016257992434967682591935246609277077434193165955014149831885990432471455171882879100835930600160623427088105204021640251153054948455568158200980192131412544743954174191488454295842609282897278458603896076831142893512839046680435200911803036595325325041986877911931340469858792990885948644788166121044226235695274719832824398496724561894045461051573176272599024289755720795117173016180358892597400228350238966629080492938423382685284414506201947708439151043774718117164786617300224061193526021088179142519700574994177423289872470642878009782861164380736873406532473875734082683830835740379791398785628997179494214200238056360018492939911965711582204469392868043954385437383615700354697919367871034201551493897799546113406439991531892946369415642537225825282810848991488236845956970679739226702286340902591798830971203898180133657951120320392979785905166283066837112307574183922336498560847329535184035907267858151845560314667272062740707214905374596030682246681831601980872928100991860682743688527352985584850737419993991687128651592735650308885131053988315492613458124535512162816476779610648482159855166026515205585631496952049922984739449818581391679922108663644184168973235943704547972319282852141978442972035489750607371041120597557803335321686340412972738145141408952004987370849285083117106517018387104267699365971170280072783850031820926722796338830586075090822236895247916498896996022703506644860311081256374173979609377282427805410582825634296292865991710087109195259624345919818966245859917116988464827924479298488795196087899071599721976531126206067561167464712916324320782224570623304286894563938496065757508553818533115517504456377946382266024134804905941521178341293795128582861810139886722458660526146058817248734517034389890919210549924979053649829414267834517473075318280092886260943342363078459979667117491005206753628027611833654580110839466004129602816230624819616677837135508328006493135332438589442310896351039941934608343520823574142779229741401174217415004785716632744182763589085735930762600810996878504905861053767157395048319335711306689621015607948688211738540748829254989715160516579618001189544273058761570241555754711570797857195795379097115243834647232901421333670374348076828046576847429016638806198463938611104311513732388243731188575596331333964153136272662589030784656484427335533932686350640833131264636975688602403521592228984209503679455895419916864688046998203392375987534710214509006179552822058068063029845231129438059598706094837049381187290769558278016555681959305194354970071002346746122950694632098439294870580283000505821441909826013275504972602655802889613773949543419603923261198830177414514817058808964291993951403158118063418212038473118548031688674428457313739940365481981931778566364553545895244060036350465193836490091114862381012838298901925553651128674216781294210160386983321235947393393914672282896934447064942195362425575622125031494239841400811018866752717689956476274576552048026834284896832226594038079073194665701129496465217421746926823858947028840245124707137115417367854148694679861566109747163234729118271104766763556309878480029696176644530426509921921983564771239469862224499707772511704231904969908185071741338970678624171050869672516560347195301981569486657506177916777888591763161485444103108308336814374973241211640684649718665516911168947463755941990171678476310534110247159753800237887126933183467769422117546127185228741204489989114571465847169573194440005456794160474448355846876167245210198196237550150386839987880429664745862298157892190838742862878144838232644967729132531808036379263574886654164384082393374427730605759900632531822769600823624644177157067902572856811261436634616515112832806315860219214566733764058324379027198254390829951808399857584616734647011319066223701950955817507930246206620224633866668644113445079799087625086604029015869903942595573418300106828791330365922411413655554632389441290974078907831647618918304462124793292675376472584642019126838037281407123463370592854878503768785881489256617671207144732608717612191313496358727060295383621129177556842755980714941062130309994672611459519550275862380550933622569861032251537686081252085511871934500773966208225938815835692595375827773882450413769828857840956612613820596950921313063723155043619029397709596186914477914231269782069111195375297377364735599923500997031439254707353819235213368619581949977285447570309710378490072815979125476013251720825739169019118632024718813614852165845070869464904883697700310398410561304151780363376667722816263493284141305694756434139773897420110338174020239407200089814070746672221119265717736523385223494621853555264178656099600925158195977505622376839479845152309030301268584227796184696130905656207131325393025308740648158742501814997188418886249673943612019684258128423993287597724914204558206620611341427443320230571639587569998448596668143256521590057601772645569884435469543256091755007839717119610101564249007122448076844241801621400193958257071231191261479231404867624708306207962424008078741648747443902002331281379964810708212739704887450183558202690860663621624101834778036505378498435485736975275854219211824617132380392406077901102121170002759025031914523848723212868410412749157585256075337328118061495746502277714205074976239509987830269294074468121469034338835981794503463848628127298987566343176043744721714944705125755148488980802016503047845847034862438161803439122044764617232543403542969588264374669730824992720538778915017120715908447720634974925848089580809163038471792544787407655597978935166897751622184415053866398484195359186820810925155091152953810917894901852344158003537554589578309846650434946453943441853091437802322009002764728981871372318927393706322689924119582450603737737638451049002394342241642046590398518274682747916719137911797557435597107134196969708881321411885281743752258718154329295486883314035109318159883484831758133159505140661051147686825121289365049977608172012207773113790294169818229393316725635695208420216857168914409413210605112295068093272651050254005632936061076569882944257355637579534690561316929307402993740399338258702563521956165150324951178358171064308558386253673605607093503150088375864279105096582224781137586548933791025353578154378877498522328933341348686230276711433640132246813203365885178649203922300003440174541144470295046521872617643656152990331429568875904575083233643260728420306434220889808468832399525588885610940463807721044666289787743754403420829677749991734918684161516707965400879739609926493142864271270823281301435460257538315775692570279270504870515966417039966912759546094206729657990765781415440762540384723732240538170460045096994301167125057114465949968474845396519960269444193519224024929387745632950758420178514815811304359884838915587720257780247307152627384015209940680590162394977302458640050667556331293892618755662796650038530418826967178141516249904503229519513881934683255084077180867872203887705009654821049994046789161857763273970820348202539910980406636854288884141051119536630924893104270864282453055754826300054988997708118095714635651880766575331122306477621588059631247079018255218984955994383974738702367641743468633471751586108203567815845368304875928053169270256363107953570335213870596123138490905242105066321182256183698126880834656919537244864848926607049838837980288816394634226137995708596658841392791977289207720902525777979586044333013841663040083020734275248891602584537623841577335149253080497628736444119308092599944351060248535859770639277236523044030404632928232266942361902203189248117839962781194892176913352887085950247547921975019745077036762063815492285522194703881738889408674284063832215347397829482732766096431034922366989894712222088468559621266962330914431035308833913293355919498675150814553293856466989150481153629067934522496869231029472452793913490956005735889612085460052800830580841535422655845072551875620902613388834110258255534354771824415287594120734337734177348996605433104771513724950438840241285618824580005627028957434534239739892246486086810508898325812518225584214865148366261854476328858676973380470226499729035561899484651399466043987293905453497566094821359450871723283264285833209983925351870607200380552838876271513778811654257729485667285507986723386014086824739055664193812376383555915280022334493340968606647541946697977904888459882569990333360724406969413567989345916136200273211255814443418040482796800173831380343252918418397948685279480537837139957296770191473627659652118471448723623277127460615011319957148274367819225014928668643134772077731902494978187836323276445395966254818079155204094396837435232999486637853835633117365404944785336633649198178621497134248925602321932309947079325652354130606461521235691070974840616824892804085274792654992958570659483158471983875040990214518253309703031543394998065293001709009839291686353418988336301882852946910073966641645337081695719428844127868549129070827360983188770749765911446569566099702578346162040386075127785094765113607428065278401843070076121620262978616048515286204395428134385994627667849721101672771170179015039378158853063494353352798400735266999640421662130288510968989783149699182006861953973681913423270384288366311171195661133287434341284525711753680501558985520621957461052013847993376892303579291467841298907330440097343970757788413882999038441218825845393907731860794902827714170706622960525166159218747200012218990482683330270560251467367136181832193674887606243057538971100706879943286526225950567835921608331656686881749280824403682968429766854362667392883433319824498700406218509932976259980431355006493929672901466626651280302394591674033883785154369764436430731485922596934437210724360617734899760122388687381805413532829921384328110942958735562544763647207691096265481275430512639398399918499844967024449477146429787156813395102132921069801874770693413580627857700165699003087957409573137488585728104034429335146804590611940240411366947700371256962907308741850925402483937156498269537033088753919194637985696146762872055276950965464686443401697994502674383365153791474881878595141375925942424697786828329452311695028241035610871667042978935800681060973145142999327195949589850434334021355762329435840589734419576840437011364545192518865724770244621199370333834019120653203019046056840896665311855556167845487730465966316502391815694750435617334768188778275966947869529315020619295479677650177782089314938167281754639863579432217996399580615759651954406170836543699956721111117576167333774590899896501344780952153027537536704977845255439470259108801233246729430052457319886985521637915538733262509257344305913674861424313927730925798958568152614819491364857539770296722163134152209502789278498634932368869511553021054457786962999365770469853285666383976326400365296115327852797711768567104264973831651331665970886719804873523523683237117813220765311040777557067614286601293176533119889471982209945992022318875220852999538648313176728064635832101998993885601954582946969082788575166887506221265278048162471077593121128677725636860002192260330728670770571842834044705938867580811753366262549475565749438914182638770147478910523569945239659866628792097749952285177569242835329374851670544421626621932364054128374848203796563016290431246580946076673021741347860542152162335722545213404785106377763575630765233363897314849737058271674970567243274130659623326147861618167460048357339270256994801744845282571302791510428995399197458045129640044257396305975190639524288228414243758072988304841405508267929819851555001070285273720880522352292594165369917611954502110194555247462938340011635817965509813447240239092529849352654883541902421115439088856295879312320483331518812948938361745646704447216624196991065279192877526485442194899948501139852496465907819011454920345688182242827362728507510487591396354939607758650639114791458148376764036995653351153796252199448525261083611649950555851057153521371622460338495887621302757357825133285629577812402970791270496105082699860521192685066838776379789641169484342652628681087898703782656305906405858262386770631443015428164762137718674891717196166987973043378313979898302138890324971213758903913593335779135589899268804107500674948983304257440378320072615657442374960779453309586850262101851970901048176100135766632579955351653290459240857893813139764785086748793171956610102244564143252416868339625567288888127562329972386580225854466583312651360715920462216289418900529583328463415616424986394338564684701295262571567364470454998774950440836310400647612436566725049149923308596246271515230022734795899652598516458923474761193331927474104937142163061245628547774980649145026951358241496676572994311734561425484463509980068230590161604593005181277168701592090879634972261943350158556475575483791997462580062341769687867805599641342915077878253011254422609321375884225138677266096539474252499148158013401422252803482592200687840507570876618131681308715892594192435129604061283491650047562061161724180648885969083605441048793617460752116669627316226368204936523094274369372663048270347781236416129021226393697765798801556014512728634578959389907651170290241168466914354729289255188431336680353869954870585830604581105288296562117801572659032381113732185755303024455594945890791912350744517071195330568231007431778106359086754401514216509516924860175390823940968177036312248310397971331986490335958014212715451325333877886396423827029672290670970247706720123128021535283650191466472032029466307747118137260609560707202154217462237293981148333815146538364913370272807191137227942841828764439561400987022284161144455972017514912341297547246551467035827168858672957521498191697290533178628358805567363836790297858777257021055985250966253841642685328455679148255397414571329250310713130982221629788223486361269519954425938060256212789798195574903350463041025862090293189171368995147913585278609756908055850974479235469547200155593546630712977149726823646687363446675760326300588731344302582858131593846772555927733332994501942719612550357831048667770181531289370212511651836145812260288780837115716018357290988955885507348772755520467204523545338687774510670306130877926499299089302248632630592866448381525749937349537722236698028216854434844533617707600388641131363804701480320882617200780282043268948113330627807678583216849489125756968007461226276720952256461962144876828765367297610641907559071323791944572117034983062435235769422512213074935282274770587883029421747212376305723250205644340375418600323975399388781518196827137219854677127997859906971789443146566524270202573358843622476682213809002523428972937659185443278988819131890361898051080318088679419033837471090734997451382836439774241321844064250003135171140304263227438641293640360277917211099029554613109972271846836903047153863590500014142360542095192423004693512458756934685148333263888799869242381182481241958681629373644285801941910744052956655409833968471895108758077438240381184572636560472887410859238996934838795125449827753940656493033633471296719118616444019212110794629703145782326224746506685010187812247472090802949389244040927247332700743288020134621593810640795339810180159029900833056348869110322247353841949281058006000643542187579794170186161671713085423656261228369126861928828276001558056736481075907811728256139183313894378361435499164289321067194947981823363647413976319630824722122958733965083394304497712991371668809325269744631873469047294745220338169554031598519313802581439483473292888525039879798080527050623239190119200254709415010246125926986321913360469446018781506312808120803441739009284819058676648774042109245399439024161381957754200245421679710981387292785554725764503091428556354593586882498474216896939405129148677639661222284112896155042733598737118169972793723913251371610111806188195571413745038160710272236685403775188122597456614492695773842823952247133866930192309551765662100594275392184155825620066391336153475735828301421033584357342777370471470942329432853758607621919128610345351224998953241994349418799595049816074653748295456898461879395453339785286504617592846865199413970666863998156579369940285549011028585635953374685954139240776492304852837112656129575263322001802091135614722513133275433097690126375249078562357196951868556225824817467449886884345065402942980569637837784420898217097401096965117207581667228871817179544232576963370010097649073463389574001909183594763131113446694852008884721704047161802338989585548556593755117853424393314191366609174225628045712252255862942675286643430464829087522908143292103081948066007858938030309954261423738336880239240006644188312934402521280134155835066611456935858284960468014254158365201219699768150745136149842480476367926828725088707599679949369541412859773911201211553554027920418171631691277914945177978742439237698625772016238989929102830052423109071755392397810639028519615223579213945979269604573632400179874619025864843389421345420868900732595629410773028499819267207743741317494428910043832885061497255117967115672041726165092590302717944350203540440807359038418952261964158772627320010263730741761248414153681786056641431448354230492356907458488861764218123416020100328742403229235018740246415007496181851671053601877925297997011096382578564028193193741286189762153051483064012628894878786524997749624001701228845260120734609917322445507618837168498401027606959212570221800160185586068729221620665559226599868047745098410108430689812157083056882187513829369685733727956145385002088416494103125593818247942197599187652859265814516415356497495248127095927377833820016419136508347987089236091659893377122783954740419599062300162788111877951903423964773729520509924125496871714496338622922587859500919672601741575113700766900690887588013958782457257096936623944165054219736110403391799072118927094903864619136091676157415927577606648970768759062376876182682591157518510492723091704490697385514245835668662186165613411880454149174603845446378422092893785349285948892100437738662220004186254510497308410672012798469821588295971126974494776108237796264767470689545100170026873355690620046503162052268147743987442747073390204460859851761419114209169122486573208445519458234643823403601714614241550401602106385181019016762382343813513865891231547373677060322300615727194911918596786605439489466828349531358443473597521116904474584688052027017524510369605415951308375517196715564562051640163722911088502511110052245141468865476742678544427074224388866668559825678288425991393843801368839382026554916144218451879387965656155729685303573881530670193759838821186761206165356326710123774756060998206264397169084739548367068093682609818144332138583866290017582071669936469128985580155918265967312836523162264864823838264430346285698071957603976941014024577763778508246559731700908265087004470605713337347596129672183890201252267525522730337399850212777651914746269400968092717443599947676362910376026855506516959070050217578714618794007577195844657863632831652747511195462550972018544228691082352260831960996808476471980234426464446199059767396352043102068396447377466729753752916094450050544789439163194121486874676296965100917104721175096283336317596306345195715067741637632349529058663836386720736346505466089457122146626096122298402967668096034410831687769038699496780026223434281378342832533735957416558813089676948297927559632185067665460634423633595821777144734572237283510744463167121305448288458883658234821673237898860390185261685349204426858129141748724971940205755608981273912420623943725690657152606977313472372378054349230731113476175660574430694969340279643356333837093087736404033763509289000566322734296959452119680060836057624514970227767613929772808347418938736116198000824124784373193836729224061325370739012668894461463021739709782643085588654003264360070395234905771636787314742172638407470987543482391463925464198163743345003501497204371554122052078301270503730105201187840879717036436980078091281966180165331182517594066109056172138979728083053446534252704546152705383240851665597384633323791059898392167146063094871276980457778641593220300094327967368646098866886045269786433151864345919208147652577526968708183478794350204970232352995790364882716029757976184285279541297533578225249706638140773175588141181350782782166406771036181575144556684069752598029673201862065959126967654624416513118729800694188600861828355278751785178979075833715051480194078104872083984651465509615740120330448997142042985941157629706986037625407384080642966247923822803602489992341842910217697843373629749674563011680012199003182794120006965671973151976458352901780345334193470507327656637497687417034365321528540622046265715591561958199245089826527609993995167523430618784080436777927674374865957988831099472367984511598141714013822416989026998382814947532308037372446908041834599942605543755118608284503809478856686964377950240199242529897351895195008129489899424306653514359794194844138653890104062178340656437124708853158480626629058754410350420899863009824035339049027932807441739161946094845632093955599304120887140097649258289049606575741382884289067573149262233182995522261378692144746651340254993347528767498027789323937316007964624365012718776211575343326840223084615755216033027667477610862070009750629915481130595328909015668481015123342723915532441539791545611733529237623659595692924412551560021788757272268905146651241490141454177811222417774578014636772038526719911241280964286097404166844401832467197706875378882058996060071738683109005210916384146947191137713942793259461405497779485836769066054546700242330061660096276205366298012308330188363699977423925527975035618351944842887357044814814648063818585524545182747387773229904412212595088293918549529606550617822221927286981670652552254686867985205559467576974335632674594184611933743027571874909027308729759939749332138866356069478465759775504390258486706365160094680419768385925915719527947111638375376625221102797523716977237064991051948326417365654921737787805390737980921011016214803382051717063478188230578250784419177831767389324123498130026387977870119762751872765143721865538083070628108140199251009943102483163660891918148995895745190437648044601845279016156330750143143062505413000419329935842513715209382781293603246584704647950545125333172060189515058919362527379878266476405977541118150064093624342521386237241565868547433172682013337675779975930204252441215152947434932131416328470315525518929768841919691548355193918720206832957214279849348426217014611367188080431288176479496971450831424362886523130036261459938239561187459073688147204120719458172682486062713492885896601914983708394427380640887840376189645518030800548271748361327022192633967754966815800712971897307285864269006428817493402013986542653253547835459617100492695297376347896991514706056969873327352965414857669623364798000482154528280472907316481230003824646327109491324789559342525418499825736226938085437812793751376691525039356288734378018702560823175329571866261726478012918039799948040741440834066994466034132385837394147937874990535974617900519496027603618582862934981618495166406155956840017024619522391648606527035211222441383596181736152860933873780260174543372080952418686807138241118716440201432682644428697300696795359092809834332862584351788013899034469473110858940718331369351285758576581447220909755504887675895257613371595323320381680605054625842118935650345929325252447060989135436077795156030127884849799823977532385073678738317745285842807474404612611717623980475797427179100554736378395304466803914648769832521429808447111011266672342686062227604014868697119221177307246897935911577071240740159608040424189012912819698170623765628057878677013880496040833420293812093409257851230442827930298856837720060913804972355678096855718195772777623809363545485044266738629057226563965374225796048343560744269532471184265198349251362233358982803526010749213612924398170722029407677990860071511523652149144771552299834736977019086850433520405841908771695130072166546983666090579013591976292099347986344249814333269938921739082828448174695774863622644773161775320981566862156521217908805219411764669390103868283650076858725365067358034326448945166682359432831516477564131260930762721844493799522724343134890718143455562329484987982779743007082333250404878238080992536021819578428030408807480460683304308045714242973937451644254278880683018972167056223076470379433697175243300441497785869962640618301065038163869945703455750338307675525480573070238421868734391177633493352919493755567471487692269464908587394287636985780928758787945837150938560374968036357379633816706154886231673531073863329443698469502833024799334980519819985107763228675048944755812295444410829656301073930120506643154113659113616781656154226330035656199777768531534880449926681590196961029653938709222391418546604596989772861539407365956215159208145959782440097430132461577907680312471646245286210634166056091739537122950299301248522520595799768532816616990630565655484948170306248639746202020343553863286590495515128922819599531604029169539155636130613492692623860628729303643270938352744803260924098817038534657434509917900799964085246907756206756333149809785317487157444524212451964827111342712174565967792781706382121888456247675561503672022200937106662240577855007244537793132999196314428935453908952925965470417634254188097977331940758102362903219241437944539467483211238194076255291603226303699645792457243176879425273413083056554967869183376834203082876163677156827398575711903163808519375200585033484051829812107035336957980738595285694521823163819153221013639017817522682838003784870019785666859153788498120198313738257300290402416780708984721897409930993897979640761439694211803285509737567321276801012149451544559417030605350163001140308516883905736307220827189854663633947702239876614690562742684084429594045396761087033078876511301594410228040811495773020844327909743657689813547179914590793688833598390989865037328281936591305256801864581353966062130891436269201922633737481767908692683964308182544509259483796008877996683216572488087249939104109756001089417125065146179995009549895414324509349503981437012001167724111362569758967998330545210006398527791397987499552524650720172377051050473750546201234703673754555659975748903963958964703186318420940760747130235077223152298634484944402601767178242750765051834496940326230491030686344367544620198933819069047562764479113743475957581681011007596026145926730386437235407584501277423172014442567075322728111085093077075368106443880103017898042617834419395257206645508200640661246130446772644044390257111578536233437733859951710439091940607005562575295772501925019154614509560471754769269481333939957654999155078604249985966597565399950686556787878052313517034560630877607714168199854115584475075400777682445214760110037773459405499828366339470928246400629367195271799485759591913028674440899352794765369984636334491323898913893381888048166179485341265032703772335571577845260396493131557015151328848392535181721737806787804172090726846846243150792751189807706636601128457044175683339778633891367319144352077029932255847915799994537413387087774917616836182220574721557835790165987323325519187504246723726147718056908970964430819573794495461964682639136624451490578698619073261364496264680776348479256186328073500819072479620307908516173797078719968392034238829405916477474472824340724233058458509374536053257401137649260674188870754418505372192425131789744615943295337350656778618711340700914404261157483443561678917529653052171390010915492109678509792195814073414257933066303002547677905123907951864021276184250004492037650637731424764215254923736834257354513196823508057176240937368137052118177756370550232338623243196228252423696261586681078308946164541926954990729149833718579884131846640642312580346099218118493195688838081505269728064265398157780693286889044831557237289964285214269626515754248350745538822209980964645412018064126991884778040322641334640329732276102714740509047266038438937925620500895628845974109962929322273419241957212038455282112335605306894276212239820533230084134270445404700965416108777532033262135320738627408603327388522934288030015235382544212765949594959170056205755453746594681799636453115772108575241341469058089095034716451140315277320129702665161829669184679529023385117194362519431611336870815201115679565044792835337676688024181123436400066464953204741876470432806701686125943543756488506988115078836972274514357946769130444247223595609253569581292183433000258294903986766657705907988698651647021098996455480799697496958568642203316417640520332429694703430979340755734995430155436275093911094848074967483129648913291719592813597253028703747615418869815529338674627320775504514192074432716123544705455140525273340418396915150516070841026964231742293691126365172904131133661834680747700923355389998186011605164931711822769508705679688838135382879322701869205762593510642686776157977518743441255708489470153928568149321010193763142403210004073834851186191158897430500587106648922092090225806694478353029786192059467142269836178913117252165675876053256353039523053851006056474729557825134161817879229841069982484476895920709678975714538872845097534929101673053396385295222641065629855199114523750257313645609189088319942423021819352410004977148046195606318226641695251347992954437199535996339205221836767008620482269130918390994475230395553892200192228997427867896629660728129749794458232353998967230323081855383137077235760867746439136593723437384613606178449486606780073661836975908538469510026755967946000055818402881655233020221930245981127585807142332363893914766126356424012769450361935909192555922537813826629961848317939746579159233004613471049661965643384543626211540885312690604107081944043797099743577341111373142912026161089159737907285097074743061311851106012542044261032945586648415328473358386447391225776680791593347079810488651370077530802170619285829701057920411850749461927705081886594056046311088319619526519166578456516305810639438136092519610267607658068256208398220296809763386482670064948821454752320358160779194327836293942841286195759687901372845976595322548834259439953378681247890463553569520410016987361221274202162004030874929616440009855251007978884843871482007114686655583844660310448587854259480064745230819935444886578431525883628415690382307209714544262177044571259880065776540581065246211377234035713414041904992033586704655571065772654628058176513496015432994097032194177892825253201630402498811328640339472310968815824810097568148541349220000746228506904078184038600265040242102511596005489720539227008603952893542532464810191238612868218619112940076346326883653065887877310187779778141593822472347969235876448034215209450066734864612008881733601123728870062396843144014118593269207851322871705730048858230896256895743404493100533986111394835809282895497724063212972908758428261579521884185505549354036969524646383015425871348844290974057273543233567518814691516354378063482825712146442510415554456603708796574892605672246288324426902252271342849253907522728886872242222616032879155650489170844114585386322969935310128180038282009254048219051291471623435536594057086119267284151824265820439552153013510860294234269792349971420434400516806150889394498423340278919627787311517447196726143926540779145642973557264328209001885190545885673931750387696483412618520124078497127652455531589911773645621936123548747896245326823076284175167942203456455752666410105528734926965404840935452337407531745849242693098524924522383158967056614570249329691912186447352568988199062754765012525793198894611952818242132040707058283716391258699786238109934640231708751702581005341564378521603536112862426645314712426330790140198590622142332482233452534654371738634601470964405740483398689127703080119838249180222576457546613188508041584982096517183060046957040056073995716122896820311615284714218766262265382555440916809396103676784683146910814483267814348012210179175896184747534531412122282449783467472799278155006872754966294806908863257571903686860022702922478861289540140185376481119902002454580178004753691898810122696631850763951096584186970036527004939550104926976350915149737029801459884032646678084953250618481927463034948178890588814127476904650375009292883283478043944696772708762706617890704620719314680087693180992566059714608733055872258272754871652722179069952777168878221285620778106150558096053569859944022915695161700810326008183986941611033501490905166329697733868273763847846932560163169934770800694059248765596514914812319182650114790347585484775796836212378585233436452490536701990674571610768727863904079876246099446270767559200548894865522625257646208289529962392048767378123773400021351870966401054595353322562553242598290820841880598174177550667136856056696442143860213220476335848977221358848177533287475405135811023492658292962547294383002060079087180156818418685136026659684681157200314335719525600525234591914874059501038841005947330862284510725900447228358030066127613303517175706098749633407899798312405485444441903575518534629472031474189021213093479569064738284252250687293027041625897661336691333789173971370859683126012909883217878672549834818206558768146813345143509480141934820546366604597831083714483885751134778925769694655136226964520370369367528416567748015689010290963915928177862787644179452564516289281621756289415702931519139901261670620876372368014307270176526965971457529900740265655260160165228983288520268769288814678142757338177479647810278006315155474473036287899247763049657909106609533060144553161365172573852659514590846041528314809697532796289626197497781906151565523570894517316258650949337475429443605404308533664564794437313080746774610538916349019592737287855001133104146779534506877732758757161679539671878587024732999643837310994684411950192851616479589824696512988974140271484939004317978979808154086405977355505168278450231353114722568989255099501309557898172720875254164601502475229122423972521624576832685207746947624804652872686417425615449143503690749922408474676814859744214763940125902518004133225330388961515648560609301005045757856978223640146608415988377742142147157339236589775651682637562281970086689110813093737750705854439126268694518067728405854322812583436764726501179262222940130592049939566796852620422032898599350119829243245052164762267660214395945831033453811411024263216328193199368054617627523549775521628296052414544206315897265290175334157425519607569121356516922328533823523340303588071063558466578980320575045363036582120080134115124162023161458491821672420693089290695857435490625151832128161171042045977461925388427148791889307849704662952946170460276744050427902283246963059840813244207187384279563303290785446036969786048619776264810051418904020027477082173128265327498270237432354954507650330385104405652690144831776871977622237985123032071722188978099266794398779605473656748179664066636502778647184792682491266120323853383155202204985360871735412593249103936717524144924544401869175778400992992677047378034992997236172988011493182610584763983869970178196616267689391539658488435014180307177112180718921212547445822356120594328460732029519108778498004094641040530551071401239504233060865221632199709439203052802543552706542586960808484507963314104976756831655462872089303969887815214121683590492858280319449067248759910531172895539354296792719330241709505800097887912116524867525272113453156302542965245812052246699667796698327726131398082192214547760572645632239475156720463242518369849737594184616489673129535736160295325388346568454743522770915431892497460442137004761247436164041173050241645874651474484427890877295785169960880331595225887026909961602606771891294800060104785718736990353476267905178889120458414429421735311293086563658841260321551426285805344314898691476359559432900571468225637024154787698720311603577272586096812132923424485318849707697218766643803890296504811486561436809784195032973227028976801485994762137096044772917401993232302728191121790640438122263011368374880940954186666991039869902391384922384001695354532746938639975930563633177041385595373194549884684999398821961098507774493827431258436573956702150970633488321416926167931506322140289158554202705803882809143945732380521446196756104735899447251184178612508223140449480900313819843279635819746800589854633136105656930070979718077436561639534118837096815638502513165523110651779272697066421775519100207491115704027031753938886941958137039798014419163215576410391933159234066048786792252645983140618445339361290981620181716804658483296213324320808979428143292674872654829916217913739567769347558397230122418015142242047610704848379584995226035606216865079230414117795010624856663253609240425871839214004373721301385399398052041388196016211527181466156731278968563713810961455374374893861833505260681908790761160747307494499142321533569092780566314140835711586479801547298359183324012399352735918543321542992879599870549782271931213591272673082288010507754299986411073741464399348631463502767873394751780939611372182889137705594812504449234804361026807077639469858538974271001468047630629149908226035681138965033387870972850671680956621596452104563141375990838376795063648516053650672790694364188110609727854232662551784596839367775653045112386727320124737515940436947493611006736723487797291023541083349427057692850309371322813056086786213059695331200752263340563385532236082589798010070587932852438815283997861952818616298826740302948423178815797396511893654683525084258426019916761734824096175849219275765570453683672942942569770503227514895139745680476003141844302577185397762487290826225209856504291086132472429121825659620930298638101125086667979526961962370664739653620554084574531047374244068104169420382611523255938579870766871342959442243466111980788980488279879798398490562050906994682861620702332590297435622118958217717624888765135345074788524367693341451882870629046786274483303925794011737919697946388164518850128480867798859444897327430978076623483436538936122007794244959729429008542195268538137063680223663833431885164292287435466981443585616966264078013193173560270263814787194550650791224188525102296398678547422132163471796817399305802705043570890585699621342560709855005452757386873799755490021088435143949633180881823034953804235449795968668989753238392199006811122666631555338701536678303413336297334589176679469966424777741786020974905254348775717274108898030857013742587984792771970637687257762952646154481737538791334061075171399726175549367137999688732071479355798499525899071249840152333617818105527682307940970188913497939456975696846372130579487709578268391930305882698193221417589636438084908670032969052923590394323136610710628557046857892089729614153041794938390436821166271681772857373067249813931606384803817475306993544100244411052616934981283951701163634593872581009053067788283717011181767856290500008064584464432231434466601052675241138943666519792935323033114559703197472449284465750568848473558293242744693859290696733171363390645278889153953012597212561222576734676676194542931699027132886706637411314838196931418238223993999295356242534157085721710424985765782912420394867315616808370203541139990058259447104156982043301593369754972049355316066432390101344693342085325119397156509137199825091804901499407254821250824781949567325782345818852273322532931149464886062521562007810030857406691428981361189608493574218460650647004015091258874199470997231367413591900381040312660048511525788810988526915678230592932678802518405005408526062759342921207700862670183181658934821069625548741336815450920438519021006398678183892993873688894279721789899645622026008829483712765210143242502612066371203858580211860270141267844435895274127907569899921600781524049296468379810500585752361150892149700949662563471240305242185040682770524413109725538371869683093132891172257752890335947903211666430479299169421969258793958697290239583519775262677503736662668191516118788420370655261359121489035988604899450919823027166395739979739467550986874355164588885611086595071032245317621311391962338160459461764464621476394977445867434601683533115557713673699766205502261692498017120698020361353365297583383739441432260418100755050351072724375501226216545998520965659911016234699048488447634367304384857776971367418319845284928373269152238095229873643339169011150864855373779625297715766602011822498505790860829401045233463766998333947921832754313986507459538061230437490602621506756720715225106128056622418056723541297638772445905541039537984423758029732337197370046186088599711536503155342334733842352066095586722842841710005884767825387594673106519686485394525026139885151477681611868988297274437717839513596532306258880525499735146378398792326151530842222808295320074330200640323757717543069719878517148178336866940991392904686112407857074703621537361809376029595286228274455453521674520595687592903281641891141000516801244292962699190610304504899773127611075665665226362481376123299538896142764293978116692337007456771745700122274933756175304578234361283974648359689477614709549667125101743309113736398344697846563792321132320369216312964846986205362061811366714658791333460936609453163374971491923917371007540868010807608596565692050435533617781447305321772259634112518111921750167228997889825404654194852157227571666377413490570328028341995417674490530530089526296596488377507319204425085730267591560921509564252334097802589011924522070798038378888199360691898668115531110889975585244571409621828768016538826755123127576757083544612105325727570642561628502391993998912533808616306842537111048484944614253573885948389630049158006434961937220929603489319648396543798489488222801511377591294101207107203363284456576526602414242900666320316854009002840704584512692116309836476260943429984827641049789821431538792593985355993474618260342358153019072890899279261959983422566133783226482848167761252529146920055414378408251626124404766909295469696464044588244789740422867489547376406544884214358352377561264718972332949853053878978936599638802644926565935100278626139359354608964441337995843957841937756990397515765018333387193845128575699949104782603864703963355898155488501843909587096880686976326601603486169237728030649217855193170569606979472562422797327613207414474731909134529781776108367021969846745956414338233568560215642495526703403768676183001084849189655710247114308870750940218020511519698492190044633888228500815875348054577061427737722100445911502431071499167809221239873667001376688332506283273657783144134719273414226120849827489893705174363454201616841497435010172704233718963099171244702874280946962984650864153023165543484641136121764381354513717234024179656192879187144547505231077919350740552579026789456476170948002313765298453145829409100667125167039895294340695884074165978600984493460262686210949740144388346750039008921539756065581426655631005148167844895552109804693823532899364844313720237008140943692741127125526647462138936707010435256061351978229922604662949584046011313948437326261844929814388759830232832056140540087404291125888956392817855731470912566185324960656911253402704084284509187136520707692969615713283827434870507228561268665089989098954310342361041499235995791294308108042164501620672854038392645126603270803854591598115923913374900234975195375129613130598235576512505747138993233279125666344773597291372980532885349520352838463270705057670553281939245527537973354108254526517865849882043019072131450416181516481416322260018713596859425105847133819866656152530785040739770598721228743302044524530122293628584062355359348779790854511669041861658187184990919816719745789609418380568071039613889841479887167005661463919449296730781852455765114197320991638484474706138440667328606424940035826638837348020425837828006977792458070532071097285474161088943941701238377959882910350348663689910802360588747167768817861073067416997246533288675349565805383703490972816637376017407378453047210872631363085253036481007514825757127983211704840363205534951778535967590681531142319581162139513274897893685745632694417786165550483548567904886885437297142590842293181166211067905256524649802848710229108594376492511448850472341524431467725662880840710268732604322389848606396997399576708897237600566322527189339705036430537642202050082550378449597996302123173480886958858525647019973907718799824113424801309571817734619622409885045144575044894546314534661021472277819344201775326646114536872113939045225003778052942456800234180246134103687709290431905584796522989985546599755032745827502320293784875315463304896664549710716615674121024492554665095902928882391481034101421539654878924864788889364359814429953033521322736712666845249888996271325532022391556338169084666917141501757786572509677245465925276775688696273387976105378399009666184981333133309245130457830096514657690620565092420932995579244866974841209893223542364388218225350191928387170402421525409630156005326119559940584726688940365297616919852957917215655242012358069036065088360940746401282250217065274147884475106499475976869410960188630761746756340489069025692316585799534083585337533016291022142578184822049247631032813852157135049340359630590401871353470615241521591374447796561172798350598098440735526056290737740270159915293497852301600868011996343283080194425106108414071851754897598803921043290483328341016457893730542806566708672955437387257409633823456046248194989221306828300366050711019609313897657638228551026037418933109345824570753827141512266828825369417818024789659488925701117618838179783591434194060164525715550007380505927813955349701263867057037939309873657295131967412380399348123017424859034660323181799417842943163291474033344232930774166051159800615259668455638627996006826056089743908255216748696947281229115093960019601464790247865186833923063213138999816904921484725382860160522545774800972117330857065934160720513142270009557046886364332574064471221062649653347077723762333976210604006119215086330896035406726387133824207318239242344018515308306688274821762004858267336355913693050066849933064353292598302768466859745341614142626910223649552048539778107355048846826843897218043390938398741809836079055825844315225112916563096660598273018987950441037830290884206362583779678110644747814340141626153290907110158053469508191675956395537297444314237200592513553053354591073197716902485694406759323630391367315798182594418221814467329353634232872228135711677045680152834429159437535094321976594502342069383890018966249519693697286233112555065131175028150230669604294295611626183439470300594825371441952198492133814094908913457451593658539701935711416546742743415816781551689581109961415271256877547364833554833951783486618704312679975585379978159006188992621122492485493376521419366370823840449632110367156111240409318218842236143307522373126138307582831196939270489089515923870884354661590514633462985719285246945316104271411786282766944249704910071202829231971536379238139841691802306257638580078185808536269517245704465664368628306528455358374135537471218872857666906174034547307776659905635028050538954423090883605757578832772009381628638083705720080155491800563845486530615133807538548855644768625745606820242228682935754790091228772574759328364159130753147440759749905297270924562133857222227604992019164418265366863366853026567735734298533655662342727442820950517591607577511512530441346340245253094751269964288711487241946966422438225502115665171900012028102430529782911024607558907907976978815677795060016127724915588459627016787008753744203909697387217799455354437569755519869652576821874837602892467268662838461263201663974638526222176859837581087808492618776676809669188787194704868703927003580915637781731142903763689822066246317462451927353144299439124777597558385144863213002512725467459049003561725030799362157440702259688217914615785288386023667379276152336889599767923600305036795737577772509101713230838466360698383829359727948149109886705328183832494189480742055462420978346623102889937788885398611959129916296584868689832184778526173198625919942571106984765759329452326968338549967917445890619629123366499762862289603390266066596122348923703280535962641944992550541502694346505412940412517015043072418984697344969263787274442620215304125610503890700255611144097835208271865242553018449942978796705383649243625108745456781081531433102080974520046377083448062107324235811627290828755074911225123433513238941440191525388807265336392926689322523290434165074635700454477624863608876816501427055928058559335049966140932321248922473586915872769461086734443968009343164474160889049276246288448807579002625633017148485909007926793848698429755720943807486056341834267770791667032319570262351892317050482467976820985600258839107289678382338814999286303138532317919880879290237878814570452084269080801346330955501009828925832141619594071969237709453116810198262100820002332188763549501944430106221893371245312171824279498606453145158723348238457711662794010812462199763819862912234886289323190417142946219121134280978333205535854226238384050279104769340995393486700764155925299188899790858307835499903035030815218193981606859974159517996946559443038179720058861774915476850837719455100836770911698109959045532583431185182872084877537764693448638028987367066692493427525415622323295211063245972907274967416062730802680046515584739802679750294715627672802006940324128221029273220718378718650822737170297161968033055479551618585028379454774214968320564593591658687452316954441189674612387218831678337322576306333311199214012071085861020712579912548298862293200751682324739724862285790091433477138277140772964466850769566106532552199154589056157378283088670549206474455175295082747183175001853609345570192998664866106587729134824243202303943238249505012668905478818216237957878108056147286267023739424191577069785060326960853292486519872740533400270103533638944592640454569894252605494090781105216359124491745747506665601360340248975268162531839382502365807618706261080320066117071898710384993639789270282781339219788042701735051075177688783319519946946310836249427847101991833619794159871968519425923761405181408127144688342752729892974854197158863312785068249207924768271261843549512791371445486643476810994055849139220183900476893678752080105420711103631663757449294713378470732859741124465977875625556905488813899159466169741355313959280374719147321606797199932046896064502655409953366267144766200217160719280934865675844891828693129360746363388852191383745522099879492116454417185677306553150535908883005052369573996171270846760090834570686602183968261150488278189994420789200560196173788815338431789801714105628247027739712465381927847820535895329054650199231236658330629045220844820973083479195159414321247121130500897587584513421696881070762478155417767965461169260461581603865869105630337606007164593277306988597766315824204471579818089007745167435927381124865350039448426549561894144212751691789673317241667227386444769180037403906227040408812652183051682548940352771861938233627452337907557100455813229023778913053578053505982097081226106915774469218792155178345325278856878654182288889456689813895971913612682445350728830107578062991080269631475425305396081572525412792298658120063690380919920757013825368646521099350404660025732026659719493227069314185960343137234478492754330463963283351443419893130088618649434773948737210423278721610350144283472094742279273972761041562244319554067266142318952176093804983528557697564033203978759381553053686299395721149752572778856797087845935405536214459623771141035710104926573839019400555100801991488390445541689847258805785673569917493117783717452190500898283639060839539797204149274905972150690536128371781816228913509197153023380989045368955554405599780729029733689978522364785730303689394688077925963047011877625432226119925183639686950996008769228574878281829045220736592434821435413987331054004576556647846299111688842493480546943149260598561471490670917306764535337791687521962582409644609840759104395789336427441345550157967204270775562285697845032046684563197285275320483979692842895203485286710920729087378244177244980486382909824370984915759603192827490213159052729239060965175171747993277365561866548583997740462462482382474680384678098998478445951921128140117597210334368913298063591883358037566648152420793094466777612119609591568690242829673517815116585966165844816425028014676796556676364547854253035193570603572002712023454546989170508101988078745936155379793837400924259704339982018369703941012663943610293208955420663658040199853514209511766514430610480725807751118832897019375522513487134990478005355169551492918700399547695340847464040470291890749769939684950704914293362599812452504956770708412928130290420470522142304870495375569160954851187987582691422660324869212839007331557596210278057593606085904836141370450361785517341203677018890517168450069190833551477437728305594796339530062866340664415702047803007418285836113688973192689062742907276793483217740012464150045438793713970490128841724850821426028490674192938154830894506915835379036969700146212598566808360741708721795932824380351324322081932587694886395827855269057608524981549852579226009594040055149466674454191112687802007398875152991926282699599429971572371110760941187571437002533866060639423202477524015449346787015627561206702796893291745693871360108806520951904728877060364033345565614114855751557925211082166775285682267446386367764282412430071751205127554770083279262752222307024523036660305899749700685513905463336405043165840096841407006297397305545985061183641912567486620815793904022888233849239175240936462173302930858691721891554476608785203713565736413080612084106205330646501485121590331641710408075442559319590970207450814948196233256795337136192921261815501925990149916860955657803395589309624068902160432702991910216893727639879370874365645752844601965424633651538034161810088387224606788536803316574099219375239192328293652659061190426844353399999187298820392581664291442454454659382457677159066925109140554508425686674953074933271421120439291755174042500895279873661233003741036057262995504839112578171834289073822035403534648165055051479226399507367593856601448266870569609137914028469964376950993882074077759614225415491888010409642004366382694690589047046594800541076131045239226144926444338043536892670275420856359954852926181888760699797649148044823815153560832567528022479408655617230260591017185485416014995937932627092596084266214146033081241417131744948609944271182587446089668698983879930135955022486432497859507213342392110385186344676749500558096038682250560597339322384230508990880449885320552903207276869289966526303821268216636546114502087864987078733629475183385316964144327638164447058290877301785698343766914730140120143576009420530898440982261357526404209620459400652550221945689989536771889099075309189279399005843931457050558857527411392963413650808041923698342243460390813865224045432437606334209077602642981214353457436210093858834823785951599816962697935705644173093544007331885732362513251836519930107669356216824733888248074279275900392627240321902016803084951458177703735145245076544974746604084383585047418190103899290888650235932894142487414667066064880254718017595911269989058414358430697946888103080841250868087639655323939770189996942634255717625189769325713734483400324176974745217464986883766539350453891268236417813065760040332146535286702015266379512334628292659885506016523401525884795405377589366920058348917925417862437904790224657155013775076529890817936864850657363709076269926590184622122029519649885721428978026452324430686393634866648471962879497978640535931662906649603392475342687617985001179182760122489874636649071585530912831808848671658723054240216215576068934322916239457906825206206040521418552923741171260830189331399418874258398054460482780489885871846456477182335256384359350517096668853517634550297695891229927268040021710510702765587554495250459884860174725399656732289237329117723386661080571917409843583473459418649069861233347472524713926074971560915044202255226946363514792116390880471532995266855320983997866088480617976938849149286806713431020709816438175537789863554702833999551610195415138594030147478204205727076165670365190966767133357251373283191663493913656075277045793280164666216001412007880474116565164185793032332686201678130724082553009789868296198793622094856836581252762604421108112716674455189190230966033104375375438891431354180187145284876107393674647150997649080717388502703104943946514085719635533671296613510627343154103930489113567311942181404079443884733204849093305886567528208345645670908822335517619347331822517228101899380459587295748638461480906098771596917424977351903598404562349443011763153348057475457224089522382464798853529540729071356433401411596625922290297122531941772648967645404705077046265798689838872066770521915899931200904814465068972126207655864851113259650742242610097788442329372605162465519473478722556802568135860486913783467132002172887087260599768897028983893738250842187516913054635567492540328225872684203346904612779288944394689772624216185435973177811559902529294475273950571795777327720684072861004092640297567170101555178006647964421614893707349304891398420999948159930174922079028398727441643448049665348731142543606080847931428675992202870061384308358669090754765799003153802943393582043647325279443231053090634734495864720237715861817469810680162430519573732631276447256913395596191296480739455667652164339764559368972460069527231792276184454530293821629037311354888465867499506767796597367764878747040265864950620142019334081946611044024197362795853451137959405128083512102080443030734271053227931555908374002449050265733353212522136026273711535959949528623653290523235823282902376446299938086349852942652246107237047413331232308963109265489240860187704304360846432542395026307876175261026420232681417690105419735851350202267208880284168597825710628073322784162596229921441613757803015412344969683253268868302003114329756271138807667569087421041854272477163756345856025842565802534045601343065042750130919275047790576205392225838818842958385934993907807013189113696524787497769756635895449560420344461198314728256189821109869158298920577880203454001836743994089871332962324748667116164230068276320550521038262462459033614166139970459580862358611667354401387449904089218741570258873607850952864360557887824118663278698832534826483027943117515525339268272697134551859148721542547735172006491107928041899306610574197156229966792072590247660858799562508224395744967931003897520796737060417441122939523889468453008287037272603784758264849124770616766919071134776026806157155987389030579608818817453608050255024466559433359094747796243279517667411432659627181260057486629522106589036496066360222831715828304853716675850247128522178237009619356005831057774429727515483731091158292586522066992220251063515654222285171455797148318917956478028926829690531466840644623445878986880684443571940195616901947131120805760688313520282997147635757815172969227964617928696746464778799519216252036656043048755992688094456300574424740513386764721840805756120382046872384705562738209828904022162615731919900865657378649116799131587171736239597017140392573729762705308958117438659413713210839484701665372350253341864805126794404729334735851451152739840063388379695215109875228544696579452674980782831793993337621113932146615406833079409027276456099945216484609982798564597742018368818255960969585884013645805294107058945119947235025611750954673118059245038783727878559131439326009336394046069392927192604495702392193730939559913096442533382759147160748329377485050292967684649478738532459225036063696654095679354876103251549688856139781452961273824859208262278504408884956078489039876533933255400447844252179389512761378845564458165505938859441123511339769344872770903007874184789489789789721562471408146811757340311959853729794828821021588801932246262506712160319946537526827864451116340974189751683477458810993520456563426873040384153000183825889949977051424016346351548476754196592686860126481322519970876881359667054360461282826028822029821973391591086880268553517534005409280699651259862447305822360269530961939847344007988401791709084637627774435326507044006358829916703594076408035212756343247983472478560373541236178755078069724375423727689771841236428724534048727114069288952308804288588883835520526785001254951942547780794704744450514944138208402124024700341011570992447103310293671072433620289988476271043705900295088483376861235241008970881173824268623713964224033723086107400390521233669030280150496981657644295078806736949442834234648621955476897902553664937285589221977558502804972876823004922648400020522362582442732059905022044684779329761876977457689824344404259891375268793398026736534324543022553433148470618656774835363066599530944117965259210328539238474704423953044462590331601732066255393311370902334505399896224371256733934759560113636866120649907180626664947275164312706065529195994410679787068858590466394937361461966550567128093602042386777323688784028135916074360430253227782757935961028786126506584487067199667114789043197757557776329870484048594770777648042236919308892815745715453906651865419471711616013805700059268106512418787490841463942679911782992876344678686254932940087071725413746126444283858079852331401827977201263292554532600864191627191336374509583439035239788126020449647796370465478604041354466595148216923744909799292714517653414522780085020354777483387428150067182866264941715842206265590197268758996018991326278963863180133468818178196316260996472424617048646201375881801263001509315586660955273873592186745995657024872003959627684455133286481164165256881309132643812257814691732031326842821205452337632619562194429951853909794971910161382818548033170908636747865755042522044181069533645981691838935528921855125216123827278220364968879139728052327183465391915543607817743752524437768601093171601141307590313798833146015062737564086421219783308682952972351607186752490369902976407772990893164364108269093370188187592525999658697596895385355099401992688456259819320453582425907384693550269615498691516549488200951661520067351263777965352885796781516736997233928290572152335880567247420092735771521049151337167681608400265595664836101730623491060719843523322614181913868151699741121761743970145716655764290106530228484258974633464648753848350418217903915064264266168662345122973008959312816105645652677861208289147552266666581155558645175479717683333050755370608843524939282762906221645944749439452768899648199931852051896141789061584541390823015773423882101586636232521088615681964374107781210189728374123804653156204222078596164205671892814844342974565363793260162595097557389526192781990992176093175715090207714989634858472566298472613151210962281553704961693111926827756587085680842181752587746583335866853143900880311263166636771093379622748608686104811591181217806187629350324006339537094695063124260274427099310868237618252585691331326089843646546937347184319763536322450139599388259193483228163037429843453643078668550218819691181830280128976094652897852708771461400225502821316294154475300040587312919342606741038037099581020553845059506713499901101477931862081136976334895598268356348777595437306216461905196754582192877844774253092770377623866619311912422403850436271857307045931764334019852688703539466978472632739174637571293571202890931533674381849905689148198141689666339025964298792298271225416426594122121825579725419765660478787296012001992448965628450929301733493161128479169217023233127290270757841725240467120210556108482547925388340401380961972783576360224151353566901291491744967167226820155196499675443148569332604847108766287705824455436913902264961215555640359148889399087706918021220647591004462230809019484371595767615610384657497205160828776428953859707744261318102132529557883204162443395578064294763366865364728366313990424783022257644632823889687273833924531569685500901979683465255014089327864263131399457170657206169907457335703626013397689373010016548386375223956387806988728870419634825787616652028845289080913433232079958043924397114369981465856841714225001386956146984938829341734396546767655200038155603361837765295253111300055250740007561744206268573430192615322326684063406603236124920340161881701288544203817418198071952363552691642662550880142471159680516012063822365310822719746771947182083781612661517683941675758052526087567425277912999176014286613664284098756093817432517765534498545801337267984261360278239321379774708523071522801634728793408322970940920810120517748324787187508852115067122223702873299358726908105592849020520927981334833078505232109258528552706210885570878487187488935290129463794852553825486303143279349607790064654394646129058766161984656187782584160819057382000478853743733082861871687198415031322656959686836575196858883692789113448779463012658185158787678022853106202198639040072520943026066553110186282171903468830086217230996308969975292023110596404346767492834605094434055755954403668556846923586378749718828310668365319378356759465597042475449135169494285621936620003959395762224946249704295231502640065573734871424076541777328214458001995015893512904337182587723574850519710305652044297918516285677883766720242051871316371508879406896417509579279620007444441204380795226949158675311739134995967215865546931117440508136562129344000453868652459314376219093629021038267464156760620708402237937755562670293646359431892181887153883270593224970528788048241033137690376440672639460811739947290424990572766939367681020762865344109082434430076467515894778220519549688098666085774875528508159745887298577381933383777718743660429069022927761853571421505187135619514763513861664213523515734188582137816585399219746150235085786278297876162023219409876216165654675522904390897623848397774888576973801967921466238680024517446155561140800088234891690740859071676984320609273044458990587372694595234121324751494218944132861896575848868455409118068935801246689868677343235564337234835249963208833743648449629280721385701543607485437953214819542901366307719385557552557370669959136925101881776861800393992689008979322802799473134434477755721189891301293472224814051950542755542271592320304990288342000243033883749010733473130777206183556216112483569043300352844490568424109758569340204071879412393417907580975353755812878034774061947829378648095066522341719633542873841824389488010081362400230226154323363681312169832880901145575236455285303260052813071547732217326905713049861399998801339068101684218005483722977062301424650969884421019627342679346822588886698008965388106692723832371108357027886495025843864362520384090870180927524023323199658402275754528759403134067444633953151991173680570521245733057237008407422506628447591933263235457427751149814882942476348986035892440563005125096983822227270983280704725341022699361416891544849372077076457312713897440128703619288264981410119292959895311006651952727931206891486121859968245472546888140442546634395072508652353713875327148253415381663846391498623605113688884661624467250471617025942206765612587905844508617966240490442175126801028891772036221931935953256878237909088166757186310936330589648095738369636542549948993009534565230482179180188208475449943876167577926848379980396331569678494075905591402444838459480254291376739547776545396126440164747844993962103227890489985436859772908135296556319682323575200541116742824199498546203187478603763894462498817053974495631522861764584938578274865754781047203331412801566286515508368488547449280939941159939590606673794048035892741804436789902251683775163674873207864350921304527355565868775487132690739999725111890269062903159337514705021729613867845598915545553023152604056996488712409761543664928749922719607416253946373986949370622758978592799525644619601235432064166282290763465937385194715622072985457028962383257647499794009278190714133472896410839046315761186767540895293804883021618192235557555133357480723147414317965446462750364639818143152317359815172666009222143968763052654518155812465246181272110158419715637764991545194597661087937102363717025293221849931801297473201885339441909954148361259863557429678175060083580240299324737879847493615057033427095266102344333132284393497397522487153900367419204760633774692671681666848133747865681782008330091374537779305954445297109471083577063350019153460879556880605277471669889203473419384969189912711023249952102937914225729104806728775389514015518341687692472273797852812316828139374922226667390948031681503399192654817593087693329270222253134056386926536549534470539499641193622408485893782392916989722834711289547745426409637557722775778314442670670588166351689319046823201557727069253697172610869571379286245713059941446029319846846098111339014159809043545359555526682724001280420614778880454316459464538677522184132666576310530450954238472048610527497898712408826457432645879099404680037389050329545656377128320571149641181223805135588469760550045600654364752828395726921872147368500953923840331122609213204942452863166161507079459622194553673092535789770345039906155163079158084513232325715375892146874985739686716236549943333435439446589447260089256390945356885136287565324160397156192291814176169838550515468082333570523342134785983449029778257735474527919374763579813188588304356513963496273348177202108545047207839862909017521427823351127982902226722557717769849604037849076463605672627621937867394140780979508113433663796233830561544814504540276701235644786194237722328409820224502317154524153756483921598735828255869177072227370356781043537266380915169516862617730267574394885188385512692868807465306157336710315782467792399441156019508284542322372206193204224315320138799633409648504858925516872134398727459631597649864168282286518393147747897380788971749785904721486688841075780211696026973523844749551259306048298918262145677948295895778207655843592212971920837809778951030986619590431414398463676638871084722198123919419977833703356220183247799721544204553109558741628400334964905200457342615331504022404011747106226255712734291300405159184171391532718744043377047850522976871518110090890494147066616928237656427724386966556653176936582213621530767929412656934824462508658672656924228808350568010520325565598257168206561518367390101906784092433527763725549080333013311966056685398739433817887389364164961490506895233693243714774816775888233193155538973987354314778588635433075729731664047094842743711091861302038673212893291383492343123796714518996353433210369213374618823322888825917177100124559535982812989761842749203233833336043251861986408174743623076612628290077642438639357813340962980955017933068816619551945955914856488378738399774858189404450023809973527641687624837490713533688073939884825883633776031657405750131235081343426192242724166827710582080461507034796966869884263836360299580981710992155428055943520193901153892731878734979908199070072734624390177496646506684284578573196829650048520270048173912534222541047644791132685955161955446035935582571271166446218688167677802222471969838600377748435606380069290353411405121627575071771309476643757088963269130612517266360907001072923264379663316321180440927248894453966233815147303017849644676055655972782933052535930328016358202056252621427378055794578818660822441882504111980459287767053857245646111286461637984740679069617842295304805703937636140580344807165018699241971845715030719653635720312441596366038938977751793640403643617794964357396977292156204497921920101912314975733777846044820433474938456596337163123243263101123809236134084203857359653483949005594432046856622589215710619440787346533658504780998177161942643283498400664023719414440963741725521855756977573683307197756327423469454515968490278923099876016164464129334464279497542552388285032339117317501078917125041132451844274183489809234933915523325223558049313661505776484478727006013023708079438234626396031740464144033030255444279020822526056853400212361239451420443694905630257688004434802656975386823108024692623460541889426231365540805661298690084852766746302329473145939979511360621115364927812620290595979003273255469972148547500406593570579914751025178445873411416314901569632868379977699495832548068213043060252541209127284004629690189946858828560366562835124179944428556044265423521470065072801438749638849776721830789060099602012726226916763197086102264314799932430829790360729825319637494111961017731582177135916380188548492664231423846163837374409223818370979835047806686168866212288852997978432112168941637669517249364920311007457622212099464768974164693893226138853457418329910822098929778487583231857428922597453003192618289260603279643129951099775467415399698500895249255963476481370309613141520712271285346593813607317291228917625868657498867343747866194347379847351687599901776030473858728401167945312230330306887472039848447900224100793695110504873417920365066844438607369482245127793899662743925095210958990220839165677778288471763500543355979264988999159178369803446852860540163781673392407020374935154073227759093395068996805728092271945411948070276008969440682061498313109353077501893825103590576543064446858119124429164529355166712915775201252018983003431665594972841352631297680150533031741387480544897607786077412819637379970635086259407471324908772671694742499914498013592045855747069499506197137781142424634398367190155456971781157830414223481826010165540208388772842643301427429688100626571998654190482259004422129617155492362259429549085388144689415649642742427089287080455450659422451335149151491823805146849719028769278922172560876809394476427985711082796685404160701637638681937200395477987445085446922002796641789513315269548968882631674339283334325777470546659676773560799775289195550052831276638755208981089160141032249294392825040711298208168988051669335995227079439805004352474843743304982741050414705788311721215364343678759379622922641701442517278032920125353651563391915689335771135296829910863827858086198112169879997576851433000970950692672876544722010230996592016062024818836234703223216474564153244004222356818794742812614428346057731158692370945517196712212525617610490550387536944636508697110292390214954471692684885322143563298258360166233497451160604176416835200196152733609960539638860337925857895567307657075168742294445422243048978338658276676030018666100292805497574311006471369525196064525557114066886512316914633242696830173566684352803922018487523134560732806963169726380962446544404143644515077240193431557815572947230530417285386575048866917355158748740865041261941490574102998312235500220985054125706242847171810013533818522930335010694494025725071335881441395522450244985188019732062027274801454402144522399324036986187748215181005415303877892942934576349210598817288078696701514691698016381866878374046189228101970383561304464386322847211590775654365939402527400086906761106365402777144209259022824473931973245626225676846511316373747666010559680633932153416376632000100732036278196089562240765075484507321567156562660832157122270435146446822896534665714492040488779447610447887859848986049588254747425355076429896102729747965638878793619151593871554076227503305534919480848337236709900578901238796651816444810448060836442157337420514949805743133264750174902587476382877521612757558145438462418404819641065191841130737901289576439352182064296929140816509932622271495735237932403501109269619453163631949603397249855216925849066920816864955591465556551033418557602708340371125322146205804739192859929020749390549906252065844427937316478624830340241546329092430653544751658373492240894086749884825034949462213533008430340100929337547182596994921479003073114644863299315856115055899977325423568004999712542675923501086221987858087459415246855426869239389506686370739848931453139375503950229181902632387789670341607984797328155065971413947918715105150686778578531493124998042259585961236567813580578906841184631827247893749348211080872619146441000091708547346486808234068192742247621732498658517397320651517806784255767522641087907811579241412154336755654527503847397229156814955017578560806032824234273142357273109518942242466859459328586980008539288435258182981834963761510309185107131002974429452880002075643304826276250282121336673191181320426208350400533385602800376053704738582230426827102001243917453765587431150185399888710210902451034965388235144620102349054355926922825966117184773063054230132219067183174064643039441414809612986426894281911995345534924851714465263984651494059086801273056201021867572892190148405779080957635524421920254949589324179245417887544469298347385167680610728134174755429633131192462224328315381449524193791037325696928140470026857160059791350479964080173819425574597502571231031583588550687403874286927334960562775421975300450414360220475668585579178972827812037323315813814556551661679237839056340854072769222286073575240557934724739329837973802590423247948032777432613217121747025890207463432703070392989814357477619232131642860297361631591322515586280639563601943181038041206429348612787043232812142495417359860664568907499896242638023379740257478047531618721090150243809374183000866741086286561575936781347613157626193356277597439917672927085531458893051192178853189615336349165489936171700388379165605461201840727936618164980516837056104406762324776521566732004382492924117738246703236824682214101217409450984181281078153948228317202386144221756027490342176255816707027892036648911158713428700882050882069166631036232813414009607808539829885309981344417851197292740434772802266209404818034715228229056979628933624303415604451211865994230645578982647320048721038081570566881928229993308011215096676839137072252883751474678327840802359242081158886429161681561396834797121373699278460515135477636571475746267284377698790959464250503298907509335233600162994541497073751267094021974503662244352802269200803804310773241816299978435079953387416396392278460032372417060688807773980756733587205868301820185086948838296190617063428826771646186477263453683868218123666501995828181784176257497406853373737316322020385970294602426150618126538282731701236308924459566804912397388335715317297931896723554558210562363232867397778357680267911843287453607506707756236678933078954513159721101826684213250685337619312623706512986042823798108950981279919734378366427421686812276678925336478802077184714653602782336105065233146982446374875768310077281887284594431154900484507240668328699889454637197905793619098805492495615286016992620166255619314120389893216723734328681284626215700220502695324261990647480708468867757262509514791520699724229103001664046157884911550701186054657247372733302481592467912352761517523485279613833335725387683582513262821094816138440890650303361982702550493170123159899110066433436204487775586084637363852985987530079674511083144158691399895783116920460736741992857306954735232236704134927689825670007741402890249690292743208907121445056344929519846674652729381562523424925520191118559064434267761957356710632087182112563046805992602333348603225562453789455489288792920266532891904160092147859525955559600102670173141202496600222750240019013191897383509295854431462604056065128905046307346919273425458232578507684353753279601246185043561639743106946806423135942559830363438052928015905958593221206874480621943842228463094867283632556127885793789713225257779207402094525979697205507964589019569125680714032731796091895761709466128083409250382339048020067463508271020422222563583121757608871790881367649888841301207458945412673102507712624339808550972473357606319518429868203044645814954880372020377813513545542379740318683742045297790036316290112767953749099356126202670685802524929853433067007029056044408940832912213955383065259563697378005201286390580059232863855223069971509114538926895083469212093634641446777206226349425270947663836787376939607972398430884456333603727931624204930380248795608863186103805086640374518298982130694877193951056899784519821937129140522240762732916684981987903134651400131557483183427707628878599054046241965931681962227878684947452839559294157840150490539527762710256812505115636327218781920710505290933782699638938962648171006423152073113707991369354638945351590976389077833378058776699942125690997555137283395582481456326444659813271567060763212891828544752119404266733508438765495913530611502624660667167308572153160594650185232849544485799993350222874606057334258150800695719341623289333759265022504966305664191222950118693504118634728061192693347352457996774376740557091873264107268596606828495939185005148842143721752920832837029466140815538933461162103666126838534470760877778977429246883989089598218809468260128061474859062270889551010610594450841357474920092172482744772613548832136237493110171467021173005053226064149071347556305096810827194736259579404224009922395195632982561046017169829912781516664465130598640026415665344214907193797300305407973266536724935217666710474689497820672391711380485715179473434041855093571746234512131974187116572385328761221708662141895383983851796547386164359937654883916048926365717610005327027404299210509285028796408841991444126117210567873879653030113768010115453399988860565072075306081124312529982024928572619451595890968389345245784002938063334251952452947821890498261911733802692410935331294050805848305185818439218138193057821060641780832708313590407341414364150362842189654462727269845261648861930014860002630680333271194066278422678029719353696198150887067677636060401832328964507915688496021773383064931559212664222487420086246840190629667444174394478159131756342814954756703018483686222667372216419479515244961348113799878324839481842262609964502977970409670243358266934243865009333389052600616494702114362970870533685987930714044774823016903819566393396033096848483067624372780950380712933922532017049562007496767683172612044254958597885213102606673576118971398332271966053112079342049211784803380745444075662815775883030696296463362626282420023017359960105989843870657438136856044048082891743142350844159428001465886639764979935436240741661837149797732723836882664335829430316224704902538620525928177033857015172406198419434532344851284920542042108721195329522040871108284765738039839794160628722528796249130102934545611573317852574862788112779563531389750063469726590743122437933868355877755107152947505233238909122580672421404458218924189279802697699958376124089889036641510257541020966055290510160277200266573090309677383701317483395414571966703848992299899697250044851946952115632423477398662510292294588945505324062028251320392699622508380175536357716690314771370334954476390040238827629192857480553425644464263572444124862324656328221033607093445554478876086115156127523736129231373699986020948158934157774992160452227942567666555027485386002393933838934602541925210267977493406361175661716600141596098285102894652222550058395128643342880884019182146740906309873022449817695192349380715809357282132264102245257943963697296699323180781131779370984247300587800539479002365225289309850058001147207904344786224712733379676317948666017544924811063748483752416499509246294039468732759477513916607011558629122451764063888010571050666406123916215484916485470300297341487174293429807823206898823230593273036553216061059324494142511511567932693536534990887391892384160421358487333159948131911276038595095613027180468505196310047703867653177732776649059499480569550934745636845639109443406616534112880331916029202236164440213485492958204121724218126292408483048537970275058492365417777384187408165535390063300396324934392994857119858912925238006150971654011429731511022527768967434026116802089248761908829857890520835877168043937183589284053382074415981889181498015612088832550152346171857225641018658209392474269345070033352569491471418342587739822405862174772811165636960505049393086328918735631386785385198271847675326937585048178764113899853369930836230806880528006532227653457943014782154940156555240911921956946745985971592065524455515383526925992645581044167567594365148557280202606969152761034215051037507395634566449672760269314718666653680462048186554702231864913315797779547446026031908189157127434664199765448626754950112550245875222044937010972466446363980099687278623468978061404349887679908564415604261883636950980615101468122061822132151434437020659392545643073324364239167989378498921955164694213916240620158451850400354033909618674282286256424046445201320349505064361199595103856298183631719056037415967290740531843997954234689767314494875490106502225833074037155661860322334978657989460118288690581266846463037847835808974439974427774768888259181452331377994966154896344298212391691968684042470677051693239069896035329962079019181710317899026084947955990702690044063400881289029206812925386671362674712065303409148877588603167228939432919004083515292780023960814429209410857307965825749337853837951245937446400496247675055521783019381352311295376823292616646673319126470491753594330857330534698684222898232158656808712446136078291378379690489428559468276056947128261002274465868972575649068038869372597401998581623600909228324843544691259822311871537593116957099808376848640881653717966020979011544305588245951931464557784704334215535306824790851793641187205461994321910482637146609429675359489855565185360208879398557369891463543629444882030186318903046989631860906540137126125248278710180709008043066165689786787513391469994981674658393939889043915173560017674175890560050421587722326219106873361399742844303579358446941934632202444042964058995553811868224836100380455705255946083584024643297051533111452947272532558718401134614935692153822945753983350517152626009714309816334963505823110172981583152456574061964324258642398517605150084492690349015647063655515084089665070209314232739164914779791586423558909062090380893185521378129225722673171696385705208566309838976051738070850628469046380915013034285190908007295626264384954031897906329915108060664785364825670637919746084379887687324886021251151338000849044475560728609092948368769868275714078232508694150905455293970741614192798204311939067117059686396230128867854410524466801754861435050551377223312452206676391186093751086484694121731239778805378880762663323558776605586880596614659039768418452563685649047057454762075524546342515309295327494074060168967854423891565897886174826840483376332453061358396817460432348332271893006437167731611766624333576011106311062395311953066048403708464582790409156852356261505307136293686190849206519423562789539282298061787815457993843020237988626807443506567342295412396689132962734106778281994467680419299043926251222934007262330157681124693816144057891510362274986208296539570169908747941615467507174418410048088999457956718018929361010422009686812729781470951224467955744559898141838032660419407057190932998749489688365102881579576154072802878463221459810534276438685588538579053489741509209938028567704822090243039976918006168935410685253479051183880976616501800269665234593032464872738832314602847316373816699104572234400655217799648017269658190899127097855948928442918744459307906273248894965544340388439531544929982384796094368037393943361736933574888655084025761203661396393382175824553290318906395466205324221243339703452848937426128087095358045285919075353275063968491880571106292346702225354153891768782496553593515471353870829759996818788152288100165232074911973504243577875913732614317136306295395609468763738497202709347447118096368409521681734111627668065159493443571863423002056978009844689559910312813039851606078391850445246915056059108185935248835075083661266944614486054301565994134497630057534182391861439038540871408102875011253034159347884576953397927352528710416872849186389694466136382226579285866670203354407379952499389346619062327661696908368321338578347037420034274255125292726431865956498118773889121657647204716716576373683179613869026070762821439022126818403374573614415930209001223279565579365959810485214661962520042191184937694420964024993615007065841269603448054045029069405041604603725001745565319570673250034984976019553554927177264410124079427074500354855244653901738077738205844156361535178866105877353942854680524438878674073306219328182678771775289596278199576769284504636423976282959534054515281977631438551561810941671009605639292581752608801268929712995245276771680199009909002689398223094753639104947920369755700575018364994337032571060056156864897847882747607913165007274667028970287036575933128824505819927460035186266575059301250465385570535272687082081022710257803796611732967317397737697682243003344080857792324308592425811046831059120206809137146160002123330775133541238408905521012836073341579838191756093942376075851515917366180901051145697918890940461264895129770879577028620664269057798393121640588386776128246585757720872605386769161593927680690391412552190099162023843321336376262497955466713518855315650472061852664691244191822980471914261681813161567051929736576590230683467897149743615653559617932430397197243077028985990848788442875588191226754731293882752168495587094846781941276092369492821260724336185423694312194379902693678708379940487309457526426509447881980405075504863271911992760713176138435606250919636102300679202120026861207885734774496118170238151352624133153347864037503498756269534975638181183559381643168908146747256109697345930359049918462443923702914478879855917718369145550170449366462952354121577392367984467263171894624378926280481104356976217298243030808507992103595066906366944690526603165390730708908964388342762581778900502097333075484441197698392079593871015266421065245209176351171694825657462520322159856392044350755027338621148765403587188506537060629558894160701029014341127075257331767495762975676175388088267376643082681559202235082132154111983485424889597597592487983596529445407025231828581160134926260130359999851982192109411567274731453794550845881959868084199344745365509246681950216553495279133711128309457799793322261038759923000509815956091404608799071435808007323508945624778738142567899560389163661197922789630709209340512230845814379749453605208338070552443880947527400649875744491141165301474386315360540324856783161182677832120902699276043039547509694859923449792678686382256672379433296273144245822740787947139546417112131061740211794593536364633386322603983349259195271636956295355423672254485572862269085504202158626174336170082841820998916396399840582605040207691352476165880900471082804715247339451619791754687689145509936143653208218207587495134254321837164134109679591961635710538077606374226498624476660924288608871643797422273582361156818880721479139691590619156495547651400833349183604850729909230572677763253058635700307673342788492822708508151069647076997617644139510299718907684671755421763356206937447490996889307814894935415795791251295326605477048004651137346462468662756900821032424723995015580541024509881612904705402172364392860365913718834454294895502601453442846851202907390614628710703563899005229950235331127914073366530114371009221947124594790572756921135165202779180675182864691884280386403508897092188921642691560363877146462987455706332669933770917534781298752645994326941924930663250917933531550017398247236405558128528173670338959552636659910459440342307830635502660234616821481237679153740353377243126699169943596759860838574297458864296916026895754872534309504921199060471378587897898480227193098890427848073606249319946035659305873351499451713972341134780499603965067587401385938080207671117719842995817706106118212136693215577783708354580042648568549237883523098048600147714796020193905541085393626463081154044707666311298623280758285004543220721221094100918524402584654879660565730988815408304734139348233960188266382652967984227840332288831947806534850566810616626970654968686818489751443877756063204166124739452007360776992767212972408183592158174332866585576500180584781116055260276790331782349334566837980343595652186414506765333260337521915240950182465341392917227524252505069838615470634545912948073332134491474048857828503992421667287915672240846474142100437568791572950512912418304853639286217110257385775151419995525725242936396341253843977373029867416492711887421012241084650089701209423363044248691482825304099709618542133683521704097887607876052870591488133711087685136052624338151759466284334215644502564276371727873990523561759783291882785382491778589411596694075367299165218490993621023075362954100755883236104146543731114920098421659160475506772522744013208656577759321581680112354528572349557341442074960236073828577368989369003171975867538851062543462109478256139560070477867344218123954265619870183778253642990852902383423106035968856497250113779283735159263838650501572255425522529313186809550323775022402898600013105885833685079572065856216262093412467536033009855278984210688212051111645225277783208626234978312048606331465944559941572887003730471917392134229882663658004185081225734918394493763199709882629078175769663025788743030509548720704993519042982918700424284796290375735197688440820837791554579008790328918923686425400084559027592963314415011043533189346339740884641257104795515984516977689790219643000655052480122393749518575741676527143167321254963062439168825893222799666681306370473426955769037790483858262455760658961736209259047039112588799557789031503842436619722573391503787018388013859643228763837316574965892678639041663015547581975487960138601018513117310999383515661245017495001971975920774072466639971122487360919309063937267352391806032380097789073860926162996500515880875572657034053707047243414826857057908852956726978061959030002648086177035634542350283063092999859229432984220728258511103267586729627667554848419093750261207379746295634734073917411621167625402402894980572841790141734673405055934102404199660639380779090504361672436649385744755487520733916288147242680716179139262376784825804924005334695680411066222362977591978863946856731804190588231909809618919492488746236903513249623509013242944889118354247976104971425399537208814573726501162376433269822910553269869664826120860618033887281279021196159029037160260281745749402917835552681416681576500788304680699653844598364740427165368889288242656578768153833353364897083880649541622208881108815853199442674126285395885186911632583124126359853672901837177831547149640589423092908190591241103543551415234499757873596876750913521241434478953344644904100117406578916218566187178148815808732527246331900885169621439541050622138672937867367396145280107038272830025778194049561071655914624839139038985861568981095270736176908761957621054332358647314068458618512658148821479062003381960346084634045558924947357383666264884956676168813560639065301654341269196491748638431806855767444603818575769400499508929805250661398290967628611698651138573035299184672105503448553492308163980465316471350377644878146857024285469268469885015175845226873990733628909890034089016907801303465857343826847287750509430186919368530800083838902497949068398495134968613186272564318457716737527013238767129045991554683124872237409351219883955765796491244850748425180266733403343426815323954848156772600279828735032817396867317200073596265808292966597551916077020456286418986520322151676580392392498348432644377980071832363529807031480545833708465332405796099995116609314901469132300321908276410911473008398221503061707344582506624728937099498372651409797974959737433093467391585446081258967358608975727935883978747934504911786424149229578218750190003727674098685508158646705610648504016958738943843073560738195916510876931418269401415814940720353647025728925585696591025812548436212623026820243280272945665066266264712747793533162861352622306955400611661374429964626555056283637927351910741213175062394087357511667020590456611930472951915174150198545493886358962907076090522520377794911091237071060615709068274141446604530718541769732146267222341704723210049701367730147034039618728668447609062106901134932897648778202793517250144208370846986463972810663878045653357410431284662768508693851753499866505014090221343658725037503238290860975754524683506308268059695441577337306987814741334307588796982430210215638470874769812623953705311898823688862532466442720473217619050427593809684844350177686072518267591695682474498444949030711220146197006778033576010892092959489273811639130624973812945506166459581147448206403224424650574100217826350848463900649189474782356621870244720599237011023885311339913700401971501655530330087710113470342939673934355779466621954698302024203580946678308579287535755414851549991465256285488253369830332960799860899543668314647762174078102322126462879885503582070909830594954037774042740306241700767196438268750120867665154165452282190102534287576336951633059403815228435580613225085971136417545551262741160510219748475808794042381066547713678463917454136487327235306932265585738153514760784073448707614028821147147484355050460128415560437282059309171401185910015784947598948928456264013347337488150019758393492397794065240433737055979519841627136196006729802350837793943756741855290170038182242124131572228076054793762474106759074822161283863014564602408431725692675952468657294158306952916952113138735876899343748497910951131859791254265131952413956296291830112314512418217933443187436655889184380519347582621045122451042668060423341316949136434627133504216322665870583249052543534397779064861823668447849516444745470202284951612614449300492058045038542002470336422109533294557548640693206246670452945242980882271467605396956667255674761576093717242531659375673218313773103227362765910918947169705093048952008226680936403390742276061440966866205287050004951896179562377240691829543913233645596883250522230310007490007602435403677624588589600300028254028975750613636807496746175321120517609599194153404411663052268887647415014782992780439419573669746031079339115031798916390964919525874271934511637011117398025871926157366805445207304526720022327365693669858949675552814817933636949844329398751509609900847238023899984870629919623879190268879301699979148962740992441774630233989883200718060188630617387529317442974778923252793699919491559982320602558187897888910555018644079101223732318374430837738886040724633459646226337617794229545474390726064797660009231172131175946462502199478121853895840939329390972342381232014589208851919733147700895216948807988143001001623673021109867811207522902815231761870956520730744086363282267979601335213879332007235240648424786585137363519160341128095200446800553641008990424442553676764946388448292182195602870552588844514887429682785273059388982778798772474175258256151647809374556758020018123053885825653155040254033418871971046710632888576072556036065349780899531186356696678063411211125631854048659987320194780008189870361325887348684129668284791007712301686007423130051869601960569409935209816844380943203939268240522021676698369941584920759248220096206727828700383814331895684662833094430662987424553582442409387083210145576462457919941603051554057131729161344889611857187790185320094691837145903956490019792933461818245796351575432093944892719312717970609054912062743451024918272185379179859727503413821094800935199094728008975517124941036459110658932022374584430917284206196367623180542200097422713041421053110762276164771207357184657218527639623490584484635172420128189804706044308316523726485623327071311862585408577118123079105451545979278544810210013341067665383190537101544765465941043345807868583632755933324097406546374637020881674334242050794772448735122545566619305059150132275972301343173389417029013287189859376582685358307654532916246789273318942405709505015637926085944598415714072543931643482962363088399295099087631572232881608716415294540823729068351737297987417302120284634663506934052207817912287604253552145548226825000302538655406777166793568247504062462283676998690655733521296018207988345094477807240332874781582258407364330384379990988516524768627617751053193446408853162596166154795819532716488232699397740843665846601211774449953896543898197967281322280443451129562753836434944720587122195302640015946917022756807664670862964290429542698454153596985485546601866038626322925469835220180758199495972618358003486555095178363462025931850114007163047309714227795395713622130592517608918842214691712929063784338555175127096397747699135426153147630803342001796754182667398639666838684218256253477168086192588038885145612879111179877134110455540967513707194099930620623796653426360664265396502380283524688620553737174383040211015161750986509734132057530611459435964541816685245507192965598977039627861457152417045122277462206300177895225957664089685442943347184846659527081377989255337432965789033791033408283425100221684365577859536958130383681793615480263930722940039104126788763728250292944770496198593642050779953210406847713709196969735639627655537410190535920391883137922314673978034408933015125863331787532170185235489281546120133837527002288207150433289869276259292261498374156646514001404561368542662496766273214357967208627232378083250889343116398511618943349473387969177379113904683812694645699552444055716444735683958324186722698261893617371732495771211725580655114598251961430689268892343205699895259387033042693102426950524175583915759556343728448222011544436211196912020519548492013370963413623869687389860801073179605247955631970427039485039356234540888847284796735249071697122916341729562466701825484913952625862864514635477598516613029933053509405319995142273972409189090724108686317368308840948989815075528344079577890818519636747848624369605683943146103209613844556288756796544848450729558516604607448963641122901110986171049318704068862370787915668662413525286151055221218514367894503098571448133159100174113569707808023893055765428963789319743875466147373133266660583805004327303865019069480796756764543260637425106841915916056965359856694288098593227985504435528909388676161045014413269228967443200354088372473950488651594817477541015507009955615187447868849310296326905822008305945992034576072342561540595427613232045132603059511513127881348608458084756467190861759779205807993062069418417165648609674757609191748753652903773802001513090955322608051782972297249719414494345833025075384909409802870232712818849423506473997105184087965592708240169319753215753079596189492060775911168644575906931063748580199297999707366561530313296808918077690358464962849547686979890073741212542722463033680638397501442647721438982219333589232945917860997267418712124635529184706296289535678292082181028272288090450192248860512707783585528335918621239563456948509419203532484623845891086123081473488178812686903280377537043397754214808858946032765557951584479120833515542649653846508865287784326763191914659482447498473663284721302940184013094889293300930980128948372779511922724039493972113834473996553642720978916858732029999132644947478743232710684039716143001102623126124462781642371680474443849226627969897602891378631898787436707432233754949668732120342790567416900905290273367904537314155723554545908054002798594383186169468252814403302139463780266669694296382734804666205100130371866532429610081833418397640642553751448550223614259686053801710685006568312679811293120338366291575687454117891605965024134903070718673493399029047824999415159324330851660740173826416663107353306827386576802386353863661092030961925697174300539271930275508542691246064162933748092098180473069497436583843853074032963098734903613982271086363533804436742585992476286424042649656256806501757859427139973190282260959496213971748878552919922105022764251317081486637709055480424205743107166706860236066866549909674373862515763287008870130864128374952255490287882183693056131518124207114262248798465014799691256884451993410548015911462451125947003401285718820765154265305441243922316822411550173722942712875505541704678022851159897519269617966698199161691515245637819247719003409162247172231586423220343736892914097290944856457852381791700612877350233345077464521496939032921831837115128682505041078079176915008918102090345246689222990782805542718209970937525950536931414566264622530135520271753959731355708872973775035425851417556420097969089032196132925740100843732115110374595382717695499095713494041288310208373414089644962713068058015019645503481887925090808942603399702892532265414138527136861235343001969597821478896457848148196214258993989049507861863673356832923147842726432774244979871861302360574474185212836050477286038558996881932674660163227399847195466506386681641765494471736542574755609124670127413500566953955171221602230438448188552365072839734651136713412601157664718094350605592641567823785071737750686985747719627366523296653522873486497384699686158748373404190426456906681664270961685488242623931408241500654626149212336114331445917340816904306216444382527818552711407723116581329777947615608738329370633503732764466512783361737469413566495740142129125069124153654546871829574387402766074922815941214619064977610911922425417212560665742453808052309050245417466962585565787162328788568308212647366548809451005865015301961511747687019928437314647972771028198723657583560354218426633875067605434923270803644385735510709968080926906557358121676096324496568970789651697157374788754098239606062532825427718354845530537045374466716083834879185137647236119703137430949767673626114298599018387757922644401013790469060129462057250933072816830124113179290059639996370195443051811247741171598316661731764722602063678080819203886353614970827674744419166146112225320484200576122933623011790362611886565941571409274869538437964935178113067666494168785523259921277374465316499594252830521335820627941102572750255408784626104549483257235696611598942139502875320529828439809120537906689162647317705113176496582570649906724577183896111051090291867324923130909855641661238966463252450533609134783455018522770862472877193394412703710440716555423947529058235250504635905096005156738116980712526323341099016664750345956872596317676303572769374059049861833312953189472805147087343024301035591996646287983377983435425105984598134252738109495129574196178376128789898762591944975017980671134345023778437790532671558694165929219210671796605258130742573235849430806331616437397038152533568610249888081478871796478798372228566980672978758530746909458677969921256998720566112415934355163540622751863968521433259356037198909100807079142739024562566217808161010893658104108155141513782119449956317670916067670596661134275169080449748784068457763178649051970362087901566106281103108990534609775998738565804305555832248089945131605473645423928137360969473132959680982939274355011228831048193126780058248298197834490610778726504275574002717251764909534692781264456772786152289905914358995592241438630017377268025043663661356279054212686585721595937017373687795124132609082299658560437136156545644618928954178827439239713676588626391625768606525412065855104196206875224253521675901295214930007224779301525759082812821763551902522339787603154558778131780746332791085301689458986451605029082335268942816732495289104198916325486517725157910641773902657050046738229467675740432174030318880660024794490426911701833934070843412402947746982423189989132276236492453340584130915363681450891546605129499314906200391492194864872220544449291768360577684803785473661771931125007314452725492154619151113236659278821049191045921372023957466912561007240353120113373040547407089275797468041800489022134611008401305250662507925151001971309320714167963754222710410825959870695594375751814651899277761644877980630850377557081594878836468054607610411311494260786700134485662665234053805938861242547324745130336609634046039012220391740986977592018535137274827527669835709898090843378618342140004123664837022468146421609323326694353654980328965749342263919977759640416713928552315701259827834897817450001512438055358310586026814259975535941315424980581694908161002676443474945957936958620093868658052620002350402350719355675344051758546978509523479183505962315912888034835317737266319711875144799556690690509057408839248303724619671634503877420162929462763680491342505588643374449511133217347979205254560410696409113954072679622611439399207741958013261244184547724308067957659107401531269599654086779756384965710302229272647830733263478399479231961280023386587838365572459747974349908782364745984918253631134336634765853541279457725707252884100150927529411438023190237228678645722494353801999931098053654930478009123031873337874507177432088652356033504983682855491413306776388631880780288314726003700639990597326458166963495192934502554781374749703126831200684435649423485874278550008789141713629529654935088928945692344254445542117082767008518349127024144279310333863854371623040609146337114036830894434504480340403046760862782471382697661798803450629960944679083301928550301286285663976473929781379564600188600532890190079781156968584110396393295346848634121142541545922620655750266490801869128901960847482323597951678632169228381694832847992447230706625356162693675741997991857309867697216066156293875968896579602198685547595650492960839504147681529597159946050519403160241018238598347150676204348443957612322460479756115543008624351683340346521821945879862662566272237339811614213701283987228623749556416769147894970626873394397149356936759068137500691506922882059728010165757350787573950294775755754033148712379056571909638337955487226050600111367597122491672732838285418749065281277700633467395407560747493713962406060465444763279830977444329630421055713073583324441983268547585084324678098016258181353749516860715460738403287213538706434302053007913333502205602349131657678430627725119230009119719217770155577925506235816484392973038931513455477332790712719942613028524978487461462128733594648015439215318199303095496357549124534539825060997626622016140648751466186497612352842223505903287972465954294413559782541528907491837486112978472095785644336730637203061944274739339357046891907242040552370277622119438389710805615881904882687016001077835523319651152917901966116973462522985476661805384616334781669989884583820507916361087051415634603237048050867511019937689262167406678633414888628763841116968494477208048163893590245116030157030263764905094300903124937770504086124939743239864563670479038242345290680926596438663315839179681958635497452635995684856476518816592448543032104474545785739736218928731957211306560455744063082449473265678848021465799998546747146398519217416950786304022877154319413139292264767548081468856859468405881647153259078617820568301238495710813953143120323826399559689746777986359386074033485647915647031230500320530755854511582448726575036707970417062957766192233348494664621064661139310437600514900095743861565976749206009158124637602051771603875750819114522390092720736978672381291308619430352588745079376909447580276445273455854545030441954417437916763844215307322425175203043668929616268257272268226282079002538095844236465678952331259663092328461636301283826582702691393569997228165961023980319732817446474593613554357113488011762218435855542901681167953064986891598944881958549610573271581417986849947142849682696707968337095079689846054443965752091470877535531483131707711339552683615060665445028898847152018742590057467775482400620416871339206418388647144198291054627651940048458656883487336542532603453496771222770463496514162709354184166800680487801765093927259165146055121187114842976233402618429404891576100640316522733176850031471783517406067438990249722842635680779857587909932995333796290963721745822609137398224422843282091864172720037501611233272921855234899616177424444310525907577172209245161215757404984050377418715038208148105280704390186797581406088262917167254487242861808233631589364240491569699135767945871409036623377382772502826469066031090387254901005437991998882384272253904385559794460887629191280080936362690218706474301493400111858012128171794971999783640476447415330743260226330110669121534547634681852593846290443321649660841355880748869631473737455583521009543160842948999947226473134446477654015650501155278065777065209297187590796617084603862396546595034815817100827826588836356852326578547111468317580430473293683338377323467603747236614704113466956072185404322654313404547210866566589794519538036356601713265271312457944202572616869990361735837905178040488683287196305545079198884860974036310493522794896141420423779398730321582092298509459495651906988022300422149893656195904171826154198456412583121146323516897904091879263284502581882820974473085878678288227243263448843321290365003610553446410271287153538516989372401479399862672472198805326950639289506878090710627536490767048142932392513621114018058940349869379407384702907219019550531984608254405814753715215937256094141204386631336803868461073256601087284880511219689514908963120750725304966016503019981091168457208501984362104455124305577064747040924605091404299350601122851526986818665092724785975822724353122927911626391835589509044086388576304704739132286076998421491088056321825689711122181916321082879383488146355496271954818133467012277839183274525158055711180862198453981025385643049328661751220501222607928337847825298858793534260657134661069247484898846903895349260729024656746481024104072511963587632281322705229455422506952944793464943251784069491594479831524254327144435319670796886393189465443388932246175605630560335187438082495842316813679660900034208135540398707246919561758540715577605001119299004348131694447225973562786003373144635156664723350511189966258017023708828282699895013978154601490491442728478970049567259665479820370988054500412836388004105723455284405579832645586035656257599314739319745816157797465820584142162382771264644007517004077918715175487517337264073004228815526949742612489318059384525823639540604065271372319731913360306475990900984682191992867676780415165484090314751028077504654499010222686961847483013589552181255845646677627180359590562510112818304434053121326469654165267779761461011031761445500673170222914616815643016256904253850822030969762828883694348238174859774532690140799582041133798406783589601386736694079202840685696226813569179131001769909323153072566737784724933195330462558296393130481254552934075121259959663790967533775827090323681091329805789003560383925850364370222523799780557999473529108749108249368199719100052764781805193378699919901472577776457111365920049487763154041843225673990087167327724066328569535666453463911437064485470473877101979748559765586998984501611897978842894790006626506613900540090352264108169673133717503954566350766891387337023400169233958042276735288611414187185961199473978724040464553847930272571757418574215866117233718006391060713938731620245603351438540831202643723190980806803864987892240642510673962834901751593165876908469262475341200254571845576175840373317579313978214913444690605027593833719533156127144562647684275177086782243459528261562736493918415984737053331548093213023655213078445032899678301433912828651444925292739588636206503330088770357766352303515265928554971237386228060961401164608809973036567343275700373920228510382857146637139461816439204597531853326033645226110520223501633726534761231567644456231507217879992440110296161014633889608726822884253023867733416334347844579389797030867687879344723392111570571165164364967930371267123558153309938280974564716974342123380614817278565461612789756378044283034643208948160434017904515049472446094773813694245403836621047910242557833432799709976168990475479240323750653023542358694016961218323591421611635108474179082521066183706013983131402925305192406851886053151144519042306580104785937647043422651014457394724044384900520178047880875732311434885768127101988948668699786840799384808692849979280056603193082505004129803027503117788794246382321209364845696110193526260340762893785216313386048573718361856399234421548953160080552728150212630850952621249431947654799541634904537002349368122596599051828219675957433702365598944241489516935532014927619747411211400353295093619712540087652568306426801626031901733208122958709250485978878920772638058822401844273470969184636463237917373520098386847195265743368372309370693159287130321908883199513741789868683881232853366917119165194775911135722137079203998525116169992747805771086234702975161396526892771645117699428853402801956747902589064305795313157210611532204373602491901455529744291111870571380733883123087971608496108699329191050234337556242299365868047730440288358928269978613426190292385600096676443337461756479672617950564633658472463695367797809981173906071767050803927046870009244652332949223085967937238923510566142011304389662280431085400765598056434172954235548893227247555042568248523951876736494043762019806379053002742475611028051279378703556931209475111030932066186361045418971609930114897309714935879680684321385909240576933201955588530223724296904659488634641806541564871345267610400139819041730356123007032790060110062635527668991423788852905525583583595488077052724777007471135060054199322663535994894899743482754890311295363807116242977502464192602779067212579923148424186925537754249591746334166058317666141789256517086832897322944709834054713103385988565691168855566440264275840670609954099619141182091446298433065686567779769779021882065956533215731847662216942583074798465934403639728709917019943179717779380634512360739103223602585932739237917278535898940958027174659023309954689814335269469682388591186852978578314936082821518549578752334246044426662959840615910783800563288582162506643568195635196149654083418798439891419971920488471992906061034879069570345202265927007868375739494354584465772116267152944671660728308254068983111298817643967546015482218190131260312324002286581206652574501814174511005752138643469910432628659432895729506007899152171583848827755360589318952597022507768888736449430154996536952458337496523772410465875471858362794718706464034806130723300328914705932676914456099468809583886477082123833334804192706666556866716521375450850514798408839333174231074743382752635171404118872592705172768898447990754854043981391520579662686734794429313141911514832667503410355465879979279451704518336620982161106129310127217911128778826083397686791358648276599220466021250585450215376906799909365896231139578527881447825259203821211556125072928344938894162713827054423624376710099369500467463967157331256043408579415803844485844921483098356104112361448108531053078926193231939064380433232391886338530341444771116457149968719589321860367545585849853076786510146570194308454526551405116635074406572432750195105669946288862191903815983203699528347398412670483176388229154916840401338583965390488831557954163103464030540109954924314880575803196334348934589752452125418392046065487293090504335146424614461622405730048618930782720137382061973816567828247428988457616304888700629199625607619605606027731589733816382005306537848885379104317935326399897770836502051491279168855403219344131258587306444944881119744906419378112807498103530468804819031206854992672845634072994556688733512441382795920970695559539611623648414675185212066898176641091899759430318790225489808202120800604525274169736235212428580517548476021913332201701539847261546469345137321579526255792250349034281949084216709439349727496415630658433028585436491238379002549708354338647423840433646550431206371663103174362691634435071436499228338261802399856357067962698903279096359371547334604103680773667544455334297338717947774832277450728334469509424899886236931070966864325287159104668628103076224840444042312806572773226256963535067506526340868206470760622238082237739545581714910913031657721108897930568406965070131929314537248185966347229910067706499181476114189297390277144774539666345889166349743644314050459080134791036354150696562593055305472308865885860543573307319813397088305111498053145102242983208936500390443738170392581287990794634369200551987850840486644962488997187046623134035987657298578785241010250050278378101091877479829820426017206353195718892699951744274163790631338806606805188459204128947795456111019633629137629455261856781112202201444034463498197318594963360948413375049196321458659770623413527179305238635614766645388093045601123586272734850132705141932384512909453087114842892481435305157740299080956264965546733600935610812252959126704326413785280616769981720715825242865125006825132069977695766558038018803879841694064743110833305334115355696543327141065549719944508673739797088160858509184649718021443825252949029152388338735901526368546070786586555885533474409705619314191288922226972887250481027167320499440889497992838228436792176976444560978249416823108651883337122031676447585361685566687574625495958017783589390150311304993507817296897250444564427476605614546782611555660197417190965390448155355539756053853407132932748968987541671554731629423534632389836170592373026058201294889648856361372383972886481062409405306382123694611226629634532380488946040616962694737430446205968212103071694327941063774531819809826760561066870713379388699215150384436179226295294507318783942228307558432290030894482659089820620392262164038046541405423481870249768445283865156937899822853479030150719891536206108220623070661292685342248875022720858920612029560938621181049382032441864468807419075301157572710820679834039037380538231834067042724223103627945221103240080432061040650190666033787222357599533377190204542461200238006706399979412125731297061383593936362329249321643402695821450753353021042176430838587814969934153951409096071111120038797998823260046894683936387713860354237625996303599731514075250775109753420699026829011362686572638516122386844341548149204746728171401805053194118309417311145101363600485321614348414365821322782226088250200150535151963754828281881390898290607977877694922381584043190056577817612859150160930808795536676249637088329235104241843247452225651534024988382849254655913655066035205430585380640660602631449088722828095011066255216314387509506444207952265918454655533347078914903578263805246445213839258306078133153829086555120359810697838665238406046046288508356253986037525060248868292577698389789001861363737326382504544211974704183428827924536622124549829169049982072924419095818766667174279670827683105553500811696777296428417132179313605641543720052445414183288181141036040057826568070560825555616493225078574901017839353984930994889383587314372149969508311233864470830499163098490844335845832435051272374652454369280444719566592863332150644055027072274044213228588459705987083116574130167006166414467134799202158928448271139185261673972320706254042241863872434402215169171386701610547889792833319455703834812676714706253754557858011809598019955158777244324602453288275640491686402200819496413715009072666026920777119501976136791731800207724353939590591290933387131693232567142999432622414345357437212810318186503541596089402220981164014853397187506765163285731213460593907822322737067188812639859066754150952928387517237442802315979947025985543052374186237801778443629778819603703449271742202029835663183536185700241152267989905550961463406194865958371046709119751903760042227302346926683062257084843754116343176495527146018092270496941288229930874550066244011692071236178335934953969361511104846871513640490113518916965301128717124745248342355047975697506814626616769496590752302011694318645489385266690213649062829384448772002388992319002537947234086365874310551502738997339676405486706399848165448240585675067906880148318884072211398800180910276410085398638040153471269811254141240796858948055332237466660390131621777693437732448469163609086161013803517629390550377604988285993153340772786740357221417825539330626408901033919594050151098310363757291307525433253145373649873207565942620546660779807870334318998649333519537205525112567895734648587274660050774011363086098997215816381825939655403680471995096286095789131280199741545695339121499416204775100325435778208776062002503338417371374026244412333787855378060524441307524971535396744865058942953578618966263420776652439795479530408802930785959862370851056509190908601843901814261796520271913297086895416697229395583358176883196557432753441544633749075425724774544087553751946229173151217496059473942380428697435868463577328207485129432057952472685899396595691292220515601999315246369007243523682985650444201341670385311279621928893233758200068557948477155937164922727273049938663225119885740395472787994907097143939497733659251817088598115981646036290891673540875226285018672596364011458772810094827532581559101412308396793401971613072585790617274644628790195900192555595003694739842662365074960359851644474945774925245856717557625103995744674261080999906002674567858073678690708622208784761883663638908823961121791060408533240772949847031511266137648552365652434030577743729943946490491101966185808051015409140049875790844382606980144521866435288509302796220683351857895064379732680614352247931430577999894208381739841660815682543035862928812381780249466929524948027011718674864702003707581316474993206838837670561248448012125688300502820224346590086435622507771758360442939412960877348917650367802099948276035177495275066091291481881578122247884774632310498391997178661953625448465045521043622632581400269719605166929856557116653114632274543414500603422712786048314331450094371970464279199483155007614764357468019048544323801836470043573298151253938715451678289073334019060154794919016431254652177651793378824715232018392015827320638235237360768739643577148958200366497941697408103389760321087524007958330670596547628120105436131369409062798164872887324636685297548508070393699404001915950990077189008696547048738135130974522337905968261087660813957642008050712892082480008235444330257052556145529470468442235161132956344506201299479445398173003085618151500718736683736311309557640256529029257175069741174365608888039965506923546365487050963045957038550268571212545305511957338672285709398108169702700058067358763939683249254706117791832862756166838961943133904806481455643614125335986378848080107043575812953554022812523112839410259235102131183067956982293087050991000560219555193074379345348704030894440584016413179779981660025936609461464088225680449453395253764697108633032195514645750836130787937228089754384337959248900157917298789481661856240239483360169390489209578714911315744126405729682092331763774807650635504722416555758794969558001046595000976891270690171669696868242169081584809126121428649689657774294409706122001775907478729355990897689258699044023909878878803200045083497457140617954651680569985269566655721946455263093972021124869700582257620842389316489746359520219736602462170168481263423742324075923103193581916913138846910651726541299283505086198748858000617085660520143953307789569269588416658433036151437046267120552218250314923385572353100966385370595052913750988309269891553408569661801176836127853025463773519178468329460367744484377128665470184609172851916335525800971582217158083120123985134295200449983387409798834417284138726284363458379853222138854053653510171107174414657844341553682374742849884913202799316776376640868274152924857688423038360339629828446117244908247452537018817617565888076418203867494405665407944681428972919137259419959107460891127579263181262162100770967360771888421214916357454109650799877803633333712755009518158988915221069788499222205417850043277729229947142917024023239329060737326663466066909427343006436802449506055863483440286536076895915260095559282323425527499428869715199872272456781517664641391720874517530354996332656221150984846179623051423272197747676628989462248067466120830986608947039676433597855807337053169247269775915412491778545665886185723881145313660131927836416845083633585960235287537391014979035986863990118676255143161547173299643218287660095901592151579827884247594859418146814914579516718610122572988315256123987132690979560137084180426536123999101686986592355070797186888803263090341581275827082699533325114745225321293865433618356971678386332319829224031583199786451850058097029967219103225030446660254890616338469904297416048087188948945532940964371405582139896103837479548694207523636575192843787993282040173117222184635991578549921973670262959319941393028924551033667928130173337902595335384633792105477582248798004400086907556123852976110300000828205179678530512912764861443382043612440275846161687117394367648265286313184850507493231053635085800922875715738753247590794403959360940544797687538004777318290904935547735533210170520237150060768049857915473309333439053232294733352615965710546816966077239770666138054466535553223145590769872605680593339548251162016041131784758321311134566468800378606067440733867282956527291820000119301005891962606565672051150214929661764463499100015701588697007491854898640510954559883902435320377456781004586132116529341564588971947553404371282007251612751998255855912560645326603199474078003354584246519969858246414943292374777289907973492707883034261365428665176650373678219727778960863742498772615016087050369684847363984000223048054557531858780811116221986116402168550930288107325425056140221945055727362259132699330809040044642945850917787786331277760634662227508481483337301138663145072589513134893536960254379839613273766265457223277934073252891008386637490627431764235586918801632153780274480343147928422169823251511154631681489577011029400118906046490104371585175500164334237203415885518458870711854243367951672650710858726614000444208668407199133654936536447109118021012694954916505270892310025548350250030859000572267157527654565930247609852807514138839333152170226650202006099913833709932191547434229909794287129961800390970680331177686123457176770726959428896417973286631418075730397554212627511208333096599904317649884490497660374605224443335505465611308494818790822977409147613677087184026819078319690757969244378777986218600456256128943852404930324842246621383185909316521600078128394083235863106465322750877354506462817376323423995739911478782261474684460912563512169214468441140219234327701992550290274855849098578107806338871665159922200063201366042038610437209749498714345343798468376788047553084349699145990928078475782896796754003494615878628192274567453541110730318066206827770268831764097717833077462592128187209012664979827392019058754645663537426983996418796415599228080728087787767152853183046882572211182933940403128501083472163474032080536820897515826998117110830150008666344230918180463991809994111949114162720385627954935931417107862946244045923907046073235709907852196793563622262106603822451999251619628500853212395925182011646894831648004144934718237607238772036801563703167266621303535631016101874266970175743220584280301763534042453909434949086281017974810346703975920121832863366282343331595030682956924179821694004079232215374239777155981159562501718832653748611294348118465796925960351992718392071275975800429550388925172251095677832566434920293708473045208580021439930831712298810297408566633574931715513791625998670655988283468828909429106549044290749460222141884875197077301843949042206754633837824658468699787373161453789919731144990801784300506421459441534841121285678603787491578020980335363717517047714655480487990790833847794495622647104844713514809680900230181801148379526952571397331766819193716032861139242136153339144197970534189361239912100638912378430243140738433342947119960730427383147469286666635924043564184212309289265623686035789579566038419589903094641287646466458207839354942590979870434743525991168756407250892873112308007553097416606834354938840714250842494476637179859979355313079211215484314648239361036561055357298585283503232734173867499291606810832501511662921663792856681673001997619668950878214000788434562922871711237206739116395407091320170682085500338495369522087151061825627031169559408637591393385598759505974032072380685225381653776688152524355784718592672565338824473186783492255263090030365306872375425679798365420566068758875177133652116654123371894016823226336809655345290773266500124566869922084670357624389244342515250161988736757741459114968277500197123661867773558405842812067636744462045892052845622983587911333592176921232465715178487372153472979903429862277718058800129506683484474866740280229669461851043695024435882317678117649945760172381072051993976597904463794514437607765594860596767173162688871804271451817166473748493353727456759173279832994865068335449281295777610308342652352866021121747964182365282038382259305277175140550352825671880997142606960028878789268755974260851592086945573815623844849046581260960597159299748254101706921222057428541878790584792723679932545162563103569653272950218440469353698535304188700874409926045396261527889980534937859709256942615916761518016021149321468833937696817622532662283544850629778730558333767127324131854907208106692611867295714581638665008404350025805326335929402792266386687221635784279472764518967703165147754151922624568615135214023334850320298712606711249408707523908778150336964325180951593340116253913386001517369858815372381813954888506601623713983751059625065157510048609957649228259253824206425475763598660202570867906438846012657018834449756060878824887604341340524655728386902447530267193590857023712024519904375226543343823615020323388387069923380840488831049413614460766817933806680925609950258870853222585986929377116692013835393351747101766886667941144254993007149636924678131920547765337993155861155591270532945070363820907457931974072366605937868708058569324364118992022883896944343592045038088134900267156924432310969817339411430692420949484281709035831547471891320033029339641461646656647396866908190175043416292625979655241045900557574204690662652895299007006104256267225469105976480290441497328756947019846788781058067598247534141110033023664749696577812741553455570178263080752190334773707178313477567308364914223725744874647753967917228962878301262786644855518895353165239184378933410556262132738859009272849140741555407657484586772598743866338092168430314291393406115548451348036208217896900126250147752518274099602371645228731122270659859083500140133826538651071759767263321666471657428692054713999775781180086837275795696622169803264812640986973482890188763128262611752995975697067597314080475790518713722820921456042351539396877270851772712542277526141938862462616255111006836469008981077536866385129522676530507866947522452405370523497124392568468763074124423093568982176823837143642565915200392089139380168059530945320473906865984758338376834898296057505453780824255023645523188914882007229740711450503346306091946107415361552096180475508459117669157518051989493615190270800976270837557792028877498125860450137294373005603335520083278803500701058247715385803996081967330299068001771074149920872359761433413248690975002528432672919400622479210450467027892663945948278924235977501311779204055523768397814219736338643314200216286563941644006543264258707165384549398217652896061130822503473625737923942514365481173315145089546549288227973768785612230230832050885508626981838002251668671648309566328797663804866794113187069200980791093891970507196715406633679098142408479382485427241361851916974720288959011501852855388613301033001028267861242514792478288929760332495724621113306967694461569725302288823766838616866859251991482043746896440882455299335229635051357723190584198931444604223755463329457581680785413776567110667599630901298991816910272508379018316938762497028115387818079582981881069817687043846405872899526222291210591350030358093641252396656406368307031500045316151216327346860899925013120148310717293039957968627550167303033744021280052796069906721883829349424877713075396811457596860432865163887350031197663073321270973458593431390113868873741754176798503700004407979345391606929633523476878750042011796791100978861851043548186388208279088079098352991224919843443109497645425364234988504863183463771779818808193853966617161248902412807889568781714573997647831505029868685140599360162938754468624621123341507182094627456395215022262328139766290450031030262518237500988502477042852316234529073642911602784105900985177567118001451792677561995993374886180554343026204270194136843247546398827244478903078436877797305000716926112367353458287562820293477056673568995360488993566674298121715979270591053069720962481635576855827246713900072311609513784190020969279306570299623205237630796520992394306773890917286936811474354992755831986767426565967338575795656962333986666492046583493722249691023004985567337585226114364112773153269310776287745090434329420907376917595682801680979139581835612080233620253050349346119257862377902604925392521575932344462712511002772584454575090553044186528792642592521717660934635939106245006458810904136265896725359218447803554054821546640149460854676161799151970900179333713777793803878562940799829278731937715021871557803766035130472732225620847393890872797996360349617167706705999846130157369127160197137377008943618178482796204920580589580970218224775602689705199457622755022408817727042310792444186385273635613676767387946993338997921083352082950554602890879698614345154427763185884503000681522706232557821509984560620581895563134151948785563448972035986428125863174966244184282019317654685749534378189528708022936433561329760557176036044332159141148838111754765638962386782796959710665604126093864588300539349906768669754910883537826117407363969247674439235263693515981852759136109938096119642761703753045856774420773117856026348459654023026567084612372079832894672278279433567428220747354361334942971280626968684198377946145643059920727791699854641490739404883837395308279523254541150691853104192634706953879593338659648379466252465910241308788062323098672371588899471626704451248175603415185018608610549251057803049924493839660074775775829949227677757597974085319585090596458811369179912680116143938657378502727539088824417653302947203402565229226093222974795865928327317688780712440677508654937952040183710555483479262190341359280478431433094226511521975959203326565921787015931005967409031481392786120423362630028923652291669628962522549802562914714397012758063339483238493340734289715988316358868515122393995318263499100926097920407933365038862791753596174516136020374440620033111237220898309281798008153741669921860791741913452982967850707103540394811021538028121284246906294842987210558854055227225373178987126146949120428120645306352495070628885697718470841570412215973937947174624414976018809183392059414966420410816521086525067652261756371979150694524824231073085941110805507888243681828397909640681528151598405495678003406883569603884936333308922845072088916607092038619244784103747477519327811326262543574679161639763139026545434441035379874141012058943144841286158134032856175599062056177764184997893742931803477018775469690329530933519823092481768981998409547518546248611656823211682726113430469641707104138159078762803642234125284061204989002268914759106864999584468844112945200873522926607641498890009174743039865816444339430857719196661589062534891192197430200113062331764387374465482047466440681330869148970438251418081239379985242418949262341896287332717362457599423295286966783197024544312652271731540911862266433051419450390615524371435885442246321181272095720370842237902998291486006554585689784731701110826931202332477108927653877645634005571206954630286548715874805970752647386987545134729990172355521509726192932727352231966679781956628493825715181424260626297849112215649085163516483305506966704639838641780820533942208770719372661639365725418209252953396890130345964354749719959362853760058780369705850454254850508881499277402707417340073016183785583473782037854090477430679200187894688093954162116409304536505782224136632489856364205116809913209593663752428188230465829636774017887615346371979883367136032399484748877237235525363185434834438067630395555452989558334735257703155211141334453334987529502302832025714484568975564350023330521917739159808961468270547678457668257968361156100988291552571035383827304717596300040762997231631255101686141674351035062797136131393339306604759821836084262296288454611783440763742145651687943989252222459515402030176021577254662368853460981131766908104822000357622696961544666115545435821367210061481059670196637908352228548943526923546366113275128054610976933061995652891258147534351141930612362413241498065646437595211178595257984640845430225166224432395459646309915485032716853355544481511729988286340392153278736419521241480197186474402154344997391621042297110052245023857622280912939579607852211911571290642007424653409884278821488830222465949719919581642417873925072357714601227932657108247021487678104631453362061685369623864828104685155172624652573995333259085129053399007704110577308464904492231562377692980451977761403264952493220823752390656749690507337996791791319950196020758374074542661751544908619428283037891047626969412606037620947442145970817859514994864112462123459913251632501583693457040931390565534860958758006350293887592916871765248034491477994368033940198784788480233069230999188505020056372386605558735824191674638231464135391901404667860761475886006430613012808303258501134053397972902323491276476691491892575433785240975399918946954585279851521560282933022903126579686778019681512313268308882586099477010723097660480816074753242801924011849809472141454359924978710481606584971734546858504334867384124956187302811448136294053704555977883685835992764245173784315986134408618952417323465358794100762226115859798921483693534590388348051910837438055304849018649248906621933181509382408544206690572663096613801384939262403007861455926696050515466320374001633149459001995958846057844862197595687291294487330423804204133556534507379861487240332923009331863305310879984548742253625453285463584911338803450994805598888110008029719429164345306136203371400019558573112798873158584545545109307848413436314540076468374114680463648593337149778457138192387304976812660054309173055444018984785356150278348651604700048734636920861129156512109797497830006273723442206255960982855483254986999640553717471510733717569373219163189249389908713146404285669567315520966123293362708711698358099200662941432649116758648144630747053501949291989122028931880792524429703863865815375890817602167992548777880275937245899325165304650875009712421639535962445033190487045141145059902868501831010287619717897879182629734295427301077890376196221142065171665007760973624311794960638620820363303256434521131034744818002817203868292459773709085362447611112489552641011973458290839889056292513976167683295260861241942596698989941389408583335149364131696416813910755705092768683636296593380376326995809903946745474394193877432620756469226469788893800439023691553822568145739662950869554903634140731939820696202754580871592033239577947305026778344970933021975276311379986171178998447457909963494116380091516257261574664200846660634631127670902510885366663062506304980453680039926994061783617876678434951255776989291312130851593081286973514905859672765045314785972991660118343011824295736507753395396803664236863726113299296154329921433927028786417176025725795326751016101710102163228061135737372346533197712557902150785695584736430840459376667629704199755268160764441738327975217466375794088355270187131420765768737422291847237113412463701263119894491441134214284166143221687066788689723744530493499586834065993303155855976090718279462596965245073327831430699693179328795549268198621944376751672442094329766042737467618532425876155981933298731754577560214245954672554970765970161281752213419555026203726562234558853982210455028753885705457941835698015466712414065184755529507539480555524533944596165124467591707208661029331610365814907410773103621324978149333621443862225105290682963661204023025079883354282013893660875793973252397703299455483680570098935740804538517886134701204487779798101162602789810677647084498086539791087160202570416423017573314728290866631790533876931171948423076182854733954924769140765743170898407372552030133526009696085340642954119677966951213080465108912385177519423618046333068704444429459713857998706722161177577730215758628754437342293173818272951907027032641743390702157937448320057133797257798070328704418342634697320818929904285221261782743547637622852242273934464164365792234820060181922788991547759915750645203855503314050837448291916770135093798322445340218114273338453831054755157796270912881906024917743044844339643405770793804706407200997435222339090920238926355622004266437158212296601583711972002987503424634339496797164117079015314832370499382956785244361949333929343282783312099690709637477011642025287988471929196956837376529655726382465203145773293922166179977571032753634803880510840163818014540168994556417918769258231633878046482466781146511647869386066778383028559095107293045461373338725201989673071162528712855974888520988635987395182458294803551001299010021237747338865301212666011731187797147422946464348863012461803237589930170413361993052319184535421786282554501412414156255403228616177176434181583471005968592129338850833101137968511907423837468999527701021378873817499586028888913952560898250201545409966127681403949603408661752888778642286547118654489969330353857411746500645129187326993693385389505836725255660179848719773881674471934752872246868423883791020097870078218951597149881506520976992409436475187762305992840334363183104902513733140230235463620339269093324031412536952876268194615672044055551630564940095522697136927039808776144887934932340800990904977570188384543563969484235916451818162307517379473664789404881615311448939449346878891737500416275554544045735508790015620366027618930887939083920553434356657803812548874424303880158749816372011782115343019299738281486679851019551005917353122391683418494117947875147524643634829296677585985539218757302782955360822625377229386603920190762119719587721805860681018878329577570516393138877987377059896408106820430561084867141427258032372595268341811278628699999495570789242577529929008552649054258283774005454514984226752945768915746858070603329905903436100988226151968291836552469568050383522984047676549411166796839120198218162764833009954735982378633459981130999430074664246722315618005528197615103732766673207101926058380616849810843133576947504507385101925125903629847814210822177526532801544434075279091681829904500172164125314957517320725058090863683071909664289109659573691524314328387151075127454884400543786548247026460913776728657306119349061172746333813151168545573618526937842052773357849679573823944240279939799247960381654731543998076453653385377661455219781443675914435945653847519578817730562191320475627648734424954606382703770360457935026718151603480801834517689847163964173562479594367093304106631321174629933260184545188525315185511914988574983248938095700504067160001714030793061265207162644780397581975433460751978032909121326778787527726592946938071753893505712142742126498858652519056724338526664092837952807197803459254771034316269156303290114430609713423855703647477957869717074269762241151679621386085468431509362375515549152182054200863854703695155173180022853933907272671401642975406857923595545922415283588882760799557642339146304777171176557433830827359149638677836058966643056041540185281834188727597499216345796059329244793691140310306001604955966382390930600252499534049659676881518857822800295594660781641470172343432445843962762875988640143439738527624246240077717258051822820951107169973353139778671476292813248411370753747648990696704289145171935563221369172751067863564674706207756972431672449562624332851366285040354112280137098714747623492148690704558102764109684961871727240046190164245030709463451171850167388853193142670482916716304015334845494335078200928959321133685037511665551430568333189483805868688118773770155596800848637950169837124700360166022667167605119376169102790080734319500531276786759101354498932720655223807993983592606411734392342982566048174833409452522601094681623198839499115980641225199606706248514245707137064746550474259539187610428716064947472658595468573420512284619154949825260929208605691301576110315049562704337871818510258290118349410593151013713437871385525830684574141997661010826906308833465370770246255039774640407132474355892891716581223565143714233237118652657904293434634308343119654000384057490190549718850490984066890912835221431837604212764123795872026668264773206417077177606085710280884491451064833647514524651350116312724788353210173983387395056280903234389288287428182201963640179903408069799313017130306306876179063134210922393779936285505812030418266299000336926269785784100556615230455076721086824155564208113303560072716856275864135252446535292880543813217233116304755975072727925490549897423030749130587639880757369990533607394587359472315515114417693230645285526809778861459969264610334034449870123375744806481450051235679219454991075822250998921718418106539627314331711773341225300073618760764539114073078145050298887602690756758909530552765420585668914319025605315003032563586384712682983007382799354690800783660607392906033740069997223306900778177343702302601891683988152878060159827157018573256033084959771976876299657872893686663566945260589795624646569185396283583828029206387734457102812187973157732535041227900646656461768446432686527137460956014294584071265190368041402197615516352448860262958405004945879772153882936111542460079638861061423867249764164391675219415204529363862776404755527998328919152870755824505716858581703264423690669037122113124305548952276097688296282295408287239190329080625756492459543813308647070969931861860718436769229503101025190309803367341580384169885486046218753339378967674353698340110250850084317721755203433903307931235589205200676823860366549986885398411972112072481560936567447257662932474643050517520685780055406374961939914159500338054193038338575867156544713826120778020891429692225180716869937332798843252908457070438778241306365482433053047212668970914745952163728087224848767197456267083411578794760312968101291860888786701521204754417091221105135816543240441081613103743257806190511544579807899897324805304844767818133882489246465909668791127856692081451977594128311049914868677311456282031767617090611400091665660038299699285443011270142545428445336611943509794185508797625934824500755868054241709483994410884831457522419008634620574455271226145519564217999608732169929799345428384844864974719051993388310424920151238004600291586011662244277834519452901179041932836880214759524409208398009638142123845275894855420913244110834590321865196036220049897567144708802127379744574859151345899609234348078408518947507357435739231941700056059257275743769883584573123812845365586382031972818043495086372991433427022204378555327602032395213832587415848662234220626421436803167776871942142634010321473106656818110142841686689712157295876533612291154996970047869481260859016614248441724208297916969390217300836093666442932578386413663135540589582628791036689403955502710504216240150181117495254280297810760015863892009704974484175381534611700836944400220260619581609983045579651427355472989732437826578959660662638899344740314895667380800290194711095728443745761619867502212714338950210409168769249668882374346594895016898120688350792219455825838057730766444032944566127283592199690925352974643985807928106824504215234572558587310818701783168074253077105669492041563622961155696417621239929474300344829398262486162710070110954128954623608349157801275374159252038771647309072364870709703357548383219627691200109643100586869803817574115928298904573845208159904066247900154025018591027622769940398012158374724305931081540014648246176359302659551976480313552073101023836758708062244445649831105095964503810421696496396553939557377628838877086690573451749289415346998506943395200409779257652779486571993992497904969247218328320188833432368969190470685161041783609069019428424010254133304610220703749104455351492371599835525352260343634545338557157114196360517171751353452572771565927297170995580454618796573031990035817866619639605869048770625948287519938138393364651494476668572394933817055424157517873531925318093917222902218977601180272563559807280471629918134194969980012975969185687018731285577782342043642961664774919511534612589081293762421602470661657169470912265789058828448120971642128111391623342524779603970959725758218394912478831371442598018132625505077440681131861715866059916556133055172644330826807800319418592252526386661684888674678490600343213618238846254375575019185035248286261864726154188554799485550354914499444299614045437548036650397926125190066354320469258720740942286846048458604759960071362065899487502684215414077769781375039424734394355557551715980830395724405604004354432832543684083402550062308320831615631708554699282851525815251870581339648252161745091879922566739937655047794511998072890135497762880214220569402977204525597987980643756636754510810845240327610714774213320526443322298782072936890348600643470086687464255506141976828878265416929842986875820575450309977632949206556445289657116536301300608055579070777463236537738727087767208370160860857629387101429437292982988823937495997185654920131820082023519203252727502410912849198814538547166571318597186330545798053389688535163973556095494744529216287501242889435486271274544783759497984621074551778204557036326722607132239961148497670251765945738311634186652009814604074900399266235484724394990912033007307384313167782519535906379801040217388798660189892442684167612202371156732719902890803468957664606805355967332751758094963225064309645199157884121828175043156631043113555782964756822304470484417431488390947068328110744944230814186467634321979110751634974001140029795167077199937222670225498500891395105865902681271579724787069775764692900419995785212989419705066792394902222623231073634379539277218798850311718686273455324456724658574678289321229830706201205094845938477058003169604114794878212723532874776719448038175263384833958481794490931380963918806905413260894090092223249702432982228263818018279692884712854004312332472117209736948532759944237802177170467654096273226741721875756482214333736564800667383814553658511384795987930993583746642773336422654844204215386212895441160172981660671228995644220604515218150996626181619858906587014605781399671911871403542031002781372599259223472718932014806537156343895220479696027409068495585593128260481001048921622849854503225118754282481668332379804489117329453739431093213917072286740593670439540118961635962395156980568652936318195302276413811593540496684800348857239759174368946245679446791358948506220448663851012558687256951022881689880986060341315687924904374769997457469385087493534263393518315613816072173950144929699720864223093798876233451810009550202192520407451470206165568511990336410678999084239871298644473570934064212394681481127771494389621532694798602427896210704124937288116455488731814880282392325532928947428553745658473874562921061909375702367898300398706316362418192674306939785001859837584436894848565606488261397571948246698438768591304833673478258441030863124923672546507239910250135947357517739347786526347061434374947924908728054952281768512162946189176462220572293584637588883794980451336507401630785251911236843998730368230014794599107835733188798132564660231521045466758786473702857132949517644386772122119154446359679837686650133571040472628263357859335391240822615309710885371689036208101906113553235501529303270487811602575469339797817318741153456907044168879110799747912220001728401173728982672188028147360322739934948666288254923504335626930986823867522054958036220587634582612249249335070097452117205764672478779410294863899185530161338555619188557536409081176790037071714594739449130221662234996295622139838589478314398773352309897382775372830520521235676499715997515758185994645633118487825305435062003279177325055333530296927213297548814974558105046806750794692859608264433982515705575577713334157794861008621876711670847313517659679401355335432236883571506704566732955905014633232117826149412633753393196884628771385509746988074403737391047140146374487424254996866793345624758940741520193608585115906409645674706082590771626442677132212150785393952179589643781739895893559888499349690352834170271889813887531024597389975214055666268222301984074108264435254220838535532264503445481623524256251004679490805304097191383912542081007718918218351829866787291924648049691404668985063919150881466364861067245915676018962921430173177834798240927451711404373105519672830018361068910578048887486658657878244698337901917954167705441918889383258462842676460362482818364198507587695632398921215062398707556234666446044650932683102832828321015742084185949722357415307964044944636043082754825302315195869754175038707046177334784578536034945960956311386716590584222105023108601402310267359804093936663889459310813988885595627765493814784299372721784873133778448901231498456533603588734227418590164598724341022734768759822595665018525834772499811297353094588836381810504196785636825589139915259680996343858909298069062165235111323038824338325103162315746700080785033019401167854529902448181991076834342373084382844352332293536621990725419896871765363086745176381564103251933364930205759536902793264166848646362298130332580382190624535972339321721108648573834209917048413226032491128376321354272603831516156764986080829781727273979444598345849929532769550539117819984986392389967587550147197293335622363338392160148472194222553849580063675292140697262625722154326464252914726048567097496941583753488933668363222056647272508144042989853418338434766700836838337737979487234870620017095902780806176220138456993400660611630506187926481387961371915838577665194274818193492382785472939857074885895326566748959858627751287166651310115072949327048691068469420194232647636044082985786999126642633566264743948618147470250135291244112857684984815656907631414845628882257177488863006193499841019879350658326567386015386236308064116940030856358346896521904469381434245178192315332177124359791120908134592437970555067775604170119038245707173805535891576798887966592678654005536830367909734967201002539298292929052475007496059999009096121389431607475204792410760591689117586085785988945535237550792025229863585727171234131036295509083062069664785379809314081152724062145107685837033897487108565381422406026345816484947354548951620756534855091972692193657293386154486449655875132845477951525095908103827797717123790687028954094359940399817033084944415845598114784665083105844217831201154733759952843904346665401372917633662856010750896649483101364815226363521789643061952967242405035278648071404380566900801240031373906419114914925830999823691277495952020765213179915775812890631905851774111982536732658901540282100517480648191636005391728376014233824361901006029631310693381840303723707134876876216282280185697590996359877154896325530254555675155876940260119439326666975990310260122302630005578916392888220250137018734452685678914259231771899986681627146020562824549595802616403045167623295755731262691095969693075898438700849387723559207253530561017207131874933279511947513628071164356163804757254613743243419487343494968345918935739675385716355230916648058158980936616152649351346119838479317413582880978273340947333885496193036227264087355571645024363473068506312814114733510083731211770507325415608919798116261112553105594717689719258414627933458264592669197793621439095746178457729270139347976360483418351739375499434717183532561715553594279870627428268432638687644584047908525078599934787588549428604992978659438440289709170676382220036550771199940873060354317955263712656391086293333125678469134662117745917339073439837127661841681482523993655322445959078095509006106192547652533965206337613361582556479732312837405365383012254249156789381404066291493303406421941179269391141586339620685301565880673129625907115131423698174940924879367446653640292901851703599821085469272226899996429658096196285748678458089123327024079147704695254339766053117852683532951401954436961629057278947625909729405630955865715812464674819255502090356000933882816933244865878965353296663308745754311472417830428236528244385364644494331924013837267170223859445366314536723899543678833506496763436518364098315724723893955238585723569783410544510875394884943291768445196039272024704204364440183305065188313400663509985584328069801702043952814809153482894680407768114179897074606092718322833533503736703260296790122408507243118931255142120158533819375990742637548396752990398778343341736589477678563380128650494912459067667023329973587695168076095208301405420339605553699886305883517876626923323550405619737528773163762403672171799168266296967593027538235456551412235931729901027384609660538848885435782075098497908791084868191145543606229925398545359833332912735466534766705855345884472024569649347091349874013202979159777593907459923655921028492376057553755004080268609687864049992431450956179957712811396471944189450657610882390819830742262853971454567299008195215512714174244135373853344420986911971237144030299504487312305659289156121696841419262833186855769911627102027507705283102717985669910237394661780836753761387206046724933393829210251907109387728504305200959162462794022473688477382735262193977737449228383246620468570416881762460024493408562094605853648418905787136801182830917464248462998126863169162034037432611557711198914003775624046685864841969963927362568599332471179084737602423295104305179563556937745979736493632973413313598365907058833228558125602541728898715691663796305271094003942151807284662962072806562243505377533610909580519461725211307486701987728860214697190181707608772421597143442576659601566247417181564238628302389688295920618047611902580656797404103855541126458485031091344138208365886121561462240241836461046909191351154320774231902681090205341014442782583302219895037292798676825820853941908936019715840964447455552548411965784629928845882905819388769451546707909149207872521202608211845804095456565924117348380669803031279102739149159484336495692283878458591205851336813021162639059804157486735659301154291560087506724249914626668902530824232742132338374654774792337018349739016286348293064284413804699066152776175339960753480618128934101351201449891075579428579345420017724828494023432684756099115546084432262198693022653152741895948033562296971067916208492814643914237994227425005061382859322936819844715670851428373401620848213889009872845727775654420781267668145236368708027166566170170540782441609168830375135973049870602381385132073589220710864243683498224490247203625552191407259895901813095786098007811159613843463469690826217958713708203217980269211496663749546394836604276613437568238842878563315286614366111782076274494383265590717253921703635990225066198098408876503720602047691083194327459843041894566476393797283708488403226976863564578569554594563642309321778629480751554051013828308327110368093120955490681120228260488987127444330855871769030480794498042541128889562543720651942496868230542406634055893008492461346208036394101238678234394077265844982443414681546087764916648181905053386853545220086034029578693077560754077642173240328925457660403161174788721348370896401142181364731371237992152278854230248970103469916839877476655510173670092067410308180968497798875649314014994840524436745162199028926984432746476496843183371614168048496521114148734825018448646959078559337008705740163415711163627633581911055021007271793104856805323434761239117515684917065113449641063742337764868057807906873435235792180602094978989566608736392570856955058028808075513030187738046871000167438991040645286730550460650012301215757269583062530718710454466628392530184280930213329657759592735245623318127955390269730376518074002863155812903381528369592103092410755844444254253825312991073700144784379117562428615407911439279079282065668451090724350276063888872399539312485504046835283425405569520417402205126658718426691498338091183520581749636500782122647003637290868855602375884154107226275648116173943544015655187952216831333389247188946073341922593130183253368388627691388472317185055161047337547774415102548586093472174461849033646722396954874454117014482374037679491734608694120314062066311782810197693358958159202149795432540879289594168774259808567081094751069518034379157904927945919614675507566745717697263573455959543890029337612095783845127078314681709156425192696808435340693982638670983908500588583751025143484972485018813411223886286749674306161002494977802779625534146740579061230662227211476857850508303622453050236789498981570140809592909115794261478310955280230499700719483899448277680537788426255994555643052245705820757227696851637056543324693288959770297508522995894013517811658482259526106450790046195686292336164538221819876087339096107879824260595542908355773954175626370994628597569457168059570764539012335016190440088430048146886803615133484831809239796693563200617042895720489978415736400699365739249114037834610867942371655039414783951034706527916308020375880227406615047264477814813209092296631859070966382571414943732902915690403992110718090568494832834408208475187508967162956486664408373087921076356416972480734490003044331334266417741414331758933046398816903924223049593366226253981278001051346613912531175535396717255991415919045352857762670713080059979082466720529459642324609591852647950875439884284144611196958452851225325054262566486326104556728427507573280558767617153839192929765855713479243131465491122149483272915550092352016175821513777595522764732284285758764761715918208747373460860825283572735357027378501841934817353121807175393488655376079649394572500278899120694868287807352106163623359101971598805650126300778496311977556969896712610546003188083699496102622219188995751709922560406603258299081683277899023824509444845282231594365594510959591986821321772654243127662616607439225544705363088746391957617400598068149628195671358872820452228291625636842134204800699174772858196206735306789626532263073981277116295728088236722373230786086713599613064313296212095422878144157535153333217691561954788913734195005301578256466592407342326135352224371093860589094925617422373703180636656132813453024083301976237852222905792763207755547520853974895687606963039009581780988911551774266555882724081602152862180203793809535543899339920547304617443389572771658207292536048072511098984274301553435858508556161982711214687559814008594216744478808326158834222942156682023850573959362711732870292478280704461994432705113220843645918404050566202021563397440746083340495488120134728314198390924603674281650796916724316101277879221956353078714224501619626793398606391347872147133406046075550212998563252577376042731566381840261545849851964902772544510876074951872144865351074522713771833955335537151564927444150605853092601985170189525301367534101663185625108403761157625561858107507683834979592714134769643535849807174540983610804701049528328426194192319222652520843623399451641601514536916492783707037619016611555779091524710682762368087963437260041180732103032314262900992893235249626244676842875130929477887970740659154212855692420842349877537565993494710198710190688955517435378153879701144322251872549040437767937498741604103701628264155794809080591623307235574426672536622700314703999377069890944901487063304717342225203556077475692834091337313327921697415656777034388132195675182840597242103941516976739870500633745896125653560381819273389043233977647435516369729736593986519585636725297855311656857254364132908246064928831038986965499457817833074686076005220883719854671000798293760831141187340650836069959796281764066722336238795503347339963319578990211649344509736902547126827332950913683737534531183787202776340723646269069185990959305423589116913542765727165616590163841504455217638256278801399546705351994090817463389604134952130820218805587003388868608812451906329691506793495544630679794889394112287900813858935835194597667287369783282238371420556739188396585967909094227334806295135736906865636126830770026598658624921456699401239943965104744707223332189492553648607835897328222948141911873512358505635098061359709972951434097668348775916781862553056963075661162445723216372652220270533391262490461774708687718496780988914459132966612474877251422725031369724598423267716601935228724077253321352607163819668441927622193414913649894782185326483287983709045118736557543490613756216290043916444014171754580094294429193589063986625783794123447853372103970076023448681630648810774869340186882312309458640251803649285606299494843433850923760357738150086476507921746007367795393863929661857636001835016360738600163597064716508931162677006204277027890292343148980586280586288199595008934128267502998734773887058733252977636125231386396161518374033925268208465746301059489014159404200050141179137598104168333446552946747059659828583380781954986406235015123272029229990270965126711755040485646046113294383588462737503827741291037159840928302685744807090705009126938973963160928799335214466705744190717584104541332943604372327206724060160577652226318073789557224032269730799929582491558354841170462337660641670519015338346985998193565948009701166587454423918477473283348859474033857682878882542590212103282447350101800515613083311956646849064267505474374276044457859317856823542513694479035224697381605860426299884893549191879300402652640687118068496652767842518371571107230177367906933794000726253201956213571618764970785477335012211418459035227201618977325577589998151457350532052891435612089671951424856838864708226318872426193840511146551692439635650777607683472093243832552468595021564076717058085791498123172240026013409931065300550145626033833273598894275783794564447182739183437569324699121793395546330482538326217571633861118341250657171945126300762777064717691024250460267479782405640220659005200299897484545796345794576379548222744092269674379773862783126873858394830663929053751730450055147376894612231834046015496421582386447161826744355701504420067655646187180388869595025214550981817833813997652492561621958521555208262564416442453791065541994449330639979034357820558714157208854017410287689990082138688406420507185125179874138603970464058051844908863165435881000240626367475479282301369381846427505326069084887457007865826931672240706303377410074943547661450228901771197122037298885207962939325972081642354748670313293294165723118656365390015796110082687389500509189531944339011134275618556064848584220955672338298276841315474931543748485194575483432493819420816501941519347218353851526819973881604169457352273231079722605971303270850234521665358200541687810458745723538463906132324306484254444943683631466783330376335756125093671038592203944498597750440647826997423007471795963471783605485837069824800473848398418502825682071488991296435972297281007481044865059039757631158930357598682142742656239474686573959911672884249458857581686199103472825914709513336815044918505896391154547122341169994282557746834301021790606267666893825604438730812595471734747171411686424806323984526323933905106995647278392029937606236895783769355633102752364265981769250933888505233663406677049051835364236101956700968816193199874629976957077157543154117116990771959434371943882302186124087892298718539635335607359954385073301813666138925206949320837984001525992905794084856487509459371475541639886008960937237342145341535996462954614259915689519677417581517734174239480773853127128882037114320695201097690094250298708527037662551875480404570949719956784371507067762832658453781114757274470290497078100258249760589252063308104745596283070867701984018794137178008164482266130495060868961419413822606222328398822178743501543165382637952239934365845511656474966356500600526523277715359647872348052593480926566995503147120493631762981198765165994294826219479762395023504285061264629100137053422510987049195439186636999774476678251302027350577880742761619596953101052503282003916474936185087856106604440222714277431225786328379049010242389650151869090426001575087926798944220090664713482527055443266864519522269434348933873617558923784524212446064160452554480903967768839645120429825675015025481792816939166018825674309911980645541766298404104725983969377655389730715419174918024783767110797286243750500439110667682642174835837733816085090586798528222387188073913758834282999444020815056414327917760305890694426279480646240535410175971221357105064149072016732694949665711878715740978183448065402647342479352337177702819179777758244598901655271170095186181315063490344974522437855548971049284442885239340491902183678514795302698004301719554742692798346097343810781139270933513774285500315977101795984784243335233329173188756258419225235616678840351097044058786028179577070327961629049173365498227284946730966775749014819979581715611438523639687530160888145882081824749515664997325190439962352811654520850404377979409956516140670018834168453469882644007421441585636079975974643481085841571379611649520677439176114283266093069174609494239693546692661809274497298397174960410194786181312070162111855696207973580708350082337605707324371902119555839509217075357559420496506665795911728295504752048295964306034417836359690102049668100369953447938033655096238085591108489955113159398557218428170831488995969466423164729214306008699951859250325473119053987612990217295203485532456199766555026414860338354529857827484918373862903688861445243040412819142551443101502210143573457399639962910486415886959767913180014513610487042106631452809300177799058544713045801586765401908606907141453517424613718005685956721318998291612648908295023369091980170080495431117564132921916484481287766075731599357216986965510929052455029588412225288354944921583231980468283991206484718163152905486103154229428622705152266799754635143869692789181736660224144597593725173541572746333194355074653646707837258864376042124012941923844994539477530384483864940918618140857768004142559419263777366347398640975796709977014549471851020953708695804868713744397187795846674995561689020156881192528129529903845233876865228969690818750070663724362690922997780369468596092685876409743989532263016117560407867020608087137778040455774629533817724205640565718563394814136884367672660258188512109755238869908551994801685453768390124328408404929796834187258373231541053509754298770643598136304532319849358156733193147199736963483374745923843688040849385157559898233217712082672621431727206573153036138127564815765201609508071962015898036077253168214705344057366050511793231186977613548503570096580905042891434103188130353332895805885449789935154144776193921873481608539782076745983589854834563338661470435089193770747589614782832839964703240286507566650024362045203168582311022450008715464336035783378496132340045249770630654664352889705768006106520061939479487236966340359936862607364668897558419664576568717129762279418599789541069171148950618804312718648109245108958630698377198076600737733129247114713718471642772592497407540895407316742512654778632933149123977631081590137973049017898300613817339745792172611650230700942895176235656897274780753676563449421532581535926508357490562489656888892232206002950084834569127333446125133402816151667312704636490256541984578161342302102731621498935129198517897353524057294101394886283583133501336857698657953265285671395738559758826375536566690009359512601665162494630221852987690202206174671632405847056479172051507668332245652091848534088760113354605703497731638594256842018564043086581869561685432276483455072446123924500723234152919807621905934474748524449553727165033958122803754228990728528966853428498989570614862774042467587628256666163590479861124963060988600911631448444103120179797287898720972748723369238349950092071298652763380470566300012378924677298859040014273041876040564338076625769944454711283178607150130304792537666819062536063920486382036075863762393728493766337821427738643560623420929894580185889758941639761553004357169849069415279544555048186413248770086885792552944521706586838806903032378147295414920294692545159503881998600638408142570986592770669382796535520008420295026550538946671149279875182813357828809395767320667601770773243246751741207537633781476775281697107765233888870888483912886703195127436011596348357713884089932430258359549909196523320870108581851034258820125457078154315930750062548136641453537258899235383385192883281494498024737857284260274302160896032984131189961971685179445947381445091722999561767202530096534294299209760214274096366999593591440273390838411500527300328177282931183736307139782682100726601350723630440806971923420233004258341400060212087039305328785626136957696484483691015287336512849384664629987110151720138928895275164594507241399538165288320923384472210830096603603177850710105246639525167823342979924007854008049630979585496090484292851148958411154905511767269833671367972203069848704595953492533588983662602252449963977115923208816251421718541282327283652442487720044472997067339912290475208914192392290233285266562552017793901798330920088157638400974057425261230964115154777651049128681315330956206544490944663369116754568843851095230076524634846837904533620021881869083324098174897381678426689798336203996438114365773698407867875162313400786047764561166541187780755534705632586700097353057052555875335877702414155733715914780055971898489701795806214657474729172642021111765635501864585852853158156836069423222351898729346216376994748039390979061481274040724615797856168983010392767001158737610776042610569939731603010576143769109049124353208018796778546419392154326164658069716176001869331327695269133039638532006554573177049968916824231754653647666085037171740328640351206424178907898294157386998314044018471278796000312571241204937870066406209863239642003708018224680150745133983223213351667827927194523260955243513792218688550749222840456186798702591405448323806005543958629815197720427288077480550054295467926949148109833739834349444510304509485712846989933491492859227141588345797717342523539746531441892156393286576264779702816895528713892206782329064103090703207794246385146427610137194006503538225954349812484694880718522230821955598425283407206296958542244076356725720968263051586534418762258027571491017054683952321485196404756966114690019318952358043322859731887071707043877411197749559477356781305191697616141645489240621002252932360190244902617430795273310320679066520721072331321047525493642520935462822420551787392075236907703624468083678973033877208368826656947988315804545740678758588966189701171065511837812189988467641038204334062332328854374442438375677384535019010158932129715322694482367947392098187903245325159952702091252297554903261209893938634661862841155834488528029793479247148939552192166920283527122830626454137231603973206258775199455547569438836172904120307712579694016506396097297889276807789919456626257735881303365138074817838834941915045855073275013074481573073544009161270412458844849161182244842776146106508449682489493984523904005725904376429557690384353042687089333043106644522321884786382727090035988587417110405035815361499893595187189806359111214976445063607509709369968332420592874447221769061581136967583954671142446730759454418891380946926182028280158316936181616243284009699281152504946681027326489372668561768817961029233938118141045050865726971527555882489159684727662682565090117435302064959343284951327807959576424448831334814360485186284242657244257105248806329095343730688479392215086510965313470101777049545118736099025552493444549104352229960220982995215367837263815957857304979380726992240509761012136839348535813720115714078057350476939943953829745127646511290136190360351026569260831375221055313160365867925050506035979457783196151935759802314517283335327020413330260033854732390381805837547188336493213913400415522812709009895303984780802638553465724433052839157759525080216846727449052578992691891683544335248757623444682534785221930099758915008692856090695632436788729121992949318979546385455130757108342350386828903504463454087103359896701148524697798028349584445684694357084931474160254635364093184200718527606834860619896452306006739296014508582821715587105190697229459823274267289721366883147090237344042028057343225379491361879358663495564577643297427366703945026658432653441294703628900665067780388016675893050077357318848072099048058498224837019711539882670392381524998803425689248284276247316350100982163695175230949304692412772720523349359475834135144468426532381812384085752907500044828171978057638000658411418370608767656586064978946406269765824522662292098217553074735940647137516257593353976119034515453731328777954110345564648938062094020938408613378422494440508359493912893027225170888875489031000363778349264014830227145280815379646480535540844460726697568953500595622146017811021272876452280381372454863953798479710011862574366904194352679764646048415137627699887723071173494215643473388928333787227143340193154749017542970662083113516478401208629540286615519566025503101955593496849706501649716678994677816735397551615416350426018905782091526341689105587199910002979669360450387458982014366442697714457085363354828687440544057296571376875408556311725873804118833721571434688845418165177383251836061683484946510390873301081959168694193395127927341429748404215386160824083893244376706310253570248071171842694108788150799394257139543827586864652191941176391210639088548558310792271642013816744756007081362636683444806428890027189033897887268257467974918997659052464669371797024829061036628784556061311696563701804435232646558552446120416939482833326536246133743312458901288592726912375894457906397351185948737820303187530683102531116399218690999139864219061027770989067417669712727046366636170369141720465698956462564693870495538996968299494251658923029750166562691822382919813073267874364753572104349135532778538667107068500863934390148609817447949034892703310092678708539708998152531997785534687996045223307926040884148920877451122531094762037402171280538608334096713015637587085410541205423822229975866608414337087194078536466579985485115886559010071852035182474050173542106492647473654433703201819493680354385177598822549637937969518684853845375331127631750464308574621499489578751916995328632001772724795910705098096316837905064516719484123436358069434003084954632099655279232421483169503863562534718339167850584097503260983580512322382717407971531318745891675907245479210977169809109961596613062613917743235784525281894607590339101234399387071845784268165835064312090291229876637579392444621048571544384535696854771663293068467667101144513716210882816143686082113240658889177990796233743899381125767650812403284060804292342025876224398815584639680559744507402753359841478541697720061862654882483686640526584155441357165429077765593000065237850536359230431747103971548729061318921281626139556476741145909144504765863355585021814965750797699511034235307943972559955283314692931443132667813928223637781806506337787816776924422179989195965862821716085391698152760504509636877963096812630908736258369617052186819369675937200745925232759201739705303377108317835757991087490819756397299218645935526031096707432451567478954794927975360520038273167533800928045658071617934145182114446621550593456599525188445857768277594570728065306266454302032937427000327196808080592465691162353014724438513991381182870110242101644389707690872241639990137227360941345558002336303538979238209334402370403512353582877083118384797407098289758186269269109277389319440234215527371496962821765546323556091745497682519981922565259712634597218419822131035271617315790596919523473599340741383987685673762866696407820140704201559390721117129151574433047144402959325224219200965528071541470488548067276741702218231456651233560725638037088342489019427713299537393711467989779838633982535462032119533382048342701812690762947415818005696923891283014236301983352737903931011758628556468174915952208981969785189236057952909438963329671987596450515948156530782676014581447447196133689060081487839100484426801882468599338666762755447879680066743992984649977447945626122417695572614172335379643390089300946981329179528848292348753503054802319741080254632792218201488945859473960797552718135479350238845059580643875476117144964468372101227865044757174211704858514362529210716938589940039614435810785603434912804830945165546981057484688161411861372050277708073943824075257165273565651227098975152715190079254765084203492566019382291417627165532668922237728787905712545458260023183440060528846063815263739661068128526753809746676581051252903106353447635419146244097755631006214275997519497635792822372001740003318863298377838178015753778219181933470308414314322358055774185452049255877262143528524659816018162674744552759734072844020038992177283609375412920818243515884357248672710221575598071070679134169588563659765525241817100087001033149554459510306304644701673691728462703188783331643448988584113764716430843724337223646197735268958425347907987310123308923833956419400504955238120945589263144344364413131376033195561270557799630339892524915817930728501116743040450700576600863895033299106754642288381890833495276936406131721486241276343360430511715351467626287550653596979849865552713540558399032605783363201167276397310926386950633790338690330024779013275230249970602204725153561946408309373786165152022938628895374184253648903249958819403108203074376227744695048988209715395392831668900082492838710651989199226208800010551996618187509528869912873503224562696490546994308626852394320135882884566154861385688787414633207625493212260806378894047377397739439262529263550030693759613441405361583304303609043573636832616375350140907695563779052546791852895404867794653195728418653415786432911567883063799150282217403834552042487863244162379649862699468046797126110892022344309062305315715290194051021967435038509263814650038460954809763941733832658354495012349287414618036170040481336240499370777307162802586407520035174798865807824547330635575158584418437243438133573283474190368354193820345435922628913170207561024193273068436871513079959637171728411099246379720127601444562673455939397340078396597776832469961109671623322342213081080970227884148072762359526277012609842150175784782135605533456727175239056269397036399961551760417130803865194764674304793251515553690262530366184075944289336320419476689015846170204989306186700281704227994464764158257431461083658347798526897724209865676194836259193362806917903171035877969379283802696582811276632471945803951120991908077156894008033643298486376016532783196674684031445982987654072786454709052446726912614114170166046209988603343125022106252037052654797422652888317668905645212355377399102570571013561082577459857100639395301959633666983566834989960703322244415496367232357358859732488288760726786321391147912665221371067263712780706589028500119403000541457905323877190406605258303434143093190701760978414967203311473709667824573640641274986668545392941246205431589230275357070800984670084706269360644989516263733953253539666452929161154512129505812019152434818236837135319013230347012840950493394564762377520079669463395104064683615662169865059080648443971590709360066647442709220511819545362392655905098185797101801850027098681021743910243333310850227940351200850291025021427242728711150872739996218349907652870560894513330264748754437735094694928818046542444240223473293399870154949465268596822278955163458060363168948910655990913551771688083495007832293150925014847519006615334080712572162695479934620599996142559756232786305066970844503518598386641655145264405601603003756246941078194686048397999066158130746286521099500905158163293091029515232473951637412629260531447143047220086683107921379615903570250009053477936418352271721747361144447035358918331198952716495915012069221122122548933982874138568820657126335108082939673734055685513795588308869445926565537629244884595693788456820181436828066390523376879682523269436671790761405608612479666871020982359755605475227406206667890895247762299658668108424913023202690253412029257221368996891747620821629037753342853983611908040509532841210864480820660137976524057753579472649382151191511858943712468689736157088722525180770939777271418549399662201654649122138611945028601853319627004436356758325817611068052016267297117867702665157587708837172841916060973907755124463891230879521070838287529606765351350869046400726641212583005989501887229061353375374511673817005809383212190099136173628366874758950911759818231207163299584966974628764176094677848068379405831831697667272299589671401796453162689970948022751861439716902366316603917394895051637646990025864440280265968672041598361047538812787747106136689898117402458929220968674553263888189109106162030634608588697151766398499106374080433987385897510990288347572130217856206583954785416396139827176708880335376219155892188694168134232865434222454104566545952084222048098230127152294180645449275981737312276235473613740576587619594133199497343524633305034204841121076310129909314619134823413755508895369710157309842955866292675559113241759643500391994014601815611434660438173223651199245110451674592423609605399609838387103757828643407495376784412916597138497523743259534407287958757566899256088838087978831697292087416665355866090830802967228267378667980788265255852273008288699448396546204913430123884719824966162887601172195112645895930863826676167152702799633211796155525223569928558465568657013386995099757332557352769294514832709032252526747183828489645869735013662396880087130037569058505004672267870239928691561772865372037820671464653852840054462340268874615062858377644681184167770663959131502107056869060750611397425714857044875800677372164296872027368646298566059669167927247078458915267379741013421339954498989724849441679154564116455525278049367594692133059660671276994345312835156455174742645162719435291822784651454940308733538611166982819513750952556856590581591189717936997919771324798564611809247410596896901912347295518138532946493564849475427835854099732144272110132278109907165489070791247546351966614198474488505242565455511761949271096902991558088813614221494969105814406750939136969228554960350228804668515936755800289765599242927945859683424827090410209307448484809765371258003936220802219860311795422298184804935817004541997331709463540969046153788713455518869668381714679601097361300869224601392472457476046551227443495888818173211839993172509362170423083981451144110363539816104570005972408012199688788965107974886032057416878133166691803272407760498020221319094724407425667975690117216645207514509768699024904957367706572399730940230810488539312203319858016404328329471784582556372534612506260150222849885875253103008751333728269694953246688653073076620343565172653171548404689516435077256834561231543193149701938429427684814666153674813050983291199273234271005425097160999624787323850473865462281645276576000382074420706274413066194107784746556501458473010626849214917109680981686431025734949427931157216756572238114265443755747464117394918981864895831588444693137056398305697386340943719220596039787175450203071948051241968031754800229801356976016933977550200399706471053455100799485875933867825249038515023809480123717993929169276917314746293594601164913772786241661583723482106994655070127864809225899969898436470608674217945608934623638077779758352369546666622006400024453708731007963388126296618418640133681024740572834287321029560337281741469210533124887792174647564192281014285007697509113448333421766831066003988295179370391077991482364133723112206343669401964417057600761213477072318976422754351806184865233756887518632612065754086841417533667072548490598432963527383681596213027455859567545587644176610906566088642754985416986927649801507342435353752037705635915792711884000251098768742888941432073074165149383013547653245484622999293475274851816388950930894492097389223356491743113816488371751334508287066457027683703698088305801852391230200374697023192321524142867492410981901529884417984096725099943207370272416551149854442897133403558586071096826739663155591401762582336503151948452753605214006867171831408549868669903583067826705914997490820965442862179596230916492836018414747419385051308820425127655616809517406221361853485963449096228771762162864369375967703455294022934377411240930923370968228621259454563144762952306754813801327601786943468190762737337602068871260394926693055499028214237887240161169718135671310994871434267393139421008120503791127001942450176732464372921026889886305663149059762813084614097702708433684259180766978265847873801077643053668028358988067315188883190184188621091250368184406435982254717684959897198975149756240116051909889782712257605966536406735465338015379563863500210096498625972446497653256303738629070715670085108911546899892708295880367554239015107574496094583859781141204792280798750713850648113741376650510549194791922516443796766445224333140956676513236144924400948253638371017125321906194649113381117359795742386867925072058023900092472978009819636847570439044518559453965660315360078324024205150234963215896138670084112784818721187513276123206498547054532722628855878322692050830109098172801890646612406758705764072800232708709460256403116847067188101052275950228243078583801405070770333647320729127788316931574824709467212354010456189703737288278724179719451440101246775382033068712542911142245386317930531783039909815157565684655552354524522513562036889972523611428356068887040168329990123404953091462411034825752203186811320195808603742836579798682573267445370845193359087622653201113602293948119855729890945621891310873953382235531414663781531470176501352722710637311510200112912117116862535999206913376683534187820289810636313178442616821976462025669235754063319208099201498538591235010720861827993527836247105032629674997876167307824010696306811088977066787996869986089934549199894425462355858116958411314601392839142711789182405625670448077806824474376560622361218032688700470920029455371438908088759374748399405374936488499232986623713946474474850511719416062048572975441202519884726257123485572906568957230067100622827589713845183423260924532118888963025954672413131001525800198154952954193991605531946676577548692727087502396495451568712605181253179204108425704092286829427783682560149636544764846765045256850534736335705452018013700732760148884862029501685753211119160700275166703651208960858771354292784687648568403226417283377930324762338789054168397564212615337353951208505333070389097694974108613525870036488825106782981517763018905490112054136967042133123233584086996340066443429454133710995493545775786030810465543782239666871256719822572760865393474028040263236383645354828158196959874114383909738958727238101885547249505102659557904610034977066299154327462751201095647333641920659927211928752267970296915902806343579722213775739530088329537640928341764728583051317716541157209489757022075851415203913088855954757643678627600549182120523853159463608481200203100234300831564570911897081854492617919031027533463797107296191036915472442954206388811021462949864714909882215337559521721668678254238089919556505439938410240138478478813906409091996639704484446326607450211349752852173537085731894044385978405871025556218659789440651389690679328476777795066758041326585179374294765054005782094535243114845284457040284852616822327314287308965729798725907425315661527396923745786935641120778797858693785492556324640140080791484187983451822514080005031466764892417130551700631991440038970127618711957434001952620734699881790145602710151064443057177304060152535924847751737274497692001533630175611142320375268979027926798752610896951409686353542692012321782768751757259870380297483589203623287433743174401804025319520088691377283810258679926892088276975753131049243177289740909872796183249005395993501776103305786137183958979597869348380084906882384951639132056561809905678172757897422184792439807870245370463062837929233587528150765385100396213518903839167086906460372559750761942377279885387103074183736104643655071502022266232434998456787393096426295542103816136896758790212070207938243734546912246176371000859594724047971259395339385064556372321722832466017367028823679756261945639204308703311771764542585802688885322362243333179315149947039594464816654054288163721082344433201273917504951201984105559704649932992104005567043823759840499995256888238538620228600775119097369217704005812611396675343335914694794143929759312113502136027138561544937256678371282280756705980310716971761595662072836124019869952029848395850051209330733224394176689787171614483791212389274958010440520556985283039960345997938189852636304960800820578032919831865577689335497409204287094693717975940285467838419967285722923730861789280138046058085243979142863343654799547689030346164135070308134765620743350910193302189152877052823107012255894524827666232819175107837113853848922448191945618210560898192242147378518775988392990960484525495194968992654506240089898598447556256720974510988195475988846115676438485649458736095637904940209188613332027006343433193610103460227751068026294413331073884460060056512542536036322133015059974289492874815409926555848275507883412540547508066473964859399555690910520741008368206830428721572331211256163638679863141043015784492489842671950063754845464531513636394150958913694274754012796811413091682693533562510241641931016409278583421148895008983251423279897517738175578597171258699046487462142874092720743856124239307576709759346645322218318665817749774249633607436752752791952578240564043515223793259025504952757772606080503633754832275492457728643857398449739144156177985943573750788361056138743702692402936401032896859924089810102444543235692188398851834970158491855203356342182712268640658895038490042907290364840071767157081294113659438303072757455829543951187085011106612190068999551328719504116961353861815783903373286999451624093691250589392024964746085451782175307412439837385172562939861558419366840610163517323555770553643212599834587414095366496629658589183410770588933397919864680703954435826276013986006546566504603594005719802347551519670181382169659930552957743486512263632180662448955003440845627371522792326809345160528210374658285391555391363517356234016937610859454434912424415059649347301323322665110525756367145335153135098124881380209184436184694069501013146511624988400051821929253914174070135009043775124453559602414459088844545846410797297956820151736468606979771003814939921606287533103907277763645349316994473666109849376792341158746894412937285618742280849519501842062277084813210778043702548263946410037564871278223733147463671554439234990126243876720904148029102842789672047659737135496101388347885018903122993266323384517247586354757640524936082117978716039529907675471851123226953295255125350927338730585141328938859920490540703937989256111529201041014924635125513637584044698941918929839539737307458025403519245600112345386715443536202143568085321955939966126082862528103786479943669912920307549641745614399316230999433692957849259869150608467914358794452450432355830893798184408994095673109462258014501018703785646871889443806989142678005429305643566642748156760137156376275606220786500130696767304542272541704746593212132545766568335378594509559458236927314086973855134016859948510749120528475311334817317615100247040533841920330684612701375499720430084434904351484207144987868831887343028189184588831228155716361501769887609420234127191609347706549878348498966910649608932810165892566995778608485895401813187126234434814887441022877811200524430098413909762952612550070403633471977386826486434177306669361317191380837300439997917940313853439413739588114440342420343713401582084575484905727171114541774588840393130829011485963042243597079257943857208030419405369995635545500223229093802083639894284015453010584757749665127991914545633298195598143883138172495158780158199781903118872908542558514879339103752418786282451378523948400313424251563380742352386011185722272699792303478159084988514450660747644776197481836629060340075005883207108178458069472462743332734002384320933142801569670193352174253061136265382707878829468589955833565011448046983244840522109323706104336677134366612259219593591062171614952473502016108001064849506583372218885067582329591948709071440030629470560652374102305395638966330316740213762658167993269688039757221948810317806661466605412468280313980201670177364575444592903393584053461957534953004970963910606025744882099353451581061437511771363652567726189795182130544171370233504187873812572841319810965993008762485725800449900946549516078708478900987146630388404048082420673062973773909269411539674141231254133087738418628466587267989641022870928032631146223634484411603670742537490139487396047079780905283106938834432199673324396830148386159169533724884348652911261956162338142853147962602437676554157822037574146973151768688180940386579887268009263096928672745016007578350706553300369717619335463000559330795871093515539216954019980901385253479718851086307019268796716649560750491004108885131940652653577552291484052319831864412148860168407527464552441971489308672133176642416178732369907754398144919176654785946774266872073867095071332700949976771325898460666993872130211088225948767875970429446917135383044495470052854596704320482257561983434722410040726006274583704095814157680933046618833618004717899066780019465294973017013873271323830632955125404560427357009360980601087800919144585074438152327205820158422669644223712368387565546572861508273244068394400932372923305783702921489421568847807274018805245268424260208299762321053702398519425682287669887300981112709928614285226975410303236289275891207220306592722406333097216325380680166485019431543195185336446333323403835081826989904659296857712408204141447440865553561324332197952348022994852434348965259311266031800414370342001666923189045363499252369800149011374570049562408506419845844076472975936304199774083519794202850176880253721686831933633558442894577400707460305101731760183065175511729851497496058055595429750418216774004482732187749336528649271188299543550441485552215446610340729077150067195652872092454846122991883953228709944530613119829742317540151967868041318373248351600229632541384268915040017368112762065071747556958372370103928975566142789398838697631069293193696370031247221540441137813192319567700772321666636239296454843360966671588198176925173281991795639818275943956445917470863960406439987147682289309857381881413510780371023156471541484246249138969940758551950824791093238994264838309319337098496727997538192812448171774158170246771603221077648164365386982899702616843301862762246095261142841915883522009373680183058268563358329044917285932445528062505459724311828404447363792772183081587875287250800648848868158003060515481267701397703121706543176242482723026037177341345923043975773575794254857906319045744975939329334367553734175885447311013883703731152492122456316485881699371222229944233138965144321779419913398342574486457812384620827129895048684431042776556770486834805702361330674960144965533862578715294149980424575181340240123606466423465750143046486048308794729392811811143968976071186308237524538726772323816603734324538515883720675385015616073547288730079012200446796496487964673249986880810857522087634942345353450647238946885647862848211789971610776809763664437399635836568822721505654309990529746548578267904093368472488815530892052157237576309965046181829552205801665802233216037673198538832275264656473383532648825019302071031861882950781466521930279699431230371633944759062341862199753215312654312243591535599861037394518446309940887405251290787504417865720741944750301172926055237722065579324975015685459667537455688119063587960206073686334591845839151549906278043232648713778531651171747487585602897849312233490789437174994980969956791987676908921071388095651907859301248963607935217509890782849757727509508786188041818966647762752565640204444965767867288802736492728566413449244358092240905435060780901627139156775916390776503436780032407689526770976651199381616213486794385607460082765579635019148544645167470397896666062326837377716966264646170200859740775411436076490986856908678115611771906557421625048171709623826458971520352136140816634913459592256133575625072714828354316609419536263198111410109912175338451877495963906045140185825744317865210003207418804757120109596778410450258927298780644146480218135802074191308058987387824055914025248396718323002007028641529745803344634129897524500819942463678294641856101993623174424441243103039434804368631638726621693891075291838145059905084543528000082283215331142189792702413447619159880668793343329025835389715842151226998151809816295632604149128085239338397441295155000937393681125556391713068427588075368459820109503666319839818140390016921227586035699219931222427133413100571115222746626170666674375540721075636260866907258634791506276141752044922793629909993774521012792435778092435662332961766307579069718875351078366042664393458187968818958639229759734725104113533222171199695058846543318641852912681832873548352146054101728731442848714800359056278826747566568265341420728449127924612689764880975382486539752688669429465637779337984015030974192521691236333661784127325113814602137676069339171000631811928029408005208620128338577933717866075412516464802502293734156947301220475284010634445466988883794420761216424312229762666417700060506064808439774397081506693035497585595336110224420766781318672937456626811006016767335920958204204055089763031930727734867783675234494880131635842540791900753406624736926714994248151541101768619751896943868400086308006784035356865857001303420575758539038080873771530302045456484607871254170081707671494399164753434489596925829976151617213840656216945241932410067108233467799873541990657915994412362293947676553047309574922659228843203787642177563574198390580062862795899913179471682039359981275545775121327214099873543139293025963999109450089532961883865633925893646117635068023819516039174917929284092136655872267613656775194949482056596940746921312056861231093674697396337979650022304029914081860436827958004294562608905506449803310118333175801559676095914468556545515496479375793947665368683639515406516415897739666095651691024165371992938092304354793570991625054143545056294711240194016698932482774224295300936583591579161685632075194014895820028174330726633520284179765677473378204470700885451654622866330708335947003201878015158924110690902687910118593523478851494135369243095026647785909620526964245272831653148548024207954974414500098386765616853938483823014238845325834657777970786062192691424200436683379822922980433425295612399631327963877639035727551813409313418641861484285862784835888789597487295255729223214642554361398079156183487601751775694780376621899319342435622820428659539082785583697674429307762956568890968810176699179561786563355769707293561537889841439878266498840842211364448519332618513046408045898746032772794418578313953913049082833911860829263189740300592035712101993439419626493256526523639787342572648753931116664031153691828245655008253468328224782613802044900613169886625768151766083413307452738073419391230702353055781218515424254365856492254179133889844411963520982113476614596418769301770073738286059019110695970597430221494668009351859125051238310033804939981114040427888943673034998773209098739533518637166587858534737463460916559132136728493229901564006604991395911607951306167706085077195216734527698628269070642690110354515415080001856307753821045537363126223668671990649053362600532251732956947135778979504843174597672561518776403980049492886893030678716053066333632501779661165850949581760659533977386385115214511737095449188485748037859450734093120425387260475987577773543090174843292247178555292192134175232311253040000109394712194351495367773338640605732186617062290856556588849806746820059392038623422369941855071689987153407940992453727358849316340308445180891003973470885448057489678355179742734241463740129200492986206923288145861242751374530153295570592271432099246048889032106394255460391575490722883217083599568903091096606848927802062529840718761493500252571070709938443092995265322573978304443843170436554416035339749477986399548261493284893432217072390491604898847892353559205311957118554576794250909623378327813955324793244270556843620729879470303046549358509612544997678252468245626831670968833286567498300255044354820628101423747704094846764424946823658404708990341157548423700430420079701916651744299990469313252131376258502687981750334919973443711087634504558588617862353635331219282553412730394542704327513805194579357749079712626996619107549146448853593798814065051079243938551529775162125036705226951621038548712437764195449072562626054564432357082208657990048789198758292922025873504846346723173621276181377656809872218222589228976713599703846090377140495261851024312989654837526746122623013109251478557945239768035282577988074348350130079794610937638263926396697870312292938814291769539058983137016948578113680587092650874111674724694437563097436073694862154162417255980287016548455991341609218784721817798980221224903997253809624275313192274904132044879588306042818263486182827606206364253014024686126040770813617229120048093647326190027745268441431728068203285110690599759331421313886226156109316944553197180537739198832718963197018045861486919781104379775252061547253260258730097963344675389239640195131897622018649120121309067826623552350668984507375054911303934466539039601317175954236037539653612098185997600801910425284195796430920269846827302833401419829532268790106166508467188590966808733362716263501828020605479315403395905246230667175080497711842079717988237572579576590764215904520193374011506885693395358107180282059622833021154582047086211684581440159216924793791251981356308517635679332996540101946728190370957652276875190516648495105538967050944298579037044327379440328519440097663283082707354029558690121475717359004108889329745187791166361570892330858272032486280198091582647343539523912244511914563249275954204273792067024886736751927631489070341335859642130439583091698220919619845658125223336081327663890669824858035555148790588178310358689335763057353224177892537934768193667539635459695722089697364548878832529822174671029034970280386937908436066395522320351392378915164532460036805718206622296528231421053376424797027118270938365862507807586959691726514786412420398528180050712252258067529110292433658426780358765804169229126614098232315111314909253177208889817817016981316586839093885950001946412783618201873531198364742188775858837827205290299186633219883892841563447777060441078960055419160193533456282248147098648686823982430696752950916263937665293568417446896473944931699768873940170766433192343959444891331162031444719632964291837534562134227357047649634949841833294346438630737430732480092055295488926769731075786894079195649490986659593135317808287177688214228873620881088022924082209084881693273319881675713042586615473647904469040423215713732422292403476870568930852309515123867189418617985061185194993425912807535038149519897462436353071576736284635722129986110654127391807941835001623443001982213133346837734785644997908088024463284973393952598566064050470178085591820314326674011279954366774346141354861865051124333217112897152187596953433619367230208772069765825743917178380247891435327241687307245925628102039926809620048476567130961116843397580990287728063046762872611242805709450411959130117605579066942178105086186181276150136369403077265946817602919723425799478696078467762710474659728321144896438262643797239572000407584849884051886137021051508023027240779272727898373777144335210681034621137134711255690789166680828640627435683390150252727343267044359619363445065891803316735089350605729637480491269785432217873956343970168684886820855630020244363734897814068600395254272512697976234430873872204930954911314371146585062531475447220005593024808431149791164076377951935095598978487965806428518445327364770521029477614920429648953734057382621246999515544045228164568490959944586057117381629046388256105120058089655194056508153195247691665468164556713260743636908533635939797465250205536837283872384786696041595267250541403255721137344004999639950283914767669592689222763122264812206472006637098156177370644659081509647177952997299163692826769555798611401165565178089470212615916017847415460230692270626339679419242246345129799130853916392932150931325709089752404807065104508919409997594950206670605204617100432000303191417652412974338364150317196096486617285604108738910714751791973059096515126710498222661380942210940175013834139455736858949838263149672353495113055710663044958797466683324318983146785478914382303853818401752394527761001314828327952882221505492430931327313233929709066824825771627653845216313744550220040333919101188248543812038838416317094547463206887503748141709157915126030297262725402498505567257560823193932778445126527233548952319851778858875158264799100177765778018502870739076759547037366788442989387697870109511882135945483113171091523094980469957179176952599917870672192396005539939141938486778077435370368775912894599324403951324894960693235809973185585958342351021575772513299373674157902001740999961873694467295684145546596738553454359171361292932683447254349157561452885515793917231827294738768249767513470862395056600834348150460737318270120348210759351798234583837137092018665675378496051314590131257812194145949141066330988051070920765936011728772105124526994255989253547640425436060227477641001164860539385685971208308483762528397815873984547775703433528110439626912119496463632009382831046512529063820579284291903234088236459671947798613247085102583418306823783910838671567925270778130482409884033179984393431223378651300284331977861298035866415499850422479997886424767566977971463851318893429037050772984355084253733607323763539657155987485873102687774141987647510953280204181027207577115580023175284782727137042569374162565878302848936096459735639147102951151238058871599645835815793372344871451028046034445431561604648354467747267988227477752573338883244910701965352467762945670739950596790461951524632786368226536068934959748767354646385613401414314746138475068991069119066935861946398943586304628883377733928159269669728513712276085224007151041779663330303738207404114877583979038195748109530410569084275775988467960502864313947049658481910040831827140578452202256892540375554736092648156987890764803574279264409693284500682333008195262000069595665124149290434836679095052219472713199652603544336527886255235222157757032109693841059280771746192563802578248249838375528847455504017515257811365827331896225951880395425242257908895871098170342497828857818893973732760821218594410562320171380599637560993366276886802997924739420118159566890166839641073252385675807715607549003532186087858135684639267212130942008896321071420961049752319867897621918981802017802699659741536547489890743463791171074619496833622582929183522091651577202480814626230030839369253912074974634145863656457158956255598082621730597711209217163957198870946960988067202921331219159220530697498710826830469892017290861867243981916127300486370294874899385680952412733425007446255140739125874915031579569420151247846771065541717398898923773650128295552695861023418706836728209686932944366744852148145560377786684914958416716056046375410763274082265750482231893865803799299319030857986182878696569674174343421595924706609007568312204067837319850725062598309357939337707291391482786217010532112930002982086371335664232091579384675906849355432319707791223305317281190231632720353500120123944350896674594917822576508826525386542763439309899733392978304976568943499677618477363322903115203852885909688082823812763491417637916199584102000972950824127222732744763714577360600040804999935232324043817187507396937891822940615304032087199178082598860897336222095656370234012886358939250039829283068213706129692461431151739320386987680787022081690184384276371872537595279781848215013302669324819918891714330239223137983912864089040522721929979967315918863396885727431132285850211028646871354780573295778304996515054679935581223107215696665906647961000146653630523206298439977453637093225359613285315804463237733918100726886972754894378419846022708986074413253432428195783359173942141505047213503733458770994618498895854448055041033109500435955325473493245114573946631590398719620882424599289003630758825059928130354320517690268020427676349803116377941404201309346855641265164048521731319305286066740889469440933660977250876718708047893730556930717470573321151477624329028214336075626965764022264246663233010458785381101450745769687802027369042283456084539378180131384133392587227168421497467065056193757707516377508172292877509484323236349325717027237031933825408719456827619073161753019325484968391384838677769217929773482065098970831589267752218115690687946205181443630380633503966650607638770402738531908826600412208330578077158664835091256914608908998236467043870509113895523300167034682238594260247275912679065792388796354846171691803918432901983120257660211233249503493332493696554957422749579348515257519724503384164996885360044530731526855809986695805253675244475682499170343587024537241564823672206544163238596149534071941564547036570508623446029130522873655399004652166189535436125491974195987113928033696800967700099187172225125204544807803307666676021795002770791274708747604627394720218243581446700522158820447231419936933239503836813058604841116825668103921940007069200592907128485648209865105997298836267862626440030810078688202539218899101189093471054613859459088873046108400742036370333277569727854222491586005126682265202771801665962024999410443706270008033343611350763919484548409572140585798186851414966183560450812265577085408840928212567393402913249469866859677964024078547294462452178471921328449879668889227285618776871137969044538621897385418151093636420241396786537922127512199792831553031523125123056550161595523775147247704677725868310281969321351489142983279476097417428018396617487283673773646662522816010664776152829826401553495077347042847486156243577187361845326667759485721751883483327486677782889773539788584570528685261992808956474967192434713380110651650687239166496657338969080473533681144128552415260420729315361814115981457439105790147595353484832153352607721439160343556670481536739188269760729340527656567950325044055649619966695513441653713780238551620745237930334177207666607547853100227364618599899446102500721933939533541453197252604627740389571961701970454410646530647120636554350389415417347570200695269188006660328350962725496487055866054844025447133624502830570392823315668390177248676806012915924639119972787871138745216083903589741217723020538004504298397834618429855210730039774133023310097285557735172971667915634979556597037253325986641643103980882117683791850984639004669911778564914218488735021638218924688869339721943841699076263418624451425492500280694506905939617814909884721008221346097667654818189296024574646066970849041671838395354239474694726539549637526739127764133783544184089703580789031260206718698597537156548688494284251327300240034832142784389658625423749273308825690864485534718108860862079226351005725676031016440854279402289647108346381102062376235992660235264096200383880428507473558384459000848494094972379148953071676596208125812762459416029012960303544642650901837881157239913352494132858160724980360463350134737724393679757944910426075653032776257626495340382838767285565347684514233693393482848641973282424743108598250999150874916076563855704398546771237644743170977463544350527982575744876537725478933088700043273506351304597242522825802217718162183427174478846034602600938807332757714152803546221683559283063448427840314074842075930658539803209336644667247411595598662988721158276209403903706854975814120826272902396538432652588489423581274619594200909287974772388030774244394565038752795803405018056924724704492404569268386038765233802919700429604001832525572052865818024679282726334182332576082398458894694811106927497344051039794283651088527846540753918705865674930865996725654649570420828868089232573694963361222525673263923259783325594131764256276240798729905149724184758330828967209249797472242189681783748050803208842474853276157716509917998786247931430421815868191050593320165122831706039111118458097115536461157783432418970967400461721784763914633530885395271387886724469390035654164061910542321508441387782170951212137153978339077537207495872658296293078414723953736999369331065791575451262377424628722424677925970188781832881504756936008610975955526728401716276107708101594725211221082838670993180554683961890420783856653350571771548986776554979994124107712348342500614438787229883399986251592245266291266338121813016027049460688345320991782957730094754283074707397733108646575713729375917431881575906515678516540389901273220617658463104279219338797090176117631328748701309010461873254234621604988135127350633071742364225713139349340500606254489087246020272216073077382387408599706484684737998174227103732879466693757203516921037845165735729302848028932148039269651699314774798319455059101541864170305962906257159444647202845336251485158289522716988296357538192135111075266386739617873813024345022465426028320141756748965941695387827286608078536310733847693722350238934338447321545184998108069409914957903744399006878571806837064519084476670021395561856827901958408706142959540764823651693603604828513108213772899477448724040480420531018029475375652576673357631827510916394095468818369271616697721791936944435271736109263157427087822728390350950042984291843738132808140583053951379109772028483211709419027296410512324673905913771629272279897710358899793283639219850596852976003425990286799582643094667307443180180294491042182979318112200228012418769465345868834769584386745615514616014317119253166359685619173260107649103011190964412691755343636678069550960931511312637041015644417375074670500480960914020327056678603694177951629719773464165920281076814189322659838343847137734269674863111976481162311803352593667802929438740071188430385268311186807493040403687635624995070818426547531543346587256715335180568509889850296649479074861125404854097463945791100910911768032879303393728612184552359078540488444291101391475964226944585371202509133256744659430132050335601641606745313324094605244198644915766667489311158359090693588983868779812535200272227397127664704599508785941073346872501438853181621853488498746254247658737376195311334858913809463976637841511692387609431990545592679891032267595674799085776772474581942428713857355002122638473346219067870894619629343479023501816958688783773430517773600689180237169928137028438750016109457083713064423008091356782036560612096897114476639638819456798636592039351483977646595526055052951813377226233472066268797453180231248985759842043547329100098239329709045672067626242647850861587979787013405031943722467980012356884866114527996717878774664427823492452694317165652447646461581525428512408385823596266945654727655943232208987251059637825520251471028464757603751464918156596368960886134499207104900019038229158125324342295644392818943283239417340676239083270956237902768305570309736830130855618630010551278212002584780892372156984092231149171595562675128021549217706823719586569864667398194090931199245990992773438075308510041280074532568718404193309292317143063961740854609989973391306125611275435591659087025442858004033010202034660746809776538333670879254842638313438045127441332348469692266512489634264259296451074529574045240429084822363884111726012057176335558105902332289933418094245600751991140065427547876659256247211597978854551030845678020731899354373194717386793920354365030978668482386396405489160053850868258526770245366755790777503633276063907058901789235890870881875199740627025384875152094860691007369821664474888649579325547513729128894826281103957722835395151824392285568014756887467962659699638284074586755657002255098462679439074405939972588894421816020940514884813834719752185040907309994396870391805725699288998390134210687453100057210106904696179114892387029847789240746983597482133824460014033630504407570778087769021625655951841323316057981280346582364569856749133039881187322972573234130819773938126619503432529369650959305382823437081935350908346027885668591698927640749329706407555002214910629118112350535274067243241939920920281939275062458472108066953140929760823190790627526544285993585764602199339344519900107331495176143505488723156102518451053398251281409203877894073039093738346081759343887649053859684085383154477105722194771738461283677703572271760071984718584623605522450401697283275012098995168567072538563993335574588700509297380029269412826298761950565217418408644850778100619444389237751586865042204506634955674438599179806911225328660524599286897536584054995572873522446991845326839453897445514478443777087680429072650528642484834084377045726720628578699399155081452592423932282883333520316035917043611931422127005606428711054627707994359251046807784932786477264505386847332241636457920540665236233891790665785541057426800735648425690481816049757394447099703183776722603681538703804097361258917619154718529547127622326997819156169842569248212742110884198458953782389301051368830352559709528203311382470965829148823927210074459927338154850331066277532643387162579856074813004847891729471259390862008023136017925906054240946718075356088624965007349984545466251130940751869909768921605139970301499033721722647001798945010560486508459320177905232596678575588414131087184760349766585892095194946728569865570842750710326156201986208866639119568477917036220340056303088161070169743516556863008616408361196234811631842899441760394879129345636552360132152586760601528908926530940742518361110242376517995233958596075324118585846574016358128454742736382606917058038505881523948136257536849875307083361156595643678760407534729454442348209765445311681854772026985283086589742004329643949604019281358549853295050103508795515274200979094508225064305705263535390551909687768244063518043537989993576281281644122984815772075323959030944680665642125708015738470323143590196981906458898838659693599421479248514420562448435622014160435864753335936169868708491563904176259176223256302191973292286092745918530020812384344958011921513441362336694782923397986989593257334687859978649881988605000215919052532389836560152498916743659845358992094175651937867854620949621001520900904305824513824476945491620014885358229018748433102196114025911271109828664055779322856583604129830753455475804893329413099587033294690996915387188874995065218158623564281879096251894782077998099967470294114093244885049484013030540805354535882619327446720249805620497407055161094342825848206019863454125664366407376271455093761498119337424265641586065176469072237182750108790909354221151207213816953086882628825756471003352370692802960479438941234557301534264891696959094244768958801662404486372023943050053860800337315833951249388868152501739754498294879995770284939642765688320706217468461869034890948879843023207599131727742948864199571566988068698913433415960444329230400194663379159855856749909651768867141742780744108922058991539183435560365710558615661239608265431123009095411891588915593823811752047032356111394962703625818322653039148374719433359178360178389076292966644201870955417217612081528619193151892284052263010164455010263510321391950949751664017872717320817855110913042525721808229216433137333650087459910642571913579280431188544660479679028816800681159962606975861014693352455651946241272648060651592864652434234891165008886817341876683630923777874190215752480997290160277038091313169507114190149897320936000665619588758002462971018752803968779211748371768171516793334955983038189103568261928522550753642495077996984083023701334027129873018870554346903987034856095959471224932243394489367354872359714813017855389279851249062779310800563600775478689322428302191270000245451605891035812215609806813614787067789445974183127836074424689969917246255361607480808312006798207366205477110411831277737072086505339415841698904361325004489626567933057828403685897478277864956799447034270747852133588140097647087467503266194911921948654888832394760352574821243211935499324738838553155326113007730222114742019787505333736090248331050578391529702679234178583305847394102051498447475402766698164080945452528833709049578260507790894105884322624362095412829639466738798295991819510262812986417145442505561180803693357163350336551856461043845403525978395209007133328458934034025215253212334521485528338442521417862150636459127178494494422253754495847715107602066330790145041319071582560448742816139306090245742477082055951294739068348862021768601362393211861505507646026785383609306139040724115279730503246171317902989611470522695503221162272018677094280722889049860579874846787293558692712747438138702227421718281757968896547708840761238726935848664482916835201520657286701334964807133501361271444888122036959009800843008863749077545604017718156427144753135091363159233814461644915830773109056870398498271988377401764406788639680096529376474668247179078873770359269028286086793211325763710175357051690696513477340683046506934619095364270190570711680879304531649301765094281731738486744364253198156070357781324554639283376645858335043524148018002275577640125313384485656151610841999439489969359215843009441234095545283133750846632036469910964141739163804721218809601884366689306643566811869295227218258097285057862894407286030175014430272806949987825632404066038767068692258773911530824967777501101770513256180727765325292897239957277849498719309409822964046135569632065883933082307405354915105594337797961408891148662097293708487701799156841824895925739174641404776385518604557992287877414592952969927158070373865039170049746937310024735788124341422340908422682969075271021260758173192744810812444317029073829759958458592322235066395145307458695083761967638940608992494228092097055540024386500249514071785625985215652783903860616268222931012201176131850717116779077857870219094186518731922968480022189847998311984408104841385602087687923658620359420244036740582070138496099661868605931055451057474886045888635530339593641234599119817913032543693490150297284150285941809036020655853146083863022678409430531023439516446774744811182708432608835248645028731645709904043828979809982649647755579461896621104477980442447861005580022925960762129147661268882859158922740490074647909985796894829461135901006888234900144092157346992799309321653014912220887097941082558863552853825670099304390421930074275879472529772122856341875344422427169011810043723491976253279999575992223453504767402647995127947748035830698465057132344064259064486778551804081362131137127312691702757657325804649505187249206524900227237796440793416498737944214862953545836399195496529140246034347341491632336328740457767714977366372433034451389461394181216152612464692940088849995155764659852475171698854732537054527554531045074034441158514452582599882339834969118339374226129339675483513206317689759895272456256018848798895401498047872364584332351974084666529203339734048335150434437883034530709758744270454175233991963542457613744414158383875633816405897381095796547063345885084820207420085188591743672420214856348706704640473011753415192042573150680163411586782291569271041127823207102447655087791374607505635327507544507154329868436450715186364875058662076281292437604060740820507064270254574982777851635718724623906035633452324292659697694846729970452805287766029313808291364892888815830729790509893537930374972684432483559173761561807294345301421067879699976234049106778517449087327747064122510702427180182135193117808667775632088026223937052862029569019344496214294170564574762900468869474943259857386492157697172933332857909592383570881433352980058676904526997570896322385170676432043592971216717561999485362307461954686264678058166617894533245917234806818599997134378437277462977028904346505441695025072194524312069128836599728301822728627322096860580426914180825842793004275599834367322151214198293340431955557573027543159223846496573584117044025837864122918811042437650513897740442163804274247026324906722491671844812185499751748915682386929768379811727071830904840333947263900786645157418355076849034982944896894527898276444499077977887379790076901724269213168452465645847992548833138895151642901343631640901822582520648388898266937032725764059823991434933613960866932649580917889664110079924539949481879427593092682039328316753089590986980700512154974894076529373621044319784988701501424333972306479205683990483516427864654130265876061066644585349357301519920497568121536507816773871364881359897888096713235624010810838582643872760491542115928288669591011479692214207003426531372459212726263835950856881898277081579696455227094171672967643297311911010402857058026424439443585530077080229667562933998898690981541215486699215160066208177322655138584491534557739105055298063711932903742142025936651410762259191001224372347433450730935992267387333049582159725021071554742320682731391638424907269783423537762285245963625521349969915983710460028620488897734729172317110073117313599698755484899362148620420460537518624022368040238271276581893427608850672766230951721639620657494084118403658325989546672828404092285353248215150913536055160472015506894287270208263142985639502915101415219987083371016138126295020071075021706312614408579395391589763871802651068080943944197449372670510502498973617391178324229560970595971898118049582045528089853214095104360489380090506140839820191914644029503520326537299998881921646095751764038258314737198264760112200488708701177002006901973910946303948314337279238408778610660142870828424277270340327986985450442194587846470609295549872884652944593940778304819489771616222995039839103722167393342295815203893901623135538142067892630658978791016275202984985393771328669615554698929953832769741539671865204585239183010798730873194839544952922202288621745640872543183676280629783484550820096229923536389936147286535940494177632759855100806375149018110139866890236497445418270938195582557429471603546447445167918866542318786875089756971404918941811425974745750297716166188985977219846590732390354644317429831549690945203902125368629783536976011516266258659216881856471272164621898496713710968101503016883630239520332271810145480790780050427044490903694994977204937381476832628290688261907488186767349328846583343612469804630027105071811906157271043940291183030194825991585243358012650931910120346699088490900203702552198326485904675612783869187560430144918683956114166309097982685118603689047003090539489459582137139933666932295944344758139455668952595778998206129351740026967302855403519407348863952599933591217100135463848722702650680959035107130593526661206541151610747927770812927498679131023143284536150100000689546894838022133856363172199514890243939024656810692783428712334862671467785286013270192386661780189876786693232652020864942910300054278861269781093615294580884589175838944943411470308417707327425097275347185202520557318571836351490229417377131748825251039356771170476810679943943575360235051664417902682497055620236496660837437016312784753381108248876450442591720255280118890453404662672232134974417926836250219091790149584143611406216141274877547323136685996591278045744602961272206043829202060111069630631789231151862483614400431813921067275507825216869686947926851613743650570606944729814737912417470547616562487447566665141902393394153151578111985432786234974589044272142268991336910100491607189503722865967193407028528094171303960272973571031425334263554389679980305052989684313787589972164378242799513791226393140508616735972985778030486675861586690315381289788018653778542807503672686456882757753779740956254063525242917642574213901856370487471168381646502291098399020289001869722699868264063026546606008155773500789955698382276804919280181452227817720686405557180820629256836248279074772230398971330243053180805185647495258644139580039157954404618138232732793947909195415651246427190092449104663528522500536522541476611787099204998204032592097663674358757458315774332195999406885158366248404222117508635525989055762457656714768825773074710338115449568944344984246387400074635688609462937720063845757227675201372189752194690867050289409406402416871049983971925644210155590279369925849969414700912557572041697972007290129845775998199444115927957811436939575473537094833068168871528436028738403636984693906116217032792183702178330718965711042035991339658409830294012479918847193748581691063591268794011956811493832220338845533646584549447829912901984414101620588574418601006562793271840059175641725969669175874786388547334621944451469879222936167971012072027610141073731503994469943845659719524839679950104012041454300154673564579124653684490843776492904811670910767271735308559287823221684397270585084462169490762094511608893921821699114299674036882495415344471940682758867443557771642609931830804203669315386726946661818073507455963415164645955282449323289813339005110813569272025562210159378588075577012820224014612606821025794595364131962215539303811483415853319339881684428974687597433824854832979308290499551696533306854963765017972532785410121549423993381451328923336898887813163708225223013831631195651004232342457406608981518668275211425636161220792862217815403473940541714580454812886115430859306863777535874670270925842401150832091449878364706617975585638210541389468041440427475566775517877693552739875846777860727671517033740609886347286171360249199886356852508712479844798264038234182889537726604160762927128699711200958214821264850196261634087636633911398622969932044250942084030482182670986123743550368612980900908405512779905743866502274830663798663752025446461903728203356926328069178239345020946264118706085085992699014228377419359838088048651759518342644690136705049216066414526452679096099847027417095852705647139992355211294786178866236906744490897207197424748395641911534184229999597508391520035537476462338971262320298157878534571871730845614138920959632069652271838240432022953509900300371505923162163469264512432436468523623898756969454625814377510518462395335754434889990683768565655418832700670165857107904383837465343699029529502296733443906204029974501221998548569876328884093217065464951372499248287318273651023112805590413821893276897546829009289435265372994677274829950389294604145058071678333971311161412227284174086410946632921908452580791790592295056112909000005778481747363145643366410717896258107209097333489414462158008856973487642699714309140368591599160577313081657905974967111755337715792522746094284322708518440450907790731276024704373564945808105578115161777809457384631892783817068630669897597437604460792737467855701368297555451073011323962109566317679342553936430356127340440102114525613086025002207772147547110117959427536642476205722992770910161313458328264818211554306466384058761141778041382804498178637132469449482182072598434623523863755128815071677755228778804935275123509746800411576671989230555198431044794159239565205560874751223840864069476737041254290953185690003562901037047697241391645719845903527087479820479337808386931364332827197095084852318122761577412892859919912140461873865074237021408110780854907344234448098330485483061915226010803466237596782335665472039673513900904647150858836139572439929139694306101371394333603433426606845470132487180528014152435523490219911410853849236517881241874718375868619156749231951246253015877195836081675442620325381623345467732427771167191153188757884755797609110402826092234786848365698646672840214094094428367283999377984870126508902984128402336918803643608903450690577949767075952318928653462406642430775395463983432067025404594634975506019584484330174932208617444913692023046749276602334174920731522638015062153071637922397254541096569882177166921976506141035155976607342598760001408512200505150417744723012827194332012913035908830782732747301138735498097664621543758705276369259136589492764288214829966983448015656866243411580986496448088105793046221191755210283293649105852030186661815278356299336168341658622596441664615976168653043852937874398595966355172097173142663876968083220927857241893370493199625515790168890801809278678986452040892503963290362751261065173959388075657737439468835302868784528111803148362203058020715965514693401334184468504024400271396581301446077898008657417610626877648936918672614984790819099284377595792322553304040374337225786866105772006887642678997045181393226832369273662071282868800305894907152606710745909708591810791329049667953530231882262367002348690787682512743797598653357248383674651053342553209788832683683519798831286148015017469967493669276847807075845268356848600886533004221585461553041405233173204364004247764268532968531918490016307890439688356885534362499001308635638505698457833805222756092000312125598459459116248591366917162010271803807076558362603719834161017436885420720629619277033369792931332533121106886645987430952580346916081380274576153226720983061032398865384511326644298663661057534639018211370160496812829284216999038364259442458155005657127527178736520108400743449913340637439689253080169149734180062952190358943430377959141498685918071608834505132748360623098777584064032895976353543742817184473294427305173465740788862129557431677602897817844111015994355659641593640844641539971893999404967188363243589140468661372822247008158744667086265702445821549919594094312593005264504320128488832453950435750884844948613382036682113631368567737084561419266411053965314953297512008481361943982589497261235238778245101648018154004782830478928372221027603233893925328671682994444528048632220378862491576881008527681240353363393613934172466164525181056600703034303760571009716592807883255928894924865121074737150402957548472765200070867871706960785390748417441597682129679603301923762401692343268271427742970269420256874476792344191779929487111022330995029568456089851430788100547013427372122608215744613573619844055637692249489538379347488017062813885251659637297573014768731212663018575540339979792696335511517529814002419103471235709461123093584891148748647145651278924677975644443379633997016874875030920501171773421980389278087789437741620554313124589754858442366646512799638990123643750143633600200471925939292050428221330926199233574061983716100178015016178586464862453339490457135536260250987795333763738701965864200193967820668145715705084374273946133661614043053892520368556436405395400865778496915781926798174423747381700205162132308186161718725726752105283184451538884205233791352746105681508708652407680703330777338386267873384729957462013457594867267156343623724143518397369549774394748394569660220605767542989948780963655009782551755321525017707141409903085206918398067717683939141137400365335205531335995260528293647895834223607751651934632718565398225969451258747286054064728142960103251134397575026960346068555164807695100054731835549307254780153615530848516653498192288957382625130404373746851277302655027212748035333134701945528511137024258482634118405389785132949596197929865634106095614970597683624160194340199575311342589725416478741153270534021819712450007644460676838761699104124303485349045188844112977210462892942560424757720833535650563544461806285606005365475217101836120500596851168450934431814805016484168737879102598204716259217006252808598289725714754921925064851704953306519051845215442171790038701450866767167136311205469095813629613503484615109513852877313768066246155397208859046583305917275645741733365792901376086700172832106688526163100708155177788967066584068859503787749383825208219323065719523601049898980814720786425645709915719120118205341043824386269803077821276492830607305511584872530281062786825970763948654441580578090434613018510361249565620847604080392136213690827325655358180705951423121440171564514532777866208717762816766299361238733813457267594853311342670094969904665396500529922368800933600388646044996352160278962095153252536167425152577607566965249867102238510741608962254246320804780662391463584597832408507490662107713584136553767383708380805145030590608339903845666184290624945379199250630448511770546709033808549193746636155043551297219455148303306723873764366707176723100256363536826498786286454925428061249054509529527301914028928887338521277485298005871127222447369666182781690981870920774108585603122158250259173987894978325203804263978380448960714168971241426187136868673505371701799791859164494066998659553957979498595199619867864975326249975043155452287433810110393426962210714300588055701566860799957010539954763377887873453989302662998745698222915075895625480932189250248501783515230293886551887903064645173988195497519447174982740628840558231823780389383810129039256633587740243964865525504463311431653045876898309671356126960470772179660259812829871345855075842142383899616595728351138153675150189077224144124898082952897188979915890835398093909361467458716529948143996488303558851796919244920968284356832915112400257424067059025450720785819310079336583774599394582788954865556918299949390170926088334240750111307656469656471148448963183571519656823039522894996800042830477405706845795824154772236617964649282899732648627432046708352806045490016052165514542025906786235726705135226631137999100327671080160706314298918601732553116492897385901375787668609594259255018604609542306348210326096622919537616446260757032442680886801169993017712002707671604707963770675746686314208240668943426905091472306369503261769922548939549764287482097477021261213159112370960219587280541727068700257821774508651298766361944654048299515257428020457520548161625130834788071839861447360029798276860207164148756570766073688935916814433149788037731576881621853758856231637293365582050948885354189785615694103668752386216462327126471058627671771331114930255497186601412519171603080361922519890339686310185434869013442716415524503672120288524099231136901637206473180446792213811631446740561952175513997801340505913659721424180974300200753417422292387172115572786942394061954422803690242525351710205325288731028792416017367522057236253299799810878698573753025430224434629037976549112677562188442664120173984962049232733279594515173802176128954119082738398495821651759331313639601178014688353092509900791680565457225064688689895060586230781753351202832169710530147083826217169771463295704010127912874504663632428212797487825440246343230406511322444578067154335536737084762135030110735750820911566146347883486549375327647207698415284529439437617614115656811689469790553789443820573449722422272427738891891002557854002669996292083135222049099694884769196980464109470390427975015575663572722114909273236937892597284474552291258105780494682344050528482537203999219331836853056759190308204853274866878999480580488739131546096256202440838181405123686573638422080526289161933218487603641554410463480667113549651604954671159705870344264108188758431123329623288114404924444605742273001121409202116683770007466855731421332807089970775509743157810235699000491719866753560493123891149351861217413097118145525226146872201574581831853780657346037536789098893504784359602873627257438127848576379318670108550529107534100520105862416686283768886741928628546401182004545100842669565222597154515352227760308296301712319866993594362229104673696326181847612623222778715129410016455325230095375595059673268104165686173161180002000053574671832054479728883917257701132208556231518879728735713917736168423720277875286964065044782364430613798832792869216498036193387145796996144735327040929919666289480151966881090085781096288899505406503581018494423226624653535451143254444558282659211724408643471715481474165726159397752509505706870384081738779475656853593555684508355481271111429918940221336911492412411462036457515381805267183135801114029110913097637953762653639873031924492798549364652828855631805958706867956225206261298764042132588883924120418102900184118431469396716312739012869229446099389143028903360966257517857073538381253044536141633647467841687304711352510351353354339213758433739979908990437137210229260736512994619541050319150067728062912425560638041400346697345827290327526398586774739009887958115963467156789049349934339025812745532159190731039358197140840949586449220278556632010816453455357522110011508261608928413264218947238572672791127016938589503075492924328170276455537531214247946639020916352528188253873224539521647669633121569696540263063689591979034700369065809599556213210043476277766379889331796617073185486191081150851518349317427681485659280692601312732877731556590335652879146903454782174236037259864742748672817734073771522662795244934839079965961248686985309557420400944575752306473310437589298418212853296569382259869032633652877876774601331432990756492940896931930919531624170827210604867743229876081173628960707410841833435489372262353735022188581687172567339503660647122123126479011081232453500079560955244102974807808166448862535687718058467731140745047554476480899200263342810191507944382983607718559472350561585343204342572638048093852993022068192529851598879433024905995470426102561448607459156393009112224077570050538860961492422896337918322645133544005736936850081271919046571317235237534230797948109149421403048559156319314930754992322642521028727877210341310223810655984072239123569267577859499181568296362960338609210036258798207768931745749202580422308688011712791537290296262633486230685929295268206035695941576886212284651594662294036353417268675732424204718886746799421224534140432804074720194298300858638008341009653889735757350945424924576106023948780420213963021091431698642843431399644768713336323495367819523900219371842116940905104790718332868864764891660805137629327687925322109369109435458566224621402979324089664437210848288207134232138640369954553380296566942397057590119553029744072538768479715366142577331337225723973504447119748500803675922982239347988683261069563928477765927732928287021347602605661256822826746173016527997282252244252176314080732706775672882162330679840002805476701474651188425878776868521962903798052528016459606163600207426507262060155846234313473799767014043928607826433055536644904107614611154901888717907234007155019274714671660356890388468733192841095803927091548598281984360068947715860962734616781442529276660431805118242312685229436748313243438935121687800521646670530171403756741715961583380262869162734134531523967048762949096754459203665391198303976991531114361820052026037749936086349984366688142613042490755016421532575096189160036714674116323782216954961818235805476135621165790286374073345666281345451276769938244342074969894590717620302500337030305664788589192391276521492334163931746121494617369524328084491144469590650854736014190795752376144826705487893209667810024427367806275477170498605261114093372341426422805138367187469121990880419280662433401497941810954241641444766211341326964482672420976168531262306395063643928039885815287124636489695088234545957247777454377066732794985990224498962337998068688290425584341284308189762179269171908523651273609256672087265612326355554761521380542047361829116793535996277463181631774524962222169307627220174544395501377767625427054525998573082959117859602913137585780897050414042706237528478702156915144380983674624170908455328808674828732492262481155987731067713102464207210806629265941774943602105297801875533205816240239931612831163516564635158717821502122322522163037119923601597808815274990377281532148340704219442729529522440660659067929637319993488856660029364935690007605709820582325090515236856036043643696754832626168038254640650862370089601437223477477415184189063324704565658548133876625085211783981541860720923988388534260616954889260853303730162054675435465246233282734897707570084860277654593865384328846891804020134500781249591663913841279839694622801202746223588297902032055863605791718295385123589068976779870958426059534468640178649822498068373357953620450788150929421437284347758704669918116001213690189446235453150109652987117507222946022183440192751259077053484478960774505521766736267706053836238333482957882959368431216256063584179308800963293604354798131682229956176193075987914104537716289253557411174918622196547518394806217794412770039398454181520697232866337958709470563517619936374858145163440509024090908584104667441419251555736334269271059888407133989040619193607463077564446962984744584040193495346345130486763875782738438491583520558472492860795551933851509766534754690020126808109153495654471796801676472851802378070644282662220895629264481204208342555675275834368944744663711539923317771362335242961652227515214022463509948337118386112631696952360690738021135913988879341483419611583351716447067232232980512682742002147813412621506711935595830666293801582721462976633521325603482083678120761266802270058801635034945339893391599983365746665870509533931434342118497368203549143812158185879681782406190124176906004713274749011235673310022221563329388201124331568919312216771867788895031794600146817054872871799360999556405719646021455413599300542080053402787232767798201848395678557849980677405919709812998266788325849864810250656045617009629434882356865766569018790999632933914914993433313498141832685292101784486641822983761291787958764196638756944053479255424718872082966628225341427636676234707227775646266197927949045446349744093765698172608163251365826590740896067013709607664685810903492465856983822358649068560915659246007845614431715330321019285501817961812777317777448630573051330932126510034199244418628031366516765954364382334354900957974275395350593049355311342928182569742787998728795902470581743358343282823147363057399733502621049798361569996458927766059017951291539135234054957852464952176387908918095432530851495218808290670459053310521576924286920053480275823239973186315036145635516744941119796441077785933158225699168069367219034059112294054272157480324655837136983285670244031024355033193734584854525734046280234626319977257671516504007003174341374572417264678010215128956378828003369140918625894071306533159220511401852569330683896200907182670806050069438141693346480570141304454703260645859910324358456633327719850629511561072804187159849351283439633715079652475781116783212850927129964565785849318255049569263159938856287402649872053085025365069637451969505086131344554183619249806429612004738459340383547620308754713070843876950076850882163669164678536937309741347562649936675425638566800730761833535521757197580786795685607877913242364065084865924222164670576605154042189552258143777363404146730290386445471095938778352025337507445264115186938464753504157347396350714071688579598288247545955525179900862324487040443907388975052418630513476237974639985675195632415698539597924722385683451251746997266606611179937970924391323469774542657252996999774584975578849162781762478385829452460279649037857623436354927084570828249747986143011955631092112781274022477052188688475341373535238901797316615026856442242789740079701562509250450843695070438749745607943951562545713318899092975207413623823946155955244569688595910424443851358498934914500316170539606700820375977172799926046654760681891501423538165450101625506547610270723542942593994568269505863008759141571510398202003621870644779692840830126269413498785137234422926050985541893186100375886515512133711885053691042922710261177157620871107295468837188679460280073524684578245805911618394828152426845507073313778525009488520806879773209758981388610707213831931250523726674258651281184470806136755101946522497768140835175454255937980719540852572427231776051233585891704670806438682785648580249901286389092356785987974314140982590183772976287301266342747553470551249569075176628389301510391659104484096195859285733879840601410270777183349100440726499512286651847567440551597657442779797542576264628904143902699663854473479550798855475439298905490483427825977739782131352598576260223439837110432538685686961916236420240084987105112496461330977943218885620032338320260247192570257227539052917974929518354501626098545299800422031917800107774428046333370136635381788400176234942872394408803263605505513112682151197640394660340939965964932572566483828025509331061476197853308005980749096451829048809419866194776814516312085174538123801387411866602563542479208019933765699180995777260175527582344902388709632507439385474660658610832731336236821139407049887862737881152377004176202008326810560674470215922351296357783195819948522963224556403179502362313194840759050292706279703093300089051962852435869483572390734858630777846354743033737798733249377381013286075974367021030713694389379230652816779888384895281191090996494677030705121119385021203688586936533269558594759276120669910283321779051894387991367029559081027609567992188277088019013028115728213878021647590168767831395218990095138365798242292931570247582526708262571856321555405423277044825147748328464522198112375193188016669544035401530537194896708442821910188972945716125313196892800918592328260343397261600850723912898079818811276705412149934696863363396709755479165968322590862430864842714367804165177581799103812102422588467466198576315045392484421957010451696943465713204579843113020199007495084893875999372069013187999070010949741468958220000326163289103952299020641058323062693395372757355499746402081866522528858093985959589906605242867506602879593350955916919859417416074018762713201580072864910894666119867040820535642902841596775683435647309426723215833442928657764663403936046193389106438949281377357537658009481028215315066562688461108494546430335048183673466540606140550942080376116073418934524918588344923421243871313889057755874632727487702581969793473752925520457862238598664883489172750830856924085851207224209208846726108113654480930172626993119520532061814782176246345601975570030708601595918669864546295994477427669621079137017817368483688975731185977113290669306291354092504626690493392483111468105416386778154616125678750121457369776019377290882853451277860835767992558076151238095056940693942976659431382648809614296135522813413536661412830622564701689161525187460167722842797200205934869778375966406350528017655709270074690461420068476162211079595705289626974362519292571446185947838022719891290510586001386038068503830546221694805266657710862953721367309342140621751620431139983216374930352747789263288098056953170557738292271776870777770242614208351638490347550357872264770386413690367486309334989900814965152840924172489778677457041366576428647060784971155407942746143874025522463696772658232970922731929182327018861426987162539838910047921084855687989802871462775889889675776114899657578570355494671897822721489080265361541924322252491853297683537414666148211788820273987536094454396726432073444560595509181148455580123047779678579923729532189438789133341182784917763384188291561249835804796264976907373476496408631738992909321689282308640008498158435271625892353472873083222733772087871611017042384245753909409494376437971242473039084148417387023724636322910045228426520437187676689288928503196731051646426865886306808270391439302424162976953355717369148685024463948363171486670140888491927726038236355485136603970269376745224614657076183733365420208660686193139794248390375604602617142245667222233921627184709389625191514439233855324489681326585155183321574013897115041025035991866667154918656949079658655665069515288484891092159582645866339436305235496027187735853243841155689590843847881179609670048680512016120376034600193241198429615072199614861324409935271891101430741151252247855681745264995568230546549618329386905112031958785132287304645766013893285076029575899655413566701146749229477613094393982251530611864710827285567216417925920873688277713815133321173843388839888472864422844935559846994739586348359926336404425922521597460445616159836572990819443742187556708755469000599294020117312681503763613432270786796591640239740224009979533158828854443024878368979058779050590903255153590146079886726593998323213480679070674120290051959672422292649463813832863786523990943211465175320589953385752100684991331104545848331702768793111262237545299294608183842122267159709263052728432952458481061237246367272346090097958672395129758307268851867786913002157538829914079535331315396443634609531112691711787914787075544881674233336672215483440637306129539483231142501589876984341429086023068598033836704879538983691972825568343181560993504598495617032233764536978477037678670286472542930774671789360795227312669342415612254163760369569276889408084595416388846815937658490744405011138297782440044987441502114148949642569224527548569930642747351863792201704670753448199138991008251727549937759288648539754001756093389527177658093002242449895608193624463083437123471376740931591805023658679795093485248256330322557536709640225731589462169163235406377311398562348100305916628887068529803540025747505850638234213057473957764338618269240654665723507398842849984791653710884198037597957264417571572118082839056652885763331044726020170927861099370526586280732063241829832129381844328476073635398387588378323527022575587193715551586979813702278180463708221151352946970941545603399981642952882762582508647389440341992992172218783966981640899934648011661003599462205375481885778315957644196862701334292589094593199232326607521696017956630020222429511735450831435628078088671792748688693767233884294052224199673723258183645324860234375878418568315343484242316473292808377821544189345793287697054719374446472158379529173778766422651858465382606142442290556761377378185867602352771030928792445996554903552703435064045525057862868965663459471669742416416663112788338649342598111847302784803104739359793665238339673640938292146993736149042665366686055776592258090497277898723645681616421342061238066705104424019411359422338065902164115386499660763432986912042855395977507827154297567491359528213378850641841624421196757089852793575429212092168979158616533299187678187456253911053596434067662737917268583179555331923795311813482229538661729880803105183150158683053020836828502299031982862154397573571489391426242340252943470646524851345573900721726451722616558808023299823542258945783807082348502864326157867508103026394973552943775668419331563287836152219827340777037876120783580095667959820909453356308221832184653697923148630177400404983263443540551458511428956987605969881688815981023099570568284475401710882187393496494448284065062591392323745594545084883136769715556807836489482378734944692820175602526502487622536367317229122323441845026673917020052579239244333471991684264393116421366279196795927781863322253101619327846851824328868966235802232692413183844847985797133630486770842367420970800434438424414299891612874872605063903458185342251131976303951330966605903241125546841543520468888648512681679162813666339114709235840702334917503938236855201442094085017369858650515098373856882842468974348664164207753851464106171261780948583125684992631907023009429554717401943684162932091166067197740443723265146894987470602902638661457373724860711138590253003911133777132569002337035179888168350458154367082595545428856443519041196357269548379386426736488491952222083945325218220325171892762496760363444750054482224014392959358334265566770028181889320753455113108457720197490916603421047178384590545791087773995210877196081383147926124571631085332925526338863994373316869274315102049114465397366095869681958564212291238063899565623747886563873286065153691225763102995427938884391011368409379645819131809524130514473305803456514328867338101546469069118013802501106997307509433869553636268205044601535077246405924586351658018536740721793513306057191697174095312898846227643383429040948757109802211791564241321062832137447739763753452972466074651470062114404164292957131249482913560162637010542197604666948359224678467953083103837057352371161447778753898235681308213061549611343740737271027337468180479172022445033371962967861988017263086366164476449650655375667026001504495435825922308304296580446902920993251510150723974508165466369728283742517263181232873510911487896952664401561472606586627405299951384609742522404943730328268456851765632611574106688573588497503096410100008722170977699851380300561934308557588572561948147189430046200001376856009132450533849758709317896308257772386309125606073964470109684311689683202204187122902033930716869636189733421368120058795843167483979649884414216310695009848634909178943014430235822531935004606903988550430620446910506056856029128229032602278286234740770694211110412283519091370599587888337252610103590453420332049587713804339778622344644486140020006468545926148859556709778532449469614970255292893887752406547205023891946540123059139980231869789713351268317256873284265237461322434620481388931294578829764349778736899165176141687041761077749588438416520416305892329966379208192018270923330683810849737663393231693250053823126345256195430027103893533664199376652523995817991738027210666191538271426826398962551981376233453755700446869127610623247835684339213026125471432843390345060693939116866250916580411767268975912068243011247399936494775884267219904174986992262746983327232907706774324104681404734092295348219495798535978870320428249621939319062749769330121932612710581113868144181230557209537775398757206849063165148557817196206449986213707758037681238938317996552538875810114078361854518886817897679625892792095156813523912472956248955658319951443421943569973374575738655250280030089482541456539813674007115596441715659155872722565258665987026182999262655670934811388219825500350549273043901135313677843276040086193273050590660875617143587914762088590946609045669430863663454540751179212725494549718057819362299484719875597546608011873289373930629491920912295643845618374264573745053208562649933482736749551338853445325383542814433392323535058725630379982478635792304252925250901863932491689599817200788484044880814661409875606199783129015467558440281664863005143028042197598448580927378029039576409734181247389746097579309977305219362071939111795630755069488827100214781778117707072182030569132421971836619141765781171370418003686972260360722188720023371184121679521180066918136404754138887157628002790828527551384886367685711015925741564095262196391440586000222238681625931124301549038990879449652776124755846542164504257290577935036938267456248684417188283528442007901152824122000235890673536368111790974611433709796914409550621112789979862790341325927833990161638412764646638045887372828852105757735886825374967326176411866692328456484202947346636769026547067346325104633001015199298286986281875803889638621954332458077506293757317257886688586708915438995563965233198646066859375043904096424331810885944921098224295245791155740162078364340892739187452948527088873809601613290754733235522239078992104099162836304193808157499715343678406637715980608430800959141043710570662366549007761991632894988909035726250570291676065673984001105594553173224003099095292975978517861580884042066197043397905680498827803712116080632323559365693089245643527850032947584289696604551834288351607212965754926629546473032674780227941716012285690101464984519169051566906306851744185777944396893362566988266956487753053903072834147034609609227105913852252629364081585252872272497910671765150529004446624705165417559877620952679548956200349615917658604458928169352203451046920053805478161690646687388131020988546792219189172189969274338083776302601147561072150070694210369316513662608901996615205104485546254681189096293435767814892716732258006144683101614637284133412196352799425192576927889903486952222558331969743194926422580689152733159099693925770789325099020170676035627361161633929370663568444558196414480928933481645774100195091780816439690098349271660843921863086604440296895960210518662140849791438631403221709356464076525488219400561730902003270504219541247568741832755862865319636490873359705510833121363894217214476409936686879563897298827150678389968858532781904472646926429416100244220550509142890924882912806446922909095727173000673298879719877380150707281515848642482550944253442571499706580467055820678321077849755734432831879316274067302244961299010384304227828826775866434615352250122097583294973973255493458653944938246911342602013838537490989993964587371078183136015215206918034131341802284566029609294776448439892318220529051366821410703315910313121919087315182354988014388459043701472751556670004022451564439257806049294177360498821774119570822101953633922980082333022890370476486582160206728287248187555613693706683731659666332902427711535691204371453228276542896691752894341135903171394510959782524295221205584657595760273228422802101428464345074032809972285062636261231585495418859146447670973394933263408998374733458408229506797306951078549380519532044533237842537676982592310376374388879840815657788950504842012694410526524630034630886526047714326296896432339712339104086536761925440457592749629623614788436481382044987634974726272771377020402879766648613591064892987253840910855469264598215888674434545004176154992393805863347769942221512775064042876009097667624326187197738425222836165250641998699145628034503708573816264165013365423350674825664064488980156194400024968636185066886265757808787963602489872401734782798922842872220121040079612534427124129319815806849556129298953511909221952105754054107720353014094487113560743886927477774052027005909034880118115966161803987255413820138231856672504814856521054085500316576439365654215301775165141158932393872205517050410310028130923735520615373727305453672719870543416175462692529956514850146778478617241799104379194727391123059418887002576121994140485604499393353168895876508282197406741616934655375104457945507234439998863655209013402318052134838729304239691999523485737906949403990924421695639714944733025356728442611199512837327805476485584053465323291470651454089218277625281287596676490533135587187844280677641971642587332563317208373210072712137704213692916654848625146489227653362849062205417104772285403479796751708815395633295363540495826533346226585902024552389515447658855870359723252795081450057596613842042297424924173489583026416166435475519636715659272465913185891675589735897930346785847354912895157903214360318112083215294757144535467028307002125839877437920985450355611380612497464731302855192858371151493687448315415736315555181482477100266606862052378576219601240257064985783574662635796328138528074741687608231286049509183519113469869681664712709816277524282035089091335916545304902165659167162282750979052275548731623465413333737914578857200527939803552680381619980300488037080784638459353168037180080530169443970991899394023867721099492475366640075646560075201626378748971025657474763479473571813621747086025845279666077133934120022899437474801795046029208986276712508764798994970589126480212131493684749400828999935404942466224376527970885943896995898380220260440612390663072235358279791916745265307858067400028777823413205516356657843264980347298903121785473082972797643082816848093217514568556015864698348991284448180225794037046590192412467319395181568295696497074281701607027726737262569776987286980903980378375300403590815971826174074911220722357153570890908095720853841046418421379991642821710152104120226127095481148778829069813117194475596687813178559713570430526191526768471769101137073959483097827298312964542004905468284989965471459483587638393671255689024065381474983707122544604132437707238178639683505496811926079499973394991018068296926102583744320475105602853323927937507144351970522940949606719647428962098717361208933351885776109604916267096373049191021810262644978123446443183279153032833022301750374744014349581184559554561118748629504683942301901787162352571684324848332642990904679676789179217286831371547991402696511490836141065706176686335103333794215815347164046791954157961991160582380328062528639499833239922390678559969267508922537932779887549804256808945138061749784970996082564057736430003751854950288757957466287898689844700845393740410953476674849828014703383655546788377910715228000912193883879454487737309325973484486780177802669644338830043056505184748532963540008578835623035653379603714341298936581199766170689928746651605854858945644522210527014300130285600269659645746393001440309804316240656273098290208577690621006156896786658283430976222592174770309498166988853370414939414119751598154431354928669396853005643689681879382652796507737888911098520145765493900123324690121380075952419215535514363037610190249253907127035250799645470953073990597113686342008238912877449809526324426329021438609911485255250050868354256637040027852407545292465956832075252929154189599605483878287361110027747806083104736157263763344742462317704334065558449482843251928294785769356786596025243429909290424494723775398909647932582324060192135294661154978671832664349993953654785281931069281963124655848387600381596506953443199883874272376891032087284002561780266610267209246246167314434793482484349259931578661762623288697711106101862087113841108711204941688467810882673815336868843930484400108950393372373044182079797843846347688377034830250386951917199134109159838082774985606897645790559300256056745122718845985527395663798791016594708645018824398294645157584902960016489195180618881142217347604570647526693441616493730246973430028450809116317902119672837323632411424490925957269473350006047762192791164901558491823723382811803718061248255698423417294141806918644341799051063579048389905550048523422998631867304746264360519684426837649696904314592142134801093944424925888743566007819603361344857471906633590889992501203024493552081243185694771091043469707213617622958413923808827909997937193839489078645647951125872079389472938301405517638349225299745857153613759903778232081372454934125870580262456890660838333540901533768686126641845559303282323418443943313463376520204669773466157242158649391016912437574248175771743940179060757148275075621567905134416344905806950664396752744545165814666184597388473014907172990887584106705061798547044163258450146145346980018234138703220420956900995942117793871531606867329806667676941394714661321475842741360902316409604096428466712905367388329064350608722339570103297194741293771193507000465410178272435339839494139558015840218465339269614099105612706322673436991472289989390355729441249128600077184684168038944856144687208984343361471662117060707192298470157208708187851104995846015579907382605243586600558760730598163951850309219543020842609192978137627498368331498230627475291866953396180884724366107448763429006486379209218032405382046158723551332675097597130574158203502130499450528051320170399748738179811157398622354476003071266494397365406751171862287460028498512826732770699234602238606516757149658052841439413286994774324491726226264187117266791616497228801331044299170121252689699136686581701153781866657868235308088302627584781301622896214095257431411165325889444746398756697149095266547048422883349635363230453846735564545220347954956235446737887027390309104647730057835107993242865880672155921511628187293021237061406735161630284215343762622968610680279187951389344558183539661966943057784167375982103014231022129851096975517024189633020017229227109942050409685628959108399718454596582056039118028519527330873897928951573627005006380994958020979313591550393346815968028736342101432731584171324485493915484525004449714930083324611683911693363043008032195249270843368334530568580413967983430366293991625373992729000005972492829920968657028696499892838237907447754431118133225456441191704705907911245234969398139034793503019733726400441944057985746950128062360251760840382137256531829318540516747010343362214662886411227424153049980780290678010837668029341952052478245542788585617573591672818494273970769454176922058607163382888238643311250700632430052478879072378161286807816586383440284060898726546833092510127407052769752204336647699474490370016287957497979766694801898934043703376995070099968725594956107267246174073496264524717022218976565226944285139030534842018194539931402521937037216300770033263134701834621421394823892916784789779994171718658296655521122848742273176231378605453991425367774845744127693681514078501804822786180532815609501811588212241024056346783659013165272946584369611590748541515672359273257177507877236447396704922275997448820659948252501852105606211868962269097060969991429396127604936990167688377891387582727321417667458220724439956220919381624332189539108774147152208384374919093188145888057662014171352994455369496416265264307690002206283710091147012314157766346325106079435369474235850738753507617303069451440196115066264173324702717955385195405391350471832778627250367478881300921087852983735769749789212752300583567117035510832825713541081557962463578047561554544082480095705367350932518365818699350501705636223887751719021853250012320968566491837200374910019476703667873329848742117626524552981368218077730637081420832305417439415090679799168019980949166344710241861865078969437708376336109114539031640893517654220938177498177547178431303672775151916061598757397698358990558554420277215643794698128775577516998184771199141873626277662951775139075617491490561423826935258276307528726389131772565662501134087501000830636323759833156442355593683552334845851473868523764483247549130391616800616864812044687701320611797586031119299054809157062587467702597913746203899774564136401694405237998870536645329858628107512965568206384648934336109009841371099971227101263961194894575151289681073182249524415779558226105361933386506799791075060662220086107293550952873625921182600808867763375600247834517786115757044588645466138552772994086417047744357226456874173575134577668770767096397451763882476156371539369235322468759831746739911921141003192553884441615099370705848292904654142927930946326529005284696217976727731230455245493275834125836503676300569990595600154715688832755078592153148091715122693201247461186315921938315953093592456352701134779900501326208774285318827754039913414101738439867613631091398940285599466023184696663716464529982494085049734235481037766828178327868287210077497491837297169394094603696631858257786846688770449694565849287479449574581094985759660959903166906989245526909429296604354545654526363414676990023156929309951711013172380965632712904178575724862521393814324922668702451106785090401040334476168979496219333862213776270147562167890270455802357290065557208801684784468830304703315696673666968244669816876456168750715166035927874266642373821916045686592182475745009961534918500468287180850371988024322188737645448651303348461999182799929897031756365111544878624896637995073793418794744172733931643303507235980945443381560671510040507340447770187812416120329525946959492976010240029400936038110462242387459627280631329121868355094933920518016645758068535193060311592938824479155609004080170538796233866298333366153590946618089993214563794037810053425000080214767702636110410038819393786984845259197636913970056341394998290715576676396542100709461753652009753495536734946280303257734365742148044004233965869932214899757512840748621317284738599106479266604943670677026150382884469576481234178686087286952688927006184290866803763618931248128304909129101893827343596493524417720011180335272227082149946357575323156985745173752861976559230323980901266501149514279700640744631729308902584952184613837570027875902407037519762247073550348289222295516449743805794841278113110392218109402656503119674385768185363066849590381120668655955363231915374635998772092415793529300715128620134895261409197819976306521984842570371300305689341296942412104667348343975727264883834859765565945581660551547636824838105410782330900360739873531944154867501735323651624865104317059715278444203736616133269031437130666879646746507494780006766647283824138102679159893377711910624200992215722706101589528475686751955575762292521689948223360334085628277048516175626152951868105325467789266479389061420956216379867934332411039748946323306484374958461542603203995161329541534378697942288203685462246719997019634468869702287180758301067190400694711618008048020116985570217755052510484173280264460448668432506022184265400144246927835698445286410710708524157116779130708053043313041712462936103199837163740042300942563613618266277613217623401485368969106432818325296842127880268278885289210767316429308181187863803031535040673735820697353443694224843637855196982018912205936838777092515787904708798899590027911354425577216385300400640849317455933224066632257865074783458497456788915751530066596490045739938506339102187651860653674489267927027585317992117656171671824877157856773933466647142368452570653284169230232302512450872944057207180932679553170482212757649372958120889784098528188677184028667822286053900090035943788346308218757548312540333337970021317655159179087016117699532004569462049244212348286294366973494284278126993036041659713125473837350738469010517223848070393090220189542595708893887453261901139593360112706458922622858455146437742279943475066381613636448404728240715861185690066706939794004144869986225904508711737237833732537879948680460331084901232311447027711109589424729321725436415119799696455016432204005963310859113805006699942294285103824467724253648638982393574167691692051621818990981376574361146330719078980450274492818562026999956175650956964041736269825659156557006966590672780135243773154809807687366225731009488751820349893371579070560896686608028669675024670901595056078569021804180086089434690214826905968178528116906389303246666010411840988896502866510899064498785077229404434233515590818727172714969703165699825646047188805314942221520444305641365619181579246099169552733131086104040049472276274901502797212573830873620297693193858491830903141274784933191281019000037985132797401788215944919919747809063654799982839612624337210873948631228056638164557898622994117207145516615292752495767027264191123722482713459242000678244886559117587010367395814622149804316650079837636461711605144860162063653837050900943167001787094233384862726357780323915998009627403380479866680249060973342464476155444276300450884459252950614650765230718350209118708163911340867965932703304557247923308631400745706946787612876306219797257467789348062056184246914618037111261368084103076671659558932986245247828689688525003783375220791438563980952386805629254529448521475484564773659178242988173575066756476266219573805845508335241891405351226780725237467937178922319782619417249989952531779649402112940596715740214231794819751083066446561655035178178356047091244214271281750331931083830609423624442448456815682341560776415950484655279561814950187068415145318177974617107610789956401747881212142023335823361428668046297987216021104302924367413493213993526290998151478455367838241141795882069152631778395364375648648833985841867246039688707560361312022046273320137738974214149491881809718143590765599359724665186787948000901888112716073176000030734597025997402782889180762776799839542483225161040926073693296522321237089508744076006599300044182935669424317941510140745442869736515743989317185334845452832332271514263042696571675831076793161776844641817713534546098743357670957485180593121572512132128432920710324572784713731703386905785569841265200606408520883877689480134611351367390898098828355044409858201074289173963661719473934752050632413182846182811876487083896480213382190212467853194790875175719474380666495151667492475253290610994007178962048437755462678787778262505734955784542481724481516968582652252559992315546572261458002036375082137039209773224918412224916169080207497252544259988465924902100783587697542139110872515658888571473626583651707171351276948459263230271351804377604069266232917198804511793835654230405999379280579377485052659730777798555487152831238715175006960990991003474559871893027153923890483161545825409523263834197879871351171547110016910272974880681058839859052297318212405336342329329066673914106992369186497147080277813426182468052698753199440156934825462280996967402785725301323867225793495236876324910386820815249183961278748307347237262081668971833665822406378076149233326292133549436144177421514447131387895821091831863793395040615907294679366218339995678092392660163193695117565765563584858337114059971489280425539458479190821868937687726396436769892240809788315964618168881940348995827199866472466076097378247436406737226037142483815815006504067384901682044647287284642915282651461251464730982102188940681805876842235887691094936959916050801779009157626325600871274177686048915831487192610571325855829374403247794980998865584895051283792219160746936723749807846888725157454405680302292483198991124650039213736696119671106596365875527789156306116075327897985500771011750457020641538729178341360781903564051790945195837011440328670736476356834096707939460291410466306642374785488140866312810781305146715472010859528055586903899116133210678612834207111564366631736066317907599896060571965335458918121994662734439647024871427247249187647109664191540286043609518285946602509107026387649833051888246710336018601112356229375719406810782401310768357769244824980789671835632617741056856900038817056695673803155354396365808484013949180853749180805360444304654240500359849249573534813230918772650318449045762759267283372852704617695838768157481531032354338737906233984605118193465076869065789303553871280429614020391109468207338249094246825329464499777302132955770499057784620223291412919684711177388065554266422096431047078281725669409847881137192546843910678617747124545094626595291526704680875320065749151313262604707989054332632483200955818547231511763940548072975072840190032603607624234893632240468423505752064926131910848142663672844290078803796462757816929187350668096210259879581601710844069200133095575579451819926175035378840482489663224364305031733234390452513849619471178706894782331219315335583551847374139055007372907339981948476334331758699333970410984437917865728249123912115505901583194777054386004524872733259126750786049943509697002300465744487123548306379119689641763865478277823086506990471898825550600458391316302382384508727443778454800055238607737760062609021243746657585732724000438446970925951685110784729207826021587062804784812171844447205287163477564469027056978124117744794954946207047145705848237709195724844895393955315924718583013441420996621279145263932320887245817885205314036686888598915090328920124439516115878833807955406576700172668601064242595943112651101735064624964767694053449096569515157784301774400537865999086208127408960964187424951217277768789950551699633242968186855336874533829749140324092773812094230404035081586949668279046494341554300145063907490079426788408002596954095713136845075234355532392124904353290863481680585212544414330983751344886783655805230254027494443540962144710441182380577619493356109518838042777308240406756591976280435745033919661143028956572266944868013610805519538283803994039477766727393968463492398522218162969426740844321107356059049990415909263633169969081265599299008680797715367672483152454214689878826842113975486453037779986014440216613071696745348720330553963382850643464556799737853878549085424094567157596464881911357353867210691372715945504391485477403099727653829219043487709525277723576669652166194413905028902480726776525711360281325237312533983289176495294950177187647014660129688001971812566200518604026550064385288207902046256802365771481508270563839406318792688744411352338443200446700257005275101422040056781812886170345071402624241496336595009410766128567813788227764251660777289532768586250477565366380634574287103657025615516558737667660622436839774085328004919106691556917145625369064084646027783933413289710849109575455473591986309345744381102652779887823020039346302276945587869956751636701185797169662261924309793039498911495240758389128260559729162276340381751790917992678887980227224593903700608640824012221656728690825817360043285919967668754827304238496067120297791302554277105645004335304562224751353615553623717466503160021226615138171414666652275765254108735307193068586311523706391471266042079692985950277010497702546046856506935525556882161133674591132326482330818987528543508640326589906719269317297228967824470683940401962462469603066659567417156662071494498261407806016176518282754340733732657741348810378998094961045483198938041137349690749742356638356084905710998763417132432969185315731192054957508228037077018831137901281124047768597832524516479699923807799285643179991671803140268041603744783610471105092286006269132364484544521586772775090871956724414967834470194133851950982721704104976771184594935325158613791839322478976437815757217833525226632768395238617094412448738874895984492611940941655728662451469422334976283544511700635115662133287327361344376908017434023141665384294660267493425613141451997815065573280659877354669532579971408557461677094397389248730330916226162368443257872511879619267750388772750148827951651259028842372269679879598592986924075573697160270894264256708272999355714630071247470762662800773188638435916415593155298518787267376808472030283719409162782204601455671787199708484116345317136271958550962161566843742520354197913962938641745163147493312093292382969118071398069143372652413126392635497961580111484968356128033176642784451160710173871491530256080185005586983998639815330831930602942544682856038229373569089637501096624745398986820309919609559858443751461748468915700682647418612967980852461286431876663668243875509190263293279722644899250048071140876379493006713552741868174055887482873287623421346395100693626209444463681533436652607755182188778613785172752353797643919651996045996959954468556105825954138220425613370516820800985884428918112999291798267021530670093489816696958989896011160061264446998100078227957259751472592065478139263651090535337562675387980314702251372614661539936178304160095905904149531619986479090466519349783701745216291278649124907788826778111676195781550606254283964298337485996705212341095271302172471300213961850167341887857451165139145918069026840070417541971997448200266305392663218666273204590993728783366140727470483866232135826342619688292295443766076079796778955872255493615016606707303747315872836217550938954183354788382581730581023805632028733068682318928277837885438003295727264926553902889022824257561981008034931751948674005981571604789239639874803343125541467055264585669278677637589705720440372628519656784381892311412237198101017814702331027431845945955402122768632057755029554790148377926116128446663907603407113613583033966078106481433064613278062681239560686193423289987542250988291819283262907461944669443234569868596679820355752618084358855826833480922464739111160862086767846505540860145585939607613957900825301603917996954171195739285215105975213537441572731860947779710557702474822517074922355029010798073335496534764497308386670874633260523725200269732040970742309036458592825011885225659223536629573006932852877013068435013712195431886775682413860339178989762257257494680948050618917876471435115115462561187714540685953888666645892388916813730557671789004164714251559971258075627296361805156688060927865461978190467621714664509053997066374462283574640450492588788530437487293947674564278130026217073830798591179936759431515191177345936291514756629959078927489022605460361798192539880243394606185114228117729142348744286358424825664341986068657211659384051257661190027109309851756563384504215740848057417869861086414226507568616498719087601900726859004588726890427780435510005617381723262315956866761660170663201525721433585465789994311749062359942649528782307461275816845821841215733071732838196720721649279454292231590385969195144998703759633589787748014162575579474993581218632407057432651845403964463630346186629233508581948664744106468871413497763168863956203468299666370501245334398034948825814279304946122762150277868621826106670979381985234174138243979987284376467838327177631080244911516729458598174536137469838434610729560614839352947442017506871423699614131760536229315748222361937068983159246947251649977010723351245210187627759146825936208876073806041813319957404587951941864892064737563574864315572926976298005882729484859402586818283775812195636664010002135098587561809695506591884821418087613202458114852872608042720172410858377719536171790338875968195067738803918180187974194983944203720406384074648781260457879916696161922460915203127369362357828979324866709715558466689820921092834256316380335885726199865853234580786006340624141531564485770622108741077279605219476509209768146413423558544795066789696720371274192263908293650172858716956276368584326783135101102899850751717467699372078245791338343170050312973093568091806979500489859296409857993816483874148164813586488908655016622846986454388273072349879784499901847323178487238630048303701656414270582571704051396358109940128441628605387885422925977326119850005861902698791096336652590368994929192384207036017058344610489192696100407460322428176434041465116619519939365062162146117199407398090477383216544445606891018941883078059146570919261124880055069701092326835271977394966344523155026237774066068931598409272339864053461419649624015551226675022026068023602113238673278346723995090846427602082616246370282137489521013936259208719452622270149402033710326037579023087539772733290215516139068907269239411796297236151494259191564255866296973817765400233800840092799221581046625612596778469936629218328481022871466715434693044057396811102161337860297046068046064733895341940162102205901277340874033646236029311451367992001695748162293191897441461235914830869809476869570800409597275017396503820300366565982409932568791552776743209141233160983681657434910866789898681049329761414171776109686257618717720110658278975008442316551505966813171866325666621625206085376392533506411930387230432309183055506814900402980626909915876888167908652815355000501943494020229579025708240717767290953829785033169294910333619921127881957654599181289339331904955632289694117773100402371870630651128073144183682962471224614214984854862583982053380059349005725089633466482937905763822404864512459686351714027363025472333176481583816657196211332275364596489313268000110552097370784408513676862508643122904331969434663697302296815078507721456080766102758697055892469524110614925218703733167696032073671113492121713495677803416082723174447017540727658117831713214384663265265138686547008887948385185596019706241824604616038117280031891811633660115160009552438313411601652551572904509142491368996610615032579685189706596664205355096708726587704801238415594362804559319164565623951346445912737652879015625439566083302319987591029975294788989288641533240004543700136552625857511868275002444653361745798675693050584066940716191070738130888164053375661223990256935577847132231403538519739779267567271166918932088622547551272970810860862639471251304466254522426817716066104199620616276500042621637677522958003069784999124735840089446869757201108317008666695476485160198922068700342404244519130955401606797690321506033058147895900831348709233653021641053357005304981967876448698898963919090808461268865927437687707261392168570751597688009752759161063150665372423936791992549365462831776806818860187622990680896961715662840632724428834492616278153847701815751068582040824859311927768778586990586244738121550286128423042489745240840416001266978762717187535432509930049739792067862727504910759412457022361361548634891395256741334505929734762802164794485941277157393539438961515226699636793296963621008116839056671844760779076054560377103259824379786118823140133947877048406068292007398694060141871566653362613662586654683548369243551352633821920529060710398788079184053653821807784491662315724465015397576602386848726416061190605604512929756161036015585267272031761693318510863826244044729687786204210310140632908764642829283653043013116449588341442492322258653724187697582304589568003029417234749613493073220108341561628609821262868798664047799671554173048823878826614056241294193140761441214192465266544395249234652928000824238846092176746925647998566566753879125965088943838287826321890525336702093207627836694945353996759716286526547619007310714699981478491744542098194378275506520044581261082217063170039093674743505334620584098119850073141515681958635789636114756083849161603365431254151075338173432908399539797396504061203837973263359119895942957919114795491535780168675510155745954700154534723429441889572969352992877047700820666678710998335965295655704093694963618909972434549744989912312843807668997408802941892398946146424964223321856568557745261325699747734614279773226131652795814142535649937624277734054308549159584782173353953384572784210497310083713902546844979472826834118585141150149899904916548821040425475562312688334281809817664408385434937780804237612856814620603183173062552196967809268039842769749707387716307692398310827925183632196230726012631248045911135951415173212248662455447088180675418803568394772532010829417911629192206324552643665480520371446948669781002065289360389955381800366092467019081120836001854871579574362644030443136301689497823771241007853905856587737070218737756851779200749922082092382469556086328730146877803193723019977538485390006707425256820770370132240884001744939239032070405470699843936866686384138288159489737976743664170361419680332757220066862209895105719486082812572777484712855066314547100541367359184919770611382251116412550474455338485734220938857018154161483108331338167826652722365733087133990635248438425636543258430394045259501566621922138607127678471460875617187400065291373754827445046237389047075523994658991893227904080996219215940569917777271868590517746408465684717843469065597039032133940002731157388988181704765812387477494301290878837741053456952372462253508883403062991416287131982203033266355012610857110073126898724643922688499916713729971807264564841238152889523662717277566846209397304158895113945122701673986121623221661002848243689262594185793064813344386886621297373988226913898472768152772608526322125844567223910096132281125015690458576981570791955302547345815713992480334226811097924730820816714225743124835124464874212170376634606618035855274477655121214428165785823669403758429253409892193149744829938709603033396602856828361073257724885166842200647145413146817944643831827873779824647388919112392284915366990275156055626318961432298904527807097329864317349455230386419233191646791868790832386735827514666323543591058716902947540116160375557874654056302597454144226641038671467394531953961017462303400128755361984944092854969541319823904591976356598297815524444341254544330972368448857534342708511341755340458413029186512399169532134482478099932100935792191816480004356348981543890428588380960719686584694959284130920895135035123303857109442635557548888312453186280695010044623037445459321936581703876384397255778516321076650633468466246239553549524554305994739773199557408602467415442173102411787931657342214493270285015452136146947909390995317404313607671700684954252614413332354416952366326431993942960273693250969664469207291305186477757829911459030157304687453276746464267379399239934203186535127807525341191644433419087888903109946325907329684878829896930025764577695150169441140748284638586961251457559074252148521594324701356804227267693543427000640087952685318634427278951005972775659332575445274168922044490775158769894444014901159330061774521029099792687827681279097861692285040533583838141928292647592420352935527845973125465540050133327324011170097551123189251362716870068633475678976933718198838559857579690622489690102607470576037689916355907639353321156630675340165388163193441032722619573053384233612482974936519653553907035196654704821875937058216144089501021281556178393960188135071505156621487542675215785233696554937277170214312194560850777812807726625020666719202017531835973686643263285593050602303409312746011362801936348067014342280294564553108203057623157212156183218859065635511757731667896743283900045236239561183565286761564252671894479545605731017664120358371994396906038036704109099494515123137038674379924318880918777914528107442230049102089412972118643731769329006886934495670637157753590066103901055777464087500964115236550506230290565841386510809274821417827848903914029188534996660639735965351690444662919624136702497791887079261795852906979295973377368109145973884194262283609964181223418460295415789533494027792668443295210498015712647438694788232620889261710832490982437280245137982399973474230035631881131018724175682898073124090454939422918771866573178025798922466857429931206249984542579167944467439287017299174579803139334724882609309151816729548249909367061617972758193581929706657657182722426450025506936115994679894618461129562106950335942210000955389272080401623731804220387558015410331731559844473993036703395031415248093544237556668835924738753605841166410008776563546063350174469787025684917404007829645407328698064718472010643388454352124151952070435310339910734660696876641251507222055575673687006981890362954690065319770096048852903050084864136433622486961651454115183997173071467349878324435375682792595342206959991741405846088085059074084307741555348686449537921374871959163889410943628187137153085858661303185258494608755716533379568791146698780074556040262123752710737003246074637703820456751494524264450830434073826911995418870322171337356275797516707560349269730699992552188391388980409188554224890172208914726542447284849339845012656965885507763560418518015987841727261732107731413537946174086792190418351493975512055841720450244794280415301825935606123862718201607228802044573165535343901154848946527912870344867278559106614649366537877040123485459443296695794863252619920556163938290128682608028590204066628421214403838415743185507913946328328641361784376503186149416854097673810029404285488270425078180658640936930908598262659048326425078864922534087020496977839427449128537823125977532102988936501318899167760247330306221586183069914327940909353429142821340842725375016889586928423673406417407596958776080026300842639222046301843936501924604190871322936141123056257818981388663113667360453667365739349175744912630398467792159522958841320484834557341424503399556094774925617550955369372983718996806848771128667079275331947064097698368705902013956110036408701302165183564364265343454876600876604478947263801769051284906783195070795674604845700597202129343271651766001990823365187433530778760095948338778138969731355238389377335255482860926023404550795151871575637553646265290282995762808492599462076533528171312124887289990791493391442107712217138032696986733426496227183928063833137484278939149563529097496051426660126370549292800637497179037673502912172001655308845062266206474661608388769349318535134034213192535945894318901349140541995431860486420872462429452233417341035859361518751036223188377508932266141230068976415818631632696258036827607362910174353255041585710211701657797923370495177757668415526015045562097742742199625614494622713157625440928478451945014728089499198272902552844192339990185644044048284597087875214043279055044234012421554668692800015569303423272438777238835495832224397646374069382637398816849995831804023798651389472892840385946823955368719772960243303474128499906840365646172121268694125413142364449745345676149595171939150277393374576881136785219205032022310059470137117586058554979489976178497754497655227947059308496793426001399453979066960851125676613208395152866147208072905185707155243796726750535571411389995048028211804059955637518398400286252747894905687947401153588308300052232640675760771383057046700520144521813094908936496405769315241183893709636381164996451795793004975265585603520735346080760591481030994777999812454904111372843982349905443385799752618138943581020480466364689814185059712517900645341600853771277795739898066602799615771598127901921458566468299727681034783390940304638826908886643476476068792346526623812673482938325129580761396082559614545208740984543960565086437189377155493075942135889742812272982493825235067168833678475519333899123680399256762477886074914427405885302112616363893504631044240286563347235212818518561831182353933219869265898053951553632946021027468687403143951941482991892852189100778188639435946275333807820692121212299907126206456558163190628823380130562900305318642086902661580677043212298430598215832112896670138464165406315858658905138949077106326677807063841751172655646305498029560153780416516218126820517520710508433220567249746195981343908722606987757049063461179799990177065163083156547137461548334053063015425719731159054281684259451280958196235127545194033335039498263015909342503168645935205466757301916163415284117929236588297378924920624314426660472818709615091517395198540927112158580145095934767276298743181147566786195903015134969169575160338754866665874049999262108892751175405350994901591572659882826304538141732868956391509345206231058636963472550784787134395419892387358162319023364935424760748569211043218860762594120623374296744418167020826271466524992997552561733326651437556038190739680742048729996482513924534295553587098359521398838539807480785505784574697591648332363364642641827188049902569631595658724726950995019310108016727099719857618864124363106170382456242704075405347278314593740553312810244390983159826356670114966467570268231544980736430006630030060565297120172244929042420291763597290884957935427895867725209709830986858458020438272275253563899558390229681106118412309684389223965124063332239761763704135718862419865486734169815323802532401898905796849409853221227355398429038058322312348303601404588641452246284985903859999677253953085001750863371944251342671116523018612233084218893950446755658113281306995949179547827213032910232862372547004227875689307286819436603574382585577377510018586024058827614125981725473765713511008000717526342577793821515772358886266473008404349363407486403004060081669176477657377603806388966889504348796576113080211774780505273743402742485640680902821857363608535419748401482991153186696697851188597550688181232402914743555931109913966757235075098325490477225308597292541560533530072697033553616483092539106622090359378589885446548073188900552094590805028797404018706745300035569867029159443093492719520511800293560740440828910726370581547585394411637748224222251285545812588385554883872563875004617153923651023254367972901736061510781973030529884980487693642540001546959115592238964908694660657865211253088751591859637668236550629614107586314054989378091212028530233628668916017641246298046766466042127213777828080901646895595060724361104069225946997088361754781435307944660647021979489916248335998796856004225010242432288343184300676695989010704054118456299505461815353796969233172651062657654498725550128568393115851176038576899602246227522869451296788575009694493104836816521019741910595592474175245386365127047468888492768469108370224473413980830749016576629345605584737729477343396501517791110582569811143415459025843906500459770260690031866338407139887952032565385635556614030501080998456398691764637897713710394334540749350929499679961632212160693037424218710837099781391256544672452352591535454242662517584146256752258097710592161766144942166113208715737998199170434659303230453402362622839922409367234263331461785354262445809406563598036172142295067119079939361258062713522322107077722041479138421588501336242309367438619223322594955043499207693428373709250690623221908866212160063669019006733402490662426634895197997718567365861487315666786784385027076108857869663721867668787498042363669181861411583949465275213234741574175253298682380530924921367036482924872505462393290905828120874113680852214536717008611054450055471932802628673943337788738664891030040706475634019822502276925735561206997825378176097491542468970962349464453219411650784249929930308668343272468423351791780380571930868566487569284295217286457577367509572783441925967100977956656604835459979490521176301594642914481397721297154377274225556086935004781262931510559939793930498630746351525225359867837534078493684727077894473597224636095703509123774875178913252985102299589384901775821237216022517731836383362276588779158342552076687860869685634244093810658597603259019092019545763657245624384020686032703662905103822915744326099232355470257385817021758240816447313849070983159874020902571046793187736613418390324237405873475450261127456087478763885521543767394316768295051676194757148765058817370901992341062446211135933570848137510125272871746974195019222890734281834112261523521511626478901368600503638200717548617336897565933800283265319630421841274125997441137388189282751870878583453887913043863280714468218307569388401607817108964129339884509410295373038994032200678942331183409941394570497118309468317656447380375843970509059462312174860789414826646054158094681664959062507197875088626165431880654140861644902279333225760538443960747018357654132372768972806273687282639235436809406101478902423999553247172544335771244082949578086059756451582219685130069137956034650605774248363419849862940802257065442689969762110488103450359174691607120912200041105207871995584555118080827147510595215854155484693832695167261141059744577023490107656392709202500712447897615367466371827519181184234998566616902801062987940966213635148096634746760518791700517418197976882166113582839317609450982181391110272042733279478757283175784745690739975311381181425604803759444112889014941760981959254743691270684062853543638243412188121323233693689875906782208057376529970535652814726149731595651156513231540684634399521466893616889652196343358246044343097723023578779078327171604787926711058835600502073763777132684162358451463086911431952094551157744307017224210503125931924032727016050347153312154251268277538461498165287320601472172170104888630654017382356742463779742052143723056752354206454376692737642355502238132724371681292160248225373920043804152135571558674323385264418274942161036677961281563103711515153029881563622745413136360162093343121428159037666090374455959486704599971889825831678382586252901414482791066451146824809894689804324052719959068541521944768885504748141567383045871472525837316527758662263403260759406837763304770884588508959394745548158765809284956187640081188257905280764996933739375897512690492627092357425545655141229134255505652307332971376455627707954655004895194891168612173137954324135295887136591662118977931647402913908119249603606872270519597408221753621480299878610508289917614056631981437000766042044846656473637065259134798700923085430501390633359034141571678036317907259623041474662165534786035502582104195578520890154809178974492336970349989309419444737006015971937808399922734973290265117464665940315726685075559025058080061878325645900438878276841335904515817207170303177175459766736836612231770712791348514745556763485697136506522270193233580773677538311585233690636017020408403078664986164711965183507334269303028509156344733673528237308589260138633242141876125051868035995970893977365834583902354333160705694273097527062017673695155860590477846445026757263178649583773455780895409430794357081331061402307683739274778681621402343561842799143959920157263665049740945546828302007118827584240176963246215167965050505869641908002720061021649096989208892741782081442240703066485970283691580311556549297825288769490253787288513781858807814477309457675513283744712354118098989532642757535245546014184772341120905492467131257623106892045298844665246645172195883808607916895440339469628176400213368712062173565417404474982843314826157534141293183912117431945735107407978401720112203475680120548005450504927166561792081153442969917074313831234955270875357034029634278204252965058153266710984750376448729350592909801744039743166265483142748340139721212639908106729417729762469181409758008649926584170096636264138655424400495594500794479646738258868850987882308548825875039825969228748769805727686633561315610479832355314830510126790858281853900831918133230468436860864584583542009730722560067947948104986650938865078112917682184985403360932180945617204988610469942711919631265453739131639199587997349785493883364975238191437624933480478251234451921660807801511522925761425662753508727533887627891364791905527653584125600088663862985767772584779933584918827054294875514810650794995137738022325406856813767078714343844432080720144492689155474780646697991027987888535280224102758105833979672572470090326605308493829865796610363789822889004471657757688568247963620646713998309835242368496461156740038241491871661862079199074332728086416840394296322336745195024516288644015049103465907831024420130189350775240198561341116096882723082113683801000759995557984063455697305115194119287763749272122513248700200278746403304517021761902848468540249789245999041814508208592964415551185222467895456771678250890119165324017296661899083280956644430863051285687550331079721402846983415973467973761655348335072527033344905161396339775708895988813120880036613505210432429351031599137711779899749753525719784848423069061462531729308481243516997597779531375314784628524447906151763252330610181189729385320958934225625219005427181630060360092201821018506810738792317303281305458899426325151033524370887332849792379696499749698078613491698942068678471319255708478335207881528651145528960471003394216719941261499675582786197857473780739368478381678118827126834235532397089482121641105475880376967197278647108432618666517103030733869185955412157670553878143108046375798541347400748987264166226214455187180142844368949464746629911149238613187305173915799859297064943069406411049118529038007930544906657913792323441843672310371776394042133261372176638833271165830850311497775210058009446252078649464428479936791598705314025951778797134782703078928662673673099608284738686286092134545644719176081774632660197185705710092287087562034612817952593640708232144386819032797499038383891245848473584568591123672650938943804866039422047991483640181293863085971610082744010486572591481311511531228689281912070391464816855918104357074584667728425809165865041483975071888131748230566760806030768310960183204066695643802876441347932199388604983997565515765685086875556709877188920126499181384280558740631113615028546728111319109550892623043711287529327611899190190554625617542809943524643322497952392996891439585963830753489101582195258941373340570876346186946393949505789919625285799533172491579937814199695082643730788098881289799388849220037880607773415087696466809057212000202884320538434507489956874811626406032926755600965673419366415992945616089804321252094302710379502906812451492137052667330796577936626613216936105923032538302872099726892874587428394629837873551386497767480716987662296371236244495520648201224003512257749010284888283073504480086230142668086703292890154970118865282223413522832542670428644940557133711832614555576400874525519307665434089684705526047327916320012775974004846494547337801259289792046433288806275419879966124590116513175554446730845212832295157836924160929296384308894014168061495048337023605383100929384490915185543296114357801894539331818294516805662320689891656962381565496911037294766273747723083647039888839839459001303140602641058687104245129382661176405549480021536210723154655705902663685261189032097814537862676991042564523725482539840245477824896524068301500299087930793257559221428121079397212457740953608437096180604446968681575688028292031634675602190205996433584942680177631985669668720293633376319222945129296424262734686243550092185617919584183093765088851786746932256864034452633233798908056718478374576043172374948403635991118567377382342096817139773548549200246966842466606883304823567333593899823757615191858007379758912411694854795775743776558532297035550518330232301061614909972651733442405541465973737848621607028491731826190922572255509458401948348479015153824893168620411948292976103180171046802767902469965077427304658740019412851799906174684286791776044510219578030799373477834947156498074297008636058632104001331666686842362499347695952471646495931984723287618356859515585795663158957161324907243568798794652574948257685666509862028406462513494315400510220369474776755545037961344792792462218841882281045489754924323663623941437053522481045475909864690798754424976400991340108049164085427374049549960891161513244545785060869044669112291432826184925125971552186383415623788662077937568831943530920131197483824461085936048804184758713014657867426042870460238795625400102796369020882857075474551199072171353165607432197670220764030156137853064831648964251787819950656429687143906501889681308620445076204367851316312683724954470204850112582731243620440935399410157857353927828193461327269945709016228030195394844846887468412472072152817679099874489356437139071527250825121305116126377259378760889123099908016430688357904070721359252903925117115997513014781263684498090000105103687556798086755764190318138076578682618941602837104437611568318720660409969150625011877889385164972684456153135182701787023910145212323976829246128876980470874055963685518744857534709821411405949390724638762559922596024282097852901199881196211608726386895435984681653111501609798952551987007432733970779030170379228042904931285876100500661921535943464456304127380945029145712115856317512420315214254215049190837426774679809217797104100807691839029477633934207003300735261553775668929460714146121955749993397216138916452803657437278396442565453660534345823308319598222254134086715583899370183991708042743243833641408453255796828075890159268737532095160076005036284114392977613443310128473730953013124297300211785503806515292060127177036050044589580114858112010425275971224921770096498844703908535496101303464965572323709535689759009387760698019527840508212078996898092062179854506124946512199439708942921559934605704306338445911396418549910646870366953592641625043308815232267710827186460421931322722320823554659923147614246029037318077024772497124830392229450743208509561280175458174664024194791930934525073404413866443290967829565402122197048038912741619816214407367285757024665833968080548356415205853169392215429340902056724826959613175532166721565157058454488554671459080191587604033291009125315480718894636390208997758512001326064650133525256345552406614585316749503620624308881214001185517496258277801237363291168840068821955396850995062136027696443864139657348668666509845918594997331247504699435732804003502708785530164669948676157311691408853248524553516367463036871692534052998446744534747825960120869137290586587853090014569124298234397675285467799890005032471505421198246357024063576239391336755207425477401820422109841850771357884060844367379684281994772011628399253229466535554875709378507291981797523966492852418246074995118603037672751146530468174437240330104347666271353089512659020993095279746978752771232847150605583473518893254158490478833648157577459796469712305032386588100001125416035255588993242578634253544304418228272225718204969987808498321382248072834805885156886394152477517579740212714809902924096497110732532428442668925782139993842894754701988579527386300289199307599646020457222789103800692404483867380616177655059215669274913245698373658775661965354939719308283026500480564529539062242046378925334545842060677256756596306979769923967710290891382601621504306859869946626392457403169824902486146773845426460911842061661127885127870087835787520525338320414051549371636605484997532479047328747463836217132230571112744484879529304297227621020829958566313335657450126971035039932304749541387048155562867676864161484304633722651115294308594365992365014668538570678839842711437296532410859524646031658336336281821997420883166206814554898417415913652914011988886577772893787032071249562439005502784550122377092426578729616276060747977899328771909118159719382673090591459466496353227110439661890797709016998967480970030695771909084959634412989199565127936648241820754188177334138330776046110034170768793096277952881329614424056100999637392038386151007949511771374237738803262958092201819469702145202971840848828903796676800509948260182815714884604565172960847604395945792277317116567902503978668714397601581850188146084521133216310912528365518752362253730065908933654467362667104266261675974645843851082308734870864976319208469540972965519929532904782778557708608026133083697775253067015917611806515293678915551460043221840706884164853135696100160230887520764930510490728474963303160979480799169724428513932107262842550334479421497849987747671155736621338949518717210478006526219788417452682966439930498318100561791551015662314986437200200193889012705199553820761747527113236550709128496688004670084463903621275696509686456847394541666749008761701676680350860171095189965221103587814169051505050350835692981584140009953460586337825973999992472994044147140537545627962225667560459898594347732859151871628351317025453981331978897926130542885447485302252641553410422141085833136783307630250112895161896959322671650373804880476395164217384104062477083077693701251193431263636870920999365200257492152480685355856959824629003803938734320040450290879132247733209479202417448646962731812474286181353287384782999807494265825974849644906252853080256285130232334835373573099388952383688801998098387311235463352699002975901689333888771074648272562800173598280095087439885501754349509235551444821053429926019487779626702883845232892694065890498990907224365806318790568405400689918632949253923189717793660353675067596265443702630350900378480005500325621345353667238873116054001976409073096574502010340180750257871658878059970771606379372201032822949741287728982777733469704419700923523506734708515597847738533045124747966513533543581119743573728560527789352824923643429667212656190337482526535972936216954557313696273646888062216245936234588765463205769878591967139198293841457882829881013245915012531636730139923085857089138331967614968700757160156954489144236522652161378750540184047650966819021200730595356278122564818919183878581959942559558280522101576349487878220041299967782753333457799053028746236072527023963197861927936093164997792938051493692259424953731511169189360423607423847043209603984509658972085828151418797434180786255429920552669493949700504877655123761083072068428241030133283149004168146292264428936229352215150493718726830959448236686752368996478977498038573170509991575096516965235502859156518000597239445710443566363848248228075972876251002783834099304409629017145813310076313152116213521076649020816080376915110494333413834904571472206396098183273128443264495005143306026224153310308324043973412585994329605746631949915409187449638125810756927149071219727745860018647011605196618634798902388103156311249159991107975879290722386079300115198795274955705184263337590846724825783433043468871327318490276645220223743527826509687228310937131474347110229455481835556275853151357292485177780519921615719357122932479214234233544023297499080133994879115469520425844263845578405001478472735687977633257574557715836196167518386033408995783623808295064214860872672194140122502469076838164096736015487517015786650315235600129052420305086619350834596630312965760936559695883628142870287887701967200695413616408186019943758701497778839911934131477000881687607800939993562004425807999644077999045890672086784972520291122880933097909071361697557838583141999172670330946043242168789551341784626967980132542573386900035969987673689923526251660617083969912059605880269682373197450933366710352585411748451843279779010522866735189039747488588644199088708453843577119507256796825523534566398284941001543020597188319373607277363871673353257368285550435111557489168558631919045616866733042990817377595339404940988171156053489982229589484705556270161345820149914884269339318701425635535539978892803644291440456520699698750087042490312706626699837980925152526811979611072792984372446284070404149252714084986806595248743838172094254360650346302913260398168868301036719239921501918876619209315679384771022701609052066164984457179260905660743130253210244542590353167494968861006874429333913911860592721429069850999269205367767431171191910804577752424936287355264015087353428410036318963612620531908913025386184795921966477625576063889195498648728599630296969514041393046270824815955990505734303149005782581620397983571703232412907826191256844599667606372993710963543177684854657149505614500297053283380690291597020193815194477236577219130002294890265068035734218116794785259813604931099258995345375837589320519363681703076915041651296972786465971244779258391838470488862623747620282985630506554886484457343692717046869436294849546320116610864538018593089201687376937059323910607596150121764235799550420710994348720224231563272799750324910008713849860058667782287557674905973469602068570850135784431429494941357614638711429109154709374679674244747116226147575320559578298713482935241652951311987509005276009302309329950115406380972486950979444917231745514404276886266752339173236207318103874219892804507856832100171191706764295310021293662079018195183777135844293973102954945983575125005350850396150983088246607547084283696527498634701582997954994334374934537456110226386776129728805372166033075096590800784509095268372353596763833280607422132918223904803548999080920674172638523901455650105411958789547646517920542944263235621238468899167284494302588087236300094596131554935715268164211212800011917833859900134939916674083388435177422651671278211402399557561465112984155022666844663461250251978887845774022473671780534303327312683822413602788852505095700952407222898650362942820412742381358559816083355945286283686634166589554507297079019098587249307601525662365202206427837821986046631143781145144489929517800984703164742576171310469104761572936002251225996912280197794600218549550948924664724188110226762092597513424960304071233140893426556664105863989521634356606493687188163382884767791509011700881453338463260580555913648671253049714447982480329169121574189304544891455410427932002340899833341629640125744928196809994079816447041991462843306031945425372423146650528361977088811522385365808494153822217256055302556323981959599948494784161871878560320230506027185780360760619461416175903840146764313508798340693011070377002305111937297451984352428178364672926811431551037995731692562538296360935828613437580543524733539953305794708139271404208888207207494222047910205824097575237168293705962552873375733896548828775713923923896094232704665707217816330625490283215941864704311659245657576487440185806026554360960095617005103229587917504280908114767721132512959224656825898201271713890519389682527243987054369697557796747693935108075075387194481228996442534439469265156407928355201611521847777405822650754951518751893444832352680696921690855095264449757046744976332528598400288409597982017469200329323164699826734289671417077165581227072950260896519043061092394946568893650131924653895702952443586924174216420616177356984639975780422372062115023371121610841022127997790665295279700644873501473498945629964227706523567949695270997543933080452611743351679399295654593393500539359691050774578308818442563639654430221591192694280603058953973472104421658568399099464993204458705944811367983393136905439210690782275775311142116166424396140495152354254313358891083691624484352391417814995584738019971411612338919520039442393045476835905278237537246485523991384030040054261396400134855356959896448419352233879910734140195188434330437811735060276996298727483111423423319550109838353114751714536510073523406593119761000170451832960340481696794602221314714492662408019700864011214292595395610581084751389980047154915513106201841608030536832559758458706174202851730997655647850464955163780639440000340353897411880111794201574881985132009327688470192081024593788372236009388016396913233653579694618163426189242640438533752462914909098149535016195066167325501160075928479859781702522913678641136842452310933491887452820963279748307853990031517598958719219412584328634894422368214514370137600901577118054055202332294594691093757303720095717877910496143733655919441340647269065641967640703952953447248336463342582200919397434703927935117697131342458961488134487340526074884355285576702625359131735309351937672129152727353121455357618204497816279280554297260240954342727046175091804858970052207484987322438737332016295319079738880952479937940876595823747638268044835570730700440155828285450137754281453332442521750758122393728401102728400322172708164009002637485796713719978841685269569535463774605750940360614968473691988151238323364806770929203501619560701652020065454115494642610625483306310770867517391948695737659451794924309670080334388717814590641838645618584050725777298335696354097660980550736198624299169726607258441128018737279379163605739072497418663356733051410979808602584283471240149822628176673487188285421606660078517352635303796448710842657325086811328677279989931980045750113952882008214844456050492448340735337496478696860274275255245370826033856972169342862801633796436619083738789121990064183269727671497304576619481194042918365681017406554930542246700381869602491312380288744251271518685030728704547325881876773664563119570354529940904881748256460824105285969267833106539845901494041951949620860368024407590167470377506776844012129020100541866732376216592715986454094660249884846458633079224490478672628956192150926530000305916111586115087809868354927369296788130573278667307643374643796089210477050972474602845668481129242316087848643670177789686679512865010113268326845797637999607136195799609856706841199825801932702496907165571398003429140977655992680277828582163272028772295383086058425680584431205703136229645214070110425383250516803749614310201723985249764355217538378100432410428987658008055000096317492154380849065507925351117095051312646276755055996205328365966404308325063211882294302745722241463372913701404172153772083304266395777736053401970056227349931832887587661028113764645292782120667383628444342642179778355294624734520217919227443645323092521016823893982169840523414006767993700724975801171902217337518582606207524622181667469122866182686969739001831881155395815951456083844638397450243985052430833831171315152787546051508870826005334912745660504887102383715113943406631122805386172398060775955423355745282661229246072256346405380456706435898394556711393761053820881994710584748207834962751488279185654702218020827183793349171674551504391879733811033093994124187228545241619449322375966808902958305390992045923236095963359800632202430713361216175901914481728028179903436788910064049674561395902401680272810267635214929854576169703260099141423838379583494139554353013475675368178478898833460177376814332330273762732307443998353289880504110718280486609918630472783152337651535812209196458700194697453636197102310172561331122199430181704947826450785744773714825915093882354306587181975466926522948520414620333640264551656463201912294539599130761234079301721373381157109597013725899282838551723358561012113666511990163283647354306666201264707506989992759864540229206724333036072375609539163967476565280833579128035832052748832585398654158405321044076485984486151671100689643195056706013515964192248592078861456446671251899196598683779734795213547761192251405113521270905452875936023445668002255907528407465143219637581786646917741959064246494842501631431237848125276262736070452610421610262739568917595051561847680801330727369813825581045556276566762424276545483472327010348667879347875386588212282220133975885564862307380962420301313596651891625161329953719805008322861557752503655698106957488413855151228876146917220318957888353699761630906662261877629780611535528611567249075239413965538292859982193901641616861899466084288557842916871331578167678625925102958240674706510871541589122898679142015192599726970950554180595263192246625491492055614632974902245554566564481006000188938789648591693126250816866122433615779388223146004576086982674468326568750846144259096898808548655964863366310993468823183698303604037862807874541082443852102327020381240879574874868526531980748694599045620504483936242421593363388452880374352839311453022852108897939604032715019212723930395563206839671105282969265838308156889724671671544901128897040841431433183867521215595983942699364911046923852715617750337351124951823019713290943045917419100121435755552247644720309008528208729971464180048994476119456185172036370812050285808260662213476856627751891320537928435074720659884880423771305454762681215277159512089133811805159092953793757140023269814971904887624103325519494130012790790586041052612609184368894636619811466307708115941494836200926802124774403304221117844809076493143925775796312199327532244522075188096586576939337300122247120473681099179003066049591198769737555805181541891212684672899904709786437965676919445174535338315483435951827383143795172181194691868636346428778559923930191999701163633291935494730924823598270710036000338560729182727210922743270952081508356156460325189778361922641929083878662123903731297018804659452608773406469149026293094254952456852305779796194848835524286383674034263742483939204557387105351255402313922155519531290108650193988070410413153022593805814178492296900793876280036788354531378283012499544696947636838305948717753868641108239560897923466356477261151913118106502207158137058027680246599654656132423806025593153157232429096342348626808745858759091056027657651785883558436823890152840788632191411837867520091641220930138474563553241250217100062905834543086713890912256285258936546037149049977625235664183853918189444759678582170956028061233607872520237606042540653297087681775089068739532322781455356667859092759648490200223365800269453618161126248680016017588365958872056809622142241406207108867235076907797319184231282569491681417136657919751993181604558758128993775525054960860909988243492200163785226265898203382780004769056917143940659302096618763817268981896373251384126690597962052909304584532769596116685372572902388011869211619461781907439912901111870526745748216573406306500706255658271856855307860405688519661974289050090123946641425233419950583487438311322022848014513750627400922765949899235776328847522621310941633045744228705294175044615586478346344181793683729737454510298481724983906096691351606714652873677496406994417486994980353208699805459623166619853982869271330664107450259825795864822305590972028289561233351126565394274401778508726591469245945140683519602404244639315229921098774036047960693479550290752967134276665350194536689916033691392429477522410509437554089575718683253813565063267720526090503120181143005069225273470915380167064652815379615134843822435613832980104878705642294318850107798886364365907927383715041119390246317087943534303922161937768071435432935015403194349332305441496879326097790000501163118681435363192642067636944532404674511268665477667763064850966004656121327160377794804613671328420347333329062007337847596444384306514410639783555864408929893715012552792946003072682813719072690718504512439328595284344486192955759274613396517353770876118302920111217276231540471081964318957542802695212478578174566653630026203064657141584278070900525324896392882027157090701593825322369693486435856482207472942332039487987754641676922916640893046250037383840736313486902476513236769433065885570687755312812311234442273452469783384618446438722919872958414531938050653895567148426750571071223876341241095153062910275300176596844858676448999667667423501861671378525183219336501181768514498562890307808785021884453174724091866696429487800014792917965235383069495449939595690099500894201420306263368863234188150902386567268879218554087857327068514136735832793749218142209874180161617154612907310389411114100336055729764712182305224402753567820067404034955136797075703136468271054158270615597262097214839118506322278570947770009166521920485815317852825613687418339007047651743491078482496885721485576072038848550457278152151144391099775783005896741757381941627756568845193624075921238880953283674076867377618859640109240314071860821586390687192148357238070665248461877504837479217611889683718025600909483829512179852766826206514436367192100214227288710646973774698659103931556167037665062328901306718039461998936900451673423715026386120319398617888762561256417888848136952292316867923791714381910042738743982388526848473865520083600779969259960308781261805830565303787263669031851030690994797400016708365113867197481556091277210060322728634255498228579549107186079348299532509934117305715313742469237290721856274485279228566818724453410484948452082835992697602134749200741762217341875072805824178420300379617816547152674982737937264143247239385899754086651487255243243804585734411502188020880837331522876016436733983371109537634163318256861608978907704529046393229019175681918749079376616277804936185472665852203416385768636851042472324442519561300877215858626584140782955907015938282760304798468854665161998330315221274437355754895543913737196387823792766885587224505859741043782031345790821292067912539534045449876969206074981601234397602098873420064281106336420500035596200576084909503902597975309174962817636380611271516158260417599771350269217753668310609373589586777392418605400964924104486370959290879263467484242918072428508038521767726437296817718838760046525901003964600274458695043724035484105585596181065377754942017614975885203266979314594807563667993849307053193090022950075863813539485823890908818659490799197231267618244948091634933735396799170447023377839654850206544819886068098454348074518292858663743106668847007652905764085936019707989626927035824586190007676883490442490624190158321026747330738467889539474333383486312298929092833264760205135706725197171378164692019951748966238618161898404687777265919513567963903361184033589601033246139658576921426227045900430193409488012034006344561353422686698115382612797151685131224233495770828894623204277490063476117451164772943966159148783767391852262038798437620263484016112892954101700324226130200485087713647452463184091839650562050557417821770080677325855320389140605746408295415666929972718731985480544657890200036046028594720992846867783623200057565254464739915706391026077358658859772977638983495553614128348934709938945276715268749385906723768538827525753303242776412275414969457395938522542445517553559419315076535494386853807458877076026604506165689528888611880805565707683530008599723623271810061082437499621071814279564794448788425777869831551755099720667163217334873351277731207735002944446516237622355763986545834422249352808027374502608435332038447664714264265427924566708484153131087824826565633585210294055311802833015369487525376525424951921788212093327664943178849486710659173410313782286281290466119938259593928238110241852960576815748243694840154357784622206058029130059541248927747012230149106368759256068084737556469031026319387126333161737214131760664145898940434034663528366274123114344841220424402933392154268972154135778544005241430009493683819847903799129499961359834457625617063369692741972323107604265408701877589044471984733019142620694854715285843447388570965844576028306947408863315240912992470028916308520904100033886961303036699310963294012531417454210252233045943446777169300903843616750684729319645429427116697456537457037428204167907500907143366438865288274845085856994801029409508378740682951327675801345234266585049005513409603328928420397920175116332142395036804228482038139071833530839139713010854569057386086479959017509584567188587923468331639144039760402453945238059631893029263108896854379654449330312600249040275709779086613057973972664936646981620126760608295996412704929158282543370209144916912069760469363006795715735877172145820619302515850193663280573878398327030701212811167275121521407590683595164272410160492704741286817649281305085799502057678743365705743816490910987883127883446113317226874859863149446697057903045995828277990432509724043829510635180545385542645117681101575882600446865422161074702447776595031364341283873886850871980042969609500469504845715478506379009170745718530830666024133594528769791758711007744977421433165535464969303238843611220847898235932682372031146319606493131763392730048249743548933441501102871669811534919158893833026742439137145801892451531410258741349523137191534149622063394811545748724437573387383555025195359948339080439434220881404860647978632934238632956756066748154648018755717770341989727126571100569598771152446750136570583886786284938954455342160496085258872418417962019901759360488557174216624733505224018346778310373693268371461267451503212988045989955604218425913124465486318823848874237751256949084483145774502128600791272104775067302550301283568276018305078007622513988325194633886844294016757697268044346866885711085954819626960285269933286608677752374952266792981761650872182942430974715477293122099324053930565107169724217069741671826717974403463441577754619710284153830830593495863044199583462194021300484096244099196466315532797177950667520940215891972805129485538580889803502490638896377425117980277212083868549736672898800245114262662978952215193652988730615626538105800374954836589083636067725450077461740492897149211877849819045704640359601853400508385421232405122805640368604312166059966657299820052602009034061280747097206143356300575191953197591571533634012359247106084831556224152973136986260492149650129192331902984032777099850288802204718754812921085474175139688836940433134315035111570515005213574921853760757523385319196140766047578347212220393395658525504665088474506579636871567807583224122023192624388372802031473437955754846357414266247404227612863136393300080657890813284763432864235907264176692148248292197501527353258961494909645539581418446460058838081996939656759849020659518137991952083048527359144292061682178600581577321423392211800837959064703189030974169311735454608149666801362198572281431984081915285073913830847568008400237682042920514328098223010361985998909494262536878653864293053384785376360822945550735842550533888234827838154976273379034000534137238968280886911206434539412499649684406972937640225005068720097745596770798514227888290870348341215769081929965091831667874619997065099094042679433598534995485011559439312970410645887125617243003418441779312276728637292006483093629009114098639819197369211165027000070470170772212027229772151388419105900141390276020920503713258134888622848923169755317122684111679785556052852337283823804480242933518510737686426119466721762798791565062417957536026649482259918688042423401323483484715537965915313646382569344264944726637589827040564402081034995643793964563396834785226406843636439445776781583528908981319089347581252627479998216967964185568848386583927332908880979643734905637273409994817221065071234668044230658940789055556885706481455736811695884588410546545221090821873401808332107533954390103396435988388056124403532909008870746967545752758073540982026469860674883673034131730959539363499009928657377638541354685951206884749045409564803066554150553906521069725946057057747107950131204905176403054779705355983013894771935909333331539519417636271013522754198052500049330618681454117420491671269142974142225338911018861888080904682418326987714726192545071934937870479979484898647161566318607056565156549822973637910985223824577549814862479644332845680218889262165169578352317373825159557746009017552469792904517407574797415711582819553474624848430992982351994535090244777403856737933215071213567284402894399777577265996311420003059573980255702662242645115158572107164539377005696251725411896653441477872000409175527298557228388615569140240017103342972948677301510689991092797561479469382857563328303044036684206573179835961968104315055111772776694736308521271566504767883843915831218010021166435098067705534363290923859321050329747374925345636967055400525262611082586639828153843157708101394885608039140593085984146172193194410761624826059501989753335904072157730150919599689003999007514922023445845814938007827695988313052675010070047755349179569100666332689136376628414442448801145117572491808048000753184373400108858263275303441462041514594245622035925985471635306083533496705039349669164683312205976154239539963901987594651686629386388984733926210995416565130993377969941297580918319129448788469844504319073875975882154097904177240412326712225308881313740047452284564166066225595375836485071469395414684231038969484289580117733120688307521211265416992033219179680625487635847698777949012394772765906375711187801639227770943819477908817259412192382344168588118914450502809413649362510394916000873574564829057394837722890654464000818070830144322088746152820840649058001508930789672447041194937354208895386520055551964366472490979500069386254904716194572202195053665133953473138536022072116899946485835044594961236901943378263839536831776773368717240453630145884872150313029472509036906202059535809522787030789735643488860953149889253159355979209247773450385798086040786418533347243845445167504020640876048111564282289329269946155865934100063979357110992030570122479446076615011717497857672011588864167868280803460111090020658562529016316123204615928443791691207127525473893509982212871163971125331432256426477761549775820006538415464323517490576370005032500659517999291713304375394844835337351316932720302249751877150200369699545327481735814012347756409061317494450423910009762697056614892713744622314359160230955195749419973193295155833872416639565777495374591437619365749631158907232397644570034045714607836314740350874910533008462647980542155409391015638871912577762228175014472170810357457060435725855552806263443290155734380094522980029081824149577616495754220998948828477149201832888556408030139834051213914554373021320963479424232682769773448404896534888451722137164565357780586862089266273401265143615997283555819990232918617623068899864084092310563522166874835179791391883956242709020184061848645739924166289941367913423993652411305381105686811706406150809693720480227558518366378267953471948446389676836942784106472910692116512998124362202415336339899762496381952368086206383390352420414815393916133245535791034888813021180443071148100662152150481258244746430204336947113331787522582116189807571905974193243187063001022432392464772133782605183037856944004360240737638252105064208264342229288686344195872237680497302369990807700751321275734740339534673458271264649475772079414448509155189349155139973283884117864581762346654990743560522558897003851033535694262120043946929630363875293581563213969220590116380947572261369461920101573486264141160503053038531643318355122665964548606211211124496531607797232539771052267548930988992910955785260918641171006646079955935171377473892661757118370897396080246083305192309588316697359943363371333397408222499288172406618728586334706671948043191009527571744030857516683595784536063221241628931664150798578017105910855377521073302589554928913035132868823688515661890677441734556086750824283123692691270966475869740610265427115989468204493532365117846994640870542145515948776870178827352926592755813657484527312265273873966708335303727729985270228481286495332313352582451364341791073482909307301627021510214634279165792152533896736730988347045028482086270626972556706492774822605255231467997430025440742402498319248014171560957661840263459536240657204087544895440258139758793101019550894866629798662084007775761414474482938413767527217620033852348237823474505087781343547488959317245354523454569861933203298921950801603750528964126838497046487471346887795681486727320198027600290638644485170125032104130745187395484076640372862944763461660651467154257951954554226107929858727863854644017063214141373065201920666874788842854860156303760726797184621207020398484729729817750232058101561269338457611819282452024199289525563982412212075072205659817618382343668081638410825717656590029723774874322106783371624843141520434031439242316548343252457112286960122273719668051700531145433102764355553054121622826077578623600260396485498580720395449539213912493822793766895176319965925859609576449739846325292349670729468367502867051853117928541704329141911752150425355479669353046594559262248088661046203384790327542455041743818781771442188761979899858906007760941424208676137519153447535526192518291345221133067932042319002720618127754602329624391743038144193679100202706191616422899188071080676162266591949039306093324991957091863484429207740380071363774479452439574572436150596291687988940781751277667238389040558049214080021283714414513444844598185326092065052289580180216450013051694075254640098759687173745313274133839509277942921040938348249922003559475023770158334475197933032533983396661563206500278364415861866937649158391854390283675566763791378125510122035029986503611899565105664684991690930595584422409407738092816195488806418855502274115159070040757897492704437421410666085350739026855065630676332575840090179164557939973758681488124913300602650336607418577222116455684674643479870936280057848600160085563383824782521806310528341378344194426034913747253396151852598281043026759689603922751647531125091322914333870952824168892745939075173031987252577411669992672910748637380025704325217106428416763315345082215350544215241197633241620907829493533487905696924623088585230589936513889840856646382556574944935687732913508814240244015459310304632598896694060251636550285997637349288929751515378607574269938938314519534129678744493210011643256141118968274092887349234833149170249919806796202916288675678907851657220094553737338348059886961781173085760791024015761619880133561863316159820200270920081683939645021652367751429409810127742788508633783885764613158457195834707009974183227152949124226626165652715554787236543658214699001620555307982737192567452700357664399707999640555241931591271948854618974416647858163500424846688432183544629529493545648628847006837097441292432158766180974858273679381332024570264076137655904083498160136420082158561910412893377572807185236282270159720091662643331065137530345639780548335561281333589919796015293576795212141760735376603208198379655298107117694132749249295339232140152504428814950989230184780213859964619384046392243287749065292136895238933570165354717658229263362914291983462187808895309123737739630797137846782410241173075504925161890292416516788967742514922303724786847107527698959602097828818337297514287794903474718959100271423153448655811716631542430687806255834548505553080873872770128587056617846225734942254541072340757851879384297439099228007341842838181358341045225142456377856605413094472498100590762716852028891586082739189322945486114547211655266806580723120057002633099552591349609604733084374647380174356451580797083748810366028906858757783664405621114054520699240031579111177417793995101601029325030631669485923964908982819885688034092248847116982778626246134411022470325285636831320351074340162686219754189187363948335591617391233306798348783383409594545645698993857053336516320265505086759684510167227010484214317841588305409473354109802234839799233594477240439921309700302868999089111953394915776328009933917364964977399986798903194852986478006338096313891563391241256169884687029619907259054982240435238421464657554744114283031772603007576632910415156662964864313166486315282964812867043190540203314583562673959337599490815357697465602033956624838313637236467814651133528305363609532246179686982380874005913960185550387729395665907805137773987353010820207792785558854429862746513627443732968223083017742654777480848543973927203161215583778309199721705870250117991331127326660174206067194405915619432384915497743761984310058170105934553379795767130009277007799740067268760711055647076850867265643791966256751115147911128676228900618297249471944159858776073366176488418149502569841188480869155854034960583417362136073018130236494887516111894772618838514623985562502227617009972446537538834501644291991304482289956028273951782063869499129929826018155606962032567718751313214921786679954548341682561994486941428980328075623829162935825344823445245056610113204854566123368674687354221606649259584902631517263255489611925972942617578047498171089801712766165434644859141675925751880948592947114189818489088192207436819409223626404101388676230396626245218445847072658034699593160850496377667364584024177818894806744879917900040448868687101154901522682209219146994837203540951135908240575014210584269171328927156892568425762101560511714374059489852365670909528388210240263988309423234518724775729454997819279039546951663679841779726419251388571344268625157890407621694154522960651899576926197397056202921649836880862104048982210002408024783706125773011272052662014712048471918666617966240660013775714504796580562883806452954511508787975902567590919578195437069354731445178885270565654796940869882173841076468054081373499286606922384327034511772435845464717609118675668576953864366236865671765992247552983653769394643664785487551667859941707909024559076664913817674451753784547578211811882964081184021095930170664793478805845382414498008128607804863783405399853154378239685930396309621250901767414418055014935948260550389180686435529681525263584130276736366942580106954002007576225085477092276041151498390229365949987552118157376527910898437963258355791590652225444258277460410721955954795289662286199170980054611287312164182677630488143883566740301806208027842990554476007656780477891942204771562247395398051035596069769807159326170683910722776252582927809327011085295954976875573990460876710955216446268836672298452040637363155496115091402773938461449988721503591624633422128444883478483038367061308135772592203271764073466646249077453644205935676075415215368179807048870701115017245953168989848474858654791310830598792898674537974823108209680022108183956635385396197566336526959251257382889813002740714253193453324517637077379244873237534663036652122145413467683927959454114691148571690469458740784732315462615179091508781201110549664268482997375991283719504236712881086625377682912152964754603888259864336539299919993881923197493683677093372989184543060112851802620586452455825408328959728644559676911113657977812233669426598643353903144229360705875953798287197769543308888828879379362206440910578974651804289432398077071299779802488703834907455096126203653783366196583359500307143496080697381995084884141919663465920251934809663012121010521405827521185444290771300399694043990569199653908883043600018908557202481633145662412921895008869323156383054484789130946048958736066454556255609610275673539518434308162419076764753758880271841210277796829455463888905563361617125315302100264948151219212829211683804555424132126453207480406386366475754918918494030613738920295107093116182654603436954052668820083874608890323134181194970229664414106539922596674693304046429582238232456488839463484607296631821030778606633155410582379961725084295259552433295486699273976742353045633997719283140635218503433770467448710958976180059995391030890996529455556574618961861157631253902991673166462111074552996485337042237917008613134645943289542930297206513572200664745722396487800977997066472476490406336828696084712461606310943941652321743024597685896384082670962831070638733259491001273962668066287501854991456604755593767018322756656107487555214201523750571291192478753252848537869292334263156919627261460449324149997875982018283612056033299302094855370409922244465141481646712741331654956596622385440840245128110327155152763892344432764387527422548153828268346607775858931375546778009875505355224959237044322588639621737085388122229259948185324979227058543879482967929949587518050133776966738378016465916292791211718938862791711618535330957410959332680905222857515424591197597202578065573770801610852339412488024778514207871770286933868969174787178764146765208040097470687695632567703209207059156088687386550187705414713962620038256826894746514060916473278304010834820373652394869879864481328314060655786693778002048310547395115157269713782250639402050166951811597679877692001424215874974961345031050280207089539146880306058215711647411989188813432998332598498560363108928975598875642033878890449424719383300165927645611718895289795679837092687058173990593356646038261220691220761041545436901492685283236181810262651235681677247932493551864439323646336340002450938859801500212327625916869178819014117605653075292590838832368105073330994258064934130317818805587203311292731681125235720265436405633942569465203661550781269554540920571042227502998448295883358208764075912702817827266413581638762856919797223177653520812218557616241693278509736102114853512549293273524853872028942155992818481638673209820310359541459884917178823398393619442227968560945447744295044465769283267719513841689594820857798993091176470601877690475200011792105926721482970461646290083925404164336198615140532134053292020034572300363424301936537046196746674261810183256929268186124778236321609714895817423262530107462663617225333429088311055488518219762445948667559846067239203010515437705797794555723399443552811133038367647082552550657747864481256700188183806837554576557969537700671451137417676542704077978005449619567983076876706825348481028969090658068758686964729355984826480071363040463554176363927276407557877104035263615343051561976331544370134349103555031745935808819215253497009687958533574114675293498603803503513020817496215926671473559041640778444463558292656261858655651729576300540757516315797410774215990157000886291288490322817728011316218064522793912034299338317681061979227021625394755265281334441793481927270459014585186089757485842234635186139255059166046766429960194305120048717098628492809463885045987925504580360139975079861152168645828795509002464072162583406883144333924888726247990030417768258026462103136734709045351138285897394247187736096233341543996337341804724244458033263314720303618317601961503371998973798164776564988008054587058579961665881454496348561976444047885693482074464722298553054696756909282332441329565573049717538649064920947973762083285336969020238510426213386998890589837306398211984374835587308174344922745628379376315398133949713534814793434974940504496008170125783541529464222889886305063632987098453391827337470047266384160033879263809536911105120590334028235780688603157249988055742643656882421064519130562292953792328417039284197280429143074906850722730125787321603806471284913422414520978707938872722671937531220945838958464005355035539241281056718566681929241503467231060747763061726201548393786958230635164566664131572282820039148145873976289263688401291812263495295409820153567150796144593929587225552907078771870165606994798716481369684323194767469076616030518458824226440002645321477940791614076141653709226920060173887367563612623099946914876667001911049947914398792750831002966347887830026605833769708567591483655280551764798477503340032073696845322777083593623224638453867386972252790315132925141162023288630182332141375404287688200773350168088395631657275160657185308014503309494535271227654082674375020108929959040081392991489129639742151411954668028103990605488657804728885213277029863808659757762176372595694967772434430506681434123086959260177792096332049825830942527003787348317713108438729869804464804319314550053353943345394291751297635536235219907680451693613828501795378727367054752633182377261621533124511208163398871830176332586139452872895783188276374120713675412170238333037037371814836698248397385094521709412553511767785452555016310925073150647097021388684105190893951082514877142099950997016043125252394868182340319310345902728950150864084159064117894015236435375494782270447691096589978071149355613465959764381897992580724847531996753466503980094503173593594604155328179643629900231554795699913713457705731084100043849072388735448794306256313661294847547779813544791498951571589077743563159242747524706911339593576027277486181685079878710670761815657634466501490818646544772175426671725971532250753084792842728041072607836303329453460106158471553916431358604649790913434603192839791371764791050423259686367639165396467414925794656087339482082135059703298966983522896640659227899043832725183285375668035263936902226039372116836790485914789420955462284866502518443170907940928479384573527856847313113052171607101297072965896782241779241910286410940842695906607347103330194457976339571683877267909978493364176376772983595365681269285038044953543183862514992992818741300921810210678879533547871730871536037911007727002935375879150858460304396887062530128710755484775811996864466237090986784048156816224777278055756482229321625487789742577272392316833516544963601206412519075626107090364912292453292007246900988659047264941380923879292030112572417339326036100332308891132916377459428555485067669825749225374241421605721409433046263260275421215148319289270404758508733626461175658707051645361812571469041408410499756932605799068205878677695158905429412442573200966703115303221888355498880188542615976546741221186813026821328983158623146390349299043559684239602609723358152313988535390164894857262571361218390344453571037051978206590229417380802664914870964910022774659130698945569089046144311546348195734014172436466398237477639177306126860594960552926035039794920173669383246435978370174561301588172014901704868374736039790967755682776074675727673200477779320079959517180180728030530831475605694798296864674733004385907646814880431348409936960266844521278240703016759910329550129589363823322847807020419455448798741080882049761851728370336831700764546934744346922762671058987655977148506179533736898038511579647011783449849391857977334718110092028159768761566252281565986469573631120813574477999986345954269742627938096813612026263193843865562478817296653872811542484432233317840325196385399775041552579461324457776057545578824849547526419018218518166449171606741686064564404351678033112283794377701504235045135319893889007278604495936189871918716478686733922300733598329855090938567010255628573820042220829905740502372740370309534068552827134873478423142151367499336694551504724313555361487987000536321485349020660302493010217996523364970387425777778627667701592517329875679740019240752674893994492266758189605125403138456159899870166833696185065253261296714117143594913280185605784099339489861765956608607832092545234023949888305404540182773814174520829686006276016003040502498940694954356429777974573571889098755419046745407412604393330379858757739037666715954444977583525296971965057096096084884090133635012736650073359027038190619096209413082265039039024115555136068822473718071873630486910807868095650337614350041746817820403388952260947180387032026597986868001027121205189746035930580372084270503647658281500241772363576470202788294512318839682208931356415711762152608648100976164443814968573616097763065786841379787746133494990654804502016962205172725471635381456185844541484415492653842482252622191548616298354101474636446483351896745661083400849691680892108059879022256695709415467499987255509244295147923844549521856548878845618285210623541746768526003461075874683522112327291801334848011180634237282201815670457834701145242528901713303450900995419978882774465973630382981662194015117399238939773199265981196173943024853991649155852833473627794763121440959842269791679364407382373412773936489094659338063251429591956402368330977674983511833433390639195898937936292646795230340318169797109054379618485743269358496985305023726684650735259956595592554633671197658760341575323707562976168743478355028224543635922731905331955377852081665585361853141242795736408593661792503037175822572594261523292336675403540462296478293274782813827264589913692913493705127670557288228808318361570498047058935547495664652958573837337120535971038996100496157357834470617133725908794284179316440446549237160114083339831508323818162293148673678131386999280146609743577885628899235360013230334344809518275502899229862918900465973755116088695643416682623674698555709656022141662278312936937594675447838108455677383640789921884062390783667658338355050854856595433929757616694966608413960423473737964082340105626777309134647185114893128232723650179190370034577223198626173156958327608054997835880788408318198953718640599282151588221263649290104495999439688805671991388136530251101326195868614374734740960641154455314251500163324477388480857273585104165787733631985517784983263684343622563723598961755945991596007383865700542843625217121398878386137808303803480946493638002717711284576540037256680979769068247919518086567365442135333550994536847411282388071940200383447029601004225533752959009029780919156425442053106393492761749440996326628909512896478390980179702374285654082637957878725568832742656974658655633413526126831326971657334996953661016081003268013222844333827972430624617707756963008857336243749665324636386738009508903748290617448497177548596290222204330116973199664756953343740842061937574602869584501992513884443207481891282034779824259941974938795687717312939725104877432156560379147841376166139003595328864670457557246563286573490745240176458547547251624707308840206032195515708104159861520924203548144377423140965209853499472557024525127033668654366962158837725105865764540414109621139623379831381628869112957069161512165290017407478362824045281941548036256852118959515748803123829993327833625267773270000612277233580416467268535452239873237115237246274984409429772086028390245341206473600287191029137750532433895628817523469324027160029419155242769813365940520612554107292600898323912566327430244155061111427273935373870394504821458187254198664673994701067117833327265912113777641941029600192010573018474433846608108132323270043189788986699322349978109254122153946884858981402404078263382814706836978549024648950485074424925827639177857454777780184185106514020446071446154434274013397203637993921858324631969888348978626349002893194475578583927500975347401819748474095689692324050291256654837122945448076164758887320716370086614666046183379559230204792294687654377995421689544004450569513128172523912961094559903214049090979044364036279335346539618879857385220843495478355209468483764904060930873364471285317542765352196850109152757301826617012204235773248858188972953494836162012032086182925816045549143082285036975484104923210044864729987431327395499543393816348604418418193345618561659123523836570427264640961059103353418300165104103748821884607454961059709169283119536517085486261417355639276562708291783327232615239190254028255293450330710794279815156523506886930888307312454215236627453046926183794666712477280611837733354096946438341890397036082342477458462589416735652283397013171406646553026351744917063746980826264892649111313671986620716228445831518054200453593600346198164022137173962603319480994442388520235499384131963891243219246199943320293480127556168235201691936151755459502186050838157696697357799239649373513285973084837688708236626811743896139650782623689745801195921302751406714571212120909186776351136471251099005219001821282566855326366006734541572439351509598998820129237025702700124273839523577556016421846546937106318237401467276593945795018259889073338204135069713211399338283329529594715404093607698911602819417817014152064390818163474103923634648586894760542105387370351604263168610009471694480516474212668813618907636053270496042649314597559582952343951499365296398347304622865480840590103859703394285788217674941572927825352981180699227848035918158532139272452102293496966906158953243290312821020871567059448376122612559858001469954821524329033278702011506999129100445921182499491733711504594552713252864196665018217151784940194355014258250241526200889762196719164423584432752454156464731645706273050752242567421980698730827848513522023734530242522278445733764582192307904321271709768271274939270531821520029348851431100042987717274242552110821348878942922389141400489880801055538376551608661582141366198016180022582663023890316315715926336296083025824088747480578663987654580787741071998257698536881544916632062707888916145238498763581047200216799622325809256421968472386525985224031718630064332094352084455297346427060266618615788046915623708740638548532230337655947321367616807644243482386361474565656127394512772739862727239239362206984476887640837209715008979511903044689389713412710058283130634860471652830686364601661095244382951248603450904522007411724646245926429260929574632483209438561720469101177179550954011970697506516029953887293368511862036510814516053409678260366384597285523694560757379362992431667047699484797279924553010104264556528107712407202089961164820532188771643592207138889120582532845687642805008349156015146811204006843474050294823814358811906127348598208007090153200388041723844661500055875557763877506338979993796098713736915113518107501510892042359063636798896026906732528515729083275814688436067421920601540774948870039796071631680459637209438920608545105455252183239395496976678727499087110074552898808178054568510418939501494253074238728339065132161037282572110156437286288772166620754399278905519564027319979857558911156786155802464111489928918516421063144552642555336424838256600017513110031422385171170661700244342010369279483468852851435237323225702049759539333798165110424830632592901980359969670393686914900257981449355754793471007988183538422517109309317660051419926737785338078086678927766643951767540306517028410521462904741291589332878107189851793157026544755450279814981859476380021048269275418839492519438042410456289792824949659856244797974130869331057694165332167617603271945866084129814207897150514291614584201280054113228090480772024925182428484962284648477798569337851750404339485290510029631680285958213471478535757650808780689887223893232508165330531175972017759235546755528328810199170846854127296150446112549333760281914650984252085172103348762007430865033398456017807472164963047954056915780069889937734134453288861694360396814565571258775287092189914126715824435288030566788819584774401063887369460401411464603274719091014864616738132004710498821249398884633041593809829601412077677200920071889199124256037385984329922245278135698805909040568380646664835634525173480432296933551377110464568866374834211224531980627300809908402381510308417893979415405743981705580079706726413659310188055545922245890190672418147017119113018191458960521702790695833804153098617244931681738153383957658695953852830034944261052452454140730818924503486635035595592532583329873812115523409144911543148723967249204051477237449190960321507603034518067532768287839354539411116936207998709992775049091618630675592330084956971626188552151326287996248280117166974559303797689450499645070363279477828938947300750395687937521986783656395428815295718134985628031190557160953326377684586806858665587541250136280440575829436272355789139993643060563558279503929245669931734746804897631763953587754767923062576922125403676801317817455094209798776227933378727506046833761219109738786176281505909978986675187178997772252513981970254419320115019378870146193917628742074806642169071930277352022669257819767477109218171238949751474078970526827634828158332039987480876999237007908007927955053894315646527496855692051666484814015357060125474805284745340333822364683084036873893523816717109307411471377443504913544574234749453413682447304263583185990491880355186573189349637149401032033845152178214715963859507257582559957787039133436215330222722291768590388194261897728040349609023847377650868513717035033179412857957410363452629385551910416153501939666858894234918472349327033823225049384742858111399202734570144720131837964989275581068074100644988907406347988059768527665467400183792835863841576194557715973607254667034266037055294169165964121840879240283716362025857248020336506446499798247900922734339744388727294115562550262403454948807324341089455187697313991882999622120811408346863128865930006808393019049648884277377106132710098416166775134047823400348122088532173513075109555560489029419211814956164313550874759522890631791523679930720127385966362417655159000715776343353997695187304517558596188263527509125188460312838451019512372000153168895388831744967294182264106549306140447481671674759747395921109136903250586972166411673891351561094049574519601108965659641689713168645094449119168102190897638261638933118932832649205651542218809919849144189020877954702986806618797791793442306962887160871852895862517254201343873675902320459922449784282786115591927217767907923704840071655040834045025435498314345183528577167637970150997082648144406722070395465026633020302469303802412490710052759300499741616429628792551467405589102623274336181117550124614410097722159085043962090617111727800794577432479420021376993565064934264086581291008095428196590200043295074598896178534723385147786907636232222337604334209418555761156856204784568414004937632392879618922460845069329978623382700383350495825817383069683283208965578445337093765782282391978382033245569164801751837755249982888688156221355457013767517733588767743634661590402928027597932049470313990740883095517030000678805235099308289999141700340142564264046676327868433266691861872735738501062899428085550389563650048577615935143858030814804203016347685266161687564266831837434770995369606986745375838543727110468781175577901030057210516037233074321002092739954040421294392413290099164055427420381301554551653099461530423804482627702117313230681895370054093844656080075585378091727072635308815790430982105980482883335271844109656035829616099800775043346420184823914073300763962979908169720064674682836627399348147950859621081829270852771047033289900099744128943554995403080325490885221381135771512179393231031977173373941516301375177890894273506816714042258691596057929288378842565708586579548917742654146657939767020697130173747859321291809292032117953844306533386920339875384563345712219573515787986198809879412518320358628552455937464422263654558089333359330446249207277580025892226427674873327423212540567233991397325909263513153672804070868476142278556731413771452013915950529005693992338792958682260270819868451067914944098728689708376543955574527248749223434373961534468713074827475554166788922142022201718253189931839528188670799953050205891134484523684857828757457206791179593202591035135247003306747921140678663964898113620001802229475350277455702420107075548202330255583534056327236161007064576559991992566184025597834263916020725798585070734320272794342795886570661847422634189159664122407457541842891391390457264855193693743171727400129236791393043993460626968071198161602704153625166285935038691853298711511861679834825017560381845872022381821655631549165975785683226937311953750188486609813623418648496173022447527557035431678428072661735450921762016345924199151048119462827868999459272681374046839801790877495005398546667323845785652145140457169117696247511223177796265182237707853569900967827623511713914507460593603587538500926997628967546227995609104030576016323349234540643525707487514292010631366792933574001369396840300516098014491529715450369083121093527103916410840613118903702936618048338241728727546911574841764987270810449551990512199557059751950681368845777008959206095531404713804220325139275256078910674348171131155025839939528270879163585867822508739111114354140956514920154336322316934105678504650596491543090759437208828723264308445772091411629698498450757295344697916715522182243247014082282129262722874816546672778640617177432293481263178429307459417782139099188271344459180537528846377988825956816503396584974374221490708926184006816363536480233944065710764420846925214672528618493634260553450314267654447400467190081333595058362699036523634995835820569671638415865000531119762173227214596719310128811392381246226663752190318445666060144248723240118136440391065435686448433535043476717241015512353924231133153289681679171186100106855167271354970500844116437349256987761313771208048221434814584920663406690200904024081970941649986996153818435967142345419847436329839586237138497469245320896100199192086313408300404005003110759452800588147284578872595543782547120294946545399092816537427441376690432475199711261179265343521998266562843882879717803455176449339638945652564135075264234693830846557038247717257050527938188912417412366267107517867572726243519077808390264612137523238935593006157674801565867130789504959121979778967606010286354182238246871970283204036462783525682829558618579081315947719418525664173680109646029754997743976854139584718103815921627474617909733478318889428176841868120999223220900443849316329399293818117754651376222028023444479622394895915472470834556350536393251701864956628426189308324178784720496235076940953232753764770343046392170442287064877023336603422087952637904195596021999343274933364297837972853754793035444775209944274582054623193842418184019294916259485333342824312371287494918809520081158869923168806363264180732655690312779790890184736209191701433736844561274601217976138157380602259149170580945150170613826969822240735724042562639076870145078534799148572778999939707645158798355019597033764772189770499138906005628115076588820737721604069293978138052298154701004877909762502386997392328201344180012123143390919959404917278191600633091131714070584388152166355408160447995773360469690359322069496853052441600513210233177460858743609584754593441879426448623967717334304918039553166926535395221015328476671713276516136321679480515732436826529531516928301625739973008576440981432533745689554017420945855677583896436755421546524030230232451296667204304408477511567683933160774942258645729899406461555605992050735576397408383988538292364096781167836380703525646986261759505587994838537526452923729293034281891576145133574288278663204570968741510676093856410924532032877153015409428750397718412188417761739490377830798318571400892272062857396881993325791194331551688400957013937974117822148268054857078968293856788105999455867673512952269850943436633116440890451511691071009018067579596052916793388745642893330941432726561682250519442584412111598953890893234339492247673209893566957431005041975014812422570446360651071905811788608113326596681844725417127642431474395437907670194127937597022255415405399623878205349915386061377067088332930171001655904243484869963969484024362726450063216393220529374646651718798749920883944885777564583281625980179185883891184556987470266000421986026377955988296556142079085192522041161029146809419554968583979556712711468640808102238363513723641344356889430494148867845208726145453574668001702729918634797809989447234615925106591152880117900643714654894724441437774567394889665558800210736012999510303186052315658867933691872901011604857236745825873546913858000635051681221619402228323457625774389076805910335764724869393988841989818433160719150388570999733879587666654220153528043938354158396996317157197607939864546604803058084962910519445567167150937608882033329773661009893586196946233270640069290538392003190465883165962641055111478338213721803997504570092924755493706426344168512183408547572246603554949985086063411783613019912779222049407835676563440545715807355949822457047027138792315500818835310293840547148466025217901230522280219670967808672243542613176426778809600895138356130609850829839159897384947571781714703103259505950958210840931694565810410316616264135100953707876809733780057861793459840957243909023088027086300935867172410390164705209503986044409651559300762545998705401823921864896431806555251596011868097262351380198798646592484775731466557651986271982226334251993860162096169743572099447556735666031778222714281313555777813004814217942136443167001784129017247376833430715032491957476681660599630477718104944630972311268727277596534969457731135750358290860279929104015268844483865999335850333440645520649660813133960926443684784737630626283209681451403501674628725676771843695707377360626069053156256314705090808798080699320965575297534421424465581067384031471738887071984125102284955934678044567204251531959771843344591201822898730469659783916217976488591915027637805164038234078595732756332175110859684023828108016741446970910136222004639495188926119279119210888305982318943751017276740908571930641401035210305070068027459494889377326575726333451859069282500239710099294740237220990684754299575116067455375230556451081410063405472060242678219491791561819834925203648918669060285637950139521161501424250618206504786568186021014000143705762579377628545383390827824885006730895414643747986543776826696884693309248665176946286002811012105781981059767883186279904675846113416185436535413808888260339605787683438008528826631421129198911786956704148918909816861799003123218161871455229489115330895793322430304066618472694174011782775214984338414773151901539838178128055410921036157604714447361439979613072906827583871870052518043571284832244718561212865484808884276441320877434609328026710202622890530827899817807244744838720476824102621109303223681935265457883972573521042207383573779185940680716189328863134838280288869320113743199462883316803552417240423444903470648990157168727103218190587427507304209506981444384627591358610646476003286244269591117869061178305008090216064897323255951414503983040078561611820633746960539536870971079224212368608786239057116499725525263208475333647766937019951539936656728507112173590841974035962262229401412386078853663286343052618829868278291373292852433654797226743981856805619346067648163122951814693064213551120981814906538840318445955762239549167812467861058966188242357288463903180458679857996387193398071310451052641186906873546655262791632181660608845311500178929425903713656827843802233335447032734420799023806776138283607827593321142295108688073516360865773638224276475468966896601275935590111011184345303364431789296678734818249343086447873828911147995476835783500401868866719190573677201039920719155275522284370908096827875180778560673567430800074683032327763114675619743759087459721982313039900641136167082662310378143307245561777127614785953905532623863390075449243909852168139456361286449197545688011237639017996785207358221336254549804527887735373557261456921310439661902300907669202364527715737198992175111955912466838515451166640864669591370704865149831126682233861166179306998732584826987052865289885685952458944469107460042095706440790827555828172214881721261413810379275074663681101932879134544582795204109768745026315480545924653232325566967691112912772807705878374344181074184428194046446213969224786522033685492284115738821964986274990512622858927047942275614634613467171074785208422644969079348444690687428819359321822727688438290297203896143717372640260165766907829991209167688569605575731057149941508111356102424829937837517495920683964474557123637086096873975019339652107055755884207281027035892818517742824974878576647548003202306390466841129394952743385293073423203639758307233801598022066401117700962557089526628959940571212931068441828278670510256906775002995267469351821054408234081924438914080557125849915932322358063475366273680441879812463558928546035196377691349121083402065802676768094409269435285148710847182776829294779333458966853102190916205136193573713241317337246158239980814625747594283159606897572877000625727615070269390704044579758463615267553194261201231878208634102784879853239501096342832762116855513987764534941006258674850582514784717447195756978470806097362629927790945153817573107095354891672691928539066160034857183686228647873984775799047516149252168553604560583940638469755753104457731547520988914363230624499305662606008303529480728427693631436039612465878640823531687665728876172144440356691078595864120222485807457025297400325812211823698899485291777075718575357190202177800059840736396494261345291548948905266120003364104131822782300893887153736572714207181097871420435881200610415673321348908899410079993147039811416054939105908361622370123194276259917343894602809770114840771354813668615717815297865230375172613557170784365239338990347665265245805161935971659242677978181731102717970238700696747722017346995357087720774093450586135643316400752011710571342317675664000673943678261315884489853436628115127249455123404475087387222182271042701768048969744685359109349374511319749784627527996077557334796885200556387168234594063110202680536480583864291518858946020442536311152490657461663860764036420942814340778726600721740238490203796605814089001469810904668675810666690868884861873152937719300193889234179997541674245790499423935052513535538153855172731620493254643010128108873696096910195274761229605303656688834136780493398643128123065894537663798042798322988050083938223563783106868446574897913562795678411779998293558381564137602582708259208093433847557875201287642367759360260302316732300488284092911159428927101924247252675794763181759262200188464051388720257210725857667810783503921641023052681778864850673997535467543662786704728244035871284516208087762433696607073560334444751757877348080222668909436008548196643087103959940770104585829730519861559476935223815210961644531606989249444909820080206074126007746399512440502132344499060512195149357537330598565144027649851278287037292644082939556854072789001981226927272657265522327266980688005921682490380508878442141220603131756861831928857924194410042582346442642584671193388958819356821607105173780945688645234829257097843035506487481529690545566267611825356806848274518361917992487088252394969682035959063324241858188803274338847076815626554497959800385808399725885708262258822524408308638930093617859714186774576206723903064675347573119692813201929658220241756250757391816511536174913345680035512671725353561101039369295935008448296581680539281628375279324686142985260794188496136948063335466866212117197439175324291205394953773707839996428553078156092831386481292019913533151379854168395084564857985822866063571624612673147438716064443798094958115404095747129096901770781539347174820453193902069413262055163850896686877034630784562967747703524318495981654420825610068195598042566203615043570187363071057165716946293555405433917361013256849769059213154339368996875533821455168053474795696837207946311389135667410675432181100962259019798849432075613775575484066320427784934661018749651005213905559865094296787740714504507594663068659327416457452770002780224653566620662633378443824687088842888430421456704901702399073789131530510378233450850082727794455099032107234306885751946906796839889517796022945338440822515031655960358992004975352905216479057779628475978320885957060108435264338481973743084006100272096456926411682391227038897093535361371004126775538967152797617856924618234701130436472716149058167709613910372064686624527615731607107520115928246929675709315966283883925696959065359428185882628218756721616750839405131408645373181969082060572884641521290452496293864407284169172124009240645518299067022011282400814987275543296357906786100871181107241322223875235146627769102966329146278147569494914111871149685453840296849512694080907056920709961800590917157306311410413942983854884116010918936501878110020549966988163043499368013606513957310105600920898158401841933305154027417347730684913469180824585876525792055560930057821673837310602629092208887875848111497581680732098653504359613689153064092174583418440106348495794787094662318221173279198830205423703765950211138780442759768163321373698194085972436672599820933373337464379692639582390383158964054068759591846267208167282819965164906945854673362799050523602697546330869658857220064234931774016117144268999810540104990496544767433539506308904381904341285670644033041726433395755218583160654772915031961243310454870807219338655478285939382778018652273690013385261589601629328023953689780627332382757745457875341747215519888131008912807961533353860636239563446718112667517044703298703570278696375257654224841058844447846246147333706117476331349169627218102267947303175363894905225569446937861458453680805554821800290562875222986133986688686762317671652550919221172780433278685339466599397543514375442041602598117821030801513615505940765957910911254619236429821096027534018906573901139467070727803242506599299222589211802596374927837204828915562561689834960297034968057648528146004998618336211529761481968094004066219946570673651134677803297799455738343008061223347205690189057700131293360608925471830507649095539088644371281301839183263743155416174363893636000415966775811570961854972364346249460398346383719790469516218411339015464397930483834490785889656841165328212930290341136656449723865043556989772167710856176168284458749435804043597678073632503337633148653893824107669885177103115912093970985272833211218067088050818919856175510309778721271161822410540521213740533091527793317063493546992066915048856030784212579651890090230889930162994909851298400356715653128125360531302712518770335851583686654218618299967683020726704908289382076743436940561545031240438757209081222713061240870489262395274025916914105191131765313194805719028328722888428533953365824915650143266311071485347845053476041471140277746782193465373305957426389646648020774738089759646165576405204775281842044627393741772513415680074452965041320586102719328615252098910437053546708830359691716897226192702273600617054018093550608779051135101588945312555778173891803295676250632738583090886159308615621453722141322242527092511655330206815925388117734562724340243335438970808035376860643425026707156925403881788530229543454999125105366636993866445047537442579661649808854737221648103913358334257557121227981835064378074544259335094298817850232362288282991223940666126559400817010986846453568968731563029269999704437213524283919366892808141383170371543263758515471984345549772175846840442719938029325120712940187685456204363300312036101122930041525341250249924822122887060966614714020571756774107622974133715900690580944044197321557392118242768292756985787422444652448206909073387514428412495429307896563007429655413038989779264540097242755905606590487819327027271200038933949611453548571984107740329134632558272733879873922335418161233861816316985034512123187111372055719595679466237415996372141055499848773780911110491757759523446022391171947643387792567919491821895330082257264745446048030259336468705825710497502768079808524351892140481093047365581675512678617457197653877815422013312669820656160776689023288132152781768847928454368904694421673086470694636505656883986616267086503699645008956815557725794850341525845602030524959680798466731392651587054765150537452382700547464901975958628468134175384330447669001257250946543120650490089660563457437562705062519778518530810824037661876661935738701279867241880231740948329940155377061648885336871922549832288402173005292182410329447410111881634821033456091360892335389653019321623577654774411566508744730169799936863872310831415715642372206896649759436133042927896709933047225485487060431018320933187453696462572145037185831415121323020795896243706429092990972625006636802122981709943015879527100202008479629704896876831887266525228005094224638353707546343147639978569745342648799640725342648300792616129943613580101886278923213823872859651306303103863989883513463648417369266711217266504550680980404030146129604981825990904407500144787536165134460403237987744743377564294331416870283432293557812026693724810049560732728050963655142378657109588804037313274011903452609675571419373935117808666007811502879350717029863271255512113579044430044074700098584142006105100432143408866198483561168900348104892494828658809587187489116474712889179679701822134919709099648584604635226304444405893407834707806648197536530544188026422059416580544133923855131265982508540197325993833424872389559484779687938068634353174761086916706730078926812620324346674300761782553157414704900648907288746729743481013326195468040615524578058422236088557249568117150788056708426908363018013907702274232687572560916377233803894745393594256416839007191099703587836874180465084048213298075512078827096589724546628577486603853661836854978418242961181581055639453134403744120995065859895976152191209992680257747094456246709149123916934953569762831731218014030959156504357607269109359386060394068142504529711666536022019106361036875975309004409162905022507606424055001619042729322828998495712154881890518032809429584100332696475160044932033162234784335845315525744424480170281275763284782851345480200444272656171530064600335507093623002207144031989464378667044672734076407970459775240603919959610663561002103448425365854653498017973187342438327703058333408286344658671700046947121507583261507940445853393615111081424801428202225275991825374047591577715981340943863111224134718209222112833621150365591818722174816345333559617405757697092757728888360480917871390887581168309141801046230760371306091563849240566297277013594349422232501661626373534136608342471441350408457369346108924868477276671277755815850205349183502263178776997317085267205845979229081996816850082317847152155161290769797569677858685316488974108905213108387299844437775818908450433439435774655951884162214659881868006556105536770138976356010793090843879429204610234264647404068813952700546975020876278642522667190228511670198331721042767907717556222442940315939909559187412937827287676875227131974633901510718002863777290791572043955520895471217846483224119616345110940054545182103567429181297202900271189045266692134047794021727075922246203104093597046169765341465806677643746014332656238455113173700762047645092070538027008221608565188144361897243984982515125477089421780731474142859560067835435684852682635985630354600585270866139724028273406125822960633802762909083985556042243953337761585463985570205249008591186666862467039722197914857996296722904941887012804516003757884981942953387834669702097518356468993282163592164924028899822402964108510801380852150633032162357506705534182118112787609826589649792121094392207286331674108059714829337362165658568143072951803235024103845981148147578648259601265434328987650652292217399611326631764572716883231309138163574802803581507244622416835435386554148642773934960315354217257962698903105666257692958566305673990179303536478694482828187707690082867383443121751399784931287353185395431834354755363847650760007737814793319953836911242321966668515987416886314472840743295767928859456554131750321994517387559809698976851126353588141342740317634704256037846732990241401457720702116123146916135664874800301010024193934097251555298323162395631387129420189377374834520290263217827806560245542830432115583810574628095077555986866184587157759175003783287025169630488183417151241866708395888709145178022420426331892862987813103730366880861426078739730606369732821517603826114384540883711311082654505962877175810882572353093905616731667777762278573845887080787537417965285821133906924277681960529139750024877008297946793247076273372098629387361577343849404231391569461915910178320557216951901814399345489896412376803335751024239491905938587764586711176197210433134993029881131915847926323399324097596833361886789899959913445852668742528965233336116369926279332194601576756115023533351494375876608358240758548345234405944294656497484974237477775143036089487663177100759785798713906244338526458153074868195567723565410006499817424731776052307645672292774742763510336881252675755629721706680576183530814085531411627945474074951377614944923573906635769370794299408078712297993705229797124376433527151494857895924970524675002499206568625438958418189634865832670923439594827700242456972936001528458256161892631189347310225447393418998542162010830099692452157879330006845589090031521530285013394180214050537424485489908206245261878576579885973440250583836283554906171614675212387940639689011140438209116650344688833850591142361953161081272489556327896738656228521869775303207082006346398029309493654318076586629863912253832906237451437572397156887918737495889252817670304086278637748912744249322401494417013322561986662938245685907716340536086930766668634751421492516753312137609426610657753349307805740181393001823101616390730967651866910752034943013296498716083335038043022854047997192381899061133782852294327759862021173279178167517153904005855793643318428869532046165412561098899767759619016310080053177497524148916519084463603534045888177257839980938677857918004204777975078826679688435596040895409446391282387350923649470422388662912186041653025624055760968136308148404702551530659855206276902068126329213756491764440251792914860468753920613101157607886849620993969561841839712733732068557957560592052879117114159722110346775656386697598495080102225472145784763646479666962969296885122483773628919859669629393019263387965077758740173056438780007660102333857664954674544407907370357783500333748852166610791975214713389005076025178855538106436970387230545454276323562917325216819905398760861845375287304545310688631954289607390269777910130604760342405756598354531729381748045130860987648775837779528330066320175100790883780458210681048768493016651429781341041450338166130670689120902675485327996507842257058730265893963448897867796017564932885768745783319555155326933777822840391548875516992953389464689641392864834068608020079723707328607622816595132455475799480583525678930433967720439263976642048851517023734521351160556215505329157680997231800608380148861345907223552295560216346717449573323104032868919892367560789584160691673526069760738508314576007145142948726417701940204911919907438664851067486093910200429165466015153630618804788905826601484538160939325928168924099939510746047295668662372825435366129357301932078695897143654218565898509437601009879075401539800107377653285244347386749760310678194140489180244700544022975318448517392060878094198189059476208593768051384634139311511181348485551874956568479384133820650125342807207856977827793604166773380814685072796122012558674588792205610128633604560341845159972353012603334337603323545540394766535917065061159257305537458139954795282515791801395387445400718653519582229672587766646493393886187068319224963853418334413129783582839253960524466014524176013423551040735632678812221902698627265295601471410799411966843624731497133955050624173952841056804865751518940677474775105251662181988162144805392731231494233696252219229109157045378356890024590679676290273843052340106552418198859515571682917675829600866574457542352064129188001163222975626115889412191661822641568213464550384770487848796950190815899283718638107338010980479853121084664523425150950756878055139414417935121931910910674427995206728860725980136366803158616007249471066164283282300863253353091781502540604136528487564470479457174115726784199454055737276907693620044612546891567586299082716458693716231416073869511103655168821761924699165395940622943620075704212712859458986394435248254490601656244149242149307027522576576634624250325786081270424202658229266472795540397193209332534630261249916065020028781546406837279971013833458503937667317703192165782876410333596133037621043817947457601284698400190042264624617301660104164109783622394133795498118515911594286993037336610673919476704713687516889405933211041396725804282225023577378195672818944228381561836062404755870630092070297911389208388097207207037677803684014215109836535014601893213515922864890042059534983994618155200894837864978462247162708168824466663250814060781945701677107970488522820449709239335429817719784933137977499924463211883767951959438431618262924938671187309063527472212748160850194934791300075139842292473353479471563686560972951334954428343196767030355395643121322820160836324253467459433228903743324879512897116771829085623488123104165372556467862714725390526359635337795071599516745153861722714914564488566192152807221358681563403315077867664897172143556431601870753868838267501798817182426031727818209773724591687806217544620337036556042968531018098630414427210061395066765233605539200118545075789693697676489999754113995235196459943720423570022168153978081549520514729845002750112926041968231013865573122483116986525468347987455360276371594983598781045944312862133628798466782956899504678235298760509465785102158455885747671432583798120247717911206604842020868976415412990235716109238500056213828963728619669994897188420150331943561170760564519818258191101147565157515753824694115061742227438381788474144715988402418584953139132102947414032596862441195286578034764844922605729076955851976174537722457312750542273159226819318838154624899913785421625495507418883192341385967125277813493307383989388612694029856365965812352663667583574934091498438940048581733415230193247764362029867795938566146930102701301932002054681755625284037001515965281622884801517311611023203293713946813745309706067319019719572434571241137382171918712719976862027241846403060936435829936335821365729769156672639459050601429551872289339077144521263170100065315788432204963480907443501319474153211298094209704333878614407784468463350911146900146943432667953426252897374463713236562112016716784440157985237224925267246747953255096257669392849302061866145766127131962851684299728620639514117884826223971638315761530806105717369421423921607347421944369885631366846096075083325941944770972898523908577250467966592752072877474762219479648458657207432506217253433886500302140296671391664367341912790367838788752692223092661641775433416337878175118886873366653042693754891805421487876220972002199148008995870143064623578021458010180936453190139362401939579217806094544547006928404051360690361229292827164817535826746961765104633361743687764591379587557813231472938223801986976659189558370763588355456656853887411909553735509119769067482199961817079614798811032007996423109779876131714376032732809639063960489931206225370577134460865757928285022076267988807321279818556349881075512697786932316313495450656762411237009116036773480218301912362001832803917073918756796151092267488182107751894070888752607498725641147939888772086205853650092009176876163725392006118187400209559412454197016241777450964990408859126279552045419488296676335112020501026531440896445442350148434339091806384598632628529524792989767081074140033833797437004678897650361332385502231394373770270564107834852766224321258618676701154914328115589405638172353403284785536383249957669684347437810326961812133666475528988499491156864218314459932183492762144757831835443098651279994412141228013513536229143629112726184977619738467157600241700350257639016237135637584955428054259369708108621530834709851142878290971263050708808831397247970465327011929843637227400925047596228931779450473596340142790062362519144463042559676020035440980450944450641032619535583696870083454536813979454990089737450953793954664064828652509523917486368974840734151836882799306673975608004039632054930398304586926843839420856028974734728535441292066372451354494675725667873567297010837789934068553240815545348816710133130768302319394097782166027631756254767500143206249438596863908378035784275053568806517470992551502618444544143847952041393206587301291722609891026259221688453116252213390266601220762450672814137718298784083399158091505626237753927297640602268987168196790956333865028118199635875615688798537858384343444616857349012601805660964034964281579605267248633719939895849900053361746199024302609762315889760952130610227149743749749490047175739680682293654413896520242531429790988960470285893169328215473136787847320005735779416211314977505968669960265483134396334449727742029789148700590462996664029756684753397685111778780764017831665400960421913432868029494542293578971009501853647667176835999651258086043026116655797468705587302434071818442400679988366427216183758057635629429311543166226877347994202884550816219633326338075822564859094072421107452001115070998119702960260844978290427467767462159712719325300296319862940630415166918398739385896765078512920924240255985904083883775020577404187313694803507112397452566772518051831179749660591989385038655837571538370386696212294786050649113767399918854439134690422176533805064602826866367401346520475913464967375376045035714456051160340860362925740458668286752709470117451585024869636385973388298249371701720691860194277726062533101114535731182795974268853599672672307748507469695022046279276171580814137745286728944991423937474377749113483910784152582548394914338335349755145368155328299968173603319556858135087497598353705170566188838223982700439130540992946498518743052637070188176840776935699743006497683789123619091064835448266633199498620993210696780029995683193161808665538007933474713826746148953884077881011849934466188872812831129283413159505018883816091237782910667199480702176257763634415461066803701218724791481228999580475576320018700457345367539364235113697826741500702302651577524807100540456093367901798982781201177282326331221532356358766027634453863581477799063248628233699038611971028177551708851690265348770736957044091471691241971317633627815606265394949866258539706902798837466372607968547099306584692836650922603342497769484648322927786299594841208384404569504410999887076670356090769906119402691232469924269621761725382860282969860041723956041826094816078246661764496505984042628502877644547405224711436116360554679839674281757263666126992267645390246778008728866594016056127665652347672618588912833378593787788643428243622800085705613299305232641394088580003539938393999239677165055334702787952321347084578875945287535728903241105703720235434991822887730688675948297663497352649805374804116373900516322839814184862461807331869414341990967520612764006388363894849865405731966026729628325108691837997958835556116377408383519714674420646089683838141627212810104189306831563421395698156308054800565334608546413997962522945023957590452499027732474354119915989194206715884029906636273881847801657144136089907433593514436536550614415211350440814687615357618903564191560916399066068420200308724307502866527738238362434622954638803640580747611580181962747275249955457374011749080715854116917079211633378503087381408696696733054424433229896497546845351185164243282075105823094664082384371913410704040811629282230766567914215069058306303652092547230500771108288344249493403877534183209449748451968395258348977800433098939210767392484297533084615639296656272164119415374295927545268014354077540644249117956420758876445604036782072998241629607715958720627798966131911123215730010123079493833701031567235310009331221211312399208805616119760252922890856478436295799713432908406219107302278093487102772423904694411559326021118405242007213271039174698238421900661479025076529255391259293483207417849601209162430479871489026905994629686129893291908061469913836036887528410256810353413968128694274008304853629439852442559510088688259441426878501300932054661581399788875531590778890744946875889764514405147174887997958089986438538632424369201204568376265513523459986524943380894207801828563710282598635522789168917693574523325029669828234908584851902688225999702639240472844216317304382339236247519705391823051769097190855434364431630002219484391291163577921364348777276099537067143638227167460323100458244061797848833017866950401814413926625534952617148667870735156717302374479643611094760127375079346224126994474532330115205724329488329028440851753262209779187280829849251020738772745934303321818285591232237003510624618019455811031764409684050320899384624386065555150809657511164929084631530264754746582598731880938464127807262567447351150824741732708906620023032092643439570341716241170225707704175997477251654608067848975381475433056937506660203212838815701368835064857495348276183770001047274900521844849291893116479940145213218832265016246489918424797711622221630465186132634923890890246530574640727722962121240711130008633413845924668604501387145151329117600758892753258093973347548876789599846497753131888615978873978631979143528740629140449134450858316061443443839659206731204454770658896458273458055262362265015206599919952397167172029276549958402650680652822544780009372923734796649758062532352851362476144049363338187866690923636612911309767905962101013455494602104386795630029023763162505590458310274935066319080529783040916963316273624403647194362212823988988955819030212731997085060684561556802916491320291043963359458711305863408729817870170078656499129325671959734917304178616618234422606412188106406678232117184587503723416001510044983336677387692234348186561416139101329068022479204416697499700369685345815581732020489254532604198622486462509570396266047592868825394534661469658896675082651348409356836348655771342623688306614353207059829820678424222467215972780114292920020206980069430480037788487103624571362211819013345312283697860126488038512258827887280442399866810527524003609170840374378078861749841357070216909047115097370729630234232469795339106219334278828416903613402263185313643945614067864193453505585870057540476591195662016143829165076784660018891337410131032300418106551218442549643675936933967947070449911166648952645208924322463465182391005161949614065976390075200303813352040008832803085050457191678754102039134780220006453983661623585592519779762791699563721769798703427839211392275045856816281147458161555749168315212629200433191598145830427992411739336229785104557213905268272535982305138930491935515480959049436076542567168659184684432130700918980484851402049010685434277467191698299756435812715333106706795548725956482662975023848486952545393079599975990114455216517479508962587430501347454884907533096388182151345892989928291023482103645102956000746735861087332030551794374343586327138455036779895522385241234684444766542364999600535327952814739064309673138123623483705899348632193715776097316216690843826932242576473309469113263975627711567567175955223939926677219788662925882151960446687586313025670696066056449122750924444854412795775816377789950597249029067936682061985388587093517153684942499587142541290455300141989470779285203072129347209831747908855269858162112661988816482178970116307596464419244022343150511733300127157444932510545826705327014558841810736562936445564078024737917017253174310925393717838927983427436606964964094351429991562783817077628005033052399573276570433375279034284794939079415954207060874706939010968160628449200195442757501663223845562268028095074240274288463295878732563324273326768027811245114284949545482311907799869243274886261001542376229925424940758225367788727164418088416217964259728711751182151327352043849493378150746929819369572158062276207457512873223989522066662739062126657748077996159991793413954493560890143096703214271076737557373189698352680168627042881411389533059842059654890773171037498971868018943846258738441986212049297870937359529469312876053515699465935809121536490716615971310220744530537144299815156052222100185453244469827388276166296017591616512375845979961661858578043671863300012138315811198175029288224697511604986853483687351692867351411587832312527334058843353337523097042257245671703845318004326307639483797692993436018910983286162639918234589451033638018335620796084912646718910020816490040236191198677829896056275133266708518367267912133133002428852278672270914522278830950926167889106913461506552167242839123178145998109371319466459431716971714223378894175919451669452914164385906258569964048281174391633000116227234418973160491231383314987435733052257917766362763524315075425361528170172140029846512761930089780601409521882252305530973234157631872213737724672405510623585556054791468816020489453189496687925771321191066829503157085773364582308416103683692535474720202727197225170908577704937608077242707025027643688418974199087035299347780743258690549157477457615958094936337990348243612991633617047835682842296995208977731311129238166019020751190959919301676377827248901371025271979702174181687184777269468183774864946322214665743641272416915320702662835099773520067610858883901721062194247990756183036846358956079528501372197791137475553414236418873476957129550492059956723912139985510222545871369062767277070058504671090942415534548833134253653072395826286183379555090310319600530886374279522458976274175575183495233704152852714980393244639302739465264781515001415624309088065622016257476070107262072514510277950964749020842470871676608963254510233492790063057714747917145886258646422576140636925064617987416160181678277123453186552665234334831478282602850135770369284165431949810872906279016107668725573180656077406787059013323163777213289487640454806110739995862871946052338754366891606147810987195838360140977578534094708594594058504968406165464399780860395902940479036131675971947235772663908911572628568101246040443562513063190752039771785357346566244082025656979733622194089323743554382562330290581438481767958997385061409507292703627188477498562325894170801908634367520541021893087620323248982182038047922313177172684940092261926640542621865762443160624322384222346679050512217208927467344802648363534679584838438948377855954500093078015400736869198107678681932764448610582748464112403860658561813756063288165862043766322973242863076991098997976712404639454136734972319759413781433749195848197751628746391898646601544965028965259045792023094094029500944831718416598111741547773383024552296845181402672395465404002548729349448723703785598275246437769068178195371127752634026303806987420051107314631618515976603743305285957773255046459381679286546977584525887432721943249693533591150702210302612278192666589461987510137120513369814685948907851775852466086721641462068696426996162925276833049855975063355261461024330863719575766412839520005126542471198218871281789795353573722589372577529449311794437124729352183312779309295764471749996174351187354897637650184179684907686039196175113455790845295647093179990534933167479351067276708763036826821723590029438851518639986866160534906063256833725661729033414391315901867666576439294632816669574906447360795966955431194618915160408524710859118802892967704773883825482012642324340630822984823847163191996547569240607778871355938815789532236502766452559116123109416599265208573075225626893344113033376816693629883916759087449774254062053110493186704219804279083874233514747430878064592412289161229214345017414324113278321481622227957032781524205894257257188222198727479305353821377594780297176470918328331936616651241336037101997969521931353064545089128071113500763972240361331057306792647724071525732473548587480799049892197718871342698696419351222066964491134451352448187562382303471331035467240606632887621633211491758993671086871456270167461250039882361336908221045453410199975074905672563646982061577996299231566869873778066938982635721068336349942861101183358645136776264532093319090816285876157907880809723128086003887025587840112535619888664386768908261515622597859961546820081525051894651700027811511405466927480126212111205360506639149017911766990657858990695405548761585854998620548569900095502567371105360764087785965535021985325333140086291623390143306322893181140396876410123003084845646967314304612801071920762108041960974190898171158326780338432239747625129696763188612073356971307347788602383119682665436894144577684759019490457813339165709168708422609753798920162904123707561981048494906026599408141599073083711816929826492844694191738140777987155701780840598428721406950872719849343817797264193624951287783935413594860501861342990858243967580990534085583009989241353104089215693563372029038539228071360069201943464984342060960858376375082004471508429259650214242828785589157888490291709316425885493353136385482893040519392462458245296180853245873352640155787463853669081718537938813114038931208356451196543420897174647589309985945718262374535933518192190511909107078015624957629387198268697810700241477185813243241290332795715272314679951077188958780168780595923704875529551970214001592790338533375889338006853892944385389876747023898519810696281700073846092325877697540605000142499469284175206905488400552151862054448205310552820727392447947654725405766766555812823518006076227376663834336079664148156530564663459663114108498303291710140924659783231157783715307376965061073356597433500708183937143053435900891465003559313531721687023150475632180102737142174395213867473213644529863773812581946061632135707398814598958949033080739622698235509920531726568448426378838482829379234875551272009867374105763612909228124688953033793801254704085930773380991555973707436999526515072420754370791901265748327500652611927818642420407340263871359754307092199804000621039941919163308949620361241318546084193738235410946144054858081130674975983571749644877111275552225868996950919370931991232031572186390025644636300804657301191807217883802019967817834684913195452646896340558350865353060785479053022433901619466704212222390978823292605410622055425823977230160446869170249601218133684357204629574822324180075194503295178920458053574167785413416237694933397565487021149260922711457024136220005533417910346347332722510929707179246801641139457663027037728190573371643591331154966015674792413171590365564104234242916455439285952313941345340918144711197936275224909708332456062102285901346329329288258441543384223998450931970678736740811965930877153313875476262632809056483880041435097587329657346297674717822483573652043512955441601995345454176582387506380087845792341308699383895499065642380597466240995388297707443437460130590434390418444002717318409526897161574425115586368491792414886588363659584324833080946901344085649791112803868123132484588263873045625999166770352173855650470376776356673962654531972470555114481683359394399819628786637352115235441016392547265901338022749962184293745631676542435944140181248103520723403150428538185595075649279636269480053189340578201896608614278578103405349823000505120264014375385837040059603875418259638888338145504309375609020808546365391303900880954849558487296981866080893314457922604148033144063110349996206074811511076835028725049083343576785689586393429438009753884742251854838424141238820753662079749155232979302614320113229147305984080337456456566594648037321692221906510073614146629969405843169157289510635089617190444140990370476068272419481774060227730781709842181559032615801034101477337410588872992691748210846874333836391467607013588263287297671593485225362701365940184130354107217702460579669189768346408142255234352802512205878623125658561426591149214648553825298031366249454048276039272914398374950606615322210360755755460542528664428839050658640851059244093215123511158184961150261940974537840621198873019341684911771462929480927276506668346762017673233849896205859351348960382422970948059014796237928211625271858549974322867637273149302365297982494515690829501158463280826028142159905268229413361055657291638387563488626868855697256186573063053713082368803334154792650086489335799974264419490247702225528651359492394859543781576404280913229367391316025952005417284865832050588911261710104756209735301491105957420285386056869243098708029942357054277794690028774259438958664828154085304293674915969597017283132337889394139075630063651060230068271903665992879092120279613621774563647869852300149940641883463663460101071395792140712508454768752392545310655855661804616846368659152310653278780884537068756429564559397302009814516969262106523646518858643187477430426852389992765808682194947681556677619853295202995590867236115245877620837864318454628719285169279082479597673864057029327120799498879520354390350963263618438895083277760950958420490681052397318843011779401788650684655570606737656629148956159629873690123177586285466595817493185852721155644685786532907241327147738414999275146753197084035566987500244637235508759392094527856455866321420297855184493735588436336126989165699016341294395245070689497140210136508591292128267377808128641454145669227422599908963160649572968660745350865123634204706298777477393898521645934081000209472474777733065657171764526345471423440235330595445047664067617694409036230960240283627566389817273715767329897387808467932580961230272157406920215571162654418509844162374960270686542436374848907256081315764244973861083126962587823588166475498046666052204879616500742626154828082273909596357169526618693659276045140432770769273115253429947320138580689184796624443117125630635416140373521469406437306601351808260613985504137976630147308269468638169707822481791612852356266332941113273501578263150790106505778052626451094812276435506401886098257118359364493028798038189992328413595666523391221541905116830538080158743271520113581825794861978572158991286800491499585821713078669238440030532924763485030830449753501290693077935627047276074009091274698810554075630698323267718396665704004035730723046513874884294290066584470510566844788474088872296434679188710060734913399883091854676229064410330797894509946275371315740994191286867052792108317320292486193055132330753669186562954132200524531639222498746612659657719899509055188112359228690860671056705435247616469159216373325432787434979585885055480495924417306320947769149790359677732697301980697748893996321692496974390803061452017285786582691451419991625350268904232510744182040416604643694819685913772293712975219487031521638604741511704748276171416759364428542301120368244610969025453650003560100052842010638878614831266910107416788811619608819203078568671747417089353859194406711629128964385945274520053073181223309812184413794167763989575246206459353200758366697129845131099749406918677732947867849640518818052057075469890118466726016558865024136097486961618168148734560011326102663211476961475194618278201044498149813989521907854809865542754645884348690608108269698868406466122685631857366429812267388776865632375184051236779617644897951329123616500067379979104671653482055239760916462834727636988489535515316750073400545546995919382124449298647436085754944299138553672225904971000573961545624460105754680432215164887722037406008691912026094683284896667035793555602637422604421676286105639721615179184996774564696182364877075415335085832319284481607547215143494367747072771471709634403764629776912543994260410524372435870255499716626154753999135198291776310245844251421792830350387164416014274566465077452660307497384196081772313950298146214442842251339567248797558386222418401386795658919272128840643118005270447098789571363000577990392077036573343227609945592753897804768355945992117351740356021848485953013756269912330049249590820949414729470248816895976980795106010696423906382882581835927479409376555091504894491149559189444433728285560342535208616727521620943880598775660358858368667248292424632891459836482910137254944501423999716404589898650340729251596731410421249162957537919588498806319346787723674520936743548711753288142037011831657967466498431555312666318212971908804117813122625497913991176952774029318194226175582913579281079458140006977504887135959558447613502116840704065202811917378952260147404264812086499490104367697912447552070168281477934618891034029072078609071515557534402562488393448336444664202194579734173738892154647993823230178504646242985273748018526893682769613602235783432589943006065002472852479509214390578718744624501873171706027908642380179272630182718406719094514457085881588585943017250879232816486462278335684633601780033209938437547671805367510056520275056735011642632551656087637483888913693823749964052394248731705887386262566691483210876116803129305756980116909691272064493552547961426239469372415898755802902807811550666925200710603795578816983691965167231085074747948219421361290038509139922178405796235815839406534387280312023296123464923516275285230866515678965177524088901817694999426671910799251442903238490961949241345009250369850209540858545855585245903088683972309960093909668558780025089901607643676508780176963037797829380123716918196807141192774280857546648268252427690779386170533314873323140759955983668191321731021593868141343646321234994901532226584710186407564695869104215169862448869114917215866374760391306080314718125384626095960831462733371999807581738825323731170888793140978941335996784426278868566725851207612682773956775067588767009411904732802608085342155937756740231833548134236831996243368699086248725437660991951243270712644017980918971697058445248784527147281750763029537080038436577046063596567659225601075652437417688786186283384781721848250372139636222875577812200195704093547180891017185673952413205703226088005913800337722409763353890427922872364020900657839543788109247185102775436061605749923425957400982268984896196703728840814573819013091594864720542157913914712371898044909015593678098675741135309374833217256861331058437514762476368749825109191936668419317851853912207687938855550557658213994750359770794904251302381538097810667785290071008755812946909283577291640036028678634453773999206368871796632163773714409584175815020015363639667149506235176934244977996138219167373765686115752379686057775946250051841005390757209841122562302057060123664752045362857695194638670296856513369477452621204363750542798028968235714126327353716618022647148872818761527087295198934329120705820034298240334987085007925332455610085831075739621701278481198294446758301337749524021920559894322418736008838651320976690651676572977307328498795245264366105552457738465082626869126222313127719018213939141271736630030490894960759230800248402461654803344488692436905919883004380056588888115690062600452628771246290780962054877019225768640002493489940722612873879298017859748157988134520344799222325369367012665530285386938685092532880963372307147886468318918081571905229318590107022259974243828544817941998292848671460395411871837658491364527000195354834652347585782871175619348604571455366362466346746160721537203877131131700172308035697412308693644803294864481197675408613044632755531260029147987982647681853377984843887489021930116996974866431852165258930384289298802415928044025446625908309503433222026389107488602666873711907462400120061149682254941381650063300388497916167637940185447207062696989216918050974267718403223559429749825534312237714827006664275983449625736157322667246956797030250297192400142564964839901186142025725943676653161121546276652161987532762814155665249979787515018798476147293242408729282786631616646422225318181671712237240565199100374183058156308914536547158479578623842443845536505940809111936642531336989049997571058047684353044923704331154106385741770973155303675206408702680236228198727268345146480030415721814872360810495934995739823635324040587894472530204659347489349621399424636390357663725576336399301365397667328290672351418438247530565674059780172461829755865494098725786908050770405897914192050896302829053273532802661426632556648370681092810139028726346967397218328855762451389986996188885677083468481187208900099233610424028006138954696271246847709538349377377183513140180388480681041721222406560600051943892710090381700227847046631538958396098656006979648884763911669920767169146727220918053119676766336128872939064648376090312399794701482843279695028464627997283889666596146937844027057120305511389946355627689036012168985061300128851258044289395191484757213614079300105442931901046467321724612711054233391819987473366803450303537408224455037410591774691688621530546267910561502665122948587764539995567367168557410425409832959089591058346902884031332882612389088253706300386695048943322354135407907742806158500178398749357462066062626790651633834119628633242164136973628719208140767143853131583262419468184889249833436260250529398078567792965945283821020304957571693946212349856314998323216707013649923219423733859000423868053204876584153870573275121244688868722967113101753958494810229208841931802668706992520694832179880503310549958877967752013512265702422371475301002021329074172838719468278227485074836061711529085317260256540120193840796700172555434565611151191028500590754436309741839492477810396293983354616476409514332784355783055665970839493833875725199113415052581622675643841808634234508905914796705556834292241676284655400889591221354811368605244993202012175029602874719753756844386170604624520053002022592011052639052204510481509782227824911282774919667532827336050326695098483716407363042256877474648932106645254678772784758268270291164294970361006248557396150253514704720120796426057959509482918231197923351010244069723210696546577755391966569504473059211621804752932660785107109662970790687076765815406093062473155329901563173721556166601318857007118408983228283935745958262628091030283458615562708483078370667054835322015125221849503826813649564673793644143339571291029591301271374973423510225835799290247360711055534693404440745046421363747482245262277076499816046652913622770574102190545758344673564173529671635516176934168889229660735376041568954662529726463809102846475270995913828049905299498082494532574671639041291297224380519734526469889028991781399005497721254207925466091607466136866158139163803400788803649476927851076991878880390928899530605102623596936140519638092839649107968422709138766036433498758565134716727002111320093495903583745172076647958262276887087941026202948693012699083766114071835010693991957169439505568699429973177885740559035636520378919624779682365631749616907570455987624534893364427967141067399063241483645646998729089500565508145527183821637298928452381081492692396505268360269276896666026670830124621670081655262887726207647731063063307288814152809146213324266992199094276989172170927053218238083337736161131913616682598303201179718807201941307247889180665715555830519825852064023084073192897417088928611474583578350666803279306999055599110571582330714393354378922339959683993724859183739279306312285890314590655034072979685736753681527251686106690639580850423630035541203968237164183082818575329560654065120257944985441404910324395627341597807878526111376902267671228048574298448808775029239415265744853730904794871746146989487897355432048584965022463971985548954608220531598891168722169821738180267337604079949203800239660145245293008477326473293965208639443782572525465370327490198255259404235707055872784110047942922570881654913259351668451998320415794968504959421947156688025631178347651737495176190727757398283081996688899285512608506450479697320077132263700465503104353948155732720973097910125733063322825960497587357802025893638046139212913064664416041548596233178997055012774686112072754492196899481554835318391596830075169461723396518581979186154268025680911089609860807165088005533127095896525154508787791841741987417940711070759177390887610422648677112907047464379196898129719166662628345110723751282879621565853364346537870241827672437942203354588160432386990642015724815672458200345902804554735618402201617086103450170683505583738302118199191814915733777675718560644237729229612009601261070355650736958196451525054529380542500098427978127350689954857367276799246326492529211047948852410066869702329036049604844770661714480438948354645205436806151723224420596922177696969671828551221445161999329101258109862600499747901026658254034512016592547926698041239663290565507696827985901887568924077233647571758653063955052157725682435851360854380792279683356638610685111003029901878024954895038272087851234525533804132471315570393939813863669133142224081450631782118703889136350440769236831327530699368554207842389043053840447702459982382481355226357752114343312419683662472529895226086715920255521058312629417194688759890582832711239510483483546808849892258450683383788955043399082824863682390763673527278085448280324946396352827920600178574488271700972757882801040082833668016816106183331852807435727390888943318441233585603157800327706219700670625477171339247335390737515840727367695024460184713887451638488185745866804709966479272337437894573361361585200589532399858361480773510156596711687333061276264734772153879471994622098216373922063111910477787157605944211083374716538280391364433116732531374965631708133709909767092638064707659380727523444024073287720378373828328859144596908525966184235960737568113802553258459289340139151412198979034929632537244748601931128343347459443516817137362333704952335858483824824711823285464551433700472103269114587067209136496877856500779658939473976338393160494212077203729477762635394650654195027354741473290170720489966531534193024345103405204463694665939174947997209846149189957682079166981438344996871316155492344157475687549624098322750326450890472041892964121184700153046234122333294259305708122604823313716865541762527085435109102000264152761399217479301149052826708008508027192501293023551996930282972480187880930028828813744981254412988435285968450502301432412547725549390066393349056397521502854139481129938657776990713258560350073292392711020649095576962009284593937596453189575347821694609158541280241464140520021368626603403969117725867290670817864717463454546615573460486676636504450804380710150237351995971289013885301822528120863310597447672640792069909894361733712915639227569692464960824760198587171703795872174823055002785068338396300933038374245757066784276761543233591917595840809649908661804607790002524447344536496345069451181377528457820711959510730347464713369938185600895976147905487201627201815960222824305495470288781856458168537957935659644820205073822446055613813471168136654698979590473277033713930038900578542311679932087611954623960333497710886551682811873653531851641683940884230489674485929811739762661995719265722545678564707417453243692775724705187248544513508874896794528813803861300003758645479213174338924090122275921019052583083532547322529543470601853809156279017657345190016811535902246923985533829154170642280134741889173278272782107489377570099044192582832314591757343816767743067229380910525194387024523076395110936363367243228823679746426965167392969106532103988815875055737945579080138107690190659341076460074200381545488344479383498076459791403693939941034500059855640314853487055134333365043018901691653218917052609624861570244686191360985040865877420201029815430719103637376048191601684213706793413833860862927576625913457059435554145787208798473542433590193026311749517393891987862872363753653452718656482054702437209897090690494374322623808073520745648657893011739091268984931257270133272026315113115393813007968213754192487474811472740954505477833962239570395976672550440842070851289915606068559870726438954789962843497344971305051953631881528093036851523489011572128935810657500613605146070677763518695963151577030823635689466363661448695892226012666047561761604093214034236899316284026771753286725088216421972402967781667996501313543439443547653758259353206820609905862620131563703554406259017409374543800777494027299927138492436792658883578519397484745515335367232194059410327964592891850724859242901822436705291965090485343719054820131159575092793226084810303375104034724948965562314838761427022865397358542047281216282693286990289141207013598138481840924717931537305443745299749270143970977260095214723628527060474022070704856922969381131844899055208680261659782644411550514183950688201383030893800884846267452730294216267098016559179715980472623360504034329444875044702372578648060869172981832102170246582356692009457789546957382069782684327972938756941245102151804071800264158898535429131516985049401815110352065531350920679074960057138868253092937089828572499824747849181141161026671819070048003341983694613315458688799446156349924965027730156786924194588404239372976504297276178532890386620694771401940354872269102534394236990510501478777125753589342547120872682144225140937990854854046420584040874732970232225033371324072888234342993832807427708284834756799249651904907803633225010599735089713935778846990029295783969125684662108631447090723963272920012469835466374015480542555981730598343814216014228002888015801477842018087655476047138736511615374018346975095311299406127756902654983049140428271137069493662597700461085422282603894006096836426674123562902704838499230839985970076218526392293287923804750059384150742393538175137880563608173806574641230288265524702321119659669565468163897527556374405355308477435592660963911107633889510089027208088934155797060732872929622321957833369598681686706994531241113553684826657719122876449982237030515378101635663183656313067774104112935472842605620567226164560850170212665474840310052189585420544532209511391142036632124199267477312497225748003728951163479464910783269887022343060149641094376069309912211569254930574441761296400909982138980844335661874098801414067090259299925585300828152555562186995569571680005931305881441800882376006803152911853324519229001126742933927960806235941284459238536656096964028885764262183253562092834963847326609765202712645821893797857407904706677613956041618826290999461241126390985812747688431406955374010734288963333675665194746708098572262064270740669788051319095903980443905978473572523590878091135049231001733247035112936806406454803182968797404723158697636136935727839645288803190981149739362459414819462759425528795473153264559490483649321200644656110648149315039096863807472952033200415895604510846139694369221988476703384629379912670165317761453096953076231176752007682522146874920385454313033193223378370908456079868864045972218872758355812678648110339522486754197601192915515932988544728079509755794806478989704603976173470577782024929443190761610243474714054587434383841400333334226073163603544704445937864417947703764501202867624342683794243917535471548414361691754920883895049619222348084381149188263678650369010970476791768976612548913459300867993589822848855513594460451435221590937031308947552020165476254711907962247418267449115873634190283039785377845053725598057104951925955575163357311672731062353622833077097149665856205377551636985402969475197657907398892822462999846674078266634685917535547870505011211180244420048300254809754164407535361136585514541730643403619173213251881535986411058187295027891550254629378450158330164776119652249862402623019634943310057402580317870217013577441761509902434106795498878766286511220285360801090166976174083819055360417775452514913895919192514592714194803065455110412931811104253064386435307597107794263065839344718685324185029271837509614837412418646388465975051862259630234663494600824222973035185968605941774692777576003871434945495538912172118238694637822688222735745184136994767603343610820181722630309672958268049305753050881337125280688586429629180583005858771415248093226101333683924819590111693120667160440276122498445030758067097969381210298611883283224782915661647151364406748261145791296338245797532383602965482206664498266452204474841016871977854200528247180975858754248017950465026929607107952463499383824770533833480739144697028716054140582006942938166156416188185704762934411912998377939633591288859509772460812482654572342661030228480812140491813245813316001823662595164349625046411082952746870507416778267104778682518680545504476849547202709454084431074772460752522451629142599857404695322026723212896518834156927223053761531197476025494753828767161374837918432309229486017766186722418182953323859739156402824611818827928331665540801822588596798961908615264644082453191712302245540818153538615071783032621670876583289965979270906946326795356445186815879362802488086735907845477781287670910021324619196337367203596100689475353632520293682785092116903971145930090565016443269959975349858078532862831507573507406211844925161674108727965556834294414313281245489728392374315056897661773529150537336222818997593556858420654526444914257642419429355666296945922590817374535472741941268441885349790056579155201245575546740928721350733287081382590272983373449050884496819757976206419700617513309364574919709362241223452563660621034250410022266883390022138101467540725079304226359442983650245108019733498338154403130324970140426352810207665713171295564724760247960369689383420185811725983616666041896647002028881767286446821325760512255180354702154488154409782603324676707994068438159761832253886258658401017705007060608534086126734377490430723370383706341728249995622520198727045702836540820753657025068275579851355662812668783206639274875370461252488047456231618025081716016903948395724770706702534722888416146867228815293889560142412254128766626601398791393843137682952954429821686872775236864208234563644332570185752279955745973578826398925305693473693678517312626149295200485670190096056082823629109330212363903894766147337789667988156310074512565530640666808683130710087814601485258765222109057357300128081257690950233088662558990040710327578978372466790654575306436255517098335757347989294792769040825197620980457897666477124722629717199660262007802369404741788544290617594726880365867382062990265469088134501218299611841752832099330110507743533674570254779361511306420035848074141603173197858969639178190539600946425272217586089854706322414450399265997107313619969165405794993711801148047476785735125656736790934707542408662977840640914391835044939996753102726706516976150588376703990299664119745388758817211366110886159114701764848662699664291305647975167493625829875002458372607788897856826548400695441591880573687342923395178763004715594269442927355177025705112715753529193344552424657458477415292435977570395493643600612629522013719860839043952641512317017834475577203093301640720238337382968024930386341932086082771234906056543686054127201649509732957675178066129371386194353147883824861083764540163490015442043694385954575990884761140389987754643747547870934772816655443214452966453294567345536523055092387750269661076162814436351824525914215058199714038579873803830512306308708778491695255714591001465013127962329551882564717873419317003998542031293209990457039380516178173577291930402554965629785122100068004132300666470533892409155577068063417167223414304001294105802219391340696670234683335100674422418633156748090227823113843406618872413770258230227742679739407098785709542001796655461628491824444454783310908925519036106384123516204196916888871648147454103613716118086307732073794318384740775975176620463754349933833085355824290112854455077108851990807803649884750848580266157709716527292164059018899667094884075286407060630170463633183563351314899736514044804008547470751015614137854294666083711875448542498821947524009602515908087763073971304108518988799961339505364380399948151194759540482758835614208312321335963552964124593514546723951390448348393689243734763553100233727343914864018203582544986522606572895778492711785091393072535611170347079628629431452869105834036320495073421618584713250275276274436604123577103731457793784078160704967786632141274278569341611057758211970398382237566113968923014493515981377379464731946126375411673472357070801524417938370532943032310477520216653387786144547965125069888471461281057002199748292894590299286006218986527379286069325651220185413298213131519451548114868949046276051798214606774216939977502242889649799016100820547689854030935133574617002793262047592999851534795241406786855523780724918019874770717227894679639942732206502930225959885204617079451670022855099857782498116139183996774772241993570187131463785772772552151823191630060900830973164216839484178792785717200989021258569837172060379222013912331975471466105940377193956605240515028342548164297793071370076611730261794220480940254446742740787663356045218663918797018523097449178387792656528689802620969178866947810986540288321352007995022217112521170072226051562064691934269300285908759611070220333254036031477159771393424374334815649349321401657616746606836181488992915498393392501684911490970448643614730657477681050897050664166677299962844098575872024509572142594902353183741740535724001721237181077439057896840067043963857262862144862719564092886520828373458385563846185858449294777855872611122127211024877505970435395804822181027794037257730021688922553513257591232698123852727522907538320829031567785485771504034789821038453736475470132183316841741030362090020207070264843963991288423004481594327504559917343631030624416426223324065811569210181171264736383861096388553721858605794657360148490124340588477221154295826668363574019796294563986348386750817195201396482802355794428940003399548520923559797678589734082902839435678222770378760933682510502961638265151445189035614818311683542629440655565505968268704593312321281646705478331763948591526490666399185496500905384542305553072174528465778242979361022603627600571558392565732494084645874722648677502729504746290443327170333412293808308255371060571332640173542036137655701402961504362478301168876695846996068178870719711688107396845231212855703895061899077619342903428707586323152526976366675352140418046203814214121878175579557680431447939875717833022753838835293257928283704367475840578400053531595646257942919746304445281104086500942722063217939911165824526496897371464919742772191577728236511357192104453019089522595316899718512400739720578308344627875180624140081420993245848927469594384854606207090696768647562919476576921079068747181395862237211997583148280665069002172653751473321047285615026629725556146054765403394110180165310896270785154094387639176893053861416068563417882497552990354635133786108651768531848726649707056785526398334890133345919509240858439865556319874067697202591733051167345481299677242024635153898572731708347071969573200085794195276376156592887260949481286795118893662700349515821065086584191478935912817493078037175415441176151196940181244233816122139615317511125401959507022897432464989686827360282192109377140014449228733312865457514566584115101163330933120239007329069984517952897628908332408223331317576848506369129298781211071710346993145610335132343090038178849108736637269714240954999322294560890978487773689368124205920820928563027152108337875578752926577632318746048082620016929620051749910986234504737873996683931218881154658671166967740573939748023692573616724502032488270362572770576991293690497788773160975197023457840207613625620298146440316387755412835858391756812717578100332499425109582977779819058449918285674360679271200467546438520216962109740226624526366283408971326667196995900334653201262690306053405714591414636215376666408428489205888396881419597285372204511438497953385300681713184549218572059069800247643920046946721986609651293709048495807778751781159162527989595766640329459180446018568986083264920231472113809639703571578689167966414058286460068924925667405783918815814610886077913432818028816909533197588905298473321276686921656486604512376949681309833670327078971663822198147670284499307121638358569761902908811367043522277578615552704703345489439553859241981646930093340461218109028938797107179554726654491315472961915789273225061877236055451610475316769426797923471085171515428888980689002515376538659285206993885706842257714845145348427124823099752454454887473935342180761750719109707321159075890280797189337627669560988029674566495935936368564667548486846069182990336218431426029461464561307022547350626998434693044312066793351651789650592874333960347811535753456560403986702664988557520783316574313321133903350779353782255894014479885766478843362293436137399692911149491834906785329352648825862914304601693372512573119341119074742812227714710859436787518944814610495682921822256361347672374466004476186305651316108954172962950242291861357847777126888462573949861289055013706186714364698097865910106630672262299508728976169083937389787709398829032077512893907455177797753731633423787347367658570200436734736723193143830378200282585864616460814054373330090485602334471130159220491629299977328564920605980023518461186777348538727021341277390137749900331865535267981455893007952129397627954028726965064657899080409247875973180227726731895315627504090878596883004031613035649739719847070407504333201498586523887312148369846056411009589931264272342164807290629766533858568790705705097345157426595529271179304547146237579996065824847325841636237802430929281749770607637887267817378472197712076021101269024174958128868215043051007348746505788172029301836034348107101607366820958681464888921219832731988342036671970545392706326316389436670418630353479709834280750378812277214151015078492792329725731185110790357354709387862242946843006632260966645012467793038345400285124330289095671143272492844192640951021426066069915880584033203771285118634221286501192768421289750124048242163095421697762338416638236487611303744419535090535712367853808402974911556182885194810900232855069830187415926957708105569845726485782454900308114010135087607826773022638559875597448128702064516494839688182920059151207317581306206735957552609152625382742109537691380586023297578858456459537814185755976995876808691813619573030617244359822349980629580404997828589377301840066616848595124234950707824006210042457020460286908391660760359631533928171827396451919679140948960095646654950354190831714938513678308065747337913003593260477843438055816387638439951632611410157735778310251280869286847129379971174566777262589326750778796046914311075270734182202793227945385223196590225413026113644035614398740285794969355118450589982823865476681414697188111233811981183169459486091680314349354777810426107290662666393486067134252934322663434341614623641928073149605813753491154205498549290725271210508478762502999509763692971422631329859117729214125978439709374439433135682341959827060568599612878355156452823693410778509983907929879893121388456777382000100426094726942433215647443371445022228197079382780936446367278424540026366308659075110080170504597809921446990842035873389325705144011703714050122643283749537378523609041470786613858010711909579313042518990028998022634888728637364472435793274385142702107410266812433524369439876994489547346022718082444174057805311758246670549170979190144409511283997329237190476360104550896522064958156112594721210650064904716915450046334710466110948377229314691970759561045382007368642352608498181795312991298483641674497785633377094236207788503393523594037928986839196537725406208319568799232853681535027606420318450683275166969443895967788279161630263853721204791748273889897264764833311379554283046015231326562657960859400178688878193208737844322364948963732146175123477299022843269778842523853536190886831185760971893852518309935114853314049245403250692511961263530348623900040274194112324084873582527408017740265160624412431653875076184478562031016180445820359590274695712865405965929396545471032232537698316028428742078960624969568218869523373313791581114652821752873550328566379021674796791634047366253602440492482683351339218173461923916633495568253372631248342301735656997046488881384237225146667277701608605165716595483325707450021002384411766916473067540770691416483903071363321235686696161240627446169472933839816613360136913360921276736354332531207588131426222854634192240612727919145353510676096681653286022845367290515803568560693670401591344178430884554245049959763576839778192064006000425440888658890420587025312250735164739520094425651876337657735748596468667463919375463509491455580165885946542374504507097227763897611766398846687740268288057713866086484740248253240078726803022375667684051851586543980317660858925521184900860064123283593722155284547483284260859414891255483005506783999052824079120390220651006250858615883205508920843201774904000846100854096678740962736454541316528119283939875908705139051421061948922749501733896024282026146525920945419133181807316676885052486487425784900995052662801474217740703894141512066406565546149420315073589287692542218210237153316468718007688192390153726603059669918985911360107790610340778927784324055914735786513057549090206316604565129971476206913849645578626768088638671281854802963844050609017444859727601777775861520565751368847698708091734947954334148230116365865269101302878048046708423886866932890707084802395088567822060645828804930534538709750207468734174820624809250050658928649020354724566828968519769748691685572756959562411498069025906153904401632015682612947529595741138106508102084287800478829351309117184028550816197486468672268042911566477414506517416129573612643480960320087310824243148672580769909501730948537240079831793024469759571646406655321682921204631827393549249278508829995671676066243399357432090823520559897867127108203839369088010352061006232326156635838507802000998542023848024573076530863642210080951342142341920574667628950746018254604100296356993254764710887116417706379837310859645562041566154505296186624724361181536551915530943008321795965532998167821754229935032407636062923628662774984081959796407178342364389652924388844369453009317716326746673821810169663659191996351601907872417077032726691492326804263155622057524326223406138596376724413687611223718698874253760679106226492834877083831380628103860335947636425690796284888093942137950075394027665352473142987164638779028076436382363185516731502154490909271665299514329597553443060515748951331076908023364392645485938659529973028048345640778017723002507303209664421462254973171593606039474159173754863319696251769028461039573980137980508009718052252671688512236862269312837007494398886561210382108465112392130879539491426281248581201071889070682683400710995660009824872727756257704337719935284430212505787843196592006441661606566508636521566422643962458522966928962071166317647834887358387758778730628259420872318478467495442570765472497649329293499539180141988366416597097225127409489052750848355047202010709142219647676941002981580567743514645959594328593985612655364605438717637686171397010383538927376002928588937033144771552611771889747419689449962144359673694976014699622067073010542145547764104188897006475505677069723189181271133419795489024863901534932025436133054042334578609505236588911818591563611328145728209191264434258462165255387437387718228176646890835865006664073004676977402386555865840702346766804438813722319895045076151243207072304549064832489393974696564156127783375620069911997735099763684363659612657990723347173248730354827759695758828504223610111851828991494442205630449628775596486383716337249526710075721906507193593709528330615055398674448452316799069963066475278528638762344520596040417102256557415342137784253731703941054480330702129162806238730918959141079608537327916356207437430833241858554685764271232757052918255827229826993111892510441594255853897639730622302303499389739030343633006671863885937215476735415741861986635985803488127968241866024869960666070739785559581194787598317431882395855732882011379969310423541725481159199172420282842876534304223655677919994895239390413148847539545801309881786104627561881161212452967136168408892099589405021992822176465184837673282957336924405731174243474359668257512664225901454643505502750451654462945237890816701403498076090870081843760043844767609569219812651610027278856347831756656544117994632210704705221346228072363027160289956480620371464490319600019334839107630832120040166446006131407152828012772030468067958846227814887531984615146261079918429387336935330978295589030521257901152355987092174084513427496386991618769110663776239436496849812985622622392598181877433945237781379972187605499430619330432420935463846381545364371628703862010063729163530178725632996379911202071289090921756841498521126232618046963276756429476396823908608197632734536313189804210048765020757159994390609728562276067387007279428410050336556725347804228803164373178630123932014612635601503728901270172299869344296714830757816826943858985362036205868140152688078361089436869893809962690322891685344091061590837608902829889153185894703364384113678374648179109831590096343249802517840609520254043823246709129439424981802668965888462233160378873305760605294271822132386592155664984250095099992540034966855762325677149238196222707012397996036137033030818584662347064851784126596965645607212103410140234619828697859929665288768326575195913484505580964782174397618101398886672692502382300397830215740832502266587257338609459473920536833170045715583064749667905729126771000702465905634668526493269713501643495766081257552709577373712052634754146098919685758929849288149052081530645868909905983443919808880023001808674344005478994958735528077208431271789393743443384820931009197393471760759081909814007279745714927046778928250427506107667148303659069465893617790197252445046273444562955797818602773459083419190938996268956569394306788270744261928977556650836435385037155017347575355803904123065524242558920878699255436078056018605707737525177157725754989336837114010523293123734377063636763242040096206413042759515072779436248899974542881358643698899775223701530216023932048091857091727954052392300540199322482704349174118482653664950947324587469572793122933814282240438753011691994004091683947406214598318417852205767449810784357514057722631821944253823979375152928298167836369273379904204987369356548958718062769356153763582147994938826967355569124827606278916070205218167151642216496554280631926924259512630395367538859818262240535510527095811902715202255093771558299966717693485618164714364466906313151248448566150041838527570586809136128477579514096067611043722960760716545973320173130150520623666496268227930099130488248310738953276079135220353291600246062858732653233816182031153474616395899075393757380138176880539287001912978723573224315274777197767265778665836318031448272781295164453895131140434817897391185897372784215545943119891085660938311186199863518276617266142615748263847596742660653827447004261680616191315573353226185128835689243409101532170141638779694958436693851016404889386517457311133139021178174222848151565997699979715853029639243750714513377412720606241772990754125890249147757662800046741621891897710576878541282614031214924896836437978204054226849780745616024905943973163923084239816274867075655261531874860997146551662254252457340318762286428361848795881912695290968131372510199660510545132546641643778768520022745306866690806700854571648768086480856548724256107163128161016048768766891064912550802677094372860544986952574671079280807834961951598380812748157863056067485674601770920509143726045633421843637914671617847437913141570512115940517689853362198392765577403008855861218169058709799383356619190339397273568272828992721581394270460034369252964075904510593971884365352323598457492778899345296272559329726236370025321617039888415338824354728020747321060727745571511015155791918843579741720038692707562476503230898680661371429219481383103190969472121247863616128161203623478072285032105225189704341361499621162795295371279499196565457462818350031366809547185080090603932856741840732507847246884674912259635459848544195406353489305416678134099377527857030478077874431496891320396340449456788117360509075205452300679704814790906151225650074025912043332193251226978089776395152766356379404043860384053079990611311178559769240847206741225656434182789567377339735542956877060440124476765898484338145430971703739890060326155424116537856243194961515345699628496699003462368907163782308633325541058408579158356135045779191442530441620985922034477863544480508796516134355594975606963442434032680164804075361425579685012969206805748947882191246672984178012136805612788407331076913150460877172242958129655491763423888716594642790354541548155649062211655470818756667341015575884071372802049446049478712029959777563985853853739459495490959826889154716460761384913081983342113298230178815578968372697988181534371906079157036342744055312352094854336691259874950064234656647388586873664213290283243906765135986133852476649763740639002801549972085822371607750342083657348098698505499214141320315307243015064334631734382137138302329443067765743878841029791459833061558033986042670199576635146743920831385435337167235889504765528192421346673421151382944112217315011975420657964247637808088854314317372077619107736305078898006067795199372241895486269326427188112657831595512543702433272853736194421836113312933547743484509456672690703638462983366395169911849042752799653601441872367234024156824420809347325267746200342837670267766982805095580145023012869611041576557194771107844320146146932010781030796013155370720236013548547754365273484838623691001725102367233068778202051568194436850568010184036074610485297490304610550239055936804937230894756915611188969360949739027301215959045831379535195563038372037421306321600611456151550915851201555611638318552503334082089876756410674910170202322496734697535782577832146364468067475512836717374338267746964723805390327330272151549050194401476881536094176838630579408135232448713058842695697207117047888324015896519286199648147636793549343170892275411871998300276048919091699468972156204932129005529917496504572797229415302390405182338529053860064687671813096722458605284211079321180956231836854685202316342232782431279346063111407746879250346908511957537578137689764025236687689193611716798332779155753081744721505860984362270920289067556201904237579158121205546428224009171416651705806703926670515872406544298729499444164101403202606632762534748361983394659633112623547864423685011886190612139488533668641714698616657510524358362597733065281895284477095972697413873442060122296640172880953634888340335890474166649710309649064644080047129613205824520995147698345742597815401442355253138144769516873967359100215612637493533072350059777555333102798769174558264725850595159236183859845499914713367584011086366591566158486097509666517533443206289960725020512160410347948594585136394627729028665513411804967616437402718841129851167311280331884585102339594216382061703144956881183044994543284826841325592733690005290468157150221715162289277585044966422769460365252435797394523365146218713253520092742553875178016742079227525495239942553901766575619439898426828468015118692852669674205541615341891671161204096393353347131814094180350727366537896135234689595535311838399897855474153469026695112668479578089483855808580909055712642192167364435130762651195729647832581803297220113372255253919153581128944521307206625672254901774821069387580389578560402907694293232860275174232677517096134614455400338844022335026367370943966308070003932051070102485147000273487275238909707898598597050456870574736875143958126973438956618199877090572557270792755766909315451267766843212277975992205048961918062858156989603730865281896068148531463661199799288851387997435648219977211214386667871818067214279318132293526632866366219712200688237622197583463308536043912660663661781628867105245604676581195928722034074184605664328432215733893080950047571223571329684803182868228581393461113671572789316947072259879495062870841770056442017630851101615669696055568376210350929047739493000176062747400923732045371876965917417688407784195843275134877958704105346413066120596643797764470849517792812862954580351395977716342397897552884629426780462351878241535010769829994655590197353711528381359686257146422188811369882693564551432085336173323536335881757041069378668740328295853807371741916206405571153574046341507449013840239546947826692801942622886975599685878088508043633212674054000481947913070482276134005839332494808111552156298209731323404235582586923325790855011782421395504111604297765580451877730503135897536919144135951976387003312791528358330534533371821897350380036753420593136395388988784942006874156564631149105554703751279744449498747301466654194393743539467204587670851484895814193958647191126764991762226447757032114855661002859289225820288550822289229409846294870771050392799735449046517252893494620437904329512854275139391004998522949871243961627095064314150256519551391512268973029311174209884651955138298013380857054175301846356572755151340867802572444776063574287697092777571455063182664690396675015154788015848563031607671825480024222922843613908834607894966229075030207309636786658765058428080148203977741544145042783512128064201049565543745556396499625669435068744176083477839899493682011518295947911138274661173796059555762275172859061030274989155263122469208257398542003954892336915461439793878310103685529196064291383726848349646902926522735562350918549126192519554420967557618053096289246674549452589450844355344923486438139202886403685175053525632705610958111322084593377778937106530728444884232313195744116902666260860573187700555134437838943372871832777947081568877790623111699237172816481533714212463884904599615530813902636102411789641450643159602953518255752686154376412568104525981577971604907870799943526476043472444810563131406941872677722742037234972022870555333233401139032627385893347539028286667432798181903079835509332356261760065382355018799461523479427559886451872418422696761008066311734463692690758480157840464774616451228828905237425152742706666938625327714343863391511230379798641432677976680302623482595044953687794388661119485790648190652309008025336258613141431481460253318364581473531628199873876913323909142821314947549658542182272901082481461313879753300990036634948652490879615431329651962836367371707494797158190867274701051339264647199476190459628561898869487667558087838035790972785221423071947065005693448544196348626310657801474964356001183902833350035109704005138416825276519512766038506588951037922964486679377778949579368816436222020222051879362815432380912348182535820738423720141592567230579388322455465051283088570452993756435486707219959130767303763216545371581356323270698838075192337562262872353671585129040683327418688474584828377683525608016077088137201108680232760418247630396759302960655835074533974831336699101972745308963436507861561551011315054605573524194839033459616136343146077301445054515403643159492410202923829372929531199374213055167999561615395196726690189299121832406598916600318555095945868121551418852422080107428716086809159912357888960220603814272731567928225577642057578576247579014346834905224223970614422472563329611849608250586588661654578738814132371857266043591443753476821259236452751621235309877943773404362650232378645849060530186397908862931412069922706453304221367210180025960878542461324735932878061832871674030244779173995824714305966501763947607663222085339037739693126551433110818970750515028802426409335802442351900992991316712219335071829271122435015732557068792353123283246660295829709033868857862170963415517807615856486209370654815966451951578728419681903423354123488849804603116120669805439996152217687033157137497052903003941488705548704608998928171548447032678115033753123560685148617572401948215496985372181010547629690455545998530312386278834423067412307105528425690202667828430681402793383369375729260126858838119923705508510435476573854395077145291091863955444117426941844602320413958784947019381542340413802155724021602591048458368226347195700055508183244834310815261055895011776955550138800702782478237834116278729676654811254688203869950800515464060703140291900263782848569529146268979881319230449634375960983112329098391166358790837830034805251742851085052983410318315571724620149569078294549551375553433784442301049843920604738132794658283557831629794413759702890003935726581994698038096340601199081744660799618865460312663901374375712231174381115026206504549173295718503813555350506983527430126833962700822498711865271066869818033236078380125184583483805838577475148528461231030727878540150163416320377496347116858228994181900141649924542697116874749382200325543327071829558463298153392597301213408378535365288839536205519818345816776050149895198859576435568873296225966895383406216068924590791907328237792668210022936334491829128597382688111111086470182714622326156693191894263764961289562098491736802601905057698215141770463726043445570461503547935149580971115177006163665276112224655440943382921194250556766708771723378883454489936966413399683755557495972586446320638608650044679169388783942086168065778304781225346406799203462546731504925049082920602284299988720243100395625255965203486883634093286724107336947353882477711514874317477797438709755138776100980353302155898450670719360526133691651111593882679432337922240986143339429131081774509317070735778653290774144966952435485851635167264032676415014095284061748501215448677105636711260799442057051987036983574121760496195069090517453687241873319975602705563561445917659739681984796740836822555639648545538253007688394659494579252872558785474774180207639427681801615097043577622910437915292348451306272492669090325993068322026141580125095988865791662149260082214703540951272829533945793524058717750116690950263757106753158076755931868560108762712619804760179587185360793666287593961939999459539723948564649874826357876345892509065955791041136297961322757284068174597866389002146624497991987298979538433100338585000110567736744191974148392020984817039644917305112965224471996491582285799057481827775332734894894765306623753909656176562101479366646013581031951164481844610979282029972646997807050627031154853985852093471596600080579696053977441016817561965421570121366218430983152329551465937010916390183380592542572672449099075618824582055343747650545960274849030976933604715137015562999392983521028204305181390046631883637655989088743692062548620306167721476122371846521649921147001631570344720577859027650437936150464066479981476744423419704984828788316458944127543508512235915535996509808751835401097829716194255155683977716869699991013458200842988809113618533292824625871599130283747217097806675940729144406682046979028890487220300822287342871990474888665102092806162731701159967123486639778207243311580962095937486300419392070156742320049197924920525128672646914831567343514961417148480532386967550174845381288096835395131420613208035055090320175951109552162792001320293574818965246289107438647193871062124291734487888893733623360463440267104013431070391977411675249020157852590194782856356477955988365902119420585938131553747732197558848897797513352447827860037704048452787155862089434459734033119941662113474194736813852829092719957393577097690917026468156971409042012752242829772149218643526987531758619213357463763047097078200873626233422243192706932003283449294738802742222087456180742486289777065297991286772008943478068994485854986787769397192561197905613586242779217584146968978570905357738176934383339954411860846847706588192129532966630274216716734266680544390958744476845499367270772111938936216682946931152353645656964336941964370378767996446683477344630368054221549757276863398394199678088614052091482512484691037094942216652280750241625379952853917575751789859580177703806995658703145273326179113349945912560195104968848464243664803797262232216097521348133831507122924783295990923286735208901410332953699754754105308696746774272306478796897999101818638252770337572170320206059999198016394311030426892574859144838847416435102277701844576775501380583320179535864037958582073514946427409928262651707557413312728658714050380149974176950744596401151772559168466059969868431002650282182242503840640234395330152257720793300320356680781023968796040249073329918149039378793172181521241865946944050403239681849663558414888523145374920954341727750823968131463636088118135950768744906154180262926712393219857575926192696425465449425193141869230917448713042941145632856418782529954564302873929409569604660721756144058112458770664382419753367903135887794486146839272306755783087480224775990598621801073456319445567720093897978567641337320213156808460507173457537009789804830316597852233806658565587522392010122604689156814446047259701447079711258326011080882471959998168606694637685047764384838621090732209657715267786486989716882373108416986682467410761500476998137115111811919833146292170004662410961137043242971617612458700521779470689129033354921380090374206711809603666207793586651447356266002930809398073230428117533279453483100677920684590667886842180103423374532224637673167133422378810625945822985681406361284333657280919556147270692349981567077912160598131632506927803267017245264113700073734799800669465586314420428714251473015360355303901555492399697404243005824160752564879705845225405263428530936010382165791083290553826077777940166588345440928914721998807389986526585872355509605730144373457254324838827284953638589438659918034695377150963211985713334338675277911308137457626003553022078618506775613045256154307440925211456124318301207273055857315143340336162357595617508240116637521327851618309438284994153438723103178880713961357255001983855117431310343657508712903245690907848134113122286446231471425143593957525607346081473090142602923302730122959101809223050639235799601279881856286475354857354825293303209088747907989940552253773253871733405755940176060360863353458152200201947660558052648540002163422782648634964982965854790512994945586597718214790948966522133717542438733072060134465175130073034198815760600259418685932484133196211635920059242292146609222400387315374830330605495274114877879513418686227839968357969452398012895002164290898146243851929847032567132944407862804096946693682921392273739145111373018400230659354778508579877002005415060102256052896004907823771011254147451271919565693039475237064311346122699883613546203080818053376868900255721594165971584968093438336387559207269573713455593382025119925124515884886191152091942882768793314400998239510457318922587021434099063205918141578942553609706778969505273640607252399176581315306751044634212698224219333157482336121820655295489911660291887349678278142717391492607807852380525744846193025139258422504567798793735648208840858383114744883321493567792290400602649677937881192662245410095712225884901294427939314423082313768640613019902375632943188287057788397871944523440560188662593004562657541303454594448699514924587176817673167371928902921826239713021448858544379647581522283811407466152069890926714116826717301426343449404448617363170481358905744316493892371854592858718756499033670843778446392786249819135502893809903795390662699566470172961929148034987073319299645643827689761770021897662368681808351180033939343234216383943678222440775546318593642716915018220226467441959529424773010073289904536290586649342788005822813992514017928962257764484882120873535633108570665945588134103916166921984289395882043394797812388342074691039559493464180824590707573419711138746427312868593603861146562553060737556316242338243676380943789067320162993372845043880844805065944558864580296831419300835791357659483839986716260685478391833428083874044036443190503614646763437715407638556187802366969676797149351519020996300924215710272220270340382102583566731067281809191928042833118245130475019728692292625759447155709840857354460120773092836773697823996211760527454963261183551717512413678508361556127977228831600623344824929097654728480722580920632610303450647728472939335613401239134930636361984538743327242040109282424684581208682919673078058631041862441163477804829993068517019926484684774986381983136205166341335745394505751644968905458603358342284972321135005125265560837839079660786805702501188867532298861778317513641047206766837958758921400020572285389979393710238087025254720443188988382378543183560132566152229201941051822849439296584622835294436284127150945984281719564283260013874581750529535093667133605618339033886238174576345664946323085851757407649283205573518096911013499003500179997083918562555526783560562553517503704481541402723224531417657059386509888042468028634310910287635496133804548484729069087470684390390168709217573751935412622955639422740072819155201333892560035152898389382892231291032584108093833460715198458040793305471421929982763516726887405113352888391503878423919378707801357729046082871988283592277139652633434011048469165447415112286686661965253775026928898032770135439779163858442209855196692783947546612567674494724793662461606026779520403034482161310729607021236119444597917142190920843179504927371354140152796003089976157933577657534491873724261317936215382090667181237808671473559167814030245544428562426876421325207449151116741607055760535191329337160116939254602597159254200727300998764550324429268206600331985847729300582376540466481457857073772975175833778353694031925466019786186115432660198168264060628612053629053328107460245550910969172771747401247418907275213430730444492665669466602400897058396167840339303126201643968893584631750939933552426034235256724755425563779466740870824162785591701989879453848855260643527762806747190142456445690131543967016552530532397899559260781394810658439643586741327439647469403234063588077505214320037931016166656351313872394144294102144157241841519875811370537504754907244877939451151234759892173076317906524644890426072477192726728895511197872841127757530356004742689633396924723187490194107134974988210912708262743885884949580734475665556920609898393763605497830884113790509759521295405807197339977168285680215352777611477470093069705761074528969714502663823975063698194989510721881164139903731318382694372657987782711533731424488904536633457500030064554716871019456176258471309591976455405032387618791268076075415319973260954717806858993152926095236569512653326354269433121086329970570270233177543954232955422351483319847213995804920072276063155736944460158157929627122228303165839639003949214816656433813712696754238432576156018960576005596260857726128843350544806782010904172279950039776195505776812406234606567344772819962172751740312997910920061766353479858359684921361852742338168508239942001851878917763649519045299306377358103806800030509520764300481876580049533912716924149789018781278986939450312764308441169292834317523326609527343198282985888810237597829639777425375587282273480120982345426439564531398160489884872306631335472707936021148386240579468773122375816302838732146102965555860554493978039433183177901059535242161137313612773873189716311200554334368880159404478956742285228504594352686569235061467099445539106946046045176719296481921775859080993212438127261967882380216399383151647945646463782170228877094890255326334892660800753360575235511726437249106572840228688142551341001588457545767680051728509223170399608545009034092482091220747094285405310856657898256708294354284208818414751024625501771258260998095499960579515232946565163200945935443807678662697680995973021767418728750536381784674465084857541920845787466329045563415737816152090716857475267951488417006417561508194093115937187266357047112751132186590363932027131398531165222962989070301978581370815511612142889837811796663187960531282664113145825262071464831909602599807448173438188330921092492791815135606732595942491508906439749088866375321572533750757864247061013486181523533993116266108871154131341248643419221204965852491335515363570234484950076510337203470402735887511112556644180555422758007898716338427377002682891065052908754870640351926216113728456486329585670365996644151348578405084379648146629116063102483037796897255840053375150956684516121837507824449762607444177829862720769159897391094719122925566019844709562946429553757927228140949512653214117691193221037958917274694841200580265399520143829816428447912087133569027197469092165281106806207712592648272989716802626800943536040419982793288206166660923726048131844813243871740329604510089381799326551342398500071425183179048349261554057732673138192903407759206355208356317585378279509692751907286290978007347162416024287899540648478585842906087405385232726686274553276713053852685555782378257465392189487860895364590008893959331660828231376125099860147429728405252192333402377302218800203844248170234564069481121015460746457676457526071370257551738260437956192766601553602643691104638044964926249522297757151837749423215433606708518852429789212862954774524420112630182651872132373407384590612005226587403395471452696093529555398424696356746768100115777431112635911703002435733801675657499947433828799728231659836277563238506982698867009081349394144294463750429228742419592120214751831285581100499526885464613864303885939288843279366715415715282288738304699221633120639487532197800574214064773234136925844259504403271608126323939938906729396162833368699536008772040149486926386751700800564231879202691651429237234475581923281712519150452871701545060609003680723937813953762256465897911514503784237699106627299844147276933713549535326620352744827975089130743521267458355361035660892639279716038481573482450556856293085218848747620419524838872017496983031957667165822426826600381755078379212438603026565796843902770533340066713864810753098813412488355057503710696977630149301737439755292055075795081305303890935999221447585005050245465882131766799336084135927700023719407215689376375339450696643380333381764405164856871555337188142910681401207085959799192119871504764236540176748712639331010439727363237843572242963592968029193284558234167011132293514555984741598958180320046103387619046883149194397257987836525449288498556940357032295800236813848833073419651934232032284175632243851604479490676019201262146900038424486135547984851928462964738807781017045084188394508857367165680569224242187128923581432217894647010455794478437558520808243177053930948035281265830491839324189183146469768601541253972608827428912019899568033307651923419180002425031939968363516497301400235783297757569476888445480427704306674750400643846142113634992465646862056348626215528248512501333981658451644588940217627967280509530566386274461086959848116665961864728028405969628671557856074258188802982026465669172376546381708198743232380941598764501760508668764779815905871307807338160713679169750023314913082886900066628434844798544452147022109299959878926480129984132213190121728014410147044953695427034646581717778104865500136566653101342640123975108705708743459228347229314957505392951035054645919287042450993811148186632712979032743672460468821046136215681458688888817623166283327330400323217005614696711040726997503289115083118625987886227869354770876178000467589706444646251161116143773646471536470392725519121349038350086420088279838263488575846508426457940763780773423302865975414826598780855190117729698112619055135594387097340371238532286230628943386853331559922757848221463543400253615287864212048120234792448280059409505667877497638318879222808736906418948884672753525701969529566389281625764725095027718224528031771643301861481497558799221610613214325392984378112335237938500619444183038659959780314180171571734033642472541186561952145537274093041926156842054613664203893750610780905680328611849836902008861232604339136428070195876320138956322739099357801842657756844636276847373201712164251085502104841046981813990966759657580659676082311371387448535832527277953735247068225711569670485997015126271695953679216475655014695342099920509705725667196552436490615188772527060231587744907946374986740573435228349263862347161144983200370104391292492106744956947743734455307566036635081130842584065382117481822710579425284859858455402663804387116837384984543474483017380505567004316728849019770439368096101887041966967343377598043101587284925016197271561941187810414430824297372605879429062375810822319021768490727790879191482110744097195472857751330286979937354173015610590567076145657009683407335798759843927735582766502764419663859025548408273125072173455724726899454142895451062847276513218504911598001207055563525977849580612193059554633339904694982096322287549057663270331294397588300671268627290525002183505788407035642804984424144772655814756247209941817523992237598667241098692460743977368062158540291915074857326088460537092148111111721591321067505878913705606791387651604615617860967219226720217188640966359362452418390482882407200719027809417740386236193259427787138060306015889674570778261963732965837354115821759783723254856755548105611018427829711426951699922640855842983143752250392107752483716806219026353317291991169972711253974336197584183361992991752219950044651519187603542896066172365241723631903917933474395820575610569285983059564262239580470996296864431638048757023540200047990363780047168025736177779782316095335640963757766817431770817569651362487330981865214781583207649789749925632847203610168907543076808012750760578925792049479380288999881195355678794433766346377269832780190471138459442840389885653827423450962903079326249363807205308543092367102335553097440767836945605167900855968081717941910059600797345968067047927479253506540568131118681921524044067383122868621666442883806738290116933489830595771569003412057542939869344505941151501651084364264883073714608916726095448095870208452714491534963098330833814189643614954476946360698316056954071859147962346967073088224494438619066862848012942856293426096305476833846967764446900778090558930568883662286079321203425378640562860649599575195864149071180646439068427636357341215679085835896964960243869980713468753521207674955285848649543330727272376226017493151008917115122032169289690253919958189373293505712570800510476769970760246842880770239272529650784613645228807250597136918924023279025687853252829621317965151684770741080110734522662181628424105371264891320498204854948069748663091038633041393448513537962918879087444741416117015304396675219264989671498987672396394083271607058004333642775584476858571109629954476727325092222932638030945653364252180524312031369697665057955224296482632837937730671491318495736786902518212513249805945759836914596143655799509338679658991349203598201064097599344086288418618591836684674947088796907216249417504040427229530778311794433611459824421971421781475113389520637414109868062109361771520446418992285242880930244151474350318720960746190815163494851424954426563863525978808437333523342163270611203739059748505840157016970241158461472726671399595318301537271428258079326753608433480926278235453083995590020073857297989260788470017833669975078297083360066576024401290081421633981606419463242071011942087280208140772209680255580148314013831849179890392333005443381643846830334149102220762665667260046894851232697286458706547014768077549575785128317303842093204664903192407210679303142027917942971951512460252750860716939402123559226433165611819075243161299064316438870143437574271705255479108089549247134562556023144164263660144653967465915088602585821020816318014826433466613907871889270907749847627613084131553555829600927740582539716454230397057796501343532277769267917617467759397991131424703412097771160314748109222433771422229313332989841663050327261361554044657754408288113599125617883703178625370774784965975232012248264472592605252441873055506998854143628266567716077812953053445473526592432077177416659897204735875487917034994086881897638157005630831322222237779926586711250125931480575573365550528389160805764382970582524733212512058250563666414704215162369081466156451748195218477273502603861724323140993208005422467237723995787492341438390457661982535290611401917607814090235766178872376363366956418460171005530980132554071245046099481168383579528105067963789052350084870926836878117183142102456879297539214252276109013706525955088325670151543607286457022790282978641201281718013629117143284250615840090981291543436035963413134323007720473959097168004534029514386064053791442852425312580183884704068879999655625590775596520971519860467235972620524029856569556969736382950271163989592286146837033650764233897266089280903525145319548072620802651777114969794723718386840430261676816589365994868504794956018274642468844505529775615638030177393391876922313848076004096529929302488203711275067270120009447021152548471895464217068224664333960552418442220128546429650157190448511687907875362153408641942394703231099369958688156957908593360293305946788332754366742591609591225676428972234668949530737122746404732468500023513310514312457180869537280764531405862272909585558349669206883493880746819563277713135460774825491119089934285261578442366501423571569158323244491497510153498892107066848694628599225875940371224831380262952442254132617058123869456321394829148818884328673964485869774186226847213004666268388183834502127378405455548566110804790626191926346705947833325106100786828409392315599029526689607186012800522706872600862443654453669122179808334316907444070750759242884246923360875121644277103296064426787404730004152075352049640259528266607401222855228718530011077582456263315506675079826464227885422597862191834197841675929878880099080142312591930958123116136398278584409512342624254691037492462367987194675937874633366617400122755367043091997191031545904446026587591969732712530546828716707052831819046335666914493594610112834021486022562503974046571122616377483510983802440081230039309140450581201863032677309178518571840778894199147671619724691593407941186386276807700736239316375762695713662588776146950905418408632578019424093506695971287630253441306794272276568431567952703038020883442142563538475405948192843357862637667276174143025099809911538194762446425228082749213373099504359386708705131433230809059278402522813879575941777406684879039347292864878292244121718509826335458742761105573397407220683552865381239195002075522821018698471636568625334840730903450851253367146309902486747079897576609032592068664461835480745569557393451710613565568016595238823227169027870927692939780287760040722918363535631883126131446754604830329306220273789906179837863854987726345263473930425939229354313634824557226299792437334343079589441569551124724003063130561345941727459334382345431100625254793164300989602355786834517718031652577591972039971597606946371150225704199385357194038526465426716948082406919993361494552859353736613269682413463993334832838619849084786045458430144553005096071993006829692421017122978000579469524284050690909510551818378182772111791352847781004889385156575893578491379059645509771582389827100055993937975813423735975064968092632382798638537527220316084579895329762412929830067360212864674059529713491896407495676100828027771826404380212788334827348751319772924849864288644106048673683988801961071236290486824756567173690095594458661389872217848277377676182536869451049076988591744758639229940849560271333201989073291843587188240671117378147196490745460575725013250588882506980735529201435057614690514367811039407584332562047424463430984720030028729818262204269328955525225201475070171147987168475403201158326632530414519949270188568000768949807862720962087934883675770715898027186698308214226494645305527701815618331686714442415765598799352546751495298598183486069483545807051323867589934277611776171043849986723038327242548037379786630957492373554982949697106919330154909469249237750015782133509310940110494513123939402091411380615050580981388364127168823037886186762277083792335581875834483378119390789340162807609626825299292841972744605505491801617377022856330902840403805104043316279887754317895251417109727075688582953923348005701760422904029670930927344710579340909606626319078003966636619800937514635398684081512261433705152377333592968350622953702040422315410201588126323363789019736317174596442171852929731257579526318323426045186848661962135110774533119452702550852189159947565654916809034913781436579388397380515849337096179969542778058186818285326892625112691227060049800101391250041278153243835448873701442299433853235162532844210002121253239480730691628038912249915188156440556870775040418445482841550250983861852784136162083423674768362030571865334650062036546313896266037766082082070039230415722012637869340545353148638065002771135179037251205796089839889921664206464424584552380529067154155056403132344007435394135432249258321296884739189490294978325819098096838085575186513310773386260530427197988448140737463931342419883371204245011434449124878221074092074246823887314720968584336741025300038003737309326996878959026966715243065873784883282530326957473431040430145365212775921811364002785722993219185897041914210436811749759642769001847578765629852390750736746479712429132352233871910260817475220303102443232846945617598463159290261640506902047198715750417109880519268113723167700694772897600794214051478152044245059525666813527806715529495037064305330238645009999566780616828584089952514316614569829899785227178927348756098008413480512685152983509820664357735454998294660360607062562978751308000000700350072778334848280632262991083758303562196909854189530465810410430347511175232299888403532212004567454165810731799078060717931083017505168364706614890519473211533436630461435987769433719171994319107712903151346071847380638365335673629153412669384953312641157799162901365648047262134785711343947276166293514330509182975913262613610423583961398260865580274858738659401143771300426035155515234221632027310423763973543452848055691309951351429949254583590973108565975739723876297814616086920450273698594380744068761245221983851417817276448299260711078561403467543213283270695673283715963009825264812617777172311087264867661566258117198749635662516637708606739018323447602500973965848169339824608110978651480481550923870665575717900608805066695746791419335409486297831705559593751620823067951196580560616112003703706090517274754520402214148341179531343775811250564126369755726087942086241542132178370873784190212920693437893730828487132398480212172309328050898982850964817138247757810442879289852249535316654860247620605727672270192578160709428645996580737100766268542209995493212932616477959124613049818380626155311703174239130873434018000102832604647426486745756119058021224957182830960527666727299449476463250374948189135926177312869445311886403475887076078886653700456445999956186851321248735996551449153813759754484220370899288747746718479931748695525176420271916494557464083387414189244275211467793759262041047734756501550381040136148531285225106550318980281736140886169153167641352685457048037565547459753343791625282389411134909768583091334032872976623545499885386111244865594113059255862664670201888014513431666651597526626859608299604009594814626751363894702063710505319694365842074374443921710977557520309934693787215589082667688809094465582114243850802501098269337640119994559871868925426601364795707257032747452751449466967500573427341767209108820544860800709324112592740047488455099654975892231703680505024236190153571443049962221636804787898699876149991886967886156063238656359631866916145333140577484607723144358059706750550315648274054581862411724762132761867572602305260339355561064134865115474625396891833144068329377412437657155572759475620089918370829464954927427667159068732210188859146599449323953099743803488872406708997097357119269822437695927536381674195933910907299981020715178978161784530168595255859539415545118548169053026718593825706054080986864525340559155226090254931595110738781635941520164380102750859923836189708050903443660655798833732138416702679270435061742466683248874979558027870051939682143801579356157914488668679340212220474271048108040168968147426933660918116693855638972909858791341178010677211356715213623125927599317817486345772717029955019824780304281168623322793289802593541973211183151285418688127016229568516483629812666922622959217867955780356090952597131640070869708008428623770684013209673513522339523031094250122712155382229776334027296559477292534241283876582477492373029524569153916377511059466987174522525064341845629059496939291201634047981040227427096628018523612624245568902880024137961478785633546848415358350734042016548342859173660181695161539450548206485961907994709352810416317113396424786363534252576992398162624772948607802885943689169803785781636590996147012272712387798319231448044487646878522212858323048376763897088345129098659515519745716172054435467686650505221974630743452695581114694601540523376505667683826912970747730723143589888323151495013665234576360710391701541137670255702866954920911872676044774825022119410698754268312471039074337780285682273693151779554100588280655897111395431848966444819122020032515861854559952746495677959158587165622965624419053049432789148425119997512564677292713338205807989963857660658830922468743703667285453813169177840463148193765581973312096867313937982298789545129601122426908550861892564742073141418838879544879416830590424807599424147217417506544035299550796993953505419674370615523880475928594703570976692174238604493292953399133008518869544871349953383701354963067003073883092818158361706348065282981853694977911391207287082140426595155926989222611795373926982546957220238617422861901998760095625649523169647184048923735599900952938370262306314347368759508237381695361069527720397836960871060384964722572502922729666003986305922609152355180989008234237975178227344159727222031069410435821510977629753016266417273402096105336329393361417199500994246603405820418555578789910590922970700719162257620081090935518313917436533422876015865668873538632824718277571100033691853902856002523788739130194083186585757319884187637141644864149365578123174235352028512917047807380812699596282041581631648920828530045614202780226015531118622216918666490335595280519440828109407581963136984122434887240357027861766139022622660044714015165678530101781081918326680008139266633510829669751626764876248175787303398266692057299746320541289061435592907602394967227536905087841715914424769331511955619533451331463340494584922926487129696539211114199327918164900818777592957609799075416790202724177622061119288759252338613300737481743576502110457800134008031781590035988654077804255332085356422797860094399654005669002973740946621401607600307050752569813796208089340587421181989417282526273291946714840914048600239390426007785520164016128201265237853460844091308816011360232711168748889441423803961612754145965115392319216879345239027984483974566793409319789033353566459616814934781019993218626568915000621182680097674661814282937106360096015308322520736492673449415767092050575909069264353326079661025767963672079606507681931804477471674991801597795524533025849386493982323817003914110253076030845174463753276581484058695114050248674971810733926141489163884126888533479186602455339015193381679113852737138204244475736180993344716441069622694548842404816368005261646167814643505011673349713442605881940854894243841710095673772395933783000112461617654311981666194346174200751537482332118698736731071100054681912519759002515369530029204927301328051721895728871831761689021777473859364706851303870643710097423262998330757111699395177753779036789632594640853710610141946960559616120874155462568428664203516497389720966643331828972116498191840252274567546906362728862140972161998644915889704719210342612425073301074634959302998412148226576947526988090704162479131384378989264670725216051506974388043467734744196569715878217854509908663285125950377882843068936655139590611086559067524953092030720493668409570521293973881583208033139728514945755500701461174097161838062403486742675375044136743436646898920797358826919610321355744224277222127149244710718924991570238850543426528650850677039410290984678736369479048976560905077120027354704080787099632178055551148354420283890211917318145174314148222753193921915340690259875715499447767522850147482007658122735523341796354762357553202549309654920232415808884351505504581307760715087621992420706020704859156655861394939715306880917406227794400733497278007816843233054444242524543800424737914908739789111778958549458248146652996380484084893664394114654833402356674357928310383532839194385690103282123449563346227283260285802788981697493154131264269635074836167250376397331403325677699570868144557812719959808545186690784582087707988650719637587930963624021863927192923674660902486099907507571389117569985796633722894065139012530476888347288225687764915169431259792902078478564926326466945519484880247116134553271885484002193964842678611522907838626648001850570551312006295761772303070140037321335911789526594847840446600837958360755984370027409303352974618917561893091685706640841769989095870151199515368600121969434822905675753599942503352196572781078183269496838007942915859203734672782512132080439690904409864933613766471530135705074321858980157167667740945252002143410672341765848838568704968120981403599091126232890830929905590762598115617504023812743453192979542787365895862418063553139508677785246581086910383737343566327651402166579486323681319043985803087547941374989256402586358207945178180143755784957654569018719001859132669720652548253393119597793179333143859118536332071858268929081220259909132559098548779383910539004012872494030296659278998691370210971801787502994922367508707916704649126381180979710000285421269061235142836281093534963839385520261977213132233041784905363568525969713493945938731849830766349666434697842732116883534718563137138483945591872929196250310259223537451153750413075250324170984799595407503797244926474147125598850649446364796555297754330231182112194206677658725604931980490604039031507345809172120980751759308273246729077554873189303719338300818098789470848273590529207897230857664118209823648641682176615394702857841618861737539617138716103658285945867427547137897083600665512497124364847619443162250568118625743560776517710125698602794730755139496543332773391921720419649201064583453821367439875664314020932675645770195374831019413212621066095314774251715486262852846699498189812583761530851643943628609890845865726116629691487726353630559886781508976614850663855790691865446456424925225794112301025025960836855602541794466403797838928441585007203914867130452431120075066576682892566050444823210460510396201167697069116766073622623109060872606875286292449178178764186065373628626047072508878007485111915442020030911791949118334173631090285958056029741382343768806012508397093360259628299781862275420073863549066114102455655470922218286337852205872934092611289204281339845831282412542679173251217142659003964538500329173954747691298310858254457357809206736886663156993584392954819067114131208753857901982118557252649008200828245638750077458244890245502515851374257117412642861969920463196901865490073739812614738639545265703656360771548587310442270872910111772955930440509483121368276233541639770192347494870209717896614783441074362913011751695601029771969292831840238458125468131867362473639228049426921316106786267294758047780754971149129601978242879191329997452849212917292773690873666265306274670698998066611068398907201918370296428451618757836994598731554378504512845282834869941735080243871479523460300616058608033798850559615273511738603505844850347211532405520467299577573513521267939399785061951637283016850264129100065588730696801554775406055625362515465351451898665094306032831470222902828332824176016972380422841589067633213227688087016541950357572420981588435010045073378620171665914745770492823626057375988010424324958059636274429793555854679574470630937657681597891288187442469998405761608152508023126494738446689721230015668061386633437503466942893198592575530081508355090565349400921760177669879378583870699777084675514283999321604537574397156936136459032403086009388864250718878138738625006456729446492178662163406070682808605851196458606573332008049582754577279872935582592226928125228400911336914153178127062413264008710959614938732201835137837717858494486837880519091758320671020777800125236636051644429982136630390570715851807422463542417644296227544852126056876732588206716045687489757413755643169209677804609016906448238733802599252446368009735726802234934542484420275857349734814187048865698607774984436499409470094219170863766274859479669848741148119514208719021752422460035905533507571026633142779624461651342782044948404170216066354797393662669547096380829789575847640387513220942116991421827595601119977158183601998257382358028162209130497806096295275695467323222472727341962833062446758102518892658056235282934898344485511476445139603933129072182916008116955668486473678997575908439885289587095971261520700222887760137785791413795228481570723163683698846877708849156779524944371744570872754714298732234450734870727815742544567907611909532556663512648491801282980114667130668173795956043451316837616790780069719435002381107145230328457507665751123767453601659231719628049368711638673364701987544972865088064169630423585921183452084632864025559167119130192642148552483821766694767213480925925312995822227736177724443214646524307994414358812264582761582858135610417671066453623931962777433019297535190532980928223103061609419418604039244422239055563455622020697168750488232194048185705954960775317183330910728406585389830900500453761060761617250164799499611646401651877154330618918676185184074497358520380893802991087742045095998809769649122755366902207779027840759803169885547310013313874531908444585614312550764903112779139695331359469529944576359143267544752196499170131658019817272411785603015274973154314339105485794865064748242057696201630266004678493380591669189935344593593721841726172061189377618840675846984675226213363676445583508519819918822870372626599514571543369452159124647520407772729819691408661375015033096820301146635524743201880649886436116515590596763784785146998910710381581139882750137870642436197759947401372267774113906717139517127236162553444313956965565890839291443930575390193610983692219188428547377113425886360047501552833104177940236468325585113485576974211847335971197424985732491308722474259490309777069596431438182941050644692128775595862578881144085041944690187985650931801675099207150336137202342741765888027795752512336706368547320263441054996062528028173288233349175543716672079713867687997874978909269756649541112559654280374508482503245769983290196492808606450492618864295670897020025474382844528335487512824062255346536988018021290879595619599079872894210205162966686058838472460476511575964962219363997970511246163433828235304264653396597499430314972983301489610450926381050158742552459515987143306714950044964763371651218413075743405336504126562966080298864262930844348336405971407572286073435000467233442915654740966530863918604498918666185608675019395653322442256869235344294574881256982596257948414609920611477946615014119306291829305649145646431457143705495485845978793464749330903738644480443680399364284997168236594024359529803328492671413458569117412798742035045696732984269232224617658924313733461402745636530952067307700730454007724717902425049877864986796166218352733915440389739204077068064490233343129309686547256171042838832158848227042477184013870235064476009941689684984045807126069295699969039834127954538963873823089932033189869378228265983427894408863641531794107129904193947344203877375536461875014611614659934584364891866354789818427798437151603251359071322984623357474940849331168580773280983973215943268149450107693830982357177660465097097391432941732142983740992552247582179372458786361442933441206573918367711361528137658572293612436698185452088731092992999325487386279553751345185817911609096324764997521099804642167116317373763710560215996240213820555797534652265190545920775775030747579179663434523393733798447196254997891899509768042113215313614228163572352971459634133228829625931263642627527324743932753183537396040448257485245649170589328622570143790094595135256786867380100266634875232812816183231480298282650829410328976570255831308675570114461982084401268995271607920709999483623203894144713984036933397507067294990509917349264042538923968646541475259170314281814750157765072052694667349837338881973180467396956285421677982967496458947046763355042573629515634241852563979668014329114876361884309984723556976287899646927932463120664444034703265228777379261361162397342224483187870196683557856696507771333594291682857444429716484713871114372833841152828307634254107733797311411526917913482360362770746306472397084231327327375281873111334429906761444781424761948577746779086934537386910299800031227526119994303467655293889687733218407460666671068946843580003810508792983854558503946268312685538336786801594812680910884569229575823424502389773943939131847277602159537539813762642514970343980137905439985394125492819054515896256810889945001984911165981627706916935630408850785091682258627254657822622768866615730615982716561780757057851269632819079847061555770402613644568843809568151247228145643295179840505461826034101863048030280166249744185105644472282969764515543961652015997927680326246894717032444716314737377724155059492104731150287696480074964028214761361103024790543669288080738672736860952397008644237456652965667482150601824500605460931709650765954957302130346234912754318273326776865183143477826082031734412990320459578178908897108382139875111515943464646602901905060953717154246600505753638497950241175743209381534342688286141224168847447835687691294511093145314836230128739770940244756908519437202004298412259475393100255363183594650639029257712547842149279747301776301139889514638965933621396535165264909006259746694041090088798971712653729368230481831851335957522462433870883364447293916836253908026920559089176298250897600935876675272301719514319714387253965740713054412242251634432407084988583549303658211010767756429426648211903224180071904666826810148743533591759925931710798803984816182855089287831285090488459831474858834249791761067105901390836077987380719078087478951034951938860771236303995504396765145144743435029385294630952200235123973226226871513440466852408033777131470770007685384310559389760037452621713024190567211192895764457450557504104976847774577870068625912397307741540038098633764423308248427242720899673997593445649023707415056833627361266705618542435343001696168155439636472999608806623815438122502023309517246012340786031716875319856967727021305174739001917548402957478092388448358068916556446754951914795263725822501643562744315151221021706205528598300627304668063237986719522334291966586683692394976758794991452742511001280250831270058049418037160600082556090954758736300039982814543986618323037079543074023261926032354964789537654489238080729888204355574934476147665139494022774708020622745696145462356195279942429259360229207999673088020253365098712639755563439719728917972592299356691313436094501743806772620253889215060278511300954638417826380258523084580589709685258997730779542162420257307540004899595427812227888308895822318995388880332666014936770538647714554095551961194051398554744323554744751047789770989788987708521715913696592613521657041804044942752187896865063720845337899814845181369441238086178016025391306511685715929126886021343187872001258071162834287655527353101823797381932118184792803952614158539744694914499502105235026491010174219599778207096440989732626686426920080880018855040673773711774373897142183837558801257584926365413404735519380215341141697608442235320569213934082670362052957568729926764884448943787133004965862784686461387403311099041794583769654697641549002612714884263436258334492029725926722864527069231849183070336005706376431684354982405082699700658980471892274751422711763845673883818385538801930565646449424354737572658127801842515373691935644403495515569448101666553789928688057754905041156054493715394720329100076408774850283280833541380440510919141100555995977024274543847244338331404413341314356429667018584609751761793804880742437684570300946642219399676749608668867613259220155834278070926268985070269349014703939173263756714922064708420794632903034319154059559636066272698068839039283152676930058207203018661718833212795484773982897130262988882843983909633265459849937307971725646231095693145013154475441005891389797893891932759635131226748985730574786078677706400837804698623126553346724066761455757004707161164229597025526020413254110805639901952766246989925287458659864913629276873579512453673346162516336314484904246481239139185605429227607445481836511962513865689037877645170672687963480976808960042113723683575364226806853741476270951864774201156956533106271825100156672434897305578406618601519689662531087149793253656827539273533713648878372358225134602292970302543655100507460216313636722401360422281471964844005626483761833226560458675645975317766794329379687807172085248352046325122691330726927491871281225877705677057067395344084722997478698380733357012152258055998254670945005253572807712263540800295080618270152214786407833624777826484753152199583272524128626964682687798760299081805713628655710008533787261881308557837086368930664624371054837458872371138254457263501252955441779018117118096611286034754004245537142190306094873877389147247859036101864445421772987968418548345257573254217246085847526721078872616188033114589898192620048967710242537709103485223277514106897517945459443399136089754348872044996904610748974234273014359084200148012165761903947756959473975240984571937661388949517818705799271580401142696081351336932552937143722000641306148012265032546420199305254248391761463617660737798725602599833853902495257483670294755577015301043360565919297745933147525436269233777393529977525370649704392633930406607294605143139700127553810590996747411523026740267875813069416123605503743720157626415130519938862554505005010323690853252893569207883016717235797418072984722222581327638250641503609050816452138946121014893574587993154119200761600380944040085244054078044082507187699032952568188760744601392182537126959203072471781103690713448102401978019350027900708548746655966973677220024503389809296751429921536242662480250045958775590977628288471971319113968093331041527497644437573309380401078911607313742164722769339497565577326052937553144988131815628326766748641911900794070904444329877769274132472326221396988730183811860898350202919039221153314015004518341955847724951435334174733651088415438664845837437490633476340463029952591077376861152547498851203410412500539973102533785660050287427596109093274786045236760925024790495558757359476037162234999490514414481583061759477551080755901881635152240910127176654049775605534158031953719935989502394496926450152160839005672427282782240241832590645144050219821822503950357569753238489572389426106408103867399023782651103686800085416896356599750141900316801358450804041101026407029082804593835230499503892244420587660348810460348361164887847469213805054254049757041314717093355588148420094045483601774863672051062998407367381140214321596472344898159478566106088522337789565826177418063696742750045697309283911362284130265929462870545926442294251941765085337528272585109169099870736130872028022869646990253297734321453374563761843783928490058768647741801993621069786980078585390323860268598948683905963866945757272418336296781718060893701085108789310210193588537578982733308119399713931583959277634220874656076550888592898224327639971198594659824581390842545874556070681573845600228306777511414507601093254440866482087168253395048678774710556518237079346625571289392885443949063165540347080452016787307519730613709940307335066526081291368585159625897870946743117634657484848411052402746247381405823310690838749155989444667494286544226740687813564479535141530622126718378885190869829592431227708500206783502875068790215007363695294605599596421695811049977718852383089582628192505764123447424175381697451423983378621146545731713852130961925708057508861311406962928755542171156355121551427984621378461169684050953670743818490454613315040670700343727861653826577995836246776972630454217566182993814360659574732291121047021922552581974014317186344042040465927808536382984358982629174774664225557057214610007288472512340738782624794111119935964902982631069865154784992277503018071299256037275896858874157023640539913205449964874230480910932985955136208418814681824514327518677074863933704222611309272964038209527330093191999567437380135523693027448251350297018077887487161354513649408727698948285928014647511823232748219688789819383171527021809300942291765294610817781351168502285419774153710230890541295998128059020245875303438263719193612790565793953240592337893123937836317674812848360829850846770690772129168345600311652956743604920976902197037228569785369353734248028181708939985083469871822127685822832408711118516775209918947821593393756971455173579849599433471452066848001493775372730207574312393457678134948418660978006784789860292993781841889135220490013349795195082059681249703080143615348671737346962096254356064135848855484424340113175832576835981543666512893095111512249379626565520772792402219802064762981937963140875569170592303509920764900583846510394017507906636881828407649487830494226430857178931787804157797233580111563342930137657309157713103292029425336736011100370156632930332061913111170057122413544300810088817626255717835587045916672027776034735723399040497741053901494080237277669853200954708803705534262825670423944902218182560028777663760777278545585937492615354855009678501674813699479388734517217034137253919175124732122454828392992981035159811487695874143135707188040171999330213625311994542213951237471249079958287440918980050623744675957618066788163342881736061013131811954057331429608276720559589730081332766552143018301111010863414389170388404390605865504765054422584352494237835658378646684985793666807863337500520223344235645537358162004808905370667641864640465565164728396225366147839310202567887320503004279862801117047857152734955620377987780922906272836502696992560486030219081946997051539464064042748405283246886430243027569039708458963674705510074125821515765520884883658570538677233802841455584043194900164771509982016329745404429550588194500566333532919011192908444920446287391943147242176705429322283872622245303861611221620267810009021418962508026644357498074553665873367846858159008856138273622335651859812129760389840337430676767920833931194159934124618918473317463208085513813128141492339209239684805068865952326640399743985423593513889954196114600371550275535850567615609631474258995203089996866313298045454630491025674787021886540202552967435347698630940481535842417863286924821628419438248699340197813977123500975322441893736796629248557257238577659897465168282192393549401400163109645799020712611674449675640999782034521100075096895202212477245218489796691108766215460736812329486069086668478478524698566698030160822102412588066064728909578518203389035825987076681276312620426085016587066337492522547547258928980253288632451972331840823489781828315706326341506227938666969998364353425521305533855247585107004268962247223842166891931961953561809486759473759373385125156396985073350692570911130033106218019964680382727042605847763106999437447847266212263361739300769921734301385054832760016801776907415142541636025095322344090574032099827356736954578745049231834852373597628803573845752525041687165131267953729877044250581031201244610580578625172575369865118394948731598889499932552679801564530168659000705513433541152356908469159175309348739510798911539912220646744246354148865317853696784097374350077342737980272751782348062510487408377591687587296182362469966612489771462787426388886977241179694788316962881605232647857098958611776891729689714974248066198242745734523157255191430312162248027599236055405708110334853117873868321771716033205750702043302320754716452873438338017738463405346806541173134563595247079891682040224580761887649811695960976938218921462146863588074834114334124969808236546793913918511408619703431957634460666830577072456623636396406929740872320772937687476708891262514466129603462377653427583802458369390717193350346856089797171734404977551501119539232226695208590205216938375507264115309223233947758722850821136518996011185237411950770123463746971026123317846102483033703028637265203993198557867926754884825584779169491943471041423277238832457553985024837932890838104882811477915165271949697149483559765791557192952044768209004328928691394076828940157183318246311425748197221531707586976869260234656070895808962692926486512375529668963317555466428515227253824356727158639944411938905730261791775956053142886141447855482076455133859637598489256073652739922702193862221645864544983599258879349565526184704889409577353657799041995990199296718206874126541462323022007913121740600517182519295059414220349775993324657831256073421624355845588159653866034991681638622362161297249617911759074604012534852318918743094819295227889265028579632357574809105612814330651937522643902426301526666200223976827969876646418252397831722817668642441717380063375826141074493683700760063337974924711974700395929863059357528316366404629122995521164697427463783089999148000753795587908045759270283840449961467796442549158829652887409331769203252378706127624159545069236000456320078035661121681659886143902994402490173552373043313903036470281900129761826430268308536994695960617290670864528592036802892875055487445115563474936265934472320670891421763808775395015911574282046039896997914047754825929349902611315201978739358097908366588149098935758936282563256222406934168979764203009392717566165987913973559360244871003517500496812248739053651693488445270038552418491364690483663068923168883785697488617988288257146003981447721267900713213682158122659293492475938525516008668488513715720108950882086165255865625075605336833270324452573566313075242597913738813171877004376509316831116339556933213977656852931920103756297441671310902740484138743964679524356835620295058671872136883246013929975834739739687754396111457483630942089731367126273823657997521590605902534583075635117400589938170624782922068046829579908237086735247172780858790125922133102273061970423292181747372809023229012124601264202563739935721640640309151918134084191470905947773913644588988354817750517468221410659544537757030576197496320083687366401600680144009602634836112297491622977182765817298487424804184991388835662021074779348005588827523761252654765087615364434456280588370895036901171779074829845784810425378956492941070995725963984302241029903821105445450335206454654750132376680706776152809487913204931856072709510376919896573907332690249176998300603195411359770540425278035828813758272214640138732974220309218032877432776559383216880620705734129872100559425733561353316546276072227007416398761879546594890917124832789661479187151903227518418984456884642565014339720788004124106538465340683322419789506061294984175503213844598317372000088472839020271333316091551107281811985720477569599486311092371420615526197239228593124392802438509831381416360406972487246282604989771595069122330540562177404377419394672445449455158442175048267246818067161971659786201871353329628265996716118490655039153237522827073968661240927416197741906358937580196326315532163252248046676659016041955688985888847849288005424269773084765801253037798338727383738440854095307928449190561722459761555637991738541365522163332130022192051955376070219013240310234864053952536685738432626929904996882659759672283786144114581084671473438455353050439470798166718367332483505348172802175326165141550826486303172703757044747225240090902260229116258609709687339600653778973368558145049211455838017668443494215869979900064862487571612589768019671938496540203099034035862362740078741142269332199755653462191446509745697175904283696109309672589325130168894325881335395849399492922604140410429041891740781824357201249344756638891846875061399814561959330425222210420975601256942126384328873778298320529946901082001636717462862348510900262054480959065742038893781987872417322514359998071958683791804892008448922882767529476471300659275787831662980777352327341733425913387721824538809095463448423369625440114522337389610897119299493177261461465970681714815692046476620081989972158565924548217988267922676758480522577924907543800951207972827572641167945516709840235598615492577434362848673841278264824923378125769717249238245258074254356187287378124369988268928823141839605651795544962135779023345558325597941222986324548005627550432425451953204635062031500204515601353908628946889233106593131045920185562829313052307119811889141213752333870775162522996532966444589989680270659070080648970568938122084824951159766871825992500632940943286142295602760553757474746473299720144336246074356096866579112134012820716043512630802345564651628759356420738073655245886417240668741553172269304726579827571291616394622226182327129804944548642627825939443437299214017522410518122410584054879343437888590670683693133329046110647690920057333565508689974628397477002782991062196924777924412876713345149412637751542896747661772044860464306526815835316495268257315341377275003670410716494876367572205156654960791392676274717414335204200936589213636998622798512874078913462455828607250782469399064851267285224428368536142502189854034093084106232549202628197742365396087523437379730925246130644783009987069257033706092605491992046052473184308326325146276789457239152506272803671676467048564426960288388274764093568917264601862397060364732607537799869250269740096321002101113221714608179743132156133975414064168720300478889577675057499430744720153435991057878072357803937329309869429938139934764382254749845868417933304431164343043475710610962499498373697350259764246394148416461989363655121406508157647752803605127556992915184202301218764778524033301596353187208029791249390787943655009798124707490467409843802259589713728186303282555270521741410720458235491652745229091329068472491016731273894223919092517861408545664110219054441660594435583815488219056858294056751582990133386673449118336310369703756216896851325169076736054901008949097265327576843160044302195060181172750372290689150337840932062667530764610374568690150645714574842271351499962882937745377556376599483773761449868505579157086836109238151685218857409212461545663926983439584898339061451563516411303414971494416351267023431505017413419321726128547137738351212808275419100371580995364813664917201478111942037302460220408749584070262984992423587275914485394584762236609828953242948952110362261546978201356148958485326294739605762435951512754002035939788197793714165808651270753682543997625323783488181208252407051428354127150757069334054348963608474190683215560727682197345052516492710332818360655848907064603369325285940144157774737893778199076663582665629397124166029652738072415256739619613681998358392621674962309439207381032467954516787241135479321996580714720207263286119504547239842332589245871170639018856739135586585920347193559692313665690112546037656185091057579901571855217486342420684018359940298686421160976808241747442384647445225902590630067805498289877674501644800462624948844411208157655351644036048869767689894126168203444889712217432435034829268883887204731147757862946285932472296122826867327580566404146954127542564323185179116364248438040887182401850015866890226830226280210629733611631585803237685660390022833530637418277103360736206257716418193771718835075703437900835132500310980856472592550608271989255907026963841995865741017276215341730128130973058050319278942562778658799319637372607993142449358317259333873203311695393744683578045583932563570560321315676225009388411315730231515010000848503966578120038980296102953005290848001149581481489963672659075400979478863976116082567475782119669698069816366275255737932900641611835619117348142842680668411735879912529581312861831908357637151885909061526712566164108761328548397673159257965210105567808125479020011363141363242289562682438593527853305439578750197298650644071741321720024952650696308646038046124088197167226663197853488817060358395000929339102015778889179902318654234075086560116762479854645297691315246178109232545622069678996861561317029271997957430640635282708373460324804622024853558762002681118566868041477947533813960890642498349874595725212955239992606431421751344315409902360446771779928315123399245543301759102376404759880630372339797411774023587691908947011293615365078007230991072227382527660951117887795552624439434775823125966248311691242372495156380899287078721724319651998635110932708739206268605950004010886213580681549915539026849766133592682784222345584570153130080580836557662602817768669512563623662639122956171908818014962752248709482942160271914454066282032261154405649219270888373957586392712600709279589371358950906805629831253519651591128592265198810200068697489412713668002813228202414435799693946779193872804192906207820178748804823312978605497150389006398353188617288661344021176465174293232487333844446407039800751505952538900207639892959063422300813241006362749882718120931943582592739282652744583670908544388511600348534197075348188465416407046256976512101115244338231302153047983495900600063726694233870902593632453456618259442825379515641025712899980715806615432826433075248283305523228111595562442120545216597064325349307642275177012515866565804467535712904889084209551706603664378292472495756989533807420507631133300601403235005985614550035519566070326786826027392729116687646134065376134639059957729521394211812218917323531720621110317632314589152440954890120989053352336894621742198986029111721299515770177771788717551895109669266838945525441832755776600053454623431364190484066087353735683342069656919476385296386923507968955246087508940923458116841729548194780817511836339593570843911960887880428651437389130442364717629175961334816405683029449826352401626176149555660427384777792419524942670551098600257107832036496761965334960451106964235505665445631992249422754107877890943447100493780446271421618668063978120084836282557981865995749600394236063502317049431968125636412906878906940783668971638683647647501482975715031033066527310623708043920342797785702219471357178937184053518309328603675093762807519639293325634553031996130293453435217426022350022464610871937853155430549168043260940704937335076131046613553272260626400408714800859190384274790974462856126644542161535377512912146603685915767822060541321862675421173093302286367438232081856678969021317971005052662928090866930558663474680410043358031534287856217025399923084343696688351641136111264054468154703168771271526981929148635266483423664133202892610158964276997241385765050964266068783481991181165691038748906206699624650815548255831645812984852051355946948554244746041747906097757728343928533053251950041108675993595222887842463971236858714851620016916425982460519324118475558209194903452647761001722488361901206315078866100596130591248999091973898304594255602475271216099520398196536016906188796943089847118598721683712851131143388409513161065766201388203650240271371059738796758866323979862286069057094036820833109414494614588981512566479040208250679456701164053679779006574300651270436873078221407435226275856760631878780536856561849639212100133193071138443690070916411422248083218028995478327120156528236855161534896445811291018286979674971005616633403732454551027954127904466961952424447314957502788334140366002757482634648488829766295288416787902574616615232590493228184210652325094080066716489349719638676133686904177312869730701954887532209252562574946489930038117590618887904579125040826768422765431435596700332340099643962427741041782921788006675693334507244531975910467192013287041067903565463742322741442973719781208201482282186444070891716420592789190381546191743827437287975136139241252837856990465177339319845379618567340247914699086350857958868168941025407081363943860806238472137456129101843840433182552430262690869799557039560300086708205702713762276659741763400219673495720306687375453180860910790735112448190308870640365471039207316278874450409064090203719677859860402502208976871294878072520018456065926904549976772548301200244714826573175005457043186698771745584292682743108145873281384787767269946520806040025256259887333416356088250856402659259073289279386814462197448806755365100402625426271540991560479711737486120378871344369078538658841983957857104386481955924411948469158558778805387158497214604857531030583542820547961302376969212741317677022691582774475804882955211605507929947133890188919268235928565424261081468739062680444449784571955549237630008561155378190947818078454034152684987625220536478904439973421223631505321667643617137511092505428978288015318347721832993796680450024813380332155549268877767249344486212619564010233761060490443525834513214995792026526044030476532967123214625115022196319443180125161042268155175004060074110117517088613870655145611114879824636659663006668004361585111300343038575768065012829085439959227534331465725809447141502782511225464376823614972328693844745877761073634132361286459360148341079051965164365306995635815947270523426108704088440485184163378849316896600023618140904520543350270710707576568153547707269024989880730844693752609052281715122155241685721140156299101465364526369881748527051328918050824617484090222980782260872094399236351722723040020664010091802115749488088487611634189682127203420426922695393932499579414112040508610719084002244043458041961370271725685599883663462330993921691442111600218161615436336463164317105725230200595370961789411791043024499238029638999559876812096097882861643865080171188900548056813428115206846580339520248564942307743834875771705782955467671934972513143396608862524382797054643251728549520430856000785932727341791770128688306455406535341236500169881019703755013586599682069473213449891127555087115397066775396693918163470412499382178694801095386341083105847403276256033354968384527804934273231635557127213856163710422655117838623444627823060329777793232923578317601634011625456228334417856379004464129938254391791836936388420471253655082804907169808239645219118139672980972139139036275927454704151113708603123145875163157989653399204634286391999413438503856876901665830651435057817428107042022960684765577213237272090070019285605442630855283419406578338087563011610732302146416186900873819743209245852593412344286785012813860433829204621980242312324442440328352323412617668218296019480388950508330056416141885088760364178589710043438030509286886170767308707455381976501958719806618974358963681112671619177400972442509711345127046849285180425765491380106535174678261352347381784652601862314126736626594907774445876447500852991434530151426684086748911501926021949641880427081952803960461002182306995572155183920520572877584740912800483416216577600211096347094906286604978296390143676799180009044983713496762423901671586953871271025393794840147716570677061823344905566647062292512411711427767467729006494956750346098940079515735966889428526831837806631538415030275858488128444844253007081756766259957929650574663415519492740774691747450141652001720163059278216267411206158184373977734947672930196104603478534158020361776418129313087285213989628912117163144390718246668879721286410755979921135561608180868320083781990852970299257601661688335262956580034304573445273911026480589349160260003118846367106876936238043074696809785892586156158005741676371689833336127206896021593329806548098829165605824594279648432821246246999742050147063334791219976026280518582848454773942921669006304054982602700136863394835453669897049330647680501752586991137315272055315705478350164988842351813868607191426530862716303006451632117920603577967657212830075580606488184934003142957637067495089299168752282481043082062365623932162791053220091100179213267029062167670038421868095670662884077865177971613064861848141281988502480988649724409649893495840289038943412042310917951920192496360190364010233417282386145025701259364134348529545660594590387263336520481165640995166582852913246995940473838162060937164613247229230226893873341709431730205405456915551177037952740148876879255008541052032403849812306086333774447590900365311919734290302282025489653132529701017783136542777351012525604008735664625332052921383514045970661021276891176100125324510496666750423110583825533904043265803172375789493946817606589326667690415113320953939633382820010488122526068987992842027893512710625739885979270374242279507597818907020991522970039447824918122694768783572589367434977743474300033198756159740811177056789774007142224030577385062742114338493039404815893603544872092000151910728752734042212513447978371605597798117907444905409115801427390710420422376646875020629483822446784104634237263393239240461451677884060630914411769187412524429054815768062359408424302711810219491669029070148276131304001197294748884336486391891361000443110157557223117469902036586586453051573413820046056679446870871345369225438208432830352843216478929472112863011179355562647036593101631518298674683358585778087767112841442430887373029127484756055944685769055851705983887780888732719532132330464355254943473690754628766759764896300086745621059999369128224348170430132771002684566131393995237728392959490393629386794186471529913774001321860568946985362384950495481147100402820053758781778606751126621936217790167170788425855147059024842785961813067118695209160291631986973011537148970041112260558892859757131652850350726999171466600086995120530275443074121777488398211831427852292048674549922488134409035501896560858556858625041692199583500899401676316734700157333430582154419525329094982069787550345000377865671203001406111198799023538043866077130940982944847757557457374546877669597177582027271027895022931953240114619270831772091498813904070729491730885427301764327395001743064824199675422920636995584435996602402963613591659655055490072578939686264040631908741023553733890013976589297318481659540083657427606052311340058343784952046943844037828506311191595073507888702964240958809693247724187497755460138409891243289254225287363846252868156413504424686061691299723339201767601904600568496328663984813940140702013226181144083152695859966386440122276421228472229789487823066570529758207994181525498667946838580877535726540190575549322627204757640617213221741679241131266655065650386820755177611851642899121093113524442251001199639439171379336318073250083090951623086359968650911031912296309044992611621432052927877479009944800733724361006777187974303624676722601619377151252937808706937015322392084160925314306754813486262603434658265297838163865881173295680835943158874305906885592742095244018993116078696563501997471826996424076639386588900873707129619875082289696814349085457187283638011419330054131990893175294695923457754107878817391634346058506021339441843470427925784141614598712377183700017171081439302583097168136014900245529196432623449436239988467645601905130685263469916043908507610099595422579741452792647254866407060872107240711698482275106414690907547755311125415683934978857230582130509399388151437142324475910640632846692862821288391213412217752140519938511795102481522464801054640022046813129349659559604347431766958682863954290331657152206727631404516425160369339280653127795229485491650494602775625702328098683822086773080842348377417819475844878776644372574574002260411387567006821394340167379988524141415832962119167430324917687217664763286004333025625130563115182722125981919097273020730247620515594590660730951496765066329100156030874184763217462532677999373456949516959173921719479304529429258787558943175994202108212685930432900434523076927704557123105515457814398307612955990414456837520588549014978711517045697534489049112845351742274801364075676797580518838001162406783994843880998205269035977816484017384945165219524648500980374610212057318061543745463740709145129483125446488935137333940194758157886968700601912253806619845654063828528123838699127217009920692068037400675489616294438327017597247573921561527355231073772795194678243578865972433213826437377185000585013333028433474768983146319392020199940615037047573251636274940987471575705098254622836017829096203377840158285435140183016303481790318341072680503477800873661184221703037159810220689735171968464146309186707343795753488718513419083066757437456600228728523583185982425167862045956573108199402064502953409910102303217551042283403468846493370969227451723752682523052504746103778104208927601047575004889354906643704841209824733427078761097321296753665988448828568914308118683879043647498832173909314980223136580801586611612026979857790088945644470389317905110253261192572232279120845515910828640513206726033051862910671141986662991259404015165080353008755504940892419264864610256351877985423491103622958701081572430278812810992544144908704964741468673573129226992848904447333219019515564445049224404533260247266303257950805654763663460962827609991075112710923016607211928724358054698754789804451498733764361883527723954167428122382315918026129464692539934721671401614938550328407906627163376434840662313234999273684743427642141563808009595193430249766155831070310475323400406859031412131602458957876118360946587129430139490015585415324917364902492463608211881855685844987058719136872007659628287033377315263035402245050209953954727139637687587548767968402834411459137518610350975834199574344834473216930934433813876906693928912883613421274635343258000093495331978233799156214670943631086843554164554790317871099130333558533161959908066522108575554824318832428677122035260614281256532517499853838460958203187321527810268091199437954798814720160630523216017033257262204306597092061564810329399378644332897833265542237740809626119168919168603155838140117209380595253227679368241761278720619092543474807077069408725514372270073348222725000301917362639706989203749644560374612370169564463950481493300254796769129275881522477616127389695662616173376389978864735065516609992945352497386178708973921348412408988574120801162530768470016636253969820368700800773436351185289759527414253357150826774971965588308977533801397792932575502813255488070379953151930489197069632672461748567094571287863284708157057487797042295314165466140922162864639334559471734618877509508192590538221398567135632419700123854016681905352976712418905021214722172203569677677499177817436734082375729345823043408450206963966907625700567468972474484553238552753432689764340918050979042355901951994832857296791950067488938226372055627097867701941073374958549643712654338389489914758795539639915985686405989003989200809485761793392618509206394270999324963489492476114043144479234765258933018431619654182973135511596586340994942799069105406250875919081891382196911708768597814703981675222098474523429905885579578240124046026041622720625444355035810072815378653757317576586169035894006460134426785760813914779435052290608310729168382507773907114521392897892518337810786443873771125160186867212746137427249488082850349931629610066268200887088375031704665482487995823855960527725419167880910784203588325037880016502197330733023848659944373907838908374985474768922652291095156044413682009208607430144826583310998647440023913752501126639800532545503742459704484412537515149181644751675502888006605257620754005029242892336001305008485394688824389961781274099508716414179945183898426308461123577552222989299624587039022238119550811898119065259160665082116885263135618573506513833718083086583950652522643356528152938730827116203100066428199246637463799366830778357882947475628815433750763128211482528845894746780686793706658266926078749032228910881043507133780073479788941014315375787630194336455933756523809641180856446135613777606929291475035967603129240499616403750473662832970613683557406270644668600504708627842021692476134411021508318871444777607180643761675599091118314631785281824484313470912086659217238547107675626620035117363764754672881278912798132466397436225361786520646117909179341993629265729610687970775261641397916044765399012250761681609392744248332935624822855370035673638587664902264189203503567303377959830123687969001597868294537879841662324562704438034346363516024125243156443932257911576097778810806594991743067161675211041673404903004164788222130708708838797175839494204564455032893762870447533825414343585355002342181153725423048024524903602735807935126788574325265738651405262529443851699045442383026621224855625220989954806405883310080519134185368474900254425028062177192523057352943653308513429942556106201322727459921838077506560052348905419199974710647851818502389705359204426550865169505153644687910773946306297802131279399670707351310428127690615574925362802891731021727735603665742537318051179926411763638969256715375455116643713431786513146570810303124564415711676273980347907337901221075381013861354585160019114272434643592677703490331966861094080233629840758866656658140148205160537658493555957022348545697418755472794254762934577894960215250591916376257866682253315060784263027385052490467911570498451120336761180934979673006536917492028702916801931654018700545569513600840098080542891666078616944510234689418786505876999129784173134277355917755533259509938641150591549046785091212196604041651259190676366086336072915559271289490746427305722414869893544751238474777582651287853232953699870464726284860655079009446168563265809966697869709644887655289226887355395722689923302586409500825697004587960566674343626457065793249301865890514079565270482463164935433169387155344538285958209174913997286472722814479098815844869339802512720899138460909414922315784387236727878787873710977794968314603538829505786961219342058536516025522398109919872873915609376238262330725854529456787085150768316672205589426052617865637664405813399598894615220281358542613861277479325840442749470904475672766319716757379713585084374804564611678419196485634519456245435848731076698455150858909905480184660159439751288601791338549126787240272048839219108304469963415106012726591507542949932762463126405662669705706258855321722309207238313467377452388713036791529225278554497008162176904914931448735826433634904090320091800574166773551171543775250327605433195533489520412338983983288343985068081837071602130606823098464627527898829916619316761513656893983209267888638107647462514577053591655725995896353664582793942833179650667105874115956297711112017944065012357291924316582344579785479644177906806751375685526629085098275978627593316302247318449698854963101220312516389707986550549934609631128102153823237401112333196004833326662193763185754600278113976055262280446047695993303955915417748747775975662535649407208875710681341646336885714365115014191808265813728653390163822212078685246832689581483448904993691969709739118251310797295196111937213285531918937008864111352261782384377717126999588730372264414953059474410539467045509657724114389503561802556400910145589529294836435231525101497269907530148721605503553357040525435236343107908759934113788743477024247285637371132390216113058782178755060666818687014802835792167305550120096526622365773682903514449211161431630819930498403495903395079475968367311650934182734381370989352816265324254312134152171472102552424651238068012385705481794694511899149756967223255119280452565197984142624860835270900416970392285626253817609546118147094489170160485450634492863297412023118536526512791448024854468497040426485622193754950234559473107325454148887205662167331591233376169488847950664922972297550028655238446609683252082447507471051497760179417448358237383604695499589402837462722076172062770904480324404932361515880175712288276546439477290784045507680991354801374645569147698648174726157279736133048678366333451832316610376829115001589198684255835777633061478745601784522876082303173249223790560754931279753951498618481822332153546154297309110015539787767235752716818828217963783391770783114366835125892528256805200537133515088581414414868577739998744755638264735390789976982547373377824970533031458831192568269323275490512211265155404316013316339733406348152516032540259665272294043960730910328605350709152882876530437848152334932886652986975941690890171299448851778019769355575717086065254334575414630183859520570437169667410478594604819615251938860436968259044490868236946626866673674444430466848857766750812367291516167598748961575554740083043466190735745148457077175393853901869036749522762655801273084629699236314352289503547661195890005725747292560480178556166597815373346786173744883240354452852878916263179919886416491612065839391099080282027735906082470970321664056749102153998659725945202213232987593291097488641021449222830976582588737175164795742273460820542032573728479950862923746902910103999812669546004753639841794079379857001235173222024741861564406808422239264200655702410815473884992443335956179775729257635295789754766075683566119772458460084408432634906257772758414630337886021266758143746227420948573703578381848850763612836452757587935522816015400258963218817358110379654080007514290347233644155586873921340228650223948466255167638412817297197623160286506303101898460349959177807923188708474892932890149657420113153800520337607279983583685030976527467490649600153137955267196010156679545824436628890818768693770965838733602882323718704077815459832163034760796738286616764692270836788580705540194846573208757208710295357299732526021197401046722943996947899605049197661745854553346116654024715240642910078620857198179741344167952180322220076377666132319872612258111992738117430760988543934624777779541922531388113066110611590293403460895297144461264411492818422375627368283202488021868400237358688664560118911125463625269855342403468240947979146076025001638704008388321066999069736048149506424599805199000493453103940622470476334463701853625939820486785641530963935573881455022346304568788655846424924604002700451623318259582785347539447596010887800106825390172233809928780229794239012656451657298298068518957064816144826161241842440185304969702520812189505803900244531875070653763493391722175854059805377125824712638106920797981869637419590596762490723949150375417229130518478264203754217102971601072483901988501128175411164869340220973045041908964617940527113529609654481794936207592256115957155127019705689580273090336833442134939016537451337901066524908425702356121212589230633248523396488291467402959950085255341443262118423237876435838585359743865563751104210388560492977329332458967716228308170830493686998215994614200259698859039834829092260625369685180039838183883831897676923706579700699514919953236838579903901239865614167463023885068834183506072241855519006496509207328233285241467695331544483656535492059410327069085545799989449036211412652289294712796225229900602577984643367129383889620418441722206614272590800626076032003013403251961677441330560899253234890720389795487056546502985126055987598171559131707102050459637522072671923948697879497631710535466068108501068051739654111490674737303573676724790475976431344651347100942027811177838609119022461064421797654217740740776944022210120733836295363277296398388363644414709899384622555056906355210373336169913194164246400867377235858579508992644745824754805770669913055161486191055806950447501719591281960866123509978615009281933050560312370209558080495228068780625898784283029835835317900096970709305387950411124701523646394111925001252500455196345122258433573404250892326992007908048891070737211671276492130909908748142412108947547098152276106282055306395841084889654805077668302281319013140279551650782545064546440035105666125713960985036301891830929836176664521980929076241305887475836292403280262808973042840514487137098278043748869226863528726101654606172076047577114174984769052440887017084916942602719754384301946331451519273978399074962321078100820650879450126628418700128044151943050925165360301680001416766622610143484876586809042771200099880671510271172994545431406071133045603130456414234023440930734690510606583237101102390380455966419233724324319476490468492564548484283219466742096528181674359454705978225042292456222083056516277902000538053831357363241259403197216683562511219682010687709200324549857538768916706092019052166768686558616919811028354945244047160548050010033761162337275084855830643687107982139541017860228317655614685631585113808747815685091442575157724951149910098670011807830869321829131155664819232158363616446018970011360269502591034963699555439499954453742046856858814115295473764896109309551171045584095988880028927440470580804572536020616358287466699494941958401938906201915620130193149916957638411747446159533270398910754810872234284084457780857712375801454373243799506867689740101054499636509428268054427016329837849397621679431077861289548434690787768719463022494302829894041760310113371547130454476761060836008960344847852943792380044296844166108095951939116383833997031209837936938715048393392009230926524882176220305737934667811586301801227789625485476741985719578121073943168233288767137102443928682080994394933872138003276313189272748544382137053519697956066937814350323970846626415127062808772907516914572160934489784920039561154521390103351679500736482225532640582853256691945375346100217376079441711504480336739673143047674736273374850469581721216004777979014733604527473569929723956010954538190276563645856852047862614973734407485466510015072545562612645969212469278954963271664389166490106946402773540188667471846302083900144279372712888269597334473419117637607477571892601780417661720605576259094616769522425520893065857121520104387069480773673715587266463285073826912785777627134700050486502563700843310930110675659050037207055159920083361208802214404357866716347354099920997891587991800869988477940386708014135955923456581033037501250908820060635071576291497180811193880724441534590684473890728643599519537752280780565273891738844878108824016465389237368448988140129237671449499436564059928804938909463103512679074994585565616048476172940096322960272346515840626609115799578526144192339667661607735513828584164845129730470536170713018467122770577309183500974996518852016854183274529019579190882795780938573813093383058978875940829416720829016710134076770586936872450505469713980226092442038757799876523576442037783944437331797229938190780829879292662528846307639429556168228222299380859470936193291218906027947914670428114043381972212960675583380858298654748201305046258231775273945504139795125275231847574709234720251233827806870683385972617967410586327068735844254278386419289073913323919701772118065997822968250230061482875888327589646759775960359509858490019372434430096731383859275015404666639867999975675957348032451937519011628982975025981282900499145867702306182435763862748359836025371899122082371860089642044434102115597135396780231594794049433850661853691106744142840985892685626574478698906176098814095299317033078909595358179727788916149759881822411971366975007654401445686902518356398255697051530877984380962254871768311041183724330151012019872122896862558108483384054152944903527799653913196296372583119814743963853893457174010357178402625863467165221133515821215736702625469221088994864237348022492928653623035912097429892753874501524338965196840516415116520475127458843830349987952084618993664202233419338951920392716700955721591289201551736054332334195141236088341176027716758164840142674698643596553210617812307887811374016107968466117037269215521643601821459225356701758684142018449649535296871849509694551560035063457513005351408668474679494270671103533333782996894929473813614908463773756302417485785935728747796274883392553739583110853752681993768532885058288145839870829674166311577726433995540828537155452883381031357481190007125249487664690475387222035807760836743974054993207976232876180463537843883181539377972626165108468357914825835735634356174054697650903065483140981970634047023405725985689280842584768601866997250897956458289415809217508250628755889564763813562014021041214161654814331360940928500820536482043760930042565290656377534669993282057310136665611878473883241686113851775441285088304609746448277100498230552873033869352498026310590266885679714253585218070750766124927126530936368320869724481488485482615861149558810143366202631709534314627881646105710625719669903275949316813753125564355160194987660168250243508487534742228001857390402627139321575918710503701588225503646006147036541127883338100467633116000328651043671311556461145713036983549570668897663408688339302646693741508620138778619337612198001062046939929168152456491497362174489159444466359968995462090020614519676575022380219818923472194018451297720200259975511044069416174579340366387073965488170228433735808768399964634378707156033777987170752652797027377522725538476117283140817458370471023411716965262658578666769076364424703804530235268480280643037539106022315399821123162333708289525378084023595640303300878969977264448850861102965364019078648297732831723037043117558289144636832715067087016636661557304565433122105471810705243465488636520822072446937170848420738405506258015628671581539480943745096910013719522854185654845415970470798778808047651220044440882082617454175679641346949526217494406633806642034960933327194515535025096107165241026362596987581555024745571055355244809901991874400021945968993343512416058390752121607758614399955043150959551290453573104264024049938527002358845104821660148917625554302366532001279266998352356732775840252754391320570223670595089809515777169115158860050008360162403497631191785233637735041579001197850816210368619480649225436032556709161139417058041355413268489565103178860326210194086823705010342532938139983479020283917102576194375894869155508127334205058697040844702020263442321370701915551571176711956811093886593978215454752503273448266835942236031970543179132316491653952905442916325340069600429588432027176011679560994729983564996420991830644649262031932797428649543290164152743313655359297953653352875428747574427346339804364320888387079754630830936725160493861470359774551468687783449258316721819205187045562931359638172886618175368895156057775898092395119431249529512434710834415759250017280326208492564246031476679980791748848379247172844000962732894714321165287234410749825364433266632320025784491386452212098710970431154415199210354804526503352247100389255836546348809561245334339820866233226082392064343211258537474806698269467569651008497014438150382848655151192097632846554255104116315782676874747719018360406841190165528032863617658009893749864130290919048622731915418950107839550469575279603353531997559482449255434404285655915141784790463444508018057458517873338525296062809456635226867648693500289233285658623599186233827622624072836051436993328993832345321738564256910770963333095232438499552562005977940818898997032117282880728205155111922340657213569846998705852012428663474113714523300051369169101975075166096199252066211394571111723956827418916260348997038198205009436456725365031404013237870168908361322239993182317853412494339625402812078164060868038786841227008639194927194140600660178163469672033259166417034277660160083101434949851655258660862388493897294792552279760037940955516035993516336563230366329931701401684272077145802877158904687072441033593250607844561408538058366591444148003007538784054180162140522067419830487316775473089067804558955200298966983558613728971306683756358338547753225373308909389512341596140889894204798260656326414398176983543352146923013187243989106370417015302123338818384036217993780710419629113940635823278462517882346797024061979345384994614367571137153726544946770005836898874964708610383344899113979532927086072209924525901137643131060105716530892944530830842051911907698702637183827355876076685640981895068532999740642056397725866811434634517644004937890309901277290513256199384266763334750017890569299558349977979706859614301429896725203045420685561435852186720855634995017572558121765845919255707358900341635377475967233674097751690652923720128951078602997060853716565506222268357863187353625477491663310319774347748215122010453916357173762129639844526506827571168999971346441408441192815513999284072410245144200250223987994204378905490506913441243979511698240322717107588779383688316358218349877889781003552828014924953214903333239289783881814482428756025122239165784888308518056310670791912655523125257969603890903719646136059681364493132357856882606639906605599220963949237851564038102943422025454476481282613351578718744741307262101628914361967466066163747141774035568211416507105848280001557737385658671366245955218066947439122026120577245343712619185274499215780861939803999320478764711518391905430677557168753825735839426109354984300602295000608152755623024706448016860100035212413842493951449071230823037100619965246197090211232437016394792102083866131222696629707840067451888806685573926436883181300666119586664550166872484272546446147404329974777955124746503128933657998279580774632175485678321182454145186061255417542381178934639184339699408605423857885173480432742889931772640975602903981575253147313080959818690895441151924241309475170923200341759269883617802823998529410441737526521388678669597054599170198990352551855200215031394639688850278440317388458928071170627788486780835982196203514429364528947514135216002312553511962885276716083968067447222414257944575612740767835451128447208791692214353618248275388429543914913214932112570489450676919859736377235279603134903400173848501633163178866926406528945627199774651381536491027354931146712553611602233901996748693927696478765946204026706490279518957235302904778804549600436753221937274653405207335862746131011369817180999752098218348773256920326193567846470664219734944163964015993312792917690165700633357313466383120846799941822720034243055033173816348857908731975641947561054351415916131714298246166588085094563154932718547274226857126646464345578196389179274093215516296577786974465982576475283615497698647024140611438202068598572490476052412950200678320485648939112994648650500775025828372519219733162573985324423440386445558343715814955247547247026153333101986338829650617678257757195515022346755228982260439649608403500127437868233708809848649005967876865842701608258775435270290180021363816313845140824689916059696708575527515388275304609955041579894436325971877654987466550033254854739241577250903269139370483018952687845077900822940337891022283182578835236290022021272363702549961456822489096883731167351246953607814057982063916908549229648077225443538298813222069854444639370930681064402653799632173504692774665108936253143382558811475690013781214565943798254693061478800815838787106835178298060671281485370671929119973805197325778590737735201479473205250613076556874223906437246189830311951634353517000594903368667263234353691982683895405891469429466309145937428039816639923319596164568046934313789783499514401215420380359400009313730354196802772720772625666715443550244094657801734113915809219372269815630672906373496400368210424857237215998154573160409483816343750252364260988951098089586088949316496676582984958377721637771640419422642730870286590772838349835177937638281781182461296301837663631569468132190051025009629273895657633480602548868911424774525619770616999241199046867989344392658830325267776725423262833950888285072028214017364210148620036672315531783496237040794296975744789246896564703952938835822739757026275346441572530605954216861336242342489266989009589763639664040162622738457406523021886325587802931430442662495073847047898416107216893388077891309870851062061697957938300076584935269099297606097693352519821113670328936420408740961221163026769224834811715629333988337567094343421708590982747987428388790546529075923075716393020189243156634490523860214991667784798726814402772293353436325168396569945469356428650723554639477503224407989880268677386154320877972408643826669552813157159048875676018974227719803403027307844809792597850084555704657273186483599891114455609090829052711802018741588889479674944117479849557844082614898027532104792686361411512210710914487366024548499375735178822149879575237788956310817476874404749768182396747683775861894251804205907885587002952453226206943140271757913139826880821200734916710022893413351804145938518787269499485539703845767675880614247512829883026535925115935503696346063966127377194784104271925571375901789134172997357921028123374196273235038053060889716545623407504222882463418276212271043997881493932286272348580415497920266369426970880632700832587500472453335124460467237990442122738950026283906098879279815780599699062458739470152973908028044914373155592044480772335551163456368288924436851537083043515998784956081946407049896228843115412823113466956072292700125120704076953986699231625285357545732289236957251732640328903281849889381229439099301865169027550757070270631029028135672085623171131524016840690647525603888832600942939643921651445237399224747433331878923264278926972848844662018296597100210214815232795696402658369499491889624477799621812171803816310919398952099884203466339369456293410147630332051196774202569267849460496471446359863941271079738679862835762581448818450020767417240428080600006161951071109925549605002337856880577368023402536593180572371588100148953321345656989251596595537420785271209912594678055435107881519261675544100613858154099968807346781588226568673659296866342777381962715987635680273585382025056223875143371064764877221171405974052719421785450703360774126006611646927008556599833376674889852484842342783898611688986883321969038600023915576750880893080189936831252614456591026074057409112080782089999061958145317685223038354787067394071193063185533171990808329883263563319185871031887691136236920871403519045259985306596539571948340486289147005763004573916736187661112122945943773184415654504821404845161614635396425975555794599182494795117134580088024090427470717807911630824762285811654276416050438271342190008207237225636169152953598183227955029088569741233649682757892346438083851339713256710000100496615726045639279553860453390891742245422743827653470394469955137892406874304568234268223201702651659156377743922740703053565108579147909973159056509685205072131872723760265702066677420919673791069089711545677260351149339940608022589005324097860317108801951614274683489131240739252252532825961581849801151423230140114970714587585532710727529886706166650025614129330799684598845827275679418190108294720976572683909389469948477223113033248788212129825032072236807800019639626924230427897844587339864195516661652593327125232945444404852982301559373013691239007607642238142319822952820529494090904084567050710104636747854924726071465558395394557734388058051745996866461508830757375478998036246640597805827726900472800452128883653978321521398945224239132442953294351519610792815725063374938107411000564345406585623625068975114377018516908772447122090408459438537759790620379025440246251468455839488060436680526020976984832801304938906425151468252497299827735728898419118974145869900714598147716709612343028222495532063012001125815247665043761094322906855106691911293764808373143441152348427464247561642717813746056708034772851646751120061703773791248732152261164324594449498927610928559995617866628577942828355480497156348614596685743211857639675597457029087246016865536347870399877828067860104387840641738640574256847527849762015527853537905666282645571600817327583894607651985029261455816391309270601956992496188534534649600660962861369539924951183981468387632727141194780348165619087313794611174796586211274961741054600289207705813822170612394508868303796791675490987173013670155192252302520263365514192134156592994221189651191429747002239183208042126913375385621592494559848703990604237168564085248813469228196845318088346371355910768143430536013852948803252857747389542832178359215491018327294453705126840114798063861167633385373414506786414116181350366577599927774447035626436088605999612535720058960518814239012915905072936811239397200872300286662909164799293018170361559145664562147835856622222513807445150887356969347239680889152377775116626362567588820368109834782086275400798728651887230596889444521188010240516502243515840218972115347549973221642588262250410367181490292016254143333909233373790887902673728061298677789269407143719656972570593447042429147184951196722871649469183794384729834680985824896794802342236850855067190001903434982399638619225755805136954552077460787936385887448196261406834540321344685746794911456721796248448721865708992776968945956665812209577156534986557451234099200905167132904920465932156046291525123275062008395829511964530425748563013146129499328053469282033215396917625880759783470449121375994686326296327862330132249461777608749432415811429507844929006114176469645451375144223956959841272504782719400037379030881612143854963551723156108527704891752214357368783471797617361047028216917695517895986154584505962489918270119956363374324173196887844818990468341918927944779232467877744770274762816471114798470404938800644120496324491435706851242089189530007582239617457948117775185796254206011729397162507414428822685181698178411003336178223521014041054088015135469511545985838500624318567648033719949412611522975674127342060255538838931959265205704072179785530393896692587006856803760059392604882786480472241099441763899759082028501149615852652514858445061871169871324990310914683263681516745112852616395001481552859108059037377085770592932311818291877262493054973310537175518788348825877580216681892476399718154858310546970206917327814990844623270546116658510737099066536800684900469631518698586774029352333879994550798204154866327355098804535058063581265303445124290941530788865863147999920198779835694446011893144485483852195154377351137349107680399941512603165765703329647073378979415372502697886720677441502712524820877847603943914322239990086832285829842587742017747374606007210585136846170127108621526252466029635614957195903197157737262292255768890679527458720991542197027571268771896091842880886785093699112181346124759160210470861512622556172208574553878107650413691072803113296345763336718164678007438047792172950366527015982654962208861715068029021873302190516380984936344524852319933988885778548080685815462059741297668140933968463051372561668246245928426954728759385117021268977565692726265164799231195090010329543302092909803516567794579608301008785950615112230677781060543789654386071829240278270449371012068765210211037787397583981895942986090943804628638696234543096923755233535599437557134492832686637229503007657251901871839182405282266449361358714195339699060262297738132813323310518705371526446334226181864060000738295136583943902535483073460153237087055882554946818285457814994359592489171143526007746178012675450050337557229660318099092391617012086538849594578787065614040739140040777450481340550924060791130979889720062976126605094474019030730214822610245282445270252575317915826645536575435595123881240758234644232148261339316378327192453006035102248018851618741627192162715458945005175824390587609457171649624868078980379002868451966579017415758447597312058641498878660973689695962656197844048100866996766467182514376576048561414271611520926410004937685070627396599332038269613722171445143644494465842628731583990396425499484903792914027312404327349163106907452237813635451029128588901102148688032461701472107278669705450762280982101837126406209011315974606647614381056608359549037734429940650031862695130594824944265168746678966815484840654108050504302821507941987115122441933334021964776385054647322014035480350063032757280714461617947203408354791375062354515314473665784498983834757191871982067476618402341050406710502799879565185179625616592799437721409154011346749113166404095660206408759510953291875966070094491294551775344642640884291016494047035630423425619195593839275810760878190915147667142222705429344043012494861000690325396526387058961752138167315349527816686155105263075402354080082089353537946356740971080293920751218907381406824638638680246806513363666930455876797983589226957572658894372015749970713031186085726407223467349904259019904624898226334493021797739708809728400105570354010667829510062846232298305200142314075557566648594583395196716417116506907472367231901667059815152804787908920265517789717535294275729824574175257588358916298768943678496651248643937297898336590483550023279892890256566582458628816163390221327554603291560693358059883199581557380483670417246049833567425072125675366172003883079997638343041033871092221983511192170121848316671845319388432780931116519091121597568396511920386619097700461035597381287821865356785543117094196246833293366536382351201306227474228229292779437181868656381658453827308165996849937983795926929667566161026861924906265528696253504090370528403913728249569204981693358712592248551880935852757876704962917313754878134798257709667727754999409024154249087438793648427270438751503790855963761142283740948391039218025874413075314285743847329156828634049897892563924196248386386482718371856335111237308895451168112750850924650956893470420821453825388979567178864836279408029362045569080382517493242456610392922089503577312163433050821176076246066101596519307378632247950556320571679308741107099205623235075316530392705403869715259119333271125204171719873153739786625638078232029820326272527853936337013150299897675367131600225493894521111848742545763178756757215490259404236845581989611541571452234318062375994899204585533678579433138307854158027726281195700580978918563971343301293397863230197818199316023547889234727799856547052485392539028699757438400911777159765383017025800205917243885141360373526523138019357770961566484640712826280811357005138048540135117115341685471240039807300009430907254716717434384416542329506565115450673372898433740394969292352684074309871925016716556852985167851919495300514350930599887643736888853869867477307404157293273047757916386392942840116611499640852653711685662651902769041092474612265659920797874405559264436925740968737748417251649580149576343576473387761121223202853802715324100284255216817888070827527901243706418841777281391256322201493359682523130815446349581859732412576353300854007199809970498218635551685451824497910979256529489951092306845905827840719090466017826941200611887191288606365075578713043241079195104923567185534834722019872311200696777322456090150823057636287865691128323464682274803280552255427247653602779358196512672606278018731815901644786142117409247142883779296191635810626278866344823042335631658111502431381079381829672749669662933576954636163595149897020200327526802978630576202370632888187507268481815695596529531907591520897733452485526476333243596677492467579963410553359774644075285791453028497066924932444908234735208714633762659260564523165345882297701213395808342090491883863758906477677924753727093892879107978008825107163118349503140777457750199477551214198563079061770835964128076445699305252472187925070120188537530852904557233424783097773722961105823517712812230181709409863452816412878717682790778290476559327241012111727186170761379629169799879650357010621700448546056976746963068453437011028525266132922510503583947682555921458021423273490449178501076423404375678660510087592281733636850470565652914226415980328025014783304664411567186218656163906954991852299042242052625095224008292009591633023466102047798672111523976977769553297414099814727673990604255899820587021492720912350008205660884045220841535338999235164630971432961557200598671010930892229297568012221354045993363361561319626173894013185975717176621751414623721908932606706462990231546123376678926431693506322080734222136656472063473251510799109946098890780487216711427267818831841988645310458700476146196824336606745410395043746091220505116477867239325175348403792416851011696877611587990102804596143092111210556467696580390603438652044517693612719026167271991583685224296539395251384782270943498824670902265969267323478374116023467149226323562451201736431771006487886181007497568631615708191297894650125228579743787362729028491203669010874230894229785688906282334742106271283151904714287903922591546090156855627928775534885169784441175680483907410354502408831787723809784643115512716416907233605321386340285794408649741304912075086831617512729530420649812422448929467271346079937597737975520606594323708107074191805993922150641730222892005856778917379856464057962577622326856662762981512887082578294484865169101540683903006503944180057037879280733933753911145749984856510349234617948635529401129721402350681724333370442431603169660582085094505034614354978725161488269337275703606918122428679310057895329251511077403589224709826826877314749160806347355223325254791097671405629998477362015568100013551508896486840400697169821116213814917316446021249131354437325449314710668259057238531359110228050000413296895384645416359085935563940932854132653237240209178516037842247468990186201262292127639956145884775201590043599755899938122871693222714696703358099147810214746561213109671837129546868095184770216768302510132948706785953291173052123842209482786909612321942930968984837651265787959364653684370797797677203303072076277280626991465296109030201931401001077128906394044813772350548610919642805732048724740048645278858193953860305281008653082662482463984849257493229186893613582406175873681524643327030542451286827057887399290536443654664382254905670690574565799427541891576308601724215445282641698276513511219011558510896109012692912172617450835230886217584429798344932807466564218500087860927982622877253940247419759235989876125560742970149440736721315640409775231966424714114224332541014640250493961706173791645326003493423989317462703811318933590048623946866085972536386201377642494739991138684880209129516567195718815817525517875286685036240408346163044556888512421550516216387884936074953590103505267201218788417861347789962025900606923802432717039275549990353280535037204379650786996628209608674868142168673905388929127042049804163641634605593080127160475635343351082291006669931282552784821820951730489753782902798950126166957318708787379383649702581580359793842740300600871594650691916547644897462011400311206238404177792525630669675714765090080528169092453013616979612062750476567938886332750631230618257425467040706668723407399595838480460832431916997304264912731653385219265675453378846404458641224644256913201936196344231708735044092397637817511496078630420736706236078713260072448102370311197689674690280434629879903702942244999347331039540497417850259268532093158456261850329350639246643513294588497422306066665005870693131981194917815934260163121898671310486315154916332363267239715576109910581875769462684910293186123100696238447537398558253127495035530445356948848258596398291499454514734792024497238303797755883724568830556838529877608841534548730078871719652996100415181337016992193369518798559938069637741960635742893192065464275999790467820282673083872758929652160690535737164991676960101869500371060675861770493981201086659320095535030013848481951161380368960299119904708322139645576076986915681028377770842050051727050719963034067585649039208496762321156339455274158191611475282954224315025677955375736930350444898144544144992523053965610228985275923178935597519507824662157821388609458407913252508930582948021651635344397400330322755951504045260421633320403164168980469175279035910397262368188078259247000512147256789042875135348383788053639985804712265616803668457179225728078374417848097586991203699693420119880566703119090878016063284580127271597611689597020581379230735643520710057620264723943413580954986949653444836544297120487244369416398218784046171566790025959080183494271553610912926863351778670261265341119729672176200821013195852340452346218523959056158811133858467075033330878035319069816910272889021692788408304728272668203384304083276889686497354088658469475510786858301859082289126354900856411924087936747973102242651965448957290245996789044189854127809895921593243493694643780416488519252145145524492396107825420828158178164576534810555933579376633255229780015807314026015376388340609291810558706122293814933695005242373262603210313139551860919836209309718495893064263013411043415906907704274308036403741080600607720779554556345463467355165980787322155820688582787131034542165971360557232403819962276852076697160486448967211219026345982939637728001201021793504926339427379289148517096945709113819526690426761642903754500854717261913073543680742365468363694128221790692559215607913290227473313820124300504416277780632662165420512199392393789957015040325273373517918921157868383458726037971514637681537792244025398851057642985138882866137256254212009239683456785389842006741743898389187010027861191934159888098577134154942783904016131322443940640005229345881662255680537344708667161762204027730658880032070030011859163189429514621140420443640434565960442922781232031450862337672404952486077857757345021391730191234490219613426727998206307113294079370804304543470748001657345685511666490323998749240597138443623099298468260608601262517871344470889850452737483862428394425059685015715785214848831774362860187250237030372108898229180005849048598695076842647157914435688374847876838602151305408387093483074051927586579411396456386689273659985873570829639783462368834346825345046396018145900861912181817857351462069375013873464471104205141384505494416295794440532083983480371853758783065757550818582999826758578460375664987741666795907787476084913474936070878519869407376205642136837525556664975757046542566086436404148589079686283871490720674908340006842262088897195145581091430949990299703471553987542410601317508138633727113035773301715471157572746737999964189149609034550420538917693134685065984735056148277133565781076393598390797443908978027241022022250523925388431716209519010802702494560181654648303604772097710421078099873374385548390250840673549283826469884718215460947738430328408209824212910555902027129820690202770525066323306309312438071162906600586870187042966294790369144604787857303838306580141153788046261265453010849726287497678979751939002770546883355233508942177018917970951367179044310009482045890602829471369082464108967368637130837521859659350869299656124461710907555394878068555989076779568139508763696506256257734862956261644913858451521221394684329455951437611125565068350726661512341532984475588446919430197236894612879836976144386960464715792574396150822890238222660518443415702321734835517564051613942175107907521137041906910600300093195721876712869419095591892257963511330438220083307474085315770410689976642419522398229561780512751112476108250752569629570503750437016029172938257492499288784450618471771147082461855597637930870641857890210988819528002653660378885063821921880022969142521381556732856476340594298605882704812301585605742567737593917197482594298774971328652806647283425033881827007221857979048600357192561782308091992041492646951898160426843893971335870294919720157229423640178779604564707362445045944279994862844967420332413778283388610474994598326047368602531925481147982063844985088912714273209188473739314155487873051145779184754898514406220277417636783344432228121244097064094899268631358068453918421175680972636388395733143686948987773885356281656472871760894698660107777334608328326688782719088806611992638694169874734996549144167007605423858042037422218758998977933992530028854111105975605356424771432271145026092370353918328789814170917489426434832159165681220283274832395206129203999481549694982425974713437987979061930435533057156861530474948642808250539654604735678023611594085552000125596369938574801360953772633727586910940106201896752339660563685360571943171547166513598091560535430457841289422519217160312146974504343426731655629329313951919668101326243601886664950094862378934786362852799278522657636712683464759529131569679962875937956917072747410227937467472741395464553993530571481344765281040828342957794374121851026976063177575505281684863694949850974456701625918547316449074690478748548294394817811381737918970992461535379239824021078339839284912733090245253511934001958352607668472522327760784790792322000274237998665746228872930075371000308850427602778092802418398027758138999502441062069414095358539255116919976660773353775378695093185117330971513359003745484253398293705210238793720312880465343171257621947416073824208058615577607910016215768979640348972818480889344746771858725884870932226878733509487491700098254980013463018336481491828648629428116215890013121102597273018936939651413542509222661461878029245166631628222661716719442778241786193312884033764964300291852881327174137742216624289288597853171540144948104254157015165607649646408289359249753930322171684552718704089527476499659752738416868466898234072598815623323549466489250216372943218159751200912482053173617470582165622099549405646597002688077044273216214267830512821316348443219084295625249868116655297109486579449750662103470280910471388699566195059849553446666589096846647720132232423466686137216858026547274236511214072035842547450944447050768710153226736424182235834910829847869275618387843746541823754482098063157168243713860280114678803424525835084776406228683801960595921147217599372752414801977583723649210395021939009421580144437727237490586520934189377211573013239333880443214890211851540428603238526541366143285086133727542910147995308424599952490966441150581259242644682377408693255578371580633404299787527327275334751661325365149631682788097761189145040767679350791334183567096845474402044184202017177677587579993600464108507495637399590670256983511602499356267549290062737970622763446209488901930118783448497727713722372736965229829665927903710788823200720991376185207753749154671267212185831275401454007958605640880440893346385310284788127865541443221074498924225876705250585095545499334856227626022869329956422919982769255522797081234882089690380375388013984461007341120119786809023334811587721594017881371568462140971359185146724219190429604524536407600284242216934040365630028759459893804251095231229189129343847623831474538920419926777844438909545235157130130928578608423477167776118465494809250128911106918182394889600057088693005177998439837344194725069443863667021631366901963108794101708225348092239650298173765673312512188874432770873208794865668283621112460155746477311605509465603940358415068502904369411801185117217401322744329462205981352363684199915974576918871794421567329326798629152223498511009181255024162095288488700610377790896065753319737001857543289371313893980417208474952002784879641172290733162079556156660679839397114832293590322229653951005893570311719812016920127987208163932679395452755216157806055554725825727220336921101534571686168132029824470257520431360617839997311083591898454550505245029958035132715522927640549249893032604362348124834374150647896084124454843402139773073249294532727139735969923718617763454440324645805810574426640742411716947874899151467566561659691202768347135454972043192844034160882953227645345454514920672514118548363348730978365325741690807550701779166890209027444749089281667749522372307360101539171592159166571248854054824632365605115625491543420705691341509218888103312884327407146968189636635397574218397830477493742350445836369144574745537453205798293509933849900993356774778028376432466110555677245642157090453672793084146294074737304014015448452244616982640447869979625437189663873018488013556209904060015008325679295354225906252899500414808249009484392435574329513157770107146890129623706253247960880312202453919593737819104706401218993692150552395708549030380320894634043471199783485773064677580070446509186868197082082579708288562028162024889563112983331836226021266970512751936567307366198595429097524242100427086422490994583031251347020422660880650793928424084379725524490162773796795067368859523809168960886974360236783960493163188438726037760840193002022166174581430682338833970659129113538761519393189760085660596586673201570249604493887217863604950409838658704071957743686420173900987706711030915883584520740476086809565340638417135489246503467507387854701951399871042354228032174094577020031325507316551400670902435199414641053989051159135090184193398224459525000842321382879904313656000250554091788037261054898538301516885441503587887880027895558836260537721996974273661654873737213173154319110844754674402279477629287918785137900268033901913784536722865319721239755724896303364802337519640659830557110193354484262394414744094530190781638043084362805326176856583271844909421812897837841835605959669595298854142587891775969525923091024666917463424098401270386544261251500599042244438788558100303100547907095539334664432142600617757521980282018233285413623333995277817587433217872927923150135816879549927316654222885056784466215159234602140996650780979543931966624432477705747482968800698808880310155934070331149644208201219327784355680590791454099595385814852709311319111272706475989706967740245524717655838237234329765688478476347436364833858394252010051810914157257829835665025201657198950928937151583036504031767693931665292640836765937308415700319803300280036370876912698936157391661453752319625162061947779442573424478687172449316031735660930297942844297768152037282132697218127773337501831517314747590605348554594098802093574373685744618420908290819269110250491562366904960980628659476908702127147975995406592508602943471801530495056452134450603375897591893602178257285598009354153844541417207022655464432434101376418350781867249145453008705412768671496976886650607598225328252155305269628216480343824462137928827827914074946317337931008296719403145868739961996330982599094328898018471756910237736501825055780251852281755564019455852398600701840021907626603125295008167707688079365360972646865230575156485285210083368741814512525314552607737252404872295387087680439019083354797194560680632784062071643981715828694606725171685429757111626876931381549596494125305996603891830646949841894449537781812789028608289050614946609347483770012247393055565248213984195359317222122977683990066724211158062004712943154422360776783666439117845108511417300220414144914003053471005511178347090983786911447827487543929410901921113424194957770898006755473132806252999458698100416121586215651966198581169316776614809961683822683568393644334655481848741320286821459488461047223713343522072887102709720034510814174327750091133579511230221944012135533092287026467996049278743995444966409413452407512428939676276186155462422184184389691575840115640253983648969922005346362081142060341651555303433656797478572518768623262104547833453589607829045114232383920512721920539558982654317434901424154936610852833600317193101201470047800697160286240323835332794348862451555165301633982597176013464413282820152684964993390557048300004651721047992237476199709480082152659378724014939739381448468572257841733370958352777946525389529685689569517055677292756389711989680370334468885845413662005201887367948759633635052100671551206105175482480484595068413877915518775380598861189959943234931142408904833518198945198664676103440425300336920830948741894329336661959766393451650948301910413240458889031325427172632843766388472830919441735869094860164693302472182264281331169671713665125919278004815880652649545040807694287156240481139982278345529250253287501662181174619815404709154831706770098943871872074876516689897808475493738419501476031879614863221706922903098510578379789286544284868588369045114648528608610181813312725283772889219768183429758348862735904904286753801228923634207818879872183651273417210131898906071147367027420824717257943240214931563247723919241639182613011690318767370537912107713401682037038846703230161405938756282169634692261901624987617836335696538752028718682954770049458427991634119361505509125848218731318798355152991967104248375607595775640859814913183408302235265770719103611075487680782240015356582747059632362695356518457954638456801438611849369251935133982279056020807804487180385755793726913439464201412705621905917303006380104443530059252729475356779304146125122722930168086325570415574941049749878226993397192054676742578371434327631346958054665120968086151825736675066647244951094771654344747412636944788854377537240976172900544164025384018368569110229650885991596459789161523302867664133731767006319718033543170045912520551583816636539593304388155167797422790008071975349954753922687350192686308865207208503514252571394985344882687974569450924738557471540949194092337129109878079717662965365776052276002352839739822906334930901971084966322240327351076623544288170015773049544716626925948627245587852055228993048745578700718189570175358893981662191184042500806074564340864235582176687667402824715418509583688150881089861898883443686651869079494334856577875949497403814698139548532490926825760386041208584474939274261672831493152656053294700006309696287161275079599071825417466914154557705709690291763744926279329278352105187583646030298422028649573399403006897300827899510394178373569612721143353605875814502106469321926176644385449211617670525814586231893150660378100952950809305937445517983729568920025365957772600519851209488124690923035542231227243591004558459902126192456299111038853121319320672082573965789349037634302342451666849799774205038839904012141034242441294967905385509483438088025298495645355223168769887151037794548816612258683685361081311297242564636559024447224291535194814667360904969366564770030870406920912879258492939825286799952045026499977492394589320490364638706070979304032516501253951776104909608797733598646200946941488783026086973814967154080760013214962400247015232123271212133976508750676741819172547145107781867513201321241855601468410069825080605423743617768911797919031783563044009705118851632152872090697649375790990640000765603312269211680371563297718285556677086310594084725559299094372791376542815753164814522722618580561908690758402310529374659370765005992706399061764097611854911485635685380790122579049160061888962069950603796681235518025099803855179345282730044248620621765212637006022674528698612567454746808388002067626149164693617412280865086288842213271788640722823887778478932250382851191887601449737901042596373582851700810313290990711904424389628065688727172324777823776466215929071060427185213857568352026032640908018011849425823633980987678258569322596309816296977641677805608921398742331101053904338790240716659892597874266812123877933459403499204321909828165093219118501585550018343508316187530188745430693558791085357326650095133999588072572000603293451033123311772571043790337076489441184278062627189984656326719778431257167434803721954222351656338386088400076632357469066674940464461972281971223831198967066402091365215482745163938560975859767418250307000749461948103468494480957352494642417358700669328298021559831759332403151505817082370180457128565075202095305929733118468970270829753213878819844147761539810035659097350528102001564904950379805245061196545421073498777871238881695792961740114188392680038755760657941470426373004578227938591770829243486338248337242338400579311549405710028815432307684056528113133120378791638205431759612992918076251287819543023914876730861198114549912799922025001437674591388497737782568755214070872609676798906006713816541785961340236580746865023931541563170095288944772404953879902227284741579727532445120124985138827362452494907465485607726094512122814924060067880144081208393761324800631920692498093215791565349451903070060728606550204011654285011746277291760981591009167660712877196975884511174163034548147444743869794689334996522225683008253556113598740171262007422246235226112494859200920221205808771404738325580715848833776900945303548194530701875197737727692250320075201411745990796673819299592087433338033825913372229562779692703759754248653538436778439717483775768253803033376712890716496273097584686705813726569637822136189731297990127046072230336606293790772163412378681365435876653742373228114891623624944848350347350527503905166798157942295552997622281836075465058452035272915798848562298508789476782511833688443671912530852927554387895365760306827347098273828142506622706707928462112623164768216814636752843029708918589749151744729766855042841472237572959208154518195944164919625334539545622613308459343741543056418706423683854502423758884888297681925779433425932856865982040932201876727487252023127883380487763826432682027472062859621765088872705145985031150851790949789574055267869900701213037429313357091076944013297861808910521389650046500300924026885283372069501843607095387155442896549388621237658622219511061483324826197371761474501608633596286215236461176740653483761142268912484313960843671009165310000744496807422281111764802546364679412559168495673659525319123453118318244099443763627263601570208155451395836542615530677176899673405829733160574981413469339589669485840265618022507705845951701292590703920320830070978654218996371959182995769754174924890082937968348339389526106981985290097628351322106572529603013036037532747609063948331333638216342814796092004039773170990623506664010199246724037824152590529599034143795534700479287346339471634721885498952446985329362840813706430782527900781444867060937541171409636816758462037052361600490875169195245678254519540096017703435474997766359592600786117028585149418315590952067756810037958541635466269533629672941516022965989242945810709380034031674846047183755645396223510174482595200208191526311141613524929048054189083939212820516408890303459310934511682635249997236389092965912356059027005642352810773520565845067251663754619761719200958635762864719167071012191178542130634455940392040529083289120647526879321520348789331097533205297756241296525640841808934912688237468559036046060892640983818245636976109508456650220835602239313003023066519901826499476684460054016919054648461488089500437817808899747577427763570067322292005370837188482956447217639064721030706352709045302808071785852387790189394562607651284327708478632705796873283339273809384401293485634392329897907042161611820933233769457242557027491715195063471580239785652637141591956272639835821806253303828478183854900109118750255433699705319898869769819626748238007498692930140113274182481722585465514783108641800015478875444314924583513858842444848229210274610548461516645439459063550160141704487708711295988719137134186066273714954711293028262620853791444009769413284316275064175276244313044437377563087722341186886773493830733659308524843676824542093265393839675709613338444307824612354287534491251157248053207166866407665999854133366932870711846739483165251162909061691283198890497674981988541886893463576839411142535304052049994675138012807609119664818691095027937156816352846455794120526857241694749868834145021735028100672060992268857712398452794153235633731921548654223334694475211900714806314187239297156086084493024400487459857709876647971852851516775428111407645947069850888367970431539179438853153265362950506098804294921958688739957497093168898138068596884608404708080284649797796294670466598458022428345109844636645930343877581076492603716548965266094572699784772887320079864687492578133753793121547576125939279129194866669185207076947162706090464109731997410438990064147443139852190871731335823504363305466968751836046806260221407324411479206531936308078667174842464930141511455714669723779763375517971925828741735226669587579594501276291506389273938312230645527451097335753993941202424955702125067523839534036192388022478037918062419242303134085802197910759974878761774554427804229955475437988303208176514319213766291760574729713751176126435895794796480708834889065101207555015065988629752787150344652013620224441052249795816064214116901004894448731394699276148180558839979467668407129412093187480803755279673035595686973021503487455642621398826240010440011716906227083312439153023219007418061732359808484794472279830779656212622586870800058524046131916344829707195158861621994124110546044556856641657485751111521610568742945124541447208481679222961052883586547541544860751967634514155626089255886665366225600811589705316830516912892392213597229966662571377396120983030112835601899867039064366610735597316549737727926217917890770059746161037734026516516532509198104621844096194406214817054924474377995325364523553702456934674259155302281735531341100058774339729328483487897771843251467804207783736720845179616970451135594871538780415402904640926928372982762351518265284027842600961780127280968420863251660141504397238041196801553401200892132394362002809633023149473433145704373389565752827100141321944972569765597629977877634332937487927890397697784659317655341387890819473668498736499248846643631359381861405187646308516638766042022414425851912833636250909092399869518767015200897014282024872242986923982859270821119639839537104933316840892492820314779013346384983695328696545758222194636631377527219223993920171216235539712278720485265371880993017386595305535735159633913574474107641053615257828202163234120042570359500660188993942481477638701137405316314935717047729323756711158193878523480352499889993224271015814464397808463546916775815764801898461428824671557746904151224211092251170270337183032835682666653798569595060689732008927166172720677284766006679099189140779994203106371286020601078967889006162085037447569447654324436896564716503247729252282205253096430281128815165606223461584016978444399741529573969966541485048356841440384558353300152768722051077527884303298026862674132152293411901461202082213856681778741526052627651301396271482868392685527430834760727403428358814583722865913322381609754734899932033164382854779548460888431112632345639667943217471222816307440132976882896562603234206398046509846025024486138095643478605125663961576982953580071987332167407436196654828772266107054557994357028249714973027557225402955683794158983131364844539447376099360833385265045017549009354068982423355179058657289371389100932321608195756023068722244044362593878550547012382908347817943716149594603298750234905151084382049057657217108083025715696808480543836465232303986902415577215953092310503509141050518412965883257052899576709864160418100087429781460326757874463970192096756083524804281561276668089385688704512687845568645891737982934081085672687943383540434825158979239396518816175263470644855154008693785646502431865203991449262500094785760121779931406767619207229061939505903008424079835712953571926879738275024054383449216337828553291728694371057258635611151345205306172368465502068589158077749338542947825127835103028462843449009299593002781851897840533841428828837818452996240237159076173776613294012156153687830193389755849406149471677681712309660040108700852911316364604803593952821393791680366137233677207499424675314584586951403309703780490805859244499808878979034172886643422824217411518741159671977464669086941086791434310269186672060390767881525680301718685515144495163564544817340390594964918622025782556689373729455980708848235743356516872304286396000015801234958557822703824930873615578033236456491545859626576509366717485969301654227282684482212193069342045093343463669177883106972466774414878122122077504197893070778816667531527885852832598319842522130360962855071702456311969448802783675618300608597217269291778665626758410000214772895266407699406622289120805689018172088887122185249094777247809719791670648564611365832357866414728937377102766855258356344396224859708914097222092894719003777111085487961071067616982648731317678127830032556965183172555647191436554924051507491839363571027433477204242323629515015836612159591459220706721285282226725554587935792524233008325040944360112356666719610256519050313420512469479808982176191593536703986451192386408118384745661124287336901960709127845506498741923559344276753659391921695791820569001451810149557438269835085776385274486137207915772323589605318319903112170021848887935532347126719798321383965672347768761174778821346385715790985674305154701144662382078788815757764598818820553325673693342829092194008838635553410061769885872921111555115622799734167083017078039552674228224299992463900401804935189701873642831989912239616470414999356612567610213105374055124099554029065704839001248243505384237740251041375884074484309874981315755152244864122725640382646333861208258926094204461855604265879806711528790620142166715547598828217419541345558842189418824178589388494300126083531569126741872636240494254492956301699392953310864542029811075821406832412137059436014172287220149149471982315841995486248381787924298167343942849430778916376356735581475509742731667233147753922656627989791236017402083068415902476431015580848192766590954661681319861013271502627847332999999997026713262388330088946675665370526489621121035022764649232360805401837456841823454970738359217632944528583943596813488289843827083579117929566462368178648430984776160859059351899342618588736706277463426416802762282470945220885158375753265168152936573301313386866937955112152128500913553401262923129037890849833253817665904576337068059547253203110902151010457191314043533372024374934477352265375464548024057524328359173168331307181545486111529785852280108490595641415705900476420113193349049018196958042214884989565539785942304688533350057510985057902961648973135167597316597867530777728175950061318513509429064350244408219138291367899657689952899241184237984699859904950556790803653904850210406480825731994075984894813833812694867690309703194251395967196579565806981826650336988351754557286504233533858823775799953771743468177241629946104596155128847073428605610817329882312036938842669717437944881521932117219798004196945840248084290160511618012615528964859225867919028850254245844164179369111464239686600768402471765172597422013752456867260172586812029637262274317195444327702959975202028847095016662069758425720343814013249224150702245831597043354614922077290642897905578694276935041953201906756456484735573188239552621571915794762851235298796527013038997718610269597385814380299776954387992731605597238052368321406129733696492311267605405204058759052049883663488482392475944464442474621334477923224087496727276175183186253937121561361575699725100449527864519010514766875909154321929332560600357928388486185537356440725873949389672380171589672779416826690675462435860047407043244011014444991402239334361798204490211173720512822092704230923846923012338944815495463720717853718549702356784120346747846087181547581017113011496732645228992546855869201092008036372996833548896194729358909693741524502105553297196938781596327166236734154436451271678927159738913753324154477111202742823039654298960781722193697213232916978191541592226579667051197089647292780826984473936287111183558955918534466436131931588230817079036517464273415176064365446343630243245744997689021004707895394861789118983577997171896522051004061051554194678985749547006975254729242644033323596418629931144868013632256139623600899592618555699831225130212653690193228424490536998055308470085676598268095084013757660633819072740182010353908254195686627164088767496111210581029802819334889737819036524413537403159966828325949427479822500783019887075846933577099008581670863452095488219953709732140927266359162940822468210710770771442817802253900071262832644108403055410124566770412768761206748571269901016469171911650188643467203444941901859270903312824383425125999120378677265823732533665890766249448689477855910198985199992358304908230794273712056810831311897807898437544565480179919526598256947067919674139109249643961080183661302827470480103490885531971150518706039256257704475090410771067892069650182993126152956366989772179976105804221220727599543176208527869550135384369264619656125706829021294735333186781863858280688999192357702951787812984810932506114132932999227765389172734307815400373277798907307768090129432515983203919135798131521193955829050753413016364226401476186930200894619332723132673292899810053940647236414589093918763137473571488663555471839575108371382817431670825379785637869163076496356543395673395802601648075435258409932834457943434235530458357271708521801583404546984937293955286657171810104341270083712360283845454627602361256418987317858612302059384381015130885988224741320691172268379516994244630111062652344913157332831537889043054163693735670529155458645541049767547107671318782760235399960048994346838894318503213875370290224242950884678196409368804725772639403177417993762706572547236812163844655818694601918239440862013988851140658954258940444246175307149574827978071368510088636161608747847289924746780183825856511357317013755319716949112581381050236725612164561798898726140575147244901158918223334222869522922416644423224759464502511248629157009491789997090320072996554715380221278001339782118206712066087552239781031162223132817852290323438922718462499131779126764902204421640452441611277296331568454130692611626314554430561753653290421024173541223990812748945641358668993816733461365672434787613539857091736059593296862832605807044291597299047681660862789604969941672246357655015397093464249129923255111538283881239361433250586474767379861980686634762423458505007683611046175174762500227586106318912995916665928498052095858412633872954660309839192996201043707911722070091267109809701595140933183641602710090748890369750560687908247305779438412654276590757150105486647312162628412333537569502279791268883226551514331730123518612828328066298215983468396014485137395079087845705771767417590701408697665501244255314704693569489772848201760090784029652806974003513997739317869258541248478070695927924130933971206651633840856541705526383337918621408049644653699350535762115658556206054118560658790506643570998346967898521064456228315396565566247077092427598384268522154924848334038166908919993428836937193037633353469544696274682235737182154815735937527941914935507621138470142617662185004991126347217668485772919660293667160547594743494088578406483832990177581006904927908293966326367974066020313775506265894639095600728191226062217275776645262253518245437405079113832713126481666213835747956401565192624284673217409806493182633546951387923505347544363487720927994811989451442085092833624727794139722633565912548815104443960579122249719536129839982579261522995102973253134240838506265063037814432594819767420735669542204899155194212800759450742532995448011201718279448358245440304389194672945953227285583468857263764622688695599597265582307836858838630163802458665927952430816581878557430303312694860744491997888917476809495997012071507098636929204728459543139200681502144399255827451854881077573958562847332477019113903648304592758779553203265634978617757451751078548413008205284689132209376709204667568105185773779097625009279831265862422351191623295903241089118371748039006956677281917689191824817078891006320658249512035051814876642556366276587251990327611922370919085120870390761763341249054387351056864997736144475637636762844612046150453173317735468291559970485482906990401572896889268234046247205393908450838950068369592914421780093233505660177849381223894875290617213952421352642104304896943153052322440981160375072647099618152004340328281132273781541872344020577281475409823347352533825903717186454552656688755975929465478334219933861794011325781085867948311678943550307699644632530427433790446632519855956577055372377149903886505618009224838778246951998668386325714760908242148773330867069121491635664200446557659492898869967322355553605065244477586231059767167414991141326472985050324473553821342453793563416209436647323484425596088801592278171947694457210014285222505794781123842511802031828256151354984967347733673748162275871977810615252501566429824087022741765850887971673239630098053879140311654448125121477585422562720079316711941995134905712778514117041036247667875365678453445249941446958536694675987640665975285383538550865148215348412173852341324657101937681088899729580998724154381516232890418720221968612386995463960579161150495859157619954290918915255067062585424346696928763513632414541050224997389767085710285015239124538295177338746298229572204065501410547808848748114049973046168709311460979131308342799957351021228592370846708491032701224548087132108266252303814140366704198238518203589839638197586997782880423230367368010900657783348639443378888609378912543046521162942401420010854830433314204731261963446347033543970320368384336751880605659860234605491407854920536227274152644465482645881080359474288391405968642274389994522040737937760704501473815609149068510817533789263616862851817901101826650596846812737098205749281326098276537035100403318614747105804400292576102473060030856872600178730943308161621452955704043856293526313434752285167130980404781344320005870049137680254289022703040849146030584199561349962449219639960172199390255377497740671776146421847566958975032724759106365202103687380720321073489083773216541513337108439728739157599016667429118237982885510639629934085226053321916801729797160013146292174539011927150732574463149220083419461282076146407921411613092105891608202741675115527784884619573169765698601715447975681079129383922335297257436665187658030917406849673726532829590565305328972705144061290130048339320327119124552498764581229265476526512643069336496003021114567732619456164338961914363676794737616512463150439296127060524347062731050066966916869231207760130498355955035029148042302093458340116260537962661476752799857199038953760748538938084006704887166134865662774849250542066771474245351430034307286990196336887852712027438402292462613085071890813437049739545121159758371791103431802899456612291470950976927180538640855383853562350790425320315186083999756941501316298420435996373259938561911663769637151945816079375603423872576049719612902083747480989653461235169841624551910530938354724161716901437971697550079570381536429484552453087555232924106851623432500959474226165798104449940498870878418177596474911653219054321069998779923104522526770428671257370245584169897299915117486310321438014204553556051899824009688570098187231982261930734913444083439732848007011023021836765164119575297191663026881321314218658125953058542959525247637814213854493042742927471246431014806032498547148029670765563182258528038108078490884564796311511921526124342197415278770977804996083726594386084647231437287711001558988228006807832416669572554518974276533542281685402312734232048253791259388143057797142918024046965589952096198623317521376961327958710957108651346433390239844830369618519800678037071316167331467898404287396299883208231757421771303721360985853840450867157247068595101357998142379005626738837617813871846823368037764131162581089616889468554002912400904510595937565395830668008452656494981554781956380856606791972090751035039707398808578783111475826869921169670381731745770511260435369769021662316523122965473242484371232699943702062762507340332197488099915385667976549188139256021876611508842660530431816115759045915103349533248892350718271160255278209317926260443626402428794878139633575014426438881782336593766932680425359800180144515880547939485904696430660187808196600485519800732451829500661872449170505883700580527977784639828543984759225427758495118015765781865098819104864491981237355192139473973561662255089497643066084538793219239154535083651916029530305211787180474175446192742902184530509956115307239990198322261633709953306401857880076389026129930225673443592676708027722368829061948822365795151652622239198365381796241653108383734687058104255241173143693003490835567671373525799320261333566691381799360137420175900992079956553964886560756356570271831118717145048267308144608465410773613672779300099602034428831020242132250857708390175878470508120051087834005342849478244685850304696310515916223852768371333496557722158803650269899825852172718551639452903819319726692610951655406479328285313213933493153935673112837538093726495506987239100117529612027682923952010654787471142647058840922831001072304598075751173539491033006184408437154307600494562454186246172803673327457014094257036638243919070202446316309223553843283097270163282977498260072901214863786000221869134011221078403906222297760184390581398990604893935375843160250637756632608370880937415877611733925382728620041121836574321238841018549199732712419739349086247512072982080700765369453264207417252641524954840141060505423060675987686239600477561937642015094503542015374243550686947814622376365585300793163150982542953879015936303292901524290178280138920244758478469303794949078722340461714765710470366977680523537441568086026101633266926075743191327496401610512301336064416170249773730493909525993774728007809791682333806243813047895296179539527438861381533257925800279414003246550644649218351983184710615310827515201635714615603119867981729023146054499996253720655232504314840558748181991177399244263297107212226132411817473453359006774905098393179130784838634751503788096655294754823477130338710944587615744367864550893369735019051086195343734286407212399815283484313550687579563907806489665048229003406074131939186687663412106439349382180061405483675470854153480657922834145353309056177066697796672935104990074956020339499053646110131312189980495106506830435832736973648127192639991673305264551925478029844258621658347572031383386465929773277161320667536569860229840675799642211715600039040039460390036841730226417644633046196800792424405136934734584904850816690803415748774269997029189690828839240453919486434195258041444324963913698478951654527402958297160818553078962334600494283080595179055156708219861530710983502489669658367435039214366727514368426609721542628528422500099794624191945882410839875434542230067203467809560453395255085030268417921907284988858150097634871453637975932249894867135019768675787369207492427151616536230995396487760656467793909972310738369052374829128420185224698201797179898531233133990268489073302287059969728637093775584261722445607285289712842192938116633828452518099834673622816250099176306854422186910953738498125966869254806090214462779342072198511752593206326286016683910671923851391370484175228745395744261622548775087883431334196402100021178952793766569765122418392913839979675437612658961815448048126468063029791419315488952563544779689798584541729475037489853179261647817786722596305593026867690145001334450897380653937835760516508064810519572237227979792170546930632334238664274783504974481285174607476022252375336648685768166628507712738553028803505363942165074007215957086226479646354913680871560212672068241792142926771476261156213824279005124742293074809560641778572859865863556193006925989862065951529155821245695245836827571260721098370163542245410938943819460740814684611756405741606890130028424537269866408624080143132168909096655991328272498229162056798301268923628705485011441693877551957405615053437855392923385500794953076740783262044589155710797301133408827794572824407962837708378025887072175830082962887538617906776999601206996079320681782098133372296994474815208930954524164233314908287413469043443280254142019486064725388701376462628895658043376289953154591802694794784257634807318375894288714848503429798147348528030933848577982562052833479584621468669797975428848212425302016541580347768341351750803422982634685230561838590070209150182076458945949670751615418186321559167641937771925110605982886259032073751325145096843341371517896814421593949921891323898317021640557762566280545265190891716172754648639883319805559825991104144625673458573306675132426097523060821079996530798476952103321918410835799744478920594266592376282290250830960562905200347757529599918414399157823317768762191483681856714732271472060208154326524587395788258108403763939430843483696048693498141921950290676517561258379682965578889750226209620137247283021658553570526125383106569072158561900778411892230407753138805543520529385882016164369332752858172921733615526346969575673372393061776423614748609677964265543084434320746730103839357077660603497481460915935767645710055664423793191065017831584633211813286020347351025892147029664389061791861918524340630937077875136246175226679620613825638195823741412185131446832827092250979150352226182930962963141871612181595583734144660156680537026494642143405269623035801200227839762643454551309610220898580532580135705720692707405951289421198204567334008727139305085520731342689990621791814587173783722036611240050761598517905167012045787745323933639247651191212564643001982834959065080698541234439801074547173411247725975689497991309999775125133559142897386074304598452144464865870881648995866025509276397460569392737213613017480939310587374955608538490902630644189310168654926013831154210899296138099806967359789979502990014174454860771723862442375569713978665979908338651789764778113437743144262402069511825117830403473366741021094821289482495705301197736460934005353730889826566833637007664799141845847069096424007871207484564408078824758909753247380855226348765068175465765024019962294478901724814391497392866685605674193806893809587693854997557166895061343468865467993375113828336478227035030629188642990481805870317488554790109328754867170954393110135169709423114808876884818516166334805160432176500483534149944769017150408741230124574539024745413050014457627758184618624217969120450926959802915425738276188870812790108821333601083816945021868517713698325440531960075650971717190317805883058358230795560460301694930313834121508512170053953212879729970747589721883854045993982985661227643839250641200349440219647178418041606332159470248270504342493712258180127365912109070451696501330688155799689815643987737903784377789647971527984011380574633225619033073995369044635600127392004873312735071295048079422238079794837122345255896319736286740099293395130128098436624462092159362418573480225696818628674933010474255678521958045015304503292486335502995687139891474593328186011600932684469924037282396103253044227864218843111054521586099116743895837893365905765689218535425182981448105094010749152497661329341215109562627569770806365611548790201121765169384577517760787956438411857353560175271463553224393033445842371897963045803152195359777992820053469696732362179340739516073382406535962112429142848132597512735847640090345673109814835810403681744176469279179750197483074962560000610655367521023736586983299813966793441938985885741151275132097743621453370998807704903278986075490161339688455526826920177831271029139940226215249149082382763149475893194953572696089978763306220942395709331370806841605055835915738401206262403298277288493391513508420461116623517725585906071895142635650924844397840979466054881056546410816604837240405639778211770546882203354734832985399938344744600003072949055604935823880130490312530175228935889112898279845520484933896686918835590828441926548981669446089232330173565436794567597029970153074354945721083736400193593503241296721613757827812131769717610841279361525075086846655599311839459367444178807209100852935082394722992486838407122426035649361226046653648243413806380133117769385949498023665264836151314309144160990489857221808846722631249458076193974102507247998041486615330713014403404309224644914556582456784575524657780000896777317188982301614455106840605581524468771854782747024862928070716780825147011028821343398695095015092243878039938249260484587885269453141705503296261610281853271628882536596953894095072047148440699699992639349457786142580891377582680576307711683318430172505159770268121662253669415572944847522159435377508312675513058033614188205354787121807288554723111336864583260461974799404404147043669024570582140144960833971461876968801867463801277577975207223205443937220419392247144718168834343840281749750468543163003251060773193702296524841214307113960794611928684120527882325164175276985574117513310632072333572117171112902847615776758347862366043058479873111547901785097241428827074782246933391302750438359087495437552084294146588876348352677739834297086041059804142398056721384440953649036115433099110253680563164836253142520441325328877599196793703707723699904713413968118637313464801159005041285535526173793656050570190543233902089970105005558523672107546053939227742519947988878701984579118806026777349056984999724584719067240796245393562642196506908600558343884175639804308053722221485719623816523497113466732321279434860573352639111988783328563386670250248937797421741167344375709409164563350412677909568494680719819503095803578216528193273968541783538758118150450826225462028624378372159027136258166402729747479824222448978916214073558059758825903826939120688217677537284341526434815686535000887692635004437158203722737529801754926298224784261124729919014537536612912670821399306700200000442487301109054600322426310289566394465831357743456063185836671136658220562543386681615428023869947731410172934609509745639382164394555810520090873295570872161298175001741762086395323093721811960185261337197377328141716444043799723529496045844070330773924133737013055273102572462698944816636579089376090620283481612138859110303417838910295761169395561433779788302057182721757609010159451787681532002720069693349739586595143127393126751811667084356307420011833801314731386987656244955827368111067000294451052952193711765397747782024895025199320370666219051058531794442789162988542446871411708293472184801938954314132064888924121470715803572530904033086596195453606559274759648721166055590790293218249050142380743336839154412150468828611892757157515919895159197025907890452126118842329264735353786149322232471752299259158766018483147798074300791196011323847224723710332929216666074094391412699054553775127875698200901040709133092598242839349867815880016305822897349012832899660366313973062246754533875295821618381036891076526049589194670366804594483908847735563953396649102223707246681581158613860680300996443712012857841916498193269111363199995445852015509101865564022057897213362737742557715867269831382364133204132253805184737330905654575708229656308139567371664453406933549251132405559425618075841691790118231434750945229203741508969027739244146519839076933455777292225833540419442610661767683383031423067605272587509123859136756907089975134997254633694375365672018145288812998356435920763963448020374944900899582257030962295877123894535888543373735953985141211659324248392789246559649144518799285981747832379883623017941059169392437423152722678944257108930088278445842824535142875397485182608656247355049099619814951593789215517475270996977788883307843661618699596352604403852052642255947805472874181409175574873899663894305478368430739875070681964773041455358727939413188091512479199320874580475904290456047536319806847031960934739956745713425206799259033714070661729553460934152876153112488702110227737365982697872118856095185708202581215605734790037163958948044091222839669204325958863385466307496367853067955780458325570085403897966429636370875886241027237277059180856673263660267530056495347589342796720865325015324236110443366386823994400456190760245565288976904690530775552918375282700792068655342372399693134760195080005183301212227454191587886092925744733956262783512832881742417606690319218088728863321891093833461809362003527142882002465575270154079922266984391383978427606930182457489903108735626115539819970928091334139066880662466286148447109669444637034871049818282702653528831933160029764769200268783660357924368129232329164907715681667831679112252556654785070067034341500949111153120176911652484465328595631780762422075373678508326426603234484051299325409922701022823289141786549385341147654228484446874260711326514963030131501077150264941971911131332727159735666195609583771803548418370023134916747951842986019098059668091728417778600883235854722356491666795708067686211970518188064932087107506131805162649801310792946667261620298947487015356187569870208398246195437185238531540682710789729109335131970033544455209746778391684218509163072844730903287313968290705792453835445372024877122245748258322630715175867553637898318469078077070154871574981196780504608801682699713443396066135311692211539935502990637805965617646448060985131205394555955196546440682758005752004115836457505236162760944556744553867717881734643173973727447934296088570724349936024876426838246965164736602940677529558052603211536826143860090326152018217059312131792281995943281349588808748135764732797467858592092636149789674689002818355310907080863903654636023684572292331967265048340780244398302443315775185575490772315758131817439483199411710986502281910467284288141828615289036981105470453995821390380666183335221157543443156248206725678046766225842717469829553335618603606413259511844737556160457933187840768586622821210528021924447017995983204857161441711448444122054730908044884674398607343805245766152681377247040469785310514968840686631844342131331482873344585995988157222765477642577392686904030049656502909233282092998372628224796728869912146681294029609208529138129498334570123617485594246230740922115056106031697258887297587139420142574513455417277415836070958258496975972207625315313776839269409905611901687422303921233626477236671842174707034547441513033045685129595211273896158651908403772375777840703640419493931394577724862502516911160528821762085600967918674719156690471359159010767900903701514817393232251974290285081643085927214415115686830331926732022849163660964365023789505194850264546065157722629185690630085451300571070015976937241853482609917980297973031406701258755590234759455030278833274651395294767538578398377676938397979064542574966602520291877872444850535381709192234774593408537184431597064908327399465185918165358453393007087777394734027728531045556847567697839351809623598043654031237013029660533351169646191745924989723263951625662860334792258900484564485925845406967504569540611895238822945978857524759486712200127213835718150125556147719375981736733700983619272125453682378943374136145652011490970455601891240560644225370054510482072830886716098542939037020519177019634109554127727344046027886680729551597113918762591102773153110876071345662469509132405680844177436818842225624237540662433957639263582375474050621708614120140493276572786199602165972104675419365843502235168872502001923405122485604210698015525115101433332726712122987058598512447758210638209502068886229482707415532542524022666519595907558901545624172761534535574606468938248822481705109577902783591949533353355156507787846698411493677661785579200137171401074638645785968873203931842684822517142609150657935628748684721906807575942838172264677429643150060475553499480219915113637444835720430844414042588199863748220785518726651807050112730603918870718203181136316353656940659856534933241369924462029385772169935778156021859928058849187437386304161293584362985834947548864718616491199007603561505921530927287592030009552350971579059584996436649168997899723616089130258496880458976685282327811494426159296094517434820191025264115450690000316403998219498742168364913254519964961337164458444486290065118423074770553715961976081169623047828600867743849604023966535146849501527173194326406496831115752693071142718193329236667441437089294444863623331162822135594765328025257636540575466334425537284383736012667277448168923190889341268232660833313584455692874782313747846733393255962080677563280169597434698631700707048142632039909053006462810421021157679109962764077563474487574504414621472108922138806850728674956695562894356127683234921513041140546994081826773755342871124434422098079893578252106509391753166794074125092480693220023879588752021658879119686134058670573081413529029760635870537840409522271243800140449264661232837751950190477148905145175134955548353852745792950404969442379604055880842594118255161856036253854406109374373350576930340415398265482006600018499505857748464444745071683860138343823956399668438604730923364247831743131869387344520603863520373920556780007537699174288440805805196407075712470366124001135166928533849846463973706719231506288728445825754663568351750745714891413766419295789093969730046423820278334334556428654945935632021204765922073102196318991897974796782611450028456948804833078126510560490593583561160105581333139717366404770411206384168810799251327137939238698365978322981308732718176499418762209392341764170595382172100700795966445829867236009495401479119488424845807362332233126267160156554087681034722977941514529928696648447285028478588506376872598422412980543601513489976399275250178171227508041650784411559958861617753176877754251636544151095591848688398218190491937218001276428975543457705258929998325077788342163848515750029548347032887264211636514557708760508283318626126184632460949397697004537400485580950778977859875842226759214667510013737005051145370090894108011984148154938600692236630022441808977536530623170951605336211505281602551607314129064256007993144391346836336044621964155947878844497424606310309574187350807386081136391935324031837380821303755618640024596704376001568468194264697160818289360289804819358016163086978685133187763526533643413189367920176927432279769717498450708358257106863025607869938899608630522765978458128976006101734294504425692058281492856671628532593173653503832381681110362905795836616045323818787492387955923385315236362257045815721240532720787082603183321990463542792413500061393640284043179214285879447572493610633130270452788832938767360747503478211826979321461302912346047838279176656143463216497055998637327888440711050987880633021694332353676065424914665133616476206405041659242851398352461337271982882254910575495774655129613796405621390304294677002054526903754393841120250010813515163932423483913417968028842208245163696545272515477289272323438144896130636984952339314848202145076332450989849656867369025993531447812056411723820521950301039504130245341748705923699143184486468759561465066702712473332141536169392828231423392305226252228548624207148731526873903768568204265899029917068102019777732408487419395781615691773186536853168230213267029701179900852527415252892625999417405936439290895636521624634751833053797508196021129878554269008490104189193786515472974340671400785471904384923513209372502293749243471782425595176052184780034626563608618087200147941735158839471608391060299813729843912667128394616786096381039416256253291789483598111833430748879001191245308306654442142027809433427079066872993558146411784463001218788989424603327140580571895397888911736384945932258626175782992093489612759232630804855555611311331428182191805017859829548093988218100280487520027949798276966264137222217260159157625538405110925136188251857738456483868909141113003755251806136405454711807468435989188337651368202055715249781845500262604915529089257974088293116440720932093159921921043849735917756916932375907005301216699472036419363811744268972020621566272799217623334434345706408252406486148014868010647668542830103316054311349937524943813811805751836907971595478556232883337561153732310752078487179072796586154584523593825729020304701890789443283854894992321188989213846104164277106765260464639665532525968301574220592214971375311387541658427415154992227337953818195444605043084759870632420104452478524579672174558421179698127958826523064074240420963664152873422512752149275222499670078809610915366314937236234785512939095996932741429436489799384229867795715303402011678627312233501046946507962553001157765870158706515891626913636761338860464060511312057655892207468774114489606735132068266360451354467081248296163519572811213667483775600817747967402863902671160037395258916918761331805883749631166291855040098996466262815279205995676829238470890323302633891106990597607149216801438854735022446848886724875806194885334864402645065593291483776916210268903233778024928288209490555080146915994119407910183418525958433322163567245101668934616405173678760409303144837075872985922108407314226248441835868400938014416399796413117874343968516401603887328628514529183768315550814005401585664686838662860466438192414042017039239544167026317681735803677146086491035047192914991869619608995471512082631340505208536786725819964398380182493265436753627400541850643850191118952328176045406689306211201037346878599732634973182855476639577604371884039252210104166747927852390869737406986018849032224811425049668043946918356030462532619371215192307913537406127054266658056810849802867190579136669367505700072430635191292907160851900307210277146253084051404758108130157285612261939410082437485046389448394421231604588800904239140647403875182200616574163816719838198997878502304969274431963067543843576548214951475658835992042075671540031414758806628982011575755494595442699466806274247775851226012863706759429196116195684872430802671166992912883957969436030212810190388266631159612650389774301794238048045806259116746962228371424565864853636398686583365714549992056545748340047445320765617248792594632567831349312473104125963665079767058243392053761520438346275321731640203293429628211126387990494574673156497554268809434690877482906943713149442202340463590907916839398570202052371099893001225672962072079569885845823583146706293867568495975415295334875840922987769206094452099954651879709727695132740486832030739441626685653430025233985732407028170725901999224121671495693755062076421156460091708834853600681884635060064537018602777457530032151943677403227881023199921745401912804773288067149699196209831399951125401738957447103340828643206536663565292670203755372041008996650150614176871160852804639411809265547965019841792783739294276637820191460961039612898064500709159297711168849687921131831468826007955075473955749065155722514806960954686767650091193334589917979297694737645546471326752665745086022722372196895864318271436374640436140010305039185908752403703350496725271578431764198478055968496402379971861930223138084788735869563458221773434229066027920765285680330890441148093949495412344037522887580886404556535195879747577579585711870456401318799068421704640184926122987176417437962859027365429259605510467127906482367127296168135779374145039595482688733152983232053021332379029387525359364598977837496287174398012846206046141672925224105726078092765941264065373514845014977205539357506279195235581615994619074982899529511400855869979921548749850687619492359330094091069619884675449597723245477871341989061088885925046618734767927865691362092968992432020645240250660860472347273767998021106299883741543649009279957452995360812187555487014786036404033835224492970776238446854548545510164186997172392561341798730318973934031123705656821695911589608550695599539704897914069912754415524271475698403915243192873084822308801043391935520019658106097114136085194623043288035212465389599918626270538389305625391710870495234245848910568620130372388096702050500542182813586521830227480542782151000586531420962744463038207330874995291007109313303152003531444367525886800415682322376195190493526186028465927050766283234354304929873922950445886843487477730496910907834471805353250030676227175750491480861992417517816778315539213265122382133384938128762375284044557946662223168642530428346826187992148454978052776025552371279347207807023237461943225399960083378365014684207214934923945538724232855809938484460876040072238725057325315093253863370940130788900266023229600381588275368379460152892769253904379804792502739189056268892185884461409009780851099215401980719071223383984432061557256323572025641189721195799606563667286849505176870829989320178248640193976153030686171680970427554724558168060827086061194003526179972182435144935644735291978748062030576964105006616413478860642097950051742741416514313858952740091367992587032492632395406261474763035601042097392910953509107627705071625747119438108515950963272817604967536103298468247019318257373264501648947674286987926086403074054013816504516942308125873269721951944114338930883442640515915838035354318688619619991496975571987851335458986544709638697862188346168297712672716136653748896108509443965705667308771509432884631343007550391307670547388120018379423077123464783689842240887631897303968347284891627164965799974651111076942540676455585777372919099499723533729576470899068671539050196062982889892325933098993189222656304520748729778691720906143084585693610352957404356230695904963098385103675346683366065487534483071239877443496587666203649621314458758146867109253446567550628373373440176507261316220056776755018577920806280887920837075904373161268471920470302559050406110754620766906583643229495914075591478458332442599061315971280299414509004224081045550870069202884089195851011091666352778666707575319245225892772948023184020154291281899538788749863278127394967892801866619430949321897090841580893264286299228479409150365116940081166511742773250033271040536575069301189091079189015008564963990557346932306445177045464478641182678240455185429652235466754398413652169171977118347010322896350934279255092451115058541005958114350601094705748132864668364018415713600832840988713527740082329939683939200132157432518846535597287461067464873673319755216093891471408260687535744756157932541240302906457202683043980963193162978839003069010426449168941932520850618844922161857421592413374999339545353150670345998661681315010689330813536798985516003679867967775228648737371604942884122404779149723741194160309766843135710815895121290318994009904381039534097398425591033824433616072032620777933824034316356192656289735527693251389102581361195778292985829251676944974806168314090050323000149156251599643850664385377182078566795786173810957054434206210684625877910639479637097447878345255471510470673250398243517315361781708825213293838806023177307346931060574009837463759970579091480316501188488891223144380544962129914257816029769684052370958014994277524610824062572322800406889482948306474452426655963129740203780844935484460161992562579831434875847706958020993010419374445896367092493274456699645827158936398204265937036294560402369293328283087315726087999352003275951122906491089693955883266265281269612266910428304241500555892625904220635837129021277160465900549809021574210910115331901615479651494762982690699248572362777703262488637271862869392314201402486911664295049956867059807501977558466391576730044099795666412609859398507973819690930732206586848041302916409682669255240778292674733272301624995177235237803432211693951464999574312927365061748123466697056990697571432626073481736045609929954745678433250442484613976482980339778242664835623411160963509537280414143549230936932648665585247665735511292670887766638665651498484420884892816544787071061039966609847826668318079496009365057361947272845694523562199320747426062154993225157085983310013391854330257614062783633908708485451039451365594426731674239933600250308440724615198189841164109025534736592606018829133695783014329729332593271629861609764844789376754383599207540266508743603115119906877770366558259463979677160268799797145147669084156430576705921045149042828586938282277022586075845231169568227118431732204882506756635592598979824842860780600827345766644028730284119185707112019465407056285637684287969624196482831451640416050060234213140786822265504362241263131957396817690811255403931623286367369910897130777947697998998210984422987416854013648816172670641284008040618465374217925684033134224957185654616508632108184871195398212688934471362792156449559206510572969237264718257496630485923706430876849315420643569645547681687709468641396687805314649370460542572605060867324092468364510314481762062698079080790177887804577206258257849882686089083010256994256860208349772156079199739139343720306185533002234459154009826900304174644908904283009360155809725497615595759880558893648217769608429879160107875488686485673328437352236307270814597769241712810515855861976987841920619316063525386615460137809841280156146866957572855058964813377479481768973550609526739948585119995362294822175799830489236919528143775195044129075141646638935519343106570702953547828286226420875627165907122565541056604290200189038296082025838829819653077695550360368311409146872375571166415819959072187402416038561904300171461669944694980981158721725051201972682136829896236673152957523103486894391204670533421300235671918016484272547534135390347485059609866361849464830089297096786795364136270394431952949656208599417494974451477193005886260042289343573692907039432451560753396162972346533774300658040862622474221453117527850691626880827429510152133023604963840841443904014131979668596673830744684806107368985551759151768015576407634686575416625142391231525823206446430696767144032238761208469898765275517859874573100664319992301469611418202474865512052998735682452890356592109682776526312527001892172828679961908294686366158934918645902718418228630503790114002709832675266013662258365276010391252051584902481484146302572055623280411842725762475560210467441842316708136057272896587469488122540831047761088671385309525896818850805921876355267941587556145126599975761127929167177154104675439079837984911613827517212836441406867435428427466760106316831977246686012791271947708358265009169035279942378820022724489490641625534212224920934182463593273431117190153990260577310558828083269293774594388812057661628484279875149744573345343533533991367578587903459851884281260783625206262496399321312806996038225726785198415456505077038765895602824996231980842652992530976422192304502879052079498241944338715547496173688069773057488373599312127557295941938023897301082232119856680609756727304019990866151902679028600311610793824418404936916905823698881543309146729384653740734922043987649156926276005779091493316919047792365827459085255103364401149168187885535604599042666624408505383087294808685334827395527101332644473596859438543926203252440872475400318934826819210363712502560220789901080413651424084629671225427412308305615473012277735095116684644188494470765730172262815816820427433139675267089129041735626154221493546846240648905456507215653507190489402059346128545481672434313530786379378851279378794115369464280746672190894881788410184531270782773664905422544177387488772816519387311982093345082350650364864075873387439836461580168763901808317104757880843686896060206473190134286116169471905718192697560748604419123812247269325707403518323621261063427513777340682501431075512866377480046648736339684699469589446046571800983531080909759598549255455855443018945969799754106286686083356859877354550894587276905926435325830469788394042014173687690697373045132774214046432146942085073027347309535660864827632997531972672696994094338750490204068487142115139157484322916473545241331607024355675820410557369331252328838353191473153303132408302786402613113250188550479985090594962967220948955045179185217498546244948977830367708741161255111426646160958166340907243818481629176444599863348168186986664239297008002757005915991324978861728368841664185123851377994937575623877721972755103859510866964383069023596312884156528180252407344620828412858315072671253319561490962261278677256488844648383441177701178447358452446942366028753654255376006501994584171664090432263002363734817580144629434203219249948942712897508968893133883425993203813892368275074803017092679489279386013958967627788349350099340501372046459804596491469721156697552223550998488221283905071501117135539255538450933333445389322137070006297872687130530156889074940827404293867374862009097116503942165606469712261168712824344664674260623095777984703548649955742318117729575525134636096281903384530463925563903117093828172411491288134093168872879681548016816704534301605189576041619381626637534250426614982771533325493817702715360683042839134203941028168599891162318481669135931763233828422056928142177778901177538210207324325477820713723083747136762723284295108792479879246155494900786160600429538405284530205763433710557804041782495078693314966751827463160888944113622772690265536857081751812188340495333232330543982359457924787319191522665252652067633066501863589076792028495726217002990450262161503331852472412089974302375959781828356460930255249415250409954441706816906959521258481248868616246164579426157880341414549143820050127659164231354607897667652325787167435040140292056728117661005714709018143486991544887229759827899729672628337081994323236439505113306888306626667188962908786826002021732892837095598477039794951980966370037164922636321014390799663785309318802091397488489263114515340837200983628706440345784925790123082598662274356506756075450046818452526586981856386391723018723921183583208658254247693624899992079231527844369313509461333044144751559230632628185000398621966002738783896639800521450658944929295563011222152099760784494807899466074085554046998961406360005214631648486680150152229716697638050823995979549652686186300721074144230552314705508439628623813273669784178946503522667837862983438755988692437314954195207544554141763845124395870017086558946891787157647198911223400357995128160695452701229386079991549584843143959244287017428772637813704280364394350144391146565578823416174977378193332007641580561300368979128827462331877464815050491389427628253805111730697303104212572136410954398592662206947964295066343782858301859160793754597498238264951653643664439734447624476808940130226442153695550869787243142322517507983200157492361321782941549219798872791192973157026047650102019833243996249107573317883361314321629983308690838707455220246298473471634742129274815850097534360641574502351087792150054376822103985815824572838601612779900939448977203472532833772384700211175042812166808781450948310549433262196693885867995443555586031532094744534446570888923612040461021519944532176853715180009831365938278512608635519731697810084338424683233915152494965727536937012214117364200772384836605477129723148818879109164385977678219352801708224463651465219635299034920072583641260078551115087926505815462160138407039476280080586263122431592368155196188461094465524981425212288942013787757508343963327074624044170594188591021301097058552337838998471038299368576391659640410826843031704370352214915669724802670827104013954001645142360588530331357430120859019402974629603804367244239689024636002526646617471629241615963561641270424855295235397107802587259218878415017036135421221242761881225936334213855572771437534951977251462257119591024332241451557498053758089257177217380461422165578148906441771065553325906068131046357047037176669622847485247154732934113705588034900142708700036728615537298921928411897023949562426915025630473413959285585310852833850892329959637427999678315667546993454549851885163219073378974518479897600965111878455785292327829150218638616273564388175018989057802633859466830158900969110941892017749795793995185792253555220152277445156840187535115049463019046052450198372249561014478325013169542351548575542165274992020920896330490091996237019167440376746108803660341681889898156304382747651658212902067553821739636026979931418136618306765231791162029983505201622311370458844208632760778557463773032189753870235931887383564369456489018892476720699994326311935400414346159782395359781205767415661464560710238717225020444007052138420501287776024433490926471757790200468676295741365953130619440444592640693434101810749203315921778966255550031939017059689736739810065094234288053024881317956663217633691464019359066981380151282472039695457696590033072463702107493975460897255960247559454998754959842008079786912776519588384038450128791566299355281372846718240145528662083174947254162788311858268564563587295362087680453960556412596566532058794503480206316179606406060025679188929382693334279642678189226094860958244652720079078752667519722851066848862944456780796646235127457064963231027286714497915317415503539062665120079053313092948587736211874410033737695457821263593271098180491522859352207026158398118525565067397255051570769013792874991448246678600383437374059252893560475507050227810016395337067953451104059583717747374441896490573739978101867440132800008279634908216025236040479300762000538218319740018006234028507094964679489533017518612322858315015865946686066314121506601604111194743730373578033401395255235671835742334227278589440450889825105960011069255645793948644089672580381152459047479137126263667917266545132331963978077368012960548556804756396268685051797352715451348630565430623578802689426262789886869423373187137750368609633966512168867364297554965114714020135390671029315773995404565651820698381610955154367220078307996375417064327323007947309451059111483067160899315488626836792174811925490135277782183043838589354325319802591455083443415832269478149760549398685176238302189719013840876305546430489163548398261671685856458809994525041055437766289933537176184350924725482515260806327896371807326298408073971990462234631671119543007930974133374045570102112674221081339401582665874173686834978824854276467246451819883777896138644164667995830908911202352663204964317828273198390999833473986078846383113750208533013247674107464888085760073466626339831395879349742647240701861254603093492173717348765925934360290347865531905376647367565313181026795109347490650262340064343940460322484261401531732542957619062697185067852948680163669901892005389007742395618012361481958375719965271557460742307274318418026320550628431775943059348309885749023186820091072118113422452220300244915127715787013999987927922459557133644945780923870009228896443159764317386290395624238012938081551339923260130470081352183268132569174729695299934297797548249087924917841549020127572070006242323928949982255126588710267990442004551840435461587919798773699839708328760911971006017321212651478097101105425063121841577285815245326222444891418353386628774976583534081241700547840276125507745871912094462856106344771309037341283371341218120678775705783725776539997539177727241258422406434454741139097070558795608922208775427999642050515172010212347934775011366521170104891818737663296324901135626128414058884539604540479731727725671181931551993850797899417235417422290905897681435067667527486762252424881542298924664051928452428072172227109934638402175709129434859041246273858079998960971785058574496735891206026978480639523724459746534492950513125796326748109667910156833492831058257317829207482960275167273817132297318018140296322249711192611965217051449033398572176276159714374129787719173950874554874511776876433344478466757156000590647764568571749955382133035181601653627447126254665970585830602264176416551536740667441160564073300183857392973799840557495255528995505605106335090099567075987791948471382675109740494748691396689045366440813782929085475352565542980588109827872658714953411032866481730399783474102963207517204579496821149744677884496004060068771306233241429041482123665656707397543919359820039256236229792585467176189552350626580728167786397197393501233703186860612779929852619994971708080907439534848672530856725929896631857539276568728078495064953972793204212425153176846319740330481371013727421653703287041675234079563373323276851986847921278618748701569794965145628790485567878591542550484410583425687282522664703167096327963242953701163919469677028104116066508694639636708429832885034346367162737339791384162674538028315785817077237974470365474048265665628368269871512024873180309126142423467451896469198373494942928627174700223351003719431533198190937355776817253532368381769261880772195153787671103816831924420006053564863539893110051289886779941244116433860560882200672297837233547908862340612534577256874719020471888244358551125728866728827556616828782164046678742592097910371927893533127036244514527072354467102090494920139932453078414142219393537674552483789555737465640368726477838246212276759261028786876688636291889244903969144763284371233845572449038093224594375423550158564065850312656460596481528120515147178842264487055909503136079815779097192798098654463981565079561486399861967460369301716613721793967593362999721423080240294109337056386885864164974591158787215117979913233198748149670663695110159090225021003234114764857079636779726071144446484573076209952190206886082920165214386427880246873950742024022366391659819287731771322297207548029139202669545766551512394476056887975047973833832552661847654638357859698916352108629956576727449394291254057415575642647866683388873120077822601858575796256066930773806362932837445892557962134986504965794652087458650883182538374439655582127572561188498575837987753890982456247803196614472600784930405133429388275941477182664456383948752542229100087023892474574206347554202019653429951213062545841335503232239425169422503848972442450737657116157535361731660886199639215644499806184072452664364366999130778467337983742786536402936487219490181405424649087599908128515414024347681827792184132506191577296668509563514465085514419545628410017529560249734722100127115005734529086719015153165379865490856520660806496396238190365205842232267470216774564641164865490851858063291136488238600499323360488518027264643815864527931498218406598345195461455881925489312951002429397331495808463032925757869510846570049821351654612242605144053321193176517125148043191685125493625789060278581163883971288129149602765542407009415328255468989722371784649307437255732839492081398761641551882617905408195468932406457152361107301939598068840862493554417026815889225866990486751827231354332671705424287669889699524255172707112873424384968742733186100590385213557848623877504525897759222640017764676459744300591618083404952718018038290521950870416096681462797821840307349715673969607378314131916985414421665482567067904628230016907156402205498457379751662592468550227794028541116044943651908115612469515493233376680390044697363273323638119200529846266237387736004529625973679103801755941882272143925251253585667990087312185657327781500509454100611928573080982808184546543632085052771295037047598979080460297703173272596412859505177339497723155814770811435078746217953029373605882345688295822195725883251579635486260042729670841145994950385776705218084804032713086686434899266510493176126367462025414764768970216287177302800014157295614564428081429827514548486298231513848676898034055023133932034295987212097268100754623278028339340060988475691217418672228427839361452926180695590052836362264825442087140043648910514045264962701956768183225713102686498758042712583555660578259955451787113243902569641800350203362975329887908460304877417231616802509767662015455654259358433252535541921967237844072473785591841454240886759160612846312786132666923058024835549233574042240423793920109781998453784366912351110967544287641895741722359235863051644091986462012143702821395516174739877391453584001041422060573632666890933071681515057733194703658492784723362168357566770974207725274967423406242727228687217043377772342658904444113732885180142583786889783681851332113274908603860780815170691263022671389743996671877004858118205805637795443289401385651744918711909405243783053988129778425362217909776170161948115833389444751264819239937617524675457722560645112622617919706879922781338186822953053502121755750062549131368584551159175183348951065908873316566526151312105392420259014110156700961860528691528501829568670112057984954369369339218607725277213893004717311316259988140403443173033701378132033937646207720492092684898664615945605846511657298487443263337180999414627911818787210287874310062083002158629585996825054862916011532104323456516557827814144666208546285740391703251087764576830552625815158824383249127035667988497644628515500856624292620324564121159922444181592930301948039771901060701000591739326461120005170744195627860525664326659672515310760459840053239194936073390607509373177266293657432879098865326994106943435221890142462653935940572055588368749755527216389260253071748650170240405075702570737019272049645933616485447729055104166945280969044215759295408151465593065235946779121454648551984731497489127468358528278063506185832280407958056710105555221562224594524728732655487642218831688927530120348410266191718079478945646929785162995879641178207483185332192751866863881666717490615782959027844479498427143370590758102653350804460238030110677590945566115592344037481667328200382752709761227761467110660354021793014420451766438875200698826366940117510232455755443537260850521047861410736589205858787747592001784138013779053060961302705759607542388779544339039966442523686975234282261138772354109512393541637134300137177142180636403553387619187175229799454347814952171483635251611077654611379491176886526688065822390294466200789035722335692537336911409864132963697484383332252636147800064624770753485342078834183525464862450711834055787870847105220395697338925035591216840461976853630157081952049569943112622408560999393562505488344428104878059168268602117173860152728427351457943368559256807826971258569059484872985137554960039868621556407316309055096021119259531866601133610154429223855050403677051700271977703814890159574178615171675615019070637673423193118576842051851758378352996121819622354963902267156344344498532020895886305647472217847049125958081857961168793793287990563080498743125877046939609364862745038504206197423026100296485484314394217637359109573326854528428809703473499977017842517743759652279102914615200724819959453157632305971907832999934865443781214874776148073903366301985534323297286380725685441915110312013524113085588292876331290900688193656354502206504269982078081754633045242929548507548650222763216616544168650077948061302194813494456349401534534111504755362838559231618168922947394416480622581779689161477717179452177012136070313393638148934664820039504138136436836884390541208851899803410674719097610768238015091825261887824487249655076587446975547166618711663922713121140263490042397529040508102765169160596922409507174603572808201434886060315712991029228139496668917151225595983219083058670938997908476754567525628319397077382070089594328583911169109825103008152445604924034045243175414193097524794477204325345654047945850155516226003471780263627533830260097109424750484502451501189019929815717519029634616731221733754965997594010834036896171810934248145712480376246234128214189988397674959784776143804069817749218759922298737697087110699671083919427051042081417295925407046227392259441748921278734961417312847909338878561567984082573557466203626312655525934670029875896754564675053694077358014069573937551812731594942210208190953006984530114392995216807208469273383352135875906223276767709027674822894014633737848196140204104635209006314823188290642686538775557768768225591498965473590252091483747351027361508318577216058436460472103747238459860076377500661584686975001938221032024102162867151749293130590445240746241525309699874477058653863120595348577692247101220652294589849857998367542224394779419605033261283404943789269101176573121763076584625052295709876301895690246348737990823414829120272946240974403166982991877143044718838374248959604155944749205926018476852229723053030984349003930889734734986037958045461879398280037403530574429600633809641701208038515999482450263054485599716843241584463296292691446748769409127027595110327595641434963622387184971813174604196618860668824583280276542142629765685034226736175970623786923775268855601753786534220239194489970903098939589314875664804893994704649100331486547154617015964140728297473144200254691283957757669372037526292212315951444737713237204042405241059141222912760549054324437043557900549249038865096214951930323817774274202352210245468698544700800058657582833713398520542760534727207749412361344690189694683853787834514374000908269856457355897967663959535369117735920613431978623315964236339937008371821595076010072774501036546311501717858748875924726414837409142153913941528231098627435318862718179650822500909691529944787058959446749974573205639585018117524879468307401109675935563251471046282093444597498741048242968834455551691013576220103473229025609272109910651293580270577580097649679711260342161487855755493042421513364591190043578558594536644750846954369019816479149100388308863063572188029899785834079936585179057619198846960695427060732189093393670951593080018469617612551154315566865698643035212721413547985415561952549228765209490716098843573871420764079267873437725583567001849239046963300871353041386534484080913183931644809541953651394542886140833790393086525793167243028526624632469810027069859305612153703108020099801667385788873894859459398773538689317059530392558269199623476212953410135268031240390371486148167851927607521359205088107762767213132990659421432449260650686220717379269015865998702798374606093216892027192452471664289551440612945480494109113493198056965116727117942802653225232717052980985131325677811990346037771939517064875966438673202180326482086289286119356185813728145570910806563672567089475310983476508199623714706922871929069020130133093484807348213938197779494761129482291584737234975718108560416255886944897032988864701483945256263161423197858936297390844778918554303021202328810463199774119082234503429283431193884742917826114019010392380502730942266259500042534810735523512702362963793600644120363190213851925768877230377914373724621584346494418121065146906952004426369992516818514674295756851632974382459664458929294907899898896371555667966636130188439896947743246625363065489847393659064945992050191966537433466856761974753446011922857943460211392609717268147201841483823609223396730296827695752245832853359123138455670385176961307257758233468452021762332039236285390643965400029685347779822070169704389447283758045639723328353228725672680476658796844377857343205747099827090893341399746408156794862314624607863561660162589209645582382208342818049086929565044231060288970512703934879705150162060046045579148815768997387477090195131346078449064606096501199469233298203050353551268245035405725692375453714086189106699507332663092302514918150115218868426851538791470760434441904104109659060273504347962506296979260836292014892882712888887475394990996919414082940910462383416292141576541776652427914060578273544012778271034291085912825535218462399815612365376961459848254479558931651660992726031280092697762002924004640771159054705945487410506968877914637711975840087615915250028923053364503056252839245210731165154823644550193828842564677877408251843121811461639115254152508289930102138515469612639356784483743858179892132461726339366523618074099010788675157074144737916549638479372572395854929903149819257712347597870236216641029755361931386118700648068093229233235562915518870323598947424101173021191085320920493124667943770623577560536464219935981993936135327461397991616399748626801163161757685800057504139324905885106432014712161084830053907281980446342727498383107358941846336785119432890321052121466853518423218063935104056332511062864309295436407116175844057089122585873320682018884816829011178777416413514389243607490911078679813855012177470309815127201681744291090150411986182805676583949404780077071854806365164769244472643918243948211973851508726281426681653740429552343853296664445106970018681128571362728773972246419228183918502204570854338517235291714030406207645646217276654532655565448639277631115982076052602891428846889961288062125973710287615741083137991846616819111438551742697726172504478085365729470392316739556212786820071561791308370122754367312962835585690475597759684386624544026786583250749322792552008269028549817151508110516411503666577574776105398600472021307591628526973303580555388986296668300550505196875625607997400978280498300072157565093324641125096908926683068168246576563292673217712633172945066975842550661083116396291594109121250917460322126001141881909954882095206543703248825539234340924362511185795330457110739704830595756435664631719422052645019564279191221321582358723799681399172792264280561406918419068644861272384562256228575078972249443397585508015994412550933783162420295298028394044664469387352627545159218601950964717194967631403867003692141411535426351278402245229648872386270847510699453012985263771383878822885568354075903970493959345490264098777658925787745950048940456695819834079548335820661308414912466191653416092010560231171466304824320233505312723753682773688234964342740083892085335075678419369979025849597546330433986779912049720940824156447656448438719899188975300443697707985827257819534214471085637637345033922250957344779674424073247319633882397232598383769620453621307558692274617126804137027842055096510361922621903077399417288404363398335347580810417888283711330176864195684000599072308674089890070281346309900046777140961005297530393608479285437371561432971274581063741114215240555406847486809941068699890452203502590113270964979477192475775355654691055862498538107414297839003868187359579415338491379838370239335675854686396373353418115173771349937607720907425839916994909383309059159337714091609491302243133211119608268966426423341082300809416457466184039958532371073751565116013251736721830491079124290244470270550791429424539203115388232208188444800158384088229701890213800430389970102366641440812462597150206926400384097417913885676058622261003948864065562163201008172590439684519596567306383248807836418255289906436047408540140227048300617465967369749378704962090821855774966926043980306547443051816072980622615079404299585131051124688969109344464419400626659384794887563384737530862175225250091336902456225662489040752037101600155161491707210236685134937771263220745324188315184317161994944808719787440877271044056545942517632772516507827513196515859428820108510722860836667177486688418123201333260691534199306860374720942042082955738806469826158248838006333969650195517348443462897266330706202115005530045941956798847240203683152831898455787057301784539062619830229730222260613213035656795689274003711768272186533897091948969892717094530614322657525285321063785812690645590375523487017916651835267231838683475453239534571432120232218969176936161393703755552019586778341276881350310188118905780414834039461277444719248518646892959150407336879600135637303859278129905162725454853449735041036960531940261033970489828538071950074881552516010249554113948342062366287382835238818725662654108856986364816991109181601618041672881961820903746477916323830694629747512792620028421929431059896274314135680543794855293092831150684825158873466070439994983575153487409750586109700956818360717647478185326023929100814650985255904822887427166576150499205052378988259550484124729335104940398087891194549778640099367178693465775423207224833552009881208853130615363849094635125614758513637114649310360715530059524187151797850378161937445450762249910736698001124526266673894559185625539454475760005625462119769567142826648855764631434332179405247913617707110884524833588368256054389155497710437577345292843280543544739001419906895145639765429524377222469716129912201135383526116459899991478812553062618017766283118414809066337263658725519071842838133938528700931902960967209989655018741973465004195314138121788747203447609710940402401591440096184119025893274656734741554334662157196364021117762823043885684639264327737362962050049071287014964971656844060487625465063232811234072194511291234650913213827130208469608524910733000497808214273018607742761939310720645342566554730231270292726016197057633813038168614229174236112629638074200824508267685746242251075679765220110483072187812579629097199702001234680615195191607824089316477248062166269211172391858182168398677081851238915668286086763103358246526046147860853922292299605657810536929696894861888361376125807066111115025197939412280170331605719809802360443003567555683812564026080652348943129370730288487631893504732494714206824773121470980083662056168095453354819601471517693958724452124232514376984328574379567290088232816721042329501917323084549641668001385271988350396768003140169343784903488273545537556356921800154629053426351713088662162106148577383420883293889625627472010684958674804087528192029341640575226031710260448106528432041625634608451278609584431121721728523330431000869126417212171581587066925787452005344848481021994745217631912420768664430727635676534882371983278462535142380903882669487124303681784852378308540855590158097180876703610458480841201407371206701881208155566230366107711836090102637612801768605150969554296286983707424054922879021259889637115379694626444761973663858891135474876010604472943521722715224991315241153350620785717167320193735291963763815420055517754256055315600503572204764825238112075937461116785876183972387869057303022370075645702743318934142519621514929485049555177612536083807272216903247149049639825333901112326057542955120897812243260614339708918169899197030179474088103778276330436667600471359966428067094176539408472579283401376759809106708159595653107015544299385344863870432435867851600583247932874516520376820167362793609376545297448632395624479896454671214962337975203962936163979474782355709621768720682604671501765889556303725183117511662622546077441557187271317239745072031559082031543522924462809257540865136778770528398052250620637442174745705723775026425205168740495949821330029316361210381784005998736146294155930053291345196934664892983472853855842976210206293713653685592588131730999388825114434534523661940338588047477963875352724447039235151187603019682051853952764760348085223175415131729275558873463940280037603479886397738897055316115642798678452123914668722477843016523887657460928663695847355984609949489413304517345686994458121839345675239546586495676944410819539267462054965840274705490166967298847242408651568054817867296770582241110894645586671000328736143552853593955791505178714909842771389284007258159779625646186592696856532228325585826705576128774202126925340472033192974087613897522473883385384707793249683513614432191849042827158318273043534833963110329280717857106879807015609005075607999184705070018703283906305387835192520921148010432603421358661738276493919148531856473893315650037704455814587110924686427397683374368154520620066189775189427006507068276367085666121432922929381388158262457673611038103950580319728737056318344389764737829859674269386905358648336059589085703990372499807760433164319001541767087647147247075564396606103533419575863733955431123418930956904758437132180918197634109762187178780214646809414329414140359597967874511397717196558994528608490665369456595852083676233438331671581339717285983081030192149649394247695576336328747666657042172342382942462160878380240701000786255858519236083725598329223315968006249397125999403085876273213257441603862125634937626307016209607062528266028851275187400186558442838280814356930668393580704195639779267566413461305928639107340753379564115828338868215000198710122822812538442100476542695901537999216348677225040443615617068613997062433438397569042675193325659062767444046803219755945179067408472735855524545699560814348349590401283462210736236740649594277840614815941953133928902526015332704111853905335327141702554997053398450655753294596176445672896449250120707009882763616717295484580553739584145494099394815564936305610570539879586718380747461725394651846966173369761462249414230203306811454296446684062547745696995911955508555878894481746666716139564817257320553477926028047679984714437402533969742010269478587673406446543582360888236300831441555524855846232812416039563000149452134068837481303237811287196631312764743591306017320907184334402673139616069404513264243422267152419788646152287037703580646268649567648798244042616192971466243584060538156503418995881375200709170776526601312393820361773642707042859951207915327722263447197923833343663579533158700615703468364367340175663859014761799742558563822881593783453611466788712097354081946062033242430554856722446426316066541630047161727723559470180440067646390767481508666800815658542649129773392898057270725297667144874816310997010919542804173968304987226906065743315518842847013018629727868610833491741322004612182072733829659544367689952893941826785815632762196554678226135113484421012511244887891668918323917237639037156919130621691530668512116141745932549149642656754272516977470117494526461669188130569220345525246554501340134370694327690875463847060538122508125096580484914559918671080392979060485877123308527981636461344053382921714361452436074334133025640185644472722523216265695483873451353536155263577414782930448657884814197085007724429138776421552420086091736120304332453028997941130368201511211539477318109913741361472732150463110569838204674418033052000628499378860061783405359565968189154656597720648607049987664601878742219215605363174129727902413571278571547670971346498224671238065874795766769608830431137304508554874606254442999919471757570238890690056203707916967864488002614980848269530573026663838122741201438045765908507225691213484418776199746019338580124535186058440980126169567301278723567833617138906588787388297084976990984865937212625537407247559243363672026155822454567969876261585809767057808368994163902637480984201218324399085534662312110760513703997529901633342786851935975034685610312519543808181415414324240151373903760025227937449237996889977221996506363352321881456789011090324824005717834507499284794867509953460871385176755788831204513048646974183042339096289181275640172453144019201696230111996784465182356782014335624839699419202980732574296766812892573216366413372646276610684191006248522362952848431688521140095241876665019994453735003338125926950498516020624548694623609638306082575599117280114834296159246963819542146754416008130771336298201413358451969924182478540984018185983122673830278285054028778649235765888341913979075191396642184906457953871558780251810091176208810665442542060750276345943820056073906234264834657336626792192168911589034993077933559538291152053666004868942491569282850252612444241141316328469070486184048066086913344556279396270510598710280302458579411604707199579833349557098497563160344565469592181007221708618632381778550953803430420477302816257597274026737372264541748127073370440009837367907306158516119273655956184124639253824550809195344792586206143071842735937740317078642026668002285867153643823409552695547946581187094718260851829700257280984980379668305080276659919295897258867319466746273449737541156263012257777128198755058468394550617667495386959608100385704208381731718524577438038314060379249841902347096203307524109632696290195946046071459091624897164445367997598949981870740699733674184735212502565054130873713563252078910136919048754661340732058301190164217440247627894527167940990055492497730409987489987498461144658926360886492350191112390682058576227540964394672000773759485214975323609807833143676347125987957686005730958687408233428445922913082054774443487633651196383432208822755278805664710780456155503356471619440085822915404692280669014579706298047047159183730547252691559053041245465710032662381463527781045245512587918433486710554436630456855368880353888830348983776981469639337803490793650857602329716676710116565392975372937214260166257387127049442926834018742295658685542276511235056854218709855135104692876024145502618349658215502369952905537911262479589471720935347742817415018389682831608001846123397503768387975725293968379698903482875043958845726342521454566937435744081286788895021712262245662221520864151001137386708150524893992956211709780230331907761798842618975307377437110262789286833659262061142404094644212927395623282309945324358185340702156685625827106255764617698033669549433189386927137757220825866843329097724584802377827184028901329156189024861828122156656478254252448668541136601416122791370987448718483475017514396609450157743299233503251957571695242837587512960645640852672674927082938800240256043798028418052667616868658182927858793020743517182597586925734738914133044076510172473712363619937508433357437216443036675529436446426145009547816386198440870608795864044916824230719821864563689645790633008477684956611199409432116785025508599896072663329554926481972508506770507724884822898970113527834946861312947950650207515027512100189385215762660130470101427111498360600785173125839343660177991762203498045932560568416375182273744590861567769894568258899388231880382232850511103988120321930335218516825760413496672205015395796201997963925514325031974422552697123245224285141794860196528689189815206072503944590242338371711568573219074131153717525306225248652853389920714589481294522608658203337307181122035886917648118392722291509892916296180929141458453658585252113774013752474169333900740370969049886091371429987090240756600221954167044311926406516499306684619100848194955706741501320617038163590049524972752931674784362746457200515294884538241795982983196257845700035687376842094360627533809999024169494999716582487327780649126173953618141917514486837324252885562915889307270240985536379480837917267287754140081907757234259588491412741556753725955020566614899813924626403512030383460862220523517911278450900151129459511554584668772224714954932211611893720926910425750450470415241957344912939563266242168339848736626020213935225632366538133641193474177584313332447083595548813093728055928101202331766811282954061402030864228043892996780114129286068905282960354503608498570756582210191983049740980991412352455153678226039263365090889389505995359116186434130298395577809216755487190181166848605677009644122603392078432910013784385638952456911306634530328709618757718143796121973709494120246205730761970208845181517339833591693382729132739217089769829405729314108231148407000517084796232018644925856478641070443482575220007850599523802511887136345475458157823956790177970539905222837482682399219498940342891325058761176595039348026254063995557850987195883165307065304071188389821050341551591644484817610943695431167423820767631639254293659001799217691090647956623454618091473692547446245073488077088595700969372469209214616589928103364753609205357880788595984834490385089264561381867216300560635525836174424149182724857077996019730332255759052462337248943967166482446904762451317444320610209524345009598053172935471385922043407370541967667161439362525093418970313576167586875134555056625088914925184482252788266076288023641120728738626354091776386444689162561132726957082892585705269039673450376084090804833939671932310440487526307276293911545854163964803879127364464857707158535307278717768884371267080834322039980066856001538735239939057342733251896681679448415502143876354124608246805817481290555073075486427049736626076005741233839143774115366882233263447044709572342451634649213900755934922204806437597522418800432779890212368504871653532352413358660537828376721062833099022194283349768848825581349692697289830755034868010873284195680587360377758810653296490356955413352630555556214091218700071523187083867922697652181246869649676644515586899853562218256148591794783360895359266636314496151594644939303551911549886962718712816349553397393604131876970100490608208242613247602895891649331440971509405471286559582019252359483121500081189266240005538950526332035060714323785983442858123491424695352820561780159250130557302492481417069328859275439406047698739169870421708589761900097417152704068469741113640826010755576848497405635264905284560030435970343344564478355071806282272819635627720420028422399858459678278271349832741030283029794614600516443319673387029610851760433451458015168642059608472762015638396586777589102786774397720920008222901332954692352682804021645756938601171130090046169122192772945954559697880474580321915646953234850352424186880314676845819807795490135080121196314137930183860909755692573715386948357216653327596745658613392775030855903147250285820696151770060150268997615173120217912677030220999009261314211078653472004708963075344270260252406138626843640072110626381270101491796116854349038046385459086005758592764723885810203667239239320000846156667210508793176975918774816481653388267809984139842397839068436419643609091978871491441042776920844491220145708201754705606809735139988001064955336051264698027905449323459417813281680299006382297883748680813339515551582273236829517193055622413187680500642845751595649958161757492200023142141472850896029185989319331942851391867088921707002916986629213902485128168010288375477714791990784797280493045140300903018443979675385984482607152526172137669782334529244864326860944622084999396460415378452091842485133986789924153009740451938088462349781831550062630145740991019879250749947993473780975650481870510010292572594920013091203159088298592794734384296820865590190749269514038976437597920383002115438171721109249108911582857241616243248514640535319016958649132658179332508229109258584442148869679953652609941723498284076123252427413910939532226521532608192586557003671733467475340754097535541739391080225257458012461970488783455257690751462892595522475074695394556963686595225563716468349815388708089228406900627269600596324463162981199709689127314394930807338762014417677861010376752006513228827666316484456243912301493767901295276017442713568629834915284181299118424091921513645386879753563499849530651979507346270492982948789175508002880930224969946387101551686757362732991115989772960093518570502173894534934923550804398886231574925437678689281907947416704581705841430060503240556398568153567380612145586067719126532277951501802560695926954660619064976850390947971967345343201695076640986238689512832252103833162936212071125499485014521181622281702769242124160986159256390926886413761676868872777532866244122112159852278363482916112974182013876024500553421769609491832813120503318767929671863012621507050671633097890195264963688345240580553530732471812348282112907648502651361428399474222233099709094898881470825744074780449012789328394554747446490698181330740598475879566620623056555898545472106964656696947303075882139157021884655520360309539314553539955697492101312238625760741603921071543440001162806532619843319381496488939385932923886864796662561500395693583815657228548333612851926187781020528555063979125501817306842774846403758221246053242291063469339338876387917090026642724831030232530895993063528029379016677262244338043250127043175049709240269382856939052990087619853887560436631990627793499996672787739675201390011833782122946687079149294707420849437665996625123787428312279712533554481583439015123982691058556865698640934346897284978045946272792291807920147988153673971600368920065378753131988149745787873627650761904375041355333617112243903937542797930669606051842301900974373570276035484443915688166386047965029232400915146238319627629328686041554630909509313787273298672362408709071939782903266881213479376542175722002594513926065440986188831954868375361098620704269575219666544568969426600027047410778223016328873539314471813468934703591242019545395024245818839774055060039575767034149847570727415883131763548681232452435726573121867157841342287046370141920512522896900302380879798729470555236187503803461793790653201765384909701778517740978731310061081349049277237596154742976475104320181980735066375547719885191251355909121747475999455406477702235020339702360535797943393637105724211453490637654706490804285752755577500086110939183120615840094943539022890598672139828487482423442567068987092622794117779182991147039368342095652470085430714395498100304395458974042441045364599019345646048997945506808814696172485381873804104097073762391253417589274704470089124297913689960991519137499871757521879233540752126580304258390597180093159472038565697844198931389258255275406090561359495236958999750322641857514758911355109020878165212456525109326053354050237780136963109350254742659753217031420118623561122305890772565743503635266542540453539105046548821794356021385734057127472357698937345501450282609442953177074884214968825382336095669088298742755201955784932380564818022883358145651198792853405442326436769171285638033834714020137882225158476735446193246733731523429621240416337662712112218063047711027697471559381375311751524750092760313593663595441441767072198933712427795942761063426503444536615146355501806124097866950684292233122330455356357352580331265448191717908953696399916424868090044133339187585971958579183270866500297259149384746298422576999140444594592315911733616711689704739732788509831208951992754782529510542888062590874475209496878262843495914628189586399411841025000261089151093409404094579714799527617713663647909431559608316207256766062305666637046363828979565403042193308209001058799416259200229747270234295225808811129236017927368388283866910838632026353242363528323631896052071468381664420984811205511497615862664962891188323583426271153955212919136221909885627503411924314895308375770479499885846948732748041914505121503199689688837988905164266238113436879371072244050855500836408865975981620511610507135858277270239453578095797427601768705243837783713864473640525530166324989578113846146184898906913483182415070974340636660046739947862155510178943630744419307018820928742725395300377885868859655538295707851826429491456682563086884057127207151009353481109802374258731752764089722439542005683518276591173730506395942047726555001363194436604299591320801624396976088453974515180830405408181777647184830976173577755213863071847149860855672255175329036761640544269303460045344945181669990766428506019566154642074710625114977315944804143736520890149595309498317865723702298211176292052535477044032502609321832178557104559166625474595706615878001410892876800216054729354733624441341518941476903549337233851369238843220300387813353964247001268694468003053875613441902585659047390004227382319082084997803000745696782762891777845675898879933032643772498942929208622730553727381236534011460514492114577153701236643553167449338327201000376840038801699213918700464019460510022925681280778609022086921404402114727141582869722171587054388922253596861612226113334927749950365864570810261421156346494077643718158604307479977048562757592530180574210374237720255504636218766210165301858262066706468052172225997746248335668085267849267370311268636067463231818127511990609139956298823799183113954960906192865977244308863344519181491774532706586460944214695005265788794766118089009419683868163661182154974517326585253568454563530834505289561569527899633543482432238484730219671038384966274753531278547993376982598975259863391450037396525590796511428923908101423207420475322038170592749470583793670288333796862894047854337483729388706384173214748082950717546374375675827145700362298220108360956908016364319716374049444139947794408421248086481445811155564305012481650090367798876941451356493587643556944153585810080574258581545073335563244770749400754143574790637039088538938339703038671207969051344992279056752094481649423532760564856771577863654248350331472035031593429907469152214852343803816209726518533074697756692555007980730980791719690234453185746709660841535605590640933096697678048136302776846427263130780976663464127857729680600088111852396778315022678817823692253619748105316222371820478892040212288086376327522120801829398957801052756705604865206992108864627443124162515863730879533295820531153301258859891557422753620951695515255282629138857014909669775016335851622614361053656538679588817112162119634371077657477419372581779338409226955540778337802504653616003562212412471829209380559117577800412524726826634402382067806191417191789859854591702861110314917791729680420028050309979661673996939550820067576279811972662026675648037569849967344440471294000795477204643156988233336662384514001852285950136389798384218652937569928398263803549733089785567204734626495143674035087023356116236904458887052463631766498544623340658077213242617667648704330815242687033194537181397773547292386959603417997520275648981520682407046104271365608271660055958276426290854606949271471059466869293759681410017507238608115357024813336474551285768336820683755783369927434660760526866957568783609427307331674396300335132536875510405556788583679370212921983287369712426596560240218368680769503817572452407224257508183743109046427379983753201569561501665649470200321427103096127986053533216845919085822819435163599852599286449563166031514806399002778675123899862558651409923741010646313156474254836909086865578127469612690301811364521478389201472779970860820815586894817350861201178680579702069170445044111223664771621223552946263996423837494423503521106154800344757253066010018178688462852604524895970967737075412854935897604758735680727594037108629976647832860202282147032935661364474223530286080161101221955441480125899118520454360334067065591228407810228455419105839273651792620688190651208751305608951721355711123989403060398599060513802467906914519151399388517446642857474363773044076812187176095166843339186378275792826643506832925206328905424884106647939700039999866613390200831625703027322733094369584553179472301309860320608747807605155812804048086954409024504633687174613366734679152491796807810333984822734074738622163142182174362616137557900017330099083462257585187071837084711377649447269290607063472610332434558572678404007975810883893072085386101203926682689503667792024784274753727607527654906729747509318414477271917800018751558657803683558278902463187032043161394408050773262615970219560229136910201520005779274764028416368817666148079615026814971285778295835796548584491884871371987684786078725990173196309077868614932163530988476304485229674796841735559725724733426487734182086724435629714531856962951532978288527230258909879639793373005669838152563260198643546070302157606302281337007454087271729617872286535504746467107583983896524251205398827525908769485470200310664633474620107481416578479221286848797854030272475947423200764672630176257093287683057814074765324058127009007406747586589413817695467273069426911454045987439803389883037946893918810914040411563974412005805904357163491884517047163599559246405279170207075239794694377758519636874394016110088250549453690142642176291161247920033443729396816226026267073290702005658205368592572508144520062536331977940939503585010254586414023524010010000831482157436670395982079876075118923425813456306296692196936428552397547955765514696202137525839039084714537203109396144500791743814029219190130739041186985165058061975415540759126595971211501055528609272872822741732558537871623939510488430166258068355616919183132048378813865661545839477322401728898242041660192318379011523422252495585394393177416993778003773546191506113934399842852672180477012516199493089691252219275925452260325954864869947638194322902128832928147710474424996560599542626108177568045363576201457670776713593144216334824277630929346281726475260171274561583442293909080690470600690082743316017164308496295675441331139916801808972788328747884162900484115975975098864990090883804994466141300087932109801036176463094031525525674636352435570065319945871814913549899291571221639396079528940671555336462964940712395284985426434847708597651443853183174603290584602599290610358454360656351891110016242843758757793165749503369750039676550198368078527108513706002989503296411931186224712770614801077866544855651638001633453398850688027464205178053897971558637803424107225771951077535594861314327407093112960180864301326557645973209753189946928464448660895697767295793217830033800523225255253091220667155156812276217555318969097956234725170756092029297049490076258784497118285081976082533994230092819192408951013089982146918087302127678434568261618611886578412260368135599929974590539547682969118446849453488570171223149316416750230123190174427467751960295783613167694537613517235215052542289904825106004422647445876499800917075007015023076456031144890182325394903927237780656982201142207368343751199315133725312920509875103587129845806992977323371846060540905141231948040885991282193596439043763547090475516851575034022605000024211736777003296758779294564752306672742446829073023966879513540818600505031281812168651367617196957341615622477185228276287203403715848975693709329169162792206129916039105203728163356830739049456707674156965757894428494773701907002034139571377615331606283715596875374571707421740738402286212128474004310968334941810326720765043772874071916787858206157599993909148649925232259244482524140391508915692276991412558947749256806086110960830695542059522331829577342277518299028590587784853983615091534125917379647834369847409838579338918092745250080714337210766454892337133232352371619535457424076765623672426329579943303141687221253787212389938983669316515952937761250090928513085573883322736799955104592574839314596532565233012582750104937087799681595272275356160169427351884797213443308499780784360443838206304017136222246005020438787474435521906116726751368172573141623814312132624698382611816692782314522555633952641296809538040105763130717093956620456282761624884527054704686283718943011835467183106377268216163958727537793221244563590911298832250773793542621301852975996425152348372866933190097017398465565437128656266226633115696199498805890230264758327829130293190560413542549411148234781923232255281657155717858830668841339559382520882597653326199665358604505293222522420303874802074993201537000663368872363945402329623768865207624549882771817663398874443670124910731294836589920161476952329560709540156452658879116461779054244502945834511756422827969588459578875790518058374777009301551684772993168685263734464119349525981096320677936056671821710965846810417164636921307948008389499702269825277239602080037024072778546945741307635892537555770233762812688800099453149108801030130908171041016120833455134378734199513946154251389124534051619501066979512021130197473074540930366239234383102930378130692768835856796952294175584347939378211074497688062248013958504496488249891611842021839753655256881066652864755377043072422276705511581912578042067703806594644260499100477136688252874513477450030696294207140023369265771588503981666106164220076219506585185882968906798718064636426662030024324255250105849011058990577435320310992795855496143463067525077912747961249257764173598683434257992568039770409043567947997146301087417673566699158125069609296659562465711629147131715883789077999913007191830784885693646209030688170789406311491521131713061460300520587075794408574316302985439141799882719227846465610663905929904512194763933690362586785854666508335634253689404740636089000566913006471370883972775185176906569288128129778976579402666991278368588111504823309070999887799376958075343041300836437882758456972750151755504440704757796213480713961634203030915830118372078881694243791248950757365429962792091897457081721601281769533365333900682666129577557811516970859334334207851789983549729817359794645899408625381340731859095289100413996187143162818664894516267305475180745743586432057964273442045241468183646733356264695766500930672451946233522337270736200242230817404286831462483131462443822347856640092481219486775369704785342027187662522057890657344002510104864976243506472033944987256807113865781507601364077520888893433689075708258824981997096965049970965071154359102394285580884541738608625798872311187159631978358071684728111387246085160029911552768535788133765989269014680844283948765666347950218699970931533161789734610377036165494983774517781255312509382148971363587825952429323441611620599602780732073465770039850337279761279151959813144190561756336335394560912180129956625298963282351768089407772652705232259481992925341884584724324393130743425485432662208914780132253034954675521674050925218764816507129906047499750438887420805421652247555086839420265923015943256485150366035116685552226982708031831195723336239125662081760598554763669543084174583959394918030969700453853618146213224627729764627138080647114907537040735460261174994440208354218699773494602044449670119030801229749186641973218794178322221703377928679702920457086071072855420493275565308319851251479856179995915246857780250638379232750802884865847732654073991887372443478247574613938659651275154886406884781339447238707053939154791770777092744285289769147417228109838358671171740513469598399006806146295769163353724446759278392175512248814651424693487424852186139034772529726861604994778698460750581169252836690951642904869159925095232697130159824702803636268645386680460785000031960755471107600871552361349932146061931594085022945312303711832158146852935731704159461309736559868283632772714984345125985343781040033272418430542966444854689439963086249083054621332433472131105179554280420746439393592674126088979300473006498413684412559206527129767845377067510768986535014578470796684793448464193930906231843835475258640062662054222767709954972442226971409684331199379252330112013578176471068068678839279251478666905533686346975342747823296653044249552654758596653768052830258100139022715225651425844369385948129450641198278061934077656168201379354270502278423750152852885578712750182283024421283507553975068203350746533193480079936588839514612429951795031652862125595417127232294852991854614951280838474322388451620156807295981470023931379542188116745209074468184507911402380987733921247395165358738590257912936019288834077808004983213924758132262825357413317773161433637603289989838383343279279596567458320130782431680625099274904527037786445728002472445779388137377451478266845013289673384144257215420908557826203160673567598436494679662346307621727668696372374788924355380205848054471420468951424887166508423421799855837076788713725362862391763725029686586810527401035349446215905039607142904505230795975846049637160225644153990301121965107265364797053497045409019052479863813309215571933860477981130677605493088213501481290370201133956385122586807408288131789449448620125399793921104797326217241138252580663067280392956418665781439255596340812615376983168183793788155604569715252099963962983894234578946195573158302708757675330084452241090621513559765157497399325949537353537529943555572890562482204897057784704969055320980465600859350708228189229741554456106638421881856429499051654409698707045312239951017030708464002010714611145313598273977224772012082618979454916441686492513918838207600796859324710257737809078309268193167032434910880011247667795622000036139817018656044618138683963470446663652781124621905590853169086578642670798717469735516586523124028054929056190158864632891906739468344454595301219358623184283597212279757623695883798640866375694357750782389961720402338210098053633383959175584119797506208008079048366004423363456291744971613258561507181637627458890634629468273319738849725556473859632493253971695532352667884508096740674088100276954800684675059941038389546809143152137597908865603965230287012208294973232164410569312662343661202827615870430629035873140985322970909213133166111846489517921358612434397857133491302670008068657836800023746594840939788387455305487911986978774737754263939630577496251867300145019845556766753810584651823014091634606689526461233290094216354682117081967261863444229146474968458746597685995556581570587092789150253458314210642003838985115837247126304533367472778299643845473840223237460086782318761627903645924039029284684451377740846788359840212878793258131812430578552305263483896425500649932031830950633358426173087869145490176611852973401044691507876392888931390640634233387481103805618178570323800577561495022220220453537958370984166738262558947525844354186458163748379169145701414605871871690777850999257525188248296674499207791819503795525713166233137329532381438222423429436316813874114661055884393402242554318836486692652955040488555549739168711017851705123639130270394473217574777538485343455198464300401050995279937905611642599840723240852310100532565417501341479862378417058028004032717300605463167467180849764054950366755566805953124367876309072357976386264930161084099904451665423763344178201269328201281460567232754915772423243705985344598558281967422805811782333089731628077479022595513513616935832846834070988004173288988680255393633134874167182902952953425862914749368239470082163635478032456589141223680345112732063512689643795066916555608090296285326034532216734653862685050450428629131871074220629154783126639070344425107802370194655531383369186152851623486725697413977577615742189980351163441389850651973242800240597197788719096668016158845186624095855163982280099768382626655352043562038245485951126623968994045525700693997357795303839156357144479838347994237751234141962071308996709310272030563102120747228920653373938055929498417842811377984856165552374244833845107132322560438900930355389680984672602399188940517311665345543627761973899844271076087547466668902204463829437756537629727435641336900477702168275226753491276591002474207231972964856270025789121627574094496683073939612614511563613225338699021637944480347328204217181684652117317772881307602806952597719736826098013497127472828810634596901545397083656020491042276303747064755134345819433262306941422994595664484729590464808711548050181929557706794411428460230167456294235739547024339430522567395463518734670833052386029567958903690925655824880047533544308977946800734075580249577199774628104800642952111516404889696535670565679814168400719317007911981236294048070537009898092928346456901593490317340907055307651434616276739068922355514248354969951203375574081968377729007765166583296119126155030965160267345371175311941146161953706500358789530326562677589308520205960291885838894432866532203812328889024678148411661359699594750011865762099493582288153729849580534325101593313600207585146007757749165110537902176306737834914509376948069078771166022786436219128395558498775622518681559634776866914007663136358750923434373343412862278494790799246273752970859337578616973697838929167023589573319484654282468458352284593891999743801183560723945442972331970838036631144745937440462652512576084487335676108927385966947066387203812581241793596036119312271689903459138459528948675248712883873323523736135575238004550577463185352654127287744392898341356312313363944239619682217261475489991109263389592169293278578480136922413567063747156816406460912817261634034165214364797092464571777779602728168394106046962592303691583894450734377855446752861085337558027792473998562667154688006456554943838371915519397749656095802811363237591084570419548797660921846343128539385559893345721941150130238489598747160689840891496307548811221194623013073023319263809526185725463122789237348778468819913902884656337876574542880638513829636934672984797308484711162065846261254011315317003149762389259689381155025970213256659269618708905995706804616338857958542919148137135144942701331077831714580041668277655859767407332890217665802790887729887152784246905089364709398682718647798754362132324315246422521272555075836705144682841984970895052350841277166862052124112426697781860317435518264762114191169757050810964443336277565208845253544579066434490498323167573952762638773733534930498222973741132364482302765847133098280760421836188505909407178811870839759222429526526212732882036933079964799571693473412167215716412162427910392970365808936087584631178418612281319983039293870837374026523567238044716206000205303994303336499314025521773375709198414249834252776748046987953475447108219436318412564849810194797208144963810994759988765475404962915090285176260931434187503327891568073843037424452880311667710059399540899041230526829271653503523301511752195426744847411451601638560979782975598232310400801957209535244435156355342466547871819752364503570134736417294828328090415517691593250480508199036189608016297298157382134418309214165663060456175412688744573984936373105144886436604985088309809273234540953942258714865927103389038815151561365268526583810373003919065934204104445108523038918215943592933993220147001034512597737551598048589367040704959585224039739796880221811782589937330088035833413899318033642589553534209580457697422555463072060537559771466042763412659169773991168326212546855936650923919263476261198108926232964478780977616812226308933980147616111532524744951819502092614862842525055864314571002532707852342227486925448937222707517697927978330785814293840894628770169633854730120061448909492533273388222000490126269527382404815225907637083446013103516681007445008318507481703283776421244308675934339355004464264332682669017463348506002803723596459374546137884230267571133794377057435553906247229763968146490499572710364941435311186218182953410293190461716494894636432637120038896739966649521970427935042068867952741605090076924947631114738551722343862715262097692972183185140639614471651602107263140502821715821274626708796512393152104117338980540437734735806370822630095258240967504596827866280070603052348907693418987322324205768816766909256716825799165098558349749349194491227881530725346955529575375854347187599239222485759772713282590757906756540520199648068216762957076840686866237843956550789011334734713680656325488716816358201008288408133618365036945025524975474635448744350190160573342649064469020786980170212827166732582231190326547713945431757925180796285999261770936332966947431061041773301844960667218384865119207187986720182424944876188195790978952018572338489377364570702601737761303271519852663148683184791580491067866645306350321180675878588623749540944959667578778902481710353479349728431932328059041317781086542281006644265328330859713071823974600975400218790873204955518922770634937818281029619381735036544487840738290907713969455389526770100432146129798616394961176378248327620179859475195400972836243541107451236971188709425633230384070491313520177500874850409092239344286982131869090947808311517425992918113086512237497901634776306840277438400328397195110950602078928998855893256689282038224232601313040604554568295316919395637094411024954383391343911241355021794236086932832270413014927138264585355672245540709538051212811251353994890833614637519803643573273286545714267896347248620297727327294203226732993836419885270855227393340473492453446898727265928111480569358506800603330309961628075439581444909717488602230327014717458705811103795495107403764243738299643570357770313081330743118542214629386283222840141715970149024818089159587199540695066119927501743102241806903755440315016760433647187832674488858097630535335014682667718408459951700124863036440843063776336515985586842403446075677485102151706622371576813949694750727673107355817949547567598366933572822566653851805851907958595590139597529045497721778374825386904425952719538503038344492968538637356446382049379710738765819305639932950070399727574310019999961969231209533374040169009757431800965185733337131222074564647429756360328723857501954923887355668362027146240841394107044432819841119580643448665637411634192737234346782358718687751791558843410004519738140130898245766539228116451927360489963057514126957070996073165279217938810253270217320633866270371619575804690463625702701377961412763474266917495274493583510264110367910949785247840720389631262942673193806001087126157858787204976243146930846278218214185585734779441606047721956047057046649586185777404894494662286420128482905273531657556656003493866722595525837756876453204592785948503507912409018781109737200251653994373791913431345065011498497286831777726767576489069774713988452228590418846318229403914806260348814349297934551943102230653175325398668969997008562486505475628501887391539785333777413017319093497246489297638408363749863343677058931401360862234666806380264546310236477751903352017471021788504100386070193407036169328026158966117525857163127493806242739528841420043124723029484677937683431804075590066982013441891363552922449493070200486261921293981066451855233485401511286355477615539623841928867493586033591436466390635650614032137320318743557933700308281502187131774449864156076779603662658404394572108737652052732836623297212432244358198483408946944574288010234994269685113556966147179866564296902824133692967228331855279233796383884281844285641650187510685524310887035648072610755948650651828830349278735475616180234095823136914639478955186014609793059469243022869116403854764288401827919082222814553675155108584130307979877279861959045476995415054399349804705227533065311575479684417732759269929131471293592757459734012302522708100708206333315569221315447790437761545762710358920064557957469740102418322045365177394251184358926847190863163206544920333567908949712804066639708124837383174258046661617667316662426267022835235747954810937159682057622425437095294172337924453179206148415459492202970826939457834903744817751776203138617966264473572319944962125897234348112689632368015000666752342228604832483322168203978800614958253816582128926259589443830768620300352532879230689913374015387277514602682805748979356703165853212142229548950314571396111374886936214223565492000281180271511967616732144980195767739528017042238845813145965177080511929320095434057854246203396194741796957425103950496044957295191582476738915779432689938487066668991467901555229517649724937975992677323947790635024576323780817050706672994477030347983722977077971140262860829138457391760681965864687703433947261810388089042013265031433259917255506090864912320160449668137700714717434777879967646800148163368211325751349897158807304105079893541297585691431228436494686041869715552962869537264758074520824333881501699210851142091100612572162491587745598296732549535778065118712432322608605415065104410944621986069395877190628042441999942922662648022841368319173021300460997651803949547729690834393894655420774576776460586991719114951734959212905207150843896659791969167747728414457705049638264181606572104551277391341313692960622156302598112625319766428933849890575612601646922107993807351321343530885837601412827508348811837663306917631562611594019710479263286660065590075406701997681661343148390655008289958718179501799571848453771111701328874523600178254374650165325384705914574085089552567196231951160509885149378622397014755545234255276447306461338590973358301171126166245610523826590459353865780102110097978810341008424291357936292077032379997055323584315066023452964727388731203276472875479218708051951964443587677840577628026946243512598378551965105143537828886374855726128443733858358726892592715560887130359756263471299633798253460195458244036618951124947293753492486297134711071146558846332305933781784579547217269743752736796248243850050175606299876801552329066952749052138912163790624544626060579697550526164644973611276727729916156306502703274538781312751020709180186973995156238465027583247252762480325734168983592076997826310954991245106878101889711785407358869913830010608461558233471721678871442380275639108000099556119370769160264232115892419633088302157325444745147221841669298957022028270424455702426414344858884444302069748770844907961767310681310258391701540328895708383964479591403042428466790790813175521396768948150622736448574126292345837517442726758228681656026315443330422193780460673828295963692567954506452889207159411610942716725630361263300182133551393965078130986272437992635402010122994004842641911549436758364608786824577136764130542132174630235103355809731756218393654577604361156358273801202888460019733821709442485239817695980754034751245865142778913800105420152585782916144290134603967441774040809476670303043232106852290935083152081099492327128341757523121043496013024716120153016067654138313055106901933908700730477288784715360521365695525578389806733273561518156784711135832392854993662042713862804060577566869790929532282576745681443383632112283648844714155754769635343302517309646400299215968478567515927040191811730877344338061868794640986694324705746659243006879764789284693224448830361981585708836141304686921621005288643163769275249466517255748604990853422622300708203187375812524013061165842569391503937273756703552039487996890026088999412647044910504335907766245393932212696104678375181104601263752180541257090959591750802919976942292216533437870917389657905772550619022549401375090557020994940365831602304067101427805575884409980167405558836547885370420956962297890404730189029731687952267265560763606008975650859235800713465493296333919040431495206696271833362876181210015955162760385220989876364608061278288435560779248553365454108416077519544398326208342843290959145925444287114773421110223425205417468623320618198798793454125034275530673958087199028713914384648426640170372168001886545850082808860479756891661357722072739755806004617495018126378657303962410851712664880712548791715129098743498603538689580760703153935526889371424095637325664997042397473028867328475298620751703649658320594481064467722232486841266087009587470726257030666016409223093218301723317542489471346248086740149400552015563876483581847854045179257134245647491342195997737578673977279970989779806352754589425025113633575631341963805754010735501118478091649559874029489083466519905267861907672500012525926903028154442116061095277649860680351064934029653111871515044777158439024134071719191864175244918607411566000801427699336403702723689357282231769792481471409271939796032630192175877062492455476402888136988682495678353610063880927836873928259140361929075161704452846588061475646456503165912054715528371479769541034711007783575953788683643302608502642033095645682027115453940931348532145124693131559947073996357476159382507256435225260778175631004875401861279764530555998472661347410822075829316351724603902732264473592999963443417108316570537308554058531383523881388811986051998140398196401965645223537063780122730473591009485682409994577233621097595953922728149259786288157773362666944591444818386071311050753822333651251430952598560962215514459058284309906960096227109712626359927732616691278231761546564860302653280036234490079123027060440291820749989621334739305133227269094528174403754604018986752694109024108007036275180803650640922642414378841747426255432570093407223653851997488993320735024367676238149711795019056748956588611812192836919239469132430749661021185971961212582620796733284977867659740188562552748948185036904770868014980370507553650831041233902345263714041966180058155314649106877439559514524722009699192821646338015729633318287415679337209088188823067249675677721003950909044524897655001684544729667054260543279545677355644246338890072964473415777553089629735690003512645580058719299206059850484969253409972980403380647563875224884076724323705449418802478554250587812883833397141832594264993580990009969034774207582359174586607464824681323169223560638434796879566794843355537207207105850303402214095262394573684307729423593330959706199603993445051886402242832258734198441756202938607270991561270787558449308582099806755918367054742108726010636807633573033895717408455808358977058378457106562021306416147059296359615139082642517473140491394363590238612084918442082648664671014941814250704642734710843724691787156674169516771413604496920607067932457538598812672494358069078742126276155060899762648171403182151446920594614230390695392196334711627871198172854002970699871739511522021560424346045222576921639459217076745163348985179233963342613668477261422723578955899563391416579570612885763350003261988688509172635728969900041503886399362789277714420856433439774549414786764749866772138376751514085914501269261464388855074477609588241481478081984748051506665159375425066783889837793681653275566672913863813710090906674877439825627048253143913487593842376702068881931835350472282325727202093360875221786071425563398109488039370575925148195445393022778736379123981618059811410020570516797116679884679080725621993018599692066751900617004317113988624024673704573643176494292897190457199009373468055420794767969451491020299464221404833114544583571466801690216222517754886558212877392097750441237537485125074842379821853384137796040588568960938592007639462608694364487528671668832765239727638994474212434458634076133096482662637526135060660609183339925424912503474107069193507884510981864398273253053376695884092278390220241141439507350229833408341873811963294868964614447895074346270375394876376015242883998080315888456373793900733798423169814170766078024399915257080340963277129537153939826426480045944131160892934521396377698792065834646115409707506145128939917689292425992311349908215099031833524763393628605353097305836679917887927633084363144956379788187621925829338280294139798244059108550092494941637822406556313076084695152025880647104656988745527927162707330757420965816232417740209614645101915170833534394294208838078120996278371609904151054387794632151535359222220408545905490869990704252741800721608580625867424748855557171951328648447619888680101942412311938394895440661889106755319909515404581293098520133575423901080611884637502925528052406259904956868834894509590658536860101851826948452492561295386784058522295071135992573459883664956455979279102032249505866939423558030368430630778285252350853048956658895603634189400178090922817529249508725976792592647031208332158529335635784145158710115428026596238385078545410620431997011703624393339328887134790529516726755993670119411467047735536604156658620513221842289013478421939972833554531152935983847625528515799327043975115582388008280515460041588055056887547024195315905443166008555456884544086872463863981038335690835767819949804459151869693981447586664960660491767177424116855282986781818784338429394557802589462918087650293912194340406003666144360651590329167156108150919920580092825642838345374781969124292451750301448183101313512433916745953992417703301928978301175057181683377244377609593890087534166286201408802506740389531672829544224308117370285696266217243307225374430925811509280016625972906144038385568913841236727205034539591922874579869276051042624311607278449296121524895889905008333475931046144709287474445741288131924517115409147346891110540530711051848809570691377955080028930095059120625103476399372544392982348077883384094853709871038437085763956319298886306299333345727582513356464685123851993734705518952218824799078498962042524484145818785901916434589304234468325947528979832877181438888994097824577613702674227043414396597481963375318385221508252422969064062919812094953231844301518336009869795248635343014427214538273195010149124241718614088639599872906865923682311360532389200434617197119231053720135647164599093961151186675084962049014524617892430036021700994447299913893341846077881393067618539361111486143774800181637609896607632193969329565350930917258836768362722429190665603442531783661966866357883340789201634745571534846128281276756175404522932814057047487390505268870447012257359280744753240123458428596557647306550367837480638697436747760420380713452494345479312997274897169065433356020190978609001414583000700660827179049515882921593053716426952976681875347505814818101892042202233597683530325857910473867156864281858868565694057482532577098553457289150496404812138386262718628878349642026564353354057315617221716539445621332216389395927731943096994580568388114076344489586983032941541535642653948376961111852200386691228538692019674970182793049402590187106141023280605111461989600331182280164447075148861123981043886363299611651384835508163832871610005924505077323209220500250891956399222406499769175295956260351694978483344103422577994468208149375314179941777112132450584375691145144282164407288345501154946401918685582104089677173902910925974982193634190636521710327028491738944719633263632471306023946363434871039799036318117899174861033574634579532962722518409104995998275783616991047343928965919226712586751597464493921730531710484621087796625085027245541348958265364358234336794608729871545191163949309865504278958772190767166510248612300754079437536850296396175373996227008676960776527619686283090379472478013019048995681937172601737567572937244878175459476687565839027854114904954533728256541723230271175035825621238622099886454346816429075531406553441938113030133020188183407204182994121456923773868835053818108724229368750142337615596987001794499824544214509439942133610174831635691123174396461458714844693118189198239395312789863808882460508507577111679301904953958286481930032539060920011673804684666408707914221265658508353052220261194063139192439285652848269655773828305091021060456644131287201954312629101612372204355176870694270523324329070620014093717549610839163617081781006143639965783763191056523667675020553482710857472978514075955810756202514932260756664381248921439724998833653934982557614685674705003210019576685029050683501169587019632705943884753171941878419889378240393872887216898796526632278162405142544317861723513547867018517695315252879230459526437509410536272638808024281532612826996482252876670556595380049277335842677314129354789487331457943538056308660999069773638655506536409345674046337335602888543030223898530724271616853185785262574553531870082715533474777952821928484385990751447169252977771662229045144664505472129820422019261554123723556279062334114630704521601722186706031478388544708227547496858676562858392801717513683703735331525893911657478800147743251854335211670410527661554728474733026479528845974364318218593569072471932426004703782936983976091912958195555252250025976329769251261630652677737632254016499814769265251523992712787688242031345779535021678439392890531546214167881707060251535623609121593115339512726122281917133270751644125622835637881128939977873598919573511639444385131406735982327090972525600972324303220368920644515402701137970759090429190029426015378471447106374626426546635165553775259034059949746786479016161817436611881052480780930774559316616816654604880675977117407805505970959757188677572561406391232378003168471565306854690398554074343062552113746178032145815331454086417991906734858698473267544293115382035270474572480602264936571060616519078026006168108952349995684811590847802357040376530067648274523307065019356533151565874132724486647451572515006168180700977719999865207753554479235191012471602519245634470332341522480800365434469646974457669913525388455799205818523647215429860701478083366280683939375584397315623179435229468238674295135365176109310261520176275882221912773163664467663790406688073987824168667161310596820858479052082228757197128447110365329140466716467055233586513270318461620192672215300834847797835105529559805543243073350540392429454371868255043789818472192793063854991378921902871833216441105952546200002377097021613121817042945474100925557852632680335699989142590133743130277708236929109574771466621876137082115316078992563999986817547210268526291338219043060787527455485367415978126195875006768894083939838773007137966918637729845735748956697026760429475609068784675904829181647223087209360632139999298311554275948037648256669993081296555223431467449107181686363338218290000200833103982473771283246160633843206227557176578020593999586274967872592071651874062764178235111748264501196465446249744717120736762669700161063492549380268159967675929073800603151489695907983747003105820801140487929216467853914811161488221100988984992773577588425026588791383109449127273705070993014847355249215581802817299383322351617659697539854101738311692643640211567480279315788934298177758347845344074481750493370999622116669746843606820653268403104622553804598067137236142668715176967755016742725698205728277938977603122376329115979686884710352041234520082449209509167938544551592842799042784357012342035917049091218548397083770738875958595589661536670259123273354291417713574183797874006951745366317177093489521889197237510546957162547432648816402198833187906574768812786690093208726669958779898164694871075173121571728306155497598318731341332849976036003231623179517567578888027431064360523469528454055328055029649685610427923907636095984385705835982850453966484610256666692144849571878989101738582844733519292005425087419962208245159447533252806340865909946402485666512656875706111428087468406519275819716114376373462659838636319736573072958485628060930824258459198513855562943559268890066449206572130180645748150118569852261904033258244791851483339611001111031274207684348909705845203891824821387658194962020262479903666520816284320189836227984219930195826622453013332403684460539587000840892392550865111019669497388786672757001326161834625578906185153298350510777599135457194971387862477268025126547684927217715737025592735350319649961119344216767286907321918867412144781207739378655517937958408900469014801660927462382114713231913318453246845946807458682594163935713129017391277043804043676769290617720602097455717488158668063977443438494811043931706564691737123621374354852368860580351250721305282346147506219622908142258777868035338470079909381660177890994461720002180121765444577340443574550742436509319154599220559478543607426126690455115711197931575851154768947758741991718696940335679760455871111647037164204633186300406822528180672187257281165886151094951604696348280329369468354704072931065544771191010967576490017248294902900248014723531921818649622596567907016995166106032949184195238654234104863324535498947499770111631389703136830136320032028975722700073256014167545950123589283956318807905910631357139513936938316781148221972900520995370871843389382956482013130297412142147148935537437830923763894116077528688415908443189823316392857835962039094805974572367229691530261868611775025877313431040527516884446607420218928502693290818402035937409812129777862731765424568249266430287757663322617556673852923882811520586301789579647465308629611943792669442746476596502133179732083347371726081640742808172461898281644702391295125952788371140148964848414202245516944887325808685533007636343173057182302211321587894014918715832461372725545402041069709773199468622388521576247739726223360678176869491963836437447190518101804458882254964259080113262764130929674888150570466502516701645856297897318077910733210287194263248263555716898329052837398177135287974293967196364766031211491446082648132658065202683249603503863689020420639870626601796072754536491676637658438539657336561607155734288406350126039563495205407033432309755527372763502922940811634094783286351101502949558745607883961383333689696758621783856461408346553015518780606043718530529109642963963991265189070945237700864565544347282925615263952882580904387727152214250517943786430970991936220730090840930556143242299277515602104276934016303333887491592308369533375989870750568650188703505410444170847183602797313573450494523465856398443490435730301742083261964183351491849780423241265758679949370552893386288702104169767267367252421666091640840870471305446498319479885826077058730220716582615866314465612623696237332433033337218685535572479562826729496078495709777630831697530928780542148981708649258558209670954878333517960427369487014346665676498238395576548241066011294181879837183807436049986554484671227430998053342136632809403274754519693672279750727429676361897995298739882026500066892154864735719504661711111201139927392121637145572899249887540362810357268144433682919072456612659392927621930829035623006707868451588956680594726277882267179257684307854002389057916653636968805237649143851842631653981124567282041322777972869916757222039686886689714782873044287850926220968256551796879534711996853974218415529483542804679236914500160500651137603969221015063012082707514148366272404656348460304592467744856601641732755868259368857480626998239411040177945687939709899783244626171110804600715291211298711499966505172326204743791255228882292126407249760127377021008514483369649717259743589735618859774291203636103254753045517127497537373316033630376995722669062053466603661323861443205232700685018372979773488697194802650207924372278182323846263477878183982463383913578955526947205529095369491930575779546759329013139120416773662805710737450347580021300524310061856658170773909672993593183316558546550389448839035753993162701799299392544250595658333183948021506971744263334455190256634466091462872373474981115643407108384555096835485746956620145207664428759269304440252895022501319844871596181324978579310632193533374911870180117496267406051374743950875661655714860474134587470183492740544398437789218144300194149747247114768035475930310819317573099669724644878936813310008407029949189747807819575994839986873392559128325523103727879659174150768433112730897784568625676855034750647029872070215451529801523477448196703947995955631166003758755388219682429199546532492233073707030977695955911025539891405131907465596316257609588388040251618354851956762191773424896504276534658020050678086101065125796938708100278858798354662283529059881964496005884724597644805458547308185042076626510608870401070681520663680685467641130568148178451858413621407329683140683231875209147776862991796919437483286397178258750611998304301501089140358246974628163407379130222041635350048025574869199727228095816267791445552545264346669650086012427048302994432051648467884282329310284329682527697842906537882434850837769190088990824641337316756146569627436266868075451483432081116091815505558033363138847705483621674338995193906286498678315461628219383459498567423027860323176655411755455639516545021336175948317027675865052345559129531715884264966325591827087998001943723599722704643763258621770801528903807692569169960807935415645075862628056723674502056509421235592861338774841288764728856848641596199817565247195505808725036118144392133951410368338304022204293069773761725283687391458133512436021661197906452650709997474058953403842141955474292048341429327567176951189172893903432960830803723683246279654526118905089882342030768170088867244606465493417440767110336904509659818569718572272583772470386060458796817733527277098541967603813321349609830971836007381181598986779058685655582510619335579412535347490905289869001314989988123670042487626494905339218662342570649508598545351234955600473559299660843538483697489810011169922129399742329243627168925995891374270422024425766791154658208339410303119287802020701182228139511838649900528749242034228454286999532506633931108024576648810331956369733043760513325849808480867944001956457276578446258001210841814497145380860546883799968951048192721140141577902748519048758505651769962882585156215053823400000447453132755685503574111123269328875400748960223374450828433011767097737655615315993333419587195155700007128208809727322006458117263733187846897405469408612637233710034194857855753225446256626099602369335647058661482502533300901084488977499027462235420593847001716042347869797670303747919808378877583084972094319072851727283809949765009072904364228532152335987793643884142298735829653171901780212550231786460477256437064507643052698954734341187014364415191393560293801696226462612321917066644696252065113893533657955805122137469411452409994703217609465103454983089737912119090063880432906541407737586625016070753803568715547944718196990939208771725915249357934958003503356217315540308438514430100683036099954551748702113600379207590335305926765477251221443985825439438807052704241744535190571812362733403575728056880720140538799740529774074718125615116995951108770554399997311243654189504162163187145663096815954031582363915376643030226361099755076849957283788636982867887860946588288448085285529413619284453625260575692516535831539638180225828456929409385971088232448517990009744889196723943732199989643858375251312267711380045610263445529493074698972475280071065638058949304064529465788772189579022981596498428222690305580739589406821356810174141133105113525485482225588549777567905637168305204636602765007920688423519745392604867164566708207336568748813579688947337635101931714872916051683131897174816855181546567561797983354353250073291775089081476620893657822773368209402447408382250089042835462343538498957009282332852970520338270732776659879070866605754529789579781550336641374728535032637579442764035092254742666413327793284695155391258444551392170682529164151696157426071470037297467369918203360855692702110024608134728491691239785228792019447634810855773707950623880785382425624984450993957408836181586646383432702392158785290042932442799055342755096881584109555491058959505604567459930471256962742915904648341290474165349816351324051959180284409891891277230312001848546437974219057760089871559865068099230972787489333908332307075978484403018747423466345512733395575148420496525126836392140060120867753753463648029086924144869321646122978393526456927884798492438413542455337272609335161621244920950087462105243486232533174612506162707476611151947313651175172798133947114902182034716473429868880930539930581003155702789621389862211619858457318384469073729924248643705174983038809001117628459741974101865964508345606845168514755444741043337124457007332962441891459609023024693903903084978744106154675622577402973899280772880671887519358690258846566525923199959501885427591950354565494884066715163033014819379573626419197810588300640090929073887509607837780662743937890623717704153848124115089972082338439845069405177352283734270707320690602203328608205639072446276172011752550968008503521429958312666456419830333181305124038645403118118189107299852496318669765621078070619226698284069451524325013074248533181660976658446007719751466095281181813974776457353339141637497339007880871097572820215917329716996884720940755861462617635013594941715167920240503037855707441321887766924674836090791986961756779997395261518814316101532808797502111035780186888340536821233343694604744119263708224637454096710426501975501166630869669783929009438811421548964649804942015050900000504833358291551415606611162986266841980985318536837159377148789276285061215107383621832117941921490484703700093957595714383557261000908625188436119454302580131159914768721991409352254880067969760418789883106280885167430935315466551539063129685653289204343422273369703515624386103091046845195563105362539595627271164419308098806351958196776573339517738815700876036716277296846058137450405204072216701028893927658759098371106004587969909658257460829597873692410714227525815610586000406100572726784047778322525763226491930775192024380164677940825109912764935583954010815901031296744739471881666947032244470798510797215483991861215203883129967907808466711455262902630568771608798144389824998207593036966969540474037905240693428356085728984697286744037292360624867399985055760990978428141585121729622611812731110109243886544405930134329389646117738728505892552143789738589609652217081392464627946015302325801413232574487463352973944881900445761773190039969698105546499939733208173115811012537063721861775081886221478297645152189432017440658627647462261566718113686494236037694885849120993791354738084219310329349280722914001586309465609501395553839356808388059834396915431302773058048505618311225189715244124341701171662415250684251489630936858502517681752321090348471160338710308662600059866153758901679150976789916218850264909006714446987673717409770106008813420954375009998580486219499637761677836988247406355838745884836870861689815611247761019494515956176985011894434517624449231074896927863438836998272233300727359418293668511934416922200143331356066598343443003216091452466498932524193671658911319295011856977456915880310447039853592868435761243188837685234399820951353986153602040470968855082078088752132711092943699547649402658420968990349321154023971152021883949325139774551508771644741156469199888763441652933671921470511570751821349160692242504185720480336100125865494646982913918802634442123201306406427651452821039791286526473793985779388848791616214299191517967300591347401699121577974496751629297183767016679343402275512498610026127112308636760731817950747078922873582595900146463886181965326250051826583354280254184310442764451566232867022156916587845133048129001782085119688311418124166420903075333184568156684399495500080928699433045004445725688958019660636612813655473631464358504766165212077953010436161441377591068738600828449235300256274148816541655498466337803101040859047073237018607746161569047274271246382267369188711901720185789680153445073477903232104247620684482703521517516168859737503961970605663765057749534903860912710589426310611738797981023360067281806829001541618924653535976950428261844011475443550832661672095689493842134425716182124721649681064286669625975456734182416491449471016860376667805338070309881136957338438014088289037019369752571831842253233763287276333779216827478172840067734958322371036839981801372684970737750490462627144334231527825964009231142872447016633914655546163222579495954932054904553016726092888196453578932846346214416213550939792693210056728412186698998986334797982027681840143746991562865424242863495424997434320855260318479304792481962566985938398004919694911004954040059626575798132452166656667516762165206582397259013842131772959328201423710322850063503015559160067083326837035301323759298079881061652526192616446545184402641499516001689096647244450611773786069873718640742612004260795268777441794450153066895999728334765705643545625828615160626214251859930150495944719947985513131786629860764818402093990904730966860018068030700959489633826648475527283228014251292032623425258973298148111557166345205623499726358097942332464223591963817248000119821598768176357979598956101092566619452256088231557740280714376094944262319399774467352642430685364538085051549410032256232066066139668430433522444405945427670779781802911077597627161830144322586818642791078457050570346445706635142824306132530783257149083204797678309920456044308584620101229254105161756786370796687485904983407431627298968001506258145138764382515684967036379875421669753917492571210911737579420433045848447339906173189042879419351949961905069593385820923078057332940156556855471943587829476374445769894633912843937149243242606005107324133550328277260414052252589672573973734174882753782997329338940430189942995680749385650214129344162122935249134664580893866570160966906491648580915773447290949896092114803214693683168206404345253476974031395886046968468539950753741162967407423272341951519610451025632280209098120594073547043977331534378790081605050270458537982944004243766066105665765806049298713552257386958220210639831744702922534935442709670907872409614380456569512931018637956328953893407978447757266942881553920905560777184283799660034830098644199366331863591662418582193197599366945839042570304132238513765888653008135766762773490047706633901796063551311203882622267358878315942082455221626224589743046217487957195277470100273463627711720245404690263230618041372863395356796577109325460006541965690145247930814843035862846483745530654643707106220717927972492904876104620672014334740790659206854944861395473864714144568651159442993299782490869965366207670634240365508508665797162781211302951373463425888772966943691942068251446615519720294066008620335701160934555954963303658345822079033326915291601687322065811368210806169042201132638187331871488987610336217320391511891787406152595112674955478822510879830736017678470732908631724704122391782333094935693097540871586496665286581026331960845797734318615606959693559301730174777881565277415597574467614097939138322278863974537135849106840634864694936838736065490303403414233943728346994752634876353247009519681599459860770375284937478831315862457051899232972436533554114068691984908084673164872910314549684496316632683857767427179426218783108988062230874580789974963619126034416028518949595341916781650313378447225545791248928188992088153067029237967292381681999756235605319964485227090211334130896325993683138930585714355993450565456285245224423026928897509740336228821747652848621638659337163883344801260143193015529007870273076807630915731684594223071893579318118046589752036426012058119946603475880800480788215687315906284504982316442309476270982386170931465175673299149147171524014133772905726892019321473881241311156098088358091995877091054687247521192575939502751433598771683173662771043421982588372359871082051431147077774378603970624577051828426301042688950270867410064526487648522479459614371598727252105264177088483982620662997366888646935365734149943467293671740936403796540010882198810843753775280486078273214875571928683702550152709553674676769396019983567825779145874933834575540233874769905047141326165336395071896957337312614528944475696692333011998142342739674604951277465182080945887932520781821965385458423128190689118486329632855366610482267920854303692850973404913488397973794818905763665250575960175369101263699268215447537386887378842464834494302038158597389685776790473695746180023676581336246621169209246972382273078837130516027781584095677689370716978122908469590157118455127968575791160635344924757091729277791056298707953763777983936140825854624839563734662616649679717284765060714452363315638681306570136787501078876527098484408150982061729259624511285098854404602397091721373136008367719707619696382286020231543291233659189666442787414476521206953648069987692221454232642447388429736022390826157256232493002272992611182567482095795712592831204692069243850877175351767412575880347642786497399087026393420272156922914096815172416370006511159261231553701038006051220110522964624200564894114648631868098450626069097510227021105266309325403545153181710995198288103097331244146507909449929344869962404106356061479939555944435281949713362620763961660552321674936341718406479093879522396990248894427186363157106626349778614185202925994861322927271915259920457230748758064127996650836379302646430516487725319523206717352959090427309797652278242011230346365655418550481396863542660017013459967830633683785792317707487567799194274709452474465401068352912450689498356834533050683030942608732199775080480838083712004799610452906338687180277852452419703663538562367099242667272764317311036011761511096501657162323820762167439344465720023550675645015375794677163888098596417819932275417252097338299857081271426055750737463323304666681669804984009645493327567606801898854214674869212183073807647635089859312150826847114139797738562896808774023889833824279819522585097393327479887674869657758551224867190121819568164802769470709876003963468986116533238642467553303116379351299638651171194239573162625112754577387195181952561944820015932058019656851552713892961079509391426697148312202099562674601255947170297659188045419245955761456832565529524102805025892127800609470708196977760661870416881189087168775144704874885643749070714732178073325027250290477068877339344758827997582367803147630874316907648425884248352319295752702448073527526519032431584126980068574304867549275755738879452498366543384865609156581125046496150213717092423945699897477100611106438071230711506871977344482508805101122478020561143810445540632997423017859451284252491260149036581856803956651365514117732873168603970054297025693630679083173744687554367885092775132912666489576932887697211447230704204626383579985736013410617729341576437411902240016685638562796671535483778235370045732336651858066809243299581800268213331330078940394642836700155044425638986457081837383984475585396161117626694155273646805617331036570609875870453866999467434057538066925519587841062611518164389160976725737657615749809128867131636827110084100377856255565167434365684675002574569305842780464092330745147230422319012131737725614048395503471645021083424797873316153749690513715053856196562334393498700435183781471157862914561924741465492158102688070352504288875777935678143684185205533432820153202483313783947694109323027525934534538091360994382927744790032228436848734856635164959159203461226380014684789130146052997670448167567668909132304279898590006946596250895575459906596489730855676339301953928150159096945515655259230676621646579478972592163131407373070426782854700187845210729431001420573187682282066234359863059176832042188833266470135811566746170509762549631737729437394897783071455916711861964054882655048480203737243768973696505860508201127094849518078940177803228048600663509533926644793017723060248049946353316787769184764738479108239672354474274995910124531197872904009695157547126159317237586418416197781883798182614441133490612015178513622689918991618618017083289079663746857633390589468223417662091312701425289795582107807711996754072027780362799299367449863546637130801101165172076201413659394128957640987215370673269468272725089773219222124982766512320219989539702719473442463169942650951676514551267645430090927844208791677512160499940662544900764070887237297668505869281155078924502192611615189083640835146698239195744859596481474164203714048164630029077359340840338349391394314287330327158159661654733985951552028280598743499176223244592822152376615459111441339952023488474438182557718983190748911766893522960887101884559400316824740410651009804857939635996080752561673940368063325145170002135013977351539143326199886409369579874501684312294327286305939554184430380478516203106802269148601487940357482084346698123376100082932928354742225719483115643420002287818290482960962473533271235528311696233322715432232119191478302942024665445392682132990435941479177292861555411764873467106487508946427690656874258300422635417230974323717710009548047417346152099889837884663192589974101531851876526980157424543881049402706324687087043728593063280176612722287761696010407329788725783414761129120913085040060436811191689556214251659593741951935960884519369357678160557451234145504753319222828932403953884467687166621204314609674972283537721767750466767916415535341172729218919867334570419715158079899982149399337698977713431935077445344452484947826003064995889949015442163428043565778128508176849628652417475820388937047661945882738315333611930341235510081064380279267028600380996028774597481630823563491437332097339706675626119065068481035785764492399757722813181107988869319186205994213554307057039198803304744943481273334242341563463871948824520100510659964212808973799133966624476453515507186020611163579726828748056749132431523393395358788486661246498960037293973813204498435600706314768618194796748190462309047316743722227040468843480474690273856578127325263949364701346632026542487115612603475386678897846714462726989641954676567204108873487981492432782129587839050436038654094695172343164583057191167344513637375964540133175805213482157706458259563295808492626605934527100742521504812163966457075484850888393234680004594678873754805321929732673184497859359330783906423784310271480001932470518062888194097539081426017499478876524558074158309480401228938716735149425681685113274791194129013419923339948760752324910956844420106997919749141929170961382534061632336151910769435075008807333269213733574202740035009305013586035844103100585499034203717626914116951962826193964539801914361715298190023879759964315936391101079562457968926422991702917475002282123226614734385255515478087722312426138998613110001378761984634365851974575803924206559820033083130503459809092570732059295310661345825159980185004302531657864466730958243440099371440800507249039239667188244298348098774047775241503996277591407740354010262193128282036398636983167483710844882111804691250243599679746551639605812363783793175663544422941622322257612633068788122665342878232282871939534898395923738048013247992113294965766449220168362898734544218655979583895026295828925217946360893812585126434590155315972430333937298198538887027760529424903612486959896931514364370717457378992268411274938843388450595912353906551471454510805561398449329583029587373238218946320975981922650431554038731128741992753954916774707607669971718474524547460387618290098255049923469150295208539609067737049735387011813378831158308587030466347435855758540073235448035941284606809882539161135127265760915280158130330446295362018073278923225144924402575417518402075821869075675023436979496481536002204783951832079542039740838341761366548500233202613381600010895652551341497883447199290855816853694574980973381826517544512707362123085054292070203760312078785150469393716669859653397716808695815990028164201987902822725827659600638198835864128520028668772162657829373138097602899304649610973823260734903559031840058280039319824493058486379055951970704178796343648941468845624858846238070862804984709126427316822647860102036358550494752158619405936567546540640148823534673899100852688039188238207851443224470217477999449565027698510430335557754502390600301060233971077721343214354175635131499638056720279475208083824746427779683307373878460039280411399596903260195154506180383908729628357275812405539119062906792684686017075180061247371814907279212932875886170565427420295054830485647763762985936774406902806171850379494214764481361526124448871484719826902873197507357441980852212700115228273496797060667225294343897076765490839253196700756741340425262315239144582505450560325612897020561329739856703796623498106860285054289014611486586978147938125413884392511547510525097309334078675693974720513183321182507290440784769093711926632061598355633404158426317232735079579179731266198131176509725497775921248179199255153775709856882735817055344892446228344934304390022888921016184237029393086215981980833560109192840802725919918230971956750859238814754919157845341375029543575323207309652686204641456162267851380554664371387014066963204074393178094044934869557492401685971167053731703280980741487084330212533466961469719319953704201554539962890665220559760520793235733266617693004973191391955529702504053783376493879277387999757170419403923646571714284672844882121867189907438134559499801132211845884068881700754079702816087551518907266226802519843669775862384586461363679087166957537313756106300710481392457415739386061829864759695758436307371537918557087154753358404919187497801202552970092817938185631869338831828668572299378064661897130391919664839261034624927788489728275645293896924108287807247127505694004251546898450194782936151178021095275661431930518283051754367167134173234968854075481638741151435719476106863025683932931896183861891802346009138071274019575593271232432820802921004994312610113836697095653736874092028565784725462079391564533915427770909492923238014132915138821643604743507672128247756558620627965753392561220712377619774413128581551039815236627205160940861060553590227611758976450030586561448873551102997159363175680059989155739489757273007069927427775168524993047961316077401000670240444350723189787695829805004034554348744934427079731823249350563036110201466135568356844685231549955231734588914573825289964927049954024041442553424125546768874620700509698689997100413970389064825773536892984461817326387873126603097398221688004044212694157429032398899596680237284035177073629689813289657574037507100534402164714066121228379354153874837903376411415589606443090135309850565848656530559962451562269922635723156226266456909721024539062461959227016238915305321023283913374227579639807644288162718684360580134832843855224387096378132317324137205345096427938320922241161117535211177685118039310937114125568189856417798331004261344764480428778291250281331379381408169674249640689105034979454160872734596223793272157632783623789463408645629048948701521361885395018528798868634041117548014065068090984500737305266722576039602276347956191387769020947934217493248654448193098573868122944816758213937422079188675704207953945041229101485237009365451161168090286228973888130385104954150070151085268940826097386093968238828198085474464814937398372436727416864616000402079415747207601724038147928965414331136305145043958375106716416522998475279459161544934737618875616000369398758394003072086658586015304395665429744421159566773741748121852228750071635654391545480258668819596627673081017170240495681375820383968010229701678734111437078471848532682446420134614967879221993036192604043176949641657198229752926618448480426326142385089425185261173460234454681871662944740068598387789680929457255140176114633349846015335330849235244255297771820572222504219261033349718473212536330686570900177200180517599674097108277849408990753174752763102016158014508083910758793997262459278871001261380222568513836177932847364422114392121974437635954005145513663550385085452548705011618790765544768371621947076103559335141581151601957463853563337576354983087708274864938180107483340760652949727066754334809206795477513148474769488227002020683775742995494018663814083173822370246546541171467424186296993433701747760901023059458345632662401516057647030480598299762345125401958350047251649740308744922314671087758050718274274931711667254364806251870465329655471262956397292714293861196281978136242720549400254271607514360857018259119882942816111620425079941761068924165725158343028827721171544137379350515775992976792437174643580274878874664977900927966952657190986853931363275575152708221226368244534133477867305609885275554984712358123947424135999109415916677009605331607675627642869489409134090409969595354215208043315365990002466843062409899579644264904382894489396744147907897153255434493942467448107878105866963774572717551917327544686028188634950732953265416730781181117976691036758448801996710353009533502929506301524031740717708153308661375963337239217072370575901054048076036703814220041199748102002691752568704307269638179056525494527390706670632452134927213071724666992240454353605516952253295298573717516270454292525807248580406937787926362552785923448427527847656314799150621294539940184396399080574595841020621554234367437628004225714629989779195994034469523393604777818005316945594661297558338495826023190721376884038383489072547195807678526324342809162481695867569798924422291057874991753535996241066248175809815647407820321818539878830689640450226024685418128274808228020395636327324839649506356482101969889223777138980443105761272185420387427348506304240382080160024918563057899378534987967291936384546089183987023421546754142021791413943040357928664445350489843090987422325176454782093641686698729367917384718332040331030617575623727742157603227495101587125990309255114871257290939801526277734202197667793865987896807339050971586825246291075469172248741469949138520815065733337584028355776711419366210793720223550567098494913970218543630882048451141353002670410812313061442339521479697190538921996011412869060018988626341254330723750791794048001953364407379875238262266655815398653752584485463177627055429298860813681115185495737138466349499673572293401316390058110724672749807361495389074351115501096820199615038137108125368298667363439517419175870258693908042093473100473370870256305765634668618635610976230909538792881700251770026853861452901908818745802966683522581171982730954171163483513660519960841307934055359272334460234464556839379783732503359996037444020718737251245340340902281140779212593536022468008745583141499724630526213590966744113697535109945345566184169862494285369260016469523940996154354577112183000276761215979266876022970006632169433469976273866967871899825138135461423147904646899351997644452648194515248813352169275147089310621510686740183457732374953383678526021863493483379189259338291456365496643718811965021291384308331590502889478839614055469692409248966332837782527764520763049926762032964130654567819096932706389361127363349492396547003579688512847733117793878242346582469656829744900503266130874012018492345144701502203627799606616398163643069814712566155179768975434539329424811293299336316254787856745501389157791623831293390707365939486800037301319799505679893689152193890003213125199560526324296086175800423584362967874571663195573736316643732988498999261364572471215550691999982244912139669152972758003638917692844324072141525566933630845336972803650646384134346890383354673730604130532907236502241495708509536957535412031376922319031361036126356528855499690347422616278907386550325650152207360529459566047719278246953482727834150983382419659808359111135940229611540427049829288771446215128531438743038645778408277214320558929077250331520406534128321655743494777094401128125982753123139043062735612777076096374007092896977994827081359810820508645065061888458364705534046051744074350216864086244803870210830909666586463661945232435871722594399103372890538510178065566699379173367831401305752297014698296576433863672689060954112230506160237089472467428832619647006254657424969885758063743875033675451153768913429145838612257740098160142789322595681100378266146218159186136928704808128454774338715913949902346268664080288303760106354677433414524033312731839395717620761552197763401157843357247219521873188144989526874680167511062248942103734673179097969082677199887582960688187030680481530258208625868682498906342104655823292263584039763804375988075415559696461321059461319837401927419768729709187560423569616713572632607911888218228923660137672956691691509730459457731561494782755578123999394201053069607689451921513750504116069318463026739260235701290976763264512460931024132097553213884881548759116884886085422085380969788266849050729413640557518796386363594507592872583051598220662228846170627389065426331829178953925618773528823270169869114768931087044754035719803175934444901813339089088971699057642444884213026966455423073328234307289604487415306534691356645107377565838445525368071554047319661065431651701515940195716943490746527687454368924702886248368003376155914780905057685073506893642047985261326863808511595875958116491564630224602505522065258519952203135254137276104701438800132434901337755807978345455523325594780002255844047532744525061573275000208761647128985420806621995129621933976501677757009008352962875671904187951754299402668396015294826129335927298729567151139790040243587035808668240915564666923706737379695833445446627264280231603650103426141588363731164305751067961259353049407603657517892278297227343055210186618747732140332355821136371788585784162026170304867227949271222807285923287222263062124885704121883580459383334037690796281823561715790746268487528878307978302986563511913233502321154522396935737445829193719908916856733640901267347617916802075366469583340784193972594995797125103346598117582872859530096190583166123013351017739808292125189289653275034100790464959236937522643810261891668590966239325016558245430160852422352987337514421958801981714162986581459919601786008323463088888095521859990740263726375994034400476592096225397869049382786215468401218442506240217237801537458396932504814836441487951226203604928909271003159555007725052677562922095526904008765660558462007985012199867189885129134710072328649129046227781036830227728233727458691675277250345073183383811484046148808894339158860100291631981062810582265115164175093508237660442274835212162595617734111946155523823983883282127568333893078970416233069618755705269008541389132989786159065665593530082050692270844111673706834715472516824833416216359508117672893131037155634640919873698170015329744376908144357070254043340695721848472931181652840973503701316443188380014380094525006525185537222598125720325851511081637604433806322535839165365720142820636036858302948637436346856146293941129685411286863233995394420161832095253024177139008536353868342896308713418891550204596310739004754426373804140405052873673343217539257577501468969249752123589246261299462068456146697788518429038460876838077825640121817293791063565570984278812655526263413499503874841509179972146293635099007081054909753150403281129540111990476669116290979617915798511586174458255824326693486376833860795421898698699970227813224883406714842342829825957480730029058132257251474017781216737970902748562340502749006595801993374949958971162325397420191712282396439453726069451125696374532084250319366937797875969362289176467094492486691136444143755250145217103385340230233052875534667794510714579305571965338402176003541283834201580308711596201230765340404786460209119631343283897414471052058503821412530454595052077693371301776804230271898892523978076640619462311756677639594334623356495855984830503966690959831922030723305291082613324843477263170299067282975673611746461860693455165052779112433157863916128701318167644584505415090598292507252322804696887396760334524175575001968474846621635619097235661063253267154666003008434952958151233509468773388986748328780754191325806020115525350234907843482527081113607323503407895230078328846161224934086793475796053064422254587236638950295506801719606265048998788591823043387890053626957837324334884433543837680539626743418054092164582546566820061203433664500141420675355658519932482149504777004703101075081178206793508773817194272046706885102362528415739451429623434365227651572562107029019499886899234227741706674475226920768997680813549629503767390489309355067695576047793341268738670047264717771215169196683859959798772263701731986033092324500157096116881614363394311920161270722650713696560014097626915364630229182332316755848650307476890485511531430860375371359869257793093858450529316496394988820811601445706617996870201342721099158786936545522781492518275088104886052113682018716618543717535384810723793356931159477245511640592298183901841601301397613827177028589347503701730048375819980172486479450120186330875365594862694434621566433425618598536902973503707225699575180065118502597674892549724981917941899962400843325938815554436979924780686654699796198436293003721413719063555265797243127745481682308677151466144886847891444456301380136311385049024247633094705401524474995934937961763990779591224794636485499939840837449315163899826017117126700418366537179249577452079408464540433085345249704983550285139262221933558761506247518790381945166721649750627447144057249267660639428715699277003205420477187445723636093130252984197878685655246904624534789509594364759827113235711561400436986261369693036277826031344189467505120960580197425094410145604980458617647540400812435544903888515068239813156734013214223144580352261266185261028923793828805936165303988407533383708482596956912654691286859471398642456157774368135194325405131057271291019929035046425711136035775545939566328192168663373902879548457084508925471954057160439865060126056287255617265476242547276367457142091461720279922984685978617145374930620155617422152918406606431163545447411027822354461004147630728849931720017298131720792210517330120752542610711665582923810320182591150273432239361019842761083539483803296230476127911046264996065672463905321222325659983200397620195275205625992765311602051564517013717379716163229541245677464957870789062045061106092421080875183312169502259342573249345752229242408541388207805815809697725319872016251672790318560936941351281689181796187069173950276680996893555279584525153020999757805337439669717380552496784813018117888424932520095287740365850147958499997692337182439701700183224627854613057580155587092219568425180531660155324003932069456170006547495813613084643226523493881561315378997069515743027836268695291306953385006703711313739859028046757861664305717207580138689311730675408522311945222722855891865533787847038536606318817553863610306008381524465470100697896593135723165796583541674195295638133071429728552388290254700286464935977433774898098547659084523258663641061388765746066505904308264876410964689596800013942617171092233499073860745191483773465718123735738468501052528446677920913577866461868764482805194605425417144351271447937713988147662775873617166559364458995728642336127561172503659838910520323955675228635798901968643701851914017009271706764197993236831311075345272647936472933298297793366207046971078552939473501536622366372063236441166845835281067427791948535899306487445757392297813600187356139963953044375160838201976399012954007130761410148612424418213092264486103568419593455720805540980702637004232494655105941367567865172223916768750042280967686211142806043648077797838763152023449391390969272443631925877470311375086211310947481831943015408974081237280577109461896394530275602106921771470572701998143025195381049453102888930839453638411847580750170593730765989116545125333147692943795574211905721401235440457157768422670196305317801666545148319038283296481896081677277913155403560211901313604030054813599265880229783160649230419218165864490111889479536036920087888753228162859958106146110579888458056097904729637692717051708480144413830832882957854822986952012135384220747589003488931744002540457618196712959497421952105473611396906976232653813007852111581482373955658103975892394336734851007161209004824801634996933461259475747630489257742184821342851467292634495648224758051773441608575518507576231458294889102371976438837837680933496861038627201508426054243143391324374288477216639532120812305203491983125945796704295562721004404240172888926308409705794684317880483240518826729839300187994376314050844825171314922244255848342582192479429285350126032304777563110701872013692474252551302690459609584287959242288522896575612513503131217802688257968277084695490639924966359142612408791552393358621317170084281295905819654285773287976942296496016378069170764692760351129115078372306734257876427238726298824965305645801265587983852171290164657074543141923002537313404262416590130529643423136645062672489266050718555717014548345033424828487562792751671315332880600953281821045481963678398585912251690359337283855806955622449508676989208038884862991575515177089544797885842677545769662519895982261398737941221338033285238199720595277503499500435037731464263913792242365479982005382470073124184346215984447836075936070655798084594162064080842619562681143402114953090061489970580248110066870063628632376083189947857908725022890316906399358948061014485673579318052029132337315417681016868304043560187650538251667392691162198886149029946729015833084920021254309810662958766207955828036551251648557346012656045262234984167527804547463933370762804832114477080948337476883267140401652084725927654129206222600053687273996077823771905776423161015093295794216700031635248536475940292436526430489449584120639980125275005922359723133210344272894139261432629135364290837903203286227754366605021708180429265232165124425445119968505705618491210988371151742456506558215730548212286221606575679483545683142493316216706701365417561273538458354404578748701239799081087705796318660190045322896974743761721391145776389511067697068869403134085882449225629419620478398607633028239371575137736750480717568237489839568969218449837773298857181079042045402968219799440582883911024264694737145820447070239543396209256614324574257569377071219670374180232455154432120611016129858637352004803652939663223507507669637786842457505620938454187093329969951905064220227309778261833106964448912838598759357283298932025122540198164442377149468738830204263809411225459259724591276732092155971229686437511203608249759880410483247305808488839874118786223665227425745782557425423661250950866265181303913798060171726966388480234637846568560565097552305820005023334804492565614315882892667465922220551746094187895337401386746407408436364566087989379024144777926053406694896686276191498149877801706009236296271965720324681759996635050124140792991776464306556897055348893004712996109707702302406703086336865896452592389211952416078198974215800395689115508897217230969169291395885805105935232676644890160797667556517749561987226865579387906640258671181975026616786912763693029290946117020899511096319930870074970252716411412128048421306801433924247673476083048960553796435463583839210599890783157753735815160046683208416470616479180520565455515005426682215751769977172880047242280888552011351852159956305630133810192240891174847494588910128965032124481664042254805235261072879376973540703271623536245355946604847632314223464061972737848728360436089172684969475456591849475855714636241610465011777649138761727628041106435347307953759856622797121612147183722271608695451785359518606117057226051071020081919704949583547594454819679521457899019113562338757121118452765008583624198588104194149433578714270758114665421212118814217047619139401906347996777534709684533063426234552665618384888093603288430007883244176070543629272181089021004824041132055222075267340282080516467285235109027444259680429358804087308542171665274860201464834805356241493630694827648987757557959840551068584163789142623359922204316604990453464838501547832238017839413625759221871307340777136194414017394183513080521314064574868459380015988381109331023938568926114906891709954256357400236831537593571795399804091303322459990338044185407396382973225610931780231027983757875907243006244286485788816152905942571181049816533112912401133403884540949272012806614644678482168683246635791954898731820608364959053240181863098306913868593588645866382099994895968830082191015867632256214253347188931287636255877176779465664993995794469438123450348492669399258436759806210722099067311198407114690910642472068327123444045609797331645511099950211681063791388899499115693980368302025605861840600951907554244934956452906895560014853845894375778599100406395632520141231207321439965638878894074423842184734266828060206588360013531198363188236600132563531129393616174746512853403759313093926105994669683178128128017156740674435568393056974597169604806525622107549640206396588195986798393816069101268743640892607631657009440623262648060050781995122579756278351433020662900658455673442962074238718797704645732607546705619847281936006433054882800173850223684568004254007129621200419350931618574622664063136587256846112790989169679148799666603192227593276531752954661798228071035655027299414526344881265876829502104372622481620340375997112399944525630155791216208429071382779443507833111502981698438915624945872929381964863642499319382635215551646722658123991290407201749483030213317884942243590036612135226262936546129741350824593414400199440701210424492128797358116085680438376470676757022173317960196864509621257497754414897946216911839273392820776447687364170710259248172630173831013494857548148384238098931145662626263784869993063693738339236527467312638760769573720257872477925100345712284831433525173372077668340142265638341605377101599953552969009321115222395417015161523631091293695173115341810261309174301853184036944218935320507043783584125385799508869081710208540611267534165667117313124408578254903355992551710738770344689892155158265605636299465241338911467201657683105412741104637794060693078768631004087835125019948167847442875628144025310625241270007006606137460989071526443635513662784970181036383988934240657339955074475086256000166056902480493806807977518097491984828025093068596893568932108701719856135891120768673718717422512606447604974647651004154289288425256889959333578979431062707635848422058147743492297362862767204448882189186745564917910728626877317027750384418782329922512263897144578416259708709326196948840598476652589956592480744672324761480903342396090436547532328550009498518849334550781818843251386024137447523595373184984243529379852803706382342279191407855799944365829446866201832666165770689477145025445000288054052689362006749056702519157161738248060560558211850850150274037607054878177715883392938842742322539963494272825620499766387295808432918017229926238738309001467310532731416555339001329547568636321548066714659359175414161503099813164022971129239858428488288532875843716939776692108487431363577788854658180093472610241117241460876388788799381582498503670328158821384729382342320861492633690409974437908820328596865624792251371445292525825512465734307728869577953632737703015916818604331135883539206191485508764015583783183691414537540656683525720588298563408020516455697813231787969164116240236100891845290530559022334327354764096146386574308598658120718402243707035541307889882617236000761753220552100714814541822262090130052341883042986898002546460327010802101849514276870550071081437661062282012480945264645903628539890332253846539761932860352397228904942592456094542147655510560750783241774194599994261379085275793206832194086635995412157067404574383942799655977341174730722119309503123010857905472423385336827229619554089332636584769885615232531468484613986973966031940038723777526279438361506092729304185345453431621525107477652284767991676505949044892702784473037091391335308683307249227320445895708519026434623246631182967009648695871526974569530711562497339116478933839591101124822020933043193624166480197413816122377025389964217398673427923738283787176039027536963933676849077917850730328308051883527099237215656967641121776637911944118505269181380577167078782966288446488420771225919821784145354011579524838488794627282819316634226822709345615272131405520158040777037562633625533200046162853047516046597016915156036680414760504350258803611628810077255815800811339453620210628245500295454431014653289508704255410588330818644244908249398946003023739103180354158212977836810704745659279731217899876135099640994668155148916044954356158306893948819325613751582995061016286309810032416454744111068479599190120126721396130481649086144322092895067782311561956278614387507460841905110147119745054245754004711321773857691602914048459122551669116085559118890094354926844177660162936318114140015421602603668888932096990406392678634702576009473002527585329151141803176079870794292170228110035290514304650908106944243519699493687866721375635312058607910649921261895268315382374330066246254673781416778974919576675827852479412811734301828797271322787254681798574339831724523416881517110702001688223724534480190242872373792498207670470755151145873720747421728528434381373701569552376787942404263215092689166998565542176625736342010831031809201330557953913340167364265562389754613274081170515725213742252360265257227547016363541693467883279791949076242680591337520126648214467951188450096303415642438145911224495105936510482280777878191377071468187220931111195263561151067032530828283906750520493977433713808903017770996395501759652003653109422271092506453911183829215229201410859062857917103483131149986899586091002553656111736635336404128361190327573362966260653405874614977952953054077152927097011253390764251247467899111430355762984125549027418033151541529284421988841848424052883733839421069004961394967396265936005559462177128993100349465060157288299094192910770503890323302320880707849670725758665084748559150785948078160520406186891896823167199040037959444627001715742236192582123148830433375534036229246839482099687975264670460697904368265799002523891688335098246207677327660405047624826047953285315951909634414886997546350244693270690665620986170541433714477487400415103198275460773416489564049713206345485599126114636415816512778859528532815463238291384237972358421932131829873581546776401045568226746669284196636557494107223484685595694795767905134573323637108890949892453608741040791420221972682875943034868658802031499363752736796652743037680933211494602260852519351514434494655637283019421233477254661396959103356132942126520695835905595939555834116730639750752138022548488949211145296207727452148807594967219573136984604917956622298994932425332460980576843902802298366239325976760539720736743940642993452844535846568136545820096644385337489275254445043038596793869455288464796375502803553928974121312032503560265229426386158258168238023317277051393198683027199720829046230708498764518274035445705131399658611388767860152696169408589556631123050285211260262228761170438997210152980838107598264421518035625668457504716290378632579854217587403112249763531122468280548545343690732202337947816876060950734519298435828513256271085914638552351201860576402634237373045794178373371733290196239490946249406384168620821051213574215916739995090642817179508357541751241173538925259222718401778517443211666197861310637211058220467257087758820156177726786864185299300565801771540537300260788346933463395520356194817154494695997066117597307445004099793538096120200561911732509466728798043042482347010981927149438687948864530582905880300011497159211448386378717121206321372603396092093463617025084285335693391029750264360838481427401277686452806468796976947205944693649413821582426280315849787821376973822134192930037606045788118509084229763524611715560981869163396073071602426129037455781868424710747355720292527807665399332866273393657395840345507735971866776063667928468769680846323197467720134382551088804770231357094371850987710800696168891162846406269324402405274908884475748771860556249782306018693730251124943182731738779868727427568085882245224904191289781921653516551786034926922794633556881381262537687527789053603726479076066508438945676114517133008455493211582854663824427275619120237430106039642313464497859890458674320019657459645694571766830292669673831282999349831989189399455418840115475008731645520361757917652909447691608449089407338079361040809279988584352698953121726903356146183534391992526225916115433895179448015068993361611597407703427907051782691849564880504671731237706276224570775112089800201934352317014284071689007944496193847270626563464515534946723080565516290923794008465657631545159179898571265767865614035601283358143604000864060893725266622591340550874868329084115026058375644009570141565879574951390913288105526651050827187876459176049845545838329392651343532997095454160252919867815517549352744264827606760707044562220635881504392965147052221692696074930949126551806811263456932545462621667959753224362078238681624278989383859786269092777634863321663406353659185595939609242823087580473300109112362635403968980945127091956124871593869054528216815996808623235833612832545429623241481444428282108746840708552101710808957851344978177103919408559625812756562668800613124145905908046435660562150582117747800568488603680908646104293031294932408846646285105053627189140101443381788693352908443725504659689105895163423436757291732826579121712125442286810946515836145908009745198712251454402670009763066682197870483554447672538153427041635321748065038761412608855333739980786579366701485073129364742885505645063111867318201369280547469772327729434987474057013659667845753067811083933685264034860499460953199685823708051827049880343597898151377120384858969815015489731564180094114271738296712337062515483716294133198869547303592390741958358101670521655514961615173103863727429651452399573627961107287936620293645811659395570637396250484030301275396717212967815486358027604054285949201777199804428541352436303766538146740938452383242766641806246250376480709631155866525231846678065386897772458005241052137074333034390962378658753245448466916607847693694733093398147389797850454981905365442312832643255469654826096863276151150321681620249742567897371196901188273366775760618734324299420128937831640754579041113585109018739092372314320163359434426574599679459576796942443272752712218404015804775543664944826948084022220801575933852307262961085542381607859236192522626363844953782675732717598140359683644462244059901310117253687083523917190833475678713970226382429054832549473469554577108964619059104897027619494334932267057900557425052425163536990007914587028245887504591307635016452685295918112565422173523973529989046465101453358406678269322432649071168386391464021123069476172670500267308190210836059585900926635928496600619684148555430260256169163793438174749343240558034074217008565289823138102598884094033494958137270666140836946169703282621848495775704819996669908791240930604164478180960840741819650838693241930021704598553258172361109690427751451801961438132294406957167254711298916239978950094733585228113195670516409724685053530345395447042193589492827250867130973903756180104360289320650609551878904887906393006728012228385960557181148780487547316809875883085692751973483764757129108427717521194920232585115606235471568569919206109876293151523253679664969911102733547166142420242726799095193045520495319356687058049439490118669414101910847334075298597738159933230994217331925948137156529902990599318157205070193720417188676586600450058512096047980783816019274182649203245883719743390926704838715895021218708715094212824003715018033787791892989270679710419369848159649693746160231695866980149537887902734710401046739356644949969282457800903233258257557708282250092106528534996981509019406402098348186665575411948932569702082550139005155076884389557510788852441509113845115935315135430149255989798097753808640814953832929088802814292168018349915616299001873982070596908390234387130099655697668948641763660720704759892351076644772619897767343951244874583908656340989618981553730338279693706576483675741161605169566078226273663497752311204625012623733155794330289076747167342424320105166236126079464033413265579246947401693585314802433853945878457345044353986033359633774278210557586969171228762819475636555829645049458392861481818011190384558568491879796691353336153917638934463039637571837401084009912168935617372053694243565759609303069729847480366829072695000727144146842416381372731348880172409445099215845592809990304312287398430377935064511279188597317175958204287312464717750376635394916648734232665312656174118016697183272220787273432867507150708057377261412586002655936206616250886307542659472363505656109790379984423503031137732519439531703508840255985675318357765931247173178270071046713692412234449291538536276505483927778986988335732235125497377122454313526743233525255616501717186187548642936935752306933819806038430130314302171563615333022913427270540593572874186598449881035077495699164685750363783206240845503747458489268136947588111018213486731507042365172646307289248114742065731021150637895044167333796838110679541654319502438136790359869846545336742139739842251410420063904393874097284205897812068938506770721119415756535445123207118715272183557037263050391826988830605102266810945871775350584140519709820767521262343416835721730595650776909059341505134604300464055811759342500920651297185049499520817213404312479323427020012384410780096807212888191911566202442464055781614015369310047151814459007189715779762103037553014099413260587358321417439806477095671300558793414866672215686451901512765737926107289083787260295938308123626015585851197400667934699522551708345384582619186399993719088131657763501435105086355151115171825327092833308736046151271102047481872908122408337533438496042413783217601921778235727663507266766022117907697712609976957593024062347858902209034380321625384891095643081556757136980771655239436064794715810936119225151752979226586449637509943531964589022187328635821269083320739098578043457317816306197469628727183211005392257858707992495910257094426886767001661996202138518074156999755013463229668007784241391832287846726541896149701764066523890422076255546200234737291552497257175027552252634685897373240362404181480502917412934829515936135509218686875693877957403299439831089440654215534106992556625241905753512355001132258905011791187186303241246183621930668990958922575816805679428588138505371337075539383803327097340706608041748649765856515627623432804007577320903556745629909475159654728549774806375601727788091885043191959867252821712425324637418139033216934330434646394388673835660198638284421756036843142757570489556851492955038154932351568301171700998033007332177311198484252054522466626731126670502758263793245222522559855561762548246181551802614497966100330512376003040415852557895707316591046118819545363487869645688116923887276164238652720525782870658118875770949925341966837545031623778760151994218596127523506583648787376681244844359999949302064580304419872792479057529582283676735285488063636295657111002055566935393658146936083629892266929577131600420643964626474492402846817930524243027426642307509892107266813538287602307884579540516609366747544809817206145247070052776201871431836600673044216524194224272986219361048737429213759324261608244831099990206459632866032639351693183260401842218887890430403283318033374933737454894301262519336935341607924815534865980829941163108399219726660628343416891911438652824128584887645142341088370548030645059981641069757938129205200551713243555991751384787175828889567464809306109861173008730545554143071675612665445507878567126972692866833835876066127088599077909813439193496235092884401883448776051789348754955942274834342288419693009268668358258889052058165905940963173815663048004967256108890200352216837344614234943106738580344469117877581740278200280487402287014271230406374662778343077079338618898372068879274277447262261668956731002542004903884867814977228777559885936085890947142565784689627596276897204896113631640135353679098001180902033980351300990880845796969504604069092469860047068509271323091813583903936765682473172234523395752970348619618107437357237545987493551340194544053976557272800747404290099216965909133650780528863701470983551605809910623135293375753423779428305588955641722200154112103227824076424184207248563931035058743553406322759917721227991602093261417633994475400987538210280995158979710617747830446832124476723221176386915193939789999588400781396877537874233939781109223785713140506361078806073484130985111550871563949914920820907119381388293661216202529741278849434271994412294273686281373122160291397179993001016711286698592869178441279880435746781470552677372899878499190630956181119447192181786794752378476892108136334229336310880966376576144111846843354006793576044246621379895745478020079958445398036189716869133805756315309767226157404184518565502374522821342711126264718281532360880941707849794152032636189085079771938283041102857810450746519336544923495614715548373820964113236373419951110580855840449047019536767761179732015527717048826664945514783754899973188397794613282308373882353015094751172301255572010534461445956915796849119339531528874750412209399734125687954075519161155488083747196836427332751009996399620911839768776665710326748910844823351715133602953001706495779886067177146682502178419648717958031029646549826856395867947833304791682258456522320128665768029192753798998731329803105074593441584100451092509039934166075655260755564678582082349729069133374414622035501592780523938348582028186343994498798451006470723857065628151721845147527469101145636796573268343435179583758978285835342426466725808983659081404194446963629514154350969778181091109487854818454124002240049132783050003139415935441885044161901220807834826767201936151014646074028019383284882907736759570643254761188436717504966424334229762566175987114971619592881543733338673632673457020995147452293648208127035650546539964005203177475115671303094826235911879702794231874948677928869685309974901503865829338281412822808145230980161826230502287115625167974832851913762330472113712032568968616002885336779543335856917029866994953601648968112920312536840500464163801285211479981304274578333114656403865527711920910042409194022605620686928974435003358870979985660648789273466391034955036241757106109462797680261314815755668527541942779863146382139824272667435342929870625011827884815687276415536736216081706301734518130578462202632544803351641246373260490956681323136869901990717549072328995986622274150496208689027184790915064913232450889055017117065885447177648384315221747855402530971334824092167977064053356350824684627601857664109025788908874878043046644283078129722096301915407398977344703759275992994467372113062460241419404366726587763486150017812758186049936931961864209989825114926243628186813077966211689320434543568567151911467747053633294011902459711590618391539448502644275368109129627143280341066552237607431427023216043208526819910563852281190389458078460458461906240462429993144364265229680716907287262015674564043687193873128968579732948341446960456170970151619896874650680622847635694244519278154700256563736156000748423390761793094083950328505664943953533678558591427474702704170951563936512566503859819051131480389535575538995081943200936298552723165041672694578119560992537662230873042644974618664188684947981448297816617017418604363387427541459096754900049950584549782328997976111880320079567117236064083521030256219293643364974606816994045246555906497431100045503774541856258909313100437036123144914581940308566795090445993564702522781079627984609307292291847108606916144709057641309459060620029762571940224454223019648958152049987013652270648042368767693608199821235830088483942048984904041954065522576904307303669844344625857367968928989215981926136150302146734417069852552190501664815495134920102770554731944221740859793791631061868982965523623171129003271365065066169468885859683461605898021201191963470539122796751613793130134845026106749726887599818341431688133297047167192024617511446115786754441168897892800596991612129469045561236381259421915561958538679116325220351747199191485999141566628110833140814453805726991306901717279543755685730939164333563540474315108456402990246149750371054757317387544618976491572019659310766686953251937635414859052024513863397422349955040725990371201209580259798011708754070196085348560593747381570812316205556006813375251005458287397497337110473183546227221161710376153848559150653423536802830142085009799182676977567873794117761038716201205433046550643420703442513048983204522603229740152707074802283258847001770672402701322348576812980550928754896119990895048670208184387707420609252102472467219697618956110583935051944843798477872167180581496572586942112323129531027452103587000379046940865527369690830205390158997000135924097028138583848397280192040501607845726749667082145664382348311997700270472397564959642271105193081501007656788411921456459698470341138146260465838713954855962748865856785101119328777434568014689655919543382877158865446182521387305022422335618881532835924546789764881489996829355226098495073400328056707377533933252115492189949756011152050978577897963023017887155208661087742265606995608650680821563713722449208377803165019936443840785208575115302387931944414590979309685967171770309597001803206513602492234773659243661846584160792125079320190453796355621269060353961242722862309955879218418998189723248900831559825405212844814981263542162858188802446226011984934832708386296120026966526958390089771325778299697871825318039386553136439355199705001361183620313681489670349737069915542672181897374368112397869326758033140330614193251993104973625680002959428550458419298359442615087609559769266895522509087440688854438336485527507297287980480053925074745356998695605112268498038078830542727906243985320058915209313062791403831925405084558264697631230562896590394873203356792384485430582155330268579902251344622011148047193593552329581396003857778823374707734130132982951231188861596357286163977975115198918575973563885498678319896897369344959629220228130007415970218533492825386723372293047852460901119053128260055642266448476112810973100661209521830775007746915861207636976999488404666388249075595639870359978065695878505745568480650408172263767664593832253076930577163721486144006791849625373945824753338355228655125681972788016794109686230304973939824659303874316175673618383845066994723839173364164774000236796617628859492716105271857923978376362404189897689718787918335841401864873862476488772967961701835744030149026995790689731459611202872718393769386038357273457703232109528291519781480194623284103649360258005801394868860234089121607736121146576464728039172022843171967703204114172467230558177631701600431644170287831257493695126445437773620439806929999148351432653233126054807069454279661628251950854946034025205722492297297803348019527726883791616097812127407912208422782861546239917434470497773097988524270224124341150942914671648107501407921893003199173710553630510561825978389636453043645777905443264361318894149793295788507527708273384013889817549641957761228766222674310358415440003983841522829234506553055803110849171750903129840547632666527912498900312710454644945089332858394370183694136314913175464464012833156601807337173487766933398558324175672769017127377556589221178701898128769777681530639081615119259261377347683291259276425970861215106502003660441628275128640606118541577522635334023854913926263643439120630576560835095159626209598183002995222984709967738047571065943506836876765765527964387171767215015548482178443767473531427701291027908852707246384437111975176167484695189944647300862715392744249681745025071976243010439908188558349227518318185501148129721642854474667037493352934815620722504489535204667391855043911712672703576876607262385323306764144481654557301150899469754836221271295227096067672615531978151056830083597513376794267988286575937249595591487407434060081177832837391184727929546394093998308221214651346430910838909199700886355111424982680219525514003081083868933937250179760525819813219721178510317788927215926270768437306169157807387557487767373554781899567882199068624946382144526317982055855734065569293538857187151680581749881142493459425527916232346268591753026659157786252385177619412754603104483475263476993284839250241557008069779205621253898551818338209727392013756333152749702144016010160871243602484152013733973346747042083409629860629677085587042916541816504144060878721651338424633765509639354812927936473112163704381442810448649095443210755905084749322651717611411456122019496578233415337701231582044984380681556478293054320196150103339077890487328381975258681973398429113893113797612943126323692575721500065512887625139781274384781072214860394040791218458937056784533098504638998164212239923243183823768099257244824501819583492261948444015709222798476952283267888334854146638842919554274412655292046620812014498145649361368924197856820897391683051189148523794691607464784238487167024940917102308186774762225985515753817587864692513067429683795434775429972202764287722311406459797414031849108214883444962098913930671925909408751125521617205971989400481549912158712242153815847831287422925712833405818743849897166719894287753924787660049772800680862763095661167004100841518854173989994430065652252256658261266743747348682114165845088746836159709606894639303562761930748666897840367627150752904396013707550813135103262803540625173618957615202610267945642103661533813818032005920859427476422438736481660127948411016655911756083733090139566536241621971471947959467818658010241969889440641003608505874231902123807586444640085493856951214594484198442275908952584437088536636156742221557841382028167826332929004011763533785086631851017117144614961664675155835336250303361544914693340586717041875182296282913244001323441819461328799774417905050214894174659018566638166345496088952503297365519111089702084201282290585303207116731098999209033255266287409014721298312020425065465715103048582819835545989514102920648239160295208059864885993176047165107931556815225378488262427842210867493085850735872786298558248539865495691466194157774465037725518858699203191281840274131142439841725392567357113138168434739162430902822842569687974669999671580518395591697240755156792120571136044336961143945504811169340810837502147774266270450666096121228059019929697017215497176226094178251221528348066772883862759170273855166257419596066336206548203858989202458708272108500869443985078003532900003073064408355778671582576542536743191254202522990160291440138918103409824986015004754873741481564974060243456600663257265222183662116335745622890779954345609806197751641007455031821617868810321039254810454541298909060324278414836687187664101166765487722475507346426293939007389282168720540293193643306576828878189941458017410528306184107224175909291846286144942270469712968815078889745784224535845247146721650990623113848741022537305674486634696220494449362072692814336585878328622529789604702303277700904401833634915533245499158872493307726271757279834368888878708437755831183412857056965693958765687555132227441540127286944048171017743174624168392859446481975224698984203169930486622042663129834496393396495847421615776227000705118084010765955315122933182254393258540647462846107589692033034966164786035964293711489222333122614934748224145132291834486499035310915065349418562587464747702028041623343319663335028787857975813566867579619163793828172392288513672447790919640371891852636153188227105892330822513620576855097638054959190209227802416365765043434864961205323880753705137709176544686512968070123653716495809513635608958146465442647773017197221064493241953470250024339249187354078097337534155857979243062030496588649255990165213647479142478711936761877468474506300633243391606385706617594279936633344684973285996643389845422053018260570623930036900781901221357220905049499602610417746543158220959546924732017676458428272269588491089967978810089252909001559369489388105775551033848189147804365692120671705093895172132957566336830872279284866046624653907739732993045401869459583187597645314296301574689767344292278186648262370581204307545413916908269818260430979970979296202255221139324507136510863055128958815312707749452946223710526786706420153085078639243403315442437599776517686615698352707895748897675560353327469391989125993955434246972882462492940088279941680409911268861773883385262261019777741206263438103854301333437533320774764314509771107798678524634266244829799584046797483538271431323258665423533070566424106702727417592712770459520202235825924513859763009799702328777309505887375647716876535033506111653482603542013354959017164618281503692221754307849375769840547733895271683023720893617557545471795113680117804863795411817472591393440112696949084980892510916995942069894790257506957883745703942588230069238000305533277847318086884189289925848547123220890979988532599094703058155702297285458719492267022268069117086495126733370792947638121503020104858690007031932539773463996403675119586385585004829751871073746128550522495294562320301247242928444543670153903982198140293706736917260814424385163430632643737549492969758578580762014701317247998518055265462906132003041821444349914887771585367454481573162090814237505794056209784072273648586250762395724578594196747541411155499452803137409734231245088864156934405941521854471098305380798719613794728687681885941425600737176688873082429370889927524744559147126228927642369374924162319510828646697438680456258325020838590930655159337489845879614958813416826319116600434510988920670755569242262851150072663134024531726405414640908991657200575824101571093162555577913805912865714606835096634402391277249726703415937418552255577899358853142383654296349878265744585264777439679901856750816967830561766842404256829403163662109999231508094531177510483644033023671122044140699312029600253168137828927203108147596276172915400013297154917075690270821699142739049081576879095075215723293477733796120539120393581248463158395986717603807420593457101402907305206182695715852524296474103173677077106999125119032263625141010623954466625683995472385266582700266830124648362234085276491988279892008485712295780215445734123747292982905260260951386100710185017774100969999074788614115475432793761560767109742025275104281186577238944049673067234073946605080598040568957256593551498047297571043485791215903152661355517243110849932099281406441351155350859303177524186127499395847966123779056166165770924011699170139889743988582025430187063508048178153176398217648104667593752591396260149854596564746830030986511920084197387106144375516161272804984237400674928933929757776063541817235154370890106510825353890207522343288348786126737920279914524368961490575244244579305261141394175229141881576211045386444363459084570106232353211435230966342429150570267277232670695726527954068955710131686859903286948294794881622802009142036277028644439467384829537611774872285172754350360483150844161176614475376355590905589955275604518992494692238055450716903107815237134361596538626205387253398937825113730132778967189631806288442096500076766312429964629961398262899564913441463904134799248613936087121238845848382561800606545183656085408525602612670801998868598341786063176411027751222324750942267944216216547487087532391570206316920356301989767498480375059897848031788306157681807521056771621062573125992548597471391578065370626185487234557314135386264129779700624277557266696946029278283081954349889089119348987167369633158997876304047704885077227871748224588564947613540919351446588054378361808975920425139406393480196579089289082890521417292401233412683467936715592837994008000677593012643132564308305273271734094500406350500963688064206557887061457934821005308876241905223372822497599508752763356970407078125562738524295574132123413650991836395414731468662284455378150144316838520069891978510913529079845195506934461374423420206754896529041458055990165482959980333289380462377570323125492517367034496363653013839259122319191532668364690936729376793929889739601291046442559447908605891453794314113840830214681573222537529061853293718857778439120634395017561492092664985389682009693898141999547638443432800505989889783074834102786932211049052404781299184478719489351835920197325642235084047997997069165902936863330071169947972060769028145099032887390604557035283096227205632796110385429365801950605992141581778773293079796112863600398525364245098560207204714725279277255321036570916867146415750864137097267021988154642793980474171868553275282594202801265940036643259287259956702654753844137118954521189359271123644581447082718300361659545109637800799002657116091988555642110060325522067547721525371977056238349636951038404660093814648258560703100705042873120774953110817379181254621393245882662300158465325748192997557828986895552983042886071141096653570291494011418797123411059778300889652375009676186269483160918812405575250250425725154163928133849300869340720405079005325870577883331230637662383585914941670207091824228081828892705894863166959912166268878599579089005146196227967427888431212032517236282726161374894960522620934531644143809582561741237154357967381291910856604522797859116899749463644111868424229704964428841218529866670946436247561925358293534222173675447692541539729919091181645555018770274553023807687232052740666372634858226148019533005440445360185349902624984496455448668647965548503108421538433106121362230046580030664511069274378671415209610610545598422371099296904505534519426738433519876920162169201070315451768576207038827421912110134221897714804408316371526235105294666151946561238297894938282051641772570234454393000223300784753997248524819320035797203558399593861446083940331368485900232738311282520787648002587546351607073431144033536879264553914373377804545228824795367276301334140545713742004432439437366071910768977427212053375808617538287112795239440132763323483080890244999320982606146836159800666845224692381624684106366594906179883857450633232542650963840978601116237307577738839798269089890792350613595396316040607151824265054906213026985246596101578219644108136420942149162899559915256192336326423770460100494386948756227882595715243197741002459357353433036138578019207165308109356136374287259312252211920973785451854744323970846072493557557760369213012786988204284057929211126133441360534159374351172125508204867966654550331830535644360101121879832778701996231198929786031805198547957266147476904032295962853240406636867671609188386566797315433018522148409434447373083517435972577953884108590578983157910638202356942077522994174437527037724206452135834896190274326049260024767926783025002077231150993669245963989893609661853203405519690202653580393443751283563445305114732072306577578293190578002671864062890102147880200693254205393919192738783247008248386152872062725379462598751631712482336371591053689865144743678249917021616724222868790180946863943019957142323177312476724533892560068846271512327995342357282225950389134786991930742388860427028002928640604991007608464100826443434657824380007492312393421992236316863927929984665620798562496970417545534144667262558973448309684568107841847713085950159880369620427502859621426040273112600496743256722449653873239678669962692321228981793369573515833411906647015888409143351212718965860286010274563924571720413738457979987557553088502992201987153608743023704978958153737770713308593916349428883235978884280897774972997693155310120590248745443208457128681764847731742656204477594741785281187963344148060878906963096244626515824042437644952430834864548909452070530125066222800342246924908488158277489886804081626890013687175873606520599553430217543945546367297486731304062380673050177450777793583693495985083718947713074507272387084894921546083818475124567178355102435476657482421271037462176871943430983433982131293186753157206483985254951333608068140814775804385669391857203655322153689973354819086242584219945834523255879850064688674103273054092651527017042540931465766981802910013276342905028362387613690976905584310531344499413784833003688486261147771879890072453135774538571558729142044950269828081926477539623648265941751291921430512204878792461586029689685938119010776749427278365760700578602907726280482852619500819448359076835862376547000356608383509001336543095147008421834007272502579551336071994616436701918388111397934352608628091983360758835034796140996509603885685664709347462579484038600458841768338081609910328437324264800942067310689185432306775525689974579581193150486365962917652337122058976851713190919589433910545816186746751883630005850882645258320035686835851325473543285111631698109829111632235362561847799818858301465710695831404263012305590376139368629472814751642856330429596150320714932532916792391101907228608031431792166660799242199188716275320061322565097231156561506311936359609031873472530622998013055278028548011523804548340002125923708263984106430503936175719318170645903778294908188120877038153335159423513660505684757983026408437590910437870286647665114685841789331312615177762619967363909296560829300303349321996920215266366450260249179480121834196323056681497734422072519975404655984614567468305601063404251619274277900339772020590925468473210812947079526894650540012554355471560595374812884937711939152681867114841887589262732209887701337426172743645904457585012521272807017175808014449714409352633902481704124475323566657653516728624454360978945029922096535313608504793315400564354119984601428365391306688589014057609508958743463941180351241538874847613882788397209171533352458374598794215564786925983081424915290561897264308647986379399040616716223592713370354077801809040039555502315688456367064349372272561767203440319764409183566456880148706450342365657640775268221458271414307664485056270513742322067375915538693853985732304027514845694811384987101980509559455182421725802848189749549263762820889398719301896533037497328458706987040195529411208264075535186150370511913041362209219505741148533769584446963161365846727017298620454987125786776332745905020184005356624177204459666802476554550750480309820143185281585308722594161318789359495752683937385220824194624968155671096146091579889262153229136355653807686679008543945894938180711139910715387479796035702570371010534798654868297904657077432813466363398308047723942605586542244948859366465991580870713161871416832121844078466532517829900128083453495078398876207976134631987377745820606596537434546425831269103897021933540284660216138489189909261738048099019955638565355551341951345424922977032517926133816732766612919969515045869696906252432400991565931160599765831844044387648728182687634554093404854194975865589421394808264575807253303613540608910227465406954053653577691285295017155266413622552803491353759930432404882764376718331896141207090679259479079956025914685439876744724067128701956940278847345583236446373585960065373153077962402030084412798111022685627745765675212734690146461065107284269750464263573317864960264347706112211570132830302007088705649809797854948727287302436883724552158182526097293742700273850338336089087265508501248065382434889151336691968126820578172927578061685986765747531500582883837110868957955811921510097526046062435599396615009109704917372902805341853404616561658175056177962038979458041228523654494510141147714321554577693037313419267735139197789883830851747641920166561595884878685571191821813868208141851124927886674462062201801929048641182750593437340334263125696713879320012538828449001547882372472785785281443942341566554391339092542160265531441071312350811204536693708103959720110933838827006970839219230641503900857067019222147220332937119341541485784879934767391355110981745420113837706200922769976106305834877555596741074109779075008525946338300219336773986955518061698559966546803328953656899114506965020834650461016348473179128878109479186513354777490182913360416517131720963220716644534502989774098550933262953596534693357555291376145784725131259125871779772535896377656279124369815148971792590629507318795083118019772394642534740885002943653528028450430243343544397445011577595402093680106017622538192589383850253508196736631138351170503690049946349953553333133970520519426562495112549155804825260762771767137689921045923071091965374171767930018019845315036912919306617744511575661989243921061881199516037259272507814181592660066286354391516237591085670009874875627777578773332117407261407346251038646123662872412357022428586691367512699781836006226550563474355734719077519723167189633724324445479562135275873546349493111423579098261149561743286608851877159372648108005683005040448395796470003206366245990659817009492164019114107072048273940013976928827705185880135631906477910998331674113332242945949571743738489482990859616933102836900316806475508947380937886481648151279309191291784969489780088314757580261079996277129159699645718978855369704053368380709932155930732895639854562140749821447006628738986918794671515088795645713018764105056828201279777703816345921719127082001713971931217720189293164310168365130491219084221271054439416082533490065507542251330312335315067717581626647639382615207245544542123113170616927691253429409339519646897016268916510132109548975660688463906045747698365005168106132331099032174303604639736367405952266979595537189475307896431781852166561985487671656155102373079200666727918575255385028404557795739337508394954274782866341326763986321036143099297510890931440689499588406760648802877692340837924721432551110808324794072760926667793963299773910127548397326822908673402365902633597043620019506490487187633891634084176917059307373277976091271293498442388490401682459157264946482513380095911578397732974880065627203702880162064654041254434282366881885109137194223463531371103820643671312226646073379718118902524323847563492098096734903198276570235819019212849809952606249925921364114068167494697124438858991316060167266646996904910939880840290866274863368329528207497489585166214144074475067197708158170189824791477474758433686354617266128598367352636650946094596236875034748937464955285432907115646638826606984302212749671812055019676211182340704420819627842953724164733561638895019720507072790840787177532230343090370764492524933655609482948978316275507607216550717891415521389049192580199902264924360532719620908613187152286604037834959777864783110220480578439390253274126201949457569603386594356218584585130594458051049967854138769533853314998136586846913705361526726421765147748170066999771696454969172294305946952439598664772034240778050006725632476350595821449916370136892021372544522794284642906942529837666627355754079670021747159800604163026945282503611643130421515937026427868026878830773541155775654633345446908217575487991806579274036828586303899827126463273230876656662422742297860338136875926783451343909531486477992070494534453820726537170523327843187670113415285102975193080657386506380372269153102766453610250732092320565349580314383736376093433044584220059696556883104186813540990687696529901902814870442467972923943065516233693389765782926145214781986137975971328223167616428931942170843091493285812328681460594601749835673083521384590926065011741049993348499992390922008119894926565374816041904104788145087924666504864630654477983165737177906223080101761771486444262831856876473585779239761775556675507548019057910392685072932234162016412141117285683269198460525882486911104307513736318004864027711862483120721913424824254123307511886165747309962329572484103823558296943431405166100478223151151898686647049780771166825791754021196367216260947671275352916229443892839506305740430736271096662798778963328535574464925660526870948909238160293162317123078369246334834316563652538219670128886861615649105933442799200549354604189341446623121170435740895748631391344813593359420951073616155189144015446592506526678166264473861161727245360038149956296273826047972020745145168693144490512729386253395610433903874381051473261571692535281789740884722323519839329365053797838170498846865329712732951465976981929613317832396156504217287616670765258828923529194932780422256552299740278937242871051777094071054613751756261505053195241706071159638177890366033148537009337105266849433410475006650812705583358001718609871862387080894639007508612148970643382770508428771886853021245536739018216119466015695545006029691676710366155146995232081954633674915595480250066673496072385434453803624279869827253739286229975849992946372200496924383178849005446488505010655859260344758191727909317473418610457260693616518089216678982036177534066691913348465951099413899037649850648243998548081279933460987767418132302120130843685851579929533083674255918386976851274966533932978517917945597675178255058594580100461912835226860398410490504068613461803793381471632427260615146225675049988911269870654735222765832830551410916335503098030378070538470447258724380876786187358219122146983653188452170659369539606760726251591508996667777680863726930130472251145323759119287702453105544344637739003783757362133791693723309725595846013573708973166707945673376084938460560752593002353454012174016482362199996869126669249478254217735458271979179026838494752015917143492805708297764017990573855925266814870482470419437864476759166441444825435389155470706687836832576587742083449603583366940065659385020937313546560705181771318150018033514069961533781683901677052412204272264285188717225600341864786367405215604995211566571317312482238254164776357275549169498706821225048313866537489120485381791006961952562171103389294020322226286165364197755128193374120433516684340566295427792134882055284692369787553018017880807650839426542409419773607916617034217179801046061521647353456824018788694243560002516314762227005986848117932946297073934279404382220517279910847569411626340722837849553949633494434881258832950817224341787095437061198179586015554532704830776268180594833618425829511534258841119714580152821268118827390192360373360209362565570216102908081186936114545599909991718888875927196896509004103456429069555761541929037055012160102065834840439903255152073811740141795830998854031625859730278616853312521096226648606838905893980203514986489828100455837419918757204403430485051367980155069388249998760655081708004409731188869370551691669084930671167766156441332084716017479967959314150437026203561054810594661259955972872380913680394926876979543536235869685250490540708760821205086593202285693666168028698272857927511894838817578265347604978821375213018639928592831813446279903076312053238274219897310483997019582912171284982583736811987136702846509101260858508029763851631030906596579279166227269107176385982939942913057902880304448152645013575750305481806717518130964406885957835943565582499894493029696351560881491001000745057692714313594619137858044544866597269678303756638421837730607440009195971946668240629814509013572827950267052410700927256001713204567531116920987581023160737401686936859135120053328172011970231709114836479946371127730652738358807872261610138563747961034595109425752815340550239444735645818073323152933389932574633648271404480180154211013741005996010485013500283806795256055185084313458458421985052382132350720249129896865452047034539633801906601425187686727923939489704111329727114846980898379203209464776753967297920244951684903869716793254207430884525821594122257861686624647228234811977030932080785351068826735366039235940118712903523405299186428932179352907217457857322262640306884222866554934971212768985647668978466816690796535774994743219116405832845848016553654566481174550115391941750348572334675529634547643987301662918516836324062831344078165240037148334791033980355692960837506483788173913967668068365904929745368982043771034122839167964982713827527203826938532984252125640959209284116795216286777371581368046702622086886870510713576648096349254576641804160090459456177320497420039929803272272669780170246665988239589152038675732940248623744975874677503085177054358819503002090603392465925669933933477791359308576369820640607801328345202544179962568162376310740889667740931918150515950406718756205274339282324274283979609597694836566733593896566650350342659343174452069379428647549317307848161845965711919227710953358640498457056829119260783319498775667281247336894410777914516106185127269052963952856829232950689145093800357841597510808457644613125103929323807625766815059949376789407909495152629478356464274465768177323631317260467695857548412601163763031764220266217293598495140148754009417329303784933247035489204326276436893882711242306127203889047050853912315996424342166961667714780299432650350793552679965600613513289997380488972154262694094424510087112170767626294852921177880648609622262843490670150260410764712822328801688854573666920134612370760087019132563283508408651689768901874438872369578240275807869713591130322774904868696418539897958364856713485162385425765173041058572807303168200876507510881292726722474665685784221900189630956305690318817271932653487514539437755589210793708981994515754284846548689120181732063898120160161487765658147191776674048891632320850112379773370523219787834512227467502608004560262809512273783170090365234038257965858255681035625147750317440636997778026278906826160681108072261537313959038663963080748758106905914603047078824431973665006526322172570752856654543442655908147211776808611836222685506235886449563199672207164294595188555513486699264091919250282919798960635940813203591802806002359749061993002982450870303656456906617474706904393967429848219366509631094264623516319929722851560099454665264604607740099250120610729484173272679405298924385432517573922178671928962288153184042854841898181367157733649950054454082744487083771706068338045059601488191782251302879077845696497211300603979468357047994912027515696165640252898410684974522648200018048813065818242558453900571745023274238534498107180299969261943884129696230095203284151259020674122507975448736707154688265188081360700899628206926509504769035621345185510428762614406242453194498759416694443048885114633444127462239084677109245415572893539250759921211264225211084010541852943530287455613047325169930383424569973133030205798993556964368128382552331546139281459523032908692395939336938174196868114506714808771003669921693844185618916700077002896958680203226565866483167949203580687436844161875644638942247489392638327660904276471673097472105836973867585009981282055762055192621227630985059798503727261903758786532093479713203132923797080044724404529848343415034781741368485199195294901021649152306132560003777107280664157157265760794601599893612128254358895663516186729847061745573091845444386269176549263181304062618268578212245795746605056819488817072005536753457976601705543217960666868173690332077148880886541904638387386052723204517597566866600280325272333904685302413041312354489707005092472736133833164337207162811717279097745320897209239584361651834862612468657037380623239203413045300586456869935344734040574937345768094794096427226651714402536948627709933873393102944502782264859416756772233862824417846435346622374643644443763345279541507087095673225269675146332149213030376957155513093215395353133454608420576460832953714715895551478221139917983006475722199338316245246436180637482411567461931781593804841895876308704517370704446589729605629918161805979014806349005292540050820381165105293686976498097246677893506966158990719512666552175502045657823323501759316030421904487569806290887614610484847968595596980531781270035781762188935521906978043768939425708938445087890162563679661813832955159827442800147015488817566068006564935774192029163891184492963275986624184344614069080977270590840184608911236675462077388211846784671521774515335784361531677353635338960451520488699905944232865793050890469622312667488941790666625751732781076943777055343795791346266504513053565131154692645583969694738169805354857710883417922146128889084533844905629681474448155790805106907756171214920848530371226023653145790542595921919681688213803338515570297021310147226675574195746551200255632689192769766866036105227525064409980471992544595169377233937077349723732435822214597460728413445519644550529066001355161906974500306264111235050383321722303113709545904572696245197113272872267185970881008898203611466822579596800552731575662746552472194253671304936316414510385863962188316090048741267759662362720572695152750608294525980298063217167338653130931022168516348284603028106952614490357633038480116131779610402358586153194640126785355831589232136608982417216459855751411931975854767682620057197555942968290801598213433945230052260533222132891635283230112659837410452852478621915098693324453888616795995234819254298805371012327104658511168178766065171286443694680824357766269142742118349301073639122694214031415161242441430016718117853492886712705481236188756027118499410054614084647681992239174238613283520446451875518583111944741596049444272301209929555709472620212036168513031032074542826834054881110942342948017643494253804029060653970758694909894273530245269097015734297055560356337351334412062250842802744353909092461666901417853553779106369592774958458287956640821083055009751361433776185810307060996696190750122449209113786238646976602307647448967537167267956189070253332315460094515509344206002678253982469187133916159818389845318683676747454503302538543564431556962944777615370492662245931550486300659858032179677324288636273553068245069722010796868821091713348442037847144211689855462515418321925407069069581920836333481466781933460939796887161257967886345960321546220253242869313517554726983789374307548298103811784138075580754893995514230695580936525604403546541624894746935501164497787714570468235261274564524205955237939409840761929047980934029796275478221734350758886813997846265275758395430062246992964424728581086027052054604699419364626141325496029018075587107854191752258925675482980663619165180234771540432294062582929786215165751558304553368728284575498236161705006134073468997902103502435217617385125783824963434298203858730918655853450416718652530147161567394341480215720879249487676993079824349100694230868959046845421531600319558620829607410653471976396268398982273291153109916192600388870266866620228031607211069789912254514524060780660457681521617040131784559358411494209319975202647830721927589639916811025153559471923906539078870073270294169407292089850700690060015756733372298515755793738965954880105797864397537258266632816221506187891075767087113323343679809609062941796934189896334110621740960427514097728899560159126304884849702913372838496171095943517827125038653293082495621561197846529048320310578986391846178550485727609709911981182112784867164893230238812949686788396542381790077426754895126454951732652199987398071434313463060971582849275151152410097421611700079438816668371858227412433840854086772473189836987704489303932360694973808422202685433134171887281786146831120737829694719822961503772825444789772818855231071509478663824183827522075241112162564806404070093608477503703896953605686920136649578738573979817573145182370048712875589993891003172024392043228922188766877844981956749410621414229190820585292148733478829611053551128409495402457106607624334764053497053298658293287176919597377471349592597635723066747315512438521491551141202237707063326385193459859915856513968873761384310933298078853738578301648537435982080727166174589735298750234738722347037993387252682441041490103563371177791854256805873407271487957337303720650832725495035340197809723127641108689910485825401404942651005618270034733059030861925546583696690705354659047086729515398059460346027601272631298721444325756836802971158505881927439090473020202532168827511490996056290368934491172262141251299798803328706499373886821138222042548716321892111653706575145411053422883316670241058365134546480102205999774576006401675665786017635071420144590810891160459156259227981313636744745346556412879534218053053822642564156419550548705584717407976853601830027501058186450874781143375781311919794863456744498415942794911482181948541117671171008412105261997071585862255431217664675193164812745071913620636247577881425217677584967041131963104862929835393555437571166514149879337550776801126421721116003620448916670647298530024310610660171565424156998528915648535409951275018755254699916893937888652340587868838911731568742671221004892912473386969118485280167057035808675093603352668033094628979641629023482822638226188473400542653930115840603044595366664040077419225818014934818167936608787440046506851416358681260997641578697218168278932520213285576737338848853531791730965923828596770680122574186277024813675878126791668017657061022870598239196222117409971122767394234253854428539734699821194446266929236935016437078936124381874848675570077941031113147606682831431224070315191051630183179188960229545169623062348071964908655004480051520851196300728079387612268613020472618193258143930856143303004275644058207940645772669308197536589080010109484063131012564911134139934830897534655586353039717505143892399347712029919715266350655745935599110802474690089257399862689642212296969119529914233381876557949108847093960443336800346846515846497774347629325217705650858089061885305383050461640313273122062914144322278194576500753094566014814496222703754077755591969353351176140895620185473935983395504932581290505761753653707305996496062460285499196848170765646559489629300000919246831842706068015436135001603269981515072680463296390572686502488126503164075882709629218165207973448674298403283863606125229212431315295203093101322945401579304621172143291619117698202634367218596794401312873516350418668292908473164138099957045016288462163801925163313900813180307598048770962992684037136592363591020560430485232382783963452330327120412944159220761942270229153297611396120646593878041927032388699943793353464520836565832601359257889177152575148262068700207207896226778767119101007012931084595818024177450095018899957467271490013799629600183324831623714065152794982569552270301695212343796797974927849427895766240835431879742984309189528049066039638321143678739532683804722494930828371121459083610786113932815363940016106797467757452633907380254697719010961835991813828913689981160727800607301520250989465708721007617125261459617696804573672092345507963182864490721538482935533405055166082442880250034011348366215692398875114626509526474397560344386915684746206741786050969062990245457061446261445038190523761312057191627496569057290738784463482212469106011339547822651811722287761610304811137873050648558567609738489380464514792458765648395871579847223123954820133386609007850746414483473078139840484737042058435822143839046086210715376184492786642435185742898968587949867882381558930972649821091219417443606129723010583827081222661488930728037805607978690574228632864803795634094096600986707592914020074439893345745064045354786742529781022230435282815189109407889140374785794412036248234650663034662738045931121380433131747165281676561388614038244854726832834619414562925464273701228765036104102398920343788245235938737986276250907437843617056952240416380950383308110675739845000419978998573969506055695893947785383639969260668734712894366046943421452773464989522486879138341240858670131744670248232552484064854959906758187083122442214052273006657302554227862274847165921761054207235158439874001397471141792083916740697890138399374052368045677061867353624440466566787474443175092452535070018928505101951726752477454161430560023013749408552116107239495840875084837381620218902901891817499376791355203528383425257229113923483423431611305760450092535346727295517605824827983442678747541036478662308005556489809451459940649925745997588074282043597013957457129198764123304333814276378745646927970190458009981264290478664863327341757287451958305903531407540228790358598104338513561558065100458503678573667442428979326859069167603140686506962853901059181399516744395977075045349445981277706067393451012587997638661632442475945550867806244943271771864701707677952832750931727714371088097207631389380509541371343760594085416082832454851304657470353112725660125401197371700503819866260714548894671119453732878543931564731892573138682718110209404993714320472757676794823413294286297261638489334963585168777605040902765667534815503173731356411400121481140406217602675148306897470210888329101692092800741041234086772321749862588446260853499406563838173331086604577371678853773354054503323105533070106505745203555607689816639632424891098259879973107106654437401074270507742792382782514439738493822415232295300803427005382621184452462518868158179893229482847068650871039860840776781282525344452703672727708411073803252934657031863445991349199132280475866418495182133809881020054128150469661194335193414515747931326727421166628607400775306260268851024547523777895956598260586469930956343252707590065768953939379503739024841042278249481901252138371734346035614583811884816852878266958836579938726652064790223078291517992275765112492170479576691149502385465541270694031231300628536242744541904207072704685833812162866271197854243946875681625581367376371505263283183289532736419670761832827019351448208453402074756013208469957956750075014972958175518026102741976352904893707314189642352969240370938742268437165269961673881057250996102452126287771478041027349087872833379323840762771859444874562155671878554761763258511369339983377893586500715940856368001032518958878159019179213599342100500065066085310771261943661248681701769703136459359872059720250049440045790414274302229502355031811145875994330614633000810427884931862393602910392474373474077474193482411851857614412594528785451133444702970605382317516363943819476353027043081309261354829760319999526882108254491528826285221095745988854701911517955053480454684056594078421162284688406316022223380049946345221261460980658044917248675222532590318436503115674842112159563952263245444979826847847338211545916624234678009415264848776430230759024814909691628948094909863910727438165221809224853791657863109698362610992208261449940719254937331174836390097929543312926860381093619345865534345628166948575495776418001465059835835481797529202463239255037496576009746402436067215453774763967195096639091623014751873187659867713640202113576472626145997261249589012690383544743117358127806725057404313628808518084191320997770860119067077689222361518478612853088981599664834764570890688316322988502054027161635361295971813987959984202435544911996870425653867909073629835596204879195836042771429496578451566312789838814014219870682425441372500348607939219941743951965185343871699527487451236944022053985167528636908787232866763643370942789275521457895974787724698489040395120121655289388908763903980910054849606294109190918958098929914244142316970177953362150685632464248008974749645814637968016352427991662678303146632389443175160545648013982656164955817145935490475349559971361790222129689157667514954568418206796328808360275638261573732695755999508568859727099179091907998766171418675964689791782183588634263164035010789878516939529513660619708122135439630389654080544847350017154041578337058742167348232745579915579813845488263610146501824246898835654488814715872920435066337931322489162619687827535877485975520598953090834681871756614258244605142687423134764321721927343123478906232303756463591799444992365335712033604069662476223726665726163246761599986233982005848169047631261113482769207632786038668115609174633999696200429564183374247605092615557136748100162814306214273193371759670381315711549864740006914348472338441676009164822150278782756673712547961937476817997637416944856247533457152734235586854258644519233731003790622064505356173437966923983544274131106014019264563446657377563778478104440123048120773862546402502035746120880645423655305136257703467053181444680379541569084500842771742186927591975081179257942515845178951814736946881921790665111930942296039317519628097399998280211940428727315234683612557563781370633133575676649427696091961513828161659260617165749832175328623795786296521217604783706095600821073570895795236245534256319602546301412012287735780655068103822957773738969053006914279832563960988907972590945689525383775173249198921481727442768102556569556917758761607746022783181962656210650549849916681864576165918529097593638570527504642325107950375340400156900034352462290666181214413385157703472657485619312218097924140791292064572565808975055506459537464154100311068070291725912805447015035457582180899311947957790832550520798459553935355752774028986234759025993493125738754509728337504896373996948657585964044459231171597994437802476028260531544465367416677117261809576191746400051677323582689519477805460259774319933799778791737879987458814471135120224523045499429266565891524131598983843968750853756588229658715451223072420858731832097376390090184668573946567808002746619747945656090374858898356706031869753929218467032233178466042465974329324675676486200245444066611685686435292913339769353922988117358829360783089325340610693392763218576109939862245202457608083623655355400570832338421383795375809097821855990466495144232128630579524144155211840873143829058943875708705885914897441218024723794130673414630018480229240018817432606697067657242033675266009876287505271809835854946138447413719760067025675591742102493108519938343515762833062340598883176318372130805811713651714489990774926724855941471810273177474795561564766941972362879591793519819210394499493500761157095185699974103698441110172170795104635196792749909227064168844030407336615944010668760198847860927493370693388822587591533822039537204259041436890385490352315975929550589438221741804096992282353740441563606920518667028077557179902542477616311452411170259499171889969557144256779498232191770029789177753006480765114409376215326971307126139985008569296930971227393752001378141466948530841888846395210666873012856993853850353229889654574604766285251398734109047876100222242039055417246154971244587051359578217226688388375507163888902819037919897750481331135258968318684894770568452134272263771780476284980673709616260549739422714165522490447737580522678082621173125566535633973729617612080423438636611420742623772639818223192858273977786225509008816335284244183357240944486481413709312831607810200464180160818027570272116766908022118563869954246105979700852861134955396426644715921060928328178692985607351757711818133216241613780596129577603925415087059550330144640746959836072631236542802444377348904627547171079218605156260242369020009289533613596222482180800132581869460166563227335221514705407877382276752924707153926433886142462212293490889088951187078507799726076705380868313892085000117015528168646154130179050913645337404697001998251162217448221575154782268949097694915364642046206566680219472516192442421188367475121379496133229961476826204110988893299444119157837374072053488745142421035809817767812440908150631260069547324463991514176116502019372736305274530241508905104695863226754249171481520519743351243961223533573662076418810461692912584672083412743845861971903040003739399893347973770146198355534106228624133442459040757474289222404759348256257465866367535756395821793336341324829673192420691634958610273548765922747682588091755576684825888064375514016780500726210619226033050066106498646946563231854154241565131203070627584860966049696012353562236340293242076755173392023306423597903684214390116483502920043752235115742789456172535307718500814207850766846887710702145691988308207367425449628050529842924165336257693448069017625204923798167877220110305224208834428342253982629620032404431000183771662579356702221125368224808340681903889868841414102590846205874803924176248752255176549984628804869066087898231507393852593611655140981151164009649584179272220849611129977715750479304756284013683905903153848414646839807999925098547082664223704321885782675134878396025951134937508436811200713569378533469489138606622485673227019113301405693127836199304895119642344148839903874007605923414538559349582953915752391734566904645270234091585941170295710400955253710738453946905778124612172147314669069939691337551737246506553666659459509283938291735242879293443567555082334617151602737554731038190061656830199275431959566745238239287114912989316879930445959463541057485949342145260669069895906378061794302336642322465183055609778348667001591768842096606562676667659878355350327737280243751264874579452761816542613799397926035948772932449796256139205021893304393664894763107942508611403729645159186842531672954743477976077747429578991840334736980123355290516110046258774890826176702073859493622354991306277563569611997743069294984348467134596448998593046060545898051827699156796258988605147012004332016421036391660605756548862587535500678453970453611436836032675532395719999686873404182894958890738496240000144289765050826017724521224647957496593749493639366689443474573456667217137770669385663707225679201686646912789433947041899681259468125127715465092828654107069454020555803717342375565155438089047512203643161959745596870669645893445976143547395514220458742368024135385591104810104930217875632261413497436096557546399632391622190927394848958959534269280909726890338739949058078684772852183746222346839535487494720001385005302862018619702410347637130618361360775934713770011666023176111632658230456492661545479555906993981886429643477527197665745416357913124742525866313011593493036929100172042953284084250303683812081590318522731007968313792719323117251789645606159747139313203168374714372114839427567692053563238431757681809462684530523126061353985963718225698894462664928052779988346188762056776746564365841857750063756947712755805741615131316471829360809826086456553984923339160029667300145908540931317623128975118290069161715203739035433242032975151004859655238786935791354769924331589751920605160884075473020211853098955516247914181167674152305268656718669501982138688444793239316409076643021453247908860252424061359445915453294046324887403198579574309397048866259502469014690367495953051304417529415878005011725828617898353275883092354213382135125497243106554024879849131143772074268799196280784391229839264139630290483743394554830285367543178423208295014489511246758232650148598381280722199998243663512455725214705185835132615876599931239049587459981056899905138084094395131487418409240004915686540882107371720847097613414967086981553880285270764710653875398790428806427579743211687568535559138717072348646503407209589159032145856003786426357712204105912438109307215466045610058873151162105480324698566671173146512420084994519668185569469760791508906712161796043553651679414665319509048580341070756000765741336973650198402489123129872985323231493903966996602472080414583069085290742399725231805541094341244855567675619021965094816376152797468361097593511913115598964397386790406608133358905765083153185252859553855264123996366756316897989948641098591632464328387347680578534378028077173260315983055769504468876807588232137560357751338955235866867329331122007386329363175731645210813337851265232825303448607455177215003682123795576065782236088172739848735032704235759152372147754381565718760004062525032378942546312026731150961632384999594189541599827969228559293576519509267582966558425567213489825520004743201349283385740331885926774356818448001742987031275062948488703327821579828011271556507165263061811339258173171513685620043202839937638492368459693088862100728868125288418199838795981608266584866141472861250796279538118453395730264196721043942655535306383169310846419116059235990535215875989975673457618626025105437345702042392225490245054169627382227919915229772766334584538309647363473280966750484763296694947799598078960643717808632937098737687329409990337340736591867534023957860421133606744216439008012137718630716178933803116268959711881617314326599869944847432895254239177203443509141889585901173094406085668976083515116994119808735329446043030756793448032338334879830379451706207508790208388805350541822873036826281758737821572435708520954460095380889103883162922164393447876445433895041492536877601843699852345565362344762945969211580215921752031596245195091589051185834497547725018651652157963682995467478296888667555968614260372242161339383807405671744339179796186173794695796477504927082166550379120260500213174853341600721610593255787024560215908831226674361263167697808244748408222448416017973991602128409170751041416913028579440206669414695768190632794058096811970474148318829665938696191054855446618410908311033732460221021521201511966495278466413364963764007232509029127209914682649621458955785901433379973658184084417067969885360648107756370618140775868415105930569583832213966989086003557534200280366379212987559162606949941418867221324910259795794994621497436399729480067063468531042372008342108692575854639667500331462250600332077482633697258509550250646689571431497326552796460812242846615559907138162781099720016549710393932155935146810474210419461407800775739954487331134807697457294188679332655626131013302281577967610747291279280090908271944045559656771875115598105441178692116038292110410819712880973239894704098042897732544665097731889478692387841130096246874787513024811821659584925974200887664915530576328674347718328130439775982521281841147115271341460709799008890755601046920816186021004655838463638270787023145294517756222231193729900771829241311332001407696204490402033033418804445166402363347280730084682896220853328080380006972350713930973071745157778992653808711378986474791417285130268604182063763326349977331205515969882052348579071261209865702905110051342427350719799177887534598604709025804508369442531689954510548477707005295872419558793048740207646755147657612527457436090896515464822202279241838518145403334803715957099922354351844022079534779786138820008220135794327918478468943235051031657633004190984258302252610154040836615280145827991930489916565105211233210420408051322230470071556052003870354244442642418879334321746574831685669774653095665142397863787874887205246724103704871852996665529813692942804818243445746304366339323945352819514039551993136645348611288909138349150187737593058681100435145309167807533514445671725946711088138864968482328507027944087033514475215541120330515732353960428737388825664204522478783248598817376586852018324737078236138596391952597323609416805589641500366224076580397208615724264915377704084521906338673739822135904953300454377820470844584047634201698343980076496599318136418151871598935817082180213647800415866150100835907845961770160793378027495554905733570862384037697775090641663862153557983551669905188980149794801224694671605442753635798520675688851692167748136342513088732590009382037470564063764615436074367794547829286081967112538098324743978592730061232328879889132612346952019788712539562647190858158711852736098180643583382996415113976757597684301312542510781933445647091351951616088243595124178282804064503874988328903656885367964802936026371805935747287011292940197793179853912697374143036681640744537521450078397419500810087982340379558035227526551729479250482739984500377504709598737419862997248329786079416012344833155469460257571476590695402301926404661071071923360485515041742392595160058455921090456548666729603239594314491022402661606789140337899326031794422858552504742904981439556352926947017929940537834924214025487980021303123328167526625468340853315518890051162577109558774648411340648596425285067504161187599434802257282132040630134314143977590905555817552050427472240732811227165270094694662637385239375320644907656036755585746203390992745654487618758700308625500842069807679430794794093885713614015724373553585244561715429017957035866714020219312888510070243893290990531958019685504005789046823360793503591060407070761245179621792073910327226999056426727155940197227363029188076164495713906574692315297843229485316068955173682656714611160152835091002025421769531881782047515340685356162563885719565934481355754284326630338674977024069275676993296388264189173284566678339096855360818945758711785253131195048035108757871652223213818841328686151168803944217764634357868787497813775687037408410415795343942804040005886813237120910526498094224008183631975030745813902066590865068546105420517525631506214114201440663672636068258958670634029036310253104781268498739772837512909524485738855716325385506668145373741080902836949330403994050439295786910983310898200905347288399330171340850434607358193884297608649476682835298510536162613166040077511610422462425151812570782545530294904670298419659642565559556242906816173304607438669673321306335114179789314363730000364219260002395150294896462518875162336665459748624760741205713761052633326419100656043569519647140991835111404210617346739948837401411706922890797798158402832710272327170953392600080528345938524603247945614852405120737946867223874976600063049701415371053035422239566861229580721192232985890986401483096502552288238750144911265799546175558997562650966613135303654478449142157922534206995185981241083994827802053599388143595632332325948925773888571776880539411487063969776782144111924841123224231018212868955879289292728826488017926032056621702728047965306672304676902988403137147825200893867754887435431755455702669432489873215974516365441839822664723821774891788854832215921497353168198196295185116808197642146838698326941604572384696722258049531451863263714749742943019176567187908528346027792564275216251485079469845553732917627156020902431682323121043898415304717866057070261563085153811283433409822042474459180827673116895603757091670717475268450976192634818810635490225359048309670097658977982585544782163661437065764075583874867762768103057873761148358969854450478154196195720637010690025616005277168121431922417001740114290651815445390455815538395953117400353634475833788766754102457416629311401961784231230827448722893360590303268860536336275685248751995299225288247050971374553352842635730386612711492647257411638084042757825322899446645434759135551527794858902869596893589392240865728550807495174834378429111619749629106369508217720339104532936128770881055320564006367564118732301159749254579126781256602584413286356354608580446877241177499022318129353327895996758776080393878372644258574337647556973208463774993518331767586352506508475743843715006029301862761205751714918788254101307142089415028355650949831927779469114491045974578914952543362991518983861145675490014258141029057480524470972817235097442180620975919812448525208441700756914173637019279670860561612747196932437396293024317710615625881029032161251616488095050945770888267730994668213410386891851198104381590704001243845762308719849024039295845346629043825229508938710537668673346934444940775136709465148378173706540972702082694859042041997009401769371777201392618411652899272234647248882103481200305493312966321135949083187596844861180260063961191392306150405576425964001796078550660809629167436262811525697888916413717708517173307835119537577216190440638011628513777832114463839719757183781407707875933529658584295959978146297836777383504289570324243773735878892751742835555957818719057290372973567748457875849093621951356567699690373192724786423856423743029402798255801654884171234981215756029477602093793180888222485720687567196130405680196630284596954512734314732240068030277351231019916992970082281462760970187043293365033825558228770548600619244086458259313409828356944286740774178016887507459560189593262168780292640279345984121791902591524633183064973994366613039665148014732999603494293119013539582464522149540966940172087713958303965145720032031573652153196340109401754892712297455166435579130399699792313232673894290681700198529343978840119296960218565659026374914290660800047851993415006453327253384106891990775665159733813186492406425667659013752956100852543369570075050056108994248429683813195879826018053814555322224633440838155828720948502180856532291867885806670636005147599978776152188903753220676327450158056093453762211586523842011095782985731046388946757917646800927245247230637326008106331993096974258440059743481074906614636222685780806434069590613669299083307370740736769469149774568323254651507139733832113883761575898003871466103338372897181133877678061912564406124969659702253642006634529741597782902814765011368081221208192659963321895634105229372193354938164321671748870824518901966315607697456664592474495071054536045675541295381156920224323432278309546192995866597760542545220276791778891453131437704205027255590923738830896027036571020868743799098509510543261511841340282075317897403591361725979640678136766842833903995949217484069442734525564546685704905472609653899659657192580282893083186035323985907617783988198926712745833215204227282765602266568895790180427329778059212140716839119475566085640368938106318267107399426772732538508066911868721769935186451502568406383753634062836941545527430938980104812758758001499320367532313406159120100001447373803349269056369558977587842531191401512424383554519817681527152963267500860085788270188751581003379849623463095851786919568356585413143570492821932256600257695071110351194061410293696411614830423742474317656826546745603321146956729190407860610951817833812857365457982597938077905673197368488459212265867897813579896287320159990507963796126956257401504427036560013021572509001663990835009285865932497147267817617486526614439105760347150598941066285938701724263302578269605274115241672647979982640483546474729477978667635946214152953540291912418950759059945553623335838068957528221540471378042560340960140104330914542863781878069532974650408265666217016454352743103841963451581202121850849629665725574608386277011207812338174591177832846458771399652911382882018606857516076986096216910415890627976298927399564357356126472524210800536168413497397795826796970799492729934723508227387382588635531273896124626176178682058438968423313126956207944760739880500418144785031609358874167081375138869451136333123146592766419466616597506074141030638424239795838218217553031105887700456868949278535303312709734582029453163290613027712441341821713099637640235269290718442361956635746829074900464638069540309002402411980235195404348432022715906831105102808899001379835635188819256779394350792224133387945043123211863720509016534876984271212201216980642792830927429019863657158354294318444933813899202167324476056825435770331464390137843180767050732054452235547117673452992571270589844389698635964273505154728272052811456129519599204541346454130617959231543938550499809328292777002553454776998236300556445443427723730216661907500100936382525411373616005213805658809642780162637098387484077447808070720222414312392133398789008181544139075020158833342193038693188462361906710804947664687473545545501421680232018421497934267520051717997403595181807799014445252355865798775381756002043367943267205552767063080565107402936424689995967924236918168928505998375329416686407637244750639948796265467102041075851841607691541750780195940531232463963149122591078109912199863685528833671531122236316363037180320033180472769473454539946558148285124089931552738724807396288935804708129536692654768341397308429067982673514796667661445010880049989925017643965428306222286568069094478604620089770145138303951886105488635556108383784692710779464221858518734571718973113128197405896479747239729811835899964917758033037156475504818030356662363460229623282725996964886153134564558560254314382794275352052759296629539445842811189498776709326434100291842697994752366314660553454622064248231838853629146451434150797680377295782945407533618292417826456524668581389061779726357088938801499745298343632781397985016236899414066429938273847721198751758661254078492430844880535026201825490669774596222846595183772111989085845954160066353793352427148038572614387881292729306513480687954673775279170665709106402691394552755936214723175167891647880002276772193602100201889160736574282408951220875682135546721374605648863526854383867412031324208252454643189362534609764525052228203514043444221753895705960962145940813369380151799734501682652625165866737052370335761964163911718336608778786479418235155174811905415525746514213025523143675339547688201937923435808991981696386970581568556292551723234975256025106970721975271191372433565929530325040317971456006953350395506648733423509690717514169612951495568679662370155131498071501000921745373408081772666752121816103777181592497252067850616651784665925702230491810448050713893965314073058210801016197060626718596887350250205717563685397572505368375120871573141315070553766240878688747054139760797470718037619018995712551454554215677707243414186599855310456762119865634249406254214639571565788797400417906957344637927398914789973842935132516231052011984769037314600630463435417511462315425525079620263996484780742608133108236276942705777872848640618729052568844670315857473407885435530663201993965118932554264942860285684638225553685175371549690208041337384461048526646521084817188132739836658742499013918183855290309660648373624884344446285574392458989191915235377775422443100699799697510228892448825563408851020099021845408913482335568408119563002076249228899109831602600665286740681769201001933773109365112515814482140975795530328009881341544308062828579472228629625753823831718849715318492742068475655741146711981939562200715626873656246478766498018062523838613713911765365331402563930924251092535259830979221009178526885738147964572342585538210103926267329167816956356342574762939827244560739238082776854505237108141389799741399284983995626371799432357485854914253756493276397337416598105652089939515422193040864079629736506231076335539725897362330973792712846250677226708749982651003532082929496166344013691790052359060330347324233489803788497915575027776082283218144928624795028401824765680007166536284375346111356374766008907625375848574218748526553303361418061948322021505583587589696473146273311681975927279146622057679658312189473432133655593168332040312903616202048575381161153394059673776355856223715730075187051457081384370706619224987409894607213950018988228558912448829752732884164276875811681886405106706014728723083201848627444024011568107534007520067586462382035559880046631754526958445863335330123640468738171803776701786782787706681601121856072044183083871843488622578766696840552966823985703055311725306330596870036526145545816405544996851744685617780793053765035820976601697551476692997391084663845396005291018660101204403471054134382444024978178921394451948563833265649432135291011684525877717301451329061919399422100978329758179521375707933120800312707832568717004834890209399970884444019138176011993250100992199381330129059921627784864072054943654923195118106147532693682120164256789998993808680959359671880082090829937658772346182328166949668146916684084605680174544150127486962750356192933720626953734454366742355354513023993538866224032201043137898852712343151033119454526875541995096237477635319759838921541958875228390679169650551380985187054599126441433546097887183465874484242959228797153984213389681537267230635528424366870956785876680897208789922579957244891922087110500427630287871574702604777367995450486135938111485027492355007024575213390353058808910172124313600638199560156267663151162756528991620280290002845360012429014109527428196492031289400712652806136132713746803933016505738972699823994692667394053245864491238572166411918947306879464205967261387867975372777966842784164760072562059929216142843794468860325206665068628414676574853693091196499964665509562386065685720638356721098937382394778506888961193919981908119697418081671159204001634508236182857491070446365421811984078935747855469864005732722753262275399919661300194436044975110820990559273014640872581594712987339228189339160848827702920675334069978171308638504345191880263359598374024208200424826593611500271080689707562447945785269816533455163404348625648842929173477618133766834277441440812762494852410648755937865299932134775969257726881392488345294627529785815984815183635328262155555882177521081543449987139293077519224995345070826869330501191665222170291830123239747304647962273797558316775984909953623322280686806062034324057092571653615213661344231827141129433714911883193915304980143957832140790172877233905851946544814488181215968893356094279096815262167897651184369332328669056710886631418499992893089889885235703935129783627280267425805829235466145772437099662041921842265566001115543135718517638000156075711437556305467606544944723068815888931449895593376266420511637656884289874929561028590044857170094293279430686359609741215403452440012055122498664559004396234654670473933382086783653144241452346074175476574815337098063636430526751059403844132245743101006804774884006944061057662271091085136083542577459021871453864294122332065051073510204660018657318519192653203757319567940758140012226087019856225056078043195316988831959313749652759382442314717803420638668719106191979624917537849783155837584534247138542789282748272974004748507641922995575019790059403105737238245767911088077204483668839949774019229516602267423231725725094319761403422964176004876009498590675980273034522991205495658490340327463372845886321017870086759548410942379931591511313542483386219070411065979848147693836820565152311368692017672431410381464140498563096367058995821127673609940124233645349233492890647883809611940132418542607840095897551680987804883869629985302392395376594445509659093954574768728111030222102478642758966989529628850153423903033135944579643650530181026298005812420350769094230679441039663318408734522736560976779187504236690843167999794776581201559196834609131184290510071313371516840109521429305169703757657403661922655502535999984490979956900083313232866961200646883844971621040486442991658908771088438896952285531227231772801910008945114787911094206007300857151591971785228784772227756702759655003025302009698631879882069388729016404453746722569335538074743455768452607583142584847074639836601600090457066586417207511039412849483284999499770345559226410789367999301459443015798560063915526159994698262776572899051638823016983062730270609481587517225035566584759462326630046646643063717158036924380399667210705560253129732691444238162157319095159586782215757125036617292214700599954478302309120573757066809523744770986448886289702905098864071654915895477493694762790561851152824435301911694714928803280392732100083694913161538285168011127752519145811156091231351721142940084082913413120716416055233001909872793145333445390152062797716383961217688556976594596589555441682440334627311237614954114106925338379625168988288295634566106244829889474588336476905091987410816460590078413235706314337635727052081119750253434944128169205480123576074658671265769550288275421264313900019599775614204951492484308226055206708224785034647356173958878775200596161824545266948356307882328204179253539907847419241296708198177830954997717247318074737270433617578170202565319713899444261593908858385028952051511641270807976786898182011272831020377692798069831886003247020166321752501994170603626356582852616513944240260437104038140524311858092435793350453352159205103885668052698539200142938039671278799796355579672844942660586637995020755025178720919492632273350678814963667599258322767905650658141568010107231292211059626377356468927920616081659957136557093220734034203292827612077175942016631897768001268417736529585165958459878604762806271641171357626045923922721566681616502155101345750938198538215041350161023024716267963029769616067658400115986098364289086605926689413583910871700832560309040694052675252918671492318740594116078599614728951901494737177792333932673684100714846277759132463903682793969476916755424815054257369643400264241622381228346984632297884695697432638592430789140064146772559403084676297909443726742450239068831980742159506828943921763261726422542940570680004137320407615512322736858804315340438511762174666537676395311828387749893754246790421852753977365653924829389875603911105518537901216048185265865657791214180535518725340687616964339811607629547420414590997389712446369812628862524896646377603472886272466338816527268815261136347891369287251545334034588702102390379703623180969607687739450604745662391789648244727716980791878761550295505350554722758366539807974504286881114004053015640785981784220264120779858388394613733663943968650002367193167769164883701477850210617193611786429378574768925665143740673736171066793198832554385365985202539830235530772642392394234077206504514314015500317012237799296136445358011199907235315468682294733441574360809114687679355220656770045022235297396238117713470443991725567929804742332237624372868930152406375411403589774005867172753228022330128373480755007573072779939670436018993495879211329584136839118146076901738269628907422016896792490592292493251441498208093552618552939138733791671508218522434144781216559968818649544154870118997502910770494495573682000952351458523726420959857989168269671071650888257663677200906452512967411676735874128179754727224805732179394856909690205198549944904027391589967121821710765462017717619398099720047508191442284117944307241233148389274854320350840034045075352390630314573683072548343590847534779150348449543749814369051226040093477906162326090166288647042116960957853936992178571195856703916932162265026038990625416113756607175043419343878217958044413158851482162617614046254057333613187723900343984312974161647107466050452289158136232115081385935897920893449305412091522464917479182591345581532008387759990393873141531845492989117391152850916620168969992666158398062931205465137829870704296419630134256030345730277767940897826524024048147519644950251970201733204681758846359574071635794010121391718287931702377503592363026788502870745601613584453089001699264071917762304580428057613531353000949010572041019194534516144039502778068595517449678756492480138983650643863027616896825009172130722961547570800442873070463854221735085842928500665357664081092050773089506163564188122191548252397637112756801546319264994991251733676632355091825835985788815984397608523797576317264712195061364577102605139913784915653633704074985989283349321120778739270885020649330453364167381501062714167068001580825306007535083529338612093362912325548965030275972159386837194529722607618680826215953128652451751062315746168629928563220798714142446799375096774698746452752105919581318160110358945767590832538189753480391800019160058482486020732345796153106881201660321404736703429002422840009996861838119278352494762559204549371508843547074540033592800478831537906488350465440609001316649882977280800722952425013911184533471941930740620697043378066977724751412467487716481983181674258683957490257350683822078556582093342412543169557191339809111579800995730548737466601748235783146663167803789998655106705808618317810979614427959900544712387523223440119386852697782425060785051536984842040161808888392105634208685232812197731994466036225345897870738490171398482501404479414539218451327083248522949937790848367434280771817031541232481634545478105261810184802064745514443355544496747401202288972227683223320649436649335012179055369292819440966682999756189108326891431766767992099568872793709559761396778619536200532579415460150387531812534111760302817357100142437037767764775858674633460786518972968543867374435799941512711197011712788741992992019313891105404990658242663747287784880309171257169929264256570387564181350978532084869940864823845850102528158844373123376700328549762477603871385886562791537592162240074299571193304291557142291006336221320273556668589431157098408881910265743385687910021934432287311698009515259748165959657273891532579921290603530151082641174783808606337144499243089294923780080742312108617691245494980543970769491441459642303110508406869635381216559379438125154683955083151367695081253725734036491740307919812725111100331672573369023711816395363820090186005482581644551894937758250889903099259106411922848112642367830068736133886387517292967556143569796649912711948738159192198198993704301687065676874777237040594365852249664634516118493418634390451687443522536681699569531739626856188396647391052214366040638443659735679689065925075106199573468795905912586577174590162764483267771676700803636701999606597549354415617438687676922291684542578316707846213559382806804224142580528079528369517204640016805692873022316170019576039234119468388409475985076810401040300226602043807000779772744851211665616149596723409520914846136339091435445682764126318602194658713475557574007452089265347686874291540289254707743401268682541663213164760133314527397464584341256832071185907176370877722256072672689945785908206263124012988942928324509565871274454782012869514742926788643851298240267844582043904019558395275116642872858293507051042292618611506764025631645097565314555796555462840352732554454133869169692777746690308198753557364955797424517732392369011353675379491190329698171162866582908367613321594647349779687229307101795393862695287796000567920317443963899493819136045760165947417478039293162800593138077385510676511800063903076661403943294162151286325159705923066620162313429503964955531561054351953091356203697120245239902626398441740301963345334817229100366699258638147043749535585656055703754647152095146753454168288890889439668224518249230496716525885184462959589479301208658400000175945113700811227784059094069268376559050312621118072383830403942207571041648421091864081507732801655425822959865579641396550677925945544141532884189564853163528592484736047627606668200118023570708428109383110106880235538636789024992498022759180518891650853101973676857794649661481388425832789590730827673954585336896230836889640503716083399619821012250561923637897723970940203109883930509071573341170899314091017753273755269476690324892191672609145823771443255008150902432229322522359202005325521392510414428564001569914104309416692754131200054503631356436453418503695523735475670069036311206037228520162686738079299098433265648789502079352779985479690616535152464803228272234563351413870078250969443450719160140088743542174501947031155279531010630372393244066550308303994538418663606372823676510850454794490140949859121185796208659795914634867566449768254217010954361869685379656255738062520938813323628553446872883867776005614378020611062462428685513163667709397702660084999419999524261854122180393158981655233113250356208407704785674467610558618588798465443906411802827618245916768017285670527092608220087617512820911725340739523773591933826596774621693242664304444336523383330639533914635144534912163673207129462285018300911927370975367654651624739160077895077860316686169519997949262080019324459319768089883407141990648963652438748304806467748853278975484220238310553362607157426429690399115482158908269900726234314620985801423303970937424419150059073273682184544819250555969653672181638911569116874869836843198512002212714068016010178136702267041574882813312417828278469448661325324432160667268790872755590733916232892059968692896692845854919247506518186757498897035921937113733077864693447571086260881566133332638203830979596220056402784249546423420238088056506318017657153454838774416568817804325718273521444879816095480601093147916458480797790584876407876056282757270358538945577377949788823287070684479944034220769129790707033453212805352584895843358112823216984693024545514163416597802922459675749308315855139467370058934114457746220154510148838824935497313087572165399647422280130021754332823413072831651293456456590041545430812524742355677339455175416902422903768988046845259009765973812911047325736857814698422518521148417611739752910888017765487724162246482625514348896222157496530816136310457714930654478047256785278871942296203641260081670173201959994773345504234722301378159169999832458339362120502620851687902272194754951293617414480112668839486552474776867409838379868087617821580645769137524224677545603189354020967646706978965344235428254197171455678347539371665858057631754882493058268287352128071168462618219365321080011691039247358582265312292078438321229401950409177044540239263599265460615344706074369361637509863875234115039584810963514478514585682746799684716360686675092944258709129408486355310804487576823621963129851029733809899928660730707419125402109059772763982498418044795863463891336343776160961828258116704423092619084342551487292326675492614128721135845014628818513911980115354536335177701826822810596994512916195681177272225158989335789807577974937296401931264801424236161955455643454050432129935977104714536678568369867950043432778983489506936428207591093721113108648354669149378226489690438840159101180686496903463032957708270949151731887657974054083443418365650719011053408348521995756154639924719112257037807422634656575204372089169562246276479311013833714137208994806644877328541190413526995410953811598223147682474172003052036188888251071483237583804854781233064597714303040974520360738840018012931417761234750047694200303585819007531987297228848039954795633235842178023193534544079453865775847113824305020631337439221916092053649968070007500400052355165339962893349918334291444918224719532967868760608170229254385756381901231672130093798069573837265362646184798247534170591051889591656844596658538529722384794159017019279184402215113590780377967677383278754726175230305941871226005042700939370174854263283370803557179056659093036373699073236097020044384840838741557496015036949649398985983437071356567865464589842723867186356773917769852686620914997141575003768497850953208330664630809485191870189336850778146017873330409944316362070101438410590119958273623644339160602905881491606635479471543245110120073396773268021730301420964030770261887754054500894080991264673306995881008695894502884293904553824689031847821430553511334099497055967061359558282692993660058545197724663580517039741849381136507610311572192275124419238716267721653576420779230198125023842394849731452287556313802198146997161682535875858611721744883595749371019311942178333379687146588812841804266831775313810093852735244534043441548280070446935360762543138595043010803604978699201679715307808238797516036913990626783680650915071131108818222851462675779216004514978177866342833523221143965166044586946055425419364665094474043616008507141503404316824718370944606543479825036971328440596262220047951450415170301336294781607291620994626412081594306108152837979163751147631691952277277202319830484612276673132226067160979888492430155657523986547339278350172605438254249542321032916976597509570171734517157989329897298335413728348091808445409034463176332486015058906140398965305690604698697057409387793778985543788726175197508705204363864626868974723401619184394955405833692237149499858656304649660315976951023007290491410222717846347904994487706270581087481462632444055114296719142124432699300924256239569407127050771945459705975645315080519180610316546125689960995450749669462901344116851384954154200432643609578482108230792723870778245989768045572408112015526166170455471383522361202342661240683328994382425395315207925251762474688223250193095109064082419619587130989822165623932949979309710922974449363097812526776721463914916366403129292198184984242633651297228354866699597455137673793874330133180488833431358823234178811335833800774244563495144276629249014370633069360496027996789820485162185380773315499104686994693646935361284068905334170515103054929452311175862998904452879512946493150539450302972463734792749979341908193309307170925492682513773443404739306616675975995894538389157114266269976742184726238887994901615091927887456990559637054187693533239886552008355391299351036196739444147323408642230306610884512858618369666238447199318622849336250778113158951886628037496540315035604544732905577215043427714392347679418037650575693711480239505345852478607708806425607016631123031032613805179944732992877128987495988568205351693631642654296113451005814652796232516735418322741812288237507481624483544030210247174643261076079094804850212795597578599589428476201971517166940129688738185605039386631071209269737748333383746739882043599020526942842094708476298000778025143226041919209608907568880272943998881729332736076962109369842886640116465833628900074195786816989689095628028546224505891901105089524002892721122485951038850542850011304858489793053992875559894561596021553345317928510215267099567742384748183292432102358394019374108052814707313983957580855447161398260042221419254030165636214276577982659108557859394210346145227801118194748897574981688767687056485458435741993968444635685157366962389554883819589298186369481069123887440476370584118371682885397493895862872337266017437224455901753004797743570364782080526141137158547357671564117755223487719299040677381040745123191759968664420053271401250487967925285949521989774656821024173164659651493298578664945199800456452782507104392525506089188266399466860646367695158607005644031184799176370118500781652712260378297369312071515300224782733531539947088601727283583079924073638059389914541360226513717510016557420135765744068844534192464458997378079635480560305186750660532456726533636295141389858551529483090096707113256544455357559730466453769775674539449549252431983958389763935875221377835023604987745213742524886691145053607792923133090414369671678323165183371700908277850555368854604715929972487040751108386955635161133236285230720235968112358639262547640853705887479846710156618878382870791447120743413513307774423355959246416666738977154680090430691759275345713379721817984532612996615189671286771828246425934527874691095172041512031752439448214116989993328175053227018039035703867570387932548840689331514889235599727404107307797970944939503438647487746188854652006649367728352168933389696943310148220636517160526258158602692875034678408030996221944038159468951390725145036456657891801515247580813786423279748944285099570124539606748134911487374866023271769540151328531449894970112926761636079668820154033366827814857090689558758097289614073458614484067540105231169951952716255520725780439922138677728572126765240673516705147744977129911346122133515563647341710638794489914426046758291163353733181601802449843768226167658333567297992013741557008471308354437006677782514252489041484248759012631261985035528248377228278520029461837632074663677058491331730114982641309292446575848466250702913132803492625561558141071524534600907529779238064529100228294545955053476530424855330413388702533418241752008732253145743896597092935050071520016963071605656478913077931360025708612402329307167620059536525725786562201300119511341689504041545488106503444183957356566425643336535198272312290091848343889660156466114555745914541325383667349197779919568145699594163617308682578469271138503341654131455315504582589185074716863604807308243092349030380391545808306330265425005003209576453375973155925027730058818065544387409046555842167050648208919218976024281127198820829139360083723812966186679780228708226583296804243607555916164976990331842014523265382964252868591984984679198638198440125778104119882260277458241817408586781312686453010299650612307428583683167097751415592665223580234913481409970099500882012810387803392559456302067778914866298505029677154843433603404096311589063583461221154088691965080487382790485484719610334641319437856210000455292645419663736219164112079513675052421028279327841419202418153111485677695658543968086354744117239852312360067924490952246426377343667330441832897949845350229580075956764662213056596046671802481810470799144296173194738253116420275622507532996535573345990965370828332732747875875528582412280156810815741207792397045824371535573374622466655880696062043171833268845928237231941121911066222308004564924791960979236587209007600058434155587513688167079059137285999621893774444839641160976377015748573623291890220227924855166395990087530582282436735068517681717071014943382620671667302146414378507610602099357928044360413498022671283100755902880102381999449416254132782100488282056385508868620016804834116914515223674883920802282234713300403060439985696266234424651823254903816197727976555133658476689515255757228096248753214387643399488796793860415009693210130366521865944260205014300131952124307950852554883531190437731704052216768281940882332301159458844968402014849360734053116065338214652604052659481032009771050867566362320614809767088952691254927159574762036256349846113947200466504090111408002182941762428747820508632775131906079963258446387779492194241164642567909542855975008691174709756217062078029134831641141022805907906778382350431636322250857859755408372049741430791129841679142178718075946432040168136205538690054030145317585872426110345898211672822854951196816602261245020736445055557393963160211819908881384598115256886748101087153269001146221145849152730471509142225469902639989260723796130462750759547915188216984996888291931675818815106166232400007916928347915215559764519263187577946902681517768468950793034521134488774353838780746457937638218335312751040799419253041061825450426698738093194615557451415242612336075732742959950424507790032580843006485964292521287840573206313966042149471246974649937059398031854647924432647711410000727619991155014211940048404076452151022752204805866829027801751484428689883864924864369952528672718720257342554817385370615593639438921675073019686531486961983986969902543810420923946082125535475596600126780775418101448238859910232399908517655704755916640430221149230561986127600458880865744801157129769336803241065030036182164918776138941984420621514607182099917431609322117253737989994249206688658901114448209155920484261790933091631510875246538502708854075185163181292502593229846043843118197781946542272680128685202883891861273000104173213425361431797708183590849834735450248945403705413017055692518002851841344926965583516909191452167434471422492862976883242592355582468227645567678377264107102218979655406343763003212970212684862420897647215517470026934443733615390971203743457256817259789939813538742241769677711879307480336117586313659631797273407724032409933184222840944135840353239421113300491087030855525189658841258875626098941490276659911028114409277695535958311699739159075717532085047293328291641780690176520774577565921936868085975632676270134333214261340626371056832627448118987749537269611065885896187808312022402405217321765479173562753466451787167335417381649163513886916834411261153891479955498804913982620715586587877606158104670506340409052282498656027755001809784806825575734704158656045734859706803746116390691897391003686213413610835330991915046643670733833527654119823319199978846505333013315661184837330627703818444503925320679787390488636039207139492448408458848399345515621176300389587074492919178157732605787678103242925837570434144191007537431083397288564927800065909744024740581640404615207189380055069633108796752081603228553449417840436902847523615226383918732607109392425056508924462567979277466191994209535389287611627113785598126375151988559386502378040760245884608487217616515683751646582749900418700609522799866274238054128298958804526286284967026888900927539227611614349265627436012829912104781474518980641790620146228401300300148398086787491165778877066753986833648772489511720117765201476412451810478171308180570844855663424378289092267583864114514490870141200510544251266561419945297228072260491454585271147466887363640989370893150811243036367873791036128332257480550429969397628975728602141086852892563099469689731352552369321124062174975878953164801160226034588171606863184885734449479576134919262969491840046002481963150096652205263640620936998875881536254641173022452157310486876526763374721126817023116626559995893390749692750713682586610152744924441259199819629518273484251316487559234684982668697885034409239171312629367701539793444994449339119852382122995046906088247220029379170177397886903024166637778169721294491288125571086525680755205873356170949472037006279216254526503894858369256790312372341133603044912666284234358330157465391413998456596092744385016403563309998582372564627056768669251998993707615639346606518975204507366891398568739491044120120300018031212578454078748515430405886512129146244225836369247088550116395218542153322623498759390683210169075500925765379409084550592050947596354882994731949606793648075856812296549061947536894503383703501035404813136600652148490489374934808820098054636387100618567535556955056130411639815712796135360358163846015276354349679981018079146559639599303976915253242929544341405046363198752764848471729992170001534852858910972692791901451601050793447053558825811478240265538730956141440136617164796410640848161276880669052044863791749954707930233248221160854850885979400545811392468244365397082877287270328556396288673424599312046069239143677507703972409211290075022308355136559523604735285598717006523455424020522273754864862248340392956385513648941920289447894308048103791871524221887146024083371261205521237873116139084824136486168542624702443551740568205064861332389604006473464566422633784818229356890362949689968089067663191448642388729223653458241383447158260180954783589894871707803404897054351646098302966533254862427923966778361856335227733228302889646331684789333012985493598808646154761896480401755207394903322311217212547391461950451355368663433014518292500218262162754331589247614045897583085613030986853171421405408942886557783714339217250014729724144239449944607239925098817326745468076321437264926938783115259979091559922542767463247885252055851175148466715506539558650378475762342752202750548975631367995113724636520702727995542309267319985956505061477375329727112635871148123197224727925193328029511433518415697349753758137212775934973584161701814015321413844237317614758614872571240122385219378907088489164186857324414846610427882531861799198836398882613234452747434728116021438491860235340272010286057442602081267468162288576373207404797025092527131870450658157801785718310105022427748696309272619789163556818688258300956074756418902218255384970633958109436397846875255373813870462172270019808399476236853743023448049388356180672865408639159923398093411046270853845495029066896789535634150148651472508237905310466650402717861614004878228307271693689410053797691147399503760068167940375774154055618576876777345424053204296219288973576147955627949751189026743728818000003256093025201796435993583838189511138239309815653748388742758397183564489097410415431560574704735326593793140575571221306067870957761098354138266906081206065521367670583431905728821682877991945600233384042595438951453901382414999078652234188959516292064074907631441039601993700848120511994856334430609283578575076997803299521015733300747564501870988715967457266611297706239065070444363340699221047704766683919841987939107206192039584121709603079607674971048357752857383776526128783422814374675437634059706708500253917185165236674686554264316054549304120432124813891246179750812910936296449215986528870715753582827519931890382105449506381131306184324023325468838268447389227688358313666376094391429749119542224312959549775792396196817591942573840490761819512752933855452133252611647309405056226270620047677228631877924625199922598964099201034966257791448783356681668808949375661040466447651779440903933080252696720945971679565788346853018746589895390226280237430729972329247080087822423500552008109481537672357040202337801962597156336317648192203546894027143801039128746550122775133524579607667872586135293334560215580865997296784056594822233710084748113522220684214745058257567350417675803985612021091314623215153146007922872961925655317266081417977627419134517517557017828665272564169567550082129633069489682199793263102367650225912369286255080151912394390596508432810562277123587664350389620128098776567467786425162896680282300656295264891353599319431644015478817041513678710344213873317821586592905984071006095053749224749363683005747383636729324706706041679066998074019846962890106252366508945965152363801509971208360728682352944969950303320519540590951823616506387976861013785077077215621452053263782323428179220059660025755046782004874585131571846510169489864412699767032713894792431918820970512751782996779155050535314372515724285567517942078460375763595834468784445566951354164803437343884458181820454248349536848934718038204290778134460584509118886358644567713893080452938550661821106912020494501676052953519023916169009478244745844433437691180724629728812014132108564726209019281943523801040367332848764536943296282326938182318572884834682479731385660621380952033294152727384004342049971691376889176910871042009743142083791118451302185818544737681571103402534660376862643294062178352118673622495272133475738862195430228956710374568693994273359146630011881376845046143232550778544183251744743852932676422927398784622694377246274010243544444645539995520508879808895708752878474120862335724909686670021368643952007342593438697919123322399606773735601265331822767061350983331790444580573550966017214754571235667125116644547162197410468765548386103460089919233499326643165709029738683196177698319238038847935972534276286221545056657631220688272174754143479776756757114992255095712948442749548399972166834834837638110825115952007465117978573920449919081757975338937363111188783484048077916284803350097646898098671406461687950773696420571822934635109888483801595883730223631793775877546484826137989686199117137914026931333098483274569725537841295646009210329366987921999553721678733135637071318553710340452628307598032274688243944995478816691133342202155686435162094838467382561732314135350353983016398406613131044108193225168537541357679493336922860264949329199824983092133710368027736652606771562353070263363497115516909852920532245591626564402376790543662987524981698716674352015198024479626704259548897556178783518111500071337468044072765765931950442733912924775766928888612322059065540871273398496618984704645185862138775973726732322209427974431007026335615565936697198560970667718051034035937412956622936618876215570632534667998021470308722237853012794610348692679814503871189914027594122456639051240950909922698666739826338454518884968168571612652544607040103332179325643679957823991331827517764692047650849101512456861111434065335865464646775583056765090210393599903639193868131391004066754118019361289313943210864636500681275639607201646822677486851852380508746477806913636765378054486335392231226024813299329516981926731952644155386266056103608359814386071026974589198471116700825974525709264280191766240247245364292557359756894262768956705667752063368799155614850523748097756174107406441838836355706185969469639317884276501257321112741523730421957849700441744296792828617110581708107236045835977975896819386590255069204652879666898766617475526553797800649794363762792117206890265181784000973439303606276426486047865314823371497350193976208249003140513561636133901379926782976932643747920182504235263103512923405689084747268126978677918156210522200962699209441207639260975753917396820986996994424413517933483848678456893879559899221857812293082706222346622553936956561804395439640628863340609877712073598479806136560507652166484497344767442107853555249603908447495334177992491499085584293072452524775259439102837468783371849102711718499436514705692676919315245171471038468027223989879495922170691632123336032220838997989578086415428257400774490553760262417332781391383262151901494909929813249806129726380815035968442655636919664806901650097784062206066340589967309234077357771501992834163663482371715924149189558604543500560231073624254492960996555115895114525047390707910531244077776610484476876172465336047934195079752960095832781215314622231952369117216083347825425492161035303663978328820176108045158460243635366280734718009284542357374419755263123709799534870687348732524951787447266163746974679170495132665191203289318518094421460235254040291937762473939374060052991171538051690616875794063529635376183324057344154793928386641599790788399566921448544917465691029923113930074196839554329099679671566239223525365284884190801270675992302228870836691105226225046965267262467883836802152802097073729154585018244235348596192768978991338640967791269353618784286753590239919249879223380807550209594668628827997270308727111346244611786539047762624341189187302191587274349794224999450525779544655021422145324660258500443544659979949093976107518524670474695772627821740650526253991040047098899143832980004877812767655841150290099714308553393807829762629329293608991016548494529327182503522830610659593396351009097275514028308872749093574828413997447483645571128650949838246267182703467113265234659306888225247117629834357852519613804784834397903021669920450388292404111811006989298876250272506880677038163927455118289983600531515317437561046611118275230441777411494130642873353860650221696315848544884200890279499206884085472230907610911971597164944693604237528982366174536898794525149839658311850135124632957119160169038021959899389093055446449268263986574095729716808873454011138216187114940066775876817568404228691436024273566053693308845226520038196527010930717812137932686567574377783083308055854499625288702348665209998064477666584505774282205585415338821235823301183615636535330144739716267841257198186427559461082375571290062619040603486382768103759709348913582025446991648487006327974403575753529798588876816705128514320972056190644776187378416666402243492040202186848323758855744543545503301733293718009171659737531582176491723231532877304083414983435993246860318760766054439045382178435328115193397753139387239499897505839716524350138381879158452018373956563543215115307001114750809055618852268059784280401452170159540026432813914320246888108890029074414849630134297981455028547217581201820573171800134916184192335307607507069562706819289710742016117397371048161836689820284620949551618256946924525945248674077440046809404458554433998590481206526366083163221091804815612551913612356032705869582773409368441910230542136866097182570670152954135253629278375980219468186713481285513158167553906206469363374276609019152030922011533906838818464261629158175588781925451698784689114128812807012395429302111063145048250234372533810607834685274498382195206866724698897378347756913151389167042169279830403785943901696226389957965801362014277014183909480516774467834556349711237127597933977353970546520029980932680261009913426122431499720072304852404087414530415171175059958983480082212761055363824974390435354642080268420562035182964423453758050183653781183787015726643597376900898869370448429604236157616017074509154495446944919223379876221598616418796574872735344420347196012672730734104060705698683090902423535045363457635258148053282299641830077354471509086642704661792981498315573372705083538883413485195014011937011060072190543700221151587496785125784345725312838979782794579397524497882669879375550785178844087397849215240198163620185260067560768662515741177628612426147383706201832750933358453074335775185658578135669189859858540093579988452659207350818828770809480483818350520640771761999078280284732036168572847126523041339676136743125334196651655762887704029284945267618362486100078096399919762965041912170474626890598826009663341612594212869412873239127262699590233678565493481278537075351159139168508264497385706223000744196095211296908251022373263059646427051050540947753655305297449834822765415342077287859785483060497834758315167754983621885213880646448447462921792213860567693040369096814617103144618500590051780859479598202152764606600590719048454825407450127920767370102693381351203747620660809487485015425125733549688364971336592284787912794100498079103918061233578011736569359590112403910084809095520024572399546272884113561715231324352484228011979397799514146314649164593165262523891010739112853776795273248214876744994459926748823037024827054197163420774633850865105580782649708577185534636855174701086221196996135843574348880961485660388292669515270731367603855033048786450652938919729256973843639554703986283865372887048597653415944675017546864950599401648229403285260012028045682896682544503276901766698932300554430272778318716599175991367985783976947141347865424487473857949462475371486748914376099916449284109943630841923622517714687958487032991823903283036340117519208239087392807616779876199066852890357475717850584981465554898320058735615147497225836982262150155059656969247087955673035052652544691676421598405455279667205249680232815506346567346527067448801248920313632781793584564351895621417805713586662810643269890893391289385142184783161273821574839098747785556014512526613740086904966567006603766697911787849861471021409905067472497269731132724954845154891724401262647082009136702562522485846628245307635943147927852891344949388851151788837302599289886153730789901635967406292120957244055739776191903791777891134440644261970132034979856384434706571153350001235018735862127943624846219709193310356156198686632156997848950869997319644533047478340106097420554019858627863731921613537507487080892512609654260911235619175405808737361214496849065597247551801008527871697860627653448930959776079364934171704408926969841970335437758287980714137633828273888745875102191624994706749803522660372936217756017473076109467415300857931032706549887526253266365779435439418779295559864361384592799291059397357323414035738986116132237409133720756755295122809887973122972418214865721916797561943987226348762704245315623654379940783825626306623266080154732981508410489516120184452723620596636320040421752072523360306931448618005174820045636137034496486100078872448651754048344671947020774358747308047182622283735584496456995359017435984887125623593258900728910247716692961450912432721620368159177804194365223843748839448794239690378359095173768660520678767636349056298813681585763454987606622238897238342188889291564240181674344854819951472184188871632729610983276405007760133687925526199157628917533821879116985799159088094716227422614110790957536102274161099847622488444143343109829835739948981033983176531590966930195937444046500087129038228203504828876118519954939917156461566350072594099155891400784253983294419259545498493771921241966535606818953386107144259540170535468836048373199979112454272747690275022802423719823037152400409793420663248589019614165253774035225900953440941274565731017628891348330698012045132363171136674172380734156010957630976059683414123003164404550960004943757800004014254997553163592947956925787805333966763995295053817042033321040438315385071994888590574596307689932307022024764627776903599152415459821196665212810002434684933067123354483536670842897440836193704163136745614095127092760676997283516157105575041391754240824400709863579721434655324054275453656106755876271206081057589048661428726049805697229060371885776946053687755087263909645567352449723876180048835643092150294154738011841232873165398170524421509314859723926840584243564938468194898436378550593021667655382622321771088927081070433704161213339616036202657408183123292693546722136730075195974340842623944749110891835023189635002907093813633276981606854209882952894907909260096468029806382131295075449283759508329857952938135584078851433908724193476754718127104417997890758114159581174200252297611389944304803354525591811324585917324854745970573091711727403023503571683834295430831123275807849347279676988694159708459270744797651429689952047423815346281680332875742034179165997965144351429426924418980896845672582394752026957251282393601070429536932445594719713972701576809804189268597777341107085846422473015066890320912969890212171363735392412741305275304493427311456670024569550492570873733555609228773751812405030366417076641786343519453892673943594957396015834843873535581105827389892890022102766570424767249404507489581088287874324571804200812222342698930925800453810399707128066756502807170579124151677880918785304809726250614134809621667682450134466039397242560182433032952457248226617638900013837702340220031398892862154739105589178092080156773499095385311063530934198372152229937642907353483898977101541310631461867261235090935227368712866635643598272433058604321173750758834716296981411691205025265980856925800531283612830652135100524252748630699817176526228651074015495572923193675431488916258694012485241537182822221934591738854936898373430016289320059653692262739605992358871284920758088820646981110386627275314805906670070701269439622203811351280968975956410217849578362747858717074383112951436902357170916693341075719152982327291782588373767694355677428103581512207675483233376256890973381279253829837919467033293888737190641073558782009197186198535198146093971363412190083460537574462717860045592668191436871229560207226317569077263599375322139289455148001464491319315455245980569823683176886173924045247902664479605853160431709130913015895733549696560991067082245016431151019256192558455618416035769707562235841988596537300294552616179682549234972138491352152938519363431996276093298009423195231789352036550360582868171302528139512126401500295450001360102279171192820374703488735367866971889017034033399463284019061891933631609954711254435579307132878741235383578906052971508691867283390451734531717916085880792195234752400260129075742684501343328014400446800292886590532614424951964400704314169141554511301020734492666676389977724598837484172331994245435482539161142360332912192094627990505437975735439167178201916660686438307599786711358888713201739245372808783585171654754605597645742583114768368885601386672361352045267686296212927191219169091503748687165064908965734516209578011872702764561661836080003852015083319093895783286356285328071966605340043024794643820168887473912641564778667197811057104504004065674344468987296814354954773570538005272189720790125737057758557507021354883501347126979094759944412615391996356582333697121773021431701134747614408751809383473012229385177055790998117804308951143304898012802050584698291603630543423035275316033468101155751211801480719725428167793733332847461155954118371208751414336720649931352883055389270912241727162042176292100905081225000275205466981808146512122148357667728602417955699862410225966405931918107351181984096935961678532143377271235127770215369249879640138227641069549068083510969140768220642442076899208136057285543192426422411201079591356807382863656022487441653465436815759524830118648216003349591929681895337067980309612940884986264764818789861565762027143330430855396498670805557549519334401431791978169500220740246372399650372330681327500753054807863102205912987989069166403789878682750078562433488857214708181890201610769278210278401427205141403173111805726018189294171369822716265591472398861393089209238618869097859571547298153701918451523040902906149649661384314666927805105603878409434476303299123573359151151675196231284491843082079455734959636150583084032110128907945444874921865221799592139009003636430313104366214068689842134916925869993106152868241633795915010121496454329281110565331341425876895881703367466005071508640334861067976511758179970817720059029289433835490114450657932757704299304214015532284741217330382918518968948190711758553530409713891189693170750154818757421578871235125344743088410631614454579756174608966581582907182425291392328927791051428035546311272399635882559262005460261465647256249245492361852687775025269072170729304388293392901042130122231575169524703686591163826904036880248849594882592038130320183030503984240152636767679266596959111064904311142729662232196094035000911411077840941924704745073848111504186212812905782568841279083061380970245075398737710749620428252843297501762544757357995722191264817829006068714145142169357806302343488715373397633937646636990659553614247982344889918266933712870310960560381325178070085249052327234381213574261284520922121436663226745465375231813738125682722875970049901480331342904138821262328952117082377909882835315032842076923541644791943924623768496948679756790907883649596488547054585525583739154086718900054332113581646014783406454868658750937458388954116504263274703744569286716035179261097154128643384831372200230041633655024688695993836271129332216815444805466231351366676814246473002268794909217383409656911880916795146854533277955828792938745139816148682756370459020935649685970354471363852253610211692746362680090732672896722174853949146463386650890019137436124939423167147343670285515796791694119626047309522827565928233515291721064472706889229269471477347941810020495737626354264780362284071239983861034937359191139410841900253994619399758090142309355896363611871608947268514467588887405388105172330566119550002196394876830598887476296543393406596525772697850063496925775761595373665221266579617266509967902666284107808329538251570837931781488595567686656897989117786026502420888624176332043421372055066714783791694589328561189394607491665751503285411798506622582216992109164979052038050819272168913717258449660075685031533211343295708754059967529073196872718592463578743207161958509270716977272875164350949608058968138097783423810862300110913670705530734869123528168571549710002755010724871465920606234166552210620998452594005956441116383050979681915879493903239898621180814905889606634870757432255095770759592111885658435629621429143455743788932283658993212844872111988533893474927574974831529571466580713789492918376842386550366220054908166053477777038917114534326288507823275337306621584527272326626409328137295600640681737491324202679794018872137189931661250287281227978339736600525459178809135988183727791842775663855749408279394700001990811891899116249408903853727608517047737845120952967031906307242290188770570452979026036822613038414431773246901400441580627896311043171617168902515943818584550932093163129602705369935202620605231593850661043447999495758757868824971957633328773204811550258812164221337251778390794687527038042203548871476933407446154442175320921603050420762871434617995408999677692195336857028513051282616129281687669873145066738690335380539592884476718926155041215146106641235611914152438641031123842614265282855344796161687718884467617468605855221732986540758370718829298198792091727688039294505594092806251258392103708494178708999640423262943294444370543982031687507422032675022232317087224800317572314386617049453258783867350645233712203469370498542048915989591049942315303089918013221390262096711534527342331978242315054134128365327068467794483108506713342443897527037912667289241136237416708218100610378441642582741788997856179114845343302291838443329254349435381897223167398059243834948829689043776199934540813323396715046780018269470048230861971113274344955550818841189008433056734186063566864740159950512653475517003355306355215654387834362892330093627218971968704966703264303454649902936009104597287699101992583066434342425048718615473604191452181387074953959639901580383768164615096139120390579427793223566828393505134228228496015641475605403172596650345417890150312086893777109550769590795534555613233181992151485422466275203849934014488143087958791997263021090455236735725658877898925716136510863110588831717703368351130681531002559149392466136855968974180878083626917673912398159222250944656526185302049778525124970156075273665606011676613677228216756646897878533128991456884517652834250589101347265283271360258808782621844742203391044716373079690863836157655092836098379737666638891337063998651656323760703851086865067978477758521449529872198553538710436760536485868476261225507228892263748673269965029565463838619831802583033426005163198821794666371473869344699327336965733216934874179476830342593468601960457205724549293187361619116601338160007312382517015692264878255318055760440192768334005526658782600177103308971657470542996087527975081155175695949314541179845979877390674920846218684999772107673311103152679834405412577099706379834471231696573015071802572073986972794757374568202619135254986212600995379262895532861349178499336353676786879489351203318569540327001386714668989453941156959284411338044951989035016986989313252569196704568041097020051023211768247723095181453131449025733657289211742815849134392118228808572324293724731290777306028748677547763292967819253017041182596261134001863582159006364950244635226942002547350599671770526423357641423197092435191931928892859241460225423792891365823923688129049482987083720639095663999027168003577922013168464392540773561117744809836489647480697977967299128971155538651458264200580293627825719289380677798596796667956101988341281554055667996749404231498064107740127551725379873603701488943672945999590051985895102434728213272162269597060415709469424704214703215875069686324605003601811624186767370512500446171398639123033229405346247198169389203536434834834117535905553796851901615883464462545753195533262504234913882359374849312248823569088806089419479920199701446957436891256473628645091965244713703794803299531279557287129333782822942391834189473916176146629186662734306186853580472662237673747810760578653615829946339310908085316743717401965119086003993636321312697416225685199379930480325298514078733690561700202258749313184307846436007283307186756609446165012093462458111402333377626531190935938690452008431075184569776788622451328075019822682009729994669174788785781314896814722960008597309158591847771977621104368451303483947792824253561098207256463158073387844524159600898587594811308637200344142478666450305803020820523492958779377544898489606391400145491115995811964617569205548711945080515913409476757020116188890304893902644936792876869283735080725779052062360557291831877396527696483714038930528068483193378916576773629391258679008549329622801790342042850148882367328164756765344254048848640257840943314335082136890620032976690520869664718229701856707278560228443712709118442886589545147752631572502736857790465142770869427203221080678492341730882483651213194341201043140174417647702700582629710417044858595245054573470240134702982216117939732583808687361020183144690623344369557069868067956016906840145075134501919312752769814057940228257721937398326179799510139563734952431938284242723773526242244323803579867409641705671211023642841481893785027186016807600205188611139155277634132554874968601431274768752723386866372949555476195119850286669831496264824289770781794254427373834237348074587701648029940668065474226403987038740076544041248900453369533118001359512402806758219722111157542876484525792460398588429358168450564261894206951258053551222425052056599258815029782775044084548840182041649832305182677704636477462021271661858209247829952535062829741239875373981623251731100572739860388239598150543049331195589273416420541535139580120296868912045899130209749758774416854733049734849455247054708142923086755579391785559649833806857804232505123662982878649243448907489816689423880763039056721945674892003032214916027653894227379959656224524304043818813823853426082612895457994893651538668119474992501662419900320016770723936921340927498335862643122612554564792763826858964918381634471266816674580455344632335141605993411226157809624838113323995407443187407819935161979966132292111246283209960921027902020844832432883437234508448955547012558259577525735394669069765170672599537410505511343290868922485153636089113383155114362906111501733247449264410670287166112840110443811678048634656522314120707161467841703609958327072781434424735407527466387102632318282915864476313348227643386951498782922923777714032509241737269726875913301309957868988416874205617761825777528074927779046224499417678706291017904915488494237005376678272776212350821539297507687102586389753996811035158535548260308169904009793507890385960573980189409229124754796908163133798942947818863694832560541097789973472981545676122984670179582319966756701950086040571168428248593414347336516589334104555893536812726435489215816303612703479333653168478438184890207847666774442228700716298493850162789580160076047592671530136779363238526332401476386694388348862375096780892202907174568927458018493541416373371803094429810423753075112360766972319889714371265021418897794574013761822313616527032434756133050552680922547197119121843196798096553019042769821214306188741773064225239158171527024230559408955441167685558316583235089390045692734957110307138133331457002824968899682701194811371987842913195615149842368731555664689259452879523711556740534604046484040638466799964317230621693480071792095309925578499638212507005566881102380723846948467541344849260461174686126528797728040896129310503440896023305057426979815931213815344576110962999038001260755078947299767336958269612322524937495187324180331991453277933609567168523183027723438665241273702682456264763444498093920763406680033986672138212500696942019364172995797990397259959475002655931742717426665444866963303444374196638529175238091745489904419511000474728830584615955563951606040149227479450774694443688616117443433832267279648264239725262174239408323156914436601947456248796374364322232343058543173045080938587327079279034755256198127172959870166532777214764774188457747789427024684841010105641607666716923063717731201981152561083337056509626678983487805057533533431326520813122859186205954593051467518075128518806356224794151165894140172610377386211135125186426586095462132055780973603076480251013234082107243197781640016635273215334125825007064432412205242421930490134303774129093331482626440248313957286078245138049926424699192255272433653233193747622590769643380145361350581503651085652396756155966937342785191707809161488869169955808551760709748801235001846167075021112646054804992807865519151516516227106568561117700827469099404989921373032555368677090861407682244023222581560520448729776815692328766183404039863356241672581599750494009490743314927314643621427396953969079837477767096195108321540917064364012991550687437156492168191452186299040997380892845310185344433238827443160695649727364037136681256406447984003309833501224945212288342936670685828034352546749555706478782264739344207812055636030703050338407758759362129142935547176086983746866028444248015012063172643385800104802696410679112803411417846327924397768824973930290282257299702330641844008183837631601504273388982596773776748829334370438394544782987072608597271947421587624789677398567363417941532656136874229912086187644402580330326569259865149702586650991652903727719450671617557395573528830047332625531392053638392343588556452666146315733639716010719227312502814123948597312085797644386366899480022191644348496167660145556064938005598770862858420553891612692537776994133624407009611594628967691959683868992867562037237231643690505563055944276451378291110119268963245067011678513325980939885701169346314252772784723268354559133114977160323336672266643799540799057233631942154594228119390017541718203294670183147758504276324456633463708082844523314800131634874811179150179962496582500412578360962449950503912851115235206938570949857200586672020567811779487926326675002791190280914804167049329815071837413173430740869270571439867505757052748507261890231912092057922798323155996297601629767596914372861068624560557619690165405171349708178004211915367182269555627558456181187404667622119618174338941656860539748453531329017978948972489412210405223959960556705294349806053392009145477404432806385825570585878345768194688897946075249993799058530653974283180673288769869061150742961859829445133236396482756418339709051900649630399115955737943907675043384710974013252360093778024219232108639880862985650527930411735421083723041144422610715415171425166100458158133692817394860727450308752322143268724740597338985463297953669985867878670299725717190455257457445225914436363837076909364545694545025936063406576709021022024145265644298558757037886739250670148006455516950127992352284382904182066886024095388666380404734376791723264859467254233928270776481974919972726028952606528544690359231777054870613119968283413531116954008619134527717475474889452221032253270758708363434383053965602839320526469519064241517015657381576766653312864206112003267706069778932050412813241989359278643540943929804878078883406774070095114201678174097356092153132564323547760104965540401422620039351420449703969151243696003657050039084917291908748575315094184670978111106313419864190415351482930853502353926172255794910640605778258696452402448233553691118587053296902582921288744119160661610264548502175383504381749405081525849772257801555188639278297180789559706911671057008622314880880711181617240806009291031796649984097405513676187232782505162859796952134208987204399841024100992974022691339679064544031734992145557491222135076685331304822238503099839855999269724797026151592193701092289005818612513961412953103689668142347220124162601563908830800015157658816849824256296968349322715304730256096203180798865749363215928899744662074660665752177614319293666744925998911502980832137724923089302089165217959414878591731184346629167520990542857802660435729068813231881020871385690822702567921332441184713758299806793765661829802794951441431738694872628245301814680022129314424283354469254543728572196357173960206307346375393150225834197140411319996143618730969666128756465420192028705889202074398506572045908294276469270656110805054992264563325470078562192849101101542322440423912776717129194648505080556148639156651822604545207677083755155575703893644943792759131704718557693271474787055567877242779847260455685256228166657180600378790265960600332140214343101484973754411627789354403282388285809893786839990521425884158004910237424899948276298585073328374188243056471032947364760341733800765585136806230121232794499878661998556795701759848156578342859145792237783873501849298260738670599782253392053393348089399613097748036804054100671321119123626525301466599212372784060370478956837524218737089732625218085176180792273174978082220784520211624543385322709387179875768231599261715130485854636581033876756481753581140895447448041816360832579512951144977153468813549934559796414882681038084206455281422620965622023020116618437644791343603296025536179663506435590562731465173582929209723160849861246939962125651811584166749815918782442461863836317032384862454265566389356041349019181703141401696220704685773527855961324271365342476783274253020126682140271724449565086753512656696221281821635830949274860408833295131045542067365655205112705030297956992197652458822968599471901226834238695810709434910206425957777930704080562492262972146180089051438318947897733985389964198491214445485180582108615878630800327070093310524824609503054581196567781273724106195636971415860843918203520535103940948325199749372699363950355908663608824583619190378579965858535682648467740656309664227372229740059657040194329267610490533878144486760114858337735773185825081405557407362538109008492711185317272709304405703086969030868687958256504147342616755136430513298961177705242027458863338237251611274832138041566861117018141508064816841062740731094620495585869564290508675300314847316956171635292283436537567546680040539495074411350097421117423757280831181777083866655154047476167855978222814561321332376301279797731133649084713306680766905943010832474407198632613965896630488085098673408572382549032202541622716629264464914960848463501708542873096150747110062873134005017033366750462265856715782599870861312753736808447399144815220949523477232265530660636452289899038173552065062275279062434551188863139033220945720828990368567064295802638599488114195562990496780620463792862098408733090067077855285747056860085592055064795328683169325104703477985894006338041258173557772505124920653202595752066591673432444849731353505790768980066412156267200808336630379299300218304106078610229698619216536161276281711872608024117284909455106235597182987673795268992095264039682186825437911367192939670856647493236852591626823104112640212892081777212187595537816463925041483850722061587859310079092845958459951445136761630732962684897536896419390505873416032186818597670329258446241983474662788889853110278736739128598070599218662983087082017142641331038984516703390437664658951866728854228808380794506404761635790493134516018089537529789852062802278452024788225752333257245395996439844754856252186170965785045460567431078462253222756443922818919096646059924349684426125284737268559234644089165481444628708311930933787511795103459454750335851215205865584383955005188440238814653627433496726473383432560394344923225745545948191595499357755656641939522104585274179430371907440996326971252159133633618445481351189725402445029148518305362544764438704032346038686786410233852135588129444676017762437260407018311830728961461530933189283272267794127003742413327069016192853738975999259577791057004656294942711810986688431618380783731428468899566397676799927955180401879673314601418281546855448862113252076586786860478750421207416239179286567901265616720227447883480002582287324732076482062142529255347896280638868321005738392436330318887020285810946299306392226631272385844285433482151597226383768359110862180651999156390486266692186780418162910007822495275646136695564007035886122219092848848676105143089805592157283515961382476596057840490035834420053961458846911177671135332079867166612900285722265123704397550693286703633346029847752394927122531773070594030412763042745546853019361989133894660951611881530967098212177055483708935172311905739342226434638139522241978802424010617188107663938185475497865088175481263325250245570725710809109142721395984947681580892728284647662586371169144313289006620809966681786965390645184237556107794053058605734593891745138664642537736526601520208963605339212770373933859372274403476405266573456874584877197519090254647618558114515340729481064832010149513117288833493927985482066498924602815979625261063956580403550086517783054179459842769701622355930840361289167112430871801239640386290049771986241268015909045589456561883640107017860767474800413608540930196407653313409032188029831013171547700361985835870477322319974124434659958959613047708483240703911631221548902575496249103967204608453059703495671142332837934128526717429482195093545370047162924904426127732265893843445372897214205318737522438395480345750672148914791189726662197905897402815982453960242555284701252929253444379664862035782651108772356318717448791233438997134097426918212567250178067195867050950543073711951315197714639974934229284360573259007247343521240255813896814467959941517093483820034007789156625540558138807146469195332468970646409377262714872452122676109104916769521869694871025159325830896216666452815322714940977142669446418790622422591154519642979303649628271003183950543127324178311126800759641632333121530559887171120825030402024601785865755917534101883697262609980166961308910933716075052513045869925905231780334174369885913300616376512784049285916292202103962859031345353243390082308713904930938918214252873559368848051074431030008629590396693875375908014501271177880262706705187298814802753380617511410021765954577389295884088242627418373578441283580737723273755738045041329872266728412852442846959718748154020315346377848565295073756830630523990092563169655997957033951066110179122757606217473639852141068886939034437811614045325992329668867903974447538790543132528844247118714733438002601749152788702888087644668326095206409307038774309160796750636467105776117822320828649985540157024963793727036877747285911986629849410482017689231567869705828802348318428887040465639118382946089432242681218381033802967849938342412029863364197010358220798182913722356371791703350875382277462855442477482719116145984699153643934078230051724624942501251279900962687496917985507767297622584166430600783804525563609522701251605685894926098439639111122271781353837299717777590872080413036753018957340543887859540869076434575418795277953324921915788830881783597842529325402490619657624864039750931242737914583422772737271694699490406214875155054889063501240459033607183520618337156175819901145304691615612555214614470584005227427705748819728671885270729456709125557900185429665700982658158930917018877555039726583534586322096651164202126082530037938424652231135103572057420585113280079806022538051114814943813478398291387753116987154193271382778762139860909354994127768627078042959840685414969690294237742111741331474881959125930602675374872421254231036917501546092628966703682302901847458756639970745209177996554319963865163850523663527742850299766375216372606193248990459290692121997905828520475155213405411744510680180691384513193549349601188085533209111487226548149026328540667570833487833924528599933395993022598144869004462928769075073858632458162613511185802039411293022335967528886104927221809258910583066300960508943963240155785420894344656284497715195908283229350922152966761172263865003152017241039860198310807204666339452100213908922931291531015044350213701113824107148845092043000826085317711057005083721918902677956038195496356415028372409243479686247896682147456765881115355043643779654036578319889166813520140650520040506094697288230867144204537434268965783812425805678291195847732862415609138158207971175114027477721218455777933990129371012603018377791573835605542230160695196136489474455362090161018173264834239003162741534885868879875024764392772781910139314119719845200465777761707320962529635262756986066670082367669641932310067845625968266989576355164810440047397811128086728151011637311765554221579205038627546086938500043455663412715547520929886980688418658519725764656946053478158054963916979422570338239108584582055594718330222586407362365343470373566873229666134836833520044390762538602739821558297310893926028610950770799754802252244684838084426905052972912987208521216815391650083284316681591393380272370782034688831419163869801207539530054738726302400521110684091233726835307954832189356006328268616850618401730489940907298698382863674047505705448410113055572673772077918920953285942925556430063422603094343748196213778077262654744863360169879873021237556960948551894315355036642966442092176967377214342060343487309629062334347217401119114951281196527397935982295897994915770170943091924387721500702198264511848404696686926240727586575057730926800503791706600428778709888562733091882611674605026348734079183025581288970523235793726967569901914085509907916125424469557880880524888712788700874498302642933104191697696454750742608448363213652293223555651027296670375406096248736366745282250498223032052973680129902500289452464693176784751759297933158215592797821287236210847923743953192600855660522866013469617106285616576221174426063069094776883009027803531478141383872130574170809863762506300737536200757689263964946160635779156793442341175997216321776055334352235769493503958334409718115761596266796978416548757768905471659930881246610692265149375253399218762855999494270690132595534168645832580080012526666346333639768096490959473529247967809753129061331949704219966631160192052998035678215288909157373812520247977795718576309674625624382962684590958551227729884590567383547394031680787349094260860434646892039798394605339432920766207393080064292586538345384732903604088293135335300937551847147103777102114854398737975302713406852675575830522120246043833726925253017026261229535566415146915098568177120202051179554982654723456162246247274138964991174631630444500708115607388833801408760646683425148816606824970571550829570625368188924074070386454821152664866127796861879785622419604020630665020926034941223589726727873795599108479831969749944307266292104746508763301774378821711517304374610659152664263350883055560913570045855514618243370142769179638467712892473295027661935538244614930234832257685464716038445115972182284974394362885868119882440398095094621971369539228405118207938305931914998308356741938343366854734424430910386286093392407494933478646326989974787319651688059515351437619467642130028763832335881294837184700583903781715328314494535895140555391660904427941950818453455629755440373008263231638932849439787606910952975406895239891642665768539733225426778066691965740881156474718247816768853534461249401965689154258946360338802279191111915898282157434785119854136039633745039567490996627984873385384739150930270512799276976365024529666304060952029090605967453231919663253304346467118533334679756413669357623705554620526619635993385683009069555328303427254717724279593784856413647387313656574623944091548453159668346356211451957361662558753388648654842138786708930848214742271368159563180078965826709122213081107811489542434072319057016982135317231543122986931017774510631725821454426604438555228639078889076633356139135069604302847616439786481005405160167062744397897509262339136383758415517732958691198736646323373197187796607730847874687797567705829957674409677908695740143915885741529278482651381302136695311315313028008084358143399026457405433519184488121728390383784833973051429177461947546404415387910497728486655051415551335616156431159470362154106372359182285899131070738955945371015182120898038205061946617008211050966769987785749165672942613056475415704690101622427761802333496657550214797940483012384593599763099583471011645640310058412705124321327480964825644987280569045328531723553012210423016913658401812196092911760757917567795737408594817042662976159584671470786824434590424837065239012438324538312812560730877916200837156946643930257196596306326587238300937681786309184615314735300519718647733826290025444186295474655321821252069217426351894204404371962712201074153422422500949687441669022429741392856525764053749357997545303128675017096788603399341255288844457840558393773678968545073890333401577402028555429059684205585048294125532142615748322001998863889944694469598730051753465032973083222490042146814593314740141507523301472529367224463279764706507474261520068168753347936198470476801709553925279157445604688135665120477538175569658531581877761412026782766227604058327540820717027736176121749823844141359479347913133026522197591223647689453525029156705207244490619785576714766851495972323506181864821208167275151761157600582271630162873081341206078822834513723074217518231933337541301181079336304258042978452279103083430052234031019778446473796710681569539876013284826050825851079671456933166365505493872942183632997543096305288997366317145965155105609970956507467807648450220591248662236663699427300576389090697680393452141770722775570472524152929987598543916590415934253559799091959131514390193202239675376233419970522666530464743773656211612197449668404807783553996442239039521092207978584660144382090831090411940725647501266810686523773462328261385269470736139661539644126208946162069452795243607435999641397154888527219196520950997636439731668891753122746974094210077880378127733771042515817307734541391503856242129149484689946777091004698089774633245315692888625619477387797252460725239188156148743543953516000577211612872747786325789750815344161136333862147059564158283823983319878532373758857402199778226507225485195185688010231155318417709079152546327029150158282110202693718279185032714230998089693949108416700270521459087425896811181915837848382094990812912617615006378320449923551014173036405240610560607786854818155373594868148500810610264995845743519689764256409645043536100554763742628408462162567887476783480731861350060672184919193030470424763607182889528156607382442831638897175187539265166764614079327428806039984372688915424206991397023437387040309651724005548107526781109482560952563693303386028442908271955641971267040154298950947799888175069085348629737764644263101913498359950834167569548861661053549949162547244744901158294701651005362282425100667208621107465127779202128108536205852458527245647057061305674725672602023557263756945397950190238349606606300532865649271091200603283439605765805140144177894552272643547233919818329095499089748062844502324931680354273740686921649828654805486662231707551987389663643351254304518904832315789234017436485657520326668430490665574648198704379798492009916649087208511249182212250125765549018806575402584234831979755090456355119240890416343740021027424351988362911122956461008599435661572618561688475839524034958230424813704177971778157639234031351349597661721486128101680268196632659007540081628121177792606807381089175479065331482993093035659023093614953348479925659577324800655489759307884010480323384051007130750691350143776717189917721109715160863370016487051122311482653347260742011369904229151795326121527090616529514174631910386485731821392067533210289178867550197634070542696777820561772751351307851364324372063508973323243165087816656266452098068849273799163347489466719914637466892767065564135583157614190384111640617688352274615562281962649427824517400041696956642408038935322856143934242647987856271274303217228897064485322289019703164789566522290155677016099473369486198914927219947402790165350342402500130913472104091160814106237856030593581979353970576480270442909044710311747496199616976942304078811810888885681241780214404002906240300990794779635298956424181686687939241597719448260457351515717607836770846260029868955237111251798287308243474356925644294792762317503352701522408412347051866529209004588271049398659661788656775487978807525311119330751544030938905000500094633769127329406220881904245929491733710295868977179739748462350731913998695082698888587780368320001224012206577665186329466461583905447462238954087413480008340034956749865542016168896902175349153140852075732737602074179035227899439181003984828051231335079852738474297066776292322410508529340497734728185599680872327416665158833860439467546836152652115260463862708816920868545735896803398580925982843873280946697530350565977156788142957983703755976417288283375496243492237404031985444833840284119251215561430885767069830920325178371540922762811285894809125772003921185958461218730071302352455795720462576487185709644880138325170208677210591607788982895412136084813784160064006286294441552828852931421419960429256055492005222225510790646714497604277614400794418284644851048587150509890087887478249445863892062390963004438009416062289216246369297667377898454500444277048304812139045354444596939326744499688057766172623642655265754165022984806031558798307256992533682754154276818853745809625830128616007040013548700249991458084265783961176694274013814251085199279226980784176311946461459151363636996385908858795794869233150309181043847173351947078266539546317935070838572823987152731080902466303937198961254535190045108442165744435664797340589350502200723945430479281959007320870888757097787313820619134981924519984776497543082991632307425284025249583939543965785396870321537000196392809623324231757543178588701386897363068424585959685205062347204663629853817346946779121190276630103691590090558692467712024745731752001565628401279134547737817927259967440358372407095622270869284119749098609890647910774723282672344715351283945821958162866007988023871732453908570143027945842680438373271595177928023967561804593046779080781684882256962038253942882870188501261973075739394594909615063447472812403746499359983144417665289734721834854827513660805622473433338601880818401067526498498374859026147710761669375216961445338087565589516450045217658717032709239665814060832512541685398075786864850101175552796125000816187577668433593369761782935924436340150102485640596174900226342426048601827373239687830402188908085615920266011546414102999729909725461619054142052697454489349361086118816810637316039819829858685624711291080725222865829132756318659631808625097283622546378554010413303492177055665673458545444024412907079229981311996324563981586876619355428284038981461579923421461010886933388466400379337824767642394543662014717879740326449239862745482069967409183854235391736795769525916035787545109379336340627616995012520395652377300553436354104036644776074999732784013365292905440824595867035066199503977770732636530354356475975358044758078695021258833265796142082583300684537283117820298038174249268166543075054466274308176377659023374037397776725893766013962366356437939420863330621736103770861194299888679870700226875248609267908460080003375529272137043322721611098858108481304839889145021331801711661304377073489045294928179256164272393136267276448230789396490460474796399678774747874753359085292453504927244792675687669782290264739336642776179304311556073652730671655245377583445595968947604913495485389255922451956233671408155122065939120627261981403326854973938190009678833330479285141804848546122684445287864401532151184952666212858724325492292980730626831490238616863114061404079390190611848092072293941614546380065209428179251177861312015671819808406362307264019691635267083146402251097843347183392135117123559044525427592858733284279161451990268174337238179836601214548193049565260676216448222782183713881231707356267328562760288092284298106406956597244873842368619121009994819338868814396512411417953094037981125386714576937784737769287348337507469580633966767878325689356812007138996953066947546780210527498061355208128546989841885508368436310782568663551198118714525606160163228995873816655375906915607340770892868065182209259347386442933281040124730426847276682689552198995400669720554369255583708470098017092848572987790354303911869440703200684519800090254129902978613794779851498342212601997698814853204982164160876408211838242700796525195652915502880592546871700604518984476989993494227251270962193280984767636058730916346117054290533337894242298590998145101302845569281308261367448832014777071561481349156358892645287231791092579705784344611402122930338819363715370695311400986480907127165838133619713734516489763427963709758623515191553806861581092829033487993461452482331456040583875153895142139915986711298387730236418028825488005913695155687888067734484382005155870176345596787533002272406186255482284424529953063597953082202291920778702245224450467455270378766915695619553824481490318911271194834549665114332981061349510343468108854304539899486833664172958004972570967525530083078784459559148946102536538137516881618687106073803288510632179231074767265981012254699458570520021509889692331609211732308321848661793994432667071775009176697760429938423786364259308406920924685273468512268548120395461905486184466615229683731259315826561928174845603198977892146965157408307636761269764299527342461118258630424991476951943694198535590644549517506826464216252392222939641696903293537242439699600374037417055005700547512910935688963754456368224112457729098030913187200110343462066861929537527778699122636829888827802661640659381876160077619068173374035223986632818096058974384388426596730122707682231102609422398536331970266393347607436021319942367549067923511521698167935313509794139439003130138818202550505660077934095065833443659293462120893773247855903150785222970604104559416681143996790936332269213859797297156608035959435751364731047535436528344622867705870046514589434607430710448771099334776259803343255806768973499048918498267602575807455652951519959724726102840750238584671717243592062219899715163217256153703422414502733399387369012126174641712223382398680372085344079064363476423297770016839875723127183962569120316735048278169950170579481344792124462809154392943661972408341717407968898814627717083099549190982816973750074073936945760666023378338133953335112042125852807813395802407733748440409132845801333128657822574413920522522011611292130766941245855807521313964364606450998681880660940214405210452383341994016056213219819252412526740069238927662910677007174015322316621487875266393529631220204375397555316365156261521958729268498445621763233922095636873414100954598933091901913568649094070155630067913959372832337145047999969573878129133293904389694299959830780490885663439821051108422583208336635822774501536990070836914603221262485966218965836019210958949326620925047358488018455295312689443761988103484577847279274928869654859771643581694063929986224062169928296052407547443828032227348466591658115698157284013967799251921992284889008115872009176314288756463753448327911062938046051443298380473161011954169253021470882144911082268387365586109514578498173199432969051324347421222347613707724935764884994734231647051457918819268108380391837244568166623640818870701378404354214742609000758252592587739525599053056236559084062950513259018778388998333267411825989826232010309662527305674329896221278554169046374866947127019848180377477312297801776948123010444444359675541411362470767999313145680710026219418771026149766692427611438702990866248669463375132821165383499208683078424302227803341606277114920962855215541235064022624304254207691874748663994626660110166293498476329831796551022935773821251219644674777473123685966221277878611670789293708429381725346255470104393076079899243164129815446893073537781256915169005576296574700015441661405275574352852281116477320413160979869638715657322138478321603256405214765413222821015526898758666337170256954445920102414058738464791066293224266145556855767765131002541415326494013395970285947069587953942606060415791640742378250500384708715723704535773771313610491224450575166590431012535205553592069107204818452277695122390029363755853029901703182052427593583866101961167647454714182773891276854268478723269042213531704442402844387416535413923502839490146115986687350017955837831343030703367671376766002073833208739179917256309615397413116812809445651524449832920308194212062390678543247101272620667246865506523787209711639127774070072417391194359424248934712843607855647315398498439206894121143274086798783468201526238852654788143980926921973982115466026662609993918685883374627063946761016332508522577542740392668736990790164584004053672992779475322144666882399083606702080739166860628551882325829580560216391847102585229390526193014506684539095127489611002244169296270233488323996981260828572733828146422487066192655996845742337446594507008980172505067533167016191147214954106796251076080812416868211663262867353864133509417311602211372486868377372876218353462153592883881628264821356888694130643819208070050727061425462356497301627131416206523742421309018518213511151615646461540301350114305706123034557382130192838128365914698045382957630178542530283353933571892162547718242161923050737684392388485146056209597501127158482125222356635511194755169989415783891292441313606131993483333303886480950831667665245624227046338316655108037933690124829266517109268133136191716865550481559880947897157338679797483384914677245514477916193423860340616769844308871956530000807397174942249204344566726480871638954272310265443114398765005242433119372941781897980315383756324288393084298389587791007566537929911352813270231272394557495330106810951236723713060173445329087845121372477248285188951267678368331014782513256646082858288574902984444249973475152889579601414718558251089647966217654939711760317003074582970303824390219210434008844428652649305914288462480339185224898648712160480822230519006977986457794321520990878648929223598653896415237836824588854150524694544336471517402197780239692532659335916514776518860643627992044493883342589220568220110509082404124175271791217910932657726852064660008984172576786749039143257790211797521008709081955459845880037687033568044435352123932785484502751996027724489695948458051601912324064838019033349609187463683768354470089284948013382440877811791986956740720541668394335598184848792805913567933847455024985563131304638043803109411198881302988911459064355741688391116366645685159157515570429274712540681663568007854005528199859165817391484605192805487163049288314751013237229095887008982133902215595443147720929716464544410824284977253065478508217881916745734139449611867136499960635409582731788965928275935205883664301427554852801914997544869229568274258319062542393958889860623002308014973737832700222516502240630646676420700614149052707155165223960452033033783461989319485099535626592685403033432193959057729871807669470040793727528210982590902337911174970608568210646924418762896932004806029392785523116793282444159013148152798823470009939151305813391159782739014671242360480468598155360061366481362274562570257980695619425228863953710976711770326810124031516264683879528213358815231396844966841953533042416056288987242251945017084493176652239229948179790885494995337658947586976129793488473655062531428765895373327711336436304696810359216190001092103662952713534239492619010924343329932535610601957121233026379243804858820572364388921953881053304357853793344641573576932296532831449171568879802188859654935335822279327020654098793144513251122397986511522669737755533628395039252809216261378347899489614051669532882874750598065270878236757471608096486258947139359561122834694033097061856906188572189510933584922328482415590868963932617182503432196676944984342079255135779473429260097512446832237243319894379105020246317743476502558041006184302092822604050203672559172082504194220674221854185796627775851795508205050362013568907217006586934284937730932153474988117905926884927185095882410294466961561763381251760545400334137857926611107549136284624910284558807504329948102406514774511897450162790600737878472407392338967730786113349875306823734799981448547670486602951650889525089125548772149798155669109655685370935069994096878524987886514981855017272491625872015032309218561002813349873302671919171422891076676058969427947359869247237021679122305991386030236373258135034382146711558620995530765743153051130548542201227336901631581619416363415097626860086765496249105167804966229227573468216505666371158859195734363616973016621102871897637570329376626603721654239833187652135437470048062659158827906328242403842159548334946433924004433022326622519720464539220488076438117173575141902440631723877668450975985298457365006480964942750147707816592672091251521893806424008613351942657556632321260404141910849593025172689435422968575472777589832615362990986639074288372880860509963896438747746075603064989505622753944083804863504598862172418423118089884398013983201872154227696020879182975912723559014228998886937880459184251919286932948969015197066956883423047133043750160985287199644960018400961184063578125402518006292770227943443321919695399722787137350070324862372513757618027905304433859986890963875021020904455737072397036230406944671252976052139416285045446395088917094597254945837115154800054384132161468503295544646673059904291439717213127352019300578204850779121034186033220067604984600562369441861063918342495400589705650850427783985035025807770987697274143553515372172513155274034970759024258073234310479181117788821642949008979651276940356668017681861583980943104230410450500181833816318823410066330660184377426343654019336646972950437233269758696317954574878505191245439843889062058130498731152500522189898691921665915179361360563117428121364771777703368931436057113927372050546431585497498957598370698126835177585196251655932895929356467873321833358100342379494058518663280728648112943197084530242255545312403733675586833239478049694868801093095047717202380175772853826404127482588073675011694642391899582251378095751807912123620189884780541461363203863282464262495870996198659487417655201941665699207717276661675907183353569792082240552287486189199375665925382312634804045748308795640009781908221593598286215104749678112758281994896061018967751584047703661533701885748427983187617711423843685534368389564618359034707818878777535502535670577634456153620412710143472145917344872156314942677808450397159403805564661007525977612380197725900865303142608956958179616793388857117466335146493713552008874300104473919143571931392313409993704855747949150354203762928173742444190941260385565066234377488909753477869970189838658161107505159599756617391046037977800944967603958551503697382223779281925136518614156082220206365260009122696350227633401114648475902673615408880286599835804716687313718033641553202769862294446970897541698261076826848857456588016656123183759827612411996872915830965813976689271844250748487264588776973494856739258753213112916027071867961917535029926902420531646525575578867596679287466535559991958272376075341740651287612878752111953738116595295883389948979303080732125777401627103511419509370222697714679115987522487719962222351076169982113520979288234390149102253117387940834865745147756767545147350625565360531722088231272189799903331582068986995994535003864383662503961008873152367737741966973231518826106484360897108078196507250530348681383734272907160348729126314735989884708226288329042785873862630244508256322182509094110333575239796054659986271017525285819933161462405553999682224311576999844860800202723818350704313675582544795217465671884935670218265888871793285255208585454136618634138223613275044241043871474848319061901273515958223297327572001079805723599454083367577497344483995865672219361758313413603206600020286871119145664703605224277191635301200403577929923452282299542605081818439294184621023876889871719557003456483599370382184634252478175794221740985887229712753722549631595875191460855366413132908930061241955698293796194622950223501011388382406964995269804210176967761636485487875963656707213929957198427953447997512945698402952405934747811889730753107517454736291611930772120291612232569218163831703300011766743382248356319008636303640136835379361894621741137690148618697682273034719850713446313533831486396014093001599433122188221911327606702497230077974160328859387985806320655884589848357079180026275768744193965720061186616067746032703161881687429557591925217931622885376887249870800074521330895297448877921865866328890980874147678215575251373121310215333692070543946129194383508004511542356058040956946477372974674567022416275135590590452054916777188276065790058790603037948565440039242907165361433669289269739797856894026485363991601644188851913263056527839376640717946738614950076119864096779687603790827827634808119051359651438590046399577861001444519522148478004681942724739438334849283093213380900660723001916448040921140754792454880036186762201450277454757061882423174028241545601942135413396707603902381090266834237652772164370614676276646766353225370897058579390187303927606765379769060474642645946958302371803438792006347511180651179632014598739254454500139808241469081145791097746790181749506115376752427589940551697867995799584061994437712187604265161856096294861152795803680176839176015316027209306647043084195154854164498538338074216074096329885287975710303058440117216050621984461710156369815535774599020670026277048702429257557631114499926820565133717548554546930107697205519161442650754304544235248158208459365995295921625722576414847414211398753751251176466922404572171329597700753875822378501191560263900196862886202901199659427582589366754726368224085297264704182401781540310643129521244454212981730186321624093690966734737332636949001002890290814748804168058447481152106195031712214103933547217305963804229575954541413284616163459930124875250509083195709172684721517166398666743126032384636492323532089990640706854693017219688725460211018510402351500374840863475494997304726631818633629145015612747459473980471732540430579399577920109030988366825725388392445516132192992770536037550076338428350362207086089058255705291691175280370837523951399014616808810864131235650397734807871036340588314961206993199447750940869251734153279346993284671402128527781013593183545010194849412104507786190559329446379309818115273096883447225290002780100381553198221235782935753231702554951445728971537929982495476486550579050476678243606061792212393363787650949573323873157763061795041471196969722697184349716752202295743407597526504014558557919682113865402775085040250563667913433903742348983033235285691752789159077329143261562331845301710706352169285278228284636351007048463894520542335555817664965036521962924922271961623761794900498304013163899067373058262367444636331671964322919407100155140468309001935122213481478772697833754756062540408336770858531869162007081231986835537522829357688207930324721470124990903480836679688468161588202144007420903744267783264881888797316714819821621583661341112672892457897422935592120767432933620759138344960087817200381817819792804794712728130362292502387700914103895363776878777760248083175114188271107119582552999222706130769031186689219056557264710565550371712797344888871718354758745999836724045913443010501392355615280345724846736202743145325764465456306968640420370575858992584855052223780404555406796129394654161567397990524690580622937654133309880325454624987871997691675588106548104307765280683756347108071776807596709082103986678730063807232125086740977875562831058450543776936818837392766381146411194269455518454618058272992933685672493947265916572355738073419652546193006245171748751681737333502619501644385595695197034966392731069700197785010218065574250135866400896839975238508784416571763199763892781973743674056438605541365750691197309521846587681760844004137898832392930505840076139204808447353144749661233897262464751445359563448490733141128774414251448530592221585399346814220865533762789234050597702828725762005352334326040539899662427210879844643290636236043883639252987933924107956195138202584376398094762021251446785313804138269863049692140447762067072234853967482170713422336491492689440515907974053264785612491606641587349496389271628861904994517221464928692069601035055061261504360245464436772065862742841766724981851777919596114787039796454622006622684376809534884094576398727729222887220713285678413248961496578935111823873915138988821502442586009475029154282424738680936901729894364672730383775667051627276339553963688676778497309994154316734734039587623781881187711642600174997861505522612517207221489736726075991646895200305515549925543594169521836575499832644420172542089553248664771825845903391714553576678869329180688982642822337299185018918240887635508577532617666447011993660704274450005291387016343236909880316291059195145321555256241074611331489490315759654867671480512438716544848221397518620758247778087002322510126420781881690152459529650184667362238224812219357011523748148637189307628464707003315519021257041779867948899619552468018172571498372363518572420582294599178218943742004283213098045999795795688751845030774800062210560180738398103909338224057495188472093741142749928394772687183174100806549360830803981197619879554081327673083142266182824169827578424035479438560109549869391769962264098591327430241933889888061513229499563836232556262616833209257393124804945094313585961765092714292829645648323973169771845298695297148996661913525841738401088381574541863730616690605532263202852992300798182909849166502109733951810511751973760948559693696667754801910236760178430906635425010144296487168712822162860307657621656873113877013058414987945093378248600000193992884954082988436783825018787878099371490037278487516406757488417505108284395615044514721445514963108689333296962128257520461400751800889984278226990659007446449274544654337920329971549096122044415936301171066845769641718501493738672868103176963672597651349659270971118711431241154945733384587002527292737234397441717851054278182207328119025451593372976857505285163800715565085614130628533735010869261877076518489019536560702459162517968696337708072419657908488342346414014982141238156382606821906982696515516555244639141314946627004949602006653674757762952423839767215424561820231250697221950680584894992039815182895271978246719026228932729979628343409775533766437018310018120843122083297366384445548430148940837145395952645708533194860321942102824473635364491233657241995331660653442261724781448281005445364919948982510160331239438073255477078685615285027546288487236538305498120993383566660355852812630757793145207521797710287451091943095763629139306867214830285534988895403762155263510667849221126391941995105343620310271681296380502433366443447629542467948265452359372453985285595374696139707231143940099742489236182812230847397049706584263430832482726725787607694601283017552291597938619176696790528052151932236371918940838662521002907833256598955043606445158115806096141809701283632676320495822424246318861164589594601792584601305854032269455151830983504417108135064060057100962974495413876591181859032561122489378779269790162699769249969438557477329707011800062229490306410355797397349991500909176528679194811567544829885626132525000110044734152375261031197720561643938394490257142572051598891857666581506139780529530344022586933762393709659805812447240140157919868055152452922295369948832093577241470717465632120852657795739302959112105620510057722337839044785054418997328362046444930175226565155205729802200811292416414054833012353810145911846751998839264164021171618947794515618809073915564470624076226429249089782303016223786096465014621801549716004995811966919800072040904537462569439500883323737170522778874467686821619420617294714969384952391573932232341609515193612170052017041175056030066926881352521580164684736250538732545238692788982392506913451295890449255715103659231729419741756365330033361782811272402491345718088008147133183220317004357834938691973354422373870508681678829163295452554545081100277756057730842457575604046660738896680401072354247315257510322426129921818921894569111275875732307299345740172045467169769877298321584467114699104695286219681331252667726704856836989334313260594901958671470857617033238020619031449059662710183522823984094221934844749620491767646995818861925270353578590121274296119510737144648995122455981291150061878133349203571276458223599397221798097164693176970478258606250241509838731062129140833847126665036710395379406728298455131356000377380342045907065285600834802742428618877548018767596062874073334919141005791193666756640883042849255241737272696923600249034302144474252816360835699087965879000598091552276059417516226124354568843512105926921099158426383634791370803335005514576798910808161380361713873932373870751735831094816139666993198487419533840788466861049028148814346000903374327972513125195660890075312406600743513190862068867041168163320355069983281969076918143664387881338480032270805358063568581068297672919303259404236846673365533525697102378742261853643908859530250012368545355159841043256283874404167764638087131444084820708396862660586352279869203415472937355611001083420749856073874753019470241137740271766348970360111104451008899826761374966524427012421586664678513802140274742906784316569870854615651734558699324855047538926856576522120747713370662627646207828123488251522559187611395393915964591422436877300868490340328930948371214033121619376288242162187079075114759292550300347634792083884159344664332511369130767786777651685598025018638650225877216457010210550340476841037175046708317393156589134910537861160659034807066923053578943783953566222636452475886736754811262949124519765150758345573178843059462734435530577583077112750761094137928564696275782961169052163068204612705194823847013623023198567254527602103636065713680981436274063792127787671530506492452911223490530539130654627183624982098989898612349341167541878501141299931663449124432301627953301966853388420586580150433944298285489719886074015793374743537598109254338673087206028745160387368215523085676333147102832236412152160603690429004386734827999285407111720675777891490419226298088550454348358417919750370432100698933336832724622765486163491944690338691599594598881818727005056015687758889584557176368809911925410311319182452341378863519085700601514700437330420308182027081753359551495141553334368168217636375337445830643923796926839370812024841965449207773916784918290906958258304395296284009837485303618015365130976887554136952974066398703875159717181187742437909588097541671392662880535747323063422844412912086044366430655700440311872696753049193389209394441852456559432994834291073313388617895848608778271406147175093344901055781384806538394447243933049289889252260363060501538110022575498223761943635629022363313132504928468938522690597067755806869453275080083533598724277294860520644515912902348919717253829732208432555477946354550474959122963118053229634079835229476136392930069073765430331979632540423544452667956852396802629813711226329791676083941834870939770510569294735094378537916800717315155235353742124886726714664805358889186087227882411829392578141682752113145716195875530977436186897204850183395870189187528583084231123002068769606312049756944087019055254039708992572891487359456222629318844779133680399314955367780386323305132377165504850959371839948135126201317302062438611008898252182214481517452570300735449619496027073336910365222779571123687349235840187179853721893326627274722902187300291501855596177382819810703577405112736590687282092608426080415627359358339258425296894673821436109048142835824618199145114518334983799032955354112932419650477334440863468786253038131678383614308991053453561279071550558947695534601584486871190239498062262911666753900841704414795413955793373417070455011278562672612675198266530641131791330198470877029673742447449180450966950925831766737387649754199204370990507290414399394428915639266395998682680919483384896038391570462178638630448571744805527706325037152117854327921103252898411104114000617721512400896286556730664591253537626101374031791983724626904611813573031014240106767431066790623315956871960772858549581050010002605516939072395896065984812005066356145717999511715141396469658683237263443320697887815298718111182642742677039410164323114465498857411389381489989990527955586174754478345804633966634103189749725746778632225903727072493228219830536206302196302500592371126890301180414237165504990084090054511308273993864658106340859198049328682140244743181500235869154201570933364438783957484034961798772100981240243104909591599191058416125443939439637261080270506864494240471547588998533657500231739545382055267179609226226146352737591773481928784581008092514922900934282127257926329062453831927635307000549063092882670171266339338496138985366871530989018595059127630928958541336367460640062697620921230757232647306752583834281201681193759522023533108343900719494625934134206739589093438869863544802092083799373769920457931614075061373217665935967070931339116844757104128516824952721157143751534648827309191717818980422374830481034710362387400862780481197989382681426127011540839134505495659213978515124792672409539301917582477596585101588353676497299679120665087418346191419395990173112109704320691884765922649527527319899526543941097098038549370436002285360395219671061925935134161765018856582672998391270932143485268162282851453068199690098792979936135285914789253074120040839701917535779568852282332581225634157381954736294487016794101307762902242938878318291650983356919051346126918586063170198527956923657296163171637744805305324758125383712363239169463256901421387298404682228291727265842779266794336939208208577023800155726020495724958916146781070764633229953268961424173702289330217926196033875330767999027097296546348826972136086692574376868967672464921611849058506095601705744027007742972221804347908145083065171695347114827227895852599518304506718521914566235629811009982319391300246057863748851469818787919327864308981982828463844149678133880055561986365644187003082832477101949002143188736701913257225190703035974119247135317027163132907607116943451591140615928872903370793624411378559377428167295111711000552266413496928577661872051104635282170464927996376727680649981811096250074076207612021530620260634101302677171425525023243481504256819466592153511463233045331185318151229171929194414467154709999348619934930080673754336550171795695589864388669684120090634316118378308387406050782465755740277771064761548897721832702868808477488998525105168123535230256922950811332241352937281962484873490595803878219104351988375240337159632080888469854322349026805239800476687235263747046812455160242204171951968344470973729375691939890116154381840890423023298123122040112493624511708992029059824723420169139589761941203242146799968553039214090591103684325777679049064711446853332731677478667692868072318214382684731161760687824428800465798734631050487753516142940476775068732909545839109463555495170862254952263605435942819721198759307328379427420320834065153279940365623862130183387267945299331937465328408081970516645565878795250346245083364131868936433032588833880068144968328779267586371503635969364193464009500614278798460624311424006566930280738083404010544335605949233804540912007932459324032709437092084196464891508288678748387571698787023847840185610005732550865169153949428405513063249659913513239450925628460151670128962940054440090870226494907278331782699711639938575625672506564347376598999295027347242214450039636664540444643723765445344118582830550792805349516971208884417189830480986640469286390345262162452603505016853861041032175783863771538338285101473679422864362842120714630291029182018096426168240602991238913579988403098480397023991129612615308281568938616832315683173478873582039223554407495937006265780644394157236714909005842283300527676048428461854480484757956317910180354799809156190004796127988869731781562372968198114506328530305267760512795327568809369395427644792590213577015025277133446944767344238770281510387734786697151107416715717246914926114351736443287859536718602294219502802044466805561519893233053354897780110090214670608431045852758968824538958606816566486336091143541313812355212602276332113979362142739603288190241033885354148875173609707030545891917254422130421827053906730023503608528668064500469694759599778107274379794234524153837216489774442685660934865228848101198094107762275622236283051175784739915860873708597144428295855909706778001947273829006720313286921769903455883307095846971864212237828438843267180916101827121022805948263998808353145424788702559471395749209250543793826511735144595687044300223846307502844437410135573639944585356019037270617982269378227610778903744897595140328999359159153160934914625714122019509383895646456062273360432402718025052227161112453009239379116294475822114866368047379615089199829870977576828948113556164384190951424090568161393821467004218719999657456024464286611009998291879475009734964620916753850834336006944021532512101260383553731026876639886711694833348458118824871145030608952836045587961803624564967757834529500236935391387660872844115598260398571445151460409065559209718073676203554993247602923802959125131010744228835501797840361976186826483168820536887720532747768174159828946194868325746283552571141068273712461885224035512928778659069593750996217475626062669690538269025248186956711181794244533106969880613145376675165463766025661778352997172642410277634503658926999622090201350541337232344880193915153007243925836072113091249139679221932285133265860824346812049610739147452552299958979159776497290146346981954586382528253844697650325973693611989540518340454353352195864640859284414733433827296640545802253626827716265834909162493694776126926398757662607196262945183776970636359083240894551220766202627331492696327091266889013890584212888202134762498973036469633671690333770161517162609295577671261536261772231872196813928787598470379789553817187612615157969339797283639929884123357223986185874812824271781739742079815761068102710040067835912171553394828907695338236884795971868731562032736886278347059329812381785120455740219387793314095606512193526226551332064894901749631660600979404298355434349476235645531299406547456800598754874916842209999235012887246777975882724211763081543707375117220035656390141904451722145439477418820893114608248240565621638765292705567707374635738893388065572810564270937149598682627067954848655074206611702902960511709479989687390011730991754204928324747242161082969284068294477329586027719538729909742523699566769925201362754094288059163830952945116141726561721892844289401063765902749746131391536247984651046797246653090554959142081835082840826423508420421171557850106734446799133564644783135575496536873839904888798470701397533512724958633639800495996922884734330530334725867551265737981582872251589792756996980412053118882446735455930476405735366389528538651368502388155174113569349225052207047738068624895119005483873461832771412360136789030671698347875059483912870985477650413894057875696940861245965647046372870858773384391771641113242086875820099986274496936254072083678717804373291636132418014755642801981465509319178353917960004146837233086639688733794916173520427706108384247783597249722908877534376204019903656667300293004552769179483186687002717957743791118159697883304759069923727967066063373538311436250931263812754491079261872427848525226088844772699233071064420222114061565274153767392783404424158429761435993159982090174845358783337021951267736926349173849948331428093295047311709463695387533678318643796074343765048082582824873501404921028162483302941777112537032628574522520345580764509565223688584724548258844632018345610389302716356767161674618529295607379694735253559176674727065763504872562488175331426443890344110937895623159781868750885340343310648165269669849570298768931551295667269004137348640532525712738994635972193906605908656960799064322482587157175892674911837798338548311270916773552428848591986454293349430932067883064573352139442388885898824398248676917306754124339988360204808839572769951044172520731822773181661341052590074216303173339587785372421009167173180129032611552404678241134538186100737262120361640744228091044668560216390766406271293130434019496323288875829064894090081387322750299085901204250854014967414377734315615155165636971410906153263522453849146290314756825798321451229192787797411929036931745181100876541918083375077207615438911620598265837701886317597473479032140094230779509807058790816783106643920183524846107981861104793520166199867078992614310800504054185213417378954642519256952088315185842165233053780861387881829931184473217067398802223953442738252319559547838380392232598263903375098895269389419679266954742687740548090405415275033785653980341106887313642509914017526661588032073331175170574106790461509907999411671590750747720438393806109426923903398825294402983001047196820467219088467789058983639986949585477530478960135863740509664266296938102059044762699413317848779382084768713411253077737204348512086140465168070985069374444468589561392234548488902330638146022585592023805716252443137184719139525902688727777057636701472159464527442103661529393250708254135616098120873849767663775608319614827519726089736836122782317816392912191284928480108160166607753523669900126137377645747680561776844605900190768294978538415654425513744290487739282593746310626250987529383829734315235006672864983317011245658730519523657390628838807978758911816501767604387781095715249374696206383085443692409580351269389439316882563052211499686602893297098609290172260093924310626954996884339488768109837285157881554451073941343942666983072481906125364362089966808183459608881349985316396782219734368580995023174878927497052801404453365335658387617209709162489999743518288386561010717311978321959032412184906769150676086564301352791983392364648356843955272075702686192742383867588278253166088140235843192904259694505859428373943635247733814701530743607401076428840308823526920709401837596121507169249022523991952888459701681536696353340703049477795783591990969916361438145309948735543676622034609680892269209681244523475009893300490589127335369134275777697780139884331493014248204828118866571859772247842538795060194287121304603218382015687215421029840262708108349469155320137481858790224189305897747648063850042737818670693120184617297805946976176710516247824579696842124042122587194488706679989165047725257339620529462741159515005904671587339175244633141432842703818750155701870194919846590162822746439743092292276507809050154617324164912708720791790121210498904414150489263359988501708084630661817596927330781726527235941734098447154307794302869627706791768890977954872312035601493431397277340917924327708415540559547682609509010238186877101372590261735841895672385604183751008330865727032025144744116260638942364398758828911312332859547687430120358524015476544880782780806622478238367621065534685835454717507785618015997754800119225836392559804662854135150266386587386665337660015847862185796166054723446465538051941239266920870978998491394918197664715457025601268424026321625607488489526163507165009829891239730711964155470848282345968494048838053891747138598053961567188388033217070273765468291308715415701563135701409847681559809527431038440959410590743584256912308929998022856092816046141635421344972305418214656065597225088893912332738198782704395040748047370077208571003666114521903056474918014990321236150650192933646462851612938224280435257289483565742109295321034798278995455577671399796429495176903896103788379609418996884012561914945757197722127551751762052076081984015503726703550281530968109223316465178140794629157056387076674635313577682899145486757334013819786068427535495612677508899154300862468083819829366046919568761052083214957476899008328142749968950317499131123427639018601673828251889060844184117841423143731350114797454822255360878164481039076010171637396805249249827376163734944791841791893839056246853420432944912206775182206046786267363149609376702536755525648266124099150787236436662629087660770417390301409114730569752796039264933760287971671635001732917376631058081040453319465665074602675452423484240874087784066602335857079074066140397960330780287545187481121254019409005868732148350198691432726451231448450771367124414136376141112583132200304597286121273144819196492460201167162627257336311498631863571675916395905832643701594842696550284862026647644181064466727150558189071006277310805288318458995854138424089399463488656141653639164069685522970590930807759152625773949393133306220591119192369367782967342325339810129411312883922027459549749581459320769957395937316174158623656707780570184932468942550972071937564714183193515506584416120712907215323536061973261131047245240421983670144662413764460526578341936627414717651468358666606297203363375118398991212101404285185744836632687152501548396957288553964250218418160132157319031574461609929253695093954984821886118787034546772285160191490488171185061028823778279408837767329434007947256003703377785911448689160003284472290268497267560330474950001654298054929998036928429397974200704388001809779588491881220461101269030137124408016681173812480039170898940650796019481535766799414760686915388712130598795627494147899394524184528496223995986900838544242881821931823428599533889047433488785298811071192724340156693103211160860642700548281618559285391977545914803223040206914593354205963275767454832834996701604640495950371491264719841571707375282281654297251852961533951691350896134916668347610785428883069459909023143914820049111039983382209806392286576821262003800805531066622685486298934613150357672267524523733153551304694593953929513237176270985713173244236373290215027864796823641891418102340864066559138272810719431713939657563192010575051330498694275977002900328414447084990131812482326541029676179248984519783937658192045212634605913074146782838572943401435582149809300007227647793765114547163745595771201861811987294560525416499627241464123442148371843631919704176487890947487876550276263358103519218649281572927957200561447923613651615245808585392720350213382115199714039562378024207346202240936163065029997086152623525111192982152437561960855426879353102273609454156913123607073727500185215248576581314595408300700781542616061324893908178104907941418312456571546611844561488116994942931231749380801560909682153981838486797769064543467761091555287493877217398679356111577723738999911011597863763937566752932240761121188952407682343666597155513188279368457051619831240255962842634841012148729842201954999911532964685604203890724495631324301776473879110591497520645660404755248449335604853600974066887994596689307466164823439732250374057276050805308094139237694352249505392953688189180004388564281772507391402361222412491593722661871925702610060398488242895278353466100967368180338509710465849653791843989524422784010008776445148641625233707563667857421264517009986445068256472447063268335399276026646035876887923981411885399103700418152392270285909962260582507613661799393661960814189951739105284236457619264638407972302398938638208930578242193292426676642308540355537722886766326251657642207757735574791264908869994071366796228119615410576701556125092985713065973076828172143041429082944832291095016431803944932625489025057933382159797399198830575658332427145373324778512406741188605680136410534794000365136245337632950489826484074971035800222581520446332050296762534590507388807927753559290533254253545177446442693677527296882209309579993425916615470639214614352478428879315877913229431535838013081774308254326778503393392888108657846582430202918884698292654700336647863983622901295383227347937310038041789748883955885712342183746575345307554345794600865364673682538797636635247710536856077729718080468969997297681378996579849926547841897808556955659900916920836058875582271889315644400502334644415429142692240597815059839750946325593924391538274409774696402041924826270735960482586747239195418344055822822997556427138055044907217339629430864439013898166787099091233279844185793442101478988585031432750429091033416964792477336675115532565230656346711420988998161064287694839735505982070637869530598053208595752847903970529493453612832117321325785468166320903413866920467376301546020046210101357939898837640189434933284290749635832657844440217836354328219575978135119668882847146975647852587078331414552083394644507945913924658956587314229109772587632322453696046530189755642435103707064761199274154172896819418396219948142173473105515793649634780455836986487488291324607344383417590638605739806044510034044733448451696649161625265245882083316970259164847826239921819686547189022865088664005429499588744001187834156193391549790416881490057751332959669573573434103515718808682223998830101712608479910698171130907469462567870352670248867670358940505309649535135654965544103413019556350139693349295380047033259911138973955797047785855812775727125974570501322624336806286326209812383850851603712660862624082736947478893715158123978833798705342885852793916530988388830403712184149295341374891098672278651464765768587436508140053764271809455350143237575448849662152677638452240075054150801611941905204765802332107561479706194907910211595897950450881537749995164866643817166304881463208145292699179215237092271723716208495965579310481751098453921486255159890270500769605496681408989612863512294584181613940964060403229764470739677697238389926305082571566516521940915225293491172888571143712645426189438058035948155869840051199727697886297418946493659847576736633199066486026463144209401498475705719898058555849767064217945094540440195483501870272493702094362518758422683020872670641362692490168707116765156357122991961473539328382185697599619091919185854859929624882637139149377940568037670666116836791980284567524356900971641875148927458784778803532112025126840715897042234521771314852106803379858515482904448086039927601326614573929591968783061194525272034017146874775664387622578114454819401088788240652124685122791209043145398865834491329929201444698246618596326963187110369107141225337118518887653224575868842448230152945467501081033269155453785608158016831112745853247382319724576538085751831157202089475287422332145438827565413648001265756748806641786870588522440009617727267743930007120377004473348296924572013557058272798901234063611791269156079898267112938348179262116000726456729102761414263298735356826339822608554418130932389227783864477365320984880603187386451978470194967691549271916272389189536238808045224551064928513269512910580778426134506719058488793327131584293769977553934441064328593042654313741829669060161070120830160917838405237982770161498262940979177306777132119415427474220189168428941704267357561530859525052943875771664078737201666630985817986890572719571178880013476511535462738793572021858350254790903187935816128418318348171051765447778714608293120924958001056389478745422702172035704655723100556519578611565179460638847949184407519408017903799640546615406475251451759811441947202170527408416238445711774914064319323590821568078633066094698394293682755296461414259679683889585638280734062069937965324215379409261070959561457534710872100813888211063570067955994993108824492584007246344269371665914894159486077355041381706845171601550377473255340767524446256678548618480427443927220504800741492831588054256759270062499266034270592605784496292978223296223864395322358276703547939721660963043296661654979292524878370383130662247798079371662705740140916760836474222800578787056506523187946566004089491592114294075503490741095695766317715564825703963977306149471785732288117512045757932217769302009432006926888244325789211483218502679057933198337836908379043558943927710883722928087314349717257415149254673404111989039312680365404245233509710431867143896218554928756377404004297512725238481007762447435250209085351074976460403603417122410640535637494097977292357248579743055237959027302443094529322138115330150277326035938002418974522103328846955283260317245888519521112708023365666882540815285191535157147504011958027767859727288812663216192571063376156998845652154588192999545477845940779014846744904689807237103908541146795922529600295771138973101965828302279654541184312492117891263014290550689377882752633879594949877303328269275594767168760547273371910563521209730886834992974927520101126568363267770963761714558364769734593164914200856252909387441434058198991460775431110170380844766145202354958910850934715508280047652197028984367645024782698219733615938347876504042904526417186841868459968182497118275910120581262100099829245693255584898879238262739762857313516498814066553251031664552862237827690527034076565312938444391885470621818373895311185058361790099200140362794200625882465266633279774407388312407740793330815429494252031540954626564829967262272713106516284945024079092489643924561747767809510284886261138564627552939274228490117636425170270861504161942074332173778822203410145395131348474334855674905977636806153613676555414396250953950781435126409157797900968217922179271469434471444871485359473775118453168651271619286879363707646242980696620407866487499114469391392177345205518174547259767866812710810438512219134062743736271669029656610600675060067644852061339424188951365283107539249011958499784532334275847527684630435202584500980649057623328259678549432943029744192755489761143731368342279596652673160378335265753593091015940037060118735885939927430667476037249222704136258504017950412595569877093634418686703353626651947998518673060685821826691410172849435025838073642718209766116722439405874356007224152398608106358176958531031321911519370070705174646899232016749841811582427331896829254035594542571797161989251931486820893213953230211924621886508863207677802556520109948152824595830238329206984538312240906036973037316311152421121595871469187666855725911729792189842005527793715932556807402777772814770047768045086856927214292760756868785248957911052545008579277144979737968230155469910482696050946246387815786204446500862209147694456446014342650638722527320174739686801397110381885499241241813964966172815472540516170945486296327841838089342444275317914805163883637777238161489124498431591575117301777913652339869948754368343057959181801998162422667393559695038526786188566924852244907341974978700143353253482694708604357274999855888006572668359299207319348010797874451752413597536423476488020597014379532249166489759536522417926558134851960656451428405230491970837872728606330569444977259170574675970542019494644119980425113689000215090490625614320032041517079725786401583007017364631336360105741442241201513511137617889937012966162572365739199763255239244125850157417345576036929419643952188868672337729284839130994025192425914115726404194688499420703371512571117053168688395375749859112411383041211285164896101574903630745411546900211264342547929939181529646270878071169485777739240817337155322119236411361013547251151197824530948835319771369051094624652416308462328177794916641943179553757741710204983675213773276262660895685407540259299878906578144242156690882053550350977829690109260233894038554834176247911300782174907873374562592952794063041275484704077297489956047299752340694336788767236354291042694323365735535130509102131546331497309389469991414345842761001064601657144084261327897754885599994434537646779304516434473121514381498341084560574257462507929884852655225693892363966565646570334662255771406461263260237672453041953601991221394244179184024501751859409782288385271598597087998084154692904074077054930317965178491531968643323316887360072206235903802100437928939305746680250669396676904040409424691875346988684323737838032782770248580167749659156318157520159750569014597210748325093800693160863308999091648082525390972169007817523470299438878349033904105077631302291707414171074071508776610263709443620895991611195559400517951518753879265614007133825240086308942141090194853927870558499458135381276106346124739857224560787611745254015518530644578373681167739506187786259575629190767208040520326971309190876071770472385424954445512385330726713101713717613491684359465398083174946787469018940654519496408674709745468569522953464465311542536709551336136695271167066330801537509734070958299713747054712200942123192557158779818576867217112862004671909136377082330023207100839618071607513458594461432382169657022656901498957559781184889375689986279390268506574185851954794177128710829772113342110824741761378801481427996839165109007061287174997949486830074522478760652957431442050150685119994854883512839355491700338871251528030785557941851546175818543950062873076277391929563992432419599190839547680277956164206676401392148106143768028460287159401934015490280818840820560764402831042633540979522337955522937691379685215499204865081259274890090938281898886751411156578699438141228139003237783716227430862916920732543195922622064322269930906512154951643878855338124484223154069415378747588568385780572645679436723974273682576113137836588239111287330407477089532801807736358327161251406256090792973035081663490725442197636805558665683604862178039882043427538639617897256635085191676744706064802457674906919949920765216033186082534891460418589577993939147633764456395994743027606676761443756648080369840833947434412300613160546047374608759184299597092014171027202803331543116507044465035588029534627317669878381568130754705454138731790316521061636409240508921240808950408461179318963652398642784350115081341438674060873234912727383618329846449957402506302785857434497639106959404003641103895357474653874170943777519385490298570878596111114223455624529865887525293250471670238180704990564095564892330939997558305997324946848108038361442037270411939014436037563703965632837163050958902284667749018567059094076330932268212519676807902523902487184705801858414733014515535786502375411731870522080801363473150345605717176637982720539969287165653288313477397577638810363556072186047967722745074724971316204309268142657040895632608194447077579724312848795651943927698701510941704705013144038885498144344206742186325017979894211265435796683192098177603403486511238698722440556620664239970143747778787275379406272251280884301623329013387957064124884527293315802664876664738388991818848569354358489169775554448221899970578977719743675231934534731552140906890802432540834767595718491163051366413782455621729958442266791928261965039552039118621319410254353610957308346582318608833403970545895228534119475949051869431541963845710617977479922450317897268404319927965023680489701342421669615665462899484469316557217447734922309201326851560600070945401618529247213221189455121806683353722508536399106355735676021748081806771496876092006679189956627329978398948718379449825204220257403237592288497433489432779158697743818074618101969409838238304964614004602059192878533345943263420315708799291912575146631839869920552299195004665623084393907450553976598897125483224929973505946330874547376133902095810181782279084260618829196402740808806635156179946186689197819094534975170291241526085388503605935532850343587670930696052493761445049114834509935226893402170849403659850350090120076043417069696493104108819338240568065763969078191566085799969234134655808602509074984523832581675318365494774606350173646245186370744006433080171110967223974753551671086685347294094550877199728827093289479472660223403867230582289077046185007636589392908878783557141463774834733487309213528760592688058420522178374578216819601043580807637533788438659663147664133582385886317060062728816852766810401848485541394025472555569408640479756888701254108178027264316245082003519340329924181970711174683484717034939493657260586424713914383452272737143506171412447666526223695862849007402025690071995852704739191538966395802821925434439486733980545623756942746763609170768313434976986343221384788804623178072799570934901815001731952811682046663486222451333438872364912724637425160738584981853029968127800485988541069222510150740199916810811194140740091202072596485030213203574522159596252688358599687972257554543173867734393691468389399291046452683112105580043535518319425661236323490122940878027616567050371391048728382912152802974256910958778503293966450076246479357110689402219016677607666221139981037639056135076820508007365968168773159055183184390929325211965493008792705079536775493275646265669629965071958407169516066214320724982946614212859103216153967526095536810348877156323996098953061630784217468556142905409774696106562049521320912759003266797908564375193046969049604521664975249427631469297499511138759202468673725905041254675698015880958263673301486647461682270488373262061597440507078188322187122661191424185811163804611183370926784853704355458464399402860315139381973101631398628968908301242840299187205215905860121586972867350417767080579713955873258782398024342025891568054406788630694448101081039489168239506695590670822888413772852493100604891943225495240298458166659176017078842549046584140819172498880415904333393743917038771781520336749308871141427668228492161532878059791015202404136008854960834163009326086565075839680455090302285719374081030512010650858692817647495529360004091460826245025357854327625716095752200368831385921199386228310712532270112411405619749637274324426649979434912940916015353458236869194301783053434090642688744355401470678791974049753392587121879966370264667899927678724409190575360069801853160478567548874403241159058934863865144354543100401138057722339032659205828865799946915748548359472438268118905395972063954878118403134551482734078921260263463167652422218642305132505058554955704570189590371057989918412648176034448560088762556110162312541649998979048919397518842548837112821977480378515574133329766459718717765830679901591517524250901297933491298201267946698935699132060636036337144778674403847021937065499276637866866460400346435242664843229947557614928831945106470945837534158073664974313697858664931399088251424162632345653030392005184887187627202496222623810935144383773421544735398313391848341286403875200699941014112888155368748360351329217803251546271637495452813307745569170342455939730139533488224685217243756542458944628389654126777753395122465810540594319173428932699992351835133711261457638323542041990164721293027910656086966680438934695959151465532000914294116884438176849583343382446276337463892367483577896392064589255997352595485096144173930049766362394008641651662790476005580088583268617138129752283924400756221852629170373316434662127566283204040166442787561559163467098090127004566062238470464100417819428772371622394875884544361535306091139953794303680255146949311230017035798015129610466315802480837073162377938998791482920808451587482600386737754696312700888687695814425507990877282212654894884250782307890225573073305434113673446262025032590776678472667423333345131482776583613834907331046771864006743007819676836024887789278792758224865412030872348317068336461554624584322875816425211385573628608840167760100916762814436554862784837567096171281293592524479171190052168253446781268608885150788744753377207560352149834104853509675870520093741198792117919582509505597492945332458872022673606702055503398061674075891502404680491962710434039269634666430656262104443516651877330402896025060411510026370371331242830426376166463143101060326652544813761165737740718796007672854697248143913622163960068277586364595576173895101490928434214480409030363641267944069909215135459091696631257719337769447529063243401203206233689326546966342707304161538778927954280241163560587129888388323715205075880292133701306557367363498433654191358548067433839648052928855006302321984750551520230241890667384029788867339499135776424798129873313403377207562215071981314258168964774774382869285661595870663792465994306513703499526516610525784895857930155438374714206196316746402894201819046891462246173468937556716112962135793667407318740099576478530164837393308199483923557708043241562194647554424144617416535647321380445706189589836541840050960416638792502492127244636921647402316891610075606901579266185665271414931403673672572563869300006313285425066169985647262732260359673326737706884323683219965582792287419336750384490693655292445723601023498370765103851442254120856392014837165482269348250508976944401147089792020275664770792033174395328616360844406067558614052120128074713016024549363594150559407474992034086546763280122721500465791205713040192466166912698443433719679915618682239798504728689417714981184345177276117449090577744967896758541838971061431001002388482505622230546032279878447968698827111124027509605430802976554935132055901655545992921320253074761409183168989075186644866654469866832403080327040332615699961522026769632722907193003447509923813976338672459966755250349396313715717382459233682313210382331652922338369623878593490899054122800419411449270262393389793633239733654747761730992634788832249414949481535126034945291865886540070497424438247735966525762484310327643606482908609722781505813662324689403720214664757122299935709461284035655817087534412993852736508223786799717838233377769286843174813211929687605802821201082950729849960859168434642237416564307582638492728309824726474963508254211212279656893031402713482316074521339512715810634535005301026795695870349881438279495418341961662511395146654926107323585648261280423968033951068952114943170499609737963217841707471175962545448891232527153763233134559960125922424256232392629496810148869708701312053266410572002546428674179061870050825852217014787596623278367165665969238701998681641921364410016344481092356355514386006714777669667734721276080308362813079228651001377542527810960972149335972876078236812743768977283739347216735504017244853861594202816345925895509804184909728172074994365115730948262949376981008453726207090982698641598918883232118307273391003263940127498198387521787250816389791759229099188212669540936469519363083137319373901878001236186258052476663913493716300832243887935616910476416807748213193843858514541028522033937560302702209659893104060757698003381121051959317247122563770601110540866069675578948537619836966827711689578551106878917447136996753927816864723759694896810414642825537029716917842811707547707627027946211036984860310681226508570783442106338459614672030875969745463194573832443853453566693122746176073110896983406983432692534735621463661229842709852055265289431659968618816094809393145087961072414682705347577487303385138857034948707020078053825696192647249008324556673692488964284065618603099110548059591641496428997390462961971564834686742560680483032861285594983770937309611672899333553454505575239513372487560121450143637792851089581626020892937506079472835005828248991230917732107724466043811145096636419701036213304829008380807354496586345428866155318315480991935508190661485119414148292999423936424965611966390809282535101043429393835686523072030809431462536117481285918126973732841296388324908382082614975938855461957192283483312229401296957410460744299009492438582417030246818869647866648797951724091863052730712093508916951856288868782977240913645518966195454890454234310371944939414445798158354003483801300661237541528642605557388981942250930503917193962817007813198042244539177447556284589129150262769884567287328688253686824164127283482194252488248380201867595619028820463298376796614602680461054260516222275390727146021635183698379241515073675319754235270435807667820565836379460761712972504198210982721100324054605345960058874490925527326930121878792085419900850979698130607270950756539472013927393015986554160908472502048181744438411677285002501587034944135936019485427129272039196960465677400239340388825474011528873107831506019770360769321480521329314793716346838372133204951098474231426592154143772468781161669358628942903204955296279106542972066116346898647588489276422113904039256897738351834978802175965426820965875561643938953245800364163635493653500285491576180201372629646229441706725755201133881992289847166831843445804041078295409060403721637550526723665684981018336498942175399435087420425954038570229948135068113510303748866299579692326669494495838106821343042147412920527786961787686185534495015284504923704185347078522426614483069058957464567249454208743177504438054599321409797943440404575264982969996368323055797067252749166022068764037393698822577935317502940977303177842845240016374887518645012107632494635297299834586813453590516952143265292089923664681395425045564991622648971373732526625204891113433486024598159662704413301950681400715422511460824186525172026660945842200705370763874388634976246802319338838723324806092346672623014260845866183571110711800738512347868498509328182242296374385713874202178237911681892409507120730081159440097602876788470749484797289504770783397702172788053518702038283834337406901844487999598244864671880538329710320916429787883770192125076289927791343317309904872685519913890340778099484517008442758520191577125809958516797450078419123601179131372303721043427372681134449172820423884689534258463195305371959910664866366493539979498238246274551228963771524960996376142599314283752459923452900068894773227839026192317937362416860818201122364652266962169790421054183172302966959329591146310196843614187864446450608838695491208864495558515735459188018974523740182294248836701322820192740202472675597402474745550659354480916587328395707117097950978980348812730938397812811398833399839294985785474062406745816873168343805863438391656471005892568088861451323620387597232687302716486797590062354326546097131659500252014453716668246304195059709037526306853081382900050963541311515563272359544701749575121167624100841043815732601468529512439658118031054364634753595453875166953098440903979284953558186238618174224169542407530316837556150783072627193216200606595619575318683496556655845777529332642903400794756357821822877044702128110613085988791440889721759440030995117767244406357805206365944566674350195727325591768559650941671419217321066082375333120659529586957636979746196086766588074334154355677041052839207230465799128671346994497086712727968523219783650151136127000093884599169776539757321866643867833624254900080553468135452368313020275015229023976350891808148731020304797449484930241637312134541810600680494172623426489735829819196116855337761448207879774579845819599447910689565353813386626411058318855419032693134582768329753791624794276370368143243079914100644406362615515935074412770841264761242114120753449368279028804945711557110037162223611281895111759462561068750494536029981179850536107175395994797920706462361536263932648854733911779121857040879450888103971537185549140280054024480420932359085877394863641526357105671881103148265919519817010873411603464272962632710461103067571943986228779153785050723619768025986297619413352342602933125315633154009413940441062818018012031329137438307886202848952141455272907973399300579547863447558398131751117397139656536933599378868686365354457101239737658295511395189342294838051480490707536992225094557681379720315922711358314629768006415916852975461074363078149997610254700271977211704635380217142279852454616194763637116295707270673141757816840220830266393898372852710147881121177609642495009494016357211971503962001666102610576872217086626374791761540251488960555649277398911904631724758421038805092831617241202845633004045785810466466815794279956409686730514251457017694787585251490123901298269335509288158583693885041864270144224981683623402988088631251373255673177323320294416817041773702926835062455683581041229394409289648695935310002736641103205509632316826042684040448765745354459073859482623857454942826165648944366229821347586007320592367665901433118660020385432566883549713964622975710325096372561983907083125255487493473200052714101891120523021158230084141590114204779535621492258770652305369346525669455535568921928243457970292396275979314841735354434568226625602287020189488750160177274695230444345710883219963467666227878628022183522339689385382693184086876319013958912556482941372245821346992909948506541347450884316312672354499482412083132983524635530319886539314120665549116623703241878601197709864560884402096977830038921776067349768328690943183808900788844780134892947728575005065738515338780316750786715157211171640631324418483048946086563505045073706201980053462750090695521094039294423353203654200109871842150683204726954557459362939103651263433195351746894777931791377720925721802332449740687333693759897689262951572178289057233661049098237654186318862165075049502625689571183123109231569118394366732023012297139044187357149144807406049513644007141738201877110138674998170049193281924705881916907049227320995850767469646647781176944817684372166354615688248914550194794141206561874464370273163425399995962234336140097107656765185382452768243617859754529398064227078764589482231310618957835821016634958815347125980766966822756244789902767918772713688044149862810169524396731892495800432503576670254880743842223616990165551397133688590187031085946697972334176081958478761165598026158044828520191099580309222375972564760219678055292934757660830525093196289469997138312889460430606717182495908907741582136804033566164451841092322587739207704638647128269098989931037921856047484436050068574042602590657852436695397248866722713542084017988557276420305983028638067295241269794572878652888792149738439761463244228087618978250516430409882596166623083114602641124072612733958254236917632483425506105804817341294370187270238896288688760375468150743612589636014496294062468630108100846277834111624646021260133342153805248838683761681995857915451960681771492172459013550904250787193504622285583962795345822368849443175477615203205766402499162658087371038508076816122763185885664153855581978255139367542324262535175815691623203357599220867232737454446010269389841357377125686098018665970809147076193988762885658226289272245890110135230865152337592599007029453113326248508573326460551658848933509920130836691549386048174859721053990625967599568454151401501200629341352937117303717044444903641400069236513662226483226427128025228609911026522684811890504593404776142306127157869610453223170864214137538316693423471775175286163925193256297952881864161429884750396450292650199109701917448359283243794922486371533375265473188427677402500286912797051568106320728997563164164542847460726334357519231010879589760401550403526504117212275639319675074884499910718455982267660147489672247777124298131103624453361233894696449481817618336213260236167686206176725136497576398612666145056674490501034044477175095784142832296619847125299541052837451921342064901809279143844371918191522755546211021141014974105347928613897196725167680891570157010688323314806051017834411837034510020493125491242232360926574672545933126829398055299395325375940345166210739901956132507499136170569170199185498175775527183855567674778579253721030363816913104756627468536424084016344952384685163512271657855617342513867535333586768473671139388486915502036305068704265534158007906487669534556478008093169042892374128489828302011507651084281750618142889841307279149219793615513390244102185608711908591682277471847567302571730161175001073581830408258490700547573397497273676912215296500552553828210369882209689838803817656862643780793323181807585036019255507676361004956657973624815131134391642449581688740851237884869616862038936447056496884787977182981726018037734232539661302074455714754228712024068092050654698605283523417413208332375203623449703780806389111722861061236918006535456660591132112527006785390908048646655589751780747775152467699107013573350898360841716817521985864393200005972378386897799658459274524366724077261695144573971857639919947788780137314799964868851277819650810901300087680006572819569831449397066185315104154429292808732433701299440418271318437345470136322500359055596880099705079786486489251153351208231066580375309149000930243488735827098617068838523061737973867443285566136394194229334486398990984035224473859645154039129093427711099685052508656206262328420072946973150517201417115030432508280568497721454311401603180904481463708367439198460996502681743844883235774606785289001380495516147393374845406343768094197871366522434608346078649451068950278854724062805063615751086388309628754284071621268150586183698651455594886452462896212260588010047744230870495650315733641616427403133648912521102168520687872355847302727463881908233985257531612212795843813615127845402334421126995425864941433696012579412465652150353461137982441904564147622220491582261735042365735499247488215850695414463827229305767719147032285399577521374393431559848249307737808046341615411456428507257642826170380351243397252760152615822406469967258708345250873426591903350694430336944022023795676076912365874301252611403134772702896698365612664116350962127792429509221800575138497893865085075467953981986825363542546737675628234985122972755796499676720742228466216861252458142715611312012920664936446411214599195741021689372812172869864406956824843736641294973125320984768092174324384888480009493468578691080941165652271366553532545644628229500405209681859125094143502691913334022424763021565248526642072211044284824902144663158044710565690160599103585516101850890191021079676994337605501170453364402883120059414267988720561958810276383333777205431735593446943037339558928200680354221852112098478177218855624347277701205723652226412605209751485706681637316164254178260184161085126766962428283825212093913565009084028955481183013621656759073021161617540779445872483951028569354557906649026173929175011014407070824686450174841760383671959405598822425398924807675030145598726239184594156236741662539208286030290167935504302694041293682047242870530708987884493941111768601290707639660805806201262288412321692500012749151649769157944486341741691076604468436443809232519438583249583433989701506281981256117242029545086092002248044537718750540917656963459929953144244259715954649500664698409768118613147055502351463629448781202847932917238649061398161490599268201955164898012700413083119355344692619095489128110384609983023913750812687605079141872967590188847776487298892587621489832815104749485063042066219199707289614199285043675209781568013542649322960359213966112074630063105357759580367201341460852040993767674464648143945582273932624929687797555403726194367254385423085307359341981661167146884220596147156186129769710353104836294105569781833271628593244512265397844503168553066704241284775863170973791923179120687969365425140223306369885436843665139154383154374048909672987197768491928039186473840309890542318861986538365773810151838076302333206639837063775006169027591135489169269139499444777884586804123184797291952550870211947505393530023925785211212504879202482562657341210824977007631328928188823126622832776485471870398576356199582349819923832452131095657922467840536624433495725232398026794576302767261351955919683305479995503613188145246107282358149807352654290989258703352378239866475529412976224776184083819205974107635988682403444499376354041215881074779577136332118696960509544973732067470360508025171169230962752805173208850972087334084174153718675337198987620907897369719579962402119730584460765932276945833919111193493545802096981431761091503287493431672215483792430565284688589394717076599818036329966599028248098056502072233794877024521290627886429374216147112226304788116111202120291698396779914851601462393431156109825355376894592699352353142256605246750841809513568731412327770833357177781965001877427389896218118269255724271425369817635553992329291010324277012185553703811742466285412694445726637163448986732092516929246065242956236103720230078857088099900587256941971600183603911037228213065923796595189901361776542877278121641824717440514106101264732196329673208530169933261287961087712760597787599659180453060419080295232229999044060905752352792156530902348633301305371022457132515073793001034751921122112606917940131160675227066480895106601782382278576700384242406517139934907942212894903175444402306522692991137883818188082551374652221163236227616407869628774974177883264609889203968024661013146252349363725105222896022048561682239114809893966114013117097134278792488039743033036869848111434364423071276419554922367360752707610423696518106522939323248874276711682329560411346935515948813425085264687984109476737590333448452710864421135692479848281069519036744978116789067746714655574716501213203038514674327546781151334978130786619068463251421892972561733559878299361118433077586856875525554220571826924604649126417756493972480407664765319190398945646606042122934558000210674182907003024235234263963984653237062200348908864682000709122630619271975882643164680416365342887350112626415619968312286823476165973227835099545566235221668928175625212277237205078171311337474613382960246817126797565515851208768591482999991340017124587725338559595120662212772493628918708963147878773410319284914813791342094484555192381250206383000751578379558847431904639451667754341699814287902590166489957649628108001725074712163585900924668182782203315936511422662711116081756778703898732037509449532339088049237352168506460364128266717361004197030788921915849736230709589445671613438393788367154939328966156444570558156538732267189752923801459604523693130063492046681474013053760583844889693150446724377411826335979900138619517829071987557891664082520311548481631391377566851257223592693492594255866606028912458942322354915908087178609329031521869693337383216617461336939146235232519581772366750304475206623450284200345096776774257264017504129146895087028967318911670449070743438889096806563545995411824431908612737482399851472220746349138684768809136790592816842974264787544027237049225016918412365061687044270831967377217133907521190467848548962994666257377696627268563739094262392173250020397076256618346191114872743727032932635681321324414707795401557009035426749774380524991853833557358588072658865636317788706053729546810893893506829753754937225384897532948851027552187562799397538081936734613182996812040278456663599331083779301741518623366333736352876131311953159631800047837980946427813733670903065268415194277912844141407585304335617881250665356373755647350988188246412242125824701663159369137910631572449055408300099234755172576646875462853268865938083566887802761407707137602999069966839836135856745662786052756130493715822508844704139363062286269510600976530691290211358653401394175417324475641109441728014164543562626297558341417955928129163949419567691073531987023685587956570521336284426275881495192681938859392401301434468150438463792776036006158236153515753384176001256530151603703980534754775582799165459677107451170547884768270357806896500810857230169770910359074318588011286047621173191345194603104579346970069982001427886620010440966194737177541248949739171015573681988300819495757077179829996540592247263348365582587207821338918663163382515285602101346741947553031923360405355817045906846559594722161688530450947722888612106208653209361723693929248669951489997845842706554628300574699004716234538058095858329805755814284085974740188055216964001247738318895659032683882542330321354115982096971724163735788294518788564333017646649381721670094342583978342820000129211159212163598167310419196759121896227916042968196710392701111792764344190532660966437969665526219001205850760848020496958824281396831957725275688642359718598091940575242475081369423974967598444613573481939108963164035799624680079329773803174196584559285237944598528623247431162885201363857964949073240950228424859914177580336908860724644062250328305196015600224060788268476082466794619079333038268740169297388523964822498923386410408213131747611185531873861088556466465007463687949424864317371469499505918690864129217858441287082639720023290436581980591038259586781561177711216836808941049977007087484259721989393176609975149342308148527032033074619765360556133221138072407293071185382199835323272514497039967374707418127772393391061019397773022109838970032360626978436133270469109054745020434214850263767677119867075920093772715888648929407670528334867727377714262356441269772842053190813393274006962410009012105768984906050665102901771024550437646538175017607729279076315222776532380385430796802892043407214027960036263628655525879469186143910149638030794173376730514166739074439314516954709348978796022281019010551108764885152782605822656902009268638927603430609611767259509518042122699578500209319125283396419152322131562732312742812450623858024175241985456231877977928610505073432142120829873692773953152727956429213889633596613320652770349287373242527461407472024626917235985347637402133794304801495455683619603354572192812208453894472042013865038555062424959270278656302613624944865883213554625996809836721061271847190028653169626502803407797334033981661886270449752345087656762446272784682156802403278830594376576741270737938548214342694121256356527342326713264308969410552601558570142934565164424821543781101369588165751409175223168087261436884848269640513461140953276433967403188756886439387470563039969599210799104298593602650622663474675452229733707791834583958059210576893921025945882933560122458665218768263784429385063947362334945877183357807540158205386667640461354598964658003002272708823335873833600419146832026647414456161448430806485929932296750198898995929354914467258976502293581237936910742365606083152040637196520707227205918003367102051622718978557425283753690324452556833933995446275982587756853352104521167784207510924825780078069485743519332844027556156234069510809527123125790182875382616547461347529357775894510315739856048008032719439403653258059103425394163965035698506579489247071673592725432983870445312764536433758604493164930031355328324839193856502754161653600247525511563992332433170577972684282011376689201756557441470883283426685180642957224718379428177521292562740075841486662830055598789306270851957969813290228243800003215456438414324448885106386556128466241068056214027500205412769620886754631493542065733048611165953552773853490673358037848490526257909122457442877730154213701444482467716077676066879618554420647255105682607507394734022058101498929287398281144166250300700728767765516819461567703419891981488347192759687586450027306641048474240578265713290859796462696363892774523135237530016844502182907607496993790748407410589459080379539949426548022710598617670221124260852536610718800325306987843613576530122714317339725080045211299763833100691323840986983898276597514221300609675022643485548129496630048464562570365951156767454712564181260466994348676893946521757383361892005976887613097955662333771050052482763063402649200325176752711628240701639376408560754612965778558389987738293861628744124308844026176239794965326723939166979715985555235897947182102167445488956729855654048252587194988212892855468296405000113282629006893086944355802397874557582430910733306576520895093631875761773862134885662565918672136308258114656302189042110604439700229564836787754501307345181997964215462900499747022832099205079218352331780722023549103065000403592134690977984103661220732325882406061254754824804799117010434907966683926199498353533154696770268854746697596824178891620681415581553164854224634656445369327246489768297681515856237782551383862967393825851693832868347984213218271073036980223340933098618022312403315357946497844381725588086678978294371706301962996501039203393953216008363598488879743579116194786443231641175734702415875144150300983672595977944487931109629774268986658876808383783181535118668329787103513553057581806742693279996261508190916885352985456242185842654349141031463244799377899448246655153486659308378144594673503230026000384840622798185537687168351000407475266665221703305392007972657614957112659634549651753279367522422080921138008276297678520097489908161488213250928056001499079599818734177335831074710974269368996938540983292249027414891300222926907383458210659743599351487738255576231537080443563432129083228116965404883424095082511978329456815495042369545901640490901965223017497983750527083742779978909679015116958538163397862973200617844075120368285998241458606461539729623538058651681440120285356487157257481521016156597488059037588339466611325655872212080185705081401435848846683574641103040944766133200912403453171197625951170895565234419889744459101516073875213673176496131251244225444881218556136766278978078903077541723471656171827494733500205203653040475962153030436174526971763355019488599681260314771926188296386725722876873021112864396668696917948943266261684723610346633318734807491645180748749754466552408406533654396073896494718303605192097585538547184642808290714073978987703303098654811380650572167371741483160287166115224648671622773123284532040488955840134089050338384352383022352216976986407047824808207168185041501158934563985349581764849770984340860090663514554130864199646001512082092591807088179329394157553433878808167351902606291408128117131878846779011535763394992114903988200144598544223455461463657975868263782242690216772842122767608795283555652476133133077936320713779083799643750305346347201245276177962801831761447829224998941869060611429608075447787300310723708801309316411704214268271529738715431899278802447405654850513778805281795506969450943081342765715474189945547038138819231298801626618226849539669035774447135351981754985153349319389061681460852681371691306760300235439404589879726768004715799752254983499027817524472238478146536442517535284136648628251386297293262312451150303746891957459996242863689766056293136188483587791873685802314134351319186196392889774998289120913835992071123738544228444558981091996429029909636380364622734664925273606270877968022973244785984363194997981992640837942112414888716297600000483449622667319894644736774092655883084029561553607003936105679823843533364840935296651107820231653244137107797199465173496849742253534228605575295468305392806130117180760154622585258204009773497803656162060840699729397976560595211738190334757166128396805755623398209294651821103323556016884773705451607744766380019727375431318069276493858454850943371868927755859716335849263449998419037724271047156428061182009754776146087557003081885163822106937772540572427301619269106814340668472096491558687982320201758279373475387432701880973811173651906067187617879102595899160557265159837662764507700134328991451738060567299263201946622552817935359257144030102229714698917412936100885341234597485845949236915034668540955017827266076297758720275679079878561351229685941743776831629173920528406195415705472433082797404878213566816310340535879694749407168387661171657243354248208811113527422659042495188313617355100392674959641230188297748570143567414924469823609724351947962348298951471700860594203149109243008690348485472381781849664861614617602978845122150159468745138375791674541727049919961273650874705334834347757747449974001200250073781546594257065545479349521697302998134921903629228829433780391315972128478019686644890814324142380241026929974426793848958891352529229991864000313584510787349865372370796319791259583949239015486357463665440428845645215355464263767289116394137088304152360361741057755322007620823231943563033720510378685998353370175402712698300924470203967508898358219630260950015307433642808776760709120648179590572408313554384766382642288881841550318633851520919782020986830630642970907253755450059005805833299821791069655611145568243819742200696016491736066267727408264783422787787470432387198259287350446528104247120846208078038172948047481841929052910906566530184220698211016206738908375090298139215744332983564950319608829225792862217572665028387440209353847227704362891485581754799522558011707496878836537679321165827625161906029721681928977595770837016837829796310066093695613047399574849188018087783310242572117344210832016553021581515363850047119670713638675274002802784517561277114717317227562377159304214394196543259230580314771957316435727225910706398705107334709666455123154892525395299551618913151270935053106565222870146259399344057684073640593478553869976937323060076519231446855147003197465480985938228924297327266385811040641744964340928983649270685817227931578447524987023540921411692765934968790611073187730204678354538896382083012395309336611981455978853265455393489862630472164470679774115883921435772287543218789645947088737639937569409503645159604214689634325380547002957599414521439948713808412282306914045369922159104056218510602527659901985900634828429571829713026579863467121295391944777900243974476677407165516904790876211746421021797917503548393616650006442382292843507290125849594039632026119741583254848093137911627765597153436198227273269514718220078694108224509590179423478238052055913326914777427560817659601493672041919592843633504569683309924149708008203073871809553546447250549976869860483040332145042317862294622997122814106438901155780562247168175873237863527391496271189261283347373245164236917408466886930389812159375363005104697427282767943455162208596126239632824805297581301842327593801604210932434024745704320631712767405348313548740916681713886659965393623587733426760701256293191176773328239701917777530148720044243609839895750849285020972371255562747323985374250711854883463886586591844679266809533360878425558177284921672025851404287481435317092627907742099672356625555795282102494473264729589437756915688406045422463716841240894009226856657717408439863308215991951898863108705156946837864657315366826446891364294216825448396548353775259948684713296632774272941283202927984050560607367656091204666734852923738409731413065885424208800721612217983170193958315929053750946899957227316216821339037775288993431840374956327737933763710266291684978981028872110833281867199399149389058096658459540968770548106748101097935834471995765481330625424143562371033253144610015236486677059862763753798146803468374585046695598344869536150588213902916849637714812073145724041150911086548031930966462473796162965850883997006919888794394624149677306769292560787138241501649820169427772838151307299433832759833614411082581846753383782795617522965646502983983497890829923627312233490102026375395748678658034845642811765673372988359966068572438370599775227214164133250338527646800473953836936385782920861743973801927794902308157198329309837014177335108028206030649192956992454043377078327027858994721401841777025577348476350322787227522105346454025394091774961445928633973806568233132871960135183831050323310748467173669625775732827309759942962621997344124806209488772514408309556607845322393241558773248088022002392040848893058955942119823500514107710010883429166151381915233891212522187696603942977412703607611263842878560784778785697971857691238645738727480899964070478360606267529057850917213363490500380325312967239570517764358583343347575115987213850055945118882215743676772455319645620932533326557469987226343744977609646076160021102912656172858070111575918174993459953886136626548375933540632118061144090733181541994267259077206090668800349321538585547248300587037420689026707672415256783774981832459140017773238271618007964414967854939491617812815464760267147503548491457800189405787705887454983812694477254670410690556336438991851050383115884966009579599262181582642928738345797581618097088953510589580689615679730052582723995999416620569505826147897538545208645758090623963792970031611290383509112991526206523704270002570088664835374906854740349059204207414473866941141510067776480423705285992015431588013585849999177449355043711219626078238741111590074026525122365614826056412951828397613069159129153465009148831744265293245019318505003746427128340134850225900398369156005975606822962437744964963371523784987456114306137829626661438896630042154510743160469412086834034432586423174095213809311467706964405263432252162004659135502799856277679317288005330327180381356081817741674990390179816927470941275011136457958508061026785180196344578352111945053604553957480292164209774084628111925545490448797241069384224839913733653048837858125438051337037710344187224110478877021036042830925425654259721530979821498117721021070259691423607721915526583638844241436119182586171029827931172051490099700926575559471752286560919257689616962773720886078827890118761519321443284309559880725436792532512073899436183083432962475232550832585489258310314593176856889476008780920623345784932628220615103793897347243655855916526759078031574920078292954379670230246518567144200299656904239737260367632913128048697578197412094952730463188601290260480936164768856887570218833399365870583559961444059199465505023614912932737116625898795002329046399283248936243438885638089491740940951322971895077077976920592606771205978590667624457142570680648435231984264404521648293195948248170849104066272755676840810968705571748636843199731117390795301885286811696459305960042902356000218214341683492093464690114310193135227402675189686319169778286161589625607767054954748182414019266898425676721173971003276935016270719437318335483058208689578023979688878351017398010332385375793844519652880647623190206264319356562195839596178566442158148904504257152653861715888657634098180862642515425002739918626440730449667902610924212732687764168697168276649856409543863432743952766150518071782085415250428600008044691308413917199836914321792002464958391159031900411857039277697871132971598825767845809725864408811585289107821995149290562823765949834255002919452654611044223454395488480756139008854084676651328163647824265826221308430181137607574920230658768063109933582505684180263208151665313565828377001737578274800941262727863028210276342697373746678214154440345103415295259775694534797896125801611599308080823146494746145646180671328109890672868957297804579155005298638015667891738743948219778512118767337606764069025464345662534848176657425600657237129338318355456456777381620929309093233161058464034287273231379209639456151285472253575912059253807965064008068950207183611093475877660405411930690736565587984890201179565653297681923556617643689792678044066073622554479621285172570123563753595302150796841805111659097348323705374234781468908994228148352505159054736955018749834846399649830736837272935316672043961652080441115543780670190554190415859147452129211436151955278899051757775747205377563311313040809197120676515679268347366245651687020124031002147956303006923509325235137642574762457510283545306234604791546042470971491819390830734266253905037848549812919627120107474671805484279866640239952990198627912003236190103931630181846589098669450963687613601067231054831908159693861077357927006974381201670721301228615536519824401227937490041857276099122281557804588669896482820795276021533330463729992120098888857597329873966952796253444762798657355208155422741061503659691917797617896409392780976709497604211874759005007603274187978111115583196987954489894537821583808244736612252641771669561475723343657176767487940404177771215652598655996367265798708549798102858571393543288783596483069558848398035477860554206845840826527689716687637391525782382920460645296856717505539179719790533118419968152560166451412310570875414105142439774071807847366713593729389206040467696712474774200248121246445236330660977826970192682265022343425512916578150214015913251284960969909365927429784684007203016120318660830554883447980580457229983364571706976250841814147437357620686667418539272385069735403752251435852051154655231822477093645580048824364846174626223414274816346557119784433053387729431394265258895970442683683011148371545550393172100742207371089015338917682971480267544010919245292263494642519746499036490514288229280817491284805890195573560105781468928338971009719445122816063001845935985791289479786167163529464693704695949465904178733370908872673412954831181399841793175026387587213668531941714920996464848553396753814004981030290233535649255258763280584793304395297542430196021220079804457413597270267527234311754703657475244937890391010442212957479587751134289449134013916271644859517482889714685105512049278298711248093504635827470988965019054046810621983887118269420430026825068076945027564442043686606541643486012846719030660704399981579364083759400260880610392456221133696480630838104036887315942503356674489203826172453140564531426016659557316821063773541860604921585761067087758125469126116858128024539025158734374454269509145254421039950626950823192657520737321585132190062076894855828078734034037550539051941762336724554049310116238434753654688212919662421721740416390949701344032492978953092116126723211118291677065903843022892514209405619132242679894587275757108155559862250791621165662126399900535363269727276460991275751963702717604549569562571290622952594221585554248669813702101044192954387880424542146146473792677425839527932492533910316865644483556587334605748135354630187430914511867544915475536347998496634073038363405250527351392889773930989694869395200357739069049839364796654815360634717178093956623347297539215518188108355761333879866542513498140886823993229909766816203045487789167387080714611069658785320915354115310664191571864865075770281666118990847019684699688891995973516580810372604168288340750528859832478477618496111428929750360531624584249568734630395976223954147536233984267599322548090689820244071166428887988229133689892050626895777304685567306001229156958715067564336357135421937472026165490202200824847672872457506283110068684852939669606653121260952159937959169023494381882362600395788111049594341263191509797955107549806056382263565573514891555930164724005523555529401624815205861796624060391562393629367271142369849398263193735034415289141940518096289610623259269840427587960683072418818053206539913765607923820366574343376106329581417313004134468223589569679783079797922985886538906825183739522031297425962877864122527971964239658685713547736385889489451613968050822513721949336351257979396465119214263550516927135206010501132603712264840643094757720407476076516108027253352556802249551283322374454997972151640305436926370388194351218267555155559240872406633720289675823684943966338394167146090863691057421385224753428769620016373243266585823559157231855253074694324035883020181534650479112558413660947237881168919982417827131585296776007825984181731455400917629212693840478307845995637100212418160155847384779192029482377152849305541020243272036822111169523908590643826534198430995968780227250816468414778569706978034652490016505418553116608608581967381679971051716943009788700548625510794360915458805892992586114143108228764731882447883509770325981860770438023707043682433366521606761832797915977532264823801875479501730678677598661526952630583421010989614175506016412956214840167851736697058845050222247064717501021684113470825835568570770860554140589025348939676977416545764798775216431830789556412913420705149878513172073604379765868487628129332884762330587731357515356158687822853961281804648399680845049051134899244814463205458103209446936582918407298392653616280847058041066358472005758023528836869544908736754901312200095793911751800254038748285123016842006042570239543648002944990493766992585842820162817437477427393023903893737997568811062613705947115754379616049404822455344849354997565119771411802573259787038548082448600226792542832824457338181406040624998719663565182783633412749882491940195268578523667753893453758336884575713043049697924937009686573428926842668477843476485093984383541728833357878870971429329458934074719800377719857463075274121228589759369475904226369350343285747180128284117627517124657006277147847412411575502486784168209386372705416028698673318535173217767840406288999716148086434097449009420337911106906228460866566181351669504368113571672810617427574668643312712728895869443778308862781461125910009350234224766598019690623970782541508683419629681017765974191001613809459130094249619631519825404469461666771787603032623976121856919674492172889110743985314388028295387227037671981995226258119574781078131350268108233291196986992860276814839597308411671595621152874597335803318616260630888240098310835009034855110963488624488332337452599136508673481173594536471123829684186626576178608732051959623037164670814835841097574796814130654767970137387955237918637659803790516293121874500402803338034578488139943597559454458032690125339385890418314437550114548129879438748050407644066916986603555326523614018699679789155218100589063103922025484945649227678360258650946892251467329076542057122243123782452770188992309301086233228197386302973904438451856894190984750152298124236765659318099724038473161036042372224427095902947903149417151888751270521684260700633214091909305689787824114127377445410272339548991282839627739069050264558523390967730194461095951537884121066503960550572623202013432127987888169807723312375517588171503455028073973613033750791865786464732230980557728649116866967455945606733881662458202713354047780680537692458272443378587665084352817138609601227116861196896734147408470309382463327925245297525847654943952815920503870996453333909200712422438382979853152251169968471262808399313584698474077081729828088029037518468941312101232456582906084037042033605292546419154423938645820528245427763583741698020163883371719563865203822595315140765543253899530888503957042334794304100727584180738306598798792402553460611646520488385751910120587667004051954336941983902917775113102663185070522130823149276802864469249720657294686479395664756287040522716204942875965247993034939558314988974277772476567230954342475222308271947749639568570983360052263837991166261429023535319658632866765218277767931342282683451977457314622801074085200672460631968896885773519430082706510067038720790182916535503111076875303635639728596505993873240259630914462248812781232697086741623087170134321114210494692147302789392140176562036402457326869544356885634652661143291023628469481989804641727501401699912089449751573439404830578572675968078914039102811559471192642277166397100631862398184725679631647581659830512388207874686857508755160514708636746486301208711065831441477546762988872770779298969054137556070320956246620635072274558992872468878304205225585299942237427134236726423872589847852244243210645360493298748854192234286263362561717865174206308095712999821798098149076651465295591083324730319141253750594594111706285729387562051776483438638134888926694185300265539627764011359663922685132963432890744275447484031976547328359425023658856420473512892484751253855758383282165183526979894181529627957929668084189094346609972941260033487018343063562914364451230936814839573660708756200441976781162402379510022430974850357701661083661797393658217074872164020280981490363238414468319266149802419255185798173601240720361944196780998562317149475887312017090033324026979775222364625459702126515303503505482098997278131970908968026141677750256486929346584693110352960079573396721156855826344300078325390605927256690973669818952441853572178746590818791432818536782860784233977854468085236188748925881470783269061114310000568449379169199568338848360011796099200594427850679354481018320371398861738075781511746438416367942792846784371534464243416519966237834213661840546940457075852017822234943770511077514345785074390714227701098172858107625590604415793068822555834468893589089603479658011216082341245582220071774763986451098563298400215590501247213823224117172752073291419823241894719460145041043973225720523810578780532279540582443051781964272921777716471711689333541960505218025932839050160887753611489094939383115252795734126333559997835998751061825627432778064457909024234792763861737314511187931484153382959155888298695269784768429841843264448259131713085482194422817542379673832495135119644949758288184360753849983680732855273794030689190452220893137065066470267050835564782122894993079278284891412448050850070145767106784487422666785299883859769230872010127248041988886539254836294842950331035992939581464660078220323822980531143347593752134650113804070148991497524043132576506145923901644123512714796299631570808745604849950780338483784142888293295803499442597467927554117971106336453299593677834091921073991912375338183847839034157509302412137104616510216436191632381188022150921180702870913470482145718205722776099333438753935523510930133852712856590143259524638812584055237450876035558175557724292884906116264798209567876951774373563626106411942058423797805370999407607988331820026956304137653582094453759006660318437901896646899429351627767185937062308473619861435225130899459742215902828989613836195286816174704459161889660958088803030474983507038040004273988694806518229436922884245140930196476113407438059255570533299646913089657760264693189327343047534554168644892511724981183133946329567742199860926831443178483543280772267325218584335578946177505457717050863246120297229572675448895510083124655623536952851716671463381751971137505845459129220777438123061691883591209996135499672333062575327455227949561559471207583862922032066663402290699134884208951708397978519052902510557957364443524340343922795004255304612121165690177689394943507848090392423818945345738781854110048660420263747467685832720921159824198267817863260689211022877911741645665122668593659649912566483721733527224723969398737003206085749139710581187511733026927032439744849131437926311153817909859647478369316041725602178146729616144115380672858048515920705586681794844142950344105063865694905566496692306604621338560507186010483375003539526851385059161017664955408342820390298145283299680696237460618550131682096587571920597129316029269611562312340183117580723078243694511085463171314438472090085630830072449581893813321577026794366993999136250646245565048361253891502004881121328859115566423476236165794602154699281336955310896467668504216788124039356884377777399495537642914334082223637057965465778389557852748255580687586071748561649862256586480394653612122135111884672989286610429846981810400713331882936188107130492349145434938109215420803581537349649221215891525828478236708750310019978726943415675995193472739409284029000730859418561867373849371749465153145737816895211318307650230698932931119728841407616171567091320183025593164738772095695940581397741703350130168286179704408648013874938496239172928635900542554379034022114963340909785207350501167670131553020285044156620376778905275426407442018846189308453344016440768381346182823021450633429296328984124333447825439081894039746251067527482977724119919531254728332127776752370201686671429539686134854536555489362877264167412813413523806544806373648781358578687158352185098158968334784488621721361038625915030551671747243528142753958765882472831200452893244262077210979382303604965782747270493851315583704028693576140058948704950206691982013004599715635890817218200668290365193950071958805559753179971380148584238803859697132043729186309874655703171329691593649346305261033768236443517355639492646088549342500857627646175523185835714051125001737974645715222698841058476548642174662405308874196467619096517955908716893193757662805057306649480011089735485755600726533580773947677059950387679565143126464814294443796343969604303235304617415653559776022854148172525221120580187878512031322614319881775480097493673159465660043754173590019828589738395086927378352679435812196233100639504524342054404666096009046192780572481158367882269629158871040747520983100120978801743590409266942924862039418721286986549581536110509989541749822086858573468211443033993937106639281555665182653312042983292950568710980221869666465823986541847805198710933223368778650429311781997548198702297522248474676462241945622321346742812859114087146453583115646983358218087624603996330690940013625875791370491944025243218135973147522783759711905557644698512503317830039366083593090521184181364988067590332543448462269119906868662529332753786046353097070288000486313213540191053552339825758263273685947835240001908644549007565884772515973285937643408936543913612325923433965789447885298837248870336646522745192806196330480925219244216854667814676097112022922256826798800729951964116688209918361746305892670757256692092413807038763438213784432474504724432325890670089078012696789076560944187501546783799174335143830413402521591602328602603967457429711350164784353073597970261607642142783290478038807288371814171200226390753434081174649192995984806711865620505596079819840928467607072707260101192185759105023031516444591102246244095638567108554198159432305152311415638425031219767361149705635796548553480745156368308466191063055481912121485744841260814133787719962415668460678294008914248620691969922719863363433397949776942654461341470293624005592688017113244214664066693601335601782197815432100331286837820099681364987545641891998105907986700056494911312639726504661889592166355535344766975524898140930816624715802334299639406952514872898454213037604464185876240700875459962899452174105476539856615948362832253043028956993959539007906721393689399039366859692784168331685015926961193514422057656029369581058645775948946320360187849213174760081964862106753146642195033390300249791138566509866224855534052522965474024888284404580069370908307102382875114026481021106132291481061123273515340280618367510042838275254457631430454912791473139762172302280337382382379035834677550236404095606546753052469436030886538471515154186608787545404134678308955377638321505639461081372470210105179110955636439944297181550016272668462181759873279009056844370001375807750492698011268557442848598049893219117719956255127911306613907903329762351988928990046786034285139692933337507308964305641843108109824039223161406374369729274598628771146683877383766650889820965975432394840327816226788614503424593583836679479095825964293446869992614457972921242634972181974450922489327014878554457595845266975783056911259613124640490364561863496742898517754965884011679437764994009642595095188269970368124523671901857791590529382660637639009862356201441502212028551685860369137633537426645639104470155026761381820192263322685010581708448330237335786255306202616935453041587816049571188389757217341174566656050230302297762162159467621056851437568404804737158014105171617216511658018094059693795850493733266342206895380326645671181989427870544974018997168518775426275597146599641814870426259386068688303867623641047976772894285932997196659831425689740962362893514528402298146212943344341651258276493926797490428125715504470762739378594649795251468935182579067021749126717646886564951878471622659834825509835399800410316336344354670827759274601668727262939396585483987030731238300129510117556763957207525066697953703488168609859231562280068386046116461409824602216308116133602818120943981253853583424047613788288799918632410339681164623566052376234235923845639483949499252813260693215185722872954564603257826020515679899116747766490765870967656055564911443870974218731911420869155628580820308092062440649000380456949695800063352697501610834269030794423566927043568841049658831909241210724595266060830755470456487402170845595372943448004954034070317640971834374469321373834942484817369902892549545279705865485403364440027406239164032006065973258815612286146499816368947625440949822242533095877415475601242049489691255825206513367355064401280574170700961306737885003568251479884162272365209536023643377463964740404413333587680989499698936809310548341828052564836337495735810583133543526943264116830579176795548585749417755163364699783455850938373236890769229338183106594300484577175308920620373573768714601584224661793955571739334086746707720473753151035183948750714652803302164313227705187036150517529722741502517578030598161953880233220406068934078891937521360821985923085786552694483705301333530710767514776835518070315464653475638832306118260628951559471675800218560046434364909132326304196654016330834589698349642748683676994028662242360470905393588674029639540086540943579768951624544723586904542481196621325006999921280489396358078831948313748424980183980521408543681341931686017746983273800155364517163892087473274079723648050325185646107171831864925897993425973781074605073283163198280699895080358827266534134826255077707441890654269643789669676126496782647904220123966819379431246143569270811071128883992472125557128044709270850137321637828762567639646276102282572187656483300673283819658450441974288994486467539294870737749267548618478407948789465485466078974378566601355646053746670203530297324963604938614293351073011476315179531017929920780137510608553327265283639812056162802823706855942111321141269498407014747401363045994161015828747375032709156710816344921708240656701051793814499132281224607245167001853342112350541008355030842773166289415344893927385003910549602676046364019343759278979071874200854127660366730370923259428878249381208835267600545595413713263907793904174333400673208853462143580774252532872907557192851747952328867407751195427554519418688188001403727730898521702317963841998977150716878357984049752026673660697857976861214990865814378077099199162897854329354701586542984031371902256196333000307662202376684203852805021070717986416539213153633978314405241617618349314762643845521779358647115317321617717553848500680400894333824296537938629961645723642780973582124559101341267581305930270035093720817715599860331188930971648722465681209796184002121293656976589922590077539175378449451455491053920692414190492927991138972548050606280394033977730279987105076936050260573256362822523024114851912878899558621903833802814348730780927744710035520565889231826781870835794753821333400913382371537756954402450760156178620694342533358334110015382537857599174629844213466326178804388164653687256973417021544522631790401793969292835205930581046966207378224558290671871925576577536229453986142546607878971401474555545482312698866679027503999933290323307304093066194610733473635238558437126740033278883880116383883484367588864180562506159157240361120294826281773819565727349899384647307887144346126940807061003262943800300395031898361944197508780100461848720014770343839398653168299764007636616477695190521904566479283147210770980157308936590232710274317656484022400379726762226383454314539272603460793204045313440529620034010438768629901432778321081305633528934237709638014176587307154389331381282940568190217789293185919507876849593620038537968878833970732059936012859671849891167179010516168459829685532797108407174368277715270383185255184437729962779150529907671302222386946422047144759180173202436749688820137553891011720295858656922112811858937159438139251881477688049805915302135908877233487312386571801778662042921950380081522094502262212156133559263412092916968901280956284871211731139305429332452240917185213131599527577941396449732585695810666918365341320303200181451410884183217037631757559414696301105987706312248490207478926742391687609245443476885973523055967064650694787081245454140747945300310684431413255289521331256009699118382539693986689058512584585637795860406248373486334011261584331813704977355356983292230327060593986628774195367079107699813263194296143206299760616386938756182484645552045181894667395779780906909370050408526972708643513920897083038330462867601816314559989486406603939225728199720406255081532608397120707847832805339828761947455004813002016757233365097333005067274587871807888989756782186561840799784292626098718461155447735384139878085374068990978004564587492843420543286696623429445639730375095839137181290123616342411490833447576833834379866796553941826238051266521151373553992147350135450938250713807500876852934508684944710558101514498422600001949203623419456097052059031204588034454763541765380506812179907017295677456243228252609152118972842067414736228466936160578409927053382845772892343554297870063216382597178084602073166818902584382367633442297003596376384992910682934508614739522987432854413652042510899318963971455972544038295716504131859871029058476446412756393225873511211650832877401786724243367159915567900285726337613764547805888347501751215179176652924380323788330375852065693271566757633141610352242084661131991306242088671117792780292016105438172683436615959166392725915176220549183547310134563925814782056420256863459189763051490543909207317555259704323860550040599968147125609758032152243690728508966345448454038501499092973638820599754543309846567220533425467544303028569693356076665317178928658702841865484343003994239880186821829432953203123044064589611140395060787142190423875656221146441461518866578600264788420895142154741928110968039810974339107173292708489099292361091799735637371240197774623020322519655079315509393081124770393832892994021134323915165674386313982694300206194309555122600477605608905569903947982464299239070072653515038802170144069814035617353619798080771506019199952873071993441057624883132230831446731196879914599469091728873073307515592670317605885253774533257016268085340525347546832119227481181246332615987202378989985939414079954137906796659679154936905394867487700982669115208092268787268131845713965010999383861855447957519095430039506979308611402223587401546640095145791722976474342199519278960126630377963197803055995267191878535136459612236227964650391886046519228875256812610422295811899935947870794361464650414524169226729151455045195164904947339996731185498391212147155020764725189341152418037178292054577617975801437153384795786935101499055307046605623522805084427017209192186818265959491301387605167199479998600716528020902262802098043197388434365518707325041913460967706262379414418882710580326366676544613133139365160813710612208153160599851028018540729773196016494022022815599531275470031368687521813912611230739789535342775444220090503321597061110471718453753286255999053566237777983140648717894624550794032832181378468473549910892077464019899550488591020420074846476585329797209295458733333202015777670269349101879481771113650179213066573907457871777710472091018584112768576097399679095647365279378502906699903586476424685260693659607890440174808181324136179512006684584606585441941789532918557687500843707448808665214171123168524864863558088609156015482977900544165654772849487254594369557669166765926911270156335705880380154206289018647486405601671752082105135920021529220251307977928267052003680246784694825036804456393109507776369616074708052071104398520226928752252204834051280725078523236357273631985172628284266212942493683886891232057040746888630755113133870905709645652862092624061179757284161330631726290891455264961002269428098130273891759047969619948032547694375568682653277187920602861488778741470927679021662950499346477075919240512144990377167329360128091743212968082171096163177484579552289576904586034013282664929282699003672321567564243160149100319218617805810443805736817458737080903736176335438785136542905394476583354910812810975892901047965570551319200574464942340059786116198373042617581086376224437750905199602704276711242612629308186219928318000428729199785062460784770827862321566500917627573694978231485728922814442048119913229079299296274572955820644303595505061169581320568933202495211785649398998382216355199896440466430858652171507611068628562973876724688357137359160853814774501205676233084297765256314573910308295113903514039995825148927254580166625438267243095735568128129722267115020344951344039761295675787672685402074513495972844341427210320688828222819222147434807114650884508837661665704192341463949943885822433559971810038927211077419461185302744243893214134054784559288225702083305278330234289403192278635630375530137879937453604362163077302738671755209361300734180845484974554698812042058857710809762504930373347854714848440131374350689260883022720149591726827021138367744984480923901226178791886446017250059424644575921131803794191235633426825013833470012170236379024269116703726207122359052054267221767446463109393670316668889525343720145513430041328367093785680603030372647157223402804368893657559567798573245457145399361985536767149451423366823783015759095904995670566983859288333253081375100426459965348554043738858141834341358892631062724671866616233830771851816891784979877566181842831847680025310081185615572445783834731066349819560628465898029840010118515000410053014796509925461323948023390046269712727327120961134746158691550284915202871276612096592468091643794412514177235356856017998129539409079301841582457800355847760501565792492554718297759938923366659531498411701838574856531899456824572791927818082947183513999440563379986254682445975468351184110432390514990580239084795969467677137993921644547828669331629389711998142294108313988677458403040721914431443040171198104572798304230171350716003770937477569087903854961251333520799543074611626390110732336506980022445683155697569760366327571886135589313775872504151189629881334299119811116419915410416814636018751835647085578367844286003951946185631337703739151160299654950207199733419481903078827521956391989304826739286240028021755903624741512808283583746484351927130494611591980882944896185531713920960734549391138754554345460269246992133193388637998328251415841531854743420726567814948326066474016523052718519339749545373437825793895883393528763452755237770334887384601689105271112966113714554982660285112909370241002264984878229170790427455927541083501229859947750231040173640026181078861208310226790908226311196732387565376920223409299545902267402725014198518255508741448305215917582333527201954958974912160465360962615144557778638553147724364243922970210394334437775831850256387554072754866799590566399137822974621771494297234441706183112944388598272712413994449340040478767013388468861089770104972255729674635393153312885738862049696405802408692071682431707195471782977955234624606093161829834455336418100149296477822385522956869952708222350967494078122605612698107801246107958460800076174841281463072790542346479201170196493703281398843485273156224828294802195927632122386790319359090680828881367430934983723785672681331696601051103118279839802881324871797068944859905465323472379957571271057715017216991169491184747070855707407318374358644583548946475621272244041441361872003380148337334986960278906140340375661401444702728036133752393459392832094693430497453783263279626583841775492066443970803806344398001392315046003031596360510365024096256451278821711047722970304919301723647329823939035399886231889643607927775364035045292945057942469176276124327862120300306312185031869543720428664394982419571075196798625574985848159158790103797246897546553116701219058939544201782641467568812438184145442821510500066711720928583652783249162526766219954465225408269936610393245958841568169265891124853780439894038191686324567890592583465971025123203294235454075641677725445293040975968444183979747723007284950464822245824135040047407959069347009307053427343739914542232708776049700830556698197360322560270200413368398433614272873701924082588685987222087139429722327071031110925034699948710692494601736791077655368218957557625614851888495960797042076917944659448665970097773565965276088372516095981202903111082577466145441497058901292205363721545555420511385384757039300108343881085374033479326912180358021524626747242268561176515755364065622101128239261523077817714364512550687294879777178835222898699196421784471551355754053062916890353812359406419770267420326149144644703745342053930570782830365044343805428125837382525587030000585219057790643772547819910463222551337194437164310032949836795629202052177495733246991274571835857589686773653024329063036428039476968027471665500091918675718739262025245721885577941517969736158416690053091546243119964014359070276960296888119055397701809867753440729880534018160332845476455630400799969670455745199703868821592098516132712304841447714144357116445377938130542209082097994131260673220171263784311017043052111168862486414468847864082208303028151261956640922077567267261099269642781390219204382600177750244698664249362643314042040526013756317824999309250773205047375730065373781241650003179658736802738700456441015990153671336572981877299697095745533882282911863972827728138426946435659860639170804741004564257664331309139098658480451072584490379839936746546307449511366462322210369613817287512982783486995990149736081009495244438462475094265594105915063859917784567995172330896236310277657693573517725429310486845302529848558473481873095983131168427918726248797054641790707212896822475048823475602694889725256799326852822210994284862250436142991644980265885876331717125154469886949902034554833306813030120301623285056413550966592070295537202518765206031897210585537538379854795137673750660337249012445932351711183830040715017810535674601422006440437156088053553196104860120797146252208427147863506448021953332171852099039295291965009145785962383063711033293025413052514972361370039134681744317354750944136833470637998101454633302049211364381668158772600001026563573024658039090281664485985393566929854061555609007940530906758201300633061920560032797386577439995208275192881963066464155010927676700943517215574027921690969127001875409482146844461098641674696507883285125878448640083499125115061034519494696856761241151439544463272033659360519094984586650273268875612620653636463684199053537341196039584874179944783811993713486035864464227498092284943237404051298112226695597342561413758665331805210313057098976958507657983173300736000624412149515709165816504420234252177956330223180018377494265743729167211062477424708823214338110615499538562706536485301635561774472187252373624052259105612937432290549521242903888152312684160702948598149943010452758433182781509974062950078432431608931139127724430530289004442747036676833037553572444213066927621750797947843266233283625025082397259383631658834032942949295043495528205535550188964701780161278707373150781560263144467740195073230060533804240007465761346402645789377413745665456506015561514085723686697289224305077824853228843564378173088630564163110461789465645180613537418795505771727036485142476914216289192491544966712359114974970825454321812377056507573316092659007794563870008292798646004785049843484940966367640486078877849019819654520241667945668457115193333681744228849185271968293946432754439901445347300431503719848429843944333187346953526703336280038569011071151354850613860207686474271251544572803725167229364932798214370828113509004391039183080341020986727006029424955877666955794990278728588230604389784584134519489841690360053792822243753077300961693184504618848583753903138993705284503806063194834447930425908713498553231943101271477477905621312377348733200025714332245571347681657694620094141988947650198125850384945588692124918971968645211802464546393365080222351858858974088964845835369092156730738090923684611923075443916457627124872438229192496381791158943976725854602364761249604271336858964607910433294583996574074125508065235310070125837229232863954331949152055777569683518610958611002157035757204832044872278184468228283679844459609688821898626298567976315065913022565216877485819857137319768199543959487427901063071055441116252442421750150837055316559307161964893735707560962418784558685122199639598263391727969951203217847087755705686502193615931170572036447108255653625620732735295738660540469372277775198581348794135816468888020522784356798347837483238039874985622113189673983899741578249329032459392047967557209028503966379171138128957105795127595345522255554939824872788257597106998334038597405684974773864122340336167518184260423071535207056840093692677365243124468481616576024153231781755260759586740324840599893162311553047721995323873079493912068304785794042939169834594418578075338249527053221891649111827160564986608497017128609332510912079975465427720956736400146187089791750993754684396510822944120546457856372707639383266343933544279782159994168064023576113938741174812892389419928074926007648981098841502986003281435788171058532651050659346751406729225072199174553265691053012461553162943249188506488498336095447020444847062702477012832976738365348273405454787904518626809835927161295168981659896532937746396081431995534847024565479868658699127541428811359046285824144662765738330372817463022784702734296429972149032969859563042790831857664346921737736359543863347621783962863413766940940027716897974046121850822126192652805201684152739312705838582116642425912685049309681247986976169103066685846321302389036864007618727684986341562700766550146642887175993111506424769585082673525896726367308608532619091925192389477902314404597317321582362739214485297329663802885707775242396046834951065498588971531001857801287575823673314048958450642704349846247307559309075359656328936371428268593595160757277718594066730611096205822941607120448911153754537407024217294224781335162783164287071388141754255292288530404133023873906392616389619574071845884352388273977229519929283148625636682370533916818488487525936258561299557490845646283866533087447432475662414843219564484579924855642644693809215549961013307322093715888276970938625953218910334600944323166117143197476898495973855584052813851731218037908183742271260558343256699132626722653071640091277524177643434102967886814367586613600323182169071084623469292930692174373377949203714109698044831301654877402253728822133626681378339801766843121191967280848554041099911568883830201557283301337220192695106243124110878398760179927579894945409138184483287019959025377850956714248596268433690678063585951226749583183772744393234131988803425366331625698207627664136256670418903865310220188537721163732962102147654529362636545204251834777513587326243241852634628096017388603468189016817748452836428913214309442032491157445111852637876330847815054164626648841881082676329407597011954188358076454641445965825702346882377894252755486469522115183967023795349616015288101026082396686315497626756130977471169915032934530776735430903662389576374439630621409139709017913493899282959539266736205762177345801509793635953942541409701967713476711533693973452704223235274889725547454028854094002323634557998775156584391274874441166392001467325568820547588992265317127938502888408579159801309149547215790354965633835686881370207653106461642916158820354351126960022868744411418411359479208768407143451185339924012882802744327448557622099029458416716163737187854506812399148015902396576134271080331442700826949728845349486785815428296824679872624563546965095178368170696555867667834373948991398839036719126597295914110779014786390674113862249427901229040297964795718244603812362218777829945115364054114910237400713468767470824593827464504399285820092377714802333290476734696222938475744130703683021362413073228086632553266919490120903330548948665460195245559953358866408923452289471873983359761476282933012916581119525236680092576706234453772224975711094670587039715280402494873027877777859768811635984977383651289783742976223397857982580561221306188783112971286812105931322599927821636781600872980006796767768430925578498476903691458150802782385325037493789421366301751196749691578817219527840552996590997117058566174583759329037939724228870135536317969749651509785051323649681093780092848659692683381701145200264336289566882034989153472998467892345374148069053931771865247780822918466612267994290610969518863286680344575153989185607461721746553985333092070972276468068326522874951717386898436976026990132793850879085572591025858892227009176466003245302072819155515343256589823609851959011652463311729250571780771873765805086797281838212738107746739733746300970861076035649210564775228712187080552040990297151748343696331774238933416109925513310789706262908733987499652928392199656269616884565048515569036266915261710668574060865218803871386072348270029084422154707824921853343246864967174028790093357004820272822882560837113780741366405962430591534709137882016651237385838878458629612966183619604710889195610019932009398214616653806607729330984394649455548428797051475399862763720863897021568550869640017065553442704334269447539814848639196658363549590172006534113803865420728025470307562386404089608422963859475618769796044993593833213906688793895686157390009538528083991594302107784309612299301521436181902598936421349501277268987120557191422780770175665291498442919723860337875690116564466567738921546829660109955032081618421684715843476404686305493883770947688963958848944628391653348077007604102167698679862430943933791275081480713085779544002589350780916839152885898673279555009666672655762115432988962963363790066641068404003028965571833744027178111500730334508775243245893331864834184937226328492051453162790440985600757356307809862075102014958167236099770577143053083453313428796673406190285255889108827695996545305409713482672788389530023630934412651097671357212804368670763882580371817738301353001201688169831476259627402115170770812584100244664106235025945935482976344956370166683950807154177634225408199979226503046143518053893420814764234500817419075205414606315220494566248648821758490741260110626015830448587985742604518795897651886241995437035403563587497392617749957850100258158591442664941699189955398637645932091549207083756449336040099075475293503200430727712573811857298673606260723949959509448317178700739866673398938887367538251593357693111924151615623743402577974660155806051503991481287880049502911086162252438450181327766758038867794990236745787402045912384396729895899990750276145700218754796234963979116909106784778857345227915240735890846154899464197787744204042600737316410309339575987295287101045399253120979700674208849861589863791375735573735065035248411529104222781924809383436535751210714515768121165796207000041877789241933843692441724179157410844867584151028940779661360568905323481100502592461344381769741333405981569818434485057345063462040800833942786323168377650510540682538661263417063892939883554663011786223753232511933354684355686838406313124297034322111127195193636791822973651367372595211393550074664028077349870029631882503649737308537068809133166417950701555713084330472013558670613309037453976806216626614184138797661182175649546888707398983460975581467194241326730352217437013343156714919575690089003961825892453437992900183604153590190582657681631699582869031408042947528249972661780030428382306311206755922649951488438462143412281209138596063438250518092821226608416284546565297801827157422749284500255242149635493612281502913260305462533021357802116905228836120035904895039382436383048875626774754837243173211199013909393316926122725463917163556473898259999885295660496197340889070149326139069934642976881867014839649166605022760215067270419808554447224031674023100062154104503221206868247639439960313191236446163833917330150990115774227710538982917097931207272173136175790073166365191745336143268287863365213457542803134871275896914951516448289620701631677405056250916696547857803079317301069351360231695046883680088955377954850233133767582807596203164965929750345638264949516829610086567341591397223480375202794077097888601853502666584214290327480143730030029330220525447617316915244883063837538425695609859077174366083057451762157861301934457081982814450112796337994353798815429273396183666801894159956763440464909649281180578200043067755531178683975425586294181162130266954684856533156388460725114583858259419394194479371416607664859030011435774752126895113111316245253809992586273890182331898559318587049055993359394158445285756591374205609803647354128704879880970401481256886594084257118618979290613924098045789872383655565429797889408558024612412382088574401574506932876943041253951455718818576909026899359958631576124573601573615061528554845550648880054789755986938056086286607274935141066374474443832507851855643607367941701029010791217804046400423996211950319796597252220721686159639306652471016740920102250418163536464645365470275804100394060960845249963612784382923181756781428349320859074240121306588677915199152107158329136804767922929724070747017104020848292266854436471529507708921171879716295211552944740877192810691194277230877471486238798131107261196708892739455576534486107097925545177343413805785007978466337154008508218245505511494712332764688405058421746288939485078358973769726364229887037868103439357125776235337801878453614135486360255342898234734616016142419459247094023376705398175765914632854581576632711096317654672466682719220647401241377431915066981719968664186412433551804500377969855423307471712393637619758086586067250443865781185841974933420152416556197219407588059357994740177921799437573076678664173637694466910681966278950028797177175664975139763992504940539092527461959782665297011237708202073917137616795988454992628409964659832681631335455990053041614739660523641104736742515814171058053749303110097867289649808235758999850526012034838455150103753800422546410468714917060571466535614163318266295875798133837431533274245784737355263673361243279223600747419563948604806037800008067853001338140343736576436798842160250434013150873040479449900455161685169696043489067449920044455772547050386027655824649881012239401561200636191307282306970444636942084288323013748070181199915683199371386469984855351568374993087699106158475131190711115338460607562832761881854518626988937533077185698372649003074009955806837457532433822332506756695218202850038372705966071775612246879543026674700921066434404340747826257889080903636113473405885799391505843543447858836690351275046522170806878046791970435366031814463278252778877284668943412027085423882638560622830925013621417679013860278745690208658622164566564026255822976278611963866651143126788957157132022853374749106027528988354379688620501722408989534272700519879612573420113768447859676401719245249893130085380726808943154650541943937659179577931281209645678084083277471433230166692627753194911197282122082193653443751908810279073445663800240750542924005221962655497918302634407535589758773308571055936505222770608638621946359339335211174047335149785963571071384120852788068485570133483647594302545571861142192722157101805607507669649039063743119883728186015676635191917164616821127596040321792668227283416269267623791016978843495687498737175292172748667172155389182838903677385781960967450592389852894167387748478712485875933180174440452135213467469732273450906195870555046121252824578047796743834569977737228815185759478926901183551362978212442358556655129782482758017705818741039170535483248904704102415154182431450754537697361670742829525407113804101443975924415636319598854862912003650245131846840910814446039248076793185258474266231132993149481471012909063424761651771111127362210230669119785776607975913714673730982204130406703012477308672927887540983643614985528160321999373253152173342563082993886250250829905155341836238712255893811320104718630237475349356546598645585415333191349709874790390720454792245508028664651158972782569785532694026837326202171123361700767419350735230685359121107401014447686434684516316849421404181596755280372369837558901783088637547006320140207898279211178615771947581871140006655793145016261795599711393573753949684210501833227580247640729612988380992551718396848871298513340615344571803862252079666719172897049185945542435629479065829103685670427271765131460378164231239676246603715726870126750197912526638541884835624164500827275489660967296124488704366315751941535388983464222649203402942803069490976993312769990892979582552332592462513145460544102577293892687720024944776152619648598219995293315496187102795947987779309991986071916835626105823512827374168442525442049693920093676266889708324289341497685038327991993672707495405300392997855461224426726173651610719539489036224886594554514672546827685826956480480491365352044334208771124852175111923809876782669399446558941733165702905725065725578742069238951225789476728195037100091872085955231765467897648437507104112725261210615010072201121603764460558832386879952653663521587068434464441913067481536462058806864814031846331583119710270918932943172694701377914006516374263011689588056027087111516197365423688867217361180048363326226458278024670817336014131839285769777486958848602843072000536096658493744965579407095913158966682738707118833736074655283148749486884029545827971327912244661773332013782433887955705580120320176196486170499738412288870229779355656471407599184713445346267847911472771491275719495913787099430998095403801836212257528532653396834355304605307964682466446286350601215044526619771477621656805667446872335202919010882820830428714022857908481969674183714411869834253606764908679947164131422283674456712107858482917718189942921895033056157497682930299136028308654217377691967991990402107997599440854990679001071175497174615384247899152023788712275030581266237934334613857981636677987348623899202985961755160835913160709031188851368848908148114567522135428265327759716369856001481475094134192512206738085467763225560411621270002233709794854205221302030464281139272366130305277720365319089569263387322553257084907580452481764444170029138401205187819930033842738639304149621317032060844471663139269007282614054316032489288860311644362152278190364901132627486929077097491613526742552575760792596545158999902116486240417047681040148468078871347234343564675322155762714915428850051310573821844764492747083566051220749674895240601723085619698877667966111064872897604872270765777564718171446692940343709124833293048135105396761809199879742351631076423846620044436411589237607544286566141018510744482764168241031711393682888626759480219112946530526876856038272457112294686668266806342046341553975610718960258568017688510472623383119170494308999312966239607942358735728896187544373543383184372672692397682897832513232658754817560093225051331899242616693008815963254562862199146897349854095809121792820175070895111891158503008808944715056424029403597173000042279369318967696467936747744622955801253164371081098377870793010585624497018648349275622530411872032174809004672777703512643058470059809616298561892492263950999988819258550921396507613711746765306792640679772827090920749680542013304532077979514225835628817389039201000421231421068903267975264357082663348127582708079958225437931464326251879340170161410785373429164744292671216855546056021609562736616814007349782852499571069153336448872832594263801868683092808128392756581828152367438525770029435761721193436311145854716042670989655724807184322447597776092163304844976262780614193662434645313534892449688532284851847246190532217361560497665869574759106397915029360972003557636588834104312632756873720117802287147045652220198593166770291361733501575091363547904949529811085073456760438624528223391041766543038923900612927831740147249314817621629914639029876559402426892171605577979574793520891587980299559273336690544915902844770722975587529180004375220088440752411205223884703308127859525971682751787096801507582025124281683842720605317153148563844457313519416440282133756019136647266264362128784872447587596033604023065251112873104513273779242327909196008424178181839717172278900437063607550545150338542300827776867323834945369522880035705573195788068046094224922528026568826412450201132321596995822910764186086682599045524966497902278558677255508999545588847655036749105154580299967807436535602217998994638332692773815340880337228094293220638770321015563538886545493510433807581457475504441487337530787671261938988952785202726722072835354662981102747936463800582301521901306198406535937158780140567885712481803263064087217449395750258049299221398004140792279223190837634660535793684629032561058948715636920452426059598914283195926310086749533260795843807901473037624606203950018938203128228644001449262912173222001958704717025777583355260970350828771535010524611799460487911721445306243840863212829014084023072452395678735836702042977969375608973945944452803501993993717168995843571301025568842937891968910218228315149811495451398889801081865597569021305766215000289695284255925337213219093972015971450695666565030379967640825990666625166452079503271858097852652510120640941479570602124946804207433219018242880241636578148605579663105354989899858114049090399104880302642920006308291674143191726369155052523020401991538456800951969836308553973712689987609817063839763707057402789239875602160801888078956139406831130836828894327754699951409624487062156101249550560573942844426272588965000984423461011909660335149283860342757085958729681416435071859792638437330387775473132730930139381932893997244511405556079957254842671234608294582151334242180490910685210047977491789749474521016907932679129129670186282231861469703754540791342174749669113738417650130307155681915048648121303707958575872358978557256439345314396375714441823980367615942631097308321378840742763047064966587621249753481586255141054285175451133200924561501763958728867526964355129020170372743051941157020345642071311668623879685016612086439158689176894503929415254970055010684780638463142623756538471341664079341862461602704223073048268299237078816357974909211431915315421604368890836746937488903026224304837156510687790453166001908468791348514458010044785980484415129953366092158071668170425392184844302377700431327468965349094080476962497425133800760833404342481181302355854221678956188841003971437748716776705431972865349956307616677273828661660418724649365867234834033666234545109221489495527205555797799970004702766004755372626427278536695970186303329464335391864086377209568440037500624614588042865980789835312763504278051774327304469060627525220154641535345171321912087911063608124610811093236929602065949965540056627096869429137331424365933593732327834174448087227470296274049095943474829125201139147099782765484653307536768008862325940003153344048977525967672958260203687421958672264618563437432504402589885661605599352379085655478015632512071881009892131309903891711367012987336859296759186921518536552048076993293938654095692576351580768356520266435893830605813479829206283096866683545802726845678806155448264868202406964268358927739155762148519582534419660449649595752611895656932747446168317644955828037391901789010148026963071637388302646419662424165359839871435180141750102969125730360146817280212446306872075826173445410493780533099460594952208685892392272048927709893136774278536018776844890361369726962113469753486755702246949484505141157942362207017762821790870912945741959880083351507493776725676605552664270442598091005784006899110278569806019274241531044327022539862014340730425230399611634304227295377220041451127541571238432242956894989494598600511531713114999779722497901413536217520904639654149155640403499417263268259371262894676461976854172152389545150679255898408577145356431180084220009170151553042931386292191789153769301008607874049644064739477622382459068997388910174273858859535491715845243793457344948277367013381397042135156710679769901034332198926505929955159669098407165460906709256026288494147219922051825394093416831795596455570416550196331237251155903612402770266301193347692818545286119418334161597825979008771216879257998375174870764236647092543194778235064027520391726524852668052424214266526901152300830619985848023518127810572101352360293348038422550617023191395479686013941191680266559768848950375960983681195007763808188591884916232842947810293062171122442665747980589382745228789753019537868112357959375809989290330409137211426174063541535377423121966538829261549163843374219803832117992924930647138481069148608607645811118989642934656205441183984042911063473414266260121370692363609507550329352756548848150203250782002058700240697870078395172462251474420458109871949550267667826779303479937220182731745573776706151325648172942323713040121201362578009933677137259510087460576743248229064117098468885134763605535637960960851450051162859998044070098677905372074818535532606824563898747258090611297475156415733077086659590904641273023833319972094204306665274579669809025799497719031196158306388069185861674165578826957918708116010347345698577183335071617131124332444083916078943982681176591160591000446736313215242371097065117887150580862805101688092342089770291884663428178388405080347825012056429104361997926240422186132978517852887703388997979478812428384031164801716027628594519245806443728814938169671805899083010929145471126785967027373247691751008422856712320459960340371436178607768785789821540840622052770703055114867562762249661530183752190406274188906420149281406924144655561952522893185019147768468517020326662434492347193130417151704175736118597128690983195789336332774799350708637799067737421111148827335247723526784576703053913165326903862446047581404302378993206509188695282569115191063846598208146248311317799406601163212193787127756671771809850169902255553279895157496460893168026091913331990825702317827161167654843325307242379922350228146011143198836761928293287979512837157989410235180644449194277199458734456886167309059833449286610193762710386187754855701722722227304120678356759916409917722175591458665687788649972946405662651847053607070517196274206736269794362432061311605984629550016460929771965333884445664323877118845514096119359362548220490458832453108002868940675869802182738110162924514777940824468931740279595953236249200293091795659381111247066862987948002306560081460053066639543645602289288509257139255319451822616817600983045585698143095737110601533746538249551306947700415795432593754398454223101487558754734342133548853505194811043152038578904443593184729589964381009273263576487530419097903803398174328776083445950956523953045124240720277601675166124367034196405288180078419996190260246693641597776447387861301615600141167490908006077726715579726221835000853594237430981703067845311875274634092178483707660117606656043850470166018349528611645568893218333677162231228638813576792791869204838919338709481793850708479085138767814292481675337103826461090707472599514806119909296900087137159805099436000338368475429393695453296307400706141687123498060736892672199055587855811588524857763971960479109456527824000154351564048510144302080986820558799820343986517949602567591948305392347354688349965108843062172984502956031337344783085820273663201157884481214781686751614094348022409504162362239657380264545516323577891450811127644024374137387867374158474525673457763726437023639271804429806197394709954830325179633941005132820488873861619728284019246401675846058512658243443064426358743164343066467827651104023284913067490715769895623796341523046896336978227864946687319535368792203323256106234484012244002375951831995318326433860167010026201909198228089823330188075244230544891775124658944657564130300856738791815265015982214446993448312571460584427362835378651850179162251210389352505937934675112233135051183401896697055282618638135810859425499176510420341342771766308183192254284815830509262353890147864868762170698541541503278294439183660183132165271333372701370966537452339168800282900763424505299345996471354057558471093199575963826145115280582683696568266384461798193939629074955030701071401965141707699724208752286711766561015952661277149583214008520902430280481919689490558750325217805125888372008382403901660591169737374332810147937870633204734781024368215290631966388520438604711300226974399314804569625959416717526674123341418851872258106729549630453590881705291703377587089407868284779364636476550638896594487750663175716238915312582070144012119301152246548497025370922180340499811950801501706685702416286194915523408377706746666912566508291564652270321597348422669565611584178759041884857291676513372886181324364117096930231052828430737213830574018137711407634089962917414727248451717667094196977215148094686255698333805363958787196137149929526219933722457581171041463799669123522460204006456672257535465504645289065918474002018408571151317049885565945933511871729246524246877240356401986943814124255561718343583732833573337882796767955599795681176356187137955417418548448213849647295738935692576287915042487449627344394808590322937254279178157678813838613499862907760503069463582382336428589319179518449712706534635914460625685978722902043520687031497436107914917014338065573123543235099203912208627065670216282341951753850284170634383799375089063813016624541428159008438761554653560180147727965835346387362117851332175974345564776087102564165717335225065355789946327722481327319455016486044802995547130217034691524802779429499599667610527514779801337094581652406613252663295262134816994930904715788846919945853251710617747648033869289328143825589163465236868088151394426321513783272602353191290555104616209411492790810138268951584755406374049273082996618216449549743821315429091995885983981824125123669329055489881884714261874987301776502468028312303231273144276768982757928029738405139270647809941315974569673942832119219676258997893346361531851070585137887771629789207206138906098069635025843721077539251767465321819707439892696556274064634601262567845020497257163628157929897088163310346478123457840495824305920471210936474413425650563422109227101715518787388684934547608148356849833823741292641136116326536881917620589200337731854856445107746268453071799105096927183498400169562106323360271663510010834863046769399098510315646048057458623083470573514432163278725997928650441440524912908506575525872047940804471379546413273590382848781843912128164147053388038273690535361228865498924490377183294010855646614263215969040600675819049001382248894760869453689601998107605757439142159814027312916045261228203087311574859713599535679641763636833601018671659117910475990278056230554141167904005925348975869167211712169438926461618996023970237753522842862931020975964795947793167798332018414489033245350672569886723558088540046802303853969965268399485860131323260645922805450374436650094366659415168258152697904741634127679340605839739202277568956592685398373771767472689243189637675518356506650135655997030792424753282831112713027732953344034924798436115396540474254930512484251635751683360886391671914524334571816712442518033777895609214795767865915542164630057654064744899070626067884037447783602273888467615111258339254095695746945044493776280382543494350249131401871375469262007285537802619710982079473109662968907249546274962518033807168233974100782112434183547747555188028544941712957297127208841055259020454447626025663006506362451213397020967175517560500876656598770758505979898179841087989883896750765512350485593089954813541206102135097020039789230448898376299607055986617433251109013127513251676064473635989714079993239030683470492367844907119319750519011930778746566219329725085129187274089619628656146392530613956001802696479340358551322265374774759535265144040239214455404004292090656156243207505185342311394280875535246732239759865910952757539148458629604364050846952081501046536119975262076144338484891518988402516921385584828407469942107261068784040394367489931618858354599215480985469299059411534203161278394556203363694510636799081471698437178908132153443185220478029829073177894069671988917086173805508093343834148230229821193161508160547007386661800981603010165064933073999537688826019581504027553364621604091038108619422121586573152772704583756602252269521403907551932236522325232476013708978073728804711956328945025337021501774737270819356727658922898958281897315166135727196025202327287260429012911113379444352272569654509063965293612576634510357208899223045790367497910135809977425186311569987814796594418946306168945964300233644136465114037440510007322962071480693775732883331938645753245069218913587420996459693553189338438024335517807549626993847212846055323802766188247663791324577285907184557374246474917641367126505273323647159823095382469616551327113269558683753722955011059461244176840963550878965371485792310976573584940886816773885551721307719847370170085989186480003203949384535259875875670893660730227418417469064058820271354202955822190110865517062823638791579481087828823618926640913066324717655640632561649370028404183835811681084681578591806590565357355849478308127244330267430022026341540402369827571759269070944485708270804467917012828145301097160002249064868437674707828156352559758728900619552703912455759362602796206535918508382980784098006704701988034033574834138529052676501306035498654355871145414108464671592459858027892395812954643977511314976637510044892294525546307951386911311289311340951073485324560810853774614436343787878200567937988894738957259288062317706081262130928916948486988206964948526557275471480724874784144231479630904861437488087003539935257219597656009956612114591000608731683835062310635689723970666820069776890191602799155230715282800875250146188051877248648740901282425090678656948204239834016985884686360345855851518058463694867169639957808830679877552028834458146056785339206719283316007171467284553843910886332483008284241381195986541467984519614718497197120930274750502459275449638243400137937536947523470825597297122892832258291737400667260743494118484250913587287555032333698440736631728495938173606364369709132390307042792196123055985842677847048091270762789058453556206891360146876751467085074990536123619431299054541197445254964209405680321114745283540406157518325739549385745370142894428326190616644995344806975032454145813064062503519485371373958058747241893304697133360404013102746881493024483458380152374250659537923150709472436710746198261118278112561259053561102693289797931620230800588245689214825179254131418141149883333965789691744754362948463298104916471790160428860636598473729442630124000382885428324785466492162910639787424810876024476996024374006941666319322148042895645246678380558623305602001290574549846884646675133412305548702960465699783036723605507508346296876357473128584554162626212146178884184242771864253984974834275430547726623775778024783062403742462711256082977358682483691768686922244608085037057481649183036178134933640176843309323107473013796128311702784466184297518242978952755170310760792819256028200638542481687020691534902202398268299890878652061693839840611953251466704111196033338367692177287547491417719409829294650254251648311410336211572295879150481564516527009670572349762536224276819565496115673578809764830205561671428066100427238611976894638190260860588537137274238549098159923565630402193287406262322339083454158094368054281202838604772104352043014413012200098571309700362998780652657958162606797451192630475815503504488628725431703515096203872341808878629333813885187175170144056254021563671171536710265799912025034229107672374440537854643168206484558871651110701705269886103521425373971107537531339029568118464224066442521060200593885914366544779850778533815476631724349872743948056244403949436044532059763472228301231117303034109666388977495223003392771143886200440744608644028254018648599904875275268691125743387547483722795412269447201356586350619067000418862284624277126703404079772796982502324708004823172306787553328293239042469957350291028173418954710189011659254016857438036767577508770059249725232964320818294776411639459094210161184113001474738640453528342384396187934528747592296991271527915296135223847894998816639804499377322235690571926315784080389938083397764458601177573821957351981567014157432661864994342690856054056166791885116639966196011343890202018564554629618264998836588205194890383032254631886231052917626353083341082347634135825850281961450970299047553492889121003512639003445143218814521853228930669048256419262907065784072552802015919024812899404429922883702225104863388196396275515155339526341418482217064492929985029157108895101247030760376683411535072014183857674944686773393860966705397842303679485602561424198946341295954409839471395511492100687404799278656988786419296526728934175623374706344120505027786370858935530785142549200892283211532629598237670561435382887902970475448322745482594896446066181585016663057138232286781623120067738427533659398022784660976437808506235026762010372427118618447759956826232423018975634633755011422328642701833013874051911913409611825885230928561861599822444014419039041776960276758406924518348738492142135515400031541397188275144902725096480869908813213237574274013997859837014364079643590177629057307230010736438816431459692440233356659380846681308815137498921011247569753586047840324209775565885454675779458302494403364894366991213344980074947947218265486621354938977371564449378071540184942451596854995104247193459243013712933769300929651112520210624580878704832032957925853445402370633451660746860017485918385384729681522427124000051075499832478369157450494469608533947376132368047425329693097136753864024941526830955309594179400609046575191459175047827357716765193964716446936482186612850158314990617009969692607940499429534500096463977398883884030703107590106093354369197652075996859522051524535095015624316520610684547980190707865293588157131181277569886842522983180782245841020228588134272492591365045159938451500601547193347882463988377341740971832709845230466936263299135619636983786040146882666938533573232756376005158446339374697802675816240789094945410542458551581680458866069854822842036465343998568896367200056730153431091536953236677594641493547080467581063746681074367046895540790261691595276696699381435957675149631717489510058566800289025337181351063211764451247022807379940655845586315504860267178737642946521068643227446377196933004805466113005831350067326469712900006331222332642426112644321332493458584001923675211519877137528938634994321904454021281843638270321571387653100867246923702679816881181663421415672427576745023640531177991581068201268486225674047290655620680457582900341721714170589071549238627477752915972127889476718473319296954820407468154359133943403264669085917442636863319780294187880854244561991868573829722459843880099522071627742717336182491690200034335652046819622043724637865700149791832726992132425228373621897388626668428887882112024678910007634714963324388304038227054745431024340118012933466744820274409203066497517220442770897421970231287772480642291716236452300244083448655088488127711825414819181030859600163911426984631774102738930240506259624070330105676794399467638822788256922545435833751025388721978291834241323322794175774951725075705199340893261995101329812251393100917795074619057721168895521880566022324807650134655862935080640434153883918335364100841260795715589916666252210318625071261168057455408703622354925162516786003366629134757176776366115555432544023565956515906083894430072024570883168622840298700209432523666787475112868977351843732197888113355094025318948698862598552852540230018586161182171258441644189618205417283851300414863103018128192827083725397644553158859866584889571456306112829521845383771560883464598629735792039854981439225161263101791959266835779520021822086552388039070711867203963099770744800331447037751129844177443999781220580644176771361672097966816446103563303449693127314892707503481294794454792310528733226624267909239206877173634486402618833770316326804751004401169485821767842781009680530694772203351149301982241430480818635962045389801324701802347214243069475644274070108597676142614962988848486090751082503418586775411513483009093831585603589233393179219112210338705773472263744964848124445996869769294539001405970253629287693530132715010440455051139701820826644780933293803385978687975550667689604543018314136919260134453269897440678877828872374785205838825043563793413721102734946073592633473816767670805973599970463744313542862125648561473952183549794886570671919744610279603027941217594304982013265716379588894210046327666019659639512603611828745804818767742466549449808908963419217069061625694037336041142307817347703172875077181802089168026713646503513893018667502709312041838861714404365292772510649335226934276582144277123196615921875853257682688245776222565011411373282107060787806357805702485500109454270232758506012366636495156997191608639926808510784321112586207048603318289079259887721918438410200029155779461825584874047098883395097684384769303457408446637030246272170384167909100218097463398492268210088583008439185350910193487619386704064101769181652041669425489666848210665768030056409489429951779791529524721685603779094062397790751365999935347935200454633284919792707595863127499889662863862989172131943535709525629254617394567128331760201304908177206694986614886920698681685076315979078420226147447757033312717315260414571859060072073461082867452227503905054222801897863146692251740335779674111554837080573909834310324058192841531058427257162946204319038990974896860490906542553076225975113739910198925660416761970167177286711310066174437301508877886108471788587245519521528170049104975760713096149565769348209907526113912527521201139822612818265488655837915998021671340304658340631864861032386166597256038765548777777573926999391756483625333713539267513672081935795186717745531205669037531940154684689933235882093472369392335006920568405820198082078409502953929668714765045902404387075261330707267817711673733194695069278091289237819311752994534101908182113153100787437853734686132271834176535206801753108221339455053633804035459300908196358313085917917495459747717807376422357197869146041346836471674159450877315930875651346850053515023815126247175969199853945591940749289753734454064327998896059881415302512763200767878538775546450574750211806166651108462462482160522471567821950150665526149599530443536946046223246145638093895666215054286732192059228211009034924203227293923771288504237414066006110428116437423844747297479052052543666921776402153289578400946501310027797681264449657081275936898347804063426394457153015935422327223431690014570089733278359491177102170784353479613840037426445737305902883356377186932892291311224783043572114193732949528896918451245153007589937343714130348337014503893659078480508692979295347466620778035538070167833398083309883179954522260152188762993060910656454197146033220105565735861922820043939920949731977903809435755937012879090410426453380694771869302537548321597327376531681360187920818245278705777317526895576605017465936287149941097379048507988000947021358369445500303110163117842883292487215145197580662311952455587388285107516374593954064136496306705437144683913136359352326979870486700750732895098134868286687114339312338634331553869302299961872871175136555254796741517087760617562256640989586955136977336383932616508102631456322646687121400779435428882647653973815823233110654523096782891509906885714765766709982261498789140223605667200898312600664750111629781216484049613480659277134717564884268312274296511411059019168488797950412478999892094939666052760292763587501556201824451341154692279651542683575156264320255914683026865984453984558546483015288786095595111597105659958762305824496712518702287691762066236314554635810283097267331636352202833943050983641170654254160423889649093396261870845550842827890525024907449385941588311353266018883609078412607432196498906350568786015874720280618017284501099530741813482841529148772575299467779549732820488709396230771481667299090312221901091965511543737171079868263069698155690943266952578669687660450292655687519853511867929066446295247213007894778742298248310718325008722801947860219629965610260583068928857484708154802401599461838366483917500630054879289597610923653272992854367431970796493207425151045720210848248283483257212506147666747090489686771852204585179413487540370019200217950154490391297583550342040075391237758312343028624973169859894004711400317284589047044954527505560559546083568757447842086688101022707545542674809453904021155316566476115177728351323609426812074094454418730732065007050666582948577184389812163778256575630278751253180738203567761333193782192069434592654703141904606570876716733309808968114724753642803061064013786813310392039511967172762332184585178913174701410877926169722826377086518659423371749238740751331570737422691801006524426864440236000540241578277466076893928636835337600216743215032761467993269660513843077457077139317975990958994887986150996707149144161371543568141837221577250020383946879263376085118196756673984230925647256452620185011325343038704881476359359913380305478479871453438576338063489396694045015455989747470274455873170389319614187135074652563599539613701995403202735037965898163316046883639929981833942390086256755447350591750141890023238421959659820381006390494279328030799258213933089628816577706349298382101728009655796780158726405701346497614547395598818222468940420850016429826736783597198940216188645048108025897133777875277497153444819300591830942496604262461601488611832070948110193751227720432759068531672261246018153211860835529283041311160697312519484566034071382782835600407921569721103796262485773407574283369582307934787485929237413739660765933922156784184478712023594536142449356406632928938813755073606564073736930445164759426387699962063401700533257349151565413889711643881487745810387117231934536057653658761365128757930103470866015993842008114399677361886657543850892243337436927768330769234124141349445795417925824657946707212806305804342864571709410235349020109308300729022891519563438115559387604817508208731387380484707545877682024797982871397724374306607380005237067021783945296000329723658387705702833853886452355118577986513468579132449210375328192448874391950562698378676753583602431287040771614123087952717600507841711240913630441398814581111876496195892153666988166091106260563801062109598487477425792884058122549842155296743783593055796206160721156956203110996001763851314040300678302700599071509864882252774656717038965236167346640924781880971716423121211697939866494216984161607530374627646389056283590759780300070358381504172127296484035068096885541927075097974598940152695830425196337487122862632048807572698404566610034043689962370638065442439535184808045150222912472392516996899155065523271381915074742732393983607160068450741210470300362153941360869186124879210405956196973589230004583012450602059101358152347774382204459642392586220084492933035948874836161027026836352475458841040990076290892158755337783843360664324943554129021114811921682990502107563420681910297087027589704074377824330649065406640116400841974913584539487568826190343676277322883085788810966193253349859828669846914342228419952475850781941834613144195392532734646614552525062585243287295245162665118056519669427177114102750193301646368084267137695617196424888547611762206926308807864642884625974337186058648010057897554590470747471636046166276488159133586279310256696592210900154502002734090661495788746349071572988285019534985410805548774450722037235153198732823395637440722716374946993441395138617937767608421978960005799187324454568626862482459476645814286363713563853735908003679536628539223351862313122756281673516386868439593233878342683043908280847703311508068143663719606783498103125715708283536044970858361958971260920039146471967518414769151389986356962692706555086571328002489898284246495815555168771783713243497869633970716378579817340816194978019772861657493374887805918013200513416267307488605359740370651989044093211151434208902817016197541496597805869918750536076659616969347928716235579984581452094514017170462707015971505172692410836272457438833629800392220408852350029522905518392805413377037567090777471835776257352776316722193605870409284066282657637162067193190865281376630198888543274992717757691957284761513790508143561344870339866761284335671695806964744252960671743720965062771462078040656579682378429036905296187072807878456669563666273576963729156199490090490702611803299429744681961990515683591542516159896042354009913286956888731035661551109654966562379427125327138058132472630146264750929920733444067568632404312996493534428291657800792629683556172604766465297112773442189740494202200511121811294464112561646080378818498915033899770813984370953351509033769468943529076260551428924116113026559056211822716415720683962394763535476386115352163504394370101620390910727729243205747233513029963122721067211193303113191904652340549480764549620356154735874345809290984404595589111838459557365509303238788422899732693820608662899930292842209898369723079971942433972052348858384178074219025968683395993314358836158788741751861866268691986761137242307135243601061233967042467090639937864419653625721261697742689805975136865391925032011425040706068970432485857703292041233136666502247754779199726343273219615341715231977867831519501615729015352774723626446043074472040668954069792946779508154646642712732622860160659309859654651557377465982448401723030990319516061317179946418971919863979645763765836848868469772938677384208813487996405705392720058118467799948527891211313958497416441245391974223439741487995057364115503672528396549884205976587150185568879796919622884187664355104788440184731003629833770179888233598087305934928462086579281735786217391034105272088630539246653926386303088632263374197793988549780901722108351427643759163440519658905159458533181897591947566332491199421621233547931132753213798586535842345962222122768040425623258770906464087633773954596552745377614712210299431455937549269180493021057351343891172600669981882873721167118759081016868516931108522871722279916761792337889816186407444975101476822925517844985564783286227804981231134428257753734941152735656499280157666327724878971144096389659536565681928860391941947209171185019306391488941414627760563862915663884367364312275710077257567485722275162480324712683416351153437814973214977239564148924496704165052809991387308438214534707549169987901280277146475336705540657513807773818819158593227737561097494453520331214869541249786227268175773735899131101183154395631718980089407346404281634547263392905607630842548522402319122167384254589616907632832575398715960677731956737929788168746620941732367503220289196411333086589808706802456268259567309843849983876910508253278714525860322805859906386981750288854984383600105072427932170990203349150984178928222336879087337427751231065694550368423188931361723519177776427252891099934043617144704067060208645015921670266087395178031854291508520276719152501441861095493101047141374643984465265672430742625477067557502503806707630577105242149014700269281975243965351941275227210299764768816560648858266263649302126929547024491943639063536838930220437825124873841583081099875129902552107637721212527536871205828252948329515470827653576632828868149822590493369337814650203777056602894436827424237614683092416401271407275860779776128829093639368563578183106604589723732053465909490255976009085940380253716505398055920124016183621533782466161958985043733502558934600662579244280055588253270026937545336934229385812616533686754137122628886558305043637300735720819320357830209728737956248490187793940213719885778681885291372512834119473318114574281870311088108950660723861833919705048437463361157911554482267324672820944979288790692567026879967000461036677363757029353269411753415573694105877193641686658252308547927677857477901590859166183639295006424577624660816510625863782677921300677691273733696652011473210264114060635823010968452662236402093598140779638144915963786558799698174590596482692384021896055231864505242899416304211704914099113352415659778553399544264904257552256512080336322488606074479799947465552353418316676267215347486324781456804858736483651602907063649364414375978348866295520277811528680569552367148472107343881334213048933388262592621875134710369220526821638309437452953570778601889162212963953711720036783751651849117254266477043048944430179816744609943024325939915082996817174519828049700387254637946619875125300042770652083232280814453621735879929073791593952150782848429896377131885822598447768209569170656708560426673004255583961805823172231617991637236912138731932042070943798597435004934496482925994773060838045578950268664904771450887338589853886819436760632158994817797416242329139901076369114791511349147113843279040540032660156574947153263042354550057997571569203776171312688780453877556478295435629069118772368867741231775489364794492697055444847617003250899504226862741643898707350188992275625160724669955337903259593159319707357739002638604699432613250202663030411269920108229928799662924118891373052638789077821934201669298835473907289684338257284813665826269226668104410886368120144631174384010107637565224761602601231404035076738774092297981765842470786990543822995906644753648187953399586174911576844167868726470442843541749503199975237495357252374573715883922078934165466287392585850490630294771614557111072137166308913151776915347861408632195537033558877908562031294715605448353972616190876611310940253456244794271439167136137653258636799143219708773025487784547737325741780330847173156934555893448434814429176715645120523196662058970249530747506780535568276177200274377207360238539146381453882271946124323009884413812190806395795194187399829126758742060878106240127406758465687868114506542358749818608021219309985896737393785107644359614951535003760529175944798084298467408618386901772587010012088428673410956649924155087659124551698311399003949192404682075186573276458639625779176292652481126383264784833848472468699545761181566673518656696211133897519495062040462362540115670895469442770953070701470549975392772489220307007739485099688801412365063229099787973811672319232466808697343136824816021890226070499597405975356829060739834519400248869697415501024505073295260347293191121380576383684279984503770586405073158969115624183784706064498866737608783820350926359392860953847829678977859186621202040368699736056482056139916922968048920200679969960399634497796928641389320035717476676721846348947767363246617168962058086616984658461260335911278153092502117485551648464629196968002296983039807376861934885609188430581445318808866492085416001973087425881996134355390846380454366776169344068852747119040483893188086158303780454298481722195854435419759828384324241830051413930142088092936279838265903832975785716751425493618846659902088058413261482818403975692958110818692973060285380232337037012446147512644897955758174093211673868111861763829126243885704244125835688106142541400828627768335710605214949890369774623772824683719105002109436009575957316529404030152985405354529721442747510150946587903311010391201172488428627563537651352977122047666705730409197866957132577682662146620075338649309273447833870234943724107655439194201550234378027871620981016473671922253272529965000514540231715029329121121460695419168894971405046766237860319855305517827247853549725101154564828396433716733105301744208319579682162693330437015581003670190525968454125381145133777329863421786174631096985419733454042794600487172976535348188305330919501377648449624265755262351988824071307807489447398586719253162620694021927184149471900575843116253520386895501077242618777725602749119155363177411806457190520795817438405200444108591859065451911996358471712582808025061621406171830766380033444829423469944850280167751613681530940960434960154933692416512561859238846781694395452591371289256692361193464460149037645026568813556562588809411300178219306439148542381545364038103348609733175108569819445092430510425495076221775121373912826381926825569985529859611151393570323993209323266007529206237808306682937056831732687213654510460882690717301942633263476361828117895425480961716968249568961110251266921585916475897613364772236862775030119344712444560609409843281878241880206414884954417957686355054108962318720264335342668243821911752681997965590770086537268882394245985047649251877026173869106310688574160876697043755491608106264467018506843338901508800299647392389387200717635518177474335209994937469779372462154004551399462625692797913331251498844033235474738345261075727920789691483252120255046609926606939212314932932516657035815125099246486172549233522258354206302387478751382510327387868082240173777022951333395074874333104395901888587962932759320614376042371994692959396856290924625864200480049375329903655350793003537295940161305297268413876341330642848693295929330361751240921676244827476989352584078115492947808384075622479587348263088154086383995055931677058743907022106634125031651475342713788760474284783386005374249068077395761302767733417529128053129854157514408769201885297404899031466964415478633335608145196413205149130446336481799787855858597292988768898777703071173533429238726413337999176828221177441150794227540374689254799645531851487239720693796116187685782776649784001306300285323510984814370826196821456198798559450804695036633279194676632308896694176769303786134535847183813267932859221252661209744229915702265958917780149622199018965882117425957524420832297109934266831309501892636719913769508403778082163489033001435303245793447422890245782142324928761866985946789401147949310619816638250489928391625508911038176957100630471289427821857091547206848483332106056919004123581056653014834218287311890661877315553196744400026471931687731906377202490469461058915620010437298041604016867389375434391866532528614453911556404600749477778239797768065548031085574155550399493036149070904449983058355707679028214237004557927315309336068154471864547530216180759975594663552908183841739644098166669859302120097940256682578936257464426599834220184709242184649151515475100748627908884889228037850210429833364428467299212219879640727582141056240453859534804187016566439912260196064378895544073791183525531644037339542086908309991803885907645792016369876164032592492038184423013194911290851328380341878957655619402268495208857317864916052039533558363359077048616266316128021595672624518013693690181942606211585361673956195824774012180770690252071963156855551870429400431402425564571061690473166081892899083595937986322623639228780626742056778546575990889049261470092140478160679447086928505067336364544796415941183245858049563270942806578277357834713639175893066221545910266614472356109514964031314928123864861973131751197820662623026637161140972382435379257747152888275334308350495854037313826514156594366216715857066420585065904986910723351622827521173773167341400432178369772999888443129358366138109516372540334921822316835999802477108371079131180729658567463268101375210499334211921447303996422468654034702157466492315831065130235388333318887187310983202201104203994852695996496670479079235353182616597022388685402097126506549365819104638389906510065595152064445220377231279165719657188065407828604053969080109998788958295061636691736236183102921706158896218977955394912803415311643443311593165691465181780925154734723401038511228169826413216634487777227102571082593974550964171308514969747419644389760221973142373213854528917340069229795341226274272105552759786728632859482516655837511542522954512480976680364521901757758110695859957243135182774782112584824618388785508973009601202435330234207618859443690354202718030297761984450538619237782991859653689620813647064948422860705668469696851114428133062344854136023739409359467010266365013062781882599755453156618520035518311567610197977191199636368593018739500169029736924811514539977159911793958515749074432514750468252249463410799107167807832751952327253493790425453097939420456829463655747017395155338068474482578773530229631410725934326375009338154779306472905264363287115712737704188752357886379754848812780439377415846069077694913613747676968323204978023939961416373147732999292491328922450411017081394577591938286997320389421732278778168233667038915263561778954533544590382816068190661055879372617839299231099031697268259777973622734917761357242164447461068324714582159516951424048594505712334816706320025374764707125360171019741011628184609690629506722002262301256049123464167417238157824345965676344862739336667503891227830930073240685406763948411513734735879633575479052217729506062002577939015109506306569859162867497010837072080133589064271040294455890303763247271457963432419316059156339061514517941353818970580660824462326672468994225042638804888626444653729495678322518695878672728821046708887284423809697898489532544216896059689014052822354345221195111324268006161122997873956411310497640487406195365173313526577661647104772981377197859445216864956839578382613387780509459142661717532420733547598879196643663049264667611885124419107919539488228011527949622914771544045459117819572433047356909554945851937698363932182301505277869056605389973836914377299772445877378166740314835655634073685837936536999227578522574435684464968838427640253782660297907751306269627831759068932358500760549312978837560736532737192034643572524297544935872819974835016421136432321523646594414730728923878123291460914498936145286950613273788146879714387918414142003605185218916242943743795037785184238322619976843266143064530582715764929637103516714152018366062679151828777654705417312733917834035203489658452593000692229067430965882608221001968317832816689793085267424506530378947076533421192606671660178860338662822711877932810472429108273539216137936009199113067195743534970147151021963567597087277941020304991792571679413245246906355835698160124594744645869586787008596562389460740681307669243208438308490170802126262475618078368068666243548292923458466013851410242165977877013538202337620097410427341216419057222386798411241520324640170052615841652646332016758448390707851689817533178144933927729246993643435758362112243111726571002453415900467494852955074220645148885645265885347328676684723129135966694344254925367314777426454774875898343055457981357285116909847498260914839845301973072876009680044331031598812511982064315749326338424774905940701103676524159791289084424809297703949829018044436333110746671633225671266469100609942886366668796029237278545291326883594739276423088125807201169224007040327997411153549589883350066331777351344693698950867659909752430510696427732000323709177525176306490779111165760394694148191343905822781653857010295299453981521517304662898093331724866679975188538276453653490704326880013977519349596918496846617934884266067066459425700595811083376743942301442312876322406569350591087260967855872378602770863489862588097547026252451628145153854349037767617779593419829102829654024157106525459497845558507725643092745409769316256334123489617611138582869734755753601098412839591039584791266429545553978043614126525328603353748285139826502512005645253730896126118626446690736305083626105104757847405442231790556863683082374706472639774176118950475641905217270927041958227508501077541184599642044626129760350955113863618524703057662620895240170558437700109474480948190761120842555565571928446254187962252473276944180852225553854755720782054401702112837986145938543846053276389841469168184061587033344006682968804369787540694120444022306702222994002782278546007873630892958647947556612913956309092000475069352471678279146435783005326856134385985515929164034799069610383398540486777296023789771395132684395536713345007933403546979517959911908053085764560677635621612533823081805999210373115855431552129612402701591332694450810680193504378776137541441176303567677063571149961851555942571766111027735105061795818986638242810582573331965293633998388283830184133397981633699075965007612042326183804823635186468816963122725799303854373351743511435186895129252923101891064841239027795513497133433237737540001034403515537060092063562717018880817331556012740178419437094222867952322112819314191969463075671453287039849312053816219633232415447878085933003453047863100467384446454391170264777035351849511452431425901963656159227436156009122789729070961245279448400611248265270650696373116116919014121834397525358045878641927722327033825081473718745209784448260231615640716424081120577262591248638945106451744021171894591406294826608753884334534358501607033314091841243903707515758454912903467389674987038156596034375064258705229717979553486497590143485340809861071416275646771608700786750638979032512659334948925012137761655356504643732478903812802639880586322636574581900752299035186720988636918024921243668721626465335520562705133778906072039013123825347985784942430750991773149340442157941480437250162635501123480182725789468467157905518815450248213657604771003487119709660108919359209980493704230385865254730845745126015780281398381341427757290734649295825812510723567150744177340288906670976411752458503129646083383506384347603709021250305053786012858141886967088535029420976514741101642334143392619798345363801366130966236830372961099665258338816561164578075898692210977069723059571369394198022488685169891031614453129147387788118012681574334519135974599539217831029686678729835153063566492576054133453643065841838613357553384797524327495600747797248395433163154482388914021686006386468847781817650548410122480959601055726877093809563968513647316724255717344424643819278142144813558668738905294411355895236089975894265037161856322882000517904216465202894983863383549674979390018445926732190682895419089693362740890800546562867505306842180704327983299140764211183644120038169592758345599948879990354490682559205253729870767991688339080920753003623586415032574554969137979403606215712757407706162686491675422440828124889522920460287252405894356492628363620121390315433515299982632267864586048805191546896990759353430149001116071847082225010450706586992654363631096744622237386997889003727051682940752595805959657430232107729774753050005863401598414140546953643310933373629041465481799171626622187446245062759997551406684167427748092457651936088308815590374675075795658714344576697225548419461245125198125291423698493977150809237934372016351431016239373709471930244158713209990776501396468052548284527536874418141982895968277042790295589080139246753548688964275044137957263659602990042702024219013340661271077342579317191546063867319111972909694891910023537741738305584618465132174022764999668391018171109983930041649586085249109662434738236856679861934645646415340857612096618213724300573726875201009299123318491536084175027127336067957365737230731305477033997348759627779482183125337093731368685690114813075346503044647858227877116278964540587525257482237125928796465068729447508699523323751872199611149865541817108033067039209773801591721280777992682299979772657974825486359106559201701565968117457596061659510234931900953388227835266453534018777650443345840433472293567911053293930590527137489850939739109721878438891503181864908807921041178339391576470887235426817308285883258777919968726231453302491807791839938980571418831716933624220556837092823151363886989480726543434523238883932314665667129042984907674258215803322503236556436509216314509510232088952918352456801080563537059371694819800111320054154526183012181357030514366294211953104627756443905120476899490690156034862125556428178958833540252941553686743570415883803809500925801889797172257786603147788510542589574560617950781196278988998947069096582099877037171310966659787609108118934972085858321172464817921831909026306451765154587055175099990943650314430011813907938852719321168009289258360636126858016098036085595515881689420627097801269435893540668966196881188929288038799117773976516229371873136021329329898604921337052056863006878248399813539399646035578776774862159255009719598020090633317526746854790420325069982684498058060261044059366706988065672553363681477753467064262638776711790277279861055142542768249556435716100648077234401833769844580841922023617903441561757638498670963134961453813600722313950141514461670906134245372648255178313912684468813609992404753592256191545530536807413165346455977342964398493451475971041055482231485717013818963640515574503252479776266802467043701647015952380263302863973864553876609245863594662292913249150964105757136187158658400259870472139246716888237155685112305399711052278576703773305061522053467211989550611603127414236195591976057025657096808596167413555076824429281027334344955978828731985942817824518983199954665027490429903450842295975719163647111120782991174860148076682831386950675716785123124375188857788998719043346829696396924748288369916460353338408756835750342443190070200609263353840703062954590126987633852703332519421949058228160997477680394325417832847936859684542680643262783007969391406844083670650535943694529555256535759272436949739565147097678501844362151459865316206929149566001944709292796638175071844509947141452991601802785455696808385821238650081486373383987939169485917044284347350213976482525180614223878157021979500463401207100605483452095975579936532199998566204035611835575231819795955510229459249384839051458472990467811989435913773459316991485333010395805198134678667470222956401379694422427937966018752655511313185676913337887994749706499026111884559501933603455307489117456325435274698511342262905566473327350557574695992718598128372730333072831466730947328504417426879828519237122444302581265293917321029160577011024587586344672183078974425787415315841419540598943430841736646927178043949309597891279757833516920535134923983969961877443258143663493076974989656941814208325363139727810421975814073673556149499464972805061837300997024519612804855266190620877763845051806398153533519483718078187844228338338194200381291116390110268955904384983353778322648508426773934406018775671880758400168384438038323288158731548052147778621161964546334443355615492442336041008228344422178675964133556267017920406240294630335380197558082758185541622279487607678353353066476119522448422355285040825804514795531878603798160902183229221685815922178718587495345890915075423208479811994952934329341464239261595357973460580155702549969440425115262038564397032444836267839593520683144482321758303216250628187710461684401599410772653300685357088732371843519576328423824853391015257348679240923499134136882657884385191821195064271006525987489297375725680470408197025704989575171201489993189523756963848464855374533654912205434602336832540872815654295146511194967748076126114613985844109082237247611436377095950606177549210821666360573421425452879125059154617217575239904233098894665706924217712108538317743095294010720199867220064142032871054507715124927368479737436279067359355803147199085904314517067876830773681359697675886753961166866690711706128580716865608079955871954606932490403908823567260868011346054907258417862049172711497738108166453800058574566807845381506720879661516569093220085623548181901643187626206203882072758963745205876987162295915761553081281695461719243619480797953186744848615022596961644781286865104652877186044926461046618204781926363604794290775858801673814549823093527621552322456624180322619961636958544390973939869110347017116672658137489990607274529276573832838897716801737767841100157258412065135566001046635406142196282438177079994961532693852328062667292948390787961426243307201301449991244074297625736474567186767174649706581212971612651118042345583195277712766382414383768090481573376557162896855106424395193353797812056891302714845684529951515969718310074737070094859235787093680346786362199607290095825485298136977568767227158835051194048383592292209101106782345054949027532593125395114311366480479199942939669478332406868556640151435081577399281832709970689891629259957462278790800017624667177164356462574405577703935402628760945687793081844550377202683970995754291844884775408044372711246005289852252239272779273785908294045956491655716080866796528750519757461393045253632470815926727371758829810855226930943256355428444319292047812033997072584046152502468041722435854892748215816894234391812446273143462420246157083614491577937842147760956096193283430605809607944909959575969737689413490560641471253705684050727390203739643832243075805298502077936030572702901837774666709282241107852255461010632670148003898584353631826823523249977221690700207165632580061906338373696160964846831398457326091801662545206634408321321518852011245708822668912554287098462574386368035590236907802998971979086507683650626816089987951789426668373864493568483379996888347559725926906972557743176925361596305525991291655443697805501336635665635335167013738360141421372298529056843217069727215372076706269389980919884465251126876588541673198530701707273005936247738291847986286874729209634912269983661843666240527858960612591031304222460565974532379033567783952074705468916299272721558558547832313983492960702677965658873253902016075986409883827609780989711787147160318922037818564429604969334215716481967893079052222304546430483299380796508604315758896230721691897833411062495192396309162404166578346914731430220990660856546190730972384357749806966369795168502804482473937817283212345259621952195885883254802277019510608594169272925408479324568528392701927962054919994815482238812619760956324444582150943859250912029904461817600168320947279390027542980737665212186795711055727150002195635675033908441957364580885676748716702111295872765310857815727628065583582126298442907160802197725654207702142536490288035232428234226082247339770499054539168319818058369400719800737577914628204529368172167382203099399905344717341986307105104028914229839349844300872180428812633309003637406008317318283464359362834947757467906185207490390087205858399762118782866669322889282482959278129726903221153420573045181971483019133259102770329869506029833047033968699958230153624501533148990066612071547766403118757425353741666483618821606797828275211146532380006250589487682303208887967106832598036219560810472463423353309431812396421232316414482920624569877266359032778984244979925741791447101809295951057617128744227901703428496034900240584799553196170747556416622382290768039626266611342129324729050254300715866023397602348565257464859770432069201487313214470860611334735946124051226421509167538690948544089189090523584696948813856772708439388029262524195267864655380491268163356939322503667392419755735635360952707396033308968584329747591437625790058651439921395525302116254848754762176498272062992451629030247401582476524148551502790424650630164667740753642520985029153710647484319531640239178709187045481107515515912119753935726119675048232302627976000371410198490781593795302680834977727008136281772569134514364269557568690819078417474659489994519386884226965572139896266932019488587933770148918481632860826101265564649232408950117144096617888220530533456950392222544664610613282110428951119314060829033757648137635434180131630590754621950305233084758128707110097883429578811879257815577389598230133116685755304771240314444640130420377565462763003617055279575959126059123196592133456092765186617668784309937769392633412650291760802025271172131216234677702804264983471576642609972392775642677712251949475190023653866140101480367656429189236940478265616595866052452696334058185323887076111256438309171053097434276357768308010924526612482439572470531805059402928067703713029297787108392937057996547429948992156280170394855335949242846074205989768050604124399231829216036806444887680874438872120416525837632545187366968525069310045327125055403395924903882933972578766594660794535280396832418520228396186205863638270834369710684296302306291261322013637241558753424240669635547715503171667090258737943719893638258708308239700617652524904977455998514023129692871792251165698466596776053671143538856635721743690154035993909212537853120811045779989706726823545307842624282490935493222898283306345062098021720311447368109399475127954361492792786203332651696713515122859472756371668593682421757831034989296450932389274264066902235772289983612620942653897649534362950970350887308876491433304435022567143643680293614022206957714438379419211217853217779106863764624215335341350157201223563617213910918671470941392519140470744890114516067875284733161190578713889772446182398197871815208129540124912325916501421943991650987302888334515897899405814059658148781217486830474027556041050359952817597579206391444660628608662283846812163913004369217745603793330538485084502920992523298464606924502082113082108683584339384739788384166370870199597504204552569044786728433793792541107187255801497885619463253563354022196152261508551593581668961529558009255542883907174349922987018911412489396661261838728654416561056169605647087342900314938963430500073060402788703075771202771809000668224183543098623751016860858667375953297654992410451236373362030038121391394798847043617796823550968561060487620156447008606552907908192224417230269743684328872081071915257981615157917059025422768946800471939188131468653340026051672107295038016031395064324079710247161910915490472476784145433018058503931587701478226268228311337237535947966444416112201142209412270915862239611647486810131496085901440133558592120070407262855776505931137279611741958279388803816927905441021650388299028370548836792918118869877794679443849503814783017707293826142861256491742919417121920944334655625947061736916588729086089609831459666908202653346293506428324264483597765068116457109271006588480169267807042916460630577065082753478549589433141286554324120184857935814106656495156423591068910553523099783216261636477158092683298340872985509034051741769546291121530599750973933613169198077043980155766706832128593870347115700787286971658807036779674968407198277330242982509731364298107451189552418151732876603866949257345390350604670063695072227917272882489287541996876789809079394847266190368743649624981067750522572079303137053396436275617526030596210615104192726776844939207831936088350162000298879996341172646288972379478509566014161937202231862845896216874891401264536170232794525191334813706535299879701107315219623190577821487179811234247208542402290696273847958553094750356563213948782471575803264171436156928094470268569363086381343613472918040789743182961743976878611443645418643934572276596753216682742599255347154921701274492488943924815338074538738259671822829178649208355739308752621629339220260041498357143227782832653885900199757775062012895731633108352056476260988134907158591834953468498302664911011183004161738813924907784116421994354264401853238224892593034342017781311202958357228736422824038489295938564344236384145591583956329509417217407116751178226350611207412297591295133445539524562838875772885700988381999683114372143876431767613550082763173495990351785447274412940462743620409123171764559172538429627210482146029545589536368841601017827422877595186923349254069773913404881246346296128067097798171354802350341345042755876791377106026537301740990408024928537412446190232161882279665566102325017129155029735368704473973851683607592493376209943206073465364226539338724224154324896502578039159193437035660378098303141206268492076750430877290499634122968242818095693615510593284681338126811998048209599229485179088044437742573644996087728746852605492378030087208767494696702767665239768658957921727137901060485617201438407249694641817046796913833117542702593373108533858850373641870685805254236043515883156675297647269793348467955574044212966909747437087677768875881017710907203886975026658230066648377769424119299666904561268313113625614588670096521681489302686860766104837237271078226932727641063312032996082513897957115426245187563175035331844951705938638423053714986728325724268914748084284876586627391989634730099706131710697516582524029479713327137223432326772644085511652916176411076221059199788195401004948211284128965196678622900105420754805411381897673010869494786965741630880895182559626385582062879922921647710465750211374338123032153965573218597698971078680662435177586077665143749115410521900782357418006908997845015237486354650676629972994555791034626536005465727412423684250561136904624854629662699002717886545520608195516236657882126685662025105572080461585578586351637485993464361315999757964722823689207882466944936034139545185777194843465821995707162646970790962371717661123664356916665136171903076960614298349064136345557465029771782371629620368610150020559494441712626810405147044046326872804372548331240525976418351256030400145873592795944791259970127696930925666562878850381493327412802838970137380443016592447855981513773401317741390759856114295756465282491931001630443552853899295265123081197226128562923644854909362456705758957768922760038819875426040567081831433852828823524927062825273005737068779709369818092212185018532233459559398096226203181707862320354446803724535481535894192723450474374082032506759262662650534570666124838818778451947398140802969277039316692032599021335584505761173374169396087129608598294959048427091777080230733676353197876268837069813010107772582415660375094427883188495566383665796306596350503578496944226396336409449532371273135082532951539951541161617053811562501234114740299193572315829725891623683780213969480400731110707401061575074284769750959562730588846493048846474357372807943815966388085361491839424346576579114134854851329955047635862100505008468784398247119015356770365605812624090551331572444549535281414257024116847945741336666978145355048120013967519570459240978366056955461075256896994697802350237696681532407271497769396924641156908496754132203385725576428669927915762405201778406361690319058942329176961306467407774200482007064935132330690762972655101729926912574589349487825531603405805489218378486178576353664209503825747479938795866348195444426115141642172853162571494867432924806177932618718217619474014751390236196298396891246418637474694289639456666341100394415233101849335789643694339288739940330109786917144891097175845415442166210003156568785343976749297475401286196335802001162474693105017359693766361875536124349128551886533425866024643094586836338574461730645285972651324210050462504925132140350732617914493307061761449984685262725963350877901706516166885491264407694706054237628696357630518814040474943830020390083629988019036627672204940008998798604838673005527702439536431930093933274399612309389200784618364590726338555312950782716749492918600646729179356541440109847820943990232488339331289903365033248771837093123949611191943220477053577202388746239579227054938278388314840400996110605896184428192791650800702827238550013698188458257548969450247055708048492184230314759636643122040626695055208331331286334136080622686495066519762674740808233217929413079923907427165223944112601114173908477278094815949164443120797353518601044606348023592483959621559416322375832950260035539874819493168383653576825708858385549240839780777703734003123852646594878993090324847494978850618988767518684877763395072080510281836866027736051780866100545749003708459791349998728588221697878020785505361079249857827610941195567880182148284138418898302073585041707410732676515679903337657709638857667803980469990085889849321284672716950773459932347038891247697578892984423092422406945008601893082354392137304297382442888832639115857418430147427722634506007889843069033927919808652803160852184815817935424833345071737076263365691212967469146240093862776448454204530156893869286652083488048981871180084909569296859546758630090128065418405684935390846975093807142606770358416394861723317492113012344997162969890336372717692068186482323243333226341422559142920369012183755038800167713784195229139120394285658357811816634322823614577939132358076943042344094332699580258518443551201889652569042756695554726246118776442813703095501230427520753981601386331006315417924287699233483093494453454522247392123318975335601431208886129723266492429171219559660202462223540778506070102116161689094983938380526543762381313711239246203732910341064889585832793819926637725490439499250175348889066516742221034690888957378330924516549369528683736476495508381914057008601024651222324931817575428025812635294093896943751589192135596563499425705995720706859851999090454751885097894858815447997475121874974877722757189989454659915735022861354836728835552964709601151714928132817304517116843215699298872002101153029604528645086614664582137228794982940599229141009258173232702426100425883929523501512868151149563350438824437330639029157792425780221574796020998605055273261246944422761262262269139720204029932077094315907232170144629847895490065191602034354094169834797093892839220409753305598097099032893104102140413201365259808640890876292773866960771870361059742938152020774291969452876891030899387163464515643785606977506910997052877552783888474493917156756447391917199930047672589459155116730885078441105805401531499193090327310317713832037286301291556597098861490595505197145484234527358026202817753087093612762828917292078877832803049193341903075267154400750719459476134924698629881555516468734377880724464905855502069664945884491115432232547455757338181641435961423458478768787823058598150033053324631395975437091052657698785376161335216741997810153825396893540673786486614021793191496479123973399090807064984814052958295150248243859439572089319893969761261495090024477173999241257741739666875900522968543535326114033100443309851088050079988603427503668525500224944415524289937771031990161199070337106017431125103946221421185710351885973013561243331909441549742423949565935108992457037340355754302967040090742228553465132801398199709234882178885167095183156000456250382139621302877556054401792336075277314052673113504855973965971060388119388278240458846469401782862044935994810446663697323683826845343918576073891635223187985774874679760437063216946101279835193477908883470756723674102086294600296000502137963972947377070074785837952806777859694114979312591303008979781164041939701427712079278154159354417407896927305734348092930345503077550495699967569262136233556642104795257644123660716022171273512865868101535283653483423206167440826212968926731537329466065691008713692441358310323130164066849878797221696318438618058732266910688024172763421943025061802439468132390841532344217859934357676415265121384463427830526921486651988178403744648019416361283787323975764148517615391730805690893322390643894446530142399822682583540887759999992160139730712664454096463787621224715391052700487728002035187853120905969581722943664637094597541381059492050598615759206953461701702679339241971418358455761537295504965753204350793253403716759700971767282214185687075124485378414117682396597930880442078189420203429310134731391327207821310463889076984516270451113865219510805189664860632462685136587982823047173443641166709839950304790453998993657112533162678548720176810540892084334410077033354156933590464340572713350585056059753775609444102309114272283122061977897516444096577339214482111080168069629425446998533464745306632932193867985322564854392669964861681592345261138573626011365299083620325725768818272575582833175350804699243514905183392753246227280058647249079494697596367656929337041627383148607788743790421873557228279774316746319958417577136457566373369372237234159588824046046317056832368389306439011854023610851808184257323718846502113016340754935978324323916233700177961952050493194240214192008181186419365509891590501174960896584855925266729531762000079642993888651524740485274191402983052432992987412862458766790418435656223357291885146314794373096491861898794319347125826132940959000998942065416090626436593877584881217256922285619499429044095133538855269109611448798220856822305614132370112356525667589012266384035123370652800508931520864663125427242338119635287196663217830166910736447530258073802215453159785433079977461694954905949666652957703506090800604916361602482807094407261321915140918352353229222955654226171823767247467229618986766446336780914232997248820628399767516423728151334761169441339385036525610772933838669235529114971443059207885155154418124594695514669710496984880555683815149293382250687805531126910032577214285236835382551558843262423701392164809517984437816745813138800407653191789847026008322048813218606470454645693853049262807213457327277125215420567185606191480597055134706258468965739727503135023042886793400053102271602061688847185063693408475948286118958296178722731547075345744323348204744177053202747006898265961869559943851823359586293151250302175428219001718477907015505295925158869251936160741520880040790667729378042580354639772177553149946584257879554470646245946054371461042269574381351883236299927434490307147928058041317839449836523673301854578734420355046101734171970412155359005214208783393308289532982144675235114688765073560367429419355479429161705937554212908923461344851009908934136390017189236237341198972890088635017821304248276113621615479433864627065602949103162000065223451356346931801831847496293153802483026357858394389346901356926989127491187225116750168398149574005902760283259374466044745867365941689840888848997142498466951291167790811559424925013728554559918244504675808332425352213703500243513377264866021251424633898892158725765678053884498609941250215056645623891671426139973578961982260937236666087854559142671678175983071969675475230761076723497129706585814237265397553157394230930873719160941381123710418350942259843162348614480576399239601135264636975760043196015878948104354810577351956397957235581611269947740322742751193807326844741976362355714221848881668053258178746788431529316031829610500825809730007718697943544116872153104221542085844031439167183883385697151190177822569653594278269855999199171095482022723773753066842283414723399552059105200528048534213432337653351490211221811282931672383660456404794353582659843761818910387080201471485948142485177259323868105754180779045089196159015960703770178309092922409726016625310998965334665284779116180476888803518495972724328862004841166481594119014295301213479813874870954218090785718176037977581496969836390242259993683236787538677134055145617207611227854322270133127350765645728949942443224161107435627769820948996859804365895610791973044229566860432113448216978807365498241533395565992101821027568191385242517553429128610472961521835319919364249561239208068934521613774948894515260178607938577721510759410092140056886640317330383571297468433312348538978368329669151072827612040564515200779294012941941088723217415171478911297248867592261829359968149906233817108238918001533337064747598148740008644555050682724010902104648402942676735990077774053179514969179990984548475585436324399741758784111266369506233101346183839952726889295257574974642733204134922465305268959574374553201707304120101484133860525581335654033355768787542200532598423128626218794419339114977689978269342145707869049040297215426733823754004051041423386383794336575272058777180981642978065688721856422467617492219404391430932405166706046613048378443743892728392808032482025287373396617992332627468561152277370120589730526047450960501780352960581286018699482230817395966304005604343167144889590311370507445233133411630379167015907592779163407622978858819891046529624838148549994318692876859436878447892720958546576744971750424459935826233303339000445264745603675495797247365430346449136601948260983442382353518445055283268332424268159716151706699265618404568082804429650739074534840918409300614472635944150514001750474700595529583280687976315414914287747167524806171603966752504888536415390143316404749216141044597991335210154621083524358760019736247816171601266833401335604164263975948516676822970633415547990030776384108009621953788752130547999379077496508356918599178194181378801286043103839148146784490031777512704199551241934439055559146966841056979281480121769026537410644294243018281638512546840719648475372356402270467712093359036953024476208011264430253484671037671123177187867773987157253254053053359472487656558924891031761323076222073236419853125936687347063296669731753959236604489208315554836052406220701849312436005480532817943177025210486565297023969871242914138532108740380810229221343013758402235969392220505289715704276523761180386227088897221508898449586604949404874181370550096371626715093946648445597578148348496321137507424452518771523811211416717132372869162361467609435335489597541739413392213406730969449997627365277507165460193300542581227604128417588058628013351315487500800962401271850505825331692941690334474334314199810694209550587711248606907028251900668247621921032154022579840636508770627829905362130397981870129505104285122033284018986477460211485771846844403955529048368492441183518626987124888764862354325170476766564994421849132935489381409917283396927984159808728437107403965856504635111535223988362256766781981385357279947620126886476626266715543334278655728835468178255329680549767989030453958201816446387414226856093390551323723363281622365122303980483308312210572077452405170625906159624190130621466775937879127817931484301913357946430208731177516948120529393088032951450948751350060623056582488860430476899107942063646037314199811276073256132431344943890994745859429552525301885466308210175853334587124444737512975981916239780362870151330879018157181704244583022070644412169719488891351765356657771435091477340003594636213685513856777102584633051851762475185482074481567745161922933246571810713702073698163326384642020215247562432710146368079671931996625178566277625803101071046378442354040820907826068503212977567174396031515752897463253428953647832785963475313039565567759637294694985499138251997036457705135571972201884305442829593959152504177771545404408614791195638895991360003428113395841397384938885694015643822417240901186384029384480496083892214183757943672263237310210577829662976776830118175911469944668171989925466766829385694828718582994836604866643903684100151170309373128113411111111875894108693270995346492692210996907095379875386080480946929035255926672134089341186117882207108888908784980716048677062512783787849889452390591992950660476201786439708609835762455780614196956789047382711452268692981763043118325153445530317440563726950366491420217150035385062306621325740054920282019615114451774941051464648581989487860002997457712888480439275426040296124410146939156285064152845494000307731270118084782650586565232716144827196404747132266574546057060467848309951944129268962035853327668037206911972795837524083682672079422579970806516488759841223000881609526931247456183404466092300376918455958480984024022046092337061927218421220742272094904416860591545373046458037155862356951999797913367882027496689727169211241660079651107011433066668219867854938172337399568087771386652443627473202995654087190986461347977897875016739426067909769658112694626822329020647787876415101464001642797098604624177175232273532302276140018712748132009122316072782078117412041222536616346433512281044091020904618803689646583827881866751530417894979017892626418707092960977222347208517929303405078433841799812307226341995130084887302384713172016620628452131547253097242362699857481338370556820225032788446672450285467381307846843979889840437450548860819947916157140678947507174273626746220784552548027080193703414486823827458616140320889876608025067992132341970050215150468527279973580519669046835664459366195214904600494254499214621338215091066139429227822198831185340949949882835129825085937857278879389975246868828262001133393248385310262077198746055495180678500929973688808397582031668298750156940430299371090516553306096062414280932656249171324594066618022497763109449458358590959559182580769026100356070720264193251194861800172793724765347301607942295976285933369434518630854432615729491124451291883466281974888631361091509665392568934044890578984662852650547569393510976424525362617090361880366763750803848664825559404992924928877417195708329569403971857639576553002651925774847441970559765786960999215822661765008262948271192356840165193562580988440330785384506229091950604442617447512587546909885761517847974392652326046246471290383807685671823059632670113819966679287398562728260873730730290142139385191444354208767533201851815847544173041473016741829515028346554545096947526214747374288227568326178016293144602749309753287089938629881382511200414078023093466829717694967296818446700591433731634416814326350720560178340154291342862288813283399241954505453603364521234075144350256339122561355802865721578447385981965593214570331958870666572048762162289838389575778795343390477464431042909007912504158572219681002404091895755958669548157386809127809639639377823920239034170606827910346765611390432118898467800764933033805322822058651056354851107083175382078318341504861852865345208397974974549282137405399216568817265254249861541153132919860704282194317652675755886776942749947177431965387654099346005934636264423795869770970827906744257168272807151235632181201428921202565089293992204257581876262277002979960013513967094934385471686741490105054090298510171629607031684782559209866666463745294461111553916586350447088325096567950746402401347124208620923144272760682618762825136706527491391070348297988406760609995195493600235998649997682026748701668930247183623402390385772851239357474851401126240793247784827252376717256210053183402770671304646933628579247262280010217553721938772096476301307725240129351401300387963075296085777742789826017313045302792376003753739762906365011450072461933082636127962977493190043706004516298003992728274978789086478169023153531262374927135077857733937245606669547774358807421830914501664774645253773230106622894718487130181997069448198866682903091691874063453466598744518009175136196272368128290977673427786330335903038180889212238996240889408866704052850919923054915060674247214658215106776823870476152627164651111171717235307085619545871480054039670141641688687990078121766462898020263656908638677419173973430541730345878893800746904341802986614485618657761107461812333017985574304068815822543916135212302301673765268624819999894076449630108825744429052106609915052585828522284421605364620525737206996979346129508512789020289604512821442941897443583859912708611352611320412542470045975411415938018198651171532110899931288566742870018795785476248928598638073088161163848237947832629419239348612241561949771231507915140935336995341341600702617791867382995550533496500822541000040963814480836290783906874993611423753927091890799655742270092349574217711076200130074171966547455950346092142207625170193897633527349315765909162580099927072140701252296414069024667392193047402837110286319967667187187537418554462160336960393432398581247869825588567181050482275359491611902170794613043433668517868724304696500947028980991660756152921593336764867482640036976831131035745449964355704681496688354054555333814993506125246473873541688038238899443436367299113377591017520529617061362152305521528673558980430936303931896696456776255686789104227391012245772386992333850203300367317191314806860035423255521086803921727333424054923129744058017570259300653407397337013128461513726084066897075726105153270450598700709648904253321604849566222739435122627054913118730861115344013369954498967584604271664701413350706709683529635684156545100850635858269823557269631610355058948912480527357897970680930533963038042307081643319656474706577178140675713932599482859657927996210885265241014848855913645683751605974006678872548626211780521929949705012980089805536254721726449322645250032876170281739036279066482042997674277214461066815834780362253753032410666700678944089498324671229948721246008355698577112446646638131252511606785762794919538734395434978018998982804075960129151434648009903436310007949544496497977080775569279307052334509612162697427299270598584513855160502199881883332964185615773127082691022742359723535205547065911242077062271345205322179967585873244406992387857376235947071325208819921225556702982272174722858055926140649453799622814974083416296013740634987312868182994420926485695653353091703548820331620527865044255557905107235052087493184115046715595390617130434019321123773184219400752629095416060647261877722898645236839407706427256470164413799614462527708009949345864859714809986701741698421124993945180906526389146674284293958580988274376736208191755782741617544030571533422247484287450102606023704638853481711502069210276101976301477433968752680822931373506685079182585953814756180565507134411214565343241245438034588746345458311469247193683135031034219258991355044859753625530242170894808854073558461879015450597686324444712308934487595662313621093650605843939315194215476509530019758958799005506670599612814484043769138541986688009701247366463671340359452694205302118115163342687541339288260659503103817827133665955880157053589212031791961747529551625002833366115018825021109511013602488211393584559577311323104378287292729524214752310941080186619164594773367327319184350893872615119388509972413248693261406038769716103640400404024342814995802005713070042398260864100308188862019140912628913637308432950122708610054313284039938612052809138606915667231242687185607081878275956711889355218366132560582910479775710151217562888207013336536659041269217338697739460108746568005264898912644470422009500613760406942391933070133757598970834555944479831980263816068874495614195326339505449953193312262571198604667343115038789161649712726390151425158386359514860865433003866694318834893265524283297340061692405992154385849795156361685013829113213441217819088227101987296766949167660605014216868143796235939574432985685340326002019723532372104990356040731733788517914043894662944283637059563382542612375583485950811169853596669845527288472447709548376491491987823801651797596053666157693274279244914202519179832369559316579275391902299788266963105041501845294997969960843456557384405088640673672571205511325280796649690989958357097138795094480452341284327124785994081680618721731229385527815910607816933221258737599070793098603790746590000992913041570358382217152717464381790781979212137808675777053378879088513572401128550498557399981001142893761311681572511056880241355041195150235996782953962666127689441278379791777808719872178024534970137297129764721292342430544477032965253282655042886344007491583600207772728306375167257762893753140165904232386911327590481110393300802195470802889145540562178453865969367700394487578471715303392338283495173713972187340410808887226160627030539672146777082098062061602023900694347678906771602290917773833091555983570958532059421773464971707019925077442868606864827332834199790538368021845873964139616780093971098368654960309577270944671697745520540482997167940279410469702784316373601240259713879197552862237225809690089232456826106808823211119047567426827231818271226136932863374185345738039502574068421616512168783901353679194807653461099318205292784767179270310416016100116675087171536906818056985917101383481101497407512520138507341886752323726547711798185932118033417359895150101347851651188167045184816924545107959911684260910511955841670410012779213568958034015792789385378240505659938575385981243613781224625308101449650840405593076456941460982275048806683502413385837345015324667641538164664387579707131943192810580383484318785989181391750546006508794779895662021406525688955234580504422195283218725166322502325154549139322188336364767221643499366250673588826557805381449941329343717506073663222426082657676189141300264851528202763095411517052797680831213248907653296536177241241670339937595483960341352850227198375988434377128654229149624558999990453319483242753132412832989820759324290748953729019166522426663708233468026456634223316250224360986607365168221982611382526623799746200136589207746784002801535672032099684800508308058071429263358114621001031308180842477515074896084933375510106554438485139761448157633960539162714049763616900730695610290884125693268756647327406124725921455592962095719990943299547382009194314480672060457743232605573636696386061248673162087145252605100045453578396385546217543453754540657486206608617326316028389586336666353428011330550079070410851452875509077484511697387217269573233871974593274691720401855006191218179567499259776140087799827736193939034367481303144332672910653466155156396140673936449939027110443767738152554933265956756808335854739877498470600665692820593967888782577681093961325882226466289344743402264474163374626835800368169960107382888915792964288000170917610132550625701624798837704925494029455841818305172145601422214047025461607036307282631560574761979692102608460958667304810737770177572917552367413076163370898523833754299105176395507149089019040053020607989143941907143070645142040134731241076225202384160152372789051359980652410951167715771915178882124904007039666379329829746635098568186942414786660451164719393276633644395610093743381635017675636086306351963899607263797803009251693889205492384835716733790432246495935331116506019142321823060832129199073939219807570267462257918039322683421985512985262362892068623993754289250826113941163659067243693638131126435308813220890832153279046614193581392403116869843045092175754647913849088040011360003656182809232780933664690540983689842847757203299426702687428116467171170932654830955708869087545999901490062457208264484270473389340887599516541112651563461977650212605236793193832271754308816908215763970620832263960982308577786010193202863540079849274302511907791952666600106903000010471639287473202150082488063489141541315590844237112425456483089853561119460883661170838076985441904458292564328732410134585425441320341726283503137326431164211851728733561568347220966260978325557693754032630660092193160639114834000986256125324158468380092301450638685101172499512754112237525994001321299334612844103356759919063005603404920983636102901707941595391686435489463031677823671406985470792404660593880099358923850952870744571074627676867104626850389332195590849156004775227471576885701438281930697770257449513409708055018082307586581289879117303624377787476639281562366061110110952098840481891656803556275533071022373208351342863823060267385694664018227790558004573402974777177854343842211622915892815025280503885788234429852439841844466539890781103670286803202895424232318361132311011873507447453505293341097610236405731005930298769487415840762708383246528331063338925600434166052741178491837364472181298245187783172516398480392381271016416653120708375792950732080889213485195054474286694143316838323263790425835800017174405785313393624018899349781360783229154836479857837880881880252194997827463541367774498654621508877181905293670801104956229947431658413297551261495679520333667368287218746096308103450425752022683582374070263607772896737225103383678574716622144000922274967056805747631602471203448069899330669528922119564370457552896398860180827641064603745158092983166008767415956646264482803420010268984855777897902734821969042873181208917543271811714180955678690677552932521689768846564277256325391257066157228556287604188447659106261418940812775548310038840010691255948249760940064459849847975605637125010841861863296159845026649987535227938649540734418280059305923594998319277839153484640218107449130298480237624542940089331007301166391990119215963014755459547856716045564147973946152030160570132974710200123375666100184974744546116892290710310272027187356105555087494471874537337062962509094434812740942928562778780280277737857599931432462991571193667487722895813307448446423310448532737685265816765511667349249202149967866241814580862592621159517786539501781143044829885251835701780963304948606632770138760249494410092308192439565820628770025016504280033909561399610179485054649144676397960186221550864915494504532483175803389503554738779639221658462157940403122330363678657583214275493249953130528813677262968013185589923453071568327624941496270293666779743492375322957744215723765281147348316537732965633783158987953722446879068296408485473553214821456069630480875925666351280143407611275821029901467220519747459443920437793487840722473451863774466055392129787071637924926590165604530327529315701397951294896523128344270786303426169530184085281090999785892541985369109790669731831428788306706358842275698852445971508255732182869133087839416902884672148114838020183632683936148766436755474928841934857173121502764850083896407367416444169553076618777820529749687033048853566212287424220360687295011089321417511082023127325165871254069425384517732164318699285099117192774536814922042915282983448286018573358633758501871992807846558757676461702786171587810221860977222281135567819977644606029037685342633262049396659763729335462547045390300166745583713960748336986095786072043968199435096990182554155453651573537199615141389070044822389503047435706598169852872926258503014538176957676325459039656159029872234330843217307019835393447973059896143809800685449564580249343756024685816339188885193110698021797228567666112540385297196136770024042997427752584828343998397055619911972529266449702582227321061815581961730568487660331200707658729725714991578587745345384534795827597615551837469611914864899970842445213866289808190991154941099333717049567280929773654387367898263153707824387220350004290076718826390337762623335450555871698146752531448794792886449529191129978023564425571486767613508391389445353892352469158410686193281216840150841671037129941600383834904413042368074293650447568185877861883960766420717783293956658237417945124982860654797066256101836639024050578219457016332470628684606905687367686187462312380945712192361538964372253170355839390194120746618774892141527768328592230619435824789501431358668947167460999000641749989767600820874145732297463821827612285511821966008467956146661346575313366099235038072614746479021135327366547782415823893758159460935091454319271449401269780891606947053008490736307690125596039087270514853578004346806090391798787468444699149112088520334748228036651063125530379067193072846045967369995959289191281422157785744584050823683929152534459001773884939640553811285922556450530804247509581866527609967815513592452496899144919062767192455970247861395527815765280575505844750378559858273989499220313671306273670959771530313932693208683513561239959424033417210124353524239788795775636625065084540896564078321953753866343530025380475830814813929136504972570068436564513434509584890801983108818466516662121116177807680528859974582162522975889194456906812463841593553548511769807083292891058268158505453129234898623930363402684455358422232870580422689436195182061111099088831051880498070538872420561311500465819619202944664010781253539402347074494866311584193594090136994472562459682460976642251083537037014375610083441988348601479565363740338067361566682607895580700358668822653435819442029671831881655025433480693826154433488356197430028828165455152158436225860445176748720159184907869562174470182916271030288739476138822420794051714608871536662352931062302352957041980581975152202548621709916513067667325906366794784831114349077976097855753407897531097659573030572757614783150474125667150519593816904527649811171279312420271876899852619441714199825615963190810114131054070565404712447619515785522871288564704848232447587425100672168276734897121698497667021412213843971270319266981717319939973775350419860961322511540394062769963105725852855508677370380200096697860987448616648082815430737181804632453704641488317825079054071187029731643926939132209873122225824156234221068447875270157297260255362464411094987665613390819777022132355426203531582650896956679458051157470541038216218925539375509227508248477575428516546587547620262243200074384820334242949124802766108047303625287787377127739151345649980285407104908568525508212454837780787329459194574807119795619939390250719608035056561061687229509067519597439465912154564859119470664156750810288097764028846968909520799749625588495247128633965032395610965882425964509879657238463293361005438868601090212680205870405450004374177638828681340647895879384007825421521936898858535610426191024657394191205404779173866456090373141645300609212829548726230742650304445004342387889131815620101837009638954067640629844226252129087271149648342395541244525588333965751694145238911208964645259683266855460423290575637587288179268853149285595040464626319601179132474364393805033911768001770706581668190312136954974780632469787021299142794177207081681814372518498858599912007112761820509573758831747424992922957585350008771397067683747969788719953061014681672368853142052748596317465493261107671553521414794706803191858612669601930916773642218670051581948305261532857623559675035931055480291723619642281344113083967481667958857181262987784827196908467854552702574975043512187134445456779301987318832096648764240140762388801964963361938013095953538783657219084072827682339087320773444255143936448331642486229656590489659386664533821701094444126130669276756896400078929827536792345549761761425299523146315648421194836181289411572017761448712128257518973022816830925069176901038540336115084658447141103760502671808961771675600546367698346436121638200271437818990300178642912959528191137012695524445510348788814498251267912611950898536450212425118342830035040859969840526246504369566750010868262831605059068406338288870372484313749156729796656675083000891957375022623486064191186845387005882374725206925067009512187284449906296253432001317320420020367301071102823399385240641818926935936138172964486403332505685290176918536742097287999303876756040492576596762409087676158020563400158647720765175854040888802545330623282062833121732974172261708085737073624696510505034641519875104750344216304491405579270782151431357383811479774904981858357423619676516494642334086305575338918646894498677337208459846419767700277162690307655468929687617974714463228070271148447588754397869008743253234667381472776979329316183539880329054973645106519607971322425119142061509127851936777331947517147411309436121768757092296937221758740188792601969863476442037891487805055752308047407839399937798477988041606810767533652527945978322188665740115529651849608918703453227930502957213601210760963072843402537102581506956823663390777984973542274418216543630837175316715393140557772324202880716373255563799146634919807958974120553755656283192341815656633514912044884168250737192374185497860789191651632460432477343856140883990588095970667710055113919243840347283705230816277152295300580289522533564712600549200846890423282152427442765411163793158780465624687252145608160347157194732564947578801947526659375331161596989493491887562324621581385957243654223658149619277694419203874582049738125478166689068709198239858451094732439625621331766410578368020623183707217333647701423541309686582393916342700186924980281877743942076952734332515074306792244579960185404952248621794602519731434820290998517642063441807468919286087988463794097033698325936357279489416888560615736720967222377421278514494008365096575365311882093065561424820679013479148717575449386045736135307924640962021571266422991006776185411188095294638068422367492744031572551528999478566342873989292769751579979238636682317241707303817497579376091587364010484920218492995872665640771552181824628795264021849296149558733069730919943527800393351422524993143349564175307221295150423462355687973618699577364140461545852182726681897945062259373074765546300427874933748592897430622953124163570798188879869850656500257397256482610010325319525389022601554941719847059361690958949470588302769944429717319687927351898649783753677516908203870911071026886273112912998634617511996683399598275935553912037648750193441489861501319529804549636607484801797887719123215141800260319181112403309795749733397413159400523340906848671707863585783443324592571036393950069310951282414944331058713152302062297644751605183233527756459654892338188645800557968446401723612768066552199164205367511822287930149216117161941066057350390511978837507088270929130630411207522899437038445878553096775256303568075665924456040762307871331912667059047254598222167917476337004434181567518531251743138593674953691295499810623421654909077892919108545121063414197905621781366211660556669564329409688925411541492517909950547144156870541473871824087143743805432368504111820578013179795918204976118953695936559007478969676866864238291696052414542254238302118952154366207815208163907527435760701745325847445311841676615680765009836321778193094783729983840932022061232660459664226988619036568976993253548594118834509481745876456289438740542449882069868684695693016014957956161145929432578795874164600154638090389169509385437677878110284087258921239904522671870024888878700310378729431252173124788860963343131637171052123832560808659762957018888924807241194214411956197752551193281643957368718547754689541708234378695336291895074951770438842615229591468020694672654024674350575910733343402175750553368170467340475460881646603949247978527168194398678627661981201553603790681559847105098672876339801875870486173789125685717200012947768500263305714119007221556554748006962535970266360464705887270191560027729298470937688073757623952091883269332371982736184463047859996215734236140750746548977179216398252221985203625678820664897858372992341190757411894728105208615113160869733415867410795430632886698999251524101246909557927482025990429135271926701289792729203198086601161398692137145020992557643520289653949144590432896636607160896365682342124523788229848003038789824306516064455043700088772522262349312467251070574627310452340015219508595836855867133743857097590696750026108971165382423133534476357740272071214624541659641916700184298349661261648664935403030460749448364003946520788901931363128522945089229615622532975191096479449925458017866315982989834308351658311912723432470039299247880347861256156406890283472888059127721232252212121980072976118148043793293283178610001339579107068856679711490004626330060966334752562284638711904325313008756864538772344246437406990816522301725075999475161958872987722001165454826598731260578563101485386806980399819338336494334129762746503071925719771054555061109081815629544055713527790657347900152424142177510165033218453300546971998720155676996235208440802168899778219686650223779697886086389912048850352184940466743132719538719174634728654600189446455238158175779174794958619007976199072368000152590586623068693523938982177895928961512914049492520187066366826787697573411918886119700316500508986486485569961546236980392886630571773154821433282824315008208755352291725920108281384749430701498527857856732790262669033593555554121946488020642059382045617534160707993742077055294697730014578825962562602097059286162596572358448331301905637220227163344526890731350474451115958058505846259864445798097728831299680805264992662525465347004248556695516937676308306460219253658359275197442868672762944134557440626374273511090031611287883980680169261589504549841263475450958361982119754103373056999427004157976319586094211347854670608585724801268204471499331157258269316996652550268641330496362203862167600534009027925911277168325834396398635031601642264326978449546356732589220461571766168971505375820741777820358670089376223923062143808604496704783663892099483092499971234300472903216646373448166450852726796667458350389361632755615532504376363910394732335143337542699394664036317109855350417459345506839522426643019379531461061469919891209627584202016759351366859975733422634859680061868567998528221840413523253923799105671913293931445174705371585170863817728782084689477837489466900150500139265365998831541373385762752415750947492264565743474649794582452318655414051973573413594870544010813498733958009928669010327056715590499515301948839026314723179158493121027066484718503185381750014180470556965534248052853787661189769192010253559783853006925927100986095019634424710053788068819007857022635947675424766429232478641634203319892496664204512084086289795520414322751098660670250557850679731007729176814377429002504608530700388111661028108721232288227017154666762379889726687719094816901400700552536185857139998978845574387690813152582571527196910463278359642596440523986218156783195670627175310706964949582267059779122614387842407382204415797993364846767657619475564788686538775606539734908335248952712285975410329892811725894996837672828544641095935324133633027823688464288643984011416611040429156965315855719129102446810109112004069946502663365383209674610806084807838999566341263701505059171502655676684503968571407186127689205061649175073073262570636369220711867829516570789048520084315593643624709572058039015732025586979873248176070368848701829808987537627755289104582845148247612555485761267778492522608520020070280119974889786940197806678910123303043969652405923833553000163112644666131003491023105765638678349288885729380308536810190795842118760959835542365796283818518872496199607494402912748845774550999692592048923159039311708406153519942823224631289415535806665514139662192001989895824156542438692486795680841854701981009135393504064605599017666871398995978783765479739827913573913131890102528280798931356263743640488047367737625967173447880728467923686966695587602689296618223192938352930025096506746550076991713837511172724033525401243012064542560721265166436210700073644677684367453407680549634040794516014351848790116780185420433682893911015776002703708834317739515719208095710364518642177109511758545902994893993793435437891811933658419587270681745227295384306892493682447901454739504388405999598024638079099241507283774428428827302146013236434952091652555435247583647804596332512117958272521724703760346486400087662301381180371191451007682581849937062429366174425398676543838724491258207163734386216170801645157460797957432369426461601521452993113022216430708550807294319327343181834582329359423757032264185284955592436082961416131739107080462954900919077761149639750697593740640376401737468503502543872102172675972937717583217974051166186417297549837693996538934834495841654157461733092489984575857494913666508374176635718597847222637387022710198685889229084383540204013995113785973707395180128655466528810706615876757973373114279875652647576312076334281430861721072622935257388120397787286125823945384745588719588106205153558021607498917022926857792703427339136436436445880670969385400386775000777630189552745218088967568260780466518149915066719997177829848707860268074531431310223860083255197612437807159095381883217883222985631623355357008126108293899768743526451291316243046249571807989779638074553215925117562942581124588226474106175316986464692566680840126676635816788936239407479249902667360648050534108817133211119817549445081329144170679326269521555938755959915798115999119248257507007728387296521906679616322192412535171473055160911069587957636254177634936412553571943018144433281277142263603603455658625915304685555539057366333515110309366339732965361392335264277050289586591266350764292605936605920975800615966056190033369348008454193402258136391367382496563650024594265841601320119767308257978967605075309877345680331408535917790955826689807371996808571997232257336972519711798777153686655747129401710111572102195490102283889174820770396432555011403825477615198608822210058435114941575060037182325196988759169812671011492434907600305707467239989567223960437266994654994360773171309710261298192469199364350325470398964395904452255438660796454983186677758964368223692275733130283109659038904759044328183207321454468217445412110297054981729776126639768591145821466030559334766491660159962950512343737299747116889683139234382910571471220360420046120864779538584338014038706456186212934231838221608765195088342594735889562353826530077992986925686114783550077496978633397090369206787713654886997690919131506451392749968190435503858648977851526926874462369557259081486274137613321459682720280526979782632231738186635036696358660251617427933686417886908165301727310004961278995818684031653320902821503866385697809605202559608961129027570326092583784330335418666826610942660411240233476154790770668135848754105866219281066769192342809524602958164080589049700302999473239791891536028290712482503189118598222537448648358165662447003799867286033826753413788266291069647182161161584964624278904382917365552112193490068588545608205902424120680693336764501756556830495713691706402435473320955840656531368960297708535828321307442662742259663993783151114708471363039919585111210809423806212699755282215357315687500209382322259649366525284372845729861757867618930602550876737340826700714991651362909919397371773945105459017369189452687140621134357367899364927430594757296458167581359627018732142271953623641240977851347656946117435056145900134207062302829805396299270726147426556627550542241897636675031762784768807158845744430808325765398711458890291269288494505749746540749404100514704058937783112832416365924629838945794688071842129195900779770634931232192779929430190040669005484611886200149935007118042821453499799442746578561903745229487172753801984805441051672989310197185801168335969023559059968360412022800855251948597113914994675881561325420024890041784421354157344856816744822313107721926080474776502624772493933917420136491000706184909132148852281169172165400770307302041106364484583040766073835019571039700838961675743736296281719166111274074604736387296884443300065535489742668261797366055789356020449637727861626468468572083880063742885959026817034544313210115620606780903747633127362139218466837283221278681050579535294390809805301161055011899646190327368174904419654275569412610067249311792743476227932122917902829724021256154954612858005006024721298594933599482286124676827268480871078889307551631884671609031630093847563960412097985333003885355265019715675744857624794485629985085289589870809676381111465082612029911362850390142471308782251007720332064619203568695415401074905550290070152243112485099549612561987821178830226176828232211703700370571247705860689335811838655799393715975496630460981008955246951865716648965065603850652846725446606867431864140200182800689280486545237267697019818237064230061996009514557095147738507257117616739158060600853659340255187492566493733875781899644770181426869141956305107791612329208091087287994598221277247551091326683604426734674636658385694754097999912470531941093679709012201812949824472083969497367147230970026960562279619527226334090770385048201092931745225900556783517167806925397099834854579829462914438545906206700252972663488878827316036043415392877694347850445890158859292811869173955582255309036344736472966430307105126336442501172195626286102647501796767959029604464044905067766061621343786868220502216101830879900866301833984573154295234043729668202859692268578885016391726612123265219964362612206688180070422502070131342314347508072495595623986039686050831121292740445596285379111031114674131727497440631675668824622988126547758412370268131877916562729862851152832099693335829485966805525446895945948050101481021774616577511708081260637953250249055341274709216629768164161533684257968287951244459924986188832144525966699994430664920976069571150810234795143926832100587304331576062435180278971168661088919930653344729064703974915762028379105639388032525107907288173967847254808703523979349655335057070189514180459648958849362686622826819347367717973134492434735107865600119538562541896376249289375692315735427153407272002332974628020158464273715780420288893314542073828684344871624711311992417933947307648696500667194803579978309250266805828326574444445115964616376957250873978467431663094656139302643635374023036388004096410607009616424353464960768769392475799619991746217195922737478885625236254319273602063683085401152425629690799797631404945668108998061667829847312881433146034824914704480686414925024684477135548056191712074793727373542359597588244977706627552389703715711974881137193681147026806552114826878315561514241654761608164983904049167176817068560424375670747890797116842304445589625096340769877937807641293883192090509120680841745901672200864172618019820207370493715974547633257601611149092318025535420554312454575720576164942558334041160754437442814972961698862404545354661980277754210440738993526704466840535157232978606962161731637414684982550315221552860342075692522758142319730450487815400667297270006682405571739169696437126490042958089674331876310718882062706342123562233394682409303449486453117407230791933762281301664806768159230218814822249899144007062595570865968099504413931859999171630412182502100712906466412397044320205070854007853228562695245159699456997444566925598154306273898978809561838926022857133998848037901005921138971246838602709961630449443700028298359174432246206449873097881031133537630130392691458861270472788776930376445037966996185247157224644472103154559072318177142795056744740662499404301955280503769370438768230578152592207313851524572489195293091600364350915021225876720137206060646127270208507547560713697823322164973836650439758710215184024105805080474734965475195213306132153181877562181626743557042473111482171721272822235236991368187442317498673230654029594087031433808547441210186662582035717758711891936630889476933299453204154318757156883579971376501743093553265300109234115078065330795976662227903771501295115345168117609332939456063084624419740604959002805606173879184524340778920852694882660284598050139551299926833378913573413206156122764788879645396733039987289816723608074420328203565224654924460662770302401709723459811817917377233075755769281539926363938178761350444679573438468031910508424652141982697337314319812165654464385079036649481846073651768638227933104985829687667980273958947549869308776409090751073654272866462275271759325619159866734839055814397139499876100923517627065341892213672176663483351804780464160578957934356745164107503302571611381529757656500577942244089687890546647526843469213791325705890482882171666949531806369371447149146122168987282707724791735968156203156655930652887511667563120859975127787344038439124693962107427064131778412909867775965568790665113691780798290004970209435365065673945690054859139567589456465005072553521914797422444222287490631416886603327235491092849747419271239633216928497841122169526441301700270830240916384370361932237951736929322518454480329827169361950801472202630880033715314632577081891755423249039469283144286133538274622852766995237857359051747887101084252890182543403422757436670899827913435108787399916844229990336451780162367356257888304419116818902245751064741357158343427635449632468608431675421607074384458266454519386689842013750679296173225491907804066439737498611081253512092701510651928231800380469618169337737311309421042332836577261718084370581007323248450965255880744891811525614603193919329615970868839755318858946319563311243326433816928664780190716247128810966414806214676731662763256272810989699631546747712688320836334291604921655531660465532826669218484319333617482396609268559262084961653775304033188169742973802796852274670744752052229260907471302409232587163935290072829987826658800692515737210767215396114606275214809219036633703340662566575757655095177581494381377943784653242971285471865821382427394582404622500374046765850808253786099871586010031933206252349455218253046993181970607289911218349696323436741121787268242402563041299733689493701168995415812224934074431036140583204747162104620949916692677271517804147950399341966074596050289939249880987447412703142237967490378986651521632371463968564067564930501442643899993165175106295418646678029147387796292977618964373664635175271636819068991514129354583892491470008895107667770345942625857357048258679497931145187339773522326661569145509752875000737897287580853416074943767690199025630192501805542366362852558863479290650695132493302405373232815163727851628626213739091087726437443010876021929766959950558304734271571002042899544784368468187225411621297164029716318639616785581185678628104998900261731742199001192568043409081315856083784462027586055025171644267138365957742680426401602270016027593037824372706498215878446778158948107444760255310522025982968409579845325616981506905009373322301027049598827520240014983248996668310055180797098362110824521453823713298776350321562219128692992273215453503771274116719758132744108542580922121011155999813056983250104199650221143386191748599041039824934040368087677900319891987029302886198099539056227823215012984784053532748749487280950155535520734073167506753535474280082540219755043198115346728667041685946986325395820241598891836711186387886887141614599156281532507512845126862493824434399850704537244723655214037205503108351244663331764570819301428564355952709282987062597964428590191657746207939361312769948489301879992830094684746271474748922883370750993119365729398974249023176847586957139943862794710933770212698717686402411246180378908396796152261352580990382938663629944218503614467104129403936747732023054786576466025020678849162901655555899756550097781805231319579005388284955307602452103587851144896401299759999581128222857668899982235108232865112180906346727207842134212805731777492283301560769058088173703415651401765735681526706287269973511641249127260149908653285600871363688757307961760329352838855947940865189774686829687706120990791134307463216157231847847193168647852275810619605157714390068366060926930089519936053563689790136674526996408285349450607537411336226902919401134636537601834771780538879764964878439610082322925668832320902022580428697259933811771634991032684925898819648334051753973729265307857539504869604299032992986700888235972131169668776748139518272052713614146429061359968409043147782021173813764896134146274113953067651679042441288314549653606496481211305940180203154216141392225909602858349989717790788943285247365576988542953653192313997013421561050567387648500966031911210028919585367820119627182928081836185756982591818305403862811465904670313039519544651125308845354108128059798331804669196720413649399352563658141933509982958417443448314797077123717856977026294233680759998248606362698837415795894486342654529491846331911999417191955301099886441957968520807891605429849049988958356937680607087052677237788940137554767792182362495772900000747706681691147272434116496608142748023869587258676303857448739685946495763926565199138387404187783454061827142408100834125716313509333725275966259739368539182796749623913754719861556275583407451965095750439200303570870562031336688247021257164800337080125687065953361846585544284874321159717239075953050407056745540712091466479950972384062222372895421533507189251191975527588036131524222026018153221624953400737370360763298405837877095179576966135531573692894466519787597983689124514671640497102726161040090333007864220451749227812731103059872426391418594608114642663247015379850568825619038640129188164709180794227818486064863603592353943555208036763116553672332339807687572675821399755508654317369743089509907227057321859494996465585976794212621670674625023265383469216627433438803147417663629956822517068050489770980769609856706463770584542753727522772834131390919245756023886355208696566867196519325999485892346859759999679744682606747359940765873928729848893832647536827664736211029355038753368715380483509517486194457239554294871622899159827162642825755334803566844251090079612008569641780497026699352730370399920907915487389289696979569141868535817082060891294271467808952879161358714712218762825302098728665570765212920011062527320525971407336367588542662297939750059246338341081444734583803174555192372465911858804463624287923372658284075675994347537083908071215980979514209637657710110467839681183295879937191395076950935532724603305096942220342943658965927085830115825823945478119671907595235418576171119403371653487606556219528668118586282558247736863961276450940655504970876282566121766257148342308917143905676512757428008314224787950960864268969905261149973058160910457544187428419650237530891646244250337230905521194532116089308631497076206069837715252631582236914751832181448497216948161708826995529195104427750258597408762340514832131649785062579587477861525379620781725600253665985994927676631014505567478965388013050224065117767661597611556177277999473383284284961909901156184869114223728787833436548978061844502602560637790874784889938257369650146366080017221407550189494838102732402881611423991507931388941338483750542961144497619691825231696640701249417728399575291206450592575356408669828756495605909162989644178961407789881608044211971510659630548149653180681896249829659742559538795428336887057170134710139670111872373243121640471607111438278915848878604005347760795804555440254095746610503209374118506761940641127692919778947906954219284789965340940813986206338008906209347350612986973255265117397065976905330682744824622244000589439655576853473899907723467474545337253936526141605282625869583027771895688311731725457537217334023177156494767212640912381882825122205673152244575527434602009838311530939255952235222441832282561738927921452734017499620419205914777569993945129851375224433038210903297103183822858751036187672900197665511624180446318094067964152830731088415546813897930229165560262961125279692715727951951775525091870541951185560333363362322760307612612030604485916343031467284816311481015857642927848397290572268150562093832696207752314798240165721879161291192334803904158785730424968755415250191580018609924588116403488948529181699709626271083439009141142948573042832234919485559537334025691152958987527618685022373155080595676469981454096517420387755541752574158185939148942832257598563669524614536262882574363732616602508237426093587535977696103537822234827664320805093070336735272181411662004678351930852057907548552277450645934456485809213376259142784383511633841967850692140641638061464314864648415438019271453352347167899554263546776349702128826842718533039067194868968319850105654203746259353730563707823578883694209082843051689408111847268108420887651362024654561530540271432059536557789347140207726491144840372948161667061364760146343678536287936431786650384693746651691433624836438891387233187659646435905574079808090106029266692060393400837781261335825038691305967527987342620901206511005183400901602003369477888236409862454475929223720263969244228122148929737979034334024587214531506261136760166582536352763468290089076181241524902024488043025922374280238025089112176668558111324529346280192433310437435597986978682261971996818629796564811672400701649458816287644497509550547586879516868929427239633743302262719824736021950541822861553414640927950183543093397943937473755688987819546023625102442770495571193579666542633540438839057046311785828718348920567396730714436143656280033016081105259580156371410610525468496619821507776610906434739918672108980905067201181553528153871620244027168272861857551511322758589637415890547989612772512250201859723491744679224081725915797772775759811700670564756012303535108996788798683549352658639250967848395047243388555926991807020634369574850503411053417097215680135998089087061823675174292832569150689224432799486494691097459834352269456714964355891056621363756322084220734315154685559599957889531640203192299843044691982107443863469877254939352665752097794659572308271800343618185604361687957673922373129392863425679160979750177641138089347091629378170155310678908964015828398346544280243947753997793227222434762517721838046450351550838453918714308682333172072846161909702711499495507170034740727801898014151617838748903959968536498611280895996644239250473424566630458436088250840431452735727585329911752566876104392008701812640120890240891879046909934698195111100838949517824968960557464294369178367828895770457158790825070416373013129205513562700148520054600221300595000966446623514141339311617394711188201132505211151431955243190127524847533308969981684458729613331696864982044126286685073044427018031261183078893737126892505468065402175744965278668860436762166866099659164100646332743770755113994688187526598466448618064318985922761880213161125322309982826089169772327238622387982533191761263231000192113251935410086726126685425459511588958805187507285908698890350041264168209314064655325811494426399493695135301056897033177613559371964519690985166718683460507744779500204264484846396485362063212247592637916930399683158031678093334689351847789074716352749103770821282287193512580919951699968665058485468869669850133933145303611199075916399142521905946930727416646400021575387791443584159607779664032134919710887186021871990182847760570482047258608830415718033067244546466815339107115437759327771378968747714148934540708608681883901681397013044915568163637791212175211374017975618386885257923275119202185575129178145287162589979514381884282736992036360650599861458482563005299831548711491921679500481557793622988097650929638680560535755371156959818579660202656349890730418423260150454806452639256147092331117863537552453984572826545253902678570977721868825417158979673468938652419312960469441535279933962786745499291944870099335088036545383205975277185611686861118257063503141504404536761898436357567420906231800661326998406414325567361688281222500122481431142956160182296163015962981144209828635944969612444074511879507911556868437140962359536220833202593362708115364790728413913856443141840424226146447732602610900598363957205988098876487413021336266215998238018412146948809833525060483259418903162396102602106130771214211404037842668143696525528673023744310435860949457227076956385666513532003209572999756705952319953666602690177603644754526484143166208204577391608623114646310430151186198787681518074448665408241206992990364047591061366530611589819047400551875030015320085029336236754976832707117651892746118905839126912960380533286770076957116425245896924474845735677563746115168667154374749559797654669741555572950557229806820435252037931464047536322318399867422951609014713586419364330888700711062573544018773979145622542262336974050169099022797188863020671021209389900744386032690615060925832549558152330471451695129977941380126790408290372292453207834078195973328202563015207055790727336137872464578827339311645832435102189958715885026079657062718130603530069519539616911154287076347330933928575783514857969993955304153792932706636191908180602127123995329042511159308860419820643509375508460385397649802416178609983350764586403053841405897115182219347353509603901513946742767294583289697775441684010018266452795255663960355137826328726113723663570573586757513174323838308524962894354565133717024033975496473932422779649193985868060210480444450741513909749246460084580203780831605857717130076495189211026828968695132443068868145897363793148787850923549438557677671055763210670258843992207486152415709936150698614040310406436954281919624752285851627230092751578795771360621717354869438152811162490396984069326636774234827965461046445237505843391488555745131271470905308208908769046608376003728383044524967415014773381738328882943879446890567110680577019055388677536009733592225736097447792114306920033601603359689486066005730855182607530710662018748548199366113015476002514534614265841267729009687632680112711745922302775234045678556569268179788254387890050707307800969482782889992122321024023354199706433432580932442208301061236824218330222461110451627991213743764733329981761926494294290884871235683641663541726887674061513068807123713566214364345431255564499080539539117782357647276207771018798187376402682653632041815133748177420943489913437339467939772989162174898500836855054373623384416821637988716132419855660717899378039400103686681719686933919953183541292800423362500916788445638040810468631579017110851150127965414850807966245060914307418094119941387869774577536480469109097773068875575729184214352504150987256937383810415087833990156532751603394626964464010790359595794549405332946741387657862816460549770012582728266464852558488304068090318184851268596369303279256546687405392597611998577951383901111549491315946579611375279112676615224203892460978011670205101894183779260894713312103501276911024776856131355577255690000751318029558261321306232068040670219628543767399182747454197959720184282635128470583714104675734702907930942201764510224447660576474773373795721381924129897139010862753490525756246668332552105080431249629387110316563098982763819112441788920419438660526376302883285038122390879808720758049658267880766431139994567388182920994042405901054286415614767992036786756421231917487908175580748285519549038214326980835950014574350685429489858813865053945671280961161857156109661259912197769406276188363406978812872191857481605247904918710657006800756785433317433074251356930052984504163825354896826670768512005628162701841976108812533726595465836061747150863785574517404791441872938714960542592847968138334843920214955273792595678576696836277656673147970370318092306206420154518472362232580741203699590758409763074794542128329383032346709614157805113964285330577921277745177199911926294440395120132795031084738658130451469628217366409760024341955878446037256355743718545805120216871705126128065435521600325703986235521452536766789183271177758487220573691999356818592570026557302569037638246086124796207335249583666917326263375645376751204411366171262230938802271189764139204168223346723832218258185242449247411956640212730051745424389550469350056658933125492563829297776720963013839597294377774067522502855680820888852690282768592261791236689143722179446383371586451484813420993357694028861774937890451383162180759483030287035203077900750262642115137781569181063966196247001862420785211570241287879109106491933530432855832833944193891548567927447715677123988621595186341354001540879732233409116965559496654265372264499910785585807059324999652623434925478880667025377793393465683645412006944106949577045539249875237590346403477595789195712936735604915705342855626544954841177629834683245230977346239700571416419588930044304259279130287157300437245885756308905728155694830360726538511777114715014509735283575676583892948241907378846949068382179106451867972802104925218639241362274063136150300871733871995806688903990859953071652166634762241187567451406342195409265152689836266689385184878408094367114502068303865943431335021258887625374500945084603312776089129148915010346855085556022025997601422041769005722919771387667373361351920568232684437366897245104304529378082626621796055831666100180057281952593869414912434998020171586807949638073274437779806480553269306894877790034480660990375950533000931415801925040305709992670597425294464939183085099848569153258813244114391439238216000565032091387162211321461959845129104519872935722561180988679624165365464975642670767590405599066506716421625478181933208747920687853778478979339005484802528574727527734110481933175625297435625762856919148532262845222220688946877407899444148852644732947494244217985284849808483047172270572174546163615207794740855730864680778624733313094212025711603916433482357417904721436098392037518359911343404295898838746165919349712341446176141875791919779809273702373335027289777599752609343407576402730440757783112610487792944109567653669240703069858868736231508798026794696290900543355928399309666550715728308763678488452172508282864579082807576173207281710561760849570431980954075209318205015242788140117607676564413990006234612326058741917822698993397902816374209278344072200704288435726433898866903212480290272989860869495779978031709545336124009292317895781979509991868897374060857170889558883436340421708961390953416324973716835354128512116785755312956705029494292918333175451457670832374167864858528742038297182407811249400470334861022857118154396698651050506624683098539552316919935063147161584010191397763243241508929506018094147453881253660500749574956646514833487400094036420785053775028813427141788913859494260194420613806045374754778708796518525007719962263153340737580398118864225232437285219632612008408585790266539141967071023348347817654243969839395826393596689923849650381759676808898135595653714429722009889713268341041626052117842390310376354337879538694193633914026450038354402278237017498724143712562241386213616317848732423732140052058194612733712642500570254064927331640240994747663378153455355670256139637007095009780177886769594204451634692910095510941233333742466781827105396849700804304552439448171045850807756812602492000234875565271200675477398270443432408683642999787480121835143845934843209926446250727362848242068905930503821404576979203901125294218708976114111967777035489957090448591942424675605779173662532749695124160335500664565994013598429035957418854787122486906576754555281452998789562286561506827414562205540377771335937686330971504479294182407083063164736614001089367826566380519103430638538612409085225618718177518397436307640899668696916839650043636226070217510134218818259193244911174313268797499535593659777699526667575737569348634083311884164149153158111015869021303678057107987383352285905513674063999281883014295367584816202165331325047339827545555867654958856216656285132723377653575356386091279202772422496143786706190727787003254465813206322273918005465594230580216192157815950563501043747850015520563797634255271411302645710208446142957000495087410332490136865828788981273999337119481468763833940951054274573933234302333022015350736422302548225511343481517393746376193550628568474093402509085466530613147237204539892997231527884728270453712482035919727528122176805068443206808468803351883124928635460852738746346058814465535198548193492241596218980272648494166340659928348550792334122429492422873928090384181002918237902984562787172252209976248947514865520956486758436566401861600533378119090380089860450304204191743115974694289085664087290278058478604635939733866763619438281789415660005035761688299511542855257793586993759197468045533828589045662831351412105042973146645503785941462367122971936911055474090219039891137902663871153150786492417600788487169951730765513535956903355016777236664602957177973261970245832995665289022518019262422891937798709581139582172040839624722269161859871504950737828616151003352372327868877303337354318908916867404488605418216656737710509128542079376444350906422441246037667573157147383013357185906903686919871656937102884436929473531653846300789498774871046690427956075966831566947896311205862158298844461886915311583413679358012139955375955508144452965927650961695723575854782149244577198774940544415526483376564008844479895224892490766570041731197948136386949865806659439052566048464287282258543368078834351971288096226358782679481641621572967303138004962191225604494607941020770894747430315231810340662074974352642364343144765389190262866821799143824310430787385146499698091279337177727677224463874854459955162126302340423800384327245618545001632477907498945268058184956345527657029555711324334038345611247538858753047751134480891558744799080225217251688908554829714354769773731764623697377607251472205009448533945382770874782053448465154674799755862610695370693698669696588620189630725686371934947979921737674859575244411665363934525628237243478938389352232554913842451860772489817904346657797059679932065469587551721181746540085561033973387484768328869195305408957291382839872551316887388539941037422840244784872708759598212145596788874507582208351857186249271192610151921397667739663191159158253505641544968707348967640887547349503383631318521434352152853381028754567411119484188177899089027005342179325903103533731803339072387025741161611850392225085806986524773349498941000268702197856558420873220780182951011926851450953585393006757594638083908695546183075296241490680445177083874895118156922247862354703222000149751397113147199073128186581417459308094651060727478711397193959915831723397545879315759660666977007028578144174369333889138956234158212185216639776354003316537155114590551989541789272205022286072486821125448588211154608833613132442716403779930725206410586791636671514314033796263873798889882711522446974737683291753506798376788916377673095867034204377325154926200956688820633708363718038174514264057660375795825425267823538853968473708173139686265189700870444511625266026736946471542770071569721071879197883035242235741277545824236973838389489589969957890509125919410583639617056525221398972696716626606292633600424634246078253513759463772484728717251916732823366068681851965465935811443921849873249194002283189762347932128979507919472945449332542428627303336226680399522641565363620074599295324519049342866464641782504572308162070548300333806491416192719661143555625012959444395963304658796792448972844680457114204791040649828142863357066083468951581865910214904498201472354975945634148609901047570979500369431421623752975872925709304284720404861337276331537451599532309891306563650563448781364011763294217096199475923245483944251578691437286929218314633759148740632541830002533187064239989927743619258073507683901787709876795864946898975664138488133719638556799168018087488442508161097436895436318882804747462035422160770589216893341271290513121850004038449580495567178943629903507884412998579853663175186018488887795709974637849022582029269772234221352076105246936143789246462058034862080332643260608436160281254059911952077297703984174091640365646982906843004366741154764460518366759212340137250547286761449715969067824038385711357100664913642624859702648600479565239931063757101669009092971732332865845622155465746894948216826332544726252588838264291123954509583374549111486407832573411467521561716125717767116464013252073709398903480114503823167147641039180453098516579054322248501184831498805984105409748604011965822234930225212857670284594569209517840755614506824817740671401012512299245261487687072784741072656028352034625911508627217514443960446153154781079472399002872726222808028881898336079313021007970756735272424585517405554976522313749876878543172998036357283853747746041794073529873451282671135469289981168850852592221345246779252616807775389809533543370805916094489438360984648307590722810080838790640632890116522601892982480846359425203811355711933817762562114167380774159767376623693179417055763482274178206027493045475047458634919122643295352562487327673414365767557093977952827881059927562984689354835202170250895065443001840955624050177461515174536358059570411293609038871880508803984776870738789076598440900429409658509579836031688128610776922280419165620472276392525539254397173076699891620298776956822800622040881368069179230011277839784040532339455986372325087275901504443954745401757121429550414820785032028293500448681263972274001814206942005863027073675244054357264050699371192299295640956676039928505385754192220937981886664126610949771474241282447165811416546443040115541634619974226804103615081498363541764120633548094058517047248229073109311908780056345773468854925944715843583836664847504582999867870302439376955910130089296415358524304553012620175179649674991656142441496986504559125466062303865559680968229086460866787560743673578864876927647268476492796031196748314888923064762548413308842022923563472328888370091783773649468981434618514592716039786029021508942572931027619462658752186184240321174196814470092866077997007373090483729248966206073560549854302201899884290691281297563102575267496833324969660158992070721438413024935554108875800057281657017117588464395836592602559656462438697224989594461944408740923288691887267336590956907965469897964941687219386331457762673874757380240542272961748888507148303909774852639693453715393451855504943323003723909450829104756000607872154653098592428135541782802086218909306389246130710765174437482691305665007910520509993613469901256893441660151051452973628993782742532711743184600609628561701898660652689476110142522815059812664517072783598035377487530309044853967936106917010862422059007148349437509606389487664093839122851545401666827446198061724121396075103448749990795545009786520932193419280332953319513884564950142692642249457416553472459331325916765639230938455727016773758065138756958789544960062951737206059317381804224580173029339581115597334172580139236026571851499870769309276502429997160169069914122788011938928569894560031623187824079305815290473942063162419656452727456147485706928544465187394569861287742774306176016019504882711387638221176141914051660876520047679253063324317751827270968105129762065723315736335433231900759044624447457283899462199997899792170169801363353226897827428547654719624301658386410921212049494857912612706102529153426265028799723605997835700817333674531421139215991381074719547390462068885163071808169546590383510040950150242510661402049170238352794816826913007847856464473019623598956741403211275446011277690636113887646807397897172532310693716222919738317362441480355699598877290013200386561284286003537203321515660214442276582900006012252967346740061476464588890929459185479561791097557785364293595170955901776886085628168827256070402855430956997252820057332345051502492344651285671959916888356613920011211769267390212016454176586874511254236517676600229231350887570772619372360522627340566227263309110688139076037151185008104730980863613705532574945931774367359032513770727631469654579570923766710209702429175567548842566359188379409894698768543302100097004045243779422478968202144210182724741773869108525332784608346029091952524516602175857958840429377291131361541359616899324218410423071126798048216106130784656026904280268851094860411294105868699586601397030725212963573872286324221266841273530337109303134813767847149153911879108272119310459834950622210237714365156075229856310534525243760437604460363360419453133808227502099791948248879970723292972375931210872798169911966409234583845819864356526957449681718197053532465182534541865219636709981288200893507562998640248852311065171176870840942755008611461362979189627947795956144501408146242046393578978779395406547016464577510477661805390744851526307873947125156601159699701022338192949451879705331466060281842729175307009246823504150016015286720344845637457485704399360245169395649602853988330992118428694391432407582288434789721998733945367093044459376682457844231744237847183327771941975844778210992647119221252065301651483247048179911404769056975351066332300057248137439439370982964324120596422410961659274532310912665612073168660011614650458000618654815735410299267060569204254507082247946917415199900453270432486599102630193493639047923895892195115428791674036595639253816203952891021508062563734978651536456041345176692730435561840701471083718878726638817771273834270885077827592129612367362125780889078476989426731655559690370341860775742775251600533648022349462913422380652843828683736944184496522670489342460592405246868877795161595864046481546664601032292284903812040057065901415615439776332630682220084236881561561503318079712531994984795852530329509095218452143136947274735240656638287905506601113288286352055417698573600310172365478858174994343481194220116060560920698555205335700906243818972559156817646817893583895577492314422306676485120507855514193192626347842447089173152714841990317429094967636271733692659715016523513999426298667622725836979777617816271541647961670680414270522748564299397246743057802113768469606710556057644778450890927425431275547880958231018513291693338875163290819921513753031181086954653744930594550251364109968338581335948982070064494013289991498746962723695543806063953517357961996844364832247960578462712020532639892932772453134424174924640594591372205137077802924360341651506708599211092981618338539383674888572575183509579964286228087819999417517853965074486969174995199457313342888641939235658758589836538566780838935616044449454785308040027316482395472921710933792987378300974518288015844320493964517087403117671401540462546481408777118082400552540997072700914256902346245154531288588940080789596112791275964412449370908440028717541599313779188299908972430039930756852669247591580102237129529275541373075558515695481328224935980183364695717678640369093216903096031436155188216196450324412463305948162355029576181857422517885741173862916411431011952758897239210397529779166418142313326127036704764801703310730266030520489598432440833185780881239358801641825693787204601665959961399135395514010022486911957186932375544974089488229313576338206548538400872273705817277256067585650287622201233421750804449366570460134534898098421941994959473869583183539353159036927583600153045168866673731074981750106136370225812864572126099558238058988465779798505054606985211072976332220367957574053010928800298639399777385472380601093954895244566218091078408974166069780951405131128396759863622798027023304387809749587931650408577231556042761711972746681107786572019479819187452349222494150958932183943199528708757598787780086968697940193518807183964370751476326791118617121532694350821281902875261969645333242778947146038609013796361101737531811135134921987552814249356753073913632320719632380497342590528986530825479932148120836459715537918113322194699480761207640563226121588845976447627621669676213960158329314436282412146162773001582331256876774971627276065277144644308172388043960572792477993307591438410138744022443991008123015062580796801152819870077903711933405366876008401417899209888783854588526789257411021395995188320843758790967740076421993465469378719958828091711745623054474787431507957675547986301269125590835090120799855054843719825891260393971131443970753252795119459413987181745725559782217100777573718932975604909286676821752495737556104211652592843964502950522222023799290030185536083449286988666020573312579640524794454141776705760696057098563139628402031007397417697809532626822886542025427877617017254882432335681467817734106257512266036105939403488118017474197737142248905603836578809387812743241996096931927024190497125172715317165257120279369898038609292092043986186871980916157280676172748761963641601891643401318182430674744310848344639004867533230793844837736480987491736493038540639325676254835548780470525295674789057951777463115094045840586272769716490137203483607684529506313129477884483500337769059535799757642917325114138115566605659863681879022063720207123770796716217538257589663382496003688522634214873916940060752750722061706293944152011648363987350263110348746960013139141721062151083335744976082100080003200152217292704851342585673867857607794569544647271062514677981805792048524682568663300226920781867380078210302692415579325151864897877253590398611518900368188119844121564208940205031929449638723968821160471586133027632875535798704994703443371679375422956227254946838007056752575850010619293710404334987804013442623607772730735172211586376999995381559628965316743027560263968373967493211100244897068726713424728275725678109020716672889627548819553201270223526462354039544518233148866571749968200906147633845039205154653485517988460899865617392428375295502434227881191669969833575957369879787937384854573865221709996726204337702952196547038094326519277736440710976853070806563544259656161668431990625248261140635286042908016027855438315792050408919977328790321006094221221965192755459304360162358220295262314824528525916611079324551907092544455561666408462890803792016221425851931969872521745132326197730197267153138183175403535010583679466469636229886713970867235802549394094883332705892134106150202891092422655691300398502755414992997587451370230533849287652516330225397959645480536017372959440026709621977656452279329374192268459622168145372966850114023643050206538216786721854790030414070416499849123144505554088503428913604024920891445106049814992621901229137588714382243768887398219250599205222434309925801862430004793255562355877884697052515569873111088241195294595388352062535581176893593520755316788420725581856548034517886285091210048425516937912208819947390555398560396358298405833790789476001862210705933980934860377649399961107766464338090909085876261026531331365697859741652022187751237934108560456508224360602607511990410850281348081002183350513237260412946828470884519347242991731060983722278508771574103182379854527872110008301992026512552727356097825205241302023419767334718315349871689370343620470821351187579350056531558429728954553072846994444401788574337720289983774458421248334948554445874630576609745158094538911166511344919342622349627670179764648891792745772433702541911984978232830935639068822495846251013260466494654061086445170105678652013154710893974418586926261998047244403507421515587146487412346741920152719180996676239667530753532866460190693403067405484340354422170624185399126286133321709787472765530517811160436724805378116022989211949667308787035873136789640310357620810477087535421546050875378294250520303929832770779388573320369828233992889653872780141109370775278764765847339985345398048800825996333114161895631504735258560519238851672768742724289506678612645096645279395490645025367569282987313609738827323502368065856028455737958282375964916873623884994930846715494007983644877460484325651873088353423862759760610242266127137572104155319657924577117984356406344868986012004094892319136460808065929469966446086510796904209513262812145551627457266367231494286410988156697306813862855272765749028589261153404060273394998669640072113258219599173032155399266410156970756106570505004774525696823161291830934128117337604719036522687551600802306602097707846989558591285370026791465505634567614637039033563674513784932366929739995500696993691667487670447262831412204929124499729828284052328873462130000760589473733764473380229703519008942641138839910017355512415113268969070864498566844855462393580702050644334667249357761370441236609218440828047306588590960166872645826062772933792013607468421414598412870707908193164928120378254432290066145292591671093236983284455369937462005170482470584488793280514126722488172796521161956400614966247331077105833345508282862047407407941308408699906897382644482821698806116108603887817992575556799724727952513325495546919332835252976499858703198724360947115392248043203737223047958068727458855351117383426430479918102282223529988127467510434213957174131528215185352922199304735962483741980046446887781318136877374189156677941057550072609871544208653145997114844900319002294760133124679776461473821435438162033119665692610892554734472490164206586920749342042767904759867550736653698164171103849238920999020389946797862892788523965085765922064882346501102336040012615382620859978054648625700658814864265852750983202365116126051955161612408191396199696852061554086461482880927739272079219748502734426324339327464719789620708666938643430316644768725524538754070538658761780373227881249084079512523298416408900147002323457583866912090367898842634610124533479582343518085666835433183393609018543189625847980496027397332516208180021790454477802337862413870018832785202389383265461733671860479701734426968736226119394603767697642158217559825903775636755149822997224100111297421040301028874474247228679271375571263424985124861077142396466271774282785285255557202653926749487360880630287215393956891683817831325032079902297235655674364060567787399524881469195372892935384411140221525204955893929911123240457453761062398490401992838502756655315422025511564159923618432700913088654525490524727231020040811779049262012211808591660865609117625426024451080497355122596640152901146503021023998639924246080139624101965972854014716517004892420672149524407218092039756228391017858093785617929321302820825042759171443363862830561984390195849501634115425905988505730704662518875462804447990164513544985994323894548247275956041853623634424679247753077771957787228131823906545704544393552344497417214634308421249466283519493557240454650026210594136922492994142977711985071122180155480213379834351914974413293955345430220024029113297369243855067098526627294637211724702702578691843540833088634899072591376325331732347766705753101118305065353479310790666990638353351227395387356448238041684359117406571103353281595003887740435572257910900785404446163424141713032182410717920435913549688727519564039413375643285963643917340252940428744364005087501751007942448752789356392779163561964083575024105031435577254451802298604786355904989446953685051038640790331509096134850917125166349491449176378905134959665649642424875811287395185595532867225074551433353100364882083366348740614816165668842463631381852100779674882014206060315358995466839771817120752261063376205836792379403555390559751759273266929470495658489327542040573812202957592389196946148641481986601910935081731944872073439429852226223639069011726670001456756277408396947843322706030833029717564807069105851719462694586932570326459557576858413186961883658815741324457567956751006964635259853917737583141681680069399061815781466382783397402263971340163727268767911160309683835474499010906723455569009189617431638035533868369148870288569205820596239296625814563127375324437534568870470384045607015882574081363782182056986195138205526098036293267009450215594030216504617937765566929206090730456795084388245787017913417488219720521206136502066396542581553094738096176792640142438589538497854443151855241505486526135669842428905624296952599538332387761848895034608781749600219151044478203501662419523609534705626734401991958517414719066568299392312318701058986111026273217675831329107596642345693943127012211048790765796254186681994922663984316512418119201353717094360588148134143455059775707788730496149600369792976489102360089323569992829937120489628401963853302673325299440316659434093977708599480571195230003516961640420490239008233661769530317007729125174354336667049395396416438851751701764339925129739873362410043714799015551628851682121233034936639237355760745640431534925929158400441501966983249716483927169890042280931187024776764883450825861060889757278530645891712144568276754976590856634272267202192343215431918515007594884111058960206223909293805644613540921166311685741961603642827581022906426842796283447617863956745182481276042884967659402725007650861358293594475450621299964291049122111216029078390817505728883848848878666031860601837458246375239910126394151114135640805644883756985004972893129374413610208225466561032497893902995872056188235644601322800039312726552755160789029299826605474589879689062458074135609357934422837368539208339256172426602632960305810153698485622491864156814378934667482508750927431916687634387535274134157994378356667774389167138592405819397547285318086165670734031766232565363301739794959788486892909721284318839099593923394361505007101218864942354671741980943501630968245221654720453040429875337218766584762846367223631581208136910702123410287228393210127888929098909403021011852790774217671134384137325857966079545565468827091538290536654664665628279255098828644697742808238630379087149923624266431179158203190819661238854014002866799979834119151002627278356989000188362125273325077260100792598356193469173698834244755168850898572992921258571594510389236676612563346327488037893575851491984101717253129599261463479951674328913219209054329797338864972011663817829398661003866280230822053840191108679939157445779483078561790823770914148993138723228353912519954949065970181857664883031808947959735388507889872761822413143386797437415611335661936044707452795235750580121091672661622978749756669495774369895543727112077164504729893327140002625267754672243822868246408436402555530972151861370508007280791442077965297946537737243950775053672835654760555008683423028095455869480748391891158027899473376328460389390642907215540684240734798067452208373527435444815407583575003976492063987443744937660580054638634975846345388153600258826585829410994050769629933171870360227884450816907505648385823718144991510563848914793889327389713536548651396539860907377971035220109727648760630316061907079223719281056862152945554021403073637440076383681802377225972932558489978274994139817681198268075342948820853197204834097755512291501306941973423901169867947476998529847803691300817409035663230250418164549010264860387308583285077829849492596446155435044581204905482057741649939706708903603098068580113079253391036148164372624062166005762196863318204498862404377114801360980540698813157334200872866808196967112258546303847834136718745373437865353019042459719446835806966414279891548145081406611834263995854185366035073385706481735228615940300349690301370749546469536278813173516507413488102790589304687018538097862488741645753167118435675990222752163953592242455153117028155079498810276480224536587513303325444518837615973627281156188519432136355626435980582071449716437849521588864170417967164231433337281967483548036144877488394960481356529443619551042173695981197983785138141595119908981941245104972101882920433620961533818167218192933805461593485461672202052766817526893814091283220040245143170972325904740822599789296972109107305418500463251337681418862648546498491628707554806035648352062655471326846998163392111067176835900749456851981113698332660659874843044068444779709630165010067542575407099460054610849819371968931651044191447448060900436011840395508751178539214471159760066586994151760799214498433818954329917676152911271971864078769549193491383553648910573820856530830855599071135070016773104722021748048733389190367242688737329564044394734075397154396897739890708355343282171105911964039742372393509058036909219640187395101565168325410448331127683862909998963568188420978633873489268171687345826626565596694205641139304141980715178915356258207342238635143801156961766539169307279297345908157501624731039705047636211715340757178771912070980924762168203541926678642443360689164323671309455351648644501602088531627764892558719624855224563924462634965143957664488323492150523809630676037778130645025587302779539895790677706403090157972359357283594861637860667993805547004056492068197620134013283598416482353783337583849637271395319943569935385203147954581814952619728026610365725153607662706001904079424712703614524259528295583491256683840576644870301009568580880501850155472854772031798769930523768872103682229691620607407394234623983062989332052874047545166067087947641025114489779765599502362284425626371172142452008721733533104956851908857779873667878492011600692109023661861133852249005583170388442361361237579756665474843224142662326606181949213339842103146063709305838841877072894589461727347436897201324894649732376832712883091934134799390163015985099925454563857719589538070942882849903556257563091189060611705523386671406229045299824647907019771348664827384563170322374238185036579772823124869276457354269059508393356896607201137303518998636509977062680927926708698552432397466541220813222307296157250973498532172897403425598082078467868752545065953170891720508753010992417632144188683997961973698701917093480054738272056472889525701656206382145417452351046433418927258133435902780832139213162926690450917397119180865245772486933095900988384278793562965412139751349417562613385469460384275102386868666770622215397670596332548695352055779074809657868034292097904918303999822117481936872579204581055555144095332691505928247212868867446557617840969836711996247207992874135268155867819527702679024425014981609405774300412119524608757830542497452233915807106052147517886634733388899605707932243922926794769634580285820042335219402219827888777190726824754422455094188652091692329678043826608159777984995179020400750641079365776356865185801964015156688426785283076352952019096386269155583271730263646865582503442589456075644144872380565727934225608359182273645908649074694826918597884035487871538348418844433287034432543817728603408408774862059711625001474804386976895997210436471995825949186738000455596902121147877999661492650132192525484620195684749998572382082172402387004393329796927610992030972888289516305079562435385474907110878792060922150131158899237244658102561184003433029519756513872570428205118707141244409973974674338043933744230232099979261363853458682455393169000190926900830251335279889477425582354414892030573729165464721511178897142408808843377129574751654776761583597249932612248285377138298704501749289608034614129582681141076080039614556046995453599683945327067328816394380972125011296120844577691435002586856996376429295676991086585520112821962840201283285968646242466443818952488807629842125299661777781059322952057116717279671600615604946662686273700325495400152375197877887966358472636966331843046651230744406730798587763239701438598651596518411759669115880496393003446793173473032620571998888245572392294713713053618706031574376665306821220426330935206649655176482982108416776175137794680147233439557988421875123701603829269927831949331625387334831616467434824581545803788113776179096223247022005224643303010848153852687319007325692838676243576154665303214270647548942221117742680489390567215318121933271184330041301266330580538815027010831258175614518116947307221097101491780841065243015206613938511828941379352920936266730973689979757497856883516811067546086650420454214928177433710716872846724900206609453105407706330895159040560238133821385949667989305403911038981021420850493075633302278276291881963099857023743108006444876716873600285194696696930105534446147979343986702369600977079387868015473494984597274465581372115676036010710551045419677908370179674674839823371684211950350589634152278937088098874926206318918736256412698838172528914614038503463293019959860774347524286266764125610598412751339762465016309501643727162253903267304807011507865280572221715483843804884263379897685914054725821293214273887905163216208194062609672237052941967612137763296691593373995014793894695148722737106780546472281974199612659461926068524582583312774110120574658826476047968869078160876484186955409188519903174892383364915045072695608257838672457166664716677502910865062819982946642779761093173986848227104901717051202061961841370650067476906362334956508657430603884298030639937718550701741608250679537303246497147795802788418343594251804133622342991961178976546264595113008766561017089244030581774778409195104628274440668083560419917814811801083465668907139631664354908934445594023038429161129913544272975179394617878344852720183838406772965410179334934365811492508960820888830174011614761575643207879506187946477248639287756470553666200277502030070206108844110221021386962035477718803551698055855174992726575278404939155478511476828594159439013473428173440974622605118371464300360477479887613736933921803982858699262542686970849019604110548950888507231582183916208465153678128331161380915620078609797958687489347914374846906834586853803891311650193310902685855141980009844845228500551875943422535419879501104092843130860340218924993367281848886293266402385210278236238834371027836093149943114281688887832422776831966188457848268431980565327174244940671592232314085262158212011717705525578313224718975968128646098250981094626614658724212438044487049954547547278384652933158505661277056724193404548320576150419363828572443203692876613722131763262476052048473141558335341624912507699231858712266070397995492784906289294979306690464592216035036627534826777095542254672047416582476332623915735345064630884485604130164483289789043049839587616718890377995970821348511442081198552848911105551517276786710290736018724200941083141082875651120548592012682881386393116476068920400499090710708016971646224784514530314671253618548082521546852539776134776294694784714327013159202728691339407803032877669754862521485221609111502997156636088795511842077660288594123495611239370107193311129558372640101410094868454845606843102939586709620346423752893479449339519205311425667863295029223147211742242139881452301240270252396620547104427979670406177770027635588641442209409369615757397399447609144333773751787607482014381507334523880730243062525590606118938022777410113285119448012202118403744195252788006604015656430661876871964534173256690859297437100003911633766769514166930860463920186126920949006608363863364195256728411850183568792427270537587295237786517730831295108416635410723230046220288296288190903305570718504239390119948250686718934022644099830293737139640909314340296374462544075229827006525448060127985472664265445693626554929869941203657665534070071544494649786505499972836591586967402492413829298139470521980969338609032375977129704596886531105732804828589964681165545680789926165067904486856185247186067082903710623640698025099422150131399122784582589741759678097717828933749591596932103802456441997931328292165769287472541171762581326218576147086519466279631392982978478108363231316872641376823381782171640742705972394321964969730639245903054997147488120150939240602327350519602816524616342160860858446940370625587881707874194946520568963760772970577821747478601201662914117302578266846167805052848861931948590800521040159519844649799864157772729744730666076209365886449595331626330969266808678952555918728982978087131975566915847333672958889150466150811141652233550169016651792512561215379562682908198021356377645970985577906384706193651547162782664933779012187360810915315786480898253975256731258878709407181132112381308184675020196715255306847922286453123599056066869143278458038561561912346105767905946386919355207770567111220478776148925390987094918268995120925482341266772673913230909944955439031173909243921089290670509405251531517204305555595409496535634167153226485695006110761613882693532924226551621580771817463382492602613517957422385771400280044548726276226250964594440134935993325960618948609933768470151999262264151757507386194511014837921612024725723924141802388943951020486018183039452504999824748679713205687982837006831286813896705365319702864650099934509504365588827050881029337305717045739941976766846483009828751238678103715051481098570632940978557869684165489083938839645243062311923781780226724525427286081264820486830137236647332250442610255541537749244554315898101619226248934813289168017260506962894129451110311348950037798331338661537458679774529431970220101601912281622200664496917688124973601455374828002137361532000757880356498584930900703768084747706566894131730031960848644021617417970479532814293020540737990814411229945950078977258062311983501714328788007594607838470714074766734673364705571216081494815849693180477131892932475861162330725684195952354749514877909297786820999493641930386379702551026362272800720193007595485752555915101890758169750450721424442984057093885092261660077007556059945275625342920389400803519824301107171337296417971508200627371885804253836807890622822335074147046873031974898165127031343025777032907332929349677545918893572672871774573914869164097759959577164735583037623399139357778831710328839409030622237789936463481859482680593710856876791767216190122671684839889479796445395608214877169695855209652706794084564542273319771294029009868449294570145900350199178613809029396376642654346909443959821297836886518247927903866376755670192437027840067361455473740424688510956619797239984813452390472442963779907146147377431496477083671676662126600789612911794302655993289739173785591630571577011202172120802155209567226765151604686606330683797071402855023391802530798245948346515023430384009663467576721135123631555866986916361442779084093765011216522257835438331103699630825015514157888638974589862937346440119137385725346181406554859444785523632611605857372758902767067593070642044554451595289776377698513789719256854761704482823989725794767973011363676097291885556242751546431697619547404626935275080465324162979221434539621102037545721852384807646681683936126425709138189497768252260123584288917069054873661343972856585698485246992047785070636161448726798465558271569492376284090525390076168567649322963558974150813719554541507921852046624320209759868305314362073767346233473108723249341717261354688188376345671440613476841127695909912768086956313708143447201160516700351322761945004718186567592637160483172652053418048507851644831704335188939767414935623423798842164759935315919150950936740219701178289517502225274810706888792206221822105389364383953139785397412543858629580481414458665115658852862069134376272074686248574092165386269573423895992373782224650014441512693719509496922928662689086287939922056649196786331913412801045926078716257081135454205580329593572565784474260792180521709940856416560543662358916744510668834366948917875469682405226465587396364177896047830367221929567444733270565936604264704627024830747273997702873136431317008345948378105267474512963449479378562344029805524031275965586357438107581340844788802133221155435178928280862887764782888590434561729717798307524039908713384073560717154006703589264846535298161816590223467451368207178919255674010672553668293664364368673645748428759024434315650756234092381129611193566212288944637151829573289328166699808683936291721282339811508790921305928514418677720744611822341127464876272750800933731406768635974061025712913060350019111160291898009566879721172236240641293852799171553939311741500198398164288724783002480900530907713839098329641874350831453605838939359882453286173957678156532768963911593596425126456801564277404038589377334795247575006095981060360506292954701320388994925361861205148043328228994697601645334082184001689292043761245939924701015209316699505165826859001699240655677333326846400601926355154609826138374734955516738680534866186924177121079651053052408211206410796599591879731204192035838314625896977674153376278787903697436430702564388378158504063441440772876549199824719967067141539646465850532978102318623208727010050772398071353737441289068418783780591402236826997858482372684487786627089118588466897988941214112511356188992844142085023377865502957274982859102881452707335620565077398322153102646471055800829391071003422405215164166913201861968279501687331543375146362855658833973390463891805591336402141220029604317223253185058907422652267001587205147041087260541657796207632716069750374556958880929072854764002012754751394185251627971467540267218570897368879643375263209111174521939673685097486878195941045765694051068378283378476032157794590517455516374812794998609401485180426040526739692456766569488846716162568858706483205783678979251602719520266595567288188678781002909269873599396898423403949804750808665199661927342685824768181514363068155048194048748250558056714147883741457451209748090052649386549990680865256749191832080815355776025554075666247476604047645291242407914248959596753934408150746855766505006666898987094020297530350043819563802216539267342307194475860834858721986871313230143057137270318845637257667064791070645999741406517328825167833443595180516693749492895177886231959488759760056861849462746575964173456799150364174208289034217664539943989908756259339099968653357513695716082585268594865880891828954279710253167980505090325605068722903639356423064596446573160573069055922547002188657533786616926928791551721628042831056740069236899250015636246110172343108615949359230221029430312172603517700868434684513834583440506239090427218014206652543337930078967321396771895759786354930528605144266219428288974737191104623478834690773779192783267100316896110613509570482641750722312614468300845849383991425736139237741903774839617495509714697739599549266246613737204288176945280939140432343809666444695667050576901198132462711176443475734330220735654595926234441689058305519495352155655497585551389639755162773224080382180054482008372749061561120566901929319846379843907831847739379482643605972628456540491308164396513377542286885608024244297225409529161702758675265065829427158939454007140318286228678882946821673867510829768555726539515169005061281172432113338663370868108199403569817617190783710470655093390355137839366143728680784915872609189002049550963386642734097930783096202682136567352175963783602085192110501026957275256500391753954705314511243509221372435975231715360508044296499325100526796051538573074532548068217116583121604068663497715570431013218779436650545916787738528678064437137687947544929252988219623029077738201584616768035020565928485515032328160873764148030467580172386118449242609132151212906107821434479674774223152315384690060577707239195622284357221597650915718036156035976428475630030226093255879480064477383142745965246871447325776421920636453756499856050012227175496811303778891243734782839036200502155808400439780905125738010666038241958775916772898236857535516602051599686916132282325034814631463384278648262875107503386297531513732301362463736450100647595328529207871881831731375346588733598842423778589697076820591674477660427446742926387493106368785339464936079417337578626459881252190011735858058344804426697950810766675507068864736250573604035328389090057371381032154839666470476686865582234031507855421055615078077777664433337779166820305632073252424007944769942644729104662521420700121042971055949977365399475256746480509846981665918648051082697765022917142080014034198276117217293444262603408109757234454718627806012457357032024720812131415492306690784617442098309554432019927937711905022049952921596395651643391112155243412863846750777737887966311387314390010859598872657718798107190844664477011140357774965046105442163129621444264332733606252132307996420872003009193924796133002580786386073719598814258912783121161609217650652069381905007475224305452097611307668214293740322892668333501822102643767293808802050116105856783948791765438496137949516752549418000352505473962828459870328344382421133549502074552384588195139005258115314826624248345188193418743398343864565224931719544811565052777573774071294772993018762565707104116244342081311820457603730354992869268285225984013617819562520882412071738257090171368345984374288048534700762446725370043731939536989592597808589509312578699455492525789995299386663806497543055536473824475586328499674517195972224819083901764592777753250976999070047096487574417208461486488709604834730042350257692227513224712448670798975627240460169942259599545051750320657784156791802735703837519829970374456020513747015204132333636371195435683074717528437693263365758790155095421781463209074845548299368000210558275829531740319291399911440458111853091743135015904080323877214108399677374672874257435250339503267757285133210020310299494819725528776334362021076217576870394094353914810743449461989315446458985010508378304919212763297388856874023538951526405081112871267269899651480796309448366321573667673286726040931019472041856382523510764860963510021245096318109091321184599223878221566578514175151986485355679846100350455479548289731878123920129142384615291443657687681601504019650184880814894350316898503938031567944446955851109191149889819736829225171368007801183036892370029320972381388669872937370115113616507122029234694323915436071869752359616457003748568216647550530574234972056870997568148649862048947215955668037556294653243589767213213552257284855856419775947229453757014913672062470879941597427452889569001720781932974811963968410407778120524346223175805432435405269304236371004424874021521442690081920061093096654606307174498077504489131302462739327259307835926767283031253822010786053982895966659313698676077817979714316841247661560620243889257807944065250090451994756790949452016981129781431710575171325464250175681353226805250379699317977272723632099384800518797193511874511867921453019579853606277213010634409101675725561891336807511950662832381132047171213358751997995602297907021260516946604302672360558257209933419613172146784126028095193121151970692906531377388422360564970584730607586429962070517435256507096279690892689442487120659275709477740444096809065359391421381689561460961952043522119625222423697208369614596956788263528737328229655793977204759574915935541317625434223883029571167107950027426706077911677454774134957271065962312119547308763681420154434031436239384464060004210803753858226266417792517269939171824283332253404264169076773738038205225969912096956819031952368421986152040393146780641761008801178406650900363317606118296647876278775572254980032320047964908687612869130142802495237673411172149963897976034382154488034875377711778764660039150916889060276453790596241063282752200434098662787399515921312877978295319564940300154032954701852270505308339278067214877352779982883754315323713584402519810383228168098379856759953743744447657180648936425710480549267578258752147393013680004634948750734556108651154264574047694963019449734005646141831843273812064933371316366773057708692726884395004804798669374347461614107456427368504071490336147000395305288692886270017489902949532331497085717244670707138444763277832882574619890207187591753451222589514632373732909761095937970901971187281145724119727152293826648152722608879845087914714812287464052172061682361204681906098782246707909286960975477296791059510101796376095446587607508462049004240380092106684440028417811332640194810786562772288963159072570807307404895571391497323510005061471086226223902172120558943632196368228385539632328377018011793932212808222220137186226500671820168516725175128577630446527951114575713182269736968771704092930817891698665089565824083120375646501193231608588337362668844013257101221960951202850612435881351532435654689691203846231856910965127494959982977537563399407834408393091269355932941993297936711230459760984708271951490611028583880376429358161457595845443095963399525014198407859957951274507955100661011267482714121273862606461705358021411971880017768021148272306844636670203550025270498077111437796915165331698429937285888533779606705964700939235445599201424281817720878475319078548229615660803315100321751466480529126135622209932374770032452603499447109637324643285798395230655160495935171132043124999218290177226833544346726745243859989726140188120921555664760996289563980185408133668985566673405567657260605397375029490182624059707575059877750263882672190180426718065085887118682792386007933506460123638753343526568744704487925546851556176922698684183124117049945980504531585027213261474282613822825183175734937230116673744045960687639606297860070383284410300440698042742666510606908513887139697626675494703410181202075986971235145459234298110381043904171109460373741978624226508311373417103073082427739922663811184279119257085287107242278477103811962841030636607682825919491522424889324110003943714647466160098682793697030787860441025100758910462602818170461298539434317867171825546415676874096630694081187850211443827472951512058083238880742705662356333866311464989420711371588042237326279648588105535805391572284334624370162967941882468979585672679095677397666372412384355848975988507648143164687790441478408416677274804588242332725930923931670947766908174904548454120712493706529510581724742144292840531904989976510391926364089085525280279422417346387772288475889699561497157393701869422849232173705153033903567466700700916023581186525306649895295318425242653700905133854025208467375906712722269064818188288814332752948552444783641770071418939743033934572776969781088543911835452697406391104261552607780401946845785661242461165690314589494321299220777085510056516067590807899711436677775130762507659217147180552173083711117527804905447643333220765060761515519160087460784796758957847841420536437906616336562563394826503906394250903674198901119731941683941382699503215083438838350196771567287139212009498725058936974668495181142393578429625309101685047112190690400102019854298282536704075810160022069166865316479312525090804761180194264296719851492693094215109789132425454398252726928318696561248067085840451342668554866184294459237032219884265200734689639380763286688412916132202872708773709057672710889680909524652709762938176923704720100508089099785863402530679941257456665102049059422203831006034354639471273778658823545343689541869998509577967080400876080147156629508371863093635387399736320694970520780904568003563087524031031450568482754152449645374947260700069356639165738362626832614656542510111717495383923399708383790062928137881626279240708186464095894916120642043842869713617873439052219754528752479809318604659376877537466580217613705533382031798760044673633195434322027381439675864531056157568783151520784486443558971532330710492696195949847637914329265245466415762788108343245991128059485167327616934499196567917483366040569739084267868604892616545854150857853068346757652307584211493150997937696957085428648692164237595654121683960969880256814032584935671112685192341848306414746626736926859759957194102394539746524444893505560588988779540316016187952472781480552218332004307677888828368420778050778036164084742707982315712432209518370089166180178302314742371682724324054903276824555189942619555507134274950862906788519835698633449003251979054726508945066385592306831999673446915564559965963859596095003640117592069412434581790268144647059226411888023884507496389724835854855826973733148680916087136069659234025732899372904004908560049209630293278064455438172496422955918465534033752989403739260095038302822748619418553173622141467391918053818497128740434570362086583470562054771088464504073189592524383162768542704671964166039493339456765877700822356055786511742784238648421092545983614355011943283899454533995521078992012641647304755568646164952454074726040697544986316255596401738143882323217965704872859712002793487098008289340332691327022070910148453234544436483161480224260286399238365760403238980404534441503502717019754288563548188694521735430232403288683926252592448452484369239686098296495754345585715797608456345300552936803981832474145121210551376576345697486001168418695142455211681842991821743726376608598748230271592622650348535478745066769811052903123428760692484873139302129698917680670781641185165842329361565909833987075504146051162584180180317081637194693366610440756118696695023045911580025260490165987163881683971354322090017989621357810347315785761607290654795923325543172287275037210410532229004788348645228520832275888377336829374095562168321416198457811755400558188463439932871307151740023091239422241953333782015456098238024139593745014481120546988969582794535584341030373310686994201853790450417218118067995263327124727763537339865072407323810573312813849475807734411977350272438452150850384646070453319246507978608975162341225603623402913190041397601033434805153496492479858893978878146262261123957821919222773097849364608221223221243317627058893100265954953798339472255231710147472768352502686084009414353801815193484762999782776816921335118822397017618082126027210131140789772257363978854977208505986459417320736319436480712846402902615113935227931404432398479930712208011216859990949770063220942891737636202285387804888603692585250282852544727180761953073034792860815230516299959933679581185742791909280993634845578505935416596095525916656810237349888936157363903929028090450121494129937837517625319692140533071997021441997737390680225542775917114792456148039690955521857351483762674238752633034202670195019782552358490092100466547115196012404487288851353222588010818328015688138936031658199834075923798217635745733705406894030115314002605094750692976255755151144105811130862230978945444853863771907324399802224657068868538341910318100264365188937175719724173669602605504421350925193161533878060108150622137667699736163804146106218084359616979656697310641363375614808938653326177889698307902141048916037966666650017475765336344841608278180854593581209263308984744223432023532620044132697347435348434383365798827314910824085640087397821324461866819906785563196859047965709463256443156215086003889364943789214687334923258483569566871821533540237749282832497301211915462296008475525503234744265181693780771289158826351608864847045039382682240807536440557547612601094873975002338446044379486143739667113311035229404885803389599039998444070951885701177478436246230102754186615033032434339435620517495206409223016284989033245292122156533315321817147677701361906073141955228280458180477499565873938662506920456675066201965287520681955374421225800745252866801215521603020978385131990480922690609098882307732840296307749027172789027633218855742629595001761717332032791079815372940809298831082005274480338092851775676935162311510804232730479712035377266673420790294257111597243416248730569612540824838225613177051744894124765200523066286023498030943095437315267854747061905469712630209834504503530409967733173538174747797588123412506908203299897164754307288527817406174058016676327246503232083468155268875356197554415108755874297586681510334994548371255734183410403345280183079715973043183147845365509512090271884693713868677866362215929546940873828685351174757400499771348448494456467054414695360439470470456541025439100481093455865495876620019243567569204249335544736862532112346200814121345911367762385305636324404596043964652744681217484480217092786840222143702451549018012502533017209888426899021226139649908638798904167560637222571195843390375749463695553398273931206894957483685901768196719772008617439235238733025286947772548053253099525406924618272861754937680466185078526572610227444856269751268333742022872060450185323701074135723816036399704938648348547335559159760380670752040935478966466818261671153027996312856654092546689358588617597193938499261779462342033447050487074657410164415241066110400932844966348168823529513440533882874926138818768816702288355667805489212998127813946136149453534890572842403696756150997872112512912128990862459383391653086759130258271252462878872370034229304228433744761541220712084852670594122451162927838875870206926450968914009955270818250947492547835383936486436367074379374263558697810639462614165591456629498448837073712864542724907359483200963147795540774617918796283011323885074857827993390962183911241176941929192092933258472490517508018890370285419114292584726617082749245115569453370481065017736475937275567081265115802038387552769560968343679854826948644429520224413707589807768077671703421959144488708266563592988726405496833745320449351810363967769073719981503222923542367320741221210837160295596006509435056998856590211314201793789283079178361362957754961259946095117477032800655120830016504693194241436282862305147506255750231160962180783808637883420317916864395841297126758159232900686829348790491770257185083904775251133048818815951203637887648825745637954567716869466789578336225679805195122260324822173334900763158624351285819315217467222110537304729903484334196767869097438860933505990926014439863564919901492182217192143943025315030280367340425956670042153009604423128942543561332569326370182027755446832027849692004494025638311555690119974048529261820725782345217461755447749278273483716429132000678655360545269519222300952895395375211826989710864290742177353379425108746769062860265374581364746829345722833106272934335666561494914342679424562382854339260839275977840893352611578877267897284042970378098198442046751954901511349997561532498493801977057700490757361304531391117705508832724226335028844156826878807818958812034774370745325415214665706723912312150229679238295475646653700723175073313814862249232661129446393324331797423907959656570147574898388032761728915655973518418655322745788171792045835559371741611847228854601771996256553143982460469619025657931536221424047532436205830004864827362646640837604544562703124858199097846366073228040712750071853591266715347886652022095961681000391352342343894739783689934566352385840585141407675878301111270317203781809474272423457457155158044645186857002778237095461023399741058010801407148488592141507669518476706996981228216854501605125645073056040690273392364734663972817813661234447952409173012841581208336151454930180085531582346565646738806776695438385096995239709933971960307868829356910669624320768929348932080550139055468893554903805794262294866109613814987956475391301539756271546372260087218237150404459290434136830831460442867060128102479563492396580344799250760790205790554978176720743772066205879934650992886924606893044830797055373775414211369824116470930899726387072416277746980138609264565088322731080524774963805836865566748020549944982651858004171143648200786411333066831076247944371553186591205773453619534414976805826635651343150641689768127159576037173796085534480973623267245170096700284365821385514195574463514562275482304889972002520337689287390782911952052633994609959452698441761514945598024993259162862606115357728686535428974814387304168821820264605700808833119583221878041676640723947114971322842904787772376390959648366911936083744343503130061045010653687730015248443106583352232260721943832090152177078317716196587226500258022265622338326880074902547282839126783766566550880548901693946815162591325328943223197485122593868127360593989259644247650618134980295337394296756376391030631778628499107451940682518565302694155872178508952696256779788866963786499883141493266707035099806443207505605245438995399183921516486815461337793943997224239242878658226766549972932122800632539825068313035399801258256055139486169821522426509751229194068765016840980729620039766385745705637357994090606110533962200088674016098750235902307854361541336170689152962278500887949360409189385193268732676934404084852636526788596234569700782867816017892839338269898175020645806729388197592508296521157204668699988685757889822014555136059518274556637233002767950530224404705818190522516894685241072363324951774057184096089255853220233889601869749604326893677279885683257026307810901620646632113074288757938298538254921185499946063285827788080703793018450756524987826384596936225946077338535065373507831550729191210555691361146035829608229773528740570041608053629780080773112560819727817320421182356511401196176277985632470559134038885694626355512838278686236940768714932795608863472887193236733103875705080252195166549558083727698441501044736666055661875901399725569342999080231461694879051961614773602737641140085858721543746919143900181392595114710408621728169168366249251769716734838730445203141745373994314216448120081393914921041297369811507426240782403171180272200871110709660053945512606705948509789449060429504323379669082336099761136099368530372193483395143534223418839254299388496852609923482179907323291096872909651917281465271948936519193156846030013455051670634225338636367100184311818924027244642788431423735560541416567880064285049562966519453494287199382244160983972224321925450570413531064076794435833536754395683850211470854444687463212970000585238037675473773329213650548638446293994803778744862994943664868814719577195002876498941864696924501322387729069528239139839075879316418628514151281341588710087431810712914022758853098456363435573693800450258154434584896859431239967505067136322411236524695412554930975824627308335479411466863088878831865252450453965074334002452038221272777874768830692805319119848009597328446710415714091979483230698101924159139928601856205054479619557584395610092924870121471679335651847629027740232551995717937020426413960612049439041580530020419741826944286291355268596161964512845130850775953700098528182077016858155099255774983562034394306931187901731360975859223998670756105378445432249070873618535668566129676012052258343193710820831278730574611838783257637279790437574386373679182074581634628985606568612687067585966053737727069674310536744159370564945794922744485705071522068039527298042227192052005251619687172176814675791004097348665502838326704936695243211058859416729281015129080267254020687937487469355979449857071644507065189965112036024286363425746714338075527899176963574659853641756742575113618203403174465305026713959087019696969370965249688197233203624633212712948508081415520308750916204549695008418327787072875022435310722959996453566016730961994092791303182213046359546138916296337813960749125810163043339339482965554552867558738373502473317846711851154523455515989864970572899350945773023414218443928452564493048446616980172100617998797430402643084682155163521061406730273074695309439541485090143588139311855303702014128455137148723592048450512221943066044690070375117644000203654878046626550957637948568986451840234960096420193912778807185080234150328636532276160094491147561117700484271896067555781446907185984431167351428402886081896842274412982101900084561476762839603704612822248017350186252924281388863270979089353139868515609781055329104078027758535618457526466407793455698441794306220475358360068585513717151774853269529621313908505974681431945530956004576814319631509025595305172048645788234103240592709902213864067134816752932211339242181103015535672824629864384086700215330800435491617730566815478825139950261390473829086659397503081625979320446598150560832417191081141859307113104063151045548586557545910190181818759589983895955754621253410669298864081940850053823078298460263972403512519459135778067782430474006271901880766741944626729651879662699638959062981651353220756456779644140799671710955699928756663229634420308634175823801664358158502093902157692691617579349923544598245444640269365989025146112020926802818600989173546287060471663957508013517989050739495678535074747866591173393668942291984060816371704530813342438789596316814254980642106928438505071050358168382201777194997426722290661971814213979719045537854609981797618831395508751454010444089454927060835089509412039794695900072313616235144165888124419033146427997827453022316788432703038817073221033147135136525691234626437143470197734638130529082880682117152119623137107401868427446784580639472912031980183365396459277426388217890201463009883692972345243644084922550830590095620254442756284911886938406886646368081767908039871566920134688765757715990792609766111709631375666174775446448623275795907111128190221241732886773998989281352528627327723965737868061228686991326138689083148285597178930646895757332550258783510596810320880089904752226157317520233907461683712217671291974914961694592169597280236903535368606533636618515166911621292814312215764933936756675887756380435686314982677679982407506401173494300545013148351377043981812817827453104358758100752598467720141025783700407697997391650915304800964617599912214591383212362463187269183760973604410406267732241231739226221346226028541381872664911384171720337712497380688850722015430755174843896497325052003278532564449118460117565272989614370354487674794233729470762137261320710531407358638469343907491882421376580815982763352830256589387964048511316132890690827391561495951623225287865916539200373902765727261512589746666177661684173588559731928583598838661384317271391159950738010432233058888648616501636498078363962182578914351734142269785675934204450618550960074546577612014841175463881998311922104722139028299748479420719407945301252570552957425262508796915587432213723628238833478699608139135376234352816764502857189262639640125360592770454608740058256923919611424905704914228050216892098372734132504919065532582032980574056308079510183165686589963127927478134535840187907876694919731897640319224209585167437514373871512846006123962269436101282464513591401048465440700397375312012458196239539408279013169729438655350263885146345298127235336462920565276501761265771140697284797164175099621005106593121396963888031536313597483239248807985920623306323588902062305387134969671980085276757837694252502729696670105899091001847279200892205088694761945665421115515273331596149826840884841036000751471559470888558686279493899952745289687016103594683466153291202614303348158576678814431769007257922521106018854005863256313064198669832824870972725929530314198928053212284130073995297389799424701790478633798845863849258656291799927872238798139939399307119413505226513855946246217306834380256057474829508432853164562260104987706228660419755784598393554694865897031607975265067741240046719688229036192751988811357215584176844430555302075205081525090803363601682706197468455439750501963804696892999121436048692825771250173415448831742184458852548534933431946288331249999692872816927980415779075333574825882589785639226892753751263578142953552877486451876677429281849878382792465977330106541595998939178951335364645967194915053690650569389849321061956309263693233141201848681076625566443270053763547134771622061867283477761328042905147810558023273423859123467724675965661162206049328157718693935147221272570163681648003259095432358787846758863333452309136941540176304769927054282526551675436924948011224261252600289121433533830139391967931008963222840754370612565125527294293234731030369252943115065406097790878925911882344085460854240258981646587056387228588912250313981101672762127579346388378136312711863851285466837384209416895815005041023325197775327945569767864152004095395114374693362630555546777659177134477457682074790439460900409501081100089865908439904916824194965347125223427227513977663696002218554478719122340492459847535789758809621774515607261026138646631322140749143231372695953028963917807473043288403310679749561471925739363285546766776017621727849901667880407474533760250203501184879024368796108962317186188870594642906898600157448534876126920251321806169760047798615754890348888634607424267975652085782167559331925952285145942298517996599820078123085490529299927618562099827502825047310378408433333121996977497321001427283774192167441920216152943335199408842781312305917870442579479055982692035417773315967011642233281756834576663569500068119237908460443904777756463859473449367332939590217366285098152747081936053624676425513472363366793711365040047287091842197411989509789574372951379940021264223909435294176841081706626242876012684385450947921768263287667437912713046013600709072765913634445584711620458637740303316047130561279917304530621907283861016136400638300859148135582980407754301730489116828598813217964601672236310515212991917888532354186193353334196567390574698284192814140231413158580859184763411903891981282561745471321887728947705838518096240216620470761541462038731500108562919577089591849015138868799734326765929577575067283498506033301840067477505263786448655525604977043707101055294643224012041801347059302083397606267086144951370291975932588081748184730244259492832867334192217728578285789305464524775339612675318382851494360543780082529344102240509628237342230885282241224468225890377783780569652316110616905491713662339240282861991625205713464357359663950630799345907691002866023258565477406941216684575500865091497163655300541777092358036394000611170175320240940735130825824629282439133629538509035356003203960199848070034432080696376165181313926825451769060734926992973988579248714886574794095364727889298247411327050847067120695934402309425505948603236762933390815202301504910264659783404132334954722806178421911042759944055697836445461882543395906246025309410099808540005000156542466829141774994543224064923673344983761781768809267050147766949904211920824122034619093652976606459107412669304037283549935671264923875752116408998159670123635621615740829230802397613939975347245317862662927444185217258759428413854359401420303502442797231328738824643739302244035603600694551153542828095751059104489346855921855222464269901088510616153962913720804385515772644385166799981966268302711412718641738738844986759801269235001013853281870342932302655052453827831109735438607862865400464135904108113338043568028923160832559204399611684043894262747173036872612951802051384862623416838411519160295431244232124976445906926223080764727626934608521494187032611950835909183160302033751458095257653453481505907149378481420617082228504324322963536177295165303648114776347343848151948029100518286349773215614208023042836437834131026878690882836653473575014575965903964970432008474016196919668377458849461179220862501231240307047789482822683926785274166339456571109152622495841392520631270172160358213700884160889725258361973023387917274280133821550463307455765479741280968304261533977130609588055015891027680377481830248675669990864341946866888244330039479179347906714786589640704711899536308490339143448375943786175890618208384576568152412646575482730393705520221190676069449153440316774558186393211587915499502513242582381122438833814975548291902589976486409712466333820161141468478559104557038993705476658930516062961934756083248834883078144974735515711857417874093447170326531435636131400158883822002804600437501788203902359857564364509775034881367712372650481424091742515492129426106366040529743404482577950984278248873696373825867275040938142001846845051710729562851073283160756920664476217068836561670533249747778259574032560161624466074280891131770040764143226003069480255827735968193642527176019123553425199931120964366478724552022572273958606594986234719777303295780981747302706847373077822853647341387739231102241496157571953167642047785461091944549793808928774717600886505363932200357098244714833786469799303159796919081144540822954502168002078792695198610364519323159399670828847970019231320757650607843758612277909084397748322978384207568355228824742616196696272948882141627486155793217972354544971230825413994314663768765360303270317341674202703455673477873525717036702827644416442064046555438202188232523184689353637685575083697751158334904312820949456383811390474174333339004388240823292701919971501836559461215070397819481621964250557798049766575842552068179953276388845609810223796490395722477343362594018405295503032787445591701654317020649964120800708220758377842603951705887767667574003148993826742729295600079332006654440228538484579428865684322940763073235442929464294575571711389073996105444157945709153867679677007298737498086551961525898801978785856400683727093493144168083315888157847464430041442116309623045999626769555152946890822125359237235024462849655058628683885777129841103969949885320280272612361210491265826357083315704752351194758125802003666570905729835670806521162515525270182582686943316191310743568104767609440674489309151758513906741681147810183874886395808738508819270735495347849822327730058340438274876444466636058873583267265818058203677246573303407968940180216186706425523947547532732124749329005412461743055024246547693308453605115026134248872397450847607496759100971580658677323267749243593278955726855292975813522758678692189267269057405979925426965055007802996130392439271287629682653536158729802426880353914896085606427391106156421464876881806485818863289250805737714672410308841828872495594317963241540230792086395982828775655021810236331002887772378483698947851177251536732763686769697142062844048867388244435886671417394976094467497093954249956248404196751575120494419363975623316384037066777862005904112020784060191484181015815566225757421143740790485279896835136924427521215928665763966508128831764636269963833636107924431595550529858577793448122531051047757279789118274015556067751792373877406215602496172139235462132732964855537100096475992088304183415320959524284549785976743723102389160892876910850729444564764959314030241532092378879314788500355083068469714279533110445638397574991188241880188874436846163476671216649566973252631358983328705347620172633862916029969161126077097019110603714092240996049957576168711935526338135460051349069047026927045012050032283474125409778458951963531167906737130652401946844218597206781858550551251086261425880058205760340980515258240096376044931434741411583170058395539989914912270606501087738714675276973871030133244400776119866841611401349342793413219018342088838095860290967699123310220856823497402835583686754657085036106159835438477762096771426083527302672250129293398972622791042896790643970533233610095614297886233613024954642769474717258100149718388307509924482087560215128095401851039456894791311803591162185052002194357986916057385838748576639299911179802259211770365850955061668086491145330773448677076278694967268150871403662322740542669475638877251813167867855519973336808390762904016785466299806219946640949876238161545199563929316300915309192135269029922030739948675506822153432410612631873531838116917378316010394799228634196466259267235725366963407131897242346994403715761345772859594160610959670896576098555985183636950086201339199886696656417253963276981553645007617218592530806052687527372176793667189459094600027521728693790454914697075508178290821545848143085993604776882901767102181069679255043851265477924154619523892972810635281524041416392494745957746086828448438881917237596644396840685744097277631657586192999899634146154679594998231399173696525375560244318313749993398262718389360450956948011380617350538155809555925816881402374618536531706602203661004057672193124943196735290920796091572833026661093723149624956216507980458354567662140410146387912921078874055355935011814210153514073864014191782370670332613118138019497237942502864324253347005143655434544092048426226733854239999978003015867851342936999944387867485561327685056483179194434755223919937513779324317612475347601692176468386485490675680502520080961687257740102766165428124655766889145857584419778463732507227805530890457458555294691656232512388272986433474775550612232029080890530195934116076615345169957018392614935879391171102038851447403944344988470983161566239276860858690784388164304945047045153333814661956879331658346904654646222731714913434846972437336024141940143486338624347598321092956259450730416878281562909901772295430950097883275565195417084014040260210600012477600242143760100907628665449695331660827384676701035948808226265688760727002628862998938852138376887260372364599738057530256717067678236887047959960799775739144135604192240166803552721250250050311485870612659516636836786954154449158543591800311547158814721456776412872108957234644671343813530604358826319209467398824928735494734276508478731244660845760769144717311509338474248942264461405318947457891633434510533752503709311118321911458540472183037085556189351211690533520446382060953051731689062314899739666874570151145554963929000793318107557058533111764880739808414790480220210015102840593821412462410765336705321091673113010240665705063911374932532320876110837086660085880789050190697754128531325204414229958406207761495904013981085967120280966812057298415689204749407500480965780892566683820672294416455555775223288526747715432015934331683178416208344581046679378168458790512348877055942215205076329009939617018653109045480669630623902768663095418809117196811206655348619925212970719027067554455977956472956415313849631297302268641588689831229942874818920872760730528072176916220332030450642202043892932753500943836318864977558911077401966686697565504555761565464683241399022879349890642184941096864792035967970803359150465246300581980830045970235141211045569986816131154035819795045282696836998623363763177975875129108442815808949724992079242582218751575498942233122981003252488564311183121516208667628212757404807518975409410103080264003284491445591634929219674980259629179078420391062672037052219654513836746369765917170953671675235556095454408145128461556753578602215117457226903300987720590604740133384751015218570949328045732883402972338887177971293660419542889999024358243697069288774364791515817394457226809102570160418034631833470879397887507535039823506624691780878150059738000951741254356100809965789534700257445194997063766765349896158643998341347084896256485361208554437427044529960517235291558916768785862399539190084691436624717927102531491760179667627760793059584503139397811512861792029093981892975941999627302079159269320669199734321205392847352305329279136103415514144343894174821850748704352768717689285885537613635087463170468670589173008720428385008814354282591477411215938897123102994333086031558478278133593682924467400785567259972960685097797415822881303252938452127529933571108800456147435437035102193150035015700405322871125982410044423281844032314801608298252689555345972819317486611870028412863498374980742356603962186033235888566671286587172733462197203509574798619495230544935185104811223289103714528482972305671663792324834607267503254634677640596702561643917420693357048356541500027677192941924186520863258176248762015027817534266443274057896931042760571482045108641951710957624808951821539436584468514250064619159970331851817767521507882694728114322010358620135183150397702421022830480352432189976014077363029659215381713498065253904184927818621705439162259071258033673671863493148608433762862690020012676751848485768604194915079986707666005561597555488729038679393777839784045337337141462427542779865121493314165145337540281091833643292558987723628996828270659051115638254290120870357454733672393183533143907049754342906985900001960772038592172031463256282445554632193898789638068978449085682689912854297108966118363793943667860934662970590852798636131913197596712847793188650050576842322757059415036664042390079834264281430621351798920993345248683345217491816058490009516985066160313632481286057425266194765812844825818329788491342273192517174539963915330799422969303233831490011873528324442621000199080947123199489045997869614597516848888887891294901500289902494436422080918636807133271047037466850238114625805714972373392147977808220429325195852414467125050910797868400717612412902020434229620019124320441216005094281786007609088221017857537362669864960543741946970769026604026670698597176880747471295182734830110496002910125408658939958820964259625252144016704562842880629403830899709514709592822888877096706015046806227987035265299465858176481090653225922603805920464377505463767439160579677598439241575658627747321354028104773604283524533422969747864879470813125807964438107843921011023289000819960082430270644839031635864994169935112874291432501289643756158349469458927575737634032440122888584474830833413093328371385858715464701905925896916013575049169398198836455367808498763456698989505618197545294874040402568427936233035316046017168800962091952041127285960505677379165216598808382973945892923932979123342135627069355837674835472949856329636205173102552566876147195505318324749322583366775198779598838660402829281133601455217288812608072807748792695758477765690154625925930163030839695623596759538761920553921393598092075382404639819622752806067808900895746494859305450174423248678113757383398607557373656927946595542132543824931113325402734732010456653924138596212827722248920136764843346508860352115525300946520512066408385103489622088864613884216138676427941887480981735191564450117094946430167137415513736235601832197376265445361098159723347362058167105986034527600618359233412467750766780692687055085399929238386145311303275248970353230805501382814055450268502940143112550227519302957534099154258532827539888136715367121181782407851415876356717810738488559173565932848708210119852427053386633356160779359951562359809296798687536349334864543475177733530027164323029562348578286273499918256965660490613857869400889221452739456063880455311211883599907204970060841872312859339866368233241451681982791519787409668213221537125108424508184747764138699687292937772863643453026357377991949259371310972243581344943131985755492399977778498997722917205921129595216191241831588917719505317740335863938708294851553606603979355329554208237717901726899606979644894262640293085052251760774668342416086036398775637884009545973333262940555592799466229931025864178843452720456573176926353729007843353385137038142748830862099249531006426464113346088566127706127248095944951149804880821149195770665455569302213950186200590574327712336776932274620993585467122837705310508102316469584183929446074469947844877106206141848492783111009954653131835630303742248032523013081502957497205619422622327278173066973685528756371459458308569918730736630285778240968041752979774145629889931505207046969908992302963308451191755326160449320581616472276216296047046242744518559928088949270566796156538435057774168891693026740460636293223769546384078734149567742323194207340332986110190020756408154058217823027076880499828193412615241698134311995965955293516788204669966292012138626467569177011711728622740322271370893778683128980823417897966385417118546866528315914036153198881548584329693188909104697009190378369876860599441761855314229706178975133326107517591435684326451371737583166954883354821274865409691843392294102782914649370803076006756706377779237042887817589141912962762572383968592674126125039077950289823968301029543962265136366819506421193598869633641056713600276408806603452443282354354821014448726714697041708351267358617830406839236908444442504404370080078507077537229537255242716055834073701706956834919132158821403044025247951665354896058334521109826674367684986300511750943682873250578482014389247282823429999039639770982887876109500537726675974941640202485104830491426494583495500363164975104703726344139907185972651741668194055400367057570175866814715934743234373646838600218519981641111877651982567412688947945677201497707045608072200313487607303455730640483825142524408444194611772916706510266322184799780557775419635612560416864323625076609353055036376195817412886543863728407701510269193881017213286146375531131862125439518880714307867182476606704357410854517485927397416726091459750503948940725264158561964219375921902460898502546656901229915449212134994433705303017947195590415319385234947149140166752500322911507212329847042182518424897263729247903196793659546257613117079629869139456872073176608941811606775513045985383374736239768070162175927879542361506245625233404981828921546838906423543962770446360147409632875650949187027780685557907877913605119923573465488666321929845670625859490849835354246236359332718700452591798527574970905775193640873503776920267983924682718087434602553877409837731215549195854147881963916291584685978556033712513867266468858206971760787242372330195356877288827930461187453505768811935861989190426150121263145651474401414910348681199093793551126508177523270040512668012816371355452231203034518418548078422316950865341859645761743046096295815375751282538402910248614086090316413645245839334671692211266030042725205384853225021408228246583691017825159561913195404740687500859207790675859585545064614814595858594013471881563155709803784713244551601456174079638856784484732633750062081601630535727669241620655133816307398050359606327387485568286911714651416908235026914270611632042449472775336581519204094246217006033372150631862642211596169610416431260949860191869445902736617605272155291808076165085652327700811614523278150012286874060676796842881081032894252176857948244951753584182516061370879506082724799569883255667837462968935065357932927082566139287478346260038760260642082010116006761979049853498467547699811856899932461035656370962531839516641191265829269687525261671399245949047809962193688505737469370265491769858851496765264332602967121626494331655317747583325119604774770975994942907687610575915369837263511148371084662116367490314126793697925698406352690598581699431099834636640053517102307130139211349980430698466790344221551059017852045481139204415877583433601782046994009398875528223035261392123705605587027718709206626894481856324739673756627212370136272381177746531223568430488373548109400977006089208946210350345968348926533879358178736254672331957758220631836811562677016025739510227323737257481984575707777181392180272671996768294524896708115041472308559046058519419529756465116919337040927293358011576784751002137918279403321465704377157761256414477419086499018011167407344853505670506731776307533673734517611742271275688063216538606099658362618072485702364459589532633326765338983550117898014037633811172320570017009340354634881220345357473000375098353034274493817475063527509005115079450262959671407821352526527912419221020847076139789480800360854278521923778876988675996721881234705815006155409208408195229598441300063894666734145997153240379631422374012272090131332347165106546463733278166717624042133471506953761842861835320684964290517737765962609012141404202738601079324280331277343702392331257480892899567863703032152598656668802162937500235972417466667349828595879874649247156529350750809665048524146360598888473730217502142540622317905856768103800102458877774116581736419955614224553964298506297160251481453348564526187347983392596632965261852982338586729178739866108811877985305407741742772695397866751686644068624297023619227118280981790459304756788768353603397026051181639550114239160184177363529957454982613191639575539370576125347795741429284089803884652660657772540493416039995031352427016756515358455626837421848211865569348722934919823015268460762323006748526143055195244508407057674287320467412827161319268531822082492613561058143238238495269280146570351084387052498742018679553360826735646011427650030065952736960194925890255351046222510740844901172179879560500671654563267337016327769906489621523542717367168652317929223131326747744585315701543757762240725650426807592494482481080068510954048428697816639447710984182275639214348701968332104318878860045792440870776284804178541439425172860580066264359584895898882659832141406277452516303688387965163613361681138590441238516161097962262558003000279106501865136785542865705525887575340365076572172066782860372829512450162859443501963644290986968852703978017897307554930814558119245520628750997196002114306652370443063036224888185604804840938672508457378211877485344360600226855340751722288405272621247983550115628616544800685863325256520606844681079054334953928111150046549865819633741914611629935867379651361021252446598938918744841234497264779995525833297908762974564026371252614646203386168236025069594710282442290094327881545989431623222012495300453891235709153716917659542068214202908335314791572997903256200261506680946243519222914544661670594783289086366904966178146065444216119646960729568400484014546235726439822969161136859821798122333921247713607209179525778641758202783887211368185225922184825740746981212616184807463996178377239073643914475768951310148306206979398550913181898338503046640061006821887365480245733419363187726843449638681590903394913083166304757157161396292200469212874808948455066698585691090101927436554975760364972008051408432444762858936665245877010269957540218025546766822680484428655235915739385337302195251831419439381121850748624255181061554555275037537231573848269586545244021154990497528457429872058782014248483440905810513732612101384829733487278729113576552505954612052461424377018612173913061666441604508892892956546133447395721458331406717690247668522088125487258981249786253174514435881075896102860209788300318594833272901656611481778912990154255045542597718338739303197366003587379901525244016139532216707093845122285477564550262424748881200304545400858312468824520609543433434345485301895208997053078923834512003619574021761535855796758332699086424487590304146845285898527477777428879459516386377240338626206097808727346054449952418517472976491979661770967664448952951267102380157071082696457918844972885560563828639747100114452552641084090959524309774202450732154353639026259509472943650196918060618551984876254898005337755393159171504761313636746280122208098126566421795380037512706486648919284869875578023362172090056936393950093080171882153458885359914342578337898807951769803130532416143973571233740051706686918926005191420268957118502748517663428887128039561628613010483821224592611221506176541640384268366388899570631276019222376552668554127449225947151151871349236203071836745166458380050557041131459221095743702795114498838286918356516130068455281228059189777507104493531183803114301759015942994899202806730170453449249616280811787099767429311115612822407967637521001311356465507388854034026669632308306623021390366673940819205360791057091850837215982739639188045591123552828364711724189176085728462500880804173271072743886961529657824450849754614629793966696925226828667526101599836743939474413517277033931430424350014943891662949745594622344281600255364650065574956490236868758162015712458849923096796847019344670719077722644324922040147418471391451262813314703453412037386526365457496348954853471757708823785767847832585595191711391391711774832918871945806291288094285997161295014610720312068532740112403416382122612734340141983538486083381735862713589391155710789053182397366880768953186768064347168235963150039214819237283526335306684230147718747954312791506811933628424971475179561763917789517935672747233558442062564645433337905636571653507432700707865903342442173539489329912682082473143110966890854212482131760330478666995488505077120509583464790955724294937805542605582477432286539630335887664039450993220983797179230707710622657294895163562424431710744888076271122818801717156128979477341853581766798592273197388356320779899616427179950801612973481792464607700873039507689394919840160091219464783668621932568330473839836038275000638798342019351505693790805835944845448846502203618178628615535026119451808965893297224951714438266329361844274985823831362476910741421285936028459719785659719788796501756280796313957861157149569726595853386957677200777361191609382108062398003148793694380058271567052234176915528777856464632828357384932571282254822812247869116970881317124234141671153583353998252673962419250591620564528935908370615115334326915544866433387036741212639506158540419018128164013157510014656097645428791244049676646657996760065914126781914455863292286095401748047739101749124528339206924180600648526357655548599075591021479739493625215617357919581927624495649264327350013060465903392483478279296743663411045509498564350709191642506850616745705795943860292933410358455761683336042340700788354881202674977366407277375177694163410396703516315433157843958495679024237744206204801144385035321042078789653876144827623913239688277320389409975778270485373747237082087484691243839970255647860850416849024029995205724712764734274965413445481722883347214610277160487137392759977468503776736736399589146266130675760690183083598721676250245527632825037514352608563205108172851464242497021212358730010517776439321642421812506108677350356205084033606142753813620012427850789353353018756125900359702671811118468223893049819276046271282964038913145094314387106177642731030940239270283815434178189033301106515692663453889706518771624950973214730454254749794997203102501103382990847981012145176289027440410635677596002121516933777846293602361854215269459309893548381105299129795232714812733261945420506014677201134175514286451160710741023406933881894217127812578472915497110614549908008583260933594890197099289349906701537103230631548762292739029658827857063749562611308799477611547445859516799408468270013002264519205370483427394939315893429850580470927116827754748037227031585457521771711098844494503975281489871539351357620496603504931837882491780900126130518899608103450744672517602324097329223149518471381128413764701621575426456778620641271489682696125412162457708890810762537076497837169793577538995678960322078512483142514780330742124430256734907812885673325671354284141797940071266782746717649622995899525225323001572384436300737540288736520229784994420055294955032544913542372076272838678899558120662219896670163497169290826993121419221332796447263785286968491509394888827774401298290307572457144613781967723423477140315883529521548108052033684674469467185286081589860239658603895925986721809740178937149023586389661245113418579389274327464058654632149161762507820500012499009401107254489422416436627203301243655761106325486875297136056610284938388948120253378318125380329922425441321418496143511707452678341161264190858041283326223069557847673346866602009995926882052651842421507457972424234222249700023140598268952757330719913468167379235326677496297341371496068027943626172322837413534108611340521102457772017859358965655497305838712453879680143578759577754043997119096897661655763960449608257982678099264160939121799531223554488976041279549981625339781746311545914250487827932698135662833569632816080536632883032604652628897702600134528959914541135011093755365580244304131894379396832737876960925688085004139286843100050601351403932503673252087098050973588523026483495672455281367132525617805027267872838450561763846667422867971424189232468128260685627117645172453533999826913334448298945938668487436145649116841978718503322107235404699585402434921122878705873356037919706787467980703558191465235367535001862459031419552357981195285607029114540538245750263433277263225098257907764223327394273558033073367451566541156897836275058566711295561142268702592695724585356471435280375658082897073117902370873694162087900544242709821237903520775825315554054591714470185577878947108150430572824102338339539194897624247219149964215309568605945680828411199162650689035415601551109359443733588474742782125018552769732797766422079736526524481419019520623655016780375041977504651960569013009173184382845801670542801113854531628282618639488464620914855152778106733273866965841795663990356103411789540776861621491003403792095544177238877496836117690330724174406623941268493333086900979092417518693550540066022183577380966640254374528683124445648915688414914327721104728138488051415547701498653811955086052831164191691680832297270780494990826122256521049758548482694332599224935385495733375179033695517290624372661927010707758545327423722474910993953595874563272200913117167481139738528851044998108871684908912300292105035285543009801280122093149122251362764302009067949584489252772888176905262834182663942794038818796138362196075042382759614319608272250840191438862476104681788329735379885477298365390842607590790607420536383596374534817280836698027757588588687774992206643155062997830937007795259029557623841094241629999590756582120968083721483605440854624374746838618985605778683378839377651058970208129660423000277981575579824076744639580304988815391806426078445361176652369381113034692953785805287240048838373379014498669939230551382430500442386472200990636883449215078236162643568227683324136004082691633216162486124897321681511925899787192314948457727284131196803271123526589026001451986951666737859770040719520642050644197096354399769362417575647439307198700910851915175411060289867284868469292925509890239532266752495615367370408377726870158005062367462764268626614006031789319307569728211817264012119076836174784822642647816144922268029316262674349331987711213580614145208688544341309910586549717435878068933147676410266242614139069446077782852641877783363636504444985420380740238438341949440249293881692246589229176110154188100289293689445295957277763379651200262605284965646241195291146568912715775818011040878070274457527224347366591224348961987085353603727558097439613585922129660251335385383207570798897856741247378546976484123927796255860083304838358447411412740164028234193791125124812529200470872335387482563566667611253283770740448463702220410388930583394197509700715649024099370996776755992734619116157945049188458754238412346594046304244033102534105685884005241308839072603040371342094602099167418798874398339034703206937707563364255602065745932474231601192376675495496884964005405837586419323995707727685785276277391289724957014515360110452065505744224860446571532806421836649003226321889430680101190250700990708106411007624591130900949711225924406979180153635675326333822607409581630275267281016095395260437295938329150835545297245836828175740032084374997404735684475175501929788568225888980267783888683825270257786159180407672922509933875949934137488469143333272196051459556428711236494180276466302632199565678194998029799919466549722264408412835866154070177434692103724437961604627207955766851527413831213239992893156604439957732862842866337449400283467052694762477941064450312141032942927092382361236063141801676479353921155135263705067044208243149165615330090871810509070835262677752642677596937002566910189813225212102326689675625201613411485887967050561238032219539980993768150893272556133127651708581455689853329899296098988983545576015304913162234719518559378901954393457958191657970304073060090248303618729610053872150660117002174923098477720086470026723281002597235996004795922278847687363791100134697757033522044231028113076500937075535466809513967819442908360812015007459832882679836248507264664370797576689812112588137412988448628101223402902345707821428572180990736956381687027017190054730190991660548652721457184059787475780211631121355486724223024514462535138684707511569956357854513614241294101390245935859246963375202824221093006429291719053281506639592854456792421106185744922187910209145430984418927209834890014617454234342651277945042668024596720575976048903111341088246682913232746551476249756290196250895898950870384616434169089845867920828928521365816654526670225416897260167970583018377595750736984788074074331073779950581371841112681994577978612569750517349773737863993568867555810364166679023714746735712841409123682446581121044637888207191054932372661442387790625930283005574844570210608408031406139922407601729494631185769628567568463469281785106215102921892899898976120361654111130746432150402267047779106451552097261244021691051801843938065600911134573654886830904776066124846868627687788083914072495991426372003879464662196810865110673971402971066526136126441615086823124125301548321106644979736618082184023699051089088824983315050395502497738400678847471417821222327970400615026372830520602998470793402693205538664441384073933414550349461366924378791214813554255858634980690353499976779765870889185859228264300047974648506198458716745344838322963251313177581253610911930280913560136321164453590136979758585523442488205475135543410349215075290573811995928515851640859589031430547319398168042818839682615862090103414705281268350455358231626112145578753347517794370748342198745049956569699259562629411537052348038088919079174561626588986593627517905740980378200003169478691301042027162546907798155968980097188243750941463278507301919388924077745702872244214278150816941273849531305548831344307474532377868504905974786039132422412647995261045600449568704650158078834361995661491627794150159101989756258472389435485247033898238898103945858079598060377586569876502025872885905061063380192279634535044322627648733331512640816258197136383747601015324972331161992516984407548560553299272408963231817093716492329018748462296904735793239210895477516538520254533390447532238653438859429364622138276013613239352211306871523118806004981688828366816210329772865133411569541175623422550551924651590163806012430651807433885167980433662321986021597524842619775035024865703719021523691426931758097656859259531284563069095374038478450569772272461312585308606020484849546326800688896492100236551959350153353336329757980194006440757127827096223747153132251718241606747661787013222918044044431144666090067832711659226983153181209144902993949312614263310996263903217555921316572815948819337353434711713487024908870426634671927191032422869689014612572182234770122750289848643589120719727414014220736632472971273293503536393258604291718589837350793506561680855364294987702703808685158852162746776259817108293137145867445127266659859881517982962137667771207208417724198110259918455539302354159203468108315235048634249241503188490102874183139548168371791115257723286989533808062296884401227179869392525343001534103442628468817678553997592535303213663687998510370456568982449268075382978079223425264126975117750665208036765505821399088369325312957187280751419974792395968069861500559628670293025120516995455154423765904221897120658647133086204461829285776587541075441274339283683456590924042154160829296827625029235868517410878574030704861417781252589021336522309772081544226111634261868266477918156949247836109700351048867211466384191946752202226240768952524200962882579731676072780534122878418155039915317820327880855439522413599077122516259793568994931842622730500686120964310172167601425290495700476264955952767530723016496425182017210761582908980419213850950347647182579813271056395458926496328923467586146739361525497574953774605350639763756595271817357950385718946148171953687438390025859532962995661598047520223428302492354205249409184775363806992616736887734469183986128637105023316930675103001533392085961618130356044151069621520236390585657345960791797612033994349503873564654343760047849524713837079195744449776766099839668730186777494247982035834696200549055377220704491985040321674771875111586457884230426245181182797015572510172495211311277917039334827129175665456662282099435409122112668969282417472220467922888975862422836043710212553983007905938386581895824990485433084034156320710836321936430450074167534985157768324992740181975918175640095907978147356862931184702367829452715477842782196828363773351365012172864919661740563795138382193160924220544905379470441263259814247614936494928796617255945271364432879918115910222004311736725829841800602199012397708763398137461183600430163070439094069743063461658039568106243974559316437930357108008160618277530180004413553497915352540983127563480032231884286845397823294416418724270463733591264562617180801684487028921650425353536641945653192314052487318442399913552960575238449335749485174446342464847845518472149156279435310418131303909074723135890961126491350912125103989427200684772632070520681426700374791070370378968411647219848789838218441804704718098046886706745216411345973163061548228609804026012422212428504245416242182059872672487608175030935687566548812378615716303116679436074053140924118878669392821468963966005838384139858226390197740697465032967391874661597249501926574077581329027741848914674849077143711810335743968068016558176876757458047726985979263021824855777758247910442669041066349223152009484724531562042670085598563065887402720279637156141644966814606260214383944663651189326989452759278352734392331690391835589076300639311688257426905324248400571195197849995517780363393932618692852403530811270993366967880480734017118905314356492709364144664653537782761445389067386374292111130039215319939939692534623825153533537513946915215592100796788238124979601157855051314116013406759148075287124584668631432804364516153387106500260982327972498797178126319232191411237829804200793577820245643860143467843940573974392048703260620069336607529475763059335604408895541008882976803612970150899948548404834970171752336335463718846782028316738420564800648438232550522228201851553837070760048306050300953353107283069127899324893474802621115660186779541405627923464569259108989909880681155953036361214129661165043310724770850471211041579209126730429216168746505381220736688582010066299664165592326818294113906400724275042185945914341521578347106092588013885452880549056933039674657858482999726293419406689633677811110526858930456499866437682496039861872588651925832193725681780705561443514306727540566114202691875088311990839950755771884827670013838496567887811513570395406955505744638314216628740896341582765789761857029687967920232237057133232826132455429141213185149641939827888156189747920807037729525049626643829378119426681020987775023566460355714214057492930295381502657638925322838673283651652275177484803416218832736873906570122409719827665928835507746824282592655849271331424628652222728778536204334107704282943991395899005263838342690990535428706326363217196667303653195827145365284933300710568061117770089959803612875997254279892379327531616040890234968529146281082028210975551321916789420153410387248500139087104558761239334856550978015862576789133620684447069779516404848577074432477550480065467723304035022351726209499099401951451196326033504306139605184963489519898889229211072949196578076619569536963315052317736941261875617869526179262366719530164622734973553244883359283163440194344351879591053030562237668103842338790058722347733002109469884474937356791832027800456965464297064020089784750396429992035863767745590311697520949068598888048411782635386436096331626992728293663264889068086427124882498035210299008236525772077727585482891691125476980842153349387051172010707045710189890337178137696572397975880837858830012509237064863629471933501217492727186174605453549478503578684372200158901106379451592065865550530815337302803395630506913058973860698037219241206863508326046811630036058975230753367046734591263800923067523896176468560228830390983432774586768459655974974189097452747640465683677005943884265701943411837807079918599704061139979980257877786072722548837341621316691624265365954013037855564310888282203895679863344882897702940765760764304844750079373849839223794940566450424389433285979245922799578088815766488981942257587528550171103553911962895168919732016581142469565471711204080193473561458621510534822677186105005839488180683222817258009589634486061196433963132054758081940000072628014446638415976524837329130750034797554655272693953543116368381020754645338245727687813293846744990829480751796626855426189095810906351098862470456304996040685410097772297998319013790600213997192523517783484327763298736812371519699485604687081254077301514997390795177946192668920729330888175887386345034394567459465568696749960465407179093708967668822600647855606555499942466255435292785351077408647394242883084446551291564916562561891241077327297141043668423884896216663681250337906096368458621890007383081598077672405873691758839589477154315207391219772805483167773181533184261953746672847290482556667672392923166073052775054009283550007488276435660863443933245155273987828756619034777010727709170294496693290015083777302494680471637387861513885815698091606398712476716993692485091965946173640258262313577427030795041614480566865791639101349936667743891054192982040683711985074218199899077142208711927852763914589786624548234468005806136617642507903479682147040130706055948358683298689506714123786393908755809254977151438624511643990325360757722776831845745284278996903260485457100829600386314123316097475155516696187759394688511539819297630817417690615051568199262890553151704327908595500352902467466025621005859071540479522031333038201286043309469883732890172194732567956811308997807018678052543349055733755797112664437515879387881996350449988770802030746509960601289161225068896493293270922033208977183944862795874176700000235098924028374728444402384384480581933634538113395947966788605018823308488730939652576849921715599484578457461285419660747087656005049593564679103737837655272813855088493575976731626096766701607400866279095113120884130886636020869522731395396409326704484693727206612395641771785594820334903738163594550800911636467353018114782299602440715134345408403680459493902907634213465480943169988470137004548535417642091478375373417890731781769582442049307905874701125333663533958435353102832022937376814294097682930672485741680640862002108551908690045223036651222231717925159840859578382641020277688699953894432114988470762788888241875872501700543186764579892622347630810258579532288460311891347724139635506762216568569914162525329288271699787593902230327232735002464621877390630451490155262813270331338629262919762879913411285719252343566579083475439178591947400133794568672498584966048717060351888276027806644370337060244334866957269340055326068694485181590058641516038906696883014708404558034222797205466159389840635740249688805556376994154582267509340912684890750538432104078465911126626369559604408600816755302384342784788243725017415901982502164971588586437524066521046415436793551836489216248140854645248496700739442817434884069736659273346978304783011598001824064438163676338384919846273973239697393069346949578872993411503527665198010076062049585729880408764375094283803751598985483158615904398750770368191523515133851387913606909842793347203564727525377319534217828922303045761534353619764394089750934084602382401482621906260474712046875841734761328854577756063292160145350152419369784500227702212108145072762788917992334226052422003261896647436049046289298843972798795219008175545472066981615445127560063731881398656253227215172077308419891823803003945286038795206788193082572598569805630409403119023734035774477576946649409668298192531872992747543961148671117189860033804952685020683764231292201619725723385001781540901352521009525197682766196827099091405248975922400311775134400388172650998728547931728784223554967555346261429345785053437787511052277287267162045007579005025487785129398127474705420550413820839344799747144072150820116816737479819691835444370059840599929297730178195902592342648179189920232652843323859729349353856240691639329064376651304233079373924907914526696875565656433545199148918636891899953867334643699082157372755097578852168971640654254987846737457441486015939877404269955825931475429071506094839783311667951744977736632109312347398148474650463738402644525277525954870364547800401957963296436530339747262958611863559299909602148838411699252428140093415709689942142593631302254639612187287320006012258043477516558277412034024968433596589347118819528097771423253063807354146729467210992204247305626407268050098785290952899514806327652389497774317240434015989895415781041045085012013389657878789619665427363085333821282855644497771855556377753808046297695400926197398172875429953582206095176394937311434933975445817118295340774731793059492246961945255412375444181688425092785216719426852578194392392864760072880950100909568379288020397556767310321559662735462812482886174789666504411952748377758217489050385077836350786228518656836958087312095820314260614194696113903410778528689430152016246103873272682916909996024810605373650435920908422065852261292761717712007462911609044722444888972163777784863926253708301074260276731847172594892865673863222566938742561961206238513002383240123346106033762623626819958531985398159290257313487975978938231899741865280792038263202837452110412633251414503778758835718654503675147769741829187544995693246908667353409278883573895252526417954826493040954760316544129365205199322459414986541760565596047023909354441276651616330746028958815391859644151258339831530989511531204433062399988216939016986297541396735335806285427106877736580438806928254723664565581906002522597209807826687272844211993796331179936247541818951847935433179314864257359304369552970466178452865260149312177751873843454032479324804874763614381326027844826429026721859477844125273591255589294578211163192598534476323891942827949692844265628633558184191742698721910680392000416974895244675440508279819715405531944722813579330786396317381441038584036696164366603766723120803857571563949879429340732953191858042795894763987215404527641539202772855944498357881434183754734097311803259867100967285989585085264684408198630830066510548541379022286094692782129333976206898511011451562939074465661990003280639478619737724056265877946200920468990393529789518529482577986207983905758940080258067715063853740696477148484790991884120753074727016616605612081357733933275576308093829706358226428223871527738277068857069084531941012387475971715938600135284269398500392322579600437122222632687761991588857322790749906566433026416276361173039052601373632347073285637050120809936222776823058447243368762783499656789765295547605968360535532716040742105659746211692260521021445630153131926885163362306027710034591509283292499046973518986315972733342145906149364031626504748350299480029409290713703956322631397344509407012289563364556540839148630178736764588775202991545634166765685013574611302478114854477696993215861671221437804041380687746355383085126298575966655845326192251540518920955319402670836647282214548674671108018904007342170419687773220167136462048924012699403293020454140250493057629059559179539530885804119456406628712751629852520167542796680420380618994740809116368716398505269581613918178599014195641342259170709692328109516303982392552216790984899788110198297724783763264061524892711044552632079965957940166000922945651836333895596129400448921337054111618457947186225383998116646990604353511780963585324516003755831749428335717682426297209364217401283947804219458737673816091745741341507739961111806214330427703532675368914248808210977763671095172714941428762520359328650534232633254245530729870508458221136153241267786221913518750162176423894844915464335871362256529100514121391342122336265830757230593509940975519691541677988441545726050576047234518750880460247863057899290123932824867419812789910336601149765254259961387171095603274706424750988137839980873196570016735790858004949900243458743444341043793183516600369885782467333015139436224530471174788444268152232866590461012026023521774460201982682830180274441227918156816930886770996645951911599259977085304588203643155622185382354399393124727123937291390098799220877733717159732043499034911635398390677009678216772095302654088908604325463895805626735045020110780437702168902015496478437735745594753659737565347385496390694947479474936958026593149221591109635721308787633708455185622721364268236890260647861463600603805396828088827894259900819875199451304085892748090520797128378820213449869341171643001908519628350677619973020436107890774381775160554032427488956097359394789386863282367309819172785504612834292858763134875665235282210550980753458494428012822110172883444928022217348546725236156455443250927850152935445212998208206215021717693744121877499016154921367821796205051266164548630805787110730125401121052467536239841631792278300977895099197133070580601375258058365489293313195180658843260406759688444581053170056943399493609101675356210963072692626117533677831446479222144369870445672165263241457928016576481450524725503663651326896319652815910413629226126679462423894890779901188640334536056517252847852691747869580674563422482398918756638079509759183794893206610184520231894877324556953196515832563088691080606957821112044507964235637517116938655135506991740939194842355779795628976097114496573178611553932558347353299705575867720934478357708647122562105711812786744416573083522662104097993321312210053560698200567737563758654123344287364040717757385159958784069264926942294308506540657447917430187793815406564523541480546399037656571268578284649475844729390257499771222206107323704607133385680337924089096901732580436904126906211159687473905755885047727337107709888908860790377394143742618211472740103917586759966987927396762878659612892444249909987237535717430444064324172093855223524331805447267825170148680343916456853954853533849376831329236045758084651820496522395461437535643409872381267947183269291682627703553059894408206080514168424445749156304673316722964052233800062611333239064819413238719015805580535800598031475265076520065709233538243518592432695493631814423131339677847649476092909251170301529254811937589402002790995764283447475300848836136456770272358562941753480892313598048044582208397502183680793675171565592760838246482757448865732256596386201101381298216732443645694838022524947880588078778837428574838030646411889088743911108107460986948464821050932219303217485142086989063135231400004237726416333385638105479545952926824914457231047953993791299475932841256906252556871715568594049374434828539695163545373713946765651755305163609470983579498438289822856343296628060707565937281084854988527958875524988601715681994098265194929640111160325485670279914244834423697551906160018763505473507569787173676091562031864645241284136321074534085694600623532066549662467280805711244406975022912187272400311424896627466601714700090285064725324620712235162730222938338708058921428917292654339601737874664137848337212820143803516334476279030014466724702921251860450543695465744508160472781572794270573286344935671234205634253719498839724660446282945157732386578616944742731166045084049899186774448060915928067195722190017923643593423024400223481926712422134675352181488120634855260108199431687650772929784832691359063606891005103458732983461711644312841199907298693246898736334453031502885029246499228974774114773897532093260797779343272542736094254915168318890598803536917114118853793620243098616259430766283307189043200621371851871085355238238609442382460051494187703968934213270542901827579400121160673186790634861831223149766922412161836110090666740834145782302735573691434286247236165843943111258444206820547951756664947815002082994187574722126341485677686871881670284143463552833546109981084440451291551541108272229422731518580939600294995411922634594303094375985529745010875779300361304991206119044600904726294947926817538036685905226892820766578068206782933363518077002330226041211825341902561555564038346423210136519103005203045843685738528982522639726994662586299909049209517330154357721724928392511185716260798153977385180722259201863373580556900748844911482972013429757941900946738593442924868416623853240154770994207681026252035300966211797384774037688462345349898660436778043873489316990131462126193149199863709306835043768319238044204345069207721677705946130675676551069337315072963177411363299891426483414463810180563297118032491008102208074099891786305232549838628397813723504524438726962769301143687133093256132112061717257799043822448634110113252822505063419003883031180773544828457978866853977231699983747309318082863542473972872677237931616081218412375528822055988040416420623748405298072619520304966749416344815247517357997907800028571586973177497485679504202332984548763436809974769594925067313226818256926516185830835370486957279297106190232807946176167648402279187551333331798103401862202556861743172305710070759084442882293394659079108164799385753872967012135993214826698420689337061655877187172737321348512060768394387636606135058492192938333717395268565407845079977782546341423666376713358560954725450994734945000162298822871364668340699267815899420373255898493292869158117401739791967231644349332156155248176325487329578477147799244813849420377329971579701223128113994276026117931616148428100994701528872441344702259749612181047972599095532989007238707456566075737513602526577971997142596226209407904331645851814611092642554283591949970048384401097282541288557471552873877468741731453356447128142858801397586242146164595687920841679675295945264351898008073059038692134096933099675881795020203579204321001618787093292675547113639844363632844279015342884360990362490933545489811015421152059765655197078073856395012190533215337329740595783993686214570385465326131338797025679433695773675799476100663699179866441576425125320903678169541240281597065789595585988461146982238523934183790183684900972423189318303571223702106036397592130794135815246429009931753116341797390505227683424416176419318931814582200992141230367121944078745355668370409239910783106983868515990210618887344155514158558484713180518705842296592588498951198101328272264578167346163652003910167227662213674413996966680487764135322955738861616581121134184782027000614288928154653406547257731309822185200434475435457631082958602580547936514493821515377529451963311111473308761803765849679424364535249599880925012045440646064416907370577218765802141073756467158054940416205767623809680720360575590621806892351524461282679769688463246753878252234804146396543585734395982026006712381455104024421842156046846865374190422293983858301409335025237945703237362076022174846770209428432751237591128542523387187301947322375962292916162805210504477872314130650808875464790388650912975576162664389049009156077184040806457085386624825355548473744843056462866274579048067658376016585123693092204266993493062372550494909609388958577075211933363431620164456287732272480390017366158150799293605934767032143993964708533490304876156375145628362617115106969898817618105061745740069070788919842902394009977173845720126843663933880835254707235055002654181369771765667024928403240066081780776569968507805799424376928677879265155746063070850967145910348180472892915675921961881272796309946411984814514966155108467816696469731099983324233883167846630697998933359425432015082384946539637260041242015454598959874343147742665846528079946165505336069185135302009221415316558269725335282145242695329614678137321875555617579785591356088600240008944233789478239779490313963618033566672783526206892436184799901787436663343392633037085762036020931107230501884195136661083795129643713131424092357857434953028890019911920163623917465543577317261018036373800627682134126533995080978842044208935246846633730062780743110127886647505210652646784830247083679376032810208264446319076854006798223759640906600359332074237481742729069354730328818109532205737887746100685451882319617321107648714937807334818667818949422919613514626633536729721434559081511904488569821169651652887328020620496940594719305924579832838484637903463639118196411299598545291932072052674292526628754152163991526928227336766164049581217265681769452369928783749974376403618255897091707453217880499663107298947161610088161123554310052786305398080642260028137715507043609130616345541807273192287549341366090315705946676276883329172976939760057926033907602479626905372108006380869911731445066921103208779066501041222261828550791170122955794913484965679755443224482979854620165240812579358644791296908301613019813153973900371941446560465196915470300538274579161597967483157053548023829768793142844400303894492980469974935219093212298631474820176616809172520696484709886872568176921904921722279244076651205274502982436328675756244327020848438393068668575956278449949576329018734443629832268295580776184624716255000531729717684336231448053881533004871102100989366428734607958062148092717098039991160880154269194560578249195628683265036891319934981920865330514131064538538785966214897085878158602595731644692832151394951984647815668725597752972911201216675675810662970015820302565201675572472800388455419803566901114628143957313862388425482543780494562180192918898274088531359172786117551498408814129621006115820076287230705032551660266034479135528913897174657685960490596470533522623056270506656367980098820049086420145824491116692664466883857475323126439522004380963096354628216794787468477554481148551752521496901718363451389587005804673802751280123223932177064355919397154122942730256158690984096372344946769781073076174366733466774861283829857329714574962020248229506699863411884726025393394048753079576692678368969724945485936073508710828350900269154183765929292349738825514840412047984169600417692713845692950315007578783766667601186976285001507109717659587849589674207556968770168157588169716603165405312088940599412825468432823857417226668843623073812756609374274656432611794402503996480608849089461278782851142304668918290946742801877165902804448700116701845722639017499703636274090920102298882905713986022746118955116311535848025581498786478796128040956541814492883308206884782616380608403480056576270411415501041368740627729564402000695104354322764379498745191297975590038511681273692391605387545854715005582468733314325401017832150878925868775915280830958404231534399769192409379731503606576745908168530732196219658472840649687319253448619955019338658804003604639824586645571403416288515729635236166718353750380781480850566753525890945904755939647073687740738487140894520519910458381520012826510204247029437373371248583488844437006940341894042081174595438414206370739310698571543781984948708979578516186399510838471115294811925578471898948069781945546406280189419326102977694031603610777033881565963530397460738985378944214700310793756415074860149686971929565841429095729516913471711022584180531640499530412773014503176036283733777523075692767275213100083972038304438571044021894429356835861032125391139439784364649707662102638333659049877693046340675468257478791165240496016136416225574375493872501334353494792349224238970839981301769527981188178895920550057483195732044058636484766497414011496230664992324999868219158656974631055311224197556757710823138395830289094415657457867901382660841503541467321569056913591791062587391119156039338766318773791900041084315436945480037655279464275495146580670857610415925031100440453372001414635919724307565837682807015431530320284669468806593382981647096437388520861556059758928241883021139203112687414742138455222864015050120805534908525556627932395301698148431037098066611995202409162899727490940564561131164735043059304558493368128094127762125144778177463281760949790596344380880749090129302814737193539432072210611466410118544651109321347821111232458556842046737250789518002514394631075252745529231809803045501158612322520084276490104096624684049572514034175588580855122220200206996004691371659227188980158877388560722299893041567338573449480659794647483514121497285566823262654118948336421845941542079612836393553036286384393148462225228956327069045507155543149994945960585498170014371313691515926251204112270645060954262075164328195800810796571126313936115232405747657220221577260645540334372231582558380199257681912978441915818402711407279209120052437322899849163092249804460896223346839200367409834092397444095687722698624722924658718692206101433454976018664210120287080582938132980841304241111525147854699060345914326766820115378129664660398617451506309731299708794339864484026432997446877072188691165380204676965292010641394632146837430052477266983788487393262732628765197848734249265508917079421890795362271828487586656868512997893380322706028598785155006433010099146407882262565478595186357051272025101914921403457706183415902472783628785677538832172170370699407850210918169127652174754204111492419279440777067174199858440672988068428684250337796940253008547725847505511006476199159302430084716210537650765739017646533690883303270250060629796798521018467045548484175683967474823170763610106876024465286612568541021265113993606026459712644692457039709296314259629022227497262211920776289201855016872994195893489888038962860583849388002866792522338998404112233233051283400657282613360067385026361900928709537654368954551698087238528710162354768554450566441293599897945745576280992741448943296963029477981060305862189099717036610573484808968761393614728519733243221644857364080479171550546132058518128307050489121075140476712866143831504791443495322777290792530368349646238516195164301303626122023345518146737070258200156213965944446707766370412876661516872760145913738450471711695371425909092744555421866266539632101813898048162354578329329483134531926958344967511622745271445166256695914396886144717915370575924700070951087140348209630852290508096118395411354682084330467022552130470673998230399107563354629476487425481977297076054564239605117073762927782963174381264739715821163676746190581358583545746383517412331437959740957951995802147516271623383781549534398499688048234920486959228273874874179320046905407532744523181786500199865707683681017516612878514699891850911252534358330251170386725781646401117444630139936203565489453697924383577280587380741126202358466995483689243537649611250875367613698039915853763689611693738071841153211671583925606915029190581453955467897409185590485498289486193304540550364515963903356547907851832172910731165397346259035332176182319063877983540262757628500840251031415947188004836017488944471212780785346395028320639270832162157447445457752464184555660274450206053686207493297206661561779227934822703110957144075644663465742491315512286889995961888192829488150690594094364044392003543301769147216855078376506510682770638490868258533699579372713672224255950758950774955240684861958747393395038420849013273855281410491328359841860353131942812280975860818373375598215270875135104782522784411529169785360693241676412963929924055347304121725082307630783200153929938346984809232404046271427110838724506710719304459429665756741800596630986074740917362596187717044271358133002795767988701706461867508209525496625520833019889043641831976486634774508479781816073431772625184581213648688046144964476786500586473666226119299584525004565680988127892694984921517982691371384569484671712566579443786380382054822301752771192926713140887416423096565411474376413253984020378129134613926616356266136268159212549546972179835576689222191289053310549519346368557978734148804291238594643553595433868752772975909720994057220467067796739053969080701837666466332826009552408310932569174226239549813738132652534669180686125397858889053990761608304448735137386342693812128059172022473709160391938402233789231256772082667514705045041734120393593941556922475586796344387812526808842826146930420098147305202977631819038407154412482444413942009340059603891167453835195606547635696884541387954257936649485603350197783515055507438373100946571421378180083805984196800245330552984944539241855410091621540103282530372001136121732193982703053546188621461434220838083990121964314252763623177871693512340975701151024602246988677139821293486243526480361425551189429266623618845642090480316434249101241363372471209444051497823336749968294247418986348968205424230855556960188248065090459813669809130181338625253679116034160804284931963641589004979575949173922220780178939800201628866529229111107394203483195685518441520020627671232823849209150526071331759509939166116499941045785209035920617622850477655182963502742870786368582750220758621519135404498292761230208985817876187196972694158902810374628483865338941891676458356661275850421749704840355371950723770322939326867761895065951820248262936064095661387870655946500346338301789453298799883770083421488699654673956862471771830538609845872349656861478324592512361587832553799015218462842137843265525232925107040140134787667959464999477100119663454331297090594021412421958593720789928007297165671760009309582729594803569904872898780042009064128791412036165807177352013638753551583919663630310128035247388604785239776061024747225225185316119825419398633205085634518704646338533979705903431487198567766424816702868015909893991723646121902797609617548990794634660549394038622704836916622436575992312259552346091386844231704512932924904986494690802876066965161726058729145028772474997784529141300962871073787767840293776525633717544881161738592290990116022106556954028033074935773049536138735998910436645441326033814036047433665475630725159338857421091067471813498102055496698284788108062255271504381201793504829058434680979437835578693917866887441879052318509615983585157030875195353069760530556354402988159321787190240795008421872017793586155874867709744150410592979978898357749128769124864093908940200751140276979394466373740032499616557441689942567444948766066913685505683591603554245165333330453431582807725813431858554851863406380000096372885575830220918223646098593618486032041030487184865059038985832665120256468292333305831796905181189011648932097868303109606166840726653709682801506294166751715155138217140260025182674541721140360359819322588233154564159202746502200769518016026984075374399202100309693192866934610638694298439731598435083877052494269579326310591870546652003639775196757511669427835114931740859739991576911149802516287537023387031976400792669285144481938983833458496497049684691672364136394188071767310738536996026423478993159171987303475270041786904983106055371031941160568311805874018529542156015752360249018422457547424259504756618127091912741491803137074493168549815790067803613159222505291182860254563097181176019731439736319792146952695305521076091285745151963797716166072077276026692312836107834800085849558575228664386564382782130703993875102683949036806506928318916785917903012927083276537188710279427082707560875043308276439337658416277300879337972045046370757601216579990634190171302549441277673677023119153952703063826169875102392665077804505457543396949170588119079787800011294156755706721429117430763782412798219930094790386705646901423615948965430637801724304637156174925049690131996048563750532526287548716779012087248683993896302669370675470948275745808968653896982845751188097805831103017924693376993530350437472611017097545769750661132267074974174959527142426236192458518424323519363243925239566866808798169250661123845719832251217328138766930679825045414212539402775650428498743638816986300341857444484749571892016786381793745345334172237576468346679753247908309023471387584189121218368046574481460030016679180821931672036282414415306586367139442806472513318205119877859920163529673409243913299915601782110894301983559797519214935962137164680581606710262310676705191036595171735984194727615583709093951778951354345542252442170026198712378240122751118946667275550775575096629478360462464636032670159092398510628530045329321360186076200639438529246264803156157239296452875915063133275158028517546693061585405149900658180988954331054705163664235199976688453344086251611431672049307236707883089455202598857795101835510616183970946314572384462193246963206915842733981934154491453414431381640880251411927046642972852157407741195555316415137131507518240321250469629617381494145387560036302746635134435788255897680740172227509178103290487618478766556492106569371469185398876102495129400351978335698831758154087597734530054259056330819166065752181701191977945373721775154164135115943570264395201539479413137694694320257594119624945499477632325407707400915266487159116110567903511555791017416423278544470847488731235053979985150320904537828256735758924075741519576667423793532785060499310797508339590239027084665491166310906508047982462955734327055618089288195295099075711841681749293883196331471526890351364373786646971223103140780690611378478816042919431968357126567262718733364209345541799054431701019821962625524196561739663162933039529952411513743658320399841245363877109351872338907791667984139450702288313296205667833838507030978393640662529966683447298680520043295258775983693135145690311292191249025721986824662401649686041910239701460339997768362551374542588427112540086707212970228396220057959187900751113951662133695113169317888122134383382907205233017192219764080268408929597465946082709713165554270064401930069238405845033835023303595017035238472758577551823515134673757769725932131697811337595083807130555706764133203524260171122454407887002955876209034166959789538432708173128115183276589142479681305221687346811032064899817379238707604506622063202570470823858693228550329181815090609538926841198653831606299265500992631222030206668893546598469416232449877723638672043774736656797125835263718840186084181637479958604891988416420127311781927814896309994982507178081238145302687601361301613072284189621160234601439829628625983171387309673714013793312662960314647298154727767384932443566656742703207434284050121685315861607106940055885961037927912966764561295889998621489821829078672179054632964155901891044643388020913179059968912337186981999369307997998093846333331059784689152253113820977619589896436421635637761666646046265424554051007971089310844868987183566419133922599211097420554033342270410819390672654096972701574134245758608257990786487943115888572910234203105765620753162905973253441638595478346273396301362533466896203896840055335836392092902556876514531150094576815437971609818860477335823578568792215231736774283067639863191573056250968478823104555616139368860225737506738754645196634046157939131012641399712110806219959143190971924053328895202733904751949689368150195572213595255980241916188782058338374537229592618355619790184591522620197857648065045722635778460229261164667266796390208824286040944227500926354333423693607864389017603532277256162976533984239752948108179899957067395863762924317594354077781634987721315925244204108052425485516296783601611961144535529994242335278806886628151607634818083626438779479495065676653236227109833427778540978521044920069278411013735444349800683011186568971194285606148125714861178131735108912915127937251121032028859400822526451307100284729444367352061696383110083292018633634980916747585610562148262507887556799181936719666306055954704774322563955129697956731287751545446161077775893880461397972360083347198666060546360741527256818135794766483913049679354880844827888052911791046740125483330035521739955807222468841514164382584368372827880154113412014889457395768809996075566232191205946291606151541612505888366075185977766628240404084414252468731031662110730974786370656097034332134872868640361222553059257033337841952776659864945513291393190608088813540949451213255677002086153511424246667306325901580007460989033509234213234954901297848520400687883158237573844256770796829192756779875964017325514767878795235698064423789907345541143737320047061228576383307032992451062304999390536099235989824459974467970231272407807094154363890503269318470031803161434864877375156509600646651686669210788117941630362922206443970544945942126319825121879828081487321090117419550082055862747416352546987550044106955491273794756416300389335504991283983881389440855824455800796670686941831002187535654444751762312783623906804659291461465815865918693894050460284175854230288681917629522374160152340055106571643849531179043790783807875091495011545762467964038983253534482073771871798921174793983765291013388547266480815194664807141050085638091799600146291034286597608779425191718978670609232779434429087587648153693677607703811452908339832869484964337644123514461789372390885651100014624659628483800685324677087129174681515270524127221941688520757002233701517467725337467053846015793349945570674389390223728477943960119553113025298687287542444487517531371170765384473342746633161202153309232228481273035232209383373974448744628497716679692295331832641587949201613587916923959404838302676684843576878901086324972726266782865037049031553637833189763650872153938242760508395790289245766447699081751176954954048405259933333598933877042642905616576742184135583525302961460878554000386398698782513706779783778692189194975591605276456564262002493950622513997377678486095493208197744892052648104168829098400094787848390149372803497824846582147994793233738728358825348444955554077341249860188233683058472680628493031603737748609259378589002600367276029581432474454491703338226483534986221460787345040040353736318923087665166285060895230880412428168909460807856267517051041389663403056963169741362620919995994303116177138735056505260205644638348673544150786937113802661119595298452091889993786712876237063445148007063391178371094709003608168786294564784447782094160577096463411881521343010985361114577585928713098737226117320664510903727687379483125210966586220304347377383853834762381322144634395573754169811080108679211207613234444126671154698021304582164798569414489294025509571106912877405043354802092719581906970610015458237489105420837773966207025038592390276983285024232738712452311572198773537342400200043521896834813371546938741643236985624410336312956777823307550412759813966926290115767282348635585553045595668361167780131871844095370154821372423315346598673685435594220331823344989413600494077805822416848716690780015357019087318518406897774147974926375409462829760558146939060577698414229209093262702097220853107870014176405298137646366386868705823508770871923134078396821107839358696690489771180055992815915472291707750546019896025334739671362226888433788154974860602710181422947070475004102922060152980913965429095516312153888367205118759795701190356938273539565932919371596382200940290033776950512653216135968915615727047671800365109894643143914638673167861774893213984537538717668777575089893612216878385310459834881172657959157766077667088518124360524110294286082473382388405000503316015607753406604562856377543980691733629247569238198528014697141363052077890525348900088260503621817570229589087962795614878524163550362956858540461132273190245442345862732106687601618926032728445920308946625302366832007544979014721217051030038702667567408520905794683322820023956452333232044116681239604929287390830192088213451923957228355434168218689884831663900554890918503846377769389864162918020449861665663503895087890318998392610246954847937643441921774537681644418885240773872623421268234178939923730921871165498844958482079916667936504699165996270172596028014490959930556422671734956926863210623875889568255499141478674505625111231153279546287649584604241494702148069319660990020013092126524296003750496601713793783007686877470720991518389968428617863184025089459074660087004380998525717007832796622431409693146061736454395444523651250063172849783749008010741569750916495920118082632707528812993233303481531102140997164940052914434103929146706683389255198326521726459610466907271638202543594930142843231264631200281850460179956137883928399140375497895693937916247965685151779011704008855187283085276875432785400664679377112880203288838594786211785329334669000035780523482466796007635281335235646661151136064526746071956751337538055408137141158640811577279646515176230437116735701435636169373387294338917894746156124762382081027723744840918606794625902780108728763271292651805868537728180778933758533217688195148977621798945939076682211023881422277741577414065495969092252696828685475509536234703101686472872230744513819903812190421317616579070594080296222117021633027160401187520238402477874047102392397299659406308648800744539717880412178234588433120588575736711997943042269575865662984988468581078555512236181706380021569186148116488108359185991773565696776830182304409588990620096971776842605073522310876670585178541373269896556208654718923503350747301170854042583228623459605228027199430188694325567432418331631115586884726540708492694142877722630736747190456040162398509701113302984757334281321464721808185204291817506532246722248863890825286356347427373228984969614622832097907191715409693332200342622035551810865998736228461188407636877516217645820536357594335262282856935780735904891679637702622324428607239178745090679309122710318038618974331829234384679176837348137812130775655662449343612947481427337621935515549434489258372341385798634888915416465256878700614044137491249536668780579043088299311935138739919017794713167658206067202773804094046738153883630666564772865462393156374106108161228268281644158701411963009572845060763999343005867071760767155140372535386861439466217362236678770414828339901899671296932172127554549382254691482598919706031119222225637999432725221704179343927095194388023274600069494429314289372092348668012008306670268742573603298065280069189982326203176359582079889895385339170979906991039636289665332597647169029071239900826513982652016349010348193386370372458241735789392167645458433399087535917608315549266797267738485480569814596827358047982386806518376036113087313686785546126308247403788378341771567827883175808813317477548658248078578893591856792021227648992439227677332294399192796109355472011170614964527745787446896816025036132560147991982928535645241346355511237245422535323836168268735981128847095466791972682976778236757633007000477268096861962256535126899790708268446827128381715714347822379801722677226026942511947656791166975232288326540823362016053039822978283492010913721830141431500757970075075180881676254552825099543805420227402872139988405998539329352356290241008738533234657914355876359665429872513945704411901464534004145174097141859838054646892648210839308154663176655207714371217505838418267264986552419125828415684151674190140729625493193214674987733569247762688696588079141129091426239003802876381766163979077439128303626128133028043103829334054949471414849046329298041080127836357420468464241685207487942826450902662481125667344558565001950598357313025589858706811316841439068994127751096106964504545675808754584856625664197612296992406478015631893721491488327280695627574311199431284482734728111480709105194638839572394416227321537106179856020830089605907778956903848223697400048889594850451987885472189553383919297669674760201282624448309929295547771711712088507140658839288999483342075172170476911233807165603491190131391012298145903916931455307965674845659828668973055502041187415629386653924162848842363171686520383917652750479644455212969054828010245534196767590246269840267848922704217443318676014343320392706128834110279492343059525335919796705796145032364701355575442605470855930060151743965682756667924896060053431221198952746376583296191245782767759564356483117122488577716098831352587715364451250600392877591182547095704516752015802776569208296642213927009562352531414032327818787750880468806558335049804962152040247373063088529354017456454574965614798695203743755492091939147379302088960288683613452811421198484163306655768827140157418222221850672862368294748415546464787658641943678084268665015373113969682040826794641163012525684934298659883799644001655792763929959353188602225018584795581284778244285916296828623687444316184454489394580162347416633867495548794075817328937255414633329514934748181143663298003998042054005339703099947985148839556037089544742131481217497564281868176395785475245202642137390814896796885756463854714096661685437158825888569238541650041105738811416299317200028009477097512218260900415486372308806574146278097692939667477986316963387691195625155056772789971119481784201693553335569613844777685570911719798040508352734685853311388543168601682883459468697838946567069470632283599358779506089087042283057871724388586628119860674935263559230903944809274065499685342017194766556784276048999987176804560796173445213778415868551542152017078925058397748397691978189470623873234218450627583169286253696529662636134109783479226523063766820370436035044165954785172025876726067603602933276647780625361379202635364566965597384941899476000949826206220890477531332539765058429571843540495700659090812909330792668583254680494229768071550009983148409124508223737625226305066374325507740175852342352081138657906771730702745289025818026869856565583144630214271890303460019500701331857951527223842734482894966912712191468200057496156909670095397043563207856851625942442547173207339755302759457074183820924387297606410153644878421620238261347716934821649140345010793313651430634290979767875280072575841688235943185130817659715842497485210308301062127401196758613699826870763300395217819357899377277323523398675428038686393929868863006871978200584135342721738262157882080538334726978037930498674263688249694394831983582422198167827368963142232956889651064288242477940287684163894971312635463367370059780524465439314428058014572418032100201448346306682548074370886852265763414402897926464083938635166552248934143264693339415256272443970069995596416642077378656952602733133969398747589574638462507047952023792496412616085559358664402549978535830751128803359524182032426678515363142044305780600582325405829445451499196942208933289065476480761345646018692678668499904713663833561756915270345365475084518263162154296290026622499529190981828696948883756343611917733184257005974411792668543034743751648150203792441583670115856362366453238216833625593959642791161990384914894324846657871668743521134960051669475034666127020895601509169102346194470949480226605330845283374457552421134209079543115727180218765514406279724923100996748121888444658069771935238660246709173586097725520732863453158097210590156211627612348111871158810885785680292571707484320175967155005982648113194938008181818704056903615782612033502759900055917899097671311723160980123065130283167056005401927550905150567293985619180164454453300720311120637794691789564899607772768928074406771673597465150450033040313510691822855324122416628093161986050043688724689667787591599989197257526345234366768169429433178981506325737895763633701841610080939278683833177367034693546105281293982112446267225900102878874464817670592000855631294973818762077457408647014318101690793874363392740916862343824280918736708597853704416791480786784152621752984321143138444609682148183171237098995409197506021153490823545279614479515220810819132037796621497446805302591268798746562831629761533614342109457066181316248084979284189304931772493238641380537864929803304169258655738597272111301038210896855711497614651053974915299853773546686167083268629160216525734610871021554439351883412343480973995142593384879695562444438817838067062689158654979659387562768703764909179507774822403617270348429139526135623557550328520937083142518646883582823011951159695561991976194126761342946788153280590634625918888456049068149289980195548409909693517210983502369725965255074908089868186000285671652749551674958353488708935995295814328503391012694614671395712818545108578567717431449782317233091966015202783882490909351903650966146781092248154804694709304923798164903123128718282016128839695789804619388098677635891347079342195094349584382359458023767859882687761053463408447146921278596367750759287911410016744912783676308407669223851554603936326450732594725862897454476491836612586234171321068056947999235891783116630141908647140598767241245303024779976956503793722398834483421257947258703722051731397838027390992169369164104709333027288134473710405157748100137098779110839977707249118589143841269155733056135173625813739076633520226741540792177306768641093661574960635125181125139910341539486937194457805278078526870976979296836533284988291013974222567119483060120708840998616683766747355875330087759361844587994033381253771237531109244110519881672892947150319202214577708835956407401185334730203134416536898790122556351376386702604749500178980673913778979558726280651000894277255889335106707680045011850907748926504720872021843280315110312476636300305675890164180293608886958151700572262268608016070866803503485873688626592490897981948292475756183066174832354235424967352195496650341892189593293583860016476771062486639672583410615770734000053510808919581286187808081129183643370334569352012598432623600993597753222531469676443848257855932689092627807108998836569250449833107822172447265822204811692822122222138886403612115641149857856287752424168585542775329240476327056635550485499683387476354203559593007374006300708568670324603384733631139365017207049249157420730369142307711386513217148015040885631375911421757395265587142529433710957001541121494181377419698279067270528694898328139597662501346536702352074986466944145694705408094416617131757824849290081660295561953036512637010197639555993784517933461112874663600095936890519435487560364574473207299250148819893876468123245810534931639244066408955722718786298148222354910568852102877441839910678076364428825503788454266357733663454363710659260711082522389502753933933224855982307674521249005902705542896204895311116821399547803540939352191431314837161307518274018388170995004085235739184126667565720872700799548152448312036380346422774476615066994686716545617962235452622413270666992630572115153943426435479970044813493291830626515444921127267108059731845173756657755438268277975807451470407735592924783217435090150127673760933988554168347340332704444961112438140107741165210379478986514092864979576778560013240190907789873632569984978352233203107095635156173623956309427588874579332554021998647582406136664440005739542468803941926231240796296799493227189490471225971651588771330236306772463168200619232505752626431138999038401859076500581813112337538107722900750006683189563616674737921101204675325203922909809208681438040605767730693514667063733701051113299654311926933884491403740090902761435985575541682047551799197102013547035001621284809688466712504280568249286394553801744703727735295375773041577234381818549462186756614998489756028082883466500733048966348187115113340347239376846165753597768371691691506302735542002942368001964620175139765696379793737075035299170412050172419561449106449094878689714935646504387501723700396934536203904053197356937178113937279529405348380106034771967281228321949449264911126862064781728209523567944614331410086169027009102037071373805693750046057357712082660259300823355883165410339769252636329053160684553696195477081441970923355406268648886549329426909636503878226493091869595380572726543979209464173486540037998810154514491569362261711899017999232370549278864189419033676790060779273860582194752280035999816980812082445158951458221201842934057343898830738005812695154073562280214552356832269478797668114651688795874901893710892842594502278171670916924030261630782569159231441547218176106593925458181388816569184000316799194950326655028068926347416546070986134648443891369606680985442393299883370978213590467333383399364066288584505512161690681896040905317113362090989643481899398686603908877210094000886588096541465896664519953504034907423484684707586561484041382336314792729472971854526595086804347480739945110405787872912099499605523685856997800474364666852684979194693359257972338832690192559322611520922772123917999633393423719225561305275202352482149563849978507754905092203042859967116463997200620423085424725716961569269787074746765097201778617610288257183937658623496375279429336979126225680198602081489663032600833846849235170229356599257308385634430933332534663474037125989713002728524200585239503045582969978402125559306867243854703937586890916268544575621260642230320725633111917236411223608189009665784508809975128611663440697617199462964520170996501840752932360234286459681505768460912240230530550817349825986878444680193036009580397638322807461168170788675096576340969704107685798679871063323463803650012807584965235984854109407254898260076613510703012074923621628967828171356533216661686723748564173160490869706419094348898478013440055158630307175189373802324578497365988343374926184173810571806729456489910018641581032188540085941751354406119049521539211077180475730398536728491666446919891427377882904035279603612647231391915015894667843313167732485751193028832562795961504842187071049077915823982396021763171550086655539930861700476488482543976753663883806175270463756740662746611777168080689073412829458856814325056182155458277604832037725027914611204599736363512469585166033348307786971270033990668088579667249850500911403486112410743410772545947504009770439557288737363353967057923196055164908208699034731441131792192081710936480047497797434675201159490545383553700840270042577272874804494602279708985580900766762554891425978028943904012808997481992252985710793170595593513992400674048914007481865196025699497206264726172464756559716518199214075490657587280390856200203113452548651584747918320480989364286193232625133339933608835369702984742534761188886256524519478984952524387702323572472643762713914090399816352055750736097184646878174195509223982933169299164861176051596184083851222154161781836498605431467750101840856522102786930009133779409486940731116589499151452361162666047170637855023182269547461566175356622728037267328402655677668272144666279350325057515955570267085892332088088928462557839071206451903160054175057134360594045185150346622707061509978199480493887893901619479227186112944893986691783935490562050797285019627522681721792844988440337306126701844779752445221168466611717254618870849926417535116140479078837972640539593298181226070640875537591016179914060391852601898945214035435016365638230234247227373746352342279869042294984526735308261115157515441950410173908112006660886274279869359001444359654515141852238563113809424125085969639394651809192698521598539269940555727259547361208308725664070185062597258764799271020171353509493492511714823721263243733858781767214118757106424263878215214258370469319806354648457358379382629737999303620285939612785454891216252374659553547005248845202408277201711211022233840916913736554258062888759577614862247700777703005040394611520963490716508778116485279339084840299012595693114744104989905306529644944650198219222984759334234039520377284787918318177469598917383776758147327497779977070376590709618476299479331430225805022722120924298040239976956412436246417351031747813539223932294294532788475649385454589107798804245900789663852919597374181701446905994714178048095857077803001627382392597285409742605222259281159924288008337043100715291881406575764405797374729440965801848443901799490885238378334290658344768311849456996194711012701251186374116396191948879017330157312913364088867320027849987346943445958653672901731038619547153421503978149369410618546662386625782836262872968358048087639577040102558680424648470957385794163612025747059268551515949152223275444007323695021088369521264311708280997895045937597418765336101348706230648691825439204611378027158519184747922907033280328032287821258399583733119681880396817837544269475784612998228753788403011284207423217394217345584158551893619463045263232323473382008504704531175959936829688514495971335037035090907220926836189805988610535529851922224999570449508963436783872520825102121725900933114514235856929842778644295768861662549381294263818448605090794193563238502909054212072472491452705254683239175967609327110290887421638720089041868427218278488412817444482221695405386116333228645568403960407573259004271325380592599531005447951958232788338882792413728221608903528917372487605548097578690583583390962255358694907963659573523782671164783621978872487852579826125906031564295482705600695768304907156691093230603895166893420845941390411430741935157178943392409247346117139326845036907060452659723865138232960746622378872158340899261926756491700564288195271544317897633632306091353823463760556359745117364165384897858581276297257244154008994419035543436677166604814702460889219374945604132868548856572643228676663196989020329699444567994238021004225409605807777580882983474349373968875660737808377695536303618455663076058689596966003163840322996182247592712042887422068778215848103673152131856080954420341824490498896232528138863666755902779942496852051136952801577741933431661671805881812097934068285723310248077216874589010732164012972094670523510643137299182614599933305265822878772386069812313982206377044788037038852975057777274844374993214211436853381409355292661473130887155619532108824382924350572228947703557958880616000774134891747260033349591723537473849624766195011523385152797773391350867758382202425694171071477982669133184332320981018607228817030049677671446170755507411933747076765635571114123236841755274017807319545589027432936823725120133215875194540787461963944738312787006655190312846698883404828550589580595709224432907761570384771537179736779299403249647398865679327325057875659999072763288700109008416332638702312547677780792515380427094688926879343595941886194326134057979419809041753406106429204432484258190786344943755608492112544393169143697810827634307761080330324283571512101180423788559958235363758790776618344041247118509466797978360418464359747236718600903226743559636413518685542022887278725018287820366847903091678873781711106335485440657322102275403477797342777742441776618758119297633086085289732572845887929784496549983632009368649009571477397988011825955595083604801791826930493939105837211211147620858784551287256911006962324319902000868873156148639053220942963798692971124157453332262826318494908165911450129331276195539222412493069154495625391660933416603811139092690585233978681817999336204539823028846903912030275178894954824639480393251552551458215956299088452686143552451744261602551460008007925745091631487927425216464516852049061295189865034113787650098256617840088884155436130960303154234143015991432491076172752062592885827205684460311267640195184523402540850016574247396600448225698344124708493355957428865988585733585304432496545856375938242232474217336089641139917300720077041269174133132580876498966894319691477213092207154863913055551984725961867133212001421964371267628290386651372762877483029880629090120265474209945342249282674742001270891702957925602960009834269907914252745597530637575349881408118067245877600468301439270704596879091195615603005456149952690552230953194916379085069472143535200775306691628828354527299791475991717230414310733034336334103414681193300528906305067486363358756474053911375399699849399424819187962027039584406177395901542568108406716318383618162046678590807647827939811699040045106804478478640371178282188872870681399456061440987414068071121301936199034456783510882466036808341384751490733080473476089407397646656369578513859603321227591266938201530320001173973689136512016183979278714037545592672201618233297649615976485490711011063300660589572648852312811512266938481182819829486932180278054598274277685825300453497401903570536119668482072805977229138846253683841826391288552450335905450025758520610647381089270067305711625173767675842651063600691560857889501502359330197095922260762686348477588777207282978115618008138413216929685466134790594470604713275482445656861487070368365965143719955104953812540122463655566393182823321879343959862405972681587057558235180809575876854585669278673117633193535373279303326441460553945865973584917730206964735169415544509831294521833500744161028438618674188573447971186955973945557530426809163048569842952575968311241023760634377067854669942930575419169672495919317503338908792767739071518627389709607368827658229639484264346115344370032315280085116326500322501265485914693282041704520271937039223810098639229701455746575055002819581150572204563522939044064784546960540067307285009207998028603329430008327355217935817081800124384003633557835565605820852964406072469808857312117605631390884936582427189228246441560708074331588004356361700006883044893240763100457263509380927823097251216666894996617819323333179600621355141807968011273030352551857672312380714181223175403808859093256509216002893847474033343241689768342889546292902375427989395248954256906536428101289926843570273489822153589123873324716498016130721286200773805184329276092063695767709752894047809224673085041043625652437379476373847941455752032026651656683130701699689645506572453603726414397470733396645520187369817193145275175523644081416472125305475227695601222757937480798175571848062815578421285317784249403751632761408322765097572351949331916710032049438290980998718318646088798039506220506777009889302848298554829086806782984336567941236206455606641238757061794029392187130887662896806133313242855390564571921314374178173154408893710369715628272419999367077346624101731104721300098055303721658214203482454534833099586700923018159453752469682211259152981698600635936256897088287224245479369822889520121501930446576818193870871388491782804531507589258688842363950647162360023316724796095925434360070924105718694705377296536930720409012440896530790247016386784301765723614065652202407316878078655082899429473275576261393031722676921315839773864549286999904209924633622538495048194228107352363384953405182794163963962157968866802760916960235224256344327778603668053683059422252209699012078824499845296703756096178276603889278006386106808722100479462418978496518903257431406002200280124040639853364027840666492362119438517247437886723072568950345201618360597386471268597623584857806893897655659888478456271615424925453538079837392570499151451032968549078145579007340570590388567714996640381770770370020898500894285820490714234089242193669321742972140007565732887653653927542333718580377550461537930659696626421215161049300584509598267965412731900670886948043623413311228099898113092790237800879252228688665979468422041900234310992732413445842595009171275023461662811414313055181024109328234942448284219962222013255516144908701068631766326965188347179467714727657790638923283593329650737569165288243879825596326912561309130414537275555906399041914240974060003754682793552578782458158166958901977430070951291362263054483214248791241634663095071161429068108317743077916374007763921773186269806315262170400832055867722442162562288263150468510581375599803080910243465995519785185605928682497604616981565758590948631909157959843142115541734774925352542341002246105972386198290104501884205003199736897258163629123893381103957853506502867737209054508020165430933268031910877239109969758637736430879620839738918531880217790832502677837045480971912425660300458776024545401863391328612453226670804148490819464756409519517379868732296439341740237852491458163725325726717097842827516949432216676066391768285632011473376433455551726781101947148492501256913730141210304346232806641303361358517815400961089464701402241874381241616969934961777036928390246051412082369378245638197816776916659638961710262170697300302825274962263340791853071948513569831797958156348299098904124141706119515528067264049873835088193979636870560866290732651162768044707325718520529403755493189691957961448401394799415252630109008703274570705365623407812031788168811594368551066042889078263709244257193326016092612628605705368437436974272518690612848694325915011321457316596316913217933645815249598735973287739560305455121863562059483089030704947924309033409140807863596508348816274018270152725649080092018586040612163019153326301556898546660736323498343975851158063419622917407653598291258278114844851393881751491268360347824478105259381060839050698894551334876654981458680517275046975255738074932923960000167780955827185327329070246551296309546462195861103101543065026727476355075207195509749986295811916880391720108166495018790788817255404477244143638254510258396128072322096127816965393560557455957914002063065442422545874482860694645848575459666078260713934336319527608138414369115877674704636640781563709676808554747190231816398928005203143034456207229538418219374934810110720055358068043186156955337530035598494384052053433010624428062024426569336696638170365029081933026020511431835856256977437922615972230003108109938255076603918658848677541441678438669255377086165153673535484222326115465685255395028217724796478818511693819218302392020126037476953747259583147836238184421513715503053181890697103365158113753835253994345901289016428310287595530226342586463321660567733457700001523435224373953260527300680027809921217146912531236931256914647510375545358931149850356835905802602798765689808432631948274257030546671809939735776473793123416965969109476727080835150348303416969926671379608182872421481391275405164934965401089097840877413263986047388262646812769872959762686766708630118579423143730297203190050346320726032739206385315508433612154678536322405323905570667997105696895046579547770629812285489346456985166725106336060868270700746987006119268201951801097329180929121316217971941700786306418886762595651378445751398086209309677115805804117672534130551754379006516162374158710666832037769795200938787529324174042616733232211871418758309283234065251995822812465457802909085814553710945770460226751470222608823000813813679904501243131303481251498104723693889096137573145206268385418474076835802047592648774505903097256872387155260314910025317101346603603762975171565160868626166665900281074233621526254963415970542780308061734854062818542603599316806854451742023613610087965297777240494855480410812699385253462473419791195902476265998683610227672950938834654391938407166698821872931009296581581656076304913581093463553505989518080957851215220661340526293617842213454023992518406976147530792577820296283260276810722813045343334563255093235483664675274590699279356333436375851056883182117787632100871454703666946182695571888358387457534555810257454258407326689511890949442643743348510491871075288525696676664213765437561900771101284081081113411303715651534808674210572295567268439431553573736089179200767220139711643133470636723808952123697803761488154060592316681386468661262699570303474776727418884223089655365791662808779266082212962430400410061868273699157395761391932641099082571054110313563876266785169045810456681349593815716481874676607639122799613375855135823426128048313898396612270978762317600533238815913965652040073470708020803503263494369450810553082976833856243524452932113557301419690736255925506278071690067906710928693131266063662011225066345473918483672882293100838977294620198372869231103095039030628194689148251185490278976668714402334640146475998667998343731323280136136340988652343343016798374097897556984325981303469147088684174219249575308416193739683902555564509262620230553286941332345080769215458521410236861206730601581363748074059790288615867271244701627293076258456004930449644927105920593113887697493886460737401942418607874231240209344301788846814023375495587629134815390510546964111383191277374350809647495367874674688856769687012209306719436212685658247565731048441674723911493682864380134251923348969158847112230314669983567270273660868218996685769364885911808416293744887050539740826387251612154259488560897637163742253219355717090872672572885353856620275862407213240415747149315658877971279946138939110538396585094860704585684967446021025130696661109480496665884654929728280398426631894629096080858703702301847558392676476964016120560778841924792263967618588530412491468597291980164544655713976623181254274305266764245625837555897275215994975641855349320703742376554233732113294696997989252191973091248149032231836413505749830256615595097522676674792196267029642019382697107854373308772430953406877405259784099343589393604198039661043758230462809345626334765438374341330396890299724477502969632363004661784186035701267376984832885236087093657234622954776853680075634528945601058655899581979242340720801768878725878004442137641677105164985492646677579152923880994028152014372733523181054167678113510036219946634496196607231847328389141543163296308276097954871086597509139536832497761382491666599831167629435348263855040929889133548813165560768299625911143403547077061564353456627471847540521162379189795243530163527335374625955921237402019004773969312529390875535499624156741138127701879695204976370197926303718169585007083500053405807429850656318569198446820641309073344659076499007672750955851851309082609481567946755610369045573913187408896226253258631398178018566007948566081898351011864311905193431468512613178730853858305247346214550461539419772721855178848284874116990282083996157572181372577177437560824969054745244922166843487080006857819017596761261532926283011345744624296189289031579373274956629941321149116228549032657976817383487066287888469912714519927690265597427729304456453617771499644563980575104347470572434959463927832861361579298090871505604340055842026949381022374568890146989018506211621475904003924271354048204829120422808136444432934295066582220273869807376745977303446880080522566344106164035539182654514155727110672980813355223035597979858722425191611832544003002248211111874248829292320806490421969548328537772362406526009905965799640812405681494465046502418388974587945408194854980816978102878269472976682254649977339511218966216841077889470819285187390041284082004687715277296400168588269103385176566477831660775346260247378759433956207746703457975394134676501386416587025604021852345003958218262937545762085693465581790855325592147350699713927786604369561143924542914077314899683173216712916669594608258921393783452876447602027647220834456549850788783263977636234022460052781241417363085186593125018865749046161390952260530912362535422736567823619114180388610268090625406911837291634088772111384525722405064201046572470876792824555416370356570507271826171335448064394493262418264298249749792282466828154808116990249991619327915453589727139514830298172438722001377941728277502400943478457649012320291370544135115570475132070532395052376183353915298308230233721542105242127967170122015848157315310205491064879568769779961685157785684861407566119589626817257711125365858652855784254854799183439856826747273580919471636444387256789939189366389776958613251796224705954136881536404761866969535996365523881395657161899295604043155064468624361684664578636498201997894285988572406803272740996726810469847662159899373879370529962583076815513699949821004258277749232532915160911550613462797823513695502084864370712924306936975275298828204183487740083263953913705909271164697389976967237684876960669089373520537780104052660776445727180995340549517941245256931856050579865489343305851018831205972801085137716780318988515995841286561937719380583331199650728434553327930458683154648453935004440067703839512707341398987974950269670213835570364203985317395393452528954484272890824109890400024577927349646396810792389698290003959226504470133493803485735617775563549984241660560572251969111812117463629571366012818597922403776813772067062534193256664793496525903118326683999573555284534771962469038078997702842874040520936827731071552042060204716057311405151739243242727498838217364657939170550247477333846589120497550129662612885544692935518523218349686611509798735807903672358321830224741970805838548369035780350823006102877738856038586195114126046568317113260339218283089704294081902273175527378363946240027696949455723092619561644973575163257851004289335476887380650413510689960653480545474680952372793782820164544939184414360903299955784497402891442818021929801934651682759279815635944563238760218337978514637498846478155028778065327760485938196103546955998620634912400080705796141084089269934622207854221109498576217863415217467870500937171440093945535161504896963101635330016955424896909191419130386618636857847369620973048949004331535101775251959911996997690633779758286646745889312311453926004666811434759156614250564436354597113253108262600971980601510493070157625469422823670609535240356369853911927014957544428216794715424091650613003314239343272582582353431182720904477767477829280437480551077022540150928201171666007933198071537070656577954489534838557109498684204812726935769841731326120544669526100616790497799861721480773625540853289608019529816407855130366078304960476426298970801646831384579135843777836355585144419439132808306615329633153757934863878811971819364436054586879718013151338518975055665062524879469060534289078989613406373377840575698528604415331730518725968233682582012516541550363216376367052301095702241798753402217466898486874976813435364523375881417249931094479573805038885314975894612575789355102388960781488328971487642798970603906535668455683547589783163830450330997053351291312820071906865704251550598130835896320387449896888853584133676748097005563141555723583684670223468032477801538772811498220641663620290015508735313118407496915205682504798135069968887618584961638787720375144408910282566541968367896232851794577555989165958007440077133495085770772452017370839689256502856466366098355192075494688609095421204058415108632739327138245129783416826018113446603460944965321425102256426863561090379800816020173194674709712398747550934115452580119786416614889138000745209242272924289971353656140980571509237457155062424330378708597723402262448182713112055878674200466599178338124697514932613779712732609639912346532699095277512455397294436696805852786166325007884954257520197096288723529303230407809256459630884716208435902577280055636377661934877211184744533904552608162843647466926996482688042471255975169162161087321902664433481650278676583356905847088948318336579158683703315076634823086288407185733335234359367720607209199821752578028412448696810154754447597874541511876361775919195324232584620324088969556627197284306069358132161816095449117240384940158265861731081490038920434645901256909920299992932457990303271637703156207202474797755016057646712863564847849135146760551653811267191524137746065537327686144372492542602197696824640692559384789068318177693922578524854357932353676695808848894579898821676161676238277716424632587751473666392984415383032164375048890462880929858323911190964025403545107947304739895144012972949203729377008128900592266319199149943757668257850948645298211884838548172079740262524018883961294380292077284144531197612219611389900516175864824459723288117915518648856599474405180706969973942477469918275539589165336568668904017381577178588797062176821629217761300528823217899496340337672252225304663986766797483082681443732934808005341323716341047592209785916922693941629615580201818378292333962865534700227464923893919756700902626634691454263760091814012096789064036571900529055337971445555769071334373846705564574999490630323381071863279874163326236921977266601246190588141098668243616282899672808136021505697198293803601346322392575915386783283043033956862612992751035713053289601820346013537184531704536745751509624560717886586150566042415061682516103127737156544740838531683243236404048722344546511309797274549959616910934633459964236806445563516452202568250373453066136612384435120162450291936412605373231344687660872383889211893391487482353285778440272012060711294019865377189048567310687422381592058139347638603979178236015216999457308044851390231391948254476617856986744694240489480452763292121979376451279520194829764661089319448550936340580502582621726513681818528877557219946342247906186228061300466381736146795739190825778195670519234827965125017124170596369754761909225980589700474383125723956502137521051411577645269837015240484934671203670821354852862188837899797638417373512827492161857231332928136467199489757385458931061456096182404103207847965292221649248260091149893409633444636620031624378581946009577287143205963513990447416685752486276594193659014185905680654735418931019705758598973032743630715814550913767309652018106413658413746904983647093146111650346922014634413651855160843418159355137113812606322523443010267886627269203821841179208718944700860183228908416301219827106595485199074509856468711723635225072512665236269475283073950764490336065466445977069427482069098218637225326221566251859184777211512664595374418384240885331693053331896609285744906278688301581476574354222667890318948998443471909615092845777261950845360985359734204047864059154579168305978707887789092009501201267580538440422253340495632127571176763027770443971989751423948073850970367951194829901281145482984893892798480415143431431571468572716314727772937405053142145248915454021006495322292257215208474204619344222699900009669306969496752942319880553704517201861487059932804733381768484204577304776582440902533236213764826867929035202304027977922178777683615168575632302371161212296228699664227084180085637157161864965137697410937821489625409256989330376357249282581678326647960401277696075698603313714863878959845913551206657501120179456428915977859624601423963284238668053666000165180176067059089658477365479569327560514438953499195276465816707939572723020763507751515072728184395671303334133850992643156509313736094066948423521771041819593432658857967405187124339412365619284323257390746045532514064148861047890202311110166586286707693792872840930025167614994983270124385902405478282689360699873892205470769827505036460395131486248552470497923425073581677438605317081137052074353705201344394453180271456930138416211335390753231692573942894804924100337859231769990108530160923838771126289567686161285379367703343657810977587425256212982817083995288216705503282423582246239465578589187820193673986790193077987748483000855286212161282463129133332206987858040132157948976498942822543276354970977293671064375934712606093171095298069907414068038111863964275955917227399978038479385541176628716592427177164688337397964273697240522944043141130098685877636977452376564730624673331126360720147084973266621883341780458210864382065899651268732700395337093889178371043870319430965997238900273235526067428144116822188969390228333430418231917567601223259182956972819030241955325149947046194998467084781199972935317063722162729387709154615885764799877156946951674859638152919935915608788779453679703208026147338244626024391518071956210806651760505369927607379292798870638954215853112416139059293068032803748718973399735378786703502261860354251152581473435439856344286211455067194530469684344890699651897503003020251174071745459714002129059481854126871423959592936599264566737949616356365130549824103076831453206615546689418183902487278199148916153359211484045828583261212739290761778125252440712032436888036350440403544956761760177555704474786419299148111452029764239382775977483859690679155314916406659835166031312537222797482502834469528747505010684171590234050710263438405813252756241843927562530940029592977738973076800256635495482268890904571022603911488030650214908369712455403109514448798356070572057821080277635306386078979363874117720811215173255219013050578338108050776471468789760710738515095427413958529246986682753611635006066191224223950412655155088408091009908071123873324066737335173011400914588981502485012481501359646928664197814800094911950434395185081063591341313253741704304854060538396295499310717228483531697165245665908024164499470707525669582012558977107398968185664891210712158442655731802235674523097822587526812165635524575874814875105291350763755285708157698683512910101839310137764800028260961117326924949919722481721989645976117980434888936384613139224981897608355531100211381996928354201394858618548823465220231132035939490731526433072863240549947583618916819186269905670772785127370497509695074956043330362232513257337696413049357254727552700618829596750661406903787560787212592613264492725714306634227777289497407421621203516565789649657172402235824009652083180468205726852215332790210710227007892401906470717077176669690642949886054365449317440640909865186687970838956444372166606410671685038446384137112786433664845118216557592439624400205661636637356871680813782899476834134868566603003481488758769908342536621580329303576032764008999528580816090816763143789636115496675797005463828843495439032130549942531743587320756611479001536493754411303455797592278312162027841561166248237047804009440172231105228952852011702832866209066525751467409717467021765640184245053775211237067524609892277923340669107424328180498690924677054828102346771959662925646245185653134883778409545825291901909201577106074449248546578406090216809995767450663154273197653669025365085712191791116478612300299532974435915740472475605241229247632412671549279047412727735918556005411998638399440631172747209777618794751540571904399211563288418419032010256487985443553155417667251819139572429742037732023085658912321502035586549143988192790388715021503836260772895763935794761303102553230936304469623797075214149545149460852809555331107437796645858304925693729030775336142882440738062602520473895404606022012573521550879655028772731701613255464357079380769381066677809592711005306290930275150887166675935247633397470877666220819205170509728550765871050454689970581507893704535446901652614502666799618448953631844904660096485737166209971284387008289016197354522337126173075972260438410923336796284447491508269432249286306137346377707612072963907680732632352957575832889535777876053162156716953031115323122615514861901425297148428674485323139247103444624317313402094153580517424957370970744374931711065018941356300554123449966258733421916351403377456339896868778418470859710130812947491045190529770120522326301227200015984395074972395332439984541308177437314636734512495499828256003763433145475823512875662897083051540193485460432396868617255747685965529797578963989131177653602601012177415530131981767695196671292673310243801816026050970381419006862955833682079979693154452902876758288717695642338932227763559472965044066580622391286998189201454011090478914938763496501428052237523967650064986754038741678122664332787019852371955303242253672068942461386381891100157130049091241220041940093924168236608915156430437345130606092293198999848478792159549042361491051078936158717523861058993691498859607687282511064500939514430072118660250379672911067457037983421201511967106338928110083799799134594631252784314005385064654727630217878588227393357152429945464942252415722638271313466860208066339842089103582819705446928641570778472276827207737041123339068231040420810745289707574833920023571090784254464623916237421290483654911073117059514188477167358608766593687502405584558731065323923793714028441069888318500733723420515991673416855928687924177723716623954140650309259348057378214100235799294872841090555776001940202457721349250191781285703805052072507032446172894229090878309506964182218280861964541221125652335579301395562049942992838096801370828668535801352572205534828818796631923485529022633801558559588969472585521730566673928266079106432162365219915772999934451694639849580370785624665419221264297093216381967886194521396111142749461295224809656956116442024237803672148703582701783324517182523791092469055421280959640242077390613314774532954850599479885350956593382340086905449803598760893426407033340904242165016696752391422536893338635886082970515652736877545313946539957989744673526994039356122606924597418461958793477359391027752149755588112943566094728861546792683268418901577029043922215282227720351428945018306229750482232964376545642429617584700518037967560521980101046403202946999808016753600501916136578508806159752622913205435894272517940355312122866046857990995977299790964447235180755415455353556581919881945982739904246948456615022109504031140322494411164503686907303773758713296929887518850036117058674688791018731397644253143861585221823511982781373650389561341277001376827885345927258320032033724269799892040723544817249672058936044945439289720436080014794017561381402109786530868067813717165102243486662729922674544642203731728927594501102686285720085962666316088125888961190401260589295773412343993239595020101243273330300873446479941753048276235103792077003993725693094074712673356794020987556184578058205774831703692183397098683369399533395368905796262590095193958835513928501184327832793706768668995158432043711540347159146095008300983271761183595868016063094441696953673853216631123719986072912365037817335274178555761810766315420145128786339800687958951609809529500155311176394252500886202129489770786228115123307418994643106617271809497529679379451216504384990291021820645106114354158077535007411482620680693228036178494933610816160356297486205994415448454787402493453503517113744678000194307615371479086067915041214543720951055672685403041543862245559256745895356396008205440400041565961412363429123786552026554637549299412463999959066394737047644815238203485883915063114078910782049747077340805301357975674299848577116453670570053785223302061549935648447485916560986106943016707803374992678444693451814265051717069925693592068955659546060533220744446619311685624993255976769940290221777279058991321437268329359251938070934123130941892149664635338088544170137641043519719905267136140593982815012130459027258747973006215036021527554218165810321181823419780017028731376565379383271758327887942680674711249869798694000944008013309909354931563619828391401020040235082426225212993575909541552891309317148677440447159120401095684390676255847257217884965833881585143829753159082426416522946400525424453401694640983959234111024296594485511144273227529031401490687257598375695448004010052069958159562838379082277091675490906292318534012532883469281101795698202340096086186990943541197244456365903590689073242956139019604878289217724738192069045101102977413407294111860089129775613648685937403164800293628925277002251571840427619321112073531181658264439157163884537479626314441448834535788727388184789126097942117086337534137104644461353999564213446933250806333059718778475158189532503481692405207106208479652239139865921833031358395520698457535950507347232991440280054097134200256225217268968904675633838835998696801350384808729487719890029417150123435015575327358527939743351153000438250746697747186416126211037522380675575653272188364757842375947669355236766091812439184590631807420353784927158399979104090885492437627285279365320044271350505912414107686885083953220574443251637397203644446062807997073567317887819867174612286660344646168199719253142652100885340979464351755442678791863984236539319066277010017435869190799280026985224361764544411374793584270483503592220890294659453213576678277749197996589085866169673833604465767522431905416305737230878796430720236507870843876301817424010099744335325483776430357457592741682341146887802045903294220458141147698158105550980050357552076980624618405155715878696602736562956498076504091912396541465294453578677878563489355648555408318754572961036191066327775363539296998675145824569063344384982120206182922799359914261904471109799968666685872943185404153990510080846923759155643784308300964161545354268146429348425461959348799417145843663937118274074970245604637453500365989783570319011361892173837571242203050640894458071182284946512245121506082205872826536906174513881444288756402207685316864246412293935200585565775150047298194812121257305671954759198446597011229646656885886133423169432254795070507598033908633786088476692819038155079601637783558603552830889923550001498742316382438658960550141252004288832605002743090352866128710122137490912586295786181201821125659722948714286349977695929946639017838865848059984300716706258908527261570325783795183811446046634623487437107246395437485601503652465164915334825807938573977987034210269278865882250596509472626962780733510143069073996608621462544912773704525217259799538331302081552175790336075252909461170789752500526260283829379715496452855985013984652349361382926092570266362108154205138040169442746409180819979064860560033276871975892385593110310897530053519872368669732007503776168755184964347373888163224361161789566754464755014043090052004106531961968446396791393332027555041924358778551556818951545218810517590271713542780325743385112208698489388031994864362428086156436740652962640157126577666774780853854341317486793678656949947229050114730347814299596264944733884070753398954902996323926773803038910015123655437262670977809741688053966518707240055745551438802057759747609729723226255031313510949713423653820644734242663562502257602715177263706505887255900688176768356612379452573704837629699510310819132925808306087728347539565859077993527048260446550957002247318423370176543524446085603436134672163584726592309383812490894996009963760066452713844129912384614754866414560972769955698944954419904986563346899653104034182882322949615253681927792583308042435848375437193719784895000690471076425278839760331830823648445192971920770466800113390691281040577074449156008511052937297856083992357493920759010137108958072281620002246851435310964100014782288798869441612406867137015081692717121769282075788220342812688416339889633300607971507603648619847462929657978536157420568523987734497217830292005170137804364887430509895820535401710803300936837726890893806547966558864893320192056509796924664368648661746813191721719021466966423930798288443584314102771584393451757517934030601175337227898623321988111514282027024177367061646882886083377286599652039200040377944484644419336841358191804798730202870204754194251788019910086919871597173002154217890991241166212211445154436874152956980760007613779020650235846981034955897409416668127128559906181186723339887012228954956284936435610663240589252726611036060162122232015069538716963673411193909055571967662285370545502851933015977803129280763236252331765308618760014329845788350342099258792666954933754503350321267781782322087570279265494150743048418485551537721938745565825343406524737307242577984520717141327122500557654304860932377022128769937855789909863543179354791411660802797804202397586136418711489992686160369954765065620335423168222037887696808246833235380840782009084314218771190049363592108923008848726899098945263968587648295571966708381489016967226237716632320693252127485145578623091304180879414393653466768199918295464474751507216823192866490577788360892809033188322041867139885509791949285841290788782593976452019727084097418531926201612741631432979789229933546938431534587752988256568075380900784861372994522346615889664165751686019033640730463314823349958071216101957681959676449288502052404287465291889231222967714579805043370850803262254961841975536156834452899078335491017260489616741233762333771740705961882755889946751405905634065952420815618775484376456090450022171514093673130361899493396393310456486082545047346650157861392901691236163888247395143845506417933940076501250237138250414608178650877068180855136023771256426403202084300699782808401109737964494235726795418254291249544852560162368560534415172821374325239965710992196884321959955110862702079679718761738574812803689366422333675434350226087749170946945462642768899872721735038536290822374741246776217633378289558976388593614169188130599090408007244101353408606555436724123467706516459581971890451795631156020107133329330319578300902618933061527242537013286551288838602451450413904062391981857475633647290755819414284552142366392849712939243956278695983655671973764794370849882258217240258173548254101862054137127847906229694972958547876547253421466915687703673257911351312424462965362910294415291655450526228053435325782861386522592086538262877694969744708139994757687630501020017000989533144849791894272618452481786092008719149276016767989440355582675179807704840292613823775666104522848712435204646041895929017896416099501359713939872215436126642006673850574234489176757413672707503998611686460484074537908154641340444192507035992152894103409755974627188321022826821859642050374632664725529369102199978129462570715720053318649712246290388507147443437756288064550039934039486820294745865970666745002968758131986638844222590350879115331990800745498011499692775338317517975659072160128668035142127655953609178586203850581459311269970491947020713135083876629258987156486637546810025885137475438790837422039664810474150875339479262957629650820452788414009318969498869292979353882428009020487321394422569372000694842081184009459458902695969399404885427655950208351579634800112550144664978493450999433690875027919596005349365407208931701192465969647862823578244636334142858010583502971249349870064519894632356243253884264615202521733843073045527665832526132917880588076099679318813494828692484202241286330432471898164320444782616527229238502004343513782411263626522172479958964281981513273823096286345732124950464828040801429832662067120791802595642878018524418077371553033070355832815488202750692451245289254531858304616982333809278682583849360436295297891061280855472265074740587583314332762910557522527615024583869132517236355574645149449337029415637509918647705419783590297245992138416424297189779211534195935441232481890575845842005266408600271649188747517921210727183210636841884504819695854173422615487555588230497888077586062764003776252549087009248716382268270259272375714683180908681606810288826361880435642320154801049177265476527224050660640398052603640911544725926650201247087434909400502821279941832976259422375454793068888535008708381516691078243626812698550175746508117072273389276406364232816103826088653186017555233918246167489803228038797920286791462930332075053697846163095489032862505794508313452897794030161182929521256080033824428270017415148512593071720935930546585608588060659581021592925871077081412787756341293509599809978140255760708794363732322060535429863570112638380637941936265463672629905461026535613514467318155514627572601117130089019974661121356882166170194136886558769243010391210445401653527367948244621722447458204568885404865134086519411278171961815986973411794593312778286783152397629817605537314455593474294956003540997990334459519017743969081470407606572477453161381772704009955862772841086982664018745441913927355829897581252119500509780281096997432604816761672724875423541178928686788547614924342608193423664719131824306173252677524637050094013865632475177521761771804272920194461842378181615538344099028535935739707437818156160731640245322095447140327838428849235452036472554885415633525095398429149402884565341788026231623621942085211331922438083484894274354989613620155615891948945986275000564877690222306887324637741321608009249420340018468136151257581867909941922425943372297968798268708593656052594602009902095428100956646536520961278226884416647949112434279842020146711914881550161878232597067563047329143362508744637190313553079052346237536370491388002341828816532821204804317366888316113959594741044510153479579877384699220424915313019080315004468965691897849291053712622983492905035596298867959499650369159173343114202980843170785529865481181744724093398062747597196955720254983493488080490401046871466334593051581884529841998618286283966006325941507628024784246434527866292433133889777768617277064657264405326566972758826354437621192211548109162040997602835769517184030717946329767987272424150174767736476756116659699032488208751031358290847261069752053203116472003795560501161505299928596157753663761769319159312788989320285205502687055371208617482792038346595301069525674761194435589955263834390446300051225362983729547571080150949133495837011225757301006535078931866765352336011115918766322103547949892780241846953471566996744015545979161532531054689346703044227846280128265831280417586423782020388801166497543998052056852576385098748599777838429772525196852038641552242444622256202328771628807424431635792927169527058833127326773506988208282337832402643256705740546404772784971068644587621479339650148638910212745028648360452023664407108479374144871293852027899749772401944572638074301856704816918791129845027473178615783808182908661043080209528348556450079324957208634493001835632797415887412081890459258067437558641379078384013103870340150254984574427591385393266982088659381011427217343111616782267380330275615788564654865279582158100627582133228668551387295289881200755703966466199381870675889286855478156615610055677302194549326497878022299024379639597695363040469577913536940591739748482601205145856729978004442903595894448228351633682165848348588089273891299349329087795639064610325141569035300057254161492133333798322727651752581178241459663992407446718767530478122065215700286453494871267820570642825134781922727243395378818283164870265763323725395008242491761840511609825717393674335963139833945492375758606870558697426970151190232793362471652729964603253613884006954873241867188178133615058994243282584853122609128933933376566947196297465010682936640027962797591058789046467276851755505564284717201513084903616320465895745559214039246299187497445961935537749702301830173585043540433801529765358008824758123009944430278319786539409079359035143435134569267511066865435754646162804314958164441468837414775304699337292146301893129289156195166734834300489805052905235191295515722760808988479602504614740690073733450874910261840872676787781617372949889240007925447559521987649109653816931251132099704431440817425248703700130451140779112569336043991606970889875331884235952584512438838805966421672407847638794360229533240070243702136378196421038585738570049655855683030024610721312738554023099959892818752348072493717166828089681828772891547324857159307125720116074975902259094418599272012879821187998566486445261778573537366784608716596193669507553172817204202994368232098534866124440275614480333313078145324130272198496274311667742224106269694345235323393700338708494769204961685863882802352075073984501348521190683134754261713064233105623641742780123696569490016432276235814456872046104169075260106240258369517948537140840881802015408461132881743341742340981719833999238789533595355556038701347073816783243687288366777361946383646519667241698217939950599774154473735704203312984711676608315232305594276246686367049741748334219260662042714775740640302948647787133376724019904111181279760130301517733266211766556736423998797203800460973263705958579089277052228528029317923876465165285098327336437640947495318064949706433831684882421119166138743327421825198765883184821111640669505682910556618547829539719889058141031801546988992554719247698465536924834154485635952048116658340472950171721170094821154054609620647214851366411632027847884855153958384891509633699699802294251219441595941952114324261638760613200283173037773769526741512470662940847996367157510747140631724732351632855795484273313588243098094430863292670377312976099336000019304545439769708010963943490437864444955722745722396056273516992978994178661346066868905455418883653309757642124215087304171714733548418222972512024879902644829845213468491045159273085394622897058112738940507737976795767081386464148578992324957005800598466251621280565773426619453911730130960161425772359767389441059162391876660609920509677085887654497324384326033315422994484460538610790070461277456081074873896450311347078393529801273044229934985090458378191367457584329341275298896739372537426587659834250903310538720108914595648407531881641605775862287377814712927515589534425233516840150700351341551552163414168623626083383291054108506374606932862837572457028489192937841237639332036866561387475210809895610466039290259877290426532359249340629671623636082850751624907884287851486641112014557231187995321267054546838314554882916264541863976026343341731074654573639520288671864723872117029271744003287051127301749756945033414743750821843713452562898737082628761525470060108281438852547262725734335986278508402727886831930482970424613675458070933991942499171315631390617717913718491564793460759465947931252130439769047721087356945778901669319279705201878229046193057835792871777015923110431366091265589857644112752988339374287911029642274763721711111971275100961631710276543319666328010984635832581648747675438002399894632621603408195424749476835073554266887182488436652144123375022548376732233777842604460011361339543483627260939440447762828629907097200712754040646057342625943090943062652824149584209548153626867948174706489515635104231886742617119744103227212334201919813117021598647191227018906595762761665432083235620410267203071838105691745450532841519949022457845901349632376812157291817804393992956068817098289718565485622916111262655255170210125468946468165569315301864242136901800046729114796049686587769877261902414846378273047971482918008678987379040403028701418663932471558899801799142151924054937924627017604929261871544292117530442885888401735870994892083852907931367345201833896020618517136584389700884358956033715942639873775780453093609128395514269067929407581712959653348269710172773523692356185059131744892095166866474373643673075368075536040498606754543050760435489441357502319922062402448195160910782112419792055719588412495064599088580422920813075053726805273323163620816313155146969183579738144505015227281051867950292295760189117243832929601051609409003858785713491280380049586673006678395492055783740731843959866326389067471484706002702587312804459442497671042283192553261391832811487269075284823371132410375902606067817558089257332801508983493276492210449120711885129345679526857971915763142038276957978487070551320475968900809791772134160546400233092635113058644604017084258308044301343784067172326426962016252302535851905502870922730957355694822587938402664553833025375063549714832223041586683775833100874471657723340940725076381490414974539714935841395485060486339501397986455871537608345192845861778314945423074226308707987239702602780165783099454435165705377462707590190585494854345939050717951639498223421097545667575042811131124813814136007001840289224477362465877904420318744847680805623432545605956660917719014676185490327857381012441697434274242240945914948805566391012289695534092115389865157223821035806954206887720409247109691200802995703893245821592625786240938994203466586042142670770999213209265750469800208767395606089178357484909628263744246550364737844745613777194439314480957059660507733225455356065680426734035117074860786436995185740603602372378839456300047490217892260301885334191183376932740798446023117119321529400105551929652866930768278435028033816634652442827894392084377988935972267405421598321213789658573819804195691080509756534660507825772553718458717650686629439452049644702322241043832046572770272069084153369808214010858603372953597418761772438928996159720325939116606167274311233621517917478385000173952547580706585545625077189405432853005267726943875095755632374876156403329755974483274823605169493029636118521129787616953475569756610942855832440558588375970114288386001362387094251563249758151060415866583775558360211288126523526031050107071717458513409312780347862193141789541583805743689561558087373195519749719393863190647319237058082152779305458726709729379486159146702734452209711985118332738175552037353083159984985213687081832247153850447942117422294204537840374215670961489117492097070867429939522474231002474938845393518566608834532237826312669253828670152537365213187627746127499020167326577317760518947760749904468507743369879188203855542790196551668006727494644979826448617239309176299933071763971026192659123012911465393708960813246853237891201095019256475173779336513510822262294969773055594921197240139479118517606395398026880718711466060040397030662127248358570767575909934181912763789749866967499251675672906038266103012683363478443895164425126878595960244263956942098194605377964208362118261299917867846690272433205444434103387664031770074738996800163347240773555843205254304363036313660138771976281664626603714605397361155264889490608526458513586638994332433029778671766697530525939850670107766198705782331490581076586034014745492255531083849384646569230471982083277899636501200583374872497285039083452597973968575936271292876169276720318738322866825618147560608733303757810512656019875349054996851413058034617386678353107115068693205250888643141221233023488042969291895716669250922540154368751470455164747530342406184121664622529594687734926831901485526742780486537397176434918752787444951772506742508240495177328463491496954290234240454604520188492317314211279574520661071824184134569265582504169126515577927557769417603525301957170034631803633277849460268014974302990076191375893864325124398941625002192272845551875304066626083734112858177425540543906087915896054895076809324245918191587894063948397119516560099173646922950064335366593736180045631689100779333894375906310947883880982284927803260119102403864351143172660006739885045246202246359510668544538185729961654544471118633944370038553408476960928241650802348442713853573691979551705865259528745258607623697282046641898500145902703367413075593573220418825263260904960016585290692615880883893576556354730451223910297589849604265120321525042532355885502236433287606506126532312275321249333209768881247978950568960607790601353297979391829401930499330205185886396976337600196129519501160490599265082951123674812402523426912983832599572806562390673898134230228778154469853766127980431329305497689285712514542601797488219110194126498813451758316201487910412162664135391584280635846489335450180750331900303742725397696509483226340638244075302374352679706668759037933817197217980702287370983774059671041166273368925665445863918984198928901283047419984348119253386842760064054522856163645116084100741112075390539264701945356178823679206596691730930503895659539365918185720286912517787836502800063539157401879887024294518279978162605715814486797549146680788569205978157757195259175628954859769926688776816929992332238316118322634612461634085987504591644839313093219923638231773332112898466164657048888316028282483528441757789355945483675055277369906004706605873923608383575067434269121458967299755131390894555178993387455839413136887079650251753391704756606268855155931273502314255748449859404135443047785670183491943582576362949785280048250835342472588846297580777132921720492530887123023852509747414957706015260871226036785448459303255732649030103817376787277616357974321882423185740665446355728254587638979161711261035824395756765907579063143881265593508368810938625852316829514799598549194455068650346524410819839040629507094337603310202566103146719361481350121269275031088404178654718704047344992677423193610881190884365599341527727828843746853195103891676301466969669273933020502246597583236939329005779767070289928291641939101934148225788455223549685616223883038367677191609610727696242174632730416286589895396187241728888313667112364696769511141172602367538211562488868007332542944997748927586020791118670953655347593788537481581269980275422523322846832384211332887672539086887137302948781270510407855643388973602958483386231773858031825167064622624774002241148279460705247602197191717123001588619624107836190417123962489687887149575216282887977793652664318512083738748281911356484966964310030332578267372783759410083520194166785203992955405684579402113122858052318523112939770039058070962527911914154737450918364011835073771692868045805670118026064596211150564030293881424619993391628204503327868833490859657685047089712568767818709061438423159971148856526051331890476599908632691490703753706862919765608703887843783189644953967731218603719857858734501738462123675943172163291861429488376331648842912438434954691749442938460502783007183754810334735430213020749562809805660564224941888438952909781664855841466333657691849177168839715901818735137420663585367133125609373329630129272003716599974735227670827136932900001223669438783220624098408335033692282356673472218357474791245528941039229974529928747411252514578728669718022637576609449755334387192719918695504398909587220046376716116932312471877869529755117887282639568318688965255308811770651540023980867471006628721136453357408614067547804163979657099855850582656399090028266248963951359262902544594509084373422565069230667924633271791967060816072826386840001427365602929149181295980599257209694444984710603334308725304803644371126366439650257906596834203736524572545152628409082050426836492802220965047853034429608784550348262626114942860840361886120173487580310510639315326122798447190157996102903914280631373801007041181915096918939633618643597730692262427196996285623546744599216546356581038783078184480712867296930805581639409524415134054567851382487092732992117079239946722555759755523243847975784482748842727068302244646867098960194615390481278611019091393529389282299205878974890318453616850710805954547302042217618252502554162128805719413287800921426774842876480499876953764614512339300735606579370736227465645504048741927925740200308339188970083356384044836649865838870030052550896521349379831617070078159302294517384365965822389702709923370021553964565917307507262500044282111255874919946482697934948649333254436812822099359165419814448892770071045570609858328882980517374152734326547594254114152330906760214654857630280364681677238688339932455764680437790634931183848593861779472825470419422870895862988612616284340683150847618725065472037039788120786701328908875414177197211591587528073207832173943387527136325774814956357389590651877066180689316896971084989648364362914789864188310015257097399142006012223511225802562271118744224026627378761488526207621221916022289375764386328496795523318187335932361307315443089135649603065382514579435037091577187076588421654803327817546025999638785310785968848651273795510346754499711533637005005982108641018135986613329911408535449922326667751999901301348163440553702042728216943392064700180101705881753240138681809829372634748022645982413180228346619089898255396213453222220237833059349069529165512231338593137277130046841917805733359269442467587202172491506497658782995898148981198533531668606362606047212189700056490369424277598198867660132386872791646619091591034479307935920862135363078861518725402045246871016912194345062206093509144012976940194461615080413766486677747510444173000515622397262198243054311244961221660790739981044888530854453646171202440031201724472875961994201169396112299789567768802425950277229473573005316833386017437596640331880572314880632561044407265828811308887212867124112887528365835732789370903227346277796894253085523053233405196089803321439771901618090095571140797267241922277387561362249667479549935927381908568912009888555133173554329378721089165613790728529553794054882102403507885309277727273851121951354539458679676649715916566349804331151190461666239038849468887088336924491736144179930071643676310160291322194463310952779578929646269851305872508477142286190940344218647371546318488959828105472543659006883239533520035899552424570960234927634393353104557034588310945708701614873172841853507131420212323489047397754025045610928779687923112426922678624382618339809884492505542671909023690073789609802648808049287898435670435490689879181007709496592347617428985945975227870421454091897987311674079182326961642018225999213844153060442340053994129126905805623166774477332286763697995033262946809061882738365957331006026841337316836096774412906501841676549887512148625120270445414520589189475981930563878654966616176953320691201740703953550159551614711544185345864995311188025213966098284274548610741675969967257319556703932222357979138561119992279924091244051847341206802388803382618620685409372249514537023591956961695508947459742062515494774685661031550617156004898644784196741865040146879554759133849799313625239690192063497471632415675897920236355547589943497383778909346214890186288758069081488999382802724766143155744419438370089675451978375844378902471368762667006444237648616780352967033472189625168161962561246165070642726733413867075204416756471755410317522355009018728045776341017363699546190671692071642568047115818223709705544043974708966327061959413343944108882902103209907167799255979786548242364178452114842089621938982144549040534603828067049676843754496853569077141903930786808507635780290595941533851492889138428751578832259781927926952856748012608841829787512618250884238536785589477723882865590530658914925292865918447310782440477232145556383731778093777850527226108176931913378264798459539162169080587293278265011093691389475698476526210400038197384881778596717876441701127951017976400169343330918147723923428325217341635782039726313496410937190896555027500824205475618953632187836138690809772778306100139993527635978806078380616820749398757053294564120276265064337961811598020649382486480729646030702202733232216770601259620246493270092333195034076677027858263952345295482257373152320356868731424752576723621052553202079015079894122422012488101573477753968657608473198827503209746229233752386925828553035996610640546922490752785328038859303616074995381251356383013415042369604614493695596326854718483300446679410350319749181831089276565535210231477056412200926578731157084092342789030927694327488220677131404963322055946226075210674764309380943700911587095405409194718073332090722181167714129556988573741121866400317135724185579870825386845989510701765739675394002256220166886081635869542738062298512081087110139216866981680191992937982878513691027910218794731863742881608936872068479271003315564486654980451125296462708947580381107688023278686117653722621921508260971799424703888808598666792568259427236785702242677612682612716918684631958120486389948533514149969570676452059946269954277811360011843333576940070202035415865344398835810632656516663740969570337662115899711679230367357139334236981241883456521734730509713224539694051552515035702594286052609060502706084152876178286104036469919133204925955532370914447635923743902608557454031775913072667522819814293543787689083993649923277398989398025226586135215807854957674904216712690542848271893032222217307827918363840712053569593754070767382952722134988368361623096124838560100781916472681304137001442946861116879345229205016217921075476133970779510713328193541378811548756240955014522458219422267896452653169207843753837231431817851293899157250198562261373279538882416655895721566323957354965299891246938713698488383521153115099958309112034658032159182629589514160859410184835209532525991301356222507668067920518132577480004376720252506752303665841230833034852223116079355086783804241657679315282684576697937915207456399426435591891335846659969917690279063336538103941162622155000489255245019872465658864678777838655029005652718443325155894664327177796472180541663856892163040304468649144550696086032800263982472102894335377863522548219948983951744902674626458699032988898534148003062834670182942045048033706244586578857835733088088490519292796177158456947298416123259219498883244485859356193773525931387423626771347221456438679051018548476202640072447790609672973789207638557805625449061446368333328590889577638020412664652638914977746339524377974611382763403211622399514833909791544111563085921322916667410159904520667213205487763011048348125054857616431530810987164242056681864897683162821536886664272631929525298927964401091919811394135359588413856982369031550507798849448374161232601084183205551064476185572555366215323916801660043067496802799494745755572860616944920418169766667909363043510252946986182677706189459456065031163923895054636682347834328663782249044484573757066914789916918685887433312889060773446255479620509478088592475447078398432837409851716695722817242416343799363847885223367330430558117076988195211895642598884265423109984110737032638644309685751498260053315126350669281148494598477407406754360219516155419431832933127829692470058978328048231865370801853724644118941258848991519906761956414356236508960714912490849455673798261021121082410389420021520905863634559831122121565754439681688067430824476387006759389014405908013526204998563535412257788352951065803725592697120139401981109408402857569504637608000002753817480662636531781038057008606026288130026879028648392867641767747300959642385703519188482561692027213099032958747874307506088173851389004088406595208490313772973670449955810074836003848888195602663756550125232514695569930646330613534796972770180382897052001669715511199341338604422049225550847825049242942732881914898683059935505687297025348961547358378611543559317619140665355580658263543409924835835873497450798578979991886382018207544435696384745364033091500896219697565157764966660192574750772413944784512762016999338061367653770657192227071219150259654141335960973766613059110402385909436708379933515178702190475413976212704372172726444314461550546700279650774301620103464087849823625229015815620811696419095452998069540881458762383228662302575279784258480808374174160902099482513015799349465999237088438357524059638298937773981240456494138325921515657622731290013874317106467768859761049637319043212839790020481324809320421506648554848312511088811786588424210896353569919805349848376296986310718747754565254459772721200364844797310091662451770108845247460150215673973341536965218306555560368468819471615252397312418601900468617719883051005900673675107735595602415088151858313846153867170606051626530160025035322419475048235377645191699297076145855133332169659429952427657966704553090539747797684469144664097646259327594971695972241677241413280266212373538049679446720458958056482213297670858329943909376872385880770035797846434625143192788149297789183178066095823125390331940657623362811725786897599172499698090048625818422007152712411335619763776584317947515539224491920637410547062041813788737049456657279485365806554104003005629952566235941925418820484046990083500106331503792317939339865609708938006203670576191004936886863790711458927107465075703163336770265771384997501151261904314813365762328787951182075461939993946346257141029226315897034638354480542805713259106181925184545538560952089311385997731343170716229248705001775431541678452015706927180729070533038945087411196100891326578394858196110706849772280938578736424042507457748961179699362676097031355849481769157982045425677514660988835383105546441695328449044722872359172475013380877540907199776510323104830854986026713637487526469037984521426918764981688553902475817549700235128208481104780857217746845548897881769057309424429676045072293605103173641152866837805031461607014950633056445917376465070618178333692167644992230619157882256185465336198217005285958030621893069134605060020426535431167759373637946645087201895044457410571252839934679397838685272759812644801945215820888715952426113528326625607495422055665979985339980882779228592090746911209239786699018171528192524202742338371905400679923608844994973073652742996016329480632417322950276028037994683315832427634888613067416998905850848784491660190911747268006709703074014393494157965846438670730635501600864479674155316146826435774830455520148306899486457578381841370888323569804193352956952449121195667868188942768052238699045287296845819031880696892429199691080204105774461048873226961651292447935771156687360851861830916532801536018282479845741856285616703259826957108399591167433476748591272703035509264528890430623210308113393210131538081397952140729301474861399223601970370131219915236581058263785279849220204312506502817286131717895925872536551439157431262445410550910190341499664350754986047030117061187531067623203344545781667782889716919218413695606597500837984162226262507760796972406046909477390593197553634376607547734390106769873596490342512061879135894733092679172642321475217243556689276336241656498577018964144827800934897316007490824991171378917591490203684023420661059920830688188826232561082572081711563467851729406471768219228717601869266834792274933025482422641767358802967904811873523740739645430893755870027417371782810274942803978300096249047794970057034820236486584078004197543419514041242941491305217316331805151575028912137123046857985901443161893353606111765398286900077448133570539932769391422264459271754219089100074238720947649302373519938640256687370636644430105932627680397152733923149303812011589453510139609154513938202208857902867352383591452174673993921122388740241514317286674796907832891649290075760366793276699741283963995174708805947399298466039250094763611697049746168828538134153074379606945871625120387372475117742823027976973460328531975195707993542530650932081641084579327324866696684748775158641255308918893856993335147158841497598802416001905382393525732016524215569206716444501671499095156847407753287472057833453112695238055499324384870979441117200870974200051790646791142221856708362251304335039804424553877514727927644994993752431548908033673287193159203480889168519062127803071923316995567990117638698950251095438853753929267538016619056233259033045658711648316648770131020592414098322766271430550774475466796369563970314568797310740932278742799661571308678190191578186003496529385402698768355258724556618825766622754272602920224155484530270176764011260855967808081482821746517014216227908647474015264234025256150646409560900579144765418522638757658832666230653468426108427687068351843724931336440369337594369369173488045073349250354213473121172239494105223768167337373613097397224596861964449575169753551842713587578289858907448410347107843780818102834062910803099591130732818379217786274563250779832661073460165878333077488279670545512147320117003070234275229048203210825478237107759559812883314764807758486945936136611642847728626664695704376959321958402145236148652205900483780849287701149392875596112723686311399631857329484176149704986321400420721318060007087323488891793697074704063686278262462159773538246835183170238480685509788790019473477144435253498341311145928937273631891960233577477841928957306587115258277490410226695965842446798927806509525204743762376881023986826156117688735659039698132366925316771300513087720552807928901612928509966696269564401337562124241957961761051648771749432764943758573497678714993579325172946116929337164848126932775170202349279966338839332253475246204526729117524818556179791101203096514954921141633632125101221992899049596761591701408269297819376819379926921899954000951855537360119848548679544874554566332902323631783027471918963044477221679101142518589233230543081960644169414801358357222937925019718109706022580293348196720965364681993254059904602093670606441374190256522791081949988845712769107292937294057693001694918689146549291133243284003167371050463643685886152141424185995839897870159177612902166514538900069974041165755725488290260688823334033338592204870741487095855059618625127360166665988842958663813824311762185044977019803648810076156693544443299356554422246275041560680687922893648223082411435525862969920254529879596444701959798099523890908524269247704604348070527562435494312259399684945183699685900937273082422825390808271209831097447487035801188176376127920746932431175917212746990333720848791510917281328514102129918002830896929712907101473290715557910083794612700416165153766998050257853131677582147464842383896342133804009239343956097695590377753538208927270484385329978483692741042656911925488899319712450397150467504803734985077761849136420202319033882040567531161684891860390661058292511351904672127437015650308772405568971017452459333759879524531457588832166150515801431908184456946022422641547490440697324527248666293534754253140999445095275531506451901978264588074815701582127119186901570689503462597986763564914111989350325439685765247162809868971869709339514259741192880838495965780153397282873839198489215174169580654034747589191044927509407591058083309750207331325443594213960983484431580205948551660091212349140530499066577606476922831515210518437636587210181865896956194974166261311393826289478381531168702127393117942042809063296513953704359728553666981618509542434881432145538668188169657526607831000747229076539677479171033087582954538147579898700276108885878638195982956693245984319858249000883376743274415658558668148664028349008555025641918560099034356211409018539045140990928855292728659602722600002486470471647014359740602390388509989300101681892485796769736429052632135404107944357947897782764135698572579275614339197366009065070809078769209453028555922194529536641858214317420903272994018792756378318940220798596437970777024861883882240033978765340433732529872525700764055940253028019617837792459508036167948889823946507345471105844766040814981454416188498939308313052042542466601077328260971236139934094825469560542026889494913963366792187535915031949401967945614876241334830577748616546621602545065269072710115965650822539620915088285415326834181592993552871169305743337276131571207680329252720666707345969631229582267679603840256566493300501193708985470442848643254057072394272287255555638126659381730814889626420850740974814441224251356306745568316781053572050630140002621272488112649339612630818056852263652654823376688916117881019769085417213137248687948184982396891410367616474526471678076503594005715399894213009509415502015305690145165221829463725214307507368703448376938618510496113132991264735846806350561562161974471283858728927370988342897282571301642828604815253991385534904609009501160754109578585576108937462235527734571441764297872853132740208307463182372378462298625903318431487084814912723024031988396923462668653313161896779680921074506761982956007884282487692648850729518706745369747413231857065823792067459732614715131858140037590014664159791294149877500636389417568956378872768506231913985815873702191585372166871865707409404278087426278487950180581046305838729312796143993132130671655432177873875674092879368644047154458622762570429072253491055844670471913963088919935059213480567194463760430560889096469346736303942741836685647239953344170732796068752512308274653579804981440195385220577327895831697057138522379085868001606543557203012300436475259891902326894031300561457293228818416156603886535722553633079235571870712931035355421051178475832117824741326484003791775010104568874215317461545629843644456209355593863574408449843492361003371084740871228361542667467312013396119543001756079203707560600486916570844532095134208468347856731166159879394059614886440410035956594943265061218991939579383201121175794780434293540529301037145117601604685998312126202577735303199721024506829868492510037857622743156399908244610355426168964488542069253365820238867895156116324616491965559209571018885996702597003721174912404892686635400215333369666337160493175149803404637503360695066861368639550118385686830759200964516172879778820398375213324077172968197825068038794248066159776104794621827236981336079793221125857706802144116143758242180982010811087601172146775493486823080201757123753234015228235529342668192131735411137195078103778458151047710759982019589224314193386019987744065288896946519793497402437016976180785879512828753521267815434010717575854655371060063149707534251543564624630492527074765704155380492906415204145759792331817998716521679379727734625682234286710724575053215535552695970113159058876821663925482114442043558162977379815695188918573728052164454959665455518018570093597172472740579254098910509195940251427825457419659798627578220704752262604533109314074723723190402749501761333595170515231215360447895018722536527555855272849707079025428299981919248431618984215131497524467288061463612353121407970767653528259624118402214603432916812343473303601973195706987752679901907528604555232240906631058694975086909995946676622911742735210913348652996193951215016113390867868097622571635923336938068053749069714466195487164640821342595059761227177492163788262060348332417443099034960562126728507057906706213008588633907616451535355151787176323275703218871539135067274815427599750037626008562323585517647706973843140558679284022961566258207361904581220718573084204527057621876581219954902204446236716098680048009029350892145660786617609986685590926481766450171102988844375301615198163741937404014720437256716394239223190107140648193014361374601884477197045214502445295101288609338913349742211151949217811354751206653279284261510685389355229324375731793127982036091283904570151128780222817740118599545427073937020559168314351638112968576855421020869377397345980918855195505653646174577732680876050818269292737913965528276101071990439444983842088264412875010132395786368059679828599221986790741424492820175090094570679775494000510585312128606662285658883202435014446495709352019126973646050348793393562832167157921864656939472568244515923625949841470871485539418810006148368318224207160757447521991640185722034098974695276071238555781502702839490743616455538424540729972584377655220980156202119267481246885885979877494835149103625277768393639954396321412753793361978663891953308775828932321546139290035793590568394270404082747278636021105280187087516207664219908067541801688256689540870794277688810410860792869573939378283011555003505136162584866304641136916125086758439635055614033053875660081010217786121379340171046009187090692189082789307538697196431282426413865302961196212532958947306161925256281892441373751676555443603287431346157569782485741103563763659005882862910143568188320412951972589235962144354853273274426994983312843729008943687582384672462517744906478101900765293021447773789032430154768933118113768344878008365124619822548849081722115210397701249320112761763509898624527126576270724951595421755544392810875417803127399634681891459080266929281560161051003960441577257896899046072645689933192806945223663379130798475198418112041434107215204872632442620126492224641209118108727783599831351669813504770118144989452296831482948436323894893453735219245876045174449922240976308887411600597698834560250700920976198548992344324370639451881905223708675726907703168397913507462413222052219041050944343693857596817759963851716669078312980775533002667759928879090108250656536453897744081237710893597148468180253320880950406126059469580749844388315835185131259309653977053229257228646611442797520897099148557675975782052089022279877670194033571082374756723135636228837691451523544943733864474087231422033575036192634768867282448514989555767255013147793532428707724744359987782863169263889657000087606691928660354353792362067741546094299488455241642208066962987778659209609145477043976427360036818379271789576695545662004235065134937694447716479661594253240988021666984851011630987073568531956549341905719789578204796161762446399498869666056916980403225038286935097090746749103840785646894193908847353590673471651761701321181679612743672382155177259700395317799658425641739693879627913984588862616256010832422521689103100317495107746194404370555516355886913913170504861461864179632871120689304559451667737187504918709283455100055952425205840834163993884101182400477050961778289143093974093471699085938381137573316853201452016276661145851976298132134798691609113254881288394858538488426411278774627658747038359271439286566554876079547280212863350387557193366981825566855793592121401608150900191789466535178244151670532129610602573844178291257460806452014357290745477881489424451850534207278357377706591835688669601645832586411798986478361215483835031569814462172950095784722257439217003643322204204607419275552122930347150207320255713842245175354846954577930961795804719226495208299228925110737834797882482096719317856286460380805378950251873916039916822629658504904792034858908772266396721253483148580967691584945224502313756865080064980669156654402199504653743424927973588637786456935620291714011815397383830219242379977704248931157832371234257525217254986044633392414946912245320865204321549430624393768402593330144695585175374289658689186378573706826031594636088294957497519971266744279017490444745521028660817122053828636116824765215710003003658223337347968250566363699067026970842995490673705105325533426386216652246310669410296014884485661375416367572301859236342333305300921448139408176928708342636163398574902843419149765738321148168846579632915266107693395524829362847200499501648383859044600518584503227777405032160800758212915048578978836427077830308542275357701533787598152862724276860537014213731349090615973852022508822815188653133490735840842034326529585391805093247588580455029398989088813686352455377865624724575443507200512422179659434240954500749340213464848520170835623262534208815578616321269367170074201231508676550335743109101182736076091302717005539380622119471804056375964370995215346140643741838331299055613931414244679689221859174272851598016865386984381892397202283515146736301284198889798242484591023933278601205365793361515266949692340384545537123134111397282196339831578008510373647867144887302370480632479536108050309094546696694879701397496263667741649659764107690329208576326256769110924891597110535364009170458073922957015294108803174629051334683560345583723855200572498649691991657198009588251932443612686013069732845367310698610975113257398820070478029891871936582983719234346314468503612583671133898008451052963083839283161505111730088718104450476217614058458890958924825638567043635908279175007643814325841587175359577222080221737677282736364899268007144266064801220374772376486757152595639267370336744753152197667659673968815702187201548187623043756618996962419052957081093978471390516910726018223939280143186413130661846107660146044970534946238572876845674495081629727425685961237361043230724154738060459238066467304157567181789316281618320354054145224730358475025954357581896529064929970481976268121722373701830628405670805783648765914060998122552958146433970983101184805186534402760376007875000124576551181801297616027646975580906579442158263351749823464683258197922599851207785473502889742263924290713519845258413923404134263656683499063193256140336706513283575059104726416855922121293348059038880366259419652272739263966866079290917808169085090435923174818498011098483784997173632360273565869216271721572883835564544767418809333131738981628956543123888337034106566210373875637639397163262225741764175204439582016930995435744670859518577491708196220414474196960292397713592305816357401935067738829730696865816889272288938773116888458555364086298256350259219786570760083384882330132613276272348988492642332564571071032837497254891945120968987142127630119556539945123800360462786518776987130989924420465995890910026296136131861522028903877623985117211655409074898062703234481100152546048121634585976575197726464811300976087322795609782836196311856331950413789511799586104235390493164234569550005023142783380442524860407452125584896484104857226347001227724940144735086393276354225532617747703179016165023314333655675138743520773123784085862686627443271579666408675091993136081048333788514450942854605125519881597520464558780424854853750160052291808472057788586335739155617690024814799954615699150125728851381949097562391475564469741510576467142147236357621381852212905858013731334408792744223942988100708801328931904563198484340631802827691072213093151456566549105940004014717451845658480562226873577734237762762801104750299918982484653112976542455252658442965824715184102921436129238968185901613752572706701205047922732656283120466915615952122829447251587320037094428629653544604664616682324175460357772572379422174748409000336947713689584748445200072696645649287722073957190022870094250893215484964024201919781551732245207519729120530880086269002971717248534501752082175515965983311846896335021806363748311329065336655563980028876966283159969528283019561878622459203957674675001889397591954722356150631389897926890228922215345967188224292137068285643839034632723958280122637533484769515291108882876341576972303607143509404775940883580318663706877705185378418740766574170011551174511343374071584261725045621577566896892501955915365504424583049442246118308690290631661502053240559168092346740809539739194924308145922322421044224311809212315051473231277665852973242428419845553947500003521346958646816928448457237655665856926392556269768797841161382022620345227455082329668892212161433775717049749776925716107034103972339876515704766599030983285016199974159285394342883968626756515652629219037133991026647668845358149561149963912254551227399673661704824393654113953588549323441720564630195955606057123751463541959032703452354472467162070427216858805413879065757304279130875456591003033828749925458871939304710002870750610787720626721445662965012410267085707917668253063672537068526956545786657325337674360327270967300976214517309568693048396120474337149896215048319311398471492250663295045334529300871492277400133030286016526840686461204554113540388487476775641667830289181655598441792255285041719932530216942857041489806422734406266520706344980995151937237343760489764314850965607975341758905923955137210400814442905745985848718751832417251921759409667600984996093386118920779322561299126537883546805476728107309061321442895899064949207728151591016402287398044499737061398454905116804517691622156632783696028742417733437676343980443553326302431854587751399710061283511251043386813397722696527331622820169360099253251547528705201405587930509451353164921107897728277752909513045381412317244721036997268660411731959798767823625386105061607093446044007985432750459563768808764572769771095481705898859914136175754170802787210739192236764229272269196802756761832212743388055580225639496371101523839176778642578910841684240453047828466656098080219711135637987642051590874843437622803738124310754314351827845468145109473144701427011320799281127046732249679034650809836466173162964025142390558808410146896312818161236155979213483701754055373574809969937378238241567391494534333839212887405535712110297660383435964093215131587233760843935106014294591230956450130419808305408716256517997150137384491589879794412084705325420298954564085744794970568538568393338683817448955827019573213082955107801380772944222859857847749830787730332851960548187671971874076711180565238175052572978128130580308252951776218912621254608587495179099951416442592566836034415966424848981799627178153305254319697924769106678696454864262656738706818147870892655583460231312913825615231986225014321394580420104929468820333383779814092584443661891245067674972690821231021143937980595163202574179991705547588441149104320388609401022838406646070200531004938250223028499682618545681665495554566006955865868222444213027229399088651354940588163231252197383315110866720284820792619531954242826783478787115016353932971493239931882815574842031271856230080870469844217954343344842887313305703483380847060046885950429625671051912690343811360039749213652652952345435099369545379153096581611732681436270233520565234101632133571100864275628772836175463148570184996929580135145878756258571970659544461941954623635373391318165141709584324279637993788069083781984323252376397987528361319515579366111775781753149363988091332531658916006083842596743989376724388610652960304689330001547080552609937733384467272739344549016823887888781053572256254306048515791182379421912327447124198263882056303289264202403656102702599361874287996798986738209172775907692803495378780206769446676433028834701654178248708213254429515089679953101724858632999910114308413808660880483945991272010068022866464525077562183779823266933684611272288574806241561324288795143824842131126730700979406018678172997209475531315566841237828782369474806592784900824308689752031953903671948418094444048165920105255681476284496466199454667896556664768231286945268878467930397450329613191057750059690225824873787068202611648738726157704442652125382148700770634210501892285643285101637482281509269101922701085209583944452362016345231719687737954704097017189010526760562289042934099655261983198308250656441322785679613052614708702901061738498804791741413002499452075911063158723140887633912083394085843976525531178766586859138062982476852532770384637344148253307239294351536847037470115203121381892147829012505105726255751837927048206847241136852406812238524228388387936973538998982394093053251171393690280154354282904518764694397985737942402897736194396009027560050378763266739335487596224259916680223606955772046251263972531123959953600195601051371275229990458774577707276202537206135621971113133549005690206518693236394870915486820064614189826771979169377225175855088392250007784342848785773359970689163801453590644299414747633876864654737555179544079599743583713309674277633785677514261609305696266729116319753991985122758059664412068675639854213522128299014721542558742780278177716732822127210372483654658359498133244056701230272718483959147830872315543272000499528785741403339105549861442720171273550993530833680829992266734479561614607852564139901499205736422005094140456760639299743866149134633994153812920251989546946469513992668783513887780928923169297827042608380920624904283308375529885727235693714135603846321559997571825764847957456732327938178152060824312875214266451596470939499255777033767299235825409960996085581985603978873137953659854503383528382829730703524491515229595346522186985020693287652049182355976005723638379534970465595419732723002822244163600323859707617965312495281014363063435313182931783567109681689306343792370958245092224385032553546592105045702812184124547062121314618070164458125975136817752449394359401578414643777675942550324005309011388022786298779762507790376958842758549838313919146208824490596836317388966323271732838803285740505021582783964288729419052223431068492745462574326094494978331485394051103558109089856070945665324624435847216482101949197357413735081776354566231927028548013410407185173348497380152575622147541937472149524509224448893321005642186003885513617600205416451507294146342402850436794789855871037359445872159145421663858169579264678974272835750272745755381257699109595903877903074893900493585122422574378611460272233803334228903677900137530476798758575987288080273395496936956512245088410522658441764710024335388347926872405718058025706490949532173720017446535924356792968950044217018729452471020069064630119683570103723141686791419172431878900584289218708648191677957185172393294874884167239840805544324315367448033692361570416541607196906169416102026036731193325688840822683617708948218147037555305550311373246023342419664294949206373889219340089533776577096148352604827546960175104479862682930254299204205137440931152076389736655182305012374431819023036018295980266563867681112266729138368989817433539084344038472120622088510218037975193446345515406417034656127615079007878977410158449326004414133708240130606542356796481473451415027260468551682179273182450418839954339930404634527364138398209175581309737315496467793060954487116068716508702454038917074329304602826614081283151710183200995148396009447249117900137631104203915350472671908330415598342570100458861750592493252921475000149530632509654279309951737330545963216233629650195814933898636980047041705898389876005862380320777688525795171921785842900332094216860448317196377090728275741092363825791375387260776706296108895836247181155396794484323569226507279376400830722896420194301035661472642327843921878309781799811263333259448329030265911189428161927132550899898420429329510218717688580347827273518555898211927925572711414458421695906814784478047982344838425303701631158757115673870539994236219434428448315731066949709277748376786464471626144015621292160259090605582704821019615526669970046221232861813484431118143460880523220826378232302814063838443637494048420859427358411603456399233540034512719659520766722998989323646429969983438279589949069536978662746775573499097076003353074684500769456285954126746773843300632665926044472180255001574336353055507804964232914800673712239392835966972215487506056993605361559594997967978679790164064359870228044035607052008230705063038589657730607272588748630130755235511694065873639066146733188590886127300073330644763496922269825809478247408022115163805002699293504833409096649430785109000362085673196711290516081473546551009327464578119008149157763906533019869347407315122505990994252103380389774206728770429790084207093295050103830530934702117639494057861146974762622381239931145203999284426831779895030184980927383043433354606568613474414993046774102535103618324340957866005673509516023229148965531130056458189512321890659869760577135967530944660939897999078916316383821771676188300101224584980484454333237279114672830056099960348394494145633112878139234215650781150040966839579073344730936081831209303848041297548395812538172889358529979462720793026622224047756349188986911703059473293456929359835252122256880104503088290305658856178653231620916605775764739817637450279810060128520293809305612253356952186085332930881019533274597522563852261909023763083013817504728801802776836823256575031673988478660385232726048685751154658825306433402949439709986446668032958529846158909022427621161977955113733994894120159834150519081578343100202190933798373630478617589218339483673327052914182547106256331298673606949358016330290141268638485731181214648119668677871741376948082885754022350555153569175979358468193441875675505038323911937286389202821492361585833177879549070368469610315869069724353881322034659501427875030276367219698131397794355415307593742136364712017350477193380231783204015995583926625767162371173891236746575483378804447318859576380591333465262277219809092052858777921378069002103463801923420633632163016195771334901620577015610272494617476575320282402270210477884313945889388326400698832287923733055748133249926058974777338560274606172516174021746428013153215579753778427751226935461542042716039995964982204775894464880648100399418547169060832909190872094928303953861076256540531362602608152216930988639960182531817053520893729748537263081145215176029720911526556454131093088641414438959575180102434263686585086928809807762739601942770496489523272101578988658881028691444071868614876759736853954470799637893845602105272292218449948577473143212207061358365449483653228762111999347392638279071240661158144631093700861724542255341380387610679036696298014897335077648560201456474162447660340984786337453782147445361290850716580021320603740818802069201144784279675475174628312303800954664377302555309632726396550471330072828874539113658715216487615139828666368911363315975359542951578085274842880366855813641325214561655934111463495209049018615275929911624932647994823849807221219769053849516785730472808927040116848649737685687330140179664576362954060991770471888127982849524161487589988900935558602133290859721684461287459450526152789520366098080677158830631673491127264874495061033809154281094343805964135265830615348280004399759138700827629827282729426750899564804377442741987541994735985135537228615663022343926195764555761153789250246838712270269496464940376930870032195610422166172469777773516107087061841836641676633249431302395552250541686445265762049583265285870560630202049721751816049365458213562659042614844743485124979199562953744088920579874047083504719656850304821508545523719164129891981957751359752914090431091338086532744714503072652827813048420956066688280128067020511027119629411117425483906596434050774356449120757090321709597325447598899862100353665384581467697874345777460867956860091175881317030926341459003735242886514975840506702996937597508739563297177882966849980380278818693441139167541171605158993740734118952038638062008180438008495080279239702316822590708760143193016444195699117307222913396917537290788473668598614714199110020097270338526634186904341026444198883558095449103936377179504723482145223946504707941357268044381224665625960677152420794922069432134288287967620808768086867036249519361698215012848122520456831810046167900950697652918704734680510235007902960472480827289315249858292441046368107632816145027837723684088187840523082553645447252208322002640922242356279954439012087479111430128245829411675863074017357520913298849056395677218439292305994166462435669040524850620434130139848218657603244805483837636471599059686504574052959463898235548131772447427717817820381010559161612785140317227026296211776185053554115576597535244526841827490137212684287920491689016113140841284624096823764789365389757646585199963687087614517491362108746104997067750096411324318659961607545188435056652383364506362735411073771494776608966792316000059523541814275732240056930882579159576502677490118294330967840299285956623934411807019390568265435383037361390594463407384567713211220740640680890589735791747030996665331250343755196589598054792802168791224011789101849487494390222513131373183731616971659209882984461004291220281522573197114539877992363845372800694655306387328375636408849694110670061878184849790026581763239457669277491797784007155917294374693019737629908440590916660020410136508032941263174256933918666193107715292518787620928672853496846400237234369597829585210060525076376528683814305860102334541954221536133765417580762090896287914112860768117708250967546861995842069589079654586772048774818043867419755160000903390861980268888980088248685523277248853656243510708017824785315173805505681179347853702396362458156203473606602707215195801378636639714981714271086747001832506976950733547225636973650715589626009197386042546409636024605235163453083766534073963478643421744089711488545516006019306204146086237802825928470268658543370627608111454618443862887617003504135956326766688161041021631779960413398062795197518019782437032362458712510090122557324528228122158518414599639900961872857157123434488395422010905002913103826447175423023147577066301037869413106310313820481148808283686209662989741153361606215782744054680104489222309507735729876610163112602990862984657923916513210560628988211212439812198295446578040182235371003217304297738727404728132359037093652592942819641370800808894768137145879364790105725394729338994382544316838679188550157731855956893342531084329914893463067164828964250629123535758038962809027010658373690205367856548388730169532642994275630579367941404957380512383184717784680901694163960616827190359321139586321769752523598532125119155305457978212590219975904721690498830809429273434955503656787195743823529213102344521976166484176911200599241901037656929785082252089101198476044801246436819527429311477649489168379322618146249769886985680826614987513073683143692745334000424943343166194048307107004718088591443241735050528239799375661167898336990987823645687526266860541044658442823206492110802981475167610333156750789632320358469385755427627882999980346386596542310851055504336290803201139313411225868856428813034214319823965197250132034544877232389679135357229594244146801951563845701900018928619574509330688382238252710348557632304623970358524477542900189338915678415647598579358303002913222835754646945225636413852502322447914717082334535116978159367222782485716543637481550297921926256242899579933908329827184078542893453530367828757034375867381847115030087609729223238433035894037380274246742969422882011105316736547996119229777164417107946542115611594571360895137563524675165783513745593880971511684747348057351534467227103720956432721329369138042238347044629557560536190614048634378426353438395602697185310265255794820714113949531970667422096147146283811350650399761406273144116009662334069711441446344726200764905413540663138082274355293295323242115428071026956509528394822912727413563632450299431249507066643838759227358941873572151482640716828423702090072181513301403305349254657064641760320396191421835893867447839439226567022334115816315640655441107232985383422072629794602172821338808438022070151832856114118051183424574166487760764130679023283956260103732486008273932062583586157897574168251403548146024220980156242791449483682788684082991515114427034031579160285208083584523028039615123155795098244593832077699080127580125008548876616458457552754253586064640619779661718072900149186886145271161515412840035280240795410247442246936001537123375325332911002001948745113372726184389788481214193478899816854145337496812808150561780105863476987110338345880583272571179101496455814693028062750373441641498039187077713937482644903417333656218923130535832429848983762682544493173168195200339923401906441808763241100039977890867903196737876733818871128792437437315102021533926477468346987085442878091464460487350638000968312310247490239123520800250614123205184078229688283134184195335316680315431411143504929180636835063795124125256322078441835611281675902184707730404532919789743535327425447498961856056822460720463308021383898479170645487347572531832804318310276168724509786126889953166900391936741997311582627018913285428022884321625471095912219910548758026613135470695511009156823322422451555293193222136003589020847811270257600574380272510649092695469699514873135538410541607900936096945068001901304952252560257441033048343494974249020062471814587835496846517957344219186868696286934336455433376451402637662261016103164490177111014470484798707180109380201367288184603830354007287031297374145988089046927288616667674225675634242101924608289033649395254643325370931829170226395285193262844193653807931878240211267833248704454957000816383026468245573047167159836907092799446759401488804959318592991222393407465119562979681314426777081157872204103098470299160242346521235213049127744512419863563648624975831052892167021576705888272550763086888851761995490647194075952563498420231969930422286159249712371194733845157533796480581032636347654726199566696224897492245608149335533814719086022368670383094640019665590874976419456990349862183540393295547239865240060571369988425679337456739669780906928258166059779784336820340798284360749674915342053656802503590142605429616105103408110113780669159072364757320215928941227047089246687055499977189062508050861534983328191722107122701534927513886736076909302543731629820747583709645093639520433441254198430480309997995404548149273303948296395161828547254454049329762036535590966226896758412358845892979664285507089546651734901797530240312279071072140799771322423125621437462746733216715536009515321193511701258179299568777033363427463806806301567411382530392471850329504205797950498830626369312790339640812481062520441460503510207822816437125763407056110069338921948174231106314313319488864428946451482274508955358572809381177949356817866495473987361337662482524664350888194886968405986372333517783226061090130415665805541820708810937250778112011348065268537146958373232828889116698901003986884877276328424638466290114994673310989674837826649830264562265145959139880767035952499871184480189245055564488107871131778254186865952157018590941289441636035001874975490994612844268158878287101244134342305581846646744371188770466405695511273885903676101130465699813092765150450186572268472354551397958987050464861491588955029563358595496213011983817795728129061713414581811468838969972290665913224995511425298387966838418671360999270096959643405114769900969184893129358091876474197442755490529939084882894094887151946701500625291060103753031027163779114265266027678194825188988784331449576574663150903020220126580752816542210834654428211267124619888982677751953594129596995457605994577805568812334964483937137862128962752854694212977376015494758177109791128400951461334125739775496057880417754905780908290675545522529914251100173596921173832896057816335639815906160471737792167921357808712776825011172787930879252493682542496184145675625089470016091485659525028815702086891994719365810399150381066570291248009980927323789231846229885009959446780229726389282578781319992268925027388343349700091395093714324341302178368589699892455526395797806097869114540232997460918009164841692171498734359396397014513585630606400433257782003632152020300827825483747974513334686178390403725722519251693223388581721226296244229531555533234319804446637306346159795527242119520137065761109873483905320416933290737886444448268982889424894532273978046540514411938405369991465791289995169681944987773027471929586089727573591743246572731014245078932331373672162162935555872915208625036894942942158119891816555039648616236119329735719533572873209777124598733866760506876877305982352530916777139472974509800824118111654038449580651118799974057134422171462480581060479847579750791292124265277476937074010007743698157338705476038715545637589076932457698635681875124871539309729882489858020977271752814900101235391675559383382837117496881634327176848156750201016909656623281672832945244243862916603744841674735003643989144021221254045826800077524390105595609448106145758576028861587040047770904892316655548284219328701529630941539126766338062848757250108708885841289434663176943380382710005633290924071651193988025561950066730698317697367989171840749671515662103886125796136117391283117928390665552963375785290299188079015225573511942450989250122919977054324734988554138405457362667491113947149472670986590641088338693290196467920997037932269725228421928467380056519114772743321848198990446241485148629295553518658411636949634551181818823930427879422735406536050694467284004944450087533941106806804207310187592032876801693459640151955909784685998141016727387684183000977179506706976031011746759535862056044775084959222417246007132852800440376614800937286716933016193506350654604280117846856912241256961167563131693433354371809646559053032396007958035423721645830301056062439808467015159208018551493142072684604118628010826389619928794628323228085049545873637891459029014235529314092388798919300455488784293863085218369661461568520193583396152831495028890318847038856111641049655385226975645763186437917164926888018597891044150513026478644432000604879841547592119009375342724569088505801134717890775134635594172142633772386297140371869983870593053397409792516623682833932707797684267298716643869892377180978183101528504034655239695109060013065336694080190503217674904435154625904200296890239998510655081239454356116292381221909879913983021207599829037709818576225399410751496876808559960438185333530410824856268123339762567175433630779753973320894155684168294000856134445197865882166752701733479275100970728691468397609341003305885751783606858649739526326550487931657084326280027215606073442659900769985964143762404870033436148468016640164889927797929892838011932954467880377103102580856369280649942636429344782538986061708748612702851408040055211230323116727983930141068750958672574842983424153345485022933802891486322710402937903149775923644862438615562054974597331502615303396966139258744726203394774697001889795406122653020108533543943805581756654897582983191916051862942900930726996138689581327851166988481282056362291352566026103793968415792803778168947776423183201628225415437306614157307450496816974667985606348939392102750666859220212552565063068577557340012041697474145260399279593474656665340554770206041964205201160703772863893962624007898581967090075738486641656638930255099782779931601835949491479436787361330983696495855153864294427085167206713459012020512084517282495643666465241611768922990283559630744681369488440916418167672583796318227724340722876794122485567157286158002518178753788863938006064617057623082283801480091267782525649644808700753193877244554608066792599339897266815880778410397271261694114789543345413047931021717087140716064579358695443583029259747382323307155128716400765258285059652334964891556446619201177768495959287836948895728420136625061727209197900656724872095967904262476812511264892714757470097493011855070653597270631762999178133014566935882300656713193041200087178772010359218010924870611994014529739816258440624128687896736463819549765991161876267718803150828609736040495631830720179068642865917458549197880206837872481283559073304119490151731462771350242494154518374538420005223020253805023753027864340142895238902627012493030988106488349130660717086288602411146580772044469847384143706776922512367492135239887448553121714090985891701158515203952641625335508525895313169649905583311058310367931552979662310284968129842565067549440102192583154021510708870009240736836305966196896280333285613381705933028304899766538854213107275551966593896503886196524693952369629242152244714004844027158470984450783213765734074107035516899186605370695604172853663423668922863096981506573453713756162499683167457606028780518275453030991080753032951298976017298044102548654624670437517206550269088535166539859960694216842065847614280064534266580497713488625268004974774694273679799605878277153140221989137229684991440002481410012915534125089218482437848401149984176881714268691957750165233494133469456861986771992667800230562040452016428190501805703474694264260546459082968794829183677850452956178832540999418195102534632122329275861170377836677757747346607622501497172859456651987834093723439001016735597907794794192117336181344266896786704005691347812271813626067466379361457482740594103804062807739051696043973107413833720646148129663105845522593702831450175225240363788559221022018809749058947934146346727422246070488918536912366069359452487612845025623795024228356185378396128998748313194429866095209945819314642270044589104579914891831610443537189867874683387545295406131185148324548970251662101147781548058072566067730178686753855278285536551888402631141119073882264911582395240326998807277195833937448950306549659964285955685288877657408548779027690338694978882656329230936072764311391402146532516470760931268254667041511251141227836629878239105740869370170504100803778559651185124485612080280341883727145791442494485667196371977607858746961170111062692150010626139713166961872436921361974101753982957412393003185800152386497495259874405064462733701887726461952968199393713208730400715276821078120652544300359523114899807391937103452775851389715770497876356042226390206631742328830784016306178183248006889183635096571003474261527426371563836897694648847063438467234888242290290997103313201367676441313500445710646868084714589912279993535317776830508047813434948632165280190483717047744476704370857926126852063799319501815389448049992477900007991489174664350620363052489882379451671745258100416039233251717540035877207618472453651870724338624222374663853374271192287243388610395232992517808475194619721137392886566595077897337811891353072102969048520089788077652714987844935471625746610225998635105652225240627098437717317010961782252734214305158010837549778996244017097845225832320586789907339450734898083644922675161521035144775667659665170964107536698763760781593389787472585122225148984356177921236742184699225792471807733992744310042932331004556132485597387681048052955639041863393510673857541725624586520689510722270385770350150186434025075006800769077477337961737277743594090224706863971499301833766832432775375688523324743685872893157137187531935782538813365470582615626822941575089325779794587794902870862162339372727950136469966456363655878181208328681860783159355815849565338188706243806890070099034351949921963211692372674934119702137339853094227659122199227190334777852691093337699862852905171349395384634351487820925226200801337193587211091700983472086403732934233673636846514922742457253507143631867121588690426598915271445715380510113887555848085325506250666281117607727116116591883891912463579330663950793859878278696737897009053706721600201154396586057557378188301012884737953303230958644941593611067983984226063596735796732535030800584543643107117273191623188502687385430707523185990346031723530149989376137111034577993685539710929585652808245771786015172280783792193288345009980367940483456570767267566656802191860234088081193493465018030263381450693985772108819412644821589773721439420215194958744732160766570010383535937918908085537301753352839513441201019875684066933044508368148561852819430228564454526809068735380873167581845197508176732201551858745628908709289590468707048997029299206201675693006899741711113129983109396322037928124742457322389638324296004447171144514863233245515092463848150899292459641851213893917724356250616420367951679492150616883057143854282419553146331896529191803280242532777373726620771673645519036441048243579800571051157801685153184530952397221535853201942026343532059384301406522484454229327966300652918628682945875794227899573731044571980951855363256777056446462048064021633172403785945048045950917881072754090827732321948896885624358368212151539085013862114373578455248229964679588231724965339183591593669193102156437359410264511273718390129223628059162353270663654613365138397224786707788024668456808669489230761583809010396789864522797776703423639814366339872500376040415120574711330558945853393342515252312991134771857462491477802385885072618397447444543547641027076324890616684417835451166582806889553642207132162873320930740026645946835394691239978255779356356251060068198990473878210395688093015580986894356248924014937019463960967474379096812434177125350511440857831265901309622006279372266840012205307693354686438811061471520253694141010392437133135252104546730069142950168861172720980190591779407841654844001685954190272946249669768060814355850131033430435236564669189276834590210948299556173507082875110439027189725423468981477359273399176493993340215090872923297659755952620541035129355782507550459187930787896437967600948748009700285115503167702607118947396906294050562023008001337688392044727508780522816928908085297720195210896255388273048203368760604957621566747072678694949981498015259779051654850726666629466007142547922800829607646560453391938965491774063616680385869953143692908525665246023649838999383246859361098825156888929092665416637676208182083429190234882760277999381923122626929051221676872977515053431807030583776788518815419232834966357474523734370782831514236308123080011511967921310095929739336364193377423349459685571367191473801474723603243147859738445810801802054190081875333200709946875470434640906095695796221833028177803895680305404124980678842864724688689486297119382444297839882695440331900121694031104849922746708031178698932758309226058131470718583645532189496418183883267638725298743210285076756923413128954303254991268769185716890153501816367176098016928959538812525449905903785333596409816107176890100327827311832795241686715120986701559433294616176730333609669457743659078636322185442613562562582161016995024151928461145877248698174367763906744560639649499460783259707722171011283968421579382534518335891248580543075679696165532562443506680243479216054933680884532818983613094298541744838817324177061901334957836441228076884218639799276328645765804459050185243373980766307816697892923306668046749415127567073766026210928177929897162605649944657835432703957346415815431384727544162376603064490231701626470721696508181742641844545198575317557553269503512349147367719049180986688972813812112112383889733123122512002983992407649881927246798904969631527643550621073183548681967835291296545676515706592540288273335647982104315498779103810209985197599281183887045928153625711390370472480357992068378204039292477252640959959581334970506358741141278903217179364165439923092601486867109034097470663503172210008632257781346047936037589739834571942476530656121849220641787573970681625926141737350180225324241310274397933937156996527727712092058201597189379325648583871810892453161483683247145767273418708092181941550984704810271088399746874516658900302346172579095813703899013374085386516108952810081047790979884081205948587496022706956639849207878577736564883766242114171199149229807931589509928146332530688402446118952680630009423738447593396784104464121472945938342476591302256087688218778049719862693900440463004669025459744268058086284029676032702727030630880478784549563207297260010270082908541456359330233096323050802573906428383426447147183760720770801811728288460631078574308429310592923333345956470077171007114323397067952276450759998002815709093181472946683471580172489077039242372159614220862305461268225029341573394271162492393639905049247997155470779930085851619256140504586358724637008852671924920740401674426991231772065422514823189231178337175017764653242055428076955063857462355432257933328160057008035617489963294074709893480712310718155606691951418324775841796553598031584508040320643243366674768609669477021830535353006024751127279027081802664782899896037818982742051786082533328695773844743890529873316384310714995416143134902738801699311258348484764306061508580961187190308723622414885482172426374923829562948249663756816737542060080790306042788818127246148519573659902208414752212548831724986311438611036724665132193007215180801315308690543239126558087423954504257149653224462704814983706377259325730210799501095792791763081614738889846426108777214391130736193915528362086225731880930579791252401036587833432806776309014095854238355563186441113137853257119755905633205658503538999365908774927274047002044661416671102076777854508074995856447453061199243582140618376186885261119368419177502756623367703011286452190958328387108457865431352057255840340189127582124018003869553246485371225765439110488603215925369263473529057377386742771595788920411529350155550330335360622216203211925448300468951558770214768335614705862659968200150610593546538595419961665316461806442966516560183954683433008568455002241744417986622807969123081982114159530077760136807138648017901963659861108029748799229242204129195599538206661312045058040704343964594123498735592510453669630198267345036117095950826322386758443046734308338445630329864207147945357312701027585220576515944042280510356544703854540413750738545524412951791977929673869245904866963588399716569886638822395688950754990727866988940437611656361536151296710507935991106219040552775696397582023566609240483514790156260743776783586552346272346768099407593379873817309389381913426911681274713839633245158313708153388454600930932612585639589578284699361929581819606377514494686264031131929363833513228872914540194836090020928767315079605591782969959748729276315360585946999051595910551096585354891077463386607284957675839276762092601284738315629237290458335235979062070331772758390685062423260545746313391291683451164007969171002390588998189103502810866089182326136842174458837524067076532916941653926024358258986429332708911901650501763614402348283453335406720998060987910618799861199413849848623273178745407030017675250548672153484450247497838744834142734880445395073752273393078864910945284178788476117088709578132981386053595885128995580879500434204260404974260229818332906144770716376614482675417806762835064300443503558420736279129290534646664000266617024056110638709614861292678506060828421517608797130924701182344563823060202071641062749081432539144248078362548681888129905824469609668587899054051992508473566739522966170249168988435419209915510665044667149668353414153234881355560149563272758288697474164399623132530544251380046138038319713228380630823929602495758552408187396718284480072683974408437361159945193114175372937817777823348728280387906403944980130960046325950449329415624412972365318192383788351031461253604137001942508885656272200180716324012220795589772146258626502472596027191592120833316287601061971799211234033458913009904568729232123512082157706176355540294182352320343109631620398795580752833365356273121682919648987870606768351640218466041516359631297160288227580237450444167503175351118986153498469906422589779977643860588415631730042087480791082572090858996744181888035447455361666404698112695298858955617588539575059858347559014243893027787727770627471340866057812780197101451816332275896215915468416962228385865860768242930581334539239564077749140192108801754390427998370962700045000213455940814494067024086948869631569603242586826563790030957437791826018493049556974334951502017944121172065080677351729473950920243671879660460232851924602911017803534393783486076772258114397387623116796967372588698321569085792288949991131623880220543175143454032639719214723295313866366822977615587117829958654462591539551262329692976528815296590672749485181333112838913914428855651532489892180861932767830203980393322312164040339934859329052739188806802126487752514889341861627312724371793105978923418432595184765854977416184910673843212942912146976776732361744251867157923376550418495249516268635496858880358264756740674756498224530708496439867746803804102807206335256285356800942139301699060679152583562560338373429213980579423482337928182796292825102914492764111134655641380969578679041775862343006036969949929370198388327099872737405092965538023438115756966389370688800648832187272419726115070347958294761216717462957320990365109356574036769613318928496685534296575478181258883056909273826855272957695720454426232093109587819892355005528577097412474864594991687537508077385036854802909817857568674944931862228981441300043000175346193899713601694681126091764176344626811098894888441049280201402861574570741023573810172558983508099557081712262816819868096482177336591016978451749108978978937425981810084280722690471574591145746626947089051316898643439683172251606190685160173369498482965899439947252260935281850808273046240963940554178126368925099177525250269785380800844028149774168823057473315870829587886267269217657543696816993285297528608654206620621114686336719516191557257647987824896263566350120385249944865024573702270896806369333896035776381068075896738599228365398897397881352034829569066562291794544222043928866502424970755641797931453077383075591083514945873344914334263519081432229385823032747282158522901281969016889594018225414790081064697273832126569900129035910339893828372163961345354930886738003893644521753308585214733997270094305410392570383279275439608945779387064688709827345834573366411683804258383582483771144600790079715495379289433965920397221974049361963199548968577305879687070183717122679060946386974565842015082017211919536515112781682899930906851355896533356011763066931090688584928901287702829576512132719525871358189939135733150326238778007308418573538041117598700852714794902431063053219144031760954356678369606643181194722655131314505357779290905835205739515480794147516043354208956788459575786353258895975418880356747593121903470804102941748577543411560882732074838569913515976736185722625707992756314380490540047915278467853547019613133992018621084900119691893645195666305447363906244615880994593016533932027958650277824516780211414186338773487561821875005775875726915199352468396739913631000790456547675836474131617777691107087382985311867168000017382143636731931325365745297135329546675422305027181526262106470756773635145742825985296895310554815051692162005338921308663109648566513491082206035763100961929212243841519806561427060393157496869970786162292105981053455873836804892084219312774918098303095157302401709343376004391876305332596229080861374731958975064404581111251404768548621002965113483510757609211212135200204642748005023105565486390357025047858754760205427134678718908256459458364229334670038381724317587852437923255786706755561693904035155095441102158606327706202434757224381065236051173821879527135521449452136275753074723532238935218508873857841328321733621396660684793646193054727107836770148250999648202951144136973273262262997318336353219062624426496377789047517114621749164205377877209681580287889496869211737269780018205139498503286971413271373860897972688849612921378556702534147950494270701596357743581518057665554628561436934075769459106392480536143098951503649681228097796361567398332478596440612731548875424622701342393264828151989612235007206561804130444689976606315696897125149250680533669946151063806834683079293825099766442380103823962096161621784145829111832486980299766702011532833420854190300597934236274014998664048438408466624225501822073580162322375208679345271433258723606401462604719549699504287850650348106049217990277726847075632595538122308695973119321009677178250347503230143215193453328176706292760633250413234654555694845501032363660763848610502321184236669984685754880907543067373251855837193732394183233458203852913973753922676011854664001300213652317403086626493906798560772839208508647830750016111449516778221033751794638150600605923390628032696258065263348735187429264179811845375515405030939377468657592826523936314154412029923997992721878365049881717047402783931857237118332758722855900158371114774231958895604450054134372132802444652031695009980303787673324458402969775319317471012768520115606685202987509485189350511707780899373016194597152897527135107207246082431055295623330751420082655407527093950650254756683867004632976947784904552767111996298474122944713974479475740413663338488812519963463742858829726509772096901458751532570070628194478549238293488343827640128800623195626286007450805556556542462561362569579470580423080428282554765416026400434608677876774997640440486160618987441166745008946842454388465994106415177350143055800942432806964973818876024639450897207098942834762148673985825466194032785663705388562165769850576150410080438302966148714894776777062225052218968188107226026111457917173660876685561057922307760283612820426099966359504096194200915519932852586448127705290917149789236405442943489646998695814140733691308877937593630829994586610836829556704189650510521195735874248875499242162851455345767632675278831850435689900175940245131062509823660038174259428035562145537864081622842222163254235487671386335265357788974578906648734536452239593799258242430747519505137382193302825164234998299700205805604704932879192300764407863213471728985782058674921516968960777226895399164708598145802745082758373628890151892343861514498056043633110180474288098523493840002912030606106163338719538043591208449166690302436226017849417263115577686415256206343179719902069502407059777321037647353726927597221539482180725328593611068860894199313517355515059669799112421388651333926395491239919264780461252171975840306306718471360547325338613386188750211400028342833817865684330341195040226342396524162408849941712208214647239880347625927047170666826541422406597888329429408747258608721080883201199024546074059246230186743863739195690357263600322553256501094966047103969083716048839397943077799735943029053275131383702142317771113387783624158094740871134434344816055655669004712888874640724508143980594639092262141607601620409253411552744410872125090131087888070716411317786060989019497968402349240133285940939085597857124320795077699624895094839346026751105472119426351334418110812806648522360967126717734850718960901908110112220710635839489702563634739787442183996776184471063750346061224349908160462528335285005881899404826929279452009798307077971585416175548022557725205943349646028106140186314747784143233548261526157118834703852075882620679770235852917977600315995193545638437173288362659039580832715724401829742474461294851984989024228887679282915236270930711859582855312006865301135320802653661532881048555953286762247339534526249847652436039388215834274411235270917786205535043489144527049914492388764086619223722431977755693310416741668440216396886852697124583024472779926070674365736906775153079302816788359213754674944657397147540779503986489153216219703375926218488239573906497155450832658819096031665605013838587307718705345911557207781747332550608364959372252418659564768362664429630575081090328482707202822486047229716256391623193078884713934151834081930547617501545534027431974643089965674559463792716759582799183525129537592673684772860337058864002648587541969227844603711360292259448489458869484201533572192336038946269358074035613222961271477307657505468801169750518073437519776811015605711588152812246651336587961186443203248928750643438617090859020429449090957255831672094486260175977210368636314870055218494040229752796261715177158424362404266031719491448626713745752284507226592903065528184384237926644498426309736574264044797256793351725388901106878624926790086816392751781081314766044939578600519390479642184771548182751033339191291690217016690088446232296356847081175329198908784202923507315576582269176506268661335381846247359735485143587522588432266228087928584579738259276356824665921903563992012561237591205656469363634397406891699945480357099287801438449507445389554252089254836723778076840155853294638291359939676199686664914807803677615267410380114812647365122185365830333974215224037899982652618994914247728136417025521617162570628718105800119441510001366419215058290945605765650258210209436593581725397516754086082948489823885291277089350343950493639274361994253738147650259395343960031167670215080731073902279313867053891126337759562463502653393415992465906053370755608047758028423991748935934552570877274704737918975688768451856320988289918660011208047138155689017978690927238642106547162653980971548939510131813304959967726913219965491184082063555975658763482715379658974641635786188522507159812663671836713805502535745178010650985080926367668231685547285710791397540003976941286951813363654424090223694596992070509533157009728857582615549763576803482885189263252529110728238102662953152086702923491357676193446084154898480020746732249945250939936969262896415111348886459980891418663268243067401827974886419093841821831747343502133662887336420140573346620250325437401329944328072487661456968291933119048776018439663819431074348233310096658123022285617003023222939990970196540254043784589936215677763093300096124960177121813417626561222773977381205258522798422026926253079944507435542273036481306451114385316037017602685807257206563200071348153650868842670222628657907684820552943519845036422948962438706537758647612638892717141859710313213828304908538000879656416375030325513173128033050777459964032291854493379568569347653218503979089367982108507899109464845704477648781451829358083483576310478661843844894506976855471212997782909262062557398063776099384485300706795468309357812425622268220715779090079445040709921480339164387903440409110837331133207916748277797035118922328028487110785438631527747301508226543004083784938985052093201136463003901104415677596154759084078383577282310282366660496338988508860849362789934995069250493215680662129689930001614758716790057443332865308530399162288172288177403697122173672872599625887322636130449128850093487221380311923397999672676034411006961550590207660147610262056548203420714948939879858368442130067300597110832041987828145384210087195079522094952771224867721206548610893477902366602120077990935120393702385747274577189225603297410452305519771586971815599880531777627481636909961234472059464406391057772552972590342404999631009232438748678877624736638790619830444429382120073436096104926691193763776409328598579281083442472834708900172045981366427808062113891870967209593333010427663206836355406780615892187374601737390789071579594934597149344184472677771104676426018789348525458748917112615354492537247018203960715852350736341660210045784926423201278349047924994758989231944764719678159066119672329250493726747948780198367368605944268500931423152568580712922679803334807009178234932143794013087462682308563450601637328529718701442788673046065629883856348239439795509874533971463866093994072460789719978446588524601448488063338797105346803125154638056393800621023087955578117806247786877033956315428908337517248279674499220052292716001087515617361835792072871421898533554208546857976657947122717063886239948023010047970457337137474192943456862015192186550960429236314072132574569609535467316350022132713273309161591380426368367272136979975818359750663706982909709610303848403470354498389891829435541724763399187853240217871576244673357132189100305068588089569201367185619699072519641475004502091850978958748675038166217517191211088330684374544671057382365111991040785732287476125049372675675581809812609733197949467142889358676522803587454993442490157951281724681126899129149296565350529659418870079028909858479363046395967329423283385075018008231465836290133025075653516416569026541398238863762142216108930934338286926948930237380394990509135658081026823676661448729306546087132302727550241675859405351985857231787008668074323928205315765847868961555852832445853370518408497974745661226125083210703719141372896332074734620960698203538547185233105437328331550419508022678541637379074985389632153698869860999032564921793703216161957128487457614805798162343925753492009023519267763389798556761804473411631922488750262387780165287188037921787445049834666811079988357546473284690977952578571720244127182831933531233616538068965186896685896245207867248840085970152284766962036065190144127145650767261981788582699666502657435355210240921647012977233850338226622863972329515030045486124471259143310970990651350935430473561328426196648167260358032062903990018000721337392208912676391304939933775367921189605303948233298083660355525722880432211608033725766919231061787513681785972285222703887503722158273780334239077109326992140224499345904514615726290259093278818456314624874239797460302765308857742815262564999025388039983315374975656411666167313459329605682303740676525207833654531949957567568826132673027202632915793749710339148121656300710778917049632568872108119702522051829131885391365245420211869397484583016655584963280403784882161623385981573382398415318948043654444780156424750779127626009965670708056155130097922706738437796517102949529606950004831763734073969458349664942099054220145966793850260212158305685387997385256258104220957903787206987715690775478958706979542434797959729757563428546491281403149838712487239968563120728804854700769705884630839857480065924204015433857963706265731608728708619208818187462998921008984024323373180337883790224684207762636112382254893741087313493217019069984817239861807630754464814474530888612548312114659855617756127876282510763717145756283305781351967533129291969279832489001516998345332838023644043989162139436405705137172014410608318501543643054583146497974041869028141898617515646825083897419015801974794421362941470242763844288397792304190432071687419123229487870666028812549412296286935455034043331181834233846257540401596826520820303941944589287530461928182816380164664558294808142873595917102317435444941627135006414135590362549418049492343825979378482071030588223180155432967536165284824729773176286253199876286813197991139175461534125814672028634713231257466510674688227508204550315908936441183724993131636215700245889471252378054046918842843724957385260347390529235296342083767214743555200333790904423136849571758596919053961845957067268320650410792822053752091073278385669519861985275778806865072735795213918771194561922251684393277279662558966368800044238214024943235932961849529756626604071941538724255189467126515185471320466989268994540646001029770546929610738523261584867156050952669067671836048038981116482032470348992683110456109941173345429722041675336746662693162613861957306657294680602961750665923786322257168183505471022283815591134621541207157939177042172488245154507956228531282169174296114709627803717277406323579697517243488330194937233124344470015178148805504687147748041036818754690165642020604027629939339117684493405980609563773412396102454820633406831328400061351403705244284873815593549925726204079972443990820959874604444966862530604628597603575024783475111934195314680459084974968534035463299442836304933981495840484791483293600794021843022984387477728645392407115600332326762799029771628659712834145876753267724915146500502499758016028182754745857775120540433182621249607691850050164259801502281514115732516403150795945654809350262333797975693305393158713977930301150357344823294912771982931622534306836679613499868808179892705514695585128090337755932041985834968439925271650781953789790177581322293169435350368024759872902427035614598772851124315060904757131943125509540063779750073088002821267640484828987340755068999769713056125928661943194505815940407435942874232128246280180959248664774438456274611292349238775806078577853881209054134687135176444219581275123827655758889603962300666881147354518939203438571882719868401499450156854311822620202290329890009880944644296202702094839502842912623790209288450523981636661188203728947214714247404669625759160263558053901584970301390052201361517433223380729073022406814848461071714367176849284723274725074825266779823789620717431438346367395625865831831379092412930382222954757136190650502380902025631974166108573615097587078809751597731353987289579415353827756981092980745499591999708855239742049406102774095341076081609048425138445729585469590292649639538022808150122876113976554494052995932586473531771076120555975746602836903666609268633110596817309779336258175305920603549372092602265816366491194079069856414627023613235862451630425902207323865135527263503360411740250365059996506065889965364346579135033694989569065957658692529559886132565446568824567373341959151005934832906994955322444361388383387226339078828055904469193977355903885449567765551897974692865560651035427972743900479511062121459285674883159601230826658926551884525943442088541110072190373834204292080985206588403253505447348622811087607685107626101138713379299145814865407619154137424376908752720560552688557436875508618609174945793066816519903030690046849747438195859306581011384265074627167484141665461878936040840593028356940097275783078724243567063275812192897590006812616578999553262848384843046681219413354792205118314691782371882388402443294007617243027159601437171081550709581250606793295797857564567731962734603396415959539182291434509914021659826750250366638551567225641799661452167429064673683709708336931601845922616193998916571927533437191164710401045609008362221795461563374547855588662560647220650907303207849895973962374747643631312629894254374514706533220931641848962255245642957929187110116683483396059800281904613092650960869605506573028241410950958861229757455453763385484704271042545918534382365717525111366392351781807912836668236409481512802341037908747265397635740882264091191662379615422015443673359537316934441731987485804984437492826750963432639754974179194397301371111746879273388197666041345948134816806039825134398236383416295397642625237073052913171211499049390286322365215583965146242012622715520215626817418650683372726649495142685771496714427575388626614346449090947082222114666271392953449703207061031564021830898731304965517067341348433734395843988646178174061034836376746714243296082244028063243096577791233440329923964275484018962915979655070541123565011656012789001970482405623477821491246454561151358879965815548758158251907177593536224818289996266986018522411547475932670539230807675634204951181282952945261333541922653719892485492696087836536119181594998406452610419390577228460826777717355801533883346660473523613368171182228780697446269096354388447166504062192995523676946527429551028822953055923730610929193342829527759045282860650889185232995400764576362909991831975744331671279559851566082173897635634284577802730048348014963681051549768300921267608382963678159116584843030522016013588770555316883205095439567249309702277226736118263113383957122770097716020734261200753065224216954614203110956593507954470521834025810928422825251443391777067621406004279144949409432298941259895279609216067113132732129282239758513640316162121872998535328587650637499902027329158267978909099250362623926473879418244302840716798051046975155210740046705286336058869639072451095678544214314392418929031872836594762564915804002967449198723970587709254028757211857958899846110607598815214092339968889847875415614334451851534516481362567048111150798185645662349928268736375430248270680791246006458144946272087786836603891285573287730990558524050782642059990711638127988790339900408271551250499150283507223598192429663621496999886202145750857317628237367607188613692536234140771934369776283422817911785658558784358030654877633934879409018988099631485884030429662924537305074817657703663449611956903381191481933430071282551393084058071730670054273907538213541940440133684516769364816962959419026055701045144201720678137566446817134576065285173329518265264266101407393064855281511477163228120814700984906258286856921647295080077232736482355810690885095982134986007610256149317869025428405611597679899835928019052320209527521112095597010623164188053850017649895951781900075334530372924070526706377878884179628652444689139682830319473861327735477695285717920888381344897852032464304556477874800565878200288803742216270656044137158398352243464900269954359677500592243996913896972621415250786640363149248761314159157853492935802308323972940272025516118000011025728432419772861308539965636092610873704626798861476895083682198468866115434423635829241306074164013484315867672940098694783034908015504011677681127252869605270805247266073710748136705815311332883231350505115152085159705543660932436331086887686910346822055667245191699966168988349206464297173233754629169342578950665407537393570634660375195541510126772781469057903105864493902055106072872119550392020229342820047371592072490880552034330576206733963175393358284561892695931618937823375924303055917265661706526890366182974240449036386856463661301242450337325351646378864812176215082350195349690507221915200778382135622294471781293310700323468880358941713226064715256305809641780670671404882301787342934320626855915477828154925950539875666725661516536831605362070360850143440873958825767917789762968309201038585439665004961809021879631028438228976812612941439007147718990765973122688498548338348614895878144766908423872983684862851651652920830110337051434380573681633459398764874865626797361276074120021603313690083212817671684269193356545771722286662618413743151073468053655497381877127213007847448807492905191006955497164371020382385623467016094852946571067811078123100514931118190284236821014217290536384316862608736480771056787162334815385736538505463750980970783195330116038184594358035187167162289830585020259036081052592132578935977270219706348554037568772359141368783924309217558978530189433235058728849323447880750973233872223175671948570131610001525376280648168688027266210398719843799830980621659288242570122405646547452854794913712758172525694924918416372539285420246267679295972159517991775018634433527509999867003423323294442050243834153431844902881159114247842224584190964142994119023568797929654161945483768485570002804196564084222399691783965486664059934231623692686167084515095872338304101307841712784315596409895951900511516864207377198027601595691569425996623890067680447044156802371448603377217249704363194680484222462584943241121354614363266063989293752362051005406515374231969886223130510735828490002326436286824323924406160717386643307431820873323180592297816037255056082877005710262985645008430595195850925450657538109581301528005723518869983321662072994321801351100173710838022669209610112743038545544472030606105049026968795749548100501893256896442262160813986855321209978407197322392601968032584365804860908607937594185580634408697332451098721850581440303194387476232970253820636850360050545750796586726135151041532960958554038497116542437256427474389045105625518047162265189732690556875468235158850762966665557844248670719662305220968212068381582991779062460074530147276111368717891594587392435660383523535907786987566733196202215463481519481787748675103690063603285960200887226472502221080898899662656013502183623290471998189748880946377513730554376528839068843727457578186896445819685057765585007787403280677321963530655349566798716964723979711448720539829828419710339834296655536358407922099765742017344185485648267720727747824487584475361690720469219153910379015917940430917225210867217707781392010149728609238632612105982955035849862429187181426900607364529563162994200491439613473542020842517063211993033475739964872235731125537680188515161004096977237821719194627132855712277953348847013535946112997263472112302279306384102747719095526584344149053777518404629678770520932073043455545487682177512943063843106628122266424408152111967868149726094897569364426743733999899869254923819840137653246829972634952367328818931136070201510682805941757102483779269292162677180435871790178314940479237664640060997721511480000851091501356329832948343262619417498592801290921901510483350398432711286348214775819062236584798578991841292405135657512136439756860074605891453196517995300170498967207404653802340573482979984953311917358976077382094370822383806064504906909888814984028798452181035415121981968422557434333327387640636961134850487294897233694834823997675399104529531819339962350503632982959161929091432920796515428010600736959837842825235590751710242258389026717279453554104916251471078212519252109681269180163535875600798412579180660901794201986796849110695112862544913650258258345183612535241648193993307480797092413412915802849124833918734099485404054233940633219590900796348960590633604092782664403898301010552018660451141448856851983421305288547033382396084274540985101677855889424033933958964530616439585729570077741938967354584730556883203435848458404146408246905799672190467507491665084677458911701397376974894482809897580491476667086106806473871018098594623696335267790814781723250732424720341273892090559118726440385251173481043776583692653788426657413822511876840978247425554998987924063265928669041709354754541632076025392061896845196416354029725969037269611784108335646783987047045409699407194349178739196445294445070995493595529751198274502494125630184903296356393099450004962959120702386332424771925114923825352511751741528357257790005792024464239059059956873597634816817028854243456573255792214601565519076659170104729848784001603332717915586478334559618398401547469136052560543206967970392216508179906015028270513171742798035942811673896002499910703367625189811799691931882347677166234107944814985635037462374020229442683313375643938685841301074410970106717857444886965270526738412050248768907877956115621734941226987947481017602989661279365305985143645447939311530874768285083511868251628270387412033201354605748909088916803045188767935197620807209046212300421707763225215487826235252295494344544068689441093145655778005096806747511528183566645366646744966360780911283436721193586988836887564515079128569319323319569170524173970034602415498222972708980554494966052033486076200032805516254617472905417172338065395271642126910855033909737857795720066017803061721580099735559264568843502324487846385413840961081265637468020621698827850814125758838934083092779119217042313176896039693663624021882472985487176591497078942464298171897195012045449636165862465219803020961393048454429528145524717963986418698865739337387592830844353051897433707416799992708566220706588599259741655251731528924724252136475335389629798670773616097261339090298716796660263310613989962069860784791813423278744582947967406336958562008988140291202621176830074735588466002951435551736122129873510888154150700366464755383135024400752507635857202683148247874205798191999195913711668807685977807905937796882703002417751235872266175201754294252722519935867755706522605388620500108851335728003411891426016984136236773328184370350690379939736481896005474026550085025216926766261374530668136759427813561703132435093914161834244025055986999721684253630041655483879204819030475524274934364757236509155086932092506422228316408661286876534103792841703349495184567924462515568616643135690368931339555809144343935072253919779664849727998970476232213538960998640344895265269919487071023668411348710341549404119328308263116824319889728091412296173553803067517304294082236095449147052132964383333046027987287044139496824315438854348281101930585137475830861725204004703886844515139415564772932248821158235002148919262434821951264405762397437557025910979958796041917424930236676231277385440368923948765966994082573707181892703429363465313976664699393217174148275733544070321305662399706922104131617143371798914174793964463307671896215375135891275084170663088457876169270704448302399141395489641763890116981658323048037191241495930842670078247825421247920835367045144488140724416002627022008418907132555987672404456363262939342730046968675683373293937191543816760764739380762288686408938012152973220737729892565374509972724532541188974297405416918607822266803276428263020983694705858735077510845201504679738064648414162495777953356768201577694175660061135591898297649553761726485637501114569307881520543344343974798527444449234302185805272798700368591574295998500755424921563667350537124375670279793582224050987740002162436908034661045213182980065260758214237504104607281731881703166482886394175968211735825640305737904038414526507794061847711440672486160836428841787222105929886381098937445916610175234880061252368255782498057575153017198947356645064761553703849231973564314505296154881924134888788696253994126638724307040861258082150227341971863872578201216823433596795492730139173288684575899181642936469358683007414617602998879441651000857938755348003381775780620599523910252327945116114435801386796150285170032414178176994798668490686588109084322099729364718886205785951045542874674691409409951406632599863492993695051434586356897734758798082104190254746419292904493029614468961343350526936029625487402239575574789021071595980428491407136868748515394682244022053046337549074070515180930187789734314797345544882580323161335087288525068364056536192141731702816320020863933664870579655340916789559197928636042252044537888061492125144758596482358010016059147861244551203639593004603101398368918764015239042737724982518170870913923709898910953548590868133366075645262839758777195773279055045303162608455690717954017454824104112147272167121875167197447989051857130004812345630698813874478979590618185154036494441442788587980750809307423083356120586569542666412888984542422476016275430875219010695267657764341791381521274207760849267424783678771592787340919558854722365383783745572634260189327053979886586499735646723700475174199283948564198767958109218333399590093684248774182837229690058691771906661593607959230262943239921665964226550301797543037812375547984625686977923918783019571504105563626713083048090550553804616616011814556569880564436969653319460686222802855029652887498834022693603683189985010268218481457039897773615853160093334890357871393234107379692277544349779309906443528487560380171426871785958630314700419506371638984451602430602945056567006842329581152213963567374764981803863430892399850157776573201574600339390024683139132878917922758203862710992549228127540648512316523969898468810052442905595446636307627912122858235335590512726677670084098588859611088346671699277683211593820217753122092486051579100680681865290216979897706508520325673863882574916615745519856358363853709577358141542645695727998001102493031359779471236021149070472640039688627402305830619531547555872169183083338415654480691137785675309444864516641643380768160112714388050698575493340622920947821692510102166985299270548516862721580679796469408427824880190988943052094095829352732163154876289704186677563483664834923061652295658651990243718244875042198944366505477736785651345772034089450227257729695179913348545206866762263943890834063980130602705260397718998006517163610683830374927408442823265264451338588486690365036567178899536064680710668503912076080614895207416372317278755577395529809914737131694822916068444746844867259402314950545535786106589398478139360710158633924874769108244023385939414457765050072460624014922740490270436944486857722443027317211183464530336451656267990911291499615981042841867257214422215788472040909193869771918645946756620362545157943277020876076334215162399208477037109943389095493481188389130203048777582190619294397881200604706563525487690813580470530177063901387501673018692811156105498210602258883483322426638304715231463114849904569884627656151416562685152925147559528142694398811630771904569940126159705861176713684010878378839926800294541219518851561764462063916844722857859905996359775795129617453130951638761198951413586740858134736003861831172183196744211970602651404340133526465896616161043120920037257350002583643335434226027800544542347140812698026977426713184827384255678840328111819539205166156008031182102990980789641228971196700131746129045418512007020918311543034185944725059864967404121622501716127159710558501872384402142241082355072049057073467268374829957574435318367197996410911689475468510741647706076921578713888242532155121288427347900905429922523952227665206988382496856903583687235286349984182560277446503596544764021021490721819150681446015245565904882996298884430147584652735314164677665376386326908907676857831930406958465352284903138845132508321385680931819320491933820523586027170500462715144892866797469655886038960760522221026660766545965321786219956401840461060776509569004833454617999856517378571676835438612738446611082794351030038821938855929551640453721566420519335055372667861399146095298159670646695223736454699587095099134974037215740233856143343562974213923965134906624206999241240621049866113501595138774649060236695435130644592140038405192941697698293006895576875586824301085009645922496006469099129033544437979387157241190125541924295685431512132033676185707595047437114500640506935929919503038313079940960001039550874427938459719483035335888291799251662427670724823701202570055012635236586162148297384213595144378701414468439137246449870863738259667939114168415328912328984407467652882234300024210360125846650430747712718055851431644740817844335529421720727904612954769680373865862506075731679791109653948950446031808208734272253935151055421025243289074462736222219807735175215560029672889771739910204615178928392755144918026077389907754771384257894376188960812493651069229480327319317656194380933745819798494813347473615376530438214981081216758569076641413453615390065173536859853249860016770768749264411131904421694294925181133133234443721482525226996002263024054052337064880105585520889069355133432681335767201299609066669373076679165628014114176360079375224287276375419328045159731776732795475331092079682735963409914187860608241236947583114293763205983727252261209444319216167290079923321371101344534171634635898707639014383254530752593789372862552155094399605453424725458543787264570819536686452394193717365043668827884164227112261602310421299175894437644750457312875326895306043827651527630840585068112400267684791138374218310942315549858771482574879487270917362939230603237810085528339932233901036381805062678621328471405555329154441821842963877350962364641843574356034361863538453947364169701508228040291147378873925432533343374861597038998451196505030184348660559201190731499106000810486616166770483574448863632294319440644798878899043260485301588689377592533330087412978188494235506536513925563760699436745487604558487718506155907092283123573245703015921667835775147278602019469649287033012320868268574845220188905460568611695384028813294288863428256233476211921395605250092775141544865430545405447109606045773610455957371508195651511616477086339618351922416853205244059089561188749369023942127141283194683549695688696574965450967243670287775238335930589214622869300557087985015523446395807066174873732234188905346873715565324448599152903980905276533026757572454890914836227294668843836419076842708729132663176915978583391808617100130987068715271603971646285440316978729441462358870481755194155661316344898495354474467519742774120761342420856426720287224174345549028442722176281451618348315978048101507843095035367719213757627515218974541283058221353104465277805515149940058738036166895858735510744804863902286531360086804622576177203474665805573939278937316549210023818934388838141925268637545594437897201741535362928994560182765661651079506385669253931158604307536545624547201266533624094439108935567023001806529080328510979967452740734726537857156962216435193755245200278432666419969396772549885435039575473117618294099592661446213129398607020391647540165366211574012383861138436918724368713325408946006567860332385271750793113483277137285961805015982863244645894643698947798088656586014460708260681556802575669973614677657571061854335905127321748755728417053856625807911941366294334072283923463373673355334597687219084302598416262502895124464211711983686419733175511204047641998364153760481956989419443014295874185949023703493838718634799328063745508281178016542749964699243766400468768137175732907275979325005976232724753375321836353221843362323151371280001869497304377383272176618406479935229121826439047141422889339233268319494941041964009187358341539392087269073825763042721614496214061297076273148698729935494366698561946905655957122216258567966834849791547974548169075931914702345259430119110775111287881311318612680481986500050234296759521143849089411276857658131057216448353487999431866377837007496396178225589187093975915102017784012926466451039967834680802418564644692943187317365015781215305828519594336336965188244732008140279861415516515738916420871889835828466854007095514630632695943829295293924891181690166961491564916702525511308227990735526668777937588464146501041105634728859884536938441767398631771987622678575517335338060517559594826156609069020733647810612546981143663522630735900679821076281417889251904492217627409961534382116523908189048548379277888495208292403180435409038725687953354408457383559581588384451987376690040476690949567534309036752262687961432540435055386709563798599441183887240767302161158885135792506042905851603963553957767645082509593048375353297986882299723726329002110577296727080168892593820001099517882828282734429960033685726163717482907137404734796996964581265588583567409860964592648863125039544362322198780339954548082357077054241109955645330947673348675945636568677058831309904056523819724059178344107699446408256785723315882014983397668783062331065325516350980559590072496041558119298225112739225025249975810671239536632176212928231272845071980905427742912949889122381273768261023500460812730856202533459068156785222219746708947963851607220609910165045155698012604910884796990831236470930034183814832369932630627524183429768486440952203820697186068608807080990516271126647948260730936648054209740798281366751092741637766530392975097404106389704811242414935573155489320857228633419959774292536631020208729731758713923893551593811824141649898907991382343848789069568159768928522308999379251916017151217088293817357082744783021768085057430888811474520536289405929405424401185061264268427525094851064575064207853501656089420521811186587284149910605369769615251642486956702103232990294619289028041951806970694675509125290533753146456278051385075859282214909134014378935585460909551892624684615051621069029837914468508940968943615985766659631913328368743036642165361465297423125497713687145403361933667748010859789058365321400159623510116999497569146895188541739230096031014288057914339174714298489976111121469977152912430732543581934585122872031413490242766294070773608929899993137961650903364940977964605362164167685338731476389594023505993534436622314226974256839916917741302335739330540851431740024509503791326222754900264314386073324506905374786358194855676150248086182569918712261088195235728452624182283876299218026186103619148366830116856257853332337806684617903357137497050068071272437670595656234135111734885597819933773255398652679188453223675825708014566131947130709718317665634722673105131982152706487462236489590409424552335025600548814085661062664570574496005232209226916080057094553536004580507910526096093622069965621807928699992765618154855884159399845703066119261555273002185075740273139854773235208080977614186732102550632458182194584788868748351298585715232473236508722457195194106574680066009641204598161460615224047474740207936903711739048861736984251874391988635692177923538254961563950116471939539627293110599957530947515652817067159506600430606935647068282670062684541454160778285343465288018039849610629811105378585405433313293963464463793720835615308156161508172013760506671351019540352117300992232266749435717984555786650192243296301787487602353948585931132467424826835619815507345774805885248578316506197021401500375997257571242394843895933970081275802661433184426573118779475832258515430537107048477830275891978973425387801409135983621451259689637802515172859144301674578398656134944115436111661096331955752040485884356107313286888142103487555701744261955245099959453067349512880576672809614640675188059186785073443419252474631109083111418487566311286511450893061323586783850671509662953805239815767353232288100635824165688507463729566437718651290842381915209146893080322170611764246852097022969915875673254270627285869753311233927636172192681968532557440575480324697682358101919341820502624464842168599594972539660545445821759448785874561744775574186976256304095021793137433732870807103647176260016943087095769759422003240256957364632935633081236574540923598320227907716602789653510954851061249999459526867227881726401080828273703558552457703131850418063667721570930558090647451424034827074655048540510834629523683682817079061524719388127196828103662305234579979097795129491822270149178714694144626169097831953518592223414789648632922660244534744712452710170354849748968629395929521960682414173121044158097510144939805045682639606911015243074909568315355820392780174420393979741468145976776461800169788437205217839137329924693066131548569591818409813534984977332096062968241005870403806111459362340784600453035318505252267333495144001995209932553384757183957663885385439438769003369153724226000055502232202200759494477749754877432451948537561723116412808521444008286974561982085106152266325904280090641910513557522879941190439452051485988360210559743900814026030287661273451436816384880804205360620251970447183683885823251799267865249132314314493935294007124669687401864943203265331043546646666259689380562156542793232266494720010169355462928601966211026534144848426521078783086666993155651976556568997180421432733545672598422766587098249910889040250947186237827192893491450669043844448436316741848911038138556629331373321396116496374631330620995080338802870835617023586057655856763406632181353702820306197484412416826106084655523007196024605112471339066428004099796142455325999586116444586210237539877824266424464534321018438888991371705412128451582272250001967283540623899634924808011519023283062199457512656704706394033632877057617392634786283230044588917384520848393244999754751921103056122360386293804427788603147762396857421891290134693930192332338885946507903295366225121517512046840087154614827440139358774603760748698506882347961772629618681396818971780937636911232741756212234117149392744395791161536722481193772564450302032112442604875489161659292852881163587086182028172780766721504781199190793737673114437652269726271369742374784009709367331452760570155348180900550874903850313105303031057400714003040142475998928670300516067317541949289170645276056834227002419410787736206887460517060732989434052697738223208073831491404372666725000846905784859220336810566260177444157614601818880902382595481405004679231583205261924773745249926808294257669000812825107056197027677871236488084314688375863069133925423779924167626768826925727931661994138711788633549475517457402579844909642271063668001146572508408061085238999375252570056705741999803153708486127112301738888979299290545542941318825448079705310869811031899779451293150180200932834217246185526464793193161908749712036302668276728710605401174401636782197282306185211362733247683726762435840375703422294047170756628527058086147174964706080252890498814410180339051031898579153296384044740148128737651983197363889022693052489971297573692640243683093596337975812161118084379731534512850869274703429273370578062438487571528668703533675562113002312683759303653443211475904199632908146855948678259348843296524780874924135804417103161630950802778973327338444704447397267641066169635989413884219790974304732299350702923148630396572255943811667474350981613317188123997228416892841113443951752667471759779160758328158884413786584333683581439899869361485546139064300699913721639790392729876816964977676340565157932095575997403782717937781189679472946733385592725842144577737286826693810765296062972049101424137627468125401081076590793241168780964968851721764991452656856847298345908989267229159861848017646644903334728081712350086658615921325206035023043469999922667606037021090164487520466144041288129170504045421926398390406118755706025305527772925663034552794459171655702216267247435585689558712732002849038803253839769104660456842407350678782400177896311801204957028982374214640175247800152143064722351352708235588041889059344586061011872709681984852388469741870584645674426042355072721313770129943618534786210044146693291520824584543322926589247635123860733753932676202390379563100181854607711235069163273789675211334266154034496234817683688905911481437990094092243165827391770260151900274607201766551756908208851936637729853143568609550738004943057802302917244672896898163300368266182216849876620227735972671398856032013707071495348910911319858651815696694410252562334100061726486851920661349942704768645785060624320769156839272953509931989090836478458043163669488999141606271474946882050383047932235804235059981201894267704853394543569255063078341666565367488423932340719585348356210666542816514430574927441555123260465195099211225762854808837689977468380017181119829104778450979252191191203545858471399705394818835198828605728818337602659631093195532209269208692328316580482144953188740554816661669922217032179273390582052695478704087136685587618488671736111075921133478957254540308603632505273473661733976184383984175625080072585398553911201647625527830810091072590183558514005344428845596491287441970643512472243578817353353404955479263759121840142500732816440023737223449083436344961196173000723441344919943306637465860704667503464135921061300202565501925094405172573353300908775815798897716649688471449472350442939838326541880868756556711936164099548105854835703385053158818486680605987659995954556123255441863743903081610171490447109571336237432610586090148185888933302625492664774980564011943619729855974612306116774087505825782552565910601987049103647906188220869190398063382063177704553497166278132350426857248910412598439470671763197748656029754982773165079623804446199035440649866047594574954103015646107799909534533515658953057803570696858466620951574444939540186246918385240251347859148443526269949745740590308764667531995492716978685767472757430377142124503629603756995288306475731591203031026317101515692084296887931919655792240522294113265231014260059632105597705710695113321526683763861123432685276980444012144764632244761750736106041392307284768648492709261300293547781041814676199747440707773747258698918816356401362732830863757850427736896248579934434042436808428906210928772680167742335425279341187073632853212688168397287049942628939889469466485769634499845226278863922054101472446014810741051172956727482940843887486526393721190558541197607267861145724956025654171662670743403340283576028274167103442900654627931208192371677124051961354337661432754578465556330701016150249322801530998162333220212064591499980213919376108788772554791396890164231621090338391383237052722232227043607477706504945283374546946009232231310449899381652182283930988605847537064233376810371769185073953024201130454118310484014593915012780988636312275339493857704010865502158768330288382470268024241279311226666955120661337968677391835596183138972493391241965466029446614418899647606738756326164336054133451268556515692597891303843124449479018558024438348851886420000961962185485006511129458334913887468620632918936497725448999125798929722355251139150563639114766891728131143175078582627298255301205012040238480001360047172465110663361670630155632931495159631731360654978507161281833548450722358267149181882036192637693144872633392997584477425877679418889219085585459913733344533187668571934496546765851318884542464342086284091928043832008013273957464106354500432462459398774866449061100904017074971426630869559118557765568231474060469515569003182544550784929470207248463807964023964417851461386422693658580237287491729400524136228604240875399497803024986250139433741542461692077564903571419867979061549494380496964814038548974605106735532406155770392469702053682576134728087248364349267703979783254912752357637883803582466789802782557006141799714422170172544116534930345986788294215555678731472924087726090946440138959555111819228822093716734341965668654583628748706691654860967259699072236336690711677308457872007021832394991622618309858795410410511112427727330005063803347891835456438664782521963092674945036328581100505151333133456145851863462101341487764567226823357739294285362768839345982965357956614258911198962629918151488887424101173098622423174680459091085349657455368260751729562164488883560585802743700901268747088300639680376771832475634401927382341151068554478050233369926692291960335247878846021376183476179814259418789844093519499308879451079870417807554480067874721163983242965173684930560434520068430243293849406312213514882933931732392905833362483327063569300596465845204779558517600922852071172524205516375505496537404034260595079497500283104020556911358819333774932728831753246581464027965078197131138701724341274287574725273344792070238326976361436572735599787969323968714666286961328257178093619825623226341183969912359931385333784778108679243807593264799762656502121601234142046365559824593512770316361301563913232590628036024159031628224509802029793949666285144613828475993646949043523207481795193662610039611759205381655404954015742638982359453173925292111587499905945912860757702822779313518982671456950115881019464480211882606679874344829011347125934950670424280258652952842501519631154287099511868266198125558120450561389593441209379243917242699305678888084843007010421610686653926907554303904899458658119198505101175571193958111963390154701060494120951139050947841252114658146245324337083434399475583346814059660781002019604600113800534445227034446926685511891717380458269390939562133063005794773987346636348805087661448773734120791693515817124484246500188386753574210502824003223153732012799415596044674616799766243163947797996515862209998096302660557135999402860430675018618689109790170817041446522319264994000791135966211466628471964757780007794470419818113002200120757865377757409184689708759118182398728880905983583565596741633398911312076378609294836003688905039188716423943898674281637418334429402604465772638851840371233693750961748385813991157392584455893873695120931805285835470056870846975375093623635246618644727282967827342221486443272013397094637677921561880490108498742818677666918896591583569151102854631674002597391676419474938280832877013740322787466828911934545913388196148239744542807332125557564169757160605479739955009035442041482054149376699572486331756880874603352259529915540426701837846836503788282951836546281349066894456044565209042892130185170699872560547692766938561786689359027018511554968772656156632270746417080804397980854852119942985384566229032164027171147097683312653356339839257901694405453452772327488634645021702827545748705002687365141952435808974833339327431370595943135494360027219034104611188510730365702683555965141593355634968177913445818508652594809643665891339589163121961924977555242838329928023745700987413176647416040303482091700062715994308504362388847494180127427205610136293452465245629989094735042720605209424384629098242206912726515095711529452076531229017611064353837782579199060196339017841695961560650015948991189595716230878760561425396119474857045311130530299607862761544389620701106916299851502462903467295018436125714140717828855222359926050161509093316850019010878537645464277309174009288927700995230953641161846887657129143667002209063965315026451261062872964428843654377780192476227216618785167286172151693283446700930629862260934636908787298519576768109344508084858453297296384573540073479099730134006542158759537482420049444785221537319927949711708983573505674090571035998127662568477978690772778386596274574350458582294789555445488964704232524053350574213183511607604503537852171717411519838956830653429473032042386232947646043673493165505591141130991283607155742308943409337284363251011343543973447491274216146958557173001960876021714558381590228645576312541659598603819301013323950153179860244847069143814046236040627995169592745888448874722071637808792812528373046860627641445468926860132164834677179725596994105103948600644484643368531748190881633730500955922544547914423424709692124324658507450152326333490553031900319632447580919303276784872637865206557681683267675700966712867097690027264856165689128811562471362695530702312784237988588616792586882449343393436554371377742064139939187581011626057442511386801200712086484464580962253194586021971263697035280461617953969406362474218442597444190733075882133789958473111238143993991394802600605759429517156507666479381170765840674565987299402121214806810894169197237104575868208021765661747899094468424510492020184758084205880478810274999874361124376885039380380361501538340543713461289726621453567710743505913670926646430854438599445440031257677509696305407047664947390419365481714450653190877330993852182217845838243212732206133364458668189311328259033897883467437533851672253609950552973659677113615931901488519556889114122910978198411845740154625128822575831582052492695016749642053896444173536447840989290804431976157406509407560261658574017238390650149167224242595802413446789873906282895755201112775584178427658019959338110264396654013294834864064825348638134786931589546382263990505914942456599719805114647998124284860521806164034801580194549323932150518038836874129009514539984059941715502511283925802439623104314040886067093519251243405772955369927922291101898094401130492011207094771930543226078797789105059990656536629787292679276283007253907195648988563452864761075911637129883654480773356296344739058789683295940454219779106368852006923487975772477180101128470552195713444403189880094462931706759830885204531308363015836889502037645090302331973676719355151704967420514936905512660198816593159913474437432658075539865968415575863486637002584997200447697309514775253109207176077595722493899961332896746158309076640058148699470108608500512185638509584952582992558277949244387406700593395137295111000498730982634852203061479492376191907532749029098374625235097749272168732203890959321619242177829392059334749110753429204418772771570850685562200326775741158508004171324914502719643332004119687620494047449541168954639193186681928388014325100991082989577384520514128514647665159457709409680662533555099184726321984586144138177160471145201732392098703765778356260014737997585407399687350735640962163339721353804754490800061726348926550240735452024414577407551872703785496677579989419591059970541308084909467641932028042483627787802500268928923831434466684148785005172211335545521024178782388102503588511635160538787730341318219275789658755282144910178238784002457026549561513721186603590402556818465275276386410857756145134427763160259040438266892343389562966277341963370811494633304893610247760391043621149187915528415225554471887868882892134311366444956142916842558707866508743747793735252667923552247763473742827547117340656531176073891444353432127590024834242025833850238754794562631305851694156472133244958340078341933714659561559695950010687207834025648830657259983651952403836898098773040825125664739777983537326829890221212003132465512844735484396437702844013800493102074393702566142553411020136782766373448385589389311014733799820975128515638356231574378051857244819897956777237603469230722486686919112107504104502985744918330805100601546413540466996611314311043404094980832571701047470784544661486157840878597162963557633934637727276359287684838743002996841434698983918930091415228596000030053520817961309144111462974073110436454456733414855749932952252885680498809099509676778467902729673270634523666755520553227403150069962185692150782221122065228131313219749723163892663421625142865719294167467246790690882572071969497165763962841304203303762930093600646161696448445529705974148625849851267519861563655249339590791926485470653498528046648985644111281822057910770399263529224360645327370293947656594925218710778079534806829216384000391295623790896323240973896579040748583490023379325091977881878760403980019641094126292257953542631859658679807175631534722525785960814749679495701609987395132743115391874636875507321083385002479006351273319624958440961514860679236951122064658279660263161037942867107019970800751140095156582380308498370619406066504998129451910577005763797154026341955316782386826956265083598375023671419294690427503901201858347426723530692363984473386367014030778752658344452799425999415569121087927358921860435207443019711842210975841090405493553555925613709200405871296580833934576887534811028107012613428130268314088735209154895186840947012690270800528779276845392474315643845005382330307984768383018108963529492100191797537497785564584117919149281404927848197746725106416065546744434066494551059499492215059416736633385981727566550450009949981737415591125001228117775013202414100049594284864280086669261871526629015556903481466071938624066274808017940631661187860337693329007001456690454380130151792890870047458803170679979134217992856907194144482604487257382679353224178817611232199717073456843343312964957171646834098302510278021802983777277526838425962933567724482808844448852993236111691929692095713857534877921118385025166008432232898738233021576037638014172633194295562946173275755896147196634120126056349403859447150649274058438083639518643856584608590412444008838936413126125513476601571394753331789531521898401206037501120349435114681254546334510399656099998537174630676774012408964458563411831954800184322981902562521294047238660793838554192525794522289330966018630203663940846362375042092408423245237142939057255739780561718411134443951415752902921216978337723953834682517586681471235471058179805490946794297205898074729666970032255398060945805913726358775857136546586374303317710029455985890873406781557646431374069717562973710770078881087062003147755845246291177350662182579349838337648848661734270252775206460878237300697506846167779963884434053733478171797333760763759788072166940877100968504863795803223909829578849908177492294714603922664902521520100687264948642512931012923514812269751205364294338154139017447884447083558646518816062794776974120452378177101535882295795634377995219087002138308976166705028089195485477065784031958633444403055973007883949597667168641054780490964991611534552796418496641973821951526823441891123136630228851120451088538447310285493892034866863762379320656001599106892399831296896994432824582373667617982716942519768999285701092501260060263163426195938316553214222785900267540245365077563686762884813265615328355273492539169539406270997602179170554552975992628502621413198398343112427469687623268978990418886205480652032045702785040886375809593700392575857420899935468195959447035937166378770052714292344001486047680198310619930871628727406863273735683120947768268769433194089619660821784294915512721537474300058172206159651991800868111242786153815845181598660809468035084622360583778286941146389994369455776421085933517506350265191149126246159376253281325682041872791618714145737107633031132270419813756693840780097415079160705154177367114161009378993814650124669984080203752825341672406563008527000209278638642323072416915450709611943444904524508323105717834916793801496820180954075766444659492305344584216166611102586289662809028721507545537357839916072862925410076276684548127226299862557840587212808374707052874216568268987407457782143027865243125079668836095162209074426687709008725647695237507518792455485093821360266809049260399628658475139211450869190837351634714300185706853012088644003594833263568088959818030282590009537736844209448909821707750907849651124196830838093664531880711300263781616558068842619215850072810262302409106653636203192686738090416772961994515159247644185608563775542023189519623861574698096885213279332483613381205252226429316740896510556991966459890312829942868483115612269726646765350018931510337923290775340524637604606330098206968105811798179502467480149263196381151758263250069964365349784007418644681569154571429613922018647423769220223513697914433177551575182505161094968278129147332290188548704332902269252551958105269939746671324583743839284822069992009361073325542119729896003600922162335732546389981255657876377566786997695880018505156378626040757809423100237425590177226729693745566369417129055171033958959481105245035074331400109113887044507880450655248073541904894903963524375356715914394208778910343976225428700733665565065561307962829475927365072006223970157450502363452052953054224177869792772581680443731754079214977377191787801674674744603313035296329273027495605904968145893120455909568997071458253520123705975858985420393034428553047808033287190446412512686962605549481585120225749703843473651445958401381411526587788842885095891298513303867696355104956364810927490793459179439330102023796953145570143004760837541579143041277100858797726906354681112986651363206229859548922906447828882371801866912125249615100032997815791512254354070719084304160503610858631387381496829860177167913445541381369595506247423206933671871521549423566041305363379515898066242934187220639748619679309653951276834461617930706758886287012883255043542481549411496359003723578124855374365612275997291491588195281755817297594455342727396629205865884576148375240420097285205908079816759344653847061393907116294733859779297643475825895032458461902682416510876141330501722715157998902108311151895374927494096057943942033173095287728925829932253144054451897979627334550672331268169615906324416766016902130493047535934222014701715346973271218870878274111854397897102731639716248539995650844791328855304628533854563395688803234728009236956451804054728310393522423919492131246963317127119021671221000777041284412127631590735126769653240024158435889325835399339335633246310355282836633991647935684053092292399635395987974269296220136009535446712558306745993270325437993805526005025703789107735462618331569876940208551765262452932274299078449745626352592056213301627644072327859935190267677013914746034237192779244853487107671701477200477156008162850808706675061158911913835941850269733626018350239355917549263408526550397780837731336970397423361622657802450239466757348534122689023106664929884047468294204497512832414815253752421079200846042488588609120524834222144406525478400516584282627307127557654908825019164503365270413689158317512059718049761303986900749540005108033575413704948602336350014052597767945362166498226101080198986929100203717497929579455784636430478009332076189812051088677182739581856518534233427579213774932559142144782763276298870577355969949340909026062674057729910238808007501994919729783628524907470900760122482093266443065747640086481245465866555322856073159018487295369174188647116269945147506395723300225636586523372286539945592618622298492871889651562485395718015725542111221070197045368213017901173845189023730941645596683974280639098371200872589563744346566397350424952969961994412777594223577615034491948928940008600339853901888748343842952468420854875381567865195285184851077068124321572860680578199817291468249243865614800191526902863016896879668144967110253889690407176469589892185422012618645156354349163366933919904040453289820899636319625128981417536275278699901793228965364586324378412752284713946498937675242638499291543212670084734059012289795788102852498683925774324850572319527685043038517405050581433580613313654018395720323618433618450840322523234874553256600249270722053969230218469600824349985878807029377625017017150577070652824686130029214267837555307913547911033003813099748161061091944111123995074139804193333903496747325040629940789676975672891606299547367064860534517357595695292777876170846014931160356139987627096534344628466922405126535636887318845428326207647804070752442721744731675823813017999708167983643916674075986627226755435209779717609193184641078590269151151694196609924939507800721520024308447701860024172084879024175664168617170698435393354776499656121069534806691287172294796390155666854504903522544715946597963914532396206754780104035834756520202732059004027443537472954170486731658812407983467343146415722303308249954604490167493470469382745575575503026233308567144033063996244348573355574837665194402424521322525033070889497614681335050347510995338117291363425799731946120604424061896553014884627648465226618145625130430661735964435386443308944349555561641705204173859974024295693370399924569709208119582299635183363226210535101250419052088645180419838155992878754505015252916468948947508997744819512975924098468289088132388588120588689557162145396706992308589808514055574297190455069100104372766109153921271552848135608414096587866956247911921728201632700195144327208664794234483205475199277912013966569426768632800576114303853116994019625283238081005197503265364379512238555552638668707261302271689293223966507973226216813141979502223717264621024183044320603032798794960316774603542936403426729111828243282888031032206119856723208961903339974907434647493550668782189306911596090950571305622064911067430292571357079687287446682928928905007297370347960369082947098781357824641064690049880874374280723252056966439625024244853176623364423282762135967382052308019589488485534817913319835791548371478549058217675227171569652803857427323754424925758367491900250435374350097158334527466016516698719939289828983063658349750532185446301788121002408653002748085918643736763152144484857608876188989543821423356011410013985937435039115623263743118692152177522140794638486503630535358124164129057910613586665952071142801703189287966873074283221167239137621125408857027018650899971101173884022972611049089705028390331388025300682276402594140407848342408614633381992062648938749648664153200019007271575771102860297397468983936512647328423717647817612800161509184226443072364507316715325182010449628558835485474997858959539181203269254178672881528821489622969693966301472163459949134155949955040262509185940268001943699392613365786500256585021847338217353303250988226454429372924786421491369450756573937527010165715362085233752308434614769729457578545114401717863977074850893211215427074590415565528254127628318704602321282870940684426549270746189938053213675336482770481150523071697378214412804877120058103994773525203845997045699855755703821512488689147538745622292433055416959973373690376218830471798139715411551844830343509484662529572054174192485513745085366382696694662647124998624753827051792277746995520459864046898814989033026516133145232858340742810802442675966037449191355081697705688904104948299375573112926418414822817779108301787730800551174707429167350607165023574594397792231630424151941381016719473065730527544324915068092867935391300657787572440856367845281152623691981009644256551574070821027966358616864381065990083825961828905064334801471763720213468293908263169812462732796430615577199737611268806073602508046372214151579250743441888311855316592321157765299635107547889797065790290420603148284344991030152561225967854623030798384590507198901782690280934971522696763263832251573639170806204492767032254557122683228440870038446275300839861891589054945747530455005934313854456114769522323781537455214906968903068059147794732332199192195981981689705181377845735003040197232734634954630336117529203236582498482545943482925119512887924304046572521855712001769663172700093216350725251067568683998781565961344273737200903776758489133757829359923040797877121050676632336444733804161999455824511341817988792693277566904584550842390684187674331796702859770319798732782826407858227556559909409018673477661367369802775991589255785167473545660205853064167784455459191812224472375977569215037862911425308108260623625145819864696124334783116451408162082953599207932009509968889981466385535982315196836948778628072153318152014124705037480246583900338406887778706712997990900676139087748587193936497777110520820384422312237253680822546968110303372047531652707548494368255662276234042927149493712282659216052446185294441473267409938803636213062129774268731339386628859147297431624754135603309895818019864225651886681477646033723369082419696245961117067583462489052818763127632364655575271263675741605632896610842186576466911155142477899147929618307634565588153304632103860467146446423868226075999035955939434022263804369772228860005243404373544165439360716248089771809947103231347961325061406267985452051445086682078867194891993685002903093015479773686374465665839567039978611647491869845947870576502438643701854277860015238075096480483453043898670330225983659255554143543561667683955974678931886197562499842446379685665967107345496628341940561678052515932890771155736256960910976419720501813600656779090344097789324086656114410600307229522138923690074734607174688348396960877212717893597610792251829217276398271175387683376852960362922480159050816453473112691941867000103065537227996082178632054922929203994257436753074607324108741510855672242716110381177591585765990095671964863140171217775194094039771220042056074074830711334467042313106509393608739927213959497266882526236813121188375126214532311612537401318608760553917181469932844309724440210634630604521719049226900613885662587439123366447213576477773569012230151089490171969895080290471214034889761583470628017794916734727166851802691112867861609378274749989207685893647913174063643849148293194798703443513328349597457725367206046296282680077080322356463506123363719113102415695882798195378744643329314079974617528685184000925286332896455257015823749887976370727080239933212232492121729370266192937018629517192138487642636199523346949801202012197900304113447978542158317778106869332515034441511317691157122743864727490152829746681431355089869517083385408516439809509335275462133204365841359165567388538833065843093479173588765805567103353612478392059578681842871274178121026832111967558581122923793258288780273375131154961975447735050048555594191289200682733367378546169444250123783610243043158054287494282468895058830678391096086839551222945570664888503459998171044982725995466720558202944513583191845575581089638362655334698345370630983298533975597830797253094241650235012605655724488385980668526178281837143004620242696469542963479557786412729330226820607355286654561393531497408840380960018015365399694619924035578225016960281929539093526108348378957520679896874108121787564144277849276363797635046839708949819542712227263813900105298168964063365709111089563993643511581428290823378621124181840914246587196697175894497875531296475592546985841334386329720843070242819870808768267836079775479052356637655872658856468902498720424537529637055518639557359658537904115470037063490096697493517449986147127634419503087432611587821708388120941933073667356602642375993192934468381440936094146169117232676945468985893652798824264203108216169526360128391620277794801000676696119282171748847576115384272248028414437980366851962532920987552070696242954514006278461755491185299269980475590095792713798733239789799853374790737983754982744655818474256796895818350221737382829524096728924342411847796292391852536228317141117228158491252153727740131237125992395614859436731113180277676815800262232552903480691287354615637430204327905128844491333588655396153009280659849137899821472039549689306182254621025449505697226935986284492108943706481145711533964597760186092201338504432508080354796010443582702386199362607384021752601712954229060169358569979482696023523948608519231402869949061767895361124227039179079486199766134457590810180139716719488165708409132646093777052381181313583126875408634079357123378948290957663459521437905711182680892152365191010038466734743031013473984522223341979059956623489584204292459412165300914866257899140689892831015157175017133675861450519765032598152062310038085129314035375819055208852229984648134382735429278541057954898267222887725551593531739174447616636955865196413280972655224727139764096024920477087141925998465071079563859909231468928269435138053542599856890589620927412089837887650898128216135156908590044113033702321243766597863159791304281597378372839518265092311310803800660001145407865659886435890174336179238574352432944797473196071004055900078969255044316678868849964973059711714281693945981372175091560621577249417961024998336009539048588155342883372279110596318111774948660567282690030807678921206516932640425287915400925749231900169757309301018185948315815455347803256934105639743509832646290071866691348283487322651800920054025960352823753884445115644706101990332628952380753254242148281958659986466431044186877446387341938018113309686811878672816083941121490290084291934886950854430746491012521587478646924492870481700087780869941627865236909713747950887152012073789796666681244214268332626962562064845269559680516165620477404979962434809879396785801283012603030308109582292473838341070418254844286824166656287644790285826688777240401960365734317176916697866270148546857008467399983253864649203599998368283291801957998638357890553521052451808758359485024512269821700928165549984165175230209331199513563960638654055493079620543680401228483626461422506172006688505523945609771833906024531016019398156064566829117712619527468631150133007972655063990383014044767170939989455404594636353939348822991335959578887195841064320305262757632939064475409362272451426387821668552766783695331030537605867508250488374831378021401660511445787305448094273044635930163119406405210931257827518290818971551432855517800395788544326534516056274931246314245659314032574292438535002613884695095910230083262418337090284639689002854907800923347990735463538804023358746027105482299909662846278057557354599327281391382828030218440509111740801002801399857016046189257816850551848744883952906752593444349491188937387936639089660719168760116931493359603324187973034936901580753902669385984682717218526887284697112188155152125397242988984232436480872013890898213393415433182723479232355994388677112335905841175253935339338882243525596019182048939795750653248105689677296700126863419111317699847174136296380260913118591804092243300766174382129839518618757471199079636432938108728941329285917389177362532808202630600321036901777534296818245136615716013380833245140344175614303928903965272661285569797878216918117862095575238240841571246924575925755571301709456137906369867970648480624481915531129663057773240588368939848521185792666402684286970820963181855191394543260638778430078272273381666591760810729719384159117797858064031630263821240464547957087688791278910131832726345166703806541336458451366975239851302059289596307253907398586478269041334809768116270735904787434345230581744980484855644133268338468321037517731278595932744136433572017473556735318942662811129870935366581372053966549304717754430172467402698877481174160029479832854887355989331798406803151793377295005370287381281721769601947502301322490763348436688574929479490182539622341032389932368249156206581762462769429188638800813581709060970930614776864406366585121257172901088768296970499022844661826056232450160167926007237914756944008755001144538140888555308983337110781995585856457427111949695243986762065938611179596427518744534376961852176671378427313010085144466273987884771278097238496924858225224549526524693911014845550070448823018773118093923565249436731930080968704014497479235835185640148314226721718161247292931524281327701040781543197297061606848284173204037722493684814697104874536160355995543520756904198972143508738737453126208849631192158703520490243233629331039161930992358910476883225228835035374160718876965484566461803116590925213664847088631513221234850398558139363092628634756095347752403288976605973174418825807158630518717527556937342943909935220478360939899797796241777273790043055244350091551644625468722173202945238918815099508394352225377723050523005850366425987279836665228312739442874598838622867647137108422753878417046189050455864291090520152741447370151488270836244890503927618910638780508187693582444891380040433516946081496628027953469940614093774577934164026227527026805841397143293029204962618054883769286653106197062535943328358171717814747941626404799112735117120939652784967567970282157630971782332046486798044727647787749898314129683400495458597912801290394631900091911704391970843358678729364233462986871504306721918244444817740463565222511406255879652362309003483419080963471521404179037754545251075400843730578732107360724846026612087019662521303766867439579419886088313848197917654741334321831740305543995258373526382420236129292534902759942907678647606169263830597245553303818585202243639655302742575274546132089294358757358558903734141028958171458683468027477163212667465562105786090077551759134321243367753418985919255238043302060241709186287247044733083129579047051771242556924509120747562134506388981145029072210589860095380089059783235079289609876989976723337556356974320780074004411067620481487731315356863241912157492081624887621688840190698862304694977979101975335424709395553513352074588565255094138512503371539759629899244709144922670006691497509083595955996713687813560551212134228348584536837089063863149769279404300700337990347851199171619631741866152879604963060972643171881002308669639748293110622661659929456236867230898471260571548379362335723014546925434772057790771391033120358270634424941028063665670240261471511975017803470864406818746835421752863783199288662611747379985925560353161409520392056509366565533091859854282270883543830414512872682386756775034256636086105076576263194419222010758748965696681256306910530597694302492680125344280265647672869726744608566387366427651176199256362847009770099978830054684310902337977687128509482161648811212426141454671334246320620856254695796776781957224398893622337305068894758330381644511896429177491129302113644546964079016634496103080564989527343201787508986041789248042568802194743945171527078080415883645592710151237182183885750554725151003388287458708541717914735193095188898532778183182778113054821497704739004665918644193566095091424002041778894471782609030931422949881401967855112904431724448759177500813268436918415002165972566651623648894609710592273933133260536766531712533010373295274179540647375657456858690054984941992988559202847955680012086170265088770129014225175114782745780559927036560833053536861945430011686385162074497715798442391309740432934148008047913237044369563030618968945485239482289821315525903660315988726851237578885550531752537091426527504134534409860746649769400565721116353572982706178790286175037634181312624721318093612875383097684021435889096845059607654176015569557435583043544220680108674138704262523822214339738651368897046562751411917041973136113493786378347663044286808503894928464051997800520261852705704258017559319451019637337360769242539083233491608149739330969993585964190218877913291726968833791809923324325080525451820893230166770658303942497848713405659512628733181094580091399549556984110622949455353493728742129568720111168724984505998205549398695931590539762816246544598850562906253426677909337715275498103905283450578810499388109002285029703890094697880046275144896726115456524150881685618574431803970138163439800456018134722714152537314140913433792216877708870274157245461958497880058683061137485690498945034298629399120457435996688891612985236374990513346934027896235196956328860247841232606813019877136041058105210661072604398239533808630818450245757351574649039846055654401150119556731443785184019486389733263325806394915309862786767362741971130963935034332890789012787207489433808889092350271290863512798457141947758746618200661294365804333979348530313848596537717098970209837589448403076155860166923655314671807129180671470253134591506383344059563528016784606620752062459353369975522622162568349765946242692010058586591509506276701138196825449933292499134292291027485065748836747879651806970711428285487794782817844289664441354323088771963054254910516563211439243437540222030506321250413109634456459392793167726178229446791371712687037114119126019339927934357088317682727924566309940647987165919839597863508216141886144229472438815558491068108259610142043764877618716785803190098832355289116337803903888528222341444620067009492406610176327079649247289084434595067372024008161436963007338545996744926420886377661805166040497268299338908585937501058631430460207457723645819338950892083771266845826785843855803124197590836655270924804852075537292423811865444559941662494703803641279384346396661758974887364678234237497587027028470917298618318735684886692651927346587890209328354075674359854788856808377437274650975016822027070541064528364563593171544704065005774598728161686029954521233345426031431549421662782767771376015687270414964496874403074329535435355340210222425711725437728241431248458016950868876289286453593324691746233849524158024033676187886056321025186064727840714165574576795581596365409801201764677169034231792403010747867906270328856586438748499938050647663689835517029670780324836986608760677884069239848159195269143955353714723471687632267957186496287771647628428527794177505214523076029105471832946442256297330803553497919134541931062493177446613702834121792493478836456584917058902956432810084306204831073304851913910762954667780699892782390591341283124595563956343539890595521229834577837390748734381706734170180379848261302052161028819727051410990128316981818190113216508530697348168190985867485242755643699292856888576915592687421694400072726507331053185530752799854522602107969392990191448426560634493116674862787645316757391857806719249478928963794708909127189502227302276957130918257385454238760179351065255763350281179929815931480405494872865969448423635234876155942381767601541080426527425709259249762906457907655155248748849980195253468991843699796935335334039985284885494125559206605066092868725065896026014913519545039792450805095272516316128240384669409473016184282956485134662705723828659490358228639638662141713112345078889669208633585778106716248928273360357943654716372497535460968335910321368545251848484039560122277039623181073451515546303060588420433054560024578858807565200588033718509688497092882954877303051354617152049483090982836115793386416790811404142105005923225239885053418996543296227965440546020217037936359803155121461046007035313799200049721410737159889561039219091098587628269419643706389093694719124113266376971860512826449427956121869937797478354535887019168900458336352674697675901720494251190266808222813798706839799640650284303799095039801020971187229668225407347042672031756835118402268238052904612384249224693922802111466335080715548477241588773036122883074548266516732001334419946554347282623011569024174805516213467294334548924585325718514731004026424003555871904396422904969355570262756893771495657597238399939977762566300107858933683157673605871714197478720254492653328011182299918573091704170432100009463190742516168371832274424837532126240805531594274341359617565448945782837151508256909624540464820998006655906307122788293079857235463863955374216339581853923384920026898130167118295908695873461502598740814190853117213495096357263772965211026524508600625558168494383669993167631638799467391220349813271943878784213782270032194985084155889767794448751360981348689018102419224826969122488347240645765916090848255703839549056139463651543696329275227509264664676504090971484936601751570588687936312619575443576901165949237970624500978887197183999471679289010710346918894214768536471635312130508762654985362160373201244453772903183482584894276778507181058500620901414543490714274157064992249809234990904878237856062946459914137078272007280009825463223890746022792933370934322815931147783495017288276807376167805296207383154374048547011524164214523780207509535836651492315609050296623139705815245196104092761343508321163453819657808588671151687455480768819628982969338729694527329153142351051617645044077115625815807948520714583308570551768112213710645993837976993249686825050602027909310272839686578065260501842253662242298697684110660037635219424925656300782732874078732150657516970261836822435937941379065672278626453521518023678115392934644929339326609159703425620897943084685856750632383257886064785256970105482205382559988789894866465600939310412102096103435426875169460700553685173948351522617165061151753752595593743723439782991577440064513923371597222475446984684119626664521189641896290513801697848499684052046566448522062740729015000529787590227838754304507984941721326549948747072487507065126447107623478489092954545731687842910219302532018458837302210121925532549815751417886007716150307757273927181400557587621608034836035080199079439563733780352148652789130529561043539084010329370603136233110486735130917336987946576233449980796333941482734944154199749426647088131242155070917524618501202569379581734538515950283066877757734469429012046355425503846281249661448625580388301800442784456806874606682997135356941290162954328418373231101647325753174853688703587499380321249027881146829092570583215390251734908004790273732898938843366045088619870391846521986210251952651538590767789257965641735011509689439403878486832927956806579111614942830314510480744152184774765565666044639912920103839603137803231159621986520701095316550619760903780359616634176471534980803325172096810216561155580285568499666560543904258005075488628205401551851418860718290506193915912419723393102553104978228299075866735872437122611622926206308458679197818675622419939211983923943575499491880176360003336347955557814762695985160689028273245183515612494498971471626958797521646803275918775873122451040665940536536991664694180873957357127936967571328750695172038149938564668580464005948507008147140867528729536149422964769124775607927121639726741639693007433390134683099226261947677283108997201654361578621251543999684487985181191490298659482245153666600179192560454062035986157848231720509587635036427557312353239212505225666059746478747283166864298795782020235768491261536938832102943078430370546345503440085430107752211081182969344672651836015614395530997258167162594216476728291418777387832942444112380672713318857488178739727641062722632782362381840842703537982373268195989339201043572382745231059627668897499230755825497716244972502006754857757588462575640318363535962382098288855741106339648843055437139394754989623828725859256799109779426402029861409037254535208227651191909246946754613853095012074019030450912485332163890375597766431891592347900311152504244093280784144105428196239146111387791522412232143538822629531724880717974973118300046692458462975180405385211748413738386878584825026540753898403026353465725934394632235790768887811538266421723392932868033367898020896189209031018107842151419645823422725375285581821497009946866955475059048536852061959190106992556225410778626349642104699543328293311800377171475797547989689105974180525579140032333017542481010470722799575044318064494752737789270987295022030574760626904037530144882478848317604666785720771653496411315941226877715554956384701455471891079406855615648684997842746373243289206348459983350662458939049056472992198587694384424398473474552976465508630648559134504864543601493448480961797024728408650639507981369025029119815603079190740613514435602219147616592392481498193747136192773955219203857509682086030673981990541452576067056837137369333642327962753631392891584101294243964899806725698621590162898601998533244850985904734055951418352933265557589071736135042987969177813418071403445207728675762285047133771900203473876229077426488023746948809102442755611675489948274401248506140185748372194960401282952468400188341866034337987040201239885929524239282061456825819498814115787045131875355957526721785378224435567968282884868660343394217676191983299073800232946861184591157235411838406970442696485663151658106150922731888055023869971561502842446591219588555522255572560782456740307769917240898716290174606410119138055881839261322937322506446511120494050882601421543876970844527122025580000201720605343796763313925717962023101093211039316524862808146091012998084933542230599254922423858692976503058406572107994462535573761544834863941043465311379586380607313756745275562133166468646166807718418881606963728574888114948596607934698006054522904824537491606767324927380832447535034955922621106663185385823947860885162806952663279039952505707268066439746691710008443923730661783430633332074806839074934647281424808547240023555211282314524551010216283227715985985587160720385256863375981339087789373052207099716475908050514809659872347679672686039367338639002802879356301727897791612296654489647016583448430955869276623575300433068610277203123750930177206049715480797274555334523979734437291972146607848916406396105221235753143440078513352964904753334024311389649123243123542413561186008758525095946660957863557886376818338292030658993394991807951493490788626970173711468661629244218212861680993631233363149553632494610896943882766576682876725401908575966184063357511524539990290338854799752871439234543760308279531981247699657199596420310949273351760917927886979679613444057131561028400847426687876707595535150302888816153374577077485469466767856972541691705886626942855875352105176704423107803200447328855228280579632025019524605385756159425386449810136843502436399783473689068421994046778975910951952789158019158173483942458087316309768767130102719433865717290428351088236288276045119447174266052727009902266448245937780015152199678671976020026895408660303070025759845153002414896183529481811507645310972620193451276765118156296568582539163471317715637120157947132604973269420174497568644191025479069114761291337713783852906336578067277315744370066137993670180010011440797057151456057202151486617758331412180496874438716518292306269788642739424136748525183673077827685430051638239715541780849093240167668716789136466497927363219209185114339454850346570345200263030908407603567647959836676889154184396862963101066240811994046969321980591613018944591989965284189314575671027868409106941225856519292816438052512110491478732548751801674560778505706753074980614948078734892282191014079786009063107272649341628925373351052418750428488042543389313923703888079138903008745287386687620363256258435629771809855031887761737184892460741553020270393654850100222106630235038346781590807831903472303908091923620363219966841662304402850483715126634732190878732193151118570670214302135283337904949880148276170351382797434828267547274642525558954468447852995595642287868867839691381710626192378132471103767445563567755816770741101747481153603823146918164981520625725322589289355828984588012236963675103599492088889273652783132765260343761490985564678787904776418784130943420110353202096328165977403965613376708660437937236291125575073876949775142538703133473964237593617334388343295535699024275637857040668603221537741407102440057646266746534524910435203325099126788189094289797033741752974053960660299295394810493762620577704386696905859056811307203304436636608931671880297784371056223456379620867950402693107297465986109289695984177599377761123410000182109817521961488978196294633151285197603861352808430537355994997630277971540631537003715679552665839337372208404768655007704710666491371897924383311125627868689741129219748966637171497656940254451724017314621272312886727316031162404526666628655739490218356105690172038393628182842680342153788737466966129299109331667763627446086282262685212748704518775871736294653782696690409272376146232300740891021437386455939714970578109162262685547686155910549838422064504294081443972538398216905207870633037077544801361781926906538973263583396946591706492505853041947819782916253714911072638915546821978590796673238538397109902509067929509873576065943097987495790787062158290430070886158501376974626737604211090708920403555045145736766958429223930471287141630741650782698962296269226040389589550173845633567606013841352678333887162554062397793117098364516933044774948376688796582209534396878037352149200476030242955876398671463500137831410865965426416671463218492410171547182399474138489222216404158470309371346214958861163957960366906495109394619745402207613016333500967048879859916127446109763735628087898257550070248753326359917929182630474815333033810536697572646858534279745880740414057281661413113245033858107099910241150430688189375081994680338926661060142485042516245089957550137736450343752110300516077217504804931474508789795602208224637468243177833082762394331848669160452243463879045675814222517686296704815879255889711139895253602852842920720543647145117183315681891068708208824769504171559925220290789512662771142022036591508459504258390796196190799700350558294956194887341777684072846703882951501887996006977307710010969865810841045799324704372385292575055773405549097450651795297640757100122970907715503573867909931857719770803220666172734109118686584872422141572823956038292303923930962682109868904185790459860747130261205677622720194878462026804651104784384169517784671610741981483007784010424118308442918933452721628088935793341307857150557427733593620776231055795518272175806176413645290495557106814435807418358737067082599572840032776175340230613517449021825051612388814958145153349915727080151770728062857547894509942895559994881798092993610508951294681306244172503870318728957343013114056199422721437596282138586515304848852900438737086704026318900927086337792491203854437956065974553067374353854000122078085416812579736265349986019055926275705606957270720513689331837239828945586066555122114650544212249584479803733184350149066724512327187820022283348129314521528714666599290424637768487631539379647727695859795466819154632618453267924586342592385077669501084481214827242053646415456924799049777779159264132158099174782762945354571478708375973456879481362672447297029450504176273111182820336420249949788892518187517198231598089241570455571358737287296479887370903071492568560435251842061840620549828124315050647797278876990151718848015486701615927950634898683886346791349641775554798500923383020021764111141595118502523597166574468753770526900818971337752599412741428126896092455175615914555539332710666892342760093919678652955432956746225558989786346038671540544554554190059792685898077914658559040257919006588677907610499319418683615093605728104360320373299551529318150851340842568289575859799696313473714462121547127482168342719547401206967967926712517983051292823530991546310060324168746275031635428869606377196211075151631752557339239941552538271470974025990310919498673431103123925608811762363567452900830224875516487295332473061375973337298644515891880316693422850009573331848542970599687818357327412033328050010121268369966432611325498059247501100759445452209812197207515987910662920497195826859718844854488497283261899824007756720720545106678053716894048273464946370390860705599959553909975984545578553045873619673181844258035122382255100997661375589208874123224996306728758728296473357626691901193155550835950805911398843281876914804206942533951017762800067979743016066688310303816080662819629300234461165913865602253856612825213294406943362016759031159297392758346630388708902082886172088411358309243948645619147085735460940210807307003649762546529769976135099605397213606149468593149264896023791987014181479420351534296928964076334389778576443491210203103785997304764820017875108015988722634237238368412255305902133086778668605394023815060599418737587420059591840362284453039355959746435821672544442806463257952508071802735902754676353949981748008182762351786003249566996818804990041539767981616292857687646690719227395606189601344712390891730085552541611980397738589370820299724610103410634478210152977543337648986471128355768383783725642651803730189463516585657722838381297654988830015597562084106199708253889286376201425659122556108437748293610836489887299488240589881300728267693420872263200809778922307958974884068323579356609660160364052896582992846812831800522724715864305581700838013823246005951487313192100263711106500124920994989415969697473629307930646710484445092775983916342994583983075976796997156743657557872219073606979225828973662537002894118693046588374360977987375843936927619275449718759254758275908892633843711989553733926914913436295776913562985953229796541070477381953650244760261520806640103199066166799340616387143463318506452521347588884982303884084090104033748668727372227138449013957747811526613781023741962047062733862504238432473609025350720034898677352884834447012128258573630535534718032296083114370162576004425580630905001365665513103318526020287200560690727915173404322959629415625721536045758914136270060174399857229976827845924888987255853552786003738937211430393413731566216137975885046692748345992952158709927257646873973432579396337797374056567858703153557606236358273127185471591245686332660135406241556379958205971209962055381642107478941486217769766658316936569310489135255375490193724010203914526264100911994589496999816698221578264022205762072768789689083221521017990768158504548279620353094256313817557205834124458977609896023629565755751459929866871664896941186511970592834565709904489623285029502048333637846204440986977837384953027753650541047488806362301123554449372560621419096589855721975875780728038830258169712632303494151380784396199370781117097145743974604476480884731504898160610696862329727750384513480969064922755167544119319097627722892310661590370685594023679769009015114930519744879355752764288177965522923355674125274831305204553881715930619512548183779520992643795817237789557412547881000407691225373855191280868182025790980437365900804965039498225283315018459744360634050245127598574495763163554255022224304145996566874137399476546689954164382819838918622570540030525768112091926666951067820937614552448029178734198471186812933643354898115527610870503810607248803578680508965386903137555293213273053545575722704838078662108222475487716205870696101103954238226940938309025442372647245472367704152214222425660352403455434297287659333561565683522004442805742959118283646319665089727955220476615543346598878696944524082840637481417339193559910097698923516088700345335153577450107515046529330723758543607793813043053270289035598004979072879399941144326400946947611901248251085526179661044207355986480885095897884295115925650867266429269848100011248240134672036307486674804712055057199728338400729765736829284795634214361844707170529840748961372672758405467958240045732310392424832583030078842567576581632923233826448074089315848573623998737765153621267286909178451121927716695965933979894596298211021637761708206767774347772167027007312233667016837469271824561780134512824299413222060345177471448901709408097009428304769089457924980744058129228509501906666094358503362048543210745903651166704628337251123693629474156634298435564672167876376610764378584295516583695502503482616260589412512126047271502036726830425855424893490514990916005849228747143701786670284475444143173653666564935654994938499603912360980412874076809015612445161205627387345687370760486328108704578224159934713286559751383173793047848412934164241559293691557281037752220511627425186133759221804382229826716446399197360979724340876747898114689430377906837996173929470764275873813238251383876497645377071779930923257901240471483529911663746720455234192728486065009999279060697395155332715829944706160410625461083005007216162698175937776543023584373959240437969523479448755616503265278031419629710743073943538392755187212463175731630711891395342016889914494021811525658496087303205568908647551344549380042829171706941271175514316557301000209108246998199681321471184992576881874486161571319251223063180127213683217691575722416794856171537356312814462969616105161674358996341324299646848059159187800698689932296951653029878057996183626447697131487414090995367516092122129302927219057113621514622248640890144611446130185110307212262963409047276331318137103347083589121347197275181360935779736908026277356968376356680382110146649514114422032622661428604042566047216034590297414939841321565051471069296463711170257802019422813506750192379546085146389431993937964714419199706198874747973364001618157398830112614044285284879690109332804965773743250487807194974251523143415934286577130844299464438779938688783807230756210349181955848643597893080770984794820819262766173152629263833314952885099439541909804506857685024295225605181135145322617641977444009994366328352764920891826788006684768642589438075190633217105679109289189558658345206869326811861218361564602948005276873780449130513875640756208789675407585312932195962821802453941736828937750393978091346682734625979238084530748345000724519596157967297500481466504250352370189413249458538045913883466606512901495586918555133162606475018512747807966604405000016324064154560650303841623429506849937881633885268922494462783235217961014209400343470450254138975017401022596607184408411064162128114235739168733708054419216970597960233862110338358304717125497025782120387028415346682214236655435364250206508240166325753113442921975165071250315842564220416237815716381341518110728198106775181357524980215530885808373034606475184257076973349262957880698617442639468876400832558484061992040960173196587139691890242224259992477594968094564970907481898632759202789397307905140805147083317890127217049205701147671446649552412827781873027308574828437991566747830796071734974106564972471063311198675840533036698328240315460735308854012046720358706198340479096909705188917171998353386495824727268390481046066317263698706887618253577323717200649950914086566783971563566988001628458656122889018480508344641011592942255748250041420520687122848574513588148124874653023688195421710759097048933370400964713012262757361634940158624025864104136072162958617824988862143839250135836179504087329018878538787462540380142124565820585652062204549325516734929939047574726960702941906597453490841805247397338365868877446050683392632753696737448221644766712093816655187004315937338691326540470816885255840874783821524246734597078701350782909326795407545290589382644447559315254120022167304702344612109406107488375778033792667970881807685798351670332849085050195623930880862300681414992945570090768899448463426998436373344849364280732999515552291059835619821989220554656349177998965742488365683959581601155826885043517144219567273402252426974427731833034664925875557164441799829799349550542750493729788384882067904891509247636622912054529029612797707312683854072565902708755794049988936921207208374671265792962832639299223131627613027158818619827290966074768127318784376066652463634447289087491350416458711955593051115733923660469840955321478576452665795830356476338159510435582823745646966177707069764431659022616846366836716220161724909852980605282118991353414016301331540819502421448235005098708535133048819223244661266161382652049501612885257856036842060462889226653149536397065170673089257460416035085533118910521716634503891830267471302343507769844145089054718366710478216674747893808810661303041227820205057590551646176542475504266437787138542023692369750802834722136370718475604598492553647190928703486870655546039846591584632279853180372542493073345481291890917046476847106316002172893902744905918470120649382901925188706535189603206126905004228389530082604732819007563236628367440815375031308064339478665192460571137609546325919802135259445700455007175390772903915007256475821855893671532606963027420558107979850546469509357588254568904089008051675262224888307563670129999776960347588652223221899624752198197030843470793299741384645261589273402115909666073616427967178121050554593653752109927487236505974223262603149262028686089032121760923285959046396449573060658701856327709520296499887693243775979453912080438187928685037128619291969023940602803128806395552803753123795510752996042039109704029585403076869496972246805563668787121666033289024241218836418610874999291860085905334094617604808397109788572421125538662815078701382006747154159166699076660783961393930110320492945877984077948640479912258507134172150749973286096023744578148765995082859120258285777305120977813652600210038225562485976831553873598374119273901909897337438662239028184698600508342392581557269874279214806299716133130915782126401049567800647690608127346089647895900263561866807197150564012397568158342186164044386533272364463660253564213366815483872521776953202076646606863486724898038194619437436789078892135686130857011704927197181342857245618848940864845301051136761804155397394630330321754963951618636284306810360120742471995444572685605334241131702401035172011838549473702138110139402658842704154489991148029465506246260777888312888984880908318716645315173641823680401638540404872768792974779389030870441857167862691238113034991993687688139356341791767374388047485187326036185002305612361293077966774856846162098596534667694509796781402750519170889070515969552541329550223088312977258676102125294115825487086773216271231318107597617453033526277500206667030026695330338756032748427967629576540048348165571232971858462499378512987531637519005544297077937078647358053762098379957982580429911761154803132256848263504183021888676368990005968742282421708100740030984153292391317093496496643876220472802105165292950908666549210582457917131262362338625109419176456486048215563360356880226268514329905201027648261992740126214403229175760879782573616580892618706844948509615649249620243873501722319163694319091335079709362929672854535541924939765800335389466569068246686605866569645208262136399709632064499346031874631005750922129581733746978190557171370700846051173290899470169207720324066881595824596526753579994841083455801913847128780628411761967135998624227830470534012922488191592512173304283735813841393485621828524377765237067541996628839747560517326591809108754871354644454403784938024378540535429272732661071287104003216094933560487510453368044954930313224266980934245239264419864395422716035610110898080774143445705930140701398677044021083681750740444884820608610552595084815500617488663321926545144402079779522525640513891435680291230815247464405224636147010519137108585602030995867893878578625682779393394597104766448748795509524662234504412073979285554893924125443700754185580071153387938239763150447887504577576131717599309582258200519402166916040703745547428640219574867641880874361769448861360037093004281755795489391745851325123557845760760882186531800547565018461764717688540242907264003637898499908775262868019188520313422827651944778181647148353196365934907753791684792572996250322961867817460570460161077278859670578424952315834812381391606221703170729180806687543909207096729889784395114533746086050678519607465439401697950612434936601629273520060295685302639908547523674200449128531610386530834714389914907481714561081418963905747964186995053642420053658833460892102997103799202905414507103646576895637352946151408725125948618724989612367579703461477059192257488469589864374120745226790844460942422954766879684998464731712729924341574680506977570059215693307209872650172997962492040657801743120353524000233946138953985155669938146967517533396493047074905065234657000431577787102051802401206709918432740317064956493211547662545308401713081884682028358456892602083240654313924835222548656515591286041194528613315151924157493319124359201642797318719405305743345588620932284624901267655550031145121623968309695448079675821127216546795232688327579732488779612842539242965224406846931357730369933995566499699931938280696509768036138911320046301818698603077321401420500364653859098080009515029449067254397013171027564814792340509137176441471938851100905646344118512143143849010284734411212539561294087862962678781031980937454528419723685501520437968500022174338680292857988091262845182486656517818217786381944824301107063154927217270058922834771780172453409654910941929321560596963138528094322167039362784135435404280315414090212530969928114609309536977590531675280865104675301126889833285357521513456933302729637401479380053938035875787934541826117563417464651367490913962569993714867415362214789436070784975917329030479178799101534177506977130562242295890221279196335032816451078327325990514477521864045988647499211482140207773193715588885791087538362864913957173162915394413004151893669385820344413907197397259276221707483435676183385951214643281496616568340704545730005412232595448044660706174671142961827873063585488954673954922842305058409012725170995002196541166071734812302026093768327356408941378201198194967330926003465108132719992922393133161081500017464568358265908640851519260440580408317484748658663565917922455305453100716144880476528762101741811139695318687452892877917113185308221735808830059834516279785860937565274734248834129903001280076215358595608784163619096500269914187655866264806812294891256831627143139557738239070201040236766324711105436142544874546036905422121634146589074130067893970680291094118332174213817330220405092476767102094349969666381185034229629306112316921028877448144352799455195850624604232611546499352411117670786133646129179931827122912638312403715698594802870319457706343612803644368318556198797555627713296468196013192495931661632592372714326460425646583628352315614716834257013081983823591807756792004255607332327035247076266189806221884833791757662979796856141400526894331696617448304765566800517934886575905972768363341876914106786843319554462799816476304148904340924103517321952586479023504547374310012014637554192894627139008564757956664491664285241182696485709620500599306777514673617436320897154428370426925647258544037948762043357093268241649529881319972977083901981798382846967349796589667194604295563001621355654840617638827162995339329175173678832651955788340221896825217391277060801783779384760260965218169826974959884861807904020613482402351403941068258443458980055486308352546710010764786984767998228588617447273390223379418199124708458180470910545544146238977472407235005799835352047550443670908953685465694265130270309905856097919645057557963314861479600964546098689141117661723675878311367416671869136084134760659217092506981414678812152459337231564805472487939040882042448237923089674572644208770389332162359527818241911101771320256644981927490486606890431152803243584319969073156668265333551887447839213761086097247193306806096230493671139865674628586140178183811127274291040054068728578470508284885967979163384345811254087156665573438370900520931008957979196858475602259448744518594721944962564962201030177985225886683604237192595882831300948441012579294228616102358567395268076414247485838802911438476510598052193474100357593190421663329456077564342282938962921171710064796016421775614117367197627739802977855538703547951098098466352433528930764242682988300266626366699359609732585270487172094534604201173162996049085210127928326231816176790381059129280140996312835504577960439627887570972137721717005951104961523134810475994460644199228705576173673500788760058876740550516577296778558320233357174802536893868430951358081066120762594066581439172368352957061680743233969630783564800553446591269210173379666907067468464907580615509393812055464124392442756357426107117824641072685255414130742640509012844594985317619164632448093837382254838055004245220246123506965633013918288496241697828946646953226294947018145532974929167753748766069918782529917291054622268482988070793625741202813306469400347240029591880169680057087300324493862398301859690814378702141863252412363644163777601213659186770461965164650295218775926358408059094366440852798578686186577903551202233862466135701949405182585248441927331734874486344611996319513445111768594307482578750911116905217505069749444728630723365207453834132356781734454948467841868603440686382817080883297914308371992321935238391077740892746382392866284680467524643094468211311638613429065990534234246415717708688718952295114129754747875374227512476272155678019239496461561665025593573516477204414864319856686162758390817509219027622781204453413395996184849203560100067807238825083483543601596982567125448275721651428436700048614172016733034983225051132919826975720755534976310976336878014423873866351149124037557982630012146714177548797479390580140986397412590845847413930204212004910654572919070265586370959472161048602669805104967483975216179913492789915132232356595120302406183596628925875261433248177500386673904331148588821228674941933560610092705667330434715293965218108598993728090544640147831297371532041184395865143863172444797724369069456856566590203321019532427240427397451884733841837087355954577177492589857856018026136384764041332344320829122169631628818015438469952357116798565334037608611286371353710325591333097474303096700801895849865322078655953635981344431437900066093220419393925020884521677904407139968937722918127868990827586469136470393856545662841625894576844958529333370541673839620611162908730645745243921287775895007678206851396233250954014153249000125319935872397668721390836477260248926653558815549061642634368356285145167234441931161654861668478256019774254122825663395635508454539061005171404620291928530357057465015274125803113377652359427167331470273633243046658699687885960589942659063378739902697561425365690334020332319638794088702799828314759934754357747752008892173067318659006388399420056075138056860879162295919375556220435477167050059596913478225326797500478232119481046734434349116953045328932303507106462067849490406095282537903908901844015009548496108064013515187440657472776335352747882486735626737823309357878572586935139598165912648226048852046706780984521689218255295662868478526649158002098268537563096860049066918699566848559574634284406091906954703559711458304824148596724117310778399378274315378159245623424341127338877389629655890524162068846067584402523705726844782884078740522009012026911147842155600462717342275707158089039292703942018263204214784368933338244197234036871322289677109126561486395730574704323830825382177932274425106389787260606206714414950059660594089453481075366918173067193492518123869697231364546566082284042263630504123726218973034819066452188116992638373827760682402067663945155139163115698962905831579439728790023176227830480999628769056999544459709339536370556250453185146934467563132657855166167413137863831529603578229316936455638372007218995572091917295405232274797819348374439142291544942755668574505644472837750048416797115447705354285280249006198386773057561249822726067585220405115006429884836042328951488955522755752340660586411600680186152467113094953485915998109582234037763871931073641861682211876833920501253643482676085135237377028212665747148196684876087795365639059028346305447070192736041893092499381498314685009424481004944181975157261766789079511371554787175786446711500857060622506674007310691761138064472832351042401936320279862711527289546294779544316334975141835456622667509247484464079199512938480380077003089412758710598575297246894762589446677045212207386024263706171036343058040710937315915123419291197340625346550401406317474874092933556884742199174428937988553287774459582688047012496617328205878280054376222878122017718633637959703675877071134994043360392833147603816606374567897296046453007919605818877503506304925364376721154206339442727766864012563898395928898158769813418518881148574426976394111074849041207144307607492555064979375108721795310757715588795519949753209683727931670558251792065390538533792842584354850795012105342166080161553087849120594255787863279568831926810640758154270874453972299754132471432677205794838866536489848729933877906980969542495327137608619516446206546453349439291928984896490735176710001283622480355496165179943108668007442454887972513973367186096316342620326978869394256370671441014244081502593631592186901952303106818076135652166130628648135961054663151904551293215093468543459598475978847031439971912683397496829369951707360374489778090859735823081537094952675985834002256063831029413712085080224094652286789346823088869465517217375870125729866729427960066690467583315249659585391321826206600895043057303389719434966116870301385058166703772427504724981876625695080293111140657294387454043814533455873326078627867875207493641770192211369263088281967689393264223883616075071690733919168220000122836753045319286180304118850429785609638851271534487410337351125412528792824627880796403372538016538352774685744502217185023304049547782175820337756404651300938865140655711044796834290705694077172334359659004868008830670740266032436889444375230087814722748085379020397380317277272828125341799985979391503774465601816132326474637759674451124805214947236985067741874585570954108750409074597621038236231910366691642380769879433779293490015288125225768698973389373769330518960399736118016937405500392334383598482655769810769992691024873063061870818755285051195272211334444686596945121395860872105365806328055469877926251978588104905696674742744442272545015054098361116929212858230324114536567770049252943300213258948685892971811766165268122640423365404534324259874709884170078824469755445638094700604771735942567690219142635477798273993396315731853676653395561878522084630521331186423763160701169380381141418846481769157035463679552016228944712348066991730635770914583640862165395681315178586028651095097964588056592376621679148934124402090136670793773169609132781898503484892499262231974500834806377531295446428172176966433153884555583375702763860878628555613400617326174513591386453417442438018943542697882270768203187547356077879816871482536767490795808535511903093524333297457427324918610334121855457559493951034202200980027042416561100864384675537483682573018344388923205266300510901022605610074906492558258585139712486253439570506997981773800967201283261780314720625791245345767906365976813634323031157423244483871011167063398786489664488160693848070670478731811114753444883726640154554396498468322936438961224940089236830730906909332304573239143220683347478531537979213326570805086393096774306591772591396354802105459862279799261727181807974733096921411239653529893775181627599671674564289646526484849843661978177164673765620192469649388576417553658492154910911791219153622256763115261712885756787690035301193653745960798727485713402003162808032306015092690608830170450304050700607526607646062587399333896653898171551795719660559565383414512589078513908237805876436074541285716398543255238562859779009922342005942952752789151940088071139787280410334796348279679162299793086457283899523162028135683867297377162865767015204748862786312394360643450270673564113895951038288912094537038501332217709173561262356449478132890222544167370604539035599568529882544935222898251368207895444246833769284362088625508030256445465392536035119493647391740735671712506641903313025369711321259413601952040260448602422955965016807870300311963212183639829544638999693142086941095551011104091392876231188292078210969234986364849585951545021373817290898516320592148709933817127623526093471774897795818016382486450433282670599369159428483450389486513905169583180573187997841186544640369455150016065971459488323259891380149665209007829704191089031039767753945826678016250927608589994941213593000660792014466279911127422248286606390433842950016190180498135758038745607529892974834423666799540367144492952141779979741393903715164572493420447936275785833328420013676204043460240280349354810246718446729529342766873499498970449504975188430715595308042294635275445385945692482072350298988561372868863385545830200960163945640203114786695958264814690523945160714794609321013721064309791404952592383917105284527382415253575578095809538886976573453839089547178383957501749937620501104155263550736499785662856340331532453733528860792777800163778290268059162046801363036772460972087851296594555451522054371426383783754511021845160749323517424022890732552132345200077577117180672778865339516548556224917689440238347588235676265039112117687653653300458573233100363741518393736872469811703521163992310888320951629589143572468238397818007190270969801771880536270836878558453447703026815667932279582260985411457674256767690340674033056269281320400454738404430956561595511485229239628310886123452305591597143886379727174932071985346344598685238138909378242792047073885956140578289030346114994131866806882129183914772867716708020430988903427957457666056077158057592178987366365638783191988177427589598093236028256067542785887570295796798293948185480257429772757679477363971859118708735641706514967184673318134451596198701328360063457855684735678343114508800205286884201149510425371886920726650517691202106342947533463676326807448904310555407749411568818818424173220322902438735527770622438146672314787494589653968012739325591505651988225847682215208699851798930814761206486633203454731830494210106677242874130209517408050357234533908814641904265782410534758906612835133316488202738031775583369879728535986005127124772301912625187068641902683684781277916583629869442752389074379214267949030186618735152017069005835456493002922656662932865879702599293221449476321701417973151308116881990807105402521597899600418517140141137438074440276622752410130519202678841374316705470523310876668653604080095891993047240805670894548302163707462560644163104776565476031814879885077598127030694902978066702114674950179499162359351821337291290609531389891222776928838856731810353500993827427591292408325154416969780302481488153015970431748042003553318742285605650783984647279379884418865371723739239895010789784956967574070550784626021905998595176200203883135432047211426732960535304854144815367443686948023224158739477119785650923900717356821150907271577080111440993613874284554547189832409882797419668940789060222350731263981158222547004096243316585394486736702975586171997411027262471304245499483170690795807496452020897506764631005607632413302324058310419578235378143607981167329076489998877934013111373058178349069910011795521106046951181110714657755087704388502842087863992828954103552700268058278347988258215474796613361425555919415869734494281130182236987125251185312345350927531040880221306312127106310112570809751487404114321103518944274119663771043889667490178308399802626332921861523213623950820735127521477410667100981700992823646903731224746562618220433136332819885371188900128515433065652709216954354979808674677207708376264952914799894913711063410075705869181310775020112416136326216990444079844233901553575364604744005381962270674831605538628483480641584011922537290436203166465478714090138035903160630431683087385207903372202867556326170112607073283909010484010981317768905044091848127522238240620740058050193027748334359863972444360495305691495288176709147247594782446694252170288953021595481160115935035106377134089566452107729885357757601393519352850373899593134238599085168707890873069130738308353611518663396154942698893258872938935999958004658410841443779840115991374498882723067217076130701931730676260015705517526719131306111818874374280480824006903017746221921718140249737820650721422472014543488088081296650863067147070967352530931917106991231855834077628600962814217838089342218618941861865685583480357823454074905345726949267933999846559997620815006631029844696243361121481066932232243622142554634579987873776432376056933618719040958174570626189163877913269998053356117222531953155304215659712148407870717685536521943062859487932322923057958791633523555117212511222618921155502918222906980613019133213557790498671139049502308391699447499895386838633394200522482612427580783518636743635649745540896583247983948649264236282677801771511311828517291678897134328231108544407166607962967193324986595883682633233204442072503888482652417805241907433328435542283744545495983731180159139469385080768363580215012108634140038245071910776434429966067021271684445256051117386948772029382840765083983736284771880500839995556004654925975637082673535402706835307073074513722661849198560621923987458002708558865045629661465508066343126507927764440539348751736876243911635644919593660593477756719057120984185114412559397799413159687852886950342390319956409336856028853045706789204411498994078578425597925307777169566401919528842190908453681358966577298310357900876835641515259043310466259327157198431707675067937866063119537655511341778794034081376079126854820656862747916467636247980174858120588206326855497607361573313009659117468737309738240018812667418909007946388693488711761924998769461644328996935680795429382447058366491344033607403555181131023124376516116483625921035538637979782602705637581427516585821090657670546529158650366233551541954363308763820242629448988003322481739515218571825314767344446916447909391293171967386850561036664379931365530605275412002931932540446054332237282216292024279189283628991879213396738073526708768741535171726978985683812741677070458925324377781752384283320524523310306072929340108647672442916904731041202604369599804489765944574415536166360082591444606798725960662759447144843131329423651005704487366756828743440354157567990445012099107662266409387194579350055552947667063541464833218727900282624631173619260554114375973212998342901297076033136067860885666792009057387580665327492415018010300538445385081069025930439196612892808943878989766034295876257656333422862749363809800912976812729400569185817099337671005564748163373266917634014668231825721597203376990013434304466951967535254825618779455194430856790334682930831428149807784436673082371869702879593991586162188964827601375022070429817766381963831692146787032210258633030168921304792894571874415023582250176085670733879246372579566396880082638668129165041623063770243573309991164304301324981291539166651500820843178476696463121028821762079661831408706038339410547162343577228963839590510149067176268729382754438769162732494348104901258772761908605690859611792273843598359369304700133831459192152366869931255784339447296646182258592845830898620869131782145473061345083091627363968529408239398465744660137551283399908658114851603912833898081327825596179669822544743054130173848407387455838899585415014398671342067394142856549777631015894714624078498197516897009304704068972939029386724512144043192622815594705426729655512330700378664421112286423986314899738500923952409432711512021231640148474671806867217566720519786309513959194901412118844452049965302548339019752382871764486062933586027892881407292415546626281489209561656028591285891223389860934357237614670348070717060630560453246123489722357193580771476615291646059176731982090587400839144085448471358367183388430171562673191847037181921702818333039849785599999912208284759408703521365602388176524366402355984810666610830429018094399069265599720482742856401247041733634467878933155417324445504145079692263783761546291514040602513169695800495231752718403582962969550345767961565438140178285023417538345041184449507361357509895978893001927931111651880969453181563278522028636348405109069663728415964492306128086552869902394026865213943397439663810521928112405964747973710746941532334830035995070655468368067485396183455878013224927337294764340656441609886877047681045769984693009011926517008624646607607390961699380815521086583695964157048739559956381532965809241609565912934857778672704904463813051959563651773073362634686689910644487871990363247685839412252160166405837610675393754436216217760225676948128161617606591613727473646005683266790758685014980850581722613626663742952557424145966220513016527337189248816764057687459655966143448296420218599875104424367249683996197662369173158193669380957308042219221052231504287012134812179659994226613487861068400513546405052573152457040524004817559909946180458776858113988856960677669650035652091545215392680901045195436748513439506318820782817371452392705674555075563132900832675423207802145306200193659978057731845329304961960948421651384898717524419935896266602092415265426526628500260839243709440624130682200435112343805296428556361154149164768254970554484488988844903367744329996127226357581048702091888669218611510944704708754846757115156359033168507192947178905945448031351038408941659576774163877302925551026006437829908336308595992263706518678023823928159743337546815972057757742830127673920571192978816320911412710729383781252963559333468792423591288602990149811094279170433536052484491851646389977170205801473938000976474415907809196591265842708005914209934709469577033567630628752294974093554832898159265385887240197502126743423914402086166135972117050287417338819758243833706565236572188378305276351501764959591389092035480824171099962234283044038968072564692184947200747094107408986563458634394419084007271616983547532436652122625094531852051683574011265632903745342697638122645252694227193107960101565202375654825983521142978514894756676463214156024126825198424015133443863786240951853570171398763269433640998373967406491356836817425333684919978335610543407706888868441057268357270619358827067255636690647036056799322559450598294045535871438103355605716238106887957628312360149237453197855001896779022289875557007517641892466934507308438954684861549485838114695723999371539995342266961969503503926084037516774987999637596102845729401831519690590681295729821215262995647647278029901451500795472682917721701626406407267687163461738637980736549463905317062394361154465161200435966507315826547647994265905754380091529031108394393738374344230674339129726304394259221429035568523485881117894178216835695132413493644306409468629749174067519672552988117253127721533844210369293136292116523814172193869354318474987279870023669740423811257843293719044299875433899695070724979740554666501360552927356305028101498371228167685112768860744480912239952147586368233527014057518033528498964065512337549229818346760543292350619847450203675754553601362737396002116175777710055844238071720314100479142299135925220239840470335585671959039906600546556336061970066878064303180618197274870517563894234011465118274711336782568692801274787880336794056394210928430596857921656816376879725449230115684529760374123015641510169759248375572195030077986735317949206640569382110124915071395578275386378399102006554414615423303694145601670705551526554277758071586449423531370837627280471540403471543509479292436675460364517373291984502482224882296598228025447689724568395742912358330972475630575983966312846890607342660898101878681205162498438879643907056332275575167582402314128413189870109116310799145316981427109146966762858052696914418715851256577594885190420084347789258333912030702960290807873828404890281290947762018235704343613972649450332186528123268863216326000036662885358360874722815503812337264357638644992337789704249590413507761213924727796735430875434240426731655008044737003166546033985675077014512908318569965769874479536756882879416835229374721662572291036104414302192231113724715008861181387337045342518442441495128405335970157486735726146190422770896332802473921160358405803545037518826565912313225073308240324092760646573758943485416103930932847198740822598540958439437687144667219697079023976320623726554149367185361882098828855889102367116452103245860190737610507816325694031134965757289829433591065949464868292094911125537566791680746277694934964024527366733351243039779892486709605639509442101230621263833593217692493506696661435591724084374216205223895784380623429362267767940929559415369186845886584688638990107297146426104634276232872858538715216390522996282668804489449544625449414776169592900995055844910149799235100005099004126780832146492320165456757587347841219799713699603320529513605315101161114107775300609489875225846261176202634506102423359536240878953063098402014173103750086958392320830732032662200799569112295329856338307260486007538632593176470412211000349930187002202348645370035261993379117320013146112486938406260707686228707157441531965612698162168163761679236161197586542058533710933864724384671726921400978249987081113530728484656874470106416606147059192108592102315753638946939613720819970596580265733420224750785303026297955846865961281011921073426796337901116354270120962503970439206728007334899524508845781408513550602670393568250461744203427159545011655291614789542599736357650961424793175475864268492025901129139922605601266254232276832041645917576088126577550790211913729573983217255765540800114278614720452483999454879457719597796567405952254076046347917315628030161870061125294415013250779690651111005585537542984378056296471897288583667640672641730341697976326281220191545864707391198296317587366259448082618426776746028863443019804311798774438762029428502582349805914767514103893520519434791123920971732056961096796819178123159295161688043230402282396126686987631143984383795265134895724099735242624171695695803964080697162306477018148305124201385382868714429041064935307963747598767318511490506061801646825474525277182307635411064642887325259921145948658134856550714499927978515734796955904480641591357475988458388031984313653762999510524530643211476892567906523797641815804065393411566385283060902213560571937696058370750760307569497743708304035125509348149837368249336048172303198125996823914360428791513283258277621954486786271177668577688046738434160068939798073130943146989376013532085232077781321815007104843573064804973797866055621402551486787358425145428808100345600748454037567912852341972892286441999676533614225881096000703266275037584758388726925881960408910887230760005879048452579684787952684083436137522658830517832110963774017982163146364501855969823624372254551398974311019169644068797054718777972452383440539206100554143150516025948064467731608007878075828905066675803587230390965115815897885484864748408084121480069573009285619768534512367154616225574389234745438458659290548344822410311241812088354830956267198995977245646013999615309010529824680540145210518681897978715978852462290896785321821151817740079279725246106118405358831080428355054329220016854275893924161986778624761998345464688433787281463613013405725937020022763157494780496957939686449278516027927154320650879457511080359683201482704430127639250857083699242617316396292497577681882794795657299441082323305837555955855576991403773101737970930495989816422493942602207400459935794880244427908713163780851087124055444734598275958591607994207487309404751281350772819625195244212240948669997608532588237624249016053130826951621618112764762290303390567422350831460159770100997690799428189462724141432526224349246484374611999657753337628929860619644322720283848382418879643709697680670059612253990181271043451513018310595538078353602822361080446594624163011300710316917715055260852305573672562286797519889416144008608664721977086635269973041343094876124568479481406806288347897579042250081905051379706047548450668448336581240580995404843130683481846492245487745983521474160174142562307835041275862497680531888750153269085078944027640431789103013071955237945916134355692055511603930250119682581556595216159653468210202189979805225474444577568130431446931026858703661900380108679384744124642807150146896111500595647939704356652824168067948603822881440318207797334908081185651856928491078107305904451500779630844045063278850237363333670203147629168862462780088905347817883867672972543201866911776904900848701356733015047189206290854299243473645738222084885332004910189624183348549574819868237088613303212692133921655286444935271089304350454133997436817236126603677353238422317268127283245178494930619990428996820674066440641225533033482604518201409921229454327615932141970806117374428652183467089187084009703759357995926538002117117625384496920686565929595074084567905862053384114577004236911521245431552651249863229827299592763652535706124482675570587544958024631300157324744483294715327257999849370770988214566946914234440052979954183507289524041331504905170662276859996639958735903569415349425223547603505947822485659911951219234538272709735659176301942188376330067247157481448049086547286894118830616736513167018157182414073632703892404854220227756197090947656045494481280914060899044098478942546757775011102714121675147035537812072984839680291592264421919854204480339358409710036025283090421493625170755216531246387318718900730779387841681495275652171798937381419213906927739534582027786810525259228134446600234101302332807678536626853180696636528004685589403555836963742241396118511974871047465849016413999649588370554599261020211084318682228696202100799724322454955224995472444214603657676555307327787655412831566074857317091098232325551739798919031445062658919207261419724360988102478318723316166263367606201519207175741002023885418398056916183290996745355641681963302717505445218736648760206005027227114165351063174096367388986727568500946280054526634800937387705086705858566310093276513633055171523570965055774862849704347732847358336814766024276645886858376968555539831731486788638399167994341245344438335914977942255101000401266666616136742277564681855512984193344185017934660737587111431541373331537205345027569920172022024242669925717311617529475243515900927184337610095270165624875347462972485944782852126614387973437735996058529746845359269668807551654283727027477500367505245837452195967374835495328044183985187889995874537355282462099193719796970452563311329716444241783666131288810979966269266625967382301830338728018723001157821507774347987233024639887299657005963917305690074865452662358256718503203769430988117214971441493727151544588733297187693886752361853102659080515132133847748118309855087503413651098631372691396075967364646592770543875089703740203516461727770079217441628224006223653891253388763346217113912209669462702986794179530657534799608331162541187738585130523712894582253081452338551725723892538167978124959318161178627562628112945776368844488310965964485948140565838511252993610345699694708371829167456736784201317612258514583857334960645676758119513214987310214653982669826305563816259586814842016299853032477819275096675511383606166472042504820646280975266338779816442619960224808596220900962980334062773968574347527416905027937430793380169711945023060593848524790011735215823491487713414841076219143992833146383140739401947638452530405535574415271135285726709387130738217364507733993609951633498393833507122667572872066787653395288561619742978772139416348212364283484438569758395090597808355225686259256995577677513953737045208362283111624983091708803441109409128585162385812220979757549303626447628756817969680925245283605556709708033356469344078841314651119960442855485532924081299396417578491798409808412667884934641279578730773197923826817354563126368931076933439816780910412799964942641210201455234853714744567461704188959795563858299314425486825504820847732942285927687364151778002779212840583572451952598405504285984121522696141551956833153616943720913852247223496201907709692033012084725924672247846878391896152350985035044637695994275095590430479771305483909162668002582661508125875179992698962317165222719700770205608397263127216709576640279124434027118279197879536938831826712127927767544858135669929707985877774212356941627815849061961472483874552647784526765166237700544715306158672571450878576370292715900676764046064354748425879262849346558464075371877291745048765310168863664304738315124216753699952910423076781618380469610375522527082321792336026448469283327502625532609640080071595894090043468264485131110655018204387679090542236300235462517819533961355812148478295310029786198404087607435483463440263153275378773179214706760694026893120114198149986784288785226025933547134974420795644313251428138718108902995194208822281824372620932666930439760411463382679001233577494324128912087981940422576112817439694487332652384923565773984730771681585371929921672585172303214440355297772281169743472612277165108386573043368347404817454054844988362936977772576658403933145541117847669437804739803509368016729306544368886157181024702212305482363819279820731955731160683121933785310777913950555864663005831011515371993209256944685951231079672944057586745434020122866306712368163353993998536727135855685076697063642428212438453669981884766294256830104179534655888531920016733105786007713510650240689221276427111593612985893041641995829440940818831162306195191370876687219257629653469929202485428460278988717239173710373487977150974601666475696508069629582014164741918610240450826843932623391378194292992709471915257300364278568109361775688057578012699060878205215272211001539879012096096341129252791109894942420419591962491361667893212091958628022618060921346593142380951380469000379509112542200193336045314087034870004015537284619505466116276251525352910079578591801760289622091368974185252917843854395610368356715299784711619576724957302521628153538950448636727733626265543262862711882811343810036566929834723818920827541647901201376603953685232198725389445375694317441714763108961674760688994178612759013984283758264723773549453135380717049423762228102748761117793842216030793283731722919065859465325727087046821791533532433596514026453546994860198633697544834936799900286841365121405084611731110780170320070495479065744924053698906530086914885787825155869145903586036920809086474505318250325566180404801705057811958280657726840288120957667808137382386636201140426971173192811434032909968904813354562866165087116213334936716323967779213600948271075839426030454158511329225778630723649604061887036067103432506567214735167912718223112300784413555018901585630858517237880233933508811566498912206943292714172264025659731692707182164027184123820712198898904219232917628759403877233606610159972505790340721667184873201339227598728427774954163872682116512191811790451750587162289259076717471534560712303624066253670802981763440931088274879284864639501934017726738591049455927718641813377601080448339019882592694122726681994230778714593543854292190351596310632140000341983866052418699100148898925669798912043162168639361848558889462022916544344730152840181446671792154850078978279293113749679589340359834239265367019266682748948805870426579701737702012843340501085346896281020022266190951082455977359830982196865335320958430737395664450473256221210028229474631185670269160756702025949599226013903095914955164943236188929051177501626366233376870082039132986975032203711004851193813532669232007061772051636940508493610157053463389523703295079400219239685716494063258010509839412758794061380933976634520387210907318987152971116292666369237915740460253605325821161676910411205703965597016803064405049864801520826873670412356329117649932239297577499172251575483892738674431334792961924595697816384831022020111952420280234039862779461441442942729311926715629782630190742966849841528526295748036274778440976654413347738744839380191810626014746650444416602163413692866555328237302045018819481345576867612252763056786767458854744636150734925070763476355963259022980171030743472321434003367648773659725991365067338886894479667155006606830475615254691985486313719001092900568943103254041124280412104592123729703648829821835168733655139827900926035306994064043268608442287046667449951455657646906001422580406219531495585494841630948729161252819780305231962731294686248976417868697358236056706045429330614581977688608079630873732606209833663110983854918647957969622558726171039629849218985638074655862075513256955230743440449169448330310312329338834559219397907907256859777374772809405648586357302485156666487299790675584649016257957871638540338252333417585922706320427102503499091812622544983491312868542475657035487782783050898332408753598408571293472791459201743118796563546711355000194952723837911435740099883075867794051436303361946560170290550787345069731937395152408926888152474512171317436337848272444848253378587376677179980280122068030499335136808880664950120251006268697575904845564699979749717727960547264122733082832787520064373415383021054121260102893852299331820231208414223052484386897599277886888832385353827798821715983413809331186162151060329188316727726216822062767798800318427294558789979165056062375055050012004458887432271136693177839011983734141003058058088210813784409998976871747709848068863044134740243038363719001382170503977443424135394990946182242523696583243041206821389445434367785135818488293650828578396675189992367069999028637857877749037381634369381291914588340608923105070703094563062546964277755270639045645316817792902173107596182696957295035623449624549812815723012918843917368775254802388542029380619632143464892647935378383490820659347326817116621826166778488930057854165133686887792025905151348090388942499184008280172958669593711249772778327281467610702484054399769554349269244151020395954110723200691746116383729140219970710698065634455476005071885361437712748019234461296522207479401235574709350454087434539025502253569484156791448959080320829532409167590068425115903408904639606350224042270693692469630165856942011887506600723167600675324939629201920259996505327985695176635090794747020529148204910927240892401762085380249805374571083130442458332114160130733485531908211533066547409430074550771472294601795905706577467251617067685764385971062350224490711727572750707491143258274512728477897587007442456330241770771239220131860253406243862888694875734168681308892453251092353039928696715329210920110076995735911343279141618200808832267931674088251276695953226128782087791525172933153671323606088464280043657951498764813799608937410879642423274191747439507104430656173668460148360116605540494474525578676909237255829730640291822536934055240081518555058017676642015198455099982639639915820712914474531593423079465824031301876634628915559201057009201329494585189143471081076263529103736146647339322727479573929322004860540592268185004008868216273090748793108256633827635483903825171346613520271073116333893488331967482974355247450440970757114632951133179072928430214533103847542912327897962702944432507460100491296315551641170603456266296699278578051079013010728222722104749994393801205335942704916653639600830823868097182318632222286630353480802682268934776560183252842063551747234973592028090333589155383216172092704637738506028484934584763330351679661769505482130025454697252095397871609068459441124904028735798671575565240867243968241635334460657607672328387580396988512391884289923714260337801054219594375681308028147989835661532662676054292024410074341767540009616520702360553858078105890237532152568063694431778483030133975433777645553070339052604678706515035437591806145325528067902292725178952308237685285251397479514406087597955507945081114963200285732902383022593614674320030282554406572326310852436367332836512642138705070360322383822568457123589470439725954396454060256197906647878597936684978408123581121765315506467379753307271693806236827634434108190974077228941492380572885390622821371332033040464287622156800422289806101229873639084196633587825771799546572107578862127619772628469154594828671844269433538408270452369068827983413209807013832536493812218812273317833307755874593040164475474105876290446250621337284648932349892260253988650530452215384691906389471859432803378858659059519386249180831818039267233391530071984925901462285760172596906506490265077385780443529218415135544657717928308626385920800840365103633671162471938322451423789228446053439515455204875804547485926509055316550972414866511740800237802492150194064700985196063247501532983047197874527899850929128087744758706619676778589052382125026359806716597935045242264021084012794843642037762951700340698009251739625198123419113720810380435977221196834031361249637557425559594104701622046419910338828405566347485544092060284507237891736035668539532161579037383810070128963815564570053379997030697859768278821929623406702938911287378554156505198780082512503953132922529944209103028727916298911253989658739968574888299220494596568592051849458299959202410670124899836871894929905536584212596796858870981872237606272007483844719168193207799433194489123790448785003758952282152962788064804902443897948588038664308856522633378877388317145429491082048471641773653220321989247366217250137597124988691127941311596416307342764920588568203050322960569923844002358044691031284200043007441527413373771845567140873215076908507090643577912345099750257023267938333737913663036867462247633129235657770428223984932766989057379443625483470315063207004921496554199485114312465301588292722038590509970833689853416062561341560774841507977301590963994487276490970609688209126010286668834944740888479034070132284403704244102493048934526550442040718865010352911253458012512852065180621239924770871358704655991587157487935836216841035811852518139656245972407375222810524010388246208373235150067477542145212980070731138350954595250558937635395292942525564105772839824000076247630402193056181822280538993362169247521094848722836241269757426916339183498342695504686378977382677891713910897703596327743525830524399756974918651400726884922244880779096484103462237252120600056791165775722243639591136885315317065491997123735481815075982283337380939394307187259466618676189919037206269497224752307031724963201517046127054713967315308732439049713491753407877525017010747070410786623949812547716908438613309950104978115383983996403997526976181275362759668641599932915335077845521472799766722650842543315937004898193886416253963352252469314746252819233358401582028772797702701549038998767487284473322048777029936273182210136028687573120130426454501083229978627256100724802884186873452988900559626984031681506685707205462511081472536422675849455588442520368883993048061142321587165094017313916848657430827403593778906528253189560635317207310867837872133721756770918101177237701920470919557384834082979797228651505115028482126911217524226071008432097884834433348404800573031335500140449297929975571785442709173824188940234956385687993220095928176184811742971057663022305008813483556128264328985122773690401183749834678037782732739972362055218809557895947434877081877289281211203605529151264416090310813313232131264616036227898648406164091837701261659131431386505939103397015532690015927002597422192709704813079270546861317902098493189877866023218867161203094889001324352444988699720027728662108614800575614596397683680949607042255237515872639903908800617171212519993704240118177863342513572265375436627401245143152565806003355425742365586195112013102206156505335519522306740132115494411606032772613212659732918605624714728808096331238696868287797742418018048960772433787501447039441534566148187013108037481082656950687596450515351254394655614066933698675937013433836771387387550907750849004430443400047594293995180160858014973230682426552769819202161679005628042631225451525601110472271741385733735586257453083566576187576275074003138453061583960539231564198801849583497087052723331551996438825051317539210754832482312389938940863604861632713667681063421355341613661197498975445899665980303730081222003679549679067134067416150411505092336854890150688549470864567729537319123319835529192467462134433452558169650658768289175040438435495583774762263354762663198871535996262688122773159245477557219723329202147290531829376716389657608803864032724463356215233332666023165814554136996176035899392491834603143933056645456458712665639219764143446113165587149974425847269223482325143204639009722299991239565012559230703434066157477696423941007215258254034810618849279904992479488419384989158319780032101507365318366213787701502650533159860551514045544042611216300490017295451204683418397480155070737991293591495039261967100838149690042573902606079538430928727580903356574730087034737051442872668399012465665125358542771050110607422254828849500521160534316303590819667168456359414371819220550918904949394124466290074935875723951746734243180109050735527971157365625195290122472256078407107359249926345857763717399253784983781531228785127837559707151435724248567553504160577208420175383867944548060358697483889638558669584523088850673192874395513102603524788382185094106207077922279853697526139936338182652221301488112347021851594233829630825970625177331921149011777227583570140586144962542316835292655297878457823710820191970610919482382772892791736144483782842614991436542246724794353859059111975346108526738094033280757917364834895274927534681251840092484430735774742990967919972676417549348738864313832163879362341109826647313054950616590603343853335011691491160858063423445532534244793814257729678547597185044028648350348765457052137907503038370564694936417070000715029130714061258077969969035049850676131789029836555059921923611768135446759438523603178719278782113183339631486071418788733541478140341467960532435349354586788242731510077943683492300822134879064741345344192181134413097938545493620803144512410066304507227036970469347434187690877222024184597747531515708032117001200630926025094265473812573488092058672444370696790468906381388976177613392032129323462856168858678466167958840440557732847924059163774568036574775508851301149729740033104468027571389152402688225015579684000117291897230538297103207977966045134834855542214837171275539670898710670691485443322104114635535563061468889787858995798182972137108195409842072919363016120864938348050962596496822865786834099920068387775987749023522366232073976549237109439327559583135795263240708639873396331489188185184487254266642153638714973045424226724591972528810277322038374622055963216704026286800796297247818706664918851475526490257093545053347974626374493139965607388085791772885383451358058692498185660782096867319770966388027820409427214758792497877810383702626649250664227301464006032212403435644638358742964261948982925861652151986754622482395958994545374782149946633060939757622034899029354437303268302342834443879540286293579202926653769298837352793240645025735029260534571913538764254171484002723096589860171371541140194430241468547419747448107334350331151714140685679097842155692439564050036072439816833368373199332197797168435798750079152497976401369983231913838591660281694240768814275349701479389586573729432135665843674530022323019395917808371860303377563871768415923934701171331162848389697235525461972756543454942684205755000972119677263493092418824760043929754360871651908301233385319936512865896037817989924673367270453304007432154756810272851971518360521213341667956723908579533768681703983895375995966948333596878507011142760965042857010852541085485691743931765703610109551478652989033586091681460573649171028257440047935160996998515728433272990442901420959807612617766375941915340986418804378028169173767360835146022493645744618799306186807631377532453560187257018364173332285824353287455460273739921589386688161519756341164292373721338451802421432517369595259150158835300297465942150232383926616200255534643438034044504106769684145520688646217539219168056834867992155307245911266595148392020558521032460714558655531422094692505888942179541221467859180416656180685914080032073294157193297886594379701342313601430878472270170288071706974703428943403505452640202225514049268477590326470057319914361723069385567240933140262393206922715288100695925791072149407419927644306781301243219721791592937700218595116493170130114798473134140273129718898518770433736607774366310508667572960355018078732455740597377264643027604294316801162266109924673414114031777710667964735864131466925923329717574078114695633513380231333166317435362535082623040051764603166897832801240374626228767282047275216151569766814510077108360777956578329157360579066523570710235754959478241263463917010579388675413591906124539774378530473485386351337671108627083090894259725003673128667641346876323158119957210064328471290210305296925390579030302051552565354826415094572066674978687682800831632672876031235102810572325566982985573854708821148642987898148536545887689621465801242280909031826026305352842431927656130052561422527882022507932481464102694386791659370613416812078054406775252281812128414360799166214134490516080966063870635445997136843138009071825990145678147168145522932995271213487943927936338962180308991080546211198428444655041855823838868076884399016473321826432857898077863036195499575849686591284353899367288033037064273912556991475734112027385288615031997325604755064875235985655151870396794540541229924793888838610504433394083641308280578208620958881136170090105602241652057179917265360481690016777979485109871035156821502287078731266371682765808794599974781916729008119015845985017108422728889129409435136715530732002673539029668642067652414968689532138943449586098804016284521457188318506925926974683467916833949131928988157168124848351279584911432855665454370733217553921434975908059361337195968713290694760247731555252645605936653611831560296369941651082463688775317416244045297409783496427822051716574043156997972256892029756551721633294900298599861670676723537990955025897518580978713305329190286750131553209058599536596843207039075108765397704760077909458894362192636113531087253393763259863206181220552590884765191647731487730270358928465286310847565036477217778982265791301960856936249613654638062909156960399919669286153825048623376819393186101637177281932047017890914221267466261467507724890917047930022493418586599749839587298492962683697682059080647414646998630597372858571885114632012686134621145642376705363835065447500938598989385045992286660689557105775908666525766387199857771333249256537463335729107685404480165033081224784359300883201395277814417620341207061111958970605098596644065928560922201523581536101340342891785801360394778964261111905395573177023916015395238497330492222314229669102910899221511728229122831915672604095953584894154757547824720729355613317043173598418956219920969045028766177932507087531822916519874744451710716694419683508776596811101436318886102134917850722604934062979113273796561653034534373706483727436317802723014402366075295336912785386908813410671279137132934083689040992181535016177845802439552135489301540059841283833211804576032029803758298314155279310408085103651130224219407597901050681725228946701703542989432098888428660172582265616333087031406106042507652631209467581529701091657456963520044783032743982475592471065960512593464919458687288740655767986781843012496500192772958862677655816491496817263063887479790490587175574951783471326947372451844479656072810426645258834208351585128102034909873234008150610035399937537104981172947762993762135717799877506785231935184470277714984388292247701859362140499292546677410174157881655640793057860061600634899752583502024083668950228934085832272966296951777411579599243426708510093459068460572262825568979704823630072472151526152653808194244237055471210432348648121779268195964676916926115764188006956304868655036942661034936008947943423221701440705990136560254265629507348244594924949987693048591626960853767142713337441776253137697225427480683426365972808596505359119336561297326838602104813357773586324085847921845880469441976172928939035763272307975573810579554335120944736338670884565667241472600881352944956361390333727713502914709391902164497436979629430339266672470798157353279723328939468502707268285188905883581997030952426150394950222173323528523885069002909633680688027581091238818961164727944954831419346095146513844145400742136965926256283599105969455959258073040165981978188745208375168237077177459957825241401378931324920761757593805435914376336081880687468652200858370004730119422275101147844280512219211975633388616734377766497418020777451207876846106463842407602167095182424391835105500550543714887301370279612576603390935313159526312391772040790435253891117290821632323518224143915534319892076792341175228353136121235182683542950976395086059708782243235963308810591721036066178519107080994587690673429124807521569615372660684332010682181769120996491570126411091387734688505929033628389030359864028225170573926047586461765681920152640253369376393221510227982324352928107813388568846278210090553019339329184742983530204346717744670544169467848949268483188103534590321796709097594228058832071337559467673839201265766231003687956086388925010194372913127720168579748699516249299991460299356243298966865892662010573834613284885583885807332125151595380546343473457743016288298017613736680549578435306468388262016594034529032394493309320499100453216003152432353683606802760995220170216125731823552975660987750345706248423349205512054444366158505327764201874070640649242163183011468569332613182213108406271427835039674714431544408551490156844201745554517643042827302039183317516940481349069273063867443916086597780386197827076242855209776946124293251115312410267364200108076932434494098155154604502018546847125240594332575095074319706310439013040332294583759427477449712392135393724244071332731814890671824601152443482374511822288533479635054690458674469055236609408755621789388667777427355278462406821510092114148041392128966461613823764124234028347015337137557515842526064160615526969319891240025957960250686526071570567052608823338219440401710724595286083344456011868074664005475922157932980468246244603804825034047526629953181594604319835698527826316587644880804969843232288181843231750037620963708241773199602867248581865333023181520569185381258465701026888870372335073058827763285294582246798389318107784887533967786273728827517978592324768347870144154896154426992549689916701078942619935849090734850511326781770912235257706122675542572376439483024583036660334706632823993009422923092470836574229379539821912538734816007280832852814767167419153520172887183716254019195604000803280739032272297782156182012264867554438999364954006416154345903056091495151788908662868462368447035523422720548191362324971860054928528621691901900274274284820363157036370113007347917844778373637171290307738216893388736068811049215314649966044307131462221125357243177087827126291376262246594522516924577526092447748379464618017457135744354946564119513382094420700161099623211368582096536404275467781057085469126283641163035943627929052844290746460227060823774971975043767285799933094770540408055746470834224018331883271023035285114905724002963003668838489697180606949530593811608862171512058452670860898167863421051318534292311143149676773803205215569253671776190424019580627564790852564570974186309734121856819941251978332399005762152649574598082227732749682220229821880064675372132024988175473473091382737016485687152725661480868900323484808471154644479695830540346477143352621300206193325726558325851034070111306377289436882231611330256910782152869801434242400401314566913446092203429399710983746388776057187534340351328162990283926760201130173116343184871249519007453935911738358863766679535302730524576609027389021706955523250946687788590535266581087457881696446070527459546326004535733944579129351031097519176795046153630452271165733557311692849013489104512045267670543092572834688405551328811870821678832879804215287469569677742023867227296439637959749371586712246016433003194044428236260153155737934194943307139980814151956972609658307905329364565682780908617607066706138035958540669106195414601522480119064575204174806441017395565289216275934940299303623750736470413745070508499106797765809087603419198584033689158357677149890791498224742946746456931415963902221053195463564591906749792495887771208503727532885487829462947897072991165781693938426344054677011593570004796014354568019762948624387389804001035175704188349455278790268275576150753249545520436900771715627646731219369206471886908074460862645479598369179445212643296217522664959250506350531794341083805764089424104284822647636608155079173223916284673251998149447787820719372440809582395148886575016748906155349254085356630808284527147964289378268368168978088524552886552068600333062112143535873197021449422915870930328807304659264660722038079269230935038426793976701725441405840899164085230994544571490851684123285666828861008015166518937119042305461407443501044772402314446176697937893817950624135595218526279223538908549205608474417038829391343579898127012131865887837770690890472057823795531796427539361093802702315348347169299557329241748752549044258834286219601523060013545866935131952452684530155504329333518447017383877200321680759399301280131718900747453680196308974925169813924663000361454014601553354097476486777910487591833237220129645287884534633135573420931294119255824142812647953341101312265319063844702789092984124639460327174848576953712418679114075835752375809469974594672175512264000452382342752840954809308215162214630102194062035942046496400939272477488712108022906632729775178895609205318962459451883465454836477177812344741689921108487204178857225627959526289424914976736815776554327905954193818817039390555930255985653900626978534842040881135327904562538764079857688803065865554476403813062351056132985896211207746148937517597358069063622419419552872720832252005778801471620300830158472554837144272679685631442465497360515926135531082549921246409117164284224811115823235319082097712778614271607832596519387943447821839471054824065548608019671364813383297889563446481357415398491309494276614892496121045717607929940048628506982153430474823322259849339750813256369710299786026504892917048459553404662088279767540050510140682173364361954402553803135589946482943585351631736990721908833657050858950555877936434687913295741628831418857906243935977177448449218913790816921682308823055797652926306046411548274691204560436750047694797455658737901470166244381931941767501922006084548260984694298067137979055212603144725728538755817015978253622398640800888397437437350260719968831733693965223871460848281276605533747073888021570455944119861631789052102974921012462319489245855803366700777813918909851658364327585179122335965732239298807686504812665335263153113480526878167133265944390686717343832863053381432524012396906101750364561008430180070735752504529548726259663000383606508080186836963576696485198128467871855666104770930122675383466611854941448062051572700758362948896391438233420348239459971484582837459908416379965945980480560205947885954177234603191450044617262712906207395580568105722008047047191201814690309300208790672624234405508578089131594684473491528625770436263544628989967362171080120811635145922011413363977368595961988286507435856734116497482221752700014996590878347863451684548679405171793700432508214563093322947794461155431192348173256658329518963986821963321337280893211706188886108888008884049758319679472488512448011869404635184222752371525563660437447329312810383071333551751290906710388492377310804566804074268015955794395655706450483849194092822501828275240941624716356279943133788768644004580018902589244599230266425536030266929341093753064684535370865256197748580781166465511047163528888253293013697250374485168825553914815484088882455240982878743384258684632753686243861144979830217837221535977017396799663384700756994997306965448975925948137999870216285112625574279008009785116718347566073810265027686145097690211216843508861541062447306642875805045769032803115711556383449507201715032760322589887684869872637464574094280023920193346503644044199309208298329641890831946475674764841704477943969173275378684964525192493963073858979411050772529811541142931151158572760059634971095832933110390027797045961051442611164315142103951363208480378617896787167745359092864677928751295207216408070681211487865942090254321873071124022358756413136121137034517970295565359085115239715858443305112918547961706896183229073811238980093497722885179130246280330573817580789796382736675180305266326678105912741687753181984425155845349366722579668553763482035262529183338292803207467734096407040613775895574727637706610760167447077341502861166461077814144425421991767212376332764471238228386333609483718352313923602820177819726038739334748661150226286541705820196534696279663421337697260628337271055969420998189952402263933699705100522169615131713975625541351621219737077899353869767819186741111925670176150763398607501029851368864378313405768260587941532764135934706630422437891326194139909214187813757178510411007047248505167685483558008549620259618566958516992401547169923407117425516852837458162393813059655501828124455580349884047618686200970241055682885471906375460279004098332515902214993518672989354874211303999092274802653752416289707912823639966576253950924485369057481301964765239544102228731005225121064894065186640437423816484848404771664296778436648621954861655430700814115875569471270022063810471428999786123418192461083388555098622532154785810326265322029590682794885591134001892474672391444541541246106949732791016917386487406125908369661904022218670209543385731958432544639396360897550837547062203934440884121648970612165280663104486236930195909448718053947160348548742481247162204041729093385724759778772025900129188753807715488845838971153928498222854492781925170174587501775525215545513528352979307814749965322069141075584550391301084011251442387724822741556873372024289148340549808621023686655113037672440268529574598220108786048772366213972280289503528137504188670396053234115689398006689316667751660828322592382353903400320981652859458158595782363538665429261105544693888631456334971433971676360346274727383044926455035662696498651004019399173433358206313363159090081260120212100822581770540187628189388512381414186895423027386752652588550681961101067682728858611647432003484281149549711763385204022218956005985718610597688747869194675815977792759407841897867735583560956433622359976791453334037504496521287481846726452818695331392178276410478611678963705449233626784280142253341196261955170737413762718402971389667675961485601511875713349725151519564476504880685077436329338518156281581309527588266976673002432851764617890409319573222287795643868889038169504756984269987900240198013405060471381541240569480156855884869777323325929645184286475619898999637343915020220013687559100918508806992597121553144795559256438384551757876015239050485398906667466548892725195323838777020708603385334171371896399293757303141394676921391250048283607793567529713636988829870732090293029176870155468955018071908122385334365266176072416615209022145038427165103900318702841441382460666880291178735544746274402950970920779866428306595151279183462825292098419029365863026713456196054004572360917785006349797467244503452288191221431307863238000369328212348032686056604958263231913098180610198764946450888993530256190777954680977291977357147398203550669319559300024310659249702015308433247524390640176832493887126898239553294358916513292738763328160718812258547110035720061279485728773284986334459645116921846145501266230558929870766795847978536518425140559073556783805888224333632973470166843847636542508744390019527997335774207394956832668396428360037420649552288964751986992279705480926272237602404294441530926699881656105232816259611112407163776010621396310469348961829337521279222317919861278012399753394720098681728251799125541695736721895130983092374190954422996458530419977858180078472963265768458333291791116942965973189102401151726184078118794308154504678755471676314497457310657269788175695095053621121673942355074696684769258418501291909054143682222291702685660927052022285232183798367071780876014719572612172868961213668667401591877340028863266514048587393833115001847975165036484547917208083737340146048745689679973563990295422826353008173533492707191352955087654403128145026408789576505951426586714162638540329925249985087776849889479162268683979371298968637251538308232614434422511647219432771946697445552838277440592874543347315582412129340782841091177325533216278159776875344863561275760652939443425357458642518664597538340207250613967425101869830615945474310792447698010515919741091835939920241092410012950999896442243483521200273749354702716395537361056289332334873597187649774166825552476140622521788936128485354158746307613775964675275617235532048631779426228116798381375311361718003566226445370532872120639642499942912457024237890659912651666511540492993405446486347453466310874832557752899372642114957579043290037019013592211660848684162719276243657385863190368996381134354021517161397242435011659594401765131079670323896736415994370365504357345289896220249754726145651938025904550392340265871711762018187911364477042241670841262931081249545048320084807425755905541654333684308438958910139439247568717104594529056970645342728757892433013709259176615976884301274372508508680489917151819832286990593027218791877636090889127543523687425586984550111216020653636177650539884107378397004584727622810614756764663238260708788797203874291709424242249655198891512390839096629440486258764659960824702800146451487413162313770113206861295983994244275272869086122829110534302379900469823421442474282088377975503972048336065257534405714914330814873441094684595758098693722292922111233021446026951476322050934104203081015751361737735939031885428237936643914273646289155190623964356760237098188181036320942703393694990214023225709734228121518101180189013835472904474185143128576205912165595927041268237807860150868285552590453757400708796422747131466138955809906723219703512520606302567821239093664829628664320093615904713575222064423065069395982790441648216662916152913124132281814230634679285510786275672896518302063298164064534389988824955399423559246442350949947649817307715927549780031844323357285714903408853001305814534759445462315926533622803275205353186326511634129001978735573945230102406349613169916469857367285332301905646580233910266638180803472670725042285042454728034146948133551195587392415861000248585264860874118209574615391805410381993445583518263139955786296106388628537167125270195376045790235145280300489591780844938189630686744205636921361176680256338686057101783912021664031060422430409792018187533291587084662420119891492872385071387728374178222885150826309115605727706661568647403959703502739945659063320240499738481738597145569530287636416493733135898292400909757323365136471087792275799107813435656301769897012719687359263233982349824679704663144140986381324780737352313398318730736447170784710485489881334688306970964885790198870744559012476723730769569865315481330205473921478325773909215846914833688365074700859461563042597476914890033523248574931710295486014692175757055284229287406654199734218285724402064243733502072675064220807297834820764484952141982684299442161119685530140983439389467356605467035227779294536898230936377476227885246761091973964673118822605757960356172248362798483047262812325256549633943135859955406114705688661600060850423188410980057027777752894336296069228632072213749163024474134305597196925214252741672797761970712122838793072182336803831734976694263105724947704784593449314504709483460090764589202195185550152148158404018952199313683760811626464541766770043894169723832624129366749001224919152872792494528912268109518051476234307495620583031727125891285999049491211177587083379428163435573918664250466822696290032516162347007829224692180067562412400246724610619350691157253360114054159425275344478155658485611045260722918680193260949783237397652528948146193829438928974623769061134610703686107408149439888597479358310212087527449395901843347081390954388058543180410783109121903601286751302717610799080827708830311016831149967541319665836150165656959253155368360492844637576021014884585603162177729497244375147179063255162945171190454131388157968230007674684154157270368120688898708672784825900300764553165265254430313579230281206884031706540067431028832672266381274293078788384779753640122839902181032144848390416663200785194752225527531707770582736384183955499005622983625322914173949829418656233534822469363802827634943751919051571318461378126948593080725541732317925114233546798796561780202908429348595402707371050965662573786858976976763521054453446947310110906767214393616519180749931217216654923440422056043786093803062232444586331990002652956940465350812002776124953941419966688522142777835708941557531915152608375037952636350342063865632213803663750717691055596439982356487449173253530459629817761320056963971151266841101280641698594750891135089136840399819031860979657696673114263277979604830724740072661610380048922848468173398882766181837958814511567286230936182176013495601322477159898151163040620274866282274706195028082332052545818375834734616041861554853652211674975500065989715987879922567155005366686042221635391327087330420460923295834735650596437380794068569686137598678469766372099362490782804542618508546934178954086800748638261770392878466673821807387172780186350352767945174105235328484432367372997868158514857312297824440130316390696947027644280454960542612020197400503723605246235377057833504890561390063637859282988756419131792265779317833484524107366825081104474340494129731715165407060411779786219113184283699496060810552553727253388478275568009386566432790941966290128577583404064429645212474413371290477122734755257231619759727284027361686082831108055617951196024393368657405816357848118172179619941270940747328296076420513808199932011323703661609935870446173984488747531837750909382796134978134802842244924452888682197265268435750320101319843442754399650788685035153620088836022739067512354187870955733259080632447007551530220486860319755752909676817371910671552053922392369964855861969676861752995792602965677094623804407006513964269316047686019033393702274296103257013830292649202163078491836848916653044166693291779837742540010399436637452237007509957944383613100797575073109664476094925368749424846300674212292112549652535161643172180642840408199168520969415329666636447707297105341739439889451546829061212216628029712024614682239669394287818771757880559624744073808614685512323706898388488095424421688562025110737187935196934257379072527967402806739871164439028348402400537684734640677401323497805506611768294472398002769027906420018965260671697250677735303513254694725757209934389268379419558348228767017353571230586100794445172198848926477834198840395301859418070777258066558453797268685805485607629940976854269173860114170568090518155587660247810411871774011160684274055107252270801815280377238642896455627328365466219575377613058545836146736032081532174660337006631596973739329167099126969849466464307395772461864725487152294288776331339522644776670992588376256952117928670656520163870583041463646818410901980049127469369521298116368790737195442469705593612739782491752055228405664171074648522764997876122488712307283596490117000375220635919240913744234803653950266586361704421030781717247895310513794693256253549397248094069863777519463866180521575635667469303559015719782361057784874909808116172941513011995405860682740316957183315688486723212393816907221662318467303347218093939344296825844014938172409099766996542282621509086295280857804389976990699715701134407019659013046615490888054587430762212466126761730882152638730434107951739825558468880644662894356528023864017139975342784743012099400406485833573003703666043771432008815108504794161308797588249661934725533932771434327212662748079906346038482455880078283250923976744831422990217565799935634293788048498869812085536059278056025507829234430084130559079873222135859992792961490792695306407369242620833675119281901111560242435240556549552448836528765341239172585718228220320388561027253909309004246007099982821001272299821443845268355411191791680186216664059721342404899275744230565511963103591407669184093918915401183128149272130650995957158436137217719472507739569617114133576140159380581976770876474823845732330677923342291370198358723740323405055493524042492367494049941361696085755942330637926712565819492027858381623225633530919977877201063001750457034924777377503175981565183755507294953424977668478230438771978271337094795018269674732573175034656706699120947866511387778099715971372762740288958131585157228536725659540975977783988783338127088404532822629101079574329337530009684803933482763865792264366137979741715332988421529179949876517054974804825441730485951113594203531256918399602483610105965035036851448900840767976653178830750155155300461930871909790004957749992289759832695091303375178136682919084551818443290441682575991444993131807030342298332929415346113415858246539318998054934265838476620598482358098070715449686863627782860417186409347400174602547674319689070315243132180325249050434541606762856124820428553278783905058663545689467321720223034206346074509335665815266539549532889942006778494394213691390788142777540495168897562863253564911051317258609460427755295705885642427591241209959428294824209685308484071915555784038715484127842742160435573084211562294543443787909517328423928563639285961914475715673297144636073830974832373297999490704656207573530476704084247880080764542163735222734966446444377870017710030162525901674520641599674586622193523717941465391904937623355922132612913326526872055984991782624781834831109218606095475348690576646090471260851482884149276516057645728652332412503531706958713754688049932479238195632558660525346794810548909355611068525571440473923841288649734372993994315147747784913719688347328922654836213753373566047898508793046514808748354199030408609033271038698283673468961199472346992930758058520536916498253420367278086810632888197848036107733524351788590931548432298438521922795934054549487833121990169942634399191056079223165733961332849315402100935149327775788210334884623780611357450045653626967241361768204657705190052938904906359320615783965329804106030684616845619927709526953013823263262555541017895309508584823165106836257278961141571968922718857130826590917222619980441272319221049418061248654645070710548601411441863948876557427440924610946135099719865910860998708670813084556541773535050185129388119039640506568703602827964260312920781675640466538354531423326347450451000647308451415170529776689491337739597483045523737783009156941256686080623299173720492986982834882518528883165298828710080310184903831868773086106711810910225134198321836206417774372729054551679962891496651861626689455227738936685048482435214571237607602098359814055231790602870552889808165169239990378866298213440722669630969828296482786051400317171900219337507751827034390069391299773652513629619280062043019371492015374258165432640578531774680820980603027247321391251212220194548324767257443141979971427572849686160337084537322254512097683084742513831131852951758189495447133570767727111274433703315177833141226548663169104457381955048924638175374012831468763333468633675895251522683077108481661065016413148540813963019379017251764888959680558884938639128074450550073775161609562351265021134400077182104881721583724816286752508759659644235299976250926645317256823056002976781203504202350015264778686808460861909061072467245847538430462284633342123277663455355608932260922796010736164761735972832261744333450269219342525102754333419709999354124912346395605365319737242703431619156253500808802212909277973038581055084130172564957556416816314926563202866946946674533327072503664492294852131793768718924098081847341047751600430737707438218380250010195225294307637561298204663924062496039442865632366224246619075328669110570444581963771683853287389516213487319612076424363298155227614532310779541426208017118433642973637178616601852089639879613409367561915498257302150165049846319792165654377834709995553272642849365420780324661087466563534909584378484727917118858230406101645757969268242322094582883143736519472427373033932315562833587872006699150004168001646507074985380050634136416170071535191864997436824522856873541838798507772001342281582115541922330119493555816912054121455775266724332052588301349394652697001774387317357508879344533880451266654318104201417416236673304719333581053761837614801364381396683970533021938743046805587174540728291107722457960942146590171599295103840339778084940650051688961841830626632713266485203668691756743024271358845060739115510662089785594271033481224368146099692843150022338848547921112181571295743518724090636044670110047722373066125860976678911759289833627744431503233865440566299482359547386081706821745282943517468643451604958936737852942640479342686147429906561629073280476219530337155928980604012662042851397688554179994298750956119989566186401156221614557552446044760215419963641291996737300376850671573680716179282987037791710745539718626278534919989747415405218221754122112013665437264245402547591478160710521467868181394529189859320773069558513961019804516098466188221593592885972078965776900071178419193212033287982961060930834633913126171019249032960346566285352255681441504331746474169795116343316035139884472164341172431437751688624353834264273283609528206776560049238205859914930706601151691263327216925168574946842554701467963640651290572630555225544859984208938126956011945497633443997267491387904577250776400127175126653681124274772958387027420378660851002482015566622410243797271409747962902707813448179598405030470858598097470399617265839957428604286122398220574258933098184749808535779711544179274343178512690111355762172441336070119737635617708029630284477730883534869327873689832830714276797392982526363242418540341366691258125210518707188219620285615329369397647804162252640952089939189061126610198197537267876881832169546604394567731684965180981042375439924094575423796219988592775150353207409104687451910895641123459958554811355600669050896800626865396850446729577461098810241923294608564211081538501834061750037339130856721617841062968161756545787449308031940671642771072079469846179717499665108237560185654402117395788645030322633405232167272456195324856954609526274189148469702870483823934199252749769788177312953123730619350263328274684944859776863832738462412995532993934331948254734997161664919209038797440706506403080739361923851673713153460616471557396668991764024860913906038505619716515991872152106268436907303487721587458680472036125628007644952290156934734052140791567141672977129038007324095104198957483855704308799885781613294752352252060082130539502652016151865077998319235887374994485032816973210360068414659533922947123258164442804084163660294287682173446386805565366872426986453206124728556654119716976772998242883092357889961963256244179576105414838011847647315363118094155768219682327685654846593838528193296075125581620327363006359442782266856743459675949575221494901431699394945931023621993940756345233863438520312274901715086561071689182199765615166123946032734741531131162225163706329944995990436884470694927341978221628177780950863375026537084449751738810410723599801131229678319677606737716724240405454801409870742857763838081478475723645415120171558994633157141379069653400186613682515947374772349837933146729581802222333318422316226874621218647750216340065128560326963845136056013263977112080404528649219553496951846146750684970038316234213799147852754337316549516846320586687656559976297476298678390514237782017846167579698007961581371599145057050699227651096036632229557474059024606499316693700905550701629731988077796857600567464236803376167635583929139215119356577594698914180503898748270830970033349801679373595965535976762933678110443398787012049020605698815937084071215503581688760572652382699266943331215458441720955925171371966951125015008634008993016363742364317769514743603656287968975126935949252936162785524338658368022716868034462224202512290003251090879066323245173475958374607007917845119374685113675554873029516040550286270788482894872106565851891930317599252625084604613895319007908489508245954703414429883564151557025005175897014209395616830949485462498408647225056345552574452788984218319856391824361134242948974481375162590894881437562683347345987124271870903946191161573233361707572297281478081241012351104912786136351512659183752669022086995302693346750773250877393321425072390156889851978996887567766843871237644454736148269627712529071609553597586907429534242367521107220052245974208615493031505592721496225820246824528338852135762867076910250381299965041774987710353310653541502575967524857497272581636372964370034319299731074743784181441836353393759957136929531334312907230698147075714913509378166838898479373554393861534305276262180379375326368515185902241815610837510771838584516641859018920527073110131306553020050218612020438813211223483322907401884996120157191025786568140455279647660689296941451305437236048668349924867016381929732600635806267472004344772224207855490187572870402943503911628679012923599819329655562095178071378453743725628143401395956307249348681002366580748967753040866201195935592504589756484133918436447252365265705389108544657758596584987199816007723852160878900969380034476235659344439512943919745622279154255399910068423172041517373072092188963481277594767601943526245838650157781999809589852826720362817768428670023272968554211782206654992032099815357573658523297118270572308781314497436383901483097126112139057560908290810084226766758159585365220318378844870243408806983659425484949175184547886067741850538060810590019584848223035997261993122835044954601278942243269299763612337626936541069863639274295134686473846021336496163396289378118425131618659350187771889947654694295910032938810808578311076297165918847012348897198267010064881444426474195799983679844705413814892033160831689306148108096527852041182290963784229085442262201012221668317617214726148415923036801073894438487237939354099034580046819685190059319142326746047567605843727316825810834216047675383209817596593372023532274536305842629939954206394275548453632987817149173339172053656475933211997136147159837102416829753397754736278371246555425005960996648397360257748752361216904283676029865888103267753732937750550963778943747871558882479168349351318521698573214839514779787353270663223742174787976986965043528017325256732442358309267463778994511233892207702626704007427266570667702095097588708361252885500902144221729733059255226804648407419409540025516168359837457964879625129463207963443801962941003903451593295009585560148539368804188721953539699405132727281591170872746194153824623611084250412162546342943009788068459706483140576545195227620107669566512364653890876957301948309484799013905211839790204519458307798217315817611370893604782933374481981563384816968360603519539920448559874079273195389110842655157085315445239253546078833031940307033973996876754679658029568816072861034882866200098159954439220950601171312767312556354084039641737102878109532626446588022299415190785870620981059448786997757787935533099814765447079795347555556560654388961897272044528140289685032492737831498935468230625260070659138611352730424709213414353083087776660190724429854550126088293429173866244992715183057949421597401909501838442757079915306060950992350199501607078731627095110073949219178984549510746472961428796228022258908097060290427767289712785021047836543913853056967666186498060689373503363592185977406118828063430921498762630379392183302373197284335859740956959725612326003310372001546467305564442580199688191046105843696913757947691692113311587135318553163999687124792139991601833320110868444338242422636116600452126028387976427150032769498635285242600521452654365566605431813127633145801853133784406581083915930018429435494568750732240459779193536608264646191800473697893133738343786090101625506584351456191826743785919358174388166273530361748299635259238677348417857256391207200641626013742521276634444999279272938482641932044224733381049843864264166481570370253990538452666279786022424145821999290490764015830936472101665032879218341716097156620478759415108794507246351539066664569146891482768480161494921706628984152044085762652346814168777693263380969934426303109044570309712739702625995658118598563351796420455474879206248736124166078902145347965492339929055298383425524907893755997842551615463056274783134401170834363497843627433656956114021330953409613984188445275125399520229904740178759022361591207532339397991159487888965872419301664310852290897267574228688455818468901717855800638132351630507293858338452189959686711275171821473839312564462463010333446924042570355502950498365838050758001344078926308477921487461517532461368333763921515357730581029812392322646328191546600840494693395520663951664298292037306247082952081973515798670902613012060233857488248625471404189506725790813974921773966735331686358676160200443271791065009456230305416842244227419013515786683509997004202850467962782793483923533798074338555848836511457314929886780202188183435170270726397113876272904842598131774361172495188898495293043418484940874848795206192449786987287577158000828528456887302689007600011458171173847084849284466563405854293968002986677266960533640137412287547290737414680828551867411404011269511628758172895758429094510160274099913979460635938295012947230147612643113665584171668581001589210060160357232007372862371735574287844581192771665568828456690460951473904220490936194015054529668913741662116505988299877690177512369882505619416662196141722639361916813036359690944545428474433199855718988691198729585074981533867161421141117627499828504982280834976699159556642463809619296302725842585164888209670004899597741418926254896638097434171755285650555028705582054339487353449374244855443978026995778241606489904056081539900258210818119193281484546210763135247674829388742977993530933849703627229481853541417062138740083944491742551042286768387559233542832398860494281554102776144363303258456215220716500962192822725723080325647117324965700555146069740811540928477390719161503189307753968242251811831433046207494188273090004854345079660889022144737580574536098183354847396664682399212091644247463888439660945691949216413448261590355199054254660556481875323992681326527461409065562828966259252393169976819018584725218015177090634114478060048027645587822847142323173949924536224299440572970296526788185717979100705442449525108745301452179979394276616690374177908120710956993204115119598955507528869438855426167743074064541428595907989376628522495931874474091260368070007899300218022081716006524710848560928414973933371524794716211422108183948353739382974508940123806532098261020651581592376744166438121485895052906072570153984378197914422873178583395672921780281595285537553736214246182160309186810988655621961995910220438715188752729400298645686071338733255390036177957291355773178844180435239213780929581757407134061694280980665902600799351037632969842398977000221483596876506057055543715776884876106738945107075782971047059919904564123784058135271020819334030798121086833305016179566093549198197999644931929433136111658115451411708881161498491219823039127077457385244816084154702582753295405916677253519486996716276401922306648888738295038384803725556891723982617064189148691693464310129779486609127912501152123969262849248328330422389493092409133752167668544928954996233897908208629515888847912710546333650955575294526427705890061350291932944670177680244875481641599607051655255629710442702919823152247586998784487083270358176852817714529920784511538575488755521612334036290274732932686883192916400974513349155284651414771731115094557965423560303569252421779194603007558843659494605305987153674156761556632451075131815214021915121247101862005511117415633826931560012577376850357974032825766374306863118485262939158737800522327607601879488541170415377038845952812038958191640309582098641559405431226844717051729138168782712828920308449119536695949903532372909949098380350572897088591606431786718992602012494045083446981767688476210924565851133018336775185770536933644212320327711471339672738313498238280125294938075624912442821691996517430901362243872661825646842016775572711024035843110360978841738198790810628720272117575217585673198864456161277049417946190075045855707052402961766174329952445999688551976574169605574533770441540486271179618539667840676521640441484535382404306759015925602389157991342206469910347825355941533193786867914149824883537612829937661218342240379162991630035430075341627578182704307469319813462179913760259770023276830015443294912554085630485672741427699570153897370524919962088174219941014807909624897484604510351201826179433193830691275641955708010406347281134848710398320898629335439438899927280213331532536649317319969628671503339726435557643793691150832913574095812677662739967849791455383262793085704666717535175924473493733786989857880752170113457485621132803573880030565130923345682183841212226652986179084616476499115546187106608167689251998377375940231041665104519378537202387463202557540535210109487879945856303053647063982772803112213649298087597648093484944664862580274933275954388536177714916690358248424878849391657371178772927849899649833656138141100075362938925153737821821202745886486937250491239024561779399209001599001142806615468696635770233125907581613816734781260319520161312292461811847775128641316439190215203839209798218391942966322974314873475485515053160507318623744650455876628493928654931354287981058285626606985993843680524618677077883827977561960389605992217626250668505127338039519789887158224733830830159947594178416568299436987683843420936498903713551474011709821880791693123766147182734165142816432362189688393854798657176102853987395983596393417995408985222607697088808003047380206243359487132849325475787525000492930401404813306441728080149855996101036444056448548883418946030886946250738268345840202809751422238246666788247850054255175104538942530829886619950796984262916425139821850178463672321383166042066219487666062668644259308229474304632818251717382640846123843008638493905441745272275772613834401474122317749727531809417869876719016120923908702929871339906246755912830334354315269612322400468018602318270211415740612688455449571090859722315493522704593176540171206656279271683396583422576809248480927061188790201346358675502829966313982083198843452425970446420589488373774108088280808201128802205199268600328681336656788546246350547623122797384809551540883375377073990207690119676709820975659048083475762107129552767035907705829807405197305595615263962133322875657634574056560613513622307533062733168020471387048880025922597829164782877786557572990364538544680722571232828564599092254740157137673716942525931630407337552965644344182127388165975938274505173793094344892178056427876334143435151873591816867645175769524694057159656800734583277135646821843572222642195871914394647987893401569613543097799255317133737638029574415271704015608095017494819309992079650514684313348993605749261927246315644260609474076802029302136147805647202080996380669239578356281935816938872233606382597941495008964131100933307703136376950630533718522542759867952993712717860878451753469063469156403960251613812555503131117013013914204745347425514451684257830489126188516651545870361280801357804504812175734141592962082265634887202286341893277079744350718865836393469748163421547116317811862465826880911662467422457610397365933854815305044305660287101325697569743747594065034984850924799739410638270104101511014607143297274625287217740042727703005176263904224402252986435253185658964329778933485627842110013000643896990779399227530278883842361261015752984244994653941628630770023541654649405869794076476439299711927593171494002601435602749634203230086641307316031381904610666778924873681130529436818869929362099080856698369024433778270330207436080221915654596231565580964868820797403932043376092722322813767273055580154197108144678900423151344768116276063555276903966535840086607102481191318296613677884835691281836360476937839877484620037806897581015724861602153968219435679022176281183147240989047405205038557345126006132782230640544618374046128451248371825743518767715451187757295965376783729159586226352189760318268324304777801843430921298592816942821400003456598118670050205584891444438821274770652450382208483218708641206072879197990007190638386937758590708170339101606135991610345250043783212757281063849645468041148942016953225550088033993486465187473013916673752781807312097528224483384243206940258345530234764952312789287423602689760859299523098351973896507710809477979551956870022772236081355980168103249279998886455849250572884080763150380048792661067947045993089777044522589919922467412923884476616047106406193012912753732873635411777230120546087887000888791720401456571058907652295027145450943265700888001989937830405097311321984434059107075692474756570320403134739558124244011599645351236252018246775424762424578279221571543519516789304631347323879062871186691093319341249876727769100165730138943251486545877505568506751934130089586984221976227537647334587926796737321325146049909151751528079036147455615856620159533398507622527150727002916384593924984408668204803584922951961920419517225528712429215094168230973020349653466525339618461714783542559127390477948868246585111717834543216520307038522319075280767985146262709419947690236172004015421303601904237893187556776663429638304971536220125080279551195661786036090057464149992003585305202009925411833599456704816853783535487929617478611876413248324094584185203087378304678750137323986153898060299343709846252723093251189130441291190440349676968472561763496908671325023095932098232410538401984366726048936044952821175325029991568991100070747259054436469570738201432409532512879463764742140976870796499125455486035003316132027298317348790845161204699003228247468425101139235346021180331347562399172130499573715534435132642509089901149687715368108177779332706115811717164211106760146319072219414842633629606998774498687394376481255386812506463257674658958963933648543067300215588308253545137121679173272447015548192044305775846714682493884139985506563881339114918661218919565661299271844387794186287083784169626304430094175148555463297956630297510745682390580283531067808312213804226642506349164374294624540145778988362372610236268007950878010181158682512401839125127975387762452406413387141663413075979321489107745785604366753044712334484161589387252190262310646198479102351126155692779522553957851934496721531775895734819464828312697204689844030745468313299036658417924181670927473790742702030394559565918437717776636316234843108871192668612088816968236454483200011997053618710726671848795172137894038717777359184091741176138591367591324603720641309725075981380580366205645919084696073768759609228076000409411363752813506718802981077424433692781410675941431301787615131152071993135562101898290054185294214416547042591717226222729650151069864357411817000292199440543672432942249912535049675293256949772297892978949473828053135950244633406966876784255799111743408468608408492662843670009436235611336699635650150736810785122134839388002351409679246742246998556282887096126766826001306835474305509047268302017992784320310182595921339558952190850868656425543966102318230006691937550889384775306272477936536348261720239772601458454633354007172151274733577744696931690453454709688417320557530160701791851137482999726368682316814234073512359199264723060676081677595019081211743721853351171135966339441387997872822084415704118746308901990406068995107201826670287597618574390848274051348594598079946887557485557431948759145080925678432965152532429430304147212101006063957380024680275868337162127607427498606060406958989297823391006886511121007502830687586766088734268790222947625275304889603172682613398170881100691754461008783115375225938373489372595510130246346966508803580796449104923648410862282930930235406645360406191248437304743521557711601784437064841041021495715898565821529607752294432973528320159981498833564465342475346449312401174972791190106524848161375698241929264291846857189788915440870304028099527075416026452178760123014462548067495255235994452424913562150251408729982047354646498772478261151841101477306838943711625899320840237358066313875955856389452050357408827036605772733746333464092983420465439572542034184427913310163061374684380456325338505559465082768967482862601778740559092131941395144168093426652741069153226145412958980685347191314382561074401735775092134928039350021458524953395445416004141148769170026995479173140917133876128835024198046874052574721461414974133355995920542343553159960441980944773108357680315870381243447512599950525145563881300791994036522193969763076567592692292991390867106848908560144163285759152147595153297367880136918074675423192267570670077894269823702185555706593302293712363038883752183982343419690435832795698211205445206528476231333205625394922398230525702868622995994817134734451455931167325924510999611789574018074771050684694557027326582800272097059195562529781279673094885415516142130342659722308104645546990552973716732881123134211260899731222522785123962757895401347438833501520553208157015969889701639564008052824459371803656186988456800170812992794718435779302951644753906485420075631193433203209132528109047184074741405969087779596659694311335785199188177957453853861913185485649899463381371821823307816751626281462263199429572108772045656445736450611879318889321879266310162519127595766846054731554871731115442469543795744445880242956004795654606784596959504084796691674945185937091847326037106146219525229976258625905199274139833931969413801415821963702842383817887050178442789712999018501976202277253307773500369220602307873332734561021449707762686895778025984822257624951265286670266516715828117653408123224245232345821383947721622978231902041559991743365579592367322004486249966879144476369884995274731325307949800936700845650718613765196754011814672997972197178111200695646357915827053798029791368789895073984770900191815610307068645639354973989078455191458188987301318904943241714966809939411367625614065529574269920257097864219562274860918142929712541342284981659689859684472541313062853679808036893622518382593428311218243900323327256270466793911557307769583472419418118447239285684805614077589958558492230535103645310375223053895740357892445572380528158269219700388306953419391107817383107870359150553198933802009935856117100353355056045678254124322225619943507518141817876007525926677737613592264767686027613681799021383751937598682470567514984980197647475027320880392249677264085086537185672896532674009684412649324258150644409421559518140797630093376722950375068188386707099173647778905640929706384191282148596172432172416742454771950008322082509727095469591090985842767718166668332535546945918568728605716797578225103669321472450159893014168270817366506461876386977611457679812077063801047979540626167836779461571214490909196160173165917112816147546244969144660285004240096472689218492554101380333470756923759751760343667879359287324037796379321859280521876156029116074712592529549013316951826315908693694974931212465559708596660712774708029835110552959570979073763264198388960459485059041113148840304152008250688908825258845368708445905609833299832381461060906317697745943060358374522419674393283057567525766795217712207141582471070617107464577860652637562127175656229911156933863758813222769682562063487957520945176635995254707482174289875664539833809707617701405230980376547559420248243884068891696491043045326555608176203688409708612589053018713085099713320778179820848060879688640821915727811230498449824931269912684538341702729433079345152660151821240652171700541503469259711322377523336325732084104060331104405116555514623871608817147598667266494243593975531394900754316921045710211417385196715093039997767921039114975620344311200802058834854897806733146533901595406869305018259041370889850270606039140883703686233070268387621090148582151632674307307882124097647479396124151065830175180988716196910763200036835370669842927868908463985126579122165266661144860886790835053985133249982997881884591309011993769288812811928053751738959616911089236833986178286886379545503249223034932305217309842431895285897917318677363418247256435778255517529049975484222974196897658354038487168472517743091376691436080738612260960895548531863118777222866424862622122038637950493895239671125132214681290441980514449194951892633662085558130594143085296541149631678023824106757830556124547033396781930878239072848569040093563421609422225182644449982961914881893039186733805919603212497786437116222098469777016476437872810713148325585279024199992123836790506684101717406560941037371956162599452945220887849100591557761013984500568609689439113729277205709196139237158487454207844124395372049681253978358717497756325325420652074849848806632829327271213931175749368694522978967320132480405651002493841859447376054750478038421044648401138329161387156479250973907018367737569336988807615545624943202694982135440815453958390680126239890828734837433065891192391493417302380827590568727057304591201747755588157242433598931570491940322553883730823115559140768440125277806597601170340826351815532649294710111511708099888475001954911991742973155836229964404856314922117145946890996143349890815030507656178496821027246013663088977286975107515561127382893351980766514447467791802228481591523815518511790550527191620529911163452924524737056029782173235165624388701783027892408429092601891826647112160724611550452212091056237110050458732719096065683230886407616052107739385324480914279701049767683726198567013585292764695290014254826300817777842471055898084854250678966089611739964905946576892740477392009965845482011510992880010946398288288298352301701234205882597936587249325160957922727168997239692626457829054122334678938495482120687735367232823291298887493956489203922220372407901539055019787531407064596739868802045092063312488211300990713306985886207368023189356394108523932648781225107999003567931065555442248673948557818836339213220084748089708582034321116416800800886607920972340800243932152569017966691315347963944915419831810147320662295413424916286340687283996690348894721342652426114394134979200559938381260969020783432306612921498061069566717279442550055317132012223287576686382328999403289454406401646725696192793015680023078115117691416850809230504850470594546740029600755715916158998914821210220318164143469479091994347896310094012329580053879621698554675820528740200561896758175977613148339786670865896727749810167621949159373897768642852837645920977266328208701074103999266766811662475715103849038785628490568748959717001991105154511390990722575736939875439890098728875209814170018396266423919728470484466101496754312886909257512547962842360005854650832209264146183809900769051275652574479124787665784397212429769847854219735976873594996134249921103897543109875180734657899103429411782534134439296192655361334770238413610879049280251737924398414237295070811047088247833028982715687817657093809225979027424148877720958198665838574975057080573427042264211495475624678382864862033057521177688651343182081627117430309203096459401594243173177580317541837926318251248075775235952495902691857586464133267699851816284600489717469938222250478890436641143301510068935807638991026488888643252702307284775044697488556363032520059894979648790788324065783291510614656948251707834325090251901786136631489781796066836982730653216417963819850424188280275613383033754521581977837736631080751356464902085172839839692672075961575415039418113123597050529854463370897487103451162076656733179662515842851674294853592191569547395984628379959146107049001271940164866547112725311866901407784467720812704475455281481873613444575103430127887372013125003828899049295899414608038654565230411536406412949879043173296760963645130576801181809215877466820783317133157373581590384346653750309388391019004315199375900678406133206802375220827130779164152927259188932822726479473148982034509619094516245235631951820663099398025765966844522945845557119747599399572697230558430520576929929407236356137830937596995761230530695643170277024677904700873551713360102126964336265544597066245637141886965266471635939156143618500770889829689964683782638569338981158557179341468377137766416234294472167336592371586202402560311061591299944987563833468721912506010071643661688308222616014043438518937927803270493136063321859787487779433909738599790710447868726951723216319755403623104109872257775336809406041967150713537966572335144502960853652427610065229567471878320422624266978368396959647486534908838008575952895417839813774574285162553062044882814203679356831105179855446041668885378538706617612927642759745999715338129076861048726312128502696105958611873116662683202226788696898390554766940532753413491432322945176668554607455663342951813419386534366993973792935557645605247444672432353259727450514495418140278641125461168753192703351633294496387211568795123304210213669550112366428650141959226014388788785791953866194941026529245993475968464610877076751316979156576715003618166992508611566675359710080371936437072332481679563984310248652826687059798184358583839597237601675587933749017465123084164588094238249451889798373905326895765793912705458736296541097854913212239129528011397927220964275659544773946085286644909341885205855279720850254205264846124531656357161435881601632010986556185646945135449293955900680771386203259870857889529480345878168215104424395089018392162182587777941041560855810143684329232861212159199215493860949078132607136372822183084594241433486258824388994125610325969194381976498585153944081859529217485796731577952636141747720358319120658359020905530734826573651906265297573563136781341217777005793384094452345284228439084216985896642258087230218114769121092695270754620899565841987868396714069825799963729868230220896549756545555917633946257374391729687771724887990798172029338739194494084745726769594354535301510536862995911710981560611793627508836776901775881457518009696381520393668479682332038248443648586477517794133440978686543954719094747438414546441452947713228910796462355295808116688596038767057675493978633758218229385235665622282950950048266655989425753076066747346239995442005537818321063788392645895011517550735550495407821383736093822109577871898618587654164912247141111568252764405992195564363723698240624670909112096471214885025486887855256058868248355955710062002961441568629280935208150842901946205582397548576159295206700593657585968809747335120895802983855969990480773722553782242624234649654248857859965143275433582235576611746220498092421262855029255074981568283042580728975984854852880323353518942279690385530789650500691639513802529975060817627352171539568608275534056634197191071831441279115435154488556041403390443229105963522021074858443907033924363513353498975235400245247843687824501177095530687337426285568778421381451225085759917226119501500498429168992242938420362102767890176993960282265885572552524427724571149371560291269100851141688174875775476153718328100390716882578111343373864207439041909180214945463674535508254922274847983628370126058205117296259323125044408887868304460310381209229848403343279989311542862513030512328824437336631707802938519736662520920057840473876098544405169487688159224409910028318468034720683984598508250715272448694004983685300966819109394715653424019284800188713925057182860155970303186328831526022344812495125318220039482422896893583047809730324084904733150597279556682786847093291808404532997136602395054766368435427751452120054771479832819665415253188029330898461917982909362472021126736570863206967959990390446504816877368510060358421840921709683483286618497149805337531188804994822623445437079007671048111910359854106402248665900483685309842082084900367377625355083150054096486139486562787304153079616189673876242497027266570282528449579061328809236308958634265674853609061874425525333338057627262466267724330435868646703524103012953919553913267970764571418803850035016364499746391850061574162710092400661273352949028268898521847423587254649082166370448551256178968382311799933406044770374531827199887842827780997644559808583288403196516213244144976363001068533735812698819451694866854914101795404290654624695765450448244094632547723479333805642164296023965722271595197058919613363920291715841502875009855670215834888305517631803367467261818554280720687372053420526198149925599676156276291316639368614603957981159367598393646869423479860989184556262950021105449178726543002457146406129611613811508106817219485426808945812235451147954767105351705706411100141918108206914749719993970460074742540238403844607235305472719107100175203554984953575971691329267115695978092616084445697295828419642755876264411511181735801549856182241576565686562556605014986693717409789821718249665134546971724739675137126559864442692869193585550290675641352472558352981378219126647880334955647514202582560069722456789381303597813782557227881162443212521224725176616357523109300000557095289103682186938590380724172849041620379058423224006251072841284120183658074098828637752287912679978775997306237924227245580039210932054445083667442221357321322735108900993436859059251151560202113677133922770711403379052155821206424325646241490259726038845308641230002380174323364265024700557959486753676811478800152134938116854571467954872255487002589191265957539239760761083831276059886826915876256987693680296533727958636909394689441693402449929495882511745130790962341170085219718150715307680913598847841270846874647847092778548150908946562261850967214911182560723736462288477163916882788182204404497019848409065065664228010484367720134002336186129412172975068141198101814315582002751445081199411955485737482840394216234961823009905164266145466517909774863409791795791490929377930000909149736736769619229891761785988582862344253563276486482108716684578803327004564348027973731308647186820162248238318903519754007243978822472822761996790184223250567701267595076489294012891372311138066147080873720832751056530601714970521560757767230222499340957277552346276034496919257835155380202760465728535583334115708062541187427411138207516759394450088224212553430476758836530270706507888930748521421510170482057374102980060102808761432011218822754861570998170198000636862484702942810864578771565708036776905203726979128985745473149414039877319480897171161860817336752887865022409777105578178113370868495489012725167116827994460622259991691315936283204223278561532801209774483752971673892661834648665009721900904400478425180819556752821829809088196141176569098428625421486082869016895710848973660085879835688963881273917878700109649592695939850342401910231486302483955653326040365997564009889883640174582032072577208063205217635296856877577431303182554857226949609663271641003186744531682652304937375536138245717370574070355478485869157339045698077934429141066500074179437596869176297338834160289709213850416230986912963168000117045101034462022402890498582248038664244161131518773496486310026642494756893741032848043137598122478238582001327881096753384024599534188000230940896436836021029225771360509140037748480376339218901817434030256819387267370611677107737235451301009460204131766999406128785656432719458334818419308589217061907626462663590593666269461052531019461335415564197143311830735165887234441359888944530560300840161967873604212021309710310348832322805060201491449231392692606580453427678101226676198195719190404387765025788490628897717553810471381093555878748725026085026542713377636009795014871388865939530284066435623824346078896511570357254313131998476706342520120781929077289016706536476979036149041623552412699214096169098322048421451633173014575568060680341445860921435120118648656557166730816932655247402993204895201877009687284715021270526997463843828158994855863948497756964021885339837231014548691766469190507055200653852863161340096125550098342619012614950875455794322342520512309886372830593908021475329773809619823553487475819663546172927245901499447147738168161558282357705066503425304540479958484761923896726925472249667427678454205397374521654031276496473319467194971638153271190056802819358289496116904820815378310303670780281800571900574399107137280936957883566999444689672155596618638192551287849973586155748106067477831939696794346256014296638242600065740546518063314291735799329232336004914732329634273193265591446072681542036364815145750351033911479490498742457861729355551028367457502638301962265132566608798668401445126345644489595654720779412370780192409763326436991952784498265374774925878493062232035028169357822273844953386947500964904436618429897202290482229136676420712393599884266590734266022329613684946093460149790885692190901992726088116352362982660606059128349457936488249922660886335117673746864885066330440115026741656932285823854247716798776962407762658400566247134257171641991161647424143943728368134046112501519045930740194077052558858239755431731298510904291310339875659313962120735472200118767398595429891782255655067501947687519302904897166125622363253190095501545629991765973151035343365765134120528564517607789163776467642142581581532881063250336343542076716162250964287301453427886102689897865782459415990700973486046006120957215612419096957372997074672961675798766388238456444047529880770872776717895445863757368513302511662050363651262332941045455607937595861650966585141714856486388490793583838397206584706745731114325986107799596533081142896688171793397472044323642014137931182803128095893635162860135066843961159937037539725090835219319521303077211899433901726387186422533640267779025952099368509233051648580328194040438027340952922167151593589305635442827067909711993983827446731875931708736371450380129912454543452567329228353436290928908123619262059984281925703373617162838762823061338596261021843712671930722302188832795001531857930950309414595766397000324798140229856798951367909498146054402009847496536066958798640569057320192504193655904370780023325138543490968612156506980106380276232918409708225669052317561047482617388328940892284143922125785805373231563275643378198886346831015185152191795740528671340687789493422996454463842942662312692065548129443741277942340540294986304953307156593640402110201501128379369243707185192526645097544909150356396418385832406306748297728373069408553434498432964860011199178622786223952224240197667970511206871559497285559749108234760316159245497834636832134758143502802619281098949812532954890772241485608942315257303055772942543704724680496530709531238971024475665769995135456082543696702275062595779253630253292504395590895298084618933041942383470491220263297773958864684802877177137978285436275342225395060524201496894363805779222849788214306442285213830822081783703551442358152589229442333659827026705997696490764636594143087207655990226730591958460981494636041443500090410825421398798350540225394774758283069030330311629743596108867716851077730754644814710743464552033857458835031932308676411826374353364861178220971040482684453360098242411378086184237466396342585772270641326822905905696917720149849392400125962936083904932455382973761439854554314171653485228581595214069667461888519940189409741081235630975362822503375592213482352444101756640345584066524771256402621374440992941046177919311505504934488307065603705764849662656893805921978957859049642714047893195218849788958217248582908843010924819224843029223323686826457026132999407608805475590484233181135236551704707911356315469735667536149651351699669825862284650116710641268800989624219747347821884759046202379414441222600028213092513106039421140378101845094414630330820901673905656722721117500415591095787221933858928665565415039980255565699627993213714296478751586203442869223974142598563435408714809748102535101719766158557446902659136598716254198541746849627721398997295936517275192916627542229007301918191881345848769905734323019883701269031465776976772587836200810294551395688314163946321446053311775843255954099015810117531121992467688998858235661949013177682712787324141133065984626080940421376926688615973069419352084813762084370889276654138158259574544248800020098690576383920405410733066818951641646784011178471030707519414641889721731113163536731592889507669736674019668740809737551151780374541924143920338146804941669991831968764080352564456268924588290044174036679424985878976877053911979345546359827496435817689044676873138772971495131047280231377358379911815555232881027351801048168927303140927805078122893104283092465972853586537632125539037400658163594382965272503360772980629224105770464632776914566844032721883411147742172032782997793246710022156806051985244259040972817830859907555557306113339348204692047097632106050504948974690452691252849454281954328708879339557165035615435130492598142068477165561721353755179454478251213548483892550680781978663622016434395137192974327597371072551959329359143349569618730949309276972007398186454810851649634916593715779605580677037980423823689422605294872588907960391675549913323588889065446911923182903933432771943582479904589120665804552287958588640521870518728479134220236456088040716986699504550107912758574439029745457100824453833884816101916247934774918867454993573117795859893979904806451130513557259397027640705869628266555596819903985047329213537437807217516468747566737570617139375049466534164404081577791467621238257641994981695256346470125979460274696784200759370038768915623449299610950471400290285878458627498728101543318260990438543449530931955992533414869371047421122069326966026285450463461859307974021284736268480505206877640865642423874263580076562544612825216052447202368218622221257144343886834999729368715521757091377643430600747465754087460822604256279225202506237602908841172644749064488775848384841529122186836101384919019286372416130234585081423777822589837949263886437528790832002667881019236359394521852584566230909100527034220654900510918208903046361943094531566551711112784392193742847473291598543595469916757944282565117654289996972056984335555659788746698789283056438992755958874016640597823289301972058275633849274747640946145393649685834591120518356318387478210388411639569364077504328104492335252633073720657420026382976176422862502666299397150794312825732432850421209640036358461875822475830355495857061571197312658534882701102833027193752544498537784265660509683962870137727243446324842230298415815587884605451751220793043513341644894047351574575858022446410885333877395146902458414108969941621760542167976192525430869074415739909179968103769053753056596794833662982430383904575678793983341254123402530306091894172942138154733475668374429536790345517436460042340684777015318774242311875951362179002500910500610226677914055739764188037201717598509252398283675751147014682524392188645694085465266782882558527110200352473917471755140588279442396500305500898005232583353999503095165914325863824223644343764546118518131980654862727790156820235709952434857269314452787491639421202352182301438619926941866865012371920137477283235421314818807103998378104248314119847147295717511135510721244278510114181764366099722801699146447474495071996868819179391974633681902072469542446751182751242822202643654996606600933145386502086126072236736188956555829223866911191245900114971972838357406820541524744652886640198479521214863060570822487028171912604341027784549117403684130421418844239499282143495007849670665388892754458403080878555700454850019442468056607376183460125119833278148478222831529273278490016397655932467303859173539462095546352683944634944879212777176553121168194681721001593991117123090262434424489973812368562291857081028496748440354502281397410568680561542227532659141130377871523756754952655252675144947424438781168196078611049286601058192787763606119915887091825022468559978866194136846990916991921834801782091349293482765946332088880387735704375791632816156994262620501880584046177222421007948184724719988163783942703779466950543690276700904022852618145382474759952822911273855761879104268829142733393937050444058269496300738971384254594560851676179443180599579468345520942290571573818588927600454386115758740752652794787861137267841490562473142712284245253451543478290133221486614917008091046313152002036995308884864890722833001710376927365282457361181021207350348051041578293068550943106603367432231692753409056646147936255135562855308498642305874680824013456575873741499966888163515726162930740718645084844092041568780562986556049064661981173038641061328196041030326235998180653874641610910155697551711742921784987044674631282686274005034804216172984724502990175857501666227509677122561413654274789291939130365899326988633777565611832966929476380138659634778332484047427248851101857921579990528942644315131297814893681946412570711910597318776601943384207691470719095972623003093321449555903865295617598309300780688520693679003736934870319498410529719426284866536115197645351306699944767343503923963610106276199611746405291767908905870334422183955914265041691030468391344041879665469717137479723713672473911857285677439356696257387946894218751328856740341809372352170720852904432182238515379013871074472453469449517858067410375893870010836487010246955012713135065091886139057922590669633179253129878798021786937998973888201921667340218641217685009287935314983939655528225596050542364175486213229154673135620798983963699754685142864605963920656999941183482825591157752052359015631245977260223606647306471554951946857133838340062844081346988517639232887330709957607044905035796588167652638545673307417559868209463976512115081381529570367579680817921142639409382746519898789816252544855965405525845041829885793896235033528553072984788332364333508586884666295910335807684950153066473388007558605737095253617030037672663969477887350537517557756218674071416830089275552978956931745682120790206417235169533383034565140509958779305685049574037444347521576495633849856884278027175249915264878360723567829409996844758125885723603534789208457566366968129670975652490714943546247533314078103985215907946885985989961984255805739755372872899964682247691327871132629110752003757031587694890111163869532102106149228767918183021101694320698706676810483309659991947013165273742911250334154989196446156153474143063607290081798622691268300840747479870093968930961868191883666053012198426407209337667527183259265934791798756948525888118377429634035614284719588392753296071546839718008214616876861883170637937286471312115285416103565006264407124456161430776027304242235101651638632103306695243103989789855965826426640019015415753397150469722093821779435889658341243617073325746009906526879309011214739034264572635819283199182320110714340965700782297107823987616576168393576217071398879115852548266134821038186987132225063838303976493129224331168263342991077767211722071295048535166799435497002431523303263885811085950544917056582291006330285797897441506620451648662455745038904248937504937359665800928753982452718219510590916142946673268333441215373453169506733042925825635584720360711425664303820098862140348131140770001387108822125796638326831950058752481821226435389158380829141296546804184336253113279744015802713641935595990046213766349568739481826671129750923539181806142537572540422303004582739512385669342208456504644487463162456108876891716712502954556800055672870057518736696660358116331864738159130067360522590832821308266228906176044428853841860081181502430312115074442799007779949580286192792979332632622724981429338474897294370929094153810969989812184231620704804865800169203163979603096917602421553665336510761981634443703512741606800249179238539462132599903968865887755403904302441598338501409739565771716634998451830944777126057823085217546674224237824743138817719680448944896455511193674017391587008431034364396751715778523397558464122965208897134937423013311193614282116216093221273335028415032828041209805794237502469895456756168476231602895688412899489191212769720637750530060457578101750761903568412323480783679377599225191484935838302509838009841407325300454815961233721216208805032759997901266071146420245972928235089251176693178940751421335385061657284829495011520795203002863154192439765757977793132611641388254503063861027759169904260691217549193673301023063786560162812578931181003758279612893641428691758059851664923093058058216245561137592174304628841692151922030935408087755299929013189891513992831482648344282505813662836661714038858641460612214548042614962527223342863561781746264363182920155797485440037295230907993357462772849182584483909165917576672449651129669100383077111215536976727438278925303969691639275156697239981971492248151086359827897476080359969962938066746682795203512011392328786616936943698678723093459099800828427144966124434539753205083368127701155109322407160922180974930265076920794423585340035355246126805450684196423081860256196825769633326060096585416519770753321940576532317639147618983299216397189545046459171103733147303998342334674883175496953103300235616980549703195973725815729382338086569171560593894156523978021097610576626880432402463952992659760522738475036836362462251532733290553197727334762879576236191728472114077481149846241988397112134321821895068814981212546294262175992371606023843520541374679468421951717013940366701650329738323896349605787544389355084394256200857966838125592335833713674709142197092466596398643270332671832650852005094194701586933730084848954466643437962291602559908556826428236747612219161494032380572327381100318076224238262291266619352485933985911991488691061475510237305665950282550609494508891506790477453921068660929343224437409453287900295454759119581659980523032623824363601387558006715604398270363997192626659680821276985908870768379930522542690033089660377337700239089334111141674839049133347868810330536511550356819888674786981724441415247838814002881178199316667050738542209161264580373290088717366372108007857557182727818332518352764974909711419828395108304599393325109527816430578612775621909824869721829753657944161145380632051232215741824455172837569007298333242944992850764566339140550763601429260327901993835999402585533194764801638767691492169566548193380318231805995413131181886676510086361028093819964056192384773582411484933175691056230235013449126026851212162847658541299726930651158103625285368876120560637743746264602128722957839717143037000978769035996286489431460181832513669784061043486202325407879636737262414554502956132959628798077710968520658790195974832033066311213364685803162048147253135645421695619858533515422491795562079148389038051164664260234920181467793206237247075857383863487195024415532465304981325703618123640274093288617304443599433688369009453112735938288154129614269806168680790824366515280019489340080732020443779778625473832778431957409666018194268557455696268916824687910738255241000006269421270489803884932941797733294039351431622467214033602216663915933517109863718883283312387573885696729195439674286160020564005724560858761139677149678786613984133625304733355660960522950980800640966233727334222471716618111380364843218895746591793028809780909916022944397505384519841763448292453429190272576036265450131609981325457116603174158879071775754208898392785367768141326527952633449329322447509613331773189669890340944680601015060937040182542199464871806961854367981972761940727967501544715399233135403917070349707235134282836805766096139956406118464550679304445383467254479949095628880813237178912288606410843073008319658729747775474103939311709804772768236725252799015770905012047887076215103775905649745818876469679667111412430792914135931364201155236563645659604337246428250889618847058037065888125932565831006578863298707682564476940711618044967279647517368572196329271205033399799483843224488822996792058042448856500204149230494663138052212345177543110867941369570371443728618660188198543640220057900373465588209705874412779292070181904528724961940712373313276553029196141759609501450852457028754993297955808595076547071673565723002759271830290138606926059372805295303356559996438680614204017822967602514100782015248748809456568958515532871495794122318663772824583709511875704364477392757724252218596983410082929885874545294755964297235124760804157375627332342777015916542039253945477144422648874177016446408691025467022278549551377163248141164903868357907031240571331914426452803975270635659350582583720593106544605889011685494025606728424964784253220443466849686810995891656440183568892276704469503116604512431878118117866275781958345520764373568684287947531601336509563926348496247946400571941867456438163739429079957489585741525057833804485572844188674892178881447972412471540791286726038663082922027241008921203513746632433656698339042984758173951834396631339946215703327872297582215018725252153771323841890053323844677377851454757652560248132132848258113689990690054584853452330699999490208120282225786742356867701710638990657016626154282226725770265741533327530897943249435618331788008471035821568914562379467184835092389761226751292746977531456705750856171163633664629389209399987458492141466243549220302260221433554562814439988170585100674430020532025541619895844293374182213895774582452903229242795557421049208500669981168600962154775441361705777211952563684399681040642781829564868584293917770293085453586715555253168517377824153232729575522458203671350201970382430583075891001290647436427012378177661266154919834473672695099147930683271928438353465046889717983209578940891406556038987283797857387149732284492370494071270113049602660692006168805442263314590948702222691396735400873163084111427165141321887418140543219927171378409544852515474708868364851459552753678977960484459890956158869332181731513287059755329351277391783183603289826888290554831138377805622101053550490312108210079068809773549144273749344503065797582188505500774135049027051600386556760675657202263296124985639499997089909666616442099084022781716518463610370705384696868001163896668690440575049829500792952174860005366937432163726356181464676776605318027790431402269227678928586355441271875841532038142881442475013351661023537612916504790630117091847596506621226362655041965887070714219904182075580874488591926873201874018546867820628945258124233376820747382643678179106730470838868380504915248609519323377291684340766428236815558460642014832000194825662818293730848692083852623448134168935115626512830309203719734150152269804494984880016171363760462643445894710861269418629768868412843561731804935174866021159437910476526930371420856487159870096552589924413964411976640308947514956381690579310439880317250134403530485091927325633664844461265706028562996917497471581053517947739376300120999434852275583634197752253928899811789350501035188706646070930756932580786088315058970304108305860483910558035760323771002772968682879258126946783626153205064871735114552314715661338304110167320731631000539941588480620763364270979948914627244456604429543381387757644949607651725288257762503662649422630491262089170756649951090613354848775321071388856382158100049014109342761896553771933535917780686367936700294686753397256499061032255243571923786660823450063237969931044037323263268045329690270555927667391013998796520066958783041218899342804090520979062897879619705885263095697092851076137693519485503104365150267062140265288744718801843724735254708023484843793430238513199473000110229422740619555231150889112435351723199172953987493178768037466508213892837848818063829891861915929940983268226238737141094820093387000407810960956782869428865453442919776048467484112339085367749587456365959799035708841492138528158938693250033085868074664031326593380355639903842692615627315430343509926324836023427764796992536419913898669641947679276485788303730522239838330214078929306127843295661657059787105390052023637753690314523077331093223950099538045609611938708892054579673915934470204293855958326383193907646661941135382479382636085175103788272774961933574697281459377958105454583047081339043723929571227643859221910729196509886321684453839600070772129747349019876598504733459640846809528022478148813875705516835020346767813982616689619030605373037542532510104230766189781417524711794876775444713874860213310664422650789861996388114977948015978508779866191451238816966826909721078325390691384757916650747089238426388077231698481702867517770298908390807077504771775881076744093039210955546006467304047290686983824617656162128497444097989350149021081932691193106634859808912174789533776900177041629773092459557967461257752332371822251114052252100203276557443555802108480788425521247744666601929525875739743405274711626138790283535065198336396754121472551330332219097860021014033803385601878689371285560330483714983563776957839724499198273972403063101027349065215268438209257058619946112848233347903658668999451706520488214796001110284842384923475479373677642631713446800314114066543443599029925531326309494088647055498484547546937456844400739532870865906259002000048428349762185693274600769396251193088821128292703699621160323246733681545865657433632928344020991119028547359558553299462214092745992530874839294466362708149147635442895363244468071646990692530086814229662921003970252979553907497330392909201709087912521569119906914823420581956478794605321981547512476800902451502111964748665934939267146256042901232506494623088808137945555874400447162610623215836414645791907273725019108724111894867977156453943847810185189760887025954489263143383582879297418121151256200024537696715409040473849858359512421871358817902543901850235999262101014406137967511355072426215094575199834854824829780319017211158680087371976953790240528441930383688353348854166784089475299544351394162957864481698430218926537663388730202246666670530525959821937075790280430723412797148191910414009401474775165839186955913023242755688257996355288945251913047623551180383837455016470603748595225874414296670423813270067029938465983799747125319440073402070090737403462187281657938238307953993037747323071813027500368540596623951313384406413783139648679170323143089219114086564518892030195844319813849235358640184287646963960001598654608163228915073592140101994072253213169059944549636186488369206692992025690195328587633656090046692026951920526908393257051086554989279350032567737899883285234679900913070038851035522258460650161097714749980917357437579677090012082688035902492701173620121447451286054298104314504265151202740590449566736716080356900768000756417335772824131472762865909937688769875219092140664315009783425400701746248723708175707904426453264512807387560287384292024714902024146391947234528737683136602153633310318595211082344626081174480663290755292439629272357984249076150867223959954767488814858962697282993921297081360366596472795329944691436620181988220367346683657989989945026944331945889822449677237762583643309689413712943806906144267560409889197782093641996119203236752534655676529209863845665065037193483392768472268090446640542253897279819410247872975714714803915374071330065388882536089243264379030833819234136404980826974359743787951538444824367952560074046914328593151354905883057743016968453740660078796830873556525242545022258876231840086823010226788187792071788616371108863937577270282790891012995609802944671411850494988161909878842901067050503697538243843416414065975869398803071771245473560163684051141767711622417873845565661917822939351481509788613813287701017802717960927636000735553078903674465188092777072912039034179496293211759889386216363443073189619677092009966668051033415797282055500320586416528425179150355104117327785951761015834036780935754159215962073303567382302722132002345209927025605629584267830555746566959044809880267697740164559228473532024851489814557490399661445327553136478642785370683042534500908500763820396653499594727633536807476447490766287985167590064533139300834587610389615880263631382610388897740541981206127668908389167004594559408575465220685609662620702805544137906407415155824640549609593376315048975009169040953698137292896739666116333146128191083617411082156326005005901214885865187245046414657155279042324890923085553689489407150810581057131363404440406688240768859011520268370379562463879880017845497691991056334946141222284517764141233150661342025343011539714044991608603151367618282088499478808551471867408782545722605063489922986753037183998352962135117570976544279397576540372252511286670126638045764388079904594743833066650835211435334175421762504739293102340199661827787612932502735981469643934645239121619947170290981411014941706038230116031312075531284750871768621632655832061533314766693595571777809484171438845567368241388102202180810543149845890238681682794220882418318998638739892889045040449885618437579786776477585016555807326590858943163478636736433657865659389628077841468748517780748252268450416036054349424800424088029708579758439317883886902960368290637185715099708590229941849897958448144766854693206330267011555337959357224507446929959440399208119811226509479532621959726509174371983562771194516232067540980415334901924898414049944308656737527752955011032801422953571894493742513998532526500964445101528123664742340803301819753380957398214398489527231657688903024847000374559438462790840157184199390044554505143577563187652860763115639101599037368528757541151536046811663598830701910517923764804948500239917497218880007771843147777321438356203114926073499772092172527809218380659547299405793431906188880787120602064330620940152237112999906168630264378335761032481445925794545828261205377713254045739841921620382982421772204679287095973884388272969945770723245286693146686369342400130967565020802559358470952039562308801850015826308744546491226812806911502919226940378122716791454796548267562493358275558293551222625202018459980590540788567162250246351647231858015054316663938710855598593484319823302963576629070590377696363621122872657043785807177855706581047318601317347148352607093023654779979666795338127187026764827669651751483467035910433574605522958173802608767404375065503138769321072246021512033806047212435840880297810313120264949735003539448982043376307355726648858723131798321458845829280177808740209364517226893732788424043662611017584093137110657154160027609834971004967089872279550099053474990261646420910261478575412659170136223027787169737265224192182428857017309572700909854594143905731989926742836961836910426649788108743826202805117981057046084899335349888047780583105107211663005878067691400429517356254117047207956876221860480211134029822486936230866428187523785328429290719271092018194194091469208098829957701732417065794514490812482564805018065352495868462141947016814282683938161535010896769953413585600394151216623599603491705738596682631353512239391452886184304373663813667834162127811356419820517921634700886947525497477381958044069976973367397498806718516981732605872902012254220073827257330357793943702807498642287326550634542573258412852300052540620643503577859666829029664097169261453848619164375770778076475728285239418809186506607335728521869312085807910046889147410265800702639040370267125864115031042450125117417397068453703171885525082138629731186884331221069521824555791831004839781080369069899525271596718147043381629856087037032088615925271857185957693697484865261334772297023594582744036841107367954481094970510758194198821346926471069862473530146478789697574494504456990447500036783360092176405955294981204751538667603022458077292877210717862668964933695209114936895637736421633371444003631659317619918226481062535383578027911232053511663515672735450535812828229816771033913167740698107770654537446171994130806768588701056041059970282172222916860772772230302617942551021540949126706261491825604796073168423178868019885068803094993186345369322054168468794704240494665579830854877050553030543306548219969216021382848802148422276213461116281344331431245049303522312755287888431508607818411057952039377502428143351153515625232207650891798315329057285379593878561926674779252391783277773264479130930046452556736273335279999917605781455542538344709541348387887455622944865807316638373014288502023386893380178251847488184065651687638509121057068431099008171272319863573242583674848027010425990079479911746883539009286238596280021168435852688290402990946950178619836232770271570899850650794008717568944092171483896434148518764604664618600028426999733210303258925798230142672486649232182148946330199910628545452602054373819941266810655865220343475029570716496678735087951290833583431416670856262163718312500675040476437745719528375797980364985119696450224347190058781234258935497251424074646064958454869160603891814463104345059457036592634636122780596134486078360902927602893612737074502698907455012109001803001119223323312760582620952699435598220685900407820721354093803570983028133482437007554909631288458878534151784952121777111038456960483046316934147856414178037033641016675799941505551082508720172487974911433912282932331992773305599812957964856980197348426642288293692221104121461177155714379775426724325899200413359461302902115478974456335668577000824031966470256017092881563675205341003769684424877395434612805257453876053639657537132864701932907918396575752657853549678098364934167227937703010695970098706311664856214577794880230919136208331831678909848323224967973581652185608215150295376011346173056202808622543057812507776912180834091642018564915211976648909403305405126377788992718350884570658547290016271466875160491596068340817042579035556973360739377034854134595189947276659561882975685965414209701528180145639270026766091065602181138988592124166887685194692239399996771613567715751579187560064543961417219656268701858346845862004559761446838428194312800965217460707872887643812659120893311375595495271299018827036615878684849642138565789150707975897822182967254474719462454541601103484966301233180262275090245884452043691415061664960727855036192792015250701258690388280496626397881365511076934597092927755948426048688853686246440243629745081440704906283104152595120598683798784385590412394441592721006552167987540288542103446033256171219685960569512880205894126462512218857376519498248167847079984297645860293627437713227479795556296562416112515466730673024857438745717254600196255980892336802085933276232357651372813188272063306247994171918367707938740447713781178847186817461684712294095755684434810321998574590206317474565786907031450260277429343389776012346027008544833562438295536546114963343223155729730276581370564805480670808818763317993036927150350623625262411343806559754166104178042591086676139384505270484058353279341946251414987053785659646810055578536294882346784884963868406385987213929266757807956446361468571058741099765140395716576429513592553605817993153370857453529523437727385441661268747956739736424482281449023746881660178101335084288130402700665228580006390100440048142382416921429920432566844242620626527998131270413858407268532639345505968935643574010068380924268978681231943350585433915986557401169666229726299292675601377863130625935308185881034445517347939463586223720343023882912089759292564620197738224510419487945127977454027336393338081540901211870576704404812902437760145448047513234341130926795941443499797327921593918447142389009450356310709235218421679739359978560388732044043759681229090605704545106303551123935414899007807551143655152177438721314471206395421515676651134865707078952249339704638166913598682472899141046039001338454280324791821776239037160853075084039015481061642502985141210230093420707887694590581331943121133325876144468202022680115205472111476465761920189189519960452470910079193137806152826471994807632971403547630866207195631360331123893716448127489168652607418765562787774085974604093034882594151498056807590451751607331733628696558606758553386050891069778268897698002509854062683141213883298110536228206349938268556523846930824433817254418456424787010502562709828544363008477426833200770562285150346607188812459416967080580076704002501550631729492482160854549784662927823419216078322290546977152737195437893967075559486340111020821762687758001526001470279627370344218326306414792677388022277771450514363719248165587756277675885064978708096373209997464577137964879246467262670399136001088372042765440324686498700723485668032818060118012353043544216080743318861235398359775794895078254599421094658198621534800456344573718952146959047723275917110639860582379908077825082978094882476624978570137982102388946481492227518579482078090007030748759198972355792689327088265287701973713784736965621505315645784977830092904796135773425914141055314839954587296284578521305502906560713594235794347577936579498175345896483495094596859694118104674653567630773827622276811381003583897985512011905869115419456765591368130241641347975710780579861742953880034525970634323483428658630282770822532947232357943147227489393442509018011644298824235196027553334168221813972261878039010785243390119829967453292854727578558938265313858298055225353642096452721655220706394691290994207731334347780965077841875462140155831178215860982999852239151306933623846922816778621003813200543467478596642711294698809608831187167580728289290375883369844720257627423710951092239337882314308100770342216233549546666189401907219224992253230515738484799391979878522549874012656478620726138663058053737196909674490832419714438813957125796157982126829121854189986251805723979829374564516409300963106880379875524006929447550901542495136706140087226721435378774013047883130217913702579701931878285931889544104642667750556241877733622320742144926193993846716100615945741690214915717524525669327464613180082790396305907828856364585161664041830563798076009341390499431757287468372241138480879118330837927064696542410553264928214309033055635828781541729755457986805537845996647707992643532272415470459121237678138458121820691666044980038104689467743813127741523138054415298534238447306012737874587504237073723730556991390320059237445385088993827797512555940798630258878256987478370322127523485312850833044829133419716362351721548973424493875248982647197410736717119383992722768718332706622591897429928831933276781921523222074062745842776421534037635816235965247893551171797434961871550883472240849544712753138746804661561437800854688274279006068798848901109111678104319828871990257916143586955455917154576533709559421494918011088575512670029307217337396787324966409831962677015701492468013844196322113611262615187176399629462425324011848971084075434301955742794791651927229249915130694912460308120274150242413668803839907315918189174819107128103019926472241841119335631305058311523368301651510259323408796538299012388288602615305871346965568927044358888129450578111007796686385798557823229774919145278096495782424842422973490373240076045551226347358000649891024894161032284443770525369621735541076918774761438242479195926073933005222160670855504155095420366996480237338289184846585333352516081108932700835202300576136771805041565660486343248841255353281009365744825375547533667799217045470613029255673868391092468893480436558250389664599576498612508980088271533722040004794000148507057052448935900683165317775618527187583729261640687331744714178387679557864269417652142964578323617107431800071958180805434107331684559806416961765518231130605776898177897841373837285858255437860110271518446303100942825059654269803242275110463943553593681228388953138401396375421870885609018367393705203768876167355983002491755166534281118466715206622074931636114022815427462844678968487837541112877261519896301809077706511474334168727885443873679892966495351255593043523765000813629753199692039116773291547501386661832749625225756658289269155381694368258274919186335268402653937739221553882631434113851516129267676582721131789767224605100610649204674958327002696223827127199454875207834668354271158068971165559338903320274311110180060949025497662432455465766399839330032991462811303200976938012559689732554566603011260756518690773526845269184207047365961092196857299831395419841009577618404917245272667007022038790108214029868071061191714799580863626774734442423265751055672655436488563081588638183519490626366923307664441642862406821119962662810968528734502408342649270484897917105455960767317943734189527239557627655181908379491688167710731916096946545060258377621603031489125962201094394237248229796384931788743900828501756490312248477719232549589552035341471024445894372617298120553825866284025308792883277613706924084662466762638376105324478478310168003049841790213482854638801331800035571806658905785038733071843683607763052534328623607876193561157261119700970938275483325501912631289249199523914043318519038920690565214486859414255303370348930334620693874843969668649452585335776692932043186280251721987625389484115766250770377262645895866082177553521888396129429065523664689039593325221288695675412912736747216283704846920542484266214883081811083159266216741618059711289999601602650567658920544195344759484659949957170878215443419969944230928407088640087627687890683640165690947516227124696373649082350237239188001769471348174178449980281464447316140870480920508018617869819156908095248451274998126096285594822183369899389078324570470297811215774579588100524045525584062531671764465511990015412954378991166902859289460129368254368545662102105885410064516490597446667361470622617330557610439927825764971019097668930874466064294896661974316917098070802532680740385268081986857083888196620443041922139924188714415867166321145827468579462052116357192360992754766332932287386343953150268686873645484438705289729813850168436612625243799440988255661988703347995883354053239804013448475970627979607106908876787530989378298828893193132536321320392766917762418976779743734577626989562330219322394843839365360315393657784287670736687928481273652653548493219374317800269639134943933255393854579563447972398962377928199371120898143313119579277415079955272345325269642174144640304030935760488498034420121436688939796109579996429306548736478346269219364460940900403654140139564423567729538178696798420074293321374958184260932639424380472429919920683683373444610258735741160639617951264201860660640959669194559332449377393431454667740701640769170917109621519550643985907044394373656612896132050695590771744215722415273786188800970235004810537123659191923752429966934496878214815520567957554979893825102885110426985242230308112751862153560586598249442649129582110923736513533514981401890542351563987059859450909751349174610205239140083650689775937450463141309644140753996678442923098600019911663356914821359977665268469781545161241205631568129288334738897911329701642977527990342854506814059931334372364995474240116171237342017113306870313945832759090534551374044637235569683376038415461818658141672914478498861469226690579365347168367279010823839153203776657253933386191639541294707091815105704863227904909193324965024799172810339501744584801637087825711907025010929561600246075027736084804334777609648516000428198009295895501739716270924434185867877719364217961172039369906141583952860768140880028212084917243143348839624152757723621690148775966484113727596730955260119765375986533014813525699017608072459777650115555894834926173294425157316159884110754897243037444828750619362915057025564759953635735444336789119782346897465689599362229825961197335280806632210125205919500703949563410344109889597002544646411426102269870335669420000243798693921010291696464069535619903755936615124307618048013842664836962158547455167857202519510843458122752640308230189585465434021148900190113880476505454999043004231221039587648797789748876633527878000662347144340333159783271260053371122327877052204027685005080367169046965146876637958428224479884652423846884103058275660622104849952749431380910039172512720907479191569921481824788716490527958271388601597422204150606793441777496812008835582979483684550625046181750309965963098747624238703506703814751653587774999979461426128450057984515966304441869622544772767875188780471460355995392381946593966336773890345764051324660360545733847061600454133124302331015885804994597251723903568783294283742354078075332661021207613374069350901549445050990475226442465240554827607852032784678674328327949251345823269546813904815730678950074759287640168958898135989020711891262363236244658629076443024380267683368011987513404059038770267882886942270233255978978669318291510004827257162644420366280695364080205912706008447647066085332099620302852560842025143760898204896492327734817744323699376138539508013976370317868489653437780327193703165324118248316325673543236308920003890393731785161540986013163207189465566694609350174707128779462781068192123144175462562712997854425994697837232826332318287404493003347332624011810640050061200658168194450551049258235207616610636170710355761778951070971195759171499554651004760228313508288600926890644030145990711767725692406319636877376897840521318260173506919240515038420819387507676936142713883711058986872462787328557375407093384252950734037010794724544320943162249969898883991977895798416196769618452935034716052437932643474097634123433678708340192975413762648260429796360592039538770197340211283842001748040155724722453040725017173277265206273681206816474023091270965918752371702018327753412652359383895150963440738456421472113113605810586509346193398502528467860589714722665743261727992138311422606190518718894336323267556048014428706987923032734991717458477502804149435285330175560888000239631488841433682383330174509070447812036249526777529434114183871057329106978826983564347335860279171129160927068905781810572703117866741530900803374151211607417058337991339049391618605424138078845538907153158957057763436537876351325330027461656983337422551632605549542067951204239651742378853949513410832136001586638535494994844100955094657343314237574702875820503168804990140611591666421292174825677026959795617155869736891990253007390663321720264635791021504992837775438717402025711713475150267444429836931455219069900181499026182454616065859971984078576453882795668348350722050024579105940812673316320442948672519961967636280574323581748766702829149954814835809827134393383450237678357544897655494181849704962056427145683977127061104080827040790624843091882908866684909431149742629269203401178902276027866497261427834971744165410995412880551308012009732947715612255284692079446060528430891304989824835706619765576591209100665845247005904949034298889951878807852309299233449424571414863873491319297547075114091156045867362748412811768120514644692805962286440068258992875279876294746967261396970478130727748388613079018185873204023777910379793572232774277315559641321618634909581548911574108636764943099627283787395589480038516768293214416914023251840348849442673002057528035414927193080888411563994253250443880040482017217610185814161712472477127153583230453693809361595824145330335903689264667560855078134272600850572524248431008942064329995054313582402912171449220197907501309855144842043993605904528861927756032588897011156877326143364045665678260097453356650806116000568671478442122118365784932992142704342687753627396012159160415539152389918092328678683405379489401920408012072479324975101441494059068033226847426197101333394369144206007876678297354895977305049783939856843173638646471073250076469186208429038848128081184900505088515566322870621365285760735436294969775271966215408611236309447726002291007285679217708679112151976886466191299572962792942681895263325159922901593963555952782350210071738755396901551996102042844454295176519930045655712418497136677679840923234419384033015442786828646796549208294437709725280673383042093160037749044436861221621500630737492525726361952412928128481589383392933836733446931478544917056746667735453869749667305066581469311567409124112264721739644387550093285169208610305739452180452222469087223177100425230948537414956233430780348187082243967489153926399177024201286499253438827440643744284361389747196475526679148650619466756880576070515000269085101494771079455379994999145159401754673266659085926974334066209780676477003456594618284294969127484041329278854748277583413818283724967675846926278658940518343419662278157351449943920363186210753619185995594838309039566141945323293273530666885282965299148292322255019889420472963586348023718826703481640926074007457357347166029371678370967071599264249845172883770575049767666929432483342880929135115348117026354840400584384004430804275023694871037744709943981293030692435207104532683381251196652784511727807697912813706668677246449328971747406153488576418074662465176598609070142514840537436412166441430488757270823089522451722637273449982775154254167729295700990742395255490650017476657024012028805070849334229975203225820727296183575014822229106444777433411749626981370185610731878522989561076369499828133796357214858771372824454833006993196415294791713845504051960382447673424653844158611633607899220538293779628663077688694619818497227571464198982018303651313055243693206905457788306959858187529376336358699369574862339304756941951744995592031231438268882654546514367752170929023471054689307949673286342442146370519637601360142592773691296962993246196257495492822657605211402477234792827078696029019079668118860340881938800979339755494106576923278019201421852295619880503273616163265733424119525623736742678445679417544947284266093299933696289012731421909698317395158971939212188728906681888518968752593544963437355443285574042267803229132196302917415221278997037976747523795490597845724296921365785422222238564273172528545348065170090027831174713088542062527505700446451737269632380015972928770188930483909239329090627411951571627839345780012386926360380049293437537705742893262979599534540332545846820174048281549430873909007820115684838972648585489809221918866720337479865295141817978315949253785704202821554681590362813840360662479255816928976464910621222919998450513406608175656343213404088546033776020766135773529825868207991246638785931337525262808073387171561667433375374282576834728699078565245674196922934568815658779302483136015432530997130321494964068725107607724859791783030874417812903878075701746561403891758329080003565456811910551017002714885744684696210044798701385904193514777923411753733134588925168403341130081516489928403395518023974968929682232555500366188627754428888201437708689134099869893397472080077201279177785409670807827909492063086709272130969770163523136419334741980176654022007101370969556415280544553408437875434275736194535414365792607807338124428425921087938997960704037691168781739799577025757370229640605349109365376029062100521335759306647415071475060131683603131362962087178990248030731909386221118385672575481210470355237456257476020780860669843990927671660605075001246399200450500518156134956190542609735566456404355432161840173720678618396409490059756242927353164054179962902285213758414013922623895262781649878266963165181188350880049933987969442326546655767268571208587861963815306889055906680998847764287631125489334629645959018822519105639614725093348406251815654617126525925950521967576340562137472259081425550320081478422487224073052289066263127409165126444135254673433318416634622146845215195443597528876861530749995589401214244712926018063683104406249507203733502868482123301702818269949451929351448217402313349694312742477393574294323104009080470422338301105014496478173651993814855248476912823251696806742701557614752615362810749867814503706021255219854989589145809388757404142338349437929358491597961754815032974908647974219558104784862998362309057619514024635628532261750619857811241032133617114714081998216684763240359953581621543114743164578380352781783535063770065056398595973969250391303272349395134334254169215869025760727183742627090977693581305902541608558076205600195651505840427374149846793483081088042361574378085962355577829361934206533344493976552336186939860317545754283475126687014870941164005179709762211723104880404839181821454827011512380035707576247879341674803531905441869345365306367958661941349032998912269853089527866078469591511080562583394976657325734158017444801862432170353055183728602633458298353655961956032470135790153689388139534358824264134231289247900179696507657327699302427985866332003831373067596891387642214408055050329797799555731780131964028644661074560483852236152516756201451604442209525723529620017371441921438717774971579645637161736593449382377630958178990504745660706464897023285626542128968668319880966877576081757581990928766120437354967498242330707645969257674033718299160041464953162515495050603692773985713658658812645962490586041059492872416751843663636400776519731174111646433748555894850089910323809506740162600555430817684100862415334141884501226589935338191022643697007074105645942447840904473976570481219276017066965342966703911259294361043517832020845272809045624748438881616949009584576608352776254049979092488604319435093024362370994419935857325040643290119504833131588713220067011073670690543785161799537861588252158691175583228941750205891188766601120747484834283390993007312583136900453347710898100749913850080234922805640709739179668564373079695480900545350259617510566208912633011608878523767843111029851554041313625268446566951257328602128607599329793421883094717146421804150030015012394746207819163583354466193682304377131711578080940485451943674497839596658299163852381382832881202689587453217651800772090275012005409498760081810993364943594347378103378624512090268252034145221262569971620896652438996963298267496783996581370555129031012951228185932470312514637551064411104774100818966556229424319484200147078748251357171991378942690690889708730362263094952472061175170536393489459106838944352480238777927148883563754826402901912935579344230546989410297681283981554526588602270715329057600998052090034337602091176958260028337647734921209974997652760098709654476605536222253901111083777533860701836293633269826829445429024917099919511124297745028451735647869072647236195043586639565366432016532026107687095228367003659934065544502000086958101173970332933495004091691277923895514560552194447949683848371057290289914358683955910773642743041631693118542816061832987650631096890781109634889234570180626953687643266874574501435029182703455404823859678518314772595352646321193732318971123768534616366350625710321393600556569515923063236748155709024560122859235299059890087074215358198903320881146600470202406536470002602770865973892717642426092322065045218277556737618843547025451515566468694694032875669711308447818179648881930449515360871927501014694854916246940109509827089310794311607209933077702279732742762139449471583366878035840506754309867785302363532915448941298615266271477846912375203891232829975566328001759610652757404082247785350599018198375374760312527101664062672563352446511430040075743545945123723602889394672945783939975527665722155494964389268045336419798698294028213306892066858030562973434905940051294595738889569907429209351378310408331553737791018360705287527808441670900569735163960296781793253253408337019808732996877361695640396719488753656930113793617588728141966135007717958963290937238724110817151616895919015984643093692997892397429486766640209481863585309259230673616052835394500189965712750790506294435084112531432782040857791671689558547345734760314225742587891274225439529627563671197537122798049797056583118197531819723872941700568375159122079666166423577811770501890759020237136565958594620011870561370247456914144286662487138706543974414934881483326600650619855315029063473186700033247752343615896821755979139311170379724394757920392592531711027056379203984317994873163153787546239086197463089882198563604025439066280794626791068933144898955909415900556431908257235037933933319093105743223297571948850499710184688369370836479076014104473558348989344936527493298735275642000864276107460579142412822488509173790956733014723124592820205719063198752601457701621283706128310105921718839147717688752513121361912928816947883909173858082949733097621964152296982619722695069427841426817338583311202851316212935879001792871319002962871972370893724484547735789203442573609570674915504890591274456029343190160280051891899502624082811647349066412220381590807638671285157484216219343593363550306163895795989166859060023251502065228278056042857610232462107023419100403760287542976486634149052281311496874252267232245994978878720159479468503224173396713796808952265131956245773463428751651199304700645417071731977872707334675583925441331395132167113744218879269617065411419040233102027547934098217380739969742640604598584071461517117063329494149244389840364798879054202661554577133889477206738569857582093969254348901233379989033867372844506079350168370068700085694286763745640784096820427982646989838782585383310052900341687539032225341291581702433593144445688750731891662496418127597096105659568845239874975301554092785957246986290324113554016123031877104474487984945350393246200731182905326251589272444713053568787383060619263801841288642572770905249616013421123764002048527869045561913902184031112464718300899541476274800317200197772651321730495666763032760321842671642058523977376472382235402860866807460506661439380983821683408166887763225932559769180721007723442161360775896709497877919299218016475358966944904476646187373993165801701922038234711900021166957927626330466731393762658108138594451849289634712620682133562826364386947441291730100403758581094518094051506073378367711771281586521508891141570732288035927178135176153481855894889373286760643715130410679604042156601912950751837635377297583659059034520898406294156660685321061725035822524194956388041231656605126099229463835032178972044450530455737100117395616675014053548037775758257546493875523218236517274297512482079827058871032460187798494397480878260790466925082553459555524872034949626919970740458355806894583230374539463595882214364449948865053389558950236684507908543834824425647236388851960865470039807088779464747489026975394617031866906885900165970354163324538850272100418099502005374241642884974911594107105379412976980298386571826231408164163532271343289212340096341297643635184988381618095083149608109007697197894975731150043190976871896611726028064512514596973099118900396622214482750593210167812710224671260427754277175321443758147166233847493627243568378675637666634094683690238109517404586990695329492548393188107650214282490527235539663595341505325490479937533674921092788082587931715383717760578471773505939600000615766398637060172378737352508072237731875816030768865116429309294248743996027448999358017775892014518594904987597784082127306531827324885498368748462510854941136170372788892126293082474755595914501197627561614688551368542669178010045131988587499444557644027580227474055821733764756122592758261927821808825069583925447427077190492816492443785321756304187827171502336503727741822575062039511230775167084867776699877176686744384504071830206227466245735835512915630778606139302222566169712988407689936890124597877016956355092118824607828084450315286369907371949462472100414699507546300256193857948249405820143913923777716508375176942912795665418952019424406918474053820291823212819447420642768628552477548485718231829500702567522015628020211689399402804685302752268729571350623805764268762797907080757204081308183444369002109116456882762740107990946627860760195814703803040420923042163979838976577094698310562568513479207936470646929449563427737078674576265674568290232275659438027317638585057762343454262951201803661046954947380328944112262691104090600756268026485993241696529614961132108961488466391264214528931318411956442145219973174281773181891849871996284328208940875726523952645609679159336904424379009175278928162631466597541173284307963442486162920315488133895396075914162306535796108153222128885405300985662000100021742556827156315534071021757693266582093485770324043262939480454157840154039432244732592997970885666465150002847844773683377474068180243263130721826912357371528999872108421710990437002628649914895700066715724751171476177147549563696309483286010739721479248628132421819004380084838647360429592615055557901397713641808834498399739334073113460644578574468006876958255549628010910682714449977050982520917121940321256990600993727023498305343057250181365145109414630589917402053284992014906042421549367273749722253420013070658115278402950672138427309559334930229944217134156311374360423103317690755807463369721445199542782034418334845927269011624522216738139944527749913315777209881443078373238262028105656147163595533494868208908320323364460357219668002389855396431461555929969670244580070493806634193143291389774822144238255957825940541161644886795354942867454964321332481603134121547658586177002283336867876187734313218471956491815814279282341108670917030635590063549954390002643186000610881524548044497557919091173983029422812174476217634416084668892589836392818631712734191728659587299130177453679548184200419875437760494290830360481961278064814949207272702937012453916237641088153768213934960750540866333914150395740809063411721800961955890656742038696414400220401441382571403794231044326843071047629177610671092993912856376575938505497816272647344080339686703536123907273254217570087132702424241798370804561412725317439347214738758250047083964936463931035853070140665847149000051472317813865196458992078510805467422410927159078612208612192947266960889130730026458739861514776544708002402403959785928641318398569201706751775525505972374315145984037147669227489345515842058848596905669102992438549358450225232883700056799609126132877832465595223091000149439009824542577977444171666252459315534436040331375050145554621753411364818139668124689112412997410646820743040735447487801403464149632007923911572998829250432772384100826837920550911449129641405472147796511951793039045870651412711182516402698241639032419618733075337207028106929560111143094508176840728382860400617790001632036326408471151126191509451731241335242060110536350898060028509961267594646899835132777881527404276820600121081482858775309685319374895906512730066297800027886465534030662499691430261534405856174844055449317885203139657474682702782621624324317634384466808236750659297705158590482545558517464833049672005732799518717288177551785151272657033872854788054416988830538082574724699516592319030104252937087233602978811387820440984167263908963554726491035349253108701145458030942521694474182793770197963150058552054803934291973702727702586677583535849304314446133306890200338144415448887601186561596346518800809326405741854986867318973319886317105096619471090262339620943577844323660486438250328604295564537502920241874948738867020904957070909208793754756319747410296467026509170927235036705501148363324988737554762100105624170071395360449624708664852378355661633021166331905214528147298767471526296216538519427316260634024635146107850929752768878177596047405796909010336403463833623163912268369563618381976143803910240825277335106284544335187028177204117801810718661555864886346764678948121231512462075863895790308989119116946098584852841682304422816353948985591232966797826984182052276197060976936787637267900669506733925810875409805369823446626343064547497004522414795666476786975821576498924186889873695466736176200980450328991457450215433271018544706009286257770414352551959201300959932134489915998079194100803216507818605175223798202152831533278597594570097296098407088913414184655941089484942248892013885825093094726458951703579637832154443589526186351275846542749520481554283495177658748065662787906018595491693406961238324293977546734874397643282407754866282106076391248460654269853234508620329062120597918061162282338307247301095905903592364172697477849849734319290931464197414780852829460747396612543264252062968289147423593971589695680721810649351988445943062565805271329564781357480396041620209112456667967921560447922229658755576751849807081407340179616903477325504878634255399717585821312573046406668592047372174710466124506577680444081776226009947036692796215389965750867286047025650569697011619755032570863101223265172993160871027261342970840133849221281619193986257354491780071948708564309260732077764549880174981112323361750111280277115378814229495309732977218207176793193773366483470074867659664756470923490978154193376400667965408718318164693664407365894200155296449694914008088851463925782001706832240372841382336229433363379117049630088211590688696402051583758670051021243681568686230669097411434148061590270356341276814096330309311353294291700881932349875447379491379560013850359583769147960206731720845466646059482455542546996945806718199924250531931297463353796194142716437916375574688708688288241344811889770636308075447333299773428404917968329068128321616835545345121724288867508478197157455840930175318299195057293476000543866813672885525244955240215056379713419291817064119730264866202081016887606300812467527554701048763808318219349490650581336476820697545905211372628567882298735198939393968492343802920090626431522025829785785539741034614844802993837386567263330956725823863279707363420896447489725072801817130076405395136173373806345640877346841478629831546896747973416095132944140913294023924748257745894514923149377363943933986662083053692077415337342599791594668500185529344284641417591054537434489158640299846505847187249628061044818674510559671452076509199598691408920611978948936279093419230036446468962077444847590443331537502996487933620155845080067030325337205392337779086312345908192484950222611175369441818023932906678479726589232019627859672768224903621744743954177531592303172898835703688445035845947979158384822614889507072535871739575953050671136040793996163758637852903563345167745822724795325583306760947902884022236181517010314803841442023909493795925806303115883244823579940038903717221748699344195648698657487838702033985118296937902073848028528499998602048088114304548580076248821035885267138045551187693748544025228294191373580307841762038809845464079802158152285211704010267648446769855344485352082328684875022772459242615676297847764036586098995649627476116425327131930444054866275606932003399038870319268851313565793324224396444376459384420563567771961355515013812587602769340974065050626464782481976380145505302208956520612889234653347793264774220331236757949616483601386923819431877005074192512392764415054006604038982521197017995042478248602306925708487543406216403147458385828482552099984079275309755562097891739055554730160422797344870817845567763221697335666260703979503954827531646108143333821745756336399762919434695463032315659198918547349956449239292654737039008054243481135610969479204114355836995947507023645534829054052187494279928040701322955956602783037836850847714732726284444840855982505875081657934838086431785271325178790730636854452872501841153069336545669297561534005592832514109239681771080287706926254949616147679569206341273939943519524251153014769247990114518421584033304031321827092401503678606000839480188922346293508321154639289622202668086605208134724455484978471406333635151441956182645657171215474548460973004004083642106903506814458717708459585049602073485413034642349340417654418978278172041412485957310727561774687013517502222571204514682534240895202016861895389890635065819307587911955617922375230268485570996500169489894448454414515179278488916613037031292534459928910942397668922551569236015320776233195799423361348948712002399406220857052475899944989696364532250391154860854881827945338364094809577824725864601702090815565621745242774785013926843641428251844520169404733963242689280729940335900342706771586973851666058472908217165547098776845060256520632924182846089592119504882226682238194073139503626993745293812312303144856454984627819394218853945896965240751826541858241803014557461619479056817375238353286962868371951837239997467211237748466000906329287397924943854836464770758535662383840008517671457314684734723114080464884485185772414180833116896999602404461923136752358463694802912686652353867462524330912130145844080099357352118680323682421307927379058622807412959770552542170432861184902525730696427453651944507126437755492384361432684398833898050577629653450695312563171755777287694473940451299879781769218628018629784951964840052681600618601941982384202924778102928860885393809038019200224865002117870808397857450784520213712825335125083085561213087060019092549701971878834965212115596617510403409522554457068934803145327885637330329694049426318548527762517227543363610756121508073180033916820029672462650652999580183790042429456960748328403797850986162917337187869482462176204831753636902680722872316446713703169774183508322389952021454722475124774038025288705756959707690991447271016037663907895591857042902920206748446199732274057922931801820816775322128341966171316026892508763526511225129469959118794055013465185831916678571154838333686268478278060101876891072852773317278926625954135326717016130893274523995899692449388170772443793508175467830683407637245526050544290552329207212393902177466533325122597012618081052583087618367628716071277701387801656592784020533793409927659686868662088310864200578040346937223042444771936573984106929463824439584870651365791411850483486445625887578357672191491780445464030242867695086788330019715715574013526063736357797573333591862811884822444434804933025862755146417301735919264978672630858991286465920131796965856813920904231925221062717000712713025924132261950312635815093530107484266206430371731928939886124568296739423143579138549080957561562169228431459807730575551504069328280424625927147438747542134150531316610735041376017013400732698772244173793903307289655063654577427283973758967400059591334121752830033554103052007434166801644481927653901493988521020689868251872641380739654537062524391757359763309712390434229449351467222244640854644936452622456820610649432680130961557218597978699117744036891720199799821776363505572080815032714247524675154525718088902175511391274234832318932327864393005813882541714648812673602470990759765318598595980066464681060096920383002630880154376095137178610458300818575537499763605334685611819879225513307201763314808379423731012178452415272876861448397835067179034717309997753817562369005086276255734223764421556226620964548173844563581127582749375859061662706280383040045922401469873327480122583012224717191365179356537022911550026814067728121404022824382243630342865835430952645776545518545108153722973909880136408019177811165781711014580583318344212456479835042161709062622925208349026874530363922321607631463464627963148968227477614379222990686961049280289935951945224716737023612032083067867683879815982300724162551357980899263770907065526345884923540889273190254825927864446218932625441872361844385092779376942128328953403375695508121035417557438953311522875819283882040272997317896605216066262825695531567181246996783336851313445885801060435117729136174050762169632154292243657559521570085187639039728955765547973688395487917636540668237335970085019475844022127277931240798884414762703285478006864789004818078403305651574523496899587621759597213492280409920506423915393854173198320345439611261284269056415730210735146579297343005881583559944624345589476510478386635828785503562702910232977686741432394762978305426618588930297707590050825440120753849573595549628260009216288093423320718520582591703660459434204956753951982843350456671751866462964419831096122476397155725187951989350850328501127429407341115737293344212232843532881221554294752535411317894623258918400916584762641681651593996810509525758053716713502040152038144803140847610319808611394023392425838426562232102790129419758046890823222310830540719803857241967055702148442530745661665896427664092818586219549486664426551896102180939671772596820490370208313541665279157031154612932338870780106771057624478000634679532853768024195480400703118895264882094399011483108320881344683986690927544080633886499705123334207018384012576115539598753365040425402497617975788795386372557122501683700237843460918970988253015869926398334061245280322806959719859395577375832437892505564401885520158093881001203417582485773007646039919359019736093489725162520312160661499308105481032925551992187779081099721486664591433314389155944657579170513955435090033342693506563232663405326953952827922848468883693359892284023751150903730804085287715619889492108580354061781752936259789038960232377914413735105888737429640007451789232352610801693714644315596338429460820236293605003963843448638038070568598728468176054685842155636404653181883570213458341683232623875415402228100705671829559142916187598912506716428319364341857808269297679822782170951934353393337976431485699633523435137017025498016304863564828394506147114804454635300556273452161277729816571684374295597400495986704749210719784367651199378242287107670856785176372421641011139154286240163545179239550663211168048413387185621663346015425167629338868609876249756221771338951155229649661626590024888773239714350472285297222268487891817644663289308039897448600506435080404508747179448356211773090530007188106959781773636918492720059341527939940190294370090639402519067530035537891069998805063441830573528706838896002144990888270405700160531305827910092470415126691875701431824921550087484397028315568360615894566356247922014578878211704368239013565887239343195758187887342244368143991009818969188672365756856166240728120887931116331099762507154940245589073089353794228622006553535799365561453526727662413176528709818900558754305051617118666085321931056018611699352619505247596533398545421424334036174004719922474263534428426082085330393206317671540514781527704302534524495564224300545203672713668336584791971683214902097684651667276100234326262594826746428039927719628935186833407984774660511660672277794003509955505739281572767001963545750985388481066486282971676486634175665299978430848252370345959239568031125275416641467012309532863173259755623028248410124247627575978166845667308816465111013332843336167688493689617329348493542958234051481097218629318575859651740470292971862664831385391425337542776741687564768071206519132984775870505350691883727339771233451889070750553899542700256603606577920875923674430883677698969240346656367835454945433113151370263003195946746996479048839326101390957326723211245172435344646069209121239279254089820780234113463668747707756584664695511359638220167955611618909726246769452356015498077450841096818018085059075822799868214275589148500135121352276110896096770942161971386974042139501034036727613346103915285462574383455467202225481956178305771436000813360890318871904249650768134355727245744535850677583493842653955715648237160381810936486546989523946160539287592701139597316223074447818876676297939689656567994876384397257020857005396886867193227179472748435835345917863105219849242967308542004603715612507404315582582232421427337275991385967187165015129481550969250559893280284531469073175108529904923856783257665292048906812884362698732107443376073296714667369084119699072359712268077550385991356006177022129383274568035072671809933068076420141977631379523420222155515516603965586178324430557423954790631540375688943875363154029809145891264886040460438914584151025810513196110123164229747618499011247964821417401594449360168818349120462144241465348457369245271881725036567452142939909550236432222499204301886995740877136124431174429289781949644907274434705372302033415875161247573579056708653715373450843371254296596817996837447878682352109451000656666185585385071422740740376748083639451487087254229043697499032343011559423508576276498803101960049411506239279042862924123172690266442867900586045180077513587574331977758563879471457418535541044595607675717069200158355840996525002738665800758876016981310488547470163902596729010361216045367909485425663270112216409168453728522353355680126654471303288420205582804091027363642172130191858541764907110017320119828985183582848586130609287501397278088619694360869092124838023788921303380294091106800025870053823879035393904491490178986625458608329367480259171382504630343499469339260332082571804439578195909462446330094823543692519488915563619494631216569048490333448856341043103866324166212141957167252407893155928743364789109600626152634806739282109244138612126794350597805989262424163702990265547833690474506638986762858110524051998472072240565793151873900860520992083696155537875394221983798017018719670763962197069101564455786625744995854284654791233127601160990793328116309399533268713248459536444910686600881493268991069428958532285812821146578006564755411342417367578062960362184182629126364725313886036962271033079276051061829644527630922573066639743203123992408049467559556588484844464153934155364313533792479727705127274124774232467605878831935541730633934645094264680598150004420696884403768376700270465888198283551864216637003028815453972342905332505979897589535251933882432991156324549576110096112544791147214367173744077029939025397690490339638152789557669108199828168532979611389503796419650445676798336967771680263031607024572622085317772053829608617034092237397258972469909845118932690663265409016645859253073853713756806477451384189408498279701314715532308808807816529507352589842944851680035727663583673179012351846689476309641172047070905750426787321914468763112029316027747432019889584840552382040451857832074987169822596684637977996031186243330098243405911651190519643794743689093658585229281460816662660819546465552867779634540704795065875433809616967467948508378257441126756761330864018166459953386675987934850671162536633246846191995952450132863694518091213836833680569973285549352268850277999070039031172435740076507127785507925043189162495505615792920299471420347673848396796166645219839887439699648362597624959444961839239741001186228501402388470836712587189211143831736855218713388894256943338213622251323753673887748835324009057632515291013896656635290349342932884956731767359099302541902755996790034607982580733499999452668239097665116724006692185906451237922006429636214595658547240097657556936219657667264496400611366605356701750554849858972705936054360923555721318322011079585288182695990608420975502768471226225747933821095612885882719937753333588212021902999857016423460556830433422457833935947647882431758237197465380361606341264257502068139310006386546645427016369731877996163972004685110627172155649939241837411653755733963411408854930270307289969218825284868975347365220078256177901438015887538921156918418332316062761102996120151511341192580848606264852636858540142821100167521020556211608407973603367505048502608571047496402034875876599285721263120849080598319959954059339388274147223447521145806019476991300352978567805897952868173917321477355912795790348512562187690804142965505883816651613257080896851516061546094249820344103412286610809971249043165446723465104176878037275069159048799094155359884023311949742829108494050327147735499356876826800786315878046119671948750918082216490938881277425225534976433215248712885473861974305318353941118087565052292352877702155501057055095732908767208084659799199527631886378229793070370161626853014819803931176196550145539370669280752798501382457715598050078118689808644855693329457498313082860946839920997569701874424949024208922290883539011287924670056774054888974983568645042649887121111481823511842130386070379905266441478272066773927087020439097610587198040251150060343136894949299254880128163473836401200259908495875117226090386019213528831870706541918211281305134180520900552897618799072331937059313427563954920198667541527306630396654132808360676078597003605318451499790108156726073770226362315209287859218480100225944147075015691519786789942356666241514300489298463478655227105525858511648639390388785319530977147838086481304527818567070693645337691628530066289171477850248664141920214676966834276886690599400931463887184827025148501675113957304430725322775582106666036355644684421287131597638446652065286812031017104583353922437899698191129301045472145080478794493209109923340839389416046263969017458573572325696740761543285567067954973576646742880568369690162817800426352036456113432166015301216708824241273728664293415589406724439762061604020050330738421198182201689921759537172805718926238580049278233048868800045096807817370600928384445919002178639934221010075513517871331500747432457042636363739430833202386863290988215481312432307119384556696071232576223319313661465482955449649169785435469365612296962841297482376470113984107994785400364366761806776628388237979001241999695662645710482573263385400234210993939576022711864060448810319517182277801591002801328064707281014451460413050170599739520058010151353207701909024356312303988489755562573927720733071427319778984259082146000324505209558793793691066961340060767903163080652887638726983656464093872871459751767193892533529868457192982836998205221818709873604295542086665811159446986947412850185945740915466168406672730617596251288710871876597124734530917899337258960595059321363680845605166196693134073641506503735472884086537900970146440340657005830938740556471357125607748881479151476512544973507040916298646370913904033489859446072209666877736776831455951382192788325530347815980242820910615393910611744730800224154576815986190092713259450230572400976162327426712728318030850530035667398124252214823809921682028666640800329830305197423562924188521865477608851958789031643983863488347056347900617545126047147453759629393472744601633004448402132527142979681009269123015711971204250200879740886512149812728063759461274332846357988399494894862737904034589206355295512047899769948010271194177369055103881826839897310640665969822433069806840997402862540115686590841543184920517570180709011051613335262790597642223369263994013301960950907510081028712040590397942468831732117864131668169679251235227871241324553785284722144202080670141510643857876700034114077437716074246622171410316917150606017381543085079879929820986583779586201047176014435950297116487748479358806108942781577750570696761064741521311051602986819852046786644442204600347714231319645397906475251298203446456069773491632359355115244986996188430216449819411540992058123765825828242254215690556742498101425093991423740326457313161885510826450195120764870800433156052977849323457758471869294264944322575182866767605471078070096448891484131488893814746086182209710204690807759401714896062620729467567402148338718270775008326584513382536681918025703825708223425514450295637999391187216013700116118947510323142782184574683721540868076080606397330444744596213342743330545903320019581271945198902388507130017544988664923082022375283386869892744897176106889674043825037674135732494240269933419393488100805705005333315507201270575554220380941507992559383327116503474364012071640231602553796880786200524468891783763633814939620116405975933903313531584714550029001194846414198300852085732276356008688228382287814633575437637194603047648704627119748616151915499899808448269074634377217099183489704680963784196935287044861751410625741722448994850331100948254562192853834412061763074053010761278129121356888913292376246983245222279774811439224158843561034301968888910240974057733163072412051885162891899501809209068030634273871466743464884082950264513637550164594647725944063306259022558788538955182162473987385145574026867044382444249912236629014456540005229828338902383913962774730525597702008449217483377763399384275171496514712172811453098766944009467598218665255593626231345813071991817136640620867003247226560054064722726497325249048328022622163563428479185923548022503413511691707251551784387621513933931355242932868808269873707650752824164139885040700926989516988648183673495021583344867374046267679652278028678764901388837700016959400015097045481010240789278979589951687777583554277154327509746781650058148596662810187093515936530614202708336234534156749353120889738521503919568568800465291244280836162697288918345122299825665730740825964339741914307886440004002598783970606953920487137979848077228539040469849831986245870614035363518291674926730023122810822829334046762562988187811989830838108552096568315190453523722010657595466558925732964735916028408086736413662696541103983958633807611509988420840218339575960510968522183633384256869719501545654251956946079915952914933430315030272950557665709565620221747948491861503845983110657841223601081725224572672771953011279489770522311341516373668058940631159389476558547459099393230017163523466190866803003144067153799326172674106950492459905146626614946470708875323199871876800939801052709685453462221246507656781339943362669481577660550100402627740238868445864741070966046562333823974892975086395394290213578427586121858025718358277850074259234644546215123070434070342181133651022298034286236764876184445290025392671508528543888485888776955038875840648414967552550555097443379536768379073649238193068776002402252331743643893474632226010380302998171505494561844023505991723632136515920296264910976172698735366152756096502453127584404213124678635209581787459068758539131217937215075120826093192999447533302718991037230029846474618326389015091477264244383454653975772457112353690137749201534675988051316692653401438854268010634551083603397568485114779652889209359991437529307377732819475898212855388303626547037477241278809681876015849984811308592393429510452973617690148794209104807500031785471297246653148510287395675374380316315222039512057976077519798544126953205029116768687451999290759914413813767743318654901510330865384042607827007254626763726857384990284098833416103620575393423182267616855605357145794752408820962859469597598215639698407103323993278548489619636069591187056226763199466374757310423566481433691344765902930036636124798372830700623323949956843329211350628306215958991478516597077379740474862778876637231515685413929806435333175634798277959379509069227993195231890236149031097804528360238355300395890113908339490064999043198651695313797497398377060386970874275758028757844830223870885538593024569562179376730922333221865466223944079846572436551156431653403665002726961349058308218383514576573489530820155581398988447634250165435374791306827846835531589909368007543201971812032272388024742130774669044517774016126867574559866725103310010199109078355533521232031186717557780506298910911651522843887552380117043161610041117560419774740591161785563306407981446545382976111046951180009387617722109594528682952009878624826893984442745242202359208146829925411655076314302191041225320718696672183613758300510473883912950085333715454656329026026711082353545512578527914014604267436210421048334092927999102611325295393225620926091222932869506396630646204597016807361720323970431077787136680149272830569516828288720805558943309589488288491191722440657819968318821691455397618314792726052401487766297455960572153744642889425321145707424361859671151058812041037754556596033002850452015886199273699689448236733795570891168372662033402213025826216897439031016696046015983513406104321478387507398420510053890908764507267425141326618833330278546677781714503488614936108296082401368729934815489537245416241732598215948367170778242841656488499666059387198518764143367308697236813592768090381931024316796355119107118945581222866172973889705942130419728671653749409864952133148279987965904161407000236530476632164740179396947957136413765921223474539283372456009106714922686497601543040893570801739615398932711604743550132065584479527298332005767320418636703506094580349424921277287955594754142594812758486206197393671946497791989989428543868873908538340107879432770261477119283701508494574086940191655786464155785197372894967470157206363675644150894660263774037552051995734417670532472822247627791394497699807110518559667851447947349934015434030829280390457835439219826681512081964402995870508956156409111545266627958548796525404909227754983689144300203193616003422166395949114759850999649346301539036535728599541123743019969163842435293091278661714781865563168495025223127148803823061863384886602173335406264664925310170815798605061530014905345802889408714632353898320177633798281208953530875813377623802487589532308054992334916541223232566088175724700633161403755093879512774141048403419503146990675851942085964122156028670663820085370715110738562237884885141100121802612548410717820554618481425478496915897781954783756292755189145195383313064724965071185536890067110309771049753313028716625273287325986389635750663007544371848684307083700315604481458016764627657544946079639558234438662359232769685260514037914922269418678692263746351181281981428532032936191944299080201411201103188587679411668829536134521032891917935992087133945616900342253149553016079829229465102130729661421302858732004263272939365041863003178408146730004857709020143840741612237372562416719960421418118622986392374777478817268522604434138902782846612496400096508171676313097241266922639060193622361053276072813631951037967929654241729721912332359950077263323194493318312861248937355679317612637704829827979553581552047708654424051507428842051625956272238039687908393086410541550053976094504985304055646198308652807863933887330290767988451191343135267395472009402013334351711787466988442711942311715273347573193465886223739304865213251265914094040886109482903631788361013693786407766091968617133661229950386291690418302990203117176896684051039509336324204675024766497780800508985962765759720434521230132883647839632228933639550929585803543110401835054255946014817880570351095166133788678492705457478189838885590276138084730033693104159350328919263039294560066805376523877997239293210821106507219920184457930155395095153147165902412563891144450954317683895115073179730524253247510465263809099176321992884431615844631135670853279948456363050505654396403929683976340378405883965046608412675827887181845569046084665584925141053748921565922474651856904343364797165286663009054817335839517350480097353211533721498936954083374984885623245259640301581589384483732557519365997514232989523237073338592875245459327403487870381643490920623632137325501213845406472748531985826648579953318046042325461545237821739024639963252902520872056716456522175473423610061062336034756475210649201200151678778881265487906074735817923415689733487735524677878166004195885932385003053582254578750516577158547342179840214802634672398433406673289415953510325436838016681150918333792207101017945404198270242728520721548816177074211182709483205584695312238023483986258359245215638689053247071788869304291055007691588024198662854203746830892031866177078505175435523437209173115656329882316278033797541750592474199784641988258833812606971193033139615073863852574403243222360917822223829892196249530811039212222543659155729012467961033825256286043390325061841263652538898544550134688097709736391192377480831966707639604727814868535439893531729230242478304178753614332304971906606964115212610089549683007001192285441082106694611926236729961083520890064627236961330609624564912866680251851870422678134593329537050844173157501854454714780386623801461892319299803513941584639300703221148063150487337326239485693951077851933696962839196284629418442622597877466353236277685674492715861999476410003481350019618733931622703913495099485957580173576412238628014874080141327368024542853295351110080122703061884999910026300161353745233450764457574324748460259931602433940594732842345488999818810400828541934463067091591185140526288171700541503372003260311907800037521349471209495877825963566309749122853920383170986113066054699918033207071765747071957255559895563698294422895520666970041315081195082821906060305841091695345487658252107398428223578037050328544490872229210006125617592383750903806035621486188038432375783902810576567316979992664321434342001065304066390166132380826594721797043808143683250678144369898592579592160368262587501477093558442351046493024471295536348797291760099178980160332979560276525879081671106505044463251253917439014179236008564702326669239418701647487845835228471688406092691880353591669214198535150201004424159893112047474307100549986753553397642255272995840498616897659820427758085860404281410283682169894404821252194075166753380786115684326667886177232025781576625404546819089661910922734568417308171864754794634370740119492606135107473401475960700235640841709329723007421315299446495999754255983871990005683783509496469549383096941449684345173903543102479124615687841628760474508727942531938236524070208406746262841937482100348555410664391474603373883277741413705546997078514361132611251052928949582737108295887563179539510548496690727843114756303644303463808630484385070706738983184611424535549126002449137275716445106994570523576453469350293212701111910030612221358648591285019420268777801327401939293946470751856569448060207300627461416431168913511742924498122425190236939114791204861148963385762885440621798486260382716530287163607378928458476066840769584766840919324106189927291172999805651887142837657185604402547603056744362127567799299903081664084170690571287247456449923552601915814648967693003700655257933761587222795685292536469371758094816469760725472506714168814974543904130128346517369996466395722433164569176967196255557293569362686006653419650417190040790775993521734656836252383522336151836073172753434884997339783265269394376418743628761432829074011281394986916696611299456105872547394402972349182530396375882161015820457376902267298368355746666398708851608572013261050815687909442379529368975059079910280105102284073468033702678167557260141899812327805158611338903699096770094204450000419360545935493202958403184691222181065473263025860679267202894923034521352691229469881202625890099647300591177070964180433142289308725822218913565439525362020615745081663331993091704082809533490944377803167316534906225353089562900919575082670028280357446720720434347361686339234865794141956394617894472759143769082923461796671451289748809310770324392738649380758848271116736022632203156511855487098161389077466103588945556446294836251003982579301555235329332053425942623227141475847885437589567302851858208093541108363494161296528305216574811131958688395765964349033345967616332585902192571960517033209090732730647917122062590478058599942209773358814261393958592164961609110132716392336496401457820129341066134440433653939458481684953991389574735117579639617322840955075134555670597842290714700887324612721950801783391607476792966380293702186168582033424216848710818357002681993153953097363265244677369011827278547858993704335417463221633881352510350869237794977887908613705981659058886965069659204876309414365781266258062743250774524270950398394338345755015362918989237816839847729994371122796638705731574777870237441361263448598661223871109774910817120492357927884980784688936629301354885319933394850000634368713366513699726511939937623207554341236766129400939489871333121739808005124079228858626514731628264094647151951321515722396769319130904718608723887656992078870863628644271508092793995339634740250740108410462417810320952050980053903412008788007413014764285924790983184400731295049629334421770803780970013279406404824306370482802273346827652619031571539212068087442410713989643974407486326688725446886881796255707664393740269418636194749406236317873594876802096170203220680327581801695680445047848160316115959506918549827890123296138315292809386510978191491614105861654882689747971632002551983862003562073947830443208106190377518587318519665524672935920821128534989015906393673253127032152575873969280703723383344637643304632439538354499826081389178547991771901291103813003869747586221054867991167087874800203372975781019410129617213518016504108742110584670707776599608815354592003798354881238415630458901884943215071497042450102163799986969652065167746097191592458622865512262188729076563734283910639059955617027033371703286600277911364303791563456710632160152262489143510134185903627883354755619786561094115682549377227702266070582542689430356480151264051291422425308640327901630241586553042908653120861884518797645526231010876201907731459311426287651148352422433280618947410012165519210968172460304843194314192413692498395248610972265231816593278147645984383893309107443824846974651789445434309650556275184099081856313946208696304261524699596125425841657558020689939688035989632139935415029848438248991453451173463415509453926133460831352975665358367586132144934349667844286062732535635307682722585331274944222101116887452047496384818847693388430378420844642897399399514789203511051106773991064365484348866359710627071772342804848456262505207582177840369984113337637293472921942967564205088881005982665610963096298330130153149939075418620756992825560927693458678480602901855439418100865939229209170550727476048091495650398307730930493008673403260057907216561206797514335098116330615411127524751823108550052922058702928684433503148692687177175720425604635182548398588343467944185844133858282949705935775383019310234193901723350426830802966880300682830051606077576445958486364061591095792304714575539747925278766466025840893273124184972369834661973229271755646357833875991022251167971567016675830773408234197996343780480350433052968929299765480804480687220600944864783937317812597176910616036036881281657014075048346709440457577495934630478689822041179698780333012238750262983382756804314226388860563515788085436858729784217199333330776399643932409669349388528707442300361846307293523925803238816259271116158458554055972171613586230323520232110263995670904160613316077511805585030679848723573961718634718179622720317572718886608383524043497309467175190613975824017742609108228259351367927894315198506056556271386574131743308658761066074963618018944872451599495766666298063708869047551297238980215703085098224446462981271601727398277382362068407761400675409591305503478688375725974579241243501514669825720054961833576798528610208631304436139416442950531020097944468844297449044982678229170084730275740437975870339173143455767787266326617198719059288444901836294623520594571624616820388565763350018167391823005619094411712784703838561059728228461622694407332234626519455517154894166159077946695364563211777866266107402351335438694601806955362645056812811957080673711255044743528094077856938234695174996390912491835808730705219087679083107439199007909793663776177821817153431601491114281533180521184507938017800068268510722646552632117884280640799558144537155863195693769323687659835532455196942618337959937597812725199703209943557062460396864514181022232984358568756998676363930709969960244634120174670950396271477259681999852688873113222102540386602736728970594679463663389829993267116570380416366666664437570156552829217761913275200544334770082019262913606643919338478750242903893472684083961902424852160745101112606110254539413020281915755521150282853033671795072615600736287689246888221581356504505868999637216288763612448979938322039901651874851853907018063715162731807755883287125162821022345976665227638084022777851997325567784803380424281984661964467592192241947605909439057146166192493581547378463497186636779565815283297267758772432390096891774327559608021140478862983522662667957654683703657054157880324719244757923211865850353773063173774550500694047071158733954824514173046196569254704676798386507464204931332479999527049826537958091523404806773961448087936437707291128331102233916234304192493859241891838220937421654883783843033806866964849649916727097647343370483030821995669262385178097402245206779482252250302448000464028167115316518856930642216706455111454165003676348115933793518514865421517530469782492060507091391576683232992491423308856080767546877678178630657453672323751772997194857233288645690944653463577557626869563580623195474024536583529471287531638463333116188058934904938309984657955675322588640012998805590694509324757688622331342225134507237930590998756698366577955861968419711216815969523671387674774388140503296423044834529504626046290014474579072380530299240331204999058508499618684837701134412539004868870255169703692109693035913844145675792757813029664484907864798144484012734433530945444196840633824462619086585327717670915904226060117689619064276498849455613516740840944220851516828468610695807105130623843332726284649407901850390281374730780782474004765858987032265844673535334235233379864594915260884530128801598364895561790218381638451627786562780987388421492419448765683818053187416140277015942528059251296163704105398293037997407941048859351965720950166124328528739551816867825478496967222935508400023579607454194494709668549139985911743118470192048365983779576721996396156392873241473207130073842349407400981483700998494290721615840244564943392534373770572381479736548373301886341038400062611161611030031869249963375558219907272566423455935472609099824362936705556127890485333911970325062968735176595244803020281676523277951894746033694254897404648356679540372618150806776637319379789295744980753235144922897943168831922012515668948536636862548248548003101124658655969845088192138010058027945074061872649344054595158977888796582078469982209648171867731638223808386440967499816376406222497428719622451173628907700759982362456251854109618971390975506134135239876052052467791765087026665946006883683926322651536683989570599458332279372627246721412479998517308240372941907581324821103185774314840988155690769805638369966627057169452366078928490642272458749804847200495927937365164612704552923636791931584821364156904717261651802999379181786053816645831293322281824367461760855340443872209158036553447779080063258431472933195577754942796920602970725085419986574850193188208764406211119418878043499279561042550319667725034624305138445949736462443441385513174186925533547764808281248426764321243160406651305605507811049034808785264883680264498047517055963319738871055348331480711109819986657027127115678121187488695905378060653907810121575313116140555639819052771913040252682971803384795512233464670784827818592583521099651756090896708721946847116010003301720817919576053555662764770455632441563592139718984339033821840510138233344595837632275675272858526390024420468692403484182867905268082315488044695528249237425925966629826536742576413864231710753298300440991906259620989988889452689244326116575747415784601617220647073414625914156612302734440887688713414461484184623379513062147956842931811807152277981998742303653421574714729893439478527361734791964786054648408387530203468462366506729189865872492794561153441586850932578650648077568346490058162789587576185770022996929600683271204714176745036711582726381794170080514972460103673229701140624179325967017528753512452444458577763225031732814895766046662554672093864580836029655759155435327803970379240017526341720593508726939348521145105762682896630372407568947255777860298452494240881151378980549588267644098608235913211747837142479307824598460607409913665751316933027776436270874747048904635237497816587071303988295431795996933045529982845151554867483878499397608783002557817899891319532009483406587671259348873326908593990368256102113473342757778735120295323673362688389736924889831022997300487848058755493003330901936869870498871355818437459988253681368573335793172181707878771572137697577340053365888516531924469431675485139606746705522245553187725762615535124703324713317884137315290220820191913650439773065861093256113090736805840525011436291624182561636790741555639146816201265172013941248028108898868311254935016976620965159753823889374599775166457630231622541343043473442502862692059611306712246680375122184801309305038566702116694891794483828021177142440081718545626371036494767802072378084034886647942546826830870200996372339464062280093838115005618429053973665374448945066108176199893966593071372411324955768603426434651866127697998358998496819005550108239107780343132914677660979890250299221838548770058482734358175026646191825180238863459069491254873588496823053591256025366779712228796871112615343669891085096149291841266232270163921134214913831006850790237767263701950330414601246324181849349627200384702620213179989895527204770023292862119036315308394279861033305087861021235703699788761488017737979571121912128441632884790614386634084493955644288727557038779366599871901036823821886787450074574560213868744425309535848105613483989003907741037501633407440441082963808632361999198896326268527639805168795448217563368402584721850955221386472003800226115620786628688680715586973490411264496106899735657431804781803909446184218986158001286933160656853043527026485109372233070278669161577756077883951956006653000343207916938904653094568980769231359079722701592180310014470952933106993340674435560045107504218981660452400522196734830992919086984360429592255108971821018289375184203142457448555181566625155920016913173965105822805179317947684424312641428931905386533206190739507726763460566272280115539371554767409373672539544168326074222970447066676010163779050045187100927490911297440051051201648678730511250919080816973634310744603114963191309148232129141273058363170021008217194727782114670989608432476336679594556998599707866219880350707170169854137733868208235277053514175583250725571074910518628487337699888667552379598529086272126133249032848024180581193608210459484709852418653945164082997765165564902613512947328423563115628751184984319494585042427132333527976735882648898490531055902343546266182601987727973447991384655591204635635420732206986267630322516366220728492795640658612569759063724230319277219836567171371296393341761064370618652223555861054168560113703065107129498217915893181316556853199065946991373925310228039774962538486922754286349524616755868024866452543575485997119500784916466574963539415887500437098656999960735299290761084333613972143326714629875788675633112901463658478915227610103462880321773366714040020880781938488719353509029683019631335403911442536268833933694074969376283886465834854041828636923270804041588733220107144652940889305523831972795454249326449968494271409945831253635918270132086298990694384337708262333702242536959838505683341870472684568843299421138855557114560316210364399448356544855919994449476514983698301700373406699139570596092868855290247681592829266370023282209229804310026249062270338964569595043044500778263375356178586070322232993470736228496649920372561147547309658515407380442794032663510721929607084397197583986911474305950991404943864858216286635876614624378708139364276365505378065586690888560923335450328156370135749463829865581975185117080386320526208056211894836786603343550747300243388180198591280361228001748783495749514885338220039391321119500652487394336032774421953426903972954527852898546359533694011592877236694277773066852819313825772015248084476938170776087198068967232551515304858313888699351196310583230400775422271209580249260085320828530756033546905617688367179904437837188272099039332982668928920342868570691917960051900744772731120105545809543901490747788042576533643801443663428142959817202124295602699476149006969284952748114603536117851157675632014058511436519789388369568965997214664543550405497273471199704604869656670962926882297779521603960502042545969404780678736766614461338821044324498493292075884808183600133917255219489675908845610739674571260917940123973577179662803998835432636614997210522291152582792696869724581616887935283155890387729529185944644699132035771495754205833472933742063234236777722573351604875215722473219533551029184239037968053629259566882100434395782548577992614548107844367846278976750980442935057968332825091602196404426586056967937919288973831222989869859807355023259894195155723194118417963894844916766991861620723305940204213375356129742466842874010012193109531881307059691947472623608506869234158748396972276033701521144716248230758990166292712638641741327577055468728285821700912572319771951759191142309364913311333414912207616310548744422399494787324604367009410907024862564536006546387229845114439647539851986216362730156159608627234975775220957132309714550682283662893278097480778108961135446134376957852450250225543350160188311932022321853446852805205815307687116260024233578330404607946620927685892560014019325820932824930753628685405396996219718969033700362305962827507509080133169035242473565676984662380283503557585093037710472391503948932140100933333377716589334053243317362242435244142604890522885512562082089016960367180390923532992387519577798784225558279058653307734088356934279155819252785238644721731803246626338868303158195820855366075679621406506419502302746022583511176680804910690087353291447532589188085127150926753501947372157204430449679942176250916299600124619769577441899099418326533048714265828481279357717382892445555539535782414873126813444173385194238221667154948267078653676128015794483008508777795053142912321819085078323611474629668563285083200897293727408461297235307728708632101674749582922828877125578133318179504969260873841370533344273999965617746672266889626732941226992472613630534039208713170284603967767046648053732774878889179181797558445794636378958578850740154969477392032426826641640753178188484151916564971119177853970957417274175673297540603992112739955312205071440768884648096897674298269061257863309734656492491434447860611029874065457386584274303360089183698110581854748259687761628839275573065038057554897860453710333592771562634527366771410945837703230720207354437166377325988895994602901553625296371870561077684664196395764211351803844558516259520988696398839038199890019492316612804838494453946691627585549576766363301471788616405972883620297329999562840540115057547383741367022537257450906991006703155735911628743929360966258821886445873589222742248296815888311556307277402468683687276943098044537319603001439830727195485969842096817232863778539944505904212043559022549940110715757242651359888229334426796417352153857516108148480920820007698670606075667704761899230646172788160191770442847840141727109827859067844598440494602423029464182163551385515950836840524077648449073697017894033585324798187466212097743658212226333815139693014047932326068144089655424018089633262053270682118063113118842059600085972665720572849305482412652334185450235614986395511226628775672081854856346342693700027711039748343375128306658029634240144124382593681669573133847249042732986987163036507415074894794950900286444725945508543899985759169749758469547742318138634235671024941386484647969543423150454466920146469219654587622125374574824385681198049676259297047403735323536065282752008776429995344276032865489454845787469041521287785997068630387921362751512106267263020570837287476741434348341631196457435271148764835688690672834305995695574196403739352043253429900092426418118239877645141491899308716594061263222076175422720172248366467439150151357969895403503172188302243982589191477257069723709574220134902618946571108900264891456547272010931861559164039361272722715645481462156244135884145089555578449887860277979019088008375592314771305855986895491248672149630591390168719131740369525303275949350777007828894990375087567004056244874518833743428622968210502550917760214122432267161454811390572713718285475180627959955023104652464700726341340017041275135036387331276160405646311851610438133492251979827870762925389174786190115746347334164979496266731111872695021687632232449750152432578626556858921050607577543298548412498426612494473563899079847950122710406797925780088837235618828907071746293158600441090453868896693801269820405183791544192334666612844872471666867789170223229570107167371811683266334894888134344315172266278610572196369090454066558894589714227317809527815217046924838930320635844388232083456313618648575455018707881871092160025801260190549218701982716350040587048685543596806362819713905297401583143424258126059974893436349029740308853993806366109213818796307637377980248961770200704278053854696533733941844929852693162685768188517065279343897783004304053870229440397932311958748148260930578484472606152350066657948607894233994911064216189876873703638755915402732091103921246337840364684020724238507831252119668541329340668467936975220299923916583102063963228998957815586339426742690350521397538463190002539537220786433615885650969166007603132598093043907990138295362165533446456643226468878780514554665459389611054580124315100549695405670807392900537166263621890838516462050391611474542998787336096868539119047258450169440379110075348133517316592549277823910026031479076424160895568971320103450186485543832199284054961552547557936848763991467478381866494193514559340742895286814786155496350526346510433796624492293949974198680157983802753972242757641088224841630653132070158995208414420118230066271674269480457427156737553809733474910334719735678571369978342751539800845435187643623007818596456973779440555816794216678310084070088676947707875508946059950578827101260526199695342616381024054809228852837517399501370626636951250182136997871215964298911129944301067137981998400701744086765426632135745520338771246845166333152981785641769117565972142730872659857654258106658874925987148238810453604135725500262339038044544728024402249032749899166879412046295260743907893497356430349110961014223961835625951660573345578145196166583336973032268909031281008703988744449987287623168133518009927337086906113506048131280529907413819843159932218565509047171106672061401208751920664982365063010500478883159660095579541651108482422219132167032272097389866601445447004950088038415494762624909869511557066940156665500106210617050402068139489737884979084392560443683182252870130060542607291637005105708389890489651054192898586460968601633910890875173827631888082972331407172069854688667712096993345071072860206244217944695887894075596913064397329809111889499733273210564629704103600539524229500396923266355182666979057614253040881196772708107390959757947485122976491396146132606033748002325797790739143009161445302747038211771951339200778367140254395330223336900602052737783932798507077974432770819353980769802530261437062432270445689026790125345745770300104326045735359272578110418080933383380114709442681471838668713193412599944927614939086978583346390499440803738307450185424678326325072073693215237433265447061047452110780908502219440366475675590788265979073080473730586579898726329764483409140639116761133330042200665664736195512152528313127666745607863771834273263884291302050468168207025739230956864026540493807340248093282399994642193325030404385614248985437413752370622358173824283202577069813964617215645079133709600843567686603748894540676144548740345942357992591692060947949597328678632963705121924445625055055779903096825342378513188691603853401135137365128143014438353974004681995424355178852228941832402224179902341014195592473911038132562169506395162626653318602352668334812514072156123324147425498519946904975687998809402776639834259266867836451498552697980405708388437165286013160386651263531009038656518098478903854787347201084878783464497822798067745581033151607817601730878406067926058900712891214722110236893563178800301819991916196806466191610669801778656196355592286875403080627547086594238391398866003831305241071741545028622223987290514175994792676337290018378300109076920960478002411564206798816715454066997712375533952816312925856561414418858036409269102086384642393273992584237108261011968235346599727129241754622346174116710157900881409643462600308006084690253886532973774843911562940291427125103456043503152878134206335603134615418414099745324129188778833887136430944118331869736796668272757916841739260497392746820958058578250030748661135346999305883015729138032229572063538481611591169811880060367350394894757306897820281264071740880249776215749682463952573110172219589239010570498528731187396353908806079867600616479872746157734412872413276003730123875403272787789317037331406132194007815360403984490395279190138162077271024413724471168558388803389869285331998696574516223467218926804389340289458572418172832104040614879194749636363850069972737568680321676617371399696362652257997439003823482418849164882598441754825903769116788945612079908488279225830279924599725996701340126083042753924683329601419368693495342881130418709124131028935860220077485396447783538573955718448791756956097626995640302933143439547694623194995075258207479509044178773624993829164734541405401186111247218522966572177150425052350139590176668850547619478567681255425451146744563518203692277898574204976973143599834556696975585641394164015004359877654559813342237903110305811599455565751522222911036610838587331339045043021471646049344106778706200683461312345616655639687701138646543497152869585672750062791521258506780625916432327797707734980307446176292151520569365299130238663547727123699683355157627070100312419708567095995020376404856823443085898585043283082389684394184748766115611970000674944392382873410546533064759906946692983576819336702698805184617465096035682876126970562363329745360274559235570959621380784904821091648914938060986573939612086124183461838758836368670472134513494105470026827255360713130689890809288540320464623016639923996237078601392461731096618067044838319923216664314297564841464070993236975380681473275099229703709341189738949067776869938165612039979820458888315324733175987107835606745730388466752444132257126849930545786465592011222883096888244073985295765737110423347580074382113516097144894039432347158719892880019837286705330552372770752877112385128668317885878941041603211521308966223399069486394920187836857700301262271756752185598874764509624739691404723965649607320148818148817587358998428982429243371848764064065778965873378382240386959832647003335223547519714119066960671906862916966490249733129543758178825142210161622946638104109836613534054737249840173270156506345910014648182097760292801026829705206281326685899262270883484284556716380297597498898386527085049290695133682306917533515491093630916919568245013127613649005355089990852624002585408392150740873362681519555723438128061375687956826248682001076685115814226640148305623038692279415416117763825328313585394019232845574353681858312984387764094090328902314222109764606403141235082068173901963002912375050937902222206375319590272716740835140950396117575825051054033118318726512142440944262082161951255501107991103988910900849581898002049104306890377692132807099711591318436498982703941206627568934387608232148384857481862000913421206123758097866177545055900484714295738074955105460921758596299304206206422130695472430347350502647773153478756908191168133908407835980330206520359919012102187148727119895010400646164073002625470582670203774384461193859766336886770593242778155969966089206824260552403049269083285968066185126780245311465382018735282609835396482417910545789651526287511090512803304359227008593943954466095655697141686984677732979077225853428720200203679522113444713232964197969216236795821300616490329956731659090670421924381300263329570154956223511712180950204808265794767807045589662844186043557254761597431457495740702640167970628442105209395501886317968692585278887302267657784091584028934129276456520285989814488086864724807966275499222330167238396537642970331734294703414649944875779744748889739459600863995823094750743833792397084886901152733575314378434783709821812370764423868246357807719988668549994853283057444317265784831677386417016670938943624004635615013865034255855283859288950420054533912710705693633380364805989999463475239632776878707961064608874850004744927189690684385046533596609036175702130961932170333047151900698048202286192754220772432925621751576284880595044305510152302874606235584028095190837317930911636750950366868695215457204660647118269012808075879542040546882887969136186750704628655825577938557138462948074705853649118872171228652283373033600146510032296293440546288064359474225852135084593668577134588833619336685007370339767514444583003374502344005217003357600207320167512452424884985818580334044827694049479515446166348082919158903443591676688797247558084913790027806744029947195508716478442370978796267308565849372473500157568016772317345233939877800398112546549840939474495993139673060808411824315875508327353103375756972020482607309006540330590373078864018269032299102053572581270930083107833156235070931016790342622393325943716402103401513548367030591500965473493393168403190345660601316356904728460185768628231953032573996069018584761071661872892513925087475744415018226080011165078241633364490040974618248899522649676026033470035158858285626884647216998200294270649657669720883855874555205624632387614398972671822494613564041644795852067205754551729853931044666156794950910695362654246978293237028071879006369961715644833241846092031072555675026285382429584496771339774096729903241367004610856701978978200977328756883371587820929756734556995348895974941860784037150875511406381382307906439288340273777914561447468887892494085272102799985238262080019531175601878487991773659465498894883766828868526477167984635956207095427439718835227686807339775701310164844351006952675807816194498450742899315880668302864797803720668330465564807152017931921173971317526401875527806089365789328444656261521642375427582139398401795464810278869547439864574547171417550125105951889076498324639045483163630065885559240907924695141903948452865407644251066884562272289880468733211967698697217208580452049266591214390684113967021443590533826499612130588952902319763482563973407534695481682997178562550656101285105475236749154809851314996177322952388801077777142534671320740776206680613708834033825454260542505935204389948888069827008191016233321487631457388636116150097506526696705106699422526958652523671696083120663313926691063383717299823719490893257934635244876405136667338323155266993246330316939465995369342099876611799952103142360657218164414813823305564157113755656649954196306339927261299793414947823527308831444369570339748953095095367064086980808623704151563722452997345658460571067218895420702536241114419677140515299253348146771044748856022924188213554113121210678026627791463327192112180044737785853585143315495900011816442737330446731275543969847633495213464279931200559107637201743037560660290587602107782953602390412236376904496973061755917284971089516709879394815298927586754161634586738483203285866980712950212509986977364599699006831362016386965391885340147854192438100337346200294482749549505445244067589254767563250147585380828125696441117894075769885880366238180758013351402867617453955964015663483248271142603372568125862743653435613893172896116752442647988601334975034956927851153853404549968971215430193464904662665295426884283168486565496650484813986977397601051353331041849426866259365383469818980079755134757738563201337768908930105579758796335349805942197889190395352531059777936392617733810490701574603557030936949203097134163918929900987634408500469083387610003317509651709855092447556776317918982506833343709552535593998692357807708297324570733008180814907804030361159978728490916146169757538911541109510393163739695056191081272250835842114034165345046932437451633545622076464657808172951105747776590016452303489036923692345350163518135474760862302454641943434888409659372562085134420509913748394942844672975711431800290993978746930407220651416379573948900513977270882761721628792427652023276221949820997084497193672763934087052593673930564490961879827346574305215182259834377001182754547814758885249706989694399223418783171136236722477945245259044103135965226688743450142187182826266614906271089608006268657894799770893322604971671645037216430987656797511868544545501640435765956807591841961454988086071737717959856109281112307490015681775448812278941957014407533508411053680774119096881084785119301980363818815397938353707100274396017848127445456512491623123589397447669519548996525053903311361617676783962793552686725317323956405942996985820902810110295451423695563013760598164656761931958038725010438419085267204737651419606298786715713226937683506609313521804270002236593047713560026192625706734745212947462667948400354256550288270315246928350471254363605078435471498955717930595132500883350724509603620685956739054201360473936078514774147868241756484537593163849722734531865433140526501537664764454436817099406645653052539024218856912516894064773955320405398878884755694550826640550275965191579600773646137556006275459179147686773160983474418755887814179763366491780378683736115055617736880459734139635475352660831616869287694132320669964861943928921696854101544047923758589175197672678911845446449595114900631919798393034233696826129456862135513143299862149811031419336421469827974385685382284014882655830044915375787454238139534897770664304763709575074888731659072479078553551340232172232253026968424427714023880461372102941382373641104693948601173074529557485942873418667474930301284124226158919056310651506062248747404388354845757167158059877333219080590888775574935828491557602406693379893643457234273470639731259668272961593529784028008704910897915605600959996526813506034535702157437576097194410637636855125633394517383041911108547757670249285356093541168079967423771020951170306962856559937342503434570066892622308418439185516714237109729628146212472624149968660466446684918821554234847755354667138486802355002022799269976326453756451911556948958892591617427316494198907861667396593220116938619688308161062173795107654238882489157301363919219225525221101798065113118098878492452080118905132924407058726327008673435104410726847572319579882449998578383400260531193844350557962819397659044860854437299107671548706856671033902393804621920031372375779407663894026172051158773738295095729251154275308045044504569589113588564351117511621666943836199961582653812224280577594696548301387597049154112747142201444371479881873212666760736720150304880523604960842469889936090744552648433839525776562240106803668656372401622538483179570741913017392966608625722656139132786981893140314613208186576269189086910082970569179309107875382032113374384583279874390379839355667566142805782256717270726834058616716067899304952329828878942250027918003144439517850145358574490049001548121140090615842160436092057561543896571824265922727675457398497917808440784770700240950525937468739124289271845381466783049946454946564616767360162406875471241977127541146951964305039838070145402219695166417567063251137741155802810377344991448918372916273301112725636201327791897624916527962594922910542645514111730237015218229034920085096103673062951319733768382010949423669250549947811247430060672203652600185092940343493552104303142954152110108837080563958417551598863369034490983729405669277131084164406492005024084944410629767145091245021585486341365210634255446079946357273149077747419438144711063863723330334935565472310906746998813213833920953934477226691301658956999638366748323538778004373872853387525238843116296805265517578942019251609303770376047263187274354773516796991077552824710972839144289821758883626787438956581489892317489600513895937989784551900088715728677766200950170549275394208230739438432039412980835674846005981882270313633967801542604646026502482486557803793706274768835737127842499808514673159401844141849255255762873536412807142496413621053171516909491446317942126912806305250848709729099592359535929838877107381032648336261903568616689759225901921357914899425311200752992326869656417205852258428165410372266962010640975462515641388527939311449958102132014638752236535132360580252763971903344138371570906856611096793010863488496617367068577534494278526998184087733468516276305494646988755041237240952425267797839092291513735110442805881143081295392717373941246652156072577384177525067738843798275383509912713094177197911647312759186859082978943266125356086056138387550970875264939269295167243686885170209732078728237487019888965295604845849807556175593377316800975714342194269378064386040948743999746631894373079466720144078067855160072404421166275840360624178026310746161900465063073455502619051368728256053914388044467692227778822379414354663717747439797019438185262294603929420263909109579683017526368089584023304717282827741042260508351604003065857245814098208279930177720620675070416432802440489786577453112479081581795622475532712251948349936853305118739963307035355726266840293341947579801540138315874119839015615897698274204862574955189511475397992506055055302415084046091357151756171030875928540398047460576809431639047640754923264694182008893293840912135891958548154256096577261009645776824059251852053343589632881412391250870294199727541190714102040712722513604363463162614781787195987639507857367265275387247545235635905486675073972734229503464911218436274574899291603780342263392162232937059220347870051412443772449182088481870522421729251822067444481120396466006879427186144646378484526346367857771126899928618520311270336551557219505688428504288989942681346655948905629785088642295245786022159764726545230117391137141881387326821765327218594037121757155674184970099082956592965305759117314592506119998537752071967768597547284252788868823187265002377217191773172554009774477890854645417643459687307955441166208708251801484701448808318992346232558382050685868452654141251490428108186820394963465651152648219336844762415663220218368073171750358181321827322879056466423300643795192580101670035280825435472235505289806476531949818382009669367581612674656062388129603229218344958137892269056712400914995657089648802790309407745256753641497359242452356048912318612507437121655570437977051834452404631775255349156406714014861170730336349003631755828719381011977524828302195515365350670763417053490158484731477979349819554031116085125315298370496326460371317096758635557374420419303715766615219812201766817700194882325805186855026672195102394751350601925814102135538347564812751273377250556172339994216880771599090089204184562771389013358429650349871802655472686184342848838237413655543381818314996725272136455510433842884449349748624978918996238222075646926521903578989156375291231692455359204297036908543970390955864070930925003369770329204376862785258149925045014344087682279530526893493428388163780359940180592123301437427421400833034100045026125196997971839776193873494636851753637504026431423162316150298218243748929765919630402895236877882175342652803060727683772234905700965569171304038813712909071947646519616732424202775072653669796896827880318089530284088324913244097888444002140899686353989879136709070018936403993115864436060781900571951888973297687865590092315489176789919557250917922922594641832407214911195852598050775138152755762606647085765020245731581162228126969680425704929882929879216799386253879593501734412494230527298494374620819459649929446060869238555739373154211640079823294616698186945689061787994720153381462725792922918438843471440680078775779329507139575746158457261338783952680090630949565959570781534248605115164481399299965976477131621495167518834067516988430186909330010736845435807194010809273402861924928564900257780120216765409270022732337198954707492747441018647795029527444525937909472496391820991926766208154652487644896418918949963045638601126849695229668749577236188290539768811117263379115254308605656923350219997308659797634366086691884591834278345477954948747148890016172590603879002945826572984072284135014658783654431935315887358720884122634347271781665829003239863718117395920352207676329180258718360975901921279511008203510429416388721208217179362062799500811310131236942087678540295163831062745197760493713090609860437512333511468226077521765047347483239049054530037707464421773529521940553489501699757943930759920119164884802954320970407639714407043281014254135610832313663690353321649443912495926449511317833444797845874718648052215867135867590434268865244658735092329201446706833217433736519833951754390170256165492845154370192824599604283126189147866264924328530621654821149345401585761571379925963284003622520396032326022697302466836573208044589841675485174458741176065023438837903521870219154456097783863325366325125820216895937264690956172703569418586001414290630541087312106675276531807095543092035203845283406770467692484648575626397383693280316818814819859861468866952206983972386205703026918037837504557791628235215044834436029548229577339176558120076885549070438069190362173729171874550300839656168437398007232600831196945219864553987918753857199572447782026503639284058937257236937798193692167080636013630177125391776022537024182540314400664593342451911394556111533791502771542423167979213915849226122079356300638798672978634239863493545458800639128169229490428954425934675253263366856756764377194648783309844891030368351947823485116200541542882059234198173214573499995925170694399421037436760048065919300761977000402280577379300203124655121626848466070816317564645321799145153912697000435876424124636158410703319776224224911159050679741502239157854232094956744018635602868025720653203242670391944291724688498583581278618560856680498079881211276987700731097884214610088706712738292267042983212389619417414054140023897252119012909606277100260930042593079566214984096696396363270578227601719512418154203237149163972526748058106428548998735546145532502427235523336787097772800065568068238874222585926917873529333776604226978626923532506272039371332749494873867319247157892370875016722887544668399203132586509820736534107369495574027093594099704371176536239762294139155258673212806036293153462849021361876192586871735715118999103873753023695553004536296206706919962701586372390559478296148780950152826703078595062665999702397257008573553566067248293188159385042325532575250147413166039990327847526026853353937663832558018527787933531103740923228982330433774094511726005981911876624137507369425124385613063598588195130483005660615901859616396270956971427146700410513589020458205476985897699522146283490577672433833407623902383199740618138742541002502677502497699787118319467784262135777076442333414522110901000735475363078518512072958168675067659652457712522674192220994549014673183156994683878377028124283003350910799749606702395426138784327922608406669086099100377297448605794086184451030895672761264014174181582656514182406012871636578690836474727663893212532032416518293601084583774047787475317709822915898135097298278728508666841061303779735616656184265600802866788890965236490709154891130962270248062960438461691675534193707697603063543650787708948950585868252334439663644234776853998307306932928837904031593887910618210440759260349351000210759042874793749203994091201430539443980314326318313737720153856365142485388010440484151183271330543161604870468548934446176284927791516189726670794739575468121276985308731758913563530996501235422607775742534408714107598658976355224894350815564634830303740793509121751951789780583863021851519570571847815876259966057160590175987540491903989433772563403009003410448050338978493033454780654768659668396023164505643829940113419094017344240819642244474378150380691841519335525173626965209722720127974779106430782054638593556214675427282002990957704095415013704216267532020741553372120384846903591370552099515867085160031381545283605225271694861360227281927303589814264412883561806492740454407141371787567170792347725975695135679443182178552853369167871578510951752116783634251710794163684918342102604471537855553321689522498861494018682343489697622170562307297693205388712070319102584907833399893336607671853031141796670321704191906411960138552077989176781679202380151130574321187808982681094538245099814883050330901869623824333183000564334110453351269025348068158593757480627194170190499876833839287750835492308667934680365905301222396265514227213347842268102014439624218738212779577789268310478708539286944244052662531795923326074276181790793421370865362133062946221741553569567656452866425782692001975784167472557413295270221883822368363336553539036599230589034921759390111571587910770604269411931735420177426108878461720406059525015689377945168232909055720891604366657331706168812740489878755396899526855983988678645344700943283803187708759668597632272952942234044022929636160988394928290390637509983542970123642982679761494970454844443477835743624723666543486068809517107060569893146869630971324058986573206756340912644067397717264763082615194625641393729443831560666426049744503344240877838215599294818949740792500488747512607819030479010599789823353407271704518392813709577267397059465153110902809677748130848054403308836689163080955876988502850668791609924292217706743052465793693312482479795806440710860765283037878516711497241299543990700263219143109440156082111290580206608844388048927259941878653219778531940467883594847210796734393445842852768953582676294564248488932499376393308852469832566216892204737355876973068161095189334238036574063991100383857633999015189735846871650890304838263385383629932993847402399039700283175419168761203662857725607095568391687931658273639474255005240044911441194046033547861359195192704689023051709440328515885752672158763276378969770584767909194010470690573220870657391132279166322523862850639181555429942091239037002701892534786298224288855278845493047371643860797619734921766761296127530503515688042700127760317433547114785426200544116424204327388677226927159244805347239046733823325217924425125953913249527240069698546890497208584824482272853277392301498126165249212246050636571389358130066187168168028383345380152573913278384665969439239581676948650568562854566856355234336898562210117416823750659436301939607053835618340210627786029036041434613837321043455086386297089763772807936832359008749909064224928030513378855147689837640977665626875350701079198181963245113345437100316120973239623790721584102066044885537290634428732758899201067147332699007772677924770219527153630998560665840755920260108657350733172292501884864695767530134051801802470261285871547744340622059740740237807202547162206592062537046326901318300943795164345941837531007299533467453153830292154646324371224241557580024904770689488848333649483794213748762041314629146242813925884964748091283621929178013897571170860214953647414504433256340322058321515626772409507183130540060331140644234648570198932759345117493686392014637487538685723835862604119715498908956777689561803506262477587497674205465492627490435270710016179028880820162700660617637129868559464679895416210384502157690625592086495165052232101868015223707774317910804613732092602524586343778434136558210381355435411823648587065643378849696825949454288868731600797126411104196237035260982187667822338981005137579483714531373266523943357453956286649196162439392268438007635561345651464848036013720733267527442565795317624186096168929336459032884725861587412554843199085916810177190547173796202593288115642056240537353303599040331307225271493742306047232594827180958378469362583386660503348415904091641889726064625920910303835179336909009425904806631713552460067133447539151745108452164428958715799997520003811562704007709904565175226382608983505317538095604668919176541241965713440642437812494247471398358935483654464133712277323353123777645995528759311805053941218749239748121524752293968861782425146322514530740407825802439969667203337749032835480010830777522639974086266986060164004216015142785259052487693678089039710842555238047547178965100630773139100270994724002634948875919206318257043257765918242222560098567883761484446753220298514580753727989681886135328612436846926639063978016613132828164369228281821576099994237454080073936428788028746391934694770746407709156823999975616580934869652306629204411175342980711954597205451694320973025350417721975976609157153570239169404537404593227446838573341925122101200833689179295317859532679109926137116513121289708512652702761554703155254122748705968654576165945940676920914528647884955768382342151151158421627963250411515041378543921672050394385728986941701383307738484314262327577348832944951851974028568930577456498225310005161467442385983954038293734172330016842662704567384925611643395797749889606652422991534540571915396380100796745816944586612776957209599350842675977695677141889222113432438549575360236250910461663616075991786923589870108106495842047838650121942535271423500387280307763452578981933325428555708291260479662400364246565181639016014819850116390094671349154566530355473585810715977968070751683397898484193510167265755698065971768518236418455423938541872292070168001525422327559266438397647048329679644704766549976625825298829201350951869991440608868209788283148574034442373232348660481046577239591400913525788055680366863207195179651425326071674602519415963483540239459472153314599413459338427396483212106286468047888306466067139340701875037173242897038008313137104520941106457105457230802455056361171610238092063635398472183804194161764778923915740903912565559123087562406151961390968529741565327574905347618705069236468294326414535602969872368290538268534919918035518455990151828684121016318888216638858101181067196442210083563276682023985078147767301749617687445184528654301393814493564510761613561321021323551533122537985788297233191728668813181597408789472617237378283049557727201617868502913051240303598805138736047099252287546674801363208264828121374438860164973358523977566428328302480108355398285459764298467262777356373083440904576690325230878891046372352788726058736492325659675001372803234359933481381182358498732871948262170563591004115650921252916671731359308939237922000037717035916431736058338034250241526220424435771389490051851366558915887378324636907297531323883283173761267579439373405266400013607878311846709265071179622614391365741416540074466017307826732856503127955406105141169146000871006794653747003589051944935408406501949926666476931467878191579492920898778587752815981536554738665225288526183295773374448823748151910574280807955888957056148100887952577344733914817660990691499146866231215171789443034559561562619640712929587630060807032240748415747111813719924060172552845389986620582021835151087922107653067307275958940779880597003979082208336259380571333712244600592572227949075379892134119496374781856095243295738457617650999971586787414825308368822006558798623196334552524615612101436503294525396474722795890315930077565551987088752414713060393180097165577991336304399820619824995429859603117665340948714142154981276229872166539604196629331654253310539783722360587641879076767469933802590234785863612641079825711864397684730514238883211158764065473259993980456843659697317469300422918139985081378592289459646688344177341940375480556936006906219515398661029644106302507235889848157510173019257245057897110901825302584959802841053792486902153424404128479892064418886086852516569304299945226051637110331237481855231650609019461726553164051862796816220815450510079144234205090225418711000701305837580048829333654826402943743579905243291058428495574571437119946891204334556138315948319663526084764009962461374710568589281122991598780190003004945433417326512082617564397753965435907944499569318749198840177307524026384346169564368749194390763305538368089991588269583710844602686561047222910348247556697536081125970702162911899667010008473037131213139535064829092625171255277721035156019631313714276429135468026880328186197888408445032958631493582952201820491371545124492690458284339789208792993715691143816604759958557997289441391347104984533998712853334973161029544228363165779448472976699724755387317754136220325853934967133981400351052720193210469921540870405172292699193687277088886931105663073510153926608563706810387782394552131040336508307804518706861347990110072310999972780784986717919991194930091126979902356831110929006862799019255168938133499698416116337378086732128562833536275689106079809485190092534206162929357686486860871349331489568857432345942850687906414729220451057424154330119469076002471358869353678513007553210915569873682865310194985330542752551454822873142961659924981220976152489783149395762402357092374804905367029163051548761395875075646849789649984055124373806755404607227752461574388804799999124010292233142092355112402561531265117461259569103029813609501546664492430949421059800198563495636211357011492709157569534504388557516875704259658831860974212437124212300459370906578634257094582788777360673566143713587995810180268188957307102538868226579841491415931453059628937393693932343783078173570856434099270503693349037347998861387804481696823982709720003078831381335820542967830266771635045279635061932335928375193932433508739438145601903960989689702463509722513452058316590078379972626756291259583007437294156841740539561557983029675203989531323232840989329545371337744289306900894356199923264226605743969160868619609533188183047161863641367134302643168052296955212801188762538281116043486435360740228047772344620582290558427229718734477074808690809643811521916243063336458757341466317617387606238802022886715911442397321585967269774228641377968654999795422937118478452164480103055454127151096633729835234072338938854490914990287376120948136654602321019675046539065123532214621330946255908575721091227852122854867777755393994561900929375180215209995499399517256015296695332737814838698430658304268210236370963841824593686942755205040148713703107312013438501529370730970921648966254308894579511456813485782162609178962548233852259266902274053783487104019286096771879991779085388800385935078594867116433556080214613831382350750189169145631384185845435814252262413662350641873270860357659413179791795750317489315159312100210375090678149101738340874811953413618681999415404761529112504371199013090271454104526408185785546417237290700756043962693995686929716909833118843592354616584600743566261981556080654179939358329202019447025687481569058093181415163915521740299589839768513190611969839494110636105143589500259065290434755301469707916513004989025212225089427619889883517416783401328900672238567118770012039275403696251377601796440027700442312468434964483963598587075398747192719716297506166820627166538571226063250919546902697293624938059337448329427545623243830235937642471933497217232352434701792544057895048978943820652389839041206009295671722797281818486662665825542711763302013028315084448868317827720948529614793822667829203576002426911591162959647760940908732939262010088616713770067925530478962332880703395610483769587055670807961040183714983657815154759892048530882686166167738599127603666511510288928437260096771887359505115732512338336831209431205701828018571212176704765780153746435456007424468158500176292769705677983005596448020962513322976232031915841139236988442002063027454255350723349806565991518805301636663722237859056152951198084790155123063489202904670764979233950742778255151455580037773896220443650566995161786809747908785199732231641170795315598842295689238392858734097909777059368494740601786453090433823058469280735944333598479885452735427525673978494794733425710212004072268234143735457837528928556538142407939317289055027951110845855290145228240012512983853511314767993322293177417936790547078932826329839481002652252179522350789669798438570020974322661079019561723267699467885543743875527035652863170010447439764087858994560119198766467365867883273937465484977011208556132224313573793275839228184128574699506367333930158431344429158544296088483934144860718366102496428590307903244293740311452279706165169629540280798033173250850668011313636101305778266610458109387377310772790926240091138437269397196254767097564673572846879573684296193936471507986655267886589159925368310960829008705841817727107726247436906686115832308051839932819551165299532631718903635185811997343479995695400567011018050250074252673101373093359772661501330955500980256245315926244795889251536881799682064105701772816467637790185289385150197674573663215416254817365648951776737830909906688610722233797565767114373783127222022325989616135432281216576726642761124994454589795416263789180114100371475454986345509451266711862925188208913608724643466577742445363957184694663953258385186426184826649458764085650020239623883121806276427465647125061620722840200210935286236251374667932205023469888684010094121828768385753559169023336219323826442934694942016226034538032284106043904300218501612009161314793604917413537916206041659744093896277750324090207440636930010267901323935863602993625866119306236277068360942680819544096107920221538239144259396719670024430896085844742261343061824039945199710021749745213798019285504674333918732835527141068027796300240145062809678330567653511662672643548367976383550661731585352411174815434664487245481116824874427140722327340175995849620893501371057071336970255593432339130177648946205613429953565717796497946325325880504119944518057460029891549795415507425226616980953952545674062530590233534603250880841615366594029629635579722409683104970179315044620783435914824813343085961513115000273212321178261555409271962930399728556916043022342581592766437427712342013553234798527649419473307592317569633754662717401585454383492474058807180547007173287697255900441884612131068796488801146642009496338511016991928297350052797354409450777340610841826305430245638668037539600617525251754826598793273978373573881741423595627777978183418782240669899429929644306863805845710402437923481031081891674568792197764843084636546789065647244548307001628447895525778133257312589307648123474321478242440973898964080068020863105906574290895356457163172349640820786933049180445185460580192254207639516933701736417024366259130357543780607648088084665518394651166646220769376720556660600153050797042947043829935002620303233158917428026277075728922442806329728884958058809459593248700283232696416750992721476710525566641698182646434347159473871535812419100120381012009276152285666133515157036122506298204967676636609347109298912815353841412430010557167072638749927257446744238748720374681671923246773842474964910403223312771167155004071834257377334524821448271127531708030857892979874131644704811514929934821503070114849161319317090477298254223699988698245873739931691210620266347081471566035607492218636798594276460537188946101310586700208775961178242045283225254924589346743621756090277097581721057250810280616879127599595071061977530755305511536129749703167430035936680082807467571248971623989123137142104416955718894271246988657376340138266682942949176594159251658861271903211765012126082424355109158872973524285727647450912301696355743038616602081184642432193438218232184338248594137192002313485852220580956845885601548665913958753191886500850552444964630125397893397774173398184298005425274570840004353588906957491109084933019128062099208765331649027437790460387228746661746734362276191908266495721015553284176697693121170979136360433162357910676693513428706059006384033486103230990509237775486539962375017610709205942653984887936033805476428804792326639448332056367238916665833053279111389637810646268858910268584633194115443476438232386665363591692685578295549801224961865553012901752866107550630935207581272551896166510388018207689957994192235037486302823846439110174335745585104467602182003071566773832691274463648953131398314770140212050464638131293522879835097951891440778745641660139585441038974527109905258108312058500468676510188357803970377353547782466356978355561451075750927420921287513482404375561043934448189274369527184014056392633572376377655239440361186879827296594589182870676179543359676945447652594810220905400180762820698575404531294874569376413415579577743809440979908387347390354685925410870322698749085152979981466095131734194462415482998561056602942112205796310104224674668125825830039484225710129316620867716637008561861862393415566254729556425702521472126495996406924902303385291304058444139351685589397246451677838301077294632963274760110540168465919581336681104624733752872958393391165148635603661121951104681846495641208165188911325799134341650036899099136154815218947124225285007226266361581304693854265126737934922753573904366093479023081275407919811796267735299040084347422807613502951012426329682507118362769351828822228002215296830373503874784309680873113769342141499147685469319133612057417623392809025366536680222410064772679497980639436685028219079100639698414439671729321216503003355467441612623583434077536969897227287025633422704950461187735165912116520965350385478290641927699235689010110488920127819667554836801880961234456525485145676658272192616629194655628361058004573480635868005590140813398413966107766184703886896452521352868008060876255515115546138637824947018806694249641836711681139739536426578768256929781065994749590878819504369521939262614705656937118077633892576822110972415876647769023231371750913974503689065548899279262605268873882276485344890426500751719373382448633988118993171773331740490088414330603413531370692518767093299519117542069429523514007145543672914597332784508479799603834367664300154923994889322994806234318770280285782095222894785628427684058417424828102122157813171205578915861582518019655043991408457645608782832004553193380200872188326749550491028127335817492472805984737954142613271211722354766105694032548726604255120032395081801835239945615380010969785035944497383933494473498331742427035200439690952255933933064430351327394928441994140166566435893033476887064010055516159564914141555211774426297576588738199085937785231472934733641804978605275389379704076701795018019335620856404101289455458419415503663125798999533966121648908497558405189558862058568443850127628230079033258310183019153861715214657246596263472345516981224339315377919954497989092427684699481444329854339252780686404847644798570474372782082024588012171180127221353872977015555218197078503461285430196704590937706009997652002125810127229540672932643025940085332325514496548997198934013275560458517234038634973347356565056663429569322787583097894270208750052720994777941653398617525915096570712854034950519160538048818925635869451207642585368074388366304214386376564820193029930875730931980313906549093480794222146940076041391422979643503392554979555507239236968583272829553309936984843910392606416204263017570354333261479154001217860969945599226417402937893303476717650429518085321558131915023014040762343597054178321795578999704805432370958317227419825960380851075687237143925643911180787192723802060936986338358378023200429381732327043938453281277930904011335026473820637706126006229722155058984932558567393973425852763520777644016919132060894184449487720034196556879199648940798604881302693823866029568972482864313617833715115060656242900853682104613390403917900202009809831936615671261815241997401948711654213703626644874435770990631398512450383846457240593339656879261928096599467227304859273494632351027212931255659881356159065272130338506086448452304123981093367739922293571245718537308035457972695084666623121237088956445333634303639965354842852582119296912103256193383229379332328214263805450051533436560008693278271030930870913248282951200236000819157627559239032556950469885439355423196992028938739309467906588628689571301106241337369328279423907966342522580083922747766431127915943534290968796944011160235561147782396552398712591300686809834714076968724071168903942951885476880729257596534424961946408618140518563871260430315398740347950020763286940077176208976982982318205019979231672419133112284497252490610395421490101764626045416363597307925416270133367499267986156890641056663056634613882405939568995189125336955295092846387249358496519145472368355763524413869356694158422511992603225312170766981606326914370474927099385547840535140783502897241266671139591112392903988062020149479123340626456838335411088602105161836045557524155265560919084972383706835605486953359088380250520852363268696560205146271638263890305934328404239413084584777871083384925199967967144456943071651877335711043129640203223818031253462681657698963689900655339116757055312324669595478625572044464744550878256620793926236952892895383605953612532696435354405815232936884851862370956007788390032588458089081727426660893970482305082875010754085745021786225761179057834127392147625008152058500981004653282616535540886982536959592146453999024553622233313095866440098582488638368297369651797218974405440598601434009541546913010749291499975378250667645216249461060887984828651370595533562955211018630416000564325887536058764611098154844167933504150352591067705848811246826372304350153928151376730855642303127424854285802001583933751369759263012334812586324472999889758879826947648015038731822221498778515955835622086041864186213323882267671438160456665801534416357107451841120436941744731211266125549755084424684074590319963958686999505247011177365694613281923777536812243931738889574715822898512042188622594026041893003793651054814409098149268952937918785102577271306317186830882200175633655678564269910625823634678969690644869301091465402560881557178313113171660439870071806501358409879268099577482820548562311570111235836872374484007772621831889402392934876025899103810665410221687535088063554607266339291898743048401227721526631168255253025342408414193617118229407490551653543190902970638601086499927160519538457857909940658543607675488572370790446415048422669090588830954708560847079367810360695543011112490990733996325484416440330838424065643717012704834176087867543064602368629834793947126162611265263594680440533901090197073115748790163936556226346976499351930670942865085880889718800492305164453968514561604157532529460778514417249242634748976582913265086262219067775335001992415462896364738010660798784410840143151122339539011903813666943887952184284583386908957276215339868626750659654588804330217044653800437085111918841139179956236037323078942140693009953673780875538465246042897136203103495571594876859709889737033117673790187779697504800638274731002304086967797001508990959412902414085280821126813646944968000461885411908538292403954542798430434499633333860083604559096292448496894543906438862652652231204477978682479216728673541760691468211254455999460134265330825510688825782933115980761321523610511560039135213692890549216186535608965688262111156461686121257270484071078196173315666491996209683663713059628024968680153641613448743876364364527326640673176635297400548476343000301653016731532589057106966355058387347244159929631854733839633991464587579938212206020989189418945927894535037148803444274823073599993268865161442893032732413108265507435046223543392601620221736820217956290049688068276702720405836190173969475805331623281564191123355652348745122780134382217732557874622614094554657369850565642981592962716091958409640691602275243781407341689332527792293861143260881685340260294404892283429210246026680224575089943025482564303099937148141162345024520941224664319027816332079671545225677583413503307964092189950824571102681337359043222697082170205097495010962999392689393590955450991775401290266633359407018478151377629685504944836374329236865308564550320848177944952721257299947682655405465444224856960458725918064549400085124392151248873143862244363350256691942554726808615005717394558476997581866637570325642230324953611252822986604882802699037595287581691302211967288014799889624312344803105601619736096536507328102863906055187540996811650019072790618884767376469193477375076951112699567281970889682790949829108740848957195968137410578481379182472476356551790697271867236057006437066945015454988034305412739180004393630331742370686666519712724351488683379708977023702356311623261611921177175331618606407845158303565259435713551574047101953144158851607407680724719553438546112723514842917349124219199321502596397232282360785059570166914576969858795521297813223167966757946039857717826155424967872517560694268285434015689670644886748567138669032163022351042114072078501018977025353137117308395562236508839704377280164413520640770915418796013681537771158100974153373096618001921801528480180246330222881446370954909460699403607060485031522714287088723776617627098503684052060345207990171572991807166447612818797022119062170064826980895282774232669684034810429908653856682949761951028680540723725940243399677041811201943112998480940572766513662340599229549815053098891915595452339989552083990207112599270449122643080275337393633742473252546152573954962630266697271814233440940309635791355051101151843622201625061275988052627812859684172811287978531603992473990388880942912415141696773608144471893519142789022803437520863115993727845443723750801467503550382539842822557013036079083857141414249877918697819737839533561876375679219205587181493896554825329113500495322219138358040737378414912117195857375323270897750847546278805699456062279640250643250928421239937489700682931742762852488983638392840342543117421875667252326343147600544382016437144251705218869256332713806936886831537935857730145064925232093796799053741118596233033750022252332116057309230749327016463320487100247758306916775204832194765348100743658952972315804941220559056203059994288223441092866170826184966106615793308435463208205649113592490643148065202107872621970282043784451387989777363068322256583405537362134620267875355591463129506226101588012780167937619194418696485399985165444120500652883374342923068311725468211554281759062032718535560801543279483135091547114710536080989996117770076224950444074999015722449817780983423200580326692158003623931817629025748420017405866522825579069113030045801239059673001880002856983684792070780467574137405416299944620697193127764051487909256255848183776449927078249853021745145191980334342857552319787798801128507776650328549093647579455289997505947243962152825047738807252776525276265184605622611725227356826374981666948536893377129456987026813070615780757934920148854838665855239131314713828053595278135242796626261816558094919730979369187946441588200989974679115460574362521045281204494775434741323838887305075095814871685125602044916825583561246579896715701705871650634176814456021964506609205196021355542432802788908988413446473177476212737708995848130620742882108008097105260645831039849030473085047835562199167764032647081900421605120879294538059210314088440841702548986644631862148007986178149462316569612402967036423925256478653804095258506778604587313004952633509680810571279881234639247984451346326618686311940450996434686882104571284723551394278051581349665253027335334778686326974355662551073810666839009795555352063292693390541241822663793618857033251732563272630709241782094541289088421857625109279773779381767831501002635619602115157345909833475158644896400861437403658784013792461928706199222734093625465236838267969179988755019288837587452160525209896632254403427436971954502399953115202669072897051252075639239909165844839741951591258250887661885799636617735947338002748729659442057244212804047895662176584074537442971829493199518465301743469706071468016472273161322152680466979002516704304469632348382991861595174607595931331653622166238948423436938062060549599262749474276708543163963790030134486565493758563391606021214756872068177268819266060990426182478803836316478057139617612835588221041969760504773240542991675105461698279232616185426054155505203669356307746258337132860734040291718317712052852138389497989614653888492280168589784075554635336420552931473131545403761632203413177313373596201473770862964760989529554843144905959458856783848609821051741539680543205104671659493591770633249517231659724601793714583466837538552444601904922445159301100588914452977860447202273066833001832280396590891308007877950269966503077658125744306243446992445979546464853965978258463804280918665378754912648523269724467078777106707523587679170970003652819034929345450552069022901546392049373851537170933260394695048160027314812548394313184940981373820929521135138808813490484640767227820306942985064476320771931397934591670343407910374443909465614613223549659145689359891141265609744390864792138106889638672522181180212611030174530518671076944410233404646806412931736872747613092400244874825638246721880956285514345324985056849781315083896172544008993587053194612087259546343260265593539364825402931542617350188555095236089248574949563002157622018907290028108499652906512138184641484600497063365173901792526109279579931801292449705623942176244149558914092157217377793519334024576465066800046810853863256488303057531278345779480048207926723053063833319961310235381722859081648324376184632834223644974128414460831700084890510162377676803372184944590189837538658273238291213624817168865629404487266081099161351999903848858396116961832336924004812929180603266207219546609194611796503437432407904525814579210067872605041082433601217568792685185283217139231899684032850906997608872862853555487946864375749513464740130272876811653503860044059336835367234481934424101865572734785606480072660535247202413666736461200517648423485527184851060564925302305533309672448047967276226702893681244345916834620950315343255417535859965056599977345130960604141534169360114765763167882412690569208751298788336246188723340922946160547206576990245723491481590980591955389274237728318669268562465954981323710866530781912804032941679158208934542761068611075535159458573283792189787016394141078769084227304878181176193948548118886391908795126387063884585349665154936384341162413286801446586591503871208466380209875241659485585321152908312594065548218195354557092904599311399115540686194333738554506202373795774728489625731928527952277218038493425848813816929166061395090533709290357312494970798428881974317668696692424431250216562699451992263304464113870710143887423797142892563035671899004250735319391479853586749747398680219772320434999644172425141437859161652994731438858394125857078016496860425211343566985714132221227091510514443470339891384574121453071440894268272887934474951101249097350586323278634230142847243309135183217797856458318982659344525188294058535165304160863151678524865396002787256754804020097943081737975952049045249808943997241406938485158058259986521088213747122167786515113285559267241719666317558845357036862720046630665818742916441613639810106647614974693122699259234989965057343400383001850002580821478517522448772270424075986902823757314440006870171170687148689824483632022166607391748544108915433224510436170995671783796218856824657951973281343029582399599782590988020642189690570759392423590076255223128147536997700156552431962835738912246299545011338787443735696808072364659614300037329984960395368558727574133787188538865368696515710141222635605605006476087554959980393720810055659071696322440047081715024234568276000908598536276028550249385505037299672397392545002509056594255295496033703878132413297773791311173932039364037507566467332073469857313817908210375560929614399854618550513846048144229472242832904441788060410773660763137742402977238828736941142965198900872305770250797560578071188554311601734700799364825098683634861688289376598201048469699401352437520793412570703819300008505660711315539291151226006794714518184863547191914471844297754916632286261096963443098441788144817602245259750808396687784606803625410842855729551541986871378640727020576949907248794598636825355438943011320965600217620985215176452754212029674861260605776709415235858034663499927066912153957418328210598964024264255221500670837194465473864509468730030637957620127164743629346565817564316921062023263541137992708551361642776201158133193452121293992154941594862050219595110986425611667685629326004633730421484839836250528409518376518910636548144309254391256999627118282846596738172789942973535235778541771097410113688575477780976982777060221276819979275347317131325767224981605498982064665437811701169461133852529408887957527236061608374516686718123197174376622222678918859969722295857341776595958211776758669011788192020531990107406195775889106474695782073844992466260237944720884587234829759139981486452587879140677144341106395492100838092264906214132703149897349360766805527043615735842115380551960412884349423835652793028318060331360615014165276002087286552459021269865743545862782263374500701230337009643205979063385232544328383712749274864776880152214927257942161441527119473157227362486188726828482314258327963258283998168990241107112680310042949345091600777932406427406533614372837048163930958544865332328938906155228574192211883262943567100870010609432438125274837428885801653777819124651409661788021551855218970631937196290524342190579652223382230133435306861342725609810518723126882064732993813828982610538058346312477136890315642296895594418537805552846419305386064412719948058292905546963289968669522952182711270737595417922075207998116598038056653280374278171591248041526853719723244718881428083956908120907600758845623511816179248744734920552366395145884840561617046042912345379516429478953299641301641101852076638866441907155122574620274451271446946525556219871610531601949278226556534662036281376568318137258859113085143665119910206185610163712561955265268668565957314253985956501475174793525299545257934882815396489333775536303642223346231538086578139901899388229368648081666097025755395061518072963477645168816782687068627383742271344365590678414658995675742672047990593786276398706905927694115516974416827244092786857845466746551311278247808830262700722240855700376707822615057494940452652704958335423037321757956251302671426218386098059004906355137697343928598998995512211355318065389570482544696639250297493479942657639933138757354940392281744055590886272306938190921661886794236540465987754374122221124062307594410001628442854966026536612615190296208532751354314131166384868675877652980206734541432762037396901103299026436284035589174555420489049236399378750735851593075164659182146083692612139704290649831552936682806874754248241024740483200530359276024114746456850746147894385703916084568373494506695732932097686802808904730711261817039279089233640853084817203362966674179703752475685444158929886471896076318688663630155730225508500242526851669833530037811567424874492618663947627460890143017158880146925811735106444138452198024914410590521323630363118114432894105735264755511652708160630208536462810078592550323588971709237166536125468561765199796578991015814651937544680142383445849182300345302503420337592215091690634059610025345677157874646932014095844871606723761920477954252115436689603853380503446391320174929008982373671102077616588051602036711780268821726537773374141826240309773504407663829475040545183034891662936309360822864270183314414765460444359565691913700125533483013403274433778464228104936996412165380536715901477842001499336999232200959930711929778357664514917941918612006464587179736332235209021013249032800593575617295099992816170499297182932692233564532021783179159021085632792799188096266457925734804707203167484306421916036938435696222223947578089648324444903801595073117254816466089132514655176017081012497055288813894559142591114044102369686955066704374654837088261920217869644187903583617976982420088711309914101750367301273110358281787266901005150832468116862554953208889352318940704825064003460540710061073060871543498347226371287441675850165270870698091459794497739445063555066787140704598862674692439078753854542665299717862459575074757548112573185005688875158587318625005237540712876241174216415114484440261592971253422446564474635131363784718756964975367021094845506401956702075119493000686371650207964750347696638232942022718533371704912909098220297012646287248340558851460962459271210775973065367956730040895071813701109039724594140962743390421644822168332206965777877625821088285057903131973652715385600258474152438226342887576828039186201207731391974057985476581700640460652117691859965230749147008305865440217372198463534745402617014662764096211819156663434798822662375544244777063900598284837077868481257353299775656625978074273299408948765644127014205867031898603847334145446105529700039085079852867730199183766068442483773106007043635298032228574095386285154837821940110260065113086976446442922726144883524170880417186443323554924306630291829166467019091753904359420592407119029216703564457576667176046180554259193637652264829691012198871840887223513481169928881444984563490790806982833361064334103917957765053037790104996680327769502923537840589979190453795017937845688079334710898538286954468357338656714992414600738650843330623980851546257587354557880140874937047422295874768281989881894160232367681813642176293398129630894383914935916427398335199887033594574660595120816827397524829165975179559387475074068386548985661232859253594223936398731553588381930543563448320069848259853640611229592792111749130402157889694271335313063310659978450678165874342182326367955467868408576286034838415735206427920229034602798607744414643116191268259568959384211787940371314329913606017669353912354418823006207927057828975509566174641453755899073186086898055100239462490945566199738063948851037841405520310659195287917395841488851422944273913588151095705070276002365616712326167599975294365834561000010633131708404417819563619774066535961583957903984125905876511544691887813842483762142840529763565592870763823822505934108787508433293454334467671414830995183728707057161048184225102259354266668904893341082816296802948482457495842099645829464769277766755892126785933402736592193617093503827424610216742751406571863570161029648112412541691814287011214351028059952530344579377403778346541011627944902393097648827851504339887697563202094561300595795187905550547318239951941792918369172711165491938443138399603149001727523404613671704215002020125807113458392555715733918322781577722579381682261904849943296495240989040333433736487607424329154563735914697490152176982523124714438518164174251971687022319068762320013322655367278669242725405507771317836108578289973433683469293469108798712963271940921476483184224425266256877089730721668630336972169172697853960285540204364107687421936152049692623757493874626181958355024838128441508484625971454473861367271089855020345826714525777816359603545809206138494528171486515583169687539224044953998535976015798109007322298702537409466276773062243454759470182054005309231150202824720014731571301708215135065870538236403968338760374954871420266585860447360875716625227323841387972994596056821741086832757977034189129579777306680831793056204275286465135876199437942842704104630904939724751634299964313420126472950578070248490389574043242382483854890889803486558117078794824197572692963826282702735834983812712518826515261276044114525027707017718471014750191234274812002406494500154694206174304170545643715699134478796503321142495504154772049418780936797449014172115630415761812618594450313789917466510174424547441541427455989817966110174837384882795853577236653947929411339938316271849488226301550534439600882724536802581225583761701818780954948201957860273575483870402552010260599426018819714969568515807669581659301115678863524786972974517278798530675890163210371056785404270769524220326166465205795136734683410268487915518233433279708749589840129668680822319366009036548670458985741518892233997672656783261817994032525097553924869883600019372125869814279359788052958242747273430039820457418036100965574810172633728712057390226120770267374400218061415764231165340055656665591280536642555002886247753432339022371498630652713524194546026430395796793489741406282769787562417419637936791626509082367928537608556063953075066500463619993568285805148322415064954066468856310954773324764709435125597819355996857755293111923316046326233738408681207046796426796104178594309886767229693264775193089545385214623623416006669908578575347803404022982051852246538035398963833173967397004976432356474254796998625725470348749273840001518808588524694638515864089780844932837136990095359916889382748801503178803640902770641486099114172669357421581995627442632491251095428989924474771642995712363366569843329795877036406733309692459467548385175284297524221107520283863402620942510231857979238666541855801795307017573680103445754321634215887389676380487796249769286411626276136523502480147933202534606230113114584001012140008433399240398825247381226273463858403188870726742366392698560512874011438558457415574161507821287151657030508885481910921089916325595704021685164236029187009186907199666412386694945833665054287891490444933747560357317157536375903910713289371993699518293757823882427116332359742436213203481319219173443230069146320777972972218241807533629575661386222265133894918290504220771379387659577153671743245086176594758870941242601702446171702824126604973248070380651705327304495054643146030061485813519252225862444909064318275810805441284958110788475151704021162291038096253420161725640254368960507469717485364799148159855505513319404373290547751580573324948030913264062244046657868542059021645017861227043888928975131042354746829653239317664225590273586167959038715184276350430212668278516508870804242701897870144544965512481084234666786386061685632434350427885552826950047228715960861276759033374294840085526349923336568190130106757157463843734586456240596978936872831506424434736847955865323919997407490802293315781578760067041704693646451691362771377040446692245085153231527223104325586067355242692964466532088212888142679607682881966889507722895788988426773627057825113904233189516416561777449000000670646293700119245503083093327710412531983841186038290620622530730852289260855148793720786689930594638993168179435993181772144640141138710216801516358320193212393351690460623023971606406935998353776838581792062667703974056177159640810668904161968847213177628421514302091924145107627245719739146634510064122115269367373638445924726263120692236004691478965041755922332327008516768449578707456516076422366579509950485233359352361061186972361084730638853186624561436011166099611550375012637971516978228788295863250936461541146593927170733049041958473450134887245125926023810195105018059064387663477261597143437703279860245484506734951238852799877133329380160315895521074706029638947666466470675306815484696669810162408068197767623216729236744726329984686070468984162105697255423559621359865512756109137824701397111714366935196909687596132409560626296037918199024602667185472168573978002383551505529587484506956353988321676181928162496854490859408110797164180065033936311351888136682976538252291066993056071089782735464625713387025749803345486661624358023545481793490856654519657685899546369150459624839670030752138324910771458641592050353924240101269266231960529326227405853011127709923698216068219660687429215864827780197551264770288104169715342739797854414185109278695742286188595717459674087150464142671081934400290806722694505749311696240461936715927786551765290637264025314233303030864687882139778659868077964767408571551735456899094419224967930661830566330689227707597472392976280639636731406990970828678311372848427953788964088985450381450564127960014952029122894988814756265041047801979270379049891617059603630818074285829582149183051796971803753400303333643977492103907269882868952872189747745391350554245806238464934431324467090300645288272455125819831708778618826760666862329921406945327509645175633593067052811636626827948837568185593155670604882844176646378059316047397459517212676758497445151017088428403299492501345813297407097183290847687731438064628977334935016084901656862592248047478422640939412878752918439353307619665640428557860435018144804312808398222853746406987968257059848736246924552039441907810383827144857491815064471678833452842828702037303786471477772431861116890496481406522471602250975947950026473356827701915476049028831727887298060348069668035458522681188519546423391603723060809908397366238254180012057126172729851444813996506074715868561157778803683129968505299641012225295437607228125883303256084630374901881736110674557215911232884406323779224939322309380944788896071993875124822017796850573498281380533793237837553564329464455274884527276808019186381660749101604791813018222629860957982613009996327085194894279347742980278379398001463925175140294059968587296146153749534691218685901913345681211483240470072859503103144586810823115949100373157215124909275397590254845557292157554488630233730307662262742441891004787150244954035384775273341628404146327270345920691716768728896112084737274328375882623709652449203931788494983705273325101221817182631828425601638101947690287002092862263319759884494531312349597996823021169462561908508440041836509995367457275419815685609279123883685874576316738246883124760128874139402656946911060792871961823790361875923477056719991209175934771978023573064667177160586585804714395941883911129662221414083754039973002042951098783658146342852668744589069297530861910491664344209762871135703213774983307765160323259522989956451362594956237274620997691133355095028195309018090019077330739739166636273079393979014838951234510650613335110283433139314021516064226887152360585132240007119410750360444835841125970403063874691067075238433249904444237791251855289682679056723803451982482658120469079585128475982670201718384468573109487630890674728222988988742223337347395101536494131812948374489745964196504091183889282873712574833569446653306121587366687793861608501139288114239502430191294468011247032842998329191956180263300625102464194592796623792798963209891256134882794665435807851837105435904900355695396722477762854275803517107377459840241425661679251420988123808697127975324977922307753713737835285621309135191065109649642384606532030156777655407603807791454050735028642137987484994667943801892417304840757581285872886972784901965100695890871438657721783523821142102321416448542353428153549684565005567139677488499548602301328195032837778253829422210964524778978193161089582711689772828411620048094075363899050127158429914777679858167305400836275296555470951756627707823084064847073903304142065826064589448611295773881436320083466296153131789265976198048205593969355245659005214280755823025992995950674396054603532737685150722263094863345860527013008645784825489122233520723042637562504482112550730961661954660670449015655127195677822883321362937582622058779818404756855433653841356699297837656077899371073688734824193041671657392004473141855462534639234882056057317498787990652587100515407795046501541298786887436148680397932574241529861697586866143506100505006144150325615493712616420550000932351537701835496187047230856533124642772081866407900423814380512371384852625791907680990362058986594413668050014112705433363443609196038612231361087476836637523600929950604856161503662193953314586365496099005541605200002625030822767720742412971435466953851273334476987850543104957245716707700146383471918016772665573515724386544792295376805346168335343791829975689038855645954669923942079203630800649145126516273816886680868185280495140095443056366128796445886317407356015906671523075301921428370727054048015197984633117562852105047236924328321832655173353738700074061958977127280219391441175736507820089043460182749995733811507987044563624356957556545522722446018566199683155519748587034941063918742659107405260045798629220711278875903407305681538988956747425151914354889288569277316245935635536514517632480177521947274743487329031979152851821963614857059763987527385190963464998621832042608130109075519958786574871716811015176170109198457455669922330417771143494498304261023066079875783526630565028872606721774237404659585646385766912614104697352185362679239882448342306529393340659837838148470227499696031168659481327173795330133655522869105044209056055073474908250005671534026344068054471205088773930939502610286744894034542172285738262805921366646013211845481230885155408041578827932297048813708782988891849889527428332667786393324448224052984971853770706111891056121150573823002583949195225159484981172127981677635615286789980869646981197599113156170284042932437461544402793356120236311109350743953157537687505116431847489963110053275275492079731722321827032224433228487164654100938356843721381218566367840613256452904603547519899904965077327408005523057137396336614715469837023917658059914756040343753327172848742418226262896845838496107022498453556946062938797944082555755905523584215123415371391643896469371376386352968575637075909042558195404158566125293837629755590180162287839863915278958333512826389303123161451779611360026107144079045386745166379659448628593422872795918537226480341944159476004136170749799984853252726059279864361595964622112838906114577931580174387926326188173323926069519334179112029445061646476022033062060679732625537700039385300652182775141337744512909506334441178222266323993173557601077982472159882109276453359482921123169479458784578958800186785968688632582866558054003791297210841799976303524462145898094736392586645555353379698867293886481830645913188266967969668696868841403821688853937620820618436859191724508764307572098918533566311696489404656177986833948105920248398952586467742724839168040605034358525085870203688454850256716218490441343905006028894090120764672034236650680076570363311110905094196645132576962056106668710585628164197869968650397700752486362090376680400230332656916382182718933623657413748454276773276189029866025399618563407398880328282362188825688314061995976382857586599522090640263386556402239194866345917786952708314626966418366564385175495866829864226179754904101710955520287848995848430899231449035108846190792469517118825645361203115421351349314621069005308621621348310065493391454374701770361106314581538863412433024699391133180462524334613270830390655254048656361619522090883339930980725679010686651358368003272226223434896043458005464324629814784605332475034435026638173565045076424608062315050342405793208392624306425532455836564278286119635766777753161870998354458359329670266618296637538118783790339823999215030412004087467861061037133164665860888919810895226047406504962768853498554050639482451555351225068569265641683037568302287752637412470218138360085561659581834826152031069416120802410854461645648148450892752232192259510149603351414705820084268498048620477339664794807856809468968483001213697175238830516720380593862170889836680794842431222869722788741221808575073494995984299765399342759960454520375595984509005297218391018001237411212084236357543871506923731958619881179115016146747964630296391901236889708529015505108754863904001369210270184551873406626944518137882712442385012201312510775849300532015876663875584066626485636538003109813547088049991905082295865824216870406260199844552491583837060855057410988412028604019435508829911377806703420562880642371399641861417958344258469994162720912876315131431410367998770888978617919535285716773606497913517508247228835734458583996747080178162539409149539175255520635989021074037388179805008257066518953066076775084494096486331357996693707679883377179298435284833617812607450083620391063207718144463865653385948551656860856605194394928055545552981928749404267713795573774341850453773710220420634722313591561811998944059023437791640033194912844671679171144687477683984445107235698152479090216569759559463190064458524615500394194072035637672485219352302018411590754657979780429701467112555164690130173717010004528836992413974141845718271804554308891248286577657046633764263110608572594767779345801519486153800248687487681834867897312495824557111258975163503256895367011096515050482256986373760435449236886294820385655433060391699055523497909283061834026466769294899743501816930299044918522442537430139066389265232846254879614232510174484464231513849402704965197620234525053776016636227204338169562629616316548895080700097548936823029534540200430297584455933551140020347534381386617092567162017024480861251704677254900276128732791961795185800677615272635284213141307877227443050024222770106079460153335264865628951099902161966372000927513138616084729442671693321716975620481985888717652891938476577753743375360886409584156247940913399730912084451201594320214758770299341794681087508525993735149894211043821663284971894850952791829645728353642526317661613493859710578102596584882313873449853331224774294549444496668648902660339666397733368538764028609277487228636614954027476577617967781172181702226955883242358831751443168996693421359888119112001584550659358133455300369431587987369081649995837867805456624246499048208434577229032664990789219638830193886247368773977668386489212549179887355735012257325346330089687485688147254546474117163130568225858244115594385545386337478083278712211029648676688090729877018397989565614292047993305989550651105186924231914176534709321415170328006770747372544335140345442468055752203971166773121855166293382001387086643622793199208536919461596670683564584813363867212357504945352867809972564401728010700994800151012288836585496896323910785924472205575089082500710607165966973444072355525253862120342939471494849073877699495942681809394807894619327250176288928639008821818452034378327481431427982326211674969859733718583609714235732743008217669933421309116378645777343274517028729163697631707859806776382905607305105367623622903815130355360318959977091364363374206361934181332379580792512385454999561562439991907749635696650724843557604479041609083882232462231193830068913645432553649330375076278692837054436746074237557555304865690832850515052431957512834671979774755365720841433881614885507460450629804909104968914019531343562533621764570621611944756592233219031486626775689996982052740242774058417156119527049051761218582798615329971734622278601386955041954720954762113594675644295162303568994544383390804602877899192380350279206842615667501823727099937563471875323219312309444459542971899309916626643793709978093212709608818436181891894417177689395551809531005742789968739792263157916252030514537439500158171145105961601181697794106585122678887308607687954855783509543077488553971292047799779811305640048649163617318954994017162661804136840107345310564144555588351168700796567406948344740621312438991222675779538485496945313743571378419409043324163541687670132868979504809452121008437930575877790797413217485436208301423197730436981821279080894024941200789137406827599621103513753282021087516362469639791192300951622061732799119774386041115114832055501009403092397778068927744420654040768133423475542256443404026740466780713216472751612259874340040836734353784392449434423940729607290537826865105542904144399494341214884973135965074317545282231835209409887292973494434508136231805098404955100167683088335006549899830245397464960732749320873680153816439975804215221836434789986666477491805274195746881306977476326417603669956241698611918133782574109064762573540002294657117726861248065304946010504954831038775275558908359375890959206957111419332004918257160691617002705172993183818511748893711309037511316195974961151116159214389138662051715995366118264294266280173172513068650199742952776071758054140595816482733106763283444122282563403733392312217026548632877821758017389575508296472684962546331511949352680023990243208925331243718151968969740454743462983603589226608572245125979816839362218087425229682246401297171351663347361108865315731610445579392311585557158393862269494225713181023561113524301171139239561063197982054885001853424278710308070180319698230705451663356796939481000302143088614492027133493213379825652140903775185814498637504579818777633500927662336016862510981606105407975863531786269976271670315809415986049564124535329552298897189189528418286092202824786646262176320047853389536737660094754150704876063212087881518032593748652475494798212459867052782385967461916430753351235205883984602595936200776364334074675660430765639239261151690680299410693943172244339058230071257761363813100433173954796455691707894304165127644286888695872922456696871480766789178291848859924246181911955926112669765172583081564390534260380981412758992688971693869477333727090729657396786145718482966809854902205924092660629740638067652965785627638579306150978266246864196481595782252528230350521631371026264361573741648112297254893845527283680304877816537486842002141410955102599020968433660343543312719099027966668982659300380412433241711933483845241724532627469785501970271563965706670880469998942852787771954434207030303914178581508166431185092539604009017778975515404754694188079386843910694661172021171265032986843689697916955730279146250875452746968929478143523061124348225745317952469772139958859140059353165676961144568846557243922529836429801115312133350981508225174902534977815588442588809401943830721483146707005355432535392794340569728687675448301725151010459275213989683642022701630229706442214408784800185224219726810635857449925593428063852404345051310737802584314992637287353451551429684185952248221378849915805603296204461334904954081889095808944846168410578513375159491867238738278950957100844419097233846357321339125141940768351528489992969736370903384041594795360429135676191811328798702365906073512255422722270987457937364305450592991606604808461787466200291123078087611770460128340086304809955789317282491286538871913029880308912475612907401289593732641994729255237418351207050207157285456144182402696208300407454624803655406763313783694488216678259118607054362515154939976693853082311617770287133358776154011130107191089135713241372713809468456210541432643682828351279759529283045139274909673236002997701531111202041984027360519867620697781779945111498307021224964146719848115120442632149112168358320609563816304118625456211108477454443825216566769436144964156123237923526945453075314182976487857492063778880194994781080061448234862304476602483704460681380683748975162375280631638544710696606075669787168736727310479491245326824996614349892660686825506995267835603452048784553081843497595934983117953363620222878362957285841367047614567254295664968418675624862197605508630288105778342929482096852059585412331683550629216650649375840849982167080351108516360282116656896471707221233598332512249905117309971923253643107653501833291943205827951163812867219555592322246859076018718354006463090327523041437927155411242795334447443830086928606265808898261310090171623925758570279561342883741606478617686026052619901631065308136322769446611679800696384542369191063002291379539645755886236416778778826464523009119469710432210200603144154419632321473017296269958947608684462584762451504136764652680272634864255290121167041759305637642945834242278814505401826548635438709123065054607088409748858802793291736253207513321853093183528777655816605211623828638130029049500657407760050914625192248658465235348156634510375413518421371905193531027713195091043697838909196068914326256202796209448415391703111178764099022066520349659149656283990287508154421924989864457824200143136151478823238940168986127700580396676573992614064077994713544770976828314663121581727202869639188348674018908842044654559608640778316254067014611552346651604083636678731489781711438594680821296660368495301419149650531051441236611417778720370341411019002836460269092516681888035469366306426985335468297762041078333184945164971010672011044806785555927163771288350474070326739066166260384361079681455258381102470179030792140304508037671591178230168098929589301878310979222089196262837392555136350697257936974211877678947449109108393067782555470151377082800430638777291797399223877128402978367275859411128391906165732236615245818649864226881371238939391778964696875600847045495781936669233536708692200768740356768508771622261912437434098900669133601422681344878195430949525055681912498231377258397263487194233931719146785310156602397383878229320616414668169874699268970856352749007272413795208753954606143659808588061667234096736128028676677167655751471447840918820560384392054025665941523517318766195894162993115825493556057034530795012850919897044198237850738637923644501012865652523187590484322727509209434913800827953119721717433777413989274345200538699710049592513465276642212396964946609438720149748430148518602276474207292414365369513610509288812882160832317241126500374227007818220163956632607107755391952339752704993212284361297293535013803592538210926685777399507023841542495266656594638346439009961512927536531667186141160610757327384677938626993295690575751564816098123331244947513098398313688844767482117113579707438609978904789680944840402292858118393910123897073493773984178067952865846363470615785678062060625570029842283210145273760201208919552675684631794941247240963675960534248184735538877283882400369424368844370969743203032067775462437854380387203034886037322515113451269929272559365750447341307045061796948601581376513120648597287119109952759963886508635191797097334455643293296349842615771107934074810158323954660533387329073427564091989230245830680787635210675333548660728248415853946831194601216758651772245931087085271758529020823968353426387374984811762161803753557414004836422742286909104515092665637729355695706024810332037536157885082180204953371530411684123705264631421669258017326571797118808279770639228200451598373219415382834354507165198693937900510348477587793265491378494951550420259243857352293965835063742782005702964596309854945775078288372954118464543012182398549567284901714055710566355075626863365795798488698804496907164145659979003152328018422307727746058671191648890927550501003914663080990683571594537656734364940636010914746569348784515423894738807534454064150653990092230957099271055153723483844691487554951612889730439795387267309056290966675034204991329363109963929911351319620616142327521188948785782586327079398659842476203076520118358694323441271899636580075026247200683564360516257146062982909445177123137941039880814731405396789814397181095874545107595452703060028601731823023643985666461515418399730328230425471940778083307823889408810460293322800578825864556206416786627015550848317878397836057553797439471686300204005489954380882762798287568883475748254514729669681517002827760677518935252244673070626613415922279420657461612392265961653994722223163091109890505779444729719355809964996350753652068573710929091641473776096669649738254700751089593687935562520823441978017223034183617793145344542541039915368568545415800008559701299371444057222192680556312041795478973764392528474416636667407555580333998168992831037476562494852713860449678552303518605929032369797389234193489698192018466079185871944104939405852595110075750223830207865803586043757192575798505040992904264179711282401570566986919548680359467602051898048304630169062041406447143431178789902801777021179207040984724569346377646344394182885954577179323502949991525095381460676177959751497098755043484604558616102184490315863801997451531531275003460932978833405734113195192702233442883961817260043216417394148299757630674702471370292166412799969664643244638511639641035821691095991576472009574881609180950809096071170834950979705641640551525174036240457573467095723322279160646550209261459689552585528076464040082160694400625113014468214018709497155790724547745103420912589741141511417822388199539013974481889391472204720271267080267767793565478109110932234698916118590250878760343814366832457245780737971767016137784436125591461081127520020182726982184355952477447038901314395683395323240420360938653710477217828467103357406086452768234459427916541795178695742895547945516150589903475055764095096531656205904234592174433445290546555575505784690548930133185050858646915023475301785754428329129809043733934107270673232156095483530485655437930272923296946795730252599139444613038495380933072627488705990936650562930359511086828732730758620905979234413017947506642886774513771388127082856311295036184446562996644395675401979419247691765967505038725172346065713898516333175083521382364468463057373073468690334573126912042524140854493905262513200372578285211835967106202123819082563764271085496638407565886294869115374356784824569011873172729783935484534531425601886859898681071422366829812000772128848527292836228055998703794404425418609439122708626521006247281503435196909800985926531307643784277433814651753848092367906546734861562025272197704278374843237995556234613430422325697021167316817466134392649895587019179396282738908167874903942561004177694177276830365313789853207787895806330399809241921255484392276601620587787898638338788007349308592234038615914923355271249954149480148962090159462684618333348623268585667147304188052741867323815027059844406850249811380591362528761812963407055715493502864360640002842123446077175091827971281494505286680377624270952789119346090946016558268204238696185168134978524991169596214060212135964668043970527911616540843957894621153016602863154486698928176021228589452019570412329834918187351317490602800072743653381526853950987805526442569588880654769943291859344622240551392941918496564678993308590553339338921045717959381718583661060162573453941469152569954138496713476100253721992679196499201963756101114621171049614312365000897644235891874966374753627538850999391231222296736017009827081943653290713438850596825719231877681692518410536447156974525405315935848310723970992347216112604603101118768218044658465639832330803293533304572877626790315148232285186173261975126843529071062993650953464502959186934794953400558551027576594769762014860439592703365046195789515928427382155028493680249525338484974380130619613297804723641890493647302580225471775981552180792168246711833985685082494618173624475442144539519394282619783811885926194590329667402862349383491096171892527547904957755917472015748848376857678651435008085526720226336612996895390972130729689390573621999708472625025143362889376892103055053929182778013976342862968318495559533025668387019428107600415093387805952069525530834042469506637904532580049265023951633103958205769900231828000015535785438314449745384715096787614518804130643508425063241941915488782324800015421899738956552521770491874911741599454196871305889326526451880639728403429126171179570884849280750604240266228954896950881257070063969425528537510120260020459901870411272344580510518589047956743752729515494132549497512116823045451713468820757175785560736317032270153546895341479151619231885613393057390586798337750481191331718297395066626138017963785079460447846570816159527853954341475146128282787756164870029631167656627700752344517933536617396173580105372939009722769249509402168807443380863466696331633962687643759013017093310495820861269942632542446491483689638499342656380531528904417561577050929127402973100405629228666650409713212388499890265848120271691826489618774017299827386979398711351458170270230186418426459248749867033376457084851782040704427525170755188393039609843462054831439104630619270425312799792185452074673334147448284562120013646106627584646555407305113454905346183539994854009688263754946592127211438377523910235769583969549586414502758896336435534656674908385356855872142850585673604024597369259253478330826289730629055035598086447280406469618231514266874255984579244301602173735562612176016171300522839567091106213099187192321388136513400044360447340388503747242288884827277358920526696402116786327118906306833476353534567078800540261922907345190288262213059320759892234433091658874547958811356384463116588945417557109271992769297233801221967365610021520866218531715498407225940590536695477814647141415546231456006999910875117102326632056388987266129238393787662744895567173027557479411291727689745963498540915588973795399159454993411897753030825623755479095753328376219727789363415052867048580311583396230159574213394605173970274369487693136245501925679259100523232934092182393772332473271484817215845057349974348650695647828961139311464643189313246613620769197041373112669561599651012584906803904780919038384916545915657664017112169960750917169757775737021429748105032783736611880847190645801448664709334067225730495388294684102576862171799997021774632137633974711920046985635422690464830437749857554959440156889611010456386014228087877871257422660999023014024812422438456806104849665349837201776563083875458662221572678672704954583020538982463657119494158204754951606239643750462935918582910538619795269495373800707324300989417302139064175537528234871435640594390831019085702065909676712777163785356365808769678811726298988101241466411459974105207002213015559865810143770950546774188667362864643600809258114438481380807965560350259171393336225486034702774123836604274584677652260699226094369243286979344599829869754162233663101163799413126158502975498275404273443721924867975758771285186852231494902716545753442359963849918062480045864256355933528083415736410202535155898979286812235562601369154875382066284287587692344663509532476702864201378176855758414253093582744729015859712126844463335570849157528053631076752257125472438681015315048711548027168306773203300521503815477917723606776753735969741328014111686041024799470478020933318455656743598168943266911522377392728447723255426401497804491593125528286383044875975849464017766740004662511651183629509940538843210289435171611525558656626991788100242320782806939329743722602501199955655970317914385754286397328343177885200478348041080240667579244102415088738384980563696296730562448315011667825519316272465101620180497793228771168905605899041042183821467960554813023477957424490127953809150594518900594398312554861444207448305939508128912561436741420710703142917731644071950757310905596618933320640493934032097836094919255127085115512793987342623089696639039071017282735863337233818708419916806476225981273250220591516524573375462781785901195752205185099279380055613593207718603036185475097643430420763020463375866299572206075487555517169031228628438757192192633123723365502339283402861667279938450833223553301350325072702014586046474609333334995858121054270254527149059878383908019095899832283646140031974020771966230181403094694629998982326420670891368962736072626665419346859183668359052065330430192983721665994654800624678201021385109000089503328684035088194052848815807702742643981396253790822276148100945628293400941266051670764707588237078895745886904885461817676526926778912372635063128546295923680997987002834642414192018731288895570836031583031165103150717712839653963594509763700055831745320381660138574316678324809263821795945931381980088052770827564803790914961067201722045048361085876373587127869237247179679153826813781864822550945619685331358574510172878527902393636910670733406410336608346644933944170831256138675709057328953960427574623036315637488556027543271585727405030948045950870162715644043578174543825707422182679872315136355831652925964123927941754428935528520014600587626446316673031651497298648490403106359763444842588583472309747871035955375114531386614722774204778625953322288307120984362950768577073151740698717569128301232140917054615725849506747453154636181342793471049809304087133405411290253876699717423792693255173037345057909427757872512692805824533386699613713830039877954621024968502767365085502077268733223287336111443583383866521910216479731544636802184158230709687335256251246499585835900338416755760811763329996763453407456656747444407126496445363358284112602468039797174466415197069302434300964535413423706242271419839518656740435903030984527619274774959469934024332320722269960619999878132132529043990065709801402358047955408913214735698503528336378858713385299767409094570524786484524245528626537569029682210745646867618310634772018896274358078083772711824441874118569799329016192067917984449834528063635920974302533469025620486098995102924964366072341919232487258537921330398662305788623709139932070601821154320194541350138946581987830354805868217131554669025948965251199597079389101997495058004321485626735644082513479962185389630332720258887671544001069565843748355030184033780681310918453489988813385369870906680350753671458555439378909948150747599755137057283404722381950809896669500359870508454044842347659629607813266411220676581149445276429250193667466033393358354490954325956523013947826005172950287372439536745645894087046197160862839857639003473929647986905839003004870114288754213605955074861450906892889454904926474448635608901327930907070884941866192616049452373711948787110879076715184787940011910953642348628946522031595510978456708996180726530521996605028746997366572979291654484489404616654686047163434618524693596745449348173897020698637729593726034585429005537037651515758332185936262848304131417737582355046285987499300490621021975544275012067388787515755627093028531111588368366587843388718875961509769502139336856338415512230054914472733656182607119538369502127264973726332494007704146961571622977070019713846713335983677659025753785492842208962037253874635374441846849542498367892387439847384699226379555836764451000654115828506295692069337629458358981526551798876580914089251209873252943100795987512909378839221228764964076188571551551960323380399124109538151812011084997322214292532004173230556582547811025708690666435272177540100031741931047289220127400898424188526631646227327924916173819922781370383463992974319422224532184312632146613723878269767414900665004930519314156667534328625913058550830060160988748439564851648336711904932417911783889090335896516202327631350925963178993189698245224325773832694999625820221251250656591510897474285695502058992628459586684833582187705202078695890005789826639825104382049010933451358043611470885514777927616708235592578668727391737686367946980964117819120248874357186526380896914477794194728272801338806962531597090487070046340480016809031992890694873040103309947255224331045642119109399015755762692045150833252142974716356246752914649622074968619130111324450363238812184005541211972147026268201880750687822020974196664018013493358093259107181671364180091719365164033448743702036361987841101577511913588819191071531721765769327930985220164103166960676561741977794912026556864522019396426667552881537380975644119170207957445944813091258556112166116725578629804025386451785410943784032774763037140189998118099256212047579390519694751138134185558370172308931237736687150145600659253541372541210724395032205523800984014992625735799399058996159811998516145419852422686413491198313576960962426881259684453818916719782741492809128504146821324230249873766234739418368401597089477878443958547592852629556284933353823539128556671736256434234049042084965822635477883795079439615610128405357388913981395101982730714592278588564921340126930045716213876064817211322405617694219145741815036488275552875786150658922011239777267084561817799033489190005864528842359026305343404614144722830573345765763920214653888432477963703656488477339007788998029080081345837918119911655804493055956847084735486140867465018269735936214571225128281910632817985969757949162202053817524341569467577324149623638094802905217229617383054790679205884143311058008432080190852139762890354760875279653806517059407999124772219890647945351051461046206132335059569816060490746716981627233543355345562645540876030653318371157853247944983441526013776078834075131159479753609107010185889565308272142517315191549051914087532290692557835198398806938126132113765774343346419765151774111520521769721732670955522685700564996747058237270027841072884431710464162489843187575919340512272743080652859346550640714227543124115490535262913950359004972976050407527812713712843046435052022973755719487003037797150227167006476457434461837971297803694341302030647025780786709194198338866845078330303834040170471628084514601222264587419495035780375395888261198348489986753403036660353289052388221510951604828206468770656540055097320298115252884472283213890695509337635329301263842824997291782873485243239570188226653871617431192322302638572716478454259505198166409629346328851565678786707523033037929610267127830248344098536571272454046590357447860695546204022071646800386914682919696395233792718186825678528385589631411335575585937591818715394152419054396369228171155587586930002567450946106208803811721089695663675673739703955032281796711781341979541335750326450535336716344262600051721931548470693873924601376132439228520687921471351427631891272445670529396535981188159722711880521587001387657883520139752580784428491074019876895094500944767083642984511620368680605568842710299203644510127715678847306609602728321649024332566882368000829257489038901525026503020270347312752347600605349913140772780436812206223197822503420258451131382967791674946577196162884274842000930384338721340975911121215234728848694907981120685546865845653163268419130123724635941816659661468487718390232926764628647589639751317531552208946866611848982410589107320618927383563764340359175048335719229100046300727578529686947220930269582558050941335742554891740393933611887924961607248982265433159178844944251887404830944159852295637717124932867798516872471776677653509398148141621342495163013436746901249751474158305305297564964305567962535932752566775993514762673190515702445876927760208535826490042815329356859485688474339822082944029857328763468040961341339113585373085691665262095088895429905178784897171041609702885743323131029453931088652653853233241374385712216292983621837390121206535405773299474883325280205073888701531992374879997700469923164318340145163471834460094818280044250948865791382485964539925930475929421660277166150908643810435056809512179676466198645106595120209251485952315227993270758560378817937316328981829997124729619284113497808570495067919961128577285628968583711903452878159649848414108302599364552369518827453285658487417699598563945734526209781340250041115381982965879254367989659059778000534458239608930826279602781177198252850624635671921065210105131232389488589937334402344006403307828283154327833764925755273082253487946685211295590561959434791525097476746185681191518529642350813973903090644302372768329983097801774985482192001682519820422138731799578297114085226952291542585975022336652023612786323348537261433711509294331490979375582236582156683702138984947569695439893401629334541818745557622577396786236836600204870693872937542912314960383986344576409846960862704594273154918141288743187507863095346723362035963005686245859701629556932728014961885321246264023725136155923944695062912598293916099469719077905181565745897304795535819827998751226582757526345174923357656711864916952902618906328890743459984935889137434735310186069563517384722616145673201609823891427980750729124389526916465078463826634267814763106459370866663697138242032619767660209531210889562245282679980102705315712343819606081868329808308917635109549081887775378453791907346483717010105153025147665872699397528098373090700041046417366128613752352983308131417432245968519198948217769960531555981909107024188865584166846193979310852246887096180091868468029660491114264768913517920388122308171146619391113575146112053789733326895321137483703094385052732822192105469282471155612994809800112021291610874004579339280145118572226326018407363233744714203880829256387036602087000052406881999888088220658705959194430845060758094599606204680275485036462844663112462579674091988463163742067772644448276513756689763404803935444065984988623155811691736343760860983869850736885003446282805925059567296298834233761483684714250318549172738603424378192441902287473780018561870533302896154321747701101398205052278127516623643215949043415405799029450774388385538740799881611668394832415927493605281283446174200461380639562823605473334870402278492350580168838342686300373755835750083735305377317709087237496058840214389245364815549495480345189579241751813916385649218699724377810793831163380933881715509746882641214397912767051327683319890442510542964258965803538913418772233033762008297382723717102066400512309998011382579015513902347724832916245617326398878313100128240473390077323397149972917705195609317933158053910926451059855463362071424711535585348739263395966166201847552369246763197375491409488210997781463791012396184359471386449925670118870124994710916792355735941491228872414885997915275753627390855462013236802532539387406951289838672883817176184818440699531913375613697614991303269263692102025846893347512471930144636872296717225774966453491430419258786670691634229458369206735354644852902049454691839061808714546332213652025265448591963299541199530536217423830743533027814002922211324677576778106868628543665957965937212018281969589722875505027383788227945333379078632711242589575420438153148540168473834087060009123528025898398902039903257103298301937624441056686617276092532555417870102138217954788728757311505726043776326792628569190713184072481934389823441119350147884237970625198188882113329296317412024465729244045137594552448088864797773213574248080035836266561754460169049466580507310863243534171223012073236612796965520769296149835009892521692476701743767714087949667790621414957985982894378024181006682027219842162799179165831973956896332299162546719536392312580615862734394234422949379155917185295292803938482361228638765986438422555471151811140630512434960106128839058290414219598989777819447801750271484141292131445169958371568042063503735671632172113110052803941950972186205399269606382332555811542097713471959523832443845249972889591760888151397021772877482584111280389252947016537566132969569472475775724272023736387161196556070005632012678542905168038607370342967950866832752452677665479585193531307170186391321558606885012540390358463202529779681679095543350106077358578952366148550753342578022058659616747139635872818116702885528018286165568175692111290437398613802657000470835544772430693412874187530409547546231687147266765107718678407932336535333981352950323988476640269724774390553550975451806358471835318430588513207023370527474233873283620711727514951593672111601501451552444736541532360032168629661068124021914890163938004363280502119042576933850270119126004941812239878024021469764192471076286027463054092621945744841089691337204704947181826113878208981446188691243326007497498771000593063697189076491104405026210907449772948221454928424056270127822722486917583563175451352910299042934839225663009444784238168587280326822814618990069727845125351851571630598138218516084266141102140616573742810205969858777106377919535362111295389967076716578652725079453809791803424183499954935218008245518556148131968064950237154148687572125659030636633895337095379842098949782139099106643764856250548349493015850560056013900763391984131315523331670298743520350338848811857238056470440054738269380413169605748828357372165562018815180078031438729532418306925195245297144659570400629664786389274556798197182195049699676716308718536828926118628601903851284878390086038682934759709435855249025228931301624684594247393324108002317159973411797779790501298572068069991403970320113561201686105037384367041981636418287106004353515649141678086702174806175631278067801140898590962482819464731335628421101400120540022614399966219221659081256902517740994208811342999221323260238587124200660116258269957866006797983224516439653588831814351894096544186990858154478190632624452357344879390825454754765053927477205864359156349647545100021792830724056558394514744952397078950472903240807656943905357475324496005556182183883195057275645488827128893935886865631246738929138440147800325067372685600323011146968171950775289334092018559572560109523161441590566743312521297987138592105342699793305009198752363635750772145454923445698542096851724504766418837050466016473631747556455509461386774058236559259563353644431035325424976472916831792135138937040570694110667237765671386946251785147513583197048378254421470033693238612588673907156985621659827865763454960277573841586762346698470413488759866681695870258610581648821463544605843525034835029037361868246661352890079298186741583908509815605736134071370352479702490216312937970482725701194683360902796774426270181564971753329133869183695669783579127074849826830094945976643886064136353163010730732945068705809895385031096258262009222039655044874540697701077514257148929886171004611318479228570612068684693449971607379937582933211291302006312671864785986904192023237533976819181208098198856780423163427815312713727516499662916784279638802646479622849616328913887593624763357300278406359352702605432313915524665004876951565478555015782452127848540928118206773448227031027760016788411648479609146856244375377425229812186733159330585315925437300395001271949773934661128757723909975280842158293032577177752374736401428092301659837241975930367705256763991860894338335382196353914481678741094564481558392153893826000120420770557628934078674623972674044990382785736968981371421499971522734024039139637093999761244002356820245967726484418938996740098418288072482410831479946186301680528394489040504448120325558129241068959699957018903602722708030904767552440417051853564755715684161122023960562956240631649341175636177131015016526708876042154501282543742089535127761513067129608540425810184632489613703186503353088233112719562280347855160262649711493246578433490268919606906683059525314227475791526050629276229135366055706363377662613015655071466109087762175964383649203559518240321824613059393071404450446644240946532829393027621523086193612355624737418159073961385259053297389963191923541792717196276294663872355945889974624435178458140806028080029859837212263142269558647759876662945913031391176886856349687031989050453440740084547444613536007709073612004637336132300213604690908445086382901421331706644138644074886933659513172904503869170958366911672040492325562236122411839383740400703189295777437990172202938612220438002549850921836032498578123617507526655362166338336794641757238483473645958320978383928751416284106142471311539737219575415394456993016753528119459105760408031363035246063977237913618408670602018565814170688369001531166814857639328481146678030105904580902873691864809442879201759700927732713378527028490296583952388039878766941852575434336327442438630555169775437062051836537134136105968318522698705774695152962909190167834356149825549842842576941519969702520581025841237189557774199921873088912180705205792032707671668416452232895763795334893653968308888461831134591967301681295431949635840715694261080999772365466567057483911070538473685413536116614094966916698862437576361771371140079085247214120304102348636183610833559452628976274619742166749442631115122168298611416856741217157988371533210353741755716612560384150730014720460200435535423186356651287930544207551742360385161796491462796961461393317348630740311700962908831708737697004682369789979891719671357880375632733581840290723229695977477753184053852523479345478290187628115624565001792684174625409934344278882379140065471935748555740169776041489106048173526493141836339230485556869836439805796476469186362294045473017097861893480512456720065818482277163848551118793348751092217881614916780108386233029352633325840940958440379710874749602255848931409024857910539892280660270848222893174706187812200400732669327153360914385984129269857241936118355236821540525692219838934286615993918132694055122538766678470984033493133898415329619440831128580122924835401959882606147203232148057481907542416706873074182423813524133262567971463989355518872942636152861722666899251474285262074970573994182298869412459910501168546810213511046747123720437637327249826991861607090378135595607750878586362837582093205720438806201780628625630951054453193887025257228237992592612809347279606947085524949619301519313224587969005435569536021282711016522490243022749816735114908497977667254646194052235852143001677448264770925309834139815590664304142683809539326145914681461840318301440296334080275442530223606313707165762733132927185883165086668986633041268169450506113359176644536157027913383098394067508602014087244388990816938949894592128551246570352280364633493106444672809505239740613580163040087698193848269034427355702136672730538326703152945294259729722638562376946039106470653937305259466137222041588197340780137944908228106055009960451669255634032670527086509784333823415897922659640997760108646322626293715206202329465587974790925363072997106113455764933228936262418096543649508494174967401478034921316892645761043864933707382650655569654492577053986358475323012070207303929953042758312868095632464246463727633349397650752651983061277118048194331591985215685823583377129748135293427439420184326543154464377589209795538397868930971698727710999419081433351335922724011742358643612330941253364757492528630014877916401401866700619322759756979411552928033731436521704400018921995809226280550186292474989461132829912087930684546728454637476224011965492019877993210832817940168636183892791504437469240929571208115586080148320047629509174655208197764285983929254804223895567984390551856976678689735562212972939795644060407118133033413497648954595058212733655696743777758291039552122571490996578466442622472896956192791339671783170678315017508220935559512733859986859207734425663723713088803495699293369358589702016676128030126522810439816649567724855889442826868397838148302429920294642514422450649934613767808972049621840134089346531106435913801506708577049550459233237836343330398833859190657115589702011516664848515509288796387319597999852674655490070264267074250492446798391796490834803131785574275150203860336778873807085740523254213457918676993161840781381531707435899982401248447418535370956150592251552481410171478252240571218407613688747362276924168858581399566919191330947118689246585612767932681795823402118624722903122676398572707237516104677569809734346366589276175607465949763651568437892305726215647132856298999534499004363353601958952574587354506666712354629689886693071607600979961986066275127375045733269223114749369257038100905240094958694938472216629443335458402585236774152353970839224573753695803201229196611866576295524311312333491156634856597704429495309726091275205676016925359210951245993142877438266178537658976063551154383633830731780835253628075374002527383736435181261441828065371350473892619799529330176662555865222077411776127090817186262915272997069263726427226027859946566198837954963216071775028387518988844362188073495374831130791694722175657197705798726388495305253945055674780294171122586222525334155461764528442944482385178285923532195220241147047030801906439604674699136449219695287418920108186454332502115567839020334094754648352335236800986652166158522547520169090187894202714332755956222232710181324889156140185837600213902952418698828484515282253290569700126672493419060254176397328220899705041566907039673503388810054966172465081596452213132773694804265847009984514782872531126111675791555850076225280339223825858742772744779548830144034503020067651553579544234706519746043344056174427507915206743886804603849724069739039688627452275662387502723910451209878241121399611075988044909095143747172963052361991055774980983184278933761280395527919523228118747396919928266891553215177574038109383953069590055627426944353843833468645010592506852000612122922910615913328966608203467536732031175507148403409144721826810376830629638162336803633708893811331050447521933878188590406920359345406788475993388097646833426023313462868467617519558000071511082303333466063724135568745877115042597369186471145721651328551644606694543464101273524635196102973104949633826892275495944724176966490320806736505361827141055554165814415101822519074068319503902200506034147952523532713241507151689254260382489859563333910428929676074780986982488322131556114674913203230146054105784592869782126539035177778471161706188014642118065432815623612701883735073374107783237566824089589898810069946171692529852143592841500918519019182567852977605088270641646379029834683662326320550411120611719551334272331179513294854774314059892306047078269152883547385463822009496413291369801815623363616130467509633943551347821240262387415921448040204550736029454855100542454272608755046331760513706069508738935529047576944275637025164020041242381932198171286624175675055548722994520606832031076127030044189533617522301601971170389395650374764495383963197675824015939555033589655809877878239889427116853823986923342966234468718075924056687161655825882114423146782254920856412209187450898846990092238574040779110118678991801647218895759178402762319621536587812274760955631547299838025284331490813474176020829603793454148477310742342787240617843592680387928177743280593734680508603657617692706915619823972893055280037484144580316748903336675726349333523348140978469241720783434513519141146493028720129953080236874448648038291170055612806263276273345949069564939732730561407614649036200372164198670767725823474254675449807102644578999548199953113226619092220833639317924385950215280851034660834313554357733815395848431165352478063850519214075725996831769633641703818386559664796421971643530027537074943667735482786458086905901086032710996258508801704855419222564211388345529919412575904368482227383290577061764609638194052251965592255518941965903231678599594239200390431824000874229954550916682252302223539118474038709906796418282401203827411595387300710629673685681816218969929265912170531057296945571495585818354832377521042551332105499422717488243829556571181194071094113930206226096275320225822887627731810849554450836156848029083888379937178661553508009241381874655668176051140526136188774425782668093500609833050194987996970271659754125144897640339470539479587938861146194116334775287146574177117140555388343461982538575753212898309616299243989579967335449103578957909359774318076749187402290527577906500018037507318046445111398002067167702593897640471331483459120333837311008868119016319540044451778385940131238856196922344433944256235760456456981456447788395646914309257341443848905643783946251635512516445210557653522591162910520434650165448146600458930318839146979597377440422772036521050590986618512261955199988617488416455130960286652025277597634573444210741203918754860427384164698023230016352324294590408310331011584835414919686431878624238695916411076831420848416468665673587590372424382891467892505222907801810950080839867799518766254400809861358658176118368082663442950245456317858252441402231448881931018132705251251401572211893091695991913575127656915168962620764973346237596253040598871120886558500261720007163454406274118425854106149754025393709171888303490376869740320342032942625179407625763857145239390669973426222089033117279894180008117092804301817636657677182628540697034386805682170245304570447588905014256284775330072259023921957103799176302892427834950628425243478808503707920081749902738251383674680395913677023301268401101487911283928186286298898597638361278669086186254919704262312451673566317126891955217839912141807791742577129003011787672951130700739265491172666005501467227087347488428709209915644988500656847199744448591005556986559452385807474227496219732367695028283506205522447071926941614298422847683842094952428770729409932732297728774411984479293960376412267334919823878933130688128597120997092600731857224078053760118439300974071509872533517277753370498695656132452450753750068841199277519434490373871855852808937784614653478893044239017285848011030003963005716811675692009308902659287657475893390041649111244091985772823897104546687828316919753943723395502101243214870520140388159867531163783638417908996670308875664276929842985400592200438256624668406118222187052341187982724990576292810236715224642841548454621535627526690165672701128084114694560142700536192055082592999628448152981849439730318560517413234793734255958181199657242431418142305541648006931818383135386657476344283725553837797992718384081549758171777728606091577098988621491430752204829161581420316865472310123689594089808598846583332528838453162253085724359176706215309028498876314664834743055118442449599341474083544419771516813437724453721825574371838169410337871192861255706304077791325428515903976907494731747272514268168529772996507209336795655699670831637358127984371413699135214737480034484671563448457986220109999488667527614902889233405628715910992613390696409786543029616998603866047898392154797635969610101047375186112856420874149937951487013037432327767827413774826359014948213981270835664524669455356675882711643529651077797249497179734768807452582500902313153404827906487067893836449163870091136792042843601983140429021879671046428397234177252993634542935557432001108331491985221724890855088454579793561742227626049425799279915038525328087569787790449055776121019884411678390848647915537880690950878966773544630131766480153006679774391020858668573540244160193957225946329422197924769433955662757892802390025982052413718848676621957859378474663657488789785870671306963436492770619654208529117970936444687579576645724056637150979975907303654147503971547849056813100767167194769559534988002078868036292440538761860879474412510913152136458935236868112001030463666111324880533904785288777448556594706986627290236454399713387038852837810112871267180792613389299878497441103167320213585674972348261605629097605105088087705646319723679990220594117402566224736720395244879754155444063003441157649737661258786844152163791354962454910891827582690468343095656509992751525269103442956502864586143910499559529202036410876571834358990065324163792445470090655096154822982674398159939728003673644216649636831790334552087869936857914934654420213404854711900976335316161378377030937282286963631877622420138651180321090414818291780772787196254131418215563742901054444727765564872868890370806915662059365355982494492466778952067101511057894884048247590517568887582870207555563843761754818795951296736423404599448942663954806881956082813261491732649278479103812168746392016489375403149289229091672529268451989335727290711240599162009624333030015048667636784797283622108059347575167567611769077393057564084916447548603720438816884837685300927888450861760556412944420399382465918136249999589548958430617119928229741541079521361909908313675365659075316992525033119949186713748257293333687521222532299479288136630051399728600854940393292191131585662148828414088747237706911699214601911817115384241496248573371796412887205934972530289011766228360102111006342420211177859547763426129948764930556692444407060550792523497257155798838685247323734793494844538767026532706116487518569139820486465970928184092011286373208770613943983153757118850367024542964975559369049031532864553744158340098460592153949078274609794674496261361732876993124183688784547912925992787011207064186966198819890977994919582109648318134284497906019419299452568114071277723584610612438963471914736584713766676229388297895852808324664085613454767139312571927850562862528270198913663347440516247460502401464829397065882190085643426383318333712576598230852953563615264118734175198501019575827963635560657220472367826236984194447122941470909501989623271313469094779497516603305337646890315321819419779543970360470765034485214618580943782401117715873020868868800783543582301454100309070014984682741221991198322939412911211802431086147994523981101048935639423890727230551388387366620918452117816982405966383733422260476032160477004973123032712315707904902673954160729942161579140704902753052961881356676154672995681777593883433665207927114033472347190583705590410264886779891839923432312534148831084377009221638299886605043406735381942415258582226782825302325274197372300155838102353624680030360535893031371080334391567917556703182780853046278045093390448071684709645110737625452575519376666416852428334411971987489799821451838889472771410547352168261175272988628732387821214946146636958989730608252338666881846270001212805766181884002409196883883632315181643300688019242263286000900414231198688339068574369927168091500299936676147638277319661427932144526439793109073240274726043529732754908428005831811323980282028606449489509230589251848975931499789860154672741379049222538101444201891457470770172330656234536309061870727176607988283779350946256019426916914307974238006871085284256707570758413141056153146977599479501239075448860110260307311387926447509470735059026363284245473002975492845158010221541920070497518775049938848358024066646629574441647828407284645181701712664272514747887117468126054727374675104669799277183777815807860567256621522227122706067138702104177378188065618612525618985088763236982579706879424995158057361757358820773184904219911039955722904326873612062262199986141510346353496217251324182053450228455006903200065530466627717528376521281074320304448079348458315134239609993417851428367372263303657489250028699315498829669065460143704382497414005694566273673495258305291246831534325950975337961308315452206562967605600719929607583118161550550285519081447655873839763329700975692817134790135730918284484964841758318599182512260001581356982472754472713350885461246536815452991403024094606933960623338983457782279035492655608467053889944965472143714022177182714329673807692379313077641804870348356141183940306271568977587517882983988086096555560315927580749700047845201168839593287465346955146044034351366594542465582582808340372451119986008990406440074080827741083231921973504991476608505101454315314113749838363022912987770251203197049958772442225780469152879634623845292909106158750980439588892555593427584491086429486980502048089384415694463592151942030796334878651465243497454697407186560272902408823460783848276871367646510670334399834348265195419758179741075642242623878791391506516230305145737200649744539687502517896408272462304321486184425376612103456060253929203976809471937432245931358813834885137559032355490307451268192187004710083701769185377743357988124742730471230155676790773838188441262323944189909589386934999423810746561681361744243770176149085294209835005701818216299392614556312716275056295674953996191251572398689730139809716899663557816322762007884272727958969040458554289027144426643803160118223309689941212841696720958465750704470279717357600869947567953812867683254782516568105746071836847848022151640680449742625281018024408509748234582012208164113057483005450246709414759914068450692729327405382430451306676444379574703855087912783080496380685052491029264208474595312391697557261284358548890611476053350163650572522698815762512788181519412692692121070302905531738265516372505387628233373837522812831453302200380859588994190503790129732650657595874738159440575859337329926780844465514524150293093556727368936781903937516271826324163550426054221334043015406804415906119827631712998333602503270933001686455749260759811599523700509474142497707380969566675287194722173598299418517163755442455828119934658445584793876926298519669671586278448077261895439582760134873060766483120499015560319719563778929748522399289112430796986043641176593645099455932640316748412957363073259530644504852048554507921149818123879943827506652988410639710452049178287825409760516883748011455735056584232438285510014326219948564250534427383979723227006879292539225522644626180893124180857936395594096889046034916524820307781254640027199801671188328463703915528939979552078348515071012657823447709059784674641305062870970154321659626103907741010415003389655700019601585502868894085199031748673466391119604145775776081208556370429464485550407301183842604773963264177528070561006403099720206903904422763013713172524629645622085191359409453536954483271464424248995894573489934850770501037205594894010263799184797401132107678515884688629729164081148484332652281709279637209064172609786287908637380376389113202077325574677138156950341773463346592152388336069989236447403978019396605195051932533510320933014036901780140584382653662156750705117898981818382167931456400624247841809365899743616274194863011788466368179878121134963765137972032188160860666594153726883647067051277148056749134386853925940194393722202117407495761086832201879625739755896654697511503560829044929201169976181370526642432542271254072983656041415147143083217795463495637736633555941705848073160680100741211453446213181645319469153474367312811970708538861703383580627095398324212368214549014415615842560167143193138149194938877840755124376115770274456016376470985271803540708551486706184668325856192902007772725156613393067891696830120419284998292840444785424863104454722204963892105803328046516756897298585883327310588444445453240603503795390862436262424003246728068116696492955298305495466154806699922850451415111578489586020499224471719400276669061844895084615640587036887802810484999545571020220950085350581063986808227668651806198516469202523417117460787826374575541164330570747404958234468964672489109664808252764073974069447068872725536596932097207182444985352337168241010490708885577938718199867857740563563728420913447237706426234359169568426441397219428622146154362077032927312979079135931831889453505140252145068189374597112079384596304213737215622628418121066925289870952376890149312183335999973487936401877095496066168224823427156469792123538504563286287258978355651614320662821139257795993802264716760378022100621138898052250295632552601513561391889677323242800711734394060354458658553833493791649569055890952180620196362111149474625670146581383779461588547525051298948295532716890813284457901922285936143730962261699861300295045790769365997013317540398998541641516355715846356210307331815625313566199052405371400346074961593476136712964704806713848791649314324105114221461187679000871586642046655621991665225230374919530133161907671257826468275931068880793164585348885719461249103458782181360825081581987301567947019433599767795031599780830113884804504035664541919494229546671744300921365769731967260937747162779770963406144944029845391846632777148945217236437354880572728181464121193840327566907938807416909620742665452152824274747192094382002484517768515520184785111698634788096758907002368547322374078587317512475188013406101214725864170798133591428818703812883465927594136411342379184095016068640363836806695782010703291341853174549939362341972248664663110175603354088642533782079467970700410005061179835915403499059465781727799795922008069511795596146217555678883468466956396773340955385928046695911005583649296504344732326657334232633528303121509402708327615711511847395548834080152035456645549439601555946431037395291781071613571882735362058248716753398201571723928539464851627600907576352134006946116067452064619738953909525209933970091025982939144293746130629182046803225621518957151868794309876844439630770026588760345714990793080478714051421858583983334275289260932985341811440920026695880883645075073825781889545964987247129054741965532392805754764612812540654455544128564450105663268906987361737162714312516353796091515822982072228920445528864161351636901086162437436905145639879530572090524229786607803335794193341299383012845128987650600595741355184283323602260743307973748487493767498249629905108430483729008128760765775687399442260558763547083423036354718888195347701739439267399765645055656953667671157684763413071845480250636270380532311085787410327940050261278733737496061759250058240313710788373239237161776748780241661312796366094917468508446374337999400777032647158279826529482023226158563677690213066882287338879715573317382118964340496193975544992618339619660303091703903220754965223767307120561903125449478326412334574322704437214055331800667163030929653102663121658994808911528068039931726219729993985822297174441619665679152148064438115556584723631525027567372703361756021992110457926295884109992513372016416848593689338643689864064693540818939498881196512626223700749477310369127611782802601135970792630544935969595793909896079175008004773472212912844849682402030831706882027973562614223830701607155188339207638918771401737269628181131271019140386200947261499442906542839600317714679100039185576514000900170819588807161175178022716974903477564536495883040429582872141285697431321784485788044512952210780169717467927112720584399005331792394904015162734170260084926757393003546473223694278221676010943485440102743891659859863010159399085211169864064500520869436737909710099556344835050868865276690521270453197290231786494571832260655206641654892170606222559882679244735559342663509055868154274007837562778632619407141524433161251774938030607455330570946606808345894897302567747817629514334676807810163932168646957393047920082739660193839111970473293899767507808020208611575051716049956173717179054615769801418218028975857311526953880605916283900815864286918054772392532653407809887209565692139444490081853952809822774571528541157196195054500566146831727959139580266865576605089222189404123074302244030268062499716744750855339523880848381757227517688637492351803827450803024890695693530278373829666259757940341256633451316124641552487531064657496414268391811320106350697822415686773755912370159469042367627737918892513118596512604056091688163494615846284975352229007361907121853058657948362189460163387556922848536550853466875865964917859065402291016904277825823718499704728242205334063093113910682902588818111083671432080495613798724567300302699143235740562680135285906197449823976782619241159157767480666078925964446083969192447120512900142871568226779471060194535380729779303626185466140281459780015622277268134791943982371861754522938286846078449393702942843928915735947754419896870015498663554735070416448372922503164905290230166277753400627479648949759312786473998994042670762065288265677748373695174992238925274357268350175958917385056642786166878853705383151718290473192739309566520916119008843131662301083152307864476109416671372060667413668038945377204321224042094763601641639684958474750110988710001354889108913517827366366513020977124999580926961635821812861570200641417429791769693361547570573994768205750879019753061007753299570620378812725368200789952600530446773620442432419342490516539378483688651530594645229451652704465462059231828293842428266079119845003780284062200977488650781565651458349284165925936806429366557420368319930241384907220722666164072961212335873006425734946397838785767858690313158106818561519211903360206703902388191894004443311523098675740135343385931180752555816159494948002747479491973479289411783166952167906155053315390114431886552897209864040410104222455311607779874376332236858812901825232049511967658010328759000943005914651776114792262685621743461249445559187743048572943619614239865176468538586277634037842735088331612684558153704038652871431661044776715569981239270796047057351224112928161875243743326574020807156699404824077815898045287360753017673963951215560767851044062044423518402340568881265898949149157615683774882498508269206071504518122392381618743882295445109903545774280993418323296782614336326930102022187146904803301508247523555684720708914349809222654720378546486585862075050210909331056831037738519056466697729072676736341805353180533202433133905378935402065225495790434808237723220067982216190553293141521795086924545879334749639195378940626594966046426492231560108189205377555444483555478066541948823271494968929008442101683644524272457054991093160613713231643933733387198806640773892921459243935745354783363997090562127516768381577827831883792665998995149588511173506002115796114702803971164956720589018917648528647370099049056409431187003755155395998586939758828230780857656014359824593919226885962290356502554485573022848058709491153739003123996293262337122346089464476699242409290612139742158149896496146396285722403486964355392725986894195323322187970376008514470830185685261476298977482817316123549527157605026409672702003033989589380014880613377356483606840422265060861847302283431337646685366857117832072430078659246787283805925595040518881712559284672389207678161741443088252372936792769958971543224491565018133742537240990953781888577156434418745709640314445220241879275273837438358104573855282968391406887952496567934949130545038054954906932467058515161320310198158522402706419446286462651135183871795231355497103568640867905391416896946096262477047438079611822510205360786608749872563153889367168529327591910052492411642952617160701188590288274136621142299096138507319077766218559369999840486198631871515131779011942454891929701237061561627370702542572784792544354049333427263574978787923735893508420504851232077862884816433667976322509926378396738590502329850496537577087581174224642002091911782575997578773071965098405819620528258849968939998365657802940182209391600345300180247141967216410448565345447209987148072568305796521590754531233528493374257403506148509783174029133683196585154135202710941542661534746286938878102474738230453599131319652988319536158846679923984347935654285069157723039740982093999921611954853551672368770471049104449154604945486616593787004576026326886095914015014985115739902964481919493750244734990483650447636320071472276533834898591458058354177959510176209386068324681749271261856639352225982272660219877846354410403668152325019766558869967569247705569716142111191428991193128877309320740339059973841433106733070345983742336123210845003616973807991465971824109949323331075831991209174863543452884022593226596760306276806638907773268442275766090117328842628649204578157055976459289926579794773435362244152469234902179711326461009124802909077560072870509577911944853665432745147928322756949096548611320001073980072850366764717820739659305372893462590426708735916504991378221993201895653267127955122366673398663937701727612618602123661841651113816483482018028460167324766865691243677251450254583506036039252056126628069375863951889002574780210385999249858198258049694740908229270666445663601655394286024676952749393612486058612683828982019139402420461465011941173578050649065434924059643637775080601415945909108075663702249549478339586547999000322572495122475717513700495217038973948650858292864007721503101236206674786996278862568693451701277306648561987731318560661774571983245772760732396042008545243874493919742640596609527897134217959753714017588195999954509837388260414796385310722046888298802936108630491514065865934808272945109074532339809966463709706125162331089047008137423013570179853639671509802690341509750023526273719176987509753971400488288734985358463574229825771060921764271670512714686585225729137390650074611897111256265174450191689727093043707898806387696067550804814044989767851828348262633802375237574344615057768324874810176552528658216634538708057912587448350443756737048694738275819045874598555310704037503402070984443020003810423330195316013873333580266768698593965219998110254502803991866929479239636942141491454724480810373616253857817197309669661387183461376221564802214372521802938865753800082154977577537141753671471830126403428033394808167790752398229161200183602593735455801935462077454897230507976415721898341887165352193928040831519761787585937271871742519959297371264938435985979049281651909119301220839531185955244391002378285891424320488770116331400615913496280033118662672121488094994883481610561873079180739954237543018131463469036265733365865837982167986457314479412871579183627564026597300405615589372831042024792889193394854920564269850604422600473008783052639914071527562818582551583391319627456392443722879550613172851899521481432661554345893917305976872475849205665540518261961490517559593735699215540901328450843373847749551977855530546010711667525418727452977774932104760148896666613746210451094515853221624766504995026355583694239016174279176970677749656114986449332471134838948683734144019038965080994055995117503696386009431032133701411777104224147025616157033693473308727584960653271549892611155582589918519099588827415132062050585507119315570568423072246740340874622566834319883304730943919845157227958814071988640827198625431200838918321077903069634548557957289170329224937637241000011123063630701793151060887860848934452189071162079563038126034912332095477870410269492822586859803780513179958660306145974886828654217496808751216673551463692755069741291603144472633489815831221614983657676592078844766840461254030137864643289468887264357952670319654992040851088560881325326250586072784298531000215346076845900365630963960222535378533811588852794339140708934962015138735411369665418470001771105589603438978689523432281412471277038621301319610762037273282279133927292693161598251300505622757457839043658990776342942446304669339044180484491612813758444893397496740767920523143388494199563078402087575218833198669338969389448960873227604182766343812874526288462430816498000435225879130858828642869825748277430457720822158188307825405558572561428137487998698094004230079888988815223737112355664300939228363448606253756309689792662663835933557243352058981305689400170656441888088347028180754403656994361020408567296054974867329912437045096230847652067858410968255357664948607652998939323279148343551968694264060917263771384013302753096521759971858666482534440103249706642938008472925558003104484241560258165580726464209287743855475883504257502233701529133521589004238415274957018431319045006005084116273331391867156689321139526556282381216290134979027053997917616028831200986616002576433768265506297388870907916614704247318457650752399580950802313130257195634217699774055267959589230728399375643266905313544987893143125717276530564643076007188039952346881101363702853980333876708784679367966489673997543787851673065067873171720783552842819376052775753513407284142397572317459266558128154039678664156273810618467520960579749377956002554841965506500297248904696637012509944124374931299552821301193663238833077971145263765911691475339413917947324549710762044294840311291859223239949137915084732007604302495716673803420092293830397835102417355762312128257533692472770905301767597931461026335914775584996432471214231313466412779286957397500420573361220124995063939771585465447496949348491918578657187429408560362949905361370585221154644160735884724029204620835894692467437872773770811907607114864792770294792023799817498167052886061593320167779002319233776593507995974284727244238921495141141378628720371542499712215030208958905759331482935374611632376316226836947529588697171746669713344400220085705217399811602883547033549648638279213314076116516114282561420658211402030324149615179454619056784911378677112412652548318900815482896898482224912316206247166185419605960750368041250799596162570078972584823962132195986995832847612891113889990658245060354982708695627031357345220408493010887332731110190760614307193550813479332757333804937560413780222220620216938180016075096594969708249668453629720787513662438132431314023577670455453024999009500111564171824696844116119684898582611044147462601353439848286421263097780025875494938017163468707999502303037146048297317063767679113818579074963159100014504378788216056449546901920480333560918581910738522771166427280328990801216722850164743473763470897058352665529973080933084886281559009321180407021445789535948414792409123927742700157143818172724718581568740413063344351010599330738968636108919917814120431083773432571099263589687404235431870998936668964779867208493325088138332403318636263532729871188754484244936371805475356605709835619146015953541453244377030633311397623209719470797778286596894147628872720542367922487651268414730143947559892144774306224448300213582484299432502678928253870769789233315023989233109505913755475809880666286385840307377863190211780461484088787412444283951181659183141078611540885526838303300847654104825699969485388956526271116586018837074940219218882831409621119080692658310503321086009465583291192346231961627682112287101187340788332282566327950774249813803876589897886301790706271667251794187579924698305718731918689893998723112199532159684828674381459460285736920014050060883776756336419398445673150595044828871072605756060873627472602533662296513755439311122314415303612772345255305397264925441829612377257771067010237077182628663619418274150679431953344128542735292751837113863822406432279211394869284798887259212239054778309439158973083760496153750944476210535838036136177478915987962455105853217667458207376546966108427506797959782341803661323854269988358389237362780897106503288304561499216093290704206757880190482888612078279168211859276670329673641689861992809872528143920567766333538488825212858326917432493424561132562985588491456626222624568398603812275385978958022715936904119410099442306779191437821588788865672887444100739313346076989066755695065131006965934611412238692320395703987045600851933549951115668196748715855665606549991072592410845299767276795611116290740406673014675317483922670210872671400078653569704361600209205721399751074807038992439854478900361827166344972978630519033473601041327647084319086424741305499344139923786907385716906532396212718722932529606234447197332015765845264130306928881296184503854819213243167618283597333404038124876716633322541551039121064854969969607698508882646652448560122008736612526245040421430644782336364862375504768144818932848192195003893617014881471323027952196967830746453607220967576885723547446390663497358965165115659073997317551757091627342259489861478607146531510153538129168859687511148005325674153404834580061312558455182626922723193418749802532917445977932598240558863253743992953801029237082716503457220677172654657454976781923405241310066533284828958801502454252580853729773655254743228762131570043331728098691399996354830319905891397086978660473971767150011708671184364659067982065863605879727357075841505255007815093449730712652327469467600429899714421100141634871596320267533251518089228572831857142862766270782140757119637405468969232074212094194702626265926934419048715141263076917178312905336832708737463400791460740109841273070537376796901849714430354665708405159043834029486147221136854150272161823914909895252505787179189340686778471044138594686190861480123764475740756111113389675463639386872872590090505482343723530110158022791496113814444861849242545362121819880820003754328224531777517514100347414203702015565542028804569599292520972798941901590912830684788203458840042159423021770737957275854641157386022793457390951875337639454573238496283716143588924581510619691501816116818965109529627233747240762765963353993608919146299149658456095616414785284298844595704573959036750156411482579115471902131152398591617116116762834665898713144416478541971091147968171033607752078579373449585012985250115815750567594586122400033645644399220181409152073443206445817890586786776776360758633147377795278394136994405256736251838534390932937831046616223328793714360604768758405644527332177527197465102298610948672685181386616441667246850644554471716699891985050432323016991010005536551956796938786876631963117914297487061466944518159475540601901236796331807136819444620240795695162679161339924135554505109272788703310590920575947336238173243402585908833572428091734326794967981784659193656721953299024644457945315475609234403335495760083402451142538210229759485001167196177126317730215488021934251096751224941331336338795771240814040197088072122657432333271615594959580855606533767693790056049042913389960347581610485302424555106446698379495087691852102768272343892620237885219064966624494032038328708078297161246605118094215430084075577878219055021389577606609958952213565580547693403479174341094537283020518822092780435834507817187792004270912174295249497628627116125779652523895117484470729397850280684487473450583810113226661655727389369439833785197241700683194789923113756190166943297931304068070654706900250056770789092996695801677101025544220910983719386441871080361719701296362190543670629647772246552913452719125617831889946918865308364208244443733388924724315168074178181855480865643229484164818331083193088532186866025242387161965643819285491628907573470971284201248416023083118926324661891448352286098131599425674467272759326651964690764395544008534522427946190279686735983370517298797313224272574587040072439955677767128883173425695401221763750702638804989842442412183820307555250277998511969309471328214483618115546583835125716023740405024001530345624651392199165563848287254283705131146485698840017679523248596657503939634142575288475403720742271722186807071551148473273622122810271176266972023143748367618041416630995983664390727715228083212758744256028664262805113723282417086577713209539323897640679265581955193341341349045393835802955799525048560550793543022513675060070352657265106549667104263631460999382882252971257093543326354877703299158633936606053301448574129106788464703845947149141926206672234005571433437156102464739747857619768764403157723346800286860546705853175259308161547142004966919082430538162621206165768310769808033750946981679638630922719679220732041550071625830769984625507346403509527713317901210271507643432363704239952747169050891459916112433452612231732297659658390210647520655165350798114489797828514039454063033666984442264411678935643612134622880607764332208182384538368482970630204505598018642368190937711535825826114370644996323798331616234264840286989414408858751500239557517878377114145698490741112685654741608279752473585439996284426458086251260866349381483905224801237136046456382264390302741027081130390387420446316512283499143812838253616393241997787781812696665093263611667704745250420937934034881078822745782056011948864691055350027669072322075537452330695821840962242738597758851902407651218319040617708465636054012922753201216075263837925355796684767613741227785828858884399454982180666100410656459733745818436613616967584096742686069449312933359530492885544966053622316324926338043306756436271795195964600684560763904290985466908861543797520622635837779026426733347229549645361632832914541498143526247894471590792854396521212274541862177405515011410301023010216603400488057578191174102261993589561679285606200006449321599057478866920474873032423578604287420239920402528132118168414787692142924491188742676421148757664354494542568724387531705069678270940222804415703818942795015385264989637086627688669094178072513227481592443233051806402621838329373176995768248407003730527053926477266399290780515925518633939300186428880003320537993653579604817986274544340826196896345578565380273746369914705034787983106140762080717639410005350991160204323050973331699299950766433683530114070073380102686293671022457053947413947740777239543071529598315121881162211790952471110769158859368487269094942346529869898661481408472249709737556225341824622015580425894061345146898540571237843317543305040285041173223227748247442575699868399234353957356740996236641116388594441864703638567917642093079306281318064183213907227411335523737878946438271673489980769126887130155214317916606503461443120182183018737122245294601004159313830496366077735692400117257122804091494478918170697868255044496961354803886747727212240249923185095452653880690898922239155586527021728574139513854011402630437639167578925166372417055283173342390763607054925997060611074706958822939286421474087486564979937340108660383234153281019166362154366161216557823057361735961517898764312600978604282079319985124777370085699090118539628848654706603105839434389445741640643442875539090914668151727229947764648077394489888641844130133032986211648368579254126350986868711136777220045049929324407076161871173561605233367492992665358787474067194913991627792685521386909876647542746768887150941070354385013581670857124687216413110962383902416540881184965915210652609108421046985059412071638684018235816340427433050236069636274165369324904650376323255927793690956328766665168825392509739481033156159645076685420905821628763864359350127724822178608821596392257402316746840985118181860129259921916940609647859087192028146431299085000625313537853374649095321633017308274951247731494880007482291865777830456961104920270173250856688245277280003965017318456949869095629049543786190734256131160439709653950041305021982437243101768738709696399563606590262734890603888036077905900054026591072957327653829796302623731542962897642115345095901248339044973140871242838062443505780247994530896874700996621736106806799335655193150583180451388208827886039124817739532385925606665707754887977850322313729524223857847240167406587343495754082544857664352369512776304070795897955598347393011342812029614041366443198484232901535621638442905783879320669646021090961504914554435157109003013224006239312500351529426617707714967704125466288694674713121308953723930539999330586118909197211872331770277485829096269595029100033507254361932781124466062008341251891049315050732353228385025463591131419803674266646746598105988017681252661799342508398270930565565679099899489728306472999477101047569947842972098616961810952652580954261428498994389632928576996370136906995994095147376274873027093013270052437044962692825090898776282891856116379962143132524113876184764094630019615437468518641963920020765311181924022891578677793434689123605449716062948312289415650197939610377247254123077314292020700893505717816147338941779109565970314681228756134131002046171109957689633454181819387723689829203926992341287279272022114455433931079216404046660439307341011361346332273225756301948064768686603756873459527821733440652883096425134439403995852665972043319350277609354162411416133488897077845665382037335693610068247018587076456591891013982465292819308184143148716510871369248137766221005903664186321604679860856016328006129831427159024560585000110071997629836388981139180110502879691178484602944786580787891894596142397937028894527592389805534861627832110211413875584802961000380027485810238941991354160110466832948051854520683465502052519293520611457939783705637905061449193791136914582002936146368881447481226417378536645839088299628091612480547858867205843454134162364858055450664735958766295766680938175197346240523493964537367555074790786871619029851654087822032456308708737870502397859370412545805223931640468571516230219326369702552828115360488961363936176473489411955607565289407710974674014143932844832379981403105314705301194510822541050302178961103155992198131333119774746511094589210053537132619205326990723077552389771501901793254719142123637375369971242713249679892710756905082878198417258664319007430851403626779844645030864250053077405257545883786296544473603581409811935929563421161364833295617149560709402134573192807626717520531193822113992090609880942638849375328469555634731738428107603378849835616127759674836361440152971036119574504897512108476033827573667437470242222162036470681190055063135182485025836153718719667575072161349739500838679209904843395546382682791649415842450994036904206179734097575317948095865492489942434477953589594706645417518188216374630353798029484040889508156091262305302061779886518249362308354725241544940155725626055326939007966694444641025608140980156706156971825859712925236889196360944915503417145168306122457675145090222322102227876254210286363141862342710100261101606401610417222977583779493179857244573268370344659820629529257419764571226377561975393283878966546056176145294324513279687597130965464106303808018534228394195165545079528637726519775211243878609824378442275338382037533260778131288542898803860742778589172632161020827446361690414638118579567695895173140803811961280980422031446045076159707922966574600698417162473649195109361085674042500863113896692732084354161520154872106233580547754854606299086831413854371006839601108425373966250114561494235266881052261376016449504970452667479911807042339812115118933676885962616189286662911578376605535056713030201394775844092041977993012180842279472744229507944600149021451458681134909005894063341259330271568467356768111495968394154892774997547518887591988988681562692818182583032850093567139013937151308112851599344466248625523086374036140316663533072971201691614545344913730291951738201140314157440427242795196893569707851134592668108883278937018810040434257104140714809606456673978574848412519008633131328202229900686438152698492858931020887360373864174797597509157065107503819871862504906009758136408259707181266265032899582881169282042837526877835839903779939837485853610130782880154806071960348661057823379931126395520698463877929439829037424199321579316338649058110511771758535716608424576944160631604112113619921879020670076208421549410035394971205529363740546281641433271958625543516079908636227578487778280792070731383120695300556213933652156678150580810159158721611895698050983241427095355704259950169458518532682746129149002109810288628406211236179458986580829119483139060174122279975062572094587754922570388294250218395624508467911800761222171266478328122103782822195302341409421343478529324551712494963647263823392629114274599639897098066036321496021079346843320774810225671322645876408056131911319676298067992491368738425792744370834778126416950585910065525229320441661667689082202686375227845514184408388567885522659659031930243536185318068642785598180918829074903878894174159192491533751854528621065321017279694318348613147117007808309840099073759174197580047079202086837450819464285128515839662527535560573149906084817743814410049185185393905093013413070318839300044402861745163552248201391546455511055749716179419181294953893835895034159208844100783205484530395085153592005194836030472452370818269113758178959102333830679134629020980698578779750561756988168764792090250211922113267623972777461394147970913827366189098424188069319573275024317382852674756758409398555092535007286520103108190437374859030231960321464188634321064660313832190251923727750886339928339267847057494032066702072781911199097370207611357068187574364478060181719410890495666212620241638329304934631038321526224096709471041444107872729062226628975514724563573127587331767398073366931647242559757285513032134785042922514964340753660261635519959778137534048891172406645010615596072211708443305531431530936332572946115695017108487831910747549526089571371833892881363759370063374233761694274302900882620021263692183983717345669040080908135511558906062169497542290103739715109354077955423121576653058885858434127804076482645386331376815364528410781081075210423860525286622968602744898691470148099644310426964615608010522079825584916841299510682522686198693552355858204514358640857700381418010929281542980669822008750997814572186029580970215358848919451741804345082832129188003221384368459793482978167367236766441368642436840334027233048238756685776685155725827690807686193535648834168762686734214922366185708526100382258384613498886225818942326788121672767758130044853549291007357933142907454759716590984851692452838207894733102479544149880130896388980055588170022840161101765877565473567600392902770734226040889871036112265076680210955927507726429839352666417612778866306657961748788143371652706898381724972764061600606839126873963791789972985787602153137835565344367140470840742661241249872275791104506620798470857829971319595629063170776312533381061694162907441665542719771947104999111475251706142319467693592408154243071343487314019617990530210422266533677181703339901487262539473698137451807964047715424233937134379388564470610229846079802254017048451684514603415755013422631221172231672253731577166239535692307887277233672854963146090820629496975374714368028081886943800578290657677479506291381542387627319683890304986543560916265791894421771392930596764342309192238883318235460539872590342236419430326223659044682052403273759200687666432910524438778954023597642568739334510192946106520353706869383856917144669632598729805362829441291755402353919168343477006824819506730189220519529390851146079546873654107654948363428915457675720785279722721437565780329656465350123187058319016148237586037369979034338507310788109839278252137761271164809060003072928331221289528661718363492803955990041186438709261740573760862477237681406625493983240640686865255683091079993587762981231823049341053921597273617149737403551201543252499949164768130410235688014121117660492672847866994477114586856498987000697884992491265131886945804264958804797630446758034439719719334166185974900373073248456886569620098022288402662861143381443745660807495800233622004117205336601907442253333467984089508945996752294089790418072640685374044696163966409555335143548230827930293216955205185556148681677781565752801341841521868072380719251964398152263114680947377680857836503645880400995320040311710778175008990199006271862832764770674606228231917507416452267041849070901505522625382829188536613423404303442033262016110853653697014039368759612038330532797047457022273757787465297455647697014067288282764556196360029019012505695993628736662560722898289777041383871805755188604675734858602365833709724933480527938293543817281359199740099545237281483664972559763588130470836663696882881389578969712135593932492639124707128667050053453440329409330538134046686096335606010844053540083552386330056742268612199460052148998086891635370714703142943344622068319134826228483594785176869854578697959358484288217089521737411622955758986047160949341125219053084512204708051280902624355861404018473800291180353575625855515451377351206436544143347404947541445563472064492939150170807098975307445275175451778116918376994838612111181691078733445368804051637491216424063271656678669953841152191415718366596584855084590178602131362979526375220055577873251319145961248800128990725332727630559979129052979745242393940926139290036055996996253635863465018061895772830451074148570923764428522541750996814042447694699780333526706101154943810284770465045724536550899396303182360432094641097265847555782232875952430541334109109319866872998768707134536446777198955264061317716778144225846114660751783305573697373657194151311034226284963466894360580687821767371937681838510767595214609541312789444354352564153518599937788954521798863382624920130397441575386001703948241850178795163254790866667600219800315626040557883816064078605404281413241356914816717066147305937542356259683970743758007811738944980937013713098784078356763309691601335950636841846552876542217948025728172726585074521851975294330348944156622430024271681430541511870466100940118001285131504786461524992992835243430362117450998014084422814143586595907651292650115628894637217284086710845786650027744113475536405588022924754600568811063607852987643223156993893872781496211928720496270472788049540624419560121440596672940853078544281605078038617772077979435090363605736718617762132060881129039109380009348765628348037150199210574440779891822113677745007900553466387685496933118102614559343199805381225017299103487833491645194343269760782222147880825255435727383969701506590415531536373766717062104751807467813699940472257789383194380507310547267917545377146860792356721832066492561637465816264140611966937433284749895457071767585631081250696258143089132189358281602214770509906202213900700269552355982005026531017083249293633921868352459694148084531861912188262608924254325046298251681665915415356407216738488909215609787915939265506214400623400295906870102283376230246324601766346600750343062646018331585384415239761295102983301690489899572259793725977443858151799366187405818360230401631006877855758342953104998092917389664517270196712094281486661582445468093266590118097955729909077703336102307817865912791719355416746073736920563728099975775046933034018701781082086826348851498585541034159495314801562051366129709586759413253431656573312837376255228277825746072163461573573266833189026691425692076760200632312576106645285986467565103270935129316465408675217042795506105047754890014231900028563425731554723556855187844039485983793703666579526493385276466498038940855660014355036019805712259546181697464882081111788435202926484421208041034001904287770122311588560161871894738951242362102744861889429311055025853347287117361564094382805808360024489531204029830780511292482849238425881336493626366012296892894140686493789315832990025585421719138301607803720218961591230421208589471078873421633631837620370653883615257453856890702760045121062975544021722960898243603889402613440883016039612097521336509682831168164072274417535422352834546173480832427366596954103962968060901206750644334073088640794240876586091100256282730810549705891274130487653558217065169638528501419158121386308000939693602160627073528600120637221974022547570422057726262814404533433645645825832744249196043790542842027309305122660395733628401176853794782839781431024508079380981677805388453273254741117168042740256643872943762963132040305984302306519431218439482057945311022328230443643901252186983148135619335915266088610120002186813332698321747271480341221266374161014329311014774016175745316655734332146125221527210270857060264075781478121840543066196450535335767879663310960660589104709975190133868839954764026532689776575334187972016070149040859564046215809547626836350235511808012508928827505026733126374830401473490466783571870101284325826040732047065616498369085701297758844608467224919904538290878289163181799361443063503632068946237829769354413072157414767086015073773471179284573197472112889437791593525709656953438242984116364862870483995850424551087864724838623174867364204934034235760201161131255966905148776431159374956989373268819569772151417315672571273342383037175280488938766116154820332883143672685301466626873686831698841522816540154378348433087700688827224607058960388225730430757742983731507889588631952598345814283251478987230239724064344138559109939898943559392535897664145538243335565613259117778021745032643665144210994518208778098020025465743453367718716338140754593406412144631112351873541433564301277639525224440994296275528606246058610404256645700407849113563199529655232559403892568069977068260476520345939590706970015841197737409418350571449284903562415605186849602000825466989169170391041773345183736485812289108276188033426594880865414316575236951810098316920386052614405839236366952249198375016114154986117426294978028815720498346176129496231733189856525324031592360136418583920770894272262732298299881530700742110406144649942948980692075060257839940165185981915294545912260537784634395000132042723779035277899281760004649385583562317330109197121178488611023576108831804835887651227247719983214243889191605957572537573938261573047418817680916996237411815378542947413706387062768084780796614159757338287847992814637567886256984064648456872423384717583496745023943611064150994454102424788107726833298215256053439493320176595534737232502058184506191816806429021122467236385982614625390917536469123687619949390835706556788212262335048902643948803295724051525063034743769768932373569132187426353850087851354946742965090181587575464505512593214706522558001340653727103114842022384726411230005534671812349616512684622933073266832301159979556837141068180113274267224164010595924205816861234440525462608125971530689215740490086668884781725984450005543180327660737234619609219961770698261127891744857014491205751742940908586649112929052233362507587736190368702385953174163346632979480217009879363483693166585692991759289745567837191264781154057036683249859397543837546592896127260308418528228151190083590314575757045673654046094241666171334518981292656381361338348429067081399686300398326106237984194212344665272392883130980253843700366532170721311003999502880681454820536440072962107402545658627550349163810906322169048131967221129111658307647318484109525429986812879758593042916191535047597992219333994438690564411974715202733309981626300110552028920484672980536253154862080316112545860790057416366028106367512695161660984235082974473128564274369563588201314583861988545013872523613601671509364802536264227156971450851602813542913601096720628238360243038214069362796819310311803187927931218406449867382724482473484037175849735899615046017556972969678094877024229049331471229194698568673288700108517770722990752265740939142585555319182872726006482588487623166502564775753591167910688738360113828654427159318444552760872875784785481470679168699223495331487388876927568983893166380533579259788141073824939527875136971285188630091804698088937603801850440707084362092642549730961985025260639354372175882844242943312126654364683396796520350085756703232219276927158809605167007855692186300899375205098316883234715045534824355423164437671185172044144347969696460533696727975875827244865176716521534890976016058325048754213191937052877785654274241381182651661785998876578022894782164291704643811078384169057231242670331330855397743744415416705774045651221444450745820582505237382291394074500668971979274789700003877764099406188556631679691421340929536874699955226713190157176953853972739726061450259045211527559489645806155716564350564322834816007990466630111165599414459961401013075015636208679578394330099429568900423845796435745885955900045369972387994916455526860858793619218577170101541655427767560042677540061239416326049638826810921696366731710565533962978148682764983945962241069635302258958924314085071916677623900922003852762935730774329100383489896739655859284252069903771099402616211383584656505469090823004823113635192651700656770541096438526406016670578854880907481594537455922160605407341249238575295168436972152623297348346169820067134386211025622488607311763912140135942961736218573636120530684164294837125608192581561212908424926454768131415194913802596156834227219980289333146775580152178767420256718927670361310824777115584647862195989506945348871865742163913223233460744783894763123974927568097455403397483477684484907964164393313004698606447538856638653888715156084518433295275214665140131084767877526796134884450237772148884451984622508859935767894713820239868138693813504880573851498918258135512141037634261961119435017613047247033627211675877643473427379311453384816115339970713395453824351020272302127365422399057102745104990559626376083544478772073846606663524783927225677402395035816505937489913733326350048591308474733288496285211929476287605991103736535516503890105813500853414099936729582470758672972017734619325867780508765736034265328121611477647974777535011191398222226118768888821187322435101969976233562107417059508129434963533697531893573570826276278079319905326101226394741828934013116193937719421419961387532502904198878685668375542301273721592467469745277943959170856774928147969333854747185511212030468801070177166000785177686734078490159529511048405201157853852744317678314179285244906975393899162398030159498708924985248479631548716430031934790368086576011806947348180690506591456899569867708644998139139947540417628596183479390548246221844486074056204164755462682901546395346959580461540359798441093642024621684311936176840942093432792403562400891624023658949041714520849364560209174037355215507909513306396024378582117639096038263562890266751945524541942738782860802810429637491405467956279938797964689656938608006240013754815173143862819039567914677871577549123563638189831477234811281370124005333387464514914377443107008427020924659775754538753348501238170417374892898195250130712078383618970093366042200438383763207713776663749240061801422703741006295780079630261032696678740558987821059114917659932450794330192680482905965802202295026688567662058278118050480544374925132406859832261811511864105372061161197797652175119038983801894845565598507143424802313571560867769287769701622347174320714151428429594435052754615873809685200737006565155678836233283544773160989368154446489077604698230979914128869984364672405802508856913959258498404604924661092509561877437367846967218771102421921729240153364108175428736875685359801855122876137598083884202327054437437076944634437381081037877310271480235297649307787869957957811762984495303120148632986469999766718956519695437643072834714687806138901829287557934418237779952770339113613102904859375103259395913446470586005510859922271245192084951803122997475854482936935458448285941067968064379436706384378407946355465931692604316310078434936118949897433949092188865518677919235648846540113144569503906714846166545974968378961358571319568724637492778417487158643076834723223561341963534042016194745125939819868680044236680094862055052479576843925261448458325235112127022658515284464381092884227496645032883068605299084289883371000194097711819053838633515266146268944228365478454164584032377447113659579703819383893233528621476415024497194420323026359084103585625581788035775903134400334538734842185257014833143277148065617754383036319338300350774644284509621822251661175415792272638869694445585805462422000392616592067317210784241756133402409906495184774929629827997748667676868913562142137996834634538849175669285657139366049892977755113762292555434478891441164928347616584571964600875282790527202031385544957781959968528391446245595809135400681722132340462686544760089053098847653714067717288896709171754957451446556106617440885492275444297396673889614272931364316048937900791855840410348925514587968845147761217722910061409358321772137399481916229893776340384298932403751474449594521091201958128586179547621786349643498627372844207895267048900760484708744482261224840090387103756382919400365154755711047992474272950178306845120620945288907478535649139884688733840892805401847087483148689883754945294177913008759526328208399601045237204916965005460911539569734377907362538114409368920554662213468931450716059670016805034904763070878159291478065977836700621732518056415711081713179130776978526484960561452366345243271306082682845268225074290086584719660224057442508800253735393634426922068075912227190092945353287917815219764943147637699231795614125916799442480008543475993166506029124407188528678444583239372069563096687435612065358876577084636624663659233216976826635843682746349027261776456407542793866656119066495067312618759459101930514333884724448170879624603457320558150868043809712469636499829000612982635826837950208011735559391435700242936256650145557008967370838518387003143621203369264671875772938606860575980232435833774955533806305686881523448383527840338623615262586339985201679266378383671688137057868510069957460555439298429298458551117164672737738489982903159984699633445458642162445732626616070757069589501114018682232496882259695430182229217515863619261744211590507309941389367153894577771145645696345933624036229556029745366176768854214863740855307786519119725162536733217117100192057560326345093999712761174399571005417181301687634560804321140346695852006884829964095906696418683804945682011370002119937461163630284067876360016081448869794087679103126493369754441062309795984211361841583046002981562202897926117981526065107698390862717341184227145045686269679080191083558340647963858416219846677111090672905877378806969636728391137024995282823684739889113931198585490563127868659884314459690759935347041350497102262267732940118770032543179817590545490429096910124007444255026760851710691364983267691846942237290035813178898001613351234107862396385242795548598438198569012732250980208585720427160106593073429602131927044768014043889558360082255236877681904533132974488200036363465065979486071745003833502132034096728761821684381542744289989774501354017713956555230941995564502064629853833286088384533238127332678345610621682807517260590742204157782896928259455640027852645667490212732226347724858948904144956690236102773358176080384640380734072763199150276292624759438163544761296011716526117513131917359204919488353813978977154027847011608396532086397757983980340677656158789144958845684230394419753444884354769599764336728555690433099453614347168333015551613014322270362595052787988463373430599930940607761377348352191364259619849621356585704122189399758673288780335664229154833373018721141885365885354759154454238761195214983891196156743274089858449750423316740186035017678658704442863419611707751231776931937636680516898653363497793255079638819774246652069305556359491562334185602371278828386479014274249628580960296292677617944395461217455813583954957481274179275673504089139907367737386134984714441853333322631392857671209663330031966485472358499212661595283421524193128672921390301743409860047142506389398000114293010139862679916472938416724323664013123502519926982485171813682134205513636797313345148478559668437574902524497144227933406336974553882364217719221272188313962511905008645182498109781581035331121650271325368136078821347329760125992874873558414563517642704219841441289773480579662123861427984811585114873620317966161498798029823406231650972865905820450485281817424986752964287121329883938546989147307553525285455922189310884012326354636204539539322052635919764837865735624491264212976942002636856792969127283501881938961647605018613541214422655465611020878578129032780656858564360696263084164871901822151039556732843874793850056035613681856706732495527945331897757663205580027907525187929310202496097299536037779373643969880637842926860678042055974841389465256815438053611466486528221395712492261466159109863960937053314919653816019807182572458080416622906864045919221975733331006080038188782363106581046957659174346130503071468905679781869540196672381124266109142293239136117023169416488849966020978376373539599841740889700081356141930082676593621178845504654794101010901610658644703604618858679585292271431441870813009473346283430719428507982530974141357190434362235157759654393972931248674135730922103642128538135506889269667079713037339473618548334271450781837138313056890774111389972566032938161374351946262638956676100883651111174033427149449203934181294503409341231972293314122195424026939796386219940558933401280890607345627283913753802062277308112421153840831552590833147999535144189887874419740039162952080175907533174133692518979503364371176294900167160643415135541372586174711749429705200349068819275700717408338844558070127297498920491811123707166174739372665689824385593256741964743181977345865486144369504438822185739581630483044419908928126409444278686063581502073789307404976004851222979261719951332768852442296209638702828097424311003662370243194989102459462745947035725419954084683992784230354863834108640955699693413244472580916820947738704336444476318998455091255752674781296764719930249755476938266334601149189904056154306734644316307654107836544300148829804883949372700199570312658745581381221579105917942895911862454691210535728504714458984375581131784040509128464602115183584599183753386479231225224561803877758902899536060506638320075579569855611240768344580073861659216980610112277150995847980979879541818615041155403801089416672618227574570420457534172721874911395049869327552396197428800920404039004975737588870926940263414886939658383490312867988996144717501244241615414330412721518101877459619120768391510361652726723162600820052675985446255265463636830755912489464772229714127016959427822662872179314018424480492555498290902627413699261377268008969776371785147239808429802266716626435728740955640885011743916532364820113368346598068850954437833352086417429795438301223974406184499145069649234663414226161356951689292804971772166540108043699311156385738377503228279080774245383584648684516300816523064174628035170112194770485471001180096248461309891122910705924624927703049044950177871500032979280854522124658034831750152464800025197972092365911002436451885698091342013717694672496226857437834935409429968767287764072541171456101511735402543768995478952816850888216608172803877386179858044640935723294518768804332193697123141772312301332163287391975782093234418404163395769458383242751184395373041848883159439332882248002196901814310586838921127907699124290373960286747543790475720454109912032942092305172687846765043709788999872984192284046236605186979347710199144158225680551417136724631547457684243966045544430568853689455764060460696684269171488550601081834393809464040449927930498803646456631490478292182872883283124902216474276436039124672075647344171721660280969371320419924615361371063508017525261186452874843939851239558742070477726962325156661207822602896629546901126620922152014160605684160382230712210126862686381477578606449560079222881779483186560378053293226130197166744280800218211919608701494944036018718971581193500861927983455068211883232363969206990032115920732039556240193741433529788773808896769768872139894411492560367102089180251228044172106309057908894564905470368498768544646012044685268758221100837630494758920063363258114546851139070619301489638484484028410110651491868394026977310977772225414693746821334217867827393633820994221202345232600621006502775654633164889007055209788286639972799797515293105289190311301999477894984416464827348622922907184026343984744360955555631023338051477811319917470017850184346063196139821671845264990510883243820106793418313760371669889259690644169882062672513863950864193342532118719823015005888511196876987639322566346816383748214824093635951064421169981773162240299898820936053963594023787174649388653587326304124251621488443020704602031106339773475559702412911389425088781838403184521280788232984157617952597608241371353595221601092649169609793182344437932199205464020243242259264362322184666185438359521766739717150980151118761493263082320676379266751124718062679718388346494398236450691029974037792118561468332655634347511130255211001356990838539300152679756169652818278853143335879871663909828879723643221673471501436913790811280336246874274975212208195422361435729075046412060850482184581532431105719191538959288236785981486679281640020103930702656449109450209921550278151890323979564039357700394574005343241765850774066800577595627653416023825385191372468928305349015282046864813163035641926073673805480109074243551654157646647383448528165136259360461929046531785441135568620622033690833576904072898036707375470120091602574475078638979834665276283786773969399116468853526928099771035474693554987206959300712746547969345670216196226678325322290209342358273735454261183434785229570716934349343110357448064730660676454563547032224833169411238694049209988727936850146849009819501369073496344621682180620808986379025332011229252849568514597163752541536374162758450286611960803059087250284701219047685239527113578362378418217998116695811372188704584763766983928204820048338336439404909675948779911442972456869405527406927911581492533567178180006929703642535005800491041119126945234685597567656383625919563424231810121938043713525645358303096401058997056582792757195516697475351114487840475758405567664965482106834856548165581345758659153771356737424259106318210977899209119701984744038960061943311446664549251958709855201005903808935600101839631363446569299018432142771380748813399930422555603915160541499959357489613369967356930814243484108421451101012345671933597425577525003368444161911915105389151010193497508957305805495327173140960449635450284334454443167070591047558271850625352869687135855067621947786204671688499142702072776294295491759845078626181209265226241231112056320424501297898757580669860849814983290609508314151864398696959666998146169834506096325534877251777290549165850204239476162814642137054102688999073820616616176979492599649839352118660182581678137657573142133514968657375599487538320292017432927402793663874112707742765536676847235904937280339545626654105989198103743715223312941217447090099230625933132574223066803827824923323638805547280348179661099657724666626944142493028055030693939798123941830455923443055053877787951273010219277779103919186528075583676019715137222870278249622655263583714589037566586697751852734976214147942050957655854968584492874645841370055778613519314971510993137196584208206371593432805708055113691024567943347911362976980756793525027397417044133144366664772701972223079653995212244548476070496891472880055456791654885648168922396397639490713690224007035826152989158068249685711917245361613955964888269652266580060399727922353040310924306242807171555672725196543275136285263830003059474587508831393941819974040261807694519926481027518046179691436904269518403866291467021929196661952006600786927643747101531048224867559441717505090739961949040980005250109355719148958007097759697741364806007893856773280196890207683289287422023755154793927600952849118931190531219276973882339942221989051827043995360649564576840307507081920081273363430564285675734811867846833569588482282760366691856513768732088955012084088908296909464948163949056916766469301334312408123048419314999819031606017220826634638477392893021565283297570371624173487086389089747342384457732953385305078420943283102538226706348661133722820559838474314306522719282357049847616827132144159711685018906270025360835221504587375078042073735478239208798937854436000283622884029980938574511125671882906033286850121515290643898782296906984060199290865600564219271322777678883304225144978875700807067764439214210125793522655241718425404290537612979883714568520639546062921955440017773153380208679468447970685610451447154225715527948722492982755614406083154737105730746273129286430346504619245331016598855536243324853438423419853275022002147594409885928569908136405035294217865854756727229701489232287535558432213004222747187129114302579096550309421318419488832919907580077746498818137325653934344192756182418919596311551377216464804552828589396534768564572543424420352078056620376099657889726696385794904790568128231332102745063253850092195312837708199707092149510457542432294720135650499311155263943895463336088880169354372919771429388462683497427624044289661574031086421078683160251887345369044685711214170743509284278880675214498288759665843436361614572496048800177724413198240229222831139180589060961941716322960738302549116905947914339863736348832233689778015107915888303105754647333427422267045935493115594390881045696326924100422290218340709595748952077715539960318983473875121863695315009240600581288492041904681926061863557617093946343267544819455959153250441847025907521833753805307164127248509470152473766683057349351782580174426658216852618750225018682887637412883694138080843296592761059344535317773502190141593640148639234832322031875529056406034419778354974789036584525355920282529073607275579799983697119417963034936630653845114950827423531121512276111626057720058532082621548935592431651966190806828259283431522755932284699687892820828439990140413217424369819121738692477202432841315799678365614486023315284536143887844806514530917264936804015163953090629596430539232069250226104290858651687132416792233988511842621591854863345209846988680908822153864176218704630678684538731438923272845464350878285066337153282951110007140518968917737888033394904958903846168086753025957020637632626863320212086516472321757008371810758622812363512785725935563128445312419177297393840672353371871714832987738986689532689375515402802437493065836714611717629131986393563643168620868858141510445569017915681404246639930035916534752582377661973841371124341652544382496483869861069301016203234517869795633703071712553171028009645060037165582070054308644511684816537548252245576185650299477978769349512941428364262320512617773110728576174588795958106916592320848785107804080000065565412673880101513434439289294072788129207316712589799218342264806966002390785562273827659907485649842511269421596746271695728595243989825681157522109768447029311746430614878646408529005456254691148695969442008692141977727592949590430037998865716675992103270049534716840026582032782858950777708357994480071167234558171922691887811611054518082980888626146451204691097066789359959886246315612918473348852069670851734044661316344215291605125848858141155903413725164178648163885698038296337524849155947574720492368349856656969951718646573545609483086688076564071345316298075925864178344838555182611171124418412053505030286482836543053107039251369478615286528011305935379465120386751212837612778439122795145813448999923160720107270105240982868344650104753887415898060379778003890077680180800342383009602995443367778308562487107818797254484822793769759915289472990263978289327223959796075038338132306065109685498357146015628283949199002143111088172886614011276802799479861025549399938471467186283429190118689823775182107087546852364025617141011923623557076414849032113314016399085231354848396790641950535080107735987321341122409949435678160900061726383244113652993528230871556013801356567838748906378425312230032638755459943554009215495532966874379008509230207302146741312918817594230345027126231862893331560098485635202273549039305822699942599014035667052512803546737303009567650975173842457725040982922796177106056035454211150574059655739137469886505387255014317544934644251740218354057779569049243675550283545080853429145261139079422589330440500969232385805820544644011757441200350830834148272793103137828054562689106774582324111140571584904872352706939983460688178758925878510622772138396991293641277573019805968283269511751038756855380753586109206806090998482888621485713245909999655195578481456868775154879799283768778664860711349083511188899823180409880539074633350805824741667288263731207975016158007194532811287349502384490378750214329158565803549793072424261134516738443854703615241118334859943564065135829620957359709078653823639921155201695900478610853985567256249601354085536210139743077734794679775894673812873269748871168979087265947680566845890512142983033909674871173236274388688361112090173340316665346427749965139960066859683022716079198761731159254214210066307953456476133472274879681676348938277200386950807319392181629927102342264268662364715634557467588854133420370035471841876594040219807626118556355519166031422193474383550745802922924216949682309608880146769461721618756145920337479590580359324663208200269820124721640465170044958557132149265958066125702304738959900415931029516815059632326401032287805827431737732993756230845652551965557132707616363632891267719727892138344235401864911604654383908489348507005617620135888963314128007467726651270803529816308385341554696616574085311866400376873557953959927347866090796978923405797013462833769778080980569513887768716241477154422460542088339833782863660456338054138787601400697794189998376700568462027249416174720393925244583887906376585992615170868357409571104102314236010762977887690099780496415372414704435455104103313133589233288117235696506202332474627077052876056238508649828002694182728514305397706626581328789503512021016745459897111244995778984445870635656767947975560337262584744695254116331259945458821898742550009161659623772911072326561825395335338811941044668315242491802842803032400534977669861986231916027756515803227423767800022748965541927332257266469055015175725276203888995038964377537408039548607091939168958442799740046555749787400441090459965836005230283799380135014712532189675474091392818251253322727420936153962327524275026811243007697766078676340780237367630576131330076351728150752378665012696226211521390236615284241026787248918272521656773177243080859726694843767144522904943676832095839875435873171170388907486947095393804208791657540766705496883584718291193019745276071593335079084401897615597688070382018217649255735442930555799763724611078743561596243048890266826275192296337066552263980255829186247800058264081875283534244122131237509573206804399445538390652342925639618556900001348180363992947881028379991150390022160585170935081281863049381664230045576072799966814228309900885747480116185680819230204273872964973842111705519248377202074904427248843535051116123803520915293150376841299112881279378200119031109459671948833847056050287345763784252520102270696879438328945750128987788477882258670851555338890330209178812981665706519463308424937050435623080889092296158759590135735816305252325307068795109072526892014067126595955409491795400789853084663885246461488828904831189338503930630198367821398607798305492471607594140861283876814154845475841204023431311399268537018822838564686989744780484683765953476758170486598361278681165964775092449479942948508848564190023099492916740450556502912590575053620971498341800761200062871737666367214600576968156409621128692233713084391958716646719649334945992163939007343320869878678365240384668034717098217481202503957579702696371052775760590264419094435777507842265758090953576150542426028091935557927055028883516019229179522860978268784960413748545990213321390210532368082866446946357326427720682950755695557856107429658402280138409448099161710285523739339241774001543075144349396702900012125619699568687423000966799821078562038893456673622724570444970722175939842777351868926917411819692823697122408475535529341619984803160208918838591972730198296773590608143715073976957464173807903001116495123189883643288030432381166722621946786150998134784174705751599790638583881741894274742066415270704881080732788514711060891873007316741000846230131440614253017765413925112919386684935997769775882796136130696956176421770738337062069305959572199392854482361928593730271659767662687980749889971992177061397797336283380588247208133763142529236475885145165854612310860813325423033466904608044377325890421223152755072914362817947725665149631650054713161561053786826678868116676953129041584902291160565318254375576604753454708053152840999274100531994777896359390398186362701539675985601912300117086306816035613868647712883998358288169770001876103559966463117245220582600501803887481861908408001462861948975621018405277372713841143962164022471169406904956829343698768194215071140868600596426955485094713338557363268530065382011095213105219567738268021953675398220721185225972409250803114932060594102700389914557968372514231174369238456657800206797872694662438737726629713429324136830206173204104293460680901623578292223611234797300878939503490775278981993884070319495814698176626876010839596192684361898792334209859658540314536515904604705950817264941074174522036975025023628450379590011615845915719880663053699561275274813524605724462870889175313531503602740370137169331621668284693608502061740289630861086799325071787894513331829140384437756187629648332034977273011486806028322459638938990846901449882440019302827456091731092995740119362311985189435905276898644887223360250308111043098893314310288731475012545579798016442320826093828864632731571184368681914372559024563618562393545848146000981380990497553103201034085287936870065241456429364056786047312605258132470074935879405246669927012148538337605485349926464248724699729241184276110726424979407335340516301610109946320687240420326836586943121154501847887506201210608221364300009912188862501083408764905511314740452726806258058601446247476120758917806682248360173652720847395485729688455786724413802074435549843733508064598167001941649429747341096270345955195090035230314063156664603221681419613782971710755276870465378314483381462393529837919173367708426685761317216334166792682160547975012765856540009173733540921119815252348971357379392943545094657549592345787583706586362818866378211002925147072598504738841071003856255661231396169325108829398379066951217315379248887506540289680527091664728886351744998257178796503366159317093091964461946056519684668225144547968606996043954840705201206131515323177366122927351621249574229294078537115184404834157313351342655874014198940803091566815187965216065588958603150972387090213609578325038362356565045641514518761858124944423510517892861179120132376511116284216715176979260801125459497672969346603486281370975256421230309695412534018866327403873236701444646141950375269192948107674884836425688052970253746982359803699986869395955975861707989730769969078929792609069948425973355138301254989443018218143194737981333628625874317291757294052322492218465242381351279763718824975993080208455777333234495508721682927309518184073556313145948096608123336612874350308676818363575128788643319543356459336536967046602654638428180950029202172819455941199816456472495439112391389955571104123612817631534748938212354638534319095749319003755347493572035348194934088862788269070497556049448373514307569523593501551995638892962914251163736169888586900484087062886266190455830664698972665911936973722431524041958902363058474739331421776013351084104571178206229784935533406042244013255688228378581402215446977677974928322115923398960726127188901371163294079583896753850359887983246517211023998482275219036874207729625158425151128285963769996701550071973014135741345756749212400924844516852033180260348548071531315716706791133952319093996522033942341509596399618613656312994430417413762214437071989357309763529258628688875467331095661478970014855726542502081948982630236806068513130854881997832267282894364826612739814020668484452735920093950660784708966122175132353734415293446303136617134442258176656211714331834897256154068699807516206030508952392166200321989699294122576000525950738658181910181745142580004977115680492956637094002105229037607409311802478667062705338454839015648338409427119767904095000339229139467457435286028543328912596051920103166142170397380333930048792091680073095818421018254090258414621866368212178770552838862767862562058015215794699109092307385535803655611046853152467657930432121453554206932100135734767362492853194923035566653917997026234509669955598754313592017892391673996545689308430326566483132478353402359678142828469317077544228796233682606249379004541713345699608192512241538595113926506252346259181855417451907921265364247300291059076084015534483290704286407794495992832657842372131094098339013390691060026013476032854870342068274986121865518016148475487060404505506939334785679557070333431807340345796690272253379399555809671058373665414790284221770370666267694424888157465418704074610595304775932549529317902517193301755707670325403351302738749796830986586771699335866612775945985645235252529279832091333718723316297037524518483774040246293848810443140253030071537437207399157719436391451889112010192359101012250687420819152924482149709159695588809018411603337361551936081975524913782866712091731715784199582024771983764696263373986105255844327020892202861384312978711318163920659165493223014518971078274965127875604712488229983798931614419483528211024843080773384949685088127033281359319677976506429718269314077762074180440853094865062966494124368365218071848157754826100985813577719882566811062669737062594884655715900599195157058534753490150934968604884206778050266652681387958169329589359250240619526564290062529000711575379303538183527717201578155171008360752532353655865354282214069995431136265291293846810031910580615762553709046978426297206207515765605432264352396889996047007499526153149513622681377984763568315150848940310907302475915273711667622991282758775624210741443184187739127735213267643911237100229006200748480845863049586605444985765942222546284665827775785046471346347246953581540015303943837739751571721613978463653063417478283141180536301051462973094558909758353584315306841183260958000036954407676812944800277556158377375734977074886200737480484915904676896798072939020855267245081015926744335260784702657087857661249715224007614212219048671487912531564030620805148035776541524173071974059730065649247455377877822803140429164458358140952009314855050294705593288561868676325771550304852498358422946445401316185262826990341760661216849516441850463765534209043193156660785576085815285370699022630814326866696564622350562349445569701533408264179109650284661761569163889031541624794512959908865668463484906135786507272608511185375934600503923660571561634326922195289136712176293955509024802111568554609479418896296733635884825471916438937124435833614469144007770322696377737887364422013831473282013218151933286817450318531232940619357977003136804063116574673598571353210296766633501353900291847483728440878123461330675244696917077124173317005531237191959210378307219555848895030940366113807738231919048116773624401172240206821657434543077612239786314601900441888321572249514351683996462923637427490054989640285303111578888132519025130821685925825229408131811841841113830785545403965559850424035704512877287649959687948573838759930132526218167741650710372974527416536785552372717464024032621333778757211401527828186326551443805391712123503812221791340361433878855935996531288584361689044967615142014367112967847617742123187074713511678473691147336218987778708699669404156428739328988442224945600718327742050392631518654972088196434496354973273717852941479261701907464231947713162493437318200011712375246571188778264032919063323915792249510709083894900685487703373511179081768908138941756430356953997702845078056173471666843954454798016757492664958614363075118575337810891766339261960934526321018371621072202524630621900047082593650331933812325249896913275990893481387280927403366478282092406687237273668037469736097742057823890141016652528849730771604757374569657646744163428279253355462871361898532491677262055627778523685883950679794647780112729513377988649206703138438415063366804448122904269076412639761210879198997554341652638272925470213486250014432601365612897431057798015255476646150725751636953802409424841199729765891251984307181723705056162842238622815813907690854752909775711074985385030950168901250392580303566325271717710379890044137453598305625480133171663400554426881064169208912827862956370258419677111120816134347555079177901404936288514266036256282717985169331697701892413371833632623885845773378932214480440922149773246918524542337257097354765088272995375681598139911245738083136000773869836141853834768695163024402530280863258091662242155663572822260372242547552328217042724747472120491312986423838964824479679255122042053410071181846215664986479681387249985202258581894489482735224463213174417528647741003097300590223622832381015717933489467676361437348043180006579538621790722501408124137055034010139030655307661722905419383212622296781206525048617418734138734424661062004106953735477350395835547572593865888060188094790335089791989770617403514232770142931152016669121989183524019691170628534422171627047411707068330862643837947979058146112619409343088784905171738083760400176671037001562776602720401522729672417907642489233074986837108000535024332152265004899301610148548391986797430653248416674158243303280818186694189925454775985249553744096573773127300905325712086322336547944220348853661449736576506231308276092902292924405140200315010258064589611224609123374098728652546027983257984550536629997689776691004530604297479132071704681715279412878768773602345830749167659305111189782447571671171992030850261573968672908459695300040136239907607462251030345571783479994485752182209288547000101511223397788833835827448804589307512792927848678648712832537265715906326451890125242559361661908759920328491607629474615476003671141051192696545324325441826275877260055168009068924344071260659950606563854528560647943152643309836896996339711052129229532103860641921536530094932607117716073360463117896883702986056665625283706120155216767063344686962091712625673260792806456495799936232375972609162751043852552091811835570811655005572328732692267165667139787487086213984626123000241504723367191433739073114689781388512342954296477730969878452531199809135781373158545336759312157433787443834218196741009120209016153602015625887622558603373863193006603205712449044105496688598625019726052706245376233377425096098546238385070625492239918081218414164446822665104665506654792571569139513535714404930226477986503832429428146337571708229697632226982209758454789050416632417749935113759087676192499234068948417584965419144050049023817395855022371171344202426801545523418923399476755444065070357240578551560205294876538275998332251210561478619319153660197293720837054457165781472593685056115945564352580627977075040956632909636415296651741069797676639121292710277094455537489483593688784422215308124082742865831699332608901131865027689700424713258624933946192002360634506093553159303651664366231592455013842696523130148267240457068518641228680939774988609279575943986437337114485242821289015818260087095739602048396303574163515847525045578698969214933722243241582275033845651952322613430130396464141526363845355955020916218056444591306555915341081822577195367030244019316650703007859431864661422040830786661487479915691806533830770308735702749115444214067086848960806039371582958631484751736836638859308659673398926659223281425490764145552547499341753657581345309165136381220958045091061594318532046736536015741613180676928983424791993299733758919568939322309153681587166245651665213992663387004896123960903861434035643112569059981746390943125697928347108734039966476212339965513579257962030614950898721517300559769365248078681776966557098457780294776146708910316847132271672323907734212994810930325996403432899400346584499165571416634670044248916463575425722810934437269322963794189004812121114189123771678040347258539378733988750403987440100230870345224058072961794571539723470740650291210327753052102067246355113822300046653164133580721698250270302440401878539610969700753263741251069061185804383183031512292237446230735326095507211593104210974723725333845897250983050235824715603771455019335419976236083618128123796137088138598884909139913730050654077197966325249475201463168550177167574581349844512132227354589429453770737857358885884546364169979925288989800208609806117243773348884820232531565800069548524187640307849477333529123278221859698069320317737969125636888111355402121393247314222498641469539282999495252869751191482878004573811354424002964295335211518192976414142618806622774692657153332181373676761412215595228214401675718426671123393227580553864669262859984888404307541955331080733807556222841192930593436413436340468528993149477354650002357802745608171501591955111427105441071745236021301353810996878108557848779343034708983091909891958414861080322254516816416258116382658457532747752280912356911944588913554778024032629974978193612125544309903588823886497529633440703159766664831150061114101723701156161038823391135072204146750642163375108324626109248177531073155794300433371402590430912079009670420547722946408493091457613253538917201645657695488754018012527125035937234998729816931976995519560007355208083236287950102278127305032653856731552520795339715972719877457915149421687255378022339124521306126991503374612831069121699167612434542711223681711437874558246904313810339164380547271001033742173478081012967185874215913889967321011504602622188668766551310568840657194653914420202537140989353963512538765688127579220555285601977635092636562703875344209325949737143073181474524625650897842486945513905334771521211075101595750638274987198668728766095030006222157928390087308962376586943923255707146177651029915818027097325634886688626935349734534854094764239749934128097614378011617695826068648915626047278526218396514149057061790092554119655630010291335941875800835512249104698874557791851636323111665908466847817664013289856600291415244145261512375512925007863282541518319677348534922636817894015934749152575821924246645536795417178846759441101442667426169909379597693823508811588522497720954430887778516649283368705727408506861068558917622737274246660576304595505186207983251086001614188877894753908039935572680979654476112147572993007069742144353827195506410068534044746263811761687698077039884827951712038774373564072801713971634747852794485686980283848469321594456588171409259550603730533947203429491596532488013922162859811921041610587819531345916590508276441270393161176519724588196935876212752224622726204657376067706640098479345871942108307989632222668839117756672340836891755297735608286780060029073116666432798235193963968814984018627899791264628883940122991380574889390727939514619140931228168719553255853248066168307763513241005176903142416961242758663358502342185947273629726525122175418589467525236214300857513685932637689236947605724475173411387145931071902584084851849730625936081586132565760900143000483590723288360696481717635793716597128483084946500866517448128313831197367569808041270867407320687467655137981516663237219815820153990546599112322615071485492851385317684895117198495556205573578377354604551959442894877219639146493516848645913713999100508159342524158482004637173862134950657610327989019139968724410045794922220127529640883722068364820589981599832231398056843023859862024751008644895346095236337981625799939774983663217173132055093837123887108091342933299483815717361101636374420084367984247798223618527001118315044123177548401758105562418285564547504421092113476283459034216594440305429086223536818843150586956732110007243951214754774790875207268355166582093875625655879602184300319755488631667425269842875316580405934126288247384410827407389442925077232267764172543525712772194695790835316220222808000758725879471242893503382863595553071785175278664057972050855768597531675390779118732334370591105050053109111778376562276867793004505526803938490049535106524010879484091663265392596714257891927815779820708960516508801801813525994566319393680334048214279483380799138050641041616118472126267307716548100140890340152550429656293635298193289777151057819412127758441423648618525921850775098651652178253676323916942826032343213609964985394407517322540182662234919605764002744834266983750734206751960603332778364971520171230402335134557232475214960982605320868254330221860590987547857151222464930821837142934022450381303130911252158995524453623494580533792411786167045515709393585448142921239273529527194693887700649835389707836417651676514779559246072423893198453983342848956120406462160816856427201994393509644939802225466474521416452977783687174517698989629424782538410263212206588143922621764876560175848613770922239341246208750557525847114308520528087172645204422300158306405847491554463123597017751631747347568573289288466182786852325490222251427070962838966587042705645315376394794431106185490084886648972342368592021456446706067203507872557706171341271024151836957877153920805628798813500441922955186632377494626151021160059085121080720350593251535613177339122190204994686270584692078754855185677138894912147859750069447513786256369580300596639664672465994626917104556945828062081306207638811969465858884364048668458796734044222999857618690977358673829312027541384570272381943252491405279147642940335835451169544079574020912054507177917963475181952454263969443008856181207139159688143127740672636400631732578140542973007055418567945871474742667316583952950480109920072371184014450545117578095141434777755774054554355939768193705357256395803534211326170480302754359736272302558985952705866129315722770548657291154508312455936794939255429364563899795397119280474573959258783841980442701917201506647803849705063074698953605901374333803434232377513072152561290239796462138827572260153066994281705201534445673173477787514888908454110423803682840613359951652401883722961277111816461322688317602523570674552855960072401556195684790026434715211655541539054041890628750190363871935181475439341788289066551045170799770657722566192552185800679717990540976730403809796127675551629065408928082475357643956409966216441002924265088918232119903726362197273410726899151732628224704497450399261606696361457040949847161997520023860581128218566406904811385671637530343331290334147534962560285293175176916244857343935376412699873077487381338295919170950813494611269288690040992378610362540878174987659474303960501374327877849231890672847192397792332193135997176572838903249846898216789406846416174794763843415183581839958719124463868590278771398769440039831598174133075859742293627065826541759663329188555618490966298554817189915469418614384352573988650399709870899972452618038747037055438195035632350642268240308293746475712929557346107886449913489716841709656201270847066629164740337757640812861211434280520863569562229247311474245687853840562697612144363673671806220991252521638073544725701009423656142864153124524361338020453327679344688420179884815929044878904164111816908219039826634720327355327897177488149934058086369519458177908144176841645729323253864529718055072716283761747592258892039025997777103931135887513855964247214993402538531640882445698629080713793212207822505222765713877564453407021966996352603827361324289077183383709959439367608663294019113519548889338044764733193359591435694261102272344320851275628285284328029700722844747687125329737688872572700153643285989958005195245494538092293344083332682271750232911983967947498988812213920723771333584219687743113902469128920325271514976674940903970451482380912293404210517718330109605982047527305910619678923698969278108441315768318048862798238404597568153977525672680561018799844964249824035227581930282214453493418490140853370707753997705431225361094373255013859235315861296133591791323876404974938825380885841738079548571065567245717870458345939268488769940264868025627731905460165469819782696471249047646188158117468938389206771752241430059789456662920791565484800924997191184088866604315052560127937423569164755655343640687023545881671735344220646226795914799658007614417180599659928579529310731918648631222944701229023007526466678722923537858874058308622937844896832827911905118873885759099233347094296759456197701922015811920389327935952705178329208953145071476856942663117393737537227196225512435263130855279897406074013549552818110029354483995804966688438892037567533381401713075271766089079138410995612053271721163128309336293283612639942334658818993896971852289523628599419935880469608360263263316631308342031896155283793156466115247782918592419733372845498148636248268547612015265907978839842330062588246914466240704308667883529653365095245896248531695501235586146413330352605939509993775546146406060901145843710436636712121808898820804766179371411917068254385502007848094389590017941874506594086340136121594653421112646474984591969067625084994167046052136899880740020602195610865315130092618423514334673742030043409538986759454020302213911750197823068404129050812665990083036122046028672387511323772115555812803115219001627529632688600253601421755301701797140927156843588426856423806035431466980943252674507447365793276426648567398667915994816631050867192895873562172954127580148337719482447746873783555123558513168357870989610203898697254258171369651115988159822238058771351738557580858503613017082911364362694962294696908913755748540766731128386247068474292225249881871233664645750119740259281161208184164485697451545505039233615006310066955389064895388712041027788593206361345812960496598401702463369374115428061279495029938102208565523324533762079358642561240793076488803556460409239009772685507575799273790287765449217782744709145302798590789616258826211350714881887947177193347829789561856473197994997265521004785517121713866597047279495071401198732498457196119657980819401323102808723771064308871550162977389355080920201725779022573821158529545670396214426842888123190832024992692608740919738162454668125660804114747912276950590401183659891437868155419238657184158177335767775356478717272422575936249260903261197582966564470618096771490361238462897104525496120558064177195593980692799119650128704343679539939077995833846537009233027003570358307196974801108553599745220381907791911553190046835811166386485695816002324230520727405981674927228150109653696312361141258459196212950620743346629646760100948622521738622304552969403088680825115379808160853152290048417249119931024401203334555340517402811314661729463959911975377352121930540462443873086469637351376345438487601733767122084928905317900706979690363369326008358763940542197866737655297132678706867577336987747451900862627529421631263024275192860932236954112504250782233917856687572302717578950511075022538023055822418606123430058752491955280424064444362358840799447372835612566081062669997938865228907154444634821227764762284849822244821481347159055388980655462292112172889483650633758326507636159092308046537426731688310616011567208901535276720246200133913226669460169839251719205698104141669159448234945216696238071398539719336733591189588308419182669421347434792173234701055764690659947531285365717537563489717724449775208843651556789556818028263912921869143321248331928133260944147231384731651283756128351100634310990562907968046056868336989416739548635658761779738061997718318034740446252306932062876342599454032129066270625326342638966916364894960429947963168305230747566540316117666152444539937291082809657803763366327906534285202471019376775807368641986837467061143687084462932734410774658982287142085172839414278275441808269162574030351131248684306539715534458500333059094721217849017136867533437628946551257717234507128185931484892737281331700091185684321890679432695054492673819891955839661040335480128740152023111120331236615392267163987264242991883924283751065473476545822980918983075473369966330708994636753518829012114445170085790166625239104053533329021532150091015983574273910982349107665958384873462574903769397682026842860006581061790324089282784844242879592990976136693546931147000190076731590133970499787182920322493289639157830178310308302782907940550733999954011539372179966294651225599370383772804262217109284255282211674092537735557376452351558633077443362811200417494718873693724188274854434743008604753363719387191783604938915074381651612114456885879388332014137317324413484843959504763190062934371173934701717280798219538629633825745194830574602611548280057474775274006015697381769015619670421099211023838134401939828207485271382465281228123651704343358180037307522233232172138075732734357922733806812822369457999575188676238321351370126857650789932403081459527660283417223090854414872220803914514959508777079471165471761237892292902363899157564828899579139028048608290331623631121501786996509273881393631457153016289250688786711283638284006833681821090517340041421662672038508633429556424787940645498407606781654577918936764324525166639391538893281356497354989201019535633681886008814430534211988067671220426034853266134343166180865460447596970606700506496551066610792245793529105567634613891049006410530088775914347404491096349916628193583919644221754016646691179891681133603149644944835700531533098915433662308696259138891357573190280310486761214189100237226251802768058994269224223723562738652501402021738708164674196333122262028989820682488022752382531982271323566378373222178497035149731487406125190966497852614720497904325136678998548872968905270184606793166545684980098442410375116145316434546525310652455403759498579260514156105256781291905750605487307127421378723677797522131035774277121696777608718102625670300606692910793676075321378037400577973366288428868819557338799419770119308387164216104314437693018523522264566571072106127162318917290872807547009561975294888163187766171211121026203224779718417928146123790357407190629366533096262707775551406438081902335612616199548208603901875183478536547041020766962546227932515238994004230029416871321866777741021238659743075149025227387232144312573267713435816171419057498649212705028685748950161704504717703994520449154918379949187178243319742628817701080471703784652773960169917649985817688192440720381375834301947666931474334423121187102698121550260717039068245761322884207802262565130937605744418208419152656980129244421830609581955605788926068368631707384182430687150410087691032865469763933534690270113587001855487200249738211560416345572432171974108871173831235376342172627248732728928587789686890260850172446003700405308056083099123492329297626515754545025057031009625676136371924237747295869936330541843529838756981906059860270095510001881410887971172927666078108277996998703411773516380278681721090800202771691897961480441128812896689926771106979713387804992078808320826794606392126905150929303684726176707812386333873222327333483100595357880255978932438122402644115059290356778819318443270772961277638694180337101719479565879193974907206356480553653567049743987546267368684081772968900413921339954465788854415463753592486293930927639679034079496089263201234503159856878026730192977792751623801695734135161375973553986791541667483075540140856535367092992672154921917539533808434234869533669687634190193007790825172003369808508237668159578600668148799584585834565824563637836156979068242501904799423704153154510679615967191310573782858494773628182240834812109944061513099677827144259777385161871930508577304223141129845752215771526749099774231371700857894270443670533604428374013603896631274019241854011749447917532180319344393531331934408955114498571195069925949505401134289593790514704112551981563429659428218075559047643688482654811784813004189116881581904441155609657400502797399360056206401034917144282234215288551900604047414953728496699356310687529853423484228631808097763231251032405289010125957719622140483178170818969253310715532496492872795256161601793605629374064662728094926843199561083498577446932935887357597674849002380105851304573680595530254273347848771141429022904370571669280503208789133348425820378278623971947716723346597585185043111038186177002931039702033554696843446734849835062022316950350326981464979519057308308939542834740275583703786875448201467176089856194179162162197584624606819363570498658502377151139528124412407631079756764481863599481785050909995642907516944152378855498805209045826410005514879408005992516073838654512118989899762120841586497146806116351944651754829141291298561485054958314069404026850200685933298462947835705956940789481011810717391384148189485416749361458842755869481997493931132120654642340804076725933542376910230158769721725538288489255679707315651119414846517024250786803402815658259300441733135240255854726473018318765434379526146238591651375325002455406953236373088714766078025842614902217878469383133802497863346375904918924211656702793501083034041187246726313297119737603398760245175109317166200331393143547948798822262911029099102613764635658920065832920719111549780724398921563883684791759963479370705516789292962579215580074433324597983642745922159772786074938166080040857441121733864072835647143510552078900521056990322715105774485734457805942093129539577399590758147248494151741991025076080789767739912537257219443847700442815601889903314437430841153764580758842131343346542932534013630849663034266908170134727845956967408768799491147535824055226660050579104664280713866849566133494982127359462052155111220833746216986010380708273434381355922405538900188724022613150478115852114306257349483353965463534936001942402518016689140324474248932705861393690464765947184131458299779205834248027178463104114270611909272514399195162765380016299250386078630185166843778668159493121426170376240879023119309992146515004517366311807101360626611714026578707351809462882278263434495018889266107677657268300200975476006087402139480565504146022485395555534690305258355778344003475391036904379732899392351316953200514660153048578003595945058581620659925776150224276874416071904713584188059863122321350739768465849907107969213002460170501257239280077258732240395202061681718224001445958619182113480243003101412075592471087880162812882315295910075295407433690449528539303452433512942499380435560297638181316733853704103289805687967313153964325696750700643569749065064217851204872778365309517064092385525346155994243810123635581118054480127290077211025478163865049233540782297236723914323702346869780877581902617836045812574650834000093403532131760038868210785451462633015953218975752682487841253789823320688060606952107603564025036235421917754675822743087743374451580130058384504042983430448407928281481647753404686722675152224924848453418864449580834054449053506484753291352992261568706926482343116361699994232834709851014741390548277450037793875389894705519529023386086246934197366958438697323915198795441914519625253242650191863757790135016372771946412971699916174375223360022641372210821181085386542246706479008017577800508034002650416686080707317361268561021905970837161983778919171329211295252578726728539503237522947443893001523980549758858711753322595040441819649612458541298606037292256988931881407730936843492234339809414892791430526507532734007216523669025872243065678524201237247782084221352550265108969634647357472450666132167386946983434955694199211581436132480061836248463427200397061926128931507925898095444077226091174105040603342452564094644611207752989251501028837246992322898768133304006266052066058112260337339168595245645804236271773101093429490380078685051934312809613046297204079425285858316417059591524408452944756955155351713841002719712761944354897870126725444099591109412351969723871234203714122747835066556928043514084710946077508154024406216659221100696919536350115337395890234039478338151586229163970093605738343442551869231454627029106615202553323904884288814578323944220319649443501168612782362508606465056084732036227224338400722065293771785807997069417814615351682693558665700653072813751470562818243610479842940995688771547340456091904959874382405023969548408874298167053723749532883192691990402102502548108669095048713141118625725104256423046010406703837073879905242417404806518912664072444468695820906969386909216621007036067781405435763544197945486960320436097944706631990083873155879938302283714271013674831488438518121720647022212828692066092930889393175548772833436994032248100383246190441302091217739241744925795589760112347606465442198718190683682895576736593778666009971026962497317693877890076611667573694664639067511719078743786464808401367688781250053643409155776358744469081884190949267610214101207622133523189728047398574847867402652950786887714221046120113181927053331144457045320385474436545396254688842377219948247391073953414487750026203805429951155561055415465983210900126332340562461167877345970558903519740924018378800877248692922803738227280712408908719607763730261213264513934679562394333708493369967621321139992290367390624834084826118034110242308686332570024875918319694969364292645559159122606311024069264410480393597229196185723866911242436973391235681825607703817287081529067560521215496561054162923159572290053642372400570754193740439158092928041156033446388657705484643722817469910853178643907687135239775719440119126277017801168265904450232796485456711970848388578571274718452081061984601474109828041176404115608248506342093415983381744775453145011507941604002430248348120597715565920278094697269093565610007159922764843419485761530824237335009614069213057866712411400117564692276872782124067135675767996100496625506420112366795473855146622382785116463831369639480405432126371824969153790583697054430545987763177356473802659345782383272861276614206618358109454978681130113770740997959423750463650401999495071751180446763031416006091289719033017075958677789161423571820440461230677137439049321628067192988493456686812772698964452630471535376060469024034038526101395666163791137363133417615734337860860782005851559796805751479919327784914697033132060921786813076145394478164135887588251881195607761689439206041787528637528763739171914540211907923113713802662432507405715204776240279737822063358618386509773930515038849453098774840156753313607759526755002186413780563461877323061942981397994626365988214717629449486692497396171450675284289640794529227346412804922833266935327011566250468461924487166095407016296018034642303916950501681627517298311923045220224152335630045010962877480944334091806477526251003775999366017892452113442902821059829688336315562365085086042864195736780973467125746861148372941805510834357061441101015317236950875769763391080491125790824108532538459744952650201568756586071057295168900951640041285260144358501576566425263335444243753110421162640550008841905646743701670459442559852435837280670036642408975510605325833660867888839330793137222385739927067358126485013955417423162530223264673336113642453710928845964144675385750880484314326887225892667151589817073342557986547941907973570410667764324303868153732009904754379809513912693036741321770003363715418584826399696701728025897077528699605342454191017724982989729914371658486524704317080719254064251394540870180313987245273175231678415722312004098455506220298431990152249416228755202351380399450246980468568955325432822762594158317396892049862445018600530574181753653989878775139842980619991351091723157568177306360422518500850434436621059142606598876648911309166588182919984327967314987603792880058258774775634401053017816082963258218314977688477236293849371614716370504533574754459341391896845222135884899747760479367519300913187996063134854408509875247408876385169177313982097127163762600296682372505656771846496169547342789124688064935652698983902241284385518529050140454245613641956452424422981244721263864769895677040388315455880530528768066859727839804247132493142585904101715106855781758097984629107087827938157248773584677106804323706239169912398020165619436003379262806991079523312538043166100350497057180736535966810170449033684807216167112755914948467775305743464897964165691322744202270529099298380561060948600500755638785349090656265488983240208504981521413394460765477449129749234519073300662660951274367403777818949343161972387430964736099724662290974359023362232606955721256871205622023826407733514772524277028628954955873759268907953760030915465868772360946696315677410767215430611195809557435551336573883093807612251138944940693723997069870648519557651158653337630485632775069666657958580410845494404959414455944307011081958626707438585717639607024819269801567666820707619187852659181620943148937115882776100079479090795229203817957916679730390162910803171643873384604295610436248503296749510968645834870078992157813546305827587130530215191615112662190595782614877144215062915394830389624090792477947645319879943739719516500884647771194641049459544802105186865974464227183297370204619210236452012211060357245292852194995848542342964451767263917055330548857683492177085563086994076239975016498383942596673307398144660553113027464179675411642505253842560576089901307248138878076634276601942795100042758671098505732918822518129027857701537021893791993781269630412946111352684971689603636913178384449354035455335948747583924630274458076858655576703692825343324461240714320827842624376898491719561590444450366890674510596290766461475228271751071549024578081936631991420702937613486130938013623280763772414808864137186776995712222841597274082168054731989089967712997246012194644128275543852043053353768603256164164489232576838363232924974445701800221790437016385673092763062589672164536992995914159362498096158084011452373123988711956781964641911411823086116897397479283106398799121325134651246388313276580826687546118570131198590793452682701395105005231655539137796680356053445267537575777300472063361141818621657089609238183633176731801731508886771131917849451617728062676258343490379038073432415753686025150245487800600304761006356915855392511024445637353707805893363703567223474376046578356698434566473046444971481741810402069093919598037575286832032909863554524540632685845019504889617826336185949135165590330468463908721235144078220477166492569318462664298576161068637724511936071789179693988768160972531168515851859860060241962019975067517954069023547902175553047223166331339471015832646049084177485858552037771435082159442806675680283580347098792991360514507110319775463464870507879128895070456509863389600442140933303972706037445487464011116137013873822308428430391996982131648881982496199345680793262914904202726223695075624967546620927258458538343378066875232777440817015963088987270033420129370763516532863902375442149630118708453610505073789086577106614050851322164045283978760708637582822175120190209451240287831157351292763214821346723427202863449182246755635254175163508712409263694759541466408832592265891806326266824765076458461654027640383211843767877989865611215564299570521828812713442945877113303593000114365708859659703325196699865277746115569541408200944188322687716963092796761729618797161675116269118980619062918486435184665163881099102917565016208927538113716736723154424833332053730696838641469341142298482984561309466421709175412352986294450748606727727039313656378762420165376327952709586833186781527222382466745317685035772965948232506460967328322090376038923021852557836954649150228716089891949429375925125517231358549375214950589694167186739837588004360998212279291724046821544923572463455344631377523050330541564377110048598490074452158912045709025137817206810858493350700807781737264965252953439111868087708239167357421758927475961354971590523333522503429589035828989263665546152648012538894958463054280040995436463640165925935257865960799852677899713840642322535928014574847701211671970942946559592027377788740960774960901588273933004935314089223778247170085320333537009644075619009510796121742587600087145415871671548831100821592799620099516816107732984037361044476609529722355066810751519858582923606717109052248842178306149741794884978077112765460836298867677203666753045817318463191516368799377763741508457406551636921057599463761939393844629259189330355764003163868625726984869995403109444141127237393185491817086066305661453258550229158094789877733525007084998902234273143061718590144278768612705379014021947350899442167099183087662731460727306044069884008112659938891320231317658660948589748076188824796380550175293498581279895262726358839933854429621515438659356845404045139543635905579259441148420227463800893092294367398588370433624876095793335713055445543624525613760994632864128952194181905567617946031401346537033674353704711122714558240857412306500019882617711491305354761544578325083744044674951211096156900114946045566517005088926276534186662576748805280235939563074144763519930903662636789801527031373828387930694784408512923723910644744162579623480566674824227805352124490305780543860032836156158511968392514340502840844809702478345328887195173866580077041039683160089352155428053997984628629427421317348528703019243498377564129931829242376506933831823049224667368428179085242874420454203069827461675460329299407651378661823276665366768388764565423506446540837686374716980789981974800856386082975022169726484809632087217294814212643415514322029169811494055297434958558304782993931451683662006418240974145285386667721807835056996777319650860096993070776304888028160718192060932540671200663132814382061884170497484642397853874915662669075956919809749147000962850117860129987399179625550583174236503129838434965478120100239981561171116902548578883028075502847606327291419996459912617053391277276186999305681417511155705323745924922129919548351318614701154977750259951921176968026451615709120678229581712041218074296782352639830166456313447619000900833278106769661400445379514779713844032597021317495085706157946308447889120155748620328388650748645759647999624363184200444332787371682463978455595915997749029424600441822602153376209672991377102407602795537073198884288840504742981748485190617136925445753746988044056155364025083007981515405545408738562327826608917324273252219874168760347757500232189490365289776480347213174545142963713758268688489571612425124671175388125142136881048400895103511691429457373849981030817577906176316843294702215319386984451646455435456358618850321700548084431655414540316752149493048951156022637486897522309786959117282205220020512390430650162872878339726959218570271594601825079386645330084875209141823294315113263875935457721279713579592605344503406484706319033507004524531363128735753663053954774419658275043545593046354057109496874671709494702975293719317969981260238365686416776832108842982799976394462003858591006981477889553418506352169603819451982887095161012781806426862669609046939183150018967876852577646998997078888712313912063401378355186385827357201688368105672248740373882985111502985645497949359709841158448407839924470492284372783883960687254669657506300100646290828719034666496555779632167805044338236115675268490061693356131284972835396822252345176831797105404244124131246724505968603081610543526543594304597876915230119927455468542847246490088957314331298114870891465538238463313735488558820139168999733341772216471200114501346495481335778510313869778393690741490829302400705477884303203748559508842206036358278132420653628157404222998869420469432607516687052415742918647306891165282484296802614865546270102430261036288597949816472952252684794966581024732937583619624769530270343831815799502341671129092395872295844388733369543775985891432692236102638598693901518239747054715870859734431008465829983755031264530846670450732657330400367325035320545729505343323474237976445901110455652747724968611721622823682155436160716792850365297376274703998095842141734383814180506760191906377277283758020636125036950101456772955701113386777829443644497133384386744917348160092280107661477960727360732943370488283004293302556762129332039871344555225878890341635445000707351723840284901876247202830161364305854407902719493960602616713850350534726775844970526343212165144809609699615493610395028584748987745190054824713795589193527017252804084964863545123089209599895732421885090929443803106827079361684532882194589126512463734300609457056847103978391828956747375426066375178395042532191712253000258615831223456181641963288715970211614663993028096229923563538310010984664417745587272858712377092794961061172516286889798770066317056716589602464663853490056058455048407011377527837468548627687136855974974661250072667740119217208680035952779158896044629586423206010421223126553752259731644243995668722720635081149074993630536144468830484554995909587037105681288245473245736791883620997254177422787552085402670267949687089439918995419372218520184798136969272068462122946854525154277649696821495298433779356220254364814597100091084318354178993073532326768149021110301260812576079103990745795129864451925220104216485947371401145308632242487189362689523824517055547455786616069501403545427474404723604405013332702246804386059313111390266806562567646880876683051137067488326438333947771815735494328508054933515805176169181112773445312732837960934989279252388460479456996657819266436953444128927536990384175819345803698994724647040288933401822577658456383982930864497163377537833747766756249608719101527459867840335043907444428125394416700464987430628973961420156286346794065571601270854214979618267643707237307866784057197632967257847984251122055373361431695995001281493369127145152707203634830151335196143318367306057731378606525830864817574003981017151639050940731419397240341972508678853574984358267244119160232916059945956224232987087514917362353343590931198884083858763464192417786045665511486737915718439082283895807650016341464073332185876182701053274943496059436199270021032754577818985566550625290269530120258635938773581007813959433303646877219523403253473253508934776344508824561218818065925111455245021022184199548616531396683998502977801079689056353185952656501525874674400253026275606093998704610258827918349899491817493809160458334794966649326757293283198631114667134792195756367248693790395564473051007324331814819050251411313444784931219112301594227363670641694017746337070812336321066743670424800235529544757993660307696294284896864008838250354443687404199055110490770747854629635986140690806534516067952008869293168081081105802964860164008191457026900545885546497156867194541949838910437988016935087001910147586198528958221980255632940775967101029415875459639852996350633764704313791002161954418445487876074046405466327830643836907435108116690355543663665072699621124629113923734262528080492363532525339682353062116398627642933433366163718382700246222673542128087330195128195890942597014564496119511597767067425395572205076474561506923068889154751275851834549432254573325870557555163687824138398718675081923971975927985626531520592135913167478915129487099946855545977213286183704286621806623273663938047189212308201611485799579000145294603130117953754821638543098800691850454159506885133719815965575902530840552362892133098744827975220363266004928791470773287898823231423438658997748027091164725927767863572438779292659013632590179991200024928675936842163033673149086712659708829822482093242130025014956817738981875511824454966007145803564455228539047099214680081335023750453642960683122484000350228357815751459930062098770286052737480490906818926382953916220362563253283522999247964442636442005028898467902544042717206212391024067022354598045037932596427081346520899338992904161200717267546149335297622420424867994503511768972652764502497142367207014908899802855846209809542602032808520790804788148138111297332272747742602683665420675699037293333234555580048019042138206003831229335046061657170806015308177134454960569209773990188211344150996600207891294379629392996395678799542465353284617517015394169531401668608837754325433086415893761276491570624889485242999613076368808740389473046626521719950795758175302826257454127590704690414214638862090224070578211133638500152846588021001593811734283531793240816274574119909614329561074548036520043470461638570174671351354762218662138684052538815884406411154834268448341835454552239162526684343034711985613250132574445050972153744647976487651052546654180780670388143683048399376915675903536633858466653988389164210377611005943671176155898085286156053280169739689740902146828094860795639216550215936152172694192634193338732223438599317272872198487801001190391529876125488527837688479686418981986834209056838217141062605885066854231826586461940297394738016744220890574526561313008513504582631921334481855249441930792612493673447410505690529885084646440160105312129453760354389323238324515329189384553366141463528982970144829552906831670960411468387273490934559595642360911876884994814845843886117996221687739839529816653217937248325764069948462117286478654511739196491989361333378372939441085320705719690668911662070795198950148325906203840050699956597851910008526448045689054749715273283576025508512253217757240757697255891649243376186345949372542627516149815558663533723256604168628768631457638647447311042155703575401168500162077550666026507335084588893426427085007187040591490541230548187671305714840955355212094144483417439419591146091752709985979914136325776901746054491256579639277902085733601569806893431391138596768204260446783916511078863510443338589276663726864331136845047601351617633391438648426247318137945549614363081708059321030063564130290522669862014777194089079304617641839582188793366974675866402860648524771033211786040261747493458939387574983429498818245211596036798851783832908092719017386502590689766590529062004520632256067689261643879055017807385623930742768107242347893175241077578477570436685860276249840949200362544890628123890181345159115100253965213695509260481168915337349671686150206315328560807007000065651061897518582396971803389174793733752497164974795453586796127976274797589279688967516105717279929385798383046499818088140646255740606252278631965436468245579681469617495689234325753327724281378891454599883322673413402105471671973331095129279624215860871609208394833184515342643683103099328809406067284658859853108449724722380173893554821978941374033431733035221062234943948458065170602737025867193521813010571930595099473949443568695535688183308311851625350034410287546857447188573912407480481801032073438352849424517068909266792892592412215765045519126386323799216008620002480174211392179151378158322075643387967742386881304797246569892956080453823427332228607789150142675852643515556215975060108451507336986935993042861729484187075017742581706445465808832402037999713333643760205162993198909762627841885448104023656795207207524846529059350443557447880833691791742654890268273599969614280829494402773225044214512331148095409863637486245982949950206799933679252995958523438461990347112475492565992277864602001541425369181266539004812712728782462229953156663570353358803899280205353616830051922701604727383211251088135657982840767857573032480166154139955815299031495434857322695046468336973829085316311899355555143794395016474335315985137345763305475634151468857048763832880344947654761528626675361691339824899855140169978331542169972521725443570182953749433577207884083429732814114918047072413791559574704117868880416709635803510683169512792734280672883523309366407445568005117924285908634351086783496267252500095477855943381917068386524022537158638017675816994817662332903760002064625661688544783165895560165517791668051381421204163691015328810606048067048566486886761283147115461965937891303009046869609249426861638011670832539294464051252983732988579852344558320746991019348145444346325759385275279735805719982730274930021928068456370219112704569512506353725400827378009136926594204877203554704069668302161317944059734414674910025519475031930373614613252795358442249088320910157821422080490380649336612096815293449688833590481121986327680542987213112257341891614258790406165275434029122094062975722704686839490368428006486264731660428851484139802492760354958811994298987701039505707449642444890365134376400011937334803480264047314248449957151570434033105702817350677831767718405753432152282934242630142660320362716413074487878316185283563162083439744353618157369529653461360738830287983081536374621011411305256108727981350953384565010708823745168252303634593634382261693324899359346939048962636035604855122304440666509569123477092831797523731237342548542073655641620624657144501939313023722787984608740038999473525299820465683405802452710465479915036381906728373331353711245167547023945296100329582962707533136790199289040933499618429603991518918682731260295489889654819079113357145917086330536654009435685630093069250095968332326003959724487707109576975825383571827259600609777345135401103938773529079670558731545053684896209485629515795043229547538551890295866582048177885544689720776778438232485613978434991605017978456392675641220555377855158546141966593845068868793021945581315760503952457790557861092889316733461773719923846407280414249710118699500423869146529380591027738712130261562340760535314022042307628405516233378055226608055419700758343024893121474184503740356964062597669941211781528755793644786685446656222730218476451256313360846321517098015294542747076129924621473220644522342564463566290190178196732630833822162757855029619671685835141773199006841116998994073878297888246789463503476187353620635063416831146088160910382711694937113622360251027242364376786058667654954359034920766408287621832205241873320478726151220569872671290975015791004553289381445528425922512843662179112279859282637663028831488077004584970082344521520826490809344153458283863195294358339457443950231149863499940089628526419124669317502989346019239906350841497097070400265756462583350549432524695438710461282772295736042549453337564701377901440036451299063634614073911728602686036563375597071069119998462778573511363748847408188036527871189836345079845171323249931892806274540149857965351040576207469161314301226563927789572785846226951677445172892274923521647171944128023143712096003338252085359826512573046736061950809030767083147820916119251994934603111692594172875242642515588306155969236004552069674817646581939534973476263127431331425920013390975708714419280733009205919682045045579231205012808846228467469122534320754991237295908275029220640678606864537988609042463743036229505564684712031663812191928985136349879423398129105877817123736094968686845311760589025232744692642645776270103734698571150939726832198949163667489935082020365805422437480317908700079547257832438015705143177899014592308994543361837109726485122212171923851992526578973569683585625934875230267351885302165027769564130268458474486108685121243145984168916975922712792527209087414905661166949191768327863907197661500271208405251368341744933721435925300039925754229773312589750765455836439733838377915593360142538318583257773427764225424848328471053685771792322490592453476097479596241215681089092780959834454883620476002629787328244159419758535298808052599690528876907192823653684357026243856487550343915977034024783500502427398411033772172853945150408365154694124766963582084086556481962000637291133854668675965103324781497790050618561443134881494210907571043907066433484181368211135221069141983387673349664565144296177806635998680720817314555136065235876416699269461367516065566474259601161338876262233638370629362490196566467300077553697171963063554275570622186640771522894560883938771241664951220260008804236643671561360315528392116915141636130416231907855536030211394253707861526690731872352201636575488787478781508763313780858539024668286508514981838292107185064600235261538103218096490775594938847411963344714316261453388838930498830569933681594565452650439922702993058031120478042566752634185355135232461039499632665476879908632950498591263064020633849290180047499668070243008459503838759070058220884510884446811678276890973242000120349653113082855099400671081480034764058820370585280415347860849780622495911560273206230459098162058452010187899691575945535746755576063862853606641219420760607021171375673579269923192313748677687464617317344309318327235262697785491896872711167857361204722563427873020582860000586036561004630516677425538754035739865736593851550062531924546214869095932121596585226020325249563872148409796791476170464444090112415177171494290411992433158423607405928969382614655414397449262864942584873252449337634002266123432330687440875550236401230858574693084604030072794410197412444894409450693712268931470338257101425306781265618067270570664470911231887074010349886804260034322934187984840871390482374372217240531598732266229700873673732995967695236086936599259736155503624353208575157583771341807621337544212797502049547568387251456661116633919028639163335852889663222139466423046154369394674490103280939205880042461270753858134056859554636937128774122952457899160630283272435682949587907695740192804059913439441318756485952931256643424799716260425430542077629229508956342158523462485873790400322059396969906513676859411410296061214121362406698594486920882436778316148656018481627630625352756449931218697953112441991586589748025396608273224380730449200025624912569737490193572087546145773404910890429333570842317012532097210918343128697549856838855344301059273902599469281177769847928327089968875832032724627358112472968326454244851031507828878055067085980585733013751414579859924850680931115570116400463550390076701072353074339993520287542345785659953783889022864265963068465980616902450535364988678648973844828067042828857018498748279343315239766753259449241609720283323999066800927993657990542644445731808905269496657933976669015722183128625210419937993869768632851645053233577919100933854578036145881814113463032290681760459655943680465468428911130024827684032609266812402758841128050457913921504157047202704854113607320222328145493516997212503131146638046804568462646250828014803582299332202833743683272575597121485596286178760489070223689993287623543992965284161001457891059701446660306280110264006476592926396978311385586069170255609121645712509574399690562327088720298125734967353988587038955157916059829670453819020153461872436450396651743411311528533826057043667653461992691070206616115075428768672293767582803079948326005962624269897923281674921756586952285676583987512574323618694907812793297755807134688474524654208096139441753680108027934783395910648080338551565263582163408633702623737158105770639975002330016842035792692246917176365083020289870255620921039930982258407904491594892198158523288250485216068684313257819118936599176737146333536356527743628861741023364009352107892899493055137089370259423346189501252373521812929151139439167517891443896960565923828058039538319767241271308916099646511329079301540036211422697179370946610120343231279686935030912924705629840988973309902318526937744196380471803193779395899379454306835126419387275042424992563343277955615735791576808356270409723910386052415380476304500008414330290587062445028689112016182025917332216808333728814877945296068294708343175648030732471295164957260443867656040452528788674812861234368298399650297167297967385064279306906060921066151800520621356086128822973019805099843559834320632531689590144401226637747675988686568352105059078406197851220518205046745333411635126355111827007241007907243125142066132073056114389378900907544163552429326784527984112743283476408357626128240803070214399246273155689675205027220730901637594975862616397063005513658048951957786826148138029829879165935904836023279969236200880112605787075003514803232903825931683238441384482296436215882590935576384609478208601449864063440416410840160246497500920437154425737755315893568290929090759771145945627658555070305227400780881766906459354294502781028756554234253174017599979566386628644400440329356275888803923919614312779434313080656142011833465488760156534890101080470183984930610177869676525179084405846893570964615342425348839088528645532419813815161077352531381848664410970199860838578296061237773564926347970366466950040226313883151478128915672622518694038726480520342720872554925722212657933172218251151551229186467426777656755527374095791072823518050672930762339820598443920501843386521176872667608163907571656646626155733669371905205992291904212278858860151685129707347772270150168914166208325711548317232086461906844643929707122613576603806447495180472291485233950971842297265834485324698782893244249824622029101449766177989115680845168660198110122791769142198369235089333295183013787494877665179526358366063087646602322144885779534489718156720413097385349799687695395538706302498229803643470511002137276423158431648837972932426436913908515518202239053267418054050727186876710284996423741183703243414688173718344867376978774463145576599646153367194159229914815100414039727856983902117415677562825229370834067278839622197541975579310014957847258751780158862067228895578916521209681250707348040799286081816868334977711349417969389426376328703521737071777610417166892826280997649453797392842902488023279590983292906374077403545746632716768806002589257657367145263954933068167214569814132839447696089657357622124062194419346338126013122909673369197956743268142487279646016375839389283830946708074821306295304750381832565578575666667998744393234781250451386478107476408269205586522530512352353864051707699551736618720207501242925380213231643988259508980461415205950231179331514455073469986324945228753440284180021653013979194345764305872030910608475928968814728993347970650705295730829564236646705535832411383654837626613225215366778067657314339770970881178052823507775653518494814902012958451322020117690870745186067505979627730710364719921031765848084091729183731091217407223930363274334651601949239395413144028146538882191324076607452312267061613531558676782282615270229236423716846216258939511397812351959897899515064166266770327838129932654194279976815928607529667608482769547332681534027730229598661162321194766515358164737256600847416407464031737112557293733240923163999204446164188616401934317635589629206449561666066552497930240271114818415917872792429523904376102518260238564940580654991337900350566737613975432250916411320994117722536910484328406702879861462062384913879813680666930079792005663214345353466563397175910953664509618542380464136133621734666313310294537544904128422468679145282924045965668203825932278013638764237598224218786225977419855167831335736511552231688743650920080418327431316616535256611267107726829054584011609474844696367753352519638940831936160505056126116209251240257343825301643610133895708232765975408005067217793521715245960568883809926125368660680468331380354754996320942312185211376904064947467641727450078012283898537998714684324013006195941530643586849138989412304334648664487944426095830493737437525737848661486837201296730049566568231583821984999587548671641703577656912356309766154613658836456650601874271175668932447042763392202299144229710282397696031337337240948472861607642947094384406780181853390727099058179158539862814454726755685433027021184811097619891272603136935711624130915515956552738447780958150703550062285462532616165724944022567669859480185646508052953098412696969612242188881877842090056047826746687405127707603556199293681903384360135640442610872451501127769614965310187054861204708268048498756130217760232811493451300341452195810409528765811153806244083607227658583777976223344655463532430072592879717621183215826257746566512731696720335520150888101932386605490893354227076712223441408190967585159494305032279090515049400789704036930631219932540410125523280657929060387911115260399085952850428625434266129455828294836098259719704282272815501663480386289025082975293921052307069566982539677141524712297669075274396954805487723071180318895967781690187848015001612840241286737936133007134092278778019207218818841998788799637470628203463150537139370872131661146588397670436398197748228268216950647782255728387200955099222443616796280272142332549323286576463934787454369204102794072989111034700227276350340914908358109379377795296780349837141763785124773211417055433639064055552336686654576434165067392882272771868074496744069001639474262946825239541953061892440945091105248174778173160015636791615493582815688430956393737451652063904987702703685979892920709715618660624200489222772779048534214357532733370729224161845256680586018067364853946629063282416139638881803253183775620466309724079803159127893649553972488690200096341826500274215583496597031255322335954586416899112039805213943389340330592562768499390606970474624387399513533111279603567902263029823262341808250213143977291775451905101531791956422411820057629973905179830633697882096688882877881393336945725146026618510023332038626716445825425667140613372958123831640892036498552618183328712082155494716461892342581613886278433091309426822646282693403150825977562989035805280519889567756984362847298919963669036828029347715821522464598312213811858457626043299370221405628879061508128890711182195058495314809567269205441604745414859477477207271765045000481267688378139446295369481458457071791413459752527727561590013922422109654229742391638114708531106039442348908804400943240726902495503895429813971592456507559399392840769985828851057014472459996793569005627755808842314640171673256622743064948143513156426707357676738446042571933977024372845456647416848249622517665237653112696583074070951582018862591048067962906873254349150699845989421347619430812537131198132711572015712170057503763103699494801197131761138038669145345835009090542872748800302117108722776056238522673335625770489528530407157227707449958766829724079579354241679245396399380616257176464452415049422944867910211462532195402733797910998712447640090993459694209823271786822722361777726298619343189295475048347436687832549013206891057523499054391158697464777530975398644547161866396603600037504610423406828837086058473576599154222979444389372740768550123791515077070884070446219253223521840713676727693961930543402932231424098870725515875027969178875048096269791036607845476675893196529132791320323495741646679801719985113604113148014684762412006971056975484899565676759611222571299996041268766275840788175172706626736521201462280262462826946972125730555407527750332204001709070956275859355240832939132564384396118062805480597306819845988668961788994935671021038027438024131757624352260794875088079328700020353954602214269208299380759882657256713943155337616462957679125442605740081615127304613554409578813656951315897749701444778274385733267859507378063338029940310134963521429286920935999460250260113362902050413346531406104670928560143466827707673359957337671833696797664468538652974572965750935015433548573036075564356889666906180749641184349726321361299481743137148916016663635660887162888123475235740379432021685517157244404574629315914045885557101903865611630808646562150998184161994246379790719669359204640283560861800237279362926165705933841874561374044126913315514680687893655760183029351477692269668752451903912100785038870121957537178588931198287377035601545038563579472234730246841018002263960898603147301660248322327590481407656585116894992060555492517023260886933968130472863871684077818070626462844132618892212905133166023778629051950246057999860648648970445579302678428835456845891355888917617686873573827869772847911789703264656350769088085976322259942642737593522653310874262463900267680146688366381127288904999875469060655480321791772505358154983085342077313673453150499479922948880035512678094116544710013169807561760645780669719961184571975208263347967758408811447930455723685335417896835751596794013765493631154127564440845795188236378279594036372174385807695900470058683013848297541396357638479125077860529393909671393054642875793362482624832427529650959742383614087263022531370759693089875564314551870594631728172495976633812254707453617334663241112089059697232262691600195146168851115422846779276641548287589571450484711442236916231274801982134695856904336728896475378269485746961091117298650185696014732818327144752535886664677609477760599764918625126705703035826299778125654497335568495664539018634053079380053298661708857009295197768056938964384117646850456337500822833951348568503321539082154979086875270007097983863220431183863089193138987120296070284694971444295287817217470484563559800703108354409292998078156148264187170342474271978286900551325376933036530258057671477295814112462015655126527183717185027694591351061729510772182342514427471592154004399705059870966599809917529299485262695068834343845644911274940559482574980643760517507125928594806729355140208262888973070088130185554816456562434641798470896537511175275438033562632547026112065582183812982902970257924380931665468992357888683184426923157568034532225801498912691328247895959149626262062626063515506467632590702274429694285169261778806862399252547288712525892249939664795703435405214805873521373034876974730900187209821893890618038749378239835802995025653721527144988630046431742201176391300805145241074236462707782668180659557318529212735356553447389723857131045901649098028767541156778321113179022544699151919085493873874317870589589281505849319360339876485989906082796278826146984961821148106495724929987569451990210472861426007741205384939147027504291463723837881943401430094838559322167629993491950176604486693479009193911430066812370320574831243102269518365538339650737546676884706603709456365579136312161061757908254104513263107302123599708109742812478450684547441827191143094634265273282079576056290770152538729060179270884718418092534981513567772934782562911663997550544133986595126899392407427581010920561636464256069182279425589667557119870585397913745389219656153227534530840845178806248569729045881493896584036456984275571675963619387641238202824530882477070798592585898197912163822334950719959417784979960977646451011510084075577272781406636272412442773585598943896224612062411277592437312666431926160709183191553090978538086813063410975093618585848276404352916815739169882632882684066193170370280312763214881142790727533037273984075420798222402045224345937218981704220068683431318701022782699265575699043203479892559021470763916918608575781472653780409301449037897419541655556645449875678103072851860160906922304877090644464307449148593535719043925814201994642882785382675488460072065028437532374577671410847216681451455206020813195859025047007320584497068506133817616518046643639202504587769988573536141359402692889765563910033152848797573187286718000190639069491156310771787746850808960885981194954128099423684002115881155455376844453462662188225157336131293142917593757431291635733714920235711721361728047863707406285270746987590721972904481477201161738588800235483899805116038875945619421259901528369467976823198558595043769991533904458990499662833206655678497345171414417174811295567091597073230745268543331345862368581043104032553838797620047646133709473469549135686012952739472167265991750076968792597438722327792914190599154290707346710615418974914738590812253375243678720078308069064602910771591425084023209039164105429046774024810882589904626456782441226162953114943516112926415749879756597028739810820367524697763977819259036871090319433650405396452402747877104647507284121689927548343758878728083305304992345138079671636182740116972097819796701406517909743277530697456692748118430092547470800779296970806129422976055302658321095895197319791055401572803395677284007515248763925337195799167848046415836602750306394345395063733633790228446077182876389046460749692380211454804103884136511202966613698740390088223814245789575751720194484165416280160902112446908498910930483922766500033038793887551088239641288750583312423622747531419719723674466879477778080748039928036608860297515272603098332218131189000996118740124330799418240692786426809182094422939818603991133896879296276397878173235046015720428638063296557403938777039145134911720173687907803488948122845307453579315309610618479843707082932076972592840542433455033042617799077465991368112602929620983817000758402374633438065653359456717338693341674587830861684458065968695632722994406461989967603928167772180915132921273317244646639301833083011625758747843333262784108456314792151385115085291578223949288940124220807706575544310156149605951388770260546923177213406755393573518059649414321849620329236689494199958645132307123392652551078519264092557990555239176317200006660141494772903905268035567401735589636550807169129251133492152364170906730990135557554958991660470534089677872346646995439883160584902415970510004339164695322090752788882624580495098085517238182809056809791294427070562124259875891989080238146755286334313192547143640510174432416800401802975806458178514012731002230512853248690776806108663808508250021990323914404232072438903290417527437608824281762191462996033582676231837919194038435311308147901855084687319212656606168117618039807463570860620672475226274018733152956221907023337775884560069009463151078217176816241783736136302881076463726923355404676788264827495707137353226365587432095360745634088824731424702265760745165686852497286097018981725586069944850683738088711127752318303166782477886017521871846171583465715542819107265065015639157396429148230898709847813423646833358115364037630933623348206568824602347989130316033444111830421816828454414074139400446155460650876268013631392774442512824017726731587598164077794231892865872288144127049141612073762085530725290217018955227984565148732163934765573920939411052160373721150525821287191295498181635790152770326739741524360556858347962442956747212963760689941807328357467506336141417200940038484348598951132943241554011070985359962927207581620301642417898075196861818022760710190032824442388893925470959545548041655732902360293360341102531802098503639956553443607816245115289871924536218920564292459862799168517526704002490146925294455717318813461287790182679620687712287724932797826410980154129520879326299889595827851915567672446801405780469172813702771400897308081395876109950109164609587672374105626264133867443461566039093240690054097329300167822883583095806759594577607463477084979627720623388324204844323712204171938910494793429686354420721090409574309994555228813192975468974425476940544196500191960247910823043458406191508242684631621192691742668057171170275438359900994549556329895847209144852583050185977557130886070411013137896508304785913474690734761367257801526510927654894288118389405083277476106148782548909080768056647397691291012183212191690218572995983929245276819112718870367546273012110390887465852045536510173042765751592314650269230387053754869546808843014310593350414153478526248753409211506055924147941231591660067962800271834432467273345322609544008565802157591211491259124359954401721361443706447581792783184396139473981631453123386186905436482836133232053615169310860266743580531571414179678131833994352052459863871517957053353855140327000914656246398897276046728116108407790286634671059313391281414599400349145509137281989233906224839747210815258706958221986238157961897704961520752458259559272318800866293995177670626222214842781491166310517740712083323191943039070865339321009636274639184135704438357566447482657468080440369607620690137244675833370938995397272855482639158589796095524275861520474157004536030188975237613603240969264657942242907564910625518953826306538026709785706549230578268988479117338938341584512426774775202885224345972570887765525956803248611636874841561875331530974211029724466947265119900259186990362745066746897515892717571826099236733809474278065813980590142425167172740519910229927301057178897689934735108465366868129909216581115924191971778412685713375327067583683446513628792649634476972855983045384645987149741396587082456415614033204306877596604776290573103218877192396898910956368072075639607112825279097468989129560242819440063974041710799300746560130192690446958047533014936282670957839884888356464776223989337849459892135050072138721245762093580275295005889833295069332415886656845605472364040874862547185545771755396843162007286709609757627379882101958111115807736336006888644837264312669134855776518674609773879723673493675463509090177304185840917597425399518150416259621583148340866279347096723917144461675914828333949036815207228714873580583110355288428072469837047368246185798420364108916277830741351669242485698862740338117887729031992124738933747422427020468244414241311949553703835405509537533461890890620656752144253018654836613490723155677618722072805392230983613688770169037210349941630680730432422173326490293826385769637400865953958586924635227858508613312028810639137212478822461799979518874722957973633549065164795114531464386961704090055304238139611407143846190303246064687954782473305273401354624020886545824520857936465637900691153183618854293051119970846074116696661093591896958222793312543823066535306942310226553441479283867766597910561284432800711835053314731802965551524299973515398959948021359324119864163982398816370202990888533679512591473711024507786843089302131331206442560144763557880872514609927883291380976003394436762457884906971783665924660947282665242628531220182769032299038235783791529351282398744243567785248884956005577713763156907208161990396930959182947889838108220657170496540834471154296936725796775394609119034344113069622107555422222468763269402411341481991398520400392595273385243678975601320639200079979288584262934410023884828936104566114232259529812798444954460163775544844681699299576330825733879629892087304363724325151960509925718198008948452828748176040057543513901965857494115769481934183923077032882748793485051610956455202865053869457151196875721829005596942274842710420500043929741649319824494105035842751550200732634258083969027984056223048168254336547280639329136631657829022399358293058804917450897137934015916730946267347150607122678605320462827751249876762504371064066777868672278775797996024440429272607515379464934055653447256618023360324059077537565122642961132716603278964091601450891966675728710239975981809391011515874569680868036069015787111435395671751784635427307099239974038611585678969791239915978556109711572883852579780746608421882831638112025046898218784295349349733083643087321541540549989123678406513762267192771429231957246793151673375143635364269816323592431094301546566498026467584350392175342335689319681908872654134718974646338521916679968174416595228303714795958227617374307953992703107693783887713162016052350072891464163078654469912159976634267938953503672464498320432939793134152991787303848558356170127518987400428785620851056469827434541464827397522851147815763179576363759768639142638253667580164390757096507454678175186866263200293719865998740111974654524431876079907069739817581073003292518890819500379506695439861192550178802669741062060710501473192918163173970340781193294226113549481860573049492645106528083574153068153790843621480625377115293656429899959312318210100897460295269807606665047234043458942421568801375450875895646336654704228936594402770596860021198950235707320001439197352499637857103626263611710238829563594623429919539368140353820886702622009541802928291399297778704389167392214061703690890523179056980076021662771492951540076143513181072916055112546761954263264559223754753177085911655147509645577490165888727086496609894990219176535755436842736278735756805978762711965207215961536511990362438949361293379318548850839901024974071673906112353787404657583308883631325155452162626217343178149123796257421628663989967902799972458119197826274981947471938824725594634039752589044308741050458432524621292573762903446444934157217271957890610176779178668399925048445990233729384779894716537436882338815291140463332559925063703803902211193733770064374166265036743288515656926630046832805683947284456830003631109885236425813521570595634974701189424075993561494390680628707247708243465533081593465265804609052981344786277035640815190012044445580379149955950882082538037777303397780135280085613288704466392175835626430183121316136122311351685091505450115620291661550392365048645629864316598983259795750713109488288672133027917997294363166932824852483040918301401054782679776140142340609285987350636356958292701119448897118223487179651529371610216539772407990025367202960999496418289292115315387547939456611016888910718116624213921223619062035643749518214494235890632378851648050600627938017380507010905269608312163936648167943219179402588213570337882012233653941584573549878182784397513517957023749733504075738543430994842681363926847810253413001670603723858140713128009116233295502096493155926561032187545289159133337520223585554412866372416934231170208212936629895658413621277040260543372994073423902685556731828243939809612381969751427273783617947318942465152368093379393563464267061418512263755034512042181085412838783499816606671328768782718799457282102402291108956606909157308800973957795313065832392486614770508587862632337501457184033467163749370636897170127370924004740643071637082026561352908062019358139523287105996075116108895623133004172092259660725716552553513617601524880948866085490665588759349413153364266325366545699440591746439203369328438716268416632405675282757321928400694878487921121700916749248549259902793106854019936582667660617775326735877996366792121029986207436140742823159408755446112354344518639603205036663134295288663309551475863793930970322900926790047309122019792242404913713867264977026007972659842635718087080743010643384469806608162650600908324219297435012609449382966807147858169439713995428325325129035212153184610952989991374072891330576567090663949708398491879805026417505154356868192693347350772799867295801348300044506594936172999067113421037650035249685363971518558799360403814968790913248931451195416291972072956467069170859537615981954398961986467772398170274388097657266927424270967731401748809939188385014714063216439858759299579059099908931735620857830759515532984161431810722514906418605274927621993703490716859380586762665127552805800551202198910117201187662395258164284286028349266244686011021569484190891267735187269120389223536278458767857340892623802184902418499353636810256583640641552177088419924326303800861187136143966360103311345262772604385829121550066569766863203814172674562876094503888752707725035218318336674648950152737410112652897593144274222503635100913955961843050028161462246961605271483639407427096420236821471873679338401589837454973155596967098372910698892768009731886989606547548625189635681929720134992419058159574232678606539571682051154900284159288881885193263828064377364768666082556712384041108878838590213186709969784629536558891438821019918764954430696258924571039140506645014867140280881917735063213555220453945713887437748922156338299427153965242666520289229152170674874629923062309480874384296657294585924333507110365561154449517423667771655709249316737958992158051221468468961384379374829336012607024174562943481280982841154041523975672551383951146615759888725400329430982577463045550962167616246133036759280062389786550653572590541195517495830933748539836629695884291407495610268541485434938604700156068236908450734418660969161758982723893809073500343826023029327562558570856933365147343623118424364581519045042566571153307596550169363393895471471400310031403597699060673930695557946270945424400483947424445211459787767129711082996039458471325239848924569304009210388984898876677846315811193565896420434694938374196008943444772135631221351245122266906912067932629854129075777223406121498670810107505625240406970432771299125093532118043955693321109234200161594166507938500805055453431261876220709178564958457435624867551869417580271844162414727021115806883357995518463440287667331951013713848295064138672743046197119628290088483495682020806362808981766625511404082857414700598944612025485366348318645259463157977713299215012082972129815904530641277989335309802013440582810947466100305463328830098109906740491119099024570983153442397130859949891603556222057280911266177223958384092154721197296882376313672669134471021049663820899821270562612901616323201353625399350497786139743008482499740339453986408416509574647900404113515910781102575096229042102471275672415591085220921665813876724910206241768600389401904103677771377057580996384520482873072586595203518708773804050087498622760454679458674191047509396223187893166094718286576400527446667544410715321868966965729883488799231752896710740997410915392113640570719020053541898882566102356548559828237281201005977197869154449913292382402823366804956015928194017049375499185433610285000866732601750869606573820556257950032792710676457314024240403448923148817825738361148249247409748172868008694021013710996018578659460714862592868583258404659967213947704154358088361729594999297088665650481130920528023873470561745666881316930305245778209950457593815269366338302308999551449949259425465345980620633879032930781763504289074085299200187178427619027874819383025289942629736182736495032776769865870784513035243368680863897828956660376993277896686989100924849639052779281126104065695562645002911670443982984413213333722391423151500131877347415124142094780115165924846880339964520189469060834806210719224822846929876859137740637562793648741192084771528200587386354063720814050876668897746732529487321546169434331230291896113975761558427165174299228777311287987508593731569358573648739196123886386565180417459020209198904461602095471451345000355367440257673261271589540044025463035361220023945000555519673749088290804669766446503336047617485727122885253196737705493294947701543539566254140723910354426658568812840111946978560890124843265194149550156831881195506205888091364910305199463661153747105847958875497130563195368437635447777823005740343641408267383068788508061808247631555786916920154225067317514166225562702945053216760899136086734018437108009552734278071887104478986306059491495341523997854418379826918567932500149550883864328889901425431423587821222559712766305189795135022150944430014843107382915118145252264346364746615506502582583494366055728892894277655623924570509156897730981766114531833074363108006988464506941002739949543550513120038084524553013715701948884353973933208318823903894909084719519447379609247572384014358243320432774338985586204331151804664599600057168840405929728167643618715429926775518543456824338363771215180829382225834000518360377781020091478329056339061144954224892099824405517372224171103358165968887883837577152206251735969088489466837841748545167338125217056601137576426854286752357290556157179429451877011627906095243423328237127152203440099154375778710349036750558909736493568812326959186030701737247482764141692143085965816266112258599909188019608873035524393745191958877920470359588092293296938484196452721907746365250480110730829765315685963180226573525526945801458892136179816363951144936734280077912634380385056972373595224201043946820849409721142747324657496342475757173036722655059224601544449152114654454444937169298558133211477126911483192248937486770525287295455767229954552559041123571840455842745484763740480772697503881126649139939600928048911578669133745271303987464754337358307848502095776712639945637849103983226180075030243295658614548371195176195669920252273656507329917671104902832730847903015318717709268165935739399504407857469773009387480771959041642708599132006723573826104402421503109288802311456213590399700284180429595472746262250385702872363463654677155612417029279336929150133309433621343628196180572311708427956552473979605888098742217438745644398599589014070275825241866192755841036543106957179938839941078110101439417682664474771179462008590775415615936825650236650369889154763597213270353625088979045304861980611326090611795396055821031134796604881797343365938339254901945687795749636508095721567791123482241335374998125140344615144940486190774119681074780560921420794737314089113421003629932769437087573502721749192088816894612731131233561935189336224508961912721836957881368221015711779072179835036080292478415094240612045829028057487487848054366479015370501005964195621263889329950517739308561915471182439078010585472585042169092627280006731964042265036936518388442062794998316541906343271916529967467395803846057372260898991508391740429676829892194369856771071288771536375185242492263419218936158207666035992483086273581488830912569221419308378147538272782019480162846831807118756221579785225348333243167623870683757033316256385691826286182411799527141207373795322673740399676057193637274905710578808870775151921794790498485791572395598313078179880496464195972917917147593204076534001604806440226872015097257968838349770140222303778607303734535347516607779367375715222945832584907188219129421601936136566765532731284811699959376559042685598752551806556967946665546691369239173227147061018697446796533554865529390868936730932691272850412679976879381109742113967969543975718070414128921901771363538258255459086077979608654887542200602269773996647586988242204949389908564750487633781203475896449950215767563088107873758356655254919623965989657535674051305977666897199594384938113774098694514516541187856300950271774151587749827209611977854546205360652005579720630854720759613423931010036344658982679921928019929396095764255148128245219646077285497732768067282989643601809237021480950300390535131613897934130397801398077160938612180362967585130299295254608927289061854233807118047366109854059302945898276464388647337827489706354110166378155715088176175439679253722694320830799800392434717254872348025487288663369578975232126118819981410462899259113025885642368443524384758334085665620473160868505938715222115864633880137516837545871040464411011259791507820326380168654282193628748275338559507722741082563263238321312112578947119065581485679363850467503738123569837640419845040444171407276310609973339976620467468394092947311154513504741679600282486726299558230060198379441197405469818635274692390130564003913308042138272294003911539676608407269010785554858517247091039614923207650568252638472491686512374772983544676365457291638593388237911027162121429225159896141071491620748970849687325165557861179883349701817185520252212714404420544343170308043968486953362279638669438487184476407801041820395075364926257851415613928306091629899542267739172385452145586497782269949059598392129630012596392673525928106233747215171251667452870362925847184897252936567570493625890095032406078376860520750751959804869840953937425480612385247711603077237435848071708835418815126247801644484330684692346314521368444336684354933431062348995329347272975984304348069300732969404434601909044180503070557908482042698522057366671569487690088505232992339729421890939462442445808375581354094292274526777339887245042607521850686556277275909842690245987999961789613339258170241975632081167131017662009774433601508592045071162204666129149954622584048004564982183705369825303803033631350523460292679183700134411943230489628783435450299076499906347297423758521231204699773120579774161213608471249704054501695365982190248397471695556250533105237319603852458813349512745224106518813565577844617944644963872197264298001323874083364711683042335950740424178365291122076865465272513873109751394007529685903281827054535575697963161061546980398980743427387483041244683700194997633959183175926091051495325983803804824142870887313147167744631623278812963064648308549029157251209067736334538207816818802092062289315737454817663663828499843302388225928575541014828684290680590864873708830817980625618731572689769284056892329724525705538044516639341317056172996359895598499902794385849562940235893118516031332251389009900066146572342908057958719705547767890557069664338941393723217800079003190604659377124586771429059043473357513759562202533080019409596647246022879589008812359844477212690919379179601812209843802916410279152768913009294505088826018073308445173445107153753700204996975869278046289782171572685366888111007979114213812473472635553956123998372818448719752458103515574976778830765103264021713272346230077875991746355229960300081975896200701958578398009314678945641176816178846336090913042441145534744506946423323646476981217731995609871143190201942719858057598044228956244631235857519505527096838798915413253281938691291937178108607900649698436949273083534754249508256985071245884037619322687949639435878406550867615500196191306149073526420845931292027914730157187019129115093913125609119045939465469088256969320716077417239218891145095052847085602121876286178118929001408656609078509014438165823409753995515121663095997114585280314003641633087276699216856544557319944684386738450829607006041238825266827732306194358346376040096006920882068226552999420888814587330020488856592268564531121919415580689498654669910359063908457253691176669855727133443721027123588456759514498087533534948483782531152841327643104767584138721663629962438911476522912497812577568230715928189160455985891128816065218767679121145807767463076105120182350644847398500039009103939948092691097933641988361972677061938813694779912935925460384390114245555399555268987396400765044564456857975009154061318731427951506206831883886500012616579064447276419053086194832183795726307790704121390009782063627863179111679194266124972531802032710177123764318486257078492971536459987628720477951864796816954718662467171551697446692045552835243429115508950883069701182784322682644733701530721605909165739992321648813826888476438579222503402916615102160657960296038079450807330251254584957034136811144351256855113630674880823932110727543411859925016302136245724805428467920825461510376993053095703537072153247055532418778708638708595557897805611500232302460473184636590212171018947419530355259664453028156698918860302528905793400376915667030596952449620089932604659664802522069789139328365068347921936464396849939002561368016630227781167458824763375544779297563148518722150662080074156845178051258407141125220321691121370538790194117107551258300493085754940065645991544752070103940618419927941188142015850552669609933209940126363838969633955455514205455794958344633344544578657589965160828909731900231013942883398908273449000424996280867589273831168055170626265074747825742765748447004698352572940832866339726219101645811816041389015646230956333599581616924540920033702521950799485917815961969363343926367811584003139981491536325448996310300696669300533018676218240398010962327898935552076144254402435911199997439343786975033880300867179861677077859925896329872036212717664319064728783884392067148848422075096863851474479908945224335405743535778025167270016994665030844141631770047819494196353491305557649368133255961609214042325307255983452181162897838094098495466102055133920139329149607172212417355025134268470131720081475260998862357653049557818004555157698461685184077642253013100504203935913154568841802799055543472440613975466150691047031061072255958280572429999257671833270823066419460640871203257075986871768062643306553438133103884939801231683624320110552189163494712987258186025410451330211588466029082884560107942260069316133604507523784165240099368826328489791989378303435461891723040769459381951670251351756708815365455500121114123886326320637358818913938320376565065934503782369877468788358003410338887535971472009351537236330865750763388214628439296569532233110266979161457898432967856610559161194344657486432151877080417165896188780216158851354051760518851820353389858688268916490456439544519289023576520703490282151800737930877963448857722627126611665770893354566939031240681631993881124835674854458626813281354987131199238959091807452159212179581529525445997825633240025310913657998342089837565513968766568925809424740460252881094689598934996804009556816005793647530299948673357075742939876862583700742550452355272751683882675402293307077701943797564579466272625804965203804540161900878286928824577167827931964599317582017144362809239966140448942642304624824990764860827307652269537906017592911521181423429306471886983351700915429638124900138468141465546365047384407905707256341741245316286803771766079159086931382068230572977825937037691399909647855901267483974077826342101522349782773797304759641487386088703848444370981013508592181586113629355190665220939623521095904323843009933539581328691507472274678734641242607731885206572972097515411414606248025157053962690140505976955932334635784444900487296071238080210750518251362687532361722705211051518268568109619750727886340187877535437347405459483890000896076264272265427832184690660093775758080248385570217842926310186671560235216060999899010898813261289367551283098502590700216934435746884374545641522218416470833365260902404437723135645264249767219049466685085971690059338207273683372437749077614651638198339155176118120344487248232512605705349746497982606982704503408069954354734204689279367632800023749068643851001506958161858859335361973114563091768479766251700039707213476475023288154767431442962461712211750544377054513628188914883825938363252701322732422285639650182388955961853595098893718767084810214010838703884063556011790994186462689025473043919632234078504545971100449474073567721142621414385128146868397385540376867683896281344833394247591892367225102398302279858765003947420685280746224476494547924724187028882832723590327225807597653702759696548640465470897880407876743606885737134112460314501806265409179414310347856484623098896748178683348816431562758689579276703525692097128356997964244472708107108125692321919444284256001823074018762630242506444184779318255938532788374757685209901148331976481649766508569951783750142535244338126586593596329928243812664394980237363464440161489665949357994536476719473948008641920173519513419726592393458399290865091538433700789016288814931254668551542940175258979611015251129990505279222482516628040399023151292622370230984024144696001600477412699957049255441167036335048048531415782057409612903890638612538223827321782123611386727367255491685688889490214293085168361398331127988673754119398889589722292898329399132722681537913246820523443921596699598636563910123108253222900250971524254253952792990349307638161643593096047945342869856528421235492543283117384957665317885527694143457582227845741657972964352982972278973912264646170228130561124324504409292311018618429503900628342214294929355519031944665525805694618834347163440257823961229706454484997778656628987064062528627288958989705437208325727506194104409368927666078380857613518776808068662315883268535262329398611326016642087414926375522444278525693948187784014682479089061289608627774719061298070839427864572808815870691009435465008783092864171884351298502655095434823356044620450562174338087813634087353141851795238848156021140119932276779016814017659275933516619396687855964759623877769293811984517064581947268362732325445859084151983359377477914087571032237143713862401367117337177078079340864480606629912721551985658955290761742333920875600312523630528217399030368302478728407078687705201946123629881844356957292485902708783137244864155464712281125532633470612065476734868751628337394505113144332768332827203357562717353307004356382154737844234604217648386071905978503979571544315397584087450610110633589664301506537317637010797324457285917586973147391670456397193722341254930189537864734150158603422706435437017811809118079550569869735952255167546526610928884457626468404526080356025960936993191113755692408879004032163350922827509700819073915288899643649874380453128062352949238446597956694885070912750704712359907664507101321690266802011548196977264757235755423738698493364626327983576208460806011250484088086379776291253947140313298527576101350544770413486050096332678286774481889156404796222988405141791978819711409494593772152083308100774848840237603048388081812470497005062296825301460416247484337522362300767379306444154905114199366354583325503929098799853732997247034298083422579778453678750209142163334238147919106034898547252150688292153515827280135055266261693595332248226778627256645954580314821384842450277170683026648160016773985653832956303019444757485283272887549815886219731260607045665972066877787945765979257282522884698684557380375464879825887439928849151579074500389367252819025560268521365817090679594052484453974126012954364346772694352681175174838441427406952694863994326832505634952168839142733880184527483609273234816676730033224023486001923808129268320079045955752880902877290291835389622436084729766532081493320597280799729068471727012413861839008314232153242029318705719286797284456606953348821579590522648155414232389258749097630818373769236511723268237640442860741325939380636251698180569171629996870027977283754186549066095160161438398380685446959028096063601876804977628797836852747197591436941125730244271384280146635893781246486468024520126332159559452964102346273201404318032907573790575525482553165208907404169193547206690984855697216245667864784038791603322900786412786860521422657875121347640577875726121424806310577675483068598750221770452515931680300769516685809566929655124003902778353244586176350298534574864933227864026720531586119387404860176473407990906354898073903419477113942218555164567514478129429143251124524277025600793734181994247488551845931373456120293902599304853795244935866615970660439851588194960440688517458859300684398179946782868597257353695907577010895059721817801320060649541608626568426334599120741112429596852922274841728850062303331615727873221240402903385030613487347748977429961438636368885907499997591315482654596098202207083598070425576930752484088412149198544429780956324419127958397109552053605319383922010245321067730397838556781914930833873812630933852705923103440922504405266721679638747623794615267314513295133604699508473584508207338555293707790653227499393551435014149133810112410031082667573106661523410589789464738625728604191669388326289760133753546753035682956056495271160448166088637363986868673072568829678275720530953449418483825574910634523215926307458073096034642419608702431268259967676487506129503589620562687343942598877773723814707479373226350164355295896415041590864055793152942605627057129583201373547927746570646657970148822391954745837420984094305452079897615349494499085657201730201478195753353874675243581755893332045120366415954348823681012324717835416767643119754284856405610026483567184366400008440676719552891954969516651344085615212453487082067070819056101308291531409944525475471064464640874456319441792213436311506186151120977325846148191702020366873528911884689033373344928904659799518609818459223457924158527025538510978760241195293606173333809948122871436112121745287670081571883063380431645580004182468968146742548597668601716763267913666398335523133985878808235423063808806711286565968921587543857771138864596350649442191669661294362189806808453104169481174835080244777943205818151977796610344687107213962220719078539807326973933702392673340202932933434684761103182498109283917058887907185918124998557057488091370702568720171808197483485386893980062139170283543519527059177764948142993296028488974529434962609065284998773026906566374653052452135862598407118416626779692321469541183498717675441563659435225802144994909462451422605458248292430933464583949071143172475320801673745861413420453723722521426306788186396200025988586934217949573108284620117287030100279330663364440724119378295915591790514312348519258723488503708957941745409436129508648342606162491009870129830304272653561235554615967031493451246611076994873555869650528159695640238847876380798497121837289987402446306665607009262179440348980388751800093020199325624189685079459721446893382261834489897933844685212868214467768615997261979887684632917705551573118582527796396997288123801681278931758582660949929820044750450825973010897631599341777069989182306417322498406995682476489334371824048406462157804723847562844430117667637239993845652038413838405184980022438980558521776902831565035898569544025684096625071903978725324633499072652687464254621315132905451099217286953931838480935668645735923480797584038493202785880773728936550365495702407187250754111305662417249107113919964329211689738133989761246415067007832268369122699798096527316964874060861362807104018818278909117859941918221723350123536474472091481865828425052475863913216021429960283748033154422492726816442608457150450764096892863724592481759014914150849165818745180405618597269472732947185078460993891804539011633901402049123615542221130957653421747221688869360848207837780937193125632549903255613401347638959054099648205413228433664803565346150688018411438337932255463184866582538070705926312046075831144756477466932186367780912378792494295149539667056734448996215967333173877247390413763553746185528534155551173079077399604674091493254784088500354499727589162769958590480067265850473958606613587597572970495360568682233442233407939066514364227036074019932565472943143299638432396647211777629516061491016504416110838021615451848968064046215085726117893330377168852468743228184279083937413791676697753666838380023950410510451170968893759994578507877004412112057926104169243932044425082951918677835188177796520322308998080234678124160053428742050244155433723832276506587985113953404801363714271508065918949545676354341343685737363866711453131375271290209646519127142250378958218073493567403305705484010488658645502147548206007964155794014530273335809006289081340395602728417913965912593591102914226962074308434216263868476156978104679783480746099813937091312833086660262174903568914374425622097500802356310013793804247962763543968586401292678062454054122440719682821686044323026877707950956268149662631188757526173115785869345492057476169895030666250110509494535347845062539893190349394568347727939841052307063647927760620696882578225715041451673529868990609418283703374353719293154936268203074325280169087988180557362676165515558765145845982124240695699700002556163767687157716073281450809141214215734270164542758853447836957179214581066617225897994421350884635723075656138937259600940307433126915084645329199598224074117558100535872076098065672977511206890285531720668497878691233742697679457085745117529559312808202611173008026599161281684568121790217979521938277948428224863146845818413822243837171783233151180033775579132031305269505777929400924880852699706319936923378528573077335288004477076341058771880079850172516523724563526644499023982790030068954918160974964831446545211783364768395674345733400988770314646669643800098746931291818153674037476142088701871910176645826249923080639790812466818449671503982846470913339741226597497311635410430465830505321534395121746307681658310246165537430765668892976406468191799331516734455554867407067267862474068178469450710270490436170251641676347817319948340980901955217356145037284496685077665420631068827765488769417692778444964839353461156927217680827366171986067675012048815984479041097229814098840911079887330297980138448523866038061716133036871902837331130141236643180520565147851823629376326610170395856752085882280019677586566441581712503504865757502422498673829160951976810151062443937501965160657786081240203859267239243722250441879988499691325423912576614724968627465614020378233041910870651452296145876505408729490602691585292619306682590565144116054331959964689592268834270006597184794186999706250953759594345803303931153318161805425620745132825775367945826094246134400554629604178690921745939898155228056330839723248538620841301051937907070842069780043516612989440498867759945545296003543108852378536330203616142384604045404538022511978285137985394857916379729236130979585022264690710874223865808255661977479713043409762311049597163416519643175497583021722285765034928282592236529226351994420646612066070309718872646639233175065325480384601233679539056060320923129981968170379037948255582411525547261598858811613446464652478558074854768380443285354630419700097889616951148082037771554934948593935392117431684758168626916095203840910776101490393853756128360989165358842957325593271460298328457695623160247924267240020430921468835629137378053020099573333394343557432771132414409312488886794507453216731659755008750138730932469316646335017967557400570652478712884413568876896442774936747415936491013377455017992259700370916994425609653979117260518506310625465687561188768785444855927865314509295085707326400902259637771920620831173302617447236558751206388393579077040670863917351471865548883461156107230365004351242245980508903423292873919045526556293702777642403428211715759159238969218465244836145163099882177468347430511661563185099156694573292153561250106839858978914561374482279990375371114791330667308340033722215140590716476910335078650033379325502993525034275971299573126011549584251308256325082565828179821286093149192714883603641613413637266646410254842740116731553915381860213603004073107721109305234447341967533392153602706552319921837853717689913602992620813996158840603311063100622373212303854062464476409211571178623351004643311227655679574507751604779078942018932658097869326661813328704464082604263523560344788131455998462746423693540513597971176795123347348054152784162640455013080075633742486900457374672316558914631849854775754206049490616786011618712443398809314349242600910407081822596467482295459910689806356003495079209933220096094280109473062135817557018131439210274906044536740607406333007744651611278318756208991714588736843317357092982861956605254424148383907715632940198784521064969893499698307305170293419446441341202384192224836823487525867991745573722819581172121343548759646048238209831511346098821360031199193430881320431154426256648511958037291655000834638870049632323521446952969356016572953518370985964278046599460238685506564905391326985563867777687368797687546616873349355904661091906831687501435333849327288533275931075855000305034898614360156529288264909848804992532164644397406407118571883214870255201246617023826500073112743600619549906402813816799912259994081845255149986124914487490923325914779848518174138515578063357537563855757392995993938419863911985891100402675848657281958370291694255535858668094965634046006415799924693689538262234603522067825199967964695958589212039341219276671086877082194363553178670061640545113668697326423187451684900707674225491114651765277924008328472103198057310291522334413321158604426999535985399571278215727395820629046257995391275667212747835960322996509964340664643215654572946294415341702848847971050396824722613374537581476851568581062367986409878522361657411622219242885696850653222741048331879470477486959903695985810924821375799169562288384252555930615133663067718262136832199194398264627569598173236733787787821370899522205997869441754290092641917602913447310127186980235220745030638566557361142113364779021125574202594833459051059953258799487684370640897758753835629024141519060936775523220594966750641751385040483021724688093128656016957445908759802387891154436869677758352725737790781707710548676323798153759683658385364937387379770847205731887137404107868448989033741268029089477206335146206228941255587862643665278381583762417656597306221964744557732835915150259383661583186756454238434646685187335091620810318005136747742233662644445645073584070622070095114528403362907047696235967520629163666877056465544275252294427976448582355467260342245499122135413965364976305154669505937826154505152678235806231877298936818438602554991319727013660162753419792055839181384811730639514117481496322910399500606668352902900772727264427107470257282035948746074991425757005051715430278546162527213421821264339347034059997173950322011727518592714609152922859229188059847232025620791049689228461896515529672477607892502318212569738041641804952656401509035882544027131046099084558200941997353775046009556874871665484414369175746761866269849692268272703863355284199258935485899762687726170873998307472450561707691977812478252804862962707287229251951799554906221249025080526954145512559662752880518089201876314197436233557120577704092147795658513679968803149099488762164982884415720640576931457099695478496287167349642549654690100998532245988953034747212412634948256211821816723475562731483863464094070899834973215045212175426754906848770602507184452656665646865183702802454014802012299069132066754444932925919485662964066871979122686084502145953529821320780253974325241519132636435412290786243835230124652893739738563423926998630473249983913339314097757624492673064053148824283934840386619502214740174233884537146746302101629809609585430985583817840865835635066377151098822696099295625251894884714459296934069243393587017870039886195182940193085278913314555149815187160729464690991652480202021112469561465362383609706047438102130776435592361280449650338325348751291131326581445693268854773993273144206751139078160729898205420656203187494931734816712250862659931156431729327317006351313495292658986017096641599166800267284723688992770646205144918763040372463588057365787174708920572687101722745649034226423165755288238174855376146442920608217529301586064612482070252972115137259695111013226260739774086053228263703769599135245552465958425064105407279519777106084294075274331212211481212329912262035939893537392676361639594427578297421454398439871794555937397843740060820001348515308363853112969426180659729471940334966770658089005909209263877774991148288792496742748922847692125539739244427827711508689214080253257879433988195667553456003062615735870593140729524885518694322085253306003595805057141937130573781871409251611878104124191374568845998610367206686886313694559182823991314515352827035674588447729445264663390548991553499657471673275637307002558637867305275338699800035027965992194802685567700117227747661379016375758103001539200190341481406457279401452465346833149936419728799706368487985106181436047532997882959823721492529911169547512552945768472303440609889053203936711288691017946573747168577847937811638737024121346489706971085991863902161742413130225441461238663255924746325034848697510693288281108704596926010700900470190273909034401606762266416414011921298453403798058200947048619222208216130534062282044508442179634872816928524640673396154217837817907440554357427853687816990635404753021598580494834477183051053664540582355744045991331194120965170596548399112138530656157124487966428058260323345123605942519555066356892849842383527230731328469555307615232526011849070791503447344119236300709961510964610955450511595172468892253586843301190153624645149105118533779024299199933112738279723780739446473974222134836298382796073528528558637975352749533323168173996257126729195192001152161214705492772945058106167162523781064022351676781968044969493615580681327924429793279250261201652228061829630049935590069010937614994969413876467321589008206240022138128277440473475518948427953967544227334859135672407007854576472107810804474939004944214435911766499498418097619374637671698344382178064382922614319000825623838370228901292150165600733934157477232755266315697776882702278031633422660772038888377226839753668613701100028490239277134902480778667013420996625947995987367464237575774042228324894715017675867233924411208042837523093490993170201977661135993382845924459076428621455512569596996705620812142537561716402044304429381017615596447653801630624059423981673502396318366499328226840294107878966513449563102407972735373682285273948491424740870263896067554818135412565494028893034898043842210706294385059206139778803957502450548053111679398701546148771188999027767819792144733852462057892027525901969123840007655062620351467955701690212739019884100687011274655431345422661945382786192587128965710665492678768610285368956853253578484731453306432843051211403686933565828480846241081093909280569762236338997488842413988423382006521376403431739343516802743113608235032338835778825807259182120686765873562198857049267511581064918949174144252838225699328246331988092564258256935636762591190798098696366393430719664981155022037399084822011608146967441041314826276414303653547395319595181200025164542851329895981858263197998510200357709496526247475898759350379293203127306895682619564190346807772583080483673278893252530009110426740256480982538191394144688729337644084207569025227636682132051861254753831726724429294479381399248589924349935825639828650591009814670088095493470127878734437898681524689650245277473143111649896992087204135757243718938117659075687947154313822770629359889888513841911517674369531605092998244135046016994193736530010456556637444399971914548534917984979010396100251722599421622896844655878893362848116814629502586442001677019854004386593664559132386452004887732305781830053661449815732038081101916664554387260528744541923443994596246155570040512366236608978073927234563625360019701819350474838549048606257250562039687510899221564592097298430383245515404856797378346615370935598272790323425489108212338607240205057810890391509609426783473765404628130909640913996135730018162326151077116264624480355026527167764365270401737681897689164444362075273274781840713816370256774783628299117375072020607408878149449641469080209297240518935946778266176391214355381037798135070791108624327598465088560784959208173343548533709039499212300151964531864529627636730358740223959020752182450244659439425497137225360228278488300808018074862084092393092177500116193479087694829220589178500819927390990123411446818244479294456587030660199948255539307491717561511736248397219263287019720450939830765095132317718773118512869722531851616269672703510053885311862112566658649507632566725797026238585054646659731395291936758156861005193843324205348939717023622546339573510297114221067780822175724892458852393653577419143583725186196736282947151895559785171977761806260827362034469407252354413839943489842370229382788400507612090687822624916799449558649007956031639438090482576005211805288449973554904856362963068415163033114938083666546356738503797164451170626182088716625336447474345771578317080340268122705556522058093710743275495136300326070850159727309813776141153821649457382345021664699580163945072381785127269105048614422610671244505581885119738564477055303101159608410271014607395911618227384439444322510470062974914933386067159018300737267316205495196122206315218783130960599411871865506744837729583449439381872724680778886477372610193860468833099349164801595190475340240856968219493632335933616047702790386966723567526526831315366680911609799907192260972039736449949671543781869496777150756194764118366624570421430748879642530525169345477070912852965454910459198799770434727077686714751190902112748834247463359898510074530145881200410156606295242926039139725182168189878994107249181202011697151694985935649659922000402272744296882363736099684102073528967426609476614706092867809167154371124256341177554971265104296355583191774353065298140751421844553858651903877276586612848249215009085084097949433043312421957733349010650144628612614419698161212339958053000535720167331904143459852439809045134567614267606419561848717031972448342079071530158059368854486053256946556834807270911068254378289998876304128956439713100849453889784601829132576356506396663172217294696508175983448300014846964391097460475106975512903626022267396842296314816668982406209855982806609913142904284274415057858919429535247410644462152307247487719693237968285829606230532894341925646823225707554735868864407496071249902911471582315045985292471058954430500057281161129426301999989846998820940008024270950364239497005582881921602111327796683565055705244158376857738954046047717433706960360263222706038700805521652521709064409664981065186950403856437879480931903657808284845343206981957019565936438732459271379717521391976421879479026920923096931729020066477119790411721223717970690089873800516305359126612574700995938457210911729936736489428962990706804408064642250528378623332264548455769174353976130651799820159121842963061450602282611314789416269953773868264187680263539434691639967156331017970834859481039025808420775359783057062618711123755271462507181602351780472529622016743885021936949012199318636117816870658444310861262558204064773787320670253335916678999384322281829530843269596085817742224165304874824372163630156342151536568676156878216998085285387177915736880460594324217269143777111857121812246017818707403838029213751174218080936423827533235450189645793387024377918621547412466626128730676054251471586266076700087119670021601937910432935180328763223566966177916252025670507398163711843261559087910007789370479640652645488614728582839751621590196075947821513721745009118572134484689947764018289357807130567546391679152632952798633121158136657641151467840274154075028949254063778221922547667804071649922378316271779333177801879544649644276576285995723477345989148998999747486808901310121258209210204066642111705206866003671619941913837284330671130844266691907531552945869823789776894936561336839251492768843811959454167164827118090143562410347594919810723457331522884336757143490850015578731939150915410454415367031109802410244171153096050626317743099303341309629660968308467067614952692731203451877476558154761488000303962092153580985698201003117619910385617534554810846387973134858312899999545267057800672312114727979507160485348373629820169890966401664334852186239611111429438970599451403067219365545032023161440817681831118353097293321168631719697730274067797602963867803361084213175449744011299059288894935651578910790102367420990906404396959236049322113402294427828399398826940383427757287433930127289389550854835432299008657335511013903157805749894395576971871555639953603248472007264623751824148550579229915648382240563369995335005481418025104824453181736109218139897173397629083387048785326883977927221956795381229638123975582796471917433595470755555400052618965460373605736316069806735253431423586883339170272516274311113212182892603291432347884879521676853916532381640601185409697443222084948520875901270321450007654367820831330083290738643300749097722023393441166229902553846837892676467550528979059446348639778012310627240118954179161297457017046523950445049843478260619615476162442072259079605462240335620581969234821139947532182308354763737628949725488552329884572490249314703507884352574240672256338720921904682430402434675897790764297723944880105362517884171470835106116341149167770296645889594938356187789058391547399978002003957211091697183521290360358989548721573737399967540529894709984948328564624871500794926660989041719675824819096973678269513595210802339788794385770694666774726853074217565501084721342372061509486452485873247734081126081060441557531450680250807979748960281194915493934053213878135439268632098819527646167650267443475002009612924227523291489353394465894583528762425602445274966420440939539080797861023680700949949146155133957072582565325287075647565338261603075906241599997823460761100303369539686226888053024729035155734653794414658842523102407414763393367970046132381185121779165724344334333815675047408318095924027039588596874537938843012702045320929752921119138855129058236272032219455910608273454340960202037669962474532555350381860999773594040408690743027492005170703587873901836004923998085135448791623492644524942520143552984424467938452168848669144224987699228112394879659953163925727894821441359014955752275621313340847420210158184344697042608646563646659193590519147240714717703796591893024093293972059485561625156288350830156751735217493063543620898146088825592363864832457773953498705726267273754957175526615798816274285424899369396825080473103139694691036767865359161676556012194120381189072148992369710212624894840775886782717056901799930249751855327564447842099703701653665693396467534132515355797842537813222793018512238284574036221963615800849097421133723338638618240294896954872700150114226482028749058764779374077348763208390613680100553682954504111420278292308783419016279609870152898826116683062519921968901772399007168581351725407559980933573253833350821710339748378647440467038810944279636841768502705859466246523738938748987079921452040510479826347954205704340840834050751093608873870370247506813387630221498817301249086858653090502708860374451940045162415904155392787201905808020293774345336113338739422666430812082402000742396433607483489348737195728259449407441570140789157432565266281236949798756383833571883745891010180060629000093488408456728710801689528885472455477252256176418598997706710096619946747860887774760874170867374021955295626708821950848027875348169366156631526204417761550640081328282070874510974374218230071727601650425560973152569691036519073455448415576703032631592850161326340902314587218804475216553856823927305076962613461581492372623828751124084258069972753924600811319384803293427462178890756254106653518915484183479667897242616027173726600206890958455607704740729205144779041218710167229446404479594572371600892062131609113899040311025267790155470400759771733466091278345395482479673507469077837621744339075033448493586790761998676366980457805857624873301280996180500023866006328478976346850283900759216365058960781284509580973252611127008144139446139507419975494314255561369537643737451464877518514159138752665712847228574847284235042292591593433782546414987284442962603158719069399808195670689830343136132822664710143904320777145235888861313620926104950136755588678252527057908390673650388769069746080393207592283083312633617063825057460443288623736885887225324305582511653995230412398734378945097295879322100290682968327324411472853011396083684619092522149216326973283710528754156727836850021415869441781306534944485928132340994208276009202052227369578204603133099236411129970774792103340889355491730434999232241825059496718023176649634459193427604096113867916653849895729789591870201898681823187466013259832739521882679294183404110417909629068503300021253387018415721908178677179222990004024365563204578461940547401086769563038237833758648196889215036259819472694984391323105258611458503703451106813834416339527952981959293249896476534067433912369538023168750790069046939074868310261600943344274087474263192599599400421466130502728280324604717949987547433244765340048526269289084954199220477920209919742531402253948836672496920578946823931764226285086244048800008787376281838176154708903827668553514445351389990869371653960907520346553644516973832893396470383740623117452707003659772593082114618056490116813235336297199895603573598207476143589136049839583813810125723969765040575165977872715486223882033344512514973372190604275669470642378641988607226510751704886411525135489945669457706663871752383952763192252593807936995074398184761070158719581256314376465725268579673056167412566603148229251393369885930135114771515091857569676880475601924953958197216778488366482763823805473850881928802337790748169257738062868950901436765634868325266583492764472867838369888676982314080755104566569861776148593300490691415597810929896640591619281369821438333760706364312574345630815204646112033796097116002707018701169585986209547927045015300620236305815128125791987028788413720403163134556584016462242264996088674302722671708923181579444868378501624693744985731715616695646867824465379446401229966372152387631099546932888924377051764508740318798175575574927425524209759765740919545369582363329617679977042853898280502104034697031627874168744135915344805432536132784345168482162109291606057507168351314613157931370748327291398107519743701682678835979186387676759809948288277529846023872765976622600781198727356340406224984650507047637772392243885854951047153003366375666463951516588456847333590461093138977598322563308924391797145553189754533787496052958316982204852518660036328985808323647738796797436068328900150604070650504787780692852438470879808088633508078401947961420295370480298663395276542094816087524462541831759052423820662920123574187258609415414816078422229526707027382327654292452226368382248531431985831428711643517706783409979441100902485527974106406015804816621451394205773789910603971025665983140808460496520840427596992312207140528573425604172512390159380786797045686157393724861550516508710757202179404361576009907584348275218063899360386351411483114764988260124345283073716374715239007464895626463513219225941558096778738069418900076349098187348714310558109669980360867705089841954502613375352905675494299235920602025398732858318479928549989575018889968935988865541523373396452729544614836080387841618989481869293996723753091652878431473489341643199779401045635558422582206012647983904351289782238866740049088932568211543966316681718301418333731986956685049481140470294387660147871859722647386970275120833723489613264666831795281183285376998558636266494573765842880448314329521015868015704233917362002563123134676706923234448868842660475553262885815743260484081147173726273228409690344739375352441821214699496584733014529364506327926457878799126164327465219574536542404882866657111583639188680153230838387758468173243659496775280549311140445384002591748816257995021736534315172593265013042172376847814297303561884235148962374437077314093811060018239449262755580716745494928435741053344341295759680976195731314252607671299820409775562847202360386955222031940147805789936399041284022186741890445336057700490401311489010368973941755768826351951880876344326290780280278714424077441118692313610883468765911933708073969624899563903959411464007293389304000645152102790664997748174226900959444528539333347766782604661516841488250429928747431276188713188814208889261676816161474693683096458417397062827962926724334336215544266185333032152423865569498418068287989694403579847052496827365781902556349396708658466364131547798597267760846926460310126347714687759842689832382726500649447592295982117763779691809673859028128781345035872864958083321921522320722293249481235365740261404169640487154939459392582458791078053733633710551381320979700312871365603454524597009089306044248005869963482106770253985468919848254043382314019006063240538489124291348725253330112582298064962551166466070023933097787410441756865929833440249817060586439510278709989890055092654053828805613233860738740288392030899191788546058288821653759399710417060924753024798171455044464887654809226582997512798139850939887260390527685134183069565751387820956384687302892782202141143349095845761918215781215704230685781264244798458443812776504800294918126025627909903416750498386827707648931199518442021840483526277891508776259034961634768375089317183479331696937524122646377205581827103836431087126348502784484015864663658461514623209348271956149416588727981937583736932236572927002643027579154061091340959562155276829157998733638593703764599296977673349336114017636955816289083748602163954672968674205728083635252043827528573716477966085696597265892244993978058326150109455092894801703743942332865263459238186863196549650862816603568431462989017859552398477407146290705538444645252517568650701032644785988276989270003509121025462907686291499875043238593492516481363724834782762547702244770899309455460217916309591903244698942087926192310918791745121600739123325947759323189598321698416744252144073052589047907463655942217082406467193043985085532666296892653805533379968112957903181678357745543301987303271493277804182701472800370614787854371524800745547047344512153867662495844030603217022572841479411501180792520120089780099204171757277910378520339038118637684137927114369086610583265256588517188998815800333812303129408569721109417945556169438604702245129106924659466435155296681125592834113284476009451160637693086981215901709757323969046930795102748500061588132760250056549370579425532902277881748228210215093252613109764128833511518201013738391266635419269311080302893694774441211460520572839702370111548133980869641208371399458244697803407237436536436391288558808198999661120781345692635626998110014125640300120220968226300615993289363674253522625858150053518375910877073562478742999960734123015768732897956942943845995619168159758837789385572450721651626122220305366687100155614301470527966235058287771970056671169159397356438276494013617188600810510221909143424110317150169974519566910811931165636476501471696619206401036900512807471762630206058076865667124286691918474884150235976657649898172718629852356535645732257577519379260350213652679738914390157560537397464043301012988151520522137923204149853774461469830757435089538315948014633674797315714744003283523562472625728149361639970132292894383876843490273946844616866967459592842405674669830490934507632534691201484384831855536771032719028867797024272727950240948757801912289025241737832441100336329147997270966989211630652331795553785223256611463553081707780756167644175192413184364444693882549616951868569449114940684855028531584773250261852745747096887311605797051181832251880449555844135608777478108291711369181984953822336021252329033862603594969107817258269070413478656379851439793254701020545797432789417022566446900399695506622342355623152483708619731489887537246424457580848061528603272505455698010523188324751492147898236044160034774280407426509878383367968307774267670701800991624516971673839336578663925502829023205489187460976801098497057084744420155087572098203409878013717692858417020060889936136565653715857567786346826163108881266151379427585865055936943174942326348137090532232124702003697060101346950105198030003011438798210881588377471311499811198252694687683148009008665305247617564664255262533427807288072345499426181753963633980526028821830848752314236089023611548828154900452847074003367475662060821869923147771895563210681435926872598409429871709603232403816282674314896641620046160648378767891863381254401405072191545842230534910615080482222293637283685253175572550192010780075368498865047258179693275546204331871047574373768759511893801315419076468175096251091993376827411088175540213701503030828013847049986759606257201932731717408422698957444327396927418748932878688610439477108995459405074348262528634732279177837599626990532396986768799352976326545679283370793553145075616067575811937284308968644393354005577153282592273328318415139500533006257929683448755076987871169270532530761681671438331267849880543524896150220732371290889487652895835018203085767908094176465406002131471059626895711300340218407259431531541961917255775304310369575647285376119818204870098569540300097683781782016197368930905158477759812165739999652427084706201976534452428717518868372333439915091167001365729251508060402772627699121136364408669737134457210395325704576060670580930950619227321077460096013801639875574343852577029337854930464691927579896696098993482339008345044079847946643206787458831004442538309484567914919358920548722846046058909232573815984853376681630720621743247455372661296162093463278622122919912743093199728729251365841787785804774711183868513037379876834753460956639832695671108515471935215099459110906339017694179026473002653509242536200232343279799564177593335246748213507893782167875413927016085037315580894817197074986557258653161078245596938416598780077852763040060878684503111105237008096909941852297287678937491242750135237188637280508839725562631090669980859399652282730916821932674530042846759938158137157838814345243221903127189618228822162026329234832329784310992492237762486185477501976625064448674123834011416707990621102112653068769271288235560046122823985805595111032463683061530340644074319987648388468854726651564620994461115820872217121000802487525266944947226057924325132222043829579199284451296610596012780285917396918936234544430464795690602343445805668598263089893636354001065494778655764035816697056471247138238147849676100076376325018544467858032304793487608330369435147609513159301194888545178599867273358956444412154930609988472570742236488528751118781371572908672665574580529479084222200603946261655023507882998955344593775767059585049358435909104438508559752705205682170594037367411174259290588074006833085817180511815151828283800686212466476340769423604307003234792302095170654694558878768608735303872173642055410686803475317461408731101071867654694664216148924198965367324037311712197978165623659669160053357909890808311203329563054505828530367589187530284657779352685322386265027949098710492365983846199213379782487075148886817651572832744826793519516989983871760132279445565585266507754914994794351140368657166674361975237907875281238905211831105651675858317393154951920663265819034879676264417291908752418280376553530923538209518126408716685818198878777965258464663745287708383497818953303111360169426633366628564422194777670403888046862459965100083784265133246128227941948435881590984218908732672560897803102229730963626333312180771485589282789099638484550918348790551437805953229501917295704534467438895393749714099050226836080959189875832631712054389054094109795744123518335884426767501252509621114666649850185165073135763615500680372052928653207651819650019039179231995271204769846868020789643988697146005030837019542660923802015969637304764723029081861739503498822406339886659467078551441769896199191941801016894940063290716111149420710713126048868109259472699211424550140427801314721626258437040926662830282593961977009387570985250531978527585019179977194362055482355836744105166082510956742650232829493473322847918030914345346223516164485737598635704749689884504260330449719791127862660698532153566401044512089556601051959283344540663042284338552723514088377984343438733994747353134046680830764966551859307654539189631915000295779271778251049539735996667036410674208490510242371575196113200978135182982177089860377643760249171394233733057658356154742638826059720526239386428091491233867657999760551243093836587649004411136536576106774723253440645361162910425079997425778889623355059511232118511372885682870612724260810016627263272562884958977742846110757040790900241277509626250301200907450181500572596340387291308999305829786087813480977993666949806730811323364196081234515782863693567266008229966738808923692785997089808381158843700635389668957178317563938392022924194715228603288727289869573517548542854559089974495194780137115243346411983235783775223024910233936768960413938851880864617570158478210847242360646029211109329161206185367022183565533873049698947340834474349227217730263028005579783991314114214951824864353989616044236205936283627524353015112131769671236419908061606196961053037960928674212694648554207683323387333123399600261042826601078926677458138194520527711932581643573630980439206360779181647610923228331773718944074065835585668500037842090027873062885072758407206409734441830950964937129820484164763690493695723749958100859311866982086442307081918560198349120693730211667763897990699235115893432420755254843965244853420418925227022736485811846195719263989563901660344161373999918678970713241387045813339556852201648770876905890893784805354876606823294720737445229811914810611989558505490416229096681437103240237784544079159086588278468542834801087513703581035733338945918191092770613915793065333768613152280318706762662737085442710688098842521420304110367546580644878892772309180652025666361066164293443088115297026959521763971272121300152227583616490120924102030189819024782352676664689593093097348167282770654657951816287633406882567329750506615690403962109640308438411205606605822320948151279814853068545278863246476448756083866684858491378317278296822118209928393727056091985392962458608120009203499458876212703171294534967017240185950950283440101801153668989083957030727045884242897510224731096306750638328135754596205945473159531235884520347093677119421658334276694317254660909793384979068708319517314824235981014094148631986202563462322374068969066126335936208740751400277155243224967355855378150671731530563344016398969135463681378243932130741933738579544618128987270722829479362581610233758630314754642904177139115103110969500593505879633549652761467521244632395735727176660035981114301611914704165355166058018100090391458833407325565749583304533373606198171420100410767296452542456771312442041523418529888479586135039656169547810776951021415944434716729077976878317518640050524938356378192194903998315193042643414624218845513302328085213642929937024080228062132823787731241739316495625477286949372987417420985393341544354045215548207626772627193360287545101626464138213159982484030866575900399588257825525525220341105291307248883182318279346026821110261129335809903060242551625905428460198509073155783534453866166001994384578089340243232320715247472059900858823113989016924822189322195530328831747048815038319619819325788031203556402915341465896492787325392478102698310465283786098510302250837417417332909642227375160478606907853955246359661632974931086319224993419363073553161669600342635198730252924548163284896311995345156603186242789527611999342456179233140848928004002796125582169125614605943429786904737700191283659602997501984823858452650829793495684244699592506272414545806623486430378087153240092244728727384887825986054865224855863531628042935929778256563860606994990360755774345617263701208648769631501231750063577396346899890336808396200655197627420103606989253030192914183935634666977096602983650062636945738613016386360938129561218687272981504706633523568662429281720413837318143308082147129430257918292529547116663932156218498428036005222312464455782611640472527636518572508622948217413990229451941817996082638851063114051933192258948379368299145869967676827943180892430483662850670173384265686807394081444294121285787831555586659313492785738460583346255100086941320740039200364134991070528074111162417211478082005295666077567009734237559577458835452141817026313640566043444227999745913130268915304721358609579561794531274573630003820702323917542605182997141222412978513074015750370492866436733750582796698149635457590173078352771409786362802875021009686244480587509593836456920367692893225528106382429019119212827351828201340378109886555008490726096135657521315783408872928708244169149234388475955786319293727161564883330333771304130925896606152789669038863591372486906122317300100110013524952978280328652247715054109251528491057694833720055067061973231434961860450756583331755167885049107741062397489315889556601919332972439157263833785533335912415339182221965696935173569654798320969488878250635558900974930895402700564042432904130545053019624415352009341191535879349764644166698534447301594999017099425469218856060256988994357333129587378931753179278823005618735411059956780757896159176024198720968784439908870093963914264335174872497259722634077738117223490228792599407568417129148728747226991096640213252216378477891600995189584713765089827798287139299509854230008158931520548308564291401856441147761032645335307018942830302658232743850191035553099476300739139594497218659045829973534508181550169517571434887319277799849235093493179273768317532427702246741705922228111638224020302850027416190219437813041761288888330682257823335977250200717628711797925494911542708572585257323191529171770280362707361037397889401636540327022349165715122255851678400180646766826651166175214387042499695390589734489931565276023401117679767200297795957800466319561201117245407745485430727913815475490736116482900655502538607925290355131645376122945421441705378599614689045636487369901596276839561652489159826289534677765114534358045365320188357913408078803724219014362648911972013402218313405255733874652975442422259912188480871753623310402908381271887608013925507311254001370769218727771750803142304876749747435391734816967788457706479762583984989845580239289514479463034627419102175091419031596365777589100045577217601636302935451603292538980310893142839721143801011198220888361042460367857441565728984327201250179446581918986081947692560328995540325086297537951663729338847560955069348160732665461946716094435306955031930784928413818018810339019203230276913640825334222775256726666188868486379887316707139896724760600284844530697614149535890489064195884097027957987130835200731972286468519006449565974762390888319102951536817025911888339384800710187786193587662443421580323725093719530392404849903915937727215990591554121805590490751127642995489585877512182053475717065789385859423926963034349618568108449023443152956072785860656121012783271640216775491162487706717055656360968070336803698115381131112797601981360908738002087537253663990371612993038887050466486703890410765146685377910450691783458159243858939235285301255294159397147562799008695008602708484859713927483259921187110731145143654817762104984433142228576679371775341675126676525966363285571813175003898005730515276626151008256032613926504490996197853372972037187934583940256425628645359571868475386088559838026126121786812528553273811805348174661207160432007855097054816634943431216031300485717511726039698888943905819805136486086447291570007148502297324498049108631606847353236146435625967630683955266423593819268893391822047640549594650997779128480895421122256585829346972231096421471129178299022576702779558107339992720033787217811742356805279979633299308066697766284142117600829723030837733809257565709307020718726023089530894350137861837943267065217438421988357368826821987717192222212348504607788230459080993868232354070033660744197402081694579600598958904264615056910437259639486633768118116060802957180496550903459354748671217546570208419534431871730412785771771951775181378325573964702315204905103890360922824515587140307455980309150841741120777887886766835265869230796129783957959755690626868318461207827758463045228744175459027601829807872389208502989810910736528015784360464620536656686748180188474173567666404852212356079135047826149733745143864237534818997684943717233954442366182909036933318995802666044240878660180090279350625692547378483497341872375683193556118301981775238298682518828518232306104836158518897024418719233358363803517221162592542103542056134749499310237667454312012027204525652901665028211522411851567775560828188563170976474464143108351651721435583099394235428451294007438208625623683928536742721163438759443343758704896603818825231994306909095198985960252129111658145036402412564955235289290303012157959071322187977820981926131500439289813750402492408499548037571367389061726266681360357418858375799357879411144996352799563484709144808562498127683723684465270803898016985232214687352597194201722432997457398970641155748816794865351285555240853478238850637174250037179716825776118568833235255046113533607851154063893792438358719164822735130574845702860244199454116031350859932116826115051940031645464811271619944719055387277859178932974080620122065444642056882449734257684707017703068325691331999737583634028622963020497861886337893853078089071830033657805722863652033917414184353425640948863891661973892351990381630781301341576401538998242737209677296286132939877665631706348766103790582870204064084773401925819071862470933326010339611876805003068454385427314132946039559044176807844208231209107950393321999587822282542953893731058222554235286205018634739072240272212289399760769723862712009765872211673290034116735980838128877102576504174931391612736052320166203687496516987157536349613352010138543048991246119443593869129717002781883880384244365044502582678873409218815755739954114793521330194230450341782281173038755707228256558417306900468329013345188153122109839009027664299220670964346051489506900562932001157375992649200992899100242950477385090786504628354666002226071402148496947751479784419699352628626559480497995624230540435540505026258595373491245700527627883685699575009790615458490770209777790250927263333096609977561070365371942651488391510296988214142911050648614201817323077282591096549529374364648668548879454287555766892737000173173813275428887699384957660243142663352036530799192015168133869364236229042609935184554837720860402704965273239828188884384049526639817956380356216464121033205027257045381239990879866582964772037738030993613164160474827949414881968540083382587741400056625080185900127020375268412161999264526293400880538144571730927675420531025048072600948381471035815305513526559367454288372149436933724192967894135042003149714531820608304523260298621022675693720093315948235578245980569448677463889034585411125435698010751854526924170582175553198430272136763779970107603663512371895955625923714519879304870118821452889476378317362303816689911250448831715736263085063534828042057665598611736359090412451118116993700337913240498375845326000308683706118462193767189000748616480791799559765616085577118175425276753709790816021007979456006976455480477463347557388285137950425044980928896044950757453077785750679559606098226069416495610081537669053610346326215514353772643284616382167270142129556265842719674318226364158075612617375797293458105101016920968529642226213347604423734424121890871696032222650047722311153771301552362937349684456153609933003449731525140737648458101967477523051780677156513820192874038069090434785702286228581386173814597986565684858553261481608048089825123708962482336776087569643235164599645766675256151614521052358503524026122518274872119571076000345725266832174188615930228839470566903454538269915412274545020009708650125599107354368537358175543553395206483008149783724925156750151295387877085056692710738472414445410439583030297090527698160509406695802785219004928801150838114346111525244272514811629807080919595903194555106336316305740031829658995955872880524781437211687583554751168578867091208404950295973586693922435074470869847627622765466091155734689311086376096154268787574654529467423385154286421317856927113206150119633348185307483563801648943051093120686630686173284968243984294312100749327383647888018182947173415099605372260161413579893089123804835423779167785199790764389606275017684942271257839973625187311309673399727249414915988796602133518190639858655908250199992960598723364208848526106844987118221906760787097197428414505332978771023266970798444406535271568474802912152978183841410180787701625067146410919922988194339021612616229691611887512592759593016735702764025981436430382743749461471707250018947851312181113593338853204111408454275986578818732691354065979683581449854261176246775439366692693901964236233491445732278352613138694403391101877970508480345465910184244437868472395348909569243696024567980838730303218244362734765950380338774304895427657901731927087172351191227211704376058254439721043065595416677839547559953593517279761960824265044265380624253826215449175541519244481789094077202679461846258488190549105118870277507654114883103056908473240740374003324790635444503212140024962361431343125938904584287566513006099522452406556384798704637379985039037719174452956757263721305917563540663992476683232011731628276523729419588072113561101775770850419509745896767450431390221482037880750671414443377234422639985438579706972957838535106559422592327080485776703606730210609283018684018449429364033582245588859106523274626101161551491346911766066066924026346829600504014138575848757892984744674056330641437747590269263969719320348092642916409182534208325492831713245024956290625706360979302299948213242475185283018398108096231310601706848422306835810235322479521034506613740936044325058008060058060880744328651607342846675329285156273649488618632498495022995165914118541804414643806342299886197831183363323110749754530834472567980579138250211238452228724762445392117850976214458366620409972609333409903613819904285360313772246975682511267280349331841387011283538320595859587403703803780293330583666676894874373592704259351677769345815360009278682466026882739953650336886545072898339210423744928853786901312505443181592090713010217267017579565939191641365999981774074726085937282196798823327324938692600415204449152037508225169909977942657339840501155890089039098855600968707837288877319478332725313451716355203189254434896106997341553905432842984623226606828576244652934306300749842077553402538473600494248264517641135786535288697159364292326054888240673358861893114375955282067378008056898272658091113985752606843654293388464923307683041637389939424225866069241739078257017908375729749730157712624672053752945995418004923340091635139404154404047731896689248484375026534744805119596114398667227830130435372448214117215232567102325150734773349732240657092669934323093123622245048723607353576499226430058590533285879770237504657099380783797959947810495382509313489207612089523950192182649709373961525178428641600921338354727598962312230903302331556850162942358260907749351914294578949927223547192772529452954622744292700464587776501535666563237998127531082384889204453413435174486877594834023909890502002197622183559874234642974366525919666442033775503751308268245160966214132457086407880854089902465595546996009312379422207272365655719927933274267878611713822914706437796972288998771113878813434750481438024131436928955882135498139436697191412292748372479512414206904015313931412570733373226197137372169331961169306748198834758677688556840740067583176042842249741230444377140328873253074795882352528512132635074548458760272960523017582859297468144632863369565576330994595189894095012902634774881589458957647121110789532530843151257876713984107448939975112866414840489590369212877235095810979649452133775921014853949138405982206996135268250993141134008439251873096728831132047353944346671259002879128637167870583050615585455033155546454272292820207687034846220892902024234671923018752630533237582755865288420121988698820328308014592273525286578646670559642093302891837213062825624420641668901699196915388109502818630526032493961170400537417638312175363566726969659264953927932449369497744595738370413911853702235222794787420676319897345765403442893605985985083049675770807631058616899129739904175876215165507175862455633684819955877267679778013608150055863710233993389105412188813685957763936342201821544648897624931930945080434326223966842846385075830610243047379773890524798915128253580875081342987766561444181233038840534437996976545609463277131225007341223445869030598358000656386421300532102741795890996493732820655568872677754082827490249380241927877005116169858986650650293613795833863855037933787122610750814983665302906708281326255232467938386299629727083858185676254834535546305563545998107966248083455457701395823179985926933754271407434417943160568066081122380275415072854087501851722670654335836073491493347328045540765461837121779725185250880396602512156612543420499791102511808218644229028901571000536429316209337501872282452820266959000483805304715492788829554111858572966604706021924494815776617561069829757914822225640545913953791776491100036484569422915870330258496681759702452336563512555793392606327532054888879356986528183247667142050382287327487445168013248715746332271902326380788039594021672825342618567454926719550320102763010481133180227521851476701824874851212392139347013848036648034561467078072308377736106205449211140303641653818761456938411021863924991544589704242304502887776009119799519124156344725282187930961483773103580823397456285479775822259306245014659349665402852199541900820049291798845048113971314505345303227015279797385652215294029919231208924000418470464691686279165974544518188853156118343907527496894309308477973092017081750329971277439299944875805378499952077451334078559015292275606906716745926379163402749465722820865485342767324878865265807931647155041079629527133250195007049998479667540036833282404548245986390610269963417268719339244045272956416096364761609212381919763444572375250754258719529553595191537711414520423689118345448892505471391841532542937247336952615874725731142607656171896963235139913320558354565347642486418595477416245560035122631376253283600932221053946068748326328638964088885884175800543851808050745644674658056926478651943669782264532834446293885774731097345608810274159313634721890815639002823475197078492947239976436595402166031609807626041278150427667689246512583972584151759231897805065766524703368367082248561475927143551411749449240192837681571417536440346205566103426916259676602076443181175218995128571471413609722508377717256446516219827389950236699746300609620850947412220933063642434474671632919980842945104451797064589945091979214981411770497083321431244486028313666168955554370977937121671126476203243648538212402037839715541609843379335536632283631508687663227658399775475355798825228094997568611995123143548553710562162796254875685357359096625051690896551396933922523207607011968245197619889146921666703674855749547674196849259220785903265322014826313849106229392373621016438637445316404977781804934670052715705947105671145234574156619158123665881328219324645334215395862724938122984514686471637947409252281016870761362694504486326231969825230628368411710936304255115840787728778544209891049538109792840843436916376669320486758470022581403477931607762630561200820600266142541848641628934822353969661175887778019967653847403789524353947636360713098787517559135173266937119267656282842209916302593175582648710076129708302556732446020184716667818485904961481519837211901702520783753873145872949050469337111058680768607575033165304623219976720077727940051441674043054083033832191715515739788535501181556056181795518476614027470650268538621740667936959142047558084582217793035229238213045204638796946347520697483682018920721157382361668579196726962724028562901401130072486364749662924312540877636978511477305449247406932001537621388870585946919475974196506166091346984802412855881692278043816179466862805775122536743730320681827525582744564271312601508043309324753001793586801630009555002644032703616841172295905134800723511667250183732042558889009414600975242441318375575612978327095695802004238783705883008581531855199746936477115234388273150101653869701777016697820385961804201247936745095441883642360541855807352292901338691215717558950073832712968406683680382678553101221613806649618497914205746778285542736733217804933778636248545228626832016386538644937396354326868644625537433728151106158281819154285309058955277285665619691923728798514070436278473388861638654265439092269508191208403261026135037456525153574474816342678781697111749156536443954572757470178407498715807021929323627981280130365841462056711482538720697532612242015670170843605342801357941029921139042380836698743942703351099568747260391447378908269617004102302649853292390791616254589127316465946661451951504579619224861243139166754893970558039361810320624926822177174607736288084724007549719531584159707187857671026362079960485241402768049950555699765876473646155993551408534835257026830387628764160842826862264830394092207028526096129538805868104759073200725768546772165106838812457777441915341605281774580124946593897758386890927258993330825072991040356382697841853046786544081347264641638486836104103978358173516907018253167366783981184988332848356980877722177225035279742385834451231275381971471611952130360114186541554279851400789173251925835916245097708580193672621500519673143336681265731653994983362240018949242625652828657474989938318865878861618492274943991676846349151039400692126152591862503846159545368936538952813310329305247375476268443260744036196315628915995972483081108565185817171900789304046828042193954928892238192593913730852472757290031745391655068061802519481777432900524090925581460691241783897748453928879861028624303170981385444517629956949651424018983682289130967895751084251620697039873525984053111386030288171889518935195263757013944019294074880638725632963772744023568044927274355704661773902188635207961014025338334978146104132277173846601812860730854218997384542294210785591883741014153211674749938088213530673325160067371524365989545916236782568591936587960673482324474026553557751832547586322203049138400774249093693313571073906691614982058107127790203206500873449675147743781207850795107633913241676190756270767770205772624428380777207768641179252603983698461171188901441438585017915697686150221318897535407796083848487887962293341516678142705870959569330253163279802325333964599081534528840753067245120264455959130646077211015499161384081478055826772016680900457281608263873543890165084090964761074999110764593868443020066609932733050582341676351880831471516786184587183219850560445720052444879788333026533413530244025122590076113031625977911564256207124821113924537472304515546514780628007126494173901935337796391142956153822894452838917856505428380356150709399616269284748843733497849816517291183917784342300560118117661626184639108434007618956339713126349696555332939267517286288997597147201972411070623747525970668839695009849496939327388478454248497628273157110672365857742859384757511292736927217995047706113355530285636024531038343156080380649430795281999333713685021762286552875893441062611576984794332953241684571083577862457592843430061336418207310690646104271499999549892407096380333789269557147589317899458352914614067593986190078054384811155978795719227961948557292175485206919711668586229770328627368247886347887652000884824827858059133539763714661988295743785865688002344476661062257084431005463678384716546801526029466926704258491575140684582008078360246504835861183569688811799742909876125888697011727763415711210931830963572492354565052558286198706475749098495082243621147545180668805235564753642397956307372246729764297422685552612616680720488306362512301883138315708494543330220695153915419904285684217525190550038284565555439287326905670849900400345384382631218305109297187779194143745536457119585030290407869322622554164724765695185235498425401956888052998317163146534189183610342451281059623202695798814640785802010896236622291146222444580572515497230244231044037389759625844938499944676696510522841251845680820220060055273883729729002705160722076611425518081923193392562319690770490303029035142870582143653224394359343362788897658887462566425253675206371072756654971721566194867570417646039679081153556524835979965646050678367316141655922052079618054307870797466293280775334451522371734040425177578148551026559945122432443973916319882291734381616815121334662710062388547216272648310571842118539710034287322402530047197808990146897970138126983726342735165834734863997474192209333938530524871920377231724567801767981363821547691933610097255994947076750386835730825198176779798412957772224474427192902216181715550098015112593360894834929715673507931494052223366018230009069137474865404145211212836997893344211969014224667456810341402002766340982487324860084139864922576097257320946674645932247125096119985407883329264949257519439777434190939385308263779148691841772093379281581609920807320036618540193265420699250779006751625656226750389327477257074028954819171793975865043272101124523375719574911210101065655461890960440314411647760445425102211087109981412253494048589436235185425429410021873726149661782385469525860810019651108117952727684266572457466275052649707516678944794297506260262057943884363578898353652623794570118867875685077629871140402401265936436314559138097239985817029340748392621265545755139920972543645121064270061769118335088730195220849025547440048191318276769003766586838132119867604186618682456100947176912871990912416994655325422990076224397014920536142813888883366516801226093158813733066324583483575049657673382647794877440937040208340622249731024219980631505031465348189848098006990697013745945850178496550672654895177580343740939382466054925330058607220206382032707517084814994749855510636680896054227069759602558291360327672713807239293508610868015715724270652864942922656664405226888809501163696319722301913271548030888657193943485558838525391505107481952475213955711421763999838684160176905956049501315792642193883495866956914294934394069282166345670972632132017425568115728511067644411503025898585022477624716680562818480889247155244783460512436090373330154736039776959435289638283757316552860509365112200540842826465083670730584406730975500404964772642820574551434028466383650785537478501692234870095071514774130864691775525007299548439460302690479278711486068043508949799652762607444783237970616997282956393039518213512471035982021098679035357805461226727204963723412520913445519171071347980200150118298093997039088016601805445832046775199044524873107649313351955690710200530141200930280233580600981360684672184776028447780950083776269549323058922106176451308325373884959276381440614039250211244480980784981966108512167146248103252921557197126890439775703501088665039331344816067552880038977164825691705155887984383299387401763091050285742686130624522655497855435149504452796822358435933600736936521639412446166280733231713564518581982140723876989082409496543830195064560990442455722613882833454257478339355068875949657086753788583366695351887892278049729783724752826714287715488481571351233763132437398414086886260271003954293218976187566638590092878098940866635994071656209202704511412428141825340828347444894086091777598643135560634199641385821620316358372533380629236119544734688203836460541714160820878876853927565079204049708235700815622559575895879983460071087157698575908619708693306411415886105824687824201360018606154661266126976121559899297808738123953406121997975120534710360309223766396322919802136773481394163762321979022950739756845586711281049479299592906128714944136711759766653307455384834248441214539385233217913945792570291877992836310076476342129210620952155598602516872737749909249145042189557607039819685175075096194149393060859425963140369925299585501455442122665477025580599282514588904180222724408066358908208580640345168568854455697423169850403365642558518532045908831520758907541521388694916742130156740935726180544756056065418162041495515414222500762794898242759911689443414780395378196551011255464707650651688467851315396386818308152502879676576254110678185189907823278329719369758648175151333665573833302173811023124202151009336538540971022092076319680316114932976140756872194748121695306763771073596164445994764116959825963181874835816747560687633697931714156761475641187564842639534464250133363743882751019100568459600983706736361643107288003090782532680719750179905734873339914869692214375408376114363680773144162788439739572355796657718289795019297076542036426971845177324861016212560367776703193178506473516099779366219330743339853189463993609519159802480313627952727234910748430710876474268598073574361888893185759361901599930459151342099227958513755749750605473989868834442362934828779894336874158906272825591706030995717174067758239650847253619007091801265884695166141943588590397464409655720137552629101937126832477577652407504705556970994395391339950506441224783234507820998419554142164195987725595112936548556653394670263160219122189314813604097387482275134534811618538303129867970267968822201075111608861273114161395597879849555239353500948909197579772440599926878000178021526505662711903411277414751056525799161366160170394274426304230588042718957671569928597164026258689946659928630081880361860800070740797654230659899885569422031450782597575058478326578595448301306624288104024206683139519431682626562324351707953755452260927324317799458853605917036742761761899952942317169118080792875426343709226663269317309998008233999956917333717133085600419415775443958993906892150882821784908839924514782578351959056676690452576317582224386947168480157069521358608423832395719057653513276988162771973626953515468342149138441221184914755163578540933835928569018417691829223773576459575873722458541339834343188750808310117079393288279825852154857567742667276536079299495501855030954396852507875403156978748491871056099138725754432333482836966972644751664575326868435076396775753240358649166919424452504355085150777133653590188469859816471932963696933487313023758074231601289624487982675338145378002350361212004830044017274994627217945729137729642670667659316533166038748636392356194731429001552098702719535831628904026204182541290381016503398467769549415184163020116355960315595044851891901086983808164739041596343883010941327186201638126229498543525969093540267575192537773993550350320464222990720328063917303823572533738977811033443033235100142106818362953207555796630059801198931485376038421246664163732311863449128209990180451315194532460994888427813124928833412195745763364615714908627504131873654073878874683809137622258793469263721602453862755952084903486115406741732356075148443168543874242483237898044020083292422563956692129680151968184843055396182904711716573013209095454296432348417934531245070869568527380528471485916123871848396068841826205430620534671971902244446746611778503095343996334076294656356966612769491074261433183908185607706190523702172438752614167728758721828578231816273288807002990616490281836715046243319398698625016715960641378047459499537433011296429215269024557673067317952474432407045942806524843366356289695994063652304286930535897616432977077741049998742257625862886259107148331446680375751081638967666043342999407302542867850749551643643931107425298960686161103003038379373404839386025469654276485905021191084051207464543399176604331186755109503437093058969808363450930315747283261382216547361561232068966638172720874961427448301436141814200860547603377600670573920162725491417905960987394844962912129433225627741854720055553262608844861089535675619121571504961468387137835727800128384773045285827822406094278708496900947498171759680079385023559593237583349123058589040831166963705739232483123359731747694014269997413195377827975706533152909670129874019372849389785033707487391892555184852217642875996645949096714144875359819005660813936016025412245206049367211741178876410404812762841520118855659338045251571859114652258099175717894687468596147191189814828960752980965550454547229884776716982295027753484266438522226231925610635290603299276823083360143840376144699487876418824071946765103043671906003803570826142083947901921705910727655088818255809951317741221513387918943695341167256608518582389693388751733659452589912051407488807867320457404673792373778881563972825105678519012580602536725098276956803012627054120008423356761767271357589383036002023954205881601432780311556760437338345373152136662192963346040885857108058821625454162240309731080603035902212172441337299610958316454719026889719555459625375305876428420033891525613283431402692921238240439511354896147610899010174596981059234410236195778231369304691950256188763487501221424182972220752622459020028226143284533194419527892636016546878663042872990715676626794374925913606298936184115991922049389871923643731019932175285532770055040618968931661496733849556448502088360046217443804295945085888628980476225593174347713105921755441382759066175630125898046750630071353779543313454287619152414201457769771184141361528729974198989239889898773659352598029257460990578822292990898443557904308228116080509413180705930571607059258453751267840350540776359195693918079803740271313190609205800434290000356449091047444721360024935047613569929941519145201947136117210965393085936789215598249628427323799267118030828572618824526265103360837164498552025572875308126683085888705228353838541392898439187481200721512313316745255549698839670058980784085609404984669784399209958924961379419506116184813889482930224312421351125229082223321134875647195894579889986912072392930932844748124630460670365070986397692551259977891495382961242651083992747064362465450374675227245221550154912642854234018584845413162128389771247767133595021441831689287613771783256953582134029996775279534784430822656419122689768156137940525074286456453944728694949714247376759582460921266945687431682268671036990577274425732674160490005652098124310120248447887072384462492316833443876250638946297676018498014593639752259126042719596712075380925598723629576608896256834874671175231998773898281369379293795788625698902246599202647284711905508852341591148263496761065527827924271000961407343362820772498671864130356139889125159977454196247265284705881248692828216928498234189565095887923961689095217544718727872973328157141380272490249641874457410119552060345720782496568240075530418220759793018092164714574404272715956633834282830657329834034879713832715447573623982063223955796836737912708892600086670363707333894572483636394526304198440525695739685546357245947037379412371630893770179677092437357780014647601373579520053979769957135082120985502884954274834314619024388878740047311956941898470974130022510873220823133787938914669723667656835120216580541880279161114576832489565678359596980941529019315602766530329997300875125617381791667334119915323049814709170004558766454729005788069027516335557082305958064363693848049953956062131383105044765943599506111323523705514619368609144477750132937134073284071143265214449767076181583674645698775077153028418169643116128560357487436422327931800726411698315910516517070565724021805001349668991824080683609931549511607302532724923900611507545660298749398809913445215935702991162910448685124375949962275998038951023048793023164367533581489900287815355961647768664181200416504606556281273835759908664662576456303737578380265898476025743432826065901729230981938241925769291587820129818460224879348042015780330447136293596342682556541936960163547612359967703891456051776954534427807879096141072279732441347819328050909153323686161465907186957590747516568724094437430075311575570689228038042616960729898654194962347703761363300502822044084168531970206917073146006589751572060500015331096005333866518328182059580505932578641898640957944417002440993077333842184398932758306634224407952553124189154281266382784126004711504233723287394252432994113635843627835608302311813704117302943425810070905616869146669470446426863999652568300381829617298995266468357235981385728441735828844293584880754481030631149442629944937658242679673735809610158192878918389717062112430270849389551964527442853740044614859290051800536928042848131317318710909114672782671495381338352110457003132386078499134171743986856667940184085467601150914545761534131007719355881363835115055720157966734148861491155184323071740231844679369527477828541642281330698803602502207170222072034684194184734648179163842758167126317845778423806720397149188533138698965916962714274636630863798133248920134113361763057445291538579415152123239030314402163550308429200802404927271034080773200344019221440099017429212496086454884041696462718858838689338044740405059628913212891651819879585450377352583937950559574422524499208027105229899866723173721427752318616439548619874561500859420369171532714913261772018748956678610792123508009790762282389306478499029825977419241802324706582689764305083921885650551851024324371054719612059417353839090932048235479947708730780911501446504899837742845330935801462065385459488743262275331288386274575666564208487701600720220028267660743448584884758285071487976481770357469676666190758027285166633479042435690787077863474532893263796093886245839354747587219681096686402754231677261617646980070567564816242232911739633062902723409514815258397949176093679327678603943808784720829048138841817121407941545815729270093667114466293227594342242890152905723836537452078961982252855229902721368831458118582110761781675176157166964072043502094489888477940663278700834454664500828983029338361330262609654089235221151225556275400003867426600234222095605885724178073569472838730169527693175404660464194837934007417685483555999256898883637951368998145332334544262251012004790636855733386014492819823938942528981470254796716622213554982910158038722493590247063593811104517808060336759556523539210324097246283808434830161017449587253800087203966978694208204331795313621985593113894574708708527248744047385347281830190038796679427079652881452542079797135239666721732812951891187570263706780188404720768712116156688847098740978282174652781888093567725977605516202236449852264551628996364871634837222355792382125476618521904049734756238680708159894829561020873466065558668726774148286520280253936220511438283959526835406685362503272470829454200671460503041099432348898645379430084579662759339000850855779792380347447761653855813347020050573677258286089312831885640223505290481055472621755536500394452181219636897515439012959744693167475266512975750985149820583084310054765493055063046227659531878922350344863656279463419812159490707593201187429182135444166607686273210156980842575510003522867601558530892755522937472454361840937721293657614582653179091825190004163043037106256749486413640080396809821485580204777085869877496148544334740020066878290495001308694050379117913810695850625219992263896459038298340715661204757957882892575336718408255357139732081268131244298419362860480747108904928826706412983112842978172344077586561348051502860451061488471314942794326496461024432578881711240476238238415940265811734008638983875354266342201951898715222073878976035879047388806943531553927416464468057159901270038553361520360299225094458761268518279423499055031722382049540045628112178879514827708698711522511054764378914930383754018751467234889586617260413374960097960030531178423917755743718472460131797193704506026911964564094848848906314864315137513273609226875798642925984554284977479532034976003024436173430156223209174000330831666036808918934660076266020970981273892225250099159887760618863221892591118232095677285389144874829043182097658442423441548976724087139352409315578217743222240899085742854745670052423256517362952860350207861347491893217500052267572587732625649127540594351426767650643585388259240270518902197177698533712519757581319000021295168194071302529009952904146840933697860132745938206204572606482593911070836315810599614124631105151575650125912711950516247829317392633801807652387062413093520536999676442652754627838447934783567992157907577053186414285619185771018153859769915904665194959027501861476222684402374902897029057167780931620644436582307585390084685913100039237541969278810678913486194615175224382092661725171661059577026489266628530405316472323024676275273839768781785984972699815191111473074108358649181870487529628397021679758592475962937078188685584970266039259825907302150636555787655527969741361118163199001123199671796841534551667653358990126722858846886381465530976627644505619877773923757127849486434288756263035920143210589307699527558597084181382672512279346463824824359312927032784064888742663826834866235199064463301162736324617175039500359594820273814808550575823109941940007287784112980926817473722242066576629445333687315667778804786580631103278221490494385640638555337174245192093785916375624700246005550650739879888656202435962928607089102063610794389244206899546008891964119498850378511804040133562896112677929280599637709693388358142528927540512964607383207973960153447853540957145167294375605948992577575349826973773283728922788636678660545105218295976791243549652100220626718194437184297568197521671955430056904505063668589696352779952737184380015493317276388144194533377692402126626211792635571512726440326488122421538495870569162839510483566177607131080050524317849225969516424944391855318229327816031744880150474544613598539781233208411818326606633516435968243255055566492090734680538284227393056438994214645943903280911632959286737321571558521768755123206286310975758770149225912421431853419279785716501611256125486866570838316054796441495283680688259452123778912828711579761378709707463498749624355608604431846795833017261436296096837176534946564150715262184291995206109882740212645811814448308648244504793679532938275625683558393263164091946695283515616811999243396628197114071350926733358265060413418884003629089601245478284602933261897031806662515568159189236803374140411207579409404102243914957933180631462943897987814101030065944414862121960927674906728573279379894979437422593777253896758510133141785646144676688313326535494843753528557269702065640086423287056681738576892727153777933046394162117896144948412544336601514385140674579551326305176123887798273766117006759997877803921615279314737972944912542398002495152541560716502709883024529061848544501244506416617075026218857348706631673730794872000150834277822909989292710579897079767236030509889547976363420864015791554602025379467830241733343386704286813149543473025411968078616714577467312814775782435725376020582745245483135892083758406458558491830334161769398969281717781848432939759080317793963231262130579135077480008512770641791169546699469318243744689079301600649994367936188119111712048469493845966261933272581313463749507254739348030330786948855340822548495358449833478457182001041100953396835330130475099109501158770412393344283939072365889972038167936860699594646980580901548507203476767714341374145792955045818578677752053635464747074742127877565581053305044446224293150150871694996400439447911666240040214245072781135696161349161491040593475992412347396081106018484795540931861852913699178628885148960770629260000023221997248538759318223125312122973163343504423041042506171793885776927623954297234560130739027002060330592609729819131309932660602467249903314975044528172448569165258522665823818302960942425405539546986356497564765453314943319894827343110111968592297684188521236459620605107805796683927637384392443345074587972567802640319212773876047155233085977418550016548732419545989726741618426800089795360756364473088565067693907002266850508390968715718655655675083643062822983893481736564402728451398649333901536227705676480732676874365416566853750897497407198332832061500797228210558068667338403369599461981454300010935547384061223195930259332214297017623095820988767764045570644008108338898257687635470465098783232881114492482300300678294383058232569490695012602856993402099613003442664438170884864698945569093754034848650780071747605311270427143926256520604695037915199129404634273872212065586140643008261166843871579011868722855150744834267982125785569825119425382896221769816669603609283532870424883504617263716156810210699341376802224948497734443117070214043088863004427557500493549694199989488470632507346692761855742404677160120223149802882458255733527327547355887542039460775016553872208255811550757081058960485718787524675888584929917822243339742869675007142130430052556123387704950512581920151256558399223065923834086170398692949987151353952254621750667363306893838117407256099465556454804592374810919384157844938992479334504475646159659451499959823690147057854664979755684229191070895308298131654376668792139433683448594695902010647125596257143040031284885725763470976250908647234921277755652321876933305838775499592479240592114507135670303581116973657886437000747102864531700945414357110750802787202582910067885461982571480507896186188085292575031999210216367235423240679115827231604327725409368478376185459611991341977716808057866306065072138944394821019051993444674358241577414924114347308900961887449818776640559411751583761942649660706273700984044626424489542214691531062781636947092537527380309150269817929006850795647135755374719551047477478389821240252383934019750302942363639506406532197655346082240075673869794296613841819008995679983512887297079995530901952710676595052068394829068403191236287375090066810274618613945725599304124335991299377726362616946034204664861704692417738129966609276236351541280076544418735839377191886016438102356463798667168767519537187125247366562514691226789423088665561758697772746205863828474734739404185461523176676748437905930358840457354760051696019685705308028921625541136508786837237260491426805013459438983191539712358894068948411392020432024658215741230320554119475060177949540022193462943865524184209726062680425290139193205353934379224868019382834943501742386681988803141110230389272044711940118826618735134645716871174435251709791154942220440232398494420851979414116190017154750891274128927181247678207932407310481433153711074958678549415884179349918124691122950065661195804413068217673682557951787289729790887799462852376377270345719519092925021993313477985523280190599008045024398981586129093455294153142354536305792014748171191425770422112003684343848258248394137802423465257198133617106926010789628178824238323522344060468988471582996755647232007239948328121845997661494592315860072528182928016343734262080085230145666886944534336090778839946883189207077765093340046818880437426541648351283837485346232819415101623186632352193791552051800242262860020660697232990745321261255544962248386099657545174860304884982051246425031363110250271609104923144211757021117300745712470206726077220159694002676655562934583402342050882981569786050584571113194248594528502979594282550785101140902083590285767822955349961075816142754928596840550896229276851487556481032058556459163123944328212290892062089585090404472555440635609695567329253892905837324177039699230563197562045525688363149960810254191839260281371057905848398250270866286918357781115631205370855462265746314601031451880105240256054647144064665927335212303305936817739552611298446206941386105957588178589406229900149234846170765211319100065575829583437289203890375791354996363230649198472118273049760782963798652914929000653204713558893426837940166471877311389915762034762665548031137242567735334608884905135289792254289065812680901954075904676406632030981701336690510237496540728784658914384526443299348334389912210639154118201659764501183300906800231745770041662911203874257695121537680239690241499705391455282344463080371730254599994110089456949578913886891419061394098699165340689276252353073432075312929698636026234735026963787823048884588846241385397755100334193803601778975749732432985633217588587765838409034366254491298631546791835308636545948060995449706273362347437231953625081159461505339613797791124112319114776059391017440955495129623567411213602256376675948770394603800079529988127089316750571167405740169685926719882150459709820411218763855978058567602745958480084001363652976259324991249854380056479679376534439137301283296374427815778394885751561500128813580312898842251454934139500583565932425583120374612217756212794423065633474609079180127611957613473482417392193053666804356815550118371399970570999390915985050515426260914121284758536283644959150987350499949516124580734123653273224402179932832604313685824056780324860135572841334328560353964630751180462260511138223239688169970944460332831083532195950753879104249196812908857080303228771967743555863530363645180347902138250567833900060244230351403053761097727448203305073472901619398327905925376230401356314266777964829028766896187286168018019554214271429839619380295192775401806010525195606393282052756288671691939381837976670500481777383247651607066532582000093924737114180188007919662421807880139096685302612937624051360604248116072559702740597622561320338573075640354716953303043370107725273636567966374622636102999469952243290117799059345501188593503340812653515356833076450036742342574146135853023806705708601798271738787459573005050251670371765228719655682170233756069896104905535912898074842010063162904616058439907106204808802066057487158876862546768258300352984629924779266448747153730605492089590541134070447265589040520251554346075603649446474030047970921945506815629080364172970934675488428249375538385442487806758495696778428707728349844457914916215471079489325298995126261602059223807449327232138591037414948869051444711223715194524372396511250973869286796929555785449674182355002639537189027129904122293211160802426943616511645397590550428971583358615319628920056170018557711473998387330618300866220633616371470908106927910968351299704863247284060674704154870738137836429711214688089618767962220209405599550267129065494819402637907324901172464341287390444715702326796642227473937339457361926893318952005440805288863374379870174861210435941015290336910794967453737979507682012374995002630447522924852900860210239938442223264213900967986537163114025147191376154232423658242027947955155445139865814811260338695641695673217225401890540263940543345639888095793382220292916266884070988772251987387371081360462056941641008402220542288767927812500775869532005293695483860967244431192380174051275324572886184855717401522374450731393941754193425667896766377105609839803761260392303328209401463916447019934680983555272808818388999865183201974819264640217890428446724473381613274704492471432119632924192607670078705320450931533866317113819214800536357462596415780555108230643192405049823999123619070789886089607070678998923704119282080971350906754837115445307344353755412621153783584767669902248763817085989450069079514751553271109404256686300726286391022324545181202171469116518368441971080216194920085366597016932549343580675149708190579789405245948614684115102316599567474942317663939246385502625266994810173041193772082688961013069630568547267040209149509661852955948843506262754558618475532645198134200208452954820684039642088297780271564545507097130688353304251779643243028718242021239412061705923693622973669791563137539334421575107362331234519312373707780291419038308141314282038105316425187730903106939194394255328833769363655364606783884183457719646985790818339284299179830357641945396522293004450044276609425293847343645801734943931363211593097339824288625743328129081366978892834047127482472214645402068949832554870448314435746080147863087418762452372044835558609392165135678577963832402548033424306270011958112181476803935076372289107874920666379646420854281279069358164213063407832538340250443445752559950588848098325286858900315909815476225441994725866309695217963220036830691694656355510928748324022705868372787232853509592581340039711563807977525606793356797791699036583177762585527226767737421223477965575759312104309895089439293284962410973812643851998400825927804833022904393512982943900226447138826708092514460926968271786831839847670059038948827719143927088206159395821809702115560234851652768161263315870428309814034493273689816343016107087774158513350608205122602974032710895872304087074377885503033409284037367532618153361372989525596412550716979686380194390941549250920582007746964472874218247374571638709025748788146540793896467737969549803838364618598831324302979182830470050244690717972359334724474544864045190949975588507487203496960475963508403347631814749277194966078796540950252129739967111194875231790701002887854559567724073837612618572716815056277101826341913897081849781669539203761413527728101057346980983015196235545204347605463625027993982909748385072162173585564196595935467051845320248434870150418805643818989375511390221425500556009843943448524549675144732984302372226938301191326512733735123122948818498368783743589439164591223010521749940010013839375120008665088898418906253409634880120620018768561800202304563441781847272929599815778318066675170596408284957241051787238877076629101162268767824442602999222510315228360651019272349920370352173394841833851654858532059418576048755099328540144612140940277957518126841434343042161146006926634128256965301266655365613375295499168379592791646503106641099409185285409927005684064877633605515475068269493578928525809405212462465325616814973814966047624032266550749806441275718404564055165602842962033598310165298127712940654765793670409590232692410600931370573116205914720606944218640116789119153996022880709094136497913440677779088053121133985202368165178490703475401613814783231688177782100738403435834410469364498832557105239019678877161758976520488669339415282904440356850933104770353152576718787969051819953295234409120736456988918860197849024974360532334745055495176057612798660278520312306058611294670808735811980736372642812033091137046488834031580223973305035764498520474734117987664612971125491640500887391473131030242958339742982831922102222526206615254077541157332918473297789005202943474498614801101626770035809065333656779080423701969623147449346671841159742602142187687519535252493760571805931424665889225902099132130893420063170474062620649867665095463931354787722370800314455884532377055141877919258772956769550867539416359765007845378342131847048467007324854168886098431901951039016726398539363675754488313039257454217949277849196807317517119913679269061144005302801748575314283744468611625019773894206115230260982009373911479819877914494649186913246869964027071762225970972725892336476604038578362024142099349063138123388390501049741854945365307884411287518089913444569644732561937850679846696624514099824942587402281631620482099115768357514503482041798300174175734278777454099382737313974290223810127806384024544361023211959029170322888529456392679728029295285747455381250713177479550182915244627409060320111333816899124308358088728742370038444615438010852295494407778957117710211216727652923476132311782078488849553772661465484055610185523100369288558063906808283815194623096858052758735125287875972231580143549883142210516320375274102920579928353732173112149451440945652591733768002704264271950303864669696106831441895107854538601561536797639099782140232917067808124012526356391019713278642310171519951044396009162837184992209758251217021648999528770751560649049567047678981442456925346622104578046644250507340638586537552773095599886641797732933108745859773569455485026499718726223379651717285879752135494065923994096046841098176743289541259711643854912331310328093032909373620720460674521520941460170253546571396888803183524302974378184277377800678186672507145813921153962150171150149735452971713597518259354236179378063605648746896128612202650492751472397512601805252936468563641323177861470973663782154405849606457027051143492311334844748227225801573979285074124841139206590609939484894317444426471779049883046357064198740161744861792403822425280750309660151210285095801212348539419719300074205812693364468652930310977286354944621943290321351135806066160452161309337441228089119615772525189107500784650565935458907401146455319229745962562804098248551952681777247543868998492235164958932492591140510407024473824514160662360405637007632523412327482254226270044125422592688044912488868746828689765950403090627427673971328530249303212223887669940641873720313104777584010004025515390174913271111808103778465497253907988336358665536668237557460137436545017982153239191797070960275163817989740200897286952487794484722002181028988154526269663797532315532190396830070806543683351784842177434145460892273629968532003648978800514963575026493156952908323795217619778368665692194596967660024862813309584125739743385567503912982300965603182625852321622663331308409969906212964531149800013535288153194037661627477777720450026294266384676885541818278196225286153525138883959498950453397544171658065692353079884117489669245417107496685400449206370089320193074762212847030863712666508850970324869105619486932751331724390414942258153823912846787340295272300942652364398969745381730847146860636653639345301998252161562311715399852737068756418233670591992080523904554405606242963777172771696771220352317962282887377142097567647215854051563171161537858421273709104145347836530436653305262800225628592157518963211175063079691869077161480551224166367160054156706994898898843484937923114170478032546444106159659877177185977134184573470921073399666471009510320202540670255996192405764575965504408129402392670275372514525961810988710518829468425951977123614212693266048732192524846623843004288267276824125773487511996813306009439478500502571795239689108314776962708739388637376105012119376003969482885242106864915200592626641903542101541975519342444098136761085883795057000151613803719313973405327484970151906042299681121271216194255719792553406658349733551160419056932922571526905179599182016800522291744057713769913881958210032950182421409921120226396675287778850952916158855075535816776178211459633641089835657399932369936769083880275034974847386419174846389256064306354361654180526630975634930725301363169631661476155741004290674721456159984580707229672892756164677804235633934426811487911592643852988514720589628023345786436648080570663397823052342548786600987106517163777985500608822040444048834855670835500056083841683324156367961922149983621674323723781485137825180404812703254529878657800768440475128335681118916862043742260502305457695112804891741142886184554773107731524654710919830227332229564641525323487657781723950593141080678605981699524792566540406767848989841723974528229151884949912631268762289478579194941929571721580219354185706932043849897010819703260672230181645093654055991625021681481993870508555932246111074354844039333657294965869298236695506152205492573502960129422747382251519867870979941955665675498044144028334452827007484486947045073499253041238220236961504075908238550138743257084984380470906268541217573542387772520091270780971945888631704745616075542648467964789551685133247930583569566370765220784308048452664632492276343347809500482300304770151111508724957353344850468564877041659137797991874040687366748065785381802274516315263155483583708167583963489941718905114397397749428102463626144037521278063734826855204976881227766250090654478758534746040173204654590467899028718097518314201768814511866964540704868947417114634520367390538821719627361953275387999195757398623641551546529806085260605669593572026152783214783328995687192891869317959847528077659326669177961499098539668476178202363562376094800599667062339689087066808572428635064062883026445231003569887261207980433360541702243507043838628542106316392619106518596771710055049894017887834676810487274313014478700510816172913042359671135206014296253579856701789399355239928436486090031061591181912719538239250921192415893681225689074808807708424098297118622545037311020151262577657161102906627924689693371972351302637071798468962978851507187617484019798309633844120417346317377604012595565719527372283902243655016224931165929433634840921406455014166348943739824888868676020671115674637308646291889505262259058920688699554668755006899958341545553176804608965674365560795118705919126659511883942596884822844027151619757307320400344717453133078481538900349763616911648425630471738157994787743472874500552652903605801213274906844229400839667903867758267707590457305608186836835597508681988595042565874484685751812688753608193205896118596682959140154341526447843168236879469226405772152355767131887871732103749343492067970432951974669588622479562149807132826035386297880190488866051953694752338702733709501427818754867522049093451759625081009291491506414291741157954617140712549473775037010240383782637242834598743524852687533404865541816454421651192196263726987494066958243177771957914251519544708468131322695350337399981833954380648282704723213377151813009394912701048974008847343641201148014512842735578415388875235863745582030144518656375058390774022404954253699569585982170322422767251281118766875877719482496778126478873744731680511475819427372515397395145503670743777845339892144838970073858140298730826028793538878388504244440215221212758865246011608568989813557701130389563051027446590260763792297766656212378826999943356231221286868468281137649968287517014089336117870439587870223254681795776693677063183930684706216845544775382802203638911988868474709555628861907481251099773729782006230506425617864071775263362916646650486990239684119740404303021800744174318893380911110163303408006939527650119621312023588198473149234457064330481669286145562269412856234420176880240339429522603332603226233176944188712802317609707630120093521874627690512047276967921819949505255420230698798638709194311428702692629981870696294585127941526094649567841639061244386771383150817602209695833468239680800848980449044973990085808223128065375160685647656790601907289155113188962427917986954171205264657517863121065838104182391878731297794106683318221814847560537671065809657034607707261985833595594994250560522616514898887144720053904466793088352490955289524820906434545677773546445069319337366824461351398068232610141397595969412986227510154974471560529651837911576132628422702927761637172755628777106803049712334021948840462091337126444560661751867653547796136098775657357751076844639480814911597415735198535312075022481552957793876971200694550454153100446336714812741474211948652297800350963130544550219274170906024736675557043388676984336492743174790122034716067463749555960716341133757203287799593147701684731175387397973638620450040759924217813440657889933832086734725723081423545102128713740533127380021928809453639917203012020256412685336386258105608748617888014330031572129586284408750273017980380689719750641763046549578899394498173630047462101002682028929067805006610371747857284584211322702265964056664319502805285248146184999397706859793172506615993633381735288324577597725091764449523499504340480216045980700143085809177140155259019705881516165538850188093580517260805771470640963495750670831733722157756175401257146376795078718618402723704950121888220985522492406790405816646822199551124057397402827034825931778966685088399252555555077106366294174751469391351643748245968984650067649032543616012271283541064848121430647667047480603677622710483565816729815493221315973843653945648952246962434851409231328494513418262858209808555970238071575462213036294500511122248104638076234289530233978265430830178716185621933218597646392688712698264672546861020527869499461580886460757053535275838638727750866702807223330756772979469465044498405590596071095967957636959669382765477795661433695821791379956495242796074403303697213469755889628014472671797877109161105974095335184839709655498410046563224649923979725800454709494043059634420002787424163431746488560460728789097017046697095991224323217452637552733452708287971775773738366575309210036896426124431409834295359849032575574939518744562969376048538627413303826019805499701643903745671828497461852451390642068693444123045982527541175093948428030808199242784539293215670245856729301658689908588049679997185858203556781116410936678304654614414363617836968586736609898377217837052442254968828993113616952651154760351570974501485633420302189509926866684391395400105805336125809209186194513965155887644108107034594806979018113733107377413663570095463737090409702001958392230398950405511751598194565091973134842005944546628053399367684668276214292815852449368943235198720645965429950278265762618481019128932773601227740743061026696659808614566598617341579413814335421293034773190509249973546497491951623299307194081566272505581354399350092931774285195932452450435852879252704908082013535987363202187531018182901361879345206498669041898303605076836741480414312569287895740602610689567662447754487637163634963875248218728681435871766123775802110383219885570205900963284745361887861172994199391769001394896658666969346399896993282112632342880965932735490059369640553102880590555780544641851913432425487401897263836542852412741592469686474048349247497582506964369359580406057867527086252090154122748983208556264266654710703117510804158351323749562438031496451743299455165868846187978187947853641908458323904929411196058671752086610862448558889195604832873280956116932447047082895575361751625460522232070430883490323152549844759594035267098140904973537945950425590412575369940512726508797788499146428617217986480665830181545265418940023075238967174766922105152668199820490404828620102771897697873620174192655019608500207656807537132353863575307430501387325648125823991444805531755919997102635859490034958430291266404434247293502957190420474660294745143987919718352748531156168464943577971852284762236808344109736768029775283398992866406325464417022970320561049021190517631166039486631124089797401792794866655516827555107901593756312826122188096237173729002737226402007653484555735874912335021697391816701896009514109571609894805050821593322889105750311171274888334655895314066450153555604274048058752345296389987159524498481064970578714434285460870811149691692615547545450567723723020246308727182286535532947924831002142834369602327556965503161220795294971148917795273098863601410341652355563428664928668455427349046103655848776274523822585629354003028296892470970538083211381821505721453291310622232662025183388890835466097444279364204045856995177055695840448928472057741698232728732240013388031330607581559173839443675308127721390829084754545132998913857479887530504101188562721356806110827596347075946184515942877140653383724173289541672436141400371114396342900259599477899374115783644582677554020019696767534749583539734764703457463233664391282976562958881155080712113174007730691891520289187752289853756549405347373161587771974115917325164366350797935427881682314931215880657103947322851824468258485617277981079750909550774274683643190841019132387023646256687274735648221756347287622248358922734652157295076072916987200394623556939784136717558203762471846656482511955669558417775613586510302337752860423892212670016044282291134026052093754920430998198500547569515830345841832944256646547701803529891804028527533222936053628870778349532881562471617443575403597756148213732623031885927678019900914178152134114524213578745828701047409168771552220138271190774583554162784235627313888184510754610986665110755214960881690603518593373705989827843044975469063908337778375956989745227560614377659994703280817972649330996052644102180492411547450246234781668267740740577740663326555410217991762654224960672444685375005545957863083468240269928680782527329269899631053880963207213305588716466403353712619849166592720510058352188401315087154712502711207801763303135698991822326951195096610184066231988290557242136207922889854133200754007793627071968044331457717055533675908571747213472956561274026225330504960328625516941551351081927694657301672077229765530689432837450387003081423716533946003450084359529745248588175970230196420271707678434318885414201182609111870617288226802995899504557517720210249791054553567809221956044318929081666333866798440797258181212250003317397872760752516659675736609815907444431361202410995556583190968050271441752178389941904691374041577633135264682828963723719185245002632555969062469379343043535111865534722006722726727668376997600223727427132267718607635028704850744901107023050392371183172244564893531885509886716324842921181756947817121562916418789496269377067824692843132398897760444815277911879964100232646372674642485784744152081673232438068447044461919476940646102962749715263259918448487601115787280788649166581420897533706658342093925237077495250049875817572080068995246411179590527939261111170780062604164138075140875208887345791475739803606797791906214245327939416495260769139248036762477115807592557292240134269336701013172760986251812130418868483801584119811876581400791252578428661598942267554229117211382489130566337365504151707929156355823618221570668558299433154435252622301858229196079363317173649964884406886170972750953372702241921659470809736318716479417205226430335833972767478319810057950543374208876229471724545890350977146993878028283014063021312279673133718049632646120930323545467975522367886835088400601910911191560111876825619357941301576121511203734438199189324243595892281275502480297218561969602793169568287541348359954494282960407565915805706815907687812175601397850248408731194773152436138417177124416080076687459526009428383426617186663057334692195239367686892491116626000053158859886236488519341375439977097401357497142416624730403775525727558454185463124174433029750449035602401330242147270827422274777421757567245595540477836622488328604042343105289438397195737837291744880270301892299644192015960421354000699798633932788662371421053534839267303665585646218959721478973922738233085643030906554732660813235775859617972788326902648338346037724758738080328092891264432100397436178939446664638679220477529751827533438385374841177109046305144605354492314747174556415374198767772947577359174331963712051486904609229161099082874697841051173530630995162360720132109007471256539085599185196573600174554692541280640334573504355530738912160274662330417936104578571168700576689238743141126416247257970529425335281349827752439164624661227162805767605178561482795201431588290058258262846057897398752003654096955840776730279674608703008536439640801779299103459304417414776028636825416945259864052720310408193168860596874003258403813471814620324419210756427639113090736040504175614886547575475705166660631770757398053108076209359929147296677725643548514520981344396320691680486927178916724294865921657843774036175989095775964395789798247181165486627492503562518446794980314400887101170658435695544688648160326240635508206744899718080716834636683573244711005623693896256303670907011673518356491732119277046677112525058515814846038335688366556845201973643039529506090976396471033950686681853775473716561913006927177781418403193730286724570780169934609416022170661571527377828105467433032352397124462730893295200346554031906458775709094241003586089356743618430278224683027125475087900932027646617790718929540487052277412378949165918969849006469666670489487086243013396239819094848060775628566663794254978179620048549912840214865107609079037205710133202576180573943287626830150235445036445033627180048175693071800972943562073589210471502819558641991916703057514422829067706667032444434762750584808193155232547996111193281956613693628537807620067476066006726826718255384339474101326472890001664151559813997557599309786111418667175493893708853374613216445409525016055091187553104307011541269146663552211454872329514765441306079017135573507491331444909433426648957147001176027659992051014624293932126066832745289456592500243414505691422446060337198006145119083832159488894937622305049270905684693433748261691658608146495818278193868374697166520848109397748821961663541273517191435954009899170374378483875128007353531391543052514693207553949164128526641098017413211530493208751834195015008773407488072197102398929345766254237707024284791998944646558256145216192650456976158998693855323878841330885777765408810053688777816802003725725717935279281691639440620599027922233285570286876168804789668898098992651686503089814572830123155648838221620204897144948402908299086927631034939333455720762322616689338860070201996158294841576713205679648737337955469140013684804347190545850251889226756953746048749018248981110835545033511554392751908010757063731067697640025379928680765653061648539176984912917119303334891955360533285566753253127379723090187025222813236177907469428807406781021062572950274113835279668634523581916499331179713690198034904391003835258850519343207836900519582801756671936591060040196711736980141793646792124256638585580117664108291008696484251280556032816357825657562777461692739899879593732439343901770943643910603290248911169468762285145064030547861838914617314295646528223860819425949664846515571409452145937594300966607201843855122720384167681218813794881992385141782946006044864239020500394841857240719981146583104411128664657408855377028867904327167856153206110355204015564826661341792433913344662267049083530443375397451726380760934579791391593035358715170504047341354078303146067285747600368433549326179831493337819811359608968272991260159683510837433613890383207128763825638342186144932350086424308676774814971025470319974833106055391219422181026579356485024307756349119830327226128730247797058144519196634953865788000103645293823716893065619940076937080965018412910007932459033280879861841632978301919316407372189112139248557455388708338454239529616437918503452093240283997067156483181388867171420907648987929227473622613241210004320888457164897596495129109640829987600978185924198948791356224850796073302696626657397566961472507337329992396020921154477837327719352997994656323532256391729486142040459647796912208677362953834888062139392194525938130869313517605791047342092617031464432277464353219434641809912938038509264845812296578372161960453742455307125695937207391752995938505516275489469251109182258814020023804707312712227309061858106501905428684390670261406588182525716548664161189281224876810636378508209761244002985402214908146238999680118774093121568504844791352169555786083622398688718376184884303193726760402303207860617196093991222224999223760523187610039588319603860359383218752971196602941728086238415448763211753251006286450372021058255164036457515629257078098635548198223434837443093165915771544265623251068338873262743110515681199552472915726494040650503922576808029973135454603377034489463750474074138808460385376089011569899912944353083478317780757771182777113357396641784691937695275363288460348605260287914689703938802768561386180239899694303942484281987639371131637325716627362730256214772110187135321056494217534839383007350504498373087809923667221725723837635938071786636712188266234794491702903782860167542964589639047586678096439354763811114988313568263267155674243727497149205759752856862977291548767351022735132749412282288313615069192701404143472031479997970598584187775729746018755027117243879112206274004884093866537335608930565456123118425208347911349891270876902378502347177983191331576879122678425441402567233684567226038590106973909195089629868663388100351733293906452033031097541190724015658150624472515094918976325091746693535152204228053111611686045539566785736424824282895537870412630779877656075177675466875247966596201435576376837228432154103931315884454418655885221712513014631915936879792223608282290304272264767961756959847255318495991185558367678056850415988581437242700727705447239139969219450097600769772896270660418730754876900081741130561467191346118857853134324926856872833822244717021816915930572982604060860135206011103964359418591578779889891000932449135500131294237648133548183220901989689886114159152678982771117200625860834290589780800101743666684424513350181488953514426673685163782377607273681152258723011203930049946772899617094342419747485131184768628798629299947504142627791757292741343812026505843923946957095483556588258228446668337170158183850737993623176699212006986061085437064111601086863171380671180183003790981129270786147487244960829348436177135656785630817748079745479286577493010050723935506866855989518921677642980035517780473061025379899425548725717867906112857975274253924014648255595408995915303992545838200106623193875464603618679776877684564290004226419056388023924583224687613301749804439571496959161656685627678055550982085708514749815361523939864489080048979860255438442916346284963795127006669998327757494160237235612910233904364703362601003941163588929157208974452227001140121925784206333574171251277485326435210707724428547349379697173496301359029061481776685182803221962154038409405454111673797851494590091387550889440910810950549972671776237037582683137515590903034922558259641540894678159142708652373279830161968942198644083179645908048796747698936394003874063539866112716330311037968823812759663398191741040088847480963083185420251201879426025505240987043820146538998409629175438552022933726660663112824495962438112202625662235515114313734236964214099114365500895924885159382184799645642088671396184592580171438271072775449816945095284942216450095942266454993443253415222863176768002897768684800550971592050476197378428708658683172281310048119823691014398844913134778544125144937596168118639442521714526554736248801823631619677955367351949837119500809712073895892587767877506843306647960560785052420707696003882608752255385176974136063416043138183865558283736834149274398696307928087315585243433165323532846669314160285905528468883484932260827587984216513825387266228487747730068727136041824628177709232864937798588579764324647693805999092452317822394342932565858866283452688072270830692245926163150329977559020527512605201893497437173604320703153062478960072422801701324668173039517345564375661432256487294068968983086209450748620241292152504925161502856452785169398492888138239115927019800525719530384209916179894023750090329580843015333359863418722862817177318971777314874258327278023818644276218802798077235457975955065663586731026590447429554107015618352581444476533852873466620126311484747197709403851850579746146302683057607825573451878134502002488842879243101485376015384068584053322173485753908747502976969910713469352942850764639658487899378031448843849694470238790660109236552191512032772974316065999329438717000401608872306093621883964269870928107209244658354545289734688935271679788337279247541522836199020519255970832535890154465132635576801117606083801514243684470876528765257023551664617645087025379472276543337744505840973337900117864851645276992381601781657683964241744752724747461309538488310193724563968533269875696538683855726312616093374815515909556153636205630854816784413681161091469560811114989591987727392254754750382544168609475520406454908248395042005375727244210136284419859843305669649075444977244790422163861604065489242213950206391069239394998500091171832653183810779531390039615740006139704089729403598355555986363493705920114240316705114932494523282926285818816585933417985245568665361399440252833793093310349956344903922053591590376824700526793566996068716020124064127893839096088814632843078338400080128107458048774647272812670075796349180602116257002229775703241657400905221156926969716055039191055741306363000577171582318291505960343745461232425786703771983086971895140675259439556828062113797834351494654179035025024656473359161778607992504847932990747485911304711514271085217130817358023875814903925980259048113047574439468440395061715749276889075838973525987531165351752076435042924150994257707606158826309164859381475604417676698010937459639721285122036183201171256073334107954939635721672809639319372707265725297733714560361139215341275042868092585657957570554842537328435090988616362011575406699172194398412264320072845432901286701462929354867977911469517714063248540291730153952711554762288285569015353228424778490197534223250451291105299882070609814385054627071127828996073672404012563355730644551248650448937360406367923279322464716457286082285530708969093488276664149555120764161654453209375669111366940022189825062360504760816315973800818151977975597308059356300471110915042427187857610791754501480741411167056620661701957146675998301708293916649575317071143719456883131650621602215313364906096613116189486058946859380792798466602727099107111404858761643891895682184317799462154998654027882578945125841380031600128997823899974772146196749760394974706793053903728287346869431142854304730565559668989122744165967885075636877339924173285393294170961800250821372612988456423500598546466968581762428610093098129016987838272800982993249353839131159530170994114078202122948996103721455993840562766558975019280463920166485283530912413496947603715775144655487887460062181384649822970936725662376561025170789071292664494145301319434245179378138108681842277488490205379279059701947912116550611616141674384228233735399705722127949189558544878907706703981208699433656560882073369934565589139728272511861178339945016424745409132781394883771260818654888082507691906221433501194707588082929632996112011739616725742794575216793591406047723410381946805860834914101614190816258267399716355318174459721583146540135796656504280844430646834841094014708237019254247036075260075252158382618673538913220476950020056680544098140342175494927893871520822769595712678292548892334622198002560120594938531078977774410463054789798483398190358867532677046843089020815236124777063595137908265247432673591810628995077698571338858786673750966257506238392315458006443462105913407699091290216357976575624947398765495051692069763561816818467417806309921760613513457801376812523528925242471306460575517119636669837716487694689174378369433501207846819087447808457102083773750410027444812624571728293362684425824251919266197832930568304961824787312171694206468318035680672224272381256979149880594427028826695686361125188533447104557721812160350280340887255748892468286184208015809301533730756873708599719843420114249797667703821959879994070312752811225319854631855468230236235063921689855876226443962537651140497711064771790610998301208382577759013332387784895509796902639797318377392348597732538475152080807841344043019449341022156878062408758311110232637314627522616272909037410648511207762944286510664494813063280316889799195536259028516657784997455633049270307036123941631899974496819333836294042677189027078313377848769958502893934185967297063662286652670616686323629318939978594331826840350285473732455388916188507811157725206966752096112329729392387766432378417545002847605577379387137595508875115737927321132455502011413756532986200370383403642962831989107226032826810794268944841195702672917113755695531589090679107192366412946338218803284674289296799421863196442661806295084708913749484027034684172108047739733405361210768427268900947736319682963739991385792883881222407025276719329134093527373649515774576779227799143838992708213906210014536361894489917689990991219695505981367872769864416965538457851851386270828419144557272695875724127626609104854140897598724363363369583146325452548682882998756819825373331329724349440991171894116065501740645033112258049638567672047256452872010639291270090011036477069537286319734994636351615864640371675598404042582722872421506778150921659035217798715434612423038613713494374280117092278966144535109616464395917810657798157216706452833417663609675897687412091147542713710762947791983538681857828450743697690216546445044008064531577629307377779399021752536085325404112594053745377427873600376875620448222989355094158596898210803029559207619534577938481850161829487254685474429045446615466701057648647825705918799827795286842639894359199294461928310299672303517187333421336525796470578164047145665233213001805306399815825792687631274743682926944327554297600300143090755307297979345002753087186900288110910726723843436607141735796746727768027968952028504528838832646348871667409808041751730037392488891915618642436340187984803818582359038789492678292558990696833044325409931467847624580102011046906892029330109355998189612786358020329491809376372447737067136761581215998763226599039812681925012541277388310726623378255406515893377205353974887330845363939358097832332018732794928469247168764870222002876121576453009676454615544741237602760723700559006114298488218646504123248168893048092918643379151492687572121504771250737604233725319375403254339099706363265106290413858508378555005391362347663305718073112630991432008993216200930526715438731339782238521748303197800066845423781202175643851920701608716885950755372187565354177987573732940576392077697859425395883589949000877453117129344486014772972447501054901607586488408992353316766072054198358641969522306962527322220912498552083814479571886273340260736779963583530888260946616002185992065538658051481846594632759919473952197878331467500289896530367533822365779457051660132405371745319298544533677736624253298219675756445215097608558493452300288371097483032095904760204365939028620422988588598926074084347164552594845611955310710479454280021858309112170306719266403669593771309686923588342965024294914242499370525599928386665457580998381743296193939764459341311051273562445614979662350363019933210359089021072097457628873736059856206025859812995160103781339339022667832007441750729437560508348122403235064352350284118479063306959498631925518612312289367564770443739591667244702814241116616039608669365672684826881870784905773601407524151235077486429775310349264855814151583768989844460674566940509691613272085728505781185773052533587473982207684319313205968321940707616802740037135088430520269767645452021020507852542938866828909533773230872985553045723095109175945745520154490164511478136613538692235946779956480066249819808661468276145817897619907268872919136540111515885060234207824677480291740280285147155751271122650534642775920536390697096289469178932070976093856446650776568214779835438738708370590808482752130700727915063472337410039878206283898603031886236753934280369027381680379596004322244260627836925385221396909487430236961559970892974635265266914239065830727569070637829384937612388951226150846363182428147264579748993273740605488343165983382093355390259787407281108571480762173124789271313029804384318705939248182819366832919101180434650812808276427818117174041956354681929673865973498102339907884525062724122313109387810162281580178081754103268292399611850324362599495975287045428005320677304166315127433096160470506745938936636693961943535596404719666359363006047474317580963552590221124434851755142083388260857452265983586808839426606795051937218573655487809709792092868677632279501955447983966511795751980354645495941901756050519765956081672119154114947685003634241983395917901273599001627152234575787093184368702516862335831664531181025673559591704877687441075697982765359809176098712416591677597166814439312771309910777487433217102995086133564688250105913871148291602320731550346204703125510679393690855610306357262416574980207567007566278379706024694148459038048708007606465515451502780913596218731615117972277135327283174921120893326055024658580424813884909236337744450188291909117861867108624946406598544814143603995930131615046452431042375329582005260677205121547215277550087178351734235415466555066466016733019150256688352772485601356005303037160907377190193560025697783593430986848626529176196739792825137377739584242480556099949165473148500905049757430207379224231772343800672561538432075212344180328105121803600512351951994522648249002628603473149376192225532354641160441082740595135202167027315355435028022638042991787321120261918290803778694151641248126477224539092068167680642318648930139011092316181462826179976929375223344247806455498311538163062769618931046738095737786063916089821946718027433076401474167256178401563697415245406048680798929575493840292637768158751976987830394176405734827402374199700410804874869172036557036257412503422011140054093288482513615344712413066207377705303525488749214300715944143671043023756603970329164346005908870195173179672936027161875824955868668567470579528178969210849107274868489857449655531122111437131702460686877074830434494337164939951265812813465442437053556754337030166688530373266406953453078052393734241327485593258736505628522007625356362218210813812067944804755417914716876752575920801558817619730707816994443131407978028609859073865720879308888133811274517430046053011183441179449708708102103224571586911616731349616970114218142128389142747467144608562411026901651379135283859379012594399711008514865118664963232967539707335393108654993002781570171702503619496819468258782097100593760563748345740038024710160267205690566818459253090381104904724513233938360168839124808182420938562860044015592960186076728549039912260774573763687614928364156993301419003711956210843185863094079762628674317444929012799497152565675093486621051813540938537107910948513161125307438707572786346196587415046811066930373200689311759973111588052196572209352299416912776995930161649824236851140282891102836012158541725587631870722894988250246861089514057638823123032360045312973197209838912345175691817687426881171547177538486391099782343117958352106808230389340029364038957592447486449133536842557426023832615234505985072179521937758488197273141370038162263618218548409018955768393185013211034642569876747645531086580884530128798219514453075510556929791626762536035471149350878925899424578240689544726176003752005960847088518827863866256803573596457856575023561039332078711871562782932816806269829460996765980252349195294694028637586724925782763765779065223499603702637857084237772217911246416341564607713882965466299991930684373430265825643910362399749697061844277284833066007100148140387243423737049954333050645229171047812196835976632789019143221378865693341984844136192436819664472941884188624570851501785859278906637114171736140589132248395016118513529540104961598806780084671180639218917623979751823644184985563039347841029996709702909482009768199789284327066486941511749115959325559055010889822102624118749536031077205263258833856456363232231632868097327353086562883692491729623855402284737362726951038444634407673579479225612297785364948433611530704872781787790523873013188788647058286583609491538116434081101899198946522690668661640376885005027747399643428011603127819797103501919528734512170117189176207975136490038405897971354203212273054327441600532494290929442266716829739126604349664359572868415549510510223424104342169315261506248768390525164616311093947877586959127046081400130607879908629986362802875765114975285935705654092656610795845914586367682412554064398764770279225831560696345531603565003085613730246191110970331417689286773537142682376494111306877008676928560943342063882106646525234740969753599120088842587784903356115637870060225746433942793286486095205277296050811537814328568289590990010857227293661161347131018461972694824223142444975776822550449624994508184940838680372879526702873059050768278140868085445187890039201578313073961400790739696376810516888492746739112303985430997291970885927496850220891016926450565502729062313342242976522427808086067707731517509427226128849562246337066922495916101256490360395737292881241301104891016371326176619819885545183786464028539366574890879817643499672835797240958369167452778674310649829511511447142399957477517126185921029915712020069986855155029944924132223604212747413808650265666240460684506089136301469661083358915521344672945460217092810151529584468867349021275228347360517888009779779033050953834974538395655565533074457362797489372536519223401285207798854704093788108302466485510564068301937285961174642568024238745306237363197947370576612448703876986031866240975162517303624110788151491871127874794766570076537770032528551927631505078564490855162329560343746572825112735482984090082583986408860877900062903160686915106960089995808429121454303752776477544355692605208477921471890810435532231770492473986248675695038246588625125680042505197098901442685368688439602945022357654429692075171588202693940282132801344536362488286532356235634778501129558063481090530640972243482814882796248932973306708034642916887972957026216890778064822149474526450831546335681118204084426365115098185576305297052477602289217211869801945579721978549642560112657550104115720757481348096293107322131794727177926155790244279570388817778073648277450312902484882885058781744855805892730057229616377061566494568013904228626237715833759691553815699399220973480953976398453969713607521653109514261062695735361067871983127156599857782146830672921674018280428143008252297121822371816700038473401673001030213753391145353517539913249915004143200686360474726750077417071764172370867081919970155079497391934424028248476780638381900994305050187281007483509085886747822165004338237723671216923874537644325463582230491537411080819343888523012756285358852806056811591442053834262851942621595880548049592869705997351695756630006879612126008316618729761738974141127127760780615487192896881918249176898011340630925184917225488125339358573373638143712558900878914304123206224082922000834284771514601496548738338514295385280279529310931657959096886396556815144032659048555287597595978577114587612838074311562748837592256473926442552162394972717548140536051832569670769691496713812446032720790507587499354125907368590102644627685699532272291679694065906461738086519381611872921629379618166003136831283535099778490497649825328107213057546927925612407484214274416940257812794861239261667779134984592349041925690742224695539370862304079782061671889554399796854081955987506480705215132667427466315412781361612293188842589408090065740733673065612887952892821328388396675027641095095317994284397896771369867890255015871394500695560247674142431225300684951326526800793560065067241150046025930923808552983828914927771841805123889951867102860087329453724751616593013441902459903707809773873385376967191141136002732416429113771895373548232346995909418993862669219362418406197879177499311070771456021097352399319608674589604151126589259827316882841811629114353589001848955552144879698016418081016535245346580223502306886274140641262306099809998069027746238200235376664631960500141975078089246736263872770650917434460765204882907914292460008920266912368755250281097882422378949472269297350751256862638400862413977442599382849247245296908483994186583556014424487404237625900913080011155226550063541096859350795531804407225025348147500128167360638787498429074794099246589748411758156285229477411726604696703109293792268507162777671427958699984896100743143440514668180212204822672342494958571118786909609120361334813135626684638521550664867793870728911824979000221110829713218931575218686610115755249229119167388051044113212050973339907355495474338629703142060294194853498584335832652324479430339203727650237662265076333249173163493811597391390375415722618293056094212261579278794036239655118393524964992751329059520136081564355747112348724036867033422168368676467892213534123982118632303409922530214198795177197666703392088835813139013552437436721295163290961710391490863389021773163361768499989664016076781859888051558310302087285016100222159024258210455363244314086614096116800764966082443446148910505649276108393043335450918120240396295992177127489107522389685788347620026686262430438347561070500695611040719504548179140508789954375475201809250204682955942359785100488528028603027007919297180853761550459857162608795883429078133000569251379906555277855374947672257883074815901034552346399918749456186280835716369570586802845201385538891348050123411091272244632661976961659571958643965738363266151322306252369116714962808376161993309511922562213013849415945299067041036951565900172746581467047061892915104562477500507700725087230122914714152248455737015569231337018924933434752469787834776557537578951144539625994916223648999262053284069173030840859640120424946445984650407357216985828687245767401745458322485181841389109112726550977901731777999538504818922235586808100688188466844781522895493542217405175065113735809458097354747901763099649679151904032800710069904283016402315543909724048169175961760887095664423030383139816636324830467696110635980032573352381952687246646058227775165102635152414153833593078229201583954007111979402093437088176385809106793046443281416576018514326214186239223092458365897978982202272440765501726416477825748795968384713772010345337219862547191782485403422604326195949874527717149972131091229973998568510285059707524060097559492415696660076135951326914043118719374860849063627892752299652127404908150337199123130904253214537466604890026243848138270787040692269633024852895753688770319625183492716969571475291834662766266557796857815793775481323496302462466217425760635832145119271334661405885234557894902017465988608751078033525906269770375582158304570556203764625809304978434647496211936438711196295234506821522631059350577247183088837889414858561716181785227852975757814113174378297150416191830194900917315390027087769060300212163779182171789328986689185878012015404810170489545997878687190618679551745326914164197450976420895793505228240963825315433137883264413100670898144123855033748959195202631492911293586400467897629761479744078985365181427217481172003364446108486781527738324598542574854685457441653740706144220429094940886352950047823514602944791325625293678133357002525520582428061886091353318745864038646716170626745303140134162313093523899820301060837194493093111550587387975769602673988711535270091809295157482409537185010510445471903180842330040231176526664622745331647506655169304044741459629435843199712879832153642665402173481752875729919538695290981172836526531148961488734366851558957379987896808080663441329709032397331523562861502849449898777600234350006260900119275420759798145970686476292863870968994275961399707537981998411513349552976117934651302486200535869008669823648584754980488359609494763415054292749990517649374850981055050654064283445386157359681987408649673952674925519304054559418587251907253564191438536389855477083680910239287829770000050447569193756549246232266242874275891799518258344468802100201358706288938605695753980220877542934709881832690191183349839102652010870586032693448391420874698721653910044395695962740359322536124045580469031644114760437260587484584731704450986437695661831873387520827777188143269377135931854897358934231222323172581303953724260059970041245213788015161429573086521702945992868041436847036657375034716325453394602385299446381332523262532829801785441547481561752750578987296758229079319554287688548990564081121525120954364490780059149644015757689589963681302990155634572546164610181063465408852545894145735125557924558716007257791300042946578679114082830334938549313526122254759627694842449727674797169175539510374068511459784515085997761037134835448596167875733592970604638969812239605541221876243900951953846608884132122947784698754175988236805856503838508802509296403848915861420339574653047073489829548336235032794792502208136789559348564194884441206527650236948051129247907464372912311714213538973650574725706784019102062181204310533330676385886275754641468849848964868792785080645807998764334240376078379857884795882670852930906243571643726813961327152015661088428786886387213946480138317669118187290208891629394646553334208582348158635214270305433304827278632279915412061576413507401874915293876090565734062351974547108918293156276643028955270415262341169597958370033254996852696710285119846976355342496306175718862309840340891872680176829119163498204166238703759532203298931854942017799770096152549394820686630601678078398106879558109363887144779182393452832574594698424536731009699093899575083340574352366066951619348172139186110473755460385653453247724151041820214295359744924699088751564979875631487370271236174860379548002725771520500927240523661688668085646102099278887587091647919651418499251203372384299477374784945699053124120323887090207607998486285671822211860421768503728791730161760192979415048198165925966741559726316355958955198175055311856261314222588041692787080844059031548602090411186903147145901688139736350457844092164779561294616733340289009982201817977225078667903213064140468192414328892318668052381437837731161853311609523970802465176824908451469192355994458196441832085053731119128890265161207209355621614527372085066650161087573085710075069996762744230654158534343189402750860249270519907302551073685772965668916522616691297729976095085778459989178895745617262791913137863835263420304395232590428372448428931136457513557871642379391094023918916730686071577233890900394208130437129494630722828735372225098531037943802636379148370565940875066489072140879320620010358412994165068819019971345097481936773999267119844406279954475713433474257824475615872605500864567566197801913463540853532256704125531764969049440467814639047609638278307517658122025074002907055606564943483094542563002305843620003911337483681553074090578338931293399621561717852038223568067699978465594598357468946633276093232095536466849295460170167424499537986188132355433076255711547559316608456514002024733941327282723469032590426014375571191942854732254480004074935141472168488752635716386577838677730134496742323077537622357668179087592250163320174266056779235770567269024522433778300504843359754824254688437445750497443317652449980515626709233030834083145950935901856092435774606674635668801735764057949529776441720293740541013609943975791468019718852063702004282908217927044903550838449307704614217547704924972064786972024467724114642759781381723879527691271514857892268592854428372048494844589860661351224852047027067837730629241678681767369014123836483560513171085998802558191704286976140358646855121014423533112875589212780101508194997255211161763536514663339296100669145004440584096638310350229244973831266486145440834205123582470941024492888022399618861033694288629887066570486835456226342493506498591525725024104260256246691736882799547624265338488339093841136512865591948998274689667555746800585520775088630889400670006111056603677294211544278978191360331435048019555816431633617713439058152227560805066881369868184851047585188609662675595904012100149394378649419586979538776838371014404765596049174675341538395542448372920504711990281243869868349557840215989842839562423615152307440876435263077254358281957033057425893602476471556827708392728057517867685701372084105394079195319124218379847034698038613757397698704509750814310242893121961645537891309329256771688841243134579132803641107924731850692869503552731412578212161402799348842958386859274631918037089101214213317457570992246062740971532764875955095606628764209809194711880486069345929764933318187290315522361539837185375701941481304604826699161889350512126008960291527765108085935020263701291498786831727428675626223377983750309850085703736837810796272184998698070455326207729600677773068083874283716811666505657254944131031740007472982005424271082119920264001824841049801994259781336131194437266551444615670393582336454711436273987850936444431747363536561690224342054289544168103566056916074000208740997568472260616013744542064236557704133556043911232739371759475808162637896981907672439575972093403014149447461103763858677020088134755704868618392376397407717689449186252325953143591759843962541044681395959867915164678609371648031821925823773704070301505414234356588529962300459597786921504458709116617055394482487624605467991052088695666171639489358064567537984013349331871369849386641356471121601021488572890860903050401098228418580966608415666095427632608073184464169921265759648885305359950672773687141673310755121691788153342777812373080917216434386051175679334453777455669643967579765049858568942166840137968826704807322273638638226548016818011223280231536296807031368213333291153383655775997146921590533827694933874734851229205782871391941093320224493502328532216124908828780242889638865119115421312103514906489353775641621510075694316592870039236800566698507062647278341690766809271621938222682646694426884555723043498053268531256494290979465516126472306511621820829083975821877280741849743802001927012620176852620588157787529401360616702591259600528785323993710042980662251484885386601167301811028724628419148112487914234670835400087943952893351850735585448381473845156673438247702033178598295188421923699501701447465731009536072469220820217292068323668338949321772823033673068612158806537095923960267895761705949647534616136348425470686849529246753901206786586770672902962392616060929989285663467675403213107461561067530038488642294959250501279470269922393568987959555232808537584236542765945286391470839283746124515471180282437035115119016710877548867456145625697453363150726560798962801727204333592944480471542571169091584055821336983159757782482687649120665443048240222090456517859731620818097642255436741625639032835679395919803328459043142397736762487879496155569813999786791243395163948509394333130404572512427732275062955438859780728065762208187896490157075817282147191639243232732405175003742040684836120463565856216640771447094612861388585509838027224588456874417809221282594536894140892671334696926792025329303926251729066110511324088484064688200688555209173368590632319323698638137417438209110046667753568521602217410603372693050788382084408883897143896653656688553638906200866713249642828340731711871753744106966512987001012089297055664967008288595457322572215451623452091407929226262822370896783924778081630520698037520891861196739443888394919543922625366659347763271333200043009372295277059121662918917915465933822629181637545874820388360913788155591431071236002499979344168078999098112077849724588942464418777040687498647283705020477849458978637866689554897426440191425538962600308149437972111463228235417455304341554923783541617159216149161238548254176881687330875789595479848356387977084531739601151559319778786154574349282522182345255759248745827881098138344969575716710728022789155947605259465112820568035213736899484170545451833959277952963226738252963998650156893721707539891369907857224284859206793545203574454233754410402156312358351222157854055295372602908108001249664217210967650772577334946023832747584303776616513021657064553188171231651564590190280279818906798844032201975932162429606114946157308163054457184608052104556338983224973765568172020185705254526797080330360299982608336619623822743312230943463754606196874481730505001696836442429383139214390944751967618294052182103044182096930918896131071147267968966827025027862660445540545801656257949881518199158167494711709738989000596922937629841627013083352981076047524970682670244718624823689167556861264432703353244811975696203967011059585294956591889018615267125891263459927780587486133764606515988379384028739593649691751608724750004079221820514712127386828265630499401433754360399879402308088361128360145143304294429859440925109177952572135608639850287774741145136313218371790099560269370289724052010714824181872615570491771558630030078852340498872934099925348770644339552921861595735460552324934308098926619074455512540265266410245716528405554809369652188356378303703062266004394381476799214220072864027099587807994030694514648084480828130446261145281468443716154641040117226308481976220091883355396440613798316787924742959827161886991472766523322558795051739620933335208897676740673708438691592026464965244139619263009822229635544827574942198420481786137354591724072128809998840670790217907870619076306492510545863933418502754396147821172529756775746188536536930173034238303563715011682360658282640741314521439587912546276078748669525604448014851266017968718584471959219993574429967292744931655087948604497130032577410050639208705168049781478612868710262569434987440340787290920194052967421351183808233060135690402028387590667758534334337875308094225050999575414076193515279972606175372299377404934567891261287092317372589346031346825093440627825523308547757807793341817564868201429727037604139013632140412670195703582788795101832746285888324903596070289224537172900690648416529345575726581464939667204425623572993730558594241262065208603542959122341429614698970017436908440805276314086578638647798680475960514387535375706300584008145171088044760728188894693802202826291718731220270287188070167279694124972959775655857190587045147910335363688381377087321169860833525779804318496149237805512907807628742153371020771246943537791953871534412043639949484723366859504768204902886742988770002434017078673740331952694893543286764976419571103125548052324641166668090175116761185030784387944117620472791404231662447051392192265451508927522286889986309359072624704038770449490982914365864898105452043869247023521322451480934795132684357935237735503218285014326554107765922381389329611008071223524458528464811153573108604818561236191889898680243129103856942926987830914762616443249909280670373486835642808779540951625623419701481560440386710450460050186155031724752336914600206371893427103108326794958919398623951838386598286459040037877869892974426319152386651114575933106052166728835126484598787503366212070744185206084028799035359513204033308265867202077672228901780421224459392917619897923964920513408658830213667333056156392256433575584251936669571581788280529918433196680224444104846898574750481895546386869533881526660108795923242280704130409883262898428746022312135186771996288892450526759483061069776958234738772441660401196301587610280854133609558634837826659847976012939486161867339984086326558625135727769182533498239558442266460701904033003662392007344184929009646614163571867973446374110760805561022438257850554047852488367356554075006791365939642058608371707648715716274536328373436132783689932907744887039307355349338673537167610393058022298283214390892517237420278529680860239207362495452425737593286974315134186807293861536371044287558212402185365110096889160817246389040282937263268450567078965939455984741200673231973241205346568897736261943674548508398467113514870034936346206133567868183421742394353036693118170337571811880983077768725646809942655920495604505098273776533948556756791609590575865159858665552719679651318024120010911675141635190492262586923375082971998327281023265489575768153830195071117085811460233613574038340447920889678297395772606174758680299849966225343103992088818411380493592019436024048356196512123888831015943503059679956058448359575701956307048594037764742861697314111741114161794451469712959379881757025417207630520527039413313412048488703755906340509018074327308345268288653749290552809963796467823727949746427174660361542035855702934191547163323622103180560020560472543138095835998933946374048245387153315891406924226091315054529237114838853050772701232208457210559666784840106434580899837540951090525221734351982576658164214169273721536530283979359810985015806866876191676525626460176998501787458410070594823855455447555548976287824993423602535100388830814068636281426019678934166417032034357771438310665437552459828848375138908235616377522733490357038793041359265078622401342514071632411917914307466897433593317918566368834086180812585560912644741661793171249264789235534173257807423463793920197675070544338097385206637536351904281219225617872089238003621860583069791137169632739535612107980574389098934380667727284134690538775987764352488852921950945333230128583161512448035350634151103010325237485780403718386794153722602812104293494204754531492058306644310187417375722884957204061516485541647869755146534103452868764496530792031550472393369065708835157037622785402701712153880614270827389332666974102270126216161263608815399145972680965802365266584758612013688230932754348560353095181155955916235126651414556931666448492760296928208420955381122901183986929315701952525660965787602076294410531725482295148177336515223662711227116036036072964558026286554314976492191366940936415429635173925444429752652812419058795820138960852252325978521336406121320039187876430402332280489982550085559275804742204850337804997094925693801251481496655608992835388684209041769034368397136617776972715532825580936307759358588044342488841587592262508198381036011821167445599323952262172347414462898427694137676118126212173218519483261831107987743971608106108836928481190536945025057278399354404070960073417707513815636610015056623109376700561418949466414281880399452282591872270582205448610549924512931200573660118398984277582130303172339004767110728792356818934449430282887261521001655519004544204875259957575774813972297953343525985754631561979926201700223972011234233431798381409443230195318881834403524915384091022042115754315756523329630452399792259481563952209720155748077479948664650274418583360567537268040029963240230023230203899882428644048818756905641815384173688411735558845029317135525862578144574396979670364950308213510741482520462071910266353222621700478591397245591703685984359866745617250636348231920586370385654081554399077866848085149156446671049196351863071808693969637019550548780845482988544361513339404138883631240089218909130292057103839845794976934702270620016894802932013737235423620003353096598077486732454183140698258811037305545721868662967303072784751871700502674509031852144644582366304564619222710325905719042478029721720419215524284495467837778967045847049860248606699523345299540627367402466664083934637980705517168355973885225718092070514568214568934659822170043013674433123502507225365739079117965319264761584854568777822228775235130059189442308218139143551833714459675518490457534960350354749493892908440397635364285844800573268279946639584885288216214380828918373909726560371202388850108624294839337792950246666250949261143060193884788429834368345950563826017604391437738921064637582128038732011290688197834161232382564322255020719051567824645123245830712294663651500200619940226305455795347624252335286973279364473932600115247365346033570657897464023657467026009345080016339372941572102044260538112092061517853761890447083198131834595331765335588756602410849205915674115072263125439457512180516765957492739907544851978752455365415109112273559803361172609300823138265004883624977631705992639447586438348605600888553323599961550737361828608829083075429161578252919187702985661865271865490956230404847909754412450924946511103648620413959436075166631091436640586307348693883247158653617430518940260725492904976745668626305263097352842414551511796327369578346805019920082664496652613568274712242261146769614669516411447988526100833914446815800975862219339984285034682715056270273328926334233827621669210878533408254850940474160542363691086199004837030579459004807543156893231507542523132673920404874362758627957334679143576545235677125842184490817925773144553088913554381528741497618939661028573690071209972757955215040786609432617548334311725795860661080027210363449091262674269843731398836615865209106730069736713479147309578762494111148577186070352639831223690002606695617052350637136567189923424961602842999624625162315006679026079074169547672965290614559486667895575985217025482233320295578409507511066433895258386007447821986655162374525328522640913042038649635024269766428440997510968930190112354724618523297188000230496141620466837984061354073505359963293429345084993848127580680427169288496204742934231872894643565761406670465404890127364452284535046350247159598082705427298953626336649320662722730789377040161930424024319368944760721301553466960400493000917622400155212435045906743712313911541234002447557428816444627519966337601794642755558276555763020048284214451504753704200219886707604685222934167696036894992714077118915986350440238644717762654705232859554187147195510533207945315714062690037970930652397562456954093888065390149696256691991717424307849530276210739202475761023526732158355903428580658856354985539225175258510594215899852258516441846708358374900763189431991565806598793158032836768215294347959259587661556799110370203297052932920609890947148785919389766367872601152971877086396282610365614471065719546181675029213718425150391516153012834297692335365615411441307155750089655654944367105249200665058758222776206054595133904883502664405655974131045751061241036886837826411857618359447373622273868874514927647408220042474452732974210882408353530533775349496633316129851803183973765758625209211179635672507122676083839021785377018808373559498158281925562086429364485809593311344925656117296282384812803444403221830347473361598831583426344403079282160350732306620475320866593400814548575749965661352053318515863603656909591720637329323617076410755733260371533111144554299357020290871367555171312496158714929858800576610395453525413556300882469437119963542722895923381722562926201788882414807705221559267200883851611997285927889978880033556693346798001225973900037672275568385883695960136392987643615183205501004191448391676981487158214709738894586027848807314981861973294322647124080747814392496005661794912135043339578675203665092073275323750565192731197465848058602970722509734286855590381895267782392384865783875429486714058617906213517293650859763476721700819460015713181709519518052709056640713996635074643546739560959760984066572710558293056982258813289051089641783819064910878005680271174024343771777200746070486670159809865156982790720529021681101336959597545138045644078309374168013136856453009748971986020463111238435698703018741925860206630785952882062494091326853769550556781152917017236215500413788088870939526548335010717502551230190953566368152722190080661965386398259677106349472562277767456172693028630370582941008318469876265025370616004802690593178062538015719067247725708227174643679000350334778819874544443121345575695001657969033853105448922359581811024775653388267938679376294001618842739976249077351262085299659976570333733315036935293744387757331090522757701649972472402985609949260162930127674876290573656932745989398961362964836912396241181166140424372309893235171390715287278719270895877351301666652869609093302826801672860327544448402072402875642903613652126126216622286549747122389930501292235793388012568247443736343003398355399011593808873205187031905506492538182576464929433142955286140718377814482689522385649808410142998569571818543721894378063357203339320480520432556476827554523077967868492671229536292151159493441044928549137083540654619437724512869948168658383361219010556316268640233300801156650457136794529702967102439958669084696800370164905667168676343017194795976743257514633305103069749489120405717677009676385865239405791111576454257625564142047528594450630214559199317926735046409387555064278594445236675095921781379742133759215461474308668944109554606233241381495208036572062734830479549448647593593952300123995423988533912936244961253160909960491034067283696967584410304614834129521539368400626755970052843313570043700930407427867721208846506946967408492916813773022707892099429114769646148688648147450598752948472918833143148388230631347020259128696927483098535392176015003316002557106513359663790059895056022614335824420911080801251740915904648162016055729496942307106526090979381171281541024488026378011315947965583952004401152430151886539866733302590165021685170931283594448553805168635209924222607125806498428707273999652506303782593239007100530470191901579212346929216293724974269810601727545977100342464620225350958235176814373087083732123085945374741820962387007110127391886662046021824571857200364185166887201151510628871762741694154750700659999300320696846516577696163426639465752868227136765630974679881002762261634947008376432311595803579638482730506061903545592454127331137857651227518269576827469404448644534998441260473419026883427009920248511776588534554333135678964544476459125668368746444713009978839865561196914599918718523751462028231507096825410651285797218914080075890070565028636295861066370465496814034077766327380169723574857082306468604987556167703937108665415945656321538967681868534219763285047488539870390059721769131522104184555663162805223974438474232501502780776654548022432145831549690393204116662773781255173053339721502367027126239303805166046469946185657626984239678716984096967616099059928779147601910640047817748971788622844682836843313358327505752762585812729849964093361712143586250374627132414459415205637711564566156346759965729308228626001974426787580684788255198977772626918846166096386091124721123494526515203187426441392484320319964030070745316069294801828777990551292815779702229763075918137584762306216315177357151431665204060435631376307034602608866016946564064211154233753392363652380383171296787356282934241806613519830409330197756985703878392850484141512900322477887528674388127211970630071383543813342286059718182805167407092397523952386754130370778751363829567847912015168953478974083345947527454627878931918111903417847704003091941803464972531607413192475030038797364007729207195305782210232039195919279818960771435571501531541955547976799691588743009314952298960837865047032064133391497830807571535597029819235854101220830499023835020255334165047624485020038374262134219048043179435329570521571923513718375570981562468882530707368195244964581633888519883714377181100659656018631949642983052848070909644865862702975916738383709462136357479946065565809563547513582071437914880317932410247853984061199254134789851808250487814906285916761851401812156495216154923889719993099482958025149506594791152403117736372317278221938187504856468767062313053467762386505169500577498238430439867800279305014893856070039276531112665867068818753222229865243441496858554119339298156853785056880620899905610676352728972244655343754797392296221355001501784688769790275293594932415321973308962837859453529009995895446000888548151881814068847195916536432460448397185110881974654332641662408995703416739834594706922879361071330984570552767054778532492402452530670202177578932165475256410519684551346812527614165749965277996125973250607416416380595428929635205199476935196812158840748018200840650649775776237959521073316997337795240153076964055292642124438715063649618221786275555110769660673786480357231824055886759465194703090366039233419701103600237296032076560684316110545553926265435365204691467055045914773162487962273388140005966780634228231855830463259790622795278725208011530184690843412894156382110477412462419603137908109925123244792371781405447500987262808998598530501228538925970202987947568750457033476419063731282114150856948901381742950174739027716264964782648771912191334126022289919425278951983205399853669724232124727257181156038511033113009254968570723338690141992184434322677033058615181869950071796083149981288442177259343903723678131075318589637176163718564032270225505041045803852280451513531001109211915128946210829090571582816921624532815581266227748407648554310830433215523116771235863620596658345506132282101047110205202558951354712988403340001082564869190053658371242199390516010501309271253820816688733502833146294170495849664914610331803420070464935693766588325002594944034650290408376408181637386671015504694105468729334099362724314718072083724423243160207400780674373210390418574456698603779477688381092450073783714342141639696190370573871906752402409118498328255571183254343589817209128490476424396435390697482246924864972804734508482189666060512413105083605865828456587151787515521619607213645630015288325098533645616880120377434363594806299386589398461738520276954484614180321507725974404700229157734322725852524439080882000225803022942759081370125898880344851675823568726384698846334741790717446073346170994351755749256142222324853692696328231540036516123814473431005648915510571695754102150125937583305334672460254509109713077199009439208355963071568338396272943141946648439693233842966308444810510413548291043087109468810605234562928830684720216917725165582561336873335887296979220633263347816575266509534825699518808996393532864192017369386315544885593320219108002156647118132768266298308608107571574407504927999031954319920854896725631583834877418398595370211827903948719987163244354894963098323329922487856219392529267985027315786600327614032856370695217127028325388832448208738887601089842469207938639646850498998436389385503990736600590802964636267448032293132906776069441089362350971270880623349160570039212410181102802164053647342934191165012685958394112854832234869940569485558582758420024351217633852497343943000240150880063293848254088653281467371012281948276193294184066264422904138631897656909359102232028001484928565298561636347582686493645890183078954693589911748757878761084386948195112724059367832467114549295559619667474465680019805640029124762686478591188487588120511128387918551573386457813519581802015370344391290406907740236416120667807707849499732892051846455413420544812719293456494295222946963363653605431103620531153297807487661342736799745506418242561058551357175863287494342731989441082481031770109553942823555192866681852252543200748776902858416227794906253990128038734532207974221446335336297480125657930018190888597826055165539321211951299966380770042936521160811521630824106579786272385138075330655268504303468078873891666344988216571233818096393533121577201629668458910451164120959395575345250999383149003798774677291006537729817985081047679707019683942471373831267110036890080551789149175340115671116825274306922573854054581538828703799404854935496231090885534909366425811509520104663766486649811727227365821635823352141128937306420235513982985802471099014813872345907239198201435010155796830591935289045610265674545022679479316248178838281316228617187978342390575868574270872659092844575055902576405639786033742840543888973714141221639808833897822039133615764644835454335872124517227081060047981730446686830447400268816876753285480348774514222324321817971892738673779241061820487097127110793380626164732741897089163657938052212524161781655625709045184142809248945049418435615839977205562294801146255544136197582802811443040992132987744858164051216997889703628069956314467330372525005753098973448389069143250067884961130172869622969456451797045492304978024632201654000818103651616471637232352683569287754524889437190822594693782889049432462454840721875177959056314465782026571370011477455797804816973334506100314278849255229519584683659300848527145208635259221447644558763942340596769488080485279764643239981151329654819131707423302033527892825699296287063769610225491757145723818312883457122617114893291985860334146995846082270459476931748634903682146163728191339831831487992023853013557539468686032510870001573320578349419438181816835562756684986950350096573608060040686786721800974278735972612278216558139151431415507258464850382534437338000083798757682089736640856036058596500777059410838180864186429993039800335297511058445339493471419931453553191893560641729907424301167846650812921419263662800962725291295620203276329733935864736951763810239523710331265832097197356059363098930610765089073973002880569263310322288722904150971459844065712581633064930101244105808601436132471968353501966362388610446616396397578431717718878299749255085191804117735806936921484067460358043166558800643799967949045315773863803160489823789084011549750702383969812234097727952931180213230665401411003190824397761467161985253376506472404487517504229588473246066853708700960011708619575236619725429207333446376173160377556954354787885000467430384005310364075581111431427698596765158085037036475470526719854683069552043415357454354335527505950717916764620168586171586970810182223173031512792430437669347370361356977510645364236496038760347986389342621399559419490561599681508613325809659280512987393450381751391513567946906176535459019127741751950670033398200450824364828971945532274816435619635500646237451024208960167067627294428031062745419533496170899400880151289074811907561834062885781931529996092753931313606905095902216899989058638663560054289164756105418386875289945956154868636780874166390186455595592937509468819546907450442368600266037147558772462453878881566881582538393318906346140264336453401522170887960488695089214058692948644412857207424422943266927813462655107376785498852360385070106196915674853500093007482596616507551740500249773494522508527077522225049732031646782510500673976146580899902002723768780659104804799827280404266278821523226068166350663450630338841454291621832525206959960241904258212603965109856416174633551940465056143191975613129348707923105723137555441776570261670514684947324941911224885442617890850871194231424143267976663186934446290874043459789435480277995295727484977593709600614981678345378775651255191213324357065999352357289520451712408677824519864053826257193476828240808748992732610740306923461016054541420830953155215537579672269271869448368498515696286585653720827676359482935212529672631977222039314303895309676811886927262546288374103183071871735468478825471355646721545658877305894992138686200235519299417739754071968175259443552498755377143310471635680656490950271080630057743211624058299810625580862180801815528829938221876608947571602243075308603072711909262979732890260221011453554179456861674927024431099470528015299306073618884639477885252529080750426548660471721735031859448143067497284452283454488010024479974407744022587485979711069918892135619329000655275801516497669351746505901187150566923402853299356971988724152668015441939884683857483194793375504946383643424749185640841450816121830765115721420124340759806839911362611848014202602603108120426903381472260850946692487853897476118885280286761220833779812215163646277461521208025383795403371528509139476449229849728343578353340895113366160016118131785830678115904864541189365354119478379523779217780785093361979660339516105277430163133630890874602261224776598233364254116480758015009731904445519105055119678323299327660002750106768688313286820864325925673917568695116732674952346164117570664638673983878721869561120098112170135736059241295198852798534096746475442824165010564864771499501050339317963605784968857389632754653032177322815114078650790312468017645050641311658925682720237096786230381832366457890187921369586397968330437942896072795900707746011142971354710292259859028207751413345313951483908690571571634627204013139915579908732599729987676784654193130853283453952760747029284075178896332319422657894973471909465713503046842571454149622868331341665260596782072577717602347242508964378406591174022563582190974117699372135614288879450215069118815084671643484937029081234302580226890403926275773097726912255307023782400881631953484592385676945189035263876317719998640613388495689488942899920445450972845828323558323495916470394651937684892399325792087485837170094456283399634591477062217547894156129392703810332662417224279682745202164420937805560841502971552708275413930944469115494973635524737671960485423374466209097622203331832933010145322701362773875226994633877512273975722241690078472212031126364691571706887685987722462384440244543574970627235503395136522334816344720296407080568162655220329962156676549720460873879676104722468569643143396217855747539658903751748626395734172773419264524837465879622476154930130499687750416225065910558486632872658878506553072942251046610451058867134267181074063127407484934359682086861108495325896401367997457073898402062051437747496620042351238560270974478259625827412951284091701646641571875542443103726544682828296448485482928034257505754287119983528146244210053606138322291537562292289730615867317054911000220696613071377965976247968317248647176168915089807675465571211200548256726532187121898973718992731738667536166134612466771951124327795675677680913803149376517423730712849208181013414490234381764534760050435379126760446983842506063825674368245102871238128797453276648794719727916119714526848389233131986404951538684515275106143878222170736941615331375183383744328732991513254784935546885340837232148253077160022493027919619999918097193760756449509223794432131619823228482332126915181917329968004250545736658898377265543028373115373588646684519235492562965670481197115067459653336722597377752776252521332200204170154827270538037504695892042739757303740593903606659567422054458348526838443101611195953538142500592288679437449935477069834029892866200904316516034891052569644577755904017687364054464391307121065528505741024470889603262761024767136628033825296725377488383608572808500870143458908627430429323135413072161677040709203338252774744476697140113904147722977607994150956254418328458278207307727327355612708153792064502020121242287453063148718396555202569047286311450951076295024877401286711032131300838867627243500758518840635128048714534674835426287009913558171981792361869213780866156680282206246737630675975210907086207331890763595073200898058900625356705227936589489760001330701254870224669247932424723594366819825284231654524007901256388017315473293394525567156968089627808526273375156923731749638198861047689761698896726772241485057022810531926988685170574674274561805525854882507313896200045536312695313633529137721629297350279858859567239689821458655729961194093520946057131844971037712656611508327660552873482341884734801853955619114832460330835488857985319132887252171770005074794812642713652337519041400515998349119213398636045086073031117820020298577318247462598696633562542252412186489498433046798128692908099137598680365991558525402368618494589163543261804834924405330846867925808449617904324589476174736725173296235535055167601087915895829732568945459865060069506759417035982853753268809909191174818275987484033770331437432827051339595348849283623676057845075413506975617483736122752539886831908870328125789676858527359343129450407798011496436165241094401092848427100912807732608071591282187641988906608939645341791669066290270758513725631145152652172854136999611391377988533729300090044958207678387863401347521991686371178192933285242864896949554498600306103103875691491662601540079399320820976994286454636973510761678875679833994507266696592562722481830266640492665614116758764193062405412921009112630640001977286633292974622415652452932818764702122868770580495206870927613687096644018713690692893561691413121965768617933979348904474802674994402681132299444133588769023466709858880035159310004620345436355071128829929998457237424021504823073592468769575379516728650975795315073358089954121589874386859236789711820339201481856240936771285375291193710946677503091124441439629473062256486524731885311898730267564463089275988921022984265660582533151317021228736082801623500866683898544511404745160466953388241348218745521941626300440957017135665169866555343827498226720544213844951002878060747121392201823554216070496795373801408231209962586766888843188401878727738292600117771701218894818679712760116354667357610768428804638376459838347827912542366855935570892486606410461086606896017690708746957638748340126623878901949268705370093063379595395085734950611422070760896908388336772413350059568272765432183456653260484813385524513135962463583582931534745054081502521320978397746884354268023098519556708693889890805304782493637753768359898498481828663323933806695311200799757851445166803978338894914820490489177783037374982371702816071927482945624054596281575898504127530142345746102616047776857513955283847397389885330469954230671127867346999707769408086423992262981822949561645781299101055865393075230598040788129793767531624646173890987370795519661611378311335411873544667261012424821773225477113124937961497871474072837986411065807758096300604929731235979230693261685314308773264370765328615455135169474643627094598191244515667488169591177432202445256972371405265699354264466830940654625713592160704845849997057473103957463089696336138067964124500223339549877924786946857040361014867241349501332322991596074962196167420319763247780690279530150165435907024024159264760497475374985892291575559791324883372210501080211248123222018418115765154459289554819718635933857844490936397261594985101417912475569975773797176952005504854158958721918124946113713094187129423693269227033122900933385045574282023559235062570799707332952184049746889236218351810373365495305971040608171244365379221319041521420453264121947551533613279672307839282178230615135324397184781945677577034500121353873336821391455918382643352054125453702821286762260138797560722200838642967611251225060565387573316429321669638853554280542243971051751183101506388571750951043051804604465658399739845202038554974894949733335370249256966706654014072256325234071861648156505621307412775495514927822634622790462906720315437753628534327966821466552245583162750817255172470088700508482870068839166881099267576508665370758493602743221927699742208797880868098515442069225792943587024967996849707975926958280581603967212171037918547840643252280622339185009155806879228773539790887364292165401525573690783181484989395453996672833051691061525886716888140083030488911034858891705173272998502087494788414246722694678820370400054418234888400263008796318368256015212326513160284113066720488320387146609531727299793535398868497821645006684545134315690309939226532131832555128078970442185348479889436552621548414492889484859349534634449511402898582427263048887954012739172020859518106182715527894862769685634126948112119761528490994013340057093265707072037232885506514127088417835228529746498131626651316548275272486861674608504752562658956347509109994073876213223513283530984780154572363945944706825627475514589943119043939052599440399631897122661526082561728568063671965764868097978361202453068201128904549456923295710997285763372074122524367300803400345970601181241279465368958087620096989542680462145470151193439455548225333835759937984830049408947020001946146476859442123466758187238231645281236952014443506048237475271578397728470437239391166813846446285216626999815980041563503050781021796336847824312342622643289091523971929597654226562924081907591331645614597520363265883966377559986895721828444240147224061999223450336575274390574187309643066759196224189006887186123774607437729380112491955230152274950280042952761253566122156255717023216679269238166603263559352416117110593331016376234731638157171693755043858205503556184438951865437016348299691833376809049514067975102151571497155968907524540706113202772850417825860550370114888193111746861490406311116078439410060277680188936087164510200321921610990598570481357285112935980277618903110042912048790659350993693262030692247508277787054291270739714859167089302676696783557481930414161074239443987023335574664510613622494088990690286669890215361291870255259465129488235450725223956011683040617924177700039155177450179757365419184284667633180495931499048935773959330571085970357216152149639890108211974299888417706700948970532470595780442288561390471003386283971537026865805785133732704786706705812585289557570735870782638898366825045791696499609807172121774823725804263582796833944218409445706551850326082784928479419281975058901778959631634948174046756522924008926225595070002172078364075196075379512483709292630613867210466541126694019321269819861516878154621714175336807487297840356986391319092647392509364622841551063031153828274601213691860504915452924114330980520208774749113119843253867719795660344316337829606189058843151868788981575036911109461795054706474805760299025535980047700554639580322190162596998859845626391285353501763863721895031845263821780131132587548302088099657700123791907285526205475417944293170518255428846046448699886351064696909904744590937394879890624705081938372795858467325721204961403421888444627231797378162650233431946304650442595173952183574489263890499182636042815450477398533230121392543532751435832039965909500170812497922637600647758461664039793614474481387529685473529323400231506729829042433148109946005568546487794059318436724310600471219312485807383350922199366496587437950109954350369802584352221094640290488847839564043343120563552258598540584473476833431591070612684969309727668975722473244315931609602396083389843821419104582460197692669951577752367307188564536920376633683951736631513229967624470404355322456229278470932819069359004056300974306527840161656555630747258270484205287652663107113896749374550340545368131003167658722295486842472996510263684097820980813395147045295579628170085782582070426964909820931584017646451235428224626813272697652946381071999034471964934005359500313324290747681297902641861840193596102125701209552835237511858946273059088012117312044318887926200483720937353678360897931821109362168033465150403859393173157496768043974707402381799574907072490609757630549665011692672025941723826895211376010797936990459368919839431896866192464801573956432769888243587147906330874221390064327146810040878978594166682654571570406452074413377152528511950711688673254362130522121549533835342581822627594203476812745361312960175952523590918423254201186480745783553220904766136020437806457762313130900694831308337948761354967204920422930147625715362732074260978949089824790698901640662180787014428571489560800026830258493434066451235397989168387018259550085740132727435032540733376279197527541276850196191226012914257505129122703632187356958775907499716590120233400535065452840666158235413074039546104172994993857016178649398922696809955100052072351006296286929073714690104531108776729046718216020388461953048129618899490607593740572177432587743381376364151702925617101771463286433552506208101087058537852162989588967153047788065965126315863642033846407332063568428284238278137493892323188948416848234497404848377584921895096986678688449757185918995416094835644387052752803663909106239627327359304599775329815681590050133575932065068870961759537081055965480768859537424840788908515937295930970560110511466005464791774299632020464759610296760443159081049273038879534041805155017127030587238681780008546401541162809391278020130702314140014115547856652294265766248932396759673509867581290922477826786181102312787273695079181080838586106824044702398914277772940967966924973895760674586946051993888330838703444147367464832600694364729975203966034625522650157944635234437484379416488427528566593751610234954914955802649611898836066835857515359504250525344007561662731680241439174177255638410549769015020812681287715572169896943275554284941090051199720926940431105854779115356681217587774516140975489968783449482546642380551864309237057891492951337429518265942063890701416878676080439456925252036174895339139396020023103138030608248692709092802021642158132929258976990460373626386916920785228655671175051744536813654236647767508129669295721250973520985626288371228411324376634763952726718266004253241365946572300437144380013377816179713125291785192162398015926649973525944148974896141655019604257824305421330069195047674413379470013808378859586056502164201426814137657589208446542002876018709072651535573406228640305730749304773000497985971285419007978806506198218447738943615894420790705859186451310372945594333090025189187147918755700385929972236986720007816716797288930326715680067831361297880119992577379174432335448289783332464847607145280018269546582945056334347279475387747321371599286458659930816638805140270830646681300651527403682658700772154890334562800634207170160282482836834545979841611128983025420164940990678911430850671154030702797978860252823814601303172446906405237703162243374153692896825330034721588897515369195690108738085487459996755195794538293098619479902911176227610873738056892163558101265598655574284677183800512673697131307853592659036966872557793417388790472890367188271621396353218278975344679561103081759583278724684893892711536713363588915354262188082893762762403442010861605715867264600250015777385700103724867907198593069450105185920211960156262879896043325638335282032117532034804719220083962697050899789574164748200133233813106397957461787308655326867548158359644388638178235849141629518434443150645426955708827147664017389464494794292979594480142987578408682698784183214458463465652937303995971520051627737736203621000411999376758494630644439412961467281197537830983630336388185032139469121634693606292676599204187371706567327035635318713033147629514146918636445041638294484662372251623410651703231885451022556911575314540543753586458946054625355572500635803561079469295103576265994035479389032954921050315006853428489175847851427150698509911721496903103458592263045846460664577484138191413549207614920257390188072912335388582095198114427413227204608215008971174856690912271549990030631588713866190972542889000893592116144516079046189300995745241246296076050608656143907252675192014858175395999432681885298606786311530610779459596752954650517456905829906870533374927196967928751251670646398595376770129998417022474211667909151182911357935018087229842855810247581875580776532414532157246368012590595446718921785778788135289853820717952515695647891700462728531493523978304178474362660728155586653497979187639053876095895369844516476905306401584855000019765372492523247084292417082623423219757699595873573140649263829467489755180384677010366160285922211338929739729640021211193323750574306662549417582340604040228683432818798335744565530061712553274036360965459326275777911994483006086288942326877847673102474665047788941569508549855506924798136657108655339559435839913409576303143133852837561785725948339654196543891120950984839406948554931073310019679942844890466694024445573631123317721698456585521227909116968331834765502981295232176958312690953386490340722134475922857970139992125009718121114516616982600354350646984909203858189313581605718584516379407591906466350737930817562178175470047063697745527491654585672208987416313510101631238847280527088487703330835447219576171985908613550822752814894169844204094492970916549909299552153431951767750607002599367306075125721364877238159420345176986505469167133051934050056927275844692805449275405860867702675461066212367771965985840421408494577821135314818231404269730083320589581498426996044296155354126558614263100320947836076695540040949094610410701788316638974627968309888982471314849440585539495452270880171517421046927393437196031484774176313492028101102399858981612199269300707794535079134038515907837652609940906987792148108231772644137899653466114196069103975696331462367213618118613382659754023156607445860205237356846311119893142845246253956427683545136550552603708649119638495871404483413888907150170207980489391479089412543037959875960162224765033376364399592333865687294559493014820684748197357946602592804042964542938715762895694419154955385430843331867412473906529314564132185106854610908861061398356141703933418074583736901345009686942244964214927321132957378005049319285364573556209636143391787254560313767400411968748205826497457216913522890137378365468188924792096230328341235555639302165218761337645774827231181344927912654854169281561087455125761170636681121665022702205858803876352509742019896234911741363373474709663086970714957408238112051004752917471551321257949546705268441383673849025116307520207575941559887550487079419704685561174326296838354690290869659745422437062345272399286249548034028744176609121682261212905933388157702250346421535482604245423104360204625811276996487857975899254999047766988106010393278448371939537999900543705210705727948109706945118668167976979530855269521330192686442538401141668962269930596845261519637719212928507443410576520364251611402853541982374769040596833505259111050753978767618015867878110487670838915312472690369058797650663311896009399176404605449331164850370942297460784824866424216138163741554043852439904229150519674242817077450269332026749652829042257973227320099560679748552510534744775101372375950157189947817809862017421823008196895603074409055942337634268381872415069244021656256798790108798986277140870912710878599855047789816645673899190782652064020025395642176151030651361290702685509048377557607851446951981815640002744581330363697492211844132531195491516039616558202889407881549248953562822083055013793382796334949053656606596212814287382981023781765814385117745197466699773258334313662531215508961295444506300047910990522689057324206952648433794345223508572592174979546801224746111603224627972263263921204191763506204425311476917276223371715960369472454899620754124704340644578132644264490805149925703948761081055181905623383619274966797373642509280227860307962519264688841064836707267788068255905723778149176105597038713880729762014957222383956446939559781386301463996157967282355709207118491513645735015327130238707207040974038680769857722200591580273564982272051304179167575601282939347204862443828805616655676079862352651235231417194542520103737852863458310874657308186106812650950929950659897250744219322782531491183755149831376414425906141834328122672273300152173886117567780765230650576518401456536990791580753430381567914283225461039707080120176979454407567699093350922556086409752106182860612059464430221290571752187187107680510797267825872381252104979942134923683961719278358531249967933874656085670542324850204397422994072687431627179390730374683876481104448450717810561826324222348060183424788963845304713616896255164117554947817093317129042339346160717367217347008477476459678225338322607680740908451196269563192870385351987136130952143957859452268877105459977999993643948473470814972644275375595418142134340033680617421546046650331531239071945611089252099406557413238445586284076417469703491162688709840363884238237907155730087798297760076147013446079193425089312478754828602197408518203538908555831877384160767974210491994388737830554369724401830002900577147295080441816580424187816882313394919523059764737449230613184429588582213472838912234506986244836917390143360368178579685759940809817200940076443494053352811385101045567313047448864858744255582486096143291649635361148283049888055691627961759850810005932640784769744151261148865226874981398794373858084137874491958447963582339363479199058843828627298631428511194718557583748741032607722095836479953350690635525324361086029493289131313615370227387553998254285519064363914673579842541573203684611458075135930075943666972318941992596682740330755732159647031960989064986489488925238803455423757806867644507013813714626773621269157385364163046673353410569829955268614326764966014020497175518452969239857933963486792173853416880006427237137630673046766151230147231172239192991143638022712026222497828585091557439542973875141135027772844690275791201692427722783187392950164206511432739616812765152550648775751638950567120737506142853414321290323808675190839497291910067336885382293481804993756032768161909792054697521636783065094842147507144308378791987775896869706464287043897169104706016085933324793718977259970701369688531983306222403915271254932106161640528930878172851259994342495136667828206706489718473232181080687138094135107774319837152168072427865636670372095294211210624592503121765366830153975667835840267951889791304929360973223365402569252930388150513223903862915074863348306372953569114709481544146375542183370925834062797137092891439573132074631185794787466976429485682980264820510052900634078593880873260680707819594378429984704490306921946162476501119899230083177293409724190596403768108133353799729742213323383090840776090020701002010545136720359840554190132867238827857426275440802152146258610696397586082008256046815423084895094275227975611638674961323047230431060195443823804369488196816351127254505365194216754108089768098487978598081153031101924535586573175190820106107401068220316745447376638986227401820433088043479035550238457152237710037043794052000470002925774908001588288546115223236344081421731647120399612924202142669655386650491012429045671013260121116445936763518574637729504058803446389778794475802611210687840771692722941897147213113867065685679351797860825764353376760149230268894821847378683097229127770402713671852897545134312138685559537022077735631029871787241507976254347978721613045215480464349761910563559050629593167112678497139380694417280414190125757059459209478332955004810619934516985630339517095335890371132622720356969150068889171519294802252367369946224261363847937382064781124341483843490069405968317447768843951987087329555728303760669905247786044359594678254270100697097981482069163133884059564298387066318004226576740906358190709056686180786531057899510661042948055181096508005526918580061240417855857638587729720790602705817384432763171222364706953625630030780844863112497429831905082280698725807891225868582743700971155450881331248446313610058035305267427980080527561531089895918152679271678580484091102515588742129074458220374984090269482132591807365835497474598654394510913470723634657973669065135326478106770059756532554620644214443175833729920410691919303848001444354920640149340990419662862720563760068155352477169093097736463064988933447629576883565732968299449480699743849166472314514910830836085769482086108574237574022227215238103788658468966727573708663937823759894826296838352320013424252587323956163795625228631169031948932002722053941085635080057073299289286385911488378917606185988046912630243214260584906366888308243992987734908435050462680997899274552012063303363075886288475739128937188710249765012365887589081428638416840465336602258620253655405289818389476879340335289083886600834711449828938698745115262755428109352382916357535146491476593698825837064586263466469908738863000519722978408628466732982424022126192886607956557715721228919009250792530002963306243935656849267573730811391364137165738926765115320935576090662785646560796981723426409854957644328386654300937258669819990587011717858731109412287995257516044882186757568366645840211249720637190232231777792290175190258245543155051903704995440489779135977496609705286093782348934837471165109676129638365181367257761529597778173002980827994784304836460752239940990175555899285057267883302917733230451109315999692957791336398873116968151960011433448096086363802089368413154568383859624979611752705362263109067281191574823498548862446973457371851580350781099198308722753552752143814110484842389914966055955387269181044417085864161086998812118656459051869901477711212926734059864350697740264564528003417865010965417859057972194437574854039348271437954662809091896134740601468868950372885724153147358651799399615665917784734690398637405054677086084909655448466163716064188434991976607040087384029327676132078788688933363354255102867013673578063581879820725565185972193226137522814478484642534351308244539878480975595650596679528480242441419999781321352150712380248913033270995009664066187974772788621654223174151662504170990746265022970919578643514170810585804106392589971848453091902541785340523880076122670910463450635654665316505243847203083542515463759744416758384875288853777495613283425958323309982837299696413559030791921186843080055579086884861187302368799480535988003265567386347940290099757377676378641352718209125720895573958603145197220487868772488933555548295731740458273164888819753841711107210855022707088422610632457516126303881117230272300361342368531852090827555002559020559454715340279613690827714370750535831145828643547082804831971352975653506234528880223525706110196721461566800013490868090608953427344987540993331493016414285289522629864349458564206144425784252809711988239806467839833291972989776601703526159210727283479071737601958604681080938424914619078226128269696202463916484207399043953173285902692090251445174176950145719821325568880655345682785330877369151132204793217485079014600399046849685934068052373179899269252551780557515836929084761754062241902961539658872727482912697673356379840756480168683110140074378942351913432752233141308941836455164473513063726565809024201527493088021794447698620742664315665367435286242943222593005605348911206560547553218491283319508316105407335964354160416560469057074329829434956358226612182564400362102066531631494793634550769302212085966603595822116338518059244264917341537282326626010538925174003574787664266630857677075368351969798998302512222313971405966700266497452410847444186318343487881747521441662759666272105710809082635962756835331219991683719698974119910969965347972893277194808007373379440569030249082889773396021253341990843610403589868918017503487217380397036140482708172909203204630860403890232998719112267448124788029412398294521197369910850170589424553510123565966980360956758815572000887447128881452056836730573139186482324231351027391852369763698060535519004251927516001836475253471319144719494380417855135968410388854960439206550490108699839036067716052187662461393376267373062273243501678700495945207259043166722614820045575624882056186261662638027947553341002267759324941067745468687981540747182647832804711282557063696616059177917904496323704142193056639822471094926046617879007170345391289137318108669716552783392943410347864066893635373008386270587353416412935616960557578861039852688993019161702753033190770544696613396085959105896864585274120273188586421635400344115330970683304166348181097320807712991800426740906515951587573919998705910084368150330447214804567141354361816874511538480412592286642503113594479980295952901381277528300986642185286118860168299126592923356739254618894884958477015605167964861981140740581830073737046134519462694670030696155611636326703435590655431690227343479201931425282323574481664519012859131050134033830909236178417293166356737139675547770564769643328735809121055613758446987693189758032060647618888953568814370056191323687957844892750340308927012465904150419843024559486605991818200233291780555036210159658521001955747667281372849986964601128077160434634962490186767397280824830093355739936182146588290149053885338112562939211568742638878874449341483749518592051054123925302445647280296234230699040103676456584204452408926260732971590728777710927782149437539670467936495723828936018370023703230586513959969165163359078479255484594496305871549371332818747633964977694800773795624523310867072310129173255229762814186344896286989861621780374386667374540966480651573052255679119731742168722070260483902946657718383125083055479466932175477507253322320671831672614120107572744492096404285199364007490533480449901616953780289558561122179575571167805747659171023133309041129915255412875219793292902134253687598566926645458612197235641513143043171322506028587589376160835076505244520673375060966100650193599901556285041176242908352350771912011646477887044833851388175413458942798442130911721899547849820790356677685167811527242273223877901648077692724002033740024995076105603677331355533106360435194185402483718676450769321999776856049699715139077016959612249361478893726957718677432869498349020579569580687484652872401606387280718736042149306906054183369705166202566702509437539712704960365798277306148181070176218517585059192575858466139684894989264924727146497056801928194307571553771047887085656453417254426897922708662612228142300153363909493711515736997898042229902432786940873868675695431430734664121533438260335288298246280715224274706909841792756262333928957264148245361140685241452140963855110492322211822734623516511563835915775852530494963628371444574459033715641545601104437075721247653026208868632953407783876188241658460395269230673797998099789696549045860952639947971216665718163535551201859538436077558033556023635081065007200100667129366812865366457424757227365244876047512687956397642918557588954840116774864671404642198284990882776185714183087683042695579755179920810841998279038738116768782106368909744256504847513590402421477895136064170894338702638044737779217734319355917041725036249276087710686843378392873639591633266909018200861526978495059830649655558692940564732517186869659949379937819686642935917412903042812311885018029576817093841338256984648884410375032204573325480611480861304229510263596534031907849390298026288659398345485710467461852370623682241848207063320497482835582177776740942360758600475887993076371790000928092823665112876905475268415985586050939457015607125074753654832827004651078367206533541895438245479735457940987739182071951056749529832824793872468775377469853626868822283547425612290364501046139017323983771141604518521517835835483041705925001668834444453807831200325702516756927168197615700087074396138420887198935252425592449437309286541388773838201129596371861843180858909923213015104476949498652150782713839740104978971785521906244594892259157575852534223378097892334249419831631200177709661724545220837573148447249269568051601627316987529027995648970210141394686334124839976332932517574339143328818680312174198290406822158411678754701733783407701378484147637590865204793350537951218775649853000403511112086247748913229174877835044658997032142737193186936847356039808807232385543443497859043583494820961131883108215130300827421772843582621554347336540972745448027197515162911573881235781537290060020423783567580751422135770531661141523635109480718576089774835471025932714560444847265707220224179332201291807771240555256163005263321246647794865630267316787469611815423478930882889580476556592290152874849005165521562586382423791709758373697636667263637372938690238006579582733933586355479090007895872775890842200022589980207490034991479548581521099227326298744157206899170731026626343439446758355608116270817396119337684426581566353043530265672881263722057601879254042970148898038209799600456945454777492392505977494573241215892883513129183496150531042593813271949451138285833633189829559505603098512457842930621790581662603108648415558455308140186168092994974973814004232547987323232652988991997003561749495414492649427466523842345750777898201789480999938409877657080203998147470174632912368613120636744605920253947690592672788302121342327644234135395149741595073548326989860874261319041425815983195559832274065070503579426409118737611511101350267998687227389861856964456771896708077918620701565983490209791090123934994765694312253847416004422007276705141795598867978973365047975662703674933054187603915542822718479912232893244967315104723478372398876217087222485423832639327412139967687497574211198250461983602929193645028312841609408147732709738094417275426896246462519477857271164026586806852454546073363217050691886906451465218582264199574438503299499366704867117758264260430914239161898991227013910164556347862900560308483461526740760409819506300092213952231637685407691187991120925186225919276463579109582859372598445694255767095356282310109080710251288343604835083665435334806863974433143740163465202781577005598301825170596449326762872823805258998423852593251724205955354051821248621164271114440043854924290282556325565327102224875428234929556980829417641857033236908276179646770586582088579007958990513457125652014111146977525770535417533894680783848943222537630087694339880309345577676273190001138713711836337201956838210596773160298195853800530120798497744274452718812638548305539307082819749586692851048001041716025932562274622445020811611182181994437397773268781579805726346921904713407558072583593133561641202769967937702739898857721146623709618186925164742401498852036143555647042713466025209071604153587019084659556152422705947717159436731542777864376782059444259212191269362256353049010750585080617968049137508382278124473262970937413861885658415412223780983248850712138463388143029913758637567668456241938534123641516959861768230384080558408567856795610099295244300092968051012541879587930192155531994551063549332933725595870821017570311431402342647938912005283234664342407692505023340210790386463241823403463179699966236861580966666409602669285734530408244925389704460528998191097746918199308084627493307363772240471425733893599463079457988267099180244654019574784103965365033337997935282923138607249317616459489604790459997626069865604213400156314253711431163113933952070659095473615838247505549649074735302831797605853316854595014619843996836603553268408556158254781341331058763547504576054620831277982389688514347186705771925816221546741308493113244628873064651554469228520767891762235784300953406215177938871885894546116046852182841039468225728165086658832113087559673233977516040827071802161919672850945330987156219313369166566030079201425840449106147652326579500250369883045182817723708854666933156573550344579241182354569359602273381311843278975828591381254475752739561122675512893820212175845011947406972455502195050904468025422648771811672557737877636318110072794700505484806245983869961291985004941511806575650328231161159536300573783380686539205917761498661743450115590331834761433827118805840079404382947940685610579980335131045104689138137146927398426414186407148850081550577159418069216728356519705463830470802884382600403718168417450233016328428673920185427343758237167578982220437604903866276550528466318292117771053659905976055339329953961088513228381414811806476828934294801396786940648670984519352416419135471388200018639883619044078111091898523466045292230002146689257100754546635231310495509451057603326798502374891713942542537717647747377241305167336082507299627867910974727760487607691064262015826851386016087205606305356581464519027029572460973603394728734675620809499586568644515092819739393357938555220541185378998185742864789914299575804019475461541021732329998032410776831884667473850256575644822861332165129970701552937636497490996481800015540185722108461403132396036444722323814479477649376081093497917563495852441566495976840263865276822859660848926105030928171463327172391443591900681004018130188878461541042699826538461530910058324620680784200253094220203910533880236641626043440513254336385497944504712692799597366532460157903828178386292596495910784502028884104096235975512850945394105948954158863127291599096479204920816766798173594492700735271931547784389640954775183630037590297259883311561949346141168521584199166722456280028008081007857668320931465533643537074462329983171520212121995595713230913943055222934050466160016420207457047140307088014709114266950568442174321162955287649281177669488632552986263892214386286650391831669162345710650413553145207014698892531944545555691477417794762285632989042563781280181333468629000463194226113669592913418495384448749036887101964576118375055113528198366263690870071811290881067841623529179521231792467613164400385819607714667744806955141363326248386690392600939760049106432371619271783409282182290255896309818299571474780104206363475614160153718074030094285477108501390618388265403846427372675831322643496152457714566106034654158621059842304253148039234370472802742586922561026385474628357292292899138973202688478754321803284623404510977071645378011831303693385787486991474551387354532475855513365460078764523485558388454284463311741512333737493397705724171404616688490817238766374816315107700662528347782885763416223409735630654884944080570112144184220442311242507069364959640598294176642307383227285588004194374568097887447071294726394682954525139179372777523558670964759599942283369609218611609221291348408330636399406867742850045884246251073249290083994732676440868557822936395694580323706610774215760041896409208987385715326076082237854053925767276333373085190512587509111338199390369464396724640641121555723227897683545632229947249251351917958491738023796532420538248595359697645775975790769171015232619664821722643185808158335546906963357396397879770734201819912065100775012454397261575519013542689882616914107579451272569907055052714587050869697863229021505368607638837051142309686229993348991181987638056283380464871856573053702934095056209061740190888650247317742673657071755139411379412220197462117853476990454695190325089947492871765632499316736904429116324974057851309996142630133163306777508300329213330312280306093855343695449396937991687846239867473825481138519474354248626478935016473763339065523066034014081104177141949982608324108252312760749315482884467567619673731852992970540736280453105385222123253795699831552772021907116518789163707192564091779219813834429551461712304279302005761532144092016363991569666742582625263843662594249916803355780232911428397293919108273104919792183261867031004035077252183035784874831755675843622902406542950117216959822295191840725610396799208344899638335381537879130578352199924014359557984345139890603755953889639856737329034498062028828168630903406675910477171837244042335165470411929103925513321491889097789254161108097925000928245586862123086738353409003335823234162524879042834035023043949086113693570178453375398455563611061846311285325963527832494649730850158722574483536638411159421875496510608409325047074353101950104624286229691053622950096144270809543668252835390457837100192436629935960650654435117788890942935151649916364094943872442791710286996321918227522250546322898231030898160168879076457420336158446347098553366446463790971423295174937705003317323215152965174735456841243125653969176076342557794007743310105739754599360062250994903511106660053980707753598809708050988261950237167653628762328984765417164798254623370743885624114220018465390592660933110723764648776232239112786219942211720693587742646755443528230022656287373457472070631456511950670308153988346711360018242235850683595213053743155955898350818738267692817486192066491446135212504285703526381179609141030373414195400903185487037521745800578711382282651025041290376937637256367841581758432916420259766934903336696644606830651387523560580634382509487615426831584128522364296306148326983455734216436548042066300149840435248881050461959023551286112838723163776619286545333993174624221376330629038926291442354312194241413411051298082579288248555432381116980653835465329294780153252910988029857012754343645537599761980554059326729927377340540561088532707812849397082702625907001267377550258695697765440721522120032927058782840262242195742708352690076580987239777448823495412737430211737738353073579172922140485278828549546737159231850416564579069857077906984252546825553657942763340978353062081183119664173810679012915749170631135513684143354837324535817155446973145537397014901249624425580914792298995798404622442671145562820415768207470775632255661685513487469136701635105455765927046192200405769051586231203613668497137759273461829195664604307210955492598969467220197442420862597252195648034828414707431508843181441954886759359380563223619869606788244761411801840428487273902721364397709142753076516369203292086965977143287276397413377039070758632646209291137294645500129157059684116676448682372350594195236258369048381551110284126447627228663115648859859231476018111038985983643690426182237044026287940391572623913113259136512147299035723056824007206210545282569633637698184117262633849273232899544234724368185242566194920554593963516661644674793791774461488842881904563028025150188902920617534387215568511679026591739023250151866465865117671873386444959122218386159870036460515239317967650517870113451060560489472216024792310706012358969663358770517369197359392264507686141453493678278074710778881792256271649285066417675250802657023801785751174697662216323282596975497248374654259778793503057477413934869295986084168648045292148915368885776660726834413218153620710459417660793086035255485727546274498655632011308429567793468514597047276536189094686831669068072591610321768000471174920004205116988530756741077044275806478607817776508752053927912160880413984770728631659153627025031270846725424236185978639170915430837303514660522904930403223063382480372384733409474359954599040039507079848623108284432895724614998741760052585122250813900551364926385878758260834459113588815172790204959853698435717459036360414593766711562372753144791455611665020786786654890703578460532210879213977997999984977795163069805885545401430741727212130724048504457318484450647476326550660850765598025751328910853183228434565549325612284823721477931208406215196481512668592931156846131231206496816129739126632095127281497889868200444610777394809929379182823193439684784198203656539395276968230475363518346823248222493315669488671270784163516541934165879436069222098669280638499480984244155606779379645918565143372519095704121176291294690543696952812808351012886690838358557824699427247214792054052482204020901845206287423310560216200569026986687224903028257901606926194430180963116257473876703206511033118532859996101553171708210120586468514151229417539560762029263879527658655387060941318201079964560782324727461933110259788054199205061498510629709329165148184892180461862939071302387592614849480895383913687135433125959330604164434015845530086857304997322224583019943033389874289198687750952914677302490333606484305232551280088959467572404585852473159665328905530199251330925422058958414335570136060055524982119716463592380387707009310248283632225200371530950751755655469937990635575202163015684554866860541485912942339651953780743903785781866589495894858921918093745662211442671859463245763539398291392545471223170465317041974262539200689082522243690201073348645125009943795462261838979810926215044644923923537242325118457774546373097005306118489834549396326243305713995046264115435288622811006081664079295141854045282585269165241439637477265702616874842740004031322019911179528356235861810291938130733860467498220243627921308270226113607031666441172636283106018791750956175335130090856937633165901367886255357910329770615577247978564592670019581168416328831657462881008669165328007907876482947487265557593168217054965098490015785408369378730757651671083721886197400496857799477905743359720939172950927301156765200032526399953938976404456378951840197373609429293915540335082709872104861808527943441102212335925502158542057820065758721883849061455048748525279006035031278897341713188993122763591061257505476903629076239856338387745888409956242926189183210881894898914938034021264204912710871251501023828453372935054874292348907810131336560515570767070110090799029028814507376414538442611185754512135108573782670662175545485048877235710194283567357570269577370019311863579526604904107639762960415336765468224051510248550070455375957481451532482776553640535646816882953009240843292917139751622409988178989091585757506193998428648463593752974944099921754120595515529268720550171875450343646734101769090719949534221054798649271609362406747462005129462000488320945668549767978143982700055122996604860082349928087835122407199353568621889753594006553827753541801983312050608344832169489408426393694871618025137116111467368987987043197519034244434065951692151330801768258706623181589895668447799761044017604790538236836283768172900024616778260750850221236844096981097873729945766442525135242081898659733489728498656829659434337997652689215810020500560975980121941826765145881591942967359502742557607560414669426927497081008704589778495594624305400541291998697254586932587932839579253635872781310655909278419105717275083825973384026921438840486334773946737136370888473126404942195826101230701566431809016965420003321262601204613610019192939785928748109684997287048260992823339190645616533898843494706084107378687762030123050897580581262890361100634986075512137045854345207212091763595811924616758609936632981399116201576253722150189937700818152160610788445386023280036666293575512678969682073822483310561633153536968354572133015383634741146156149596806978468877458543410279293597492570764795488481458202683949373146624097991885456948784596569362335647658076478947752617825519033859086967464089634384629628010951842907820727557491350373771623152145515010950682186324361186649954723597028661243334536487438755170179907444572041129295340927014326919011515033619967307364026567040433386952756641935519463641629029359318745933438802152131982938346600918003976080287704637134789120467702202636950708081779984244585768419113627339466754385655236215735080259316382921005046565050973272937653812979674179277013176586217824891786293825105190201129084551479263502929698476153668567884039669469934962098915854965127637988851857364420665697245351652441126245325990347977873436941825141260429398133140244782844844075145070765165661394742203501131610979765677833726317801399170006382927765371812899041893732844341568732665938068857448454315001780760149884823112734348726985960461624801712706460790119664671381755220076365994657282811200155336190077340219076366549583649999253133562088311723936231076513130313210812093740316352865740798001261182719841747135140740122851119962625979465943369092831113757929556267621712242297158688284730826095864870203535915577378436956578719460957795387626957158155960631781616156304401755951385310420626018538600618060855650303272446133269280757770093082985453391565752174815478179952490343135249008251889372823099094776533528833149436428228485481506854563937986311250604005397139793473645526860466925209498815384535889353890576770988416644086027307341664718818499438182364751259286651987145975668150367025025540290462352515634080153336021652355131260363333009455795677312096605981672296394936017947766291542541621062995483123913872322161749067832391937257207334522237335296199884578756503343244994671660881593572161721788655670213795695707258432855788447238579811908355180500154729001409912901933266280009417296139541699524562239155981384896139257778937764387636002475927959637544494079575459282839259398142015010067028536577496807529927871342133329361894393323201031589165660385488071337260944267921438717673976914685904798766277941238532473241536510099129286164145385144731816024323591874032719772852173410099246086160370295393257399771059688795338483701803094156721251977740283612663377549440130414034834972042231355230274439148958146891541951553527062345158820467128585810811468562834936682700189874970986267720169860349368957475166725061621846960680526182335168751675088691169795802452496322387981174802088141999897808410615089570661732827613150457503657759658109563302957404869532496968034884242234840896604620932312384265248786137648825407970876556036567106172232228658212099270132979787110366970809492816326757119112320507066126252686609984418798249362000336361411248110982977497625310831262806563320073956871320018010071734583442272770322032721938016536741860618789982697992197218690028652334698505772770388845227895866093120322186305350442968334625689078746234026784056511028531918069036852567891071629502395089386428973472992956743862612148885522304110296644799697210514537982699194107131287126532556501169182928306415683239043693794809839665439473021848441516758880854061407175671998440202997524815524052921943480790624155221105016805034126970799382021293485850464742169818171426605771506645200951644255286118652763104690466334579454559454370367765411960504384088281848287365686198096834672691903043146700474616834179962979246948369972918253593709960907551516337939708628394139900530861488865075872217076759219722310034788742955960445627018377230936616538726791151066301911657240305561283412462414181438555960601045982131641136149275358354755411263700874006817391952714805089275352218184383040806295026077913427255809355501547040179089149056939116681188789987663721588195884437828664627342853247568683688579802219021421943994843911576579264754421560114412106821942986091382991748324753305640042926327105418430419225523661640777612740940613622608228512203748912414585272300637941857437291601977667613424913361683478576607451018083937209194074991791353507848779555739527436470904116234919552772878524898380886692349055976748463275166751038335367541133541885287148152524329676879589533623301767179703186239696371255824883282256434307217403619195473269120356272344144136023174629673126848525792969381887193575308715625673886163844021618410945843283168656870248589264162846884231245686799698814644773503861937974051230236151701584730951337487516008698217480561179677151082585562059052810197618881795312054651249051928392590880578744856236608320650729348722475177224619066782941044702417315428869507265591580216182205795767397961663921864797629309716952298369099956251228629331682172051108458971259636065151263778818371145948606875273705982319462176794086114438017438406753263886208413186567117786874484453451864701400523970274630036995590820312103184495810923642305427923786124056897296176112501543185588245378689632895406409530829681705117648809618933453315757503483549117859968263589034617822647293737322126246608883178163944859904716723452329575097015039359530209608832435785593710841238051337552538657545453129100232312027279728084465653101155955883633971871750257212187003213311069555064969415538758795176352881270171891495957732717314217731545360100988618069414547053880960765640406695129529738853046027750492147995343680234407004711670600565909471255752550013218237257176828041485092713862379107935827622264573507879253511358628124621339340928554972738379301086269322093546933531846568108133211532087977085703092106222620518918813560208221553715727828943590154317478663537321531689118551525325056664220911624188348629576753312022449538816429254221118320204572270711234802043469180176848120637497104087716072173490535038285275786441234894541362436039357700538535530846347003138823841501809896756266406508087752537758653812630362737447508734858370082429632070304273263557526036189928052804535050166513983070215282830580000161523186157734161531401240487230181062210358989404804640573437438224766984098843111589660607008669810838753628963725688997611213041929616192510179211934260076540462256180158379339633649079156483829677783332747708618114292087042115920921068653053694458467481651058799610625790748291234165405944990288025603997566582916166830691975640800967142267122305428246530041738317744854607352621988014132198960630563928785523168125123951259664808147629298788093361337130354631277261457283923855252111352566907719473451997486986200655084705340700751495287745394185848597239510891289201958678129835359135229544755032310964922863619752919488962991020434707390157337051820591057813385057120676498979221356226164449695885076671160992817353587183649402100532972976256895761760979349796868347697647559551631453383762979761735099430236857161324066586582427332893108261119943810384725296120273488432413711626116020028244355636617887232791506272341957511363509491475960786148717480712501935122063289939647018844962409450379194667951874101068576485929748159920149457105704389288429529803825114618747410689806176586340311097736185274828725230773022908133365550078889282337974876128123022736452496430342121959674822567731503433378269002254691579751524613407044606923519996888302685244400127222269407757842692436305047382319964277737727999337106906733353031535182859573094615014075358651712420006950912615128864399723105300837871813208661643016171284919018392298922583097392158774114515594383944869764337830252347548110692267000395370470522578819839807966048549615992671432763332411675762225593007713077094199146634849233365065893140928926669997620356937819154941383585782565041014469172770547994716448560259369058427785386246685118712184540429010100559966674707733171018175540380021530489839121458073273925973533844635935739405513127678793479125991169995532957180763251337008476122153649641949127615738455988566487657771040062970653890702228540050242307187725421460940293878031090025491364865886605031912118722539024656989555740313308196713043756115009957020523149853169768394096862293198129479355788916513360191068710896451436181877727967452399664333016885899412014751410164210589199298778513085922123147866421845444955607501861884934492710701565758629775271614719328614708569054482457881522306541752453020090271767640332240098712714456320305632341417491667340743794733529264782999635679045044088887315945689836364139025192983563896577826820798842713458823659409507063479903207083018984497564591221647712789298474687114356937957396324618241382871921497949911045141014925628557871371370086600419929253576197976412491992224482254765731686503761075453005972345612098054453738211418155557625782009758243487998777939591071147202639567577398726263509689733713543513544108560609226047293985531031531307053275896855675737225975633801514177505726299894990833611435388553048076023722639177006723012873858740065096878689973279171263944194886634490264482038290485379754797582731123055039031285332328915018419239846567947175961230468833328673153547578561880210922446675193308101593841213075546939710897168586625909703036620021882615086757058490800409842194743024401901416164543467351683167283629207824642266589472883516140127774791466519259899958062883752706706952557686592963457116994311763309330160864234345403764367161996522213532568225677071532866416331086785540294100799922569329306955444188719682025760011407621129175743862515439564882377308654219939767600860982506610910161526366950648415877768538782298147009450243627695153037823877315627441204824741558958054413557821990457334057050605012159355407978297603875429568636481864437490685462467885142602796526837772552838175968341137029794600482326321903130098061686617760828938055685060996832359863232529190751934261715137279940033797183343953437118880157203869409948659001915285199156882769502988658988208419844326365301837693708260651855035070584232073309847614124238003322108462443625191435826342200127525943152197156363051379480076118665925166630233648203517822339924705334427306252280115719516266223781091533449558866451112902535550252211965528978928176042550267845632513147887366568704232047780432243600955137675703970368036832363919621915516146057330682721410089318069632587083747370784408240407095552161130121686745790139742715032493203421133386433172111146064734068908342027127625213811400825000572196758600147356915649936386360908283591898219494251346930466037166085233686965797061463637410090330556957976368779792125005491973741703620300367225929878818187361632059995488758418563965334572408544293689105466831544055037571063928924283306748354320100224512620776573942064266042445977498498717447376468773455132604984986697602625041551279730032009605606065090381494430921995740491395479654425825132506891483341395829413987096593634085959162672232175153359017755170339257743621023259625788112598714411014942173254924359501215255207649646461632859836020267492556390084748158431248089244889773960978088903071586733525568250523447460528640964974593545137195432738651846979153820787522467912577445639866195002211712045035143534635228129316984315372342494143422970244603794912184986290270738203870626185609826847729880612151823678913760997228294756624917114327864766008285865166634595622690786143203624414071344762653955829084679168859639582243764250257534425986088752812608570266686172820796265607005687460738521662904142048767616585490409930499901295320534784457119761271872314945651067729970238728432927789256305547160821817549992077954653546822880922478075152804393868015232198111061057883929646011654049479775347276736096990317772246740343372380112926655497956210867317848160996763644038929877555492229204492033322062605046778642250855402931208028461204094162344371122560793014305674674784536368330500155880761691074563870606309142172420369364928309397906341095303272921120321700574690604452616075718223447831574474274122869740825132397321870365029296229365594967530733699447938053861561242446173652649817987138936824474828939573703748310691081924231268456021154510104446435566356537058797110751477184826852462436373724264677720897843898449325786656998522667174751056364288129906348870213365763910934116489107442609051119452508728720259116737154134141863993250086946950657319907711427856159264444638506572574217213633575219087038768530935828758442609979675485677664536192681243611599224781953009679805399234574758832284629442283976627080384354719309036150370453620046340474634828154403972491891087041577713681416529872429541534169546898408236742738019388984622308137285739638537359630496655245872642502388966061464313534915938193579592571881717987088661447549287480850345370980019469775786807623105046490284217758388808663469849638494107963805054561933595897711612832332567813843647415799566867887028469972473454183253045058172641817571584172060997959501406767187863070206999701273806831578816229741461517664648457727907108356986994596134928229658261866532911075517450273630965974452862437287201724895109103870260031873921658682474739080807814317568833255726609162078380871179201963142368100769378700411269353011411647880690408908452012363699945855375022404973448687711286542480965180646998528072855841934159462377415487679807199847308184642252921355882019417469395986430625414078581215830352722066449424435571265927099546048250485902893254584289584667158572152897852911579092834716511336180058961368220698296704388855663571065786576992455027622747106329743593664505132224995762939118523723011806957873113366744150070572481000711795256334149097121096270086562690102746180004950074785786660834303763726706905234306323027230642222326998125403166298762951129710709966443798183421646389401012280624686482833443982559412260651805723580511898862529099060479989225879507907000473435306534743872556092068284603686528717363055330116961435800759734736735697747082312665275745114444746190117933159733768811043386860970271984092578269077728296736166942654475651349598196034000821976149866810058907158614836326442238685780586449853872111139282533721301811940036944297127365887265276428506173774183716988819303423176218387731994365216153243669389037766840314293648839100955894791770131134913378807236123202247859985556649899333075638994084700785438396087651248791102760657456147312216681131925494166773539960722821836145290013548347804712101858395928697130927671381952225207124141598549849749585282585467382225305986472905368989961954385875680830932043018026485152710891855632341210208380505734905958956572917723532046354095083076586612572505209864510799569800196200856190915250292132940340595264217286666404911960281911373860283845671311387414995707446168327831290792615735652441396500227942633512233275536333660726014883998233200894690611649415390778708973235440121172837662543775051072403085636850784398502023711886019240333030249788411862310038621327347333287037923831607125554054930903861875360280847391193188662582383374936582139434518552338650455661956331885475865034220768438306582259320231399781261920063692153942254697400998782741144630690120386821540309807244404206527354396240987987341240820794289103422267706315320846793583244078186524873057015592403201771349793706820484289191067383141216558402149980422355907688634994432972008676397447650379171547744791572736733486793712010547999994641087619523783795018438563784022149925672401666073176913947781877108246211372869317378757420022258347779116565478264041312499472897675283942247815662342795443213480738355928421323144940748066157627093421055417806171975930820866932384807042287279999027652644999785626170704878993118799955683590280848233632760185139880429734145000185164233435420661841837065962263168417700804515736571728917227275986859640896571399764022784631930015914764949659815222781162441233128002002242073610917424970584375916322386556276441394495188030645460612735845494996173561904616651311007552258248738715829659560595155131071441710231225330832878233253096605063302242893736289356379550977985880428330021834290532706476331322675563491339172688519291629442571951322017048168455200254940189487055065324390305984063322318082483744228022632436238476095151350773662860053609634167421618303573338823457103442902375516853759512684905323936342969502340315203803609318020282949232813917884650328317746221337333441403229361940359672902539322498308771509554017414503680165984155264205051730005916623562965823494283241557045049830266142874646152908468539523836200491671634929269505128988835457446931302013582642433360832642987779203236220396952957315201028325323782060650301942165859571359829630262782737232180517433153538123891438505812349193566343866657131319945610477064712059833239067319193465864817710799660101448939556391296728284615329492539829018913659948651915137849685695066151852727798895895123459483146256623409286750398155267751945864891868703360651970362294702842771190872923089577625658774184363538037896028667157525215956784193032247076451114332430202670629044046503872851187991700821608305938053930306234320913525658387055375681051792800069820312873319029695402500126554536408837470628978585831133839722547246155870394803412926290442437268144344953658583685411732774915542525503917641405230401886748099538368130259074523829487957143499721956076082277567111483763164147587408533866083894461798654291610106761061235511044922495471904206446904291895681597194034385132243871812722293863710090351973711626297944316493352855403865155641896999463543728402464339021290484786550434739014702525673703258691939009629882923349267722604754959633588592481275998363293238795358030641910066717666829825622894167389634103276998187680818641694989323995909301105336543534588674639812720580227869767885482939314037405270122721044582494080098958217496467335211334304166370015757663700110664102743834977082719950164568801464222119161758084492878279274527472354515616616191571153239116045784513181194972870371707140607962735412080725474869436151191457508708637479335461860972024581270997257773959015198117546470944457478516394613559725808193608122772202393714585152999587259230798583296333909253330736314101076753307524326577166988121528889394222118153619612169706203175110798470648754159516546882907149078363288270319783485300794051969607616535354694867781300848114176641342564268870071842135276472526769651129089173857684581597537890305227005027185831347718989431605012572591129908696012561659196985460852939387461747392310860148462221501310116619621898582269647899739730689043279878223467685236173081073425127901781562357290743995008469265035577224754277340625947147340047776888396173243145242201739972055648341492417047649706355158012331241664909756889677128995153895656467705172557114126251701757795986185763739025336920684631373027866988630559915353008491321606723404265564755721253563814491068304942928824656264442430557040336002680968353552628236203641187687177999306558146265487410515373362734525752347914471872680473208741491321821915401912687582736410024520856518035166070198197244726501521126685077888084718272753943521807273266497360005086087577070120253659762442522216398362381795248380975294377975993457146260680686190313727267944738221150739905058109790989655350462866054264521096692553533591906926585145887028637123328442353296560324311221052335148476709238747290999030196151935178483542876276631700791882944022970025647815111625238391040684782148771322340163986832342726985083177985189846235724534779863137028766313350952009966509813012326318386915166689428771762988128593901719254218041865955637375645914777814356491291984844807721768282874575841115517197888567766462504924671902783806396366131234829360642602907262314194149008491064254386689635227314085771540977099584406649424200650515118643750849830991554217887662256959750147815207210696875605291218466279758610941216828147922175673047643236009162648603425050648111017530981460991902285657157261913591513226045950922731601635360354436453052981291145619112163929336482307788122553957323865626809717675919147013361662457538736068246663439654382031160792333560659895614714990615226996440671786137528890837497608511729807834422574674354942887962850093572808124437263817925183101428071699140753097141673246437878447095282240892437711637414761127223053189533088585250610860542453029254478053765659975313357670963051178301812264496337802689975080174319697776611041747935657016737316621017537879202440454063799435159195354781625089853764162966788748144289757344587972537737358662406141080820360989465014787372830547776999961745952391676001233200233157364140332529036883934136279445917153385097100856555277705420705604261953907947618769444839634529983635159457314105061883911667712322823942896681777716544055387665477145895889879605094796543968763308270113495936928061404855807119342508571494769285143592921691173745039391965321292778833032086385520756218180255765656012621539398632882698331747494304780284506593762857119118908566851428241080728425272964516007893686455616043748924066262195084417751031765024220931291045181747212871970394671137008342138955880132389477538897371955768488756042604179590638543417877566988414784078087939621102317916688222357573093928643161018583362833769199026383907637902224819994270564209776720791527782928973068253301665088246970493945885910259081612874481522306806782677003696134515563606079581417509428077845599606542897950869921095777129538677506867695550300453158201505396478930011842674166681146287212951396831595516536475920967884411060245972260190074160761335430715824049059835841963075594847431098220072553975347283287102709337964516289077831295548777746769875205636321862560075743204101194540938283720834025930223606670058768919057265571862810184901292115424134688751414768438167137401652222107631549680032294227924896198735841478607328308522882658120943503257825959007789956199330747711792086038831091076692957925933014146989675760063935640867882367604840421861505335299180711567951293528109896932546369710869943221497761987249691091707122893450294253598303765429672871903620815228983794982887283936929672096221831700813370799926462161873230229338858196050996656269380905032731528686078831631209103064574540463905760455894962807675586641020114487259613554238545978589447979766106554931496818428527762807451196515911023805573298744772586765727909323722689164805666414596572985516684495548899776604969073710579732485502815259765648003604224218419944408447240812874071831640567859883816317190799601604263967101247285193480482487335027326153615436985685917377529593587455412423977809876279931636053078614900430727636615968502708039216565283760363021886166178113668916938842061066371507756649493492402681207885046761948957715867377757674799374702326349772498312710811600439883295124376418525262881004785976501910960270745942481427273910158270098152769245298352072001310054354023107680094826280890783040629339416049501096470529326795749878095675850004336478881597031327387795131208951846221549617360107890689012306076532289636902380745109430130125708474705410668299738404213452944545332291765243865080374302197554539978010132374226723133838908209710731297644439983201804902532345742233909921226479758377179962777801937409867388962295553126910533858360773824199446710830156200833939397599944787942977227946384752075544871573502317439084738269923124609998460757446968768896110397753051189702009587136547731257464102850851243511528880865745741766121319398705717727255469608684891423961058064231227504349474902630378496965651163712249099490470594072981443949815305206441398510417656138721293368043568854683072164626998890071953744719025623085683816236035444403896820218250515557521152419011475838873389233903350068112522844767869777195402495232719940755377011381556745466616861622629804298452067025796126521920106920891789120908260521544063869415720423466192356338959800384354687624800335995076977168032403506285353583932878277443463898309903572657485653680903969571239419939839100587579347746317342442746810514326901969278213331711264987191563020973655037028480325058532998137566403157886819071839958804318467837033210468059271227006017390133258504148447452890367992431011645518460127480977071875047249615839848191366602952093510421092811482882665353715257263709911018474254934595369963277760828281847305446472513048807521020170716930738897329482110695221785937444756425695961958390050545522790827050963890213074776957145667420866217054576155283257037323604174966103624786436025557699342887244216542052658545959917135071013740228291407962750288990351709837463886201260268964795779553288021553533607773196995727573835881666171731933975014594728533251495534541372552635703501441240146430410084082477163434845228602864682291282592056243383193564807545578272010212602410978234968754278597098653877705592125163067955538399520613700600707552947341910699995836939344176303724709123583070726866365500821518492996323399823109610940752811613258223180298551720002793992335567542465692880500562825484587240276160041973560208457101125504432979794360347260068598776654363336581397353161853668159169312990081036010956893041373763809606369222101477413700494826838855986237992259100613296136163454196774354102878780192055087684602480021783779664103887114773952469790738193819572710454016806412198530830156473931079631172819075798484692568185163876829388338644444748443812254557105396010571696031164011869554022063385016657264324214720682651329360997905411684019030082257287769690170829251311185506683050482496855319961837739362744708379490952594351108324643969032129372334316527767396917115105240939045473367489505032305407507089366952953282079584779570891974585079851484646627958292024863682236533809707139885729334412504539404510298419725516333022690013713792922305259199125938275414822992348454984962463749503795440826697871269088954164687589540424998645025592107372400402664677703838499914560636943634125861807049445020693521389056209427922926205976136490827262068440035910605714833936774763962569334729604016504417723500400917118730016706497682417242625782368463347843505429800335198327754131571706908253812453737970929865637068065077811059006175753532773293608748586253026672250513072426330328472612257342865221049026492744668271844330771506539688422519032764448982877448246406993586702180792995940235459569468015894159882306679477258243838629931006665985560766538738745099003582342929200659361918142766613563902234333099701777655139691553658810663035764421591679752300412369956996606029543031001080563999060174569456603796910773200601762691980498527243788074071064049249796980194922160586681351909237326590138086170632469417073326223958142208842900524979212731396920366093032907716848552303073269789628323321611130401800677221374073711165883022731622060925617283811129781311803232143824177438358940971755831379737474701692932707419517865944759638316567835783021626768233049880132378450551676615439766699995002443439315489614756051400626182213620387437963861289348035370018731584135764648100997065588930500408979704957635065726878169952846864155479093417710910091043806919228594833504715472744530005217562611613875455480702750555176467098611129175197733542883289093883942790122314112569087046638034365465544988416463350733209101854981885682368125553807140211980249345300955536395937049335313383538506105036410786445116879568759966339595525374373408772993515773220923654136446077179583289283009830077709851528907467598566898045761944074721599689379420843368535411838448407759368958581245393563860077586433962152515004958974736504735296282859449175446199954905092388890060241459148471423353979570840081437542649071770589652405618296491757273962383236011071408706905388099218459305120194201758733849684988788373802505009158539273909734108549441952894435370824164207687874497582564780360531038047578197979253014529073841521181132506644010326058983243981071001042566275899844699984521720540200098582537903808270372255650514091299038804939703579715030197502543500134811613063142468617239342307953432450216815262529436903909188460360614806395350147128506092171558391848804973333060596773736041020439626477341257649276372312664611356116710395270789218184109862695646544868835299562996492104137194551160711859274980857016970349358628384925473448745409750354462487747803278159131961898711415514342114196487831235506789887410070904970443491368514919049926159572155785716146511366008307550705899104887064501257842536818537977445525863530062410197035618729578335598717686926328935804677046154665265595093649372390983643744270150221383652011772410348255701222629403258379456128241929915356623448200320082957780439830646958232411998976689810582552038456151080158679676092571029128739053359211504549027327531617869495869838193692251803516573404560571020041082241789318681873273783116532217187834527685984703190809719855466663917685905441084078765806279119776769224448804664706899612076866942383966517748562941879217264977382871465180075600488426724084282852059220785849458008769372215375414547264215803476075104912039142108143497632367445281674024205461011454386032051023957999133307379509175318287683929428751204391417593616158230767520758743716378730977888965274540179273790849641432434323772747534488910556254307353905253227735103780873938516747290483778540744663736653081178045962945937165423155877525747883815883752066723882938492737684977272834508368295019639769527742243628173432459271978535159212078090580993561439915008645620384878732210275835089081333366320803616576729032558224499341607735400833720416439782962397971608760626225032147379758421014882353781743760088369196861595823960268497497704919549508674398702618333031497663090994820966989184007287549792623135020652744957852963965320551337678951821537657453662851319784557848838513094633671766177272459657314757421878892117347225460646111294426887031932833095675687672407670365289322696598071277619112583726998461325197767384778065615939856015779221629203429023760718494791663487835847351218096517061355232246102867891926056767419142594600315183856487861243135636669791572102699943005238772765767507946664946867494590799443950223252454383348456816661069932087747026627508898124978278533541767369689438902126865674961856136760500270155483617404591613315550983481312267922208785429658769792162100610474637829256409101766278731591436237668814526620594169967690746243275662561625932593590709694179541110767478467402369628263976764408653012019000884487150387162126729272297191664453642695453966377002321191614126484473638013756481770210503187410567211098633769723683870450182906096272703010132824293906961878331351180756996953662643955572689074881784963921520390011929861894029473729054458679114283389033250570896830401940006959813151549473029599052980789434107416799399744438559292445270675458532965714244957429312486154392748982117870679651222054659450871667760535365525589086503019475446628581448381203234053079751253931863997772670536969200324914713835526758376604870656787997422063343116322130664424105649830736969381453958517536412441495585420496104300094444527444027362778126242294640733203683811288678006323551426070850030302127308090293590739904461459046643127633260828556116793271842366141506486838411707640053588023868717297619152363282903272227386812137998312192593212641715448952495752578487005331910237725626021136240008586723793654940413064878832298207440649909885331251581154087582417631068645187703125032191304406131625417396016810406847566667483995491641582207290151582473291618487572083097011441568063705934869846711383547269968466849401760395452555502494983544115455419047168022347306386991376016907835299867380193173590486853393333511924102713451635431177501035997242707043015807786393093613109393498502785193995816154530318926394154873558025188873312801864721865712965735692689348763438390554309882971765703482161004438317726091739611015215829774803468614229656087245467223475805161190178521991658490268160243224033027169070658555716873537091176760952586948912756665291152619559596464209426054260869326760344958098682854739271854268706105927298581058025772399990681104908362438794852655185364339414649739556527662252727949295446062964827422838022731697349692015325993080622394297104256022339018108841531865497674857943385460437404587938981638616096960644760931602974083714419024957328969053765143118950663827128028438040839359944040019909163539589457635398549387941603027064612080615490648832977515996970133365091184950351845720398597311055886779949178082551135207473072784530830751043082757352160146983031711876625544087590152793092870431378519580879481688566028907288265702667751324161045180860144174877095819921673593900612719122155798692878121885926466062787045543885882496530692010548823222142027596045593291024086692053128590240493551706444554989334366814295820735768555585188722864746100037456154654868532993086567460221603716978426611135692629736869708730176374477540746653912354339874755108218834009999750250698542436200275898819033260107473067675069481321755470854752432307993967864682348288836584908684239486783685866537648211465278766572851263258812817504285848813312048893723495856929198449183196621040192436861735828820538938451262582292863917426428159779437917374993244510964397853590142439920713138423390286029978847491863437125669535959937926483221866904333496976209261663505041318718955935173742061045166889915675783932557762055212502704049533052959203412181017779709658420486319725235208783474715448687214243533482332479334243180753749829251236792716753115324752859659164035912662471169967117404194579059235256356773345271585332903264906015375594683883087255431548603551479120636753494763720867846219100823527752342989406674916755195829212621367487016590050892000119111296726581417574716042005758373737919155500112043756405498666597913348126098979129061700830533077281159248981065431024126214476038014710416943064147660001697174912223504453101777094325271853920216830896726608213739161253659958630790453627065486244468091677978389116231721683923913866015386563682033972416248177570133052804455421778633130509748599925412877903476159243250837518576094626337338886129357183093905496854646870497377101768138828492682191361850817696278382745071125079666205119161102780353032918633535598940111973557404271377725063965269349812479131423762133656695177122799882860769563593587072214684374199282840687774239409529567434261721514403176574636341196749690167544516721882505595886870346405944526217174171499447279872111488970225492002849108281703616778185594502906053326226291132972700172269899477571600093295839825053879350024982297817077495422251642284742975601722708220130067509740963879282630579971014124258222027643705181425413942937065172810357017445127748288159889535040999105874166167668159771665275824925683214691782076532626989276415631119063805917356816625018590481933449477161043846368969961833706625546227824458891640890187067642443920130465358784404435936505819719021921377171685728738803238228759096209844229485812362115298610919905515026985195773116535711497448380826560433582112030469764109875497267752956110530611341668470620509850827813879658202611971344070193015902468237371336043930449814358901051292941906114999875440719660273383290356826071356952622409330020457348911563234884596244554565486340617307304282356506989209145041335077559464640426485971477343490204893395275161921595906767102196125905341005146221605106464925887694446820119862973502473842259989766664973223208060065467364578086144316108869240139604858430528312356626938053475068621199737252114564501595160545311174718783458893558361955638953862728675160817849262581124092848030345961120789783140485643087272415106419305437544661582287608659301042160680171080744041342669636933558617894445601541808445718333967109627932985384197342050521682343087268208650485971672825919970033739930155312273474731798686143896760376359932519891995011256152349425505537694695081598031509077648399524985697882112359236659949471201268391406242335770627278820739211851502535642216304168284660711059955886676930300358456833570427249569410289205836979086788228214338216317570750174774797837494720875286069970805382263821374274843542861623306330476492770825914392868437186669484083019388647361573316424398078567930129134371466566317163220413691186588901322877963413928699968154778712108798100968458978319259341489460409540148665519244397578372699422611819740611278082917138844998710115491275014163024674476222479007422443095477260711895506358308681001643084381825128773018101974460572897545035521295950671132434904831387469428261094973587128226485437914782029813211172083689037634537690326260522665101208633403536223496903318146504668968989747059734393808802843045353597340227484453825935963767230608876333565605649283032584009336822155146726736632610616248073823227233790418964653611623658705446701599437248049161398093799921125854608942118727014650776111474361015138886868626568954386625656998889939432264805173552562202539576169009680843726025950575674445953541957895261081524120637437849802589516980003663102268681941115406760056891366242303455907975388016355284854025547602139608323029173458334758702834247116064891688164636289085233232938328488514989803250959651975619678795856594422840925695939687295649833046919188357278947599468723663200921589812271183507858974294005719755969285157848504585550546511837753431353569031103847713308862446646818450826379258084935927877784221785714236085780718210854235877088103891363600241388083293788311200158023645843581558382107122667349311217511115252153604074618006093075070638794873599165555601160600049830131647257287222838299362652352810822985574723889776309891504015987199630652689438093156039156207872099531610204870233616008808240672302771221100714651858955494784333437645221865661554154944684107552246444659671992217411604697936712007398569745941980715774153028543469511444866326737102350830514447332746667779921109329853519095420436356938453135282210148933182971153010681968237825280316106691355529899194011748360075496517804499966003441389576414940587530996104380240753741843095041494204202625314106803941550686497585041409569271548298532365250313122341814744938517843882781296445976317491181345741247004635885173333248615087434683668374291585868772271807213862743346500076242192488199123703322608405756164843287848557848558824059266495137156796317722481161692164907798240052186886061695617402828854131950368259643770358024415905959540219832550812774333145313766168303496658292685070655074946478729451809217851027377672185497850911043402332424775807300926067149608475669600311743381078683728091357843209813803845328285939080999153223796939852986608632017360112212727335620562404236263972111421504568146241859914222243325465108305616124322197201986383996483980233396206115221545340274474325869263299187340036732162804142245310328405674304217959320282828489878380589798123889986254708722668658571918661491109111180196278857127777691783390897703397187585063721180519605862558028911506504946670936844063667136831895020940435841535621842735805567973009309972794928346625261100997345123809091502325645316884917959188717149573480218451632918580652649581442099454951723988212765901199144581933884102759952852578233393434401359743585615706003011304965797574786551189562852955565167614383117381963124337269324267566192490615020981438084787226754744344600140651493919004978600376585840530431594791221456129411006794102878283281156292210611029864666337594633301412294120231007587697862145763065899163201537578277792196713057393419376922691066514399714488669060772876186029561118184061676184124006006590019024276095045141742365313369890962190346653053371112594850381541120670755994485330415838085066650027990800763244426608650998675695454691963735692419430119335788707512785238483145111644043708140363532401832704165176254473367009898741704051296647539531068523194833155176658543749184196680867150868784573033375802041301377937515855767834126432683409581128697369599772179706425065372469440907775318343309948666398672077436486161853337163575284763973685897715037177090699953653120103562416398104396876135313907981408439394745020180353936179536264509930727120037697894324851369205732348525990437469152866778831933946045445673026651489581909102783502643738514814027785599666368745615283164628858363532186943198947342638626186441898177112096280127298446469204816236552444491361135353033690922874116922218484474036474122118894347055225362792191042970570050737401350743940546492702816721318962342326880387176873045696229737816338693063829582187688332695916592849258333194865422294392157674254371095383213392166541278801333356368891215158363810285022646230373864875752234466393880009508091622449559696070972649515365593767486466952669664246896545962152818429062614686098914461240642836969288636166356694215333339030250160298275674931552841283502458652166185890619161958859039369660525458213779916931758704236955911255842109208359436748079519563644160705170824810089684326482064480536256080395091931701941529603373814847172474304006270259781798169321340327368056781154376328207863873886431597442841190295793078548942943925884410267355374009676563426784833811037275641989120948253164658327359167536894828330783596109845964170646725189743209755604655713085466057080877932952983774389012721008620445534019632921722852137809519124566045398823426200779147882861882399689356076548584868759555101072351494873358149939653883155631927230494217478774560063563006462394031981851863876966571808117220897104137151179094332574853600613471854726627890967649136826193291817291934324652533917962830033813892468127113097522697337560858211752658523490040814031983209609810229807758675742530387744023819329819968094913245722363658964996530014352497981816090380529305328888858988993683702990970268052357974457758979303341106624698589306531111665357015839220803262653497206119134825794283573702027549204232458615230609843973623737528571355676381781838004897792943614029294106375780457201565842682719278983902763596008325682139686019858504240420128435071844021634087000117611447869713786247174272022510551474596723006276343203037482238396765662338235931326486928052753080404393073566192321857012169120579584065759424655353531289255419771484798842692963928338628411509924732339121901070294956412887487086215603489084243680555779049054380432737368612554496884444603091479063849566944271153244057030606317895510963840912665759551319039880508038888946924810977284914686721921387789542267661264933062026974763758411891650775258500605805010127880208641122080176428268578419377634832032303321423090330310244685649148119491013007049821271161322800968820645905742879288792486908373925860667562393715620649368839133684249572234637244595589014238966240805857782008512814963712156538627410263084867414414413887287425151948384493293078411046040993463367916295060958273813554616144995172087534718852695215472411598924492265256302236758579932793709180572182549224717934563197356859239153172381084259852237622109536765433777397803460863563973773001849514944112864452334718288612831562989189243411299527659531481107372787137730647915801323484910864419992287853363275098109324190792221104692032939055012116355132472374611992735180356102228970502714329493150754935128683204788981017342656639516607418973606802896802883190479920928499209139704690408595372818108013871825131998517709397694511647898708961133358700938937567188630001289962844094846427359160218428831048182746206173794051746563051363806727775973184055046949371080805973318690806851094139357102153158285025382708734909884334146827727317370189062837202292780960498041282547043035370768989956461541758355384408675520770215173118742820331080797812373361251798367361466731653580534169595299905062006205882331870689402302564013545300100973594522802890822087119149510442988477424219535375931013363106579699182535242445363913946680611802500218277705629175284397658898689639642404898035765762025498494523265885780307016051454079695363996649666045765030097595205051323913667263759520580599938086309530321880786665306624483962953209527302956180197747580315762599874817188301837366978330834526471011033360045773721540629191201482243161817564003401865559101985701880644773520480369778343293413972755306524534224485830128036538952763827944184211058723608622091350506927167761285584073315975606828699606691389307790055906192952848220830531946620151529366187708762076177173387046606009539475643228856753281405402682019293323242317292311986083090194055374420653833187359826359576105115357868612072634436422588995436071102180859741673689185506419579129474990736842779933517714867548367917139338401496361717358820518613766166819669901484776859956806409069837642894027545125055209306092953546778291484801753409606282804641655471720290865001689677901233928867635072812312898785593806331864736263046143032431676976663344364259599665931370776732886727607751540599262581557255095440952645230355187138412244205184105167488526235310664008150901716006743357288874710424618985044010253912359053300845966420714432685784286274194658959536660505532659011011327837083832535441837444787880923377099698636200900776816406711519094441894460945828060187824021904396302414510368981437133186805864217562238416100618978772120463141471475682706632071650851874698261026707738305819253397459538303617880393622790478014159769061529045203890197823865167991922804036955144995105869834524920876183492905526192971859657993956387211194563667480293972082940068593521171776456121782458022421107473642564418372362591836597907535218442132274507213840543959500229792537611997640769685841101252231088074915799371121940302843339027174954767168112968087646888280568603980808788142565428313209571813505472575312498080427049531058377456277650531193378343409635543286580052335325450388461086003506964338296993733540384603887354989436748368834846566050963890350493562929645248953706045161940194091019504668917538020948301797419134832342685141530991901017057385994222562888966235426326365226299405762423192079680525937580105873950160140528309658250282569166517466264355205097531386799242432489120794099462028534915148122974952335283189666347060970311710200618171930324605196010380490650306505201918664177156335051949844224184827410700558538444527259782495448067510251365743671107995262444554801878424855369698355084715723081187506021397393455651573316981495308177329081918211767187934376938185066743159402674929891211834075523420083545965262637325303703372552988808183612643071573768569445876672516037489253212950347047416481257796024943343509808736722001069316015092855849536434315961693324530293108090683289974420113256373420447375623642003461842346456429141634446761406833854921713811363348116353085909547006310085638451682928371117539158819863505890322703549785594552074947184941337822145638219745928278098971472448969621395993188536165427382532944643730992296013845704447364524737364436901733117730762986385017096633637455181040043297651289170849902144536280698390297403955826352179320483715857116272508153297117526155649198685835647418078735617686746654433238351056729093038569902086941081407341976684792860900196463337631226441744288774766725999255013667112474948830204855259761241505406010597857326802551686174920489456570042433843074166445615831046339706742413839442958068484588711622617184361994875631586889493940441460427271177705537263462997603245526439923122116501009018848790172758103178643172924620453383133018723238590942868435997108749587409493398616196151317877616876459363119964305924049366849153856720097380525778556914651516337369823566870459161312940370034470528022449278299370684769982986465776688481031247995433643005259250427900360801739757556901873564053246366525828428114563577369315367834833658808381139301002109996031217027098040610963594811151723793428461403794659333851163765186876083403752851968897931373336966935579457227711719417203567489755962024679750638854530041440089900623728410772521511035271526213855719711615568069300238656740585631980417133177362174153054368263981055921661561766352411644252420347723428002232550785095863111867153787471983331232828943071481722935991766106875489756236113571062865618926564315199972455733615725961944862321602129430943207906180967962696762698891651282086570293474843321185470227443171736434326334999557449938425042555798136541455839159811696579570784377926101647642366704122034761488165825970683225015208559826507721170456339026683072430157550692903953954790097444312432568088461687855421363040368784527359789476507417249006044387865969857157594863721049712601255125626571703834474666652891518204136092279981476894566530416712419054751099814703192020016772569150420549928725295044313992951118627238310285197714155709883061052989968930009302002213390752063782413055825033613507185366743041269811504092763164091355054257388849524723163470169110908579829586141742976959323555070858305642445268796679206597778793007262358996606447987750806891422933545061162324430841406884207734713898808860175088289465676450636692734437075324542499269092485193626032949521091049463627917661431327764672438094836351299572286289544928444878525912574084437226094888006931384034197877840742238564872500340763531937501331443222257232174436049329938637883932225920015162266977145205585807206363642085583031070176307225350262947140091706332044628353036192862088458518634094370048944036981064880501964417227623980289926492963234132589828648264224709784069214881397664853178964014534415701342132522301362657121907989558198834196926775864594553723706257368287594815731387631948099161547661919921642034230558522844615116418928811867892457754112273710520467649496221625527250781127163486854304027315587747207443110695699262459670411036667898370466297740748246910053016109590447816100446721210547545236508440905085201851867089555601771981451440932995744855865900387844967310593468204771353307657643120239351446295079653216257636290300054949666063536764805705964200734353988779659843446882568521708252375948567150473049916313117870889884239235235575320186525258020866464261579979950589829945517984053128927149563085700175022925905077768781911385386617206988800127231924721773108827403563852252320753426933231293562960246222811476018963641495881194097243083555946878184821144744546403966444041413084003156017632541764891879535974234554125522166220150909463301799690928468800767374206678665607982717051111821719534172381953818608798855663055326244005952952147927403826737229157657061590733085504725272603420951302303425523328493766600949100252093108128196781667055383805412579103443814546526435297374364912243460639056709738369799733159645166450739820349925106955032950448396279273924316655796804013486162834786836166164928860573644509558497930281078944624142856452419251899258729359414771742914438663953826526447617262365164484983612846842171153352891912993630885496234607951273980021143991219439947827277764077643392854547284554294049881061353349944044631415378971806729374078755773223575419297056684932576829822384866833350063599811170217536728287012220669434379542572758534872919329989994137257195776520487808998311444687478093977850138801220840214418252101749466690194048360914769514699306477573290710852323811826700037319346013497356743667178735791140786093126376050109786343262767204625581803617918614202806928023365646601817377175632474512458697140229962327630159983648627729221996656808854008564825505503175510629540876408865993557267952532831179762487044411221228195511296109533711371375776207908252132098849451324577551130099278894531512895988656390218869721415581247336245793706850913405459652498391650613880543765288193605805055427505989674919279791108103278136169474183924126301603399782162166524714116661322760968433239685445661075766854687581317858399142668325845478880546623758992516321978193767840231080682582193442953409398168992225799938172089400445535461300245388511466902698570811440193647842005441514415347240222033568720695558005593292700651266093196982440605348263876437282770242656505638646914268449639484404005013623032523978588823791946381391112021322123524668336194951046939203379112537160830583819798788014683523464334623033318398647292323058276192906730672325616072610501982722175067053786112353456645375900224354198751218902639074314465924434623818024219071872308943908394503569606595022042497993464247118362807410427894628026768586787172040422134907731134983449606467838684332637183265460986841850909587727425836803597279224036049724084913499663332425760927948026998034791625854403572985354719469373839979603470729681029632606821999162983919880918249087887790089624023092905947703702481746926457149553598888816300590833741827614356437690990755975023645261817556488109799988538062377116725963377445400616858609038974568131909965525331717458922883020772251955699019995209930457303942852004242764462290907573090928516297558978807255301298977969219194107767647486744216857281231890942243049162415884399740253863695011334560986832841659764413166561802047775386141878603538606220321888539038259875434263514027870250338123702921719141348403143655838065475826914143021899256351405716756153326583842631465783305909577112689699111623850406959597478182943489929465165110029798141297020451241998776078959571802131640236892095839343289949204126957611028455386077642434868013338877514944484313034024128916959351570382556219978931446486964753246922676128661201579395623530603315277204384230886226918300013993214816282790725789598040934493994370529794608375079440160865052226724761726340210602453797768542667142417353500970902956670706358507941085902436362393711599929404919356440619683440071784144189872188125578588634187681093357536635792163006760245407976687471492357042761387043231121533354510597196768256708814896624024060623854390336456118326715200510868266881130722473717914638303388898956343395917494617553857997294700451779433310348767167484545061238670797201118994303947581736971428915371828679264370825768971527485660998556184559534800836119952186813996163357739341628177473499882654562254085553286739326684129274274905367517495310737324713779082486864810900475404510230359391770289971664183476078360274351156285935385922588318698694667077652449885817492698452274815873402815496823794442492841402876904306914377257319993328271422455471657856779180394396133556459801653271249565931757467893584338032879521655148764978019535688934895488128916001110513989669393817713651007397953908903008218013427948976546326903818109743632997525050689538633504132478821348128083342679710791668016885735460170266123281233802422480328656199585287682412867814858714339117490075573571910398121497768418227386268093537580535489671114715426998905835907476591640320488295140532927358671235228866943758872761678209912545335500345837111816443082840642693300467957117081434234096224560452205227644251479601133777155939182993759096234956891758237782779376408436530316710576144182285367196259003011717622122913009413565048865086239712853520979481133256445628905532360899736479331418978564113490182152777524945256157353654273531575543329228609950600649581888545227849848802378182041135592597268129553101302593574822122089886208861560043647896395795839037978113145713528781673054820777034148484048540086796311223991864553510060878936159292945961755169563240112834561406335719947828187987426909213437639627067782607853802657218698072154613654973717214076060101039387776255101407870551932027587250703599386852071714204540088873075079635022610768439958708805427239710400354446773482972735162530146757619968918310913635290009634038047487701287262106180686064753262099912425980188486453980750328666666566332616667938505190960856060877843310039740502557717855621311941719006950823078294209155614781536673300470524528777505148481350293276038313386379123258834113806789883867685807985264605027733265645122334086169559809191497535509586510064856606036609932368527650244455945088448438418420793076530108143881735161973102305198579310333622910499233484176372755638979529145079792221555188681990312243617684503958090882321725270900131274663664466510379036279816115874202402473021796692979385854561250765719984584721022462157409712181408591067403705220907019266303662065330763489406747218350128785692829181300855995024100018119067914856489683124603419597500264958949236037239378554502710354221030523700194256977218758159478196173109473158476331660503099608333335110304603970358179439348097863394347252829669960248346982294954341376863727840466557412081483446087416280712336662461954475267569454714079783018975578193169944212788894613879782650750448355751203732063159175189798895988565929089351713738416970340014535488239348884243040156136213272525941813168840729836254279446693173360876501529501668258585202345043642324459036458709441048368033597985134818020994431939496268640247563657152604683132355975853043049213318192577000078784167030721400720239649692920431588330739218246506602195147878949653458306194001498558610006469253862150837202874511211857789473215858851902091470485855712885908567401013702953044203020554022949583008467461812323264943977699372585177578550095111112891132973903171854831212326350331691427148423030565853526824160099201010942810206905081348934463888229226641949077416956557640877159668593126372198885798822078174678621872725962214846860938640887233876175321423861525302356562681387217097705776192647600499451987943770664928721182352640106032528019039953535684948256664477657565825254821196953251668239472662425253385879113147046324236163507220338277372730630140128056956335856953977263145203400254656930707677194256633529007561384256104091671175395056913853957452964503486332069387831621810978512803427881845702244834915370097226299966509566409849014886878847859945286969126713519033818009401375735607498023394842577163767348538968368294059986132531337627582599264686918774358668288185351303296581862502274560977380495535154715652447878285968743038108135966286431790960806195820609330507272548791560176335174526388539220733663141703544008707074995901579982345763470728971046609629962768772131938502794675483021026743363731711876244029770819530575935006190872123045309093759285839725320000623776467711384419474752615534200948339861087993810224898789167722138746292986126684933302639825536580746766875192753115073080829121993482133008976545258575909031744584168573917376419693906126811652236372027045353483357885665811450853865229997855149612948563762943768967551449097915283032369832849475858654718147313530127945882473729777014833478070791875634053178219982846665360027704574580549076144834606459725980398554464149646132502673531861047744239421420862455582331286444557557662937754726423141412326076946002886869881334218433036733204886840408425696768880562689141847278765033029707604910257889031864808711996419304426242260408587438737804859187063786115767757918364304625113291387971473215316872983849083375321441240589938301699500054243730374149323709744423703077242556986394162682733474076371160436485010303992408364504489308546744677683687223146380573968205630507511906080020455108549991207948454451805585814422531303894490498943889963781796453652915353508164567123628414605365085944376211048828957956755193081940305686642537967568828391401158745686484518500303817055704719277221619688013918151906568428422433570487864337414400441512734888099035246934266929419796151047162194459141491678585280427620757361232437582030388060587854814315676816162878194136583805477057772306777911971185287864312216534568489243640885683646080733353211486048182520004855038327149464196524260485944803980125768131645566629420156479919640411563598613314877030521293551832290966130121201482148179434495064329961329767796583179644176268276261007641355119710210157706688139764969603091372294546156634946456425053389093080047793934093619137658832927995136548475383447018284355749477919744851025969671272638703247759677650794752528735207720559436507198135658661864273966316790330348402020546961451526588616953857734249064990454072103491618943273660911855245207175047533404083890249127973294271556941393877190977009549373549116387564017097379836741956587791129277899362645457984310336591965393727606761866969501534347245286465738238613380741617155320953158326383884677154380495367778183122168243375311560505365117925075697903366132760174165297594432476162720756612152498815030766821538412330588799991621766058503038227359601595932670252109935323785636664518346937639275493336677265829173820394625482018861634463543997254607310924820175660377157651636177501603924060200043612341601559729574779615897638536598932728916926288611748086533853163195376532110178379926757061579595823531685136204107982461758990914691294532781964394471856293543963637991249680066116491759134297981658841234643571454256441375058342506552326394166871487473467549338821197498476025065422861479637733707924662771831495752013429750613509400644753854225111776811488079380698853718059148930717132484413677109289723038174952369398460201657715777738032322052873121308939156249616532154713807057841030026584964613074654861210235403315376092617881097044758628074362076897197112591287302684174892110554817703301741002163705526209812045472633076027062097082370212422243398726851991591936040902659288806939378811060447532641778451188235285570665597067249832842393290110204851492279685628941231549229550489763847632878124667328515994735066418215601951273216186746125289545286780774274224202354600582695723194900967074222912654364861497693783840259755268177887148218483859937728122438980578687876420843267164530649393943128267820905448178653141412819378189304536784158272824830324305669733788318934697121870611965176494368324751469994916725820878211752030595639334176239140015316956783176888460972380902366476487820987011424507046574706491843966226529513914434182285888858341457609255569773725348768717109202923576556487758650563525185839878732878428979146056362177331450976728994508698284787462275708833610020124495673608828259744303761933629275127055397261322889211147217850700113807466098060385573833052390000507445016972334701016949609647227095517601101887766325762385065482341125399503510817521171930249537044692445828656063926623605148041758565895779238182801977201296519431233127832665006915358340256869963273300492961766985317195762324425473498149215051866498296637928394700596357181118419644645290050618445040527503434923030797538220120400962239715211094282170458578737066522191688830202276636203724601959854485438594806414830833936936639135257130039259745844318986178310312581694606727052333085015758225172875282054390936839484191381760218734874636185382482539318286436205041151415485533176436552317841157753697577509078833988807862788482335248590604427237597994554046773736275949546573411792249241217412081550822142355251277684646671151898394481952507062824558519429197671766627437649774733702518504746567330232017698006769984332966681944933623667071032170823739929615425158035025705228154635375867517512498804104473336738314271253083436718867300694841704383028315449165730255381259095227224516116308239448414917729840726772444572014118539768193311245538467120803605013401586445816087305488942269540977594780018963765134463975152079179856567849145623496955286759876503673148476943978047802031348183589201386369659393657346565600596102003961942197778482276283021588584988458767292691512236608651744267551324780732298218411337996842423649839325969507493376076678588363784896511953689000129980962716699350898518901186510122585326108062106282540174397425543101216249918880878191293617544634356547259033406800406681935078748732487960070939253038135981082034654185266360467712638416521338946966235082733975976708280092802094697444369908608282624241709972567153409788404385825460353266204310491097147166948644658507392323566837621169808568693228780017330738494204510512528246428957067023498711448264011017778699582023618170076539630117676354876528536234794203624259717121094225556490452583529723378919330625325975514326356738329027171281525511362507245516008895875579162847389665325868210957758967232573333905481988041581743381985400112433660166343003525790222669100344755020449175749783968736127767228501860798326393667169194890319038203765930898885130153762793968718968893147132339102799711455550900833074028908510704825428918545593915679792992958760072058498836098330830685767234385561788045443171387869815619846105144272285606755054067589988250035082894901833343836216887057750092214436375036492857885181734152736951643330389389611322642456840871879121056156916731400591518755488629431460367930474990149455413625162835548694104135054191107561275415992585280752151122873730635835412675272805921155887802438209922768545368219290369471141583232119143086870785552888503242706922092776782538978858942502754007025258368463946594751071290307264171107026397350336653728543500228424921309978032568467269487915137099669436115405956954052434659528146467815987359376806321237004817201520331692982126115322541529273639399265765397013525613080226331304552367795675101336489975224385040753930666554124374294095740366063642347640342323904868719858886430388137262535647798569292582167862146087265299939388832914955524669150020910933409766881626992187457000770250769658821354775400660045025653108721095904594309901583759191184801496851051445014473464118674731558862453663604752071675824341872212143292185868177717141089914270066508576682845409857665811502468733110014956656483833569396497844096774080272563797281891572167089347626503901602540232470722664992620473330530466373862598588525852905377111225845238230993099410518759594532254267100231213734662020848441161909115992914350542153656657906201802722780291048882197529111116553677527504926398777342896753265765436991256968690024166074299904273366053869555222499915991979397167928081038893071995032373479188012473910886935638957007851488973430166780331827252062422915769182736509009789592863010237621697613890260701630387148423863258198608349936014176228352422724996509727928684233930921679714900931985246028875974103824478587252400522961336854852989877773127662115303019862461221239522648997639511937714062578626432578214579672234864728399751371037010954265522995603575551813084229945299121925476961626255256847970667941532654816036183522907918550354513287674609713620179179334452721236527073182895176028674020786765309670449922828003551410623394880716853032387901900724660348870250550556195834293103289078149450888730402843992131780373769458214466022317490053823734880163761898939755247802769357091788802414706843533826338144656837470814956213877175934386746338810995019971033071075369007447921264315336932787438035443998819990203620792305128492684624710528931203897898066630203225389194684515135031192191262456577454800187806736230923220280378170225815734947703829638635380115697624351673764092816558078738077390669687568843769163140341842414714790418498659330491557813993675425779921028106055689096657965456685875979497301404345010674194246703943033246113626906244037882103215437366220253352584730345085526534996858734219580094867923659729972684132912848057721191270638833719004850876559430833915163632934067149588525426814282125567372967149559465061117808145094623935691182538333500779833556205035714997265767186235588831717414228460782759416282909760115065453609603194959998621846305295996276347523844297013327444012483854704478619132665900670379617319627692413157527980397259177974667056733190845342516593406208952682650729635141600768238860455460515398005603006978802517630939174119107673040083299598133502507760844298121166921075165256031364231994514807153486694829590248933147844700794339563094614052799311921093261022783862245746436138051937704391938870446503673891400057466560951927691148756430401285856210176649548664391012626107197547279653342214419853906332531095581570597012511906231726992734905744098496867641207682496031522843009370724231046097566437044814663766562744427786157129305135007442308134701686478858087976666995755836227811667773136767295061681966654560112036885230668439054589478601439705301821087655989876276237029236451410071305338197365886752580649475874193810003278833286884048014019313256154068419175762554919350135952134894064703518140533230519575669074906000657124066030434024457327728566992108670678773875674881050880470937011741813831291983766855738467555495455940033172397243932535754673266690066710178052328334420375876380413952554809073152901253398963466276594987806116222141831457059355240105963221272846748970888439714960949049075246290823338417460166947748070842540132162621524468986643959112874088358050047017760779755103824599738165065923172415375543244658755930173543330185036575979530523709609221619240784673232382175872998488426841066097939885172214859810458239060863028699143597655528992429704321627670366741499966033582947619914897008732045644420304505883505062970819304814401348310523755273888376204632721613296184511279868572957435796056456894598476097818892377328385918397808490305176819994342590003941363622345055530555604765890628223226649914438309762477399920673949020448521056891987501607162461454191376352778336503339513959169284396445780855231519830139182576244112986862904205011021672889032182182878703286333488485577708771828236827366058474192319146310625565254577675938168635320573167398538743453728343872251543590838084961836204265806162984716192966913796553955852315040174054946230198497572308394335355324675939574323865508069773116227505878070612793190834589128731003605442622503894867718883159515407989916800819907228962315622586992920723858429078391342992415258108475656108021098898806376892555806561785263834905240074490556620869715887120686553182759068779461653109810125425916294936358525763689550036112188067044444167444313485936188961542268802596458892901603916494773680798041105814005969212436017894144394170051202598935279328794124409295245498248850672135052306444663602457113665914546153631715900011537086084371415656127689318064254380102294448326735268437953831138967009214534732686094272571299029431825797439086663556870635542861921174616887970973806340121406722809938764749539949602051854053503466177334702339516838371999192105700126405714072381250656258668044851381117220192651973426599593980120920165063074071432779660022660910980894221493775386680445412815680624345249100539364512006801439794129704461422222684684413113638317774567925220772429233521041501253639718502014573313261661295977291962295684017050452187528807677540796427129618794994588519647509281176158437713615985586716881975867901338877384138310063868063207260086499669062988983891075241088130133179688725619117399548534843859519777517549310228371026989464255677184560671920090893678477423836017104130539154656857366493496428440758753910794577236070796495775290836119189791286199088791068505088505138384387086099020627327735652749890958822410554187693664437058874026046445294715313543394741584178975417967090001898060924348246299215124766950373910335455557828811251485326868227465042507799901233068238973833027466780654913026017753478441485950275386647708974160967606439808849070231867886321414331478536228247372485499725740876015080447955126443484833099733608395380382010694918806497756482809187590275519495951765937281964871680635918405310721741557352245798889970333426614401215962243363953566197069431995962836184523073842373701264865604244442803732426490098738261816929523347555357709307067363244294098970848742628879273996266823105252168447103953020509517123336043964861165109516435967093369600792029165974577468529044016756344427726962751724195112815852095793790468587281570905022278896242298532590794982423952860307384656611835636923213281391979743110746612002920884877049840961179430120958059539570524129856893078996616912184347647946699698685461290058945267560580327099410444861691898887256583663075743524615601075068153251257363568418635074154155592037357869203896633222621782150915520440252171924177773355622505000033724987350052370663942675774308244110562163888798283553088043210965726291584117512993658488776853692751114736166294922954966944761463433200424815953922078348316560341388602980412973021460985668650733570597463091622031933614958015695830190067772695246550857797641697293275578346654058664671149431225953954202094718540392331473995429524686824222610044326106983539799345982158174603446920999866474456765149586594778041017297865895013873853500731976734881979089092694894502102647470560284160051446040236631961792151669496006451670495589770929646096682937600408365455563544064788828400534296140380550412283799353462793813653927886224348076326038151822912627770172444164916287238153347474809743568153508226150964143541490256171977315452593989351517199042216803118436305654261742645208113303798196433846679202470254072900241993518628849687256156267734004265297003008908850003290116144941680707684565216598202733589303010074248154041274002139592534654992512736771531405259021802024447329951576234816068145015355450418323901244523264189895222442814665830501754184751962084208940137384017798166895188684370552879199044779591173454021532126708422891764148867724009551612399736746375016777651190385147962562879910198615752970946972528180632669710273185524327639600577612914043736884015842383776098822388417096602257516897243369792060070916926592502740770569874818389451065858101114618657662507204393711669743764398163227984100291254346431761743606028885882105568204434275082035354453243721419631487969497239889700606309388850739668223214178605654468937207856708680022479636580873802385973420690383434334775338446020604164000366419686408911708025941108697086983580796650286002311229001133308173403147139903310746380014966673619727124262795630921095508169558934606675265342191862705242901493372978967620696736399059572081244496574161179948823299421758522785810169884089564802187395540594770754089672671790246520551513577402232477144819476205873447620807684355368933924723280585601607629869914303358770998219731646949559373017778304243826622888039903811913306274001292657964073483045395244534119110328732182595009857486147288595734543417162666828843035579241900899405232101912825888345442602797717459324439139081799717824733966074094229404394193396869190911177840110474213030142088157585348610849081154091373095568484180819704546139020731511534816320274244956007527838950729135081662215199949189652315541714925586343648509007337425142305489402185032177825697422502458070223735619453665954608486080037959566620078918322551993957499388470156777700552013081078532825235713866034582386435860254019967150229384633019227970694762921582110619215238086796577732651368549372228770254825589894325981969211797561432138965585767552440715118058917317325665671522547784713486026223524347853052383287529976600198912161607818794709237017629297847715321929220423836789453162071887542641685584929220645889775459838843279960742764016414827873140697204735548905040368136389148528505343793466238995393740563466787139185395608234119175332468836435395986903165363421857224434561416566678807258099335001697682662164200789529503147443925242432303192731438179764425266303247573851389518715529189592375120879689376387593178846600541132853354507792034616609228910878653585280215763300765898435661249871355241086066953252997523151461224691178507387716805827215183416029121867038138308548720080193355922342923808679308629134461140356920297057346486928216054629782121221391712935853391150233813641206856684822741412451017771119119684246465029902223000647857390794002269208336977511422376560839516494860033595464217343062981667767240927102834000672879654370453460595705412930006299957095885265175109391795749096079448827784750747925027298835621434632856372059530263123533372423626239527430793154119675274181560406347449468497952875322727949995427266808257195162448717871319431270545273623646447814922778470846946508393439800576205139059954263525786023641084612285254195244135208283665566489889364036593846377054690586117807237859506319040137000309530185213776913353280696040698616191658525633222131619313440513249800793022590755622712350286748901524392277075245189617442484129980736877326997656326142520282204268786006208437760561212132378464396008602766599809169297620988366155561138858796158274367019722490021368160142218481854171149339856237719058882531274310773710804848848977951210431852861024976412314850657184130125745965638627587530704105652274874968463852326461735380697660934733153850236776245587098826041039920573791715367765300653804935002937381479961602978355178400102074863680263666611542355287126466659459748909027799690278890500035006832354522045364960845669482831108143881276161538675144684901236276727217975334318033196462672221293853499376278694821026588783520532441385739571060647805521122966640847160115850736797846914180116629759247956200625726519447866759737292743656465945788493416946256814318783281886653027287790805350110516296426458406864004810544321476361182456445420386729595828409359038653794971228300076797625093837289830499423240759570371756995230625098899422199023562314009006160923730594939806493920297809063268849284229253673857782777001787923702813441381824613449522710917976974599816111866761305721883485215640982967095788187520082496832034452113033197114705179847489925058351521457322630323827559361405422910052095242490778011011702958492990103565424220228833424587402349402856431044414055166874590208747333687450462910000577820711961315593150308991081612921912224581955970825786984153035998369516612381479371541208278065508871640935198904416185681233781250409850403878055616979153701301909181880795519936180363507299597669342260326817364969803912971299460544947609618267888148158284353150657268855611549030361779324151983170586001671582898980382981784156675294704412297617057981482340449405850433827074067195587705159322403225104703203763210662544271376683577916861471627803683682005334997972236170844002190644238279328584158135975358623568575526428281550934251310067698929847017508182860296871337913271679033704964573276048662773352586824716221347644159354135563189663876205919430420946778320997420858054737552880547708979772506168827694615229676777740220399455068743788765704966844304013972586337807912160291493126323983504218363120431426623412867109174985845805821822841249975692132296627641898850532171250007330197992621059980149446269691357523275825745860622553167325072297805867644298582443758962982270869791321145345164959363440404166632251035868130252634876553877360586047212575752493299423974745329076903462623473273388811965485264742023279379540974205881200279645348230995127436689394090634120400342905211040972830359658335788563410184676073599274052100554591545058917620738170914895524591063216439193647245259177598039741078629526841003736240907166007318534349875281804437490413794723522746885155605475370260540080997507618082185364536570040336211222879536206698873601872138309967045078431164636853010401126552692606284331857586754462033840569432646211787221319401500794205784360033476115497672494623714916556613094065121895581130658320120653141095833508107752144346669217808112768676129108274564157701231702638028680706852496139063235687802248116678335182892271343127826911654410781241691742350924856268233610098714898311472443865894431313815649926129274008752409130062644303858009922542963411091597473495237812815917152013201604870193806167611409694596376040803680419529464115409167011278532426634700995129528508348138251782011225213358419983107568453504885080347757300890137202782614069090795766319771595921580173589778698796583358281368711678258691241016343418582344234952265616481338290027449975239239660852686940940802604969576776005808092438103100420666641430473866268128272210173216714773107816391363740605732422304102865800999898018159250880922435599003445064722703055541047570520083629430093095399235757608528138366351891116597058274152635193258465373046401899250900685400438606200261616687599155727894300392884564683264094878182861736711357154245621732458172320247552851853766397709263642905653278009860735083941904011794121206584524674635510562054448680987310420463792635795401980187479959764736855400449818940435514948200077243421655098693379299197734414180598606212444813954282429626686887504283606095948419794021240339398340768482582288905016169344305800666999999290557625881431090257600060086365609410964126764937646914000474163567667254964910037250825165865054193768653119823406709264506845490819999597507969538524335148369273668456823218676974468647342815449069412874056950557576834374883529702897180821557632257463416825089039710448876545544069487717821770062181536032937594667689842119683638711644649768993671827561936037629546456196091572291283309360231411591020316639891414912401614494692772649882696915791165042084117931145978828967071959379019387239041000075061165608208066590569012453791039495548211140717668097068856698107793781787471765462132831985590916875588189607888955824273643659071171841955866531369640607249392335641791523659490429443592134642839338295965759798418368813947198921461814041854303511899113475085312133123847233723062611069150852451078783824807677727036723546566086405841950307221567020098354911900710907954825032762469157146928144287115366661608630167984222597304264023491698705439971049106822043689756351870376177482428189638475319448591500656855199079709726585561856206352511360951920895629910316761919137016219577267743119596821127236020292026591260036475931668485942750227487037824290436680392984299892688077537147481508167868238189026270357550540958005705750667044656952047637881988423617712547979321278532340966152930517416795367209461136648397625641581396645130347082184523078556890506209328585915295504934352561149422966888517650746703804731327196618125490026385312243947165807364558104844593280966153539095802825144414082962579538247416934215543075756608358828208231509540686894151033508348782227565592358622373724704650195060015676495156070639769737675726503451160086366460410135664199670224452376310750235582031884074458716474725243512412605904237221064995789824721044693793087789238367004876376246807988578954124956099803774894234198660935740062465731312631441539057479641288640764696736315746810291060275823596269836798605182772361858145305785802573457139786969302307573402618289410147203255204751281278940816175394408132103835173404323772306826687238210508979068360642174126349872657773464885812968083142656214287733091820839941389240790086393202009970808714493698334744259301251223218147534364888853811373098998543822709376515565339443747110283275535168551300481382733220334586371259928678093079046900350815205507013042832136348223162947749805283862081491965093504068715550862799766651068979894800258173806089145787815029323582228120465373312315807491220870376840275127273657066461360513135596299958378831863111292444322046084664755058989159280009138995644044116359386510700265305231194316632467392048647740476524343546570221131909927962133190870897511885555843511118177072075066536646104412423588636185567695393652458425825979897851254933526379126151492591102387038250147436902157098860979777128414760456082414914964766036808080147937042686326897441204907285429820023272416984507261820085038966749516645180296243236479871077775460935727396839503675678564943209657350272926870743748614931760670502862405714736213978149719975973203489200195391006641923390329778186097040986146276142226900162137699184271852953003050380103040013194545252356851774960049361838695468096206396194999716544659873568993890052428155543428910676046816500976915535355117207022062058282061271302234195177576567877010316183441059328330697910639167745051070921062548399405159567494021175659869881453058591509111893715748041734996155325988980178365700711194709704607461161392751515100710205769094363336245911899468141534701254722948386143715542010726760030242175954742513491405308133683382467516828100078543775706698835829144702872667773266458358218779324482856675660112692888019367993052492087768588877944377229609060347631208447844011316668026255101657523652765583392279869619383325199883600040199977100467582390394398439417292985864490858647363808747603396777199647750829065606996547066349732872101465077220584564226525550777614395196285583330958660512192633423986929691106038984395476517042928586528858362351681197981999590398484594096586593026622749657672955816264337961070082100552403669254699688135107508932925943349642021066797888623182148643710139234728818015141049121274028072681780540877053624102266492971604144652075733626981930433654724044357785013597373768366875696549381494076051454106802086799101946055316695062621814678951169111637212219995116666025480590270868376524064401895310296119008680607918003385111581650364581572658335879424169425192679248637988357909482570297665184333177112046701467360499199215882124844306755089385409840124859923842654985956763952873773442872149234614069993949130684081576642985292277474932345079398420133924389684563454560429528432289648362669309758641674566257965006028903731462663668930790096604556996034670997350404101989028527940558853880157679359397617880483779434541756237987057711588712681920074586994221869851933784101252880232882155479094775347137739003406552144570502689362227645624886360032034090277689574662027767507356579470387090340703048090911159257881889771024923462002190473872813342080990692020349009936456288711638958672297589041707983267726426376726621108862008227183583801163563182132629493165641245047164497848191005696988766989700682700475737192787703937560167773464128232168451519870284398324353403540914032773505177921045863181777848911101369454188951083537749459912972834296246904047108093560635671922527669155135818827897576562595642746043978827984616873069976252680084996579097525545279969722031660667794293319141134829927283332671295379730285680132367711282324106103105738644183767456070433799702053310890936371276005095828933757338833143108934382003439179606939965841441550663438589366581469239606572598748303595773302789186283949467384792835521305486047773133984221939323105059345012982518127011861328511438419645981885600038986747430862083641271112240792611319202831263830516354197789682920182262805753603043673439138499507779143003090335535144930902702492890810969881093226789490283049083950885188231807631851378705402246248957838635612435581875452199830597516136818236491900553538957493151266526948002432474379736246171769925304912336879296297489436368001290084416800967105004006767166029417826635207608694557354729672261297308103340984934406453655820882279850790109184875776643147454681893887470150497583419139861246317719310767309043322146748268618474754350246800583333496990635298631701948394144806339704828473608712706933832338489347777371139817301316064646310826216031645972070353612885549822934756434494396120200734485653287108285536292655602127770855516983258223184359916926984430890068766242651056978670340547917227574406390390362464774234637496943472727635705319063076021671821888936588545498510296871823173820943790848018544419596230393380532974970912150454162182270983899519747981975771453761666028753783747528271035860306416194554018996028269300570517703780705825582444383328062856430290551408485177004073455733673354929473323867101815618861650182465707513889421532174624028656900843995207352321667734354994630028932961723992268807618942549068873259022755078439780644482009639324803548217346460910413739805312470903061216650621007581447705209575933258795706670604070286281942053336936727817889328114901360084592356693786872754303939745776276231180363457152564156392184221546970292038389066344719605030244366747117154396997931029993661137723054100670036984763497696046377316812956658177117322621361238116287135393743772760411811531528657666370912934612597139354722908866850383367258396792351996606180214721330761403204290354191475012339843073239909114619740000868197059383736485602911013768388530633900511513291291359082216178451126787766975990957219918669481473827963344758459297532541632902593981372038376590535845066736643027574657497918103348465739995707566071278961795536845397903419016465544717840125993043286878080096762975582410977697198090164787458509984644238761966875720409709943195108430249175253402945765239201472465460812286165682211617822872767002854675145765028946072178664128652064057900563596025084830674791699742944857865970648376670496184083570164966353251720134136963662329770478182846496884816082056889121626547005861684791480512574946403659535919021790408494650818144296303070193342522490071346765586535011555557552772883421447940948083541141291654970543058941781664483602052253886595350680325921035492162820907933543243551469698515924786470491947670679049923256512108086600846676824162181208494054377145341983024982040296032964873809117508109733947497129391824527852888877350201177927146158880379069060922228674195694795080598189466379100564232492013191737605057344299158023927759362976203128985380184124260348484496707609537707861455515183740368253650967189871983699611123966423953559436920379338168078269581695358100484547327991878160955152580822683545831972700391542085541150022670488674436394650599162350885730216072301303134155934115010595972149166047760408643976841627449665134818576848531984339103754626845942183294527613108684474359735569388243879683838010228659873637887499138142582585890152654132754985977876643547408927092845396483338397802881990397627157822184021459590302394165082602534835194766783528798895256505446696559843068288163882085780470450797500240362100119486293632151913000516966483020416153756781970940925166527265222105506198570958898478748158696510031980773709427210730863947644410052814975532511652288112922073383412216465006233558297939412477518153577291381419519824578885422607212589048151777823939207845993339815842561106287353593013707933652249757714069572739736717051132116681056910360840527730007967852745173882742110110788788106602331421107755882697108875097268090681419666761331561321115499287587671019131903494834355302048467139381146993530691379333667012146166309817984652597907736149647546034768585507149117257742867556857312699766133645689045536324754196653513219596301800539470087046305059514855490029208765109704634064570818917774580475523516918436460570683468469934918456551200126291267514598723075620801347479627247947274478362687223570840908526984748712624446354772837481131620955647120148894863050829838500530495007674846013779903900022545592132531386090004161305430889066274153786497517627394515145286068258114686964256461341972722472606787038924983306317434154305525207431273639619974306804560333354854366493950880535088158829170112895768976250167682807125329704959930043854112688921953148219171103287858587675475315704457689585892350826466228841427898985730121210619137740842973560054884702486532093099644631815305918153217932567101414177998323343504715498697565570241256032467205507309229717092157690012064774478297354596127400742630173386455962540941179582348588712665256349088923936577316914827399671504101791353917770963352466586466781509867951736814615595804513451623814513948519275208483728619907821916767748781670635540724594376093254323401985695913147363067573696264232024666311527033767166601208612772988823269889839053633269782535879905497548117882059152326551345470555466427522854753082752510477657897018144983629768150184490133202802494891023461196491758824373866940412340966380775565298784410987444577495462917719495352825490059076205741298508270096682356428531415998648163506837939893304056027723013003954653147645529888042750212383171074909082703929858753832348364803208579905406785463544225492888730749257934118938340793050150837633337899724986838489852230023288358701765965360828823083126346447980501072197188726556903783063280020124869128694690377032222544674608707054191485875900876379272656489070389220677699668462528460844143617879195030461898490394773179261795031143444989525160442031526319602616211611172046948555965367685837872936779426131383897283632252180729983942250787693950854172707828098338004493668538216172023742831541077354334104529154406077035076148258625070966519819210619455207805949403605353325233894502125411770934808182316998015325275186639452402590600798773140074897216998892736061274520153530912552482008922062147477812775214662963436930387425251538692252664401790417874213159381063874765130376144982099537302277307391404181363432574317552358992384300255588742289628401162914612748510842093651441712922218423313385306752320397961382848781504034051056644787183351588443621013554779193967643549491008799444585594691579280973920101925660781761582049341459205888650718964607190513012370060970384106398334927889470965997456861393856331358412544535123165300186669068409051448868491145619937195323696538127248723279068736608609492512413360804705497402254779954354593662727662092375977482810944316369878327841256274150693920112566482117819457726333094791672820757482975654556668704135987145458974210987763571576855528746975347610731620712709484128613651412509572628213723229507597570106863244079420735038704015139273642135521797198712291730391954164132019726839576115693464487190148418511150448240349217282073362094220646349792421599151992888001294444080567387311525573456861635060462132327412119417077132694352126949165765302402625010386421969941991962423450600945041134319917767177018001501833191605435405193220712928384580173888109706717872507604986020800786508419910361168221641991237821106546716277652872777021240138133996704943842007079900137241902548365975698347438819089078959323592021634699651457670492613474089340784148068047256344166296478693437120859786289041100567055603409811853486862618421579735397881086767330518505120028276703491473910969555762972784818030027832794902295113140694755398040256377674861694508268130883887425110682387848162639857859173876002845559845227528783698840173035525272250703202000557241967956360768198539348453399962753044168423102841385675212290029570657056988538664906613177949475322323297522145994130111546582294342036953124754134533690168264744244718467937995985744216876428525474689031067970143932675759027214358716763081749059261574725236708926277435766544816245899261052907147833309048198222019025789861111458818293016487191751920924822345605978439266008437741155125970175477202615471830812746480895512580467906916702212393196689418923146747327344960222044938927711458962042813889028101813731804100959785328368105886604132908879683529267498435215633559012705533852030860245298186641033965387079110465657226659718981851925012918470108833537955465361762472871931565426779195867160069072509130414789388349078462680877328147678070650720335559213890426792469500752853269171611446494337811576875816938477110774406070388670334264014931234447398615886236008580465875358108801479160662957784895404524534096156188997616494761371394238751899385552929812781012525065375292839533688650176098507861871582551659139753861513116050874030570177781317835230507186866726950176472425160369246681972759827133496454569480959674530319523818375383810001144425469033112648724870323552691969619322016160729571410931528320630368383462763200104416692212232750795262986791175332424037000323323419484780170544312731294884810186469590500039170756263118910535178171756948204916052121786350979037471129385535943111008440213160288085819000908907099852812638190120330073033934650863406272007253071213252345042038509472274975244730151680361349827665199666593806250732535976003378595201129804511886020026833439874864980082931144193648385094410586284111361672439257416115930497079976839657354021380958834454692788308231602485924369838030303581596404252916369550319512302217598956327636236447177082641453040498513801070331491378973100463209314167667577924796730639491607856854852606506468507184217946732380783783113588157536344842887789928807803645848690913160488986105562261513540598276543441375054005589637936350688181671315688360570563357786961923730004920418154283002162861695391564550056792536621216847877562041522406170264947909323721887831233126424168488219337896201615953123886143261231439502217530703996970484601989845693927604066170817858515803287961490842546722755448293772749736857046106119024651245622916237776034688221311006329400115401682450808894738935517070053233520389962764518470788121919127247764381990069823569173369794636050423176075737073888001575516542290354158542014066373652679754806863818310031433594196663376470918583129213262767463795869336284225738880418952048788900624223775101008147976590023636589720084509816616085562257495254242896550555128540962557845982270854626446561982071143884864225795320700368723520702525851653356090518900450562055533267889968696860494528256359362193056562434400154620076843071947683846100714551603503085223538486144173770764836452117424710363474988393828761798310647136548819196954192807655275212313446718703500818393029262943581208956813493012379104599219813616350045554878948648457372554502299366768075412032486118323934579281750371539727102633933020493057737064961634203222870235229346449256521852930126969228062428493018943165166447167577592797030695170100801358478442790936846208030671905297403748742563752716436555294274911848613288797470717637869260482886082889685120470021555136874023342561383495572280431345212844838699253511288289113052414683597774134624040083381205877001086382363052033182842942074817117153428077407048559552108154030360113434998729270967765825274419510149207715909375971996473589723272720772048799953549381939530518866587224379904408734801602524978663334127672124055751947633904802171716284200885933965774785175844668973635683788814207418503417995911622232086123221097531456043318311368467017639155305507382382159306241320344469258902749510438039030597820284536892227316153564341419419513669091055227904066369519424314189851776299379455560448887134848443159405555571539728677698744554124693536108964661571842848706632283025973626856328860090933276338865272019116128440527660568304506061233471066351007929313085647354199352718203303655101759047962923810377729852823836518799950763780369593105528189436837925114042758542407111702564184053344618941059363772978834929211810349904323169038591837643560626959334427076372407191995910905846660140570347086665906825709213316193793212190459839927568317983798015189894839437981078858927193522967288875839448302183537697173434940570745431613954658259854076454430015245356689715540270318566080684181941363266372838900930438956483328245779083581218718074821106228763633635170435506152594849010375243868822757832497423684752921819591320737108230659822745485564595530708204708790295927888232700092475115829948211266683667054428713655611424923142335958445217908972030200402900435075213179002549467112670093848298791030382357703645490736119693376798948404131904312942544134247843640572234796429179389943389119233397116596199524877700234751158237449825658992735286972083059111535707890183968570999890872634909545713853117344397013181821884384188292768736391587864800875556565395336778858841413232737829983709359810718136294459827762065468962143726093620167817210424583959778044632203703958200447825790226234381384959796919221264583645884264208255937413608912254244621860499689751300313222873540777089563014972786793762601629601161099830513772400265763845111313967525347109824285095666687314343513291336129992550509741203592586274270726612312777220390751508522500904043041098661198462165313911060854353240586750683394248793368499237817325494921797226354261588897389067116989842530966057704175444264713841072162888866774819123256038385096685976745376532363653839484202934501904018011164670401489113652854926504858853477480279948761446442169653732961599457681166037954895139103731998431730170749128366096372396646603838019565595395131237971436056032227415741012385314718462968474340623424777906173379728219840818603033987547965361315444170865963328362876009866179121834429910988785663501954876970689146612937818974295047313476388171962045198017563587554213190469205111002990796053043439367716341775308317763556476055848443774097761831846185714389342857977135608413898623054844018717983875262420571034185391406635090800442390375022100577904595093419579478438656606593267001307083526316382666289468805389583690020080512455762130569834623232244116742308128370386404936069731836303344534730318365553433548756386998540956954874612582186778548387120091040788935058355688878195082891498162033490749201508566862548929270696209329078003809275937400507790532584179680587449125276049252357496574972646008143217023250040835577270910296587883166082397669469717909167160916949301385646920156216878315600303765782534718442584774011644599515083173938356208724891165112440864961591076822309119222923880027703865407536486078131790362857947632260126344167920234916513224658842521860482566770247104888987170228785081178557223237414001221396661458649927220006312692627791348793403142412291267272289574711403566533362741120159128702627315320292611957160731891672961283827072208568338008291119279704507062859525359464297203955629735798579656886296728378823053149119788631683078510343939391541844111844761814753227041978323157022942431539724586458232224804940658697175339809674571630661989336254054605462453873598840852882995296124464469546543079923666280767468449505254428585961630339235218800335196391169376292943831226243651611175580176851321779098537476525350228757342496021658365495028408028552917601332149407215699684878369322966729327622857654209436372496515238590374226314187028772922618074160268863697224011848421513763165070882678629097126688051516477042809554840500450050819821302000089392912574944307685913883879051737800416607117400338530862812222550537499395214705795353006811349091573392063349292289208701183875155857535952121649704475169384982988706937204677990439899249604740203064124851480676506039877213838120261780225932325051389572377101549748866581373736871263304977406205228627955040870617989698309033106475403671530842165013641486709106693924852500900178740064432230074395946262685706293167418621311406040401742950707640246519436136040068467994306580369189648177376403225996648726806612172924084222364360729234579821546056342915913446074829611396778255142825481706926176059343446672505477565598342049777077843030501886061750426364846540428492430281235611262836642926899938174417035715944594443230942827231678356160936722925432034954948142189949331232117263428225603779520267682900607115032875248121795670465200253168161734499613340066003888889273840509431499472677229391232647754541966163216076129297942075612199266605513876091719496642778571234085248799433535957423153739192640105088121707802549272294625268176653144291203091059979458127853612329990663064809504053925330267083428917206249805858536512514983430311836342549856893992489158769998149918611915596073425908926715690392624878888285222673583110738740469169960756457455764604893376314159032567133642009997229692336519632925570897810390409900318146633880224929127967969645946132343741147379682470722200751111973707922547810854813307665457177322807068010941808834684114400765930449888451692730495668842420107426931497614134945637425250150387646516953807066260129860488290520635837506993351437383056966110758687973258535772401946177781024415727860947845665052124794577009721375306136325642244631446135339329006288609046929035011206738840740093356658480491132029818395545983057839752221788013091848913563486712422281811632630595190605685090299200088918729011554832380003329834527507623040569701223118596579578243006487723297073607108130046846832503468032036572410467483012357299806653232513061293875718017400509377941725150068979839333405130380035342168610207251949360159619859539853196640905475348422231764480623121738892475854707732100210921148143742107334896986675850404837518075207638793576635118309116961261115688298023859896622713551109085072214160994599802032476652317332845966604657087087184265296413140873752236739064482947656396878050985057168616953141505683871468358269831450044107894577541792714948491579046033065802147004419884826877823495756383267756188440363676891175010617165324644376335142440240887711280261638480875219866242168085998912022414535450241535212600635868615595186734150704292648839751335047605696738313055238271103254218575087015682781990871796016551211499701396480449676579314239617719897608791942000912026629939657164489269945780013556623783958839393553804912068723408646854424721619635719300313712574211500289422261758634093832081960530743042775860176827695904289568527908178566546307076863651966754189121920489428843634236626208493635202867946409660887228656583324128221868370585764930521386302119594855483033782127769684439193042518466983656889450683744776635909173444252941824238181987813918229614366101831146845153295138317906497585395907304860473928292063987653048799113801480040879785879136434745857397128479894448834391842126055322390176300266282020605182865203628361006337113465572825250391934296562049331256072377702792739480018517121498881536166199958810943650494888180835432036394575220182129080826355849334944047092477497186390224400145030035565770875287375986053273363715919795480423497572443123801624476165647457091228117729537664487484801275674238961310940538552501175626794180904806499691187623660610324709236489758029464086519637563084256960093265339843247927705254932202910646333256338717578563216119719560341021618828735786515035717575201518146057968046820162872507882099154547420080312779159902370786369481157740483405136564644508162716336717992614019270768686681909551519862788194635169436780043438370885731883430139530196071988418661167551385512175197119977488417969703125180547873397870759705886735004860750423225491968011530664467115646853108657264462214264822270861434728537854490645856189585207892298498358819294183624540077806092585004660206380754795451917047739411620717225434829950855362305394851062287920733507156793545024806257481258584686742907697843422832367884086689761789051216747030958927279359651422344025331936461471035662573653097987138215752495479756898829835930001877959428588399340304314241170009752629960185776255084166795299621984625707762157745722041930452683645085308876826668584346062570466314917715708644734782440587827518875184109227654200644836554229840702120555427302087237412973734599586936496289087667126427054424301259289511247580306905840467060782353150013722150777013933411858150852050831744954310929968170810749787007473230879351757307696679503638676764790828559457425508682758328454711777314282321566700068285928318789771374903007900282468883528703847606343813874970941768912394638009206933044566367577126525545557351664602184759356844971657674084645214371639525891524728872628908469801893784137966422465443668524541361314686815539498558308255723172597614274434260275728969041932592088534937450522822359105058474098205735105036466708331510382621469962076478659307076329830923858716532482181449346123400738231040917941486207004827550036030760551734243362078125501669959207250077319155918510865462507446746042455995697222268080285526454403438009097022205262579182574842126868563782435726899370794357131608165758504448834883009199280705324701853327305215898318381984685742488717620962929383900021459928546488903153503745767877383965041757104232826514286287982241929208250635012315784570455790406795004943739526478443266041961938125958389962504501735151351396641640464524401471816330260123671300387471498714130438758934438867376056999554705988304334026762459790814953176540713989936298528318001600821148716365989846196530762772353705516243278287034558370471815235500261924229652629973066177696997186238813179952698669250629690755651940184418798583130253343401469301576799314339035289003188670838113057562762137843732620219093284320166266208749576038831040270930321954139343189359121551827454134490256373832250178767899216943625089648107540629019672801084596489460682449665512979566112630130188005241681004123976655757277407577541383433052680892361533065454216442315824326274564537161984814109121585415856699789945880974303019756096383411741723541631872241380965090412783278084614233345950029888373066510999768847992135972118748933527550233218257175625724663230228780186104993228972498635037908481928932008393904233995504492331879460959963217736743876027248259367433320589875385295014665705620239314043102585809460160706114355499061129607890583176451046857979985035246344974747784711723437269356140446511525938704872069336346656473721871743329189360630492593810427963161705972656588988343304571076479644901947201673281353507561766559782702192595047866103187657841999586195431761166992076127216081574508745316243636940330965416124922729091845883138636746042740063029060609498187206109412073396433814464330070013921012254155452560116286239129443121977522794866703798190908637672953985436549593773552578524862376219420131575140017298563695803202311399881552214899695343351019563489103260428480559977257029548643659386965765483687942729405873653230843498201817662992026994349878810342223224297387017265695895362335634338254562237961050190221957171722423306941059855847846892762116422321834520766169079212484007985013244004037565060447529800402606485449479970130947813102737170922433392954294917464704101139304976697580369312417170824477156083101056911283008972316730229405234564519603797715745979091089167474312517099937099194230225824087916460329661834819127916834751050356228305185201786958466018101508633954950972031273462641000862521324558319576330003872242612299994400918206137141666015282688267656527519885878750431866173776760136919866151063312151228443965905712289769413667720886183176708431815253340721870331527107765337485800409475285299478064267391457714826224144256741131217474611712568698621083249735242470251204203920644643261701343415629028201424045036617678586903905204705750573531205471639476978608219155680280772781867319010610243384751037155968076404998334006752419211897938601751843777546837042000947207323048174252270980216357731331402906956304706762168686868118626814713828329765952240444180801700818682218000216353564639950188532982127147206896381612423606472727473075862715735745121206939955722556243779955892699663152708314010907731014324533242263225675401829851253157373341150248515244152271524532968514686023661321488557097909912729681599000557966230800076178896005971408786327785344525062838097620610936411578218218777430022347402485113349579858691868246552620425426397764719805652743550918116116083600238923029965953972028422034428597645156467553771129617604811758351196399026456944002022480786836687736402698118726313653116126235456307506429365018428260939849857832951441821360553584337346608639275046841209925863442777060538279142410797627748710652950055949411059167026557521239085215442797221218737090729477398595306299956300050954992854278837691619081112446128176877483113507894835169330248104548730733778740848788781354222273501247005342813488395729762428506628798556216426545152944819897121872618465555462786496993360814095672154472595856331225407750151315082113754022253091995363565581703683089814188738894114279377486066967479088954177315661192142849646271304201366862863797251661450679826382370429059223537540756969688753703411012801868371077936854761800257575257322739752632216303465738901081130849164597809263644399836540827048894745084031104313906857633801970987715173368356374624692586540243220188729358518167991059089980423916419978035352188995919416641925020853942464642094447788225861555269040501786797525511206392350878779643424006444091646001127259643704620329822317825458040105458991801115536659715833522983812802677382873175108940626773470204883428101863893892754060499516897650320851544968264890137460912936632538187856038121817935993775844742468996454782450006593888370433342990868229964534296664375034713992621930736246577484857668800696587054607416606103577819565084325645173423085868720501298673160349231676010742482545678282902682581837329974382387027580988602777544812980240891359379070630744074068557829801099161845126232620717919270744790766659306101813425334564391489135382060998743591304348599165569971324337044770375327084457567441285951213100771175731951688096667549971104045253524462898333434917474779216444521362091502998141229575566905547443512438572718227623613384790217835233824802074355117665326965915590024540053063476805765124544269622944433323901999236940010357684881160244581024517057167128235720166193498584366225742250846072779724322457069994482780587368843590711134144758174700399097372807234016704205978791551919340867355780576156091152372979012980207207799728389462670346154104456589794945046131828928343428356987429082506585986540557629511883517809183995459575452391564708127643403953354224746876160669227281166214007978977064602188927402125840544872709851019598476821433858812762665408306535012918772100064235618065439136170452978054330596002255223047456399632651348237874571227375720844099081871134973337787655502701653547515980248281077331867101672525010596036660204293562100389387531490906810384987319718077135475242001826761095754944968376081412669429333727327442422483900768941815875796903534869117496604589870020640221006564880691126088556353396673543786505584869947418541576775125740238566308896547567959049369227593399892633008342277010474194402441484990328509653832787845957807516738660501528194483517481952838912370712096427783052818689292095524757233990137265112721881440806382387227734477026292499844396848944662445909557029132802570602507492263735285250004830325276338676480148094665826181879018131898011814959430530345169988481818917009601342871850381961637495329203860691244523517933550977507912891519918864407949060891080841882971293243929116399465786311945551596373991921778536145703130313659405220267470558393117234321247942345809583324367531896203599015446234418111095663647727541898696180266129499659407576303146937523725024721092680815925214669232118100837655352805766961765131841928950150230570295269224276557205798493318642780115025469386182659260486521502596005424511097529839544977283006975471924260071682626881485197469851062632574103462327755186930618550609662115831447849569810452770676253345157933585288294773664332201611252550080360017049880957817676950103625958697685938068857948884211115688938814807581085748066079146499606068478214864204296025114782728253888082080714605786443229754520757254899738744823730246736759857316351277921544372064339098408032417735912583649993397683326658996737371609340390220058623984889141722924763151438195474567856870222284069362903403282343270927538712800158938143139248432338054522010706096386725000162227451983840759364070963254578645380241462073149206614125455499722263800443163465200251539384724855886823602048468066366935030548920041609335740545016533684808659387679035812300133017329521205906357292383359677491754496864411128987425158173302333240298793453854847351441774417424542269506904814627097117383077587565199775441209728759931457705371835776504751550726632329680274171789858006788868660208717602138287835403529658573103141713877743158445384057211673663847552063248362612506694248713817116225219005025524272169773386299203044635374285589276943852235761899890520466149091154085925088278278990009451768739293042963430122887007807141250724561272430372335528742468064090257047542590779968799034382322464825212467197590200580541389314459938637102841549060116610672870625375629804900198706215049975573013828248391531434291000876897836585738291902454047818736618794983137683490560458818345171816759548609617605503017022340772904050508510920585486783492510300013151655026545972255356103607588695987528475089504256888596121202201795597415969836245797456212406831348403159000188182054103122189308114619627079627460664574513077969418585201582264722405292443875280310370538655126554576070792740350455700646002266241842927981193621736854831028858735208607161214914946046845441148810233239511444264650361359271055268641903786171154244272871955216183429768413256517250300800346526013959707380406391446138213942641407346491077972436624032974311047632254243434784676580707316638227083986818983795295531260953294851121167893648772373673082079229253959482769565484772710361315918513960957475854671496821294521814000677252705010389063372241392892730103376091033967657732964904355148249774017548110701890969975384815383276043357426348808983174545400383789028568266886756101112031277059533112747705113296104968411490610956533019877862617419689277930358212423539957942326445365694653832990212535203202934003936408894087513966818503796302054718832620346995207244101588578632986238940624353228385337353368091993910378303427016920487647691991023392756485263688727652207047300559076538756369738905364865727763011443515603318511996138492594250714125549816447075210773346216414953051297707753808466905054811070209255404170462182938902259970842997175331231666219049021908072083724223298291762339614167341384403965813707511075447885938385425048881461337503936907815332010617294055505076798586875478953117703109242055725330873958600459640094760801174193015655036625958564503718889196520133938824015298326929542837955433902931079974072860486537572768003918438162647327910486462861641164320402545647190688505793097486734221458365734132502858639431859901895634659639795525026748452263293764946026415640472061760632088986423583527343470673298002362329369873014982563634583404441837873709277468085041095567235439227393569890355598761642692496096366348554384328959636371830192660980345812003886898052757390156426604807823285374146950236914354157021989283852515040200313844562502307782006448175016469499813056886216674303814002749417255594319440075890444692256373514504453223023363427783876723588279527452012957874109320989806117191846825815605906871504309545025291127756567162784016666154866037620795709643011973767829579724064092410544965391439017270285168135022080932605449395167907417891500301743395171946848414190771023819857033355878447641209225121539049030450355143643947729932199214780077799490131455414532349304412434098130291743285072834187069385694652250567448132148408399169034859210500228671417148051397721766357844279377032533906820833679527874513968194982211075848668404020786252565192320838754368137782775757241030878220478206891460682863376097050641035250993475760236927726591599819911820536908361820262911345582614937029638348873645401310419808253055920041927666224523696846196914749942240083564915097626194070136835364332753741903436399938029267868870768779185921954983743265024730315359687092374206084770409642966610796918010168926667722241367737226623698027824834631563864484909570100846848037337839925943095528104852161388920791303765449382732306361150765522062649544952770891402609790246972800843086844594149995228516881707396071809590526787821906654021084761130639480550721286403778849374544644723583452833882315466167139604038514457062442478741230828114991965733743093405081477782589409780728905584904447634347250605967487919807931769061872748398626465566771802419602434658986245401661670231930230877577589019734550726810222880319791588430814803376008570522629938205178188825119936276208551075853326100532253843227045827703578201251669189585118439576877836773422530618483335968124579565481342265556710821033007762236357964959280984514166593817807019454632125237113689385099461654231412137506121835655228350905294100548830971854337269268642638257416533253354769776328949222422691190846428373699464352803534352538988315347424791306633730200143238183562593303744016540308721911582538194256034729445753914784032566831201884932203030955646414149328761356971708205009165012723365543607420208298083092219923017021161568419221154017564109482849942947531960048540241813041509060789377188129885938476263072360883346021482013235292480697349343838063601408293851616474827285093988294248388130420374680327494824806534993895478573852127059334894928337081373551068528789745961202398262244586615419636631646789274133694617176487657313647920469338883899276581634987415302384210592582234525772162606308881260865165162863701234206265054924385363480774677978673122702588519870147385220080206436212236325755418812042591932429406440377675873983373741210570127543037856710873649326218938479055106358343438741824391852801834024513463509977169829449575704156386844030000820744240916773395118856592659697032546462223005852122010179829025368757405138110840321560015062143381177151290247913202375574266540648728729162496345380884869140468197230046148473877185975695235966060925178925008025285757917169481029799716987776973808420152160988832082563600426881282373241193621364005924238708724460258071441152576912400540707475336955242102806172934537944659300835072741107710481822636370817113241489763125551811614952070073048219316495871589654646648385116737482087918748850552165826372860678873047297477769681450517402562935655122112665288669435295725129829960416284893506510516697678737122678835494468517636457115427390835200833008989921392598021159842713253489574185865796114413994182992606667854991684245315480888547854455940524717544276773076744598537211400294430392340954902401979846999608428550985307071887362503740924975639458455427674198762946965173808419074475845399496769001996686459156862767407244596596651657795680328385235402759128704361832256250741188848996066853712646868673470717352105541137909158672298072719357448931173141371081781251811354330272126162839881124430838236949115392742498207898935775152637292398685225002455982346540881876440561802711801459301836445061927328221602783592876811407665007632626483107159929762003841512069118929593690991676404757735899352255970355206369364680302032734775801790366481653240663919352345944709702303477201313071790595820964066080963511433311011209837765512910466003972388695722174639158987521787403488682788799933254478720246634424156572362253027100479776459769691540635569395189490439649564645806944034274011801372891553973128304197769167718753440695718184418263931735347982220033258615231149486334096658142838575669449764238684256045403864811710763181706131353430842694233785756766407006166366978572577147360115192890151034827785757685162462933871358296505107800129237519837033179412526369843360678314449016797191183178629203852552239601767920319822523041660572398320614155780634843542990057966331240599081815384171858487437741254799420232594258530874360091008110981949425166342724259346888512747477848025792656042025140312469498374647807969080070322203722833373150496451656270863163991093197683075679864285109402424128293212983544019541385220517304771170063860760789735030474524534434598801744535935510652258697689150206015047151092278793983208578232707958783796658288055224948211191104840799500259688512552893951932933946652857111352315873472276413987939724350816594082533061321561471738244913705368854458950417943864041796426541621824217602757421546972275798322336740201285999527530898198024893012426553664525985672038602757283224371874460672402713039917112171106816495337275955460754539286098123935297983728412528849080548235266583103861981450644623178227425754218444682019521217303081593949173018827611053873178728998845892009607549091700876298063054128558276664054778998991693705302978120389993220007067754264773934409561474580088839129725367227727497514988916523557163224263515842481876405959418579881736891632528815543069276227823921591135294927691546679541977954364232324019849885610147946621144011560294065351915170141831641806988521856497403776755857072410469157459363240081485463248766211448537927052184971306464594443712732641948046115523787043505631463653987150148716942297131401556470358569379716782457787600319245077768123292976963225612637201432453604706017267656520337397068692210628380482638155640357116737813491350708001450850389242663104591546365612500558064218094505957599422760478593896806335010951925662315612786201484676479356810784219721498993308271593415084139123303672107020152263266295511577814706376993107831937875974792715204759623203549544227878183588582976950565625456455476233762228522951191257297137453456416408118335140171763537466094652338504828489418316922071122598266675663883217456828783511415001705498114288793823505156437739384140654619390126000826229887506160300522252403121091330638697335828172555724868451489367833591174936171529667433856863717349687730421041514446197613011104763839313914261450734965858512074260564871285129123876340886848510398615013645555217004337543454417850081938814455438093145891710688426109906564245600722704796560325473836817696044935481060012747028900075801038109579346068361417647492435132397810982667811198800192947980446595630472036617756362619201397561550028014406057849847612486997447781070166790883480161490065886883033141875328413326527161489883749460131921278536408635046089552515147623602982923608689243420398861665441842991879150086390014550548219987230094709084629553447498669657428209905665339946824462359469305668485045372244072450502862768628704131667855298773894009112050378793866188945474017352930918326523413416933518833446372280141537305417663812621269403074456528210973032426868676116728481460550843584573427933106416104784439717817454609026979296372370210918379967207587625594245938643674768542430908943891841516469763996145124566462890537388920111052373499124558590143529060488836400881121326426391611970122328069606192486059626159397439715431100888501028561891111607517192374518049143697653918014367541619454334974917635261204450795406830094710132012987793363138103616187176783780580650927062906476939341848641177360629454137505055051645065500528459005093471042598995577558512128887660033056418771776975826560661194644846285303718424091855203534412537984762395097861464170566594374990255881106531479806966439545108326263066868699639636255144988635061288285255849788223902213730751528258531566896871316324766695478916216224410581163329298852410106919372427689123716686892807138994646085622640492565957145459279557568455616123016677682466389304494575605688448223068684824318625304720906404777030152418951456897104070786095457606202962809835347290678331525503347888949931870205291018153516413310601959249409577200801852722589505581476765551942829330321197278502145443984674809382453579358929752971191990153846818862913152998982134901366228901350997082006438071146418312242426527323743111760400992514606997596999632711078400567673279013139646244692607901410888120400896224085223682072742353976225379367122214658101914399772553981583635824416365613693986155408032338461632547088704007947867757909298984854745102784891119503156081956605992415307613682152536598888719031466698615482525892454103337692079077383410874417258133952805216195145372281528023376264411382628591666625919294774021547685286862004698512186112135823214405297794256656249855729428585327682575467153231349036176092674416505427971697433836847847268383331586200087523590021182592669290217317710209771053339682206137209052296522311632211456594310019755968035354623663708323761673517597640672251601676164749701582777646194542119403291356311988933337174255145017731657961914640582926427810066939291327584489426329265593676168057234934609627921693638020246484751286917554241497768931005506582001640374569769472997086053611645080894363924927924896257071763294068800116713055920260551929711542318846437758410457642791784038395736238327556738004111097178009103840631945267517254041539157776208945036805270687230172119375255060123951698932566107036364148003096128678901598820613815820247692752779049243541049840152243776907851148490664217317506823140600748621519509174846868784909712072889774958238952672953853448570668930584429026599438075114587723423027093004746114952698225868535879782322040153048012987224404023491192412304654073228599138491541143385196035005580130489675827788480033224209420169811702853504808127853590629277310550405170144510242754764980800792774883527076156982700059586405661674639897696614815379636737733110320595652287842474476865102304608182279411749322191008887551068992198663532699306083602532349490233882304952421684699683101190433604991320441244465992736687390161061803239703434849323015293793712541433078189163675405044031862151958837064440206607725717216446237512801341248706453613549472315734671363215054408457800711149926606976211763904392385652080980974685656581379146021585872842707058963534998489700005454308977973247216468170050429804638578993426004210965542670886555148609769359617053116920189079387030178556311726197058959295155436545343746725358483128450534123464004758570683937674756042880845765709328879424216479320814418896218134601247710566871135250641207279803942303992013802927568955970164585214066463275087973602632839686561626132147663513721181100170409078015088687664139876468704691017233421745768830835697592183000022213932803203665866310914988707706228941512935748409407967595971122348969203192801776827510077646720350944936931298724521289436847759702723824519917951239300284650623701779220926687131254872515722349157989525134319538527485839418009616171044990475366857364739502088078647591817917820723383411899688249556977923859893705622322123388677016233941008801058667786690587815775823616421638434290590695496588257957073657841191575797982263163536818338245653721912931592353310636853596090889142116990458799514382589466746592567690583127348004670248791875653710730920784543434641847561824723639760891613055242373050535429007946342974835549503234993076905647413990263249304992199448672721721738528028989009921559899257247288394797728905582811296641076437286625722086884059016150986534792642114828928234381048810338582381850886822737695711120482122333826480963271392684833811408807828725903616559838503027744642978366741998554294428181059321394593851424752932726328385577085331793527119402488100504266348541077992434319258612942433165410471395801466071501653098482142729655370183114768898219101799631415417770487528042579292040342599988487264933601241891439049548555106862183150870687396280050708440784091861624594682803170940975189280818430008362123058588962870407566994528525577064042045074686177660621399220928099139170507593275803294413482958300429254406928280785894280357568673297364924958422543259652379962242813418393109955624354530355376136296894899987394387961179416388568414285895465421053257317265294939390341441959451089712445852071349616288004057483788785956979987674478373912966474665006679167728973067606897224167316972100415532630602389859039900902715985018234971414672380508116211504169493226649318016191292070261883565930245219288990618102217266454395300460313850742902452299416348722822052821337130225185955556003035842145196786009272214467057033161694776728637308684524564791187316582853316575540041314501487817879935808085805350996319407075766653316115980106380586330834676085083822263498342083419124817438289458932563161202812591020044830201212353663772922286476385722894437341872839211134631855503123506345213738249380083235349561426039097013089881630804805884211248387932290422756091656431523859789615004529654210690622574748628435823809611645280480215494808345960582958896086348021449664727305717764489922041376639903298794520073869229469069228780247701308890666660259417123739275771631352172257814090446975008682204486004931275932978896615723740596840382483112054382539208643560196006525467282014614516323828693858291828752110851518661483958001026405274551904621903894605690067825286386063264272890705007098374112656264391743047020578685621637140300388181009966266451361971345248948170339684185809619842604692807431389242276899714484168207297898749150152233888153043223625227645676677634956835434208119297704794746511625365934791716301648523532012327739456539358452414685488611989469293603619714103718380657054157140375612675849029041916045815561237118283332343994556482049131398645233520312389586241990841553733531267945284208148971185132359960569285672572839346978876610361252480819860270218828934908531870584209679789143879551540301155373542501429247036267584621497283384141903737425019838072881221862926771055887726219848032062067518799055557225972523395716568954969937813780934453207528055627251428866144871699048881183650509821968129793333504905733102725241416342822071093565036624020083326941423037234560446353227719954322902054718296826197846365403844334436412383015856680502920185751367115370737395962600029363992232903530014363434738918194869622675778069668819791693247600000321305205774343526133935654041396864683566470021614984290942007464263182835764924645206765799827628534944611456979329379785807433859648909574872587706967174487894600801587616457917441249148046717087222810881848360126878094161116038047881873589350275925928310632691458806193681028622213914950553172437214751258678613677420993810712138562701224573308563189786718012875360513816063926104344477506697206621012872855286174329229550782193385898890776657064606029986928618488772875381670171695766588146211094870480157523610794158028353376615463545110043698084119916836827046637068501858810327141562868170861446231140656844672351572779286254104536995980111205019758156737001885099680762821593363887907994723106894849671647773967936868308400397111280959858773029490090294228490116347696711334151030686463465378839871066499965647379492627121398058345619281064583164382679420977412605602488084105407402699029958719522577813844550164899272025443619282190928280972549076539979420665705270003458680090189127618099460476948224926781514805482629971396729017145492247482132238843121889070432009379797588004968519894443515069569883483029161944353434158418058305167863943407541349037652786103183025341424762474299159620853908382828029687259219761378329705920233682080477985603375321780542349248612616149350552245578362973892747305928181390481942878041971625729398734442091927849619157521795417810077085591252491774102931153992745791822743743848947335846852022827924657432537747312560312158743475245192487060407217311476680770375792329629537572407827461009551127960351466191846588838674380170021234134228765354276027811587425281498839461832303112858283484917002892302690791334044704553256612547102585721078675832810423159128359496072821736981980857162165696118422200105259423721867276894937649632307568041633936327523438250031874710504663457909251814204724969672128223190607035022896566808527620986887724140476359591505888700955045478481686216235975206859892218485422140853370465041312236997081277482743462612472536815233524942105923209770944446128755918585593289683140617021769791141235376910270178770564232504508203289526185217907746219073919868618544711011926037482270376123840540737905960011541573166909492108738077373770661387101995402549201848846125093755154703906734869696970116658846948694325899269931387476835599669764884700565831773834742620160628133971972755180127342570558238564180330393704171090907077821262225518930470565073195546559424898071866542686466544715726841783382760172910253565952964679608555748168968299731330693694101556936882758446983106605429339760030346722046733905207790615067317951233566424148833539740018905332531815448371443430660940332017525344086599418531060969084707378104953964270819607324429470600513469023999733610383500409369673211764892323890045791434110530437741432192853623055057621640010135885460506488859173103454064217204477807557860545088275783613021332309890870809567469526218777293216082683695922465896288520199461719244301603215722999521007341671481281740109843981807256532217568459175071433803955358511732227022844991089581669254843580331107062338233055411250413887137346549114251107297975873632957899989823225664625634699437908957031156740696950924982970390711136117251675648762402970718080622135010094586496046340673911629440260791122211021329177763306240938429147654368057733316789750387265732191465875827601138189492858788504887705640398271860731743674075416297011626795624110300549819597082815022528236581119640609957453138942612258925222715970327665229429507392918868250239933733389850049303646544748275668706839146062400252825382578280926778011524172842252747063549765887302947351771140325899526625127739752973773570660241417353130085188969802907667990899410779729908651119865300132744170051310388199575835717956534864529156488563731061661141181781054808844346861385703299769709786189738163307363524120676335084940954947081011702823319416141149595469272569523776578217097043553131507193781903403862709382939543044956280190020987087121686282573080517937628646377724052645471547376329783014946280588626062513908656745184649612338067106127919188657020353139133066824840850566203686107389262091283233482852453381500928605564217835070049926870984166714605286625984298204884009501658965065776545307616651275578425891268318134834187550274752324750739880485529507454239307214832742445530087964402691895324613823624630280350659446385493243832520727922337486657795195241358588068635037269112000508978264795115761665621122154408498275366705519109877886552841684979849408069791833333199333660378603160532239827981565490483298257856576906341128514297521173810495006354129816887854217272314407675858995314821918397318072160312379017666977666049289515138954667944778979904092755896221972086567945130513955050097369249545378757913253393208672387388601428362763918806411688595700314560458633771113480470992566226779140860517629084728289159874839521412255414723138297463299740136355064725846783502251043352573457004257678342495671316068759812355257389900952605684386243274920454317683617554660341869324784448882743629170636017016102426346911698234360749637127841028105550328363553912856644130489483428845622521290147357530126460972089874517057873565675421256255531038623952378474354661831179155311178861565657033537125806569542038406594127215503845325227316424526223346785211936422945451080687096483096779564724004353710838901210899340441448730891776815385580399286585162417112983169560878906916069345115405572166301137310215959497264566869894522116438772436077307218565176330964926079103368270505254021170229355508776189678147340933473726697068375373029530820872290244314474296344081219086126012970725046402837618840896214722593164010619256296001232642145374526075798067893250594430222526404269307753919776516923560117563942238472221137664534640207944149274395204780409440219468608261083005705716507601684523372252699320698623405023379252542702072852634639394583081609666393950626715053942093202267796683724896731985488188013299343031941424469624314220421599307371244939641435188125094338544031638761606079428116478653570565780748758030556911259661627046876384200175987675740594549273994996155283074249524225006651752220897914196725326777793684338370273027642798844429343302689092991833999958711891295586531342759950043522644467487177064704489064623093404692277445098210151536518979814709104486588214120005757085553022588504320733169239264089920131453868826727574554610295440482025671961045339471733987277629213487039059816528060089817505165202084200814601838188581352056695160326577105328928696082507350043349698720776728524263674822732235698120038319833011769481920083269163204951263892870129561420619434322396297832345696011699362984231624309316368131220205849241475313352673496581658433654566376062173288252589879380701619690305215432347250757826922758341704882464008105503704293625040849122284025459828797524900027450276621442948497438537493467275894279933477985242783124511525291713660139980079333853129531694360447355684639974400205808912908982317365784511419642285838431138967840144881674754353662486719863871516242309302268267284188102516021594065679167022468643244290218252170727948533093744230286085877210525900103819938178160574557740308333312956200581765348038931267263838014101205726356968106631406569661499446821519960975990728290690958063220755312447417207257481372139286553079440225610149810489782471053963304996913639915738470406104056803416009565082472939402469828967206198491514983837546374063873630582276078920823100958149945114797113490767647474052284893924421966246043915569088600696290293490936375048518452430464538700973460510995318129518583691413628014276221384155145712280733759617311004146573535825211453160599155323374538167317362771471752601466356204705413222887936360658189461069016180582214604009911357388202777528469910322870414963279525722631459239659251223221240723616626178456594096878522286782057336288765160853572722772646030822382484628150012090504382427844343054823558647000917782203761726114875075911889593926496195912432893711706187717789197672318472836088084745302719619675990727610378459037700578720700648714755137873028609139108449956419535353771661355106887351516796489720450103409215482077201304818573965663552864554642870595975283548534929524200394915609607417525941620400842297851359272042111178334022286637171430357575333860380001975891243210613604125898241340115947125905483272134122838077692713000738530372196519401585993568779455133455127317644259656885986018947986404277657431829062567545403053338889907218963482475023461897366953711738114946274442944882842159657389290651452595060990506306666385951931540208531220097582157429508614239524585003381871544795685182557583008734029653777567194798322316718895299197816999560805263208804019983147822833324348213929931576865251128830198901254457339071349163192093450834755119893351085059752105119555827013845194234110925183735649003240931692369760296165091439652649183069704743371530038871811047925747120940777525039787904255756459542585279380586799503876057111857476415633446350905517196624169940883074049202202650838049936386420166252718148350963227276885134549084555321389386091130048529765382704780447961275816422443721500222867594727974808395273439265021648455756619138907295077411752192926540823750640808046392828804353135290952433547546497273642692694246610985153509258926102054562844137915148861710142607985199198876030010376351012946570307674276062607404094348466106889668019607932024143769914532159905941313156904505483694571670275145348920641297470307336585757995370146312278752603698033389751725508255840556961989134509561065738238622787257142395050314817102321667339589967413677533893854439186684902523774492110957546975043539673509521962699058143666115191573628206606290471929247226760251984930505248918221625277439530061630911535885391648293068521298493980165932159132061267380825438696490389492594286855862513765743304418729897397480945581276633953374455015498395172968752195590455017058851073979443328816922650732124799091135620340813773936237696970860690660441258492819719939787893992386828198234499679874027865348854395555580839972523153057040169958131571017245176797824702203264355703020521940238263328336606625530665784529050818516113576071602779159801040057061452188838843083803628962381079889407649627762649351927293770775989501125895101503316319619517714349511824850547790815887592851411499583848030416258172881239408755539000749407096459284616411498443646613396248914528871085828779896121455432728029142779759520782742344054394293712117816192481477564827027310906562470678432200213153155269206076501664257844975893915074542537190302491107041218859761198227208601047558974034212973101579173409476442947929041336738409637456526046507125620459751262256553398052031812054574733694033630223514717425931794852048940261093985638873849729227445935309886068875700022765263127108491869408018790770894563054978140533842258501674535835679970050121606145591370930621808003658277931111740767155052668308898256170923931725249367930986942872876226950220184399514281530440777338675897630502525024502780272293291775884736656634322779065770305490520711555796716553090681150594244918141470924441869681063132530137197660129287007740976731269176163733692540355776226236405373823549736551876748177337666501077440222204519604851089069939356805937624470215518872134319762023308650183027503562169583697190752516689239459416485560120857719063250824321635066165740999853605414498074797051075790121977758854854075148034583544695937474394121620096872569888624994280626128285160315402747355096116121983505728939767050842682499100531227499782253105240087012190591106483522466947182664335388709247065225413929234439038573361472698587568380953196448135510029245091503330661702852363104806024975972748915838429021225763443911001575710957108827409833766794971267900810182883208846705207160002954405581635882414500919845716422256868445886170426844175155379028875984250680910671134278587016343399676439815263124721663492693295500776835449041244893866079117731415859364084017683615420143217644641857481516047435170996328196119943467648292929889563393072361266868939640139038791279485600771392724125782525232721719218690509753359032629879018259105199883661977431844372080159799385564269412865764119864106210093526401234791682360090721926093996040772321818738835731188248333289882393691371389963788080508557959481023276206479152832722963356167941070509469094325591007365046623521420981309704751843975797457894061916927697598048021091037437420984808838499598294747190887370260469604772574937102096919076242388908686777328147771132792781105212128613050136132375092809581173253702740370544281274525767830741251979016678743992111085546314433328118627666172807106945616651925849781370198685271665856906657020879546661578269192567032935135430089901364326816160537620698255124389705938205955437281472521792825384895703099493525822596132120847797089486144585008345091748272855764509986091788641383187644975743590985813499678415060538132361460389029253019926231683954165037901131685619754529671798830186323744662545541914412636806823149824654089140976224378939586014022142400385727665352518023471170202637774679085067803046530601494084980561156218541036692280855033294034325987334523417563545392696658671296300288283031983032436696252722299205018557538069326574053516653194474088542593109872839746982365495766882375841723967353344614754130263016298983169776730318752849035490224674857058990673566770350599961331183257091776761530270513016499758308903682748592455373486165049317606731175782272842824146716278655270817488997996997847185563432625727065354264377381003337565260842205717800946341401880563614478257955949627007044832386116176798912828480790733976439656930722546019986970670379195188958552197995391215640371674698334735470502867447220709819002883284019917371207284837505572793455106229394490064068190177477810401979050176830770901907659895113752172636872116350963887819193304464713840125145098788751675313011346036904965029464878164676626371471864123366560800617314434015056600491749895023381098146761247119029804338642453554817642024844160681652277655408168495888102189347322568816722740644933489770599528318818418996538785318354311660121481618562842959742276659345477556534428235072704980629870615035059747867828281967798681522199260093851729313176964605010501244246964217906595691134832612275902617275604166710677473962711362096891324997464890165736391180719465987367842591590936302601703344038923058092875228943508401757135235687270631873355702291778518738150698891882871673491404908392107947365742857103399198730505914594348865910864085905048474414402781573241077059905918265652071208384189312270618854740442038001449382540914926720653940895336032521569428584978352064950119873210076144226921234026338329450482982582439787302140786670801178230347280988717066817285088860766533556691487868598882162179168643005196422641406411411975545427330184781600816705287958153549989275135716121141266051510941479751975945424112955399392997035593114148859595761197480437100853343436570313722098903798201972135423211775960923118590235085802230737660861794689972745376504232676196288419285024941488519480075622664269860708639710675120745910359333656715943017972253521960252747519215045631841338638760574533123000488608536848501967073784072443493227637512158657754032656231142318983300949262656435630836312821187663826591233709343494554769592706635672881181752040057084382196079224450983550135837110109560784365617505414569713920057106915954435555641796897673198738779747346267929928710434576677337546748344158806836704058609477883570755083702505420360332078245439062063765306883865590747005780868048412040424801788677797310627302540696571902924642665817485596465305217145432605235582328558841154683777416409372020313984221070344604567032451013866996691146991924833799374014044413602483188217403971788894899546803068022532706645442549837048255033216246980412727654677127406586147148608933664221004843921337955279758943691609588669944356730129530249355848021260537720620374910407094648345645211061204846685247113898446168811096730756710438422621357432900772460594367725994203808911106677589015615110511073341336353235736276898976458196052155066717111978597851661209921647162179403182042061441705162678382037124752416620587276510190538107128424577723305199871806435197221773727594344161999962762460058073021677967339892918971348141533892402002197378495805741700043552924405189940266211614076697631373536985671161635362934091601568652424681964181926237829118604380505034600977288866542902860155115363897305111279868268179599646334714662773813567867860817778991471056113843351472595372733728205261231565897111293056951183023072746441617898794822232072537357285134443093773327860519685895930434147947496753807477441885655081220181269763427088767090701344036962129883070987177882913813438441246886708797998273662568198657662075571444338443597690759383090393203947704451020043008965333371757651298026473128296093876838347099336008708801462609681193436783215621751531419099618011558244602805658589835446260793580007642422944473324128920906862189555760695532295398163864455203257871396175281365923740944231228636569903584530691515290676027782937616782757654204805823078691375188776507290268963775109095249474800119510595624495168156097857339655055855259398252011843235599431563645310758211218635799543970246872530899208707361995760223105128295414225725916342690282304241308358455592375778752314413917684780189800632775658769340492434665463645888693065644974670564600313126624214206757660338847132848231236874533909800520866741959146383113085605742621518214055752501536141640868140039195918538048960655240025919485813473681028790849568008389899701234276466247350053471736465062543608637779973961930361205896825583271263093552123381308895391602391988965787450402817575396355997736868806737246975700306727000647896509715906567023383489375813221575073069983848272657488244069805230475107314837746989108202081886549070036093271520549187621236397687691728607825362634666190026807087570642216896066717182292568205122180606719708004072839265614092828142382634611490342574467581304191614642462755379288810851599517644329153961327087549679085399357507263797887619802222743249865937581357239086548827991833049117104490956007403229465836779266338734849939099441000311232974718980741745753323277985165979652301345760816706890070573496318560637120134269121905356448039138995051425489931214213889732582777310930280269998196374872489580043071921108128919792499273605510980402832155812338735596287344420418212186721639355423006312257119070351791686217640877355513545267727051842006278455214552786119710874215031555512036712497873092537072507879795955614056292985004399049356793462625633315438966208835536960688257873696985843886056333748987724825636366067804523129152377935053836088591091087944054833629404360552686533667292287439613996118791506250704043939793259644780921078503007687738287426792756265888824040805004650604515504321157835253194336332682608883656382824029147147126612076991911134854066543843810471175325021643781964998412277200951481010131040848500115134121405465070408306599089594978818346323426077806610001858009751236343069648483480850929908050756534077889770376560715303173509543282581052146480113122275718429240287539344896292637081545498792250978659192119494666926774270999206777623329880069817960460607693374042254733779433578518473708850428602695612159015503988667164415433678330661700564000882678298167516606523729304719636745771192969490622791300431269982683361998447731660858707503451269623120977030793477050033290998773127733781615233893620207256331882993472814528932913198739141873808452005349355922929505985435544756439323193848456163993049606410312290402189165670408816911187780055584527687055407888411193199207758954854991357264380280915218213201177185257132002743831013343775661190061404868571666531104658053293184819948803336470418474809761932876791685498770130324838101408263107278620063640344649048260343168450949835821633830073166271524298209020501112670557149496806145650713647755074984075869779755857981953543795274977729364640323904860264207253855498710551728765832691672974005593370757763046936751182510548603166284600813854948893924169068426881754232953481919959426731513024265697820803623382070619676509476734810953675866651734727344574732227478814498295616067900352124909145477421289500069792585225301713945602108669334570980087610986141845364756180321825449502173848605555663518074616638384820056799647322561651434238558066864663787426218433114341010131258278129087535231030722332521689694869418234976925970014461903844304429424162279454975100773517043255975381658641403855506342603834236202155589337915242572845093598760826664366266354552315426827288819303831189358129114517646296593611498185855427961867269886866126686715200760723166626590682553725778385692004134454227203045127050375447682125070803998671270386395511564636409002444090133190981111162687633152267549025603843096436160872730417622579039611947492362155614148656057028487447865983377975471270493510199591940414293181721226297032362507789988042968515010994864123488527071342049009224704232290700672139823413137491544105974441002909238225020233380029380582353078235583001295964775780573126848705417853994307778831333736049271936518645250455419548719360049678564685167323620257986357676430049291071987770571232731324595579927579044114101979404852016265785758819276831691441570604517569441445860015275297835237828934544419294930141416327181646115372949892587023072318624740098736906956012499427406838241008626493436026124055926399733847809821089745059234575574338051672087749460402614165303879786583831183728960461663858154784698896941357069012606588408843527101408614087557270288628755671138259030870414034620874624380247774519986107480046206638243549484608614606385610670057338861907200799298340860597709736601103156886485543166197465246287128132462979374265911800847080718557552070253530228982595208216199295928523881016070786791213905154010108878337525013581206316575535490487146823523849759589948281534469938801493385403602244818142763092072060994594450984714549907298192805270661694667160334591091980770901826257990567506815433449174120187916102501039345143568381374188830774133759843638650831477518674712261839374231687101873825832846985394193542802864105475481810098332322491968017613945283335288298736493437727041030718196221396820897163805645396680268701824781557470757673244085271167701706637501012631179589686541249495717656466396195780280855140961834399929175265183627936605292324774587591661991108110366462863446974880756850105383542254739262882341604840160542274037482164878658416396590564025810084426888505317215082386024242608286984356022271664123339187579264148903466771826510130032048992289566734103467813312745206885710139805744010014083627804154626435368095180757769774611157088758489087205719641834944623013812819196234323243867772939173030889296500486671536710499774359976394002399576534183109875282144705509308108952080253947178625085046619303161684772754566561701185776511935686076222670791127812308362001083100298439113433336833290421489415915092412663337317114791183573631734441969958451827778264888221564722365394045722589045960358072018615464034606747465006256785576696105488366000954470593007492817949831861052044598004340361199272979834257592906175535316276443378629316067827643423245471672921879632578456662213960819769786643041795485533040336690425361871256827885171703157692770619434849411818496704657063845411628755312284030209139936313875153939242179929389044857892206715154998399947025783153960890903814726440262499947814393338123241625587959719785467937872333379600317337037644509149124116280907732097212295153230627453210711843750543990705519870255520799816881405562060622707319628904960591882163065847593313813796943258923049094077388917024764236578444279705927152110695239708458544301911412786426595456942374120646318242232636552520340086105625506527029290391936580977338038644503346492508434296899976845606849082362259353629671600263437454736947381347063502765602515879621506927901164625038698380652364676897844225355577614296579610917174929591472051400795807339265599199836231841877663535567623067749404704406141602608726542149963605793578758387652202519972058724899072759603589160757716305132626160655130470043798204239676427383644304192755568707640849800569968056758696724356879044348742075324759636888039350005209209139169987974268089564933680485136306118190100259298788969813607547525691175962166747785018136546569235317184719725287117641496124375396053715235057202046327749964726760159972639042480491133957947747359442551407090631401014605593899698003353272539790794482400981561371707233113399984092934592072058970413577614800477646473082847037661566470707197169894728205577768972145176167926975568076409923580841470533357775074715005553018003476767266670711754476622531363147107774164563689980859394479565856006700431108650278627851701659361176534459264854483161171898335078608277464779139149181192777913035931452231143769149113133903633760764358927061844501129603336504871822943306921126368107889252766518415105116427122909800888073290360587373769169616180988521591348001369539326871880860850086653436980997999079967445733423091769045640176066479951354625404498897386640593534449186315743755882757120133671128759953174770159358248381668044109589827605351162128142593757386580944565924300017610305024951478914059647780543239496856140274746000313075484525130520299932800003569196852641305344241253670946376784910153658274853398743524000905803027543915941147126362125326475384326211857964840787064548805434598247741310405610523480745460272171563136019279446948707852863385915575885340067460347193370938207696180185941352968432175296811534007425007665565314843969601607497323625181127188535788631586586767297343217770573063660528800774881571658410651456519623443983171754870294869597007149698383767763739880519531374308836074206316354596578634050520077637620137188595066700795573158796536444133728955811369634790154672650099088907322079842401280358668636991074433872754395941554766476122182016968930801562596630594146131320468707818133439028224378145626894643651796708966698834626472881815661992729790095344039078425993791141243090690085395997811798633683416864122328647474827581675353141978228170555781785515528989993874692412820479711823136600453968648579801674037965395734459765627122325286927052656811014257030080418601253085864745881406428894787621272079987880457607463948186105952566670510743896008582570539876187120073082347208040888333562477262847414624760653294842265066257868385110346574771721318039277670017725422409356416445669493932724728479464508593326801405666023253381600827574529493650826413955122584419809402123255658102700224819180761767283763463528429198007685774035605901709079967367720677954316210605477790345439853478876887767774875977195095793204604653431256225650780185620705009581411053808280437976139007182629780065209662957502172256985274823965300514554491453699145311930857451931545642613123242840600039218678347634389835229657957066432602274510185962546556160421469944575944431926835199418652005479133725106409334753647240245203979584814623495122841360521003313786891324083965057028961301352030185290428093991347219396447702448072931165687066804219793894267007986374699465812770314152145546212513736711097798368096236271282049062251432549365567318123629734913067296164686051933698262999724065881771542736052690869269654667415428282206277279645638659755922429723331465168064858238075324907459181715921777614505214709686916502787093714996822673859032690039829678401531837816757864428780032046893604498270545944627346606812151390395617310718510558030651209013718997500821197163807339467538533196805159790120127227295238271456319945111151826326404393696672486332678321248612962524463000321394886821285808899241956491343586478326001883935682567084448066977431174457725663444972980599049574668671764181034311445128238247621727523866580868856898083121362684774441161180006596922061886842968048780386904218496928295996904931015375225223852627353170477734455603151292703822983950058818227653513573893403942756235916166328489189890093702685632823188426898698865200766905040550750486209895428465947543758447834699829503261671610243937510800143702009546221025433190099090845620539504991286827846357314427341284241827934005320134822777630552704637190039672882225792193136987196383952010164531602803580068663871202696348012043768047450868357741065327135857628337478354160632059895427402817135529339581314838784636945188504797888211476063774939788476557703438041294462058471099429433235892963654574873475171325751431033369366291689751683315731359999156504118577619236359475946603745473153620018396464586022730168361920912337378292173188091532462289936029453617100777910307796107309818491081939131068270158869901788707087156015207556663246850498307846682188428719784357257594427669841432511866616134148053608984900861743294631605413147077461248595210506785796952987434007413631260250227106524685212486593309823212904819402475684529887166211057090664368618766612382588180277994076637503155328453990535358827427457745535234120238325804639762986185514299936125656450601765658328306108138175108636728262210547884557334839782458863244203496774335783160242603517024813783611645916478386874898386743287568417264322127620166367508502979235234774019230966337960737315228288392371342689642036586839441478428454132170104488630862098291174138427880800902658766091100816801648392449327773420859146045423373106966107166049715970691863652273684281483736326368135057195889279843409201722151074585234392648482957479141963030594714791585337634945959868057620493283362568398144670083757330698288015626600034074008507081065632251106075562363378466125016440885981777643685732791666323424967721523213926766290658494043968035984592404239418969922171305559770249418585328491000834442328354570723142575042808792604585825353078728637920590743505971622976450348460063854236497451451792572849911714868854398851948669354562693344502040910608222993058964491544445999542724786919629110651875220260559448363101773048684220148916323605501708589410742445901653446093365096392169036899539153345189789418531679968072659434050011613284707351649084328247932088800333518297874384575536690535663988414763847897823947458066474236543648466241884961383833406804044561994270264183011704311146084472510322507258404695914010501825994126068283296518969808737793727599705421774073497914243199173150759873141555397676757398092167284338446877642321960310758745345900342103135935958098479321814431125109531144355935029526844591084156625356182746666401053542853742947274512841694437669534621289625172996906691222603816661997278219039120484448016860880030878060456504706045242792284919350589551983699871296704863131251370189820466724236069321307946303150857858463948004241020848489372181629174296609975641352062626573627035018257130388195345881150986375020722129703911782024176920599076862419850426503050233795654091732866103824695467481713058816864257606445046877336039518823273684404138257044930404326424277858751071895780856602657395145757706148446691884923792561054249787968546671959367297447690263530989484487171161455637062965566895669745436176598193507298843222429070538746181319290944998175536869463414646326684603182533453234811988915036256273527290987632690698297464742559770007289376610989095766218627862121435958406301248608283704257287135944225951642326834783002122407137839766342734569563976042754411425970437611043318687631183204519715122061484078255263738115532980215516036210149208655620316927511995755429792925767882973376285290799997218712624775568691357723065658608566210791136211585736292265416738127861828396355707676598575792582038141202365060612040496512586803187869632305867340149490234370312863945520260617436396158315150491142613648224638783829711626431393953890739107245246475618430856502764853753221776178067864497375505589601770439847701383925031179333123156922983076950164673021524989720753054098527030467322118291706091934866017830081256830659864074308943843570607300549824851052233946667570747890011590850074660237776214122025787636514802847320708239744831175921671983081397851274479960259101382645424742095900484509502961318532776915490159785797168477999326086843852903029544167214917975151904923735954027465189380840968451948216487262226725368911612972971766311251763709684517782591673563237024173214008276499151231608867277502435389496231002809136663296173292807433249566508294101406128101105684646427614271273149787765335659227539479687729522232178417446646368797341977749557579691202282659377254942539267455076185806747458821850445741004810944688906394098111263995347764917893179868694513461637479981735209583504668817412608553892775844896558942257426330314772014543673003558849402821298953720473962981133697413585545273983460144979453176467142100913529019288686628893466858494409016301540952443208041535194428657767403789956256023892297347840733214518318318875442346779597800855245388583866186141110679626859294363572300952033514931684621342571709176073970077245622215041421764093935217703392067799648120484977649856533964819939103346229708081007953450713956318055946882657121678942113330196179120842978798695122098923189471218155248871662135910881585855065942236632235615662565995314101656775958073586562803631167750451396597700667349435650598006565303884804931349473540040078728675257495645270299686745898905905894738736383852737928223578570244587503285029044769344476536189958206771736682392582731350257968486919121605868374019821794754867279002004658119211465069529511729737282313192041292418090244612883665982354068467137648764825076893964484812492777256780598704142006442079544177460424622807131479956707067744644164458742584819558354051369686256502899126484230055528669171180255576887965704490611840499372227398772479538257444242911290533473780708537764354730233304428409325161519024159828572091742306082509535969409184368332210792997782134329966671863446776119043112450139845769333176100199205270091781177072661595081378466141310581888758050103531906311088377519414218277171075415888421915382439605495932215107778354134118581681030036101427603572332836807184800184608676278795048561730089742664356135972436974519208434236120852596079565895156459069661427053983737412886108691799408128381802694878801355100337668221772198580617049122555411256030184730829405822809432555581330941590198401679181832835187327315945906949916272822666866821578297068226701672745242988990823251974987326840485575942786684197663153162341935116114895783594177208092065006530688401154139251376869265757495669555564322637392857638644310046447397176942684211672386944128035785104592166927354113210052373699346011239858727312007634684983265825088244278323692174119759549667476117653719421243867742859736377326699228839678156845186258910960269235300173660722837121042114719258848786970518308451816817463945475831514689487363544340676004689896403731330667954933884919114345511830921245704513104516091625163919252951118184914660305373052444768575040532843323133814624651445617153563286062652927905778980680461849550364434972648841862169329861821154334642369967372008333198733147491828342945935760406775204128931573203100657809769107826409333045003975011790766861349685349400768998214320205884409063734705284777142142304003067549792428102962369169060997652753955813049571404051329201762210141113991971452383636839808136270958446097398008905768375093304762916867326245935050638293433892535540704121683305834300729886729585732948465345817218362137345179933390321734993554440332778890908417002708505260089580029671354344482597894646101788718333957761378832604685799907792465962244636007892240060117931074221796025827301635475875693466504562570568762822670697094566300260288265166477238641186347516554491685291212164026561895002054801094485296830973450393826177421526360989495521226452284016798511420914035206992799168786195415993150013508417426179029690698106919536144685173664525406442927891054665417277699175557821072361356173234695817360171910442259795679449324095449434498551219780489264451075579472819351616453738920088502943749983624560922477898057008708689994254483051994498643698823121669952244706145987736723660037363012034637565087821237512063380693218974419329910956142910680042543972373081274270249861091351909284556091869765712833770567878229154026112488424753603016019738800081091759202783081896562835703639924251984782344039312727394386667362522163789077022952766563963114366012604924881329855833349547741400408118130559473087472031158781458408135929959736888442554369530275049007728230808671541467456992502535214210362191027910069495161235505540961629068713622051112432284453785582473932685106672332213221510027233681863774915052926712125471958065322111388495354457827625784707222297054252684722686013415067821351940324207812850920679086119925736183553838903409786149719360780360153624531471381511361026686255508821424155008001277695786342375248999170207359266224182189833803651955916553914957869010524152819698997188770975799650924435135268870978841423772212123141900740499819496562015736411954652548657499580430443838384893087832575460591531975228028447652189848391412011758014319250569837376482943999161984783530486124825707406579014583138123531425542805978060138460617235338753404926283029849886265395628944252651529941959837798295585392034893306021642423967213179092187613604443038796191546554360788263697249422810882939206478419727614380527992237939794246156012186601530411657929084393019196465997266713453598222351280156407817632388633258986208822380233146825735035318527036592175913945421235178979173319243990366627170182220578232622155223962211014288526605844462801166494009173064733597326566007106793332665847234814542748042879386299210169821796546118674025642815188624638701521133199304219881298276843684973641691924901732483941194303376242047700097216030869755693386359906747509104369153826053307143460300767255840796421201144918995398162092048974710610811431905959532072993588773802018893970059230563750025001946146151675134716146219694256361706010122564086901507948154196210302914061798557825566850651659565554183792735020827603184533859879807038657893954495358233492642534920089637023186858950372276996337152575890864783078633447024280356664441778414437290859282496751732613918016808556583393022594190910518149374854552880671508052854827070500644787446002187637468274255714520057871715120446255253489477051048182588732852054231226804723333362457193357887862912163356984261388832801607411969171695273928568244487093560371558569986698574765184191095708667234227496471792319858000104777868785965264416337828522561260226362957229467741750018215768295677107124944739618131294634389314985658736478062891901273232075622038672929139310991000766099089604825419727648911854126806617405041123602444737798362399396386665356366950682977488549437031183236766559943751996288108375569933445348736725185330451725412371843252271681242009230365660954248447999340198559634073660355213236411228448128516387185085073109246648159559565125474315753376692663616980581626447553009746265921665262948751816016226030358084074786543651924337758842281579812877104393150184360882313009692220810756321839009374513860543588966440743206175659518122105650444350218657542452138336823674170228545642063202399726762757395961020613532622953337279683649441138174887943179504598423510310643307729545492345104577147139580070578268249046733761791698625481905061677973100479833333730878472465194391575361131203452026590401323329960477530300744412168151264173713384724313046091125397889493686838727432231175312362079853195549516216795025567613234675661199357890481472453389635290563960876706071398521369247821870366847758092944347569025753064910880895206663834875606086386437739092695504375091888152529046844509801287389220144949525688528812650954126604016468953472357091748936293421962262901814911782692276758962963324001368946163442874525416231514294231157128490846086122332689452592715215967145958092685128242790131662848994307357964439298121128546714549848064567829785988019847766872819699012168472390137220132862687483828673830791892612947837069405553362538789450954063229919977654692795735524119234142553135607457196558625518959783732561458781907339362163834219549568489400718060805844486652208902216139703369584514104542266261070194285400999988798640254139264109673706412039535948419313504610643428279834844945415361881459559551233553055633238535220873516010029037911202777916914776634199176841326186213838954966098185840332496986903626251395781409794878803428922326246634896740518674455324164846940824932582556647486340525668631117086828318695045547200221726441704093050892899901336683537733704100068076487597911331407465175409509966114174486097322296319714309081718359604620237120644338298026004116462597437387350824924479935240167109504838880438229870952784227351522170402039697057140326878365143101087900481748407752633754980278616533053351106395483879085353331261445870533479652089586739758654781585935703220001005620996680063970341964307647922897433662360757312961334056594498165002851512668779289271208548059729127648571982158569533845106799300619847903537450096665776591891903993034710498788420480792968289752539633296238894403162491202701502933931626670405580639140538563535931727553064906818951794687629996686232171168137966683402817538655543994438029509641529972160010159441355349425483628534087425366360313921014163037950681479994925461778765622222265457352363479879676125119753261457784347063940730180178306532304193085759057543982418116973697810184259565904186752211121733861312513964662762820010310729485815494521003106576572757133611524519882699001965987184322059749696306324427337834496328044360979113698619068282176387316942140950102585021227913807756781485720538492957598811343846189141902061300529021990090382119946165786674263970765801652766693723167205608348343628258601726065472537748167266223543599875531553303498456534435974467370809688971592498824019990307569304223681554817263977123450641418477706155369661740051521451294188423391887482705752865278798419418789206229970436233914238492249892023295509838654684466915637858856873939419039613736547365818584199170171306016413310835871432819666489368621354390181917600522493215386021253638670718340818051056487740408900641327849905101722235155302143111570350613840557876512173056307020628548574619718732844697861714922182466505711397054604790406380987472973243647892897160401437466314293205268203813784645878125282572282844857481282454302588706294345073918565664205583739147541966265229758711990234476162586600277160301631630329119176936121635150009287175505924914195960588762398930359405844066286439884678036649078611362790013312917508072148788353625298005832239176727754729724766537675761527242843922352957079839861338169055360093604150290785376614169399705996108088318292234154592098268757451324892414128985076409834158539470389733067019046057983326291914447535171074593161311887790840577630857328856199308979209145473197533291672241923674781288671676680238014377215252553082958566860691142624100778928406678240597890695923248283339244643282819159369920914830366208152915721803210999882897031103314782471895937824174281292833684720707183651958887527016016227309216890019195988293515330375482491496862076139513137375193393202532532521672910759051942814821643996882385822208284706363024688522288466168142344093546402451621093672684872294051228458884401546125064428172293123059780715466922187825121683993010159523236163890819722617659065483876566642612691088606507368779147116344992261555338255249935457639409678501229007908529571500982446267851231114393178289228914638194461465860104879692507920437344609245535394523084211976760956811229607472888030748537120271211163756991671601785710843841439461591558167958313831665220961854145835856150791398928464499927298280588534511985677495408533321026800616179755981957166615227649218895951610868217877738094748863255370975060323401843687006454599671416916156152779026321552474355479910242544633574349047368594739378104043534706159147614621838260049182876043296225281047354261338766742074168304146551084450425967611853044419612832370883618975485483353463312187401178207653175505974102041058117737334142617703637727641150436046816663038216519671597647110390694503784915956052714846862117623129025476089751120451625406323972039745629340087841352737458002996977516423342823363759014473375561708369562553080439467039100326952018536417849810676954929832719687469515647230066321082384181897677758969754060194222525963534114283707128400040165620003457080421278772956628259910412326061603669366235302408864855409193341417536037169104945235962029030241708355224346697753514692069098838741543665587237430258353664364204880581643340048134617852256821118092466990249591347817754263659201930260932138619699443088389477072551691123213770383522299770248194740725389986765041530873607358511215471774546673547217586724075354368897750986482356068160448751578425258002618523405643076099793547189524816355833586826122576545161284740155620648538831764884471325777168563846924739178394408291293870266003735312669867840482923499519215771236962573197202955416785169619797703290567980794701990449410673729561471478484707366584162911938671672436383298789228363789350164079006496323283690654379040259400009274128000746234716607169421658647396826998450163706471515423468092340421695973057619912310122637327625394076168833690133544705809250403041055486536481521087508223580959909245901403581501811689835778887247386243622537371163392675887489547432743719149303889163099361802943963189609904049522007352675300391651042342835317750162710637616678508313352038931501204223642975478259347443695535622030189278779588582608775576106931707689149749103831220133760453300678638343941739507011491043333266125283293862776609249838461220033092409006141057073516102905410545941857134706519096933439958477539970709671792528502454463814283659561376565638193023515067095252466954556255171148370430632164179803848186314443846692210514376189189397180682596284997520361318166346132611190157046623573183203921044818592814298511662482271189332443470323016677427234787071408169284965858104783447938885251403093720116215494144032934213999315057353338069523655581386896653799767238694834780837784292290434794356399344932042350275333011671914739540187018258043214255013295220914313980050099719275739755241048674258548695545900627372751526334848427877905165517106700821239320279907134111738887803129598572248939820178534408625165295726230229752643741515251770195580897259067467682427264804481610136188387145192904495794647237504537285654648880505082425365954263631282285417185296652661817472534569541998222733691267680419784034189882134306332040371495824261935581579763121117749124077676927528701244677788484372139675162790459250936873336091583313490434081439877445985860985400897909185656936723119623069433852732056140506265073984641962646413753039913189281797020470554495123803369084924687205969416963979993259042553566033167822430878939120149132362194686220836764218725638865531614084175694593569417077890599026200373897154714025381062085944701064294977541376631471086563986400643714182970506310266703561440332704908825660334214293388375379861579511839161818364702089949457824653000378510071597033545111203141003155265328281035326405029230920939168388734292119717341322488140230264781831748326985493254509690449954124110830615655877722889748768120942773181266856651894805144752650322254772199458289914041580992592300873200487810363093453048285304276859940808362521541108262250200656337613261189663909807697643008600347167448668148771738607238895487879956338868636013118896440024522771271722055605441171843515508914390563183872897073490454650586730532784776601797798829274279779382481506862446720635761036936219268534462716338736196790487478318887834597161231209221111687429212432432208982372080812860897940620287721859641962658625305790464587981450927695122381192140956933637753818160346908311495102474339814569255592210222740874477011878212393690043646696202900520714306545140431036951424264697390566124046234092991757459078195793826987019159373273520258435663278104445616934822549502243825206021702247754526213850040267553045494055677922050959392482109795318589995980381398192763578310771593851079016912709552553384602284204902344891828661061673614427729288246078808654928660774602175649331872493915170827419210043046784277219553665611106481190434474451289768703880341179096254673635399182961475241778580220122378267843674241247477994417486820186866186748867402681516727482763269680477291317243673511889834898557914004341620205971438131901907094199721672364423449315741217985505227310509433461742309998998930738969568101814090431914271720931493044278133296541499247444310596110061760558323737507756478992216748248709840033942647521864656163172004574505373748777606996172660387473767177109176575283948129058106927475357655407390893049887240643074753169258232495689728280191541068997578936211156554706372786837217779133915516392110403522037174133487906425742575325502897117692235841228373869390567305641519239773842799827219154559570724452499229492965151707658015912180160477387659530790457087701724474847182777239042915587470279708277028913010356696079498964499996073013311581786180231037084440831033609326731036852805693297224147245959435570991334022159948104381380215038984118073435041346658775646008943749544139828901983208002265040280893132993688801101643231709383950874724244519806728298596990374576929029833910529924654659477486207294181233071017640512849594391609430480428018667639133966935475135554076429773180379131124207017744733190629270828223224932113185639552860585206977588301922237594131896100367016634142402053859379182859284276700278322589037492142227091959219016062233577470784980019891980092403052533322612704699761013745219467779741015243105327322288881192823743845340313628950311744291025880259554332013349986128294340163663149171082449461942057749740745231490884132524630454204782837503770971640743690717291940384507196887800263186226659910226125902118874283533791340819560430593135816615560434628125480350676000673857189468984474696948516355253506435334283278908147125228416184824488231727051372153222711000358008274881433556646301367634497218376046814786989511341670959414768788430141770896819774513968471601678587305538492471748014954661778494444451090457953568975257888081247834184837703158409711601487834737656778563911171123362159097318857588918529632260416025415982451480843885575332055746757507782037313655808719390094180998231720425913429648827127098747945781687908784074230648032147472044993711766728222751045993575548321457488387889637095717682720635142928365611896317144531088995083329752025254495647441399579971844237525613703894120156962435521428097690036640251792690065019400189761825292849649001492033638778262566612230545355362220070896379085071909635027072665017551100131560153212507849543517367298568138586322700728581907827790622552487450368925328936684898983868415618617073825623588561928910397831179571467930147051414832261943147470107504479758221868406765567749066410614421948587776400001872739940186328937248237640650635781888240937581780216045611279169010184437539880003139713742882638395732490163416873808350459519178362259905553585569849232171906042387305703290912004884635269166132932004038589411091631876470118138289390354879275192832154926783629754788311825376574077291150863525501014365975681507023326854055497042153130265754822445447515674362059000130543380590263077538585328505971438242718335053358004823910039795491433054881222593725659457166789846241385661547083020070534845759085326385911432545501937090268222735531157726862779130937908213560114821139738034444857775506733030525584115161783708712910961411507012081657218811845023767018640924606961767712782680401043224290949620878136049234528915650840238022944917287054329418284499092087326810093138711396794038380132753417588747184546754165671001651920349586592186234304058720723320900432092495970601743946237592233366882317296420859470202647354104072408294504135904854562038773898108936227319449727574464902562038719609050953145879578252435280751358962851328643656028904592152253315642273352789784612326668187718003465827885313010623732975859008648993697313582309284515834633689290247012267384806249357720740583584425904411043068966652255394447623452969853276883167856494764885830684378927896315560100374976226035217037658953064224282102615597671793349763931955623065433660440558126302778309742911542391541025390714745656171834463431953036227065845784074489664508393268963113743833927188144939963145050401333865080752548590631259236470207729082444608705032824615545763706600652784641739877321093237071284920062394959092402147767562008730090030842860186072850467707746296002049401554433464655798916931215588708813523935596807392768829128974341343879574238505366151840367694807484819108677498509008144365813225025411698996851875311357738194872701978731104371413785445571311524080486003894500591145586594484402980780168347819664639454421847805941587674028773269039652645436820244909103156926740236955689711484718211393934556548548434852720778350256614258488027614262893707132599409353309809164267676990083058957841276805220700629773736096286270540373827094456625414409358794694894959542929911126297492739701614262383317353789381458824481618486800662125533599836524165043991711775149590202688192680259501475337094499607453446952194227680886531559066406266438264402996785742085454571491842288400125947992401120409156569860338884268173615688858803638379915729065686802635476659717642753981947832846431548555610037873237948268538773295670106881304700817294053122433292730591007503670030238553975334904259410315478249672634081565256340810144515163638294465594053521027876664693713493406920963099618587221440314296433721879777083522953615691639450983243920038611433114584992461982948515693537748290988047229806993503276258070991216964974297761973159684252824440300574748085911609804402577455001829973056146665188465240917711985294981741189455298540430480998432595528951041609755593442597885031655395173573888576252078923407678825944593216394417395945816633919269127918154799927918274306840026841314203047387379505668826173365475241297220078474019653781760059440145915085653729298451598186764123311112338124771964767955314667161194085303217597529725674176502313870159874236935594371433519704095906819687864821000308320916080793419213909836287519755690567029614447786529698454478626917377888105714693768919643658185923142337404594270748226220627557529445057469971411167568093040367010822680838594579952233935249324647875770960678117303986438274436387245242730868342455623803644265035284341087362106658351240984857270150435469948907398597906007944816449217659246323522742033084034979130586796393849617371067239638665598092900289958746420792912058330123162385358593889990079374120848705073239852979966199319575117663947081065580100802751584421876240725746099058462942355575969079421869363603703491782997722197213422913993889164399150233038607339779139475145372234776786076879578010111438325282567073431560919595329478154581541616455770722223974995901515123175722531512126732523888864269007199885608376327944725219356886647560311038148626321295017699455705241398939104075231711924412775022817251605742139962690143268587052547107488397201033788460919615278459271738699246053601186587613367968072052467710136641708668689268319677077096511086751135483207644558550427061362003183852813334865137078077938736825197213618264355142890772510756138917794383598493037958547193574575355591435841390543821482607339089810746430798438346153680124188524146451488553542581083417466028085123071662000792870218892096191780101278765745176522099646194215297126180996529079046360531026503869393308947128865434900791934618445630448682378838530948255657294647328591992430336732512196787976009024520606817631586450365209259132567645101363450088345319495628095810257493867905681655962861987263431493195384889214008979159626514235384732889799038334498322778326423505435295370672937868198032698962399773056001430310687101988317309487065871502057387968156544454159557901456198031550234428622242628523117471093504653623740361143163936138905350235239189947402920445182949550935677852551322470965440627643467394801740231999482008874204351915356641248926492036165376971174782899979645189579080524387580003882661363670352171392527263137860937183660635162101684438480160849117297451201377395797402506632402670393292245026587899055215862313744836882963791978925162672154903535165978076901362792587647142161067602141607584675520463530329094526420252695325273857150261699175599602790493973462998115802469555647338211383806639423530956379911593818494646182434384035078817998420085831629380539117775113280589221531964800995721302662748060299377722231248618121263364951998931639574311302114395647319716365185920801895725259397353569338274932487912423184191897918192870857800959690497897130905017038738842808326161324206105511205386549958376017044683059044769874753325404827620482453758709998155823458939354456636495968844079909260367249529906096356033288244586019844637942014341277237092273829903588332252931345522386087371350153411816614414642353666282146843458766584324866703393698625043710892466014802424118574186966165246783558629747999302547196493566266744463914287116173450296743043641203293400896493300221491656311325087238539089616879468684087476393196122852402904577162719064330185869557755372037645292591244060492161397873919026312248052330237396411514725631520390368692757437010864073303422710434522942970486506569979246555863330828312533246547366563070011408254621968357392434714807203264760829752020763428674613139521884920600918895611194502788510629019791650160870759219642814729463303563521846097043657476578223953956873183706853453229575807663523774938519067715565978315815998940697983900789514431498182332855912188939628378550049069870576838532772907446990550327483210669278425463137065571222771316582009170715416173773833422455312757506207461502227349278659940794575165317574900941994574580463157442980425923131837143503306610467386278286315393934964187514284124183654464536332798911902376536667925574179274492430920949417347782691648620818273282917504702853833787528531884295683551254565048384723840402890703555146266960588834183531118135068584852820294564223116592794931000986629372241522705275562178028638800982651905507790445347237711031801242248991400997585522031153861228661535136721862514306130577914112424899599719550246387328234409544878600174098537808571792484966658088397717639284461106140704828931044002691497060324505898774930189293078741727259756130721507517199454053302318890061753686985657354611665626489602243487588689395733255413140383415375293034078047336276260237428789210729622800918778037027464358671595866736977749311900690552504560573885644678600470735929447786939018613542831296462340116869883518624397409202574135328477014804354825631949647044826917105556690736439973880858988813675309260044779719803144413023866015952885176904141376851951722323814013937880440818212165934302582395168288403107579083831388244506626095259655822858941625332707164830354682324583923004685856967203222041668459146158126953263970574190714162255227405318184840346711026911522035065146819141123403220282269032365031919397974787141324902155654209299140603761931743822664429862656897068978593124649840574618539186628841072404715354852226479483069859499588533418676303115577956126232267516119056842287666695799588247561755027254741069044711088652257766734897305803996777886897594328648265622149413871082601868873518922928325011163275569137523399542452939545176827648199808810522215184971206853835540571872684999067941287014903433513617300767407126479246102298054757625749461031073120770323974888656175570610521416061917478773816380186237885543230615558186666194620508489141237916465969580060973555624198145447204473497825803516103922786069743851931726896154771541343150064556394601081639496934056891591322167787420733437448755484144567868679355051986048943226420703994664717590342093963453026772430781838170012715216329622856138147374037152736980666093309675361380781966265403052964095291352589099231909115219307916590533717784318427398774390004786805163262463180001036618832298639689238529040180604407849810343203419739258952468523460869973770371890393851751663454007943746402241317909837649551435268114841571698216843554062118649813995837670937595044441174287580116593378952298161565172559996927742578910931312971692992295846778815989663275492380288613020019583075758463469436008127449919497930568684477856334103162092511592912513869024672728292846462839564375104482508351892058000952858309293113641763762228725137936756299954436961148207477002441966149091553364767240609842489774556169368146553508609196003912831911429347953418864028069488175798626517328033719302237565974262061775191057935515027219419566267584582628271756270130280767899103597369806078382188344510886754849212554916295147232293377870264681798289692306594629353865152945545788101050468638022439164757114720121261215010616182891664896359957721465619014076000222888628327990333037149579278593783344731606427469678749092880599934619736980549763521877153868470756375383471288006900209394932064616667675645528911501504538656604514767155821630220348004387970497754638926587512896099460204999393599808716798849884122670482463663950567518862334651712822250431300906851254257199915672145597478309773322623173691264778247251612584975444337471033111385202941117379528792176131064562561716282483334701900633857985456835278791435675633063226558843034288978466605853772465837594788870924227956463916303776984958357534605880896669082830959818123149332762662412110081556634090943335294758553167916225020884001583265523072841866229976509618112663140739813592189467807741972107093329374489275244671681782019073138075511622079065910531624387391409926876973458223916227114412674533350573492963703067357739332623794436184207733294830497111050280656903871798897289992256604844543127014696445738937314934516436501489927474127575755315735930906385525656123981902911146442868310966805155659625972075745460525449391169676277119415229785490104726506165297548013217794319786590311266193513770902780904985499256135149700279011436334825444235045090727172449732209857297770993394162169161469953300483707846951705328940293499457612052037267773543906404835604895151062336272261973066990411980217474559864984698785185363507430909002189235442530307075082152977146874834229060538919010070517673334938407408212515649520331033126281739906028678064401846583097378339918220391422898730611582716459946112337342612899892729906888208882793417974739536668154272034580098928343753607735638601902340650803916723177443709525842701239587900152622169178561555024623163607064972771603271327341767991415494922472151365825369139893780443463549309192607471614918977310505060102492236797843605140570113368460265536048649588294886894525977017763980919774381564566944767267510381279010294993936713121565507278333193367701966331428083988063639020678994108268575645021655508793905380671484275584955026387358699546993462039114012669530494086241689357332064345962761656184044686414539156085609245085274772929917837491190550446589215676923687188205357371198689478327365272364204419927474610325040393799570066281793449654283462026047305343658210892892983145344101623567301138076963972471677041987447627744476301951536933799481627436206686276739768211826062402622447529140138467407089496830060480422758150024838783063260777590942523593274453751173252463958593595942522891909979308599556734150229497738845358886162902528482449349976465231112522894451220595666309752403601408018625507579980730093466252139017369806880996288080218841302958082176954138299563738896950101695637653985700312600441689504648384496987081984624136445647513607233685828088489622951357652383934342924025334175619831504525948307628641923425352858716067093216481384552230291876361833801763362567937333185414463509328409253135006989955771768026631644935111165343224839876320507405474241856079164282094579809787692510651238315505259912563110095096671075660689418217292283688461068449017400841082461175253269834222419076549455059066170279795770629123301505633509660446963055969789024698125001343535065491247225408058489984806213262163012904272347989733820633920647846663242448320102011759991146749387642834215332529224302179322864805378264220177162986760483373656471253225804986050153716215324390703037972393665914165689137473785344604996439063896970290332823884422918058992970672141302865556846373270762205206824439848107970027618543614697003019274631830902621645837936756649738587464493340783206369864166219679686881116358586601078588217833494160609820428944918343092293990260563876696060506591573098011762315537984126202201713439577201456176778260011503446340677216038735517478170427535462173428117837034555767488938962060888672422828083526123586035270671103686184465735849644800406165170740341707684637020960444076443051255597248891251660866426131004510836465582247039933304199157900191133743900224495617397659894408282469708096401663114282641373793144707719140408553765493954637172489131673957605830509325088395804008634668881580193478509347116286592902373589879206398107440203211498223809970565195027722695970595928576731918140274409157298095380436551945017626697004617505194885136469844033330898915782501294703619615768299992409028061870573840736409169976278735708426594139459598585225096877835142021467930845195023212093087120651102975780172071343935400677248954471974345609278616961007743955428743588109589552317638497664379682177920310388571113501145155969575088056434794810144117332318205375179689712721260130052850681192643324577281305194603203498636457090035854994184545431012088193996912616600160498790781596727519802695933905276522642089149444759051691700132600859480180238775356590528983036491682361845954986133146261900032414906795276812722373650000896000614714802598294695138302328975812115366190539127250583338216956788621861019837806323005770753259037627072121109764178290923332009983500928633181908488945435886554398002625911380986312911560551179297375862520738836385461143986650228366073126510556320393105424053253517406234723920929054024733091823949777999184811502301758458025356861497038854801312194981445007863083681558005359629753401219369955316151598792483226843519888025790803283474660120964287834971565880618082860642981203034345248455581269695704806145768087011491526719615584770453899314692679767330766415549502306746215677505143886602422057617836193393136128165163523847816972581265029136587985663043266793254053975521599697544393357992527766814230226874153667935950412460271847860092591642158889812032358940571298951308041900289861816033946406394864272663371484309399260539448661230908405541188173287098859930023954964804914943058018367347946847274786885685917370188500446062869352464284834192180543157830068659634521467900627717872319012908335418816148957794980687270756663494226559269218237734377726418360969923065563793305880897722803384123689250310354407781870437872449759755269446685802606352359589823354611262364264780777585118654926090814119884147394093472014701343809964001257130069367983855571058895151449215812759650080643347581385428087024245420726540488029220797024294328925827568859409573103729609560044814301145684937531878900708230468924456135324223560412390966478304254941938557674034368041400249884618901061574593481530782943430666277120835571517446752334212878011517633811163548393482629107768443157449324765945444812493587125227596321795602576007219124871419731737059534489540481638552888615477863856912774163556002133138611654582845970560457247532804554958442206690936847102133821012569223221957736790024099027892835861227089672003170317902118432931578987309609591964039429232413624931896880346001110814219838396375395975367172771327355944779360088101111318468502236628232770059267337372117193556138719950603610362482575600255428149430686633760627006945157145641893764793596659041451873518063786990992678804144327728676492226565713760800532279863768610816432833715292540026097911392257159334094479228724076932743199383829988207437375517138765599004852108700316357721992407690892964374286719208341456584966802874553288813595474994786217133894103035475551728978124957235491806408643066119547078082094514157710283183643319850566354466336300915947873974501207122301518926855364691328328806166634888742893233260583163997707233799692080078815005731838755061987659554615353839169848282611849106390915664986256828604673120940304624663504054934512184095787999574094664132562994375863990057349421706571244296858377261101434263688122102508228358216652399957280425593905262596071856614236626554155133989905463674752540476928766098646689701868533003345191090423412757971421234947238011623900773127072672719317101813084030411878112725118081274605125368688433513823867823763261051155288583341897525902185664756382081868718905895773754058240822985291997799003285631138800767155849177694185436830710957379609593001574718437964310780671036720497788537537842805867089119393302163464734628365158624626532495524359104072561691084180835973546801959228100185379377916956781422830322822660616439254578592534841175260414134454358788803513704167280950151272205308772276863972602960788516295984126158628135253815973459722959173097450462175758813074195374268650087843398640226514763787268209430324096345999095740768906225637544607906628056400792043009586704552516818127620769526061106672284628880829740386719642819337583839529874327325983096862004358266093410562707702827958295427219894660736662064428360372570269568742528093695471516088722243926675276159478154121466804584965732949507689044276998240735374602085953011009345227214977883337915031351165202683894578435698452672939643840256525526917617895511186071674541604823657634274520798865218790623431903805534774105862032621348654065799453829562465679995819723527238639680565445975918023831814073622218998700146657640024505348587515283962864514233584981909532557622236322178100629302393445017806161605407886268409703740044325614014083223065380030659478270174339209166820543673031057605952167823673375877601849078850300781974271527458034045370871100963922281878072232230010774015761623338302954161986239776931389087837475033788100375107652166775099869279728435355188724260060514993562694729407012726762966342518441395297819091447046327474904851355085975524802966085757998234644555090337707186799231950652629487208763658994465539654002307690238000212511236911644775710742979426608255462560775070508734452316683111985268451511375307466626230495903042455555830387589331450265992452047256401996915347472659141129711584547508788450634480564001844277759574969445937795545622121135003400103138454249886624674052086743774650501185504161453412175541628912882961893406676842036199712683198020144443812952070525718474392135546243721807864287198901345627476408064718212227722885434211245306379795623169775392779909034254955359424829633556759249718958277023068516431677935153792222261312159166030779129067793765161467436837997812192679223809384834795299832155870291049675739321139784489140924834534175786853959512861350433809003042309468330584317156974278947000169503856838937766801780621735275282822123251720330269063292601788036689856203779901068578562087263691732622917290554517822898903453519469638399376276884083924308937329168490284671715497292969237862597187554029039528970168010277689715091847800988077557669246896792590723586190660467815694091474061908231746540751445258753933630116827611574304417897556395208978494309011768669522305572661300119500192077373784118949673065511866119079899207913760292262023871579955046613887782589952117552420270749106623142147231989724346587091583510960776146905021602194938929686278629849309926810016295378210931864066676518848720737171555094392505444569575529948618054075806943129370384345256190868725762741901499439062015261148458684194112378842365117283244458302111021342664780580381572196370181309892354151780768457730191412514451007884458274486321397404002360849189521235090225490516672802404615392729912709968547397391502347928241723982866263158492422499690091214077234616442337527178235129389539437201697187006608595319641377392989514928702654078490877947795996617107930493982364354712868551018360565076225610126922675349223936492361970836219852489761682684316197528096554645430249998408893595572313742110342849670168487669018072888102572698593879142927287926820785912540022357900638541736026892666256770117550382692316693904597831183237420487184818735152784385037453220633157184158379644038968698277814993817264488908393786803045085861681342471539860612891072440523213310062117162296496192277672993606627482039328995307480595298552876442604854762584360709359251502443064674021723029486610949763662248732106556787807911792405013561418963764251543872504323387720706374175533988801769575859899927169909254495191281517003887524234451110144144576575658321295731907651130583561525823728121685970756641228874261895637110465082715358247003399456498878111436984648864717116811118820394809620351013880319507077886021943640617586335334919143410686884612608205502194304351493847336548507172222319232868295518596174943926940253382362998394736593418535198839013180839528570902710438848726553466825301607576364307269946413366848701257682205365226667465729976496395838113962759697286982540232940579338136064362930521969516713578960523431369910610389332009239614386514369737593305908638503623596501643998629844436580758903175712535624705628837999604899531827853566348302451347921707585817356630529139578192149748550345161635357624571351823987944821693030304626057652784690912351953612727839410449126185162781108432909522553516207784738942890656019034978427150493173142999079213483153876838815477243763490706349845442834971556624268614408510354268205280854466336233395819579278141438429185736119374732686006542504160828250167368716246151484333567043468476966220114134962122148858373801764661343417973455307262319592784113909696527348858711116888793050630175964614953704339071113435349246352058575625526015103708224850690446384748209774480958162074582569617335030275117154686026172257190471570180798596766605045934685543475747071081674519368755943501252101243788257996327469390040547464553063209298183886348732277438002145505002421920898810881039654856271075453578396028240710989724203324740371242378384270034850461664704697403711497068871864721154156390785444528936011444190808175420349595629918251382649143777501918577450230582255995447411544482948864830454443116025865950350166566595144396249124308171923545079331005551884061205217997962394337198253685171307682611708818925184053757131940550706231790545984179911445774612728874877954023826535414642354550926627199901482499181994153043000774217583899542547900050127161919519501980433598196021336275985527346551730367008875518856408198307480139905033615509421105670382000057559255098830654210209143595688407105556788207730689785636967039887642511641910164097400520195202951050516416389163352872565745065228089037248946688137499615481174144264236108265186995639630149827260050400025420423332274856035431715284295401460556461016242781341726478392627666467871044646741486996432830408896784572266402106753789779346848311442980930924141828402399586764657907566930720457295478270768263134335801776065460596689537420286989167293667707761148229671230788393082335917736858334982169175727532472895680769916887789382542583365223852512330028451102298934842414081392123636736472791261526138932754572479183419639216474853510653653971796696714442072830181537814449686340610658581361503445104688396560346894878226521567898284486758017350305476880935763816455289808298254479160125076569230383102940402317132770405027887203255401133675660955169014791225442593572611260878073522303817488857838989421977161446815681480562004975941273051576882081686642516472220203887860959846740540419080149999877494563712061388616876553113256488408122293008661850534615342807575926050309602105874003686095421438698554548548372633706846611230002121295371065642101906287898595220735361157039258859342315893555810424702356372488810944777540872528146781865984780392140318631121531225584549497427980009936104269485647806562481808735215721833820599668003556057703501724290112461364312369997713115232597776520475690760048198802374389287268924634584502799618350727219620586528954615989989486751923808135538805592442758710785650085707116878365621018355870541385740429388518017341563370059609984993271238488281824983967440240815708041802778872658718592958935900460372139214385296724921855697330965817489861707558210364105856478628466946246179636599108786895636645246127070494659700033601289699778629260177294622524746835982895062621873923872326547732819066346904122793903216420367747934611551594093053702100054794650265309842007153494895271842373617492572264707836271840295491649987305444758945078560949845171334168751140383094677917036789750689939948262613000478539123112574193967143185493315134498534885634603940053267904187646117185424236973280676397332056650882605395847565554878608798010432717070852563286888667056015537043627431661945257435396099345621956052468997386628358798738869134932454200567836910802432873942418637053833930481194693053650394696220180664548879626155933263715987957892747286967618882880732936997075407352609474492557723099528132319924145507394194135219529178923365674902610461375225768771954953635556999413863368996802618130833729406859405819050760325850848135177493573526171789729121520174485410247436315528300530648066336266515022370310115028328187208637356563289686942463815243187965429138447599097661037492582349654370597606444134926503758330453991532121971690082403055553769505908503413308471231289135275805703436341877363397690508849364938400467670479032715218533820391116956246353727241832043113055957740840189653589741164840855498476897015545676604762833942912769943367512544531542674516537749233305965354579892265056707511585500356780157378826322644991486783400033127061462458538949316329995825056619929934692321577202601337649937302559743009169163790680002556531030916621063304319808705872883649774409033653296265372499305664866206208188387324259069880701421430774218285008319354900973827757014510304179742636385425987581295738157664778452914392686088553597581220155597529631245710485163148582335035377158377919715825407129799845882912168814040214039066767671175728856837804717189986976035131001219319607976460083303813645848303386575362592728222317704396699278480038200478276507983510926908085612801666677959153027734878293917738689167100335018675685405005191583589596521208224892450200853999210890294994330257417387306050113757983373969546017605643640897450030943731613946011318293528568344660519683191852629871975955447824338537150790905158918783198581627293112010562253958636883745568997339564878213650668024712392334806435528732823293200940269945195720956840189013871042141781203643251369302654168234251222304974361326695516158473899189781163353085886880455747086803611036137879174181088221834715232025317529720625723262046621255582755005388385631434834018933905799503424743192818697761495946341200523684442828585881243916972005075031323191851065850479413823561202184187415044983018372407622024295941814263832220999150354776930404242128882916295748588905094510111651108204207195860667170024691125955200975924168168823884863396697360367875007891068185998064835526407486881912342774815173263684235361274554410471211954495974642391275316542351562518733585644870251519317732483880640966124574563563203181159928942526342863542966554668785344700434597615639395246584381928572784969296548155035535265007930181883987275297281744647764941322872881183060583609596153571980474747828797611444495649751544407216046212127433071182571112934759131097969427864177240911070937845417723346210542535437674193455149415870430441402220004957636815486372360587416789221297042281331299432684659466546876852208997059356166002919434259782793003157285907293968738426572375832714491572444010820196806700256607278117530828632882675160393427084854710861009081035251875039046683553050183998525875018963123140265195210941480145700287841800754042111087499265679599174041000582939484073843139757868124496910092853358459377556513362485973040826796336249441895493335949442328384978931159205686832226040291969446271879702291833683370392361657382411078766316936476553243999568276765621209115425839373148144859708611966999359301863506179869196580589308177813823238611679666316800470617488390352746858227080554699416865808884923620032946251536503784721014346474191604022787359606059249132011194892219181063167094989840314904629842841283039674640438388049169575881046361764072950140884036995586299751471941061326351723143840233763343048669975528468717452679366287677361878621927782669473766171716141023151212088161368382481855783982295755695238121872506938947782322988429477454467067016189283486490434014096563155879481166969705957389688013831820936485566074128777234809245044974350767118915330356810138294857366787415197336526114798168046021728825384882567385973349763946467474474698048916355429017354190615368393581041644015344056387244020280017572378505538551050943886517709159409199300305754439025484521941496932242853724693231184213137634783969428146041334553901959668455520569147945635760109965598632063981611066350460188588378354434993708752850018053494310052670201259495970971154360250256452339964068419665564632504392205793927741147457560885679037206292372600922367921358925730713991879955320490333234421935166395186313299252239229688250313675314034661762767165630750426070723919674210548185915369224950778820934021233257583702381690628602795584859541843463262803873197499907629531766917942946328444043600815407186122778765090352852467137561262490449173863880649606637987454704497545150712708299111207551412050386833079113383203117686537853968688263647565799971819811164061038773193704969337418604572097524936651937885900339580268708489422720527982171353776834941225359683879508507288596763666208414123976687764804859816312102938740347798168003131240800428763171022806370014589121176433129818661566731081801635756166559788845777587828463810217059899349063890815661531905812131898362595357146820495344736278845248209475013480983314445955051167926743202149174204653376005539576098464779257714284157487726109732765043119606157388743456152593449283966879195287174222248530762240338862798436893335985608481163512830378885518501089381033404613967012198978781151473157237238820450713891061228449769797453480659341253614334124274483757639705711055583332248342249265628888989286858328933689010821898992750667049764383213447765259117595333081745747929374120679128298202324867122208105520539064737245444335227176497565259205681911878478435361533461686970972224597665960559882480372367779842812933071648171763123756456570243641042694551912155591811424167591320355319238722155490199950167828850787542286246789339780126517278371741854412225605631088131732923230943961908898544664920000104634526937679410802728099138736557198165124983982378099417335392528034046238474465288753120857106595227702355182082446474858591322779905319973926047136329753418857457301712588705876776561911789059402532640317770588820009867349220012066626972790632191892215171991758488977617209380525949490368448384607089914749320272481177771305611436500225272402813534698238780276143690634693643463763863059648500296453086979218534141118599552901623121840999057408938833267899492577687898700124878270800837677342642528071896610590688600795810227425953868636448719507915655816038047521367700769514012311322950659935969853383589019269793047107740840212718326074176423435234184025733421130790535006241533470174092074635245196479754649064738580921906134094690429880027652741913565684149171839865377082964430867790906103796945894905176043013649996837836500316032192272736092713334045855538857163893551510531932490221630750956196009843827146540021636161451451151791593908377732152095306128328347720213346440836472611499957985332295031614542977993756339779236767345787616367672734522481015444757337164204730462015919364800121457569851416531170872318111756670017570617474672451428713517837038283420093956489139504973467326715173615959639742016916508025820283532437043707797371711584952855814093299234570687847939899695675578911480650380235310657661620127498772787082717847539532154467337868410587419379042419976885693471937217499110097930839444047319831584572989921938782387373195573188402205163468718056244659079420393391359492276800002293566947272906543291270081099715554259209276646205174078400623174069017392833648738658404950958188129668261904528847915849327417614569869423985220502425286950538504956021547313384932598044004184780007559135640826043340256173404700549419121528355948896515205836948639085841723299491098131509656651747659507065179210919170036940945482787870183684922265348144687023686884710926488430229765719993966934285534902286480939936676527053587181885783571423617191433066122955808963015484732780244401339366278045975986002572514477190748494669961492363062814300573012485118464515962242360174312685267180278761949022632543094354329622306378995914221835058098264763392980105598871951279496068455935827261169813515983557414537470383138572905673670367768136197522766698774376535089788293594041201596578259589851346519292424735811554783610622679661513189022997540330891600600130797593595061602326603959893817895742433830000159622382489488737692619253145072409651057705452669665650456851268561570178993369098817991013749546835231120951287338579667552138006495171736734916168780729608360547489175683092073090395663949583073200521990333526299837011702727939673673223129317076110635217448104369217011688935903016187498359073000689302025667652820620579683041679816926231710482127267125093262348758888901965183677090016810947405782567985197986322888971905365291714032156502164786647112656252936162647369919248714362278634612614705989885341413799302314481437390633721523976300042403466397225288194859824073673374236608701611924883674707498044863450445319298350512931140218899725607324822604917617929536402369040837579348196704044421467653260399684827205839730647471474427748420687756810701476172186132932866531760537441097687208970414405819650582366150202101982618763987640200022859482674072518754816099781848367260722494480760300194333387703931706484782168565559114205634391587107320400350461968002392678417110362159818916275911696027418590795581211321091778895587340659658847706084608583470060355616697035930864534339990164871562557595468029161323736269084870403636088098373646880617855472061043262678775179732071171991496443239721618532828757269118575634161987193506373871959107134571664456117701774770801835590510910294758885272176273348874120688640652795282300063899886843378524817622180829291208524016464385789842582849560056127800420001145774991184683042882426133145665336136286964616023739006565542313717925340608776120980115746207776909883719598559690662063198326782554398520275383158267332193522899449368324624239395232436289312913533868126854566165566333159085390846755887339123492062019025887114986289370384914303363483811502470674058531544030921174042929660896845571147337191881873030780482768127924839314822373760134577972420408112293693682036476350380940270411112620404594186707018047996949762130427136349680590671280753181057152674134383174944519143540201700049327452241421164232977144082356350812367033636508807307007368501897757208456084972350503416500054011461045685913647483639358368624174726544190476304616004826079384566228970336256625096529632623875459818030625476856855687305530764161821484559370733501410143543859405902523959246830028248264472761180915200512263900457929681973701093058584834890952653327844072796210723556188200955304009444465129496020274876691605790964408238102014441671839810750284779439169870087160656719231872669274174993996686691422477899718336966527405095699566774904966652622902290275661300114852429457301783161728565214770304608529184733971137529298591848532422466313788445680865010696611630214904400177062439202867697646697379904747909232206945973438026377174511160185277086445327916731244250520845461245210724550728488196203642671891303402744525058021328238173209400359156435913977590049158389228643947045229952248997609855311984774306526344764640653314780192803501361330552217163530312109353456812289024112637898800017490877662767252988440593139771865347917483029410697411394042641208526151355599943906617813243634952303890606486994659346140273690729165696289731990262324178428482439463596999666339141428048250387783620212744976527913733028851625506425442890434579489570301490256464157240933432714355873083270311967792405671167521267838153646853928196078267977492118674110035431562659865223313868002990905484736413108312606435004819464434189558865835759946860769709023313456074538255658590054194648307774533676125994341336631845864390237520979824776189864834895530887182223345669856156579307155439226448208672547703319339823734965752383320471113176025700737107572754421450560523436865473046747897924759766217575319346415709925414753468945366026441749026558095159401983191186642687309327364790272165732421890858076861980220018615996028683513368377055166518473292195855889682451327359642111647049012321493605532157904627767528837159044278968250057385198288105095953807798840278251893418330907503492240928629381678910513909006390304790112641752690393954022141753664447540964585571227668419472192539385415181986812612770262334180157302819487133880003376789460525489619886376606999400298214606846560652679904551298231499514428712527969448979762775015383321814979339506358008951235780829852933298387697519979643216578491561157596862987891067586423073102499214523621920294226109588425604977152159960726008854409748516575101843109711272857794688485484100290085037328218662406481945887981683230102074667575020615829121672228525226858208982739505836438172173049474014684672897631925244802280618736147200874840670128830697092289466093021448922753233271226827831524582859485726019431323149100122529172801261543593199944314288297214930213678285921631447367698604738359853461544556935442696521245681548588083194555987484759996003601617005506095505963023657949788452982935994204464419910514159425054041474365989185476613051061654439184089953417691489377392035433454596986510786448809685633556586343771226628042113728744390784095297740874382100691777164400544322230809450220877152249755746029876909942217132784399925370954432176836004024045043082069507271546458571482527372065603499404080398424184908485119993628823474472070969966972805971359044797392080543996497981738025594549467454124666495891657002452960018970350960633990561300371449828522549198705307628704628349020635528761296538948132442493259813395782196513953163722649376696146050243589909706837045277918472231512697123494156931359182476178089292526265286324924864399758832797947394319743325977947202882132474539577542639698471517626346687321748409011468975831628968505590299664596346483817473421423174638141099707829275267365136873065624008800828341055068514573433729765679433456034264196728944284152428993956201352581498142805582108752908859801633469554126286902268519699516712295945706968412456922677563543626293667947120205979975016709317694659125938731889250423590385195703372791576275218274878633032977403195985006290741284700093862985000765296399429458302119054139629159357463227471621608864211611321751446823760951431305996651800184542009076302011026912080243502071345633377471295316683196566889883900387809090818798527183715078077173626891718835827205135647026328902426505268851337184527653628099973769046958106514940058548028769364028902354916307343826851908341125823587904175961096582170968039823619841018452211816736349900977489859112588825821710775225812211025511066314553290006990439431916136328264168295515554525660725769037639514406569509488341935301170346778451794073935635329601047847742461906603121943060570726943514691086112182639989771001839203458931118254293614623067673670311351240279250868915220709480029306785942926533366163548057561053395179227130901342947471697567365345759265665824991485599522371972641063136294848203221422872197883601637833210779357219457868485253988194147491109302638344554433652769432186276659619029123203742713313401286892773770848440210087639243148853945965923725013769367887555472258058902225927380995793637811370127734386923675076133033219762216786851420109035001125180433263548129581041605762034198945766137420108886199274596186321776739236031214875778361790506485350060377723545126960097344622532660350903844515659503042078953887064005007363890777101207319670682034109703361796326679662905168284811364193127366395572702406983870475000411618014560363655294407666291703363886746337167564678977057330484570544734697746029759807221072499304675853667556948614421801640987927425790222717833496944184918089202712959073072551739485876172821890830898775606904777358911458676960576482993484376549383185671816900010224853892857405796141563943444563799444023221386080340239352137984543011920285593085202629302902247911236830572635837542777759224381401189406629058491395626838270973409591108958521904735511018157897658853022645316251318393975242100941555335703315839363768017803502388563253970335485900176286454083893370237219087235609194837387434753142293790870284863074423009132402932341526187266120175535617096011803924954765688987556198309972932378338681845122941396408485656180668968863078238594063160806385395364900947765536382351072216500387748240641886169223796867333211803595753731650268991235116042418383734037447620152091905490935853761524673173277713804990206879086410132651969552599483730320872809838754455336189606764583925869858874170252688506684671269069901006216623234742876108387418308219169045486558681540515072783971473862540784586994485993856633020080101302019865256560214997334719090854078700163963407777667281507120102739207773105951589707251283688115409010613513523809660057850840586448939604237700857664470382055153042923707421390812138296696927871678414824421332042994853627492701188050878953606439149533901454099112186583679416900087156340741374536891720483022872260014625199110681949380037291400638254056990488890525038127786493984232401725916167567120937345216813644955321358329832254845937053961538816276288062087784880143832449971447805754119883904714705785617840013833649836374718056644420339178347236092228948587436692011210266154421687532588545671782578628258444488680030948072974775456115823581159911784783077911407453062840663141954875916737732956212497547527558732040331783039386942609888219628190315327932466500954115521479790308436340473481968373753234394630531844757161392029903716120679844885344359777548219731277094303765425267583248548980484684105610817410079436425713067909804580819927992186670648370775389528882321695885347725034476879419485350141424834756765901202128947346663060839642672153882070052297149471352664012766693856237625102310933922918031665517308508354587343817657809569653641869312302254074671840545163173231461303526466089450291355402093289638357913506224540094547068360706158766200787909812345569448205337597838817988576160113559883930966301721895437565016609738602927329136683387067956222835921754794051251958086423573402712361445488974936589662436805866686286083445942268090446924816484056312444935353425911086496501918595918008356355460573360526032458410856367907036343837763756893988698540285102580405853323250371896749473204395206814835788692593640800497821288273707314021121855786586862366998153856168302729081804610429734300987866589660757092586504653677015911402016229731878257962092399883350744764809468064228340667669720524256558641487251949710222524258816635711694686361442995374795833278093276054236148647100595573988928686795909876655621820212687710192245400820618452937496032228230206392103258425031928318564228556149620208288799606228656380146338175201903165247902664250046409600133115268410907210353938147536012199131125710935160816524701653767948317657450469639831625932300043086956693331246358880305639137649353720140807006685532776321528008941186671200928264271961001300570289633003453743198388926079584651187003176416350747349663332873839021782327322302899383574088790467251809406849927692482021476062004656967376021366612405044921572609096970827278339818933380556251302889689996623488950780241587763862396203560333126058973418811140632696805100168602245909468213076383967217232465282631335415775485412990111968616015025117638233678274984113027898928040382931324054139474134213139211912374324075330264047093840070452498955117679436870171114456029595926235741994986568614527485816739769663774161955479834743422460845142429825730613213505313141518448556537442107546127936775424692247151707247364096962333594006848967780833395106952284312116634750813123086563133902623496307647919182120111928019972506398323213079904041510275653773452651744957584465421896507874144534906972645128177605108176433462328665798681785556732088207513258054998596509541518832976110910656209273321459048221708362908027561030473536072699282999196793855510673967652631884126299671764301610557946176596406268497589189852274925142566511343275546891291064987881392601657528193709245178791894150934906293786845089269620402263937876880384154812706313437312220299085167086789129167913115772756451592946003384984914612945185083372927076012843446442065175566829964667390325910218686932339548887585085470688596523400861692310363862032794835300851256486112598329836544099938356129258741339846602635309518221366235147136659391387951501759894767487569523288417382501542017949950927524658531503534126833880331615597245955918267703637568306172498830363101316083419345240180392902352105687912080093753039115946269644164000061842484149286318076552158387221332661768851408527295948360040925425524168354588857422832304018814936786882550149421699198240561042807126329079383522113068240556311623238275747253982730792743622706323213169145162716845693426320770223387502267541566813071745722564697083461918522758837148708242666462915372027644113654093937386657587441085207487155486738010254410550370864958953997227794136858439671638530090676043037786260006376552130428649931266514203292506203762098786522869756702727828491356493147372493462070081878502143289928392543419576421317962824771720447178696649244104569123809274486142840576536195316994860921704906312710928811840789682641250408835713305334469520947882476056660185795011467156693051344540665133954797983231872098254592748584869771509521033815141182782453166307888588606939083366298949579834263103572947546300590793562779861981087864351574095821247909646332357856846260592279730121000059956652600388915362256734239683115469238452455838989628979553464089225042814197198084225949758201518540866836008747161084572205756993267367351573246546265619938780739483732877536720060766640521096248578977815036569868911584328294665290948444395322275663014944024430781772205447848532747194923405546743497560913751632906551931358860960302639662008716359800855792178954885572461446072978144815874295877890493261079699687850300327777819110008853227176039738591827087899579440249005881354113337497458315738515300966862170350023165371241185389707303832923015447039634524384834994562466447872410186883436542914722213577991932190480734239119185539132515992457501455632200671273785210385546725500751092357907417554694907576375044408699810874638436991425689675279172658089918373855071866510213323099269871954517732340511970949801019394429488504671402605660027514388411703862924910147543532056835908543932415992183793920918444518700914132511012116538616655009021269673581414555811718775470292948848394390473719808648777806823413539537525067956461205213233648725615135140683160722293497362738567035198481821371020177057346816507859505290256670660868201309782410455610848656231609982815292594017061467403693869641501105794256681264057537293103940293279104249156379978757931262863329504864822013838523073094462761992096511542010517118670487358103773882497823489871914018484702477361414457964709907581614280403311338071131653114222988476415621883999581766408390723755877928584002494084049685080092359386474639589116236874778490756285193069419915707691880103849728325333918829351377958307274845437399802523553707410432523680891744208624601453656840884088882654863604553756308160818326570955410178104754043365476176957277514616312644695871586030893495666707703025288040483946705425115183067120725851509572161027175063169633455703813219796875265530402364752535267745363564106757981601804413443366325899552314692861959216507343766133667203422737106277201794559769533348387964926169620377840761438746345440916469094194914433360761235990378907441606926672839174784681895127845909152842807416861581064866629147562151709828044847272257264851605992761926033536414493421136602511953939217036615584938512463177517460580777115085864197339010339789624536621660032801279325157828656034405419803990753740878909607025903333812551363512571945663850115326773345778408139675885898193841750497427511519893099482073211958781382412570166647158248523840409363216513736352781207494697316162399073308406341313603881654174250746649008036703182792012823621364105975349321655329307983634117688117086360664276998447715634050633978628280169281783739369848599221078181111542754100894583015738361386105908521942184193585524908698615795431079651877964248052583937533716214943825885499402318077332959182249285576276661243688602773048067436911649841474169332910400119086491937844752949472683153932055113091016440812408973826562131186421213599401856641478609063336935880224214549252281419926562591705432435600568549850127477273336850077185307524282248752219170043216865814577174247171850756442245622999130415305281784149416942677247358539816813742501095238992214005132684977797387631144458788625725660086220363665230372851692793263119916209123482097436808985932692961591175594705522555450499096350804220078778250844229248483824463104755088296293956943437114300653153927543590154083209844837947623504622706453110712156102922645866848865602418851330767700443598957383536258486114343690047131748802561740320808672699901037215682472184846338753889910013234087287932562055423403287950544723153196242706207345532213305406004814787955474037961312502602080198640112774965947807677430001395166988625739951001617027709645526623642174238995396075285365054261635390339141386454460275890177699993408089874700248502832298099040866941122224520969919114627945503959423103818451280604436460208205273145419121783418704158537568379613282790697537366698826851411901931205956541919377582679260253129134679279318600711826441361507809519200701796140441843265682422267747214537418924252349869619293115469037921558473054143757824828424509626958566317624356098742263240865396038353962156255052984645942319254015061203874507156646683382223840716975482538800578467761303405345901276018176662230112051494356380911237707711294718698179204372584380200900358749953959515611295634720297293785678181683191346383122686160752874402476803682515461142001984749707733602239994772157373124472138035790738237534089314091192034832685256935929951331332164891941362358230834303244820878937537951066343692772084143908565711287986217493110708459689556340494761618569598869261556045441784021104993431819172523071308584925929931494118730861836875279346092620826030963045412231250031988171182090442168702866866921155710869957024526342725503107962984404915516649375230817701984678814564008199048897769141746785215085356294929036680202934534027797171638309282647508441867133485430658468105457043958688043870925554566436999239090829026247832416992487185335173999048578828379792345147231390250867008155732138168923553107241077801123860378609059288278202085137774799230129537028396410322358670885558310119281299979014385424333974332946883205078061312084256712127223399172837847196684289873692287106942550014787682688941239458853890963136580560970713380014060225847858504588503261740450494577198185671602985548659788143939588925047332991832173527241918117214533588597788897717515790713645980498750347989770523480202745263208134907839077614170529526854544935382713719718984276659796432637811976208556052822708675130320450781676374136611240378261884216753382573214296174116503471463131964086763827380838703562023497097073466706598042604042690741614390664377945896654557671069671174503024460859115259719297308331835077727949265459729495391406321849200806684068568540087260941958370477233616456919761637381301328766388120300928241315370981469944220091615160770043413022317108153240608011738003910079699559464884083087652760766942910131247749822332607153028274478985758453525858839030881981383475974027957224257839387719159959317219654042990856626374483960618985033225549013686115807200169573473894180041069637005424686053071940589112278098441014140625864441671809440961870969599980427568641763555677902292058713049286386402030743386079710892148223978198278899962494793168532221823794813670876823015866450855722808255238964333577905305934064568995800305056983184066957830748545443706701027215063697421318111875740064340413576676041131715232283284586023251949006786756749929037757689918759085640428887776526411269251212510205273204409880019876559253458748981493687533052221290188501103958109372463901080014735209148386992299141280981664971423206889139226659183967149595969065403002996952746385935241581634397171637907523080717273282605053236948561897278949424545915568783560966260423176526237322312391036525239458472522436845684708424856675085229716845386876465790656154853781114675776524306550139865194095330941973128196156998525154523534058304669573707562264224996843672321894079725743386118664227765600076047710754252995341326332656134697703102027659422985419890567578177281148427594056898170575943651898137817917283075114038059426196470687607389087778216897799403509912370499740105858024554791372313462486854878469733891812645413557797405865751423194902284608919167196000643216513265565004211681030203075166954715010934847973808052151900266108837889361902093771834605833424563367381288757103003745885825096097614777092266211581378782029835580112960488631869262820047762145538215084344071275734872224238361876188607114184234235124345594643422599759846241040926955645634529595511721001718106651997100422545362663399515798452591346560733823890416982740677398202884004624070590383438127074516712532907675815944476888522134435278609594956063963129271575923260986730836279575437321909568030642656000227170363348561076685544605946053247627847824612589382384422550637954580099534264165453489933041367981221606886691171436407342898262646295798970219389751062445717436441497045872490700225359564521257145867897183658365567817398620090742664790093449827240515763739588615886586893700610755508212215383145291958236289906343492829282525771090319513772502482994130550910096871145683960578454952551187966521147219226866248356911771875619682005076809327462067591143951636621508879353032807480979402741238162268293395622252441453918383812400425987320462313746910365071098263426036102689088742792830028848437550711901963802316687791962890024734507526734699162130860513763872556050954232288292620128150993090084672707014109054190250386108791115662607232692809512145066325596825589060619416875193925272875292455981230144878116427453171044493655582622698966811632613496671991565123870994361864524433014275964660284049819540586267693958959165481331812366826832009259602857869117204905836955259802182471045955361750094316246395674062100786293015552953569375037379789888904954990654540905245410202074345521459014374446944255379904442409252021614404417429195049542072750744689636524387845634245810102120513456344320791349183004534147858947002989480964073937045166458605478484287481095684684001712826603781049539369894130293190305963689192179459649491794152860780289625316651940121290543864020536271153500746440708333405823084203300084203096929524516661496868618884441268712356883709998054217597194569629345017389769261480884791023292953847414318061839936312287894966831193892513573421100641877607483171545146214808982479108651330764845737833267829748979279186717905130273132518119802641272584126470845877009365821155451785932176829062586773459310780023846675570361350577770022970342204305535133373168095808531983490302463910178496257703711194262010248704999429169245307035889757755832872506196846268119407289534121263372546776488079250988293933483691035439544243905710242944555821869693702683338453386788997216052810237746506821205067018751143447124377415290612941274033161331975323615937832331713466604716110396856958848479319544683055004422581389208574071506496979483629338923894578240381585495507763291330222609553326646824880448180613167974229418206129681966755495989081864381092230047665060400384187371252868415231481709676984906194658460465513944517388666765535385339904202902659331299747114840652869374905301128503712160898018591240490085636423118115405602344551141337461382624516476959912327980219355319517788499592888730595802330186235167524908777335477461052208533901781207749011597464529715855283109391813747033982757238514095326436998393426088597541041491131981772077940896540893475935691585398402919191169777312844301814315156574337292228683478569065572156042408128323600708448057395508631125088778787054224453075666671336571761065480361421909056099427522956577593744152731694462022449012041090718776579990855619351300887383194498202339111911800523289697509869632965140527159548720581961583131501069100620709546207117962505784993656903608837948924044428100111474312127843875600474468384596473507647029568558294258960248681952957595707164653165959512066200538528228336443526500064741523008530835285699506763773263052113802570627416975484667227797200537875378280562509731118921856610708802891749776452486281378767088656553461377485878018695389725786732505581763100642127813191569339900932606055162162856432514609387949372651373630277519718547597213405228092104469813629262061257438838857196635472518415371215001497589026014776091949775404176479552457967114660216906407219223637292622254974706141163050921511717067288727678925626472247071410537139506039004954555224122300138933694082295371108144190061418314358360547303173725713632698206083038801744149435876458098687880635572725421387474638960553966275631600842365412282427607559603410105436338189538276094142583452169817966813447848959456892665222647874093380652130322219419017069281191149080476414661379746498489888919017414424819935614424462386751581187649804596496320799641578231372012539738633752652995019633564414526941291721892834775927425151833913127003301385149496625471710162185035708085466684749802494182335045179116086918364609037007169850719977322449490545859829156379428592593696111878728193147449768359218548538792520293702426374719529674468190946030927299992332604182471651222492033475345118512759560165849166687424994323534909036272161774282133706515044199230253508826998482436079832007689725221931524700254707124885286066877035851107438709131358368383470713470603687590315494979741307028340797720092808000456582018436940277715875531443629917969425284764153791668308763610303485388648616578858856212137047229875961724932033691763179874779931918693228127949257713682884409028748997979622192851067818483746536732368439595383742858904702140583057995721976011804823079702683339310176760206765937813928455582469003431700413748601487805167685529131063898818925517418009007798544140240032636229194335202927894063601219748091974391428852490489461629991007737131182891422457186251324060355951510676625682219922971499356454528270379011631732756265904828809344209516824293215761421423655237413457826959052595409356429706263266068477618653854421522832395313526729575757410104474605097188499771502725760014314699038501457082641878803236436246201182368921765575731923621019809132702600608973740308623775334917632069502021702262867979877920933344159275324808264574388545107511334963655310380395601938974185131874096772003682228930229344871128031656397184221142203359853782389550506308368098790419459649837934019882744046635062081516473234109157429511290549256466005400069752608805362514849372349777625118875904413402441525587322493890695835253112960721587077694300811912236091110963366055674481821625760530622410894023734611569900977968428012576494477393965026428342204636738886886927011338526410445994057734628173124270277868135397793412957850777975241819093320827660292299604824634695060325505275446229912333151687488248374946863918008920775895494002102876874368675075510387064217753977946783740362694125157773568374959819635157612759043009997740094523465001762414941051307691892130496191401138113581539767647319594015590986775722213628325007176154860327956745895411232342041869015264401773904914786593355588396402043507161753786677404771055356485613909585859148722024305521875985727693039260110578400663392175166711351937347035170775397221637108293294046727797031524396638048178943698069250395091417110198514452121370563278027437041549211431586570662194785645837081734748452641993912285923158346914957653943016584982030597877263942924670318496725282843652798751855319768313026527995426202692654691485123308658313188145258477490885094880366676624134409031433506098649259256043134313020396826069279539717240864779299586117783718322298260611863562682776781468548135993798697649998176283345807270369008747269430972562583285747928292150918252933698530706390930774325710999837076421005688187163440765456909796159487148497786366471606955030549918954837454363239287803334650350034778569084402965557109193614866362890727247250472387661447072130213399217413420479304297111494440530632017355265121593092842123885524031335046966976129619889998500525103320867392835660556053961565501093415783911692456881753926144943749820596315228280245422949517537961728602942904040306710865809514987373848279786652081237899604200027937907159113125692337075358143462478316899976826592803143424470430198648929206754821812059421812675847942986526524176197033931680700061782391553050756537783112084849451938996394842876980475495430819594042572168875714828232852948796978824805541588169912266489674185500892222757975088117155249877755159774829422655033583452327390632107889903107147575727412344383978570040953678213162735020833546576643595088430766170129635018817596588262938557851512306872120150305077641903534063647740888240702198160219088593737205790275823216539698850878471979479184377451840805357302429178589586431824326241251397014040675723159639597154749181010414353733153429879943051569214531109275172644696694668052767189221736385077047307532751451449119062736419143365000710042506292943071137668819073932311515196662461901346817053632351938203468287342216879261226301778207707993311958907123301211841080324142621321930405373523614109901409973676795753032830985129115426874067554619221762494250519962701200502163226389115131170438176452591033649067139051170844856919748557241098828829753921971253580504713054035432311185186665629408548243655306955821573932178831565604295135077980421999190023995617402291832532741485170556778750555485561186718186505851721254577517665885666240030486222067616611134861693767402782688630438834728403782926037640734060123617308326445895947419885411769609163904353633279791643760161093894799827715303202624522378252955185730209695372325009165054291095619131975482304522418490876243710168195379919634295089192081891000013040146737482071912089959852101035764915161239833196752800829616119400299579211122827114157737716737250311786453415961359875105345748403302175756245556879525440439599374327242549529391680999978253103733106514097809612521259723869362607806637372577126970068123548563369912825855712765481885458724825281941839006235105483182282537032351056160511622423627074702051410762792540176478951270176738891638180509873471435701014212923748391104263943828406309616413502749136793886470367785603252827561928368544641908107494608731731154713599778527295125109015903717213806246974038967254171009099721370764939109214637875599826801216763653278133111239663640576099265579306681029091852501983870169306840882142059716166756970454482711825958984675064134838100289025587174170268649649644274779695171617098423418260224848474595349503735663321760871754096331515958163943913620219304657839310029234551668306798122095753032607112591000239427078174587525585438368472000176211165974401415682699765334563739966059100925550402341255700374052485097003008536095252725963225373797321446652021878475114538264301841983979873698597472050113156364109102066628404750626945689838778509860746919508799766037520659530976667672298717766006886617271160036600525824622625750270850774149267508801359955087051948471022173511660995395786113789535963416837387063531963120599997970672071767281821341853325827209259126707359535122401361528885667753999561358895245335521840071194370044518034181182722416867257611909810868329167774874755062846670896609512403640181221797202889596939997934553948398718594667692707513334796675055625728936058192391273504752909683148850327853895139761802686572951523164456469520069863595590077273332212184686268697924010837796908595936547787907172564618546041113435170678360562527277713693486473681800547406447618600954861509208465718877965838869172815663193692744595335936666397089946599794850495775787319564365452500626022872874699488744376690583617602048753771312291813491733619067553224252665170408309805804025028167726007910778157904970212544843305091923230777409250766806494198486251430851626499963382401008981751741497313580384527042979592406790372612228325003528714807866179511998404142496529323709167993196432033839006719047478910298998152077305063399657862590405572496620333951427350480640429995387330530428740618532822175069441344044848377349805100812652866467189694640822688451678491070357007136953255038813590617430782121429989825401115246251470851107953046412736895220677188105629158280490064196312122734857835782407859208925681256487809016053847767786348914934643584443769224587472995721806164957526883995643385739830040398170767894709773831869507475144701295583406270215567077305998004963442179885113842395176381298785743572059940681068085041385897790736480974077579988360303280852530610017165968391865271863265988574567774953565319582349821866985653793531605520859760176541098484589715810865545485255521759902849577698443008876949017123730152840633869277270818444316493774459801575595379659272634216337963382858852105335724667858323094176374364778464504728278162773193859643216848088727203150322473804318345623264543984717134764343236442061733253259503726676114090611284222057692502568655365744338811658486985466368732394119153034597907359500542436988081901424494492425118005156255001590805757600137491138412605061854557920818133818469097520869625675666059167462699183045099687045756799182227258133830020711244092415400633422816740624159820779626385738042414917596041284832131931833339150995429063726761131147821218933681584561091366439150678137917781942728214205865707658160322108871297720346497548578548488578113752451097010631046301857542145009048432321062628391389758502149118790070260462563221730008220811328353171670795782562732532673110581895710688024027468915518346046478230762989874294779238730705973865786806532427811018207468639319638102019121692143560751205090489010098975314415926816110281969660539658420703951060951330591002436255458531946773615878678737177978471260101549146042088304394587357863312281016057738205663359997233659502853523597046915187241290488286033027631390487580888481136673529066485756846398351301761607599500620849807408037296397560295847255632317795484353747961340402142326904074610119349840977094418024629988175114844856269454749092116215213074144872973789373028188511757828494546656555147549302628061843948658046630676671973358908736664228854118551040684528426125223792965295199617558338978422922031959973051989695574683606540797353700749414962178344811928263316379440273142704857010444117540825818349668754103139823041414635654668914052652570987619955528294863689019813337852319773112963979571581227703656049733752380635478224722923976326593453522850143671652305193441748063291409317397830978518349262978782398558296179808214313617487847946573492202331059674167026903121842648252540069338039211034387543786159568885546570653659949034857608012828493938153695220120940852712972196489711183929244714223598304182966554299850942587240469371996533163092985910949324765762110062263678084685043228788972564089032301379142046687175834857239467258708474510326319318255030201148137669027715520694697946017386145126032766499393008106522825830699708299251957939222120296042510302102505055388093080516043872189769834501533444300940709737287011319887161440599765071964432808643708790855029696715635655446693768932097466473607187288220913096116407054786631417030788494423908027190123889532812465059852141776165565857635135374341688828118339166314964646769504132617614338639725749019742651608028325907567137046876210550976949406723242728436724406429045627937938444135038431461662288019680870138602840332597342785597305349037722298344575873654809443321586896178555421582652700609431326160546633244531190924029684624195167324243799287508888742868106013830681719842536269861689985170947631505057815654248520980167769857658629553766057142157234063112064229506688855076812834970010501711995227221811635158312038611755079208925748142250414599855255644086488237864757110003839861323449983198110930092690035898091806844621039630013897081362216026434169740986225088088620694659364600729712823604759126742634018552853763173836084036637478293860857074334353557693869306548752058376744970813091251062667070631180440495498725974747382064556820752918253179244739613095909923962956687803527385289841910171729193715337466787460747427772892071015419799873413710263509715133134559402796967625583411460826596686850079011588990311153147893908275009766120148886663904978274796778340157976431118898402776973707298101225601419054909315550176666012875481096307316040489402478015357732995857985618596240124893817639156177689401103794540058557568000797657602395361330881306845003039988751465124108805469312397633968203937525241853926259112053355611199228186236559317398396439721485826100097337438741705942322435101451881906464760701143305682610876108896690928219114452285411465054681662820094323905904918575643789522674153047503083298839391470357811609861973940692797748498434677925820812851183975300320612566732567255278619742133261228344051138262280207925989018830672807855593194105757217642469127755366384431813576642260771878688375650884269547469486949321695922696109353305223004436795549522963657977908796681486626608201297171158509572176091243342856544975935907429331559207380964542457587013002720274526778552077809984145615272043227992587592673381338638121315606622390688759268930669674547632790948925497799759336981988681698641116647170219726105254924742814979014391481601546409479294927332440448990626819461342884012485294844021291080158521727830364802362260720763062284380374146722916088984970528685515668411110298549729486153290270947482537596075129421516780652354135996783578050971999087277218871231248686235609388477076066245601309797637890401387729557425042438592187031226929150216805225197707312417184823983039694967140515308629110241746666229352620841064326375731048211004966003984653455113890447332598554617562136179908640762955124858289051156537411259766330297417262256453829268896272407176440207706782115384893496597624942335369878994198994269421226605894553758576564293891494410565676192044319400764713239106688755916878063831548847791079372025099654306284871740680143505606878045863486248894135292799386645972846860909041729475267152976318719070092497141584909848170842778662890271944758656853813328150172639163917470646019511660038495521802592929310662250719613510518003788576423215718559591506882402794575694141231985835654088162139771612857223985262751409885239333570623202658555895355094281608780675593621923009163359269143204847139628676333190563231713611062757288126805181552120266351884446018589124501047190608212611599072652666795703450207914708743964542478989786014104584363891593062836384483104509934165630819931256431815628003900390932643340139196073627310604401266330722914340197037313559795320540290671308327400902609062450911536382377075808176576249488627091200832116247033200783934976015242304289014985551455544650884061466215774078748910352088948240946280977594466321900734762354905511186684189417093179373729752239914703368382071115373635794268128595731786972327930430581385964057298306266631055600613423255272174313155936405507469315977938604860088314595629673499578202802673303167756950154426734079293506107808618817602834908541405149389887836560522538053307542924828835362269989570055207894896076552040495072479850976231716626730421474803691071670417821441348359080986878790717811109977575139448814252154169872958028465690122627012334068178044987343746219071537708969935100045504890336443324417846488152030696032403490808151523976671529452348861820540303790051281560787966793162632850269947075912841543067757162738007119377770575305760813242217294875445213676596753474527974880234101652167183978807265235786593573156352229280251959387529795491147192853462089764012202577115730802793760651488845520076582422600070669376490602950876704669492578266225467612724291821207646404624042689278222375926956554217270947072777260179545293072384887947135837262291994559556469289434170459068449851041078036703429357043933499981187144017295828358519488632227954005863477118423558883503040861801574574054925073109940964426675448543367332002633511393331478992159689455462895806505178617192333549435449615469225871194509852535800098619442197622436949035597337170575512475119485265172086906379099758693132800500278970994917666254886213572590930816773293000523951205418539642957563837664399038093335428958833712222770133340584880646061475951799916094716275766083492359671888357169872741391050755950932669328960307274018207960947652108584583817869510500688565643520674033431733350878672206777084997194052870433562970726862451961226755062702748302175328189577567564693303384864757368071990882287543142064737788348773810231243732581122841884708796445232054852197344388654370418873130446465841257185015986432537438295772916089471498317010816154607193218058276194345393933232762972962856977746033196552592346719222080882547633602133926529833034753849356629729513272665073193451294139053271789143149127434170230043746121978034313741967313303902373112671447418989390134752574077730126773414198005296371357349289673866283824284141621974335336593718939335590030256841114612658314021084513525726212023090551690928007231465863360939337606003421440377004323984557125876232501680940095385294877703562787381032382956744767742794333446172761945518441017060066265720142062253898890875419857725067242808975671164245476245057048105958548383098596980143557138127899456745496508651230448937306214260730754465720094433700850617748243430559597996277276801560934603083391436832385753069247750438381518099075091590962461529812945108209153423142877492949463052694058918464682019695103839003170686308744452691698866770125718894236790717170804938756966419646165998620795006293224405877741893321030252075777488163512327618559256030400112066761553857964763217380181471557995537759124171724530171674654019339859048390725432515738654585853781751060017826332634900176479875899506966770673480277757274381369405251350407946289671757157310160622548249214629581579943883698749268583184415981361462829873234352066806817566966543767313210504309068259742835064521408110131329575968542569162977394315892178381152392970273666271374823770284299894422004815230484226836222272687514790076335203993648742362735419203659834784456770456558282059155758564585230581982999951693778546538376821019819934970458990066514545878512778716284120218319914421202567735931095521977898448245147648690305082967632326885999383878938007408786788027229766720095612346684402079403224134930351503196494678026827528140571767195067643863187547303730931152943724685183798255697576332335562947767540411173870279085082942088999705955788565395595794420729086105158286235676368732337401711201038279665907648171216679380051645989637864207107118505745738648148496432843771364756386309132421391874879828998325027892537913948298755341180997749625497501954532489053190730646643311201490542378434590115450899741262100609226416733436037523022121707703297468986682527649418935849362398826308518371970748194259346751632914236617405960982555358294351034834362861570821966750356549848909101117294779244945991593315016482367728234698010235035343013211426682896266517637391850021340637112506605143510478398840687532783417768940785427620493668608346644032249154497153586227344435255236526222269117807139205023052888096871609551023047612950397790671073937800990026367674051594843528048176608833392551015315461341611211587784155381143926145417987498595783295117749017573714078432661725112587347354897633980840500042447364613507338916732492851606663900976942203844051356443197941727291219466048735663804938499285929885926989959971292188647316043824857925535075922185312671282343550135599628398181715861597216617699796026119633428435114349553715016113704264347530774288291338497474443343413325652421690376110420775754391853565789876243883957277770941244407225721215191993182129348963587437322127677773868613442558040869410877202218106589354897006356840732358036626372545910810344720341716127572734202205735797696647074112884203449391245427651912433987836601948663675631581113189184993705858445392370969319494637777148747346869233032529944482946483990857299595011300778097743210522097564739160182895386159153105963183477327888254658733099840290298049120058909662511591287661075292530816770497895553364928753098705973317252673457379083848229196822122979742414257321087022802367931304347660239316505706825997379265651308327436429263615162487222810958652810829424873667636902232369419662360355112692506607082155163551104089256811589638730113373012874262934389931672005360837322919481873427186146768035338400868023954408801054639637676758924951805453058362686511740225829319354256800219587292455628610083755754926332686400415826304435392151899640406884009620539113387291234280551731468076167847003454127200730728771409773421859669307826133013100205522244170951871253922802014113495749859144498413741058265328379262422991775201333322918955868263394312165564379051885956120722704176689448041062967367298708425996944173338828392416840373587632127460490467810129804496574014888238278077311209299415607677691644527315913055338852586559775367077553689016587944415333867106714444555267076763547008193266489995541319832252494028976874487357659829477501175029456502422906064545394696462844920238070646513682366291551160110254444748816190503905743954341916587702071067462430966434015402455955981012718092658298162038481624122546749115640684681604914818423643749048006353572713476132726535578460529107342459559480846826379878167985611369111324118692704927557964727735824720889426479217627675173046187697148550653068016469359607194071097239261657702087999425677992140191575539644882489470327434181649648162273075024058751935842024477291377077593449907408480138965789179929174965516809753403008314386958997764167391999389367809958437257111157201819090105624923681350515736426962548966392379996194250686818832368322121865036063373017112502946935685356519085719930808330290955837295893638999688676985068196702029286948044746839489973945740410769567236796953201174016558956676881867496797934554372036209932882302247694437618416605415498627673529926294260757003025824069803132247764221422889948734872119463094413927118452706122204295136942680004358999440983484309381121483627039298187495641370861543101801107849793101775235275399885009130791888732040922805755338523235461531794897273835863884023590176308338706910255592254546862045138565795570928327567122978156672629208639677634623984923292778445914112247565984751754830455710589253326842295316095881785449296590996698617490829171150312000075322283915491179109630700728920671274110154031449408641439006184536504372889834921734746099632085660253815170739465225805156420962334216606658708695868459664427543820331690643900737128466636243148127722504169161987490612522490245392190832360063163287532193680417323208835830737038716822822225370361284072108939314307723134097113930786598719138046196166602100092346326050579082853997037025944450774880320164452521451416162418239134489027843432574736441674956824587892230309047590758729858241930480304605275207316936136810182493661402438217385505646976323641098070950946627034068075008700795516386468579258518001821865818144621371564218924754037964167823191662183913893239158148428740346369010285522115584206519612249683024807316183389901005217493135076689286879959511618742087657333019761387696593780411856452326522788293013737628923161130427228446940922668507211429922266705071072818354242251000266419757792662380938447934932205850251943736295617845310911298176016842752474627630498107682232378131351627589915375569710341847988095965114792368827066251937576061468182462237557576585973301706289502848575562851673416445121478420864494504809270152662989624692393963016732247206263557347085784391159969256108244976675523557887328286964466346452704543999635127056603185056844433349102489681448230374815380208325908076586072951552178715326004760697934175233510928297779454977324622143452118126710953557833745181399049123743222484084265477656583826283672088187023459038454456449603819639017459399279662520925338781383208318898036167658294890595548272582514192891162333561074824780589122867245080101609089452144029389883824950884603848392773956552671325873971580683076805347477855352816332300475176805118476478338979306774525016229942985623283662397327175666908282377300266015124943982496507007428946990951166010752161132174559946950421686188837434108905502295256458105427074422020164942410692204529181968859708089409094283394169737925911573526305037535493323722656087084966665497565884543295826749270584361693849175344423081780861881176183882376218074439504837025115052211021878214412786756541322138454947032723982181479037450633926274822948393460294177540552285722032437249671641079569143865686092296486640958757649614460428511526623655624109043789305159897818795703211941885168974051244359292316306903931367522978894753094051181057419793430909961828722680656639484775240107651371423306746843357483568725069407744145511371520105809805938120361536623525725445629672830974174446561371582079559969729872341009693962935658659752976715632934788483862997249843882000574988061185644786738009427128375266554093812680296421197045662023117351815361169732101880792532818510589940856455518018387845863059280298393708821676804547588832017515434575993445459236852565203907072639523056461176973774269103077733032354134799675052519733440144219719169372227722024437661650760755799964854041861620858852393045134711156348328584655007301185975503215240237386863598729845995273849384504470433030462738472166865949398908498291837904103924391669954388552652756191792225547158067315232287636908865520774166754910213753383517701564405413620852926894906320667077569319961192730758810298740771139405883386410963150514995001232131220875382386400714122294264106482738655587146847338675150961504681878494639603362603951559514517149126145584963836015565123609226516462759171659517134037921301411474887982774092505535684830461863715408417446540751899531165434340873273165361310215615304422472041851801513297017732372812370909543315119561276039222729943813402843889129904812908790638618542555585677063933032610881869490743663423862950434198410059392266934961822962981372097399427642594479491875143960394293155568750646228296748136421584208925397693511635737349251601863906211216245157395038889264552130997714915084464797628878586730789192615514899136961704282292634149673905359051536432784732932883391279212978434007464597939346059593223039654120324887807439277173135685820021148893219874790380269684068552461174502687594926487952163030752654383789567911504390839293653700803976604228403938950157589028043313861011862962193371083015539107913327094122823530388490918852413713046647153844906577872347727196958484945530176733550802566741945155876522252066100151986215713078141834390726489075046775997360449047983164204895364205675497206166659234601705576534683976159844707781967587167366433680419379395690383843601336169391128352974692415633667518028947988230876916969615116856888731374860895552872040567966894034799439285458510928879496467784290290258643630403168073784230826563625379058983126486449932386445944138453703748272091475249941084553215739901813154706664115974769965377691063940349475854085413838978732153367191116088463792583355900868397763232945107152786032058178313918461839303216820716600219374372650080194799859049299009050784034337776663533568511291635647093208370610239389908647118791006290926654268040387142735182266087019606460708687266963118553561232970988505584620069553700831234877402457292383507871123924060067434123007576238979529547572827164812432733266589075028139679546213533325759792725450142000774461632851280708428673013367965146725495528230228242597936337528633584491656327880880527644517620315110717285052141844393518355608423697158297202496781350667078226462746676646006872273461048536492239480538194690401698114012013222633606310807820608391347300996539565695833430291612859030678326654095999011097660508136537499017943828894409870735248024418478002862106960785049671115197465360900326372687848432068337170727967732329339864433450921144531489873970682108049073647317693449053779947590932250364992888555401916966774097291058596580294285456206450965589241876848824406356831190352054535468519139139935827663515568813970116441486168657510809726384949330184143873218102552018638166424287106220415174973691526712342895829292072751135922834519491356533857278173554556083556343385574140870002060379732634927196677233447877047988793377814797766603374194179043934874114607258434608427770018769730854662229953174431182294750487444862564821104597425594397929798808729343938344253232297521564622927001922401735264566028487749488371072575566339699805364724748793187214137752647840859039395757434154636591490409629901721759962956250672455609497465193344973578853415567963814782776102374102270351010438957547454464477774322585162536739862362209385446676421580215784044470502518366825431490618480597677141887011672502870901455245508283457976088282928029319268455055199925333417410622509499137361427924845730982952903493934268043306593402914233385800296086108591548240945748224174061227369744299403019770984592922219853732450890018836482516149094726163467820968886055670712156430892287140437395931414512421471315193146705387241465671026495464631449236476223786159043902169954791045635944781945219469651890307003461579237330994910036826934001904123134555201718811306883037254501392464694332968633105140292644248604440969378497200620002737204059476967879841788018527519399311455882469885333276227914141285620801800472248856159146192903356483165663578014031056083488849117909150175390837476433435741649840526665538460941299299520197105551894460090993473030812668873110790543486070159123657128855219006220710274523570307771002044274514145508943125447386400113890982309995766433568039842872881145394587694711917942917122825389174463536391010100796401174259104490874250087355937387877279896834399084999865575149563615809638692715550221345577247230117532066928623419022938679779500531827484865153260151880182569459514746035257318612869438902800998656289988019017238939409967851126425870666033950678612291358755449050884408624302334941452003235607280327781011684978806582573325965613920344706845012049099765150235979149293473146508695048437538827543026901641188617930151032972347573690213993078671360115404365053229135113769708636185247523659679722377072197057423839815911982930136890895889102703421128197009438813296495687963602686095329370661819099284361257584142574235678171326762976174804571936462087269227909823053628729415453929617560838895542615016272953386853742148188209906481894341232026463090737417061561535571331078190585309813935260003022000669479608521515277431168688108117802343651802469392978185424564069291563412823352179945550231557291245220902974752696435468082538312905069771873086742098812159406355165866582935384229878772679364441367547834819320603303716057830919157161073577889747383995845345399796186358143655920101795010401945282772847823833316935906828367962938146902363681677830964279296179599926859804164899577018829320381173848465937084899512747657682131834498718217077273081951891100330349718458678508732336736090966183793002381986999623021194441761473094935484506894336261164675841367392360491048899136966021383375237258109103753800012265492112671715754369896231846513963247072748499858991658644828033815704978728725477512287765101226581874243483054108735646776464981831032715301189699575667385035366152801941488567581572498822909572707463892070167089600558741553641408861308147908253152835791074837101795036250590045971470910617184754916084663196437924417654455762956047694608724023447300699266047883391513866742928993108384862399183134039560497713193184492876568602875064462008456508473094926122883184279394744580510532474231053622691419562797982599231759991039016688547795274471825826282704754133108980081978320722959586126623880000226181975400327542349592783290291920754172375224044989361061087925043970214052862204725270901581591191571392390213925386910524321882938826077214315001005449499237629327659392378819764188252566411739079436402811231212748668962403713398825960662967039791962826203250976063392639793911026914440376821083337150639412819147016157524818039965957212092927659420615992167124227915470189870150356070163663737055809329943591177216567095463806975139655031211879921520450664796167589882434348984365729703041756997417219321627580036581984542997635773449387539184618895192294927756260949905673417729251755970810101750793330184783331917195922511680528374426785879892482760969196428260994666048601943380369950113894852178558093473108128460493622183119177665786125528931508368929917634934725832327649683428620261934312672127563121376092353953043214273742199652645089211842606015250376166771187149223143533481839370175780693824437028541109997688057083399215478983696496326143451619753434991195722859837717043389430793040858392358376253378526034585877810600090324584608881103753972285474358143239090560273098165185487693934404388300452928597488033641561622882302491184551270591890235189372624372304898692996430626646804941394191891965322904757207825968674229739920038410377642859937725437954497577022223078566263711061279204428570792172585449069602058752359630150734453859589046862811091581912367842503047901514228721163422480522775163742140695076068465386500482947354657859207429624293952937481186363041231372791111109169675156125615663697499986990343214127037260353481264710252529754017507385511699322085702839735597396893171882316160408814398690784993399930928809898236522005413122170068159645713735145914551662715288431538645396158626343046001443044261166650948783440821517945609585077975679924944348595488434693327632605241669052112807132831136451155783587327633690946064793361815722744724586131617150364040326596405277649817076679540470337328914334951551513678746268543640452077602265098064593408380181725715344073541174478903588820049124803332229418332671709524824989427630191491088701336373928809323389055151338087698221527615777375275099407389520004082712888217817563575093206175719594396574893109012281275463131120500337141042731624463251683663928169942837103154197898295300632926933895325837943173930310147568718616647763412238409945567072894021037891697450401943766186708411680752724251704707847193511642875314319032839225480534120869958297737049180952123860808369436633891460960204464475876398333306666389175574352301834505242125768626940507696107913064475194598397009991861895799768080827425238641145269431723223653833164938900253877842631007430009412565817023867157106428262771601763089937917310500932041204421099611280810026360090943576258365003639707620881320985758553444863802880626689530963290365420187392107477794170366663433482628862347703670618233404287127293635407522720419934227592455466113535270675379772528878450922348464842913577917876893177866336380736912964694648429209223422548913160051854183265125983321557812039854555842539156260171178256039910703758243013698540584097680356352279304817496180356059803720676733329314278960468129535349405529415520157521451749923805325591041323153020894427330433924170843189910093825125209635072946701436207457681274189032223916060454064792533073384640788727742407082943933910052481403889200587527545516455052856237856812955732272559356407444708356908500067014689587855526042928311069369283641971748580759387990233868640700882382047857149553567027089596034151711462712374508124648165956145070676104228997941311171317514679236702041423279829572360410141656882289509488222662210947764725546086951199190548134832862250182861662242552369672842123207943929286241778943250556385761768990712300397352498230185798529907654948592018282369045181138909607033718800703021587260195725691164377913956766081907486633064586436330212474832062472593668296607993795907764837796262493264769957356457906010449528957665637007668606889851222910962727410962115851891365609164222176006739099837109645959449953355631590686097875394957874192065848686619273996023403248333697479052910885077570530073434596127790550152315628771190524571167845989714262849996459721175818377449725345741036341585420646797244980204032609709574173571092304080350249339358512968810321500392021951353608294480048960829726331713470514076331728214724991628832624002903685302107108393980879093283612344883595206039376042151190811599663941611157085822351972486632974689854422921466426951168678156782318291821606082555648813997839698596819838360013957934117483553583716266609871801083020304085936012264245931016108564437806496297352634561352339660051470522751163313864919729940765053459146771420546574313279848031619808268380513178073107552070891605448992932111941996260227314158065975821483202142220846726798454752967780020225659653189615279310322442641999943675532394251766648311668521053454393060707900253076278978792420835746753022312097719126330571712102475751685204990714182185784620620551444896271442704960088231405141078950006037998171932796721888198737128390354857091511413218558151508623994419444986059328520165548157823793066275344166155024339484800435422148023230635119826768939022166449600760212523610415645211536581932824418299400834006031072728680090323137509843598625270826887039210926446189564983344589457299757860633616888888021421972966816724416864314596208599469575567903217716642829015640587625027010955725133888834272477443196682057359950840365671174879787872573523324813320989988754605820150770660846542457111674162996496503105218325475450467369260070024835115849731108254023337191703993351691380952709031081311459222897624019924447478538489567374423369887362241300215763027812412831042254245575343431378657289884642973795286642260801188913328339824248277097177960063095637499100475030726927123094797499328845166291495350567005359748547431097500468529058518972182526464444412347486007944922395013323985706503427710170224046238357541307150930259817557470635519729129016230864950735659392158645032931133687736437757621124494246512460118521767065043071545090252050263964388467610551697511236966930545455283243996386765518959972037240699806971988403512006915291646223147629856625338241647468285923177480421887188453707971225537027760712659300284727539147576245301533510272392120600184856412470485942728781537917516879020841393811732301607060373950153874036182032720086359705719194121171538215178851958724453429430340193045912683989432162005157015729794525425752208844116387348509609551174079841571226981539832166906793516484496502032704114194324431488806073230126835842828776356204279247870373619110986152686701837062920233365203410667445678429468194582223386482923225241653892210576232200082103065824077292962980846751835766453052018004754354535385168285874490335305602468226901299889446718080091030360874685538826001763375207252959940829635131087122156000474928763126115447645609637149044845948214035470234650933065539386146560137757428464665169796034798307063830328009009895415692835981644231701939671268474920390666788019680319264399706340800101380280454400860509674286546554740652519485910839963501475340930109049228657816164992729131799107860294543626942547730446552448859579234673029578454804131659478241605657438596078910356186923299311617171758829225971466482481387458279478703713051904583351783286115667094255806396190027066090490261529977490678637781419006576625324878517428661597830808622528563435580248718923986597090549842316542970993486297401865029535773563314201594645584761962079085380696883028455965492312615741180729452381161999153212327642227330903982064579401258798729574558249355187176499666384281595244619550727570719770816629008690987292565869692385719773864456811382283883612002581361424627653401881864098719099043949801661276740156694937141313293011423849470845906063153071072706486159949398554615880546320843011901696060064448429743052154305975346989586019428287832982023813383358711604302185006489089327908233925536256697609312882295017846159414231491166567624980494774223701363632133108814246029435633545302962401868131692652346477410542255972313883265840868376202590993274630126960121251954629835781362042709914316868966689415327693501025575162239110204123791363577996816885442481570375816942862188461897055037596856944502171561536731637421217798867582592094154805562309189678991685570647434214407114606873322045322487507773163233390101454633783696648533910002077216791485194463116488105080202074396816971801039077706823756694684265115607086894854950915237878818578833236654473244149728481430898037168855471836077935255822061865703195550339545932945556729735799876784670374022623528825525845562650753445886100054967416944891754149153818918201849905422096516910515933305927946886210825348037767051540669150689110294143424354924540254297361870880896288700980791931369731589140147186868827576668063408547844311462583437041153606563027512476935283199906184050104759548959282915865810015782046520867735303903472820886783711770039176639814232230288609968654060278523976184848757095555563582521182330939651783094811839616201639677533675083045212127609796309726817799492719932756570193376246943486306003987720068437681711138650098283279060067538292426432659897927434286416374420445188673622059714995983553481449170881969669108615727409581892439930838782425609355990183490439423153046310083285746965042932622576835893646416936120630900603458022652874198749324715514559053594890629572594193726611593415541880279894919410325151640152731171259612855291210192247417192635392649382330421926523870100208576696762813805731915656408097347903110348785206285517265135398362164276728452922947581909930852207584366889590578194177567597231444378734247285609836296485408491581476367933985197134216252455155168056390260619172817722379226860522387993844125100295974488356431974695478807174752779539228671251967595596667093609420656070730341913889350163702991415187774806956533500136384102002942306500074650236087326906698567649729606331352723566928389879213957591788205050459363464870799024257291068540603917049932992535481417583493529618280678702533872623036588753005050504322130441631439989127622418426914379832505620802143426451107304512706881488957978433969705912958658258824787037599068372437567901626713660117301927468037219584658953956066664687246898187306673813769272264752180211930733386390467538202102242918778190960222374814811615779390645836384177100747033218290273923481939307421493065506447028162053372592183091638955621215464729850566295085326439332956514168966712903357623393132260849553000459886389906494460577265939641468654895356463939797158597424521419038461908157953697937885189935725259126195015430579017337314716624393149724970257738318561215154310460612205386183434351519299411024761679717518125386576357072992877851321604436549976490652745420041030281822552868863777366272666167813605164345596699376968835233404607419092277849582123583434379987248806978096177415406426780785042000526493799228560560016022290748146174538918602465856786421906712587979353414618975906984797149714297869701085805618589023460346121607574371499463865601300327666692262977507819159638682474050126693700045734778587909992325966488198477943139219399490733202782452789681937276382092254288154530283716956381654718391875343006822037790550359883605085714937780551750097294132215606296478036476461834959269628448161582655968050244338749976810918712428692343823857723734559665923323494527896731506632712966336742605466465939167895426773413625024667385556652766170689495181711479401542460756905324288751580554162454718122329579847298562709031567424937075515595808445794170487258961623086579017560226460089529299928755122443547958009797734480801218238177126295196523924510434142072774754875486843623896049536541134313268203378221780410364400008650292589127899990038596392261035020292019059722393855685081988952906163888285291580159356388138185590676914654956934266417083986994773758471955684841436845993213522119756111645084882179767121439858349705907952521964748996819303449130087905810242898671605257961007157635661052816172471577277243716122141426967941413934751153854236181004993236394670839012703957444221149632833954988591264759082402274836080839056036258952949282675567995535447277586445315169422613757843743443108353358984371492001184340150690126424471854597744627789095587837215369674823598777006234941709385881437483617473768861427877502997572816458820930510192378497682384166653313102471164072781728394411957666459215390322446446203563655504167679749007980349110412241616652444991399647724145784181697388993566317707344270892813242424665275168134734331982908624669813675841663934296328619350465261361858934479162617771402245579831130920179389600045779129225308238039904121185817091868923676895739164741498283276835046988139977311767163930676839435743262957475666115121970531149637179759707545627685152469610241522583775566155247868016971637023771269881047400947673405987538240492291260735053087860690606092778148612544534990776004664397120803543617184102214863083561356625414617929692380831862586749955701121683397939030184410136996345805757951802784778189851508906994697616996755715024981024235264694283994763732872958935159384091960553126241470345749139024487290899241566959865179310297354754750207338689853482639974518875580086834758869638361281025370556827927615809386394179431830771912720576754768863183477636940820746467826081438528733274449010815660929255959859461304236525157288348186450507587679463658668841216223397238483301263925981470810005967106850305795139619222448277461612033610525633328480705961041390557074335044636433985986269295032913241415848032705244738461041308507743131089581818196880783521906001115645717499625679554038956443795650409275957722635950036189224546146355939967748348807488079925609511262739983203699212046385651893564435600638464116867488344636034472066739528097023738808420831098278961195921192552831944361630272453457606812806286002266914399665130574774315951628774151697127682773065698878884205729300302993433534869492525484043865293492765605645562641123321779621144203178671204438103540007777592392689537510373147495684314050757266765440460848774323035540840977903781105106932405270345231910767167098328194813418322452810402717123506741014377392926462117817372033402954325041096046073150590090412364126065764445130328971628551632432532373010452319588570043523065800588652409219840670253926623918374670448279442245676331592724459490994518483619203189332790548270542275529046269816003523755784249004849170220763989847234558981093234751377866675686420117933088636053107171490965893879680689050669746477775818647525209848324050356608984641405570181340861002479279768692436977063821496141476335424299090986649242393487712436162254592648162575990607071085785618836299546294843875169857053143632571645655951667042537758069866852392107238818306029355600637017422992360310578770688042587018693302004040818939820749612253826084656914310775296975208732199277798623691403229643699361106138731569277284541126586803875943148745928267318149417680055582921174260432081645116526249542753403824064634613196463996725183160464020291012907313928809858154086749947425364804031799921557675214378503651030370588174358208985679510774343695087708417446353472730975021437321507511047549240828034498953584170742180950380481044624991808535358301444717963258071069317215885153684726490383340088009272588897970392226327495448954309957758951642824209194217507179368078157817257180306416394708477820706349544366304293261475760223647365941918785694519201474484048348456640459355687944571309320963195479564203687041046574893569358648312846325978039286310949950464942245101932439329332664842837478705436201305200172489799144638987926389093981475822104074004642894269690371171948349985494205391733931776357719032993390480022202182613360753511946100934215475690773929723046334942772410850713193878208457197338749206849645580034635456382109405611616569656502980206746404475675751938038993256393826921733545010813014777374446690746762196725414742208248450142371135636799463233772878211023076249772534764794721970689717306041568210502787400057868890189326742580946025135692392945204669042771823327245055125713257828305538192345580076089253256089512814452337058415885027861286014330881941461931862808068074244600050534670093194934917569527466626511351461679595526238275097420376145707691624718322658590344619798806835782275391485984530911138898326170360117231797369527172524649144051963995766579357113745414766229663418312390464076845387138678829212339586907585768393273235296434410996949551822786052088828595267836432531877486926786051760822231357628904622862405885866302501801326764995445269111428763621037718398086575214170819214460210317234886712497473693780204244367753155200740585629130333881306394740354979144124952664142570340132188878620643959266088588632804147447043247342984879850597195110697300585886441323247949893953562156934264067106302623274140618525980071475510099477897411651064286708225747997663443834824445247755077973421384982980703082130706289285637123475247952334327647399824587530281536618190904775255292256810441386142737954489312702621621698658369794870412274310254544824123239853267746869520264192815762671701305545378097169566158584382651086807148055547051764502573947788121122631566463094928625173524368380285880732634894459764916769224684880569948527600637949527297907717216847458759716811288769356597580559800606498830035984392041760142294339969865269886651625335217016288400573068196135732420726409688429257557473953551439797076506805457082644925419579253027900305589492325989106090964049347384379469178120086914948588389141514473334005383536289412084250012800661315489889515485625843352239138530134397199899821009599201483618720586395872033903579324822503137371987419198567037413165435098625400030339691794277665320677636648927199777801322161210429207184900921643436779300284409092372742690022919731463886991582096698912984789321586497118842957732129380360671395356233844072423283813123620390617203214974688981422919869846878144016947167582692043977808652241194509855227845938572638970050079211455419150499610743920999323177917762013624364142231423023335080222028981154957379410290936334743143432373233341449249291772090600017890079243801359456753252302797471660359076752190835073792954114624877913422713104316934717237737010913056022019460378601594245288157540175580176577112950353868136262180492732711208206025695382356885224092754545740686586607799715547852103504128850133844257731286455555682559856757031733930254490698907088177951539590220050934347495990405543059402045226028267869345971209801325918060590972782543742123015073431881440250713891688106644302747493459954529022715174644602688396977180497261595774263718509902291713122519556587795780740883897006344009553613575672362736642912340633034634171861606869614059603063897701410379660114612759998330483224113134926675437100626951264136721332319171194296505838916983481676383739620428739926158969796852399331214276285379037379485689076694478510836950048611153487946302078722937636942565143713639086035874507763854846223313668842847744046747236834199784910804865643230325921583931535046276470183982490808833613674644507339059233639596173949964932730741459755959175504395094426080199428389179954933342917315186699657324015399833820957969927118204386927464454285001181229200526071953453381169938438528135258826284857923826896091175401090817496456345399551414468378720765550983322745758930672232886267237878271726390378530221563190458620720813796343494778885816856900434729448031194672093294461253526227870510698393040308285394989811498461574279610525733525911112757966807439793397506348704976550558649425764877803442420071017764424701718306320590811058490134215085590500314569727745315854876818988579397463057173266560038266846249024023948635970541911428234782908207352977744679955023771380162360128714116232387421516403339909451300570016305776345441186179888039479974750588670314314044567908824342682843624776790272811036176635561334888836911800127384916625136319397542064389199657613130927875930195129054566714796576200409611627616030636017502506021892907698108437063010612403776669995835912609223890856473548980889952040616122204849325524866439212284151381522055990860274705049775519929847693510907880384349768521346755151122004943160657908631852967393454943922597189738861962999987648546170883745916548172906159796109657346119576505555935511821125981181399408184611838659384489183913444300279285608466633359197551083982496643590258948327041556828280347258868203471191658786939429277434766874688672555003485045044887759064476405589729288036399927805227100300692195043691007366663157779296907528646490805894385963691524425335348070748916029015364203526142316395325694809116117286306199125581704804263912964920162768258405110400583291284073215673645155294972726625749623235253670963995444897380183259003320344225638407915260450419952558880883107090943744751649663369521724240912679549370417218192399736930027078969215413081740216234179234701144851129334062715912672714376856285052945736469064732905353513885950534673434120844724926288155642241064601308897806726059485647325218003745892355265025707657693479461653735982903266606334903866724294967784698566239314392486058949248523828197592954349888153089112296616087647540575122372644982006716625869320934279726486802562629729761145041812459293390976190044811970634600386121406066551668881399359332171658417119772602790386827370546499791520530478784788836920408772164040591503294348808740958280318617306927664679266875953056775585671412145382180561683126235020892925487444588980505104570918823860142963957843618965926821855949378675865286174380147561834796604332856092134783989852454384937895570712132214248225150346425483007957442999429876145650465644769697807345005302605810213243992989740084416446183944184938009535128554850401514888715724570782902788709515815013729489938894244460349739703909527817828723080817829729805761138005151619092774103038410461397511106260633553669420658533207747363287392802308612488978660036262010854626731265984193951407038908122883357208307337849940261753599091435296702609682003166003574095613019042015163217230171866094006196652178462084310977702874052055846414151538923700621164555626902663679594136407328675073033763602107363827177378158015163925236769558887763100098168995245617275584178631341992900175493884900207812163412127944104650673253494747957052448129761562502179363858574860595421216535406015144929210894011676019834734867818444142187003248970415458297331784194239518261387264265089330408506107480228391742826612801104504045135578055570053608274948327497467482623861800304334614362105217270301029030590366619324478186405970026556773601440420451461871361438583950727315038018968423538296740011647243872150651260745531337035889723313723878264783854617196292527317315037669295054995925558055532769695309765281225344951334851566492578589932309914484420670936707745555206361362134451379851695727536414242277765079691243790045029350097559570637926269195438071576081179240139423581502519581726037828721647192539207101686257136211809817441684204665951759685073333619666627574059545916457015537119112652472167101508059874218504960386279469369488649220876690829725321969006767044312727189716115731495377790369627177296545976659167030732989535452293081912899944538430812365923929490957990556658209441925431388124594100019327922008358610671884216597545287784100253271529177881368481276587576269052868440919819382951348807371454986501235598565650708871622242688317467614827267514136006927279986039392555691545186195441926005381068778862328393215750410903511586167078913567828620112025739370246283825546242973603963475222693337492706676105700279791490346145756965198221352422247493205118914206152636001941942880556863893552307470732795134220248502218431961342616116978279791560355519325013140025355357455975556972164438162960432536839110826562155768253819409028643776003665231049534693732155321021313952225036808786330165736182674919290286861678643096376851253567216215656290499716175649572303808015314806557479853323952453676081394611925335938580750364671217689718810047162724790445473285882970002481640410615943787756886653946182761294051483497608670500748927295382350325605305012832122632730383741201683345374847461607032643759837849438681837656808073225659947603986818203535952927493217820567065083691416562701805138956014207835186159394338366057632678057556887616049935592912863945528927778915713304893019981115115963310554163789669642047030588442255335871438893132185948530009573610134724870041394708469247115361170976422387180602796179204449615557085762956703168108117668746616957695543396260233952264486016293645527539819936236158959343395326266710945646009642743875256500337036902086016212467184349288360664787442719491406379827501806511978295343533665483449450492366460498438211937166731496411140001510885888059163325675103942421122903287977756381208806069758573368475414338249410036806694661827651087064352519436235267001260429806147530061632942317421141752570807803237857957651161439947356945822496261080244355582739899225495286466539430435817280232934605099915655888161400753670991653180878799913846605062501268506986453153855697386854804929691996257067262713274277794525679576206400057162793540598301288029533307327405686755641233702999081042755920887452988787574886464019841797083445119522965983298632070509349979285612086216236598547777664293784503496088255590516336319117030528994536655509255955653516613163635558687447619554340820745682933902652145181731965801262615032303604157780066899020280685100697660607312626098010868210829055917781055253773702677980576242506455507816770683148269142016363233736801635734611145406166977888483333012086787345845732024566893125104669592319019397509403289225175679543708309906193866400728969329101515010000109145848930083491376260913008568825036073171910297729539500561608712151920151701095870815568049455273442758215927068352588386790724268127519950600339990225541300464922460245425271704975509933851382188165209670690332421372830914546681211067156232698063438608055858834043003803342557053063876328136272204506345866880660038388386541061216219264778386724291378892772409454572907804609410423218782756543801821385804838131947493196205690156201586316121148237220982962454740833098660041241343687448034210874787880568392624410010184514410246238623059492299708315629803556478368519680326351354271603399609797853758439957894591011572443238287068838039321100857523161077759239555206518624447557497852424489425704880330767191479115214857890700888893762049845569885414390915968622470518370629350073437332397656652229164665142836591763983338124679644153822660666902193204625567267672109912583035968299812081755808810530408778358043337722219390082658753294340633517996276429241480445376483151140487372186723593312368770222710404593388805184784090218713617627716836133173924716211950620788780541918633137426279758736583792942079656987900107858614998116720215618523534710054368435298102247590869993857236821103535744872721070797170227490647425528994665102735403262689281844465886264073767722210977880472803248396687897245089080216781221318446479748404059909530119297217474550564089682770634400819138774962968485417959958568052245512952729276151707265152635901000482144659307089979797034672035934694416308450872785358323021131571296262598328175088298150511025180272523500496198022807308031928454633636549254709206003963227172902151354574862074524938209968373895423756782636573871026901734887300658466817203536873458893128618587065798426684303898853852429460313136123858097744418591219263795799461423605292187477586138481517754378216474453370552693328697941608269103903061310959314314203635922743829284312162045154273627074585538386876993334844178592217835899922835288303129517482457754119323447692822798706959061517492748298230191614693827859410374790271377896405153814612507785386478609895780294058712453649236967877014921566792825577546087377837812351860291954409868605484988559348049585997516758618158196327030950829844670223856980093071448700452700458405557430680803156215731898547693030812990128716476676512883884393340556618338587312471071646422654543140280484154599592680085344248664508544794233468804828734958427834361486109187454783543786472319029301158894000045816686033989835578816038613633856294218121380091837483350962066265666914489607187140514617808733909404729664350790025125061084726925128190554086784475615883813654615339549720625341933594353276249332404023505199705008743920313154128715895643762427881878733141856844052187621921369704736078297435288338286268260687704562372135850913557435937901092004632364718803304536512433581235214918040874822392441082057000180211534872013164654375258228962601710356370134906618316608283005288429247956809607624018194797544331000969521876284963262683650295761005860451080660385485673619705821774882003711734374477830347407254639777742931746902829851553647446275370407991170077956851855270868033310607569088975633252955976307550412943705166073587295370318389585767408598292179848392208649665839058041723995008228885154693926830600763198006301009331018005673825072554036766037550316993105207220673743924047529412971506657793097845649685929560207939865305901659198672537361557293679535606783709314001999978828190923360314746584878244400218379621894638692195436432977563769005453310732926305606026443236649509916776966063362486328303225781129930010229384206622762458596320206337305513442996284478474879695081100209902072125811450340762439153432780211361748283947006654525698072992619527095388110038648113945327663168971395647068579716600509791548248984582699485642152099051611398650470543501956512682441199412569301400502143697350546698434934736075265057367706537495258427823265377105301223369769730693144804311599508273717678586866121584375766860877451017841764989554281207632074728901023065854545879250653865875747121255794005528930716121456009355770383583757602310643120083852728782292147259402492781287271494016350889482399418331509800029591087850124929536340289684369897878251476898672122014855628027476088904207773573886122467697334262930673901215314781769524317174892807910864424647031830997173072021209038865158053154551393207422218324692805703519327182514707472645857463262085626360853448573520370600467288067359835971897785407496985048835506215863438587625020077604455410652513410676586894279907930066537853517889272701323420607264828367192676251992764616122376843986278379114703840884067314584276127777872010842957447245978174667121869657083975201585220295287156243323182754335091057311146490292949992767764965945164981527310378765481643953802351195112063114705245678341348899572923629129036592571863665412648819264663322761971750252299301758389539436379724298052808693651198754591288185874728232245504873643147456890955530994122069058304568740169758467725035018026700333803935987417543593042374064390441285520510062051033138194465882788098908555273682801309354892731869939933817583693916926998961790435512629458937361587112948650382195051827828845094057428040096396462861705807360556629661805909642009064670503099300282839764979435035379656055920205317142313120171500491378957651703663604991478480301064292509364958765768548217854773484801363867317538563434816765508553638013662335673442836722988109045814947115177935993209886786978659699118874011959120194467585721705623825158350009002793966316098413789961627419360430871244965104775582092025144348469221987307560245034481481353337525062452829031177817236746264448627163795564122653282628840421640571778368533097899170529619343572331287883401482326991016336133926102980913895930732632335922553957900227564717276171701787503932788543713275164370999023160850097810989557535557249836594083165395865019755955024824172371159206868050407717110517599814586167334113471853883709599823091284549525881837848906096741744051756742216019748020909260996710807132885982819437399183487725753420809607621081998816197201140204691231341882885046594046469123992922621926622392446817252140782544174925152321892757806050490541371642376280160887987946706365977205466878903952805067341127638123432052724736174676661303935460393807384676668084940218796390131610184753459383202326048532303521936784040905617150064210464825066626940690986657703665092745509428561293293690472381673975155121848185948704032387506803689844402458676746111293785528018546860032303670541400799450039218313762263373358486251705302734444628733536994542256713668137349051204485242336396896538867598444918259460106271797764108105040646065196626884002205068163477305952218607939187703562153227731025157268658700769501122617041475022866430931404721027939760492852417530800254765764370280593191504297520961547620806473053440379425988162994652854334652012498533823277091180234297116507990398718181548399390646711838825019913506681003364706401265929692096552575381946199018322176089591083440801883847254467433198695776282116786484349420403694758071776459078610404847563430743976306616630196939742723108284384277145318590248942795034179938940554288729200422245371937676115741765946036070727555292734489388313185534476849797187944576769819117184454821924375811551418788036765585444946626951618200024896433000527662542869005544017210984839007461624199094717545726618275590666568749826673938442302927931004892518310491817878001094042436013261263378455393929659194750605927228782997202163914158284640847876317295927536521359989531692672333543022682143410017273434421212153327920164839745633043646891324758566384730156455958691049264546311961536250902343776203733477225053152272160661554223116126046134477055010720599144502668596821139050760113691825454083734613816222385829336057651817320231791388623988969477547874270648802379719607249137402631214292836882619035741651223135675135404530311266165703839117732788911491752956348736671180131209257425964514238838518168533380721488463080422393629047433445455570154092849183899868541861116588637584865807531651016412709517859561928840346488392282547092057469886423586818004679707220022966603416912191212107069660616187038356845118870167011459487672188322695106043890827482116598371713582888342118147723960459779496037364947482697898351210645035089315805884236467356833099419805906194176278358281451201220789900493274147702055065551538004840699456997082861594060054131123424753389584920391781807488076464311746071568823739875926007364791731993314214367006759074761911044576207393294587066828366242103188026844664977486017495827812703095041301910526815602843510795437345284839015925094531900698109634763185650790362653755237228097503885399509725775660470271520525965737319666552625632629599323524374467723072485684082257866169640077943912689338170573742479701617451870699291952438524029022773156613106694228019048988192457203337743960232812276418901291626932519965425630276523436322374710973091809886754784797439361055004341737040844165769403936859942611634905384981658394132391278096855087682588925162136567928037532625201145408658094137372107815036958298723852309789389463504022304871732178684184817226719865392235712635658221975679744345416501892799127048549195119643712503492040926578401982699819085967369206863050824085809687816542441088291028268476402442963279909362229553670161144997717147694011076948136631575357735751277437155547018056004893755860099390115030518255003425933446260994220181524418298532342046220471843199958538428576238685745818619503269188135106358174850691743339546193993676770475481811867991938638942873243004272955426093048740111795726382931494445621548667660182163580834632230286099129877016564598546184028867235854169256462241412947579813771092482394119948401132458171748732214191476164566129743660502746758100754481893308920487684476249819722651076588528501599153483286177880779333475915045656910063321944790954926487669395669942851737049838578503994065912201232634080454690234290942726909110180172279340963756801200032055426902508487923511279295161844050903690380406572308006088217638097658246380429730996819147433490515272125835887083763453494428349676747897195262037998343021477869128765929923206085593818042012536160334325671318000798945845444325482532399292251759321810956347650374835238728357951089710700576367960613891982510354916669197057642645387629607592106623907539512458262326456605493702954934139790645423648941449100900729047511857429733994278325592227946078448710073236744184714343457955495130188943102286545682265601882335944841140821612637547176675783974806035510480626724431192302213116711005020636904401657625880869578992362327518713378297557272225534219834507583346380708460777028046043595932549257698875424871053859055786654215736716102567955310093347579153145820820920236831315283347346052635115789811459599744802028587338795961064394138490329952622851800042926319450625468519589447509978189287130096335195992839539873454467942132423907085322922821295417628174857846971666827748519142109727531092485541029688893925499253331358785667347460762202851270928861196468851707710717979897460763040575186200125548472922104850256179320146933522816287458390326593717088346684994239659625304495816356450253193630255481122866633342377541664347549026838386067489756129692155779165355888266730502193980501439043870996236963263197479852113468483944575225197971147873904898634315060858150528150816543425614466829289797083482162445834986923964105502833384574336650708702934077953766044790359808343352315085540672906713937086964398480267633682561378718093200424800380435539844289928685901370872904453984698794435657190838518380870499981070883838798081331630944832026929082792808239427929997278316102034339338090578607361313243725063037653247511100579691377101574604833878498531404354554384971018025901865156030385799983094983944898465256831760277282080494522623945024915276441857349960277204918551533317953150514157653343578224386073086679911526556360110464267576427059639146030913675738428599379184289870045162913049841594946233985290465411433267824153648469349286596388235185681700735364155057272098120741964449649931985542658564720264925466029205032878889426120285513588487938110077093699578000895531784666368810009024764449085324917054047376605411202686569954798450900983646583752159598971665990660926892941473618624033834868852626877127589765989319445957016072973692774915336980688390668242716584094406170179589824750048111745262326231302278149155848444233277335528869220360189373899558602969734854819437312451697451545360504582821861240884468287481368962190920459762550330503268228764398937781857447427969540447287526559627636660391118967092825604650844470163051025322931611626186675683598873821843846879981025666775789071173321759206924970692490955367633288134681600575945381336335579145852306003682530384776037008886665599683753028728373388148402187015731154269886636813176470342420557923031229831880860668908054660406541163320039982166894151557533026629937979830582661648910082078423963429902253936941018382690678431217383147221552669791629617461413239382642042183342622054975589466371493684073446710414225817163116186700970172405866078209421460901578509361526687916546827982162882616486948513172738234051473495985132705666657902745046258395721603837577258743571993754435983302293215972130035200946939907327923616382212273207242759378787836034808611161416417256546441177075888786114943805773135740540260433059026337295927829673385744686010982000320458573261905167239940650614386402476188898995781870311623165877126390666481804248020613588523755825597677703494633006564364997929569915243538940903862304102287151503459819210546105328344500819682710251171514611334218316145722441675660065804716826130321053990727859464945233525917726941831808027848045441959874520766435624097821168718590131208714253875908581312036931336653253765546186455861294983715055408410904761636773877010012785161391667411509971985805438044455842408405873691218714058891034942174143056128958334410747766542310169934391052170876630314027440091455455427548961284472085753714421232054921011784952371000932575735385310264769928906128356571495304029175055609470610569821948238171858527323401085231931381370623831572182672022504255905181991874367525509948278473016998132722759539757233432300951351044033309682413791342342380542009568047977846840037535168904834861755030240251163256454184370815460048263635798830603736219894460629049610790483986895189302251775870366256940378876562404406075253510022781764901797355390891221189040297404693306543308479036182641083101450416152885192333613727541014955876386623965939149764205444953422936726552560480541308450421977770543112556430493614914258000010098388287686018473731202909951948924770534371233915608269059293553256850104473654864812375096447649767847804621335725640652101673790470335086993908267719667793830738387002164450215901359314779273269259159687572408260047063732870140588766104889365903883957422942093176384828707883375541293237934297229812781561428154619589500257065201584200047655694278501633617060649629001133243896684173200027219925644359291137615546166402941804883047551088322617232364397412880203783842449369201785459825912903971281494621475110929421453407125268084749863246213480212181798016316985650099961964128331429859067445107462229153563461534582944318857812673226930767056375309640688341137388491578822759143963927016908652402962219897926740923257952293867883588509715398099946446115537181014937345177801742494794481770308782869215160474917944790266151336864276022553070515315771714505737085138888462737851908816096329275737979578588609112001611238073681436187456017283621716436821431675111354009288679535263514149062732764970673249288755022891361044064236591507801399043583258615909441992571153945406868950136222679721618024628189045999739987339402719473677717360563776150007171885297114635038499790653769596353130114956475012670939597275344275797477993766609490262020622280694957115888841786983067427162106476346840490331323811407742857102286012450651582298235437949396140622043621339024175644510689111627584661361682425269649775336904462119889958946378987467733476024002094972067557759018994298164761562671004616325210192567514465580751312339301278293126326111044194805645176609548314581375802263647653888304933860537750173217629158977447112951235306168928557036724509930094707804897535516372447181124658227408589612880693871631029055102612580484586183975956767037388010366274378380702061992459552821015647990388148168664524622715793707200433375400316014163737210845075146802224931304961102240653738855594056643337439449618455285934748560613470092410172291034066935589325615454531818108520225214937386577962568463612043721901675370051741882739174911281712327906365241931404459970601164730190590732431010856546107257706978514872586241050201524556408968969257332763881631445212911933913043618831089436952416585115275342591381508274442516051597237687935503773640346998372356839377463000451988300410912624608678978246865023878526289070944988241920785091938908425659764116922047772315828468624683428405254375985315221230242256580376323327673654951255934085251639098233315564241701727810197713416637347082371860392807094596130499477750186414534395727680682657771833588998010523404201125227625049141238746261778822962601127942158345128634010549482853010895348529442681042140114241212650194599356437704533540945626803008075559444918224119995422249686733336902568774730284372413338548011011647099547138210688334727596770689067505222976084126462830224084161650865381250871734668649567165405895208741439043542451521942691511707527593757228764589817631680280346371288041368503140670169136680204777390769733490578737659453337226232632938069761032497419545295978299178004332949126216210351770177729654491380245214879620232187038310082812493059284422830797631271799456913327813195637657690844509683219016642897079829022985784665811022910096897541975814833178764417405217425092358502980745913663041027070098614597100679278832552231864386531474384842190531781360719685378798666459709025862020926617269845421143535418621392635591684785624777725907589738818285262668823471132173035630645299105288114552484277032727548804058014682751505218894493219983225375668767503467792627506008838778007232396443020158042126210118136568134843520045242302726016597191405776136651183840406424304124089674297169449656865914615908348126175195103631275807877125602641028860923561794277443176470601876707377598862710655369914743617243442455396661544047080403356901683919870740237480836499430271360213518486987856875644290303721374372772272877803497300349984350075013184205021464676149192077808357017717927184649168179102732939778146550454469098122638943962610506587681271697919776000407473774675686225366855741752070375752456151600980965742433664714240933350036150960623612291383454864996360386213497136156663974112631714603747395375088212876603460957654267067386011987543158521707415987975781703768405322922555655109708434051830418947357731161003797351094011549554081953007574766498976028229530715894258345679480662218783557273850699563764189406230300448846738012617141004541571978562661932396273124430448474951478261125814771262155610256927142474944988060282656835733352772132323289867936348287990125321578759260977505151480612815450970422090670285083246958803810463249037054175694479470685395408886359979850992957139455691284276769427274316390294226634584327435386581621431342869846851087067803995424428815335199814011540880647235825436858117175305037926913176977403291825880824355072044680321051030339641546632363157464654882002557567362291052055908199731148595907900139773249792240857528641101860883553981718662801815939363142223556509709018415666701936592982456963130773323259160108907194760514794881508615205161436386199508780687220607595276433284904199775260926039799603315072076020169616605698886707698933262082031893207004116766736905513764315190668343754744381697249261048990721669074361702712984049881613469294111696584169915661364605026225232429361960421821470122735322454981478281228539714169239859224557745942872629599325018973651968880770623158310145697031545711572718007860385617197346195273941013644557408299875801489097712277930232872204623841980505337120745626671738785704733486102451203229133329016110449223911791365550177476291915977754203681339061950942793788385342257515575282900309635148034852644252891063065964317175274030587009599097254611415707751167114040890424349430943698117305088610631736811669264902541284862687705310279415329952946007500598482187408959736043681204206960362589790567898882443926863335491036353652063744197819699471632233448503757195446081601188075087488331508228417717178904111568818787096406627981091592229404471849677091247597167686723998048599679093176710319974397347549260125720045796987119549695019971082874313328019615920921258753786007262541278875782232629045017384123241571718607038747051900239228702735049327868995964513829466078714168624176939006757817772407118843954258373247218081909278363069642492360266945888772827563879124527802795948856543959662817609926921637528698274186363497498798463889496179416378336170884133660182185790131322396172865462257810628154585084917317138905267253117150770109301772647823815752023919127632880885541256781954777033554902705555056459335098232291883358344024559689192485584471016404382408222187712987685143787592134956973103154240354845166916551088517522606440329560430273114019735965927530335046927029760980930425769934604003370627432979742089197461505439357778208178695288584146676681783401854527987406664039085056645880746166348665982795496506219203589490420507683214279458618578788498253998939688266078890526886597071419304072423766780311317940086453926575815246652386634350545027958506846709945814114273790956215319071055085749420659598369211802286003889577261888207005624491562107214134637660395903119161117952839751695187253553396441442791452055679972715918372709467279744692038294875338593314369770598334968370043524638838245237706878197816110740875542422401961767022752992303326902240561294175876504748160565985205920519232902422677239568637402076878113996860216970021048220045553136946642181739789621579934493661169284067431667743486860483273880802670327402239247914772055930191717602614468402188514822678045383034348259401533197518394950979991110291063642053464787585199542357884297463584614513065577449203819855885771440413896721520724668595591897243770192335215692295583614685135034303545756762717157636064432746023860550377665399644959757878862271055232999604712286888734517314958968465439013124818661506588868989151498597284311903839325067997936365473591010785954339715174732445926574043302976824722765660067845954087377760698181834877415595138560540180446321949978630924437966290814753651776639331315079518479796450710600125221622051927806111650034123530460604288276442625820067068909439178596055338527133133816629702542385585001840255535419855626054120025332997616926721898230300040545502698991311205483053198458690416238003087327842753250572711462073881376308178303532068715289493811970819177663389676246277301269957873198288560714263966866073804430939234418249148639965161842031071808784573947720896633899784043516995559192128597853434055792108540770014864231369368860343005923212839635524474332659195048819891718114329120452301753010829471921677147009567323871127940487697462619695462129432131890541177000062784756413001253154918690462100347999487024436274789455610602500863682526635207774667066638670197815086950907222510802441698570427861983467823557281964474846190230853883879062346930940137772581421683158426225199777194210784305121786209791201880966477545603389165353610449081880518375916807592953125039805433294446228613140547437073810212720557969569879053835489677972398838119959001258359492272702617193769651810196644165110438502612363320791050807567786990173873001326848015955950944567314568850864778015847102318678259468621046729085505679016390072644267953463661661086627349079403583018615612052946753248922899321942928979929265690746049238279847685509641228296385774740491155698601099647979230915954842647781185541724257367808803517306292642661734795977043420472466875897019211718564386914916377994229359081990341274702445265732625485321685716408525550940134265607910449330585370756315810752584717729036155287264506685934946328413682011814681894318473848709938094464611237912973055725250110505878585046749559628141184433421467471341589666699496767743963136945920325349463638266943648805393732342382502283390765004367818179734861937379063505425370231585505566567334697891770637555476466971383079193921085686809059659086380985585903436257011865727237362107672094715443960716686030527866483007073414090135332903375414745690592591766928615046864878859360888411119363652099563120222451240008035470848856708082361618746991931042219183453471346301731336585790880858042550694747843911708825088124106804244784394647180019406720937440065538833240386074537438826939314022872721111784752699581137236817477057162218207655888941841822296699761772593300357171752018948202228990381333448035591984446094613283375013164330794361383836029939262890779082539941933639087998851739932174117674178624832410273659214868844989870229486860135145607231284075708321565545578970123699186421772292790645199498179510832220373770051508397514146131649800035984259882190914778033603772925882756510273337368579740525150021642357498783539400489698080311596100806825463371324872471234414479257856571522963626858719209912325648831538351491067479038017318165040772858433953531717967502049927418336135180804454328318914426747325667318824992077014464735429037639432296081774109839120714421906671908194705408954496726763127051118946729412798955851315847956567949603470084195212409216719671448412732023465996710891726095362966259757609967442861529290545518582436709186839558075855762116888078908206757583000706019970675533464758863616138616964377816311371943501796740036821511901380152952063564049202178043556513441292897566775027790131639435258159791568545848458042838162362541703887416789464833992349172254734029902954524394706663130010806631874283498667354612652749268363497952651923621249629164627112727115511536952877340957621758149022825791678325915440939171628351210833098804411766298775623813050429445720799424937358620437801151556023218008854512342132856168858040343518968566769542283779300194063040116370306545560829203386641303481786928569921658213758774683158852035614082606650688646991470892363236010830861393388756040861490709201815939357099850470571359012678796506240495686343047684049061953430691539113293628074081220057227581538168108999393276751583686853256713329727365867837861031024770547175500660436374603671429367844437653241310382460297755002765006379299367714924616502302422548674925563354843631660325208549087369758969090594160188617230227385603649413344965299970347685916486684667414449798898269083265225394270958514815313135279301568260104710402093414780524122777273949873572711573096117535723993047165119246248487435300334388643579080951699446995840348709686925424334982905773185386928284008267334831977484075948089033875453254634503976720432577844792802542212825283850018661741141329268755103767681745643029657008174236827711122777619907096681821769573822583837652939021023438300915247236020757989101946273158745467159637567741082576498054946075344375649160640469390333197314852418291479445703808525270451668100259995923968901682619032583056060602693996518247387234823302655166762749112265884100794549017494513049261331143256941178813549394685825663296477380610906648600563439921048327253272367919181763905531088670434167749506004085138322143199157062615283760526628144977305467582779894244776991473659015865026486142706926427245740573105566127175154269236403821556339376530170650396444388528096484465144844612286384336384875662807506049970729599129971359955853303939336670596198452982936184909990812869823676526437224850099129714114275618770941939350544859241364701779933291771012262949148957864976699012459918384027479248433143665974385099467761493422770091759413889680694104876722950207864386759310393446220486301823212334485611092822377869516253564309110452903640094839468697539315530645525030176819212807913400393389293219949084871253103232239447500598392349997358179599518252151023251998084713163353653105781281901862971668435618279937585415037198022136726335084047062891810854229723777910545359113584900676461318024719063427143258290034648847885149247457796434063745826415590974474398676178219620900910394956069129140955472159255403359225202435019475494841526623372527571905749145687208230730856959561031209195291496623041128923095214220678091113836983344034732320437919935773511127622152785951262265251166542959323202447303310711884947203896142908904323032504458755704701864150155844710008223891781461746141591072986350796545639921592254802509397107185495821905216874432042932240472553284558594203945134285973395119424062314070286640105115691898391944816539850426579217924582460118299802884984768003486622047963817807593040867693137712368272026336153096183904146177238595086379212676518475714740905429060475586673541505043645453976542747935109049023477856922480127987028934942123703049911068499924756088123113489340156150734413223937651190913824571426354724387731246398006971741426062228414211523253891235020910261432295324516023470897998431385143873286182687432161807655603215398239154708027343554654067319326094812908672836222989332010535909531755899595522498311466588932762114808442589920179790012598743883620817326631829431664863982135117217492877170188433790124317811295332097078737700681374212924576998493166458049460173488891849624009988521871242679343150892713039249685278899825964470295259167779354708299654469504554427140314537544522407345218472009641349217571774811388002391426725513747643618560236241363217532603808577219660320856285508290135105648702127184134496278697338768202643200470997850202383800832505113765313961191386653105763738329843011878801679314593350451289212099735006747196481857272389153374052429797729067699075525038484800681380800026768419909752721202567116263354215749230237758469271585169063162655221153705724891464684001935917019937598071595919288674175370311924678167650264691321421405452363221356583894076310375165525572294623882633909697712766612250907400423508422048381230835608073921640103948530933178316109451524288782314924588615550407513276864196143978495529586928822790723372800328073901150133442826395929027290174956754976085995880523764554960781411592030723481324830781066608196330806901601312029593656147853248432282432878581789254238057305146727200591044806994575155766365990427545646982920079742091717698077537645567024487151384954443402922502727105956512083091465303418988825314161007092601111063092768492246659567315749391516773286249768155369221228856017158812791718588169300095311162756247001623219843517427342708305735617235645805460967420182784619097712824797153733074935127543299115648096384761107785626268485224357726937818560749864636112309586457883939425990053800698878989886102484567487798007515778609413299982594446252049928500906316961507854875904556931626527077276782971591763672979082708623615444408279167285281076055709494251276699826353367414961265448868573384385950042121590591431017229590554626565103449487774660282296377438840844766912245698845887590178022594630156501525328108366678187404911910385550902025014321067558547270425113706994286551429218191039978680828240185933776937879460150311665592781859804416216529829933161248859451963640775986152490719976022849964751641420979360111137126246578164027730563484812801943102695519030028067646035814207384337345357350299925798235316145174320581372953939855923205163942672264364218825966889728732264537310095419292704018124112413847457263619829922472531489879205093904000554794583711646751555329571078911172605057286353438452037363574343852462028842591906811179363232757852184878032094540534902615844295720451847430391958331729210416558413659981210657433324835589011101895283381999404807765768915154829247452357438160332422208188589407482472640242403108892781503141233646362320391477774026250493491242612147231042183397776260863979248161857638329929825643176141687865746312981433076757238514090431607030649258989916067896724437072183754309444309038195242273189646531481356850074947259430948992200217378693710409519284400347652702653459691947564478092556172940647646793114196165618229609152880297718123251079330023502328486718601806552350188905778794802434486521246350496320209748855433037444774611597847845612273907137363507486189667410120977030429413296712047841763677319469603460307192923386973219707767650122286807171649305653171602767310648480366242975236016136797791230950946458775146908473613080781530135784829602793518244650162092605578032907764242779519693292846985407497765377164723087609615981728779025973396998737850659201040905844679411514000677666564184739117989226504542320289023171823261808184886164438589254368051092495719473984400074579351727430359217516892541705327979936125961515739159486270206819623465660353442455824325209049457091012252465683866073129262094313758585325883727505130381386761033307013693072451668678667744919108649281490350450234603798860151219295859714970114533419463059915280566665177320500700445914461567409397909239969264802990282785317810455337714568738146769384690557499554860453464999622622497786472147751584751662982223117712190754988551117046347078626182055910602731670306068146657673801702016556030579683254731839161374639293357116643522699126948613049083203887506581158633828115076065881937334969284635428427900848647669298936502471779361086520493285804256574292769207444671763981392047208341772627836413791336500476085930411110063415631410581033106589341463122279185284562458224588853048683939625096031547531349761883317167008866048738543855609449743386627822768871998005709225376896559494273780747160313914121684819751437641303643654955037841234644527709363194288315845732933762478024861589454584644997199668307980922447292500448622248002059718299267942915072297891908160564092232031426273708214343421524049490407441502283922944328315554592828771022241623460226933079906789631081149732788789078038260328077310655967550579802565704013385187313430888861245405476518066195292975997633621506805259597049699491221183802713050560302587708096430778706272516692544582848870113365158285740133740178476488494149349890910350321893130036075531476882858873688696098401952703295484994634120846262839299598038573533858069329618495943529553453831921777442903897666068512923764959632743192413938118906611577794936256782693885733906671923251343697132933248909956215997953712202945705218946816643016280508898434397536921382677463666011412602426967871590684148174956003717638384563774337409821989521642518330852256217814652381769747866907550591423211102072229370003268907211977320586668461220999249818214912045277756146031360798449453351653901686122065147962413051400643163554970815729898827363030666117847635888175053158759551341066189128540621874520629267186381840424525973755667732453543408470706261687832404818503410058209361186445254317227542633162146109477899740835399922526432892777888100321601667306843092754502861854629839670553368841114971670330900070394125997432836477577882690525704771199243562161638487581448710983239070654607366010955303426879281897735176383696263780492785564615969072346944756606833900326157576196510528544668484568619536866083976353532586123431479588587326789905409033168309859233687946317708922962145079008728103309516447053963346486648466163912978477833098901676053116979471454980258268629825734841327567606399482217869120177407461692022651012387612735704159832753746869164145444156195404192434882102860430598973008734954211969441669528776933028285355080078767283855022642157523738132657524880878358035708582673816214588276931695413425149521306934085493013973826469183566550137493171356393261652346491324463747112308436041858450103197389742314457523823512786637521048784858759905357210871218211538255044540515507357967174769017597727440900778241001319004773640789195637639737894157273733807861864718072505820134584473040678084389879980108364604303523141127667075943015892168729069674108517767187292512890129245469262176446125842302165510546740179875564628320524901437519257585590548642640072172048808648107418241818581339874658640642316865807874028221584661640834732650185034349158664400914418094233182744056359406090993665866085586311600729944167402603979610925930133352742890105068634613142297118915976630582677534252247773957026508154613722601752963972355832274870906129677515291935678709317960941780695869554085907435690010519373199443320048142659894795746250015866181392082111786327333596841684788959675969420546089490483359149148468663120360233218742467030853373546588892053012333637566321400831899946191062297785224037257257693069360862296591007094904954162514287548167545252380171125519412520666399075718166193722192425600023435923521499175057382403012101585535930003030808069878982044639282838587360601180512461231780865985932677680860890140811680683850745909680735346775543807812004606133429933289108858708798626626296260737762806469117074136788057993531077488379969693706635998509658361493641299645739627050698588326046692722736577187174853090872231284187559375572553853171867756720863179658039713846608562745398633945209853999447636023128973889241440607776007821003239955822581366077265127057404939630072232616380361394138095068703236390712000847090969470394039435963903017505166252389247094130546119132719298393028868504905636551352778055006870916514795181017677192107351228670185807904428279670282259185382810956650264929776667856375360186380695169707399731659465123427475800973123425279049821658815207602625184040808126302369991702670186662364238311298317367807870903073046730145779078705011129165986986951124626121279691065369300031049151973229556762116133101993159581848412798876923802599765135025212398024131005259915764145302811023094864686565407140272709667812961992125429296483340830017570072138722264524989749331269401226497491233582534996121990636891565623045416021315647570355229022166462166713871791755834954839935293297588382425691497672450695529012404855011948339944063471845897612656014958634247169938206008794913113003165843797111732596090979315603962107915057994900973766388789817454350693415247623106615159958746553876442320214261880461372479118957541757032355144633191193672526578936050039571833366538846312609374215808697869496651459813508073953115608558529982719607868480985371613164002899312513306355799128444618305179460932795612633467304351778756039524828589464476717804133873536766515839405562576536175033781108607032876094059588218462236220538999008419422782855512518757280977189442682868071797315028300197510992077712392268956080183256616554601649926240827180218383674263798963574497446070185500021404861067391534665676066569077761959783889655194569447692154932317854619089777756818678788672765013725996806742889302013501865270460144677811174591121629509643661997506312519540135344678230857278569411509376273802153409480233948766023646984022002501146339506470339416548242984842311820669173855661339583421903991972968292087709948686289517382480121801921174385415279168348570206079094683555623924058672164075466708449419046803290921118056216548550117574010053082498730420399724826614958495538244937518885453907541408048376766331107663278884736295282605471800974262659087050059827428176015405668446637129791818245267068617832191837389388595068162008747545640557522768945251829660053744795500309457157347197471881679691588318147844315722954337104523247774591396453272987008459836014824749309321573278810246416464541062374962872115332864060189135429744754531093193842955552010924408628580218611511307367444718339344418938557451981838228673359874956885630877083049994226586867993453166088689638994373564667864166940498851962682184568407308904385884574712683934502410982752496876995482838917853409988515310001566546792800035890535801306114841327844866155848023160538495842838975255274334458106754247781139856721475263869812272687062251063589036116854851637940123333763154466772862547982025855807200523685803330936550051643803336910362222299196981199255846882912976325653152723221933756532606138704619815674784527368323268430540661705014044970066979563585628913016490743545901730849678604156246256306195924262130824241725080101164031957904288710953925483998953415591063828886859795391069446711900747285549058660577582290515696169127348782490388416035233198024513704641209049046696803988652662240251050704855644336229148793145779377035113670468535086401378116468224968576293913892122624975358262790133558012823860627504742341962842203884534247670783911264977242119065411909439344219331278317602879781070172714953528362402384381076998309790791642955433426155987231446188264187035824888132869140281779801261662882279175869112652343207482320608451149047224666662372491580040859413401429366067893629453958255020362779158173001664387970358361437103298896250187818139840930601385481402905019340200577183915518345630623904895106906174368123329659836238362041190561944230222105885056018927653172233713966914250829792038406707969463284475523371426860944616002403601004471636564982308357484812415507189631187098744872742803464422551813293511360446357319175438516382766401034686038922292096868737715482632426293366146984442691113925397387754760798721273747471668516951223729888355937108056972260381191610880275644226691875815958965521145790898825609519020776911136617322821468317510561880660460094744177241605662988523939660694582083891965155628603895991232911465588515332042185883200422561059699696303509308342159280040350362891278314755606386660087544281801395020688005664648469399573144456074801098499531372414499597252768054921136726247823973980666666047729314034582043774010572178478406151614296356230593370825229868225555819095017772962671752906145306447480670263547524354941078206989373600814074602088158301140370064430647656722639426779641791227324218520684613851077207563884150325769812323100717540371092427167321737734650772070496732831098127194713151172946195221742143567870992275835201189853484396112891433685279631091836390124974173790923410458505009138229479206925911155748387848393673535073510970775411315891006695427881905414843602952941915162458596349744004511973480231970518190130226645321712366522433245578832372838604857688336473564367312713288011032282019414982382950369231942940189607869002811985065102665008815688897630883494507464393768607574702984549797598615688563814808214798176458697428985933440662244437504459334491870485764375541997155144502582227268513391911255527282460776057389420427698319416927041804711967267864033024005732760458358908213003282725654096232369414775192126693254599768644541707758866634035166408983460973509505203465092979150282058046061255280250765319854950141617172827083080999047390019746058448330350529282495518667582474006548352976589309910163773483181080941360283889075984537134396324597195622500541699179449595583751561911779300081589630912862958460980279092424335251103728508496024388950731803348935739914111798314355086007923220841601093914259259058965234040299145272852250915692654287562682218075098240617692107171368756557899506052159850309306604103686186342594214078812062987918573343749999492060310420990633043409279686070213740154713557432224263720662581330775419088380476223811565725295817971185413867939430969375178383702352192180411632817078149216615361111820574227365586614489621008661412233337995969114399420232731582489753461567149040703747310126177984475047661673709143189757738812618506915339973914579542767762859039945678161425407189088403401613215466724085800119271445629577020938381750983801258592422468576936651576261090839490408218299108628630888138944100068007876198874021280763414165252037010796270820267597591797145678176687164365316634288133642896199793467995445934654438991523701666190779290628057033870953684659491339243334320758557694936918565368791063472266197225418582985864125749409993396818359550575911088063937812369122934416815115217163696490837858960142932203509001036134317527782139615521936143863784658447830989676215460275711879947809248685148649015784071540595610476157394070592428852120321609243448848314295401187633678175493859402365352053393138657075734998731143946438237163593215985823458097065063988099402385152143285545625280560651416357644035084238629674569831125815041637941533149452459570764738145245793546975573565261892973136771732840604326871179522312777409320607502725438677165311693531343097674338568377473343138878947436541786415440463907993878694204138457307809497304242650726656138719206826406615921372755190468349834669982268804890709127574372571944343507244052224323806195108661543086934672755896603543817046123556757906484368546646289763730875217404526324637833835223081782775809961350489108493412560577869890962000637649179405026548796229851442784751292777366732123778698852260159013702122530893640896321540606570516004791348931902077358905157985429230061490067340312068818917279678556845217627235569429797264889625988384223577462474202309539460842453053222454435523681293345133755556843791945211609912452616286021016859244233230989709170023764064687782484579605307606147907394076654619010014637996664767071168642217969981444974861374816060229731481574664937570603789823591186666571657535665998431085139980893257673213392062179102539372545228071538482196657261765125944696309707698075704442979212347972406604058319243391788514669468003547591147228578101749955395527778009916466209183636477346939909812465084866328156022257234578453605142072435492335149528866738259582057689109293773308504606288490708505330194910880169214567028238089966066230812539403362256807954788969023976904874008460745637695392048898625684263664996657649866840250485934875064132453845615881138363744383947721563860878418692302657584362740160998642365273765874044503028272723831548337218838016034901941290624600578567641353501348398953423721923943705073288428050157649208552639694813600315604687152499343044969805791279487279604923075965623800976106170346807992458027391662965253118246799232677116162127776429143273568053682611578918502758924924611541661541655803254924709369540356565825269692708205485936079943386392584945827714801947545409324451307267474572873756316505571598279365262993536090920045526546685291001221235749801835876383018289200339359770492879902176980239974493857248110370032870841474197949641405216085733139233856960861475458162203514208209007711788415263988846763069715257924551354169359058715838166368505489774982469272897099054444486035378391769675901624639366840610553195440715630689703503567716195158846919936841989757486211497861115878760564696476004614078684547708885319078577460347779754266503577074348461550781137889888592276845417998177817371483553847908643540412311188714488974473237208321158320352387679845978229000227920908868083741252924526696316369819045093986725704536936052047908573184002550469561780298958630238701418016914233252335755502767618673507222834171805471200985419100813821691786974414631507817158949825481578841257240217761317901341901955388287859876104347668667833760814763239141229596050016100314419919971458389796488483307550700823605221631788081014678360481360629834540013814887842053480446657736646823054326818881688443632397715535315728057538216615405857116006811454129132943668481507563725506640549429428407615840150573858865365147148035239581941642197779094582130745556413722440141138419755905425576842647301344881230266192426387137865301720929357419080350473828482071934221040765704085648103075011858834165658130973416530583846858933703497516202512258629599379549979295945890408016904451007732335236008955504512503935671183023314379187616086419720039722584883453964016323378273502193830742959241537349858007242792142409574015931678432464621028772572986589086892986381671111651365899110226390764731248429617056842612419641104572436676803411362702615009570349892618990019678656324123900589945728737143669642942780983321115483466275975780915779203237104553719317051655417832827837926271152479166541727152746509058013082439313364128279955448011912302705504725368482776819085800272789223678623258397400878904995356580939858949254103668351747918778358808693683024497314000891231269800867047511077761979218162421141883960633908683217078838148910082634155131846138271662484337739917259218732522457502345848766018856384840886789656372261695245528423459880109241528891888673961389309309376701716101245452321688114204083786006524616756087817740966148725807207611714993687106302241991866691653049163892663823440792538248117740843377092130849505574816066736865700420119132338217419537406292508540443629602236663690936079344978375947087952000417266235503314136656894830214141141188520578465985853256079037533155075459137467878363276109078937594966900318630614509546703144185119556159446204104432459790540439330013359768082500248438070761402525056271254053891458304316694371017607402192062179721199594796720150436491982542798035065891892498079881341344373705929062425815892334772266498223273119361616546376206227692125267795512929116419145402227211901023195601510174958727944619253987124110352084318488055430101554262306557078848937146412211417600734046550889368657626502073034832492744887749646698407655177575352262946815017038251078833072795518142840600117846251830599371278521600104086675114765310826575626089464011127020699208815434711338074403787359182207378648501847139694973518394745509282732899520388388196516713906143631316741070145357959387989938540121166646738132604744945857203649175398468020013105282360298309291618980221851587267918685761718485595827886571189820940576144711633110770876333196452759167397845188965387900953715467463007350455539427867553869477673544674924893660742739832684891312739158747396801942571815309674631349298357831855320516460723923931824842929629658285470889051016847277055483197363219792293834185303196526569676705785695866061978647548450492684271320369517088184901761108455157494351075353154242861724573275741258373161605152629269025094745863780151391854546459822569919152805340753402502873103494655002242763650944787288239579111573727971093807546701719661702271977033511971790895363939626092109454526952772484588432283651352946805014501967817927110614855229923163850624674566080277757535316057342296320478046316465990823716504273957721522565611578641476570675177589286360269006855184627592802020309538997596720355816562293903482008187269455740506826546511478623356359043482252824734365342804284168825072048668922454473439489133905990396057678245759052829654290633286809859873401993978618453432290464438405259119657180008059592304091181534820999010461954054368547666065525065805719284468969351233497666928128744938164659958736231034899074893530372462608209176800807764439299522476501446388125639002104059291541218208721900672122552380888514654041079933954863010283890733483992042475681412726536871331606667369826425685886762901757083498796706703610865660949798497498062238173770865811330294467331534439267039889307155502404667112873545795981934758423568649640375735119865263895185731895083231502005653304401822079179231524556982089375369662902668782209252790252003076485069516155408864936730135587611070051927018741198842971052626971689584155456186284816202072833636302639413186700943371458296414434738064268944523653066043169484984723280310113949800599528368947224731161755834835435742806657496419049299780031622992717015522376130139245446168012035956326304662701339868660303297486127018622239328589623539737319401695966256270895322987441383290877613538577474316788600996997684900586643233796536536091493537377703831967974261732607189909785783730932539489226747174026168425013604511144785383645018649380045435797329273690503775912138624287397099086153978732641788828545096057595390374240749824116704640075312809025312004996920798918344838135465581443029360842984520782950397651704409727743364340531208747584594758389932439043073775996028787195405873589242277388068886396319684641193079292910653336613155656118645708040880139208685575781952618163532314170061503064569527516511154249296904008972861751495533891867411513459840275042081257620786640182051805504483929714370262086277975187397431380578001129540318861806407100587345057652517431441550273724190235511857225026582266431429848028249325797979876584744414310842329082349721116150872402485067635381620609822422522333509872900627524654982530504897181893453407039620208438416170667017800725065501157121392967946821884587777288328379604828569593885056917370203965526675212600712993229677293383655344876206913716312374335305668790319186514108889544496217524636781647830699494108106987396905842882583739555506911578081196986622922158780269060847426392291615415300512659105987894025810647624748803078630927526805316817437269904463582543772133914120807388747443329250295830278789109862820851528229758564406426466186874435999854164607105544302406111952743271309634172833341746984577647714224677108521265041301954739123045827472599669414162772899658781307719852560972372998637574520578431787807728709385870315535607266217313605660252532589018009861206543227438480813918577646551976799978962623719173390255343706841278364031089013506306297942588282843680759153765416466333278159800160951088002631771095667518075773958964696941966363139642554455419913718313306112795928260261457967262402511385872103117152351761361676130589594274009118969626292594291497806129784922823631316827897640878958499132837143089259496604159967016590243057458116023812340085239749138561791608342158892203986557415759276109644994303965819860601670864168571841321157051714540007390306862787369798898134301821618169503696664199694955601948499793512377037951893646395764052579328999919230488411799901621503607883486348758118596329784108571889389788207845752610940588039834905910454066411935488931331521774696779871224903291223077985754623821042859668358708625717355337880976631604664189138398375079209753879694482177560672386309265170786196723647147161400763681971201536326239266237950894927405310201874141215028441505354881728102332506747699343342930827988319180256325369984841148992785936691145539735921030899437165945007859374593485642331198123844798103333010847418381000203477297672045904183086745070899093520157224872568093682277468980475215028446836062113309804788572970610673487716300654373408899542677674368562106997575150198383066998594873223777058737099358799344848484147607135683740159691004994232166454150162663013214288355108287018182655260721695317214400993409029488375792115232850012076089642158714035629762045405759787601899348551407528867417989296219358164153776248457729783579704797326485312977945669857458868759776036837271163327899886784878978562054953907373020743807524234039817331832080606182944841916635308812774984743676443927450762795020396648128438885962680569799901445615378720608946407075868766495885988198227341072074447719914062742768792546315895127912822191766870800981872944428449653782653157490137304555206401354711733519404278173366388749166620751072210395715590469643462686282425535383980533287094890287453851645185124816572879259323324852724259851031662656126169978905999589898862236809073023378554118680195365141692842346168870258432856480123035727518755224368843242350221287399588174510495290853232749398787847381517717472922589768399792801609650781031527504008036305076184126275087661401059164137941179518759035119955549938189749964470976549913069548872345913330327658221158529331038382405047965526313828782776293591369954485461680096676423816402249603209522598528250139486851380695985126304605528350700593368936766108174006255138545739479093916398678805175217318387124669064465780649982699312132382160583371604987637206542452448331224406103902399363854386589918487149954562980325473322220215001922446385779598789214460823006020544916171991674913706170829584395760888771187896314873928771341968312440096990686563840966167286432416306607710182749294703208979012690034195210106098950599700113992736191875411671030313298286581847207168129944261658226129485922561724548840113395775908947063929070962270984309298541924066934907963252319771719579592352168269424264967945023104534560113523119842743396694055526969827374332201602112493988648817185987320235202360038526694601207543523332351919023874675606953112580596675244996938562988919535848554431929772636674927503252050819222242484265376625053196896068783750321299075091800519939948370221477434344698063923311558165176962290548993075558772667516810666403694797973832338027464058418163205139317129146083725446689795020551810133605078054028070927835494384845907882556695792705356803927155774340376321874282739425325860278243738263251038307835535640560931799060600869861145130146546084468689016316520694622411294550820995239814196079171822626883246628280097087428383868688448841652151192860907722132208707594728502879338553579979236370803858482497290250663598258670027632885870774290089557267224626304330070672160008897636997271999070434911540468221283935166020440052509082054942508952285582242344013090748972194754322062128960430119078692334591804189024495122960892735699046604321628263941258150859600425054430528895840784500541784149983706611134494168057547564971067804210302795714178638295074739288060045821465944969791144386271431877322541548538042886227742322723518436818510891263272108014404548611573988372844542887290804968001309698664468590144428424020956648020862131489847723851608925347606884024117259301127450728120040898397171751627144296774320072534355050733258979385411827191826081534248730179088167074522940239787289852434107655776358827225639742248689216126371590407173700860350121209160660290638442870207893122982780304539215289236034108716152484429357831335954670817606884415544128404347817473464858934745567711707869882713114995266053626242490344964869417776091525413101573498390922824424118377988260794769987980626190309369032831505229270771077911657781376576643784308819470635467557151025627097210399295653359074682814658674920980414202579249479107779387451635494670542886396469849264448108240864518940382265041347918261045874690498352431495349799019780296457593919881377627360674309258056913542721311889029224776325324041259670979685871742973790436793849922347189745797239953755152239630237955165662842580917166867541095638534583960383530333588316641034059036404342394257614350442012565386168635402388177275126090282112738918117941297703401565052228155883353585286529183679645194501798122514455543664656106208512454879982762678942047058777641717392949167429342679945654640220385702707915114703133441525450777336473031659338719374903127650294621345166352591234556425407545336281752753654650344635932917510017557658785116656578835427082660026915724090040672264362319346194777996406985508038346061171784399373835570103677617721959067384639380477441167508393454506783214694909589205827209053687010266847429171563272033940887728302616133295427742187323657845468736314361791088698942829740238170366405110293952004825199054230101573498115507911483475325272126355569888578251608382071320792312051319056746213112558360354091391444873101677422607792889829546221002113092001347055802033972177242133674087852242982258067329893959045145634884046878601025395597944175274920362723437653377683510661369138908535369390459935828322976642776674642052669115972586056243748921590990639766237959596130325705123634172028255450529776020351131798876115023682078764351344629287333339671095947455828510499153265436999539306974575243530254095642226815674395165606572740986736464535020579631762215725619952205760856316247343511697986025670412771126082482420825333470713120955066791554900307656171714022339124366676074251568994981255521442699139229821597286432420207763289937802084158147108611946925818499635588101677805512584361925379359502872614930898846906657052073140276081279441316594631889312678974022388892055041446938101228785339327809542485753749706024043362509727045509659231504248319760751760846206558192761063569029284840709090139371406527367661459930087195508907526328649522056251838429875776157105657951899969755148562590750081914830170363392210212494516461989094245209176114897877065716952916404406447193457200971062682998035827655916067750601767449246411514179788964951200429099944345827582897468390654636546518627216239302614882771424469312154590448267740516299748241385571916677176250691035966209430976313706639217679627100721835503637844950218027123414200406907991357742438290464151560421966061570228565204662503383135766712623161326277757443563345982065255115398660541903161987154002442551620168198623782943867950274860817422243580642870568477229777485556369173367594394025318242643009385325593840568446332133185262787861822257257567579560549609909103226991827131690233394785234504706298098426518025075065704336296657279745190580354025575742418633515381250825364042417290564100215236397126075264862807985448037663084617583806595809245129186835698485169520138795441651238514318795384174781865345819875618164056143990366411017237653117795710714729294803945902481927017680166535946253034094942649108724863935101500312081884379911556336341155834491558206299671928532426022453188018371393014516508783236497891517855705958489910321450818428970680942001831772845230716700308179428854208682885750778883424138051319092933259489310457803354683930482616736807209414647083093821363545989151279824994078433511951575665580774582890002239472214215075569009796420123085209726534534848701544105773978454807248199222679803910028989722367781362430238964135067975568817487350572546242584851685700401195039363030596316395459949920616750361866850614923970094865634435378566795319655965109626219099855434699869907883723077609060234878482410366968289833177612482349243497864678138254169991307969926693333000024386419048444015833752958506836152517296627289716508867928985449496620213719202960617552184013956471821892402646992630985287794106262509631719180534590643861107263606937445381164508881473443989619396407899382053369600133840861714823024598892754457185161873846211772389910524571560737462339905795361909125703981595306239711455060075905185761074903489266606954315105254492103820189791447728119906748061776497217245543168256377369052433815261049820570030634216295402977806073721904612243951227983741881062429504617368329361263829231814994147961223132667792019569807542653523539477461466193697018695192254444757988778598654755364378838674252410698977001339710252087636701963568343118358673917464489148202631312728111327587978745412163900161800703484289309833579830308721579904048869126288288843356557289576611798243504870315227245113773111808669201484004838000282901643658264506436819602303901319646804086201283481522543511769710980203843690511310874247122060780470194514326438524549436175380541486675698330753530728160544838728269613700752350303833732890780337366339465267900684149580852343073319103550031407776888886595415707775730401563797007842425017641877502032245824491318320000535240270608392646561328334400747570185575340284988129165691704644447556763667373722007578121899212119776016391149876053972544573392087194631793335590727232451482375469386467407241660177371867236850876825211894876649973390559401127009454924259096488274313535177335942957179839572354227495605670268163269670263353088934711605520720940096721833476703171381429303413061829013635107937256206073462745808388303449190289861498037535377803481090304964201537300369834910463939775202598320163002676636242541838745232323698403432698727661767535384800623985459675581882407173514804923839287890424367474485075743052442742654101828088639366892341152951319684058088905438639420713749468155183274174297775346213766633226207996006157344995852709197978210890938847297460020033868708438290285798474731421830591097859120230104478884950596101512570559056779119201256532949660565561828110202570025762838323897670433575635159752700686107027144240975651785287415088922505848327198408339100390248047752138099517819954779487746038422602308379149675329925982637877284542304153414019534248846190059624905202181199852139022224974474620385540524322337712737516959223527224711319940536212686776373298691172743249639803965464546083584577153284022772196825162313027627085062931227542351997300429682630355648181258152955273116520299598019468879512806788296060250261319223977798608900670349223384485299304229799208215074441188575883200017522767037220029661113668698085246350022509596717611900815156216360307726027681235380413138253810620068366973595600848176031242614489113914122045533674432422854288708361112075179551530435178459867113777014720631254581515895902388834165502200421928962784027204827913850637263914867726974505272987689596945103664619672215393067557812670025458464030992842506429790350864240677841960931675351260753826166688500420424575285432360015596860257468851351143527322727483515609146879166544901143913811912057094743616816687217203466032857299805398596281097012924820992330356189072046804000728593865905579721531653635403286730627607789441381661040642703880842463904395030909183388257898493186830445105562367120099365084697188112698239986647999876172719115157753841783813415195711777251962753847846097842183225284672207579104447380716575206387206142112795416428127602054492433521461691321773452276959492094276154453412178228836115685165198115782622321898016509675204386096159744744610913006266628563055465551428328127323524522030049472437413101177096027948406332443816939017238422274572918100370686005874184259527109432173204336227882377967399181272343285550564079424701393060513385151632213848403656244600608623370578231002898865019683740905288386815072365947448526901966751866484508163742393984009355538276425590291022246080460315742067554707624283406194462182250046172366864876153667940869284767838091152160739867655035741854408472182493365984692597765386885817849470569383365689319764964045276016560451353176293298427632033110342449029586968347597280485125474193062203186865247315909947846710112666559812328872600998697715812217828664839087247238025562440222582531968775525052636761717336415847894959917501407126881871504545642489918027512396849052653275276656718728079852636325911484496157117851326292579261006907088370623412397064554578438785324023125974305428232471285752713647547770915726179712929460407977787755615305709948095731366186985169626595156770400079831298011774278319543012403189504314106699937279072056555028575566709124927872411943390315758888015397124020528635899831260674978114811998300568301178533350272305551260159956607163027440610889376882006272040068336023265529964779291573409617112813019961491676565057821125784663868728652275641567232134078493400311138884297946483689140655077045636387010784652869009632106586183526186393630786045506038705364409278280391841661601039870642714870112859069299702900441509440928696086084530214448803514897672951300502715792096015555857513743049921536395527423592906640358400707263134752496143194313348963813274102258183311773930500457128692744964986766696374810605829591529085877034275570102798507758367112603314139453894463872942672180747787224644797118266797649345728815794757599494538924211486902701705849328170355586819677331660235079829018569351113729726608911729822149602139152424137395270310981158697939228452398027012078516644429476826492892751374662742743467073511047087806254777544896779955722744409373395410454132815466287396123793219792682593392039166607304041220556323210332856549115199599223609076884950964334721017776987870823233737803013600351768458740810992578735268034083559458671745872443620709052020835177465849469811343248988226449596410628088718163408296646604930788866556830782901140242838231235366227339092856830408097269388628822493554786951122071905028810552649795224027573388086053471570766259254704001457738127501978424674557548696950347827547743323540633948459016778875277674260701174342447072973975940246868442101626300910302496510135952375355108849963544448114386786187038217592609377789724992088161686824407245903437137396308143216359211195554845095160856033089668437887674983873799689768745447755103084841234904986891576353871817402426680881656406643859662033966333554868531681272189204631974043859760819967574534980173463949563196773741911846532608590951692596012210144828305539640835142473548014407626387363236510808105727265758988658025799896892937449583477147417234711753004438485014829043633525399495751815063137540390127757685769426829163384560110578409525874827840514313943800903891748306148009936253872605674182781690667636664340072612148166269409137743222961439253178801958047061287252666162098729522298176125003644450001374889587909402396594150447836253621898387591762286893981098488674884820525912809923788017726331298622205843331111404561084275695609215314003691973358852451068822907430423273018678765508037544943737640861605578039907053856879748460113885425730501764257572698060125451181345425412528093546770026013490893077538060076439014295465166138117203723135407481001896935422396098264869628103384242525998484909661445433345390991284506855586813755654314500216908442808953481077300643765468594830644516862399209158403307502172667878163182382535189193387866838824406767304640793108119042390354137287422051269551249900945421069389997959730232053427119378847954331750735015868848867842397946397088406110459107990256308286550698060428561671018024629079367585405275603562408153424099016779710394360805281776374543585657740879355699301150464836846474458734796920758690690270765648161340013286589991327078947197308367895543557373668037746220089155582670526754683393136992768016105493855828248961915542496579036933451697519660397889125858022480378354247073572463569240695133176765075342767689106717025743622938730309941019277293910581508064269291873212970832545148507871261740953806436420773630313995415776177875047685333313255080004777341068970729118726076735152387776721290619097222112052079711220759212169451152415654985806851942689091520539581836754448260358434545804261116594902502295900743900134755266479114725368739163162408385399772363251594039941258422847896970140871081052606235861750071530135385238131224488819125531297724652534712377461154768621719071909021464527115943014414054601340864345177486306075412508095023808071720094570294337565833985505330093114549306117881161379772189016976482916616355695754911993473240034224423211350323890858858539460226761681026490053505888018705666767349761120262721923239819495073426457561573943571684112116868384291825583656417012837060925220853988607289516606988414024244003808646089114583674771456841084234357518474513534091975634344710717407466103521398290819421784524402838061116973059492385611953157599376957708091551835025949503073667939873791315281504848146921232469920981474442222780076615443279761735567751477697881756101550686654660314821749375741088492511266533975435770293053266865528095896814617281144512938126706274508819485009790742380838932515325989317151742426791214207840987344176766592852328624113453992449542231302378635869718648117525083113534999800089316086308324369367824859119285405929673438618859451876158884885369797124905714893601991508051995820347670398301349985938768975849313819338242027992390097324757150314890123948050465314808698584343827604550493674778812825339766649801665164793359504756656217166479789558584716995850315345119187751554892726914508495114592098356672248857641956364375892614136585701188920733722403608965173845003633389843601276224138704507608302326187249382005511612731773047583461498462489283471125494122095389187757636866149114133978791310183403738791584706592769584491238729332416591544976466885693965597162834575093327012043338585019330505845611329685387755104125430521622298397047520814220965153497078169915466006080544301717422694701782671653632998160282783984721214408253106983894633357969749913793003690586835888758350368617210394289053097990508693461209182882051257666553068322811230850139415051990008069635321486801011435934629257956235724399591606624781983720913437750748651806261185477736522719216984655388324440887186562468270763903430958135084836330139650279115472860729119330967871341148736678469350562112772436026933902142540666068172374067730556042856923080877770635363731736547799291050796109653192877781949491454218141555166089217035566465219286620130564626775894144158474512483448426310313255597167332913343494943579072890090729858661605944153987130792539336544189131527013588364435109990132103437233693110544770966285355194522806710979791158209686010213106913648660954930888574161386649569802034306844921372618390898682008730951580661242874742555500210997166444180779329968808762098744852671034040267760611977355302271384728094708172976728045430492273369894786696004257735743179964902478077250127723155023575194802113536220048918461795452571198919944314982014995971689563677134791365274867711791594369815684109181628333670690275259207646047179952405369777976704754948510173004564436988095549580982937933865469013815284957325534115297970576757586921593318192724360744064385314819960714094929829412678140068328859847892821773600011105766734417850533539628865519927638041363129785626177594059093203681738348006406419481263861891241174645753177472773383149090500829606444972292180197320348936980812836098179665474704856535524401047957066202588126018576807428110737564930144002379509256744601677455147757344537170558096421288130787048938365344290442747621633732712242512562101409717820830274136349995708629338907262476884828527395175093443353081615060208806120856400877320615600689366830513129482565616142692504233673048734287286090245807830998987773405856294715541595736955811300036502788998515742111726657745043212494001979833640366554783488607893207429966154209168849298417451337513891935641820439899260444843312415103028278252846133123432107723657718333308903852719095151012404670046227115312764019510150131964963402033658630344361092120605522376675680669271032063543250597189264983679800550283580398361240392523876985130249225102202768797164689086484959461490329316584500858441521800308082655560205244963628905728097164079433619160648260963921540697334342583089853238097141131409411520265204894175549426478818334528312111200285263844703333760502609445552599139451884372790694842942737588592793738404444542302163863703358980521397525447279339773256367446576265410736426637796249415625577776226893898089328952786691337381541145728968479649336002484108129088258818310089559547537156149228810942028314350337752726134109558228725686805382496333064297654345893633150945799217024335473225132828708493948145163359783368859078938474064902046345936041378484940309479007429923624221524374387719524772343486311115481457241902376060333105133369458492056927823628114022694091026566303935139588237773014549324437573270295736948030364371759768163926171414118849751696554711168142001847754407766328719161604966869167743822858684120688857535106345592223019202321941891754434641882882947061838900251722526190200820973375740981814344953429098259971971249753792414727504752066005076258269289475797421412361059149304057406581259288151748892298879439702499501459506256384857397987525843292154648875605088784298316126260002371339827878633181466784905382497881350134345495866397593296634372363506022468070695553666082724267951639542025835137614443368203703212448338359891564202223291222320670783799410269440456020452667173470510058608635502514954313702960403252671432796342884917987544013833805039274861865067661227816063052073761988937748868180851354670903698144681221315615141335412269849334696278193763538178115716831741214614156210724321435559374527240874200049570488278918841774805007928137879940280062791258605903412728375280231591241449003277024765561584090475333623009874871518924953634308483060047513111634716811800818467817632840335964312766993124986653636041292639999551138212354132299260980827253509251696955035746782156152700434161282542213211951047561444309009018014855757571207602148009654746284930771151799569588735288278378540047861005097699989577713150332401521461012058574339350824610628712152348702715017312957966951614273384843292584553115337612637723838311063636529941432234854982321979374038341385701760041224066281166966188280991552299340289407639501840002993306459907428295002511730802480369206683463495295362375893850219825581842609828728333327894161436813297250318270942551619011226198299175457647912702733580343016816929139641482299383313346406662189061627022004147860591622123753802431752783608104768692131771604550891807233173968286132498532510346732828840949406766898164640480037153773484692120813211544216797585150458644184909370588634856628618938146931680187311071421977910417933043809667156880988847728959159467003685777356851781967598355467237961494498927856695363986809296393518837886016853137145834783990528685371128138319205523063795911746237257233763736612610738914598589101900569802323977052317628567559797246754674042845502128609965717858207866488080875841914982427929372655502605492136349447845473134858713887810611988897471460921496757682376979495793481139892278259761302179360383866720247107666466906592445252998816418893301683208808337455010752670684290972249935112891368973725368300960001047862763036088251642512507899333194226006975516597798023064725881904164351664188428472733745489758305878826977195110252571340693701587186896536484436710712855131015790929825221583388263491118157503398137067551543195889606727637306152767975111879213649763985491341381603184698978751959242983953031481110513999375312865410651321618957635973437065819999056168494016165858946652249042788102260622019729621932715789174097246949772213848981070682938212363845042000946082939354085674098417455103130305402871200704013907530389864162001755219633946477107287603129913350605058500205758508887764803433246769828262108689046844593603536094964106314755422114790828849632431116068718091939308673463503634550399074934776534028148722084315232912476192283629506892597518261958234368043677211584575929076677298060818730611688364020164352599205017499217740410381457570615289257060288683849939350981075869144760226316633495632401775740797128775542868745373466557473658594400968678463550301411365025496301396607605061463644008137307303087207394439188499716955201360106937890351337790262375958214402481821899171291920361225317065976342412004875415162392750515359377972961635858453165035948158089903218565757808663668518239328429668515355959447781739165858988290633207459423414412542763633381103673119057894788916665946210992080240974038206414434785857002614876078811608552614627691182174570631486140790059596571753952942254517302536781371228598144741559405677346482999238002434092848032650979548801517916456340126378689447537874476054788034179024066081953754214041501075367641378926967180844205102400907359666453226931642325201293662864254282954090136020566712769776862676596057622107176647384752344935219556815835754262744289769703905168491359433828275829811464068268751803930332503943104782236065198769202671587425261783673428274523998068540267864511106499540224713368653505240439120910095142022190670353053902061042039102031888792252171642961747824140298879209054406102495297932835748236656079265696688266785157320957239294493339555374730526839046919328077188377799749371314073833271680428604870097656694608654665802243632911171434132005481925367722496009683872026828195101675520783116384725178235060746725022051221224614496775067744588040762232189885938925458721789280192951863126005271879913135711734775911263188039120500281145741280816956929557764751475720488999491095158996466381569187866502553750731533770482345906441953366212172035074079510269711494714105542442577632327171723457008297369198380275795251885356141722948088255890018200874234846578814975527621963842565365712075877399434312774489380940391933003140669595448265904223849504587084839166802926699823416045819383185617622858550016176541862695631658491792395041259283032048847505274198183736509201215981187800172843201890196578130764961528798000342816475374333484622389504627817476218279423322071216740661558366483733662957472242279940224074093977691485195886848042639058697127917409726807984124520256616940000559427971942883185079263045102386947064796702585566563559301856778999841131375956795263657700726052208952655518836423160583000190403860484399588991632561026005064852674743977423749147605655112122494363225082101429546419160342642310768204452952702362909479579464533109391415808155566215148505688704406978544915574881194379842557538628150004881786672927722617878842012660788277047255202947561863295148770529610555354490275391332063622872855927800596147227184665074842878210369252210388266583884830178706829006770201528531958577721233795136602343202144074306599653583398554348801427371285614421046219904459712687149921560812292228722882116839871804083870836580942265409488107735021458065436412840796300514364466605023952170062418656214099061693667160889993834877452756543918436164695857132987028640454378707971216503163992878411089970781255793331531304363099930575372699074784259787968884607827715130176274223023646977830147928905523777225206610100049557912626265094876059853808726678252633780833635646009888786228138562651510970509116680945348189859444622862921619701290346079374383208309741494113267600818538468953108735248035917210472412889029429724282640978369790248429163694034377113263314648146209007356391535672575869534426544793817613687696776603817629495273758039728316472907421927571184741370990883055061283715666028783755722216092371359684265318387145230496909521968186639668129753792010592374405654584904987762713455380938560828777893591945179228595967584225675162353741619456408297484292534151877700666835107968658901806703429494415065320329233395591928111752952479384817639453644092223848192787235269705489427917694482036588415217054437721778417737291349706287533015465813316087439107916703695650907627887201347408565240750026164727988238018295887391356623277730324475024004220884572703948989212944971996909886956536307961030103668130675509850523809733838555587930595444586272442552406287995971390488667269755690304802577681334285376737087662805094962491900131788377956045367016742620351517919074627097594195899533073351085121542467196847548637672648314320419955137707373475569079477177233686254589061511724765220696232173494170475501164136674380314316084719009434289110732378287929282830579995470278576118646009707453125114384313605400072909739955258657822751228537273579462209281960187378370049697123859952004575046813720950230155828761867202680593490939440629187989936590945856091511714134488061146598415852812450550709437414993141055421446583801434759091168839998252878830873135839317618817670095881457979800444320747212385692979466822160869215966866126697930370033757969135148370723109922548459695179409822586673165552255297938907525236198226008573416503932998787857915985895540212533436508061839344974087183312925871419693886724146572689398405156536204357340007677970952452189335570960485129763695235991269890279080964032008350020666983465359384904383854357475096924021100044508213112218496334395307014696325667598265172928325704002036022549963090834389596441860252137656747580215140884254169270851436256707596825915146094694204919113436509467401962876739799828042587815457093954542098960016472891666845879808018641198229793017218761305908116204850267381508016514711420292794577274820272953177959333514083901641957711254183810646324672645117807154527105544731649948797487114947675053627096493509517387171655730431159929209340297917381536773693354000878629180255120318090148874763487183281551662666705963445815728207430648387621232238323366818334805125676874261819372568548994341421464734378172287828381149478039001824034739177907849796324719236174979476980116518053177495960500203464895703763515836229118296829343423783171621728339405700659315719239809687313165436830120028011375948397050163243857525165563529539024221103453003004878498629456884274195777992236197926154273407041328963566147513094180144314176808508421029910997967967200464157639037648202546989402536701709812205375844022567478314534650039087062131883083786972184515170445467870413246988757132043561886861601038262157588122450923897948728107076856178873453353619091971375551734082500250009335860717511804065120290595366543729122196665128011212161775767830331881182164768313739210710904620945137083192582826819708828929007759254132791944342545109730468135629533351866755304851388969694312056816672547658638938630468720736297976817154419303662002998195941008289175514789429724558507150915277057292276454018649182414262169677601641379519989385013278142341148837156528005037657409423804343079589579829743361008874415947758864900307394215257393409861612576236787330321479929924721155010494852364699496620701425955426656615490271231261350294569419331868849401709837199993601637728637052981778799862964829366317112431281982424748636665908989260468795010247343065713575562421342562180271343985821425064545957955887652368408926609408133886585611987785107849396106822989614457757965503221645906477647578645670430610136083513255421274253473590204586240925716091928599236793317804848554917833412923786572143164218239199182529569978547438562597612013683440363351153877005624232808370051525209059613511920785114452796522619905522566252256278895058911981144691412296115872029549719625062101894773090860213911153912885642211807687217452914020066469098588048764114137580230735017591038745090718563293871786356086246035020802865487410788176214342680740646301628034868448075414601472841455013364084893585254927582628911475884054542646340242216612429369557729644930743668694810029608721345372232892509795471302524477486350765470079476464911023702551549732824034921240419844641035859891579362380459487661974651273411643439328960318020078678020227829350803562052374292397084071165359759309424652821099567649687753242693687022994480148136947655764313796756455627748535288925965596384629852145585206569528132604861536062800857577243197221949908851569741504517579598588471746340130133312190510637980591483158129812103749010773755929582668141284715687615119073365060718934817347490101193081251061543050364178767171480314432546231736814788046591540355602213060776531972594787092731758902677779122495321546603561292070391663827012413248364524051929965001395777890854818118704134423722079530997399733769134217935363066222701324164274354306409367061287966457400368351310874504889506757560404616529782606630583705212103329026925191062081463885222524831435152039599166259311660926582967331903686945590906167757724025184189148616974842723017726106418186720465017990742907656343550302417612189459679937814406905000373646210198964597732571514523500217823432855604732884816709343739558463403464256470251118327498236784225161356547329606650683482457431601790540461792256271199447932627052150840698820496579480419954415610264696967310657065724540784544387669951391953344924803072732382082629707566116408684167340617998233681392269845858857190560834482793590007831583522530113456342078818440607294717743672161830264666161582676932632303869405181416726715979324921280414007709169882785306160617033086260811882965672914275298531108772708411128191257082362963799272207254414390596357882377713713923150695166197629477845882890517696908259696803803855260737444330311337190119262005507901814129112716215536489882738406313752526624471475793454307894484007265294255078156846354585318532581325806321257688716495833588993298571159050866019227343403178457575521801168538693868600136141067343891108457354975595015622620527194605313573590165019644468980112952677480846685484746025779443461201777156004731177685369216527144063182413338985194153921224733269565578173729585047702651004085384949729499388666859695497847492443000188566914326587091946482731765832592615293632300487420370477833519972569971270702151668090768925453699474205435704398305440148216831023665406150284541320087993622742944241091593333394279191158801386140407976542334138665865645932582919171415595602962458419478798194510951845392486441173918123174800108126516068142698224129314065567598467065106928505497279478933580273718874759716834525684779783335649001142369227227312481752688393364369757524016911417695909137039079225130943876835951829488512521076313736154992059135184716691800723973156007196413640768709124655203211474865723972623723671626116400098260743244605821402453835882430370478549613423269452043075016294688160756803398650602564407879667921173913695029156347120750096306030177938641743453845466168591504810146189624839327166049463581924779674902553840929697193686480211972141337457249759890050530615744932771760434789978493497725901851818993337232563966796491058433643597217246009258015860203300703703998312956707507895031227073733173291225770050213237784173885895253742674020277164891943537724259064392567783075828107960649414934156626296196252806215825851455206165450281116744885503643830304544205598937861988603264513480633771511236477998926083600279147461070259961432883314546910081598280016168127542366010127569059318612260212835664760633769638393642556738987387453969171439846492876587659942334946360825271878545252473791380983755921226102005169333548086280745723508437988004318105125693310234096037159560691652088263701238787144241095954870924034654942230014981302270303038146644281165497958100800199356043842137752182543363227225757730956183284844486601178386571354152587379088120564885713035539907665340228248490264864059176000514533999748863451301885105465355900603534534111417247979467554452611273241293885365922573381711687327627850834682829364088954458197741584658609665531291465456391972470388408318149024758964990586452976348421098633860697388034403222977405597180897445787097057616534166119561968067188502397310059012206870397877849810323816409132533086850901012585676234657548338925124041389888421381198066253278062246592211527252086941429113451945234791161525029713599192355657675281638343899196689198733049979189636767646678169463787548851976380815669316395490846482599369954405254793263572140026486782882630530263747308505173499998949586724169947545842067133493126053372532757635712141174719231533340275854747772446184913433725094204253580306274346669151089321079586076456563174924477922063928838076625762096664426629454576011287059025376558247102511713730984338832117707172982947210588940115181818228908525803971842789784084677651449089502907013568255573626179473083606439817029972229455673432682100681928850446933040124363729758250578050718403973635675066422614802182346485988793400728925154582601210447070863803991074753980927621051539929299559604791705458268688430272319710094249340650636581466856983398554176569870133118978853972862170147554999258096889014680755293925724239815388204269676087924988984631365123688467927275949025038740512767436283358157900062659631145904045628882336228976905365655362445876639661363213244390770084771498245925211156904585075784372332540931359254642662242538437882583369142590464240064151722354204284662140620168972846294951126915918931773408691930022213949906321495889839706219000335011413485199386757579390081501975616395802701150683865242867935261758590590273530232901232611474371527219979757758561451883751469567098232039327514025653442957398688037571322690292941179616913681710345095154308671497160726555250673137582790066601928612284361197685262501492449224164750903257782099932157698789722491159863950592031240482597956025789264105913331792574957142186790485426710575447111049436019626201647326728756324895266259016928340286460471718650070793201296157077230263172016758767826727477307291949503324093869267377172766188818242272539887943615577155181598091465304687926713598324713278690483042111262604651090763516768439085068195915353922584374440436155696410003149603010833021810862509675802286930124580887966103376493533803431205622919598776678474724464486329274394855583710358978281286298228588616061790750046977532768309325067593669379276052229303961143939058246946182334304871144546612708381893453272224855683909810489686761830104914394903428084139335938031203901304364671240544669316147325865757407687502005501296807291954756128275807733644745062055894325180126651524573287132111537877353175679038136637906182310515113443316196502599721930859951869142951361957980370164154145285071384205027546267102560392249890674396756118814744751052807289927780616854631686107620632133247844573383811784286801598654170595924582841000944211296254356949856921076196698388400262274364907348609116532513851832603303058254295777551808764742709404410823720730950115236222629268323702961489289097663091060893838740750460657776342757328160371725174207966686314681206653901049997184749771442408630045382881608200723346030763447095040257863748128487812872277733719249232939298983323499598442081222747078296380452450270503770785581560759628954506701522635328832009219428412314430157226736707661113643032958885602296000592599116679579218203556524798754110768650386983858398580578397283339499531805848058373074959449003718519299222047364749695541808144938945118167772790216038884624900040521883234617581741269623601055089984074098786157254483451539252612086903536434174064186523233643267681092458995004432708586695320586239457000047447708846225839253692558319096994548922857422335941112210890544058173100290012604276000140592042189685881004925957584393624287556847113061970868466037522429473308229009215850213123177537603526451447249180683176503428889418617769800874709554508583232196931973662108554016165402804773723621346078850004445870721785040993593907123839433223953200074436307299485442419384101876880248774409246752886225764793156041425288062805755686909539705222556501476717616390652690088812956741260311744451919422775504699020467677071248377184202102738224917943137446011520497077287569899600372899131295634558921857848737202637742688174442944572074815402563637085213307498779723741212495727584859124568552892496162602620197333026103085027204886897913244564139026945687936902704306891108972903917226813446460085198777826450623047720680573143934648069751912948001393519622197267672499629634079347023394935159158534496414569034827989611402030827540240781651888700194383853349223785557680561858714739907407257280711399481014561582055476602886217973838072804268182299824754031813018138140838632035245074342223183189034615670626620584206670624161284651845310631301793542037372923468775196958656036041244174176577431455559834804744404643857098425252157764067649999731405657474277497536751257039412019380527851327669245357646499079255774875885319649044052637311868377475511763461117960187610874736318911980602555370044795340554669499860169282178652866525881476839123710542792873490450810346656077220387730474687220069135044205355720921404212371513391761915594595722269817660929440237392617554068847023542499838591574986919008540806993125596944243545591886464846510603305897326668619211615865537559067160036904763391807425942458100053593773407267033827992710948002972637192943355447073668665835066287630136232167999348106555076532328285393515628717632534625976597994156068111868079887754481023094631311156395347772634193962704267193534550017992806216951102109686354965545398769771729622179503940510591294836428718205777372710486806152932557455120208534453047186952974120347314689127358471796803944633543349933795890763275872605691558453746258483692727904643752925778962720941267527790452150801607880727996320213064378447112992493304730352995554390202516684562565701021213731308860603302977307116111782557190426502243021238769219721023124299659956854438623778210269922397984857370791277679710749445303745668035661890499583981086292593762193313270895449489274241098074955729442173757780987136752753534829436668529685181249532320493675825133172715137862964546011402947520155898002233571846125680080177953053251107620381869745545399856841691137116697753148274128665025584757936642657814042732644921930630170470954584465133663395228107207200191819921387260069086501659086814931084021613262502984085342658455969617808403828587541292649134367825653778342930886926743393983797655631469789078183703800120564072960919804377521660636474812210220079419256609596989410210092068576009209290459295785199022855158368504501515505704418781914253119695275267824387344633798179106692544643816894334352129366277100157948948850281475808615157133225356679875430379221362875062053428899526488769331911601661321298649773092822612653845500100406586092530394178907594904639605601942673885510518475087160890374441130637335353451871856806052821253839877990180060182756537304955280948788149297132676843168535583102201347732013082925887335288875353762770718409947059157579156439905839181484251314791264383658496097840950209235127106391585662200364057187142028132658954972264545714526628692945723003602931317627205688632689315170640884997091708835378687969962051337644916261314751158015637478030861273168509549164541899850337629855046427997284703050647166750863280865821915926311320974974542862538921307919358331417942461166146216207371524977121705838323511314031569097253839664856985877822934245248649680448557188059608289921940182053771018318516575354259651601207091890797717470840272639632172054549193145991278559004545899276121201449436994627427902348952615672385064681650749698734507927821947492025560934905726386024855896175811081102271357587143351534498476820710711806237465565787281265799542410824580113231360659734763334351843725954874103234610338046661074967327160003883403634279243933779577115894850763191435134941810616099823220817947526158295272064563535369059595592510471333494351468111514293470425865011755405282692587229087904664298508018002021334126477322685423562845163137236184291473821247448417246217838844533644858763853511258217723746635923864781780266187870520487748928429090242691252530721582664819101988322793294484728527260942558687670646282024399847973640324904433851905334977220193291222290945083904172993553337658791087373614546289527507778859166775562305486708204532969282891324834877333013224759755416501762873549887158550708629692218748930828859892725850879222520932050763078564996960144062325959294583548830292840862528138815037029067984944183834201399769022242053186655033630401277258541355159999826653723292744143738188276919462200220670104509972193358295608009989614314717114037894335094370978452655328472843685012264576952491202980144136251881808665316715094921293509513230925073219307748967906866964038176722799508855740874737523764668751793577826201777254911619662879700788361583221259849339159681251383473067119327722024671626808433500907780559870086374676541246425663591502473973234852286447134906082470000328436823483761389059409383792486089825299754940343697202335755697042534665827692982202700451812840796867607435938933739888083444050286391023697053722768205940569023148282547905142563979373563074582119946012694742657181785516768830894460504310286151289067467727750042249612912951641103337495071280727582525414349192707667307626699188102704563887720505433515487482370273981391265870576553588591386513577911077462662563370800321015600991336922541922250864809782199719136093613253453018880467571452584009923954090238844026092221520520397690633044192737792272168189708467401853793321725408872913672581517802350818864598650217521469773561728094160721570368743971088175455953410170012504934662570244835170965439146578610275668192208914808383730235598917772601006873710553040785497942681622423172998836873350354756553943107650192567326098971355429044952137203399868212979833065979420335408330117069015775219946364658793184213460331010571785203067651427983230469116646784617433767875716067666653523559370167070530115340010657639218943338402573377197581882924680093632182501338254238770778521327396553841919859334443725100038618232060585158104874961973591736768606561077522932606159556079170292705850936312227228296842212245137587646255695284195792089028182822202599160203421132560264629645091657460009845340666275146022036692697142522125377960737102713207125079175568871520056672828105753947176192362765373880224724362457699163245901369885835079044366792951450427442247866956305685388344515733247879048458997708262018608969008588851198908219002635776542548746975749310824692806353995026532963921554598426520870637703568291523988255630221843960489067844260853815244158145769280193404745956991408639407662346822925121400630607323097250384682197736219686368709942572317204458979490645699203486660859799937000614657490417007349040403983919731679855054730560206051595711902207324618770118695463671136494655828997340987505797325005266171005306584237459757856660280256427896575916322041509190201472088009574375711638160197105061467807885646068635514791406568488236079128691184552713737668731644250147063654185261286502403143050876115810091118848588946100024513487331952786508037606737001879938734112443462955513094841067163491109711526416167307793315101992262032278532175625245032918184120637231729385621042651117162099261472973486644791170308617095491541879032174000185870896653769849051100760614836761834598378045393963443003192095893514542114385298852660985409139021471439581568276827993621055290177918540854142446263615987996324550899765325157979703292981925197482871965266323363354239465448856322043499035215972702493564102578359667400217652090441077596896718567947954289509900739597180332529420165904942009073599397589854667611512071794057946553212293633393963736011468298735675714565495892407027490367112271173416230842984354939882441459527807941301903536613062438523114699629408481865735054271228832526341778450440203148286885842295536357314580984913112702059796930923695942327087953667188904588127320330868284680116374563884737532231855132974043665114797688459046101025540862379140135673598051367766723272490618921194498484938618368204684194776082501911205438655854965166317285370507028549727228983026637351014776761657191515735929458223718135017015770820587587935297414605834325604335161629889912273432866657679910723422220925696815851557241695182471018347866060640965345432335714248427923175902249693183758803707403755823577710651847469182970814651360706053119155569461427800266053982473619274814516391260438869777560366725884176092265893064580498290585059247258752664456525680549609582359837261599603168227030327558682793764252907924253374158945047892867714018109713667103022375975493307658715458034815552387039671602258317143103284681628937958026499033586049227099460164035635976835932618969354821188054984728417527925062205146521775713123136106073882407829857744543986364479604287017668218542363368680729502426919989403620737455979347822808745011778458808824444221981010153259947620176525779753852638288634044003492288952274534747309489802290827087111207767502591161124504183764876395804039933040252715009166405716042308940362569406543349740477452234821691712007895889740511201643143931397774477608018747589569374650762219620888572215859416060678419469451272890791535709012988513700769220991059166965101826681107208680624049517984717973129622356839067090207508099722211035561016521987001723324635725345929449895488179292860495648045737294418715173948030121818066227145703820698043134561390010660311480334208850446193084980052770722128638132935213849165294409839847840814158498496800757696067301150614670484327062206119075141255207190587822463177946098339228632083848403681988130424554998626520154188852020976581158883054308297755871864346055956445585444126375162544954029114516158182945525032758679206767854453370033636425288397541043293393590726515710485831550214018306235430283748897222053303092194611695783542729593053433395572518485762296295759166949413199524806768297880105850591265482772216713917042348743914644571002174571878326943657232736621304526416435687479651566747622600427254131638751966915008608186751428150183880151547277357749698086964491805028837560353527884016038510069665370640715187696350056467729493930165181727040227284643535934713901610263826633956873122332969755800447650384558715636073833940236353387401375203505756150636149735221601205398090139623012258579697966935475651856294490893249416442681306170625482682081569218869886866851059665614252931267136265547655630334714871938524185167539461381296219871569767962576840627416842343609192034825884700963483570931833732633435721381576799777233058211096189562276299225339194790040331380403641525170654741127734322817096353666336769580467337643862306668526019711451886555787105426799752661572153688448934708997300834233084644410140452062792739292112714506114721609905650531504182462256376180305662256482559685574802344724649917959802095861120022924862634555208246194917104045858839490005018937740220134316701644832266510869774434141934836256404634834863853561591731955990431547316885973736250071315334203202003907534034220491058552554289653961704258227243490739981685301856283663645395608090811789948080604974631722692281913773687797923792887276192538998560236758905918596203863000047805935787278492314169798490123185314970833456842711844731015541326769279914081718695736296838392342078195283340663963345206495762898299940426147493594451870788573891281788764586644003440624854149374240989229001023972693429422868176323574814932631412675726726502654364620239125302783703557667445744885563015429884147322515586455132778766736647766556548615194249097633811267036044459082144598196654307864172355875625345539422008605479007306204242376167840029301409105410751455750364462090108897714870991205445610921088676068278606917847417515530429446514688201263536419301723544713039554946995476300359940883223138014948617034329969098883752516676437550703736030380629507619802045269957794767222482600928091565471706964775998645331624904836880420740606324632802693057347311975990095398550916971921733156393466265031561718378341822696590401207899080166816169805360218502186336943461445952401323288492650456443553296272457419707856752172267293089696363408180598586390682936118397131813421455510200046642830223085473242290617312518403168887951101160578073155211418923945117613675702480188799107736357235386706353897635370754461566212282950947578759797494650783253680151381475330221273545359948996278062102261997906577270168841170504153385108614258690817061405523054747060167485261176391441820434585724996233653579405975903115329684012797409079989429911540834317891302212951788156515566816270208640819888709108874327022470876045880325277226245523652907267764371953448014651088930256855476619426375594724658356379070040827356582734914795981596404782791123442952493101081352051551211835639366736500469054319986424964749583233804549928982512860242300532697985247399730002902745300752191356514776384438831998355624922231868163917225619459960262479225027792226803065206309887633821448526727130571541696027302832201283372019105221432011435144551198456284780408652573382310287398928008151574030223769019543547334947731247706340502019686251640083975646314416489160204647018913956821287527909899470742907781391793283061587715747462320626964433072302574515716352079575933158606656564939125259056713614770631461246742553627629696156456496274712348323661536104437762562740516809936727240280954363989962401991120789303703590981710567680774782229127118018626566370491450080103362656235782847982230535091732049406100576065759928184123065722637684031604388009990256129422355463757379305539724702379076109907796066296089063422862259464331750080909351091230707624615449652419424465958382961113086072513761450507498795041200618862993447513458431784912893771605312559422168806940018961131641306032560742232882278382218842557848410502658287790371758318709413879457832409698189266725727434060737472314013982319682978057831366000887095900136080559198003587383301649573670491064964439228749871901961657891372272422431570370045921034233229581365682276524981168389837784308965481452650008033537298293490008296695603264377433538302508133389724785588708837123645402677317795086082643916193719748279715877211904676363544160945876963939362606160577022424033588279301630314746679022568008290459908791596479342580904046783424506926191527029485065687761480979744106428432499369913171872729458466426324795432122200471301213269700203902869744398860969356972387651998583590239062210664608239574820860539451283901334423573060014038783605700321048788450543958136672218920435556809320339766077197057528576704631077489544097805857227040695547017927212412626862166359176117918018048097054989939883042293520801708649586796494259635549010036440655808610994748803162324701602842571600541541846008833410825163793817311958753732670658744513447252219644133270868030936337395115256678507520069633995577982920407636787514154618132134025076967978503755944360490714953078671207989826127244430129461091009903179967766903959516402219755183002035394748527811873312297238248343386639392667882684047563603161744767131353926502641840507006721871841830454739580210370213512056466689328238582630693677813016374448582693847785945457704116376101244166230418301975369476113165064911385445610233762623806693050389112872038720978422150403237081551611958295758958157336373454323474024485886644712115029467567486132049532186894555525160335941170568454075222162800001032654131811960098710436344304529099554348806047221446094931500517006940300056859023604544166100481383814233451585124776319500079762409940235215259746841157108989528851589817337317937191625487872630454922381009337478976569091349331765122769898923093488245109073113864173356926574548441134169703108580484286342953062858839955759619111220490782985774244275953451418166456959908060850127637815302029705621391341484668537237096514726476278963340872542068501612116424885458835806864930324609517049153472045916619093537743606107884816748906509118914727607433445769343352322678854031002640499259174972013333463045174734757260716930081301402681481739636777567192527230670109820968114346634977845707266159682543635839590794116696761400701603782868149058679599345539008991906821737418003739120391880101470982855986446693276103312967129580429072500654586031560001494898873615067275983311431563332717046495600753550288258988322740904185015260878953973137721972991415403124567082530467786259673766300599095466329139321006113038663138741755052816594263591630393074437198088282771137220530101615778261985210859579002394446689866403406002254624934694568478560406373909419883769521146147365745071550586214986099540058525480971889109608622325359479252523271859618548535046384010504608704510985122976692438405370634924993276137310832375882011829286447584870690285044010103433686432946337854768926164761426776039346940213252549625303508998631059902275925996166307042980720233639403732279180136273507253876172800951803092743737981372589992438152604702150338319604808697213840152779363618535209512273747243637067570986363521972490600645502213343703524176023520931353531346579487076507570439854786541795795728540420592332449599052242028691130199326723533431848819361194220632154678070834563711394980896340935063577263150227581858077028147072240730226018282473924406908733302505266002626409120506264137112564520334768851164692816569236900291070944681762338097738078524004067295490192461505119089061560011544288407442508596885386306327804557126296795995313376650669122520209807944566402285984254535783807585919208861456963396324683697342557296263700084564448382210539862643757310107704563120792890158032851469158558301979006248270639820893713167228529623047586510733921444768030170549023204003264121304791893813935478253445506591547925585006738709923746794614515331119949656625206852348619017102110416809172862963277571318832212344142780399676978438396445543457906340989643731591731247852324852607128673921185481386026088727664998069430275534672628840269967169418431844050936664661826663172528132734678696683324841385340976031876117315966079153286184332075668594719915876738356098808074747335756564659956623148089170525847127717354106191735521937793675850880372788492213908785965782977050014425266056562979524000846075230879343265338266392660867222188257478564961652386591341979545058711272686299729644657794783017270670586692826641306072314969550234831507162936288897310688177077242930279316637089997042443136767231385891735673340257880379556271262235119423796107646025795139005939787140378632026811030343234162716264087773024278447814182126585041826453731754506130638513587422867141676432398154190701616943456052035608901325173697368420972015337539908090516217797910457966635243193572900591314044805163726853789971237437455987151958733774333767470198483356328030916702726637976047278408900830340971284730561276959748847525928756376766013723052920696604562893750887652610651563865085260000490792333074547716395513199899934835538656465733515219727994232544675024630654566437424871842485779312687705016930894570395824213734885350417744528141143311542565072991559916395522662089295644294755251669333953692009559917715375308660426651409649256551183373223139132902164778612685105358858683889425422278407625218609141557023227611562357690416330527715730286391485785218891645821565875478116766116208609748791665546490019007701914052734679639071695994220026875654088471635362540783312135132762546483474688406852281161301567739242889229619309543386859309953752792749540266885793262502207239239337835510386381424440229647935720933048462351386925036901410083336787847786496240983811145731043201843170699943198665807876990707630317599563440313125811746602009630356702967766851346621558399942501100777926824675744152367497975674380452403022077537112222458126742768931960339551453988374667237195157079309949607879440528796455904512443950435736316561114065165989115553251494467273781265040885294293172922138652238313380414046737589123458027859449457905328735808748722921167524978014157689133579954400172621124636322837440672337167590700938302480078882390994913205423635437393998331752797409964566498382113285658101304448219078701580393844917547157560336409242381576746224689750642320093370946354946530335678219221602956548929300565590336641549187320446043546294852464418583018840093694211588593547385198321541064551568917782705962981097716503473493921978642716269500423803177793903869873697556067786276858665713940670468916814424619399342051080298418939400330581897499704200160897735383081143993255758725867849921463501013117170277500951505688259472600473155915372767975005582175396759322696946517040095226678702842900162886327535010751327473117541954061061270861489652733355666842402460744782590476268297479798107095312476727972031427917917042756386834809949434626191117579195794676751455205687142216533532034316521207069077159437049274047031498271165505766761492365223368286204077021408169877371163510702827020681603510800525932510022943254976870347890818762947237428260433304979423085065564590806099540114926385848138558171545153563239832033856740005296744224786109963616817414007346157278142142408890624962596458342784876473623790178654576187255515594004082745588071680459066066629422942204752218622468023075599926798419578537180972625147368559435853782246864234784070051346000235380139154290500428460205786812428881619404008009917276766490414696342506742189421543664439378846138364376442248490497613597012424830547116317733278828145803876233814657166531590536285621073638251517380253088843932456347972169838745870009160490561106399967053292508160248380725723764139393319376427411272304281799067804382038243525053930770368997059964506010427350891153845985105641028319871641491064035038558290688229606380361811306713518554490697054417254998367473387271736691842161617762959218074765738470358835721963778233938020332684624186855368071461224305344440548220009274741630301585530680511229273062843489756756454908577925728334249961181806936523791551065600909043776079922060290207511298673205680382496025337637546958048992313238310908067553248929936305226379510837444896447736533745337679828120166685664309639870037606665781256072033307273585783733900508423787975954655899189963135103377888964321187100378979939497294142954126129083728633281653082633973083301062903441943882069116610934924165090480944845052816848990031745365524664495414510768075046351616619929920032054650540863491267586124044330171893384733368220251058577635569160092037186115343716278969327407327825330084003338136394969676884153671530306019130347665463907776343652863651928035002969736392635472365059061126489704635559611074972724421090551122610409037802119700366815928465883128017557514520819573894578295060508699098301255920494131412617321626787783903666404870576021879174389146852983318872976253964363935837948330828741275690940985711125377473470655120061018226900194905422376548288539837452567421323231693233535777908429340684337180306178706500104412215717963399388442211162594661017130498581102669052978741661368122954933849230786409817892838794059869499210061034191174432810961234782586421412459408476189421792426122865940253195327087710892303247476573111083437677253812481212153067327845567538934094499861609999365739489601589905109550458169802377168658496912626153055893585006804784782145143886973051683858641541085039242800954467656158308926283974193104866124547237691983151867967110901020907594228072161635020296365733391364698892345984710990585781120526614309473302122999713585480064733791082781117392709589320722343860202746302090492961053366797299423972886031021481066999763196912276904100808437737646662673212911642616592120534366294480504987824253231051131295813315786991392029457358938602916292502057041774811955551996025654197011533797854222443005493371192943350546046864822037430820616694583610032983731177444826130647391326021492797503424002934871642734675618765532026145703107271690551076170686967884930703727260712711768668084939209322464476825679425273303979574430418275713101436319353910338577986869300114101766986000626362244513740110912670721516625346045326224971660828978658965621331262980804302938398995595457224820684422332851117668258959245276854823061870488172807320258082476964772968197538349216290463746621705703199289479167414133085854437512595209411850154551347937852769359965329708827728243361717216667174078753993493533218961616141425233010749333979269510732682908560884871989305377640368189655329231013292734913674258381116122806267004186183633559025766853726091564179542852728390117697747063546356331304424981352623454434816065020409590475975738740682031621709131543602753360033394869414057378317924746670113230248790839872640329081387049332840623542206811712175674665558935775628119571848914325709587569735608672187857775299529666789803062686103376589035113229712387547941431458967341845462491220473793807323214535405610259356294963829313638925186937405938497870947175054113616469458931916984788211915638079895189135316879159510598770383984309548718318867787371121026663558153671722307046334776216845397904128818457724851611209584422861161966163459817115641855363155677739836669856835978283790852995811103030312031302436538950901613233020947194699506501150131788543136309012107113844048671520223009953412908713703993800232299932465204774589782993124983138094178367925343781647263380863998620594584970916203667666831719229092390761906922765888748332237846023717874387739803683702936047202277754423583434135639381325162099734676579589383404804916216042067692250733314383658847641552657856230182553691091276680631714029147534017491763699583644096566591256867345425376852032855228736734836339156858053014013233000982316402521307604577130321486494405799103548791967695166816460594946463129402537383321617665058266439903393071808081990619395235270208496653790529859593880610447141878110478228307284205952841710294936517135507274910869534859194839474295088439129105637806403089720475050715572248491711765714407851059280621291821804986820947672469560508425865944193245248120334646448966347154254681347263039678351325885875788393436368450333984345603815658174513302418619024503602113369374411316379320621357365456728913660285089452989702309788109393503890157393752991281153706120749565562255772251799390691468209469232668719210579408726346982520867865005470179954543387013744563007037637421426174343807155314277821097210336656700293113183085317286700391159324490993789469458367773987541857915690247215707302463707242100202492482181205120450436797166726924396720150001963553119063566897892623320020357739716577541832554091556928115247376311909651655577660628922324565070583089496480012554559886365263401570960765721743292463304060998145010690184967918027416430517486660742837302152353719001028555249231151809219577029659749446049841353784572399602090038458638479151297260833338733759684097631165916772681703399047180381349560980092712542948112804312796568611307742750123646020014284536179189807848861812601957390525992144806278733599652876910935770892031748689459531632464876848041411433966211429769780147327487987905260325425888509856214409377139891663575805264267880710728985466139269864068143695820210541897854954021248236126609425681069261013858110721513216805845787231598811931071655237705657276667219920325236606085776644828403454448541605228100046151622945977893525038394888097463310227530519082446396214633896866937448852789850373899832818366267842294861593787562231865351794573755084858593043760137205601112300308645758763224369974211460270990605172101783328960101403236063403399974333064457818448315950064240370890418604952344118096144913366528653571689163967098116540654148609533572203716561857361212198783135077979017710518475783408572777370607526375207962142627068395202474178284209774419243741742089775767162927091331525242988907957847293955847833620783963813977742278650103863692188847040201138556794914178837614153565682516102392795858599002642570624696653507973388430663638244297560433903184738712085430599338337406805127068077060667013419369259008567498131126569692694660056245668390530881013297920361267214659906692187201367763829960185479706020196746533344194603581760102391549185756536235290485616062060169709908887905913368117249244558792183482956350356765387532021355539771255514339030036492002709771732760691776889311021446227496628684559349209189537569533450959582863693766834515870044549184505403936432075081236575040537667170872865563225180958920084922829762037607817826069940130996370250275431607295926586668767255022591185394986514260187529029502053768953128161930717850401101277901428026554408503414092680096892121354893768090134934511730676920952212945450166773702096314808508134350065799797718296326609473843245921443904703153428446876952529797685721917472481220451482420335159918785198662721304883272421675009243489196058919730627639450874381291329112455435189458955536912225294999545100500929870806404600301428231567794431026892788654614324339044839813510322782448744490869301454442709252370545999008926500154334191589930962930873106783283715792039515065665861448263449096722376300427619236380776752892051694819072501886321844288484449357037441665042213491558387572489096201331463377120904379559430876625637380640509045316068099842667610108120931839644544520929472624142092976186769216871994219036553528315753190957872314842376034671280732501315928061466954080993259523803567429240540245861989782688627512396778979937631614608623965472614966155420502991941671622959191918484547909493637528497137907848408113552047832252494410616016089353634204750394512927180653045438150228494601385262208070176958818868368959515383470926494542021738410644499007063880557326013854744448881488964350053048331379068438343774763113263497968102586670971241679198690010355258650310268133443456834964024030089809189566133044668560746146803951768964779428343057200858421804804607521594742840840199607009081989350113594963614593346986960213842169063207650730681509663013374527738215231376909443850856807694894294947579224541655768560828571710084874028484530240178856726626211800785131756444181474871252615980933291384634530223102127628947343370582130944293271301260046948900369162222156035779141206170898704856672883530661777975459477313078224380341849702855659344124075646974087484900082297532327850522262104791665386685293837729780445833003913501262281769060033377851095315117385600650897553632433256825992212805110007101175864658636301532182677456663352950236047142858390852366069705380987477372025526498622648379935008148318990777215356056093295276292379941961264431465456639335169480385295950845160714595638333641615227162294238225928798640579889033046477631463651517791507125396932325061084832555784830051518939822862251895754585854830873011294669944808449929340426116647895919224413060212021954597851742778062116375691701436570540315334085943444077817636571357194078757333648052430362815338685591064323905672040843738669439006048590539344361335488672096904019079630970805297613801875507169378645273307011453873099978371236379766253675138316876616019221710390448480284940657915847515418184995858884477470955940786757384287248429443748458648416433467951600404320574951639711485369100560778632638883802638495134310736394473760003508257285664688915627767408148678950527675854888148800925899345122152924655677357841647210831845439317082251982653028556636057843447656560008485105865692665200371291663716315362604589033711501882785564567153840729630315172307861618663977676578558598682273806384081961373687011658175785247061875902597381826662277159171670802413806007507584051333723976877185288026735181020810447751422547885084044649377273349062647719181824210474275358568348356312203953861054520287361325315337337499967081455390793325518583366961735670762593797042069072830521598018975990933557075475451650308437114341930297141890353883738884190335413864092033478216314644519529853282008539196118798891743988430171032737040255176650177280090002600937637211943131283902295544627321482740664348319494157787699472429787672047224138172252979740908867190886540124250204956634284682983208456131458368173327573690118045860938307203649309270153535250389063885694027287256732615723988675819090945149564849285300833213651019872426027134676588521705542004680957110168214644536665935657141922200021336433564151362870844895790511638866392175325375905250762503565418914143305482786435573796648501712018849826133176390804998315339696273369707140341751989818377437433609386671561142812232673690537516642443691408538710705468733596490778723775066575572152298745936567331482019606728890455886653617456801527220976673826559892004228680276153593488115298240168774960012435284819685002277660463067656759116467966944427395878683145448308561313060443016487340817313376185961212804106862044525901906362205801241657271080231641118877551421880311422190192703592141797956679471997337475370765176593424080123796459397248134385153795707325244627326282095049317639787382944565259537005670529253454542388484042285647191435006733849173214658295121668480881424527305652558183562307611124254471138210928185204929794712425577490162318807013108278536136152608229634230021842481738286190425022660642786815418278219225549663632192704208987676504526421147902325743891156781559492363287280176249496278314992968902303134287175434236070429871579695217634159834680161190017851307116274076669085512647879918495567280863286838586112273052662387909264480299618015047782629362527770442030621273283668802399968510983735228218008526826677422537038541724600982921048331068661418878214626197195197715172868019490239871419985364181984828919907125348625741700048164574050905686796256654912100865779720367064867853698161802277863740018257867386418904954557869460952174624115174468627184008327436450506759490986560011158166882698967383891835128305786668420102095245341418884493231132764165368683471711328709577453372008185372390498080921029892525640486977401143580715750159971957677066061965750673206278817177512121648613070295778014010861255680430005015597750527661194707333866912863494586199892334383809681721050098862229065437050600595449417670292021351876373443503761869983221302461099256719867243431398485371700259312289117964985988799301884340552389677309181979124621350519529818422659179684311275637354231351350484930279714977169575732977142317380153355104788716315057094133841397349239719900544085820569475104036765952929651695110467330085195052707216726830416553406761991204457036878671211590000502674256144274563206397763302592712912811481826733433998142203529930351919125011620728756289971069801770763496809611041612505538524184936092768509933518431273599007641038057031869148910442343505183414724405451070691425747871717350206526797470752607744854175895205514190800524825929168916525977399493287911427472198792471060027149489117170891068876746460004313992727150839330225523127394595028562299921156313433844031314122204096864145614432235480939604870059693917330432870781636902651101010603077798135598955900447121971460960097363479460708709616285069361818559576238883623713771136091807250660066218137190821920590481099652849682188102276316836858004842046362040685860867540891757710689418878488834493387358410675755869831734077055041120285556051949875718431593102514005856159566848748661724445563147172389126640835835497883234462409865978315159657768301964411096594944290810270817563651023532414424294241952274918982493599083384980554793645890905146647168649136008053459175335007116800548312996128758429121716189176376807709376558101548092235156876987083883233224752460621490583023865090656681086370533078044168157420208755308332716753714798784169096138632300130760411337264995893357141582242287241895286355588248655273771628060282767477631095642934566270978394383444226078430999529204886601085745380716765428449577728933805042157097378981645870437155124948954294745727462142760447031982502322779821564589251301784252930181935103512529981757120993684375141257187831551585585811889606466086821162992991416682092245790989190205818969998445292800629441914744611556498278510410098156113814507103261785968703751700453154520520578841638805217681963580526567481230499630522031345337889646823446334440292505475413377880451640587539112236236065763492083505868623183038422298121552290458804165539096044243178714230718422372669858422945524413255073672270252277050682435464209542676515113790650723642852742181391775195509805206375373527996322599945237075244334203199967621810604475352460712045498480970030283741542633811224377077509670389158788779324835778779438092021028950811369091788360897243744315538367172145946213837195357504012949791762935989783082292711783427192775964266919334380339959766368863141909343629678959870396120400944530484635811374185254451375573719367965122626087821740330702660543583182782859547143681174029631319871506985681669924162457198878876538983879052367129525867289559463439983301775196610310683007907926834396353982013293327061827787337368949122290258545229388957776915465281810178008887538617009967287907519461362467189991872321558350053661423591982234364241695525494510599100183352339193415851869920139287942846830776597954723628960147175567890945652355607655294945368197207541186858165776206170258131412201615732717998335926974897071118300313020952153015803492783522279107730846176610800606549480199341575678915690855563531663297678497894864007112863399403767085093357893520695213179021033546087775296858477130007600638322959798245982906614718839767154342368601113530464707081044327718460795160051185891482308315176708170201883199221567443660197497569335237283749522960280024037137191705642389434157951859778411077757562045652215071722124357814856108746916982156967463708256576913808759489540691502589127643078095854227639002544821600324598962531485584032186231570415831537956056872022797366399612795081512711597903382962757995597194188360603737450604563215388972663350570218811615853345212128709955862992531510731505513317655118534861124030725822278005158743468363973545834438986200496809266248362346028771529558702648300134716356645952514076900604085856285637892764579686708461032932723739731142414607847338938314367132877656730998302804992503003759554337680086417160990953541626816368740985492011658840264640626192793483854409128307172501054870707171360030409384200366452347932501800715337043732021604744287179781718201661847425297958005871546012532088407694242325663132665299101182100511502012693255430348038127642035582470699444376988386966145803548038988619581061952646898460127747349212868193464060143103047547124874785564027429343295773746199894870187260592896316775088559646621476719124846218517011290280491066387823797231799014823447856477965855529002025789378338819334029794409238518222348547187635188659845710721056745766910966010610722103852075827248076095752894735910979743850225146815712558100714879639306894227441023531773079367057567157873156269786613740770916974934973898601877891768492044392566702655349820737369875157227209514489637708208347843032987880527939494946470840085010560710552372786683926350254027760184679984642849540131087320564754309095901725049537043037742880318492673626109290625498296786155994155995987609542497743690010970799454749540369405993113602154331304596999750273711476511169757102236723785017025224663837116523535063416024797445364472946716415997730424016262237474070480707261043483217773260743756589740085446090446544097255251286124085537913530548459658362033549255896641576965862396556445767491519273805285288952933606273536628145197257053779637226097351205936772937205047133239520897268205385861527834713846941595348639803483775914981578502636745234969373269184853396706480044559258880862194848801532414140506626373746709252457420811059774245557558036481416867946600650774383948724392379364966635646078570468172701308000864870666314736484871644928480414281906321648664590761837828377236559060544992350188993396655502866607250265255760235136369506834442111741044288529760981735046969757860452932900402075370887781286099549027124497997961875961773480030678715863885802264460138676843133353600075886199370200104968458938941182263667183351984150750523494624359891255324872844045024053075624522634198431274441020020960012409693345542160137380953865559908401621588789660143032378729835129687179090308012347287328321420243651268193313348663505542717129460839010700071430026700668127458985063369740969058955469666209403261984396899847021602442717421688201879552438139349744267048455897088666174930400909555562587831833920396194059990771132882869297993530144004967479216510248920001376959759325941170039902134293096696178342788324860321028705892212754809571878556077544291850668911715337683473876103790560635315612540092737833995918381097581743896111306782651755678783676534992942317895216917667277716278426621779467912106829392387471019707440926413267430919526725494929648928873598544443275956454477895526865242076274968080680888459657836493776555975134132592880608199111962791022057057342446012071168240365086148412291912571721861622013681164747942365456328524221667252171058332456566107470349740792783486633027030279715309201038322700003261272416456814845698880863996239425535658303655950247220044129086186503732427275998803773111200352648616038102252494635480928719340766340404414786022669012782091213555872557218136313708481439502077225522237454314126892223215185243305790175656214523951910868073252807781827530583200001449424554467070003829459568986094886468971447649886485402943399263416645768006213508307325026942047807125103424262713213698437084354724969844846262675440609067935353974038057893783894213201197286000159667242341293303560533739611827571910414625364926419406692288821503270316641777545740672626864003940745198097907835693449235039118189323452284787560529273083185862010063152107034414110398452850323417930039387659644302636876432102579505581725552382927240500565807594212031332103181806620019698259951741241058387146841449472273605618100987958819778651889565866384248304599646321763681972046813604236711099014188535224973065181967435488466848877531632533757516684735059613333363519537646471778730222968060174293102132840989663995434588853361769085510898681451734809169082617751944987355255661462899209026811806505639828616797099263356820923578265803244652981591217562295598496985487871081430303607982287767681622144974336952132964654774687226440996426638132608750971142377643843076404291149765369074193107923893965900730642922787904389805739133590476708938600517476069788524124987336464117444114649128339738553198900474441385818978471567762073470636991615675551518626789317029640757698480259119171904555526320643717968438800475503098109597989690244956274755345035391591202023759018110689503265844971548342561958559104071281885053539542736082246870128717992677345610090291722229541208127772280416225708905722456285283637727860346753626999004172280182464907996649205181231068822155501427688234245271937676981418232239586431165842449573379384344802100564713520927749207146742047749238816736449134808452803391497139984450678075143761556080134852168940670066751232847268344231370938681794834352124254968334042418566602046481134882921221139491044340201361462717815067759293139543975803760484122206274410754253294877868469557670546188686988586716913626018977338114191528464728111453788246979224344770050301854315487072491801947493598097780171656312958107004510518955739448811297018117403623039866451238337921566120086201880277517575656993280789617482141817757074883808184573258169839481654101367853855732864944168014824767647803865985117471528173677024794844602937431896297124176906182821126044758343367997937193006404376022039223162714769941659371288090920444255753980150228657574724711427740097930961944048152964842052797744707427098964758640073819097874108007482821945612199813459403711431351517128564332186687137966573664500737603824874103447786693250871215537090106896965771114100004951994335234544137753883415180354721874620702129438613330004170148635468455750124083694495370533925606614906449431577471700374832715950656922691577131735988786635344444037395311434552758652755002705667713737200074070250008895060349742647664854144827681199138067862840257330306871818000599136648917916300735048917923319955999876599330694335361762929752488866049766477004928225083150200610575782319020653604952638569176318677990043781910855937179041900434863975274851408644017694551217120953126146916828561624309141272574652189155678426148675702302044375446479022116820368947192203008096336935670536686100258003852949066518218242655373730653223611287652985447558811087120887766485910162944333335600877633724404993351937234929870960265263113764372900220782062429123432559200295882869820777823437919863722462792228752841407052716953341539493793060873568518430893439109187982656877987480264685233564720051516483571466315320866975623673684807140365063213582140617533876693074682182702970202639902187224914920681233330909940465717860300082846291525069471846367288963468329145569114822570859027516378395018775308103011557176531414380885445904124536199723487471386770359527935112914163647989444773798968751219667641882460953044770837602375124476157529067907003773582607015576070437365217100079865797161916086500411171199450812531282857615937035538216931978044853217831094055418472291134177395127263808314509518442918167013216500045227465750817560429037814083108944051029796310536222377125958760117982154466547108096523427620800197051532980819362708334965460992358490167058196886848575777042459414094393905034979658908831580828695609833960519144263951721758490805004392476487673696513320883530082257171334378972447833567900430175664834766745747557945299623008431795898068569976882070756545895064344533046304262393973374369152501951592495332383752022618137582662960244987994825475360347601494037353886934801997116752962843860878694199963478593402115459914597535135078503538092032726870010590555964660772220876551162747680164353857578361951611394833739345356183683578849730648636827098080105990273727342885390107172835216053402680903283178529824699093465423722082384758842492945510830577658574903983324158133441507246317924286773963850897473215841019552928588567930442859553241562266364251528160809166844187529526883442862563826507206451977238617048525058808440148464145166530402468462298768748624015707863904895603412443919469886058545703136454033503962040863569803588218331983387408962468984736414882380827513977784610771857848132655553341454102333380467338029094847525421546408452843896109394274330486472347014113912300164416627351061229343689123769399905946432673893394067062895421569560775844531268853100940633167055246498134981848849470336409133501431865567911338864615225886621414488571568886018149254541387752344490432148996179684513708479154245659987088043664864909251817279161564270824540393585388129956585677698097098274858422738209512445274667925311622266803690196743992609099376822680663188588264146641144169496696491194787830305512805370924540445293679075841426561230876570465547924489230630738514986818578012591643156563012461001183530883857306835304195714690407603663474351875605992985470302418113488587885953781240619330261100163843179369981767779291969515531857769698164615025259862974156998524225398982982852406754086824122643073138273664605510702926834084349729867471588365970229962555677622667825862647702848122973816661268793166840553921200730980530821746566247062176392927166335652512288820447521518639962069798264312687016666564518072253347609917334293109139673294282273858443931206681909785331759893628789203879082222430859365953041897117036183918309082265082481318543279386670738681953472285480990184843365104267297574498718151975725320948895439200454055746266717863046707024486840436979309501582281492584702431646763939318577541849353462066656595514424317058929819037313311563489003591085343358252607093466447297631941821056034463062922306231076178715006546178172716424882350800444054154839251032151531526527648328228087883795676190828251687199088020604103788623704560746915767711326738286161333335887256459966402437793307839103761863217539980274987378572108523104067066733755538359186339088623001643821016177333892146217360580276813076987366215292100863740001850545545210479843440477917108345110516174444063345206454581966464794688584211657114279512753196101186825977519776736403237992571650552261896149435296947014045533729276268190887003881985228270539091750179243610741833732204171882163259185362667905597024891744137368966224469048650327715600973836304092652466157037491195311677772144586691638384632039048132772441978224649044330588928287839997166892878767644832875706355197196466451454145005584862586479843930325022136088517312733373000231633770977896621585398887886136830817328631316201845545929689317761577427287139238874082911307008902766592973793451833932238444948934547342195509733536305180037710837661627414675400226409523495587517250598967368558937231701697475012839461935620947886060526929105435965212311489577539079617293008341366705609648708507107648807354641434041630629008863682620886959661993748961725153457697097347661939541339771579787707013383177519432251356206137412678584235958601736613983636112716629029101822914358097855790971699521072527871661558979600467865595673934842328998780291618338041603325004308985275019608701403525409365793004162204414734476365394863542658951528081671633353575610444755822712340344070591174884231075926708254253987409392518738792287797385196723934008512116008604265677926986087505115364696394201546497057714395320943099126217343784198272640817637348821649393265276272315182853685240908068789930617127684833340375165482451009995556917415827980913033372560362168386728220367607815379590822934902804921749709463357454765427869491196542214821195703946487272580695160132463551183751492101190157860565613645868708474721352246542515941019611902794729609240088241058386599908446737889120850121366947766586003064710800122205610326584791066838629410148938829622122457491429211731709163342386698880357412973452842385033047250834947047973666507984898672221045956318131820671195286996953176532190960364705769301168616277894994440959403163772186221291754997784630952199043244348384303712456910052493772730276312221703957761418457923106169991798552067522977466003994610143870372627061139550883046867237138947214299670684695205742085072358021342718770566315331533063276907733623250323746587939026286982959015332609628743070079564648030038585513035006984257031676259098537481948372113581700862003616191930518688317006090531695980934958379921918423906059064995509558360530310904537436683446437515848515793434476436031709253081520338709721071111313716907938396327753303471604798580430443365650973786612830143159498925342612654765138815055553330958628459299922651522388104307798928527466091689989339001585808891453638272071436826767687289680334970377435697892593566909330245101269232803924656589165646477911152814885330226168832547153118291648990027650530094741468409169655898264141455800642993384151546594432273392915902770336180247984130091412075657500271831582080507552466464346506751796580657491970049968468184103228093042828864635991630859893451003543606924863448453316777570932241489353804828332296922467278713516599482637566278698947591363062981415597875050777544821327057849420540207293582915018651577633651012258265456932511875162806804825484881974137997826110406848920199768828890382440916957069021139156662199027319686263458675027774347699176875704778944344180085332535958704390201080754795104400838059869330617130239724299012826063120988458629049118287077501648533770839450496555302052860555340499396925093437260189029678406905306873319843502783763584863865473727960233564998563681658491155507392346769191224749370291547767897602511589654514946997704166505443456972929810729328052061652792075028235042100208296636256773881606733612387592130814696394203858794722031121593979239129984002337906014930741246014073426227948094369619129059752468143195604242955350508188420180471020434887161565619026680405717455137234759914814526553037849368415173016681227824783672523199262286899636879141222310916095936447437718920981243311750348178349713435234938879016607363354979216407759612291432379301289193857339224583408453605805197795706602031217191995938642798934157594595642439413713330548027379926986234561333385481104559738581819969180524713607900176168477884780552239086483841675528490190290017341133262208560228384298081039853659682664390990098789388265834433277491969094814400510620464557663893912740774296549686412933521956182753852095609188149504848696375540892335233133104737185931480235379337320784260861917901136313564327487149053035233335653170106927528944815058825011284723918783720780037516574913285301574757457330941467600693844034040068060584540552659066147228791753295223155279514386225696914471691928249499559503605621963452445139108685507301719568700877044006932983619005347805965485410633409470823222101580376793727480709948761548468659804061312227690695184776586734765705697169450256897708291864601872621064024690249084293865522782494290375540106621533545499438712281920924297845706215968389098628191191536561800539646715116686958099339693882826682943869810688944005218414365694133653452256913870585809013257079289789797752193473438398217716537843151538874654796364949878988984285003126809463002490645878925987987911775518192742884456495880472431135068832516204508415312625694377875625062267022763197372673666564797069689556864088277700477407034943714298292231018558664092486302937175995706625449108719734180229783888277209195834946619023985768659496788581306636506611746188394426691674391089817481974715716932608089901874060299349859849748402856326368366927614863122391535974035896622684531255674054224614590631794792815782382787421496209471477138084921905515735224422540259149587735503829319015210096139043267447726259283510574514092429634183594205612199092686938461943542245627393783414251597659207794217905550893500084752215523312668186759155372763044040200285876052266238547739250305502766586616718019498501713560109781367880749150282499889243667761975684300104209500836322032010919513443827411948939299755564920479638730270695761888152890351547633730398978959910856670198144715837456962762715011990133184934280324575253664089276437024543145387660022974021198705075567459548431555193573743515143463904485663795645616186880462791756519383145948996685066187268791206637016537513517497700169888966068702800626876618603783984995023265250880622926033329390751736644937378400831274469583052973896458307716243152094844216684541014256547982544917367538894885467877508521753607875913914852842327040510913915530659862053721630553611455301196961057900967699604368791093791719752219856249098748960421287704483247208362527190274663875686350588078140014545616517855896840078599535343644000244801310716573987134729214097572897508042681148423301430801697936797791210354937957309359832940674071112144647163544314085239359502394947223231675349171500789435014959985432527074213003854610463576994544221972967581901402228253759706189264321878222726741552151058304520524735200816947641430983332695103503400113257138947241827088993338946936669645473475443992580220173043127194556038450395062887911694270980700736419748010372691254066587443936727774363981238186773425386207128123794212944469575016735506145144041499511401001744156410138505219792320675410953766741420899129269133741529433640105330178823752691609205090114325389864891277776904328903904115246756559003640971164846522215842707653033601930427841830235722493056004301173708400629543116926499286559299081705809688180267530620891065516222082811587402756419244445550989955825724929388138358159683482463594732534053573742917682643480545450741703072691870471720240969207373332692117022577326555955033959252035364399990463110399235361202299173478219192582854515434831577334734232419931574600148833594857453170311475152755650436352379233210450942696007617474645418074313712507671320660983854591055254512468902699715527128925379247657759542282191103972154875370705040649506263781142291626468869830392630866718891626965857124024367106364437477947351406803674308408038667229583235230799230410976913170882496679231744158799532686153119956339186045927315904062222484461852960448014282610279584490574866990316855140933482393326779642636295888035976151677675753095580282426808105074530442410943711191320969697291152044244919652863739612178527240087375229478493537267850101321963534958287819121732154790936795744147523300154608810264017594418248817367598296835717934074910131831102051019602516348739203157311225848816567539583611826934619216464996105384113559656001240419603213596219195026885104787395295072937258772730187298650566518475632734606404263191471728608379441401664351822112658395115506039336611632700457208636743472735661583685728619076175372950148692900084358495738740446592166719049433160500758323550938217880557569753453733643230346367210505680383930056540432143032201087669592316576473003707558309786950668490423012109295690029677836441794058100372718259241662620760427653722228719717373359005154680659615624510551898649334561291279673414230932880589493866548562723943625101098323238047850397897887876838795587381157512914386050322480094336137478548843940006605278414865526669827784409126017428781041630634131225736873634389728197391281456164944518825371355448877260596120710239426126482057597223004963162926275719100255281440033283465534286510731100263900415424791266910539732630700687656338895329969774698621406134067927397777807949772558731564484768257401418314778807518418744906980297682986219954976776041405839456837041914938277631482186783374636523037607848411745939907988400719465510284347115121475070423384374551005521540405324753442557736474727856403072259663009781070917712161667512080614548100051855473646688219293147137360050246988233883394072622062495905573190316798462567292547265020124233881076408309406276449883273042035126389555659015291241001967958632462701389121851243794247898805649782218952842959934568563131458917768342364589871123152270166046941518200532055947172979240596985573105587199375246323822853559013837301872700319389875092549404691855712966070843983030735560904078792674098445932627181971806153250092950453458503520797997058334486625597086413615847154255070692217606545400177886393219286386069771598095655881091653338885030911277609498771097676984026200888540434372191821615168307046568291738683131639317178566931262731722591804006775178669848576482026143379635964907284551787303214602614918847220290803742780833719965312957729508463672081586870777619075527466963916879394968059553456656840500383535267724649457390206696120239274838501483993364390387157815521228794704157021085392409562325482908094590311339967778799176280059570091137992729321977832863464006810786635840068068457244138342234799760730072302003104061258105235603626227797045232885564223340046719388487629263859549686506687515754213062762026495288972412568707488407051857305813970973105739076629684090603985272997847541728924156554516128747925667921241747017725403572295771587919206177383633964283033812241585307546905189714036617852069978042714196699983200363265674718791988365751286363097924729274588705522121542685466431006357924123965569425161278859478935297148709808801337089675942872666922549223343635417987472935946380076449306712031880256505437608712370416494369080847636626136438681912262192261139869346637272342032838979017214221681041266563791883833790618695804731516529957853319851006305864304170180782930376962990171300568967645542204019173862264084100149326838304316107920925994304311863525290310906843176324250491394827779192595096392140094544844048312434332538160773807418692176733245786210768225530463638895835794475739527810924284311718324076437077665504439681695114145179477083746171931282064608685091541886173688897275835648635481774965760013082142277956444092091850109525001538238581103100396463769055197786110584275401655480038644747186114557276505007648588388227305041441220482406120166563586208983306059109618081638936554641226322628964664648862631810353786687104349218755246164218508015018283360977515981176762857744165434003628125984587271113563458883533332415136799789908293122335340921789264043855663904201521206868606557318764454895869163503890100913648604323914004167346936690174347754427340423898333722046122944796383656398575917151647819934099008904438262850933787636782341014452871740895053014216853949348147904375542061950729896811825751011547186486587427494117715520527803566879854326394313293905918289715372277158340160515061084681256572843339611820046152687679648801920204420784429090210035142478014891819509865622954248010910505120000876387702764483886778144133053720688025096203684374236967880026208102432152469253431145625090040313589727255292503184876056362215969249402642145470119315326236540452633089250243575423138596009136891893756971134731298347517865241331733157364343111251660847483956725702855430629118040822429113071103908669005281790041429090452555236145712984621655820727243291297005435296320876198140321315123655138554532509806508981429164307908438216628360740364399417509810751779717381098383604812863765261859114084698688803214596290065365882397599255920110542251133703890744138680548035530659928194670597154495641180689974803276621975440353460144490182266676459619906707134193391487446635912644789070182451811779168241982343871669137775055563381933364008903722757619651385903267776893686720630734617434132337001380572079224492321114456561620840941136160622630502964821692747345735642764016957474453966249787096608538449850179151696674631749818723332083782749556868433951360687115830746688486856722654324739512606701104555029650714740659368431721661967220245435246767566020049759787151704001617656884688307417623262568638496625564251642247764165930849070382847477486330036856040621421772201263411165896301138128575973382652885632145417572299120643665477505103694278099658253012714036672611103410217075819901599892214961220411070636905786874844877308047010503135943422295131987403227027509576280951145276057766721549363817317653469991529849380547839854613395362306566403905626103518008784050948894818978084354659302219114339081086971239881238561125898540909139159858569014871693334667278235359988024005021327199750264477090705554754109068005383411498487666890246983414597356054719950270204421409194810813208352507789750778594945129773686965199734903639806514077381645321934400398907600060033909601172234359905093888673478031847608356470932427749084192471733599272057489914532387680544879774064370767540468732272115249933867981346341642649591152604687614829218881198189307700593917597973735793758831595577998318367120927788036874405292749873316774368887303133168367020321859647074092598732832926716402636798884292391575175173855534622442037593438432335755779375084142435967414053519237905942977919927954241195656488483710159377354494370677437692250146591012473543320580829620700207018693560405492943094118774160636253358276405736325270919964844587510033168182282241812879809949421187811203976651289407049178378360280402965288151215078262074109812521551820935009090111080617501960057961478552988032310161672381814774117478580843594813006113216475714263011806420004612470286602463245351025339544512469890526534043240290144916286113694525118547914538677756925908777464847877465546868814774028676858034093675505661712676192200513413296685455635095327784306687294141598869194476570094611642107242513180956649371032553495990234022469666034118145345037935970131912440688870968867719743178452181312823980904025465960348047140548364788862923182663238067233348898501782278406664589583867978020613322498713518259377390110373364634893894921305921171075543552157971881528656251758958304767126816807314336772917127579063993250636116243377410915382611933892125874821109476200230025810500376692877915146005315465411000478271764137187417535794215501805636848107025495592281064787048547105050695552378495234363205707493534022290271562121091314979746922399467750610507181225228699914877716171622348245206593063809701873167308167653279646446655312735692682269728983112694486518169839436109930563893455339594156309015886492660151198896557534094032072849017842011542900960866656097804497679744974722957910495742209275749122961676230063315183664149715254148476110499788394879793744346570885103680154142362117176068889953215681037808594296545061553293921231469730714307207950526093647912703259687973405507386786772035933977106578865508972464974900951865168694920021966216869956868293328661074539821442309713431935976463399662112249831995309197791951461308712419526804426473076285622921514109204629916932160711319210520514124220305291165830190629401997378730907494406508743751302360977890926874823647217367403158212110645945511332748079608803079697821140712307042099598584568784538526797943429469936846850353951496661881025281226544738228011054117840397255332424945948073654544485887966102015070707737315282946453305120917435545628344133549971170922328341459482988628698139085643896702348401937101940140421783870202332139984767638098126657952992525238187006986270249879895041577831239791089137134642796948196176854282795244833032959479880173169623569372546939726028586757355897775263039895405522758538412026498288809135381073761119593920929816321598811409432904036703977828598352147232042284881060862030297693416677136386289859749918318852054845471055168348837488498122904295546815092190026267675261413814310670194071383488425528086907916807499744263950556647469700229907950353477716845524154922424156987303385848280727400669955121730169451351956439333897085750393111465272628073841074587926572285966514624411953859369966044716455504047494417912773043489545265217810734747432516540706024276632504945562387305294080042063811049750338046594166647590887328581444035409638400370937292796225688090192530565964950504509827261705196042195867919171843542949521146960815618620450169034928310298274479938788513876791484931309143290165700938065677604030728978400354314162579481037309576886357272637745722208893401017603695711157931120150604777830863635246144268381718163666552855131176504672486364956490206548394849881755155303917032273249834023105214215938218922433702961120408483384660993143158061787843733371034845861349925637594224455611136235740045952900419723805046308789769780442299445516535339154998499420034377886311623254441400218259577070898191364235748943557944486928554118422039834804804161631187423688641981641785375788951077788089882631628809617554368134364971605347719229418755964398960548217985614474258777212474429724817911121932962072595076926796696252089179403760465921401311235349705673322410352837342238657125439330178139903978260546400471926765108467647179485889516087638777685023167210669539145217503033341363952843638480937313784019136401740115387239081131311521783606528420694278158806561761688131814636169777126482996065287694721645556815235912155347242219973701873075107249044873547153816560489431592195294964396574707933019683856714294260486842093068983954244783522966187767300916015897799005285863128206741305031601464167410413519513750718712501683059229199958500179231791633009378781929045730170803989966954689218860091603699698987166889218212080300566432594075253573126948485943511205473312867356984882402147425508211525884438344116317299889659082802937989840030732289784730946247843760905216166347681927591524159678431972835497173324970428040431582839418949496089694778209827416030815485855571021761525863010976815321951332281647641551866925094497502316609930456828775624018388458710493758810327223951751666667192489239398466223837084689155689602339729637720825031835386609757687991861555965641255344940095612304363455472795591734829127043684729998360668540676136702563012161147761995708130273839245479874016785172670860882765257645955785231440889032355846773567597112217300920638264659480858899198242807662010522188968124235943902290675684525543551139265872169557457621404448435935096013408614532818670018787387735527281258543202289008755706962280206055962092381092765722650241414066744874219064631764404254076913413083622266289943644826917031675908331022002348098293263601579004128736957592173697944464865755819418708999726508356558463793403930649291830654233169084125528206987348509614875334864537917974417504533733727694575756876477138414218798926459463580382520879070675082154393510752614234519289858513449979445753889657892068763442838852722424600906312622494486963274909713581435710179019861987467303156444153423966182224359355775788798376522794516239609546042786790079889244181441050800760994211501032436203244767181273137174019673518535826221871332816018464335121344318864676518467910568977031814959977228001777087395606741544423256353289736636175124292677614637942558274840243151562251262265542810260626701236162084156330563137809881628612455493925778762188366350975317452375781351967936197642502197799902558501881587745288006317073795092809470840524788919560637602927687491684850130421719479562875280669496490431120537882305284996809834983494196667182499928607404409378470005016571512442233767324779406202984038493638092240896275507716994894641531687771253798362958085618245872580032021368362656406100367701885319616216553629576281701655304301340934311684893501723450744747325889067667988504515034810756735440993441254195170323960074575161317550636090623829301544433904472243949126624235419001849109107464554820554526341792528531587161391613120716686623874967533074085351749877009720609161014228413295956372600220631244746625516418052797093201837708458481278369664984803842200448301971243656414923237447356039673151214817971870516566790067227921526355796321819517409612239775932048097969016156861071240587471039931404893176121039571864037545694711279246419654491446469328731492866505954375719128377166263759452930853761123299557037320158105232237287803414547043988107581743029545247085515819873474026735114940732137309055114113497517368419518898781036779350874626996884007861935212815598994006452113840406536105497129293561771746280408422900890480786831069307601504739664339310536668025749432354073610008711483151854129857591865731473816133620883164676082320487721530150302111293384348091061213511023765675673799732696507493940549335565780477878304189920453947153732119440714878222144428631247812354911130421035088669913800429831443904492415626768537852125372581466419033406412146350333545259832220437495900099761591029456824102156707931660581816262730138690647095540582009174056876593373583620914649141086167261927068785413937128179904392410584233342224192382076879180746143346937157059739629664561012001706487425115518506896385087578689445941012149737982769355395820008844222889570474118749513199561857601608670496269741642394343275224157917135388172496719257987779286864016122595182696581336226278995564581648164023309514836093252541852212092560989835772129725659139348649365030966449374877167512263114130090241621626667350027347763238013860400024604097321754534328157130183273866378251645368830414925720121382234419854694003665104439808398475711993437197765157189230835119977145416184801448809871158961291353898714114726517502466991112610040520996789760173700368929139935448014752779934616333184372566911634443494942136965392097705794422267066076864114889355224136556821368711034470974919572306855795384027923617085341377131551722151564999916985888435960797478390178356793246056215160730824401774034214359432021869456202269022325602794394586812664393281927795565095014036136399550027950318490880541098050315572305278344532022360933098723607726728416787857231997054136720165082672552508665685371977086183763038244459604097593314024753828091279631036012553386361778575170657957571871798765037817669880253002988219612972133670713285258551954331359897536950070685711025050327285946609421374920470718612826377810601226026689992528413586322274468311824924208407064526205983646129222466971007401134928805184272411948567550485440511781427071783784518570770951659452670540163660677660931690630645656752686182192781671413810898654758674958939665328830512006844097102944720477596220980247466125460309610931623440758541791669874398737862218421146038758089637519375712107845131421248047623988511653989881032913634677051882671760213961468469589840427157035848206349229532517255815030852177596115485121135517072843392598722199228842202899104772176083390039867029889940677022328983956908462938049474431458222337549745600727822486356239776172791667649646061406365139782845467687961339699844337985032514582761804180640319281566639405927432373354168047557106350706998696935853658198567199720485879756639382738607098047330255421210737479820626336565932451307136673483370242478706447814492609290409773405792725400796930902878543735638281453918585088311142425705254405009225866577349847429907658587268186307171101321748396509483302423192585734098102904079270314975373959502191357565700025493079095411816617703722667988683026923821910595315367296687867199059146370469600773001895451335611543931551138820945576758574985442962683594560313905350857948481871943883782196521727297289222138037981399587147977365971861142687144330045496716625397180672210809620586701413972117915698914951605167252717301215242430107049648479279577854171929708152535712048642441967611833145517802135790194756583245579033756180902971239308570186092754611765005304404436708521582160421494868983164328867972426426550217821943275693628912803613177145286027441964558582180406651435566960506966835832392313723348618589988214903913001469323244703279310886734399657340867129940764974066128964826666154712763085581399114690094166336767934628777222338951975896225649769113091127923457741343421841416557412897873416480287813077382300355594584922126950102852618504399909490188479821899209423425611134002087407398841793702902076918977476481029291117047896430515883559326048671072479428867687963957399718743254109192592388179875570870274430649400407477657643539213138165580011004118488764289610514707772335432229055198713239760111537962805861363021709595064659424173177922811460739853344794594329036796338443326155579400325306840903920219546040357036635148484553051949415893899578112385750553956217181652585283072910363089224098127148620747698296913741432104803666635017065735595458554009369007431128985455222363370127904950654899193862488032604362670093018063507061453823895635515894489198339418408707626474870667769295493060265292891145162521053655940470140316995685854869544309364082738100631409352635090951209000718890956551487071669785072621994213716898473105030765144302612347348529152954574420357938765345822307568994694198161069525100451360301362374084372270699312579046012799757902891227909807251918822255482077047627186302582877212542976981876334394308134245740886630720095811297764839829439675830266608536968709400363996841397823688951288820768956686814339705011215520539155810137552137143870242199337720464768288767699036386280673113113419001899210222662140671880614561847415228931835071847485377361525816198002757442612845059882640634373835116976987236286817230730742493021629051909328428965364424409969610599187157384903545211813495690443542019143054444216778689976735078375541951707002924039877773096868788624481843730065247180868164132835785106509417337239238699996810650138925242562492605970736610886955150081092498903525798509535911215676294922784387021599875553721642348303618246236361121928933133217626347635045067994926800983293318589539944709578372788951916183978467779875287517192221122634727540332625744352265340625693245256211744330055736944262700098878351739450112184063828471438055857534575147321269784084563433190982239200053406644165293511377212515585719183824921306698734992950733321292788702036355659427836850315160778611019648754353626220659321751647900818769228586761452017007186071812747591265998120152256877070742262191468465691760888101944573179651326932712289419910741018715821936525281397645515774421918926899430413954742100891787960947243125288505009181073622226352006327751030373498324351125438080267389957541196552444930378611325012575236514250345180263526479299855384207896229336641788008163675200899025054221331834222359931235255335843233978739542488644725720623913110675948551781779831242297629558662569749820048668177481128674538353349734479854002558767655717673155795500666287758088092959814649115399353658589210899966931527436869307425467376248600264504182062212728531910195583971786941033032042840529892931310253864558903851960520649004651649684880482101645328508663282826056662022159130100122392532697313726098249317142157442008892704594555867051891148187989988480194569196624886038766397520705097134799145708821916329546149159961434525545202454234674829942526827479960943048781634709260004856329427182064698445882112659675925133799707884195849379501391138139035497505535767845129873192439297382398265892242471893655813273102307488115073239502083138196806961400446781995719266965507325668957335209915928666885501133525018558201111433365733307819623015802934247387363241757638656042896158687506102156315344767038536482206599040651894967846747704439411412171567485295345650522008887849992152774405885087781232672799937046537137680384132462775931198599615565401677942941991736642315430936112358875402518818194329706193882496328958889776544262178238579932856967979972245752072038402444722151044160439329941382746109919582228763303012573609319908724938014342420721213320287683224729615816310172399084057566129142458246057979198555214437250989457766762737634370736042620028000406775637278123082901774837906068419288283121139037944781386013801844245118281631494062173741756167327322675497576581489281847993772786667184328274007071437998491799677770463845478451888426023650371452169995628424369051908647145299523418582199107642736665062670905701471680158033816689991106408194361009667780446910622500117682309579103656329940878302399944295935497468987984141749292823305111060471936536726779003746704761307374565477635536671422489458025460129445314559029434105635811195180771153300745124241555991018037024299128331344347359158529206911636257107230785967015791537547868752202311115775923840032601481136501972751827610501542155079252349590963906168364947465575010421350083105453478452918092919767274574988577096960023275122932090605437370019287693950868146283518832470249228890292758945692829568885350551445515372263668508893811389850053853072848513641245891392078330940874197277684566717676792845544801080738790751233455180527165893695176477712872841596398809709247349310690799712938732066377044886803920519153916301532082299667834364813661566125939182357281691879727089475704505084430917588955579008037284235614690866366092967364735290036600686745754305067255130713240235456298827380324068327915212421161444221157678867615675847404138416145997678462188166746717066991829248146355690621583556570284208338609257171872208315796962132080822023386237662170821507854632349577625305422423596957428618491181072806386203289922035549179460292380299934637941427347056329534253828754594173430802397098557251155404726761957631606861356075977498262276993164844841848503791210237238486140828842694118971362995859096371871757021258552261474909009479626640184363236931265196782379912182295357889667504902475295765110291791370854800563916292531052473875300836562017241192098736810082459341403259048870297582666339310879488854996765912250634723626453186436353927514155362957015560595222068705300479969130297100428780314914213203776410952997080679007999453549463090903957359286075875496179152669989591663660781648786729162457219771434727522298145952557997662589966719995076964477603923896710189386635382462772349192773262517985132945681322441987866048001914043287124506109929041010009489149652323335741096149389318904822553961383306524047509387987722444001825287856914821537660105179564768411057149260066243279015919210052079094742938968438148490893783869969124866831200253666367185733868257849109435665237410744816267390170024769468100527661042855233313687426715153154129453963395669091814412501314255552820470820446493856675231509213960170090373719160676847841137478122252099182586049328349053974873307913234125099237265069473408844036560365330600100636048790319243672629728881620724458680135950403485953528438362809990645368700761519357638793379267226417258248789333615228667525444368715436852656585414455347845341909438806244177900323233191469893828063586658752204488535429180326101551608549440595806473542012260159043377440313808520803297734909976496415139538730154215534875799822097846863107263219441579141015944736069687073661349749648422148808887546822168832584324935630849931495511487999726852444973585741167254681912800352310231601269794199557725153956737605038041662893466200521633391030246736233862720245172222145951502444843790291506960810022696252475105671081659539754713465269012406383301077909871110973750820056213322081278215586602309884722137501883386779357259633570295586715781450378220603979281301042334435909019180604052139447416054719426946718742913893191344225416136201092177560925075964805175595765345255560459110496297063181466762567003928548735386604739188204732429804268213431759049724008282300938052132629135700688129326199507390350532030654979254607391307327090788462205955914433912203046521476340318866233184626544794290973869749059948353745593897042140653054229660772278567277017211994327417217348600791131246840124359903842872483414095551480389640687321913561683444350404010351535647816205971878023689354688123909496632282108022481071471327567586843149844047833508075457935112902015626169434529686363499191548615170923597853209709732224854840126091295976832131756265770796154867580379454064726083641663307434734555911925288927617332012360908309560886831975877962932914570644214876231566596102237383966457459545018844639219333390939852062503579578750015132587289456031488866232166344882770268644510851847993549441800175315583624763827965336910430884946063653503080543291588026379735064469080132145299105444055377431561449319839202660226943224141647959402900337880482670555971070993400977454569530091246888476349051936732189700106436429743273612109990570567186470189533886029391941569688776175201002934615760647521712809222159945844900436210085023499233560945430073864965055692777182334447861868846191393009311453877454295032828134997003698665151380457697805880153751001685048773353467224177008073836517551984858519153774657100291269335794652476633632732198760706492391239558804866406989496743496989894096070340707516170236531918898638794738065673305064320210788023144002527775818557230002077238876523247367039014943365213890837227876321875429924619853445789136514306439350670595577181696997553418753981228959644292370239166296966458527896286536602877759122658457266223409558193031659982496202515054782985876591263793909042828998292277079513497028394851135625115917097270074554835924666037544230081803766490039952094074205460772711183895685233151053739035796797291850840643656972482732459927359799583546943950331105014535365929043271186772512111331215287852420265485031683886099072269685955800554459077405106060954147241696636363849984121827022576800340073008777344528819965902723335423388615628888600225696690655373341408905419778578362113780149783095363621800941142049672245228639191219639495783104656434944673050937730721025956132970362273157656985615849508627072800864727927426129636197290618862426726818505530064134095281624723280519698133674086332512137830058703815406073021379498524187239228915258907865753007908637541537090138819262123305424000177277786348693289986812058633777572121584905579822190451017099010999935239100249565990620678786703180553364082124955254085792451329721290815609578675055998950782434728517130763801845614854473800983893646155865432032274165282092399330590484372193081041448315465773766353693102505080540802427735363127928221728780477696280659192878510517751352380106380745197656510183525032112084498958328577924065539539423813098378996684390777152633103469908558219108357320812244613278811899434776667658874475330983650779595731986001060020360816641941516181939662845768235001277059078091754758738659936125857852419701258093840098160295197777641961882723836387193887353176980903307150669120656338416447687131608727631508440289762134074148022436582544218299104358587628515055714331828760926477145320752498458039175281545116818314692942378067695951738161758358813292151519261993073487148933221321909529854269747129274333149490142865365951606524490562252379863154191748718654398816529990610622066296848541668567470206174613346561963544817885165592328730500336021845623789686694641140667362032390847741225573847705504303567731847140211909425720792631945114564753817282257718931235806743652075357353204904328094729130368668477162320099053461916125822860886136163599871003470354889434820139604139460848163358906746138971240502149598557020691084556720434244554135229610688250621235116137418123186008104194648323710503737007535612578959138890358842604248915876597815334585720978889157045218593862997102178189553344302321148236361897312165773479338956414837860568418038622692714799515171171825979586240107996001414618321758177486626996046692579621671798246660679230779087001618545168407706206523887032993356739554374693456663482884539361083915355175848050992314147959721747492585068161199183491336290140972229651454080423237626315117921937429910791009033322203376588710252555971325877348227549688824580865248067369966316159353329779672519250495674328298059723267232413851362952604144288330223218841777171950066726228444602858371228403561346100484391624000675713535045791704341181575651893490529774560403774476389047248607067944989637095677943273100278406423492502881534357102260147052509613894886204352828923575284725448855160795592931805557992248533007270585983513020859605865246086507131523400082913557143548960695950932003826544940472561439114985069452072727875840346954352388617014673239589741448017418963230856284580515804065079910237296504772636868508407108013266299552136272914125529834932568880147648580684545276037551571190511765300776188479414763161736376200844252492673892763290895046805488020376135933665182905376652300261115334957128404335883129618890782419569298681572987011671894176323416550256317365045373123475992803028781055807003233986047133910473996327339422415614514127935505594657730751080356668391130797527490771501425994806543047453312250076037981517347992401161906673051289684382555076940263007187788954960609647953448823105857036312738303324702274458479785081357949149131423523966956402412528695036011991741172683107791483098566149997117041599286272198968997991575495164406732454704585272531925042951810149923660194125657806991600896884936363775947389786009741900174663285091928630660600427276353065312884646508573313688889125489723853699220862581631352565006813450745443470072134600899545179266421568913210459983070185822066410693101817021622888691853235092800919104728771779924475349294187700042970839592823489060312361379683082231782801938671222301883294393647882835678585746335973884842876950608440546706092441660221797515576925060602653914260083812847966613499332293444919437798499999550104421177783953225995338166542656991493234735593441839464612160541882852294112288387169271877672862302248284576370475492805300221063522248090882843270813449847893333943652504473540242931960835337701979716120273610278255785702062727289026404410702211661481069822368328807396436909412284525893185930074688624139819388475216929123272757994460088260756563560163373962178070177543147958704240611675161038860502870669887816026243572859807508556508018043293645294068639081069422969168256411584891409384294961665868975012077686621336871934343644509946474855060596289667120375408737320725012667853129081159576081189842211869763883232097735273025893633227739253140373019962426180984520250808390662880536973971659664083612892262799583658116053294508484397707505797703634137335945550828147290373031925343244725668455835005803909709468522784226130494375488777255299447212346817257274960725971421874241249211227899425220886128624286788083644997641116807368331114029298164578696259693120953975406654811587183749277217585991226845837514691467884811147472227469617130715010353101294186329852699263353600360929162386489861816365143407181892934204120041215023478903022889207965127706618075992843167550578395794212362743135554982590001887464033114984020346648475715433673935015386448406027305104547607762012855549413006499000261310385697437692521977182380311860838511453872267265761753741563523506283846603871154322538005673726884439550698510363745211654165405572762915274270027311146975231940345406697277843226871984839284364670396258573189084948190921271941565057584846041315878737067710330681268902223550688806063068950039121256494377881380117155184587106767484249103523999639468166265664373768053199154588555350638714418776717097010967352586737042319052751283465392602564716723594746152328654173162127019392387566790223205797991855644129129406696292419716980844050002842455659356541418835255985368183766724717302385458818590010222052143507618841888080051847997082078306144748742485613087213329449564876214882564021089150355682386299745006378839392056313780021470469388421375857521039303546465947536639555057533588206957235119585725130078003152736299781874182051275570578534157781322672084362709694597065199631351868398433534086656093061227790702750867881034475934048261590065306784815543857812269892513240051788444242346784261769095557013452965163265515786428773622857132191147212215966063322846276544640795283179905596077428345295209771302184795684703995427172848614776279690605730131201310936392581754544032754892431737788119129715673834430305442478472684170362299469592025752501918712893879490277206945560175306279932854235642834585421707909849650745040052661149358872094192241618852505941512843624943675762311316079195714663714574410889009950759763551265387397029070653486265915191593617379347083273302586686877308186399488991161305971227310251917668527245187165559152543468144105869955671189790340696536078780123785414198035481555175132300575397068075310386519453981791474163737149278008233750799922183359687236201289777807944523035536927643190738970085476564886274177913785313924306687746272770441738807460126853508060127069829299772783842225948792607663243935134398960165052017593585006134145473891103173488891428324591889485833835206370630323787711419738968737322624324556056603891714299773592667148879547170094996809388116710708958954721333232324571397700836245165699658058356273195414289638146832246370473887821958931325807416101774132529881528354760056298082527296839167722476958936577343167566375868581855021222942161306008427174985358161753490850729829610675526155649274957644814856918757424966581181657184701565512068750263618834249536416705848720748585911434314360151075636579657189503759075578274396297510421894077407993164015645542872311554325305630014468294918146667952305945535023317888175938130040377396328300621542028468367711959928901792417588988794927011794134740508359832041198743442294451054964359343089795517814515109079530534556880377873862443039975351881419219265299265317538807543259993187373732401760029470537231434641108686725263920432624796840687138874105653481691133337003588468692112875343303297579169292679620453608210870049875348486628284002571798476187367543475275001822181170487691605245121651849417010974713906095285665677951823316987602006254031937196255225657503816327325246729038110908013083638742802021902935153462170721524946956990994944163554370404292538051279980954490633183689820575887444896357199298697001651086210702753289368556981592686206493232784779821155482060946056922367213788680318799337028389757725100738447131401017316803639687607745738925131999966914671842752335638606416704222553835797027659792541861327546051548890278424231212685388506100604561730427571843148554834138574123409910267164272965130177162695744315247416116619784807530902031190282110627359189530522301343683546836322154332115958010206923624156483668345274235413054248719741005910897256130620710777776252867783066293575029073542403074397270257410933872940070509526942305642512841080138724029842058094244590404089311331287954584636776923741645116701470909634374068728293975575281445368723155807212554316610316213433832784141635259595055452975078624345880450751231235381278861949321494302373850356868746762559170139561233475095753813490705184616148373900415654918811382504316762581855678135253863757604163759700452678640036675367990175668724542613294888117745602060322133333210073466553512705504859295774080845044756117154695569147904287711513732278299192492360664519126833805367205091831453455549598257549936880179377940858123197008201623701882283469400434547692946895145330171827058298551796124194321826298077109288483532328155990908474621380682093398494394962950427488637483535727484535840032112663857790513663925298178137401288603479804574359305463414236646649365781111904614614908762154885961616035392674759435228914276235980003890907018469400705296197274902634549337121041665651239776535266332603736055420516600029664094803486199817758887402715247156430961037315034486824337448104509273103003302947876054251287361468083196229121291480220534411369181030288451227841408408138739199570258357120646757388819704170333682388604356017649296231410542074042707565997768809555618129339349201391630457405024180850499144090308581520357677233595551832138425927118423976218868066384947171290206948676194341862782616934370252127880452592157403350723684465369595570118434160477567957296610071105974570157977780099669755189034841290030491570119610839698982345256921013014217782794217593297427242908741399318289596822571878567606740262711744274904028192223709380152055555239864791467145646358558421226441733284340649377155287261371899971981823047133568813261642085048212105476253374942500099331350461699977435039841802356856493179264717056414802929333719174013690180725800718597512348199032391891083142442630799956016994605332925021464211901331317109878565528989813766639694367565580696478011093343927894900125453337962433522344092831481854094564513265854323447912614238291112421305757489566617728490632686734109612081382122715990934699056193487989029699263403373242234195147990194622565753908495028035167628556722724227101969418637000092546834325507242242341578048446417877813052439300042683761141640488868931899309197805408690450985039152992478235611138300114346126846950399594855191626423150125756443315130541419466449995414713536491050790894822936917239892953581998968285231133429267125336473989802030811973445583523466225061693486015502694288727340201144864342494315501000111040287494758409963436699031128379052128171368603936361600650153127594146386826487529926525967261346447074007972264311104651023739048160088668844197188754143160815851982090966478344833535063748554959483800939391012239451696098813635956636501477083804834867193788853480479743830285229181225566891924875243301144098641221617817525163535926801193136561175633073565363078947082017568904539961971118116964004128609092737626585506212804065521548085170385310969592383935054583987596652182875283062247021625962554379164766674817758013113325096514917506933704269740259406505416571233384807713635175674235875792979142323833405766653530025100045369850493569420790175023578830341249627176473564847463839820452369862965137234008423981363625819250304393369280610130739389726135847029319343243940156932132942207691958680448013726749432897988636084889987153036337438919966868315782063171539803296080457816934175706816011114373268626014908282307791496931679102394823874920841653024493022360726150364166944317669430666025836727374393480558474758136959511347100236473117644481279531232172027641823912200721848730328655632857436920007809810116111832126320851679732685977332237701613381852801546288281356638017553667206440412088599076341742936208099985965371604019922545141836952757668686092657419692365341373116902999290558574653061645520670203374681228230746246333176681600654547922818995781316080876785857328898299062244204374724019287064245477727918674939116057876371852051987026443479551437778530247948715679757447157944967249308081182298599487151179564245842801793972285267508837028896013844424571472765845854748671310073069070285990693187527836731446075504198828309975352829765042057010523522857182208316806105509963615016473795281393498057208414950589845926426138946620420157671530926846572986162171662010274809098067134981570531078983386206046782574929458710159212063821695527012594747915243173000187305587003822796793743479354058715226393478811391350076016208570855301274933493838412646687754660964188327230620202840964867838898322645753640042995082053867452515289336936447416679724059040674439686084511571544193621120260050753362806313295799951139852245134815720877704275461346131586997957229591899490314075385884365965139110941835638313113186309184666303095919525594677947938876113793297570363620564652835219530337422424750254608266549899220887508934249930064139383237147534339480423508306220771055547808692131266656210357687989715138852229260519688100798384206905889789097246105767562996061927072390885442329037886591073904571632168009392683662904329861972869962789283529030071598898230024625022197217350898239568312924640508195388827027393911481794546764859403729390549677237373056620235594081128711579067552211522739747086296583169381342274970605082429144921015014973723893751019053191747061398068355753507691139317913045892661542083801727728493375946890636206332453829349537554327498020704992439135116672049935473576560072477313093099817140110870465793712703284701205281802186736977197431553087801990344617699769256941175450771603574501174052259012321024748053443734885345759067116927350591241678795263935595686655182850542347194980263126148031731813505117910091700011055322722167099327929386137669909902139504968513176231031626284775023974929684508341753735751059749232599538482807471756807338598049647622272517967757857877760870255031937571864385005658002092830879583982178189144897248476152504139704742617011743290553377736377060685710650072625376094125213233323080798181093859000472582236857149953012192358542220873958317197056472426671481623045797878187738836690532540230880469946044676950857752624338103815084583341351665214482625907623144477365467927985519925198587172683481554838746226088918413222625150001519896253691504725415283154958926930528047388938537666830203497720621987602124419367793659512855241739421708450889395577984095131023538142067953614309044405349234408279272303855400347909218504210461011011509839307410158991348176898234344461006465354862975979176789868762210066573870046645585100605507353307656967757955760398687660711540754134988215597439419168862749676145189193168383898816398920062254830231934541337323641957839620334538542084563563440102650010804483657702559335261925094502766079156517016361814372601461246303571598512619503984766192217107453958303700615299135484826490755953594178262027361537157215914980235439405260879955458260410283226827128963673014073366527553779185151416739864763852191322706957654505865708819893819085515942976529356673997890715883385278455416068561003986007592739771756756600578897394587846054560265191867664274070448292924221972012446444521920450235714599460314024460647250940886353394122946779685825856971571567394927886124833292611679951656226503071155132749095345064672057803899979186371321721969701586990141157924613704182953209291522465259713437948905825974438642311793804651450885037361237286077502935160112027108113485458744424747165617926517736335761218168175350922278638865907102910852806038278630832061635004838535926626845180075545104065650927425313085183371757616528848433721334176608034978975726941551281084824740613220571102685437170423818721237581452299566674847050662278455666978739800030882362164734652254260409778889932404024249071679078791287371943617908274217537167964699520294513444519668674442670074921143525204160379176564284465574318609685355589803426524038292829759965529490178970534704552600396326794104443261808983579351275057378662899145846108834686063212752464855826831632098208905896384970897227054318924390975447055301162395063517103419887072037840069383219565186054550711490318702669490653426476857375862394112014277086769327608199343207823442080454544075731946336647702290988268443627717469321026122213450627785747548333895395797608421430422235611636573522597620396207409621374942915734725713128024259434972499257773061037990078741083588376505831397038753100853194195683331071024378143121758631335238613693476987234537106894775463564453457586009719412594415432725944136534303917429852390364749822776572532757660660074213692679862401449715313934540709194460569028693651798185601822918688971542879908645161628251009709151802147768789212539270387540527469704394354918193879127720355828195113653558374445355734769136904905445712687221714963448617730169224344395030032520552595863211281224248208915678987997771113264317011891229169572794624892270213522293468157299599775965130615735814600506185750023729856993146526015036925093288709633863105785312904426733954627309522222015115241074961585226179361875685527981943889517445146085723161205424871752107137853008184105295941605882290310360317842541646147790304133647063964401190446399923530175862584901027501831119508000023183611285157357606926874435882297598520546423154744939824578853602372556732762465507965498828660770842939180259109479970450755162504758657161392452680129396064579564141355105564373291506497368667801153088954875354429497880402344831688085747577532265382464602814693025705200307189783194794621484397002652224712087323186971459349550812461265022605812836443670751522951884772939179100670372568255372207032676487861735687914789907714302530246089784875378722277861242827643496718837738595966842142042640953681846379024752321075989086864819024907034552118012055174037689154697501689455508545566426917800271716042635246245293128570079596644882432042841103715377699415096423455002235585087045846088246310291471641084065246184424512267247054648608004612835479533841080537129297015916092055219495007911871358949765986064785268123463905079955892881481371353676546491385595479821903351323373033091963556408387336682883093635338286611862091438396399320133784712657842411883327879617476107476614566116021185402232321893267891833392242352449647570192794803268074666908069332173341632054079042150437571176639997146944669953998806523350875839556683187234199881153268232569481657518281538199233177011000342400971521389961059504407741734600385486179430947045167243174285980165286079898879133581318992234250158796041143669059035779665009337452907529125515685293943706379015470269666393663979230810766080329896239577039332237875031735102401600542998318062660024300762910039357317877761057558761753940707892455215062258884579704727551859756651584495864021952229266857248108013650316658941549646710536310101428451297348837750630919479685775278287134077493286535555647488666234473354236794525785084480473779633148820067162732651274057898173981486282179189714773641783236861991177057145320268746306859476529265847365203593730025148260422473952313068211241714162712228317772903822182250515642503380354927826959440025156146123979308143811215325811042780398976741795030342060395477317413217938277399509832247545294784895871718077376431500002310435590144347696704218025448394449828370834668087347990586155733214213054552692841981192419415441845224556524252505437286699000396982978363135059268745971195867887395963154789270655596756745464674106644261450154649694230832005771166162758161019994983056814246746153359888062804850066823938264201827094919880293020913258652246274584289247695696646931537551956714089951197373517150269282209787248784712250587945624152582741826573730955168513853038209299201065570722605840293456904203181969885173676331798646486132281091764976070728312667485350774267137340491948079633532005114324981837819817544245562026754587285590106719347680121585388119530662227977258160129302247244733236105717420785449761812062916957092406796843158855091343121349173734394718207631340239943906576832672158031558275542068950973402178726339155125303579320533260034541563275394136519611013664667350961279361318934857905020571916572390878709288774639437494231590584423120844333809505382001481861414407812416446289423112997381925027386694748534988122225279544570250635713791043657618610533408472931687602973057522722732473682745009427430339803196234785487079335716247312276952526141246310608032529955362889213668685816658126503444237678108928445760256960114201521640977172362787105095610724164130828949168395152704019524818449482823007570802333046181362212273692955361060896217968661030830810813959207665592018594149905838709062315072635596280298209746566429906355782814378377070600761356841692993000799965129830607611047661853123801816834907971292122274799221499212598447923600797244983430165450225517948743620795814687586947010934963394058442679792318683015093190899123458426659470341625361828253862079366259493315724613441579503538546724314723002618753852574750328675229056175856265079818079041714989861448210832577537716662545369428574417237432839535707248388969381037749410895318856487931395491429516284946113730507890901175193461984786237486794632198345000884438679271364551775200792420625819423004847009883280748425785027302020386547973394488137976214951037097050701453448164544101921316019498483711452297203867513298815210032146429556570759760672174337064489737404302508958866559799275592769647797900337226610275128528728059602513845186996971095155003139887117904161224191912072547141129593756091603598742895819553518207065387832595580133797433830339701581902199363538685288197645202155963403330463119085739506334630923339924382165996672693534999920165467276785252648161075874217219500523998143719472152205180390764820988768649851149196236696528275926321946466901003830266106558945497464912484508170004912598428956555596931647062856925252678228205948700684575845347492092426006626101831888827738077201652570365128267378405411071421873241000797971948236793302104154954301032231674723524171964645272213977376365872630960140099143320546038123628422302864996656335414137041165132906717604167489519245857278447764571999511706902198652365000111675825977985362829944769296107497225506280875384202813163400268698828622588039016869806379541515609145620865503887851688541362398843174328694752171203430037629700748514070331672107956949605299069976091141985968114197439607362800231018109823779747800078012100413733108340956564802386978553274466600349811985856980066942270209471087721930567502238023465811329977091296133001295626083066811997007913076131545035966441111062445156496394595280094343118063192678843663093298590937258616785754275004397568946952759460654077477840596435416289780085822218773613949216060345302369465211843707934322973247080161724291701999828290156116304753681200237165290278600124770051358746892648843025095480602115292717291223657495164078975280067105235371163768800089156198092361323978598447416365010821133189730860075496449247461792428820770577700831279525412478712629907105460566202348893292410339095182156588561915157197487842754250191369592706528232065409169133398388718222524122464017920338242634165689605141232559121278702747587533953354073901781405149583953490235413182273384309650023428274239714247845877200236176553817597766696711261088793124762572337787585322700585215586490457373332605717162521003106404079317395991724032594608148169688121832743366711215882637001758640119485640899580933328924543572100700458378626983586153757412027740079355561877416717559867492588120132381102502419601388780247590208965548041397368724288692001000167105060921824868528393615037966766958365399998965586850732280029805118931925323680253094150093209530955196154972831257701634846395728970289341326911901108896671066830537262534093689844942600571042621201827203054250870527374739125593396634771917892429009467956078503983392865557435098487620184558756032923157924219877953262843691539741340775027007825799660756394232738040832314803725609445298791081228497959877309286980694975715179563881018304995245621302741675060975305577595001085696035505112687644933836261406059327056606101625794917503776625026431053154875047776361474642226567385171444572747002141661611500303231393175902029690207404795430691762816699349904758313615103155506182732824211828164910499060571940701813155758632644173419226378526784764661222811433375347821183874026981755671074285200326985479411931556641190378252448128126517333347168627939090673020029212386673923764472432442280258495654696776074933927606854773510620736807008440255650506101201307351894216135813060645590124538467021774149892569868167702372155171934857635555214097101145469718393063135832545003316019085208921594275262801030472278691687930295590884282667990573271572882307102426775763114273757379807542197565410235190930948071356486730759800847187218838297097956698018682380191633889974492645638225384306034628477692313692623734294985741188086292326796866911127993946859042089660313985469405233661512517547103117003407835598724281483025143267216816681784047259925018267223669296654596816495304053000085813319980372616955444441162267832539603643378153931304461099997010515115433857321720874932403696373428581076282265760411723496664286139396770844312614444958873202452935173985846993606314589921306344416364646154586326285282187078786060612933567732528851599120331436900436607680150312839830919815941028092356978300041766273566434811067290817627776390788602974853343648505864400665364048848773771286458980361307839079144337815307648517164963413507144559235084452490989452456199653085461984837229869565444937604331452742852469437313014975320979927922341764343791222836642187449891872861767730234965259222911879119593881338630551378777349024797613438147908518304646650700694118988093845960967730175217880569672265605387899533708206227284174975527938042042086477186917409937783032735628486023053449447618977750471856743424186265758736413229714260783487762803680969315237669758138231997219554358247110669086179230861080882039485004284770000047272953980554512678529922997510965615148587766781284054834305489184692879344490777257730092069698407815506298943754966374948619254502323837399399447220359251660305297347157329407743201045481108628286561889572403591561423657626580799235492794289235502541644657313201720205145607696787498756876022106314867424528074123463297021510234254574423881785947979224595981821025082338443842464256365564295301707121848998407768412448657872387797196708448215447943977748916844871956553779788133107943053947068541537963979840835748143880498159708851538547126177291924129095653251587684091110795077171322247599220698034359730708450064104049512331748142473180751536197913657139979988856859513686155068348486279832362658892420109755003308573748981283662960325893466564482265338242289418682566030668134881782543881508310863742288647312770086841082246278832626241865236077627405553424370802731932484706930982629528870710993301626095488960026632837194952733705321063577111054298710519349128980778554573838220895914948851889772774668742004381874051082367034899605640854310719346719447049255286164063721411239509666755575251165450120779177096604850818713067770578592307830529349355905919704668779995100173675140099537292013120699988938136814243740576961405160154542086305957267082415461365460784591029381097394016993210907140872045153253512136903312331817041612397059154235267979778647373748167997723946659300562027992138923469775665363163952581506011262391895596747472100718378471715900344211593061772008649879339477619588331754533563517747867477914468839616207032144974183195747467169956102396822357311407470820604184561321777087881759030015049012812216942651908530216524599238904354762828635726219435261900174669691995136995048133767952614074887974859172418429332458455986553187750554649107197344469721437430778128710643119663759900276446555936553874376334074984244690464508040422978422664642718653462648199495388046470563344902993092936504377328740507420172174093663559684893455785865087490399897551843470364183597205949739971122215341680794716861069622547699469688735655251160168139655098959280189019230275283178853383354600575220148445022997024059589697264140784206802617502824558493872099177948323553385888022066714347215163997856896771722105132583636666162917173791934320246187555730027719665082128876345484358409772233134055925372362070562151245778499542765097742286035346625385352173745943117606741220097983073113803658350505427257274462084776693043399374461805868237080072072614363935547116545607368629358688434214812409624479495506541690332636210171212573139038796825773655658233100102308497902085717713830193223216949670429301271714078997434388144060287666120744688951143895698829237558660563332755106766324278702546111992166874535781295463331054017802696296048809569783078852927643790829781274771004653304810525297629380802384086345538058005670277998505388008048137724801657136951293206822913670044181427052357360420152622337507885195853721256268694594987566239184964599850281722389259267314811094367932519434112880580835456859975765104209447563547721148999245274233872472551563309394608906506034599407874871912778586999996305095431026264559224221596964198536376586879953680770250116322927906097172993178936601811147409208581374460804255650944228108283905834602064294791878188961429846875667146979479436469294678507533968876941250118045133127168953433141255208806883670798220650683002166275102876907768295462757067647068041766180165234298961551312487233633155182961825410575522641864576920814038106143001063108718696109436901453184562651356241084878648307570470755687679973930986741303122245220279159232595482685067247947286393939279282898651680169043474972718412571408370282834626168209489786338690670724219702965116212697565753166140751388375107167068194370767590920261770381347791862739243187462396050417414366672257573002494187484694260101989149072794414551189306216187431893694102929508733634297263296575741596070291673992973680161217579182988798879951978489679990340674970958498932089921209118131883111494117470434405118820869269979176276805823050665478043750915274604804906427043158614838284503612309123330906829283259722045674890801692006398135989408522248843118167195041658295264136489200251526333214509498590903138456070207693737507772994258654601445299433035478310583265255749962129185903590396874629747152210332198554092310561572727625038198207454413484293081342281810230950289088209947227062806525912174077666444824791391341609920146019581089940654963974474599517546821954318447378531300812783503169768388798930637001347013313283046120230835894830930484077647651275264404950200408258988752160953021369598184782379380821091867490170964327950060252956259894042752534674804935790848296649256491026752321939745120427295503347210222698501382310135995929558907372201289597189577127742305286109770948621972097269053341020867436960420161671159674392334728612524002123721079335573217226175572079896692706505567817962706501008526156229514190294212800586653590152130357434724701159399124446440000888501739825761074975066113350691923302018526762048436290815235141306978550448460956565287572648678481976730371309967087115162721015763825473958094093883452435776043202055688961458145238301730930261902558530441702173113557802410668772239617618449257808612410589178739032849020189712067801098645823939498866963166964846569145377539541108675400471974225403383965813623543035712034195838251819226421610274945241579588133787319292842952034586977381391244737446849755347351264874090408140934605143143345975042160993591909568473478473267582986863759186139046553281594643299675319820933473951539005560489620190890539988737255934819304405288101684765558185051343801990318186950227016421897702433295908312812891432285617546841815417154659819310015850886243206504767614507540414701636013169770181275135835577076112421922364840705084135447410780710830923897844980722975393984541620733766909842542508861099948695069091164556465919960373768964979169146695620923794279633251256307480423794283090683642154889059849006847117177471384211281535935182949783657123612931382447943119691648980720083430550066572755660577559378412096440488183192240705275331072830490780398783859414213337244128575566524672867464772151059991757131891320400683213385790206178465907866759584282581922594884873366222598216007193547093815708632666838191802844186659091019256710866787124980101983702386469223911495447175917951810340763740020324976157842630491390816988268801488837554148639098467359247296827080271833896716460725208734626290180426291934771617932600501072290608784118659685192628327738650255556666679208768212552094785717845133310362602704530426996930292302535123684679854729173350542324115311602327453781033427975936169855978220643375218269156281000479181403115922912717965109373416937461832916366082977363974104256080482570685229833484413982075724045266396292166322456174195571437886497665927492125715232780666950207805173331477041810560979383605185934261093901258305128859391547186796270913349973034777129687212669425208175553336893062584531581197282502063106450114871013375892926878834260428746617618940993048706108451157597919448209776759236879697388856805265763385906923140923912433389123791932176133221421766991388468168641723857661405589229722805891734659810367539531498274453748758945526337430819158747786272218133813489279864850560395904263987698232753100849087137450804354604488344790804646419117277194327173083203164135094620653083216381371164663741581438871379108596652212868502193213087147962088807645407266770846667230450013845580853264826494506455783386176776890771059958914467981749624680491821362410088104903259100963476849972128530794412767369155641234378032986309384874201679460405499694405500948968165551151585060853334113406366220317387751802408615280073075448809940529762612055342865301424067148607385823400179107206241253937646245415197048793831877178518392897922203259224310406877270758127242072542283743135759902665293314841787401002383012603407523289461582475637211768795776222380059187701190958833545341086060460423707980610135241449556252100095768054641746699731676114038430824512752843834817137870737640725349060852231477936081437968478440362920505188910396297656211235542041345727337228874511031592930055383058147973766184261707158204530612604151547153940073976865897870549548907286877688761962491401358300744559516272136860582150118093658273362542480587723800016945861775808140246692385662316820367936737523239436873996556075829066456139124889345804702601049073378155646186268933815034576239949452363770019462358644707960887657565460847742901956290405412648461832863957026870022906954945110901580787557404930056195452261140167897302828933398482049675170888851327839485781502333684500299735398692318490892172769241213973710000493024891062220300462211246477010550849576153042348748949921288789049405170474913554265829804189977529126528227604879670485364586185767323283318780876621388639010859361028059241087593496499356779131946496968953306205440525678641631484496922249513951169349294395840732109652121250380424055797171386831470525741066543310689237041703678613279983029874368935298754469892913872884231684171028630033781058364869081528702948604410130118056805130707207540411342497310013328949229077528451121759533148041837181741479188454216266477618118568822556434693017892778218736950887193985272521861252461237488038484846184346547625123823479765837400538221724333255008995579774969428443442919182974503955178545519250346108087857577507466433205681457632051091545311636518470730929347348831332021901352434845294036962073161977046875169823873932492767669594140587573702622777038247006027713779159690561940881272487675195107054631309689259448256652862893302772946069825678899260909446908517494715831197571015358994671323975071643454371329080622788353896613023834226177669152494301696427816860640879412868127378234687611216614917444452035497914659150752879027368324507144559823657041669160283810318364598006623299528539690975017159952744854329929246247216399608899800069336754578003938500747713091196737749114507295069876266005008244479364202213378377988814271479930289285280695062277177029213110428536628990699798860809763861626062928002446052318103058860788897372047317906709040879326148027596332343654797472149511587567942684871593850910222157379099730423117208781090275323888654940961702561145340353263657366246209564984268252438314403628873445151239499462703422313911481394908243836251349492126226687790421141366935091571603952255652727971224881162002990277610659405996226913771145723108880300601670817358432496601840935707439073324372765031429604913748343850466495420599648596829304531002701130792189096609763512864771284521665123552796722442728055286738493187188428115542021196555051356710577010323858656404853904019993850045294377578318116805481907973985958529764512170418087376682314158857263866844242414174538813447246099842756765159144740613389544803040657204644068080657657920119723624072012941044247241983100658024668764274484356453088888752749102951370662446292907981535687608947955622498748205608950191674187315172261764503857416184300996792506774511427500506955059253916532523234483769521479805534965739883749001560364446124710123987082856705400123298888089908783290605766774495319397323624524180132171222135053489652324503008351750257014592034580719466541420379656511816245836180053804089311430951809570954621722402056382553444097789984506951187759689046249647046093358125488245707023375119327722191925365754347695691402810022700738888088612524585472234510657740408678546947334120783427432204667865858504615832864534172364873969547383474895274002417101254489954573407699560875648600813041377382264764168279847915920589427579174182775263228901647823304474027859926864812501397672457135174010517669271596183287300690067887260653946486727827986052003295993616528437533010324970946058633516201991526681450605269963228645545723702868055189566192640676260174752199075012759517824917777199788896080114737190359954424424358339661321118033613438213465915681864710919783685554861781890241181099958438970821867350687514193794810019234044546054125220853894339342755647161739910990925782058577464869393259846715039087534443079965152784136895223363541483066519657806363825860162207203840146649671393050046428047788995461584524940966688431392638855227564561722625639407832458254901022616803764589231391388396927109282274635802078865664412346864246651588234914536674916546614322690613141515025510006388007624957691754456440703071381742335707168994450744838822814228887518507716282298356473777602765167541163006952871744581950539226710671669021758957491862848213423642944313312877521091364474910936381462713149313218364891220269418190985887240015729829819648903289386295925090787917141146211374578272895526155037186430450211510485799472471995715111616322776636429231376494495571223883328861978507297906162837737586357062674527567243937441100240592818325947655150030563787841494406838346763212201045072528314611678500922320773005060589371314856179429649636516443054850786634853726886514063913423195347216264120239598252193248594214918611314312461361419893523476410703052471882779105149884591956998273404910904231024548206327654329987078717857029715197095734774142085453307033259821599522257428326224625063447577057316674550033695097876568752043724036582716763519946462572754631444519180669389825185217232055840376338730707758644296274216645922728689799138109570546922707110105867691088717198867525694840565989671549479338827895467932157966085626938811109424209986934941222138644304449842163061587929504425863632356872679591852925770766920166733963816249340514215132685871840350744634516898512881031148978910676465933996870103594128890649375154383376147111250073825277241780797822308178976502889445700641878081580651815932961181762205271545005440127232119082277712775362678424633603534311595654881708253062641175826246993659661876614186493091485680656680851747459549940117375576329971708440547214093904888893839421335461941669649144268289786871862010187054820007072165369300068240813283779342181821454428869321225732890670917189649906601067203220194907895173003040201532344751520134905148273653669264274237037937163915271474293726629783300830441119694914409072933060632191073522171013125393478360676758906194154075145456303826063056934518081324340624905813395144852561136374402112442320196101594782254027429706030787365335421968473114517762130630315129657559574113300905338098565297374340476184537332437411740648957461303923526768650799610333955668694083096998315367509512501802774813941660010986492671181906999775527138868310769683631443017193426277602619371747437729809453121415356990187894681770151072979504408495819115866201339239477352429270848105983145278266020367456251538940195893830207176542607947561740135373377234320467663101651250390332729875124896635171707326817151949670408430577605631368916117401840383627320264752288740175067547417952709999354732903514255814325732856670248333966721124270750401276708181867060716802932162683440050359464672723257110362389379379505030468521201353029006236078774823269174546008197495241066756986210228539854856655386673830280459508635712563930490220205981516125726236459034007160309018467153491037615338816636965731221358434871478510006415908841960650419792959691191395094363306254156165584019835188835638203769844692680091903838085822295506418276785828669591994342811019822400697400745043623108296075987086853118616398603617133724055308720451078798621912338174327753087267606861135228729327186647273197463131565001718351829482989497871176045468685855066628095450647023819201663511912354876240872026689101926986828312084140945524084864054749239474744728220234417930303221266996153043504158026902778286633189300448768689670584208946323999972436532381999619663791413478600765428229938972817956105537087227694118922159383910062044024661899489916867513923855137440098675049475051687433969684543279970952312846853192804655893433155086190185602523608896735535320364592770152038318920794218651070069963151168596470025003649214802757626188611708508332679925296697014696872963844613227634626742906131111387066000335170673360582684452595290255232878186908008140485039603234235001150390843890746443860033883548405908988032318748863717280482801788479081834349027333704800900125742032396081371779017738487291425003725147599385960471334859206572620868950144318888849490866172048420037153697531948081666383839135700091768715076091974566472677628037842453927929726351366420726280920344639296996524536513003841792904596795740952358022462132999425509410430499362487811591309586711684667890472055144329906410839916199621545091026693424158723037597561047020758868316555009444078619360197821474534726975486852222246173379177749813660339135054425644697102649102187134645964742561942275654480009251497566609820421691401010343731126219970150074176817797492862725683128383814507311674898620279336143187292610531526752617372630418098583552001493264350069956107460262400241343598751293981284318511394559613230532433968600907280317096971197595632077823328538929179686896278950155754904074112586331780540130196622655849432099089029899970895200103073760563379976668469887339376237984246894182666039496829375765258229771199061211424092711085785386448427092994823327447859696098830373619284140266963508922264767458407922515937289217083506261865276017421056287475316655467064427499780073210757075315944696576933657983363844012137076674000768668203936960432514344831717383436789898092750225976250028420794401309194565657701841133192295295735732138291194015000506881841847367058772611782923820965548699156476087788828674835309443880931743760079825034593408594458640893925038641865392801376760327968321231144722217951494370744742301039563476696408508321988358498456243448597106584123038193056526065173072134187757342263050129626112553741455014354195476282132559958050756982532829599348126401643383615293418092649035986490860949959820834137239072037426900754953083605128911343921275155803761641775501252953860194228070682513410860583778252179338602990560004998027056178857559095975855409731395457614492530750277496123027639289184999873712880748544888233907957443566538607482696123457454244130653433793311466087975532346124094810323744120261167770403090252637087143234329111262467434818257225969423091047973015065991841136571941785732948110372439620522321757859208911191652859950488449861253859689074081470546709749756402322515634850734226785678046709650899864863286205733633670494406504180164528026235500878045726288765770764549575583109131755006540381342935567536280333577590199392767961905410426581329854578255530271646753973372491146218240167991710464870963284695086869059544926888445563243663928285198402217744738258872140260261647570331820429568536353362687575248750001665426213588007063287026256231325753612281541305454116224734893685860630162192583827838647628240244078492708524112998098902493715093530465203148886535348088413633611709377781766596767499653404921958439596085668453141205285023339175811735674797866407411203549268944586777055443173596908608757710627040528235263028915515057317314918850308963780199152560026329459820995100602190301105261794822309150129735914816496452983564289471750588764650484245057400559483443934949445584642297647863747698344041466207928023605483083133828331247065985007771468414216217231603465390863268503150995391698748301065897015515577392075536911401974584425942240029812100567468979694184458631986812304643052910927827043825695164905021086636627882755311747760508597244605911588957954857761773277194117204843578128540268354839168414835791631891308416608613579404627594034249635285675591327922631282670418403492837750490055722504067760462077547969035741164297869354730992782240662080994453245674229695306669362356396565713751286689918119519962975284191470699691601927852096001526477965344739151569316068532323316120050662290044394787702441943837543439295552232559582511459455635551288674236567540633909585412720292927415123073328668518391765842058033986391517481632149127779349312135624719341805457601815186503391966870809818883056260728812137861232680362362742461466827731737594089991760977217083386962971155878639788129031525816530419870129258801684433449077947065465350858629723441912599057196734880987574656465328456150485924682622067419962173747940036186765110184085445290251176186495358960266645620959231815270661944989276282552525629554332018471266374941009975144483522443238441606956203369400062741586533517009954956683524005519375682564759175095618729957268123700422979702071819126235982366403385979327656765277033623135221838121177206961416927927521771412709059080515401487578471985784121927422748260158665252700813002637175386591889913270165701133242083475644902088834434673665140865066871885089720317069825989027716153445478866597286451122818521572749233713347601671218349486444415820332921278173271198916528066535169958600667876620467623248647867149273675974729811418036395285312289318082356238352931302197204976698376349532418776884000934466384455250456117881884328020237528421105597927571868634602527518721063373904999291396113229394270325978498891718800680672881391146692239151022409434644921679548500553638064843778845235483898697154944555500814747182622126374958205803114746035418537222488488519884635045092742033471834658114886616237485193329229532765689747232282367102948752770062552183016763987603442501656380061749664530968248980468878151324664031748491461872291576074767341686898727833575955353232676483551292332931758307737763641369697615589150211397472091584837878456340284904806339083380421426984423098514352988093475122885555604244904620167208205796456438838338582529521032733152375171260616456798720776514836760260114800515280413471369145682650633810006231415059083401275957054234333264661874983900151329428616210796158980823437507340233554407662330981765692011516963966613126506409474864228602886845460597919606391114166825017357736437587050297615204216187989473509853583301140079791170266936215497425784210811028389370611778920434683695356561687915998465352120648944686220646826205667574670019239554051182312277161947570275188828926709878867630829952813217431083047584076914756175712461007577490282296711880197996964799775952450716803618555043290890223502309220731363593156365928353061718679798912339741441290616217710369494017138060482104563654582001283443851734789834510113167993399316650173278953574590869712417631495232860809819297255780005275870685915216855865659245678921901974288923447678091610526473925797230785586767302918368688754577000100975275130279387819920344072548309191509787202575210819775344731353405976220877445615367132466544979816202753419966003224825007282634925525424452107329276731392438236940309314879863867758652041239525515769620385762342009422950647916924966580398854968372333028284961833931725036687817692434385875624253389095642402754053858107257117497705192708473035115047839535807972488621405705229722588693394160759527362446408616346305119100860802070876763785348936905332230999243377840820066979834725970658996223275548519503467869546831749694974837133634762679988576357971232273641453945252530194635971201866295965990874848918392139165457265781441412147075138562406533666279011269889214485955962374438451020879875645164761403914250012459362022387434368071020497845045206197682389342805278835992847718159961077612522349645558736558169068013681433947246463008007071091361811201568319367733759452887858993814899206387848156456964995973786334695222967279049650575898036846625487680690713508506550005282399946734625719758149039818483335938310599119296048056288104699775849302098533178091551411203318780195415561725658016369561031923849715243073678801234036195781949869354559108216393727619391396704939561577912043091764412865541759987794946878352588320395523212648372802937197206977111108914318459165164876165938143876291605228534915058560188763396651962154718771767202892687164157105871558463727818533116073128069552467211635174308687290825004594171517123949757872044654873708622596964974253140771426984532364673459400730551563867373708297233631733451412379779064140664789932539911411527918126301393470176628377574515548587024511402175483825528991407507408757911372506229804896988450174133342364467627248772908683358832931344744250949235895837309829351788604140075628686032386030033550222956430478315554370774816149611556204729307541830764847872595027881978244429374623643261057233612393283903083729610301957464534229818085372957071565705553352290457918556044540702104714746748678227008568192659220797324050754530827197704191267085369792966771276837613956881403009355022294411678485845035598693471936468400812738340139525778060275310906796128840599645534794230592044521432621877074065885875603723348976419003645256779344963329955750150557312861946311802038112949595774908579484574021357164024052744368854881550165565772371086983682714158286293523856390447354904568344735384081323459412643672605362808437043909157102347656985357525980837646221868267650877233360897934182299696787938097214178741929900793036253538294958520377902688067549851214939163641689826662613856638088696826454513989136821827027045349491693163207193982554593609254771040618613456546231850191904914004425250261529124802835708835949064537609323390528868726099665307836861004242241460147075431352517657697065418587457431809917471572549927192407606918708517149076680293188313429586944485770083394658799042315147988577605485745186440014385050991240975373509782622010510080702082484922264942059064925520046477034376901921446501787398514813537248396398494095635016643311969458820103495042712241813810421312173195968055584498650821503023576214441650550734801015669269044122395662549315880288683834925378055993095536852075992581942719880774922582847126653991485232211880326499099238258780069611579942372729236506504239199051222842957342648884887212414996152577744505240602813441343362270033993839283600536875730578903547733103708979885803480362937125257324764671801721040797475819910928525415179944308454851670614435739355835610047081260258315666750175506826570714628910455920550818198271215251310491278098760577243868154608154518341054584375401230165930241196004987207861672554734393976553456149184475833386733152996191490250789901401236275868429551426471332341799727237902177651147266543823003683961506519336404232973950331887386805127662646498911871017595459363281063448640732075612333826070052147240085712250846517197202842983724549517963408084659409133413718682677959748893638963499142063947385147922201804194699040766566441009892778460131873997695354423345800031002227430213404505433341183341842942405104121207934005791271425633024396420422235049647185032722194984223853980896288974775320379125929642189689963600715811328483843775467685292018574126359195120901855683889001765164490619536899889028709343937425663820572093905636401013053645214076246788105321956771354064556801863842912244228962183497610036292939652038856029523972636887304850760154267992094178039022314640271210027333874807993183152312592901066515711460569092352805760023960093011758508052805423211747074882438735259901959499683841701971328941238316975609929789176431631610291256049958014041986071858137514982716919037948505408999984612978629488353401899366572665064306379170795658464321258811800825045134948991279090719083240222378390662710739808606595912671948635602885377628859912978239775391057709642729636627807613087129597780761647539731077013897426222672795348371626551667948741374306920422756391423569693384986271646835549463681140000298160524099833772480662114986641604013561762120694343490803693578124303912785578360307798493635905658324379629470267116611347833681347962330999671357229824920142492697440929478664349464197616257076791144492908357801659709414961161117927748507206570094835403040609563314678657380439619874651658928856772148462740610504333879577807554879048297085756025746212645417407964383963448490009844187759996129584219273702298640070876905880178267971194900143455110217453167170873737096072640024297264220126148611680860797454437787074856746803062997587038366161731726534191085401226810514699506194668870520529098981681222440294217272740955766852517207947731076359192112737438403085452652292275650812431756018386606755878785616839887851924322314165446615455216128007361234352835177249354775474763951085934954609048942928922951957123001398565925443283017164498426813465424672733233697287261650968835569773175684360295595486333077225081220143771266046108719229704947647631014993524640461560722536713160115639738129424832648355990208542535858519670555889365615454597534292508731436844239433874313296104382826080237447137058825580432440704173030606934468376276387922171406678336500995467154554452418678374064420683102173210550423964277950487013006755698644537924453115545682805053340682611766949617909997847038039619047495717245411658617297767479694327728114877697779354978016311850081552118984738922719511073668493415457687430459733488044453999897882915427138020786870440051006800708050397310433612895077993626564268021453233657040501700947066678095460614109735354951168676979925309998650909990252699615633718906724005823875364321784234849467159148683694579080243462596760661102451489162282052197656657350132085984771009308667238392947001226961140983513478013979580221187994218710744013988424594300631580121201430542016658445232828178065876037337853550156842867523633151035061620540473705244147541253487314762414866441473810841870819179650736803970494075411797951108993964776967385453880597815393750600652690646190406030640923847832708104350816892906646447106105766556063319699821041862829951699775094649445608887373420119647682780773371330637914035364032382703773017391182589341901882581394526123316078031467129183994975865116269511375082820987076684376326263590042015704972698928580239803856827962022698312461548245863376997965946693752781679341740776921758712134367066420376996002458847351702962490025514904634614908970223728356169391637550097062208617601351066074846828823938224694089481043122472970781105798706303015684396314837552462930719369778590573068294089995655916190422366289962208370462571566335414795262100646415976426857854773050448078070262361934323502005373290581042466496735083499486819007862141568175604844390001134430804231458878062964687235622852625454248853293442474478955608960990681876766873837015191065398559254538933229574402534321740766919372084740678322259398417856250281771785220030242881567614649310191265582098945120616573671459659794588702735922346552593877195136895685066690041491524211724699863697839387677514156424192501658788381969434987983440698766596265482439097867903747854792244946798200803499839999315103687352730215224629220609098497377951259643847053490074328736701788102816266012465221631183258200437629593028363095237062827893943217306353505794845342925748539629456894283028875566459289280287646216893499834324560959649555747700838043258736375544623961428410892488213385210593991863278595185900350454247778056327732167209330782237259657508535763586514177662995249943519793982300348497575377751157513770966823550146260678849870992329060201576077125800294316827538421592305705191842588897093387870566663990892816546208917507406640587475221561694876665535646374873658276742137099669838300272274596349587936637498860399561331165634655831620357121606281544979792181023691820782445510868291688019671493123938078956675279194426890169071416176107892277178431907583070547722878975252907369072475340886321477697299964232804514226039792206202155028666893900156189043280149944096755253828552922936638252940895395186274636555370951000961141055680679897181331619915781188722138344221799331402359451676827243547946747668215921324235093770600983641298801609445130748550323262959371380456385393600419783998136857170016156460223131334153520814397199425100262569658485908186315923344288435073224441611778687378633539427974176849284210703850647024082466117318633293425995813515537697538385462225332305321079624345409041183415674082444748753669461229512840275463909294551956507653465416190255633997636939370899613344006258214532050092493145177273851546967653504504615333062839322234616433994800853995152577285389289959334578113042103087518764752428526391534092666073798918873070632360135922357401797239736526233724812662220498239966952486201732070967098292079560016381324043075110961253160136796112865966246034184327224659295981633158237416489481089626195980475208990129030124423798812774599654818691857736274690178903971096046546537360536417522663236863637750960830571662724684409330422109814402469619504680976595442790914314633153810217406119582027155369019332969661467570600601378012986257151552871789954172426852136957331631034781773574701722818046693351961874515513846728729417793883496685358168139450110524996398023434682283586489650735713266765307653070088420197731989744200401751552994963906107607892181603913613197429035412228283549513992047835924176741698795234108392161100519596815669323433104216817789716220528106787049048962561198041115894887271678485892712202608009239981522713043044169766478431364850742614467324517236014607385032550233019699395744850605225584357167336705791177866959209764855845558179180906683500706682255510312911637872512860233534135880281093775842807925512304867262979606872314648302133990601650294698684936979756183748289662685026964792241853458668361787682697247040893406839760212279798926627848048636621146039366355074400123696323787178148334468703041387472575265099917948904790691702992446191269669285770055556720666693236351027601081026458775487290655346410830941374576757154449754956797025938140285248052987547501323750812218717560249033497182897118651400491169188569155389455778130392235315111026774733033462780127937973971685386712465603083131802350016522015834547435714734349301639995035370628007959684112835745294211778190915850469984740658349879639439217116248414949035120658435478617770939016420786246735888357988190374570477078363207329111135806533902299098805927141403792609442856201913714582123705917413746946875094843828386085787304292694706983780997691139974501218037287386623174327125278985512813735146887119196694887829318846224320676355932014730518618570440896270239812438893548131750938770908265942449646370624637483105245581796312838929838382601601286630488778341098187096018313226627979632891939545182445375483917408115418502872604770520566514397630962704360254133171646640971552402842372716657683335493471389632045121116458986902206869755816972767005781065065278856679434655506446525472251662211676373504502414570820192132908964975442215312852642744226027451652670142816381912748322147788469673330217782986362483386235371330325854443134677063587830845223989366717175959553079893958655229787203370000256864856298611794719645156394839268193195934127732197620283817528216823224198972857516798230003737658739731749906629499426375463514177115075625291466593161959807974503022361343085945889682292413204390914817188425873298340788504541886290351940667342443605115464173769696022074564387758496915898060645368823366141479858114455261414091427588388024323202046024865847134670015490320313690187944567050776838973370573482344629224500736510770881831910649745657783710026713109845777463204308106356105846955641714403859897674707536525156716626870861641512576645360117682268394078277230178726223654291259760937049829066242998668566289632727802366623027467741569832100697887757146900691681795946867998844308033677993392805842110044713945381559748694901138885925484674609373965052332512933145535170247818496782322656813528603225116774192970992150663108505031210513569234283867630679028424099617690301166204380184253578726148059647502642746094927043933867076459962828686186263008197882202085619581515299144249702813519731631554778451116518930427004105162547755285214503189396539517999269556204192184705653964425293758296306760565102343480913683171001275014800664007442471296134750253505305246380440874570323420088030205601602651048994369944531544452868122147036322578646339425394692296164396245897473182307037429690112585665781659618029443320951706339109627154198791587181786429131016156461154796130529788622597616695952927808639354543883677698205692445510687371492554645995648600279554486025016461140052237988670845600240884164755370027834374099751415477793900280367829696589147659042323375024860351263121360815660936261122635714218044215474890659379575978857073042102188477770458205428239307036231444884016738735763350976202418654330910465789808268285742978009421643490747570202670571625341128221853271123900544055850724327282187225752314733469394526179891648868600796991103070540485142857001755044501730173566492252894917982896936818083022870121188020457376967208695504114704014473308163831207159243552742828552783305393373428068351695902467861481686817894902619898562757349171695917564173496900894980646599419154238340646800233854970374050495024632303879269976009637565034386152097219254319240437724166052765687707558538921381189003908736149178380933511359341806119942741194559714697391725399783784936971111780439877451560770924680456102661242804252382908127808549405548323923563959314754011917596340363195516477818652948075829064952173571010657230619855955567116946117079549656743987556210158196757731859956392775749541726606856229032383643200225678760221852877416558473389292027699814923685603887241459144530319296284251647773799722700366142184538243445988389709553714605264263991137004773365790969727555995624027906551123825806436618269316861463704854029816864814227535972941044706599801868711618501143005579145289674169703736811998078787725556269990715029789942972591425662134483404363712752515050923289298752157187755176988873135265246833555649489943400616381091056406670707254190351879736687692829596486037254971573601208055843510732624525671825319295753669985134057319693357328944470116248494075521950421418408377701440835104902463552797534281987179151695948413598553616743808646362090523294447778739914978055154048823100312440231658003027651093095358044260249374084919630854699779469743010552300689924844556792733454729666397498047771102194470559589325690265097288822023528369816568949147895924971688767372282129782013836408679944908855363896678122706722287453716290215946345477299327473403954743773177781493932813336458184616241514588913570548068229807313027995094145961927588769932450405824221415526794686789052361523126262628155242820967238078857739440922715322924113114356880067577590590826712755068448010634015333485403510135389366993051757478113086275390328010262285978466711007863029354468354539321876820768487866241377956947832077530913913142734443778256621854648305226118883519108416143938065287449763345816757531186130749594577025834510036554223925994459402085674841423042079854544809571846286060297482695897406559968227073306489897493734725336989261845192872646894676219338764817630242500798929915335974777056974824889108574557704511664673911208665665325785309914874611442347735546681890980770458287721546391105492721548099628342946372044974070133414304478322808824327004264161718626285618044140046572006270871087071568485503248532807971629933166786596528336744379638924322774320006672781097762980358470837786324931067029620333202026613697474531037645558000301730379423315040167876115815448225785864177316590632317595811820694172212838153806669490424652422208496715799968493793810174954370564288407201226594906982999894320760790691534360053895335538181340678430079527452031467217236086174016655296271265795346072199486742753740284527380685500812316055637057456594223977762970843777270483603894080323101719266230406427198441731296550819149634332862506779878843975756456985057672043593090259926271865813228404257200281249546147349903599163046218363474873958057380616051148031155918867308555655672448508927074521473393814811131061223384416279888693683990281023622285939604470684284488673752937123480405062277650618250620142700149242950442767635942203143760941940287897593444504236085165528270048983958807215277965156012261722875588405942672677758896061023476777246303875217747701070774098304020225803510023228569472925783307045090679507587470799785511669520213785159954132059237256470531024620441999018941528864760278952963095127374996073236684625776734815327610280182019962327574232432450589999119690147808402887376361673354968340133042061510748354122777221557281861588322860895342986442856654550400315164854972102926089227927902844894616153222839424563348983800691575920831778716637428688243692280470985394310003109102806061716761169097101481717331779359598154760742427448037111650571203693642372995686019361043906990512383212784030222258208535578561598508102174279302465564116467116959104806767324445822252779272568555139054024811928392979400782612841317809474451123017899601462970176608912472088002629659998855409931882955715670414502508800857472103142351861730196094334785004903817266076782008916824253088864533763699597493888477499193677937263619563953122292606935724026263477497471033598453819780749402448452168030966506115523075296075327228777575552557560053191910296585382701860520777202763316850113089805619231395946318354091812686555787115440003205564847728900138273145868452401661759571908380677553263048755898985225482595740709971363762112084939273446679276779917180213992613293612007429780199116903568330132451441954757180527985413703712551104221111403103512333605153127067337729482000659852777632611385283976830226714215914070050879740640705819311126443758386152214379663438920953728509258657666330549413575036263808458256326477307114647826434377653350981146663770714911523701162652166952738745668800730643329742359696118086362580868639686511997916043314505759657074390208542320763576041835857165954312495184511786806268682950242347960276329868771434460041184591503632541808539123769026776368315844817750771806937201418197315639053557023959424301207211171802415565898466996460470211979813323966769509769829818811139326772754544654652959243682148743189686508668897239449111941326893778496125329517829578058777079082489396604778718949880267454395134049498999788238990318628368228359154757715868717029248349800639094982607959326706626791786889054607683768139346976867608566135269366245068532772872894577779757761035855895452895424305062483183919501360726711876682780317522452272957883901043666773733668363515368967561722016985126487504221856645630883371279300278666935870952932435912855480840531479419347983741119630020092567414990309340511847168400663145789571782609627178378028406682122131904437914307266617871322125517978118732545021717383257627560062284948075948703920906795087872255713741226118261404877282817362549316931700605918492533572573620649542348883911426121396753073097239762302522280944494747941245889810593137515592090252617788345645553395036947326622028086395437467412567139443621752010755788257773156777070050025429341802393845182541539587318142779077969986363413949617681142757487715947419656964864432274236704521158116327453987642165104525397865970309283402339466857082213367798631905558327434105291694511363512954168675598711288442297387862843608215588261177498363218916999207217557670060502043572656049446615870975900229025114221611748272624468101490167419021735839813478359951848188030526234994464122737618445025101811629546479869632825826252125479523020463277451829686430129169867336202458470859451882289253770809894344938456347888126190094342578361439224957255401943922007782729894512393721492586421559003187406227809564529265538067634908490306064359239823109441718512709213914134593175208393621989592641756490556006756872610601331764667449380770775973752963515079118229337021926344122888474662811341517097564346649032073176940522038428300138555132450297728809419305119272874490909566309465260369696794665373485637609932276474165883786664468173312006659294373073792544398851835684192792530797120402668181004684895977092608998338694923474121749523837706189148928294932860734253787402331435980791779555353967600575835024939747851600076607336868447469499158618278491963834087051466845102216603342397278050531847620133283198132930537353791251841864411824676208002016088466236412241168812332420972486487374535033384459855079291363532582180787073841800605613004299952385762378699860558336099652300930854600486445833854513100294850423235624132998557564211902920753059115384898413168898695582830931932248065502269763767512482733949901647789339793646488760134849372072929968652384336238160337336774886153113034323945103377941365383861260550468846914137907016893049010371392326003547806453860071135264110980038499862514929735061774986022104328252191070070408192366337417720434963130248673478494707964111876792420065655613683622404871121970165223735669428413284567506845643643688802747447570735421353698202550037805860449293640976890167089081866033425706682955406547857202888872110618900670739485135338752721982451291560777750617482527637452697731146539976448430808932607663874332896684452976552806217848710612857453947442067787538781592598047496502764498998582830586110818709249127406986592829110352186281643160991055448524376610004236798671943961642607300612360340364249382370639247991264323892448664943963458044963577000390108685260128624768995156205300949087882413294696895893465910002606433930670798802132797510732651598897769242106175988731745019690407674378880544407124174382701812284258403834180972047956423603994581620955411529663111310723113153210830733385446919753563650014753565292715657639946515137823261435016339330975672796585226813096774437315202944203995758529622827787385033233130856651294353797710289383112002550518140779854030533209664379405887566281892205489666573442015638329097236064798243170917273027323284949633768838634775300361720405856746217294116698783376105221291047615780077902732774900966326424421978212176452162677440616575802102008430271887084407343624066607404500277209152087011722842586128364151668532186071509651870921463304030898895534160694119517363815678810724380085007356624344949544619105291111946567599819570555449565798166820558432513998046335127669642613466168539756878696130302268738656099697513987218608126566570441161571283256446164530594928968205424232145165292840809863193242231560882490029614126077008708744641092919253839098851820644149751486195825478757036164717348993986039075657794969754391784483900650752426469801105399125353319702022652789778531578699040031195045667386272022012110509681088559033613298911323901083958062541770277803813526632275703903434335232718388896688246281345582437336668650985609809002370899938530677180282978005644957094662049351863323155377017358703532074500075549566626013904690759684592424184553707022147404335057721501652286202153668655627032406427574977920973771332443261943950137959375318280005813197178511268952993024507874059693020173464328299346506256697276403856904142101108956268790777084075207179291507851162143016685718719215491941243032239337829377518132888705217034285556082519936882397279784998293368388697291187906360392232173273184472599188179064762750763703165022931671266606594555496880724120059423653142413472061712505075632016210924525518228564046660964829846014750620776649328137966398482357511592613069045619383203486037775357308799893626674865206513711386907024011129219307326214855679407013475706202252375022121983095273026207130664403549153914265149219294338591492479786571581228473747655782391077867423616981482259174098002387442985205459065098025001653967325679698560927137265516942077326119886634599974707991710183176273833551919862001924252949580392620578825060911541661889599189994739322359977221642577955319872198636185187875483265762066510282105446320259113553615685972495911436321501120072803125619100139089627200848254338586491921059281699206323977900273316632874504839971381812186506744874377267089837520760241143385738039963025073328956184259687483829834009746499379832146538932361048800951852311843162672400979832413891519056380183701986578278289976373278885561622010184837340595015046756417529022883063956686121463487345968223389345567757387951082938889396037708419587969787729876004436729459453171489625051922349362166323534467584719040900803725804697856614068010743218654484028090056403946490720072619426449886811702236616069639210012810083511628379858895528573463760935877755802459609579350204322366382259959700006077001896366106498605032458524437302250450089558081275024256602205832907040799881785647409687603869130067127773905473142391930301779732809831888553600615247897127071139615527217578546902019857442214184095007303987084269038654511126296478654290441951800855850951832622953043845149570443243461471326659194739389046751837779215016805070511159653294296898444044612968744158462890710420259533714758256742336674956152772043099052310109754984101908056979826662947729423835970769098791334092158586078637286658386840740325995309385070825962558807532829549266662772625187950666080418561764331173002621337714593228492877802789366899742858975221329195033151564198598941034650897796018449217683261376211328309760683232133485657303984043911464361392731582116660189178144916619328540707916491311460049354087316222710992987246739059239259079979207979597520830584449518713275641395210903649452272545090853501346502304394093396418435383823610033811815779821522388906279329663684939673891424118522935577315318571843613023489098146574366803917694144316042961282224732258181240217155720024119702670659347716762318743517471779338306664914454419390413711200928894350094181344364001722234325973444483128897128610351298852265721420313565690867753071894788685854863276398743489822772927707893707624581510881613550690179780081445211026977570678087896028274741491393135825269041947448826525081436309311041643315602049763551692325409207927117481935153088360833678260148553805280967588698302088635116228687430904538380758357941940205921984181329867132512689049697461358421620109291261874424581739361166120081997382652989375550451002461535740263359271610577768182968087798387879688122552740341353413018410316520256353838533801339756257208512161850371284468879205376261996152700949110633971500954678464411411528502781074279269639033770342300894266333361873395381615209718568037369019244634150337390538830014810372813789941584057959341848435529523003661222274593263673629059293145757546677741582201792547691433715039943619712051252888469304784996488115503346008251779447714286757987549898869502718589090189521474557824638967643255550184954795629046212993576173245593652066112541565977678543076779700653821148646127143325973471060900409690036474621900704561590719579930749991367097139779223748306638775927808426553293962723148504928729095528791738151532597170241743011004144703807832163409505424264093699196525888517045438422803753204912942097667866434542561270015421374068375945033652730677744818024501212340441490870166535449197840681657755776342886942962197405442022008054349936670598701598261475803990035760771315318757750301782121386550578649225284484197991936127331402040623962361891352033782124213409937823418511956136388700068601798475429585668092040580033579538896621181075208346001052605203138400259780176333176887744525722141854289920290643295977200578604242240188768740678772031630192455475197188973126255922752602190006161586330759433465763150896914591529022587350082823165693951997048906475438397339684733483144500728619274948991108303692707805738864444012816050647888514327031554033435164272452475436479195481464551798356796289451161671529755794664500362371934481326555063105412082952972949488429331972235315179318769036390250741030036392847382146121934743526370979934270484685679547099369952913135767437518089960855553759351299906823653104127363250363946768390915624825899120266988626819814170270664915919330805143130755014425948977506578712280709119922456812085836257589338243872791038908440902348073451323732604315247641767353518912191875880575648523040245029876901644176311514325325141583492376364691799537541606175755282403284606086991096700585182419347393887440147104856279356094760117765600806461060372321276564312251164677998138757805606604846583265203353883715138272600266883736416833539577911080231846772145811839144995541171352497399166386283808877084796983762204405173426845608845620601310528230401400290423066874173816753795792147843214443738203420750377272953783972882207586711902290349731780350957729755101408298755373630980691030059900145733786507622751445488089080806823849118346266483496466988678174203578521408064988105071083852649795063455943293656122969139805211467186989348788915693814017940782340618538061855627385720295668079330825423104079864661824244775243696634073235487216143588163324081069239212588998971744660799164440488777442366920770563983726775826000517305872708047402336264337883783328889010667646237882254921720377308944824896254084428001231455371996156716647190489787956820553074138797230281175038844957361871774080830434304958790103935386127983328001670486351451212763619245133125983242786725547173846328128533128175472627483494969423378543399045793816805763711956884872847468654499894925824678543430951301176252105258719450493497410756070713133022845823482534971672871339381842772467289326563583155403557300926080652771607039338600889107660534117221228316919435997255102363448693892365166446145245448472681550462919787870373004392085649394636960072837609649298596633073952714218123380302811831474065682212522218741651409411825601380777174841925846133223817688928079026724714377541720320935451903001729348503264486918514937939711252497304212467630143284214652255798743078923348542388075174745375807232421081496280213339659243446068546518553221738616757628970310563274853541680913909287613383730834732332179713946093177812054287069286582863361910005320845687569681752904880094837291299750848972266414131847137388451208153378713816364011692528733443676789235093653188088004856166795160012551622520161775042842424065367310010062655375735437956931195114316245804527916101385589241322002561591662479675314430885649059831296029450620986093335198100659409379845918733308170371096041650113365097872182740162385402476235575390348385721736974960363796295085213962662831244839684594823567814991040389572467315056404326818098305150057134421225114221713449737731243512751819207099907425497695921452795014168888272638339558015958325084188647092312564144299165503701782319135741064160563802114866307933126391615513929044305227203118746667335639148971174285263984874641513124495246859093536645732286302339143127586328303820671030846581153168392383844549483879962091626528931707192913434711867238640062146756961956937378568894922488288393377739371192279502014721792172875769997009044565134579890306788037226473843055068794465853932828539453301699920868867227955231687103382636736058574613393951722402891590500769656112781044108518311054257235165179099383382097874894357692610325324498955384664994626562548861370587574876215383638521144556859882167896237547155984498645604230471062636566102830690266745819398086450296801816022905035752812567891752383871708445929671020462771832846603170404950944402482104937561091132611214192110161923059509985263606254388666637533309587246601758611952489756769615720839918666673289676059624597036301945295369844222443349913706412759990285391724235501929737575130625569970078944874359430762146669993433679167271833791073212799988353065180983541154902448972321650226035427697648629880456923323947703778703326612238737396297603446846131059728791039655612519501053728116179540706369444234758919597449850926220416233596182668573594779568315755118727150041107937250843250162500603144471450790330377417673072386255958263209906415089153382354340266415169816918893993384479487210203746639843539764047848181077344431740322687177641509381332121922743050904349370655186697859074887700910813381803451584848368454183948703012253280206851487371874221426343819114930273477142197173998928626954207377078661761772668060751026840860175690008770823527364758401201498535385747689071833746301454553765635165734797536717319922551067016758801389055946869749987470108654118081647204355585402571808263469586071862147750034099178300035336066541632434027387870426604351688473456039268329375818351399089819772115670060076716117487800398817891424442861103612602902537001108651165115995205871557157290282418774642840208959891158888360331517130882333646137372031977947177056787992158044396923815614012909943380982076369102682952776569236413531329204191885083012682752425099967480163645096673503294333674257137661865431126507554045720325351439273493912907986937938401888877498391751913254512085810353040763103236028458784543173749892307640837665736576450378623480686270886840177224647990940421991531701742920433474276748070957862889787108909450305834275439239491917167455213010894779080099374775611502036779996251853229595668459009358632721681816983001394668674506353947787795649058680563176490364580320657619110077819328461835989122286613529857883357486317222353142706519806530723719617611382578464570343185536145398975347451795613766694406452143036908492598718395972951873947385488970455951701617243317096358286530412807558030667465580060428705176012334024760747149515432528906330462235320202333681137947219684569064791102923145464378126683894806006594442424142513509407107609031862759331346673221232212144713514792945113111399506104221274161446660367126846588841986888685836006047660228068716586314958846387129947908356000273560280209571637057381293595520090312601994446166816274373798522198716168334375430007869838469055650823835901427966047378498171985319468060009561223945661070437820763118399240042627973061077956427968117203027840035267815480263105020773023866068269892519599211286140378873683899821039757384859050322485250743407846378634841949044211784489753708252976056933163628205065654047180142624066662907810602222233487443053075401342752776745385641174412770411551387957238047415210719249416387546015974895072621290440114628371933888058809192168222694887916195975388596997439661033057214564866437424018851617691822176453514674847287627822692611901103431736695749212786285253917110668235568645313140204662995495695102174424221891432141212771341645993134243997675448490285704172176409180195971610090027404512677249520453737198206191966345442577792228901429030675474257722338877820867622646218216280912119277410010607161183046411837546648808896084428129028114707820026575466631451636923719083593974901120467529872171843152719397010025154708352026461893033713692885882618799576138076703996855575635106035527285865220965878344166611208393281038065386620000598096750304449278114880081749561042403782887756768680110401311689141561895561053285263783826863446281387993464137549578291589952660976426501456176735351684511483490751351332265367791123891771060333086601343247530849658915911377423500227659821866538953513615997405220332447459876077587716775975029153815697946245430660377105895108176219854367640799076850315033796937386258241959219768530754231121874389287840311314586253654723703222944760642478353521244343920575700547045263158976802832666666048072483243356318993996288704360179172816872360221469948807731000347558224617538307140038645730573221652707508341724952077518272841370481641904211097603870672878784117336117645258252300949200541561118933481444251569879525054888252146989936394694405697667329070006544851489181832913259402122605002826649983146770944346626527074998480115148038183661419269322412663168334414481327970796651713855409955197973748941890545735017215055930031476640845949997394341829214398228947480263940471695535048278957136199621907167488238828211337115320074005242268693682852514830185396388223446876154271032773334362116203349596416405675975750919403923730300759299094578721812899854026761839083505971857737345014699567773600750007965750605657201804573195523887771604032292461072414063002858769794989394454387211010498051886651518456026796039944896359243197037600036473527337204717445184617244490052284975343865540937858932828070906423570283741099634167589137908644813141151970608399018946869475857651841768838323820965977648033298526951356694274462917204703713244349420873428671373441313855803085572566367481213088181715884821033730742470576277849518708911975080472122974981399767169305821601496726858422023960333370544276780604415769803886563674612812009808429805563780926808837212488502945427444228329568565950132720447748580478003453831596871372922575126347032400037943798228581401345005199757844883821987812501223576339574875508027556481046414090911061958029503180251276155564930912548092177580784253614138527410169206010280091629489955330079201312474768358408059323498758207157944566528628422041655581536625531850223814237144943485720115096157217977450213350913543637354644872946140358741527287564291585375453834458699403210370641479899963963919303956861649347899561469908149650555468623462255604577626801551993753872838608781435596900805614082609511158861417187487096604999876284712719664271711484602281489742247991806832134098061530982293878023829589430938104317462073042519186360472706606562378180334354619898339198297246381945903077571712557210953383855711966949510426311106408927040984378707493241937033743164838657683966946026549976342951189338082066551724982147977249835478103607343554895285454355294525188181753140150502869733445422516438489806425790244327837775625986427121215311723599716483982717377406272948818880928193603341281192775778065725136290418531834336084823689911607070822106706358245283523617752451488249368278540783318234044911786988092169342837465487516894234496096553541941783768871782195983619049117669479637495233365281411442433944519814726440598651095722822672712859402422213135638134788231597886313459283678613940228832368262807738238058691963149707482079605276846360464090892358727002909110364930044121254135279580649484234029630230167450614304279145189522799315315706429519984181453442972195877734416098173497575444947298204274982146117013750561212489234440975055249961049188508661115716125807537687271649953423513814834175329766307961380514529379160955764381580188529190000638022331959423383877952046558075703938119122757230535071785233576219591718312201556683568686918305863456727808603721941605530659906379079774135500130771787635503041959299450681247438776543153361473107743562347626940176946202074842912269131384024907949737591674405148875959328409794697980818108845368931397643180716330127407717017102802428294531847183063084394856587913786555821887564943493093911695780151385923542522405452661882760699391708132446337550005009421582093627220704181261730789733600952961781789960017825955921482913275073802380630843490674550018318894851626833827811972234516490545925241018823901257336578849752718618039727262917493672951747702580230390238724715081415490526054508338308614002525426612553207954381112150433658794773782392465311617112278354317692686825585106775676687066631630080395479691108149499661770540067005152397810920584908949543530192087469033869185447431007110046866076359397396630896841646102071682885859361846734661003302379810929290694347497603767443933991572342104584257687470987571882269574868058795620509488305978224251958077642070578936316379950008019501945231941889490882465913446066305170921757610106695326038163012338725521818696144549002441807418959588923361662510350868356176714251684078208171862460152186058680394373031542014291061618993272000975151264640529036779407703948763444297416834717740473046917357613622000153808244977361573827352932700377229362700303402615357788534736161582931612090037958245207929040871244680003185935659193837663557971795057920076138099812027164340424676063646590657810852210052169330187270866407678046195117620121390553957849442621204735356348075208098761087505244748107860945999883305642053181176149678461827495958422944181764278103134650825666917388909206176708429156978059154895332650886816998246107761309088719520659646650278371447852904800019736478055239873733683300328657985699781754260611947020857339555376093842549899502094643012056933757361020864152540042926849137980194214564396201500799476341029378450155440457366196528801661682697326027607516604571979949719819488804220029807583227993281727286109067031257822577918292818834809317034271079446150155983865596128248211034128792563199217729672112646479946810145662835183513506499255343019217993791542951276638670445253125380570811353528995054718235705034080287800713701718325157065807123826132264148361339913168213325906321690611381358626996067672160559451970857857091414032350851895879284500770147651615976622063984736101782741936684560827413192122852949527917042552110932483550172980313058158258893934530832901788264382840376641815087730363709554625769293072809962321309261447417708746302316142365843835164231538931490938143945193113616721880949593664123594836650100189891967899255297430033038580301491393625309239625887065233626114010049239254633865669969714347567969328673021850041834687645565592592303290231245014085054215152301272366975773066873966092280116722341398421825904992388045039591157179745496112249510711721272140489768119384949966940377390569385532956765192731051142458319107098779176874272260169578357249227780012756459376984064687591028147126898339158229301178850924914167997922598069560549937722891284081479639103739504850896174265411192827576199259278694167880620316813641520811819714351182552221839618709093806224440817585401456118729760865602093967927069324725199082905831189619401585307664477573673155689850333975241142368931383994280571382513298513035995494699013250813542703142055559882792173247332573784901922443845327903511401430723237833820391581939391471826248930656281132115882869784376595299113376765317222262575762085642521149239103406801397474835454832824240369042131532235188975738844298965841150698549174507765343583652266049937733386140479507011855607575981208435485045264864119679699678896909385157584582341822962077573175202579333648542262756646082774133818070865111131793163219112261819653562780296384822128743977428212312589198260041716786634071297067112512414695347238894038376761810808465639676959551254572403767633618299307401534752878941579243069330997385065222102912163419755551750921230517006719859361087897887511143169462752898911202510476822626377805551363796595462920017757312295355015957187143830296259763343434968106338039186074228777382395434111322489300625860961322500142442023386550600522329888311877914625346904749262360810073578473182475788408979263509718038984280451764417290778808853216955867810462137814510106719697262191458294071809225187501081800628071215313819846177476159110348798154855964070311112515008392340868224940612760636283231704857119555438065455318425999326394267347598974068337729155574538446145356940272231776998092497065517546823862525019772145861410486603268469523491878089284568358709239556292407241656122532780331480737186099369982171520629120689668813483535966054533429129365212020565730714877873116742095230398402652216507759052509479773516609365688732980221191088391581604355241571084604779059863826478992946748424117694455402372466334392826701477425167651334917405457802682965876034589125770695269815901197042904223508436535958487739460270343559438896728672305878426550624454416297470692130302460794473158752058098334620312755640334679750013055613382068906337944929929105806118266523706942906045198287769915597311098156132100338911746915848312022641390601406808186639838971905311975802343106331973046894677841935509988756484729835387729378549266391447617210027562279695823573824280001546243200117273605488261625248206031216186187962286820893499014128072517450126618990164799754038566367538807427064983890877473883434490960432731653814467404805546385209392314801180894786310414739309363797209448014374744852295596251793345638302284554093327944841614161239477594012160944285350951608474839123149720464815607573462572021045338400164344891140942832601990397629421255274828235081511846064209164900958308676674528858397530594062240517365619333733115965689546244037738608814617871288401297042835400286093367279213623998918337140706136108031619254912961113007248930710110603626609818248946360864682630815725846683767779871643316328481270498593010745350297337238566686814688286573910075405669012392870987899823251211030236022461225518837193984709718185973182469398492044251547308298156107482798044237862748838772798462406121246362979262100989247204373393529963738223646979029664545510242484461915906997954422571446363628601886143672804482106995071416334954963651361768078410721746262150809798087055818843131628623087051386852412380488055856919417260139793456627198742172980742168112405728692366579123742028755318655151116752114663408659603955571520728737816978217865200996360382849148199907897276034176653699725677226167236517684996372598315501702104474728039842880365812033052263309254414962547766246262075557750038222903932435102311083512310591571280505237043806274721064977444344851787029239917519719372014479938898450253424733721913315799774053092340911189927880913643583195867191101700423812906976972789826619343228468675963054847196177422484334539914407452066914804604129282991211923808607336617317681839409381564477041611806461045832718040583774571400644467880815300694882825196043611181254233882423338391104653533127764121194680577452917062566177640700137174025809832627830152119345973221218733347240935086195572677175888487103571844879894352328649558974163445241560433702056449078122169920841047074392159657997657158789149848728769796695808540082955522198334835208115334081364031257370928840069308845768746926533106406310454090072490064536584543749026502932500996294625503532793967504189970131362775186309535551729173995508928108215947002321710201186071000346681173787797073018721163040663828584824646827364229462102908913009593101254581333690284841393320074668914827792980126649010658448585049267955323838456407747891347689708691328010528439380987749168374190768845039236894475864981955035248419803753913582633792051089405166365301745528576353459711334152719676915000922160751595440300116832036465945139268151509652005712034572072742762798636867393918446641788159031804098162344078375700674659717314482966220182152329766271031088677165737974912271409052619227861011269168890360155871467045659986330914482769727589274579020356781054249742638315203456087974094679858425261625434616790678995173591111362978633732599548601627007109012905880216656189369304512013100274750261464318054408335532775668676832503223791297737617709214842292900778448110086183811673198387601595188486009610581214853037117169758662703209814913551065617630640341998890650434305491401876137594582104311268617902083916412454911481260917560985585172472398997810601731433673713454260128358099916335366722929512131277582011605537065227541644966205416487812621267607438271782583611060933942274385629082204815033218311261526470399407031407186658924859418438543000007460450505916490847077011900983381977643290642218285214190368465608849511494244852662845393618701890835031916052209226358294303306489133064186854550314633917659616829433558453644180941952691102171595418190119931610540660331154365182944182801734345306716116952927624175148306161759515587619220280255526096745102656698608970037172494459570119770520417035896978119490604090233145906881391483724569119047214674515629938705439869235896998276236649476931841353182200393371503305845251261572439171835269713361820903419052486629601727137065126523657500012095941836541560892088407951898939424162581185395366510163958939746259848238637901959748525903908272848537946680496551988565507574431180394444937364137689656555656616042800836694110455907405518935188669165807196616051077016594192871837174166158754647235429569132442527725176398593150691338850615900158249281788303867050618973780983437006978596063808197061450195251478053378326041396281208530475006445805742524345005326329440499606575274780046233642753506592284486446964654072415296730262615841440668252974557314223483376005948642142168054609911835667481821454439810200271118400138420018070008037352130243540364947748115163482425410039263537607389127588980912558067671522062813629159616478069716780740392818546903493416614796447579132650474680590114165406750712156617977891738449676133984143039934767584646841945162155914778802789672950674652085527215592238217648461315576422870248715128789603609186158763862324742475695317599890359039426136261813249367548015890218677343265434923956981587052692167383326766833004241683829878500675578337872610449961553491084812001996008335721402874173354889848548543848546329032493716801147768725070052108477372825350840110830195503672421876778308233935912731368564327336826230476441397655906097291614205207950035238101982878736864660337253210746945992281751214344246152450336986677817400959263911418375177606768272711938926798064625938154603933277287159419195535950933883207221455162166629632662088758301567034045464938553723918761813781323210814529498720773059278656380798160316778637896888795169787885363049382956171553642780180772302505746040496147719992647798042808804987083406680003119408931732651928340070488035321150481147900116843420808448443273548760285500337703439007836785305372127227042221716426552984023732499145777244069282147641391002036846165924197861961269376269549479017527563146063494380826077462907914072531244907577040649891859998112591863076851754064359614808494717900179811811017591278383164842971702314956907068924211969978477194812932389702930482142630646492298833540320678979000008625603865474681129842372858761885451565237877559899961391512573095233257484277531882764060605416340774519615438292423924044323352437507815123539202080454053661200728096536504524461818592528558169698092769702369113274231095741238131698194117587422439616394632737106749295434499236942672299230028703142833000814169801935296586376287272223709788907023794493220684491039359226559405713886776261263815026234911160275290357406825290910158336691686533911630671824887596070838420771753013795361698245515396572546059446665090766232577273897689958244267104967093908784974804817769424858420243971127512816201740275495736411195194898919668217703981752885923686317119007542451022561976242995064463064544011821678478361828446958008014722788528367682278356537535292739792108193356991952071332923303315297782283091426177408325613275902863366999397310564349868995983904461893142097486398846204105639127615444576447662489501892337735986787568391810105676997014692064813722149213383463994887027353063612686196021480931543134691546999988464280114193224658228438057432185470126507261871200361898741769457059548785433909638641030318276899737926974292146063114492047382722706279227895959535959338134559198570026861120362360314873024222422003512504714067350299720656135352912137472793516260660913921718018126109533476070249821455611165449489377129792222458959417113311678199742878707516993115043112432346845992956388566370856207396476832847112202426014871965400558821906049398418204347512233670459898435222969805328233286488323266197387882257152428593384716733722466186577651612938212797632814427026850272977242529320614499355677859156958216825462518929398167132078127831115093741233025586333593161467463563157439016681934812540490894771482848935884898873735930120199182044572710925794120935251888009888481560052140815456563314157633531559014484689324183160047046592354173142487463803794548155939989629136231724131976134640781447719053862721911691495865571923186884279788486380731632229308311397752799873586366189392488679389911314011175587041979884148760800740926377924665931729220429090907774186208923038716025393013824432043520126969129476495342157526242448074917146563960814611877253714946939752778270412305238689301460318952330157052416831249513719956487442558892404270496709843459973202308653758601917307319242731972109272147192882279995413970030741276696749890069078729192987293404190385618519050685961554156794740806050819969587617562481003449932443650951149886964416989668301393518293795091412053009117669379438884329892704064082233656953005630540184025996581913078940569868975086611319729070651876097492150220301608828176958557610380193286172886811452242321876739941587152849767617681381794479895663494193655189086595988150069810624371479151913861338387627863045830845653662885127352404356956080292541563236692298078908492695170980363585213488593081857032182975549156343791276114593283679304738722253126140014531795497515258233101385195471856885909116008862958624922369087091350387172350523710518532344634193430645768521533318283340091187039376691345237844310310560477195686500431076884627303080044183266556630032855882671335660605931441986549740232166644088247762006220352638378225503100602048138444051075734446267363294675685179159659711641222738301374229437598935630454911258334193231666918232166748969973504223905081049709569579738277198153102767536717638631702289097543591056072777282540442743189269408028221378554722919915492324254394566777092558221863244692141726826648311246565292194256523229232635294475994742414519659280091059834159920698343194746087414448766202805536971414952300620696598126378564438815133026553839973351138033017654612575856997755460033681787901029050469619719502188875190932112001158266593257255865470047182192601203688375051999784175143757220081241555560396957302672226165770394804015211555174570063802935796699867100779008089583017251052993396479218118667859650660449146150418429584715166248716919863053787393226650188560880457468078742017868377546309892327875504783428442669250562449681282959663390236698009429007366102876786521058045116684799737312929736734174253845486862164447561588101791271596447555268590862233313117372858962556735348057795013457356457899322230496607827337015343239315921599430365489111737184693005292634423755641159636215246856889015440221387448283008069008702478993799811715080871444269293528407990154957443514170980783439811515069725106522111794076446574454227578274155540061509871852963878826983265225347997391382964059853328876218238532620232324877925833694651071771569533736938484941550055515306113860813453097878697899985340898287755554021498910889942216105192041482255122148357866731680583567622418823523809056717720115850000224368874237218727010665986010639095535755237371470498975007011735129282380974610930535557088325345411113543823386521841030871292600834957037356875580013795551011416157010875083164658168721721272554406448505634514068366841960619005312050677924876731052770404905280582767762197067311801126843950307656078008345991883227952758563055982071276827235415341018551069987754393237569965840324912118925788475541954842559175524161761097560146984500373219756362178766313505937777732567022977467842137708685416666184623881479448491201115679509027435903025725394582501007982665671925372087247543017018234704827469931224191965043953516602010491996693156953571516562484528133005754837884501195270720367762262889156599453918365820590925028894660603482695800442672028906550401399842867465101883208470141909808174786448965004975961423758537259057448914479886855635161304379227283832898043611594663402359082933869475497254820989170669283565890688135506164645084620692098022100577820752448118955206440303276300233550082887399827026062274025027126552255952665690830116660535167052382157634533941836916339929860590844670434184698956866299548582527107034469283044767464826921413731116591343549924475524683829853521494859600362556306030367485392076660464549869351015952501047854269018273318262283186435548727688634273241599414499245595974922162132054177558753746222354552409140995426388626269271056151551749256415049088053667270177371206738296597856233076277937867379295169011653735080184308777556497910699811238114072627127264912569480613158907037603833342433193504188787990946864797375578051085870523372092618318217278734881300188136311510512710496377698900647391787620000046784163474278993249402948607039672292505482762478652439877664210295741205403070843822958323306113299892461809391970190004785440351548600224440766584937195832756574704433587163347698721012925905033585900625982037056944829344998585767578724511775958993156255346002129731518568917120253310919421071154932624054101867230500309990236157292610425735239371002138321601850661331555059575110560665465841905261302010799756005516405883255500726407036373833144825335210736903243123067145513880777086117160969456796166950513283874988165318625783483897130649086285819601202733535538267972011139818427566319133067074747575212532876986896516979450770403640743666540859355821480291048084322913468158765536805755585225904987523209054273443573667116526130341870735111300174096890349614029556407114015516689622681797218836429449315534950056222698557647806084361465814015129170411708932128272109598456648661525261739980771149412592317573284535083599384361487914261795442499885004177453733564021081282437785659661352623294467991113694847310606065866706711953138479248053919551422147809309685893352535535554978022395625316993377637246984896534345585298218086732713818263214672669249386335823041047149935623088787553896463628670059537393289192421692336375463434716249193335226421385498238245093798007131228168102210017833669815728168813581065371881238971022476041089981286106996991572071368412736428411908333275027907754645650492980150123763883687062880365059397329656490568393107886658041458565596924280292491736293959644565921983584931076609984810050288382827637437201823242668055062367945738994731323087906562598808429521725202591549883547191111015777143825505905603305520438876387634572809321564153278917307322596742292556324252048220552095183335832852526662440254885495575214635961147930883485666224124562344063833075400626941993193042893876897501277246913393053420915642219072459129196332721339171753601463153279751901660876449574861098999065367640854345327411229306455114122887857084477319211597908340196807701615374237026339905700044246855906531955270340607487466789390215975055740910887341911010930783839236930006127736784195155700730060777003651485568281525098524615117679007702526765929893176687633681073396574204934506362876060657308771429249841708090227704056351695931643469502099739468962253443544684621379164314454274303516076247399545999972542656001937930401518985878097596211602489382808254547087854647996807232329400455483919944231693574434234008047451620688872908162212450910749258685079284463762358892305497104120263736910631722939318791763834922207179182805394902616620966729745657418205978295260657377973327843871386300311985953387295061436172925573522336987384031220745684532857185591800093567864933083022127431697998866225381784703855133426102480650552426918887136020242565454824676384098430903976781229378575488614656994501735780467333310256160619986752096258212891865162052147628733440487750892259590153783372558368687339696659950110295737851317441377689001052344860094351370521185417149287956234765744112822009364824451120437315280601218533612996994863766131069018840268956611959230389551762429588951301921613472194814102438771069515888079982769529807624736838537530855753727784112303736826462053276496578190484089494615408512772545328848376481385671014834143847111161473350233625042287876529514422645430770925299371083262364505353765571324621472904959413825073716187811190030524809937972450050242226834367046170341132234492473665699038225556715123862888711409186262034106536070862644830147218025832799090701604897002367153827126717132751484939861124556649119911683375898394641510457270191741108827424052723957451340805877605739334504827062136784032881564752051679845167889147638209513940321011970484323998304929458715716300812434872333909361789032913087745882561921399210214479053845658145494593084850096067680691658446056315825705410198311590168306786734385609296486213015123777508700254921134734571583721144301365035720337857506569434324700278565661215999907363606968892749068034876804207152555443722137488611724501187609779074777345101685697285629401892700192260294363207571940607484904901267425426963011462264863636355878839389672276492514198065348788501716021317626274134983037877170810851516244043586900642448605632341977923356072018883600444138355371170797886593749555337846193359414949072453482711344816479067526356425064969703967047122075137342538721991353033663900988844539347264816484503210931395300254866944612508049262134878903290111089622072660485860839758784646584318455536477061631086219370078827646760668565935517110489119312522827812684405567162440604474858337001065829217349191980982889136185913925542675701157342084064938926215147719963562286675447436246442768275067464390865954320293883423107362500829120399555363812879340088883242634482948553719405821559113226081910101662724875095115533705942491666127225361622781170779161000301475590603308620589215449811636397089996250735534797526793401392630688276383347332304578074302828507588963326677590093016860529442022597296439476358164124151185124830511409405063619297553635519302872350418178950081229473253429199222442313848059867736951345576475838440971238639394250593422973783378902467688227109641326284621820286524720539770823517536004573907389522606031719091101146592238931995630281705112658885738142895319156112145538625144048415206491560701571823867633331114509891662091139715877963886781174081645460339216043219950820566658869632814001029018776812233903546758915012555566638724769038451960159404218672708740525882895372478922708027329353444059058415612825857798219251911199598850593454371098520902400822677065599664860605597926750827731535825095535413024774984120922534860977703921471438426091894810378732697309874294461020091615863956833652750440955064417642097295200454183476758387982255778923534827801000029812366853572654207692497127906308569345159349291478864793841765356310384336653017627486668350466576153622105431418987002744280126275752632675612129089065448455360104012789081750229486441230717517972286881377772341046791181091941440584891367470669762791486131292848453917373463318690458553201064443408861480411129270615568310981942132185413580109615831950204519379194070458409264663456934518331324866049517377905456753441220445130676045638269245857384054094394557163284588987289620612520197935050839864836273862457948136331281552902489293156993295336299526250628495101205906850406894119678514123178347609527039032215889087594393849614619982130624831015368539678065443848323679396786699725084869807454385723699251897248468801067531751501594542692837192048525557516627177623334837632358452204595266957204995208420072312688901644701222257765476979934900831737517648805361062233392752838277422209144506751083414384037553896520406318883226546960480128835219187213268647127648880080070327822289223249918391242557733991680307398886058090463556677557359700885112018371602197656529871119089639771684737414116723115485173413144886610014857946328244525208748962381373370478127997769186141937267958991676565437992758015590699298737255642449535215473324895540855757499854969570807306556103960523446709185840134225213239647797670029201013835312130054539120122295635473630241451294333469559296670447285676633568976837597035439946599425269991816459303431076354160361011233768550191181874853205873825363004881079797012693321764725216244435343236482205121393294949210709844957706678293852614825341301665101703839898232744141601267982043094630613667601882281783853366994557202062826706759245622123036487220402620070947286054634553775461089622506085754645087836709380992192986616585963122672191185380582634124351402000446864671056684876861254077055722790025356659671817904681378948909669075282825872664112085458689104435155808149131416957634490191384258346526502005262311714931336865678733225748299223703286705956784201335071469079097707525227182657580024675199461099748646873700890768129246479973604762780808734735766583370570873758423725204930779482680222483739354156545330137244735325521397611357213780058132610414165619578075523946620263575857198527951326495076468780617302133249401515004243644201835890533216003093672886824486165411028177339729376424214884279719998448809350547671748111650477994065789743073219647563239806581721386386113117513079646444424578041514774518546780488617715790009425269252623917145435100856712754346280127307578592295190659394139823686757961594929999034451887465565182944714808443575996954641796531005378049927231190581426138179540130937511253984677923437690952871457865687317762198435663862294944163396579854422069142708563862473355227981358745356830052429701372787552732321748800801990318939201820712293935075267427545801629160156597402582854161141711306990565754749161517080315984803797144298457569807388161525622273595160666931270676329926522958019860202469592681006815445311982279180291411537531625902294128624165272962919234568452187201944342552115375400444101794692891642907324278014660078427251666917367395001777723481903502349415123806115684925195390291211553757901825567701611613290514245105289640541370564140995160773100457265088679437782033731708702559181927676664075790746858488805892822584411131648877266874612216182984689396089281233763475050855173304376758500579995569292423320746714303735144687635244084143494584308269693507166267270833131108416211040296615978920011526095072778433242057963005482532215399711740457515711057539348562300238315910267123276916232746511939932537336942347349624690823940814441606103126531051787810554235805169839446847682317397200592089872461418272631877830859730765714032806260060491926476848100676537732027113110929605977289039758406867528406698551127745434123063568098070373846299775501007930705597725355538435874757324493061124345717898024858658753004745372319392794777519801767552082124963438206137967056814052582324579548880522865979576992256076038147859014797607067152395469639266683564898394629432922310951508567724183412024186349195040216114104491341899005042446287081873515142960989466145214153574126573716835954127485286316471310821482172326968138577536999590109699314765801222751271508449010788373740812255199582688784566420631697919039085769503979170623079351858301194939687107383598182565259335210116460467492588382356829744012368567564754837380739531861525090818689069203939557641628716164445271560943279548422171789872275974804256835180024405442353997248320436805406448845142590840824468968624474416745794692860687727047904890365856334608464750323231285789847536239317553631793367072094024393284208955863575788296368715986761047870031325778064688118059356216625910586594692415700108185148894882009460769173981036044109106801532807991201254130784335385176317398757346554386350473030315746858049371412358577407729354749906087423128840633970383856305966999271184260665802375286072329833882314456112339129846030316044600256847040426623854545619158307560308636015550659350353699481008787505689700396775149233740909835486136892653062942736288062555439909373081523369224266244029754236278700292375404524587061698856543362566759537167008157791656496214140319751802711897150101275494470651860463299666124834753274709451110717693909092186451061732496917986048618996870927739129476741625119229522549624350585239528120437542590632338264787051977604628577155545732276371037038541838028470824838078462999169765806593168098170325828476080716521626443267402510225806484195094129182520380706096768132952428519810108720083743264885583382344584260759254119186210042921164699916824215582449986338552122001337055458714654849424157886547938598821273031695510749985119382886654746077170591247672594762044427448252655517554225661091729572055893187323098755394672645264435562713819789628243324269725458038935038681716459829224268359227826468759755476224062221286999515529627635763445075729123320644101697237910944241736940937889985492313339255905961485115030339797307050590138092020803752194035741044042534881761868071162085672417603941480002933530052623541485092991279585579897771271166825953729236179439417172288559750846054533712718403009053324734284759291278089850623541843399177007382619546463703906268984414192432639363234947816219421417366399309178322542668596384987673929350311337276220895417904606636729903096101828883415532667973358822522193949070476240514093158887496858915536799665532107102796527757134266574818573833450687362977348986429878105815367378126088798373933746048212133991455987356748520491117897385751298426300682476157672739876033805389553898211714557064123167120522409707948451480505920622725768700753990263686648200371198650857825494304705349638705273665146062297255086922098262144648521687635677537676292043948475301473417269589606245564059875585785032776757862853903455704110155535337587949613468039156545703269824399381671216339908609847956058954465908186716183723340974431866904677285657278044826370232769969405969791966091768931778705043874045719348228057852574595776753083371610398689505162706643109725844275923618236910202236181767049326821483089834797325126011805213594273453980547266021904516045858282376564707894994729124913467802244798280162808162492885529749168596801168933293520909393460910839937819707091892645769138280450197488546517060834238916775113773854662038614834912855879557174890956961405960488301337961829073247896233933121144140665258493928650773375349395908084154558346941569578773913629382694934236828510884681378918701867412271129212901818564491283352009815649223032836079472786601623421878946738804542817760977513172880792913802945209101279347718030872923246669865181079286580712287593998350115240967390036885250400234615415043956376477764030465154803242433051740744265581180808880411365873185865562495639260081134668640142024065262769935709440036008979857161134632653980983114370266734858579581953187440207451859248450609900158265400353826335260948146340117997270126495882065772902455090252125206195276414679837690889253459467250279716572136416340561829521905139351817145306283487691429478803759574898857104863905888222944791442052320097876446843066159113086652868663907603274001522957819640933661774735515148657322893656336326850691759253226860145082754896628681182326049304896277410958502118488447300458182811181470104661138326902622451487738437973191008071289525345263006659322779080686975363799843975343711773683828474233113380700777216694536439285521089294480405665469030654945612917037132964644313508030092062375933757185675223592489406741952779661150772202640186449412511257868539919209889426890141322448253508999921425999216347591818199953850043401081307432318298280832436781377208143541300386879243369890945661776888440475093251375736285890144551932463224505783612236391501020071185835941406558640611721643171472955362337249106934112498715750613563451872371448036057583187744674643896007764733856066896097668085978971260842450315437203059942411627568714752103806894557027589655498741933228160634736973970143544834155185140627548662819399556485945407372002813161201807614231506928582735747022090162013182074142247287077306118518628660200902922331203133213608214171102861585696533986447682823170401593082860526752822331099369786065958814657596191197829571154739833982242443589418421259781603768755090552363016166474267669877386553068693040145641992601501678067056915381110270564905067518148785512095929407249820265982425557521814267582429574837483831015532109380676282062739247569185382073949986110306542451296971823767943965496907844384236976201686257430500385935386293697174838817380584278444236517350938125028791962507622100133801715521147541086430117582955553815534575250685618695972048081655912068387028044655917899643489005470701988605735560840458311410218443357413357155662938434382682604360663089656590978598161655319452459504652194509365130638322058709381146158468199392757080040587019690235538377248864228906509961995578354784309419909304452442446684716925531700190105857240102048916898428106446391570369231497026822763790508221752217079114396853588449673162753201266399592103918787126490348629681349246947829090611137136378297219320724280853785573943330808111814349971781341972067714707645243235156491199401583924070844755836494690545455924595800324395452187297756772421240656536577761012758996477179631411612556106801488711329289997301791266718476687096580238055676082930062991232206402151724050749952733914127267646666031862115179560154647518157234751319483401016263711467806434351008512985887552450695302360661849531798450101799846538012067559320856780471971328963005885875003702874928969746820633557167579723647735661131366432954920790853040473805385348022761053503481822859083894570399630982950947724312242128632353911877764137032985937714167641003394895771324027482584387189958726732261744260020313308374658350527720072900985457229087096037844885509910060453451494555170426309197486710020406716415227264643482368073895878142927963066133983392269295609787010651553876159316418846364619416445551728151426788375031906110628858008630229304217485002283797643099063969705777184311413627456652478427696165353927368007578036353156389351421401248458374226826621107484055430846286490146417746492341135086942136368476891911737542884382629722074138091559928984017642566852042576441703549243405718019114081850112690532030761352852214818130521840122872408131411962493117424100900453250332306847341114328499607709874471001800130040526859223123198185008174463350331901613763836559372344916955229784364008737296446325243211473859693679647555841035861149022584736321672300399956678490081513853995808239312202353697394626612453109990098111959017931398399307406278836244618891422329848394082073916032132225784630959051961544150014341807489660902003970492107522980715482101227770294726384890063144434796149490805406724529185862016996285189887703768647628866118359816313470377527993797448970578131470338894239307784194424756800174970214730331285039514183392583100151878166382019157595192809757065747422996712557877038340483237068713383740653311284182576240540162938042759503583556188927954184497083799401562571145355894270867320594608140249373735757811234892750877399496283410407584321573841596230170158018997965373818141564110578043672201378575072782566813970466902529383274572303359232095994897074963275978715320465974148193743950133426964984868425058122501515552302788551539833170512596191425385845213192478100544013985548650700698013617854059682022334154025355052822616086687353012794201174622901488191317619853644469015884073216132541885669557885742555291786873440098630126271655251173769565301141817498583530315017564425783014077582159060528360633504802432288053497899644218559221878499275502741745522935236693689748783746459999456529208767296851479132417419164673248596046778491088439501342779902366465806509507965065716693531518527967198061200162565469295818047611288296141467148614797281095335676405020623045807414345501351418352860398824686270995921764717612691240275020922555469394634439071906016476909570887298992625545189342544156237813693452235749041031560730345740805077465839399002867928296130499028127629662853511324364450192165267720181901959889306947189228546570676457405746686579965491165482001179666458999751043887717399780908591252154595602900853012311087374604888473824852777070593409811362072230161549764524026615521104330475749477171826577005848064845830656092177127589153348244489998861618745331507766173448014647653263514530958171862127445367492950197473904854714223538651877253372419911534040447776669968046582740642749447509319050350394392554395636370582978831856884245934569035359505136714136312492155388353109028147956884726965411556012653953210283070337424901798962212977357202941153768157384287029952416290045086277390931750110228137102196389063218802841166986346265228444686758066475848247058871059625021436266704836728378905518007391110962259052967615670385509461828316292206949765446067361006459697865229229472519798036640443937795071692594839372916341196377318198805085110769484964261497916257542767483762247687150290454818796390013608051562320199461757002270952920991616775174277083663214956807063674105250119718300264856423449723286677576127263764596681465855825034935437857137916126235220651120435943705211923778985476709217319853700285060907190113659198143350013812361514482769368010976483606233363203923414225815000482589628794281115804423097784890726749096551809534860472625088451416405420495254139266028020163423438297991207686352806038223302012224924788564753873486168625305830745040578614385966811517698346739738972276323244812327709338924790480213044939748751588875423959515988741629240193863034415576611151159686517939258550195689493727141015455093297425425005981929512094904021414477250033759404930745536403086641368013856845338905170210840498279623021939371165011847949895262883081245939714924943290685612977111115847965600241763864784723254128647833599213665151305916084466362179876412760442596790818916960888391394301872001772543416555464809377050241574046116398000200685163444366825920792153689982186330794954555484178406198676122713232110193735239571400721769901483662859773675138788728414952915837263764287348375140103996783639974613804794862783407810442738798241124984182030850694115927321622233433285385439314113283726412770077952909818744343721448223582871056875268619591359820713885868087433012165641232978385264371145238660546948134215241513961004511742669211583422325848917304228539036480779927164575830631886829834143251541985749129938704240165521085519339242056152308341815527250786015649712954643944676929028803359322417749552524175702685481230104276206092413543514142536501181084904511773677560152805465445009536416000795867877355333042223904981307311964607076143993406290041057179501964227449611662086213043737188599335906425630092690778196655158146854430156553204890631997599355848812919206648438289353006499827278925232208848181422182943387398471941626494321811002032749749120012180575636393900541698681661317906568009791682472005574494696132221153900248073443043081468299976192858891106707506073907474529219229533647758834141527413012891097475650499575651508282228382994649608109228775645032843288136152169252050709188522206059119948120206249905905460540946151484886949056470777717402067631007853393636223610844547627610095763370076737617971445007158626951284968281081420808679490068378085345198600454479466450681616982600092111804601793761650361700554274534805225024715511742995932706834716666303048084487623649533902196171278949226507305813293393426957733818692506911812622522681195486142350694071034391105345398086541667336647247286341113432620095815560617646086617287431142849185045355105118853746376174521362637623053495270235358519128445293860499929993190986342926017396270320122171206312751072106782778622250086734683977313400229264614961001773129668585514100599563131827159696178210120667913559115689991538161818723617835250551843774634084192820570465440265332034357620836799023968090657499457279632078866736476725012083459446197600244353351642223454017986391810506236727657277297920216766098671393220002498407569199801615952455482256063529867070565855348935594158513028021608450580646380947167152884363070817933917430115761982647661866079451893668833523108208696527543772603269670922512146850520688321974384141196603522578098621078587987359928101918665618079636500612706744082021504981021300773062598699225853788813880830435420675431019059427508932231164081014509811868761965146709176483531473228765728438921419470066767125837249111055795120768639225648188328331884580452762416649911869906042143843267235506399029783620179137058623836811214592196685162307364380865969788358082811300971292968135499036636020035374154087765756022653679984110747039688130298220738837502505103288797495799087953886087395467329996533898668005160573089312789110425731760628349654011267395354190982813613041349329794406571822729469752683691293485332970300452125398772809070987381048922519823397081916360645744324975317693710319881145307000415216618880384992089523006878183579544267007552415363465916950989156943312871110882714881826231467416135145601052909564001533686200243085045721452133249263550556263878318662093445782489292013332009306654126551613649567894098567311842092370989131712648886509268068543202359539236369647895821458728316478813305286643660326406832818655616481851468007770398795094044656716474099004477226254467472692692009490336725066773468584382552310629572735971182005199215899225548685537326057046238884569433570559890089064772572409640146646257113747017250399873110545193520250442551588036817725756168165388582404419751183416154658930248468165664210942462499432260156753952115564910766196092467565442246920871133023575575714248825074269942172068241902090025653549219174066058366626112287593795284386980664525377377022260024539346036812299609852506187146072080775955987477713383281504919034075074986590677912821473354980902708695947477313339932542894010418666703093818285449912888235649086070137921004080550975723634296264097118823537878580042386577941060480761829207796496611563595017164097935562368250053788408448866159607400592668136408098932585817346950252130828736413091961655351129311572897078703218765269387659692271376127349037759865609863185642268115909657592866104796966150884842805618280172857128429198286085628507050309429268096259524802527905979589404686527363386015088153457510594047198119889624609103309872314118689146197194232036097408560930233629319266452758797292252870849216285764572394170121250895621076264676316138389878981773074525697495570488493575086511652551374474331553733321920244306401548748013246154613262053402346888947561308463848213763020972931207587098056174380733717876587732697469997389210128829922830548052537702538303927913776019878644318305840097730075652557690371712474377851490189138520303189144362264085824807573576558210807888979605535202841556285797314564137069062716705147358195151805372466558436739778090877394788722460451741366607987114412388452158216803850574525986410796037935847684521401332107749302300430846033101833758625297877184432981313823004864569689464557098796059085238383595953905796444395525554305521630081859021630396031463553684729569610594127099418629613696426971620657080002459863746497393988287606584126159148614455809428572997480098090551564977650868036600443742108821610680815623137686327582004239971010391965285649761626253814889543081709326711441782464198666446744075431785601100824873242233516674331933515151826444838761750041860803724542186848871830309584523607154018194870714296100029319779367773738170938818914939123555888249572685661334051021501712033295276165038252244319436249840851028219043418905337597346319107883625241019420332484450462328275749544984321409946261194022858017144402934923139483890852635422582513768112293546652519786559319524577621816195154529866551401704057726473466278577244880275840173995357697037530557754525937660562867617519155837629734419828897432787008840227169194890878878421604530986241954107261923932282224208028581474747422024538345272207541935405806274097955392352056549442105074194494873053696552142786535213952752470364883369294814416018641978478167631869047151479607735195958580886483776739834790794632706419570749931201858463662214164306579373322768646540365426359450622914923661212337580586314336238851119402166511993469131269092226612182120686356420516945828205819611101483668168903148426098843131639561241076090105310665036282455175119979352433144217984789659139486129065785687489837951191930433102067008561221557131969669373123236107049486505380694793824557191091620883556644922483195868607819630747713713184639158747416177258865963495800242556807580932207000394376683895314822172739175060240434427256369015848661671214888403135328948976772911321538684026372754608733260526801026280656538437755471767075703754462184982789093359706688554955228498284121611859049621949015264562178267874095661353744377956461997835886816305146452082133057251500131655456140935685658663510506721525377680228510097379541861808182652097965886346342700421939260480390653244087804391603776562999759647264664986557141611765134554575914627939137533740538419420809173547155483582331720098335889246537050961807580533252353665952783701588858444793491534143259704649448851795360461523412653622476422272282088593044508019533183186643792750034949138060287598048505196694660877823944121739242808754034097670417502529048775806252664021827131971196705864320762882871608644982385260546266363779772105290571602020689673327268626862461649300826953965441275057319871886989727877108800600757969602057690354911072045735245103233720183576771199615745337307263744940096728895407750063110687143021301267961756916050734898930723742902143628751497977518408338853834699270830698765399273637677398561889183094230536206568023633541754026344367585465243603199835560533119643516464972103719033721892058547286204895077635877813112168458617026101647224235712817641545979376900844541369623977323593948247018027385231987654805154038196537326356440944628199748413236594993785873895167361844708196618918133205205158461561227461565649772453064693786881440120005761738178824551089166387127926546111180658328124301542914769741683660147027785804363782013078532249729185729370917058361405094896553374156680773532310009092710645401241107265600484296108994581671470845555935910886327112209810285204757404849858119687516841297488231246709953438159207620694655811536465383937394054382898585299677321257678230362261360510182759973803684197850290218740147462296630123459128181291416588225329671637014377293584446017408170657198169617107276566516699287196071159976852349965711271763225794557317769903046646050006294741443828336031858998475603619072239495983841169427397558761107569004450501050625998618839434080490747505215983340778638256552196495375879466463866210217277554002517012475929618053701152581107340773395334849056185852203918369361303038145738129407851747101134097697026523084091630412949495404346411547610694826477090201420251724361103496525052371616416579945855693054119238598766845566529198962148821726119490306493071348805306477925427913594907090809968675088668206249280260841785800072406758919830166468773178195901423215952910290695025981128358331194256846198851789602289747559585222219610178497110764982774798555073726339703107529505473069706580828966585868311244054889760164304145325540019751410396645020199423152968956953404695476401004605102629187669803975707679821755622275353081804801590996252317304934932415790549820456339794813777410811120260344284552915724061640289823773208690515187628786102577022287707835511086759314787451694261710296355537120311478682141277211577477684462030236252707404788149089333906185233620728016162278567991534511841727085025509227172715828495957339404508888489879431764709060740065351670116409382967243616599883692098781533621241016457592115470548307901286845238002024111670260118996758157438139383369078064920196107602725162735915565062854877950109568837465001910067824315444884784783181576028892465894679245857002449826731318129453768419194374476914724285707610436329018749165773660849616240421439409789014013317223557367961719342672758989235371710893932478291946833625182581935022392126842036517361763757405223697499274750080886261495899874703632573449856831268048323557682616687975189425725373089278046236532904195103989040520744353713133873806448601372228979881081457836018043909477511417999975814840243919676916277102530129270617683625822063763716252588747187709034928485231408843800402916120424160378484029559594787036834869165646114402159617990584100478811656440877529079068427611706019379347879920391719760786649518193588816960639471995404745871799305552213001214894787496161400119560615756762111109174130305423252201379042907159474381973711811688379604171416461169562757182423093382959040771071771191387144431756891373462067856807104815988314527739193339482406540789182265485299356357684517082913108945501059772648394592188991368962256553300028559989897042630077988590431488203041583791801028732947950302991481654531311103696455872407083587318466684657328371663301442322991693881721394002798722657183453522705957792648396461496164584722504719564003018439007260848858438670287537569192220958672714472759592148199963103637451995009715596356304658124904265180866990079095249136643403976127781335674829876743703486810351692164581029647898590155069607306618956371642572319492229627282333418209610139754599606438942966507815989974265747338582525229439443546513784940005609673632994382721964671593443742472186548174500715035659204741219516798992795943293851305986874873464851082634641911868588382660860443720451545042693581865589815673483545314169826288615293299886144109205987381512426928817047096910403414389648054416980820837187078743533295121076053242050566792404639961652545686754280515742808647777277038018258355229534139679898119572591292979220227612712038061800512157395068193678852009601980460461282469991350506676739961275056790795817655470218627838302956208650865543093043979562389384465043115733902110013574224939434554353260637820252500054041214670016191888788928491236495239444011319092957221307695869515238333885675965472914415612632336391525316507951018103147077649192856311309136052962898017870731802427981349398312565963968123019192223507477296386560803081411139428881183202875747826442583456594683116498619499755920338882064593967171049527180838883394275320809478378585933481449529369608380377039562222817240313771700719915985317535832071126513810126767930654116771886216440730701440677777321761514555117002788598659493782689975847058797567181964202176160614032512657946178241103396122675456276378057771212780615104514341746086564950356981927326227589103746274116379848756586275494906543037198135627563095662528195352162859573388413440908434627432370023060087442329848646852120184596641031638079585474719466679648015306303651338048888404779887528923942416381705547465158697862269475667870178521986280916491323053967642688153991113539436842844677531569277494394375596210954238609802667412185052140475650076874515282204973973390366722801567166094589053981666962531660984212081820948451434717456529263846729933728871051103837652624452144900974248060364574782326075401981393343750534829445285044407094358296931129824654820033371637398280068694805259217772810200977341811327433659313756361482283164604442542515499728147090998833747240491314149668433503539442500425815237418167041869226661100260259222140157572190171845440179055237546791070838395352137232894466327985163270028263203930724136933040654013784423559563015673682951534119627191304627570267372185842712568290547459599978431840741988827576131354900678045463056400001827895316776227416181949946231757630635115636985101907134974657893500469961983917171125032040533713349269273312410589944706552328598066596901551509084676266293460848616839102399225729731621261845769724215244616160400825032025640455310833809080470382823582479728042858937530792216984123522786738702770674474110475095288371943753874854643535430647786142575228014428982726089657261264644919060575429310283325150561416801158159319912304798670426414927350485570828532484997808603883096350367495763336581077076673412811726981644036454930934723610414627823699636283139626619072616477069316227553450380803154008700933466668128377938471869539799585864228050351177319449191279750470347432507967168734668754373310179614333963973455192985858947265637412403516625498762278427369188431742725091365781290433225805998252656156538833773785238959195072671126808507852715149783262550672172186403299433315185639283009750363954135546064944830453182300385065988292828222201724985377720202466433349358484435499910931706096339773534966260815423420259638134718277293127495419247645098448792525300727181563621669688480732678151390140194987818754874127427730619526127910051166030523546975657990065533968424373997301343880528364869919831479941135836614043406711854038517346330432411095614708862962350627889850520914980538905147356314233766505941940912548932068346012340833971554938993012057247170169253078716448408271950286864065656338745749565001756596364575019154595227553287422150975485004512584314406136239623966587954774697338788305520607798194205901142308579754237160408690626263942537967063921037022422391876925570068813986161319390500731442473501957192611298163642922379264976399298285487112761210245002745125814567769932252288911669260524015902562437034497701319469714699688498593240842069312549692533504792136026868573963751954207617495896484801101173581580681777835000728773826566146840099082383613667106608550103532048593990544212961441535164555876946721037010392052796676055693675392542409769563429922092131704223428736094188703882660530402241620332319650365961363081901360163067454454355243534260326652374195981811821136931134261526552595005134791905887900302917413791234047857427960843617965409551056446379170627337185666711223778286861495762645444234529883740177658289067138728474863257655305927169349247710986029267703944267145863693324377143739604505884962592973443032234763854862732438158770589375658096914915474142337648399238706084564848236366157429117705406175032268152266453000891688685683331387944469842603374236228167300279074884871258537312559260477024770670402181285386858916903754139601983447734155212404973359962380598219146181184756062598816698293808736162516661753593486842763131617846954270806467334912949208020771732256939671107452069408977933096904248922376242538305643563905813004432738624627168408667780643916763457363186780991111094736801351857367709025072293377182950097601343605689112603881340837155658209523063624055677260219341546370920729575359331676797348019912473561513325505758733914894726182419725030191689196010886020456197706387836633364332326646857697407561111770874724093088590726914682178344728361928335175949872711043456581887646636679960083230067852601855250086427446893781248783309863998399922419523976050686628008836314063273632506104748031163664234890608438401779358900243577941976526204344609493600110558991555151266840558332854143487222643058324203094871233087653878012154069162458829149301075007068460966407483490722621438877320288162216026417680451292106999236746219628244765561127253005538082058291262637662906947352639180682470824832961863377196711668979493415189888502878475773800441989300078249769209449732281617397299912515982877906752643034917801034848837110317523720233497137165218865646719701244668260326967035361244193893064651441588786217094048089043894900043973705620139541268879826972018386735038539740054450487893740158772532683965375376560985587070143449184227734108988363256162028213343913232814831384237308894044790191328853192037138956241060645641195391091903473212414380000277843548259391948115171983892775417706699569186027774226440768427361799461064334373692909120310037145769401471421772981413107996632274520365797004094755544741067040566751139067463953585821015999658201604204963166411256579052516539364454754494355307069963068644467581687890141223412753309264816741176511019080492353141573385117154278721591858864460323481373114772256041758123182936780800592795067339885121150094378792886223904790845134710060562254635807794624852205617663279329040003853056757113961073771680496574481411968950346916976064869477505360564274601555054736219772598673365870687922974195276519083197331596086671666671094718738427337925250807729492109735131294269478807470999139884270797766429353090921004597320727902753463189165985440007068669968024276547348589280140818396805753763446163309373517584427293969787807127915332690972036521418638665316349562633215709847583519310499094550730888451294069707555101449048674831435982751069683589846902456752700392153381562441517833743673600692765087496614420700806693887003872109381721293306001697204900852926564678005910668935491130293844831126856599069290850522218225543802530250048368379509779779040047962240333008873700242382145663479659695447759955024619815390739944216681978500620085331795530747856842744803731327349665984816955580294671050374211918456999326558531439246461699627169937117776382899000494879237777952357555101217171413822469894503571148449751721929623288042649716514135295803586242591631199107965965919033100476530273281885103851853419811918462978707732854390048565388107682086014095783159751616613594659325547953630587627435995883594981078894242448477326252223547030121365185462664756678611569902678781104360655789429942696141073074569650636912948704255721992724517491555107150915231330332158309472571203515626403276442600506137284330191061105662590278077985784676813107458547467129222464976402805248502565447372997215783126607194796232551345289064690710202631028790536880430085372200856519121938700303650177140124330179038308573929871030763197137848924662135901493604529620395335349848842468257029889717995578930288664611353790158746327457919984398783059242513880393416568814483706316353188275966308761379623562396853073779494747543511395646129708718510952122733218451479179969284270586470411880112985913035193293995543623319639806107901031101958468122532303335982266465905588633047136148184206155232083466033184874511197875860413443126353071687514460684980808507072949015019428111984319676438110775365849487343061135022019404039848683130490983853315292509628534138450410306434541518361045103009586020621343539330872134169464227109741388132560638504101766967631340221556043228717519218201093114448697523305722598689691549786481209750723149099892504898451985589721039688493231207189694309291464580426724199472588168094092367528489483690253979720911637765608585222847708516037606151924692810461944400245121204062161416286112089138176459761840433681367545936483747405460886132685304540889947719383536728626255249764017426908746408307110494240280785837185327608031468605785803076529868746519902069767592329560872625456430890996214028518129289608497362025260419404573059017678395560390482020276809162467905134910648250782168600033334357058189797005570109561482966055624220971294312274599095580695858385943100478970523944295728867817898996233311977916388401209400228770366710595102329630043681683589110407705302552333186903075173915100260991103471644363690942115462614665402201439847491187626463900644938353536394647638280053373946760258077649854036663742215234159683996752408787250920600295157856313635261278725841826835676047518423512763974916216781143345860720252428355896284970456564546179931478516270695567057913593734763921873847494627103099513789580083417850467858534493444923555665584922103853707435445904714867554083047693892469965248645472529134017554495664194437519927155937925761763583591028555732924718330543832628497431277888658576919022952220830641157822990332055863239797071236965791108567252044807620982052454914559652155101307531624177861007444208185528274273742989715989119806152263033619765788375243581338556690795558459458154713579286647040736348543781388094566918147903669482855917702464588190100655686327594086730445939148399193085219370502001990236480248066286962686534520261988221761579997724968814492330148784615493579439084604740385762600089402050943237861304355349203671154008170890646010591864933702279100344021837036499232706794599150415322286161107486467856990960504140629631763864156578113432615855138674831879665870631668093316253737716980689682300740846465313540169122820787386567263366012680265338626778640112605069315576217295772590147989858798042738006637153296726201593450746871233366147009015150550170790265247225862648765012634458358904178416675310530656269563410028370366827109462393903584176505375516155111310936477950772221177310953610662034166338023214424400852923996855614201009509657917111549848635182264008221050255992495632481276759897033746860533900088758009196586944737669628744266831481264673830902231093914498253797552263231773148288878821795682386277447833580021732449939060158093120777452202686043463681549241285295004951115946517929310011632024312389175184527188896526542583641025757996577903603679494785659011296634710313809701329918898040248042236002037400724563839967197935422030947151234548230393054238713383811137932488950470528578001379888789339672539782192075104452722219074136865549082555448917114589013519226707234150594750979778188680050008267835376284415753222176088668311756931142200716640692840786645559872934314563778242434044430710725965561564271700996332302222515316060162582863600203398468958522015019090190773593390014955419589648283179908911126069106310939128764643815712774748522887961723415699871863739165310974064450777849120289202820556230745391550461547764603649002227395520194706393599331321001327361455385555134551439948657854043367486755161628732780749722809265700140634421275955780398496479559387290209104422520844867668833091826562272057829632401460821247429158307096701631572914898899031614422539376584820652930142699978370570210795133070500707200401164359650635355161715155098714343400985006188731488563984850171378225890760832239740175906439203320189188930768000373817037969733929176278232859078303735059650696853958839439011949409665956648111313363586870589647224377203947043271025327266752985407312851213585182754674201676714939090245581901535602496827802770265999993074428511929419092064254816504326447716538335799111508781819998326339250063949739873507049012255872728748296294638282113699726305098183941760120567129358739680242983859808789240835993272869296322042883704993366497865485858197976887575273616534099674482849800797085641585501719057808061854569424857824767548307602182847166960478672655820753299818733291581945369028457215397833240234575701058867006518546777616066039945587892611857773745915722173845532253382558059066946019619088610193530477805829317785981798598840907923513191451173786939103837607177651120593347974134912301363251985504441771983922162012939334370631966563459530069918540808432499795600746063181875031995903933893483603773068369820058831875434125867531934049902328903738096909054940043151894186449192860421372487920815619261112598196024933447328019920047865219925733256406696582318680048317132154027799130016072404005695850740907242952739491238681689386941040606041222613308517722413260829354806078922953724962259922074503696244761531607817100255080481660042601255993451984147991437322874583779504284085394319889424998755781529936468977166449339108675150290452005351930158845077412449658311341895965964653054529660089393220351170467380433857972166361646669018326108857270341588758373840773218309358277378438301533686171691613629207601191810739190505407432042685668340845888267357412122639936174142686848909669908060310672659662338480058379588002295504185262027577139175368113684743090322494697586953671106643502964145395087403417448092633384962344529539276549465610140517131122163587532703719949220752231401290226413623681940105717633347405472474300294055198261656998819033063383420248081848637538427868464432461798439430544308661953978066656645493209973690360129423342217009091381112941188690698258618404392704960205737982210910122573118211629444537801272058210209466335988433574558923089315294618512911276088200427673932363155823787245866857176245782230491462390538944526336455877075384972294236490283742626595119919706650051557310429719305462894565681442245689024091838039950129077766789865744744902646731272765070435936685893376969961732134556683366335185801159856727095102469121426117309025451979461215848460841905688701816780671078294763957684964443821736228921230786094529214531343060237423935056784828703569544276016790405450283475316733310537202248107674712852384727234335066539359124676847911903376518669211446324006569608971576060755078317628449086185260467080580058838583344960244191716076124055141803697204635699895055910241501728508381706587060194360065053291921882605954146983357477710021656285104793070328527213515281100579968581558058143675302425385609343575951594903576487796610046459492492273006728348252659894055241719037711025536847886137692598234103671436979842224502073155207953287259184163112559257655678663451467910667773811621838805108841539449923166708618937384569923478276453958004198025432701820146372294055549226925593292196117961232194833954314491279597614410380531696987951367830837038566859422156025957212113959989644888018035757258755656250725908170051055676301327386276483713674508856662936127204884833710521685871186356489486680189704775696837893339547097943477651023639615614159057838313463031229479119470944874799860535913700713020265337300322369118149551639476847007041951642746012039507162452039774901104838772577945827118308363448572543345116261678270742683597448229112807052161447166425344415685306351130997638935295788626573882103978938433663571874972665061498311924309444659328836245820674730560041140046303018071925998146269437165417617512156844638279061309238862524077016423548144116277689068707193801418177445348189613353525552760554354011937770440464201098166533627633093525785616884005271723961600977935654566373936974188775548322258288266775147178194008813195710170562437528963175476826753456552056920912786352319887790553245032380976067801621829403432276173126562290734056107074588002810937410357443823072908305324193402881719103561928151690870040447167063585032009669716018839151131980307332296749741411298350227502266776514285207892455229001552179247316129017222264395036369601510612681184614661714727325463609602969861418398868127720945997532856748071350748529311178977525421046118167521177569844847512807769716660062145634560146648173705198862592340077618281764910646913382719381216498599213912259617439564278111035274964502622914363125311883457075663210056956909000929556711894909881988418188806809643485405714887892541969924049441651065227294972010351371156153690594751856409793779075305612007271411665325406359360814578400565018922175783733216967624248632491122530883603131130930706260364418213970138960522748589828419678815597965734799114695140147692905924540257958824701235637471435580793821298457716575434063630240174033967704787747018733312537905595881927334959044533090433728240391079900494719958657628042461499350144133708458063222322737792773102555378258619919361167802226179702262115272399421651719827046071766615339485581657604287367727923226911900887787462287871850503207094200367796122892101719767009332615294945991826249803482255893003652879036892313860635326643316353849752968578869334617510617966167530635086914919557918353660250192844258133990546398469150324176083536118059874019216869453221543507696239999869197347727030275001535034837610451401692821206474210050760323887357793756617435361042529853037173817873098988796798840399260846107713423400170349529420353908323190106544022772031025510659341679940122599280728488550376394605283154484539857777653383596819308912233268358211421395451166907134385568009627680426525613658780692452026839291530889150271307907472752134089690542983307309790989395951991299623693803238648496131167889536185253571240295754095958720093328482744318221831477115379422267961925211766990352581373274725315216421278310325000684296779447613650090371631198978254457862200920380210055678707691027742142346325872851622643830454690596534614569486063944951630142267555427666948349894868789660889109706371242199820412818346626937200997718556118003453528820173075448083843227591512116975830738742344850211806388882015856007463052505062870428297874779716580314357564445525648257110396802340828437402379340268949390354604204149527844673572402941542808888565070675232340512427608337013559213895186943159108167462283337197348128046592319224589755757073838353233102056576274574324330441667938852577267755186926193455867983363783347137710306275915972317844391035181181356440340216507201505126631908989716323829787847462589713335136916416147351777500459324265268566875043466377058911788384066467508390207189613312094086956918019743220390209680614754265213370030415356115842061345255828570264048564236458320981180052154164622842280344209175286280977276143446595495031694790587497164832246183570782641185402579198756132393062115855375850352779546567059080877676957313410023213356199084659454521464915154020825077634017314021183007483704475501737212057718410567150713756389150573861018798564149645000351142654790257399448379371351821401363538356037922889315010618790660337475708544662480876853954793367793567612281986829248942227552408528707851307987555228055150439781662426080009205782875261547035533047462778114741306453948592399121390778249763674881344014138755039919196550393420997442212712994282793158388231515619873753428106739111824353440321562947088534159796656613606450717436087396154060688177113197864806960131850084086326676224637610744658644662066944438845800473936578984361864157344276824130960721721417053615295474103508284607216849349174217430554902079235379144326365635746197084186358189674000814790085928933096671573265806229021027414825365167090024649538107654419770879121201209949342858600603046478883650400679621515532218010099836282831255545918867873487079253309375610556772570247002275844491498588965281081929600861786186208992820032075548929531323890644118178410220866181117409666983568688768417125603192663841860122175768290169476380130187868080065748287792644315280956811953579859517821285762480191960338220502699472248156415234047536912469826809625922717879878126417441861616976382230276804692535311167601631937245426792935076146143162543940550895023474212578231337526918329555373521236955417873203501139073067690525214072813464131186221528221417155591812408970369982565947134247884826415859812628899875489248758530012249866701066032206453262045539805990473168743106726316826764562661632233241952348916081615937704512868490938676468471535124835802927469458366598062040774017014880099482751548492125176389063442453403458183732383812824775506798052797897965585400058381067847471996226080911947884421173465741363646094585611159863617504988167544747863727973397313609823513699129976325770134234622477637816115863861239669263141441257173527610083142165197358508718447898123228482119927365340805719469617971011311969918840345130243442187453950822521323662402131639259234483590224462454717984093345179652455013882110403368169112992684617982323585556441615672831119777919220511025251938067322849095832326422720595904630838022803059289562128762803727950900338995443264117659969626707760456793998957162144249467591844552607032842004993015606213061485709142431169518224748996736028195349223137401980611523097481955151895229511109536947198541168265979226297956514968063746101709031216967948915268833579333127733087512020053527345999080974193768538735179475034307746298938094637580855795572451046831788429029091730065366562932887888607022665873335385281900434186795597899964290364410686942326643152208431339313616608382132216272090557379542116938834283458599863905474598145149204327726545722284736565461614403338290656620436156509795503701075699576652214660033376394201402848475145206740876803569468754739604762523415379157382041951076209509869377191655470188841626981347479280018035336947465708992505257083871639150782013576833991188523990958266658407725071396459401119662090728347906756448938913449373519631649560183246619783957368579460696652760988613484878055312031139170649506476124624884694954589419407310181940007725422314210305368899346946311945594753600283557704766930520424019557624184286403194067714751550986464169276812963883067457853673606876808181793791152470172514624574835578534941614641717276150249397910046072191559783407447829101810369775208223167632714238929870453841260589097263352980042743947606867535664578063757457775011582926245874447828087112042088220552692421229638103790076401905006678403587638331662690094456529637622849506167890945310676939287594232059012872322255453466375382078863790377866208237494736204788721487789463272040361296347423642890876541655000156123588385809210320084293793818719267806517614824847146497191018519788634620909393614673858310358825410716134634262574443994464483811096701025404225392917880742842609266876743755915948447613014189708923767767428353605664576153657237036062464248726957892872836684340171920614262569731128438880747061619129064321279367948095083253427639520841425176246996822678052333222886441702671083201179823368904355415255942852815954445204598991015973694460596237697876622170836832513599020855802427105087882276750193476500747995338005515801578753683323355650420141727792937989529835387012270240471860627090991972949978201683432283264333948048008982047585809485516497404080709147899168727874522627085633621022400956386946242801498965604355020874342932279911061758892871063637976560689762404596042776845495138198221464305048558592345952764984796211122151798178606728062048246645582608076090045946256114967316778311697357767309947061995378844036461348468330312147510300159209741258171722394761075671966425002844379387814349245003350568278167601716528615315982025145344585526185838954040247851731634285695910666234791602690062288734740506862166566831187848442065064863437697741195881379188765927207021394968042723166691044843570803577654863247733827146258295815948641699330453268914482870788234342663478792961397641312735107299301588534719128194077957980163316808696553275693861982848983371902492353968093448663964124163484439764901620754891067407533756868285591662784848711703656843077170843480518212645437677472968775570589845547881769455162066197501548656309991196835951230116736952727606585718934582815484828918107492844342739320405611215643938064106266712790551316443649937680542182989467949663380543772836899913464647180826407667403527234706554333288619677811863527575480143323352379962947640541866268914615510729274524064062048603991319927670957522914030149636006172783036641775381245055779319883591634798757093002876180166756339823509703136544433977003514815233799651342362289204237916883712929329665310906929105936336754893685946906513011410055245992143802713725950484296899122104455321451758365736135164292510611407634237751823310316283127145848262229715852590344461023458852575308489483685240291568285137086479287752984948148995070224784114136359870663572140413269018770850367337789899163463447416036784657145990523123346744027654596597659064490103735131707622523621563690935003511485890207543590973351009772194601441716452298787953154480180978802348215452134026804921021097022656073176576174223704543844960988992762548905832978470702210749740615427964200529540540154628958420978039802911669356698286463476925797978760462920354474629254672428274747975714856119110946691639973702944226608741888239496969621446850482383927570298848118993842702335118192244358405034881210321628114300606398226195879742650953826672825612531624796127009337686805505502061664705844663204099391756097954243678047893195634558214489512778065327995147688529036999302978549668392689981820197985916307972050524599452788142354618563161384789128008324288995650272675936812733412759929709184197606839614480634898438546084864606400216925756932737682724291131939173286531350027457980409447978148260588478458818773076564877868069469219755178999150188191463001490472509112199207417278961718214551957837426931683903647290210654763073177281057470821173892675636058316266285183517217629233998493372254259046640627075696608180432486209599221172848389381585205136870309989655543241538490329718276085300580739410871060589706498024481165540973927149998448058291181786054061345756822306956903989128707864719741165597900170176642160705614602981866810703212993943534658503630514643616726492475587396485463843184519173836016877528472307724137977286839771847007443242686539789941284920929704616045656148170456995291696104609117214794896930289372276698026468527123668357073964634634470851157825917673272700921092182697879464705858852407253521378211719558802486372728695727390042194684523420044527652274892862313143545344875405909159336070592049771126096473530183393004761562481864514322368895944141760720064939061096764494397560159820486477655888041179564556853021767086299340283697577944343865947936857976093850605349128461875906797871522224090150685893630580501373833900521813676123111128868013892732557647358111189527991641559671900407883320024968603659335067003012089126994030035321865124326488136004452824398464061048994762813057078443826268917956237837438752181291765787435497032306961397799018219831814794023361554773273457233272028538867572497010073730183609773401650965424422262803446727394029338695010943578044124009742055921319607642097925825696574783272347189896224144249268374517970929091978849256679565440553165924571406212903408091804746554410666620569214590586845031624970417589049891013389929473173735671082445996428816227053949294206113011518472721056108646281437153072432144089429065145070883671443001705450406372130816792852146689826673791061020334564038717304292432967221151256050795707898835210753603092711975433720889940031788224320702683805635641491215399884216386177132620317869502041564311808167973471914401569964845208968671947557808602853561366914496618828832601570126708770672975973346737719760272081123220065643357661745233811453816313079317701468779214268957642682073472127133407334870107932298691660208477995142070940247514796172216746556660252771443440124020577598071469376682347244106829447220565875880343680462498044607530077234516559611216918387759546102741979454337594889682590355398329821177746531660065165663033276688036682077753162311204463444839705420756958376180375512578487100553428713114581624962205516829620821049858861331719060586720872240738345436667695502414971928814823502911251564535654260189993367736465015801301379789984703299342707403393642489198563885138857257266196438607071284350926291602142781511063715532595924187076195838578052685296013378520680354603876085484138090252906103307035901593801115311829925721285137734132997830585342729608208473684056997823843205063971981935969501819225827898693924180787735776395767259296017223060434666231824301860847625539319756865663856408204045468434818856791433016248022044135842784541092731016014188565474845591081756164248108449059058811671529044921967001526580627769745608028276343070397448249665197454949770383689769774468170154474608705891184383565035572811159837124514134305212773938436341940187058436487467166759535830655765668572958720331483713772256510156971647507940525129035415871017089098770462241864779737415818589516449285158223138862359769748783148136360397166111510488971933677990012312616829410223550506157310144297061988122530108903015046710246746662444271041929042963640083340582122593771014990725960564278520207943347296792592095564589987674803812988412593533299491507918226984533575051040670152169322105012710543318891271036813057766100495169487491941181086948227671725119082527806144133051054529801367266711132607549895500347554162791859631325770939891946006604687152625392705693193316148480476879069030121058749121926460395033765342560506513615245953688179112851853567118657614447206804517288635746499919050871266685785681492216777417701348491850514772910303954723218871212528744377229347737555814828298501766089774926023782866655932831539518709955993047042044820482468954298981651362986812607167302316604231419371268775086809421480968952557841449970983882567101951568917526149330688821981046632766544410658193298758398817903532811865027783962284446432493115536843658356936448950978932846201052834140961101257239088008530851072699041207560087538402106458237686168547405955371790398881487894177541902458453116754989500974685903661851494327483647784906779402812977928583949519197650385172456942980459534536163614335114412674291298246878382514991770666236310426287376005265092789733328410568266852371963015060620758756111746497921882089513524353166128705603593665913007416919834053261084099668629024969603060988289074834089657827821313816424963997976904374546707593105978655107142865479224995491087987849545284595195600866497071237199368787409860324277823120124713112197929670171950435061442603435362647810303203422689220100623468851629560739556608261433743911647656761762296634360222986575595495719756590584746533510659509904794233021595224424800791772482241070438743732899752109082511754598739941792308197682708711974208384708251398501786035642114979030293626967266850499405754489267710258848252443243295913289266562075239687132437009190761676143563739063877099803897304018874320398392685945482366156463467706899103243701112543771100267556695721742701869893452083308606888384523707728684793316016639625039283182967425035593160239802646644300821297493946084439460566879099325337856890765001812056035342578604231917585053904993486884335428916829909358766455182028814657546605320974853650914294916765313069498130270867491541938268469355866697484859918518874403700573383603421123812909890038560598951757187277016624269394043337199662720779453987800565636903873948543753312021459882161266967901917364809255314396722514277007288928606377985167531188003650806596180627678227432030071082426576002715935571294495288496531930766155040846612374953359884522433645992069213580680758030154860356059108614377252223432637205544499131108475990194045134056860523248517752926593800397221215664504701823078933366942078446904683650782363822072804798561171179670182522185654294019733319704908367724285799097867959193930337936945085209675001000877258702180826267652911843989098864510198628631912338055028707047356409812013483164172926199796152039203401169233899540585245161365620203799701519034458852830012208275052957554347804702009546035826789127606986396010822988422351494708267859517746754582944607305817006283825107396359406415639365664401372964034535240215552717122991254198366204439856118288960718602734475531698055035762581951857981707557208050707566877365893695702370891289926627562866327503690508821815760213908079830697907268824326120872903226098734884489786575142063288570366260754914643461334076370563863842486143377425217289343877279752592313624667378755406976215777566926333769407063031637112789210712373815920981848111653575226010636708454781708272172892767653241889094541096231429128992685957910679920621798777847107740597482923294478491376638507078414973136592640054765187669421792390190780083017522666327347899112620839134039150228942742835080887849787368750963897119032012032394440782573850319287375481053606456450835612236460283630336101644486911324675725507332805407052613145411514993887619560194564922708261698954243763363386526612382304714974020770956613993122519523544047666876959129321592638848103527240276073037839998886295133052563321778138519443694170001425850295112055545352403419334019078259102808119888072347577996891471796945872824948549611809274428576802522197775905330367998992207391025976002903798553053147085021911249326564320412552323549068500307840904526145960090195692331271523273409840587018820596550865173244141676367698523199239202475198791324833411069701351130684094932764748678195818171990161175635154105749078788310604679247830850229148473863838836860559278572366558648355528749709049699574138195333241418032535549638220862161713635042837710246270648773644084799372238812871911266739574673307233564714967235042442162551896712507963599358890259339582356803050069197655948933694312936035546466158321665054628686097310514996165055020618007826419411008865089432998611646310696215281959811750812198958352401714104310225159246563684864355949311477605484684214610712408836522221269657302932993827296377084772162890278463173245968272130558016466800461123361024772924643044222728268516885393264872917792439975799529209240130222100701849708467947235407463308942913342795484800792303901168799682737272253801423413079545036879901759828628593599709565460136477976362826258116876011014096944379722676819685895365234494125693480084395197662995190490326665134509150715554405395728225217953280828486135082058620554712343740320860707546256474765806414496116877197463002887367753427507594703355475644256725478971630905692171324580903617965911905364751296355853197749859586153980563819575666977915650832528563412592077814236297926084225785225205621358404776596306128217272713430423985485723924454183917754219955813663858039953186074432969202791407553516612313230723199438735385934022074605909272722648862048083464357602860991826216827634788243354210699041132820622735208347502753765426476621205557327309454186542978548230726898102560293876616318747235095703598132940900404568224915213496158399931227855720486929963807578678920962165423890873530857271249306928207534548671175244208602263209324204824107964741245656904528492282663160158293334130351194089159559388214100804063310224201634745598812728186158880186687837054739340950013083314373171990615615065269642881468971024940362176101504753104998938872554456947498026686923572257213854412010791862546847787709131618274014703596614923868288236256018228986263030087331322193973717315163110196752825553199114324766868348904979044531584997719527940253802302618008464716632191603864197010685509638147656603654194766004887740576752809198923900336480665271239684590527900983127539523988119382352688571880915504660461499121113383756259153485735111398805927435277293094715638272469615463286223896787379420896149587887829883498959680267700383115546603245092796915185480500540945447372297318258607825392409751051402882490280756231283837834232444668022036063364893462572320948244282480118937487991500763787295584553457783243220324622319895081796721650891036429426005960306407323869852592811657524542090336957121229387807720113652219732343366272328172407693414791579662365376770537027362604063602209162678171879881197363780045276536307325291487185282779444387038744969716356858148532235230670214057874173185063358467863164546925829635990213774341472177901801737129561725296691077017204442294355169668699947871631176488084491051213059234546090699372228688935222857377228425780633675707242655696413084158075730372576749843030070377279697071750436823484862469195515136548836733112939088590866824255413912329790301430105780195317304816827060064688483217581706570713744099300985698548113086817108084123753514599726684414761936472122786517807477849051632807140518753671733883715850363574742938690995520479397505181391635740112992630109565828666549007987254471199776804081404437486530555630126123996040895063248548994847074170126842329258956114445655851995098668952175239250274168216179233424196422093153362143367549483156254752465995539363528266616147093665304820990709024337810921131661849282628252825333047972491145331075901884776095694168522401495849774829199974914356026062763395902437982710508622451301998622280368221891406080606060556642119486920280480036924568548272291306012438536042560640597606974970630385642132270998956058834725888045870791696500167452701187773344628581900901242575366165558166097609828540928573484971522498189539614207088327483978061548046697044297484277299116445851677726461732386942226854568794938601016848198611966474964639151843562581958421460832001744013190321999898926247623028303195832564902385381899665050377203045359453042432396223750419672788685837238192635756374719472558884133358327093177245417269114898844634950526037777474379875409205202862815603129653182259935237001830282386231651123039384649194974800932924425737110953855755915469316331024002460538541921994792098896032871918346700375336700246376210961550315329415543132192523737847996851397791562574611550100771299367657669971143483747033248644233849233296370050783791096300031320856303591623889494813254601977460057257669470036562843982530810112610506937082345034294648398174527928083473805259951105484362800122668266601028457861118902133685514266844881574800088180771955672645766095099259698229591945284904918070353461809131940043761510078483993817612011982025666139152288087622189866940189161965196198281917024230254495296073419734015861056359496973488770156574039199473896135374402547389452249678230054107585292021374104763255646677756834845920470765512959791068493665647913004892852915856112153620462995241325016097976386481836504218025807482299509789834913548499008039838639315386187644257345754690153966661357860389736665668000966680785019596856614004076265507831894651687162073456651684414490643720931997191682200747771148894018459114701193287493973922535346165670165730350311937037360514656389941108550159412192073171075076295710080158667507275094183263711568273571558566608627905204704493574783817453515837182657727889448078256949584030072497896068939593333640336611173945808818151214369339275785726951096961799268353332091894883893688979008520866471268142045160867998803763021451577609909522431385024690702978823640509762916094937338306265571968353254141245562687040503676433154378336832050727108023338296797315446114662719619429094095634688360673387550832314610560827495533804077294553621360714092384780640712621839384354773016332211595951209446074704891658812409277246037318556706141121978430245034294615540525089142195000739553298494570872824408278155963108140203519242145553253326400223438197621657506635270144667050404405561881108157515630064444098591607320789450462857406605536266878766398152332678021991372861354816075383137127970177141114038991780274213967050759962643524484645585199389075358584942472345546118960206912701794617907883720025573107087536057038643771551576126928363528436947941947465791456331134366687499613225662167251256496605443068662670430963837291198826674088178280984868362363657427267923432647473390319690065424983917218813919008510886558590732479775873032651781277292086750568815668758258473122623714430040427962073664839561123235287898805338680208807220176168734340563225559097115319699599867471388720018468093309260441845968304782338183466306654880348488498980540496929461459450268779453842461711910391124391667839923262381611024457925527975598944398347208510646817270976346201792998990224414227374661428725519672662146979007029315384733507393315880170466108086208035342741839239274567997848640996820731361822184970354334783422364279215213966413409070896883554301152165789921359943218183267709181622516244185478358870368394094646735613488206057988501627744959250226883345245742477038724254795442592394757059647905406786401579937649589483798902564740937663972782537574105848545660278162996641544757125832765081255625935230658746860299133574771679160479975181820127661752319118298232051198962087286007790291936681134369643395657941480146210719720445754388814691626092355594934310990391958687645600216305098082313951137355443942664017561200100649730380340472044617755104815881538707482325513291285161995584260738206097639338866576218015419731395790200242602080291652684707519281820514299925005182370677525553228938639400429445425791903774889847973987254638579609557147101104666322918659371645068282506435552947719680147016175276175711042927574011037752203869561782633082779352425191713580438628931196174136178035059937769596894738049710537094030154355985322420152794561280544436833826706524187445158150338033166757165826588076048951417147565252873844271800909824766764129687820945308386804665778371626596601412307507685217876135791175526985214927974954006149824086534868164892440849607148380222638843252299788739443935645674792583552993342061207567014405144439019078211795169416868523840436659860983067074356870136345400562269571524451079120175973517701159297595995499234228960134887666070726430379679927943516908129147187460690680945022104753910247052702875969934360052810320190874759582156280535677968248676228037226754000673627783737476990895142614556288565169029905066460403366312340460359396873302952461252443498191316816262219352147044355996498976096892754569942270053664120034426195974847512344614308925762147639325180276652334324990528199101505215584749490109977632545896726986600324447185694953003121644334099594866226251340601098759738862311864743736515312202307493845665402273435531369865581908666310229874701453544195576160334647204393976137035293091759531772372188008709854584874256925885511274827329503256877041795199139863114322040506617361603436085626702958930225912457455149364436732382813105456579557743740953050133553965655945397810587344334706556353740392097385323323391942126568854018992415612682203299598512097796429828245095880089968756500273117543361567098301753689163177781768262514853919331541338735975612336046640408739729751395490885331190370503114559738178822155640823669822717537144813398771972995096726376674798404241297230463184402600970859661878616691973522296525345073263496034482856672367270525384295734841188151787679199801575222327302962833706362123183915306260582769077586802655640300802196241223505666777368410884010767728286373633359288491977674321380797002733729780700426976006112535030635817690808817339717378599652172341734819130812414047859725400422072183472379717303030468511394083453626978681775626496266196907676904577910085937823151337824137682171263448752725474757230424265232479984852314113002931027287714358546953536116581854024609998635944289335653365407691655414135950628062394431023901362596855418857223639232717913575064722375932944449307044295392943375991697581300300125361357257740405103001958007142047720664772565955695821846155115511403095727946683584275385035713007082935663144316749332331022328861070366744126466062009074018160138636151010896888432090929572787603515745571237058409588810465208343477551485397443201610042284750554993844553630461895714412277340823315150028297830824226244325049259637671746911086501669976962169103166705316409028181909572745518645408270677923865504229603889815350826791421503390635725047298914118069020557266616241523700588710552178223583451168609315944357618145852892824136199712658991895774877241061576920211369671089076858256233444251875290447253099870408178539963252271144232646461075206730542971527984905656295297547260789115135402342535129439081238247833028814500228896459800299442566673035365959821774751973457969245745677919160056067308672108553182933768593309646410172261273914585155501494718235196827773479828887107847785403697698007689742128917264474440840140407575540649383532223784084442191905777227139730148359364053452924450232096072556874502474253770477464453776348140221804201187012145641489919911159801876482198445250468984168532934460147121571362266193822983949965316051479369858156517351739337562306182634257477469667165195374681443288459931766399489430231044885125898108769377049234181625116624522065015820674098345664667671676959093165408847699653486946692830007397960820502711105216549859064022573104219146862750345696149989879236711690361068852935471097908030113555693457305210721495657911910911797537803334211835407486710558993913105357788360899787825273835101124732344748262366467073846879140626773912279099731345808950312989245492320245392033148308703805830032861337928097598919613519691110895964774907309037893246035184568379680478268807449675858455069925458727516646975861977006445685699468170974233082724156844062970501191037407232661942295785450291933536033429957375777332958263281429502893560320787986512900828583226350909405343383580090590564242163168288164258391262925214085597954514396188698683730886561812476690356029172278814961971627565492960174089377456370194647451731227852130630863962090034058727084888062665422690826707324762613258345925056941060095775482466528381308407896300135752446912215861221216073323744331812964872894215347473814174976257260987854925679308583547663289387989504326990070506720495895137553826652326357706027541890494595554051777546718250618494714133247946101740908410669698121749383752374562638944407165226868543298203148975620199622456028536457999031439857754839220508907162899042639266014640463386900734033375041429538643436886275249841516931510048646457543763501191542553777019191102692014806203007472004248678423406410844340008928125046970285943851331975334513057275273598247886713023658707964726527090357365920544171584281489823297606050369532513903073909107352165465404898877768317414434637721664729008152404521333135031302905412332081090363492209131781544425163631251596357798099218899918577653331441827558914354538026416713158905306594761519860029542800897396454378983456326172958097378717645836169303371818735491703823822373749188894276054592798073869190329593138341531643102010095985387784980307063860427294491131604158667067164117119353529315792190729317178454798574411503284001504047281422609214251281656948092946027673702294785912840779642463820086007323044742244524091290893559535297906680425914698120506936973122451136820350486973776692616579070082794694866973907948165231068726145378836971885200950317823398387049546121542643668395930940214452766722921792432819724462990546427519958681732537374762987002524297246535559040908753240111658888043315780457913862610410040879056835514049907300903238712172628163353030008063618687282563445324853302793620540681282807670136406508002630601767907572248341058355601077288947151542306817436966585440064012466485994567235006838957209060997117118250944958709353715706635490074389975974305800879715902016391823775189198224453448155594143467913088853191902877271205282421046589261429102728160945573765796754840201565528097902938428154788170396817374507812357286840014764729075568447608910875146896020484222763955497782229875231258688798912200336030708716063612023671217745368265793413718235268531082209391917095916661361691653424837311603945081987550360380345388084754046965702581028370364640546036124881996175716768928775444387677529301021994626768896040747691404874611152899860987052788572376750733516629240412637310395989797070458363505507109506788586623393648206996297410042842013711685482031054340035820364967265496862465531597441109153270329548442760291211689558490463722285259799547425920901546337905750614221432412759249269716195169433925719152314759002559097755103628069723932104841260188378584118021140672452477718170626519742268980953724729197741113624979839064188018256346252790986906988419416926622569814892318184171300166496335239965411967824833555622400592023739718717177310194754054602914893009215817348660186743181630723407895234789811042511368766266179790625468940291975991342663874548232337723563210905115682829015604442147368180216384150404759183171452121508078101835293408200539974154117398839418759455708446637418985709091245901121533402186754032094625972898552556060503258757718288206950084815951626081045055440340253243858244433057691162186886745398213928888649965070572442031958551147004402916774930080618186148343291569570910298274853764574300697940290977769001550295798047998116382115661397085268812133963067533393807999902725053469361319393628865093262677485659285889198865077853944800902717861357367208478775227227997119724502725750806034478861933966093811563758436031068106463495231732234765740113931863537382117014134552951311857424742372326823956401463566934165499976081180838153781429394983670766176774156401114684411759601712768378056067240304765323351753401458538166278573686554205523518987037927935508372119622853861492566461694257847437349205718600357185668174200295281651948257785570005040762581579153497081284080017223453614072728434422518538123989940020299757088296952263817159815588311971941955850670543557772314261590209573309801320658462325893320637788149701907488081426492509580507221774267385045330530087565288399578027571360372707982695782364407235965148434308585236928335794808158649936958019591580376114555323923019263090351245245925583722950179962475571027591241181660293640216059412346628812510366754595754161656055216894084744610234205253911624625674955000551386644055999187943082270790826287788774739418939572459185653622903101062603406734415629080783804420174634706122751091945531717601118557177989528719143723342563271961237415872858799083331773880868684588330303645898752136045930092517767198178286025849101769304264945684421406269842259007380617869746262639389494731349805723296574618023027188517329460806036107256959839181140187305767295351004828180628389542379647585439911310260567444820937083634499572570580680260813585604167934098817285920871581425664545543441755775126049534422017876434188528700840435037939447974774145449595801007311288102629729031148990982771906926141424153354516266747877024495959360515920489041229196631746614871596332872220498458586799022338100652041005076890788889791828488992698932547877575574391478122442918874276225802815432771271885143656421918760052445905803068372116261515476935675254335957609900474238241864845425036310626541754116518630483809330137231226905984298538362522178629846522419541657381144732613444349404095394022600863366113968931408223520801386166840803125950591903631221054772277017805746121487072117258795514586434135912468431425811286594203250571801929694309787894590171639268382359643145451979678077670871813115521173508596366140557690859644467950431391797955111025924105481001233067608016380475283089314168250583306208137200974758042983408054514400303152872070376588456395164554637970514639371233803606956689975746812275603016351185097018378468543855823499852167979046265177432667283067052534142703224167714466763898800500223647355854117960634279059209079455631803800894038824839337512952611657879632531016081959445313218001059451978392186027653502409221824400526138019739069596467780618139055523050510379410062305652625108632197694992118310791542287132286823544853633991206847799321462126239910479818896247434226226238072853357824014343123132049855545844076426920270091629104854161857996762734971490718347207740046297788682347023398409951793079253769461790227495744780840616944049424739891895162703496766999542589102691201282395932505288089245091120442328021360231345346963276610916584100152794632657642374213309548231826242075312770243638550386261423070379750594207982838965722836909605190174186623648354298870968997916859064988746000689215020876065469268330507648487182736742772676104053493997816870479855201773855475596557292166782165152592804992112348980604389777115531193161115286212391259911524861384733464157641497247611129411808292231224029725547625820021397041227287937905184126437865743506665473167569375134784561784150635744090131756178528721987538541054710323897179220637077528973723724085558736141377291460770076318312101595683014787575765285638474241459079500063556158111534963336748302357042168443620645888003218285736771020326317633286142062880159079432602553152894154946451383647385098267178015239276758247896884391474009452597500266538142128587941224462187579733174847911974229834429968677507660541825789278348414578287588792399050639169382746147861898983573519773535247634981189711845177711773990851400162101614859709901072698705974736003801075755987785057368171642776519588642234764429410437738887235457687167712905472964272544861687495616032328458003697504164266354841953417767863935618298367691862932466180872056893408153704540723807399938084664232484881187992376075156317951811494693150483151675173438646947551260450273622112159043144497144533461771445547894156174292676582712515805569871948582255841373665119457640424359967195496209306208151117987643420489685603003135076700865187621847398053317454333267284183893013287587314670799121281428661919161489951523228249572885059610473225679901744201657083692798213883467808331946756732216227310666965185513311508676579931319993731291907675532613545644803920697583695310757180660592928266482683667288648072876919007143290163191668192065272476353155959630601014856700154576411293872026090131422693108850472442674537708833888231825795283729421368829385989997156944132899384098719948667074452951668764528540017819756215717888880316426217411893394490043141811025887203676584374072683706069317328307135209549562303995446648559762421860122902389369222601347248589047587323891918880312566476652992471189510816355843448639426698846434364729365735295963782907152279484580563639431036453871424280898701647567575688783753705751305517424838639928235812183608643552557285038577268266186307196251316245783919995056800724832192838674368849957571771468005841312935546898484957265174542582988985495244246699042350066664972740875823837429176483756328748395960175665017476594104143284066408835084345763082532969459900840298100986798128990387364844746725519230218267292774770616941837984545065285494911571169478554059104526964926102005010134306063016727597818528976082106712044766487076207359131516849686338477681495198060284956796355573799054815468330761375589189730242443358304206871165042515934508934661886548614719825364254164221996725397170081977677510964475760259673612806656446202538412649208382297719960108260655219487908425613009066331450636220461875881376279426308334411054076342064974264482344433142884010490521999963504517297587174279089558386156087253917638899563652767386484216481244678409691350749734922262030558292400851946987531234819528202854532201808725095704456310668374307719789469349641372148552592103066550910215097580858689985126007553771598368320393973343553413462011609576505616215937492482019140240327279199075272258314943254520724407831172627841024856807222298360948592574503895857661291943892246972518110745518810122207031069137571155897835441103746875301673674453068881386582689829066779294636653132413228456744188076695130915731933689996404682737821718521759970583479196795047201127976717790537419797619058294663181746031494453775804664285167954926166119059537273084715249160803848615045739157232336712126365294667641893896369429653163715972362146442430250452728967431877571842481314506728062890770125986869505923036140867502923348007413029413773656478761227843732650506692466990259571855365021326811432747227995540834115434816803698075016177367149923374559475423953997724613293441230205768441878906613443893750831770688332044434447502065274731236817444340409084502818471026553719869270670060619913290817824424267805607622185228433176951873904663639808811671366511909153931463887895737698690991508590541105123011207413646532060952132390126887511041721077097967155127360843986568657800543129731133495513768475533771326144212492057137897632199983894335966501083869252448922720004104751322439832124634190766552851787336047399587949032330072590064572019587484531473272074897094671298753316967812382501636947118290951352285098703249933354701058516376132103651988120778578577594757795696223428502839863460117154879730388310808761610803187271816335296005860138101355170196251631729757609805319078007142184661242629278129289002798601806943850406923193165605727282589703446353761923658142797160708190534486760473698372953352441269719880699316724248124527691248789891658956995901507998243130909335917278582184156956212318810159967119122438756548459469091728537381449289469827301184524161101698925229355744176573913915691611481188043069910125316663221263115130552777757457713855495062905699372086671328825859178781420719765777361151992904670324646157804920828012530310107022324447683016781950248007073478934408319333176180904022495444588068850525129753038114317414856981290109303320837998616569592445726695877020921119638077524293085701452125817656194731949063153804839294372662679753968058185397958071380607266882545144574774970008230369052712976225120946784462304917697659655541849022614786003094821439698128400630058569633694057787669872849879167327216622603113112292557354441114788782747520970137923895901178989384354200690837987693189791151349263388238258212151168540973903085454689969511770388510488775133058878099201458291889062042190154017138795319192088155996599384384708246646367611083004221481320469018698223197046161214015720166430110041182855164981236385654876864577616027883823008086840676827822811746736828451629521524221699684999125743868460687532894269078758612498154063533074216804648186632900680923285480949297977989850429981240359456450904398920964860605170631629872389246368244123706208201349977506100347845873561935040469804895465971188991091775943626302113593730740696173874487800268417248486009282593717863762908228192108331687618056813270916967851478020732222962782064889775327839817974689942720701623775823518911173545106264831587141094874786777681152756293221826429618515279264647551839773340908126795352051309584785732334344152537768231994797635043085318726519628848812007097682492772092788575822942413370619344931969240389319208608328339763626894365446851214709847301113596639866983017424748853796431465612215462160107845053104592286703413300231663407108028249456036149620651269481848704612149689715514893195285179695082513749331970105305743603645831909336190723761714456167449307049086261969812958594063549427653761966040460221305816672473908292209857444686371032944833733843950333412348148563735607893500557713558078542585649618388891247230021831760374133205257946997192460854931870275877476373154732791631111611752763877625432640051194795974917164251138391585128741714829475107136537060502089653239017081988781339491592397193460502471328531764218571617019946079478982068149788470184781938182571492282564442657910635254148741351525097369689482076090122981762041417192843620895854501363281215973920307341250587008643765481280691330716959877707989654063098583436544644586701578209215738487433267302942488239114690232936001779921653529150859066842573857511521257320154559435959329907611319291990288285499950249451996917178504305172021043668273351758110084175165880614753923218180532294127478571193296160332450677312973227397741928638813070535833085877520687221832792578938523791035812947092814885492546958874506688015667713129815963887798892797367923073672562385684885212361284711757735619168780137832754788127560091024715536450884378855196208692660073685585618060637300658053297615524293248159285808611474689998509138830214691442391468974929164788620469537226640482154987962735423326345193174708917071024597076075214629090259017622306315871317048890591250616715819904146678006321503884210762757462456479676750035338039899857161956417804884463994937206073670310203815163065677204090348513759443848820312383365550415909754177550204568023427095400046308292503105408240821315578006637152747371331452037703922795846711083153776138648500461704392104363472052662066843538471351815739866931186392060633236277994452430711557849753288737676330858545920882084072486492230002922456201313393345257772411499795598247148266119755421664280015585549157195416876447846676903276707392603934096193805947768148012495884063380629249919767018944635006224746300932031844400778301737799236213123216246889032297720342611648701050588397679346171976797361788475429977149948762257743224713721396673111193470227734143885872312557771087551708468299224120265402856038878425960115556428597576386195183394776008161988528050085035511242568214310417387734398602041709464274956997875323754079308727749479904448703703300913705689024349093338383545915204117404182984314264392134469615888926736906416139473275533070848863274883603151697025255184549522908174665774223438774476972034976262923488308085047865256282539263116477763423766499612897098159329075066435950065786967008065675057944811830321164590126515592768969641231896723600332294489860467497979337885026949236369449696910543478187070121045935257134873007525343115097165492894869546377769199423221149530874695821052166109402908803838062343635722164877137298084917566323613953469085603156462892852828882165664561172331904706176532480288185423904713002557103479568840863672225633681543797336099654814446621482575500382961832793073435715286982120440730238242331887642903816226566365624820108121959709274271762576879801972918994380967742543244704857080784885736221169351412630213152296822688257091677312095919384983910726039909930687015210268229791518953222104064534312414851170995405297073596905478665635876241794308318594208388532996526152720465616299493232263789275386298348114199235480500599997660767516033505941600676803330770381298406956001104036035624788093280265943472289888669292758440664957299519635045050697401231516099302836551337079835987408472175534965516252129311166659679095193413644542530527531117113793735390542186608484605446313533369406537389805474235948297339207145715292844315265872144512701423969578427308091697752387330152504782354337082044567460285386000295262145644209452259566125496824475543941200361492786597272541952692747134811162033570604467299012420550830419909916079365368415996175748967823820389886749213638024999680778561447183815381692467491086450345461377748389292888275260627255406267217202841767681091214139240792066476881057761177361050869699892235258522950010091255239698855035321228255330487550460663261983100311879748844482411916345328466796589737663960069526087640270448216328168411949077527441831728817071005398223060467715903224596044095820123939427312027389944366782949306410076215285763561653201025911706912680818800899455072279463346863568158845390268244268830840685084412379057727871369215472024021313454065744721780426044378924082931312676647569112955146219190526904902726308603498978246827804176923365478457401580478723836892840591835922942567543228725248138514131891200039769363091323691996017948040621798429263421391429047080206811422977381150227974427097753628134806355030747065120551559759560095611533731460879538277960497603505539279978977030725599788820317581218733129337909617733915318126845243653094479658466713395442869519548264561285209114874929929115731777128305211358748800275435270189465979990356342524299094623941545146827597974822730880591365011436116634567817525082947399114843377392890613195855531142117341072514472269463464959112090250810789029705218329323759639388219698585211226865114914371029470869023249888554451713752696864810008429025927737458568715369056634401231314582991795879570624247139736953082104438688662847870264564081479830130834044747770326933337150006592455679888343570752714614579601833904905589139811153726773095087890970108520447750988890343838815937930917306701284201295569371359040376451572541145689060797928939198512474206186270056571739591852308355084075273376856751089576340815231148430985329404539479185063048752904646811622838336671525262381938146494703562847221270213786737926725404893003773831133484328216628852987144713935147370606230910467443543787132053464286617780620730934634500641526755783243059662013376379106420835992286718247204306069785114872844000423700403833735403650525351249976228349816563563022572637918934532661142168186692504894685211526396440906143033426250770148426115755889080963394472585599961831477792787959174645981424344127593735897669184924852261655776427043738645586279188053421159384442142131407445147910277512715908152056315265640463652471748637387680325438807242998104729487098695572299566817780158659894618681876936712438793452908398092562842694342302467794513923474966989303534551459575082493606030160781326106013865647135215395825577473037140977969970179813490385220520863050571611504907663157028886827203043449323717400107368655828638511771893202342974421616798770356106358054433298545603831966569413738791425495269477380043849572229769720823124363323714117130140869538942340852005860416428708124770212326831701433860056265985089562856573729967536900766126086157663446001971321485099992921291658689322279653804917438897958105877469278758741236047647348901956625267719910172631009425096058288998173518178158663255672325223027644294099721344537155556301724851144801526659809764737897536463443691137640448302232139368525836378745573723732153983007240876878286083891708970169318964797236933900798866842970489724763164213885989091057504896833799858887299046586178854316666818764223460623425079508702705818696001966482772191929951872596894552241991230308393825786211282336055424977837566700602978685498924482634306204857879958776401819594194747898814556080766879209804171067195439076063211374654814990204580447684335097428233116674469585644052156826478545965920600639048802811635563988673391414704927447428199204865886127767670255191730785433400978408841784256503782569249019629759429165851067620792206949684502745676864157773297082186199992387775050743731018585731255009746562912190734508896903361345887783773787544349665184900846330483829708789593354347767824620865662022722525489235309580870829865331468865933535948840148306539290764369060718468759699758749384727113909294978202033509751849512811954923388671702718496535693228826093158238367875865721361170630605440753609483283072854239215407702473511565062050476514641434394236650121235958406544746670320663431715945297406514881044972834309613156400570164530404598498144834195611710681054155428449131473747017100898480877049880102216186605387514295891891717498588178669771923027205669424787023973583042510101466420003196176456461550833248749126812404232660043926299822935279099876106947116292571624479287191214293500840051572229648656426592388705674139041386146931545078660920064791201425532278518493679943767057868543705477672046333292054447837983981980163666856949535888985264651714712388409788772251357490749770416316095291865983189786389932160312597984528223197272688386742389676274349095277667294194451165575405790045407339268826865074873745907882636434178973712318819259978204668235025442745080447959589918830654940954249807154556346470035767360442546144117721565279667354669982336326424458607004822224732013114715645249803111873605823416053163430031235515869244831455050116238383858871566807371057019094904434769435533438778097969395600362405879445404546289957105236232102108424828337324406375293284764709672473023470427274200118510177958128302533816459646169909805420583966073110391753626216266897814284653310854000530312718278985614571469448884968641481781654421349108256305733094412743980816119264384616423186877249004875501139592779710082309788152918111395522003780868691474679911078043593842880554615626153049327976163539114913396732052778203223094480972838353434965805029865198674229644429343261913465425452335051194663577154049374654004334859784795368240716518659444880155666557469110112424769148916214836266999275153850384887146947515175080279589753015291865814273956585854869774203238538503707777119997007111034559864840327845862291435532300400394793441542874184656139393336167715780385105968020774306413829938376635874931029038763107796057724612380359391010420721809309201059513202129367699844428449706113697124308637386057208093040838036494076390690589166810975091288218731023289394115433898451325465700807460146483573363262779446567815635040394331891431101425161859698856826916110968456319468243923877115148906959728113544851747810156630384909895063317969045998164643350288867571630430856057430209850260427891004432851417991154513741710897203425950530963030715418848961276442230528876932479805444078890181332403253158499420867052131645288186915393622867129778491422619370637901337348945291315365019724303713848232662523924025958062605413237896276952891394483373853999174490394206761345602092984536370306118627761464827840288537374414996442112142136768852364078001998947478199233938960525550375115110567614283224610322014648368261737044329988936963868766966238271395441036641618240057288738980569754429191246060441643894282541002982075742439391887924874388910695542053756437867775032824263922282035119370778207461337235829591773058931776951108260260075948510185001061550612102777688588939016752019703039713615684530787426890757433371158517805638833436867228440111204426981489610245422012099885426199929873358794617981352957152847701749916869217084454447050447120382023735252581058983966261150704603712977906631181948118126613879359616262852181820312262182100446750201128730870930885757781299296455961014845432262531042183433988130428000522605876474717277439118383125653492822999744558759913390329539624169337983954282123850911364468360075005104382467178801362148324623690974536233438289630711403457421218224116729644065487687034516703778972875525969044667097306234912661293546055588005882367420890992776629480310496779245324531842052589892378496706183433427577989847303915489663329631552382955625444539843049365374736947436607866710947581353969359021102261861930804518765351273743566947502568816871967063239790955226008017319284590695583444753616723553333024930681525312409876595562166787639483792981879724255212635684894279231047151602804180988165870063300268437846366732429231553695014443882784298451608489912896767089135279368112666058390130035632294420948277239584541122979429359740155821930996674821400802673675611894174658422277058995405909005070695548922323055313158442689472163811623394577284357059143511820715463012120682789616365379854062863429963356908033842493685681088618209051783212514030061461067900696302548588783545224325265506860571896686672646918852124418448909040812479813246606575493366267542435117073232232018436296803470686252770033389248352082104647297146659046589782004354467035882609416517979522262869232654856623085092274163618448544190591101348622457845447049574154225639990269400275053383967720180656950380247997253337584440860194683873909939241521314149853398272308468811849610221785353876766955296124094234459472017187600868243167796436429212368863107337484054214981414174609713265908183336085064367445023375427519744490471750505976792766644963847042901121633351025526199888176603289966190525184638426549013263841442005581221477562216611469327211399203982057036493274519087441274356370573477065067100378911477957812095523574097390861504743337063677419456535032915423077061492612370973116350053772425163294163969774179413232991253211937221888523040979207546086877886825041469258433971052790722921943004408015934177664524968920089236513441955761161527336151248320488998606752442168431966995581172888305458800824023501107405797626075360262461438142268178412944010778196580286887610758995536087043700144225361311609772004086635862871397283855440781272754981193067963645124036217457856317440506792752451558286311063776319665365009523098096357273441299081002582477646057670278335813953067857934957924509736965585058456613225153606258093674537121342042234449739716963417656000028159687502505994632626325857321902337445289913563716089508985343716799342020760253571121904223580077025951642155697158566673879846349233146073666885126732253201238243401745582329803261273784809379796507629556505617505000204380893348844370978106702472634777043264171407416458024639400554654876402590218820453559423077471418642647296193366073771918240721227125324742826615248695080797712913077404031120175241967810854334916529326617284545973109295764333727065082615215535739915443768739429450409723776816745569660490891867563999359318478916314271657788101535122766177780813743151606220815587770731461648113096806257661624910174360822497186956690595869761835130272795400807565700073327080107546086502389042661616010192617509364432921583730033837346110635499725468502882920005892388298888482045437483425102115902198414992599254424333665661469561946973068784396184884023975255275980252951503940414607684100967909129783290879804796743224682839750552575421476612196073920222269335464469198057182484680025628067829920430846758242043260763334308567154596705530823439798043791207450180281550453067674183911726084215509078944778237458454969897861215090252855780036811059004499003448701151879506557163652710012079925297103445266421239810898355418976442265772753162986270889427625537807541163198565627164812736305817103135580913006655115883789464599683637894218874283839216499012711526272329964479836129335001075366174360789843959477356502616293562847011192452645023209406402983762978503148692098855649058926303905713617499159719701486280105374521735831510250517640850240830454183918906445328859728254647244082984473829243037146157149517783060799522931442426662396646841960852736270003623904722246272085636252247029765678003484526347586586854282404207928312912169309786758363019242194370756272415158992966092983944087602674728126031416325753509270375098839847459740296938107190562840203972915818225788672103599231426579930863174380143252878184240842408689016188758149609390253735144809162552875003006965186124478289267951629687071957890678042609081883096781909870074753984188361917722720019910750969412567014086473019154544329882054919952328489387876126895065253120533548644945323472401867234667709727966172390268023592002576065122694769831106998798807424903106121352363658762239780206085665084780974915322022587707004693299427563671111985333126015619779764491051363881653792349394935172856524687773004604121828595677645045458662844437214501321848136767555983363662934155492944100348380880567250406651679895939078044752165450283798627797038964324738408899225736567618385288826888859894823000064723340335604070017887413731222490670704533530591273806003570079197510737678661362243047335440796354877201439669891168803497408983756609482924017023135397642257721321498511311279277372030979630780502090901573390519464142011601740234506741341911912689406413888223607734168821353943814116034967872475517897603717886689801192367394103347355467767291430006068137629490747645957856250752167134262404488160482043708829256528345924606275074900688533141371108953437984996247874440164967757510949838132622504722586176905732551437915076390623786551310701118065075325995240532059528030296425354460532769778335585172883081667135502458875296492073524701135544721750769633820717876759633618768320704224021225742113656203967799094079363257122666218455005254288842775990249815957068626883061024072391711642629358115235201574413732758675512327958214958313935267362404885169044634267065070216754448106964073562202331471825762597622569541531499581550490702763336186335825916319303110695420825089075331170933179095834489805594377260392532171207372664100986151295136221689123111009509984871435064580003314162072963666554267484723811660889214446799602179553404872080888726808654750767626804636871189786835817891480987456185617648833970506678479255399544372012360695985899334879176991580791308042034348571701273303930380034931489361454090050019484593905296003913910530624171964798765919902930656523994389214464652425140026520061187604089192058118174203364324464352775260346723648559217585122254061427133484432457730480583973207137978709387456067818825308350271488910872576699820191665259801250209906655656607072497312432220876416014183940199078327019959238702250953377515908366874854037180779484176476959699861739700924849110957952119454228520960348844194770448561204030819329784531216728705842803086528523811094424074548681773467893513361933918629473799588036601182325110617470567146241417022045873098993178827983287885719366451582064316734001100089027890523659693732572349143364196401165622580457527257564245422178260776395629786196849430178798365317880628699970876167792718286270123936175441748515195368338118447256864791097382350567873199205643550434694790317839305966309389745624034118285358301228590723329981873757923502957565115406729820128961791399207315333464571884585060375643449410683371083635411438978703974013641092198262791126728175336062323212966970693695219429889288406634241299430319023221444055290095917598928117920014290518049392520971562532023936142229963351744030662065160711871226443541057160075151801908597540263640241150095378756072222247529985537021295916533559328455006924740848376370597308306390491452617322353666713141057697750356092466781117894264616409791322509824029062649854362879403479582437372550878865940051388948768995257556861966278160078009888573772151689648380210266102006014536465278956860332844028332061170621285342880933600185875202494306568345350526854009192078586777130144357456018635781703426973938457515688420098448696807730410831549459749817238779732459010693380984760453541778602816562776148826078362678864984695254194688278315044117211783504985922948536830186653360679838681850068757581753110809923472006827666279432816736901885989564467820025022944023439512787246784416739151463684474223659784074339882376940283863434467049271904646332598651171916766190111556941363541057545856670421934549024636620627368545815464578926831171752387260628619932228602105216618861510536176006927275850323442045802471915869735820538093950476670060016222883081090076542289399876910878868611735470521364515538857066060756479547463910597245250605785308996896420473936996174086022965624857895855319717611424174582631080107503869819516236286509435190690122776212877484851515452562085027221061375325865102473734762724243092662056076759689373429907021412095813540943001458233437932425450517716016591466584088673102478314546477429218175333264203743035304059628739591172985132821903085957230710393056572894709097253912983080661861939643935801985528260717352156119803017220285768846257817810405238084047990157208724149049137710065677583853264075092164920854896734557769513181518781205269598419262393720653558920281686549815219075988432634637230222056944063156919335092524387946214011227365901727658036761515963075813974963920955739339394874610036394676234458983735014601668566271521372334572032349432944605976372273342231464609461433404062237652570139135947655070663187232655260782706143333344296597453614754884284222563001474971735577708441582252671963959312795632144913682014948854519962849962918418325872445706632149691424468613378758066007952450237348607305028291060010827258177237098580449277456129625125480045587000380503655896213385019119320520511516705994077785998604059216330718148584016777915976096947660455193905021899808436816115898018853770878590493424198753003017835319715541854544883744823061292797220099695596350917050768444671591653988672325829889364434039898108042147444220009709973530766260627335479653290229260756141621973271122020846041674925538669988261009736290733189503443146245070877938188235596397172626110924596642703208018377600292985202875027408419062926747276508362640549037971437791084744571793174603836226232131482106469231616189116940744111548838369405755253432070894532141779195948923041908295405108821913701673621434094295163935981121809232169678716336398378168918540051663490708855429941306982055608743088070930555687069071181453459939975824676965642760875016860699789729344237183319843915590785684070168452458410879756918196745012432614554562301129222923805564199330233980962176763521681170587038448462712263784726515157808585215367071504131175286325579042469944260491903702425082095761313746042414486208683801007617972959694719783245624001250076773851862287156607350885922472352115604181489641871518034779514974274116596405198908178466489946154438950027660684871653472136480643713952795138803876723928313663107283562207442984958522403778948465855012755999780959661155113193697846287131245785214778275558276136974520210116936273618917964980415328708128620974671644605074896275951606672770955188871218866786203139611630216609629876200657645257594534689663919734897169007349875214170227558068661467348016143950306309671819819921886804456212490579473476060568133465911040735173781407073096500581733835537961567969334434708864167589914952577806859954531096200626221155741023962749835039014300733005097428745499703756762617971633439386048542967914782790642597326066283939385346500449089029325892622314024427180601062664376575697073737776852783511339142859261945655358537061557917354515387558118344017679447759037742736349990610345122469658703555478525049264695472453463067965867642094066498593996423875077567865711827176175016993664870028343742715316949500235238470350529657959407134447526756688397188677456992969358972412339726366406006133150187346179191185099562088767124458195516494656034940325853704515669640173813098890321867681540494829555892640177438676700752389374558131028413224298664815874898045423058732430499794565541042119576464176309187281128407550422589426635147822575198087012858391368921464512958068189670247930231869390810810234999028839647309385601797555555903353300821664363197818996220987180837405933819246273773420609593395186659427642221896313887369383472211548820242177555258394979420949684121852160020956002954583920529390063708939515091664259194032731635622047910318141587835175532126237538224768035175603210149066596976423552437713411967541247641846665936167999766174680666099030707112429783584016565342825379647008828939325592218611851276651364666328421477304236870256995915335362354107105824552263182838055034471003430376386297367983169484687382153038066324926435281522693149269055578889288791279786129649374987853388123196970430746285409351468315221384437102376577620142013327424265414578482946225220811351169182406994009295013192611216424707436024751218563673880851164306043408650547425836042336865535152222255365301696574467450634516023178917794543950556398617845383947496463464066336651520731233451251490012574968852608376905102744602650741057637700014497231397047232302808328712018178882431315932618361148934316098361030736940704833486377607924025407556548289244456797752786893629202175207666229252032989535766100322746223332986700552524650872216438235486381940054682306467570642168788959033354874371209248767255014545165457141151426006031938050912824474521432117114436854508914817521451867431357113336226711485883124885601918249771370998686600221011758945148210682825330678331609026584003484204921265801256364092297398048381567969330478676101278678820182424961482413671234619680378304943253567964332052652840190375470990697514167606569943169260810660888408201426079196046105645369045128028732260159281848265936243821260328520157982628145684278433173936656897205779572582221579802246709824631702263254064229154232551776381537816173495906469329465263712679822011625576549703521991991383522341524049039607127039970304521742661659017733500100936026418447652023217745040235112658342670613647146271836049053618099822547902833343171760690403796090460241452114776425199807791599884540433570479037462191613675378570491447845760983039707948812872494892951496885445795092222676107047623318704865411202258008149494347864158376111914462941984739010660127040091745462100291185650879791590614359890628501505012556576162336414165240020711393801007046709646010148451102605327075201924326980484835635031377558748996264775999520333937918273444581706448421899691316455841997574827958379406393975862856222662399698476810010999275783516107097282799700686409807891453548561204673171278143114362787374661592433222248122452339128494246147881430235265800779882830995633061744775471197365659041051826311818086117769186678476494669221767431665571937561289750019448335322936334093279399775376313036591955698827535817479391996333886891896679539138767253364075250102564357811991603127156559262723694427460187533371204186660362427888560555535761044209278455459242845301195617937636222769719739317434093224804895365283152628729667541598425190461386043662668973979916360889484443616155848972054378182106175432854064163534565468262387650812165205197468447768048955362425742126237666984344580237491215140646261246424734917494138564505778672735324805853857381815884538106017115479438758096315911960928450143790916316445096206073674392792161238114102796325937451648126567854534681436593215624059608395937123788406967463758435109533765539065359884126131661002354673346165904168470062607077062051085849806754363688810437075357389254393514643113190705881279536444531753186115861912392041295773043826352029180103345154766663502307236987343237514263077048856552925725754829906688076194288310177997306253803387619115854333060435635957112490121241641711047591437269333383705749584393562913108157256425576885017822140916375527407126265936142350139818293066908835033068097344755839407167813285645028835475928396257544815903061971716669183585750301305146344886222161224866647454853967769544218245758931328435916292367244871797497157257935668512547566823391839717989628540757034842648454911875386576875231443059042989943438820218547497532274881878047435748522810609129009034691958027762497252055403292034940975432794953415757088562822041298609916536560305595001914241950080420262272745187783996119693530036807293013131957517533851257863536612583174682029200492489017290689050366677391452099093313421429612012819382612276494352133656767786816947365972000623676524164902282930452048615411982620344421307273626958305030028525246725165263914179339473512868039961710637260779680960138648355914371327154256235637447827272243253862961654753150838288040134991792543062832159565349594335527078820282104008277247737850024924197951937751212920171470169796221575458459247639958012935578584250501362706290563716135613544117576368921960481468169794442195448968839270089801342979095164853812789719454343298598890072455403603993418863411764696021227580319099468811803374757263964576724739925614113771330562327430026497930073592420117115119052708916563956298349817588515987898744470846051969101577947145520666851600283990045264867817115828721683822237813506435834912828560299704155693211401387013652659356746046243238362857361437858544442048642365333002503405461358803798107542532256314588587725948237742170164489835484537159571098595814950724598454870612738746023653058561844157143418747055149333926124401584172529611042353070958676616779920438773554818838563547758306707091646681662872959986604746484777264479380092826092868391006005632869792405440017896229193790026401648234283027136411947408826392253465787000006871832226111436520155854819333338750569578285840648406125965748594029346182599871226565585003599178814547211491686131440268167435947396521388844690982895851370422822212248827866060190440161264305157079011937921725764936566963804050664862457813441152340572070756306701953471297659740400908336894782859956199572469702322818728847072256499071054378416744299720422047810598208596631561205478199186335058624688524326300955096721129136500665765637256531494415457578042105145603686327520295208225804904178749345552785287923952031488555823347407825357191795108670546731839391047510654830882772633295770624440036558923152569811542751700390446972898970585033989620845605648412244362632670251226172531305302062145400006995311589758064308196436513401006366558450651860483562713270674720786169075869161324232737486582884300340458931482316894963520515995957198280631780678816416431222824099214075574296887259854689134180541248859991008851871223347101491140423116179315979175618600328303829554331444453265044977360705905390491954694314625781967313566095320753970297557422361996444955834978580579830554517703818498687621466288105706393317395219086251555709728048092862663998958431986854173173875754356500256513650516806794666640356403862576725597305480271784240781442559191861293356120290359762452234690649033171888683753524340756524654281841164349137906163716783988356600624882579175787884807208065824964368834645493683465013908946475183961143012286699133827699333970823084577246388739162696492163529148282235362625712016544996782381110964403040450443166359441737036664924128687447562321532613914213445408673271238724112988741484718818907088843956045357060120570052475667364098659585021247633510305592695224597496003605311346292685233197933047190168606208244848224708053696990086345389325588302131406516854022774549150459428620351904043030205000711093836751333636027797199181091278271869613800638006292246931437897481610809271162890606489689347021247549227579017422955794298880745013984632692888711414724681544443577242467891011779316618784213128473903016061257557010178577597938152164759929444506768072521807176522143616541814969716728764177937711760231470514336893256789654560385819946892833726094164056416578682541532737921538539175510714944019110576491236543352874527061953156827871939518402305025000378556908524904963333182400288303898486169635701591700240832189604570610091573239320152915344195583362963803267777907049511896190847194877906013925961399459940562281987153719283621139228457286833904516470095041910594796913501023441598401137895813317966886860098324160815534204700413698423920877474254621567685145367544570215038168803253267005600500371387215638938598043831873733704936418695747181637129196876961235095285670136332156272871587849530764406903644594924077318594413589015919281764815593609310414441832856061924914752404402306894763734347767345864394712063408922589898811731673458137642888498283755459523666057289413985861174643881292635277888127112437011192239673113611623355405031505415862095037727709624924328733295181493355872881086239211579652806496746077913218712079315687561674878367007438271684078834729870328331940152982091733430822621905351467800952717309671778109509816405030666228856170853088865347140971178414655232032262360640933465234446659972891427039160401018929809692817076786210821608981774162825745151390572739336737174381340869548932105634070409754050161455647672355905003088723701871038746201685880992652027233865473949699589963263528154991337247559315944329617650354363831768102166270412500180717589854972248068509713845830174117534784389482939344329769575127519385378915516599461106034154032266077753189790487254406231065029819430929906164955343712415148763056006744434226547471681914054272861525861183531405820194255220281018640019417148065149361711015923696229142454874369939207875237819770800588775159109681308678640173722941739036739726517649880871556989208302445123425833740235490132590092582430792723925489515002689647141592020296774554783937562122056211761831588674044460668666343639098272044443635368162229211360084353797416577550862901617360762577460275156826039872543426741539506065816669416649554371753803188407308759391589058152456592060728140094216694581572017731895239498211174608432733293165188810816118490576752020061560144769209602810205788683310829300605887940838989268955466540352364524763367129533509070305434636116041930489457302654383385347019210889730373795726106711413285608917060805434456163613358425366819796422347990480820447708150892629938895599610979355163194696651134824840768197781632193675491029206992852971959031620696653599138779445226980685915218389675711215505380012137042845382936908652903100226687571163012447844140141231296168876636554880499559147728078141892412845072733306319699114541817862128346377531711884485498235823515510214423198586399240975381006877136582035952691772693935530562704866299266019545092923381334432099067528638675091952394232182884087431751768085481644381500913899089155983506973799290564393281777864187925995671409487528930875495898383383591734932816257630048208877478320223115673949475077505490389600192795423692513806161416686267324657857844539897541515936461250459272168255012511092017917693839728413297264199760996495656460730715002840475110861265510677083003133551792147781005755845020336517802996407405460707113518915812818176341224331732480115648085707602278030327453923684540444056885899929052471525471265789946606295002707279311314862514847701777501796102471675338031470821034214311073075628515230852832943471541547034518145814078377517733369932796613282055999661220728841893490088424215962807233737191727365453201375296052087877990719469305393330378453338982006640012530628469667529627102912632204120341401330255251090557996048301298441547855071674628756788153172664926762129632024889159544537329320296612118593065040042764754827701950377469253086039192320819388384176284035161259558278666718054352733782069360457040665263640887635149157532261654877408077814108324696582558182461831878831947206378259819563421462188790445662146964450895556898465153138827747453707350936692985635050376104037128201381771679497741968245458990416973649126405014265199836571448603328490707207793177546080207524067487419875963187022802381811757553664356082250553360028799646392443067302294707320003345149700647893466438196282119951706641540581895620230697106045445147272864657297850981182068890328385818245363895942382064680741830910227755404568421686349730216849537145990861170820485254387496190653318554974087243514988109893287570621421732946724395065645810813581082416577222578377898151823927071868546352586636896361063408326304636079870291789701838671743370247802576483248234106732505777700964044679609079726634776831790624282055948456194413731505807314929909497961801819473551235261319633480205427622988330544009230088456352344397737866845239028987638074542288668493351167312876071853469730406797791445510880931321102345279432998394602233012130624846871355805980578505970098685811586150048608196180644992629376531309560225851446486410729825286917229416763031406861489547659710542048643780446337211421662088427288579899785088139905494990226444540291671843543881564420747786950960641341912839733728480216005544973690104588039841954963828859139819158648457552742605869995970992960377889616768633080543382442907709459913245277962447083829113888536655366418286159445481044907791960324357729077237135697682872229664514422551991881413790079433755490858227886942715964634405659057387563420188970025193523922877575375091541831303082151053956954528876302212502227511524674466056155661896657997372499346471719530663529244885544972869001496687436028401160440913568733863000138158351943754337130131505933245383936347054768273530671099048658463409094298184072734386864517223765036842690339581021244127905426533441650607594281534266955189159675657258220619697193739800144580102478610656205498286375064456608117143876868221811111527195065650724632415910396752492434297860591408407445283959505864047690877709679726929386384278594065447018654542362490033951371268830313363215742999839589948073215048770101606483517930017323314631856162927892208591783660783397244111496389980672765497307816573663530317135364294116357238737676115145162933319267839024240463632312654898936151994748386818373379141680186068486445829303755260699863891276884629151193639699744015044486655682504066594731405699602016024624186894077158569799618072754327303224812500610353007305846211038212331634334738888381321470273281965065007366506289274482195695766209109151258706341052430742443919264981305111073597172729866313915704204592869331082439451142921610098586737434631680040046178225318184033588035907484148096765857060640698525713904077602050792652717969578495634627766524330181808926441619480358046187462905935665717248950766827981720273296786582504221840697694295667789544067496810206789510692983651574231715715527005337460970966452668167932080575793275285960243091880649892160436983031380851405345386462994391075153921610412863328106025703130616171376410681614826478305782533191799337331287765428985751596572535662890065577969177941987719010631404344804461224901491712268426776420649889100550231991553536854272654412684357866175393238801446606932070028561362022341311690705487777204620921721972402370000161173331344833013350306767292302444517402530795940147663439532667846827259601146736141958618465391293066625136742704258904172829615452380260257141951604814539960215890635607585742212559769788482953541571143427084961291452410263004560528875863719082075865476860294787715517855772504916023707565083733828130616078963150041286327828463495065997880661673997839732474783091495508675870433513522228533074735386162676573335603198019447057975881644857139425481822611973103449865564567625088492123556289462859421344369353097307395934357525044201763422868371027818886629803638510591086006622419825532988833525901612281446412603029266170608226207600000080393328010006098369840427294912265568906231375095661900794588851223605768205401265458185327719741495537164707511105369993526552710180552898375741750625149278031751708690391618497058242427796156002447412439536084772791178126327294610061613736897251717812068565121001893596286881227937043111767871278967995986061576995615770701952876526585045935256046519308703744425223628317565971883212483581918956205696538681697107447776574266862233034368239614423557128608123750555808078003755861839461995111220303828107643932870100221338974135645369266992182780565015584649973990554500572957753206642819847568013838372598973872445886943706840407510747699528852774074860624911301274593993756999894966944999957053036697045374418519528979904479737419668492416589625382989169125176280221899501180285540336853757941300773178128354645173702301931458017220885028991033525234771496932605935103507261839492242777141942888585551761394700405878258244336992772316210393419779942570846314966716674188789175018813245448906354913469393431668094499784137498194147303018884718598577699233935487483614935622946349794445242470635720229648071374066637370726290237932662818706327343244544812621588293325041008005400905414603808900138982816605340935243795559035880242350403116523884703488678514579958624570787629276900468053299267546599714818464560357345972681535471825474694538043000477856871919463324877625461392913746574055432877466514364356332840676469459853326523994691126357861944071335149932170320039027889245506151310335203479604691700177371342742055449450846442323012913715923322930269965181084247190368790417395714796254159905636089480284657012019109597961141728324974812761925827554819918762336212501056610848858388527258911424440285790629536071555473021316459985018229344425068039160756606001799174786916337918345885101858115478652053024288306834429919503697968692234651809597206137788259848916299526474183480473989643737798487429649397111285333098746988692082446303775731683771428468506512161110957486475699648030667902258394498840469210620081451773971567318819321205707313298957661262852436047609086082481625870849085476370189734984647994142683128952748470419227763946320032483310339121136343738115737113037252784793569136636317878877294187441737952205785834734408599440450572539153840564108290963916540682670415591275658227575489884525328511458260144904552912419366585091442235745822818810099726282872300371184540575688247749863329599347213951412977466267649195682155925964792459659478559412863079847853283493322097920126177951846874054060668597741822296112362544261703118547263205189705953865266490802482853402823054473628583710507503297523993490060008337003394623677220151288868463275734727118611022299687055336875242658065823486607407808664647494458667919694051110975808991327168934070335343386843705501993014811602154030335024011961980381714718747858841732144463091456793305897463206466271489512993757001986574552167966445455196930329857835429475954062354947148557773110884743866019731200356618914679666416452566282398922487949965461966135861259166873104839935897247931623948484237731104556105711504637893698106706981691077621981746979320328592186964276975760595811508216851372372531555386179799188569219423399847325727306893041236738906131986311888537964595075496548221032385090506061142815375515347482515873825468604346892910886456905306151294720710640730641808481521560661579545070975597336983460189690250816391354430487721132757512034059207122772569503484007382360736848240991200427992173451865929545147646357898327491527090033721426834550261986783291766224898828684400251469821058016601673761657090995902479639559604082332387477002280038575006902350269980518983641549958424490232867350003003180952750168725497918088516329620740584834469394359593533279453409362341874146187811687442211522797925134317076047289712368733090245628408747076474948561610854235898373916094770568607252372521827251441282582870453467642509302269036751057501990667775356774539212488257744909787220915408287667597069603886411021992064260480628324947260380857185290537533736629818562665474632275820820899789043604927919050228739105363819242509702644027855532408708492705317070921433515748263001334802214587892402162109879665527820525017744420181761904754335931364482642924202525002846648217790646114821673974431847696710083710956424782981600427439246012173682407575826750680812841364902906894604826007795932017027845652008488702880393252828951492590381277571342408977167047877598615210026592116431147043258115566319071378050289136524717179815257939689685768679052720194352946234971476084606296674143577511384126461912749405157897293581160138328409996602381110699947823738089191892009903460562721850526765532033631710364502550771726151586861343500647560249125059284017319947816963969854330906310140978316679885728272669088117307110824317971834015759895309206150790737359562493181736215873189457875800435755128534066179126541450995791667957599014362676234676206061769934849084963288689077071744014039230047612007638877151072766278407084544158641104140094395967519638317244386747108231242071445243604760941914425700255098978736291842240128739459223874544205852663947061849681638534999422927574518423766586871805481024351999578315756832031217176759842087733606741434570015078932131789767544011208732038778189310165021042351817897576200399932997935706837618385730151158495782145701489985128171848426709293403733394413974692220521141686161965740251771325463800475908031637940615591367097544937058830664408783567835557255877194543206018952864828298405657832227985910522605348450946111187216303060702275706841567870986326346375009927833685236392285769657843397445201562501069757157202112685070021322300356573318459975560116028048049218688079628252786524466394616987620471537771555164618830629404038675146097835675241151679198901674234779012526134328752214587237862913076164699217521103558504185853173004719856636943416833672178295860825120248567059021782063516309275397140042168692971882447728200114354435698359448627315150117082613500177104090699605769230198694664354811239750680739253623897066151201665631024329760746317104546827278533044428171669234700941624763630174634949205716297594331797016591874261652684962437110312672978194214836271861350520691254158552109739198161300465480349782026011401229628506940997827942585500492195066462817863751475182928939504924497229672839372199736351746113933832657243747158954386235882490075154606223304365096119595571553791633623428185490619676564520119014866377347171599301464859234480049054520789163854984215406865050805691453000100921034834126256958549363931407560967004493891209613977701958124879596577319484197106330926884269845161925165911375201209474324952009153935296490560168037356649018920821475152906294477397364824050854169447688453326542253092768410289222803265341124137180725758106544880420971757305397207497422705186987438723638667454067292782570944161143463320324207179648671365385168922171561708850766921108539453884141566583419830539166436207052088731192814217256352513058753549505615650885649604810116496690896851174660443590922926851961863984123723572906812260676777614052296284466839059418127493431794332177668351286152304832252647416772976683882888870924419867456114836643485618568372653079136794985647621618133580007839082318688110263019308373897171671441455797511361735018585180531074803762684160000189044300500099821023332724578598118827781918768226659461577519988676843165616854456131600033024088017583996857633104982860208432023454150569438248360971494108880361289038109060618046194056699157853274501957879729545789818878650580004459246303441252865373728197372264154010444272116850939449771102653212228695991528421002816870694339987205998156618137516882319882366024261661811679605929478509348343011400235320430209985554924327546617579670029779395820385529878577770144968948721474338145878679647913611742535554969726788182739836573523478043093439535783570535572744221435267895610917358237792744564482053291387951718664014625884083032756523228020129574335889047044744837757971413153975156784106498366140353379634598938550350612690544033297282825016613787820992920322963901887577849417761144467497959417671904986027796401816926033194568148125425670690410694931860894045691758952382458670804235298904516490736292709987062523033503786216658840125324455629417993712950642485879780924445310057149789275656305395489251825389786611991950044868573588642865236304340162579046242151485231556292162280748155571592615931840360544361111845359928994925633172727740858841335929125933048511735876637659196473146197964823482605422884878079515643455981122063789923490232417049160409049565804468989918337609322814294358979047229944715401465830091461932505194923963065324546813182749740019510476676617418118030776730269850270610826764133344556197399777194323177297147130581903638135440773090737010784617977923805388032357743210333996328798189689171173430954460500239413798229649304143591753713969979391065051378638319059006668588512831640094748433186783459007868700264101337998099356810812081962574421565579402767364056225888324764574713785562080633360565018251436703213417518811389648130469927188630233253555676330046562871694980659183889113489092367015752667552567578922769874200060502704494780645285659460818074130467031371050870243420647892419867786479143795731579099129691768324981651463051205405388756192265845072300073482856595923937641888032993537279532490647682793991675791169286857237540014158743886159819239435697757601885235155722356090141450599108148260230842483574686135108430533372549254816196483333562266409917001961831346652099641410383511742620894197049934327990143081163307408250389267754485652215286991494491850991944668714525689839214056795405126092832037386221479774582906202644732896958064032511890603725423008109315836838746919525458433782853717330079181365069512109586728536152857658450673858143271378962274389313222992591257114639893302596433157118644861448943667630137167825393650644329420062308260312881391095739825984062406884177106841854035507114325809259912432166226661471070863940332339478308737680589932313192320074116437080719583635347423399800125219114818892012675050474556581967059924732967283062095675949338440663520439635701650556298361535049822595114957561486072277768530701958769061560807809443838487604901579206038661535417636544075552762143347412402459450783004656422003563630559839587387956509848744931532213215937908584961012024232151448000280691467831194610983839863563402471327981159834801917889620280644671676450628074700290723238839868215785330972078356598892389680076582095087546483598214603424764330873971191985347117313660304515470742692612500530185785855757260756931092756387603671272247660551281448768562999487847852986299742641392757554249116580950582571631913214980261351783265418320602943409659190636470852865981582255949112399885648056873053117171190817335768261789467374111876084931422004988562266178790004074743244569627196998939604096828957026969476416988594610326702369868371948177571125600723949803880306139644172147898459679899613292172560835717183673010190063666530597621543806601708583999941847158675734566404263742828770619866159987366744082294019833346120750535495722064446827823651927156687619901991603019098199398682955131337047403232320446093930581195802072508650339040446984291655366538092235390631738058792063367669606050980651266318686055725725123744277470311174622409855559164577620272504413642683583311942240038673667621098273029664279933651081264217001601542488857879494065038440155078844995650906947281562793534066577442879629196936772034068647023927306591697169074147786409768889829794298613349831397819238872182158304819386350171350481200908292366946264821197152715923109473466487427605572693985120372162433073622783079630757742543651808823302045782538844630432969332443155377970848122172398922846670805399218560207692409402819879195011131347889634071888954021373377685807592725113925757817113663304308277213408113852818968803202959001121465240290205441677493001420808648895653054096289431524910724231779899503986703883094215791054558443328604673572236914885729820624008736245760293841080246415423337197512421790918511147246576972576834058407880189229501881453755787302402818126181933013191233896999457357305105997133367990155607981942435621882592490170388563617365217186291324901557801062478877030004614662229538839994781852877893451760688419556395596662246733687904734612593048469708468927073466915257136076011135767541676075229546083012585005002454650597265046443373104017019309823821424916807120810192649661108654058257297923879016260943275558858273893179013235427263762977353759652879568889220258430997637880089671202585521789220713300660300780286180748456267123716128342476006555527856857255355796652851643846126798742882149019288191731406347989278693358518058914943340289700117848251509828144343841905110790479633193772520666870189064337158429499463113499109869087646660421759440832359137614837677887148360930435846958750982529903072876896972318802708679493287862331860849776290018072003692799481707626965095077687476302356286612447114408338340165748445548822548040041353820212760611189985446860036620878340007769966660337117192520342314911423336068470212406807098980176488939858431066672957949224145431096066146229684951372892408784630623111860884232395398673112994384727196509478868028750453976817651118587965941886054057332437740627332427087807576601280124639703537817023969706140989548130496766583696526745698030087467249401961991675904733406640812278164597917233467942491445137438579262769323020313462615028146216732987897978338583199263281056481484401666840044398189651075854883507776218334063990245526626669883496021875315961751184002004834162556599438002642495719776909472345804914839760522972772049908437138946920567066340531361970712544116141702470836390536321319239237634335918953496897648542282244278183242570957946226927943386064470796460139008907537408717184426989798136471268225954795910227511756562531100927537710346894023663218468520246987119338214767691542216349369342801165603576794408181754780939918233579598198026395380840110998143040309039656425745378359552327202036180999981347179769891835766135791850194055624449920819823932859297202075116168045957181600914120538278049570602487474163604876130180052866294298857729969240365894521682746848474204469048493912878072645927628191668119638570190778891571310720222996826701985416920337180546640751577230611738285591063973282596971100049092205892353540446650736053336760346307901507052996141166136351008929619032950701835956997794425156666414673507777676204205984464523294211699530590338357423663751683149393007054227488878073402219430138274532351741164831422378872963037247122901357267192577920557996076641361221961115443113236883871783801447381612706449330917395072574945538153939646772117454256574710277504206825193362391163074589126848017724926095931928296203043469787552609477748405643360506190957342019254782330924822509694573130369512940747505382109553348265977801753089089631050047758494049009448108770225728149969442339566122799722701944606929787974850876927710043047660002388545330081581028270473919082912407349003279107715763958899262843570543219311260500589386220188501414722138554889774239782500061696585369811446146915806738509417227237683286990444018884672617515439612151353115381747322250526769492153426597844490729871278535478528169531905129055463694017801075186513873049901307287252947753578877731863472029290232884888027100663527932132150045166418461408462281606214881622226093684716142884339246564075838690891426824403590410907917543758747905743619267022563069799083431446806488464907864372272759699965564665413275282706594836629354798234294148984936593693202195876915169725583941407297597721824509633729304338371363684727463538329690867898708103583992937863226798336562021208333696795710846511477957450374021188917345596347991512282143933799325706419981862918903494908614559583878010805371485179333385106035865793823378644281796835014899585822797774590145173516109086962915612504341902069084370656511531025160498714397572068445168234579025597664236716181420644445405183991036649608377416954227543855232017569458059853705161483429050640569171600042292486699672876977560171814799969082454796514455581725459700928255384354536695540786391081514159071115686742646485515276693297859736175244538769492659426120741843382125896321423289495017567100554640570529545777039399196846089001297532679250785206007172981854234340570561167206733829336558019863335128887374799271560023420884859936319348119727592331537418106410683537850420179301665688802645739125241530374608730938069551491454233484225816113039866339618582655025170034286587822557996897684168548216186247475478463283261432144252518219697462212623857255179421278717138877246581107400612608502822826503236567828619900069967467155933320780659178596880331551354071737118887166452844560984562001733522705852951045585359782035797126908240821827274753081825305065842203682389522052328499597969783842789816248898158992040275827888819171576104535102650533575262330432269384558002713548871870751022220340701889453917877898245876069535068337144876773418532795188584257047984100277622235581181385497029334398098688242068337876204322273740345175349359863436508276450026160024214946003168681992144256590028772702948196642095235164803505089010716583727259249652855631167877898870141134120108422838228379765290245708576436209164993296831112987657645429154569523578610361281272298769294250417525439011423603196783556872242405755120486857928339482161069799915356433810772840356710112427095514859669222677993145653972681700525241223097615902387643317247423277760099162551348569764063022196249383199358630933309199513416751748125861625027282317084586558337104424587603327780625776109951928290907031913238972149770693180262055280258506544662355953086797017558734759861992980388464245518466930183413309668182081815820614804363329705095650960427338352498102593486275700533158329721996137779645405593916911928777291470641482516238709586542145200439090389076004278310323214101441459701512557762995543548272019911830110184105914098778078099516492697442307161040956712706408488258205118994308912565119973277481070601899255509481428634538009250521833856056953975637628225144768952013541577814886597157583869027565954774179024169667124466389925106980422854823750684298286293605338868482758805296731169330418392800825202893709770746988289398638511465674998123221888244985512325191807267539908217715990962489032594967431153717479222211365625612777412791595600025523324719283291421484920686261370961669476807475054612153430054013432102129638820464914690935980830870341274490006807514837975130333464828662274807442567599278580134952784839212532431482275734638481296531291419699588763530671684152775564445232175936674342354124942595273426482244679623846108603078210117654910438767506862235208845790378136200622807346260352528124872939243540534403958243148135709553033118381484288173991023020567559440117004986551214754970486956179338161370769497376670889443921921658465018060492382448665059666351285206909857773773495222336399315744450583094892411833150667857844702536954776748642422909335294849545431266313479562337514187058865056904008556380393013051505559270311827211019029173684875478729635773725752352668874127730043765941731111739384075240490172200575238170509536811831834852092341415610292880359369658657132752021278764929868573994584079834662848416083143015909554370204218675153473114572429339974051391856688369328744528798260406874142293583203564435081726785564408696838567960975992426643738699930024006025933500715173836916336449534172161210276923952533314323104250956495678726057562954841077431287881197653005097924366190756345122173303374097729726284801427353135473927144016014220550493934696074583882181060112148684173361342525381671118547452176309666314564507050977275421708767370627374333962693242204688065314804524153310326764846204368289775940378924449538545636001841813011021480347371871195287506622671735795144211214049942157715080384890781277834252125857461085867533608277236433978392704975337195306475729814059160757767746990245868905055255732095744126298818646698036885148508467659760767212672134522801231332770457905475516008136438667790203076085506502524361588359306446451013971315138995345700658274223328162974455827176935433708362695218867334179021485995685757705659480433395485265376549092870867953181854966929259038204244817307093925115402805241370917880953345830004075110661274149552445822651303629189409450897429501111925827121620649444603201900478618840863691627452048993482981979968710609613400911743072257471357423355717227995260515804397504282762899891210954186343682611897906710739022430060222000451489383483910637080419573941463080727707974361583189071762175713337394267910187169674763769541232527813833374873605884568928099161617705252186109065758483860486751699572641966933575082916835234585574469196899322418029884976033477380099446816681804789852811017178869892869861574504323738513672852445578046210088698931760170272848472060052619761137999463127590514614275161024490336201738351752208043231953379012973990326205701406792471333947715060762724641487965225126853929050589257837231353428178745603586373750202587964456872942584629567058026276786029746694394863415001750720660847776712160651365312143511920259759334320402111283618317088654564773145122180273666153654630557943628782663308722425273576028983740265252110679398004596061123441654730676931931456273211689867492367015546526742091826590200821204337142342587140111779119875186353901503095449068056390862869322500778052241243651958406613954989439321508904988086480434005656355845041270297649703983542685921702529004644835516455078943724284207819710978285091891105562143847311269865752108892106460670471705589235896946562919125087060819973336666237448524048143964064688387688509581757230295675733814982905817324987254022715291273071608571651299125526508303484852620237941528163762911671448998567380173406958282224869634804468867686963853561288635619315963930255545839308061579537145281675773303316106259523682882337506243188174910031460673722842057021415498404376841714402080358044759810997537286072394616925834679905581315847056312307572983106200236593685077945329577694331372968463910215993808547897090758503893824054709972790427635106778730725004705436626979839371274682786051599153238886390805572343071570498253452339295883510920663902623012721775020134381561097144042500302291012548165018210265123114319149571268982851063394458025775416155901416956606616487858881920469131594209793072322488616209455396421812902177291813202449704763340671162788027568227988425048623678831567051303732227965476761342949928168538578435771935724368590168110183365480006690235407399056043170484397305272420744466345594242046197796866922244124990877492864003983096917490225396243115062756766127997730664834008037215363251403451752253321174155600391517806405199721847103208610414197760490699530453402658783916011414929185525348293850580639850229179442985229174065685829926330788870568403842323805828780095617617067527075235560088893556242689410531679503359020775715688668091135311620099515262716117521513583869611728691135107458361500093284619794574572178736593391681272415644131707833041009373035154864392974281086781529102869284924724606600065186419342605412308124900044475927560590869272749570384478176883130817746358623858097895354590002742241775835157644938047122000843709685759098258595961129744688995487210027888371769959454896467625726785091393143274967716021060080632527155766541221472017964965443853007485118001743585376084639580810549273662596609758956201427468197111385633990138181542685109151482155755505119593085477808231629673830817661775759279592389379318859240486415399886297216572258673547594966644665974805781475369870989452488176273128731086252041867819718541429693714572795870660286284720014518914895364324519973920947970559194171249428635073102183190061072663857934481680189210263621659484509665696844881221245517649358025319920893396368543315244952625362587061507012316823859731834261029281865154360271914820243007295523192320519863343745352327822040485091221273458505509109492060068620341910288295794903033939388915231862186945828996856759694117889846285078865128275359817462634717058320211733188867705704717758357243522673540298891000471585070217044967538621197243148319934978664215490800739599569659156829610388962658770542591146614575765299144296901545636713071877864306121951748133678470403758042196014792896142997103248152771813023434869439503888147221502954945673704347811818129082102063401642782973175422654000712029705084605140087723966974391927557624665278787647911741104278198603760888735027604423896724955910257236206062625929693731910121863924904681109169519377863208412578439991702892630717227720344841604320119565065491841108260145638706793880104450336378866874030770541348557652818294394422592773016113413949019381348694576829714862657362804498342278744528130169513670333048581336914767432121658243318661092226204158404979353261825371562183460151676501530097666384309743990958229502808925387551955946816611397726678520160734780269405257454976742128198731266636627444854188884802409377230931792302308119365734647981685237160727832103703491125660613209876107957084264302531473648162769009787949052423384646730686126725659171296045944673160380434833182947230346602544505039796412689843895349267916985385635637266528494635362758421716543622283974218897811500022421742532836290230832184402201474146138034418969261539443633071594188450304241586337995050810695989567622364223076590582274390239201590629710798654183581104358025905820329129129588530659147740668763322774960844221550402190044471178169585407381213597713806851628524407592081995966526978598774385607382091916229662715820598359703177580435691746253601616411290506929134787844611328671984946875982132095785945504290271907803435522898760196094279842764307842363397348786973124989645439990981852501892377530731062219875274864957704587811399672825894098167666614655605433029685330382880094599369628358916181499374427374289981054257071009353356187209116636475276911547507747666141175780821492159795803328026290087229375711447503675057391036269628567083544932857251525324779948896662901308693448025455429276168955134904837825970222857621730382702016826792153876568293606061694810959692757581910135397526995756538046674729217854104397009788972589759812323753654475539342125079357655417355415641244350088198893815658806857937410729445639391273397976809542627915842949422526363122122957052952532126996315542558828395555863375211170542316591622837969461253608453494948893064003842363761983312496990149605169512149678629093960777926634392634268054374374265709101185910321938434099091182303075112477288189576934501798525428952543907551576856668346896732476506552876266567087186792645383230602155510203544537320282152956262982125664159403005883716590398642898877411061670260650786685466272772259750301956463682060390674853487928085315711266624550310543301862213791071786104699725015950610699764059842154626062176173500029559427389270859236002619622497066427700976644211468590888012847105796626621121131399891475061227359780122337258231286512952404384986249714966171520913731182261526480431635899040488180072239227291355421914243957389784058980989211383888658647391657921007066288035681498030146579615557856029124660146920648928738968124239270249163548607862584161436851809423184693321701188017931155076857488925643983642323586805993733109927721449836349991829325783979364125226655865839803906619864911368931587656301973798953601197357892089474242187364647835561869366943414366535743136586282667732868962421949373138592711767580781380995168006445797852471347571435345948851163406767683142296989540299596005624606834258432631401349554910225631762404240165761453873664002557258232876365782809686500965826215622418468969326619430497497088474286302860373791474228499177478883069661327406172410881824876090406764986832846387280450916115673706523950975996031221432596646187970603453353360273345162589683867421182474639365142997330002474158380151243613430152719295550804929007534416130752067792074537369860120169442209436857738266340181571159728879811495734667438479390013119640659323902220316354585074276380487124348881250277437938535663152285476855862311245075643281432743321554258013658176134552543155626664486329441128669528113869242314083942930331289318983729265669137780663672876672559447508840557962875362630545654060346485133540578071778137819344948660016561586162679729501277017149765701254297278564030147349514094911656492586872071038875287211630414008612471342464176686852313063980884026833104467013117372544871768468513080441017751497877734041305684581102967614243293782990903433557343563070962090421854491825473022195298918960983695107872431371742579639941913559823749002150472219731671800087614607446374581169612164424040462959712149540919048267234118544387654827844361656814904325200578846729422192814744680501359137949931831778453272560096535694013485097047452662400547727247766169838134122718870454612690096444016451580465402181017699432696829100862039292783164224991247491454945131595334221753926780924838089684310082847510560735831434664893624208481351963345321070843455215257936139161035015364345652316221272959268832922522003493287485435096039781030997807827350471289771765204663100144256906542239889855810859484915837875908423090944509074258237399188338343295355798978586614657412914336380416085405542056795695766438830048145284165749918971066312660602601806819505449497210988047331898868663276599657389345108962681975091924426259155498784348309143720024797560512853326800306166755856247130548041645040620531950113311114696087079825463289890478366741939716373237201357465277453934651783667635948196397994957674099518290935073190871692335266594382492683571032960767728411348124297559724566593179051093943740398286435140204651663133032753349411054323372226235064713214666903099043105969114676237058817217015952869611280927479441890154155355924329961987753533092077894829985176267685293687074165832445594559567614410120144201263502692567810871461744948799802136074825894227666067602630064700735779187958582715001206459980073889326576975998193812896491506045041061521907166215454508021639759949590590656142759706909890094906871398411729836392751805659192278709975665152099413576057660947414589912696871886996630301466164999380333485792658820027751981327843301650649788280701193900386576817334675242051950343902086875458996338292505258155319235681549219402030337297181750614267313787852851402367082303234072219237621947493126142258734068987409837681857085896735035874368766295969228145192376560438087286982699350701039623373174012709763119542143512897874832616463825433739072149237787356353417216146459752564819401946125934019234538067157576994768056435568232790613074528423496828956779913174008448421884684327911798222905979524879869019031486426677257096604227348496236828165831312363566681152717720062245105116744635195192992336878500031765227532384557374668609048092982475575558319427857997599856990031599578109397203931600630778168637983019791792090392924940553060128629654396515589271475011196168170397693503548563908831820615351331858141581569085334518837183833927187016539212097797941164977746748467712904549452564721594197384157952952660748778659970320635995484626808393844023062780019182422935540111084915397670350371873371991615540333335989289305258629014086493015437995433044953257823511710075524517753088280038145707873360489142287822439412326361235674928330594683839119726280036426661783908030547376684265112144976384056823759385840398707329688567480976663180840600905086624459685380912853870997635500980932045910455675461025549542113871271367707205806188404207131430931346148276962431214173609005260450441267731585152668645092856644547309321885117478988366966109723625639293520651184854013861443011888261353595239852175824590517262124902682916254487230747463341579476508754599848353385792230097510055131532885653164799394711563511317685461580430964124339354723004352461369652509970624209241224043650322795988125408801361278223990819472256352908556542302985065687535009709006570838928210612045474361251098871886837299546311389703404048442359884984191433086099907965535024380385751862872615207024421612517237520142150012023282396007321356708337549177983695148872098633205822107174627600786983805961064550141132439177927459892012104025379123163720767709143459576942559963785734972203625142074051054426840044720690613517804543549406107703354136430965470070435699727148426601823554480337227651886867979713434123252135642042841990674586807459321184900162632976058634177024809241250674763773975765843798264606395664452250554865453931987194217406791498169677062993685686142148596277043003290528859752223599753625831663066910039297220356191064612683945038543057382004427141094209381857595343650702711470826541808029290911635245235001753972601220199335289684236964124285642642350109994037804754323993715589051781119995508012642757436582268880404277935128025047614321930497901893687854863154531898299360357933694509580071342188447147633782166774104656182076799953647315303239102897558475110257529340760319682099656116416788115247410218917623593538156860403176875261247177014427983719885414020554176605036561953867180158439184245174125180323361379563082239200763282231466336475068200531365919265348391454599537182456291012428468137568465841853574899440143436510763683748500215284259791471861201105583968457096392501832777260634625501905623811216915072380969336796200882860599435393533298996570001435636275596937038005874432193440420283417909081743362874238880235393215831404708285707046332151135261073597689188091459633162051879374841517226024207953917074744212477570412538827767413068781268708401945003518286140281912744235400918889935605318372618570889161181699722594315443326567190898545823729270963233197158105078048248438757642535482868851857317125811216176613232774558333166341970361755107969626167483038029678393746080295348920745798358209122425274644803962421476684447880906210528279093458772362685136313995926046890118128955914543665394601174916341638521462222621815328003663246575463897218235361515361943820028539216091892250989631678125654672010986566248210628573526752532781906332969713961080417152136398576148052221367410598609938804088964236375807673101426239104355543425228355489488368794989417381278351133862859373594822394512270806148458269957262535832915216727366906208510567200366083012929650993230439530018154988276098284361277977974003042653044499316987935399026535715575275457067801900652348005617017596683850451458426082825882681834173458393048241075928495106400051893199429730428634667989426449882057704743322960576677504722144911430589997614969436784534596501702694051740606421081294398777644771820277625417000672390907831801580163010429401318790530444757841595559093415124814920913450740777318143245283066491376537690421818319802857558545871417581866425495676177295261608701593453519686380791856919203545997338304569894471792391092541728220593469808901995237542722502758795664300518112386212837437966571680763212488582190585488997102240634360810087765363361040478842644994032773652445918790622994847620560487689930442766759783622950620141299495070638691194745247956215270035905260508160695910912276961326699638030745475723114175706524688401189401303636552462584222621347085211452428290850607485200769070021602892940355956055723274746078706553176411265555934655353791672518518734431563424868462340169602495616435323330604117729595900275199898216822459650203057453098178783262705889889561681538150007128081490461453640812043888619641317058975446450878578030448595920648598655708610598209851783607402910499802835998462062683245787901383847975653982463974088544012201002593753535251360015990593241182558698484269125985287314141896906064190423141459712876772120249546807851402533387864117922811024725975925554374130810438488941273759312472696969085684074655833761504569849507795099553973948082142209692899900011408008401884959284697628067929383939816440605667646692889718021234743045347720322730907271466082579202937801393181732003378620240347341482474232674090663132902021375237278790174014900598307789684114705561794030077385277695651329985329713057372984730101419954294815524862908716675378706089309960117501722053116963318280024874478194211237387927857328752521798134860516781056459139610642115585950210045717729866410661954320847338009908717457437525334264158098641493953919385537121373462231715003972229057749383316863213437639942678132433697302655152436515624678809625066453246388476099298134486535565985155923793350554798496221712054506175849184319761868928083483292177537314135970443840869578486371506940532513802136869281888306402564283212596314357100509838450647714607007041707598352594240143081170353784940847711636824863722336069815033030727936453095808436125854987750618476218539164295186507342994154805628411632338675709045834722699036392049879462079682254980299502547513923175559430613933442512774634942449514954852656490356012378257071859023137150779381263851274698178574248223281171410135449936480374281162695780356972817147721065749528007706232066257949645145799755241238779593711410865852112448978490103963957990071535335557017539089444315003597330286577890177215756721198743883201945556666222852233451052780860086983152805857060423931212942282167625423208526889112796590413315443392679625906384383424503067310541171561114320630181449231514318072221809100994307568605179735404508138098446464307426694574483602977801195333862293792725113990257824270401337467676699345242292866081998001757187428084546969803103716232935478909964373396017211714932306080187605941229632009635491205974905088836639255129875982698691454115074324976579456885253726107286493792175045816633948869667625034489020946349787006636712530105294057576933704122665276906120996208995212543980574569149266705418407073966946148726354080776907907288916877653575287848423561843730480536493757886258130433702885616829201270767255099565464532936271438996640356080758819811138159376240994636860561950323415627138150192069429938257405952132533518547071494251676201090619779637470012221177857106178083173467094804336647011962417869794047031047943213243820426303470576832297316115968577880275037126972769578933634724276571050320784695464861414873751063846233954621758076634523693105252620539488687991651810271190035495953247752068357871186767236259914975409938215972853290025624546192773125584538110474068481759471464100196618346869862692404143665773149501134824025002417921927116919484749242981876912089976293826506198906502120326321885132029052821293053996985335988536457524264926886506566683522674002490079059897487758049155944877921096916861456460221748394062520240356814349013406424298291134737229814836820287878916405819287779520983315285950449928005956791459298547907701878308098667532347724814908123622645242451183933542265137769364702038374707305952892262444609907748624153427453821675153758957293044141992154845701767599928011073117333322775489996990227653831678441308595915222655785775076826594659723990592848097303706619128646307363962614748733626196074660530344059490647830462309900167960555870378402854084803699071706037737981810249290525564364847388869904656465988653358981561735405232507741593662207115685179274069393303237360319768846250516069909282491151962189514928306753223879500009884964200328138781073881109585427329542806359430652106163507546253257753731953339731751882078075273953702437696410459585716433113822190585211797249256210155599765948625959633212795033004186520925644487325354521821262676086697387569900314904453992873296100687498131621340342438245369958574435968297776090770671295726963547440029841409617139487472153481433944892545205222892673894588465718113689468933970835840115928426363785900449690285659167826440527867679266913916227510179259995425119027299285425714223111316706379632035757008420803234040921960287591755655257773429710312718127993605299947957495438166451907024078479703927739784010105054442788807008532200655255154748833171233335956842707354195198640009882748660554812194794082374425263944987583646358544464832904422886871949188101283790045766510354579145695727160029687143651234818991151751052697175754857461057502039548501137155000177897450049798093105858241074103363835267205058647324370645419548781795180474257416372830127485730843360141344299368016050604096631437243676231111762550246594121275722520051386203656959256087038290976192540886923628359148698236570541644544334513690662310488894105554029127621414091572307941039599039694835637650972025149976529272770061211163254670092620749478721492580758417513421929468969423047755175421349695610935929875390378041655207527578993930017981922349452498910368322359648308641251127206971112665054292702689593254338905648011607162708632588314243695257246187264859541062411470041982457530302024870326800087269255900263532514748886582122258883617068726216560365666543070465520982277147200039036081637416597844273464349216546775166088802169927426988444939802484074356139056339638359505292417008803075275475511152682788076027122962858265550935319391987980909241138985579327532618540831117539187735179310264583029409202010357055843994101196596035012635521799704208246283295968376574919482993877039821169962622753876262583408845594041063542395886824009406249623741984181308221993436188339873712402963421245085725680626562316190764945898810747118534647092694395726284029495150392999092680024913313616351602281479969422850536440471236709743078773240906792887911503555463072580664441616055040020925499475715152898229429193979705532268590650919947531265317376345471580333715094915874204021109632870115745977348613846047021177598847557693742368420049934740121109878182255995156571682071121519820020941294770911015019401824711815822171262302000168673668589517611762377990194263046544834342009046023645228623659829154405612879270279672506597188378828420413777858334997374533132994787431993528679512655081486239985189279628892112399227693590137577320023027278260090350729518585593736762534571474137520045306127630417088664967392915485967660862251884896395038929025610536655460884757386341843926041922218917997573791849280482003449089191161304565430387466943081560653852901592295516271824066344687011281004927504308597998994340505510119366452504871034364009504250535839696825160911264261171624962490726987266711182487224731815006604794157385616425708530671291160586735430924579401239078851601388508586607816341295536571671766769143364417875947433942075717196411091375100086646023199568637534816516640929532838139957879640316905936325031342635467963975927790958515801465046678288451713928848774697539520037749986877386091109114364279425715915534253294701597097353432484510692707357127478968817773215044184887549287562515062965041476664621020326342628138518976455224161259308782318183761788580913857417014914479790052467024765348549280479902961257671903151410559331823512365459072517533216580150182451555406912653764542229858166100196203168566146994524337675706470085433418331074136411812392542046119486664335765637781242813578918585649748660433318650035340062041740474780307312798822332807088502155182432632636095213309538308692548311558929515490395918839699734768302451252322390556945277095491808201793687072596335939304203142994988378876376839816532028353290713718971489141113165884310892360476539478461984975374222636013494897045743257951382335814997557393771914126981314093597985126883083594923312599239209089867658999515378424419840094634143112128091620402765434831612975636917643012786409752720183396734529414912286469907690937666883918141060862590288490433756556152227124597767629050329049770808113315503955599710145223412011333151518444406906742941819447126950865818917807035962552051259369824549371656019921748518195561068923325413234662725994721600304264750429177818235257960701716532542691059276755168566736111109932845755790451446035583211355942637109041137358196557936599469548033751026708277132986353440688604344800136105829575420026990186196393100905346957154153266491247242161295736195220466607532484547587905531217244722822992017607275722949301976352742309988200106206599398439752516399203212703418306005711143161869595386928035736092284505064009462919829406940487602934043885218336503954859907548155572335688318570912863023860003421049107349924748926985857724260695948642433930483936468837425886202741537972974436830267283560703973164564503476144075916650046815159892899954436204628328986948612304789398298155769887052503982238160027891571425462626911855382295179660713259086505411824825703203901388143430817778531566747418680486209717862206348356622914015611270010020036220665875059981679302815879391172550184613221528173356136369885110634953656600438763584265035525460928485390427696100611407126196581433650240510867438451443680026954551082783498633050171957460484995571467564035612414033431039808276810289790966316106924980662722467512414227129968805789199021064052322945212757058861871922475278802462094306592943307310981979447947910124697246282169966553843476877062849697812419463878835141017126309183977019564190746427025541449370125085242823127309174399763969384023904371989797937704429521172558421087071612101553818001554303570685083663554454757037736835029952840068839612034807138053340357223353410005801664823211946948403769209994691831755899797678232080033505588464103512648271906734760123067415894313158097073860353983706410868833067038976468721550757576442184633035504691165767429203282043017579356745503312272318594989155849397574559918723224355444654321262286216852902699964579404757750588168860747644676359113967202567999072664543457159016876286067408761161845792052138831653091241098062065789592447836890953241487338892530937129938634830392264311969370388475175448052199725284808379456663095430925506404219825516385257055386074743992877137012689007845303292448906233021808580830499543365106196916167749024358370378590803937632177681056197394474647188532719555096804203266344064656760892175231782655374860506253871877794095078556080215189403675538687419513520188180020210103873726854522207161780290689406665092800079074672097336330727204227601029535646015486541768713764027461504664941523728245276287476442477828367183298908191416299882419945504948601730495467475035301316099501003845047436041482526272057117756326433422179002866210690960565601037969341150936713416334164865593013989403856121567524291783331619726716230333057251867765300010732830687643639638752927359457152530048763096520796382938607796759512652957642577830326046970756276284357017350043384275434503925699413842941791939923815764359032163695024197652773835206191494435510627108132291055628133397903150697915400590985520474548884232568180164544824690254526328345758286814170457339704151073551081094216660083712591398766180494694338224678331484000387225414642953798548384523322795155750268640164253179410419343267017087109404281319443184813199327121573413099910468309612556347960828089649163019568220047100006085092656436502993028309158652725232006571465847025364950561503698837025679403196957277320286118108676900463122843288584715523742813094237330371172195114397610937095048092603996813367343297123700059798073559190632557810966871655690441355734749048802225557665858018689350260643415317875884988202483492924310578598193464043185158114743520594374983173537634070452965002741586324629263503361986774550523576820664015595907501776791392912249685778274626102502210986943906631859995905480269767008153410790928538812358839394174329684907163518063105512933836806328832263378062736900254316510272843049605009465742362220543828722004882875712984623852060714757885676793133543583381582206900547167229845468810680502056013358178427251460067656514638041488951549497268349100425370380066011479023441250897368472862768146306991880463969749636332702197466009349458019010867571193725576122486090701799549469103118778162710069477911604710764824886532587946104288662086696198258540507383764076518924343233358190334929077231720245326029294250998783787510838598287594094024634926189626367039774037589219997808787451977042239506890857564226346005562887358338587032014655646746597774623003744021021725666008010740652077857575659121569869469659052640137418325754495597145242449600503977350994730766900833168250368468880549524240375138035643726851104045997068286485037556526323319971070196215396336677580344411467201226719923003949968235550859437019461258801897637165217976889217620686135042630819359634255358260325594875144375758366409055548006174002437357820540133732516481161055822155226181024121713817809355211169329074542311019593354923468560781309884115545381211232859491598903844324908792610728250513579986018416879937359907946327300073222066529327470650828111654443502815303930577426651029175645933350665567012757546252136730077091566008604184310626708327881572079379902990187736381260890354100872314068036057452683427606631107948075061219318327626893408458328613382179786709392580768557738024243648839039494121351582115615463519193006591578580640150004247235062807750347169704301521841449847323913236130982807301681449223005803327947473883995105435067013253010357273419704452772319163138934249408929367348655867814144836547767482948774942870204501457017077913338707190179312096821219935452332725845262666951015720858315330865147445845348022723942806419714725661907028056324898591020405329739512688899890829368144643699608414287322399107546234207579134629908065064532848789650556723003952960936999866638935046985193956085669805573052825626177510844194338244581845580157129042088263868644964635022627268241750539894668748186570225669540243797955453311047291661147320718238433326638648571344688662647503038927076250999472597141315330365299714700329195516519192962861614939134808790200811049131996267424961637945998153038124880707443651315930716049922384906924234669222886435431625132512001634375381064542106751546868865576716714598883649014065308308085212382705862849820859917241512053219153177668024225894501046378877734801161850962347056729335709794789112585111829789640008684867192443355974390118558257457079509799865107921874280172684770875805014755648599080923972737931580974634033987378178764417983415087124544511052169183627423853218523836504932214596905059286837946579072757811821832341515811572285153612536126495671380207574114340794714715922275618185879752949998193457085847138780367123673173024064232674016886534522331448291115984474524185782387423241149067275531241688679369049696603125560602485600710739458745058931717032029401297112938470651258038987311582346201923749860116736514557490023546955414410697723803973480735398570133710113267489704539653894101234192666242920696646347635612928543796616582713200072173465215677349556064029498374694480260401339899015148811410068543715985756117911986886516582272458818130131621763069146832342819689225008992193461081167040041378825282755248906537298081838612966294353805646325368215858370914037264266947830637099828999380862393284194439444343800540559585001610038045469285340006947115940486106558135034640764440931752167037308403908791205603582549798897189611733941273830958811785437727952547332096360954614621919445904680313438804239803503548842514422283303565826510397643229434402011067469373812126413731782037465397321587729730589521255738404439966810822759201290342944239234891736134065352334840127959249783707585013060576158341564394981224180692407368532014421990994620027222697345045234010849576188655373049078219385577418978000949121326603915884829313457463787284986987733752094137396685338559158930304812313432586200776385644388359124950485077146684511313275463118166350942298069611720626336267580592431701983073395734806920924321951010972585217120400694260014912629687235232556538215707332176203672416003635058926382908895703262329834268965156948367156002817087066227733903323557115303426236178354666374210566775824524439976316552590649312855967342098996122971606125703495635788125015676075311338547459752705297370676321918320950971703375987848364988340582903419355084999989284353621688990715068209311848139246858916271539784410287660369732297587841904205880678411689544377048781987289825566258657086761549046493927695139103000043867639341652928823161860769701178105501709423416267837417052644718802633992443025791759963427671553326705156325739349587229585489228349279007475734931091159865515898778951953147396255924066104910073392813191757418990714642560527661165809924567406833289366015011771231284264222210320899192275712549516167149285693769265111005542882047457602618815666158918922904193368243174997816442001209187358144307887328200947877512795836145109742435162337445722689244469896536846352533392655327645953525109000382666412379059721413121193974868793722933012054430893317221280509982827515476799638011253073399614221623071934011568385684531558507720364151417178736915087787346623747890723666071387395082308315463645355417509230403025557411763235957253218399018876859218885018730504404654924062978629590710110925391433081387668130111091071983400952954187501757998282402642525501613810433666574216187069701840756122764562887787533574019900172324519429818092603285218663997472170985948286021599595645564337662860139448781260911837613560594816643501759878876470574137432578006275482274195829721186887028682764273579077145466731828098326505933869407654636930679876615699842523266796507920864664125503936876736282223824355217463550883207036144620716132141529426776363977610858700278815880132838063673775581036491470556910368616417385368705568091122843899920375142664175383038449357775393650448299136704569562270578285583285962279350746752272331801721547052424391728470230539579249438972040981826954339362586268289488944472633173139951926243893985562930054220324297036245230650865449181475359785752094451225357107184832371504104074198399275524555890839217956067876274476189379282032431308889966938849929302230656154344923737182610122179402734480057094227459675455058112084372285232722802123737297388779169653425596693682896076091365481666449734686096678187579036816075788303199996655060742682455035922766955213787909398756035205701969309595455778024615686906705266992300783325862481282318267761649592411620846924582998165898086512189040840307515882222355184518646961185262941649836953321561309960437231904897234999408823180051401263236893979257810177723656385880935438058002003251868829462530016161439275079700616659469619495426871622117593634187192434570442604308813572064792704613228255875648009065608371663259742230091177210131810952257895439748460723416903375409009356854432831659458821755790934449123939308429600855909731767881612711439631336880045333470846341250424069305090053742094026354491012229895438954410351735076644122655913893325408155855274446741011183213454786155409276061614538904383055796083112123693394329458029354929600860323249342219881674148501746303891011769087629700137025352016065068510530612841342745634123615492302156727832361283535014678476039463755893641629971400067129702629786563560266820071228561198820385538420630454079798004358823889332960638316387466617392510968033713166280193214214368953938083132520319332023123932047339362618194059754136555455643723715238664504980412939056574828520394413307048189076945000507519695680619065422474493743067136165070667443102030678486946735053380305082518727155102263225729574783642185755965216369097299085179730959281482556365046565664012337584507298353442302750953275586410178978842539673242211042222710422548244604833166765994686130139135775714471436332224029311174600984422733408524094623937314681574903448995193513892609514795575008634687239566158945804133426331374071710064005510243408573048739242761726450386641102473391544407658305046623977017280692362410421781606209640449672079081817653292941329378697254535928850396221105076985047419309484864427634900318209658987701797998696673768771779121923474708770853587805810343834840883620431917958122551212368127824629836393129064184251195405684631156781703622265550189350239436031520338464649014363464689881356983906385787850272241870062473320417877670915754597051244550453444332308676584019079282321853666370343498195384790895765661262896294939649030156544900445096989742024861772663684215022367018841557508139076453094802463169896690137838763739994286949052923165923698386740511741965293761737220625234763550249620775376876206119762980036546040526786048263921049247122429830356224230453137048744983657128686841457894081120070701327433716823590302737718777276258642157191459716249100557993253996108343686203375366882133450784603279749260001566170193121472446458628477009548716799777289533966439607410897143250906246685393063349456697380335025922726478885521245021104755048516235223735094280066209638196897829849520386687275340802961188257340796810966912031269548575483104519209143478864672978824519610182883567905864215627078899241886871540321760631488756382384367510715106908637724118884673853839287942007786923042916015327484304679973978756728701236215449730592695729997183469649064631233173212010919204871791403648333159417435400526311294534114998892282928237195078166779457396860662656981482623568897795439429786015605782397233987666849391962064856105081431181305688040133850419970166466560202685180237364758088367574973914030072417434653821007009318103046463576373759269865081176292899851961302877148952932134000592161429379186694956167808268585881505678404014837729366429215612815475982693348987301239418341835018914557120366189964765840462692755343543363408673989429097847508353326962225878350889236226874068454088940498131066552008987158250522789874850721753177646862989582687235939983188476537112088014546866606536699141230391758051822476360280568081379839622124844791951894683694253268795992378607743838839900840046152292043080393188599161869941678137297465260585820416319877260453786656084454823809699033629719651403735022667156396517771257308584277029756714505519017528444638961042940784109861370730768680503042994537283561943999779372027259216532374725825250146893832242783961379135472855098535162944616796319442367468914407996831945453729922696508691340363598639844161203872866939245263314693023063629966295864023823288979366738717653420112442610548300658389465112555148573595684780114737853467571038591281457080487320778579527004388727226469467356195038507640642056509499425995980064308306770194202702140193934853360917291559403849255239220983839670720534950371268108262405928883863069312641506446716059624757472863181341636713934829821375242150668158914084601110108974287398640394391774886334737581721792971326629252583940057127545557838447452051158230553398846370066076929831616654491042549491886913226857479485132836513211069353557215106662954161303604505583394248085101720138512568725479714263544189597028138303484364863319901489225276231127413769704805105767594612652216104618219264122768141735220043014683334214395181526895755167590827817172386546897058423698426313099945923235032609038175596791122027579665736273870643408303329311495366885109513812419768828623408618492948389942061323341180366760056582648782050144420533256605280825915606030732161449369404854566023872307704177228968231442382658930108601203480439245939435235624655634524883571192750365767320509014463503164845179455407159311005944209224885899784568056060090744530024100927796405867304701485111560827798490044060655844295573614056517889564965593187824618308006375302910505633752938619218984279839609298533748435270174764956994654245944758286032763378289694045731068029793323454886039151462782388562272849957491414873322982975641858674975082915997530490030430187020657857279771006754901563555874353336597332254137697360104628867453801339170093663281294188791455141970999169813320949286256421164532531019667410379357852607280883189673939296752924923965592925840351336143413384998832856493575639675744508056633411747688032727208847359303445621717200049795313167916117720841693460245273564397717634129230797821435859359291693476331639806768598024402895621907203506089637880508908930381523746518724293109889769593517677236018233672096036917086183122822282046387939218479360770067803857293216454441382488994973486808641055028871245406205592000636735056555134935593469949196106674492197874267002109607347315388285661344345574336898553871140174913213579815408272440507252396761826821525430942825426751753956588549289085444904367112287415657599970826237132216738492923637829355213033133116074643040313510248030866019884330871378604382450493352051613346501159452884062872670123295247854784691323410421344715654042712466921744350742136733755692962268676720590842777453497059093504867808055969744448468025905185110924087938882426577536909052934115296940023049894002729973324356280345511087194956656923643118521386903628864190143562579052112656862191699479720792438377016763716274374998020155412674996788390460465099944693658855465532516220584813989109404530410459407856183208762876226778438145546764094297991254010129104065403900740972640228371893333750002572289358194578712233103576762963017040731553597197770217486981003068558870226719925784831008187490971963249066231156374473875063644463416457775518238026081791228571529890622062255612992783891538828391547973278158715295479996250027591996418912704461819355017000291986447758519343339799340994697030281726508659728527082589497491252483382409062224189185123322851042296801360794483014084277343133946483824208782604032576754413438958118366570540062391732062533419027822661615310261124039080633950155269391564231305778091571331667253612856024594783006765989558622945711793872052162401349605276956080786610494968075414539645597780370795101694455985353827141563770744241792441647162462657172557880575652823590585810128344219490111517735021023772092758942091611323048260212071955294075560000150306370689388159296651674189139558429277343923923289117399471784291622190256876356266249233789392925554737282267483282334053427898241852327810188278020090780920646579267264708798267142587833862888787777234068433940165227828686692071042615222476241811750106877163137031463964159826687356936362640752460878951915906211292968170726767452961644441688096072823682989024030241272853925133844516626735453134532099665784663253109615019868846499209291426091762138996259656883457638458475145644529652390597454175846136847920756148196019075119518371665648234793260492694770490667119410659493079399988203727078650901541953215366360385016887449997310681493310278080558453956798955914170785881052404722180168962838830236227420731205266746603332117467920486675825377399655031305889095863799864111359930261570660096416418004439800884414975466863761470586271315918675892825222428301934864886434800282371710312126638298774720231442264677234156608238716823034626926625196359079485474104385019905278155920464240267728594658554720787810576348662946647447190149563766156256883978140833964583535705082841200701084283746373979362167868335192652900725442504280765562953116983495081893376663192125951139654711163053425434576082428133133526479830812214577633215895951449425531774578610277950358145014293285160022129504518316559602081363325974370052066174481768335915750375210203870265389756906878512331345200534718032150261397711925379115112647606908724144574022521901194414441613995118862347112380045991012294119684976095074090259708933449962749001778494764814416829629991668983000404528017483093273399416304340647563114624482712104698775271918977637198889225442828717937657350025625722639437562525023455575814044128979950675007928640465889085283516960979677174761710932861027428244033741873525404625241711235911203630855674441680007210918175918285807513237055636945328175420619118172854308764679944541443848936579042110056308670746067656963294809878296088130844165170368155992971061671872565424901820053847405716468124775105048767005638610784050566069902273844593921058995753254723303076566967883908933080096888506329246977184296640498535823595172255559800170279940714823527402715221742953146813084364829486693474783181155808797611103717191164742542593179427847780419243701213313941194413480231898777421219033868332638169911880156822082703732716373171481741782880153335892138031181530160736737838124303361684344277506433736911390988801780771340707545698406775112020720663304966474232664683410437778501819751858158613078141288568961381621753963521411161574759403800454666436688335772118323321342147065553558294817970946623713881727615253282044962526800731431104559753829697104663745375821695303046863241544114217883816500009265484521488642139484480732258557778176505338072497347924357417185641096595064110444564444529809958461580385870968442403184039300115363143647234293064512624942976133798983773312175762332236423578406340454766709930762905033248029477359664780840714255882884032921417167163846189106252997325532168424194398343674346975467782500667851889337419487919892000253944042292320133602636349203627300441193264507637205721754761682150342371576139222530552309265627376455562294951655612866762996213578200872132834400685936369873682888610376851503775156672435578657281128084952732101847874846875620023195219801158379144832515780768804304976331995308387852044505738240051015158656975691687585650921313473297878187848498589938136614493917584601125361294693454629037413229423334074915412615347640145324234155703211816544304077471159758703806727425976910669633075569063436607028615827872737292633901930240547229740109660227664386851955788606613380501466395664511436605333606275812103418024235149143920517580092147781777787638129460578110343939884493490059807754889174664366862138509205307893736142488451988642551849084840915345446626195253043561078165801916625306794865256114440116682853621302242617910104292699832274068811564681504730075575442211170974962328622916857206406248457256822809668711495614595903367227072751358954605789590097478823898081392812924057604289824258752373372209183326523323242599039835276657821993190752099379857921884807167132549428338774292678407810548794349791456607832499905477548713751400704476316538080258404801686323260390329394260192766642475875132717530175089704746137073549557538811203800723934999127433879357702647075031374281352674892199514304053561693998627145980138724263958052255196326017239843089746841098039225139060694496566635123198786430174431063631190555115180855748025247508773157452934035822150572183366268147199870100737200001915564694995738128198402926083897630386123242904334728926215167089844387515788474062982015548836152704829410112974806610621487743666409699399382946227477308784315094979425904757445274433996966705741276500812244365415927176667409528475403903945120774688551743803323759458569054724154482973783847913231206936537858050265180034430338183058270527842622532586847608747754211667957120891437549978312107138665248600817402962065606043312260180179063464070212681202466970688058690745120410096734879227261896926601344101041164663864554493590157479638810133717333649481902446724453867900057006675148242644707614090583051849414893025085729603541644015783405522267838689759803669886339086555878865060759406337069187622690616120936620127926755348704356630064439793006023337436205713669892417855176553466002847952849898817440705508530488717630388261104397003163529029999928546727097818816826305750062105172359483180317696419781068632229325498846782832927530650446708872517645281650814463726694676292639407533449150113397228586523811497541792519111494907412058208677295518179109988020834451601158523444619117709278181048367149400384647920953949219155022135163109591284718846769634358029456312145029823078732884022479540308619113113211388088345101120648652574392237295870808170190511521315324392791872177772321450459142780452975307046484496446587892612752368506582992066175008587537455744488421624161017050192185888970569089285629740969848860801844843589724487539372245635267133473496852688639881062605270385776946714301796904885483525670975698136290270578321173733354948124186067203058403652379148599548019207510269711792058541725886683861038152049078060479580605955071145299330480241158061383324594712965309952540461901882504010687482381034263945841086250562003974474186358286579306199599737897008894578330164006751698462519616444366463718173630076950514846998552607464700095339966215688159190344908471159028995267734802864685017093397120782053806842178820741624080914692887407028438496827458035167624715087951705893884811436213066311105294696667295528593797097005186048104663840806203617912850186864419722698184101962436514670945827411210662435468439648121039614840685876868006396683090582202353134600811542768671860591398104135605427920311383705619885349184832765736289354091130907684282906394799783795603498500293492371941444027692871417355609269544963626275382669891508390593148062662230956132256574738916238046762049692868662530788997228060845805771630596508251509183664585520211559686337101853864465887894731651317207844459036596674474769596412478361441984729893378743312843583510045943729217197105941426547737216335322499147527180421161588538890828712813295465500543688097307539454763201131066862599919008985476688880824857778174518408450070421559618140389858236867663183313398401940270559100795556780331954648798673316405168030685292599336960099738328949578681291493793511183947209249232746388312649943756237712465102327682338686532076188541094968015048682333675950048412606624808915055121873592330760036428771528815458912641308238737584646125269250411511497813607502698950459368115456763177271960623257545421558357279733896507655237782330542095061890868998032787837213033093285582984067458261325584051911510945504255962490806607077138493669809328062401014949924025046230857000922479822218959113348133939241775332174422607558275289015460915260308712937257890264928103243372897184277354856395759783612624410275428678122312960846326143309105562525927544839939732582807984031109015654325832288669278751426516676305439933664447066293801622809826875919920836376904795697714523019671927251602889450670451059471240082570993565604324369951185429283278989108728348516760028756186248420394742314253389435231548650794962631418785668991313559036523532747195190528680416960161398915300704306497604586472674023969450811180130563240688524306724802011677805626682037204084645458300783958072984196678802253330064718164897527462549483931797379386446368072990525585373412338622795755158102552717025901729641130774264749100502326055952117946602913415340084481061936642264985029054625395410341619805562189369142806485537729161984961519641835902817169292002540105957874587446133513812207214207715878571980506207684582278280766075707456895972591366627345432343633967365495108903692933940738660724312806409432041615072560023990094233251929288868947189043973445864863399608715526904581814984306260807613077147169909272525472134840346147859529914478484034314140288806808363261724671985502608596900356183608883577723077080888259848275268445947092833844961349319833805992935107571948221693985360165610399033792268537617709633594084283305417973294360348366366230972076494326028205462309560487442534349441035345642812072890158086239587240609115716102221145174137518731246919435941405294418787685838703509519643509630438028477206853458642529628410684208269290506415201177552493471949186199894397732298385535633430324233676595943362488719339067372999000806116074697522431936674153309358292095921903773388837861482538811322164366944798087093638840728829026030288730095896481739662007895077126644955446097351351651149354420731859077570339121722499123118498663048094175479059989411709163725435883798323648127499247042791054220908461317930331285554605675626976398876308824069195959015039458533707598966617916341345750234168744975308511939733451319004650712517954209010253742822666519990667239725714314079229961495300376702819397227398163858345833235850810712827457493653174778199207570847280192452282048296487815674993931437329609646523238796113667724352116449155032093022392072923440537243921506933633611073022810961537681115611624418033427528324551898192532635370892722023773326154767648891156750601321457311556746538621951957697173041609784672346548406683414974300036047591398683559257939601513931880774167781817083365413263791530877041121652348924649509162137332761299735886429477498559465874651259116115522963391468693284641113155479211979077200692473951413045162647318790705105471671432845247841188763175448783252908652099431147126394087866713520485436733052824376828758032677178156205349037707646783108212313872642474427036402821155265985199028236628630304914115064288730728884779474651487804266937364330120004678414801733163020204083834365095241102302929798581234510232710342649965203871319946243089415435589889272534235796268037920742475374442417621803043064498197906651075785622618370255260857432255415887849809123899148932089002222012091137825517873087193156169442475446020923443272469501333423996198852652275166460420614455970153923753606167454498190766645514023153930560667717384771493600506483625226391744670255968086391258557122947277357578337810233264579466448219234188919625469217662996862954217761577285529586712985246878559350902085288077255949815674975345409736779662951634119508403193542835333834533763323087154743790497734353652719871115822710528747848909162747472251967818698827830307064591577923597884281074973279854485843673786650035715883177533876568586504954678765756462794995413966519494188510659045528575778089981648908075627765439110523544406149945464627967327049404065150237617367069660870986423137512977624671160957046945968132264695847359676435470592438202890170176336911970823310359879283026594062946396559326278477270014182511101973798862750994332732674692733637870465366206967907432947846242898747507492019249505354710225773954755527287660070448879524015628755568947356916465923797614469347090351137977534707346591203975512475340159966081928879490520856855268671829455158362213763261011874272100434939314102018048828262012121592740166588189806536377699768183773230462608644308946731304255345862881416228300754542775241905645114203008330636099964029936845623870932787907608614572521827306363115164963838854440010548482735701586596052454054725006557768408362084951853167603789104175800898706020348556975323848559352590698254317824770184036889255456057671558782901504688146804539400038291996456110833390524327963004356091330362006151796817537238264859445520134860894958171927230613066630144889999955532984068931527450087382033431163894512838222871045009433109603803343058476268045953510719421488921905288427965776102341631755274335420735862534093143366251237753597640285182523492127006821301873201005745450000120585375717064216527098673418037642860826704041720787166730651702059469086330386422683855118705276667692080264615637255028347060762445421532749545658463114673728159335323896879484866864365583173757961126915595610558033600467479813716326975940699134857525352541135681728734046466674517731515937532522534774299513471399760777270915684857244199154378412127311076644754605582483015948297674714262061319723403076155269966000102911644733608568453430196739059304155313740855565764227237009483531342668797534090689422229240783186746024495040500781027355292497486707036630718534771127489586728515290034320643561154746478684204907681337883189790343012480023848079598384565146942447883098870657686326873449790777617511390016220150359565391797802561138496954919398931882725924280472957032894844517711139537862595205627669266872815708849897233255838794082288666456387001179187330081860746582081146876281179693610124398995331024021905836484832707995759560889628897620791953413029443063312453106894274794931969448966315761061278611126494310070675097305771251939486131170241179865386451251959675143519831988811811935602012363596601522332112865809668935778684887164085843803813283119865824361533542133017427952523454565678371322698932853353917412917375543431576265530709796192846665564016373852428124951673699376854399574017379834559792952882950415294780464787295888690881311529660993364691655764956067596746055068631156673706077286929224695022462470554438916100271323492522294047074361651860275344519674102643223809653489155375654982634149372040798858624806987266181199539065414821535951790823333743586456115156965078523539887864320715846640550334735495439123868058881858530758888034827452307606725284002527581144580843493030683815824117568484857927751417368872467213402398880196418784824087897512618165497623708039405720854562245263663337644750601236148468631472583593745867535184385523856035912471201533140111049533129748902012753452357513681012168139486294731456483970799542966510858411528341612616114663023701934975256664273172819973828838225654247916769611576036026794185752563212715642932016158283273971589820311349419039838887454316754159061132812598898854122155635354500949248850810158193922488738686723704009478071266094635289907524776338851399084986068864376709687406801476408223258494125543723340873650509092177697519860856036465668930284237288049737992450242018710303005013051452057832617910147966502887315746485513366897236333085345551333038260112556155133331610828995742901440844413604102986532465532645663146658693878725877202526285260510395011141997242019073519132133335258538023898878668409513000895013727803453235764825626665078035217576955741050308981576043607391834901534824946869944015687093545326817726791826819493961670676381568442257090699084879631423707447319498933557886426662288313123452233361211471730567467733635276913633162954961349885078291206918795816786866826187689026529569410267302424403579306517538472094432358908192015407025680053067427708867598378627783456013186744147898217343849080806257492301761528212764187545428891027042978358572469256147548458601491423319161395651001431255254235365026018866203837690282975306851149748086538493165355284915816582942687676296418036060623714582682225403585422289827375399649362760097508862750406565028273095066951238465341746720071130319263686576791286193786665522965261008039008484539706061280933681546477919509469428185294564697198964937494412204681534082871714005492886342664067367302928344384347629363887375560378728959596776953634244282414550731749292695547133557586537311550507209750625853351067450141602294131478895998310799494622148031980398329373106663422547775258956791056791675587410003136341410145958529964942043417573784408879873474421777182950730110897388219251508113214185538135037341380794246786623402947180318320901704872861212489536722234633227758611142812719611613652000869561867823049417333384264210529219845362530850135397307580287581430653299482980541419202580662095055112434237708381292410579565321142532512549209901934754384720556474044356474308118735908707884290356195192873706230057416160455288422939114256943032437462491244843868536496109739090496323266587352762357557305466466885146739494881946982680132529061630556881857682434692288290404877928628322265156643621769413692049348158957386888813183352960982524407625684114531402168986226196625561702891117218700308565186342623628537570563834416877431977918300620637502787334296881994268054812247785304850742087939046441742800523548470898044886946085025997412243568796200555304019424062439258388011535330472060498223975141389333460825052172956967678879175568501794332012048319444272649691226975891396771831782767677811181858594634458181415778305745516307006732157030943042490531414022502776989112239055379413468217561317170452133158574705398075510445962353617867243420567781416246114332657113150060832330863593201177571380862053828718612473542705934047792755541146125655036459640546505365457158110768871154490677536672753858864477609096265555615573011768933756680988178068163643980763987936376707185348894989753267030718967738128252021751161782458338142958037343441147786894432075909741885718569614534877125581685998622461546479221898697862692943020093001591457714279903125625317013630451220662725255121475580931044434070962788965022333987514695946635846180541639745821313815142860799241492283293221269757483473392409372630529241818828943408057418066914297978699971381086833609780996932115991255094669620844644372694356201293398874974587146214905175816453994218242988259925572136945287547963805340454659442093590767975485771082588710526485070871712363379282941296918123947785717459399498010670818709261981225037376184291905668790621642549874227268039921160370732162847319878892788838983035327422912925930490721400735132177859218692868369745400536302619202801933792186184588710261372109163410274793143459767339813251043213031708919631383090491549289884285767120181283794468542929700549614877515786241556158935937749021807358787866368129229378917689418040727925800057561405855058798544386621411906273275771619703196075632812961335525692395866830344584559026591551494419114658040844971370632379680782559483202210312543190056433034597420610776103549480208217246020712810662616795299170610999172226298908553838184224844871079771337354395183382245087602207725843409652023084493111764576296460086209747688618565914424470978775931721794752106948910027508798936916516922469913439215357027698955588086615399608230049406615752657826789852864710449569575356794031283412932585126949196656909461156367454815840966584531983800240551900929650887735603733522032891754640090715815804222502676864544805890515280624664893071850138372501865735543859681889255206036049770173582710244034234164831111883530984838963477950069063088465461563681473197029701140102693807108470684684865965830141317383311966310854592623464110941183623224982536421417514832446586938009327268685756950367505330547588959425398168244453096343424034682525967530892045762057708474823290650635526346448983580498028454776164104621617485624659690509116728664878465890339684672750993354328031466927572354098616244553389857777631709836996677449244929895447693276844195933961317232606697283308930397395729832220502951366974641272513233119129195029465323661838019019117004911209562838355534492716584776102730787789148979127803703275203430502750980076403825850834300731110068260939214936401288454886079111153528055244871866137707076341425184421094519000895516025798528902602921810958939775256788092163947767718364575179968486653635181723555462299478689353797467284312068578742181822431642533367281132675617277992869687168089943245520118142816176477670151685540547750383516653051881403475059129545096537521051965756860721045232066634141842367111837879107595878499591412712387930000249243073976495446937553213376666913468057284131154246186662115793358673944796030651778842434423138468850444467624238574639075472603428663871772950198075843660630377292282127785912092528205108649032472043158654466393807698789908750270586889060046076523539718284768868042038682056517448233834842603541459752255507479355388934504110129918257971596702671431808078064721810357453327466290546992482791644881015242904316970733532016548754762570991874477220597077550143767912684347980456066987461175288735345484844883599734087756778683388599533561332100162179019886030276499018146366411000737738811176385402367063096772619165291433341391636773026634533998690019750767230604717914033100592608661316221472042061298599812137160201823095984304384105400286784453954655588894245478422380354374228570195363108792483412079086985768607516260724714050092363573501962227023083397331070736092725105823129444567457175762357558161774859367778534932552854537502730875250867220828980088746739014720989425536730589119072154135130587480163911592275056829212032146029832489536672664163243662608763007988869452571599543227967173518628373546040675028495073599536791539673757369450073437904415575172369069904464954158667744172007631767124819878594237042541818528066747373128083725760212702478949280129013197915567017609863699266641896633363490013574902051203807817639483129077213904506035905142917059896760846681372778707420903595254965313931745826632955989860914977913237182517447827837650654892650212181065824778867361185659304854588769928142918069874068093699419906010388926148316265542926725011567447880095764635146663286848538636280227822668726832167841272618831116854116648249648922812296827943936425209838485682955366376277347209736413449345705135699705798037028621073077162246753017264652674795346386201041330069188716137472509978382766028848296347609495661750697199299334528087408866587490467441517470333784949760809774712539032701802678388287068319253165353169288758533569578721983949600688089902145215086817382303211082392664033450852004679839726470380697441171018449696025081001525435512956500808309284757929335109456767221676671695929157038677078661342327178481630552640043065324562292228472082890243334280359845659146162356224681471728569944830021251725251335336136858032566635825823676396567323339979877093090632146481734793699798890093834414952411093464292683016975997337888359653408049466755057340555019324237572142292784185476887123109607919387117547146275575836603065024762910079995679624767596654348816415148434452572198504145667050738456273283314699479450065368749530098020520597906757918141283598394945712219692139787604917737507019514363096631700048848705440983630380224761997329583084141457906239481520805213832700025162926478539203738728945572362325400610263994928953030186054045736284139063484633680437841831369118922353924530745059901209699757086101118335504185841716017531568615975287254749704669087183446862264836004024766417673959672993988704239388145053232816180137740498006601442441004526362728845658438080272361419265951665786064859531320213070472213919491565661248279648862352055839694917285390869415993738248853284896268862002314632943700114199833660982094838138626517273150215814220685146149367712386605222216700173873033019790508673343822234831840085215408158255108018604573617541019849510984927474178639930537158840513584114761088797010621855614297332410848063786380117249893869099822380277795676635702620693008818488840221193395053407574367383200543827082594028825290729904852607494945259232534760294498029556640698494933670644854072041549116943909272244502739698796606567867252170073756492801261030260173538656198396297181857486633885503677944025751803740771915883666789236044896649396582630893992484909686045456623485791949656021393008782471599027739607129692500924725617280573897365831874334105650809460689549603561872969566228934410917206022114004595624691905803362527916103414578201143750668451033384773978010223513112362452446321033670459816142973803397956031081772128688396589541430000311633560362660708582575624035075305296579151446804893466629971814595699150163157752882840570149205537018657056796023527414242693587171928585806230300757979257595063469369181850044815889039546623416980425080660434388416669488682903179516193061151112479303643099372784990157869711251298601931231439930692348267479735814945979601764823093642161523254876037682721551083608196250923420334610700825797816457189769552753024185681471563985456190140583101789114894776727385419527543065814255133314902097833407044802781102068216178563524937129600982052462779336456679607708307874444325133711910221214996249898400629429722635211356223363831393935815071401671611977314974446679016009385744188204785631453724282409600085004887586099641428082363487825725297621586388936673078417372213909062063435332448457329777766532620448732701928140306648707170211086504900561089329848174485699747348517382082451323685257861637555834725272352908202311668859648006330263598974020860998781794832188008162595606252564488078245337246441259124170249491200282429163499901082226396466810850607103423928793125506641833772797956143918497037481225800926474047587384142173863835897140923968311021344516645196798407771887499752090051352716827170774179817605068203273238867914188149122199383780903340160787383465276610677113965221169575834839201782054497044095897226306616234617989451462587987058171464705656509911371422952855637179417080336335536908111271710884412514382524054588049651453732392783341649244968829223969387573761683119014083005205737514975786890869057941614324133558969049073439615881773027960382357034035038963985177960525896012659353364992106158170556034233287244505053342047092352339471710912886667011996248247192362399688896461638467918165714174464834081803327494438948362230746161472434763083462609127285717656625744313964361977754659265651688883770081228137692606533616016257602071296899277634390674648025070331579991363580727361482462394066229290635737042634625938870280919210703405276139475862934582692089463798353613783993600582672524253352812850759616267013813401277006803016753197718709804943795632320396607053881179084239943951625333904301342944703412178405660561241883610547961855768654866396734331769278622200756512016224547568500720046466771174964441978579784273532917355122852095536830378989807215765561786781083362809777169136010333060352178088017331883978229897993043552727556258263248041096777452066932655574048220421094318199326459692361043853966947043206554086132047291598936137117178557813228943862383662313119069538883317446007421608560667553248403712747111925065378186745822485924811663131723395364531015019718569639889673279437271004052091960720321284286107714067647552907560946739358505145854775409538470045211464162549489369710316877864318878413872302364751889338779009185955561885635552008423353122232666843632907920654814372934453337745196083380721709462215771818538589328792039694026352089001544116505486950324615419904432625523820286579865807244051470013385254844243931697810381694107655868131337067510410927268062956199153236656937927503742231186871691498236945181294850293602757874308582812934342595990718206322355789091975446667896085194394168891086815742156373375068833610704689927611568460346822635082916260822094884435483872088904297758440424525994979564948171655174728800131252153231650446088193527260358290859741434595755723944725557334447830279777870943961137952331701765765684333776982155794074786581214180832799318340201623047763806050585109874015453854061896497685768236989073436700491057867918447839922207324724819288130494184633204256075146915107532657934798530921514326589267705034035995781699172725724864325056055303477625216140248372810190087991649920257647731736529287468521250132372423828179507993283123453905791644470320610459304016003716417756601779721744483304291922710114925627166560820687535967835239369229309378358278890919326154332279503241250013571801294761664848633774891533840568218274746800718585790025097736554523880882553493052580877532077807507995184153241967808902829964788117132661744616471777182637021438619864884101721892777918893634959810738028459609239432428222754266167017128838543117632745507115895338082390601054644128264723342826667001114822833312497211815904174949949290725692760212002732747946963647351462261802339040867697362646921216353463107647801014696564740112824583306996032380032619717531464947341057259622911910726156914681531142983490412240050259621857309346076142855207032735590310803255250499721792344030625458559499626993914258569456113595093638855410338439167672481807248884549528934285823348093735589433148564166515329284024946123972661636085684974596983412040585904148513889674497426377929359794613737293179239616322737928113321989697112912576235183769248292668680001137042451429233668917732431272105160345421529638556094596184510305195292460986687163084761903135573207854382579868591707978139328627501299516255004770069199496936336815875817180108038599233897431607243711056042242963480607210949909473663490569832847761391335010779122144602553848053724586802091906627708877822797179981329109011549059502627304461978574223436499629769186572964056536759928370830440788568610952760850942040874687677564629188522562538765861328995942206644700475851028447201177872508292469757956540610872076368002489596200984966838265464040666611653962423797136906789718525541971883442364667001800970421652416054979657118838946920593771954001686312871608215397080306321289121736989024660464372124899250146189456194140890476410077510205634504287762118258799010080911145560985273168782781995496960967380665716131875008554832446592722175407325065183635676249816045490195007153850266450233591268439841831357509703772637001948099529868212859879277613277903757534299240655502344662076871105261362529641865829493288583191129152820946817563144133040257748909352709453653181049064166600812496516871419448077891373530199373046232606239951978896013503003127676044839493159487398797814719455435073068601755868449171958699683684246535736670965391367908311536173303134879272784009965634416319513698383719693770125085980216443577486050277116085422033507866665264496726265704987659227257357097210007335551539743470557528953762608930509161880269044931210097849110413037191584844074249486675610252149931660545945091992721433839511577010149522923627267682496918763262845617133900887499250198641995056341832777706543945194708651262293201491917563533519787354425976755727448224775400280804603807094786016735944121084612691201084630324236278600289362326927948944001125998257606341090114505254505929986855667842228759537148379977919153496693437659862083101385917980254278459316272209985742988947560666996984826702487998032946455088767396381370417168576281697591532657332393226048353083095917396994365292873773140807338066979176933469163394003969717767639143150679602604656470659935353087254813837982976491204196378861892690154617624314826212860399039000057867945194463464853145415263204909644034902966535733771020664935286434102093130942410616090264640283552660736580070922095522146780134369696737292674850515564621068291315355122511008924384758760901756976663185723018954029932249273761747610991132658312193099783410096172049062093038917840546236875964736559935883699231643199326865717047775960216872438206423937380356422608909467523689437401028451031527713276492104938932099023529314334998098336768365627629645672188275095602822814486728008155176930095026424045059545349773402894648835436966243934829137127958559520376426186813835929456532555056476434037981204941041834350241776662575672250455662734704386458535518545549766341518352815177855322533131175768759328730479954894976911381702532078704952889951828813938034998703197094717806806076808663753351822023319892214371493543063222581012510683562206755871549153677722378493124418813550865224040943968489148022152189868859047935669038681601248170692243861870795890443066910516462237493461317227692959734232088700545718653935549313195902024674496815339492781336546218816086713826910693140018187349592170251755772343282973064233953596413712761295477971933263037809122055808679928205603782507772134093190012101666035907798355305658329527812765322572722235234915856694524232895598416776765175897962383013968895463963971651411856576192117381906264504115317782140770994000247270959171179597202037938595136174680569979342558631788890771475931237763200549033555024543065817478192381209957353468813214279285439667415591240959334898299811989322067891872520474181514404575320836440467875153729397309415382753651697710622159514982194669351817850305826224826955871879186394146848623265170021606703468114056719687751960254928268966378522191087059886984344733376171970153026231944537997141348281907413959187372126411292992500640806440456676161078028071988663199256987380474325524863443309885913055217612311096874260845102270682542034909063614243819274505136391480963397233618510582078734511706731775087766593571151160662409738386139979562897389156962767549075176506080223163431975151107433725937804855165393988231850138995329405271095503603280086047545186576492460378747671068202861921989940709432573854511264332459151998821644872337064959513212066187082183944055588831466783547986163133224852316377375222635108986249621066148043328589849358445592819167638385760299050875341134314367743456682439775687142693907069290840069564702465367365027084247934897864529210777147803411078885876828276543410062466797621776372092710245532015259013105653242865628519832825185147648178167733772214624540558330148110546097056731275364167016647927550619080190756662341104697556193306641355103776418905691762382825794273601159586766515326515841499516970077124016973260244365004701823076191769251322375927373397015727201196687520663311052408224209083218705745122491346987908142279413123751921769706588606383431803364020882462046512068078020751523403499095430952692788839244280967304302122985703788805135757859015631012167174208949234145905800033239208124453147266689170642776416516070980006100658998049727741330375494439723467257279153445532342401980800174362217226216228690509112742323477759102338781592635063984540756727232614065762234817987555490024246130039385390063828842578063302096128589187051734893589172476852439962629997911491809484255822996033450832696955669392577898152377327898944333498308688141995498961792900139513166643993274854751001975795072463588897587816798758295716055964739624591897862926001128394429625912273634185699168033440746115603797282777425368461121651927267551484453302005677426659483737726298498449838018342654071329629176056547821022967420274427196940455790391613800174881175434892536618509947791070219359565101787093133965180129452207882247711010840282272019922424104355892686730744126974236841390487871730749803088039195159854114443836685131818179051625307492640879816244486647930566903405780337475231619475433856095717557107930546896751757021194372366675354113998964371127203294919994660963800834823632306910476560279975806076259175789116341749178215745784945940569925531283144353078450208487885330586508868713559081623971503364343457191135934229452206825567076823897012924567394219191113434694091501002058839170680426952245405265929367065513677043383744137450265034353922873875845797210082194675076615857742518731215812794442261456766975621933148101847465183063330707894971107528623180312163828588827565149230011174784149151054831047958959095590710241352237942768123980650137544512234040744305557428318023913370813427423709066904386801976810229018460243102985041853584605088492968115534871332175651543063486990946838197003758339371522781261215045462731524343990215860772660642195561817229414853177318753892257292228173863778550528811587302798714982521565945415436693356372399926363956087476440692545545406180088588012011744345875323063580087948003220833719048779877794009833835417318261677282346844547803190427153734699428528086824265878015743253175434728549481049598757921446769159653274001473193543969282719078519015290284096609536946860372444633976781654645086831724500186313157855108041859819230697636411243407950531531608586746223166224700849874112172875772196528302518319842447795912107661760967416773804595737907186088050464465799485756401582921853824340099831915614810010449722569864035612899168796729950187875108475422841410595231868595203288542790310480285308698337303258597803734176891134126800335955599254324192449359670060487261748670318472166541081965235148586270051734429644484115241099496261918531370420990616789441357119202895827912635116765707034842195896121555506771524744674184532363980115654357379054443820962989513402723575495685422861917791333065428807327288566065174445398840144469907237118474921204499012485053455733357668211297157153984941711868101218019511552223783625583366618125782812558377685615885957805516287817839284819499885863660304335122815818052607252956867211798366198504778460653867616744853001987915652408285497575528918507832086058185448961019789097130857511205963566302418679193803887718498761381345907126310831032213489055559442990206674236816688428864540838320307835615303704961713356625268171370060155381151211156822907914727536176211118320246378223431068956643969288130289651912418753670388548269742630219325948697698964306097234677585788428961549760864592466315886761858366202746155376733588594129121535387725410715050940071426806273081837468854831857372783172037339764001703107250371498519470023040933018395716782208539162734997651142221973995003544003871421904695711320666509313930767874950914491587846079035782437226134581819532305924161020396354507626820082878302754727732125280304957207596649567162854183794572027079310202050380950383026061308693976320404279991958456452606606804701162588833359242457482975707590238637739117237465195164390570640335022288920173487313203839685208897348950577451585147573146257673572978373677425153323559468280147314971001009792186877139085804411793837464674785275844311284203384886303962072076974377871250591026231095896363501840005309552846318795911238549240088683019895099342127839794683474873184611898794849095053062925433861321259273778757207851366365146629488188457634530046717142522439865492456242035057481515620237882469454400264357134732789023777449819186768862942442441950721042700258723193137647735916627746556128574818342963225479474501844808511346230916305187645573994501593750192543274669410079298915786862203884799984573465656495438069728857578958281409811417631336569722359541645260750786741137075993354261626117063792151978528487689473177654043455578715773387829922436556158159564170737203455605308068933212611983036209912401328725832577530526104757624276885077208493390949812988846290746073939082554985351074730232051719466052144142343041551980750141998179871334150756895002400581308007869942305842426471932599651607308241479799047481440187794168851028044944317349217927245835186384696186885731442122315252105354418277916537638633834798020356453178438532646683578489432776680173554639363508834587557319423756870711809744948150535562925121433607124789195259972384782635220489424867165786433331617228375031501661786253987404762842469443397477404587754804867140734952483214062925783236363436305178518815868910837624630877624961084791225774466955300286156490175044271736404352541051743365899328199592104964757507743560086805308075079898210714519480064387212470274981497184769457677325155329775650961173506660595914665969599036665823195452572034035700070402235453019686408482097207138592529979076520585282858040937901506618798815046594493566841039286745823987063654185082374722310353849077131889619625417040832563167423187871317401037227281652385492000959926031766852388948298186342699075458349042767295511355265695475066296470638643835403207823242850244406455763148179284284947463902655909511610700524759984724267793801239066067137684308598551089555648425409454778487345444772660711786709840704549291971277807661384378519792383875181804877419145958314005455138419223639868365406913558677640943783764678993629777714062314556318907639697633099420578238990053457891650130988474913199874232317117726692935400722912361084099993916137466922053283754464516566981082179025651914676853686128335355398322415188300063478102981362499633969041092913737032635555017098785539495723318161395756810715480081948041291771709440665314355422333520011682609313150868106090824624297274492442983691654483405989212744967991124870829001396835265266679615147766219108437183109439944202417163856907046435895419079071062357907322309965709965457270957099159243394923540916312892089823614034487251313966846338335101148056636823970614719218578590560496552319524761670301601610024824124976256181464321210753742284478896441680220407954485657910576210243777999113949886199926109558908061035737265374218502161564545601225941231056108045747546411442637374316832796494409225984628198930652806122768163299770557528617481641338064641394772441098224076481023890071934338743084105778001623073996574109431287850158300731443419106466020397791220146366799033295868339857724787624362428019442924441478669665894708061121109124622768587002865530221054380346882070836873071394195797681974951206741263917117980637830647465044143712423649321355563634955532756264331705820391044405838246813503102709184774895272505218080154657696202695405424379716661737377798473545257556362260801214505918780005829697301290000144082480155414388434453388021447725806943913117324298601268404162622447874199453227042058351506864270378603363136467409209738762550754892836800553398132803973666912651309779673585673340791754103779898717597579573960102784948670554913328202904842135778956371868041138815616274017194052522453924128565098958309273875090661296133554862568407629580263259730597793736998711303557995715770618421153387209246634851467335628262511043156394600331387406831612529188479417733146435573402121933266137996342475355178245179830632881923064572470783282865722512472221482725916686525671677986196855026749320915175619901502756460184040279604974194351321009457319034034851854657565981980581090194070884754227443281816600369612711703305943973600059753252984564942599511969816739029108894154966800200114132114688703795452569624957603242455999201030614485100421084526704905100743047831386188255937840393329205350846056693881644281430017126774150307327008149233588295832534476967637509048452215355893968065156954234205326535841287039407684029215620957532050101889038917498186710405713093256325556123808097003264708880526837817649193835485710480147181028665847995633684432436840953915518497497725727415573811502495081898650776949353161462605258816913222062098601340388959469828432085306188678419483664677606283329035665053075443492606679973706882096127853829490210057319966108613824477035482948450431966288682485852292133722155857834212833717988444713313690157596827608182128413482128756738039523101070947170110882808978477222018587408461374748727053652163840885321429329408766051684989779354222726793353569065699832934295011983466818452381673949661262688176563097215641360404766661391941568034976120842368828296488662827929619187594084668053220988823615347637263115667199570217799916494364816617283713201825560970981053132816645131737090597694940289770264411365487516059192323851753444983922891785833793382543509411888178870205300223467819320842403173186525999478964754467024758272467784144172617674772770013613711859697554408130374035397694617130369869963708076323637692655354154488552827481745077618328109533547712156858184763961233953880697598607116599219459233628743525150683735664378447239169822382130463265327507599070793157516349246934645663628119622990455614344385580958851828161309303847080674890978250884018830560993785694254836343019663724032696606054111049024529585371104872134391129597096242927792410027016271849397001841672521568366602994850248003188018293955519142243545153569242792580080669603377450813888040322862927545640217929752744045168550441624403904076602340812912769661649927451716636584493711693740447560117201199072393794397654660360113417439278863643404055062906697689724802050654944793210947107720853600911695618350566759499371005903064959339084138072110912482184393276567922057978883220547032360863233728154656615858655588239556804920630142942939909035134603137773264963013831538540291597795742705408130737017430043629032004629080458316720964826856631134650775086308897097433242249480150041421773194661634641008356795915296585636325682879125792737172439560643382835181814864714226720165447020921592749726902302776055892805175023217749389849279481007964788065385164414903769059380329972769760742183844327856457759687316823391555130129680198024677453163262092303886906378855670869532135577951045106489806987447438895272908806402548221321397569373135256451551142798137304127327947674921859226177533406256301896054920467110139729671238738396119727960546537340559057240001817824360758599962357371318031275128090450714016106434707414517965364044104097548808650180295404878497509906597821016056288120503646731328429246098822737622178191835088881468087430771243296411201577234065860587940704805054300002503443601065824851947256325429688650002597327515057739569275634538759044527149385274836189829918921149896592340895284567394193747347465928418929488881604464342579039835742812000776702964536115664545772860445208971317069343169924384231794211973077022692318701278163790609590736088245021613314921497506432109608359287358423027524164463135007123289718521605473797551186284950372237104611224473769893463954010460742741494650594962986117834693671146237021852091730871040421987985266002795965634034050052462898962716770495214307944464394575934740426879325169416214053012621616718362431792093601957965323381240730333845461447368648367899723429543086159600236350718750375686079678039616713108986589209308231480168022695273825267952634088283463260266027440562967343800065220662492101227735151540994345132027212856051523704715266215066184795842388017111923019878677432651563662909618049584867700184014275523695458364782055736961196944798972176217153724631157781622002101354500280306612144805278944554903198941825390671688983091678791333709297183019105463591669860934515073576083794515796457318488984396725153097268134137687265148555802685217277536392762781342020536965641377721244229753640849705933930203970228038027963561269548120502660234408106536769223846947096045915010088399557327380012077548104466334366426641103869794118676055660398712071567720791931103748720064822004221297286056414672166751066841342616622237063535278235339318504709066426831236639759999821135697821474541043168643147426321767785031193258720030308981148883164090305493647516269466854833526829324302125555554887210020645662419565979072263760401341805103911272312431815743852013186793583282527400883803213380253360957311462306233524399121833650839242357395015944824118136586409663660976358804554247293926102708567959284378179310774651107485315399397156220794624465854919253601495044911171533321329902324629781736671249243561264189333934222938490649749384202632535586464894182359591119918993880938277481081211860685765940006117238086111673140884104471084207614127331554804583046054485974256279720228146493265463196018919877382509694565439948225014867139399911371764828018678647176510266966124993455036096674951594651413216730577682931518782554343810455483281903632539865346817941858042746980229667842681511725737623761012980664124061796032279256548383278023275676896338184347645956805453246077812762130034025421278449599865138232084151243609672293138171160570192661852179979449106324123617228742258729939440776920962068426605411193882804805945931764181563445646182340039941125696437436045801714992361317254855288621460871663638719946888730531027104889426278539624230966163440833731464077409548233975842956051968874369298255178888579451715135628830388220877538514264285663380194553648379756795170346874744848493387682802463798789958070863868778641920184083973346142630949901426799452810688889858260921462337060824832040418156431325317502813041059498296899201202280720358443279392759015970300382770745383197796934083286059419947806223143156997699475623307270596302592555615823024190955307497084253363705876456559575656024511939025959755417303961608959623710085958479646880171710548146291680302352818215917744368022179735169063771075213169058856551016256038642753514245770955776593502224426657222367003931345775648977851571062192278448321980252277986178478525141632704342605257400631175605354041401334280162019971865908980032576720593339884563434266218363347214522286716927694664665671305479514483653386772402639501605027867569496813563485596978069129434286435455838420031789465670247104911382717471221301879376279927632124219496722779839391006486367844661835395726661234951716946223734544055659889696132678017915127265781753834796005812123141207400469439951005891323997880307651142972453652502472653797724859866183329612370084223322396272397713201967053232333285984879249179121607661132791042846620154146345013374705298702134133450164710610496555911242919177942470472054448868337176226402374238472591689457292360154213257071048217204628634146147487773583125331194490738204924238587444723911838045564793912448208492359269478764643035004508471114214098201119425110661774152573914064375312506485595305256151658889096873099012513796943413989011741512166649439515965680434499757773092274639107855800241882615851994065526018204813643309964692448172097359356016916780644627038716742772646938670062490877767499499119035179660534754789007631463349700375734968292887051386512584763824504227884878802730315261639826298838434646300960056749990545834684703573003730354920344349777356144358605719990171913752481327394138055944690373551787260705933350779699631194108779255426903190162440315475709709639209978331591088487630628200167854049638256092510692929559960094415276562863573167838943245326611539016178250869355253850057008325568923891645442113535464382530776587457305707845313029870708721803902316180010238150924301730833254552291725399350105052607662538944592575209193272140235699263975049290930316286933482959237500133574040459488724988455012997155671987006823618688753451401283743306062754167879427996420395702905151919865834508984170617460038417678060244420646822193220701952008870239483960109961127749417641504004904501487462721857816834114581001358775286938857805109455942666879924777979467855303981023942911240767185991181375702451241188982364609036919940889457218863580970986817537235521178586698174300145105974557290890984246023167795211572235530330446880095344022401186552665163713469787992133708257928196251153412006266137402666590270739428074358210710552947777836902508179535387407120401655261484749362182989345183259275466314940822665186073877260634895121776977328584724444119895342992434691613711704676139905386757675200573200045133194604738639584037715807841748249989417654956475957011171780665555514216678597344896095772553649769845475329427362028198909301124392507184094027149429064524026124217991444575223686825155241746351444985312784989092238857448628898105440691422302409180087885664629933408437220906681504582679704590481101943752363270133584715413982117966547705788219383335384081364785600869699325081683407333328480456705869091740427766334554818740282756806854735176287526002940206325659559292909809340724007606213659469265859662605417769642504339287512372116768056723597788559132812101432594150890191744563363784037127329804239240518406519324025150577991824419347108531797188083814173084101840971943186042986852744645673364929124534167455653363529056443893869573496711051569027535519430361525198665591518876847771642317464741290707828407578977046063613777498056587046085930492143648506617542340630909073301002225362173712511527311535251403431630768644883596013860592040144720418652512557516118185425042287510622313902134134918678944658257281128346647657705316952235371875487163256078328991161561075943323398128549538319174835033422292566949223559892390150631887402395401136552475013743298356627806510813909340544156439636102038207840912178446359888133915351968296884172567530627936916142046908146622469535634751543078719829927543666137498595631128509062221205501704483069255812525170468519081090561154434191781244818570284559088649792515812308492795352458734425606546203737131426872098609869523130586305120699179745363532254703734460745057819813550555899006729183028465593613832787045547115139229023734361619653124914442118813491031223254196383494277876335763396038475456144835412374359824274323041473544189062621307596929640094452048673513048255576302399926854591991631450035695405378637613507216896891453819834544882867985669215025750104143632364686017149194795444487117446898659964887797529942261318356165319711134818725616521382594494551673352380606949440767323908741109078837755248802581393713075203701725113720026398587845690733926956431625607071217899820513959701564175318717685830046272911195887205715655927787699451536209555560928357090604230938321625322409264305416438972436013188908927225066094837510754522397728010608053825856859703387905873484072366067279778616190615133979854655138225941143021428838989311918674361901058503556072204576733807733915735407330980713476605695276480910814795019005852949413373731372542193125180872658238290186155618613521616933580380090934982470046011777138518811669037951341371387696400204408571113843067976464152080862548913684464401312538855608903274108029217414678897609569213778578364809151704335234490536844705040661581920352063347975080222025770136650189013099553834521297987016803293690958586264982405708982631032637477717853660238820482311669623909656906643372358494127073164651036639387500900269499622346150207157068045874917873997176248180090253007079207368112675621209517922429489267185278945729274213941903487325553818236083768594173952066417538688238641399773926177943042390064624889269433344830190982565479241377177910677666766559212732520821777849663959372433536743140900985690220767050234561098309264381166375207577199049071555195421976413969836058091167202261922268318077670798800346923810860306893577397648167393077871881114365568247555024425422758187095403797067775216070176605402658678151741370804660964237328295339283237830741900219488609448178852383098750575337849326765121985473452185070463393218865691115884145718089449944160202028749930328156147025293500976439634504402912354531901302253446579099184847615881415477738938949561963516890555016052889488271734962959884663430691821190977271738186879655662351632326258656417476018287877762343436368120063594281305098856786622505770286123035366443962862658167862307958918136062060008145383860601759092272017952990078238836418778326702723311936970660997871721997765788541052012949631196324558638737732659549463616737888824852229575218201702845278819964778984666253936819165049644018081950579413242541067046644744330236843559472773303031961021620196773047001993709167042473096120999739604683542083729153538996422106144816484702415775285598650552057456506290538376535177684496333244466137666961030929137113406334725790900744887967742781551320706178950002317085303292817199815527471810112005994501017863660968683536657545604852373609975701559502875513286020764854872569153622776353517256232717482851603413990077147666802974090219195012101525324759348294847932748668890896278145049803752928080795794952809269797177910429009426913311741747395952231332232994979456168371913340597771978457076555430564690955116539457701697914803765389473221734311111271770767355593967315845900056890335419197525374447991224355774485361504196887672885648102428896453697149645246768671426205810921698542568179589190863620623351039639019952211171846424124272808315187310081788637257178435275100022511466343261287795589630733382872910565708420955686237424454595695654697141857228845477188711485069507925074449741459538697584193000153917006738711255451710887991492243054517133712646546207282340684553782963396143637980262107851979004313693612574083729370098846436311318680882497745520789469233538844217210868542033529396197209457783858134075326661491117953626039902911542297542630083251597634958406411091074126086384052886986079457385740072149476861736037523797705062112144689921199208643582769063202233080910504612896226336860238509392671788468008225442365526110061109494543657325033419843329358930413124386218585727334421791126582675689151898155802462896190083726287207430719552241122029207708312352953658156122862186330093313533190194302706394426150505963899445455854872832305052744660415990403990181047802327194274570215789640382907414224129377492573022484002584545756461596001648873671891857763595240533118428001886944584875896379132482560101087205253610849489430979497954638481611153832321828379520091544326662692415048496507491714475071738238036304244296768220418839994711783787619145939504399819351320010957798250292042959263630846678092771596719474192815347976991672979698384849821254842496873577156501951965198881698422395812560030078485558834576912946876277460105438852218344970226097130232016497832502437539657466228194624670462209856934033337032195618360076074993765347225108846879765124654570636447703407005238208567922541788863226355030290629096996632964488646436749289062768773802416691656162820944580835114921732588157666611648108749151746558607787649841337031496219829586571719667455704513263927761646638075551927795471799972951435073918586590917745120362757392231178301345765473298321970828453806960109883756447162099621790170650782964513778050727051299415600016716160136351389510681656817147354716741551509331927027791591975611451426625032308563608337597255587731756599736568530446910386166745674267365681975231121781862872305167924733417310031181703020032897108692813210619872774301921694863037388076870120598049122717530727864764329371256416240470236348324782542547991904556396255948327348820067374457432359930406241818521775892579492645781935644785588276233367938300822636305122977375349058140615664100839875265870990483354012959399670274491050657530051735636495642084889764319545347783006207197260363800103339626693094471394824715288729717029794295551219570520797621080084731763711990401520729913509348330193369545567945067092016860698902399417839874859243618397539093749482952931840579867166903025814773108136520787622502096033523397631363170018764312840381900731403016639952531251381051186043230030153272149140292427968504803110049879243726715290446104531296517848735259890423735914819476966810017020833299524684186352882904802424627600697503286705815220924227622017531265230215610170116518067885264845197642176615333136095525759604008475536540905641368431470998642350489210306429352800096135142677775685869229595978740793379902501234500749054632618661514564868637096082038211345819689713442134430401494601174434133122888058887900295832458153272006757054329993409240508616834698681757734944089439993556526034633240602457960819615975982882186161144845543576418407360034636656771517732443382180376928597993216115898513071059441431572396938899471218420569747183541143310800700981878694934247592839019399118162484993323293058273297984604357227684452195566068432963969584998893338169144654958879789807757446264366309430524907274627359147805306582481343089851946059606921819694083906604024850676782612134404372781855679271630217844685001203371873306381847177654823376153390629786922682650213532530452892576502347188077788846293436652182970257389345899761702506065477827017181452011736341246044781836741955110149396389464507503015952221130490908561909825823713945090311291701159006644415632134500318223740018859649335965027968548642987383064382736441066081706920969478424787226898706680925908862493666724178680099616442577296515456871169479487026322776009968306236382419165432143101533177229340070642839153196365720044887446159092730048241077737580675994282926354531991181543069808879177031009757258385582331637860171843393883123181094707204489121590010925556414483745797521170666462251239186897273649118122716209616803975911508831128766994772294938352616358566438011486902508198631040080703163952299663145606362400461982999087532458991919686794751129976242527835760201235102165964490193711256938628042148932381919630716907242147899364390627890276928215896287974421172615308064562080676078777816625720602852523213651337959055682200464967334522032359332893746748097080663120650605379508348472709145926263557603316376084085511556250059677820408319355997316922210249144267838694729228951288862703614674371597933968182541443460440636968381204203743193411633366197852805832927031043428966353667353162823974266067890851375323235075757083731248458809345800200698054517570377576927007269226313430928684361118497204380869765519335408882287817381875062032310724698750384176186319367851872284735644416963381424158987531320270130538616991214113314357586408677827021557445412378164445945281589639096746418031449375498326410517311518140681221234644425825889050048837763528863093060337549274347032088795459202930229540315681547333853495024377780934728257992343337662321002554193112241476076712668244548906519169289193153230926732246040507446781664649530665013465077922861590198954457638512083325369101969955696933047860301246974159121995306452721441776823139124844779155981228527450938595521220508074817546585858873293393677707052908090752713016890666759393820899365013976339047369296773273916925511452542819127727302042305101815726681040246728545202944574377018925881559814791342590070497363423846129065792485249601798801320166400528811491552135462470401922605648066154367448029717665790908700175273534230639971087843677900979556705886267440863167574784195029658047901638983282471569833200462332253894831249558845325797459625103272530344653403505359210928897747781909394247056528729206951874441590303443890578403932962793278874818612983435187300548692137693925952397979256803238020730344320101845623439316901760797310623247111946255216063359907278205688071739788236676338998646567557432062863074204716143849615885357475843589526617776809284155153902462816025692171452337360884192463508422263619102690171952133088539581055326597118800177306571856172843387901068325730655019172388234464324363240643850325121901959496742667868848397100887124943977867064676106345832694661741474842730995879826280253612941446935972194325872786666540763886152066487734213797092393528642701997730547052119253247227756070573322149356410496302375199188887067347965085337184817946264692009030488875843353742999979283978343670795730299745076927176281992914261964325781429626956280028087416669312037920837815847009398082937906256215680445711699056695980027168715999217450246625942799166950132702547848592990398933411376156999766078289228933081697370771954957495289987711885899739151636524993461140700211170486797395113150122618806679097409136362462980609416623189217439875156861201941742566045681458295526527792713544842036568235976623486498800740187068765575207943541807520264895494593167698626139061424810492496063493419327845121590148592507582361030673887677620351862042582439691374775767382261042149074557670742730939487069814605329182550195213990405237846316527799990265319169600446713331773615170159633509086030619403489669378714982399144303046771225064076339424278339101205751133340775569787558554577342130869849273119344573711906548250424700356399580481756090155461024820036181236509099455169673951884236168711802923015058825744427740967939855279254477572820539030522529861681997676244764868446754497609411525455813683495479614691527835844227536266420030644250536726346705768316740684236937069557813851489632515754873921685108100971090720333352017640068244946242550693170537133038330512088517857073473328735275932176053947859436722935823069959457040951707314427172841496274053709949019916563448682321972034982705520983972203081137555716232959577113390492460367135899067962695821323650669570776745660085955462133694589666720086522604233693891125908280899972355038559507491606090981090482148405499053536668467183279362258034092031070052040635166569906178077015822086609495412773350209195508913486292123260117150052825152434771133819908193530467032072230184259924011703789994235614300898456410061710562894987775491418185696584282740031720788008315280847493058182481504014497694208781020323565786202261743953977525999419634306207519100220602179876229428821408573675568353492312373672737368399283816734113566790031235918669038118305317894555313535860652782310886011790102993584943288012603065704413089228449468562762140574145155915741194583776807039333345766969409945231540331319510672528119974795375031874178705164192057658257545492703505522303389854569426829644154373005259682075956449927746020730352237880747607067434896468339144508472564084078254134424317849221944862545944341883185399417294646378468585909371004021536733623742522941312288944069061901713036288273009559519320186680363782279621169659349127851461661696498584144094280828803640891954577337770544490481931486222472089364595392475658565960173499516469844422832364174862831178518122688731317600256254221845808061692616415536109374568235877756307378058391150844805472221439902205262068278016939645301931953107244912159423267440981263335758466104373210230593959473047976682235769290811438972794740976279085877769685324887629741390437377899765462189319545800866102714507648407207747937172398919562390557291557384270131566052064720768827495186965243966825479064968923126226600448900636403638213342341764517611895136496248810289499051817710083861667964474831820132344917050868013492645534484458120756607544703694406475549453940585198825610825893477109938877638474834215082023665362496638075444869452532403025950781801376132624142973154832849594369794087697064660092779709514018346816913594943478234683476148750355476912562935945000030757076060902903886019503574874117887114744727630765744709562576825285195396236174596525391390080619459361663820758567117739770971454466454544216813836767801043580377119049395035677276094533060026042912216875543916607851698040500784980809545021265572541830964978098953906089237428911816542332748999626152933887955457898002664492608007641926359266395697370977368233755503207635161008594701516896424603361011306566609490563884515604213136502356688194855105634855714833689167399531226882387339659623708292675786852979163688442921962393237871058645133320688931939030122298054584313618352471173910336805241444965635202895087270650800780595641014652041039629767759712968702836043273694661397491317200536053757248066612613679726638200434870623471907847783739615230421715563840949851212852193031254795124790216567671848168106120409060366923496807205147019380968073929833726723348842619862431606220368367978549181927122106772302422541731582622568463229580082496706500520080897843188618680926751337077324598196553695703195484980608373823659724339481896885149013353180532074282719697484280053363207553950507694252613405380088987281582882569056182103446448909035842557113043305459156208919718003222017061427285407348516971416915271325859439897561447891981184781273924237708415907801493995838700649807835122499047881260568150308357180735630534527245408680313623727212822184018784707299342646753386472438527536722286685033164286259791634552341587839455910940085193849062248276395361200258687186719041765710155118693253598584783091671036575678463550925092753869769673970348172841258024725835852827761697016187537005806371803638378966399904537168256944573244432471241858423710002039414013592517970742896889530751400445873138855766172125591597192794282069905274285715925786042630179566128340128541696219691765391043753434483141943993109688159832507774779265131222200143293143452308860067233100784412067279324828978140494536590668719297400900969615141138330842157943466172735718943388242070440618512604048381846983539709017780387228471906049318964587807691564444638865140302832453200842241489643398730878967846406943981433936890889567915803472111543455366509262027105654025207637490262557735053630592834653849681057078002767891143205909767438250159544567836910427516129921341110019750108478995357489152596129202872488440203380647823666263818386890925437559876824172776010552296165496579646557018828787268166124483914798451618681417098507300071434731838314335915198277176977883883447439373889698761087272252605799630802429760462844349028430383683083832897017205102669448799683419586004826460463372430808909141974766296389168605991358423735863531571179067609995976974611341941838833958438205086864296635701018737088367238195093592332713664101106891846876091682161462091792729320555735325051172832971072218482402482501880979342999790930574166055063207405418297400483003306518558275386581003669244034284130092842239949480775533335469493827852532728288910121259684589001437650226146580791329846119688977414287189903951187862208630726215379331894092417586194703770744481118886961023080169005417203043865498124693183052911604092386711736289833642205979765197423078302166196342244552451913814798661727198674533491732059933551773301853013821243214099475836835428586682580887668248949295563439809292884709868494391786333069786301396586776374232357803156079305101986603184460016241762854898889935129041712511946314238279575634097837185249358449438622265146655349255442621726972725538583727434180968380991403366469668917201670681521623561738182645293398591635169520192785700834236379271531099235110266736199715596271616102315735962193889093313793749042772866182262222543123627438225652522438021514530016083211727913763965730867934523266324353565300206315513773555471367529728666270065128520683278910621895765410568373589746003673606441948536046368574534169297502446495291939560912569195201645330501849853081117398460604306063973834390090404483652950425004755172272626856070009632876879514763841490242256299235359647915839792790966562699721895227217357186492816629550179913157075920866852811188054918106507489380863083442552528378209496014748257766753334088852871340906151887534703722456508280963229968183417676220736460940185963150264108344976073386614031203302913301002082446734598599968265680619252399547291218326908632944938255923339088509500141637316837781880440062797628175580211509118975501859840364284999781312846680180306081734842147785447513054260860044139527109163840453100513658674366034875546127841715177977615838286495356411956313666584116888047061947310697802679868902985755150431027664282574437225249135032003792061463604801026898239400600414648546620835965707732029905840715278980635620203902119590647147630848919790914769189958016487742198496893000403926941286365546413396365831061995707317671539302932067907443072893122334286371355423937884955231936886478556381226112213343195387193107091905416176952299196686264252476975361033430182788669829724607079453997921554923992027988378704082006785809072592822025905269699825006810414023024425372687576456914043803531334334720437857487113099562907288743722155511409358962734222983086523963198222825161280730736428134539794887281516990059411129398087879942542536146374640536285085068449746453163835546636406559059190769120490430207421039883794346528079240380872321621916814372970622964668276749249106409958538773447593224976739180627290920074020878210559640034429693873077673590494896397671756356171094601324830125424305304728442244180760173896111165708542817368732236450729927405899242091320473935629486744375347526432912382577181411278349337917942246700528492639793868529282699826265676720842708331771627287933872306979599266665391775672461567037521174711517677720504661995207839259564408530376896349958398994017185269153754053947773501379754380485095119788257140517855700927585366189531389819019847310992530750976732374045960193914273598927032146161931791748220525851096078986411187076632750399106013494664383890040288863491342643008975669686244970233782355579346914502024815850433783275410170036431286963628797380613201361357040733470498119562173052058116520061392983332717894553013425496421829179730408868628160982972596578802785791995785442814305496007798380821467710049983064140224952747836400026395868476246691482753343137819925722047822802223809345550553991217337641620612831287425095610780681391035342483474294870842452796996541453850192767979969368276539864706728735753202544967028933179297102807581664696316826989575927435069869463310191348658815546204438727351148567120417287657817432185948033419729786418632286653577870745355504855308277167102253990917302649422334781182060544948584685385848743706540818552755331946842318150321138879278229143933308874507648700630498021381629503510072871645136072447503284881105288942319155650872162849478844821728287635431569116679003058002478408728048972465963910172941192982250069431037761778396388871132017607617812572187625458944781253425223882839844304347569190586965606489934020246467471285755178750531785306430178255304520077889461052063234341440599950158934636880601294531250727031920445817519922172242498525513083210741915906309592347868886519742398952849897865825901367075012962804866659824651298168829782606046940348732682049724095546691291294577503206116466479267924535957484568447138811009394107653885901819237601474533046660865770222315002569258870684334992245660908127123541326267744964871851828424739528666593679085219798072645563877108253043694821354593223857046397036454540009566002469490243902585916706947044841308496072481569757759236873321961428459570796124119284457770628564790952655526583533062740165579677085094497764000571528783314888603080200016639722781396450041708042928694810939437430432099483177068592124427974761513735194112944702314531360421855219881996735627860366541288074932700909299698076139012689930583555207181923741419411754365222253321084553077510277458777704075857371048752392960803070022784778152101728764208712510854925443231493672364940998990994391834976528211288039387656136068524576693615346643548803078897268429719478550635083252685258805118968024481231085785669385272850372676032058400473774805564003856664102867260850640601067241831693991416048465501485626217737701627723997364248705488098038228133215063789690709294018778790622111259068543922280659953042690101987968445825070082303937432409202795026140332776347803917361932762576457033943831033925922971229291699904942603058269481665143483317165518989330374692869520593013627922536037903009169877026170032449884844720729120572176461845005843460567954469415786666829443252382101091729569528197032113942442017693186410480213195508711353047141792841365391885073562250692055256175166877459929819543801254703697528500371585419088592399551638541711368677712978505041029639059742388837399296300698530816659555340928118923085937161301713914202780640359441729536403082827450877002625690876090447894406095580976008670893755797055040625286937274976778577562923530031929016810196429163239797661580971231828227528551660910562631844689770145267819545066974814580894303108372106854665884114175394716471941805836728223219581420062481728496370821350244160802194259086168919931310419414057979987250073926201872234842772765028499882612899358139716553565290603175221355322481319573711695021991341557941380926179807858847840538501969713884556194719401819309366729920097996760086938972413489189992191742344580715572159384213959034871052106730065270879631842302826755318890134455598662034285522841405205278098758078416156052129893979136088715185770892972173692803234156575752324069268835606346121751672067718450481602102203571307972657045193790165371006725802655735389581146128819883978124617087984003381491080411314632703215774907222917670795124953182539505567820410661281837824354049323036983942820163879884825678561206861859291227653647177560119647415411641051331730002172587055477914357500980549561210096203929989547641742654938647353679477469107503014922979656405318540271410958129712899657059242965967465768705141362498800999253100592212172067468135316583104939133685135427280176853401598224594526782880181090997684527558052511047968671157959069455454699200820370037436716374265265700026142709948649403430348688969324008674971274394480252617770466066052342052329581211248590270230245710631553229095099217825330913449020962684953051559272886570839403453896249959572689067972839741743456863872277462769286905194300877369288095153397831063608026661123530245505146932934366445833531279382838823384876452369158249360410088932095270915726431608876728021213468166820491893190660882312862206750154936761256615440062780867809494335676144972495218990151613117358695711230413411106592053205059665401563300038409583856024008804968192423416147461505341403021210206380607676338828491010852279435586999960433683050298264514070228393820488992880147998025609714922839104300290006509233154112420380846938098186353352642286282686839585457064949875127916034694198278683453120901801414857175522295541993298250161870892016960514198865461364977677412064343245929562132468624251263264212753855403664395166580990785239882017842657601857213639970111594921604464598511748065636558677895349302138051467259680718970386151930467527146182211315681277956996038586289418265284217434894249569870717906155527039975937459539661274160268193379953981326594275982664644014387877522460858856092300656352640079381441914008056954405712148199061076253758299994830553147842596622810619299544548313870823472785838746202228908705696885281215027531636971302706058812972044361635458374259202939600593267164665504638055919529266547095855120883933276605645029980853791493796712894492167094496510709738914854323384171741131045303132039942549883809805569531945725619150284706135776419592906860937785902516846374157869209877963709560518701262696737459304801085206591441988072379179526623804042307719089199769980436333016433546123111782154286349938714685142986777114395312222464493422000057460074654836432414423107695135854227942417079958199605615991204617157536188517489609237228354024000501774609921760377998623507313435910629668267102228165612193879948758370879285969524166827909342447272053611197331978573533592757171921799648990667133147617128058164736212706332821983085468466447606139047414541930358771889042998268349919156092752273641151703433582025714808214214167835358497621155193561733650760123920635959707762960610323998427337224039630904011453447324326237571743605111805096954893412529263828105050230823077123027146480390217772733839450490592117870477975272054153796404688630211140867047713940815952044893805454370340325555805306874253297020868256002108526059455128829647890022416437570726895888389643575513758842459158642751846312510362021387255370806051987784122353622981609139118223488808236864880188994812085479724547961730801323797226735613300845205018919915868241529845015337503093169635831612841262924259103236686435312623308509737435192771341055548579695134702541271900695511930736203376265847724210988563280127036046743669288119318367648671483870700802989374468708785637374548085873795502107470190507505507574651668886024123934414553887619571423981865160582100344467044081776769961008578476284522316388288398513108176226515463672039789514846242132940741853244776009462951710646272100245426421213752006517589926124534278699616941219849780536605710709166257321724488994402310751093544277740352966993755319078231564225527796772764230083117538274258780782791323341729067266286656057529117827763168074665558623936146102018918541102415840488479392648434883983061323501315254266268718116474547619778957847221629221526825352140929949837068940615715768194503668936770361113788505682440305313609770410397392065906414486768942716378515656595609571979660607242885023917879919328881530457497036153047802412208265784054660490571572795770723196855487682412969821638710831302421570812370208855059100662634574320057332886163780015271768979796587148600182015012418264820435256786351581630726760943975557694134332393665465429171111796490789725352033696229127478010552880035566292834841231328422236991050461343449300736258871136580131197174011403480109037178011151648408063096312663540039061080946892531955463259071388611025463726027211536960485720073239716302821090497719263044300095482064234965988424061064575118635201793951917174426827667788374279717935206294359381536307892313949014432882606636398542006092236724282713699918659660391877527368620363585202947533790677341918463124384586439173141648729392802827395499430152711464996819566007656337100216488298652444251895668182098292162380761464309711905197970383335969069741266587728108965030334858536582736967199440803189251282854395305348610553107605033387574067293323758532683459412427216845131521733779937237600065463054093674254823439048270454879573360816790459115610382057951041278026811350423837190749357002705997329269118240393836720812945949443203889656165521359950164534716151945091577433665577552725651274278082514545519704747240112659157232282181635046546799569878934191397253013990997742590497966109428370516651020069127510232252641020194345957635221360344317930304162195966663878761926756331801999767901885136671209781362700282804983884578472874904253660017071086002351239195890501575893159752189809467307261015850974740465713645726488739967843077480717403920592442939923112700409654865213968297222327134746068818250217977118734829697184516023633941695789960515531186743413167899582476074651798961630560477415539389654971082085011190678094825673462492860182349997681505299287754787764652048356406086442146160131075146806801597826017265325843957948301868389146264835358368981173306566622267811041187080323266884005911138971360158680602849593463446341187509403298520858260141783639987878377491729967107104103026978079427190947310343133987708517326529586731769818638970027582707614216415741240200529254493449902844746557233552500469403471478802600761765083837675049075624205562969293097323206017755187889520692547340623047240836606794495553672466374361615935691318502865514920824598452642155408218372145258595729425379120236666752523468790605669991178439713076188794520841965497309539992987274190370222904223408648178235676940524657213735578724647024236013465338816555344065650776599419995026036715612319346018445262231851806577056655906033438027490293408458342666303094442696289720910878661053751283376071533739083189168537254338396345713272802358496438794188093441750392570994672859487394436566125028581039680743128345112546802462168094945421422852497265449228640936960716948354373618147634758880763139200300768092739948036353112818949948259999535933379685370899986388599134407905017512232489770680344687025800612041608316238359559409194038164053240870876232915125859759454981241115526912775292907462794822433648116639932735990991194471145218930325316373226143619002647799415739698750400460390793009790214792138385906168129830409343347751286444928410234789610185472215402101621851501424277173152636799081721801324489845275811720144338364704556511918571106152981407114360762294461614615891325414262917245533334947990166754883816063803856368714521359293481658873100550188434161289710994284890417800703218246684563106404198527593268398232429181700033383251828149007750652785211466958017891562613876272698512746502015172747167010770500728595238357829909729384400783347205778748590407318272268577760975982025304177108774201903614936270550864230199497141610186621039865061084525762729423482376964671846800359978462453605213361948857131833746429612985418775636237752085861191245382844251731125133262380583002206674433072867218382541289820963003612932082547550870063012444442220167051111977003023931659000267275799606709840265262347237149760329450320763669711880140301498364067413142725751209906865494577175910718474785979466980873275131652335047070572405754877564515526228028100850893608623856874629052188120660085383457197100050989656710329270936548107861949354404891689195567532423216653141100273147436915508561720995478678907194818093731674196627055206159120032593140940404787893819768615918017559979731050508032678443251762404675536677299402133297300586932507196155460246268040363169372658990242128692736888747212217027796205959513089614782791721678458629447503940145513741131050107265310657698412201856930898397323881978529927433907786652229095099417264091123026135916408734046587222848103847111680515830335296780208396413412461926448313264724805641858109329038843442028706070395167869714679079702875742067970670397102619467796280369572591539077982886953508596529302030260214102390058959035268020749675976399602063496279961363847577515276790692145527823088583343766196124277182390882820805573988799540333689004071410357520755674810860549140506059602970683204453250878236491230720851056760328592531915183798747920218798037041804381438833681107179403171837719919626979157947737542483747478670190665931544229544065195884249362491830350698212714932169312357089588847722639118633481889770671697245593859240240813206867205290694014728739298630363178624865502806138402266030209091429366823560502321669699245916124173395601089965802658959125149807717008392032080638466394693007448796742907818281486543887061752457295761986495601422715469145605947706182049496499502584124141182808944064979195960721752867555071696802923519006553654320767699707374152928291956946310938521022130945522642389546554548282059877790822845875431486733181526748125474892027489984533176092687831783791141818508767761182780026443118344384298767580021301981367933828534878268885059571277392039421576054162469100527676732362444101520700321933051886163639837459000782074158389643737654882894162174716931123975892626968740597692876304868187896229512551532267888037699298448244756719655310000537274546543815598973233314267497486190598584380840538801751446458510882110949670979945570920960697197018474074089549464834693798908996025983037262462678023887986866493246367670559858782030080944544232823008034162030086073570445212040023606133064271130157080559251775953360023414638559872055352704387093087474389432374314497552634965243896498163399677190453996664119054044959656526808388358700615083789810259023575621028018745059403643850699983226454552046067329319696231462246788583646118057776701716946364848743127899591740363311938864985237280738774153676383393154851948911751020829105945627631064326380625519478457036539656040495267646206018645201545838293057148275454353468444842974401183210940835328158576181362652280111986103960762575850304842024992558816131425359467059965666684151382353464718602712736331788664341368766825663335038657727815548357058055524671026090616998130675842248267353301093656322198762947358003712281994146837950480314347081446867689176064186206677012755458799093774542094590729566136024748205950107593889963719941828843166018005306038014783595430735727991787445421078253103856063293689472640571157101465550753808509304282206277488529259212276724279332134041848934779876831438297561615435415083181025432527424083231104248957421074386432145396882467255721006212925397541079513030479798373111339105973140226791877706821421141367046168833138881388572268494050497505535901327018157640401472919360380532175992362091194153284483771053956656715803162411317287494772429674305127506886579499242817153134644658581741201329261713892360361563007367820419643203608702264635977366537688004366924787350887699322534937916835879665385276955553090017072608624735137366465261331467852328421109746216453841936181615135228529555486969922533612680137418855741561664842951569418638583135842128196874977934330771330541240783218805696927916444219402816552471704627537503302687108653919034685736983862096908218959427471111183745951367324470309411098848262028304565889574236736809865749575025538593144316344774974668436104847699060663655464760757549760745645139808204232091130217256086326750189086594603017398146350426348640467683898527648436885896692849581823395927293849257100938042173199024142611418134953665901848184405725202538048860246751355883309017441144364918197270412088979981779079770929418231989462685070744372991123161492509807109964361931448374205485807493860001214041848863594259483706239857210404858232522107556782615465938254273433290774825947197700410537954763066471296698269335558604507469001649347557458893675256472479400145995488311053705743706673927169838629435524465841420269078284094654428252667488621806201754183571429828929311617685393878170650134821938086563755279188378406985048260460308800305071827054949379985554908892381846395914808693935271965701799323906803237004404140216285942767819226179931320367000524499498014154925916513208378124968909504481105473975396312293868781436333135905828583844479475500186043656146257315669535472486744495762138675482045736916017870641664930367856873699467923739637264185813238635169853447698198448369302468029962659351202333095082706237364768170462494977342483519192883958457382569820575930094722283394034781906840090848396818543686408453627695173710740045428813386531004218153926919994802969798500939262381270427110875758841663419799817059227849040706667422733809354138359458290641071230035219110392154934160762688168321890496895559725037601751974745744933437387033384130453056162582326516811897722910563282353598711788001954155341217246566515849160043462698651346391347053061186994511300147963033563321834286370360645905366326141118559459412783104681663217635444918883179469601427686562592144007465234356436330230655683334764094759333934575354630643460046991918391671316766631497525225625219281818120622219774854086348150477797877140551483642538600637130516152324416684397035249417106896403818113240853076932754438832252633135259198016465352299378744243236334692933080479061499612049331812051255078666961749203225914042199354755558277259287396996726691958887048638977846757862594950182839961542437654223332882344808686209358047560444517142744567002460025276828325779614862389824767686742880564742929699648602874764766854179965570095259919554621658780726027800962922126878605523695228056613039860898640786873116379698217391718381606307752666686422893293625495868926791563326734095980462213737769709503146361756927443311787934928768416505946433346009443676246262681635620917365662299334737118781079465795787280860961920483404672701461428645932526808841151522308717932715604145931816530906114585355769599613507761827653228377223753539509388923336557366475468621147394430927703826543393368075277240040359009849197718568907514290928083127150598968837521551915045629320636930218273561855309996470281117435096522373110718412758207665978117514521353565553527140470230063567510723511512875293801563758089190596918101991993323068027752380177869283208011697628578599223489388080902404829133636620920479850610291948948237801549477506219107015992310106117368186878523595641891032398273077557568504847572122247623044724417532181661397586093927875521861477967963618494264065984865131248112016540962523386499767815375747153230446538804241484405094909019226408677630525126471785939994938331573529466070632621152715786074936656287024244053832233017993462982141038473768485307946644314998699274542340296665786584124704643359131760201683332490311549494537905669998099371552971504659659647473277359694801876544317071059227778169002271454371864298678640200457081244928937259010294634762705892475545632986188773953601403569905439928804238600288243702959319980872782434141850533251298837845088558398445343097086997501480958658459346758566890897083382245208641548835939723618301584718903665175809280923722192867587947467486588773173850265947793956031629531483140885778278876541045763531158800877058292824272322605349341706505741021954670822792023801203182986106347817373705570080694723669153143301742251619943802829923429715936907071193007113886374053044197712574612695384131633635790144148618497913320766634791400733066472799973891914625782363469626001568000484529891565092269810852237708311659791146468350445027958381297232487052127585380422963454621511623924275168033499563070774261273398455938886723634782684747310726203353481891131211060056111062939555784672527839958358707037954997586547468854489769374134840182826001315684598243889541393500566913112516622824568417214988519186168241868212436533201883961636087979295769122287922129697325100946581384406652982889618561649612724067573243451133573232443293407304389752431029966718394630640323325640287957598666830822290559529764348359547577659449877193986000386423034930032240635718793861576523950719177086926602839266393175662887634946339118178592948522401128884838143902564622379580412658876818713159691934791026489980085550226231713426533262045173906255237333743275156978397598244522671587497758755473121506121577407891920920877359984460277559606984634652285747542445917492369308051584912800893517616949427977998261340782212553136366331305579488054309004394246270194113140408445342901709327217002764818376577731716190101300341635169007199571010628313296717903213066638815517070269304098025808624878941089286638119274925949709618103580282946820377738847880826499368111351947896395442165153208190482174788279280614985185196891578319816702497615986669517454199415762701085594210903561385240552740756391926033163420081590445737599815293463373598082596529478409093338154740570495977719949764291057559828499776853525463073612055243228471738800659226434633217040225429236880048387932002130698161798541714760087005977638912646949073646390895437788614373916214286373576719693555854987599600270600591349822932758103109082223771712546135259602359940746491650810803004365140701089957699107456239084144809659546849797686651949625963742999366628487616155621528022201100499702549332895102999563697972428237036670385025272853868969450881951494957845020518024232010708769875826757325647953154035115278532855324503943369442805554591336580077502117159442311543250013563540878264735953264834527398527153123064492097671491866528601070604935180516424408395687408062237586747779414537525435379902526648323745876389355394289934005675961077526842689100083046976464933683279094386988897255646391361277970148903826444969008936071621105913746768250508519237065374189879012979704441971681708366588230175508499350565508807878058981871523284673626117725183363772045225703281119503440089092344587820003011792225854863029270661236431925886866483094198889751469178153239971388294981824591313513168398385672072285857556581143965274194764931329243338803338656740364165442088402225721707828197475805592839237814052744865302580529250505993861370010320050910761593233382952894693729950619954320182422439961300530821275468132275971125101460248140310520951769010709955725032650868488148671835621265117424932595722109712717686916902533636846252438332345722748043811036043532755084551061262072808407785916760094921722860311550675728806062538908886194744692274325911387021118335085798166719885368088915100667805907493064596400546374672411595232038496451644478921335525271238124105267561929742295412106307396235407425334210237208716023312023392200002672826111930906627467701742669527356011585132236227512599815785990108489296855849202426800757054902670149303540127179555432215045198470462140682047831790138360318506252194329354494166245807368712808683165721122740663076949626102600110117054472581769671962861691982675735410714470318639506199470877540769512795023321991707135671741756724475075473111621874579030139077306900038310983500317955196858366489550553185078024688623982277889298041711653252064303365337412243139768873009077331766355487718626762629343087242326960686053378879747493742655595253096122256467932580792123237955735241687801914892265417778087671997121258776081443483282293425564769721889822962747539579836639300927069309802040274866187936832266851870144194286615874854391272234130308136746925544330605018272265985099928444414897042512083683341179684698723352361596052991388306349861785082917427328210334027651432486772180206663949213590633226293298762624039937942284962446732575462563558711735146192683223080643362858071389818712288412745529280297568934281951882288874336172692786971781820339309281723764769691707594345028558914383438043313650722408329806310397469943966836933661186764138620087797464627827366431278606141056886623680617498258407888582426216005803620742716473691633810794495663657695722040552939977118161922863907283331129344848171854469222917562523398447068036029962307100582617067458722183134088230882326059440548343922599100347421144261654886254931632480563552195918275268796009374327825280626684935801964201633879619057910248801583999092231519864576364863780680692533970777736148537273384857681870920566670522722938078876711443822972464878977920270959582147459446025512643986872789818101460035170240529377200898786377523811817640472542011277499547996616882490941596646521027880063087488232430887235628579929849306230345156383324688645589295183931402464250525102755460149934482253008076614722385880986842227207779238324922997242136822395062986193766913942754899353649252475140854005351733730738324369663430709899447881097468057167731311213927047235146161078005837405382730158030861423049480777406876143711350878218307604853530540944110794000091148505956859493590943100173839030431634869348324392018114205918870059835205865949884146275507508047935371081610565078890132775520708250276216374182977009036164426390634296482130336620822365999042573511537246166543288210859868467485289986789491937353423765366163459903713451003776246155509622091281260029625948196512969166941461577637809530506679839660526208444164382803647033232342436038162241029629981790994962801887527016430317870285997786640395505100420854819315791286990074862394621863630923091030520834362612388176730916455072621657719836728905905193555958374767268402330972183487235061098808514815752022683536476406579832920643396224772083319727834618537658050076273234182591470481893746748555299343911967959852380431365788588385096373478885936492318478035750577599101476769131993909169767586519213900506478537607279370333092266721577028407772969724502276389770192473198835684218611250121143535773287205660182025066624337025797742587119499532393511972212178288244564974066083341022209972966077381836086441862037964006329466528852270661456280588754668071066457893765005972990146106641903950528931464379044647171554147817256913268449841114707824124473155519527335407254711405878786281536246658948240307476497728479290286680693257124626798835359842633412488914069945050071873595735501835452364893866825780002191237180464403354532738256534901691701466645767776830735798678808681061302817592738853235520044217596510280671775007758981779172999472279067398010299732853151323493682236364387895073057984170323524029441586640468266005216799724734774521788847105418645727662545441855044011345750025126602751367902076980119449702804474854300080663204089182261349671009792106866225958411669298991129641015186034966765772792425272620179513600433864795702064943989068113130757746591583083248542839929256155983366323505092858283840385268543645549823728717427613899234589292227582444159279475253833233198965109713980561238737872951987603340503386092888367021009213635627976093312366318202074837719270893776829480891749515915846639382465620266654340520687071008326165570932928645952792183165708961737617066320399286132282087881645011234811793382193677143540460066917349883121584084666885586442491783566192332206533845840006723443388665335352501938173436623909853969212928435075902720868937257966418209819351697786614784600225126301460157847270872779919327543096040247404643985145873598161006385173348753330885468979771409877239960873277119199558233084294749027809776822712905161393571157257451194595831858416544321771463935860186170553409276350038453098766463071415250298810729000088177559191222376865659160347130087219930306538711640774618226003741300124076334085425731721884438637908386295412122653394476067774353736184117583384180868461861658584390363113282685765512576060463490757371781198378590789795980599669587945609309705430343606602029160728991068604035818084029911459076353937613432042118839378406977904377207554029996172958340740499735976800541194197379045806241821166585905858212441419408202803540916149039848739944176149135641450066193812650482751362490385873271448212258602110601245681867601421115413430556503976537784421714091622832170854582685501841057745534468847745427425226628931379659854128622167447746853716287287821222295442887755820333867671162672816374442869315616258417694654821538289910361054694879316971861347633566401270899884741557773642112931531711565859365872662847154803764711499637588532288649870917293632032531431933252092051193157502277455405883661068460861649379974885925651344427158671773966896925169512424217849012729298021398472471929781286905699110820149921239624718652326651711944926959603867877604623890332142133346563635733204092651082495979647216937829907508531908364957188457052713714198019212811199247529942468592049027058577561088937266464969163289092277338771458135076097863193758913740893873882364293914541941971585234136022344477539097172629020009526259680679216194006453658461838953609710857628689239858512863606493932432756809469350001780126834914714773621521787082118498676216228129851480639057979145142746385129068526262846222565546139017933906660970389342832295778206950518482754952898136980776478057794310925034629724483627671577813141272643276278917568529282410785001832174814876782829748959075610898884596583739040449821430099678647570567064636717644629691648379641467321854640124033299737774759518008622515069303587391396045776618396824006349990521486225559805158199332226520779606154971643271458946389074564349599181580279527827859434963543246754792209830191146493937317772152762389539952253696722803089578278066921944740096765732695793660688347164741660341086496356325453705206908811864467214410312505909844537299971400631833715739669234064433319148130683230919555599980511842851184333738437026328870750371314243237922344247207271443808635540555868595821663926819375275297035232352416890266664751960172774707248314134234885438211155784921906434124476678597102478798250482988819773710603206062759022450191291295549760414180125645616655019575591638390618426223340712165328378980477162984292531849893502634807644728944489865463204086959456337540587719683217125922739321152199925491492971914387489572525999163677724159636967947061893292317627122439484967331160622395190575423030781182733806403819283765063787238643670731790802588987386790567934747354145483945098951785627167709532476061667504352983089234774199093315850632373304796945297688492626116596684502402012400694203252615359214558096531815684046349257407022383874613847703227448652946660325300439198490889713177035413679312661407737778286420457709575316450673262143435364635858903375933106569143983770293717502433431750362734153747545520027635822947907881953740342506533086322810162412281400322222998319440864900056887209810308915330542899570754443722571704361576256188556718957267648873974368718840011918650325629326164125206703472967265190711051844947604941521638170551982978952519279725961457770998814447409556587176547125610608100831519699466106982634165275157785226325805489474916077279865113417264957277204970923944874042257605611125818379308924379779753651437719314664074516321945378433201668399322753592764312325562059057096731096419989072123159595292044660483984840618451908325267355174270033418562138399383910329948347195582834360129502994188396188617057292770807224268978281161087884802010884796772724138265730777402856678635931701309370843445621206040241027945083239435004578682127879485381708178098214336885453460063124150360358581035280057616738980602321817069906399338064843472745713921254360249844835545562417218980383823755233233244188305419472782075458387731271349615522529792994608990930975769164637396984768498817325142454929236034813246631965898179856395538728923646893409675431253737597888152029736057092363983408984039573898696345304900101976281209623040100048522125767699917049610243582159316838013110725827735796733315473160415692456548619482786219467120321901412851303602346869692891123472195306006821677505110481551093885419855326084007984551496510812516503056393073407512220830506886192143797124900974132152875935738029490774408798559654710188956293150652775663574435846403185786012094680785561561308627757494649528639151527798065810920101913460434840393699612802453693222587454789306003202390344635555885264510522868886553595606901403430126231385859217059652613490983074912321715127987145564229704229789190088009400149179646541487659414514846206704962716425151730943073564231029072276843674611783910962691327015773159777298352304353916411386845291555510552697035213669495027015890532070510265741568304248502038613388294329420113471347727549680539654577049482272727216961227232244339674730575002280498566275243559867029492643091846993076547386905666984804408424049631452578512308593766007537112727490360301718195040700621287738092395111423904973806689604566589745405130666007496962590209658879401375036007378957884538684396521736425376907327643095655445523500334970298234009358273388991173215864276201962138086211948510402551668332513782313732325234918257855825088418282179021794348736333512810149441203961323457638370957249884942633812526131090651872589598472346544504641908451033204413638680446415335453630165375781911031388887378443880863398595895073458378417989239955680550721865970486608812458453008713261103986120756079883841735807533558891065709646099205733812461957106654214859673903831513968394477604524087516968857559304716735910072086201916583150173446318789999021528990906346578230856812368449055329784788970507778272161793536096401735213192646108543172670679380839702818926225027334505865344022827093384354986631510812674080991095535781282564391056413019296931187280387336524504580573595684091184459182745829395089076612124821100954783234363126208344822482667492613545030690266896712096687854869562694234798453932419726961959177743229584969831781724361841204732098168422141691452983757326332419120672110462667841043525796444446339653694052055523352940422556406039554610730780250039304651526783013216721696700742484398043126332796136117925133930579915107580871277794920398377620066385189239396241756856718091442318582231135913026647815232299987750112440947713751472488628516111528588388382901320223920074204088781309295327426493306553499220316955792662306478371834105252548542994128994661455948443256432744962607216578573532864604024512365694812453465384255435314717142109647428793983723544164889482824347546397794627354347874908859010732156511280002441232977611856279705577511913771745780106711024071175842851194013552055675665188230754702244803082044252289632246816125130445414680243098095562828076162549785300733128875395775936245305674226041524825045704220638305243015032253292184483337128648262244424973664926717881458406580880043221096996105997960706763325436589539515398305088489048732121045699442229458935247562761244948593879413814023145211642814514201274084923706643969273256577757462514544688616736602493017155782460555356763177286537579211227114699494809911971226216828353828222079748854086249930266483530728410990512270190379828282851738852931131661169017469546338269328475370156824646678228318593691193570575954973332414072775550629804180043687426503858538588927527758974808819755835277369267834445170535311986731811837550526120889817689884393993908294511018049759313998050891571152437314092973640552024667890469543191800082984089106273102363098734504890486643618926393798389183099044540650298680008614362853425861728270064124669034350521060784219518052449173787217193836097631433996329868054310847389227389732460526889866990878648647277565071962680076145964582411208749804946216787569972800316229595783341706608201662076623445952594986617432184761368271846197255153492223335778528923212529932189552251870750147388344008405414047696029634570433586422227994660872400434569670741749457438519955010712396508639633019919349194314793447546620335749845697825950409132849552582441204542041502472548915233366402167423850154167776063990096211613705076318008544363995589068205551780087677657480065594440714213622888414422331726737097323347915674166885100983488403633231884258770917172694917055881843547511108878364011072332034886815436908061341438267401179122069658988137017583695725740753326600666793143401122254748924648898484887606898043448672836550960386769333602935927690753771070616098514381928005721551048496399963215140230763272144233923950176811698660923370458456380458800117808044064663196861505816647797121264074909671792209802571559761292037392487604205651610240260403573694072240249073418773008836578246064435415210886533627540144662160949370951672966670403146935693771820261021973163132231383359924968675218883327944945127530458771817787260665367156400705157500953202559261192570930077715105934490526980168916582654253536935357793585636722847537186960879303102124343052580179478212731620975255624659293560187903163949147149182092148394753771321653887025128387797515533021241292258114193900415122736129472852550120566145778530129607043412686827986603326073321615443119573096725827837970993395502579788593972190300629880611345631724256163915699811752973539985147678472621349900947445772301878567311023327445691797112375602698842740653277399662808179980148902177201472505769032133392726342168394078082018392700342689751495961745915199124524010753949712968542573048040882628940560900811592636989917907259017328872827737790288613758267745159342533309410640363716918310931468716531735489704673531034485895218249075494700405351001923534818627241771397432626416105543553996873103261415803975610111482772445401602165687586640072214462059192850328561068498507839361253400832438155313580663838388895361004160660584349421233095880925878255467275245628359537317629588466601158215607282997684156651820832563603659560827954342730830076048328703122503559919587481374009317917911304000490268688785377043947668606034882857907970704398288049526303555590761491132547915590389116582721970356587332071344269380232143354031126639914058925867644686880704105904869238692093606326912887156994599948265914867388761142405705851751099113731232514444535775563173355555315198736944584087402835058830188349709018307365936567293879519372894499551786790351141479210947029373609562474794613862399248508329566327271080828598500850271513680117529520815972690251331888655230591422880838926332468454827007797443022110585515028076797833103284718681412247242771066574044635909261187080278137980928328210859020167126654517600064941256710823904298071789162857119298696120529116212173128386478207738936619767706345179507158712691036653643315924634420407324003012971235347263167741837483258850401629243890781194776765559974808211165271279481907664328651196837056122343943268966327173528717647965468941305259464653257594450340059610356479674006150539598547624755748981109569156240087138661985506895219501651980335008759143223803434940565966882641008144099858814977200323915845266752486512050782746553023677253292163289899361848632173029735780721923251098612189168642317654782252635315788875741841739029618946442851919394475151934340554450170322123598891956277415844784035120518724702989389736898483376907867141718908655242677357093863182040628606794876710339181793170610290237265508995129550640124068295587178042148125223574288898380970589140317827732158741526775080940204771485448682158504039455669880390118115512020016467924824873545698691146915015355789244696325741123271379645406921927384247928625539350778044772347950778438162792364258678966234331765268780570103282293574136207531678857944125043030955469691067814085674506459040778163665510116396326463734351022145341792707398592497344762034742535143022851328205854550915252173671650716354948908807944229956248309676377115869135189436575683794425196853539770126342744633147545769090468491902137216310534016669401880581925479560083528059940621414453900998963965931122161598770082122955167925652820204390783814025618754910130844245441810540764814075553338299798535072167469564422188760661894057227167134978994527226283256464968096475973313880140518616146677765138331807097884274839908678566637328946748269641763744915029295643204389293878783185054815248161726777780059169211352749445233843784414294408727322823148065508068013510072572626389510858306810172264489081550462212988712550035607230077495972393014196493950294784656311849445152574039561886956649844382306816770073910038140634107766345564187946503416140402858913992709410140401729107605113545601541545952501374473093311218728414385539603613015366250278849522071234871807493958173128081900555726885888179284195408946153954289472086992071025667600277037997148702539326808416426483722013290390861739553720148850025038457947373149315061190842028358144531673597253025423109538461030748763364503634488909794941469997170528413706935831422086962568691532460754036554621686804926717459769288006715743471373229855133677659809590267686147313006333428687220329123446204692055156541875454409182049210265279441074837697693828869139260225841469010411201033717676134410887331163931743059104740873731859873238358386707376407774984220349688189965408538540385965979992357952221372759216379905708135785407501166571186381904171411271682526951444468506265880671845870157192792153669612617739066589301031719616787867850931476401534397633798541394301079251611625284585146848504021802085449043628612524001541232767210890107865174459068784550591843831901404986826612866694075716976368401179254495547377496401694790531262724866887763039224874227827437300615219392880826337689596009173014998460652454474110562277083391132877619000697126424527759986948755975134030254432734407896984746248568640709604342240488534001145728542329331267641770470002914480170741417606639079322591072609066377496345382500410434743142056921946241544800971210326322960198631546202155313347104688757574047557379279980005634461492027366510120082019424496459041526115105350185426971035308898456938355741856775325641043947938045551500804405096335404873948969334486067581259181582963291844619970787366176040951987596854647538493052940363350692672233475818698859801399874605945247535700710852185300489156528078825146431372192689629399599463339627481539388700417175259198560174738971817277963549777285670510148875986150689688685236575242407721203405256213969754480605177753432426834993458730052803735165681942971872784433374442799779183557809653380859776005128966932606530701339963199652674489983002069168629078481914791070850222594642663247763819794086343373622265507724971428351736091302929546577718689744151079313914383109165146581618560697054050164241141431549392442443798914963343876459765155272933164937831169409178659435047085896170062731429907364535464101994459644699903542295579995303463443884989109793604682476241396457659751597616778800711464406168962212310844616238383639108998899633514631576869742527066258136131452136976712326145193259809438532240059156610162537894157503888154747523223120069327759025219394789482818090428211457479911511933356672393035529467129221212971816708836420315161609075903035976422872750389344331046381371055197276788755471486454792420401718354219036345194111850950561207372117744135348336100707196506569152693916524210828186617879756800450794980111814170245641282815988569092501786643303340557635999913255816462975132512938180539688760557945575619838896024635110516302199815050058952683445173694272292910369492405494381316548321962316513372439388434316529228062295328927208701751008362688603065468456947965892909170249314308979108204810788884065999523004632639933388614386489534315987750137861806196428290562663953522003590209001453085967671048017608185914578662280609498135349668018075306780733110083145280190719066512861540143916837460379813204591805162895520172689405949348407658922849789599807187946799010313827992619612793617157879641369981360486091341137847561437580679835615137369965074094482475466462433435642840677193929118148256830568588974950422318030835654654105290513753975678694491550831651412431129076759347572716371614021069599780808478702695078247569177969593299579598064254980253695063574013776016344986726158685661779078925304813302219713245103006352085769390558691568969654312101554259050951197638310889563963206439066901997123674773821983467615605142779389378187765295032787252181568793783328294846240619394709070417409625965171170134043901849718525389482188152922667248618424345515536540997801775747350020286746622544602729010398888061571691414211131203264920982466089967512135758742519058256238097849550982679399921372675783290604273402294541005943141244677353771524113884683430708610230487419479674658614790552970015347798143125008135991979115670808436979960515443961717106932650894979747435138338178854860972441755256575786065797815411058398138705010821764222111847032919369247965769664295983563514457057498595627602021681046320646966016928279254286747548574605120667733021954008944837104337129119847249343556811844026888340609376806168300766558857219710738789142727620843982154060859139168003071574299996815767277214071091032877583769408414478355231372558204970658750031171713245689267888678299207678989693829892449133687748633689602792572579248404459848006008999462877232910360716615537420491713001837987920115261179813854048331666443255468024018491277504700460713931599670424021257568944676746540126457982528609692657219566258130989107502399505963940151547326847355974389797034857319038470425576264481884510621178308289954615435754740116445191756681776068289131834359848891930020788283994968981334555610875870718719930365109011221395235563681689759168551911384514010881186897796928759851378633403213697278427629537409634222600785310902850392384677733939331067644791127829914444199838152946433283175228858640846715826843185448445179193624682653508797686003532583962242835898834890226610324765416875551758272876034350448696672743747628421620376824302973181992446074685404535483836009402122160930638718201000925871827462965279075577695440369026691798221145809705583008752930496901744198814502337688005514250795505251436386692249061615431577839812922754790090565605218138574616413607019048539919492370853640579669637746623683188156249587664689181346908742958524938124159638944215623080607881662745774291954451549891955150260364419240270564063155141077135176647138761865740482124294439347595482388682215800940723057330884333648059557524875600674363549883163406795914840823707740235404083057289276618508441789182932362099782360970922306105911325333378574152319425737656107615924051467875843871985063841746865452350909371199362741359348301178908755107376836729783050733620132070254132706244272559226780154051931563268325772067281461086867098855571201249042444551804153992932703844518317103364265350971302428322683769777802707243637927544326758708866629911455898533197348745527520956149805437003676038860387391163513528779502790898995944724031122927958327177915061884080735463032090466663944382630069847405903902822616306858354269721647317926736405094178134069766066529155940408596193504196449796393893051374086201918296499361012768432420810489324880797585843466321637663506958062213334874522571231330844927168808069192979094284858945283997692624482221997345436800829830562343126480067402661999945605032985133435285063356825682165864760186285955786614971037662695469123668511013813151767238856721841408587034816604337808926716973994748571273832052341713293656925441573840663402745700944623595157065577007507081910712204408315707663403976639106119656403259666251211560848245137521766173378209450197539187189231590351327847649731026569225308686889363696371893804367297281106517994518964685640040269637663916058684857205340806140119192572173624498678552264459978552688315090200952944853595094314959308590079382523791950035908421612338019474959658074077742176998201401296649314002793063369607866168561584357161322857322981733497142610806302656768874188255827229779299059686710546485811962215907999143238113079480589673322048871520052774654011882314090012660455436883022455462983498167628390935324149493967202959580485962171421773636100384092946095091206776045882468533990053163364250312149902169908890361538091866923534084255722329462843016418764982494197701462715100807172768567913133794954764960241840577292980725395419809248767878724493521714856334533001903781531349878530815016749131823311171170191869860688592085510174202988462095158370797086352449415690591599094157936075990180061273609013895862454771217884396785994547592350926909017109564866934950719885972952732793434818261170976221448175404832221357295089748300981447444815368619131186750761233970419833802801390369288953326078511986398919101543141315242188044056213688013348110862984325116666394230767133716014814395031390114052953200400828292919606604456833338727450319022561865838342051068766740356644606687881147069921182904206329839583968474847139765121295222379289562655724579490344099297344957150123909626189889675489949430850069902461070054778146921388997909764287138700165237025407918108648410024587108643290452490908700174300528861835525884432559037409696195217826569573856022670144808714109070224759575180972036949454877250321639728536980324497913425866047868593239541865980953268120076832398028747446013807606144368315248884971374503657732793033423530385353202089237902234080846547706981022863641596518409255068961060131511906779169007664732966457822618090053566983896319845117996090327104476688942746146523111510406175233221410407300732747075605512323052887109862051149840366416390914355241558389634499986883332471094893999254832698934034754510334541219468864515373764947597038787061706618682604326784166683179216993137476359674244024292369044887992010797275075181281649653726130163576500946569145068767214383186252190166214150913546589070052298785791983964208708347352491056420129767029433507837086264383087891026708597227604904261305247427035193157604751018553809208381824969841838507530304624211172671600324049237511536509786727249188333638220127066812830642685014733462690993190430779740046871753851644130886264586700244811677548936595379203191549466460827641597844231336831150268023628222650147678528696611832510435302306913713208020299571816917174317252667790200107187318076786815495796314014316270266802640680865670541204601905100366058729945681090112948677722529881099457893041613849965093781303652219519071127690675572149413006567078349674341021367259586974432845060791755343654670457839829495823860689537961147272466614741583819230180362475069851045511259279362017694449799910924927536629337274385716427561925034047149355663361038760750614291175261486691748763977855605515132697316641813188718640675126808104173867730773256252979480513989684614423475754145766856548209966719496731553739512743966178624648111329574612354656513255937196406423985082097092317681934823640931336626525185090174979824017130001726533668974931390710136626616943162157526712109797902629218875611639584297951923413143471107477386949080981450839697424632405696249021863062201701100665675190693937151868052396291388530711178452994046327710603138718459650259723973112005989185702745700464377393738234491170490167274900144772710953402470366385955119249985514447295100629136078926124298080795709179231994796355237092778145769108589784792493944461211210665042922013305314733876618179877345085989435665124151222301797758303186699440181220379789486606110442337395816526025982352261968019307090533181762276221629610294854113978823115195869523200489520260420093245460909278742104098328932841756285149266083187835982262287411970497413373564380972932573090296573675105823895787027822763622602144859385411398156055399215108940743838915448468543849938496371901692362145257376348051090703635810524879708115733495066453683870155014617862278830392547341399326487052440233422150052709597840936155655726166966940990421599248932086705075464133815126040507724919745634616814944778649134784463240947227593493544093182055200054775305012204093868077562777355886199618943942746626156305195150642945347231745187979064532195552024614751097558657149221436910186493967299527475521713839070982787584256025649598193707114516537181505817071961135452533547810948383992498170486989166245198598054801479769434745797181948152327344290172115595130216036600731532497762518708923133730672948659450018144446827130008768290445816027297112460476383677499797224643076684987313132299912502508103716356741182276880358378509531556118448865013442112918684322811240959729185949276636836840251468201717600468223705094803127836571361555736587592809068922725793127687288987073400913272165969526510968566543753585992975094178707840919123986249841972964184264527124790161922244406591061674451893961073042227557032157849828928049645258487326717079924814457456033722071230120781087708137568103962071900039058323262804791707313103117721330609345399939337221479596891848156254325227289800818555973960488150658093072435303458389489362194183599711994234387232600329168082459871108063042080506106135547173106228468648403876603333664904133218739377384004704073559692147016801978376671500978870196646852297099184143886723178116127509406905953476592370739383830593038162854724549654056137797211729091669624727684371919913777093068007797679444861370383041648993877391911018972702160100240666053151105012823178981024469730064663201256585161905301059570235512096534975343162030166856601059627113824208688181464075365633814129528536926183033585973889017206158201517162340281871107876413622194983166180658924518015714334833661388715925887439665918514826126356684187696592045606472858514126232754718953729737571495236554562386751566241652193912557558105985566957742519960411337007718267988952895813396291042755460608020994737162671401878541914483261236847544239607272806983396164786322919338030926260504966352962200099539063383197378229632107298891656418314939122834532427499360819424545358730688917173169585861564975437128181034173180447050110610796229317274586051522937650633410486208537314035108885672964772465620970008133205967319857171057550605397215838232863893385318699400608882645065519263330904404103678114953110157619960691715531192850427505595687019756826375386008092960534305670836591733983255643645332049379322959279410881738852858510473406726117495589012089854544199329468411369255514150990761335973348479615879009792497292917832539021643213311177383307642590565875004131990230098155787572524393628323577000392048715199486970285572068922135843546603508635559470257063213899948122560625834581995498782837534772203196048722148982788949192465107001297808242032682937734745499268610740829516807416749535774346294951895017239787128189606439550218670307936367455794094065284712917715988938037578998112886408361675614947027293948405196842838414452095542737116062372892262132279705666568719281216723674314510008419821894615722907758422604033479250014778687506357142991646049722410160223401578341488193970234864822494826817904995127448171629532449626556593884229813964006132552747636838426093580627575110267182906230126774050222694436880806689804666192444960133125310595660569166099260016259707604968470511247680122829143262544604472797685830389323932452617393316568044726156434951821378660154486267506610590998412888691837476906061036427078703726343437681799145850098919448266075046033922438647691317849399229804166011246980794565966232219514832723666912480054811473255427827808229680869410872376833222622982531277557515938665125651264418262440497260142651733445718710903850801449062426171003355864148359998405602332930331198764538829432558754757791249596461064638485443350960132535126898141161638203645691866039379438889916752043495254424886198422333562667049349133284564919897249677441837081110118237361723077823074328432235568691939378788932025061572141917306132093067773404682076971587377579696064244768946714465628083006601723010416581746237093196828912456560738043183563976721229004701937064889399159508306077596182569139537388477918517188147225759082947069281205901396173251407791502101131830653623404921543812087672291847331587631654498005165121577383048029796190090009352729390141630935211415621356776363199398628054024711023403693204308449795249474339151488268021453498920013720853133304656444654848613017956658374342204890888072261332684034665160467001405850637476901720736170770278598398639018880963207906999131517929413574801124854043011083764873131191312522619910644497457610674749065376072843898252010094802381474736366201555077470038956681522938031181275249565602736793826176267189191089671764331882680680220637801215808696695590354145883094840844655255525203146525510046363045287782613074374455107918289450235832315664981454952544803268689968944504215670141076219045226307489645322002728483540858934079989665907492213646373075017118969825188410740939963534166968926807116484241214581565399769972486560685529038729649733215987749157585114226556725896386139228703846409986647778855077278087815589083696483615777607317862308988415771184538268459671666791551464379576692118855321127783369016127345312123503765764120934925996991491407068226551743017656148723689465464960797849403201570629904455245073231616177896648533680911336587610349028712075990314999163041135220731494585603335285124514841059787668822004704788144864129618615189496223727479252001840221964752147742702518455235038686281998711699305673563897977116247062630294126861073753318823461728462405121116938358663292681086216900979380982878868583954632430096220911887340160048625564019760803967998521225276671292452973113339041072477084277288440385051380349328437091887992502204515742274812618357200352295457505146717652020220485828548881479722162596404848930241501688403278781856143933651397870836199798435948135978184932142650714608930159961667167671825903807732646770181736531994514792003616791109164824561301620038180633583712792707474605766506181739353963696481694058487435800374689040689637911137910712963956284362289225355784584875824893744747480785699069692999852129267258495936667958708684656548780726983288609733771779139224741188034074476073652922945742225449758959803249966711280251800786728002737495955432091056037754638176586373646369343424294495438515655783666669513199742680331353353921359632426865003525615646890318892973266870745513621001376284145112284471960360662386450911055381278111706904178507911816604437217228591596390265875617480291547971196910451048243090918330472694992127828599463561921278581266002214692815838360176071749914816149453352255322672507753466517252982252839733501612626093587082068927010501618324970389710808558181159475677248895571805721542613804283244399712051339351444240972738226589398009345937049020192189979569433576148077219576126989810485988920229991471752412522846697654491989334407229299726971940593656351890313232603179434236040358504061755337822550035837827174309328191730550545054887541900787097730117201086621322246720205672071049220194295229348982854015898035613254645996149159144906228571654945566825151040992859569518599409408084400247350887240563544609024346364861667909958146040220343763768193345367214525250329509971676499539451353578862967989992328417266166626654697965386174234475075521644206633433905535342037343647894654974356179936692487559157745661729978522426451400037224410135726625407745327224122482759468785292664000124633071037634459539105560956705428814511935116160795135303286167350988427063516182676677752321516720346257901151217239167892193367265338195615498427372575019513262880947739231930574804150683250714191032993697569839461226821579457529860676613462830697486181313206566420645418410700864105723671377872352040390760501387671330349235738754600855335494676338850827465666315260883195142264091666229202794477924125090658408462125206751650679764941848875466839233376579828142362902522529275175048806383398084052241247415078109626487887508147907936580945712192867544535435008383503442354979953648714953557067003778678055677463122014899107394235289392005932349668653896572110222482399449712594837366897961941615130179708307606263167987404162806003020280072892874444185052014560651679864051436050341788798642411620058410202998670366612001911571272439191557591005599464933489641331804146400341895596446513841936248016101937877215425277124741268898133206500355807192527316516017123940711591467467140167571674317378661046918421292520319810370523239659614312318920835705546611624617574707046133867781145228496974941604864688440143853565163222355320817662549110182081457402057637661385574711854788328551624410216144164452306989898493636156939400259329932187612505413426397215147971353321507363086707977993166903484292585207091404981468443252511579141780423778205792948529274982922572311663886136697410411869372809982514952785123445374748299317881238592204558370400833661861473399164965985691968597491015951142606562416991245814834345234110492028045010916889288249820597880258028326220557948620064684566537298421045296025835085863801132355014491660874124979962718547638882343825071630616221879678188678678969844518382496567912955086071011512468183552060667860432905280575255626693636075997150265775061717456062732419338309044119821740453539845940138986591787878662260226196817722711606881465381629439460823193732169334094449995207509436473355710361173211097832456237135951203515958383282685347431579907141069688345784622573586963023890079462501334410560467572191585611254546383651859181609132062291813204632833991130106201519894516888557304854508680495236405673129264611225876963906895461562437979402895930224502524310106479817456420890026896809498305600000361012652242865800433237632836872222765973705178414870861860480302760050615614810862801204927694341128532452690041947374857465245559978811768518860477211445987613345689514640915760561969108243992291067638373786794072120172311827964799927615480529518953270953137421860453380796305486863280873039052341962159007801506557976909078964964005601447945278726996627978137178023432004791120982359912025654089446702271475868660169081453568180513780451768104397835673713974443304203831962268455517562481993424340506956862424592815587428140151440404939558761292225795445619506881717887512980728249323950321898497793008254858018279596588807162455838731543006634979141219396537169997614059374852891714326195469945212455372121042678500246221988910431140053007722625107379459303426889608250349151364349915057837545420093785301298125814988657339360381127960356670320710085267074929609313182424891196631502812692700394348487017001605318712613541197696479489670590315619545228216436277992890746086332406770855890053885703801257348953422503035016272736633450499958041287136491172901213969797787335065868449378199410711601726499405127924181957594660817065120012378701620318846621599495184219848272951319609379717369600167433517126639602195018801160049525509018221827173756841029142224015452181941739044902189451037446768013252745719038138434048413023970742181841060447512688142876183029639732410510654361211676608392834858251694105792000301749383453623590263569450448774590009777103560876431318497378879762407915609485172318770700798300335055767168508025794260088553561023196918396596528129255367095121248314734650192418354149388447329048652347062317408938049825564273246894995363613204966236566111541135057577442246298392451346103139696723939618177879862792549561918621769277503352476503789035769252044040641901855566800763186175964099807086086284964356034300725409352771897810170741992611685420567366768279079244696766530053890901503583123076633622892560891484658563614999298335058763263599994611020640926326383607686317651681382553975333563480162538375064432528655436652769129965902624328288922248851738653460104380325942737787855967287528475063520175538495096768416234915869595557609001814606981035953910639911057581936886211414354836324783784345108923375812969039015776896694331508826356824108815591611872328706852854086152150595906638927377875482025598891334149840697365747507802670696461433323968359766059285621929526033537180244106523093780134797602000515982357368344257337965032911146412315881929193058573638711014017588315844640963160802680142663304368607983452683614891842717274317426640671605257002631375505518053271378218658856305520643133685433305451091823636012890393063235684775236651221437414575978007998990737265803932361686719894655394864270607556059090544440143325580634236501252244334966634820195768941507365570302236912017859581631360538643221963865466753777081222228140184193118946831907666696603543873815116709024881893660668294319821957804302438760054850530451775459564670115426828355732738907525574791432688044670424117255488194819898439790968315066968169674538836746227980190708520321741070952110215587949817806266381349695913532652146224550444616904374292347188689497831352575624424327298880777000406563531843394928370282279589026564606934198990352366170443774600861115386676983195692212941854960962525706613845151437267693256689222027003974041161719383846315179036195530053052554899747717340305494345166759509492578189516624831556327849892077644964816087399918588129786042450026140210675250202954190613744122131479212255054177023896214153872437156900502666082685300170589843038712911716456942958300197358681122942222658457756788459310774488276872127669462515376034037824461387704848331969568244328528226770655886822331868958310483931761219641914127530739876653280514863571166885680202610940638293297059335322012985916448448590507869221462065412831983612000414893772572946690917216719842681708939780459869000192502153471622288999158431846604820293116938773227383295657944124651537992825001965634221862807004487990750424499346855979419782514258245376653136246055375726169429699137193292076097315528649867908489836298414638174594521351044939895211750364859630051533848987040852740626955068089785777492690558536642529562503483170816120807854566440222302721906884096708886628064860776505454255957005616022468374225832054652064439864136944178474767130102510891835863860378400574880247533984443224265284297250912518425837485689204508320652381364118387063657723306176816115224738936197616724135645295538222993926095989070347210446973831924332508641662972612255844197125552462464807151096608064946325424941763437595232011219588001050372282098410320133864286972660801364034361097431566093216932568339870242383192485695290014529449361450902636106316090187991398988854608162552949786166261946906707969439915285674733655869855443700943698309664696870220766511426553686611495132730937580375501173151848110116872021873168926529871636656099169643781326179186283509915238094070511516292591373918667345660771465123614369423008741443689104660073965799485620479991610760438103803057897788278369073245003623190602954418877085557152367505684958675129805882643608023718231326660581068028110347243220454925010335798170018612387020443593127254673786743218519889727172518832496980425340153396344934208246990666570525309390220072208941533486279682503027479992835581669127026951318099947184662299641222732660618074966688634998804964382217471143929573098895449598738469266932973534444006822839181763328295089527804367839993453600270191483806271282451743937483378657903280433714226707631403601289224202444561642991324719014623544306209369276251837507799002056192678185380483265783682427237626633238965657369369376671162321635767860972524806783212677709401549816481397809120057505884274019899348037945275928993024836771085381893471857747092047330385436916791607026929865332019920554236031865648835146842497934805536009574817065909518552226372854017673840184930397451663102488731362053404555952559145245673611279656969620409372245735028914381626899462510306368202255105739051109067849748828202432128606725509902831352512953065565206566179203754287198495083284146394226363397720490146128502097548794031617280470421284788153828239395452725736022420769895114770287535105228096017623202988430157150929810434043028832184308989938265119574798122561818770046673191949906297092815351793986834438078387133843334080798182066574236326525519579725154212246720198936426837996963659289631261535687560935277883777597991083414119804797426389035079371563321132370508950152721297679727481629975744791439114519591727491281160065978301537005588656486288122288204630389035984426921350412675571310387294688085106433728006288424029739131645135052235822883081915904550059247892184523192553597857673208595877725347781122842863505999609700061083422255118094847820223968156534959830102300820618190116447186487842647476994683307972304641466952093509581858132595622328038313641701805962572030490917924946990956309350913127863346926257878283452754368667995422492929405194566807920795666739578738713685338898131908540409129414552688711547995202720304351432807136554606461228008378180313514002039179881887350986957560843287942737949452449674270848143743467203212168907487863140148350919007619271186920393637700364530053116207247566942980342315404003320131418838278913734731921695437383096983925461576958041626508348611939069394072942653413645146317990019164714181836500750550317532856315215546103420236964027137623580191671467729476513189319993077224222876749808668170420951063261284684603673965192206369701595633125684148252927102652549663403610809400525472085954799509646028472673185799436487244724001380209038303285398592153125803584819658436748587665574333264159163182537015175369720120354938427300767767525833857813068068041504521068846796894905269025246066705109069895096675318012127818862786923027095655136088702848003434011755376423591412375558004820567071123564893242992712247464501119123867198410506222567017226487741082269647895214489499965166253213375681752328793678462847143607671837062576768668540106543633912564636130805743374898028133535780710683517466103150145473263776317895244854612604197694638107702456208083711030095449470706983349555477811047660797951878048987924850277255674161539915079960099621751240490062452894981579344859763384395856800870951665235053004401951934263183424577058353038916125191469701463862451544941109707429508064762812279687351503526890023421330059658932371768379647468357712495466895567626326737415430387006619408248616475048467012243122723351805489671829787225666605854982266608996851841651026023291506521197712218718259110787612316196635198517197527429368960652303613616768556771791502185047284871038950154300825040453551349335495032371632707797671783299091312779903467353241685007874103099766998300048960611489068785531984996842890495092159170077258566162272787816067369260387061252068723233192362900757488990403841176069922145440280773012906152707273322610763521078795266897432938002667580144870194244176172102449030171461546190763214873192640746625982002479362128784632538733093291138415168388777852524435809719413847266517808138977346553493925063601282098062332159490775017119863823256700355948661965590103779603241625252805469535154162828753785217040251343706893074756159330069267939580077972964548164916198639230231654841712840204092119790382905464613818252273096889211455824241808612953827870413543456458523784883295852651958411495021271658319578372740105579315175744068459967830882328307280994812900646303225267213438216687318753521737790574024885610018016821865830608170543959339845446341521619725058442828381946266269835014413705639311399144938996288670602565591633940349642063845190271849849431866152941695369860796492325006476220862056527021241509112635508633475116693067656125663130040227998588217742807076480103374529809950427340648251535653201659202080787643382852042043964270633491917150135592718138121731586957345878512562630382502485881504334706199414575226318206284062337849931202014831843581617280200114582451940867866420153739487551086341651381681687010030733465840155143629093277181850839643503987794735789034349976644952835244871278962063758530812788687942861951975031743184891031026696779627417332741968539561065130778456383835303586097462363346437077017849683916802612638501229646029859822030375452233555313502186612960724134125738383117526362039565719904651649967043316291882545948942835512609990006028266496548400655529519116191595312034882152070437438391702901318232775073622327046820583213042064165944130373983447011263685264147619218300156497952134792344269764401382216816023634278496715356633321507952157582355010662146716572530907494089039150679819174263110928374147885538786861261257936394534878966566603138262537258355401369697014326421497598603192429166030910299609929436570067730367011076655381823096503539431684165247414092402235020136318766110573433352045943682023573236194966860733880508013589978281664266981626515560515090206346427221493628044684926114032579141900285981842600704260743245718830397594870287499951518435943434967269951790502810491488611056099084264940336140412402199604686585518514985817305775111743630603470055793469661815435020946619320701681579530630745477436054911130791146078894410585865393037091233269787124949625772297530590102719286569111337642791103592846388368886650593669833331634513154078002671341532955310377772891470106916306653944688838662774308547354609634055966095831229656661756931382328721989569008011606407784761419242526461280106898991754337122498398004922007450356248454008211556318485688919557974841520079829590228305108995007417001631095528196113483935187604634018995684157748825749374857365416485460171692370211330847032962370749601129880802492446851042947242780780511088966525602347649583500697470611421832496126702487677109240873583467505224085473421769661186589804004943254704627143231246926389655903648479380133644326006528657169463851056815659427953843482870125003622390542678171139349514932423044466306225162377021530408556610585853572737030506051823774673868097833348835840824004068701585339565243728136800443809084269961404195604047441031825464354370773077957815209013038963521363827347698740987384638264644129867780957475540028192399632388277085370425448546093181803005967048805183407326851444402963387495720270679979610927674368725651661483865661114807676865343683246243732417355839210568407187167450886869231423152637643305208095057798104038429470820832297740248853393223535940317895968336642946445688403024232916282581587414583884311008312083277567558217236871529328232634718595692955737350956398078800177314358685783289969162000359967470449965580409721745903416758048045825714519389899204467918931448982745599615259646903949438608766457764526113604627457896530043568556138275058471633652756949179882080487348819429148119454928764059522963034653888065688773483249238283995168189573846118851209285088353870689010333348684725934917613645208075976799146951631644348917853557887876844967464097476882240478168013274844558298786000882877362011490240481251754127739582793409104313532064701670281253049555139773896303166692611627604053420134716236429556806621316627175050652346703072494325318877673301894055223711689244097414603610077398185415885751837179328334001406156944099127832817702036383627799241954094508349162491111819497761109970414807350613014107430271569340849110506103867600689902091703648954565102284566616340471283546812953707001025688571250468910432727083187439352072992386252702622788964172800080135821477118812031860164953263099840624752399119526759062195852106525759649291500960858071103967928198258208242690855794585840613204968642797153838648082179968213247650116464839586432588328578513975419695876023098333183879168040422519618845556711340567630166201860341792878388639300046986707228156444260172364017656620926245284665845416614544164501063153822463608516643151400327133830958326237265248113368038819853938282949915195783629719372975025806373059370122472096020862567669326199832462169293761326061491304376351144468176018745513235210112520251202460969862661755561793404332031873611886474717093929963926836002589479258958856422363631181256173252818973428466596585845476438582463379224759156743280820092658183404049169418557908447761669702920228854070643121442878426776789604592161184027581319956371751677932266079757710347669470340124823017978760674652041238525105385042080156955417256953082452165691423661607187681095362158177252577950793260008094610706868733360212678227323791316369322460556934646000311659606454526854395456366909309109476660271046446609594249003774607164992896771732299228924028579258018264887278335321654166979195555051798375073104967980839996859196439020027387099589218584050708690740178879244200255853549204161865293184809857129082881068089793101698915967300863579969925943508951721968262060839018591814597792878175645341020414420674653637092506249392149651209505454638547870437054785467925548349933103955992630548438958878256518024903911538244112550063962898273404794891326566554003838343518149374386403942810016654448316216900890644178646048793062648567801229378372225860348680721426179169446613786244245419146189716839551866171996444802515476961782839172945557064626820555518679301424374385584701934961442665020042445470419694111382445714587500122877574929393059058098802502356349214448728515066868795504507079524034037294943932033423405071534927228993523390819419240122116459838000593116996599963160614961346269641687894297032624744543831513103919315095973010015396528312209563787832125462626732462978841884403825060874718602565703941748092433760390917160081491616604302931716238620756251766441525866636211987107388662518831984927281651084684936483606596652284778293678962476993849244513128375957450560954517729985187957544186798107726409047718567154169343594313103954117917881943363605326910382290552270884241490000383584609623688871242991151589744368758565013106277532949393852814359899398451590695506854617213917918552717947322693493925135008723860650184977130359753054792432930554759487167161569237230069311099294713763611387611625263889928462371419827180957769436643249565342955393554931068488041116084951631817298366716560834969094198308798984497799789517441742089615389038502350692110255217339644631648008350617945814962165033248097785738805123669716075425932107375446802852810066080579360601779823475510444089627319724143879927737376781834022187972710191212296224060523457179676433073582905877431064944237181832949274567933827634560649747899623991470670102687517716559455313541760663108570292874857128928155757763091493156507583495161884820834775696258607973886326593513903373308302461784542378801133073670752227332409635578690368144499068289051065906127377987585269163887356237570327342403880869947050361925698396368259467331311162248449069750854879898989886470788202998743153641371131432898255337865253227111750046678809384066002042570482691944400892993421364661776466339913233817299040859078700551102868336885416812959008748228526113249294800459214746923972267062443649238104518164448444474432379924382585369119644465030229203216246413171494344234167205840953325169153670108952081364511764774668524035228196254428937623577543222185848755134284191251144869769942939058084049553567307319806631563827709227625432596442135216209716281990919246926707231994010910938486451717479172481198078844048058562043635023533506116350572039860850237964614658440251139399157494507802077419363465596983242144767945335477546504316301330327737624759637602006208545490285747040225405550647401807179301878656519598050962359882027300451919428012848548404026123401196267762270385391867313586349535308519005544310133664528233425746831574198210835039986627692233489382373969885637598192088413310989763269058618674683239506773901584669569910342641822781108204539931388725125070277896626905773979032820680566533661388147752784096552564255397387041624546847488908331049936420254669357217935765675995350991261284229710296770839292745035532092065274196195821619006685616137707868710529933568954464180754267321248393067033849461648281709143046777481482207218130299873271303544527493478390805890837291993959916448259157423710842461888199892711398527349543188072442136074785347884556337859499155021863747075096776631264224393098762295791055496448631127903887329890059677595948449494814475133314004103627686891063050915994902140239280467672825889879391407772581825888357091629606900116857070175988454474617477909676907566381017572495270296149593131218877324908070338786739787947048286445536076034165920810002986202108114198163292616495084650484872283742627223071548438385382953781205750585427402906593336979224337322303044906674266550835165555008694677538174582230455204607161929905942542254503986339633689062223129556944056065124609437667626843420692749292225963309692800495051394781353193449039089967043651380700846312081899570871646704220670949476054758425898678670649496693794707908439539446458089632332475543286140156173485978483007889496403822631185068211485717273615483658335385394819537794855024157881606439060781324910442103729029844287196803442882594317259179854021330969945212191767158349303964891027782076267727931184164291778761620700797279026651187811042787657170865108035179249794074223841808014845322415742950802347920887025831160659839316894990705868712900996448047215633083612741053004502196609419456446391467085613736425082395016397170525879621482849467516284147780308593455171670446172819538523131504394712409342178146171800080150710204694790256034704886398488505825434506442885470498881865498912623011417111255353550733697700435881165111757737772336093315789157479596993883556528671779557410789405335112631520420167755315747083016472360270961900706700706402407771057516693592567521370902800083764792641285294946556880079912977775754904097816753214616378764300421416650495583326769802549177976810347456445947141594597983449623852517922341749212548155468014812434729614583952090669387611381455153202950495971111761344671443971911960767003323303866654091706904461023661502983437296869217228455925602819441741936982094620788186472426543998905987093349677319672052687766794407035689631433755581726088506649323848169263941799616207692381267640375707041487600776930457707553104150369545604743596689232634414659972866514927958214122494087334259040158030984904706379294292800352302026473945918801861675901210170445744018561121440402820690986449381898381037550172468083312833943675816393463938875538032133725236672879987306700482907298032834820409845384087522180614577656288344267978345053961985305935593061440359357192541044591001799815114937099600792849907265520614783677932796822622742747583891444078780070559752400184751564139037125016297149625098485997171184367985103303249379870608922837921954090737028296143571124250602997036344082193558585667319922289136469227835071122884215407329408184659476482974641648721584441773612862216931702884646364164140637843148699395519761062109211065885256264781088260014513565222956258547369615558007304668662348236979712483778054421072511151527059799787644348701608237801280317851169786315338251246784428665820616144299185077943065444857912275682819179467372892024032625061204983591983552341923327475892270443666468157221228261866447094010752656473879649502969956495014947126479373675384866950035653521343315155842404710289967647364657453289514557442472952284000087198856759681014471668694884981891296210524031840748597889114074743710415901216922102247432950852391756430308555291550231150705010111444846504557680489521331366996721867901749978327274233341131267033535921785981157880723460975294619053197616705308653107055328506868306117441859002518435058237569814143980531293718603029862002313454318882852522130419468319851396497428679361088120782915394578570473294896508103770902752622753861144481042111125926533587783178981580778152083728672075799954097950579819439876993292188788100486842040507326792278575558148631647737406273855082776895333021952238988630348802316892203139007355009445995410097625231929851634024538682757990207110890961928101248127646633862516130451004133317160210505067837586991912567876614598834343245777527624519981119605701235884486397605355302688952743059346526352983450111396053983419877431045199478178593374206380308803814403315015642208537416187631290046084454613908458765514136106398137326907855624879170447206318073506800440673415142412244896008834872191218339841892951295976067008469935114657224791719006256508760054460478206456325602767818483259413970816046918677036145669492183143279262084672189847620100743325360124295733191756393962701315714880855014771372744972041518802619062973714217128249922357469481359016454179819416301606296982646224222221956923720049674253023650590342743448142118570080347374845315049132154980768351141000355097044786688437873308878746128756202779652548229151117046201870036762445191692841982665395302108013582193106593289015652374772017943695805564021525186380909842264206515444868173025041072959544749902971585180501682495584280899809461007688199846105785794628572673604744882319386216843676373964781658216916729085472949857225038447624121670998881770654290567206970592604043708103049698044974304644250240694401927569941816646272245390450366664284102541542562689135585406137651660421646280418867719409222129438703227643129596344953346543772230796577751998418729107929016427283240481173593271193942193048861261663086409741746729220869942905508789484309700253090313893590818126715224213596646407233536847668761235317789570474926422709057687894572345647130051962043515905397391547207128644826187399590836653820651585763171389630323589114543122397486083454367740837473528682081063817377001142482641689570445707566425296740263334051737013668367436776718672067823219645015058987292545196736196084463266943338965602125707236140524478203555717536301740464241532682424325571514118065444628556138123597096967188625375238004040699004589225305757623188484257349042198071135569263039209092882955351306533855777306395183150112894374334506462375488240212105750820875876557793738080616508071297043192646047281642700744455368080618046796180488709688888278699828768154048562599236949023221472901887085166708464391153030690415088940271669660846600330807381492663713701772237182256024701779175143341324314562132844783046844159654886776598441570624550124068899307918357912952195126055482732312907787210939770294830547739021846352117257504054990011935470975972580444515689952038186036560434011726518620430481321215254469496612286049448905552284572006727872783321467097626177904587220220065073124807758077945820530012047455765010795604818028329682045913150469167734308740004856330504355463191219491705012286466280040669474312083133993296279517143695125991738148361139613478457139545017462242429603095530651057721724437827100052098627109058680210543552102021882754785604131751255380888816548114220006465049227791829072122042622939299154013801715389376906970996142256241010869554779348387940034376538020609071730577439321245062235474240672659123498109389183667656717812306641843215196986682022629438919944672329391147177820684827867120437276220778384425761335069253832578325009045068995885316497285689682000685062630312111464414517821371556847072163511347244062542788302688645547736428615570820503966905416807746705440722357943670409887720293481127203937736952998680984285904742735279809366456384560189973011178019930142512261642124606110694982608018248227099545844742468391389415223653558677918023867469001410011482423630686961619597463782012905737317520802335896824263276721214310274273347003664088176501572950531358467487584940339732480731871636475443426577670489304749962150093160491021140685444154172099029088808173945763564289412729644950863908682316968443993787079928775856382362127981689525530287507058344952648142796826831239481664915954574898080364431391295077048287834348347498616602055165142630229857392988133726560790227982546068443047172307622738007887421972181057255330229028966978015690768192000356669964651069250786853110576453515548428537657002747109787238149001540743173795126502175156378376868438215539851853760084571509285048860540998270346243806192595826795021184999420909123051364980524408545035405476480405683887806399373570134116927842493050384880666048207324498438857892543218039561526066263425567730710850007385556823955040600226508503451107768006007431282107299506903990344025418608884399612328284513460597955602824882650301578351103090934892470734522284497674323331491696357265271691317177035530974702514747676563051792895299761568536578177998456888421704458572070236430132181165134369055769013330369515793891388544215833998389464428561300773384468847992004094401975024874035648684018507455467552230021772011830637740893990011516353339919538469222033108078207107515040730891022377710314316005894338518334453777232139176929563310211723620947716808100282631668025074349616770735597197225887789290930139162642229687768874951522451769657864450044676449951278421900201266410845163348356060713786929662842300487214730282538249810079954686525272013445935050810886532242081850007704610076020159583703888379020707558432992367002726336292196031034444814719299425493828917746009197053845677769913083486121679567070274683004043972967280720477978094141612315266693345861046858814156407961409328616320156098653726003882602853455442008171169557669700712990853726857102643553582670206163631364223326035971574209399783712952896539752803598531148132753795047950745303547236024133000814794718791225396861203292701348784143156823538376191913905365123694224881675776094192000154320997383322702878570517960811655373620845470891384797424216588220359590328833282378695161926964117610646860348909093879153109587608317471995215652843327372451524392778166229929927537594333949907695315516822953556350805090715439108484642289968122762824312085959960524178589681490712445303269087187059995932436552272306770149196781610968498167634329993447537509369580206862298818807751582197835793092532646055055827060903749896173694440771752692481750776072081343026294630274134179224684298645549533756214937818883121041148210596190308090447082368627300202312605098954703876496787145028057618219488021791258025181539848829289243990983731229258617145874929159738265577719971634694566045815437168495533523633709442721904208701353678369415113454074277055994659173860744300170721104951681010186676574726504369387701646408833768837649196035815135676233197328342128349671609320385821704374249635562949624296127296426646285735611048743252989407415142660846083357753646169400364405624012674554586006791617358110177607396809732989089077698435716490082554902689706620884005212041494620489045617383345488792505534298488305569968913921776710951853040834033228538154400676917451462492941979663213484881273411752137998382675834967686037526526090792720606325724792043435006528756265498720906296888050714306858101637884996566526430128296947608531019516020798472012758645613921671018307083483638050411561576734046911005067873900563543111297137513672645735352491467108254439189327822851119877381079730034452556844389361742764703169619842429828792385317052646423729059977655570171131356613760549115473966545827469469690472217334290466110712109482388963353923235429220021265843898253604704399297388454879561838816451261997166636302613318639517854179567517920049454055382577081161010037046556259330296705708850167210317829755638250635480644248816661467884999352737452615338069934162809999576325509263389725514834097192871091810437408718036228071459658731865374859850175372005933397870609335313052128607651792725748634882830470501480040440440114865108392802469814559116790012035207429713643524812031417058434833876155957984409678432802351448815122872281656876115590012831530225837275569007320485768460080441304880821942933264722681970347134877950015678722599704009249257638069494279657490008600760704780667595677958482704836752541273959483669797536771575485480100114482825770944096342784299330295356428813889275100195339592881905514636805218825287619823035473169777630930076450908689525450689068271601001037035465596836881236063567850610476749655074283639532432481264793184900886579170330153184554963938020880819854841135336209385888808353928586776302697175150052409778050435587279627206288418673644492934941848545286834935077516076797343271768416294914839305015830382268407366839860928391405744525496428683014147951175481952167840625363059520212878425028266993971162594570273740328684531037131069857734630597707892248450837120313607954039962679806221463346171716761429858555592345179465010448157653269634164382635130573042405408824880444508078313004335185543599119996245536646882506081385606716051598814581418059123698072949962757943412422368582016544709773666553209377992325055692486307231939186424762776025036015736057215994341153982769679813452446993796277069758240317772016816282502575480949446126389361221479912780799749850538792363066173364740304362110076461453369456719752782699912399381899081584704468267216245080879408840863171599695902720443679005619925459456936212735295162675751986592232668304592600476077315897526555529355828691754011159530934299833351068875930932838306764802052926728923030920345750028563850226830984562864262448566468436897398860208759666732250794811991224776624687464023603738261305978383696790703361824272968219079943404759026816421077492733473668670936462584274841541927306001334938876618115743151042200105199308392917812079786954319489135374576307961510958544513792851665356074921680693184900574316097393481144128802596965324804564925421258971635635703625870209706038402249714015411651602564705755998666421478214357974239374358491862152399404120755023861919425893903023144575747603110438596918764651587486467619758326474390016150577999922435157640423087846495403758878644448887898743001612812078028953688006256688705246944149930491561561270712383079450894695418679442926607793082826847291688684293272705124950866072265251725969453836529323186028984298476612586546478317309059140060789506044123306561915663103413811986420529782901431681637837560738847337457120844271713585003975434732185338169401165994496293156368359497772780518262081920270753756265973366832898553233905129001298700233990619716106216026467474022715867274725035072745450775418172502478725189037883337393725672353717009617315994190517716366632735248948803168207349263385131350043448215105511127113595396770633486855402643709749522983839430987629949172740297520901756707719554824609273625802081112373006896566036329977802495385772223904169419728984473820451499634408663687599303027967815986666021334911867920772022699046954322785348990390020022503616290349441674685357397963812037652015591765658192170003078204974494989191893433488904309851785699171593019196603964241193239668686637866068139797334775747340362249080732976012926086376317109423020156855626571769863854775884992244023533027656766993290480006515714262748434854783349019053648377581508991316492447650284323543589904800884454169247908551405227214621911050995513215278060330139048559559948245899417201870588180535061773300774201228821867013232639415480625621571388376830648097528572175188639708897479483040983747203443654741371993481687931648276570171088551627768146720148778658918908126668673462556625619562426534909339090751019003499465487077227312238229026642173431741315153834364162225358880233289459893649936632025103642517436018243552306319940368377896337280952658174644265409422892083267590822057769752138992657532791749850184163821223102717224230842785081844162823487895469326052637828713991083853295774446268940677854387843126128681602298046054329884123874536115640095544226726130911619773260174462665757925821945899025358097718337113471556802281044414892934721718512623992096297216719146275232837655976755374730517705729096889113298448753107191722011537765028013051277530958560826138731829742188649190779573471756309987740855887623841938240723718546712081990194321249780318296421785884479813103246651828982572843582718667897640389427527410421823903321449311892390644831272006449702740328807845966345653768303630720307713786365172135924236901404066378088961796911603137543782159296465553419173138717316295362232289361550378853705988860386984100749841965871850734661609364768737808646135050396307111225581048251542241206181625748089552407710473435605662568338754641414776802487108237227385157694632384613599793963809132214492969763358869279269188527440398441517575089864173824394628821673682385945774916298702757128874835064278806995653702634597857537777962277051207571595239589489615207350737120071537300216959099428249621959311787280433865455632641394620068427829151880207027328180386857773303593154935515125431716564802083400718046906785698657966129808255702036512138572077788797078301662977072106968001603234862851704412028703517084819409247024796023339773828573830200249082866894165584063822157280747409165878975437561147411329828387082952569468094668919211366412795372404513709888038497776077758602943952211824795271016218518573233605894776467755942374183278240781548844312296720088205924709799512122348601106472248969298853909687840085874767816351560923503124848491047686637987995126172282664949184588483498013841252583204914003584969601002020803540504774452460035515421282260939956975027097967351065959529551587340842423157028289367059913082022998751752705797603311480895181434618569844566984342722299482880824244257903532146913332730945938234390454754180423139718984776190662881315263514911489680498391392933130390071552710292834261261701424847305544308153894763261767104271177211221433532144473453026500488167003286700518986291585973865390543191818791535239997763259577819949803301350222494263330094468853540916477005147211192369520814978161259940802403243886234413230622284188588672805776973776148617665714500110028035002892242743516556875826648925694021010890859460060303489777747991015139958912208428430957210301359997263135411813104897967386205671153433941005120754895569654016180384581102797032698327729645605031489427300261336949223283441793959504047446132535181472964402521473116776962769921175463939013095330557457944486164753049964941279115791767972410119359475957410018423408974654247016133030127513570212182001911061027099697899177119711569594250766563360828713389954469856833380405854870065406132667027728051552582098610681855564085035432469696617941823769179192698510142024035681123622330560671731091388164253929415246943775667449150294602178531437097714026388798603207571449056488143711050020354696216866764375188060259147520952127759830307800510397287230677955836910238878371660515256005156972565132071576853769245319648970123275794397559224803162716164979832064623867390061326280639139539191001326022491830065613682666667715876368215343924276966834405116127248669747503601748564633805597356641079148914722497982298417251062627548763968762202909696814265832342170722585854641605794113541290009820115765448389044502138258173127160768558746584682703390147834144989553786917211392517615930599868523391920970755427807566143279290878981471209539979151348942888381889119857964892112573752641229113969304740859788831596462105948275913204986122825674712602464335273472859570739332949148733859115902231351134369345821366149323410146032219547056432534505113697179875243136326582032014191978735662369924983307396182543579621651503145164620673691216713530147311472505410905690066344586444398052822772099975645443817745215737381611557563578836777853897203060498301773386818931681266814754641683971960776478612590091894562812837630865381466545568192209459740101487487206628216743838360298981755078812251497777193299889519779478719435625680706169788113038616240498609939857309267053735149508531402414053967652965707195958486333851083107828763930673240894624431255078241455088978505956213229122989804820121060067177162189754950287488522991925398988218044066699930990240346290048666439679462189451578349550293727904827916194840395638235681313617402555825454906481724535822804352877012431822080032947059501303696305910870384301808767345020120548570445142744194806369754416072567561056486880823454101329424961843799842324876149103625759432241187916867240153647836919884773409090379785344339468332981923830773935980967610358524551256135587385639489081390343189153931404342888479312678568492903568235298801931575044521839391163380249606125332728636570744013027047586922496842798594826636250299410557730216153677116908623974825176850320213827374688244202047813187647694030416096607296054734962875182717351657590057826723397398451038747752258715725776295610508789581579513158316166469518175700596677560325531190497415963750874649240810697610615095743278965240743227597106030477537471576524478807012066285716786423467669954574384296834646976863832469779862925521193830195476804585241097823454278435531395990654294588128757713407684034446777509187733830818503432594935051139811285300458005165534409561532395696039074499451403647896004982938041387127707523856960423101758978376183529415387015160864745736222177937822703301314763695592914090341793650016220426390917535322909317978046260605505829508301240598432991544842586042655018929764887244244719974363263589770214347062078684824476502664869021943914389273208545527376287326344724405440749928493662262064474398503854984923243740229484311180041810071682988959458698741272556713568118292361297342429361142085748608490291859088919848754485203374278903358135475329024088700870962610057044711545864810737234511311604516304659429725368477015464928176060034178591759308795242159665073432908264599280962612708569045022663921490391674777311148469584369565086026140781552579899928942427891423051298817696290161556987349603351591542981558412353865377998791753880618382279865916744319332409433982143620132749162930002208374831062728535343297737457148261785257103254287044691113897970025808732838151141424478873439942020333793593839031265538701877058541887355378565101585610644157457941006492204767422423325663674446058277538337948156240965047240262875291266665787103628552935451199472137484718314452575393185753665091452243986014623859020928250075616867427897843854575127292992826622919580150293201819206182604642628981789544983788722213646429758612902233321431533220779212433995366737444209956682088323713026829970558677750166397880269887355117040344446625226076722284021394596030202356268070059947707823233301165757197126616071915470054326532871529902588220717939786018227461269615829849413131488248624646504877224421537574391575301861274876480779454241296580346538526747120741945363285531954984414419082072421239531242886886908464816540768520379976092257014506802765565702028585446380984963116703045919170804921030971171492673996581367090445184607395566699900857628031661261864198381959227314764932494294088719168310747533120781166774473897705866673100086660515996751735758277902241532071481239208093401719984670533039154492933712872038067346320784743683029310488405095813537378724846751057001865751387917997329661985892886322280039799323973580838019138444251941433400233183423108825893239921039418511189235151379706472540646824853194274586201339742447095343812831791148824838145219371187659569001290955886634807072451065918982381917412646664341962587405022360157763379520112942539616189210888766096625349172449158776150544062718837587675376906095751401641296276127258278455293376950674730860366428734487817864732371691076023965179507519919821874466214183890426139827894740569204829314394656105663287516512486959557339804702892237079746079916212621061650670581308812683606037586188647173676390321645632077463594591595385250491501105726971700233960352885336837223408863341347530174328874381985388425095808679540899148192837179382190336101577278663445565011175894971678419117137903097893691363125474719568198219506952978605081016400831921177016158224809180932436649715688955805071827990643557025620087950652962514909179782448431984084777838699761302097441640400501768883322034300119086353247261362751157100091034742355145720012244358270911897009141020930530233361167989058283204790952841580685508170138465080446278152805701723242808813711219750296635324154516100043636125852815793737052192547138385720049460764325703655022872383013117305438415559032203062699692641434029051619583870131713000188875112587958985176685186299887771864205153112248088396362125245230817818512484335656080942384886512998842576066646358359468928612273822082714596332577522937404925281590548073167833142198949285894818523350368094462842202881123788290688256421773151777536657208277031035544158472052213527971236426965854010167940759250818494523864684488554131555007884906046594315824296333500230854144800982452484603477386873361273089181977761434371078447606281012209710140004984935275813758727316264102584266090372176376183153666252966811811966468935987343230839742812527967122797128857006690179761181984439638823052390787041454567952176176092049072219124955170307033642213249538500943657379273512657037974159896608415257791301495857029071857270225227424892847841220121779859431017940078632979333559692253977185599556897879564088683662533281777281395475886656086201034356685725498710079375229984619091828720672875874314901088463975112824494339316486507231623217364769085415085110820523274365560867450719383754961238372227334231213253362857311916169481930922652205269401422014638924915716478987052077441968197211041181462611686921511345680734204006407529210980726679464874385166672171319915280069026779009684656750097061200528391239648575407224225200436743759864353593642299375439967023554817685641028032990069372295806137458725913620157633859387998327152560325260751566102855472887183869982989573735107218300319145370812949475099480492034174504159024183964123888451502086943729433099585111841174302145868267973211753883192744187842971456769382893982366899426041481723553194585824964805264391571710193349437418735222247010521965580170032908111778215495136312188923303401645589953038777931950099327002665660629670865825772971374025614013600830460545385516960426554295646349483866766882742035188975719762947580801716084674202283157588799989861923518352670181134983480367513356765062595754181022903424706554919420382366598433710817448282246987647549287836665575541895531257250728539838740172138191134454958874748266898342186253745280994907314542637671048596184712568789329946299604691956433822714393544421215600490592840353991369828237907883702937786114548085570769827002253094058668193772015573996558806839252218282198849772011273792567362198903245403760935400664463181232345211451152781932271365668333432972441385764527544755231125348527666701900072971475462335165666515461188848755175293805961389393614465903006756233391147755272575111798390113643818456747067425759748908697178881733839929807004249352648861687623238186824114029549865736549575064308663127945779236882468173338526817731415319247855954425753947831945574059673558025477518396446062060080561008565733958424749532901361283737172757917895741443289276618919718899586686976690858559288559467535759044041645579697184545861798221384323804719220869670291870245051691255166415920872810914516487237359946103260703820946922549132477810304467768629348588696697688833070814139708135162739233253995621929172463930941893766651339096884210085668288766798730217348577896638048748696311600393396794821849052119451239712728977501501007867509674910647329574865911717331481630748680255025252968876446954768748533211227888456486539351592741611231543449278434295127560756662222345461294556764438577509876896834407602048398598346078512647689428997668511179009445125078469956864459007199629564862325926216000909054378884266452982479339226080719836702021110690790664243991632755304984461274672855419172379334774019562231340226566798565253377904226629256821899398299010005795248197767354335297714143370215548904204291565557260697059607200514422735384382203803326864520079448540082698270239386374051106104411449507562745624174241057736980434943422344404279994479214200317021301965289413353679368610213764141633966579487060842532168378067711121518923887690995658901988215714336286577341260249662939486246826893848607604063124274291688587747307092814783829511167202454031021593624918759739680709824202169775537196243944799664873521584144468184320560920015302549663737627269841786610968197272495051777259656303056687284819646176234966828070592327320741779651950916675383462574094299027516399147377975941129450233786004392540168428107612890477356494939753274886552210366760023466935299090693048998564673601462828939097432703617355533184487694687622131132229444786279237832190154957104007357118605188263979923447253845364473890223808413012732301779701953291825871555163709276694697807042970722407363140759218759417186925800522501272250592740021617419565369645967628879431793097712113172226525126688699350062681572581932514422004548729429779570632975012023474410032345375366053346374490777906093624855524124735453534508363826827463919060437002076450485153284066530664580916347925201975975128329598328202402534389192272382646221773244120851977856675550001218292998236540060123127828256794640162296129380986960785072767730570931415102489226635479756053784189341886720757206034941838388652470626472617066184389189909808336041919374281186208280227639081123792348335739994637389310569400691929268743938700580372535033504196997205208735218759869902159710641181342134532341130380480685503195760869584098957188074552244578454747056707159937526309177878749835103996592806349067750216115023925712284576418924893745631136430066594349685467939388894310460985071744941186979914003832805931084249505472315620810489107281179194519713241520816117638050020806623115801343828462212018853528645546447941582360847731177597770953749299411921494249333096073626820220770656497689847914099098585673465077034090799544241180566692994747459563408102490615373431557511657739056968082072336676192562210960309770403682065752338086273474365806444710426890358940073818639282836892816023583723456318429124915222536319688260977458260318138372148074965447950041017190421508626880936907624093498089644420448094489453055698857979333619188020509485530389791688940763584120110508299431533021050202018197117800948563848947099744082753503079630829880744482673750448022818628900882034154384728530462478017719906332922807515366234524122006382870133062134834191825143199538462655423338922391997668483179526926156109017246901172753319863076908068308864415230935755845276736950048834663688010152327875315241019958933811451953680376138013895721148975402062294133496498963924927906589039591515142388357416167558557891961471635886360108104841243166566486518435318046230338113017977870698884399241825983487652020280720169578482902459575992296836321844757925052053813900529566415105421073488490047012490830047219495707811788142510348176538355594116799052811405988279603810682087230338573848946598026177165109624775238671783311993940903056095789596775904744205826330315147519464329668646506853506743553832458951762786821130243048995097928758744431717940319973656612213865787155270585319375928705748300183050939711637932394250314957277007781704994472096377883296296865655153052158701918065450233501494330934558254705419231726690100510696651000938416129997050901973554650449836030979883334827761744180680908620224045233116483229074139759559662244601555350502686262322850606001878499138666108199394500129783617696319032355417205443019010781364281932152209060325782984534990722521844232710128937431856329785136917200256218719552672885018237937279929283626236898463995606987000663045949129766452521941916126841493690879532135062332121337868141736724103112230967354353488225128822862325236067085909562120260659476635216011504709944075812095307480598385221528430977565483159336169222998382371141500936874869869628190467514866950407823357614660024988729637432057476164816908340216205353679797247088820093170105292769083835159793541419485891783697087059407853978267060362449040572544500952545371422225348865475532488298395315664138141859684078227961179445179360544879776809674580812896616378576649919725180705323032371628576929178446965001876073537688284336415820775150509953357137665917838310906089359640308251145389486577237628733478379366846879958463769288283698419179380611572572785736594895037449571808906545084401237239021065944016764887671190430408226310746871105041420329471551128826169042422358820481369889427947972825870728624876080411964887065180652552071183733435499160829858747403360740637016101198639963841130754566477576496099416907160054585919176105212238060902879106098054022643221309969814621209200248785636870787380879586041466389978634696101127425767961555823616965264841732965785046370731772503361856921298405699026034212391784267586268073328253513470766452201534256231169404585492474081585226645818136526316705649341663765120071554338302933909892956860549843891669456987859377167068968665387062890009991295442885334402990925911171653315058706498729604689810338118544513290607821921754109195127985365644322189952949096668604527012278518450705608579916900226419635766468648725257120070995822781273690589105892952799064405697322351728666990272233206174361874751488235546448401840461799479496156169399919513679988892055108804659172871055624152276662873752573122200906742689831171188730442769383024935229704812043470810098076446618477560181082304009735962618341632742648147927429252177437521066541272880996395897531262555049940594782249366476056671815995361655208406608619730387495674476141218210279409330851708432979292580282504101214168902263681637474913271449869460487952312340167587834585337239434365568879161697667697886914268768922237057337804673360871852821275562183952353779821814241997172784322807634293390429690657563123297298055945180968213729488676466936560737721728511955239851825355733701701888041982885662874957243638729151779156613813023148987190407740666547945358890902876570906984006300289974993674176238969016368515503266146109612356084097267316099596048815535341052904486200509110725589972609112739430773082384226257335128090822971118249185918685086437523351208661461187441240615630751635067711927079027454808728165080244341178971846373175834289653445111753669787486104073092035395276739905278072708925965588926201858093408951128263016759023607852144937321970615421585597239995554377138402803589220713113290498332471839427491065256770030275156145604124040531682952206981245668271810112370862908540883870423519080475826145940757552792350312127557701632713639604004321450863484269304579290432872765879068450587312058984605816283237186157893143524700499720222414555045107947737088292691918800969859585597984525632403769739472353180650468951606101633208205550267088842298759509991390218581407213231709279793480164181582984175235345190340784528807589274329289071600183709653525766017677859734210016626426313949063511249958230297697407764595414588792865557803100546320815901676552631032840767204775227473817440524251673659085938880460489875366863576186469468884696304552742740211676556763528002552757112147899101144024886304023664775355929711268918921339246968827805132161417240796868470415199361423028065742649146901900799379627910722832790550488354648093052906161068823302751628383593963900815800108511611165500081347002795876834360842713213440802038400164236172277136224371080757488555246877829163296747293105986395272190421857286973172791802559037990694090320845268968049273856721448067232576033811288252855616095869158787369949730496044920647442017364518182090514025946784623738595079136735909093133063083913081680483269767253807317704970463320766620895282760407740480550581042745187564637349903586005635002044562075169161623360975309922448208253981405626297588628093014922511369894020508604949588365721353424110547461466447976215291443194486485918471919726705771651783254938448137477637400773609963276463281819584116345119184185365114860443845635805790760966155539816563781026128648445345842492933067575569197332965731363116399617702615689925375457948218078602124011500483956874621020863197736585295766336273081467199818098897876680957457361262566193288652986762634769141455180914983197669235601847176412400882266078031128295437569158893262094279447190146963301932603940876299605092737399044270763296286808374858539615189877093546095984250977067608951105809804589075055142403061191362932009863171402139770329086538746992805387453175864718736594468086845037636889633520298755732300578540311608070407886419333939866774658108191441188819753935458409327034462562907624481330760473462019546241926937676817933389657694623985488036211939909323043667586893602446879166897017293322494561891298752593080258740297981700440840101119143953538583633775601667717521506759966508155253391871201230564677044214337011754017713434310085620205507684168802333150943806255402467124945373197632970510656073744006437180276216515737411738783011443859456220952996977533067661798006265210631458660021704514144502994167506222894304569489338875919079684237732918025098834029619543638136709097722018470527377328802589676752643010672869122251985014764713431038762362838727294021782073951449702010978574586245535098075432125284424268735420128989679117648947450496003704017730419366460104758921605493899211092342008177607203574778467716609991211858588846741100863303676189661287186493126550457684355037919723303270651923458601955144508374870809613309790338054583948716442745779261350800463815426582104632234124494178873189637293112713704916563929551214747441026194322143876159229813957137651556907431257865823463382479049062709278932669507371181145143371590096716764264865509729194527312171002164610048024269727627887899632690885479237987024677775473334145435965435804578667374139730429811937976062753998896937835864111120973919119047286731363676939890795729696463680861396413734502305884462063830243820307040416770801376077284582745798933570007409768880826354545272843030527060239843130906057373064304071526477705326137719633789465887877179563784318376011686640036480862887272487674677136289646553112738138877619946208255355275845174950425289673630861515668956576044954236181718849037155003350735391766506435462350179665261779065008676312073537028793082136669520372917578704406216848287090356580849503730443636193797366947887290058638482679732968672153476972285282065033924852874556455278004101985494628278322235965341343501218216127657278263196435782365633370053239173261345317271212420995978440048306622229824833331963285609330181429376646570820840304670881718976097366058215158504020930390309331108875361158433913775168357084261148888888161212926500576335628839454806393104729187047678018712117517399066980693383156074913362234396391903841936023537311923954134827611166326689312130743682776690080287233739184406456912267008102282929097437996120804553030491156100924537213277992056628970803305337611065023581122270376900914520344768950002384008313060252459108814685777805204319579208189865460832330827306948948946149484299628724661120033875669787242983434885776106777634920264175116743520201438968431001780711408531919769015704406030985938632174095736833397533511947118371910379271619461954882126091875695054929277193084648753881326556571964847783630990514050488115804192413687165155005425981218916935284785977181120180367459131426691293686467571675268840057140097010780142657293725820725823478451842142823883611871280434695380140070842368199295254798506549976539884061410775529400315291556731486714545479506491793105825264019377305711308107706982933528847250781811608383592716874409565656052421912493734601828760247130408476282269587855941260721026992665541576421977757913229854156633090356251405213289532933973532596626755922070502869910914429408833412688682500253863952695057597788111145222244904800590700423192954426077626888588854956906693476202698356914832138877254591888131144790659240459912185107274571848499174993532585016790345216361606582316394765267140297776367345519059202380339809609599345829804563853881791937435811450803843712398198922482066227382579435768805881919311413110950373350781563935428670806897799481821399361342842700977898874513822376347156021822843990280587117699476485193636830610472509229893252818488774024700412470662550098957795264337534912447116435636130951114757082718905584481792022295628363178358934272613190825535062931530496407835103148625358729227862993730535793694558596298674796144840464597029453161005833014303696438013116068417231328203606422572061185713801689788205253964472391202888421758691785981955171339614478576900139338700990554178972160638540271646340432596599270246450952813591199899884900314301923507736867616462174467563822421111445675520265936802968670861103060580615716399433315322918848256452290676176552993368372181402409065325780983683102133906672688100247614058803009635876456538884406794021129904390434792490331322740611985927152050836108960808206950902756282653442738356104077800166742448329387461122480799783206573791845793466551221074385475400604193804058402502263891729863878460742619974411335009885080124387588537197210277366158616966265718154274304080987161077577280069470312872762253057562129612535322674707054360784716193843509733889985273100680786845233820268483812805748180904216636657387082439075545955908655807681848392848778150356199558960311383025906599702367019548581820896678235932185403970217534584810334236132998666953403987527626986181274009894315850888096961727166289421322560756223275492844511462475213229059831909275306826685164982634200282582882592551205559591552539553150014567097378321015548072937803276396825412034612275467981850615368882720516193185990305073073973993571056524287090297448551645836605937972405578381323456599486164527449220017938777127988476448792682494409517628837964546794194680075321793158814506085824150133390202405418748597280844322565962311534033060248914658591736187434276281738642907100924487552987327937351813007207668345261939717029564884097717714677612659795733776709319311422235819996087938017036986988129241718403771289621089841619809500575758126127673506918414774079179638543362800210991459211935405313033832138304010533596776172447701805965938632896306201828518739617808069942705678740465548185476405532234442520959503701849508625279204266170590893646866410009708509702939126590245545866520969491015295383376192563787938612132451439263351936121449967827594108044101271267938065802703708782539379554312944534787917359308825635682413658300184161919127106180851644301907777895876150078172173902146037681110712270574726459030482174242040136416929088716897446069921403679554358708019661404373123707560516000991135991291330784621143553559677106636525769412139702496059399308859307225923313484907334609529082140565926426012621855222632347672746596106142480462723653369508462923276899830967866434220513533886144516668225785921533563514645767320230543445139763125558304955882547102096703291739841357560375833278731271064177543278491925452717207421826426375642313862548022688672280630298325981810989755942771105352126464726754534917983990688899587551569004001811112655872833689340384532155969850160440186535212936596595416061085970947408365785848272886947632895554052385919011268860964319958001425779108354296182053183593648512166195753895358184857598767383610116374495950933033586032542802022950349001285912531442069763557140426791406334176810472341189625773627254631514526017029925481810139924451218314250137970483321018670357155159894198175894405101668163943395639660379659556606096870046567430907493663117609007136625176435107956969620854647647975523568899321077135369087915714634744472646066955023247694814735595262457202581507423249205507591574699994726608316407774264072669201696114400414533408099263908986848469346604061174674229626518697307326035859784684429924132548446007743922589538082053784254167906666489393160064293088678991411513757111849878958110082792421094836839703699017908517345351960485275545663933775049835542010603124218667519829097124174935907004551400312454641617576334818322490583546414541792976207331186201073541754650274973791214182330394940882776387335710045354062914664407625444937508353087659069813367379978555947474607274741834382051186225531358020672091074405308835162276210080879994806896074189147453089746889977779776095494236838363777545924156435199038060331567889658266935725975166293881479774346980865719622868805184542987288860924476177967141145112424744869670289606838343925077730573039069131752185194843496852972845004257478179573923264181232378234496112815269311871353961556134247049026882170170871410307664406059062504064748051808408631780632938225477768842325001874646656854132222353098170362974342326403257224882500494596115073979687506628618266057439972703246038429212897571714932255772900481927423105684740723229147876680988115287868828677693056734159044646719913792020052455724124365739596994714878787358918950751052247108085083126615543107553860943741908706460133569409743738330884000833578692780045712728066017549149078183425158049941252580385382486492470546819181318006087030244896205475907172092886699134983755157778148707317505631658135844740593060752104433306670369430568023358349220727874430743038887710520936379262566023152847433671848746208618808362961337684694201758781279111106839474993630848883021225784706387470262974007509785979533295258037517607332604421904311013625217881057685484034649380353250438452300787306670391839665617246155217078830475801761029176995421099742942929147525063837918122887340448060442155792990597204091847482494038341698062424143986840626578711691621767052542712192491986705385876760894439064012354768797154081555771669612183855964474491345954165482545715561587968347573298694285632604978503538764891005529991668226829051192008723718512447387208263115271965822971725901244416423137987627175849412026728530577441408790723295472239839021808052601908530934080203797270808770664455040774152183882250954327757439394868297643404091219539769422104234012686123146394307244537559278803676069184469136861529228352470723312781518605290368748368017679749972498409774775488396190232976401805080282303027722236272732819513605966344092854145057652861046057008768701740862735772991546574576045310986894701628647723260424184230790943286490208213390362828656956150710100608476726501323318023153518792748931658093548487934414459022710418749058894278239947424301529154719161622705198313319162207595878371144968817841923195437454469349077779040245790152791555656010472528794077395518620712333864531439438049363929200664988464422707993245881143937178621866128197331090924436324988439031049009702994052468592210140945888238260527747411145882554118886545495860230022112975512091164198052149759129053029747625837444673956980841086842446562076104961935024249638960927622986906313129840572120333669368837194049577544875194920485411725754506370909557182972882120415328386505453813942106844579348452028004908389303890248130565419492989530878996255388665366296580962518863732352296917668024338455268095238990011959479372629310829555316869663413740277551051717445426390016106727403212710925627939813381011875698689735305809028527933208984254007418348157869585622902080598779842149769269693863575893884734575646592737575360617806838608613066419424693757922195352841036544759526281539998297088991681475708249996821392861609528244652321271054323871178321590805981493343376478978196882469680952280148595580969588518439597977480549744267765671603621481525181799052793972806499817198068100554536708294959463415866963163492360461069945352230485085874590936610680023989376222682868158001501341286086190770336931055310958826314094871162108002368117942845320436239834365071190248116046127498812842081821428391151927739342029328609794002320582651876682090971923516711481187542565980314825590818660554785805875513625407284290270896080153243127037815724178849590875294616793006987845453005069611317008975046682625308237885148936264000216182181083207292309216340911068550141587184238742562413239456582692385106214660997798730786205226157249290191707284141900192027591060930909638609553362587987249826762525186448182460687811396943065117715325020519814158106322158201289854860597732335519506194011500254678776060023135684071922625897710040520713914810510318985637433140205872124488201749147715059840554562016772810911381843822814354913013658462620074371258044711138579561687870101296156974736713320589376757882268313337181102081784012006446686737920132739334101884261795986020468320741717979382252117607610771800276518995479761801999703012401410239552236082339209108731305625353950429642947696430618829864006712665980770391199103642877019842351337291786119468517096684725235044293349839618092782312562450983497013587084106230040120796657290660745821772747920332664658671371801453209016126314774816750016515816476919580810444731119058286230767090969679462257403236578454803098684784301452104230846070989370837443714908679959295648725425204137645420550636259074753243521937013408835654048037070389225490087681079899372256258171079296631260672046417947985896575596336245897640416328919033759229002118595023143626772816476459145305152694862795269782271713865327078576968613761730756291990979071031762032297489253772006012919631338882493336798965909103817247857590016069952608199221734062524158655114849814226570044918786717314990488307955425444931679513112604297223330033263131905678833848383492989411955534058524868775344581272296269282427649140234280462457672322563578932867339481502411841349468431464710461493658054057232011237729778461012429225970531548350914284408023780297271724098753768198759923535086262766043472146565147639932921486827321235562777214819585324389346898885050698679680416450458868047364308038466180268938770617190172986684627580726019101271881871709849638854960876225034162842128018324041123110367236469352106489527208701608235298575902019842228125411678415074575190947538255247336429075338020410776108364680418330866651662075487036986487423716240101050503955796522078372691091451549377793966359616333699513012587876489388759707625202914335782201004977927997316955573463264502491879344288768221675600102809185653192229247237216009446255670107683157934961941426874846429050366057637827620336675867803471084499669706781762402390718972953109214984977513129943639102969269569976759628743473388197465204451384391579214568401665130638748526154129565074833710565667376976783885089633722686720162262676987020144797710963026954014192657257394338037484970319766810927670707609065669414156529441512775988493547920227816447821061710422844164471566279041906600309313620147756101011789510627845716283629696474504630989084361341381711802941068504382506357319634833991054691084477474907845803926517209067527821227429448408931424427895580353843339590658516123199170307888798380054937488393898184621702549327307593622720800664558732720247250191739191625246106596470720636018529397538080246010991612682820143788136645887247254526009570287852163910835229383819614964014367176896831549906815263738484454267123080046805420434605449883181958314953138290433577617992641516592875873429809623715319208676019219754991212585115752261828633862589704866124245530096039315145872534056870755750671668152094159563943549049801397196201864751035724017959011167212270964407046254378115754373183617938148243196877891598526378401835042240057670460509126009764175734394733070557515451152192907798130744952056297781451122291793538129562210798153624551309883599148119580589889188930317196035915036188218820160740837521302467678145714973260324389779664427159428325380522986533271896640130354264483453781960865626303639470398361539466595785732678385225285997642201775805487140121886202209492472419527572021799514988600710687848621712810725382491478633420137839349059351368196355795534020181546834302249813017073364151260833419241976295309903063809944481679989174738348244333744807346989646271577734514711164155789018751952277813793210328932368877392981371222109031208616730822356014543956794792963146647506340077784598265210979505220218243760226797222556092466417855055516312132745029705375499369958822613431268590081413300108530039435223814716242104370181020872483111573912478213426481546750795972952725313783973758596524199305354134551175722868401761627575658800209723168616779056167597715817025635294786679297533732952748716491814993731592936809892949878630834323276546294660039835114714796118673423410608573628765489373605846201981002215198163356985794565365507930634619751900266445631194176998315922143749575256973811389252247036846669715888828110245943075998609315176686853387991852249722573329342969621394498754620637359598837533424344583255728292465535459027933086236154362805741763461811867032445329248883353726433165662736478396560860546927664194438949904910836869134230372312555076066649373722987366906206598314610039520384890383319183736449600540536925659491526117322050530585071394447718959033051795499328500774337584167809056023564020190860248976279873948618563877256370789595293032889911034600240004501579017665338091340787940214300206637297199398892626157189871210835683167356565555771521506951277283135199516485484117974246691096802172344890275218208745223111458258381863789861484916813597972129912783810538593099858558464278501497155264554896022282499995767172015022527575132046347770992603665412228387187782059979052818140929125349609560105281575213068376960642589006065077606999543595207316663087864255476710680717259185391387703183106614821451773159645937006213242539452449676198004363231779917331910748513808657318531306770659607728247282433179670750377594539476310088732790062181719286031802855860599457967834097376126246455856353599528858971770186064518782436634833716892610764519283967755823735759414799282761905992494107555095225563919556259576794287848972682283912200002158474109551275729864599424621948580678131693542672092953618013536117783891324805681040980063377966416908622255603337246975192701502361528037484174136063111039139534845062111879363322168764615098515902349592102178193770731886308656649014666447313327715498927654952589823686607344015254876511901204772819778207146158668358624584926558141437498628093841212698694436058601337951119573641349157142920928800039298778342126557262056796132504110122466083019388536225479422782204783608666770833975053172915550791444709301653812713517495297755132222290251208659675404805194054888599514615694034407140852791240064482488817525395102046047697909580692923413632506492783346010213934399067217051382541305233051798839225333153434582737165315400136340287421632120445492266240273177359231988216038284973577497214436008841694125241057985185142161949828890939687489866608765956005117012926210203544590947465751444818123082408369953465809066182642320876860628707375178423197987905392164968348558782985106693300591121782785736159140467050533405982861003199408249166154039489439216277723510881653388123583916193382249094673389377216454655785150342731834832454974760763685196970983062331871403583412787033926903159947366282035250879889065336861478913342232139182732862027678232621555813841477945999735968792530386349738057192432066673549652622554085446075570977347659849688151538409117602177556748289839896097418160883496717461057380104521958372963246922605690361941041407474880608805848786632279332322950482297048001486723726830501649132078517627936432268914347905146895245397668637892763824160638615504199294956649938950795118556510406015884072988175462267426857560683564517048021862961709916593596371638975898952408036257458572786948014300594943695145176388158154346568633381903763915943395425660393168665456860214582782716218816103384968982607263154211315284248893573164016403658321033531089336744735588111580797120640133345871010388935652347731438924734483763922090576172808797148190693344167786151234984325382786914865070614291692295558720566091358511266376639324657565737802925616309418785203723968380899867274699226269158409484301725122767026358438192987591997154413141046086467125519763590744198136806957822538196359434457167008642985792791093706116738615037807799862344473812516186595371108168084213300769535609824794490351795534643818703737127454360786546187581783383372643257634908239147644943442262381546915426775077077683409373765877843650573479452949571782793210402476250728441037881796367023543492287039627458019936269012289516250881503881251915665960196626373431322613639774138592800940805865829377230639688852809056861923799722443613285097988356104932493619576467416885651739166020739438976385819910144479071786189893839224838467604019443380795596908616340634582108811121366217495582131391475097960554057152362923939582984343185717659027488002441915822219214200796391388528164865608806717830889485040257622855178596427456534959319028748751488485851085876381000529724585146654395625946123168057511181509004434085849570201634511934497235591322784386009731650046180754882866720314777489002774379284494316054541744362496553553918573642730648850103640946851308616518440399326971087925450630968275694246960081290354112478740064869820706955137890727760637668142209016459301349089269215733878228695427433899213318116802253462896910352980260480646137462089242470665630496604379559971679194683245088725192663132371540690931074065989557616422959605206327170498060870907916249162304634205510983852902630117336652685804678246100940418098600731353698136583172946303718781032483819913131583614035895719528078415397364254441187098300762140087963395430556223965722275417503577214096999911017013439911101183177944982464721883096083442907409479479789543050928380690343389695868101588100349219972548319561515490012704666176665817068208465613324823558330768957011268000763251925786110221531366310174439747565154355959102875826608528028289254297075200897668603653233544705399722224586808267755026119052026975621022200863818430280044531679367217763499754766708952045577058270976610436648760597200298986026280668154979068997116888232999188495165342777146947693407539681126899429810992282852303674464186851708017325242003942631114311145888600616420227141129537995659533651810430505229889439816311515052981513594999724537581742235746945055778084049462493264923547303994090278250477016509914296288235386547143566146872249407788004779501959289443624083144977738382181287926815607015123835732741145546327489622228696769842288638234813592038573479727875119903081277888285331871673635104698380390453291974449835533868613685302963905304322906476416060314969976006097683240656805407426285246848494033816459360663622482075061329836835684610339163720827960445769354980345193742436688170419583461514716921787036329511233446331839286893876748370011838767069062448206037966017963730090399580237592512939656521108649344525802822388439003354956433537691353542056721522822455151763086870744045466603417051238118397498485681630450089696789419111559075634410128659964441332970002897404461892029227101314102698820291191581530637026121848956888580269780486656344106075188588673561885106662856859570999884090162368424221331474208986762502601641339950081216278295830544017956835134219703527259878299342169372034053958155341249462187106321692802182919182328878465500137469678971713617995769896608519732715510528184850301376312600113594125771639826613916099170777213220422621737307137650967874115790342133322823547339771500315421279318408705812611329221202260452448299071250827662716840337746096450339478485658944551801042405154791647584536007048568837536516961031560707836280395086772777758445690253193738448541345853063868372605033060393144644207166787256706898607058267933576408606805759306108506857489819155833795878257097302753754725913276793145708473479750638513435575464535242748611946042655099077093853196013921333790068002967231006601778900226363227686174753294376998469016288538878687707908918107171116912341621947993401880184713275646092366766284166624062835888719126930413382090635320419579373782593928490586978352343280848037622780207318062484592862604074714276490648600594869073753968560145451357310020558175346405373964284766082844122632270829591144833366891877111146830482285958153784609711827280014417497238353109891556584061804001107478729288001692372924160520415773288713642011445859776537893879132868327299499619421674821772684537825307393948375485931792159134354235802532741877179014287431140707654421954109113036025072183628427954573279248934069911945252340372562124261978446532669930639521201650982605751586987992733867457175816355579904797408679589035315541706477038375543654093266771365308465096130135028256415234846980504221665464079955088891391731180052816718939762446548059546186134951691460731318484478901502937247164241127925143578780679622080961461474312583389723057337519739259263452200321975892291004599815176732854295131670524677991215256328961193919461292562124614176788792835301185207320717762311851642969000085810931959802914105178953807735981624080388319140958383306162175565768403559736809467274172081169151860188793473907140629922084094270660832124944913952425019565520164540973066329601308568088858684055092669067194100047576321513713103207837987706289975995713407034828892156714165505437210733956388666057446221616910961784948911229672018736116114223192190255529800478858816567817858924689759222998855273228263158876333844245104515645311681631617903532363994019217761756417110115643262675161187129111563935885317662402978011945480330568804969454470453321473391470820807365876715807270154218819177251285711620643387052913230919139195257891876867768024155716842513928996891990897752868725218730518093945686758299126565134253579593032734657160029801489967166727914193659713314676782692168703855976062454616825742532932570140242000386919729811733893651382683186145969497043602557421535371843947101516915872930780532133415730930184675908529650316141568631776441007602393699177695333045449895756177307360170781592153682261483739083659842372585499848280330007411377840426378500346799710615324009650326237559119818749653517861663127045799383363756075145663583474486462166004282419364386653033023220503935692001401647073746648107696539612979841641499777615094530460813924806154361346672600643851201081987046189112896845682873027443076030658047175397302194840452192958533064347257967244071059782561939050534357522171983563297751981788666390498160239684486651451756910392973077871402742807045606852396267344356852041179601759573004204397460883700421612774562214843771523138253869970520985843821754275445761116216489916835752831032056435943466359293602739733990742034116683318767068910942789369895875736964751859758560219034869396627753462482680138399973063884215819403752634725232947222471419243359927640082865533930374850203150700366654439207453895862594717339613746418500755611871990641158203691863403043054741957411035184936452198063273185777031469015320980378691800115548669678828331211615559118371907238859680270792468975818573991173200209346480089904348432245492497739339476404981598495444739316390289843150444290830529380770343817407967861298995215728039716709393354374372304133615208392225965790572485033373704210161464867201055432449443913960583021826517223290627054935044610613591568583252902911143683710968917531741333034166297596504961490730405631121963756949433426452805587975952614431088047893050407115636486164640266849830750261429399277928179884127920549803258151613818664338641000483185245099700752986634661206640713757200000703651895569553327169236311150849106568635847484147779973852856572649625693613145998402351349385791782982625211354794790262312932728887184634790744589995701945815013180202010779069462008490985308471072669433974488839723749871458474084380215254567158297620065150448640252051688156558133968858397583903908151496603656031613165579543715521786244745607251015871162842662082445383355010009291758090653835808421480382720530998726184776604566661473933463786862989390249185843347843456878716087195438268290123541153783418182835479235880917364395827863340687506173932261553089317489027677251647729854279717933590672071638082928864417342026848923108173541852679907004215835770022167949287238112110139556074604395377693422163097359409788834549859935172457280180164020711594590814466249955638439827176941390731409649569855688058746113143775502609873541800813946093429891763011683517961242058884636089733970745614804753176530643058537787378314146076465373745027035761983313079446781364743149893275410169760827679420526305258850878725652093792041697571880165990015678354842921526296425550298924149594709805388112623622345384734801153972466872228604229039810443647449120043207735993346186897806650318637190670041763204004909209461073221685973537089623176817514531021657934813621752983237134721342729854788949605838831942877052829864445107996132783607563667180638313729008894723467653514116163261145796742559543652776178834873858685721555017336461832064465152955288181918008816596890454622484559863108566650673865553167243048171635216221629506315994623988158603674546029156987430537547351599342510304650258959738207823922304267101191642387924690869916728596310448378242599906690981645360246891082996906909153283513348114162762501724516440737042172705285038556555782572322908752706957492848995727649590658137403522726643504993100322135146573108920288535598107722619003760820719380392462094780653671755576526464294921030929274722199366692033539136349257956655668993184155214078826621928497640390707138275393580239762848012926603856628910456342327338179637456766206227398870341804509853772519584158050920731432389929177055151355157706448597709591635761597223010284715581706343144777286792348437352193581360444005864798504868747291503916738655485098349079267574507204323077965806865086556052145336250402313857275638771140445242009218381850810042801786266470798688259942413571743050025427896909481891986871754378621490728386033216779360975715703973672782880464291746606761315599668983654210277177558632660259681158231022966121721405668551733761497701901114159880007868912363371442886505612666276932057244587870729564269833697366072535335058118298777786365477631228623050396002677661800623533896787464289016932187431572959086893867815791904166198750760744006595413025010664890313342611085323118026671193417483004473428206926127697889528695346373260664364750860913880812066945294782852003687492653474713866712100423316810540257930403201796242634161764678617384203182679630220162333019620692493725514991439417677863763750603557672026645624590587255265360058024386534043038560974453106451755975794567683102416269102867354206029609717931280474172685127913620856758722912750094561339044688657907717125116702503107092265689113383965924443898022548655170113930173725336369189797823113333569453442194238664277702700816642008121615279861967344121312816388660803757653229241039624030165242257955588136161908270995475833663597131413513926405397425969864285627405250704495579835292325554905219454055860368342141352935536804600931554402964146322463910036607132131887485449148052418502431206045200133497530704623832186297488692578861162057762156899640476847099338720908137669157206337849509319686643550853123778445065244979007550554114992429303011851603377196865416510413494976225544326584784854636776383797121306547151559371159595566462315577550166344706676710683948496665073080882272532693807649099919263027268757573963617563876492520609003405871305000215887434326033263903736206487342425223758779216084463677392975304247738838305196405145386878019820698274200615972723757238240528290973681268083398550036311526165811127377778798966220464265450201665099167645202435304450418852136272497224165152830045342833533853071405370339096374303449610488179365504472093360942829455157764666560438476115165445280129791612086769096405174846644492556299337073833335345471483584028719649428950170828634501252833566745626535197875628748714123808699307112990499608691443604730874484523044485191847963567517801053017940873669703716903117074401418761891388277577041287513491635783939643662567625298711773511109027578454214108650882530509107216545175213917620262505449975961871069668938276197365843576018256687707456052174551110193048240811875907946337254540107407886396675291774838256800021074677574760804867819338481673269411680928924471370580312014511929297942633266436204641013176652178000176867428331139268597487717388626819939882903036863310283647681450004665879811766281271427710982900749507781915512643946023723182564838197326712686574063453831250454996290690098326305823022524290976066933310349875174071073022555636560277590017923634909047606042987692685379079138798435913716923812778420442088354357172534725843143297033254963350424371670964181887430919244413005179297982702657156999109443683702964566682661266765170118156911584823895055684480410466746729821675546115872322189707628652164236691757443156577899480019473449174447600541562430901501043108851624792091394064007707891837142152492828027274832738126696572723354247986781704761208162024206761839588159508672615340894448965472412017507107355262409849351478156467661099140905029815275634391484032030417705623709046555909016554982484545949656723972021251400171996337513771810040879963455603909354956458172363343321834230041262175650077378841808750241443319007101265453605653468021973130985122161612727254056196190527600279548079984026019762097771808916683686004520074994878450739802519645239430607998198425507327613372468075096022786027426636601231778819085606223173539319899134307086250361440028257047342676871287569144663552960458136261738940113032860682951341925534352701020037581370853245254371287020106443515015113195700217508830269329580122506664808744844281158474400332862435450910040723825115478239767767066604695803697016128707782318270059244236867531904356716663767829186080134451595991837484404319921393243723537255265036872883698043402418607839766120679964503635034511993247971176474679857071980340852349793618358205814788938474164866200064281636174210681409360860959534686583763880390091579940281782404506394881925465089186907193720369256346743356137691249814079904741200547621676660619779456890667130732548361540982697021450917085498128223216376603096701158418723360506314734027932485364763267419922837928228897232567021364479715399516449647162600683440446490490487444236816837088133135726082296687431785153234629682843410223548839920948863564537010098507653548345475679060921537405664379074620006642389737562312243283804481345333640200391142418455449865546536423299879180755456652477265266755800229613040244250627682539473386788040032808576239364786673405418007380265481111663298834758145196826249975941891623146648726801038944407773800984732967296649957044760144671756271213028606959795190998568883772432151309499305243761907090563478737892813005789928315076430329714912077265706969368265743492521140743028986836271338684337716683756029788350400690518906562641112430531078060865103151092728278378325136822342063132187124301475893336776111069266741712689764394017400284854875042649141371051595037795326114023926556678202734118426495088905592192004867583032134477246616540827366751479881731483668303044263294591345699012460019359792753002324738044770340395793496889789695527712155617883620620585264546110286427985652421091860211287003412535445232591176438643214341982204976299792041328764823883892814980963905490725677632574936488745008978627647762762418254348410409905886806235947038472705609205077928253202444332356423012898287947647063448423386151789449045690805189519358774747019458096129271625470259376698174949603711884585701252700990964352655113983289384077956560172079325420755888171090078773620252299733292214172778593506076453073620629502333614026903001411743174037051706583830839926415964161321722915048759892895712195569553873365597263900617127168945263936622972859953257424391624291482940690223743328438585261969049750971401092751262166931679849977843569052318417999098095143544642409535194375343879640177756247524472853214503128433739120183459289558398423498424857997446694963614550335098525346873301887274427830211352440622493678009135810960318550312481803179749541526712285163882080787060314867019971614074247882416737192176280477055756888247300567155430714304018372416791543713883125826260745034530769203133356181552176398800296220094540972846220528718784779208933800031408958734318884215122831306318536754263269091815965792007759989205485330712692827707683791329939927844878501716016755123838906395228528008607661733498641452537343920136535584384782884569972719685618258917551190438173160218572858098925493931276984173645005640156868963028740428943553158716385542383263181330468926262507542159037729234219877421159107521533198775312512166049232328827218132294503695551809736029499458517366899887346090374544353117493264732956991590169084002461346590758700277646943437375232024016883342148566247834730469674447252632577239155314459023034043192553088572773834037072115842780061979889465737637346172020061296020914845113620228034297567409138401438281038499901470934341437631018777146200972352305203817512157752265653753864419879792687021148375960022426693691557926492642602449418126639405169432534955829829353655902848000504477150413164389904673383725961650681013122645040900191597780058070422616158557594317158465152969859705574907434736751097832159550359983596449931444288562237279678391263871790752463420395145635620284515013164334671588345292474312594286870184251459651030621034327165440148628706527039417638168648742698241971218599914936326132750303826778943142111765601206540916546298075790809679244784501477963326268715779812688628871352859403051368899379008333695177321592526434175851441208044949762641006390569093761474918866441239969914242168014467080461675769047253174206604724136196306665934655622624563384281356294957983942379626349587243357838977599320188045776672924652462665035760169908256427153882875096023126239240584944768732288591148591186444578074154586650398031191448187964411175969465863521643721320075253455645218483005940631916193431573084204532088432136458362292826477537390278299474324740157849435428009240057866111222052379293265501405601099004686932286851007502001364495884501479139049809197626795693358329912307412200436491637835544690884815485305531260864790178264044136836121451959881162865906345504104774542959631740437655307853227592514741695719402624986277957102718248748542322057090895682615539887484172022360450872080947554560564162383813714208504312805813491890031829275805043028331543302392217241913641991721284769367021233438202508973430916766814015731198195751545655958763638807155574041990770330224276510428490554584193288190105596951220401052058178916458914854295277446665798000143090947412572463480468076144734202503003018554523373293577133966182161699990137432497132310737835222997566663117418147572306242553844649741018137951669354912886640266047818867928392740358828362487324641714529735722959050736839236030036400818795954365462358357511163838229423763977676000694936378077664509344500207946858690667562099679001922240497131916508107104212363778050604868544568899633609695086966366075310025782436699075755341508616381704358105456629973863754362126588642019500873955812238759152670185778316225645185772948556630625652513504747815928634093569249877418685720940523239672742085659829759530757528286397816914298072615494276744399450385910211310250360969096408346685113182196497104417365737736257920774206152615006357229110338050509542033244104582355681291878375976865967195552361339316634151414791711410286937724519122156410702555667321340793988218494101073944685764512803312653358150403964490050635679848406018263803383267301528038556683650332786133122998925251205581851412801628235178337852004354939684570145191447613036968778558659795853829750431520918586072519669470463662608177736743832766368873323305577765726405402551034330178772029047253028460517601913107093239846168363060757224193035564504902883639299711518025608165410239790698520659749535901367568629332948567287527980985324917678441644441464556419744106943668100853713600107979326816354629460985066804945939940296503487694293475302925553361657357874794637258142714500266488784626483658319092362498725113965096797117562297113028727417169956173310632190829685700870101809292566961991748072729651767317139071396241020624962634388263627517050924291692118365957381539093078429430086292680178719217580723250465164421710471368336821221712798461957023610123176834063588788826877019204058003229737615234753728498103378205199600230445873634660879245969381136577847474649783863325347982527504530622818411380964618309554218109237427648391366928347266633111787475920817876174235985614485905263332315181237178336878636344279518269880634781021299779048641965628248307967507242489737746513629762111986726338273911341032345659263232854596817220110667395012626831445016472744106443249166342377829323885337658510629914699919798152157920742660836016516114833021073810732934239269563452666101457939058889150858549873801672204073632514373180634855733937301248529834381973009371568439705792971144484681424456557997508431348744709069365523201877037896909159260863212352357333812919381810662866217050396684568481675635447066885903209472143673529323488065170493127611570360123672392373104690815121162608293854295155089901138567706736362380219162468113417391451863844529788336895286673237362890321246984251047567472536101875615355998767171799818506755059448295907397655285343378191064067782804460885918848299425878699393225001555515139806907594645376581312767008477833790083957905541712668749829512544220566510165981543401946528144998604367434993267484799506891094805828009666520046587619051627703295893421715362400610777609490313105706473375726349214031332219156766377043092250027225327105721644741615306099604262541978513462842486385198148037052226555008700075005142972787548074804966204446334004390121885274108140899931705739116730587205665949775282998669753874941233904374416155392107811653609405533583278644690839817417354934931364727625418791022865612436088072877297087674553527719283880003640123121186897809542498882271326350656487191684597513429038197761163862743793519729665271868751997616048899577384665367002926228715883337334821960111249069189488791361888888222620076413667071210881740951046351642271879622328221042998043502578205318074336524767053564896644209107374387458808423323927817585827222913231804157517046356251690790264801503893458210074455781531019953764559400759816717764219082983472533991990376371035316014066050369530861971304091496377575140106627268908025253945996850376415153071244672763881938574622571400043093708210408331614629454896299521786339602536704384019027692532089499171247318732914503835258517765375754555017190934330188631343284762760100795111701024059080402160179544266508851852283011836877553187330340787863643785320057780417396392434128372040904844719692707013657137982572768291925128271802703220631472542788747455230052476329296836136474760721609616263689535108832390299042224917314347253658825148839791216214698529913174638650990200001689192066101041379627246830512253556821678750495078117981450036551506611699168360559089903041380174737059977700723542478927984247110783971068379369148080113771989998534671494920164444053262101509624623528273510624606275595100996751652646929761929968014494886526193179104944032691978709228209689362644228281236904941340543776888898345741306417513833870351486114232666942954919582297346395116077868881414284070793663579008216146912376941567856074455700840427239366824263214471619404745601278844488876900506045678518751240652051755650216293397135179276810790291531679872373807813759315792563190759112517457137175651663268800089921313211378418828239620738204531278625895566333120318466189487088047090789115937454525175988163696249805794672148845265792610435519268436422359369166993451715723508216215903875808060360895312093632288148728879358076907977929754604102179970607986008091012445304587835184117925652980898818051070175117764144447393793097253243063091062457131247631737476607995468014999625427823468538843429867680088034743725869133255602905435697675637735127240730557257870555281149238826517232760738343754519401035937807188541478858528304544617285602040092334928877611260871265079893413446756129564948126818940363027477386908567416227737060511041924978042727023017510600836511146348610712636810351243571308946884503678019731008455641460305095889016576669614061532003056614694440629239207048749304111914554512550731523787202616688296016977650206731018441909014541640390714794132915938905467943725394282554831819596941747360030660557996741970031958236807352359072004350125216108609802134110039156726122577400655372414910375272916387191310761863760079133433767910070803966592416874737560964978187747087937219536436897712351425508212270931829401845605405154985187512847180449083481366003965434570839380068227160774165581778837523168159634353340451008361622282307379444446810276187417595956769085466236848026836742269049108887742492484035361510108018114928117697880037687533387097288537666725630186660813812642503030129464845170608992551914188468192489588413143760842754280193463535872861734576102605301075216762527007161390835473994792632028297695139118870047521507678825504302443509517051580752659908648791914687487295162282655967942924587570297262437756734463346857114335691990756915375547332501540927198913941002755061971134077516705971580640048351611424065636775362620731765737471393549514423503151652924179327331447060999690264912272528006633134305252741016307597636367384461872495981950344201415990967893387136703007709889046389495993435505049815510928146494831523442767096457119550015541802499576466644103855441891789990635341267257069906352097911365020299647319175040899482353201720630392341611584516401232044516238442540688079518346950706426228972131063788208311239078156965344603796150046340987990488927525026812983363537620505986836512496333386875201122054569570506805175462374557568469396089090507615116564697205434221113876129914725297794517497888750743652540196989676732623786684292061510020403873290300417455283668395867603931266444381345293496307970179201252672756987347357602988572314284814101388115602556166485049499175363167709638205682505052133629343723008159655543930430000340631186453171812633297847066999494572268073036470593624894163888614561215427818237734637941949907646789983505322259490036604518126737399092559806908456707104074686984787804003954956694543278186681948909206643522478768513584658464414170178573170498305392777421586905666319619041837963572865792811791690758453342828795120200368222263694217204174127442230072200552830739946709027585083265484801193810107952316763644757822901929715314460815144948958609224900129863616324587100211606660098948943145789766245852747874265983936371829254579557389197497530263564239705546128288292994465079849739716259005726519179798718987154991124866182561798490267655893922529077940539250487010194648077642499135213234877541685722745341006404890410947299034118662350188024365730445120467265673277577800738663068664027421009313987807699488811693606463688629190963576122352663910937405681252016374915604184484954199793831036361748312509908166060252265634773806901815583145395745189729172111465923607685691808229060804956169658644424979996411577715188037874050647111150520085141564286973730281592080633864370753807212776190091828585790681713450654794441188226238803430078858451041054959399250401372001144829363007459956634801632275803177491249136923058956386092285929424459050616038126565945410332366768107327247834755999724235050139021302600389840434643405544754420193237438165894866369162651864809922556572739948296801015156612654274863865683650105115928743024504364035808093940284481064796542769116389832300910180961531456664353780724954612001918798524906643475568100540600646536854911116534415235813096811675535579589319049403288807646852136088129622736285946353189767998956928129333969371182153242269359179074673924991551265258003910862996216796688486533139736996451619273336832128841389433268469021128109765110448306675406096292689839064979456120818065199643633460189609147130638344528365687067119980106126617395615901630960324471547259694017233950789441365483767954467545566772048699169483750791855487213317233249721014487701822423571907554908596340358997883076368494987818086342857954755961430673942097285082530366988721689430525326975729513613386906389355440331630183646260597689892239221469950582446920518977567318794995686025607142237747511735072003424395942683434473955567966556882282569664474815671246786662425043828628991460997470465226261750966016052174064381061350618923407870858829367137109594289008906896974147236997083909457265106517464776227631024737354836955951328273075583220641773118273310123736012406122414944285635036380035565987506412075767872082505373242193252627181892127855164162060413178860365080472633546273214998962648004755804773686608068825327946113519665374715643001927323166258789629567562001611428645361240649259307376770429125484453650634224153231449165481239214967334321011082205008409433251956462488235292181104602600414477379332076219912425657058837463808552352211332101627362434362200997372447534735363729550649447312839917131436503474631325898065671545134054330115801239878625540637587086999591114023326365527241280014497100630147930204870850140425154485406394362207069591135714273565945368967349581702489110685261014586877261664542476954628410689334405754000369247087768148614388584213167290364418518520580001289347633837424379253266219745850991801409654907059924614613121184781940115639228661931849806194032594040887254669329363621685784765077036525927161741914788486381240787674115572452173334197822162116026385925745596302162798686618619909691138000365249509175767731523695704732372474942869002463271535402697166819877143832390790872061782998976575176586244311126026014649052284062166345785903020692553687926095898699392083558796745093619654127413938891566897610545308622595254560261169649100564842507423417553373222391109097019113273101285041921502800546914748361378458922565330683764332916103480438343643386452807890498060131856557897928713376712055053982398612999850264103473415386565379719924487509438726915348550183598785928046331254591353874341495622360814439231313243395261537258330956912115508779336532778442311928791015983125685269309790611452031454075458093429858692402395096925774463132591478211835717409130053441114518043486168715088858203124035783975725811778421506390887603733109624598422238457920504681632584585652881278432540434380783845072954837234209524544785667101012966415261546285545548331964128872894513976844174609754300835961364812938211491897661531630825983331139892717233932309043501352149640484565705667092763985526062795119197385452069621885135199050386207232673653880843415037010657656903723801163410687178681108931053343230979185707351666263827208197962875365618442532200603499662178644423584507770740583703371817602199367992064795272056539120241693370012312599745056688034735792760635419857894884478021121103911306450194184352809240828409736882380832869771867597331693684013316602249467477760041104287769825190908111233499758668838843904108297521063250059630386590646732080857267460121265745236726784078291753089255145698888349773764334843083625652503987705941444553142068992817569219234952096259737985107442085395072149284680491180302234353098019358677790736838193114680062752344473044784262513762974492101517934037432513208270176036843015815967520940951646194615123532657059492122517395596944059423678738319927252810527697035254086097143657588247430075238167469629200316599263335174170664727840902745667254915175175658164290441602134848369087847638364571231694502008964422038017400614681264966406328762620554732997811603898890555014436956627949753730672446073584811517705896500032506120779900418194460474457548107610198425877168322495351109563245983341316028193798611490445625030321774932425917476151694298630490258143889246167827430486300322837739220178014076146810313864982458639755141402426206268715948731610183115689953383356921708259813319530468121005425319963567807414880910388836134185614373441049988129360133863252411027814670401048800379316686646489582537424920420549504311050103482629417786613825914899524727205125901724881567520535434581430547108298087717895290210342980442477097136084953470189789485205455535354441452024937909324134231763574467744253404601118584238249479671704823653956167552151571007591160167513867555724209263185691728301988319481795679258562662382710229146951151924498577021612468243613635267860077487931308897943610235075204393347206776446761820889722249268736491396540213729559385744958119904245777289193268754032553785097581759098361757892937675596247935799396044237034288220116288761641823273007087050692887229724964708678535337351626636586496637766715267100553354575218377686307319633919233464791852817517138762033109928734726676820267229643586890990562938426387026626169221900353742713326270450206110837597776108620631091077666349065767534252980692075355255053157193251798396832302375144592937877021589473048148084764155549230060185135900388556600505476164848971429578870076063831762487723267014083878706773286233435900704020098684895488666596797607555048205713821131024734746697702290806372231424100363966621762073125947620693188961111379981052267099461105451647807819093295555990347082721132334608176030609810530161346154862596755683637284709167064141828633279602068088311166944341525628902833594092002794569733712562404141350308399422762962380652863475056791963713994958730944750439138890204158143401873760897980532525161289929624893016599488303455791517933337446132045579241380468627666436772715963782953587727530078798201686782122041136095603579846610042192067576682153939674517745726646391059638653666550151679874245874703824048885798643719816961492980132730308023040937618085860339893472215648148040474871136193324939695683734166466072275264882436346729159709381671549126114131216541599255012803250843630010649159174958969557226869761509027721625917705381519396292024500657048019797402118219861361446740163795075578643784725165018700100488168563250367743570136883436575881905677773492954995639852035601147302993465241036728351979555541849311176669911065420321462404975970328735065590828798274607706074971115650344585383064850278591422108711551329393339226519955942434825916672796240997287507821299122042152083579213357129327617992485673690221290920765822166719874078009673536757787882414345086658880321693814282817779682038175973344731759480086115089504433769263068113946065774368601301687602308797061473972182638610522140561324082804819914393476582896196470430810285042795772685228717575214963960597452497351185210666081410776829499710686852645762033295378572762116185577278004785108809272672943358129546834687924162814263047221788471872353346647429519077746160077827471475663893039138288190656594184214758217210201805916327782737775015941005407324836393784625720549710088078999983568298432672437261768290779893774834083735612413143200865698137954912150839172593177465348524619668289925355114237707551141534924571631649638923444929618198838818748459284097242969501786293736233086487133183037707857563357953615579743165980950630768526007912815707681587986622862794653988418124426309750181295637753310215299297819020682494523288734305395062508584443794285698261752996360675312794124490785233258023175963777614943863866468808271162477513651003904609650675631235587514588171365157864228924104780142390197091843088378232647109548780249198680167870265776667619002580199849615392202576073805445523992385724387645252019292007567846636588368162688758248398010955053008812532094790309703321737666305045447710186206065223317856671080618113556452095161320127037053291734765276456153485156350251707908379595242544341396521263088497870071325658050106856324619556710979654690098324367231431640102907500398112372353417239790320009306570006773211466257016318398305047300245846422028712282277245056114901140211097074910173977507138632754438830684498731644330996664047512749222494968429210864954932909844638627579237344124266150277299407695113251285045271188781146182069653228563959117399508590875367975014649649895696439817365491051372016174737013314448152567372135034800316604610229459433290314951226689749053309266340814777239706192224597980841652539671174007272546850938864088882589318774216748991062287877661125614150082772246273131715596522368455977085811236140108325525415239091404398295162273700618798891941994286158742175823615369148275668155765745161852442814707755129312843396702870922301999095138347572147604958835114460848302688750410781911100028506308877248162898912594407813342515379828559102566080523529407676823983910475665636878455478597817070635725194580049190550781776634813671449738904369492162143310350279443566934195631017924039978386004420670684698468676848029254703611473922538301839176584931449183331376217187164057772823054611892905498155942214801900900854540623580269679333351207719461242394912589779303510492661220461741628775258761570874899471509577417335718172444253578096109281006038609202046344895056946679668830353557697994165808875120706322023401235210055110299992852925684063342178246866685893799933227737147717979798900082846529454243190249513812568072845141530577848594250112073773001206560395628498756541516653566656774068587225527925574265058536919241398270215807652084513356881047988859615428047257800479742832798206094523003578832987633197474049355727945519784848375074045156537708924081710870116206099895865977747225306921910606594864601386887570114874135156589153421952309190533852447458471941144700463850830272755250844244440904704435329814512199654621026859777309657407081344491460112599148928301943134617627689285880865575714707381792366935235487054151715771654244106516908537764313290231439780150842349229807146901123116851740918877641488732616648109336755077200997379603378437966743709271093066911874238134230886454661044591678493346458279265277477172986468378640547036626705315762819729511316291084018062437045234757854561426369567977774202948039496685291642457603581353740215999219431285689396475479871511091967742032658890725639564073130978455027873273536071458656560148629327716048231630107472367343947204136191613338583420793974550354046379449946584272695625957961387917244763186068220191894165310689968226981371853704909563745806792078673782223224843264176580583760139576310062641019056680650844189419477074201539881172532566229417388430363887669663680218367152821020415739273344888438419599891918595030351055122611515701001422686332162945232568663231717506380099545022894093148590938890775817945704868567276349589702249562047236895770768639378929404218481557589886767989011672572409655945828118208255754895650115129605998548465079987962929511651141415992993641028749635069657480569530482354578303610317759490590875962589289047593652488326444244514075873787424660336024316533298351086322665917564885003656615356421417670843629053478806261437766694372554092964397152300653083021649043599995638316692784561381953437343509659720662885573816398897526221114435248264301424868915568447559699168280687953465036409402882307164773183759309860978155906515444868982387290132822542800053378853213307144552183915398568624896360312305195700194894674184524398175843063842063134545046221475463099774934187089966883569297282946715576405164153709302190734102296997400794724662800220712708431832915751128730163683270734998519034249001966238104802361985964549283984692006749776241881820331220848855748524230865461731809629238500268420037805178126778362934099552220366151279164692706852047730850582536752383929584238742638961118229323614537053356978395301035000068432871856744829172670448164888390070902007318210826762951109690055595442548235465001025502825385223288252165641212583682756859172706721791197669755613169761870864533109495893025151663610369450841184848316282892443530998375053878215319672615508448644214214481565705486244727521615444342755150102445540250680361465532431038833566139429760060028485955823585506127122340823870868514328795375302162104155739199988892887469626215569425014909419336211888349723109244258576363030496602996213668665834182498946564171386723212349716435967148551617728988829524516529110301327575825065433720504259347483934060016477738365585549216379999276366792859847182717875111511671290247650274956885364327209967559813452872385356395936430993482676599434663708880509001688838410188751051492261176943182510858661320734784447431406760122188065968048699443582334196398201068963480899898457523972438995426116224089013183382897715963088396504040279920828921898404365942391844702398290340427363652217917803239280446373931325343711852868242031361999855825308654899823653743998203788694261943559497452316398378080148011452968307453418422618728798267254381078603898685379657741304316130159719706853829825921431068954567615926196143486636512439286462513031702600536035868772546283124202568740411209771426179674315056023264177656401749518597045510572760554955214112847709563266650775761400131698832617758536970642809399086746468156404282286419317759738579219819832699147820061667230612998901052844606106342893016485898657838121533981744821171321626097307950486569739355147096716907962034946893713344319409417316491275149445756069307364132610656256107277836321904751232089620135294535072283406888534181045589808758673032401523765357376072141745588137686481020696972337783770291106926577126165917473341717510793845065004094709035338374130371670325252896446827623387274781647855769077110220987976480075371745234433472323087054765449225084400261354880787419266423281881321693198135151903882340982918032819206857529259135980461096540039601671952228598335771291659974544371598912486766247530514657153392891614291608118075474559959064598882377673132331970571824581892211855180182617065807657516047180265100408673011469047924626197042436859281508093340383924950838350376712971903824732303997301626648259264710177558553728044070456345252378000887639842268290035759732640205817863425280448261242215480799516907241816172001466357407382320488448075989952261467406432219139523931216421212029983304158352846794626445932667304673049778274759210614655524551902677541442263924911468409995755722677714672451746932487429638874864535615600788430520299525911489924831770637126860285333051785306051382277265094641326417158643756562701235077840219084321058479792882516005966419235452500333326111073856248902453628648117157985152535880695234655275245743897900257346659153822007213883451270719980643268095863112628255884770029700188654005412437103060126409708112160632765586286192501010705792068554687511730009361937105435994841207154991781496052319463977875569566833111980333213204530050726888069852060577057271974863395424238887460711012281288489569502607104021057949419973472848134249871098672859306496477885000522255697326376285342769473708378082702434900772586854525680321423066926383101403455103520142626756792625932760522072380678707586655156413928908091508778835158485156248290326846295124308737709865418713691967494384380636611769946618511811738427564529399692746433814836480184277926416923155485640456981301659490206489954098049498045409185116633252406231531497296334741404516665408379211486537164592376928719810310716622892513447805475070636113008323388167080447374111809943708983869459855715076217896815951507986706056883964090406609349105322562236054640998514284204259082012661022085296488613219983599019697310376033447739169909554553173770941811363966601281876244487942089240506274334577957827600885065467373313860456325338382867208483349451371947606613060469926843340706025603021501695037954791760857607412980933516569406274564256359265928216972015173056971370321186927958888095312616520399647962479780440265460171040069738950530848247973284621318944373909353666736747550511194336094963525076814360034107857493672207171590724710230685960170411852227324167872081990342225039357442667327758739620640511240307319415376115826279228264405691860744385425082738509664737490793336009001692749591572973330704033296397452762816162300036502037339639958243650215958487182777855237271080885122176568977652907240850180298457320291069837880809511689792696351761128358853607844432182370672029299409269896766726452549737079321871955843293944737581566752041445300223345524584351614953762873172284302613784714343631656142530537495973873651110076746522255303229492482987059720864219737815909506770582761087612032885170843383951659359112836703985425783665370202385841939746664983579747138433267265465151432663141630509902235787205779099569111724058202777070419612463542138932206893800161779465112071357546139994060750292863072593271219560612604813215119973870254176827845137781132808380391475646640306321538168932696062397867422545873783646274701136824168884424594952947647546670829952052515223989632379923356853315179348282800669297988204361989295153295997364387247856276501730767046951977069645499536162742197830738416151992809666427107605452727478075111546048052569268273070767242854007403306781327656149505874718497855553524094373511512522894519321635150795045317381061403015238754701691418720823798883084607619066336494863356123946713004503997850600846794315688739413815782338769482010169818754834764101563506225811775878161625333373397383427709390021264737698569510519084989691768626659950658533037526363114570665140309101582664633091003513542126391800925309472956692999375557140765883910890511704637688700604297705000819288919807998356577006624440571341077726995920017837148472313119795253190397720537544180268368747553267289999029717210322206180948105662271457361027370631206076534157962031093074179232842802957124062661797267862372342273281900942876731710754173324462122585565243371824248790163203770950647233365449528051663839279098214813378799463625155149605953910000332882040218574334749223195389439203540110917827440222023126012517754728173202464967502366642967386784599205160394028069319889343182933714139550002068637334429204800692281993481158787638248647417321792739891756984649201113225013044934970417405990982999976291535511064008361374399902925229130767548733909192718976928806567220393323275473197981946074771198630521810620306550859864565410391566994150444738471666963700523999844053847853675886173906572380630499157173356520957562832593142486647192675509512514155549181549766139148745356303749188437132534650074268142374521908683345919452494715673277725810847141870501774411067157480228093502377520231186732628945350492553166721045123265423368261160872656377476216678945702879356284548247168309482165038593407343260818240213921757415699715226133118748062935731182010221260605044502081265717219512940730202893589984618804669829669218116595696801417793316345176864816534935346999148625055129728113782221395809119013752690934590079265177644091903752691713786061542724312773925665931935079796098729109727755947108480759817010371711090578721086612450084103222786140705249842750568959580043516749692082895526618670066637115439620821736418347912856180242962885609058571223532692617015580518992966033629661050226913698045679195174017779607440274976437940687787477776192009594163242398445813259496897636478557301440846386800762605539954419883395364702653256770108553186398795832470363470610250799697342810001873697772861716052611229373985038748259925413215068920126231304345343405423378801813131447582358794569292019809699028051881868581309179734269230001079447213648750097512446613879550334532450582895534342312648323723809777355455436014887221334866644269517045394458069511211162638837245775082110155003483317204193963176044357055150579288761021546181707401437580622294142786178124164796419095846245710003648129570877140275031800960195718331928331650125120836960340370339788728908546539866410782916687117562070952012375600186983641030930083856453645731454162041098023505739423508452643027637010734676104542298734685209413477060952803507917384908751574819135339180297647695937748442274018903032250339855452258381530172462523428094023256165644758778319883401036047244430028669609025195664112907537138751162416904467317071858402152142804293422944422108678212251386551498162238705557083511734229446337370118738403638951295467379415085413579616993325422370992965881190020835653712326301278899240285528526514613121546406317098093674928663617536975590417015924993734885023131996349138769299396568908692062176598839970442886019010152844150258212328485331137706201116520821006243480589388670688268942717075731799100504149510740575192396288900881316124605835325439931148601771680499241271622233742613906245933947899102392871765460607542044218253945557647989698694610396899965679423445643527599403978147335877210642684410659562468330227216273529038153335200555842060837866105104621801637109900757332027154360202454968545839759697188687420001248385442185584891667463673735343422891954882936926736483508763752134194093814297100872301457850591589780022363702954983500326205599323888818981246085849225475095934341776877327618316959292949564971767459178566143798930682888150325505072367073096742000204788598181996425779186976507304086866797233817520573543830161666869390748874192953485238051848318657074009095328749655010091519533027998991142653027910802869261242398123475033534716545134006023190431450763352970635528628772997695859146034645135589099764654382653141907644191445592191181498950063589346689393062848703828571795192401068265154482807420037315894828145466814712002822844621811241927269826552515046215589742958874252354288290018516565026117029449117281700503894130650361748696117366115625012858770723793256115893960988923632687066009386193197895780198617912648016517533131415484481706494469466137512584673900099812548496529555485622492948479040873743478649034941369737345716596547700238533491728567679566956550676547646216365180145713277997215933967020911997838797711214335345832998601804587659248276252723426574686842923385995223267546749217115762180068333819482706127702709527936689026688493496995439720034057773684380754234684288869974538281790596571303247218174543973611245287369339354960482411835620296013032318854683108565771874677466797144250341829434251658924775276064875819581357439664913568998212397639053946384283908317552095259822616976857402568460753436648704124229852735339168104557676751379682173762853687032729713187748822203143706405263706000005023548328733087327022848460273013864637620691424755817551501068079943737758847761577086472006653617578967417716003822526789253774509183936211446063165199575041132338226707610320224333558894029073626493712929768531879958572548789637078494874393150248633080747306681258868125292871660348519296215270396156930045619792751917517405616294753212193455884084832801788889076081769652679771568360837629792697709890286867139189042752192547952983123326517436737679242925510073083951219353488846674962654475019608485742132139375556053027933526264967166876276347737061421594378740572976082505421238913179154800662288775275958671708097657019871387256012443368524070119516771186499148966360052674004982689124438720125946670794934071660891734033148111368945982424218360668496669144060786613925266460590155237980845521479133358587983831319815936764301345720426641861514304492290769900554051260417366267775352752713337346554837423302957363735667732517652789139333797836883872691140153591298585726369994169126320265057157494690958741316276725373021369358063822688449556072576774766050806396813782507822263441464428495478114148594995201450281246627389876833650932347423060163516005058516612121425877044009087016462779926376075155429588442630954034610519631259912571692417789442334512870124326103392610571626823968379491821578800557327978807610682301902293220421754874336887157927082618275832141531135691191466364974446321275864036051951724087410929519835646775696516508597854912614833738317986703867709813413433768932858705257065563162484020622511786610420674748933083193502110059271708588474086167087359098150522932373922664424957791993230204730621968720629199874982168939788041096932610137664983883088467905255026446060129146031374651966267442918024043693328859254543634881643121894070180343660193902613689055583101939832241773621208431690767006505807594834229177229336387694422086145592847079357841158166276100860786412159951484062308994864373481434997643297392195142474010297542225980355245389874813242651981627647865152826364643992527511771744049889645479058225397757872462237718028111068868089597126384596875210908020914102053350625346062263183414046824555378036257894555600207280615429279290695603263993901491377128241325050587251215964762335990762898913284027609978753837241047867188777368329738938072251501231932200820564907403271304924204127588042454965994682297113984098047101013590211657044781549367682770198051882093116423497267079244174417265072777037418398196252093195262089788230495099784925260418421504211165121937820470387235241450591870091329201782275422471249086719630798131260339706279061657507221368366292209939354613054742686677021664691480194049974405808725672007026283177029529893313905316238892026048738678382037516353206770832674912754052770329955167430194563602941794377128921642909155108958993398759437478911445509622963709829050828843626215738391850651700834192109821348254369006548760950471239855349549209497743963573043463069075114654673650347671139741863249383986553567809103828332277710012851045907185349644468038326681731871247134775876917642184024421094441625847504485055721633526047265851262398914211431733066482543582138705215720933665051428629193555147150891799014907986132187937093816136188041356297393193029886047008883027074223084386532959771313064532637261576134336438626048294085500467559192455550216508383066069230350623041143429497407004396649833334156761743469192202861767922576974873914701369177530150371599804915789976383224228694697945303554410080380094519700678315643427577547911642612888495580498135847402364733515903568149473692516182660355588998308823979374422190747346362657790811914287792706800079501054899072916308476101012018143990850338764172123063255365383442633428357858316161059486902894847716500491883882270399749415706595255835710940680634599958201388448992688094659253004416972598094799253820351863644196052229619553588592559671508578474082114193896792279307212333283235081562230614170767285140019505938251680006175031178816815467204193420675884242787431740952066314632687043074843450831048369141488369400622568184946045169181478263205753179850412639427907544983236141659185750431978818361541080677980398267604612878764724660543751691257535092240036794381121330022501572815900386571250658503438786195618123181023981791096080284982721847514996511015932488268871515330420588572378865684212419074058542952973934869825603265131776505446213611762648152751774660783230048449701484435212013520205854814898072461580974269706752983947500156118256158438917308021951698107729028942318464045056947455819835795863572221431967303703262695091757386849803975969349275779710381399186030842688698736398192492904600946638308222009203466197962054428895540269404192469293730494942337198367924839408299294596685446356901717487526945656879394228648268567893333479373280468266096570328816417652871639364877768793413777562610465127653890640890805307869597637505613516815736208791391477290350259050723647169295902040978794616349281949855620275693651478841098506419550568751533835913967310283160588213267579503922858188671143256257652443321992262272862680297589315371158728974714669357826151888531988630254695182855398495342580681743302576268062448687997052880280904882130809340631146130145512194013265190088699632775885980856882854658782195980226341369762254205874400988166501120424991372957684540242629273071630031115476255938309293488443555708749472675269178541047897316383368465720163586452329313291945548499257147730736843926609141311388653242019780966620708290708364403935416827035760935215346318839146124530004053292748675709918297282956272055181125538772450508879303819625124701929301431580613497173245350430198546390202996257279616247631703141236739382208847402364012191205109372560433022759026807185423191489904855416130051816844857238534148960888264168415151276253521414820810879392681979110818745125449843755189113909070563092659776995822203179344617854191648116720279430752720319731581671041784344384741476987580634346543355899302670661845552352903941519755775858753567594728312223160870746969019933900982099123101898188897596387741889387102443252454425851703276902075918239170671658421932903826220995071531852521061027916257554311286584739612926342468686084073996343169058896782767031674238307250951317089481719262268466267117509812552546424591400240918240856927023182407231271660180785858403267858727581642627718127874642351453038512755357337109824714145160494618524815614564908715539762633506921725003938923209573315693857264002103839610811574499080520757904342521273269807113880408903913045590458349443916767301920889878446442386124870966986063224960259828133053360270400454731300044619169874568821111480136317386600173099575504502430008654226899537402301741051825326436043320833435085715736947159612885064708236788877132611005471843238738047556291300705346879559139629115590868533912908448894744751105057239831535847676283660506494826035643471755408689551615905658731128842829600492743483497901632065945806963154320224042297812333699664500785366578580532472776911301768240105152553159025822443848262624381216082076895040884191735751320757928440381074497836721008227384312211736840592814266203780964681135315395119532539673251882271914353630420354120182980289745415296915284102067450463833975058979032601917567006382083228131508000892715628347058646291567534804427098939385756241502035397486652930342771901918601757342651742570696062024875259715000903192069100549475093964725921424885255939302731870496042112324621341668661709386956679717860039539608079686705133204051611755942210369321362489902025350310399793751342690758462186279192910579784050811244863373038786237534677811843008335551158590025637699545525186429059896953489391234825876238045159714731155562162269105775672601202952027392212767668365189619521681313770905955585352271212783897181681375506638052755774479000971596416551717965937083409113909130630400810616375748672961712102813607373158187859510865092556535547874083891071310855250467225869305699737099859831285818760770861665483277899992764472765492690744753839032371834242922396215863898141439654680798502154438960631827640316765269654255659320943948854418408708785306415110144363402999099188306819049613650318061603110659244609900244230518944352463853506069144894641586513654253488969979149403924875139484386393202025485577463739538868531703053883701405787347220648332350290110109246795276464512495343932032956773532335913588028369076472158103251747662122463177791427951346197635400022914194269171483064800051930792973215543900026635818915689509326016792854239135228952755760250234140235814640179853051640226418495199015526522430264055868433822721596523443542712462350286512103210354512508722634255875914441317051627931875774716638316886245632298972755716177423311826078406689984096158602052205935442279838227001479886702909415280477183232598638591517039137679127947622999754927226075723382007979038151085890769963289725981077871600027889466387292924763235207778707067951594139352426506760701286334909153887273667161787772927106826015541825626477749050599565912261371804097795077539541737465741848391290012232724910544072963891502965379508120479834017384973538941553149472457784795947305128276346296219527821126733570870035997810956307790483923044866681679061818943556065784708605499295670439119431734840597935914901420682708446720502269585012593877950657011950036210931631673813274115601274925083007161874558286334300037889514945980012538694431162500313293677989255756910158793539717620063704708482848633719461784460800040535454771607205428233465526305093877017619597351940747236627877858614175480543674891294965831742972917058333677323456075552996611999737563303902089981237711164426248542376995888663464877949053984808058425429880768694836960040788454281878805610007969255704478547683579754259715649186416003202458917787251307621450133712737725942059915885992894248621890489592460690708075702423207109837286813954982821173480208898632796634320590025370696185624530042413860994296373491260214242463245554185133218890649302399005283680024071442173248018516961652651868854567448214125710827615188957277739222168517272843597132479264096934045215480339488357618861649149579342783945910168190459351033694607743364056924031108945860354491592317470040382461592298744885320894322160357288311145362896293910465301680450243663051192604826101253394859726339208603243512292923720528172988388498431545722322256570774124111211875942939123062470155528327756760453373087739502358147671432434682120267174732255037122030671199877328992738256569352717956165316545882541233286368270444768828003194154777689480968603196652836182013792817006170773079480982645586214381272350102063689668100042635033762329990649176914878575362351995734633571170222928565386911543272603812968311629840561685021574256148320108174140211304214290346041608626635880109100656187468076100452877932736800530765182786535136154914674076402210991527877969488870677058093395987007458290366098536655719921252448395125422734778322005744246864134238857694879240429384081543135157971991938857920489775970336680615182984873820392956732274691975535516286366658982879415213352827917169506496929057748023064609207235579226296034245013528337042467938485822032368985647352037676191512427456710832394834289172485378693764789742375422302206759249750141156170544354938590952387280189811570563518871175574393093999848742431444697567299570031601064901051844404530841045454216667889747767484446821344105112097068861904085787929192870597762048380096480376359649994063879911298311406408098305127525123067073445850271685896002909726915770461063496658921623698797336781062135209795951840174362266944504761655736621732509250805450309577754122169079447755132157305964326899745251768574713560374054453851458384547586964038113128705822890587661768784113581792405542970904340280092996476819851237646725174662182810889718955618144564088060926691777764880396518230403950260614199705124656113066979450072718104746726927719955810439158414244697443897679658283371616471293214297108877466548848287400925712239571373079417233929964363333101372453427183770213267722203953617130867259815663492811424855109174104882623583989840883569444993874952774858690780000271807694129550655539924550941511995932233992761085421580298826380673843558683412520958369990132202030544532962551767364757441850694562922807744008772509426118820662746663924583151800239259143777592463283002058118457560173698596419256942080392162650126011684625428964692186772957975471120870774309717357139122398433519446796306132918509242551066783368997051881408292587740692544817620785599043321128521415547752412781737656915847352852451721982182500293911907630309588714891960814469288270858698838508105714500248917530350300895844406395149172922445183029760259417731220097775981480102422945489501330783554475193035033657587175510638460043323904711579678724878778030174199120725185096913101174045119247529193595311469892307135283620019439150780000894578341935569548668105023455545996662955915717975501172934342795108678599295190394103941465503555067384646779073632364248828323368921508909470110246886362359501557671619615473368091721932625598959564149200680177784162622204260697755268975753138380880648931133957446400230320189439998348526103573233013987128439017631257397717330778802367247218259322698225867839837001852509327929539615752723595014030793067701528407661931266591672302596580364416669253052405990666710491065619331392631646054150164517563605010964120968015057687036845222393695253287694888099367532075669358508509869848381123414373514788716495334162385509477328675841435333338497953158430822726272577179231628596260191628045454367050640262129210630931877595820188199939816335763563152418563894922716259050354892665369744340660904237198451256538589515885464841619533322215507019373065091390929098613507376794517683350002166567633312583786459388431116876146125482967553366119516217374777393965776467318136360435263524233476462504713206254995811960315184661810406234066646951764742929011435472589228121134649028503013634372565166277304637681923966544948901646153619690651763712952336559636250921685428496553787592868182557075252557264664087098562611125483487163162568324791940775040644643697760186750165516674605387321741015050004517854038243590798201346091617512819470863349068423190307171346147693988115173133105246791341283511682847116306476023646653814179260249287561210527740133800186165759523855602407040256625540042352587787151547877608688237341589959081849803931822153279854183198865770782910287682689196048501069673509141990304585999681409977036667015980183585626507850805340425211271929562232475895033042213555415357456306558374837308029284485506307330813706710446392841601311733978163194161122469536676164789261233642137301290253880145940440108387462931684268925854867010831415381683223992456798371306940602633002738043999897999334487957935197239038323498588696225509791621684383398622969695540250700103761522317752134009472564541269379562045898886574293584791839621265766586387366381436251822820676338941928831627866065526084363979329713640559801791697781677208645190496887393691081857366504493426934775691837919692474226243523647865080401899758238167614898459354497797409863528555893951786931341473091058947982612820921255212948600563462528405217368365922427985973809065224876721134426984622466030009730466653018418974194761193231866617287470355491859112996335507502883505995314136881917447462662001958601156684262745063793472300130671870752725613083538202885215189227268281430669689074357335179332229054875066678782787509830346190789395598223937380856130576185292579402923591698683682123310779324399624305946151399022919396755891876546164920015444989228670128786817192646237172887470804271286896366138038117000920988212864801733464802945478202547490543938289157557667846490315715583488664164145881428805010963211311240445104210611597207146062808931732808186723839145465666788178252520559419789100969050363510687605066319518465403828502187821951983614894914414347609999250420941139977900135901315584437394827644960349589272427204100670763320614893981544022845256072953482833680272243948164453049615873806965787642796462778491939562267763684045892673368253384390519709054593327537263177502905622018182732659034740095982103193084172803879121468395455085222074179282790011386133000488691491363800749250721077579367191250416030476771165493355621240659832003447221366289160752758141133134080362553390285237270674255000033210376460056010133824885797757161408567615256807607850352757859565082636833882291842688672228551933426012199597544845520023539599791073812109018170354372010606351589678258214678612303714407687526867365536597265454338920172179431487577503684639249675462298966579755260138490962536319930237827677076492760500043249658436127282020060536238097980603975401522833910438072270904191405368034228114958733449560480272432485097377127457010993526467778881476827926486555493966511785026592733969136051119469833270547296190498177601059076802737786620751305071690468414204809823826027046565475031422491190361150602669575218590901253143941510474360787577563736310279782299736603013019913336480507978078294432464887112222670618346097602402676783269143335807798803679927301899667714745302228126011400515956537964649787504934464414499120364402676753285473840492122772782101909868179855165469165095376135856385735471451158670072228229146123141649325150422553351538378508291248888830575497872193782890227359008389806447543269082740422254856975498263906851042610593116639420969604627960210997479419751672873006332308941696737550989035147189394771824917709976138862774095407342954527059238602585561228000218766838111339193615148554677581228439780886409359886913014516986506998137546315023882160007987958429822563600496200618526069115238721610130807303230081211938717094785382481049653762739578952052922923848667552265432411863066334405112183568461775297477254021741115879258970598702578260123844425697983183355255976614906617056822775106779188398372268921021933527302777066805504660040131019390218945163746109803490763719551203458364076114460514292321857851076127148441795454640562892764394859839194862231636478660349757929852609198953270480530859069010951517336755154213671866613504954389157952729439352525722818435896066825820634605146814557189701685218012732124970787852056983777417044676611835208462012131549580133727328897526932399222574763518762817922468747237007369435124102354121658351836384474149376860708757541343424788312281296209643502766775125219628747354195765803136236889934499675181454259481610471089442467112864220694169303980057575290470324924565251541992857062240999948286245334445596522770822287286403549288589275902457939186118680440370115571602004249459111188512425028492409385397177049362079646111279691159678764512247280355887020984050892676468502612696966062197761613802660757149102636214825987504618078020578882608291406710652074847038058666978513120819027184740342903273902353177724532022606203639559202749666807557442526422609039105459288955785895693765676101928604313880622607772131671056259788300728718145330423862121372010579357005748544880528633407353847633576578597008958500879952366526658145250455162791208271712761024863603397722479785684637340052208037316366247566586942082439895559246997061193566521199885649963392004749856293682330516129307177157317472547410872277780198435398971081525034565591505680198940557169339791477958987496609801503747041511407222955361614198300877287689588968296603976043309223592148167583802322704486860966176625788233658952311565397984906189098895291467631395491940110986773372931172731402243555063838942481563027136693269915067355709936635653161111757445179119161409644195038716280703977323605450107392557693135394226332607507026534021238781604969396058678755163569416934495897010776562895480908476387368182625584286058223747059289735743375081822562975497422883795429935532170553747511781271042349133183494484123006831385749852244665288593465874840502667333129855093477660232710201288303718695106695550891898232863022888012479734205874562526643669197565518032934208068287924219908813924906479326718978083997188063697495009576110809584126574644292787703244306835000083126909838783764166312573805862659742166689174302420259599714412282232681918953638213334208369070660014826936248336730239773348819890672449098068990053510102039092426625083774749752165864872039743780676509324391020166425619418840656493532559327613137712553051748419559336784260351259708389794545511416672488580320383020946739006412084606982000557532328910832446649913785485916159705604760743337022331918562956483081440236047188258024593485901683557080568679298337815974889542855783408702684582723469522331691378170103586409847022590290795482997589467084934278407231557554645350531304807945042229343795023411980839649227661137815922228429564400239450090996728854680509242964097776587167032473945735007230631670671383367686594083216950337608758607916634216065565214747282805522096946256180797728083202833160538682003347635314629814613667449691362448774976229996633201192481406266267943180001017027622274135785877485478356956843959994497645705885203018424399351965315595190173277430502852993893767250083463293040390822697490835673474409752253007702921920507334023767812776466360837952409993997196966747223728924936521452588285170042292627412747671447346924433140464889065636911133180221511328211556170130289365610791002340041693245423655961909358161735724976259858274741800421973397908408351981626435005322468085472331605661960957931433778038363450180375392093644558313496734503408097614377601601469231114400601518924683299835591947435294139069200489128994887388993379979353782001041854586970686573816544035110024397129685426145282767535028783288740415716817298603810318777885324296678966513847522744648209811185978781763035217569622534833097393891078431113943381909661724111605798491281000638617530415496817675784915303449488319263335539326841990767198507435318811903061428157084210106635257802134246065958357607656826927072931689119666095904404532608380090641964627437377167454491520377604156659261566531498446946717230488635689260216119813874216951353860488376174852867787970682735408856714922502520551972523977396433324230726150717128008683829172806551079602565628426252134075574795187269831882541958096837932286144148508099609724022158544696645546539082849746608121353160751011007183704798400072009621830721543426604670103281887760262817538217421113483325626321209615165610032253931325934549043886263395801155874124703576024262918145511417407654125489749966391682348096072648596768765307792432502932214773368870687747716070978185794789895417403630088478492561815844189266411673217168094589534487210393990773847508224668981947823768485977058128218481704007612441126423911959290949324835441877232805912250526462147092142759120225305824612724894506744556155569129808342485697654355614478231336808558234206518722651664084160769901371652743454836964255333606620477138527979732540383375433795145250566273020629734336990687673330537257027523151985600668037252529392466847597856798475456162656012060730908082909339077681091085085949048439604005699055080325949369904918757504176060639355198602121006429423685219712645135794920565563798772225624406041798373473586089842456976634833121660692657260949101082791052635452786678564008971414916459568570280342039392954414181318195088733542279198903150001442140713873228776784892483947564904679537273012550579069082779506227259811896272354484726217089972874860671724170560185608938830258012272712631480649587615169328825011884945757015084770046491652290565764613323972023905423819711693938383757989014254168825822159004915534168751361377185352704161978160049987403894651185887967340304769924577492501154583490414300261222835413726092220295362595002810335773926705413136469340381106178802687071400388729694772479510139527065257987598875621475632303077684299883126641493257693895380627572486486121712638413531904911939874415607965232283365969191311572297013728491699125893638255060696879349919694179973512141442685155546174164869103854943092925843763146030212948431273446015911903990142678885700065576693738501362585660425107485911158815741609681102650255897594334948050610228098292432478194508623947804866337400569090427695159479651807163693685903951103690869494686386535624972756930218020078673883544542226744943808364645174831896853170205684729882964317601592617883516047336561236636218615433306426100174666551276228097426427235516418891290325426534273316909871758848081913983051294572014050761614766483122408460946032823321566666778714061147539937898038603710648476588909186171717094980167463379434330742906566223166896278346796305080683994331402481730147003776586322062571649814969979077748559107600292307254626224466983951487822619630961242228754533911301293143339308258836916644444892246696546850303310875906807685998677801341339356846413937171040713221956090990763734407293694314358339305647404402740694122157754055518498809558618338425168315940888354064469059540364079866379787998849244018340606956865320398674853986569738741890571944646818624105382491220702388479976147772937663845928345509858134527300156695806796669264536515278399081658744485764293453302327248643123009333420950184549363820220320795402027096211149992367917169814102228728061066786888640788278528908323972802727595429047912210030412584699130494593136323261091369146474367689925449349372848469690745205920274019564123067648483411765335502383238909179764154726845939729106114648556430303531826845999674538447959494366054368755848246219513234460775052050308824977546478067928848781487369519887909084954197011127246989288308935171679075261718823026682929639514860892003815988343226615976277430922294651469268307007143696422661570639155850834767153984921442944077119836111365454762365372185361855029294452009615885237392035350370450945717078702304613859265627159223858386757520214779721169928031369584056374067011618837987521235082553750501751548031050356524466914629967307202334232203877728001574852998432011430414139040078059304725940188040024442611151338159194276410325852582740010569365544633800542527792517662074746525961419893875977707771100250754035968193712172155424125061622575636797654204431240310428509574924509602543607604702510745414267436108595331573907007983988927333053740502520408898647935682298898830913971587392362656827574680631262652274787601812157644585067849876238074309533016152927536968184214958915229032567754195918621412560691943842999383254283648143193048457735384074014883095607178128644223921892611388138685551224262016845762333615034727674025135087325275484353606448747961870882750666412950601276730444481208903063670765361195458991423720798043485843105434997189124045172973870840973996597816488376138087263034873034080969554081193345068154914415010251476722654869818743544692922838168797180181775753916422820708316335986856257238151619214094165626100237670929346936536971067768588915630134827235114951109929714536601924153085507701798801473311795772350521258846294528421606705140755389750657996518964345504748334124290655212099503653341243138427999071209697078535474628451213080066231712773649205976339676780368889969319606897675329605208744195420777950022909852019059962779151280719112155602492183771009374063604522704115610827443218265351069561284397571248521772038983342292877974765615388125239546030118126592338523666900338550382420688440687865863121712476525783214213850104577557876468508041887094937895554677069904160664698676752560060645552028882422554045478746755734719632961489544255440343791715630398083520436334406830822513959378451520299675187723985745092097696374624707158525370627133275594657554576400705709716204085736121163732097346878043960309419292150604827064198933019669281523696236262131272711378851767553190860478842449312740044794862438432816671818323054258982481672309659046102684573445118408262270038533269108760462532200339289378563334729234995842597368122211111289174015719328044786586953456720630514004111640885857108895960045747941554189809565422370143125335607040644963095373236886673084161066844920028598029296705676954777637582542204235419963001611350338601304507456010724596150784897036496397012480094002865182022573014142910503050857158577288439440848966926246216694655763976302818223988800203608072046786009153084425851572684973096925368222099452615280864171916159206385476259087424817234494254974529463811879787711936407273721252197098368585384014642473791431415871602915822394849571945999103857464566691754633926169179363518571874477707796889314833404399752733324479639730535890227958661767739220483494791520174907517128966974674680184027749354109449863724155621645967360378095802141507116727842026537147533687291297262140307648256707858733959694479034656113747935577910522618189596757355492185459201079543957559678204537508178500751317977234429399051129880929033293476444369666331086442249402691701811761167284260677696295927911209764518921295515816999899328946954026549041068030231201134642787493809018194410753249250274256775874969703910392030182439267845605013042833509833766182432906937259705736362937229369349078090009498164936486051610595677073044375228769724169223544119217091733221423804712037194686577643333924594722841283482527551733571548346964911007958127160296176694923685474251360120435945849351919132360930595752410948156814462004754521186316206522359646234544298979138040649948984667657671213254082461962927913768808515781601940165815104141533370132293501884212083660182650553497306247676747606800167315093964518615403271893439474713542030431630156917044266576592475938722147651779601252542565738529878645084672408963781143436112379538850129122384077706538727034180277754311901501546522321064355508487245723603531980935810349079789133852483110250744636996613482464441814965753569577012725841576396304159041229527131939809307846189819898417893184893628418997598962784459710242040330783546466182157427758228318338528439895002586211176054184187284122203770078367657773579801632115597178051591318151463455605425611714271416707665673956413761096612381520611994774440729520902045419596580287421412887813117307909898982325449190682843698014605839410435487036539072043936209006397627919828320129966666242230330390309980018389307148372430637695333985789271302230187826549191725200277680734965603913867986630105029904576034953082609178603731765031609755289487687245353021758787665164228173072555243190817147364151870895224895927418277693294186499756933969103753824072758573484594503925633112740845325258613013847950828957626887221139570117014768307265740505195674964666126527131443885916026969771601710446897721105037398143104546169305372678377048994536515136843355989714770703129296293538813536399487882957522345221854168954827857628080100397551534698804224215991462961854279991245083025167653796398236188211326518297443237232969671702967994460675606013488213035446823488320025146505539180857650245467234287608234354448555359894660446640491988508571816879019433890213699396406334368023971684285513107277294586815240429494415375427655547100277562598031363415417433747004780506170284834233264175128913974880610773590499420087253368642361363890003396203006007489558752786493852926639373856069012282959018365977552816501778953004958204732722699202426855741581316679976152937389942487081882439806926750369900206703800894916367519201737493078387755165820579482931290710069960835932267149846574007888596893318058700443485522691740170387839535907529477782797892237096882373680675884047370906368236177072405461394472861086809609232199175096958737576009817147865617247655659639025754091860989733771716600422746525318716236573182278341668067434966421488014413980058724923775680711267129290323721310072056567559436400539271150650940746417829316770162198890182109054150406403083792604721733344052448591797414668538931836420400303376042849839892463373265607318629607412680061533385744573063497176011922897474701390248274224492573806392461742794002126753075881494299632044909498948221510848025612433799786059670070453258995843962717104486945631585098055967675467710788728922452105794809482877487516176747922561214115696347326619569019884055397671157285886479303700670689601728255326173526453743695224786854881849857695254360827157874021894202918142046995428609105604294405478776137036144213791264737828117475612279384353928555579136132064246625405707582340454739365573849578120267289503019233567685600214761367782790768769234256641325779556688303139875413409649467372202542479129336617483714855241949847403405662465118638669275434222562180774752551313155503776208302804867407517003817688445260504196077935834798720865237773733701713981851529257403839019831713720658111969932245833671573992403560681033077293495936479370657108457940053820369554071518432959080029556481049330015358590819558133584659454029945780721479884206913110312979366937470730733264875486728018149342904895136306020444688499000099928564076830878133168710090311881750782354629478132691321767231116221777048630001297024184813138354086902803419333882754345609526430038068126373536663944135956240591398007080182930268087202848801934472599969106218621859255740941328999818646823127306717120099301043285166512984556675977509551633005483830675281531109223877027570441145034004733773479188503006211008634737612982898246213959343277568116070492109262260564749292726172473277848869807187333287155382258784504932189576399345259717980341004440602047780595544631498468980737245985794113180091913228953104186050571952001364238354402660533711317273577890308066830181083586860411670437440163945856655725490517597789163456689249081786179628641533716011357390310850137158875574584854661591155648529778929872927036410550024035329931981473880362478224698235998574727723176189005450493977489844672936413102643470590515907255382426878667883227495709472605193079746090510020639794911651099432044402649375065473194339870321494447877211947356806560775045344587617620729827932634143211743536023005937266308840872601200088591787546294787274247637664834889952856776770883538904632728258154686306461806588447336896570923681224484731039957651130191585347078728373698307356078110047771427666741835412661059465696015790074161941911095935750392834553013229626248360974417743740874469791119160352616065973875325345130399732622842179704924116894690999827340846944635982125595881171752253859609905316657876578874844903646357671784634042541107956263611829948055093326232463028793820540371680581131395359757285225589948465063663117964059282786425391670255443696426814727008712145390350947178787627368478099395724966247231083324878730052973636897972627097739137131799930733841129195145919538962496715684868579798895680937235514796969024391668370444201216817545746437766137236373772903399386291484872802077151078063034377311737000466499001952652509095930467286777210293742186813502205242540226382672075629192408664164747851425000592753254058728521740639972953483911061972033710807560503539523276362077367502121254628048867074144080862043098713054081241555595331767301874766245185820854377779219410324186555871804176724322834246027021558806749619403716932274017117010660471066205413816681610326985901369345316572157476647777893087277439096957657319527446591398923695667915667078462524495769097066937795054279963097870062587861346239049228013010777032343774121718329425955489833334457513563294139585412604069455611726200556164715263018888858058675476438931419530227016086886637601460218997525482704729540092003346801929418653959077048523359773869308736564492124888727455963621468762757358524728750547024929700839653273045651658035462301068268214801176583138487167062626636304512242872698973551661467761973139699192698608743448403079735266313440559544414280253703989883104963554572942236476993321209450061293029345434983874169906893511315642098276704431676557375670261696804824660088928138939532525332544362227138144035291643263599704870184153606965315937767480963467332454409298390787440691052794542843945619341295567042210237387948535255016206477785595205045308282314199207695248608283539433659469877313269806590785907476847818809525038485894159605181535771459788588802057292497155365541927895360872155033317631813609129371094720511792700779310831907024281044935090568138216956356314727605284377765852379235583749442673987548640906857525909891954627712797106784961942848904496950541705928942525971346714248544370866731745860036914586702066444737278140449977799936541304626441522490153871273969484780882980332907958671543991509971371490776404938333285540367307102952704068167272521524168053860040692562837659207434529934174801702635072674659940552452254293672936579415252218498272581518162353423092801002965758958860185764688838207570534794346584938491613403221003402424921133317578914150020457013554944095878180313776585033004810177860735596486220572078005518643590760974850221573811952167970990178371174327484279648466436782304080700854511619491515770811208113484787307085510577012353904360563161881712071024596692275853758180155239971655350341894822580482201893830136729212090160605617844492114233932145364413647073355679193173384885997128872254047356782957796182563441516981138446502155404203643003259098652806530061439542154932671024942992487324782971256282670562161498958733346668578320043592639971604702703407850432251901490521931680349680778225110653410639437570400673829902223726200337303655128485899472016057906492282117330979410920139684340676089254620054329783934367788018894513865311010291875080673351777816924810895327725980286726219053017339506553880242380540003044380433064648963741278030218532031140853658083115199558546859972770698816308438421484005653846554206812432014448689340187877015683893759137391798463137855159629396261881546348010398380184140669556296244496970996872500249767792324749049260735759904356281551711978257081164434560408602828669717552602390667403110754794443809927229881184484918367788408679795199642180772252270709977986267033818092800544202304747085726477483429263818735624554998336325399438927789910039706004072018909235536838608738782039222023455449305569702448162459607509620843647487861222167492435727331767442799220904949782664003370294183155342982928840421061732475490546026763990413529697007817613045507494699630602278327843903938927577390354251742842117836069608344295560795888083501322954130297853361879707798293322429759959419844610081001608920680399813951074524626103686552252416790258769497280733966310854235343604651445202270697087562351369569868044245232566616317838481448002547366962021730013741675155734840980682977812374566807151805848149593113082284305649024766205567776933814911535638060401330895477129130841171728145569738966863076969724798494903119103389104178780125398324709966032288075057174410098361805974108931360164325978735425085676625581139725573492569389977452246844591007645301777914188929110263346481248878859449414707212477584362577453743417009268438092282504152561458968988707928630561820533177997165873932997487189909726704517905023543961752571901733946528846292076412191455236387511956656330945286254077547152526511123378263907920317521846655146462998460742852706987901014015642778917432807504510761587501577309073555466441372465696106057800966308352586943007108895494633523163196669918077536550477803066814728262325126884064871407570606926769420643840104063393440883051939298078971284214623120198374516502572674446639622908578745847255700281769937765026524662977927608985622224667992507939967948209073891181665646947480672201055818061794517948421466961109645028641637137010615826404525685060203418131088723643703760787528850807430068438293559471889516436526348801665599628560838569507614110300840211081781224127370941627963516033689408874353638789616974993779229983664016162218870658924232668360390400609295755750955540343362063544436859789329156755977262813220066094446535274850400665386696562882147088813599291201502304607870730157180231123556297885879016707964488037190439653465190267655981980305796654385845575853007916920994032464016729589017504127070237178832525828974778265133545407879585651632084536424374465495200356906318847162117591533302399567771823468067919197911301384082213152335746022580966256325769781551750236693195490715127868994418154750447769073269717057911373773697590428042006692832100176727125875065673905926718336387453883527683571376221558393212001616401474400336287667004234745229433058780832652581285062017481627682433809087363110109175752281708219863603557331921354649396867356711541079901879245235982170471783618113988604435397099789240510497792070945888299816210894844736359699621910990358415059117915726619505314699555365669061076831438349166381521859012341039657909766803492644801242942654737208371704544864439994617122074236373528829734300290266557051621368106592198530791623353279731401507531968024599354743170067956355011251428630861929409329234743196205157126213376569763533231813804987156966929661904496060086285231507264564590139686235101842480891029491684724909289916893479629664004364747678903288584652017950263725635925463065778154706581125354356833050913180113065584986708620207996819475573919266090849028126772187812598920536436146227962581999533619583666676662665881386968113245433585333206037996518749929447845982027066815138590935088467481427672109348297577136223509059154755430302534701021110316280489885239667390631629660778612236990114989345353252413807298173413648107809642172271848525155907708777688825320655101508180670765332547002907505376331085492064973817394952087732701648951761470776277589879937012096752817802308925313277243534026550218498373362700288013036392666391707061525939572703041015041735526547375486266923479369164441131989157351609700301239390560646478784357908398759456164156083183880568075352769314498196291959523258682051257447483693572130652447975917439841772743793915269871957224400643614878745193607379361195666579956750453055489027540625355868811952884698365081038571598897922595781077152474238458273782346982757107848493998468421255245215507681444370519553462564437468460099983930199414908884755778045781077857795615590708904515551019702321589950292329306595393677115973402968515027716947759578272464761066207668293352054546247336518655535568967196930053520352449748843950987918246437823689305125846597624021958631655335661175595692316604508466059189109591236902497955684780691712014420344170542908500578413001122008872709832813095142161275447297664138049116124715356472214850029365215368830491059536336318748762064003109092832233473401465859989294351781994556638712950715189908844309325821907462480335385439658076668775285409741444079629538284554468993606325406778090561657045525101006898586219079695097168662876241479134943979613920717890734805124246333585042463248155731717073005076297473575309515226245724489556200557870711878332618220086738372457055609516812822654746109272671607482969411393688349607186320985761085293023952479829133910471740826785139759224796994419582814662883628031634957221452103699138752548479898917615165688805282000521381985730712551080595159134272874699222433400793838913251667407808640307439142235382818484374600268943522688253832668382293727728411476384142628600621342409569691561150391784135801527900414582468522638918934629123555135533224741653780647109418060528060491818543079770099885530067917436254896792701755910693140506768664897307537406348663205582783450554115707537376455772708599437390630968976428611303397500909739934377837573270053316385140765582229847728238346073044964577375344378330125744716119999503296188610651785216853487905864878651188279201385460194921585110923029421591780558049385916146921450662359191409820890644773579709488399404237395515942962488607001076337991381387032120626215865164179751114692986491123628939379517222928621517762534531138086495838951072127231397441149781863247246941105045961930014674838245541371009294088809686116630233471357213852555261423620221856636318800369741007740713103703083895636411412735326258838138072498012455058005456088006100795539510127427500248632496501622278066569367111423088919660276710813889902287819731968031280724435680308802085707039099670037591579553714809484186106643882071591369153132979935064429113672024572510231697716851031869683792204106796910660470827097679818999192772658886883361863522730703296093056124127758550987994945387777735594342062309994426547620406135616357863372753479432407587417300540566225744421745862367791567522894437215908494466694211275720071521751658012759266232520909835777176797059498976066363669335218443857540025537858903164126734211449528977861728128559347362237245343942846652540942667504177921529550422124037497929171487283276022015483364732892647997860488914052186133859199308957446618442839014922605612335128929004658537631367496947826094394583734182188957241168611274462773896560635882704034255029125483037422747234358187523198877183726245003458049027084304363927800080046167385425895955315268019967455231735936199721775247738838931056798085363221626585303982765911873723511025227235887613922834536467021176218816433484500148039253291847087804255490910876331954415010737507576014759016888432003054748626131216060785446083465762531807970050695872646973913871741267803965161395846446150725603170476860364013418965700478495681668098925078651112696140762253263915490875322217448389950393216740713803641533786293508980213232912448358083310663553289926001505877265630638313759801255591718926652990470174024968967069849152826895130789499021205708287170252716317211693648511006505533523626344902724923399003035846143888892330398125694137559796378559015089665666797637872422971798144952447234310086124649587818825389655340366331593266512201449359295344141720308644278084927024348606265786131094691418681264447449219706701421178931482027708830057337306340663360802838297334489448925002134349537293106236956852044778946283176521712120247792786880722704627347756383683818699153680001899630209082233989961211326993244231984350522991134191292143347583484933218450788107735040594649698381235914946851805044172922742271056800404714229549595432992814113757067527219738621258434151494028648696962679659751345297414233571428049588974544809441785819761234534501038092052520481492652480711974075410076096440868374767631126581034084232573949080437846040854370175781261743250888767261989155345164319449355164626344656866881197770421042159042617381587762731547287169143360747324029879176544695764967518623413858151793952037807679147639796659669699094218771244841969575049947407203234226234366787585134330234808235872722812350465735482105790207815963747353212615556049562871629014226600530783214271923804571255953178868758929201169614357323638530378210466292829173297166236699529921189808571639693508505764298043124478969538251920523725576283304076244297451850277116018412459576164770374059223882880446091322705868106000481048055612835806680780832973201309881437028521154035289280356918389554600288727298782221160589425355677189619370838374515715450247722169075376146776707116665832188881979523745867006725386656398039082134734750411111284648661834841635200328482881549968706575788643023950512495105094543066060509628875407322736846671204156718737337468863233039434331093994206235843306518940194424977749964192485580009840606564580857926507363282056960567388067285092643954293548509837143606844906742435448576261889615033683787753765285023243954298583482558958430734055549514666073518037840978225467664077531508091083086647714913272230753603552396910905906019829325964365211205333402980370317814737163504723418142619915466138811409523184896553282082296404973532977515265266415795319431564190181833892555559570782794715858588965413864894232563425583584737528465308396620047557653789254437739920257406777651735855799381951226846244154350921517774561095173284393728306245919306646003585963973833520853087089751831223131175519003904123105064811018178126844411761561834929759054036757371731469920191408502569171835714378750481179947423400095794029818178683750779895910296840134910699578481982822105929536252327000138443103661744543887872799191869437553769397866593336857158130403332802389543100913394261279062761688805831441602717099707738526632308039750864607649305921568651545650454470044461883819924109674197285449899091558436515364758848133894391565666023930611809105795978816429624533551337622654632811458858523947551835008482196692501315554853652723131188571615065081493509769181316672071796157517745470102456874734952867230449486429674743006127993806574064619237837268051083352289838132165398016142528712372675306573231088861086392631128487700779743283646089461886504875389990489939302171075341962158870436206500057736538721616080934988896315883715801280493927281098141158538231606546548564500694256942565699777925225817573067842703862324779791825501783827415558445590516668723468237008737958065072123180294687158873335497915043641890462682161937288417498340435587345039455832259403390734872617448328851977705696855536570276237134405140370911518179005288230134985340131227847624600991330655605492088313966287807917314013641664611819666480481154577022552750761463635315809827287290671416641487721287373046557877900370156111341529506214395920848390438566373440988545837572460182184907956650447829153889236414887367134970433962330557213547090231690384489621009599331347688200864705046570661398516010978129127730404904950832065366601028663129641066235236207934343287131841548461181078729669626003365489970682243748095699487203703364352925829940961832383506554955783228894573989934915320311217169734314907420900382989915017367009617057019745099986171484634225424787670114513331902421672380808868012567611938133968412555651921713490053859870394042017752089883509765049706733234228553973451771440117772866455575525524572053894399819276294567066069962397584851535487030482098878216323665613225373697267136643305256158836257814164486214246707674013850711393601135408138422062929478654597283410691519125185084250518174094554212307774767125639339215014389141756759472908662169931483619164478356499341418749029876919606711753974194122732999747084077716488872626593239525196530751046826968939837349416901648203871083693924048115892813954203084208080109868287255028230321674636781930091419155823763206376084088643399166217323570333220259827531433265161045779012645056540343802124968886349240109942791507863501484453708695854167528304342657821853870799226599310974351184954795223556311779777467755608776539594789113151776567778475093339070946474241836286811816253176294812210463540960266686726190248297797770430809878960105766440321135353403300651323943673194991259712627759931751808568178570132103167275675785445117804750099249013113439667391323688883166898928079300164849920403465353501492661041215683031543186567267613713133051883608269328806787109710839135941556896389150192672592625276759516801264310715126586731091058976501011455504341408934229924763141027703288842986329025165372498120018597180774659621731226812532589780375053504750190569330754397161509061027785010384973471181713269815248837854553534846288978867798435431863130306818694395131887142859106806311767944512530932394797776776087756025590981789746884699279512510280488826295466953383362409708213809803291313476654422529682770523062961152897529369151901606882112264406168780947422311156148716585704809674442557167946037603760678817501450721745445721021536357465509061491606373094508901629128446423513598385765754485119217489014379853383883646968807836022125562242660362261675796262856497995232202125571305956328530368413459175898722488157428529021715427128141937177080888708924203199375046114855977889675656975202692496520709117034847223839770149560691204416413545071826972521511581974825641117668740607233241363135303454767621594097244068834194350437731571009493385995873407125916052389416306073341188420586122480648331163252784803627888343254686373700919338054534429944058846119332884029210389347108310058754455217017813875414601649817492564252394044430827474461340986616009952324152987082397970666953110593007161545554487849658930823404833046118361067944378242663493330654403746527284306431754703111809241883165632630288048273271447408055270456171700623245240330711944594420217731896777246133827602332812027333904760549088156577364125039213930439772170954181911095643940029071735313999034949063301267048491886287487285463309185581105521918557779691694934920661581641500343091808027665589302112503008116367809114403613865920774222557089440656325376449188123796738699406917533666564788738950204628504404455963691383322059468684459581349604236303858650505208490574318092388343324798428776125331354209694220371772179294863507981487942185138833821088893550238323898836861863540375561907995485772818083056462254136710928620158098291223135457267160434771032466200325124147348392075342049087215958408402631422802653864655398981405658132962767136219302489473375371480754305118770925162600220735056734388026418262350424115283643225920073278499804414737399100892177550381609878189267298857297810197537765068089696006855417986156138709861524959117205424956615183783469207904207284940660819075474815870382544304022478501744747631430108041829237420371189245203680410057615132996068153585546789820198242105133847707843821054126946276060770417316477805295185977177400321497330680660697004192076012829480644702943936002422118880020402817729346380429623547797461932807027152481374560295533488664824217167161298881595962472335895871671410788577826378231476836769547081616456646975072065323494030877220855533665626049252251239285879379370105471067022415211284010904328318344801443701792551500676458420339552876804504210674631155431252386969326766447493153986856640170738742206221406889046750237728275175101613541288563321344749155715964490849527095273727993302915031773015150755029167402476664167569687062827077058628062743740258948019212914337260739136159113229937701119274550093456662366426875431041715250835255435949065178839172684268345243503995028409391342090386866709391330099929695517987618545381032016937349480111347190651529278192370836043197741368631395405230057269468062532896325899010373444103132285081366294548853678967865188317349801359219310530780707271671252496574924727656565909961127306282339715397437600420221767915380946991222537985312839326944489611446763762479555053148442443701874109677943290148098355565716728872630100096086353613558849934810759955905681511949381574501009240856653365673933253944516586496338594004580569608615609995858512121391963487390133709172868177728581533159806153317281812492318136745417065599539205179152752160022902080472176477759332523223901017280286398025391890089313312061381818612595917169969393404091162815954944726507222237081928434732776958866178556522005519000375705020972709422461923637948135511938604801208612968402392519540368559025354511913825268265840637888904375528223396658431026671415164542479032871697415823927728536097485716644949846169371371588635531235999694504858757624888230886582370719034549098041334912839270788663596105412396140025896907327336777279292309682303381210936746032347072804543470580630015201424007022400908466075948176066844346897114704155286120660608468303228838627630374713055589549712890311637501910847430720942532147106882100908888459089806467819002657051032854959428409451232153112471055386747542521542438744086736565746126584763991515751224404269077794897721351578257941650380972228999133411993281458836641768720939806808708055132103469671956871502521801448754658157591372203392775585144912461485847085731475563907489846814267093930666291888093767876452853156784000673653338185061453046574760867743317838937841248332649775730904607847187438186310361907887197973865619965937850551303162047582391889399689659326783295228399459301917385666948424496349537700089589752892850460745029495240664142675060207358264371527835662905157754606648558866543287438746696811900638131940617942701035589973031179512979007769352980227303108325202895067046583433413779331708784328558577358053818807692948672319609497960485937120880849028321079277449136410414299500213664573882608865628618456483220030971649657130437736108686136633359176907424499097680479513089786504560160478306926923417847773840581383569013761022820289010551689684574873910656693326938109849112502173544865533047641646679266098238524160467560663935457491122622728599460526871729189586475092695892597112864437984146882331049209660988985478950852189167516363101513832306362327246820228819917443411623154560337883617026575526395828189730744950019014152720672108342376731814291246385362390019652404086568408457404969962451510800139707917292264302983672190718519411365356580624645249772403654383502052262832695169176518519412980346464871243668511555724061052332589480581858368445993096409574857566065623110500447021109828810581266531808497712067973917135178194757260112970965990984824276957745418167363971703778738076199074128608815796601121726073020589491952201981290988506261402558764507611028585739637716211226131190400444689051792476741204236622374339920677462932247118497115053371359527444693581087768428109486267016251184873000602287389364297016145825942580057528902432758061962016313432531565944940629447486058545155711574538068919349023247494313994786258675985250011308748222542653956604264815676430025544614617596814959272154434023007492125606737250439674148545723393624286421529500215243886171181023924332185771214613290600615843391314849018790347876649423759219923581158054218027929418192090518024248453253866474110086897803960527721539552714058220394623892527213226523921707944716135577870856034838347850505222107697295841917543669902615147726047581753015474035512105732022845717129177116060842505331076190745216413464418096087410242444577368006777601971853987311759916664523873830518635058737336846287253300863472857153975976390712291615618521507439831921374084898763900669765700825000131955721219515075293535176601152300010929008019821738853718035703976480112387725280237910236458831168446665124669177892110786467221411640248079129251602633358647211668304379708860329035986655629855827115118961258597814154751436069753387018778122725034218072914863306510462528077832913974628464753612771908556347920445578268423960392328596079241915455828301239279354661721545835766111211399553949298862456888482934464105848531365030771456002430705096277335633599863977247801243479108563646355419253424563796502419450864962393753278632603902149549725376825550950307157982229184322877936522966816909829351338410890490049456674721391712741115403212740394041279016498449027321667111395549958327649250605161561182310148813092922695193650764106051188752799560026583447246183748164077429344798840697414824754707999410584203542372268392507039924415642075295254571001574772431638090873529291256092478282191961571248004209076924275554795170014820791180735114656159402086143705868412516850073107661584264439647164966282933078785028687845533061896773405542066248296006872119886541669169148119261172353938401589227425143988632073269063755291137892150221242677042953082964840596173720202407643470527663720600864698756825454126433271882359716633885718661478406096359254708019031185241665204975703096550517744241679276935677316273541889434597084380356622344378361995158531116249694094817888528094071099087890866888622683292071504111925181661457032545770058068595273555409201074667406145690962766549429847394127712488058778134561013952076776165449356118337426403251210402872936234510453978583189897038040309178627287989353157806668089187742643369810109891174409650741611912489572065144517382284053168177605858748444489279132164718050201331128935141359389553555415631232758115071109054701497574376017445155943003959847613772741450020100601752649253284579500822943139816801232485170336384616686186170154810714840749319401334050815017690135237165818183527545863304905419882885812503211187868250978708372349649624091535464796202564292558683574959105172172835877830174899251990950147960785601057657523156483896200825760274102324345255974792210383851789562101044208813959261733650034072021287670984717027570851199722601032780467271763566551932916072110423118231644766300610531619120006243210071494141685143880864016320931562279527406552562886665531142524784888733686542647910938581548118139297216871878001130247816728667461554403373651962354005534126531090220110839943874885106267030961469662286247752800433577520071600403379531438094313406649143697732452540859776855353391847552467763103162757008515506598372046053143672985559392907957869844092299278040405673176330937463362968561112411271461633867279765260213928278808729588363057542357857230651291696615894307474912170300158736756092524188416598414436754526073647615836642100128152690880505061669017400328966714835443932022368612923709475953182502055484019428708575741571598770502397383009146789421650792325104117459375878443445723312488824640848224744290215336732236751249533870075603609664785709731622774521076909032449420737708072838194336449658647662598663270668537433993477612898524403431447922665934988778964213062412232373334880666730796454942317990161311194157419205281721349339489823824585160067027578453787049422223377020134865101437680742515400807917881470084273075349477084759295965980939210875592499701421752960995833535632081632425638761404230700077249232586132019913692386579615431571754184476215257209255706058623202543954593424420631520931608828510453425177337791355986429231204392928675731075534754482911969581597008596742164970684040233128694344656156266224622617569170106783329387286190272418944647662485797887538058761908092634074140567194956506481214245839768452915422242981763736353167776638397785619061737269933535433915571879391145186490524512399359791377146117550971021415647314646363422329102264385636518388377455205865851394060192433917840336670319927248763304715690806255433433652599596671216142004729890793977625195840999449643071934558053559207072889428596070725030803899408666299148325170580234384063544928654592551461754081754046613180451127969217717146646012629999488987712570087209266724483640958294657357901170708017691393057397960240593320837215717437153718058499133466668535382969830786350422296544754699884292161064412945552500919523139217783223704676598466343732335371833186210113790862687484123004464977498387950210654444946832378414035120433037956795669646427008436737925020469217128757104598737021585739709745627181399402215449019028085751682945016156924713212310843590920900318704982936832190543414275245193336384258682846071169850589261873637578392024513699530744780716694694426965198504530368117474994452002384210285004615328437287195578393580853553474350530332303153405329358001222206128079210497507632381020742218451307334613782044029596647930508241223232919869784634566232318973310827458704907891603431831960090366190061480486295805174551540786984684741413042566247595486469830343928866577500388716032025626780608432801801813200310841224728578345311367128663101547350286063436718969573481780590173949877893534639898154679036112721506321817754051656879507797601738178871025615180355068941536955132688615923739924217079605509296019539305339394320926325713251899585568415686799638364033699372152498338989686216985718380439879307774237327302344404530314887580357767656097623127791951766486383803107742788946744863039883554011621033152957272425828167389851708030109610686407444700811158828577754601959981696071366838343284247632886759125175177894921311240433326109257525474402733467730967963781207717889656828526634542556163018423241359463671649475441405736986368713985691525443825599400373046103143635561552447618373802018885810599496623207425263008071611924045977368299615675929464791833321910105059359837637699628808382791697728629566570895064427454146695342289950409030004353985161462276461453892009406074411400300257775147010841529309657221898435463595300601370312712268776416278654802069338253840382885408316292499406622833986613720993374214561871092077616140851988444703040469728137246339259072780456313850073078252543885856510962498575538718544892442737922912812204793905110365688262226100406161155089293393688380919707226016785856834884315441736606839918343904278835185569795777537742688255035023494347499486413743031163542277330219952664402295798426815737651834193710707766603853020121767098489770361085047867355236116300431701961184822213788875105457400512693747115936373379855315603665875887836077280798507670085797181920559207515141469709470226006370904537746669611908662451305300960159285599923833719752529907603424077917160799151679647489320860346360520269210165247889365224069425696979865909760594655267104882801123943453558112621231852735036721603580859898413500506722716397378393359152376028404059077079187177890164084987712629446210839534001269496763531758380956954359628614280364908289536958967008704570156315294564298207803975133566459563848494159763892371874281662296456435684902180312493202689313079570197549379996076154039744438570325374269807687983712436550408283822711183469300239825120872913699123532797421969977305348643497770047463914329838367587154502237361181819924415829545316914039279258675834389404854568311789806692196820049163139972233808242917493997966058207309798168826610982060991267835039368344691662504624769559549722959852038719807963411214542385459120444646954029966251362228880900293084523576468164802859111035799192501830785573025113888176333352475062351941439869358487832274248162995700249880664539135043915740058332435231963436308751063799371114043470107634782902441244313134502397883783662619020816490118220827174702105315385340843704098206082411040086787192797930128092097974658443437733094554614547010097866021402853908258104945834742330743173342715018783624563823013728300403031697375088389455226370706772451255578325611219604471937969508147128603132849871170135362641484154313873127582584147654975062638368809842523963484703299927026807900746817721355748639576007326220940800916653449474039274922147473837184779056948699289757953317204322747089840801159128131847904023879460517343298615203601745731088797445367746643230694127240490179520136673943923410167055066026840843929041733724014073895690817300960768004874338614597347560827048701020827088584098597711700672219404705796558785959434667396949764977176637449637641913535076386623161511415381875041260904289566214540951655947617882905759021085700566614550754110193429996277718685248998735070593247037619527008857368597034184898319275404393861662123208093867337202566037200071671911545292392969432585817391653481026749404303501802310386409632754332538647276147949819853432445824900285971736522562713419865012039330941897948775914509936548812658777370203245571268244344686343041193719370622647783066961742354439191415037945201651330730786949620270982616584714035695553709522572413568698074979577950720822030506609771098009516615610014661155984340975499065709513355679015506835835363360210558258377507345013117795567954273896166049831062869318563790616896407991896145067020293850963367589671135736787023156887523567260332656234122190567187821334652358474689976878304656511004477209784190574141841293086237571179789522258920585790323525205474085776570998339358687964681894279161984385463283230028145806374439460939907262092788502131178775641176825974194337674017317586412192599742217583673310815396882561765510019904286829284474908151893040737974677953811775811466497429201245486075871447445276381846189262422330776235988103837833631204742152136078358595471002229603888355083460333215579091842899538204009016103735300378536613522884599054004622531874452221308159710659408705972115693828018781630984968039743922090702712223776063597501100055912399164016047329319574699904573859008277851457648699343541941331059465557889085344793517599844291258228758277161987055990613554150450333104785417839133414590651733269124614675694769214027739731852651156899028717870283097294667791575559744492537669643224772347639458473786777349025724008989004888707842374336745166211150143425590227257926998874545800845324851091748936550176431685114599632562601627828423834480257167610410580113192079989840178362917189754811484214794507799085486525052542049298020901038543682849386446049661130361412925038910501148513231594993667450585343781791532246099839559109274833200422686983922140724535994383766777733052027475944530771425694337557773476620687497431438865089053086397307013100914658333234073518134163078297968332147687374435934975731734798782221046570452750738778444139669658587240452290229716350216097738685810283216657824264074126674815436619389906433586813266309616150533025586967571101727629334657596058207747849044475137546393093410325976634234288813509964236664115510878899586115305950098054377802920357096807802801907386612889250399863842856152900876949733540343580962161464019097386939067610946469234068525949566361748300238179193491057618319547424117566676122898508948320273428111619305738129643783336679440610975000190820953157916467704411729359644744998113005803576905296635245777389998589630892253704157091402548980714537866426462586880259182207571288129279743611337878023356094628078455161049498225362736127389551972635294440391131237661770098826460480631889115489992512359953330625782960592873003204698261587652680161155755265781203731221580988091150401172605993458770320365489606531024837926746884161006258793322379544595930168536017183945666817678419018521851491476167857303158194790048324228851010206132513700197994130595528380609838846737766679330899237653735945698471144184512200121076814633892300419574833035784335230374386440569778621160877015609735614177350644452500769538846917864756622085125404657978435810669826078759990827584879827304509134302294936914085506392976305685439919928114101588472889202300972390403377653922958871974822480846768073897262997003393882733544618382157533243413890166185834378774675666128214230999921324690820787108418619105022765829874282780201018225170322788968304596060956472213513723676225996144458510483048739228630820746667694061206054979496960909266224768037160322890427261357674640516814214337472824360989351292319928269564552210460170864385789597045966423241406558229235634083071805633915959126596424977519326491385949780820288104039800705833754356161178637245696446042332916626314487248041468050015490728296251344138866896073901434037549640617595520121328636036092015877526244167180664332329510100083054093502682301634817630930425285797056031373704962930609744075254674044155580646585202441647181339441129769388654358860440419712624130940239694890646409774904546683333142770260056721518209080954628986594872907952099384985231696229947491901212216112610190302289966088399663892439688694349194772887904702422937313138829650348908159782920357332483814762734344336088151863286612842516040267304699634252606127455529809091172314420830830948875726198249327648719320384411253662813199028834419526511724682706368303324592969604028069021159760351035293902041339740093928597089792219434842004976609247028204259428141133010587286668792187895656497416975070720006420388121119694565340821942920647383420310532648420314837897497414484426028322160494383515847585210421797054837894434502373050944822936962962371393035334957196990597298397123655455225352315673733401064392507579953783182170600057715221542172717154566832590287858456952748456967907582901865728483673799261846912933817709132164390182086514252203744475056724204301072726691314892580153368118356065453357436361144487567816523932706945899458331252941547189568342413894303671102921036561200726031551462156427904535709458489171266321544307289876544751732401633468257583462686601601695157721277760625251512719634837442291010512876852549715104218264868306565041879461027885376200052417043741480663669943002170771943350459244171308513290111666571117721138570579889090986097093780966372381626656742012796262825099911712050652673748442097177453317902221485395049239879510382131114574918452351014290594915230280919928815602180192099412823190494222702237126547982346253993340100205212824027297574974864077083484429033050658599873338893378873107258186364931673358172450685065133749784623107775164926932149295143365568798821327977379614473262582854725206980466560884398666187881601097443011917176608728503675941434945824181889091021531887557621046601537177571823275970346839576341355459840276365114406155172822704778529061147278185113255609258667519805844573537900218623894488042140156882709748012614207915343274592156925386970416363060405039405883192622517231182717269343138985351067771042019896038500007318801332062302036352948367705122652117537296364196740948287449438449898905341777310133360906502714475151115930372333375969448674650644973194007813039015526619789314037137095384494990271520381306259021889750835828816766621370479359535608486540541822370360478950643496884587108376949964142555063993398106684782817402156208160221733344458926493224750112202965685085805988819963015668802242007207604243917490366836284397755184740608827448204490490968530498994047907642674824346304496432120513251598619505438890517422146421138028142431904195746940567275914774887942246501028872328983795927192333529407329838877147577026809123062848306843487825100422601568029492068196480670664318429345254326695247161261628764856849244416054298032033435787083915458513134100026995966771763897796027866559897118406430599624228008014130113166586330582623466303658218144366169876367992392158848087058772465406931222760455951246645463400715399244267812680150659148215433940104391754731132496631545078580446417790961353618935911976124030861142858788285146578261690243823044116843987909807654574854357220071038390134161950646047844453651058249767089773107560302136403862599425007284315485626608984060479396645655086283594051074403137951746641044227175700166094162199622225818303689287938793151184011962105022665160510363460685207230969753910875668032097134409753180402486685080880053441385792212383901691558826750688394730718722721641123518887113829222908121863898009977135474326296940480810880078030445972308751755566963728989906699404970928458555541142979643784407065691990990722487889116849634747353355521145623028315144689288018284677293210029289413920073153258003512225437431590481535917889211526764182681226074648077189939276930629442041605739058258407831085258810978473002777676597753780796550183161194783272710059662328248407050872138296255301171826648848663975844357257380193062083833297513604498068587388990659360359697296475449900573953674054126551084762673895308705313352565453079592509939233275723508851859561372441935732418775763828392522128181378025058115966704870009364383168225521928711891279154553837146980479717410259023268546701140322719903380485203598429810127293710735728285728593591932969264788112277894401184854633438642388768620726618947404611298079549418867432747033568080590385705363333461716671236761218543201936838730997477704804728841137491548620186332714101861623314802623138442026462348717729990878134843138630183025202288662649445139533800722353535160979267216636945747665366138031779875804323011171665146710241951368820845811676949503070288232037929410985016833378778898962506449512604455959945055071597783170903585342141240116502514254492065094065771953513967923911757676107127422621789413285809158733688346254472041957521371548350677383719104471056606227161005781815753071931053094959348360535681973455916850301199122167620277765550366304607512081850875858907057754487352450569760669341960176456152818207872727444284484161376194786868859729090409182316722584400075770510912970629943709075991740378518933236106778094115733667908221679042370808290765159220481769521653586619206758552279130961345214029579754489111657296763759892683488581930408932341753792960138684741623721342485545179076249146041921971024552879144116258160587238280893441326794461775068049040729221620234204858927781108776254297712272334681864204498815215753183997192270742352248449938065535630630052035988940300946877403359394086784245203904034809860381989725083671161611948450399707539035292860811494392449035853372967898405385935199425504927983734487355613989970805189256499380746329320978867710216219993930155814362218825298471232566847699762733009154840594821884832316808395131318083064315271367324697257404871016911193697783676125480130453783850616609009977106343008091595911792648161420212710249914448635572541384631179710475633801763174922295044556988315953715076211226105108663393786773512860363649349126255544787639974785377356894709934957548274881242488717249640192153977727953932378907113195268335070408671142448963145449097264238707967673833033411947176252718944553407727731212176222762612927576133475488900317467933516403645115972615787271845424310167317942998412501413854949583427564578012308901464004726137363214128083325644487762881621212427568390350969586133118762147018037401984978027699741040135095634328586025581906152924617720257216834095492598553000387859579200571129472086531163885737697729811402034532217961918916391782157839465920748665571248955836835171397873233669714013767967633284208501170310761333703658653590112826429625225552726144870335419516003781190002218960318533665135813554319830827292786571585032293478244238353286817040090061176245416840414873100124123121385783255137911582566040116235497646514068287134275468560872088412071190563646959019339027945289036607775731690878095590648484625411462917010127773513522936197891345723902314071181186667618536117210437455958422903051689089914701588593616812072908174231131100124891603931156930363336176696679224312394020332117217926770150444151412179731572715023409225657161415429922962073224158026265803374406708977348190905502209144114679932841355927451802330075032105856975218654452232962018837245326903893709025504855390047295957286442885233078922378567886961600544333280662690375123215475718163800669837164125916388712427608282496895690081693269363844227552457131742872666834421953611989542062133546528350488211162178437880574588193566851930228878960434889498116758708448510817426222960765284808164349843375724975543032450358358199848434377425065468373014681397792906093100612837976002214713343862779378086868685717847475019253207029105809122570928014889802214287544487440255920390354107325634100118432854070799948749887584301537461269393459451903237384926834087736702779491583768794789626489316212923959675855754105125851350528299504957461850065628511876185337878995387777666286849132611005494317524862389695573072882429858896195847396193898740221091663807603814436284171276079201020542915167913984170281293626542570390141439118857251983063482152489399456759972865893701636994195902430866887727849734336157499132652160274682893258874829158807847901360325270633053172034967457852112120289105620059601987894110519243143124725331836595430136140524166792363135282941633420214146602006031300760990788965298491259537639875998056529793847790632764664287658987155222059603065032680575640733932116858168925951450893216740945257325000058342754268953121663392195570548583716732868720896091258586403084604300282984441874509378861097437065591561956922828708847793846674055036025702079041801843898679283280070693390237460695153852157444590378039209182256027781107188294916462647202634067023332438657831181011024997717655348951643943063931180353260113304112088136813953401837083054487168005196487258417012856703974636068146131716517963023250782805840575972236947615117194681278011983590396863692810478193057280425098992881504839731576348951802387029579261943952872036177117027042167745415330468039106991630367854059825502642566705784664251568514809547605897917428317079532257211055399887330484906614118983208427633346143904293837962791016664879524271128122030522235483439809597775838084934761546528949576445897381374002037435854662151558954682492688537359346474737490547858378480369437415718421739496803917453185319101210859969067305099853828871339234925181684687553910176707165621601299437271305786615413328955952222546303098765032980093774491479077055882157840798752346215905717197438982861220039836601578999638794462936643495705580574994896709137903237587395641416910186634029375227988132269391171613573809896376006499528077903341003291093311322000477696361028389544411842650259195187269024436259661800408581158307616314712326082893415509180815253156921475932294655730903999416456999430906855890424981829651072969349250139988279275287240669530719288707357637513936585796659896404688970112354921801575770984839431614115364172862028388740734230559947464402909537854783401156090438661082251207416541227406508977055612217932253784816027174647749454029219821012316157841875484160915815271386353827293317153145491289295369801017301828131076586233938934131868881304014556642178306649957814795572123554066042550654837371488836419651690335615725730413412116759789794052625928770594681688883118806086655528453582087716139335345577534797017690937425107647839282616790502605716430656381081316481936005576631225124461876899073394949409667217330542339921078181893874096607601090127468347097943391210326623366394405987581652226259644431029599933427307167970481292098271950552294544599419049484473023933105127486396671104910329626701202074277683096372384447084380607229791724885254843390195725230040775633041901215946229022598449717914999317048724072569305880377358557903939817122770261126374666290370532927719757015419915653872797896574408112176259102203705766294918208583648697556583529412075766965919109066765509832457230290507276005974738057837536872884406469064065979796428406956013068353149312385405179655100573716717329940762424051282627857811101069606323703710253672799140665709518486349812808728225170844029322297663646967592653522706632901529426595092927616168594154549251065155922080763017424867842091923361008668539148844653212733989634375594473683000161042723424918101763468837646563404111651060639610864142757438417468207706990836415882073646981759490918616267764787756048821565036088282196205507191547838696816106270502889730589159760390844729019971462260846661496608326240560467925499822921127913055846502113976708491434807424684121298827378359960933325609245543824367852086514566480751092623991536735513708346358357592772602703539363473388651959572798815406378265012001230837123345033716460130498580928516992138220685341817586100634731840469096259276156096222408259057114190757587568575179614886874954422660368959417068709813231727115405845560352085243446663356150987824191191414133269320545504707518746520612043107869808881621499196535575217965961580428828383157126481497421559184971147364627615710940904583876703611569838420880203452427266587693824277126677136380156819171898764971951055425884699359860200752491043079132707634804153433913035161334344966164639453108219283467635625395493538781577429261981191829453665514419787327223879626057073468140841837243481247938728544267635878817085843857060994901240023589479371389527216642873689176230451258575127563212759284645052229312466985809893716347310704640246459015509046650876289867991397814192024496418308067775908441940780576518938536390358797695055573142498954025402851273397989052519894809056709908908078760887453139754599722038445306598349915522471403845991273128196911202901306098460221970869331027666957451292170899388170118775624802232998283924518423783835728348233225784368989699032301145197960361762944624114728962352116435483404268762212234926558297228136386649640725303893745318977984546694549070341474899130341044591384870509210200886138918867003578272568832554886634908432804296383989805529765397117023840339808735859469061989342598389093028544211264278435067251953831053174951022728565826090217890888611750643036525575917338300208688027454336824694163800340125125961303522451073190158796989015417171032503630214598333286124091308716456935668824528260477021429825083774447467993025653999751281418630090785994191402243424139473478204254311471431020410826381292754170180197550428724842185080690248876777523692702445277295158718167586811643629492140080241934650257835007523353176786544789589340511226461565381525293900388333031556049863798180548958828570724386986211746961544373440038942979293215972982022266950213736791254102635191273617665711001534809498637988567456210292515855959667962732904782818613932548005244451123227679965216201413069418159818768415013664709755278075994827589564288425022780911067247639432388419673503106738339570423270139293880885382682060298820737157932863570277966078246603962627913248871929375944144903059674720929713705091656848783310823644759704650257278266299088435563259884253183626586865088278316377415792502285869591338417322470693466367463906027258726062176267152616192947853455106779417046176329645279511334056958977225769988765386878921988626538745714243576395421997964175168644645483911791027035949687565004593208732552955480533048926547438159769548250929204388192706959359101059416466306140042280649755875567319844457866770288389280766046929843346114612421458157626027198541366883162937506827170276469903571257059857043814499861971621078708407429724091610052380075432018788587798138124997257778469274392303833647437118615831878702135615124924090382680918530397354317387723637912393277477290040813159124240265282022926943104998351202830354366699381832747598252546817463556913515855581829711929601268403404246374869414971396274166190941328433213385233558173334031648703530676075397527990263462944219811993576098666615227605707925387709513577782714030373032512659230967095101176437726561708798342530919383358363543490669208836485881566794702526494655932130043889965925800649376042177018441710026304655165731938357697992904607097966044451651297090982614244207386237550083148141789090192243582159502281076663749638239757117518655421196145467579555428195077581923674614234616815128293150613754592541872813363047566511358412955531702922127346762307453053965213774580366000096785702539203745295882877980118804917130346701613479341942830126987421643437647304153971332406996010976987754576274844773324638102524645287802320279651289684288112577938295163811893102236381634334506989404174591760142526375742560342234924140132634782387218251551223143850854307476272410114062398482497822246554703973212318534607442190708590157218992432450400818225562604273169174520179112816552800278463604432900561896009498139809527324370195792213155423233791836107822476769518500614900076130704634106591138923299686356597632357108470329230539103120326036319546364723750349145657908791169868243500578304208481704531051324601398123244471647842100008245584469531335057809213718718085288516903970856968343472940285625155823657355689164196669963402938775712010804863254044238604885161425732710376347684122217815409513769996975009191996281125747423110970979430350659318648162069948737547919878809805464381051723024765598293279375128130504836942938048830740677309418877121058819145215738786145632903777846170613930748220684021918298570079840868449154530429368990044366277540889338525395982912318430468523743215196105967036834795158614313199490259091671954285003656941924815747099566607631715240760353263160058966209182105300301841202821292209316406063049933392221122170651445303967536519944934002677909141730529959342982353943615993245967866674973774036591377142098508845636772092115758519558431655967180658218907527271927601598351345101888136945488634121156839935092059413006255828642098182929194114558059139999648618859735719672343400301992285318579128218242882784289888820151451958257915769151837101705458033041763940423991570472798899544053924294464375179506337513913395836403424419992297677066469404620591813713922481368136968317539961558755410608869253351770461179524560635929202892176805769794529998643307922978527454154940655174805068707604439735061652261198653919875960170694230188430524250432650031310540828770995635526771012129316412576093481963160505139548685462134370790195800763210003462996015035769069500265605319468075388674340579824711547438389614596216672700294600707790813431756872184390612442721555141477226509231859651159757985951686926235062404386050240906320929050443541130112620591860415215440688269067734351125962461676253172525474129575978031689537701190284857879595535825566230350211699782916835222730071405186497915905520482299014665875017598862296316398118332017208935011214481624070727859141803018187772647188229551218772019188695327448212004895780544827798558717191768465390543915838323586020808882328933783846124052581463942910886678150365941249554870470109826792060937086188237188582809690059392689846580173444564097126750543439848215194711806579093777958476787660688695260162338804837554335917755033052288667177907661227152697643439848726088717207867008439988584377053841622014767449959176046885753266444601693482563239101592711046533076777001065992815458674501862624083459434628906814838983725355963231151521490151446433441906445348300348065747710117902139294408474644629255770750358517019542957408079241755453300153538402970038579767450615343920737690119641980138904903250859679778077986251050574959560722159986924393235168614763643730397555598349015640409983719240989780030911313890940500987861893359887991246258282396290760925342931552379364181698886522467084336652806310665130400063692536313895255899908245615137570712080897995187728707171733369883072807571547327542275528515690101455141554285292924568273638533810275647093481575784645624924329340003335635216509619142998948117815527987391057178101168194778587081971276541138320680210440650240734421765545569610110112776022109200461957659885534641084649350066565075780535248505354080505776860168700751981421361768840166450842462486687714326338102961141175674922485400411658986406568973384402760073318670041466228863465695827915218345861481843869511839208106761718396713894385675449936687620000830517764582029879815405426014131300415659719146671428104917942821688466358200582046133408448159679543404215943708334866136577501202222055570319475605891325973058450020006995011842363724915907398452148956436880065472700203464228014511458226983417984561986255166367937154845479360602736866212479824525596194273074934656563658274701074470651862310198834795462788974380590358584503493045070708938324728324475502194346652985533842648411682519128206125113499805927124800819189718076327414390505294038626194638612992245046304161178449683995763212261114379231322441624394287850905870690061137104578087368847010167156855385664938410364289720923934313312132283030229193118981243294133035589936311546856739016186986364160600853571079001390334574213499806243579596970246055597557152552991202855497823034689031835337427705755178032907580656072252582061099265589145381809158637266266080422949264040342726521332948072672312154419499366080246844197248725793714326545835596502799470739103828335536887028039004980467190514956032464332972678608211728125497552008059311429161621499234145358566498001914749914922338790346928537621648287866169750770553814863600612966573342590469260279554441792688799113540663968775796794027077596559407217542810054533151229973822446190307948051853308981009825920670185406280697205178672515132910537975385999925794231954489643718054467606199810316254169790548589819933750609531433649839127174994873013056116246350348134613121296817075323968622671596499229811313019400131733447367043680536907818824375545315713449794047799009927461200195448048781545523628204631201426257666491328590765336953375641006907710153975368921448760846171384905425982809579271155917911502750232686629750755937082542234628993007428824123701036339438953985667133407104810862397519768195068416112479912695989846093314183603207671886731742909436537857023497706736394198766197436605734336099385921020858424386605137960451960270039135548565504354104184377595757739788856322112145995619394344115227324637824583901458365176869936979837600114376932624407841357843807645204083529856014466634168001598690029500103997672397008178891381637311890619956047983327552722280192568600113118559384222986582819489529439689413149988760352433959709815164567398066938687192711506202604622952721672116411569734211758493462989978698661872980404972258294359670609771327817261347691583610419835110033410093796675959896642342275609789516676970746328943262762764534002706713364221664174155235098152255316996282528002761848128414034246363323293245633648882606110418428937338330571421803643330005208965700441078953942389139071271754288152730924418461385334094854953440502981407448759799410718591060802009517453810640809474956546975625644322778788248824627062220089609047429284864652554438480709979806467060270957559894200157311205972033745707728358081048395009614842800187443916353583731180379331267863787942137226888435699867963850870871518546991702161124375623291568480900733230452619253242651466433155292955358383432375974870121153401826931934953143052639969382558882219218531206645020233228663556062857018985334049996656002933639587137686858920486141067479657253112456505684714853124365583030220944476329044977214019235653969759594218598042324461532801240299911979914935121651922383369696836474708102549553505764019358068478522079424758212552621734152140413308608309619383675273603473557120481548332653601870039173175614046201131466631374326193952711311623739238312501840058076824867461926275885644116254120277982745980774638847609402542028552003320536728531287634986051868517783688042303565290323366182500481287805253316684943473455838804208320297359514864212101294219277978643469920341063613007738460804671406887717811849564773717463932805289967287511303621447939628534213723782823419918917263351088643829244815937300879535824395338603495129993109699821122544968906523428793256434194425470818704380050685614400715591021801917710971668810487101468298996019702248870328897427684713830123151646324461319999811417582986395659458277062616084465617574251212592687415487059428189252124610671187487520391582701890416020058886925672641303359809930343912045302073826063347655436220643629404212920780523051515503792478043922240983072442795481791473956022693228338448818526310253922500217677585862910803402816751836535287634618561110663452483358069097633495023164786198762820601117022284756700638310164893769248447695299226505415934161927958976693187611877820649294684211379159532040317623848883348314721934824691900875383480404361871439363320296856314669615576306811511098820967072518924377783023217058634293902980857952990981260082090868984895375955844706709865486004967523410192435378569405389020088687507331700907558573713517569479738608538315086714627030938282694514303391979552736078646821069505340378835009128451095201153315357053113093488801351741679345110066552887453571985449793120679092413269343772792513047146911121529702276929270796039238159356030355627870186213733652123728185302676556444035090713497843062508353789502472732091416761561671638672267408154062906782698494814289598982536765310154263913473583284478423487185930826376503230463526748980457276528594697357718284201941645997737480859776643840850618478024299412274177395555916039176508689060434225154798387557087799518947740158109067788610127419244608369117425033587057703016214444816409201648682225199949627293848562521022065132408367943308733456723618641841894844568500687503999105837710806211869403368266839350711073080790842391126044624730197024687213112704650171805629184401301522429361009505360134499769578013132455170320402915256428090727066073079864650003076546318458699981172634764524683937901836491924050577200235529425319303425998472104217135433358464985233916330383559455740846775534478685754270992946534635646890736073381651314603396198684103407440245401194030067776840812749879713273958705868638532677443818671049991874212240333906093290741605022209167197119834331923467927117245842452979210016685579064973422647968898087744708572430404070673528079714936422806243741954581773922981387156844564454068300028522308220006090645749532838265143903163239349258498757113773841105986868764492308983957031133052640755262322975307332638454877596394334599702905189578514371725412723346892864630377658801586097034777092025786418041866983637551206163400916246198794004521910651822693368902115952655552489035223642021575862499053814329629478304010068761610840506772388192707971945052029316558936374067568702420207277578588946248635377520718284880216176689451994390207126191352297266001851393728875695601636886535027550957952341707558837427951430314959052143908123242584894458908700832559064885214730927590748915135672316893289346299693522634561567786182599000645960029188684769263883450353909533659381491906313923161687523478082371328485420432655357010881137333159976878175511212481395869929701978576370725011388174110554348714013478443726094480266921549577345190501742886196352652262221186289194729260430641863162984564075565488208139386445206348144007227841441676335650901893153112315392377115499606343053469228536093229885594961514658000986740414941218988432887898220105118299983804442979958529541617221268810163205202639081946480276618781904944610250497749716633267680651533147711638688639525513777095004954983696571159744912021584142564446515127136019678712576107739191014688457353639675250045988290751019560034153357034284874523149949093364121348797979076944889925821951518046080564291358717980615655707504812865183874746945779214709144940485118985015278104625636475950693093450370094971100220876866287199084031974995771702439462915966417861755554422739222826078422758598069684081518009733132096673932208663483277633547183067321533468963376690960176851013788653209878405421454974276845591082750091542170166318063630519661036271851162575518860042734393882521759925827641225353243472553878312809558423262030484896426643009634689363509071453439384004985665645452152882130410985939124987919800452749350356586046570720045029806984169803001418034608077881801620813903630103815304046649282352070968280925500905174208759378862947060788435894817684970428472797600002506129650728903954112542344322543705419439826758154959417059212786633822111944145568445393091304014484953178746280428423864751410834092274339497008637835000099398400516159398253440735831307837310251398921962655085738897046904577140316381470405507097145240457684063959463060908029321378221421210827125851108483645587698477884268733895813944685087664403894310996736828247551797967630870685744766255664352765254897035847398930860507473300405739089279833170475397212686671119771615432956185581551571562081005060657498177615328985686975269274165450004796268100884390339043927480005582809261463879791005049033742764678518268212315184772882195486696174196350763404162765533357330876255504699698652088160768638471658747646254055591772501480705711246942257222809187347784775298601479917526021134927739755050691292263151885222235200562300085217151684251021733013068305861967349107769679031292909333156254229329878539638507691257221914127207210592926167653964934134112155763277230671617186908979003322329968665495844641798989931634231598870097401650593669204761294357874086076815139307740956686020925124229229212321128873613299854802539943124966498367720394395095061927348473552241270639603618063474551204118843022219902517912387396619619346521444576000746460075092452575482931986871605996737711373570620302639440103548714633184338088579871419677242218619970762874608654503793445365725501796714680305492403890777628443361600238460317382824466593353617449879577071066974118948245742313671214077857944765700683875256741072226933848395814919456701703242307853388879040311948236829941571154608732816790940932032616457932999860950965208714255668409638099069879274148228472695896022636739519159210661173777712685263994712012528600561144562377762224146220716182597019111641073710348872435992160765101719762944613311468685305497767868634507256941504091744560622530554820585341773742561177911289079474686217260503838226077633625798107631000095079862603771371590930550107918458433470793035532601600928689197818036937188581156467441482491385300711638696578633940279599596800157470606266764355297632192900921866275963467964476922519084685709595286929234086112313862276908489078521775213378014358494281557391210094553273398041871672311082252983114008508768261331742016263545502576693676985441970408641974625655059458527140232477762876790952827791034648105833878809908288509304433455863248979069743462355972465572421838982814073012106469963019730323224790258002001083044881148657604607834026327529398015268304726901556568538957922871853739847955946667368970463382880656394688956438010045888888984591919779028630353962097505707230625936814094904620139921008658927551971474151096619413646886615425710603098165043921229911138433286043319263094183799949872596325237769833592688330056501213703927768037953897762711458753118285200939872258805738829816192682088924616231631784909345440196361080333156840016323503562126235507002234818147467429735723589899967143597291625459297321012364087144422956139530716361460564435056533137631457693598172090980549119516778063458837586646723188630937004845235008442111670980813061016267378680060859943309397410013582144537155696863515829475879319429935117759584265713977517184794811303456019259023259354692210193815015065494771891916695750522653385279080193905775472529116290244438214533034526479318087265983016807389279140195581112859440937476048813791996666458970076390733162135101105311337525780355017238894962599062755789109872203885876648789264550580672272196574719321696441889564426945071580162710471056920137400545546996936394745027122747931152105005231584391687921345928957995624152282091737958548360399050448962871173100833989935820896718490654025289116709914642539609232297589986852629232461124130452311438210588839027097325835490021267281369891017774443498573782804436496745277265722449534112281398289577482058563977196761036495424565380692276624970883088257918088656620034264599262071122858334349969663972727504087085334899422871147150982059927729965309322114774404048144245532251089428904258841226868325311001727607167827109463964616346725833118060114070765695031336627864671553127809337734737349554135086707018127804605997258086862596217558926421937291363320841211632998652835798386443852954575075744243183226926910671526522911588009445855036393345237452947315209789773677323464934145627797408031602127086383378973491423212028921772010526774966057688165039209996980664581343622877136069915103943365369199089920683895324655382792751028393181537910785213863564584065261061270994453358222083307431636445904765078615784779746352460160581244711437702529105578140613296849862023116935169608473330624609941197252433203146533055801448440418477128810767201307164458588464532293493401213271091960347351578400644586865768563373415053264530442462351810145752434030348385861189208675524812868444381027769250764036812101644782761354689457993765511523542198062367750817877470087515602934790524252311340616367413663642175077542455380013108920646748519182419259417550756275029440486627015231075049957019372453350688841833477501752805619852227031957005119171485169935293659686779594802939682198160035799514777464603028408336934816993439612924278489182211418503415695854715164914181110094953892047917277391635368188047531455441386121567947126777134814079822787853946335279031682856786386102011717827964520547952371831593720707786108628864868109008275172942233221857332201035589325372288149402924768783661796412065259343819454118816661247250855503704184764474863214638003210095183437308924247537449976110193896484597555496382625455777065584491931370886837175251593799049325964645342935418482474580581276403362119978056693375677976786634954926501215927227813512289692908966973239834896921896857677345183723933974716598178781864091537160751259147203023945247234464322359643332705564545015243472334005171829143562881390668470625933064778320504599236960473198696102415835509061094001155080969933719733478822816529705268403513706836277634934601699129735065163980133364522563102101213149052668031490105824818002540936914494403845746608170466445530479816998366100392407419470097976117426352374375402265255303447136532277867436620268286541982895213265877021003571270226479928913906986775542046710512055564924312003539293274038020165069427952590663840254147493303694878734676801145520811547770921701859038627983794401775388435729892404452937050025551914251453173082868194814725527458063693222453968097489021079009533172692819471749428586878206749649311991863995514273370969013216275875225694254121643555840057975960368130561326508280976694439095921606920211586903284401271522874707624139020866585324816901921052769959658633903475313622842244477158469748857542631206010837552563881927251353406118378122068978104547471116699073661787721156784221902856891556821835913253517578916878022409406201902871848788121731422190740860556268077738437696358908577616276795060860118644132135249193550419536957579336906597026555724587269253714915675254482834387650629546909362724193490823246695339898825377952204891552762284184501357483560928357613139544110672348790294683670067199919923857181284683915675341383293291228242533825472872711826126088757573794458493449091361673583847891446284050169937708157460832913810636821507907330311904318711294074092281923611730450020300927085554784039445066360927421299383405807043587714851653781913541401420993334950018899907574444899784907430282484047143454426519972619925688146599116956644992201091574176344519333419589647357182527108569118821763003562821464734769749339779429149425805278581165885384592537343769219945189949887684471084707538769215941745974240140661976084105823683314667718166485017512275148407492391283522002159938813518399249701143161689277615782882825165245231760434405082362808603412804858712797459303513455577057016377701843628899901010322760240087013722109421428066412398437337362478399197443227060038989012106776200228854217733810021382809697931738265455257348752215706572133637875878345804669172494609225528177834807478203327391285950759637275534503012132410823745321807770906712161137836445327472286077258988479384773107398915241999868343834583241054763346303032107069690673732333182334994811091157852691581916899105006623725670911729495514941740422235040652861226555941212903837443930761181876744878909055254781493637991483105893728669672075147568719979829836632780758840509733886611479893313954383732320155403112894042849580601652764036555381870161785935544916969282358390727329619049889332737778570269827710613012408640396996008218960486678653509213705012724810561382125467034209018292676888681138294024593177520529988213372369734506610446851154456203299198999524551736507972334199255580327001162301170382036319074883357732643724899467028656400003488873075315413370718328342386579199897556331531234796307844554452477019585770287172284510713141829478362319212612910804822971473930253603737499074901577493838212027547533069648914744800156033527510412245339007151044095087465875385062862492268102085726550262715320574697880654407996447252446405220757883849083946050420891039167692840933215091067989989564151133925247381777791015587810526337752569513585665662229439063377580009810807410334407309592822257429945616949084149129593480637716579990628242535938532401177014595140145937082364168543146556085094034849692066398376074109429356474126485293249592693671257067718498452825235823163236436058774285913085251081057206173763772170545862149060853375361562713854433462934927316928183794111440449509396001283675232771824145740913954473051975713894880585656900660370877594038934016973798669577655516681693560517044069563363594488871025638158022322569455875508546410084257490305819647737798942958293841702625019183724425394864063798543864232657755569736340846446935270457738365881776272118647438808046351075086637540844373015823434746515221700156522046079959055066159765066130652368038894211492954161532650461832308624314416837853571017011069384643901060961722021217953717759143336776626798245650962546963851417760541496027395841227884643595198663525746463169369889008605459734560516840224487929942855963598156334610582909688812480173595109235141292096907846207952115979662514461949410659362448145012673321627466489904876065736684088451001938004484247323174048083739317229441306430734594925727404525829546491529226344112490350467237237834726497378460097291148389997933431177001834438808965415182892929724899352034160518505169669489006372285581387845862519010896788580114833544807453343249268967808080296637678571649171783146219132684341536222382449200167884747835130641048166611965462916478926794162003152267094070815687666580821508464547982496495314097029789815144884826231026544269672324550566111927822806475062016875431874206541845360839866240014586811603952736784993091129637463629135165966502437973224682514113665019576973438696104557141663211748100447446154285612172699898584670015433410946562015475179051625188943137045875666336308242785509333607889440928701128663115716151036812006591301036805536770337264381514094967389397098583949092179200269477849287800943943621997515637587490006052581160626589655491290816977374724394567970257101028948887584664224821428766819387765109484647418379947447615374303580820463712214264653668631941766819945270658937083708997388209818109599250032139060465804606783110270517143559766065687066428218566683381714165932772635526696068077072069890525906975524838024855952489313518326842864990725888114557653918118305667456680708464716245916176886212544599844309593779143948478826409631183156933636210890670928074284597801825201764252066145938937215051872099360049630818103508928069361558542804168726551247536445176062522108075320269847612063757432969878972839445293747834437612167069154469952650779472361003409838718088117464649483721162580436536059434046833221258537188949413012400796071022192981237589204887092857227021435094473122433740246443262403425614367881605685619328659676428884518413937525086645333322958412954298640781974422054543425477223965172736916770385936207118445847217886815522466854860579769748397420986581155216077869895781640003188572006573884696094627993765735866681721404030212587900210468207579166408636415929380252497675118191092918923873901364679881104681788580347697947475075021750930647162262939508816559373901853608298191800410883630611184382392640198845100257211869465731113046192171885918290013136040597223982460980415030595231811123273308047250603786970200906140062058192204544184699798707824706946341279127273719395239451184199686663575491478795174990033496457896988125616128863618108503049097197418126988888204080728101478583618327259021165277280563948224397036445952406078220978529996405914749925696773331561621487266177721421436594504502356687842300381992270393281407860593685668673760591004976484807669903221258933277843817418993263010436144095595290460864264423840232499832375328716601663125418976160094047256237390803411892411842720311148359673286918094653501549497432006690091879129279170793420066475680046376643086244829619075212389399698754228226164432282227588287139006821349693493328269209419075785055782705180412115748971560828928516160375719487074134087258976603968478427504050035904394612578858029962603870847305791601188300844932682378755036018751900132060871656106672230937037721652101649518810017243752591104247270865309700875289035746622668169155249796886219683323117635330675928382004113954523854864485274536787458639470277192419625987905841884845558028499060947940078211867864764390977725793124507798006232918773383668090563895704636150455080437151764546051973290317626399767425987405203789472239228744398028412166780567826504789032637813662440604896935795721043981363485144287417319493254996762912896207628584495074732552750177206166662377442198906484208618515048827925382563212487715860799563840577834001217693823923934557043520741783449708112959135570949459180468713500861516794706245423494821201583127781265186676252812294313331836944444818527905132086526344165055723635198794130035007130722358561075802845328125176976158421036582570921079667967668108600299561522529547252763684596997057876197443821403969110649135120802118780695891456117522146054486274172180194704172773541959121836357345840774459560144227013539730646409276183843711831587104617393984759257727694973080755248289160554178628788503280264901861431319622341451853438822735520658501422978270776012008661171802624032390618571900488657747108257189351191170097134514938894144722885641310109607973097338693456057678110912683342261881463415508794885293010481570215599105534664068080232933669674400387025242552034231467069851887716643169012450889440555222606441216648976907551204719602713441748702620322911242869635333427243448038274979685552827095340798782016641564870488824367391522712306770838122194924188218197851256899368797507829619029469795683810891955537541064207651560329081411786651171880779077502730608290154417678683738627027183176145871096087961408602438774626408831357876018817681918555270264064478127989253003434149796330663025852265506620067559303675569747709727838285188427184385921141930285646302665265609991873585354166870321076850681952163093663444332136100456018324312396052811551059518934945636947072090836193613011741705714515926472489292092828996915309546710033792254768519619138023398010042724744828571657059045241389852309756540478596003681593756787016365941321477636649454470064948656517824304326782882254575315135737946475187563300219847572225032933928462950621302179965286654882844298758366315178234370096092147774759117093047005958254047924905238729128677506320627420605679841928890173042043326273062473064121893508450201020822093692689461491784336960347300007151483766432647035123088581204947040234733379498593073859585020936886505048502130024663658046296365737756583340134049973466794314484075929682592036599845183243866161919980442160020334867709422830662290418096377952207669007511944082258050418864584242923153111325869253702162932640613764371140692281945083826870749606936907790223607617925888502915997049322993653613111655127336470534280688085766368870075911224629658124361838342725187327446531193869426059576664998437486744633422560703101047115096848265238022224791776489843251012411059424014523204962398441119713138403634500619262235970925735959370575960352567473724807446989921917087293280644330011879098659983868682784003594727316397643308421041954814712234414947252162488292396207403510849898645750980821513448358112893260906221714677442125997226373530377861659898526080260816709384465252559609550203716753611515269702120517788354310438499063785925645274875551069722384577051643770509084750288223365161446400493544777067760631964484631931595026503448690524918568608431993380275415505149069602429296521217668820005959868016517200085020528528498674740548405980638761330680226294183577357824502287209885946719956439154170446503454275642000841720438428128698755329642256802125674371499642036344261199070572679257913665795437924159496134250015576837711220074390231786133729008648037607880599656909898669703807424276387573611416797275923946444901129096019201483317593746922940576043172642147791620906689031635662049499637831717470270646282394841278719360209322406619630009794905086912740971216576529805496048744132580733572526968670824872873970885069710834230801713252688500594145725562711515157561968137880134562153733114896339707981170111145031196459505614676052888345406470763632174606892117070813426728644920504002187443699529116667755681601822319029744601222810395240880385932091376415344846954496691805807636029492813221075843117985226495227757727507943631865144680554565896443571573991010465735574275967444652382397264984565833463477630256911663369518275186392980282521867804487990440043925697202076834670218305830093754693135411392627966958411277347843051739539890822922254680971123748792262187821486113468714138973829851883515746387229560129492748759674171054847538852094196230763211395424971734307559234238837430460942791361570910443267038804815900965063718618010473109214705834467188495198489830113262923197266556692279015720362223186020129791811038698351748870970005237227653811038145251127432468271477051931952122431845763291805150588796022661070448940568317783146393938278676672273463065706290920375019519406580013908138353592502932448529662766781721421126602555654201421512332997214231740163005573588519932859890729583169682984870280769887977472900115396873544715813007001424887363280998483095011678363907787211571127000504108437722255904445390272816601247985820552947906409001517905991385577232460625586434427694469452837373477833902663473922390313829136451053997538706121973503342122569988659278207256275604960259820917239398501716716949247714716861939518857813250297539646077702156215190082304573163422281244357902828027134186346289635309466767491392752343283197449040475355402023837430216927320958918412801043534178924870164444705490186665533608755503991999600188036419824234025624436116916604198565278956104970756939743200497431210808198508458055338407585395868664689096905618493287308984926799782131581714387108628108372214885718348318902129361067325168541409304060409730589753556303817871889983643865302574392185126178699344568099442302398060546571773988643440167090317858188550888853672581897496318691884166328364258307069238668962834578329587144273965348403476108673799051366349068755693526648717727104910536633452068789451965960918484578171216464090836605733763357248879891876321345965370454799801285326838881717479662075376577278991622333084607475416621249476438370802877270691113637992974009307967153865981771977382846362164895031397697486373596113883912823160204827702790187882818189944962117859675763849224276271614153357664266476810377943062986356420577869211281526984952666512751094884967499444687487323133212387928337817454289452441388867599959202245766155271461226443569822934038711888401054431453492136101585797466557457274250815676410062631985547075731980373208597181359590513973346052499365848151757077772464184617839368648030229523683219398075701779669726504426022951788090034115277315311109169048842150149948636577838600339517468149753399991568336354091155952942595252075324212487004183952585608210032517460998326505742473969161816651085351361870005986715270835017246636137438888555477977646513342182788159018443030935844383755151466043374919825799363958603667245989821348431930606273239561626533932869637849561890642297322801736439317721097697367010407258203380930997441258199893504702998480063202017513716690507110697156613342943069135760293308525804393770208723572848162799242961863040710150020209941768677280905115094757693325062870827526002967386901048644731955788543183134050623599626421457968316615186167007219329498727815088367220188095177762468347512649739753618062990190448262725569620091724515250995804125502227532176034334147491227988935963437448731523429719068576648731331229477116590865939218672581209864579696197146243476400116473473894428729054346114752179519230071907113211156239328072820046637132629553346083176779241363606184041965408669497759943482523458510432898293573468241758734198860918366021253632475101168873225816887172963745816683325092988769340009552772898237833572480021392534365419827846653118596345469377991593765898148597428067062317143784838038915912652118264359975740836737285715600018350175432961607027435230407177796424206795753393910420967863009882250945250147737146060935196010562516197622942933744839505634110514690252462922174761291000881265880143494582692975204980860437353941270464082244026639376075941297513295677753612333278163324314963828315075074389601368916459803296918812288878191290338158095125761669406391252745460578702029974983597175007477891982655654894311156065611474361372876773494237527939687104314049452782333867333258683710929767772325928875410419726471669453667854922008321137569385011699253902809332872659675228846162324123488942165117527526652479708126571049412842380445592283819961196655940753913134117953299961136623457463031193727866674926151463207556603660266580531335177315231777513647790428750635886954872632250725378125476560101152024650896502109492808938424797975999142256228671828503510577011079202136505839896376858056062956195381259215811276033452277204227718739532110413933249872528151805329865278087906359549786153028339002878310174365936662094083376433430421673001161021907710545005288214282935055748955452571606079518952964207383408575697732153816441871976616779936814666600397507234739864893809072057764683431631941666575907231264090037717298339842551540721422758249236162389531641161794433660488134353462009334693353223168173982625655051567771085951046178752719805818145674166964039770352811226558812502057222223455186655371930199693091661281143453739076532604309067243111456851367718988580539094325945267653426926873129617518487557519717060686633135391346808939937453173583355188876336987410736568129887499372016221792325585391355132863547093085066768863364972157109818382374223348298796257479873483610200735092590131830979331053986041968748950981802918151733671998619612647687096540802496843517341876559642263241599135598228078783404291466235183536684686168495092972436130474759601013465887029231767605565489126167131613424249608161855811094441105401875159311781570779387791389927381840943386347935477331960016277474643594744888931565641444912001252955363863556320575581773146060439282351375255246028070541307362207576375315963439078302009208869185016570512650725832102456461559874119461428925186898055734498919529470296096968917425478876514475868951174983529763967777925796196366364285192779504079191585815460082380157091473271337401377214790954608254585171352193397894559558052011197524710531552267434768102416774265132618583150644190508218445988344227973763365117319081654406405192551154517471636911213063317655700379870138187669777734354417675038347810903462295541855517170760348407419051397179070646339850067221248757151494464349120206927699517100946326588256100159388149324656761066439880996573073873899634817159483663014363315015101162135482005395656883066389700770411548626512666755372617225091473949538814850738235777056875178818543175431585827733321322895307987733784360187111429937724652967327047809635978146115897166754803588529658872511911354908783777266020768854486852605015651134965045567436996429479714097745574683803326566703448268862785327740982353789768947536679768606899738378639534750851646760822410835899231406070797172143083326206021940550112702276419982162768419454398234645661190270827243961537872032915790752753783006332568871566828142903879795867511321281434981816386325474882830975012329544656605508062587738173452387734934881322548893309138857193182399910612638418185921000772713557413545046067473613119881870589215038438989903187162777736734170743551593593558818525494649343740918932606844558386769129207462409552697654231249220378419178306984257461924697749962753369389596339262711908926543242639226066237425473633946688197650749095349345074560285503358497460777754867495082535056818201417825907795462559439630751023211608875328620209810870872999917008096205956809181899349246930026509568453702115164894825549453961864232131375452260829919138712077401468604332260758887305557324607262495479907000300809466139336269919440896277169352938367680440501493471629377699305009830379418774280258032586492211005341018170558481162427122996695872310198915996678761922947983237382350514328239363645656343568453700860224664812957051843963089847689971753934696957471954647729021553454660360471003435846955603917778081029700901848858172678697910541212377152164654257902015107982805381317487404191665438420550015968734549315362764321926314561571954446671295474760571472231835119363148277674223914226241506801174159766035426465317979506365036116376606756811043110497319156350950029930284754613615343596136740403832034679417070795841458705999168949215813556170242604585997812586106816698633174155260069996498707952436236886159847297064654617940361949443796073277462225513501822919644132110592213473944086649164525421898291894449401469859156032248130848721924836057476242374661281308535230810804709863847952430940772496990667333913293491119639399152856353318189594719254603002337990278593991048366498110334979140741003026953631969796134913168930326696014902693220220155722504096961354284321808064539371761511430481527288219239301664670773538206501014825779945721856644613540070878538388275875220147209634758559578827189900942540524070181249704511486877466501279195118329646086247280005572183904700839516577649800754357503176903103041934895234238577663305074894150395545151058188937362080488758776536893639930929052412767164952285349373088623021081521495084547578420643231947196612310815293810927248982877312391647667503709898569676951957786980560495685616686442620174203205472684369934763563445898065065981943424825168434563803422396367306307604818280734377239677304848644799810456403693956142339004479719208964322624047350789331948199410324688380650461253292634941489316315820485322836097406033310972177843515445991135101703907359768468822986088210185123401170447832372069603029011942863731845073179409332467092524389592318746683479479108040032943593250883367980479363405067093903598129768932258538759589980484968978993341831808966565570572020564311327982248084069582233903318274080678198034978620842923732572260496595466809215820306348538019644844554856862679923478915105248010827652657322534122946231560274117007353975589479799906808271593872574562016038926972287890848347877813456496722201581075323735203855838086679431407775769744737697046223360207444367138716476864773260858622417609934027064392664719527281160575991654706192032611942750542978817362927911104283225359343696867442159297022805933941893035591101317750225639956613927412146209942712021604432663589836528717609053802142934328480873489402666303374249491539661312371502911729192310559019186675618917606396956864496866025529947280200701368222479576023021218988460626866340952379338997950120080142298587991039273873231548544824247573276409575484812160549621972283209388307866153543706050235977365200241078435831445387726256676053231660844629967551793187847871065091799242128729762840605700839522669703798935769142111804319393843091814594366206534976551389555014186002180802292955546553450099991170866458719289948067212153010108037033215439812252528957943361630004940648684654787907908216123750721688531701211813322243194130180394743058120194338663247595342486409222193317860697574016062219471999792190832709669797409749205818430435576121167867659426422254858417142144802318600961921966348176439415019536230606715772168229020075589963232033390864103049135002392349224604251173341698491487621743405377064550919225010327481022437848077253647076579733132840514480465969874133737785084166913899636890652560859064298876439100402329469257830037824128040012680090625951489354051026337130984732660532837375355796870369848211449222758233781568449121964040031945442254642722673525263528629512842546408421229614399334784665274594064632420721468412892019176109251467228411715262891688800336032841790975680258511014907585588378309721014783861949852805001568690383435155322341362634669786249218697564238826375494885478713326472220970997713368874901466928620876030835810708842941388348375412189233793356907747026525098300152103611094077777183910387979953959398004830188800392675630009543436127267255192543849094834394256366496164395305189130998898875850571189603546510414721505175173451597524333086937530471595189536001073710643157462314213762005807417696058851779446739866386976978121300232545527614575260925977237693667801943525825047256012750302223672275656128014723439312340697261173900261574859919250943564789720725412933187505538316876142042973616128328979294068039302767201897777513261647066075418709169802496775249725585780180548815587151386253991883660428924434594540934468281673237884741541768966750396418218878995751712963380240575685756708734750212484763077230349359145132753075064849083276139704304879350678397095122544998103456038000936730043379763668033272280194408693800074195849191213058157319347597498323851611001934806874382067103273573415287688408244015628346278621626797607092138657615505661436753609941994964044973106413390630392219003496479786657198190087453977697284344924413090817072235193876328507960212550337939672696528469076568416116771187870404792935988836560964907134762249952754945696553828980965823068502727368095307396168234508083562762042003196417051216879977932723996795205629967492579812366593938697141261018674586285328296588230160502268843447064331290863859839384789042497822029409935933977995485597043022082442707948030170706800563487837910650508807339683115609787108515850942395613563803557655654440723894646195795865093040741024851594539504640113688210018566178159403252342515160392924610982476701668550538147375133903922927309272198863864521392264478486506502043588035688030052669648240031969324387977681037263129396249651708657221312556162735767458847834639589978923003259102497250954234490724803091838562998262334478312583481273011244076843975099091712828740963449636264540221712743813260446076036257401665882240750648843615978966641124016749454426935980971470064067813567135536785356874320488979781718095359052547400555286899659065550128535674947576828148046533327164583039274871325775281450649221193819827093817752267362537737530355619220986043633005968168711407174041689566464298841871343027826876455804000012816048543128403648691607380592553997842547721262845365177378536835804307161281450052602629739964374632186624228573156742058343199852098497045923346148810303527016972483596272080110516133799095304969892465110647853575319487059896012941024004433303470022227038816510100603528643239567269575600639722262333872414852164860503501770633900351900420462462417453556588792788811591948406454808209175978464664601522389906434321054519024053334346226948146505516922068666361374115805477028326264615992324570186405233917187277521242426592862222998652367102182708770938023134415866362346752326819392641362733989950622231219054191974035820108702222846646429271413219278572541550780537044469719643189042418046404097422220431217384901782988089056334373030429474302472893787277036905694370546924004893028838029705749147392651460334214682685322413816506115112044834153250420049918311804375650862538269512920441836654696447544423790543434134647893692664875353842244626124672315570078017379678118533562079486802739187705680061812434432513051082953227047979002926701372783258747789944038443888413246053493760228450689712453008785687470012133368781660191661150377277395864568483668264621527613456292393891673221996511636385343988146344823280950683690851835256298112807304054794591177209296823376896053071151601619218276183117145674741788613472537025742403768021182088799961121457656899026378524520138049657890331835424940687843290743591626838857923457067079350143384578970294979403425815763238534395122613581997593755301618021527860825233129261083618383259729078554490103411191274051289021104475373820493012360313650197196515611058183740379882670889359509942583158210965577525276393586240242816564700237044557166171003318573818285025187835507386555024965135311697682036541955110851561125239026027579575649195785600807913509568997620547202299391840023017265378719427053557058729808666248875849385016298448267971583029895263065277210742232985582022807561734688116622803975194746561127379489711013468800977974014080926296826245441369273245730352661635483540079453992242291163846582819858711033914429319496709443267399156404830784082474694410699181000956199949963432164518069149956025364318212691530818419286322193454872029123667035447767836749162809706613041515854855600266452324107423218158849656747505998525455444634072391085169976315565943046966688374609661153648908192490123825905475477694392878370535458971469517243942899565384646328002416035594132642624677689134687084325599568019939977413221807007175701853752313008499450035049384268976171481639676325046760002599415030596571384280859132737442605243623726450056975437933114586488061734434301208505126869114247612134206140713497893896616862386288310757094682920510275336882683372352843098202062946994204332372093960242793674605620130591879230065154290122598164432709308102996174286768907226672254395119208469056717850742816389462034016853749155947413458850883889994203889972020799405565789177947525958575133220132363171969808684532693950850379158153333375076621176977991165244778681835987943837098183671432227827149441708255314768999252506847720353961332224283631669918522763286855731251063463110354519263957099126296739383902167677706829692825616339157561263398836280429299088528259908467865639609808888849391074016447175387776697203007110157939909819945662387076443798510028065831801198249184208647255343714505252607445644074840539942850147447045837270546460006426291417770237903284988213996964190209177944180116581850826528099782236894785089350981949997589659439099335880212957975211451484819101225355485376120495357845241793790075780309323274947157873518484896636804032329014812408665607906367759969490041656207359214367840438041381049453259832678786511197161449606190484931513736985729016665286168496735836966733543992446117624212109625744891278922344425703538609963320511732685720072364252806634332494543829644379800738516175436352481098037119842922621126589779190452867867143595887211959054052737061891953454266624471719480951329974039522252184630879755303245471054761240539825128494538786908689155451787277992760522481769537300618765679062979062872689288365250149001610662726608358485117845541781829941501147749379072894878422694142070287225485159876558484855355506450278771500474549708841466336321995773213254121329540752442984164460598824283125653516520756631149961150678331813660084836121742475012791550568835762028763997009984003357256782288273949863012230023220233527231297707765500801632424563080366822238186770648368872357414168520189502533398924500726741699443959391493274426456192329836533998154093257298964011532971227637775222132588747001519051703119993400116379945401662514395879477555152832199568783349176997543123242948625280768358891464570633876289054786749550757269858966335483808447855785736203722648251339486853701631498445124211161048964745599821898593517555007607371659788893456294677890550829473583722796214723764841262889362725119363961931763143359631406913370313824360130460365342264285257568867785127551141391135635088025556656210992956043086610578019345731879357760424395182145574259540039098397348876124327707017131061753464470868628483585540286060715256833918608327206299741397505010871375885313007618734641818082267339772890701171926045685245020593351149299917054602525133605903925855288333656134576557970786154891103675440954323488609736533452894378133302217213051428805734072110298775301260925083916257516310903653694030937979558921610252385896411915335252578571540392377231893537004113910395568793863776050827561826902683970971272082727847600811920539114393714098979615593834306511262299531447639272054492147606545827004875225878223645292110956848775583144498971712540021308560460925853424019586016638392552552312575110350381472848280205712069080889463214776713725294764494922479237847987056205532648547519754551378232968529491523945478556008053590527276669026874856832129261418790512269865416637111047574068226840957237677952912051938157918970378678698773806922318259939916756196637778184789510920694048694053601024800007511397766832893453323167120154911983558187332991475984729908624969120014996389366573200328896800940087167616511209674635027598436475240358152129340249256744822938422139319542987338262191690686344084364458724472543903118324525725624000320338029289297424987168899302585348952662727412990622995891515656491131663216044554539738744043374496216777942195447577893565055950439541288728917122897201372016921763289104912684893307335753678124340897875955232256557076423284844695652133471348615077760731176077174974505575758036370788576168972170634782433967318257050158518712120092509700114533760185575458661802429842583243576323742948329519105621610556841906848301669096517669424061484172480327568242632744636849066495875187929514870364343484624131617034018049553835093015670820242128175243141887005212185364035191685365004180110929252299033600866720342606438965901559753157252496972876910896373556124747601148176964620869117972917516575254432480925037030380850084345367040520162627993631244620050020287917038080267895407297609392242285068146465206659170776169709814821955002234412006865249239932109049794754330633176419921349093660224064794763222335433950663297845969499941281686350865918933086986830263291725580054622179028211354061060695156386493885320052403519021100432672108086034568768558182419321683388634655364430739223150032201982310744326537050260552605939764354490085064781949716824380342466482821739238845344410047569259711287806172563393453258655616294289446738382614521559012278760815950293201019296475067646353413340060808473811925516492006134094381243788745596440882110241371652675433281773679116751954493468423041988179348115949424603720664558872348381468863354816176174285884177059991109761398563935586480921884240253747740636345885270160064719482296167394257758483588076884391621403139287336482238506311330324816752538582113562699929448062651250931520427658259966200331087087141097310336138853755784908744053344601802919254648263292490591466947027453832727823638709829498846094945059208317473604753700953927458293602775268425659366218039981363069277087655431439515725749112504032469384656010651963519113033594757106502825198027656432817092782319234620334860809750790144347615283176163777835695619915763733792361467142832513255982424458111299508406813679792638615461774975764808622976527535742119779754968197087422068369639846930590328799233704757684154047979399174067252039238360387444273786594720402211739446363589532943675254191092457085702988982379652424614565480679271925009991569659177542566131833281148188152692491836713659634796820118356379376794872477779346760765138859009522682876312427039473721465128644328515431861063784646416618774672628992381080999547313518548756860046213685532061822854599049637044706942246217962438542592585004480892695985967166721686703174957083962197236522629288407604476539775447679767746055313029579388596236201610834367990796831167306326297201972005234751102763994010103694924592946986117382887687385140797115735371437169969057899992463832294001601764168163490320623211810394998918143407785993960067354751071213547463614064396797921236548625283435433828796371888676495207331994857895461704717044410338946309784539686020052176938637263496843084505746168454835321544082972683565737959970071804202487290778192308455982483365725677866455854072350267699597370397606783174694998960562662560040794503536960958275032933632944211366716046702535036358648593765712326301963607252337517349682464807049223322048704105316815499389439362839282758377061590364462612584478783820160240455581054887806206575203691504354605001359359444838893148646734643964473190741037956992068555594824474402782546321573857857957765741259812714945567584255424705446997776762004544921107085868694327682233869912966346162771150430621907003674182626329980407289516086724100664219642707177890234402511850694485113062667856221395188794555495219985634047299215574784057648407804805417166239543677165218251432236389453749683582768954101259249620471210846777793746397812488716193582748915891429735738004688356541444611700452570244829676636658078694741891015616228703646395384265190442564507355185607261578201570962519615388698926380986107146430761835349777998683941837160481435671847510849410961324820827455919118554534186302419641788377479751904169740929038766989159337759645827410741139515753881393371113222367732243658713299451568821801139978133362847081706698282441866178313080911734037384495214590232018152064182107623130146530580445184148974110937665060852545775973297128304096340919639221439916180502150936118020192670010121580842010005793122328811605812224459350862125898793617112040081656026047822528738155334745003005777410239763728285580415176724996092148980884905494039195613572057065739187709376960949555223110395505578539850904770889634095544091390781197173614196287212821669957860313399330309228675869235950863897355863582171529925582586456775253125939339898604927489937659161903879398946794294012299416750725863977072995742862535239008181337334587058859290142578712713691706712645448249231437440169385275681631208198937674806350117063743538095919779606487034285926479182881533373779363072697281786965594443851362334495856239438830874373275041701189007783301861579124007459925073683756470664608027242670366506188545727612450939299904063473645778207192549378012354410729633788551986767244337327867456207498644414832467768178288161519812921111486976992493078263782275417206516477051933085496332123023899826558675823310814715065995866476687512758456736662966162727373440991545528028053159805733239248945157276449860028064303781526568255221222192614751739137930395162201402642515886981912438377084799341798637067255233964776574135505061028010985156989602735125619004624635404555061476478203539452292698585125972252122103942709690656377297328574984622942537757874516628432416568938046933541435079305649850423771284760758036844517824964563217728376475152648393484058805076339573431210041342663565671583072651369610571045697715512469071657810690974835764279487657094424294419178591671189372642563049206674109065300373217132744151541929744858602164839911709362465448945238004080588275176619818849308963136214936661217997876389996361240931684658820507568622136205402241826219515212925330338837511498663374870593892687743347528045874249546604332966663857223833011508294303681415169778091060598755990150476181560970103421657280754509393680654918756479581212287650530737934370122742775498286027760103496703907772218256984983099522502732200008446368837895583820579957264509133079486849209875434167810595989793181751626431075479558304621448742368388531354269195679059794495654118160122826656254301939866049451058248859376392383116491106808508497484632166128130884429044153669936040608521138262737928458561232647133346425446611651876227125417413199650311057151607295448897030897711610450593127656243002030276841888190352935888267223577533494580335689227324619000302601213869766957658803301706286885691512807029209152377786135104248796853897834083789993333676739928814420325948777160513855718851863963277646088879301903972430265104594549677723482286523830538752756354478911330562038066450246947824958641879584724369527082026741178587659583277604683408454054577809221634760554844426633100622545777447907526014600620403744620741788884117314473677323611597734384684553652792488631496467106989626233968015036073387565813770835216269980441710830228338160170845305529656605190117623647320077482921940364060195386669685646771595458821690657431352263883991101336039100119515949091525390857826220512202833790315410644509178702116268211995001834910700361551448923548440240736187703023894060552863440942080054572262890341391041584660449884086235734655621739229809750168124578011782187331882189199907097622353287235658595390049601287954853943356953682411720700089278301912557414508068128579640480986011958401582731192719396463689219098303705281565179856373901024696342142956720855749239251001907269301513378473719849350758029930934023198604960606748575327752735124805220946282467187519114434639712927482901509159685398938904699382158864607214318335602769112748104377041247990298547590571806857914584090225611658346669425713627009890225196723778671023808134431368450454646853498033419191180410674018546881208512761881802194983786743475177720350435535180427548052906190193744591006918978734987919720990141920985999031872672951099824567710389863029261961547313249123195758006799260161812440544808601837596393314049129198677981492081104382600759232624421543930331187980175836987693585382986665242062181627420540187726356013290738576500464251149812342505847230492284611118380907906702611374906401390595741349811548376700115871634862477880071336404426557655245590101954111868541763076051469049391565282623793852414495435267374617097150960568051597587839336477697410058759563377555423331805937002097415777324125426925541587343116496968089757737787654742086515707374634185280017375432974634784952649167333675074455508802066747378114612472209943683901069579310027257332794800836373159808027177082249051991655311422404753371742283324798598441154625656677718161392412401993363350444790781238604764568403762818926086231565119300267913283750464762471805290541586895533416277217635256450144803290113695411460790139474422058443209383834056536736902448213981753712717737433114168081473146016294801543319086270736301066180601696480567867041255158062656561053556209302925516502720877717202248791592433514756289706607304844051702364870363412904360367420139698442433015824567075076732736707850778906104384761072724039513403519941743947595983012250233472046794858694397597642281241182550345155869354589288128291428268086658867096555256652209691752285931856127190730774123858643107697255872812995115372704760946325762878001599895664865943144109008346098163306344030699107133705728982444168183660138452330791765824112045889636165174874540450493378453575945357375156616523106722754746952790149862534873389684756611757911640721028443015726948719864883165220735809790996262576110626189602481094269414424606602450310640618999088409947079809450538533268277521917129001518818131888202741838081722176000858748445703247172343369122596506739005158020284978915997182324369932948770464853690191628318991932898627366838214860627890200443131545476629587560629852220559089948211164969959161308932532448121434565140127893173941958146065623626121746550098197834991391155324674524985763971668392734264205336971311921376031441838002190254920983177379411594696150532546217823401704455840205232261675858573697944523570050262966475970819040041074081179583206943503164742975532917801046509771044736981586498212839785944185670904021333065306217138314360168809290548758980178510340155741562388898310354678568647593241205750462850305511058322151709369230923977835899222680038758650738972295697163822622862351004297288702060841789380767987598427719868041538615979378988339898569195027229048820642535095618386456547449097230445141670186896704364250104790795006022427835739752530091185459360203902522410990748405396324199157495355463620785953625080498417405452816448756614812065780913300497561913750297857435879164546179838186559141089735218857180245329313414155598292311263922807220869101872726913454802032537047923907740950538990192370305705225274493023946592723003542259092281972270429863988200028195914639458876384974831663255353188516566902653671796976601916556984182521322631609727910094015728109762257470336459399352265503106279445389293067885096331763497022607879049072217238727066420364341577331336869554427901099289271616759345696539518817691855209377402630478293326800797780621859008293685851936285446980707565610549513013541705266888209292143764476220641228562552641313868043826491499454572028301919933499784652195957534157001195962229121031998482142397629157735121791678933283898837655280991070828211588251238286269569177810690689760634028565632291456755624627261364972591880951404554272172982055660949386228910422104123456509298887433135584764917010094044406625942578378353836777900824059089765212710987006717315227339015767026229633090673740899879577112982109258142622904552366731467173579342191197366612145677030275656375784798633352514514944588045110450205402297523796875715791636503345594325278906451411916450876929086110336822153556695123156842093503607162072313760830608156865428501976867377840749677976433934204482426391471211523028493660649795930047470470797853306208872934849346828573834359109621570476917287277700683826173812033494425457685675486294413604538778935191989262404866762126964177649547896076677016858779313716754424789935602318286945140538610845371616452119370561376595985032314582846473391615396787672801251703670127068731731025556817790081403593616623586536265307207988031769281926366703498964491281705361865644800122789290187087187470937260960724702920315929871390494231820723496495047617584341601873035946740345868073214165930256942172142727973766115312518980618309695274504950826737670612515077117267921691664850317429091901571170826006314569343738199008509764266319527297193550041020378620513108456862786481393720685151766711669726327968031384780803674735894920183487895811976534528664760993765682921477922123436133786935742409057319575919415695955301278923108135054540557993009984639618773187908441560629199996120637408175078803540915881433625839901052968227116490938143692193320076536154521887245853608754501124916360055863373233116449863566637649212355542084693281103290083631571134478812292281935883763039187885241398702183123796482107400006405054834609342119203292457941875940378215138136247595959024381871140196750126284732202020919442817042207431872948595044701418471566592215390273423396764319565523695194756072443980651103794425131985578214661136048231752038285285985502107745842658427844960771338619120395677403944617626879289436901454467373997895145112606505608455172867256582198129172322654040792407446185849599677419983042789949274214652862505634488176029308851715412249605189921371478852633909180173503312684876749446555043389583773805516159943932210215861391348802100561786770963540625118809997772914184901414611020777681743848603514271084578092692651486928469308296737180107935190911185523512089292919594330104003468446662986334084462870556087550953979203358468706268226311731591808218144203092280294297833095795266493224125353853211276139383015371084652809491902923403486270176407096334326964231650703158073526381387573485571725454447761595328212771622941573698346638871922513801080574749325244795836382145060924854009917854106169157179741714150851722273660127123473163022338223399183103048584555502005194425788823213378072724525128464783900600701323221937768951413293909097765854480500614300111603137687299546538719226952314239488733605952324112999635954282469781205087612937066864649629600950066179289733799479655737550860494201595387616924312115072221051444898581661805626084363750720363304574391401617852682593048463866021702748203385596327887238476889823895659818800368779817572256777021922533974192364547021447456255485988469314969872231684308928271735050528134121312093384405094464687390376053276539741119381260788289515155031417587625556434060473414389260178323888384333651051610036181156768683861575781772335283941836182234847556415590942113116266380666809252932184353562654025908312257239779271152778209927080876260006787566914495748457777146673816317299004738354209272228418338224983741365643307020991736324772160198789194740882667878147887363527504619601073275554415319437601950262622645160491269772055083846066444938816843792985436800523675541288219416470781916646380409196363451169235906871685385222376160619600264818193973099959062837551660690771509174878355394193264939259347640276673880136001527141468025133091676856651719825633594881323749519700404381277002779472968222236493497328182397738587914757625842965948260463439536659441829895157441112967323996098288393434806080745422423332607024643767226418673293472712618330086644132468698161890396514823631317486229538754298362136194122251264791421879372472262460688687302381206879306954402200605896072112921012708521555718897469995710836061367249805303712553467611757871643492289719079972705791636780681269198834771843899681537111061141719311451422965878943372685677574138059289924784267509066304078143416727518959638439119470872947560554852707238121789364204597044768507907840723473579066711782509336773504195786003076843616072418159060218714586104634903650199839373528379314291880841947348982183745652534442617336575423249762893794533673764486806258116005038253202360375337130177326527935524512842459543862179830302441213355141557283471322640689161700596196083711978729601716547154896353105092917161591259125841234304803869807200445063528706754451245871072477556225610215170389495272673087148623694957100097357571876474384291564530634014468733594074899187716288372170390973010845885429306077185742886657529049871528307149255710102547881931326281104159248768403300002226762522179723566203444850014069966658442658999883564592733811955805441048639038827147760575685737851329008320399229538130487672762220069561693432886069321520654290705937227086858534815089098209629739321207143520449443438747435517128525691902191695944043045328773680842417217251244949152001263467416482541704002446737479583639976796162972821647582459183614378504606445473313654579639405751903663977350411006117592004952494147687011553888188518843766931744125265542596137156669378016793263344564379948193184981549075529420059652960906742411643074639921115910166109402163010007981143369400210862038681487072492338181509999438666724356031147466606990177275133528283360403914964474221963952052663048368595899853180600085843809415887983060002087148674873717141822915392523186471158375309454776458731187662423418258171573331789726770808268103343733151195287339041821055528788082513906723181088669822137461546166619419552094246551418476028260001485436191337724979081359300609845897264459715374014200876329979355517082121667706059234594603223133625718566981832205514207201967719624143709797688147405806188161963478104113246643978797619881526795451493079176113681064990260718937807450420786630659670838393334596304139377044691277727743587923834936847868821797011139358086285200854199228299051419524882797749145460295751834271717050395740817231423721505738927665576774214499138086008007373203891678033587800677929596856992662383856179438344117840725583232537641567170175549089797258627556503372315869357742536375914511199132590264222141173774802830328228502459855117632626774378330391426203341680192481230828171175791617408295009704510364558570528456117947254572033001223407368135452696136805558425885456827571398305773790976264908950936522104708837219566059432217550822126602878055714257642238253592386890207560904142279848954653008020627696023604880742774754338302849271261484198154576088836277520469009308076773445515115977001724690121498370816595029006376328234068609111634239205982862658680135622796077793146445205467999430026641918185226633362427026903330947197789383478229819485929271542301465806273834122490537785349722250756449917394517346528297649955415277684275940953831411297696641782246541480176814828903773460770420157130524473987671307559243873506681999914664136003455833294480841815024693151427774872699000905050415561305877435877473444190956117869259384533124021688955415575206146242957273134874766247038798313535100099871677015406388393674375046830345198621266946177112549091391891122711506173193626067910588630717331985194357609187403049318678581837445782515244068708201261844369623577136069020465054902629159488408749266919616616698306003366632837017904644437685774036364412037383457693130150447755696613332932437646491902888674356618979953152015612605661314796870112808762524372602578421535497237237789790137015938655023049511807561437208045001762196158089403198289638887212851241939012931590092138023329089180672666551775335262903996274872824927820118800403611634009991342081743825197110170387961113233049424189379456760933830625803630536401882882973861862165870917129417055108823000704981017347031492328706243433248411146730614362839909144962049307465560517673989864376564319069610978517483523050964474582571522184316926854080694374378921983684440811584647864425609778554548869425596323274553481000292602318070257251209929671093661249871484754025150174464271653227170306865350421546426788551292171239900408780325435042598415982162826491131722250989043633811049777237142738765516379540052996066900400150359887649158195632043690439037502072205345055887737977314933873509051410072547614846307373828196011460026731417785606640369438228104914750717864833361111527034504852649486936342343009727587622166222573002104631914885450751627282141980623689344124912525514098075347368573550601099641303019462240613916832196536429071557902587037005999592715518310360098283838113208778667856286142797273518999082221488911937414888807341616405361212301080128969439486595844244246083485862935027060652043198790834406066455965954300289689602425568600337603203398541470360000834084861303782743177670440139218450745720525441405825062680640658319844144334679003265618865896405696633826234256809824892712605106929553934564290688625825832283204332427366255366153594680829041422313468646703545183902285532096129719113248136676235016069727383601402414319531068773475161825477242293354020466890347799087398032426365477045844842190292416624169119939543740980428562464997571412680236576605748940178052962622736378275748443294733308155052758387575370215007257748354575210934401827576133103412348013011987585294956508644140416703006652232287938947915023554909852255609241814364617035288234379436223568180159371094275536061694284344893179646815694800910697308773806001139425355777764581910542707470395334993257739317358743146308663067940009255074169284641289675367290890256441406815990482076247879851918773161996625417195643133276306666422780805315530516081176171967723633280340600163853811134668978460159085244382144558926957650244756549532389055071658391706425324064903192438093895070256530243460141559469800163154851520297076184607066392462517262408388985031000928966336272371664862588439490883425400177937113610297015504955583103019974589001813155737331425229768271430743675368291163023406130399958281188376324275671992402026661804190522187872588127051176958858532391505102218009656490646347592108906128810405445996502494327658349612089993576063407751953580555209406102003012652812275320853866183384919288459755560597008591745932699095280788519251330465094015066889837330142476808916118837640163135770087202571128066815459533482836990906748742652904035445759618451043463688106843870809884100502522924759864514213419173403207881068027439414310444751163643957506256780544127178783378384612397650924484314725240344893364118942249824644131087326353332194348398817048002768722984028003452316553344797704156592824872667414109875848265798925189715508292228913894833795739144318684679189078420201058034520706334305649567880440182212988890296025449057567522786543468038808231654607022782805302346347552387174133400006426406696361685598175049345916232663865359066930116067399854924318514294196186186423461614313732183226057048541528274614631639098397031482863307178362809628541888170657675062122555339716604205847131843779441129901410071301147652605395332744628722486968416092207557051042560930962550072082146997518262133526683431873047385320872659062456418631053350017979367178914135064741663229687329651737244995178371537640895985749663805377442731400139370247516244977966456747617932516395225464374171004602087126448268575602336676073334756961218074644701448183223593144723304673178920590632722316498252219650681270223665189054806998705570574007945029341831605165092305300208297840770194318600735814653881720872879063056412187740872488263948721033646468727149488863568355853377186586778849295101373252422532881299208610184534546300150992658847206498021722161459744264597249573527666691880514464736104873117056333342768270861987030198063835723745221334712822318427667442727402479897229372343875869977235823780234597572304341205801334446662239500213587054936968475129136543285573294165015385335358069678401449474208876132143180061690842521526736494210649990604715150945683792800238671470062651436467977498298841466940247878571645976279363672124983291879536018029923943594293744500133161909335322545334259533779523705237930904981110433649642693202844659400370805904931401029798794430761352070797501505279755320659456431469006137938126289119866232881178288978037518565925715181453315995269241740141196433768714335744229754381677970084893341330849611496454701125710669409820514017716658019039742978022930581302302162055576782161894060019944232365497450502721295081909665588719382904198111106239668581706924154544955970091859809569405266802945152640690474155917767068242823082071272121366979065894427296466779974165871140618661584800302730357960864240376123114729471420520235303581645882502480726240200034129674668467150677505787664008337042404983311340127550198707376199882403593882433171900744394836879132748185249840550738531209022244663703007785899668190167110345984698366233095682716821849824742139610231186015236690005845536118568220603132969333610622603792193594693364790386811247655148267368555896807812310716512722277575073864694574329074229883289571479439381159376439780383569438929637824992296807214318987086903078028725992995800203696029344251218622853477269256474465696612769298774426164799649487073091241454006719131491004628963603818039617212194770689879409841938741097692484508815062885932689261720018688957511233867300454074396897325217202301618658623014584576735680164731333827521757729037084033180475267403975831300784056147151382611862688948313451543518746388316941203701559901915478482296336676815384283600682046330441542945547889805678354163046212921854944240928245877816077796355112811493165561925184500871293058707993752506047971863855124603488854677457974870100106599015417373396594620788676009410779790901317842334813199014817391581927592085514745582951416079189111967607340945281386509093764277446128747923476340945942545655848403842827200274807948757743842612424663457597696595463203895193078373275696637153630071221475749297044872432801141855783888864041492681104934265992635848996250169186294895808467353888386279510444408038673252822664542595138583948721981900562357037504417540118354441104861589405234931689592151141435884234499901126048177776299333444382263602825727816100447989377293646628230945186218118761987054250459384123414192363824900736433898693925966780212864262769125569990501942376283494141441963303563398156324614881484726569376910262840179812997928144899510944908660888791078504194537613713612646912770049057454388415361822896042520054146622944905169424403515475816944616901722967532778685744173730640051866496154579613006315665130830026634136175250904867037253022870892548422285237718864274909069988651368594791027594292860094234725844282081798362355467333452536504236552005956581694986884267637093771771751185745759846097912844379048568398584131822661987788748180517077227902667634466190442384672690037970031304504541656184099488558065707007054807751315199932181802582692904353894981938580146930299397932610764687774481882924986765793847930433905860370542638915720176194377954719066461529876754980844689349211683087820924735901507556546003296417044993155241200136423996085087100259358439408588960361158305423672883225478369902141360937764122109972633186087750770991028839959912993126669075776816523389487642176776676292305120981360908777738161418139856215653609483826121268746492275594163231336849575111844300477443755825478680395651115046773119057543945451235269522837993564369368395713575952867876605155983054868053803008690011363919845787197170823345453913731077179756177325235284922299644780479770924911706379451507356244567515041632937127740719248687687446622584426017195848898744850147886894792675818962589028081960603451053936382883650653542595542618921951506973365716441272749803408852089189034710049172438525194025424558888088958111167142515489230164842365017670952040211948057396922185663082664851348689017145394786994029057485469046221336458581780937764481210758493747308979966314687409608422394949247970664942943390324188198776845913118961977254780153569953366769930830689388949694122328111654687829942974219597022915811495919193043572230985301797059501611868140909766186583446215418162282637254040433036595503152581278274694111129087022284680422413605351425396374059807142363331194633581028305120918552190751379576772007302550088351400372462730264859546555083078395123025360687466738053044515641911973827921308972068355499163001868597622485576560248699135997411627929720967743972140930952525814362405006910021375479126597294790783776051372966381918563246086294162236168741081710852886587640448585296841319116236966892553464135146445785691187314751817028681342872901426866214874084570750679416010321255340742811029155731575519011769391961294107241290160005203058047174291843763607774697011786642654767345790229733663647639218005536205543525946708819259818685391804114713011467566360830322008757011637977849419445993539433094419695492429565414978126048968298157245785496486301521036660220332613307627757234560059758167215809123274337949664204001735217090442391096087253989138983423221031692641940263743905009964749615839301140702544506259491455192006624029321980151200904990169209320154395677184846803551548005246068130006296860102078611878162084211835703505169030136376312539805039013887255354784976779115655132074283624629260431789536652786181515487464171486272978283477490102728981605199311561239887270371207634681755890128375518232546904378997545317658796777523285080631516587730826414395899193828819365703597129625350631961190642644991164560858710233414273495242718931381652299318926252212486156452037165238052754201214100384577862515033896891664980628880730675245519785937235592362376642881742550858321020342278891599788615224650500285575144108469580244702137922839756599987816571266788516455702565597060935500214378374148362828982344076039130466106509063824173653360582480870193387586410041467860917032381266641439727500370650002041668563791051066554474969737011854397490303951139278758991876697228506747013648712433952114868639320810269324246768497908745885652452789178577711346041983535889727390493689033207084748836143750805295045682329928251182502548655628407523003391933156004230673056169215291566543250571619583649364417855389436231396172620027185988374258431487429717606719711835801375658363208450567013884670776720285877093747970521898654545633493409765656049061066338273469788814201650425373176846406207726883501800129017051737288786923721475940147091720893081166260621724100180409509181646478103699084853894523637672544582273398681963694918907357821412673399020183553730515555067019457184676706170593090634947727905771531346278021758223941151823927573709475257495405956159749932527533825049610987178220061296498077561785191972325353475888490736403017516525996472764131504857216056856864175041540466834557147295299662365293246223295046273208331668695099997104345883669167651372401680871689966590654586349511906672214680678915564392040541108966523846676175362823024854213240785985319032775005563793199727498584767270589412041609556130389226495446196348109305338604467225848487960866525434607625086415569364707206744910190515417943366912642973764828670059986054182458948488502580560902469482170019991217527454340055187709611925149923941984704662096437988600111948848500063447423033175075457125064501437425234104782526257873627113786164283863369115256887491752934448856057984848003930323399313121238249386336645188270881868423316641583660092387124856483944790481072543250817254030358854197643862196497456503570439677851215556779363741298278083868511329527465079554529557832323576273456069242937495492067389612706477175130117779835945492967939576863980960084195904750352785422438400127735290204415089480433663075406600844202627414459033625767531993022356134876647384906184359820038784294952232198963210152360760025878085658028910287844813571512032055003183143130475457718442351835409641598015874529092196406836291515810830702625012530516585868121513077345300153858357198837378201717669756220974741531984639088832926792379784078116485147018125698796685418092402185926308940784405173602768120885000755852112547447969351643713947567131846916050179651081733931266737968762644673930539268230714011249015351128443020798892300644931124973061346469780134113070541630615121243434205004286491513781171554292792143076878226527040792226040789581866801757466279049664876336217253189751176964184261230170085333743589757218198253607128601024768093307468295297780208424889037036904993638923281456743800694252045059366285896062607775554776063279863125469978807180998315870609361994604540216859862380090034074665898717380593884559914910686964071523372357456790355080598174310447095055453820865956304031440457249683215943170478689052805704426959218406555705644609771832491094734164210944780706121321543249832796999558221809719078508000553896679993137673815888031980487484863043215167810370716154006430438023191803569408137778121610777377406573252610608858790256062673986775945199167756942356824092659717012435063074458629036914417289267721578948358419726214788357749657047714125779846630119073727866192634140363505409142569323390309070050367148807844674928655365857574324677267009206825031638424256863937922004641786002487936811703583086746455538317835288189819689376154676461987717064769133824492225278427105713586079342102989468499138599185328357199599651055599879883576774937176418936290537537243257121230846420487360878752881599369023948743042264191195227550898504157176423709271851945788251902628209650521310314371167187286727038991499300684662225619314099986265361336175237011648598969671003372755902782265754158169478792183223492666977704453237023380826817284671380297573447865108639050479523461560369188707495422593852196877452585696698617045990726620207980037215666830638512153580360388896126965786643458696547553708417319805351808842136944641621258771539301079885231802025508620163904018044805542125304521161239701016184594800294342526940992030466199279142612692595933119547013304881168118664568649848998143048830684918638577236104641376515137722727971366168027880731365110572695377717803502957278119475052440704147521662195177240978858755131661459062288279888635658082642264317179000750257404590420030200490671929705408518177504169648270544103345056779708850996051825004905853452400313761675956532790248573090981573688512971290888882011755125799390965750379972730861383535282377357279151206750826725256490622555159149027647469486764371172077154503697326606186328913262984837539995610134230051719013022546261605927015422938638783869764836252827330990798911960724207942715094482387502201397840470808490348623136482172055781337257045761057863306609592991288723986553107906388192809279080047307916903796027845546605019702762942856482584315839831111703244742378702980865769423674540678807915233697108829848539739734181776280814129033794738641315358839023258716749546265521501609090667646028378896850943081448901762065420878316667935262709179931562625680485690335125766688494146948928817379841664674286422817560719515903830849987297961767962592854728298687736794124206034433076023478765768037920106454188762631289367996178646552542492082736752784714696485453866725568614117625032723287074003492629214031635420893551210605976141553088059518345049643589986299464930630043177864822323411259144004253384132791983029240568248973594560751544781069469765318284565982498277559506101286926134594770265924136896513398051706090404758492371170536018514313637167219614628161158114101161511436046830563665403536830292420150055293780708934438795953677034138535137240782428285388643695596385373156448145279642548179713719244560787108478101548353142216402110481989827638377993119952567763651464810779939790909959699746742197506678591508752203175278211238657317981142900686049270078152707746417042706150472975402122227321841844913610091297478164497782989201396288727236826617557354529503083374728685372706525895112823161721639481019901051309108094392920574564561589933973815815998681831159808404383044013867035989591115105671563074166637669918682563113395056540438160880279096536162753098359986893699270931933285822400393427430051720755866615989049431682683227215564709529961343130252993055446385250172165488662062502647001608974237088429530236875316641382717476757570870429352651926167578078694923383571181238569772982751403965975995219474058138252849793155483174547311304436188892360373076848647419776844677308957482286358996856126222658449463888708028111086501329780268801960567625948934590499912243952115431034747288463296957849063674315672057242534804921298601265138342411737687505261643935373844967672725914351028760056022771306360787930893273251530744082840441848055980233017328940522343053248390052692898396785979865358460798232219673239111901096076074563167729632730795312029526089357282229932416606365570863936071621339163673868216990251326272250978066164633003465456606744161694160333169118564603356635749861837403763739414062295908951965114592233499970776191612085946272251523687178311673204103275473283179846729182408561115134736525517583911819172163079989315024488302995322333131856409398724345084812314297067216912869912799788682127529658580389139636693293905736043321209674326164105852901452755144067680457692841783939155471635375304966036700990342734411717949075788960067493506561286855554284302480116436567432315445976980066278829937003938304777243745608829974407106597150112152019364038905144436465738523362946754090834341031264861310738627872409976864688168394751798982144270362246591378096521552179760574005717164247491382566757294588155154652682053657933019299687307917702916219491385488047970818943956998206796575200924037598340455577552058421140730318016462230174786499900476518257146756803244157532547047174444999434329709808254496946770576655879681563715046871373975528785945475485722150068227491107434269606217776104548767954870356085791435537144034516215718877476928609894847940994532310213568999773700895360390876181706670782257372645987821510112821116310964347905045222965228126943580928161818704991679701518442858574590316299583125892717047529356918005152615452248092838848865212008923609395148115404205290302358329949445187874051055602377505663266648975315205844651119819029884664206594301732543416819196795128060219000355725939874921820170383492988799309059822599777924475199133616424257466253536613869806784414105952815793248789307300060124861563381686557780512482070074353860422126619832317842994488288829007325222376654917897773777308950613253639144988530187854236456164606788327520439751220333297283469151116633706011591474867275371456464305309298348030653023442187459585920546776765811979822259450531088293151494003387362243794046773905414903775775977123959493357337330617175991169367533109068795615026797271772594336849389168177369442199922089017316066491657806030843719613623811625223766448122529159149720811730751878211658134867786038080537954791420549516950412657856849811431191623977831757898509463795395625105141746506709346495571119366532910575802942214592566395163477683589637162019899866761278045119349508915150004344457479772701513604365366319006833530138066901766187670844234674104991989103326810030555038477920536418320094332623680202977707384274202594462137024854622892153455608689334136668933281120337556777635024773628867328622332727635436745159169329915637945872507079297743385260396262816445555998806281246531030538401942840114731542554760459682686721452881858912961276762933807118770473890555252307818157417442876261348059112201411239270326608542652868133871043086965622629976206452046485683524977424520256030187207694653038631336546751368807158145542455781952087995193227902445526650828183305952199898318486898450146936379223249262352532366036097941838257455514570875998873985311927903215370644934549856879644965163955987779047152695402169816134021811333411509978765492130151860672630802541868761371957570022161935807409457534438799496330346608931763988164537859184118398124950663983976041408192637551888705210759706211322879754815283252230198767352842593787662443808836032995683766664206649789029392367282814095706530559381565151436435372465027822817511968173523794334703774934907238326534166074734443598094478289023105441497259266023938701866793280364676431857165200280059118457462221759625229510474840924163809293169864897301240737402346760489742911981925033474441398408838066671511645473518700300031085076136715047030741915652897402482002160343511354323395145776149410377803205764589064116425267824163878495794150642001541002910860778484030866862299402936096938158890624627484843059621179223235451736439747077847876643802577075793954122409188027183883769954061157398232372935128136410900524377738376660760219752065153015318031660435096876311506581679451351400648538455593423044381024173408205634617640484067001159118980091290340506118732358815675801849324398622944434059942578344843817237232314603708496654758854686895070284940561621683473502533968560693853535496090668954420540421043996964633071922749056882672726412685723709636962007428789563197970062583468442319578925244890605719273019851948275229082489631516002618447945442463085432057063106495840556113320453193368873524515546269195532992926964142765293577406203907258111425320412516764449831584311856461649004017198231369325273495514816100361182683259574506361072536317637980743076617077331124973600410480744350749539415088996930239479613452433061453971672223741855027886197544437845376322183050052718654577860163267158284509885011753268516176310070453715150182297635532634980971619839682920811272818530979391386058570211864058602235309226465193541692269001345242778368175463417736506284649322952768593696461247798098311123990455849208471668296060478605590315773460741986383154155141098565663927562018549493601715464979060984154118790355631796165192797223721191218486744891654878238643958671662678019194799136717852813837625260951758428890564854122624549889454876479845395440244173783784020950021333157593359950983242028479844265486058901155653918091975926988163286059384910883349611991906729624193305002405113569949329507563271126401083771907061839719900977824187636086471187172843999634699325236488029334942102518662741384073166579278618274259936678311351423573030346941418578198599229305917491269797128837648657888267119424813265498562772710254598186021494110589537811677634640136439115312925152864350234429550176124581810454300498273431414040384133462433788602055048564856912879934894377475600334946600582569224524704196069775248840557926176502214128413732230271582004269171244794245021794774005314603822538930088993488204742770262882603345211704491897789627400951586020538778061994820614527861649308541967933706334301133170438198000507627603063617406628585111752203841044337908399719024593210219521774535237757623866654597252744733644314797546629674759311114006645044105009245683957066734033571123441372429308471741894316903091315881559049043643594823136511660871768010218892310183905716939164600672380084351961134221675339796991806820552369726513992020964629296173767631787908260551334657229151693825385295912876530944936208035058179001705983347874835460852783175176916300628339258659885570849580879317299958589729814652610937551478594166061367981120064345072268417812995094693933177754432962824896596753993499969132463724553461609484122165181652237862123250694034769426243737179232605176216197700400717181813760242497470262347238592858481899704980361734600818082897741935724800171215997502746400141870655545282593984203774619442011605578939634824886508590798844728790630058607977421742060953767632691048778778004206681885172814726430568263274247683416790447566543349436820753990531784571608758213247197687725497300051484248572470792987729258526947304111730839740406767808130099207247999527293036769713370111695405761189674403669434282210642231826312203622143215966131622854766078121915711790813168251811652611197945683712354702104526314602765416775590756414163669642334625109080198599512249515893810566749543386247801851425370527033787265583475074446704985743658337722463213757752257977166596599751010047273196715007616659928160644858803034213739047905549812251814138288671431692492978242009647695127441580206664061965231762531716217645922619063358647294145306572616365806057541820478411637721737251950524511083360751155418288858210104676704319628017872564748348668190413761678501769406740916831173275501613445266200792515269820667349457517383665571554856853657392436035695192991601495340505793680482382359046262634534646658884124370882559906539741342583171656260556782895238415585500431021215808424995286017658356817447732849936737036990073784381659151189092428375799771722870972101252081162329785044962692891349464214509027191652515938477935269296449516456123592269038703824678111802923700466457061760258633089723024388893138202594971400690012792518474035189875134328759844799803341944272088802447069445908211488351065503875351435914472303143328653450483648900092968455562558154709048579333289205326672178474214425506223099627664283028067102755552944704125084410377463413425351700465019582089447059215108345111972443058616331858227024913647306248802361040118936715326186504915061199508482310387285063097234007786256371113480745836791227185009900632177973280107041613509449855450318426713394442000311335624306952822555006324038039140581352413547592775364119686909752586583858628590008635672668088061856095598688006450785406403221700057419829513427303301351503981138939192920335852147829593141904064008649758562567890889187403959452331630077027373505292219700493749657915287911362675466863281897525728081424254870100394961157678444241309774044674770501611517228866390131184596719189792049822754210927443171334768675472164473092190394194515843018372332706121210916219958338592077818472653515689465901457583053675986465005933991801338872111464785194320975144048075211207066252093775897122830551925181778815833157711982745984016181198734879778877722896384273342086561293672924647080242130243051681058215078445015046006017369063587410225118952206140453377812691884883202438801899412728840575774744238054355853669440442275542669531264456408911313402595078668493760945988342159482217410350677290172687197272034661576690299431931203111595445013563308917605264204782803488031127827319902892835403202141145915309148534908239072589865053733894845155886438849566038938980823199978375594134730516750815331902642438510552485415430105974718000874817065853315873911360554678540034134683109783718498071903510953649231477650904352356255774558232129860975201621023881042983377480786143909222413523908882513573247847940718830621691631806326149894239515012345728912339468658621422874634403432513181450239388293600008613204840182145773238970988216419298974819316249643186969390682825647965233581835028955472804315460671048512845309417664912927770239730188062446837332559681713257373263413581028775631428572426788908082350106477564221664895098632840861716859174044548817082088298436351434085260699257961604413890276095316142514571367460961648686084141034428245995782184221953589764187151532996739521562509473148899059726352175814980104856532342725880980532926162675274352394740770644433812756386167870007883834465098766877191988493620163297397464558670988461646888762978606076450831674827938588668093899031457104896647324634472433967720220994235213573370498734341370580414235893993584159422506649594704830892109645756616670111376917150693747172144678270435065466434939797688462172605893643975321905257950699507202298030240413527398700517596423576335324774465986340333353889378985750038347654274644700776367521108959717967652102766437481819172142779598972989467006303468198306993052137579465304696295458484205753176814855996005580454890650815595822611556383045380058869862205118119104863776285757095088244079943937505582044290945499525139872347879609303472332519230175294313589642152304775009757236402955751256822412847473851999887009587414384363113550062020707296373678241305056536543679736636913017175065214320734460189769462539576912712953518347598780214526279399072744532461132572651677068990280799156347156912513178791577116894966210460069353591509930355725418113549970481964964608747353413059663145039775033307485491099766811352949205267628585387021743451577492384288359319089099441461978997085008171602453972921819366300805499926614288968917368082145932587951007953490006953923710017696270726618301477621794908121628238270919270246382282919311904925594730891117937526725084854004479206286295887923425627778556058498648218419309591719180431464397579788394515110215480531567677146205775525682864300983904601639012909708133392352925794896038073859372532904527704358359117109501138364369620885831135183282903267771157043787777639941946087626850094751480785671786213450491947526910363936221145702314330843398578903860448615199431191012756403064541022243416121389504097123884548080809591545257835798192380038889155591221664107876853663854424104007291802740578884119498123228989089213039355510405182212795460453136650900304947868787726943100766324434420414327170226771877012617029327901729109226887682751784501042176397633570527203361296713154282805057949947420475067951058611832542239642979060838004506309329353934385568198436064655923306424272319495411972426235475786481400387454415653454485844393923257245033367007547998004611556231556911722619140957552606611145380570429126402685424420261384314701489177925666153008457143177267835048680380879668712108305453931500995319655865627787443802155391266940545511719198040011190988257300543140750172585615438781188054694894399047481164616669390226749760911679852315383587836900971607481575293355540866508703476745844745325840102227433532174760979015469073927707412592113041115931769676985639198516190266506422701185971767183589222918210280960593551997976445192653367437103694609891165974429027870407182005105731522896209663001375399678964028707790414270686295495081045431643316634354511703629914950057906801668479490099820053799561120467758952183704812843030694835873606889937924042892955468089421505744516107391017211402531748326966152803774515072557364339181955487457279221420211351483248309375355785732371325689584998347132491102230971194568749624254091577615874099165287553105611800505110781619974981987075510285919283053123614704881974408571134651545554125310445544685731265794919536736281633923387645128880818269349999289757423316185503899720977362222217755652840322200851157534485396214494339685676423338035816276852051654281515559746237076539093187690129643572578942592464427743549179402434059520801779722765932914825048377018870418832037608184526039454230644238278264480261362326335070014055339368529847052058442251723606834064322099029917102929234123139056021489637397738579377393124080037336575642555994889690228925656894945417225005969924594104958735615015586986643280752279643787155545661350063211585519983548502589690135978224932074796371375116418746430389699320908573037797186520496572455033523329930265056110773169763028492868501348487020899194629759325051951311697699857720685466304351807803584044675381878127297024349303727353949102247442619928798152518232843718015031987394768498965448852813586046918330491289992521392255063861559216399873361380477246238982347911586371929742578386048292080219597265904555234379644898500832635458042059081087455482326607802220327546736588017209129537959151574327252558249964306978272477557364095485491348838590512128518300777775542831173663984466609584964859392458568541637588761673076187412287898240110269314922448394850118601747792772970711771458030461311071114558218666886853302286781333116458115467944453301323566537896426039252802913785236444960874147023931871416028700479110599634066091863777487508058154381960069185468091142705507658163535405952157869628573634590939124324196279854451444154259846019627042603680939064589534402692320108699621261341423245304235322148269023637750791876037602074798062514554682650700675590457793680762368451090828063756545038486385524887192148592598974261702913541221063581091133950837451264435558259931959132212250647142874866192624738060707992312282403157787932086964025311139795154418319774753907026384458642973657950726655522442746997026831916798632513715848282836031902417096844509042470033453390435016668941701262124094194555155625278201585916584314084235867569211779921595383514869600024862080846256152117344124573895152720202821459182948622868680444029031326473464690794751659145702539066386082212048433083975437714320809634513229798254460351773383470111686025628911912658751122073187188676548993701124829682446863480709679078327517372319464285881981875837449903872565523257800728862554559943772559934144337663578322081011332205383579229798681200930511702435654953175884087103447458758001172806093552478430655484358897955233084764247464843711736800031279175897554776876951053310713824194491635524521457687152411179302572327944853210470365145832646439041803907885116150097583003137204031241662938195971569945505906598522697079684253662689177376965829577302325151736158354658268665454701331180138994557516917572440355187173687274901428957343281011239777313137979430063213954622073678679745572764973417350862245212910903788535550937073869824577792067925287146698745400980605087026004265442713344608084125413010786655781068252795151406119734758413840964586950637471955531188318483146879705505832575400271519700430739978083702869953712764762712132832995308127732594551245048776907118162893084672660597713290335964311757245315993379756140128911309507962784726864417368628039825643005989899438390439708038420901360136894692033527160944924088912637141190531852698876976750936907386329458266761502236754015004171526883927020679264224597670727899597411882121188958044314877123711893770104226802946956275340725331907731379281143275825910367193101805304155640017546791667121337804606793024960700256283459513250262482345935557804018841189236456897005565374503627493227485051188123555788616271423479953425670800227390378992200431613047609908428356029970059243298061131057750788571059470678643708827134239196461780915509117267880665348798484281741035869633074681586063570388867583540920354473541222747172331938491376742619285887525582987872433859853382986074458922438830285068733721997422023078405409972749115627064275846737470707715530985695268923224191228684378653226526146775632379760551728520427169094832609800661326084255378103950975282437137772057129057134221461746541186836234093556904025929399664973321934021695103644624473249085077505258234254181305968104676811352767100896282888203174647964337476839817255531941608562936221483114292239264654258144169699418573163646775564213790303793915859907978626939369213501926712487982919648272090698497014529297746735787500353366422625916705693174523507575182447766886058766518489846882826922380070511443979367507903475217672545121774875270943771919038453355956006638159124297029242693214355946058313615476015735931155572021446409186564756904551651665765725147552270863423106848903546156549962697735041125665800772745724806288330649357622520432708810400808555710967264360973329559282707278436877881318321226997304026751604416725914972597125000498454014922025655188279539529619810993478415593861682652756067995164558901997568425448033983619988619475712250110684541422751266535677293467095857907217882196467072262842427738424339084355350706346680423043131080124014426860475562051614779762936773601786835848701033779623935938692432207526663416968584313666575821675945967708033861256271195323064423890598928747319365992470789823703776944595999017848073697908720249926297193950526077440348033510740011761572777231893047627858350674034875691819547746360728384933060169560114505219402700822507515242053998660726019376540277504565067996628890945752819473078624528875987887464577367574462327537817132856962231267925800763197953069327172302257156655363856833515435920072326238240328571966554226021946607256094537036893968057471683213833347406119480057516891741889092885454767362281574291169203055266152796206168179152514436092660897560514485429864806633514543239646294441241646553184828109047770783849258535858344413257844884344470914939753662434222941436418618257639873818533719302244012053519739417905086899638319171486092783139795786626571093376457631241775757208662638389939824119350715700585817632198167518886419329736193712266815788628741846129796828065105171942785114336175793648165888980596686140963602329471944911548614205997184279835913585853705053503352019912182982055986384906943467179203030561712516576936259372418315691519029444836611567922988608996630159803617108389740638609250741855392591276406117407859988684911120622582603421936791386026581088169092498753392334264813507044232204791969144954037117818250722831654975639383341586700655463895306938453692419778402885174679276224582475006382961894525490676582575233374156214012806817385005849360036207199183999489518072822540241071103823495680725287011783001563986149874918706315745896383935504603843543820563307733232746492758340226409192521488522858976851544568828252520539611565060891208704093868021147791093662935374828411365479204706342522315479464118774377971310520240501716354353976223861128387443948881778238158035701228968260334454967829793652355489594783148557947044967316429820246503412841013218596223063381058451809631949251337457131443331639595088983102608482675059063105129104527720285390041072780749299685598698481496337122466455916101611833273036584036268870149588663300447516995816053200091560284341683859819723329440227564913577616310366714368542168002362112749407300717712261047595633817528445270095141376772337953047508909093448952205863092007502329358522920162050357622900356567692250133379856111718410586107298676634366646634033264797817742677973182919256317385934522743323790510234381321194549859677680196003397858575156129069737830147937938838296337999097920159464762422865160511240800434574073727820309499905658098768425562790910743445890219905902618801292531931538874790426617170614343083383225403190155742979889237238559409068362370340134474927273483726147102940578401288657846201027238356293861970485855388402855126416624773419953111345450624558800896500538899684724200588011053590427058603210545859305835885375528402311061284863435927697842431454406953105595913182426598427271651552652382932719810840515974769699728274492891754651235390865904373749712739022564969840085223084402662953076952734516806100493844521280090735198417472468052501951187675043886785071331696628389312449742092322884714717944248013544080937018001963614354523281511389932745044265213418738243112057098707900450562792335380411202225032053277525765993726818534301208401904247986869711478278997975893711896795055835022584085349343739830171425538325736632985307326515568296850481942108182905468664567327193419425865481068951291147485334010163220960395082221577458751843841432706479972520154662121690284811823380071747198148272622010311187957871132108662287377054464566784475619036830748470486620608994211938589214608039176862594416778051845966358841752662074973543803412102093938274579988396760299735965194640022299397722067937999013340911042137073985782994146248425638605233056502764720893275253011336786753350506178548143476925445955853572013687822382586616787249393800880257752426500793120270363448396361399060402850802407060426815270352844977454199699936928785219237372587395193409221427655192575169715884868699617892130304374528524316466313549139282572078983627013056256736227293470909008163767269650397347049072777264654888836106248537780671058628016581147925215921227309302914736155122818588414176878803292367195649645748965727240486496517862678943360415722529834993855342869437898311273526509955982323137265334132769237542504055142108609127714829618058414818036761272798453141552028263080299805914061866919744694287772209579182474956089840626531833193478697765533567840059092020064684600850801634388702289439087032017491574088843925922016704984380948730181150606896396410861297642771887358580457071353983885225420187723046103419917470809290087687129453740242286123966643067494042736931886881271660521256387048059488056187880273446898926682178963265939327537928394511801470540098736983208681430356788744803341482868719636902933880351218475231798239898263992489082298371849418795726769239817432798526029309677195555204136217262925226747646537979735016365037790220873022901446511901213984065050940348317775688586863799563934237694556747607435535166645779045888418318964948006367945944761331998319698473552890127219900747213032077914239001561376448376721790117407493401381125466201505214805439451629328846821391484130855373414439803496005255697639929134664355087409797421901457640923228458109122383317124419676068525821769549086902374152098805007985384737833267924108752616004013774617940834411673255239257905482666400170723825363475587910668765007382788646300602733328676630411053827931167794102207568227184824317202420803875194564333614192456427399098352764204856994685578582813746729337962053491213241677768460640874789853552524913665727537177441229585758170603566645114160764506044314843921397975878759667144152161917722159991969734557136707119500761054470027455205881499247354125391701825715170044007148834679884769616141394838765875566723119300412002263478547048130422279197312403775591349030286974829261610132798150016626548546684612486862804086247056090217824757138272362374139651306468308081701380248402099147519162920551597622532074910581094879807474722114626719432232147579288192335762470014468814365380342249419542639841452154307783003838169678110399805095435252637407480093157795606078901245069515481056394090539327972585029463176528641861847678757122501357799695955948244396677458196299044934390820271606031401241851238630903319253533302210084363889645597679367045247788705591532333877186481218406804705429064105314482332065158666878710800225055698769206450573687395264317192902509446937729120792542135875823973431841116575529681187952057678160957964330374937691789257396989019734487929042015593392643033435736164142150731573609924042539361169823114358141049549482075709139880221114119236971193975979891697133371176129235476966236273040068311032892726878654268856635697627370183409074172149663540302423497962289231881867673185938369328883201903332476797300170392403548598852928841894976767713610061433676339878692539973464782178790189584007867810978369064404083246001577798385100846201278939002878515888126457065959003775371627604460942666032685332299545850933910050113807666158658163257831771471403545516684496743016304245392785521693071021270553598010522755575880070868826482963582331249197863882516284007268633773701051621552556234299576434501042913977624844620927547614690289077201320679799342617153338784479696071405668096239511124654141125166626866102891954526329874633025624954526312776971621752672451863121895500118151312392982389291691098483588226702754295458560756722336464931374028538644181357555790111043880082065277564555059458503845407474411417710830718468116997305595947960475109233758251029360180174963578315550799842062612236796856877810075902538853387644852406638144132537679638520935580128755204059150883503384689971748194689837130471696327872187547541093655115701138712301386664879429630822589042381199062202947286343714740932567212033584669810789592178984178686735862396197399430605737708710369102870583531668647085672551860760885839690000088021818456784832946966130035085381336149981099246613191455126671658834262215616949929765647787667060477758312054467865127266344369755431663907291612697635470341398482988267649466104826636054553167188803225461119526879964089085854573041489314043863413262321267725924245047827059783535739396147119237102225607362439944918506368561937182318355896968849648520177621939811357171577044793522239485924357949659480150550980448580330720600270338238798001121572163375581054928222200223367234241279311180955193589403020710499307508680691584224930125575253413473974128296731680072447650334836885979535302719509733845833766766952026326680089158958845791515365162634261770650060049191500077623652592766217470126982051895999188169083503054100339970961168772612451492778558682629047306527644814802676973474586430826684259505498405947506327572862217062454536653262457472343605196945738131364965262435483297313387405258168199547929775399828246731103696722516573170935082022179545265577044795713135444387296246058527925705709352007225524443290313905944139344526550881066984778203930181359477625316559029862961701891736148405180441358274632778821273241261728752121272196453706401205958530603881139035013029443177145804447133191820178052956177555272344455627692507342482780347295029372211346983682247581554759942059720050564483465053826857043304712486512342648772911989912038537520164317738607932879952465682950863337540380411041975142564162960151855297162698965785013353305034558698139365126109370868330256944198821260892475104001316979636919046093060207211096503676583198498796951929935233056534062741382929557218068631118284292747224458546826879954696696464542770805098987514040506527760589188055768589817288044864005431616735504378577928082313085673906972029549469619606925174283235485782796088367729320097540586077447799848069856626845028695429497197924698543872184873995047355195478195828480839497974727365723123886771358250239050809421184611540435973632469433227556304204523626162715139564377829797294217958129015228254935221496871650995198394124791624580169316784986254108752153705735776345416994458328771412516057764367456640302363328585844054089818601427227683748762814604937067664753780725066271307377250030534801155675803685831269776371734880918216156677168241066789559385574126076882404742310670255305872419138257239590491197407369315500220439556119917298464361578054406738683934451849550813063822296172115219847678098254338159640454403582540969983068273306487976256407768663055137569571581736640272413667517882548479026033779229612962744947548070772915237984007745787706714354102200947291457079222803197273586203902313642958233254706479441754822134957247062615458197899052853656651590770644567781104718827913750254209421378092701716042033997919053262413728098166503345010656954872907571311984689289752656881723837537560761515441887599168970844009118834318487076321630373033318810748591566360120921186650931390130388845420860255018954932230616405820995352227302239863375291049045235156275932205461268813363487276426928591452961452483402649517835942303760060374399004379743023849872111830646173372641992994694288378994801034107357722116312697777969065793610690914339160040128355329569095364318227120131366728173236437840141086509438509578812218214739561462440294747881991499751258902662112289949578117919325018337158701659631814644387011922477626571798698253384695515436505562470972655259222341225345233053710605690366856186664277366284801008369247245120216335927699683017132532819063103484955196795795943656631381209879775868303247495781995879876959457804313566446316125147571424779334383115145906552113198142796492077808576231849144719835533410353582908470835922346478110597384322664856728135220289382478137223847228208111097864970337714665311378944073259296414726354479658089626892889831755271684838979295357693745666689653882086213470498568913504726069408099038247846016865704269331488288298377986204509245752905221355081514171867833440526212680958740157237945354619678119474364253743055811264041978359313115492216812280655100504793965627539114425136743794156235607746521708651507347248441169716390768263993998004097365962891717136236890365584323862634172837744686760721996126245064555474102637110418016950948728852818335590884254048128511732755176156516557709702630766733962039274615513338363681990196951576739774320646444196618090694922107610460225481307075758400047748316853286496360404582561567858131921066327568942521694777308386159020461143016001710010483838981359735173138800929640978623759294407857863534101414774280380447574910006412030828906396771297262515412399920734205436050374803927380648002949828189950292402064236578929212483555233874442606401402915693189740519994710717969723574195131917041545354138702620888583319341776305581381323780824843942391992400856247660119733228916592677050804869507711598646243472891928583633860048897872889284173046318802036311829059798732043681621155483724891383537871162627885965254914687235624444845131782476581523686776130217196112002416425004809981935854231264751311592815897222525025218739376676738888926450915520108018362748293942199965506246134042394441831962076702233191854504533264771811583077275511029221988615015461324461092373511479800047208033340838719522230929845567710184537355552362560967117871601801003763880981545138666026964238940395584658248140330838895380928083349781494336412627443612035640728244835351462388265568364374679245931833306528308071809119414134150191135642091293887038067540786919755268832184417567898339372406478033439233226643603485122782917826464505919695151759105071825548295774480294995684341808239832295122929358325912233894144027555106272367068434313452333513020148573793888940145254061602183821993730768711850463345428684019750227068340767155732860025650673086308917090689911477494123737626452515331117958738841574446103144214361839929551764606088229757061849737420073488586328483945523911051541703049871622641583854078283889488876414137036426283150130712696962574666523913954021464625830281334583910583639047342410390162947396707806729799689135674633425141055036324221476326545396660867691518955231307491807252319460286591166871026752075352204565783491488721738198867427264592467365711711907062407566483943983133099474874283657803661765647240722163236469631806249760928582803334863311713456557050539887545137942812642367929364606361468815174269058124997961358238658192761851398371897984240629654621015734129746135343409255709899986626507735969904092765009558023632276181980245116879207809119227499709776442222163838829941137523883051332094231353099406492635689056222529859934920989451150669774020842468023517683645845682937997477459482506605800507181693037047869232659661562224402816122887674050008501187028085629352172233835017495109217824460008348665877532162296523351942932125877900856353767092739894285073838573061762583039276827689838877435628083392496406376721320007293616323025251863269942985920848115670118749722679755961776252622303949151011559886521768519193705788227710793478179492445789344449486030640091210194420396566367385137253542747524711582315351525850727625784077382423613299516078628717721557681458878777253768411289315999239047191769047918151611169241930690632749185737638066979150266839828704786770946701805207515857682947914738124325126634970451301573705015813061852980114373290241868749591017036931494843742268941513746318979891209610721434069680721972083467804582350103605419805544274212450060851785881907332067873562368405083459936037534666064347069920585985073630561695323726028808178587832865929121815170012089370279433645722918312908823370152424191950885192204389974791398290090278006666996299873522681247859987649947199597645206064442036942112225315205607944987805158520281807647688419967273983314215477380232614093469508888875449145568106419782248351663772447571951564226415626755956776133043467508079188271760138001423153822635157994383876816836910983355334978202007762772240161643236244129560320168632378735192286189787483534221414781194764171901900899712292333121102509869517674444778226579728788429316216807857055777175717605544137758007864235737482634904458557488701005317703566656867319931369417246564608440823702630529023705650960140114908640563534430150627380893092555600566452269889884907493115710838012772592373412815796802618551191246912390270004810379958686352396927439559803490986776539964258691816145702136508380805713798334868859965435407503045935358595186743196115042065977607701745332470041515016129462085816893232185885618224575248360088472898512569038324146980599281982084087505942596371554085969033175253966118874691415694243096874438071838120191119683161491362467185714256334576311857228173430880907648220678373879830453784464584688863765926095074436519534710852138678832308087003611212031620374971368599679993454954876483641455270502734191233775122541310331217211405272914145724764284412408978499330783158483557192732090578650412812962341779933943666649493276129053697513006965367478756789175747508757381640163157755659123093825141971988130595012104963970227552811011977335466737678333622837996653128914679079412546298808567050281140921228248049479738329648227771967653438064697909069920351421242931744130760163967595891611369225760561100631550191109959211003465554747721415002206052206138837568466642993128757024950931078133331254969037862309494995851145795675111549688361796979462941856230061242963216410133310835325340071901440313271461457942386714080695638042344802020890743917503632681541895084573956858745748748943131319715857472148884064359559478097304907908122796107353897906340589302956361371140530296099992674266259573826925129965073885406423167911976723669551830995301003952181681692061042424786238442635012760027262093267357800097594600206611487474971196347742130019415373577561451296711268434737745362803419155345825846947028996407289984883389979317392988446035524099463354920346133529514901029150212832012373422858362160981868270046078940341163685555604730935408074889323780801703663896586986233051141914185892185006231841848741346620683324565861482203685738964426815777039109140880519403744505703490117392687358571209510106297314117451288192541437503747776556810741156551421229357218062636801685117171632766251185659988482743958138711154675794132385060040332366154452260561574915464493554980990286139555732376410553079853662235326335293258610376037850016443227903373070507705088464633991502915513496985600333448508778440377889209709723501058232745043410637809130305213741064413966900466003560193296015729446232240826933226670524366000635475217388072861797501457239434707119093045051899232688945954070244198883462513164218847673585804021202201789939765454122049097484170219864469766606846419163589146701083843213165099261360854774053279318094442518860449921777987450733318153566994334874113239773100046670055637244318820179505441947469615565908419441058650127665559963388380146617074312414530755887680095500311080449463507998127805305608907790688241067297906405411876413154383708122474377631168760919974493757123638632595289171812289601251284688781857684201043662084574178879608000403024927347415176801101021438071738576999816654121835041481248579593237301633549053117766638247027524889285840105282794444367720655795312348571077462600379350583685133533382872099618886759733486943212639275187550737643585087570074627055338050609198695897188195213435178188467580577466379158172571733365335393041921699974304398247951952288788661199462281836482720309985378831716628933022563876094099717034875854958615936369475528630354583586560630043188068442852150434735870733050650930895407525728196719412774379255977913257016481247394366850397865807102545568573600168530095517092348553790179648924009860790473278935060827089675480843400556887379431745760760613216150263315153043244251987371499213611512597444497674927150060346454560096381161020482671955255763059113534779960606091167227286647160213311727352032777975793538177740586450113908675292464909009249451931206442435175000132588361837849064047496638861171440166529584635029359091816587619224969991958131761690997691422045567733940623240203757675214342176763383188015837083968857712362051062238734308842172077301098912522482239687437220847478416277778273029748603515662148461030908249288947779775666826136772708085601191309467993991967611742942114205617540413554859339182957808622160218855781297934054088580260988049989470423395681686009223482370393080511735200728071320177926091629436264818863801066465919044278783178526767810602360051532645581752165481685185792431117632494145322204496659028431341958633905404093826237227342852959805539713994615885007549384231698476768472878649644312269269866881329148753251756893081461502490099273848183566193190493317233319640277349919539777763145035544167314508331519402626418886217577078073933590228124209895877193621183984023191624594402944870557118646381271438148980021077286108083439449864306500629537154792798666924584631877864713856602895087964001933051393757586776846347905741889396843659696863137789796797040368751985863960353298110757822062392951509825530837364176314205515632294835076099468894705183684274592777657238552984335212759919367629349511642060522416790750789584157952879332927814043033250141065320939457933202520207015004748043425826802813202760101727758809403521424065817150756589503949172709775499684223629157773009174452567417008540140227185594949925994811595201562651526891739475704725826132593993081602967919225762021367142810910766215129307948182868392120597788497317027528522163166805655305343848030604680179045156334134349138460701459772901443799800275602348259282697385328427065454500411257634422425823499054172181750748936324256917933063919142996610091442360164500932390873027378783117602959473031711439144918696092699670913517008157224392556729007907913826825123351903481313402128146227926053630357460752839122774424297547325707903862145406040192252016880497247383138971538479197294382465979116707444881787657079700108047707590048217789336516843599967167907215504263426533524245164581406380048673056552863214604728540152699252007945176633272324560924446347131873126061380060384427540399751191746422204331201902304250012730633117986249167841234699408222616774345300045863831948956703330985331363525230747629092024303442840974095179385397414523344154579165734913370121767562934035827977505317037238249483941726958094873854376460538593468540034398731735502614413337439788948929809788783383052471273904721758297813160736342583254933405750769430714913144365607521995784618121258506022029781960331703234693541025844265627075825359874356814677389181491748329733299000282736293055772672939284446347930783752575624459886579179487066473575935324833440911169939957433363759759307880843140521944812775332734230521034852481124347637498626916973296395796077529613857795877300589549610759540775626686545314620092968871612588814346261910501370507310186815046584363718347137346786806268390999550356774048228794189884237950295135062649125070838770774814797378091752683630052898693705207572475830455637511046905733106815969230134517792535526169763111290333064162678841881250481527780402792849673724107788842586769689112145851338088379510341779803490761181211034003509023653613561094790557370335985506841737659068470073906313255024691396725599166078609865410852443835746752741721624039316934878549926898871742998847791201966594140863903677624061494481759903626108621267308708292675888209803076960839812876249428123838503671587127341935212056632116495483657336888470849189426505138420656198388198932256822101925959767800149424482566723011430878274484849083666340195191730937184950633424342896674560014121198012045646451996072313105464333094486249755570726605154355815860611296240903177212898604552134636143300205174816390920922379982001276544711720722490471420807614849832588020418520972220697447773889657671406575946885719183590166197468901359199988940328172074728425953856687257368098822994039177907082372775680836527960533897656786330022392718148853609637511280675635717125972813052707460840974463496109762469551034726076862997196924178127415099306694290319720310272039991643781352068680829004701202832780477649202152436624615595146335539760807681233887007505121184878268798556373291055870348132578581862586761405712472190509966670196214160725221405144262372781259955987644811477454193594574044650209700724291389975712194581498960348201740037537494542806687380671996274678849968300815965784375658521152328440364252735621094772113734012707157241578601378003528758054999310442409387360432196493004144135653390284228779044503073787419216302738667622139231967369857537277052258025889293728345912199115461209752055588877541552617251804130455720856274392462848793533580929489189090894111376135578650452282519830105765663951937180053456428326575775620117954568165928599365859649222661842931175114393842966843815749993744292765569194175818617525844443864035783212448034410483409999346228502237259477499314637130982955932923931708228239248812946802418501672519100268368378699006072274494934478942541753290051597827560302828219164860627845797985312309433883292480756721329413145676156383379054803410009216610485117143965251616078409446674432595667445378378439170351010828537648187944311870376487406138609078937920044379183823279081954454190958989747407511768449066998704829388110251398854607950968090244035849498045082627228210749662832731325844049554645887654680546322654538899002921794189928642196609197059754051060096535314736159600757613454348936923964135786742405049452972704258867770368075892214842244842389131841828911309242890586584648490381298814743513121200640984686933777064636462662509486495468915212274105423806630029726802271256643441172357484132258543318399432757843094035811751933652125456744060163744284056830661961708509144876424410014369769255945566517359974318738659513314563740644342875507333604750929884047634604779333024366552643727524913610392931068623245979248341917505879689723127590204421005815056990121064005858398619157792189048940195230201763668658658989301556823246100446416783974835037802028117368844767727406066029992117450295943981893588454297739096512229216950442351859754362387678841190637644975978746562691856313356390660985347753313826522099079084609282745488479895268780285574830746983128922056817824228315989244311845512320819329793107571057927878052456966890463153407305497616831287135860512064714724232307249433422365545691056770824623657254160009506627310763237551343562039714695635410865788108067585896834701898305577354015652192513811426803119725562190328761770438083629175477785943994577644068411517598192203101031989002355721963475806524324951609351563846205219859448213585481276027856081953468183605397475377049343180678893987460804512888021014675259678218902923850750344962484524620266854303932314191296880870598924885407259753033061621094649485222633506006797049019386529677165110070876278244553552066282211973538524292415876018252550621672044071429410796026508776283754434032686397773514785086915991494065704474417689284338952737650256050667911414530581099210491179913660106733662673325926877381769560998559958428532170416277358647431469623486177909615447207821071653561706941147152158950833362379525213979938381699295945019092233831304884636595133271030418668977603968331870285001670479271635958997474741995961809277460308259328986091638783855662227406112954359745949183475125932937484599048121049666504629110750940119063816373989922095678273120445009905043147060224772652188338856387821628604839958789325234535161268361226563759218005088466076331852828477900622165269252355821077851711055476522411934956459980096322063139799124455982380790234862758974724420580443923171047702427950352445042260878765426554316253612612553263219320020622142553246233661351657413711734284535976287906210233001823669948572720907428903553695185233796834549705834177138726586979016499873892547496854325591966010806432880049067684401879889291211058890530049327719529462145519099299809708731966942055530099735174061966033665192569965126015526417400452772951788119292453263908436462099669395321476883885894567162528863807271635767947852583870385396855690209997881441741450558076129714045129203271400707602738811961338604067237395570106772476668167060298017150487212175102322607218999688959245613622380409446779050132721012111098967379291079258107664179066559954009606244712645496698277568309117926220731342523375159527681046710919829634523609814163361646524066958304814633809485990661947163682767330901170842459140188798078323911581386194884752625992222260815459553544890445493694262803059669601428052086613937446954344352745475875900125096070594482464995790684569397128239689802411614819106947657404562109801374222412638108756562052653074266419966040075044071116269552025208966494362637885198030380172860751489203561251612181175875205229615142318142348642352426026337720143304372011059807077163781456868008494065445558154194094752554525489009272483861071693354866903267610787963111970902406451609409059820369332014421506917349313959046399277102552070902446757928444697750521000655798780388870176625375028354800743562132704842797630055973241434090250178987738285557987942860250912622305459412357048806321487369462040524195123722725209207551081953589697619734135679319076435616126961663289749215499380693512265874532598276414142697084903718960226731854318760886043822098870714566273505512678243604124233816993652474725679983142607820620863499312893643962523977921459246587698057494339691109580164538080747408670200478467913169474010292959494399976364672541109029993404349132481742022129327098063854615719808275528137825694666104886418554197323801227858807982187364631248715255243224652046392905859085583163435046270490984655503744811541203709678041710472015839301658837418579347276539824644219015889824038977798497799167944313514894969195457052863383232089761139762533060104382524200791951907083452004440816297512669315969251439148553142878237018569469295765710819082223819458283368923997472395369623641522458350689310421291632929216824979307673626236032728045966998480951100445473752438187165418127074486801244933125791104897617035376592720533760449005572302453067026317390507168131053115063881065109040831524185038822388387510225694513704174947844670635344446832847176418147044506696119564011973467056155971470290524584403682635510984674813405331402989974267095492289464734937210308723840700657760074827191256849431826010938017678676231899549558283566416704502794599620164078454365615525894670269942194347363936525721053949502574007856374755949000112575969354934433453754383728216718325268455061800300065421608317443982101640779951761838873133144172558557410048538876170736196905835673732369313017403640934002543005350179758139369870288690494303338308580981175372586835651779899270880567550295675590471638053145556117996765937155487529676741852337796297139544952428723784524287799721229941603603985928339233850684042227948416344305155971274697232736068571013559306186921011174052113965551020201338095183353574063221248786023181109600747810935588700829402021540258222973646558048180423110469296398869584030557093732977753407826000724213996824178336354514417640649941287270188543490157341581539472103077186399949880285968072611326421252914818123899356493657533130335464799771183263846683935533922258184084791452349574022614335295242058931137658076843956298841133996320879388458603541766270382338892719074992517730908408583924603747506209098433421324552165275082207810629200104553164441978338009612437466356090030895524788237055278458614216308347837503930191663671454149230722370088369919262009027097501283071541507399348300452335253491914481379498348312546359603308688545078135458847103939525882446293102445182898372472646643253833583673062886685928271830951301931631425332571199978621107945038486228994923635621952769277203320690422712474323055012245294280337297418404362687010503315349002953092760391705684693920516532381640338383454894170491077940408421621646549860833274280297793914842978799879150122390247690698566757512756697010135582194409005328986442197375997388026622048408404225343093925488217916297909855197477766588216380532986420382198996141020442635878425628692110543758696068269208770636227920453332125376862588547508573134400977403105469220706301034391662623293688504324380199413994487098551021247347662528534633136333055043816069419376604198083877913332562567988392795445651039361345328706270940657198785169729567991960000773102230717331489992187622561934342215930331061147575326203282020505858322214379330468570031851364196796282450853507370706061855615456858496380638278781782768413510478308320428277986757845249756393397333130166622129481330049685019691816922819373970685490767296441756584247430864489104736777127182248003443715879983327089793835212362081756053431358752025360611175539017439868753439407920611490952435685640715797275841221362091946381800684292807933355394334104547475114586213557750529383714595872766856251151235923885903062234916188057000982072330230081396836545123132780018633379417508974135249576578268333190459697132461615404172426709941663132731066086613193430320404486694043653661725985043461526487613755987312828753609979260755941011527552673513469018107512501528960107752182842565610670858839735598376574939172117647891507104022911567963732639522597982113146184105571446391271289302975114495659188471413383362274309217414794383813220804595493581540297711680849439390595664480784639691932362899422760963021563484298054463019904351185586312813683375329559067427026264054421825524334058421450890384811138003671670028236687953032724375634389447299339781407317706714824316181549906017901621560724017039797493728827653341542310273052656553760286767979618127699302529082432160966025522619603530980585346094004082417296435926433194904579804775305166733515669478288593298281660802343840280489504049063439749329562690300034654242887631222934738833061203642265523807967969641215306063327703452107142082193222671238305300878847113978715424974878867510007834555162956520394732851233987316658391400214774692457700399416940638668232232195143938308862109761498513799549819366366065363548509234301492483816383365310803351838877774761907382259001320995607136044767006989115954069843669877647900971851020756053070576574295415989004824973277600166681661279631583759367244279793962825857989853027378089127633134489811225027902275840844493015581963512821402912015923046311339293137586740610041968479405517244337103797882182490108429963870452926776214201268925696523530404289921418011604885835724656437800671422056775039398498653757066012628642734842652756254264536459856049384341562102444158257210470916805624539749724083962676818631808036035675521234685074149581451211838052650962536110158835552939325027930029195648268871030110891366001956253000406460605553378939530668000268828140602023900786269686085428871777174357093242041169567318216251136596244529379672819317340597680241189524962192868784593134767028709072132508398993826377832307535400306976377051818112571698043903860620994372350433088120875027326220742381841192299969782181766013953658350375701504883297747548047275499771334241338664614358160779868828429255757783494086722662188538205927852113170598491805050463295543276688350131389382339519456444203175662509536282036714645498845849298935849604462561797317792175655634873605704622405721155155515300485344259762573727590458296209777213389859914742436560139824202334578114172371158483755024489409896701824953740930328243105001382411894200243735810153263579543405465519087693470809349904530773554178166614165508502016200596908956763200155819821460094867604026644133812876334705872976294680614238525318708551122483382641806409041499111468832366640693572229009296251693882395614161072386999857088290020514242896817557406626640189245421231461445324238911667035027455459190283985884180286660241551230792130529257715482283466886374709712684291831246916037217475015749647433381812814207640666722374630058017949647743384202735405160750881469938422776790659281853107096427460854191573550664458269837860537005769865954996704417729800264252841489322505264545913468147803742506007237022891865660312950757717206873728793009562407739323537526663423917273943120262336450472236453473178402867182818800872147050238895420146149499201576755065562262967697816398298618990245434937362030271038981795052445194358786690185122881353871595958530132295392205452121521760346426367843269237358461016596534293948590791061780238353601385202233898550503209826380621183189011719125428317197530559240223719701862726682294038678830888101644722622683366953183039953859788844310927561137772864243321966471370268091797370328477579908999708124320122804852133426833162475275551758279448041896021209868817999812645158183437566149908425354452980209525669260955278663009034392246119180099873518277634238865725778567633226600914244688856409152622928167471231179305175306235255191293616087757762672721716137283625332354199707181880470494188196965937530824772457920902162475122731381249490211932725221000930137482919827729158026829644854456367718870207685745951054966692991264555533329420242803623700132191041409478589887540275159452862563065493296769976525129383072522804602395047432245238061545554778284211885202069446322230226372134002776484460696858397547305504191417070086352394446677707099719061395558822899234177268145592469159544446153463627021252144068793359212053851148536575940421844146171087217798298676419578937844069852989630928936753937583038666897166520856028799192798562472498007231557855754648866296619992009672531631976036497265549015618206877187066029377025177150480313804623943848470327755435707193191828919041126861296212093182134893993278508505142072169580336492460550936338793754964248903466388266857380873398957966248439956450021523615493376448967336388288800722383427453748428028271840242004464061318257625470167245860936113338535934321830136410170483909330483247112737268968963613173245140854116810458070346346607999566757774671620845145178402628237591535116084551160095990251451907924906111802788620387082971906652850606283048719275526285554381273740258256009593330159082819472522931202065486538805832785175001946244020086989418208163839528442973092344916697099225181312693678182858040917352541559480051722705465672838916140610561804532050112964096009396766270226920560999360609661142508131790722962925455587509510786888240789979742324819234765677667026099702896778735630140471973707369672911526338929095966768944039795302744745102858643577222906570862937110422248335107915433853318920320762798259598783202721853734673897506863214301290646338938657439054660076734456514838263812867026279641920474513334365754022774516015258658966129922774630466850058051342329406687275826142325619328465108585310691044457904510343332339408883411101979034971338696044225227789139185217494322206754859392486813881971974354563135371500643065213939262264757889805536757053531756222602551491601386366475503961279340498400314595083664513617505101405815079868276695372805651024542056177726514771241595154762287445717559145336567256373616038486382836292410888043180295941677842036403839461445554166311143590658246891029635975800401104459928985231171763994525608072730631862241465751089010249101403822233434355188535404287329854792752081285253489700844972387376236965582612755851519425614768331301983228007132663195946519607385752931113856309841539205055753505780920795783719524087043399858348191209200711004481320359527427586888229190956932738908745505928152179262839182188936240933633485492342241884901622290235116219805216697516422778752991897347043186293507375551276240362815014913983614134138123700181317723478499953672535924147630236862221937941896779365207157299146031796648638943627159535550621375477611444905461362681472298857506948460496220756087918070852944504873124189515286563761894957840771715148055395512110994996367927182949853499049264239619925710383431818598700940262477495341372521469623800455280841146992537981106580097325066333010927211834773013973328213221649560383123838392729492795094939066208878480237533658095524005388315307658402565491464136346148548680489510490496529204991876189789011059607077085332043407434141506539604580184613563782259070038628062022576743000313303048430346441543267819323984761734406730297511701044495568623802491666151103779515507859263651381878366386189796136088354957646409623406423080639393388931857263713907614781126945182511937939765179392986854690726171283787319968192662859497561446261550846991019870878294547840874494057769767615897431804647792393172691984236579929670727722889418325753255416130416569956122812386666431963101300044806979424920701537927218307685164224256328303982421539276155316652162556030239772911744357366365985421047833059862466468598289215662684569996675051188068797706844665675597035701361188033046940923054613039925469964696237867861847254678611085038033116286627382787388872636615375441031603298251394475509406527275066968184508451188162252342615920021457155657868111975857747695989687502223017150687171483032733084854528919356504101996270777108895947744849869630002523040463533006802275710652592438550461334758333294866411152893977114696834640953647617901291306367640656043735518726780822634086494865861600958923211073651410924698587470381437282908236024625146097029971728334108453485203818439876554458409625139998801927578505056221204875613040062948717068885231958866034119587176835307164188867420286553825583816561485312550312048331707234493202355063707244980947330492344054615237496671265781308943941385743776897921794650448475429162321543041393908675062661796843769692176894354217435251624084601494729590904410955393158967634694683464262117528688113108952778103030299983097270332822165275374061309153182424859984551918543426997567060297818059300791509532231767256002650381122469468093462078469478816037714054807852678004044978573825020487783745274902241693079198457039429622562183083952232286153308543645462001400131181725151242087338112063245900399561489177606878074734066151142124608471430689862231446578319621318511394333313290469494381024219587239247164069693563266165185092308945364257860328631232903088650131409594922731267539548097144133264247748213859963471560868369979447641733640609741225701729037002340466484893114477093951011457870840601450690436232660238126359394009389462701120819066777046525514103607087911735342483726456554550340317304879090091132206626635536994655170940850158110776506925051471862339839667690055173117709048616462686752210885571390964375282393615177293134151370921640347835877264429343815986509309908704138317474626001806707936349019198626616309962450660227875202867355023587974004041966013948739468733463847671527341095483099844234138311913471989951215148488161028946744326507249023497784617278523678629096137280557991727956591546514403390237481529233307832333077003795938052854676683100376757379850890861105750483352714614515310520142139353175143046855596883252224262868171395932015086279655057816057563030824864409167697407767034620785817401887422775837192138488401566748001632751571317639674568428456016735789116274450320847283413748152157122512839302714463664034653476272241408012683094278863812849166131582007932867313739444348820407653326615754063892786128447795055197001461357388392601979137394446417609304440186524423967894410050316175364952479224148759791097404399065290045173010331627250775026819794220452818950330453397069591018147782682019248344246322902901192494677598548722931626181062585329375836547769716244953659356596871176452847414424744782128969730629016920648017006621276598651749003324043959746675271351970257177343886944952273882720457410230399292867574373441873206282498921233164570846065242686364979748725171673965119805663910698910206101639117033625400896749199924414828411892304797826075708974691934167359246479856878960788078086552276531363854125215696857864200497180026187448266073769778867012563346702892860867334674567463492834366534202320796512212708891394237820640798010609091455509270069989610563156996315883572992121445458610118361476830217521009029441553186865820251451460276729657698876486014806100402577147579465174485746261228672219322257001844489695118695395973912206741345911435916556936132848530560630572048992316905936983974185388653000684776759293561509615676934652027167776177472412654256616665949748739004062253332578915100164971495770717443970197542120204049031791331663604007436199689840035547179640502353501925026746309803710139872986485917144990724293899906782714840529265434619442188874523657664141783974450789198651657735827849619867822780792832433488387060991125130094698259055057462006350675079773483682689950129980888052051639514501355771776852041366796623703506384135634186371102683864905510502088650142080829156587826909552942511173459839567872616712650036275204247988989522902199758527049806580789577018215458335128178560394354507781046008549130047299534230930847452587830594882347779641258653982681626604682824033884438782504354226420195963352122496474452076012258032058554458480010284206907047701083574886464824046011626623115813110050692460388439250704629056074947852949129766119176070473947105627351654813805708750159662038681037998148084392458033753677983338944221734570298063438815231506408273741207458659384581395556540072046432001010539257036613741581128405117336868088448349681965100145456910552092110078723788134560870585742553324169959776551067263354652052777890253039766016313159147536559850437600984439979103528707746091030085357423735055729953513206621057579465584041230800985830327850463411239047183974634874856825447160354425392684542173987665986532947767276785008186351818607392883067022550531569626851189406137680630626167578965922931722658068679259561944987585141158507328267703160212525298766386783537686885848317343257674705604691541819419595819215291640060915149792980058321441052359440164512127966576540527976225770261671839557158663162703478914724457378875847111354926497674495008562644054440900073366024308678948617402722867056263000545047731271751075186456194045050980041726229464865462795941010646885512092605712421102740073381821377340256444611887192351519193486572641593359902420640571496315353458105448009170069985427294051345941808970445561379937855822964830196137509647259292567561965766989702314182794174411638975735121228601890217127316099659958107655069981939668140519691967273979072905040865086348401598273881802597778838992110614527382576938561570036553562441195386794204554582086716159346706852090501683038004861295616719494390064853140758244021406385634976706853883717678586793120901810344995301215433292746933125993733370672193197631677527069285543901548785755363885714515301599772567843651414914446598559186735713110115095741612901250748628068195108167876666353747238519235600876834413761847422976061687317342239439346574372579747733204076302210577381250539639890413068805987947706910346110620981326347769342314366588401186580346974809438655816558080228232669727730023693336641702636256350032419627410610709084163548449875082981874728617930146556917461724319306861071939114619008240466390548099450209841044589537363304662504199808039860335812123528682500496759507633596783872421761975573832263016911386696210998917969217925676426897552076679424949891788272953652098930224981274753049999981803319526923359131708749548062965738460971074534877724477482735385211507155733548551821317704720123359137593493040521989566061442736690425333337770016624149459333502018924598063070506105917577784419835864397984407174151409389924456438590032186629439312199206032169669784710345817719773706374770655476436900680941626591625554611755275657402803852821247400406606454542367969446210022719681631099596828370738028409414498865265065586008863589589660523903896292220272024256972294891192309747301550656551944961117055441340260121278287289895755427302224179652121241348815255144956180427682678401667891988533092123032902758417175360042278659300041155913205743941493556103347093798456754592612615394189238856290242076918277297192786408032863396085008595413972569854596426424296409747950445637084197861408235464868130622704769149819767725837853191581602806530124803346965899036317793846862197239220802390823830392836586760090120796328765983747683089305745846560572136684478605749527739974565422389546025460167597213890873680654127620442344408593581104560291686352251571050547580363706619112520031146807815900372265657921104612568454405807869343343749582303544396649346676626431324737232637458341048005614280496902209871127356492751935373339338794085898461538433726998700801349953948090887359666528944542843281091534981812732051007153198222845554145464949727804801980856275754399873991369664541799236013642589723831300776114358533947813926361828928495832661173703020837308193133210251703463515563066362047123559454553434192189595145156401344853814958359001849691652827734650147434517433982691580995989083819397568419001217514789987822159216745860867024851903537673650991949425141927800422616780593629005618529477561782229942170848982262642503182743406154609220297540639737382155986012349411087126240153818805950478203406329399110593664072640500827802066371594738341243461130133877810851945087452349937549300727277075698494777512844139392663784737142219283351088483992999622988067311831436504304923928457205299676151219723913960261578945775300941483098554459785804748403446267148639437777152072208261696841420382704140992293094728698218651778526058763650668802133076821757112904200300667501925957192982823283062331146598718258150620349251344440116478515643520570038784845127234132687436034992326067987671526506724752525927610750780590603329626274402226483765794823786921107730974210565351066651488557507266426043238488839493445316772544163721049236317267565458195336704924337956432471959519990639990361702860452472533471875666001229964937880961446895042248685156455845445532779697842004723265852936243926782477593360620572437499066458323632101448658397256437416753022514759612599938648475096773024033230626618496248810840861963890243482654230898343886911129001005930310377161328694387530481259711847182428714822567794765763194994780271432739506621758559367416987656832532202056406604125697781942373148940214887109607702836812241860192395532140613488205201270900197539041535413759164433303378437988491916079649235015923300159264976354010894877140784876226367358182295749107233681219414781651943201062800186127019642995575183727265629392046804688685094364319904796543058744499144732453400002624220485453342456805322287347618998644521486007091354895449499353328208637874368530377503612347436962126295607689713066480215263864869826881463112875680664548509240520208889723776022956395014588313081195940289766912138853965304101728266737944513995971858885542649227657574110511659612804706304194235473374971328563926502103495416848091757001416324488019659239529007118558735181031401191726245885798050845090563922021377604742601672072837028544628436102807689647449760352992979291551964248158613586398342325478763401795245881227189411738782955383776562743868954537496895621744128605971410242985250268441347395467267619060263444874789991346684902344841754143308982556354291033833729585308405143044524030246783340018191816870783599454059593613569924921569050162274371149707352695711910965153214815206100966438330244067052019854504665150868630594657912045166138978894570734473623491913894588505653631722553509225954335081933063431889793534262435210438498116061133391855295092259923030959231888651181400881985751287715398896107851454858858159656917771458042262688499965293626788383466146230724325548866819794101130656788599919832624106900498972173230784115952223103762353394226017379059714242308963856135478121160789182819681830450197958286418114882913887818715811794063819567743718772408063415651981983207978326491815086321749308013498324436267034693964558958176481180719873663969994633464656250742202261027952959124540299124464544756355408447029852808895745184183583995729730470658298677619179053099013615998627950215013391360963706812922671354402519032089473429265102938020577553452678351898132623694760073788702615818234909260182648378510781634555900801859679713069035840727222175128621201632216470189266795520946401172028023484977258591842742498189067050985808403511556752411991760194948461197309863314280043784871229217298759813258100772684604949191601344990589422536315632642171617148916182533387762002477372120795492304071587985351909448999291375591468484589841441040425079121230734027476685673974549259161489163944675720409846741593827102519282973700365900125271465050350466839633722138140630294357130199427116350773399097089841073260269231346715776999893696238835720999677727079987142367440032258124355088612069442771927264590941529750848428732383550260538968251974208540601304033961768884221773510588904085048003397839869732332600290764460304502991115205041460267788091515586541060550550654552743301616650408678744354459216249831519619167998668607347266874989974716889483590870988519953921950330656988810225090403785107564417224441478674922765839348638481888993850817587998297398678949803250328471035687153003843666306007849387659971744272915551170870623382287959554836989856341543192406577425872383195832253584746629751732588732149139388730059153167383353838472619394636972796973888581037350950084857682855517992155274975317586754025833104375449897257983000303540901322223513975260636279263401160429541242405324882469418847566852052313405372487359540958090787408659901324681066797040874017653864059696785077522539834716425158266289754956181546021770467650038442960967113883991279258343604300471081537316298708987867447708848242442278473126226585308146813992573117717272121521071659571976666802858208730698420542410213803074145905475730090852456651191148537195020940381841713470093430372148696548088869309147725338810476655132328315741492315509729193652266612988188089875817200819371458159664648217566218119230859630188284648389154466372344552271460262146690435286111865935788023262405625921423850762375703223097424444391817262932914301917766098235208839172901368595993155425961367412763277737783837872907511548288233251696274424511401500601348516895363006297960474979877056860435654622123447043746092333821337593031424002280617019318766357304111306006327283162968123079845419421058394724152007418111221647419394312844943175788222517706236894055692920330209500406163876284399456252633579721868983562913162094429665417024837839514902520819736433609810853311238472465263503203717173884789012161141544330632750700408045063598390300670643867783424059572544893404116784650852502078418498287930919982739826876289275588823506597625567659637752074750338421713135386766577174151959770607019379388439664590449702023652254640847097424302284665169573959542427580911243101073668501683117109556841571805107700381828497725669977962201598689832020959841488070188754208166705702399879283555695449372092872552677793691156496719211222253402287410052043015774723584297924026646988737095681568850358082048420982730017244245824215664088995755694128648638439337319218007288940901277185539932675256203347414128071382642579108439103245708970522364015289119322698273473749330632154369410209174679512470144612664768331214875638484598716222869265143866281086537735071815961114651691384909961331040473375693215493576100320580299516309213221731655673626149131019059652652017668495936206964056711425701677605520772262931437870500162041477868270520804024584566143744864052543103913130339429306661416170879992321397040647045782436261266634999472602279552042334617607410402081482806053403974300436134886548588188457755958195840606748689811621904395596866135590359642638747893206112875659314293631592332894471355503994002275997494707526678739204188891764271285211280833183719617204344121209529067227246260140429491209696206090620280446535836342966512271230060103969862377807067834552392569466346053841178466737259476588086730493167381780730066859561825877692980518302307767184867954984280039436144113442862277366634378278248983447609710715810433688606048563883882480757710906862632387278331843815916628318373780681719353851243631184612615935866402048864737438181680673103662854873697618140494118331381929389440677075121790877621982704712485993247953042106986557875329899716934196581611422950052179014120172867435642547198051184276448252581628648482115855061052071434845768058304902225423832728836143237600558011457059060218251253534105393361078200414633324486019246287763917361181851572566436260651990839290394982630061412927046226550164975396642265726995080899187245934555247456234885398538098108150770142514843754872292822417122043030235961795135133253406005171469457712418867980619093477027371361780855756444595712666165061640049619672530426271142017715546559491241337509158891663536332733998336296170688785005536003484387978142137912908054815805188463854387591913397073685533517706913996834118004155152360474410096351469290119901178121001951027955697049128519820121959728943911930232617323237529130040277419991479221818754840209368121827448198534064092424847852149652731326806999750160737743214036812052218601302792343868180800503660586244994249278590767198312564082178790471582659800980681390313792307399366260789804430083020591892910229351411891535200430494527884178387018575286488007304967782531199740201055229663160620109515970151026867587764307062886670657030988396315461220969156948170029646835592172129599551842069904258494829339186004416227288063938502922252803664013451709374593382327328874046538946220057653737016391696769622997170540904047650688380047632421647150756565432783239819583733314044658020719522458535914630806382874932846721648643755393249279102330181388550795028036964307612052024654239111204781158808137334138686147814227644985719376771097742547014845191507223181135990920736593597371559271919605420507759898305487770199534814143530903906019032510208969137258404253285397122432782693861263830810175158885309281911270508642928855353416791227854170491818268306319863521300031306537439297997204030438293113843809979751912674649255549546271792757316675950116158128907748665627237874744749175116244937408730751137328127911788900148460990103024407438552554556047816600660629608499370731009704397090626255014637601109782359193366949750515150692150925571211633541619001849242553908870957555845854755973750762786079608583206676172797443796662848117121525379708196518569621653899327981563430596451857539019657725035896003916098175382887722454588437388902212332630489498174196743395030415958345180567866771293920419873385654089165101183893258067654087972005156680565260423646815338429575804088165459799156804698176247993888176571734185587249024536289027641230938038899416427085905610624860512667100829003909179740791376060069960737879780267903473861464728279133534638588236432336686976589656330683403432916759991730485087217392622183141756050946113275493888500124599671375631671699500857207473278554175054974901398063726361649419932896580207186226089565722446419903416997815705648657573698720349476417549435984441131024198186572065011746119402748602662390547693738708225996669668395875382735062618481009564204507072287462067526178077965052857259433331096617060351597533573363609917610703826771851233777794106930896207302669564441162691827608786892118860750535304424385124046497400158348881849619311684632824886242845331037589047419102334955699095019028379667105959185340168929788053620048187377282959914370608422781786930363035745103400272471640632275623028293580924506569245316692535564008340718834567804504588783094923347558667201801628650343616340325371899183453052913970238491395883275854880544238544223187504351832036102691288980773322623289624209277073106541393694340110509441934322184969146678692378187342120023538203050445851068128027151821903728149283249806426227930319141407874635236724564497054480072186025136162787476123917331537794696284233532162703932235343088559172551141892826790630630253049342292214035005987865009553790376720662039277832686189421451169471255239726497395071807708323271275676273066485405923345472528025363255139912583770089332174408122940758525111581674416496515404882725872008162635829243747280248843256894946716350432445182247710111384100361752153412535894256577358080284564917905087508945438975799349128017268364344885896922988217073484364312433679384393282797527317327869674981294220877137252514250826843053654480092321462692213847775771050022480594163186201855957112532991607988632660682520365969964466842572914201199253437841570576659531704347043297031623656091324976556538844631592688633849485134238232659991315421135588223172147798917069294796150385704876061661530919468676553949310938129981958784733554040468119174310556062149574303865078659591773814464216462505185479259652738336701559744129342433808148358036446616344256425529331585337065167023146164877715078373606731243811475503517548281097147842347752870461241026863004056554768284745266694022967697551453197082241811131302684065516922466166768942566509448261247208095111185950020366249294147716878612891365252277940893494209635970094119076572085619226531063741024526836897704957858259777795055411935965058915423749276140648935044001254519397054485485311624226872821559025295405137112839811589329091703456261454147537258247210465282154048686462728693375170630818153096782275288944713173596182877871837191944806386287465693328041745495588293588837687519858038416271193353928655470344947426314196242325335408382641217025803334247176228311995906619834275117534619963089151412074392484640423796458718430327115056848504029103618639239538108086208613276167503577551561547596566451509123543051886604924371024626887256122421777682711754843953767541626316312385812272584973515715268241765212811022853881770129108859062863877831798836370668748792675785097427417077652056126389537583804563566408483393404415833990261935887458950463881629513519539431944646599005428750992770154453108644805428535545469675980160305179662875517855670440730975865081069405202342069165638307787976456762687250115382758881405938324055174097645958910973991650004353731659302110701909878884087621054921469688841321796465840602398567672097802291833880548740181203938754822377477542786692549811784571686454757556616934146877417325035694808989123349839592153347513407296568940181404048585250314672182393321249698938593345583169060302658376204032308875793037499075418994514838410402528341593843265068889792829507196958146611584011708998649308682877048546657749273177323845263401555390792814975538447240474861254200104233425658204701703788721712904307047589176635861653052082365446884027031244528569758139041667619662643855111908779334855777117473354971798134161274460814209910988914965532222125405143601549642373339985514394578879642000411003058695823683890307987960862232068813561617245531165831179501199058269363653347865121364635069199481742158078226460984161486492350855039967682865697963309491440698845575384066517524956975996137799149403225274493910486258428854863520399553324427710360762857206246424106500854307786012516611577064970277967280074179036096945303671975555883331005998877822292481032942912554569839881716974477481604889101901869514594242547568164269899083868989529834695468931240961327432135978369590058015307367819617222535491456291429501701828263913061670949014891161179322807423749841189508080602779845863357977590222977272864756767170372320309875247329613726284799344610762471636383156794327342208201463077464108003049406456005455777488437690533441964679710984272742373421884972010583280711547605295246015842968779538019432239195636015591389903887328849307055805545759712393135608752194735950038165632407759969941003526438151792262880780455698528739728436455914777522664268039073661843099794328092329309313492190119398335173496437200169137230245951771744220813528734746769270015766805864604334428398606892589306123003576903548688112645452960840410793002688954189577416450464575447679860256071186778517358087827894578673673267578728659546083117320800659169567347701417211770994083300441614091982838078746587749824028586375438457319348273956809804897312917109452761968509809656980474056019457413090522719756463090587574486899107447972080805206850318229113450067534918328673153003400820876290455143680295940421883743372367710437583375819651216159009743831166690583696838701925721494404549841973742806191134077364525406282573915504928619733891951895592680662263411919457850937318974414459171351116719395979614351865506036096196533446079877113539243758850570247738822744266682413095805723744309015227316208570590285091722134142424416017584232297174811085766756414473734702218539240478454022881561952024753192303849996660056827434055118377837379918521319851327103848686904514884553231295290847657271953566924125387357770172230168017498190786919413285500384618057965246759083252530707797186713401018098362982682709093341458606052660605839737059501394922765996788450204898763350051810931985239200211457647285508283209089645644681265883804630343979027365331933743054297268082135863116696256764653179732317402370625208293766789904104627026845056517917597332186154719727066847124349770588074551785530957934246631088657802870346401572143274790775354294404851117357596831510591441475935987556914701034046982128942073758241224736019448049088406965126847479676516008011759166215381476126068554785246506008232441514057326077142537528165245221658596812244188381672537953547667458564575578534732000561103843683887531060780952057652920524663672490377271874530526358374536450576722020332592606784747464252047519985238765715149641154795055669148771308380241056925453005108302267482329469692581196988921733321345437366700273865491919398104644150385761887720003866494062113519688088022596933542589429272046154506036073825505023583480449145526011979271417059131165172588729082751470633444171567175906615154683448691942466977099134827189922022877116325674353668852880354422807139109261626141999472303714858247117582245825582272096248226501744609872173465186257669917358251739766439689209528992718520420950617205261689327045220174581067221975234659586308173563562586948167820004052329822417223081914694253246843875850753301855913588655114720931849876816739953218077011070992788434259070269084262810348015849203295960497612669630733956569648488725593471447752131679137644010677798436183970345876797018650627344029118613689952179422610076799360399080024964927397029838579502328707491341804880235016644050480737199384423565327818835774916900016849544313638444773365976464718093187963133049890460580733087565124273606547826825434073033593152718035913021869586699783293016643528101650655297414213101486075988930684887721857047579058816855294308919761963385617593377689824286820922124575873628525117502317973626293059616914848945364118454876232126727445570367144640010916675566875091221538745354749213537111572112224083243144972129097149251142070763322580280059658522825328530182188034287989442869823184010213061138207355741066663516895582450981433251449433525134325822906151283636005735892523967668549889197071918030467124448714494294485161175760117675371960993445951255263112055764457036981065697736169010511690483328471270515979451091648624113043506648237395802722411855639145498779592646087263674729283827320445019704112141593314886444145584027650983525928818059962299555264388666910313802182557069786278784269866100929541451304160667083982997294354604990053665135219575135441014006924514571149799917652973452794137528153190064655504184220423735482833659770696653160613314464867254746787826855307458704119697172083308023331884089779336454634991506258293410370741522244272236040642468892685013966137225363262578222944862699184586500911763092289105006949625022277659334387263014538077976366588734924882962103741952640581690872081119070573146875710857644028531281696707328083886656743231563196631613583712416230564481939915081436289054807487612425107379230340342055186455836610243908725221870771593751067099166037225636660981814768555953283472252659268883164933564330462880656519455676832102634024677916714878702368163125298450850319938807218851430194391999367254344392501339132282485363938690480181016183654717954209701917618770549918608781034839840295265576785865713965732967531910057650862921410146407166546774893929794390350947658132929937858617785989188557655290782603091274881737518576339627513439549532013022389753424694569450444641263918656459674505956835201724867246066167241575821706443900461123566881852047605262497710082538830396173710432849856715298714785978238498956246220211012138826501286056313222211784541680001927797626812532249188297351706849821741236441495979895247605731411976936038971177678392529692380706006989107041552483423168747648868725885670058024609091061778532695274639689554723873403613267800425004916151996677209697780170322083674468003662300895313520857672699771625804901457484169601931087639955793137568207272873996375649157293328175965897266366954879890163508638812955973853008589890926823093499512906054944680505334833186131201354095417621587747696035093677931845276080487138015505608978609858218459789722919661580453483180986509190388830306989537699705347744214160227605381416723030387821849385952223944548895862568661962330981688144925376553018314115357508372507483240201442527466191934741487602165843458013346506885433040983327308047902956819018516717680486133609237769706724562441223667529014060576265017886434905934759799229729467718935675469411011912158431752443980341085374721654288877960961858254742024171904188653642301903313055488175150518639484412514317340752406280824338556537053528156447785182056136574509336954120762430413540807662070261091738311746344338900459373708384685207885465732304178593660773617542493178022987068838722077654818076877358660441891508736446226350963085539854736125385357407418153806351278234286884912626173453985383388046632189240606005855063441895593199687125806124126916164927160283420859490933322446139891329048866293611468777876364151009683143881635349858919376174660844703763729728570409941238308644433006923126929147331725790313796032440649381664875052223370848558023587296908537801573554253619275245799313027597301693553602602307181842495341166142526517282389751717987630174525057613759085353497008230384506616210056963932576035801908755080200224719403422089343391235522869188738718042831899434853217183788195546192528220641189646393630454129128958735558407338876503036185198006031511261625167253074349279505419021415476344700644796264469152091441815232300344052488592834484579544939865617020412093847853972695932899544040991239411223755019995274875451368924297724746458745700382591726679485073923609328216538696916159332212333253969653648332238403014468573176310901950190876272049048613828500716472399930311201480787494873088687735859776384154609361619240424703317205330922663501427358990458153694280587297899005018126380053306774133430713734098332907111185947753044740839546861966559337451965236041288987832980594901028279668765806922167629454195180800191331863637894165127158232108032980446295450957666700447491314099782551927603502065173974877832485543231057277917275934971444484453255881491678690943264824164228314586588220251323340432718634810513989115293898557617061115445873489358621177913609807620297488328972912894382319747764680161844614329546266846775000681289549670591177932964450675729126261273283509678759419000697656152119667575735555714715438478984387407297513972832445398780677043309999854892206437071539872685978745802295038653242801069695958347625599648988152032095849396151736171331603534018616770108432976317867904315938958634410992279611116815466336410742159916660894835565566713432090980085010713265913835044814091078622837821130541920287724432701900181055102609431680882296273521337177247488218282786139930070736889773997342951020075799320489112515427254276285813505103112054845397525661522214539422123113581620818939810902768731704094122508054569943212901848157690284052341825420562292050633938063378756086709787236058458723519924692060097769982765347904005016437959084583755499790375582272395698815085402257936088469383222426927427195809585986737078021635874258970950835573073467751440014625279745028404644683087723008123926669555629088276521969581685866827713801689875715166394546309932217951987952741044489019901102186416473808561598737220218040393658759837386242584806211274786169014787425522316962369879838987436126668658422898850297541323160842000078363716616585967971087400568148884511471650996494359128975715470519806086214742219719985352188263792344329198349070438157292390826800724987062217998503398944455841449224855087998243103150447617705190153371464831791703189574679017508834065900799736393212445728600682029718565049217279037436316770529517485410887491042341136599732981954823341652148076304842545289893344070068495254057763518671582440513609666370314552589878351685282018623838321479686237623047123522318299782102880816055173595258752930186831223355674942404625476208287414807034741284415607455360854018528886532331460603814178779270016326494277021295719109364824397699849245129846543147089909356276140026877664085327035741675078220163943815634111671804448112399591184468492752398623445042298172081642635681068248449764130048094038357497830719078380475123600534427760996140914439808015806750026221011763518877523509958748732715780082897892739232349177037138661515853084603983289680762950783927225621277308390879093503207937706696083706655152691121193822590194936129626409001067268033656286582190837716938218459174023180308254719433029273108810319124054766321599003699623908810455676728827589837819813540673851841327873684907627914071954648353662154484217042798311295813982460769274720460161219168512149277580620759658199651045311319162617547198326755289495426219707500465739710242957579779443579102308117678072788087706256456576058140933287270132310674641603039144595114619954791056718009735773035786249570071187843552628284300549944480817307526469212865636133647029550326956717038477393687716106442450255111079804165121811191682044698597820472244338241356049294751426464949411728197799881068622261273389937193210972058537164925877533448225166769249790919455065325480954977163334882509012211957734132881229404633567161188849301708167653730978336228015959821676383857403846525536870692561983478347265752501927874118756498654949817054030885207244527738898340519499661872516484697421603188260329110943576402879145734708305753467855885224226128844605806944430490905604154784018619588289316306345038731187608133638330043759182519446748252119321078332578265195955399783909588511424801217349960631392866108289939055738339467659263351765502260625485430470675287524520697166816207690034157440285946484382143649440105708323387896338737472469588614118219481384830087054501071144061345802635211535591346070202676742777575638740122271984985603734433034795521012201585447903834930185131682719974566393319149245316508214475978806192938854224575627886080000412883119589684177455401137419393494310728605127339106281304197903238515351527577988588518352726150015909306682927558231439545421821088027626723346236345429957771603901139706304931597053494583293406441291370458447502489641821696449186397691529874015638160747215179361911021262416615138243927266841974090598770189614585917981116764037416137995148527080703604205332103356733406450429123966216200731580362770607091003855954330267413905655551710531265541924064681870570370100215220842224251861151157280356434646247955781571139903064727460826683234447694215661645359283215692559848080473556242746990063982902676684608400057279005603521085780333294815208485666022781461607591202072393262896645106921076666154342468441452164395761189999939266089380953769066003714657981019706947287938134393395288447081608001973050854495766753804951106976881023123826583228639282386973325597791736671484611080386828900800056487829977199194541594490592057705917722058501866426921845005737948428839855030930902028310205366037302170711111994159475546802230876016946215435768582051367120659726671972721938846306032927224071523432054878257980512683663273563028128918836454980094900974873725171080138042809207388376846370610269012289266321873814229628723571052319150648190164412760987842503354819510175764219610565086812632095980300737099843235781462477665135977466454030689338915422795325072679760493982942185675976120944440771277600317338354935203558211878299569715374728908404895003411351467945337498357050715868402571873729306325975217967525850472097972221661010391460206419457543157434848868876459499718679234696500047575459102700066810506723913034084629675962586657254958966971374790427856874019084206920876785409969305745051847029752506054550523748782818342939348263626742845398182976317376409413514016307539433116169536854782757323726837478734741399732225073474166555087974951028205634914592229521463354977082860933032387609507204085711623628358774951235081539331644361878786778803610592162346172243326185036880366472726084652128267271397022399262205929250772639207462001448990404959464643598188116370775798630717660719289144044976375577584586982344044595976991528919404044713724535725285695199037193478144189261811473577580749712733935271187816632517585497981919730033879032666348826411866156516440714403236481589782016197014515071786065297987764716860233805233764470000281696440381423192420579799375422594826113497263184046963480442275468787789593842112864347303661823264520340901493241410612474329455578674511388325854203789131979523508250350991010740466070591902723073364485964667441462102264461547845318857386156907974704158504529331052859822139915359420648793974793446094103172860287504516271245724270569221569890598383970197249629842165315770626916424867784643121742735682729448181138594247532099982466593857839151865316497081587170293590202715308082067014448890856243017585454722646811984069811557046241749606600270775770889197977435676708152820669900379510327967965293210149014647261403482471445421270594989504541518097532702654334493422136747227646702072101954789903595200736528664533216754592241413298621926918977580151061694378718303182291640996156113332445158811258418080099163758983297244434609372972244554805482629499391650293775962195773483759212923000324723432412386235880891540694055182426245414378630750803059610568945370337120734599632914591865469513977410456873394794116146568385713461818235603723732228950302956664753326385583758303311611449508741970103893851263954776515327469820060567279157815549600200361018969103979527993543234415927825001880208132981888408713368787424669380435270080145583355559954992448544299970130638145180991109934255159159317902631359377137205140012631645116784697673797049560605230869481556322375875931594425605490706593784516586847836266573354382575650556155790558492988211748672384779091343332304608262282835268293269270030719986852343744096713976486636447614435531534183563587167408455389480335259304216127142803472236591024475702127545618694437428587718325947642760015825947546068630530950180102094714764114042306825550933737565036625306191485106038977140669577435268905458078980224911551626322934025766585877723435901232505741243012673714859807955601933779708923676456622417421141968541129032389443121265927214078535769540567570319505373932392314067614333196253139903408532423008302876230089858454225371808909179514802266440581005225815988290418624032835963036729036191951211349212633984396648236694595219820197941629698271347334698540928371666081127548940099429106059375792406629625578004094491578171606682414211286119655616687932097034185177091532703349317234591193873590911508224007575691792662253641124927800528695962067904462037223936721545377129805441750246812079286487234984186966180310905067930951754747041923528311283477563611001467028708510905127641158026327196879296481701583938037575251970246064734705629906549712527319671755529283447703865912715278593629842392427214280516641122547618229677635703221143064233045763775758057655582670718611920405695410924571561571446577764318780812173717969774167883712339512888767030099381027414140772575803286125672740469088133242412276094113802329546374974601439112033328901967196006612096125895267324322962109193431934163481633347892084547293971760613615670652198307943151983318189395353180664605959142287687379626121041684891212883165298900030177896456419287035763718767900474947143408969405832284838480993674302724201171814319632298916790136361191147542904211219469652350017527518369104347472294650822233317562880279994504560111444098822886098966057670714629586204825861131894711788423803333352682566356352471856876546912954877181558087806658703850001031928878812789332537388982654580228467394375179150103004599553328317579757992208419835368091684167206979142447942969666480641321914276961059584754346166940153797245837767471426466061690403513464456574161307777942759373876267921732351903906148968964537194716580434461686762990465254524207298831593121671492837496200365323042612584549438555019760538037284748047018668631352982077894190158879560478820092293297827474582635398215885984788513484425232168822631985258312329639935351632295737512137272117036481974901136441598933779140213018250846617972371036228937355372878931920112112447674806720092047521419591181432451836976824449777348277554106698806145394571816885078797825840603910983244053525002199049596636847467847328688008547996613231571743213334390156849589266826766478859677494297220670166397484851880592120035664550657377861205796872569364956151859951192593570643629372633817658099616873538777949350452014164028408372814780493194752999445054611981449782495963870057974460387651492162071721351520253482659167672565328489622674709160251172428466206386453920690363539915237317032387364632286864096575980767651752792772456978618129166005666751588297176670852507707846173955756316588264842171474157959553995291710364497950409839784123167511044979052033327768664938792974631657991677673620378237883523028774693496081653080532576972712319447498022767208621632325727966136675050566597067897527984915299861415452265531244956404977929577188614188924331542249460269742649289686192599453755609951218525649348824100214305147437945874842552732643583403838972680841188686077852938339409269562087325226629289288960325201492525020052024329878961417856618327060917763821683074073023430654807234502238757530286306011066630952167216952694720608719402362243088846887121356701359057633600894369249880887422004749134936336333477103889544431837272024974707477216924349514773482507209185741314822441941943341011556499187504490805213731235905532203596794528755858389880909235939432676515392381830743526054853468667247427309912386081426628174470580080265443090308286802026748660621258467849610924516381816552903051584324760263068707577935950020166791927360413799458445224339902311952467479360891419469961528989659268613853541754270656631727196031302615625735132430357833371282131904002033722003106078026008431406526209056994890134836967405375300910445085660117118064066090442938543282392991486985477184787655565618737250502447965877639726205781641944450288099618128627612156845294480643138946148249585343380183651356211465146311704427981250396896491312269695704520792682854336340910155133831519366329217802498631562159089707742212361351788799495066638900014357162372653651147737592919696497040637364044639128900143674873694839501919471958849266106091933376795224539398189942517869838690706164215547753946147791924488515863538877144367494525214189755527491562994304721745145795125694667846270368176281077435285596799955948953984230414513743201176055867767711572841246028742521800419565379501283964452563421518112516666513662181080816178923214035008812954573742458191731964117308783248104918490424970081621793923848439190649265107963485571230824074928068813670622892264080030785275151894731909342153058296635414229673081472231728111780926265312155973259506050807095138005372851456025477750833395206650098473698059638063315797115177432340782068053312061357524535291037559180876772186004483643179566824602076410866873314916123084358156662344380456246118550026667993761284251221839350623263977897586502122444021770608362584334969659415551830674683810036474658537579112760931547153299982457754696503706520281706994341979646925740138781815671359153061540999948734851721981394511396190966481096964926346399709413460777714128079308090120566916994159995412566536792789494152315324759070758753542605591640348637751595568642295620906199665726177359220803741460420301762410482262937913188549637206271822351413351505207217070512793794062157876466036088668518092006304332117694655939756644138284896128120456871010363473912092433377802335560226778961556895354866308942868625986419571537787002920693780801411058356362704325014388303246710320486020510134390883067124230104174107428558530219227406382978673806425667746226582226692179573754487908865741413945654071330156289375285583025419373291188652469041867269653892225642449844152913164661126448954557090793634680512420172061225378649806486621751773925663352080666148279354974296667575622931720058994186200812095680821478414083695750575566628195976404849659603234923772996331118275281479253261612175041293849512713305776418098844222175064611964453774239680499891384455091241363160023543103337654710901730150367852912563608608485357380299914561030406434617868774893476804571194322538522141710520551497706392245351878557832126269533507729256965671064468060633311140545464254006813813241773966556584863964046864206542158077784893312842864966576607559962569849833161351451514150713245973864898111708931072567375691889747820581450228700747136732446693369434262178531341799194316940132680095674892675695132814444220327195314886340436004623737872167370596336250250004379888687351234537281580449233893164006739864743209648808193894078471449041431416675305782634707827908881718949485496471923098243819216721061265615390361648064310499880496446661226058149704430963236760741773961027388329393442317712195945077203131437487236280858017180694397376812688255075862924490624686544449175274323271885991728957671605390931300816827797165847219337882724980925712334432153026352744453298419131642223410185127418890677584347702957005314977562101479877825083261238517548498994000152810703165699296654799192804676383136161278925934168990850231834236983254314374278047888347690848887846624346089498155574523950327974901408614767796112686155661870945911516947182915164966735755261315707353172347193608161488933533466827868136279388316270375674381507485023058204320323102221708960132994596537499240511918723198501917489237226505846656467213683589789923695503701051837986179476097307030047309080055745802886150440044485133006672464007353955798421408372462446457572399332471934183763081157500664186018401513526595363720470161596823214517246366521645773369936121787712353280729729418080923523404443515711664256256216428709983817281173437514679818808242724992599804516985911839581355162198173558097874504073290648846701056135721083877881104294822761010223317584747977558445784889373376458277848261584523272374424794143174856676563905854892240906522533705844182727484621239224963938566260340542429078884057077762452063871800320054611196856403845354245256203770577225720357151311684352129002630023836796505627165126994282524678085817884730379735143660290382433300506792041469219316333900384256644428080581824706527102609782907287181548027271498516327682067490061168989758916927962228386309507625313486523986849105573549443079156019656858530587902092543145080736435201076670356977540416859950224286240296265914811365478761067452882609908694771875270971869131433264303182841653921497695695155246535656379100843017400415342693038685974798843965128546308063779222921617956139847491262988779112475948011922359426282245489785475716937444958129927126450986833853734121998604423323189246315487585093472373594806085348520991426188118152221614972179921554825374850321417492112967241415059360451613677258846250906186781382694712129419203627558575482537443112690238605470285050219806775385052133349184958920454145322933809118608250925612415976431907077001405076671776852415906251330854624881965801153999392774370866669790179819206664836400431731471584365538789785193847746233390149041846566065091220267402495305184023855443845228823024966212320180094552497281810063730613583113656833510918598068174165198195864226839857201713950670674038826504952008315396686803737556394086945833307285319881925747654718251925544868742366766070922876644324942758122502811438475608475704338979944930294405522518274244145338198830902361914378023673371793933529941514795743365197828896636170619455555066527885286620878621353936101825180914637572042244777076650379011608136283947411610223360195549053516785204363278372663236408521188157101486290010371232376765202931837711493984697307694150590303670091457843085161032885103030648670272130746423997183190605949789705042996711089450543462969608760389923439247266423336289288124950026075445795686457731857013036563367404666351982123906183232294322343261358214247154204491040130917631784898892375734128517480014198038275902594612437421370396641965437120368917237676442278078184481594602370130314894922725278152272615806239450966102394540806455072438548865692169780645613669827442997726661006122028685452165390463326643539660526281303112565549633421160839007459385865300108690460316507261464298050341159548859969243616090761886058333114659481345101286971834210432892336631047206444022257873375994693155543180436323259747597900278292395315142859622710319018537783361876518636124998780430808223366395031636268771918056800939661164041993973657013932907340662117398287312076030570592103437334901026239972847304110826454598594243209541426346976825345158909864326392926233705238240118911798143030350403073104625944585437455930463402986748248277901149628544634563298888072586243762850374971005837751203474456774583486591148035186010984281058242906375550075037722908027173089699799391346544922168763613331910517836515279039555462079853122001522307930282534259967291078341284224379693609322500864760353345309618089356687922562729699619520229101972072142334605171488059756815407585796943254317513984026640201727433531610155883343762549974500539505708750302217233138242641427500926897141313450543505749393805955798403122790183176269303449236504108254991080087829659712966452125229036121768070329151105766147602286083228308983109922433850492870950035978722737402827799319926609331892911607709563273735621938048311767363175475167012605946801612858553536969208612471633329090468121553057659626435389411645708913827789276639708945488871304761552401388762910134478410802698576676350131381635069567100769282359688764448560758260240360596559106569010761295129418472493018590921624294995021766319371952010387462457616007559133003351652711676879174334398313439722320736620330321404130407402065995791905175524272961515118841138500538473409984956448457256500963267440489905004996334009825191649294647790693401664767435459050543494084805897327583258227587480613882058779034986820726938523148056250772842542671276420571569074230129282220479734453722745461670420832395542294467718568355568561013887618546880560837531728802071268869804771229910685716687061665238907065825244176232159737232871916777954917537367755606265656593500609611943262703152409386799062373461712943610368637163212645522246023741117847844275275754198652959569842199388382604645218742314598627839481775084950239825171641424746943810052987332534101004618972271688254051424162875739493311345370775248726900656037596071820872730946055331102829194731643821374424925826906719730537384015061434845503843987081554407630421837230420787670948525613583668223372813369287606926504165234270264993533157083858356819107644257215850035573903952104051069266627757410446794706747768153851554130854321706488730137823352480431234517555744012001179692592307469331791269192454654286755134693223910957843787138789040492542328557098954597854245952310042780687072923036317677920047176020895507813767027865119884889545650889634206531836495576868024299457921070209742331769182880686540883754938618125551931876247232755555233604818860904979976374715860210720140676442136847158210698140751459968037115570043577850770374958752586268200471163445220234870119190823379931833577064075960627013588201062440137304135128040027713508976687313428931874924965655916210898511854825239148176051538268560121084097891717005567519076636182166526800843782990038469346604794496063821794215335863950101132840439738335173936160571624309069975969846378660188079620631940209404655210982128107808905467882185272918531463280394861480929229740845998231311197694698181457297892720180575835157953956745935546179324387565593605506592998906564006824467709930008158672123488281858203313859878788368709010837004570355453958854742283380390423058412351514046842627826605716517425753892690708181535600033981544030095475612924788171604677787915765295762378511123862862717432657661007821186191636206056441418533122973425243121077241008919559397759784196522824768535360001516383487524175773521445930149337902969108746349837522343673051441837502033293667048973762957134885310226592888962533464069191876859379870882350264906351886116125486299592774858760463084222365068239697858971593198907031236376158226440876888497903872505661154779400993989033073133086854927767193144331311362936303624721170100816311275346828958476720331178052009246336667866808248895814688581250316359064207656114668429070342370836335708960093721886676623919096211826129248331070575250396726916713649122735090466678887388676214900548495864292377659374902295247766406142494137997502463538014176348648984054619915375940100715384227913520951967944437779377543033536451149383591518596776278224461230681970868992730476359284736556149372321309593400353338529967798951328383350856208729306076072160959347833403505530354438165798205119376716376356531428060815592765730136435249614048576495368420042864072618661263791668994618652844129560893253294104269931746082725919961371004874934865632017959956983341773582357896248111273010937489215101018833366211939540772140117196563848983218823695650692623441148235909218263910605558431908835584986701338069590951411287300025518588111774653370874996640539183473272358791559748849953060135266250283400615176041789065806014392223007051819771980467671749998731789268884348397355875075056983490548016619674422332862400103527681450281814670238478311779260523897493651935279551996278373980447258779055604393942358305290045381984476716061618689234394922104416857451044722861764372866615686235075114184425866155425098855198906829874568990053827651405079757377371618923711692388616522611099382355578379077259968577366153407764659821308127667402848731723193628031839423721646062824804004252135076199665474108421468292873002965750755419269138480434057601411113316715873779658095413126569591344657988908006448739145645518268239862358062681227685069996358612822422898773178467082933006468393536322055974192429292803123735395437657745249641451333592943196780416691700484794501477078892497235010992997084478067295549439580263376275861286262505544188991256648734178134170536995042057930089584898113908360108032051258442242511121706269842919521917689575819152519300125289911446358339467495885232912938166164466645494835795804225831816476349663923391384059191752454211043133210376998368189767915501277209528160464107812863705558726572395675224710902266307098115644409555164958041750944102069102859028018359868846453159560717075206015392441989149216983254182415256712169096844323078541976513175609989586963752227926903100044010506508460986318037425025359312643996291479273482373719207128385577499699291836433812287807460472202868510162459147809936542312288191946226033061986035607931886426470175861494664156823162812011387513418449097296740596996175932222741671116880834994620491890675595748284768967786452630428818095579948909094840021958257232437910205452458890080152004487637673720646288918888885493406829215652920159212186814270490262438705371112658035471308444559241651529248736268274912909424395111740413622586782077057241057909938752917140956069270565976774849337427405892662093217101579934608230513813633927972219616686515491624244090850541076104087599975894930046493445520093138389215274625343208991998050370301204979453378019097914773981964687891983172013236145720652990117044426931312466413716710798136540984519970156694539734132908967528982634024791232861910164886690689678417920036438366737870204689416760332303695258353414594759808348002787602073897166616746710313732870505513979650656015751458337161144409979839154698445015583835964611217805782229759243390715672151700008604862940721286041797944280357710842402386275562332802626939773753450318512555989053017321591914697965791457562279865838177868559929617679820669715353466042833905079995153584905546349962858496636959639704620774093477791126599270174842996400496399551644333959676154801879452239200313735292795557133389446272844267738999104330721952386727941577005449750744158714203069520333504292612299354741885617481926815718614814844735839075528215908279519457187046335738041114858587383875676700512274874275781179390841356839054764471543715371367037764587193184830997616840869634573033182783902802248558802616049392135513346713618094394019789114561288297884867596121174273480318041131121948957886658744091853581294217796864679860988402189936698320749239006544388846247180111487228720931330698058024434569188472442811950242918412904235456464777764715202474842388019021798359797199940306071587200921164484500487774727867452682389190167793021183104469672093127057358443719473045996897437319200498524719486210082673894950663290302720667222599547120125577743359102829024457703518623852247397326523870962410586885101819901429712615258996432345969765790075811700451080947942096372913498157669001267657228175286886010966541287840616881166970822729612451722836742982157119350030114785402713126491145978472627632916028783766372106330511880432728550612345769952495824796534128181851826915785924614222691530801457118111601908786105676397613436898001466063218235181745834836819547802227510005611320415188873124273981636190189282537574043047315116940194715516689591519319009044727472562945492469219136797037970115442751770703886032718451044563093205781983288302233414729316627269158708906734155870328344405497724144572706121222597615083393896395385963121311434920351726299999251028516308378425747380734617484189148739440642616288700299658762607691747470220468866895278280406590932874929556873425516942795027290672595708115108201564420013761220225962596389517433542000727027045765245590440645586953692201433946010473637853920169318700640960238173722608408965775672863781619274109261720350777364045302128687154122183354194884538093493467559330763669196370994448095543475692018500711541477448076357125163487095069411728793814868957591711216875234991187193184363896596252624790231916647417381800035653765079100080597942246949769089198833160654667634218770131157046978787079174748638336987628746148191833335951468501797319180882498798950884921077524142924109887906599045796383718513619579424992654089146264115772177780442054670822247237673157030242002669678009443097404090300647679154592316744539253022816059120074709019181490865439034745479745960085603424092125251548198088590469150135862500053790952282723751116924112901582287699747952097721624299094154227559634654255778284195690976759135248941885209433149338554770216782741785663064523296474103928573541283123565298501806923343804627898398378875856888141941267659424726573539134519281181239882534013458524109308082785747082410264060072508711697160243614871190817576729887263391507225709048512741480328736175479326036166024377697351002899474965410769954170074942658616374226352800059209742671234712387319506603085919888316669496737632001046307135104496936762794067015103769180267776442279207771557415400109913554413538714332155456112218924811840655174522491020400328452529370762922210164103638110900839472274979729022702556218060442392760427291794088946193820749896812576828526253637030773040402424200924326137848348366165033378153579938884324937953599514029677960985892025403829945030465161435105342634118441240928710599454781052226471000620609225066124850585065108028622573913751463355299810915096461273810842189048049304321299039056801022454023793201958066830962832120717118560403533610607018266912202526240266895102998144238382443951356307990402359506726806019480227560259168767532343751331349522749430274039665144511762614334634582329552210292038872665520789580866727026176630255193760592805290951461602905047074194583882931223789945481592687535524176798104905300786909244021030190037475344923140895585886667147280279724380977228336524343213465945110900940903652723020107321905781579761211153065376527736825921828916227369251984349941630263480775602129187752814929700690348336649588040147706711116730201264418272806184299085959989870649484168071776938656601743517232501655415143729365754824747261786810116429462893735888036415278304855190543116904491309396916669266808172842214612113490151370087512741868697386865461300123793075464447739307105521171447229187625054438278629297776539173617924517160851574313929362817620949748151941662702917482608443848297591018496956200851179769595100451080778525475485891864625335206951410749174497033490702738817992138655757636024198073577605832774693601003952785960726904758043270323178906218496917304268323123121344537828629231332499820201977158019620597000655082851756610573485498281249861383724965240663689540580786970083272905964737215626141381639917193523436171069335535326530602171514152360448957948409307631551108815661421686185922379141503326164296442608122428000378720026283427192583049317149337744409316556645713673579445637888341182742434185646658516140450439031028828267540143562386369017597160656163941277234913176875685083879041883110885929385067940314448728514748556354478843938647099201598289499848432569628796242107962196674661398510823654606142559457375365642783196318757667525567638671617084415873691575428865247354654711550697245591253257763225864144358437292945039383001804077701117098570466576505185823187632437578795204786866715446871125220788454508503547232973845037262204906745474533267982410298365334812230389571879951329962748820297680235885035621711693258889795261428553529295795469735571556468435521725749711860241920282302132021741315659484416017606763011255906403608257242379673835662151660597849729681093403827363846335765737759549263872942757802409473633708648328238951353469902834688305841541418913135146269960494309924784121735864479589027553138727075952763071466136747605144324184184687221901080853168193007466820334984275929800572091720684754638225849413367934153767896774876498265009303544089000246500519128978695192289609552119652303389193648738112358540870544805425296628703150938702154515241020291747394488940204932479705059236810186853083317428038608573669796155231617524738375524553559260529646056288442277240126136128928376277360695479939605726719413855462696248264808014355335089301411125602798073792005376175341235107279507763332241611995593351666665601492425687710226912499662545754329635522883104425671544076099424204583751514756586550341038120293979568573837920408875432462338434242187273930409518789166574477253687400016936875253256213307542599400219094255914225259472409050185477154875425359798577909960755102108791771636681872798675579876947523499600824380091933072476510030145384462827629228965663613713269970240107020403590096186172911246318690106984183569767016162477658592357452143973152947495267674421349892799441846278935461087043077968512570370346570565476910184087178152048845622786988502636648287534418665067748447198133522053190205654195856554840993775173563993933992415383792842461688692836612842764479324131792031431516201050947678469908849505807626585469732643811523002579690276816034413257311945828340946115716195108505336500505669306345570298837071563438306361880035841666045369904950651195592547212715641722509170790056210823246526095517803891246334033138122125458452070680922314560803993613781091769474740867306462407273190969246908401954212937159950506532964916820981612837671493275428623473069014067011068830977954187057359908348697006762472222577232842409803419560514853291627294129916300263619383598649027349727969641122178269074704433179439184453868444795632137525466580140593702780530333225582341273594956669547188724314662421298936080289344790993555149965015014003971502563288532930954060210020778283422265463387026455752934438467982583462550494041160638451264711856768699893131822909942114114312426993351451783528954155061906841839812451086913957863314221103849319709974457066760306004322295186632368439575202262177627017128307546314774571425932709357857418241463174181706630616763010430312784742169502004900763125696778760257177214073776719897982963141091919372212983764033577975563958714663141606953007178401482247312497762031591884474896931260419134579750523949573606564411443866706392729587717584590775879597674984929212206981680728115502030561572375933307031490064005142101515818145197199000285487454763499135562951347538652659151657526874933348161831399859074773452874467859825769530599756208265758742463946648062226015308568242379676924615631052734668905441255382100049187061966413994473566049559615465097819561389357727305183860764512023978164512293741400693549566437711337472719474331538285283710878250344863679306800089725546275488784607396106968447303779620093183875455500009055923197363637690196042585161991812790659079917424856101667486580438305250442488726196969075248385879616189896086185133890117788716824862098032258408043465696480038360244018346364190562441635020818689087958039037490349294576650704345917184105713876330213526346775782622330536781945739278223578910052867701570572416301005679872863001191526194956417724624839430521171086735447882267747603385405117581093205261285905997940397089635099746623577620170605235698786457720475454278233352031560114920517442114065561235134143285591177014022885773544327935853088465190094960665148789002242616254744799213927868786942667568117700372042716710984256598588584972340832627795100245984355331988956894177266811151592891606867660377289936910637721864552289966563300785362477084197531554508044976039619106079889077111227940522260350483143486491198987306914913375342880947723612398495478038581168076286125861170692484017879362507125368866464193479051822536658264070230308525928218283226714480911581030730600681652419023751607719989728925766608230697679009966659340408174885306118397592582811522512611022773617328966258115885915095706097353633413114675987100881223387987251710668034109938243305635278057132557464150712028481929137565010359644429718792105688506086846663859045226949755849439869977279529914606782990987971879705899538924566790051217237334453765672265202054297822588244893107844069602273175123281590007090061226832629552890465567092825643531837078734457313067600786740091592554125675519627627533786693599608453030651532390438953684056162511395078680646307902808697721804451801744002677422647292268395256569939374578681933609834134206567477101552900266033579528356346475081374858571234813257692229381811453144554223481421331922586489969040874865207892049182076114109210532937669215011337145268560828413995863156892938039298701290422128782557086428647713221987424296333033257169593610434301532478219913628267848105569006502016974902046375109213949434507731887777236107840387896921848600959648179177744692694084247145526704143025200173796412882090484141386747526986173512544270293413122360407012333812964140664479628122359599304634299089150143232785542368081908370518968476338550022429986738139269751046315470883587671725663516418206461756213621223130586187940444559102338244942696862286793913011753089164223519809233986746934046387905349254048240770589541597506992949966132289055898554629808291456711413376591386571728491432903887615118721893886938104857945245967386568872998512422063783563566784623337027023113796489158074639463349532352497988225703230006821561552510040167791496987555118415364523170236282150654973722253793505603148340327572928841145085745425492541902874274060017979683137449836208038396795912862171545542119132947955283098405322697080261057953646445336260145914637430749398795514530975970227021313379929044715240813449403527777572705731921970003498740187351895444206427960109421273642037937663604317918840936293440560796763446025503358101927968583966339883675513243591072136818337169082590273892831406566863908196166088981118042803895094629867202527982421312681416286463063838540946482314506297023649062976586672420744101198363902460796870202327110261904446016163148882317336924575941000899506222362209670179807705406441994202501654640618887184890873151497553153243846234317535866749576642450354580671209510189973874165747133688611728843643628596460762087501791040051332514230263407143139078467426748407455375044606323943461634166896389133709467122287984639430398667877519358246594620904114593426384961528151773417566403506755970006585365176549852169347695232842719310782287275741619192812434547309664849047524376188133376089165127356875190638331873449160571846853667036581211729717899182719605032558140135457717018826720411988424486745427526726422253209230012227940737228489975061304451566677278159634211579782654712144557099249594188217649971046854405527284005376993391738175281540127076931928027551090539133139247875941331490836652617767600831004585520644691236701029864435319531209760308915477746448818953403917255164456406420755209953254276610385987134685949089935753274959668508173213387119475810558689349961717264162342380360337615840790832075591601514449183600643130883374388656400701819941927735708429414821812412586353113087449020167815806954813981956503635494946234964738288026775226383551932904100222594734447995229777334833040557626501387030484282808840553985025258226086131502242579549265414411277645412322903291798070137759882534756131593035379547408370306011825291732724910052371906313357000921919583910363289867547710044056581163516479930685357284986129399592901614200203436177568353030089830948508692355433123124842227792198172955233492964584708773094920799436057288054535653865169771079984875653096670500036705558711258587720284039640996230914002907661953629514806816240401813065250649961386225084324769085916897315264263620691403953371138119253366637948426278146532668522739437667477219517718349470833556136555106635940348072418421313668291474001072779933347698437826334285183162107323716140636260617783400637993001829864553583246451026081692270085307870729359385579769868695732289251151507935912096685050724864515892737867654522372283243270977307986926702292249753365026820169848025945894583857900342034940214261605660176720626769964286202069537928375338436148350576080690101435308668192297591316693556291904902935837072872924819660360463428823816427096530606793784523423048080034807780798496064658487532710945240839346378762511387712958685770372421637525996406841916782864092964803403745356106440201712617471018659869168419051917881190733072028496002268347285834114164360816103199579857022184134981092520726538048525224997784179826239295516699396857886671853947480842918278293715822573653038281730607634723993023150244701660804667098121732586238723948752815296062803654111462539958074343115770490178887452479153305823734887235112981442105343323692744067668441857969444305185967323337919536723670320365094887666936626013602243605242496023068265953259010257219624327971505901313785298435164031959715910684077520686126211910332092909965997507619764366543378910104093569870112844293797454052503066033215736646236464214246907535790467329466768849693383635977214811831751970879683780256954354450142150571723831267733031993952853761325303420808235312322963221700969284331044200149803464920960046301706613580204373801234046609152134417809684241620248100432968107199792789569419426898761453347069290395215722216974526565188854043199386271301161417461936109053989632378280123079241446326091173639585907373825174925537208368815472342628530547830783300990929864503940874603345098270957608120826572216987833943435237764429471110106348060035302876462692225550048107749425896153946543277898666624280701249477210567997368875015874384316899474856341973857236680628475351342990261656482167580663710330752982709355792188006801459409430357255715182217699125773146521015069657496414835646852136318720117878157906462989910441752347992164876979773410075844644577146027501967498516092483724252134755371397237067622295049750835628310155137895871329713116086973894929801297347099238717853297302669571012766672936791441120146778064560418873624019943329639421903347061622454288239563923866581467890176350263586745872145000897795392666444283217731213205661610524099969626652600183233758204397972894751619132662823428491286200491696487492961495500381438979789827527813666028089118093135455825695752259816080230681029748746020355715847748655639974135534784921188781608742629693739964547931881905371147750989697468887114891482216936286197268262217758675871091235858160380556462534714335810010096620353802171050624609875422407247797053978938874167230687586076912037460419138460455819345640776806883401353626185019922286214033774251921260010184498549048170668012497967899532593494701304580791914653918388903057359543501045829492647147853163931052571864921666326145766298106556411621077618084974130391859580834566738542254318136880877283944014638999662925247670105364429865347712901492348713594080221937353047375289299380166409737431205087232039225746498434799820328669742349564990971093170409410532750915981938810441429103807730397929758110384383213380220210657187185744070403397711403627059831504129490732578605061190050930741035791731842130540826614143097126880603288000993728629268848903219519101440880845429949686073719577137303180272417844013976460020776622953782089804498914148867043683419916740131532950285112579067720663254528969712023960515913183661996016636424043386958999088757087286223288329821239492645670110981559407232276962633428109607140692981132560963516439196184565546787169368267596572670790983208433512617583210710854769936924424762782160062483438989444293840606509618871499318444954802611068067156014455393731775882607375201358038247778586304007629332731516742181431593192150039545992583580090943128480477431432219849322636619977155756162566745777206543163194747547101395274808187293889889120028535209649898810534898379244803631970451739902290165100243163019519680991720938597928930598667480057264817665919943224943875491625960215937729438588645918091743585590678442655356592315575693142617349195721863616668246283496050581100964177459754467199260945729259274395965240227011554695576607370175601515529954563019525463195396839098757313980968174745628867301339114193244398253590176252312729610311673868569527521534093067696629259507670993653364685733186557084592824950497212906504535972405538571515828338408344003341043027510086710779718994030173650998487247068032716681468199466527400177921755337051196095932219462095867633893083883568700263327063475747704744000220081863830485638287536927313070920671754717425559160294821571782985749127218811761147052494002994809601203652564532519965277411512639436921505720844241358605197882547868050775993839395764225460311011784562769320102296069206056795014274313768190711992447718213894316736285997733810229812523265341823935117577076622831847269406470910205790317508629998089362638565414789199986292398959491774027801860675403893037193325246680243417918126408413563172247533878710417834069296246375825952131771914682118323976326631739509528234679450655494188331935460461154405025489244154891195379285143872792671179787696466758522766933551553024895110096149733361338727552943099305022315123871824856255911490400456810365469211278248804042602112716401794115422957870251029002608987153326957434857546338062712426672954769344911373444674616400025831235488145577457746963550496343888735212891716424522235847033741835863937063706365582466216507666881750012443773869112198208157101901448345961309037989093906667675066046166649543785735119481736772806735525157149252362441803089205369265649910301126211678390199318295656313618784767419880235616163404512649381369620352529573105096799696626257144339348105286373031302397383646753286979890641283516710717132585189419759415468150146465775442325800596646700938644545920055531221432989859770381403854847467679864864694708846716566414942188264121084651430015722976003241520075439534927864745604279800561964697765460219914126174391941410959617369844020213160250733089403046339903744705029386529767511856831879992091122093607116428140162302640901144104749624567749655070326552575232264421108572797607824411483569294754220427305148900050815512044903517873124222013162446899838095447586027878162386014122378301548516317156378555146887600209238855997796535114515985084066590506479299924451582428912448763900007662279784146432293806372327193668388616574169422947373834348232330586071419355381924057519812958111455452956520187318775478744809897888814153272156689500705963610377115603794737785495635621296690313416576230548556032714350582069886203984693052072998842639756461477971792863797007230791394462171057058041209199715151315605294886973752810094543737587735663642109695187202272243213540889866384246914422523731988260077033258308928469696354798174706751414187340679776400664039284092650216551172316318505784393384947887088885491162420170553575386731761425089338170663387120029523053169538281049740545110646154106290786329608247809606765581310810774415801764962783699708076825422281440759326524362492514146338607241122316162080684230073956758881211091117580866344469537619836394037311000836934466288543284926524944892043281243770038552604379171863384077845444019477214669091067166494021092845646220637509049958680031356959089144331408065018963705144619977950364688509806971776128927465731013696682906455189918713699334608769719225565593789931273499803294254378667944844981520411331905795686155346561940607914649536506203625780557973872068179538534139098689296242269414254750757543177917110269522304470976502515074219813282804647858829137185234853197980927983775585946949293517401840285564175154377502156528803041687408226500503559298994047208735768401541149430914568437273834746989648777171503968587089827292924782806655036481138352447825055777477857607292561817632110072905940623038997023209209125163255915320675788335073657068700253707357524831423249910729843348309539063780689364719524991121174253823525445551589343295471385011343068280789666200164867934869657113952625979120697216282451231814073765226758621993870139443129561866787273007100759818732758599645093535754572837749683823143216286422524441213472906702500640746301881479174972567172387997100995940953372988665012832065527967827975501910476061124290873869378403180225803650918151205403643085483118144043105357195842114627542175347040544403674269415370507376234614159171993423893006202413484003820823619258612550913778090926460038474116878395054543885601390594987051807900048479702638410750510920202425235946017846013530378320752024643518698092833454657047896778152169965541482024311785479458875276941064416923290179646123772242216332292511013353632996749883865191014151325302565144030166175115873753007772655609401420773255084057874275471125487658388204603806322858569504948081656313122996583638820253546958974974153021960999235963351680871011461602482048938318747917625928188419813271527633502915608842079387490201151898443032892652568623156386795631922116490783745006328571500097186301650295625386444834395481696831248139409380954996963624966641577130166280730434942059309450808701307029664121695297167152745545134109919818108792493128883042839376154634180835453979506100726249604689657082401811013703933920587416782122716100588267490515620165355418720567433585193428083632739559872453278365594992518431272741004900622778767299096284752878969904061231597847722653062076266060288341943106163585675312203538211797118440092049780461552736890262181946127813493995082233047192638394584448526217713243430466202183489270062824294045824494039826989628076850312233780368775833720917322014379205085042178728541339559017073120101939132855781926593568760523798708309420913756426667143733058621129307922102426620439555567334615700377778858301538138196988777169706474394472057294529868730439924187882571571865647992995957447427007250186708058094633905067121994811493789731387477026151810153715647181497190334190133765081058843619776856800097649728554643356102067951255644451455466992803614484792115347342267179214383596291813397164164158306688136437945710345970047198891387539657374449544826044378158690812024793034559622060060954574027262735071927997126556354239674240168745582692225037085864216949750628066753694384858507845473274999082537764793813673244423739565325275405773135788097947195137565313035564908008118844858747106185805544649358927329247394730964875489789297357345165690517461402902963468908859238772950641456454824532457277549574150525307050893317874232147429838336828896510941629543278187241594879806907940069008533665331940005264457161157123655945659188860524825123218960535549942453876113596876024372840140015922709470835897777250779397507112618987164614737375839710632307003416342840596175024108355901581705300504676611984903335555155559226713238108866390001212167010373398425963233184058588904301884043463755689317329611614565714776995474901380769628008478162741764946679181161291611699345023059914732447581234064218708669393468145135631473931374014685110291993178856643550847650955054505250737639500386304807252833226450059752105437383825658708885927776132129426893033263855234660277670379304657274782458845448868034826981628634528809772304030283206868970385024192405429860576432964080443044673670216206796525872468280704312866063426414513768145723144668683225859797946201213054159366386455385455327058935430536492870342461886105103950729498976845497864880525899100334099474219401253175158862940824631525540047072626665895165126065608926846721674390712767168928335882017312390517172746159083285988283041231542459705353341149889416512411308028821106983222919636800525161837389738016372051592244962477136189002955237997816441154163482888008634199282958283491192146781724605975923085735279135805293918986976583394142681294904201027160066138595178829076184345670679309658837758489869073909711695228390388535994801821552650515673449894920518008917695111476092683688506265359593497153358662836563838614909650123409963697067226456400048942083113631326585056472393604090360209067911234090182774369521915678067818968737795592216117799194259673597500049350662342043699374958482520559325028356998624776263184849146517403213279278852029278092423168359152278024904554019349843926853346170707061375265701500170236130407516663383614193004980752710788577113977314019436409963874208432268978565237887857855715281711131993397488436519906775635458099539596400980870728805120441690384137659481547528827198890054175298977264554465482732234805183509418123925765198726903109908660047229566310060033055363602829546731511645177599231760433715731236551892492775982806591987957019133778479989614796028804855647249908848739737321317394467685129116039937399938503736740344315314648449102028674724615436930206103709490911211829066807686418796237102767780002179976804882956157791001031126533108363638402455862310645693686425953087999577138096732936434134146360140048278961674830139847935886465824959717722519716109972741552486033253740754446512022277537538698919368500735473599041778765516310044161831231786597142126222841723504635942452986562732387198676129660560577480463904032734313417931400775058732701493333010782347586116200828425385915387640064389944158439841002992258894620788663725464410596054647961195220828756504388272959371347912493586505520707577221223429171459010122937036967069575090820803832945483124601289536891449759999485378284747048738234984140496255094625717646317584424288605063630542902555945064774950483259517564483136708434156638040264797083270102185707992207682225129386546964329952523937850993393770577482029274241564358086781062741943360890114431657948559364094175041794794412451384157803567560356726074991720510929372916135409067513731858572169362773947439667862041164948745613267827455063851312687097619725093127911588774203949742465632462190024076680869749211629114761626163699022642106894200744196795271812535305473429645841761575094517336114345024207748978955224510399832200699128279570910476724071135149157459474141281923470344266523345574502108835225743989576232995632805209127968080084094409500043292191525114500730272238927805199043662333323581080631762408913163791890761849545201766189578056036039287068714075885942047689502847762476506725597384843827678887968754871525883270866322425624731570596839835528887133452736607630649953496296553174840583168051138259554262025211127227012682351035902080671915512625421280567955403718449291826258887655266222112501747059970766922851420190358092272580689077298710901536060308487855713015751151470979609116965886685160773274300794077226760255638428775324155996017385239769078325333007000594425410911989723057056680602663815102284907413364134958235447427827761989430115010516089777980157134088938979409717742990661463041025682797383474399311920250847484027925324154751919231022130686063075090034929552281985226696941782397338696306487812147009738025874042967204046720454035013322993576967349989436332921541381461121237206931793300678341353701898250755238364051030509987797661072965463797058620092806193561933295339993455836714776925045828591269698169087499064011446798828325519723226122821596606114454236690243982000597639821589312778008925077532251393043616638964521213847802113238117344198094916211870644938144526194002755471031763763666469224730030638354026477333117440257477090333645052568124547152261096920674306369715368469404276859120391487861711516084900819244128369409848764649190229306009084389905537231811133082324198856469346315744116702211934317321422368774374104993166192705329595127393581106537592815688607450595421100357416324606776091285535561137805915970137804344760803187452497008204351143276363531325018806282082299661671389975680458872650978877299518532699017971926138490442219411991800269462585618400103749222767446941086971544802887507093245639547841371806183120167394861827397399684346139633956346677538147351764848490074073521461069701784653521398699534914048311470532643669473066755021535014800962531694382926184384584322092166313224516038238601972850353668277682982979465880944345183957721547788591066452032163412697835778153845001865183088772548878072060861922880491818225933328919155364834300732899577838199306340490196662480405252988522661359925160724006506600602086312929294716243763609073801117406652108123935035100120639553047093898498278877157674122161187416829789436399914336990770790407282912393743931701401545410619707779801424748938013692176074587161312899872274519394148401027968519797918897531495320954580978269818053015674248121679372181281839830015730545719889124564654180315167535813209231447678390662828171750859802400904549695219247539234121016479973687066565909063170980160876646461689762538765136455193223229355443342613563089439071411776628801668804365715483335544203860502930259748254612536097190022998428103717669486730963762976375675451610365348645816828757107015727932750524320407767828913693398705910795616015322596321456856428718987566101980753234514764419307742977290156975007648323068965804712525774182849421703717525349303732567189992657634572834817619342793756682268870524217450334828872477747902669756347956124341035947042771140871982449091844133226314323178417591687405134368821678737422399407564394482860338495482225310441898481469671594112443791067475590839518348742329827613713407267540422172784752773456034286602952500272805476257764854563142448443440054458437939526667073789989557846866678462058519225188675799059018910950283555679900140408107938244143551776467627813360944965328900289746978619647916045017541504360219852090171946192749781995306014162587178131766591802976299358656457286330180718092895196323678329173724240941894027530956764770441813314107533816941525426742389848358191591677464651432525590138321611753563335555276844569808628987074045332831675773880972967415002822981535658126876789860967910794135646389156815276677594564544016016491698924881456974959685590543010148465541590763229493321888852084094551970011103059446858865450298657746111687505371311880585601657562300680037145152835644484340009784618303898314686025881269604708988400146828309532329741546277656280326922524188895828603960692191936989917582679952778671595812910466651643025366871538907404275775732930124546817677346501954773807135543760323142330398688933673604304908931713520642645007617842506638260269522712682227270647421142707557335368492805584641947553611103423140954353280323105363120681939328752061666435455263426053594354298315511144115334610092736592950770809540535769629721991989720406696677609207592481900531804984582422670713815383244515889545400054030840700220798480144583909622169923178851271267800770028498879866073188327791496106589201588696295287910343526612302588092584523354734513078859713606420165562105048013651623419427940325321419126669454906363837367034013892409924982554738671311606943257535368959136631824557154703905165045380896360116114778206640591006502150788692895883694665863050708216040249079605783829919139978103691539530534286095720091236144011422338528069619262925723334627410971755376045043605266578267068798514150184057537399583803344670343100483118203334133090982984796750627737017579515041941876112431518732978907671547425029038396084702330732491967280353535971714610939721099442055860260764335739457674552744272115822462862115792746733512758082170775689387864814058480045853131267236238902498557769303296653423864656731221880818691128987192034963090751918015179391070109128693547348486726011318197841012012790086550804285476376751420951839308803898089611353877078825474045366254534832036368367946367915425401696291754905926449727434885433755686077157549205959504055736322525063645786045106429595969086720744118877587492706422587633257099561339300241914008788612000452891769734556570745552943001561959229982508394509351973393676124891460665788537392231807262112407710855833907686975150819258083526095311769352801010062582767325938644620472686616009490265938916323831254724013810421115472253282354202617370787947268959855340665081503923290326095446007302472137144266281977933013754844105980916760591471212433352071555574336770339063344772186668772336983699489707657829249725041965470035295547440715099579505045671545438157716222001344994307230954982669738261603533662962109998057359328435986576884772986152719622429517549660829050681033549666755696324946759213834897670995943189524754666997548806254766253252227745874530451774126568672537231387950649255352359332301232222701354908121522284791472154083415930465856286452166769203335302500035108640123526070360422823864601497463417715373090819645606333237859139312069446990362829642963461494088058594997917571805563124909964845160160648655468186934740561103251818812800406337511290190682884469624746192868939642935678874670787126251888099974834771453180621474844960993974788121288612498466542024634842759274169842808704571015840642028908590125682022010647554073979039111334626795583012751679726018172170165149460589708836682197221018391907281367321427516990998711749561929844013356486202929805764557342598527014736791856996624679965726022573244247512857840887668148818386743866866876562585296527690766225192030244429686218715499170748011874113003627073509447889074239774364840398321649915400859205162311691705181991964122662414125806116778466640195571459329479404692153127129381314478261316258673886254221237901901384990744926047317228883376121464603723769625474422337915050839614504462124172873806248279272099385404861216517841571836639155176209920452984571458088840897399501277397546849598949901506001361030287374076075563326560976597022216866953837371390795606060884089108819583086936368310996741023886041810474376718161110230440130348237979712087804441679044361496050061923297293923651885084374875301244623563731023988969285270204423967217833762305624621118311925469883287382941440695834300758481995881043818227292428157993103436329383757379559957681476653322525834426729108795116166273207007372554968387535809477042962386128789263077414254908241393109870098830375719159865638406633142487487669078886559498168995456019407234867406010535154682914237863898008252563142873299073037062723926151301425206640771936518433357355164227712248055686225356813819661410561294256227630642826347868888831382124646161569030467588526817089476827170918076625521227745473661383546400902769677194706646182504647349085300953598661474311079192577902900954679270739011449232502772085968914018419786832053849154142293811054415447660566876042195514296700440645646893007263255850020972395317050661129832197973372914251594476283456767399460768331132919021512658533085245021904798697530326724115909280088257734899116614453395965370947984460965189694657177706003554588451174797413537818172580327365208601051541839311199791395210029457902454239422954665132562385016898451259780382636402970831068784481744647557838477062896849057871950126948230736500880463093305138479448204814619078910928690512985698775596454279651426083894884511541163138386671624157756634727971010861582516556851670619725533180719544895087169640966115137613847109325507744871248015907164811958190302321010424380064856139585899678354131325298447569644096155759242791280879786652925197889883327840810126778036244653957773668517937102942422465632957237958175399858854470724898492344332735387053823277838338464949747959399675069605598799728831355407805017502049087582959040213527639542586322126399830716751240564766732659437190770834602454222060823960923961368745801795994797735103465685981017759308050287363102720631731044354678681305701242357989099499053732632030303738543050575264248966593742809970388806108978577243430045687908363475244233306830904700405413771019697129067397125326631085368507864320352375010269633583585110139079539240617496359016662433099640072262674217295482957519629017632967667802439952139256392963470108611568908620394443016748494161544293360925562680806215428266412237918766752867708529276367855101467246190118445637959473221864339900442247852273790195499064984872059644170054248989635045171924212802614449985700236879167542187026712970164402531457633088184570365452802884194705779606826793217271390872560676696998751520124088365082263709776563471083302881089694323552990461075964154647557244773393187604273976355050973621544207177696574686571445237724228264739853962416473584738307927476564322652922732683549570511267724556161733681424770257146124309377886182235053393396781490167204085525027396962171763196520790900608327510499753947073278204198923448513461896802242474025790420370579282073465755321742705735008046959166710449659271989352623870356926168879200871401756712018737387276578801722855905476597502689671314499722870602803104347534729341847870650858416504402960430385193951273721764989265006641675978583059353450514039956592290253008091032087937576113808946676886882690536880770744575380445992046508959135388598086164538779330938751235618428652711684686432198136782565926256415605562361928542130116667809452757317176821373495725414163138736512108344656694460287019009695034694349056976124470632093246837361251296255910848547302350906241024279868238034822720579606549601346782255872836245749494329554571587372343737963278405718363620438795821536385498893339754574002601169114827878423097768174588819716269142650129839086999265795875369731046960839979295751531335151823692282797173331277726419998136939063706765967978565587307509861453274198602260228489364608246195282211006049547603111516891631921222369677363820782116939214458726587780897592348793675927545983524114116685136239390665160106831576358676906076880351634235363046132063237457676390551196058603887244224545989801662463020739883240162045141852673190281016234032956079079189498068120638831906394470724814500299761971766942276959407700913454758966159333269125923463164719991656058934670152334399579310426225627778583443228136806376334278995885668683098179218823267192090639242071485523676930653382406826195944932345232786170419137875921244936440108322453813147946987286708472656734414794716875450620715318107324896099921832794587577477123386356171661500896106866449671797199047632506106237883402512590811586840960482827737753117792604463214474932834150786326408895368460815642216271967378701818569275299336641320117514235518379879895796985929672138310808257606451661983531973338210609804878287078312074688555714489800881474701335359693184436688790751357154234089835851876366545877110188868379682591555103557128875882409196866709482292875649367487809909560953365644978047716387031696394952179661847661427742745851801965687871668599977020393545643873624948493994982828789841309319956105532285044838610105283551469813093096197224991350924637710776161170615793899833171381300917806526149725500733877962889934792709112931133843715750689290773768333404897819700697245750737676087717010907251419783340729449841768207546665052561666538625796570741389704493924425252236419436558393707214859975985975063884315009191028899876856170827900852569257175819589931413167915490841619657308189201259315185654405409322387269826584710553740726045638750374477545726549504904053866934489234326029086367213085638601753975081563391520280085657023582225776055851408823333197806183465729156117909212886441675576493925130412344671936486409779804493328622525012862713367740935060065008459287775964311804044518657301117542415769186052510204307996677398103292352730548660612549709683642906903368576237684238501384365280244939706040658388913681985251027264721733591149297192485560052497678928483202979341546057264627466677150833162331104930054456050403250432352326618999768037662745813989079321498041434558410776933566557337711025051185924647306919824461731091067190469956469951131159688619410169748756926782466890497770386438523195155240358636456958160084372490440354310316752558378159290105823224925012599071281697158964044174732145811658011257750968282069115228337984441854774667865970314290417685336632804476323680511575813974971831122909652171847885724643983997540848181625065482691590031740840719148031824542927987924442509543380035530725032466717824866463089726570442735929261161720822271510162301975501241102125536908900081702934144213349524462640420774627397725987630421758633311961954324107431078348861957001817569854841256020769995264419205223223073179021124100924526727052608337680033984898132124678369517142880655303098060250120189866637319020847448980798243653611042363663131648488581817353452940617270281621314392036851679562534950805103152189832042641104565639592138654724416572282025684731665274937800293237298125196239781685232027867699958975031330688886502604773788856828603979085655975945047664694680238301140675242672217759388507253958214970920449198472598097098854143974699926873612865734486242608318911901303614268295801949475468905097262734337006369766045577915758941160924778787419056166139017859150203483871844041589187184936585320829159153478010867234205526944401368560715435863364099411962024520186141852514632968811769157389059112582135610391487679249232501080822255492472551581331633087118315552381366073130319599109087357722109300649248473242451344195214284498227481384357518212705129876699017905921110622645377557041338078086669885843168432135445717011510246096629077630875914631081351375958224866598138615583298997263627090585154753374316367828076862277846081200823526544304609068473145547857243965053815269421635020005388166349830001981681534690622836756506408539307457398099372922265585928605962470326696613569009871787473611255283759182656804949768750545595628145155061715618570402634435343823822354657195657671030892399531476246694068577019725213107426831474640212868349111533115751953592816426786851525352134433297045572692971618930406125476325789937304277966089638380428817871754583597770686358857026029034920026445650891392898926507519361601347857929754029209248487496350034966580412567737241170511816807391789894237684389873929276018973072834043258298397263231722115951361717799964691276866203866784771419755483412946551048490560186787757070870304134775152129483182605453436391028864407221847161998176114812029855444624359767023819473530079936291486218959393361681535774562187913269276887204760086729452799964584010387493701424120875000360982193448344429265502226649939646489763646022999893161281505431652851829083135161696888485592684843514598312516525809009361361962845309487973192258684266029168043375582076974477140373239570107761751461913378247551474563657123596487570608569146153053071403451945842052773952836696150583039894883612477634551886407788979408916814325692825061168749396668249668771005248922536836237233199625034797271376576609872302762421269878243680201306969547983670988020086662262212239457776267559416792452140180344541391524896003901867479689689010243684188028659028299043421563982921792107905993257353279429061620173841303559569764473162859197035867325982509478780435348627842449645253143539812268782215116820012198801420902234167628899062765963929977882366878956279967475594914762880874048136184401389359826120273317272422348443399840926850842945091757210290439853879731821744799732225123815278994774102781210583143706187901755521083104715942493162330607729521349139197219117121171630139578126866963538154473409917858319484471184616563752183368137636284828145921605445467525081659472573137609499545994468228710369391263109756768631160833034550183382922844462210942624706267051982262440530851016663640457677592206801578900461866661463386044589987850768270500788698584911288874743305085336334683368109624557964466361942492609865447227273324400627292140130102507066434331839683311650914293312449513500458214383116057653660166248852250790021934613559098217190703656586618281426621466381834806743978657579267721567631313189767131034929924993922496225779510991021133412971227842746516557885591329573942432067352378542685249468384834332544379939109956452746525142582458072908814456594823322159214044874493102968672192958483023791595542284826156548032444108076595412684256232260085780785810139803785580988406055842620539720402797112376511068588912402837185671679246485009705312682242652511318971123037862298574693532125980279675115360031909345331908378829450596116610304775850688440434404093725994803456986004873280837306694737046216630256370560367094678633413124050993620548565072244785986146938680919565343658635317931549793186112054689222976738709130277034829244692053725138488888655952374679354183823557522001682711367803160516819369689016718436415967478049352032257822436957756149737742676213472596451226807646585054703179841842622843834365733152520230951686468269046712218130061947039082424135534624524398218741773144919484964439906703771971711289881548014890874205632322409249410193332173515165534563902963555190680952249074872139762906860001828157412094920856278622081161793506989358070888014681073057452417286205373708521675058120117839643157177338921806717741129761580517254673798941409584778155835304042870778248610453073166243924085149752749058398307029613976450553622688264673050946006327963296705068514440480473464034562740797245410024905354499098374794379772060203553210780885529437095545570713182611016340762421221994328331095695690651404315839499178451752252290825944423553906196305754039622512648513767954039416632087474586323537113452616815185691083459808001803326181450212854890330418483521265042290551561816642948235610193661913600732113369886992761128113256291366223386826893643720827247092148043416509962865635867866256521034637782714701084210025455649588319017752099336794111329625334446691581786551183661488829061627532952532602953175235068983612567861492680697517129775581722362637141147069371808775493003034911499212639098172301852376911607326360444085700137474169799925925379169418340939217751346885398333365459046047512154989791708492647956768675438821716146350058550298358683733999401747364266816169597904170735204426401348561743018956195885083120586371778357955466212436183721029265385035914004931100348792337643396969622009864350216050004713669719917225527064063439663791255982000186376759875479355503425772819562301578421056231132019291488745562083439737186363015776435752142562153197933785626165898085001288615719442820279179847356601204574435854974586865564800838882217762402321024093555262070931690772907784076280611642661597728240651286541329852810015309868393829861638312838397431866354663761767185266886404430676721126445232118165435539572419258650549479722176327285825374818685780099361516913888711104035743312143302750830428182389051260938497571910921087630789988995257340282090942649436680965158692689500458453843702328563046205343866962469059267719048678938949534937784883659400264817127107698437879393203712955827639292903665984098073981079894449027649086271172721173948491659006328340585769683423215198560437985261687574048375075423912741686616929533724439359414204648021208802429122557455365791329572883415606693860164111563309018578661541650724589061843018864220320293992921409714615579595588422948440148936288304895412996893238225769164421601062050936791376507619764145444174740157858099250949986606657393383783396080568756722668394423209676895291524450543271391121960048675933170078348648077474348052720587361553268698988249919046651886546270386386520740083245808585198466685827090156380814062127024747016202446602595686919435802839379286492325690199019638949580048454069593700030652782904629669416782176890880271487716580597062060537385626598779419418222878457336972274605144294655880825959857459595023469686369703660741072589353407212936947697043903675829870262290515969094165455991329819460635029949338080816189002385789332813118940467783623697297558208557844478627074122186618626671476408744368178428219050659522918074476103541982900989680230297870331514077915047400386023908727816695215138875317259254993070628688877668037435985755285035613628100705548835340075343065890521273200985884976804323006195221019514030796760084863216964073209918186539206009182875586922306736773060920030436031110687228559035016963519053263893611206931450515767426216775279505974647247019164833919414973366845876510202772471738171302239072290070951476325214722135298311098673841846700681183786671595162441384795332578414930724603228867907803199320816267943004745386710782401869880680104610753220641374927282900584510381267946936535061653630655140731477970882443737475314989161768532990443243485054286184205383709588117971908401220906485271466245473439449767878075466326669892152418877587521508155357191027559153785295802806189511084000602294541132714896542708184702463454944162864021244192212139131249397945120695853990957499167279915306271627975779104437630214090392749239386818865585108726288607401272216276833106473839786769929718968096901291573154174755680248305686926182902805127823236190070779843731914605417020409410072053293319209950924886432834952031222702759548310054486350766127848535572569914622828607190996632440492062235513921283976180315134641746208927026466301483032696422607366207828720642350544303914147989063405223512423344989897427797895837855124289990419748793157074736561765688794982785111672794629091883128983360207799226686822527131105618931287935477401083745486672992259878087426653782966584690593667782013508600829856229583279473725016173940715722377539622214978763731485076773342633057534881742909914977941455836588047364129216442690709971736690074497420000475796211205219124750605489754580042206109574527270157662716575785098590562310431613799481270822272453006189627346548022768456730058216292267006898860905052628748021382782024066417774392149955164904058567937477519500668731769874804707301790596814251866901651947013791190576187929821068545041572502355990328366270033627450788914361998782938056911904156490720978918964190655158896199065301341935631771706030673353041131312972276563658972552962715992014099056339050241450261108517003886194425763417887871711793766651297352234120808487573210938525810263743672259237024321093130410651351162241796967455657570008380841503942801883665507169858322689714257564288738052328826910695817492096776909913390602296589838379444886470971663544644391692346524690829849643490118716317505939036486493947051744462491592641626895785974517313122100821066089184262374618405785708161145813539035530177454932307939753684199282348544864147647139935285465135528975422335189309909820820813592221714400188688146389069256373851781334338054827329478009170869264156061350148675119334010954115723478416596344378047921775057541972128102892123086234966663937026024609904345145742900838875056706449588100660699811138233929394154679973918253328165112910393533264962031705163194029936423428484635411983963908610619806883049323182542114646455251432546242833164802203787488692968262968132349335496635119158008351276759927120327475332771244868438929024327664184507082969852265744344354006897561551339545089714458905260294490518172093112809125274148633227352458781122771671643536504733724074987053710434555883081441683397023451292237821516613901174742005136002333549889906275273871823255960606374709615375494350178488028973731814108199822785875630707880297097389203695785831737963430284778543818389549197626190629774103143872301236085443865043231545956975375179102281688911646608221658573544360937940698195371374350717972421506506962851274804961895003338955963153931434856299603756381410350260987518672982104921900246488119785431461222655204754936426412500234225126533681404090279464418876128392492382031504118762569990564621777470891507652826335450764848019789023062476917373213190269493373958533573368538682193933754391970172554648958382341761856845812509790086713290166381080925584226458236608801678341468638177532836465457622363417233252816105287366098082829323702420574594512589065384993609823437816019240595146699258323442705534812740829563079292979548826988559899730289822659780241367950029679862379902824164295620019857852264326782687095434937331989368765666649488353210151395993695315704592944611404855198172718065256045632644784052356341117121124710895250370559840447628104220149006167172511712131868781275638812916930238915737112090035054586810464215880305702347772816593138044004311348606165741297431259859470991183136191049788215936260927336338609326715501533571633322001121108140587772749545682107911571357480909977558660351798211305426167396677825371368603886173972253615254950372660109295999754383271781581071636453599664399368946652072326902271682436547576243141251060192872680387912381080482331887612186383949400923530404919263926859378435733056999964312911190340832685125209703554572529393559148031039330075080774835521700802923247725144888123035301382714113217786282846123841362311680182788252782516706742836354791252921104872308802663968346524491174920317744922820042769336795267348034687523464736274310904986838809067023277048087111261484833423432868520759579365776757571191601251597507662401334247631002778930467985529917608001980204976174504873618684894106291414056830587699674404737501845018266369409853038773925215589592177149855316641764994754578006317279950938534513621248848395218619371413144759881097559339626752329246145878140830405036917150144573904674887744200947086322105278217321778875078962113950716912749281193084185994962207381862628762011880940641403173095288257410894082311141646506815124216571503773913014128941603451639577168869783059495237545686329864983395160166471370079810255961666333350623186965876973011824094085494417624527531150194914816757255339941097510195686555140452468792067453727702216847431934965569333966042303175774551021105566499544572274170623671904671184080645347707985144774069389284922343275273905088314260754480782994158271302684282934831756187048462939545523617461365837467555420713956432596416276748512972622269004081039163893758913488931173848131307430916852484184572906909390533164924987491707935605172864657089086633722246506001868343814472368505120070062967197444375797287119418626072778356843198446774345991970200893945365965132672403967513663699534397460344032828701648839636620255692296259506528849491746190165760418577814269088568195333317686369601522013658567756395502111306131992252776574557802770244981169177000967029518879999382177152304959672720462239351940710797379156990718725436530841976818112021087479705968994071310039008113693079857758981900731902193232902241935605558471868044763790795796362249658611086639114554616331418860291235069637843780837928240033196738500725186527845650243888148615219893155308957907814984602295521970968651636534725475764871047711905332573915997629972261067194170364828552986668925464969144409650069379175043570282112189608552049695930660363911468626550068030637875919030440377603760711569220926523445096807707926454395906115034162642716769874579300429469735774559399880631628846248997980255357601800831365521730216450875444225860624179271381676834693371017395781358548312153604081595702635071880267349812396834515814457847602745784383167035963531032349048296492801411604880241292758900834215365059197894970348298577531261081015405604524735260285402910190995966854616722451263393473087732593283650673889776415067478392836129850841889493938491232476132981621742195941850657928101500464489654378599684538534759836879067144703472909845508658898112833841012031538191677211356038549960880589322027782221303095181926178415117312805340637838447345669917062506348260636350679763083812769330073957197639409934886196143732474160524916938627650182198740331959519640945019021670086608210842008999953826039296321782892879242941717230750532348171007449634353106115598647187916814501409554656953889081593477941391460588625101990915443801668192864487626388524420688878291342883684163525837260570183229622669012454910283994482212779974254061002057786721738065904087621122974244146944523508385298533867918413823413023785660290787857324084453251649703974665769134449596858327738675683551926885369677559267816535624746048808773205291491669425086219864429089415300697068791423287958758791860606638491736424756584671183976495647531653001213404194865524684417006405836351780244982444542716667040166470263898411627609667943671089703581209843800728822993399531039667661904364924878802237258650815241423045678351567983232764835946653849446218815144551260803952525444434666857074506804994805405552317629941519002774855767591794053750297752812325011598338357225085872309472967895359383370413232513743823676719964700783414725271585159745276914940337908376713458770496389886692064255441137380950485990896389494938064535769353863854400376509762261816845498826070610138493030784800374196635138133981786914158531327428062176086110502753098845396227469163528725080508659294957546919717090442355133225940018959015608377315032983421930539538270570790539147216422929772854760204394715678729941185130642089432007882560724715544907428304682423321632325891427997641434371615576503230116464443371473851041193884367617937112776141519202880335756037210872960206332707822365959311240610758279958538800142614253566981531143964454044934953826271968364244412886532918171281944816071244517604387648486722930783408302726750840304674846260858055764568404494288021876428829979789391793750917049811399822627518561753569334859694382724960524856588465910086891942054042433685628118295655321307999016421748692712033493220829023481236231849787051861696225072450869844389610879255782710352358189295126053382307069097624567437178865011850110484008365059434655998576541975592215205517761007538053585479952252095117858287262358338921769160662102068028090550990413382913394044376772925181055171447987002102492658232453619528827699327809167269548578117668032196940751128223728887256680555781014073135716188005443807157933475794333425355778640581556855612551788305197492610628626969302043220064298141750404223127610935381911923010049683216707116536559551873956057164971902421211261569850414995058903860717082761667006727759180549189399064874261018075733490441997474845524594738401728169807170226861462938911878960235748705505277369214792931582877101645352582246910314113900934393745419363953871933166889855963604450679979291532054630526482442648009432375535139358565634694858799134316704558842545086228934181522982088536570458589849532662277558673240250424918575730629815179046255179134276582541774666837602903471765726994330633768009129242244828278955976353634821855600059224183432662759297495573395328908085085817356209486847693314065483731861812969139413133658528210816266538005331548987972111663372087016332612200137576512999952168958952923546450831795213189018614496311797642879876090992848483892207936557972020040104196399773628150667677059005934443794605212345219707367393720473034659600903930494068096938076474431765578998914948149405114432681474341334669167131683039367708086132572162118890528540552026606712172218200417397361322932548144144824885909289108803030131524760998819430258313232812580361394760954701086487087730789812767080552544125043581039299759939186896178900791381184269997038959297837775461753566588071161330815669197807523093081440622176166854101712112073011397796486003189958789170171364745544454973747970688792895158923867453004217827009874113535666873777907781884798462128316480890817357470087317881298469111585147414541219252718986156994468602013312478102768749193911145199031662348444375075824574834972979891573438666056001559484441537420889488260186605077493230105665006587564515103002792536884421240349121481773006865405571562245190545152728645621403889843232604284235100975159339036709550155535761453111986585723239229662613952019323212614454195379631221370263474020124794281695310072508801782476505445060811175738101176131987070525561650905181659053549939004569610220884705027760197479278537341873323439662182149076995623252099871773777084059056263068296843268633761605427100701568318261634874527132444167582917023518192238898908128595447589520805384095700739446891332951714047543228117621193955652613764814600112524731257399924541941211680169612847203974062702587878197335538464498940137234111671411112262296135273618617354152549737309444360275377724973760694719914316174763541503825596167478205294745632022357854027410239527755253776274845222545977006836168376392345291449101302288963833413864500424717364481003956892048687313505662328216306747804280005445190272703829433139595930898309641002138957372893758379105492941802093954480016828674250683785155313599867229672743262962871699144298030686300255236371039031569898512835288568392173376553080094520856090142471449180348144448200915576738085494554313279651596174019173507253579184237221566898903445569709561598514391030058818707742569350823185640970294889772050175242983863068907274745831682632011267155274021604315880863491786617427256167409261392787634310300471471140796659845294674514080867716939904920734969903031719139642159807478405170303784130218757018827492805725696043024703716536700853299283041472583859757190693962964706738428390848697868425256529187678273752287307457590958158965941815140730792842163218545650921574868990149388386730355095009081752714423186268976497426065958274782089609531615237102522376494798997917722365420781468860583889587260443770268903198070979181436553239501405727666209713789944205468923978769379487538070439816409847310652065651088979375274256909663401327392591450075587392331226255225734820224402076252400736150500834573385634875096285468548488335811706848814741452095288232406512378896840021034637137027225260515386693786977990315233991707254081430597209320675484000341577640007989759775298937712156240928762978950613396997303971512127773126154180065484268283839511236827819704453548325602108566948024018580723062989607835745443821926550505262894324578458494476200971813207067553457747864592136971016781256849262540838692975483168417941875754894222104868782695980204717974869316223672375690141016983693714063832568288963959756506267791406381062681501059433899932279728336160745964073320251051621171231223502506107779231081588336493819239450840799090440687812712374352010994080256076411167805575359562937594642852974888293499854041824092324303752204529042746949905539320756239731620641754424228499755707807135834641138169386869929806926798339274038042022090264693115745968122401070736821137290669646298794337737471839063383007672978687387883297810968298122440260853371926049278524824149594182605354504545356608656903872718020822867988398692214223096204996677264921285290436154830047442481136140529696253987816470640357460953042702799300094050480571335643865115689427609336691094819237549552284072750140003293372940302847088213392975821214378216909242829131950253935887518040060324434606828058029381946977315020813831309938506337428202600445009273325026028881225675402113454389127665216901113156809214862786327807613913914966070429640904960953259778612602794030158861467255134918740186478832567247444686027315698964563617527818892561289087174193093144810759934179122418819925156026299216967457573567217696520745270951767482612938388876455625498242248556469692598283539897209657732148791775684252016708241167602823262566529313719424526562439271357513665856245897302769114415590215104536159199654064526904697189494968397017313127828272998515767302490778599925199446721527958553933011375011920198805130720872203504386223674098947266627091786266973803380432261984632408454805128642368495090969990838173213582934251405555844036200696639034729085444469278687117616139861743077857370346906424930286225632818648865107878323579825339130242999253685514485147150841124700969328680701926784067989495221440643164716153295502479687207186168303810891749182441610586254198784792895502371181737872709422130747593220495114833634253384115984582549285544198978139495319362091586339805537314952078468226654481712523256265713383825249990922828022965110937744429957270856405876399130144572389739920166893585114874728168736339693947329320273836453877089005155611342084258414135642011426116791302918375061442894267986079803230819192415437501848512928108751925742260972700789074673583782875670147154884002916979900517247774778277325868451976223789565781439820745634200552773784023543892632928763332091114404889639683362718014185060599822235836807406027743566817448188665092532303091567314528558605722227758114174810794599326725066123200921091460407298480434778730926389610481392965455524600053170875337229348436841020233458252016458122879755954304072805293950677912051043234273543011861599180286809379304324289932783019555736718827022245457168936609312839189359347359078988166569589669178621995371833755941132381929490906756151011154302845994826783243996413871803046023554700316021746977698681361068528090013384084816196452953385798056674887037975835183079605859403801175063956983861444387268088430175733849368420229328003736358736710929907476860905109288070132030137830599590800885079672846864784246533139196476294957865353762751726002080305763794437362679159390677815072424759185617204359986196909980052628821931928139941483349879578393476198603160303030215790739555890616778538036152071624828997924295896555378085062914891382593719177492308886695034983617793083202400682002453330238003255345926138773317234979023234082065682491339019961229703243346857034520822960744150204519663296884501056409649086064093574577604646266167591732958496071217822150554319881282359923484651798338581055784396086511804150583644393240514269155572199849656156399485641134743166696126947062172044630646609787223246303095470822590523393821442085298165325025172586561630171486801371869505889225143073142557262396114717818518364634657571943102038024300673901028973015055471951270943788860807005840613173417263873287908605231679985486189974052301672444769342494794723477181322486282526123742312781355006827274524429184650888092101980054025658323485412103503418992395176391365308552875435387009799117302517267911604717705419999777292716151187970218560239366389360171780151516048459672897245640570679009460587748772561691023644419147502168287441912074095581419718378726246434346342595988088213069842243104905197677604899718310494202801923076523317758342249277559763970440144874981524990427161320825516022292741894911718054575025362826264217270624925346855309523413401979049436683648734874157256174691357785353736299894888039077870729101970565079466744437715171938968449115530123288436807799240111953150875391911099998649217283892398655063466640216755786486037307876941689282251475234467101719546249481373010884498618586684406819734492676456092869188626567468364235039640664578174961400201766579580786269427215599962342557630152250813788020407175873284359533458261894350891160708849969323492984025395504186242920432988055521657951300563191007583794069186911282349573484874658578924032663275694130761020485454294561480081454704933885591624564844786536984451878622137137148084359066947378456608961874334964256561206406683915399597056555619303514801409159542498310683149415072951891373337102612644289143908308727670810147409300762211947956683613214156136914605564952301052492107029863951405807127938737235266032387840352189657474237024100935071491590760327187075106528914052898424870437623674704788278280116181654845414056141993660837853954080101438369078322134692125866845343681717765716171893453121115496098933270445388453376233156801686656364099538798599899608601859418026934975762345120858990705351856470691070418781571835131548741458741885534478519650228100931533254395423098862392134752364968831761649245186312659464983173437496881186789522445035546176833368607677566595502960554050579162956199830466552963605643935082822652894606930626983724010607518056704974516563729138027785880920121336827247393030072969303635481093677928669050815811036089730427534225859836863944645368634775309679888411175760301240147607268886071146809381215594405457311114155061364686512864766135660312724092865977883443146474664404052261339372210776818625338139536765538894157885700529722450499987328170746380222072720169586692055304821805985570116441155704318622471314297895538011177607174407171421756837121453771115917839856971392094388882533999311933800202466655634793733960195990663938126340383496005647856652898465743981835670102318943770287447706068255272345535081560690217262696956253529500602948255748637041018917126432958900704300398635441942947513165181061968473957835423017781862799646945286024905140968718009405160750412365116575680193460070729369832240635243543780562032560795508019215356354848856862108240557291215108779144391306321114878195323154983801372774821176934822311168434712345107909471147557970480367964295178816826783295282243280986042434100803534074244827303360676376604336422748445747442576193363311196329252738420657325086247889916340012114511648313421031769289228307002770812308797727425168911979149870100336364056341943400646217763955317698119268423712886310348552683632462155843285830265661362585171970120683242143046974989631847319380824498700035618977127403872378174860946458292693288016470939486516026121572438324421276114696417314187018369776234403816983720212842228672628388869876399875517866553944569024972240337984331053479623204254273880376547917005354700975333180746297207769767680013303285691659121406776537827331546250189502935818845512076568680178508184737844941681309374398407269371532638509882836104908807838548876262811377394885299050122709154989059368423338706516317104203568884318669608471209121885937677752317314851172505781732641684399967770130823833078203485569665983993441279485883268168415005579742465053481916754390943511478883081808975528626450681377572403723576698298794199641051804686468775914136791272733753984380012208608686409298245667863461957245985646987812573144030729958424471902129106898851652804135298907018099166778242659969356162860099501351209705310478860381216575977445232029528651824992399340397264217511663801112159139401433819701449428578532084195382622594589626267706479277366703878734404529270633294599439545616839894517809785273149279881326965381448463253512373493973177384104689843626328301272357578885892275298160176205265142824145750316789232497926820048199044159811331579176300221126988695589897277319113866216461752749843656588397391906903417436803309957829135479836011086129068752851174654794631099475237885911490746670656231970844825487727137131661664259449065713131526217291668348345450171018061906261411064327483485587905950827114410304061460712771314085809209380603117775042206707812683605598663332196189138928715820037532103877154097645647725266658128969757958969146270448210957683147137273795701285247239654563386315762713559929136939628675842560486507748021508149153088309197124323381430183373785703160101121797436631743750600299591130159555926374725527930408348153544459402842626187141302502530669194454672586859315435612797641701165429602483051220642426114180798015148241529795274126223163098398895639625461658600190988014077272606190986421900764554583075982027783712407547342739477873713936451484112243303660744934965603115414222703402821446091335552135068647152710691254647400448398312510648523565944678343630297298464381179638761890106954556526309455757883222938907229779233234156834199833107086508652079945716761913035572796108481557192438344629762944915257321478590527734994757293507000997378032885292844761881106973127456444598355768374661839692903958432331719154669008819106685826715065411436881750622334246699313855895935558541638692331167037005288836538390767500737770428745579404803857131567921715051897604986290959830390650736794906971782206436710440277874339553595563069146306777524645299108148130586616064171431288773770203561068060839819627541317797657898751640578385693962871866634338066161406490804823802317689917651569334664793471159885683597119728105989538539961460528580607360852119112691448511018186892491798922064045175212259582583563944309141169433870364895192856364131842429515898294234229330787932295908789265033162372434650923891955101653848454275990294897694495170064157719176964506596255082768472712958556001828078726111146369919860278829245006184800696420277742191612920042950515049110618619302261379083469484207329520692119151901685701582250320247894558800969348287724414935770046988439567584665296713788563421421192263233355109708466369235790437542742870608463500595907644132448058209933118216729587493689953690988326260375712915032081402313755253551629924243609196105029580239837894788204477066743787459711326310202000120707961222477108195844814812635516492534086293948833945526993911244989642931408162691763887773645533180115382577656006707545675653489660082382062431649761408995659995811500586732859376269062311356233449548177131616943133737399473901366469318848408713567095811575932455628827711242285652007680517836874735878206472115074108984933289868710644918318027918100725453727806960229623017444180944188764034390754549595111737472979733970553257583680533905447701618071975281420483493014726734166851158772741485271616017290456876650271336028845795585945712119394516152907230607384482721047726815291745783042744686371500804233953235345107686288032869670680050961574809738115607091616882600499447936625263472952817202707425012671501163887772019693457798309847756980578100143948815811408051963781099240430588524514408658077885599145977705319204751594703222858865051439150908356072672723936722213683474914723712878706332964155503417871344780367398619885373623850665778345205850719422169776740404780343001314247172262684638898517247340293455456493557738527499773008624024605478568597704164659614192010124699775801725373133481037792922273378626562160521098641490843677557877804619502825730516926205226786439628047630352109091491294518866309567675450649877389228820489664009439869746003198854671438729357775963704025898316172563169888886905019731582100514160647719611483042888950939714765771031566220225818957950008504220297924771625796419166256360374272695826973057939910896265231335292700133635707087457812764646101642255169611086670371847820971253874388991568077348418325926036856091806279570924401956667746885945096831517056520815481771991471740502113726378452059368712756173083335352527051399702732793168848565104912718015021461656781634271652740083524374174542879822005902226555098253797468364162435827740746228918420658184599827262071041586468750166537251200903402727103166373025947432031732227306726299949206510900055994979777285881465393473380720670927847312672471312483528061278374280472689671599418312733613495832523525849284479301213141052764621579175822381089056877629635198255669016951479962203874480271799102377107083190106235928601802996701541477074252621340755043758180319809315527295037957825651821333801398516890765964877414894747160440965254703138059674802779759082070851819251566241040140759823118978255296923748926062950519403231460797194150616529269402479484193715766176360176855280338592981328468669260495964619418751589950032535020482066576506437889870390547841312073374495226191747180986834231876859493840988940166283406274311884488977453542425165040140533663086269249828601223077365384142918005171442264034027006659328630808677575937650593919612101433397302122952196041232903103528966292769804853285580024318351532339078844435739469751346641560676632267112266727735807505892352402415031339591566344726685521112508251671725347061312878543004544578389394858153444896177300557572523731591919486442119469373089435721763832836476736974432781598667014188194336689206067683014822950902223249207540559682484893763600746866296247269857455109692095950761747641498309052774244869089477973347633263223593778861141152886590872738968757845492080950779803435336262313696144017121730651133976655188597333951039820303428411328751560908243807980526518025758587213507941502278838449260692270562634651206645464229819443686751196437256714915366755527796622255523106343451560182410241914625025654522202451000010429220153133656662103987823590015592018842218774139256418588819780575081352650911468574692797622076993425650805948089659880573757144622885763491113076347239659062047309728654482897643938766782898862177557227630854569234890738919615017491764405803252511230589989970106622056946562255221488670418879564627975650302479093570230215995806652452222149117320785021884201961479717949639997859695559162418729991366650149827522039706501434823847150020035750123811016778625113925246779233701608135892718894041043895396311683174720996399556252631509396795590233842936811496780526280772042791569720741420082646151190679069521580266987530098945586095299980038123672209143820630258145059290802801524772357989783103914961751109725271531266708697041721898451593035460937963657835096897707728330059130248168948837409064853860036476918002319147361852046217068820827867964692231734707800012101253420356213131407892042418807751214957552782168601802238951843818804652596550130216816375523887709693000687702605917991394906710825563792263792862856484954689805083502937940213348545349487075078040608461632690593669537880754794630766479190970231157431859180954976243836443838117862893199592561957882425618680503853349181701950588367425748991709166010418298525045650260670561863961507442788108427290917380389201391821364435208755046736647759920251168544106033806831722124497605700929885920595233872811461130271799440070017263076298288823866429649101817685445813813994284583557248098689752828951937139751438412760592376684026766033507109471493892170072479121440197584278001935701121703025870513211518497384792152224580133697832761039616080696406830247870249630553215145064031420924630932978884921661384533320079394230886227393445773038736729691306988183719668141794541610795251959788796517380739864242543544601841622510832896367895040396272011832763148788946474378498883839330026311396425259225292586795464010265665657042009273656038106780081315708050829846072978674218534844824903494446872701497428939844382476994812776663778106694454869588384402385308637722200329261289873493752434601410957374267753517920475275878302386928523224291498148963133694099101904037543751402476597515840837303290281589678687766231911962641444690765366558510923856933483154012471885667499724296625913700555034882679079648390021820341914524599685607340743787027686576931836724344977725030326024998859147680377473795869910506821137499502809094542147279332073281418139660913630838786888431015873399382200756747766757001528329491816999057265502724569964024892466870990646954264586377602422694771266358044339223581564075439475743390889066098650736447184387809860251279093903289306469319997658594202136351581427719732307220726006627267502710737651071003125228326393690622259979653637988295825139286900004039146473109040165621242983491604782509211765526280079262996262958300668648914622311727967363113835785243563173296753100997653701919484425395238711074182038204068999985215821542816239836584279256249550925671351627056600806052905382789451702105730948734846134005434253466123226305866575253765886401424103003259149372165373943973449612330373260468234955948910612540814104755198801931763051271121332192434621451869178207087327891918318338499319976401138260236732404107941540725171721378762686592092762271131356322056429604173777302262129720080237899994759731840274553859015948856887332600759182964965865106150968396529283789191709590831402486374253276403146515128050329998667840836366514179387868791789742337733845214581757738822478780868748420157313965244344229741078471002450571289419693972145171261768122806664114866319943880672515504909094960220408188387091378305474180608813868903767968906438050664948337536884527056626789030189562395522870374404266311751366176428900226027278224411857617661864704999417648309660788608475533343850108706131667862995279525285044271014559267734442315013074259026775384782842628631154326792304324224714620527423340816283480175233394620665346214364485000833559814479259177855658951556283573749913240887223259312372804408082541406771620424879295070860615150846863853568806371774146365661936561013587126985962262692921377078960896728911227809300172163512210381523119483571006782463733370886108268876351767382415530892869999272521829483728741512789308691508158960163733533588281259487012317123637366347651735178950461418529193572784217868278022393733632167768864226864519888563302749910760631542324113326962504714792965497385974640545068540326181811358575023149743491523268582434836268845646075712475504137409502452987342644498369022617433638060029082422097293791406042016681252642747981056214834017674222491828236531416162630698396478372969677019358941133470896785298936303690181721628865745184137413042555476251766349225446950573395559294571639895667888063881345892778396850233148701774780590778046235099966295124475511248424937867311503679173689170631117213347687185786399098735725187802645718448888875961662214545821505657746987759425310085739719951571521132864876964430324543356579072401147751197348835053866316454419521757134455515431569665777440049452154786812583781357556846129139940953163302958507866069959545393944406252613546913045327442164183936060170065750408035280112999930539893789028343187555427125687050559805675160115817959317807661203507768347276024222840568293726395883917779714496328516545042418513880476728213305811888738718858349338163408814549544490499655429753579514194051315833629895642920677754499527099552270560239156049136048804833206900845278921022305841513221666294777589169052444092474343748429107569798797042871956959383152185893048055695915355382202473916805371352100624853088717154216352892087603819716484118521926846243216885299511664516758327949314562206005337094451741641304592492414008825086963470356108721536367619780994751007589000908563079921403267005692094914372147283580484751404058454056185327086330421809810666009315934008510102598190134447498657511064781453499759880997979685013724552680049434449970753561649595783573404266562766266214814920964674322401870633348308484292289509855514494617166058121352256710205450396549429964412506586585406534508725040421401353554844931977189334881649122179572789238901146918363665135218190703174157943890618043832713953574698535795715206318861522535951949544328377783196907260763441086842547339915209502596149755789481849152183539442277461645223661611688437836205513756621858638896683626620202445369047495088082995648570263799485110578763232889986366540783468544197124827735441757234858608065569249262664336269315283027584996788063953591305459423628851907376981122396716684042937306310334469071661827528112826720038849064585478588331825887900441703120808180127184029492029858954311923904130436505787706537763777295137783284777377853590107791960877215723723663497612044840792623344902860893888509966876251200645790682389515112336463839094958811747040629376806743824609135163814898134109935768919865714079917090145903091337720510816851128975173974680411369557616967057392174388679206679328213948545719575683748590920156165433336125184539711120450854999325943042219683576691302999753886650125043960410650357910098722216271507294333486619013669622393068917451978033374840859097186580560576103850739357784325612134802256540852576981339025717199548157320536834347789024038860487174831369428518911989163548687486753153373360791229924086628050498740346320908952877789027316737709625993719748794399664850858443770330488541486763371773335104043831898104959959766175423651124007707578617681734920851082676871761217578369057830998051950049677584377552028790859255928570698737321058285230446502948289930540872197983501509839631454841283503063167377995979856922595026209790797778090743354562430115685854338827106814048943570721072438446484600081759459026523562510238095005818722199267085353076764524050458692294677253822968439983606858974945138183311802391029485660738743693048856833907508991725748154766898578094547143805348132980070198410094240493835294087744872395607362559542663198305851034548552885380629550437423909842330906259895656486431144216498063346049276486246225738183829019535058415150772491587133670714056348346636194030684436912662980797534584851518344511842955034896005259000941032277839826695874402815278366844963624505105129970875585913141390433005590009843351033200786785830545681936560906149255228240490174520875636753217428228566060222370584363045876010126176995115585803372507099601915730941221263902165317489474039896817365223327480104022531989822952528600734900241873643720364296244986764341556894888443423651715955741530451220390464788937902154812132688820244437288261851574181532936430408873849499597157301134844378120209172587536093487901861227540519957007452024312968038399762436957547809314878369533573760182882240043638572131274377494175410520259964621052425500831214686856433499631847381948269889297539880384725190187338018924851424193464042229210268660800031646972006296706697877182361756822335257798388635541340626361339356429596743095067798941988188877045792977730154577301548401232615559854981717792237158910957454060955153227405814003160966250235724123140799875925023537755549395050650244261118905790954256844266080633547868669788118859638716932805941666819871258523101322332342647208786109561590116685251573826548743795672910024552643245547431619185580829611502317346512023759057373333453663471715448141991235669716943428265342641840544306276337068338498399997511561955740669631716631108489995068926939871939736938652946994456548738799370882673691890877269927054272345133560175124190619090021132937616397165466908110028187256325157236632458480111342355843712839463536660962833816612029701061435342652368533448322774788370899967594480339943024138086827604692484517558992908055364304385018869304390228987418510467051586488397835097169289123005288239337240514789913589635934433285540292405675204356746431993653127382570197273170959111539692465003446382168106122839879329152552525379158595007397592545427846184174841320971365885405014904931272907324565291521535552334061104792867338421347140347538762666134474996756663030704451852360510542642221448160372357276201073018766247231572388985881882967339123787048066570070938651679889846507439975631666158250928795286368769565597168743489157322128404696464845618529560655815875049815978171586921089620238940751378524770466654633481157287127348334721949411579366339583891964776092380533624660609829334940040072003290341412024254833991518281840013004596128745719152322872761325079706452720204236942229323711989058104906869953580802443051225257874766862550083606544616650578370594270541759352066552330596407615928802270117306819887598677143737974645538452130179793485523563243527913917330856298407666637190448264398442286257968214098120715103576818259303606634099081458175227161879690166956300245336656468094613653074961435286990581837017777962380207553147103814868862972376745566526475959095103460762860427342939520655097237977126144035958694157517365454392498643946931919254409030774803177968155504511357470698727303586302964285082939917663770114780944947550094445264733113195376205483020344036921420939134028386155017653057059335412491398905822747365730686835666067326045686538518319472898961060530144612271119505669487846592594633120113786054641170820234976379483952285888542074161298521025712005377685518120308657905273085964320593915489914703399302333109594292885553119410488583218784587575873998343494644102442894528933166818287693071815231492595873279240832972413355354609080195882203551684752412905627850007213865157839991676969643463065748349425677988562358938905063869978326151190445898437786314411271275060070215713261066482853501340957107331993150183111032016286152323760403486451520207243040300710129089606805037957297003178591196445643222041123217224391662749759215873036349191986162752116987323546172049375474888692860666845632784587580301862979709875781666332016663684050063611235145413025258812223171071178592317017490463542504649023037997795585230235426438193477099875419066259711079142777772363336777177429309315205346605721967477370680312946081729970862600642504843453238754164805899348246843536958520772204095468479020233046430079802632872090807049376086540415803000043855357362250025026460197807195577098085907150741859632856930911859371415239051790433574468579929361178527776237290310077784324656285572258985461207452180963478353633844821802164664251540060627016572019582922896025858726580898247220779655910384092304044496850150554782395593883487333433638541920811521697263361436972748223943018857345388522063854184920067169908792804226189728553364597060094625386943238889186548634032141299611595647127565679937476113574469524729909826430475924111926359621866323710203179000890102857285730472990839270064399123808942811383045576876591446983544368878578750110137154257734404099362386315437740293023062919795627527943920733650031733284011422630561701113171783613479391596532675576967605449609851242474066379915778534213940651494272424134716526732936850026624188133624198320233363401057624726595178378091938174549348069712020204441387293998632122507665911067393499672857828017983348252191008845308590511016149312667159302881522643714087936027937564566268182202344695375204059434361894320871528666399945441616214882351160494869882168550065319516930366196907562484090568354345217727896203665772936955594045616295291419515505190211886607396529893001295422249665464220164738209970170460262097238298209179265258869278613120535279908974100030789240116612880633319173746304542976933488733269370767371980332783080883684023331943408930102229839384873202364540491012717393168062501160680113919016712833726727448156174954415732497699525068975332012252103689029767309618080991325268564748186240609814012881437714172388538812181237755604820589063248308744878022612033720912708391796060247517875746851077849922760842538437352564145715481166674336566799638435886091662461486772272810074669014650666644117347029407037141080476968978173751563910148277156795695836003494880097537296351348057279723685075565266880989846085468273718419182095194634661593271039496983501236473510880778297952708557243604112340827692428680060369647952021726968566673972013484700085714261544907090398883124634208468113270507914647175456122375470514653896444615512735207648048470009032654847839562832408965906144685966670737350405832122447373203642292008811383322309714876584329382472295543376281726505290853660139156277885068498327887022591182906292867289125686534864516618603240355771970994353098798902792913880273951834496344453729341265007918577205334389943379017925321720783550081960976226128026829683208838657436668151269887106237513124424922913244841699298037275666778687953176010742014761376177591820073899322598602027504142158882341639954621906466444189263431468873515582133122672133072092057216056927608203380726347591013422983654352975653566656636125967300474811714980918666835340601423108517058990110696758545660297227649532504315095034331036102682445682911503128100733113087918424047731422903823005381419526091557027110318166055421504271289915809944924875506123620649253597880039643192190348350812727887412366465894487005922006783220543200743793215967293407149254076395849862864694166596805023964702224699933419679619300255085114552033077219887131864456253278191454941677031571138392939825844799371614654506699341721014567835065278499054214956759735133745169307170494810293353665612937516471808315887521891371946107728971927432966850960758124880206812935750829862194419502143457822525614121558036891141396400219583894822319048122542238090965891716255496335583836742210826884459255574731213471703452400582948205063293855401247874610679219788470410000834598161376442028205706424375305618419614824242789379673556120068155432803029573747638608624999124758887883924125470050880397623591437217880821191652876048799750207476646573642708579089403873294657401026273331619640494940538024278054275264737730190401365909835180915208483133331513765891960856804088616595172457745089543377783284340372207446158193048234089176799785487686365974821713587674943747452622704839784403691452100607819194133563829911987030057392440483832532968003480261292618350120684157854400652844500120070214516164490028575627078168275557535687861306609642551163786703067299472293248646865115449509915662489290428494661083172253617254076882587981412452610259369381970253691141884638959228773407081310938826343293220201755361452027104291121716371879719129714985422315185050461510692343117399824030645017922101238250966059933758553210418397483233384960330517729898669700004466559497471571379675894182622002671792270791500262528655090633146130796958060420284261325861551779624711049933259561427433767244451579349395476018742513773087814612418250638157006261067579988202318782485664100776556452217716934799419967550961249920840569811110436736670567779396205340404007961607074052071886004206719763956850135671237981283202121066305975529128196107943766968216062489931647633376926531348739798866672067457866368378676219482383283381176819724758985357777282349348948431694694602145215906638412293172411183252485989959683953300272318059384762488879686094833913845779178236596244828161761863055102122236575855379035670207914402562977495753069966690625714574735552528667642524018003196194053946531045643999649381426770619714491074278649873384268462587869224621105870449670582051552047469013259885608383185149070183552364590323358857665997806060907499616262611888453697521586524317625651493397842070275470088481648089482295484299385031760300495133991179795309388047768634123334461840935401197452899884843886365739810329679153137773172366606156254053623454370988079020084003526252053355443961470440046763666578595323742828937117051437691632963403291130527632069132086267751304747315650330875235034393449330502252992451410429902729428887033333650128172035708070435742331565304455774031017446257519622022834885089916114419833640878944468737028496914631028025646420855162841204562413040463895405688044121132617532536047395507781812542374112701334459207099262927637884577186253512071329902659078153751274942708142130304035751637193318619661782465399442940523504808188293915358413277833268605730172464213755017865667242794700642173842067845682947676017901682225169510936506423903047883677963453050437414019960520930569119049542300213323383567597012915543129964982252064413533422386866127389511962869892681038094073398704257502957164453000020184966809634548516451063031982543709519469237423006575808562661814542183770580496537978752412134389587338698669603331260409891760387893377126388094995147140951160541072049461515158729039776074615761528379983453694163102108417335986700151630011155902370286514047155122351235632462376952492832032743565678261802557525549113447395445145768135210857657224565908790864266525583060453941910190857022982313453610089160746069711768149219109061519075924436613831056310969653118013199946353729321824295249906538182292947443605117588542702551009601055236527898848383501264294207269736823589244521876327077297748474241401513776636118336200198706790675238267379776207352713190823721418181269202717689353245504741732717674284150162180752338053259827277437138438344994993670611552583934292036919167499593373719409062355344388920945352899882583782873949928882927345805197943183215920640823329561620927941791039619342853606882306479016499594969470697093649588969527128208803977388690832441623594929358150403077971141722119930055321665356225838627597634901565184046608331013494161633557930753407328782822930899326503277058859184256387857235422435156963068273961518071170750989037353845549292777765073049957604183523992308395718627616266002889690095438685856157724917262734274384234675208494407723686700508944298336364099506425647472179284637886222051514093979098368705603538017705840208495665117983910118366345692064655399609822475322395935918296477749616639721966245774193640108072698038212562969451906727553768316136171957081087324508353593209987126123500438236026739353731455459205708709621668008838532299986323363495917483982187659526255326518728084641020115440242483302604122432917349514621941021588124162831258823192107302407372994285540820796200709573364563334365270392158314815817856025059865114629323713229182410262570613290437158603381847191806936717214769797198233031091274071131339622235111426401847926043608161816023860241824233746254155458914519933400687077407339130591309699838802929132079390961401991986195973660297171051016443303296836738619828049925739378485590501951014531470634748898781589961430361588905741093117002229839237775365239306376814327194651376036248206557308817833592803065949206744767349203326270644424209399436676228544677034018546137315569993020472529717028653101054740001435725685692160075181354767381753229182846510334075892970826185779012016303250735003005451477472247729618584397416789341184498424193314070109203895553479665682136045925243158865815107373233873486290633142375023328360174312828504401461996755684028687155512884086380166366347287618293542328820273405730931449957307164198200847634566376227218107853640181704360733999686036118630893398674967628886304281599272299298600841357493217319750149899880962163831257462698501332892783873083113854437573896327525090177613720572824537117736136144698990012385028026173062109281827546700143809797926829459513244030231581245193232169043301753017415240049598475602854661184361070623261055741648817532684623806617987867719255754685209634980059499311316404545072764831588499881415606064748877343721084089877748035605699669309478883639678895291597493157231025879926194382115151006543937433106176495293052411120970088702949096394720787938205642441050896585298446032650131969223462549299756794812383707189006394510747413133842044593712047055718608610375963954788144668843767923995615574578880211515124179108101477047768144043992206244494266740609526825296660693229371972284555306604931108455281922767845000600003587502926326859258366450694893346508751012627476310312802303257548565990178968038314349978043443438696412270958866515487390129808732874585727884762564866225742816791561029521667743351820296356434001703748657894662175591271803488923417056540264799041751255196348532793343981407069440805973057707268217755916573702452706698715833056604725193345949248225808507333027854975159008688448536056575960423930875193220025337068768316235584018567174612358675316979139409180109330975413124693636391065015150797503402116442896934564105411318705475880586921344871761108692783020064282044747113341927139794188630315749328543173028560291541926960997783006395917666944813892967222381717981516302525398692422734980632047606858106018121983107397923188567940372147428129505607301830487987005238613317969402268488106737769430329740997169526964262259484232373537544296270242773345376306278847520055283823610696035621337585993455848090598861360183693430524258077254485245642902336182149505316562114035126144475719865497166287216020805973914497273145944557428779199298998141597864174254544909290655650825135317954051789643319461611815085357616538537878896983994356081339163200947688700861307299837161609660732369125450333451687992599415425711415489139783787030639928346863714964370864587263812555780542442141825166656991527583998696452532953626006875863911132297999852860141967650702915548730352645247989708221610547631141152020233653088382907145797218878579881491398105895266375662199706039427806785521622666032287740049473873976793648202164156662641888478514648410419394801199921776798843012135327449303260579842724757822301588020926533818060319296408320237455139003187115384110693700166919589543654423920889918894612224878303823973753640252796549697785507416151553291435989284773940003584195862826526687989559421247399271331129102049529439455877249885555676760809123311327125042824193476619922808980531156320311053672872033334516424535390813293973822102699923832649674410646670243520079441241756732121088144431229780398247626754576222955200540427394298761528116148307176329871523670653546864286947678309943511616480532707837192671812703621920238238650993384049707417710850430955440105248459631722319139476434229577257293474355753850516207094370965966173531021245531435867071767425747616194072515222774348759381924592000022333638240105668986679422555539439293638329066632840408206437674158776918775219762634948005879982533496814060626473310231788161958776178677290634386386668622355065658284218488104619853067619033294855457061945220542563695604653644853653177959773438988223729914658770999254504239058653856580464613179361896908939127597607031728885790452873281659930415239665833004962882845322546507570324542513982234663557009204554773244990858519568939490893824326423606295091063214670450895347316816690944362442311825070577753833093293297320243363057033880380206875542664077886686078480699469393182365314887074461994353865455028809831589505310859019509160399514214741581880027806903701253751640345927740533396243606612045012541364190369838635123479056517851993065026988027386776853482549111913444918165976433079269346939038507367679337272167773358432186300112998805369916099763731436924103253493481486054010186039423400988314559211494105311479478026517026850130129373424185606188066797996339465009117226857655789659870909692569038439267306177165560047093898390474744257417924775483457110814283957598605499298661050674483906711536250671088696909301216109195821055272971263793233418787570728387453405044212259387392024188163479706110048061350779206561977536739699483653097647727820640421095221533724750617603100630644040512633582951784285341851092146505602948020455050859843536018998281109942746913032325464415091138087838560627683933542940347399663329627045763496210063806767550492652885531055556196997556853756845143945380626693361820857124517085648058772541610349764990569407946689412780834990411854457554889974497520131812660398082855257473651048084777041866515377194537467278195716322774880468874621189323824231475616762330807180429207437949555545793629291014781214993790092304432632541615028947981289247576001390910332121271565073246705530517976434214282632646569676363604877870468229032577396943933001606036711806821679211900197184538178116160718866705160148839118792603660306366530027079934564109659727860252848042370451012861867113728138742710133807717837656023804706701642040453506170138977675917775667799787311283771750484961866183366570510735288828361765563917693289489024399544424751921918988653424171533181416443634553971939982247312971062095134296834484171441460232974699528246467493268203994808111266476209830249232504204438244262905456174480573755284993916009629625617009722753593714151456601285979435863870582326886968098244844173013621352841825474215593104545296340865802086077714268892827411976357165485623829859647841586002098204402572448467692336448708303440612518367373943184389832811250548366349388739461908542861623650868205624068394313356922281307832411616177587840287600579769013139184679425690027381896224969820722913952633790456946404521867505904889210495534391122211623735113063104144256531593474661990119036251701774174043056815966497625831203701550972644778287369190319266975605145596659518962367120039709377423697878926676231231598103510579032425226561531608576944640314237451823459978669751949708116224125508452266473501304303373275322593310706078010789348468835427768127995343084170657709294827406332370043510807097433110283591775210945836050773210298223710278439708630565383085581098432628204797643005446363097024413764504875687289095724310181851097418288671944500966251391850554093411293460290924896903651081127428878698527845293494522206356721348202018411106583613343436423150938633778075243248309356053958111921595972989371333405060689208016905618420757063407282783402919501510803005260760590590353666741614034776443593707477679176471035971887529530735984638155703426229400897400545652044345342369664469160933281798109574926853025351199143075639617623605885885306850810667438664242311369117169376070470655622927455865642917001624528355523615914221197707346249619975107556663184243853267000709606434511959622673247577562914128986097038976059986502318707195700072182904937199761614076280029049328098397370216264560917420470449027804806133114541367022766059671297992246105838553114971303545589881892985249139445931443178694871762227878334861795483465136600242645859083302943519720392301046762536624101307737359548600336862535871923485910374698843133135700990470848770485986489378249074061636497457091543333806837866756234475042913009106204155635930293070395794833756012530425714206519737519546299217075951129219721035576331639820817533092918182285610021285625227808551585244471338050429140814436917449028203711880605362480965023573231904326515544663845617275388543543181081701936904999516300589073441981989577990935747716418515828632762790206707091666952382148524147698129582021568777261276871445637086177377187531635664126621802436485285996538528985707954607484119087996759846239089024831421259278051892766361714552723117872253428546252845926970569313691262975993670989251515092363673200291744649896405814675749822103063259849162036255768475701862307266116672310880831712959948042512678956975035779508877319667567918758552419841285460342712504941556876157350468678102880366335389086954432310520037726161725136074555045671552531632060284903667121916558856639574718363933761630652036262265801521350723523799058115804938917414678635653599570011827807511807704491356256485537503284655334018801314550286615130111923989878517843391485092017171661456057125230560362901747928545567224994460836207444930678321756469295700924178530700365648029499366298400141873564351566306296921343858251942745482236720619006745285691389923931437337888909756070071060863298852686305433666280955739997143208787310317113925894222770984398908542484211143579736445578567176986695233569890198439085645595929211745066072877114747147978464886080174590954030782725661850761053354482976748411971285551231490285290677885041254562810469908901287347619394324715992238898549545140113299078344309078422956923399344042756313920043627054553816587538813408820131939753818017417625002908961335690504308221542281759207895862074487498346654639969126726479595463997129296390326877650098133835728350613633215474619373246087105080800499468393008633742425159433500686020022980154222309499427571672531399996082571648036699528751608668577767557829474329379112299997704185207633083553038255905977022633000919267222874499001027619349381912674053528774810199238344163256599490103387880403993900967798233163880280893184914996527074978767480957023409847343578118350541341477066952057138086266184761033091254298727830863147654158009569939664152780565706561605635354317045815548376848823170703466601625035630606890713117813758647572824517755163863345896065609713714330864309129583246668653638115702900613324659126151223507350643917750630132401914729349885191133048172853427973117313439876867693531287152545453398776320791209616139000658247895609295602240994889098391842188794841650036579898755257183366737218174717158367780227819382368075824883623415735329041407414966625504959637313369168960260478877019571152966426702243823646093674808491104637307109543840279028659170264257052289663815362389778556757310056009089445187739934686388753827033601663693210450275231572717722492260646203194986785246615064346490739219890671873743765515146409666633892111983891585115915832068965761947952201509792533542849914672995555244762194058964604016796732259145755157375771842330335112638667632217757970055272689436523175744163960934834363450637409169487635212092968890279546393052779466139275600934090860479201032966973702223552118106266817559424928099604901784147521393552047731801185288213954130468950118924895147117250466789398368412585148249603229130525124896697122037629997035443916143273727703978222600091017194795386346148044882075931517497986290430229636158862260041294271815695898304170617556191698167859165764233198786588543795835092042380873786368720284728117590838749994944166599230324014328962783509056937931475990463137930624703889159362090832653884520637561369405053368837705645557228208079311468243986545827446370471999574796572857442425785740807667084287448625085056456773418914370533695230022197456220354464019554700428723484772449659931141630305026360391995766823922590713144874611590557436733118516050873603663675464739935879828104670597272625963399261710732276482761643926955520769842482543770624350647970560874203198594570482507178191837779175643031238644041748622551761603019896018283010870088584738715547173967557989615244084676202024799428647510099965413598788259905718524144620136024067632859495210827614448847565414992273227083989271303202543739734298237494942476724198184905780397704857063190117265138714132043686672238584099011264485868840523071763974674600814946035648236469553962899896129562403215139061908426534538486469485859189845367024345605941563222062130997351841004591210410382837690403603150692978942857568042952305176232188001997995808957117271473430421003611173288837108109325205562406849647331685043338600319476681115819971924660382324980211980163250256839471419030193913371864907675308829428826266896724771284672696304569347167782407103413014891617575694225780491565722936025753232223132064212913493172741217396805359175361782099178829154814728136799416570551195578627268339152851400226896270653557751719142463981274317932835902831363036821406106707646689651467932549330803374123589150071135812976227364906514865505180113868337119735657982112981066435962788168896159868312758587095773643136990224054189970670486428716076654394024424051225328052081962296643699912784762151158139904827097257693837025767438279468014052614993323166485002392484581295753386724394602406757934848707777338394473697028910900778000073378770489573353202212105239990101778189576701710318069511970040730079091981888726925255716958449472356793798015390152981799418170461939353423059975872832791113924343087112889413953388900366362087037750817284454673474563647097752574151229926622528029089839415015324688006738038417558196222662251244232541108732661948888697039862247863101652130316618984591065555453297854812126321789771528369463243459494186674269698080031044791036050365969783798302034142370731656114083069229074945511554750211314694904556509822675689832472042336302420438664046941187865246689931572983451984684074285369529670770364770811200130416244594064829071801649287645366911962557819335957904534208144633794262751810163434359926158863456779741000992042726499921199451584271320676790398037966041015850627677343269473192809558275641610155950657850787219229272483580450925458003974631301859874197501063163132187706200462475466527889821627128965174195227939441721436671659568313068393278274305568270943469708017477456860957535301413595099338118147349207400371578312866503841772269316314479842518359531880417686293441463969934259121359292888553639425639661997208232847876557129996563435200503584145627990851296005752762681381372269007948912324507347823649734860723505570371295275594840842705108409635752463143345584303493939249145412348666153419767540801638734476900440885107846041337068323776604592126402775422307015392702361558334197149175466167674546772769477827564698616223727179055509038338004232914761151791923021861378295368908003616827337889589189524279844390491734703899449663440078894664200926449964816741717237883609515558824606569470178196409442819950893038748732969111832742169725649995277542701542326925243664089495564820390048313675202283352746528396067109759689200686475577060392856488812512720481515237663940460406752823898327956433443880893030730809619111096883101787336440987626917122168835383299098334542284361321742642458233592114276890168539023007218631041818576761423487151734618073762265184987087100525563452178093320845806920856101439817724630111385186218189172969894179090066506438765787196143242892195234805266729670771284809833067311277080186554300395921720627614691785912749416718760758233062056311108817326604273662368854519873863191285666356444471217390832209411934420258849566782884467363366501640387718173521254308629887185655017960722910971104049479568503315645188894547024412270616555115528053343789660256430827232439741374786783646124545523878142170278375014419078971565459394231858547745257187865715614857011039047972915632581955669525081397988802979627630124154077221367718291768808531140161983641287581546154850783139553406572800825014001371496943306144371373625516456860542662619402298101548830424081912047434519704823823688254618747269590048300093943260644942383112337613979019515049640660149101538303114548997275779230054073808190267913743811031504139224539442619418068982114455200895647095214421425221276055792503855957051358626284327355669730165716665245021765543046425712698412890798189780861291181338337392906374696961373590773498007351015453677078936588756290033256240001644354799543549642336839814354933653749394234082483982954459930155874177767945002635985949055878848216765150542394462760662691950108273073552219356506114506442226572185282619220224184095194627239280810916941998317622887576689983082038612362436677408279365322810502833342243452347699244316324589713138257601277350902506545210720232272964408106833210780962606784869598007662145857724896652150025343538749381551271133662525205885218085078424207136280826484488390733154185689201622485185242549632641472504778006620960286758846928305690952905698460939568782120921771077501115199567842389605542241257201824309555281392546776531418883709296381868466594043268905963114336166789270636987137126283054136347969729365421687168320724497855175905895874860038554949872835494005387002308565176829954495882719116726643032315253735898729589940306662842159775686886837851709955058308441617253590839444639926319690928241779044234545037767027091015639442055878741464440982485769379734691812964722923584876174024078960033085190254185178021050176162295418536416454057683029617697090723655085562815666560299702947384689161943348433343731866671234188804853510917698890524071093670441910367887146112479930616901949816670863933246009505266713544775575150155159417195957704577708428381727681394170105375963447770928247663657641467005200834964653682004427806482073860965202082646151743824585283114402282286553559742430684565081925642877032891695797146666274724907992605945239482360565199801755489773190222712100075662767596200036311014975948931797999141783498111009990346584228162861884655707294062436563619374342603916284660545855684487793529068428038093775697725218383304168037425304249326065052186503517247126432930120773740069236398486487685731680712095448542250345738461250532388500990119019310836827081688442787050408494649904180429544695012312250583671166094173686280171478477399405696112717612357123002811117794715940792089520480544149364167412604296416405945220349561776711755078019431204171152387465291189695083855824515414786345645360917309221665512162191818973993750121894150731304173403815874512839845193892103111594448945520222725810281046079379855936010468455891672092339351330750260020736874019524732833539963587590300752676130746777416118206002633653117249652471308750590234720601973189377946812733902952160783038413185169498321466635596481613648770302142356881533138831236207581577318781150926486801463385370637851516169429520289885862886523917274934698631580016784195248456052796961969450991914723171788097374829261544000485347822831871503631920996901840298551677395792280721243802894747469648406776755392069505046552374401331418402556850232408621107635197908105212463053671721618339282684098631261064476717888422756010377149318975772237289775010967851737996196804804947279640212097126227852528595839628823723538479978164655810333985282784839668138204018079906171917269539385326449185933354127961060800369554438273279390145906411571742624686673174874722360271093272927522158572326632459298441084447691519529469915462670956869959084107171715546406306239014379620612579441102150672970582359757202270816656673829704729527412714311504997658245442750832328478178391785277479902443604414775236081026624001333401870613730572604239170942185682959586854663208842077330699007450857526038632747214092605136644406088828965226454748609734401215354009285145272792861983619969982707060716264637844635691547042177270879273091032495007203138792045765663174482856534359286851893624909971395298106465684783158112910272034934152518340331220429359205299851071711157291054798332710595452955030965928667144120078093998133873216760593292785587874354762743924095682552414518168374891556650521687799371388910545585501529278623004230344276296058605416124108243536329955563247502018208513174912989549216065634591415008986565982964919808796720379624621715303742328434161440375462282408658404628218619307529857750883679100910173891850889104808277758772772344638272130304661133687814839736579248169682449730543288885005228279812871758198117643639473116871966302745013950155257356179665033423159882226184747560177168042568594382476197964085114982735786446119332987528914634619526206255089363575990518210152240588507960287937139426851200367369898681539657783745789313322108618224682357019224622837687077689193699332751473344817345989807350405229316982860161900767948796012070624078233539112211632561239767658836366182953556821339001524466099162490499088732601045063005302066325374518105546766908149057473835425945305171530853570034739934063146666322870574195317503333103632513999683879712313772039689192471466134051912019318440990557735881397348368403910510511637361641158790294875267535310947690611182309425850096849904426536423113640416889244400387893534488365606708871423760618592200336487904173075685249762284475888930755373411759659134550359974498194695860327489151436367283071175367589131053575874557219947194411777305870379721011868584393730501221839422498586093041028765386817531867684195632185784357326084737677539273560022819474777144809132247419804883175123790164727028654536368211316495123183542785249281940116094898740892028900336858496731407480523316214555459986313253194757529954657452102449389653076136033189697804389212719718632489441416432164279886883345995061458488625738923597306528891309398578877572128626111834049865642450309032945611313153845563541488372162785203209276619592236724754552789427154469946145153116192562240593141871815151967438670489654218982226573488614681797347048214554022012085105187389883994459279001344332990409290278048682141847644246100241365209487532461108854585214277520644824768212163317578255085775011099566869664722850950732166772955855636057304999383464409157933761928818052052533631423514721630070813863751057215934040816451727674720478305119255135517133370763964436192669493605592812746058908815928131562706407393985034776152079334942332958399513407918619752279480007636348586516634274991159955413207777894857964279614121170944831639299251960510365216262374669761832500552074024236820820610622622843729275346061148352573264360716484226318678732373988508667054850297721034510716162382416867025942774831917655608882800130460504062736095803649441906958687425757349397986233018312198772234698862732836649989908871054157571372299654958718558306223140359172408491898879129738370672111453855078276297201479596516198427434732482948269577292012690200956123636202396836221318635494093002805165572143602902120759742726809878947198015822657298324451585396680931117535856837112010537625801051912233489724645630404247595567349192853165062007116117281764800668030191245869106650187472689822658082427806584420242533621679072723669237552891321560201079600291420275537606495935561402802066408902866832557657542045165332325994832208070709000258553279707527588023405330684649280247250604805542082701748532903357310121684572009551120263242413254096356947127172458489353999745719823968023295881980770988482773259459926440902948151281110791679772453427047952531336835242965051117144261479391372244908513993392073918590987591100379673622573710823953104070038821598458443470803632733479392389108532047438315543657914376793456953826667288899469328553394670807142286111374806795722176480213660678884393080828411656523582619253303943480122674707185767584542621433226387228313710513938641601749641800116944965036222515810149855032206971062878194400302301847007243616388660786397213556658779713496026414681253760672504527673266930457268192010664503581486740976292039147649642621408960667175300197246681804257186731520152791083418392161091605984688014404253472506163831205146427959781211812382255568292629277052615056422526451338436910922039307703813452403762507455441186564731140707092782674489273323200725524051070520927664922525303623014182828457886110059353310101872818858302146930340274752800197917290113018924400594399051675919213223847683760131252717950028507985311841278162513114540650195713475229876333505390540690945433872476725470738008636978577484479384800683829149013500368171037382960689220955960727967170383126805235337002224182491660867216658520559479626556842240902785587694879221626818107233129409496014004995563571153667767480317380254144311969701810456879854949082141882370050466178240213274604428358465258336233460012648347004597850547308649110834240749045238134860351808737156267999469160818344724140433426993151694419444156319586094028985274524948434527245745981484513803714257761921015177500118848062779041204936409111189272545075899594557536917842400771555020022512518535218094316786930836671272668595696796594001684994878210682496244207276126220642736129035021723119595458139452617268342293292965761757141406859423911429221939768050389141991756692735439734849514011263919490159020606111741909888968572857488795357388503212163032623845361164244959781659113112761928958479637690084721444300592710958810902420644973330329302136244520162607989459594797050257551781159040150243920296413785351019562729633920804015163318733244627425716303997428300559989502082307229500445112140065200146459036915508506828730762290977096137709765258335063949932778021533191898995246456218149054593813581969794765867288345297739100191309443336300035202904389644509019972505774383916219723737643689977662350725934131944030765950128357729700160593424582673756855700094770419999404953012340020088085404176451584987722157873953158250775560420076668506997409296514054123350218091809007277344484847223909631371591228731298395654128499895623333420264208563933431421699846389051018749458291307612473765528878103956946185113069272121212466140247976755780982347956958171417851125182637198361759497721664788711841708123104248181104057399897295634492238297095179058613908105056724300101968257776625889459826069947528250756295434996567986864966726984030698584995450356115261458317185928843581699301670262958885583059229583938172931129872120304936175389504751659294674373445472374671373622910540254067886543641397909291636640689171628130120321222622137891347892977847012926625774621215691714999383322738726561420108096440867404432859366193568920853503067875354293533102627699814701552474676518053698284808763936127652875541791623401340443004240860517628271053183837883484412421145163604045463162280356276942096066976229952507084059379746853156756143376922257360050411436898683438346033339290542816935139742746327922292085426127571477245819136659681740121108794766235053882533846681053961395083314360936901403265121590229939135704365157619180591207506033034827028268582463525023687981218612925084503538146811605647858524200956837937751949649817894048734925327709924295450588815151628869594651550684589944333483166956218112777369873806915500359949336491376513196041429592706393118088250282628473840228300200640077312841110545223831982014764391840452206134055301634226916617778848687026797133325132935709239569750116728362221472950761111486411327856976415940273926916864245761872799025828014527741894325831369903535290103394421404821005516737139536869811597494665285764749217145255841730900534355575254518881205023058431192955288665850864255889151764431030923314367625734870727666638971909795740249239360961856874446102705602254797075655640453114130981607814629643122426080828708914456891268934044603279813817938385706087469203682060704214509462632864736131156110910298654815732400053264470049830007298947881253654507462375908020456390716043386215168003735434243562770425122427878315057164519715615296649495996063837899387185117065261396855999254754529212291809343988903689051738416150282387314710182935630471288584759732684807278539373924630869940561733856998292431929980581571013594170851039186073870842475068046120279946769940650221330214251021506793655206566026328671673206820458008753691577506088956603558692049562797697865067236899782682093054479388357850138326795781215892874855029904900023579655674940476015373925486578773698568017277365298432077152770818738469413384679284022675882105607243960880417260442601931397734333184140896643449782066416009091913181932571848766529832151278310823117639301360726073418719082128541113905831025021981372154087131642987232294629737259839791303542623495471664978206495565197888704387252687181219270737188918556483905867046083457500389645477289977834388932810276792631502620853831186142429361595495607119983235452279506653072287633773106604015471343656447233039940391259651784381822339969887875567769281778189539468724103613762764917626668295476914170677518372815743088119566354374967404146370678217456204848681446992510307232042312768305689080953818100996053628653075434861280580790601092719014204743444934311341363110014987758441402795554961505720954972402481202621333234487961688546632553681115303264975107249078415500897328747725507408025756510901973091515235357314017925953926596052784808695904505625096759696770602904733363169087755327442773012115629182383013373283840587725894312760138309608864148735660425765295262756702570498776948790243677022205664988652928962210788245465464275184355994288806953292453162436828244487105801505787937857504335497477070476019427024801012379906192583322319372356958648030489831960266987817139075170673923372461180095009300954454439614596528463744571492769255602298174113203633079304983117100205989231666294899608982548143350805164696132224603965880488083150909128290476942225749594380740254211181714687803317991516311825584090163488144348199524845538290905391440446775840659227742441606822338341635560431462770717305686699780513156241348001425612480601652124404466507697964397298560650347631115786333368597568999502960558778270651699772162081250306544351004076362274275698894605348395833747850564679186741222976810615039557214773295454949117287865374010980179645996191398893376748974013369729134446850890166283372504194692785446740893263964832670100850412000822590681209554291656363267643794704567598356482969444090974611333107972062702327818813334876141841033049778661408897388784698927365961740808429346845202383067091941297613988299763573753184852819232329180108474913186092294440291815023822690534006826485820148911052921306518099859750751839182146509009666754941293660519230406578814930198625933287314009417413465726343782605842740720095771524914856775376253806709188257127061574727056455281253424232940632246826438118361267428537340981518001113916569002714782652547796728355754594764784464759203006402687821537693836011400581750423350221714941062746309659979906421379198772636286790746069439950714586036902585075740298728497960425118664022312085906079920491948247942880893316529243301181702176808554528144200327404930618941519547803633496797479484026641077834283925412006198029145605574879962928136884458673364680856215419982360772378300210730817264852897940918084161160511043249195785529307102102939608533042045696487166137864166626315916875714325763709367541479904505728462319887931108065444656850873189859671802565243910489755683346505198727816636210324107476788781338956828856658455401000901112452190946986164442662930681485995855036065185375621951625616548636280043335488280779425083125720713648410736565009008051814536024204929625585479661190792314073015411090300746318388581006084233790448846096930074605722518055570377932511126710410967700391506072205758462676170566899773807860334834613189497325938433696453910403280739963975152061355395093493510316385222253851309944235110795539742152202552823235906154226435439044348837219085878951441826108371611802741401902840498129207046634555687777682037436784528995035569406349391557692233337961660344030327904609192864782515129063174651891286921848567963781065304672779663731368472174590353445769376083846900470847599573288830961783343446636498984162284206955738005430886891042768433206032464033816047383380759279987124825130747293065395720446081928992699606175846403999889366941860161779829356662533669997677166530088560810348477507205712317060993071573074706519130432966181555581753578427896874857396486348796245254540474256777904705481064217748201832967251544771598885393121176677418264686122593148547213601404248634064321124162730054902739993432744805201120480561049874588725789182274931109489623152629486311038518652281317762733319778507640704293807518489344941262943957736639843162209022099200270652908407878258835434200640278798925038180277415185763206626756397416195291124142104404858932612233093990049656419174624183870925118676092786665157019281746911084713622936084138970596236750798874081813120774727876576041717140878711112402437685483893125568714907438222815643376925753694146756835630400100139010671930179848369175029391966892081327890695255559149041275234964210359233903658577940683255866715505116832210818374622764746692300193717372121526493133025624669659301826734436997496987560659689508239048999759735773365790241436829976010847904540438450790400674804468469941718144083468593180840271241901998853662248687530763765156063155842707403313330707604398549371322377045372707918240117886710997344997309020502205796898823211955755521786117443631596498581838231739791960017630087066928241501724923407106417602588786053103447220045079680926419252393869400799054477600103314684415870802239007645109047620552730085336659208281517010030453908020462423565938392622553356341568235298102178369562445015367625977686777961751127810295040800925300728583843764886014835523591687957298325717966546374145136598550184967982412900686655571193114615541722576069391786452436089980232609487410949604058130412141633730239378753293241226007634603680526330523514868243157279644579683409087912367405284953664131293054924758102358912615008698913779963455127508213154127632101274393457227712914895224898117736332509310599417581122806847206468727002762663442653692243484050316281527525105528134612976191193325532347038656141653417904753009166864238133815713331082601578249372268264039275634701073207501773399162353953719796626924191515042308388916943648299411775189765667737590340810206341120485331069438963851067168530599255142264119117988420552862580282930739922858805774026204474270942852329696123269026666349402014308139245500753064372196323010422691593761888925271598209120396729074455599316227048067733512517656839632854670381303128186699846553674229798918447595774711639410210362906400215253493607281025117181254283742970753546999135579858704383984133424363482286757068600509236248520997290928311296474494352777804691731247094341652659488148043865014314610564927307150334191349850413814901257204105066721256916813038217154634479483933386398208786648919521941643410922586638217184755602396287952341010210881876432893916873915678831678284743383716456917269102802290747643334682427748991890788354047807207781712398596051655634852581191210252630551073009516610384184546915253927763587410401360502613780112572313580641359185015538428932730841552241353920945708319312722291595175784298893638517462729085765789225395582500897170440286243531097007718322361271992100240881074799484145166188419135855711552674450591846319003567021520994540972412333785727559525012339892713711535173361692734745611220702258125820440846323317656201432132911068616862160948108014741178663813755552956826365888938819782540235997103765463430317306278868498554093111575630470229647566696256597763265996556802778792970634025941267807543279880374013256295805322684959266722375712213117649120890793761452877545305113385279098906163684900392741005954898798455998818963747152593205954883631552390540916375559996452419253813319930553338039168262145868106783277544434373793414449144472941234033187250659903224624736966139705720860768107821371574882952694239013306087317340422081378987821520297921519021376762705483747388173502309519719281238505005732429731740385085590790405788422280760331981706433098603344881810476248195142247906393807909270193723661951558013676931841502630150162791196361380495896445361189139793137883794070778873837852553375400482534380221718902159235269397379023968991177643139668171507825236205088910398635763454546440187323743872690138754102518194398965561259963262081442659129354284108187217039867718881171057240819090707452297421694586531123108322742987911242039458204506650581551130785599711564360680676277109662716642682326310468649332071619627611095469911035991175496225353029170796632292376745754496124717816587528747253315149407694217471291744159811586403152029940904419017634910625724582008943491760486560502912503022923293024181934004069153380898633468552072604074594489439727116865258656825530235768197362496224019976472709747644921910444213764538337777858247863450394468697191560070217804998313861866031242102305355349486221186692586609593388230604532752415374264114188727421847150399642021280574163257962346644995782437375047120251604427613865457541722541464135093923817570586857716401143350109825820427398857170574379462809529433009719672662314752612111983406987683294422495602743928373449304263209811994730833481612599076536043906913416680623182925222876200077559507246815425577833950606619979854088217042873817094120299952867753868239796283004649310280284276717119255891253739539291265786742586999777919277185509622044695814554751092089798676049431816192396441024676593784779965104203088322260145432899657469270522245746570586402337257602660209000012834397995444061713421329170746317014729504166783470885384174741527447267190646280777259987188651079239379406801813203034410224939803808376234149766959174875551263452641422606014907188872031887585280721569801279655093384982834989704071575895743872540064288105967824998886238819268332925784423148219037416469470337023680019555278914004916915603435296052194726601948437392008386796287426444871470383093779314840078500199469976232481660116689925689387209786352673721312269965201378029931213356900969890151753802473600795141265855226511873732730607703638693814482230148997395619932969115934263066281469404082435091261977090602145074669068188738974734850429272962006311504591449292529210147881634491106112169051931297588858025432112552683269977171870587944338897342576941208472954347664828591926839997905192108131802417796370795295262306810710959060523225462878212312608825793462616833995734275290506590897228531044293560220876688837139435187956428759860022677043253838436566703022910343570657108890031301799643932184716526707333088992422813882604559023940911229275893956983353475724380415170615449952696936899271710932904690424588755257801548166090887742962976830077207803695119311552463392200219692157118394204276913286919168920240083801107634405862717282511415525836209001766879137823431792713167946617404411290323679855812452502695758286620696416998637735149142117293081344958197236806030072305489251728238051197197093599188028922384943703131433497146477343475294952334227232432958697832731191470091434379655834506993529023721846176087322024552646302365878994216276562156271501056636080114567829348965083519517021757216170445312844263497934204621333488429477804769917572808085129284028038670754088044919019734036603450867163984180514465533725173768657660029901715379348615820324347144140028485147358872236060447380117831012790081452365902106568539472680636706509882630646581067321870434073099681325538995840352808629289971593776680158205014600468773360020048507343503122910401534611815876566756264457066664534194835688973717701908168703667642161055270636868034307105755079114453630176508582189618450068038622243353838229975498158306632656747199478794597094539718291966271151568722075160199433136509595453154833117789602420435784805305846309661774471387963806636272092678826798570569715377323851494249966474706649908462193287613331642396675008383084158556493028787857543534842638793565293581719130136503610215408371865894894311154102526219175341647091277836322077347514528793943247729073360876610668338042060695627887434557565589182273945966999299734138329866198106009796713536217722003253620911674401632823485830915233603954535281338478392672302725091549286065007134025422327393475122080604847690577455111511853430502905394367502295341730648814045977435520728388233975737590806522107625189768184053515569728417939009827312889995074818780377707303114820824017071001522867167294905957640135435531077054928325744592789830120397201758426663604096199744586996591763902413723209077534217210390120766116940747481388996115704831309266048527614496997293093945248098754279518681469952703072176018064644237973216451441492870227969806123785098997235998530053657594184203883749325590188287219821755551202568737652825653972689538346386681377830731281163412101062195012643650418167589052066231050370785880274468874970716446429235715003652551282082547120071847959525835852280725958601856268508118803923567563815078738596873858639938684951209537433361577999009816262132635363367400473347568369785439261901258466518652957684484241490167996131295963385734771794209623618944530909659139788293480330334656643958945628211020396163382434638552480329747641759182652977142829349897000108947414023115642739927303726935812188124910574934995343515574204749419868493071438267253313838050297595897158317347732095386065049947359227864240604725991998700312446373775473097132428512406317451536556851604261856989601085393606552041529457660719654375147440291481615066169583689096048372565903956950701202654693074700303919255125652684776075391562626820941066441928709377446379284194997159085222301886501963647608760785052782954001584510991358630283093807412184298407414968934943603742152134817812262814905297658544005175943439672251734148772776224726226288842042793547483584559259373196789331164117365836544325556331557685355090901934520859986034475509308879204426200097332151462690190913842045579622542282513931978648860097272750417630916527654318826421629858973341097293565265097293634308779537277215928047191986231527140316333758233854572472307362357990648031319855743411818215869046774841199515576904567776842802066669319220124136084386331778627658631234766522573343299283609202799146892795921983997203797222639514149129150641707594159116713618837139768272438791467521969084135045212384828202128863031909650068074554994797140056284765469974235595011927533585739847892379625625923425346354499127282067838796706857061785999905942621789922786354594043100965021041067940524227728208333387060500061474554478923368706199641962056362966868099849073150214839313398309387994470468625165729291712618164820891040975903325004765167963417546072830154956730036903013047354983443267667603907069354185509135478018527310582761400647117547698840565508961372056363370728229179352283548349518084046541976316153391668427102367501998907293329239223401424900690680332544650996233955614155673744840247316926744533838586141269901204367158201391275252815779010818645503742914566162998656058623022483589749793175301988355987109224875478496496538458187523582194224352450424293612365126574396880947353405072429229564175590395452365669878408555798316430515461700373654271401695831200086047090658723758859826972793916347840275336955708057344554706162606253558009089694361442042432163422726954983776495336361316478046958609662192324892277357320308941856204352698722350849145662647829273648051788826103578631531355431914051029142943358027217600839953020209657762442591665137732022269329099519940457534426423649574655191933877986869303208824874731240650773199264326384904550336267254222114344292645074637612562432929909829501236692185136073934856059861402363017960511050265325270197915774722355291133227392945666651991631589193111874808783711392646131335602540098862339629085351381029971589785259641511819315232800658155829441837643843645250765703333567883937071998809386169382350193065279459101818460746917423750987904138230396051249633032431631149835819788849811727653894959875983638723856817274556012078665517964843985821320935521844743320258791383674604212985507353371351346140588704011364798058191378900685445302512757623633860414419818856239238615693045764730499195535819672640811910642278149273711009046980805909981163813143891402907813326797127564002352915599081404743031702008400091711019829115041212889756485962102022772372618585387826823788762008021917094651267145462878087385856341313157651608167910412028739726269221996315550647116672020301824514813412843489592351689991786845977392473330697590116404655508344928234875095825957078980868031304061549363877050319108288592663144599529304960599068708417135069578838845649195003214593133939419891634894649449622364119320802349174740436450914795852607114514451675240560755443634299447432498892499803128472829584125338502626110842491332666418320913197386328084983368495490578347740476337913313463566028412021321950768007894595075501713805014197142570435845480101710898643840935588367868048941698037358554376718627254527992833732794047761359819824595945225297874296496562922716933402955605691896096103393623747589592536726426750052964598732774593269853178969301721520451551795502559571485915091406938698547551724309897147966322562122646879931465949301882293966175948450574245549604890411287524533281227264395707461038793441677207093150073364672750720311271971519873758443788627755422084763390919061682320792485430378880287891540351234118522600153925762354873169183406534574969990630721208230057482541729600103883085679467172369694314407960542133927367209434049534432585694697213602648253264054500954673198656128872548379477892716880978227699679153605000095351741052456140437167476315714557980804652777547035477275802013507183823224605907324497405088994490767543793615124029521194448067372051124161167261625418108186001456807275670218510310603911572720774005631141868006794204657273184170078275873552846997965066036172055180301319980786944593578068077293483086017588123368653551304449692277328570500952185045243038842919431237388859989018398822128874493848834515394887016675329661978917615932664167820143301379561374066830048662950087168443184366203406161688618154401066226678460129133615420368460781484820107081861734444298689887978344805715647042088322013547561413635952075388531094446398026777011351254664971018748866403354767257231580851944472453769187402209300120553279707783740950847978873903573000753793325385707484262564590974537689436924755281145044681932396834077026953073496179941443722167838471320992418471494360583098494909690762636119858390507928004735933002898745277209512281156372446856673459331073361672578792943278203393785925543719465867268543568978446734879621609006468034758822649311002680680357998569858245377849808085894113793373382254986896193954315161232182783138273858270774597963820644399465562164528470524845433379099525562226094213552771090188844646841623550809375866314148210332661539532153495776477457337463304350381208755000562404853242128595671092801183251877969089471472829045340404505857963197185996019212166691538038041218333584777551827083213871947039351583694459416356491637447264510047861512193992006106086874351763237179880954197688601341803022510485769521783784298452809773502846896440493208607233937669762433614245156765880220661538455846982981895299473955652393387622950832641263644264607262236667650119824503675458916351447476177505696040257825945513358178992167622213718159300236586327678501129689210315459246153270260336601572649957948373058015339529593214751369333726157345195726586808605641962759557614535483045372120321671690269567467425730864364734638689837167917788196959185960055096359275031995661213623336431821595921925200725895838051579425825764065812001808405780786617537788722454009595582498378201468073389653015551494747517262714877968224062091494885819203570470931414864724743420126298035257325050259430653251391638760667255594269120288196714822093055507070448655258535505500079813039064031160866469527667759272155282725611543760751451465133210407072928819213305897632874870243978727964835140480410394292124119520555419021591906756463285811176116561728983918531132776536228163436017821710455034628357500922813914778512405445365075132482878828628458548750783067123800328024020206543740308771484765496412777553277604681517277730585289068460112724950386448629550835961829825826684828921940791757267162806891676999129816918889296159861878404173920914601143275692919123465834162627237284353829406886056076869945010093012335530530429917254495163384370814988540805250496054880444581600678743737777742645658301587043191555379931026820498796999579791701511600163232833127764954132579605121434268902336763782803218333333091697699921648609050652818151526651958908334566390130285252004431366239077503044748290759793182727818749388863984357857427096709686589004869232749831140552114514793876008928348260090900918874920448829829817068473210754406742545354748359136683392027541651715286970098254269776316541211861617755055399101747274997015318111465437384279712331844021856180615639741778053721316831848808808219508455978024270017508182705658925437958885113283301464417796971336974207190534570968310649594406540133897443945700216582704850379531123431741939341722503933677875406456058444417188247165018033871800403431238387029169447272564423082120536784654749641535598826141022086531612219506841645529974496388710238406598265958607966926876019986120519824335311669738262108191553261435468442884105381355150384574581829338727214103518411863183288170160433831413592863487287192828371195483128011438931383892819073210698441588655661269936787120960966053064466176896643506659559743981293586677237132003453884838206434153274531305007518983973803050890933275577999920445383126002614005311448692762525241994059210250787693376336575466947078648364730545407624946404191920302206630468085129483140233020679679516369493874286248267843038433498142662037363447366779212895044255088466235143087931624076177151380326035628408394866345148790438602233819388933401370996101908208794100808605634709941762238467789448914458621164119396285576936233374810979985912784917694359261452486186926223219984549050234227003463764530032907150837967663579665550274689772370908602880194024260999448448779609280072169759047437530573031046447593323307579471148728879511688130645095007446556891493932373302915386922667004743902214586407754271566433188593942005218182701204759726468402815656921869898163488075433696176236178569392055071556941592167377289165187560585228226295673049807612109728037276122271895337594593414209118597041501966672856002125975285453399986415747767313805554293779212046546536286631955967043132613472926657080666455555650025958943647410047592380775678153801154289669328817296813128750480013899451348731851331145820522339635191722861082904472463161327113124534038700646328874917240947971091003372763648390611990742275008129205042965856392897521723644937530211087986811185631735602203084331293794461249353784282430916448586632288299402461299645010029494796236166929185311061969467563852922443464276700981252400611916285804678438180768611172785678199695761152211223786525231585153300576819062085490432008381164124632459723756416811071429563345055076598117144952882255539244770906280045383540173370397138818231977202416684994570297840096997440449086917298435290524802467438239022421829055290655708992904727856210635811733872686350314105737817685554374260584486279947007832435380290562417046699839297376523692797348620226073209303771828706247047438792231910049824568464803453350400952948229620942075684160975901394424986308933372464421222261109387030341919222825093848007454391223682975805052656971479591587462883036883724013469644920291364958067678920162862951393876611484515293422844913614974897721781460153325668026868931563861722937773875575760806628608694964884090205838463148164386019972907327264171903687824645312387673655156545151407554552494109494253187636826780499130674965172937300090211486346783173817858152933151350621565285855521007355033955657667964861453451918592540160213567861151390024264732261872227717210009371673798347211641488732635769791291344918489146779177856185351139568096699515647766957602542367465905570020612677509346504850285528476679746000366360080817957663920399751120997446362243235567698355579911998218990183560505889601742085256869323395726390723088455513782477553740111764475231060263187680860023326739392195776112863338612506625911357830643426834027211873628913345624829092998698205979823481126358062326292258688024628538046424012665955732080938977898137883128494844210313258714998809713522175150982583898773792693042344090414196295176207729342551210380477522596297969976553746777431440596622031116406720071826677855482528837272900560666133305591695105834659646307106930417699125502837677454488985081490325697752392237680973856677120739354168610114826228036321266696155832272718944974140653346588471630002933525874920908334443031939723626214927836366331318536218850696359469914169426456106146771451093646513219496794051202540131395980629878468507537299977930053678899592854781668241617373126068156566532165163854184238103023204381170910202015288226104064365201952812469026945268977363247603931288993466616500816593840150805262808836277638955297050198858580256238801310541951111516776530742147902740765712263984464697619175769368600764803729387533246888096053732381682782899838032608056450189038441700213982847956551203801031961182268621429089226685823117164601212763629199369702248235965914115955844117043543802606452612339264738395169882623117342344734660159279835724430360885498692720588009535600117582283631850334263308610498180172986741908718209132253012093314127590348496292894242925651430026291981530600647993579869188693955025509907947760523421046147508650542124973155123961420618951628949814950495902753021157343098117313984765339693850099251454682342943581845546019338973838407770954373401399219687287337958207560729577501959284967413300343306372340148636528012313243389383250875716342590902849108544132759735717384998051736964168062390238210123798417564218734712514474651169101283985029403086364344505791489548300804453020555056494138633860708120836713751302457959268215916681537132977583041311269207298032324762449167843555969041638625763275445364600720728343853130689751797646348256795485719302801374503726797711440107794978085056645025352602754468238236041374129456083618232513263957977624534300091238364261836823927726596391447629988322200936091935937111875491742991900772412846402220286308007921905875194915979536560273537789099899398962765581752516492432938714755596902274908170759599252862344078194696719518468246328937427933027500854865699956269078140543271622519927144255802859251487157888329347799440648096456809359818704567042417954023043425929698060450725134417627088682503270214907397057353632030880430402010537693438779009039073132413023168526695610609828666447092293639531730563297882312040493818598145078069150169336707919233618497650868493698634473645104229892924214337996576403895958236514905424651343235495234832440606102610624485533558156483183249863670979110376033255235930172966494351830569868866606096764027515338453518146508821174673244846718620465050754956041483500662236733016068341735009684769214468128893307553489406493880088291405133837906756575251075996047106326410358215054348641464598796681344015001233611037512782198554396807840627747369978229452164087041430150699950554538251876239131041293971275791990368899917280749931559464703074463444100083060879325941696070303281433050010108770205036270406136302068659615504097942335298105433563971225938230062753187323185173457966407565924354656937659365530278867401453603295388949009475180330531252054833109421847873875360456813729225735811088100623336723833717901428955425364405287798269344357593129093077075559412102696093129633549957532921748807143983003662760001537641040299670333451421888353425433309212327320434287911450712940318376844315348222535999640625157602672056145141519856956471661492237295396906498672714478842504657621030227638142104224027531677206297129248653432210065876286201236898709548719907882450865075038844029081402456000234605861905014378608109129954871380979093732203085815313621219703761699249857862783716508181129773497684059777947255159885555461306875435426995750914237020350880263736870755758845772130550425589899083046892824368126504174784201375596594937570033543507874848824908101934305795950885416806419558792022977957008756536683674909118450657421042085865460767101340801673770694710445131063677738375669016741914249680837702659889653578923060278592004695831891536220958037826290731800129619550440124881916797092269334091188985893741443904372992874727583204938468460402073927727169181051759462720232597681463942065096527972722863276441674164762212915223900474168152705235647204107399905725510135289900435359189063854166964652549432169681785114638551198758184800488940336123957553482317283223525872509818251913367642062742969304625107638395242969016174622850848529691804254342159062041369880240687751776591843841007226623256478744437870279630733209714103743822297127389969525513231511473473441281604623100056091764160527629500155297901797181624460952199115045347484550339462005023686962691400202707501291835216464544462696628585537521825469158309825606387301235049247287415029110328938982572111217162772795273922795118222291762087966875037599044916087668728662708961850544275950224407331857081197126676031279309501832902526239904636703177925426608630393003859853985175751742711449403986244591170684710630595923007142491195803347992446157748368143600521351355064812015337971896603686274217988572189679212709649103605152248155864066606079206942055951296898359758517729417080049781217433162394625791042248513178395446076969686876895603957602476929111741497121515597351741546324385483706223343741979872283679335467645180359419909715600262057269164165133239792878794513259159457096637175070709010246605089907197921909673349920545029920451119535544656611346473414320844313636394946528861933167578421411341847294476148817028110039765018853146321056115553071730020933565904383055313092341472007188422200140174660820535345313978210389817995514458788846773480453314705478404447611895391863360022828182078012176562990345083967456147279006378674044878188808134317861820793855175537758279372534382703285388095002658302438550043928807840161134784589434492348807837241007516635698488623798189318009105609227276170700307206182836421093691415314310650624022276827378872463642784294995525963890935821385244018516299494544882190223859400480593654582763740904034577381410511028661995237083574508193259602259053859584203428369249371100017779251254260277957503433568099475808664736533938866388660295634834325297272940669385219084388796045106756491959641853187640845537811790366660221023344388370918077694713294410307282108951411504062302005228501033112176117718608839397698658069511779573570451569966964986485969563706567562427068704950129981887011356460878824068560393899371482114163112972186548793397791267896239464092334036801965136237264879994956320675383776769955169818586711526867076545348291617040554705700220104847476546400015406562061143753243900505186574829822627182222870487786552271082976310184193884746686503339521622517901052475805160927406048714044853272605610825883797096778741333763646797245803428694577936262509298020221705996390544828733227616830826683011539140475022171667204832814230501456681246969525053416257251769709184946226879285627153583623917378105304881529963159677191711110728756245497229558332443058064851982538132810887108595513044372263014864307392671717684183959974219976895606834322882600353737889130834093480095776819483129617498653977007550503592473470696884715230063835647076731857309322311885980730218838141976902911288711085604200758622473251754919771940951298077391177529067152058631843332280878550714031938589943331971626658505289543653792487594462719428988622486823503422796364804496035805576064807252871474514129100554923509574166997779295801811064440566892828409472161749052369346177900233531077597177097995922133704193393780201256468393425458814430716281604967184966266239616680646087471131189136869018160702892903455195367369653031566947813610028644693620261020759856345325880749208733922300224556759665255006241405171377618267157185255665493978905662326894434966797914759891625440380088921528111532816695329309676598282574415387708034215851630467689962833433609045086925965202480083066322695537772110775691810791255758646536360364763188622360063382261146873903319261560384256309850457202007673721556352471969882202792312035880563323066418778097059842412922517346760167308092147538013756237497947235458463192066131289603003440919609788478596807280062914769365560467931305810391282688559787147275075094565187998417435780734529519737436535714500601314327332837387913568846111766586285077846886824394211831211081217680914127655925809401140029349828594481980663953259522342621025462551455037860856933949175798687120333353963283847567000862573098048599599217357178910476119384346755480226549939750159195106551680161688843672938230008870998850187167158989912630523194956480338193241013428091284361489125374948737270690170408708180267103624632658052396682476105766472483297043488920475502188346095130996524055910246665040800750964922582267336485890979595104289494256462609748973607652723838179633318779024768189390665688563286392145783257328695444286023703102355287000176967981895858588219415752146267148313432050225069841495498720000920565532172111664713684383729999839532772782285321818424955060272427195218635066815185780837711815829817243708884491190612440948362048882127710157094699911566788834671592674201031882593540279163809654415690084743289759753529384830810015000806211061543488172306731010791211166929789762120480392724487573352764373741306766437077015029899217385091089906382666818453319787643040507441406315197930659785162670306663492280851620787688149659268552945130697557063923276212545349524995740315985973277745429704736505792853595190012819979198946119638773270009201122399577982364620862091204095573197889315401031832116245639558995356282733266128842046998345892167741653236994711396130347912186114849989194902468111266472670961093642235989781944907954320589475844183285200894980652139358633661602026699009147790852573738032335122004967044927834438686389854100689447903532285199521192091674284771293074153595377314158923548402475054435838915592519112177710487916517236067144754611194922803645698118051993453139171971539999689408090300723792610054446925954040747171211326330572686591110759627796427063239013327750883891492902274121664276063860810415765930913900487895341282104890328391525755629035926336076209810001541404827802911007745079780320935118932811562856061998188695312586815029089330774710969695269605699197614383384234864109808206239696870448338799631767068853283497306673855229863316963965768200634016721474415721740147622787242067833922440053475424893226436075245653996007591045057655067363892644289308427719537835099732913154566779905308699930975134593139462530702906758719142381808315474268106941388034838016685765518689724604235084324740376744544118902218820205076619570219253839653555729556221057543607411270377232500189778402415093272698254166757207861300719652999061118984096512443110387725690285422269438034797826906986031844060233305155193796184738830844825921051616780521178994757206042269518905874777934995026095820880727663144085701146098607252460608803135699622670568787715241498257475611307972688580808319357691590071338655565964135378633234805257352301637101316016520144803892586184098832424769889846513972509638958173691213008208323506160014036058306218554593506596247712159958418094454497637647626774957616648382517319291755156259248591042358456492467997407151271962705929318798178966258404851384241620236644454345520685779862321741457843149539861842607199587428596584267856498668713260073011954824957444586200562497892147061952462223511767005296959902801992444484551823661832552208300166788070207544897955631422491292608993787171346585389567622301929433622294840799013285553382347517004053744247535057679029304930379551641726367181893314423328070612746620806540422210850763381516402356646932129760370718963597924739408669542152084956600228677610307163267174285230529613604535953581849807958088451229582746494631281688109650685596178531012820730848309998112890560380639284858226866765281515626419823096351838718426983363963609531022566677447539021685495975862021330621976782573086033607293850011186466516875946623210506267868805887713345631130362874857505068349839540001227713117567141226631763765968145846107244772722432864150883979982985565581513140494116551597421805955401033701236294920608353696716043885822545016848167684842555479611965474057194143714889171028946005935581466317183217081264621192339697708049792061877444869729624570079571296811438968033537315125054908934981866184281204799914731059150297947899751696919090818324224803243393157390059947266748690143681126599447394343877512076419602459542010355246267374632478485900361047262922361379535753567524522228211300913154366507810758697218200968838854238150710301411640658401751032167085001970601357002559661340580263725965456694786329925804731318827348154894057697703250676815668985799962495624726415427780302708293589076049936410840190453378946832743466024508867468358355126300334786883594025536177772139370249629373427592697595185003213511603082390643913741139955216108585722044311526842256243795548820853057960857220282938649826727884228010713182317561462549505678180794256972369481368729858738825408987041423418689231511178374520394997399236673863185980387820484996842546730080358590196707596919958168458615750892451725214036275361561353841231122912645610063937740611556398292676562382548366283378551472945482359642159867480925787940271926449617498399966527663547257328337394845686458553840371535627230214937462608064964947638710399490215340351612593684325716868308630363999048909436908905779451474206764083747908725103256193856766334488667067287980363152381449161129331077919888551992364438611343531827808795515353264717473348582895060579953913117924746739782682455497107772565936272656872682489715301267234222407296950555834238866868935125189631044937581329349611775760107151151353024239015983588164587969664073480748695233960022745207869473293648004297932178886802906770775026543573966520163932006095265995208780235467431907188865255149951359675385677990141782043835756270520948040638731293822517216309675521946307978679954047029020390325250052370089417878566153553790068008687824397149690172030072277554073483779557880772510486994945185747838672655585592870059756573826190606576677767055730033272138892694912826179041025318922570720262271240365509594803643745838475607081389956424029633432646045862183172649588789394403612872003154833207927304117793638240137402657217452850577083942977093374067301272681826792196853185131119093998346561188223083833020703492079654525798743914362278405053422641420229673162605409328904093462923957994160707964223720581997401610331601890645985481990748270827244663327659293015321182359784020135151605190961699321105949879895713357687374956833829670996413804375471408924856015172043344991254667494953401140460691904237663571435129308668219624204186267470097607856155412540660695902412755983852924520017947501503117021532382669178794690450924677391028824583293995837710252448605310497197686166744415795730361398941551668988221862849239867197446801554183910057383877495708318399372991788990148329669882852835729319490821484439118726478117098041733892163305702105707814318770153259924971497139107855080182436634243965540758414217488019165916079630624707440488541107744578175640456622801375009778304234550031938375592122111019150923624146896627436330138390755283174626490206405047769116853204900324667389671666753037201048462545654633717290155750866492219816815926411001596932089452375426207834732843064168091459450836321877312979768169093486071390323649171225676770783691734649111293758833443952313088582693515703628086422398256970688926441240789824820282339902256182838067075340053177986381725945303451782209819648827499571257259429680945913582230946683756007241963974079301853105425975419196431405304318448532234415718240889787500049959923856437571559118936789006231090034231495547402939405868799968921848163387777633765599868864298087362822980023871867145111070027968477926218557237584775319274463388247688893589077389303836471569668273738934361041027635472244711507075299563651855545320933565025550507896151725042920936532342932602049517951352100534398780932250041597788700381483132442216275773039642595581918730263897187679715053289618792863259237859074963940839717995631514143322315704619992328900156234679555852970692832077255795849075402597176805479111714810771966962703575742489395665811999345302165436966903804017383670845101377202961615709613186022571224156188471004404330158075465768415459958773706301115272894050695393601974711679661304993372627031603595593743700773527913624420219229602316658306272682557404456282084669233289920605922212382130053067334220640030432726623950341573066785431982968915976219051044975203829672603735101475866544605222953551828233886090760037488266802604854385614493006880573396932116453064932606656867568715551778033059235449755894135978294485741245047346404611368767442201362864477128127449606796398750628546051279148679041559554465038375073357034358405435986379627874502645219780256198521384352449764756794984070564502997687004603375129875879456206924897196407304581606532241369052478422223530662045967611955118755780749320531645760425900609108924670737574706672339445113274106591966183417509066421775568258567726728978241586960022278800381426048305347798706768906460911647308244854728114693659662012697941900872240412596307500789379352911656521748605394996028687246927211790070373850081635718861711866543113522929446504171388270403672838804488716986990874269023606461568577761103980352807428325540418792762404671666681823287464310981838436078613178022817916645296420288992352069651106206809955739582063615582009216291248748962744153542861096517437445987630814594308297647050467109224736768295781701648011288398095204581756194810706644741119223210827947854452492937003591124281644489359781154506811939200438446459363814044368118782085370339213458447103553299414637611024485523032582554851852521839124556282697250709775064174203618656097125489049831471068324304535311080199045475765344117690347269238420827798165697798625282544687038441379071451953534345040398650354048399960352608919020408443769396033192985189810875915525273335060709185058080588115891302425009432340543448125742179026824347063681201059611384624165425389326799815825604148355618250742407062162863019810976741030609145175629755043176814168745137305923725540318705932974834614283035207433732178028111362833004145350908432476975319339412227621089281809329331016934996682875276250535979354197237186801222914110239294390297030225591008326146623614606424959389701497447801125291673368169505261377168182139978000224959099177566510078788645637513029707622998189186590655850657633178506356838136231029388179253847702681085721316433630085390038955625087906470771585509047097125593661524961746314184903715381782562201817723684314014457844620023595568147200666878987932555923055509907961849223962735145802314115426358530891267033483862097797992575497260900482320604319004887424142187912873626366603338529645626452762500511143681073350487752209795251445591060641908632065390480326214086706284748236192991509605180451291939046327570058921495885329172959543537969225489416284345650009640163120425204305238373000670406404003251429042371089233017370736463701664935431769701546653189386547490740989611697670055344796396147574202393850057246344285435999069209508014567332251109197792644915920844725882424410045855456647744879761987232181778910484711330439250640472651417113072966235872305745050967569581591850298337266501077191258840302500558436227248684408308255727790644645543765760976844849343806442196786247509842639098068680115188865965894032976772848356510626082521546141724214683454492429944381884285564471077268363877987314616594861655291133728884013257297846698806071010990698075555626199495883770209326194596236145934293457719115276612421103753973204678741338362919418083146385729413839818349821196065906617876136675330984197448876974579162204205688574091187106102656929870583146444486984914542533083129161088481960131712392758025223612039172764484365833167439664162121449980433158936141610907895782639432657212056198226715059316932699834675446342713316988459494650903495074166910732969274797897410199253665635592516373480226497882405009756416857297141447522177823153071386635167676464637189413999153184241703740143069818600510504138073351675502952802134776812224727442361893768629235021816064171876991421420468278110366786055594044161949609613369456173072320713877385083972002614401172724978064212632746357333432171650435865482055219695029663661007349303029672485627727595084850425474162586854378582053853747787656743259401587301555342789662965143824903915094649755373611751620049984637298094316696725621202900359425488515696305142237526976662461302881216330393327282177299814006744896093346038602670693564052662496204554110081361343686027952257844436104662818055295661356366143597621189787381424105531397696841905821644721567512508751876930052177366912895198543243419805528972657703642289079237821182903933666701026589951790199857301843443006191097068007364721660164904237992286616105118256294344652279716760327212768349213790777586477631739673836606818983623554906698898439882353925982518962620796194170387442169266145834335675178258149077463227960805793886440628543767013710112101115260321284859794568462245951105283479891726683532956456767705704293775763177446376506155965358043657196410381626261466674659905278699414074354591722196036540476587078397707876811809296229491280081916649211523951573617691696710804380967312513980783039209281504028697450921315652224431698852197693254713427247511576251794856950481492254350592190089973899544405903651289822609657369406718122850499901551096236399845598217974144308167275766048789946291060099669777588294485997678022918897548597098357864178131604772550372002962768089423558897838479908538421798059989283482635759108135295941084569866863068999855263702997819582010704628235191022484251344479542911131737357409186992305312822204668533092332284564461591437293196678303060141801448388151656335583637869835598894306255313620245141081379372462603317843993464117191252978437339024683598131662330286858598837141145293607667393553339196975125867745019295078089883525386177906925471935458087190910861511873587922774318425117859154153137421884100695627739977904175527991768807777432040265943648949861147035386197897970002123900697150879895856653784413838353804736665797527019888497179750363999736390493747901596835612812998603793940240491263709976054012861269450785968422643115876413316971772318557509615682628348731313863074602902180231571086088130704722045522140800608851550807402204364342482516733074966185201765102234394297368101030375565402525024276453426766656147227054513653620286943720128513169510127342627054823011064958699490502824082514091921439173705482623864638655708027338966095652420822382219301527951796612708035965197446697490835878223970553586305749929152647883087187673953029953473871405061879742958193214921208428562028103953653821702427487352107853805867611652150165153082689073757957402139417693010740457993105075311895595668605635979328315674958382185047713975461067022475447350184393257340058496141177009659214118626578957494480321073900753520225940843036628029469572676800062770907888561094817526209426454509531871105436395249545083119851365519628610157578239343226995374534792368245402601368897712984600796197951403092096677610837744297691758681451415346093018745263809581323075393035191543962762668518437838098687670116050047199080039675069445728672927272122699763425278875074482840383231205783155560897400766306787443585259969713699079018075421782436716361588590179827469234748173178731891674867659704774544619324715943575091171434225538018773442747574425187253334900575473013061930013454399939466083724123372851230379691554169203494148017661743128587342230265080175085500721597544513838447199324838661829062337830070592366039517873968839952488995448198409962509132106951431431345782592003694690258254837965137483885733134009328382796985952673846318443080466764592993346284318142089566654416109575327687474594880375741298515477834755685194754169893566653644222651894858180278606087654556331827545889981079036720037033030923253852152003612502596619811154348978828059681608314615912874775972010165498764190721454423661865804475060103154174709356617478106152821982453431680812144027893357348508955203602589092036377244069969791940201904849223782370323217935366187329558717694697549227009616055636304151716997740435670674166781694846978300868647591469545958390482232497196923912879333320208996913351916900592948693699037337262305578423827576450343864169241148027851102358906066892723120139795447375498543013356336195145301568572888814804450581646480411117334378458043433050044690522486030740548707268466779484975224417943436366811684781847030965033773194622919265547622241123290925111874064263316537638795724111039492743297872997174954369217953408323020287334443872875546158539454831957553734209041298656809778311081152239934361122766753498654104738609213828752056437096857230913875297634454109952108205478450504241514116196820750843883487958831979294289913939972695989574238909848036808765074842844232773218554186827771622159349426219109277719614583546643876730769928091365631557118201994678903375567845705885259887352208626721000066202188152362629819788000893023757082272984213499181220722059896590036253828953687204792116224932927007302568962974555210318296921472825800997016889448421973846385554992409217902249892841864482925534905491785845587682939633469353166412735127786905840729819370937081827625698910989524677494105733559584734009496231489847685909979166689732957161216761461975997782215635101152702274951380031235205304342731240757992682135527192447899243650102102902185792898636293205130544385583408853162242647853910557900435429707295662866435391631472483738385642012777768051980520751826701331295778809956541314150312587295132976373191615122228263872336482576427758409741678758170043959246252433458687000454484076581503361553874708576409756505108118649095014589299320904337335278047461858559501078092355906023647610417627498828215184139542176799310045521589263096973521538292290237614350577023065743415391671415469877119176071963526487792059272428675389708019281632791346407705650833301571239094159590336508258611467413040518123479041738298193901533880678124915737875095258646844210681785145166800061833317294712317120800094231874285193202723546870656582005117186119614368707250984050628300445674331654549101895315045300257291928397067975832150089912363007089836918495330742463409281219371092406147172220426565543221808017666789585546531252872650271266278615771496585404944763315158643924746559649099623540269271589870042665824759394959372380204083030411507610433173125670854876120207622125932939440294686880469297544324424232170061431333309233682276033152138476608781663345120330270110450669872848198540556855661245256457126694578264973535511618255314820887908285378003912794892171958577494057085290928104667540304838416566937418910969426744815188378354853609903519595566419798863801753592939520597853358006393163562956542668240352425353929345888607935264528487777382605386059577330174290400773242688078772308118955810634833822915749601565848054381493939665592820217976602128878626221627981023067119306540409885602360185071442887840512805059860494917939840076487616225639112527442151173722292371831391127274101998490260897794002778394686706456079339483363233667702227513859073499389097130320671452027771945213236424235418524040854713110761820228951003438949856074791635965956685609471693832685970686170814053346166339876365914246064077936296541884615074541170463814834010942275757509836837042005557041125955878501323439898234519137644578114284682122022919076950230717849827610002847389642494213418101428294574226992172957522336962717056233934270864927651155890225168199241457631309337759907856230437309672563719267834652981414361287134331617549298672504010256320539025238903634775167407260606697414574728761149023856918628020611296126125689039833976542176920497641049976396532930488626565018303447416693571010816766216022304711861618684429063576683313126250616413010287933378059571886676701066029756712277897491302833828763555887539100868861005780612423400256071941350786788974934793686008061109204687612203864525218546274224135782116247488252454423527783822379053029890956470751755134140849198067020494584540719358946102816039260238028844098108547801506465471804164210213177725171703513152493815561424935087341176195728671319976574685243933610727898137215445007708631726140467041425980844631725143402687268692889256206741284772914112347054877691113326672083372411326539029293520919167177617262567180141349317981172651480260616525626252133021433209274628677504159657364721362492333942359648490666355959314201622692345264443267107891635198566369202574092232655085015217868563953679432522455923790785605462929772867052630917624651208843486022259284375966654508624802505850231339696477651049622025538133785286236512020690779992960744635838272960889622710424412737247928365514725989930724965490269522172782414561027579146007897365911641453319141006872215219023612444008887068617116645645392466516880143022190095440328304867297314618131825074546956250393162627495335926795492087090690593391161103776232145532692119691507591384286122173658801998674111558490274145373756704930949267406137148085456915571421893038650539436072161018629909405519818874509362405917343473148496327945732358633868095619250683494820316388391842297607159575722261297862296879362726702014175100922352643147682362479498967608510419384294427098030215138828902358448305296423458165100372487366653897248260547226615422625608291602233000402946634310380634634680943798410484305102702482464482360854858630370334385626917335165480025639051135830742619420598176268095709594886330800550530109614205376466349692356217055023987588416701595661841461194805933178183355634888265179196450982930328806100087931923486530277522830810692556367225790567045455696878997015173143352133597726871760146196218876650691509791850739840266642492997841744719523864685984788143023905745951324991215983772701200111374806680312207875592826866728089464425114375111964674983768550701555806040065166892938331911486360761937853660125498439855024306980944630122932206374307112867016691817828735361905329920508210038159230258264582644973269031071461914010832823197544704955738322861982705318665319710896663489706797355302970036358978759337852100279395817395637173396681475755740234907043590881808502243898802914182095875123511764159095697573099818799926634211690287326049066779016716415740903122111440460251816937859178477957228608335787455553547171037113433357916113430306176400755630344458863514842299525454684840980224174148184446737681693692191246103870972838950444083352234617848883122292497303534094546064008032524976069683363680757819634172009697933106454618385624485943397640022147515122770240629068234217544296077712521876888643566525717198931036624277868576725926428646160212411057205380319175106648909342688187475689033851574757874411179499847284355298518845749596026497465764965761766613660582226414858709189531628819320332250980713949594727638764445674644900922195165943308275968259191065604771537861277368965446657979595646643304943600606543406552775293574493454721202737890780450670974690362067132117681807155179707103419315287456836511848086044422480968087358717491086684803060237311196320720600182518195057221825545975867234746058180298177064811598919909887971949005995686536156928103188518305713906046239579930334272658905666865870772662814547227214419824852263602274122313305470597396675306293273990968222237506630954705566194991473247948561209086888303528565155276152641964096130221296048616110457099739826592865164441537035961378733379232495518987431702459323636178769596620497387186062171702492279033405526203523598866779365233144936032498020774710102202778632279484851941775533590160720033760235362901588998264077995704334648028874315289942655929627127656563163848861339429218363176513514386357944532979003829965055907334802775670500135156867366499942479761838024311431207392769872151851756561224819774627777945627062916437220288420458899499907581001449375744961660445703393623743335428382726543595268595392787837299774351664399333146650992124665228065085471002291419824744185763254638415535560163478596262952685596195836977838122687538426432667511396388026379759198053561953653472289910636291373532973490136279626362415239469564590567271579252127763048532593632466666687450384941363183290495532571138689657099186312480200636756152088075375550090358211739062614590695691344400914123448466736919749399755024274525766778567961875425472860539066042054894999183627546155726800796863530401036394417873040891948665096679506010800245511506906557201313909117583844945105654158182181002846783012430375791365083361350286640980149815962269325951251101546403271406449216590765953361880566088717343909505046878950489946795931149041401320613372238773387879448429524322900737672057476364293158634090407591344607164369208545208000821446515267722545072288763865361292198609593411630839806105661593103652116545269646020583986355970571506426553898900602125597139712723875930074194633117347257571528373283735108329882567727619313637333706714134203225094256582787850518874240954862091632574994374230066012775842859850604793056282990294294099131589455606323375300027722047198465292691359743992121995881232737961506091758670272857421512897040283818902621068411828298050967776931245015926656715042528509098610412244600875140547292167594637122408207507487893039233431564477390519962114349672677836993565014562440160766782355147445119638473665851539108464064516662780071536147896866793357844884593430892937881196106252823695645770414944361646107729958185591896990999106376247668140527389618715519530812055085993593004366764192439409291371253644126629637771403303880967791454004272620403776568520970029211532404687429201016677746229840962672922418504982565822018971781951049586386604735328071231363503464993365480669174373524750396692774017539825768806382324235619532069600005462278452936541923715763529685503838605655981095507915276576215461951046276592960995210782303339362652643869934571928590912202768245776427997942333862055349071776729608740175692315182552517819652168029969302073406619385000619572660459010450476485695384883914958589348769039253319668412939955480370797395794362903648085636451102975150482154177843393391351495273974385778637653400801178911696147695456572725233697240676516231600053781194377255655868018268037038847461073393056301728926410051218653137076446403310427188539939031661647557918746477654027630982137510719023337219375183935514827740254639543748580515089942960855993081991425798217601456157290948347516029107946398209199822223357407692849782586673962526268308569606420958994534658767929021928965080703976879160825693073393951562445579424601917983880998800284718763282070368909363477208919224891213323481210851594559071636647046734568101219617593797641035780702481973625905147083491009313369259430867098657930300929923396280011939959865566768076548613756749819306647827322424358065848382385988725891205749708630181720989285467532563878115984781072928985206068502754646086620460711837797620745261505952390189694968471104474229417016623544220035201127963061517290163538315163206246813306847879237451477263766659634571735486072718087587290871923474620757318708080728458242390495293437744289588604805350869198593269352484510133202756909751521618670609139092261852038789566863470780847553068015777576687440064854335604195641640867838308604176273585995142132769991564820374377439305164440392271205907635429693630151988350344999339230670225426485936317350885334610914131282162484195581250198744598995202909873333233667175080895975002233502230033572793605328709600981528295037691544622091808359230612854707109070981014085196434005632434330431509483681388414210460168736864291053448694998367675910891331294518311407314732476289306817578909942136008552774502813233199245498559010240148084657267498575829625849645171516386649580449672784427664322297725524032610569638224923601320933247580655842583504127930588770531505857963515236089089460722308432284962225721919250545048739324028441472829029339580404845223164806280945815162759637547281301493811506040700630891610063857988816947092785423539327540596853232716847718643067594348698150593387421722601682906872653927092525039643924406154801429932276844186858149810574280092052476404020469487168445110984880748494657340652027504643245379088144398358112325286322754655516950074786089272529535545058360507913086848399360453093725959104778687559249511052460838149870837849003383831924802030843997553609424356869932415448029785632570266181158139595219176369536779322416824302467192433797545483390696793073529389541578834434574777969813183793264227216611200726934758798705168345434951740552767412378128656221281105903664340006031876707102307425713728242159815375196532915209830343428072397814057740184062754091359301384716680879843631004199431341997940125239625162454258514663115402940506465469303205669905679294730922301730397778340672713945691398078132200926921044149143616768349262832286086101514847975888408070049903780096199658863139633780763267509044993637638305892954956659576499016389925989691772317669569950684299702127334056699839117401328016337177497835243953968865889429608309247992519774496639426437003248053171831688592187256546694828338333824637984957161456276656166287471086653672656359364380679655317601508298038084824893554598199004866599259867515796447548083248958856701395257952032999607379361250910729597446709819837161710907201648948428716567931232106951964082227859317259381532457993398644731062098398348486173219939407242520855997100797618348632014423378152976257525864264100487220103761607742305779620776558605890316559932218307798979831520923359007005126917022191250088679745628161930453625615940615398066384215213987463943329380096135812557294362783657957210325270690212093078599887233169066478915253093821497170342371242488289366761874442354093426580378747841555282647609554442141168658026569151807231846297866809592928073138978249162146454558990356670946473086505818193933055825883063998904196980908069668806177046269644216299767986907410325638007535661210143827510697662848319638438366240861808204731717999008318517281852946687611763272454360090099114291054591961128021160305660969493930995945433799963780098506293860290242288673665829651932525252779442512879577080181290323250965213737235584747244444526236337777392394530359575626372383697279249344836145397916663309152792216894333766971011466878724819383083664059694175726491926011412619009481131519835254804770955745682387187028099586200505740872297064789100024204861676989223991815472125978929174759715113058647272007489162005965577494883896589844598250044975942100464040570791608113252180566057419260984354711866383201602340629605760788706457686562709755826270704701822177589629425943274342022342134993299509963421825947388664244253587592816407022720394685737044724846971274495206857922400225478014801740104066005327754218397122938034166964940504124227272081108280281808366463267121877547158049955649702759662472736601116606236592489446394540798535133869841818939406073495079741859240035609678444145046862331881669368617568160578869023354519246726641071304050029802365064776617333743702221702650332564656947431810354126935924435488631917356144355252340565318734808007864760003405742120259224607532398218979434577024101043974995932504016154618144417481387951108338171402297861886612612508210146316121444656840612706684170078082449438479810435705492001707816749549268957372961601812706382453976446675467781607122576288549908819942899538514208162210717685437619670470931458520951496688297333533437880432086636427767726264649071057888465811945301611965758411042180594025488168623443032346665922970663660999892095992499210049101431140133223605902906933632334084250945106373522388873407841674935475393857651900174951415376855829002994665617035159856501355258002894383608166076182067851736732327317734015023000202204639095593958948236835261819548138167509822845907313590640859575744383738103085056993361467227335361792014165656451306597258396786886493180811677219422563380764028359076407248361765748453267335390261278264286067856007941793077861922226281923462024240811960862001171668632504697484753543670360980336539159782481255879040631224547167226780962010491416950464543984837765473505517751499437099064392866165493874301081793053419415857875943106204623707412556479998937368006163997993866296075793375532213634156545153933426120155885643353222514577046560575677046634655959564667782621223620491350742659279378123636304680103462801137441411551085130379332126063691860384452833834467480355402865059046056856379486961872114070025744949614081884119692629881566597633171752728904561115448639970926382303512009512307050846910228178773721476271348197030085725522917585006113694802285470992501062169147226487940553707971065460440001178819037535506278560920925767464164073864165449085641179843027184031587433522918282258361610287463882620174782087638199034881293284243635234078901002845647794972440953579023443647039711745555976744682570639859264322084007248625097226694746619589234098922932189820830775452600311747444439153019644412849074206197877181436371711512293835551028068141541913410707851352954263420306529085148525618689410620972478777732518567920599917587301875517154281479515720704554794772191425622040773009072808196379771385205396861908444229813287410444440930095134037104069696714270990074370339950018247131573401659074324146074181236827315397465415996077775451920788260471538010450853377205290724259914799943889933903290694764550466822002042229237265198763200992241168848857739908965437434003824936675712861558732389772495500181146837750435851679754839874892442437178899699381451867303557593472851379145579944411552591532577686796467435659916936964429309409091077995143188736585579435835809677321639779748707785980878040449528183354597611961286957685345821338137958823617533861584296230887288608424293298595083748376005021548556551992862475138857906286263795077953797725705740696840144255408572823622921122002284320452990194187222335017230225781487883006486951596824371049947655813703208037350325047486581451879913170509974525460554775854433627246400466732375939663054773606646620506938012148265899304352334263368885485425079145965051899322648659509056155639342727940084907271288515916504222450483574665742381232821166060670935121601721558058592616837012166575740707469189002912183087816773914641298156110831088561628598633226947576375361762433319842104427360563021876812905074354411092160711118335520769788937453089112468625007865368346560326707764035512286775637438719105191829909936376224519655517972917285197169591089536266619718710196190525004200934378634482408012479761955870536523943658291641249256462033502852315394392431888024534394534946262746988208609419020074214516647170480842563336152763452279426148913823459200761762066047327803382013962255014231940720346868097690556535701894790221496558999599662312401119349255704844009007853722910087741506199096597850290051286481766852911676104537510887607214037559183477068887428938780291421059362008778657920565723351926880104862219411033934107130544829168507262153453807816399172878139015045175927822300266448550898849428699073127622626907910610026470096438256225158331309910449087603556558160604994435693818378994635735631296290750080875828830285174520497253356042037447157029168948273169971167850887892988997165164321709967402872508384449414431141457309482398302694996853189633688952069632644499464818792916025186558287598268764968222631038469935521715132063034999216841094422589866108723736564569884069494035121849137845106481206550237572357964206764322835055943570946231258103108188254019530633954836054013849591363007346392406789816808774834143573290057995988313294903259573595363115185428535568164391778725457068905505503277039913796512615377438668809985168674087037707842753718487964808568559073956242691976904719912206039791131811022622861573549673175082746262759787853411653626977135020192515771619508181168013132938852708708206765999675870541547454964558711900958288446527060668235188469816187963183483341218971491073914422862240590169485822280607821125479729636333151729098486647851320685501038792017020770577311174863467858830841837419405363549386469818174180114243568004407252900371631167608931399535297920588802288597625704167418833837356496494517973111548272545876886625188458673716311746386873789450010407335915704271614656551564745054793020631656204509050955197748625243259398700510866055307323314559257496012879368176440135110356978195048873514251480675747668479527232988666985983711640042560429745090769831561366283948511892109715799700039439917365657673202330741329460836259228594462655494766568435155025404211335584916428693868267826238746356730361538490366646300499404881811075423597855409293959974895390505782895472413285418989906594921540681845730242853074429637678277004808204505252582358038187890198314699339794380858768180050184073930599470117634847099115443139267465209552001237936080199324952072980816764045243448608227097774122675467903531385490219732704241634460310551849568735297087258012756094613103122652453236681252052644976213735259514060575763628946135404760934257319314819909496871383332695105439527666843670676393125452993510961825223259176632939348125984404170709729123877339329880982392722187044092823705067630985792758871142712585952227815682077971745391391308114174882194800283465138673362161367283981550060304592215832784182543663330395818863078525672095877332784140229763959226960990585338375614854321435826238177535432543583985081307079421162736452702414286960563551132508241191240933596655935484934255823555669459977944006537242721513922344166671140879103757821921027238134331151369312362419016446696119961162380608321137335625923684549401086209389095544865313601057470470809060474987260403784195137932968359992453595315901842550848033516885877722056696638857943403340735246793369699488270677404651442060364252019237492663524292632483904909786098714046121127021729018117870718391279012082325367941276053983689052548463806448243594002868275925044256283056278241584896905077331328037046556332938643631006775333269564175388080057034247215745568715995425998381291515721121459030040576115462507351302126735788282291243675779406191489141711152501355830878798517419692871443967141424117806600676938112192427491936825839294272696360496938477023676934510335390495311458340570614408179935770510242229790504910807808895613507261181946604310539103582217288258553787567527003593047114670589556431510595231754635641206622722923529937085959454608878592624279303583936747231229978239992136501175207188977481209410522638172581237160444982672441796031388365875033288445318408505342718375837698895433027070331826339973976794492732444037907799629710092248961639397875994674987707594789756148261053528520523148008103641555015821062137829337485576793062081994562611393279693047758524965057203053232274979842041337528134638835335141192542428033572669497986219171358738650478677211234200195108664967018525405812414378441108237038451173857485413493313712151185263580469164025926894387409185853188348740126335044406682593954612074826318395634457806479326472702545181715459561423478606464153539865813072169543200141868834081494012259792262074891205383671700278986515102612001206182325389184292490957745655902640799960613175130659400981031697982702623911023737656101894901209408839142115791245154505432577900331120176352218495762199722911138906580590216706015047084228051424887961375699235416421699203193915622947650247668023136380634621066005055783203675436161167927635193126293591669093090354484608811419214740789024803020964464525907149973125014338399399257709685009349703082235465427670843687328274980698106124220520397290101345655683163615492483835654833499053952653331990770509878100893572392411553425270701223789488105047743907651367873344991292801624745552702098281810493274582916933016651895714107745707062772744192620561089686088909749697372827069927620533209757396959344025862660854393704043456580084631031166120913762451920479124427685343766440592500943905869427921122976209343767373479815882389368215240921016001069536295173065296493086795008336429101484015344148581080454153555572939209919373690799917873255371844979839445561054496733574750196928852709831925227105572047732847416730513582570241954635197600833858659381306334795299394639452444546592164396878182148845968709780108969694679893642019783497658690176542046362353431708241216917729153477224985707777797662309343624587497198660480940469690417033642975575392590687612194421084331785971344050349032256820816610120691276682018966515353755120187526126237722758348690497284244653219759826551156131314386744929113840857696110474202847575828181671097888209296716196430385946597683630559137443747353339642450182624961020891202687132811564775315910115648025566837702011384560017390720935257808145436725761911544834106081412868313682391148029637121494407863590724817627474680208873601524297677421500216409346170329596041844090803519953717013832572824092654197745565960634812207164044433634557360921895873563487944419649430310854129584944629610959013747100709512396005321754407900373660737484392146047156200958588335004042989278751700633994588713950463006820302303275407096906849041817575809300802524130101342268570084060805108946786037631246527476647063865720859533096315237881889654327220168098090641147855196591691421905169264423590592519506886255404378383452107425467650977486324686385853704394024114610929860962629150443800284595052351448811055516398878608872603384187937385377354999776641549192173851046977961342038919652069761288000806277161719385174349249435236301274843275346399420255989518515892236723873493850149053292979496430121045987758685902411027493145975479127943769497676818634082729917789998397411480443319263877142215784343489203433110726202087171210504716903299474323494661910816569904088045072228333816422222146827219409950220171183040139624425644567907428346451983671697201193324242478589685085855998127025631789381062922155899535254538493519940774517241105079180436392644302882263562033152903651355696384376041944280656832782158329608955786370004639139997802537878875757658759956353996014032656378368922713016775314954021025981558890744774073477516942781736589351276413819924478728710587153714239531459827456441601553493706006121246458716126995377165198783262256385164408453123718747474079128570155014814689668035153427855152422575996581443241514872996575684265655647416579873191567363564145541664942609651783340673073018088500007185831853656029599413372304358625181871833452368109803976826363954289033453090972381688762338408336536556752868789443772287088232505271740856616377433084362794479214914176454427753683078798011552453150329666221543295474586435683418484507748778342185305449601756025155984518497060487621153414701324673463066379599958513636743451383417662911315505250320842848383617705867895096457246054560792225474891006054008996349599063493084359135129839325763342838585150826868002222725779306767354427950002346954269027834227192296757365318976400003270069203406473979687923893945051987147011093556271319954690738387920809826321918554595910897660051550266814735895636820488967488389900010989863519347479171869750792335123478811464744178649709401127378311630848403995479140451310952921357408246583013693027006904061067648621182047813113647910228100815826653764915755123759694372568126733272466351551967256197412536915534269015314209149738155627702820499662793966772538946081476771529292453996493795911964902014510181495227305096203466673439723333240109977185824077676946284201862581270850543201712591884443788659812424319438611637795447314764616363218710116460062632295611434027154688833055144765284287541159719507007217724943070621952890783207490589019025340485014568524445778229861692000381611098685651561474602228268337957897401933231004373576342001258852148212221136467682270901517384880913599448182915530282930066954099286693726264884704763285716866249565033166268198266308166238822220532008160924232276843008828962916545625893065234273552259651613274239951419377708645458363692425775220591649495597251703694536749836057212710017962555264910586009554475574210099852661291630228850262217950712611064176268441531009870609717489796160031489185266150324271533029747720537020100442221239725294750299963343448598848586099704247036208789030032739964150404816649312635753867444069861271588765682473296594715239205711898918579455827181090246272390973094561200699338745620356125958685450212183831837184491721248930227329103813856300275862398138520033773601445553027973932076538480368421326222301697740222234596331595332061496591261375838920398421846274637365632033752695907248703713255735075155028311974048732202545631992452137081866511942227775249698359020628661791738517229797743115732218694626663139227962020700168827880847142432990117141802860434672378749882129646801477936143381641269986804390684963510152874413394592516770383657765953438861775566200847518137063658199065025470838825523663904993273239452963186098337672139595695726874129984038273113486171084942837744658774175744633406544077135049071569432930065580998974305951709803297773953747913232403189732075568929115140016955634711578662442126322919655282137094755668669982236931929157987330006356735817846557580175747233677622846711585490139189539960486388846702346675298285409788402913125319307217803492780023487798086087302175686149650586437844379765432836009069361502998783439557113160143970213349930818333966722613129474719079352020081252500027773875189708374888306377464662472458548250294688941195821990728953338898374950866116836379535006765272694438693757390654803277238683961743693567815460290814608178482555537871183184655102680011846302086994162557014154376707931841396675657561500290816769978083109600051207233313390741619844964835397888169393221775871943829254455776273358342340594317845372589240580287615916193247067342763060394686813228469084902066779797144546353756691382951926914428293800542891218152427208539857747137305702995581577634851769785462759571139907929662044689819598486255477267973826919252221464293622686682407638844276487372248675903327385108092984011523026421583498998322933365190046043808937260893871166593791032410238407186391213913845896516178494015265737359549973384344439994140075957810429194665826247497659970241841583658733119901087353874449107404408788300565571429827747755833481527470107058793059343273814529154839973769302812715938203809521745690093204284264624747559752184372624892917547184030162912635884780889796757627785383978127184864080856628288019455974014752579448812606594797973728706171509053388524838559213093807447604740399215171789940136459981836121849304224849630507484879310802655001605858441143777519686635151401756240657970529214699038599931211194743392676919797665231300815090652724723347914246375011564494684590022866458701770750396513629196209252947324423185073572536128872420727201505507198038292399440221663328012480866473642876967660019327015592067617284567912680207631355857776894063416596182718298915482463945742960214775210053123123404736352788751567997869893358107912688593034448128882634757523462396981083561947635797419324980450823895820954290015038355781017107411030241870985374743975610989165060793070128111059982632256819242109090335791189264004078758895967784289856190475544464436163432768068265123223257521220858021325608916146900220638532061015514194542732210072918520452586830927102028730981685302529352899364520196173473643495556040500550935167041125905148571513821358376264767573821800454423336351431679822696195712502361530011585475666476135937911723404991448313599519486169314324174811370622209448543738485833372872292655461386788997059807416610290026420817027481145601887639408853410693786503594857035196406064305034551581889258903018375077341943798787532407855042232249852484757217234307193522213410407705249541378491990459907282757639351153067627177729359931565929522197242890350979865160682169539351540193256471440634206849460066326737479695225952055518247006386016023672607445537929356234284760734186959891831496929888849471609297922941021981309157351931047719860811534285684816337641357515395971135540420208725111198543797877451733991575352731947969657801722449751620905186601323754059293432944305206327167874587732282048778817131363570551762469251321733403801556622790740904766526769068686151359376660845561789439015503678381297099677021507607743883582802765710584884667283533555380400691497692652094712249352925267748449513508986579807028572767875682798280700797880999624762106589806934908097833563702363464857699302816986954324276303615371067081755757286210792165689093094101393500409560302868040332528188997218137354844687356325440075610919838283127201339368853030346890689401446961995998429864673767774921403888261964730450617101633780564745661306682081688298220293926123784308075124536753883823419398920293333886575892528629050545209177315550303217314253691181159619390395768643457875390487040594384013684183717474841444738754652317795890778413252195950537974206528386225428584293339789282226186237000481692627099637041422328498481941285985147174462448229858151885834789356324741793168041601514967916442255217677431009112182255272053060207215809850836602406974397308969341863455144313603226898902542233746299797931792526449719998362871048631576597896293290705206329619797309234329186651817385537019817956940209290208200303935165048459148090582631313111403642823480277271695327319395686815297980470251650879422272203228176106978300041459535382100987087493806749851219090884283657837436678316930308282853158494872611681380529368717443191726572708162656574093914970864760136076225925523308847691179656276171697487698115167277158230603737302333880253488037739417559270253916247621740658552091378709159866339263693722708731373334238514154471043113019403509818912745826089825438472676186681431170237696009165162463092575384223084379545250847842834965322744087123742207158440588495972857364101417573036266737567268620904392039549265294095334211154704413693758775942187084772495369553197241070819427064028694516468379560423761134450562176678256067561527620850282107544546955879848759314214063021105363482628131222551204133582469111854389556317674962657517493283854882854986825775868748665037705236394246763696472496797780727821396945105116694069120322478975322128327674881952443980513319478491132121771025733788458492450373912295562260195053376782248404165644287088560509301507647352574717111788094861838637459220149181927379179597594773456377456234630820157257183230514755679962844367970279765478361604578654681567088217939801933957524396790767069273867859670454699563228970377409075826909286384761600096584621739371187845889149132174844555832882612389915144261662734770934217438849302140311907640015845361030078473986620559553295092409861793953422320674131156613871733979489366853490111507771689926640144486087911978823484013927107265587773615632281476679645594448181307667861363970123464143012051606165627757285572807826063763244639753180841734359559258597361608371511686360649399507167663150134219715658864233277920734513341629294522222541333812927334519216484830567139910163617952971381104043108609106274132097234582390871743326499834500286081343000760288485882150815881754196076034177874522964087177998645392407906274198129137335046978105611660694573958785001821299647597744347872597283815588814638207839550385912133846524939707691232463894912540985850466231877984444607139001401822230199747223983022226983147848883825577228352157006006700603213871812144112805134769717843427350924545390353847243621101489969732560753981355059557662531143940569130508355902220734803475960327221766679306562609048464411533561910886524780181446720271813233977053842579425273266044646001618354763455628814492445698659891650486592309357466194491948631662966040459297353460022286959539642056096364638769914322391917842299330804963312848443378463430038125546429979959782600239573505226063839654405762461172177881657954259976018049139209381384898505657374831206305321352317995596746925635780490891401032250330913344378826139888497452536200455287508843141143272274506570811981136706618530317951005190524924323087407638871706831436799814908107036773505437935502476294168761791530850859529117300111616630561451208406453037563136150350603840711663757948036715827421416873791771356733282571350048646128723660388695894101860592439668300293587738742507530541209696234812439445670787804602890860335648613098327238546077922025598725262688598593681128794926381277385793495531969937496181031933673756860003806595512956321494955530080487550310042901769324891331545312450791138805024104182509172753867899000928909925686816574933817895375199238190559391723130145814414724323463010956324201342400619389704958048776210878477790721994087847282824248288318403232893010929392496190103866167790164948889601348724339759665737578412144910905305366592666830679607538124527000029535954642284693518903175502397071403232993982561585410751167178551374100851266598103877090408341615057189449025792236174977997413334970774139531250165840941708411708205255129451372552532943019958484580045940259331378972156718886122769551793033217011763023699712004620649781945451293470042957600820691017524466881313288605293162410093561111949622124517706080661204617797222901692338482894772304436701123115607189461358274814737402115909669550576314708604911854780195639675589273589838244046070708837144543140846766247450024175900890593050063715915128152312609121386862189048579085578690395602906896819929201371278084757068274448788376287264457446330320791712851478220559558775302779945602767008919350284757377369466798891053659929695100571693818799555305007060569392954138856926545564917675255092949239214903626256942595274520783610364459325895377152152465620846723761370843699975906713266949886574833497248911243127017927442975018372241014258324714784591545741903521547653427297230370840370333563214899396639542419739298938385800195621125826037259500376736530904883006340101227115902378975895860610748330322590400898335432321126454079963419695269128627484641967058205374209086237850187515215594954860228152629772560999398464523071132741276268645224302709753297783564678653410227161953572002020187897284738358920458028154206288385858655639783225037802129879830404026680987342349672370340219293013101712288066499995922243942400874128169877631616786284191233521382305683160456131766331058826937193683470660262999197087988875852633250636487936738580512972544683849688423310709679471103789672466365889415784555926229790228711304006465619595038142384509018135968308697387829340396809599369695758306816201370748115006861209448312608964888836735381115687565949899287706654795314683026491422040574200356618083178425572758005815003523218588396469213732519845738008329495359005096576602662826416519885852864659276333816213171627201679931822138420896084043970979851718385741326204781135464966920811403271891615370646363391656443191986809003933970023648853452744778670429281529672235324977888591874555421222876874919893787271932519389283672540915764808126666822022082767382736358745079386838832026092184679403292244426125287746668264794332979147587503495567568408575192057778584302324985674778532323518505092133806678136472042124705903172727390064361631163418355692564510569139680060311437825446957128190293922067110073397207539060105294531261561182048796706836653402202399139201517808120936641201986366203238920861342256507613266347849918603972393567788883347336888515707528297574431432716691783127087955920220944427588528514770252576730376085438131281541261284280725189879311684969898922208401737402034422008521369335346336701254658422874843070726081225599880764978749311838385215163007664918328422124230579245453392148815804661504365047227563397720824396542816362997995065887275694352908406616461811076516060709573561545104022879991173043464925970796539480310348706060927965724332321170103234343797151245556229849290221125437986422996762933723147381019826199737591474879230871712050952961766035119166921021694565017362126469817798512319037377492035693422965343744565493278389772843032771708373997424611719821107636557672240794111501778543727518097763854706044627433796901513042001121885661549630181425058650974829203566669795895531464717723417881089060260887607027507432168587811018743071387319929651232947135046974942862034241776606906039672280152035936543477889140202118177322119303828631113092043657812719598536481888043391971117376125701344345854640230629944730088210900650957175780395171296598103084225568258988674016179719554456240307559929542112808588014287488002822676279523091811473608639644836570938616262217941749591390177872272784913232053560904545866617274400187166146843871852768100029872218190252735324540586571422728895592837562812715236445050204343322733145566380348615358291465801230933481242915976845447250338264514381946198223778424884598354880873070315030729572445564841712479391475239695839299017068388201576368747783425443611870270142589818526903612161239457072528181435890204800737839770707447694990347791000466816890998873168647113221850972673385032177505707271877675965903757556135504194947941092378109639487972756285230921692541887217873351096129229678242029029701821114993517163964622859577100666341565815463355967192985642484319989987236321707824569411280198213860442682953803944952656936675342644337395746775626584643192708068594054117235959592457742718940466528606701201375168512344990321591219624598525378305318718740224698481167604896539337737025506552279237672945040809888045994748713950336452203100861156408001361608448227613453991560143692880804317347372046944435207194666223732817161565588683773175220108453400584905038719805671886466024471198226490796716690539114650143413965192437177553602465332510584937534433627326729312376463152341959479959362915033068471871889750842555402056124967023738945009849709897182544005553492702868062322520117232912341138037230224780599611286320157485109845595208332883115947715599265487003497401767021888572840404076937670899461950202270194517310294436030462545717861890146047561258673308074858105554768853528875993232116130204608596960770369726026900143361062482527281762844949269694206292964869659935750334990613545183350040517882725114746658748710570099704488084672768375755427916102838280049063996847175583877423507863393131147250055422698748256593222582560728900199262429541366130503880249659320835665342766332285609090465158908486410877432881822668396145931969977421952017258778905235053754534578854711236034740149759206390457285901880648445513050924208207322105226542401255923936632289346178519753309491266724410327308990993027122100293586275461757024304155867417787549652542974229210681573260388167464776586112389794088518483206777933513234375039301172064050077021917405276474209876776816468148545201111568759278347513909872846630661153534963154326573663176947744900092211924079743039268563277873004499967609233277582538387970999469765854133794973385305167440233181127951917423904939203547205833257933930707338483467571991600970477544738195796008682141708749161137471409637103991620329155805214124888786308471457772848953309552256235907705706354391722566178386809748738764966873498547654476145097121030761800952662473380057893837847317765047336751099517402007008761837713700549900020266674954516389866704800991597643065909733599512418367661721153397621850716385819045998984532199556194337928328501067326761966482856540871401439829349961807543149604124328387277064769794367185797797509620286859372340607040741120043648899550238725974267215342699459029740638600064024889966828209069495444036013244588288203555370130015547133892957462745059246017910073202602416484269499278669945275054702364799761508914204871125585855917450549599988799656626540588916264077874771236901132597522328474938824637199902591174192369094910946061218148666256280275223822846029196359065641400825415053900139602438260989318035577691923803985872097907510348502971261176540559311815729165582739758202570045110147238027299590700955554099850732295590192570716001972233824275858340116688555338475538525602808069385513243361805378269954778910135059265742853107502286570405037869374329868550951431651798709227199421254901694585058473998656999360326390800994943004405590793801208503243628118679238048455911324477926744236853102133724589024259317875868028752504199210743762853314530614715697847043455015508196733287764513972128448295456290171664555279697918672036082777383736504246909685380643380972234250032234650824071647036014574696849251184052796127619157380679190598142643416494736402438739884048230078786316581008861726163442933280279592556262437002294553783509785249918103011473531873375878442936308103017288024090649714212794517535452732987882049688052786880606187271635345295566270582601658263565043647552440224240581797551141598267698311332713593558277584176346334795313954945852481615154501153775110252791911201243220301467932582245257318802529286851000877766884877252080755491917388524024186008334678476991158996026522052963693164920099540227954208021666798043978987823987367769981752153634828429332373001222799947844755045994355133059536827045397542207907636709503517605627855633995251589337495638331425372870761689585767476922058710070393109660999213459342897153589517667065052854827954902680607418242874420267959833831953054014232444245604966952887736280188178473253630964516245167622669477063136639471800184314182782890741769530259229119732705778275101478957853647001917193018885080495644917593315058666989932418729608782546102076187126567270217185369592277390578450577902063058436593606302242492572565278240486411370153700068553286382847199353635001792485508514842182663069460535113961513248524354088796978384120315808706720686354376267568893494135314629399678133561691553742216908005623527774192013420613840538567920984951076298863043500564191411663403087258711305412011650532071599383283644735658917599054573019022696080465170475217606881950267981839614327917255068348770968023720861650278258078147496419617961150791825148302816530215749586859246279813463806859156130455825764599295473893374444515155621803708625577449422130663206189501021912367500227520392822970402285745188144528428378778613818463297162384290857195202176285753161105434486345668822553465382721156302820914278626392134682479412980738324186504448237767265719670286537499612007490140430028173179081199347431541430474000558215237690071252095798908264129797655418258330036666637844925005772001429900278638981592477984974749459810890466996570394938934918646260750218357752799338611834658764149027947631925824296499126152687926756702736740171977093999005109375330021877589664050121251290561413861342308247631103633487641234143038588601043699736300889880479909141429222696515497771265383750471434868269190953153428514694202735213466753375156195426966701647263399504296973694043078229176505131458337567504087773276114491905934001267479864345354755705642459767628391773703271615065847574592669615196494023575065940862283497711077997463803836195195644021653701002642142949037748444542058082155807252006122818360931046497222917936121159149318290733128895105360894440088654086322441955544302033798882228557149659643855684516860233515582626230326950999915704942916569578357805752729374232949074300941126827301286177684781307373765381532867376005170880407927471392060649875377869217731727447940010712571656138585023365177590409208741520651897391520018203348142167069610913196875947312695952964577245649490972981202555160185454753387596808857003971731268801949130592958775879318043730833318362372962279187272830200405711993659768218476734398782889147518965877697089019796759675228007337995002202649755169824605595624638084197828700263092109446929513495893417079739081735471924140145515719549606849869777148851743769448867222456951819873160943592978280150221494139312772550966205854832107724457858554749073733842819243309823007092006556197070913266433666655843498703053612754843447091916219279215821195230542787802569024366907706100449294859500402037439782948511438639254661035009813175504416776106546893418458126947144210575431805721476294342179947051150275905131214611738504043310870211091377237223497768857711673330841469304491826351787341086540310830262428207337234771600492710529587405568365917629781586410873198548243476736748770335802516910350168738346584708516495186061762113305885171110325749582017372358374612043026678334163378553341329185688062674684927552650645530133357022758841381968585589427728849992820422669658237606300823443789134805645225976776725583235288567029516518268724818465224048602200506227822131205395795463800873814052701798088852884086351223320263381678991058023141082718450054643336523082771067048412899911669146220021411046757146202864000066460284718764680278318960713642198211678979451504932387787275634113084159230050642591568343614600004183890345707001677359848155436912870189385640765669020621583138555509334660865945648664268763030698003728180863100344610929610800258413480777810809459837990600595163762522849350443912421465930867271946500566776113147628215940343699529332235509617935564316185997621255384482814782708129560564335849254022497970529350705780357173286102848571403722724089859706620568559388134333538853641249868005290104594220252226415132575175912784647613687050230698772010932147763082871430641362674287644412937136023473377702562732283348648513109188306400229937778658728289308059105328876199040035941747350437618167718165119151751690884268775603934788582182452254411845243034747014061425903126608352629613519023748932201849861254614828202897865047966029430912752348924147690206272400768888094867022243370114027845457667982440437003566373203901444713783057331500183966036347928595299100870634775576849780735131576819274418190476100523789165363245911904955621144199807228877643618519137651663255871679185124543631404274911008956215889259230195804984136717149582555875927695130737750476978691033456676875890060257897066633424350157020597443066319035013997718188301856305611228394193026304198543179922277217962846599832109697789295698129930814370725767779151321295098450984073652484046334393803714301227264659854730393197453108863662756939910651632254160547178433192526223238997039338503179947057813554008492670029912533025834655233044057398905068299414259445471620084209623067448262506924494564734944840922691062717617002735817446862460570421455273128227937509256820303494696264030521845690238427783082627782610139932270884545913170214879634383093884641161898727846608884646859384049211899023679547837750100085105973733646974861502871533012707988681390027997367941552334817999613151248452351053156956749644717796041899721806327316491264363258873101344046693688945921100115057919330414110704287399582143469577654042188869149725745569068941194211790059459012257306119663275538895364481070420896022681179289283260867134037209838363352614680214350936150562581744109303265971838768220789877667085681941256373820946493423276307365470716199076363190274589684865714057346196385531897012129071887261887291041314062763368854006160693652941912804406071484740812891231398305452639439802563675764718366304352806056688111731679948730864036817829178946802557890228256025477775597464713635361672650993429018931554180196520026935482433796415913645153779128392751394135841025315020229329778496636959359299662528552849384062711632408495239927152626112979697145342045561267472892223236014490960698296885619817785110543446286678359328127075388158532013220968814612580036568404821500901863563943901604989971981284810530887858673958951303227183879673446974390199317199191716735930692943139699393144692851643711177738631006962672855426197805894548201453564666618319273046243913667222174707757173791734298272918429481535180293879750637966794655596708018006937683333432049004330412988878190844340939119002646332152119682412871955796480567030084788666012043103555765634668306047040351849058921137526612206648425131819522878465875324765113557580094485762255476296258306004297455276098809011681853363311678513585972549801381307218627882811012998375896083597836813400880263125344215349496119417100536144900881402733114359808934543119020633559347672664318376748457744140625799795980182781501919528507711190187590895841382858478734936694578042147483262102058676024820328744612008777331714214110140736795158480677109980646352165317026805987009011545582722444190861132772218489299552382695431843901468420220665306129688833625812788392721675511955084213823510385243349523546594494935210979773503553860667804551697399692158470974252169335238927823360288332588936182424365312877329503889428056912612346151830877495793832288189036860110158689078088992363756439190280888024239608253061118882747333995886646808962862103878112096590242099699845146064928040545352316581513301833576926140040851237374920641934060234775916555454084320678751114049691402254808584212047616546304663478922768046222154456658665474124642466650360730012926936957099754087739405763352083393011165158187621867228900088790898160330620054019519325540369647081010579420753735189641110114892240459477290935657409437324598300939941856038024008376385709151629065000744500790132434393133893399324613426974055053800875395405997511317598560968174268326074177871038087889664531975384999201368862125530083664390989287136821461582738039360064954780460224293256131473397826539307171650600684557650107109894072797058220223671276177891798750251682841148204139621190334266917579687020106712569023445384733658751904957290447445647302917803382842014322313063304600138905967766327623308916110116929647227267996565314565811701945304955725572353056940506930846134122093694484681953844380901850794976558816663507423383047641012125690756383879654675775135787963789477171352657015590266628659695856861671728678200121451115822437358216945710430287564642336637490680286120808574790650630585232381766677635103657038958637785552333036021856634157647846765656387506486121361388452277031043859092393396339762719723736928598035550683322820253834178915302319453807500678266104655602316776501368742546628739546666376707939004162440290189537756321475306761154821982529475469510968980766369456196566268060588438252406315759327021916552197918359923439521360504234264367702368210671537360598456213907245615665853100787825858111676987872839604562434882777199574593398961508393639324586016792433669179212524887873800774327704428381424865425284664766462595483190015815973206249208614417995808751987498862713594088139526382466955699969718177954362950864089145276705833192902954428408865326801087175493597019634730978403567327217051243021333124011136698668166980276969263420307759375618007961939680468706792634213859390134469827147190070207118594310902592882779616703540188680447405691571601569716240330776738592537613557950285626873165721354851752280614725818619128158885374215197726331758979050237794654839175264127252501156718644599048899737599875808106013410220974950389523290020636303789532302018959576821908825817749199917058588752845913203484929865642064732800437153616756233944972072558408278701774407221870658082209479583949273335110031263608065649140360566511805868201523137933402671323876829841058847381982838473476186979901993841984512113051369365472428187492635058875364886608473324079976574383489706856718748089967444450909210726504347232624988400413418669839725961915250054981553917083180605715416260620925611253176872466810039673794915881796882458606332722464661452003322389901330843384123891519979496378928577484344255833850657609310586091859770221999695640097074402304481487997681925199621677897044328547033475742568653799620412971577037717652975551979819473299197336663568498416133510558397109037230147554157958148891161819203487358336272617596932567876803567311807633374641442198725365551042115134168267958373237552774798794659924135285686087827342722010622497979558053369060744327372203018392479403491513685387684756853015948139276818277968203916469664293372051981313718418836385248694619928167391779944955830262316596359512704296697206315752125397182773090951683100445016650897587989032732314801989722088323834955809438166646232071481089811128251596714385300076959708684189580613134972207828942583991406182294057776739484723050992700801387211331666064988418093498537454897021778236767489031786245149856157185730905492300484881503661161158598976315083583694755114273107555122804402448333797286184094198908498576939328531689068329307403574325531747260218278373531802145067734602368558082511435367475651516258541359153800011650345217701854749352416055220005409796601403879496068844331363385916262555373193381286803074746479826838544615888930994035755481817141148318052788878251546241513737949473518861348611035533674393484570978343033212429826085151217508217358074839733887830252772115661368890940600324688812467551777657094494909995800228421203787309365866221803655397983948483612222299626505448499701649616810923705590383139815351441489185700728542438658592302841349146993726419619882369020531904106205577345170478033100182440243254260135856633325447781648280785918053622244487508739828466487665026590431190703783223850474364411334758521374958460994383813710180347478056165848653142582390821489174679480855868497227372146701890718681830053211895711490834553703784929833155151053239146570385601335803015234586809814523620066803284500491923655023971302543969768815129698745940414329145767871013859616443076210964503495496863537782955322619877863274632493670100267295976654886587512824105051282915976046521632640815483358915157417168866993443896595349449910780607403518554778579497685114473000562632664906037615227482727625213809073628042811263641079455730294001215748112223369257405169927992393457550515968587704850202251600541254728331947603799624639141619367856476539718962592911045784388118521819854362068246325385040939638212827401485086997737721179547366933859581462699530400707868420748717388849963310561703498019929550968213536745830653562664804494382767126841793700654089856613904547314492648957922673503198262349954006966616196634447580763487075497676677809391952869545564244027122434098902565411039873410266221456426467272989059485659995506669971239080206795363169091952453479458877146862066189464206963685345029446321634234284558155984405520414895456788273855318676734835041723203107070161003908892044412917885646390928810261315827258469740608997396827299758716502235611111494798252524552788217631051604546726603095275874832948678657666005664178341919892211645814228791419211949514257877020526799410853896944748143935471187182620607160952701274922976058553637580491140789118482636036062314187522175499962351493786232409701268939534815058193921873221475405532405195841425608374690500054683128925877777953324837130345140946130791142169041820580265581697043326332654527508727988644587264211586483415787637867491898902795087978246569290784210293325451511727248935280327998059989080525759184568665583738773894005788939870599282416870726792329048557775072759121918975386125750305444963678370770027815189768981409609312339698894025370539409511772761192530070458241226821834203071178294806508010538416293647800431077292037538220972977165530472660054725951209466640877559284569804649552612515716291581323298554415280259108923516401687792390774085598501560464068217175264166797204449052295439555075605640216380821069220402283461685712133447549989783070080015213750377054719324809186082899136534142282225232104013253573571010872566060574619165943154148267135096392156262295266362238284019962618964913238287860989418761633395074847211259434348384988480179870493701508437987464644566068315823706275075510843979594451884389081015713126532546043554825282538381230975130037889593802642439397840389467660504370639161246063301182096685881633548446167566854605726475431917122779256805216240192319829582191561726090133286152440222500318464491284072912284207441704463065863896039979377197410839970699428303779651939327971462916770052390535982586376822968271179617823212741238384737804131114494403951869568736076113888733646803486228277980557956225337578826999808771919344556757414177860203908640866028323417153675647582931671788872429161965828038624716702003037233717922853368384626457686559973535722172536159852200685415598481772232499930529989732974467961064458708201469504114481664612774152471204740034298498111552425836691688588346301942348564023656115645885695146317826484497845917804075252265910567573825657554077054200608399205968570643164605031981621789137629053247381411023538907491468505065816979265884623871773496462547341366709264137142116997081915155292394147135869087915181135040824760354468295897435664136788157686195823203898953425168002719476639703364571031402346789556803919608577875446316353619237901812206378722794886499429283318751497677552896696559984107104157629014124654734312397819947631577087503194280386482211840417822340101617169018170450680121546118112026941535980607297588643843589917586058156045111206854306147481985858333682402774266450305019911592438293509625293875891609649250552828861254887964145096028852313659894950669197586030147151864924960562176110431415410617961134414390772960886598008599392076230564683473160689472776739262370605383060834849989368511093359318185695684245303416685888005397087664226442268344597757079616378101035788861947573615108178700114171423678255268720478155622627634354136137797998567730286906468691189935641203325071210590893744458720752197257670553436607600044010170814489656419144331840149193930117824914765288605706929942373609078852566807118969696484864291923418149814677106633003058110098940947918316130891674223146072830218437786282554419711626531881557110762924341357245700928166689886805160245370567330288170713666940704281603175110590031683740990706301187841250610998816966664047048595661482352868039103425874411266060142817543919887246958179587541588591639696254610086279878053099147725925854413195454549487563823179781330964694630055850171298680504863379459096825868926081910590183347920540293859189964419486976116753419877288214115964117149065624149165624767007444650490237981253763615576693800928300792464150259770731378935834863917270999537613962049359097066783390649213650011419061301637559431766248418544736579904299649443582678450651591748590878155117740583633880720901599655134174636537881114775979099717005128437292258971417612243381529077095508334313319754752038207902603060257183336234357137221872304953224849225644944979667661460345550150138830189351460783698394590099520662336578532129096424823740980594401983151074162367471719575729648792564426016134753389962650368376834886442151085258530363971931371831467183898936169385521407077575028755583715500195578260195391070652085931751879965464522250344675937649032284287404505235828155927322998953304044237490652517172821912671950947963962685775460861143097433362499762068444748605927587515001342227914545714534253552094055959386444519733458452891991105036219073230356515549705366449556179076772202468918803866328396471235901872263314038824773423547973060804524811847485443792035979156024146571892228311366023428542322838903158887599063474841697584112393235124447679112962735459694752495808609381269797129415639833920301822354385278723757708866462894701288223525600789435146058488456609934198773097175120930794872048356270595204576259512601781371733023511687088159710410764577609811059101139916444043286343121352895336452208751105558923922093575162502760324682227738451026302750561040089642304880437500789034700747958484695329507553217687709961257856988498541955830821405736297349809849321883477297774940448237899749175040222348557412522758333419495400856830247560672468049645152016712283244289288651475301470727979935660408304471355446247665947737544371436290238538225555558476425371311023604753022695427733276101648635316964271032285684576249366320336789047607786366476877139050084690133631639579906066916833884791710099507450884958741653909461943263872971079221505356614269103495876352191068705712066698170920738424921490657958464265158947921081597049171835817928206483977932241270163766317187615948439416101506784711922365132586446249527268543655438534521053719287423870936431160668333805652438596670236183693239840390857345492575680328926484765275556055967174877697104071808350125197513702409839122518709649791438224445422925329131470461256057193852323480412214367706802826884108770335730920673703447197230936760526095964840615675837935154788038688608186592682669531395164096530819511172937495131530974183806456052915687454047354752253028028339818063405418553885148356225074410340477492781702861131363501861835509688522970932658121882037382451894664211230909789153076215271940835040886935757517999509539424285398629177709647307522185910131509705989209302147232087288516591684383231479626414862920267287829221261498762225238150427885472797693877921384452720659131633036718460506692754001167446554994935395509579984610660831795796083775849528414104340097840187410884803045248929810134688384873026143926919063588797363331612585162534263390844222423095499067860040467455036452541874833501741924388640963274179590603389469300253950434458792908119557912027302266023057099891066866936305281358961990810967614813642415266684280055693764682824570201103508588826127061795457165734403725755341038736727711668188659902800541246853251825397786732191420573056575358084111902152778788565147397027235952174449256121300223045273880985448910863728301813488215068023731754458575378749240710489547262233881674804717107139338863053971342142823145551029503323047211109947596454663607500847437854225608799980925023651567227989137507180207789848115243682376082459411766544138281441554180195470678573634941170437065700029400276588270802763093392323533886028025806622973299748106899120373399247443395685003019752006637191912863599287486017693599359843360761104853267829161693393678280556286315270521261029249894651957043808845444325157834052848750206487810820796330743381602589388726446468297189407030113172457440153577638738288839477889606333826881602980784565069839430094819238716359524553640390384075590869755600568897917635096213710254641041270710092708169323035003014275871313629537890473068112078330955416720250993269719575902268115673979743269126787229896752585248300966951382467976139224048105154922726437440106951031203664536196600546275463924450858952590150649816257857026500985796478427123911559654397940613432564467929705293022583782356781462584735492189573526525718783518971573540745384736666469329155878067882239522325549238224329000592995525701983293945388970175122149397167978823005279218066898171841790351647457993811214802571588323960982813102319760538446061445472580517571231978480280184482755799082911658336602884885820366214129940757495720041630052962114337194829787873922607226918936614305109341408798808525284555870329355939456650872662853829871218394127701075802448799649450843296043912489022066582358339285603585062451279787920159889445486982727984896185532127802063022982021863449690785058753736780452191534885916458659302426710816992000363233362514981933171191003397889270767056815492530073840656348377842155825881376821552640383038613827651241837231200236928699008153210678875942739894633159226264967608434368418549834812058048892501455384996910540916637505032230801958446640036077512602070289736490558475744361380314175862048047005933494891399320686901997195918361092019627999755609286457631562033359479549785109978926534395824687862210571840019853050867382424335362209037601782806343655924918608194134013950523500900024335278473212217151824052324505961339924431292171207343606355360237400427750992607500434952759040368074194630440442263017568260341131491152651083486464846132419692509854233696023846705104199070413857226125326220455320182446989025533053839374893388379849931858128522642425190049100278716384575944827193865377631706489989122785275351137019675491556449361955356488565849903720971858705340510809634389687607597940713969801236522437337281258513494707576925369247966986886478855724945684940379431956820957327291863873336347924011411888075643805182296693917948438541759379601160819930953620549210669737717423143645525752645976862117343479784835034901975436943498557354742858730641670925231939576593773891229242048830053012272904860862506793928937454285939439355912350856940539057072037791589359085839510278044512480379869853177364744694090568366924638838623267779074207257238276016161057060342860577964306870204696880468951578602882269857454851822224626102911615187966698529259028508592734184734373469514179037081319666783632438096528615220959536393432984104905619308299282917979116738451299289694449862175514611676869352456012903257243557267397388625778139757242419177794440908095781203828303789074057596790956112731951473590325759210440175419311938689717221527938365266577710569373247587574610795391162468013257182517815885908978867122718869877569163130259347957086300723808507214834412086848021357123506208805217577555634028031540218661315143713223057458691058866223997203510815781138518553815246357622757477431017978844405700054070711888742189014218955447840314793055900747110195628915693210913071907758968356845895943170863044431492822564045962758600971316333160893676610086942978220965716749407832750732408398787313901287717489860519952187063887131961150294226632675172888868748523188586525743379449812089059809036905785987593503621197002077334606090247890887491521865390369607026729063355967678986283089045885435671913386323168320645857039294044504030575049030246636640393592963482005512103219534265889288062023827996545296506080738096023272240390968679123156681091663100899167935224519544211345454447336529442153699843537779788906282731330070635366188831317426102631977359876572843441837859478422043441505103015443770002221345321298890092076660511933603386532632424751739703533590715283908370871834444076230160109948984261155603897172839280130088573406029354195884901656405315016933548991609158221064034449270337953740835845921231020113870729717162579657741714495392688513130371804548464257038203515606288150623893708888355636657179583087476852505502954483755767612352357369938711917253886044948766589727935567969484404309411060584063356533772134123492071968422890320803257671258207194575417831615782902762419236131757806215339405479479299467885954665002319443582841339834624860413717699202668300310529360361908459313167217625911971029962632768309304100209660158111074155894901302756408217218612642803291276458351638451778872391901671867508112672030800952926520394553849982106532715978271868640446335935219263821254776511051065552183653467302120095946121840390768830968239234042789863846573388998785559583358733342773876241075515847842090533978136750694404109658480043559965134253713245611335278484107734044431348901763342454401957468510225202379489386950749437204790803920172042543864324125368357775195276534855814672534036397136359175522247334902244306941077477958298153643754283894006181499934472558162412672089751957780950738370417966298436291875851183907208264197156250640229770350701116309765226145516967648047348608670058697378247699515515088470572958646959648524945773646066070822908480432027745276813238226292625865857844791188583448995346666669632795633428866720514858946107294583035380354711743787748415093688947460167739229186778012139546343027357854384234998269847931426696776569945345184347458432230128858414718519179855596023396655297324340317444600493392566830004495367443007700103527647315958557074828678682204028707573456722684657401901976391364852136762188107516322949933978311553925943678515542361778270929469012742824255571535497175700563496325266174502434064948196689105491793280929245215786655412215705233273982090826532961422887644692590886848668155697602490086293957554331331289503093792545934420857002361331814002174067916812267928502760282228017157726855427005888259177601377990739291705331315460986414652939843378655884545157443133424945664910385998440768329430015931724981094565403934478391858734279432847139561941032150142965856835068246509148481499026024228856208786538083167352358646173949469710766739496964960391767159388719299366998394960104352033630473746221120176718134345371787627712614451228089292018718788822177083326312856010908392599221998734080841232922773269378390666216695845306979256825268932538084693941710912352509218802723621607171433491988636400051167836766318756725839328924420815048824987448281494237108640826441533423927105559256078970149128674218294741902287957325268078769497727962620935082614132449877809412670205134242082014534800171802687310013120082482499916597779148422836219664607890127927484855445297680830925561425122064255422798041346896097774672539811068335978585991410588956503285264509532029604862404230746010873909001005002517520331449032298282425990414891151134652194029612343911707916337668989631990714548140796189451677524600688368365285568266286643815802921177151527600853538361464142411992021300966022836219981482621725274155852092581657278868328093322819178917451444610178816241209104363860892290091032132027310321694179621237010050447364730609193494589263760903957092071906840115457492974280572563763044246907369473977631933284544867217065073317407143481283172840991365731944165876810786364263147717199319758865544394573007072470476978386267389646069900403445827447919673919544637832279293920968899567233443526568343165053308534400146742506181244335030263819946243404718940236649319376303443469357156415743509705600965065588819960326636239344801134696009820439819172582793822342829772857963969099275239009687448028886660032084962024272444989664705187407896659190386641717157637522221219124756109059455015716445293735247083095146653946335473897320085887424915100951942016345023980827478540681986207122512733311709598569617733633128441755246314093907186336013371027268784039250437846906093439071121126898008201830828983532960130583038997674033214544331226950750221178969528859139597984982278459633791681066742723977960465363282746190870725100187382966409956039167540806295948009320935632971633727938275397363387555454694804685841114221633071111620430300625229437539884110528406123725006921597697756580805380398603118779542804091412624916409028656351749144394473722180489675182367273227478480065317036841494529454952121036819849740890246769444980256179039336020846962226005034305988822981674743591511739190070525920415219836062750823788142051727979424443214828686888796049411763714714040397998534089095888181680707523061936373439266836099554751129182426110570084511296746444957102548771768810425626464177771605902900563943394473002095526925368553199004252900813716856206908628948613419910204872114209922054256867175894432874226295995184019834425571900221003493942644692443783641298036710287240747773155896888008982608645839706789912831437410825319473812727257062844844255551187320905429795153905664586063181235218768773993528611981646274756326140172884112918621178789525677266102520445647453968631168746574014516485012627851595258388690447801910388977748692000462200983561648691237271815011327397995558577648476484146350119075640902159392100875749615168600232211200942657794836429349528017698242732800323270187079678417654090920611577819366842387632524481092022126783936631026996272185685898158535219565002550853543835352367995778483624537900285200957388012851041284280605768479990516453184352764910389748128168971797293160527201823466641107628049378008804380290615400700032326119476273435821549019016519970807716979626528816441156714156614505868315856510678531463575086345606755172003299463133189286198529522407689696517471720902386895343753557449034969408409925315501784819787375052779987230687877276390853318221964240167527211136526902761475353997337403210478197950299888720718479484036674888331927828818349460152914368856570789190311882468532688711118821081573202549978518339430167837514463558389488226120303575832101244895163704189711654677041948360721697086165501234340059563095965485253852752159936984044013135075503829277459071562379739093189402889220312467033688247580914287320957084007255039909634947715143956611686712523469499105892776117077753946084593502935933138699987007040554287263241981155973127818484450479878997624723912665309763266653147640582039796899265321605492018248269749337377464104818347277139899968023272808412580558929579944157933137377504562788931057417983399780746520174213516938425687975787833422097825663678472426248193642248221323117287313810109499151344658061625508481292118620924634889459105294689932518334433190131964929626847504240899067643024547271357870216080696327762465036442935815878135998325074176156283383078429559737498156330933533884783538369142575315562221919778540783044100570248305881549061294809369751637493025632559620051023947717144305847019007635050782042528959173463672870997598112473569252751649120589603523698116394246290337891112899733755189860265887215989198312217845345474942370672955771975659911780227096412196405083388131750805761197129349579971271192005768341542987932682466149243663506714348657954579563526787687334962748208823912999316501136240609634835475596164072659328358258875364537061049992592229962278418515294041844102106423391394643640982639010311437622807393924391669184806616602989758606797434127633727456817117986046935701739261804174879891915610029582615024654410353140772339161757197735624805882706230503753939695961823915530711669658333782401366528045855678212702824173034196252305644533629463441414868070507303460948883431134584391303066440826126169845283679312065621231106204012857769400012969912078384423255832120683106426301681801838086079802404772718905841180284533627159307130820501525194763111662050677743865606110215353737203690486129932736224317195008484455771480973654077329742351532193648898981146054265143065391452507955528976672573367843011564493728451936642160931229963716583694385539015762152058463512315202710644564567380592019494652225199362642983216296250831688435845213710339086150329548059059680118784081198571496419793094829700992442621381294076499621009707309753042944132135333821902440799041605324951596504783420226727290868107493898527342425106157682124200268322344869213346682846654527816078787053696545071971075776767566827828505826039395696977020558093907371145269225423462415726950298479873023405737563313826337454687247239893567436430954862913144898155499881091820706390441243538042425367911217094644614388804305317307798301138422807803235806476921397087170413240673141532478023782360360473380662593344320350892893154804900642231289075228760629993790162201155979355118430328208020102053171137038498581316623159179959647862958945244783750700709313465688591590183910462205348639046296454998977312120518348925464912005212278237101832683950029694901856355830519235264001135027798180491225943225909489679918384242288660674704962532205656554524761422307099436457002663266696317630389170725071324712135315908532314111589820343234265603657778338094432207089606871454588293254031108497963836117837421562470310742951592562227078349430134183932670817847424601955558068186551881599937499477371672736172662791255452920151465878242033207950857218843134000637951134936543513267085086560596038225288271634616627133794273275472872130294798943680818937087786234544127304856782482069000535913325780113224293234552899589721915927181379594839797068795190012804004014180217022461747150265613240832176816708713596355289326659993328352919394392345555585899894835765865033884528663793861809548318522332582644618249863516714059582323323500697756961019032058354566981039711522633375816643271923337120035533447083534794280830445594106926897217530776610677912082343412885811585446251363142200635986612569870030910766931943563181200442507237373020310444116949018630360999589053792201247712154228301651935575996532924821868659800597894534694967481865606289343560740054593917682905303891645047231292993417628294699451554611192563619670188479431924665970442795262310811215250022097604903043220709356701162640173525991988111311160703791214734981489958699503717208901259040450864735278475962907128095055076966547433921004005481248710093056342036433955599931964679238082278305154388603970588243172711619615357667004948116403080601555092903754418172173239268114369787792248968396916347581262595636812349117191090559526612003672895714852296269188579022114277784014110130807813008041972527661258614059782208649890086701583422003627036676272480383053289972745455797381033288303520220028698646806084894916050607015738797551240835495385152490939736765485172276291159277070130894310360396760466566224983852641275271716059572997164643206567037957689756414089927266802745984825434544473100901394368481591490087900673668421709897003911083714705467821382814484759234867254406044524501116059449748139149631776445579361887139877078519453520294763042524110632006826472764876416869525519281918159046494138924664234168899647622210968552596908657770606588386436526637010556441816200620127571625467339581446836645560874362000295087311162868558659057155138177168102597450455605398630405161010518872139869262207119395886054703144503088193554312105044894730763568040245917449597409492629128298037674245201240189939250072701642734713189329265023880914574703101150783646777623125248413937866721598082136949900628989996972281430630422546250992704467109080516814768764305361803693871519780986763310264937574815906416631938310505733925182891007306016429593209412825491191666348477520666475752946380852882727804731780992172417703439471869944016640804174111579996714357649033942899087728792718437537747539996373456826258846320796765044588732714612907793953000155379668902150772336487772575693811617415430515853690062952751950201259238144841966885178204995262429601555897129981894327586530241920285101199353911126371940077052817811114530690155709001664982828917725322382959355337548684971081368848537698308611923808670607417660761008868428397728932262780631103268125492867623320048225950544600152673574708609492625043866385468087631043607412998469007059458967665312833211641298118295408732902419481932593200029338113294815860623983597286957699942961027635780482788345738626263440108540807552141111990381724703156349906946339996470594503059025731375076808972391721054271908866627317294733340361630993393141295567200544229103749072677313902739519538618088359908893320854403442155085381650241623461750912963282948654072313438570017464558490353354982143295363066999098639114873348404935029653025748819867367501347188135050571355496012642963474943843990967342223496778091535846846746534554773669262247516343148577980518926394901843854143283641360638203584178538314431008331520482977147182743401135327626389158300418671480935152360783931916101155740804969797552653914260867488117766264555187384910622779237411161132280119222515595944046344677408014939506747339287642778753417752359403484964256062892768298781250302946329828631423524205296149403740513434657816623121630070018253593875015869561701222476294361009168498397546572166578265107089333178167203717015803281269381115195697212332829733783457175829394923927569172348288934041624699675242844057960614143339615194087953434519331859002776289821699533833635793878481173214390122546195905624585193539075083546914418029641311758138163304976270751706478220588016565756467785007019660265427668628823625254172565316566900988207955484202461063154685744348960713435955429287347667580176572453272855147324930375229541876506351460708537002085657711775558215166130431749779109411146666959225974319117697223448958680647363426029574223362117524850533583822334802179594096849812737460965976899131851893889441939818610375568259550787266981014411458528237880481949729145051728211839097308137176582466769652501370221589360361575024197198103194746760039223597312090292787773983064605943161280049673671445595374245554680803376928617366240854563497477228863268286658509358117993088942036615166108631122550277375517018334870416187478473628575269307356434918717629656548551944318579364167650552677682925081237599672882299137691117179408427441679783077980807554325510599513140479447285298338432941216117627516102854528529294063924864390949425533574824106685252970514801239655354626005517957724889922586035838275566401085926879135207943005776645277153220685023015764872276651494795501637184147579467960633291118999274590974975091476483763845903538021546516192732467573856617903664067010772844258830055104214785683011113001458169623274825840788276395402736635456479604464614219599499683447685870899642019846517911165443555530743569864738778021023690100211907368554546070905192766063938777649956699209697682206863398173004190832207983914094941336577462720063426135738761171910730574082136018992275927519752047603920361324394453592975897424351927870698123322153456422065964696513932645473361223978916142886002222915794675010191573670051662025991242545086685668957881229745578934134244827019262341918033781471034480082787123452587286564524692116623653141877311989176299165901630896958797464493317029870968355859950343474583865815952180093753897522884231230428408504101620374504872628788869601990211650171049148907814134625630012797768743624653353570092197027234464619707515643169393065327652723093491046872379124573601611791551920314109491008553357793671360504301776551847200304390051389338112987978730554846585769500980838178062222997293936883225778312644897336117745372239174102600667846107258974209981205191146093694801234005938530772998767984569387772820419968855381970113440154751175907865697963578987922422479740134381837377070563127365412212577284073563222986767425269183161524715599179921247153710543904768575193975705169253951552507636618808667841107783743890361578461600439151187680674125292631581488384292405579125743860356747811003830896304638881068607435754800072615685126959989662609364181159988737752505589704532412136222662502746820932240905426726918323199857050425123062980784685492430079813518455998307297012453274612082590459332869820686546061288498084297589886337458453140967698587969210245374518906722789504163498766060624298194022043813587113397053421394750980836591618625139690167016397999787738486586421344767236403842207909034342244064749367826543704669136855722946926653188446100413221111661024113417413831449971978232370426655735720689685557261270186188824016181627338870710681456867399613340775457951753288046829484635590620219297795706772229599013888769167500664716252138470396723375864913464877301550698949184332203382878473822552999829851425613949064426833477897722656268340201499826926353323578617530416535154612192151734755727887167946133312703823129959054815827632198117363156918118216985040321830879085125887377474592066109943212797218220122143777168282200218349116752396570172486253816463441502220331553212762020869961959237801405250513481150638662361129486157705754015518141507069258313554982382764429536007833208986976554184730591248764411957273482075300075306979545458623729507476493563545099502559678992851109784005674119778761973949199203601540367448967027575004241422710770321334928602419599722452312670954122165972897672944181295568117414567453248101903366237730253732722457794653966092485887040375917434066489417640519385239699600074290945445961562614944190325455512378396666438364658374167190788951170994705793889492814232998347661217029793337098171245479299230927184214084458375872565302506423864297171577200333713830837022475872301371491089419127126768498899233821928537538737699966271700257071602181556466998038164267047582718973259617566841179928457704619845092719247281112849785559545400790811116839680806290064823195736845488265480948625298955057023804096295256423586919936313436856026717803773873249330307794421834125268057586559043992384513936336966335642393769137632786373278686439087529032488763363193243975485929350193060061084698358196996131327550132539268086020848167616425452532682310773903927192522073321232042783722452028182041181286110867745283546157459922223439235569982744671643745251748586214707941318637990295178710395304442526818545751071668271976037909582507839083189776887496433812694657621362401510083506427155916104771853881584805932021790324650277914606177957789060720806689926927354630329064579802586936732505221057302554783703260137652809376473764736258155728866136400483017423385209195159872123075682088242936485931340264323032052781414003271945733843992406785898599628537380467459454244642515204275420466934182751768762904385549450039777666281768958488988391652657944318162342525341637746730787518465224577962322883594903867075281139472386583700567575996621993791895574743411042966317565311541856649477672511780162729085188283982253198934176153496278396698968937816416496462697560194485510923806792654746091715074571593731413251078994045103509031345906437754595500151699153161104093543488348513853713862713091319336033800318723078364134956222729335667614731619002858297219231723356778502452425131447591156589927427307668530776507051732450752216408309616439547686879651790032536745969049190422014542446122244780257138329002176793179479027956987231410964407564080593680962623884025273066654314837654444239919019100124787753338662716699034096810234406936748493325839650878481924433736491276289354656718555926165685928715469369089701532934783442225585476431673514802889848002482323672451702113376959475010125963966083070437247434199748139453529696222595393056785858084867864782888973279277308290617355293995439929878391103958177547846021312063188680567809331838756321647764044533731399160604279938757448090867208382082801654021591400977281993232601004662804286970557163951746740630604267532286429560883678983795876256897599277420436671050684487403131532919858120346449971204582169552125023706577662272592824350875460852008836207826420692820839224799371071459889666215103082021034107724768235349671290882014659819993225159552551920990030562434667267500057589765222186682639472281503938106001084466231446329260237282828069404610732711999139053854256877584896380520636933440931142765790338993033809571537575325294061695854021745281733807632070712292821699572336657809939024840065587452020130482070865334543281808355126579118023438607734407790742332143694261356675662021636219824891740346039503675346846300492315625834129586151241747150556026317652141045542894782718723139231953960176538287750372351978227696026580787641114774202028700599566373657719200699571242033602268820726590495229563923665771186816448526486422539665295465351619311958451917924328863083875984396407481725618568692339126743908762979401455357403765885626035757292083355948277741083427588425713693740643701618355155373010757773079264628089524078050042676119082027802618204719919165466170050256048474044739557509766163497196213725827960658741108922132535603358197238761470307655899513527221497141670508036379157918336052512222793635600500716514953600124994487420238161787863662431369891633461161944690777499273057556551739104392142272689787144653753955762435347118406071180771166710171867751888669228228962989396406050319076500946046102936048625830295560821560320342630310488050156560020328875623686955238070691843195723332100486599815495308870902490123509269203364219596218299469857306525162515074657541536131930461637763076884868126967401904452786249704472972903446934635419547459941555457703277063187072603729681564803027513341307232034254696857325556457906857228808023037496687255262755329505998834077018905771624280259251029700111571151499189757163955993701508876750258052938390859190693357552001444095621840282775076491291109266079556792968364757988603211295785920785167340309509545951649034390645875688662474410018253425567514031377752485989091075749995296440260391453629137858197473580496018644770144571305550250868012734465278906193066373435241551062136568964968102883007700750756563065020984913210788362545222504708609252781913597355354060757860970248512899082438510684516371508361950690088440511400473858984297501116236563748276526516659128462238583812460508282523290084745480458349378814412454425716912494307946311685735516379441839278455601404002373001430888448597805090772360392516665212167533018323318560897975132363019846920472638566320207303215154255202376071080886478147988285055591481504200219582111395632628618242736662422414077760921725494378432646003230360676299079663791323696178357893365837047403730385530804097613516834735737397558189780088842509555628297372832216964526942287948141043132510898569321146656502782752298506624573507907815491775865229216890989956743614063840571348212071220441821456770146762865725556380784589130286985677060713215706409521835725428055077862432836190611617304241550648586957450106624393552196492425221535149915270795598323835559975979668141141155693426469384469820190373000887082470898652102879407604914350234954297695711692929365435601776479381416529347858005713605786107429173222057148157077617141349220281830930578028389611163421424528014508136048555197770401263705254110660578380224819651621300348611426835225227196365749249407323327032445113293525632887194287571489015291794186789802731774426928145259588550910992728072790081572548309948943580783166988132310833230598660263283603927935792707891758036797316145977162894531396576447351989135243521375116525805822597801192090690642098824778483565232722172666016337282132866454951661321947061768715615396136150980327511441020996486379811032405571924373985414421483593522848602615088767650680257738695717631408161906883886916522010760822978349091386990194136253256418407945411180756620124283373612728347323769159726241690051602583007122372692873102341682840084842135986832967231167426860334152917323764850521710192876433190854905173287868928829591719197979645096271278902802162428133719943889988440492291312078627584193079644160494923929685104537444654332506338951171642667397070034609888734972324025791949150098270776458207818054765511776944176510406317514193493765260135050252678195148930265362051190394653223076435397856004221123006119692158440497982185656405013447888867453369114111936600484036262287022007839932762767972958846652868966079121983618059527543392136022298146773533541578355675875672738263275327996779561161600804953969245618761277028236535284536968755078201321060700537894977806677129353536176443996232047242782792481584869480731701905217685668240853035724751188895401075651956147379375490538312468273473932683981893411959863853974815664568885340356715754463654544607933382473860672939487258856450421322968381663516811869131655262208611577427856833905032360372028549538106196434764988562550892107300945503713898005699895820401697514267785937398342125751702720906124091230887810314742982213433216031902077121415779595923579183403694234833070620251689790786032315178007117481398195023413327096211486269151591011650075040616032725271015776893210855286602495082028836207200894987980813389460743989589249664181233673611654119562084947898502608404710233722958520082329668406086349690428877110839721041758701694738141465371652804380268527345517690660278237039855826707063413598961828449426109202886089493220140962742365578772525205096651128852659955773066087228845145285934324121626373896873066673477210698320427443847802429261523538780665874102969946340268938962471484710923682667373077857880282388505926849035352584317752134802223265230609986334667295192177560993421404093642385195642173670717101478964742213951900190699584164255576285737250079612919206234100490678938682476053061184973347585379666093710832020021589712270764805751600555372949181247960640346252508835322146285267668374856953185815356914797962627337349225621347394757148860710711622096997448006085778079519773231424701317930153444114620870811300980926895361764279839529317864616650055729902311004326016142201763652959203021831354850485735027189798544107570262338849997569905815714392616523198996687037449683753064655125813494533331563585868529925171229834374287038861295244930332301906067153380122128120005440122950413263718750974462977961074326643461592082707315801173618088676872432433482224088455379615566420714269177292672486795357663190130076438163445935738081083308027532505091147225309285385897178851786119511989757635869242737862325412718999105346554624509981459447952868646831055241678868635583133890850907531162676961264981838724491807239951543831507750041149937092664277774654940086107781569593653215188878587194175905173121745966516975833691272313027496747666075060186344190491440953063150537221082005522516590129514788163625168809500748982035866501618216532409509022737680058654066835382767981550119858937219139691334735944572156808077028742181202669845937465540025502964071747493100038491811730870170483839907728155396991520280412490307273598592375913006234064759835687041972086376655141172778770014119617292286730737806358283767354463681592121282079359795099186150362004320619548976884754008669115344628964133483464850121864519141122222389253516905717363499134244658178877835076721174832147780654420813898527161565990475870182295038689354494411506474583957834695583069928183250036539463482020425222669775546828933751929697923157166483242410319352106163054007329635525832294283103272348206574752424642159604024932291474788925849098589116963569687856025432766452206790563540145529760234000543954635000111424244820709944103208241411461763065247783458182818829621519557570093818896496724641143027484441595472117632018722051890361069489554334547434290374286516645988764334963281578381753249078394413089215476860490583073839773754804876451256644020844822259836821235737508443949514306508250029032856679567163534172854371348332004171239384809095138411370256933402624761085567383307578663478331635681400484950826302634995249735956946279990492686668407951084692641768171047284479689122436289166773334438887295332841901114631811141017067809025201421813138887538024555440374285573267423779725350997976512592056179733783525873308689416622171127264297540069338113072096955682954200825897440644228024880464961219523481182258362740696308433155703709108444009429619229754710761997519896364257373213188972382369563168854773980837757329685111709397428404823703814389137929860471630432386585866175407498492087859074195489463812757561096589836147488952559458554659595186499739205570427761909441552948787649532732056546899352099137829113301780340621509201684979189981602171353461350061070707536530037325680679365485524020254194002391035032149618145318302204445568726873318947485040280887974940998726810676235820162068083120399153236283977840942750409887436601530837070866200782959167312509355784976299107563079835362644274662828042822064771468747640962622615668951863631397082796046379668591898616314095323126935509982969245400124071932744129741869541826150769160101641701092292536606272954179654915071114799000244105830441773979600251018741567645590743124979462351566705408027853652048590938991837537936963891938414156887733979037286429935866422036730274129420276335058813136259420302894335394856747046711040162182829119917166650779209539954707142747120523887526829572754735662262520487544947648655112463387658106706558024188337471468190191207207587960863056620893869662895772923697230971188635372048880106602359978840737724126766763386702034868889047091928381828938474796906207362353041707446098154331861243103734336071171012112049609572621399490640075850905760811228311219697886613658563799726165136152297588896367015425416839619362415521854875106605697263637523314032670014096399344499312313078731376010562020686832596383138206048035586138956716878539177164829499964388129725916940022265866093942575647310845772938905380164037679755574330253323704585712764029279486985668784313896290100731733177051851328801483242154631290991629087323942359984380502181334349689045689980279457866647181265362289853155634921408122765596891638040906157042111387566004948826189362729593632809646289261636452485167915555152301460067692717944629313090431282922209548478666726963884101554325816719711361863445545834450892445574433531400272166277791953053637360196140978989627612392555703075555489808924698301426356154942590685729375033875523334005969858042580349572929957515226887665287403113825102146423182760645344140410986708508273721245122991188695789925109271899239223980703465619444427227299695497562145263088699379126238365108496216413159536543979979104506807122015645790875523288242281643389104403312850751606861391910362205575051459957513480336586539544770180684693386780379392607529701614958081183952969539750051067787316542700829325655112447826038297963939516818321807404941135218393128771004499224700751643479968481662992899718080492782389014892749477826240114568327152980441878876015774587358299574427551814580522652810374905065542074216475358841458600239935073034816353937942695328070256777151794577976243631870042614254856311767337393895411295805953282554177535006300524170706412446115804058864513631163496830755893861084926319361081359576061652094713538755565955021446435851662878908423657606890301996373671468865209317307912507113670694906018317714116899536709634821190509687464899662246678782126416361513757407968953305568686752648826118045570098761045941258433973900175838511673160553527267323438824521797911274530674959984554027831277759917150486279305624076101324108830380975468378606127556348761157787694515591724744461960333448661063310079217076973291377912234918369607015350122934420156195828525299058153336552996422605139077362825318254557752065371308705073491985182208761193906494392128945196488350888116033326633990857614829054750996248807126371078898255603144938373666383260110789589193773663500427186758311737630419928137027398635646120535403345570082188730616764239183022714816529270578959516725027348243002419498919763780604767412196547395262794014251490901120941242108314379304776134161979370690126235316197053421518774667938872838185178238674336257245877323014604191810108266359019319505965756215020603548768416008138636028677047509643930349283904627750209420189516407587920660922069596541113522773311931644391435282207289997933711710029752134948112030045815351910672537102117835151217595035444557515779676358711233379061695874187218760010589895168493310818903088068680653639752331527900834416370494592423690802027256591820839928934492598695647584901455823047129405965766641109990508905691728255694092006916359394531403259498073601213429866010150420618131465986772214095250497314505954111212956105549547620233341883047782799328820121530902943401597583855943242686022886466523169638490458755862256673545857741304403383374328777775910836258997837794163519202656638152915893196160525876037934058284829828389506874250087686806466734652668631117988297361518146979051735252429341013851412186326237618231464719897561567509730011627141232380059055836028509335534662306771541514228718560656350681779318494931379687869185093214205581035414657652230097242167253260994811989106911811120921387695764842799662151626972069651957820039980780759034874196991328934835101600121804824361038402386551444124151122398010646829153605648868386057295453572372452252386771182664852597192218113899921170096697214320574346417355717902827924793531882010642667846929861288704442062879131030794138367114564739601463410924451871985239728965654359629160648242019722082682937152087328293959456612020209966971115803823776420292283690647216970185876915309386987967165833605874248868521992798189503387446329702880905573213498429323762512874598702850225362691846909177841659691347000991181997891024717728766607319964227498605833953282126205487089841120056086904220821855319522209864269686783995522119100603784182368841501311150985356153090096187095843449166034942487247542562088995306128504837917921396082903478658275284268045572300886849238150690921924062350087752812186086836640073455076931158382680720664705112121394515082340295877291864624876208928260168905833847951467932041484892252966568378545413231910396232697296662965282141026547990480164206949382440977575540264154864983704798564572637673446479949517864545238038190134761894109500635568806113149087840546792352819939857891770052539426716910331489087811916224198309917196804834303633017134678006283552364528989761698474100025515728711381930339205518876134523975495842548503635154390774054296640036551632388408808521261871044074502416353852207757191409323962058901722818401657180299360103011518064960632235312911629048243018505856835410728037824501718490006624349473569760163306581103688321962514805577137347238907052073582284486035996941192923062076376811389592456520732747748005061957196660462000060572948890468182792646063944089870591577562876196049460125400070368757376029966278652857019470448801184402202238178259349088358098000508178785766950521820564739952167516657041855030182242256620554467396507194588738463247115999519133637846758242934263968485608715251856870959330175338437051888236485636463031388534887669847621846223486648940014547077925994249052182478913541813685696640154128569521541953980282204193063374658052454689934911651959230760357845655605391851983886361210685467521467099273553337037288827788638759206289374527601378297683040979523404162892408148825641914589221580306433744875265644107699838424858778724833225425324784940418229186980539899415883936594645795926114375543075805271810086055773715642783738126361349920163488264407750468293938813944954331993364440404618838947276603262601116283171528363077375477448707263876698509935185874918545286186502293866520683004714530366079813395228377117132105048729112942808788741204544958578045856261922213462201733931705998349476318712807940309240651490057330037778373328093313844385219622658467280999014727914761042627796365642834190050600476735004236319107650627384490417157478569440954880124944407414583874546408161334725043629121527337128000342631454374779571854136557114533695440542358981981338633681748372538255431070715566102712648434862471929820861646744811189904379880936021651092037200755521534214708804108249718713282626665226346968528663125308432081566844171428430812594908950628880272575178982148970656838414261024907020141346478789649903163193831261456961045913784815756357624830373875427984421791837747208242125305587213447950431532523849739881263638967537635296988641045003858263077141965494541627550192504415864129226911331367584379723396783148384499703520221021866333582947006820563881658592266472276844110988571725830705068010071212483240862165362332000237168901519787041546754643083276606212550299884776051731302362923195709883978679671130550472514999589714366156689600460577566428916666315179653653656777090165010334830322028091989271786729906549114785940977696063793412811296432527602126509967338900606995747566118200685566198055290606247223973697552075466189213758971030558991715566381584509750830456362279258393390679251000679781420923623114040082466289731909542780380670056339853946325441959593533937031794414740917801569547830277920923198646301441898025776790262939989431991476248864716016777534739868078142356086787894052031891536857281056300164677729342138128534208795380378595711470206987417488644410413286041738977619440803083954536685156446068500155185335592450397634629551427449047480978545881741249620205351729650723846224560007407000588603597708817099696684218853360239796933345262979664134072113415814373324509334845878816331490393992679427418617168891662655509505126312805165548354686720258301730982055686448332890216198581550116904431943286465031759096756285196719346659016852706732246206446527638736462368879453105639540564509418145402836554239016332390865426196701192516010735034599987253000722884499506257962708909857532407328953522153485382407338095756531900775705075822901717288002222029448383419523556578891114436711470279981294123822919568215892276978385589059864612981299473832147964156452752150355058896042466489346277386505573012482287041748812769577205159981868612187143781615609328744679930623105927834656026799387702569337420261396389249544415624029828267855078099842216304949980256186712329874074353702155023271315332664833911285865088842889665503601482730595324246116910528870028268845094582957542344437572948989921168111795555215660983891676600461098346090513687200598126288932520472222152794922709695510713619379683078864482661955294799590671186055654224918024245913121020621045358255543394528983301775346796534536940978079593798092638140108512472251086378916023246585598220942087291610426241177756935275612442511825795836111480402512964474181164398279578587998226619944123078127614711150589246592481956814116792064952951811063733090380369281683602886184521582217811153659415662569700896137070891245625963270127047912295343813512302786547996641991042650528654716442656026371961557263926016122326525763588588447488348174033966725045244463035263580897832287710632451661287639306023340662000888122486909288762477621847088280262297499288627565535641456871935365178488633152329143294056085621159019519291661498094294117569010355055890360651176464276482831873475205019351391602547725090331277868359761192155001082482657931432748402965841299058511250780246280561797520868088028050467056816409204809164735049010547809052708911435120183507888174215171217501752014200934583854595671948471519473227561336833442493414075384318960720278068634325093425288029353914771099191216819884427938605977815511163096659028868931298644396219983852229890863681456857438878682025855432244549794697470525144903161669706899352235926252970763632570005522662068955621800258457712120892145372995561503608738456313205930624686104543527796792754787026354576250763874194901389397882717024963861186535830340551128662071737591415821966917915892392961652359536460641406682641917807066894906172143695315207387684592500581323401623106300095809564332332916355393153644437919373605810994746708306157177906571138174264122128264592114886009743651911921409872589290004029150768469192654429940498341815044160937633392790028658852072799094796220018743330086517157305090386718243972493074764743527721895229026256739140209121916499497127240202732423105614872154912811628776003934729923578663998227410392937416642570805122205523134350268757862795645051184421675508655765248765738982238315513676684638322336298548822233819146582712190432791804436974645319695625664140084412517921421628343608930396299820512783609584895121207914722433203437523753689987744343236208442927149233516314952453640993700594715563877284395728151844836253824983924624579041376877377858669892894683884687410918153644925064383980940053884172683471809271437365447520389119554152463004790117791447196456888619024154989251506780007785350515112698949249601389967324370514432978317071505285239314735797245854496311526316526532592381470196383330392971430291134636907618502729372130063000986311657717650310153589614730216348467712878810909460867242658352196797348962812619730721358322100512249864692751442727609836524544920794337653380804764328168101044938258141639982391828358981034300035923198318730541417822662525540808851523720447480176816402236930027659921914106999075454395270001059178337384887709400305450940291821749852691559456988020099600156429586012767304536785487932017229339522943644319554539195398138929894306084012637128040366200536510830615210596940146776352075382627543051632289338890775540390586022307051532203955975684541969784792966428353854470435443021085726455985958665442353581825888458499863766626223965739748914637116782050761189754846436449648525612277435683677568978434752952539133636238232420983792086314303078527361270301992699713582313079436747691730552712517075756841214127636332427722940966168077320414066746872426003514807570426528383285875521369058637907527735477568836146617418042140810342933798565535626607167429135494893869458965147268600563350647913399044215513351206376771543932143771020967833548827223625630171490796389843216512691876845163935919320631924608205735581209416721516171604445746955679499126233019978637806443995453840224435762277146271828342211172068990387567800815753445745414155387245154880703962424603254382668328480584996466331719597021124241918696303508309662948682157245840107235523596186370455414122286472385920526701080008743021224115621540418007434191763515562310533970197064083949638576599541127898032796147090469836306862982801338028409741752912482669325119775175235880577555694067377489362691301311547597514143667883678899490368732947784517461122545664699029824145751615827091040096435962344496872818405393230823177200313455651510832260029792970211246569942553520236721748899727113399384938215160374937739315242707179252518000770534505486625906039399833324666144947287948579454950704299591806708614368742208964139925788977148833454457127981480826456209097045442269475428377720956527998363159930262734457445948936729224766358217103612949796183271608079228584116547647462574392576287352983267426623424924226465565972982949979809015833934577405073891032650856650613327182942480989096724865606082396126036105509929502956789525999554234524489133060846635489857342740152668469724157374446346801134029674770693806626009017687221469311786774983287527355930290740620670840936522938679983240697915835540067356067107179597140682552794566715153749052883081962386932631632137823076663849041697020146430156122865192763618458223243270794383866001608481768570088803467448267828153867697091441151991075909363058610596633528853285881251562630522334549174129329078483236519398060128360187496210399965795997904856908079866311005896714255416709898377498802128020793378536370321503072364673111051473689376377844662060815650314012010050936717140443602560774111402424012711229946062133315339544554473235787105517612997788424760115742491787737035331063214034744406630475783431882294432683863793631234094072875378873177896069925788230981224556981228457092607874521330913730594864915239163874315137181953658038775139749037167791118013550454138755323194751348282080867273788840340240016962026815744897481557006933973609354053052405809215593383505456619771190441203687342070389922399482045544734384879517077708014349806886435870041365226814054089847130193208160532703889981138358902293491227235841014978087551326500200644054772200100252448300684785687871119328704349366669348589776680208428566544564700819142669600958556447897233047935244696049251725025818396202519471013289926082648587426092550656623100303958502431394749070101549714970584876362143229223396336320010040259227571401021018308121134428880407783967517390987527567985968570438629252928647631988938859014449988131685670490600954393481794754108537195790564245028562037582315854141468778746928473059710798498297213020514552559062051130988774899983589262314834849669585575219958917771441664500562482329474680086105021111394035467426580672113932453141543575400822625466320641316606519902785290734547934983457297995681522985198225758807019535154076995418749107638438098163743758080417280492214468756779212130842891565251252183720217504523959876871171414321202096310452744105366614535915107347640741266024704925272373739058426546547765726222137648730861354353452920749129148721661324376733238482374314190203372560216798566680537575194860437033370383555864323715693081363400782424764759316746082619260534875664484483397588873302636340305992311615332508350655493459893203351382793187513643669590469292547276085709799412902950033600941338161731953616752955754080375966123822395210100629026607016539867400814333362375173867938957732492124949425912356989566861044654326998545504774217107863502229949196948195087573773855770937772870691928779503628521134791430881278467998635783815456668727799329223515758663692014029485192890649045706003719960025209357625930165333253823933001820399600831450437944918134027747136399824957190264750203362584952617215688568592802047371443031041069508908582962683421986404292382847652572849405460732570582001844309218534300242226070395127057241878166634424653148147140773533131292884638606807646370930497610660402548941696388536142607396848972934662700646150156976127670501004191993098360000138757278286367675666641709434157193368863389591171097269787415949268969349663814146440663598065032893314807259072180282751868871115374194602487478215527303721036961415350835231882291216905521956869541212309227201391231571353055408854572254002879530039976239791493800470567958168497544552800722281874212274331275514967050658814866106361939984723787929549078086312675011735284632164041262157893372882486150368584429958513800934291550973532844011116674156320725068361033931771353209207469944682177311456096613780594132143500238225213590599674681909799505386713987186411642100703300240525515568563871615311631692657559316236721940259417515618301009074900848198008428585754592383565236970477824336922699940322337110281247970908730202652163779240366840751325135652578971837406882887988102555563809477671916926435194901942118292567176895303052665074312326169501626648739069734587165241227560864623087518985652714451429185067800382470903380606250513639739332175090747106375888137210554079916804116624016078171357655037875244455133414685735105225188577909835519689453813044690010979670829266353415637537600064241742721645336541752355392758085048738192393829225102916506558362058828610613690073718884841606822024783227371968001698519277691289618355045115218015139769172594550801101584198073819258190686724898291956447066910795929794645692125392549388422667480626582011768679558937534524211689868867549805266479864681449332279645061802586510627005046004386148048071241987399692470738402078709361024967041934941560435792211185691171733326109035467911214643573734826288001250754612254991139636302544776631979963770070416458577036123172271902071984000471545806196205513844966284815773595816210365486222151970453258801569049846433604461855833061868828517999664121858023979113956204133490441338816602179927015624084117403979434409366163526388052517175684015249148029148596452557335423764088451930386982276820392237286853078944721685132368435112043788095939110796609097008130849549425339496244096527872349916671387742282284827071927958132792511030850603116991604730183527468268257412895235470755756690457329698807808850221553309382334117937795926009272113735599529497771990773181918440930970535174417859931201861768754395030077112720301279066031656289755134526592632482309858712959977524461779648843976418556609591921962798851863994697608788491019949921784408375079825543059483672263501185254713297605636363602482972942870910710336556212975379010630193103168757663688320651223571110222716279199906744941300205536004736733944943901422431307224789317694260545225933782365743410052552104544328894517255368391385156921887917044667776590696093046917102384150039074195019205985712983247260639381976699500578486468711703610436058753167137127230577962000889690637373062084132325058663557866665124563023383043769890105828916931342269508564058828101077338087909605128506897061573530421371825770439863947791613420232194312403500081194351224542789785062772237296501044707356383305541573317240004954482785209052267370052016875354041009754629971813239277070186278457394401389865523494124663957708648499093817123004612124937044923979526337699892157875731513067189141170670966735306627659282988866081708448981862021186441504249351217263473668381901025435642197834816921634483557768803121386521102149925841197906801159143569069013201638298809220871577106241305389799045925492969211843999411718309697478122122373192822868237098149978751628630677034158079147934912519195229761861222179960484452184780821354282257798274807089633675873969440128687892296550461666744764950099450793199228570748749099264751435192419120310108794912830658749274130488131401911190651214505279564162758850694524998091787602002036277439675896736225149304730901384980363664118709259792045924003306049864174636778608226766624025849695117806794649582114282350664499125297566279904195604284752809708804693567746695840013141728056724483317633107369554110198835728834037503935153881254866430531814988275256000822158461279293088294595983451978085560395086894876041140810084038071267229046940520459429204654684048166252575328051108862533773747861347545066729142171730899185529136347800682540764607517508866535921891833168590218129374789624659193049954632655911721618107453056393438704100024211647353022834799976163018020038956040773864976529193429567410013398199328307568928098957998075784492767643892213120582590804507077859344457282546121220918709190309838638368797063016423431088431403342341765125846632066334871880565796381388396053487978271824372490115315966342566094691435669912962234471119041827449732100201791552057021133301605271183350763211413741253295639609497610508321580441232595920059584235163112310097403504716557253605024287140780039963528284401365702674544683695787065940102880698765570494608650434881714911651818777911671555895556319272228221023586019669145277784876046397069767387541911065938930856251430578977775907592843569657355731548890673674629004600104683775840627514070522049731002698409689449107649586997337312417884517583206028413256512885321155981699743077864181718011722043062439367100583127165879895688674764899897677446120738613905670770170242424152344475143108668002020142706432218988706515086784390315034442939109199714658502479357204431012186871268437244309374435333557140112852616215627604199711376875465611316348083379263789334082073547584076313607048296495223533970281934884821932231276527032170042970004735865219776537153968474259885939460787350385285293862734723215692008553969888831475057242593220503679623054655030277921282728098942206303127480374217140867491820564455085690033766300089440968850393309328682192793605857390346749389220762140286695123599159464881851236597377541689630376418289844262463915225939378703644309990880244682036516277524335219511120866406562263078140395711360186767169014282068300689872945881060557277250405328467171658210734777564640479565838526886592467533686976324751904328281225058759238733922006429963195256018215952555459599465947351963743360491933532959651422497516450427385334541326622120440204636633947213213992865722654457648895041062278138063371925027292722933169089392099330165260162107493173743434855126137351262302213622675307623192063832262480267324246589722878265695867024297415512957917872134984795527029139281560938169452483922047789844916009331166867223095837008673006719868835007064186865933715142508361291305181038294151651118509028969866724333725247193683143304772095715377257252792233194971932766018462335328283937624172049019231557273400419928364343638081019968236527021532286619513230474787577992476151016119211670904680298017671348459034922432203054384875644607289378641428556722698953630091583258430883888585166897026346093884255140595799129287199767161056670993278125022399058905968674799491616538622717928973633674762311663526890422454898378387567642725531541031072820665761060189768721441743855723871264158734262097505562983222653763747292093549199141103135025865579111269674396152903805249596232480969836111977878714871153385492839392102168790345065480356670588499154350554554528436963458568436451020378091057336827680977385725713797653237785758230582413957784394815578675220326508287739717403193382414541887956080317394564656871240360947256873942222686824171583385021697720327902678675013480072029362717729003687321992216301495097052008306152646002184504452772767048306111128987146878789796823025406050292527554075058798743052792428949560434498369723115466988612750990072015231165440659939542831995745131799547130763860888940055177893527042321798577816278136889925766091547476317807611962815201565797164495188315357668098074127118996617387527739946102748607924497559402189798484558584451759118840506293401142518924385117047911655076167564409202809963066898793029997141818255170040306431082954232528329634931130706151348654999715841017072280308579251012283113773283985286393386068532816654360992118873321055229277218754234172737926096537308517421470933057703546525327745052067111156893121573605634814605971983422417296556879122100515787265312724811852190734070687297508072693839829266139342564184555031676220538164972662945866365273295668105348107023413831178912665420889876656056698245993573211466044933033915683178763525548253661248277913417766180959252930362757483916921740177997876254070237124590231034629292084956948351918237722439092763013923075784980568833530422025993454334457742252885840711990920199210940308295622427812666300438490791365610821398751133940431710713521038052309782540674281143477505910552896753822103783934127827505670673491890874323260342828709655204009524983937947110085485732830041862657405032600211316084064565245604046119062322684688556316806988226856617946772957007845139668493187595000196500126645582761101238936201156744515778724768907103114405005658838027296417735620042140305318685125385241779722755850763126916288748098883845928934440724597015570447233110320111164969415312248026390047900478733159051355040649612917146518656591787365752973561934416816836247121755850320904111336579871926781877390461043580393089421483384683112080190302458165441148041189944352828900927627782012729711787695724860724071739109478933553853803193568264541942611002510699087776760838114158803024364744492977629267032783484589904838306980751301233836025632925156009750335370906087581048326056169347919485487193194610204539874630397147957577575310956651535662570472120852189084822628303199202892412063621618018726174092967919940599051250611493818580509990846387604334660284597703941714545758464590119421780185059997191269588613846731128764658533019125530669521356286406447715064017315333758561742994913888313913945151780416061807228914291154894452090255975505315264613534093334000024528743141393787051013470962718692857061279046934845468612740093664353148610197155982698381334471303011113406064069650642465670465969567171888684195677904611975173466330562865479098413953531072301652673579681944642680009941749436151589783678706533724403153022461800389606620183023692301237412812766209699172003956800205374898805057613730933683931138209201364405795888317650778524282943075187329954869629915729501445220403266574885102399347165122578552038264369557257953266145846949785641426258447290713456141922509807333687999952343790188057169945578108726375325247690817248343595828293409494562403327153952031557357430141613487910866710745278329371718256447926104320485805984624156209930698198349120894130248346370172954885537078040376497822423343496487922258447470890214506917987191704563752319286143611424656761957055736405761967586243555491774139285834168818772102179904836654557503573138585582836726737512324822652957443551076926152515054901192673018566012676058405779816547374050194066634837592415853667125092773225814564575593029399650994792889678450456844018465806554774081235009250295393244764816309313732239326253329112551367899042682955471465179055851797165401250226774106785316117342901090766776149920682162484868119133006773086946207582208786926495712460263346141095947091137121499395365653361608515329786738879711421443982946008595520617789145202900716096484710060482694213907741907609658522738656365249248554978575272980993929226509384021720379649174400736218883021523652641161998020009508691394799485428493009084713877839243319624580930624167029897186351082507340136090363608147915610237721383473069959658384344073639558159904494353647536292193984883952684672923831881407552350959749580224761449011306350034299167501173147182640266288999900705442330910947625722081603896365034188109509354671575074214190382051801966010209543513659096612049561249980679424593053344194116202850378463212036166777664432601020132629972115902484351169574419978371461798598117667595489842976469686992501098136388329063296254266404585514918248412282814098562857279029983080326194491486310747350641916431065139244498494252821009440425940517310106058032064076434007174422565634692658021724159439044789044692832195305129221449508831716188711287932978941670220354759961067706536505671445264374693343614849261532469346505450911771059494693754863773134574775467535933170558100737314543138770657564090089878038493129012653784906385629773789069727662057698289782300610642335339509655077222942864359342779918775513198900152969353167787650112526042505767439113738688709035324075298984710263407491847729048953039653594756229815841081332832676837352465863021920599622787349138102911785906927949505858963121661672560459298028090335090377639561323152820839340053957547720035216537168669749544292706331236950742864691023999549164215544927200886462803679621160862509547735431793411063234376870960666978492856761488171510245322772867600526030223663621975077763865503132552696575800919947530873537671765837678229159604996256615859086712943513683711039892880969048777481006649812267190020828402955549999508173061203698141183046500879063116893427039768333861335794978021922934841381111516258074903510797608347137783169351431785004525211165054431194895197936403092641780154897526868179384915282604180718048397453291574077085362682800613521403574389466192603958932395756940672831200035004806046482316672172202055996071453857926941711453067090842268140873897829116126959341022137601939828930444293284972021497964019177924581566684781332654937117146303436447199658102128488820681977567935834811979331699949198428228848830559870283921001485145093937967081705075804189625900787647786210637317054935142918164899200763237932518984716098288602687328113139840867509233464041846105157995038945898540203141735444030600970977906274050512122993983619526056329033795317196225297990208343002876882217038087695188254375520003703251612537161990635284465362009246053879314155988261522100814197376970255032398336195890683757457856354984873962496623017594693362317760055745703184587595083141155352591390103299345958672152578405282777021959177527782779034843869396444938340411156577460007329236256938083329678343231604903692103113419123689026589401199320149816798376936443046887351993785987580265951041624771792651568249290586540968672476955344285442817054048013748031036522759060178138684498949187789658548224378769797102395520343097397589643832047589324983610431934527175188056533649666532689903883280035015339352608505260877276252068370837842998486643703275498470656862275814282910985985881652082547607774664588058892695709476231610881742187783467217056625363128564379683700112714690218276035435726497794855089571263337141395247500959499950052960403062033576858482937146051919950138095171377297450773691314395830092342004101247738820831298789711636934059847302850251467354928071155191272102006436666117646246016236684771718337447887156280449117699372669264411894588330466355423588881246283868547862862617089345998559006645734317314376604351392866003139619123544238917959209433586810819456504375592013580483797850338271360180174828933580293291942940469193963902790219280901057972382237868921462727812347346695639007520570589229367849332819817054930931033565314137918365398822816692017974082120188791595669061685961669752798728956868493891698120540550076859407133511959748058267630871463947805423098939018266054586307276316325803349835891379985933177169706288205022059703252917201257682998728006960336417048986839515430986865158666598534343803496878400876163411797676609894581859624453782522591796541523165465281168745397232121725104931548433613324004756110220791181366545693986152104058246748760098512958230597251185053720238517846785882284938635775909636803154157113226243487768385392611711871217863829501616899767727128172025227517167481422444056737270775775545124206513345063340160646030411310372877815209706945944022279669956469663949656118628125292475865998743295217770108035986412868042757762349336142759297204454685530798255861498210813198323552154144790060166250443521979954110382767613963930372147765178367607777725371915445119685879957163115360231661376032654409279612849499501862631033464431653574764005737686013272125308448550658036294339487015580928696783844266447758122324496093050788064549012155929166415940701578334817425615284846285296040156870060762812972254988936288702508846013517151339233396384358518900401702581915724686078254495573539991478952167385528804365351297395117833501128679553042691604740419273558741434571811029779048163397684433831936148549283600822052622219336958887434468073988749295546236657859194296972965935649446062819895800401442486637702099157296685430458349925346647049850472934054025875015915393056997436124506464053504624193602616451079036024686947300255114337449730759371206846018358853965917348179198944127392465659490847918368626332110004831157504750867924195228856109714166531877475912608063406795459087145081833622053266625788406756164908841661333047874965972299014021313592823199795021733404479503992614967860928382194666946698485991942947313861147100221631294821983905888162503412581597716381403938865721683322756550773019831580466071330754815340323334821780941639463777933282249512381848175258732851471715686677379509804141449116147242243902066349599231978998774875785633966775310718450357504886454280517831881430660384290936358941427073126125211011615013237406797869695955362604513923037008230139074198138353654242466606411579483151331452976057178915852890977881520032434636801717813862542764869061717131592803966633494403019357853135832425049033597322454568482067548789547391628187591026697573859581051049196072878261518569821583709843411195712653909379496417892504755024462160411478870344959657707945177366418411268349938757074929174943759907285316405355168041175441598291209908301192079446029153645053651742860489786313191641921527486214507799241907238257141896186651671706288943683606673611124615551384884553113989591474609890163191914295576126317907306485010702060801978280754706438556970071442797333376136397165614894387699311709177161386989070616915685882803218243342743287280524789218175912892330405496183111517866988784633405036287979161240401629261477763900335350625931989700873473865272363560405418966723802098039761153553377304024374896977967933828124147818810402902103433693171554125112410287592670169778546696150051457271083811820459510472014872565998839767513863048630366402808255425177971476510454991761074251832255084633955543597610944796232040138535537727802754517067010222096929201319799110162819809080106357733462705713513691312735375768316279656402305366046677969377213204150548636866911374595013669594095101372295441724508072423593755949851651079680604389368653078670056303267413576416686955866234417524404483835538200475367162749501159818012936344568731113314839955803697282693314029245125184044229978442678368086393559576918168253621911026933785927912530130240932366843884817978526760414370762257357366086015667245960427103436162694558052979875478723746795682856287070050851511053999428245383950888976903675436025642033817339325646921003355277615088580213569108613497489417556590318960814067966279778266876200075309237950787428252228200902220804711932737516688409151247162784297820720130855969606255694025083443329184437595814251033359979233729076798553727540270497958090152524858689836452005121031127740827333430357768765998080422806075155373289019000327990194773510475284765408494949632549364974151917872030340755020802878598976018746909058353840501495322448857122393407223141267489540605998515380035301345643012343892001866205906430102220413272201558912401320715617176436076852068485248507393552053937368703962838206490679387764831797806735630393002745365084536801932752879810928572992254792607252192499304917283945576818952003031028596803077387380610529543278307649435160926906752182977265203196174385035843931448474403212520405183310844193971024735003552862373651231320883662235810559753241194416259670918827102666946578313856087092665375008046175244919410159442664141292303678237993284415563524087512232732513657969298871773252268579790873527364149290184503039333034776223391520631712069649107531270700725861965217490176376825144203864761949514833814510297363723882364189869358374270091686285469732658701098054259565877746472690578450052007286657335005760685384527634203214785990274732514038019652289930977995768205633113326764101360237489506894918208940376360206096413647894354565265589118383874034529464345756763881615052707607121468036291641882022693753258276215321663929617380747092521819712454425464669450200129365678041746104642101579964660606099145240534261502230057168625180715156275217506166530059182683223120517342401999705791627695878052752778677149661881467058169331068933274318915744014890964969317907931646546040129955119742381269955727827237931375835893505732527078457017851592563875955774922923012335656239052661500888314343691039447538297178700285380396924911060177800362624428566562399329704413235099485249352085867955557725921657024697202252601079237011824773773968804799641417177244746517943141973032304497751813345924344250819430577172315218438735950735696753209327883534892240533934176419051112966011658107285836394550337412838496276846428447532446479392395655902989631985404287098942458604826667125872921804043519443785345706167566607635942312688390499165514704471030532060666877570493784781076943669239026139685524634048651021699181937784681946404072239172761900612787404351494073667041190225815554690831258320963469003580345543661803456437578115511146206189949847147193248573405118261331661684158244115268424149196278660792512714226234730131034508148444646348564961366258533985333384177144912952575780017726171250450349121747031442935965372200641645091641017178394917204838550068801723958759148774773761806625347918303610258111548833554649067591271788089963892704859147135801108284518205018514315514854199083363583968185490121132062807080524353644772896181943889343118744156117289760886722424020662839006947004835006472168993866680890924617632779332307064585923556282773210662954668041978798036343309335300569770158166090386056591475608091414495336985774172649733457383039942207724049805641272007917097470508614572713975851715753339980835003014221098846469245015358163127054336242808126977293296881100529893166918535114766217692937544606852776603686661639842686702234059962399366846567238678267615678175016634890220628815682866299416277575412657489532720049784546056073574675889236985804925197127818899401294778902995976170338392821039712249553461619296730649266942781380202071414848407372103592602717907469624148407648926206806068895678018316956315587772845693723275594552378475351234953255825988958582019055303305595620558080754743050034118488653395037272282421028896015744778066939006636142242164206659293341159971818331747243615929709009849890536260092442267165124787289170705058773231813197639787730296343166226442860326456202449526613546430075260896707112200882665077182655737504493524126441933928435873019342497897353809906449753996165684663173985014098482709506925784817471203031508978592364249032084313605275695190273119769168773535660250568416539039898878690911911699274030700920007432962914361448281583190639003384958573266707679798423871430775845143300635450456877683430602088072799845901358753559719151406558672163351789401457441761003439009525803747921846277820219394526578596435099746492803749787139333135682769158994582145829461786138404790993920484365912943021172526030706208894966036226203145079058174676501807672079800223018478310612010499517930739538166655473087725982341795652734415398598837857289151014893723388893459165239639816674982235222658332738715680792486059572050806234828301162594007373872649042245149302099425600369611926971688695784691281130932158617703722169277682619342178598625534396950417322161184888133429585654116743912064116005215203203500714767575959421980819017589154578250812384880562455006106047723548917582759257212465016625110324235264344114811621742567832779454253261127677162461533150339870947607653003105349232637198716313121395223100723118532937991336975423729791572866186462245784305293464149426622070984152149589113889824553255660685518991833562041159550570650320373676831668960086207577806560430001877759049314713482118434472509233884488236766017339071747848156171685685015994381184213704663860758630984632535848326220275824272052727418888801176894190126624858778466843498311050672805257419856073896173397232800726773625911280336695896707833305368639425148609860558224313849354183483652253210813421750013403797626280160222298404789303566184916579189040806203638906274708871567408425470440887038016749710887620352028284527200126264142229220739600861846596760038317591729724511485147444787663920546941070301444985359479875771093511433493331385857083244383953286443538199751960063161050431813066828138094756461050440889424614717300882140539051782114661731455339925182492066810421026457479131576547445369228978028000094552682812484639765037664885763470971408820133068891011222157579505437222026012857485786463946720725729394048757902497374740078520170149356356790288373604785141266713231418850379556223995784235750378699146913699389791133868542025878727945796351488841303126934768549133637371677126109362348252001708493588035402084374611151867766001907373849117524317422889734560484861171558423778258722324261274236027823164413954843942062905771449732832654700926251868625167585175679487108998672025005949130115721426901812816963811069778344663725198166447605311464356585795869536971891516774961439876479507754244981376742319410291202818042305729434069415469762413462391759898593838556729812885929273040167538791908509690310197261864315640119890039561438323949198373398439676646852245416089471123619498421464990181626709279484977668404115481391705845481711926724643506326957938817013442002413509083262201572269852712552494599593046377029778936685160259778139753531743909280735450279524838459860013076410983186778667623548050463164388113992828884504323370541653043070178128650881893430344601137193155970299624988582715390648912136551534329846779970701631539670617159845897061420833362687259062128731187499266821459999042247537271351654865825819430727846749154920893834258326360689189497025989686670835437425631624849336940579486373364284577126835604530102232338951053699394812977130440194717766662297909834143263675058663018180181886876875795134308595287194743004810670942025581047210069622302671657734258977310039521471405097229188239265003090689417343440345940288730983580655444604595150211836969104985158947993133233486952205820897626147710174785067363399987452147520552352022100873541370384016131162303036309369858257539214574913944804850999335706334188307601541931485673415130833530782792459328783163889129704707813149989971886692115298837670646437736855471838906384171957182386078672142189090616577079206722820360062415065205449486199016341065887679173982660393892171270305527805806940975343825909721088094549583634473305816861920792339850261336483748859490196784406886237988990489679898527218946343626715774849936656852130182258310118181716312811627547651764607859992598897457526070098603572041591349986778042706889650264122884522677117290774987716969359533731265908010378185201937111443860480727663578230260780842189853557206986564750867308692583849482922179483367478913564610063894102307225539990272399092893910728741192754099504094981378505633874718906643408331120567887731828804222186541490150277675594738415845090239047072367539550575577007886653610350867147010916420181456854676640930172111157584973983762035648546630510416671686943984462555066303240573102391852477305044346965139106504453764572238276138561960463177887073454083570890230552685822851347235733771495902934101073436844391538016622573734029361682629537616337414757935002853234254399858310636860268390204574788740757978086928315776308627646837539699658799442849752308077866231572773812335489130238537866362155359981118400050194399576432913270134289513765731301943520609313930097029421363302635878507972851645009608744961842572679941743108363494026308258657551949062637263106510470820630823900556441759878638511666930851272539982180991833276926789032465978905837047064897263351323778491306406137184417040968549050757508558974179532578728837215898229282339036484169390985373690774219971162254885464779848890998906979726939613727098619920468206576581604998672936181576334002015182656422637451512770334981402757724544070828021494920044495395322744381245722841732029096045573625598493246535276281254211917737231794004428176455444112523066868855055676982906722401501229585387751522590627061907759192001363686284775038121211508974518560297037811449968294803022981541406842413332827004595151182495923416962159847594057688943437765422198020961499403662743836877316772089670271735787482669382767149887181336586878455340548539210398449230805194798647093905980691461537022437702215627462617960322284974536451073101415824544595716812023771272791467163825318599040615160604283411559209869967945479275611162546217241830224535896350690916682357324540568587262529948338487513496157403711941517461516743428049436338642317652754267443739214282226035507043391953624589497306241307741992881791692100133472144193420620028399301363307761081636585908700204855699520996307343911054654784591137500537766974806758765209620200864522336681072807757952713609992972219490762692644380537016485080456731985260063081394621065520183884966667848526374820033727302205806412657539223874527734492964847384851182554299176016658676951796415213010421841549037309357512730217746160290071927397067744510129058960432059861715988752436134490717611415229913298036373281765442447063277477123383237568970206167139861539983326115611919956430780070443017837952489779726868347637015039758302575619927358594993437547809372156344354685685709969912080149431102132741150272560248091185261380920548099001108484928507785381328492964251934239288126390928994954734372429468620319475656708433575786362465059938951545533302543186317438448947863839117545074954799930231983210071567727887064766912285634325107903768630267020690057447672403960767103270850378121885412812011704786682528782425851690697434481951443117243262441583741070645696052086575291653974614944060352666526043892922365635527747428391660840616438220573688865345415292963793337614635774113708109341409115386626641627927025582905446659217052111449497489035390136390788079394237552662559932198959289935836954588007415888003914163697468499253878705363298442235461697032881367268690202249772953959477570772457439355575622423264934383203950903880399292996456555210522433234148206287035562864294278001034438381235653735644732257170009770512796806188268817052336764135604588632455164028339491703951643560635760470158521894402670195813207858044951089444860497005250522161413827470254989384491697653465423247175027585246262366829459989620141308078176100531999379940623916853281429916468882896646696252021913817552768310063071023360142079242211312974069341804249468793335070092692088589140181831376373058288886764431871410910780186867527355968659788066377775102917851485374166993763496225186611197604354148801408493402917929216147170971966042699038419265961807698171155259342628749732767522782313186526316600775822644209470967502427424225105829576986342847302834958310012701460451279383274758119956936216146474869066086173008285966352673455132774187043401313212865741698103313583930917665752250249766690924251198679837822639117740478570352259843206174378193545854755027443791079870486322996943693854987370748002741705900259037343005961793030188112390073858428971111944720045619621789278872822220602378835443676540154281511288368860080165038122091892221096123832113040636850200732750985642511130673654865228084344205418420432744857770083843686668654866766242075374855247166328212893180617795054436573833988654122983553526858003993494038102627563698112775039044541958515296987296584725810258219443243266313824989664969620747604863022452511891780358775790534378816450521099964427262458465020460093278098080380424978722659358612316271938337339083655255108267417614508630998436971896591646347737291258878531456955433835710405826330971917547367815037567000173823778397926957756247505030119293527289390553867895894455462249383876535029410360545337817446195282289541110421309907420811145195425131022996551245907660598541982508685107753601408391053599608221453792586488129553054589987530061276986754085928399564352120543055269201733592324124751224286505827803645707484236321511538923750190953077569741227856491877532319236174566207581366075755795520355429030655440080826259263727963177799259997930666237522630752077862238321081194443784863985285635632906013690177686031777657708049610689125951016682650057373750674244833594116344965044738111613292166729491797907488334868536738464933493810644789621649989831318372055350044622341551623779817425368350348604199085252602040912822258700457691021639586417236477954012119396265480584727457442368222787055623907097868949688605446705247242569339428349100187533331143327260552665531153740867041943953019783344264872816009407902029906671155768108578416584810857769823706985216230983580339342245687660887786741773277756829172689508721016237279011474096647925642925092135045683403093309680544974004179924981946983430237996785578341326135293597063303709911017298218501492882236609639180033404477072661368356918054838656169222748321945296732946088624814394230551121719741974759057768558672840060950332650847246209504297814957660283838292889863658116539978482461256108160094592923601495001247390811416858762244225643585839042157898050501942008130240558076058875873426030251955519113198506070370669106535481986379772320620322842766277270513185074963126581857005471042436995624131934753427363692016871668467253930057124982644535757674183592164547932599905282022112508452048152966943267289687474830650464402641476299477200333031022462765766357786490972984834578913092561079604473576336206805303613003304914560879423774812313232015132718784526512433492047689565169110568546881837832904371520059516697419435381256881166639006502170559894471058120773271198119305989109584559477883272286577445210533992248159566324512016408469261781211295771894005402360086549330701156510646489073041007653918557030421205208483710840512632228420657935192646284739289375090854534687364090401802127411635822058860202362570125168788546185410954730337649502226209405609317908495013011057940985327627878325388801193095366512506457250140788353237642033978484104306462008326287289331291418493231611731266137432048381120057978881119523350361726782250008696647607944198074778471406799083659650423249754830039155738561798969002399318525243408562525436884087817399966022461426500624223803271039303749152381285698567396940487446925609122586739218861290245742016773363490974456972012526834763467720376950672719357573122359701312358997761795361418222536821451118629302691385921241244476321177152406962682204146967056610551403300908020572649561090113407359913220844584920813163105873893052832177238668874462194699925480283745732449972969151966690347674142093696431221387138696151147150414201583929328537947122063147840375880323089626718572159859243453218076174032403490887599927886134422123505060330916358042854311263206142129737322465630383113488232677709637093787509728263408432485845508472573339522151750297961652597357271084046793261617969021661080266952805850088704643060638288734608720266720165176943998695669128627004280736908588199591285709156747721926064248244562965625413663652318946720127361802317504943984805535496716762557861371444305538273320735450698740619545205122731710871310782529813998473751949266339448478466548505182871520646765429637108603800829934538499391100209445119260907814678550751174730136747991677642747397098622456442254366439668972528982132511642991050717937707452606409642835112434137267444038532607431354451088642563043800943466897001243620353244925723022080662059941778676284799236108177964927221638090037480811350174103929512256066607132426021787375074593827512141025923665310554928867808180448755780973566110219432973584399147750098878182693940391692117563619727661119782117740282645014998606757268404471982991512151777072703181394901908659311948910036219446596673266338712268881299703514814944817632879473173019615723809844509801467379168633210208150219962515883868217942043316796061023288013939772218227983055113007926378315460652980652786890225977592769427437551215425959230092005166581818658804706190975286200781952577729182259972811841108711442767806219057877407829234431276372337979243007527943990234905424306401295774329300122890709883793585194388139015880857875029982978049678248015731444611591844898878537322953222528866888268598899010903293749836573565265270877615944240168338117807131337255013076468280834780613769684548067629996768267665181002092113680701259733643039776804035868738597402126907909040898241411336577459817421684475004865074609625264009280039000710361445790757979158467490500577721836288470636148202371325437483247494282224095124549961988317001511892657836701039325297292236893951976241112602905411097381930805538359216813466591830238971104208328911625727718369676749899334252452946287283413590343130559627604300825131477258526300278640963596175222470278008336254511708888395364848741107356209712360228949914285872197256615673341485232573843112543282252877651624851433453821816263239880686662164804277897598238824691492097873945613583182030846204243927859625728297700198312650464594574462011454477745187271770899141389870014234002217312260842449991736814260721295756507379439237413067512082721220531557467660376486503891620078413656110511672596297747238916066623145004116541793967061086783218970239950016549842417653952366006033135141831068056663311758065321001130458215416622791550476807005806352315493397546322236971875041751226601899720361259338234200325498362033757010859696040212762795916798578657988677313040580983521764474353167817817943168409488199244305466257946379228096234179566786313366463054926371395281679228461104293320984959466272535821311883111808772177347397458913846973406262985152126283050106780391555078357402334852437144769081960647742409691206534507667000208368957246186693131344661754070025915901397022730305166907064412948592275012902463997315938280094595125065763807035798806962558350168943967329177046747894575134098783473507405158441228113112685411980212716321087704690596419103784738030311274544772587969927329661186454427268097294527820326400636438351006731791738671630490324654358493673724854461616366022644426088828299310968693115687265397379230970493590129205220955092560071300912776100967633493244311099394793733062628824760229861379021911271178004030313718764326509104547144131933666335580065036496157882144294326080554345508832668630198822810842374362373687460675640401129523590308087717862591376442253701731525612513715230634203916506520534454320125584509824407582076653004834708949227802717957598923833675812482243738127021975043200586588094788845526131485753871812793419673869664769368216319983830669607700383140378590775373462350172452559222932534136338713278579817055161676872728265828106495088880683537273938579979878144294777340039427718410920220494985102666051778730563929107836565966460190865351154527300975062253389814185233981960566594904896668652805354598858003372725782096659912174347277165322117010829880653136369354822558384716457801938748649828609171485406684874564320981194880725676436063181291905391481841093115661938905062049370859780764455951952537155787304985029873428411057858635762660362785644153257013446436555504641777553421553779213543611935855949832144230114579439180782816480442128337715509942313248228804402965577459205640251570685073198573930320112329818220924413638940257679855051511813912181726928328419975181523640810770326054541863907939286989598896405646282563352545367032788259541190671183490956883799388568790032741259791098889590051933436676841034739201158039921111410633930483448946522306186519411226912129148357193346844834964120662821141650825032780437312088341649906798403633521097020702094308464835211691881398728436110947934847593249612105080434463987617970515839322620243058741451970506553737135125800943913348347333572683568500373380203986068770413194321433216732430208096671951083317116344900508035813381195132500916508527906577390268198681008263169106240427027500094550784310310990190694256999229929957395415610505349108797107624541119360296438001965342864700707358841462290284816333664808264136694515807155741925688654022132550311384940428502110903107354180874578842415640492691076199922861373161703253223907932137743729664740549996621984325560654228428642963821436232428091256123230176783162586914146991960106336208879727773215786256032315583496316544487837696078587299993448177214093124708644163026160353707721948587673200822957320194805515098444495766017053690157212890912198865711071297298150927817295869343436877849842263896936340471324685202818075669066327013130831266663527381502466094233626369157801513227239685270765267284886911912879466577662906450873003011117312797225664500500256974999155203908245918548006332929369103464311495689897182985372999759383210927730675250962054175930439709112665688699082040369664676038641713934407507635386823622362761808989379250126654061680663583913031690904252866223641508768357982605408251963393621206085092655842717833901354292300886028535651582437502775032010248706341462681659412274543076851602275995369903895127079210116912197421978461424552444810317027667346765357671340057787014963241299710512134945222362458404485447570708364504309161077101548466136120778566058832697027146070175329587567860941331047566275680732825798518041296792775898048437950306575606594422824716799029545500111676433171781831592106265546919297331811091495893562226437113947347973860025455569451604897006904826872537007298554640330690147649728655111758038632846857979885927212760862873129782459420791130995410745128671703448188885141215000075796333722052884730233911355728192525334970019968295232004001033869436450815921317286513659706978002036775590127933731919116435839862964177051913847443456010006004149636503502101894221711984283128796794922412835682021743183481136007876733320257908451991676566377558202367263304288212080555673529100553599652044710200019972866174058168906496440758380948321420108848273133829905979118482807322762145310753998719998057039501808954379186674426748442150583752868964430452469767482316761881065037383516524383200807547976605690977969202854798571454854528682035125785754211572752114005685704730287767345343180006859395909562179002214890119116052331516548376331973736369439450542818274865839379630574031441419702084019111199455813839328000773770942779755343337722571848050188580546245702430443801817053981279563516634576340570648557862008450555424389553699340227538181127740846496222046703676348126656332563524223931899862016782466413020736280207818969211655142270162536130497113222191255983457435939199379710155898066257640451583084619293873802479594383590639538032494177325028270952833048208823106538184577652843225788014917295958501837463457581517633996489236264327085184523399050316840296130763691682464854202223121598114456297359201829673499407454248052042162988344056506384270202785824493580126715960783911644136142624692116658217442286126492524969251611207605090702280444940471253117369433121299142947913108098135844522859953593197751183251594515210985030014721428188966627518589139979819659855044456190005853144640671994810327548832647323545423446175025767908677099861711327132823393653835979704467528153670465370294674083595703989003205691033408110390201107015221514449632978572527792233116240205151353732186071085306218230936680217925018713089522364293761160611672056437429180182097156946086304886606370624002587583065797833166067255042105612430969982421408193648049655475151392841463868937613180091376354013465459931752309904168847036966854838115446208745281171982696260619091610481042454587528494889856289123958813795418364819224375127488782701935795309891204890807307912870372250001964018890905466226025177868531391692071906790677502888901027966796448527177641020855991308286506668767453132867051939234744064303571857243480701864864252317846854956156512461396306339227917768384396007917379977191658228076850624255178795642015976010207925530872832126229093816725198569756902173807731674356286363184145801287470198097598068636351145697380881124079523633276782417352372392175782208242285313848756889950785440832063466029630501386417371534803679147196683064548544424038365132144520788419660278613818415997014338085033681060863114778809591889255185356929780791794312133485448648785804090755806170225722127631415583405283290132109058344162777246557092306735139943990262014853482250124087139759438372344491441507593752029937826083112196676902589980237534220588419461689846333931147620109201827972414262743406211557855005547805343465890612779233454602314369163089828489784332461924499741692862366108642182377068450830516603872810815881681622189218933402661483414617678217135960189810024520176269186807883594382570502958086905950925662077827649826570459784953987147069449675150986840937944280765109877075675295690455972155753621472876622802798309710632154001611311270176166279344996703997922310737596903806396462283772785761036705864570917352078565321060611332920392253477535559760640036178307717364161448957747432183374063209668289107715255553051286165380267974364840744438121893197367306285476837904292183711252107280528864053115027876179077503442628071534856974473072977620169380058117332273385161272152767153634018442113325083836806540876598242640865940399532477788615766499657277385158996554000269058529245657090542400228837318499490645450030555654287255141265154940864767466799654196115900050811478848802271044711532620798331398774350949513623497124850346963123408433781570563021766857263923480266568465099110488541364364768235150575371882379139338801491216560165799532392440537416504719795583598247779095434261444458431130707332786933830021361032515705567573071599517199109912252707177324780853917641221035854411852368410749132403289836307504457418529531386602605195688948379284564847329042819098771029254511197649442008712558552651661738651629640472148149876676814483171670561878865111154877208982948120287110274484206390443314078959721902676616806591066699268565969739179113304701915601383452319769796927511328425029857686842136359447990064106404185431749901235605764661755972043716800339563320502282142309382827991081264321566723257223862169867468727777387310761701922918964189166022172998401203379696495726874663596074580413120023566233742022417791602711681157912917914266876664748459284729572888530068708113885331354258073000958875103286923461742996155811260769080894638369147208364326565013712545292125289391160982486934696400235681699202793081117928761218050497377478072231792744106936327427189839434054609662334316399294457469149399029844986912930058409975571183946467649383956487502196164104618734028315175690766056139641021513465456761271662933498053425041292306552718657334526318704572621536999548464666194812718489450283467404176317490010300800666018610261974247350445691323706514113341950999732795916481645576122745726816899437431022953817986620256868557073124691044852999197403560557566022537071792637942055987738047373342625051713777160161984911359617172402676953993608951843844941567533751616997601206165941088065805073284981750902711742175539199433215988509781551190601721643861408766683477550169246998657407017538740788422088640653808571955117660565597087415672085377414186677463520621460356364716898366425155119631821314639835259043685617804976943852452864024773179019611737519340067944399862040986213379545864256962133989367645694171455230503080609605963121514452020576659769536017250605976146715204071504116303952156235207254568610876928899130448102699537078010148509646347473045120800877375394708506912384884188695882203669993637971126957863507891784514308763692873747781768543825139033189294354874590276520930946207825095960710753039548525715474604990260072961621900094578769155262143683473281201465802214234313891197860009083580536940230293880932889494687304175105785109585994835009015767483061257906820651852569806995850402138849445623062102808111008565671330226854660426208617184713741533339985314636036668959668427798759957983250774413040233955620789560283186735830600834183633960142229942184069749083785455694320446938538223406440912773522088036892748600458680841708568561590030574465706127202037526265988064991803172036773116490515219618871374530388255371435509099117091437804913884718283134826537768668681036917838649034778672072667170252200898608452261595585374112956789918720591524006571620190640538132346787821235133818436674202724180618202793469856907267847318584931199947921581600627180416559147277611286232180973278083005331896547850077578226615957184934973846805216920516382455763831037947690590535316046137197860031155372335929763068383768894400919761066388582158594806339624638606996415108796672049864406214780471960351520408131433366561213686048480347593438796574736776684366198330780960821004008375194049915351888707426660826404735234443674400530872189885940996394775676215114808019065587674652595908377191545521261931889546656663468923715242801856404336414351224668722702769587969527456831219477487920505952053694039689621307022779994718819273691791329707719062681749381606702885838369031936039471695325178254228078210418210937506110895907660448398694721216621116765689393639572211150346385088839749512111428328792622237615354245198414238692281021041730925643367646875971374783213370673169608709993374480741526726546248440860259904619928731553265915114722690798636167333724867012408080883143059432351428797475022256076353093443366467273960141420744936717603556424890303952374572010849534884529473548271669518289703638520656245529501210287071492513195174497682210628451149088257123348172894988055666909283306870038866446881308066833237650995089929604294890322797960636773749144840346835653519772391890500181458188824992515861738204062448142958246751541680815662613039754226966051158039970880455404734505473368292004990339454827800211829499853265229194940250068364582188528686760706864976556313333547141969639382780425061119790454225322942816478722884530137607740485080882901218147585964783445990935913868922623181488625059818411082256754230839405020343546763494060781512503047570651066167873241830744060553123091524760380612837850319821899775394069600257693514313798736205118004538126895934759276923511944018371335506543407917677724613675143989151921750930034357700247430386904485515358290876152328045566384747292334584193975830261241358896451807362774388979336292637497006453792679619760917286386751096101683306824078709121579846368945686817247114994228306562438884241972231672223013707281058158214220103196313606181264956147442362817077243287315625579705297220638266193707153789724335450812627577340541135543530303388694799195339468590618017020763923475180072293600224350500002826833533964267103374406208813494445146690064327145962899262165391683066938911006436528560659735528811196949271443318859690622096535799603321021385371549624775836374305312441868682859570197138200941212716736238822171205262051374947659473928571403340057674477015366234413527967601450258864059855638351776883718696170627788560859651257559102005779825516649405922038123884794479858841191456249658475615678545016052503423598171163067968629167399798884297803284980656613620082228389077919343731200270430308950331465400543789974079136093133604307426219770468599959547480512467661108838458414165282882295607821262780892576476481900396742073886326853202188105565126264407872504919289605188189906901825292005555882676746247225109609923917209107986122527964854192855093354602125504328077788703197122165559041972237713812216450265407492117336448275837377438267104983765435668753087416770099698612088661306819996989888370831178462181450406931408736524594914161270708826104560890789528755225338736830897665863209000086278505382149239518406988443982192356337960773019963108734390735058681016940622554994912163296499133300173098107989304283835495967659991727047721307615803929406767896320634672670445303154438062965627286629272623388347120272030135221614775208685089654127899825890797237468613874070255716297822287306984021674986095934750181960597056771683597687362537474968586533201168274208367724828753925327188025766577870211830026560475591155395174392077790310601790606366366362317705372854816115884910661734930233519148343169577907587081836332488383955552149229052111999515426025556143476665523920249575012756328310990800480575450588758610441610700722995543493972240645367050932772698422610595154746147681640625812892914907825223845492505016416465738931891153736076559470643705635173907621058620322615013062596224275963824264422435992654521172899552332948612708571235748059873801110094600389581644925858290828518979324499513063069795588655960362119772132523129229860536935492464005505064726686468269191343427635602870238947219537638234468078689278366733950473678417991914408743682798564513027346193811066613472235139900555283559002532874755055873490931050542865279385247518886644629458617815206764289033046026674464233754460476122264378153256199517227489435944809534865274090322995345235137430480185209647154301354078760371151101608295760588627724514672950441008452115139302249253787732511019107957165387184420793067681147644776180960518673486644220287112574116258565027420160026745634415777143522378372497842993025736812315293100500327382685648273043889056032025645255584486938816718345987183481224789717573632176716744858941666937155544210183642249828555272098180947873632922936228256592663729392194322861111302882110443004144257580227882647457598101160740257098017874484310566871376059222050567780422196478118478299296330048984772725467915327701963245390507770289834681624276465959616660637321561840925549902602386264848154783143398662708811046548822623840515483782302962156504476550940832800122227838171794810640959560821783908689759863943798253645179433165280132158977488894411928746223266890182273600340846298659502529918324161556935084898073549186314212380547926624595434770786509559478147089698611131573894392383964469614849858524297328515481187764418972244229545310064093684200877135497013425947250019395308446793589462634714052040847326616396367228539865429839697652646259932890110433218331457964546337614887421757747134207519087886273475516450578883880309201694594352707962779820123766028506636701999334530522967229880381825917933180039972910677964874987509763590856044619921147790435160214105977122315776512980570883916474676826416005086770796210459146281791305850009716208781349488735002521928655123480569871027500208507415075151477382765543885746731818824151235726278538558658943328028199600303928770136813124857199090016221223526441205176776208033778608382383816736426864571802345211540888671571239016172689294857468757135288041565028163355211553127010668812571121899464881313581267775609747963733334567758360836256893351273882777982240442194577659554279381878501246329019534437936488533213528325930430894890342740825456545519534181389857678221934761848881191766421763000627414998017201161940359373989139324732904516582857738672570532843327023083181134376674986971772140963834074867056777559922490195918781493047380908535030517578167908237221903017480096225378696819921361771250075537247796220287159330076300357136995766556808203911955296040569532040359065255307859219196268942648388275492795247350036107016930663823442585011953805624675335511574183552748295678001410551847842497083121031766955075146866086788634387181288700994604058550609239212361210615504188714938200926900828978878854151463510896498199303299646281759337594370024823534066106870559084755719244737757880914341824628301775607003267711955693836966662258600253246706768526136752733620901449426115514975089270652477386524389047754800761959655961685734845977068998259996764633273493135364707291119297031207031603523528180781146615149164544019050681387302517865677807788923970846594291276637835930817332513218453468142965733647683251975560279737497739670912374299828117245958326149812141695558733147024495820873973572806376732306119504774518043552352585863040097561944306728390197740416287247084508252262804029841562867196677613196552043796622127361019689006785304221665651339025822287197215877672166831175662684179363832031764122280395674395104646513450583130112495184576634992361032050360191030552230411252405266443115691805083233044906677538936407606477851610201291702497755947891337986978232917187156410269708442109332554691804247363388151760432882408743665242362932738904024285620162665400153036726271408922427679948868386412639976578594803095730018328052285485367653203950131293724420596038027182114949004468986870680628205058365242330975824645561484898664878744420210608275097053473715011422938511985251279080592809065373195401860122078396568674455537634603252296078464036745886088075541669520939214176991985566128727610242511081707474155982602751873646039641902122616360733956084398817320787125151855765230267861828331181530809368969762980915100401730307075802687691222672439882954403690009410157045073141203342151694407606576870610173465849262248424140321135364097198640924405366719441162259173170590321180270734068662690333985477357659057498821462376982673791890740577857938445734709919219236043406756752495231093595911686085683365100357064176814637453594653444213205758834040391655056246307856611129617591203812126226168269701156647134275481532925931604904081441622554040272028872473767640059146121951935360834537819807742741735486723599335128260448085805455474477776934979692763842406934734712407460132348867367255691020669403047991618624781534441738804685295643903006743870565442885012053283815116254896451957207301112763512354320499538291294734754821862593694274242146517977933714888460787679369441332707660957546863335493447198149397602609890641527084079960425129014825558928360027042164016094659713748243832145224287120618108637464020165376955127702017101023830133475425594541548500648810261303022819067616944295344533946451404426733126694807767727182444821778948374228295868533648145145214282403207182963698579000451005931224310856923981934899522126212778530693956162913174615200433655283354014372105713493486127922674528764614470977695797284515355985177316827195308599340807247421252394535945930513883815357457392428268761166758151068254057671392734605964878994715582561880145770914951788158388826796598861402472088113287209600638693432584756906195795716754257124656048432418860254436976533045678026490407943241891527499909374820634997408293314259113556309938797701761718438194483970869206023570810010177559220366325792752729057015307796824809400258313891047712982266968561174479120619543880716462530022304986254465749992952118531414533879741508395234481772730443826772317041411118930971889045742333647895225868012916464232000741820879504727336964583721979974256365556921893639190996194656617166625798788718191754667064429547833901859177462190285088944708022865729695143770253433141071699030640668546796200078268510816848737908415418479971921548492672665349279853442693225811210128036603869503397069713944609511618817180589501511641527924686333301133357144245662588602304773455906907724324143393592025909073949412267900466636942736404469063463304058071270949874205170947820448053917369651465174274905003950649365389345036688949890655546551176139175519314776062661114031880031546402989791512211988325990169267625782952943677205840634349825400399169163353782557286571247796231561282297444368660208839142256562627314596017907538877956507664696324608051438158413249047747799482841873464387570573251290392237748110746377175192648347682710301036821463665453014847822393701986310321484350312304688561590918207748964218259999504880658262293783867745700618080997535689831522007930986919310486615086015007266139298316107569747811031955051670112576230163138917359156368677406665777738856725040259773473071930720440065366250555752372445316487674252266836667148488439033086031693757608133065598653785160333138119047777874727452931316209708123444423916131124993745118258042746468053888576465177637370590624248445243361086512787673792294069298304157479868471431312918164295499782085787337183219784887940749366901982235377603670680046979504649575241952353098242682490032619098156689975651313756430452535176687472545517825553384949986622444612863562479502049257290939701414263207202149431410562105550167621507718256840927056012446448298686345068972691315562485070653821997867008334008242058819628629446464580785804086061618683949254495448146754903149234877985960916169526170292151980590977058491793164541822200864749455721146579736436235365373695385473395287395984338504333140310736068142809247975112498991261653300009961837921954940174299706458758603613014936753257724105656546775771108673139705698752448386541538373754285223616082297592326866767725469947857714966536488733436294382940269042368162674274846415883443161543534556401500684812580460149459450901319019757406949652986111987485010197739479634031684622215654380385694413086094314133250104857717947924388947268165982794348171896223865675765732002412750420207993906302895708722596093816897281547516016187108937376867152818949176007809884063174963372686882446571338606920463435037379524613068171130914394303787468913303828791411078553903736365954299221972531544086107266151151936023091073280477438976756883445183646840900439144240961436887768212699084952809376501939853505401734096582322150288656976319388864467117588462723515199816863779486575875386949569867627397033453174925323385201613341597071470515698607999098780017282192457000863407338735953013978810995802018203778324405721195208230449607537043674337284225550981968829051892007879861823451709149166354524235135844505002154811294722728904659019213246418938347436422391337176237027764840284841053867894312357741748628571590770768448850907886225743458113296835120035006085659836644910798716463529427700852019125018220396871445924017543580930718014392982537157763751994045817047805665154016237687162254746636508008721620352837546616638754023363048352088205114287391153421467015045699053121495426773928627757691142013106640063793899756681471802024169821566663590783460576233913737010792438766993181253071882456100251921831406403196328735301408784617032415522425308695016632581085075539262877619522317909727516284558909925544844782515680023709559027623790347658700484839468068946285608720106982991985105230262386619039202191241690194638206906056008525285048230845531313292534824476341389382178216839731972974460787485299846108301929507234113168199533809239150825794593475996595975390342194068049782419055404480344139355879320848800120940739710768328713680826701298704846182544694795859009579573864870545605199043593909486663918211987534465732699350354971738434240596258276297976623769937374467139221456583317051840794486995275744571748808854792220372172777635329002854479010852756426454981041391797522870457751693453945297612667616352731422172605896535087624143516743019346925287906147462251337560803497061490039251889595435486555914804266049057491286718601102844740315178832791224888213199051134820941213428687351337054052126103087246072089853478482426855638614274241686903993229920783953564353401378693993297960082285351869497079924488218140833805652522769853719816843651623142927300314594987363736792215604808609470263115573750380812685537279849723806704732076614220364479382978969471485213314718430059567553683668010071948833554123207156488685982912590818585812288374530656455804310051383603668649504044925716196091015424172086536514835489275774249554475303084309049750612383971764664915899775603253071307458320621726873294646832290155963042204374478575378255652181894664813214935869672502511510574379517666577666145154366248840082573734736904903428804473774775365831477642781702225681837270128354787373526640758536582145502539356220955654892645538150434158177193873324961645806525338083498232687157353431420652936391461710856798031174945732642510769034334417134606276593355087655292252329447742843134238067062417251638130424260663530923346850827366924561079232169673468301472671477864087258418307520306716003823224121476580537523328634132220263084666370235553863554864618481381573200654614920133751662894662194349557454900432335622009558463558014737692079172103617816934493451822528643238430300552167073289582861326964677568695843008051818323713679755984458856717840413381557308498252317831724392492207807065413029501634637194894692417835234217731773242087884569173633337941557544875390393462870633794182670367479472852978066621197492328091665896830598253277852215606931756009213253317809541269389335805953997472621297726692677033482971472279011948401908202881926753532503659262731171593860887549999499498888127493571924214445479233224351029733751761880532648746633540474473000285787914244354677854372359570073288089241002989440361974719417956764900217091620888035293899178586898906873204558396023199873347927149476304799885084985174416289861104171002887592345039661455037131306783870988247276977281664113782049071208966502824222295498720180943801821942997091300622008932577029509837176051978068002857642242021010094104588890364964184911272977470899482980884130037037170573058077363556203590819334160981797393345674500012351623369103521794604824084839520900481765964267859889796379487795313300094998865985382797978902765905166866347411531624752357598830458861590705588396030748169383163644727604760418279380402121727327779418120840596824796595523616235311191688648248959237512565072509871487961125238888884788812803614988717462251858990491956202896760936955754245202820501154667552293279642131111159856105866994817528112432748096295789580347718925244032343378394581182206689559239835786177611991960947377225073931934435390171844787423390879701002967243121194816943890941907250642201959193219365453635930782615119173928542106452901655046449870609397043015069643229830763065776968620590100004142003548100011834357283111383904764006881304579908063342752414773998056281051975590313294861376575535366889596069871822628596588337560623707579284737730991034102033312365608584073567177598754277179943289416138362137371595163987643887407894321246541296208637552231907718746016719045538807531811392115243287642032921673594160881840147070616756804713245101046543120079446397054507449634211103886209274145055967484017911790633405241100150864833718705479979350845481466918447990907036450474954035575893465407693877742010074658431793599656549599349305210762070544953061214208118836212138457145098358283719975705396957254537608228531820101276875471958133680607539675786236739222079323645807915348800622756460458513760158121344149451881950895393079755293565485574796094067562780239190435146997682796984307377607656923811728417140079363165920638589787325747237621554224489426392591378186652662556131570660917767376611689579954911245626561395166003029722742330808543264158285789443870949827379299976381262793537264781648251035556622811730605107560792406935301215017824004573904610939556537021300797980784896917456698555648780449086241978446805445614225345851973841914810710852467346085875426523018684469558372317195270926808293840705401332827229297225248985102979154893265093513129837633400185352959876943034287667287912749467528374319697417604039956960657792213768935899377470244969842229238810783769569616195093993650131694696664761439375437665295864367018890339772256276958536985523544074965664353393718528206563702787401570976629853380063871792876058996013080722407191660131439606936792603256733113536493832563882800973973007188049984230304841968020894598219103584865451348572986720570883931294718218034932753344224420672893968297233925780253383493563313284000240164674952631828287934633805419037364499309168641428167877000747598864729980528618354452216469510967695079284810593582447932324475083162655061163590093935789514675885047384598608922919671342614753441416598712456578362713847448385992384502475479736429259552562619651300746317414503591394254791238769948859769743264469325555224764643625178229109749647951827358021663146430223197124517201013716047121414094107686782563753329070867541534218930170816547559095225332811276310461205516170279054406686670286760493132686034536420446971747164467624216719220136088512551935702443011852779246363592836614782462356228437735151889500727896127654462048068795009026979970888649491959668786845679296430999978565740095144941746760036593631393525110868199650047832431552827024279642378632154774065231008156136462018584806271244852861524755249489870952551543965898437776153223345130586048414892946085178417401448370039619807575570316288339646900464510232393487226929793856029040364338202735181829896360489263217137621339584362055178637028007865329160414893037524617258581096201946470640454600881606088742694717060941798739423908495391393774574843429979782732638008260962022355921865673245467731081351353265378662494417635921861638645598950385537211566476745136208733573490202892554057346543144759757527445170523894936284288925860022554193963520016249439796359069275151429481179800903016235373623350425519130614131432841695120749167771429924855048840649396681672584571733696292276563300875595799827464886222095162013956310025945020285785166711556275110487281603076349197608677789280508635826210839776268171754104058534769122196013563574556474018060028234660788923992334708948812275677522231850860970363463549146626906232441055317153912535398730221561645513178978440429367535918327903521446985180983692408659202587741494956296760519860120169693772515445696058785290855507072044456090246480277622223512529431302302467206876644065232021814946950828041456871310352265943681599407853696055020178437956472378621765644957443818320274720440065444008032080795600534141932185944611000034876686255376438939859036323667349174138804307119414247084940102651398629271360255753791303890928258725889996439620940196859418962323913558785818624127682296948702691449286833046700389796037074413258193372668650360138794776065667574151842448766723061335244580505069689881113482808068960028263046309650108837481468317365816142531088935617743196351562478359785222425281016535656400338573252716218296751512415706970958479296639737139708109140012581006387794188138721921409039590506000327529125283711951999085488420147690739193838232465629735837208238120490089250234760778210368739866255914063476085463662081807015399581490472296282033040051497549504340880620781396702011672737545292338763666193132258516529916587870601564318018947102853338501484455625376497886609827180616910543274746227684734684974015490294504953005224146477914336646910772935207299388989651964637163659889966659662928964959013493380596153303239875822711912178468862118190923029353412954147149229578089179911613705332225722636821910796345099442830380210804323683147506230495280468139998612525440896325417602990176715139938112272108948062588284935762306139155790282100337579178178526996228280646253010269362616333094064195242918541001619919597183962303357987953349051203934588444020439247615011724166703398460346053023224447498769355087856158081270911570190502779747526347573169018580771837646681044711234244957744052703950086694637007364059098867130617751892700417465287808479427394892925157966219647968173652075133597356319678723246295104801906020122667142504196293742646386836772841811641107386665886995569527621260467719667612721590156594525209086614814887261044783781581020473131535367860324356391090598867073505228349683128612717741688826760053477207209351276222480168201205383523621462499932795893745555341925700879607339583247187055358838245946208544692289567739293359123364573383658369126691955617079600092024813458300953846052332712807285314749595070746556033169710527550041989811841009333225498628946783633415231421374331876278797552598841826023039990469284438161390576268311200616268149936947270109168092147969614087043835650380335802568796585046073188495245428952036407634806412814941429444632597753051106086537101361588862290936541171069154302348261670523855058332714416254009511049638453765905021948047900617232914316279941893053294605192684238152839771682480485127497279595687665538962225755483218548625998700270676671404588225680751692149717731009099596203629353887493598010317688244006282973861893910783813330632654783459559112166046536998646436587190761160320421394022588379563408791731676459646309347630032815586928755326549654851149844765908560443952470401897686221493548313475105910120726389211239657359205401647205171056698962416174655922575413398339451209652220122061724844735518174217441814359798331681316565015730107015423908694927758622611611709561196250702428290132574126295411677036206056572189634137154462150890055994263504015796599674226737915644342717790211005474474720885063473823962431574206759442397177517035278062839840866763824661884655154999008843409968782583659302951645237780552675572230019989313921738319619617166233214580821637702211659017143483113472809905361418123182858445736524822437990240388339046348227723696528836267736035101302122116425414398344472614088258744821653681437812284996805222827880540122574461446458770773172446344388364108881089982961217114704229509806928896846611420323890517040955075619887771960894742658376525202231595844203306570283259944776188394716507258527375768004963082808236383692667467639195184719695405918176801713526454450577493191596285011636060234913433410035145039073455267400314270780204064900371676794118873867280038829098638977677354766707242461573028814821445651561779663973358579660367543644058863518510321377914378576507944232122953318398151382806985581982429075233379357471072647315294787172732528457659410495024898237041832444474071441483650013557072926039385069162545304507602785517069356865801194295120797390744880370659973866804229245752792853853361987902260722982949810008559279373932450265698262385665117319564383371537480682860895059348493086979842531359838421392151974968903910620837378388987782819256067473308540705654726831981312747591775969722788151310968998898135192371675644632866762379534588402966154704847951957382100648751831777487035446513674877216126144716206363947504906664250928663293789721229044071692526895788445874176956507036860685041264046882123523848972076297910483310285735558185644587840324593028509868523868098556287791698071417864843751297551282568367628008999465219411926571831323940790334393721856787386032643994946210146040170586217615542811507654763743534982138338847185954455230202497523151457725689833942496822532152314952794801990543020915527101523360049527338501369423484986414458527959310110584264917283520567005954607492922011411492737350670152574375824447241119013470880303090415168005179754954987849194472189563938795582311140108090980831142529736159257816039777099675036614563669991266942646420029321886209608072875181625196726287772447210509243118909076687904070268763385487875359924899977943573598646640579815681875288070968368609098720928121603876971454127438457723647661368448163986065393350899734597945384343498147161709189811629473385608282454404438952155018413248653924740566939866856418587436237074206996255960290740507967468326625631524112204021643775422654990859600824797701028071370381315912751386241035690905158851033492929134989564026760984160218305826873533298364890939608776710594757477569465115479772559124770865766868791749711085176944899463296638185786006699915853391518856339626005694649836483469621211411290401243074975676234159896268374960921841817797719400582694861158130046935653737759876926271371637518955702204379657119712256552747713015329727308026443587703603284306744658397875452411968075643319696827657113862552752939912279207260106366603551009843427586746351723438330524249419158779816190570407623506295592693000149188939001409146136908772777346425327324215800386226220501430054827165594911890168195968372940190814403297872154575999058516733833908602539876656648297567398390709478663246776347196546413723198706330440827130476736910900643471919774290637949421408485944311230960354572781107882678855667996856256847580458256045450913350357582724068359656232843457858958286439489630575440405824200487324461425769871745517538128343831110229096218990970109019647709328384523686953642116621445822896959789383283573993084918662585905562913683616324166744403704362106325079036569722487616349914617856215562016925644544848119191937836690226021006985021004588665628939564966322780497391525879429508882983012356986148420745757685500278620482959806031590591944938676903930849355894210348413919613401587250632240332363903670225875435172007478605047123338034169430595722274329067251482184476443489617038331984228730925088561627277116753433314947935438354207021341316045111835812389737858044482023964074945512911766828932280428389786770699078932838258618884048240154340285251223412551420188865657744510541566301415110555888739122715920716609355576079836293050834857878804689707562762075099821775559448503878475354208851181441325474537070865859339654279999089607095834995862497463942182149732326749377600762786105705133332204429355115707330155615591824434417436687307553683142697094709136861126204321265567346961191078951660308145979408808707330881336697193380497373303214415316558716339962896958891769484730333430252710436287746920954265385068317114298806821531562151826619390447490043665260725276696678608737970928632111425748594249949698485882582072095470768636168730584664465169075572838170270701132976010865253037232729044563645656548177512648190163697205716454542477676244206146406825483692512323422400036059463539577251705771410297905905395904501056744739762760936097639802102604254198651145343405144042348978123689693529495822896145625541311222860070985779434270327879630478838260971248960383744766532916476025203293751178749653193011690985071103528433652775318660103917575077826187806009263448208246896895218196226547294267763427674021360397052859019408164185058585079223689307951088939667130849842327667073514243146928935120448171137356920789369091490137899039960762523157021895934290150547221409268346945142489194583358410030004696975132553424551973055551424435203761844260103291546089740452351327762957647002275383817722109218248994910255300152260625132652152371539151401268568938127611347169175022185640787162126831006124809230041495184794811505976726394566453075970780282784579035192651953984542512128367636632157954788264003838156730043992169364666797822854714642233467460455355436185925173821200680463522759843113540316125458332786751904229889894065873218717199622226435047008085742215815305864731099909864313136064784917114961875484894637759342515473881663431077623632632633893077631269082774832157889311711499104563906644485783253348240531711410793332855390275098755219877506003374026732422682702986449498313035456999495017467255350212662227917900225182528127125085488383926867778114660132016617016748629331224177069860548086784475363388002396178133552747810833366044650075547499030566117777075667859190675190873801631284882862614657691586214663441254445037978344840596216307804277265488127873842048830846071785802149106044169665755355947963153593403178338794906581415300428379882997083957787110364919274537060883801609469469693615527785889981943620427868156152656934519492043290071547864406190258301910451006140797950952377917198433810201291034812818818488999931841367750213854534236174872958877988609669396186951532490612532194339424992270197379186652959840423183441550790499487768662831864105239095860976804998805708180039286497513367087785762319499213898112420851745156355210091764923702862949974923936545375403433590348229927807792635660593446823203660319978026370233195899359394054786352849552055698969119622511539349542057775992167223437076230868720280519275768884679206799332565957339130405785827659033346367206784305841595891378869651387031149171414642305676927386926909121816676331644949850758833717020524996307655833732601543175150916398680144847365480276786960563561804302568328488972044627682657588168274277519079195746129430800801952566827541766011118684082223308692587857751954090981363269987102111752139910181656665521798857104817908957562687993727551735692302082874686608522228429295634189921390949181304522793530564373067275160246877931451524194076995710988504168475397589484792644180033618803908148495239366329221134307117442512531710165830357859806489407773399748113931505814878652260226581447809531760346735572369459205445717142755193344448333771891507029608919606666899497989159352199913418738118319108010530899506456212151394516543854015239179927719395523149303168329557255454411803017241953025580388422696364937355459782014155204393499984357877494637251775723876974238385997444111793930997239226412108695349530651437554563941138178736305923693518560705967662552519546896179529104221785822569363242288781426502144388878548261474122376379804675589675145321969714232118471843387086038676872527731159883415335398212475789425414297167677925434119857605344471203621912467023075315441651621409831544223521211792730430289957676795383869021523827496932046038402709445736341495598116529099515815615860935199586705259319107342140582076749374066327531562816022942202937601261344854677288031277915205004564635354840588697809802876936498989290935527162250070928332124953955392092192166402508111426118477481561572209431947738540660675851969459227643026668811815681673818938389686705597944144494000483193922594904429649328607311275440930362688470559362385160612286192428773309238989722785004102792892565548045496749361193597739557584845814392783376511735052216811112414795575150231525553022943318720417127110087616782446105970106331223086206683828188051966064581816554443204973937422006869458152550705178294634799325316849609891962702642734127946076683763808698625716205389452084548926102737343183852668878737302347889048265185360204675388147936147755562170431625347393091926088294133697250239069952990037711904479646417538151602329205769503075919151721905047947971691166417099121716009371281129078592990948647961853938846881808432837384653451413077891161995850202585166822486636136834118059168413248158743771680762879940884585181109494527747604547279609400490459955326065131364424229527914574804443407233502999586717633693141769384712989381080888135172676897505422714520717657536526487960772780981997996847761962240485505154988386380396593181491218036902833869287838939679944381638316992100679820856040934892099424420150246546394415640659275706646498877698296650199888188100701059189443365096314485699125433086208542788342240981561931014671611196517854092360226153821501055677657082037335426610768516513747386633595547020272414677508927488674471559975686248333205778843054716830081556157637228205774442151961091089891892312757691275253730000080408662162019681737129969166251054762905253690360210684596722235488005021531532562600272074932371315699460620249323265001896801839951428340704133915454508682883569981011055777696611233958131576527317405229959767158547997192612301805975817648210492822697690954946318182070259631258698869875862331329040619143257609297590082964999650775675545067422839607207971316720887018458647448385708520080776457357199738689415055996245115337795841755463968646193795135968574986014490701461139697920848698463299929540921562266065864885257142943243316426336325076348920030914181971231766664231694564572192401587738129607182879834390578732700126947166367096202327335524947853363085706332779911052448724481313034681408209040149662682069634439192641606365751846462779134385821658090574048226463528366565512670325973070104128892269376450966894793582617283248576408599965555499944670684556485208973354677990603782457658997731151682200636400780451015823309758840675446559316368880455418712499307536536147078636434972562032591614407920588340391246583124031316702107261608556756857626639177868403394503382460424984134792776444053575610913603641248114598612521940778625012295973399333511968637891992250932903132889501175715957013745590674717238512085601302473645858154464607000470540843884048923110424630840166488567988914385993632599675217533250056563473495222891587848506338558635984306605456115468414923833723324880891008144070074849576964740357240979925365587905566306842828107231256964288591070193358962470390754440344839110134862543870220304968722319392642533686061478493737090569592782057871198352615252327792489051793926583377378630458257698754245858846349728011474641430014966578715670697274547408087763157204069716952496610446331129633479081530624233022133240246747858225950990132741729288298366259405200763335837270135626580114994014743149691460296418629180310412822132874082788018941816136191573504272014418434444371558590917836037316341650258715806214662073611648689928620232344755705643568699454692407499555167034187553813972360756285654566343081649635032954590672414893284716368556136570177531651064952632746742408302578262488137967807868897792028248730740540407211260065408406879778885871772708445686467571335863306448116697051253054111771238685660130347409617072080434840182610367782258847100019666861405636335356092236245061867938564029716738211577006152790311274467549267199731641284611925472501199116834881886534082243058495513874326951232081620889159600787786446259133006954521069160096213939715312128052075705439958494039288055202123631796412164094821114451983705539839412995273225922642468311188991606944377745209282693364447200054243841472813008614086673495581276473156404100524706972338422768110779631654248182739718428553710023762220418258490597716767895805827790212444323743724044520433389011264663500901734438000535799473723329975165610683997690188405500592843299975742881535820511180687356711851007559051764645693136571204121818585530943498889107296650586936445456357429098296348758455315138076117733980775820371503988469536731852432577976595881262951505289801518780762197398867313698712742098548587528322725716626104243812328632344560115908602970356705293928835724083314260166148568799356458628613237340611535991675112517680448010622440850697420149574410021079656044990620293086068302654270144687006042425066305038157244479454730050112629109083297256516432027745611356605339284353007889561387061695909472143384824826004730808426419350721379143756839712237370180119014134234906253162609294506836019111146041603631701556218636483450220421831087182490945692170953991581770828750696105460932405952509124603265334078861797846312985126886801804995356608509542726594754218725016717304310951539729605483284688446535631504849602559388597884604830133531035489720263995467654074041343809419405159165995006418528727928751103053819589033320518471321111212281000735602570746307114218063844426644760975327915918929709827487918605037279780213339460127745599960658110164053476551613292582611367350797927752152847943747535561693822507454484425710683386884638159776937403233985270062168149366164038027927014697985892594076738113088504769146288975286101735568488624573892217180786423992287939890188222945047089669339188398176669697629355341609469760507917158684336017073153244408032989387577768867170657028790711928231779309661369433174030490961877871257175395275393955805521784654571307127330394088776403575072665914719203454297819128923434669839259609122240063777243761535928341523782269023016652483585284644703311493929275514152561911423686321529252669844134191714309743146525833683221986493972002329253459558341805609455851638874020447997802409591020834979187044243368867529320557317435879647200170230573817245755664076998459563538166662773954099876099889865539893568489681979520601209115054530095176874347101782474160983661741322741172269094444457634326134667747533067900468917157381916986130158403408402750462812219331498039677379721237011833316178873412902921600361277500925092378830030713365572797779964999873377785676490484928634895913720640287750348879153696243714162419266492460691594600957696704455890006767815198677185895082844342132360083927626317828273930748082331327663033088165694181415252428009552214155830131745699192735944836418022011284644463532794049828586472584897433181198930433715861012948712165885886843463524718000413752141605414160764012809426678776051147853707100338082952637800658420038141330377118117410194092259960140311355534916636577094538365016877828023033307279998593281597528114709630089544758855208908253424607460773054364639186721126307340989571918912478648212386065235450354125980538842950089560869905313308677723827516585367976365772394987057792790024011753570795080287626495315009248471771411767248318318368300850812118811963967415065853303923934681546177140685684041818723436128542740422324530104458909448200003772581354447062674857363231072423390975333134859892047595173217678649304556145266176753669676014184231728138215057487247415871953948180095848431445030431194533771292482520837179268114603559529841220805180445886544377527046899247705070366713763937390718093351540890053104238930231494676567858898042895223030619100392057548590074844782517685609960719710438356231954236274815067127796482035430513409003995390269017756582428114540206450143687385145009961715588235658893323904694570256838878436561615020661276826126272897474132747548851688800720237781759694275781453511795572788696162232574590313360136129106591856329580364253167674466828547971332141710328247096323021010123219908331514024273059840136858993842927301362331371691746237637832689851828092158748059242277788278101824627772203825981850960274418176392514701719128249077715857849086179354232252179995080970129794888212508297258690841930415038804896072030621338618410114936771733119990242578769236854531683733920476333383965807313002410950335164614747630116573401604202131161981058200545195853748299600568800902315111713110366372160555543383977496039568508016430778609556876446994843051423709802805119590785963074116292706751076235947642910568811555916181805459366161988535899915780409046466396734999582925186727008155730812679640783672270286685780392640323805933846796830531969784825021231089159960438487636513999962980586868823697567136216339442436032870677926724545142675557117702580736166519530386417234731635345703366396764498924336203358048997211784391663619283463848402598178125816469574134241313198843572104524778056911216090067395054841526953345021948261328338554877978556378046564524561881993771437394394468655746906301765322939174653902457724118802328506437478687524020851102883942310217109295474466802645529278555810769386276204536615975611570923171627524803263118474894448773414166677465600792217370959580496176680841292376233296669185368302866064866779942109790954874942040331056492221324652267342095668021687015961128579877575617790134520376871665725245154289761419404674883708035429968211693920803026131558923837077829904710889382591477106380247166104737595817968912476732939440369575902715118138628959405928936427754352270302960726619167457860287241338664916529290231546664696525750022596741150886870978374213322234129952053738545180571040786568382233496248167509924260044102529761426773492210154211778168839538083389212519484920632689605543634855901413354464885142550192726705632922403728807983117053568009390215053198797767760945789687243676069242601210341148265276682314565279159786272272376235565885695998735854450949467474330402304001896688408739470675986725889488470176015354375855330610741590550678465317730942162534540106183102228766855863989349644561601782294811125310788375601164084260575670605771974978421815504129680318621844602902436597083577167017441619994370952062962556949391214065154721044836793566377112681302806396189379848118614846383037659985551370598389923994940542365547308137629639858046442895856897496252720424470412325610386922943010769664422468569376581747978996020030870893681573601642085111396782769808891352510711655767184809588843934063411375069300963505069932202904054820307907918825561954584852948673358424728759886507462611311323144361087633795038507232479731994958031982139554441327620647087317964131954501121359395243119744887959895682369683977136276821591807854973174811429209503189041298289221746791353258582748556871028686186242291094658613546292218535262662585985382417940114456508845763956905744025647673890630561810287620895792452552698161264691647526771933899437281988987746321797035518393990128584232129646218637453240362116181412567660501920807015892008803521247873573461488662468399621107752057401092598916676311804701585424046321984788113847524994271427571710846273604665173509340368872028724941825376712629653290958526128989492397330743766110828690285682670701009939973657520729946748474089713285137606850548954376326590123600099490337653590240780272244528572104508510763914803368356737915765070026382339222657568878546150763548559381393650548023747381724529755605467276320149895507490085390881913219298255870671076064344223036021697802793973744562312494060419054940714734215641943139779637081507800376123574049880015642270763606539651833038388713869258082221143820734274459155514765521163397888605456937187164190587728966937749423430916484343951040172618293769984811826715618690450889453979376296753769760070500436580069752348136430727002554160970264265674250320306527800778197436845133049414814131482734917624597858037726126817191262466424748989819258690062813510231365062449887406710986041171062261082656613379681038936962721372946993435258082952320360869834760098088650979742279243193215985021606426398005059197789461947900779451186462080424117886434877505977507321339873035725572265625688598364913738646938020989801954884727407514948274324519975283083591909018095636335577935521133834950374197299570722174362423953313923394123770156326730517609310185267849035958967468175632888157954054521803251983596989008437129609236693627603942427842259535402792441883594512644459161412403090756194819256473388431133691921956935716935527248623074857833795382191475265700518655552693920718737105026105672815904740858748476334270628555976726299899132332910417117170902955799618826542714303971985182803940062818186176572879678336927823531296499342580421570710833789980005084426385210712698981533328384475075537143367502686583168600700854199840646627894585619051532538740001466961599945804171763490205029446732822119736114401267281146350578807602339359764663785281391899982669252584690372922640778985385619292983442272152795066968060502411280418559335170526257774667462941820231767687139549762415324261750014266432739913599579793529898661449343075291250612661275294068996353920914940370260811209458441128482805122310518806563393350242228108226475699314949108466901605999066851986501446616723778898039361014632293740210845715005019103014947574476928858762570855320594524193003424921496112644052461942393202791682632461067712217955181335594761888603947361504237063411598148517930112607313792846742800721785243151334518130232644135693897365751945848836283893359081196579636191103436712978136646283251869747039882195574727600970829004445578907339402182815892893188521729853986682608071992835408671443238915102119332984240122239813020640524411805996894879769254630468079526243745721010171882051775458676229600681509819445148406815150531287483604922395750371696914641156191436572792143395139028803472183629154858425734143498858505774816075709563119281436619893858749882241287399960824936656006712342156093391365562059572649013505104274886640649306284203096547783658607970195285045928043716032181497539102038657781723010978361635698960550435249300018428670699662320261837116024387002319595243406656933343549407066371946720859542301792805956333021424062195311037708049723971295923863801397475692925132850208371873983567518348359056034395250978717950665312303043233957867861132823240200611959852075524939534593915942580769093395966481914975033823815337251810222104446451416151988559588463136386453308907371622573163299754032512887162875606053439203659049831766228010689863305728378384745290648013407863902393471555721741390002046458451230067238734180437960762231570548596588813901364614795871946716329603964019983519324112595824552910493958826141463788658192249711209820083809773909429474136374345955367052130467969288109116543226299334617737536216752671152295788198869948329378023926727613127237656922995798213344174310647957660869464666429673375898354559779459913053081703128169270321670340918899643065349509605675974352484588596613538809152467737557405250822818931335420559443682468734190092771312288844218991461970228371350213402814312749683924185605959709307786894511073554695308835424636811312193040487865589534087741202383623237636044704086279820531207319929178032694164272600181662530286715158360976320846728036393910465422471725320804965065720175929914245920320615170643584785548177256342767723768776466259855414930028457435354253008766173931390396519748226789844484027901297796717806123268433218655936528177182705170042223711006318663867375872063947216024459250603040171731808545328179094545500624826389910734580389464443442320538234750331244439108865644505752298187644144298511051163351469734319753216456884542953532885158681284650758674018207609206084094330159687136121404703837478429385147496606611594630372567167628839857571015544333821369236894556795596754468254510996814491508326121695055944605257193053802327489485567493500225362074361041136291695070338245400040266407424628069393293479110971604806953324110088286287301249873998398514969750998172889197780097809725955037451024585706763844748488936099737571748845991842652282407974754245580462340633413074392508921002500646685852196524053055349806217664129887057672423080129974625020537598138767960605817115701916347407663943017851438134763921861588089760971152811199847451765323391293368173316687049648157885600630114310660919260766839492203403910995681656058503778766035149928077667070545977799931357977826092334138224058140032082292935892424999154703557785184399635314332506915966795519620141540217427248483576406876815303754917196130086867396064079719258985218937076076115910683182648828514218020054194286915549844618052570873417322662541659076695592323923912551848176715525284714781989179483661894286881981753614547820928150767143102460996239052672091489253006106423423102677719618270665076010712709443791998876748876862507127870921663913664230806191418492696966831793208866639789789166531608546235457665194894127034480099219323383063448030540456989353621739742018807619059188868692286444372163859345051853883901212254861167024525266501083495842875619898265060082729200749940650368259793297112219647834750337369307756105356301682826694528790552385961038748637099169150511097608624566901692870820360129781496512342527898518731222374478323539818414233794900303527197503255512381465727835487044359065134194726718781507535476263124686935522057330440165781419457719734903810341284139617525973020436658329947327432950027700319818646144778337228895851398711817295343450321824554925060569985750541678882245805868465849531376941721053582273891128374217346695347243609833713642746618955473459423318585608034832994559283334587142519868649319433968000779180998313739173584151682506128997366644541419320934601367595022277231945066829795515284911246662840124162912451547011121154713880869935460021384584138954887797423950754913553835761010193761913138056337641329179960015359637552512954917127856775737030184699279196345323352532075532525630688388901515953024773830329888169892054350495260732565662034453825463760141939538645972084772897890385329357716130712755496947443197857126561767476893967753873515806239168316133779461479918287395595491575725338553241512765621824161048756032043187393219111338691687192408778515447760014716664021247695042003736656493272903477414805542483871734221958893417270183798949773539591416873432118390036385819937101145975714485754012564605620015444114819809745816397969929675178049644095928966142513816776809355147174560016241994397362374980341617488599258412264919610231371001428087634183816991493397089845779548229683970257316756097211438965451286296362722672967720355993656128663868615075742259604036936443687337976728053660076133590640554788016910051666778771356497425448878222677002457830018652294817132244139450774291078424993672892946048913519353936752345339958710659886352173565918616061484735049997222978034206543558473143947071243308666288489025350974441698872288754735304263343611856864513860872741262758245316115090052060973544716490314785385393224606324436783299949539477867389354609672146179736213301910225080225400706754105780608963435069633325329925451841977949065728881354173756373661453488072938457205223880135450562221896683589015054870252139301571480501321434696165719567916673528431277159631654451684817944699993041936720332046014852289143877800940527846097122235366885007327633796177890333891653191929981378108534326134900047606388040637548127366585366102373384585162110712368865920006272419487434260570292988836213654422014659613923341242882562495052409437179077171031567047345637152665966677637640509228273927918760488647652118498043879491931142897909922797933550920819157715963382755652069220909190439002718329723088511257493703987431497435546184081359088397969475030213203172146619960865375990928786305900289743158508985168492686756027361162808192447715094263579063091979317906854877510339549359053829100307843685715854579149931985541413277734835769659057986462665362591179684933425324036054161219053362083807595777736997694598598434539834461959649961749640635158708268054079467611319119203467956733066858151742529688508289364088358518365671080269645689169996994625788019387049868032727041550805005461257228926275792400476598255330439184516912840704150421596396940641981664353404980931343226068775118667716577324365138412276669887107598328164682012643662519235818962154101887500555081437405576639613181993037926325321263862199991557485690513707597728811748720488418729144545105329039975418663751212113314895374646885166175603975541076984563603138567809730066069988737938334985743499998304551996357961559136557810376788758822505011198886209107028136641920787951474168629702268211650741760275414947803240979738118408195340828770127547133147737697190019611667678132857129707211847775516083328003131910710088721998031594539980269588146723897505062536259036291802923627390609453598662146568056166566506335142192478882450426206208981492798059752030597262728463774762943710886855364786511358730860501419296621797458909068219411477024611509788008749018996683033434985680351819368815157435022409873992969430024270138354391920132566983365730952212305820887679595679893933114978953942920799606822711571322113232468509877755000924367799724070520337083904420189095431991207835676200153092448006702103326419399529226836335443704695647096088764020772667998384524768513022001367843280697804122756118379010675076929135961071647448265225440469458919437016547240606645376284519022637665114330073115851111982591513453115459799693640344192285807536834257976426222112442979321197541859381798923785456892406946933571615945067908018795845149942442534163417225947919622412761263751554773732244139455014872391185479846208608200696747179019988762218185094963528176070231958619190151630428854240955163177299301122011071025142867795964300143456198263025868283192933475152198414006914060735149352432043095100015735690774192961958876183245168885015839236560833105429200669717404112767319636755442258173886255104967787239895452143501047779055743762342293389797558975484056683179489511534214420001827322346630844930460195651108634062556120120899310895730890686567810322614645803426126594406805640167109700606010778574017982122026087238935932780905904851743347639728574533771881187180858364456603792876912190081103878553000428172443787601466816731391904741348847187943555142865949199773825007628550890348523468281533967547805977542671281926040758012081651409125607573563560150038631616285510636753492544464032482276389393859577321853284674606414437905599910143702848623808818934619925487415802545182440330456656526577696131025910958331060192922512782466628729567257097356455216601609866794259986231451218120345196224036964563121346286354425832231226120767352874134618942418330025060388140561608468928992340994004237852791763232689566117499719549959879936188147480742417642371907487005713686702906038737219819643917848350422779708355046539686128945594466246564370890902925419777258134806119116524496745081904704756756489772140654227302841376784654467129601671593933916171934493682129038684889304270511640532299655981219025905718944045337264972918381220813570483385336175743302650746551607445469261731789681597723852984928037497482157779545070468089787471171982023065582561130193621707866849383389161553312802850884768851560299393584902402760422800588315258467608441760778162887041388145923767510296938865449021816321772838192881779346365432752167897258111078618635014219549099680061267754986108180246820124770537125493009865904287306520091716855289453208543082895049201703083536098841283734435160660037066847133717174135262659605961834134071377365774701368917504641647668385629238373523816390839853284692928599451656447407054132844064441348924029436454764376014983055553891246122706146229512657516673005162887106126444003084961786675767997523354243613732297439745065321541767695256708226973768221818879861951560154295400163563245972810192382135541602203616784653866079272847017402064809018350969065836362221891680585025591231172708266573055365655587810746050509936357255596747014385851178377046127231668747467105285355773421104935977810641684433801405983922849737032558636411509121332725723961041136819411677603989611709418672456196381727691541828535792696584493565855107965437093992315981036082454310979937380339675609508797752367074798630679222930947692626029486798154819051790118765528403393036261913084149367910405930865502319427186596921608903130301508509188164189129795395467017156443496027840032517288935679731355060992542371526552331860129201451841610934308178717172406723271801257467341538979356355910835526672155455324973041334161594386509461433656854506385615110998663194924367617822219454448276323586399103984952571565836959707585440182459589227849124696961404283435033895390893829792771076063314095928497589208512768729443529241215638163722674500976526163261779401851957692301797797821624761696657280922008421350408815155550964074515650066447433541651949093479446138995199256384863363171423697731821905930992234442027644124551873766183518636681028368581068188609791640768794402894363356637264616789340363234357652369140950901687503912712352219804901291327836676144621828401866931823238978103609676084492149520645952082876393543208894509044670499592834251512925802452336559981600432391046803595216244528727099720325648787840537036959023678380814708046788240495370474510669403238042509866567666040828496923041666309021295711110612373476601894479910023095208375373501456946313962565482020805507001747346480290474018635945355071040176997928313350567362152039941160074442298441182057840404975935207057662567496948373606951496917086795773647478130856292186592921955139510916486936267353117405704785776222349705346966372814382730850590969223502753399208823285722026156902432796222082584605645196362432256862900393296159627115968154388118845240843361317028251697347984995824323118401785182204832546589435336895984323204526222131770908043032429006324574153573389697195310423192726419943416285693166893831097577723654146902862143880884637735109054720653505202346957311641557534991304800843838788619884859243820936986929864225745244252908038085034126280624786574826756166430655171303050176586264993064618267889888618947334138367461118340697977641830919122697684404339399181237189115356943390917084122678026764418869963983515452716456552088363208190141223744904236424194306138968865451615918219828267608638751825068484345945910350769267500187804912390812053179946688350386536323763135716515083165665668984529476854978810700431065825912271399530852473976355170364360289968067361832843537150047473260705759677786571231136456811426155371422787983766886442205952288246117882758683228424537958741470892918865469442827807909023264157784045315888436327183102868565941790656892161929969985853725531552027093999505636743515075624720156220447714462047003747761497870517515781577637295344836586527409356412001690540280804577155575340567008766196560379863709137352820644161265823859377558635963541811923669935284481944205294825373347058531059657778977845709661469034289946264084166963085875918411875509519496581411051952600078384625691397860383378409941160297824599183728254792811587684419037835587261576028390726682947704042313491327392882725450700190348578507763257584036941609229784297048225552778264334505028177400294124335280422299729144810640674628465443121748013436654998594307058416610738041257953471147602736595758589161609082511651933873496744934673237279992707274794556063489748226489199346957638926084919366936588344873566434766105734988539423627175516845458243385168491429487869680773111970310272313740476188328911930700218208339767968499814612574747865074849603251951079642734578557122085989836189002011808073441661248138798338216142130482185387473299488607204442240864759751553611782293118643342200205094844913498680950314977959306887295744582951466500179586642477565471935845176708880576581831480888534918438849434245272693653631416540282577719755681332636317630294080731296053417768204753508173070391291614189970002725792677730192847892216153113977642248629759641133129197713830379725209842678116582809573426479030906285209795510493159439038104999250426115454681769362535888865387882619381838019573930422505197334009900332722567151433645167367460979456930388862143594017190147731102550378106164981719302106588074938659842040318668233183265765240108581354667194766486499005915548690519943123924738658596299086778625497046931606809551010249556983474629339873209048381028832820504295848888398976787834209421450601040505743157511456507051651769768954212768839423558785747320428002903461625258114480221673012992979031887554650127522559639000999789476324262075227966875653138606229721474429453378692516659711729702178924755341057278052719266960745080107960966737300031972784502461244256485785792275340647515350585259893685135208708000663832602909096194213331530432527886861755350507402358790477615595734437679298186321243227156556810536764059235622547309831849110096303453790043717291088391588067103377309352159263328459509965348523933189135441983588330315291701818080966973942410213695207296605760648794056916558898202315173250885600032661567197765666555431110544927728209275343534110903322861186388202325778272631734573726202511231907262935856855602197503215068017795045021823213702611164968178738906282988777902188027568323034385415838214783301392341179236509212110731736952700290236212249712022336792449346442867056642920328372818956122016160575780566798935507994846551996539011142551469044685116432127279381404116544999133685420075137520330405570157198052603550474195280982886778137054642848315070090518487786127247990474701682011855321593848346888898592804637672677135459906488093098929750215794416535515972123944900843811060086077322189999819972916867238242402490636770827868384416027462404587606359585650882738127837433126991099495822576469883881008633585534078675403690656861470442254095621628184463536357662022659915103267520293451725232754047225005327085608138052764572898949937881681210962745678785494283595953132998130789638287018872355520705585608680520020465137625646521818019210520156988991547599587845373802941663701276288785818628684776787916314021933640407702943206692868669935767420212339175531303814211974499378064082365570617928201556426318607466471317696491171800739412335035255445249326427252001729272916946948305069912537348769404067858804253545195365019094693513267898283402522508519013293107716435681015520467560592059850967148502835143371476802469254440363352252703998843623590171407817810499659988809653882724445867617057969715252351066417342311671701354483841065185208509709807097000941525873555517875839770037424787487858184146446519495497462260345204438385720706035821242062561451484136941864784544603028861570209568916156109758292270476334883153313796411211280218529055184931178388980779924401605512252874004977280929113257847433204517448559969740512958718377789729368666720987442987971050431776921221463434110079074403452668544922212375396064530502674781992903197324501505049315885746785582634585668997153999934960908218601337216728120841967232223019038009232527918118162265151234490879170030533766894103412238699783790649660974109728269955528188646601065604186919870877806317868712755042700153811402063291062111726887957150641715274505063997988922053157859199875354169719310011467802415204096005201835765686714437711281119139876406985989168860858502587814049223258955831066614637536932843892883939885784822456788199746816976708653993509766762438219601979832813444826151257547437375523671288005257365355860465830108345636453185359203779559675560109286099410836280668419288042416959757377691075824352485436223592664439984973310962310548784582883472090644706973327954109441611612356452312445683166825501294364133060580990709317849857785793974841594549319640913769607843141633738976303788260983585744838900305507696043786418346892535006909541747358357187232550809533699209980352407637794036525995475287497922308222606543177683713350198949315372760476691464056818701189844911424914054783265922657150418562412007781103072195708409284020470738680619261535302074838065276391468254919654925265866680948801134118920410023947386830128234329927367208294082332432452376258379674309128304063993675098595696738551557446154221796347421380004147802046269340581918469583230985542245650596822843503085780637360940703626601268958456708353738098729023257995769850610848418052503035422314198376727019280800123112167665221172116908438972626676369419134881234703136510718228191590829676530572205680816862808440457876354106602370930910659386749632407461997454429566429389102378768920927660772823270210232783489266878819531632601777853586686444956970998262357173671392790225073409667188762657526344331200417841040597295200668359014762466082190115923178276242952880605416109568988548288779814294029613493202075360578536840503176848614375390688905987782717798082941631556783139667401711357160236396414631081437268619682171942855263329960657173745229850976958199320434428007859983254034039100830892127326301942297735533423407688623679899374290275134664569070740528302862752648179836410604364860381849718697811025335062001718540580714013617255014621456336539502487065318381683950935875290192255297522792470451869740536694265625024141968766297726482575641963785998951908392309931927654510387579517101157835763076126164339563560269565880212498153005895045223818512779413223993525579101640877129833359160659064565139532228891317501007867313184039122050954608530794543278170829984209501779904988715413049426417188759432429008049450364779780503003026803685007381578789798056903110830271264201458475168666579767035505724446665494050859725950213017835100197911861421894345557303153292165415048214621571160739458428393549478381685016858418905275056679277650686724447613381916413114851433741442029640167426705582349576017341243576390433809385100162897223152508376330044695309904536328499252112789477790675464590020142548210963769933295940752785826076880529995420945111991833820197871946838667048975232186501953729380266778239599695299354577676948869762033601958935627139844389019563864856254556936859106236313994426159582613756173947300014030112509766579902781965371378970800478683394947768700100986365721696126093225621669860629828164857813828035747714419169067867655570021754384286604066370125922161703390033266946551605624459504431884796470832679071720293855521006766743637629227844694989075621505472646073649138171919091874910114622484850041187169219512276429489613335918813446233466765973439126465580831334206528418807339049689982548771407712034119845791331201407759521055386455592097957766296371607134178182945911414754676521096235221440343619391303127800508461848565529179358624305283866768563927280391666308601530049171239428255583424201703810336985067836188286791023463305307124883783456204335055596295189933397419714822794196767492502702000790424122764290917647589777702501359773339685302421915437286090206730686643339578582995428728233422807087562566824607042576553493204494136370643471728777647115026143955980348768451184933215525687289777471616669765145546803703755657355039183501595327761851292641758584670289605656939144208515579808652183699193600159516075156075708083604594013469305871021400974586066925940981016063258422418749680604342428822482816216197670313844841126154840858735316397506182342017736120911664497694711028745216378480118532330314535135086566632975951384393903713027993590666378950837298313522975022694498496436048858756928092799672389569820005713879541015009877159594681200370956775245557895002218841817807699610610634027853893682813423610412878898167682740867467219169621412134217592879730910973018949296300220238213112742540003367660285348401334641044831441247607138651459276362300898240390091781806621935561852400059231280016864572082609122102874933860049884835251318539698041257788304784431094250710818581789581710727602677214711015478746066297984500053713989933384500652241281995032662995319588788235590403900314286688909296677744925078410709542842178798827118412797485465992374451300074695765096279603957739056780489765845927579174509604967950929381086821506483445725804290365740317415827858276626401279609869176300510968461745647248863288699291644526200736260477784292125552290130072096598684307487975784137475244057785002619349669193898304178313672690635642438924357003813690407072602419577489198128169254949765652484180393354665915968121472332904136532279812608617486964219755941088209665374442256648073194414536722877566139641483167148063071578644811542623536849475832304776235793814138562361217131913271785936894944821835179471232071308861214953479484806038859345994278404575727406887908957180375856735281654203703204238212802167805213093567057604669071285468610930481788456843129052008206374929530470789197131038622287092291392293561259032484070637746265014984479710768992960775595048572306574228649026908350134960324055935324259856955775015883294762727590270641252241064297662396132562305233154336343016716057116571022578574793757084853904963753461293664601167862902634407080086910268414275454926417902961940544917882300412920196849085950599970371906131821422810231507826637614421358116736137241237991357549535964856066524604718757747344893974045615567977778320167752009128990268499278091253299847516181734733843803060712847307173850706848506154314407175884326552202594561145404867752856346748353731995335297966979141644646970090448051691970295234801666795466236768442145111534856483783097312798702028050865196994536798637921582636344451110288044404646209491680796657402111613698634212349801160993637305240748986985017746138161704857269748461031135458517981823335933731705653290102912872452184722455022675991644015326552772484975507834974806333156247712370539032572566658119259686926584562371085048611427994428484080438390093520947631686974031958547982126074611763045973374790260694430858642161036523008305546673376847611268201584938614192560760255618466482091049481977771392194054883567280582713908490028224703564652589928332496398627019734315806271430061113266480645842349360395496241933817760922922184153534944425060555479479918672790688019885859049016765330521540613962349502387451924997359413759259229256678874079982447793041788269184935537450297226001130113098454647536462183903242551207029823794951119691612250159610715356181641225037662004066179723104312750360339787913383243585635270043754554134185549096024201291096683151088303038978653153537676295448943969775338031325105156884491400924062546281807836702905298298897534466015001124485756154026801448862555008220822694216533359570132527714220311442373361455739448803239140254627062051445975062609407207794915580481644797545821969993231753047240573832797539242365470010434953511226555733733007019385838961588353395386338618952490856594396801818622466937668836862556873943423561762956330200534123535076623999770416826900606044149575712450339310208514250781457235941460918798018520284910803951608737534658590007155662581323049713304940209024491875001520870832768692142932249259147707842209208867910876346719333146461886757934301114420157745484255003367047161038051527855953145403397699501388237715302784151947704619459581534825398460297182506994664427283801214874273065062995474036839395880187549252505168414992322091866533852239599896327086550639254395380946712543143782418537436489133164328523742771576863248600108049157460684546945447097473657408839965990174233488845898382517708918166244565860707985283499252453402185074459407693341079839758346296109500604187599124072336847147528288425767722540638485708612223149159378013011920169577509611790164868285826254231224103953077229127160108755410460293119839574151991929661780105741376143170800615920909308242217785599719326754038673517349559910182218577801181047893561913370925381734112720656279603823421885706056339938076136623487951171485516724152827938140659659927638100083322465576615021867100895213201038348474073370125384220285788464257472284791681215267336465612182884273016483703898098631089586835998780170272580395005147370261501612904569911880945661816357114301430390481345948999611867172025193157119369575860383075663424642500503104132407502848569128666187281678245968910239643641218805078783218511261185413255242118272070601471354498447743637878998416306915443640629173425675042688283690257042491877182909130023286178466890366790693585278957048018955734208069709236084251331655797513582110973795847796609393193419273642833867801893983363732506401970964637682175936820048740452872751662395877108237454909079697816055424984402750137842110517347109003189765453082669382068783671207090895055788047936147508310584411005492117303253066368555801493339735905567224244559535644032342659361595191050764993279725200312021856393965659462586654876300092526275144286758762655974460355422718868601725513901851605500135222517126312767755772245552430168158965064890436160609145537103078248453443097485473555632508659171739982824784700010135538818767951539539630210035091259815624156003311097788221502809763135739031484161035202351110447283508384985230242350999507920082856619456162266970022389452121778819922736711756830956298678864037287471186526958488707109770731634144881405357073194771760993197634574850397267929168870377929817893390783966176300155454058464981139970128816420230557179524233505635913470475820871020976802001429645783513368299870416843418404387246674220619324226842953346739978346446024730149014067155737210945982494047816172644542271935567497728456104277384830011023636104737956558594089209243811125345291149549943868521190674419580599479056739614819680197073299990512005047497117260377534713296834393490955452017424832297255236187510011386620393426457591415293255422708190684670495225296591697849986080497530131589111118324689043399488242981538086940187427110626627332699917550629940291479602653958091133785058080418670629955678018408498039171218313553572176854079151930618896806383678760461636686379161031572228048723197394910636154967078889628693219333173683872349213189587905642986037203666549031243474200753686595891017253208067167947241444069601206154985432337405285038022197549256096459920747998257909287206274468780018418114455254389869432175574554794908666681275215865518035240378859742112215601444701656483534540287843297379815341671018402282063055796054761033175138927433354398432405925002254813915654546144102795081439699647998983110396260129070452846686773353282025255574867974823877667293011294042206401704763080141909698060093701120810487146006819441236415666284233266081577899166984468355215974819052752865489067373903804674045916695564150558812651800257685914051441225816490719437950122424993672229654153338155436918595798825726835294826430853298366081978980532674256000071034350735288455874082467452434167885183060501484849957443162095357339981309404060350368786596281797601134737286748685448440041143736734296224270291106849746290616520562315890237394444543938375595183263875455747611834389059381660135282058557307524134498682212499082390650326578471742185050892521347339081477750959502631628472707315237037664346015248822765752818296554375991037515112445688130110026626211067190052475438628704554806052714032371480661307537830150115398467989594733523951067023238995608869517136516427998566412111670097938612201745199712219492260339066497714478844988605855609565368763713821579260951347231269011631417274345760634994557569052924996468343156075252377242598751809256908501866885878107971301630649916586727503797642586542555114489446355958238033349925526035691175976232475359971413508082848000174530491175394244460451612077940176167439467271300686029316586912530221605404682495117001390671681788180842178169017922477823345260653063100996178533933659874264936760893990760222737584491917630556956135107122335205456024981860293022130383893724193092091365679455620601557001646329957284887415579506786589952912516882944219755536851149996565603701480036207281753581183038416328777262195539037436730353334033467015268704031905681162985920080156936494493662413809324515826875835830937265580523590052857137346611887566423194146272187258133249972949988734361401308789322615244171798009745514193715694116378611758297386480468369634930442284951661303550644332130032881085242940444352706004975912965767356757833811210276401402731933563190849413170804740127543401869180442313047907835651654348169413388031149647442177710338814283008193929677505231993833709456955444303302146280771306903861017706503241902660024244816077783023622734663225095659049968187633042515055832579244548257164384331702632154676504920793545632487268902095237503997589266884134613174038983311214051301190311064199733079215151627919281038160173116087447429353704169466993270317366011015117144116112480591106350123707631453048755619051161871850934260616312802798431664833998956807760592233272830590312935013196119066187296427649719897755703387437847392114925869854734994741427299625688526848311060114834537759382033755116095126258922260817050789563980232501824988463722893510078206165715003571729675428055977627152401530536566931545698416893368552972045447420535516283507948489294510119576596047564896478159577709992866750786792635858632990744985650974954489915251933293970804949410072948104154963300743785726425559228532585886071928364605858236072549007636203273507205822631448711094397669972861088706564886143670037612043067768337845781136026531487322409702344703544529326593716339350052171183605787320233095993954477398588677928186132654611858354486002359807564198518078171025340119919380357813716645158922650572820973204469056696967290310176524155320156229721982625766763071662921321045083565186590682974186700939170855940565258352463905873699225286115441668134426955132271827444046407519199485058582222230197904133738119595500142996722543536670009066293392553332907294704248425794351866994991700515901297219100288241087327134461011470906003977316672017745931888870442609633496448856323489245706929872192566341412065327038406683912016393081673050195555683025166326446000209711004767012967839024654482930831241162328634888685254387956965576197195603117457972283747272620699895962736604537466259693110489029612481376361171992993466428986687060024449165779173696219989023262307061531508479161942273625107654112226915065907526181129851700739197195312210354204238993899342440439772017160570771599787786208855580631856178606630398708321375452035036934521953745229254539501426873291626266148230098228269167896547155335105639380637934200358102402440865147649080847532319314389768184307029382849232243368475191033112755718051313926991307351373536699681084736096890428068206570105662337950107364019698185855273847896377030754078914391825279228843919796878558205091665423819027929469663456577858967986867464766588159166890435006333930798070288664826004478530650191766981136752424053405064768395633490921347451126527107973997645670381536851055186940916359825445406252782932936920161469893047482950912197432892223277444617360989194300376761709105482533386695347812730202576647358639430059999554856170018443592821519371956001474326022962313208373957326574548007589915360017812118877903144468152917774232451232717554038617578041996492804148639479878326596871550629203259808308315245673657781465970459701718832778952380748478961850456164230526417348901622189661838460639436471366201724008004059632698708481199455386820832802555396435191451226823581994032856142109615388393197490604683702604417933154543027183864963313217428969151760840514515977411154242366595575012884506845033437049290904656809553409104090235720725397609746459989306781187820926396912513825715690645022749333865834255205995858344967715334071067256298364101011719254495614003833001487394545096768459798862899382511858888476820495882359486155665561797229831673350147094522390928102081645761128698503574813908023410748238940444434533372033066383039545978626274967575830993112050503816881327421253830229086972033852624856183870046968997870147955071099136707873917146122087865721694653681303294450736948796968356688139646493246068035349364715578448536787153384018313040669296210337937627599595884308063367227170639502244581520675011465569341577646351741416257464038387956975512304135739479176411828854306733107946740757583611771486011795048386499557478284929480873750395690207439303805855313802367154729465944399700193767007955323603199858077808084749353816748777163575361236894329095708749342941399831432856668714514708644933660769856278891459357142062745188283660035316696557267307199707376078205213554860840033036594527990129233842272116768018114734016607007362991930469881052732045006790164536848712113653930427750835021815641785746104085688142529580312794339333960422458260912585107801055800363096119991581733350263132513787876925884775243012379750510380344898376353540372474344195419280523383831134720082218495689847538916359022330056722427766777578397404649649807570663625487124572952840175884738315525623938856908385277160584645927597460462808398426470583583822536568851100241612591660631540735854473139112743277201928292767234205078949611523521682301177432904008054111279379387447066421246653943989439700843132656807766085325155776204315356053005963083977590029813746035747547711592324620480882704643524216599517198230890527351314362089157300121137829901218465726796282851123539888236780407105895217042512028540967602601075406578957795342938105938217301432213913685706255384563968550959087482201310465169921342931931124074439839783475871619887887611494227098001892546237658440356659193694286331022094986372601499216581879195097347540441784713222086557431579903244044931749028416594285475671693713343618652547556155377916879211371145379084081571663395306954852338612764099307604757829268799347836879975441889979545374548352827493069507921648803978095927665233094349645416187290423518452682271528844026145875219700588510361583257512336671569298399479877596424133301665526152774755165637993128395561452339764810577593505899636480160956089365410724552583254202914877238005057344925286989152523866112265852322903580916812891089810210400115334792574491826008240897458308674357563475002578429112184037921806061621570810068391318756980793244083330583910079902048867362868883936874668202915368984055071264700127394787232285600629908437404969648428799636482818093487611277179120379640034058456701812477900479704391577698878045159804078595454425728057730600892301951100676990549559659696913236074425842709968548330713032736871311456962072042620272838960410815438252195023964701631345732690511213174120567009678648288134044815865875310068717749672035742495186385210128441503459562622266295430968535794594038616960420592669665447922037871697539454797594652061872239265372714135221495990559190933696474648077363926013413540551712547659601262478852264393676268327056177740508968761325913813519669934997944945847813064790385858343811443763789725252537218997066159484054889155076557521506335435699822095011923030576039371519385824227200077246268932309929275829760118743591590694510878695049984979423094232764039749503847662113656151848367023919199042219863268387759706490352120136646429754814041359901047339719051160847648430860386150524845158987834389756186263375578188287624482053156827308970430308199502016103150785249540179535623532041537930880203436164412468978283394709400125794529889964302809914727368156675931383475415823461454765018483030513437726777198349165261570852394138239471055192907765269461477248028151488715723167394731204622438223169275210805708994756194640297233177772471033034252533412822851076132619966222970186301096462136827255095540730291718054611690525948056326747390861336891134549287322634554348606302592317648866221965294625664432189073345288654255715175464579436094372662642399767637981495695395243568390122255829321055050117745850148759669705246496136679584432261831476040545436754906298375969306877506543022885337969183216609581535543782943917082971152470565797233204488331061000129230285308281650085957822201773615338719747305125633952338206361282803186098983621832159557157534360822278979554910376626249827771132488154378109868300015212136392651811539925967281564880200425417030818784982386677541835553466449507417554586996271418949701602892543165776123492876996569813525131945153915079371851541225981301573083311382377943616142849448752140525017230967391464540131541050987238231199943035953840882944066883303878696621662380057233972083054739488428649848970350553701809513369495409641493834189160788076729592310085972485880660145873988618643664751401450021903936273769598998655516987497101992114460145778123319161831018092238314880608191993476314436144453506694473519411362708236581744653997546453770277173093304574418502517278894390847432533811625133957164341172205323696833383961824580941958037680826661079223225256298142765630955784519451519958306993843042944098821274294308864846382437967644195886406569105884515894129872766921461555246706137473904684061225247888298722468922648432505189811860358297636496863286081947094102087355084423786385601328513898934095537977359292905510438905219178725352461313533570504298948115745882201983109310388148039550352006776728898621491263455508768908971605013007288374545569610430817987719492997546324641235225815333419493449615000495251248157251631744054181099509761567085565395196623510837619381178043459157573810051186843000497610653462906337195475802436765187448739142989290561229623479614859734868756990194482232056335135587935875089406583712578517639286892586210374302674147851429178849773917326643799483708783286073001634950012328761120448463700948036428816156318620358389301709129786590761194282166629303093160562352327995489013513486663621061104015330399901509333427375406453031996752022890385099928678318936211349304206540018200282962920347726098373803241050921222647512279793921450813468204841491520867324802068840657604250515501406184781466032663988375168455863431864536770633142336010084431040567383016538236515895112884361831803563277891037200146168530139649651533318290351110595134300122032692496138902530015742380153211134911030203914593006542620290915058156486763434163664582746102947849778588319228904196532609425095524942299616976211096944601158946721505635294008361235210527130649614214805701759787576248134065601285776126525592795933726044382650265695284154490144439054649436652127638729831809389685404705826446012627987393131052156284001195662589365454761369737618664340601884372995019796416513051827778207578328055924505252161846152000291046399086884842526046807791484866038667047153821115309035114552660012774802476250816560658139216794595243830929394114260640636780307793454093530991083743622556564001133940742537734488447284099177069783406074154075264916630102728737900896035953605600125184275289141862550050614161145821382922795135998219357540113757795763348729012089329441042544854610777797194678229773408093665545307833901783313966524025880459088364477804937020919643414937463534887870421662382250906142586950755015159999955088682891974066499110598281581100866466419748423891223171439658816478668309204948855182335458872827574036286382428664992192728317163344828477517870348230865174213889701719958134080540577290071867339055903549551563552598659069453209522706607318382102095084123971137309861174005421399524604029259026277751751459199932717515197093816190034855273694427486087979247391350036176983355436085402611388006136238950274318181510694567513976322141990047287958048705112369879726608784430549121493450078907770969574716065076655339265796956690986435879017504166931818087122631907805932805882305069774448063941366980336432866951614124927274582525302534591125525086341033187659923258008093351885244487563917915048938681514478704801114803780203936512888243976351051149993719458593881448355369132413371203917071889398857544602433464206562281816629819134357475760439797034203477496327195885921023883858232944725142201085567298233092873646410527255456665591692129182743139368586707711977718732434207794066884712251285197007601825856463411931744934441297295958539602832438858171736538126278966634534493090909833241168492148709229216238947459248665511278402916525933517952710678204174567572036928590299201071187948162882780877998295285852354761702222384921412317140673630848956511812612055967879772178554950083578092568536507254156718465289382584280564861036705876356914104877384808571466034055754273457916578918275788598378911999625420871446223255140425093102142038083349025066122811959247688622770754234514455053679540473194436904898212891803038102451039970730044595131212979721107581819428861603052828816858642937463033627918460221431721767451206100217504117479715666804452002395452589418344106239896003660655863079865740619149910483098747423176570482687710599808056660310302693332632827478802636192504100732315964283462559438611934558897155821967983415583005601625774695768063308293001526968472226506523533332721275417833794492449595060772374157526085857097068864542394475152954942338031876853957935101018221979097259894812729664141538641195924359979181288178252185573821386761856046827738365369892119912990948932268052388728385843548675255981174769579314048425763908804458386391828781992503202973598870275459340929283992211532118465570201446208924219989386533092157707320065235871116565430440154820621923860088437789309398640205857686241550016621850783552176546750688447005346900417718418223588876536357963766126990108804579591828628904947026064677676007184642053461196613388405564658133949320735485723473620924755868868823813514510211180605179777629404882909918717015985561058156360215744299065548306408384695468213945820555299247179269836975268477860098571691263965308153610895946359924284919113464511396806896404701388937351880700399544227211070957545333145128930322144665858953409440697265242849020134705991604184771377656332310994110136431222249182104057255326439709743804084414109988624701691288008070655386961485676647126098611592887567028923839837556656671921716551098065201723592639276805652573760134741588812332652621458585831126039987527500540156181237904911254076037030332305012141293384924646555500590987999925692841779659521278706975739306833420790950572037873378565671791898748040323419691497968844077387196096236443757692626917606164757664037766644175546873708564665567958698048947299715358388699914864115441184437709281488669567658722474364233709221671117192205900143239799113328554016849771524710042296747855024745291737290787752433080211429505182745877951994795373805371052866864740442441597174603514606278198631482884270160058874746566439824259603414215849131516355719381141816488520270080975934148235513207026668629166258013233889026212750765821140722774895074089413759659978752051797250736161682023259821004624162972804054483241201515938069863698741949251217025836883560121574821589307748850311154932997980719207655641567240720075855335898819934004331173792824178324415485137835120399406411652692302000668208918973340954131188466494786539669749584577915130663981578760448463423478940604019941317494567394138059565586496651181169123678386333207129958274753003472684360754803551838606470304909260417863241742551445055913312113513278807276131205872258103090160124816663720169731038100655556290833169073301726756235585391050381850001799327092427882562964500057963247717804766389156398609466886077245960517568760290784743432177947960845055963231685374961580412186189368775899510470469627752811551837761403364664374711620185809235415306180502495705161179102693095417002630200256253954580595594844346890244347229698018978990257259694048843306473759783518206118253357909789831044305106663884091406446912879570320512368587812954256515989918438614072274976152153858511186670473429717300281419786161407564746212881935664778109339881182794273709871195438651830193283397652940969009031343782853209776753479310484460332507949842911002164370063054631263361875289412788653174121716529770229603322257425331481849583246847755162820768903283142818678761566377308360892928097872699047903162935749608771707124751969773526385257652531459765109337167981137040382764199778576984332045600112090758087240431095181995404897000193240287134857256930375227650635966310573870306979392593980309516579065629483840560961827593874503090147252409608139466704761482626666172095797929427631591572659197921234157065888278235050239927473276885920115839987779541420871813106664895539545410000966000656906623186072578919168919490213846268132091247495410301129718668648374207197361629527240581565444101842120201219634639442271068379842951326410076102392445166107717614201097127046853613060400970969837216991011703575720916555231843723661952060073476119835579426892381556700107509407437533762282667387155500725104926695232844821942130799299073258825657115122867647362822819061609778433470912058326171443494033348311611016297122451183534248049812266944003604810861201805543785167351181735330218829729545413978293865955327230928229725676673741191226674146754565455380727993259303629979209655063627220364695506603380652587203220008500716397911923634134715784981658009395860843344475971481000961930859988663486718647090171179495142372151991217320956612901536737451244197648816021169669252894969480729511270192927074004172953021593551348982945836605011039282644703296134383634496912055485205638145072449972415629456533644655602769193250480732039111599456964491365885324459944042766001953370139559576466934937032985166907585162897306531293638144059755978863763742442952891006936163535795670705840523704713096696501631421610016871181386980061865739334666410420979133571942210481368511586428080651532150600348339576761431003738973836257371620644319805156193542944093563878853791379084461894985083720472503034746036982032868236339785003427973243827666757182967247774005281480240217931048381677942424696784698880272838248059477783679375970924407182440671881380478456935936959020348999522959897755242433927019461532745453845476474605948569125905126674473269377612043744458520572835830579454612316323853546810696107282109927888952349195549935169935123071040629564579897394621254212504535955028064515423826293921264145085344314238334394768576321033519487519886105682231015158134898961970769592120145151955701484182234799519398603403485343710948326785847149629644914262578183748434083002500954442156866758181155597805964252024686032045591889619404866404775201840851915659683570290382361595857213116757236103753932291435555203754147433201025292311571459160142387305841330629203999536841210319233578552937034202156335031233646154888379405909052904010644734446329899555361796515389608858342609659274082109616850182420943939627426544258410277885901941175580449254037424369131259668833361204766152106976455674146971417961009441524555042769433027130151986468788904550875531858155358650996197502912752559562780135876629351228990710032724782478550393443650177573869638955637132731396960536685457255567751834117757624728532856987707908135652821422837368993740288714790840972240429173633123213158558347958647310555315263327764425507059332729567824877047630983550448452663451866363684149625079987651615317277901472572238369887213494755419731727166822495107336892538205068328320958289085372174163661384403963769570502629103740753247240624650622059070681323366581090922915460522512067599566243510040658917494338234461194762822944584483263977534016743727428921053191610253294284497754941904315331412484652987783311190370545808878423997560584480559840445845740767504993098969487045822960826205896492668062486179705962698099601282505830294921745300471904103840273037764381118132739212976492067619459705803788693370020639349313995484528957038521687906053823767712700495146456238200156369643736234981729167718703716008465084410759733981410215421343127076936135273751483379244146035603686749814257099452255619186338178405648355198077792847064124422426673888386109299650190308619372291590547800877000162997125398535272294670200987957670210854311860512222517239629648498407746013530037387559071741825050982537226487370730523045195870119120000348791429369610715734869574708015683209580684082244293461577047557337920715891535432806902698433664470423383560786437548099408475962104981121494912921649691101255409465515905678236878608859506726175130234861783265736534538564118209979375322398345351534686189090983526296181674414402479302731313323193237290644032886594287111933024417717589177059520139381038027556266638680690056688371161933184865588914092630194401859382099574570613575985426726754883144776794145303545225539860377101756278369947702372942183827232850293338544955723374120925845712981347802999744742799168418199119754460308843691099619438039042337667373021627382676875506635291105720570483969691778406895465072663980577786759849980443884796850313792276792936008035390564098568035967887366966186998375270725717030471640680679053752689149625784715568336801606804029775654256247155434918365674466658648106553529860652834432067291466454797303479224567833181327711301580517556669338520794951039182205139153588642983770355628931892034296890421876549575731092579497762076757477994557884187766037823996159344809598936355322614365276336152447471559184527154731801764065535888941500911352106102740264260513486474620919163806515601618067169590444590908576645626040391172410511433224931717790961547145351854257423818167182946531326138055520794875172708839306459928820511468854232344848749710428967681486174562192258035320489517445069935011914953291768075860070481696022647319482853362558110977280012208732384574613958974605225695016658275772508886243405970720588741613166217469996402087033592563768938083306138221174741072246351878549106688285800605456317140564253203373613057007036135940062203946575061618763327784923930986647625549849377438628014209823925489407824226022851725290296755205225064264862409027557166908014288677699389422396079911650547959358908966643079312079414938941340733350087321115962108098114248283000144738445191338940196437881527459425954743621625785398796641826281172732636855434944395965476916093921109495223988964983665658483064749295978534508190718049532121656360116737914008622035881529597967693801853084773656411564574882987631097455937364141109898392653623564945106400687004373479804227266242787227421083952896176420958740183851419753888613532499509931173432393721324878935976302817661424888730504405678956862202127408040357218000954868453861949647488381755011352369315895807127228176647675241762898576397094064883472809556065110127408050234635012599812745184546430807871211440875732361659272411425658940257955318194050496822980572781025490039948898414373809118869583963137935301344067534792898112587294360843349975934090657900944706035366342608487455640080532241647535466813277212314660990159422388140345893756672142835047788244875783429610525573743769779004105324607459564930986001820344484622592546583970364301187963979850096673006976420096432448590425744287923345785246287020878345633649747703029154289372793117111714763893191262809025224591017204337841983074327990043911828872486387569241008304180235529716791976161611706743772867720667351334659226053556020538883331008754056275033204176067164728055837253953503990908633793131743650062793746141505302645955613777653243442930025715266435666597571718343119488333505830760711135256178247331741585648115151691762471193484289040485051545991416250530788879140578988075060497916135987858769516387583504724858006576900741335892241312188735198018436482259560413355553180930349478489745443165823199398807508670334861843563926119477241972012597950657049240463352712928756997438270385189017054820784967378877942484856349063647702770881417395640293065542382907802056154838713803903108474753251289132589641808930021433466188871560163437845035714148846226126181438454511585148240054213800568782035700494404646238250243616248548030926175850987416434422681066331597057540446400671406483258394539865402469665994946845365569441792301228380115603366927062079417413785794319312552351750248141393810801691906480591389083974133147976938396286462188034467450613140928601911819276806403925474705116892827163035741223649177518647248646360763866692801866975339681911194398888387927002447270653239731926226970605608996778210061265783220739230357755312438416819471202682730347407082246882237398943393654885920570500095964366754004334864502398617920079690157335295895920332969291012536101347775520621632958801626998519417731363632504208231376362787924803681837551068491634819617134345228171393275720252725743539848171546295559957412323370577482618062906530152045249167386620230854345310488142878422657134590738946933013618010730286155284712088253162180568959689850101253604547168037827254065703890633653510105480609846235620051174896222431823584139726907995267606678048052584201619253422835756483098582518009158793966347191275296248138779740229799828478418176253582829135922086357944253037894951837803611905673828580204185965859138807815031148149880253311600394531240120639592123172721768176066407535223985625250421905224816909034209899008778658134986130937451737363561602936954262172871677800626815545059768963427945524371070399153226232963661155892459496757655945884468156097903786667678526417900649958640162564057301569454857739415880541362244666557964524811957505870067609402247991804649804297343904888141802018069457840692412507346725542540001796766892618406659360098640735063623906259491332009288493847463774898826538165684958962035403263352503664439196141307350163737881288484242626052097631989537662933502259924304903188800165626641264430615908583036121696775710039280123808856996417699499025600280222828527792596091246935616806803660455528673386453412932457113477632887999028145587991262592762813369660416127649410869059790694014620882147105288820519341014356813741328061553052523353470790724854215399161399727559839167483194855535403023411376241828105974495347143950687686419904386947041539850385213339466764258004669668799971572930796188531683134626780923979204142153861974062623033085441852005235334390642005748013491216290575976221701555348280997044641187613694933669451526580283617385459786913607607286231269501065594861707378984961033949379462172778369921380769426408559011182543140825000285345412055031912739335181230199295315849131423647494768593114259387149304661679877151411457549578116085139144384080749548484810669929983867730329268036623456158215163691807026026892423465951245711113592768643805166587280985481786573833981944694631922551718301394248903822729984578716864380406074528815809295478144096637828430194294362940711496134725526898870583629634995375840371104921401440629630210491137610747382297510493335088259976887152960318965185710472209600688268927205097700777616200299526829285322067926776074135110431667276569647296665667996975084521656577344456779106752744121560666291751678921192521430127581256361756777710894446413823991029791261792052494148136999239171756893614218299256202329799610768306802148246373892115635155602892332711153930016998363050859107826469283779247737081689131155087080698457691425221722776851788575887146892910563620701460445096726983236871045341558733411615239072942936754019247354109833060748443905454597550153543358224403419487363757904512284602612719224696402257595977975060432291165807992349060256332771064978384745737705959102457862677186352120424029565244568935839360703734142904564028934283050568085685272144999176949688683561404678524480672914700487485435343015290996856736644441357590417538210454442137689485531841911830657615928634040494933227849161193253437275993410097451910076218223417039679885208457875832244798652921744459442064109458514119168419730928767278683907668308286069125162541445298861991576530268397139161189288035024540207345097756790173656790675310628137623124754649745968862247017648269069536369861331099113864720865264092309839099304107085503540550592237563442200512630140448927847295167076119557315276494360736596876160633742824462860073542160801200204275673547752388846916614756566231078845342662799771404924591232844059823475271228980622220644462215316342298979382004631235870166993367494235337804673536659224707130078276649708043429401931741004304130182051512653335736861323218735136115352411303716231810156813206799046380869308129919870904156152742326244154128964436880688800251065771252770970629651680705194107305798045889521648428295857700262067502298994288255657517557823705053843299019369612779971898503811616730635232609011801538249482890951110363404747797192127816048198548701151369082073058231009943725856088352593666115285411520063771300862514906344480099134000097104932318588880917385250135644121103341339496928027901054065414480281675409219250986542426350542875356933964143330710061752306025791882867501715741772951415881453935542818973716641945978108465623026273348416737319819273966354025198297820374088432009630826429169668806959901058436729708255424245978858881020039642849677644739163355596954960518940355210752693208680316346464457548044732707995446463229414225685135339788485247444463226777766410741623950085570581665249259136709893376844998400297254184338873995214569407191794608645796538134738639967949359861298294606723577414495509201882619529948336792869011560213049608598808457120955462207661588389368873968005975322434404801522059639768665263507447127302239198091944608491718313384190738740652137592217638386735980222870587956300926014337335964224850865751810575734815033289008287936218969961675100723630189601691798600633675294847030426627017120002525116210456186982725694845789656866235941586537749726726690529155266976589307949259063134607121743784572425402648221462248032041414255011672734326477238464862916363871940837071648311533132460481191294568997316869137446374783269236476471742973242613137902966669400760589675691987685331870778527116593449368908202845923812155680577349758670918198159656003109888763710304227375281364274891828780771940627401627315623160463398108500437107934408274569222615208733322710169353169824099779949293643579336547744381971287197384749132691023910955398701062471253864310210850868293793473830815838122602549326830561344067603534464510660461340062046793203366648319291132799632976836553348119575615655460743171124103505904778173091460468829960436263276690402931390429716689469970074703578631393885522867458958686203345470108114146285706489268187946482264590742896454816756218278759622378919482860746160365317896471234232151469044052119619455738631226423897143193844377999724566448168368801510963020629296239637603898834013824464842705684348868545616227346288896190842052739303342782561376100376384314381724850551899726194648584926159620856863000669409797345068427225719905552335731309937036290826990903875730975313776695522498570594950363372703902744242454546627899787496040666769569019844986249461031752944655244175050728068326762769448887717750258134642712081398893496203147773077090126587642895941237220728564194724552829660812112887160757833214907033963916723811125100785977729341153981366866754512118798521319171914341698930799950167255781408072936038140254928457961223807396724888596673920634524657085542525619750564648261033601248191799181687944311809087299599612460957701032312912192153770793707651218115021092031742593883174700419252498032895411641667250448383495628300648736722760138711120616474700316522119583247477043879123214703350083970595297315196337860987266223393947418528598186977723436300997622182500713053407277424270661121058438669589776647658635859625739239099164467201472425792375334374501363866840696480075597626624633181982358476649447199429832010132509396153093956210800648332744880891315755426317540533323596382616080715109801673768407382871937499972162711688034485462290165800082070976427595772421037923433119246659171205410231392725772435175636328867234984740818819715469989518976122925349481714295596558033097918504041589900641874879543981749353811813294570707752652606182966038381095241395124511617543770659047676322639592657543714829492564328160945789483595123623310074362205487159066215134706968783368513735448098844939075403748887878244098131932495418246732775185556711921803039501904255564814237557547834561027654600241479120471480809527599439377656620849672085416443938465484609743724608260375486247239829410330036810603087014692402538464413552183402637219567890762942045953771261089268584113255485877612792576430902248901786991565352511820903116711096119115074921704780436794369158111067638304545839872750378783250380082405988920634370053710434602565037937123563723473725378435320707653783578744032790070612310748313148034818586414311886440069110075893393891547485213962126387805691606255464937085435933441698804941139758319389118981116228936977060639784338360084406463212747685018505641976494101885598849174675427395628492853660530566572598746307658010899401686970043963865472999640002294638618147787748042604458695818697999951296682345595069652406228828249202231019601510737654853795586174219394141473350196268120610649596185328877099751451108371671969782203537850390436612854834077312705193334859900118144255280005497253691308608575451459246671911369389733523427849932517268505516389113576683299791070480616289347505041838139812384616102651263318177764372590223051025747217007899736622412379304832633107703342157044043628770485175826363970851863327365608674485815455809699677481858886754925105490109178312646857682077422453869143298637179053667486994081761435720816128823700745299589384095314522427190600343888628794877230900878468837610414449108981070157714301199005454490234159699795161049886722098177087978695098679950655234808502810107409084333978597180930090081661029671695424682095432638286271626776824741275628998717180545496386728154760769767263611057389223925440042617705983524243677153772227910735194406704617221485025830732406140705015875749366251143696986857225884256705077378308511275131725480922590837087051061510173400708678266317714776985811962286365047408148164993177381575405780467737894214419599754577045707302283959314081633080081711906499197597925216331233820650444290795775631241979051597523279553080344217003934308446797212193410016666560787965841140194199672863812993220365445587764336236206950346774639736840182520082045478459534345255347608611199378694044372687358009429499016820262605294306018507455055089224222384452327466047801661098740408558657809907002435396204776850049950286465126731303405170211742604868974021506976655421174307302256528575991853985961592351364723495155540845737806751521264202457337992684361538926769888636060193149530713660095826481830040638151326869527471847372794232727858774571556568040305751478124113971031699550191657250401486101044030124002210874201647688211507749763580290021748240258870225867920994178729173165667513297758744474664758185801619681657025283164886943377463897575027257004423382950358491490888386384600433406390698495002662346230416866303861883155711138020134787543538884272750275917559698496173295768362044281045177640118496893282695932891268394278982946121600744711887336992407667368726750442833155728611126338585788244013036642968031037969333554423357974240068359818500086358835560574418251251298330156599625315627751195103451984939448989549013525838616731353134417338602400749219745942842060789413059917324849421580229122198979633782664668409055524596762911831163680155592093217058502707850386499489427007773304367622724587190732952696284514390710772139882540625647482883332793661894320680269034979381364738960467757978463607988728531525373169520678403181458756388726479073416403733079261207092527151663103171712811797434156091099662442732046859463838173729051747730528974999613468809306275650006743947099868098271140813001884742820236286040411541388525528329920654839263869913282659418670194706581721200531425177229671346092411994923058754143587892050025138393827436173841094891471923316843883036955308559265206893331356926301893507898951409421964904131370685661424629892911639796072239940920631647018010564784979090802635794360449472902347118923344364454514763008601226252728811803573126747511361389189278879969801839819470745470857839592076573310802887733491437257908720111051233076022757600303491244673528942599221081444542314334645062475062565503392194795074949608847153364136909391639530954920131264605678527562100205877063136756764081723546340695754985728936152287800224080187018441103723502188592409180821299206385758592567008691420481476532628921646770850012217702590801159715787213444977369514070575475296184710103809448249972794202696037482731783210974680078677896156913400129872432297036718245776659483842226704989370878877557796364037984102898685192795859586854595339096238235583696473893147645111977846570286552051703058091101867407521804403341731056331332156574670835409979576811480664499369859401198313849004001734704988232591284759985923971523964941425995819319613926563863293440271142946417353727998432399625954088271298774239771408239837638785793442658745063446875912142152777888536985713440280558213996762411389687086998198798655260870669839471451071182068340997381586723553786083797286927119847446690048788672216216089925612094029788501715970941036835329266688276594166649640608654008160906479567653402103606567101358046075352757735271157104085229211111828265352285996040206233646494493765401842009378272168758569539168514744040824036442366576746094012815708553451718618866078247888822590414673938756393768781058493691592069682937297896271087066284317595688228619765514063400842459625993898559383398354657169253189448857064147357919757605697811908929766458713466703640436206089543543995053839944560842571496124971886417614105697804441917529781816409951661653401095865860667103177419283298614454740295104734473248433889984263381875693766222120915216364470316247781370556964218537650251514687379952958960333015533734219570751183323770942393883719609657602543056939368389450911550328990534735437830942401504343307125235006672626528431294152146374553034445474236995447813212350037999402366470571735449247606922617607681253293055853683406925574917687403786387659070440852477921562720560082776755140113816102677723541524351398932903838630810637905281446174565571988004456188261667667081373742691971588262860694058578838742416059687489397723582765442297782324935915821728609593092694565721222306104895064498758786552113972687519463520251106565744494986478615541643624484327869466314257455355325069201214140404491040144624123197997415443017306558966175382934568011898402356490438660452765533481460926403235869618613246639060698421596482279070831086132473083977700071855176380411425761969103760486856698278429863956219103833387113260721231032486107701791110088760362904951515360740340117535666366553993534813362777018734507178774223214695904949665332422345252705098206340397443359510893303611391592615011067145808275678621052071330942925100309764290924322735971518748683059479417543236186359923584788765827569173309754732873547786523075230430061043547052714501009258721053567646882458200792428254721831393137222433427182797956200791316766177779502382843740225153194615402119004406073105313598385594115158511501408520290169824102953333860054261087218327143416850152048467458111882933122330403937555425908766192599452294853364669283273615891113383805096810099315255163915348492450845174656423258446706742563290566800354615768474897949145880504371674548067113803456200980618855635288679213264002173899186830102631378827728483226402869359513070242077777633683569457134568734258962229668170623768664838749714290003542675799358733891716750537113109983547297645193491555083508258762555954246400994614297162881906825518472635181106778539974954714623900839107492629985677160721794114774993816891706734612881040786205024757564848567483621232841309993258797785504266358810189380728521848469741564646421942291722097813200591488972301377061927538602532580570106434288861720429324783323674296067913097254973003422925621594468026002953921364484864598182771997934683398266000473766541023748075635237730922427320159045288771513149781638152082689178171305639107609596080487589764951673337707390162331386538135448733237025982642142128156069537626528615492447733679259883858442276721853987927069060342213138259929891209891557932824973427347744295403090365180012542899288836178302511989990894014309432877131053837987037052987014925330852407030468416409965330892887241797585903257727440792354326013346478399376728785619871239640296676969201893825855543840839233782239735899385764358939652996916506356860493455021862020644531556198240628004583717257529347796210623560004004314394803276566506197841867090931322319617349956267660547137580998955204601911185970290023235231135334804892794049093249787863718964350876677112332578012849184516740136457250671871389698404942102235899909711964446452274681711061989967563709797838152343741893384078997292421875062110754037317431440161597375953889097656129664411097827560573289346369533580548923157334585927061760734509198319942386763472454283815592155898399749436452335446617354274106972422082341832908496518540057966756654500234129937736336863405912216650717870177254500560989027764284083708434368932925773683463777082181940160705012929923746246418417414492826552844474209843641984504063234898031351363186779153882918142944886545063627514204447074281408892887883006880480027487361172095715273430524761831885231083565178562802511754873395266849615126102120751208326588298087643159901757344717775949178734719711193948673890193676090137246679539389446072514237171221285802433059773292425932091267938821402956128832456567268220485315527238318176231424404527147107863836251256920349822939043684054753448113729395219288193090321523904863150123436433027839047567462683674846921278386000592093953085476453408658598134299200852940041130011088768053512210409388912875054507007536492694580156155561262693069438084729926132514895920844284851350895157406841999447673387894474549643270731419875614690614460461545147936863127073478611674694266908995622180600742033880982131620833347113222345268067941032034251275080283250904053503000969324915782527774140633086505322849059835548220517426542997392908495843095619739297571532856708827166139201345577104562860186214117032313583729073809308506286253712844514194439091681283022162802871177167305438588124551282554814686896905819256888524316778436920923899336843495191725717199744649155870155201578362422518334680369089849757989724916312246144358377753185087616088646422985727362079564016506225582959057856707743734962690808335106454682581355475539112540411721637624373447116267764641785177218364196024746139612652827638804390725009942759965737241790189589766559698072218790053693088528035582517083278068066000395699731283539917623570733447712559863279143330670942121308250593980154477098518600062091963463154974885182648657142385070529069792097343749217762544488423855282113631288075269927961868744895716729309366964487444914622662904585501906206277764299021691920575537238124148777690956775775028454209232043758158313838363264159176536602363702513584133274559358104352388730300475549446928780501800722902730272067280699405980362571104949155809688594831154728123441182134307166167108229084031718625404578593356986407365236385174598477040245561537078352924534744227594247309448953801806080797386536010081633700667359779036762062552981604981870072070630962585831462584027515179631762676344043604539247668192912983136805860107144364656394876568879318520982195428354732774263193443284235828693947836570176736973858418618017274110449482737717852462964917367497513528833312278426472970265517807452734763571251621057847594582799515067676525950974952280181237384805292399281135933639453017257142380870007650048897607322854669323276778182182574033037110400834525610074357627261142925733055841804127846068380825131175012534814986161426095105983854249951618417945306099003189661905098197280214424091096597660207567099562969154112884987024626258604448369535219394542484279147898152833240758417535569761696755418882158778686871297237931993238443022950130179476666351330078977008749857943435717812535376721867905086248279916751567494048643915967881165535370617999850393999505380894515932647615933754355722088772974770619379575250021234683371299566053159949977512762069151175446390347434033683080924090497661173647466070358789884705922584318998978116195496827575718129474214810852944294222675014305190195528298214142979275807158846591327278599406004890120325729903435500883171357120330815992748529895600965147842103234202791809344000228642205562575842105836278955195861955648828552044114698760641343195233385534876489204200226920287872466992240277340834556166570541561871136447535970090477919803462047698280144522799897095913442782829653089558250085263631055094612370573884472397952227489071719856611369495817821080464059638127539396049328614185084449294243969584340025123323253727207518004628351994498401716836601905371408741009133562240954281997807033541383708781088400555020468712864396408766449015902948791291735408136100422811988105402623643401641565408159736562379783788313143864491242572603722359576236656085739523663028845544949525859426530247255732003376608756262623634355183943818729551199737253336794029118673282531953441909308493003238984224587562670917309903898279750220154510114044380736300558902987923615985105590601876470208051760929616697729130937682829323954024308116760202520319982653388778954145122119717656574082227357498547499989147935081370558054316364795145611726714052138277237891351372400899079070821524914646599069553641990546157792971945048865386324403105213343606814201604361748755681179329622812341356108646011035141573802168362374884701150482314605027238018759519019464146309656104320168990386586097339758094123442241061624816921179442331374407059213122166089869710531507751719409269732409494080428627143062579807500592494510263066263262163802336645029799880789174250112481074674895056431352489300219002421465966010298628000143763814500236517575991072574167558556845857500729330463398112809690363745049515194299960489180272771235924430444515565096956913983660800197900592175890429953893529888037087086221132487978740675505822924311685937934065371657795869502095398909989854044321651653536023589354788581566997552736141425017775828846851851735690126484644773531554621231087058981374445493297272509120801411114238976875107720704305615295692099948720150223350154189428701410181423804275658925090535352878190468850803373827447757787889240827000530012260894369964565606102289693048574364368545546125802178847693711568638659571155430916998641359172927146886535969627719170175283986988925367105125990022714478714613849266948530021443600677194253189791356321013777928670445008953955721203216449103519790954962467024012560703529485989751030575972642426772752642501390677794699902984790918874427709782455535736850876324764169699375222616528056934749477130992907304623408843702178543624266461472339253525144343076434843665280058203774726944572465602745611404516818270615819923309922514827825875232289430827166984075834428522281134671768984529666368770084499588001812198921904392841775032954487390460027009052786703585146271347484261234204056340415401205819005391762848704990827270894899088417069956094287463571559302216167025656341932817809815102799659492508933271164364418199396551880750070301995622305169563202499291861670078063823707387557876993709636794731439552586155212559421390222778211284598788638000309242904436047380338357305726512846838567704009439891830928876413234120264372975904980770964483102217540865699642435323652774855224447798955436155092730921951101702025548453086035318459467656372433066596427232474457992822254708229686645148500533602621823972433473658566031248044180569014620239334619698865142280267848216646420886330585956171812554512519618472874394275962301889078422497842011341968601419477552828984086187833128236642801186378602170349644791550732407119235396021444656713982835877434016141013796956981690015525817903147573306459907396841191306039595516077966421643302919570482372576918538628381550062838181717762242548421727590693927315867833334743432527369338924193884195576674001669912697629611434086252798446937135227587990196850522389344714768389321380836750487381344771909116303112809348148387892387529644360833413862405029134808626774869163456389313464609781540359636010157028211706575844288829181712995008448971610601477940026061842160351909712597313074501433333687903086117852358411342019203297163140808873219748559796678363180463432057002704363357346298133634305400886206937171801772844245804611224261097611175386986548948370426477954292094150347158912447388928840022626029018007652905398536593805819606476618804718423364069888394529747349557248918294313883437125904432879294490285367472201328584421000441561632316094700080531687514954236260269812375629333451531786524071904131776223875460534210478629300220389212117227555083950692134883854981343963268280426167005159036675620761996635263984196775289259890911197119959383413057917120760824642564628782242047241878375904793789890363699063988274681161041766787978394155736744491080987845048781797442321884646398280078783630320028938226087161788111291150617351400903411129011445219344599066485853510557145159102340513260963128255675384585221362516331368386499491139368056029279546009127377634966435854936692761545072871707065213871827764322286302607821939250778698269557034494083217175915782094287520299967030985201565156007615625743914651468091284160071578199613946864111119484289562152082052442825009414266499637308110670302485105729177415567423202311926682002396133247840348908403666411693076411761027750080745069324376834166028501157241564131859067664176443097323128208458266424848571951664318505254357204835720713098610660833877872091492400045943305365816453766436022899410841559526691693759897280540479101218829855650531426193347602506759605534238737413924930125563588827048856950006277398877781717677481467269356894860528531951892567019981868298155305949038557010372611697929249974859665169819317534030233043214587480345158292758008038392571982650649695083755858878020082079031486284375062822783384032002584505928881485586728542663441469574105901834498341924970114948576782825452040491636766001960192201727005247677361685432553528487717734805242094998039790797366431949758914276763785844954422351465097758574743153190615644686964664599913909147922187099040018958020605237988893804140250586592862461614667898896795992332701991316473765243492499575320320229483664474274656655348344218862191275144202515143538321812994994607419815107450461612239448980887839981241882817758062501326264511694329567552073070562500362618795393657815677601036219191148375135904256057999931018307010139801389367417187661019984247689652150263886420014719365542877828376559531226154726666624682298869758009945323476529404010366693488738448453602838172034310048008487820879994131145345726918608226776261006562779174333357741848039353163387996561162094152361461654029007789456694473145885759707184648665531639712205344850890949030768525907495559634456827408277957361228067423009820381851305568763806099713862091457282787998151232338088561103013614473226087847903587571146967041111423780985413827320232256449430447527473586691364236337327465144486429505819453799415762443256018799347749033668285640646224551318921709848190160405202687676707028297501749332662962733457892404741298892326428192849976257489333217413724241565259299849673327610383761667051467154988931045240410588036114944694857846293662084266310211994811304056924186931407814657988932919722969714305939056648564852856016980992723932070568993760853758863221305625139006404386654574349812369286668277522373250967526001381888652249402146285850854971554254785625898828958500996390251112721200168378996019364597523103746304285772122207676605904061263912712113854880106701421008239416643156250048067506296940629305232377012029809031383658876558821237659779877596069179284876571663822720878159747902477247765203772250107103445090659994555359815388812750329727683067193710233547988196770159706373528007422015677188626272208462727424975767962575695581761261961374538001513792622358861548911065309621557636042286799343510610119194759111044115636047076767857924012423869344632518869445542504387974475049598868933890518867274329395511648101431051640127522241394936956277773856664178721513879201282505427277690740457333874093631270379602775885224990586105121624806482662141201009741508912963157029853433316884556108361326105895790579837747823324407891104796784409137092076697454451940582266441824196671979452675590308178988471940211763282168197059238582779774935458751438643455291402038840324793484774674556973122876345033061178699709928682549915506477927520830491878979853669813856859677665107293316610852003168941981165266468008086129055596437931608467490676811752691539492957066654166691369516183255452542985822797176666095494159853019614484867828957418265718563497024782962114718599423673841500403846632572283172332796165931881899365153342103580112096148354212623414226138944452287524300715039977775187559916150118128729086944836444401885778237440642928197041381300897004971900896829981465658056392373078093456225775344712004639048929730156605902242208919132778250120483956103521416614296657747996389741334849317420407181174757029854050931797722309752048581688698873047330634272823697183509287472723646635922287276704112721531343872498930658429418871278860099940899062188355118591019180026027802510841448052003113324273649661523829202915774559371616702957754937678236706723051996323701004647021907542758256944710976453146024202365853058891265315223527801213114746541072040551813934654199824859577741605643539149514264141024588839928764284971620210583327676096215036698293046509332246609746299647253627574013742811078056703681652693530318128431785235037141072735457870909656967524323939518698872052034208576089502921260659591569031446786719561955320735694269510582058160213737369103523629994527747842399673522043372381570008456407536838345169085898159551993532062524502026005659366625094192807715500304301419084485889604307428226018275552409846632661755403925227029157693511741265387850944545037412036966933032584209744350008142809434984783646791180600152541722852532540134260612655225345851410907495503732598207296117792721729820378057808113471527499410115905496457235663578031926409483314226140128498285472347150929595520997673540289227341431380460271313441642136117848241768499098280512691651800679603363859744178219773014330390896244732911382775593285454849358564110574845028291691956887666707791833113185631456345445770761445561329685518112207724203476298380301671634683534785446197369379110994615198034071792854403375354211208699320938156217255812782800023679529185089997720505563683618705457641795933671078873041547107929080581672116530569360567244752793050251097247488494370492203876409829191491398866313535678887672935636215334071749650772164835810770340782243218505709010146020491370249515468704465679719719097047584520201947859384395130472261151430050997763056613708839842066960663683039833189347341620460881940833336169925269966674262023963510086790322798685180554079283221782636148318468555103114344888903961585683161175350508654999523838227469165012239778352972489711568627478913367983439140466444267237295264897809865191436908805823732653017280557424249631409825036880764498078455222421367972182402799757452239095859756754004432054282382170028929822990296569504454197560978316831659383119338805488362774306841071218226067649350591263006785675858894840817890551308005262520700761544447319895369963554841837890019136898597484060995691102408560087947897101852614787960396929388497267772544842612760000586651305476301012864402889776173779133674332372030411064546138250306216166214936531487605014472328374038838937332331426320789286879853163774320645064247272232229204411380437012494301052987100684996522529971286238476152944035693126306176602849953535945290960524353415421519318072657982294025188872390134916979199689776089574294565741022392602258049555994920751819856925578746256939846589274732798683752598302695006249949904814000289914301110504791644675295717139117851529682882871417799580389531390673003693241606704150252196936470385218632044574724869476065706983495214136533628969173020201957784405043627170437233431344185136645136591997134652956627729034526488982808921246959337711257065110168217489700334869830992038532509057714406739749458724510039257416247019189585032363491402408396809449733253550573422370020185017080802461606962636711333877309386381973333226732037667460334280613288748614210894296636607325966623704975395345168916570408924686756835197838722745259719163132772180268777283587105701570293624842436010707790663843445962564792377548333716034038387591667093841588130631070582539834230895655946859112871982197422017222058690662276319258946840446302181180553397131027398996571853924526252569284501207573862860127129582265439184498280723598465482783528005633657526082762101078828293512052266654003017493232325783427562335563862839581296776297609221001215812641391652892271908426764656488608507770254329922298731132813714308727432600022520359059767848244159308937768976512340762427905563042473466587941524275291532246775371184559112670565305951301772692468902405459996508946969989562231848841067350100682689304689272181006245813252706680204069777730600847245354789279603933899348051040858095273715799774802745114636795360925426569949871228578034477219646485612241059046149804003386567778307967520466318867438596044521370563194718227061057606313545626246669746822218234163512961591384343398088970852877384470122482745851689823417013512033912864566355418770406895015155408802676038036692791288530949312963123325810985077696742996762567897988151142090019148532218807190225472661393281118119865003889625340924345286804855626689517463055424629961145243516643346548153843975203467024860919099321259196482649336510853784010178619719106823703434590656383259441271748189501922735550628447780735299950911449047671146572703428605090375480022709145839753308430682912689562145428357090161361707224705059970203768738350938033177154197193073289146161886933810528342377278841142794309016650867505603082866867055998013788398214530631644896400215707211661511092265182810104388662712489849357900409659164302787230545629156256373864897480290119482288875851462320172405170552870391278122497500521870416075312828291360508133474615058433996078489411071420916573266536934628829132249734315030335909322700666071171309422084410356362967750279741432539474724701759471301716919991708821004491509400446261760537100963340950147641881969801579091513027910931283178538771218414929107991293316522726033702310969099309855885472662304873934940527922856639265592369490194805692027671392822519890859759480038488779683941184349683106233134194425260112344999364032829926839623587633210027726461841407739181731650635113926731967393923958255225557426818153553660480372126009203973228581745821557842617231352241717349523046145949743165041852547043469706783553166871533612221981721725694227448317162389339572655236904869065691625727592602072046656840892282219282397153023613802323722227787998278209099801679626095666039730070781806464129409527779729660763426643431138489658237096377097076329789820055255945811212225344945673007227421682652889689522529419012244739282817607789985264696565482765960567991271268808921835893005758898591272317074414280344039629760105606615799975908962786284035655774391823117939821335539721956098054308876957519844383825282668600590953866250720487452512562640872654764526693088834942741470228918600994371434209178033526706657419851921793123303597391313392447513773847388917682822501611717817041768430743527892972138874627213103337452938177936282224421089244787370397100923814582459599196712978194292875998651478985281680453196880603953660509698433589358269238306621085172184320844242858466898712885620437096061867190054185647562754221165408439800749910318274759928889456180075791114683538316542376222631050051211738292940557195798779952334514278008700135484529748391379228392491743723465502593565133587429401965187635297693543128986012558676904151299203263233111192073156228647906008788064734390579735696828582334513173358509716172328378119411983314830132534026134071036555074336348684957316869333909495301224728292809563254956817300938844605270448573898958983001904883373472841662809887182686003019893171765478187663413301485835424984539975101864628068807656503104906048713052247193208624857338279950898896154109774293135888929302996362740300641588105903241479711313907317043222332173110088857896609918195176135709553580673504692678229784654094138363708184195069670634373874277021740564260997441722097551821658339715925101487943127226801772506114164236958612126733457793158708733662762005184945514942286981134088990223474917265612728116593439271727983567880726996363954088722345628270380153405009771084976478657904729761046781195161936951215249433231627562548457818700144969392812907966339275974219939947897428892582162178471134610972596263311537434366475398390044997854930277492351619631896450289539783813907437289018840910752624646110198366112564158131172793089653360660467213930908472419297663661829707956139575262694072350410535132976333354690121512685956945410559340736152675233449374784497589432436414548241859503796616793655232143843306397242896707298545814463014387105633338865227447302518326747392426018376196321974900582807544437399045846814805182651045685167231435670403108528914711150095913359919508708854217435535401995170657906971391659600191494649695167017003737148025386233255716272142376403328202437996006187545563903426152421928959075316473467518291494816019977810967531453502330935768806939269873523898745738214960836036535572413706320766630447819785772050257705863444435187629165090231734438681976580713360105402473928691177477425138298974963040952273299238322702799103931975804797390050702916700918135484091709729256785896353761113689411969854504972765720198387805951516749576804872721365195954463784219372832132176141688362673266872381976419839488968086676766618953858310235877902651872273284152656310609790384573823966830623722971489037733225903214548515162461984072907263244453647869999864556382523950493828074160780620738723708160481463368246094195893408240354888141458815101727508498603215345728583214258719142209562698083749738365616278832453864407074473255921068539576875007780084050491113321413125663316983467422236898507514368276589524305458213528915275745496916729521669156726442526543611810853473562207107979120340032568269880821598614730363271893776054212790413214129513001732975361145116762430272060142442153391866176000000895946706053280427687629552557905720335396790812797322591969351598086473368686818959375049690524601223838127909812132987573008225595048988123552660725270622466027020400113171282587801906767171875027405556478027208889099013082766133860809643063219891159323740267240602448792316775770179936180462272333275485791802720768668823868505374304013241147016028846890787814435327212194557174760477862756385895218525291423479426521011057071381752217946074142576572675142958788573763060339939632190989233711582065222522055873399997346580409409892508220289237752710829235574656290029754597504287363235634063898279092350996923445994172773583321499697601934374433256815627870607133250257337992517613210280144045038086102095309128897273149264932654316305752005524786669036233338760165094425940061920173721682215211826779664229137179649007985015807325974588165694440956921463629345865936785949399108007446289231185854160166367945652083656725631380615218534800072470849273715675473650855932040562519659511910669761649173848712211280310990579449976904227515606120240555150211493800310682274362393805022157458465291831921219598479924439561580869789515594228190912758474913207188073487815856719970144079588570175474474267534447755047033823904115935151271289239684379427322334863724897069239394133916042381603614984094474386463209045362451634340450407775858757113026709472704885752090159806940064206559019453558146670075003516602114455038498304266754961318146001813438814283526647368048263449327788084701935577704127799214914148519944271554808450541672143996026804550838430974436983379675022957348367255689783446283497720640485255216231695978353059426482854722193039301768112170802206521526799012266693731916909271427588427074253891064713246225033984745768343204484506187861169062871354407327424102357357301247181875746849700818635678909291132142695454304008886624801718770804187898211809975825160228177748392512248405201200220326368276090281698130973421650516835298654998089578458451335137638474686492028599504886845632917486460360224940465785850935334780540561053745393527477892887956344932121141727322140750481219906201365440060331761645841849839892977913045618738094860076263550091865753461209298856041790328237375636132251334596273446325351533482464311443438150750534666289601954045089791517136424496987113866536378413082489668385270254502905018884933371941009697823619698048375460721813572439609261161295111682812806211940841756136619264725275878298501555375310153545655134493443550838784488878950023961057267614147650025965402316994908012669584365343996342793247435539243002251381269240886959010676792014017299196401159813109228822810377948018376853946714812593696121790686696872450801382426898039999069175940551588561977547172738923525716505230209527176751849005699310253588889617032920019097445750064232070257776119953384216222187995412863955558835975063360056832328404733969856629723246265238469467586028186693953214155014612895571849904608469620497374568566205076790561243487672548566785072947924806459264426090718538451227804815207232449478721586629285968464989028932313691746223538913973445746580872475219450753616461110723449920161664863524967722135048351968177984050227844078822251890257590908823020175628413622839267248770327197291230096182351781932702306719315289859838208842840873350182709943801889672574299588368963028084577273736884083686792970757960972050326638533265461027458368177019175260211274317882989813041528184257536504976246447461254475381008740101249213083284373363469435160365331523267377841047846877502954909107196605565465688569828537610362021105780788497022954258338703608112137165999850074383124784445176275858066052848876811840209351796725193871309850882270529378248197850988717562739634620444554345097674461627860241255279821366520976090700645696653697088954008150763458683275527156390811364859324077327584601554979784350739018371185823372568013047408681171619763875479938462945892520861582955871841061616981467518973000922480348813102742567050268162819505539716150742763643079566620186831206149502089344456569121342557060353953305260392048390571492483889781886320026681185106284753726182807028057095688942387802672297502197581949870100680946124987000784058261427120019387224376128679686924854258284690689687575993332512675302581400691466118015272915884972579361731296929958137821518230461801802043368116847344136102163788495465746009434858402558140195661332132662047533794199993724521996140281316823074802950655326568888462066080255469274563897484698033314794314854763094807365733822680455833984483704109228084782090972236080600303489109814408667729196872535071277818785571757399406087002747774889149532665410900911219649907868738112069607193560589416149785088487387839264212286508091284458982529853392413508977825548270149110089568543885270181171408941272967320936977511086428913182297584048998628943334602979729223109339995855216643223330440174069438761421149503213371325039364498839526802849952799670355610681182676242160527499794487320905176783923578936912195048834827180912898409248190182822835919686591288151400005963875989944172345647498425241601521215675118130478391298100709086205348786300299220507439030417961912340947687992480129426295419154663042736001056866510012091158135879336945936781052736566391556481780769605438198735568443876159878123876114416292662188078516874792335812466559277488445438362935133634498637045910842936655355129699956411503653437859153220638200778951699546493720359899179836233258723310436110282611256032176152800759846208728758513059621760755026016173629068134077754581211337350199100402181704869375208772135935844306605733434904493562415021166509663711600399754086863604347708844448668901726229990389194871491242238702836285740013427960095493613628470055445942807711997366148443652294697889132442144089289169665677893216627815244387274968645390976832391777110777068107427441970978602185411671739446954245839993016942934137527906822752443065805696558242123596315587050787351356580633401522477413404749371395727793657804448865984891403933571994654886946079948592132987087670823878264272766295229882605764504406992363796738915248734444148409276410399692595372520035433585488843140853100972500415655795852992336501591243575322141010282888331997009322497934953285657552506040610315641593223064522755353237481994511478701596303461135517772618329550839890668859297624364581805007828790302614719732092428146406337826269839371580907019914160324290053353813160237707629670634198705395871343065907949994138168676120586040555851674141026406601554455114036008868525237773605866390971727190797973682329159064110587908369287170004572914098420927530584379469142107542456391870044710144533978237549084046588764023637265233533369253275998994466620713231014684093478448508942981724397774884473319772678115479716787683599793628710534368648381223351382245433927313303509462219747084335966913619904104490549422688724065376105501078790046397199273553049578043952197338378146043433814817619134085853043822464355273867324891812569065210816348183477555887414073684466757832379632938111906990501557919647592133536815496392995391108368425929662050119598202234961241907439566984708659041964133663823838600728632289516330350324078267157514115338274210137168927977449860666451882530089180713706916482740073509668145168844622946217771559676176583663931630674023303763007788049468149190065002449280605613603185491292318610402852250302638848363447123252887712092202496054195926161722866274787919381628704856900148603842672412344533658448599521417171695366063155040369859162566491541613272568427309540465571672837722225959296334097970275782687405735458205426241643424787008591117796760291892308994479131303460700634881947511058520098617289773136907471453241730850602303997122399783062273012705077873595681738170781001130389972079619311940979643900777372764414097802890062318102953884045103004697683964406566130276792398966277157296949879764997378821978386108775251971738716033541054585231718055961406214219190837314005933772382977415229394375581593932336203066793632787521261023555819980840944178426267032822235328219180422251498065231162403454962258193191474382207588148589005115057381304108596792470442748728643445340161434586241888487540256015563501960761423056133331118194777249980374236907870995378843618634105494107830786076797075247003473270555728051395613260151110562102941809548020495020719878861614088871920149366053663283565879281683675202323321852207427660572070219354432173323290955901420210736162455488271273443944526258202925687174813542177308845221570769628537732594042194531985100233968464130213281015675169148203988005039457023158852856650214664944991215497116387836441460928990507248770869065041937968396351419653647714791782883321335514365984477316030139271338447174117951525350535367497900460147421239988146507085488582718564278084405023767906183670780465621571443705510474178984759245954730893027900812953057241698686543378275557497439374054722755172953574554319179678616555999318113944564842552854387078239084186761264531742390172417573831133992174066879868036118250264692420898811106617573949720709193092838956948004061689913280883599272325362268334230291484160831746148114355812140016404643243763760371430523170479490360985829626062066451545161868825225145698034554722139611944792689923105377302292430084428572291029682937211796953613531761814760842565562889883528164598900334506912409984690793994051411189566142909058728460518361356114102558358697691945531569408949292229782965611286027321848849028435162819184448312544994711579979756459054779827835953424822660011065431892065318363651530521648050237014071537676149182156316023438404360084664331299688888918659757706206205217716998701457472363063457649361533936587628076489719881198714608361153912026968193734654291218722907419459959572811483439235777050677745332764913451631031121789213641409724694416405213475962081899109181627097990319098859942079290663713458551204464059181621976806353208186226225522989898796563488349288285122997679016475892445055708702069678216017715723413433880039993528435723423016598541145284606422747791716549888315687692306559455135369780445735582366277786763675638441526005071356689760004990564635264811313464691235247827881160193442758313862755133583711733400109442520588092278078813369887880787081773596876569868949835426666863538203983458079667998179908021366872566692089210618669831581915890332632589720123744342613187796413293687049071313794593274781480569803549512840392072568984983579746503952312086020239183221407406249816127030992517759494294229958377507012720769468609341362035047715206031251602949567632799138694268757303097954403942012108949136546394077074379835921096116206955811126894672524306336562536787186211761564052393803990116568509176288957215340324733252374431766297637305024271981950189704439446447264961522439324211472425441724150741244894512573905998848576562905266378932969402418896793778840343489928087150899897450925539092121842470445083947004547009467271621307214088304950812013452472206695673523474822621705309307959648262055980462983991331005509932290475956913861841374688249135161753268961555073267220589713305525474369351410151119844216965498506259952946756821871190153717640682389046306927951575926270521510643125727329058755240153427092593993606600213797450958873459634135531962351444782802909297285221617830069938130936423534335258932510541968676920881594011419896931925634439025306573400656223404747496995048693037665909826388146174717544494482723864100429603268067141575365597365005946901106641500570038268569363584521080564969508289399940327461870441255981691454317755477596795235798792350416853443512651085546335357675380063184338795385150167444540220722461598044186800448577621127961224629617300219114536873492824098019704066814113874663210506713496743981213772451659954371329748842726352611840926067792477207034367951297732070032328912332927551258464287555131325347974984547461582776764504789030260952801882100152937208044591423580914114732961573430923451838496085994737561117579454998949429624365685384330778217751706960448922159230012181871749532252524809003826145348197927772719609834166814780840165815495784601966476488057935979697768766162850057503117086312870869752082800047954429568427524347222808067958474634022635044979534274154787826756047854824345405721205797551846014492088303753929222107869897955640211298224923111419923177232507354097676115876219740510238978444026076744944950753857121063976435574815797965364183721401628571679221345747128709097999479925502929366748744279452563990143955897589734411946040184326360775771864690914976786472818652011966550272009676292901364671693407194315055079427002977553981486393343618200156312930588690078407054699640080834446728224844883348750385381924307789269082869685493317370208170680730493871644984708423944281255900543175283415919768258149632644452059349479401292014646828917970311185197973174981825766882852762856753917832187244044349662065409131678504545695306779641095181361706300972464483439800546614929866251028540213356693605521016339520926926425617183582288889684408137541995684576339283811989064867486034968282725297360280651280010282177630800167269870950918577831550032007028730779302956292270761384673305177863274736604548683929690451486410933420085933891782904504605268668371948341599938688652691326185392347973590242374587622536464029736109309416668807045543442475252258400345233022752153492547449032621815643027698133471383232695895925890455908012392442586948814167688711507251330839720865385436531428828168600266990038661006752270878091206056454398926246530898911492113319954448920269758182596437168138235992615072647409433723925571198427667203512047213445989840361622327741291035891773700395970853932048718334286685108456048669901934091285836612002717850776739057782099990255292043957780576285956680320835582900215448561800658981056724885867157681300234478517487454197377410614534428949678370668546289443490551274022118692839159866562171119762675672460282141275406512506221316142818234120646094443996212490320000045539509457170926896869647073086706262074321038607683688252196750052354491203776535102674089599133467908470363549229014919755677476012843766744849031248694317599020020348666908776044502228168804681830553346163205670338680776656707355043877906408758835469200946070292315275409859385510786774841815900233959778743740414814546552060136513381331255630700830465916474993319693107457349225247190857331030587691016008578448270225556527300559293318720504946830396237559744437820526478702963494328099275799210658584527168817141699239894498187450526731768017623451043603200875413354742819271451192606259278612648473651064326459278237072908658825127710056841587265694460809054364773014962542580392344447841606411665285342646566506144111059044945890735046526593775912031159108082894718956964882965300642111992352811106264512689911406229230783986301567405809193589189095854828335391153070666233452536329421517734668836501098537048160446384160727448213956692756985495827408706632669789184576525049064312394830418264709936906580644126336875729501704827018177237147199374184737348756302289818427353440703279974303984940583009468707854338515504640411204436996201139727926155707307550497684566539066429777792195585259549998892531832543288168715692423683169833559641175046227797678705011736755290266093810158789502994062090256769750924123497087459872246768234213351288226525206562419955791878741033765026821111407326940797375954638143099227187360709496702985258040663139024253264429642861327933558174815621073664068123670459341396795661642531450367637800633143084469046387093751582242166113274306889554993888684077515108520875479605214112845680636893340726928667273650093329421071659400559274281601796875332105664028478795085824406271363901049716647761754508070132824319475109585509227775997421938736888658833369285268933877940905439285263453362406171812360761900843529467725494503046444021846840263247483287351549770411179842272499681920552127073028342726492907606301427063042250497240651608951134055395226246894924606574619608107477616681543060864077880228287204800544632476745459827625337700382857664384541387515099626825396818005445599773997422798974915040123403633873015313448520655557296368349803436696868801926961342233780344694631726771972404272764733344646174827625887937260740453711600278684237681530997205505399569738819839223221123213039216412329892909090207603448488413376829787512464589148953285223873741023680975089872964046679840433292809545581985702786941114976351022066875556419715332848514588014498007188072338396373121222337472221556624785291044141516800805754939883266647652041218509304357254278382471610884633272518287539898969062664534293007453059315619643414221658893278411182585532317241164763109873712948500648325074012003797835704132039331495867724524105503673200388218808481184579999553180289485888732413185613510704045396387139358731311055725166452009448150062968207722315884867186015616551422140723275037392484683785870711700058607901365166032982717114322130634971657093940670361930487780413871468325834535738576582636314248174285086914280690513484513581337978705629926643423480315499288697580853309888085306830096629907200560278679894333575183825771097072672881864160759677219913833340577236695956572879015467115978144945214020834106136445682291508634855176260390152768694111154948010195991907224962641466784523528476575345539990647149896026275871162468984301385479886859224732167108181663043863357203529478016832584231740943482805437469723504472427425806410637446151438035807648205331539510357102073453490987343586117622083404655566389226023610932776313270652845209363728328164082872842061646725995513706577126172826863764368678238512902900820606648732961253764862372040492341041762842108237671242810586622910694610185150545926013155832699415456108043666798620898161237195648470678672688784067765628008942227883934423865943590632431683289410525070849498157042205264668728016180089785425828829287667699535943270441267338155892838691577912726194188364601730465784005866540997583004978764672800324947032067034837226049448776484272049279114905531586805669588231266131868076059315445832270923313888111143413465003421342409269662002915552405894250558119505454372588211190435858395037385100670020658899820822197259204365620564639856977644837688665378509259560106653721610451060534852645824429088792478893143963021417167431165414406552406431516347889684184771508847701821819749227782154132492739228485586730084804961252647675734447048707545974358146896215949078696927141122748984451355688942986709753287445123720040104262895555321747549514193240328952351877056185144476439015987923033327859322115172280681315848282384625559869841482138538824629965891997602595089087540765585765295778995216794897418532306347761201319342676667317532222961042750969646719213547929882835892801763237524247910629353225528558880772246593615561416883375304349393823157860397297333638156273171110255876824840267073828492349858396558610751490048630914007205481412460620031926653857205118614259320878744957362191841312189443887418350979076863742323235408186755648016507517020908488247200731626659719596097606624231957876072831408351728412817474711854603325938756181726586792558435534936653240124568370520072161807554316846323578536262593954998182706779963132593451166929977551607430995333655818857803372563708263532233322875711080378843518020723839576491171583208970078076654444378009273371510483127189947371208970717035121773366034031437613535593487738982495310418736732299680388037402621815492860393316499020029343897905962274181665401578288804320755710849299315545900284410672455012858879483175453358019130392559145106803907667856104235187126802177563614479060654528156348055815344321444514056889718262669784401598191218253321174509574635449652562564801468436673847071421638942146605584814059831647200805523047006630549641382734210027677033232567766488388108497756793310066279818454415104064519222250753407086660843054450294109181650493421611444898746659890975535897462582757346091296157279794140774593414080496801669782219846818340261817929160155758228966385290132980441127151987859211038408272444611622764015701072911475592827693342705531804962806861413587219997346451550350601169339210046771107951153000502771915788974126997173783810731722113683368340252925835079332035097076191248187725985414965404829801060794302003912774842826764920049519216357580764727033502619101915979838729664437640826526682005819634482767197652330984259627561953849008471852134754763883372604852454123006228257170590599476541832743191287530894551629735300738942726058077886028460579303223504577206454182711744122541662301545677201927489406849683193410894313826330347219568340650781709826900514261038479896848010110664846833336560111429379157616002083439956917552197580277599680430823381700576269872180680935707777686323133870773426902882643174672342428176062505750044072354486730711560587288613834098493831138894700618444558615163359852978893186054863761832776886294748374300558937168396134188831988626559634703573381119692862990972705772882419255268165928888011634951404943061009664102509516126573660581574307816356978004523201054985697394883028051519189439532237324426086199244548530684382788897983285227115157834328978815764914556520603187358317723587675542555566055615816490417134178978229048389342053607944126986284981011086424945755687541621833725622684008758017426594875152956839775175737174812359736736233917557807517654571560609451619930636972984976895918718672650904852704810622589640407355908088721723312775459869266659819842508487741656370017187827119808996047446045034695614230677916026968086591406284178123361212028219155700450533831636791880947664565707636867345837437200185278831673035003319414805247550370090507074055444371167417978285050781448511547787317931971386302459185325062664613428507616110439122733444712781231370938243613016578114875296831031687705938481084268147867495999430436805977027118183493118826416373861078492998046540165174353545957449921402759537618657348308051194071874370578114223917282737257868582273127795327159918708290409028637951617355345535179199254942212976077109891167774675598383856272543171038774613837652006893209492170589498443562816796962011505592341311357834252068441765165892839968129423542775105398897316083153092201620059627029468044591539654345547030942650634778745722885978372580320177758536792435462758999526289164226141288149967060176048667063842427453798203840510798316623227508959622999617442042671473572933894480358333500709885546855803610431860264048337842331438403925176381020144666145352062337611713782366653221822041573059421299967227412104993220514048388835471964774147423104246389030541194582288882105344260748386194666504380508719939514766416780418246570078135831713060969967571298349893326056131976765365644444344125411158453315006824526655827175945088986458752234886255057280631919407489840324153143904923722090910535652491163200701680057836262019994078619473454504826742612386397954225274814687914404165000677491999808211176744448393646326612385186210455394671833113190554611753703967999259260014625679977803266293165366225528044699928906651383835794572407529506929200026503348369935333390289358075845658740655374097320708858721558300827167295288485026802946552504662010669328628920629750075260237423136143136301539262730676688987664203692474566644702797576695810467509740405009392673803449317598157684177795621492454488506547371675669000230400863832698922167057744675606056729357591006642380536822051111741469529912473087527000205084314401882872382389193985596909016140378971555955101656614482844858430897668251795192580812658807981895835004342574234667811535160498644750436729443143848241480924857431291077110015569848249848249953447508740490071168780279583389716035993256347053370169144130100057122748124751131783004601206662247409618464958145976177840819052596894877707633525457006989644884113452471319981121561202027749091344374847912609388134375903814529734954481003094988911891530889590547581526521459909454217414546986340468387348371118613734114267219008186601870135818593326803533597064748748798535350124374061485105400795642847674794884345567837124002294840470748716090175450451241647904567843550471813746706926184291498146018921146994444649078659628282282388054166049433867062731041249680536799405280628702380577869110667041126128789491273155198817275085922990049001553065889592451468332476618164437258278698765286150098431422948385042967054224469628431149356654458478271493363358231615475567480373706647661709336322209981436927408516477204449802654584972365577441274990308429443098952128832830237088993053549647058985392568251913406379375643711981508420799402727607081907109239293330285290926365909695134975065789180712460001847066966508170923577112224001611133105211319078785670428634293657797476694102178459373224943829086107486155228060224719227400335870017986846098082438528542429815681816588715548284014711603566724573335193598347167564529890819660987669512520283062327274145053119020947369932147504867370676166324557860150356016421129128120152527820308814345265415416746999742188969023840125832431005248269489019987027534963429558707449185720560526851479012930049728762285724396701911685270362027458326556812390020367213012574979448137444388070993453078641347359261623977099661430900057099662518116850737702305717851648770543729675824563806391457709373097107956030383521404350851822907605615797548883471695240772298527263148567962513205736442500290736750702288544393475720115554535097341442752944420081309119609518806915136870805130851747433383182602589396696128155627241068391510598621089403536035658235586862082918811798316065072969739887252063661748244976073826730281971893264472701866855345163917988437236948488755428158730006041348331709545239355497445712750305844951480124614401298679415362333687086409627434658622376805495479111280320322624072199727938005113407617513273575874574993121367378947169751170815615238055853921032222530006033680803489625713799076384083374868912848416061536091552390186419921800263545792076429051524650841856957262583390350714372896873163704199104029373064531181639103959993312560085208394352235726132956170860520031697524850735207243741698381964018218968067719518333323511141440424373019211346777163445497608665600312547256560081645394874045693188831297367509737516484706774347569293039755344684891581864356314315168868898881213738438128778159031810816138816682448384289052614383120607381014987322390497787873014486734335109671195618712015612003316379138287964008408558310566682627548732986437963413176390108752473498174158433327019934481049805909748584531040296913993609280606841493689285351094895853999984758856798607663252562333598760157433981175411340594084111304988034629176544834861015872562506942233630344006320739957516101603308949332014146011665251865758060533119396792089390407557541625668457639106902672503683900140265961313347287543236354187843274461096754132017324761764850886693569205276383962462889972602704188460776451345444963573896161641069511740682238771239660298826334451764014907287880413498110559084502109357127568096874397754901974087717329006260499101811142050909707045809589355536234186231723085059705646859449975399205645101553125753306880493586880831971217248665843970069731125223906728699760762395052255550014709613979852910482624878417607260623694414986573226335032441922698462641805727418287946321317430844042601295977692215152013934629908221695455661498734952720577621654095257744590915873363922948124879974063922821627078069109554553269513717718764640660089892952943017493558101097767772729165039239531743758045187773448724849086039256595151580556074279015978146651979579915290285963249487347024791314673528973665323431395076343774754294402320259213141589547899257331685941903928392630038513854744625207324429314464608775078253046687560998966522390890149792572623054130978320060849462513681280546860823680881728903803056162817731851586318817757728930989001911129123447287173718867206645157921867820054032605443865307128816621787384645604216055484032351190205175929980385776660114147196918817524440269715832663742501936867293939081490262253340610273958045091974454815853405948726175297887614911149471141501484048337221691317164672615669954262402569073209516389045893590315537786955195513603354399679284198075367441535890654962005603966223714143854989692205981098056329166580937449935730058396813591938524011654827215082202940075478835330837598267818398056170731812821713405399228882754096484813066851827180360918829007204559373926406625846683137846517957163828926896840882268654502752083362036775927971468973670882407017507453314543712855708344629714843221165562182520939454275341796560332717845534405044569662530718412882085537262653045977265129762075577673650978336085036645961041940499318463099689923758442772173773685224094816368772581055868803849770242142209017252305900832089439764136856256382029996733658237699415310069849909003848437341220985528663671861685105484821470687003554409438867308152176500635587463922289129411438635647629167315703429041024440099139820939996971395219925581785398710919543257264537263565615252282216172026041177045217172413659802570532501597003928571122923629645975346257023091086209416492650694195793783973659604810519611645863385305242970403784731039481601330839704052154483687939645850972890540614023535251403645725839504667530649838576530226751634364694394214042883414178105074997599918656598994869275977543080823663086698089480844052500612185406303142516294787354258595259750007846715260719835510613286101397601991348081345603681648933861321339956088652088838244610091652026888731309840731356505556146630461466611454059746630743230266227743932847974114054323899931664820285047365525369260780255142836994848050667222884876436000064863781609198673042685187524762986498300616242300574268451099206530192223865528109494128367600340248420714673812253825386642406630467291295492867750104762349979933524365757595999267562315672575027576684457235208416946431123027455525538498926002616755243708193434301737229471726372084394729808411475580393911607075045937232168617344951047180012271604429746160485903336648993478522883037366112644308423193101884155525751339880743567921713903487414138804725604705150784571356772757773659302477719925971203130524938737274705265501758964451845361774854801187597066528320630642970145537898680913021547911918670632418771170931848854651138499371705505800147228143861236229505157693400678590592231978518353252511039554740877892271858080070092118686979550675593935017750699855040815410034731999893116486140076350515252247745329639583110366589321110260160031907612934478120006901507997679168688112346823556348441371034401116954242292608010187963386654181479122391350125410842825014841031543651431313435265539167350565590480334901486382956639363424384504256056137157324406370412712021937056108506198967229403744071839127867326970388089646420045407409173090720490418325259616174423394116155458977010704098957077713847109501696109120920637676872117777586969156015589456054309715078158886007708923884734528123929524660394347112689316989255361316348863825749964836556831149797748462203367652622091763377710711674888813174263338009237143210523655994884929362496041111472322704361446838810342045434147119678188560959072704579840974298406682760065479143124185948966829373314782991171708464316224027399382074614318213251598538071738200073210265687813344348161448123724816811993048376246694438942570185017731170707862661765503334529992457514679657547393105305151705750538748919771521929125439969337852965558396279156818449573960240344431599771727440253001165378038905575556354623479870456708621677271358774657151064256077388502669779990629843597123660485265638732222624753973687642846053250148990606842641656102555141070036165835769862384714835175183477010425338068906456376705800216398936001476809522450811999987348073254845068465333562941113712502297332475825963439598833483752095395817177646180215200709477139101944976124436454990762642874583990821981937365407786661910828986961101856267743450770371323147402341956758094874353558573232460128823862766457375471428251038115567259607925601944820542113523380848136844188840211670962752788047827250336280293446352720563528082920966743984636465286320064485687643417196109009503911920956754120907847848305240126893777645879532598127364084252198923358840409634745685506371864796242271390094019851059663710776656193796075076135149677479967705363776184918659479689029899704865143881294051568208854324380210712431483360070527069951325755299429443707921912790512405372248187675584222418906284133473894516814418665576926621222401125626750160425341237446939330220874884696442321270561849119684206986943075366168825403901561273202464962048926695093308490860246035692407822062942028859798839547931629104868571204529223254903739099360982644085087079848370010060981061178996555615572503291184647794455747015581530660108432603302686893632495990120874099765750358680333065281410209583255620709441801863194593923674719863790848209680656962142395517878045228033173309113685241364357492177019997031247881320648335335664425266633971573242031459013550856952058005365517558477105284968921247126584156293106434330500160095271558223627356984475926892132391700652639648605833505840872355959110129719965086115667879821344365498284352468524301834292500563904897954724899345032987628300718414122914829397238540777912041717188958060994634030720783422946211160196704996713846860950713752965736207699965633803454015027242406284422836464593840129469585287862412149169077993246547715456420371040404428928898050466934482624782766617162559120969935928089047899618348336766457696158038332355100188077271729511519054912180302567842546989889768614323626080746346506271086038292751644400632493350214008898941752292379175807272850702966939575656252526808099594944063606261506820387497139461880728321499911118615589092166852611505080031682841682452015117579278917927207771945324844148480146198709206421628468965658656396380581156091399877109174991206888431394530295336201999574334354829992878795308123786910138971982764996266430096110315507132297629633397453267814446020730054236626245704232119474571643314040421875106400650561371213884410606529334289415826028487698337893627729580921820808631815772177905636266936727900899627100016661743776168782064622553711089088563075253961020852305704251253794460437235140684926932623064005763828232503469923852036154796599881671257370102864990110124979772979983410247975408662482298111779803149831109233210987331223521649203667090071355632802970604993524513454306242533353421903044569876359306391921077602888935042587971207242087883972342162657381862092766431272890777283889575586780729516550330594667182993838096465763562024692318880909194333713695039622339987831906108646638569449732172078457259402105059542335983976428187122101438183279978465277007285272574675804627554596468969127134125726017457718668885598286911142572609375154177753958786990572904708766390934032775793693679049943046666234229541846673647121609672913675867312649909573755778003411472766812318456122508097086075923592283086125087729827485222877772324225646764564768290900523412848914340855650789512607498510305218083107431931036163994101805432359110764134307932366427269837871521947519579429972219834135750702186897542716804242785781247357670069597347849618952576848980557512566299357697771142159292043768879132103268597553561599940954529213399782572239723710438441784426165688019680815399926519658800415151480412564971645478127799797672368433051377363066388878271489530998637243555041870463963548827789188945925105102600803521737218304671924602700189882580589121173997574661240007868629312604124346708549619116479953630152583386039693088031113941917347722949763784730845076328232994981305113360703253895785053712418284006168236453461964818218844732929719106163106472394250968425729983709672239290486622686401745883104051632326355848437458863449290182445576505231798073427686767406252857795704999264184868331102988775504817529215491282211956509824457385027386501927223083340888959205900804064542400379605685820539994162348610112208075089067168150583256536419850844072879042818209492047813515049641311412905477733732568196141402634429262872075584868630080644654614450924824022191969761471359588632150714078191738597172396750199269900963875466697589842567648956522770277046406673688283733521173255900126303326695036583418143227306379164500992909146208242857800933409771378199584907494198753169688011204574720761840876551501811817763711327086852059889702464318599012584807239750919744076428369685948649595917916424792722339679840407435007465678154095397350070998556470742986115454692141333320964620596450935240401856560418317513234353155463399438148073718652373622366733554765284933824200956803481716844627863571646225463039377169761541908427425847368363372180896373941368712593410302803027254582236494368821659746648846410512529954892906497985953279792653931536236733067310856541652005315263757649592910560750758605395653689590987765305170005598760846093588274445798558395952656038959189522950327473076505475771850859494534482174143256141819992672288612878486437140402076556072465878427820953822671188073857416053468426564756572343704489461933703441843118181220199925891615766290208033695093192989354644522977148349255422109404927777841724496619964937642066660256923776586253671134236634772156561616052687419165772327816131450268297818965683299477730589374399028679191409717433976107284130535952854160990691356961523203413425810687249175558131214693971745740500575474720340010551602191668255744683521493500322097558977552512788498232552320606927072370980040412867024820990726111972531443191799177965661855448140287388361746054325798589668973219775653669030790132426670597479266747262334104824306634213547008957135152162158098924904470983018368442278745927381836262091985494471872141010210687748489837724007074470987485696830996878948335382717595011815331528053892572391643675476831694096723012798411987113081736401367700992135655287422000779313717791655805450682967471401757055988479405156077348237975433223315248743312064716431542539344140899729973163306088129029034902709494110753963589059046497667837495073018858931042913827744906820762508456861036351942838080186991810837360752684279885919587018139274604954859662386683701480179892499770574854025262123228915844632073960794644053303878209427385989115783592020630524676076708349258549947784618936837006118257934682820843482261943634157202649296988942386312999323723605549993422277974051815924216840193069973345674672210348237218918051661001516912157979802081522718902750860151999221081055309525090395561018719298387595009238208383898945429958910693739074902038990614070508462283691416393111481861330182396665866232861143330599074466393036477536262765092366831951099161927357437064466116324038085497426389755257434787747977282310298932008939329217629005705336533313715335802232441943117639170170287805541280821865496338847841496060306778585810164079781021082086415992396605666667432760291410414120477863477218594844341689082281253024933124289385950050524041986387002879130598519413083896716789584146282397752610652312836164194595198729341563756711170374175342364666456052444430018407453049116656256592550302939062776229423947006060322407592946621115118421255384313040409963528195391212014391719646336968336066466789695536104231383730105535638710247794990583259261676525502792120908988768601765936733502522702423771387066208684504094318947956880214912948759207231554264716731494365432111924269565746837743327541186093765634212052033223474086869421155334986876897168749130391389332539062168235987891450924451520417430731074770054770480169923280367624722545412972780340075893684980192720515131416015585962046541112500238289540373048918566779088434986143276872793207605061124929864485226078346804974868582137617343558743334243547309161645389717207134523659867284072581867494924562748889739012668349756088084566785284841668570035040339411075620294441900803980826467476528468898147859834671004863969418034545438202222332901357627495309424598557749879388306806682981759509142896409022643276402078628232598938463862085165372759837046535775895010084491573623898355769829659051799272912762068586960174787641100320317178686735956792785558802835120286561572049464831242745589351072221006291756886731839504113220276835155477782509647302880283505422702666678305435339988913567476177040617100447431316243391406384967426123899046790665420363511559350508970248332374993995870938246105637675239397478272393289201335266603129146888849095582758866375228840566270283477362949338128025724939327779124225957566847019367014746627933314209046714773425691035180823136901203991271423027107358321615467680705738441605622298460170304474046869082627386406244195790688247268250473872614580241594119727220360057031991766612727590616433751344965361578512614183521998135288639005384324272434412610293000445170192346170879697724831323813080891852837514077212191244313080511044341181143753243929682481155571682104418309589555204917280946640999314951930429691784398240264685282980665133196288898148105441229450749715335766540408537803139819263444067259274694353675891491533368736754424583657085666531419204009715791423115467420225189061962801090908147036040814763279005768136706054470698303224755395438332017899641080869295852669861546955752908466820570915565605155219487521373842001185822410106997535867699366608446812708170322692479625200128163648946740020195733728124396448407131760173177194136188380957569133838377706511335140298394443054202415808472072199689702404720338163230940659624572133557363914920760435234416512216585200089355459780769245070503402357581346988033073476439471151263823992996608652555903271933801398460759086944871651879087275348371866816496811692115396673142523990486248924381061626371973510850832957184862342246229051025892239892112203362831255137418016276868514029726052763833322017295108034800695941190136378380302722897638408988591529799955252155847029574782454672943747381649545196433707489445300475206561227998941068133888496103268978717322904778150801247041974281272010847132540302588688415430369062992432365442313098782780301745731078756134858384453202611706670760481801001467253193358661523330637874454015890638433605189833179940227687532005996919187022089660523278451475171958188877328007650153735816588966543986086788271141853462505498503815599195429750589778631859870999297030152947164263968431606184381494256187240768623984713615019986968755761772535309223602399341069430209740196776642737481524747167456392067266565156136097822314232712143275927711820776311869981337131459545556883506722271697368270817941663388002050682966147251331075048942780407397192443702854485679297446173659678509539012195122591676449431775053757374982572925846219707076703703626923622474184629223827189916890021577102169407073667031832921118246690112488622341309403257195240144307822846089123165043611125072828605963152930847230386288256617332977441535596318675551513001657179467373166236619479855424892804605793057124147826777532492398356096951006549247316652462430942638997559132233176812136051562097650886274920335457563106177495924762771202882656507267035070194985525962759736934517831856297257114535926055713563205234741613529818575935777539492972568446737555539173173449192591230751659596095470439854375335738639421830740052153913387272192766596866604079173743069511729397966354118000938844301841029133556323332892875024597242425042796057382848521943462827084138402797344142758062843058052646858822403604942852460554010335236700063616247776329296304166966520365387017218064153608506896954001576280014554939462029918901708536521358459042380738354281802847801666262334751323723355317264781752789882023460121075945281995217851897817258928219035913166663393731808416889905734908397990063905531427518853954890441744618970520842723665199248605322578056525753133501256991894122123689642299880426833001316395045902720250368398259719103107860322628330168482918844398475272133996460009057587003066431414411330408896043405571793274589985706670181290372386842811620111800494302666089058039397876877679903322103528774964075593770039591397106817530487494753233741578184354585666518231310197250493849797464807056344025846025636640507163939650898141272457745350093645567988803483930862244403353536015739067876521595695660997928560930757492729881955339153102289557318274706657791426342551839333130498483678713799087371922479238483985737704951847786590001935698098661264204995190659808351199778869096347543785005182037825055546917434421232918834014903074969822127916246383646412282989882248887525440381311524372897304173551965028355467866340984656386127058060805349434750170168782632589923985467221067229630086359395634489363548366425764203023654516516702738770926168330064088953416863149997606617125504458721356957607236745897051067650059937986761804658562050570323529259591910377959675192925097534500780083996938502231105199503669403490699732345297065802644118364108175050064745189404382415920487166858303376276859118349291572981543716937570374989390657581015341459800414695721196147338288965839662103515148742197101624938176301104981055299305668212743712816302596091402442023957202902394682204503286959366021012359104701340693351182969645739751904697025285467205053568092905298545167117184037039651599158192529949582890490279691775706306713142680259748351174399641388605405560463317875228549523081482423346404263695119013077951685806217035813226520776181499707191349955181626369274587399545123259709345929001644523505171279363713201931901386356912978709497220113824632332154981838230280957729976476878358673252823662646488422588912978149592682471864030510966284885534709966312550419366552827562510018750605401504468553141081103749872928815783720700947626157259723578087856894808026960884469864177220936828176585157121696151716484342989944392248029451801760373933835004288597379915226459985872964709903779962785896568125395212808879571066951264459624089409639815365953892614122181337502833266204379205763802243507298551556217794849953576972424880184276419501593086084565670600238207541010377983608726793347761679866164870339618139186676619697036428204119636906984761270026123388748530757804472992111769819116323088287802619897356690110927812991839185026424156352716431379313987894669445639122919796727214996486769025360784470135332031454398563394268687474445744277495314534224636980479098492635004241555918517859281622320825980375074094754338196223479925907102180149623480075106914306178339881328342969697313280603832479829625433966104953768532323164900258189326051426083378899648650050335945537995522967942932986936256630551905382944917370452446256740278404429382590008360505386600874339253256461989369929735986379133934936348467530338109673119279372236021640635395036270723402294577796104950974470657305766297056477292110062295115327827391218219144509372559970972080960735169129604677458484354383523326817477781239512934591217479321491936664022204861912465716912567580282712670079871183477974880844178282659815285713128467940122055137351741386237284918274196850194637648291602603377135732021081482406684018997092939508999728594211522935786005312756626293774124144001573250634695446207441578381068056759415296562762844120908539436777744881298976734587110688663751858360081154717073358611832917344308730729179677704862172142358957694461325264466243075008788430236457303266966592658041493082096619461557939914826878148722826377929123202568162731264333700875491888708652874950814827225620350299175791738897943613718577683061527694129333934133423306454101456572737141443972384825023009932914689689748447786300668509667584690678655572869572488280720715751053527759110746414757093735599193600817824704845760243690006175444777796502483208797519978653102533184953759305659024173539574480777138996574097128126198314735927459826638457407736624761406085515180508238392109457681665927471541146434332524090844696563959204139267056589899829567393420514830144722579745020193115039223123103020508955549284508726344275992267492173574592619557675421652890368227511147892380341004749426390577632570529328632376125383675627995806091980033614292427604054732802569037749447037552957956531894103433409914973157562641330165801839243828881143449008349076322860989817314033113562204300474445455773275277812436181744388869035526694178688700918475657508553844910414356613426205237165345988702024494784532221563307985335707829450606694959943140828413610097870110430942596795511626518852130679215390258167746749127287057495888002751928604348513958870992020683721515554490017024910512620407431814265295896972947772510948505931568278937822565052380432456184830405698005355486698943827599728438325499878426629524722540055384581532665862223964269545715103304360155410886973063822353527449286537086596263476101214817645999562007415004437957242573813717918650953272628496102970170122274883125495902919658466665208816912673978010274568475001283919545421267182809774014157577638299327809529439558363337684621911533311097728709034280645257493486291723426070741928875396195557583945756157947210128677737555190839968617402632511405200079964113408856718206450402174655561558767155676371264062374681788404782649917868742815089758003211146666209166652125991448244666165595448867007080031134411752485397578715173308598954815438273798414048306910080788454081129793654110044539647565753138510099172472316201592085958959678500640875215090623176677946532620237733304793391058956423765211771211191324598201403146866209600946506344860811256118994288583439063840728723174674363247459172367036943561286056305489279657117202939776253453242339309723873683591671468434361200688634844077801735082818158877280466472840593569861336107534576107396432829942595452964242995115430979554305028183520039654233450338379704836886652294475180462138938136650971780504315875921868100782875617564963286795854968742805351176136346776785501715847395147126620404859307270907966236229854524118647033989653488333265057630424393610926245706703414973506461271213700888027741095008207760262043886781435963236899663126279556969772572986929475864725714582148570371808400335805921028735904049872569171465989816773249078875008339820174788338219370165755786225252097166415193466499741369250307725610235030188454507386426956299186951237715614119579690670067751605770125078321908193568993219059074422510603670262137475604444926362602554661122722299750415839993813635684375500771380166270199335150817742787025409051990751801588848750493069662152219805232391922598590986827663142994231495836797778058600085540727302092935130893805159903684408247441452622049087867952098178084710634127176821178161981688232222421528729588568977636368222360623293411746106286846295308537258388267117385797281116516905721271279909474403488551050304230960037630015011763037019910890366804068104730163284214880258597236127751584135373274359469503963664300269910153410634924293286566386282691718002269771118723556463259383907346277250406245708870611595384456201378120783720584552473969942999759790717645086110537007162637893988858209518445928581097182730441500644273462290527297147220945486826103001288274295993514719916464562187285586261222665715526771900060545279515403457815162663565598745955250116677734043308561772192936600378088316036065310867707565319906419021979532151722371440621165644661152443866512439449116002807152670176929570619154548371814122810370073669507570405735854008996784976536741405860184271125581027514286231538791195318261579823321505600052473924558690709384204905658377413526139514667323956982514186155133369320623196577804389206169292414912017604800304096737094127382838735862938774974738064662113043388436748516514462215047012441463236823630855393580356353563630840868000374219165401377996535331944353839282996372581114466756872118321497459836001809734928893164785457508980325677653581785459447474639412256228098548347461372446163364583689131311972731456217480023926711988526783314282748687103889118310776729613300990336600447229593430057782070509222325059128036149806737641517584149850022276202218580955099802931606447608431539954946822774184605700479495196412773302785361563466216753197355214700914890143490125490274348890426740921096571199307452547035422192509523554866019955868641282517767313846601983148308716594314354155024530005113919996579817943612015767247542341024148830964355155602509125973033254162422219959138071088699175731654372270834935232054041823729672782878612480753153265825755003931051349874041970540080362324995607887421880877681824133485076910671278151589511606317627034180225549056369633762278689686442380971108787826555478715972668555701973376561034743398812498222449990629286125790262458092878209251504281004954932233211750815760538382308194522761796792474594927550266414016583957905051125627502391903060543820912781596652904928442138307597411640745627392618686679072325129204974189561133180889072354007068414707607361662626276393556894324098148493973285673624403420617899048813284134855955601374620556200219036846458460377034664401891544572423571481644161197108827865732953649198020362529402380793746571549041663083180352723316781336491416192436241651035747416482422070806510298090800785273016291231258421091081001576226748876336313495298573189082647331252750376899024005427071279014992066027268203923911058700628435550299865397240375465148769727647728561341647798608836492104945836009082681478326270009779343319274308184133948498479087485916724695291593487126055891830627586386731816060973781691194710926621586891533696969562381195696317102282458206878743436963086098335602414978138848154240162946361367831219990003275474732244821973596732024612112642824497072898634315045602526522105131123586509651613974338134093081731101340213958881334709808902556798552284599344462571980921935479712734993117713862703958812463222000202836794768324266307206291588451493316156504272792464927483581849884868479693067961683735963241914567167915769292905541559121370358919807982692901807079981123898798325120326236521919083949807139758947348081773292671270901170925359748110044500578495550467355077723559923944118040400303729468737070221520902030662717538537007123641351060590329512685486899832706349400870643233439768796345336370521180798917799805515206277967206300789024335475350377465307971645608938927691746499282662882970917440848048453496134931928739596264098744618856932425530458292638237696723136020641650715937555492107341002946423948930114472071873114426265576658497933717231778552518815895113927440616781524781992546836114429336985217460854012455055723085961721364092759096939199013667299156069464010684594716731762358144645602152764595404361496815357045779119734082997858806978080696598599036284357294773141017864019551616061923888214448725264602096482007766597224176982144525488633794295142084386345617357538731966398761957549992039753488248358365547624971922498193899507537484081963795875169421260265205994346401365906766900339541267368314558033475901788615309022516117847798097841668378630860999895295348054425320121054930854662235255885031869160155581697371809333607317590910920901846168573900518517776486187318103807209358566533461770229656319661894852138385341645782046193310318684029522900224039422763419968735137441619686009605010165966303047397221753593452625909777895228235732375600309317201479692989035789535127785143357869589125245077743751759498606743805314658648345538562805431363679801178688484512683064519970828603130792326354987518534749843132164601354148748804114948529804215156815403332455440503705036991014992614471272419092476826630977428414320272239250070027880800426926138990893755938876790579068530007197558183712946766226696582396225959749529617250672669432107296765043882017383724185421953246837975048584943545424960212716522533859464698378309987986540265595782743626497833462133249371003407377492606598707230415884639782318835637035607387287435867613772217551200603658837452360188222555373688605279008700909743941521562648524648503517262290024071660234212444493244611531633284740595987101288119918345067782832121066241241523221054157317581198645655907293412322622171540121907083530418266949077059637441812035977650953291897566393983151557408650345121214271700806565861483390949994050557250907386315331023197544991978720146848435469638004688222022052875035945643497132336298160514873939908042200841607254833273723081342318103305848991824970111441733464384399714442922857968195591968936554044436000741323372997597349884451774940986380128828489803471520689490653680758682269407897071142469097523513606369070280227327724890240906844720197881820566069196336530572795811266034417502945378111353365861340992176989765549036159535159800375745715229915466009296709521296241974265263728392586099959855714777724205197307939286466277855529605404631529778253664367929823048222427855973359401536419819700357210155219221764772642014667282255150929116290691090636382100709455428008236899954258448493345757352578283634316168335956234860303661686097041090844710776278922934221161038111256522864008554830405782111601493809358115927988463201178860785025104821469762919364019631708766084503891085273238144549264047044166242292369548815907018216108467672862590205856392406079862635555004879516194290852140659743723298442870095598734713149061043641337365372517512149399031585389827892988629110551437543462997601385973534534807519974316680370710442663636578023460545278427972878723185493676136181509082516816334915162554443308865615919750723195185466859106516481518208372461035947883887256819252633227227015553961114063572440811164321841194977650656786652115500888231619446238618135922562186539026116486494105539456739851920351800939641588210808808845786267247095501934247556031612471175270779623921891699290827347592810063722925308645062983046698671872723345981800424270252099005121448168116070709200441809396445938984825211384221896418604416266985796964923106619614330783525911269105158386955259450990605630523708114209969203075924178742930192692805301923479774385630378994372175446268671244048039379325402459913939204439349113385016790462670902481510867705510463450062889296885568973191040552508461375899742920042001860949115705533690182849203893448645482779250803024472732954876311271451628717631149333400093362669910647722620248132399953432940484988063757569474875719934073354439218443603508920429252062001149792245053388103355503076511292609028563973673303095497794446831319361152001560237965077782882960892133149117070709349690885150895469265730079299119005244179915949560576682426267169680786316706726961954294956409125296952805190166389666230141948091383064076964126679559556130782780314586550244234478751438744518607291216741686827621921396121489674204904276351326636884281983518801217019953966718716435862659436090778214569745556525440312672038220489767029522194640814160749397824798870400460310231986387795421996062661051241187187931918384167418500113777759353753585227112826867140579523608971692480404108502474617858141981982368483553727085430707753264594382273388695651982699258238026846089072884973763206760125280586766602446721639246804835495089908418608024052970262772553571329470598893117575016156299133640234990824962521607035636184627479659555389266872823901894649923155426461605480632410222162978297972862076269243734857184101771500050562789009926168474902093499572226023426407541100115876137267810968229056412556683493271552019058376625219779729789073518563813434358973612309711934626183694888421493584595322658455183242491091160699959097768239559409497427649007451047477158151366936356481358571703446801768140294356082398529287940158946958931700029129776526795287063063570856797976408879662200259820248564911409166518431896359060829262214118772203295034351539994082224700314920357339031895217529381584488301417004627781429096845815898614819537045918690800314360660295494345434578212477775700793082905749200135547242708038440660212572291820519845404341204346585003367963006207807510041748042241998746738391704132511235730524719523988617183809319266485072612982761112969487284613671004315391380325670707561064739604254385740307413184831851535166133169482004542572729186357097596808577510174357544168250891987801003747738693183632233639084408386652730445609796034506256543414024887453434206043873696879917209052021598309186707194039149686478605962350542025734143907168144831825771133432591201443320110485704596631537026201152905405072785800987928549450761621382903233735880633753213675082042632996589382261171785370817581141515306930528666632926082596517893826069582571132013565655376179108096628935415505283580770237588815225246124932211881734170447213546539024783642170182858661314950693692116079482044102481140364683508102040037748715413258260768523240681215274780373250834934500929606973629095534538418707596532049676713362844987311611846121255087521421109598042546173821192472966292482052745337974093053427709137191683730801463801154400252894132782515749302319621812995488031210433272359679738065798675646839691933610404377363286627793098372159363656117647014054013282078438910759253691767234521876130589942292058735130506994019328479670112869663069656151348088141977139363357152169386472270057882742504342341046733557146404408168739059724542606477284515545289501751693041844832334279023684675174416552934453891763433352884270774725430432688670088608618834450108707258977295017083850997975242819993509740742601315138643961630751502933830062145144269637543800355028307857972107945270001738703055193806766285826498825661326034050306443451964980633302385055817447237995246012851671653385444085330457875815283183443787358352951525914694952749254190808480500563742416202460095273336508821003570794890185750390556603904569767391751688050339079950452443390687088973634609120125233896239448805758180091378522505912071488381304545604502517783135284464602726730482955614980403654571647809409497844930265518597866293317878228688891037417043226474258031293208578412565931221311593102829375008339588905631851957357255529487570110498658709308458048981680363656934369963238751266321922462422907903939835684313375257289711677912075385041950131887197109485994484986892976807927446932525343903198516616281215866198163869883724930871802438773079315261381930503730901880829306383637552468470882570259507077325409246065082983233829118451379560728628575790262736847541365890600005769132106243459079323440877796617657839521626191666782072340910396799517426336975229713142209591554662910488950414264072491364162642077438852907297934519030449245248288453836250696470747571438820762150387555432362082358357877270617607155388893319789592444175427356643578692623633028722023667095811590449021784431056157854308955328388452154659302459230950434309686030017368513571949539687495762422453143793656066976779958598863801674890356361194929605102499172566336696994479525876317367891586436840900535128332173169892436384634704446110249199984543051332653750930536426301038277815331199988065981553619753882282618438057710815144200935561868095416998420438558937539669748753034985851143853186526391446262328540142329810241510797543964532896359639230740635339860620919419413236360399321297848465338760620355515985267875594085174424044044747796796070157786151240317204000485641613899876860653870118672755287010584127340271667461602498331134288518356932386484881423436787913355757391696191465679797727893517878937517105278523045635704535704918428424617329508828574787156257351813139569688332813601581653230490506690036746097770450858428625070742479061384520354514623234836624838992221815145557375117792308325324542440551666928552317823662368089359926084847757127347709580116756112082130064732003413450049721598812128333362427405244677381630048328474024369070755989625386450377968598409654026875621802266599213118218910566399378269170754390461378268281747005420037494815863291897221348686405544674094566223991436646468797446362035972617070388919441327439124088674066164840127880101965520473073785758715143128118777228145366718754736761902167467641247440853462111380894428467472402012725639166332698077843163079874759190080649976562440182503279418165982024765461329017267906285585730603676960922170703661713829086916839870577658632027554656421314969356209575117736249520898552186179493606684781420178590589630016776039804394019726975481538321455188006508309054315229161637188487337743603958947214177944892110377469295317363029392415052122531192918336505802845165407376313407368322445621007962591747781306784685747406316198738548886230525129445197110520825002898571772615168115809339520676507180813845743967691555626245042381396374834488286889464010577158617507389842211063452143853504755726979995560256301952614702955485055868424093459365906660724107357009120237211346454015531409019345693321113114025846430138762812493679821793406647395766139764444928084299785730616175445474153791947252479056134950545667379637358104029357790601730824031381241358949723941706998010208018969947435117958750665179576695433201799039367793031320167014975651624009941084473541224996304922368618199208535203763113193584820419535484760034053355949717040554103318995385178274133449543789868693390960837566392201280084716565181638646160585320724763755253814213854351786183932478563130011624340742589260228143081243501373697913597314890423765547100091658878902612837531648943674468952240539266956046289016292053575840687815111119993711906483958225590124945622778145982820029273129790840717878726253624600924115529287190233954407503059006336265395293194380213235318263613672605810616200113418481406950149714848715090108082984196709254392245593871974735359040886624026462805295885942824517404147887222930314121592648368270819252683516999010453745146384905251884945782417402693082533007419345777574532230798486341369864609237880676895102001849264995186409096690837838339799998275324002084048905848775234328812203611580914738747253746087058930193452296851866469234593200033706056402183945661550142167427819483802052683838771904914962422523331990639220960190110452593901438695504082422756182194561663181247576524315977392365639015358776109584574977793874441473376329806852212322090179069020939181822506393650673119418364356251051332143410095231974970246077130755647646149413618485947717574993553977478389062958080864010438132381640992722290624411020735031111119495223719633304678136905977690437622198122040353955308202612525824990127252166064156302457649880086469896747987625009224230742864864351704607617770687612742765056822030931706690628329247503608841443196175054142386485995803948634940689310188814728624509879911025994254458573459217444655474079288688233034776360255209263891384617101859317210587952215022316091501435131980776109823339324296303933160610502446539073156900295750096395386652530904273786475558355738388293009072176701539391120776102329276981252615025445911139172617466345263018554818617461706024429535676583669714604238339383016190909574230458495363560211803275218853527281107480730099384213635947634986686755428563426661520892455732340900389950932619694318178057628452664945870127623292259231906841465902156874773814755760359715233120278976985910508339982502598457727340491347287728074257841788200235949850156717035832043337152528700623261836305943416473598360583877010597855531400873945784630988484522407323747528382994507644556023641703311269467681963548172985394221156703502401114231460213538449225803690110190440526133184999409337708649073364645071294246774409293282564061027720984553653147712265589978403243611326380207151242937859705339660681949934929879064889881800175299750596723118111249187300071537918189181666214466592488779279654640063307311480301512773279030016502774768193977749546424260224401294588813056572996664230747370501497321616762569266152075671204102245705642663035825696775382623575889706898517949749855464013551065301613979920291186694104608799620200936767960544419182315599294588754757531049109934221675360109381684780602719451815612984036574285318874056931361427916344538506124550668439689930673274534776141829683190712105991478953279887407267262854833488173058072244636691151242447669705650746672102990715715670745910561596239508078952021721366588245734403934930187554714865014401341760189243125988806755399574539343917671146623319492366028273315740030121390853748045883542781483964442819182651851171774027932728204123903169002124193271730862587436543676228890508125975397294289947572607258925801172628719648749415204315392513879808160261561336732361624530548195422685798058822402171777129553501225767343431552808926695444261868539889422287930470941342882051570424944275485383807084740091783923564738018647080465932023411799458552034968597683007413673531202605714350086553773939641470546271776555587325215621353804822707408317822605174565829372412115538735621260152656006856440899873689469976463751927308072400033710731253604539873304417065958778488439481437123353943611568665940493979681622415598738952783389449576337297587056216766310353854314813330422621542536287536327835375698104107528978704461086871267998417817643850869656724267307492561922427949990518465559665843039905483398428419157628033227959813685210854084299278943411199239211721511652733476259837832414118161205819760286972949686732673923619624439427238354919644252657975755331913612166344836564552308041233545340911004503870241423992504958696172622641202399098624764205052987375585227256287077773165419723595488743443407827168315642401024364038913078076688508740075343784368490402104780408599639069998629076312282252911494193229587993044205714545077217719633786945439817201950217948439266448840423734344228588321401338540695154456124821880528292771366347056098604977499653862026248748365056770670477857373156912705053844198208196391530219061843397152094289607703675404752111480206047309328763777218190973179991598209807704674418788431601649022741878540778667720917377739351848741701104428262160195819747610523483328888062567844853846292200714070672613817938031868128556104994020959382663391205463872841138930643829242046776988157370238851788234380158182440921761715326663461310827627500999012206418100724914284229597082194550179117848276298874956627770920619526611749202049389440784145875552614182804235276625003876717449314686337052451015379500113784363437097262017175662150271241664394857599913709983817621758503010294132505192482476540923477715323301721654409456209956185370380278950415023968866200605897587300688914994150231028554319431072846850636188404124990818791265274168426774560018922561307001891725488081143021484557043159129188745026697637903783794395886929804073173263185374318096924035762400618608852652892543199197445979558643731042945855868290526870850255688651689316607404255126962589109452980961731754960477301697384368945480029384799357178304982430404170261910997839427656540771329780193528429972912771596344302006674613987115411450736414970994431287964635783650422783972087813892168479815742414768118233499409910037532237626034265852871646648743216201187237245247860722226703731380514034667027198076468568811841860565407459165392334237216372684082218951637826948864048474558500068412065174213699643374492283668478644111943441714522714039353034155844950678745357546157328276611855208892925178433584895795681327370597006310025858511071632647344327162356088378576537633611872048125873298559331023297569518641637306031936166203936853832785334439117425097076947077480478256958635933855544686454138478880448414205061768072574768748963632601310267161253695983794574403485683763585161854750497458656138583713437964626779659788125745397025353484189860527643178417876944522148768636448605421131096121591362819761763138723291465462603332046059808311258426150007148462141749560250652716649824093365765971294564721375358992791577188410295969087618199521179542453378214762161540973038674296261577723260185626309218619241004815461283769765660559531904776621720931619941843889051082938976440715493800325168521447561315483936081978096345300342880305354037709224784750885329421132596898276251540945933946107122408250235433151164772642242769262598853705656622087761749798819129465516056663827089656655704567800026474478407758994400845222015256898890913567086181980998184970745942373834696082125612336931385440308626771618189964908632893588439858184086209464715226469303613442394435334085998957875101875330248050359068669829181095048675925764858217570390393113518130195241434562979338515516191396390590881703647818923363376048816101682143332391940330048190755288409690177236531013363437368819624120707608895018977627917481311509502559533320108765362614724690006200991131685842198738523063139790100409501987851351673364676685748463930408248010638722098647431905679499129550214164723459376398034479360773880590875565488983966702746014395982250370343609683263077229453560958050583762136535673986496351374664907302236488235491901643547712577535114834418249399508921942873044419927491581564790486255324470459083997107000084392918753450265331034919951430271471062553590214294542535702009481446520908706157150649876878693748247947097946017581210738770436698515862126398942291242330005437718362745755302835559844171592169972521496992358894210296006987622178588696162468687266668040191436940682419651048298810541155779792644924681384604429167818980667891591692796795119485282081312298233940134468870615190314818080425946060743549391933262058175897600127134704410367798522251571854659705681924292007677554559687580006883626353942430750419700035515057956184533853041541275838549312290911344758143708109023870936564983799526984225451397913572504303141825568742826117061035435185943909853384598913463266591505937719274324210308465355995032743891987940351886526875355780315313217951221497321627962122553257110189084717194884969643030076412267341541271444731530654560485734251447228468447889257333381795485545355105145766263922414896668415273978776086268856486589576107272888839470135684139355682495619600671644300795271835042217409321335300798323269269755663040793370751971015958478072081813983795510887368077527214912012614570498771267386452016979202192890477397012301665390617856979257509218531113020613913347878369877029384639107049476708778837957554470589814762850448706817255883295071185579492183444554802506941350184071206260432184074858894200793339083728596078537347234681936844138204890095004949548562969278655053532657462168371042604277767534006456583058736646220608686333092201853132348172462152858313621781527124142657547764792184982718805699418532901586094562796961711013152693138459530543754425411382521028152076968903164130151160688169947163849527157577932655351452845755562313357363899865894254215261971627388229129197280767003159194490264953699380094424105826939091586129535780520881456560454863411435456617326285117381284186933388141690827901539927465828697856065517515355146469155072970649321806136007139544427304100772767475548501522148995069286029364255367769072958388684559305063921290896957787423082814267214237568488429892434171487674468650705894430209179986658549811612333527125806482803764933596547499620835771463844953032790758467564364462666177370609276326581191985399656762365626780332653678066947994542574644155943538428883486312524765649104306090925726524271720155954773096542600699561278831800571034218499902952094597312640705560499969042718784927062445455064883912418971705883210309132831273829096450257440089211944493239465160777289702884715795790616101107492080314748019617069311587709857411650868911252223627733724817828577513875957718675379861426535718297951903715863248645761434145518995235234335568801968894416123329231750007268526273708251474064253743292270206512230416016864578555840805141731237403867594599638687151665507953743631462273484003512756606518313358030425248207914321518163647327071700423180663884003707847514267840380617812633556182857428887438536913803217314810237202411555445047238912018572794580750124223088667092283023904938951484670563833349047614338073557043853879521074994020053978592256640291691588059835712996389686650833327653194134973566032602396335455989019423224098287794186819238297069085485852284220677465991985070136053948339514089560594256839037028260207018904156655020861541213401010054827561022611074194700976547489096833461665433767251082247474557253158617220529870737569118650453707736166099183481462406554364465155594781226897564482761395538519146829253730985623448671809399999599994046416476063583798174895715480533345658619678902308941107840947009061553985070267985601988294174537834128046429699323254255390389132668237429387450919674959740649223868574813678395754231694218575876824535190643759908324505168342873766865351379609968920457481321615436984470394319364241208030403681238260798527257708885989729973536539337361338720576400450664695407226582959452337028016497353038579800498695682722783491773187831051804189223615577281675703685951478646177736901936557092230298706450753837845967663265100117246353817232692560775779320798146172264549152655009854485665111472570728677425293482511332870322293019159563402275019510077947617282531584395185745657910918352111308218735532293493203243731673904493352183812089177833782140068668239908140380047252276703391420681147285160802000189324429239482118729251212642816998619496277334717655243831559567021258692049166269374285970968648525603670740680559802250400776701747914909762375395207482464874500728717572984983182244896908575419267380847806547794317220002391814020195782936240982062690172172045747360514069460237303287345148665098614972974972426302265875212503594438004777913225722421696805578483958662833572325264769038489443810523252644181614442026590342663780045302242348698540000065006341124295740269370090764931052739460801927792569913770177346465246137437014117379211528438667138650816578864132441431036082096382532484931480269356978220613140640698112012687327357870155534414347964609487539051854846778478291103983317558339490322317183999436862898182027734745957817410870836641718796694591708847976180268318964873451048776559564666522292482535933271868309285455157121039114896957889784682788633420303902798148490635409814139967546499975814281810040049477583918638100322326381710213314020266908017175449566897683263308971083308955170793661219183092433425977515568238389628090001470551804036054902849886669944749187125246442052985508793864507009348338086895766515849329806784560486590930195909470270553017016342780588625377891369257942414254554144133961289154867752971693319463688939855963822256020601998548490596402401261408308835065967235606361512542799824000826090053973583916994500925282861722505256360403796847616955811120409987768124282306587685104625962712313434567305909392039947809617728429980960286975534992986591398272323933666958983201379550196408871111391308527386344773191433986463817822444334000703060222348914678184865639183434377795009284697367619620471043130232090891577086216897289756121816562467294498646883300676584491729076415996582447001174064765975799043860064676453391034205272107647587999247995593788929959484700604480874290946362989397202276171004647387704388399224455054832833625800015590446209428997284205181155277618766622582925975069253975259948108697214585160758901199858243188097914122948769118466073149732004850755515183820732638383982184446405655785889175275921846691466160376914830188698165656483575851029707678700942247354652938820549316503996615281764563959285291230575885161338255169385597179053969137042680121044545763980292104719077203944816651122216814740944168213330318073903916381574212077881946537824689895258087146620124262024102565975406665487452169940464843873541739380222440605293217132968445933931222897256235285981019186665218795126735467433566360688417137367414775655935990553295107840521878814766924225088846338783459842399448040262502018998916665741228694333717265811691580146086940633296516014960443786136543260503199103988035239541470166259202493158593630882608311775176313772187611546758594337696751325830613078844348274093336089040146830220223662287817034297127109755267169656959788022274135206695958374164562250472927648552846459238308738381293053541618911333099642135506204482457225123688422685948250973018678458022608889129441766531207028365804944594483456008141280697225221666977847571819376383261408470217854081480457016911526428974276890703865828559966846467831842145233721982901557413823236191003061636336796382884957428900908199363294517145770823315006463751570508169834359032892835297839840010419007664323039089415621022710118416826568772994139554451424741392401645073319284570093022849105757280222964236370239601006299680764331316111451877927974725043111789815706327088921902980232038007278999426983923462485633639315064172679613764540153448965139086748035928587278936497050555929063502595909138746090754699977802679933531747486991156473406396985677484655068099449559782561147758178320287884377639117002484249927239362772631170522131166102539968896254598851795211372509870135760512030563089706312233738559004122151922055637953588593743168237677124015973231072487490367659788818321435120547927885011244178320876775653847168722042211486723797083692477847319865548185108600246220482010148527204383253021459712140394932748551845515373411458860021026213747300460316157708902489545450698169438170584459819707462690574381402082317677463280383009942708467714488745441042490334277999170343292453051560147409750512551937973630342697418714556153310233262109899539535681580700622348385067275195332886115937486982118879317689740472784253158572813507953773441696791976742647547633166478440223785567387906850441227220382822535767049255767193916773123256981546020726498695909561504730696318366598871115361660006416941140636811130151160678285065448287328981366246835937246214411763752018924170111190478543145749500235156908786860042587022557489003457215462806709791655009663213736178764464173067784103439993493989402361084997616138488219900863165622601980024011877930882986808975213556848765159070926707042261117729272815030959455624735789239395040025386120019958039099269989601913851083707454275946948105644838208393333997203474768746126300642092509283869692132852900409883839978131451245429244288551442593500405788598842296297620584586032421821879579986110735785482018386891566301398580840960665246293924624052227245051624933277771622561390570458504416955685251358666534951424285509090598239128116908094701416786575152353642850064095780703104768522926945950520322837282784023947306304539694037288942590118442210172619552655356536423248521651241177179337071011998721139864659684684659231945466180026302034757820023451116732541309650115058651629057858548427236305061783988078218772107541079569186903493927934149934893977768037980355466298293212651909724971350262179716448859399556028676187519962871591693082592309193216340088943305604154735597658739118938898013350234883507671037850397048068602212191122565188134198491334822344828747509874160416434213259971364359825936838708747958004539380505639157129144150361311988824056002506082015574333080173875097347774524611012167046082573303174781348640659429004796996094582664979444911887050398048073567976482312540638097879734062135331695868992949225310483605834559811527067265906696917557301901718323349983542507151228443222018474294393164224681236253375033954543600032424624714638727917053890115436512914215246306157680161570952517058967299691438203374949928071759858047008814651460989655080964145310241366795080299343216283964767800186270097311648282721695338398172720827554412197514854655412287756283378763813698420191001413831712791864422139697251005373662839957410968582120522559617989953860587800515237529610891501200633714389952923572337802975709106130239573581334072495741030496711055529836128596335643316179098663557783265643927362790711234925256168397920844998315487916664561917478650637608324881250723645154151878003075478561905302275346311166986581346708444568223711076678011654094591689368631102591536919359192839746320987567317957381770293247486634563767026023207159435852602678333524506998800482177588888833167174265136374179918157315653202661424033442644943918707627430518224725903028900461754076143850673105989237086453215899444596056162321207565431122868939325499038680410879681469666817612673469133839886513992059220167038185640574449898659513889909282693300068338105646033331785343596112861013694504280456744715796162032671705000683433788779597495363078706154677175457712252554907423662634696027310853040780057727525098547470914743368619508619417429673745642373869440461711786956592111969002154609914776841079925340212703695487501095323047705871544454649158593851778387076358690620399293947365290926821040439081371722046628232239655176570380379105565708649939780228072868407207242584825434015886034218179938142040451197419066217314471384238470460378642361133671816542804810537491704692055825955208613395704998461807079906178829052398104608356394289278501167270882708299805870424921560345687093181438753909582488249679712411885560320902554197359361099576455119138885480055030898359332038255990455188401115584629392439656142814535448078914458692700321768190770014731442502544914526879627302986794265313480396979039652314883502410342036241367468373545677624139526356083013177001833993440352869840003110377653210649090591703015463718266779081016431572624515226956165813190203983848284678290851835625805771825278117708623324374658427428717438244625082395100082695384050380293306754737264224007493615820490313650320209520193048486252853849046256448205434254947312102110183696116869483641458926047905368135457815062576447387220635229301947229969454058455493569393339807795665587449683758284447371827775985419955232165105965390294294875984425834679304149740150963177075959683728662246361248610425493406013665485577484605622843048558153198768327233834676869246207633872970214714698671214968423959508986565313310049380312713592644976127547876886727567901310638581277048829124693722118967373403639868547605925851575362651653457772214638676956783844587332458819246058462994581075439150184820238223467989304049636089019373439931181117507847376507336921496317520079213411443930545015152061804389112793774940238755824831091060136260236084270773348302769309735537205896364995181026599087945222029566012933726847232422687980207246151447590595982938130883856535506964362881006286011487881584780451420088868437456616377191269869052153471131211332403821295347044750206026476351708633901767418794169553397276129923162261475035826914337281059646516810389239756047690866395538369774110378340064035401141675915013742144323531693270678292127853459668532306542049194289776079246803654934267846671584795791479083118193878506219161359114936458701273011903349893856277272456712453803404451728847960737145440538866527475283155533781417976553421816487109026235728394237600624622302821078878633631471763269837733414556148614140401690558045470504940878243124701863731309925003113761535981925111903774737808303653212531603583196576621160509697678469690950591367967022490778116586211794895495822161766664506418317323836512244802472565491708471872865167159353871797364418543714299811703806950883017635516533939424639538027064286422731825296350013228286515588907845708006708595114684433948139603520360487555105912161586634751303422273658944415629044516003581381451279272908300815209894330805384354063152891385300159597043224978416657487757536767300003929605730903735797210314201504382644215328749226042097143817283556919304904760300826967446765886547501319891092585212800295460080164301854928959243661603378849040918499295365708624177314128853436485036765013419381768428636781670889568703186729724035350741877662928783318022696463687672188715493865358689755922201515883649837705101564546757062498539176469690778755893285712874733702581499289690585275817610538546959264416807761504534124067057280317167283937219747428227176888652385201930946646911026848076131358272374843608763315300542089326299665953129184546303066617880277618911398168168928727259439276426434412286917860573876363606848937990138083838217427844188000038473706942917878228967824934990431831244931687422312551350756197883539967475492030262644702416584319601744766517319717742145733841894876585381965919471352352389164664912322120912970805335596585392955987872987173662831297153789215004181774368276007641083020266988884137400008366589221221000920939958541434609319383873302146494258316042535056352272603623376005976862109898806671118098131773492660367473264746607018613275783259600687010501995085899123258097308902464576205289902371712923956428401792127036681603330638985381595640605767218772632989528923256601492478224954193139738459901691634278562145635077607456239105066922647854800179026273058499509475407015855344181772985915862539720960756827605122795990431559639253774037964555756790554301820667628257304039578103078264948417463411345367962111500133631363786314148598477329004858146709276288571200521617171580208914225707502432718887896307636949027724097355030292722508971668509052826436209884961909404213413696659446512541497113081332490690584328095018058365322538834794684182314866188151913912356536256024716316864458086254922166396510770187639099193227873956694554494582450216719346261167171942629638928550213269718274665477378227094053807293991740651435276332505175126030043187075065995067242945815568578579454086799687139882726354670935428645512622991654903199542748126791744273636564779775657916922984630663189190686646127450276112906693142908524533293129448645496087918818208645635952750835634854192472227107729311355332518061483211162732976346112728171530043191806565613547283233627318259872121160810654554255255798282784678310481572263813981161300022434396558425916062688611514138883614941537363385890840434669085530091455126401250097992573219156093134438725042371727820365479743980137026747646803250947046483429155610502851749165445358844020234260183461344681593777575216154753277722879377000484891062090197275500226232234566262382683433256843039226133301638196494119865301102940797152537149320356099659480244477014922816894866858794483883176804366274277471434020508702220569942101758875683807492757501770651171402916321078011416756342628115260199876155806563530802041646552356165057635101019558970423157131011469049131063470454308919492524473150828659596954858064756909265557885481210458850040232218196002916881416837478284297225319520874591371848405224953018002272090709204411770686021178555249693855201356821656373477922329715610871421373293663566790976019590488093300014848966992943571146404130354447135613905225111126199956401235140512454459269473254642057738341058161688488040196721859003579410009850473314158829795472993046098104060732115528545516436597464372590671070868990638478103034552284735632400967046362261818554424925959204290970293675827539153456728695912136454882101211835712300743056983589176953815166757351872721088208504298093504962674175755090062906623987869901330512539017550227143948419109770313616737722522533333523554544248622765749541138509964766023729134963455226220771846571474047103347253806097483260156068611487873236294126147104136347017842414317011058353603802377353566066225004447252644298524708800778629912910297886851298514921647150871973060358016368864132462187101500133086510768071671316018059008023015351042079393350301503826197262385332949454498529736467203800509363838599351153154576181847882165780685041558416481664388925437268266767117484667954896362784621267577261328404690845157958395974081250562165546979723604387448396084665773589088986392244228131460343156474095776991413839776796778362697969630496751632634812483969534225269980729482684962997781676928387364202830977513191796496693992623169672826311738867714461293311418246830862837470703404623865571067074697608322448863857013409717063910357110563294143997317777677317663560636106987333616043292921811983466344784382230833295361914397412042803969842729192635274544436047649109202866520893112360715776560005744798336149580240708072160453818153113661890410645353141028434566870772042415909166922701740730753819764788197986205717865435329316379946380228868574783258914040923881367091608962867361347046829580648954995349434830850150768636114504921296537001807068807822015951790399628980274665941163603193092838958574822434962494983297374735516169832092539119280503129570593503131567708576349893542305775566776459851982263576842413512989513556527782305441971761298100131206341912268004970964793358770640317842063720240308999589996398272465747568188030089506169181530343749579988366052263601424227351867845765445625286247092042142310707963819843879730287435074436973786545633238383469702743705256573510803292766427496829326353552114627887058450895838883580410333237014512221786455644417975959525502725182515503270322925297612008940869043301118227867244617102048784483288366503008027333753898265796337849800732341507606788883490967856890188658949607989177427591573011645864096727372444138983726477647675769595070168753018359883237831503518323850572189420033906904580215570884621811080706327372733540925972427203901701975202445672109464993197697359414499290374656388051589776575677982152514202311989773096681312039131539990414563015811288724670755336073151885817600239000753133839690691011211310631883465145793935805712069971577543950469099954847311960563434968559057922319202452813636920629475909405398055140567676764678647940954239095027996972866261091284675124199273746494248206735278595579713251197517704064478774208597818574250117482422473142263792006733909244842775085176618704258714338126551838360963534627393621818148522431120825297092627733085968748325408087657797642960596550497376797717867521176467840196172255702501039790814766586026885180534323072585808192491422451810260608978196860335788169800499579131628954654162217819421449021716686514410779978606734138180129134127079817745309466644005116067367618804975043595757450972686196711330660526359634598342581671479767081630615123091252202647536686762141314851233040984009500749774585189563590660223257037967438338430607506795962094541479308000136442791171828607529728666185494549279385092165021516002267566924785617295661737368465973349451826345156756598936992054611328380230379463189974559018655335539604549271044120596450653910841594014554408794486370238226620689368427651727276479736501292790226098660931129710479336416242760293613971478338299308330999139444069823498265436478382335929027184979391337365204794596745233030111532213861774112099692660412429843098914039466320276156280450954813848064026036872904872308856734304816416505043916977937870640405590909057196536340506148931171886606556957590227274389082689395721559076132617564330289776512586930077516579315221709744183773175543384567512621003238159616112598655137225418264258279815527441200933331669087062564899826202837140671616503294025361193667357553178925991017570778682561295246567100356048087586628198275190052518632963664856995095806925393005245996031140834083709507346828819758531706498104793511910655550945431002732367219403798064785208030593223805791646473516646706615715353658537728687361175756491173364068243586155841441243536466375347544863309576638973376628321526091734244402005163212928223718709689765699980513164839383840521861599651645182010867369079486240736175588166919911256025974838347272979039334349583264383324731592422642973939312118977496711466677747669603379596831143830631533834530468586183550284828137120080431278573543061893323874239181518151631272524697441674759449650108520837614196047183089001998097439047821603510250483767612024765070205066002577199105735077304474876176623847872333490427113561827493496101839436244862869748412534751231400500180716224187147764356211486059228700859619265145005870081709434413626361107199429464979518373200628007630804491083086188423375136377431159861044869540302826869762465575255243488475331220314766155690915940328031864715616259715163222937845941529933498330211462818856373201934632171214658489597924362320662285202974646200905537174218468635315863169171592031314541202788465453918112266131487982076850963879624260168614634300187856740455408203156955613181204578568001190127709716091122577928534755894646023265646388548051567102088188723880576491583337690669759962066366941014295433890195848318672408899181226151505325192239056519941394842146530064514897846472175840161014041992332067096634075491065750883501868744273254682922356385137805606997777858083556500089058634845102807063685536810696848523183021666734848673591559110781346625722418292018680565580499192305964277145689491153874066231801400412198384715877675952571307238533264017189076184092298504848399761436882412403020968976167451292981216793121483146150756056819036466959153796559660147756907987328679981844888661687045922163458390672843344243214268853154563851406525657851019649043729305459957720944276542278736383967958489287392391358173887249683149712674781408267631023344192758336261043089814866269839960146045294991684754432612109920611073308670138228131026495645275383061619705341165380254518910991047813697050973254581991864363319550754981816650384062434952986442281601305675532107133158456171760402550365289413308279314899943127700014862570442168267433938496259289948633143124026804943555176050659101064286769741475778231546968460489280487448838711824697586998030589049111959199396125059051371448885533366820424771732339319074474059495267143395840425782846656868994388469334983656700292660703558801323783234738018044026319954068231479573467679981843614253729330688951852520120008536305118262895543230102331614460607218476078852616236006134505487726480504085281685558021824882016708866803216863456698789507699564620429841770891533896588528648204797783636949743253081746307009541261162346972855187002147808932746206533563546331470514471985388067129933060966872673462850435989260782304931928815743671073775117863894012612043063519983470278992570670021947363630409108263400756578713127991489796598629949390014006187309500958746298428103838570159744963735425801585082732452175022796935897741721602015181644089833947947860992450610895176649431299508710076098598746356108942532020904188441634163195870331567146456673486369420410422439526198587311206029107059187974675038385580884290600421442123792682791767814048825719114484620044082810180092378944278015081313686312199275555005711839858805512843824390783429608579955521449877747835308383821691659062151511293618937434907805901727565550287858409232813323660353561831867331048413782155082677767237726699352589641834027732629146586695690127005409575205360907920107069288839592346916313003237116419311362290013748866976650081938844143121956613699165522320851314733847275049953864319853021818001613375563142173546000599617850899669540059137604045210426870094835934613683773746065148752927632482437345713645544578944736656265523989107910342941740873885051763179852521711538190300073375009169381753995278425645959176233464323284368951177643789662824352140890377971820975804771037034054465026868664112533745619934573471877070656613938974806479728540854135983139690510816852068056744529735206764307515810260336393956442972010787201333801388946313361519322390969236831419232125866812758246123044273697374335893897249001978595468386138346710898598621055622113599356757647413939033890304164063519097704518156865739805054658960752171468731692721153911899491944547456947879792018690218048788088322500472418424438324191326365743695332424400365759664597082275800234997704458833614891284134578868270599471297593753681886794378326195098333706772684368701946357774187577025027118418692403313685857792513347290686813452895101840529142422077180991383501433146124387248944159857767828666510864966569527025022225660192836432017709799738016817089386756388793686931579768588789154785384202027334884408753217804623220327093839570155408694016567932899041937554990020285994371910689544891923250799381880180154784803553862935339098720234214752617203492062658888811036123749492722609315535897281284595936127808367032620373873807816190515203948700947004611242220709556719132671142234535295038610435083728994699209964196673785636998509767476394247517959720878511347947223637100465629503192023074633661879930355255847886614931475508752025763491025012723688912831535202087354791511226709773930766821509449884212951050148140171422179076762151710792164759590304662350158393090500766599841956015624363444754464831372178195955629624200153294030783354561664002276889056526833540463692833646406440176749581717513716811015914217489838328133046152654916466781570385764361264320356217480861124484212107920907470438161232389816858901623796774689816092639377723936097021577363485271037585910705587825687643268163887763278268870949091840885088438806767805109622877918525280369295479331952508561037002361654507501282038208339978859516007063204693554566846874530861092836816590697828452685459660684780575461562884625074059551245309796538683043155759298915578101123843766150326770532206148754170397415774193777500188287585636595905862006828908313721182903013310932971453689651887765056725901512073005645832717831728587858995460582174823466099072211945477132849479970747249264938030311148231172377772252393154779839630789331373587717970611323733163177914904077188532910350185509579731094129814319522485574589597659115517855650714873664618851140187731200828174415307204284202048295417616439242070883465984649043541839454664910545882243556095740731650962654598185471256752316405788919208092950976366980200040526528132933016219930497893208186573457889264720442762163923545027398948970716958231425645378005023836712773354933253654377395047209289313662081151778478386452834237335998838219908347604674367252922049275060052927557969972735905291361271251840046783592921101210309635994485474625668578257421641546803281174764006460573510797348704765784078605141227018794703860761608259916108904747903289679139886016864648981246888094770808721668557500934614357513317720736550112664843965692040340741450024159673448096768879150278476168907459547859561917265415642295560285534080496825153859798161174564772170823764394426324434467662720363891774725178986611828587553401631636070120420681345028609238997628494284733728197381381956747620064752505311629092264778987793961610311860123159913058065461275782427347128687204902559480888517648758126554962022702818962760867598134647616117590811896381533614049970570857867209812215181345183221277805601924262775461238271423929001545142144720963093607912998389985510272104180090621090328156948417393586479087981445696143419091313521169239075973786522470571936689614154499684003719528543761128862197169800493187086579793571263644601032592165839223516023275542787393170980317217498724883270741841125410929204819753611577565816856638450708897922736841690156799972605889448377641761094378125414042427363837366519183237716149964545667783166887863667110221883063805400868120869934257157374575771824792985403963320163962411490142585642175459726893489418552816479998017974692316787336690395215920298483862066290544683834121117832066967673535525933840763074944763231002008005771406320480381256671811061317088945132658187342068964538415517342964474621425787796128396465155072853736303050404455158831202058457084359001499428538773095113605704368984726136874791512502881179434469341475768612056530208802754938188564250870720038966191372091683230309033217547597607459987575681202294273891375507282486505225603219404845094869598392129207831313997217754066728016123673636715621506062481160086432310398778135031294624445043750776587630860952568444053213004765617609469295918913141775673602911681736814203844186000130145845076406000994464756604871101456309480867627489308699728702247263447232964228774487445225481706701831562847549933380786798667605986226140665738186522244479019236285548801231597420906399225588290962060544496041742966422496811434076158961068566489188282147418923062866734331258176213136015256258900194731889839286489194378404748083733023678942191055703564874612520810363553367713086270275393917391271855505996847286991938270012480063901309615034497206313017303217707616126484906092653172146028660032373655714506630586180603875794564111585744817903257731432672055983408256984097727075186988391363077920397149319702471455585363257999681511331641700607010210358085956536745634250315129318347023557319968319767026604942010895219281591501666165838039732261915185851707934474892721846288725399135668362258872573137453334898076478462344287236459176043661964863354324900331844160393046050074495035602804605260426427901645799356112814281208463845658203331853551610603333402719882039749631451017712387530969443451107840991528473460766064907467237660299964068659066001315255330463537707402896325547120796142827866626627347089776502384945632030996748213935612804428951043870283321157421177173000792525663853212833796554577414907949607862985637533132840241076906841036421255390368261813572216782890062976535300514945614848032299428795332316377892783340276265610205920695270246516711933665914694661807655553087742946863506325596215848929936974038157144272672772439087321925304628610909776636121248423170305962773207810484489924115552025845986503725944533258997251787165424251744821347971647162783384923801301636732234158561762102515874339386763834632102578868887258710883509962505639329892327458794023317411355773446585753435887696169407861152066330025125839415446468869640979779899971170796268268224114759698786510524124955550147267337049299443216559752992102474136341497571089448862927312420928179546992539356699091921794601484355435885688150475920049254069780944834169520375898866272016818163417689503804717890963581783914393635927808872962266951148649656435110758447226014087157323466914504260165878597653688665910616987316796013889808997068726440312107320159721364063065274112115095652355654452079628897374507171246563236959194106770907948955281519961890461272289624273265635382946246161821992775344953115633658198882929014013458752222700764275279066665925788986646364213695056625349259602807435632139939965563386267018736567803982830490610194156798355879139509602143188044828731868824653408051066772721072403726848344167083800132017086545745703698299290451160306368858521369989622460707337975025484342419267718288444940157545686177909276790633376795409652963004589173953059241971845594432260319910575724343603183630220557125027073212976695226252388341003317733682817539318009159622442469173534005285532087903395758466836492948941983972752790986185131078300463186333461760867899662078701138940497336949010104749061900974115301377951323587949384683309117072647986196231321998573489732602885494664448496106227389473360696447084604598035651024335869247329399261811179991689560789398637575361157724802999561485243654126446255635506754797507445843685003825478109432417457937314174230802464838267573276416291221310848231512718424763806112413766978301393872769002207196861881789871603125599047010859261554824408345432212035457251184665148395018998724667747325283629023211389867992685722685983746616144154690393610979111310502419577983567703634788709507581906719775723815425541991613679003885727176597147291916240270157700700987953060187622093674671369783916359302947702498625394073107001422051340737237874314598018608521698133220060372035351872579949211755420043898856864992949744614004930011987250402517791668391351762390512049983751443594246365387789433492732575603099187622108265430247575380643856395071349683932775475429993550058297091940148337889351943473242473272760103038287229142645566056466862500653795787689666249986864345157572595094025757128601042925610418215022103159329211869410802836322692896240791340096148441707500410052557526140476175788993945553274337284212326618345329507236368943996912043689987576915902194248268949336403536785870972426245732283313010606588554109755140222184618799984321070510907135550508898015571494915420145256908362823651389480602641860434927178527140559068112183098637017191793183657830033981263312543452655048187540541097900224292245642109913979909679767438884242888431904607393410303617836343681266274308809213079057352359369542460580946887277375831197436874681856545597344508414552236514662265425100920862470078878424304520622989759996332795137896706675256700666482510276303797733618219905070690185044598435755161791008473120340054772549235261554726888742507691334616562824393971781327301842498051628780687764716898060894605975805945330046242479300852490668861976665587466515855017540130559980163090940601197417401835195961915967514038519274408659789658397238120312605665856046013800779613125347315154967899959054180780450370192889452423537558988545834821322080202793053131322528515081887840111321744256301573584846838057700032440871516113548976740092210184315851453227763448151920484356452300386884903638251194270603826346745250563753352405559627185864775151482830513424626736113215944205289743855587986493071184713184585017194664155600950564539562845628744876978779238375808315374146559753021890814103520050468180656178948370406881948638581331828605758199227606441886330230656684478550819203726581119773692923603503797531539108706021938317901713313008530315317655616075898316308069238991316672011585953924538469891929703083306062410629387295037735925442516357831397286552757544293146590530574818959551091820607821881233802694949151776591299312271762907456992832412351427151898380786431757458517098960632228093941336527373218084340108041168985771301023998444700422541149212269116926471802725353855087122914552597909821437909983194061511648519352135880472492578137523772971077544083924479715703675931923498975222219829925590381669787393006089082895953257925006388272652626235729770882339225891468488912996849001362576801006351932954756200950003322350431313218571183760457266481059626421516456625064910977585860449385114927342869761579484158899052718998502095869853282151354494781136779295080037749294156111689563541961654782868308090188927342466035094621175395449185449553545065712276693887289061690287298731233962715680852009407064895408915118056743085705217448419147436086284768072251657226735444790194016443690777905851125063862822133558178152955313516978991002124493182592679605267174768777208343746630251275725824576641170912635980654499541781107658953110872127845361884760127906085373661347706449033356466926975609546537020044181298014235917382982321777639760455698497394403911274776643324820273222415686835006396454541540249731847367606004748159492764041429120350922703485587780880076504020204089997025494130738409073898346677677633239550898615544804973546670040878420524091019129862397171960526476537283998022257256697393374408840198425662170509755217697584726058853671636333455469665728134841061182474027365730544509708037254787901332153566244436256022973006963717443325139072840371717429692641306047231249176629782289369747055276242325142101964160034236810296150299901423326436609939972201757643583610010653237946670704499377983907123916651691296602677004489369922092771955503409365004175340887277962810881710255642523627055690894091573356905004570564789859029820053742765000484558524056000966821440261243692290021884052722256516473520747798921793496170587552713737198302860302615731576189656455130405531297869584498300068413380164270484960026881010285898083738581002930065674269460582008805154056376900164963430139132641268281909083964436058057328121839275594894457782849391734057306372670251925205888126941533982572778868683728920324231592743726844213042334793626979805101180484580592470041808288846557011808825020900183279997490545472995206526263942156382654802758198694374306172709994793883611197507232300489551089397610035506171078164142569131223635175350200672649670164555509537637575083058321214920972672189123179195554787273040315079609014323574154521011162591021125171176716276361587760378361350052558203994119389227583511631829821175924190291402427430178733223155580485021128322492984764323948923508336125680693287112948078362442219254285003287399142697415337139746986969073051799560138968321746684425998104969887109465915083634485537446128364000899207773247234610861557646025169725556684898223339795675518739891335310647036604740339348363377578868517913858499312413931926438423725372870128946277434250801249338587734679331165718946218515354943115652744620494957346870605604110728692974425091531078277227241250657676079018455898539780073565297775292448999208929764822304180523383635260659938171812115908290807270394324543044210601176212202542804832380542800528313037001022760204645029450410877549400311870004274296397296738855040978417017365936813682739270075917533339258814749044938373105502073899726683561336292793285889459642820103266230833067561308646409086303069467867529974823157464294394617191222688182730536586581553972191924223734512520910302075750133349394591667671056550445799053723274212486623581509155215700320506584687516904230104220225703812320966630876516507249849226075441829193088290385588293874695050143167103531033850015816433236451279300097917223616668978432419275478217905789430600320008042809369336426028582702517990847964266539812515227711668792553853341550385110603726084166618163762894505144736158980909391937801019903800769737075338430694275451987600518238181652392063545347998466520672771901958495052869848443812467365389943970450126940770255648028346947434052732307947387872756400743355291803013663270061563664508711879186701427611040263350866722621166259979532161906568323873006258928207633244647116611509028085675220083286794200147347730513168377790035839308645640964644755753206530687237821635074562615875777573918574451037339852210381657673687687823527342033725265378185624872604174503299098333500591405829892436643945903658625510022899429157195447973667518707450678466608022712629875601293749408356688669659923322188128852590584528246728717125045920393742719302338885829510106828610649138444619695169280451468034066625127478048414521191172328414496133645082904998203200916099145473510415498370482700035661332590062876978868065060896731466953437268494482164517165209361793425727407946738931445273074810351343044786718963339434085672518771377084907646010408849477473324261869950650631053320648970464877772450217749127199568906188944639123298434599334726030736297345865709458679062038661852370129785114805467220993395577275391000806824232806292457965408436503173057734753621737681246118402348273364447271270674944269529280270080793792097958158126284596403244918362327819299983778915009100356517873812962505622415527732295146122601516514479252533590088274023414020241106814093921618591178079141519269793819973275794719092369570187189555785983530256001539452125644798932823725153484576818664603929033798329678496547210493519308220183104192827218342869949744330392260462449911307767330114447175866629227425885041375368835429354708180699696371486576110798832713580186763497151719128373585674088643121591898659243661032351105001271252173165073106362461696486322950955521702588025498470347028499103521662356969318372317823166655482131590848307263297694849634291431680075356599630046662912561377360674570558447673728371514937479264373094183343493573267137389929385610313650091195639103321230790254807601605401991298245218474975035177414770634348801886607836834512974842039711649858987865477185772236252517005532814685538794913516762942056748479049114166935109380570393684705633884253019630910865058578768912742946782687247016047682829755866418636637824325281712133582619173412489572484687041903833625700456217700768312823786119123414061849481910187522598555965216130228971425375771251103462618486935256463721918499591177138764090447682033875819938672204244978448017229646496969515618653109520086758933473538947823119655608041089614801957875684442023913243533115583159443989746246404325839042780207761071379841124333243251833345730521227240429218108693711400906732930754253443749589658929749167982838502893059234037686912463885651549682098315307703455200299430389050812998002917609351515466353488893141187988110988692605676802756357607962745327974124633422589363862756044379325821329870432046714373330813220551215107016194645725894797524974178754306176547001405769379364506274009668432778935769973657446566436801007925630956880731813294618817846027606822835791325751663814390135038558402771259950868963286185387261602400407031935574414211533579730011341369113704239409334885770657733351507285952159544572893679890366672357194790620266474555406086808211419100589291072993281851582694792013661110421481195384913148674883372367798422452062030996635952826671647609172752315684236213155959473164134694574736220310669012760729332217328816453867160440387800929817679393234950831967389685994956180835178105974394461750566682396483014853623264446393229336948482576657976219041733984885930726228865634862485543255390563172216222390790810024597518342192466267718460545322641574557999214547691631548653641799754306112719751718043065164568039382824842031184992308921333829582087994108379376974577907768353865116680256462001496109752141769729578856924170700409412465224718663923928923869671750611584158799285079432441486670723783190435567575186911956509318339505902921672701220476259041503103494112319232834165424510488007447760199164155517811517724448917361072627236164515930374047822859413437761623458745889792188085229229844848960906148705554741801389938393487587354790254503665221331534935853471015848525104949858840138951270614818374661324189528016790686121716098868570549211106520986429702264287195901610403641647520011194372800883984758901450647567396561466774399229172443951081471307519808837147705053314425691777350285142381974493492330595857793880513771102220310003010550289152688190502980059323634956792812937044929064258862308026447402725804020270351993403951965243523322610203836843357102283355318479213035371096366036369794722702751847677006150304062720448687785836129997576261096870089416449370561021528357416072818440137746942665874622177081118906434546952780268138209401670241375625438942654267705144254237327633941884882877328200481875225055986171662817721773135558813003293516560239256595751143946126387562356211360939644467638369567248004443536383592914997609312466746571495900507111930967022815379483579871026167704720247895511564560973881243939393584956981230570177905351556526558700599570124112146373855292084809270784135821471733913702395616705666963053825466435901223498559209185617652991636613053455991117485428384640212926098847874058697995596510020650666993810646771876000684410577525915802454554748524840418900214630092452275879925602217009402497657482431955721744511795189553957809710227824755509746138523545581572592148595030842108196680099040702561158076035442564481846071134275250725241585707826636623555744781447404075667578109723888514498619294721912730976052847886851495750456348565206535599168967021121331519882394822592753411318885420059593420304132302767158216473830182070318117583571665978520634582248056143611107828806323407890499509404446007094809572815011973818719946929007356361924655950634482031125106057789422544650855640617515673185262219366634464590809802010332034285338063414560188169388848240389934418270153412544452798884980253765029258936922991073440806104873372740042484345366364220429795539721176104583843327647998600857247478950350875691961875543021072430370502274681584558745321335653559306262575362015977760046961424858762239397928367659739280784959149218201374035330845487825619979510039509639252610399534300579822456622459057505931849037644150764475598392979469900536910489808506555078459108157731200992124843894893036418556916898245733805609934759798923191127106577892858124421579784876342881110630699860429926493035556233936895174162897152827760152007168365139288826284870331951474098509095127915459934246393569895540487205803692832627987294718090615795772237082524155118381734915403046989661026466784470167399609498180549828316163668942390802891064244163884705019392815935773972982077773655413490074218830529297967923221533454483925857182907738969339970883594183547169525425715438501334758197325611568050184108596542953302376179223921430492572770044079858973510149733086679407405352191670626232787874897415765930111085171548109537789969001148314952852105398100148116279594948068279940112347888823019845688604700316442424821614187508536044038734480307284472576399467314965140811044551182008332913481440691806600427282375953412524937593850605767413243441416906198450226680263298840687707604719624345663005237604508375148182896659322855723356054707777303554894142552596904443261072579304697594217229708521367074753168087411451429668105126578999739788918996585867318384796086022867825416324990139665509188113450822695980806095311560202994097078596321261342261949534967542716175830085600481028887938788810422682520492516504747065779066274084865025597284050186574828213645526741751445685832916620435791320588191238201482686477877031932914599563419602253389126633422100538231373260671166595819101888712134796009090220286589379089343306297070687973038431734793450204950570228745069281212559854074499437549500757537981833418318518492242740777460384111065001460018442933852867276225867176923500482845707379841719035240433863925487124883899081026296586234436817799671701508553879279443589510126463751925078302135913665413926828650890002932712520340547975198397981195073880257268492149699623971529022127218096740265253633327162949151487478464567651199469162591691051504319480134119231326925128758556306442152759273106634893201711033443346795390249778645440443442680816881435707103910484704058739830078727768825854388548481758696041021715546416570896531183259933976090129722271435111637868992851580071266161102317457667800955429486697083615966011369817602044669487856297682095692072761693718525010386071068467133025559571510654050117283075811538112448241028612522281505223128631308818955183707025509764836930077878586849866597824975064167822247382043236416835290167540990719281409189670883835570587951662887524426875773792762483199017492384647651146093181817198709445863267465900681279347577405590132859192231667605461587037122592080585396848048118771619724432685947314498163053033708489599626332383881952641674384784693826900557529279083699939691780666399443648148419294124193170706512072720723519732779461894069494527628600783118252850365446538529067522074395830301768538000201134532905642308078422158302954858277161807722425995756294086137608028602402667523088429681783844846184265715003365185297228454847979746925630953111266241949197777217606804034858586164698797207599308206229881280668655199839380908373792150737331549369230757195427740067449209825728721084076964063438870588757323110533856916046050069830577260112725631136006752885255380191404786634027692570424161184163277330635415455287444290269452599169973198543745467402271386534074222209475218559984183129354775102932460344175678904150202463708880631047365461310863655127219340082870931579929236250835289120660751304857858839782499195225200889394165566879183884841765473151513096928985247489794962752734695521970812527847941255595800018683966967362905194671250365495217453913738226497123528577607002203792302055543655638074784127189376518987371929148069479472479165827307022194077839379477316720277922085160231594481471323557500341982156113669369060431223291603280615997060534911907960062631431138130428822067761504770518863492594853882212939497241030222584332930485761361015542308057632063667384785974740240495732422327181017916402186265007927178031184358598284615906807118208118007720567052833377487988623496199012364873734240729782074301770230041456571501245818921796464228994503734854357458521655297439150103310842934212059934105786962311684414776389091849198396363916087449828570013474129722029480177125772345463080711325898215141448564795840765888586433488206047852028585830321743758358246456792109719870541855429722561899673813828099282294728011007427621220156209862193570262234659879270926075909331800222394677386042177441085027783779595474894564379574881529078429859557363002799282548788108687206166690208767791324317146315552472915162525738720150268071385021390010690509492827141968005082734954224840071617074888671588361456916936137365989281057194152735604757816594202822059770447981253990415095791558024772196368687288168339178847411511246741367899449579129691357023871375280401649041022958426078385956402406549688996251833720318957744188418227202765705710641472057209092962315350125254612169571998122966475736114119154503166388909660973393036993021730451958078434799309370658031205901917663145606164806500434378998147595923966426611347611816428066993950459674445351882988299193228553075276087402400683980877959891405974446044885863746722209607511905466145621832370501181014372340026305056762673457412842763050455791489249763484475876299579431548581095804437469098908718566382885601842190082047847511776496494998128592919750006093518729198911565749496643797576362305107314901548615429327613494488601869761246116283766197359512549884277186368237324717388940407065891969510474693500206381561288786399045106063015869697605609983486258342586512639300578732861819916610128315951613438587142225463889769929331634934840338833531812282261516368113989170449717437092933774376172277580730252243920803954728759192427192078119655741912592245374371901830556281192386431718771778252182147752176966517211955819598444379303626161098794938081582685753156376949907067672843046453433562477028920308478519462576320693170833087437669306234505628980003019888240932313751773873986832033304923947778916975515719214595866462989000225980870768798104778477662793269551808146239521514606296305670919874180274499310505365672346222377204073787033469515856079859755874500549322434615572940241909743182821628596862507390797302156319044841941079300304920400546617117407126068132177386975405566302785457129606611798018490873333564690724031867487012845601493649076494276054956002324046948612328197790799222989320630678095170956820663698810279321594213016256537366043365145078501077423189378831348732068496394922980802732530588449338868884694694429504152417081412763895738161921109086949707002822486672064710788644335003677351506859476905424381515432689473560989619633974157397026186748645290692552446886699874492152053332154212654163797815272093815171226067244361728161320133123038934197118241976635215063139249627788076987510418716237614923793781940603419788610390731366497115561215834343206646898078571634213731764345801019784191010296100916185926253846968781814478602232416223320896436859425246285516932767379452344869571645213646795896752402422575366362982301212800008197522303414185216854710857569724473758585655425207997626016046286531786435205596317792694200753918007242391407096376085502540794621757256405156029948758418284926828974953166347292486831864624469528069461494669590374487451752711427063726824083857336355843121851407366544734272477573602435578219595632987549254929000084934923901142903583308185451342237773656674241472573311471612739706681446681012238909881533053615242856891599411474861440035581974244821244931240663902034888969303758745106090383281180404242319453502460549283883016541164092227477255919816337091396001372557018957583118754554482746591392654594038041491497358790091998764837091506060797309612806000751702962253532553581200445824590221641266006887597526701384748929309598773670855472544253503079978342222961033507285874092034737168468511114397655379971528932324844217794366920235905649983436088234627336179432257090360663846317887734645099979039326420506771029715408666115999348612683349678733133651228642046841065724089254805886733635739996352103334379927193667439569000852171548691831342860081231646471337303479116172473977907028505009877212942815335355690747812635656142495075447835488025298293494720993855283539856592759553561784451411367105807908451859202289724626289304418218903529474916259403181454556918596004724297963158402364245474075150781154427195736177334156432144650346817326636436707013004430360711521262257710718182599754999696289764826854690606415525866086655896759752244055042387628795745664083819405151764722598774940127859991155553358440028126498519810703476221005952524574866734771054514779772572230249793446508703826430919655137330570253014175839163909779102997517453192831713670143879319717216008182772315732969113838436051817186867622298130055443185243205051497701704626586947965440041515928375047420721460759890381422260878127922673244246233120299414419308158263614920009654466248962574956132893057750458853582465189972461560022093952240182610154422906495062778250182899518406238081294946592938394757821589127840954909027791033872043559172835533814238305447270277262635782281771400502678237166875269899174528486535618915625064805119638801061501201617926734710565605443425720461034926252002119318950504572529356862371170298343402630809314214690449315346481075979543180000855100526782622000302891608283360379921495789787174979947994267861888752402282934815846778439803476780329858103659190973964045747756226571340018075676611157862652509520196691770512216848647935357471227310322617286476045052521672583296047062055440323687455189331076824456960756671961301558970959452913324573331559685265458625708495164718042034269395768577503219043812339417658482657841002904685105761563313664127988487235802002448354194987187470037008788663643738461423401857892380674785887771894726524205601052282627090235428224888323622350951923902336279732942111075113753737146044541639446852047494335907148306243729068528555569340933648560312947053946398822840675320819352717044233293810959539141814174857521944081520690636206980399812042019614218270972938357484463014669777329021934393535274742175840209154466487476038180099563883820036467938562123214860958583178489066941217872760253863031930171682781873351980995003108895716225428729674801427688469627488717400722776545211527154403626255746860005164171139774331858304533794211260237127349382416295512884804261900703098231784640543769716361779799917750233504382900214305715499927316442966894184840777467426741802100847215952350707188465190392348324127509070936368449842666362419283710713790914319906803614447028865171292695253555443476845330934935332851100304764971099387917427586771038818926013766000851965496239918289152927246415053033926901581418325145004040174461249687431268334622290896644777362340363416132275116678921657252992912169463843626320971783131176451297168718263961671666250029377752717670324069330574586139526656921810169426777323400544788432062824977145638430430724967359037049261561110232198392137073333576448609976740418285632203044590123095666936704942004343940984477770133973459707713834759047475156836306681230241103544114800334657138739941894567613878846469113489032021785319400756413234098559569324640746158102671493785415828428322469487485369769585698040967591554690293186305504929911424819182577810892668224932902988785726176856361394059414205545638035634756745859839618762544354775519639096091009491979030591020106537810561010004759125021415102624313805272360019048940966494435697144439046559091562584638506953935746767280853634701199378716989120376849584807907271705571537656954605899245934986243223847661509792643958562281374579668865070688689864596501304851094401915992870336960802124386870517978413508740241014087404050083185284421864093648498715104678390712821443167193724000964842290307200932842695645612965719852226931270787294868825342173252803254822227503987770827853253728398000585041100505707901927162472446557199944168362584696238619049887298087035782495394260919605394732539043705987311159513993907432323968655541499747337470460315058506938059590962037439393599655625648973835152875707196602769972912717050876481777836192835849804484788612964730295813546763894700925418540636714829362276267038061286091247946296691528359309283593662930987893703407753433298362541137810563918326691157352960596793801319358622516249198206134215913944064675144065841871763835610220109855221578605888366892989838310963735076784540845184463185624345286777290077299013524933148532528652992083611050062763355479516440993366878492086780205635596839413121546086072462796893260840368473630353161386635841103213972138357267382133371821000068023529578831104946673907630571451661339133316228449344936885949381242043878027038183216361214119801782110194339774784126005899097510797166968839972135230687780148397640746302852384625866000473052133499292750035429459742238456176462172641393263293726532096793751533730237978543774183326463085133793593149669366424066021563268069108070253706227546086868622501844135305148670400908008433990030444331002719361539812646644157393472436901918756149471109685429356770217794500027184426483999802575549870751602876634023004369781507374355853976742941846692180731648107591885040006814765715280705566932469442827242780283703264669301053878166180781386379856168713220099539899800544745100272347500195686719343873800793784635615908573967402319242848807804408921655375186251459173228154194501590312167124792924685601561432759818087792004600939001919823196930709050041635942975829192625436742364431473826974972806470763795681459480825712084472433259978370103017756328820092670056264283687867246325935888763087421605917573947297102525628655413213296861998239535930171286914293203504355122324539467110170842629260414064765550580836827902845601513775153017185232118428252146172910755265969204162175533718176310731594426544989481795553245333228131950834591064952520364342655126429844158369705622524125688879116366806632415759556596010055726053580550678580819308514605570124811813950429691164493810623809181506574330683778418519852809059341449418941432598643955750558297082913737125681652054907831252334819211705904473078755838156000509899313639266282355746515381811827735781557564818727350215451226458280418217582254059869781829473774355310548921703397610392756308478906684175617366128301746913125342349443181647593929507628736922910889845881213632741847399407768844348053409718636843155486441734616037185208991722476942562744927809124976639330370749916857188957564505900122936974518141482933288345129190362094824998958802584790618541564018406194127131296711524183726038940491832191602933036080875391808438429812445510794894616805940044942036626657810528263239028531987345076469037119717660516859374118977876278084215525328975233286333188143969246426891766754081765677622483185150021579175038442599245968364584162587279318850619757311200266944346756873909861237530344537802829284882683120472721009930300939215428883493537158690240476697497744663914179633185546936776672874504876386928639597552262197026785177107577028086947098720882416749057123002698282632494814516044568852841306671791154119272195479708437994104624919158448797126942601157528136712110621741353738820415987715522132209253451928478781728490339615744060483139399345091556944436960847645828148310132592314894796575032590183618625286743436511145803236835586671749481828419281586531324385243672087384778591816744503371013870320893312871138516393897207240851981618534214926223460967712863613694141984081779751167777265557709665282286046188107201249622390285714234766336985403087076443840784167878612454726360499703174859594173683056223219575020924540108355022614924734591854291444250950322572264420709069036688352929435711929610014141916205764107201255654002204450609639290623996665703689471336988774791511142157888350836261607687365442853700856586873923437081684592404730707797507608337278160371678645145792277703251768529214799971880335654460876372920483111554547153194677923727918208031581097526390649156195487405287244879172031276446281165690407670595411236128681967655473835287725564860055769159957948252468228422132639759019402596827355084879327985289075462686366200272701282754325711454288287759400971493633944863747979702317789445196533871726961156977001043856993805226282734317768803916316780123829020181617950069927016983241966664261243116512251221523873850440178422607296628772334520823471847576041559168148083245147066744327844188291848476423978565135567430550092077117103386901272047135837881496652204553165558975323938236526518345964796664016466637591839014887042912825822201046000955041826118810214558019163903503276963650395463085652023211442961154845077625612670917179558165784582871005906868641751237833198159359509871734318626013089420233134199743116193477617465295231933144862837579825129654267541728673023026345770844387609452761366190247368229960691050969251335571599309482895402011746222947419833268082839362926044127328762886098854483958849146434830346604644975264429961954533558583790875994377578422961017853113748600879448187507204605136523131431772174550479781580101363586094452036860796392992961793977607988865304990995194234602558439008365554407561425224450175209695292525755147073582236153733398086681123495174237318181113357936948591942387314008326648408668559639332775528655155757559005888650332759057314829458373904829916273797989079402811314742085054062060056264902465563319711579410348449443213615670275121248008142229402143424771324169268576091619016143701114106097376120265300941463099548241839938602780162957554270473518373057790989096868922298553660139013400695665411349954021265259890972592900937017703455078814242890489490013024599840641703980027141714605143136910571654644203435160501418774825444708391780275829949497401508730209446361401719281873046546733837255516030875207924336014159930054827550542886173571558409269238573467021058764331096435515449197383257277151561579557850158974026692709048313945750306519589455484802353054963697253209851350273064221745525439497438024268170168197060331686898976639491035002520744753224559880561655224681935152730423414184683523260774982266226851269427280927674433506870820464640747808771520625601178872879920297829857592582635348397766960978672826023604218671648379742632054449944782661459801467798680709163464831800179542451245982793413606368612141940848077423527768087674425661885962686652296098014588529349817035687341671827305867238516811501310776266932644340192578966904303061850433715670965956140274628985503483082313332214176695051814942000982999666958099738074626605645250646718608583471706558076680990387349869706008260337175908117304903192010760713142408154777756565006958407416353002875369962124510421089734671503889196579012691443135890595356778052905436920498573683834636775702324194228600755869799623370445346172204604136114376702801351345633084941200123622499142621796040518939380123563447324612612090297025848177459234242856082086406959597233644533115839892314122218697123967043899860099125998764679913643425500159989136573939441288520384589626814405016904868009868975879295640771280220030568925483035178078743516342257195854868600140417831288253346279961241448619085314404971407136966433873958434098698559121298958584835257403714037024073191168785661224097669857074645924139913307450114906279514097303180260403325965730269105971684419556898501553834389537374299410361941090871307004064610703241868147189568267728191404104272425255337651193142553798347881242473707424280443126393990165756440061911675655714571537990593057887367904151710838114156760658305294421863430911560938296185990595069331627309660864963373873693714721388564812974158612905978042549072609078718703285149589534820038645291697554655341045023472990042494224942909547494574463197002051878095612287883310108916485277318376203428744755086316111128521263501884758870656341228485725167199613887511466362539325383761362467335056466888005067975418828049144590985316339315278114300601326504122247685242022530222639793601402952266188349310041266412325221025683874041641117197437520115505936411967916706576019449557853741931895229672839780648695798353421534706768562355730168635636143836633856417150198634670429934037163887610257331279265627145900448310695533518328343723628096218376871085561629585595865823162660381677362464504758730794619167696132324951833292116164145764327074886304208068381085914908486305422919934404484127862480294600283811429017840374986982541141519171324347517733166850667917585597402081469979917646215663761909047819565802409015858818274454133921171612251303209391886366746857859716424642499568079497338447676899130352378391140180843900358518309931895971895420243608401905691896770439798338220508076620903853671180349711128993537186723401452939949218319157714970580800292574064198847700429772960483723128244184959896713439075861444955075923966086075212060341917113097637129939222004365913165287816438286137539509291497328498883747429889147202327773645569301235392509263030981728797773035978990017005890295953108150466549300366026595241399759822673372647874675258921938180827358423397696207052894565281316073702195066882822862768156988536738085948756421625022595093216661734019367506320582462009441124991858102946976695183954229962509542393787661326928017063031240877308476111005402112301531695829723178030771264996763047074595456856500638599358403376063967819206207362650033509788202441216957725730357355384849651184024363469537149067368290916643372199133323923643736290117352671021902684681976780220125713810575724900035728640634560744610044153554424194434645606836791452868724959538967395563095937797101835231663296297025926792910159803362380701296387125096717715233965766868071302845463981486121295786117334683421131008957208221550970278372413247076397724086423452901757661688781541428980239982671017139282423701839922556786036299141714135089315015514472984520886697876632839006226998528842759892108933958908265171672905825486300070947994963192022922451841908454610711719964044724604462159633281603252571854979740085610817167959751250598847557026457353754145493397696092782772562898592734364174027939604646973980066455802183637996599998696413985667755264906437199895679916458426006577911779227147909194797319597282771322721091445516104840989658150688571963457821842002344626575331506470198148412156618651630063792234317908465620616077327346486835697294830646767396765566160555247295050169031613524686824572881800744722512341854876334488550145615941892691266671573810076867986348601129004324051780447836281116789759723024078599169559598626989128093516580694994881578862872126927637227008887601917015051889670848841381449774720609241278068863414139613489405484650600553368352275685709844737220545643039417513652541664222858765008023086040880353268638885824556215672899251554566156773663914694206698148976352464525358100607007506006925317433567284560614518665147964499756861456264135936663547789623119219422065414159855567828731588275986744199437040535856733542902564467678140660704695413567160214023838181658933248995673459061960674125199133030639777300708216288051157226872543218495547911688397814458674281170347132697772586869595260964730996640689060388230268459633653733164175232335005064797623816946594898270332126211941501988237748630407019011675563096863841522109691062260978761507245979794766892119772109385119653126527076398018686583302529566732230944034311245307544186960955104141213936485596265666386041198941418821751843159108090535937852059838629514150905780107278014532614216814956347649869433311950735016366448499173149331561382293618105030140813630834478570914173789037941353532282416423159447569564028883164464241003863085506500665505461005673888057376482469352290140119986797414279827652049638149909086808649754298454929799670867799735926843196694838983362410972936159698212482521363600896305962870729313935647646131036100676341146638985179371092678603913688087347119562330012559235488570257804747147214171035329357407343002143397096174751243488730670823815872800936569515860735711563713128872106905940815007634239016200368700473335197786571503297136631180062082372637520472286422102317550264326351610597403262580848540076481381731756584381464498232000063440423846152216476505073307572063344044388392324584223578777402301457951311644848716023727322367892002681278136370413725557196088899566723533553786040284876522581865193264420560790162837393621249026139616394900785105047737611275065235112438971854596254284171323299492423378287055600055885947984388774839222992199545002715953330445669987552767037683465570766419487389829309797838119604881374693386678505801038498958563966644502931450690662907001925667399390258668821506504334284987426559104490422226475967636404251648613083783318292331257033126643404676119218086538684016523529452378569043118871489658119070579074471702778719475201034564944577355450659796358046351591094170734381188807954170229872801907406383091990856612392082251395368251744339563105518431557800285242360850245980607764146009602622311165060134199840829181379992963752075981712233661500487589909737297052473232559085209125801969043514356355344675699515791492438141353046517956613756576948190316187833215153903500598595945950786174985433346996936079370011687273349738125813234496702046101213810236256294711185593249635520427050847617704941670353665126754739116011639398537205477665889011752818998636564335150439610298119808078570856747630343098392008441530658028137888916698157809991511252927226166315745863714635799084641631708352656382134751996870308798305763766535528342823014416866474961900111724290652514612490772643052885999274464636244112851646305036103887664808246492330152990969264468642076398141521777501372322375400388330323371253720255498743696127017162492862839355759138359208961310571444854136623538806146145385267288181372283465336794765146031483447440806424384636351458063396915635597155600119841855731054386615118525129053530755478131847042563765249735221524599160663356831919777150731157701197236461778072467989648373323086334354964608210375087592470120541265349620385528614414564225729226050969509442887252433538225199455924199380853078591147269512042621023793286470927859523031934850430151929981041772708411542267101289998191302464208069706564997950918027512756176341366594276935672201418696239711897024571088061163161380533986039880565140085542236596940644412030503408336201496552437552994919983148815457731363837146520019767906060136370691380807867671282477253591396489913681228989808610410009414035419817751785168438661445325753005808414034266875300851092510574441632020022203212520771583845777894456362747680569114847129209956703286101835991608277005118173383524586190816798637581585429250949125252717623307275948526981098625980685747871552034226205657512872271072217916836054442170171652815886576799446116624808631739289246378876907198091043777940906093394356758538211253715968351202740994383564630417939039017972494526680664919284260056610628211346160555335771368894096959529359856448267133505891133771329345836243576914443666240378847723005227190796029453119812878368949524718921975137654014731961002254772540648959694376644345474426091906042046613818841120052738400277179781266520890820363273358688859997887026490592188629299968714199600970916033602516315256987563871380726587516678498477656531334734320668223261439608550028522402344587943373336018424865619920395513614697237492760506338821335252908393249668098185648957546096801777065720199938743221221073508978518751489246875712757337375259744185600877245308092648480478199546028810516011947253796589407913268778344105613971068882109482973795493199470165466886340446993384064195440203207007500002204762200998200533023632033485884915414691488154060303250564263027033422589780259521570376716930615656213503670012761889160454749042337540443088478098260521793001377844341065070137048710938276310272965032032208728625825477761336695943602077163314973137312575869380424641923675126811994214248540363657507470304510482192798917970316094512093717102006698456621979467040150053398917794612493729783523506106568751207039082146935121011952391003631155370529318314421678413010404337748855028777421241486007523765696509629656518702027548115451130659986645080508732572590379781688706847914883736883732184839240544584484292031072134424623846485690315758744963733236394534027323070963740352725820871787955022334973591867461282045217022308277179252080986206158214965522130407977960396068837843270355367344856005223488118799955090945395867394011212019041047757318676676157372462426278972705632580000929945075478635499574338716437794582106283950591305604357409919276452591819338749519788650384719780103495555600019125157035329578474121460252013807066352519004836765988035642482026763599270730647355633441185218453748325764176691806166151907221058483736152796917282934792283715956532219696305767716242504468109164629560812757705820984219996004832437269801159459667089110710564854595186192053859944486844415272156446338122990284013496722301145365433264217703921908941447630935601056889762138174242883635509517994338543291290881316104027011527553043771399682869865418898679147624360276616072428821503958822525450339987025016866032632171147640916850323027309384201452902452430667897404555869798740950823735541476987438710613903458437580682830658484554008487014279572473728602915784932190393777515467563726567490363706335991194567364270396288644136000953019841052265680515790295652329414359242074405477547564949056406486733913530557860818772572145457736198858404899999142450572692789628833916056814141109551780919589870420207360133806872879933831808670971324479660416031249704556805907015593791000491716353445365708069232698900992058971675846379730100024871620967846341617873596699411303963984421039008775649990088735418691111006399557534850553953486120847234397569767744872084189573777745316511995893744481750362732209806347888374730282772900750656388351390129243047979817233775778459697201426157514962816355944228172565707805895796384555181477782236583254942148797644154687659565121682714599411563794994295229189222028842110812504890820211591874309311172055872484117597511591111409678790550348039510309804391659284384537362916205501407187793645920100124028784672945987292047705310855385226600199393225545459974571780842123396234450955108776087333784249246590314141878831657402923778708446300895448652964067638094065304007997073277520895943402524295100728367090162427226546354704973179996292907027360343558922154988111375284026795851990131909053878092363501799018073539236440089787994691454614807793464163158376187071635372347147082911463799420748327669882987331737698667249910160479723164040065967130689590424209010165309320902831659636039471574028923084595991131877100811178407571372824681930429613843157721099521025814874871542765679789438521015358875354382052147828672360182191205944952803074805076884992148851292103652212832941741891603775054750171266436450052980477471989847550410468055156808878698788744157081282235778110242299374847382607488179141575175737195887521331158717558451977377777143474202271316412360481328436052978638381033166843868206522893213953889581438175853856403829553174341100899140001242152249727319009393434247199251893638360237237386680889984682311950413836304269571369659660793469271043893333615774274086259706153643734258133940722372321683777109796477233383681858693782156550956373446267302915870819645558124700687514825566660284448690277696106876458669500694224920183957518864827803659790959726051280483365912754988673510730848058986090734202892466731462040292117728972525825563386802177058141018462564837744692640997143247873398329620526749495513603709482504896802829641100469086091943189032496460178437526290774643166755056293235988903433841808227290785063805550700092768762152056561718344129108142578787122876781430523265534604626836684730837932674820234282214092617705725210577397639260423086165213635506724645983229197119444416549752495346546881858142173005914761185029946612978714059338076451682048102571049638900462448265464067826530028302390400019578216176956738276012353998760945693753559504718034997090768074704669991971014012351166885441118106540556698340551574802496552430977349468092284669463329208026924039061036610434746481205152610509428689027632703187432899467673936195889807145907703051340482331435400601404136567463640622329110518354797575524743203466973795086865388249486140860921086815525630025558781288531978096033993575415338688159954498098546223373913682760377881242054246878340135765919257832545899224722267408088343078191972091662804058240760843244504256091078495949001080083305949933184891702871872941972675840041904945504893313933740900478218947979213046147403665784222390353793780275787351996411266635950091577640029621894761280918915092001516086542596635592441741131099248896279949506493785083335738175010830781433548406154455832219722883020578125020401230525914894530440893593289208146458897253696282099326788406961746848937019093352154397478778677384579994298106665577920429913097507762188747596793006618320554661574170066161731581128421311467594999152360333171299371995490618400306063194377076780069200595086789877690069667602502135106825799331834311474427501860092340816265772965481025208936373346704864150526403961300757887744037575353201564909280385754862532119482382839838312748186457627714069331591234117989530220962241417286078652748769757617471754435168210682873232539530931198177219034221459144508079121007046956154531096876497073933200682162761935175958184195437615157586257957814260265746211286083903528304115889410723147040217062395703548737671730900658639369435137910797769810648752655724670334779451330148040918601728642444999290433002984496810063800900221774005982151052536204877104288456510998007498953248461781184450910887530766993350535144084562789549989514817404268736132665537858022989246985512134238215262177088005262674168709277247305204131320924571883772980342848780271993360253355279445268369366803564595775280987800225453214379922095452235005944940597338750591932844980643713296916814350751940718938060617968602899032717674791041178333569836867899016520177840787377147008619746612134315132199325619681155558503773663004409981998405559369903911671485965012041597548357680626451688398176400705462679508361888338449266008351984308709919998081988486791982940338071427472225756143775006504721409146925978629960677715498457243559282502838296240676230337361683978477536280266495107670238760493595763431029956967340498222100274178578367635048385781772813979915869376150107038632997017052709669200808773872634563926206201502816860257078860557387178333884797059793381424669944072254275644399868169538444837012599157479619145919075253794986636416534473161252976232176102177611766088215134591910878423056531197358063468065590245190256075209703206924010262563893170813609870638592329436811656530471604843477891532323039193433318348724518703721734479132740927006438737089208376242438685802516426403771541901493004427563887582882181952137017578210378182926336064765795488824703042189796998072777806828406085347298170081496101741229293511133247544872774159895215289595142355251290373114246862129533676282953445677147218066457103443715721475368251257431286930373900074047353925428629563258345126440165839097948062284785246350978597364331408408296474132495143084630603507346300309524931087963544056155401031091351283113198654392985345674567886802980781349738602802413015607143101228786287032289955662506503257415349842899609353876889602236281041851913772277237953749674451751590071787823033877861333459675654885412344500388637964412514953754626744101486826913768395325717556351447532365719793218711758485613382592543062273273515913624550152936892924452482868554533484520229929791707151441832723488718401424378273488560805988005936949849590372055630162721758334309504536147793694434713698617637689991214754350676021374676275561899648092594512249166626130524921062775791316578591085866673009501654998362268670111333777033801268825925191817411583152190147342891189289088676553772117602593702811598065101018475165557689210558728703032539021171352875314573928662108024027166432047338896858017561161464781341508528670511669526891847932992628957958414981188112094352194993098460802182860311519716201201943515258064885086223184792471131246355579262024166483905349930494614016346787166960491979556750316331387772562441829892934606269862526090439377825733430588789239130622004710045477363941389741069314941499761384033567358443969296002741883003571208202118887248088262002978910507902037678049914045872851311956128887851533334958245432928174454552266663187301191178944078861239387441445872526016328061749112250079947303235888633763817072360360074179295998843754518420658458642106884498579913487220734764611220179628068474514393615249905851951718130371351182379578904971419639513165628149533813928875682809250274456405050113841066225985104092325351513600052381316342470528757398833381443083263423095869870865204044247023634964093659168559589709717786014559499205629940199811152796722571848200926769809646701690028813783891227954930146731808741773198219729765851068870190918373446977632619836761868106199950544191596522679425205001196829358489255186659916193621342537405809679361672375998817416989137368242522852714953727000199052267595547688359992197468872024728819789762176834989657315077206031748507713498459123501589865152714103220678159135702973191253556738624712626840247710922631487906366352168531299606603253178370908457212979246843241181771879061882853518162851232780422792641691197619629014856116832471296710153658237483613431213224044364955003899745524918067043804090511364400500087384588507887239375712778720374435496273262909191045554410117628559490983365616924783238166170019889705394409402832550526458309846632547042789152303862292313330951092272338915286976841171200163912239552767221410620904685107785123892642170768230171132322453437109236442153288130960391190062706284461647556215409062216334431553773172866575071235507794860755180453115324258392157563963437888181206832630817661302316843843515414366492930970803706050338399651792678118472975328137776360473667883941233184953314630932233870030230657395822441143981511397454687243705229728665951365018348809878990073896037602693997267711816561867831905159013904535713965934816751045897116485653545867407142310822723925418299395937458726466956347693892300269202832031840172309756320247139566825770416187549600282121865290987716005792800685790445049214605441317737076102533914005752074131580592626203817371011145515152317611324836607510645702389307170232361407144468483939657839143377354123542329755541962886561194464558922105553636238624743039312625427036689955649070387359894169749636143000171095477694542219569991749456707269587259805463936548422976365622293089557864809435930243400281193259394780617182457261333397533901049323560712442203947642455495011499685140608958154864912633232948808598510504978632014383763435071189356666013513283606784044643727552905820914904671027194782352835603054773932493618063198956395436153280728668121744905999914638744992436536515790545016178974467820741486084999911897044481410802244971700932409244306349070792777430093034500510767069267520164594780122578384402092305027869126437215987077728726838066172032444573369292432264821935825017590714423347664639961257406279979685449252147339365611004171647792023743790485357777360490823552012161164144522278356223348112477630606640290842077555726595831163194131483203140516902864935965651380544202553351759625213720014207222799756155068801438630843771965334498697801810423685129098790176883538212304451138824659617574001163880794396301430192936614037211175636597134699385567329713649511500228232406720426287271279688700550680162041434096047096606401189598946460935499653301217650815086091116484225366426984721702251239823554367402468622144265928578249495824483600589239795560614736706794942923308755925596785005348888102794029521113291493873200918136509619800906492209749399930420213645939598536702869242835899023255946244367310117949237911706945979714696061230276750639851229173361407144531964853150811370838911007351880693854137871799138102948578970781447867441034644061543227306552471573541527454878827436287612806613298871556370604038785929408975242976772130603223196604410971164957510264749734629819352086961225658560987457514683802264121203206189897217949387591359480363184637118670475360776921190458553632839275177124792890160163602770184584632971446997106510950119779115495453585924681931707049599759207715462807624357763386753099940239116032787529176185311789498798203606862963430050665683207049644561024987671351719223247013920113099000747078955528356026502255487869199628104612335152275835618246282703233475132946723372792084877976070625208410279707583874950186561836115472815105271901549991444225352834576248167894172398996908299485501092978775843527036259388943980728418674008446519056169202634195451822613473308283273753129193251173593581544073664512646016476929324259530423893197608795111929894248342147692919843366898144822649085996010519499421331536391348390969692464633924470470204889754889196272305595330421470791582295329944053345390339580455395452537756689157229630275830623708952103567503935427710185842092557959778887822142962880787750046831314156952490897452987682766808329104857089909857864617948358712740825650056094908789827309014625780660153764314677613420963423429960386288570009204575617817623452507546696177134344334661064145690059798429417496697102186611811505650086278712977825814814785338436383570286927470324378715249378580856602805908848973927576328947211429495304872052915493201814901615481828529908683842285346867579576743910550021652287343016404959070586155585668424718336799266410986408441062426612605273061366167619756481072770217019973073101969087328644662234344714736979008818802083220716463461121605662758767581390725515232317924065268721874409151728727230381616855083999497848449599210965615916312268257867567743398085322092689303747489304590158619850442972544127915419189953787944263362600376974834610403616395042391316115625618452917449502171442305551999258004910222580058371429199085247236573473506357498271294735347470626101582321540803164451771014690433682532696567107706285995819483846632465424917610326876742042304855335524158876724294425880515884051591537558138250666930573574109662551281351832008700211031295771380920811786743233668781503137442104681397726511814378230715247709569115890771003311801405165851697923564344509238338926771942969811342628210888289690156884478586584146701059256478404387986511318435676801213382958268625201226260802117282551499191392498143630091373347529613682777181010112724060543445241818993134435415916688279209022370436810157005895906078692456744394780429073522338647185318355488719025246318235041752883029301690423492524545830974764000255586422737787054038584034949072659421706588186767248836687055253674475475456077418750643238744817868949869717231577959240024162522752539248322549467075708764713626999759912029652706495930895197903903979964287093704827684976314455183599574082615060309907936397726899112884789249049024510866913253025092594153928394125120388879939850583970312310683229206296480460195171566849697168769283860928886361560638419787324954406440263853748906422697100133656926306578790336108543499332372281953962546671483931565366560352618769851455638513660927178625089028498174897423869091997308549498459803071435490783077733406656707599775222115698200562506766723941227728768014338921546714294515445323884399008213005070577521594780970369213934411289229717898577499906477659184920699108825052323321333044447295213873163555241059148084001959981441980540482987389518282988540396215922925831044601638242848419193846161107242084029023327316103453607953993983729842555969216564977962857644741269905490705156695832862138115548654540846537104132403299731113117372232180617652993330606569026897691197401275045386237095393978429697490382813961409662658564017343543738080020388961079187350501250669371556650198853468780277330910358447103545938323242093186468222308269081202849214467252513540876331921317780246771496720954527462998671142834898958515550521695023658750520690556185805493896449975104770384020666236201384583348867687717960795970341022065717781248209358822662347911216905558843246834690046368650847129679752397462872668038287461376445164362436404359064914391030922859799541324140023265370066735376346583001533439541964573093297033098000113825279695409975118152698328910894329075122910606921263407213257511220344151240991234368782982343617798628036262914464307331003504476538684986258293631894961511969228084811826615006451439031539330179832026284281162314111858374574026425298373560953496597797256297263287910970521760638373592072936962107711050900984817067783059525516306327109437205730363748364693603104458802496748208365359002293299869241234495385461134779612335619846501094949119255044984637632358272137578601996258898038569462373870832443810633715774509927823604963281830640969309370423583768035436909860343574112145591109528811503275200623262791835083972687675318375795564946765895033530499122930679286516330631209675370577910799410446420831580703136469757879966206800758964124178281009799331208619919110156372508946422052797995481367588137556587883912378719621536211642788660662595304860558482110208844948514469752848911865987205288348180833941640246400792095497055059069593230314739982453325372591224571351082619970600132007393179087411096070060874130449560796748245204654389717285578472951781346084867327331216469911472867938919487444808725830469315085186515757920445533906405815398887256156405051266703407889407681357535975239732681616764690606343486169297009234191425096832090437055263941821011215062700912642358763765279824078567826464559292814370444396166440266524767345707087156426514526746773038487481001021749318054303891695649468531252025784792020096170311137505883962953824728202949367446697729442670648886787305615987774304103207367021669692582686585757456596092009072575651226637311911039542683268711868415233194331288410731939708141415449900995479066172763592474717442747834440097169466564915903974103264959050159214060269336673601759239424641945932447638316416216008861452628386224114151815658529309816025505958010175371578280819675597716242952027861923678333300313799175470331871825959143301218343577843624102556417569237980298829811590640415629608605290496921658731891112032828223371975278001793842567977670877546220127286217922498177255580501727745072723070214780881578963654573813930932431928638252952920258293544176652343729441784127156910102603090805921258702749401808202476065148780584311074543367166011007964787932583144280148895233760578572204629819914772963874433770003951777484190590590172303690735151970442007059436876673793287601104317366825752605578184311312059376086709539477261458235869698484904854695153761371371194113295467111484864598303169536641692600142270501926798835565367721718427817071871636523283111783589541001493846494238961940319810623467739295881546741481118209143854570309320310160718337678675577271574562090498506631843838458740566171050568838624526385646376605323247506761128834275796363183336294148319191508192163071407275554618256290885541175278367982087331927744062230618232810293689628621737479048244064719688839809254541764979262020290538348278097980499546080963030626483202257791353856625667773936767657345338879496809439390524038381192671196407622576187423782819028060796083469386538029595420857885016642068452166000284904277446136579739807793291986789690009760943831490450555268852555830024112174991087065301307077248816984073859210596508189768625302380326024347206805614849215541390958617347683372860344920533936407972221019915378856632620449039443042719195653762564890817382181917841233168773026460408922235766051142131006278129443359722045120995170300207213163709250317553002157622896295848007886979532717171898013795702665652725278128478464224667617009782403905040774369365168889646639515903508099666775023840718602428933896984922084412651999946241175549762619412063170420818830266430192944535881776307290618130189563788298929235072883032527421251058284961507111945611441368666333542450600420480584843854034942622597633914135168387831993377200620803436740438472179668865446309994960923662820932885205691949346549983659815012687487168202198428223858091968283967623702640352766042515148854328493982846390994201039260105027397369516408681882547012389246728159325833719567797124095789410998598884011546549670573186267997066925853601904041452894301713207071813936186700601977944032855022824073382688950938951197399344488384144697980604036689106980289608132182941632603958350900755494734964241169963678848880112084812332158781396815144874952745972137661803170800028072687798606519981775360778728740174665225610287072506563321955763911403669249370740661085996672856145279413056910543673112700055121160496893056949736879785137009582945446759481669938174973512219033395572923140002683149946960019303581837139444754704516960182406058124225180226934387916808796893424892272813808533956506891462518064155549466511455719326175691648412366110831749227668745338819298827312977256720356309728042112417110021970234648192156408183419156418336526930374217802193956130259286931050724867416326245720806870807754242044748786701674541956531034505134191803712652765145949572256391987254700018304730807119055137259106006585378257606423237559787352462958265382752895012905342137794288305507037646108349586113397032246351969970118173951142011759743988158169922964215498282857076202665600627544493893214167374847268869606007881382566117485245267440267843653267265031301091105724632168612078271074200583274321931814565467071460259367717089409946447152325473577405038201869133461144889614584436454079703183541544884268800771727632061210691507037162458433982321172162801081833008642177213720994948045714583185123832036186058279996256707680084801547474369926015448867238746941502280367034898155264820581165486323151857659525066534838821005609263181471089717941706990113174579452929911176311062563522190995375530492654122874347928064355695432271716119521764004001493528517355236977918168729724750079448234883560452443467185231296528285864144667426173551630133861510868928152993908518927953916891002742857275324397889396550967891967599828263793645074364662591951337740313859224348618036255684018121334449221361316362620081680941498285055934231434508289135623992954595905046523858905446631063922698597081748636849648834664054348983703282012409878616568828625191300808665504413340148595617124012427048797369747490151838339944476064243462744611039312656927500552193390917576594793516122972879150200249447505660279821885539532152029504501382128910341308311460202153124898972787077553880308507036771839528928976049812957005054897143636383868152046445366680021595388859452908079108105327648899778747971246404759370777465713413647383097665124170968489064574262973461640203130382696353032789840259976213012914087164255718246443267450520217368800386833439530384375163884855458754728393509580502754879088679928858396082742158024034814021329169131506719930203426945576599445343075620125917018537820822842385281799640139593423977742364615417535391157666543715154838145932321692071802149649466703007911394052386624461637756777542621858335941632636587308905086398131650899837745372404895954788579391003336676839841959824584594624186708136907615778381811860962792627460585221637346324876934708159078565583878645701185278222558739170652419145251114732572109507789003650743796832184360466487018486319460990856677042140574865770063913575083360300624620030858057450657701172108499704437055757176858762744332688265342929003800722286160335515376956496765643100821681459256676590775210828922685259915820669426714597315366613412245717390348780215628683737929169172120761342003658429213106704477777231707880460961711687506389894525788279247278264350321006569903773727463967593840846191078160087950020835534173268904584197678256973583427119376227109534259787784801929228564505837882162299609301485140444424804128591804181507657837880223253745649742605478288871310190907485395130639365031004306634187526409370079706546887002445365058892549286331078907479257490505563476985862362508090018688959131571845530390824316952739366486526613141367844428300474705743253676425215751477879350754758276620391834509100050187454307961966260165977553836370030392735569410659468619014849831861016429065387830641481383691530889448169071115892479900361689487996799973795253474598176198954731119919165528649987508195485617486777149911683868989100634548647058687908337351571620057732660520814023177308809861916395447730971755790331127125516329512822293625958229185582537591002671301908151510465028412623393812574955730325533757352619818760888353804155730329872937594921146358456643011342175105078866612005938257347976448534514898962306144186549373180946732675499541152057074715059877353146400877907623220622121720453794146332651999670774492559572749798621345150746424180555315350781045739079375761610372290831864479474168532696074521682133294226801437317423347444167194993743552917226324453834469565139921664943794726360423439334441641708550670061110059496878196336677134086166889819605075649337206780895395653042235215064178230258450694512918317779395160646558366963957804203577166567162670548236396320689772770499858416094123431638154593877312152082968724939635327671239047911255544017779298844212281507798305770961229202932889555145930232937273384536072681258475980323641357395591624919913475970929057954381125547339553198244521274333891688771993740788839169487556013282684686853584070542116023238021827523788793911365567429600516732329185643815810139877744254263083065324120407514268095021435281300765815624803376925588410833620552346562646754075323506920306408873023533514288321166344711113600008181342829545024784759738068145487710068326642348417009098061958233076647567884212799303654305661879528549428054811388309434651952380912710652973533757932554140816787204634291397501520667155931085711101561195486624766107956563917770779152667556866253375997586736262084517076782763697894948287440255999116345702320887988398028657504103533810715264065065874366049096658494553183731049784729173605031447988853090515632301664258869026614033152022849433219268481581202382216909122326663090304568565916614570636534913894891422102623226565727064453981469383032563284046340753907577450412928099404507536123004042920074131167927156378506085054207064128428104992762382355100605958230138932911189122502674967680649323592361361023776609171563006763721117563903665566943908366659062218497329459744051695162778331395886581208262023165360474275395982545519562250021535392212370681272961835666931813767856709475911149110846285863162753099483152445500247475326964210283354949360447419447808079369193985558745238094129090564219291780629073168600432799930399026014690095208068143163837669421017022291610673792257388506076937814531186925557590885062096562191439417787292272966071882270517091470732305370582703773308034121304509299817406040397531178583868453637300172522252216229367853609204072189573208687203843496055623087561057827200505891003887298890824668803533947602839729972024980758468613893954649698940590501023559343226580231757039809999933806328732956005461732308482972849783491522662343321252818910119716328915645369295606184728274027058533750329875944255648569319686246465412741995656433039687346755973387848607159129393804510206623906887057937812787758490768005924527438463637681101425999850625331211784437488798435646258674634093277786291740652092926384813420070222896446444124413536441121204002433530425462071283505553604201713430909491781911022882205459281132612771238589759943801835631657504327875553530513778872581738900312153865085763137576281790094637478518579330956209414219631914096085203015880587076840096732672201826314967658526760773052261882034461172467013027527328048617610712960766983272008531217093320116369352794468136284098774423055759719510848341074778411875996542471392025123111821746017862314836300020219834959262773348937376228595543118843814239435353158833366152553772221317641114389864226963439548872228564875166629019166736805225145259073207303399230540780632994085051903070351153256129157050615169274565482763510120761727836483025291214334190137290708614258972095824760959720701710298163170226750598699855182910414764340974398209560019668778533808072203748702835065636948810218914016120780501623852067527420378961495890106096541762594776070362317913048143538907745177091763088425284708677724850213679483242643579658424957383285772249822279311192909953484260055758278135748458145562562334468851231441147252903302222503401670319749714880221112890135136866711143345867597965614917815271941342897780257339840172891674397724887590260632789002741910446507540638052395100117415430249076817401205855237940252772823018546095264140475670583968071107911072580638147609205776643853610584007840462236090547152516932041687022661189537579161530636920612260101902752492031072631867284846940392303988264292880034117503739873408763950026523581936796815069635214282618041806921881536178200113805677668204789859968053786587915646619382624136058534820527221354801665603314160598415796158268940653469536198288704995439311033807623844773836944255799920611841754807720258494016308975248261958895913847423146937373682235513810588216084808401576765789658654108748344889011818427197698713559494050708461902185424484759636055422044893700736661660856818455919860991293279991022375578575434868448034518157878692702799925436958070505847236465969912832400920527604062295144112444240399719206343484476096430235480837549313696762993291771392171861497679398308134432406015009531952798274614660280984652202357281798824953915294562976733722381027558811845047422876702333595441937126569256330488592319425401765957963240129403548261026467691250189866534126256389170950441279477596980063815612277958974400429716583469527365404493657515794937360955609875215671704045210574571395344646880935168486798148833441926591303758932773912099015133521705637970090477072010072952600006930373100500621267531427721820098320961078257755059891799404514279766889961788890307965755473139866198406078173723981022582607672744280617114840107259590037366673869218547385285785648121542120522443311675109368260385015783276918687814387845306869504710004395601200400921697230774775673318238451588319533991312027206497992307172114317986318303792384468941595935017863143099087370541070030503044962360440661062405959673052445051357880289206215289149721021962042517815560051836797528368051926996178639155194774129890607058874137706689401530743195094747562129698737727986947988194914265622547856251950728235700589890384981378803562514210734176411194281664127805451688162598913506461935906789946724467038798733328000850702269525456155270444371072020074016398784857971940324002766805497630264752513570175391733708278430305445191752420126810410188607480833473651676273519036266411135394482123428139790198872320677834084601631654090398029895371648110310545605352966205844230830330505175445813657176887681460647261263926035378844733971866391333112875612374791206260056165426829956999876911479149395183664675127257965128552389056059017831283031814813903472495734331981683840957687429184919643773929556547146529664160873505694586301334014600947274651047017799428716171303521840427231492265068195463976456399582036253497062884763432143407595811715931653429947713316386095637101924921551047288513760722912208921564587542352491559842285978240063702561324212737620690732576327758901764329305405281483426792143860085225630334505444437849162022046111332283021913928227833540055543516701052392983753193679619978246414476046294930017261478049095964264642956382088748175975429930531804917166542778956963011308269832921067526637025545383039365883431761039234702546956487676795095099358433088918009155119623744285880891782443489494735001537271908435272005880665605297320678496613483955391060249138701714384368815160958302512075107196152907322296261949486110086022177914169265482532750409833835084657236448787783937900581743977998329835527239176725564257813860051552848357314473027073002562473078067219897833989607501401673679148166329479865997727374867516696785500698482003978981349779827034286137038236957333998259795532602162636073150788237811042088737879656246763386721008204826382559241368572032070380479729643420350237110199476907454518510864676237822109485763085541624650944566634055750107510149966041213373118556926895670138946032983416911318607289411713073518088660977405614867717660883757124439937130532154172655350023863684734869081056609230794563726230179999722484869489514290596648113428541819092235299998387949296546601000841220914777040937886634942188876693462587970269803209219683020142605734394362488636808753538991408035138742230672786462605089209516720872909284049046723418236285844067759285503565902512117051930315330507963736103406900871368325426663648662611027098677918512339473226436158886218817191467887901300103328805440730995270192909111790133589858670291446323053648943259006621088041281872309034084489285787973639714550446843411264215294772733002000517269378019494194381042654448281708070309128159528668710066155363027655170189903937865804960413551287060977439611480093587080887201348908588678260504501487729027114191601149450418507749395325732667197894889944285246603473701087659653962078411222182646227677462520827439669231200116742679412780706009187892849182290991952843377389003619477485396141610108009608489337440407363271638059695630627286920300561814320831711957936022607883170421604485755968774223995615459589871752336227864420535808774433665955992109226264091733825244209273751388300662287155589821867829267533745350376895269064799657343525768902575265639979349730627703720658920447832722075380060616051374558224226219221403077462668106346529206923046230073261611402283570012273430596015716234998366217091614858066947934161429056760457544040573788513465261695975256336572293157670830687169604852697147665970480470266854704067964978351875338033405547007106145590806598263564075936335399402722729010972535292793083292030369659637918391055589148906306014795253809623465336027806522529887197271564806502674125571279224284091673709781207366480202360727185312195526259919940479762931939587405315349245665740572723339851781791187902835897943325392494630523875349998084613436032998124725608123377393896940425931963720103686317766859976647632415920630084050116027378961791607224708300032828575770413652689944160661609699443102160568753488519672603404455346165749820229122581969429924930951020203120458382323767516988666360718632714017474331371863548949205840740666236501428200600072232052786647764029745329244158430857678144562527610565414505586336548826083083011222459929951357284750479139683844849652283168288262647446937701501464352518227979319106862165230525809175315382244116772668797235181945533284722409350803752099481907524543491080536790479573030809712474983279077996257185148249641164168477244601298950564084630108548351159659092246147935427437449928945355426417707319131294802493140463876135429513160418991870512602134065041437511103128604122351391128270036208176414324020272968091478130092383027796106625333013471137402856498098133733171477582501076614167777180229942111656361168504730853728299461753089111949566445026732106595136475157552013899988543552518975306516492293296419433702902360154140329544958930472220672664193520309881035389041467245216018769972105350013120710543462504105585200601023132727315255243812324447357676877959556003033272082055260132090819274734247437256204046131348288798607073464562039105556831902697793384227714291903754733635042895963720784148838949043908276580414549542164875872845947669930186167884743602274033047663071054704079114530581976666330389182357379952238235382389117825179194744642584523904407775503899392243922354997552039172004166397391688188729387861693987919191538906479940143069646309011896462055505117251121841187577534949376455980690466009888332123722824167236256461751597636580631537602007507882902300474834895541905376315602450686875322373448851678527291618298722888440083256031412652188823585828517625594546457546449426684103118790959256804700087993470989983725592535485277205766228225063229512497388253783299682090655609514122222468410233942211713292389407795034466060243492735820356559063170986456274387666760909943905012074589503199348257241829641491218073455654672377250522121713649317706093414644572719127225784691815288028430912407467922086346419653539403750329656534586993270968673743329501428361012694295896740162562670517437708926171103124048885193444366328881118082685926664015583785977887806361260066151064249215821593574258753126336283615767371188505487989564888587004373815690673406893626613277768769546762088432796702504706795151937788121825348268535686442821793359896397144087737736068440744097443166316810324243077467012783361237547347443125693172059154847836690013552453394601717706955674093171992597959883407200032517416292659486768934279667025268071356508296300441447247360796875102530060745724946110724808722535184170398972520565586770517801599739898342301088566745999913469083281156161164488308031361167795977467008344848181350105604716036184787202072974679235696461403666722727427877499692016811786986080500099314096399826690749487473006621711404214348183828810264962759875497734257477239835933015819679624676779892780405151658065726454109566091669454305219541714498924569100341155658933406510940439329227580279701206827404085279110070805342091252854112067921703230769388901713245640772784195347182891057254337364846367100512174317525142579387941579588604820848104885711000492370106511544942056304478661909629907765121932362940265532904161517644041445259292894201424947709672511735295458132415853313639294029545546915757773753074689487622463949625967854575610631581293270179746035589780063303444746387834331371140452884588670647109249114135973084616316949622221441391203675380563093946648462529530086557107477395405361220837185727187090393087393467465219891019542614479490155608818273240904179995500716427549501762536638861860479990059003363197320632285394297328135970479800968749331261742921466502990689848112167104201538293527288599107879886108654867315274987730335815765617440655840548695472074781416858976583308821073782283068659134094249788334553398829853838574253833635233623880464424287970741522599027147425193144149462027876938656947243508264630296593326738608207934100436676870234943243694582801684607976260748345122956700962269601037081978172135902372391881067187480894034206650378220712971636760037481975958825050001679932268300079520833137954775353435375938075075263587227804393203069364183014746087253058106553556794959708482037682283405003106285299244161821924650732938513681113289956600296712086990997778629698952443336548459423178786670252225284496949454043131369491769335701245176916751682310234422058847167879652279904513234432269428570902845893523368681742932845413120524623843244091023679302124092233257502693385794240372275388866080217407323229661027657260040019819735473210389777382474923448850534329553421997961545464017679383595841307233033484226354099595134516109613567924771520772774652014306154762507653233013400217848211634948865414196889302377145190082324944127307314183966530413706718086870159481019787692561967466357875439784684650832249235906361861062793918486542248464806890055644789953442913899402115017188706660512631379287138052707570479871546709589834403361412431922736631961690845531663418745397544880740709131237553782446253931478610178657388525705743707871190757577107034542082707594526504098296817067439754058358705222818244136278898022475045775429363851491567996255929402114091717905924935449050984566589419045791431318282758485159216728621800316471673452590309139167113600981296621463781855821450507937567257952239406044485748939395192160732237753813766157055920086662435251740646652002543449559031296025932479573743765748598649205302308867745364326072966243931572225272704948165661460377640059486779703640702015393354000994209337910148187955108016749557984949329367616279854038758113256541102454323357611807477405859132169900568126442998722975112431235065215412874706631114029488110626943785769667210550965157562999187969717667430509235683209849112670531485553428355609333317422437616269650229622730868213700494575023436638197480662884844185013879044742296473254146147122718836735446008995006691218770072343005515799394008283349063037433334933682904498765944172523568257479675854596258979145534194337818949862465391246555793987034070129535008542283984577469751366783404224549376831542459305471719493390749374160962856030369818889868172497591885292148240716893683415675232988241615348980536817851170254731603535723444166395428442182595007767751612604786203644995103027181444891677362860181724294882438411640918868776260186951252617226661671894458349272909556444453960710024644068235821070579631814904234513340239128783609117751104144350654746809142174379084767648905766955856440253372369443670244782936100104481523572962508413478581901275457990546649541982180822638395105462118814091719778781133400952212383040791996304063694803810441546484771538068781517675425464947134806642731804441959370408601947314042488312184016649843218220231032936624575890125589879379358599504035835546898369344334759437718973074304418392451871593456549994323849261511521842531776176570611086375486266242627443003503085293972024801243808212117082716650507655404545494804146563037273529615603862159317134227814503652461921706638497569987117656454624520216723536855175311104900475487929986489388138717464213696356163115745085691835856503891258634388487120848233160761312301142072495008099027833771729505030742574956458918196790311105860850494076990323416069568243165205451936166907922698021510913581157351320747429889168490388610971209228751289422394570332231210458428138771513339005502908926663185912567438694073733734505911098981427063917300376900323679220600461824082603604923496757338242875146091072317388129258722654114456650643640078277654484957390616659637683039897102954132341011604242320315768776109782542530856954170937134215171642315669221778783415424008928563987479823348997978175428922411281530535502040725033497607793812469305665749696821012680364203352654747085743079001901145337855292157658723381839726649436213234146849429652646676742485998208411292685277518771679141259139870478134629229403220343079173694952112371382284742915499026181560546692022499542916217690467465860550637840136779383500406338391269340139687780286818751686290960093960745935633744983165404613150318873958583726690803762773022722698340704618994822004682840083007097045791270438028752752245975295337440853230426142470500125454130599394169331472642669454376414936220534851503421052825853878805341662016298248443186675255533674441833605131960632828899904312221952143459136859480254898003598130041429149481341419677559278129875748913123390166189139292268054326450704447490471621242932651486559331350560643111596117628856494508183784256492254516574906628571692450988031895288384026381323735736820588663980087456504170892966972756987452825549811839619293910518475211041830596334883328487543629425260207719944546861818165379380726195171661200224044155583029434055184367535023129540877796119396394231292946804825194664803077984198828012757491146349857857302461789102586932519568989256307324972908596778909182127811796226767015286625818349010466734568801892624280881829689443587836818461847644533261385148822906848921660343165484560606106346066176797372819191202644182825399995332644132569392008756682399940554047264738135510205042252070593666398055302953879526207014027550112194724717006515911766243367417713085561233410907388736680225142325171666783672409218439519323892107215796378860994320155377833498350949909369019157025943653696740450820574578188215255343151396905092778527317104446859069958131824995328243042951311098100040706378663418739788020974038678490037722041557197179592779809936883417002915838990221991427105007329146621332290488215964256205421241853899715340147301789301105503367731164244583106919234420144912607950568058353011298602908913893940167706340464141399784334290785848294818381913397932464917966506045694235859548603162629039538133465053177827967817326250918434995082279498298786046678134478897167803944266827130052706920862330479844377481404425197954984429331126441314324336706313349919025948553705439324372000391308233168705498926451786895994357218840655789522585599657529769287839165409762181127160260232076897815864971779086591032372914902975965757075814684959605548890788668488966872526492174511411863238894860086308814507219668886669566379610317905898229876420234595236849157308319768644150985283549252906561508874122488145727317276983437030514256172168116983293049652885299110626969718265798002649676562707864001340339157561217064311410891235718422903065949181790890018676252559588736578607514401314041683415024264610309403353838767583318168230317042937060316127375283628209349678605376221596637578029275698416791360842037757234409087881878894883303202769410422879899329464252485849413394750240630503705078103544026856695261332557375501087017863036824636496532758366445024405128811996689719947494799605282232081823320818996032944288286971711768651752823180601222332359341512774885553703250686444602818318298622595956127744215084548547863852755877571673901753762668276431124807226557554791096328284385797262970617733569319677376621757019199777013136375117459301782367267487507943714686432286026960667837394570035352694270902985613206601190035221291905636575345930316674322589978190031463197007960990986610850231126939006771339133577164230040814975275709571202634148782022805045538344633616100447486351681526564730916556573864299490971254625887130332408338550016406594561324981127665513939533685430851424730383036968340710935961970094632638210544021063621281080108102193570491120678130949272349258394477791739381798404313193444246102171689881311721755700770343942864918852501380564870098813040379152953989246674775352328247999414554394654055286118376883954821976677132669755498223335167677265515797449320252261625676682930674019290090842657895112378765068237038554434184507122768123846754939854622551216885940056474330747872238220800560108966069249969515407110720874880456956417083713449155616843655780697909848659969489328954102917436356452742656276965817335815101052707602474500536116739274759838879231110470313072406852079550957610674280290710656916675070814427760673677319552831168310910835123507882714838129340465359256116445009056398980157857074369016859175667356547922268293891675145340400454959492226287932824090472598878517101279757831573491815944672818419915808574800885460788296517722530274927964394827480625778298235874920551269468713160470476208900254396928559342841925349203556625690843441895616297635794102335906583188827975158425250547784936067319012667339031887283700626598026374862759755646507842842156715857989476458031013042380701540957802131424241882530854828950808697015156577677137878357750373663481016529088769284990783597671197475731292122373307334923713872778460027771695646158349762375454369739910217218693175800848343552189435373420004107994545851619463239410188776883935572658135114019162835697426851568107999957072102054019098367632789355988922371472346606907906983988542712947891482136695313494479756282248525435455276756243115192520509988287496209019972793544354503819926820302457085948823238230215580980097866649115501422523147334306773167649466246572876988148850971583050003359397639461562733541737657904418379555339603388550652392507051328232926411307869852209537786246207692914180688865035723567012180781061004085545204728545344051311563004696281130864185125755590895308475112502832437310782633201320445370546622487013229577335124478504934312497417945110955564525827723317214515461037620723683589508138540373834499817506336871577418604786704641480278341693480751272531991233735865343424014614330997624947956289013603906695883604865705270457714716813700547181829899918553348471158498458945642848966571551528136907901754584414538243825831754653134784344140268087569425996691000503794137246296653438845530473524576030988735066166662688327417485091768800973442174491334212210263049797485682855057994660953799491433000482919136328087928153186832115241390562502955868147310850465360495797208943790443140052499135865043587927387787892073544127716529097836643731713098826723788126644516484918043871851087878654660875726122048857261598146979591458344066278389217143129278798856409538630506913586202785678085243003144950163097912685690883331697368598446819340060306133519397174310750161659305334918614914526994935561482593859596559423501399765703242586469879719131479524498396307880712681171128684476838594236252255048148377776771925002904701271352355663900426925475811480142222282606804219176503733801455381391865619793101742413777517396314475237879082388590853822836182055117555783219181705556080749935485826169635645076666167166426121962726016062507294823075162475849267256982129580443561840066768549572553409027535443352627353647700056776675313058894418619842200270150047656352735470006476766078954155003983573726586000517321460544915917019372615102552043642329624538472079130674945064799280886725185192415340439060409874686990468728126739877748429071234111728711791037083735835984095453030928239834765968104936167585810813058773897438269579969848185257300791995304277873255745433116782550831135210728508804032053528030319718893405765072313905588030567231099115705707219724837691251538379855076331856106886987360795213245266466206873988570330134618573970501493100722259636155660800051979091026305979405201377333915732508074234474789981983073235946509948938677026595233818879211327570631059627850827389591506896790120006180978248924264912435415275416593920327342364007335570342697090134703721234283297257962699549717195267640778269070870653821176293868182199462460667914513115385026119520011633293862301837123151259123314596535706267795636518330426127106074513820325805302664942142597330753395831913391587341351068461664604830280881868421224981732275333315388886506585264463896299969647779848171910083630982440827600907001452044218645595600765876514365070565652146438460248672191704328043080886319982893958869867978400752243944227089187171327076154360059327192335829272159167092565620635310002596486366434491590795035190443678273520360149198063097751323200804085220217588621859624418741492578261036526037164234436207074631179094618516578308354348682578056725233549449099114261872757709261379754433710954981422460290128943029088608180918880330793956829488181631903783920132840712680191799127247007645666510319749762040651759128868022922144015254751424376081501028465888371873654451626781932216038961079161100545474361361382582108211604403155165612065857789887964481579320639460448628427959062704890788153900011049310283933472321161837809741770656307582425301827208093236579305375406198595293253379494616970365103074588206140803163265676580536835973792503601474384592119429836413166576917707599527144594053579470720783926862233809333581749157048639989315902659918786618888992268093607362962029913860377572819974199380378373693741451266553133378762653823692136957918171892135533147126278639802733621066209098496520652951086270832810202028786466496503706346011053936666618026406073944038776136812457419550091630109150033545349881466474828519620229440135213781672618083730136212978805996627294403038402977353895964330204188173915126424583008788485728848964564599362610813238791806122321692449533223623316464841018777817928015891609101266870415221767361323697574295006221237209785084585791114273062741557830909921026758469796249455465194359341017211215107397531829852613104881652299454740695784398007559781639154258082798822547294060836960824491946043461357517573435656373675920411654750782982021912988976220546561172363159751677378139553777957326556383898166117051611868117144329496185282777065543700188366997202115646422521034651897163781051723356114405424799906981037750780464464517719924180624459358105165064996179413773793532257245438310114687974655688889936537059263309547782797229633380641277327298840869531334195830946772138516415902875980020928400350219148484471967665558324656772462789267042075651926130104621075509436832150553265220495837794155812530032052513976690393801780659101940951015669615698016860156371982512742607153849533638170230044397054330824234570659211736343818477680697840923389670484008951812038286425524907404450854518594303375697471755820339116805219628155521996492494787051070762867763818649375639525986505541983805427981469672071034382352856571076739650037785058741703759434144275950900192972608319873530188075738769856986866664808996596527843271523344183674480751434084495333500476172172150354458936973068528404028922813769699895511242502729478963953709057752043798697418541957100098349331507118873419487668982485557658368223271148681933097886272638956538131138756453059765105259978644084009596645699314003386407663798626130135852610239461973146623488672199415768391361982039649374319018937636393993807957572036543951050868318231124219982359321313053942264447554916942443015318149564121248835126113641859119200797917733206397858332493167143123138398787491531666210887741820230099367062371683438672881774866180421429358224268433328510611397899969778980681407920990811912163306967052997968600513208647636725205158206164106856242402692940319647790177970190839759892798812551739197015381864399610069143979399806826372409769671853232904596065956492053618815293723335374455091851130654176373488393375646436942469931866388518326012870832209121080550737499558916650834588268415407772236199324531525981818885818069388979314210319888569979150743486229977471686842073282161646622949827595877707444930143201822536227261258433955517598710833259560255655415559675920475539601600520820400382939968349890359396861330623480056296633342371368396471305542454695605053958065209140445664178475038257618479279286543459430188647157558286812525314150512222964696698539684390459623197761258756955444576504536806382034320902182728358106568246126398390004953238910214224518561577018224268726057125116528144853993535091033087394418749081518816371751615840756201396929854194433923638755148810459558709444813769821680346044865618927415714371640885223957164309102153691964400559609559392717742086677434631565144990432211757910814932501885272795578378833977856858724580787198383077174507502256972513609167737479585450964471078833835238402748564920373918581243832149875440940525812905469039295449438988296628062301446005650093251741483418250089599344026963278672458503371195489198700365112335613409077879554538111497431853539255492715787839131528238252340459214906813054204975461498317022543133990638623016809095344902557503437368820259061064127359059212621162048433391335471720222091993722096650467450850679903036791451472877200208453201998326940512184486921612320633451528725380093904103489714057153171748059148760930664925971794759782337613161230297709737899583900964867859720423609149495635330660886491764160706151412033941176339393755556684671238135507617107316993908165688976888564740600061052306200573198629004915770860382627667699679338819354430641460491096882010798773683994449318570360769714409302430130906259580421212006857341176822258279181896124525692064097955582916320725922916213717122494798775925485890491034450294809221332220348576039906846652649944421666988142552513824146969322505004326706883441035477892174635381651254517968266959644466166837155763617674107074193463810875033327382058139997529942709368323690065307217579857862711409343377437849075540626734369569708101380142638265142024588616720336999509142592085508280409231150478237435689676620580452060502288089761849869800081280008001324524130178493944365267497450858302159427043283327043129172538038774909411804273990490862092708203550056114255396043494392683689419662557609435911442372201853053381025767467938579739702500507114682274134184128689721672549173461530981264958222240967013976196348248468626581474468062239778584677027346149559316972388675148820445125900051241128095527324842459103194413706327210012541902296420806960729407459590219729267144788912624693033644715275468374944387822852417232948323849270809521083226181854542059703925135549323137948331812007971526764139736586838621247922138180227122428034971968282719047393033090191256543552175612973338839817385941514409856931993297359604769808170294742141676622854939120287818724642464615591744034888883721632236222646146760560718925939837182463867661690074597510139994515590216280346407788568784118354839497953200942540004383313023253443744904575332851525439603536916008065676496666494848042732329084909281727932077240523132202584723642755271423736433548438667120369729974114072398516596575461022339749335619269572706250066514391569514097028355861135888959252123068417083296275891282925068957480008286931547564670590956610451881125205464655470620744104130441848550654700302657781888504364650843915322431127366586546530928568611814348118054496329362294869854434169303650384646890865404724649831842343814374866324754595279793679899219449203678480626174063893763405586174544946540439019574116117758886206038911580342822678422651741731851446008207908003484018484415230871140431119859771769651129641879522091814552245373502804757818633258185671745122120138976676127402311152352134737848107287357714921258178163327791852103781233687320677132609441384587771585564275173982833691327461860454773151708405846561459289705064431408590649242183431991761904279172142062493354570359899928046356082947692528649125141041139696407238683836923458106629196032705530962418410043309840390634043091675710465543541930583804766317926209777975448095642360424375278175749503029347337087635071315642850170310124968118480668741897346081616040543600256272756157760544787952862921561851797947386185082268825913073695912772164278792631940448421540295492873659523835336302539178875683428683786522781893325952756778390695775291243538313839880002574832150287232190799279516360974222432450804497419161249198141228044119749427526233243644219059697004273114279633661224120909898749448959639716746034187578432679433414630701274867838865401580640868310919833175522482395378896671306648234898261311217299972233946854806087823242071205122893449006614507539305280404170638382564308733024748034767988578826149411432769266444401433858779775372639298177660365575384776159256017298138050267424380541917980132342099598948543520696760296515677180285012898512147277734199237501962260942523953769237308735881760205117504847685512452079730844734997096141611671804859456755556252490403105370247410413573389563725189142865331383788171279139358542891352514073983907631586270915283679372311816783264077212484830588689708817953858283622428229915334432936380803679462622005407798182287385222616762520064050980649573078136251608810703631776139202051566736295847343857838129506871242016123892111393620270672972356932542453345234040450121320839219528329022616407900378931823010701079957251963590392081648980293724867750474742020810249327119242717461508377460270833026653941698522798521454284107056656064947404196480161764300317249908184154617690040659914925182104307235590701614059727274611460042721361363918730829731939107675311514432222002587936783177985113192943375005509577977457862677620616789460739888683558083756206176912513285009022391341950019808062825073639127245018558215418917667728611287549390310387938437111582952656108657497192701642662762949620171207919059206112898076493347190770466430163819943566358179900157552718236872545295585370110085429534497122438672669994613382415185164547662615586340210720490826545895044668489251414819006305014533712091203355587912650526182836841572443953891361287545983575068662676130126659430616083953714846082630789616954579378263485180339335121996159567669776568129805418058176850979375508180573897465832314290397672448760592690725969846420737265316642946583191158860082059366279805724401374792229569163740398403045187888538398823598015188939249450934905750454318487261333527948187622029317788566411391281114600262028924638235474918024286455757144634043623681533404212704917631161413754109823932668748431714277679270490866912845807216983507043114382472404972406405127368095381256147548780462653320193566422465875965706006828667350462048407620337209480027341370647723431451777710518357498083400760439349763481665256975578053392343710004380693344079649236837054227030930472554737732418217941049023888713670474846327942920913600947025973696333386560995589343003158320281983399588956927004235535812661479289792076934967299433176446258330158763809069884673697083444646413283783783246875909392370932100039671477471372461238252322864971433828823631927493183091292569714138960589926989615407358465839055145023189288070286993017748867595830681805894142750195357037612064016182603015601619033735427336182503776155621206707651181021779198022890681675530331660094196369502097354842771762422605495738849718360750720843999277744865421307526958550505393636351032637048571438601447181161035461656861898742211258279849179984488533711613957125499312135942704001728754551491715631534866961026471780484727756104661149452034616830266088916426342194720181100577707698681890160402735566954515426122451879277112803586623259234952591800766687916294921687088535930436820173166352817149438761383825725939305959804056385303630740710523162566343626873777851861536640673949529627140255235062025844766330887888953431663655400627315690481877237222845934497716952268396092012548795189098334983894382809389851162432608198122879234058991521657602131058877001726939442696170113550674002424246458445930632930257161667174706331592987124174681217067990302546436588394299447560149865154148273124322431502587542846321837384633597401459144888369316999939329695968257947718427750793980337918812931657844040327138332869295130658579619532597329690599414865915885127109547374137318953120366369392760118613399781133127193337127457898714780658552540881151512876258964875615236678574013612063284484167108001541712177522137543333575282016509827864217798332614743011590870832533032460398212021450202308690984267230007436308442434915063589850121908912769647153144646004504607464136871196797933254647787272815615320364443316178283866749788787670393036819273799454041524181861092696409630804962589449616850868944160812916447798083751006638452297092134355763139419761983680683761736434379674799757945895502348766220832744661436168828971551715125008989728200568450145961740255490468620812969260774353620136096080559220784558542428810080741680799654579340009116832465855618640535061149557284710444364492408245329880723331281079521315862781338253672307597397551157385384386646124050939005761956627208008554844821858620110555642807090721962114810039125058142660124233967079889182762981748865551101043140630922786055535214331357999701390304489965206594487785264216087530898429722068854991578535823729528723208472086742635417168133828838499415390214760412829346933464298950587575737100625239432149354418318839640303827717654638551894254537365973186483033261272129522568286989344729546734944404849537776499145581345582970146510629548601770631675003168763345509646628359498226376776905907656193166629695658905207752787308739483969504836884364958324029195519316386280379805004694637935178261598934721387627394557335559362432143106158799409863323395331390735805072760331601455291291124782482613165539195480745903570482235715728425962204706815816321693522958555440741861218772385588474378814833630409477374989448252825143465685907711033173656154513847714951930055279268121316874810018305942492757206184925812938862756938704980575996098858390293486748776733439616894525961451460891464743515195073546834339154186365436105626566902429388425793613758899753422265171915530706932751869003059453962370498299865239178900706299449299275029708950510742102125493958870069202323234474887518498066492867979153884704196813499820929089907828214847322779867942373932425171506865977073639247675980825297662555773278884939017213845490404062104108458812020798344464198214434598569442758043861481389607530022392228892086866675994012543338641494810345519572587718964879163620084673880207027992920625093389313783458226896884088965225001954473321000761912350814065560852948112702467801916466363081012273834021218189962665048891878599911583887972940629496824132443545386606865819703657232042937367792986054688028570367842553364961915830026266368988281992948080840213180786871408462516526293959851355047875978176595188793803554767573006957612606821694899333328291901480206703129494618990012375815049677335094022559747827320971534062217458491388771357173109083413012929233070304738998176420193407642639253808684069927846303162799051777641961889754842635696122809575794905000020241486698410429508534297712536426838490828395603618238374202843948042444215958660057105972109538980091979952787799293145583749401139583755111835917353703092303407588647137619949058840320203116890906486849358278630229814568258341915380141114766501295933762363405464689111759469985087753970184860319770057218731933558868783613766119132966799219908699953656269906412219004538519906375372445059478815336654106773622757318982988572845763359626356465657274006924969686130431030324427494096400702556234429825322221840319303094600934801609402617645228516652079607023168079192682703514907920385318454277629421972355759623795589572560459542228007584747246411869135262376654075934427872531055200316535340885554599122685647586781760507934303646592306998624922519103347096356851902035204205771457720680120390234486938178710435879243078535832733313298966563395642577082641847245855250925353266057041534609481108039223129498818362813775371689324945114379923235559714934752745410417061913248759176444348737285940913068948157611935553152462004459579951267097819842152613737879670482693889126267666096928963557414291269689313375220354595997366286648096760746818986192559811875146690482688807067061576021853476422319684299919143687767212161272783886358847713606390715020577483350210536346866519317926302786920701868722878108603424069046005620514898721761456224922759754198570978338246469870810851586318052492358490855868907011278992982085139233162857173023445387862919528929766646224481345284992652372739425527094665722010935758372359399352555110746934867888161560098334022993097342063279741856772375627524767558311150665918343972095295323736778455735786619386302520263745818719168001167366388410488014151197499320101338445103308707573188422278489559295068911801341192122788020669413960659504318280281810324853893292883047755603786784425504759064132858266860022043575054816045137984595056005111070097401979845331932727981369818445383472975839446371016543428570883956193258586442995694940161609833695178787033687770785861717840543196532900261139497758466787797064941765770884559090550617196971543886214414542240012015560187213825869695764897781475521877545553662074300850460109443840977753742662202316025118256904809499202814715442910250087857877270326840683946603940136383095576759512721715284482005683496597736192328794946176810120946788591656846406088437348641058417765926181129927719164608966068960946312407005481455862923728591405441764936596087515040670699665179328992376867754012415728232808698700246624743062440467062837912862030741241770240539059273055008494911193410260166825814431848120878041986143204757988834389734874021228615178370704736096679644042199195401697409982364989807686380844703474339781855133397978602513884587374955764411612815757172929367756264169592300711859708674378110225094158072020400290430930150802805058012563666854176866777754983191321352860616152436581574797092522001223600370032737799707331388452954360894890607971444623149103956178820623914189548698576624037039963278786691801699890342768771318394879544367384472889307522966637002732160541959074621654157670370432855926716027998397869304311550760006567765574466186568082378118951732655064110522019772367831360168043223883477622507277812113160700759403242706057138598210453599924255333671170259166930627530727152330969560739195783450699531602210830261590494906176756361719348571682503920658799626395280025495771313032949878595617953195669827212318617214905499189396835042392528087564066837025927219644948940043311247797714090180453378918156974189350863736816845695118527956443055932243696482404238281222668620641469649662250171010944008365154663625554160797740082526379621863148410280518583995121364651420375117927130917122963951101166655925018775050181241349198280462854316411970482782980079218097065894666406586481186431290249871301851914550352121354927493151394840038101739797488995371555029234275396769203137191400385504181941627644156003088879501671049248228697238412037132119862115018373206638391497311490404109112468373260083502040633799576742587750496319657613454299138486139940035860611688342658085521239447166475931026881919731581916643053318942442424551940633178833984170849933687948304764115745050010723800853527120857829924750895038286962883621683874465889585481517600200959136038339698784935760274811099836448746570976954702376440605211705488624651797716241155080026133906639186523286389654565575873330749481551392609517738875725938613089391925289183042288029060884250312085869216523682514158637629214725088940623019772765149463583639629345342752952952527797526602483028400225014448191616213995950049055100969440424355522706662151405024235723413770207504729647429073271289887894688671587920582145174011591028238232297059659729702976524970886317169395580428412928173336122682238155656026289719360017091657624217405094942993396451012346932291132154377610298065017922211236512837277005899930119916754737161038886523034043737481838621159135867347580208334756128698204632038774058183420908977614904855191816091588102929177811943426608043240755428229216219458146103030118492217672268400906800893806770015583535251082844811798829558457085351023389751624972894059567393495509659269413296443282881859531095060225885009376136788992939622462311061938756946410718789155325058839254568088943092837662147894120528839520512413192478274925502763187640067152995711064013431620029178119008633590998599428219374100204872987854329395000277210299176064926296500058892918287508288790076676817122632280612266829464499952416690250204489551868429364433424316289009435408962976513588820382381680160487377891679652401766973214200780457438200181259489172008971985209904168466218312937450259508316007951346068747634894853915584254214781211855307735144274272631252624723363107531943132231977231782510734707314951910292529696539402266362141427942746200041805842180652316417142505968872060818744159459640069464661571432727246774473283132465248146587943063274551558198236967677097066321062696543789612839437656726675978890669472463878387126337283516415553718365579768192141285242153692808124733911271168172512817448743851511649200311404639560242079357716119835079873633608011247231493854649037410893022033377554225167171360173393285645893238573288002410754604912341138990710720113306482343940899926558788548859882563953448599172893507474682454625112885945882310139510395417248837219914653919100652053151448563453209023850988558451757852145300687918762812779284444391388868457068679994863195963709771711753557158617740885572469656861567314290256970128821352974676876799179764380363657008865397436735060836048741162233626181672006025911383992609810448923788564537867874998660779366019470427825037770633799253423524037475801561436165500406646818625682961040462120674977158566916468873857928912315724825273639522040477272466500670846848574885865780732975732674497632616295012841005031181751494433805304376369204762285466019889675624410098248364648648448976614681936251993681667066805187703184208770881920064342509145084168182347924576579053854591398246435018906759907827670437585009716407449540601189868596948075590133573509585269345894759569772998493092309421639074243960059602855378836891883705145366642047023118166268476883312515935962323584718816357551921676987488574816890398258568207053465418291944564071552978283542376537050188741416193419094477457578439762328924591237615609577256027221178737341948683090439466947602962551173937884239019129629180657699520494036369660434412423792486202618880389445772123274725145645858108220919225399580537126669474227342589670853857770463670903528746228397029608627323114945953200544207748215513242430141108221325241684613700380844446672961745080186262976948894969347371621354227755280230179697639056762048144538862135932154420109899726197318578555201613253226524910699053989911066298643255113827056330435212668974120057774812412351670721815957744269897307259806418615282343011247963158886321623543692506625977604637430899299248145492027939479331408556469828954011726136029112535382362463057669678264127661260565408534848289802174978982104723626498581766641130291937535782844068218042921697925242622902443916074268199615004951407494514048700655136241275729431758859075877615731190912174684065673628544877741218576725066219152364590497744575984930745256170419071552709485788714222544953718038886642473408509968666747851594720238182931127301179013885663922377147720772752650374102366741129129734930499934414783354787377263511967179883708858028362523175813894210483750610818321367383996619241760204051522853946146423895186373627407377604796980145864650592191089215202047654970104046236138739820112164413439715117312203961034032153948816669572125868745887419030738397183188025654875225604574230940636223980976386791549507232631467559392713150672654766121644507052815799940338918787397552657512771648044227925371660689987343380444907522557804240726358536569188805127760646827239935546918295039760639872971992912094270973243646545275928044090276718256782010560701612995365671535322432692343012086077076707424013847968135689307206139093231230526466538727430817780450346297672074995793558795690409567258762481653027784434346282854336537168121252739028461094492409494183017119430119464085355556096316354930880439099969926726649782293347488014361655574628085855406955877161843958931810360573413105805843817451036666486002186846045223473103750959979918798033767272980478981643977167153066838586386960199162660921992241923854331801638940689915591360113632633566223443264158196706248203757219625175150754371405187273908708334369898828993092224233599547114174365125646899159783627808625227216426903677608802561856746003497393992907473763891984098722286104688313745775930593940182497742389479265346178087854786775369009222322236459728403090806208498796481677023994527599017883613546409407492542249194803277898064164327605331937576382756329980985436793207918648787681530101073553689240986262141744066998792788829201368389907982562382266399159357991266922581653531214531332783444052705595551701582989133658566876065646411087694664269699492959812047369374086149819485012029731381767560527954150210689909466047617675638734041713730049235496706665191445688285249803350123767829253073870922414384384271405324608295525813018929437592938611938867382728812143553079326682150732785707559664570581473979712884691852377831843512287048763365742422873057558105982496840862036506191749552655879337724847982274307032145897355153381487121424888491267622131483714572148409412885076088023793727711191732440915714120422227511397157032726257349483447108868050815808129327347244976468006196955229842227024273093180102973947857332269209303964528963673093914213250316239950560929995495749306611817809018500814165064130412561460808779150038687598114848808411543875440590588403122682756779717967911508502115574465767014476686412160033064883883510041443975526585955280003431932255886804699647339726337159138012624191679291152919132212859107009195651724200739656254769020815372578198065196896739768119471530905996200522140059210566869578183583666780962003755061194039215066327956700528212111505161520971475326950622433823944754242667709789995958409754795553391205752678166368739898376622145760206470569775909226216732611042352820438931220226177387115260061773032046113659127369626199341132322929138125307240093508633795025036339279830986115976765652359273602977563941329764357396956105599303006072672119584315630914697860950204236270346634524622549807246174051588391872288799590514272549032412021263680477373882779782945180207285402908375239009134906021086979955652899833994000506064294397609865885904649471115609200196667212365439642555314614087759179628166489815316175600927129791008425467535248741428356121069866378479298140502783555859023369215993145980068853991151859738704657950347808240490572370240931040848446854840127451377778950771417907972385557892152063109903769076598253820180227790806894170644233241425520333800509679761458174058849850880807751460270658853721754866975485258223439223051166992041674161207577700864540970006586060915860546118848086600875077625718031237398743416079745009075940910642929134207987480722400262760743662342265777896306256427003038632687785227132810455612891449273258070394895838719563018010278442406724048752749447878083621131880600458906448318309988796748154929967942471204396221961591772275615961977165935968979163818473038679458760964539093701407071804561397198366398909676654536796138711179792786940174621322496429434194458546278013557868669961471965186229820602517187178529740690850780315173713117458048065482204668218380405809369340766471372286252118968097509646918127196713895585453226491563579634047472678980866776740020322909871820305980883438610519962978080273164827593658637998566044737154879012816309425341965353788222994065854743616627318219475353464460269129369110775877637242794068370816018761422497721078214414882861211247614279384905849933042393600140828862044512123464331336617023722524804186760840033377302963758401842692254076744022383676323009293152267923586124202868257940467514013418297665858556246629993060324107615566598322022680794425978663606413907264238248223355077176545955452475663333978622900505830338177380056238284357753024418052596088284550915505182876944013378126539589944267822164502541319188029001357775477866413885366304660167231393497599110315047120549900780876892043632961741635681900950945255267778879552428082567137911730647247159148701660904988753361717307026123787535176224544252585674877523320064947156190650775092046034683973554769363508156054534148258557078554467773107290452404403077197816171158747554682260255102402393427900045922949764133132790046417730315541888159345054407951277909596827954124268887814970743314685217689163295410895840236232221874484144426389847692533485745118460886271276435883208545211019135649229256974297667458421606520613751347211117935792255518266929729113574256053984991790866731425738976841719203662199659913089555290313940035682818579773929554532224215341923396871324280845647953034967422003514146518567851654960438406933920310840976292547473246994274320489357628208368186682864674431814686865692184847395573600617573408782284692947831929650423490354829049875464979291254972054211716510302611764680188800296522101193611890058810682404598670528077470577150730388493524895185157373708249820442752826630434105849339481829914271399168815157044822786034348820437215614399810442107826741972872511911533449313712263196285352440437876786291759920148501995381873704874127762053027722326151233782470711939141357942563703633642297722435933530677167339128196359296422331510006235039170974209365750759513846417558750568397686509150479206851914114843709448897380018648535724164001430805839842637632862074627333228325786605418021507695835292859429753965997421028520347927451942907373050808817206669436298550516434098088137843775942991675022848339896804090680490931101641532110518813251554851550886166934833321720371633648732468735802306615283144453405203431682304014692695598509810035618105475785156522159539963852627500776822676887988479977698907628072637373744557920244164225645555090752078781597387402079240122989800044710605408253110368646539119643921798417075055816595883686757203370122434464563538902881721199797201469574053470351586154374642283026411681015919801572063995806500375579718311195763428412064423883714394081457572174157423521960224939086443698001558498994724029947103816764862257172120095026357160904279551312229610543285527997141109639907742598651463678979466878044222676805201811653722664534024139552300302826909046545671192390940480399762243110017351791097278165477108562844183015436521424664342253100015990093768675351490066785793416298020330119593716909676111276974216842036965241455913198641790600946308435352608166483212694471430640826055815036834880701784545067039360053716487924289126980555845376036759253509934055535858256428630238072466276187131282529170668710258477323608877935046543319792860683294866056523972645760415169103963647056808454074559284210067785725184355377288137345700921884230646404520697007946953064178611693243893664989976120797984211418749587359165299065489733456035572321033649205942334135146421199937112715471523207486254580357632508114561031813880385707340878443569035650389725096034317685855877842497989135534627194194142509288247107959155662812987395838440372318071201031738368617976679536950088657219447051219817080080250244613353142270008318411976181099303936902923237449373428789294803545701365671740483673830841277870248600053590411895785840549119678631316982271248476144292087661092601973843069464551023101070561648256573397215710719879851623877535078981475979324449091387052069551921898102125254575487948976150793261957281278638507818102015475157572880518762587447807595093615878879953806036169361325168015874132175200475744751548634338163903031582696855887456757777578220893089783602934032266930817652672408499407032731514424906985071332351265381280613899320465034563342086440421933922516205529643106666959565076652389426157171117488294578909421481071559607387699751915415921442295187015574270003676151273362878489995819691001695020109546825174836208183978871979178046454671663540703751087484764218986669391360691126587668707934278056208825797740601233616607183730203556426805617765295889504532061313098606890437857204372307508993529389487388351208080414451918338580030147334282933857771737830749101574709072525585050458641151545599817993435684900683339751571152604528453660875963995110918829527422197560081242635686049960865067861522812349588945430420838475072206445320653228210034225896491269399404280207650888750097656933199739973760927311777715666993694421140428335791965424941605384336141396405190744085843744103248818526977899391364937247609993004039610817015649012067826906845693823817466434522296470665906086565519151491490406660502558872027931886093861024702505308867912169501918124440084251281163650288156161543514038667074037832346817453530220342136330647558062352890315936089594639379175025380620748366032761425760834861396849271609788931731197430752607422512250363138881436814094544620338252001188173389891643940340395963944394719703026685712863372294733836854745663428451500735574260581770879415496285332530395007007282690553109646591386564621942797957340135229740071135196104572736991269736586054580777874661247880934219416510711503936907236351234132378572869617012082055340238388557237884872012939120913550184790984223904584333914709839743948871240736415878301333324537880098480928707244568612729732392884430734311559373032318448060645661940213042074502255366314425246576749165333617157825342799088242627514898472363596521920440787475761522930485543900181661584703844499095227405893103388483718207073314453431376705254621332157651008134163084283996090366889555579221715062040669723543305294903248855060015338231633470809251247902641815408490691178421449807375444300996405489415550471483214850353249061748409388220938274416540806066475851511534174035702407163885146524665193948096517766695532450946844496929343727934021484279656352201865960411139337345175703319049999760263403362186948171339337633974280652763839233050332335926452849140259723240680220748026130758014774597945419643664105523141516051321156278223144098349954342207863608551213032241570457440633331291852025501437980368616578665730692121479293086530448475341084843647477486766737687466815186694339909703917453687221980947337048334156658505606563297540570357143385812533344007922158024313187638843990069878938501279989136055500015713614583235462028047045242322748523690611200129260892335826935010741767587013648029146556017508171762203683506407252146343480557524095313041302861595302981753561329311893585123309254178708734516256010361572592415976789254995520378386263678978065463622725295918637856487632049312998865380807396102846306230882031591106618112384528054625573256397515484625595461365402078360018296843936490498239698349762478074615819529139289111589901838956752223771106707388461501134999750650221226341637420755606863516106829830985368943494518463249271650440375679719821123930488935679169812671929041027565712344699521909040144039295498923334409022058168753299795225081228237945712836632256742212881092809919121937834846811344291570932777426301723174388754703241493283926036071357295671312432057271163382432004929278272605779548749873903678449274636859503585403447461084829535627046116169055882647525445719768538194888265470071371518042739670761050421731981130639947902226891709781339576459772520619007858503183027588366588410085053501129786916820776161208138956042203615827919070579074255085756547927780805189250741747500891331470009449996730968641282501973835664711722718636255199636230508098046129921088002565439944531222895658743130676767823040219197389513693697190016177905668299117763842989373540463072347345643387059010435131524610340154896320034609520410184367433803276292327351498512422158480811273955268123161764412950752515414167318437273125442033411355313425054023160702049101501815676855958269626863527317545398863949133427784763553829679995783556835991462509970174976357762846134427815970691649248687297956255979424334244790923466269720882484274286376894843424041125741842337254215969171909259833990372679242129729604891661198173692517141525202583391515110574298918299238284456187748824854057776767245648251395716056814761104572420346114193785881021101432130104564432500445752749975867695327114637403776225771205784041054110442827497889559623087727166466532674209545142754019465779938239705814269209477581340491878203340840656741015486751520770728445024666049019769733862857209231663249085186948927321946815032700592411524127523628956535136351982352348051192525538891279129407122386849690330037710794906548581557574658442983239254749077545305886262657840294439210811672862365414748379539155132171097252240269686686275682031318345566825062014481740010112700021515298649828808993153496293306029674841589117917387051141851699814327605145538314135267564840622645358911009314876120020775636423036512386592144524013642936222867958265788053043285670858327151315856469314801525200338266470462285924918754763680582488241412307010262718249435998736672233481873680155787423448063826387350837387760624032244795361356557537368786137194765376414303567739104662764520258328147243435984920015542078226922263335900121233722538101601024854084517214222425582746053291271035750231397211437084779327019328417427267940624163853438507107844669689365557789377981330995493603805237655585172985217707076085118890636732275704607927317882325463133092100683060595179578859944669045320739660271932039685035173438283165703594912179872437002465089534452774872080530192113449521267434520091767968565073435521919446102954184601368907935187719600403185599355299944399119296775533013028261193167363538305885436905403858960836996958944150641439636432754437078982267787650179695022534548237134166983731053350908366293816613498837894880963346984884590972320259203518592766044550223213212254591527409153146642081261322205013557187916640307035557290679929048302425771400572279852175999409425671627937057200105204638001889769419344241896839570605898967324770964198087081484492111668995864215644495742230765271231468899251030575098950142252360539176228970845736366405947619428664175224423387964656570710549811547464950019367478441092130311851123939405765951266096165868474278538738844073265242866096360225148793612367155605095494626674416397246593947833215111358512710089153655566752930434684821303962152121827627380875575908225503137846475321539381538944634991293510927189529640935299180419883887820045649398386170613418957993155845162483407697075312261182093138923354552203903258079705474788641936039723691195052824874329659712511947734089990269439225292156825534524841340809842091390722665070904106383503628348518058503532755528988128818998948866835750628569621553661341096128476425182830958601107097104442375943283013715475166945034894274475365122860861090359730669239947332878531258982225029690522465581858362466028423440127158968669083907898907434244029445220990741547162325127925824280551004180700040088729885391502796991890064548893552759728006371848255166631206651523442341299996841538990756152609952883107476665339569569967742413343054982590947979331863546526741424180205716060438129604970612070342381228401814315073227295348456804054376130721334635937739257385977824498352851116881168454789895416548571992513241768586440349446787103194694173796754314198128632531134712819688433551579695079569324482855240567039865922952974239582235763534896676652345307441783890149639667738294009726697759004483561609332755755193150884306503899804180558701193215936003645358836532237192722257828694830997569735553708311001916094359155108831937846838885276399641644151226366295967139901299348030039972046479269611250870151152861788678580843515158248788750885189041063075292235105312182118988473372250466502462850632509888927345928603476056323984853726474088458157061981956769521500401246607855528852747540585616232939680169313744946975756309966980095489500703336464234613144264452940423729998950767061576450236478507699227436152802233155672790885166948814457343143958139785547557517772643548166646848852213821428711018945369302208122123088196943405622058864782585207817659780424440075462790839901286846004050996632044645427520194274073573443983169898743710767936289243800729003628756653934918342600640022482593916928216700703275617895762408956736034657244289881959144678228066410666681172937587123286480926869845058271519959096287275918183581291125046520743210568662713155699081151941778682664930824411871933543736281213600300981918932763054665758779853690390257371220840098939729183524589126312393287013782747065048829893271944945824267469772092347318727395539621743660763851293502404600140447960853988302526498593817692306622735869885571702361938693668544024409733400467125434550016464879975698593912058588455353578643935666824348449433618810713319627588418270372231964195353615655809879564600226210874984062359126712295093453838480754246066537660792819288844655039332946153859973977551029837894574331528867198848337809891159193542494477971608675434060748453105014631212728636645367815684237893754563282020888851256736673089675808510410176643077759522692465324600226296951734336879138003990875005722100587561859137919699699201615966892127272091631179374872308558245191591905772375973469076099759557809599663687722698131158781047052950250125140991807579780462397634389266819784292038786819052112851471460102688480429308091162046532627690499895962628729010191340217026581750171192665761375786609532361264767932967687026160414394056257297387502551625574668739012142001460127120198591948394756797810396328413817208887991294819254421704418788641464350191728178572289621257186020526056962277289679076869919181044801385365393833316730706081949156460777360391992811984517527216810079428862973945511836754754636532490277773781234137958996514736201751668522854847212492790282377254078954671697442535228697402782709445192350510870595240652325532195067428826715279425143304542872216851105895328860398269579596414250303855828247449473255017122338025827262972310315889338491176911943674420207924322241462560872974391770843561040375487917747676647495740512140433261748338074607319945888234714636392263373360249382330769908356759507838121995859608082545715981746744351693646444064266677040190717301787800748209826609674409500832407784114264732306126563244609711021875335778636596453827060086331238056431048141089513211193623606706208705834132685578822454456989238664163947937708430568613930558288721682241775379198806806572484581180884087628563040230662365753729651672333045581998722019059769721021757166524728164321501748426055875272271251539304148252311650522948608378697539070360099850425092682140135680481988993506465157194362562969399444410208906387764040289024668460693022359732985318913299675574248607515212739308960914770352715084872659298061601723830564232166372061596556700837905419408423865600711123324169783991375499020600886288954173384713205129889160262063149406125536399945720761648081707515544902108863774568413906655136668957182900958539077068990661955624901624462650946651307612642218136648716803622071659272965657974180430763014773681501525630899077932149779694222993699481959749720432901434270882207698103883533925854008708133527838358059015411437144781768988500851540889192675329842886137618426638763884120551540229288482229939636399793981028812424338382277966489492631608084613414742501131557601697001015512734410563536668018456695022564987468176589769334925902474751034855640435023408568733170488838672219355387553337469942983261374982678095903318409536997561670426692726510734813481676223412042100540490773858099273398702249653164168602204804968609328410849453094520444275636001410155141333621392339696163952635613645234894453227137838143714719821426241754822627533614845720908981357284701567670823696655131789476263239739472403023140410885041321923883429737768479272846420411914326427354416805342171155928192576251970868306092619532931928263792354132244761901751677066863169868280616128807934928897814820439775398551177367311696433953783984243581492179084865720369305289280712318498836540792893193494028780113517151021363635111020117961626360238094982014030707973268228912899336270716467937162232653664534795497192692708673359745340378248031936448493092088147444090703185711802378827534967678915559386428419785231281243169485106195435547014504169302364835208757131786658985150956350030461292187091626409332940493525307356754934844641126705845183774242295279662788181809872809826801342371971799036279099343602250524318529694951889923799353637826520576427811881977918002598445691398522269285984730564786114166937052742605377484585813201555307794778340353579698415182630128320073308828145176196932123726322216782294502220959555936823414806468658065309547633722719639759437036826265553895420831710016772425397456622811489112030684077835083990604025303562827551590270990507389807145109296626146300749335130554648245581041213799336285253578768448092099403994438132191770452592296065240120190508701813447009660431003936682461148933776910949608309400198599241072326930687873211020527878313177543519885393571689670597444243793796085325671399591900739342089362427402467750646383180993975817153497266792056834096341966529660848561320500218824327031758722460196833523343620902127230945566061138412414293416087532951476992895714436774240539693484360467315170417248539738827411312403271243488147910433311433278959532958878983015000054971287016522472301867370162870601171500119536902637100046400378825885211179708172375125815988253550747800459874037141852983618563122342174135341300094099187630271582241290418616286045018094219012626399145317340314516893559916661172304940262915906330293085072929176986148380226677905213118337721568243634849531170835747341089245073271500992877216170778179950570668389554618838292638332761088453334567609562750945275278669477346997815346510704396043166303814928293127945319899040836916706748502108345613561019294379146718238367657099485312970798858250594885711478335952876991233972979619749847672461461309696298476391577481426453181187947101151145945205464883956740139679161636438504446337297782676753426978143301778048086517905726652531981212770873822141113872113510731402068196108869989009636800749933263784644617701026207577988448030978147012537368369969149335354785049552495571220915446341977597857592853525138966381571587459091314429395497752785925580553496141638990081419188526927730301010327441811362744847038727757750543867438478235733978651473436392438818158265084024043687754419197143659278937571753214671023358730602982938799852241353835077702640466083588545475991383931986516502443752353223462712127717382422690158228940259312633640965804688834246619736283456047753072822797532004609281674737429616460570423824968866985716219910284117328592015898204098532355503855952788514723289776860569456350026813083578170064928529599013613882470970321028822057618000436665827003696444238247826350334105611186082468684190287339947252941805899402633946647872809021232100018189854427380481246885421761628159374450484337507461147540008209272388802209661982913427707499178730139646182548185425715124542279647850784225955112609503609194376917925742238033283982523343926452000529885136639541792290283501345309271978075578077957499220153344654130083441417673865217943491063352249222933133193090614516953520032247900881106897438715728740356940684656112201270712849009223916624555930434368961140112552256991495486174042681003263422444006599695382688424326102803051840826281030385305948989084259362684282924855174615150238025401939538075929670895274110847410713837394682398448016413328724182842713867579917616481466633679038553091692865197505726065509045423184168934626995751890429729487066666546556922002130295039599880869598572951722364117369820970201197403879057066048195847656480224239502887070327792375078504713610665430432230951184182450525299421216700059249210547209317709330434278457369358099677508612512292229839931191681223450335843368583204816117779272398238470967719267841465354671632842373020528282219096477076771447515475350837752769197086555814519968653220643503427434031855616206377027125803147994631335949123477317264142419322974826939478273472338602752739504198520063468756157899029377229465725285255024627386534106270197990650283349360325273473970847656812247803304579517373286065820587601466369175754345521483431046742709127793298483368538831839775306395851223479722161314926964917875397978833167145069188292403454437291848149149367773196526576239555173970972455750443068157005708501139246310672767235395887504198905509016133493328906663366477333754487116981010188083248307947329410184695570102143306239307439659154486503410859705457744578944214167367961169884126587081420148998839249993529873328583523608026683146604236757023225436432242461618116036616197422128403737673424577769537706263769147170299683164735607868879411257948554613007162064402221242503616321748796236248772361012792970634404786698312713714102515697913468048338133091596204626345325801162940268849184927894075370561718004492732943130881971541092815976421474293969124560284102089639298344594401166891592470890110916907650375206277070604322566068798151415602506227833551679879839113576709775051101428309735108792523860893303491259874651379554100645272810872399269788223753197429548232322346384659249061050800452276901543863240361204120193971904100592049647345234014531466311617424405554999694731875627713807693865139025267168144405009761711108487613747851318234314552917458743410946809130265305615689110965410192137386136436767391216197596518769342693722012994694907968023999391048666852257306913905773069463411126612531870123945555919691722283565051551055348573210253021069627673595902396704415677085662749446052451439973813085141724815123161004285228871175963371425743171506244860810962896173154103957448596590619593855462852467341180076136044248162381432497716411413021181794901227596132525486965003936660133588817040513525843781285347334574421007238171773449027658114438099601790740430184219665857314443578143640167466054496016944013964754798322444933002972508722877139341741106484013500743631751253751396256831163263917106095783898015460691994851023937821756529865111220786664327160893110982556609667394752538783058779416074218036513859452187406248903751987058464266052447223893105991511715687347997452102929797864980204575479273723261495320030409694505486360786463883429850681698527510983443880240276520217326571713055773154951174791375629847748897437571221485163606006152376681480044638155658508854693662745675727455227200962049335151728557682604887755100632935437578889747559416518200832949631160001391716504441627417729080319593042866962161048345633358513574446330872534471369382875382265098675292045076291865718450510423090535279149303145844368245558616862862863735820835463911936121992564727086361801045233301585429636630778298341642700822374865418645239280193374116722945817257258304207579541245993166322717079764728768270891179354210508738336655597567560775810656569612939179532277399415028131613466233462187636958374155067178875744959574260592524513205025290491309790329225555664989515376304704102568159555089998394655038592324067261164450822693282131744085021124574210532954341640828516449498746414966777332548841066663411365074286365869512075064231109535295540541204703934871780349204000361838375426834368519658009666338070801268433875192113972361887186726173413273902457021022569903857112303920003178081722699861620894636115850370165725773343427824831087962922462602067629375310636999833012563059277673336713110218488428803304000909054582564421650825133794963676086874423335186905335707184390153245070112376717208438800908201153105707100299510436183063766509596211952099759803612995858663536758318795218322865678765585932513512294268748262257810851924927973838287873062725050006296302769145262021819883689704293447452964961917795923286611855489431997312592381246375717438273616199240275895843427427518829705400777356415243415333247176077563327556290813824451475233518772649018165000659466982472719222042010553088546077370461679168024246255208680392183856894984841179997871766009093080598445125363444350051225043652904462710345098405609019724110210825439036583389897207891422254234221229427246182417293682248091694574780204550869753704000624233569915474460498225244792632728038791585915357738962579909057390620398670552741288173004272337111407831558821101882135629417545855432254951882728180054630686601375281786161036669035756661173587160185535541001134323494678967882432861011229599047318613270816173204970964084797907889027553271919475961762828897991546822710031717447422961104103706902409743772284550253907979769024051111655719906867030073678059651733096634061300099260968797942099021953702920023767339832407154770569278387285662217765387420399286450315016365719442995087269371905018792569808912966755160445377280986812574086868096337049399231776318953602375738274804802322534823363832068724078767574938586137602930917052660223646542069964074853494715688824196014035001010197572609756899709982968386971710773767358575256916905865032893262366394853648425568157756474553372045410163302470794180950136309288570566848712535329070509513222561833691095659678151706894469013853830369362333605559029170488308826181720782549131618463145643085021757429637829008728604899649405878097114730591101765860875535824934560796066458531458269932358138148235889309779891152994428633285291785908584483461824116367597679773046981380368829416573664600146428373802219447703085391083340054744105874235864460121083388529580623388602012345084449774185823978410364008540984994626230975713227444424874746798765330067826753129402258149511207045999822290691291515996862680010700313665588175170081499036159029834084076680957694034521451547045894196452864847560447604509870801493752201423151835231706066561636482053845802717712522473550349252995784232225801164009940601940179790370775041224942850482457862924577542166939420327555289109501484785760786309533098090246090193827963986162905543779683031309898534218866175945314456396904230124371637023363023689468391702190773901245904317154869246946403208205700787831130103232744605356694749544355471563937865513393458759184488642003460066105068182217764475828279342494636092992694474299820912644633045263937990108820843209864742045091977724203386776679748381472542999843091790857367448066596777035947851450387986484314761098559096044188378991679627432091888512074804556488433238860212855740611454835509944689368002672226257622025258770150973588883884163530195288403221464661057217064257435920048339602023888736238729803544126385952794061140520635608914592863563256951867889257867243632008235971216479821367516250517742079598728516184943595632306886215567384744120160779671763484813301883305554365659100309184088975597926049752857105758422964934236211955259591623984578387116688275082901243315513627738025824782775713635519231497407976635791906524592380410809277263179302042759884216513060442789034000712256394672812174285833978378250143182331595010929485719544083178897808774855711141846121991301071461031370869330845524660451017982142887386684009884811276034759349032775883962056668339533646160628360889655379122005137288951998523362989734710403790188325264884450192947040397068199229561858950300310437095982106012919455859276853631359803797474018573017806197006455210166932895696140777851805589546372047875220561712276908458833756396250080349280987464833416429052342949402702769640645736446931474587746046012931033044754417307656699376829911400213715688638804126656870358906149183252540224057860846027755928159277970105777772021410385028277743969856908724122742102585571991052460536747424648420552843405855009419203269701525663105104618233854474317594351675976176716532941240183600462333877556011008668312724812834361390607794988884775059835433947498875606201132743470151753029894746252529469898789907365096731898859156475562169523309284781927433402826858607109686991858931660743230449147683137568695668709424372609252577065043404151095976822925473996364580338611141598006748777206823842636108573328638138442706064180323611895927734468120495361646815437216100310536330206467971262265760404051712328969371707065298218892669843274752224053619914291022112949521840650156169828511197843429952670775504067671740257167450153763762928472746830083186669076352400986012201223269332815782433978811300588313754246256101430882897029913995159821142643037310048258613477687965789354147594375009383829938257517471295879372078164815952956430570776327649193342112932819937520307162810884371631174801084583429452998805810723882539635831683957747685104673846712679667315032125429015995011639611081433644047592885264649314758238055066419829923555211724149466466968926579343544614477077451751554591939371934949812235017321974895729100767648630208112606388696398910439567038765529305954931178217555632148316610837527625996553872768533885326053143659092512566107351761870257505498905393337387138526371898508216333717303521210475780113193296016791077609108619166698138713118309704672878697853117888104430955536497656748896933968671971457088453518546561398427099133509065665533921713019136624304086567970936140839333636135225766448178713374435756082656861674545231927932900215994937775237879548298021259122482883294583763014604963131267479292063650278945762274215969533978282949096693945878836565205880874129986886085385275410167709574032081956545472699419223529568060844338765093143089766024511597902878953489026236207470292038129293726354851893633149824724966495908806671990090777999830561845919476697503444695865500424108911369686113378624745334535730507088545219756037235552293997008047063349567229447685023760113864080718713617617397794064874794558708914816147617956211932472121783342187719415807839885837968810600603734240294539363792916540343438326129102344080976058541870674993181836152043926146885763575358492689435207553961006604170861882228642815069401609741310453440884675786467205862859795110529442302866019252677249236812973504457980476321301664330458149523446638016054659568532972237837756105190641660376862270732063256434306304673617561835129617849503263479271151754594823587864857626862702816839913491885689293044758072276544065049005375738175224023897563550893728700869388836165283289593266036468087072205358715841152200316139387845118690435751909250372151758430579701171376259440133042193187629628705955578506669685411350362566973655819400678918212112104714039571190739911839020462080466803090035398768957611935941371220212783709543038507338096024702637574513672787940041652916892195077250531709497826704495135523703391997256886021341461266390524456538081231933316125147971671312593987718856542653258665331895352129111354579817790038591984784560584240170283241746080494164446175076186282465009889611181964002351426616866640035985925160849411486143930225566235143413713989117343556015785891897316901384292471023477062429367386208833779410698143384908077126868973184564489327410123322717145568746980690401017092365699519746111311974487206613853166151260224202198298059161250355054826174839522127827206904481107228831419604267548861154465637204240128142411752092639189391610825053148507060952138693134665733541899453311861193863879416598801954854107026024098090592019418241740478723488211580079473096889647275806305493775818227490771396030709122630020978607288853682597596124155206212412603266049022706755989337948407884955144608261825598703646688517134587479800724968891975140654872936111305764868442938177219557584091463331800149189262968509083472607292249185495916509703015415779688151261546069428085832161261262311304437108006339408734099688020707338883090768526753095621267858896412193333287086666039526531936951276326351155158304640879858990073632760865044809460575786386399637194437495391261871217625432978592856554743808042389957473758805659520903146538115375593200224938034632461850764986149786947455524104777547619967127253089431214408395352479686379454018027270908221243844842793619122751168070656570466324267929898777158146605815119772128055633181779126739135747687603445755746835212239091401739684376541097792017201774250823352210750745017452495762980344834325144023618634633453065646264503742163898913562709500984210633406015847729932000508597091934030396546581204128518395180292556771467892690765203304849917703577942764722575597224617706769418542521708633293386762203671045259573222635133843215494215118953838393291593277133876000670844368326729340610076101075519616248296291789497859905357413811135250126509276695230122507136286539806693384138130152186355295843644490881974501846996449569620580646252338277190878249868051354324230882910803604655373798605063888854813799951627266441195968884712605989845602923153043453347694957000113602441330711875697693895852235370409597795601838743978624092539484715840175927343191340195119203074633370520710031374712590217317304621608594571104284875364263932020901106678061938096510534374363875691675616390840521305243778469236760847195775542172938450297734853247374112571898432557481416594047089233092434881748883437170165250339251559356570573911872496142307390193300015203388868510913906348571718674510114788854707761900934824795304869610564254405724177717938245928386719123046421191745472069480294569141189021465004376034598198836904550965696979430973762612554290946760384663094936448542372999333413185245795608565351345992498221670041204386221276068284026742714325070665780502513508677869167851174220665168472511930842300212016282218769189697734277082381954476061032723762317629185739323270731167298310440910630792867960918259514192710379133556072281727327935651092914778153603970053665588000734141845033508635372573372972556413633431153813149541243316019782199705989087014265958461579292787229203708026532463315637639647377371719789708209147581214316413608256095570270298763652764158349228993483173321626691603457396902740214133962019619597376851397850075655774376659767825914945183322964634035795450095786458987142092534098339610844615663009895219302493153079653457264612254964252039577183925285248656775334519476956071850086820338921065563155299916952069818742097298070826934067775954866127567763933329028249744431227556343721304542800892781356677873605114500167573357563671539889073647962845222972764263365633658204107744731254771276937051522848388339408919948668074447883092038263417422958230843013259910879232138213268657920628604034121278132963296968979252486537351113390584541173653577471102701162913160226817915879452664722328643520782809149110223917803435708655904412130254374616250018854751984748431717480321421897718568915300420724057170654305341706256981017336566758761161768599122799002248971793675888121036748766876341307235244746563546098401264769169155760074772802428010814452358817735315324830054522867473731948078419286817843390975698229332713722827569336875940262508123586794728417610447150759680549454514363854574118481642006018158121089684416345631852877475516047667023020398777699484250343954344539846372999504492469477601362427546933936078156774629474701054383461493414884124677668791170243913128762733374638668028395271033715814553642106004047177311671438720722322078817487903573776179335427888958785060060905428853709004668581531090923556428910664187334778274826194452200202791453207089304218197486657960026470542646958043260699837172412752811195688120254922914193092687602711231026602017081558985114269705189246904335804676441951798229469436399761354004299290950046070038179239682914723593519578664584713725421564630222827528519466962529106384326606071585839209371603539442088820912172718274458309988772812446569727601619268591318084194748161846665588589898354579337569292989956886294851136336778815717317344107760461762531674708253743438831706332453048371544098938579025230452236069684155237982231980946263365490887780196832411367985300376763431789790841838320813503326562153545568883953258118699685119302830757101404945882629539392182607175352097425986848028180210069383268844761021730373129454705244107884705856330190466430453610692193205186559399632575077854724312643409620605109230541820766833672706742564040010379621043376442952632998046427877550697454423233092322600681696159183796253853180709671039933715035235163991607902567740454855640009181701919852151422671989180903052187943460960652794580823745145161778450019653480128472223658536358518993478868001607505675510477338783732645353719779881677177963212960536684975046043311116821027851449435872703852919637826232663422607527714358449289320471235298761570769275948504765400522377175646603366201739552463559472061582984419525318436413459244974255315800454015154854273914961998862231878414997026429203997112633649355137516291200367792140417137972869017892098905398453671553255664103198352760758556767080860087577751991560852008747970062898559113158165918222164527941302017912661666281145075173937856101649415689102091635817886538181330301413769112358273660106754544718756420688602459522081202682304686635879420420439543699342820335260036915962877350384357798368986946387419874600301175953420552516792077392009811080938020731067210649338406916836892886557123053705395189341603778396050108852809726487486113595971895035197650409403844928670315066750950139093248937842517595261286943351113022678056289838503265557293322636695607758099377828363744873799690630265129942041034328229364563766614438753797204923066774002000899056764397350458851254988172932984932101819318166201615550443009701120523715469138775300032455897602242994312664921916207695162391682667998587606933705945202247064073668455883808110551959460663491617360636837413671632697460252621407034600560625251857795737829620979749871889332841619676672628054496134196857149216396907562832203835691372861692527620231848725118050867917497307567669557778877441341494500422188610392664966935463786136513579034881566247489627101270838621243013018460208711608485134884922650328028074000619837471425962732207951088514709710036544687257436858082518464220649080012037819410909165491485730184641993986176791415758890538570356160070837562830171272448604604050847348603401488204258527346561657553910742160204308134249340598124323696562548829875555430669567010438644914242010512677096298976949371707212175472374993310530632153174736347868865642699198138530418528539266237985742753371788734561892907296421141343990025961455548313320892805836207101866705396008741632896703401002471153349334696896984823058835356253063180180762058724735164793914039120402341730106636467493241907283277325580833599565958949543776244682471799124192407070304868726303113024654147759970993707280598241055091522741053528644506500928327009124786570120556798726939632972486410370730935028957363381679332975836565523113522960646981344302599654869745696029597310600137675299353847960454751037913637359908705221058697563986449413669285375663436016075192468212913563038061277895947992683388155430411590294032510793050911655219903902436451778062499959179973208603557407260436317324523084824541633970439817129622070783577188441787993080472355586717390288384081915598865128958026080893872810281640659465515892228049168261008443447283975621363193165034409275322979095497392176327866915719253845832307691386013593446935697803226597726305767290560488036801126261608685573810176887413439284403473836481744463769264897827438803598498271462942562425178652356394552347527208361825702389742189785331310240554878676025284094087326342541730644012042121413769517677111908388922664840151978657543724517198983754744770951921118948052149362408652643893017378710029286720384513537901612874936089638782333116322477240700389177351861633128011277688593308691831050141281830096743512079702563009477612804484192912041095065688860686285020440174383198740838678801906765156245130313720448479324942804932926669369345944363647819775923088034002695069561107204280223698076181767211366062536938939186078949041396159999912140476100197266403525459942891527274251198556180044750347091626702456741900451437774109315022401319640286536689782613813897261652926165115315973454593187730668081370469707108546628588046506025721908162825024867759890648460261648064521952998534229167683248516681528383004285351023265118663134506379164963055099832843022107469868747991689942027094905095459131000256570958788476228460897274521097711796273967141238936703170358837468919693198110942794241683705800939204022374726205018343862903600264241674547041748989248735157584382380138781095155755579126491895177174315223065469650656204967001429173528755089806325575350699103864565947298462363196036968691090204643807340809072878834960283673383074464404426990158199117844322369027881465840450527340463042226549012398683072043982253606755545072585459958576796768113372622905021327530191213563923275200763441036853965715130207250260281843644063902437989704857420898821172229430245976549863650120914141537467184902582649269901770356950214367506363922250347600028585897696079872045048423424996795209886043032366352174804176021128819357366964659290202790494104861655941420933997154154770596590889667244603962814458678914680128457386707253931369204630606297137459289712647746415970560661278426035541513310557590255132614481074679681636504565596299132903651577102300352856192147824017070846200416075659642564350660649522749519078566378534396256985673541536340379080897295280851923218845368294507317477901472682568874077689902671937006996746887981606437342424550624465993621552599697926251979613861991109273168504727852143012525706371900821542344024175829535388653561596857392597496917026729062736692472732664946287239445083673039225250294965206677361666180980962199768530463393872345059266577757748075510615655041375776581714731614062013730544517902860530636396974567588175280710976550071657052035238716725396362141106013687287248291643374091163020311824642756595273593909318320346772168883747913802725517778135585979901749148911210546396907058004257289185177748970385846241154144126286479259441198713908422321928350798700256445743837524033177244963797604557539613025280463567892220634719547202218437146652717654452166657743244137051292654857023222837577750434169139207815612451063486242386974629265666238991708295163407518129480016458657374262948287685420844172854690332945109015901518223469816218384943713709910235387986024806586727511660392336228114610438105549265797930842062174151652532030543234932915327989574827968547903114028892107123582910419017466023511850642309059174012694186683029690712908116280464152843401755798728749323723894414374611717657140813476223801666227524986266729882739930662151313485105363012147126922447535890335210945501632366638964502673580154443585339912721620877176731459545448978129627761806041588471987728674069699140526647753132077858257693426324245408929557331165165248413491141446906547654831768312313368479775727863009838922430096375031939796058383251944711890021912658697819216716042208082075729324422195262933844693845118095326717162692120342396514587973064798307429000646536013906797536903575866179663055232025240168336991345960478401253273756470415144163074154267875151175028877116867871702270340451826242683163197785344806715915402449714708830793494336348407417738919346512379147399715194369440676912467582298352254575855094081307745644922417065061283367074126271502682616427326553455319179765276355047652869169997496483143149328585172844607169731717764960293034610396726356967166662344612642923306134538123583266885139576330685109182625174423700326044167468278758300631195667573961821963977342452428281389484442267469388254558163089430794742718515660784798071984235584945963413140599810693947271478750191646666328057266434812125351597542445937531966060395838055774941483399524392001049167001257087149200878277339657250227057255366666139820485770863525235044697846278191377973138767273762888196382595496237666548973168138329488869104729666558999495408393202053281339615915767921808895474854320691719783302492989206785575290337586906068397087808334869362596978470065884413271926537554479990577685418187220200389752885903306661152401433933270116561725607052662790192980459137354921472982480794395127889446291927046329848681408045323879606202806387297739379301544927413716684097995074805006481213662459985546336268140003053115547233900301572620384500655234492360392689674175431454039431386893076908758297148799123509167962185303397078553583050775855287103534656220088902753197872914807172739825406602016912954493634485487855002622763584450068155002860676398764906274405067553067311707573987067259689972925459571545026265372988390197145837738327416574252966153693733711333984118500160356577405125946182949075007540100540988690467598497938517224389637575140997459528318365028252462660604059423750038744282169630201983610966741071692497121511604301334671512294673156984736657333797087255857697139340738577405822099879642027504667475171583001671597946404609923557638873504365446760007833886541128272239688001130280786534816419570649087511453747166987532413228940084600646359761902982781616902224390578315092927387808577872619913974532774146514438700984433049594370158750615151323414642926627099770610054094173597279796652033959373126899220101098739117671226637278124374147048631879957515688676564480386399657455628380680105882938490886911590004808919979903568286254863079049895876468287107618947179686640826170296993880444537624213094677056071895963730456499488881937872630480214718211018513361215100940080582439780598531584143511323871063442743904784328705523467096052127034551241275692025966331724061467544464597939890797093526458618305899000298764576517184539274616104388926126755072398545017839827386252908706472275885636879130445057149131876725164916922356335245155488456807166251876576479666020433373898132213654640024018833630775391230723634041868465466321231249245229384808234479442135663877743584336853490442644939265691373166498996702426266555416079750318964858464989912294817645593235602383476689221921749884284859398919671615063940324065031300055729860537108526209203826318404606085041460902702430223311997714388256012634657634147192901535373826604107721785878165280008464006712798621234529105222835039412624811176182594928409691147821445642352331831529395556744638093905196365571824543335350377900089706137741822403144549896235165239992545006995260875142853263481326693435037111884517341778654230423282314744086155153218503954719565629455496028696790657435656379032374463416418320644780851481108390707630673236874738840991635945527488945277729660217486719492237069670517560135050585065299379085984161202669000955354190519167192531613733066857749052967283533376017124031411712588584733247933358650864209941493052380136398174617329086145223584848876945153668708724006983323032781956370961906628677688450597756527858076349853716386265167063708994726049382476695125182153561847847004896000517854422662496840532973416177646404659311692065252992804620067675610956307285053596133580012905049540904527973769476699961410522620103908262294437901249674467611354482696579444904088074619270573295400933478788970112347501073123716255236338016914424698753694238430716239605482134362704045194673356323887658050136941013140366846874645302620532307932547318797777468978502831624643970145136152249114287275343904945481027885415552679876996226010511816557128968597433669418735302031892838209181518853667695621219648691789442116352485958417627996519700092883838390368344603344118767786470617904025655757401832767628477831216139340261991502735502512091715743001844802697721343889971102815685487487880610999712673097053691994806777586250146982449304705971731607202922078145284227003220870737258904394752170969541500347791674689112379259517506230315859949574358073279939994478337337311945074322500000547457370940870520892856784278485970908093594385139603619787449049671020406022207761060831661912891706465863335977163293222603729700693153617277611442900464160821205038840169294052566588579872945626782948850730823044665779350478199314230744423406682753127763179127349120529660813949803307520130904145387053944344319927788217568809666600173989408272688964715103145224455974973915423542757251796793503657754313121072912087489678611297904163471646755026202585781891292915083444798904669789466394479090621436867130016904357126923827018056893298912862917782382067645792535792656904915078707080989714695329267660147599346117512568349049968441175953477511182925183942470001553672989844401820258242252940324300090560626167658401799145667806972329056330610627676159575126666051642717897366179621521920515457978692517028783133687203618808455767999696997293363068001162181283040561175907068173379555633856907655690017577190465435152841106507656044842851686954271589795494319065906680668038299833766591997962406409322373429060757608786137715307841855893023218868085165866531955648221380527481740901875979262894043132940493684586940924853092212987587134229250905598587334225143234559853099486244117781322344068179250535905926932937968761949379309417446085250447447587145258622535970921039334359637536199237170181129683402733924976002783902150016544287893213771606540471290140770211123253642160249212047254587410076710671993721675018276555083858223913441169713299036514231974914908965941011370007851564087034454821305374249222816209994472075824682810830576444109850692813044829246477017826865943518936097042766434072118922481812916398541858728044150668265754162434399470276636971447196736616921999170571540142465636757231873239836249242714191295521824820740159522929796099161536775501791898266427303427742560205761020938447095010486162602358594642103982332780714005758037287266473296946076695356377500883241647858943712742317102630423289455448243730775382426702944907005737198952235329597932552758784920361315401967913104878280390457028575173824849467755804791671519257835508752603905572293407696774518352058906682180098481147340913465363634390576456358049026265374740506528008143749562434395388986048931998891804415553514834559797432191723009627575150343863327957291040204936340764296821673442203050486236850541717281504896971369919923847458881961291585959552045833311282189486628789556750381573295222256786977095100768589320107926073559587725618841130877010171355796243389999755156749973103177575374797381457588403734452301980369711551314406146480662036725544119185237530057560195213153004343420302727298846398181203950780607861516388072765960202411111349112450419437014388912529495874033920098935620299866913996680169800352765488432163999524542545392697671989004836928601662784514174705230812054239031240566319537948964166647794780391094242421199197536101786884453464895573017617542214024146189906615157629119276740283075939809791823960242544134486972106700945247637981753279668909348952028603354616225510040166352557518210662434465526286957540562661448182338396723142555642087006766075637788999960412340938296191990472900051896076358237654836498296359190357719115357727947171301260606963864363999292067358437403974923193193325516937643141879777182693025792718786044611631586681106434541514592878963400831745668451705148047240154480735305139048167920106963267733194030206955999472229628529940760689354935267403063398324195600320902548009247459886119274128174102158808837043434986061360165512691505622923958911300566808001888429471129119595483722702668459585424594717681766580154616861884645070515353880046743340834531738511879350922154782398840622334853514739751001809372282314740973619909724275841009595027160799969264145506797254886891136555027229546675721839675652380799371358988532220307716469227069101866020851166409577790728213545545372921805877397787155248004860511735599483715076217846509183417493796140900310458864647108909183319913325085709287636543473402316092181625465428648319223257338902237439168765105870305062780659767532487454212838369600736483045392166137889108653827425708740611451674661700957776952135117535935681995327007921330787698754132872828967180305041605367735097289544493408185220334991576733852028078482307594609439500067588847520880033480631738700293065785697572920420830970762520767834048584431880442234355050187007486447489273329453194584434222629988521886660078554880341782746439497565594069712246488588152910557558198549342217810199889465204260346433969560192495991838575784810893208213220734572713971599199041864659997574304352572581975867373622178548648902876273832984884669578691512013687096098855324920790201525091019665208422668946380411541411344417464831769610688053822932089325350735026552890587708165573137963395653954684149348695741116215866814368348687827021824881115802929081164174411588756983160224442804463205294748660008252599159995179732187552910051902016486398212052977677378341427625827735232200084564330466689077016840254215195327363233536007172277642966203287541079248518368783753729570890882948519736205663158406040547323548833909502496771403866440670532931694326213606860687262322013842747461530552602340574957705357368444239396821326050250582196958718900348596889721272825598288238031510618773234694596208861271417304870556267905434657764344730766832588254528707210394132886162560253190449040377119663435911510687082428494249985031087902987607785270360962362582954317687445489992628486563465864069038886537092106686482346604356601953161830824980176619605588709313027028782131811700959243007590718479902026963662426402180705812026817073093650272372351249030597326170861994553804171858203437548263135767450605140803386377919880146858242723145560497718523295999599936851427801862893683657678747162405652590515091467140179780866011019618133287587883915019927954731242488556975290805082326472340944097412712967218120529411676326643408913065928279046037920618503155623496792073613429811543461353247532758832873607587602999149033544868989515462221844289309751120475455203540069515822358353587957673315244428872943121493518350453091495989530708141918309267983343849569867249143263655859048769873975070329738541495058270801951955391304693641759483355341423015654236344048293360671602500699120451837290605107271647126539416538605696451069108513037308339239248584755111466476851123208654017248889373173186352416679102138651562728948517495662174292581190421864674476677285533233063618128653345375760903184220693048902495151007373869635969401631879554966647234415210853047737652266835301291528837306216643870361630979635554037917170394427480282844652023901160435171523211420961673431403489830600109688404208835092778025713320648332588502910426022014939318613649901228489222191830996912550073537695015650071898987615770326818221440507148777657303469233739789521769865821432442524601827713556373930524305672176653506109031609013381235808899444712432428790881053225042178586559556469433071168308191770030294345229820691183327344386532305329861796272581273120364814310357944573229859759803049643644557402080727809982805649176014279664417684449392804500047386783391058395002030078474120037887246381867159978712034977566083191577628131074834619954990399118624258548275161039026446800467633081806395747870000084290978832918657814758169594083150149852413031970383519873544396808023653615182652610053674837157562963640527691618629989577273478179457281873956450734270100308778710348244558689638823755986709043401859336403581999185825395147079756164753768519792245678767045101190799107789596527884511360903327196538327452401390045200360886124890314992328032636498325587984633315348983659924472450627817690867544100102825895023077032538407765905185289288017613486885174811774577550981699002347369819491089537919143654588074624901589122085311109705720180446786366584755605939523139235536734656963164401897571541423473523060364439731304627000026114891464943953090770975322014099093287543527824899128128120149744837550572110649014005857608663278119790874764483408812378706839709283594876577078466196058321148621366490248081248148610580028813579712836224425974847969924783586004775870264684966808297338138983207809977596357616738706253978970854317006733853532909583888566155517153019796739451560132514525163776645522957320489750524627365505373004955258681897797601701154863245926738512728720625341285707241899072803804014753964551999778983267013478122006691207468317206880891825852306620727519605345885812009520676388393657817148722638758321799860278809666344620592439807159126562483709365862116128361913724291286977999126766346302996111280159032407306432637455296631167453934599543471963159815488662082414761362550443436624572836555383097484786820199358121760615833005618554210414069342071391239595579048045846905227414573982094668176801494896038032810879909966082721035469846514739089322356127574614705069648582516477652595677529338256597067480801030143671447168307985507402438604371298660378989458605306185912874344763734508761581416125047703169211385826142201398995656101159978468097741550886847368877635050292793760569723894340510418850244738480747076341384392498271361056582110214050497412629721703018206232311806762139030513594784521293732096448877378910483061110552838670967887862287076312336437480336578490419011748346906000878150600378410275627646368185590064543635271881294083912852762215954959192022093727834652850773891798296653883180330975570348173083158277989943104881446638974628270912437920728343147374195125876301925395223434660400447243966868025024037499134261180677489303131878310170780160749021839747363282458220958492266076967313437409590264836297365264861412077541981346127980283682437853098035179396322638776856422518475660863191924462681194687681646688118594582077347352941476278124517118518286963981279071577654164372015488625996112302003028195928834673054815023439948662029448547692317312149631376529109331256035484586255460235282700177509160028445675929699376716643160147375219133236342593189803309858571550539018059535018011440195041161513434270668707658075157157216879664161450334967201581100850539712376691012481662874378104590521538439113602034025108411243436889669104581266393251630249908290227143539376885106269809722933725779676292974730495607875620406717429238448716999577617422619184742032532165196318623299756541980035157991534106133333535972920258386016957113669964873603554086351359426411603496071603222042218651519324885277128694581143501094132832131439875358570696785943333344963866571046513633510198979545582090425040327577980326084247112259680212064672968358099216194650054147787321729287488326915836240314812485683526538827264459275131418205646283672289806331705209318224111583588695134302047957321074056345005551341548390946219647708842007427546473883608114762194315596632926240243570867827721868319356077547586444706802078470644163215510063517132291978253650160243671079818871740297687013108787251631888828362436298872888534106621623598172708187638880183713036614023839487096276312247394182318949164718502520730431184724063187113111546876274306262321772611751814951012904455096222225689817666272297549535644730630028790222190171399051519673560095845763773045779016017115791145068678926602357271377343147097333369015834772038078585048711404497503491747292092875507659540788756053595020926040464737187219821812903090231428593598917088588878696433556316067306378907592803250235742526483414451874057959363320685818264295810858179607327763075301460822108688553407799686551063204782673635858819298753338086416373145827334327879029624846729908171322325256871040657137506454578821939809991288120925424606621910666404110519464548359090948932819362226806571450393391497644049100881125374927994841974786623093955872669527179692150617771052808301106442541643247399995716050883778756342421720934480376579873928579321642064631077545809389140960822208313738613024994990909578063681727943086433481090746186955178338658702319338181500107137753150885009433911228800508747989603390064788700802084461992592517567995800188338183286670283787038942323152305655245068513356470824713124245127054615508115272529213739425117927869422624868468495504298199679522077741819293671772637372068877657542202848868958247469221900171500930433081478858249051348392392416344752488625261107773435894531450419274196675356345928607865839156414396226227282689841624266053360265503937274362260652179820945551952364529061410983764691301190185542746763655632382163155399249728524659177575374268358504744457172406975332134944133096120604293402173840769927977776332527080419298890662125013004945947536088562237673902093036090159875334379490821370977451770020836986108354444760112149875047976266349204125397672238548331082927162766397714074519467548333788426853625063371426757518384193676884028463033022308759137720402354450793175333060993739429061368840652838167171505938259476940970565034742298003512256646795029684735872439905182727173999064952200846131314610734711767110037892754914736971797496100236354437310748629061509799670283956569260881915765710878504797087451129188939423737350383376674742861401084350428286668331467905584935127447520070677771121277224001641362317897781859386068289873953105045280918699761336164479213631456578473814601876359001952259915623516716460293243446592000813342541563495986893604309341335145240507322184001651168055014476067832518832530123768480501015961337703647213542526287485508756570500228447200302430894179100231109413437063511932387352021191875438523747604888853262793046098400000794441541626057108146415554133288874624331209784607583304493447529991877286740134220451490771678244166506111469138615665513485252254199082285061964595837865939535168703965113737079124512832297658588751519710782695201525164277440845127733692172902630226077515680251439474440282624867462935842239256026901535496739557792686265890233861509357861751251708270949561576822308704074521357560039458626323174992283302097345504075211280247788696283984520862379037986849981076101276642420905401965903411661106184354621285585858481478434252135013730333735224180939406935647109016206077240378592380174191753413213110137244432022204908693082430528169430508493379327896908615136070693175588300276139566568841652902386040088914680899520695961040703381398593191325146857407325195674167811334008483910141493711523936971253283173114175816101415262194111202059587554175518724281403080324784320972224500689159922244619478860221611172294767514274159665634675735704914351813663576586750466460405375497450197894777389130303986316723874426160466782999586749786330123237297724169073624392388108956901396917530271468319536082011865832758350892835979440273793948974264947840411571785027924941109133336486510794873014142975875113059093122406254373504555258535966001324289176511805266349870751294247165294372461197441866937750619413854017810475129355238211592139591650579697422617963793098243910193724629485475835705515989790317220485369887952471069844685571975676336069402180991275271574066043164050914365766831690501998817534079205914852562457969644924093444536537161272530957951796227825718476931409424100903666600641776494197475789791746528138260903454662210129976792492894163379524624381194789228060680534126326554557107620174511702965990973960271906126833828941517079760191576067827430099076912316686387404800615556912262400966021047136725581986957030887050103784032835488256115854163365303691400303888931073966721475293648673190798397873308825641115271466354521418332563631053516755005523153298116067518731236117701565606196024733343066849407163219678209761909403400738533935455256027640797171484980207833423573951528738590047114654691848730851277066314773284736557577010337349523150957283064775439012909588572066230800623654936540789930485262900294035842400019001293870976157803627879718931725097190154074574237716122234036955876311241844675384686514173977254416320234749487314079616693026091140118858818467181109678999678504043598420071399413449038344574586776809270961874033342873344729710859354676842810931876183652171639141075451118401183087035171520373813089365410804273823533928291975640042423499174287428109996209032758805599596283599657557971194015520942391561640648314123646502005401654715059348874238541641078526284866566639985235955390827018142797397481078999574315985484110329467136228267476053296465563220266284970767464988678209813850018657716777124495797318399319548422765359539685226652514888789999640571419398843472172157395412756173529384196180276887889508204175444870737338875682627242197140834660653772372788773200992437577907724241782100187996794497388065341656079246343274942765986704399475864955990064627948852926195845666162791879420112043759814876130526542121295803522288096667084723454496415797604934562414401124820727573935058180637336053353610590434280913419973489599495497963608543805690984776895310101051581368838185767322278043887650325813606519173262211975833143254951305670166240010845092108693279659723228050296498150387768711410124349906673406005555017453847206018906387738050211706111869822849154018385445592712180108709596659362759984229809145282769294342027174095779743673990292854843760189392597863213334956901818221091974658113590539930922206755542196375185372400867226710651412426477437156212382372727916660760995805990208694616725832157005300477356926584899344115484346155919068865510547864093425029250640408442465196737352336166036933901247436746797014978774505073650720145679179267536256654436899153338134102501217603296260073563550201394565444133726190095630291871220948760314652663683933337717455195545692275045979729483210945210978643709658815444276744565209810494548132864965615340362436986480331632237785483205590949940722293967105812193323553695029866195356950233691528730484508805145858694006797675277704667180694767821413159581264540030178713953187414792964435996349127366695204176424789416591843126919193663744176456942053206736725307194479753289102492894283899619946670763029094658073947615913264210379280903050719596744069329063103247102589854911957869471907349597444274391296546175733196004391554855779860170983933710264504777505686097708701913909018214225577801391807465515171857978205919928386232081197320906171734900525432236044366368389002298228220035222838767479694273720079685958804950316397773339777272144359280626055651012669247852513239941183103895672947448141728244524279470544275938489095744995337854469754792398836676123986632548862036985030097077802288191423705432076287306015140258559232816093616668909271672178874763126018709090434868788125906025865993515701978856794294647109549327006884632048433154934634291594258433912339263272549402580064124428472096185492504038408984869268478804365780531275181730497566944200874882531377950924236724723535850090272978692339505611260797490268480471062289988974294859136232263337805090670708462135553841179794311067873751483382167367551242007865055554181484765716381096489125954456546373185738352935172947311128476077878013241349990327690878717153198233449079969029983928683503224132410805750689201471162385447040482851358692767066135527799077488253256139703787888562309562081576496931542932426099013772436653104813933343034430808079588059900783471320590353598513532946118106510308404807779247043386599940531811312885340682420841337501485088711794920898983835442208200147421348486800003758536883293245589274200291639177774274208075245438789929691019823758655857250842632372662287862068918872436946568980783069894660464001907131746231859620059477852082840498609317706903323107309638194379397501232298279557471533226248843936997205451950285443997641940746624085537344607235454757659013455144147090199210830607591562378261760015129132360812373430372297980187618405971936259597666689701937683060676051523671703851008042108051640906571825459291461073775023118745668133854519960501270364088202718930629536606892327895247014134959566722195081892555575502920524273017290838256152056043709984424385772872790727858254571220537453061371601414818236986715888519668989898140632684760703059165207385921968437744520056993792246619768815771837549221555446603525449419040066278191014588160041081431859679616110379948740787003456643198710409115671134005761183449991062360823612412964521944781288928188809062120903764208711920204951811863388214556880115399526964533300779998595041008708624979847695606447385589445536034474842532314693012890783298244160675465523461790303481449607606405321087707297082021637948372014107785231480833748053871216583227110480741381652433636447171359258387173618252839773748986348903928398565626580401160985553438075623144131486915292031047991983079196353769623047119390748578690542973639955671876714291986185224883200720037724331001833149072979298939888823708254548854492742717793988263422385320629531670576894502706707862496652113423656661984793512069861641733103402369387620359258656238913779540581275755279449040721192471508713013586255225637216803197878121114689931703584144900966387104171757605008732549861868055872366893061967218371732106310029398645442356615333740778978284340128969323394632395751238786752712521465461864268911592188142317661590373381395766115007727285911520117099956807205798796832823750800455171265417133606148450337370439800652733712194165331582082729015167286272152124540986501887726711344545675552546200809452729014208656137092100530043083891106890562835779860762296988997226956045234138990267255772642204982475483968878851672392366864985043484972430390763852907258029866172408582868009871424379177218162685284845302199105301717992750509893766305937162307229957150784722958923963845781313379753455974364254434186745762868778955832171773715846358933473181628015602399532040151398477639011452818792748954987130201087139266768513259017454719672700849798848503530482682868682715733220807776819054256865236985283527698501929759881385999485403448276122413045432701476672874070684076670509893040528404469436378249446695798801609414361887241165956749600706366468854302260698362109615667879119266237430850412614257417262732172478855964578079145022485739547917452335671859419095536439007595422461977725017536387405305352174112043440028261006815186448107791760265841655190317397644185139187108456898333386856590397129996443061309887091067902753490852047333597460158768378343943514460177834772485038937586800880480754078211118306421088279521637076693184260155808817481847472933256613992497027271882687968690483422131404768666768031927349295551239462400082203415879284295660981838710399682549187937641682854864457902893390281018881685536777433180554421935222274004027880285517914713353925986865219507376139066263268701142661831205644225160522910329281889179001028938511010415791501432115084758592814941674225971979271558145183130485509702735063353262597644451774518556351054598006682163377463622703562346082590495437481617137820665654966214885428069591276954123701917167917262423582195354866110564395693552981110457081112350687542192616531820760310818312638300992270816058886713037704317979952736182619573181872645403110924791136098649604814181427554653044512904499474144752501914441695140197809183026588207350533816444297014634162218125910120778808166092379735692188307144295944310736087275673398206542395951285479673559232350778314856026566394357002466790739695243780358533004859968632096817559479680337124739134472146351968791310924870355245794164281313474145344494779794518616165715288754593785231995441795072040344982496113810699981453166712753088865277012523786794639391536344328773404032470683462878708273419674822551977687499749501844388357676684737257593799871181023614375404251325447673716979042783671467257819864556500400279101016923804092173907088047777596439331230566746682018234459923697086381311256666594718334999546745212493567635585254783664106740376214230708752699064553083927064178059295402533777864888993373684064024484131504504781665025685812452312317044919485053359451871284379064387147700384630136698785166815780879594944674276092412128154211985897758668641238918876429891108175798178928959979971996537945812963084977769994187750749634580170438987470740416437161764126806436466440322458671048632531666790103482002118466621790083707278468548468491774930886845971579148754889881719565209480012867557438081722598500624036480601153120142169543281020548664304901081035474019657027373048870909427818139924015381468656048338021552338896107510897205547563741971734754907568930017071423469541700447777856023501715919026090902991607071213865340898987457875074218548683577942023295578800691749269319292882353825518795435664338783166151292099589209723250150392979423563799265571445022352332710041189213074082388464798585376394759737490313629836513107107190362598217503500491748243893936498398640773953789891645890168831689078240688153904609683322334370133900600263807732515003984758435260317938029908448499745473312756792818134062249536006705793550456411048525717028947285178400450590078904616515639338282098159356079195150979209427024698468898632025567501850396524692269461406656937315719851804806914282101625319253162960535976354314781377250204289070415745642467067956582685647958808269376015454512932332080250933551270422804332265560758126989099599375972897699509883029289959165108890696687278356237966615539347937529642336030107590325763114974617002178588428436577644432687270517478012898616473629444418052571237648787605627712956023596437597603041305643804680776955351865622122777975707494702230228762367657524789471805074068138168505837691834162793297490708720524208521979822676399864459934714521495293299490211217845229863813178354155335149415001862041437411392976984788748057260162714422551480950258128030106746818517533327019351215149073696391291136084646514493623445552205006629102649904320788011089922446726867310297441204988864596575124195010846339468953834291551986990396972129037250621186808783338354519265530159541532546360628241378251373189807192377073432467686737202291060984930776457672502596931985398532707815958571882741848490329666715142103660855538377303403348716260213457376963882493650893279472092448064228237940649155974839293600083500129679510118492343937461710282231855935639636518692229579418888597426051049198066002207538376485436916933984687355579037379831842266495116458838840878661569836501609792155134298807422492621733418647906004455296873377834456181484749509396875599983477001829576306472228777247136616847383747969882889368816492830194424525024675853964948667852981677057904504188801939675047086374538801933357686610930979528928139605398554446586377537440170673953956860280889804620902046031676981425036014367802408775579348327174921894810720941106337160868899430117043997387529281845947158960198445772696253905578003325858363879924376983933287922481398420973563522649929439412199994686079832669269328757058601459166789869614777492687053811308014816872460649012936065825043050439828411496447351617537136017545940894075677419364741339562929638573926581020769488773959061605048185092484246726079849714898931086247097614721102758269181466271193911955211905227796625410137419231760507515321574541754776701501964940115354797845097241591898971942040489200775704073243416399517123407833095451074087874484268899972506982101296206134223333314640515954136518976187934866804657137916032538423138417656625270830813008611064111042910705393231309858616825239119554833640228753375776666507661330047017754043626720138393817093281784002504691666519455343735028319851653989555982378757328008834098976179667969964169807853312985593544505112799534953332708722674752260370047819111525067187267855376665251242017796837171583254960106402613680962607550658673211244590783746126798263468622869774537429919324641005711395657980815580202275417218033514459184434095575646589395125807755833699749975785266074752585965715201406543610218352812814276450706576385536090683190792057969425474812765687476232768662586911483112307791195427018232240689079834155287992461515476410714500925206055919669114686233848209103554996824024787165657693999103167674159332985123875038924204315391844596586802645801096582877331388514537441487318546762956045908754905967908700705595294225774393053582340426844369282642755100902288803421915184317826977472507513753612076290689365849927496981756777347716797040156556104829209823304884116274816995925388828153782371570189014003221516593313554420341893836777653295901388397240760855304738141287144428868808990270541273913401930811556231750530286814011451313788720535681754584504381227512122902300605703816658025654905786957428864529359031038667387078414994044535488895233920831939021266821834521027673514955607946301457226874492956105561188859294760003622199117298114722898872432375532483708855713079653854270872149234187795491518581955407514164663560210217100925965881975936356293331897126172655664610516467096254877873585528565399524726394921177840266239741904480403964047855958788777537758658661344362184601759354794109941751961569912151778387288677885605010052583242942524744674793473441436335676952662333813256312088922401606409362400731084034765920238715147558203227946711834161406121623580590243210316055667763257932167790171178520916514045822732939522945940253096515820811219763173328791948795245723023904659025219972065312625683028772321109656970819665921141884067779758050559293913652550778048520711367310970746498516801243600844878210260554231326498252537789040614846239632540335422271491620848311436041285231025605002591591273902334684232449769432086387651498424140041435195723860651679307348048449681550434025293490227473554057148990931109495233943420408360316075968489630453244218492509167925736042258761585771474233106528419339750854713076930399610731508751306399827317845194739930656498252576439673049543603992314505014430445764585074310348519437339544563792945396224233096126646104181005540177998814321835028276028703662446664322442426683098408167917002844843550986195896229154050625217091125387366645897788010663011736885069215494954702636820569962272047195602829913179075190354214262305290851797537558085824673402666249665133666874158678487658340562270153316412031589597913533413477474184501625541691815837395345050451212788870294355769567376453684468828177628512727607106777542362683406800727844262963965458184985460748200611608616690379200764504380233764015856811428062711420365574422779475797749016683264565949735337132868867998597391791427652731040392023081578745966734969044778379093088469399851128995112489451342485710372997653648569407550663079090854129833094327926424072032683928933418490945249761793288334097947985399342766869577689907717682111427583011955984964129269101808200073544480970157037815707975842018665692926872507574118094209606296189430854646142656207462816413323980297651306568104283008348473776705772277680089794974622097939018046032694030831493812586527654860074054027988510686433811124058544128503991309074745233880465812696353538164469200898271169506668984523235157591621690661875731649222272791069574460804954282500145103729272510128195425501931686810154358705162710043082840688323573078409870062544191958851959279846831255189378961956825339079662555129273663220089031759286864870728972668423467961927982687110992188718716602529106779798956879923877290003512537617600533149636335844927463453799493563241675125057923404757400186938143061366564680192425366584378221660425162278492314130994629533842880658977420006328517821655252456023972651839716076310689136831095526761149862036108343520683553289892746084520128609603483875939709780198880128151871029193611705851716135386791598078351831075418014824272422684031260481007757181793504855170052724094913524236032077375683142528981181576923742702845323242253731571970595801847734197609438047167329230992641305343965320792566738680797756614208555271749641590826421167776286756972083507585941301310034817046517658978753998974957566661164207631965580691180722316899025199386443046951965736565998007227432510783086074629676219297197725800247814530198067705643294864069672919352363435522466514153361738539122606963725779258044242663944817791944382580113765052234156303820251611405821858648259710966626427159693617291211657527709504186089902959012815429543650985570402791162767793603066498453324468592292601870887281247216098798347574233185682212433805826855062413995978593976883046156389119772877897199451691577522176194147866764942825454482603172840888541035510619495477320490481764081299238811027818094721845956165282589982231116069643806462556707135765122973263900702974500965216700721252905060245826003838464811267043633224120526875096936735907670022013877372680744552113941876138853566359371867530923378477658709451541556100210127400635610614121504307474225690083420460950974872267192369674812980275811603918422789358195639699646881346353480791663934800008610295892071935688480894192913960683252321454823055246246879097070093154692645459266691032830604925898392747561319246265435069233984469419220163464193802085479259365768409573245813651064062904337482421165582885711511468593765392233156839141527718103112680720863679657198277153036437357097251711882558015615256893569354822997604739434987900098256089188827384393229675015096609142071763051669357696636335519679369024955425576896317920547043970725496725887997697238353358384896495103810924704446898455828512771690698635100640342502320303459778264818980416402626557767991522939704893295471082893603270362549528511224216284340635213630000645757946663788703927305994086575335571574665459996858698421691143514393651452089972441898320733965002409769531256635227149475575791642523725718052435169573689104861708653748683903717411071087846291459080614749591644073922821266901327583581798863693253414568672867891371225634278475989336492753304431443584179794380064337230123122607148203784691643300967779494455300917666302207163753156869466390548427911038117018944619454305875110426714728088333764955669466888315712887447584923521188736031819113879354597066894067502037472076562903673714043745006042082756393686911796145434347189614190233625897435119010021563683343212492101607011926747503664610948254961862285237175431998095713651577478329946726172635934508144309574352822006019749262375013743273288125885433370055617291701807356209482316654594875921472903045466709065978972107714398255304446617843215530851489559719413360320392275739364538586994908292327622502606304933174106876031206231776890679461198687361348452458846178068532237016096408713519513064293142268007181239244443583179748130453593762340014989763565096896736425283929763115564692432422114713002608134344101212231216923747689865565454322057357556666135171746328694204947787256579470330340346695909370330229320293286170939264450724792635728459925140839230642532726382106756702358964445635854781213736989141154827688747379279223026421744105561584348590334088515920835594117459915954553185338672722363247128017788640838103455791467781190006970023560025287903962460768433205150879029657978562157606107115154369206948428889407887338879609227352763655851219535787912485354896622400991531925957832316144079505531713094754391616328995044123935035561376318056243601542341085486102886910300236026010669323892890317012618890030232305786811797385872062982066465605252071862389414126753702162234233524847484420393796499103802000057461384462579147964450533946004792717611047439304970636859009377561106169044305124012419033325788618659335472609316377540185906363714924423171005236799162752513337428518720424485035028594826238719688804141282946084538261642534014065035047992885496170111218640880249875622973147527728825314786335121589795618606437112773600310379516222673291219315895493565507789989626453696268418185131485087907657396304153997420047042867359066256453727132876181709499609447213375504490220267018883089674741211391698890144382508466246172336870793905601141297260602761183838731574743546414427131756913512946301140629197491434812234303459337017287531883967786754935874629290672743116339788595842337874263341468666170895773366752467402624982095760032900807629925503368296483262101483682364262733555569347756135706674975254127365889853158343470855124649732273802175525488647528760180250808801796789703035409184062261575081030752197102879946564350335189855155883484449502000822891754749011884232828683498900434758706861176299178343259387059122148304805689716859316582976347533083249766300243166716784899817821466893565355021637551861829202415502265682304543831650378685704704018415770530929355213857955537539100873815861199450481750059006726757880441270708890180735486239828876705118391582628277029389501969451698657835157841918885434982418094226337423426026897918838537224367379413828763065660699337014228520871381891935395450750872791394927532150307944267717059143945172751352607485690927318119934591079677811451992078487152183235315841232820718713166637919269123527993474659095983926566483866426389913294429431519320774229917020241330652920594053444496442868568761754799202867165270505431544553264814427126280385955634758968968379327900085785327200391406832812392309463525578410415895184521478920672364505339619172211308689780632216544882690345611166338498306425888220787197523203721668710523171275821895548688681755593921150981739044417057750306283712856013879276640992676812455518112849361374413095418649050266028473062673713713821434054846578438257514374561401974045101222807222594691640680301223078402825854001739774392060518571726808846891935251823958690618019554708493218684554896409565893733670227057011285956276880630875187800026824146961214898144160188456167760767343515445787029280116682546149548183230017309462889598740038535706647164433869798888998849937642561095917580363352074894285805469583320085414235964687130518173895503667092619182692088360196264546107885060285950615989609018998352236488055879564380768301419627679492783566336268076517398653992257769983751540504611398080020309569704491551821264740228883647591699806065533815257333983773159176296491638033572891044538198851486807378104666131087069669116770713399104369407976634239274971269232272306753897159660683539583004225975272642718618423328250783961767302547675307894588571412115920819224180826169529615281125837539768520452034141169958750797137874565346410729943674729082173503718693961061501359600468320806284968105649356683920601923178170617518682083017381801424517814852467606001163838376251995205212344462330861077458969830970602106402057653055226069655066849319547362681238632184495675228535713437586716734190290921760098994963278784564941805897981495271765033782265570240801108092465776726766382398454788422900882412342842245394884438669223769967355440885768590703845854652384839732071303305100400876664583633177422716206439077118529044957654493294530562529467068033531667471260695611272484033182604039887887308095241020346757308318096956093211743026036624191562877376195321241904926172176129328622828755842282911033982649316652869150675111498572368695340495365488694059214508203397297269008504097968029781268952824509687905117528710098919662566870064983161706892591545644087290531617587829944799921593485325637538099566061291889402697034896642969648306360385698656626583018653793568249661166721768153885258141233642084167764881608744994829592230632073056469472028009024442578216366125439781736247224725211352965706859618375774737339027469586472583336519254059750904722683123382232250605063145253535017043576635445047544201901198827693376009717271531905290109691633515165803865554663833253896382815507864203801512745594452929792951798534307123020679570920091156878936345271959005102911265648623368096485813574099012003980030175946583093042502319991195824947956408318485293992982430701478427586601965916473647295247984492756194016860435130736872293787387963105566940357390965726921620433824269837370009894547599779665547068760925145795713849914643455708729397103294960512366133803947770378633992932427012383570614061584425431319229061769869094274717782406766575358206194189808077956233638786706111444269482383300640229440150145941938899259029076798568364319302881954902797929121768174729175289525756433211994812040025543727333641274431786867306774746137902967271645256174520513275550662293123312537477735193919024555416852323147406774122896507934361556719591092202655114963920745459943007960238796048296042389984365137909051291647654159670915188388603031249081051695960388773293598635687309867457748696317856083975352521005626190284049411510835334314611695739419869286913444375004398091415948129450825379806439310809392329231288550061315158233807053424565718258568992673104519138165093508345827112622584659102498060176990905350151217445836758223938803434081722542518540842032637389395809224115161885744570983297313020221361944036706025694909991037479495578579656676361966112020631204375960630264772264147411708658248402035761885691525406408392166029284500141790317775882025815174063595566070916209691032886239090774718747068593653688734601110275544648428769825735483844258968781727112220875628505318593003059115183776714833661207760447021951356143348175671278564353609117883184301995752308905099269170004123171255761525994091846955434424177518948862228229520407000503837364015736240038418162731264812397351991277733333706528180417869372166043969438964542826261418280186613065131497881989453820040157066766510312423566622327788429653929720479543867067497725330432219681852556850996232026885404975096881316691272749777026911325319338128368886701412359285533958584358980133535467662224331512978576070680485379264123824123472153332068649042508420152379336372952404316862811590407309991608458255227691153082087626651458216598514568521474850397767866859999426228240364258182441429279262600040538695418512557629485869160817245164887562175319834673679719693004570298468285222667403441832396257127999009712389282369297430375483373507849085066495691108207904582007148525014107400936312733051102445502776595878739342289448737882552619663152716794996697497736521960089094938299067643066639038264830116024024953244860389143384317897661950044611596533849963250162329533311219372839486998491103820207814379897244871343320515147848462502716012374438545898738086155253487945794835463542689782445726273991850965780388476611772995825554467069882502657171377618455662537668277600604168891077259628444705184492078155247490976426307733902377425478621010735943552948522775480517139933245513507224381442687961382962113542826952536234777137925717704681688949172757723456204898543070986333415431786237420673961082543730238998646137117045965929263425608351076802456158056582982049114151975570477169889700670905462835564375208503767746749658201170070635530139798809354361385292046759383172748044030739517449924321893797173398035867594636291863723873625583635010135790049472761143976251991210025592087416852482981260295502547537140923568925524176964634570741753826165442350984210627806635052381174401601253796631710360665343086159041292342720290847251504459598923416535197024761979011160782873961380476090241324020556564463433143166914653876048106182013699094355127994576025675521648264458536265077142590429875295507335749232117657923135207679575910236406033495144682426192725646528858303533145746944623049128930025043264017357872762591265104013426327483801058548113111362628628280273141454051559361860997305487534204417701083216283206691548147490503534939348919614101818114009506428092007943053950133005052731085050291228799865224280034961763307404605895506716299888758479234565340338833759835725722190660074030404940616799164318143514946202050210648523781904097476183010563056127809122993136661426493625703177624298133530746928974595794125014839767357549827026939903853825852718017501874147094955619196942108545562082366322728255130915622586064601554675600113182441599635710901177404380661889737533491362554418617647078851337140137081727023616925425948053481471915810280599574073578393899530640575078440812489954082591243638221478991717088706252594915589387213154298092322123324747043367818249008375023757028579458518405515688257672455654006747800804207027295639176596857172274904356633227937060823408692872675999402227644131256793418129950368496170218146834774439452562791446299359508454933022724938862286112936354040796804253926913334109380499533826888041979315885267965414534514323121761414547905407822522133098548944533676861537291630157178660605403237703231074867897345706955441616725133831860222234359184630455509215212245389756973718737551272526197341834958761451791925940726371269536197081620829302539865571381019669405685936229767210025086993006786400275214958929078121204713429818143299334785448919123389294796826953100435881663915377384100780267701058971834301440288667474532067975462005341364988782664677663903309478512629316613023007994033918191558251952217391789398592710141193082822099287124154767723686964206626511308513344266222749947971893926017567431097076642706890081387982999065227987896920097374831879779616756590859763326145143335495537880652166082037028367474511321276309579307051416858399870311098758457218982841682134952978566549802477774156821374274811071167669353073703293713369256779584911064742413965512354037793611333879137935750749092972081951160011162896276468752865206582338194049383766138922388565033134135234713954082926756328242905068275467685790224594166434377143795224688196078181711016376267454983554537197029304354210997497975217978239918580320223629630370549089868020982614548707742239375105456708182217175757286003332136462911652750606090504070336280329461043544913269326242005200131376054372007098510386383216786958623148955698872527475902989084756764057626870605575886539986137942509745373187961201113214335417314900569390421327106960910089161965581210270333979014611140469064494990182996820507297819824411786461580580071079996348255427409980066813204697370820817492034132995100744702038425193609361692765884786703688739784803210772011935465104236927458063651383646234899254075704690400049047944003613238972529420739265858209850272185858298290261238972123605028432674327909984913670709726978260973643123470171107317603461224205664122919968844208154470709938022872240787200243362974070315903277253849326625402663166596804762458615679624587436610580483406862965935162581193114236971127374463573774040570759521287538918220409941184688959847037885408620061840918535727985190236640402174036208941387291406555807848710511667305956426977351190789103824058766580238800691067874698440054579931470182819004227533021002846580033160801957990870569764821608253679914057576641581193624235499954130122635458610292391930979884822167229173032923846357220130696384475928604882407841303771326498233215316363099995688645875292445385048653059975315834494807418319637301094005148764414493419335702894818682812406600885440526821742235066459904914742997881716561663978046029757746440135705701301163819436867901218748724101113827253444870659301915185211739560670323471579574558577826119136376311708120282822893872440068538962847552541244536978134854740665694945271719452565790888024509250201386259597476469320980190364078391541487797662570872462830975030178792004732989300672448971959970026817155629958180810099439106604521627572373149926912006076805070708939784480745176296302355462494496183429072311108058283098637870549231512648746222202934677663412732722217872374879236912348604233959363317611545257635111175904162514398101924117471401576388738170168133735486923674041978756033734528947701514697586702029143265164568643791300217864024402958591604433279903581785914473154341237699025416168619216265226252982166807245994029661692847686479087564352759249261544086727136077004656955709214943816956660320395379377241070131375384970481960705513931954755054097595638826920178284754123327735841097743213995962960933313370001305546748732670517225181234078186317363647565630414194728700495714310899458877280920525462020519259688018973405307222374432826368909458482286059055351868450615682623896601794998949321967176081204065982217107914475424282878141048577529381409371564590067535399494236476444386623249997270455323764797107592905751267328403686152369722967540892053124967441419894005647089296018137794624000888834629404294164802927197646991079302545686041302257167241856292063444731100669816208231525522408037569414045384612752568497589032410677087653292696594083067463770084428758654511833036356953286325342264957372840086258500964826858947838643676068344576799611125759345812200631135230624135928413080761726283290189258348584046852701906416905386577851738773070229407326197333613825747412545401317479418184181850077231847231056594229233705541081752917982146989395312529267014353457755527597945406670505777949996643716548908193919581842627525266934945188835355199157987357139383359237087149936921097120882119272727955823318707086866139058855440428237364092180839930348640482840141874304774942622425542143008706376627019108398696287445513553844377466737981083370294748569983623735625854052693845016646873377513532514814412340256320509940134733485400125697800841641951296325691932747435338301645237296154152206877098393507927710548900880246878914094944860181387335018750287125194350883016425596751156968558430929014443897614912943153307411011555233262184362248443867815842304172791468912534664935228936033817041507071369482797721764302722153674469028547347153714341373502069680651555175321345068962405977870080130852996243272202209685446767075292314111354886321706340984683409718477869772156541885378105311805833403484754246030700746364224784703437835732584523232151490137114463083947737584698983534470922238641493797713965032972520273488418114916707353288004735888000264143998007588387219915334507297921722357589330786288592938428212350475739953144326267094837907566607821669500005945551148632508363445176957597012916382820254337226496283284655598710815605794764363227625371061510144523328431796709687988376604435927005206223242819518782656216290603411686435029914239924843083776607996947957273719525269761804571461289677653944476352268987453819549540262001028118157195442233468259237300339525812249189248154090080038608752110062236826058967241025972996877451155826476764082180127058883872436674206830925287299801584311981871612890045160537176121136535039899230182221424875372040463013085465745267173816566097443309151077021001012797894662945066456485833521476912519077175407781554101100990683958174997788437226768700188530683720310056494989225536190631476590980001071373309036095895227929170334310853708370246605790344037867625150921976520632509572620052173503026689165735842689338677198409792249296706661088701937641877997608507998739425025945969791715303804820851636422632606181959591692135506828917062985486762339469267795649136889557383027618218517390289578289293132772008152529492655531462523650006931303739976093333386616475651681498215524512653793927257778692530523244333405816942442174446876674260253461737738699789204289660127763418852933049051851418211703384002421104296576773160022290669267833384468093948575171543955955583822996694380510360418876131925889122442553651812515906105315253035930309239106722024521054488674014145668336266381287115182982904135631639334168680829491529796490771030384233539851864161258542892967414754942860435725333300993265347763916369999482760952002165013270618651607305929635931796979342741102826356273651797009443410217626582442119294749148612572601640094590461811377083836541488557937688204611352600136826805640067199411962246337442009669844908331644737216612568529591201087747510434834991795802621780991138809158147898436404528912678408074787366220208017189262376559291292697961545233928091196964350581803329215047746189530595835131283426691731346618510164112346905151686040630909961485863318049610901442814564640458738782548810070172876920235086249894753009458748156637939132955374186523127341549661859031220552550952302522577905845919511283991329322843724043811730674206427298195695954930132645514749868917613957525559775036975301140636943654594823423379629691127833902543625777313334828098264331974323401567341225189893840802789131151955015147828215392664808550329782629557244568211698411784456192709997606886087876552579810427633960756731723518676027062541077160505308871742378867236175532397542933602146686348758325110080809773994621456023639247878208902492331197285041984471631593314323110385597162259457602550869966739745044568417401824063514060879944389782677541185099839574912006124926552757064358856100227359530763170618773313387102249417805712948578450644723378770503809880579587275659257391340488158233251715394113060322915504230061803194051993352043395647080554961385210207834051834992496818287775812331412796504273971538617606602340864813402159821177622972400573291387417988777496058481735417738229642223450358981175819396200036220401425890337956812233176164242716395847067629494996028103596529560079667081437245142512678322100137247936765733889661136486635122685506906648995464070288292360772986194245881480702232843346575606265614607982560126319476579951006307451659733563019352766044539464913885590764523540158577325344416128701777590196449642206140757474607619855191608730762059055418726679736281280988040217972120042364726226598879344231078491746394329411280558731335066820854351598915170721502574334406620891462484154231448571494547091951322876571123272752225844445370841357541708112950329756359794541287186453094969497028086493600259968006582666642707425973710603673258031229262870843362536960572451471526387794934152608899579415043510156894092679809541289648432123958781616867104357701240273492929986588768113621454316614960102959434730615270356759990062887780736263402517860724716684973573627115991849322216303654591279849165104050383636262410951258897826011086589989721373367775228829314814681499747052298371190244045781398482679152071198557691259611871686725345403701968091910023459055391227160404294755764411347902568910947439610726364014201485050752911419877328527247219068752351441138083330146417506508480731978228703974303949260610301123685727868037936459037226942488084149718344103962768654356761060881823779822273778155610444787520466005775068624348731668889451448872042367675380157747821760657391827202386422124350411795792714202932708364611096859018067053553516438273842097429010418621996391744923741756289803942553835555881890671281293245673375965848921706791659560404084526222480662600525179206842865070271639960685339525564958378604543192462922280701798145268680118786440955266680624314830619949314282466808032048566542606276383144134763469150159808429336277462195920490535342694540561234700130461635130170091614055300446381653097920682455790786798994716383160781129182135992053212035327318083059234325560031389062553106112371476098660857610201181252629848327093276803809903196884855155752192342201025776889710607586588529395841284377287843532830951167881398657673841396898279596876827108223252600993295696518589549683950684104949730472841919220340259542727319864267158301894954323247704563047130884430469511548787417956421765691045943729314001952202148760430809847015412925322608492115589898524115556071268416394593217248169030329609139137995676316424881267843725477220714244011959989497280722901763072438436507281883947183678064650756812182368683295685604034671517470505623789929086675623730817863955164864930297515345952120711722090863260007529828735422438588624566143844057272739680055710766721431654712431838324881209718999060445662880100663275389396003878133609777900951322533020577909015785103091918111815501895170944506926646871342108394216858425752376302235341850143275958112265310754031574664343553753292015464492545634812596328165876306942026883112657271240621252797643912107921137484973402128644660973480285960578691935064672739962200105060427208807361867279902988313304888521204828001712073033635054399954380920162009197258612345224880699065440109974037667117811912942900345278902915514897175004613390926639040120015970279505434571078694342348771317521539342456761989286998916462157440665966002935432921305427295685047529419127645891622848252956314169759910965092071762044784754717501691852188350852055084194096596491194628038939859211691885492434065858467469738881185140137270161751890925060470531103765680445097332725147736035274629299777660342105336086629604951224493881303242904081747253459168405394771116082046580857331127848901710584797137635924317118764924979331283777117052908960033749896095539597186070325619570045967531974604859467141467677864487952512054391604589973143852649228504030773735358287776150130799136000191849038494595216605809687144268041841011424321464661154027254156467724009606126527836980704816825971004967332650094757917396182985992546630062695598708111148179699603295691568644030111968755077316483097531747392529314656158505940954945861392367647919241762566032803881187634716651101477233219488460071795200243987552030311644448327204518785200061435481378306785182212466859788305814179598620618491240374699602123442733460968720591296771454817727867069004287769774334408205338631084739881037255107850629327730293391528996129844027654450486890883454567357260024753721930560146336577659486090061744337104246782827509905483942006425686269676989706503142662550572503201909197232369098858518672630389135116461539810642009808793601798662783536337350120367860614603725346348045081773861647323972672361756221654265444378508641550326974645372135730095970809923441092334200413438453529803095301653643461625438531328147290579365513644069092221746243150308918171715811115399918710130948448176781724566705070581525784698747672615046690887738264444811522145521994299722207197065499212392909201387406909791044601033170332684153889010815009729478963551437010215662371312841607023825406529478100657121154747995182079398641627740711262342815166949633072127378231240799138354219525730953605198484975517971177249356936221699905161047021866421090723423518721492396617092976525193748155522454052269601073566675617406882284583232312987895915338119583225814950083991390922027206430639835336198356439535524078864134344131352551921146621731855067429629841597143732669950586096372660006015825386669835268386777759509624628238911158271637775983008296475872983407175546886132137970484331743492277646870505668349071487460075605196239906575087448934193729447727307704951683954016075748199300855121000178420475468222819169223450424805732345006593493523098079485537247077069197039123803873249187034714685068923880060331387849854063408926546699684939867431384225333958028669096295343051001160333097227098334481654059281322491140001816129829937800515466538761754809672915812354261221500164948594878120380863278398786482960753677902056657779014684202868982466820374617437019831289798353148546513533042085375096552646985265430703861508512636665814484036839817275835370853277878416743623765086904261101766475063510658953212212066431722057072008321398809947881749584789967312601831989473965776021854955031141149269909074922854824957267041179745106067602752590629938577806257169108847827634413027805827823315366807770642622354104619435314180668810085174497556346506230692557232236701789763261311468572136627134673118709271533664811103035905981329827237032784049492717126408415229017180768613370926471688926636299221888848211988913067410656357976891017161280056211683404366812587290107494588759118360994235198135747551049381332041709018185741635612019611506938462907501711251439501707249337215231379321881594405377735893551793306254699005289452612647771746842731020358200049250952241582984089832160912846481979759734993342981628065398723573870577796170993914692884984983303269303093694956140699446883346022148279556590270956793784702190425462702303766614670243772323844922976375527581680672187948925472452745143090708158512770581320789871544277308741757610247708066756571177426211084730981490445526450929403895524510906558716136335160161445285822859497018106064412558042700439439767520715232064778136129526725102302251830071008062707288980871896486509990614832384626331215714708629915669097484780645816771292027576503331062513401927472518013185858204069745700956343658628917949704540719969844918939354228771276338015351689610414979120072641582007804908659993504459203441872443166472846856113144228354237584017559929017954485606017541031689263637555169459470935096737523161684060190384356784870435681977661444648030674100443166663815258084859414283222932389519202535002243501035433309023694192045639672326702011395709117000122985501070879715607953623586833915596200701969914952384594336554835948108687897442734851941615080170371419234417074826058528174803574091147622171004699583495133453472320487688755418043877568745707893730290467771775362874908606424602786251169040696639899523495571126089978879997902705926889028434312812313686109928190434988069228317943521078690435083536122550992900019775173267651894900447982917242890312121532895457773456660223114610442376536878244006215586245633510974037622783230813900742203059361034888117692808130543644802412069153237834056647408056659920103550946315482902202718148274684647073956538417893734358493232821957597257216336288431361732591794957407021796852157436932847033959187932743574155550343541945604332206776256325749157607769604420640820673937611698978916385728063990116464771378861449873371226097098816074092773739045250478174713217619769343738958477747559494871208390468742262918623028988783136846913904020825196135978206728424221662839529818114051183090213163305987375590001527767359842552464596805936074952036783955109003452504371809353514343431630494113026608815151941313929272986888141310560924598978143129219429684368946230472711370532980260990195825396186931615572367836152914720973503734556534464377471182544313466620681397213945603599336467153800547674493150705839988668270411792593516078941554242832039288897524120783612242572622870730290555274070068597365825590330518767654657079996724176809667805490937208990171259561545834650624885417426450152004560347455759623959170386964198321752597070617842567018807444756803585801935504299293024199633723772787118934581663166072933071214181957306565895935292353292659372271807660917768490422447874327829663143186241533187995349495778281770103610859734072960179625690734271791341054781035367180806546689578354920396438532795362005429549330038079208582092231158895260621113721394826500813059264562114725983487632056480851294240525624248559171601060512127699480804997805804290692127725906298831952531702609884574496879565485022227818032876509837664594966898160430197370585443965731978845242393828589955224705335845292726640783548341774182702182003080095184614519937866439158481291145449319707019993545505805291241435010777962148770256007603382046849422304643172521161049516539411708374620277743227759229967410156154912247985418224678291300649828599186470141695524619731237106259558509100355904323139785450599232885523747528918867523442952198760036606950806424770938250237285393478365331391256431104695121717563744666686095534295116135635001173974875858942472519682316235128177783976329084880632307573062868631282527415037599333201357837225810106304563677515822363416753382146768880424468815300694224741680392275120245561167128995105396617886918925437312087805425964007108996649097588911761590419289557197192119547776153256796440643373682820364704562822529654420549172785930271625309075333632138899306308649441634396913242561976363222281223239513454200251456809575641758001418070796178909356378710861296643866219554323034787274213360041931233135201838640868286457535664223542286588178539579217563558604197277132006990151864635403727606230235165719480943633002120360321738477458612188105208252972521436241275687631744443211601857102314243860658577300891704721229897189437491856087435088913296138722687076983342855406278331820167228348937782246392604446297469528998990403891593108599256726502463536870668091424438558364419241242197680765043620355020100619871256614650049120399299347086856432191880488928518692999671579677916563967305066495606260020167763408347939083017058710907959920477468662865417714762876265674155794697081681727486790563909683552920668490237892304267913933697221900521024194253100051722448628194976638832579690381251640433955920348975798733393262491493826224684919509321745641753988689188929838152616347082309779564403072612935864967259278047141209929127117788090616304192164163689272732138678856555908789848845863776195461910027476189825008341733685494318617483587694698671781360820935041405904735847027754582921743041579761324627715929656011570801000153131717290426119361965043541276649467311561572609972649518843448070827128663027348936268932651153358335748488449293495182247299594514146196016594049176714092415023739875122165663470047308461286307787449511159243465412582629747935561650475098393425443832609798208038659571781774986678828168878535873028212784540774048317657041563875471302931886358461483118649122350530994568922514000387672293867215367428687364466260249062369489245644593124362165533093799805799621317807072505805574273292302036444696550767939129762484163515057809438505836505312092564469616259758826609734736138010929582154951552957619272847722307535028132186214720283445441152504919141871108727205082268372095503239387400892325213864430676338876870799656931085098245856468678599613449692961450960897103239288765137186606791369396124608550512490527822181335030609894079217976126426287081959269366349822959819189705868392914609623352271744053011156555762659308431518127637196206793433691947890603729643661799142849878735652383981761926679786753788573907667592975228413407952991210941013193901821393036019498646565160412002923593688204107925807908673669369016321964997344308717522964165271321352482217020205662938437995315245129613371138568433828590924729199280003607436823084605744575433356878646318001213399427073153129980551847995193555274116743238764991920646264163354711155881255183689625098525053457665429380779722495476337595855779911295965705198421303692923744798500929595897615886050615943870397816315310760261866891472025475351339021141989822271234186457523430144367445570128802846284274477255216639628693809591891202546497333566274020228588984730550930150066092686541592563751227263976849150803286039927488132788308615885500505128684343594372818520385174132634545454871992605279435916614521231526445175783992437772483791197779332798479562562137378036946525821362162685531579855178662223912691407944533716075493498048949450837769396207555174041487091516139220745382195191175408947292124504938336323951226660375495489533389009431049773437063856627160178650391830243292729311001432269138015024883843304803053453404268537375107405252072617351563885317584391354965877578675107149191366970341655373776371766138969968151792937354365514425620401768094229647535122952981754348325146042416645457010077996713215339673503591731398194276020520630023270259788681021326193968763961570565590263010219802559633677002798545719641604583162431832409988685931531794783349355143004000419663364653425501653101873610834121079763660040845963009726395796827535269624981742111153004524776167260976804211507175629916181800988809309345138864699074150312255609446576176367585407716828039737939964859342393671468542262450638346455816397306284474657582851651569322888370049257309770604231431110461603503688145854001000744914083760918740509397183106297175828445839253836796359858883367837247537965339767703310813556033115091284959400282460168899690592126208101616151331524189769700619840251182385787398529302752715164897876326227709623674146717728135531979211698898649518139648150425226894420813533972300409867490875032200626820440889408976581485307016656305037944147277969976978378437360504709213775512042908702895787372143407934172446234613314265000304353381318958503527420235916220181756581246332120336839442237686103173640643388821404677272998874694358473932538800591608012050879322073885695029650602251856560017841003879857388362296984269313321229437127401397164582108033482380285426788644091760265049099325572462263885000689066091228977573633027228653843932879637688044360488500769095630746133540141701128293645098034413252388369255509226534613722698318538812038408996315176211498307142611208200058769217836659869357631705196568450216296340956257278410222181843443911612501972508530533813745586968222950753072069347647303935443324817160492873967592113154436229810247146888860355281960313473483944800853857046814083425047532800501635746925761955835289716181663757628096998675405945717685790495498431522777041780955246138542031174009626792535456844364171678383070230416565276811469615560179045958827112035352993691714059543859282166881685524485045813751263971977422013725777014888009084332690792645052411668929283603452029401227802047351027774948494094633869383993171660087317332240025556351558537013835867495241327908292119708433058313634719348006334826039207171033141777715228695394421919977625807474406799302994972698020013741361300725674137083176001701561297821888773230120435949422098045782949923784589366008149898729197296280339592288893577683015687256643540401422063921071750426440947176942328375440192098026796547410263877840544483427944557823166548213399366125663076143401695853228668969048529753474137746543058399205168183114099185395142185606188015378833515049535699294848324071343276224663754394856428329667117734771448769673687118552049843006016060012009189993593589374588901172741905305819541352178890473355777843285293220733215086525152547310117076467248954642456559899618312937411676668182800560012189987237280993135894607412594072839168318409156541937664430324104147465178035967353628139948563512353281808765038408040854050013150446933156796010362162897951779793207063216210666325016632865359762123424528745576642185321015921022460586186602527354771723758965020612752583392733026196716918657422268246043963634212912548497683144171815130175169351629298966974004496081756342927413663622441610483453163588349563325205597603919579407804915247085722378883714789923094591427173931555755705242055941286080264515657865890214535404706920398859785319841283733136877952996697618308458601954076602061586438820499337274669612085285317469036036507155503035395618554370512331133366752704849184526087529962934138830227833489703300469653590039096209848461107904044745051072842171678589498002217118100128671916696617674838407422486939140877912164826529496121782395029698061364770665607540620702057324249366755090433790527903521957139010934656436367110864439903643915808230148886411921796344153862081599951755499352783607847533655222399600379396613867084463239178997628000964877658138980036165581522956825308720689661283784617806982708529016518910640804607307563142500556047853725769473746087928856588189573595388847515847445519084438896865971989514980181608128989806260200118739131331736794713092569050182082856442063050952716144940647712798838889882846149449863855899789501624657781471349675201710050628994631146719287825569388004235630361510957489324721121454812934767751029725967281180873902196580503737142405963454637568461750031978518390118024281131208386654002813008894889780993597366991051353623241668715039813761027261257391535628689222922728029039824951605086369870345188897532941415414730130989574298852318516723292969834732899594550548429262783694813001165971751373449164130771678711681662087026734799899233934430378117865668142942527742294664851533360338748196489581894640351033461741828372140383035181184043554295117690915129665217989432235225621688676781774529811711103456773051859490021232921773712701047888406483600881362228984949660046635848633926318727726246129470155066910352024757155062306169329522066984603989064147815511565251724030021019384728628073813219855113863415426431499725665452000059583108504909575616592743491037633429071365347481724626176459216552040854039443459218801601728150639613945898219773086686537830641935728498031273521765142958096843138114860934969216822229906933579611609737229306442604344632742772060909249922493892750873991288553096959544289324842807479971890334760221185946385216832886528059064559821142542063285412306242238765370950480607474407236335619706406230303019678808307548378365544446853985278100039600129404448417795478855460932690381233383185335547554725816048153140138068853503119473960303932109567874385040127000108461385885667769026665944774323740972689283885808498281632401911636478849826297116240544778065524144146526384225536148012870283276271423005159992613627522533885775935647708563551454709786639172685632873896047153129849988409866172272091259415716680918892241648154944310085663504874940970253075531015362938144904933246855065828787673779246619920992381614037029032480029314255822081901198015745709290830838722559070166022190174755467510961218973162613204735263683393072796136507584996078328843632275992025711078220624712588047117534847399706195399896558527200311337358007007564007727818362722701522526927520176758326230190027319244238667396617629366503653792201505824766904433679766025524642927218296572469349983563462417349000402920080747980657483471274920367776553048973684242480030534814033367075008924202925292920173111636021040986438009835705075533129272057309989776386329335897118454486214238933075230825965826084019298861029342477603091082841101944217246310055095455893628482173615187918079077217642869853147662548792354381591102436853508736273676765269597190274014864326663641886290171502464159324763288085368232972871616670615833882225064319358282867391984433570655764028375145929203849350803819149242560017210566222506837694267410734700351354428666678297081199330259898459314138694849761887150664789895280308733875742229259605112749167908101386732876359870064825224382002594117910361548137987947272604038662383522046430794608909319624205636181694415232194517526721524217630069069311369571592972351122361600667557711891289677915248851186461946270892486963164736575925175957696705828720686542338640392676321794667979428857369254947569917174717594693894782131543027153782034285481021421953144349405419674539635102309109073325236713970683704714039454914473746406536221636170812420572446099243868882672471492584969324743075459545122962103880936446275154010276720150763932602862604732785384130800999406236496779317780895027920340627569049788879884365780602889171444582773692314955666768297824439382043930778695610178124249838936143517231617796201007488441455202979420856730529368179276984804379587266346313769025900505811719562902797904082540908708501162346211544152235903924376306810117960873225001261716293465761021849782666930018403031150461744789268538475635610586170940666624997081770651275267986531210596890442001603366542566014020409758513708676556687357327376618406992906094881222681893286819675330293516266075916412334517958364028682071517067415756115105767342573906075710432144725132909197404597628471434216220951825262193239048072952478733469670225539299978937851675061750563684984355224903321837039072654122840708515504356594755034783769931603602558921091200087329647376299845918312478735830721497381818241432583652530223608660643462795658557764792920078591518985525176249394008339404029684867112662321633324656898972578525899138056598117311322997871799197653842087748679431965731305389356142315852757218977221621199028457408894449326455655426028843828013937751494076847303029054996835283068210548869121789292862772215488025902073824041149541274722604066703730594995087741518887759441490125559454934603509835652827968388710019835102181663454459303215787871240603983828399955169927898803329168512403861183325967964196657885533963280435827150860368844547526058971158551333162820751396042149294378987815180004025806282622082627168513083192740433460048996062088420206883886812357856358425822696053937877638331431410531540930106335197402123216987603272911970565365009724827707618814576483399948047016458397109810125741499783242926105608667665736295594037396932036132036604011053482500784923390602018884931058712429281036879610796360302581172210239896697876986186424593821469402078216363059275700483676470903170997505699916849158380524900934460683048774960888166675967121328885927132299107452666589776227037487383590117986129191373912869580151619700922510656827684306204878078636281989380810123229023275514237919589305824668489111520897704960084254714321321284260783272295254746362420047593256030624335915441441943250094247518024889189054792162174741786899080653910787246356358394586039161839729364879778211506519165540753773500138655696533757465081987607735339460701915746991883207349052136639931339647546897949662584434991487249420974147708802318418343244305931249175401646704670684418939251482763238381544844982414955255073107401594199733713943717432942158518689269035735993019426680381480214920256802774081271914399186735671812077850504307806598457370035276898469426106244051315974396609816584741833938934809705665786104052456119912965019145974047253611591554379413441437602072453462741056782240828320964915706133770362212449309754307243756958548615547779835042372211164854706384856509017689101444801744274304237829259656662843250312908943270789610597000752443852005969008176618338983605529845563814379331186481785241397988048846455893342514796961111475717224747499344200445917269797887180945492075548803790275348443935375178316196666895058932205797156495913225261906154991143669919426897242210298053632610496522326274630521087616123964524653061921589877456918625853729724711824639743208253025579597752407028538542974436830723275115817667864113720920296458369552108687292325688702529273050255843973110119687610460897957056741018132882025692763404613947916294236507896854486359249975439260088477058466210331086009686472835863522170465872164220797501802553213190732770869278308960499255317219881245376521615513081781849767436897595528851470969014351928301332258060900280469395226422971386765919806510649899941659928120428514183940092039701695475385914505865747195625099531146188549969679233866284504281391695213740939780461725463552552246148700918700760833402482646956929611908299427295093389986052464348779498373627321879995799096837143104663031270661767039908217787709806196756064588871575034672461152581024013150929706417423152274176436431095687855053018410815169790432555852546715398813411988714137980707553537603327713987805890961687499979079484746150829227150480213106882427093115365263333610356345973492370079460140418709087628625742166864358775243369428839602485673552966155204447864742343331973770741845100685919262876960908994999448508094082341727392012808885575326437776948793264172785387669668535443336032091191181849633952442207744858803149480433745120009878066985950125228092640194633284031047564130819321868744745285284884840043581049303844471096316506464747523226177445692947407344698662404328349466064941057097493787082268625914425008677240120086434962178246691911434140090092360492053059656588470085438217215450872746544271007552277439563084754331575556152066129300371820578636793098276974349943696901700162422331433350915534682186183185868308391153903819919883205380994292131225985386725153474341389234032745688725335415920281625804567554776751034824464742764230706120348472685762480959250275143680508830455714674336909517862113080403118375828075832683248663230095171781184737616252210435697488950265307339596682570487338434038902163149561570184695833090516148439413256012102023853832194099816473061772217593667513605557077593302486444323742196622649250369125433386306804488497383945953238598128178878657620657628392546112440810040031299918470128108017724686103260850970213211160708724464606077893783048080562160758773721227404522351941491126691998018744879625758774142585852907548663349062469716911185621546202427471314221502979847904731744430894734687513996806089331804830525899367163180277209435214166921601882799498069643879346456605300246298367717350650633273371703958650891568892969101912182398800981076977664589607909137054765573843799186119030148718247224244514211192214749620967669106579364174703144687007038757921459653116567966619113629321302719051601074275458369371424696622941938711827704413242818298329927023988348223243659443856606188146500663173039025532048499598540170510856496418942867658401204345216342697663368603206920694247326615726689857252330278845260106288510033775735897239624816263661690975420652667946932164890239646751930867703144551502375419409498243027686673187133455090952452785198711152159989818124103205635576308626437996592931649667978373386659112762278055545010220133250254813605571342003793077649937344169637221122672349401330306065155777196244701363024805343549997907666080235691113074749136828549328898419037456048478524650477735546394163369068237062671041345983668834862462367128268452933527325870661344532602548716451060221844840584899008856369449705908653498478239342939115902554839402432732892281837518333836997497468981050954529169469748188459745076818418702025138655961559464676253014230892497272901061002699752225473284802287368788279607663203102828785290351014379067218444533466901858284684923441948409829557773361531737696318806557908363333431017373527445121161097850948598486174875508401992994447572581571255859560564437697391583781635420347273813048439742251120393178721781472797413228469398459271472697293845817964260825156172723059057216494592366446190181642227268384518956075566507595040805314142972384167192398639545992717052487544975722081522861715417014745390463658080962816584910674033981427248315979182960880953119933238370597724141772126161179816064887577655374013018398047250769403517495237474655368332629873246624299704193204261457783826253887937315266785741228743074085856412669541276464970996364289888901918042261339646016160301177783534832425473012514873353234879139922681477670345529781175351385322146632221914095368492064092606616631832650480808936320986107617752076355504359393728252164766922362057267474133023820449457093973379060343430928765621144834025369725106760632001287637262153381216956905286673815040204603664085487236838668309288450876596743944610613179979516383961744251079442156299159058890603134977536377522528554617234975049659365822558707309560482625656246773451851440729862037884069722686267954388147348871177691250532234750409625795774728696073864413889216189761291941380501338338508435589117000030969670926315714969960154840037438999859131682921637986814764869717646573398103700636700942096731878156382121150275276316184284711363381045612467348252078522671924426362350528962005543664667904068925059550611077417578804543267055459965399350521416763136866843884879665675536180787967896358330297045312835197993928543448202352718942068055182690034346491995349360369840001211965955201760886756140301089480398258745091053263445093696333715526047509246466182609776362904819840563161593760872471265063798421820300221961001385291337937595174688741930397628101001808010745328374427948568468056781008087901690950057135104941662485840992674066101139917636271277277424996206863282172042287533690376968697993526542888183278993584118899811342474449011607720922951373770656704342246313816829284661685703866938840647960225590772032205536192890842071254701604881094770577198299352239825477860690353100951644868235302127939714546715543814467801983637997812240827893431527226730869347148940135432929933440338282687374961598467743345191773061088495084470771912592668305848383576063325575935773999346308367340345278035810097228879064736455551276755917057427502789597020003041695661060386598276954602575325563700768223940583753200656086108658605339576198628069944380401156428052092809916312975816790004211434121262123919108635577809454706812448870381504235583951595165472118049391765329257269431362835108274658544868576912474740163991587464695831343010115015855152066423199513796387173657974239710609809634930968544995818814444306602449233184762660919020843396041219141118612290361430051575801168450741357790789318068192054331852648051234576893001100339257742789797070987821508973328541582122094960348917632997138896762311019298025200483552326785970056013238935551003989467568946493727681232697630435595282489285042113467229126503655048480202646286279924391979068805419865789785606050505101835780413129839457573461269936055853798450574024257673876745871882637857257601731868439244631309158640299024761861805179329162153459388132435249902494764646761805388220174756880750451428070002102873930323578291527179306993860391221054218804152011910972828815922976679883025101207737529912113360534784877484162375379251525370767620185996769814654980339277598977194977322896384277686538332053868148232215089503988727116585892428060283527894199445169082625938842612378175430926690845176005911868217363083538064914021220608835371678981552458109790470906006847590065360807750918880391616418660113317438891914309092468446766305583031040140136856743956819577062772333895385566534457396211724523868333424572129104461396701381250837961611124095723287377592473562767645858781408794029470848266732319938279914012732627343762317455058041804384984125921302089327535786786340984409385244849173750143477201248246492405886781682826096625771966236260504306652861904565613155564623388199029176115762522241014880436484996980866218296167312646770715663115521900520973003053998434028633071379656255509546042289050446600591961812063820368599713526506316893163507044717569334178352509493650624955182243563365332554008909115527640142782912021974794710018448397273829144126325520159865693663483830221104142451359708193967872041986995132118376994636961611974215507445013680822313867290932469482134326611006108691984917350024948675442500091371717232393849041624589714086409787056332727683997961619953802649427298385965682051604574722927663214306650563460851756848475691288252705875287193849445197636825200748401195187541918094151912662864457471184989906924016319325315167982608345959141032580034517295783477211889931689722335534463069895133590968821512303638611443039756659282307577934532501114662277738903605629209921995430564755719470929938495556941525493126125580890986965433163712506890218645973681643001860075446773630768860956758448148967108564523182380910443932134110890924086945586421635143703671260205592307810813813641303294656524815300800904784000665008644090359258387449092812416502195361811358282060543449993095350323953213804813390198762037242120809114312593897218297492589991915269017804349954017902092076427917384136204077610337931060323138891478369124127012749568777604420540478666183179767864683963297831074740140908451832142485706188399985368267444254148269072430012265459744978667584960684350455655799541251150706497634879356911983550083535192929683905804804545406514006539354898264252095919800048911602780996818008632724845127224415329778913005540554483542818876251619163909241322693401653510344131614996869273808133936807163574790434382945007101095472435485687040828975931254399821268755974439270934261707602553593704575084189586728954619672324496272434722284594927242086348094446241928805036484562281224710401428636960503553609213310018311636011304791188688009724986380894966993456898620525389095270186882848631708826878570989708223921541577163457263451972467765316699644190809131298391605601579638889951794586183972711401855482350244803866497465927435849116530323719108593540245858919812484662676550799029618379379002758188806042799243875003821260818345305898599210747450141559364484615643358674537578278248787331514099372001867722404431228604713634922533950267281973785001493997686996493561788780134169376471088724480945070259480639251463751585842907200815230116109065423651799276799381545080376939389175915483976106621993253250639226434061284323221825551237798003620556070659669610008745919714296166307776315547914722180529695351706695572756939747508765775510645639152059839764230673835975513689732653830810239735635882887776308083135310352070619887385798169617994963570428845971210615074280885121857284578645626996294296203171604911226685253706190935356443773082381749114210452130700074426648655218575609164604721260006327291878970279795723655160562441541772638044234502642826874713124964032479966414390037921976303126484988245044927019340492725388690604340813756895744501155355454356658136920893294166019070659559575255346784489779885751097555368534306020771955492123283243636524489189460941810729126714604567405309273847674514894966482300211790885732842340571520819172506680464546809331633233552329713008169667858457928778243575056338999059514790980678556973802374253998883689919320461827994135636856428731855081500309684457754609644771282896923869335227902146540497647929582433562886826753116735399258012735894370654899286146335319118816613427485802061406463032144973051338939313631447373272805130217945263099085553686898528818832955693805638153779723188405021933916670480305503588050877683077581530339121337822508835685970148078276677222900956076709388889428377827079507673308462639885674516984923850607339728702504373744212264717823798565936291998588503316686113821073830979524958661710605725532493915285916720121452590251044553128839006284166872595745174571024453695899087833364747306576757112777911289234800742827584756618896070311295677136958040399831529541162884387234490247482848928436838950982598211023014269877922377863744368681811510981370138675964548729476577591944082772248754206900271331105929634541803833019949356405773580118905081254702760422092034093399608473303546197771318379991031363174572877162776994206993158266094018090015171379184913614806029955773844264811415166380126404579185030058563078838587536018943270724790642064883526326028988554485891765462034651600470097191794911336498743034275692351537550077101034839903790856709472587245650758864086385810019251635999161457499168164855108821055192462140907051804932633550457994611783995269811848314860857011097639096951048053757083197513667058534113400319469323075885139555543219310819817928964985089297043432004316438175367668044611117465601070515143922925500688924313158900085674810268425335695050496504669502959906234176541150382801953587179304355353782860582032615859463832680936288259350586226544283393063657980950083658785595758366203484590341716547811544717048589470323113464567325483406261077194464322769183225424791906668312596521854906606884375328048616165065217706605265048557957255853011182124884673137245597898853121116176217616328691935362865853193675036179618085720561412146507147389245023032839766240984033679176867784198190253811970239637576180199612810146870593032543826192057619862187480074401892998492923773912349660639641358830012109243452978742048766355797667220324366405890829351486763770075376963070107411880092657959165361650169259077392344382112775716815533350426283739648574349535242905246849787192516497751719229841545883679735530526000245510013461897227231583494507314618038350022742088842612921856519409569442354264285776183540045944658844275961833748474913933591998145330247119339069892085768323779321657990553665106198383246300792922386879131948207874320439266613813330500673232346909310215636786799834419988957630177234001104677889917236963397916932605849895982311568253396111354962221246052127328692934105946312698841249500047310450518400451949986694668048906543578658731765718823330200864354544405641993285453918789466064986142041618824963529834690140318441140345118070043523671696710059446221134118790743692013789976872790991548994485025990521005193436680691983968322533969991569519489725467629441587215935574592165470761121106348027646323503386970987849750619269156463060956129748745051248878597487581440241200481076260650586094389342415515133193358330666949484766415101741649498637866900618885663029394625152375267086031785382171050493788808465788077508934479783836695881616961054034079775314602168454190359510273376432078499066885951659127834247596704445323226051909854284995407444984213989609743171496130653953977243958054833774466302409879855828777340116883812786102553026909106673937369919358268321876631081052070042126169513375347906696159685762990718603223510550913622101426383894707896636599237115509206831924503624136734872150617339973002266545984174228650111552312294417059364239262072458558854668137042176329439950050619392153750239663724176494431050798077828282452474753610226007224444885364541748172980971312426161849995837585064210157116076677986771575448196929271244418686168372393398629997036263431639429565533580703028469857098188181330700433579062592011496836251877143539259686220656439849302249986267936831508315073766141440531094622663387759478443393346478542302820146880747964896686233802275187343242848798965202464025259675453388780015952784933051700368007180069847172220867101120657855787679363194113159265481489260570122832604774982870384456810834535630584091167206282277626973835893444694006062993923220279576430141768238848104390880345893320566587326349223774405519485768754376450954907319109025384045905937076505257476250864986945601622650035165614062929398067444116365923595153883625671674450980749590729832152142894046022996147333395562635931500635741039138920401960465747138520769580058591002954320500366511653295685871538905265560799994272125708202496382087526930468924281768922921286366098721940817693108097486199615129145410766739227503082007010396939097599415024561858461447936226043733895417213343837737872786527339216763050574793193417531447069691779579468344836606975010923408960178316298406607080594179200257956814648527949691524603668415241204794901248796244470846035259924827589462278695021256611756592081748505844505459573812478695543671433835016755492506943035041836262145021673047691163810350371985003361217022270498847826533111418516192091832890932089472637877475667154806404479177751275896561954098573694973642238468834153407348838770179582667301171880278392782660483398806029171312319987616490376035759611929955879481627707841311963015157359646306771266713011013916634289920433569209844668973440892212739903055690446467744792244673953255290452487780898491905193133137110695229101204036996515463286217857613929972004280773567744565559198360023170286566919974329596945757123810688316764050613027056833779876759332810366922455971156865386238983595918785283283246800286431467971060463399500487649293608878848623097831247910373054238557222798696381908203470076992002414256366294935494700605480012222461749264703854330164223301152070893608497414429125260403686335403484243161838633967086090989592028007141901983595382291523691810837968303279467512216559479859779896397882762477645365962561323343630653145164321847122215211842795932187746625343477776659190042448369494958078642404233446555400028582138515443947550656754730162440428675586395561534867506724525116552774052984941891214592830837716313721372066706499612790835898119003455020021217541582437397839467416750830044741216343611630812749057009485126753968004039039578904305178002028478176322476446630991544451298988093400086015281041179138331239300804865302824745037189198941132511302681828609098158636361978514280658408212259619551685245995528656447290271865245266315110691565661458770755588818306163929986210572259815946377526119860617563900286561699386349376844962747439315904253769045039178926548010728858732138094585269568281297578394274559287046470841899855539314806907389346470248727766764348968873139353273134247990899223041103822104685308969422893869072465288592553982028374898449453541186824955666116303372247172567045323747136124684138741484935286426161848033073525780313129212077696423957115059817175473044393099385125750938970977548009530903922682608281029906651625025385219520117270366991313901859284310099465013602352863878416198722981346975586020852871679039276807430460156903721575358733014713851255490431470289338306448846483290030558584020177802501482879470186943315538982551992499978036478699710346744999532660001472489100117794905955151385710962649863650563915179753034964521792074462609499870250143560603558897476391128801728151298938631398371679021270539037026180707022874458859289583429739848414830432438132221950575767798325863487429118786374568201152239647761606469327127314203757769241050178516211304786370987249083167466082129241996312961286277328174067120557249029489023579694385442781325474066707259192785697283117257207006475177470577764691777462243576105957977831978682250347048143887729493640643617462226364933400456507221154475230234098037373278152018535116239044709674052354675289433205182585001311260065902112444769930763724612030748110785320469272522794626929492582975484111764339881877741413237732183297991716998890620325546973731108505487886235816984679247457719081623109521190521575769917458637663639489204865002091452148809501078968786496838042968444383487224818850562147683035364527330743351801928819755575128289897805623224654647215671350912694562214807961389564681001709022815757733512311883142747574931250747278643912169475407468078468373558566355706444779374072645398875995304682172164341905159727316048039433250107550042998214005755369421109704195995902963222075181592370929236292759474251387249476631976591145510201084335741953602763070766807250631338433364758277191753133846773831945714617314145815880713871573200185062043577884256958004713784119723896655772154350690326353885727738859718767635875469900083871025991271184222974675079116610661326643037612322554987076075532366807966260650206807606707128454239766328407778358591110389719249770314400114473241041897558241732816635105527328109752348271009709333791138612093393263316684278794777941023482232656894529053492477489091481830379758358778502002576896406687991271247614164711205320274710554614155741104002566662402841269268408202132669809376291672789351581664060802250842557514916859547728478623730838342824815230175220060794783663026031618405615851123627314022601550169940432422138350356436251568553217425354658484514160641608581822474020499907169649439300937789168252050949860219453777807280202331140901126631621928169056341436529581501104119354318668432751796431852281253119835458303133965454394989014049063351632899787555519185981887923357776306392478062893847733745999195012097276756079186013056758478531465995704106300261383499226203142260812724728480718171257717985869895841495683459415116648797544482255363905583792100733328003223105213405783985558040062072829028848495496774977865301315504299570564536341901656226021215544336826860565441697878966501215859494944668508550865398416509413932349313303435773765877740584956860662360352971751453300857111859969976100652302122220017295936578777476128223515071357548415530184207892416360963587264990948876692417468677718533031304480389208899240960884358881224244141305956656307087071581564506773049279997147701383219324530665557424215215892561878030164561832980995866929731892885363170588018008917486322253549121447963062535007508971632700840708227436949724438024748088288102174765336592690461504938858146983520041515469950086095360284423344989850103735351469953415356371607174614465518099072422096821595620580466172167209764088275150018815036416664005176405227788921735015708819138550805079263330474326887221975459370124660188266576361389688086802168344423477502384250672086507419988917966310860157576200068203200485839443034307239132563567332270669985937571756295543753348076431440079179223931804056641832611827013487771850062843872696087486027984845593363318472224807918407977990340823952966132563555149940903371831519030050676075809492535756488233813733940605497599609000656406205472637495034655110130822315987480735449219373916103600881158995062555592396094394178960869661712331558232527076947532394114844093369128433513077318870971310531422652210672179290653660804594149760194135873613809284725943516849260127300230636415550532135504606016627017867393654203358120863601183563525660808249625850927197702038024485076981533421542294443904424491604463556105475989290003217407476824158510449210028930181456012178815598654237391226955495020752991533440510094379568519015007362855359170625211733827640921673963523111894986899378775236846833365986662447666398733906596470671102753600117680015791180718164014215067095426398149168003029917645007818177898070903824874217499867683443515639947197314340533605054524303312495705073278613128638641875292590514099266257316120639525731071830964547057362703320986504406293390663158285659607833171336014505431304401818179078601413636723157506575210931854673982646827517764838462628764754417375783833621088936778843948017699833534227404950017877159756552161531131266605368516061192930391053632618391656777759007077774994613479238408385273778545789697961018552844115205479813410661399612894950946917553229992371788932070228756193208693832463777788647110673346075358728070290550447351686492130279549021542552380617995661377811802428019989768645474323951253637207151363578497621712829190558060153324711145788566811109805340614791264718873084706145668451622404177767967222952388944315073302457796062553447058867658643574621335764272174586395131245409769791487066317245429620702776371710496307799564251922529631130619746041650746775153735652270782419607511874226940847009426364178196355064002124001559074632578193892666036527809448841767914572410575818931739805536457717132402508658968428464787138842853259735032354687092532752237382078250845284253613482020021154012952344069377877680544654511754407374647720390059777459384408516618619739365687561392641677907616873904932605912339030550347113491740380875608305010792123945087992602626247002639010169924558539085005357481063792730114557964938261367673707154709507407106662854848083532088995271711672511973254450752139657954095974641797188396005390122711217104753916102420464401535117607817609927595848184613824883698724392969915746841970641289121373043074176311142017081570386917432995066200867023061983821326097438468042892658935883529777303810428532295121469642233779122545964913083214192486502840032970972266682976831091740118531986343617783150729239397857934732454147559270662692414388090191537201629608893532077235732029900312694845124370829348161473753377027768131900350025311460585521257677909141622819939391610963089300145690819888732539735175145181346130137868677150801153632554260193134553675352704368680906843301880473040314000681760089182478122001151553374183957607683928939354991381226641192308322029968597801540749666751412316246050248864976437171100088244067736078578567922162146509589407173332851411555912773875393402643255901650942459665369312449510406078417287536080309716152084313622087991988981498226524967237004846534355678228474889800112204273480427142561881678932480792539528596778933942456447816403989019407637162094247178151331759885333145609995150644090705646956646444985064407899624984907887443195764250973615228578891888611773159558857474992730800112770424266282761642631632245645348651670275377495085034528661703383961442490613777960636880995494297267166623863605219620661857434617822864403046063104090926343425919172021639632640443048056526443442788400447688020317747438123417201373533535310304264269553274361170989847447142164019171452756358281509857918705893081016724061960423273253325787077980591515462498635634344589932914838291412001984341420920976740645748136023021454572398645603433916700908565032896724451741131400671263566250659368539448488411385583588344986320683040481772646929096364998494726487058018318545277986601131047543965599216716745411460458404724750503695398214929399408092214866105392363285916570692736352600750838334665989192762935497055264025156614971603008885068437143761193220006518105241751093101420379801796188975716504281026367280587713444130517941922394877983370524682628654155035298268120161433320519345644466574133129073169146606227517300392809748774440186275497057473934764138382048739524572821299443777996674517318961704369771670300702609597948521989599696765916227005608627533887558796959308089148333649986863925035964799233803400810002202382794453231767752886400468343514462940184441817220878543495037774918324608165790261053860217503887624152613414625194123258026502933698542749659850125944143668800364265635132178382833927511584887660680185909048589277914011567214327512070358324477036196140441547563128579046328462870675207392333458465405806447094788024241635192028684422228034243344161551421204021846592994942005270238079842924047865000148511709282905075212279914086424775491892174067812429839523167772599364109701988348380591123476583030218951520246162485740542427192002531250313073164552396843727224902104196784864535389809401191129134310931409684538027587686010524070752188855025459599871171424102150570337422957092516579979310828457287810067687186173828393894829401581151225955359886726110507002685780470093225276974494992803464636816697384182909789146482026143949862496763509383601283878856989488950088851245838017716711225204671670350153454792893862761026254341243882843963809910651745485701690640552833781434796265510969633659249038264131256667146759972959560868395108174551776868991031733191183978219692314002360999497634517548446967205204125680724747734639900006449281241354616036549661440589382776335133181478609488098701965718540256366943072089711317263426593010067473810330641069697119014486676756139775939171046271579317203380085072648166619975715901850265572358527962232038631458511108002761803556708682057212674727304530545483067527929544311650698400772040610685626012328252372574598587302627457932025355186059031779201017830835817180032776970371525641639683655666366063272386388879690033858054770007550587287266153124356326787590040455256614065844636765692747812097529779061454701090627321350615628122390309406720781302589614194604182754176113705885656452402075234190882992454880185760978022860625324510818185049368991238817210534616424182980887254848264292230185622741259309698470089692950866557113251830914947518925952838576143630780948385802509442656015235934467288086535538318742459119941806962212885896993432129089135591156557966753095331795593238616533197605525100570107727109931050966746114650625580548520955145756151893755369650885869210717489240843604889009153480788602012385987538339256069431269497069143791929265206509059225105341276786693835536102006743139688767771479542626121842010455011853604895567990758449048588778166355332656429312114088123139985909950281724095981189911359779534402703682519299423856811505457620193951849861687649783209836902626019292173674273329737377726966997938714334296454898782383668097794456882467505403860222694892446537785146618536849828306936660762304032987452234691037934373229471411009909645186351335223998246732842910694196577793952599256619781199409326628301680129460507676350484699985109667818997548069981072105168120931845548512019193643668214834407906820913161420631190263818989030745048241103478059271004993529916809231740767537384366432512362641083379035925738671580789746989072952949440861959893685481301494851230482236270282045246339688509816700880838676259035744286870680115891605590604646310088731269260369048102113654843993011917909648916073943486929053254735009656928615642687845442364617896017292075692740299042555178509389440477638469886267690766715634134390248871991299728819680493995441548178207553896858757237911157298902287574690127399620157660472435726333449098087423702178391713122405241441365430716132842964793595004917210556723113538992713236369429751006086269358047970506422837998147239897946863917485498811845842575185969249211150733716725598804454299200578743541130403233379225901696750030987576113575022665902427468152427957839331060314682518001734429460841574227324340546835669547712777854886451149479803487932916163212923836977978224835891529873623529768676500669796889736259648020088460160032357045077503968335594542663093642444716683720759262604488815997941605663940076872090427830026501932647888679225414938458845494439002114296581969662784689635727137235057517817860256445212580824606190147928482570652702099655235442867294711054240827949750648950400608356067071158348128613068851483855991769504637765582354493316416669615952123560238433059866624487423386525747748090428459204911920436852281424730058061399242666707083489628126514573123182162826835169935313425147822194462605455835616411740612996500757798802838560409673036238239583020551221571065728196622985752939114439014332886980381484271650765472059097310998346507078394219986789851128618179142358217659822763512218884060104606242654859807608276053867071322894723211922050228066745699641365242567297569300135149120108062426987259006220832297922402783211692892946589524522271668013610152428277217884558850091474080145805179075902034051719286676353606249116453659451275579691328670361221139062149096456517894302370936582094984044139233392927570639998353014995909448489298050791744347146459387116178578999234766704752495070449820903370774995159237477897328088243393715913631685071871719439849143988834561298796611704639736127923829559371168398217558976379282911737340314457880705922239597258305814365473719277152068396719740575229053147643821317411098125952205898892836032294757511179696714148153575779775005381258630890269206828287717804122774491925000582419013867661376750259932450929814571012697793787729688813481354680310332684213606004682533819777499991522387127513554887237801605524337596419435640412780382645818743281702640238997987873524752617666218846610748375750641774632411698801239078111350321520779838707958563121250564469840687372787320318008682890494485847588478559536677528764129002676460734467137141152681516934449739674447971558292180950009231346256528883381442546959642488554763337109240479494251488643443326923470116209251105385741356833610815096836195922054243722174791536836056649493423418525666015302922609410457831491185320248480487737753366712447395721524553889270924544415168079455069507468924923784951567038781591704077382508605715846666833652211670238028836788215712438603354228351014827271179386188611953118437702647907793533150543256063843238910992260477057266461395483587556453357623651555028562236201561070523181612183296678187380670164727404051407587820552781551294648776585949153822065046908938276920959324057487838236344088243386403072755099174833298370075684029245758307008486033935276705909717685640833882363234261347841212298621387440580273062017970849399235191008988550033005620873618318625795016693221145978236081572256295404357287909777867544965043314851898880520016396379957132820715817067762443252409454029052647078829547539574772298992901777868424944052792388417433054320328781803561561889606734276921076167687658250939994891748334500712371776661354418641279721295362564636080677083732033391610606080427824050953530852532077879679081991249124506323258847880556833503862386122530671098807209382298062151689676198594082654935171672339868976778447351974004706624458139329423063804425452414386996117192145131068679000953478689057153133329386468348564470802803981476153857835743569189735280795701377535557777946131946493278516558263112174178825611821366500699405521658501285967159728401739938270801770364222363371015173408681809968688221024946869844126297771962020787729743350553249575699864731083399721910988225752194492674505939058602348197295925324737366590782111385212678352880811298569074054590670559611617406513702152970626726891260422292295505495217787865350116885467768115377349014103993716868219921653775899449954714416706519518227937509000328442018735282352012322869816019253801938261819649479369775434326869621998890825904225328914702600483171700919259934444866383688751496215197886393473274181942248051996413685831940600441370451990187683887146347263790664239827570597201508948661044382437683537501703638134007798986720396857574582578998979359882567458924260460848289432067371995576521972167149807536756162425859864273491499980890387953343371190752571237529456958420229466216075663186793194386955229230629737192076188994092987777185832033199595743045541431974127625110969779960264820860989095973052531813098410523117454447008748073954530967591560241855174466344934074762702891355570706974427498955156739037009630243109407333161526872118449266261024483863671895610288242411767717925104682913315626260562874943766034269128599539311386807411305555831051591048370859447229253436307542316256392816582236890928588890558124138171035653953127715907567690812600048579817491266101794280553644069405426337086296012702649215578722053345090812778840460756823490247535418686487456905344274315358483083003797823996145308519077164504128056302114543321506847117030958062979070404666565193584717161396065842071537215260164156475923432456033861273333009549000828610687846295253612812804938393284099982276870100777253206322487741472603958178057599782471564156245650550132616708472617226949325548245526485498726733521832058327629859500516715838352753993350579114015688068865585750567708492969979981246697117367937936456398779024143404950307917744164364657939455652542208648330287950886807522027376709432862206268403211075482877530457233171851204056843417590453494706819210654271477801675817819354094918115799303704826511285941067192247965181678135255917130378743958591384375427694292569853444375820253114233300689657326459009372687259991292189397149468830117424919413125985203363832286408497258316708073694663768633325135256956975134446750716209646953424416583400600312677595339847987554234478207665342086322693951524110659707355010773065152199857364147624355427989387370094930363884152668551527203311742461864177142805173772239102522293973207119309206966315597771909396508025919397332636134394150060127662410436923439310835412271902430208231928558969171444163294609674898349421156421257052636764966405653414550751129812931247968058234052856120857407032493023731742552386835628259549038588400486520589813901409378238216210695901039949832479795967169046677052505466061819023591580610276315759732023758546676767957990360401802674886383806223644193826414788482241366091994474503738973999556001827535042087842852595820862309580193421510062842397419255143242547820435288663074080843489667232000541736170342520038679136479995812898874766905638281553620360285750730599322957551745604706419547179181022239138550000118913262987171440951709165232858807052749347901232303609983731829234239738650919057464173649231148096504102556942471925130003588996379352655357412190037819364722425739230351957275960131503974432977362988153228800761642910050129492703189171966747453913955332549421692967955828182983629503938524142062925814664231347472267298535674958281687382773003307980165849204869728920921885398156500455524731318959622263554751059715905883611667568976996301072825988428123398043031031348313871333729558148029985697159045941059846271465246079969481840818880618356440212025747731947594068027475648095914046476017307301963672023589601134248502371859261770942331597686550944284318758720892432205082793107968602614520648884230856040983442449885075245677015799053877605057911173872625668388798262851787286280933347529536800006079687478627747021627816860846271247934219599624887305828823267815603108658001617261632022441440538276414386428673936612867828894973376467073375954315213365882247689541039980348391734520774119243702568270885772879943739210386535493604776928220628438428189226325866943075159574969187427487134087479945618803556591445082356319199125718992019845162117464168892625945478781206149647825486291529279950485070588290853779945176316829344130636369413654235072958939629635218128672619582002148716965573150568472230901663715395599812643933186825594719845041878347228257737979937594971430220532375186382328747661507405647772165451147239485628911077455345323578865096856496286258056243434234811254520615283222977094506823663604464839642274611233435376448167766238522820548025909182327151663738238188037268186062317482688871270348838287089231669201679966261877300586355039133227806332930771674717561246683041042298637031333639952984842159699112157910356397653468883283296375915927709529243524989030985458440030323354497411745004315137661423939485828634478642857928535482733037409830509265067976194319961216265980070500028481330221109436114210145202842028029783357427456326242265294884646466232013092084826192701844705751203463715259369722445849815878644461125162474461240664231298212416402221786086836468838501556907835529443928123421140017185340956425789080958923574819589531534702456460830237312156979319947399047984785488388773339332210157177854501612247199117676628198331569158524405174553807693038669325038793104823850154706278399928613251511836301988709676649774996003834880475336282589058996133300983043020224214646485430125630411826072284089945523342647589275428891270669000463490018046293041116680014011311458130905145465447042076456222545276444704797453843609723833896514731533213560704380939461295780980391453945694317711586819376480171295330801055784934151349094569670800680894650341937710818003538939514946523478489534187719937497490897140154887179326756167167347919930277920016549741172931576958284460272318888474355773060454014290856348450778776892013275960996240898865577951332375485587583743142895190711410484383183010190323382203556128085721157094426538524059806261160937176771820126682894561457933645493859720740019568722768873111100376024051879098077702525489516818288874237366778730310844218239050885374095586575348173031319250050655815882226017519272579449919675166172434746828201659176955024367077078921507205804608589176387141313640721860593735564398971126952788309806617722563600120641417713076299142696336005932939496032097087037199734758517653208793954817463567449306494433309264278541099666250820377842442890932291818195946923220222944872955432962223127848974714343295312232644853514293294884041959568459109612792074302120236200785430539584494431251862747960932730514025761844139115649160746198244750641234554489490239674663549442319763612058367649089499214212460190828603358582114013716914035241760361437990054941055189900747780564816377473550347286219285428866839760899046406932321822082464467375567521699878692692475561857939377796384241019716228063851712557252105344452292487562104475353509408904633833897435417675693328585776733121147666631806676943752676293195124937525568493254545618826425010740315356167297473437559085600239715955005248303227489714502463732498241217322941272807147490358033026232515130904356199075208415214994725782771543198586682429520805324661183245494874354174330938860959581851687660656932143947833376206401924811796916283975164011633805374244247159368246229046070287853678917125035785901188197872787458837359482464362827284757002227966162709545321599267078185365797601151686881299925937667778268971855829511851649134350837495098654159429402528614126158600696054658487048764535736556830733885554947044415699733577556072405831571766444066662179748209958136012564961805192530318144758472632170268004555485304207491072630552409375602531849034822337905082666474796303783226729428468935377943247191757381769426935988067547722070388157076483471735940755117212633354173344869324233738115107623763598856414536776431096681312019335049573126340567427166859610234367330351586553118564903090510446982885235272472884827534224487086811758544559968638800610180199273288414367917717734233377862880485440541679511996936364838076433147202343273889834894435990813118971454728154819429146448972030622205719597465584701629514370560464343842205707029808981141848722670566364663701139572650574873496223430797223785088470498255233157557078394320845348666141571785672890282086221835651988107649535252932866729539546214687788462898127536899830517653879834578685335704089236663023351844978199808940477918737002571947205539578089193456946042087454609655684342471115053617048137737697784445678440010568673159247708577054258327862922034047457300100803879016271364139022564166122444121319213643278726524498606531082560097810370948891554781810989734511731788060430800671454453151911231794717525366555521334132710326889078368330302718157200333232520392994224893884890020691488023970892368285812564709137478245982064979163165956460810532649244391266931505322889496048133149435660490868694241634745259224970859799749879318829692210052110190086023036306329446747108745102087545601318882710574722402603153162609331239844630655191503759861979130957908201740750016082055175462926863641295038211194505312115915118963824787311972480404052579292229335070345002726997304398359832782101945097684022403011880262395677817128268217891204346653714933948831178704091908633073361588100600823258731094561428526335819551658464928488433785526676864823016634971757083755959544293708519848037712442427089430705942479009979480262582730653799673880499294945059181993632515710623071268047297793070169740113030865805890101033860469222830113008047050651150013419338540415100604165060718229498992065856938888868321488434175995512082439566642075509227357345809528763353235959873176635107016065310612804654536302153915601905124412349443562006415854618558837158421890004207935138480999134068121849499189625117163185177754014611965809075041561598727829047349893616692404127209801451697748631788097388996256543187598740346078888555265670790138222796686869867933867292015010896092452099605991794725680477636311503219673973884229058396670666428826197630778253014900842132503575235771175546866165783820378132789496936207763401732439463216111065360578806482291772934530183763194829193842739645785366290285191940754531117034034674154060439931664530086551414019197189609822362961772248568579184988120080914270341020640057438369299562650285693834564393650516475455004828142062598783047661169809321965783394748322509215995887176093083409434053978584040847971266180311028673475845268635907692208335813191567274093727623208331252281139726694041703847248220619830655595423597301352551984505591623133892887608260241189538497951481996362899902983068308073361050580612197702051312273981549886079970542949854477183463115066470988982727504794265361401473631159264410856693196789887869217490877087464592377702614801973310365773922187815694727192330970466416623294844968859703500906261766069649603301356727027335559640886504079770894243547535822065031287152672593731858070909230001895466750412548120163778980691524676555642642515275639244636014353977144537556665705115294558683967406440753164986510479201560324536719995512897969704913622425889062128701666970160127406195922539483458363364610815704365589603844837293427506114319885575408960931027856086502102425302747509122133586758631241851294478775837418370029636804137693233033803495886697061633226095946759701209276764490358969128557261029771665957521792451550436045916239558819150672470975997944376095566447784381412573573320895075076972937468983130114738740538123182552700247411715552385379055411155883322923716780660347497619163977635218291855662040281905463841957151979124333600568685916641049335788528353020842145016029287538393860111356728642391116860796437352209776743105925240107749589954150197107689845237923030602026854918579325332214577034975699779419342562165101005047141583501747131846368747689574575747404208717228326945021954388314342793562458571275407521442947768953205024542682865569694352148930280523662491861066433668264253312706314903781544922439467904153003757085531272055167763180670254464477052187513502799241706405944564880555270002745372486243207265572058375676735738822415840045067689049295696042023915219781199133587293280928774076986471728453275992514420430142669918160639177985254459992626880020839260632177839273308471550946379740584443578090971518102018152813761383400580372921220684440204556047000021529292140142731223643650446029213352390537667865591548856497423831329490277816876873389104063526897879234631757111269760245962764758301835264464349123028641548724205023748251715335924451357244332350356811620385794710697970986351555218544431811997205215938432111522946885289732669687834578845980625847852866773326289364684053377664575134257570604464931545725168642093404699001719885368974472934997503321546660614960974408378974982508917740495377628710272945401461657623072421390296108340643868099537924592387928003985605038859771676254837312671562505731380878062653901734381776190622515790471943951527062389998031498078902169225399304131264640513341943243622550197513738176242298850242465966628736721294200263600755560919661978604023019543692036229650750709382837934214075653173098042806701227896076156237221264858119957040745720493800888764257524051932446592249415891239104292769055597234998980140479056497104199729637604905790700453253566222375983583369135928330319099764425353808794309480258376017784003226612267353452552364066484731746861822909479242036606190124627165620749825662626566052976082750983410863563740678040610663775319813764358742017006993047265486860989042883603348284500949841387653951200341998403518216280297491416518100469390248387085417794023558276116361355008345940018674617761717096460199689188754126857209068092180649219199962985431037614448058807839349396085284387175520191376459459439766898050268653064159980729839722363410930794708524506654569590431842326837291933403832490428691204566816280918264592167195862788271169955047473021716586329197571303037561959597575815470533643523496571056609371570718566563301116836785487861671957605163270777426568511878182124073342221018627216516695109829409821561851102810214590630888397383890302831891511645623660900957383454804425547083724911493536549333933328752052969045114741274925199635024680867527647827152504410017809533697239841427501384054063838237577873587809325795954688563192676031580753084352536589284341551810261983019981072300363310098414581017573092029684827391256150673648573152386068100162930147347227200946811672773422923562294451752557089556893917699745591949081729462412426991828632364538531141617370503765454434367795066283849426769927195302289739954769119671113858301387042876363906425329093793354469415195407770923730376648488420457408578127032967335550685448613151650592095172473763826683711088491016253542747350344754180266587495888629036828211814297760613483413259093176927051135073658094670204633747843824971846286940146421715994799607318951743028201776143182927971624502912525125272032211631764991007092248518568868313395506135848989771956497680909786166766858644292961124776683220173354164607168092598328306491603164875994489930219797041051941978032385430094344144874593220820453109570141210252137683946326051681925731526256639763073777629898877064839574510828519675729068346357878097499649277766344814085883645947841261751065609420956602796224008035742251667303653284387680273367369591692050789288518882952748399241280049884858985150662572420069261269118454184415480026058150348213583912717254426614717111844278957211037694458890020399325902000937734257495809360433847193870971797085110361736640770566093792749759536815959908003787331003320284350827254054346284636531816848294135827308739228010680855691506733999944872928410102085365013995800168929604016632607060013019831639148897005440427829384858020008218645437022976953287759314367880457132233503189717136742458318500930534932896861165679512104938505255672579581435196143845420135842666421801065797431781425640036297950001095500842333688784445066665122848752150282596014504659203966975444748851717938017138648514669430272454836615044396767723233533699204617851463323554851068730136659622551221472440798725583969169421718065291039657137399394675509908320199199402805299134217748666670447771788178812247218788080623648066512420750759354479674155808726115468056619234727857691555265011121382324540305482731653786569101652641590247632391077051176733200376368388964120303298917716098530244101116735544436220231234937321020006835039159666118773816751099658255243984885852049553391308734253481170585794721108744068974605659637874872527358868524413326843710893775003551532447224811377367293855879172149060568506607837483559126983653428573994317762730813173039770003013388456700353021630265647809696830465287540670751633439157255503657952982163352009834839928196888380681887343309500558638919811525304865317949172051144534187695094821223024782294689696536276699023766920316509403318632843145290198758056330386038837504282496432557341667559815457391895785642580548336388098944591478068497397916308854610539993007555491152165404204247911364156570931314144956801062259174824723387241237854483167022476834684802430169079976638211268640553540267866712952249366957921344910232781761264977445104567153754513271946742882190264385814922399538209601501473644925971328807789430280469707478732506875548834821735457858529518085543360951078507117111849488191687553126689863002243672347481958898043817042268247889401120800686198116133086565037186465187807579072485185197432040247578483631050307290242802298402870225669552675932401693611704841008862096090301193334566899659109158701011905082259635483697973210325300934631305093873021699103206187972534727296690272839263061472344336774898026816828962887924179955251189407049421888034599022196431843568313469091867577673222769919232729150348680408041344219966094988197529069860850191552666674162284279850224364179912828303157026113966770971938410670171250652183778746906583843916332330823960720201138975993573251330065792313325917634098277003966546648228322730848802617301706576171073874402248725052455119259213020961358896495290536110182253271424192238406516559557727501109925734010732518558395912481356217408594753848131365015929553102408803130641804908809309159646564996818327956701673693490324552744911629097111152438681546948026420043774576237317969823557454135349481602025610657133988145365113829468187025618007164479661689557903554965694796522258028734852570043734814102929889483277515373786432334973095256655197926079039563221115605236974134156462888379384263246820056321675556687378089525157467318012621590044258608529971917193163828455540785320376897773833420761646217938493626542504732686416422647915049121833156899354598912718758496659099305090062896538578797222865688064836621046030107870760165038033555867715582683752012323022278773547880226104069177770529254546563694315865769397500699417784330248541040130023260950499297037088441319877322206092893892135729313817775660443745844466549762749570897560301807189712301528997540482641443295668363281786022838351687229572414596999298355147538195370957593392149803252753187981308567597078807348274703600877759229891138551609535100411688698107079877852103135426013910087302649577052566720687483575285140340269066808524474787689532945267487846411704947221297058130397782352641876745699740258486052406836398305063624468194570386067744414094967667993487850249685052340596019614770431502542941449878178188465386332271369267607807791083996360495618549453177316643835900388443654635103792282482961925830335846632046694916791589206113145607520721546695907408635950060548764530859098532238168636562959355683775096552021583481632214202866339064444590905672870615478468654661542037710900240458059360083928266555916071329293171522787730042698848628495758295630026223047059203404487263104061525417706277269076289445134164333895787626570974233168739385342984154649493650191800845491949691686003533899772342283269554819433861924359888744382638911535768342254456111266815332901486784398785861501711062439252993203933890703338334023142745253381897867688611284089555953894067332956213359702783381755143810855979936757078170720763529958141562785850052905612297161543338826575110565332402489527872382223406488004624558312392063362981167261383530635243812456302723954785960057729264370109844184146549274345882983584177000549857709857732203106474799112223863993612749803675472547258212502478202315877861429081978302948562030490377220859539378028962594887425422272542156582661068914327040415440814064182610458879557654300125876369996104379838665054148440229064946937789778465125133088999254122037894731690101676747762782120826264274719454006873989313254294623793353257319279974669017649869774613444159410723970974266079942686433462103981625382177456170919357609816826046330541956638137346657801146161503654396869991595191430109567230550648912182571915513104873007534820559219709392971077512466320921501793087463811203529711714934545107852514643928621441048283101803351968310158225686888394871130802225031072240064940594880069992255936369342073247839433113930938168789697918096491216105634389827465858340585100058354665919438867618506048067538083976532020864690847543657091291692282768672386137494633274640549680646668129364764785284747196608606641819900360798313342371589150273400904247758982858383965020787794239873060719043276307659018036634396022376156132138664362976634525137725759410061426630767793227936469643432862878695631574351693735383762060543830533639100371595263478829906207747229788395066079829434555942852798603752991861955778724777665137794123309268853610601347667039306908439456111702558525061537788291382674807244238071151391311275704984279567296089304030091087288049024306378724538346098009030682457232354862844804818424609195300476885130311839364445337529025618522827650946516558931745872108925840325644463829634282556474524153617670484877587383486309497206365545666178433565313447956673662048303449054638351992732296641147079710497735464771718874435623975419350072013397919366212101748239723141773231791643164457932013215762273096547749371941515490982211751633800029309786650288929514006120617286376414912030415902231750158840449246034759626176445611012710926358387316223051832135780584249192380933140410254060881895166261248778128670304477220832515156062073813921368449309161249393690479990711781241535317193082855426500651569980825027856468783862105168579584493797081408618948803796437928116066065952943125235290084598729193962603153190830629023409056262928512229150406323639276901189324338915359925514497893473855135630365541172068281154499941638128159510643064089459863690924416119672511234531516782901491525110177609549216572782472992284224552009411373465919596059791906648232954302876911026768932385890654071260401172364110885749893968857854413649672888541307143486146942297374233875329945477924310192583074691167974433405699084352883782538121470244836642382281177431323583353444195926071656915883728621935476601913487400305745817547850411245206178901540300330814849052255567684260200650097115486220805174161920352514799558941080065044769112920116874837095397222346422630799459508126987417691202054370385324832034473771417896943601530787295176785571873052664113720686980780574203485107925663389893703155897722666310304545677096744678364490851326683976095202718639830863375006031503745051904726333188802655083627959880779318187424610287292404817842109162770734821993116274852252704317753902569943088224921806509312762834280831792707120182477764976814085454668083326796202032170437782361867278043804800118088532950553919460225792879516546311661162564039684229777427167156358372276445306098469549674400168211299250742837093413883211497626199282988606487942223788166463152779689927732207619006295446453121803495775987483452908698086420169012817792539040110395933771076919994530074778567468339234541881137370403322499413397205379741759054110106002015232729417097272923045645538786498844693160390395229555219430305188071572208364655140541795232665184622262537897015180877476595726735193479047104525021705403801533110815856217119147295221181798450791263869021133325130645420186415327799605749246428217473054286922211668056282546786146257933086553056913375489156366374689663087133165260389957053632875353697604862737314482565136431950720143232095680878069300356888329742046357423883613428988857090675088229109758850117040496625533318445428370447475409346418121610395119876303742835594124520443545173208933659828489487769366602171934515321552235941965427567904370444224214093223167050766548093593940464191802883539555270812678584923365788167572700709754234746205419840632859411213364780342265855527388475707680330552643329030303294744055761844773042880892716899822879300077288248699572802308730496338608718791572387004771337254836156188823311141216136058294356011317681264855166308086450796274319598513045847031774224676042309678808167257820848400397755232435853143589361448927099911530699011582295559605592575484517717102410341178200838761813118294025566840801199365727422651386011247867970039572337806493038478578172189591002007371802540561380936012389687076782795762045570069356205789075373550712816964288153719503455891552855462307160433796029714478063754142568210708954925730674444479534135184854634614053056262549268517705269506121085367403847327139962531706670886498635771474054852823252041419685353013747713313397581053059197575070762240679216489221154802030109764969241975245015136855165544131668147684696966014006607925449788829855965808757517901836432638828680673160501609615721388699234654856280883758394095654573133270874604319670664114975821329628953267113757934170559641109516871387145423123664743256443754546695347687008699101124684981211725483132828264559374006873759496257088004257477141012117764275405946761300479685320936576013344333006254030707072899011450459943408307229774391315033830009483870075010753023301474667272609451496406772502933470925521637234096868576630726159033132986566590240542677585814053344446171214753712010152311625654448469632309697340865731120540423563264420326233332056054993788238558966617011906530217098416399773568300017874670079520274833500781598771711912385271000722759960366975628241537674426153378338857639171230304347616083753682877837807144822322903265179422960897310777575389797260040693050145914332549926250427943866872014801144190349551081695888214951692717596021882674053239876863626491886534389874121547287250491998331665694580934488541028113984959845784023888793000752033057799093366873922077579376341349568269158087827763773756960690017324682644274284343032264128103713597944375528483170473593046890058842760852766812396210860599334071452146397253542887909626221867483828359543361447022848108384506688173395000804653327600320759580932882359869181781182868147909434885325947126953538022542419610583853996119042904778297923536287346427198127213828169472741356703082176114103358310701097371431101640703367798950565992383511557425688896681243650885114792271041522636915365657435349128056425919252675712251142674219826160420930308929618821742148097239149287745818992700416029759773196656514668428439507720801861370769796773103559780032921039810224389132456266208688398057384006678325407049169356644539013508607385564448858528662441989039626609217793292140723690597203005422375572534725476356553985305529409962195461694243397319869953280381861632266756921224291153193024932552341965991306854030114625137766700367105184378747587976846690710509528308046194246324445412547187524848645860014235189835661991433685216892011602078047731477384589455646685340849192553416896426080829149302330938010361174874264164167191094806138403253531224723642072463882251685984221286352823624774079839781572451000330320796933995071757556565749932523313256484937081833816256139326231061861912359924097117601016553903768573493885366644049466260387942250297740948522622866759309009135899101058015012221738577461574574966896258757901370340911423783557615649127869356764604766051570064040763801736824895491429796403131129837358002897784858271887837846274452172168788018007411885637142322818212994039313994244517990187230024188486874189654120436086140407393424362255965064344008856676577519251038778014458099351845726017212360174676739366258315139670986556256520992497449827383178126714741059052404227744933813595192235871341525238554001393826257229334889984570523672208995033575461459696134276452056426889617865564424174014670542034311408251613185121519592686958152120133945528860815579207033269252176709404833991356382103882546428192262147480135612432473222176418301320471382376123971025323577220257781003044552260383078766639031024998849457039694417214935808789927720247888393535365746113402447049092421728044264289479070875873753161753946447560100045179254898288246753945808816358440839835849875289140826287323025067193976356045895208156589293656389429145040069524266921634984162510350840053104500782551372262041967897081574968605218718338423927445270291144880654553316805640834419663243528366834666322245058374941974934355222416535415352393193548961227687269612553417472824734948223014982315654197515412941773565774545040051798084680752496441121224517791728258834436418260817821345686317894918561423307263451254389763141959921298294452409604738463297206014376054030221982662874210176992818172091386975399573188624322164547646920655099319879622645376099275759024297696845549039802553847474387086736145877498642588314169184819461221341101648123791527776796686688263521465306389530295228177383687571790543780148858739559631581580221699487102011607785259801976947318105111099468354631961074871413615934266841280535517001180033496788982374594865076413639339813755556516455982082456203614116623789296081824145237222051775209598206644693203744843171908155955258173146199952393403319264403104415103251204206376187336807285172115261381676104464808113453110497397050172740142756526880759896586636412842754854409589450004304377401055080163407292963086594914055102263447781426096277100729671918787527052063379154094251689968343972934108685338518216105542825592116172600749963917025742595958607643884725158865690524815558931928793020230766898283338853725069096027301419596965032079575849347939673743936249048893368776954826683555304916044490866484144712865854505488104159601717431174742919098846983323696684728251731525447142692940309199534701702571403251960005224015565391599851535819722224032496416852396967162344998241739344548743320699561975349327969723344476466857111256570496341948180646695489268493281410132508085351058094300125095100945351621237732072380345914562459644541562628084237807929129644296850958277135502927931136773570616573341510592433494539767514623176939984669903791346761317609659040962506701083611541522356919963310392528053752995441137008656301455375262060928835703698280655459110740272482281047501586686019019659076190827200934687833961570469858609011042070238124659179410808033718831698166938535280939068090256567312996585149631065556750255097501232838263135924416272518443728853129765122135990317735875805545046119823505431401355913151406112575143897254568048559449530920677550763929910265008301757409319730147697475590930934459538094855313163442695859615215082186545063935241077097477288254369040694753252081332074189344838020390532683221220112193655024464398076845196729624224052893160176543253720545567024426635405556082755234253276537112571022257588642982727748952378247252327258512188162635369009045452140390428750574524402453840480306656737764065294062797934509726095926187339741182301707206071074131485552075080486237911190333911280700316100690627265302550646516026227815377814319961292795820077924731305104251210689861547694247505475468380021571140425113023239288053201345398893203039778646052672835416590845924325507275579749275850193110871354732435152075567750937630319309836346114795053344890808049575449444854367982369138766265888572029319479703552903202976241970958950620335938771866452290376890181870611261596794161617500540295159022387058718937679492900592145044352388279623206922569939169010934504864068247335316413298783955881290446838416278197120538608921245709547947028627467536954675504592429841257939492157156959930665240233714993030535838469379936449564608734854479020634340440329875427356585724632519584024854665777661415109328410713650636652496026518644444996710725361117635899924417796978468912178485697724966424920238008998619433023613045331981744084598451889196707283807802855537651764698088068352068637249053763061870437585191887664026207961757681694774319742773060197057287261585801001096275513036307208330696555455911194399788895365748538013286636848751075968808251207561343834535082415880050954693160179900424766669175101537376298408434344092780830247511295358268954810978278103905564808252274827671521913239073984045955875908341944405636781103522138348640807309045304890295131434550010243498400521715259583765187623847794188053742053002222289679169929394229780018684681108842228392859049517478463371884418680285402264872744810324461623099338134348225069182315197527288509068460964823918314603772337617258089354755390807932255318178887205744618829341066465001357617608388401565053637525355551142197109999540086321826988729275014543251683167309766160930271432851200410068613562151477353617377540267371916777971097851928424276654060317433626834809211494172557617620466356468440727750237831756551826305587721803329639925645333775421469459194947284243524699812515353966576678245379531755276747427696235198846382325604302980879214255969250587558321118569222948929114050428980253488448253661822712961979739828999158931436301520548820535591631729637493743053988310848319950896278041013727170863321619335842361693673401889265316029771230610989390390248492894790663523111349770483369589612245174177076962436751616135255827361300365519516597862338420559344806970486835713353420673712613452730733161815373905892911784449958322369223916500098784165655947762664482432637223024119457462226584681521343821115020637437418324805340398660915287265603956627072115978305335008749296386154819398587836581803961363372517809781098527554360436117963347911084274572968359472528160680590237485885165925217926894441860676166207051121208357980741754602614811418188642536389148016250469019839761432741401106784746830489753843930281632748950583414131420359368741778734543715381929367414568298121374627155178334732358160409173839245490724786518884612740655657506022641674182720512181454202050849744008160495363870695105076917422473921838578570684201623480240779338274385663137478525359689609620102753789277334085939369377276536159409569314761073970247536055152175458129343271876048679179804197341251120555939513522726738148994925700551290683749892790646491760506035198623561831790103930612639932230546895305408208292930588980931562371646098309705610688460221029424745862628901016158683665637341454543184847441207349847103619288819124320877901881946934282994253805264399272242144627451210251658554651735051000994609183386340578167338999622760973004886026862886419551993702167947014595038721022641299817798800879067630300906887547511812427103127676943844251845270795070574905934917237536060873746051092257122456789315662679495596447838563842272669514229002237471985377193144152819225866529823193282302924548345650336265949615310063505510895526487326015317418150337662347544842195140962364302712233616001426921241658851383436799890213829115506983387351630030033777819087298891503100983368906491422918159936401946502642070500446877411794771726309310861558179102451405924721887412580719803356048677346132543216259068135377374332154138190650344282759696271404237268921968936997830053028617703121775605146755448222602298454667475018180312322359718490075858083788888739146130840314454561842769351910254492436716686079573044220454132056889413000358134551343657460769591863149554482070839391780777900093232077312996726754622345105863149610927566648455849990615842922952366880289277581783866777374748078946136368962609958832089497590121185715102812766011018030323309270824621988232208708037712400041983699364133548169284124720092982660393911830844662798320046945161590251206551015111121458256947943240967153506912989937972899860740792649664015652119823885252330864187122970705820278763926907731034585132181299623945316583496426241075824196515244602745697511737948210529889626416723320161060972122140470887514892206677366737155169063530142439480342440075074886786929259685669409441130640906961738484391404526058071606539888372653747069802640696437920500418698136454435572614122983744664235454147507613031064431573913523062290146920076633137123318906923176735656244320867079507522132089101204127835042408093947898026416385384480735606998192145351831519558697647814237397805977630115490502424796630591532835695110057949964491227848504713541159773479767592127087909031456117006518920865213955882111901759600867712964789418875841869567509057186245642516063488025119396690615386454388815582613172653851231676363245039832852051569838571919975395050038519229869977973331416987735845332965942122398536328106161815424626306909644334007057516100520581497763096147464450383143553554603786463281750934545449050477512733591683258782146317128455944951095162446863110937676970906967383205118067499910636209337767247756611412957296311806524091830003547450457368640831086818648676578083480280494420558840171752471270530056289839321402269869334964761143918728559897530405041270352316731490785556950367301118218104456791378121785153228543634858866318757898092608659487719706336190108224415373271712432059002914583185124909294570017278137799402401458039084421217469812310430282070978183917203989167596568969918910544137200295250715902901065410647845608806236865167961043148923776235429138321148038297248061229853690913177554046322202291960481119279807702617221567767376921565692793723755120603311560090155414202923678141919872364585881019708124686584898719863437324140255226033848670233091413069928411146062880641774419250217009236996724994652033760351647890847458752185875884145508633987087578251885182132494046896471315176340165171260322210696056656350440079999193042251644936462262483952166878946180664305551316686070562448128630396929684239473245107880372398808495114677812962217267739431432519810006144802081237533926851568744419786255563130477439216231180407977722895240723555908217482915318818572629748687352015887248404827313681334881749591197595479919307166766939242970096243124662325994720621409165392765034596980854886212814778155221803120517644988689444676028501541951855170797393345311950724289641176354439514770245866764769728838909549050626793895085458099438164495322820472285704820159908021079794246758537110541406064808675628660150756940739665752160083904065114613481402236874137660588334471766253600745200622518673695094622575687774508658811627553667288955605474986721932075014245234178177997304929363085590792603479481977702576652474179886257418848641625717104085627440750954452326853965647824384699683115406577508453287997078099107205116772888944320689685825303632931294073588050546877636170377147679281921452454866518142218776404063921170405671589844996925467864335069890665013924322058656399780880190484510220693386652538303824064551345336312603785394921383147952690724918170033262714843011990808061922708519519859764026554920118141352105409081657864704480490646422633453730238866518824660947421635431811049561387395735704906684958186938753349798472816479565546599292934654550097545939604494652932705945494097072974191987125071441446779208752641712437770284014080115554147568312901039937038337719472737946736175423576765783025476687721594623284834216013055120159649078239523608171122362872009598838219265587780855898597677157812286530314712784303448865883365056442662913496090836069344568485108818392347514252920065593556351426394753792296983964159495911888805268445892768688249910778412064348141685630895265346344523684879514597877307635828642738366920165775840202144582104730797511972882882388342824281325972529551342490200037852749086160388585831426908810053593789215654789216028213267422516056619880801796156997773936752964705565724428844861974364552394504109775659695266597643583887584148738711138335454603063538990754636999222912699624635872592443534089563290760200047082560222862974029786431902764234205368398851905110167992371809299266573837732770820456723262187546251734729651940919424942241298548182710521508452064242227401884876059821165470142369153152105605803218725490462636802044539802941433215119480560628519875545120554030849290459607431510540150502148926834668001985644326139930426519035732136583018632395564712508455149724472388304315876918917007579547648050854719441457345169921486772771081727772657992643619975187882278903864556974445510448237694119388288469107814989175667893004280839987742162999752819063060079617538552299256240938172085364660866588068372502132851314288824727270509918560350599163738409845348738230733237972727299781077343870323553567260469495357520972396351823962087313198434500540014147063403071744041371170575820204128592148297642912221762185536417246964044582466823985831054742427071717651788364659236616200897087750144686576293198449996466479984544128661579106453114999389851691848070548072847148373648392631099109950229211818355760184532310926972873626946959975023900332870972177491218758696615803332030776273902008732231224668947365825081098365141721895988518913194950343796158158613666845950371528825328657959772904800335468346008770611733083066513920139953532456197697158592381244763883631676351975312793677762299774979341699321252529157812415408097715389222374403280058843110870439039253823524648499877073161438975063208502920232547308691268628838686409378351609916493984329705443891994359053872996206752534393617292202737293294100263409608948385914974724683382916879326543483825666314241619576563636264051099963517396459843567297315440044047813270216313388685178209277148421637736396044871649813944880612262425211601861504733739358204449761691378898037776437700522048934668461496365961281717655576647551868000193280357184585041226237390701468901101427058663723303909423204263660101646402709762105226509205220186421996894489353215884981079446482586384642429425102168196740374163494816790671055591081183387828932412386478941027433257679815308624931021415098850375149339131604536289487015257987555593554667692607481452725340673346662752222401858659445373766226505704492801666069841700048565166993999240870186692215725400595028293185962422721576916730681146839230995340284749391869191694848296825589251737620765833787890678177327468052316047572777880879559107403715430724051041070042049253266559281615070456191051565016240661578381755769265417532585385229942480623336007019941784859432940731768479741952769311403360033567604780131729923862083504529003791684355046481479235514453655090047501520903557512905993434548762026241124765900739756416438338815882043428917045269978723575832709201695443025214086458594489727641728917862583241210810865910553796631772603192855893534442696743349773924253656103658325929290657024753011082402444681748522292640849584496553503602073169545776712026831878202698937344919232063742816720928664438655144564786169617629890771987140162123873700667690992633521931758681355648447537690130389009126589373223138124768916781108719737222966230285766435466949311154169915436808540998154122584155222018692361436478087162814561389080588954824436513027331276888305825556552779221264378077699588189562741759034673940829706061363612534624310892516222847992086284266318574040623519181033545921374092734291230450088723319244589580097070080590295345121347241717013420603226169353424210364775084263299425160763070173138736175047576124558028323316659681275635683047267195394748677219890687479850298715042520802987800580979580842652217505797839441955059338384819782677776025239870558377429093469892016032737781239221970562545646481958511831940236805266871337796684443056217002551876171578255688553518274324480795106775364437341670513107526336061467357012111186616271105214200792277850712438330820498285975863510029284475524284475129680691382117838765762656115440722461570004834513108484838770225396683211500653559066241786883103311653118216533486756563251560167425671178316017503236043243235069476290252527331855612909963614064448086362979927780522187694390709987200789947644387867844579415753301947051882773928856049727855471230871323203533448855948536736814922080180735609096883834538773557792583338798564278272613217006057765555171814219227460604158264729553665097388464768616077859021610678966574096506490037981579502538748377314142995995466809437909077062878331726064733784526724399195047769427131085554082113389319359370713562829025100205761125561922862316573288316692528228524495283054301551116172317792578788010763888014458383219295077736188351218571023535013571316320567441799907005487446939729363718085648210870221628816426707846398867005644562200820987782470705784280279012209434873573179532919702625230411992549321930563992291789224060509486629746558365428632213373598425821849147857099705944217132907678008976385711769071685363160407077203607360131953987076142537889143779785892349367715512255382953292664958227480055340731806461543940064427816119168536560460441163053247972407702850140845003360228221935520619948825967522025014522579058860716519535730625984815058854828117166790734725630879913569288227167979040228032826102096123701008654614229885627868869785505241456883026193613877238810832187364737905110219466610746082653989864782954556317829522926389434495084169124698708135121743406091511225271512544835660053970447941179596503555900219535103425997685519949714326669464890510891959413302891765914525956505665691304671414209775396040705870325379294815139944569853117022836462989341320564956175522249312535313475573487223329765627793157991266674897545076847781052406282909770681348913068006595231606340753325722575753412521193708268600483473439005070938974378125663338445580458029679868866036738382552587227612770335463365774224889124130037462479334132859139531535507799094050123178808499579385103096733745905750920868648350887542202387386197959554239966975546919009058445483622981214265153921453683273588137214717727649804308560582801323916834122825709040005909045009338306404697261768084298918481062451601086759161557740750770925238970962542782389944610609860933012602268263716505120321921106176272454421161154319272828208490629206029835502895610450675996490544450612146313860707394624972839206848841043484253227322645844434118534890549450215671163174245807041405850015513023858272273514950269827338969051509209694516025870899778815484535881499225368776644073482407220817678703865378270986520820006414415384698847615452895653219187078423389349095368489153339610261469521434025117512405591307069192998750492655631716542330840027611703811478649340186672658652313123637043053327515841302775214231487716173696800189827543842747960196386765042223573465149949206631206776391250845351593570398639728379755903789827755988084129278161935970750536607590329676665711518824230164366155829703984229538734342835898435752520388054355167398638003623246277100159174665347070800885273759322757163870274707154484472484589754483952902272926804444010483038200998108290034369395025049835786412561265343137101287275632789081829479030928370982542673197748590966142618688393469330482169125935116829456122497090208262552567639204237639507175312178020721412920885859270751269966296730703276207483441288317441648814320879890041599467445111049821576052654696558868869723682702753726008327961335437171609840249209575767300229176373550328810164508964639295531097903042136454456152060318228745059822712659322236942945167358581618620163522170087685986623206530425887432026621724024396236877296825961425635885640779155677446800765423339566720657685651947219687095359627017743593781821164528610400486325763450258420957980304642447612056001690087047895831905527753509008443091291320160155560557050124252364477644075810057528884913246378660348339526631821139914187712720941609130484423043315534376337666624774780925829623025388052903274051681972110578739553732846122059026941408417805607867448461844275859913350115436859373158949499111595747271646145965951083717434302800784097089451507839652799721644950246129835250281768379797430743860443954234210127472405302972960412419364717440466079933774769994673139803291913481170759239054429975420588428857709904252412384697365912738091205179789304152375690541920408598955964215849184807140158568784399039195042041100812922750865863694642687679636794109717963661432182835621814203223516454407548924155107034612491119149712451444998459793730141601349202296772631249955171351065503457356848697973069559557857225456743615135553123723715344772826802097175218139549448763485737561748721907630688466281200797934336471811756366205807384214358459319356948576547076880489453318607136214753144689709410051195069225915518355631147262223723108359603994590080993187763152111246664235895637142931373297435733474093515396529791501469930072304140627081132704765791800584594080801879905109069707638366896765867831109278952571391069859434266025567850380796232441250119028369274174920337928995167413627177226832993507204071567168756684513374051016583752320138862036251236477012624976213944819299582857135563151904047468240252611033554513675416485639530674077156065647708963100954393525593709234782878894240935064664664994635986435528106382848498355411062530208930721568599917051992321628926683744523957970971983228986976801854073854016977422047521108401324368649195518216972819100768784582062661318321190885949720964107847786968758747721619583450453111064958267184180944796938404701135947741574640918697254620714899464078748949060419043567833517296238508608457778367206745157391622770660208494198220286263161186616376134499733900729445381321715539374622569269421609638809803670693716720577715725978313503400465222790590980185208673591960092829984161919860319658353241061483393092861943457425442327553960595395364875540150300681994613483434157277967072475421417058747320309720266381201715544898875455052577252873929855052406213155939097685097537300253338533735945501376346353968194049207154672410973888325810937757450565079884591110415604790097513818883615158977812635874282688742002088904648753480092065778599705460770438964996960140777191209192441745527834007465459015207391258100584312472496388125558146708786308276611065942671952300755052893860934492267954446140984189031577447026702045126080378359095685187676744936129450093788691595583099362809562350149468735437379514548273822889179731169048769686255520815625418412970075468423219516007231390296978761463429192634590105282783693639940238766632700057682730385696690122001512546548740314076879251285153129678182984270926624259002604034520508434992061208577953429951295491598236145396466599796864538904227832630017230721603717863352673043775133612891176095703009254766169701085229862562378000290961818063619155556646595179597626087707251326024052170333414714085696965561535920368627026411570210862328434201194355755156217647472617900973781112945714703369715030355932316615482523267248529182430211124325009366044615798773436253554965867531591585901032140100036565367226076703403572497320238326461104052790400707380630414434059619298962073695421508367507191536244509658965571393969676758324289698568164066830911789097731535608798682482092870471173500378396191016716206731923085417812353323306526401299412746508402561594847620295448925224930070689783290937607353271420751404743274653600959481008543259796598118143076199856091270805775877402084076766484785999908097721558392661362982359536280684534593201297824278512616987741936877681526304815990575874029323361550976743361896821174818309996256295553008907197716328860178879431708943118948660814775243694964261261822877449353399446902607237987055088527562570425620073794113771973737603203708397525316947107623688792438256790542558522080982358939210973667498118118644805822299139781938694933388094950129456856361940396060790868738663623507148648185578174425820214629630578605814775773108704325556484060287798320233785839705076333287799864576313625764289777750528664680646568963415813392408387783822061669096302916887211193108595687800034794061892328061738437840849442104443690100017584926832898858326538359149622678340021018267522441707068864421600273949368953365012116403972481790565823515753047303588724542470544300532984646205555840785236841893239524630752178923287339705609107603045526375686570281111638669054151766452181495580844522937591270336875620951422919151089415491090421980921362213074178791786464029403582820053830509047374012958359471915364316903911985666695306020282698492285772172823124956064086338085844936731121339312508357662835398364556166136611834332467689844112073814312537560949736518438006773906293152521592063215352146912131735205092332494192081406121693870153745090963217775336050007333716284124718030361935596205332797791043843058338552367404554751355750379202245303949216253112067714913707367540508400456053310256017925522734009406923064364988326839890941231030807540451449511004946491901505436510066261119765435674629938006536927559866279866908122008023325769848335294778496790513306260199644951656599239211124715189765672785212467675097321821446083068806038378158257257023921619613845206068568402443933040363707460451452248308087831605849499962252742764082341182540654783716639097283731596301349357960800303525234226046950533383247550133719328226534183509598447719070677326654974026559289341837247633907665035795284215217168511089683862239270789105069955247097313061129926344673618036582588907016626300345425008731652710469745897188781694272211813949955350843969696614302754371820282814384777616367729012546283367541011375610183708368796405420555808108795364527504955016907941086734088432795896160081936231338651362136262381393380749532082917781060155165988340684091972778008370837520321669274977560398095203561425006619631705185394098401969311309720014221954179932493662996565647309549604628929498243173551423470901827585824254819164454378402192414693614129783736398753053774217268689151907851650513391147884108221043190188829349191687202307288003439694910624048035512910451416923290487808337564825448882266681436046048525514672191275033120478745352512152546928307021848370399744251478038042909419967697111998075075413724703941938673721064578332100745563557803268837197621020210794700292799313074545207187609754553132743118071974195428622395802912316124488907244360320593953938138773150272989144801853886903553521858687220826915889798019758996163199719515968532879096852294109977580826275806171418703598772313063601009236663934146521128805063856058865586114184915176594628310225977926759791386719252507111135608073104216899101964287597714558520576390425115779588834490222809303122611786233578525344308546697070711199728747620729491001991541345611903834637153504900020573390852376058169956962666764921280358495475201261630941474760554675378096611019777826172431956081094507585648352445088609379829772848843869957834927800501692880237442883613430176928261360573529489831556512593017685894665846637621106464226937105454735702292464517630245895679845550655899903417294385628225428958632782317066208289460191382569395813493581829872527325859802497091058116490676908815472326653846258625679423822208886912760572843943514716875862272477672848315146557267059234613281782571184443035828141213260737511425660904569651887056225261087755939266742156034463185182733799284483895481191899312599423395655630012768740638483020158382156466706435729086398788783716715246549530104474466218030143124781420415191280330226029381865404369009862863278994157236633014305816178125807548646019146218084463120840170060354529493943851230771394454562461156626735493646763145128402699696849261223768995623587771793099117711373003883959638609372172088274412276447857779913553998452955026565336388688612859460426567355055494054463228690837272333805759952823648858960260436856333026339321843773779139935348608669064418774979330495129478477597187333240999089323840763104825822011004893641146097609029298656103722670709051864959855668282320963264430769883841213046352046868836129081601476620208199255065914603138553264957838754292524472222165728292041805571757395101595277133209724978671205420342022385754645006691478132589424226670547035491983751702437212127022853597038354533291344002660052685705685186517467764767338412784171210637645944273925741079760888458593868306148021241440196166252641614427058244269067736856271647338702218991417685339453895724307320149832618673363814792042362557140851714829617670398014317778587731246026552141756512094398125228805677310902210417322869203783850061477069573773292520529898725635304227413982031010471653140659610816043218895117061671099201552545296747669016142709932159559426453197400797900220822829025017769481630026638005111763755439155311447403173581047344430647530387253646789420121407627735327104884508578362380043948797423051659009887488601657613134269578893670062015240282035704687686065622809260537433701887768296834744100123358767296057727698745375852023154912371807286769733677864918141743016116400704583981611781415697178838751184866722258369218999534894936681675459111724140115965582611008159531735129493670023216302902033505253186156492794504551409808684602343097691899401939653961435532486397825827694011066541103987263722463080318749704519015561890666448565954001721536186426571135550521142316826911234121651078757787743897977667533449198395461416926031171954991174720795025065637875892793969209692008779293433315574314872883555330237258820630751081168334264566145746126687932738800590817450810084312096859801480754272274997450551785659519471609611818772672170326800070862638194999552829796284046895280937803107515352576415504937322713254485364404147283137291320311808592005936056651405630548783576517889140022820817147639073883791353114284511492886695360636235098000977896644437189415598947427251121568447453881903512087354277216599939855617635492360697645450075910967056888429574186202543292067659105903525125984002420190854295345650554088744551314760839868190799280799734192541321645664360774613959372771548275025984522771003569037285224117205485856915440249394332760050702140205198342359654092792743945687837269854547955556750162803798376953259715540330881965398959120380803704645127461897927391509011579979573554188453594386222529893465082947098470515076750524203475457772164704323033604905461644251130902956425964156969211233495575294889148888944127790293939671903447924123949870115876340709618681268759975742784077431040111710475879634013213004850748859795950132620780935597679049538369425197401739344687711593807047971915418459312807439101708802052307106884877921034210656728809911577755625737562577323354420769919194829705323208036537667361546764638277561876629435975646031122582653082633837394005002219058243869187520082673227149108442205454951099343019353102649763417255558592246790497201685462582851289454719535021232254787088967331193857430152815436816146291762537871857616538420260061283710950673289088127280895364504740552794461307934215859530235299902491069026538206200239416221564757427570890279742650096470298530793825875585008266825085777410043747885957096763355185526425173098210956874131713465195092469818952439667865657701979523037429932660947505064014296663239168581924551221937531860239067468065700945560280553676452925826531539053528123939315509035558885345151827877273399148987443503933536521337179935053657844255550986958144796725840369629347154083351865949844481499430443912671312012339915358639961670796915951124861965937232440111354014351903577595807834844224387804399123606418338399174079929054158548219206140906200878139123754791350988619542294916697725755935152126402437186234749793514401950046162445187678630162042676915681235794342156706539771896112943832398152575065409666343964151411984020200422467135905368145094204936924216936418078610345039754029351517854300926249812611145215261007199327420028582337549550597856689935607941203262052595212051505991565794864876842968744773035446047079062455631429289373881161117654798246631752091267038922559294157817005665071280875938526723912860574479594828071424924011931077162323036051731662953604503000843875278201268293027011698877182016453245553397353209926253948584732480318545916328905056269997249309908853159748266545905261360201176379339608282073533092339705665761483401144347894107920923938117299189649522314814769678905515024068554569296236990152092161926310342282143396735692875374384164050567725185963123120398910801616006671580732286446966084348906068849553074213991594017237443734015705459124967098575207848772391449933066025146998598800256893169517175034240769284819294670900820473102760001914302016520834201868727625019066330778270543890546165443809947010038037153825930153570442376486169626829067630245799381638963429025019920552003013137299315408610944026645746373899583160783851286472543410260122942855431630761116423390738415501700650718868436113545197628854410321883177413508724747631682505803798914945312052291600993015356392858210046964961176236422011665994260587780251102335222197057877575957430434769400072457334641705544308255563565776292112769593539866578772397196101861958664061429570872218298009507910030080088679083151797206126705280848373571102903949076422237406133154300292893286257422414100824978602416305108771555700105871369185960860739895462767222181477587461386056058944438571342597349323233446396154411193988149894569956134422841611506952657836270675252996173928067335897177854788945358267550192896071657210132514505515524356382802206972609376707194849558517301965889569667853773227993530344860292626706815393600882403585148980332047051719840607380168093754299704762235178892692097209344866280239420903824757640177201868927661460669972551234996955827444622405713549283821715443368755531816031876356462982130003868252988976861574918636861112193817546285893810887814529392383184379143769963062699265417627813060669021879209537160643388236131870453839760754760640781501489054411255700339758602975855595297054447337173212707575963774631753300099684411970811594431806518448199960664470426191460690401509433125272644136316156403944917404875680644728908544730865495006459320519159690805028944442325488570688328528708814308060883303165508358567525966907208521176020404653060653959303185275813485122723171111773833736890545281239388777177890739355422388741260801496778000623413570057651890692189605779407155046214495236660223902219241366190687233799117092488483595788981822671627497341418954904454764914128995828554232313646970087013175339781503800208774000797166792073524957066424333687448050687299381712241175842322560999056763877259252362582789292954188398984411537020660180372288999932357915457863020122215333954036701917292916635229217404265155623366337845571985714381812268277707132399193281820766775446873342634506401748267609019484580982562912835453972255255469120573132725350298597825096769479558597537444942967638679238695211813369747917438329644885781032184447221000940611449565893086939588304481300091049369477889319308884919089388198519995570092664712365317800043007516466302353201372499900074388627482481885667501361333796700538513751666604941951408177622467575879966019958956798997932131869407579659878452805376386239142157835959025873769316360318483051661640200371946009463820601689298366688651556982232217746041832957172180676110569242481747008548733187472045115692636652883090910799965755667239655061114061045044247701764303792771013468048889947542342769966041752860644555380791384680264872972962808465310411582711414451632152095505295343649268439100364948620972842142745615103045241594776159262889663705199488977270249050986637385129225596981870611442089093589433539479926785776023794015335478232331193815335540046418466209160964392854836674116847117111674426401326487722998416515646674096461814992161319869208731725292584097144606497390272614256033546118256476555255868881876341712374959245810102519756375766203595355482355480220510922785376698927823336413276916584012723358483442712983332754347558651284628619618658648382169352738765164729449588623501737812780081728526807435491860101497055071255308831744705308404365656076350252753437661520860876551755075153257450594041387945843894611077975834735589041663595267490618220868464256656352907837644639385981436800300511580180142019091256820077276911526572562332310812262453560826533922823481031236014063975937016367420989307482124470159062058758539121798627127172442455831255208503799503576057935659330192557352026291811672771517232803007269305916985774226842159150826817046063803797558771374035579572388605420126409707546894289125058168319985087223376980596043046552426812139036823261784995324812062564845144735614185353448474284955249392765495468945410343270333416996466737543947199637885606774336636598245080507207041424446055059381222822637162962817830050039680399518251556360829911532985626117455801725629113757525124342232147484138170093564855688943639886560500449485593320888982930475375443275533822737578420595018541623694342097515897018486474898348361702925993917068253307848064989171095269605204279274478357677862393258163171216593126768278256511273129328046135050896101411652760667645204389302269227493437109865401831941022499186868840308908598494089598873916233009141822608583795863731869165503384145674485747771263202518682485932347702989534721739799589198564070500121890695370068696165421839941624028250942688440693603303228414271078472616304083904259344911753444335462847856170520163587749033989716991531591940297907784732961309550945368445399884206919327655533053257136199498482008531294584674135456781715127574887570392201764649288078588932183706082876034668041882324758942817084456832057501402347653350936178725318857983932010238334038519386013790326693028551171854611425284776794592196490474129615583256849209729215014691677606533135607955348187237338961371014374114045707742618084658720246846632488827683338193927482317346531821650365674317023638964338538234268678633257378512895923116618351751021488777317286526927548364702068687849611348620362465516667946567978196166456842226515595242619579762622467337222834526195693462589867012679771995864558892592520052182663034284983267385776776283341729388232168659663920916218073521895456085709437342890015259511664355735743302179994416619327547287159932217646970793006774350746465689495514075791032756887437769765720365534710334611155708100878150361951950277471989870561025737805105921449696631934612981160694665068423471793307987480409259788073003908016382808148039253863857235557162807455028566211748090501388329421851608928363834557137306377015456633784444629730974024859236031777139921646160741783900524212301582609164693188189347104618665398655201050346574331187370287572368618216878937159762266005890111307785959679827172281107262270282385381563921995462159951316043612858336103395040652007479141502960322830786178403151306651704926541922559036321931887972620786488835231296650043259686955956372855699406068456775573867618799321756779344143347631065219302034087711140771704721109458335477205273839837452783246215865023503799212164476831465364757883413253580172999397200714195941582069968109758718491703328746887556621314804924061082343847240856335101622496257642196732442547958701431250728874988722764780894711331708062726643223613459339062958780263790397542474465709361565051454259296561337823570096943524927299561809992330707365984759228566052568635335573285222417108662067377718069430374282257391979228153656299643634688152775650196859838067437548204972465640680443784201799222257112949026270197373409939842096096498379029027020434026240812906175946261773757549862097073332774928859184155687491914560362838628270101637176819963551291997015110924011288812650137951555896823192195404874404492180730891532312893295173623420186031520369346148759380438824931457846971023789168418435612150846985888551034778778820684097965377420641298263811283376865034456994199233069603400147064761046703481791827453619648030727507241054111180707828085357528178812880958001851957510948137786881746755232716932176673559575930706701028339545472003496879977507499113906139970361531260631708690162526432177445250416429659705639585449642603558707857837360382564304892941735939463350731495855804092752746674511797506900698550272865764442044611051416846807068259730390178081476228378060863722700364566710497668538660570976132243153635978072799413906272608927500283364876837469197958708368149696340467103524779768305535198160092600133662265608984247163854197091767079180445257243860279186035405428136332138035947584247197084914114136167168694794649028783805909256439257748217585070555289468642408007491424549388300627075129879213278739621788294690213847834814171333247270072950336361657767577883860223234047806024254543630818822789288909884401344193315201934340634741112182014082089655963441574543382799000336935688528784406138011147704957350616524667388589794289085666524550477535907746633533642702853701275460368023768543252931655285268731317920811782805546772583797953141433805276653478485907271229129864066018559924552691364509672555867208428323492080265856140775973185608079689080815388405538532980425621331556290668103857189814478130074328022600850108520429016280858687551954122247756031069305312942022059700822328149912839538634077751698047952336719301870299965806080768982960399619529054946026288611716066357387216005803051497424923772209908432390562137961718348391028103092365015337140761508476510796817139752277821262186864408510696654678525353257025067657567250506879116826852723037252348666026114888264906118200966496347416985285556257900724261136796836673189777296223658857275828296897487698692094071914124182027595309561693627328503067773271422660598282425422715728985600323919777264191415845984278398168837275848387431133472044818373015199185894830233793854602205377324466096073471535990368856983727437260425247273270082723164183245299432365326691672797042025141406486417182756459894427169523462436974373596364317813801458754802473253281035443800408718920428463979323021436293431481050848235686841480926395445117626786394740557815825072604774178936920120824889250800696741341006312495304902541946047641877004339103971299235427050807987951201433340872436174221888503056726991211390796047183626327563816736492865523439723828884342018111817509451969570357601405342276227271572572866342476041128842558451552382641451928823725795015358414484896492930759856297234002924956257425791487548538448049182419748121863773636975941631366680356927474936543849552484638350274647058570812292472327849021395071127468864458223496630708859020545245033516671019431124787642495061381690909478769972444720681933165909505050731986554352175219817783252272057385891285899090871350320560890844836034737734984761513054486827085446807917535294033635882435192511839954891359526069300467283722099399111410167528920712672198567506850857755750545577052398037036511296728418903541239465289975191289793160919961179052032470817098674769621350537995935409760650445736688153528627196026729179877693986024793490338277966036966905121396444203167007652990656249431414176178501006767575885317420134596044648506965475371337527696705366652828200679250882509717435201910770171703462233549750626355827823644285254215179340988439450887485931884907056515823033878491401624062677047105771359664866119664046474784462882886403550749488591758428643215615590834344901548915042973415847430969631989125875378575268267078015898276547277448509658340007015704091274872004440702176722425390445529105562198304413292812039622676030866052025732656668549739514982994374677129100608015283491913982505833301584701624581708209341869794211354756871720601957431858294341333206757445626557667686615903870608928219980408983981150749118399210508148580405049339635912058886594391669028069394022773380265998211416719605712151587183576025436660619500150895810607692118204623372489333123948525391186221969198132620066356425896516171262111326445065593566022506885410159816930959758197811692133352470513527785553552741972402251682822552233709422413546296119741559975062365035318472514037113125547380195896967264118229955696118578749334161711423496224113373960296981078499977482299786075287639483971269696716489379945805999030753121337779187233705414829287228006240553980016033961184923682735391732675887883708711657639298176141654169749502708493325468901727637239551069099504733297318078660316951797985328436734702865434759237897427733418425004595576609919361032337247356507104611048728803667387948229717271354210784888116762034565530498100442057928100077027688804944294862707807805879778607284792863879232912305026809524733128757613318461475260757753409275612164233095312408406386915395869156405872300893811293003645320040469196794684951339392256657676174718458985892003097288743527015773719493812895791216215896135857585380352232698267039799644153265908782897624465814212887048820399739300984370247361224391768194077019228623287355373889527310553034811023644231967717039786675530371760335486851524280732968239766512791003190643541096095255172137962708300239277443142485469845209702906883210050749306648136745124746672856082450659537419273284869580448425307304380406226202669061680812871490784080962003459461479014158691207781708393820574203901986849588643786747580937991639788790732714990700577906040133258140078561379851012303535635891932816249090954132385560639307835996667950633605361869587141327408328435654373697647394377279788156818197379618211995631383769539423223057055494654213194798529147622118234740389922466473625586900756782054702649312182067153108275730815383058308853547900562083639718141660860235968418904820000219057542002452174334861044763155390597036258067662399639499161995652055520675982783396788934477390543208761381761106165676113272665659562855965771501205834371462146855101910666765614862627054407143737503193728087023837915215218553923039098789439318150248290959516525804533053041646055324046435627981879386627223695681041256843430525536344405612931651510426115312683797693705783037290084700416408445378059226058239987473235143183055253348685624117042068215245392446217752861686373071561607267630864855218614994252083719171344606313880049378157839336414523242914206379603011498320973744979215254381120522198525392897741293366230344695584609067885158486423161683306543173698827888332473441179178014242959491269589783457784192426870313552174934949624064602721347742958092821847791620810889571078808233173757925424141581723581118064039643738686697588126191830090567655649072792053257450712899980244732529962502408460733610428775140071781419116692507564330826246698055368825840521642458733163904201269682528747219813555609325309239858527841124676375120944786885146282267195486704351495781662122643847190926993583953994996714422132762245912941584638244603594658140108293287536996908823443961303801812045531964246270103388544538549718168048157708012356850084917569008379606080427365842185531377432560059399489832106181421189326258320767467705025150437172479247677124990755417658705401102184509244231863330983738017231224432945190551782336116735480955396880191332038115576436995074253436208076157257409074174387011810278790578287603473968502934058231036480533730951176433830704426518881104020897970538221637331329798982185042256916684306931735398240768107186207986650916845835132276048381859221561836711001859577332239595657523149676146329385723653263750678153467204339787325747932162983456944385395437576312394862304435380711190761385407442108522960421739883352870455868994035638725375121728816951663044019405066652089725522796767431199219856474342319267667750093180746178485090567310016646076867265944609398528549942009330840449176003737404436315244045627027634010683640275639380706121838417416364095621529292573518251807226222734182791383999479830418007413279559573365188914630474867342890688367054827377614079275061586325622006242321318037494654893396710213061776364654853452212636608059513008740660889811399007440358498152190772541651550316887972914912973888198092757891404551959282105930763822610936666726110041151329595704386726732176881214996523467744256013731808542650384418684594649244109363254400333556198407827527050589990376906882417436286772309666234158985446978164817887679756874198312256092400209234609912328171706404616003846231132520149033541990173068589068821814799770949378908545185420985898086215314141517865624295763912834856464445773492374955846719428949234669996517953046228174865293945282167411249656524076893350080504723638325287681135968614891637837115590202729815785681538614818200388780555159308375702732267114055207751711580826148197551622145788769890265005507064126955783773695082588475927197373760408526903235499159043729441224247137043812532136218209858497908359818142681185678229779988745283358713973586358912986152530996655926793000529651146231196386339015188264066952272562929799720346515959860821053946810909565268071117525774392293006698894722780683644473609223420400354724160858449743086840912876213336631581846495161092661324219749965503472861904348601197233882704526389782160702415147007138185007645643069523425382426293769242552630535155522471950921935350880133024216961706097859920024209314929457917703200404738398858783489051067979909856479987381699138953245712605145728174473120204188922733034460358939300789122436666654713564812034783605236551141390021492219586947161604085344096841748207391448684527425267296985889058437054425128138794435863668908620272349954284859399049213853034968433766723507466300149208365553748338210663020685099862112424358732525642928889424612602279140463606161080838748713762129927036274233961148873784761497560060408439085856247898897333607826912531001053486264047736964432059737935436215684397950640715262917874951747376489158085619219074615105918223180049172282168838515723242137364669217693041871888490222878124092776202210795722438128371050802004942986373330621086485685466827812908849962202434294004228121035023207194404767796307426178330737932623487202500526076218570270598056560278211293124519577482779996978596993713379536808401849011211529698392217414656532167001871601914143222775582633467234466390880522487647350715555203434561451005944337699661441116713960258049957499399097355393968088715612293180312566138049560308761031912053680923921357945105058788533409676984658510487255468422261978084490222842940322635131916474025766291397743319789116189543086739920059584289189480289898028259712403977872817785928238887947020251425291423009443574204660064314778991867697566674563442900464949671838597090752598437289572491157633790230450837406198952835027948248130863171544983576471523682249957246709146082838034891512271449656208274374336532647278105383423120657285581258261071663492015847419495028200078765821697265852406612942319306849341057527935365042917328385199363131648448269988255075967386820426766626038372370183250563600438830225091399512053186721072660118284393574866013839749998650587465551710532381132749237732926922341566029633558887366468659556824247581881248093110086557873804889527620258751561429401118407317022528473160354684779482953342963216917343873495488018271778091123002847926251746268226040794713040553178725821705805821841887622521431193152769612321592514196633041819312218910763208551879764286851527680283439429853399534979231364170049868033366017140902135543729645638535632371171773525612324979640753216319360222975719615396349402540012122800614414656914224004297617931656094613833064068595898152109240146718122165459313159490157392862165109142206751194212794920531190636562386704460419196580037370920194208536828650887980688715911145961060006310483345033352500808301902680385437092217873672531458422479081683210723139609186898407628017010865972437733741846631162237761708432025986436349036523941605424161122023675834100157326835082625532498035774390420773963681364795294632545490440188495306872282876178620984061465183046023643031064623528769190200533031638061996861469564907854969643603383634431919655849741824160642465997862814123645305886199608950634024130255077671044844164701238682023581590215093133720692979832953748073728567991422730247906849228361513238515638511182270647082592572403643659458983848890213545422221962485848718586491685883312400313407001400736369162134747882457641292556259822636502126892168937217950205669127263684264335446854563634170130067887063111756730415662943201512393107681444839165405178467650162701279775468070382091525342654203105248554047798314344058869953352533341196001653670101869342933474995008947972519928304115361176497124531314287191719602962460418059866260514184556139529539150173583355502332548174399535491218376605661384432561673851622331795055894072030886079489437925840080543920292688905312357178951718004853471318008821775921161436336059893768170751091979182308456135228174887778731352235949625640155204690144154955521878866355722775010141834308186297933925357566234567903663839123479609434947838167293008875009148456321995754309638864148654768487274662616336545740836533633023851651027307874634071417234853668906019225214395145746468217151559035758931057697407961384723627549123215565312717422804762474884412793636926684852996139752388313879869594838897751876430601322589161859172985379999563027692716820721932158414303449440719775758864996366126340914951451844370316148434114611133006428265430878476135059472120957860404814418880225542082790880422716598716502396778631110619821402952531293343882636754679849041363430910039757375388217533491883226278328802467785224722528318483238626280985405803370126228336560588198880789871957824362056683022193197541070704953661668058635524352340160320928376374164451891056447417932879043347286212126585397497221033659881901826496932647584651594312494618076689636260170151445633884745848317774660243003449864536898016529549603729305947140568486030907996137496426778494140142067203851247079351474813416663277728730760517403891116224674061343926365530128047336125036487425800525365068761781444711981750786229947808790727403688983209341806559632607433467415298287501060146001885448594034884398256726392793292905668506223396091419177007309155781165297595213701375999313621398174505225140975316039516895419126034455224510388412195934298490888765236061958251397019520263329075744121449734842565315674650269663227708554292061532097269137366665620317645207067607870192446333349104759513501995455307123259624733647739928149270115207850615423325340689238547137203571756462725133596770691101071293938176389928658410334760764891035249517336278452325230375362780988141458703450478804419342188993848578152778427445477809878648394974743537672693392845716257550671242847092634015074623446215752720109766795746756761521032168845518252785828417068161089818951930831244378537466207171130665270355434222940196108522580788484849191024170196090041743615571842041009688730753054470741320518674431795579231402645372543997072806057270983955520072901110897900273155170826795676073025508839514681277851127356138219111713076823790900963438322165963572569106654998820970904548300695142490245204307429206950640588958144286480313231666312550910635879898118277382806287576403746773680621154709299083988121949928992630605835493730039275398665605054000518099998017109601837086692538184812878228013400969012032048051969482091619657734201444779621491613066131745015065607132167323859923357781107794140797028967422851889580755006102975387610972049509813837174355547542706828818647667155806945751454165927979805301748125569616606500964240913056052158828590629479146580083406931560002999133574928180743439280538295399167399279200007196764814761560839840388476971318874450082988616694250154098024391154683626095461820179361775828549059736779943437793471043633859219278770776228963156260666863313490982089477432856814972211835657454264301820015234393689519656247502131339980276373971316375860190349613294937627787442286064373882503179128077341717053912441291863314101842655794768699618183010023271283929614896860407218284580250630993426801945153315747509747707701524374032233170282252959277297716434055057931484320157958489190116307138485571085612628478860328932593283195590832080150001459353426783723965672090869286429877438061692857348135313682682005782268979183236180099562635163890151705117284715400672448736823388238026205949337398114317985377809984897551912093705154470169616300111529831602813606543624758049899465512098119810284429464947479743991299945600999354993620973279331136241510194981944051882696644581608390007155635191468586938448179587821108173382324497605035579111248208639999467672964503724435851614085484349561838390494033968202994292095078226090662429933987365930329845412568031197956116036176219924694158196880216867801654911392592627800435515951086721047598137455458554725105942562384279868035266712808358631036451837446450931098881303113964755698458972941329720858066548539833026491287785813941982225993637180055460601238083889459319895929253405641629354592303187725660809594326646197009393004668378414225344820520115568165933323171626461833771111800916452873782882813807837694397220337026152013261740528448309504178150375386313857476187586423557173129792046528375848033700587893510947611601285249089652233870124677062396817416035671697411446100875597023536817702307086324591878397599340842989704252089796202005034408107826686225122015151603185433622552353167901722486636860988337458973006797224585657178001713030996925963498261574423266331688730460023055458922869768490143646493339984546561873980653117290811998818664855962448084708627177291089612300352344564696485461419633434134658945710577816923318459891444156434974047391329047374407809896262040863931805422301362814725256167505907781589384351008652251639473064648714806757365497637188296640759070761296277633647495143069575280797335801202969884363799107988299486854799647274515877096438271410593462205887567027393147438030246732920249799378120663795425737550051118637839510433778478623462064384678674027552144477846066226403874295643598284424308823759809567673448316188868678436784076639808314955750411290828661562429004386241836579461336819500008100306796152723791422759959814843132488780677747305400312994132138158957442326841408230898506508301839809472185667333431371369440771136228173612854388408318710112527918680491929083697492324433069030135052687827005750068326803621420064434693709066111507064513325048133657669568441701084787420754579019277853429067875273630607817874246533587962627253401371159333223991362219051688881885296690543392332436220227016023879385353711556353101898606619280109135682669404537815841139356191833793573128308654611627875153100878643621160127273896862913738484790965543123498592641342307376006894407284675462953008546766940135222571248244252851011098046349202990821011740635697471847437674524078707861798591066676162093370021899187611082796944955896918065953663983966813836283971904091704916546188929755979056593968072005284391333137591226764900988319327840784578181094618308120167610097266371798964921348707827280004858254840815459277283595487542519540945561635606838898371421648876034204240291636995016525121102714324756870295760960218427851566568988578820727298721475443720738010241159741453016138387473126935877375546698126175870526494964053802746549193502576924578356109988515970446929159892725706996582685259207411102713648019685746038730366211059190482262661995519653798121473247544867068025594590714266254122846560235734433680867740620563030722635060296906530367127288920495380432163127668057563649440982044300496546193649267291743799119273810477148687995776195213452096913683250557101567700651308340581885602917254757047649344602316493149450485305793574606420009504044316359331640792986173364180150165592646559161318402277625311052327693412349249427595748670197978229900676095250845118068802743547490690839749561930067795788337262282600474682417000936660388870070672034914179564374080132151419804330062221393065888832021219239795595060777885530456134527667599529718738110390132802577867928467145115130120128648975749986807852440615840590050435846749016530473058379563308835353546516565364739963584390774744849180075573711557378961446580921512485352906821410452963619429108497369856329800965408649087263859885552495097734109990632414243115140824642242782287726237538280336542166970725478427205525048904083973211154562387930414035393008992019415878356818653852397702426924067004599575459042673535448189565425132250229937892554039711425602926936564323793332243723965351244071342134040664920947401559115579825314839155284345243303116450991668497315702340808049378465503667381023064933593467425327054602146216577607999889752841097943403753714276125302746607011483839683006783326388201824691446903758401588446305399595460196260076160802857253612878915758597031817610431900250501072708736974953528391005882596452152120500461432789961612876175600338274770493118801496940297475628927325719614206781187885758610820128176695142680337050776877015518533715895384087419508030452428109044801563454693472465447738124101383304262999372225270695820888318701068724369507266699063554152111747542597360292814949892426810718252725314890665953561069571277203726119414859880650214213973186938632662131500083525693916663145052665717435814688568321598524051373468776598106912307992585450105106298743312031747559651836108193527295376486036164783059386809950926555287135796263550155608350592329320876738358564801372181705090231833967717502911473119946022283822266611068767764678147074823387352733993346370821970542558417469260836560802537838130538504292991970567250590893371319358077368276685732748448907862610196821308461461289121633129527214659783107618312880736195224136156500672913024570196611156078432098819570666960065595206412851052426677936399004909012403772974267934729260518116477921041251480781281988384591210447795984438702952064182009836756380922574930266121107781585043488728320136320651617144721109380040996565531809479632065591470242753498061300620931894662899747025993009730938225773512622313204953257072907278188608161369334036902221275670904599389904908695769606595822389947709244358092534753444369007402177852534281882613042209986121323536931249857465288128622840398798028091568765471008210234145269243354827845590494126903729482880623228812048001628234977758328315842395315833381666139627486106619020019239146301413697129222739417472251331280487009100183555224364100384308229178793426049003280559635351766249407049121727688163484623820231115194983382818513217209676929555160269095379544251203076487021481072433188741535253702360014919169791959322882257616256547495572161562085752730878018818674185743256293269277894738343333521798705633193652901429777825428415063265618655766431290465211081726182481504889948356880813379488847037473733872396141922163971919650258046577451703933278467428178875429131480671010601804142575328087269860742019484607759120373348026447479945702672967076145979273159991457065187411245162770614220717384829741588789121201459576887861192397766693204650265505263071159211848697122235167768492417541541442751218168063108398925748030739722447689012852470912223196023069869691983284406598673021632082137337279893107008957461376699461174675246473252767292670289560746798994650062057899262931836267455090001363119114374647324549854858959709494610933805253739905843634173520001765147865655422387614103049057306801772486779659962333378660985639045052007057655937142030192768235715822773635087643819764112995402899666379393760284897615010363529867353399124236119692395228108005491032399567798477349101693565322158736764366579615778260410900216911492955269590586511229965776622552996601829692314674594285414999992180377822064813670786812900285908128843672998646249193420282585318527128860343213201478298887269123343384052225038000385168292369928247229674715965022889165901201005532489140483381595985781084438587585682909483660773057426617401584407915036791174316557326705827974792550356611442182705843135662316258336500588933523098067923847832228653616574767799269505661592984663140298475303685528681401633395669240881481696421714508880365522319380509265477463798790030692171538510778257105699435341438040937389938977615303582820946979425662573849284485948284657427748718791629201958887034350288862793395838854375042950610077804167913421534543015206706227148466732122200829787623098256971790919540684186728387580092261549628035390403367581424650560787250228174512550233159087141855151819642775310207541879728279174298399869784849548480980261329470259419599899827896720890665784061325945017021301888148500623229045723591547422995625328964350189795877429524587936212957897929193084742459195401293263246044748082988966642270839914123813892624155869433915646560084111485774962195521048582313059255196954194017559129031913397272605944441332697123504619225132472427306934407682052631871325391320943334587773780539758530411075044321569339662565260839172570583017241794875637021328848949207424935202068356041647076765674141120629941850001885445097340505119459226456983032969176258982817902555624608135155977441113412115781366588583521042684921886229688100786426481170177812982632532601274346849761700634743312349604418300743783071058283206534012923177482431423403935768651085851043538512331981747622342919532343645318174743869637258764622610436922181855432967192940569619566332558257268861162702362406048691924986618341737426778866264383817336891326914837335813235467731520168698777538801087748053524878327498988167178409609977391701822080679033746836469386121362687127897691775070944901000805661737549749499985400139683850403966361730281411303941805670935518213590857916717023706161516484105451063057795186579781181136886560699517830511629882313269829480052897787082556965034984282421575264133577874720775827934806901687099602769513791999930494076029336250437437358213813246829095422524396981734961554872774314371525793407858494397016834779244439027248928572772030045865679089055067907597133230882712467114690745137028110765530973693463323666131744131246832928101665280147308194447045000777974984210413148452608064360578217654978210651891243535569950822771491781504308456651359631849844918602490492421823483250129901770006727166239883263391900990024563929684797690989029690798371552046578574062310966876522300968416755145920340302042685128534035386234120173036391141104862834086276615617902208273076828252120745718617062456592858780051882376721609851004238408905808786405582520719841230967974454264344936555501627746551479633891300374956494259163396330599325618535025682465962259634758897875111359382757888089353037836268980594698819420408472936411607056386705636898599950497007297238961984442974726042892281722550004539097718323939439423954155423830034362635442203832269139002625373449337811911844426453758305525549587838861112177261328550089579519127817361246266463296665275158914718203561807283129834059914476315416150117246804501114685168355429109987689029801289915419205304003405460035352069719989483491115547737800319897251691915980228307840171068942876942834820166309798144729309484443454207486406274235424137458417634671994812276531587627238272202850323165356435349585152976909357422989242814458751286984155727310843668935967068934529404760243480096530604294829632171565837349692883275274187012083182911724814272956100056906499583689412805703657020635901285195970732716179342080996934054085293533850430831493222265739787603588793123716386903279249726544012370801768740354198017070903389289797085855306063013554934596116921337463106722760757981356487449577879986180209282460282724260559031311502520396351492766651303662718842651672369545614783518711636436403030971125279235873540787998522312642754332443771992678673781262397978381041202370373866601141950643387404517870949719748290680750311667990700341485010225805332473803735929450780708968780964147943763587959820518269913899821112299735251923755362108552900873920781753380300770450990518027419517659515310848312247814491633186317209972346808210875897554929218372024382037406918518785834656329786302598668685088367464256287804337894679390977018557678098527463727349302269315431397699652905039290012352296845823184924400323914215136379828193308714194695983318293207521855078774193471549044752053820789849431363315503581309710520012799913336867877210851115566275841756824393624173383151476182802953012525941897131509038836194093438334980550827666826906323692357818886214076209896291538977582614623763526490029231471375427146465143596487115608770127376937178158789450186015428448536728518413259012702371496266528797517145781722945465719021070711136318155539227315068320630664734337842721031152711592278357960833223103289620163940946502056635504469934466795803235537450626215504934875423281702015394363301929601000610664072629366622356714004693593072778196216892493222758021938530990324243097924067425373338646703440409342683321374232657939666804422277458889711087001458284138734196804897531102309099110083204455733738421627407293929244772630648269134001480686227818281114531221344758188830527137436409586595868428796051476286777828561420160771224048379383443591827536646054190617928176004133392473886032540440051430309559958734642548638812609585880944203355836473792032168582764374689475854672931406341158622420143240548620190352646703874918213341613874793100711355144909700023221644592814061932269599352417970032161140031863940954589691226926925601010179913896294550944538958013112606345007150665812160676453304005157103493640461957617104653112807586935764080873424269750227264762835799704673436963559504612192929908011372978805229338621842414882111651432085362220704682594973089778302065064491009604024944533022801920772959431234863090783998003125008700583568644579838601877835119522582181819526739932569379218614749006137741199742710075974541944234417893023179370943421730391897316674803706404840585863646458769817342070594313540381414303049407205877386631500790561235957783647038765180178155631956139827159158684806506146855440356935844396752475100511249071430077863430818814523789885515365555619489984467204928692683561307738950498708248943537832942076085751779761359046600873935785390068020127226828351007084506415024889090317400316070129048481780382277940390843814187416418229602909026003396980996212109603590977831220096601582706571677614132667223177844091982921298816184072334160496819746271585512375060803824491328853388028245816624510003324470773949129711020123962126730823556513918403948690798870529351233658672076700951255478195849805541380427041986485068576001033383222941965509517394731345339787424943986661851853012687215139561001756052585982678978735079077174078991375819561021633026793499591227257505828918505164753617586028783706297506102391011817436358009365158651947822223815642687718250591753060542509833377833657055902308666484084045332213754893913863299042027506394300870699164221805803167547780671129520150690746227016972112206249825269108723978099505798533085857377607781261893197950815815112991945738587658368625250071476019620082162837442723898232202969037980167468057731478374578633592958176702566187511782086458286722235626568625587257295713278225418151580417202999309583145339000958050512335105916821877130462437948253913931957640910536106853034575746473092700441521414273665764829844813156663519732884909086983631541592203577606187116454552883371159030229562586229824710606189485428174717687986513663619373486493225979169803289335375612365230284007485865175764900997077843936717134061159782778739405789916044923656335608219999963227591217116233540933017260015273594034717564413658326264827721189612309690396215415895670481001064562980971445988497409044084005358689385525637371585199588624195861041268635164078166538977555142877858568411647882073968231933509909074073570431321837686777460767507687779788411417044298412668068485397114839021977161696145424110370772899239515583453579499272247659247303709268847193421897171405962737840143901571752816905814470113208287053964477556032141820481715565693920369188085581059444075279999860031298685747684204704395842205054346000300524722616665377248462606305747591387328487821797811701416189838700047974963281502192624084374521487900776962742406216780042843849691060267113824694473355828329949026953470653746373117328963552356562393194700204991573187903683671971347078134879381154034600684173755971231706735451289183135053546028909644987921838677390037909180227153809523856972660852425860134291882888599652029673799067410965349262524786689233025419006037829536036941451499838672438726358159978800296885562863271320579207712812966747726090473318977074089497183194834692161990664368886473524532242019207375485050678245511149222858117883692660815870611218058059548478560604020142250495816793158127165705709953791916160242734004959885279018182273990661812540390240954488663401496845700582343120141991812575464280537819672825591822832257017133002975069940988148248482040537478004840409783399452206054349618666310236263636618446695563469551712985382624387118833502326914121980511055685172786836129485235745250402620892610137664028861349452436866532044742033344102755431166332579081120149636928398554626924408190142434605759743185195737706289745724367315910598653992036057471576405834078381554532092882683937269967080048811380287364462054208029604792411992445806082100438870016674925637276411230112942605652699891692655717131789781790875772621908944597369503043457871802189679002852138761359157744180199223606522611740385266168146254685915930769863494268377383119397643246572598591651211230830614830328842626333049603533331725864127899135034453925531550011454825746063316722917612815435582947250294560544184983877552082944132942094382050652094265398573122868303819804696882370311285942905060341959652298548010769854483835396232380290701450617165453699828753221352945409882668811939720238085036506523309510122662019746378699831968233632656231525120053250180633196788820300427951585310915758086707266595429591145711649090441468907392225189503423775828824944215486226823945539650630302507834213963224948080305229441698545812740871341359190437755529292010442623814170625979947859009731820601615737052790726131507092109263479262773424104147887241656957537170250562160845798602020935295043524421947103909229325004892935755936322103732622418490275835049849201709115000989019603923702940251892944046745056161832689353710406666634493663539497368057719829205372638023550490698987271588460386281281754998625199789937906133048417294163263427801893214723789442293986386732590082726550356081332666881386879047005332205411920520101106685207794205610132698673907691153438535085645474838670064210322677562379617653102465280018634712114726907744988841888833854355855180568422075174227368303993220612707711807455735380079844456404169732820672526111639959423796187256939641479029515066732816815459226673447756123263068303732503390727356792712829884274361295849254386762135178211297101568676794842226997807203658325286125238128258164907302145805384519967339381541151833655633555846494022595346992155150153082289766130231395877296030344660021154956909652517722777148966572484598442344277894083060188486725124438679267733382767684971425754724878450029700518260132462717548056674579840520632683981554867669031326312237375889402995941483589574743937230680798690410778100530042781178754158670276482380664847703659771844908614184357468201977549778663465859708120367176259117409714017742677508261987617135251896975190059468856226142471365903939965337211394292794203032909375811100888558735644741986442939585113913884232182366436827049259879707256023540215895299734554334634104516821786971920385585195885713155730873070269998491137604291118098436156906149425129670778199464931980568979331740873755706611300901985800415177766082707971450052570436984127015383348919042091644949155175740578552450465377435097519774877389738220311146836810935447986356621463937525250454416676689889495373512919078415128772835609324522011304009450191684613483594559537950729802609162037236494033934822691191698254689213562906677303694350171724700123597235722514597237699343617248352783073412550700071448923067447800729180161873501057282684718789927898916877809475789138483882062167296942343545713019449041029932594361648073296695748608736209483433066627995540057127359018808179016552520871710111969671514761650591528607893414554701865605211297876115566266915127302712370806512962785990405250198042276618495891183088150165664764066996655905152899733744350632416658177534727293636262599382217919673387486009686542662611883722315539653869011971345278879337624329039291461089904021304746849232458912502553510970526912853399849283303268673722094176608809932221218025858384010412860163403245077590832181810730187898405084646714989613180614003258518066859425379589495985620932882405427551039107481248174933428857835390341981443088398598147741854474683348459310853640395499255514197216918617035813124879742526022405190188058274692271424293299038166449647147952392529163109067618080444107710897704549510474451016657387013933709537293833413262151508164035711724141628486105909130711507080876750328605199856136671797914554123021441667208723642885182900216489489340478641273460893561587473984289787451377223350252319719801661470531882429214294214672095839742502676151082797518572128539872987010764989726890008077436191692660123282624107070871237636585956002043765404103858098901005182260192322826851098613171007934489986317542831969372183085578722302248811274081625241818146467404906640001893634898388295475241049240171468112633876700209547108756516949616464442719576038658722584530969290444592396636018485126957952245383028125780740578052314773354590967407516874913425634270643687622523273615114066378565154575709545225015777220839868478373879965973013596390339503126072291997007322774733554809599984570953684955619937635781665136801185531116838349284189065383644685302630105542925136168173131111197558375584014853567404604994974266151052497491674108848639331018934890334502591932257433829014632859531162509565563532656055112462512787501047866757301978164206175037418708634109470711969647240965182208893524022560113746315239757164020260964249459200301223688523087848121899411543662234854699001302204127400390322779458391449138176129274585157386962552397183561319943775834908825897390192655142646182305193949840468720957401895943121231182197540043472164491950792988315052888918759985075662536240388630647833519354049523329605228196584949054907537036227215125064779636097377948476271038360078456746588109891214790603667579949026116208521636236066683560419893891698195355338359890087386752839042846743362472085142790006579780311744699613038762439055817062055605037376527682898313472176051549351083704580936584224623759869207449659144490440594876307181985246842773653369836002548117643887168694545591077172852235969525124641044042113534511795689208692910394912446245847170497775061949294335465767254002799421116193748037764974086938520057611822810230521427710924259452993597697976964687237007633366543120965119245244017367095345592709659436865639229011946216345857554936046577365708841980244568836375701537917278699133492644001842753693270988899171497637020188747431243040193519328098731814368346995266944606999411189479250889638637177989207125086678185301675860844344049886382158229064507380708199108619085478741437316091086286531409510898115941511224295073886661912770123294301395650394814098533820800753919459938250919402400886852777640154974498840272329371420874564973208117675618535499801021334862995645069134681085416513634341190268748337664523513452106313849267195703746491981785654758847546208326857550559715599890950088973743287713577686527699728222661914229541945191153842628732702476889119019858192823400594154291011958005515110776069312853210053188794293591262939240600988995334039068240212818632598283985830061012617182637003118883251599011112341360364086364447407598385075771199356461609254896838977940715742516546169227337468204728541427026811355196057308563781156578344525420777647777655929765002329887580780175273167921751227834037359489192272028977487928526829584163003081391704683037027378009516567108344781055639601377602836579805932017040171595777392761242959644044400123138155096529779408327621729501478584294854393958588449220728462981139593768259695179419532154455316323622708949071115178741699273393466533005517117253182037599266426825604037864156504860956425841556841362254611320710692393932135922008681438091951295406991362486893486525396986082266218301100733935035191369607596897839114986884988120401921933664627488710992868963927012418664837431543676389025091208949056390862158573512830213350016105500694587764138291600167706670058671509926245982621973062408609885972448720146912899870855263185301380943702361153956573350872204158460024119103394983914035832735257035303654623986243647828861753326080594818663438304657284610747351449064205817217852904929826833448514779723433218890977172823804851443931869759179181954281128224384923420545562756602185525412099843938615149646690676071989443363778646488577278998986026726475141315288964706109142145896898232626069910838909263115176695171805807320938060103045808666721714801125474315557985136917582613442425575397286701199921868031715717148229592553897090918578565919962038317572205533456753372755554841130326863309119063719738125296041778114329498707428910226367363615984595244586112627144942325200747246491779363580672590327077488352488120360615905957075818819134282661823362336004465931646908777253503770938439049948461731688520373163321341617427282421229323800719663029117797192168638361477937778413331672167905556658115367451396265612595127298842040280076377515293855135433816886524333322943227357209626217093724858762069671046830340648562067710767290659390656993679371103593362650791891956065103462774258499929587780787956817763253931891092595827352954798016410828477646388995036013120083284280231576449189193906228187282833869734410710038126110966008141747014944543679504818528352615831481843848624606526251297425083529835356089104057382869398183476921739809533171063318467284556873001230514277528072165680525347553356798014067810395869135322160271756655245308052359257420070126545619518267168122879803258699176499030731325958396014126031299378067132918616058695095799047883119054774893806897063177870911821557801530782285932583744285285306968860850146760462989087266494051875090252090825693449828802564142782873457416488119975172338253173523333681678168355344101484038190461363208161083068534345109009739586125976550486150971766657524533216684999612823278460307202275009501695645946654210259441955199604100861865839398605035225392332287954218120253153125032596998034657572146017364963251610601673710660989937914965077503528573202787370103046034433581446838490150005015790700792646106843270716726563519542311566273025395666777616141830756146873843767390912733059845916880372055282821056578689897304746943066473406302118486732933814861421179233789189588824415138115136081780611889833891551938178811530776269734672302971052864415481544702714960384920239023009702882496972959607706181058915128910212018684205693358291974577152399378117084607151386548555650962570568006691567980566228339622534849397396222716149747816472391431036852711006345880809043416803783835418252855869845205134199058608666012956780362529749111583190747690502999583495875522585139505307921855570400181216214706096625035894184661633383800947078832686992486258300352266050287831482125126025020200546850835675889972834822417824677420607378280992071672449289224417569277666111760359495132814239964946846596573593030710823322983727805408633718986192181869713082687403203988130481625587077371211111906145197842970778192532733739579744679497252538864890088338382049369055072657004396874946732926895550213170609735791059898749111522631918258542301749946317338479698610221957412807290236858729971849449615223632228999417001114426610767628316436267753922977719305906699077733615137151554477364280915838048712514115848111281443151974077240582257901819577447194504827674771353672926445778248064066278423638024818146158490317490485661421452293322937139033334836657251780130888847565058650397447662818990136473194143625297648582947405481941818450351349643766762427853059865452984082611968873974490201471548307174445110689917362730474361337467459587787178791524586412212526909702100115870179304339120182126913180886159936510413048592994910891572929856160423696335196378695105417545102670484792898721395273259578852022853939867854886177699097689851006356700925450753517417054238679290764019347313547736479446809772612229474765463901881545515891030959294738890097925857539152447903403166669593019284194553514264294289336370301891822961452385179857393571567167389912080187171353738993638880367148934063458953593846593009243464531248838907720487286576932093643833191144213911801505090762820962689523224861817281101185462909844339519994043197751167616517443107174391691402803241585699499127014649577226088120452168470976380839310459043983412090359585254627647246587451554203869499839040764119415887030855353815549749338428843702060975406449352621488611600676969665939604564251397494960305183144926807877305213785357766728724382088933627798014727999504831195497430366746967079980213631041633793902854319360888338751284764515244371128253983512165237801071550078321681421955023806223198926252949991668099479521743312898487670913008277052671687169477958904530316180084915223427992204466755213837262640543440929122325366804491212053882784701716126898848628051022185465178309142917589792763661311259119208631575459923847617051977860909645160302189514223889884453181715382729482787978541134381380358432324112090083330767272866873938957578950501657442829524656776312904400029857675326065525753436041401281700780710153599690035584858624539664721139491052609511491572428066667414917627700255810690135883309035652551615190962908748670010574389673309492344050149639859394874457597468546239116080936754778965728612223523416803207718459841131788961687377916893446277150292174447114640141093456938663549799202225929178440600307078802807444041475581373784739462287870086035240714375833729397299017067507179595830857456174133822917987492999486578028195972059948063893320405419158700834644328747159067021717840440380345743728327893876429918559805170246669183256876569828428737428544924732449897699845387614452886502016837769441897483099263995999514161705972505518247870307785414982591376894850946794656776664923052464285445874231064550153087172488618851565596258528194837612389081243037120716909834975449766823503484722151048970073441147558102666687842723505849029410523005109934318124164552770236919415184743238485184617168772188070352892257515135488403765077604590348238628579147880968640203144786273110243090718870297274613285039594669021563477843743935184876430281678836300173883603078872348486418872770267473438318469275048060438638120744844477644016418815879981274160766350142571671854709519302853770782396663149707124817442129040124863870754819951522419767513376318769122097173729729051275137931402455278275981523674835458622592609263164483458377138441131621081480813510035840569380021983372555250926848710377605190875854244671974108841146931067926136124087919663517191870832575358009969992734709993321790757491329815671588058646598687525069663281784230919491666383931158878164781020180115328156429528329558855899723994272120868959562978354152763485865882007729472139373416146176683916167330544177862621908296764086854509536688566505492794227996625533535187244110546389293454765187498651683915845463381295827028625452923731701489879172362514006761198692108095351096828372480386593401499155816867455338514364365184004493391909942376920291851810845494398760505653392282074859814729839357826802966855498789433807016418481669597944234126144033168940513388281627314917718589817213163774327168010866446902931669204130064144618260741967353447590167368803935667894104464871518598798506852617932577125534643425615822567674410881991127632103149542682004417431299242677828856000589684955632821993136711947825733254832866223603552843318024092256640116256454463080823220402850224563465408542073038678750183160009942701461256349291328024466254918425090028968744550707582650089562085825770857970196801768429150443159129479126501953104954458449261021736451037870038227417567797383600902878886894380558103646916617033147216019517543671481714650301574129215922549564969020325466020208694207040296207488373275191312441250565718861546843309601169260597748098612004601818553216737220650688021013009660956140299910856324282852214772208513418230951014632626618638456918593160442308400396020877134003727532371143729608817424282565789293482009485865238847222027079294707338746829549446213219288051348682672752372220670388102804698823304297011984137264538285146405999257884541548222242275445049857508919463084448474361582981684762379692362987301793114040955625458608591289336377705957036699518647595706476285805690300223190636440030363984564124518191938480873199318807752104217087603821286478753263064549459353197868432053724267746844489790889032375849268917212158588541124287928173404037495283270999618098408497604906604535717281779243242769857403486872244434896283399526093784584977276687506027743898229100363846800502142519999438161825813301995589981253780575192670749713268113469077128555339749266682844811518848241569079879880456268145122730544576936638574858371515778460309711076682616909843137480128453125492755055669811875314083452891298776050082947735431964048754758693505485148972543707851379175518073612013015713407757388904671889045953054661137682057451189760423483844324171991066918926960593709114865583369327894086627834145273449556095538313984390956585514275684346624659739150728534455176827295100884740803603036630860742983247539799458276925103264017018969867358183538779773779983635960009437405713971535478786075823645171699036636041850725392765956587210241152497806235226942267829280036969855444158269338873198543149866491480976019419413149194690789237397894932564487873668333549000223953197534513885110255076937050089265019201816672637500274197834124232708679724724094515978003813209173691896670436428220180328881974775852926932291186157502398399869663032262731712803800704243999504840196190555594847731452091569542293478591166060633379969986627137354493366468761478586539116134103852948287056245120876044984281287685123567782155430520744566340418014617772289127844327170582378938331870158713207990632831847746092881331873876463831087174236266282256158560919681204877150885775638504912091483787745781945026901249273835941857520740231477219395664039195659586744559649205808027513374749797237923211154601287410253423647402793229718591506365230144932752088208820076503220052486308064456580845897956533792637375526765752415031183413923710313984065327246315449520363131052265285477875285033371554710616367508409526720467996827405317603852140950040737601710704048734354660921990250848318584268397534418868790756254744712211365121691407119045775660572198853880491112909327453437897105512782831696808237484255706437286813847110474454644916768938946573333076609089026470108868588647435536502311271048837354067013814974411981709402818254340672976707832942108560685844365140957545566013539555213903059393354105948801968619336751244964025259971190529584324600348357231562237050447248758601616124832423550302499441521240909986825848854023241313879200503151497561464804711101745462087874754485672938188208166911098596516633609118917797320630865934338218518431311553651827004236092842448832108028268811937354955634378565184384695008108836094653427180056212702039410496247015997011774779641769879266600702551610720953579033766137607158354370113604949772130976364954978878057348503578971598009327380094854448196360279842520090066220480473439826302395122790132138789245129343480246824220792305609110338556376739889443533036982261902510631079236875728069614715138078546384328478359742837450823292289601921339086761898679012008996247486621942819020787524488811265048060995464319114185397235684874326818994098975730550295497879435869498921525674091303448470396906490660559546614540013225651492746927237832584412672477355329693912616659699460114363876876584674540812746278527423016239842196234973925448615561190677744703551078654706001979089093914358491977132356642025492899947177317123913884598604514292445714402140523642149208285696130770041906719319491594682576008570504551309044007264337332135727040270594795442680952978331977158469162367557958290459279017229574698310372574270965723700133964192861188647978403759778619728761317233298233024088644601019308951066181322269404805061266996829170064739636029964701338687684659036262210190679155680707878586397812901933785519408831142477384918219602917933995550731527474052395575352164487927078331258541481757989086056871597297716854922929830720397233412095819012520950734969103850834461922117707869949170164569803854768523220719254889393932432535804846668258040066756271748344717963226980487224548331336483531814859149436794246162532909438236127379008757382688820856143422313382555031950781709188976570117177863120395645413668832647569945707007942500067069196344247729291829297806683002115411948455096892793899427095976595849321702214462061115982662967615432115457192999041551084407271188596145674703191916707354534110731825264725339393193068387575739021179760483740900203872521274394268279531738577491470067551851203090661729906861140767985156963719234689567215666994421948461075303316109774077272885312927660742492732771311576350351474462976852260012963023656291920603107021067534716175319871323839090312525478733828416167673006929301215332624450347431160274137376125820755661026729493279573050780578496165434727920018188475966616252633329046649341280752770244814501919346025692429209651062881086552467588789887021908258468382762406593776523110338836828491582789022126969339708264433019271054622688100274182570286645297909670850484623747326033104438026467663758919111533336746988191069554646619683884094214218934415592974428061794595803066402309921077944504122531181346934283693954996559195646973539953696776524945981508977622842885534484946343078164263957471441498812460469452524211965695457375089247299678119195808167885017135575497225632451806045496545291844636398602168698690431926667452274391608386508002537527330887956859261616854420976172697337996032154561860613533840065175612044324342826935665387380321861022786016177551065239808041939092330889128234219876842116625137768607857396559145101775529265973545221795599089305169422851730846264752491318726103164317157294957379488658705859610893542219766205767715648393269720603928703060970931712637210179154524845281494470271828403757091210684868731225389280508539729256143705919019618274111781312007361841152063159814092154365111383730224155216763105562806034481519841979537779909703040061403157761789198156990925993280448138822327060527849559439630051107263220444350252493413086057509161732499059216257572873258573310264718780418083060953439530851363181058288649623204765916590989083116776604743442323511948798766508305644971076478559090010440737818437590558135119286777645335092336674812611041417188587532827622691432735198457457964723549805056550012275956048081605538920714351735715609858906529958661967394675814181875654011678595460593544322262506779352743113163556010565881403082412969513463689466720575572371336394992151909171339826560231864539714570778277627262058525089830478399744633686942803299978701202762410106539673827564021609458623992212967743341444172777726204606216849454971047224013957369587125968449511002576843733270348389025581199786380065870513628107914301161601262045935296004217718067727257286900946268121659583304789283287230349716956515192599348773560808232804747670304565246148805244432913243782473917976390165960202868352992583347183551604974801527106865341217665006012642128133541144590380687407222651970819055509797738709169553125175520439823585974081659750951386435418093249482674733817208980291738801337697448328248950605549959051201370036823314716758896225566057014589785587572503900252456220375446861304558547982018094596603844147084331914999718082235110869558934623040840468074698150120703926565735528853132474591794038624134641243897908027350667085243130592896796095858259220787663482277981410020371552380739432669608905549290365705365736968697613622497458746514129811776324201395554200996515519692078596279475446809584121835418131538316100105122394034208298664796589437629139293486619487523620307996457215654770677429187864831403202499698698693797830434666328382364817952438204203967526331406278832379704358143238194935299533477004661169094971572348171716202794076533689438609663741988105339970885095693725263639895472345516641474201246493786022242945952421109567332189839511672698743276801463777618311438215451821780881538606259893880127407843039288873166965661413950291852659872559602229072603299840409882423566557106973583689749922377882590360379212553718798592362911020986268475749455700741476476685787531947018572975676918526422313371897442858104339620552587674583741316382676891190605002291116651201318774647694463232850939181293177714651743660265034940892852665936002951693946398427447941884359533024778192780975401165570750595237498517350717559047371219344216060781462638570178366139815611944682466265994103905071440641698962006247501823475209228913134448830498719775173166147151373273465778636164691689895303634700389833012905157036610548574661660910612058341704211914960357881902709033273592522520185650936216119476661924299106564026803306436184307589813118580170275562630567332500177385953853217957023310031860944007213833332160857256760411637251253430538694629037261723947798420166649060496189473307363889822139443015007576786871300743003096303903640931110170341469159347959587981778603526749606432554120320261644179406441172375098184236740856748240320475991807757295027900658871665386295282934347517968509038666275408003691229635900694853709472941436433644013150403276789991162604490333312112932768750405348949259173182588590920182213350721369936143790495433310714147389834410102038101036141586240589690277333795208972391703122203661097140917646439668129941850521571003991676397452033612069428055952205176748750271742125585112379767505523687163950642015305648624141199549672774563488662497827690471646291944875489184033567696592091406592849403724821588634668266261207080096980308033059235931970320457090576516976140351447584791578167279496242124742762760234517766234585494679606496098392149778417568559803561366926550543627906857435989407869666553524551338152750957693192278469332515087212766086074784254802420762030603530918752603226337789137965408960085677733455064751171010220248348754245866773170747694005109840331367445691136325458522924622609873343774582339645533702709894232125018940134050121963747318708453501626098184903275177191762860103591467369920800394185719187585661585318720332627651153427973509211484572883389398057359289997463882196260940733479492035250265407370248767899986502019494326352692235449547100884599281921022529904100795412117905695721558575332628039467448996392682504603914124728809951821453128126321516028541634385497970587949504855001910080570178255347919267024818626210151239545816920125844292212734201845899211912854007727090508943682537248387886533984590442217208977356906443416985386157872630739941409885020456344030642982803907780511548982009414777544908928893853389437331134696643748314719819990351239428042642278838702738170205164983952161923716210003259596182133322450717905033559318536331916100238951912673226841657016578198787923254847039195543720679836333472567600313905285607606382927492839324598156512145857573780156809959514610110945857402770980266043686896515626480043229258392413676920912438053817169253280131750621654041095055146161723016739562871955064365954041885828620923862626044449286361291568455277197243146456131460845507965140940103520607997010880408030141720273483964624828615769341580359007040737411804344347966913518381750363466920678005979967725861953261687283236635382458419758134234573824653403261081592755704282303270849008732612586017622833518889093047402705288826062455687658776418550997219149401906345855535629992769785520677432181755466649069221586882138754968552714502129536030777373537422096820306711466670364119184614601692676112287493686749047445421953256089784336696789745611346340544966433433347943925384922449285787485191975000358594663037676496570622238879719309162360989008529343013142025710520099968860250909617597145363914719912017576062024480759262332336329344709056159437504852993731035754966520748785053613869797608946504806405856946335164183044237313159052937358311853451252284728523744498805150172050332796869965706636641357275926084115379019131824716353144428876781378538032660334311210681070630683995772243648075792668378847731601983061054187352191286979187205571757837525160784061637199244374977925851960457761670185755283940144364621432948365834676060581922899204836756606843048347634899291421708646296640640029309229992261714658070873909409893073964197081845384825302039634084613962563869215665183361418683034088915023944596171910557882237891094315541356959866364617855316027671015158475115068314866545416204012573900052616700446949377686658607107190645038650996728538812977635500724064385132562622048505996272286268090950700890069473364757984349541341607418657311312909935824611491629256317688765586034421141619317360123403383733584128701339563762636599487583505107003228001325676435908477210663530847153197691847515591906316213320338636946210406623091114139613792379720258940853743307582579095718250496118786729672437007171311795737941311525703491913141895224482850971515157982244906238221511293632111256168224897159549196606796528820740382862694414006502228426516859063838456057629291935469791305868317832471411313460613970297160534000860914551992129109548360498910195462549173411994030077669627091409102036113697881568469738300470175094627048592377042919515364771857158067407977872859688195272625862898339276526539873087059949434124622091369770412978880534903987243366428269510793980766586448834511139391924567663079622463700769338019507768959060504007525989085407254097789577372768650530219363023570954204952683084670252370693978835491556097746436074341853636248446910029330662675317313794738872343257936088318234340376454873011659418718640697541090250292089330263156947718687298934831658627852493675191099775196581271585225970130731925656072583072938507248459925237293579331072360028330968479687163980491393704944934741360564764574617706078728663532980033071257895196740845996610649462327906585498317102493099577580094604773193355654067973588407990587430647545355407242560044957862708266563731637703404234972491189973492491955403210575001630414405033268444023834839554291654241088764777561969481406194966278636433702443293665114517331317433560857912182054545138555214472086711905518471083778307936965968787979012588697426821313409450200660866709179749689439039605755194078322556499061390570722035360051144894486416181894407997501682022124328193042776238555641142207602213549214081451644546151705174345946720415665521380034670689705087994688563075029601014556342725579777629372571890638421926579770230702134215480490139551619352013802722274996431606257916683597850945162733595946636103994711381843288639067869562121586045447471797473283037654746935785688180098584741550542765469268389686542324427498525378737321746927821542808041369822134261526456220643412632171788656195966249282980080604610403254623125496501877275887261640963445264243255156698942990624940832582852843407105027180882990858880387247221144667824113052096770664798178570785365270292793448823415844189378707916775456513161484455919450826554146414366099900748924724403764807505874954617778076541056010220495833224400033151164334168199325475204301649588146884846688577130985617474206247495437996970716073065571588210705368261400918020103697407665722648114756981086100840622515239380590113614459482344554400564631692921818820926037110642536081603835665114388250093430795691446538698005795322532183198964389131406495161578508373918181691756149425198720198022110481912977694688626723864735365860326022695675975844466694938012253121669441089215795793055039370548440831253929056910087896430387899036059582672292730115980604481553578253779831746280826697960746565134845320242307913657834105414525138733561385738080294573794879313659932341084243089520996180193904342708529430870153922931641347121095072782121622752919302076109174012275900633805341580291060910225855563499761262410447048562089569310980397789823713002859723851955040672655441448629815467200412258357790263247462037538242638696328099298048502499484004136146017779932816591179089807839789797712448505455496708462042848332390017461860531057786558661669177589137999143245258680998760165287126130132072002918087660449520739959873710386988051046210103802617078518955071618733487710870963945668084368328696129304636755072632237870198797848937885059273419549056576630967626968844284035517856547084278069252546736634127589176318336128471875119680834076551349385575098327422963220331290327088129869107123438534865088364288716200548067207908337973539608430954775834808365931996605319505950921028091457700328012533405063050799490331987100767056852656217069041532832937255922397792743616857427811666288182897549492386220071050797227063984872947941699147669635659452486864495456254795862095724182564139502167286699895259335652524820182605593392168813988980436899560549796924553972326772313910475870211983231218786736021660758764678329747311530442965908562413533387759827616971213238753615818426631423140235767911507903351468347876463815560848537346528207031769134098120202561144529618974860859277242791987963870185038684687931622506489980578871316933804687622991700991499296353788972925948397593301660297299263680503873876928498154171569347783770950888350990852988248636670177826858087306851164870337931557251238946781684437467482408417148552193229989703593497701622738957114950678865391541828750034432951329737756049744110852931428741147038563611584812944843194153195070567760401578719529683738865753225373746752631775267262352013510905687535928219032196954673777425710065625442026398001504757703109921711820325021284871393107942627107991839229104702914670762279926812282373812020608703824889888829088187590505852949897827183318696038481817732885905121361699581027452152268326011677541007672150118656016989718933465132760375414274068320904674320494665202874105543766959077889454896272333809473586864669204362389900296927964657913046817985148662282190344130301665456015074026637243898240679819892578568306539831002587962528570773267791187859566000076548258205773674362638110139066195828141140681826601689513625051429894503974347365841367004212134048296048810003339350194210463390359831511638526180222472322437377255872197134025212515314779955392257139591371673902439996110626931580418333981580979462704889401174855539510911195887331177952060778678057220484857113811000800401381168590366379567673155918403162697650084898685485050338831703405477631066030629870634052024795797589407064840449857390925533217375358117722144564974688124306177526597032884728812393216537536497692305256845565853421395061170946251486232900492585249042856486985964872185497820896258842182257703159536898483334278273897492740639755350291457429104590438373507299570214166494577124688476778439212137198832650275956874388868727783873413166232339698299376094109931876517822738313783985721291356306413931046812144001305932159462999707749720303858698444255186555382617664330617969490246335271384759356672069754078912399544193900768939378937127543456300224473409273209724325569588219046615820065246394584230137044077041165830044243413784154325763355377852116995846034981637614168678957430536358354329596786326889830403327262706094768791041016949946850833461073324931536855075765386629210206875042840634607768972828324866545385668613830615000908092884882281698964311163955866550589332783462386820756578059305233115675232143687272466500069646112318712554219181457480611578325582034542646479213571249118972634956581244097547923565556785275439195723297277453124001865394832521804881354187584931922105184880760370299026933645368635368112906681368253805070804016397465605193026673801207643761747526440292881318913463554221120885041934959243013582953332918403899016571683834649001467023450679734774733232617732163204614903469479351522854027881836067053803725690053646643486045480400160647396489498390808796368674039969079876084680913058107261839455164674778296755709304099526413192773273904045348443719385893784830837404446343974365463708231027644414311515055987917825422775574269809583370928349129086096894702972302011139825808556450768431056194289189038730773914265053164507196481000451798496506299717899923579290895583584148800142660646484087908673969130756845293260169574621844951306585175685623690918326281354039843418232434923216325919387794327972555739692423401821685349738688065973707240297528031993138755061901597637018816981359050117411037403293274682509460117363672807676569969759532174664225920751653598208703104525835978490808246340698607163705082065278892340397183511789025884071878276687664363561933534998828826800854331139089311730322622369524437045266863350492395045441950655194631182061192226010357755188744975760720787580030242652680061948967500355464298867300972613013135355613331623003011395645095741577744325634507101606482665302777234983398842818972146868032558144483229837252400110753374121100661436351939264510863486470895039667526578183675938627325592008707513858280055374791516949141193568535291216555154398484989118159168163367696324905824330857935590767615908812376285971067358335050629527035550109484302285928531492462389784432292257223246649335269446451180614690354089642109420959609411873248758478905834504372909994999102376801072437470204739339934066979893351346081046936262423719436884296893443119388609694014336264591124091337379602752398349318885007099934120924434418510002540194899601228546847854562629624792066453424150849462651724299362504885769632694399684848251018564871350560764147065516002248385070976539332299217699087840728008850636240855969073699986969187310074723419072821130869203312008959237736685952894151189029010430545181587811809106079535056545451568804740539846303482479764941378487841125729470907054465614195960844974865627779839536908642075061445979547596752511478302217229245115196086672411129185383058906698519015569568917515512753246071784382896977595631170972153064597071379725497098947775161086568453912515908198566660564522555697361210338390619412458242579074040500907059477827963062457943617846137012254138166255810025976781783534854866766989860647789446239414263800322300812341710002347065080027316166834373493261390638770649406681053541518972125077031537111383669274812994509967652741538791296174018666061174487271041583886921044058192999780920998912976882813697947389294152534680623766601240911693127573633356007806536801974920124385126813845837626817059750457170639866675040820128979661380729197092453829199004855282093871149187099022012581063549382911159687708838256300367540993278604479177981423863365369012240582720939907299686997731918371191839710844910858767233552385449853744236041869020729845338150352683424006758574366623682234841449751673852540005892278627700470894224157239718948766462389941627135693594731877163135502738324051355685186791616987020605501914017673088003603381146854476722545016406989787029305781100662948129741806883174434631221395626995181913196433974629061582883544006888168310747904668763031621624708680129897256534150189133251775543436162543693209167347437756949764819894426291241004729707720207607024320437459220879064282609649595489853825279217687511979117775147176559798329671562469454865524328704401830426637908173290468076382575899965033568055642518425203076633973714701775951826475350169059581555075232836175457771926492463999679837710940380116307347575844537551781199625484948764491793019511256546077999512723533941775687786249518710856783734974812203172757335406867964248076206061870015890324095703918122793372103166472102243052502020770191831975642326967461637088975723891089631835810812278982595942388960563909856489725686037831951194613764472961231361315901688720406041585125330485579805795612435158788011235239283758287342476301937420641857145255848732079958805417351691578230852799117558425894275335120984226438342136616050881978710254763919074980645737117178952817384347126885624212638952756939677394074194968226439291502512455279489931401290972660885902613622819720251127554170719356235524018484492576986817184127322863320516126420569042424692456836611254092068710936632406450166575019164322588277725775599427800057758363138436505470291085592197139122758315913244677518583497827919347686571175085665233826150716244393413772882671592414289654532824987899861212072060016183255309587215049659786118063906769560930886637967172430567499940872638932374761804075785593160272888264344320104728625213437938483558478146298163003741012366197854502722547652427605301018667443141050840047471427356786160011348284111717844663669039369267907683914010182705264667729791348195263664293487018715086645491520877214574202730400725282768275917044205729913980393478650154841433218945758959190423519804034356937840846250000707400521158669614901376383320672696098114935319432741715568171475067841116319174098453451523331174369634222325465378855457866096022983727502074075820061044644378437056344134554732923273054920930739066759620882366316303087514645600887517381677468009784699671217516020203112580201518948221802250473091851696229433263829109703753537672810588237600692052536537448308798089024763411073826304042940454639529538000664827997984843904349600321127704944208429925146871871164778301936050904456241381062939835981884781814351748116937009068253668578910436962085768867000616624475394732554964062260401114936307509792405748907257369251153463072026895097142245859875046030302623358829345573484255735012834056762827169690499750366878151131122464835052678200835904514056896540582460283644960837789554277916970314193913104359509282283022051799496996668102124046307107648903652924653672459346983588881364867957035158865301048837509304432275835584713564705777636974899946044559819371783239665887462964674327505832545001487029645376309815201456848769040792751470231130594990810354650820480088141240812567849928845028278560779937607126926644693839591936503372470423728084077336709479019560270874173234567890767677768287059582808880018546058390345540989660404737996707150690202737578273444872040788123704595044409437723794094426175306452776477441512321777910173866708028429636160931468130855394646432770213107045408067322487015136161940022046184790677534875721220287690644864624100727544124828021743725952041991210699932922428275841551422271644565944883264816197591836011969893726313356366949674536657524211335922232499589030028292090081164097204487024097580804810292266673262807058033336323980618448473762256873190022024637253815937422952576200987561248111941515301006829891651498270833238716939026713843258835792978265859776444168991282875261797619847345428319806279696043538718955140984858728553512016165510367381127276093173350656713470368002289262449991718740278259178046489066585329775719585710191050340163244329256241226542108047243553826015130650902343782009155093759678862573202449700289624108393507225728768991526819749390116301769143120374347681651570544092138809984187879191115703227328539034276186090671752298791869726995454649912655785434602463252172075552138324665717190812700369294858891603031864482121508864026896365487073640092652111068353864764973939129957275790139280496608354877515763587580230511977385016481038233227533891034788052088123720788738835877249257278645992445101240460021334281662011918625344624196893327390251352901310964419806197413774219053135154932673966106894435597636633707723706073432503728159202974592439379134975248001625968196415126949035507406807047450485483373949610554087839442414077042431899893570886438473152867436843211135314468518438219485246517317074144356524014929486543782471264432617649460252631833513989160028920731683392241376431160456649510700275977775961390252847839363140088939293694531816693961742586963917944323570398172483211067611594988133150293779330741554461219940610596506239652903493405152894096984759549846687596360139643172864180458261303564323390285944664958967241414783088195748587210750190954579590369626135217171500184017947966493934413282346670251539791527997764121681675554954070370659116568343705458394160545417608243810159399034963664952828612935945844993690133293466163119111238237276348554123086098665769312945221198855552109468668528836447951941224824594163382774823644803962211141453017540273359976780878103371959438418858199596175823749817563311909838460419576851741590505952752398575990374868497289905667156488969485646573926418831720952709541378308824196096997688501806546737026504600022831545107194327673131798576234338608636836435439929213284256768652404800167389338915784480230056153991322318562738453842850691605041887836518797577991694139916667005575812755306493853005799066093437210503466213893372109131647662560368935496822181559361505392842996482997431418741577747312763107539024055163825057335789314570806914001063032655382683355336244356647763551813478627434702981302540598449194129589265383090580553308400262939885442538328622621451101420938343100778410611086314434122370654598295539685751102793432506354980674085638056950985562508847710669937045630718977541293689079061656079784605370228175888214596479704094052229578761781105552787504320126715426016259697109626480161458280948273760025299836911729559160930680030205907334223303277794001608192307915601815835739949596307383816847525564291962727081050909345015117305013608305828110389092117364855190479541340751827304186127920172359395703302420993879156509363799068425783176211602001798436759692066098656890089894739715576591156406221339071539945546161428926953470897438283964240026281527232298037287023168008753592894680076922559796973594238347660938461415232297170037493973961100131815521091486967874748236595401267226373702542637671398260037039120423046514279272967823484058935384504816883125906260619314477963994651000807289228881634157665943169810396475481192056052074985506813438852911670276606419180842905555005547466151050086782088150895382629642309027921011637986205660547375170405533743937346547814930628012392717554024433207094331185169438841612020447242583503764156853686444113243172549088829080718705493365935480787181254905570986465935491306104753987295510521171623015159459702012647927333688187517815617949850173848184763440035414423812232334045368242514698836048788414617769843117357081162974539075411148516592760169084303700671445373611812334146866864426717439117906212839196875008374987552059561713268456960111055335512678874442501231640446175074618053031173945749962943073456425453737371552529472558931679517961111638417904360037848667983898527907133182802066360511294731763186350312597937266138592814719703547631000979951313331623778307958834274510233829592111099606489175123533432940431935576300310212577262819889409735674557563620689256577233856573409843365483998908972534962255957361919336764351056449716345766857962464222865856006692979225459355358156532599455603602198921836937534468673577536310140903639874035777270976645828632147832679713858373825718335651240632676496164419479877853239452932208940946265553028741667651697916922458717919754091939959857162154808330273542496981231883830971126274392920670112535564899149291166307584952659687894418877504615410893928508037720330934335705712945251376776105379911307422905715424281639622482688949138479360934722076968315602988719894911309001036645874745748120385275039026447919386145935676712390075941886926564324867732545354917365267088330147845392174588116716696178530119473009245903474520211475627128179120346018370123148865137169889854304253792672848245942638078813567377188498248809141350775300493329687392434119315072635798406404020850296026183758775250070074129703692754741976057126113403113174921645278177066796003212388235222628019177528972187526207485427708183201390990330514406809803632255174758279732967629558686024958556073070596141292745862363203249161934377704601516432513424921308065211015034303165704161334963559839085777324638359237501876296364620727664062034317683710986003146191001927103033606837628637929342498741978888485716734850671625309964173708083527698881018314461039588745142303950933106649521665592743539762165254000759129430320965296226229504097752527509318742287043983926086339119260277210147216947995922124833820588690038076266327673917785403935535344128856537231302206662143463550215710358349046089120351203332513034768628409778979191047442724853557405182016805680075634350222899901471945282494439252022355318759178281493363296496039062521269454486995696768418628859471104370973688763390722261463777233719926298286072799950389607156883949981259075301865120499762970090514241087091390986786318345878128303221638149339671552740022071527806660928653401188842464328221918138766050225033429395943811587117880466769922796646147770654570641675725858172225952497651668574597703922506942553330683738339330762420326862617490818813608881864378574107079196327181838186671530388591863356649520434101451821246506872939177058658629085493151152284324777187669587982829960515664616440841711675995183008950837038960433117388167319820397288546293111591436443743306704436374235960473928071164336895382610060447400008443714528125007254189853513380269657906100298862248031306710421813674249331186146695555647402537111271137135311297704546820661779002925539552161338412415910737925025065762507611068779730146080243025898239778070732442562644792203246603970069010347889457551752873317898380182114636448904009680430508161149832170997652212453236461530994229465802521760406611085246780458569571701968987418610336482027011165720821799151763567700179172307458224942770160170925551151116297228351160959774477339518979821034746091346300977112200225370180675249428787509839523814920504869659046588024811920457845345637919160598708055990470501701728217776370430247704361907930809731131185063682619882791437588697497629420420337075195898424164453781197576556827990176406303180246976092114441143786895028290741836337343034012682353613536275426141059635536359950631111749550719269471927178268611541600210230346633376594856384946528180222907692617537251537804788710333616616545320150376229694328655772365244570508980496415034034418155566184330017767897434987993429934386355226830892912397964377622872751368738386278205803988970700577718867081633633923080771205278919403072062194181026606348965984988903009898477745647966180439607317022232597826599693484894137545821783564134916057152967335389999543928392032720536603075191162713112218945204346255526557703597596245383520804646514765049059100541937239688376758981404534159574567920627435143892740632856367861725042845220710621762402465441985218952743099470182499683675612415652684530777601574181450917302146357435451027713262325100690207751411732165938012413293044849245786076488911921173452707012623915639061095463782780134874478886548618061575265745832642482133601501856530817631473184368045354778834692930520648425851709907634802315180165457644391179503363484159827134856410435129154944946442420341442693852192259065856355908482124663633411060184600344509181532767669496493591280080637526893930157210496527649410460647982748847591382197909921387351973699105756314487690770048038913755375256772494802254222649107904491139875834445381688427938388876329009548953186074927918607135499926581177075911393403498019495645648079564638111163228582194037512431968637076734530354985946242984280964587173967929607147736281240460054327682714419592537149835068540919597601626148199166230531889559190475065932828719643298346313136061963628814756815235786571546029165668320251487085942379415017346637816329620551422947628875239993541144009896175699865410114638094933566228618181022950985908546086827024608021783656250380569748756764489395748340609505206813654969236949523467503800595286067810025132543757391830687199679314621158417181489560585461959733687696725202767482257493626069640545262702731560638843571190725330859128169207945831917639097115186737781667517750623236908704478213763610985120184209085706256076236877550507779156733819360816738954290009812964109354455957014609097391823834922610324673958739165988059367337103790628691559722536999888832268632905406663469846784997428788711379855486917083652838229782295128300650583869513056603867528271413028360635608869313695885861426386536255517258707093414775775777099681677949488939339424103549186462639052934115319336258235166453376319130239283744626864296061499509816338539213413332204998444730491030144942680053221621026949402792292768670576895552046374446679047058119156960917733967945375079168706924732175403760324746010295172637624658499218534030604824898516650264550497618194261737012696415694177848835846030270151461358039127544144953307932452328189299021208133951397343846860642954011977577766965548818544012209396979234943885724457836774283072221298955474803335535342583140387868495395897163816269983196574565942502052339564354149975130894578769413598962492425014203249841815879992781054344782057006436594762657610718368215632471737091541850763555869626608326588295802780451214313440136024237458628013413586018825150188119369939762433759783200961223216740298969311971692716603002532694471089724251359752231061701084144016485326349957420859799714092822546906154101428907779055410888425128323288963118424946015828935732288100116166256120459001677314567694304282568672359639341312085239873349719043009637307910389181228761633493813853360668267547370134754464043573316742995569484868155600513441599402447563649243101692554552654507596406361368729275791770106575140574524456886682687645199032631830689949203472315053868757246505029544479517327281473153788934230705165521723435642040860074565545015191424548836766387670698014775354535327406758118095321438943731129898431363107716515065601487374422797464528409848653676948159286428303720852991064856082434174754740685609271663399919476781726591338894798212875208029855998459656544005044020580731626273901910899187966096449870534815446193943261195736761106574423815717613748620047654324980774928517116524313633431519358650711697149771296375097933812567856710644640560719670751550972231241914471238266030977071502599528346340035425642258113045154192613597344839203945309120403839948886423198097595022625595178407905334641315428610812245701006676470574329149160626459961338903839708131071752158406470876629880086255161761060327304816581438522853670965772604683291875536284901267262541710547544227946478559410012581395928674870651561209953555546087086574165965797374938382631970455758057979320670464752553426128743381434291961272250649175372220428210441769241487672903261952952605895483872051350475854418212044912931228383590236981128040205506262396263332646402533525113735123281858730970026447692809432767169379962310402964739730204300388073094865426288051040798643345351083749691328057254514229180573375760495528689144944040520244562880707114589968418565879156943749413025012040287917689246013689631649412327915077882720013429454364777112832246229372179270834935288807180042190706960864336839298114816891900198867238505660752389055581099816465207333844273107315915004907917593748524158218228214779820335702947018490594092453192921260558702664248057593845123908963085482354704873939409817539368196596115517484380187417475278523772545362908383066668019845139205120739959365801211938889770609684409645310214267912730008008467477082725771252648860085551198998019876115402396956477488476856576601714100070261068630701765710549261787542174413155550667609603428044460041420085035958079303710385107684317099735426995064796121642472332579121578036065859434586510526240830458106584926376928933754792339125243316618286805394636759831387387886220819222170572554623245499147808816147397458468680449336678367436460197145046614316219404521464452301908727213817037977851778467921446999254993623639112568864570896071703030223041503434939538804415197987607961736434400287545922535421044886338666911083540771953717555939716241113334789005344824199747001384742802947143255819642911413113282728562025614121703438563772177401949663642957201230309447383875705222268218317334914808631628880722382732493026047459885275586533369510774360163826133121145270195686300602105680443108938095677216180419656207986729874662684983989921057780100839678823250331163175724072729560011419327743091072613867606608937798569540589587736867219643874033149163074518043346074585291024907958240351980767291625496413050424431285601765806017577214263769731193290937810595673635913345660699729095854913419945866050926138793394111542043260880324081706820647286363167759775025754122508654240389891316809546438658258706750142884343355357364308034317829708744142259995232177589396566763205677071022105116768384745328729849103329438567299005420281294012736987857471840832451175515652789448959500833055635608050514805538194958028435693701134177110463334865310171143691429849648426219188170212708008409923916711633826444854350820720136440363741288430717979940163374601612608150000789403509308607919091738280459856653947157281716130804437538359198504857585673441017871901924513919691599352886495468451716005499214296586088527188491453459802252924522167750203769840634730296157178323127832439602547050091191030541234859245400153001122748991600062047158180316552714859535784500785396336225980875074650163860905577796218377767382316414625654905952909272904949407893389718090362006424080331141335777527998438434185400368303670290972975591815633312995112308028470221786068833198979902365605115249065878896270483399084501541445334668980360445658187659804245653569395128230353648756622401011529026730621911028365456462419348208181944659903888484470070648022307082434064261145587117279730127010787737586963395101194486751973199200209161841124881460024971011530788795627008720589090911341197931011219334122893324060188599015437770770990141414541068994891900571542621338318039365173726361169232350650132615468836297177608025925344812604254377565906587779357324360150952007200026042576467714880211481167754425194049172146851834779163155813080724780690431890813324784058037870195244985103790960129137608846178380127600957873795081455697052838477831629943534236145403995292958361602458826179836302126842938326738480354479683836261464946953010441013129560730568970023003583985918317784981202520974371478404330747332919469502704721845247244470286142432461340145679671612154240050421225457473566669131882606209261552258954525312490617600172947536173765059924615968541303484125498583313129954592656999740708011262732405109143347080483820102114698145981775500868729133623019633454009474872656949807434747367362439715361225930504618765921641963769111591220496219207695814039196419006965446986701390265289408538022666121635878865082686337420573248440735249812260486897963814047668456157492979362797636030910727551223700306352764862411820431563443831773206789484972827909302752878329123154610229025393134811284754687737898445891165627180328680805826160416846427637455812896448349560542147573725583985723915911949038294181323936378531066871180320183247381572517937422833302886203231175423202854778838222902552877133675885956155246351018577764787035212907367771053687234717096304772645079663655426211261534539236338939011528801653882872147570167478643807966751701940616072935638696900832386040238035752372700386286619882783186891536235681582205755966531006189186812727476811634037945166796099154410291967418269707833565936326723389987618205728840938162086874407945635753990717367132221117220405989225409712358569063836216495347868403198551578829760953489810059465488669354604509592111567110297281934321226865584182688531365731526530136044877891240630427574889816785933665540269768216266807912729280118772825168086802237997665719059738341947733529979433240827097218136040153866856379773524592609270389281895220446804293614174315767234499849717207976454149550275055453336451663699357848604767375690426016324049722871732393123685076410159846878031664887147297665157416619009011634495804645939541924922323527363570509317505449248215635744774267648554001494162637689608661234966132166877803097651734388257752678403931142360069003142381928753171827791999096992863803970276670459101668314097726937421856975039449903042155392585129884896390358308531906589625155340703332621740206306789342939661402376168111856730695285519855595687653756762164017953106604823419184921455786885535455764262802262706333069811848762278293574272497975696740318568516358759967587926711644842603218072566133771797528101202444759717495695166669282544370459091310562758207407560003148715989263372917942408908494198489535728056349509730730195287364897510412051362650113803571972643235083564918480057395078770937292396168001138914804303560046147803900756883486417411396117419868960121079534118570719002686453654413484874026102223340915657946666649783865946666785786546257538588761367680019405882152545946552649575804101478948894047164898944903458062729218401995192364199461213134695743540058490753309843491706793802196822968252134341918514120692568161595581036154441720451586423521965767072810308897390202677319630122171587109668195454552721478068963118008123292939464000267765679242758044990832276996521926172456730646805323918030782862033624093694180068660563730819822107521913991136444493914263721287533575180984457018257104284967453590190595457527020204193626190955748924561785717091063224413077058154584790305927758090565953156195549396101771338584635974776461988763689639038259337967053873932898850293339433474789918474312272332779127835933070554857411008732027099402461057145261499311503186707868067505662391430811787471491813529153497599287345798895094698103832623386968008072497225566048066235070504863080607050608037428036911933828479098438920540206581605029055662312585770106241319816023693333514457036518168974630505054031189302760201324729031550751593352288117775300624766146337656461995560770805151305027843633651605761126047395559550250496243951568703867682091534305949539409503936963276810400676041233492368775943027702399585451330266171120736111462027338340926553651186812592258839524037357003704517352989548181513833397528666715835295759291148967793172906395679679812539642745976079760439598991955241113036565876192276320404219939076840323145219893264980103551104291258147044878575353677195385100909587487862075263739061843981202504689756448626046015090150454515647323298544912223001635520070633908373450619051694698645253402951985583016974237043881909466287191076551569917268441160317823496566182111278080820995349019469392463343925246255680511959280175938871484285473876693385308391239935797192468091803318570846989104337628063335216331648051044081955495619521961857045658484183074646478637184990026268857707905274514883944762153589775904346488113467861777118930782490698494626995247292078510236183125815436110863450199174989493006260212586705875775126271698179791474885689959634427828928024337144318375801987332311513899849811439940974500597103855707086229802405646054526251101468923510917771502598347913077359374172709245625970942651031931374282400468590555460035525447127061953777140452619171485302936317840662220165258290180128439824835809623021116011541792647142466013516110266656580675224547386251988935832156273555064480621972434179901535988291977465424512116702436600481193254144353843766401625832821520847971892145076488458431831834242571630781176022325407098325395806296973866988215311668204002621811719708353414253361572115798000651822075258227753781437735623567500276267529268173851308361500766986438081936901321832394720507792210438684302425038581170202092526954737648391233739972225738027536290716402911533756564870130353751880955257574687556516559992660955349510117716653712722859238403961072163147462512312999784187036376099135741354135282553882654026847042603967488169990637283463992222075254327433903236251706611144603993102285643483877071229017033531517334969655290281852088666311560530354816824989748270076215356863327101471784692189797025754639929548906230526126899918449022370038003415762359862967560080867608986348659581220422167648725590191467757293865915152090816008089276434483711897228914989973854536956465068710947774034466658057961619605460818810572576983454659356384896142005203888638829234684821381704264534370247031308856163288934466842454491422551605353084536848072844367002111220565094309505989698929399809353961959653931217864600932333588763530715001648761724943844969928832415404072792795152920950458683526156762376924349706874291599369407606229280043603042847265058337519990163449657443670519806204104965759930264934005276725649880730367966327340879586287429219358013573967535048200835404868469942700498778442880176462296175569501115333556562435725347827523998695079750683321622624905549214931700508073035161428091394662939613651646440494625007155289464157592842716296029290517863857038439911870064429635554681919582400387978125773420047595718327857759442929790205368023362946921950984485010802283168974047700699038291370490651207251770617946076736108920171141268788011153313419103205184989255723715684670531400250768301289101368027706105824126765376110058599670665082391410689722396373811709827530888544017804776689552118162504950158628129371342338918403858819004783044341665506660579416288242062196777958205801141729553898044230058956655278306184095538637710097655329368510656031105861547839637545398609642411152478560508555285088177880570614761758336425035089695372592291920643116426599952366135137164184448061713177459220619038459347772285691670798281634587957023835267319667251604950806922624227814645463192853263297004006152472582889609893266996126162017089139641426839098364699634460824645872864629009336067237789244557144003328704059516855810297850868316658221638575613992989424278782494737265673371121824187025161810028833648654133781429723165654809019769091618912100265942336137187355418167375117815567793582502140581410743814128546691215487811794201240771560618192383279166145516625864400849954352789078469091679937684184114030113125127331600678000131396952246721742936558089919248285312272574920066414217054875869718208023779607651047222370827430553136565235590392993809126894738849100544299939535262426299269467069461441819486817771585543668870074249425302770081658455686726126966467075399559260004631568798661242075046901335111238872765778948470610260972980567988598776764211917214994883750658469231748215544358115078709715214730827833658288928353264332181321857971079328376318806609497294768848325743945330667682502000041813346624082018579367174345231900290631561106560926388456421046546208721848708744131331110243095503509297559458506772507980018055291464743859585645073700569675463096856618661463785614771852034091864014751755157740984611652119228191060534566025955521078002921064525422859447736360418097953094428282435752428087061723757977048877532263823266024524120177667018859452496266448468864583632786891851574206456299128095983021121333303082503248075105313122727144478632324911145682064998886797941969051931465297340902101917287462982227375519159323851246974572550824531546769659894869524992084538890978289907391375071260327863467163110565754749135722466148326608790248467017972609300984252939346338109621728111835835328924002316828043640426073893165287127928964797531468307043307421339735752429101170209036256641678416257431795285556132405197400099627462782763708697377165406683807773406196417270619327208965978519454452539563093408274553816016218136648227869682619247256415196036451486427178788114235401494851323518192534037906492031522381270856190824466710291889546842372145084404458728784143284339271542888451320835715852654103566987734032913252110413550551324746939711287466033769166532455510269397870285236178123966112660928142998002591897053115418659727158301736296998443618469310560825858570981300467968498107549003888385421579822073782990442866966708563150254338661888463417971448792139007589363407466000306868186133492846007444960042878624246880641751927779863578590661370170262015210295287205825820262638960459647839654494356232122648141714734775197848853068152595281870980121919545058527760302321164451197133089291295874741650776025333954020946894228291681506737473258358323074842944611734362487137602232658822284742373075886987201610908135285561371956537577175322719903816089605108244634375765807662537461715639839538974948089802449279116273440145002329608522770686470899460742219021512017635067556356546448561263001540152942909157088014369809212700437663137946462405152075227385812321764225926174910881039622085362637034197363342083273078838701263929787763286031557308765869014385221225705483075875400961794741326011356207690137510148387225507546901327253239088788309203964338925683410764192329002260911510703059571249827142332088886560831906430374477638349970775244857131812898249634941369334509851870570273985829652918617461694075613533771743593327987209256827730520041472256794905213663002103600103584014821044194011045101025377332609590735262419293143399959320880030862852060382109364403810516729805796948651024521137983756273879550400016978550649440489364166113006924834043608654161543186515220680080067068535330287048857341423092298617801154722279120471803105589864944884165602900744579051348423878910506201932694557939462810989665759963478587549406679364009646558597683998987242027842455613663291806441282200476558805489269575138934179172161395228022520128383233779154768472961967659104665974182926727297454867691467912339107490967450733262912971403191887583369663285622878758350996660155185459860233737104942089300293757152728242313110471697236811531475004443317044501995432374177560965627064561313819354106258186850136990621097984072695420798985124506983052550627112391591579864238278604937687142932563735066385517936246994847444145342944350688967320422726217284433272058210884145746133160697499396641324827174525212414137092763452892903161437994312904678846673980017849843067516040726378590454626150769362507253645881091612041892274019595155273926903226163805597063219143782906649566956661726650116750898890497932394030176078434030893596745133650990333412591423428199392101003677038321032976436117229850367339274909643789006110053192571393324840023103032050780962640629956400062944659701865653130584114461308961165450896492740455471618302795673215339143398666307704930160124536350117669550992160910289000078585429618568242709948298236748315107295139151837867731280810006895853160963328953744391151106805978789105210938925023834044410984955037068418870408156281958158223376120329302987539266532902123762843373496031643224180162900526672828976186173555933894806140109973948079991118675092499692159008799540801204382625469909075123958903164106986809126921637680743864856654714567734487650461274007719215343284761635016164952565481697564664666522902560010101896645886678717501914242142920186686549635614269305953141401589254188779921726170722429666224760005349698019019728963678589038020298210666434432112649571088787205993054499488459106084428149027300107783662251533644436815083122698052937097608139676386612301234464854544095295478349302727070839670900244122120177471528981877417747102153505626892763915268524973533584431051776459761056636591539092428023473177513821417962043097969763429623918690457432969087524890017694740982325636904053133585443020788192467618692136164063283382220010941808653062093671778709356041541188060060935106303953916988977522110698909087063000700854161356909407793067259498763078687778013545612203481079996586583349868343187443122197406028733818050333403356324509710238277458576179678876694282901152739127209415193635668854612306106120066115477299529779650330605365899591978257676442324052203378572697640053345585688629898221078403024744331021994030328696793145479531901362788641083941130528564400702497141586342663189145155030599273947410370395292817417527363196982138861286211184045905038542594761487750727649919758059523943361333969120249625202669918151515451662171120784165674634027016122399914911192756891006164136168961874590245582455107656712775239416656333862834307268714024403991751473732445960569638435591072728631801360006751015778071058898148668874700214489808619166306659331948995363939528247151354220143043354018102286316284626713628485181968185753942806383237639397558701111885868298185391230711462496076903127504367575425122360210179443924212145071767118992715921740153966651036963869289720799685694794206639570447029484967318849129164065585276955664866309625964357794725928064610440340710353612873069672040189676777704905739494417827798598671904880468597084450832195287319198392994452606635789172934546790070555625524684807089376742271188369898371006223400582742899942523143273994217046934850078769112908862969416313862734325229998029732147332526623996013386485562323906918991236195966712753852003291385518256655994458443435933124357280870790819842524096069779779542202451759380503514664562001589915636568715333354796587259907106822811675243218653135287062765357612328732280331563859713064282651177136178685441097690013283039528466899404167833624198456921712869157874276495405160813579923636762421800435523054624960765513212198183455672277613962639206500152830039819957718157556470200935709822452378027233942786056135487560558947337489979070184879159589963857915237044789282367143005279186180639835372950914669380014145510122076852853226962221118540585226811974131828561283670197393528152807747632794684124227561885267273560029609816661949708896311032617347542109761100490187143891912540429063191192540627777670997724399772204065729617049409887058775242411410251955971428666416502320266542994965117346489954917244947167054917452913190429983334907137087280068539454018182102722765675087003068482026853549639991033027737585044075368084551969526968463490721370786616233802010156126494362770847541827072536702549149914404955506570882062637632827658294177495091875272322894141173320572019619867080412242286567078548888673591847950325687819051815184977426364054681384134892138859236114117701576032951532912690961676049086487525637144735536499579469972209766374449741896425378094210600829708230601674063545017293683831679773365947405319720636582686243271852956082126115989920726344315491550536620079375315592569126778039266488279583074321374897811160249537622408499190239307562731032627976858704019418461130813939917687497338159372200436127029564193601698105953073252755774186550803589263257860140033238430936305231956383367143985993220812657859830686895981230234696868091447167729360081594299754424158105182084612257783872749214136504291385801380620232237801631340175290196118250684550316271176483213437088485461872127580297681382889146313720630759814686302242205343570870049576663919919304091408009606560401929906081264344745981576189977951272022960572549540300305321410009289491985244339674807646232533718324360549347147467534097863198496124316205870740265618366898639573926379585759137844716825317366785627340833643640153736480242584552400986313008352372138352663873909509891865383104098324009379831674365277462937727779584114455125698475866363142115085430573808524175846520199676454224073513432261010146034135951250493728255927941691614241533375679750999674518445948130927178205121940468964143160933094491065063377259056424533780062647706584599345552317405127966343916421739909127813346213728949559499666849551601136541881079828482532844355993614820838595160088039646946073894521423117563013379490858939219971947772793471822420707945379055120279925831429085472363187076027421041919768407085201542208992700905275510871665340378379167467146559683896824429980105645881964735356803500726609568468103804206833744682489185513124564812123224596597729635829213115482315177574141613197774483564089735566090302035318597440458346918487739352374096030965428179050923579276373159132750185434014760291156815667514082115798764962317227436319847150699621692601934362985424842420388724045020827951936322902888537229879244362337943310484527682870659953080956515635869977740767448239786360555657609752643849591604854206418291170684373383758870544972246693337632722018589894228297905084279922789691566887261821974444691220770332001122720753692360412655503391289851280244506709038899712906374784603913475457740326967409757950153955503869095195274282429114511627119975805229248271130632035421380754963857749941237205022655699100821284842788019263074841291888364415942495029242239251717286626441672947142893742355685226013964339725731665690229752928681529137911732832916786994394233914449337429553025328604723847009881154317598410079595515177657587251422592220779694783983718203228838579731800750438968178429421770009571948208568986699341592141561879607132687719152884526588052411525920496245239277898316483124033138624189444050933717932045748376258811602238396370089881937103699162956118092289555157622613088796165352801031445700760692469379082409686634793012033271342362661189574152875257721679253299139220549424734616180206690117670878378583704510110977248017221582187130795345551775371854541077882318477335874952693644429524107153512146089927383728886219537462520643305416969388933361466362271731693306279058668495594330782907246054798117754629189068082967405132570468436390216785387568765388805073840997187424967477048667038549862337978895394124229819287434947915083734343384674938405605798121400019410648106848510780955794213505602854826625077679118857780520835437041391833650845656723294889458027521998998016422711176626288050672522426755087662476950088955428226572480624123702573744986579182245296158292331329467464542015862473495428636256469655145840146187290480780257582175838075374027469731410188475898692748468300162978202443153394683020875085849626393938522016745630525405900556144680481786215980511412247075153574040183432498341503328948991098756528503045417466962495850092568890467585668816450391250183979588668205577977788203851940632642619567389810084367247785812746197878437197432597146496938687933216609576769437360628862796718079628828753298377947057823546998523415351340434248868857899991888474456618448823183822394878078179235786252025529953362186605864238097498376964115758871877400973534234403576945939269259645586062902439121931913768554551676677980324285016619934293351095339725085696102262387048383471706605271871858469878358769183844827177167172663044186799323876232200648913902867715637218689565164291181379240157460842512479638645826851244919807623835019953954652735438340305544287927716266265664899665040230916240418970807852627994453633252775493505914139958134628977983046262223098028529484047750120215178123345805428259624522972843732674139274970647479437996791308201590413405501624012167341597301002282510154995189867108706328938591497782696937989084791389538717667403507572555314769346584933094518296936918514331692146362218961541155355613027797020044348042072375023860887888917456492627412624125388332143817321173951082323518956141777110017747309173614341399328486058457875533798274411446187994462946591635226047001844509091306790117007120929893161319572579597111994402908650203055909543149933146382486109033255056079608971971152210026441813541305878988546898868126666864247853062078520408748484822440341913870360776671471007372131104325547616964302747375617512797792213569716104046548315095323969699542110033463617264724835735802288132198308940381411575931049899132945053065243192593899826011816220507185185067317009627552905840117790253520397235377336764758441654704043862288536396364283954956804381592202209818420753387913482491289358293366290322261255904737265802691964856382207454087705855030819046123000823464588575369904467973872214005653219964760967252258226498204815663579791211457311659339993326110891299411768150532039746867543599301140844258815975528366269026780959097749846087176933828180839781096343625523752290713454965685943967603212618838874879718200974807595279286883509348468834863309652917848506723011633640763800135757992185651421054920705258648674777230418089939015345111843247404498951872909398877560453636723736070687414157391277736678569996904082245360182205122277137625397679525701743161707276552784005059029863804998633497853487743420519015227678690455787908635113537858335758324547052484354607614672569335803907283325045568979505188186117012613237558530323688342207823073866910835972532587973493512466028762159298132052589548654813733719596502961762697828829693618386786163664565116246606174316926099750201865708997304242738981341334664864112339320052432554912209542379305033985715548128873239404814830535340210254621491501554409987837886979492762412520985847749656687777681138779412707133684568070558438371103911411902465967641369537444244842106825813996834501962969337331424833900486049394596859099325288693106176162780030624137709871567248933706112439407239530987305050200853504626176660031877292033983084215961702870128165471299229894269124213146185838336430311551636385453963940735611141609826434600174629710522710182918902906654469516546990815058270013475208936445524938126470906962347621272055552669566306439349337799919824149919680783942337616759312272467624337739904876853600613908334064376845537218866171640428231923178815566538086168745084713513528052889035799981252703148220291123118729540893287197683430255331230562775488678715483563865721121702666098531512073488685322566006651744626974254756970506147871564312824342452037601549887849819826873997663231987347806978194700112748587555407100617097508500965892227956523170262835596852445673214730533131437407087857900113515341860394323170951341591399005389519024678283584470984290437546036653044412171231381124353427528931828117127657879098423602265102401806548903221796085909000715760733187962727525080416808846380153221322104732468646367328426843718022541356185989838326137343392410957494110301463621844814380937945658702173847438095725535973845473397716274545836400306717067314135983851857503929473156323544901600789832017573297422087734528512801460417239948470311023761054279259002352032043882750180262435611673340759833186292573974225550906322629828370926415131519770707538637991190841820223829634570218100351246958698733531980770279148910675992889361870186361972902535581408741291604731927743998704606799670142364643031559985550646888709305392208332015144000545972271771283934371034131941167706656573054149142808888916744043524779019346436550882957107200262032814985410289039649567224069681009119270911211150929994214002836456437415581516821794630488872250244786352113639693337105691074077820241682070749288100412790565522367580008932235215076701563940279502078702910130617695008358265898207664136722786698507276303757293717448631567781716796881129667462639668686948658720287201333227429255096079524137607551162574584399518749443554569769719440863272513452387387902344356744874975050140563444751822312308190026890924730353624940411776480415826266460294717602659737426249312763853218223319227072689808235132113645246086378395319119094442573370121507234857792873843985019128068304806090924656097205469074024763629785116695607551964394848379586394555117389553199585281789679615293152480470237564046669022394401604839597216625339865676294360649318260335903272231706489125517281726698600408605594476241089578004049003583382153336655410594238946801447287904655148398662390195675850612569419917786180914070137951515009853627322115599485891629760129868799135588329278170288277098656592256617104207447588406391318102223675828276531571974404652542157356339125419916774066902195245100009501184695996512149101716086080971133844275661162736694333096035655145348812398236933586309474227350192255911946810535572173575824128257288432297444415426532229183765798257593852733112459837290073798427303647050148165030947987684310624163160052719977056062799134208912468499811774224232980948961442974918084256825351300267505515696194104273542964524879058578484153582164633602123081022555606782350334845946822524695312443592426778876720787270368190263831735098831476609884151211352578682596979350925363803936238818901494679904049661829252388636010841802880653162331291124796439818601196706659852063607737337137452408936301162672873242088016470371335647478753214481927153614373912435006636515489500596972794725654239501076911068924338738334366747603373203768936269358078071735919608081715899270063154392857431413698056155269940640818048689653748983084533438130455303534654579095700993803940768751418555068920834071008365397659962784748613433713471963615534260094319175357172769469298533428533939231147457471464389417811775863994820211273051396874349614518708835382402589732106281719174860732283475692858432919696530327875915778190602676262840408969935105868823371285324629067925708422924289980796746327244692655087876503420668686923508008688206547377411442719578107207746994713540238681539430012887120832921089219591286101383903720320470973077411557657122337242713275169186981153645780045620909418095313963854964165932106565974171598208350841661654601899349175669417282352675921796084087207399715516826280602520503094038821520501000766305691340891443111794069651001994113263023889388664515451542392904716628455088013685067190602196222172220002965658126453774821282135709138939329271724908635837302253672396109619466824175051111893465534683512201714922611286083422949876986118150568778500616598853862297215958744431272279322680795346979845296105409316044580758693603665984509974671749002997708683096968855941931258345425239463963761448041735452454182723205331067684540128837849410780719267869973314292664910606424670591149224933032668703575711941584564393099802122281884895822391030398975824903186903524322267226457991375134728413129590799360292097745443880430971739590326158429859728642568404260828535155824546892417932203599957778772674210884184021404659280955603633477386732238261356833104827030207525130725549981994595791971627801399468560795021809214593336481915057822585182477070986073535042675649910043456701000581295346451584519677733989787973549009099907563949049555397873511279807065570282046502446127567138249949436264262535039169232920477557238620043366725825896744188736790549867245400112986759487842368961897163789294685580954595073192867911915352845530968864724714264361956494907090852177477478194480140880610509758169416527773137619960741865424808384100868374216928911623054868809825217515610443791907506661772611463733669488551213163850625157060413572221754654168466554750946693422316497612211556222974768782871361106074314031418883876849500336831919393975551695082020503422850961170827462620601639046759110385749756770619729061905582953575083629265786462321741546677127322680905048531243789987948931081033063470513402398272373024961861482453238177235240882839431888997464624836947636681246361346798699707172506046051518353351192289943805812086517242714937543425706268396249086288923654888222578097079533828328876669729929329718419034776572467508384959324701515447354726952779134377009958307094393085806726880510000074901702613416703405701451921609793015781949597636075895173412767503037464424623383217861276578594615770379438767946120354742711952363897482299838188958713066460743534476171137698712228269524814755457309013560410348838181895005908425490695327454518719384352588953600236292026724857540088389085938690862471436498335969476322802551144084007372818804445842522585951996144580719298667812122883888917866733869660988323995721241061650460738950935497309986335131427603440915674031195723450824329582680610264670219539452340983806162791330784959831485266916305653252626204468321890381575842695579565603354939442269050628301143166497692014849039600657274972676297879174098300927867239162867491642096109145490605799465059467805472260153174997069997759883564361720014816317650325220608921158502276215611435944745379077627444237836154520307942185787047028052967406533264993573601032537747006477414432711666591475458588104983277609738376091007096455792385772683876495113371200035909074645641032130496756221867470208480348998222191761584797596971818451772159113183956372939189338520282814791164278538794212098820785578551433303829102708145485396723918658807853778673514535245047925662137742623839280204101213394349534802695302791223267540857066676566071488842379161764305980990333973488577369143059760010826224131865059423940531332874653323050013547760489532734022671118732318145732983034187613296872972324635587110546703947600986107341094427903788484222367636170493905083921006293753703673135740629116854264813892857022988225635631938070519216053962191103043016386342021598823350764851699457644924456164342701953466473901535888813845829298000405056091008326325985276078951148807882797494865977494249904980812417999181266680728577305347806785315860681655406271897275630915460713692713577646259226427914765702449696878865342416068666712401878316227896562561704481228843172683659435287387714820543737134096573953678204075266230897265771422178240416629608414954721358104174465040007202466017732279991519286751992639945587831515194301305361745693993967034181530916233395990553882863575058121387712355276416653529695030625292632245184737374668179702227077534126372308100944972497952768818120788711972014555600568577303728151209164984419544227496024118959407414015471783097846538145012697578395586091683230664841500874757378465336047717055913292029009731090523969835635577526711754297940703628571971553079812489426865029871401367799449786594404227934677541877396043967494168292873507148220839076802800300395112635961107004683951739335965571784301053237866042384912753289057843708725758125582411443689643604542727495023730630326779150280235304094982882159308309692830982831371432545297861630079992962168560104724936209471931093922124473584455879584844822463077503718443359204583572759498026537716721768135347258592908283090894907420027643715818527718777604386690723796332985941294048141575460328454203262157423748703651804776680854103824600150343462909184249305895219627103971623633732038710374960542219737840792999973960038157066551600433805966045118776773330438875918200926452530230399728625689641167088782468800869919392173465619878592609874616986894397036078281340165091774984783667266669937568561594621881935765709510210311907150112668449089370923252379040603622179909951777243698393236946444932183071107704296400977489968037456779272444662624113000927511787489088797799845559807313831137155408371708713261805728737552110785132877362786816244100392803464350797701040355039548610101666371375428880520373585783380793568596107819983535244658787536386605352101908568565923895300885652475487257837425139010753549035678434478580789452882921100222425090292180465841219066827821315128688150254565536924060547342985155973603468411015086164375120221650229002327486335458556950724841754072453580089480126903852382882567597557417284976132538696782339560070737591512095784710364168664806098533513898013525013816357623887708519188103161095736283724145772593658174163488197737305798446301774925464911379112812422836668927286365654472159293751192098007149114720948635523900792236334966786308638273791282948486123830410823046422251432685457027208870776235297208402729659838964510970267676647299179621023323940013841020982329182211970290055252278128445513223127972436476289598011521622402896972638139923891483371562561731659858255890758062780155132121147740385910614022955773155606404059272755752187090123311602751316745181060819938917775726111517215448401909552556832899040814854447301345145856664535010770712120789663342378812811386823112902043509206481338851607760359557356791940463520769927449013482217023299070242661793967881856284444277230874581780932226336774785698808872580743577943883779180036154292586036159936804115929945554878757279914534283974556147167807031163179480452746702487366055580051799180987174446486451953362871395285022641647197724206296444419650324363984109677796023215317764361457844092895930991596223820893733436297170727740124510643546491893239446108176990295433856319862132097968669101314092530869799372075983900078585983042255504083017609595758200804458104121403398578031014601958524651559983565815704244409632951002863962298985453629845577343691973527404376095985065533341790697451083979371200988826770930093783251012339588272664095121902968772618021186703975358340894437882370721897207529840533470256920658398481141160126134382258255792427442025988206218775786062946485454723908371652555861565072614886337507308130636925909067012505522030755578540928319680131772480395715186027114283466515560532829322066415927595358063737354875522142118202228084089396861028088817341037368789041620355553850992004299470251482197355791371554843331364916488294394231558993381467338379055284116096714177416973781576242866471927910322798533497395749851506507310812423715062165375237236355322780290369978206690009870626777073138370624766026150915256594493697109144600737826722712013445080211546475784469311149408278663968353682790521560842094468268164830598793128266118522020258506901712725623470736564904672418793243087222515723047948560256155593805538540394992141476543446787172611213729298975334448039117265229650528843430257617466755751304167699460661486448818697443834596681521736711975715964408376307227842551412953589567871256364233906552352599116667987398401143814643603055606962190748419842197273466170281238399173253425001425993505967798849334033656235125082902490619000847873440636459018755620833570889605938498463849429815326403119214917883507905427709309323840235882574122942247946223961736403343780513659568213081170957530582755475648764868178899068302422297193459138222066402080026749757288965609155704497229650488318183205339360979183268429315783537819915205163714668551431352109839442886093949510421091806760613800460394897174568556143888660853906989533583830835969257210514461766857780115270486091885193873513017051641945867775075154972106065124887427458121998016639911358376768008998397464612412240218960436295742846722529340464395658120560357532381806480500949077834371336310046185803485232168965404943401899914038395142493899988949245432225717234092959667796913673249675080564794255729029597173249057435916327083028864814314159550713916737244776263716548173261249223992753964716319711597534870758252190789068894805305493332010945374124221551405508956518563560932034120789829742758626759614622359441065060281395931588075347267279651107291792487400003456273583862610687899148104722855653871471543663836189686809179768928160815680186102807536423432322236700766816027662488214529145218029396081379626278973392412895762025182264587483610651168638157162144797505022590066238109075598870126105706685800263397765397991768684151821806990628853033194878491909178524735704347907486900440904831312533357337219610177171794517892820665105174216762182691497519099902111493987533779927531796223192970677202026809810030330139676723019956667853746339428374530951117519285550480992035503130496037169264179347905202755217615020353338874498014969996481979441999794892872894036922125925991672216647469373480841869093738254025308692983992671837028558477995194184123691977967487694305489350028665683530633880201506606047405346930811552628333798559727969145197824855006661903981770029710343263822892275276644073774341009819776870908970880805581580000422490740167305282187656577070520591688793378862685991473409737001684254064814183824276154390946795100363507706781158137059608676797662080877816841214467370530518590518699449390790744025840106385071246665902132297643559425441296718340299532604180572805612298165364429551314438954419435586758763313904980725783115484850003089936539531501419493242561199593480096779103276584897383659109025267652148663276460878515630825332783141944311596342768399893506385531009002740844994207379873957182215164651728320395261527783998302913891240420745946418004551889457518298616288038917860601320437964081737286409810000868002392673665643817047517043113957359275507737113791971334725586560265160566486158706444558178491940120740703904251090555713009037109515435155568978611219720347872273696530913520463766684518571249649369860575154098714631225201415896299264404073763283686473581865350977509569964678187770380895917697413018837929009062428602387172742525770181680701895051059715851040652369716678900373033689345495160553167811341515548867605805282889749204799866751648311197029038075997282773596164009358055464551378888119294917578564690953876222869017420039014109204635225057985761972022136709842976904153723209368720453133324613059991471582589496019917062546676542294199126445449625917093858325474386915173161246692903691964942159746108372561075483362077752522711294857177244601671248878805279265999613137499911738499379780024704761948278412773582122978203181719600583037475447270884328583342628375524246765616713147460625856743076526656618458153131672934493823856071542073715540248707836896844237673814204893021808021121895115814391550435197198247886398936859500185957135712046514583136935364819736097398268014670516965224123676165789836781955086978218666874553767817976224550036656328240179806616536646424347071599354204486859228215070393644987079305704882186891753504273098169050646169084068648414620758616550442798731737698001030971146664559119907261069116384820344846112002697026111598971936664520301614886158408511573125668620776190085014199045763541756968679844054837430403204140780741757031215829730274156374549943326240187351663750910683377547262956689292490018795059805933231804587130494941171600999556940671331004994409222404109444590367422572313423167231076774323952061451177706410069993367617357215616929379718282767959051470021318164237869089447527678543078919092043855308459654364607330976757500500091279203798529599883115225080088558323391966708704117125286046083230176742463364978825125716871014463931755560888739200441292162529524693676955177720835225260771157450304744278960764063457047508568016604379460608531909094240793014189810638287244329483083929629218217644393960663599940219077865441557047812776003537541884216737874941505678099927337305534373605741528614374716494925022729312459138422804342067596577795916312667805861119438553363818494752010354029439965379746043578674884106345450102243314597246543500256961983363335743692164150699022329870987362868216618762773730264486318027426190460160667408532085061054719030071015195091621332082106412774731988318116288903645637581870643232660014191113538594135343938166476319511676673133872873033256588921450087213880819622038659529029487489194961936004548301690180974840248914044522251783043857198736217015740318315815710636613796175859570439854066203873170986558728518268564527298501717193491724669188956701942851899400081172195524729312598153284283869852362017114587913021495363778440804826244597141742209985744796918484527182499196258943531784606621455051527862428768031118995618301005464955632561891073484934462916235697223335576956132748478763231585229374391194818453360432689787834110253159319468809759033890146553459632995693885408628381621172226485950844925876366010714282423811710880969245971688484955589020532834004682721658684868642662139165960727616556044718288352257699898589204190520299447452733529767650341794562770191195222834926468375988323801664167522443648991994429368171220581472674627747275273536567829726189396530280988583860448677504730595640133949449236102694653907269623695373947529850521563015649666812783567374594459197483219824781125555245175068474342512384012178497991528365694177941178277540568088192457087752349904238147757386924585840756462537207797174370328686719072787188739435229735638676218960965747304680175217984808733770717828210212661261743957539525787295115568166736444075451149561501247449127815978493395709919125364000152937208470247218316673197448906422865637323561421829245757536626336108198072986390451559729333878119549902515790513398534345771048278536455775556727786352089312683957457313517875042988900340592300439708673952302776418358496053177524613646119529667825401045411337988042597593446399733329887506193846117536456119802085267707653794682780874808997752162942231795069683764783360420629218063455268913951054447008139045970009785136181588132520962852904658131928666725059909022414742091998286410103186394157869799994494835575629726416338792653291718171353000156180496858544802042386307686164596936005491051501262933324786524874353730492496533574479828886326010777660968945378917152842644470358795668613627690174845252543068316681353262889786286640188274937264871191787590637445307842414158482981749113192128242954599255079280343110241560869593358100364230218063026812421259034029272012499041284637111720106933696114365607657019169750749694316359020264248247591590351270427394667336982075766368280129738614202815689644634745753062436228687619555723281197776973023453054688170722507181791876029093053855846762263174672214180789696581904775957331666010190560266956497945398416733801526253191918812692595621142420252774168553366390045228814464762118204516710208250291188522778265074018356799376815054368385223898931995187709375548575893005090339198485217195818880764430197802116828941347400414265232321578418488943390703059766658834572388782932925643032019300274624056224006108986110303322739590695772976749794656809956660784438953545321713913511166290199534476759833341057726039696473392549330963344448458382099830864155863461767064653796031185819587646147731741677343072759106474639914933752994110980427050271411751310428727600892653875659195533235998449983742165510941968599314511748827139442147659397425686381358125807320440312588319470754675943591135440646618819919671336249988530578260063722096432763110015821635131002815473198555740024019429279874715607275732584429216103345532160199077378642858271883942517979896539514264242743024276488791636178840686880817722775340731394958040969027499773230813822332317533088421514459897075126916954365210710773848481597701846321350263882498179358836068067295315100535172894223215972544787611081401654815290917807349497013227421581880012250307888919515015765035722490200142755421941170032034813640541685983385718810702101701184748581372086028757352496004070613233505704433277532666434802056076014427673502435600244086490243347453164056618974734153628192494305043781991182164651570036346883119189608687796724131652466141248792359287309701842926950734971184972104462371585570819728410727110177041916472205751776256133752821688277806659810966047036936671536819754189823135410207298537702678449008066631748642562027366785692416065682936014022605260092384262648424151957982851099710194549493505293346919886332036353389784002905225161649155349320469635568729014451890018698460274948158812980262379734675983128388571782252350942583992298823056483782235474639789780239786866748407119448062683919764516489031967719337865115720159824521794230387560761635905808035005258875542266601570529449092445836086509495359712233007127142017319408675418170190349771991226684604386598131548707492360262796991780849870710645662393185063766468554716514433563953264684890388938295502573886942755323489586392808635158956549953184972453355810882325646005525595645304752412189722423185566083600105916831707346318657697112408714894797516293853126495920616687858713127122325804954532632562020786225723574981378242426564982165910990116861773550962473739727535240261652091438614405528666835948716866924301950443481050461396963162302802029209076427783674283353854835250365290275589335896132888868120581874192458082675457830979321430251505209679940243114120980145336492487557932293281023803577830084048606113379547847270651593206479909560517828950377909655959801563992860479134441673847076267442508951407714833973801608625180040982082900249368119383130361666531608756523128779297272112964250046816440937719775178090436834900533735136201931137877871904562001483364360197001331862282325326519992158249877695235622455291355289008087539162677988342376668624150490093193218380942319340212132701488802453070725122675811487792825511174616868025296802583902358206276298023080370863064976392575079402000647143904075939038093184188095371673454581793082128229513968667190460904347598389589556558949595138873692145572259759240232738135332144118148297396356078924580935778760749919669258874980042781239262542603778907206434647815634483727072181786850973513862814086412436373974537645254549573424616466647949341929121945357823282459674428847815092258822622309809859234065508095683474823937889906329016225805305626896037499398315856390462317194341684323505110923271816797840237747306209032705657976077975613931399549524687468778394672316840686308879143913339219205540506353794117103001896677596025998584507176816094727497767904565411149585346292073967502474641540905744104962328688128519315768058766063694721448440285761794968079680679286684910877935306005630269380331155634302037691265346443273533186027556130201267404599854466110482184659675650479065374054971943412796864722797432270649061612462150417025116644136730630058643635182615185263951875842147212672916724999376283938135075004606296838594477793415791655982951649899541187784228385209375072687067775671781529402569084118701060599818131532941116807678483902357374910140235600098373570239857744439092358551179539765682928224834198763754597243402858676277698882312283104280575563952138169278569855747355787996520656443040496653484380459476266202980132031365832502186528918677241625326739898258524395559833150749719748283929491381170135994090341435566823969843292407967197303365685283250418861176000586252433929414904021908887038860027555896605421526876686089361188214491294282500640123265797430954216779212798056019765173284896919814779561521824487396043413255610393792489000166835814206476679378334401622298235298061143678631176385072804351778970382992609667123117813516213741721607677677941523026850836565266915410798599352266922326827305267240423284190305510575632508916929889083695589319785983533073883614787757240286459198956502510557403421780540903578647733841368842521034052263251447348920504611700662637186731519021895679714150034106395898435655322119180410427910495961308042828016026344046709360132655653396277209882282360390993273121903120404597645135992367846396068741594923279764854862971203123779805959689078726981673944856437314858437833877645249907239648168282560901499344535244796596625278330517634654535569204609037301011084515911799591426555067901766471237339026474177284229065607284952135461127240162426709994555846880144520381414960619873802835816694918166287721949939583716401337827121464234975691285837988128650761266301843702083472248475743871703188665725904071111404217710525820030314617611942509382303891793859175644153078348207548126527724746019352605866224748025299045674345342735170009190784759642698427230087512576555835850730162594726116887731739027867728706518263053713769467879222428608492060684459844435339772615143662451168858542842874903253436343625409401921372989350473236194040613636095403563033669412225815337157814710801070341749606240275858893137695817846294877246086818015269881934032652643363348239086741193980199448232803706233805889014467842408170249275836327770927482572764320954990925751213292020974114246811718737349450820028706588026270329998695333078941993262041266766645353479330189932118995560015867735738873169257289155400635820425182703827190242488120205183690585070735015585753867139373267604532439006295725506622580393311972580982032855176814164389648711878999831476014550233688222286717499780764966493758342299955307832381908337521002458293822061477948661089278583268907392201226569266244034239440517780656341410650568416936652677924876402752878389603715795109857786898174843819184710480576735439688948632002140474445750672374814266621594740968227881823534664534327220949991777433571574373374898795790597136159315068480189029323771556079312293459579422336638445990065079788540145458883687451423424672263034162000556445084518156231543872560252401642458553129068919338292381698100122435717127970422846602797507846024798143086137308290439255178562087647967391292130744325539040774438671342804403487763799639157780832302393356199534548179883704544265196149304623873530593080417642873778661851228190337490234837189990494492311420528486088080797318886636163211219574628869910933909001184361267850332596646047900542040105622857300093362046892086941941033696901324627860756900205537446144396526477897519229332550994551955717419358123612915335728548279988517889400617035749635864268872235072736285437807320182349806444475220294827531201499719928173117181099655859563401413718117192813556805824773909214737642278785017896536832928823694101910938487026043103513451987091899502383499393103795652276369979054128947209046913037282615626555917840987331444755106715220319319580540045889201744483194177697887194890677627563430500064931322473312861519258410112268304461412642340169118716742740679864589239550979407327170505044944074488837775189177339717593558974851086136868814030774044814130601494370937626659643490702526569354101993579121312743315426348898089388242914193865005505853777600608356871373401551937425895548458440729114696648553695399397563764231484508410535276761467801880728979757265201110609448508483533110914197179070397323710675414353547125518001503026173218096399550608729974232320995968366062557408948348704775717689168477581496560303748074951013866062385339926959751950076988385421626758035067334330870290223665985146139694939500432238776230026658938430196297612572723465898255890104341714069731509743146272465091591674402405664663362487582557501781038832971343003359080128681668707740882512604899863965567127009948650148023775859160729088728907141817643884898170832968342440846779660180523701291438908009271835110623193158527332021259106437868834442102566585762716947435373254448381718996696655258939505832095718258673808197749254953324385765344224704824305608435669980965154947288593162824940850938611269605130055523068638182103995299845107160290496303718368300909983921231814274731413413425941839933539121964154719434267492087053626354079991994542966960894185408496556835622767113466289987456707164177523766874616847183601700270951967240984443706031971490611072434559106274418424233193551032006032962130827099983826574762920757713389964695543257878572968313048869824918355949320248971162612697542766500473371843286398016517263344290499662152370226716979855616747016426819862247611307002574974587541639653599646856654418608902834561608060076345902209876771874761470000221526679279671921824618993607051887769454419412410067687279143226793496209892720250885249874573975766892368168949487880213454851741947543133496467038677317886451430370036703174505212162919582941750242146281243311341291001275299381858758856854047085253927853865079253272813156672894175007538872409053841240686286428550349616313612032281179313484050676950436126291378470980374253481750820644425402950736084850304580931209176636035435438138279660387036214523578611272214279930895450155699449747467129826851532083422568338661736953264252255664832734777761908661077597559063153221575987984995778001862712996992559475954183092403838670495055836144991312107712041084632033220194267513235201657117252153222375420585017719378340062524177656093795819755579905214284237520108608572649413733363505545148833355659859010858366603328202424481213465344750145560379532478073327680461367513885969010503328720053576191932267980614258267749301011127485222367889299467126391967162061876235475352737798837523352498316687797825962062125202161391046897125212239292969683886358774447368785543977326206912532914393660919626454950153729105486038536785006185859683745372967848631122073967096033997343630090947410830300025468874256641772089252276974125129948440868085441476912855852485098758309791597486642732658869490994467634148958459552961885477980312534649626217385191591732260867794448047957518221833814125238379595413925351927797396794494213450550051937325647498174164972996001087142448942878213607016084125621185282188891669034398185678350835844317947017840084246595728482165332426503296720810194886270691854716487195772135885284849255263840127769702987581054622796846601071086335415715902352489356707114258885282263223955198874769559033421374575623454887820771148835780046943837797789985136112641457130750401884843557382744897930078566946560924007161675216589468917108156209769285711000981357590326815923286637607276053372860497278407098985238462540006945035588400438887981354472617915884384363089294176357270964305628211661738949977830506862585056906980645409402926644835711965026764452186568790176875167982218745768229362094682468051010719441781778687244475311233128179976604975777562327140038703160067002250902413285425067677602800438422764249443425872751590388242858989075598101875496538655805275631625856620139775957265505702086122263611451120730995971249052772136207130762224085823801050750715366552236559842606920370446701055942090567418207856903598829670747840655231893077192271274470005287033234560375779517264020019479499447411315256289136090843196601931105917588028868695253355440343589673540959028544219719944689902781792068187908184043823813250481201307831729214739194888513902407162240926087030722677493178352683200408082683658012788043543755168648864971745278042807828826071421419011974089950772488025524792360181753792926167326377453573153973100637992282033317261913503605108582538700002334568045156635039193124713239143589968206208711440208278712973437128821031063749211282192212032089340892469591383980444222028180427521730083474170073160776880814814603435047991808049592435321912330332444108378994273250707341050656924998987885204868635326232600348961992326366661734266678315903056620666049456038266238258420288613187407961342356654205234103259569075874977654996889602265735754529914869859610069363056295223792482028659880619951393640343706783953884375088649369573022988423228431408006926924103169297294630572156787733027621660335526444100446985981674464967629516718811231130298740395500424185579752210201649462386350372938994282461633619778211691482901152261576417805490233612634838967023694864032472344141633347877232647436368460441288900297064438496845584083346167222263883536361680377792194911553485355012426139497923491763512759077951847198300069434010566430839419759006232746734397026308545488874047087210298126437676502533463240868556366052723272640947963639880697605767723071300667612901270393647007998371166112618065272216475592143476253622672075884036393520904263270756223919513874445667209212795334994745572874067686482670096635486138766735449649875497919068307290047372325741342140246209573750446185136161072497843391449999414859807467865474241498371938012753476303666401555563185361489491235813833586375639093775352704342012180607271921044975981084954297227096527520454979586431338429895984752746171213594185399722212883633561522153119728845574916335704947770698466038371949799067624281841427624871936177921988448895533090446213346313831312332183364515890908998623622677308151811007727206173856031566370363345442756806465939480182243882707368650276402107750019202661080208317302579925983175824277700484924888176299163458600910882878716733232289757766524503849089024793146246816737326349248240650230226547417127485218391150996472381520418729242997452023566586881170890411473684431028631311112359862922968793832940998357564195377400065087117081618011412611853309739763757741726954277582688352424494085642957084613813878194658887103062380793620032621004624603534347812853887347566913850583492514103907313889552510587719110962019209166642638609309720946695091271118709908894076057137152319640441345321214750933877065445064798349189460849579489783762504050400008301601635621140140015730224188082552813505732720344900553774969366139367369822630717304216389773703771153576251123734995142562322487001228952843972006400574939919076617502915048263614846274577402484691616708260682357858323489451478111355785937130812579908779702331280043214124707439773233983683083420807309579094361489235787436114042636502041483643654486609950361831229404655571084625869619569830024338318114115322162927981717756022758261566455518180561386527978040333836416472540308112051160402437972165411939443834210082573264945392343841156385803948697598371271347882875420859429412541517550264830859748212806065168497567505243069979470697798601787766147717271995762809763019429514372792040032912744710689440140470138888858975944181835440032515927974792421788731615057260075961618792090416274511623467530013622656809767916993484757646835214867927807787822890020897729435275757422373862909241888640800926339322250409008444011918930307538803144021957297070998677039871137257574111045491690561777873913478332472339380712737409718098345331247395458014841123333199464487234010458354138012562986313734848653917720266622757719116909978933344144540047409180153203649281112414873654138198780447842962971990611240276255855549280075756202584630426411612504062678954538808983788650426420756983997072471881992730634379034731700180520157278925567538925237283851456416762413491869592280616375711624058764949411352900388174929094036226567033012005474999422538465882911140857673191838986906024795590159465402175727475815531158843209354101266745449586134878819682930986939992934342573607731581873490178337073548392255013272493351649443706201607997334989337338362525328866103768313070707998040927945706882084376596303673514019845924319641069194566205229986130649076606173429322893790152233903422304381926798663230482781979318728922021053342144172667157790823824459306946743576511278530308962147822972836321038196987285961609200122895833560023035183069362207828265622732576461518651414877281958961250780039769613768696421665986938114506556932548974526600941774204790577365592115826988274297611985493219553194016380192713794411912489541129595948758870865363969870970940426637249332605543813748518119976471284273279208823329722255668692312124504028321632911011586380869825163487171402133458476430227727668362373956778109250036033529729107181798026144465117646532869499123863689685811745817784881942058764443336075313673055273103060891561332530896772899234831709837163996781975233102677700726985469380465133409646180212905084489908949012415946105066227115950056485331307446528058322455559153778328492599829692637224971230683415324713361250600416570317233838200949009676189118353904551597531141103667876076448154617642912984678576836667813161071065122369163821778238408845799858013097682691749773527965978386593539221073887843804369120509968276950917974734137794487621844582605578771708574166427958932997746998403836085153628199969104089674737177330538212286078640756596482822217357161736334624367138167143914031334183928216293190716783616622564453680370164235225250088558647001296577487033473419510570630158136022077430181197558620844891759470414630063028751255418862150593489541450511428247997187828668757057384841116192881099904580244528408492132559754349612042050585696072423126474758206530588587849290330562942903897668320274588826793484570557768322493954885597494069878709161941448002452524510643800314505783467216189821355896879632070360586828055676425567626633577934364230127949596549221640317069628672739142722940923313114261565278912843531968588727060046988366521804170563522071383890407800273945522500841546426744500731091310661047499101041291183636613565958069762401918142588102518962055240121726954150562288565662475818166789750517298087982963127594914641271887123278512228588806506479550072469040047010913214191867475373933692113290676075646254110436202385309687277244227482557377705975205543676559175633209594930895744265399680519525670704899129278238998283636425543056669152862332409388774460994461236176406472537735655453261583521772366798335120836667629946651884272122154060910750481724295087523216765079819490347580054295040260586433324295038800427232021210156325107948435435444912030951841502906512340679067402142414581843945165919963358566553382614236690905343748815580669226779718442838866273521189606234269428793833716535048323170845089838691137335073352084618180134583578659004999344182404967732556754333994806131713460791593493603960575174119363951346653176937505223335952042086726090865515852051717418243548407479842403300743994841074984895237197589521417180027679123274421017029996216665605502900056726000348466552093996734997051228592643041554567992434111623353291078718334992904682759615424586634424615208057411261187663637444491929325842587788102224548363641221344398350625212988685642154893883359770239470769138996455910070587164868444937728072493003619993650236491312561665224542957189590648161561636046044140831973209803897313986013960477746482313219544686026086600684483961881405956735576136467772267843726342364355462691973332527237144513043029674669822598484479573582992443216510543097012310856109355371654979177952038988567021581619766915414233830536997421551910223570821769564105524741243846428710981868051670816146136518055707427914152104606912319837559783681300521378903049372098188531628744867726586538601628078120594694670627209683653078736020902738027524578033356904370418291227580171915158771562404171759574938581200206076804295498495461460354843565744556024873829275433610801355053940612374887754000744424352501339756544856030575239140441602349361899100642198487808063181484486038344431620808803998846243853331569866956529161712542219547747478587215289204020714700119467795966699515567303220197593978461375061890026581999698821972458575540999127093463505911349643505590740995271713816603465804135750452080475039409272971260665441352857899809079560075180495582865897324745877752631026973557784242006794304754763818328019128058150244373565787372391619342174909362424321366649250471329120153284205991146461889122926945012150638838384154411372370289479955398268373058617454281337872583902983229817902972860440567754511287386476478449710115764803995913094397471237010293630201007557411034949122515341697031200910382675152272713130361637666477943119608332693252663781435067633631932854023682488380842028049601273798656619683718896898506649316865048161639837308155873835977202108954472167795078129348801769315672887150479272345790115333788766591580279634637813724476044331201629013075859326185169736131553897338566047922191504441980769894476023689971944806027264948210956308139531695813811101981517411897181789452881674059021395613580566748292271466996120830542594205225555391785201098800752600306217279005174999844474471545884544995811686576753459873483142019616186804290907052724482869322294792146093157539229955318193983945778401611815490499618360453170398640141735857563237478683723074247552799237980995098582926430574816530086135053292556891203117883728208333928388411579342323434297446629435845751208687517621102768452448343159947453715605649110773002268975993906758153452152219555112356747968392692948028003576000540538638046927369697289620698211723402588104511777386136994337506342388399298821897429746093402441836629632652563362524197150738263057189168592102328765400042228580281865685191819772803388724818217317128871749435303058118260006872467773889980426051874908802607205642597025085048487181548457003039784075991292887656116235297900105814067719233581989756814424889613708086851682218648588417853717290802889399399008401740221567886353303735165575887621640074627044392639835431342447078324130950150783864436657997952664691797329161255301129470946477280782972102663873595130287758831600788832299715889887421036209689309835599225215645001565834020788500537080894823133758849352250818797137919405894598521189878286338507539620351249932666113161424244563887016992810688981653698455858081054893418122969441798457274495808777945184107577524321996596426764596576761887471702186359064933558744399874126701283541934315037679383286156185262976095345315742095377370183343838194738373194702335575412315554871755610569945522947268826633612866774668913422545147909044552718935072264511403101390649526349421379229585340658484278705524833302787682313280368534561218862408481863301862289011918411217869511255530038960362144873609703264015554419957938910338271578249591298410655022168099211110556238454696115764226561731543974575425407588478445829346501976626887373775064420353691683124023784950806655288845426872447032585335601382647383067386473351844834202276151513998098361025789673836925993988384848026413460488474698695825953953411561648820766367855746606275596364696184040296345780299754167930676877939329738064983432395564572616040245213027885857388916963197210302202331925946773426779848335387268341372960298688733252900653642791805887345688645177100470167264422501435582444720023499757613472355179418245547200167908310153529596198603905928691760973621283887918645916076887524099339239698111627807800891671794269213187830083546588955698390605306991206598177470380278685049970606022345023671528525648243316180285667973588065661650149964107394075008837913416841127671290623049453747318080735400855531737873091163376160118061814334033538869962961141950691071746360803083450427970865291906723141245789371637912911641155563371911830716123573364061693797410766938848848463644174675588754638709387924946081369859399014573245462180145647378686977719896221641390853840630079645668189715328945829829238559428941044617078849165394429393168176041657570540187629294196594745210126476204903712494512466734972707103492524482916827284336035706174505422845951310414288135531567410439772519270021428201728052647313112645215059927816211316993992609651185282670539951348514807794707980079730950865501145040299746686396168193162564980005443308377622758083591744550619417651261846962417583024174730321024613286339065803031213956692917140337640157011343844233549993723671209267144369524386946452702663966010224553104904274464555402912447447169077377271485434089983830045682073175762877304083170133709323384745862768816189041964771192745658407544097381308655359145012729602977725180630350765749973574657760034331899686097312031068518492001581371334620668257318706125662469305257212270471140085807637669513895793852104441417248724392286860492511280949018749808115959913100015303242118419684023518999680214581325076257656191906311957645713319493106240868696069970937366124002145656367467799213162207225786592461318820202565473442735921718846057740190537003523216435032844259679096694237922837621810193362057568435417013206874591226606347266029487188934397762304245441620186902943305534655631380167774965548008716768678823225839247361930223120431322353746471182833749872383695974760962603157737870259366157057354337972752335966221452643451396923180076318174627563906055036754481239908297135237011047249854482762241492610854973475913397494830072449967553916905643025488843160831305721637375987172301805380144258293854378753727885679084037865262466777980274431094657721691900299716302714644379328457275731165808160271620013612437835433442590218346026177854430470104033341447970790749218438483844029319947353008559808454631142585059875607395428573525514185432834797778868773739749147136801566532543768571869444721915831582737222355092589907192927648589309993651445075181257942944675902072549581881984277019377004430161796677231784503450824030894706663792527210622509844822700143593249804088038939953421780482304744785542442774430003296692736343102166105903882458221370938614818655553035052174483282897871499680639902233717951657969601234904264381289410859385193617599272047476597956035171837403751023084872423328524328967876746801328616162466334218001732950345877300682803204645909085905333495209016295885952391010358684659414921047792508609680543830880663561170806489589295818764539067538403451043191447594093131059034529118326012943483598152713404288678866539523156518516611122384428331172756613083739122483851471856475261483832788855357905359237229469381017176091254255440451319621772789166379872989745068480605771745108438047783726000016840597052329851714554017961482458496115706761020400266557665995002971605198381629820585259255767207489276821871504919625058628130069566144078230881561856528309599171575833743351581398521488181060766793573039654162912876578917067986240456803611400141797775558831091295954867762360864762235005332464016660957463898448506797966982330868365326072921174098092734031648863704088597744360194204610264354838769539575832626700411194715307836752058139391542388489563563038481951205508085362154253627735552749094840272037915303779759699809346540130434690245155956211754172029528556337075582702794891203484434629209368023790169687438764338100291635823025041883888194129260706657465924358229870090413823076264047130010626391710631443247011296930045204972385040633937932858983553137496216052462295324573082126057502025202196671893033014029166957144005726122006084311293848823754121876267180480217581838664758672748814224532358202911610126768025424047613937082040030205387119121902777052104553174396436516305847866385167317808536804846535768201428347815187815641732508215759884474416136879837800088166714568145190056011726445122427317511499568527239785108494652203873574499259460797011959129041805115182375563289066807332445271186952605802192174684485475618910737397426850362483408881646354857903489812768663669166810065984622714037719751818852730507573413383419974011228258030033675839120189134220816295847340835803403121211763910745981648062711720212051201730960333031643343364744516181990866182389811902465082953211388778867766616553949720673525934467238341401178431800829129679622438356464616672651887510488885762906203009743131318532862517489671301065351121989322354009330514576801341465559670296253987160793573530043841807612992276412105982118602869996217605160976305227679435372869178219247487229716817207334172078021506565728028110741203266947350686125927129089978954723878065595467983676227425692149391519165002591533002801286758231191917606536110145723879544790632585903559543415768870556746987575918960499682992385295653056170303046865171401117408500597189619766976667696632855225429667807798642638227904543876961487072912304414546569109195952314623019471801044989671734835445857996481203813892198777329381425095314194847804223662106204377876830426219157234144545188938339797617824616353522688952125332333438281556322173989910876916923260764914021020027707057317933565416285776778395810885275427015295153115772858250159658282264449377551532311862646114256540569909357023258328254101541246535503906446262768972890594808422320685693199998245010340518499131032729552765208592246907127219318627246791895852082514448363721817292927515056380340559046270393869451733175954629203193386584870706181615493835917329970359444282178407952566404121147076641519547937655074402901509251722556475396361690952865424945723008856632891237709100813342849091381498234858839596702652054050488654932990293421829291768415908019769220659183512629786511822638385044457808965907929570021992752814372601007491193970589740382874599403883500362763426594348706994764492974076821530920013971829874130327406563576444562769212537484726114801114477345778202351300028481207846280474081912784843446090887823633876237508376067222579607216750947306966125211530534417277738984845657860600533430854307606529337291742234514365193350632760639212704203017375860324566123714288054285645434793705602868805275340160228226142227777356274206971586320330247133819495434600904718103196220730098666793957191788300710488767608148695016174327396399198239297075456177269580921655787436868784378701973432180274927294661115880350500643144671833337650390115750289220276875735425255156030528731596365352167950487895132655744824425291480465064790916563302911828110749090114281009687339022116670461425927872562047150934690492949632408258089058240575775786046838480457324719131568461215281011715130349788657255671696847742052501865438882152433438058271734937802040001012649149343365238928748807708196946205528176739827373078547169390405585781877032781805641617826702062494494087935244987626910603734112952311376335547299738837448298121133092387354167087737749412941579077611089800060925836675094871151921187674975820598407082208119958919072528521026722527125497867109509413869076951676868947329273212342529756396725907059877983282363570353731504422441526782364092315549975067629556563972164175861122813733440295379212125068893550103241552682940413542058102278108599600553856401031224855068999975672969486888264574291271334168084595314025885407049803277608710798731918623209825459207205619332798702869905879116602094154207434390688740698130593057914516565227035276169820392401435968844069687010773956964957052845257893069645306527368736987517426047781312705120739237740974862135346386919610940785890628232713704500792762439130578630518456748811479311376912989421935499795272597882573145596009953389793721596929717699685755519554557085472672813226498234504946692617800939215719793967937105008194757389737896072260614595410895373173989274486582426644476893968508756976029110323584179384610041946260724693899097513924746422064875065737379792783069953278510811867058850241926890878471495546378842228944060556424405295224534158481954704329045102874906281146105398555657957307788152738983328678055428550560911111521740545522134941664032516566621928016502716390515392185303215808712492975772960701221690836118809589861233666119444725283159875639530052391224929588814203123974178127771310227106680295242650145987305593869370393650321460034189324124143680924271871834478689914153694012336575912145341185031417415446826858503001949384490774913480295864795433590926064352638045853271928514627576360573206792825006611381721371154570402359656918257886731336066458137146129551246931888564863421576358577755625705135926731567548937045256919151664876744511406380394896272644245589982362395309973890598575578079696238030366947599429250235339027020018812838817844960491579016692945467798472519454393491109553968632848564940182776895453367163283480416080800783073820874380979077724694230496440541478683389652784959584999550384945366117381356432777912067307112419094023606494911383224340129757812744764753085496643535283483521433292985246272929990138493968096621397382547156244073712716339535416841384819737172363028282375087416293581685229477959505499125256107182269229435806781104602142747984266441365867086881004880732835278079797302410419167129903012927953518578239905321585603845720691090054578079718575858614334172631145957416115293005353670008715491601438546478801028318552887463053476792220556885738493929216578876321693871203722259890248942959768319805656166725946794271431857048124588780462323413867330738933199060307958956530946655804632261747392538930195682928170731795431218145525586886453406092732420443321583024273549969476157166877109271814347196128672681365661252317022402978213593334482484921435956240455407154416673680295357544866582277280748440424460865595751116194053525256692150204987378360133445269973187775857778470858831178693388982911356093663215845166125972243023935894301062992664229595198965050024106951926167296119916377984154980177669871022272850789909274128844117620330966607120917010480834664841517278839882510266944684541947139401233503219787685833135262843668676077558622608478470604599305618078975167910196977990726350034202628067293574462636252876359942369300132013165142461207961775224562155901824588976480190510279556471024746524498573455982010839772467290989764117011864410004940464672056957865287309225507874840850372238464790007220204378911919456309405806634498067263809381221701136322407725080381480344183061757907091247154401254801115890709142801541590005840905459418481966460216683738837272998663982646755658185479141323740174334851743771612760685777191214312093699116808954053668007657408696600054947781339461852341521179456063499593582930772318112712654080275041205774453333048707164458875094681041078521234269531856558730520427980835412641109494845295300777539239825184521409250295061901921579992499365441235101261993590305288904039402727766039933460397199144684621081405903675735031817837683660192383691838328568093578962250363427702109688776902792728446842654980626666659211295196846638995690396637743811951747647575382652947773799834735088066913718985573773105182629305721826664064145932680768174002115906603671626780787909870812151015890829178067984153447439341580142276162093715915344475600773180946463050827247300583882290241526588739523984247739418751288577098330491200464760205712570261882381198114169637642547209964877165073587072970370091886182085930978502989074163720824332577408788645994679262056749680082698989155576597052534136275107161989447370630518902429080235334106823397924336757356896640926922390420616956972256815641550941123792220438622018212108801180863563089419711676642624685447278658535809396954978345187053554855104290517861537217127872536885770891988524755704616737794818636062436970761533845371903394012309187416920004749642456611650772297484984975623818992449527428921983117769603041961430964760364909701276955368120034099206209064702235248915292798416352759060851248168762960067162424020608109756191466674031601674484794526693063596677252852088692523299431084821581878962157604425733438557875041660017973885078854589586006313859121944956204439889070487009902158323593840617349110752829993163243770684116146245037942734690614639146928136249091453232515403208772821430674562568476267368886116516223462204595057445291417317686546587084245702702321907372538018413833860330288648389752233904876613340913108447273649783977897966899893075100680694790170873729035203852214848347078761436585143935363664213941440002178869114171393270143938429335624382674316056807845299915545528248835577026635791297489480963979811230054389846762711379147379579142925362462410849703170449803985307354749591786557605438480127769738396654966325479933389771811824504549618038989681588405688932629961124396310470944020648032804527296381494887687370410762641627367100768305177705913685563139871454761643341142017852529596019819740502130855013666987847472468903600132316675475506437661743823523675676275418016812976120727175541633542602651388667594147821056806804745057615540948369761412493420608393616824220212830693563663937639592018438559266927187347064739565518873343606371346015722165691008867558679101155995663841939339844106956822404990403271711189206772713056247977598966283331415300511406690439733091908097174611283254098258004665894727674624773980151071167870925763782264836254981306725899779551859125510742635802152497475052245983464308228527374451659798848498618158448920470872229940531390238874202905535990907411042694584820925274328767392897653412148732801645541299942479691332348311774631343693374447559173314909112681694295062964986514912126849430986310089130338810940863475508317624196105827013655762960656979528548128020769233954459496792668509602532182946837324373326383561601063041964322659036107422116071756047621613019819702041548732824595927772895333839524832505190793578472829088097826063988317770732592091643013171191677944679431684725818905813338854201718064089819701249795902533959892186070713275606216252491419429954536345910510190444520206789425068725663253867838172338253585416297476146781121605631020328340887276905259529896788071732304184106927606481749028153388495169324687325857398609262068189199969312906038532290328844144547110348016744341748370195835009085821788525674698761059989420851943753252214727767390650587123393346064878379286551020913332085788664747721036267828794283310888920591622066944469641513361219865032142309447969272748026245206062033683971886120934324645505771765794616744075813376446595589486455543947355716228739956187935650062205223091686972712788621384756303865711500885492181848698759487050101182303829376920229958218416954163100559990915067947342876706571104184122786040829075542598470382929862332915990992014859142946257201612156053927404301254920187474877784809184313135524335919102936355779549860832523744902567342972696948946372348122680507788287362922773731505922318771186073165463417124840652467406021881388105832795328141069193483854308640626734116549545798074384309363711111533075512610334635172924194929619028392094031341043834293074001680865121817567673626108796746438713944498076920546182840711504212700476666709464563180612876370493072718423156763799726116897653948012134339154392763780517830392189864832603537375636909000333496706254267534757333696398451933277751918149325047073636313205157083796075865233983556097453032419663915407837453392578147119536968101518425502210868436953617459988693025972704205996682574867209729441248689555910216327526181727194019763951210437674130269068215155565670324652090419043985688916603960032436978444244328266830921282370337193462514384308151244714374702314581320356072315481773735627891814183404679892019511580504409339804947181506997129329168792025044031905754767040506418760004817951540187757642366590474040969855315913956923007644281719214916648954316144302150382145956449347821105895901946657250026878436337717351989874087881718034152267187822891612444744763276826682295348852825351105064928233497942706326654447683368918265096894471989563374574091471007572320434819446052788033457002025133040281887131503127851468744528148339203827569532478732319358324596593754654709817513585686784979267952221382391473044243942310308735510722863494112694534236870138987364800890771476605741406498204237062256527370559769172509142572733404664299410522210897378679355969275689236177228667844999332880094379699596761958312261414913533010259475074866258020750516105056492927644767237495733331116809788010489201517095488492913268913415801072397911393122789632577890484648741139438824299269095354982705998780822477194229530548349240658577580597388356101007814634128019105121153782676862664530311853634880757690686815186833220672265746688701023419103689804585279641690021135550096544622982630687533529146438215691290202824972871062310111793856184719237041260849526364437185797594543782230244876051296528914425989852155041946733871475290013301828497125589455865233673574563144227197348106183688474875502516745748247417236375530902785858205198449337111246478270674864914305940214806290262953849192856700097746634817715078709702937586208830828513693774941698818032793591294053768059752052027687864152886596328846304886426443480334434015241532778421195334493545460860184056395396410180116183645489066882221744370599247932411559283145857407220528293001789861272501641982302891477995916066278342968935824173063902466737844093298474261036118303508209019224449303431358637706892768896355930638378467878895470020152349174296357715677729721254087634246270530711791063875794462353322948925159771961813524392505242390897201514517559158273931302461159799289828004732887286587732932504853355380309980035937890792302757725829478754653580421003203439056051593004923173183868992676012762569401110694854168936708455602261559853690895147534031545090218405183963989594099954747387425827671062674589270087964632704096186419542346913638167714098830273021907271145061821126164438858456306400924213050277858607790593833271549713466443420093369878871925000235873614889060564000668408577320633778593055977784091347205936683840540308321156030188385123485206071686604086361102081404807859333222307545593439659343363767671341010262268183520351230261773076251319939395096389503619477820055072730092545808839146969134969115324526612781219132755378011641102780626854315632118123978507888154030760687801001957658270454336396034284069573094542170715827018487549804133660203953045499855817544623268299199464745879096207659804629399656793115420728771692563164726526593875034013867858551871437047424108363461143110839825303101747993954895794788974959832994364664421784750827059983808914775532958803463732205100949215324486264644904899902777823805202787015548868542395473172419549502646403045119884535711816531087832872993681778281609863251477158398039555153360936488688155400493666687832044149789278568590099484001350412904478176813653489433657988956298429323493258836099689090336317689188020347698099791042271990319186385797413718585530221246160785859585494917968486267133834013421985901988518645353829218270996569429249497415032843290916491308155190766210873486265904584476317968539673938776432550266152028803867699938809029071739025079290047008203141412916352564730034472235472024253313627256215087679837223861291840074992864156735902860730263049396381639573144071008982171545037247302353512753466230008735721150070876682231678682692793301299994994022462575859432851235040894009593549685147011115523067604019947070359299028360443018712907463531278155909959406788657122177680978198329688362069188976582782858433016269156386085174831687265503558047934341809342056124217704427394440030609669582003399264628099270224769020537462543187339486820156819254854587858829709613269943116094440524624480610305007896499087626307512802983244046506603028897380866128564385615188894300708758515932324194974502138826148517803684667437819943007194893383509353536646779147951285645137794794769403404127840967690206710666942000584077425647481672269222602638746232340441596369319972230552766388926228282992921898226994611084670081176073066139178318968176875144633036577797506628930734332493894710610180213487922661522802036680005205740514583437667778282445999609054819250259579606369507246105783327965497635971846673589860427589528379364201957518610508691925539475736980967857756806095689163595130086427418756406101224818602367628423542794922881638212027545467849792597334691544223303402268759021772501208444591206931607129908561749004252948877778145294225677657662646494919086367384951866797516958175462433259102765571581356723870154243364627823375081769735495946890624333680347507101858610159685457463784044267387014592494809860037242755357189857501430508069240750453815043765681941813117613139553608344820712411995506982511376592272689629005471246464201970054895910451179467040089242450385259370003355312361572335921671225680274602883265556446418849394329848586640201470264246880514023016052543508837692608189785467063231452366706443405898122323569544707819614708935388533720937166637223733195417505119690766218394383252999863563437156025205287946133471808914024180409522810204870524680377340750143462961773231897130413170834556335911176254530167240083363943948814538606555864511976595107218442495560497714026596174243224816382725109681091602890070850433216046868534806484630634559297096317217524167835001903795760940311988856753601425675858708662519234601153150379985701969326540397228548365487601047345058726436269871442676117288944462079681786466059955282068168954984114201548288558685184541513748674009069979905492296331904468971834395506451493056422975012006010246029084201737877509707517340023307461950601517308445863190649875597821823996269661600875028000747713481882487043034307529438721298508738504233331911302256152515464172254687933883884197118843388849503573750783950591033260715684832002896774243006117462236952029744624931568646814403305654243287835741557279401741319700630209633529627283365004585817145106928739908043946263149978452699296627490965779364673118296712735447800473556401155926325037748705050943922913879028758888677195031877115664585483653539305404860475216093171392280709984338748363610422482543869036297282437740033195900787700587532920984304772760653686396818496466235828067312374109894395501577120124322331416765446398154446640638972369243020282729726799624395846055750287681885013156109639792853073089740214440683427732513935118588166703081920028218903033886731244550914756672126720094545808953295999558607696457256841696314235659847771361176377243779011060415139095076209636736209591947697844096197596314202977259319545615271043317681771408680952459950849279366458646319601764761626397194307426796087222804185595794770834565741228751396306460398949447304779702368859101621011094797303319569429970876994400830660244786798983897461662493619399813567687226329322712806529405570154401418275422619447987891022642896667980169580488067133671598236747682857732358904316416899725681049167588903256243066482942546002442767561921001306270753109737635867634795435667660145831620409858740107654832293030768485565425169669841212096241481090351777057788715107725376588562862256006668421036844420298318213950367720950409006952180476971482287985190373414929744600394834065996733422754688925885919674431110410525283418461785285535011272646097880709685835582337940041642342354894212358086297341444629111601771106316536312765252703478763438583488037137341839506302128046078101133418634195876860048609360500785229253225651512447983961264408101112026745498240236186358611155588750519859331378940866634877900504192630869957130938027505281979525736569458372956903346540306710945333101715150517231197901860443197235591883022134650805546988936930199519906061246459634318115220340512271808709503136764869026231183550964691879456291371374134999816743341897461638227828745770586030456130633795181223533297853573194856892450432558929539751138955651976658264510551632259392879833495870946255020473363317493310496280087738690368429707925187540457842071566518378531930643960498174717246756299791605272497228352914476968865230479903429779760980294288217876642027107686326827525072478112326592053159745965189124399765759833594045834580134011172411149812932765207098610315328066588980222627283428911334776863680527951235680682654026548011542081768174050850009885665915659104637302787234260047674534948080513144116204739759662367105730033223221745283172681787303071717877953236648123549164166594125558135046311996248850681541626654841968228037667901495929656688469788886037512812986620123473763711904196904349998163621341960886618835757423925322645731985763632653176005109202556246415054655493173964581491820917662292087993239938116593475650479104988806670560456694980265994325440851190757503103611667406871405772399538714108735230145458527475194222175131873234660728641625975479244618732092128579636579259623587846202487227228283270960099826993460816669172813175049628991642162360633762512799116147090832305252514631980649994656575575924119030419780831776689617652462658139413345649276333661458511246437041019084305971383974911013968276475130299299470393692704032011971482770910791618738830215648023086286305417380236021281171404535276572689082058286840688867486873787919657449264984951954483107190914804701452173608032299833208462751349197045868698518678116678624836105301892309701059535196710510707960659914243913926906618099891069781877522856769400489573674140530917245482101956358604656011143610954334379206620417384150487997982927474850014133470055405427189829643915135278692761680274845969139655660030780011736318768988963270959692902011226762101774539929238856986361888464865588984354286191835977640594265472627418031452593971981381618265470634660464418480877891941580232321974188513351546050353085546799270465883063648415783543136893478476512699190453729896455996917225536826701022931513523535252559713734667214698298936546924530180792938737146365271573211857209266151618173404937399677743880245997396514463764792593775685351753502344645982340639346500381709469020077094511973298028213128258745925710638224577847222864827728138106695836301479018500211506834570087736107634384194391188705921385428847875244039281966882804112514048622117810421004513936203669767597154641822269529886104041485316364713953242138577552053140479916341297795153892336239048464923096211327205509527421553397509686298761491871190367129897549667225789525088406621057010363150539768034879551082747954526341256892804101733430590413227804398117353264174406859570357437258078932825414933412917201261266976591322780417029209668113771036018161372902385561225693179240434339057404520419974807224290309647278215847358973094570383277588321988868669888215379818660722448445396796805670764227652834335992678340782986258163718299166818950818603259414377047456572193735475272087817598488686892224164232016726305857528772717654645876000682942962122512930576281224992412320462785207234148002529426914421037908360567913172155926737086868443624996092445297355760275900169512320321731011132268421089551296310313594303210254236340739637525624905540793099784914393354443786206163186423051915669109828400343541433915634655338817733705920330196182213217381457638366998525425128683946676820020814986112721520391574653897334323638501486913691342901716812475622936136768717748767774101992107976261291132490021151005692249140903318237829673849963584910649981584640987218596297761572815874158015291757089000637661166619215758777446642856143895909645662249102370082033188913941230681088731259432890570129735853845003026917573482093761629983616912693958858653238976836011050974002095815654593759587654650641788840255867149165843359509531015692096744566862391626929913371907107229090696555089913746316184540243888444075110988255309223072735676860627308373990605165774642579180971140666195988521371534923577438274416389538238935633459501312761047158595520205572604765118666216534989472259385771839643825747155293770408930344528729690180776855148843095081315218470362678403579512091980324312006836619736892544837070115060164690516035672079865061629651285821070227322840226985921086805308813099129032019812281576552039577762319004025589706224199325906524013231617573811248703877436067804179127226757846843988283682961540196939659779549674565292203260425775669922350869522488014781222575561425993356679008329845474972166336177441969337430348014726841920646405431012741910356945441707298864177863717815966729283855271550653835535017647642539114727295649752167214080815958655904718747420280072799011782974504323651214102108980788953991312808420542232866395063495391489947627379496053539524630971462602076404250438736328744054590159621170365209163878249422384180967343381023008612321140878986113824705213997399566522738475733919802100207633111517994680079530281948898342594697759618840752093720628595186136149001268930791096047386635629413241881992411415575413159607157990118287339261491573730953154032832481684983201001905143897318519218689496194025507376942321712771513342328719614002997173909651548792687630410140015138579777811575497547358439917756016144920174076457620551259297458834359332478562540727378490004008554947039175886497447959875313015546155619738448739025739508971899216837017817272494300545653665954026422564458494960381678256192384044581034693301156022809520708389832528214442643641767682620385001882021530327369498074728990194895386602860697619375603130587208308572845666051010242806982784144058988266039373421530616579927972967906593065175534277537788727755977585103539164964571331704753841693250285198658581314280731681848199745607179327093049789151462995495686515864112396614080117428461553410782879994945900188640311052350443368153407205186416698685655505434246658415443484775280054885278471051132701914058713805543483282895534350484587411267368120354450181888010248502136294272444912888856607445171143617524535646911862890619725645458494766676780778996711525051604030884451083194255589718564146233728539609655023256201271537886757417243846979874800752494448691933122292637233214589427438629987090074344250023169109614464743428810703270751452259748078883060385177270727458083040887772255498083676306549367910816711714439341933211317362587081386039452029629560569982324624356935102497009179480571493943442631775221491691005464005051490342211065623028536290280185706876852038106323399910580508265696375103917455292908943175018568136796322710444084340731623007269408441452914731481127483189417205348790791577265339531637688383498842777168843689748299879944877982363070159144088249777552592429240477596921776523859046603849989449190578007664452651661356331494574411897233297530796744554055318799106409524474997568682596055383349379118404827129440664435984701455666002996575705268860153959097284840345875256494768793367285630493286346918710544360978160644318870546992799792580150474233341612740610674030786675899805206485521954385635030931969340276819386279070006067186257024047286898494700345719153156078372738437337294295943974129020915335593157209938430414025602600415598252638191776894027913627069070172430535609796656819956633762371632827104548241270908657650247810134881751938384136209291528862381532042831860392817322280238230772141670968467761761348558518803452315984624315675317999292485992877682296160910690571949124537014615809180795913242819288804451712725861318308235454634298976076460203461538560212342063971176802482364888563485236007513000994236625436595135003839773530838063305542323479889570512768134804688673225211699001923766286112988862595281963012499305171387471922468746550621702803896360194383542783730390011451837985446474005224896735069868839796612588574904307384112558155928733304216796648295970869603083068097266088976995301108931192555134098068392564805977575388260061296188628708147441925481758400355147023855189558410871063892261420815342917570756124102513981947054150495559361984349718651574069038672833002340418775558408515407582326724615400027729718060413872887964608557856782987205269626789814030051504002934632476269848749783755025742649379547463621444941449850998231999028927225903313731982394085987914567579925810998805243949321221036983271172580525424063596210134598802823232018693941457317249626825765534281912804267635542432636572966744453599651314176107796131038584375897648784050859529229949629367238504181734103701044089305806990564591804108948787095077837750610871018546191206337386187557967899194855284417187852752599777271961376039643371150855092058300284148792382003143837881694241039679301653850329474255113578635538259195308435844471920200325227988749491941681079839467458704296566012414670270726618250110348015471059207941553606894904614766349793001686346663968628940390341823051891349944883894246721200795067416389236290282863947503634923702061984082384977620850745823434151835581486207671465963788825586076557894976495346150439287508224480384107128177107316210086577239311392457718808125313001700045997451845123197276227973975412065518912743396299855002200958633426763046150393327515311877893008982539018428678736415331777225629635970073096558751392726786357393562291406299563387498404046587111265338003169968767103132559119170002944221625100729824481549787743808937324905882129634237479941269040286555959143069852362674393302987127904365187617058484296005784932387906651769164361173532916246136950130822732428636549404960787020055011501027093834549808783797965961501042257896287206697484792996110113751964242491591164555350767348572188408114493621858986659703041899966598455075267948111667958536644584065831546442989374449035358711368031406457314571539169151503401142697462045536758756808222166107309173025635377459556864925181242819268122913216890787062006513691744291988969690608464833964843782078058958909793707842261670387901772573114430722026038689466931896084765236522166045492494547732349215128117919460285539894163898549399806276491595825208658490466486131967472397194606011914038756339513185179241646385315676654856958297366787561099676179197327470059330745134711316268955136227307116251580695778116322339919019079197080867315562444371150540029103422845780076322990551060660371142996955101150064999308148730044088191314099954952381102829547444482604780407022211364916469887337879697512257715590592778407073394348136161364001334935324068681518236308481041794209868865374082509456889496241131747569600921401198953548268921971561701541618684361585287012236541891315125365119300645415492016872219032635905196193173286087830495097704734870780620941480179733604932394548863006193435409032478677690802133293131661248994697078424380776859974463352452017271622713514649503794996466014432134167654146935687776693211160829709383433972860012402049289453139553438244433811028814440310242176859781045074642346080075338728388187095098808808236325039492536117839140444340437591916357255104660366423525136488168928341017530596983751846383600645605940064525726136792171968607936622581964936220918330083024159984187165146453771986254933182123740437392121787306896158039908022249733047353973571795986418179833344426561722854354507903884199753267462150713728072895018324141294874751438912679120331670686741987258190409782501034652118581972322878153176230418221522588606762096872556492844150967159447519452592513445387320972131873733655907077560145887595567601919183108939842591097058390719081518762832741657918040903166933030991300754888272243109302368213446420398707105141954757907486089219193925813325396805785486323483117063420771932879592737670185302274355644477819691880003466612001279898849284409882232225371905657277048131065174490899529455631377109959453609966539487466412483606571792192524587864366997304544013133332930850251490902046687878577817057044954412756546316883683356469169863015517739235116654450058707576992444323397802719658896248365175555300228260424717625373363518527226913719423026899670514752337525956077271836599702183407681859772426204199283060512694695311670140856595318517233457604003526884734647308961343665695954968946042856374497916311766499455842855861110970551895882823014061795119249403390630015046686435572364346618905070240773519979777790717045682337672180021939038478936527533105396629721855916090485940226034263962330340341049537329324491862789774738603399361475946829773377117904336659389165791351160641260108307750972568648330684272498303049837067926897846239890331203786078896627695750127465987294260223432567661780820179517233462447197402245851733818301179032518910059718492392034914725614109816995171770834952918482201335138279173173696200465620992019276556489760591071996211142024787735606655187247289886408081241524979808226132676806307821003360777908712212017562609271523006218022258017061298557565786808990679324349686996949055380775885202171646626512965327327236464172822561952590759300863404968994579495796499856130474926739170775748141962962747295362533265241030322874207756270506391003741071235488802691951401093611893362649194885980501358836734157878876320087175642540671890883757338871195766425458254431874992657888082588229701362915270288546794186838436772312261894303787554677861281030267923556464854064362594666664940856972204659496015177944219127402549870024520016029971942848898409759840966458588843496765796236120907484750504821153673825316078196989837859487932899729217709305885128309992414922599995410830674183627947040043313329675473176960397189714854171101407841095353393006079336142508601612958464258719898050975362751791568849074443757086583763299329099435558302933461535422862201193734934167108801144216082842300969650595127949072967213557767964354609916354411660607663919242942252978412739010228880882962199510361350030191372460206623677776818313827387734358478663946730365879516209714373195359087544846584340131196769762486324293606120437479212366903159262671797815095450505620822616271140234467614638466999430580598246595908868086497804964439339697912727517160710426541161183579878751163728289112053271331431981837165014812571482660319013428075205837158620436023486740719904466749427923492610698759312894029850796628772856661985524098249214602842075648326487151166993554480364980912980006838912739696657949754044659567586356878157665644509990725900052929439023744159499654701790867855122574788577182614340670315887214529112986540604777048762801931139822459396108502547513681792143173990994221743291732794314974096586073919448906868668532238972808664571880242144457395642339129596128708169920829319857606946473997036127346227589247094797163184425298738097554133057681133543073884377019229213234255083462103227570481736756444195284581673317580594535556103241666209318751870316825010592963535333948205983048093991037063383206771755869181752151110853573642195359930352199716058554602252223556521500192312952826282616210644627464099288785179047285662469653615586430109253306211981063768223428898801190433562629026711885788715624149026403610209739504920253231617734964378136970894986238193857812524063380343351601028472346919497659104657675740909375788476837206277943672124167563604446252052848203748477450789599810694169476143286412387073895708501773979376524278070077462360234435057779767076084602167844296259512966426695717398079269051168667587184388224709702359906393168684208219067717457992367169445108975389702056874094438286522430689956812852419849195690267732801014166586765673354237141093080508481359713904257900195042768239523045071465790433743010916920449692611388717267441361862608651509664280114222643269714097986784608887064659457696610970206831229794086195209131097373154572103693291708226877200987761174888619873015563509886496625288969664510348815818466321394208265291182400586929553059277639920331555029107389561831282326171627694005557065687004067671124819767566176995292179631132702698578647209900021292220082772642577134642147464814347172788088218689596161449124836300268092019753302968626506983693627005308324226422578516135348735994762855239622643730436464003276599065016630578417454693439652208589981394110294214683271793115633779218375169785547448392872442203474428545964686280626120172869016645358493426087131546732691168117490384821518744232567782794076137040396841715871123751097856089113986088596586448457658420434647022112719793230307411987424124107750075155862271872703804251767773380915992160133583082141700863724253277155119693677050499796863225909249932406949261008566760260022030312268169887358579790277307673812394836526987091692403928542793244539502667387809204703694796067789174393792637187446316223755504860708990165375723194186512180958549515526485216513337769062771526251442887633072361522064907045216811846548079334322244590292445534729358245186833638114478560491652139839769589067990883496012540013436123998773555748296991812420545810568395996484254224698872243918623120840283163378761330171433631186947700915968855238049132598368531892976214342861697802327148783029872760671795125488086469505284436196316652489366404193914804438630352677567486160736577132477152459307050221608377313294409906351333946488328509964051613324185858947218738788726249308735591217968186645173276555473257754495555800856448675027607350561755896917917737504367809313354010107173946117780920415339090432986919562457917708280925196499243734884021206341042709199060255224970114652488566979852262665706723405144352899782763081366696372977865099375140305151280893220154088688534505673461359259874589392671357515566432754020754969538354536132859937725326020538339600411145543426384154262247957207458051284743996018021075432564326144804351970923255176641195453304133039230689200075621852819078041073572221133176616758270142045173892894472594335335259969782560105204862883033367495754001043687083127187786738176748252822560746943582230474651879163110596270936184459854255955129939950783644723005469401851274242732586565033805882623092517279322332630364799033393369289183243336499189224323473904752609476523774414522256460852990503324465675940591990993700885913995691350330255309775368431408221886762310244143030314838452984938912845107254466323270798682140187035804332928917713002467949155606334898008137359166150944949290636125596423295993793178055245774708643872534435615856636341301463894171937239698494832009617543910065417232228567656995572162168115285532761569133548391608551690104513241267442262597966241306588331181826537377015095096680237245316932055823835598720472003921525812451688500905679317802003469682541828748262377207424162540150060889471625756800938723225927778392232181265223755384864688209804823987609478460355215257798015248096572486742097777153173988077993970038313819385596385386879228622127757988294427244712181386768174584858359831637720042841482713625144757099675543451255563634325614952027345408929218146083983153327931264834013227398312218130877017183358067137649680738939785505126923043526776906346598420848031494269887027393353688025513939279779930412534681848838980097239125573468825385871485472451681212783511740632993718159482740597038202754164225744525173331754938508639887819435233535966863305201740516316432120860264136034686831446299376978079306779983738574856069855759646748744003382774481880701113962903016816586140584262401247451996154742352258135263652243800060026372397341808699273920143512214735002087260502620241486844751878733102886453998216385707259167722518430903471146654324992359653394960089971995300767791620186084715571915123969138541082273739480560222153468600734792626160367950841946577249925348191480118075454328258854340673439250638767091894843398753651200036724754277819816350109251232258288840858212204161226862019648870094024346603466353299523702911521057003385426705350400569013009293640004160381947015989072463561436724888583674227703672933634501818547519239476259349358454703947280629197166380886752355098573081432300545288812522548376779729927536968961833753931406950922147654830546207626613472835545839595190078638835037904136423819910513597651692312110043455689528463927731082604579858540426112309537010972081328144430298826321379572960666359175143243193575997827979999085669283862828282420901260617487522548948259578351212693984675796688919724305009780821829478316189819379332099366749743865872142366366106280210013963662235750859431514661189876492218505549677628531127095872527450701326421123468938378230997265084570547543070110033603909683561551828219349315613114377643037216621165901776045697777048940855275202176215747473468843697364508650349473958238011321889787818335900438217380555905527221185055019615370513861228937632031059165662873756771371764015831389567559243852273682437562726693581656286502717418455201598740705045198375674292086429297371836972700679247283410933532265368666672897063032793210086630275283076882875575392692991211987363949171904051234280894745361620906233260515976275404849604919882383080923264295503604076202260260399085969397125951142873614066799583286600889308484079577101228098322134216892863997984629004778639618516536462762657350312586156110903590039808336379029709500197976941627118498689796837417277219664274104171913403754021299215579290905155984533468257433241364968190065988137680803081462949540933672390595060787700008118972796156623408628454230147149663730366762169706422872412000332971237069273585333283035731265662823572906680889536944674690494698465496217053732190268332588194722870233039318728097126797260149239491264575224044000365818365595321963184813444025787921635239511915340828014258648938245606009834698736531852168142433812484572996378703650533520230030034603107253330340122617767723620403005349306817314208803209609547723541196235782245794854575776243765355891117083457024219915179250611087020733039188475699435464076556172222553016461078270219486321787329298061605792571397637458358691416883027001404478615970675832836770076547368070212220466004246126190933813142581003468283766357675247090483906716624066601705463351646127832625166292665415294619838071568339472253815098324853794985866908478924657335086120893975208975818184370963955887303507156737076528301257261550243319686896701347741923107622872906134132063153647149702132799234917312070778207668204107956342258539734425589004669835043488749106243309995845202075383144148133429221399799852878493777941975059579203302176802971387002563848727088455389736158208454567403192657464408129781534184460618449725812464759869386117557193538683214357990650274520682967611477569473729007849150931849239422060965739116890611805888687450907452267724872340225413322131783092222532447062549783269536750323417584915592469530173085559479223943400797512726721746779149569075383031282724831034586031279772812243271181041970962563539140814478532598022094962975938902520286673152348176011390226516754445170593978461272938301554249884724813803889784207069866363507941601901051996969191649437367484109497677762864363534758212337107129583903253299775255522323245888076303077861820965928943288686083736377032262321886990773485009517489701549823218895985984079094972448130549794592808044707643593092078558739775758074340980854613152863448192674506699097556815894261579086886818526454493519631534482162175202332341262885088149209099108063912245945566606244433835512397774466437795587862706411255974528471092565375897734593273394045789183255980930102600760016879534223568689077359737143267375891896509416230942949473544198209676709234266208838653290651550109806068354331997992166988059660645031996247402418983171751924396525263784182120557051411073173925650380840176050612071298158326834893768756488380420501669150159667597272606479509275630274231843532998551571700467529973691805439523932438538212630276994612085427192435451504585192592666529436980807339025946209917125976913953536999792865294669137789371867850630305261831114066555604642982299948261978735233884766311028377669458019214520631927888241910891232330192821986041242895940839878341390943916136588329548704324206429207344824840264981297297590774812641634304183398413536492013811914041774508360051078786106175298228274036670602763108491758646093454401171869134731719339272386865033533083675137261690636297656191759246315186343916991647317093536097474353490670483774242908519800955788102472599509377860659652280582969016101331322750373007638026030545158243423718440628145190420279324736530795677527236248419851040333649403385974992023222943811848993352672206789875668680437990067462451411204772792955707423715771679432667911509185880074513231021117314584627329630380523417044904905511143173865631703977039966609345152936405317466815600748388345780161706428644477810801754442184523876914355182827805006770893476997599235148706301772061824744771482028041561862956748696332469588935409710726281264142945658619337465552909086969545798470595507024287019173629308270126040087688317159714898424735092055001613411275369170018415221019308935216757221388955615368833029070525697532552069337130833931957394494757560350251434041564700635679672471820248208697926309549935939057312656662547300867934430439074387598100517066691000376461785956466621276531149150517635242731444712368264156337136878484477211932650290121148340993536951632827411213977387483231771452676639395575418377205773140302690139802979161517981339345789307848731868494009673456638104609795493513947894348626250322294662993848824775755295894642649628186123912592196091984796412941813096130751780728970684851842014752833562829397826406780506055782513268281458030742033559036486241473767483209402182052571377341061216949952490416876221639481917022537591920694611390976405715303641824396400335872631965740784330310104875636237575454807284255971194629332482615035068406949886550141896537103443663997857732689959593088453497630243542691100707028835584635212005324763740290646943638519989703318070573707509679647349927503096428737201079263903698628548480505222990075811506148331632789084955325502630667651469404330236040239468936927698943592140276752833233014976483979232390939179290040310539825543328482324123460636329894712295972522869320184427938228860986280199807455459115991445230400033596164590897095128696526554131990470436432531975712952979491470425035223132531641625209639462588259137959973823806232492586076269353689346733374461006304344190622295143657221403492223542406839204154924098920436220510964961984904308181613898892602193846150367185110274680577307606574856657429517605345416148303804496514193942819439156185751750331879551139378991360419073499689572269070912944057925750235941217529987573562184856207719449006869139974325155253615761290427221743627394760216451970580987984677735124844374554336748990256018476229851339199602565547606318616856166386109771464098534798451033028093542165761455041626684809862790234545028807302365736937217015329912925627558777276538059853752230196342644130257616307707619485370931782120653232511695565892875978604583513818559013495624132197869035458378858713776240492431726718858593767039024859951754507379692207963860340674494981807063953821632374934565224766986295916213243735962074425765280571931777906935677092691836260128955131477739908102848889687016956054342059119647780080875988092156111845595902689064433388094793698201129178350181758665762806713177080364284502551229574724222170804560531516501280296366119396118921159394090451648431909655736421729073083635573519490055953545097885210526659646184799988552177689100846654981245573228033622970476827986998162984623920080559451165597942219434055883391909029813069732615149619574312076166495851625768578626975367991066215783246463135243095411293428859717989514083383102875078753888434303157839219664929513987155521484572998481243631978321940810025094830612922429666918861026854948876711297352063707387623347444665388670370340589983805784798432490263335920324179633665658143957000251789691991094124298394700139125732823563816107559033094482927430109223782759275678435263398641500761783959695289134096020238381990168925526050864919161597460043730018305064323064096237003825384611388253331370426106828661420862914819149116429920718602861572546929392946334745066289661316916573896435762392174681122618427880036304346827904033780736741051686603062775359851899990216732064439345031817804307647893644941124407618931724702258762526074298207684293751220985320613084205436124483437754507349566524161215287718699171204693832537169825932622575146480262918918552924610398005213336936180139121832486322442079141405252112034738639480791007997961785368062693523285382164055381008725072883560475696383756439802123028014271271139398850620601995516940134806241841647331591050426333462624966477381171396712128737470753173279880090105982642383066826713576874184537415781164473922059026215323199294150710821922497455477455789333155930923645548133821427753564742160354766925209514813317697547645203715910374672250797831648857517872937860553006848623997885464707136277267619653504200178394083247709116999177086060703429132853029766341605550860088839103190181653196310238624129583580484959294476754297298442737442099037148316538000919890632888463015407048860365480952600629142218764529670613987686625233047352960172450922022599777888197306429589673870559378397250464640034820972139947382316307043942550138472458012278340003284559886819303608475721709899614328978995510250497126064524557676280809537087100659529620471144870580586391347260317230808318342061347872250943131215984840683774210470760250369492249304101609799654754959980094194208581995292574428516396044540904871577358057936037947815211153774221939084044844218462328349565719668082515270102145725623728214293452014333633742707635405034508524118685030846231551117021388826065147411442468555844379930480751973168092396041750694951312625667546056868271220921186703970593917599972789458917705125081555949481123347188561893411021085570734244530902099305679603504790468540958692689516471907017633076336851536136458983705836598090027556827637887117057187959032260875845196384376565984068486450450126412069019317838817918982353430801089749026804829614508069084107121365881546718009598580778707698455180360306474749907619899278170238146951595436321495623260254125867645600432536783306776087513222394081554640509950263344019736430271668113303286892518566363250830487754803749122204226163924084832335678915629681598647735115283059185911566805925871882670092676798920936639990187052819015862998132325092415949445196755397723446163117958283461341811125873220981283192549909272083487817433889460215350121608955327185373813044835191643532618190033818436727481895563408577428101024038384091907634566177635496415436915128762673997505943190334355169801715421256626103224216386321567670299380571852597193148959554488224919867938496572258714904037814605686649359433576193656615745238847995613064534132413731157140821383566769909084932460989942290825387063315253563203276948822354986675254674513715750703045730450072579836309973519809829919906492079589637564802985415459629064533380783776196002435779069872544378254348070757227494162987869489072610707303659056687367343339913087884310226059944814206373337713642257219656597414776268307885072910077462842548267459295770468601275683564877232785148443914169448904093473041897294222276518230027285371219072906989031242293110430161186506085687193504434513738207131973952172463313951697879078798042470475541857662865077801255211515446858655380877385372503319741878628745574330362382142146747895441219541713861880382589710563011419299721328332942662468929196304747584993822634506572941500651524096550077168464846694936178673111910850493560677676086276032191907091759614257770251945845110819263610807323475673742152043508796226216901527459285293124035949009905022281907043877971153382427426042447455181089779289585532564160107725476941891278690606480176006848046036721325613273524448210114155790777613032005440398195443564910124574816722488609661049273936178621088339654029458966714155835325804738754550766205796282852574334062729707644019680167908868062329808918795383875405847594933084861747641073436977762767367152320185536951604145579884658773810022609959521433073951869447272026212784660878693751687554936561502779469306181299651004127076490591924434105149484083881559788590954698520188628468385453264118555889920534330781737168323320958204989800072435255780723029714092706744359616802324168910241125387332299725409870838406817955528931751743559451164468893302713940751112902006395374763884886202043210041335080264566355762951583047710180265997018050739035855922076813367882695622310770972197696773960564098258806109243314206835571975675128525658656756445383719584086244716342616470094261108866901885777943213760489188877301445854676844223148741369660102068896005851037951550514840939344889236711855752808080084007992702838074723653467370900025989390579554888277922484502259332298321560036724918361997716566880300217504372015098656532700773752034283448724168224655176454232994140807811433611082870035232977476761931869487705136013910208022152748148886427476714624629321097161413260990471460493173955274314980116939948227872305088526218989572927925967120361106640151579946186027963545063618355302276458201330175979218831785948566563756691030246269020207604710541902868680894633483416056957673074955560369355271229975715543828657982072246506882859619751481455450524199593347961416209549374021949922420035717115604433574101308417020227868521104889306077304692145346732314570141252426500184847390624949532193303470848805003512418709115597056886839734297701188237608250219010131125379759296416437286371582758291127868393447876990498411160768328720784213591401462697012425302299798495285679280970870980307692283940232221319562547711130400338257427430845653662938772384941869703956548903335860746342308872772230809310042013175058765564466057429218513620249097353426909500016888133166855032261172027737483258731689094331940741490957573358364915815935902651093096757155136677168411192258575391570964593263927491352790071572907974938251578019514007272885708032421123947349937377540905958007389332550268858523663462575786208740244469769928154372809714411054718534938239921448508006054382400504882649995867399296550309287125002221451323661915250337664644459299892276126833740488314746184918906435258245535945815379952813303793112710614649324223592141849783326953746209368814973641613927713756548282359490658385234150055671055821321571845590792157638925120249860118382890644714684704576009552608233268317855932173556691857071591418480067353538887475218280757074177711279660511651906821483432224392334765899088735136678341195323621914534849839017616502361710738952096803086120754896567414791943982227556059790146811121004265824362474543780269262097710859374493304159354642438221120175813718949074304117516260444468281510445719177939795084411300930630834991966907393641349411155025448164531143462696275907282584338472488419360831542581891970749100351562787132406439236963944945659089417108744305801251721423247324173264644549113056890419501554273946978227375165205299581791809723729025778201999877956476465730023921743876888278942355041219783878875960111181807972098664164751268045494105746227928445168318666046642351809085945571544220237045116733299831910711015427399437298731732281094461314246664799204806107449764745515612283589993908255587013717538327456575569094062734087084514196868658792204809549816753389325478514666822497369319735548378760252662630523418527052053522635154919748777051340224180727242759613965061687894669651505781724573570223173668866863527121214037167509894320070828330377995294830365248719353343586121297200822699096558325589255498493796396890687478816897466121687948221793703075496322024799757271162762485565518553790738533254474581814635811719599570593911009978537059121954735649165147094991923966142203925633632517036682678035199202492693152525722151557216120357851762909021220539235331820122020634212550851056142766948622802172851864065566161705074982008131903594160744397122885379248390535479109285910994727213878199239329969084339955626287545481498044713357716161689587755194970491095984105542984782158766168242831234893069333643542887597646448208878989752885102565578621976117401778422742092207895922438827720135888405678110829726790491976660554357330943372547399506478790856069825546678680519183101580050735031466452587116957842182671224915113825526408958223715140375846461633984164489817457904061600233538538703660420936949572991181668507282195581766193347453558039492329268582211493642790786882441782550228365369541638938800879140641797135541452293334242441102419767411389950652190625889263953938696114068569015302349086813684470073036103376363327084688472248840607051411130791051399937995608759504833755808694150517004552194531055573400988278775361153548352385134071783687243542503705028985054524883371262372853588719927317965591696958148966098043992352534916593126923474504998173412105437386995424706923742473735977385370490998226650594212460618675885896767608677140693692568009965417259900449398785408171719299256363242003348579270531863095061353111376737462856479543028780497829207889600250163097778900191322539823977944849358125048328344158657060943012475665237669890523266294904022956754138863609623386709244013244157538092541173497134335357306810327891666546638531431413397992808093936213219207109888301530641776822006982218796964634616133808662240353206238806113271402044626982208994833276124672495728602656195800038777572285861197606146487173393224321391311353951486657453465314454703976812058218841318788588020765106414495403056657697898374300156762569270568998967930215488443608106004829876224482416869995790914411243393834905139529234166828523645610950627634282195762386425022749180253288492554751579934016303648070551090315369176696755053872212574831706430511743086650281267876092368190082201047917788526121509898519823318448050693647069769021024879552167372970819852871957127403493888586501712880222007784125795871378939228321828333766674707859449608975557372420490267220168223226413307634733960591085886963064217522177328504885778399890512330071601255994389253421189531877004103225321096343991018955586175367789296607750761204767418475858723583985040563549439889339055489321943625667620458691898668696153572033334188524454902388812246950406063326940263362120284705001738822658719628222746189649728295896781056283686730308794538687531972684814463360058807044358719822863309434360387477228717522054534651450309893441425764658119260252958795534758062813128453228343679572814294366665561217469628242049055415667976505440974760841145275712025121056142415171100177196391482306820305181217503884330407278973811616587396702988254666951848095222110982608961411335673848912968520648322697138288143631902936786516126494179338903258915015980712760302141345071826681223841208179911179365894018673861746399938507122870109605671505543507482309996931616544843430657226507956909835783485274666450112465218749267516008644890491219826186751869499899992784512818298221604814901943671273013853992148111892226879516881757521625408116284788809984652614363158423660402270631401550897173706255837086724627888892247309258517145256165435517142106610116259020104970641386006366310586282877779207622624492609706286658126931088843835182555986935079327990794142542296348356993362868937164730013686016500310816283097381819317420269190977584726430683679993082451517308332356371440463728643214755762096910075192336422643537610816135729856113022598837168318578454696820810742169384001797725059429706392362607476779295964545534501714664199192961471107694609393450849472214114524036706263895137827909456766463626678158197906414618951552206033684343984972957602190476431641921656612740626692577901984379208040961120689592487952535748201133894019493719924888923163858844906965259253816839329175285591456756282743683485395845603432007431343387022298759669814811799411727838898953955606775407282588600966000072606740216536170750268187401499091763150951239755936768749656158060508714523906848227027343300349939882579686038660675696331937945642799479155813379527406468473956452342149182241013089080572212646787607228934961547203712862853666240007364537717692896487133322440573675155144093128747062294324083492545348506220393018219365932027640586846427882036798051512434545695372360896174494788101532006902536018442996201075482767706840933069940923634326456102314414854688019542240997592560345048875722079892354236836989953098071177213271119629016841418559164021660765497353957761878610322472379334435499548961192139314514644423753074642893995278606286490962530587439514211317133111020731747273534801158609143295689428798306160248174780354200117040678192633459698405614226137864925810180012560699437713775842218423186011046930987722029195159875216249041897668678028672862195550995367494684475884353288856754416925267653793956315636295727896589184782180806394623216225253458216451695851797086025299165502494267334126854548082063709215473664470923789735983486063570084660000449584467691923988459316155826381428498635589080617738643446314159689858071005550320241483989209069315887127540072513008634955193737520492633227117908795719293862934544201785798694637357798300421032992612140459169181124392171862129217566688618875787894431673697768191724446408341237499327886775184873385881665608889763178391775129532235813930770131939159926202416398641605285457069302248326987992301401459958117275361268273955008612013248195554975502217487021714034650126976244754430531421368790232235054358020370766421827937269807476312741674504540467793510600585103058945776161796996948572142643046396335433328650736282914785490879804685281212361327887980408939511575758729712439233205137392327476278944726194541180231786182211224538430173089124313653842909253532393277490865731507838890056790572684145592297505320015793878085966073791825743242828111822732010805950778865496790908665901108266302952552107352544433645500031405756256527363637750211046118639395490660622159523629240315188763603419951431338857108733118828861102972743403142946376792312138057064721695816664013445758437211660244007417772704184730467535960103048826518375742394935064890077552951464534409307296072633444744388290059119680568940964218231965618673367990034354896759888367486134674369955709992476441179558033646187655606279662722488922225140582600156509507419121708662569563229631050426767679799229506541929803675113116263933789116226644351508389819359521168701506518878845965516567428133553749351423061524400449257886424707238385715367093812012153711607109784195928221032814084480019038893175898257480110229602866492497103666475189968433672400984368075308635262692916530747342600753226378348327182976521658229490587045380808942030094286345894189099894764114592776457131621136862188910137757231119528390202775355354190785151321308115036547108022588257277166734748316568029021658655086605329238469709872467961963121260209128354268197428758839844909756659913988611089779366583053324256096518431624742429246384657782071310462824016474904806786140620071364941035730306280114096602135672641298967259242603673145541996806523655718840253278722509927194963445824368251507282870854282071922281392844644287207383506991169076753775199333952486613979764594683256275568597333333822393559563078038451605805241364641925795081033808512090609879478194473558015351076281927051089310945265265874752328283284760945180560520617899735628081033731934908204002427732160457345807314358828801058109652532456569661023115172437202832012498938841925646111727057378822389182189553346041227948181807831611978734768656342490728476640052208329723042584842199263630724539311693624707208821431050381803182469733205542041373340797390256602001931667645344240559873882439111952783819638399837558464394801433512327882238916204533087095365043896540743106526088912004235386390077172690466109729885415862340616903311352816455150424258552499025060063965478474116471757262858327814462096984895541780874802457643733924604688098774986993791170649401756435171628240208518730912240760055593664433479912275856059548245682622511938668539608657333622061175079439181253347547698579394274460058397513574880241384478597147277503825925400984596774073326967596537877998758569872764040270435228210264220966858449250931459434568322598637330453905009256120113853484118856353152166787271971750175405401552234947541607932684072187057488812975433889184605777952809987910464444036960183299253374238531334147564994338168150971648460101516251387415221656888511756073116997306080879493219510802730462494111167140416817902021954563803657438827660366234860935516322842638604038820267981413911560861501228446549066611024268239199238969391116105651281938132369295010449569423793676290495738092733659572023890811946804028612624286552829195328990514808325069519321594523903976511199057119912626455629382950715055609535975845116264819828768973848058890601076583651104724132370916456744385100487289536251924554036641453733023220186592268002173230957447036663755986258256229924796464417569906039727920285613307575953157684348991366209798157437888225614311316126061685872670904291908282359448352839913657928395585511764957476255081611413109212979253382913547085709358967063505340423912202206956418159703236803860433870641033537606995240258203068762878734244313133050352527719020628708468019274123290769206011658779307384166808840047935327860728198481907013342073220269403150437814959093928524233087123989079353503710853570152629738327076881481215292694170165610815962457827720719048230102233451388072668677400571761527579088278427062345147686006829043486414597000730045133148057358127993802416281360387465779825859496789612008544183426241134557082978546034837659571072634001626079480613128401545874755374731412384393647755808379703900363539460418901639660284097711922604288939462815846792287413032592232781153964340009357997732887596425670900060814730729817631461203396323037243577537056501933182451293426416465034762411484796124427738868422457201351669994103620396796192085445835204879373477530868061931278634487644791740945337422009058537045398296463030590002771762140224197825261422991238062856229075030646085228775275198645605753668858949967496245906439610968509677374224987574167088279134215504551598183587461027411609688485318550752439006926670953994041211525608292401477625126717385222180588842587065334938851893361281908957587424798242211232046731346363279579926811149361870730360194712374683461754357259078952386920563634091844475440272032346542790832625910912611516977189991685862318218649481401032395208994858675280469008865533232914156221150770719699491157299792617002920385590273193893670095064279287980918209604923293748403810157153611257504881575155135744827262290012623867623302535311434070358136188931263531822511361030082415314433841616632144408605607532836345174960014543901026618270459468741091931909675922603184225348593819229828917232599549448423057919381345965644277601550038349608501242969955422263292782639117419797795764660613822486306539180854391835060708380870812517215950638051973413495495426643618612253492186169392367141499032764615119194689194907316070046213522268723134200447207683501831164120761271571350841199193344829034650758147012525716678928741599966169969651211832441640433631951157003312902923385912140715474807721691725709398225703808318798866724591844943656644155982253139130920354169997502427868214835561459346833855317375498524807560214116505225494021682625849229667176509967016954750875328634375959333626501799341799629965641949971922724565916305970459695897793190581972624495428386578294258143322737168693949787356076658357330453031595069520618705938817101649483790478817557364331695157930649891196389625292753796179704453678008443567739508867918966154469719348863568626348180426563656361175369904258207316340397827179027465933661720397044301426513867519342702996176204467253103283601653286520614359865604955356465460981092668268268754725700059670049187900019335183265774588225397256801178253988874633318555902968389380681999413379360583490171787173075579959445388815496469432149410331142132328174592451350891721482209285523686333017479935738203751452403323598747258399222249910385666545894722036416284082448666587764688989669613065015092003925848507300751245582326070458613322691250593370119638867920224212483244515404016165878368408015286234187944335406683567994482529379856362407475146535973510040500532000214050982527345295955489347631804442703201621654302494086645404928343705624278697894274516851652757317374674766061976726971478904527604940003342891625835654577982480433117292377206937137538923350666053925721564752907031035123705136349513784501644014618678288032357847946312601706370033452335793401907116095690107974906633680427168778507624598580315250048809462915725943141996164095780112201392069310465209487425087655106642156057591150052045128977885089150928794303678889437930381145231811967229377979686536649749773341966993977515321310557629313683955313201515847428461141994946366898237861057417171252051287656779130971806006811679640945425344164487377948746523044397898701676557969259736795891689265057402578008572861112205250540585512247362360065717810192820036403260761430928111998806029461964421170604423179507895375789333350715996116446769832123491995590437530977127563424854368539932045154735498230330855347775603506566372268727205475505490146055211197723651939575585508959081865575693138892615749134092566074034274303559383668601653435683469603449150645571244533801729005785269966375163268586492366866628646586336265188060438140198411309966501667568461236285912099696150024141366419459528547667452390666764002917857040221757191934199039500548778687050460796230974488867453690922065095055839892721693075723429289523411696276740001399222588275993229570459455897601394847662893741887279411363831773357466347063335253950510720062667797901805957147548516685852956016399865183110064844693514358036336692234316781779641508539728858591771938036370812353704853361703557454846181042303680719871987412087877242503502157414782182296995450667846605524307792588180468491600930201954974206479009298012727116578811591257917411464998954196013225563795457691648895837806407304123672634946628623519140450986145626960356721908746544060188378325211335498246734171547366457067134410325989303652562922973978943696080895805157012249347244637668758935275260815129682833324030678587221979546620062175136398075910983216214885363019591532593652367996031003741121302183384756520800874179780631558065503982009969545842342951243366307147000787270677045292052652606500636576904138564452699790359340186007333451927181590708228022621401784330593350747969585399200675998025828778735001608332383871978208967461935753674796224092809748308673484696547429390365554798330973909720773511420575675050108572126397070930276251272719399010524390812590822486696046959285235195372034915371811367591971324605395630798361587774316126208221926730269467868071402783330117660096808031651084849579324122221503142730301711965490561062819838259153371863464605448069798623334776192264667912857097526255670386840874383907750610590501811678048484024887085848627248210011600035151846079926709520339812283575485305112134796898023557702926504873591223628525105317020147736962641493308132686497634075906417630514031300971826186875442365634872166493433532023117483676972193890373157805249424380017549721972698575486665835985013355114416429454827434977609523054707774835185801265486415749604794525404361794801216379882763095543650861206728349731094506278161959825628344396821307788082466691370190266652347545144831544075125129068769730168595391916955459266190931116330412297176596386112014782486860396997826232195959648648108343692037290345823703682893854221806017563129670544523761237246211931018097654397883148553894999170131666141972392093507258001151211394663045923821117750765803415672316587322776565962064984441826684771152554167867230663566863345838168399459071418697827428137700735490207404248873954249785141996292949627936064367527296260996736357202748171357061651405050625140320267020497405816853836869329175944849384976189918324000569115781013456101431838734271036234722466261315528379999529532566098337244632209894591521197222353179114845054736430953397764915992393828488289655012078272790751382413846672605595767039650874139192935726589562011796937432334861315985325124702762103787510424849895926205613399024071732659653436691070809744665994117246913003596560121553118138004216784156937880401029600697561194079707563322130714090050063301597111511728697398124394396548469001779150435630777116005468708425023808518501609046616620476606091926867553531371596904446013910826139613314015513352098053965634874936858276202166436041548707314961727441465273669503785748477006607332479432646044269607444328557052076201276996511319168873441937941551657610269544790143763480971013660386572867296893577377110436428465349744037239286068630779662025295531635276921793668350593490869624842205106170011386943152035003228343226948178291168215340037075118708891538424011906540788723464030455732927758564330757933904615379070563052173212820158791979851301208546832669923089762686194986151407326396564287048114321985511099381334781129694871550607499059963942220739269952178712312102867764438161872399436938895911074856638384609509184690034843273970090782368005889229869761679760574954638160986595114890235181999285851967052953991444116728854790152453951132167546360348734651679457710275468417423608686141941067883454173127267210144177774909070548425731839791238643405027375860959036402987787714542552337200568354380326039708398447469039400386871703504211243447861469582598442208505754217514301809639187678853018717970182993999551441510039677572958499394581574267125285930039937128445010911994464435154169291716032371019769053221605510890266413216624034186399752959793291422763250224414533907195724670587483808733278092250154980915882598031199844723750053058921280896172026263698472418840588902412210396334562821553502908800199615168417140156000588990142562010883394543830253204082689426825740244323756080560917156280702031479845521371921911347034856751172243458793118710723154233194521543429058447487408595694615317410691720362876343713437964463666331015047144819995826672276020936209632150756547628650972148514005233316984507703616663306580846831044773719766075899198061849024018546832060697319266512624247301631019897258697007395899510219557861462094524120416790855492521471458406492444811939523122828533396051971644586824634208910862181888596318566015281586697703185091738226583794339777317359672338655654985012370092416923933842168850096925117946056953666131218280821236111642269254637098237529993906089123062415748381655681831984656761345204612183594639414668170179003557880988499390600089954129805858355413601569372214681579745884583812914745634116914472670214632803851624967696208276668851299797664238850077999139466600517600172744905516521062198145366924178386466079970347563063640604274800386765611956914727984145273021479907831713613472794774104022023150900664713820978832601349732477805695479514615855696212701891543386363514210272371240562411114901138344315208068406630637670306708449170431054351243220742492223420983562540073225257879153723507930092159907475958237441394292314172455088556653778412125374734126859830857737056149613707315476132167948385050785694327024797879730592505072568208507766441429631491780830825812134732930001281815053517480056922932005490540448893996563263503770827256582913373327138759698978370872061797245809217923198321210669395329547359403675304642087459412052047147457555505172347554524222479484443467560974300782248230707720237057196953388675431162373004435117712452281829326268218206855515047767065494428989773985008894301170370073124105673572320274840617982655919508168809790965896028545012319099877580367910656506914913865945492545945517673826130582492385435671413596808987960690121257276757796980653727800564915727688538977756856845870206490027171798292666337876586914184967766852214416396084675714714806199457447674061880983773653738979056241954627565938432614910224117364262329051900493581840991507749574834946685200717186959868345411661702647703039017925454236878946321918387096062694176789019314415571103714411670592441623842578767757625142289862501969645039376792523247845117278366645283513927277514184181804725020521132745385208630823593654099132342778717451599082228159149423222567167654788219472793356520227131871237799382788550728251267504206243508844111361571034165522802993853455521429747980181996511482788413439215914771137904995694120254174336732951207854666917738937210498707548900795391359833941038179155604636866796570502583503671585497739388176022963822246515559581191738541539807902331302754815508865997734385377840832299136428237132180972667824904298812170335804821384003480736018381554355417185323952385818722928075353700518575913576147808783008241592827591403992288016080144391978500530081982154827040185682358073952155964858162940124482077701461212873691828436590637696041340492799142121200013043828936111867608308634194170141026853272488394846296599357850608793155766664447796809776076347071649952888502677178015495711613768993587760963130782241603951105824993032262431872016507773334732178591634104549917782110309783496737046398821789788927022784684624090984076215064447722934601024285696925670336012996327929319103959132263849830634707012160368270201525024625241806682126963407747941075173587878759702945724883119630942022921778627481244130102620241326560976410313422237095536067533041247804173225356661175343838879019763817003937230965829473437831717270613999946135303053289094825426373587444383632624623232579368183045751403275433250850920877100601653032296408155542273367754305133291646802130584024172187077310119146361452353531661581020023659849279153219698677349156220445402845307448373038719113349953349533506191991137966137401421060165724158104836455483217371438925616299930322488964345483742336216296745688182262879773712827302320346605629718964449928828527656056883385471733023004393834838809052226715990864553630104879087261668451382522574934647860510080601715665768641708656972082588626098165476071661819049590987564016735765306715475176631891468309841903705238564857858825137656195382314247371352559069052552873760994184475931677888777396059689176448690788439829280235590786056034610606002706873004346327390483188495711441578943564773512368428225157991157972510941568170700176529556500113012358989730585458157976491914492602497599703471045957950760604262934193036804560220814476420206113378560023443902479942618752447593693876956901561097158941372028968609248767554829872132122707867270475724314934878932524426732894692249772641978798402201210438078303872094337622046293917598337585036744074796674867408520071050023889321359907564914112484485472320324191522229731547987958343448571804614539402566700494181343629334867355193399463451257328595659345587886857320310088126882062905766515712333762392138425397354805709549567159059268725295272215171732916790587363109365037011215962284778213407278961351464284250131449488966610551264854146221007159881899795868457784944109851449589430917877313102693837348075545234485465688620921729757174079848761115095763322493088104707453174975208810555977926711796615015071815320305890412634395229995102806304514649926382524262110594903349339592689060625779268856135341244454163687171820788647977622250726229341865502968744362110703665586309997539693609412643198638445738043992159980068585384042940897193538332881606380434508741496255995619806478992359020136249409563480336809285858271456386254690164055364475098791619939228893687135628368262056662826434960138645349582794991525994424179085349919940100799580896339392468333951109354951758352385588278433863347710616824897593282029105437738110268236209694645592225883385705340075225198947140757126097056582327567649413164537382497257002600407641719201342672543570038699604631704848097854596442423746016131356303702491758450088196682626810856243509234694350629580517366689437670170952507769055001614821871291278688969398847522341464476428572203007154798723317932398763593766145108982710805951799749693683602762023585674992211655643729093014004688335192096619312153379799644897455564212449183100648106119258882789187991973587464890630095209005054974092388897994857652753397471636461525893461886291504272748139340532281585211257880828044260546372555579661612610278953718768132254097676144032340310423620617841788301155381203332066905369251376756101181397522497305820019355051761304687421521057088553490846001015229684703158675244065637581822614797833956422359647176737887399041243362233392930301576735354432353116381608866371186408717330565420528506104627770502659051246226176041612328611717170012424670185177772705356426900778076113449803090603556836417604494832056130160185627187655048256761468963160598608795327130764393560219112815757622801449512363351012515709196256479251388257367461404667888237585088961223630892883275577550086209229137681881536486561747124839443229929671136438552392295955450402400463716337506821333563920874236613986509984803244568325150207693442963225742665185782449071325030675064179085400251607129594897500916344424213640259112691639906182748584250555157909585443447347987573014229229805896593702028724776232959037925930401061842452151615504098950384061022593756059754754675856423240018497802394517204978209490286383429425292599267331467333952906636487403798689420372238139160088483020741827600009674228100305438347884794066134773564073265351022491241276926072584648098397576731267881288673573915822923395066328048632647131700747762185349487668418377489778587777551061158313040965408897865944682242980367435801696648289839163061352590172154879999485255853198987736187619599762507190786254315886689736505221309542714643899708831561957647341663133553303746649057486143787062488526141021203684213797355510082621833630975872401645075976525236499316187835624392556211205754934351430451102290505639124495624820610101327600981780170015219752718416707673944175454185796885330355220045518844463349039810791698099230905960896769409000854423780439340099820959858897744534209721696622553842159408181385104131202140767443672668337542451850886541221870055222601269180489775004389611066057637719936574733556920858876008933691918014775660234514989293515882197646388409130960545234749773678951253793747999475715381305810334611718528546374433133109732104305980591999701720685490301846411496284386228896413815488347515270106637617686543931025243059680548008244441891446729882755539438090166074477260281864350371892682089843144468439846475592289649025345935224294726596049693148154297138808575481901292623859175238095384207504806625679793725437183702672573411321881146352914532897385984661601494398226603558041844169552200585463691727690087679155329665356097202461943342380219047678415522932011726642550098773623737333207009274688482986668391013244517539289081951584383038711770782557027413408930502229411926359028151725474384983491460534849633885943985718869472904686714752008082721139363135077146637088092190865229617866188823435485792026737561496360214099716711844285120609292492780221126819356419122791785968256707310554792207642885245528214881077758519186787332852517797024685342622486724765663784679474398375889592243354733146883332999400741595162514352267937405616098066534737181818419256008568158366382008907019384523861592853787035282019772052934311157735879348080125292754558049197275885251182751819239553315924187544513031184932447850852500212063997748356628650578226108935763893540163781025144272184472009093404461679240047301728493024584131008755695175393175008357348510136264939631655831976729894144672875533660497153713091031837178661464541849041078076945495877845477491076574281364528151271820306229407599192930983193092449315253015263615541318332429227350953200382467331408835236181590969773639960377067150139162198184369508009590293463016043375149898145054755206253059493885262653748519622712277869031999574837353900802249261095319864093373995072216340733527556876649016506169384172997952601166951602929330398858808427739180013273517550379630517940887111930097134077942034379026500244371593704880202269665124897340608897707037756063949068051833862985472846059950098699201546679509948511946894670055774147919678734775747133656637947875074832385541721896313879756256252606385804272396676951242787838656553178858221057303818954104695534192855295769828332905000930514703310687179206604848179656358195788029152922818040775888193547720958427390302312867660815722864840098335419075110394973286673639401685772460359097212284279982018700406832693659295190219387461063550077072547267442695866735166987923397618202659515184953102480455639457170706037983362617447225325233452418128431049572328337041232936892173371287397642896348729023645607861491237139957506492368431497169677968134110573235663274081198733385851880219418668091697922396563500324396280978535746178039586420904737482925990963147273361914119120088282424536677616776897266855085742354396103955989369563451522258353223756102129167565528938712471218870276275986859377130712892013505547399206505880988381260863545755511378550287331425937783861108682230961245790691159323880162610111741320687501012696088906846047826824139980995348609332867999370423340317222166722443938608650423339986572586241885961701651102854909874830549884582112427112234913660340653737562174290357862757140335897864282793984678901598771787021633377889559042014429014144096622011524043202280257466999077711485533892052590447633507843700662180457704326316642790558717366548940897047805050132372720000120374620040781069645991606813897614053597729378628418653706714862237903985613258964219513813890960039893109932849437993765427012297804709023247981522459131034148801990117999836014779133221079248374751066468608581447038734155609038502190017663424232834705399346875504830270052038681105791443872155413212072676281878714575069133585152269309406063199963182890048375408814989943731220038326447908758946330181424738798262770383608603737338300195632432456972605925247108023541424664899680970556965301192664056734056187595558508640541325902754747516877350797761309229960364083777764799271787184744698415292146086210510819503326757111073629253104461109043784681485420708756710112728540202336770817015516753928042974530189576341158750565607501179267892489555467792130139161231767839566336790111167879837242193131508047070562886736862112374916951164889706874321520380420537032840690603923218947203238254511024299652957501409769407566517269012992748438274784820639227251530400553079009927203178740488874010183604603870292663417934434077868161197294632236638981312498543081186347714436021889502567021968919490868867651679561469164331497716274175220958944443087535280448687926685124800085803284901058325856272373553176523953626189404372974632859661006606246927371507500624322587893619651134609398479527626999385423951395337686062695362322270540060128080605410670430320210295758960506228430451391249559430955587391046083326616888374887321351490021899681032021658493988264208081288121015115808618618171972664233449896091628928236070701704759595146072570523229845848432419456292856205441474716647151468669899876739340732520944062492102351914576543517176983087124060341578622111583754419910454266263675210625215356416401079979452198906320385084524423427884152284139305675098220810399661436372602090579588232271257605544590699613966959897149878564841855217447373195072743755834636437071693928001478450985095188222741860595886129104594907764516103693484144679643596602132070594337614076826109290344808220260454073159781610896513628615562189866578565191128374229871308916717456937414846958558804007694906150416407850088525151627330347661443325812521038155884646884353353785065610467745900397403362164921808353059387917339970081756661026035694144096758418777339846291268712257595095147489893195183956059990173401504017967949930650495754462581872610385761217754184188060089812288811242615143821579267456430405342117513108805176205850238206536491050588174602355480016194696362874864180493023705236259391179323983151188543551774168374951588728443859325043627244943738957122426786152338310508878802566942572601557553518623403828910253525376654771182661077718418186750333331294707849702164071351277481954779875509993415551419345268943009263704234289371132833435210466831107217363955479483805633275446682295626716066943870797837137961580736169541409698530072897470402291032905779581692526463574404049851560323126382327817729308377097665843803537636646163711659729163934971704238586941459392745766996825729046815555887690508972224289615665347445013435042305193424384151834367651633182673533216512447743049497770216714205475035828828718282401525034292913930817737639681953211499801886520716641258274177288623604375969141765773541037327980188222543394652600769525742782278093063987106966975315375650486707800592130023160969025124572972242267691855150371244363304325543851290418547087075493473616428515559854120618909484071553648029107550146794295208403128510706483967056612133898241370332696455331995112455793643828972229633105848668396115295139266994499246824984836237181322019081256475107363148386976523144637768938227645729143918531618326318525450827356953177787779899382670099255678591242154626804633726042444400105782620639663393468482162139534415559274636138908380214113123293052494405109986107415356276789159075084400803404649349466813695467354536448178243014809134466689680704992328223189730586283902309013019054000553518150367905302360872392073057420217755104997307884191721725792487248809198305114511263685685281886955639719212124269571379215794451372652934532697550562685463607151280337580661619626624526249083927276097693675306604764871807478233432770922683513216596918430483633188362700473385029555707080936958182386575047459751425489951890132149967707890246620770134883067184125615100042481464615938718284387091780295432490942266292045892695314867507975582408571062243938864535723413857020652039568260390776414587201326802676312914769285051162997254407021117835411947730375461392176211088511047259034773078659435927405865027012789406213937176051226877198238077205870008488402739851819894172579133992119792824702364697459653117326717593393359764822223486630561180487715702312945829428397677837086729739896277179497517822404800996337136057063927150308412559952968212695368325635978646083366462724117509230656191389706741754912585891851292809322049549205859789721166537724251605442830504404773615522491992367146057583384623127847817536551016201967746947774164589115481293975765422683816555322094501630838724275637319462210468554405237943785392808754992100636003085011961492613315288867455338027968785928711693048135758167368363843650565050414667183728286936714540864999676283558113836455790575411546562074907194652290618937792540770490327464315813676923528073782971119424419465278996524185059367384489009336574872703355260395963054459377282220101079406713942413264954171823608738867903277611715891279508094850071626884903904930605787820914068899480865566636691897023119003933591185253583535166841978204665347478777649582326022936280095267500752635045518675466914677722282351262276396452340169305679519043227663317971894775657628271751965298410158411409186224837154846725571991587474978927314799710339782143819472375621082916139844055319169179890495828157809271548883648503850272999769843004370135532432185521425627761376592745879349947510716392185332594790374491709495022155815030643350386607678114433334761993572436449994975938267974087629288553154455251369468250526822940826325526409672065159809736540840462471852850067587220977504540233715495239730849060117007931032336702793536059015940065603263407343466791562367596894347864736731010294267243850251707771120368574486906577255540488385192926781749104292026689798164395392545417789767595227626053701664738005618769099858445247507026426804485842187420279773257382053974741252347589000490329141721477856174559018263334920126145006110828891668116102709171365632408238203373573880489023466715725870689376278992575160750518664531372391272702663839111901414382772157646496660647671655291605658950474128911024907544701201073594854680923034308575389862697142147747337125390229511699012158645038891654312038964092868211003532380553269886458959246640442107994818014709454396066671473351029242043899918255833586947174812529532512787418632048229158766667083891707194757880464633586137775067762864911106937024090137233200763766574282999337882274369438435369256771302186972153155355083947828754721456889398595151158134022678771659985737415037698465336821447449120487866645337273912261415483082970320329303439087547580655940182782648352417037926042390445857952850664051723299642222439557447378935220106272572994087759084303675307197876745215389331395431168844314863043882633185129320613021523063204440654253838084693031810496705574250894172183120421578510785083203963388195884863202013047033479856703023787466858838979840122740095264648482666060815019344159868254620782824568139752668036157477879470409534539561712224802705044288842601516367356117235609553512540018094462157192576210664217997899173475089685114886596754112784307287937995526562640320340885181497905028142473452685178443212995730131778881684180029070505412243274324764559688844762051472588247840477661295701208709733157176631890207439211275164540755714186166926884780968365784811109937655588442129448434462447313111032257283700199374677294870336653079035030784108122966740200937869674126041810123659608841939776965123837316323023521968109590759080112183556792941136843355335766333370283988830327091345738740251560957131515410692579081218750432609540732202814233477164399705015102813771656359829642566770553699431050720187434442142717741497869999769034284793863598274622010050214474536153253932044722788480838455702553125333898023886380982998249373416396573458517641966069379828424883385932163815953524118445585902383507971448951423272247126827767043340078663727777096958365988584067544644283887080122169286537901532704564571311673563089651930129099474559569616634929361150983042852958345610150231392619984710301582856161457941611436705533563175706165486701513805559080658864698116678201923041351747503962666048015283584255116115870548347882661542049276859814559973218011672057292619319042811328104860389098931604708841777691025576706722536435844321755734370416099616728336017001321229717380103946893643873334699081532901767935310951733796038224186179288925892530955162287215769468956255298430735410439178881019957803213442303857838255026636244527576491514057057708544563083670812261298798489353175725464141933044132859106933224916838954527608623944540112670850660398191110682006953428365850770629484622588686650582816197013337998197216718994443514151961742992073415978307759572828472143534513692041722786850608640401698522083902072594194977319601983622633979121781301924098251715056026547637845825253797782743326762579380370811805615690666926260453231130546680497283801740697904428994988118217729251087588650487391621283650817862337948604996400379009204210154166677542233146081058298172990070470254540661668613670852709007591210657927840069756524640184238336532777119483419920076828590676298070308689937319757422592919012400102330720376904304013938456210117859441325216485596366070663098136528178510321635306814348317434428978380939881153270928161838810465434457369379255887027739948147192522433106446998331259869098754774634820202623131641584040850977395356498837556602566442062472991229008315526838650947569423541900628199528683716088512005885805878049186326325118727141419555177691619167179710522500254817269238690554831536935349249371911167459958487633432763502882383044777556018327889556111927952290142137741476082240668466269662780066949118256942501936140772849472825665330651501746921297360006633798337213112273634764733107552544899036539712202991381872991938186741620671714612078476975297212738091989181289630509151767701827661975149878098119914751476164675717983178852958151653930179708566961230453168404971465642764560114135571895723253859546494928334192880177679702194426691700692280875548041396401588658676050375775363538434609694607774991089567655686050419563926992106498469978140847858243915742284253973568835408302621567373575795092230891879200118959115543883269757846190597775733974006240179771979745510345349427597291881138772306468336017377017085004361931398170207690324630634298415126099742854533197917995594205261796623868204653273053352543419635131139734303270845208602829110452696013464490012476320855407056963204843332693682437491464280460402710707563781327691098095995939594608475805933524249108876467702448245220741872716770510439866229700224696254231890903443287028472110998621217671726451546861789137486054841386265974121487472459315790499246406734978575492733167926368913947167123794608256718790605544024657361655185562286431008470699942140460753938992501259154524106895038582410994215792872184441933107455998264216793330945537424801282766184971773748634180195123345422404316965334462709781746571749159549829954962569416501208424327203874610707431947511524191048867557692307289594072353080891886708313279841862348193944042713231926024710382020512819098352213397740400723271648965220817040436952649102506140115452447558620899180894434658565039375833846389648042705112448447572005241113087648808859991372894216510488644853362151885191013504212264412583497983991850976348448508576401210228765102770490474046929802793114569820497329977687250982703765089002761642407677636582499703072346994048076632188605465235253821812280423821744231495203944848505329022200968334754214026890537692173115508555223051073138971752991629002913823910246466842476138826274837337629545519919366983960204984341205277871131609286144376570875495145115645161962265548871030225186008149270921802324739182424254564815947422064443403538090187782167686975919989385277893992939661051011532928792771536119852535573840609401905620500615653940972717789873057871215627114806511420935541875978559233941767312035061810418939508285534983803508704711169248601447024693878656938231107160053809742791050144821954931436863925056471081669926690918417434774570209017527163224806548095642182341242296595026425530956683399007648653463907483715608779537442802362461778614899591069151516368422637948483986379087041391768154805208422943088411110740093488236903799975670686635611114090306242234861805152006472632165478563671331785514853647468664323333824885573104221620189454802645057408112277593945044567865830186721089360414692117801489237728532092434986476799308906731644521224532977863975322176114787516961749936897028901878667820330089174953015371625713559126264481364323736485264363708748938308213484347435424134940736738286515385865679711769368452264684526078615432649455960743645359011677829249896330480119936256598817766645231846005938353032325816260743974110360620769830117164555408334793554548631538995404190537316074287253238498568850296818084767562499037701550774717736106637805208155241707280254908765511293328126572078470709025535774000001338447667468125793702442112248031105317359996316952294798662984132213084755715381735534233406782828845174366167870845270908607758902367789281057829851653955161200818422222355693289247549817121910813195412826872192660012345710523263155025462713910307367693519816527060989205430697571884971300941156880544435519352908598453840200607711316287934715363272704190124379419696774435398884738740934889097317482789612146097707911570483930698995430749055591516450323440982739521827807024509094908318772023799219678123566736167683245612661350661628602625396919004239154794626919585223672678611924289675865776227583271391983180053659693266560010143145625807752822181635369074252068246072607468880016531988209441121425691698842613938347132048582137713840920652903122387478005318920399075867231191501006596121741662644240073745158246564573268494286230793642593889526410229520781421003713123330333635157943287060782472493423895244067477789204843097302678968876838058509182287349767134485948188655129715051386859779054863231947514313758131858115004763892484038220472635127048377322010400592326994650484282082553224914203050924962601528121578109947686790114917498492344464254219313325871048630119870486792799532137662857585793789882498633144533738465720529411516413075814332766621670477047488911278744638248401181699907010576889830373361569203343953277732716418276344184375473810849623326149648536260696736477504540936382117075775019742830905394459678754321059956128051934641571411095165773760381780451394021020214587524495132229960400281064186825411054807879207068198472043980739971408579453343261716168822910985576927807749479735347660578293943763520169919135857433113418699717482911404562457509716503813496913729873006451657368460774481520675581270201408026888307554775665785331362406129583226567050189329150085796511208427579391179417830428084417957254762999045816272854264852210042225162078631325479106181086514146888395246984646269827036434243756981757246096649173303092540071913328735107518933020583457870758510618111613705357759361715151757591722056271165337279449250920325014102638717031450810552492213357307676745727679878267492938074885054468034860917094192361692860727406658987767518329214521980112396397210701853722872004916713283937526069759705092821156446146854849654328259913964812062307035680769366019995470191531790345671373662307403841620294864180990064766070852433708300843397653149020808322630447316853623556898820139519869906500578431073665237210644894038264281816674132286532121177968146342780848303810497822702881324123592692204483517296306001040159991109641197981798543018228309312192425375223643919359726442635858294946242859690244924272969560868524603555757221752136395429930353278925810887522079609928064321922008962348076527666242780014343437904041536737169911339386035979102571266309861403438183306239292373520891865220987748692395476355496788069151264290120623642684920405680440700292135548058228993071800373069467457358072362732189511614983575688745502040478721791713678308293836345342012253146933179526100220170061415575096167068283608513159759060227795774888556179726129586720734418167029063103249131400594554142503231509436957259650524304465969262500682338238556519400581903865260402386826214305125339631453799810803917566441833283236482737395709811779104969624733883336373513285549871726860590590325128786441301977904898242755886152927906728954050099860090901686270831737792357287831656860224193743128603772616875072006448212349927325572774152209406575371952373201944184835724567651747589479417435043971336720408177645707953156774031682932795725483314051686694378809669104670558046499793121458586179085818568115964633942006938209544501468744247781424867536496731129144651891021541661652717342079421911576907059515210830932401079040558748215727821776455237245888147995759857249978965662277072998257241803607113182596401398032910806037279481445992177301178484146609777730886048068823905334168549301846043009327140031639262480772293637643407151096897906778458719931572120594901834715323759488814440025849189424719444637524129307420061633738237625508409046160971710790313659079760664717404478508239668566043927060062003749423641127261269406806730917064351715689367824785560467106363604582747085801071263671112436342926833786165639560885182878634498509136661530086974878828261077732056040457197977637008433193999056222159150693783797386578264903501980373822603653420069634950187375667981413137466306757617683155707982539298243230989231698058118938480463420663066552422877434354152792282694297773875409727518222692877903110321664653205360113495984332266049964540025710937380468092822745140288660860618744769591331774008501234200686430572227257708777740563280514414930523491986253374474934496857414641902370266167511000993482742926194923823871896229141668844686350463261935936656802606194837125937877619008144962896245029963164366099251559720141880690272735776124569429769865245174107741418059684244830790072133396643751789011423662851137595524174654652976994257480670949798857064429638830991198522083305984462348787380643796904771216910081542939855338309758832870200776420311778045035504890605308249779921811836268608587538288921842039268731573094236672950426747817102659903763441652693116713925451766978108382475375539514266292186215262289776282045933284005955948461502731944307857648997142575716917794597411147913761470531965220207133261834958109214371416441922342093893956131052636677130064865733142826269047271362633929061291735966858906023191946591317154394560124926932059330266511270724584516758894969572051379507191235803942644454205222901814400139102839531529074089172303701060796996249629041311586117312979175090751791236394394211581388045314281180450032950180722911130985018863368564840502096473898825227166119563657129848203720022759975238630329111297601472246823571168966387252140921500725868051701296830745000047819970206056168950436830429647525831704245715235105030470480131584594902526031211924516777946958336891737424691786773519761776148416502429805503000627640725025625660500007180606217844218838145454332267497654422282009072658133382507268895910433798553945430940731149602991103277207850092376228330819107864795259175590182032914417926989620951102097528187411679880069747149500020736135484529218277917105524495212416486682430888182617964428578833672592135388820805161715222112487202713404445896545098131936573750939576741508211711904786699995550385899429729370816354931328667322106007123741643171557472969541759011030262821708890740187777494550153682450196239705898026554962457167042232510572468501150783843331974405112562630296254786759688349388442790657245285994902281096515568002107067964594990207882796251081237263591722173972668473208504837092554245554836360626430695332301216481831602453006512091225700803892370846528547631944924088730393009920229005687943513888290987727841192726150324480995619330175963169655711781822555951799060069010047506670580972053672836402272868186283432794314138498488952308653701960955731407506688699599495316140461671647940209226186023733126406958330329872820483950563586099926571060637156673549388460878186470771646918509327287238634819729424412185259840420098713581690713733804400515384548922215007527624807487641823536242756170897311876975893720238420106882921191171579983391598371909281817738598105130414484818341115938087544040114350900765220831900098442373001010020358885084551715015597592033367672253766344139897173236615999689920236722368811245539942586261998540149276792655938882741965415807326186080960753747044523254573622839930806337530118114178139044853101515792916086397671931689694888339628060260727586673941102307528832433327659309504980338900952619116987557646767045200605438471905302013166866952997696405259458414133558915073964625682930259819736273478156466324711467176965169261461552325432382616811031863232941941740471757516647012080337271999997776128801416926139122015266285705674490112928841826865705666986905857824413623487432569866974923077456793384743644195308893702517504179343845859853734352855787317935697183234661053643072041476872085825393843671516784257695419703885361221733976099644258241107812161315062277901618011416297219271599057385312855911653791272905489183996514046077339414345856156287552604070564202255327957637014859254851079123303001225469780149194719315291172983704637689027813254164394764975347948209200582736825191162564619956887620933132599498783602937250941272987284151686896785750909337877861977410117631797380121969616268847803222842777638435125913562184592419438281766744127692022085788178789644980965199845419821800386850397289199756248421577060456984500990643195208277588891300462105723966945750082269688306501290455841791699487972960151560094635816460774377447287725957060603897775971636051197756030392544785049699860533235551538588227631843198718531125910843457216954304270062822791153406093355381600143669045896676052825462307887230557341697967438896810119680500525005597057624583386052599255187223619351861773876060954189335645677919830096828809791714263341281677320477537139553574027396993500118902878348597514125867771272127063838121023208140619120555926024556615755731131557775463776071211818727661415763271608954347121748435225654623594810076651135120953261920146305288299423335079957113739861456737161778411092324143601662038725103109323962583656652931074453743030175641843817135470945773051772639879872298613911395163885629593685908500783930544411762199476899071906489661584404636049606345543225465661509921976321447432829911914287842194956844717332871996578046613281214978029633612687014738003012866892641995353584114924312632797989525971630962438149655965399741339749294787269171883481178386827420853339546710191317790462362070661452138675410550444514096025301736284881159549261464635311564225481455525312185124094931897475504856578315629133167094134493361127632810819273755228251937283685268799298104968909254143528282858586909862172305672579198733812487377862216561461611861896668828824400368662660203831671478613254344124027397842623373226202705172495286296371223366879564524901702437801016905035929532114968169262360095083406728526137815604594092466384529857286131120951110930123594864003331671074235995425314169613944542888080682601658345612211623025653985520415369308528869865650522653569510383380298653851213460929240564175287874831050317595362778653259383948565048271217993185699995050711258301067922324249538668196192096150926943210740195327461434336151082240621849132794726813573925336549482647097685173138196146195534996931288879187727116360506313187998620927450249757693496531588023760924827632360915599488389639682290051094600174577423230618184175845813465587685053529646976418079261655680773777884558964763015843368367379974904247638628657540548920594303318471018676637488917473336393284726661101769817604303901748491761520134326714225847976794070123243034827941512653929145350600249902175801309822334621525269615354696865479708628599359672004154085758212478649289592971475512524072788538051721742645596061938300525188839246111868107687648744706378006123609681181969535794887780720312230814679963427427766251885687406370469830899953081046459139400625158671336536386517487641732203259614724684884140682890685419820561897169773274095279931239222293601641357218688917460154838738931005562187609653643019737514717365074725990309795293246947148701328598122097963643745951447287173286142757808926879419141151519107595287808973191726618620818816061859044676022817647053894598454505073031557816410534412233419130195072613881296996924984487961977726448218818608899849263796442594284849493140960132758333624800363531999739474749200839011563110465494211273372442315892786290325036480708819401972706764984488930294834567583484209969416994811982276915667737695179419628942635023163832589090845319514641234343423027180213353961521485283936119270194312421055407040718069027812510603523655837455277514624693445492568369601587370394463325703784875021658812362499960381326291613497779637203573592686855524845129140978966823648173449162669099385000206166186476503572800648622651240299930874525059771227083491336441373486975556241671521739562735419363764383816442171634762146788299625512724981597383315322326755229338987319896245310685669026613799735097120526304282472430055380835074866268366408371975743231063390371770917017394481117135529861935278274493401381273541941850615208779955068428571862198571220169080885595618423636763183449636969610096437596417796383510732345795335270903221994486127718241161464292509844912566932704749736429931412452316631292275086683868524296474840095766470450836980106166072770414458023301906291643509032180170079169866328492685686214969977843125164547835491261138081471948927442521453863306251024207532980629296096465784061552614976403302527753285792164116525334963033271357663200070279175526570977497216096781637599666582172759069836945923187754809187945340938092242857635727862623720181627295417341375858054308086682088181188260426950427065962574297834440307308539870322911010342036965776322843772340738237953745610083022813101841937760956100875507062670300928166519728797480033662266527748901100923380219285462977767114211022770276507835416681549975793833149672293859363615375240457918455926126041129382083667004674195007013492999455225169373264062457588837500993919756731320420858706459712941379944659441481207098361023671281467054842159587894003823097269149003643533323716487246057760585100625416369813536413167289183289505607398382875345312238878192338687064723238656816272244139455345146684783192506907488579222180161679021324856309387178618243826521446288149223229007604333569249032585829705433863552461690500254241923923153858967697104576449995824312397717597238652281099636314060643140546647882262072665757883942907697653525228966883162542517956576145414714225767608694131331611398594388135125999885981598701575955635341760643970095602296986851487929491756565637626545343801353565877853260922413289714183116604336281327319595986205734553291351678230730271785848617343585542681289395451882103222440513466127259569398756675603873581248218301756597832347630097158739052696976629702076493616010373611116268291340340352696076778489347631843831870754765466156029978850821689689848221526814028112842674859976334541656708717671919710585179125813879170878236050038964659213215090877730418635990106994938781688022772834686474338429014010500529093083989368083872272503104389017050403570910260078784987521792420076594138238508770962167367691444161557721322485448257754887523740604745187745390980991363511361562361989558181719234462591218806544776785951798349919570406460086582326735432722203960803910476286274320825949129878932604244745921642214987043170182817854022454840169139287872520836208809305808200271966493320134024205509397256592679005763336339892357140239460324275500483580845979085233394985325417263981427985969877066903242625779410633968579493878749622331472707990316497093241655246686242716596836937042903216791823820958058791660504610796476312528944370377336030140476653308822159861175742960912600727421214667275311649126733470039052070284850396982405802984109204378377946373194839177578491475800638677043101188374119042786859085703794654303363997539882756423127898838930649927641670558121509713156571810167827351522803914194515239054570029243157024478836569840935926861469566426481128313061010938595635013849922510909903259403885363217010937095467365329183470722144991218482455910103772479227716612494758007481974400895212586645239556363332374372253685120606977860041938883989603938140780119441443552847749956115050837393765977763251500537462125131830769315666055804238446634980740387766081854475097488427160262865658394367824975793453254762571761528468012829623662586690488515610828093525649871988544323552325840544450753254193174415974951487209177215313656117865495719376419075818060375788165173078988728822753502331762056601575582451162001380979026030462110885861288739016965439888461833751783683995975328210476420076205101433310336896008054710724154037807808672906141429342009126097061645734927706329868508372373340757049985228750423425442444599300046933129157550518508374589363389667056914504406921369952016919917104400405614681603259828098450387193753712804367559374663556869460188060627653925604465898486611305273734292751684410922235814185871825842448178028756465591203365282619521712493383730718588893317474347940527988908498985263615095892204328226853866096606833359790984644686849753580126832937619100981969666845011916456199420254711878885905729395883147924537508034447710730912174910949004014156341403370899944835550909240563556520290965926510644889295038840859684314581116766361591974697447065907974573214087492887482297858064184171056109183677292274263187740358887974577895292541598358640660838942788114637865080276708220584983539208639753685593787542657857924955350686768843200251591544434398748374213205544791202118657411628454955114132745591966151190650916677203413164937400397601534664375463694986214801770057018288066328006422301733952931292757756418269040265820021531105150659347311852846338447762271559978944776708393825040273407073643729268553084192237091930602200898787816502455110888453064673817782102225336266971510962179303581706673588438587843174290244801129774822241423213274856096336650308307367238800423020917089180978508310504486245836669838155984797901451844721206399628728474378434799994857796802143863704012132757297418041882927229986254730368623204190228729571138524804091810030283371074934227288949289129940648311619727437535075121800741159649215272464013835707957051598465711036804041135174689182460428267342473733151069752355207186910903738388545012168516757614601972429547288655487278254050584627639014802382328332617340820306989401305052393809926125683437607759095639064784945550700441603499737711345796527301077964020249836323251782045359356252153382300448493977353364379302767803711384749325333001026861414471869864831095091338321287491510676499685069271550994728029956519346273700621529433147854081705503147870724070745211564006024736809563626921394234017556457648651063186717443318136077776739903192701227228083599157022219968866945628745506906574956035408461921385690961430415619376923213581103638845774453786398134283274228162675023831508303986438651363609307604394211356904888682325260460613692546408403391894466255434783637150677629719983459320904823930465963172480811663395482058546636733682657276148143550322765472098481985272476640539406430891035485128928488120210934341585761452377610627717508569922232290838299515879417699199940236112123401142175921447431484819591524325417058834697747825525562908226976882412593050703933142002171320365942492078476773253112041229858967656439608329906225836689201362007485502890061382712117483601808620628477784397069057970889814758560551486004273554641098734385707377265020869401722244453374493735054576183873975743351140192458477421838177581855231499391376830649458511175618541307053853133063863408466165959313940641868897152278173559590579564351335980243947015462976943827917602931297906097246032418184494084075269648332606544738775705000782613649172925567452865226539909870116130536813448784875464360513597196950601954850210008408118692886546286349347328345957516055230705381924331458591856854587272194315329443192239982814979191556177838059159768884440022186293021612892597074462139484935825572605597916246676051829046421171786890908018950023484051968358919968325676319299978820166976065570190822080827657106908838559493629661898005347359454186866082667724790822408948146146050654454511698373913573180291904213553356426641781323704939521895522994689289462979584049282692095524366240477499660008940860230170812033318487602444319941826207601870272315272942170820663289339373835763459367009157673726847188442170261128184875219202181071667158798111798682847347276285703693160779380387758737284832826270299197648785149425380083308048656838823962029576105556000294228530194151688248921832759915739175696625215443809295774864723196750476708026785646476062902402759643859975649476345640122976841052496787699932925464102466970808837319312865038716819220784521946798458206134652175600218095603208436077696887322614421556890433431108382751119137568959899417427859630262820557991121714858982013683499151311948362969616875632210717114091124887045773803038849381453679978548463064120231497090644447060972728072149879638542212073383766827786508003118382015973394571499614534767166322338052136268912076975076968739599966855187457117653379229198052414359085961553474189016935421158161948063721073645784027234564570622439268392897206041822205926331828714527547649461979829939632430745793989063014239785376333920413930161026727803091324994232999866607675068148291001248170184605045141049844408359224520894894616550849393796344216596717745593443170456780698463463023578175243118171081987887746043202251960363790293437467375517524126529041462355064120113091959858122883249361768471712535596095992512168839183446546406537261535784744518256903154780410541906767154447933181809914315673062778131521699252831082036746710158772336744743032758914715696635620069916802994681666920875057356591645430178921982526915321871608785563299612421615335039109094569938807760183730284405529477511966393755931482862111937134167167170375323890985224663431688052301079656118737924130627166337106191993911614694339076069666874803749372668360516174800721909469138329834202978869425059281345286051684476634013256216737034614270250443140655923398004362419403391128387333574559954809338969578237948451893742999792697857546676673335727882341424304101115010791148611796093860106111099617292664938282750850662207272921704937111845121892966995045020322196854778375437595591847959841438178078452293575934903628396872026082373578776010201058689713693506108245401595342269916436376035007685035066555823246467619795565256525656186991050030141345825065540912210895972335522642438234362694869231775891428355429014826890377152839298862544780442210670468282325734102606547729694939034097788656558394545796472638435374933798219293347451339661942259639157042742987726848943760375941121577120396953595100764142424004580896803644702244819306357288820495036415686504321450293503623517073361323388326902822513044382547039154604960660349356627290028484214154561929374931656347673214603747537543783954196917684965284999859725201297467400451368361075434900801047469005633459911452364709762687025220233074673777808922221971402037709466938901829057659396068994956754134789711020841828782208941772992190961958156469350438149371306891159717109882250408254783547187646239139700564595557939667343096385369978755962515179765977242847614854804862133211919458491502979587285576096445388153917430738814551449806420689008637756895328442826028091022765044498663613500348279989867331362345981026243464804736509122883850649307101810063391116429396518779890459516253694216805290061286142986368382622456832115146705645358063023310241522935598074500667640375864982448863420037375285117240065724289473195252814679434755379184017828963905420779357616668390756215301038477677379408791602101271852365833534051769044918458810618171293923819723446019496638759799629152906895316485396801742508287049226885543782406485818485533993965644387367293176310708118651798751700055257139566561145676856968725497151746776870733069455588179925142671835816117628012469219552141299225048016788952477897361104637847618733979047522825045613221501167807030706839327839258715515797147680711390086219087206622593820765952450200190872541974607587368612356566935537758249657697264370448251502305737159656726603094698860518777443351480540835393510901305053256193903274953814411274202188640592177076323435438805150035797276957224609425679612495623815521039391953120237273721662902784114431109147128638008324167762445143232889171367642455297302314302482383717899303084840917465588435289278109400032083097191334876583539302611996871474665731613714367171750495267327755259755900464686318274247454714840151209415206313344494852835706859342936976279522226301190579509078970113173146224236795681695228406779398414707581149904809265082268269970416028681087133802423118597036853104025364723851831827136543272975342711817232465295821343333419317834551248965323037326030166955426558569823247663361430276963469874836825320794291033488850889070254737729887036877347720556261078887827403424260280430642570944500584066451948766153417263744435806001012378019642818681670783792088011203991596674251135190738969439639991981280877618921156081517510618208625163796501872702056154435410701695473874868240015732226356815569934166266079165087109603099268045520828251593002491443729544198098551725296395737381712167692215076491158104359425975527036630090328568586040058730840027512310725073801576466163026647938325170001403169993891293603465522192861241876568543854361986314907468103267678062653467923510311010064137134469034277103290389044680686263309559392293642883143374840842112388965996588751482073464651519164163407659895524210046154031604103201091578407725155667263464684846296010669234555953587866780296071622857297488745331958745068040059021960087022266830960077103131668782027160127063166780197409448310882655048492434379941256442326878387730827652092711797631240732259955394595768067686387614433551863763031553777516623001375656863670263655845908848179461435311366824434584900568065966028434041927501228310269424142180159058150392095625987648450752102854674013692870276679324801901191354062709989864862738480551788846991776232813160413935757427648177794475993594943525081938850336740623849019930374269569401196872368876000427628055048071131231503316293697674266215275067326801059604818602448896354683423395806820520453960089642605285517364984925320652198863852590823896020852253776248137695673853426238833774349088263351728896797566541753703366247580872377517251562925525400342940961416493900473596518579308895735993109931787376573462382018984779354563608713866258900532947683846389486645091483242734790720822995397647310436455163885504406744550581041350954822316394269857117734456206513901719154570367283451488387918429078428701920051157180022819046864341780381784985624716673983668298627585185813564046790781717049188668407573013790371404353646005672839397677809055018918533571283320406154093483321096898346833512561029418461283198659531175521342001827853905452401854775511049782844776038560794999023987145389492054770527148977227781083609024566453004945822430753955284273259627958686166666416825775815446007656846593536893839037609353933848036262756133361873697002492644406595419975969871546832520387831925899104708513045260265936190778667084404837480282080972363031797716139918843836456945174055003752734162679625936297526451498814160527629889285383210146258242840043978553223402261617845021272019348887329080562997433759425147331568765181919827070397701623908321569245619456138592406275793045548655577548605325392729092897762723470743757821073289516432336387134389784409284303656315751185746858012131919577990464762899361445322744785274186495167331799263296774826058611161017024692765017982117202704566443750395238258435744699643284732001033815628107789526032071065026070019919502222290792950963785248491819134232160927986354622014498065697958331252606572101296651546334594192568101934474814619252136586849252475077289891042461679083255828607969615342009593564100906944484893007184003773201158542501578956742224507942347900492026139628507089993733083778236436752193119076087845310820125691506125788659646933037862997807889589594839087616357464996976044143863409511953608789421707857355284509548729508446403127756919428961091266437473330024763252897228119247905011428040230936508650415549968767241495132764925288160194271094972868201728250130690940836533866671688760441639508456790843778411233836503730527339908190977203425197023998931029436134434372297915448378069046309102218840642779990228297766650650894884694255762284745698580589894339483034435105377259115347113687014551828466854504612541855201517257094210371547333066679107088908969030420913087918598567067180401585150633505301675311951946619682207847539538483874809981658488712225617496808203392048636821270931246715673862659109914348166779061380479332230316882558452174123934436458451273064501861092656992945143660860729679756937868173514750740479626979093707763827351363552810446888479129397914371346130545921894643107352968575054043832406843613027974796327904513520898172119910995596110689291100306062920996242755186212664771630881397588408173416242302699730096352806326466611393994255040131632778679329452200989658744918898878069874942678617193771249363803581300266197477737554917689347867653432470934216966503528720740927856621492193851278491852727554338453501755732403677042948817870811924704280523434646673560989908259492569742545675132052159953163754773164900480661916042361348612647508905416548283951155065230820153117066365548636682259301790598167009806740009791934436522164572556255686383590271382174209143559105286804199536804182827605577683466155241411197799100574914734971722779373071241395690103170976234795398722653288097672177745550111181666612416447434262159727839968159682118903428515371756917397370086516729107647936389957724120832475705279711952999556451478370406080249728719725747643533352513936429432984675791547202531671503979999730183834714585819586355866001446534652588334474150332152715746625846759376159233343195734108926006702407503607874416989668875168725726753437537239839419251217566643415910988119055195571027460557387672414916680670689322040480976814483961410488019601560140253179508693551160016589257691389570419599738861556936734268288354334414599559661370317169299087754830655296567300717036525834545620739954891963431122659779063607877456953105346417315940471978403621542520915836459983213861114385967028586375195253159271182116240158596279285393695189877124437939536516858410964381997275646179388931047270231283768410214264088290824637837624833391406953776016768125907704941195723419536508343197284287762076352541099616887398568557916428992214507161064571769285875645486608008574207825443189505576125497028574073792944737819695219798122946090865457239728843920312922004493380959634685844018971702903638978843909055903686015548735931635526685650957331931956002863917725390337757683774617121804544856626107026406770284550855410496890658184167666656625683085859545196452211938054869911922264524452973264210623780853872216838327804935204978153179117027944361175574200224481282646486322820595982043699471724005721711025959978147643080205346836380458763162763863873379349928610817833621054178901626131156859504028136825059092297541440015652801247910186127627286148210772385513875129301461348559512403433970149842438100604889689637855917571534260971450232277093951401876147816767338465247666317775079695055068878086258939226951354950050685932299100045166833468051031316442654032686061635038848754482815477631042241879018267386072462078128262266734974752648822269234074680499554782303060595888365003468093470426587282711791439842485512270061006448185043550750881658872437390626495892240576707779085235375535614741114932766857308017872268391236290874756857738649443317612510685924849274653042797393727012497766980623911883508820320333175363899657270265192154250122124867319091291538017702062892212289034442222421027881021789604199439730176316554467482976670072053993578608738617776637367410486300139006803514150988204299364463216727321340438173854942304680907096598863660784589200354957830694037623494966320349353988982627246235677698412449934248718424302757988285437805738362828569773985552216908635742929501003938672544198012021066191165554707983526022875358317294788889794458932741112098597098761809867179417504425952999214843816126821397323970845186280112526756127936362339972621557858366164342998614762148918627671709057712108200714412328820571794509467835181181433331365247360531893520008754414367593504967354856047923799946171330704293326729487680198125740292237627717222705820780204298377316638242252507201224890811019347771835900847894780985003246843198157828701844062252083398571891111370884217305635748913357888803837361863204229940682784302843624917128033256215525224391981699765324174121167825719752251252126674209915452532086545062414621016550079834416775815349021936270229372062189350953153527513912492063579615472002193923171250623953231744985186006222953831802317412716914365155252674667243124914183558837269578680859902013249768279872502672906282618878698123861034463370871897112405845564792744043606126181625173584871753742140708162896587932194243528386547338129560645124232008082855362570160214814475356349541430550333357628924863317050868499603762420695063216466057728148605654848155534311701779964737504299122859281197946972874031743938557587246126120401839495145688552691072546931366176742702653903836553572575822408855695011312783272048015360440283712713012427898993457445282695730873412090859229054469319479163773689258382289017074587294870370447094767056277050330414925851028287507721208928061470433695615042126768383691043247173527909244033580980235097089219841573702412692506213569226264669602694494996082876808994842049150441132982757095257254316286120316821018560078642372148715015054332206010026084191506129302038105976209817125257597293324238060644600035171175538443858630275061294164446081772407668833701519320704874076861579509000631742745662642821541310078774595671598372482179170673839284765634042077392242705316976012995726078268292153911389804452503106772029553121853175686360674465254119688973099432509546032753089228922047121018655535578325064943777088565110007494891314412050265588432727043208638299454020673623841997299128465949993556785621074083314368982875649648946638585504839010409482162806270079260717386094025704148945756943823622086181396565430530408774829298084299143172724941289690031944456022594780654067917215672752277974719663670572724376589206224449661140565169756232975888363997999988373373794170413351837587029478965545626574964783158178745468474229494572681864487723225023730019059142011611092289377990727449456329744546446987186287296825854647333532082669309387478251366479393579046614483168503828683144942597697981278310726116854912722351641109285248993345676411800182859200792520879180821492085552378855796210960606276655024333620648236137331766809144289879046720959830068514701986793979950554776571130132442842098338502310287462669232273258985787907564780665867702062100624899391435040305706084180477721004035956189813898898508306198840203401809102080953991224351467428970944971772070000555152049928634884560186568526768417277285490441261746315972177853542749617954868217845141478555038714675214775004163643117466265936467775705320311257480907892181904621844629790984448456965602015821374638905587546910701769792540670818291698160890055123711859153661093554790786532953441900781824881968312139897240492156285636785816915507362506032755670888005713709170699816327134485697281435140527570500486021184781637717028865467629787370324416051370076581858639340004479446649812833450223159800984827503220314412323932415868875606176389500202770943226721981875106572152104646499127878153719631610899047120337532086920082485295836176324280009066777313782697188643797692275851247236813828015257300724931927719998268574559496773950881442602837544662013101955350208987651396491205181104617405999023251189289381613841974138239005962664195694117965117868331401064227692935388290383614992107607313063578680176237012312588513473997393167790857033944577613996340253172337050497785434488494398074597572717041167654426875606124494870321912599570824392420791330699519252242792476457728235768379634248096022119460592042721478215086840897338830877205915717638112676993947736239607371918796098533021896012778520431191413016773305180411394757283821825693952133705282897140216766095438490781528192554468510446439093243468989001366109472737963163373240776913690354866076145479523277215055130110271789773948098642463293312928010265954590462154069367078550365196960300335726804591999947623305574202065222917466208781236752175126181900434453922961365199673989016370326971003047406931934580473913826512192112289599926406224489316221859019540689455330006228695049116343684137291686684815735214873749073398458529127935006491070449274753681046949807474275147995407517323009938654607661836577625832565796530506385167007586107360410411518726449163539594043960795472919911141885265805081104940047776256344949213641925333765665581009211447945378173828724243357641220014442602607966529548536991727469308221768157161905002562905301426743372994208988778662372834401981129287865441411211212390677810047620362072255678458396941247736422839566705820746851343475049177433467176392331718557981087810747239949342091828304150270215815739895004707662405430883990974062140634260820267664846073101711594696802289412690573397429607518554882359339823081599154794215409305838956141869818884277189992412020082200001751001302395585217127161617146086281059629536115950027526120295391048810401789969115156839884240730273928733767002441306861799866863033310382853615052836022530297023260972846908172888055354197119211698427948817110371616583394261038936164640041075966058493602818472374982567756529210448172335245457671747722716280747660874582698732999485785720755407501270273627190019359864048913892183675586962158340003408076390357294271317484479966693746551326209271471810724305870351680929818756980193452107210592808883208376222135182038571566197241149026320877677359790174077635043445607145545637749627895834222809689642025416221144888411410474053553868740233950783911633252243214547604082349559000930865763877587405283487974166273259949051593773042941150887948125169841156619130552540123563646079523845936803668994830013198020279029795893035562779740939586656643672128565967608818873628463044656242126555337796231569502855780182384685007387044956084075368986209893287942843779485567249107742366361903058873869172977465454490889419640675375409307224016901100921768973719987830592133107857301098284049063572993352756073283154774376233550699221614438170296259054026839001300370095822832864204407694200640601291304608560979613247876441554370275379730350247517176278185460332235960327665578466042064442161547510895779414822449691739268494338543806560557841635675164246631346803156071265582884476375136438800015335879603339943786631875361223784577269743191603669857383513608951532853996235729492919187556305301441777593683436012218664157186556465278738828414221755165590841645004466378780140022662759391684150864260678916088359122667417440310304850585136280632635612863047778602304911284540802906229061739117161744616476041174440914906567645059451120425334104658696665469733353828599498964992925910819987413727005378417657491603570410026726138129632425641351659261848540501768938389428185241998322602182757346773119716497321344312825106581070328810273903103609480169464385837577478677133598453711914973716569050362236578165528066731298271225293344076307355282646772664249186813858654500120809360382472504851451979552056927387119179234716418161625221804825142512502800012503771219924185896414956888030350752056117394170608371854835103101003874536030646387404467141644376951872111589701477780648493047738226803695406072272742547185104726184861149648980582926846704220806304669792046277540409960714722255633568122243259680660355360065442145479866748791300462584310094616117281978167761248313185930032397293000496854968646924634085136899655117709313882556431817581547776713841203912286729242295072304413626190207866315651813762893013430442851311460464436289223680481843722839416924844136090183808111454664563806212218627175369365693342049191973693217528930351428669829229195359559297434589209488984953023258464199896328396355410559151366026227949010377252511584702287781303029125477200166637242297221470149848089229461651177065601336087934999994170359758537061093276948658342293902451947459153807098095576371157048516740746798536636385228224901585408105574974267210248426633652693843823332366833363163655334504551739571203300583646727117699000840925029725990944810980166483336704644109856175193827163859052755265628179882081126222474843925089051251352778166401281532950638681852354554512177360105095818280819406710480901733381420128705670183107403046492950024006238104288798908460560851331238082466186854831272218219488669011282455309789860032109978480484962229957848158276852728265127353900807920107322992035902864548369121981368408082094288158818773822698116144954449690105174047383688033187169704354494289101797844248990928111452378046066357864976562881205311657728341784177239064925580312941269593871566312515989639814751746302476030541220878995074186470683968353968390133102910164857860901324145731770265676298029786306061080925390295413603459868110874121198803085477950454872527750509143476445372601881714565942769014677253575483116966481419844654837374903431473124068899566550271506602138434452754020709449522966391971326527425886860866804840527935713734557223457597040975120198215298729180520690963188162075343401166776938677331823772827592685526937838230249010045738709969171970091243589627881643568645373675902169236673242396325802990513924805003535480498568793739645993483328289561771904140620492491460743841873992668107560999036651620318514232974789369609225280995535156615162528546814965008594137796584986246695668756370816543168155447783061471640423408399235221351513793269278164736918830552702122658777129202737045343817096852707193233062177747950692477489729096974698247041790191546272620467309581355874734667018890897632768988873659310313659352104126087369305433416168927213244200678448567627691904914027627425631931513887309755695932839724447246066390469934376456250415306770518836251836257175089992089878349863966041326315140538213518870845151902952240188343667274385584411453286833061515136231138888681793282262771073708700556903699282472496591582181908000890296549998325911736716151142393387813925497777916033750278440480438073984428620514449898144653706653045410617932827338550139918087181701015706658499675628937322038240637705570017495285621429706343511713639348510330903981249146049069556726402471250488874041812422560993870071712338954310405897532316169645507450562820316237502940432796836458620929984644476615945456002816439420401030065821838402739432477568138124003922549411847335671570457758616590242742497661188138953151255458674526727449412597158649825690298374850454951466658239315008999401615476240480143963889225145618058835271468953420983726944520129181377884378817554796313182293152992009637623967801715087716703331697308458001043482119191304911400132218230344429898749582094053236142337233530323171860892324337715443349552360424763827665720761926919078833052373255236552317856840446959294845133855420872140727989447898283999711634041541897102104246837092309751695216974195165811473382682943375236941141374102757880507740820909588826711163721603882885512605710554747714186951550588857388157834831143065820085802348756787347325487122422651884252035724908361718399664846372219315479022540978358788431329175576566954579912940034779365621810892781040482227577323208361591062373458850295278501211583539012211602889226690839137831823361092341467966834005753135004158847109559064361714746940356518562748707510834181877671477610817594430857995078752806919336429691968001187039797001883214890700318652338955401501500636156284600268913332912018724673752689150994789652598940699331958726531605633362693375751040155986843666213131001642702363145809909239245358732904379271874065152186499299532409683829384223698360665310288089395783881596775927092163762506919405530386950979948687569506692238759711497494078738415411266789899408512107349450446055474577778853324715838105231459251008420891848227852223824621491518419916671895896716784095260436701488460196009436941137958907682426190105159351425589081320326586804731469974336131741648915471045755984713925429591858463238144839591351558352271260407488152206240439242976734127451444006342157238168308462903287862340451887078377954400139318327457358404197060724854039744372228274764097365823355621352811705698617966801801812597907449878633912834227234517617292749251926347762352891064774391000402051882167861825973481448504708221870147562506881547738869342768005786744307529130007041871415764890341457435312991455271201850384346374205185849905889197912537655498894612272131295170492804821611472701080779368854973974269700576820065182007438951803272642302790703743964750376955916530750725867444360288671714861098408435510516276765260507198928385423871377138940113846060513950018025340464881554461336054788136485275710760287441667805067153557457306313405935868632988503358083042964225109669107825671470910859481833562817811642142829134387490982995425934753898029185500040543370286830406445692017707276862910920024908867092712354841120757080279328760883651653306103578878692264827300745524035174118714713207332553244661350562664296063820102314167900680286104570863181412103136863890416586740314939953623617474558647430788516624792942486250901786365143757458381097378914100783952448522625977321258634936863693337470369637102126545151298136040474358295557644955543527314656477984932241387405814772080667192667127651780832196643741473123605338336127791498156353653529169917228658766363049366836046558411383582950504889682479670288010003524952426919471021089106048418375128229880285950522489020506207112992809345482178945876770522671351275211973303296625642124640778229598447752276690117958483206447046030411203068845005350538623630973573708301734549674811249680574177837294142739266170025835265686965339210968443829578917976072487086387140307602022419835886969045642834087701952232823174267853014277953390582123501389342858604804240041481831451839436515083048990471546272203800613343870419001384862170176796680372274940098149717161157472887503507502860552992890718380785838396812660135767570301214342606536109205258643788639133851502955064569325210453564715806411263535546209592430791593794575431362960215818334069414118258500041951448070243777088194338124863562727575747696058748289155953574521013633856378148158459944021097898922686757003839137593900805374861447667892828411436579340806313629913186584846654987150847198428020936907815033779711601312344762027656201341664393492881422009760080642425402381025211275821971909701840770014030276536440039744862607344573752064011973933822559364549624181445103703476444600000360615303867873059279521188810912852306959980900328427770232803590921178387756725052653552289592027046945716506831419146617574271429891546358899699856505690712988329271928864341328832013077718458403281524631879479737048266664478769418588572744166696109807375673562102741257204631367344913250632458614846231561815403125162576609003256383679643930663091593205053088791840948356993691675113992864283152635073950124979466504469406699482133753016516546349633016252453252628237923589900735210996059214356478884547264343428689954055531358064276653184753660716547419150160183278428035870859179256347416570433991614859888019723812794026285549863582567919051286393724329103625840019345551471429843170374279462372213300337582640534141648819706765092688403859423950139476884657379019787068859820586468970342211947030284601871652742774344641566048131243546499540675111241361316896348369272316651427603711581403394389934050498752638044353322646573789873467251001110205754046339913389458197157254829927914845788585892200593346061349657085991769410022520130693440393080287161718339740581999852155558594738224571542330881646008851298410837570619845844204397337999082174947789476618261914495948382326320127288091967184763134452629175604762841219340631554264095402910761659561120490467937579696646278666399026710530762521314131900514399080125376724403808612666225621015368151349901477519835542415103620146712755081243422730544802166033502277099888392349877483780903475996516822277646881494770763946152787766608799026619385248960808402113474663487851298112958678019032258641807307406248986550666611053471369959206371372408954790215713814426977063564493934262912297387893519825699154072208415377012107089623188232416367719171956840727712018495800099486024070721035094314740533289635742847462154246363713493405648861090959873600531242785010334921771010076667968998338618022523237015498315606659695561511849449848933056096905904409978967579833317951927001810961396276707577034982275750223838497347572538495007801619082161494356195780524227988389124232797522759378306614811775735912497319260680726927269826626277232913245263919349912759369213997759246970734919369999774528150557467082455424258386413838893706654668397844912273199675356969698803498793028512313032361981199941574530395516570285313302983193625951795919762485335169996827020493141085633672393335159314248986200974628362339549256808340491146122761376642049105516472584155650439844173721186809009122498621508515985703388347998694413359485736837488929562500233698384414582128611455693520962765193092749133693883724917881996515755644487958648020776872785820833661418563031687232132069320347571947889333708917854860351416868969459930903365772872694691920242183937861467664833746138109203811173544226957576580617546140055422009148474600265717047110843979545673074940591352041788859725248888626650228043454457376136254130213945734814088472613243461897083706620992760186564862264645790174295089335111927471866749775168461518711701018160743687906116362118414671646542827167768732234679481306512680612956689222993037164499472235991782393690390632314965559591121540174165270063867597645585109826348307795576761845030255458611568150346607990906367285051122004638064728109103995492481953655074001916408102512447283587064475475542077531801144858581221024192438558499581662813520150589732876663442226915036493373350563059940487852234832911462244793666546965756042535621807010029027381276334879263846103298818881871174402180755280267335914310007342693533751195398153704268683277104221360705779573416588753671486465824196355782312156987284661836177891318235562711873403602875179661074480966903174780946257040812195053573034741097586865023030204351385178352022596403487688819447039703053718577798681000066285397891316463657459535557902210833510870152442017280753797076770906290835358142713401955973025289651813676427413607140815710650239774161275144023245848656319966511574043099752778466102361997124412309473159781736258628805152710547253698975117663154559860012136629551219235387433884385176420394070557550199133222757024013180462421053550036973830503396673077224671661694219628657225690626573062591274801024393882960125056010677470476620953462733197207504616442589938967995104861621050113437481628915153027159210435425402751566147245694302357646181088428341314659987885426198782105552670756008856479192062237621509421652428398075142958284591467622883095419894399773620070403812253722063547930809936442092693711926529638899038222261406138070983473284146592625492716171153593710670908830501173629356729551352543172758815131819401473118865867645486870225392118690179016942961136014972354692119753311320864658157001325174476867877495936671751575095129725566573738502683188985193678882450852146117829566583690737593489355691904222541911059573114501446721195950446189384728575865062999858903606798259612969420090761838271888916509699510580584223003990301956094943469939020781456362820555123210649347762167774975236781599530507316426686794712700534392695052982347255969382453117564895732758482295061810560333511273664969878652707861798385660044707170573689982188697577813914350014847970842753709692856524424127988455244565127341365289993744196032751406143108227123324005391080430171689537735064688252332141759211480515522278464395828826308989891128671440298327738627085979669976089433523942816683756478170155341468450394131591062329513751114712270279510342345066012145155801808170082895627688114238221931438465588171574375019806574477220203772540088097384698369272128508824097425750698001536120230726408892104748399837335566125675545720066681239703089452984688722471716292546591574149627080414826671408944539625431515130119600076798439425688027079931400277675183073582788724997434959111442381428700484446490436180798530083606384473666946701791194728530072902351453802568770978265053248580710866859243766098138392235623529766776076045469101710046998292612047919593825833422864220941480923421551573844851291066808958033668398189036192764232967501460232760304230321277158864449807404330237889733778477742426047801016549436349352982369721768450981855784864968951888475363122896670584082821529292471900710011640489860182717482658167726523614752269311830557810604353422427574423053755549802501626185918522293708811438924666730050236078831021358904238161274354437467448695511454816107561297585353121385342389330123261610931199360461533175033879712751861903781083089186389475259997915230977182022829311475712221400914218549340071722280217187846608592294754847511640793194282369605436346615730429198303526845620379394804955971889483969874619298097267903576423418786386321401498400296129435728924054050041784186430205496542876021825680812913088963316805550400215247860473484477742047118936759395381799117868247624630642713526319229088245625766306108560796200077102805693079429159077133318447130192272699045212002429442734177692285662752161654909213068914636385428957762833955991771535574062662058760252477180210158038234755160229685289863458187195835030169232849736603110525753419263738944328275631191960030604593677447248710335032425619682933322025905625495852618936857488524737640738449122517072093204662331580712654956963526101041174528095366232537122528431961717913303501173956157684717661131422812169144593662915537994726354474151861251433736713903144021347159188832045507235018824796710375925599125862197202269900629945361613048706610317240828111820267852052537783527962583010475174824690411699891821274014792311023097073658544491091590450901110389033502566862800910460610099225777526546137454829144499402593505254915160804519195662186239384438790345795038967363986664934714525929024229751914565997313329689083199996666278286783517323995929649752878734459967459522749082140448918069001541260874893121083335813182288609609647404361107602718989078651990795031756182282538365431247391765275096478514846284169535357543992195966241722095285500994953360693855407620937559016287595999420374834380251765110037185935073974580583204400709886383627095804915198857717469622921724108512017989013637863252468187572602631186535414595557798688410774934938940309759312010601582761624796728202670288312659328328307601233602486554966252724419930079511877839753283595314975415970401178408202544063902942822493771207862036045688234269166026794356271642743633105078803948462052634225585425308982034505540245551695512508587606659121854764313391108868481689600809072137049418206175743423658866883337970091022277907042376305618985971339026757584659057915052637046572696995943764766696604379783057227512700233178521065007202676386795819271202284853459577699789297040410098029343702033067500789466953529951879116431869881001840690651097406439355713820450046601722478408661610007836993715957595194313760609863841461028676157235478599508063457122167497394860449486953278641747408184262315569636583666530009675610077750476076320380765242853980133864633636407432814534679358069837629094805367925685279112329867413547693638036604444898408913915618685202133521078051903568334753931938169243680401984027729800410448698864135048952305256366526168859939581414830930269390287208130273369235192633951435650310145491564726072566680339625462418337161723117421234081267385052512546357345206352288295638690778525690001745133226086871224575221376428389453153974258452010269456144996488474455255783887719881848482199611749494713693770854517517095644992880107303350124491656653395562608149093805842158836308989322059208256645386589656220198014849959414678451718265293282184209651228775582250967731979333008877160430259417927104109523008920193635455542025136263756537900045208797206519864344927104124465993690760483768214810089998622351993974120147130161760262918836101333549272090266892543939840074185757522271894170279732072371353737016709696546630935390290385545788108904124638570370898826297673893614422103498440492520404590328127227161718533239754415347397228976282663011472347461327559456152673039102390752009405797368202315308695522006335349530467164448460775405686051534310572332662217201132167642694865061785257391855152345484713615025075020190901165125730511911452906093706496561116178024628424805656902352630014960278807671100215380684684978825563780574025959574333639434740823515782587491691822330630415807916691583442389398359501692348385422220469040714487585992663728854501363387708462250700003047645796490336788047652368648237709793773017792996059397137408780879366439344306993824495549049030305300795504177519400389599203926177516512283652019560227093410291484827000224128546572841027863216908803417127065385174384715113628422850735060172507553111102388951581890912247221334882468274019368077676764814563222431970529370561788480810648817146185359021010506693743093689821826899729821080199030432854338691523974912949282100085299888245848989503316960319358641245076598037079711889941764734158399761708655162766505813660461368812897627743489943527486411472182072287122329986778675843686524844835096515164556433084657887049255504406524295809161676388797955735626250511446483982237294170193557659198346285990410036980687535560950908248006451564942585278025466047976899273790502490573682998491151333470023734430570392613234543095092255225200424171432905910872930882712929445360928471499143396501585849902675603566760460352326403408972884848301770059789206619722765642274338017286275284505796541032230317470927284488083496567322477555340371459706077214393637949476549214729463066594409114346365677860156373363879566761318929846437830828352175721771399072054615321955120807966366815527647082523300096023626221090013297210196075640283496784786470113910671788242500181915118514651280695586710222239577432014201263882245148107951165629799753607026002335285948396718131131581574330979811385105205063833052151711761472875298933781588752415301241615608157207082709325069252740523774358195245999690338502654937727017594348771801581230243690025445019720260333533027508039819127954518730549257173989039905446250286197049887972707548706695598261831720240607582818365503613892293152160769284256884163380972436065652136774802713420578271973415592651011624394441198328393230584872813767535996353739010206899295100913723509736658958043826947207795307008491631886650011711221846926378186221048779258931214499248599952278608695595260184167771604668231569195152848922063140924600220140108346741490855774227081131139135826812012135026880306885289227849094308415325513940492019300643843531304901910070692613241331154139843387840027024152070274472656651661898792008514557686006872735649595093543919943375506506096121071900734359412636903411267127680892531427589901776860972320117317117704230052378161371555245037554916400154656262493502260747360696954701279083232868232487690553838731333581159100390660430829053604136326027022815993760024598640779446398414757668294278649401655586169781548809131046441658620278889911949508072265236103783373765752823891690303601153715265562088217942302688246897190025689670878145739118710061456622155673672813523362290621799320654091885034570723482474314177004710474465654634261598773935253181762916359758630367796289482108159340719940046380871174977419265524411257576129230671955062795187884547893120526600675612287715388044841658519246031128942704330385549654452850838514868685913579836364712981505635640524558669098687597087302110830267403957296425472919165202225833191895190005853907264635435824769310592798151225297523780989260061605347368477893305093920930177114346873500574009031315549222809186193780634898399142247390647409562290068652601179562463428343906129314404760245727151401140726991830341888968220126408355545473414003730521589813106932200849506057984483428067754375777208214117612811506588130626327042278426414517381920876039581228474773428905755684478073362210615154685911620428042113490332313499470505525745939199994594910976041799057322875979271865853117378759822479839606205724094521032098940034738892039418080829673619445284806857732116907974077634136044877881880758656707864161061492918271452000644915509314428407936316753287237585639727048752556062842654116863451070189548288574720943426637765231364038455505014498452379343486168330722059651818429027297283576651459553374423619749188502916053441448855819036183494532746220319408691835504625353142007863468470889012649933820540327949544129908628918395015829509517562294377648527968283201887676171486815962924077010430232912824818850214799229371641619077401894928168852513926317254730245654537423529192596509066994439711944575421716847732040687918365411586397237023321454268831939086355282432272368754826318636853799820625194061794020487222727426442278400349362323924064108941884463270638825370614571134449520222984008488424037458581959793306753708770563386034992086849362423653289851632343334515125210285062280331406467814990879531455735653016301579660969671936030532126675171249498520267739800320101766765199455657451558388444058833187662174433739013256180239967837412203674106261693178102434212604829840337244888665259264796303224651200643299176117901127318932776040223230609241939715150405806441707034797667800714412952360868805124582972237101133036332661842599152970118300322682651335040884731160456783241103508354136230068247757163866037156334179419946736382347458634331857528885843437207057856265363565789306915771313694833548704935813492695144502539617710366924358237081670393680103692963368656502548443908100808243529656372788683501941311591536765915184331940768767093524527160972811349119521739851884883875138430673594096384936806888328954657672242040619695110942717045878520611930407338937303108581494617194371953837091560298201034093691365682484473295909878634771739514354558881431799990052364236310065067521664882987084029947477913147798197010979382639754834005246162539600850303971247127467422590530742415391401795925926056206261978695393786315312313632524856881875513748571658668496115138112580290331585350792814100463907685109783624284886026994658366081939028975474057592835475264594627412940573257463871083771829665554231790710624154925524702113413355940237656063834758935947674201377347321809027127859330240082163899625473509147852803944287985155517380548595448371386128076526962360817080798406797597935325653219056505147703139433683537844434180075522907071055965421111092985986825485780905761326767323042148715526944289620343638034187472620758776266090966467418317092084494801305969571174893143977157131067329086634024386064641156933834779620385371306069821699228868515794692971785099262962702165886564042062000570001918713314923381458439896590783321842762253771501269889796613294339806276682503152640758334468050928926209860773733468025813814891574835752433763879440392425576937198835332965197078388661527700666921996488458221435886123696741456217578627315717320956651006953772076439835162276529908152003475316084687639551706921486115197221911389741710445826621123290577714697530643308749434910254417204067135779758056453468761361352808666059096752128329546224253585325928783203318639687615050469542135406843155770088909746500334233899638353601156021744423457288781101783647430834656548676029573979453702325278890543741845105258424000716297619879222242475388310471173798179794759141639496491225881856612661624048234602785230507820683040033864907502532239849178254361096270356975285143601755445089419226448680345234097554830517367869009361990208442293814157207654799169555528427131136303143536662862221538395346413857660591329858952469041300243508101253288412714523623720204026895002713606261380196675407682022137242944426253736857501679655294591999929566948836078646531451907706549085803448874137046509431754421950062480498629277676544752747840963223037851784152510492031214745474277838662327943967530966616572500528941521523802524227174025897504416377583311569511939287850838997605148633457356744049957128291491329922232874023950842170551565965041955747272605841343965657813402974101797484722769909799801005098672052613369809069791396603400647895467680238568301642695616576479229924267061595661537130959606678815103030362258106805146966293450984053014350701879076320182140557074631985614807882299411943623369051801210117215365484057492298781080663839809627253301658536996858847380600973001953961262600840501886951883699355610791581404540303127872500070673926312607800511327754072206289570324616845007176539657822953006864510995600434061963836633769414593816351884276176412530809239877357756232863948839375317613595366637932270395072995197155037366005321771800536642442764146308682351382422231905620380021543742808733685363704288517610461824529884597578189860705757779426035341764469355002409633700131067116043854828088266869892635085615774786219386345583325703580288191451008353519301357103728805579371344385211342319736096243961367784667910265707192264266433238704908774982216330140393670354036640177289592811873185938665476220885186601924366546842734326436604056304084491252067152110725981177847222783885047063807681581308118114178324169825606868312933122703611922800880321850566672731934553170751023616995093786968994232440495960748492800218038565357216672696467474533811276639297864907314857809180868260837334332271352438708853544587159877405506474065124673534636590750993549805960499126590257767305363331384057012703507794912920884905269009065332297386514481566426405418449417302290671441484687067219691909141157602252398876991781456168532972710408132363132989106226973808333021645139042325505074980284322034885772858204850157401369986821029751949654319977059125737833148168278861210727759044399833532305234289737977399077839983237187516322199930950817012030504155130146747476130078509146534212291201196807510882564006505517063966394814182131396049061724191934821980307299594167634991670325462682478033114739698385653671145090020875979478498171261331048312647850477996984232769716162872271815742067320379852538548680538376574270839480289747061379030301716037732158254614378813656559608859527089464954245273879005269557647711943856815776321385580572665129970980558696552532978218217989210432396965428008527056069164898934197570142737115787499136499782388745162865246582665417510419753785290840661179680716924733954192716282843401906600913816852297531537619834866753897496039956713647032732950178594514030295886573292561552196821966235760252641647865745536548234586795531257871150199482021913348862506218236025198667394147203127987592838474093748572882828343100766974995327714622046965158260392344044594140540167142616341982983222869593853677074382832463313289884872004085951618476744188678989503526168740407029273437193658349336691904182536252606812364879085963124729964030469278142339052810546427252864604610949259964240324023583238567071045860992180334729795086914223789951865570514134404376925274445851957316075426620809394109908908305282371318391092598656529403399451243832946538587106658525129173871746273844463752732254039635128296528400221648711807375053258471589635988540909539485393564253303036770965002297797274900856129524683240621128355407761824072538561484137292188033607919157053786587525757184281861945512083323441224525309241077750619553348598071936377121683076292482590352340680562664049117194317390637772278609137388551857744037455302053206452215519062403660824844736955047381542258712497654570987616976438378087432519918463664551376483020267353346950411409884594641783895689276301731322052495441757451233725909786525140081107733195059166720324228864247737409080749015422635496384917189661199685498481377741673535849437500850002322028813763964765625818720425724707288545857635779049501331007351446543760120341152776749043872197916328872565170310168107313414785694754505542534798943062773858762963113291667133223171269986003307362999264576361646716907071522474552095594484333812924224292653351696457751959048963995935970479798355827848796440752172741765547177939907112588427407717356503424115025546095213908391097548248921253491412457552049338610341515578250605744205990592805773320588117043614709888668451009208698090130179553884421118059265297389906674773466849502895282559233129705738959825267713272132994353157662638708110420570580801842859565200768306731460206786906973013461398523998773834597147835084773350734887608062379103116868471531964080632492282758619712270972335135748542638899942577829069235615147445162788008661157021968490527789118081610003115265671684935106348319308465986392162612089551814528580422935775354843948668758890836043160941651372981150803771507653677363460695462991783278942338463625256000140913464278881211400400384128586560850376532888820333772080721784302379939118281191943081631998807094443142092283829461542723929157526287401141801676256009419624550467500691051375311814482179545283534541785674444577288240192298851592910546862669098115884281456426283569197287391446468863898299589918694788586282798811379351852665214698199493709488695952778038492751747793620585180593360869347236876947432838141946796795463540329160954424922703348945006160243108642213821477312162917705913980914455731186558126227944941811018593562760474369617561122491235651606621685274416033007818127777650467512631810550586239470351966891830882264483071116095454721728963349918391567997919371973721118224439806687099935493640316972893042674025594309972660292386186954909584739203616930936921238196914141930972345079531278870106033890585858676920930645953840317807418562982289183228423822601278770162813736546390610180471582508393521154680868155073211537387000198643170891368681998811199656775789487340520981345751385916960833089205239274702383911217087051740037495269077581458219713351397270953774151284474396218815026954889648549518838666052823864926649342945968902124135271951770154016683805607018044214936909111779449628601964574426414408304524479671872696052407129568618195379418563622311215354529195452264337235235192029266122999765142245848327016901647674576768350114310728877238013243635988450252028191800448515757608077014385677026379967234767663148329785399144755741555797629025692748900791695602444371940873438287748702243438927162063313817884810044117179600854449883648928417645002760806732748358979801617731335838445632198066954649411795270234573817055999934339171735525185039453990775099571264550351590101438649690809543984570199505636891078864594458845019997602400539370802898808545371258888080439661470139079646107951085765792477414429265996120012541035978008047607870855058539519571540349238811053469037053826747908659214639731295587150284356906403187850787190261677830041915847765641044556951317726677833299006746208769452182514248845839814793509196122225672135978573879799713940515741860148846773643542899284077777212706511950344659475459955291318482136720756735148235440856674345732672146455640487083914382042119531241507559156533740849664248021081366573138288443392439570361975009403259492762742662469621406630529561625821304264407051914791693168677600767894437333625743711092829068662122391543137701102710339816434071975211084554630042908493747805228017893426178239680289734373190768182153679644133355839530720379897338394820531878314351516415708625120354387922415381985256176045889136579413915902473482724488498936792405943097279381075523580069041787943727477325250994883989528596518526192285794563539505216057400032834226657857699005810937975186565059889701469275398028188052651892880221959691513780849663405291958741200637526246742478253955676290588689914162916492594272497730987545136538940776736186163286660693012566087195158828096026678547601046797511339016218480774840129910112575759706305184374813763494467416318567303024420887223270053945943688864466246719172419486682002659974774468782665673531733423861406534959259431595074684005124411710146534321112900855254982655451535877221254509339523528017283384071685144636829066861827225199004363065114529626095209022086097786450176471832024760049810903773729488570807592094229329819546951843957181855913163317920219998502642768091739001407926649855733325871555002550274813638028663009405883151659794561663995518145838878947698394569566809432744660090992088563511852451921801634280687762869046030189605766559649386111263776085334599695780485912003708164753536557442788225832895379185552014453077577234081533543575363313190820725137189717457232507040287808037329990768664079466378340308797911764664610394950805254317728086417653803128604315964612220399854835574465374231188516595462447352009985271778372401455384276610318201835997734484853343439546562923213789423079855495376529138897189137887623646703147682730448989352656145951028335712170527206921261241824270120697406408007497285448332071180184123357527385585424357709492160971122129005980481444393641884269659227322200987833646905410466901882702024955661192793701177919699136926001674103440803755867339999010222659612068983267778464581638803464444048929500329199283544703323545881633547462792771528752328163425833312788599452577595780508895157053436184177498157969416768206613706022883026496450891506903013191504865094504933651405426246926152370531820701033435844234516923710337331757826062776172629813030686978913772685119433709873573336422911595782917901403427998498127243776743239017318094824885868846539470676605559672810027657956086923843250902647683922918873860619044077320229134909201349385333221720557945609035976944780859726956565524635162694419873933883716091900141124018368499121973669385556973231830827575405233851449023430695526130905356536742260385534561655084682299797980079505429318716209078363685390135835270537807981737388549071170862764167872036807092597062625960229739077271838400878770335227216222231283876347548212706196582444747142866793152682951232084431968631601611991970877996953159699475553297411038916824599940129777910406389245495791429121549419541009475053232656589325028171321849197880434459192311705227217578398606645289696428586411905833450653845986726881329115816922105610799314033331157906333046475304825094705288946234376739988664199832043701642322202139614014999394378002603097219932872255479927347214409047619271871707735364156359503084070019782019388680835442167515217902667454839914048004056883401437942493274770342765266254751764226687750306509913592049450540950040694223308910248753573766770371352073307834982373868216640718442290649348142864056853155117899094461442401850921340960804869023792384782518955037446083497218749226765230356022223793112626812646079886334668963799678951289408234577797135849712087066175525071268666557714920112978645436638132963598944135662048861952046135661776325889289348364948962996180493737039294489840110856836998241309404817821859896505464199251405825472661142278392626404018226500259178143263541724818604971161559002356359071738993356728278079879720331701950682155103387049646392930751885404585759779966819882918732952118848132578682726608545242158946177520902569502269732021819732987123615025217940794434075545331743499396864579821863408126947571556686925929596372379238473399234307892323914986749055288642458543040067914662865597323316401219899625142878636244623583877266489488042766015981859925158495496787529093209867413258256007783918174896245197838670896578621029906574236135990860604395113065914201478134396207590037511035902187867382640042385768791105619698746825901411201862402132753259221768351686426889774319172515707369584254473138070845229375810469379834524646128010821163433652853894078139593953204116548904632508625563923914057426222076002341013495526623827316536041410137647178853797663510438703383219456024102198115822199874254225500995497554308589759626831788202452174829278610304200028158015432657864742641340586034370922001821285668650952593528744879085273197067101761283196033259887095899371048679895847501477712023888442883747949111882065640750027241164554544598303745509135890761744141349310577103492168292864400444710846456479482093332215639049702108540349046955374077613897906907245773304302524999383739569868370603230625652282362021461321337405896600702446112399861384124308918783851539573898442932142941752188675045318996557265759566179636499675172137878434155176312672394283734186700912135539944779183627104462501016488102270137489310209659105905917538381186703073422620004502324648297124851123596368950072331399269396610413474034783262572497362171991361078787599825226923582157493283492175192192690456314979460050528736619660667553561453459473456435011420693241686376706605125450054257907743575540777151932189703556025663928555835915831656352925196716102855750874792702302788118477232792184387902822135921679062915835915188516715063223803564222772521207822299613046075186660917442427602116288799000383961413514386394682604645058700989922550905446210737184387860367494101138131203560330200726354438950723977226613384730137723878255532859597203293286239536186729885141868731987266408688888531157872406974980289436228248841830355819684986242590344701661191961767508422480790860788840864647693695712364247558332340513340341721814337816102186420148796506785931060330909506615508907344433152062356654351248245623196540332494306673122093958078321929146174654327310680641764686039248155295475644281354925963088531543941084549447493925929611541298925882097167985998964594260422927805567525089376906337585116104817933497589219116420748434482739400878663059011810887157936230657334189916382350196145254646842276936466396615665881593545086971335293726470260522535777974371996190805415583014298463912545224113120098857088063045727087298347447130050548576620463059045125104284563402110158556006098690204252586339786913787902937523866717726101499630134252547943609717712201008122579802414536047911595771751780646469099043070670485982434611566701621353846370366558798684199047781957914484723439137492844945556605223041492343774795321904622180850643330576223755110989634231632572913906288738008970095816671324692207419675663853917109784568161193264825693807886467343092892164375246775686848801311603770540116439217917647770520908900232164234813630911086251571414565539296665813971878298161820324323209968090120068516565693548079722612215786827833638833047074157283707551482546990910637890202776377824437341044121732130382694816413394488449410450695035210642203874130629200596375825436023381949372220923316613504314751332320247843190309160763255849275140496526554396821381582215536032628592582280355892162276605114238861133593683375572139008148184469994243405195733165803175192929138363622260058646459359728649020534014208056776362256674483938301984096826777229343358332895801994830195147969818143216586482976570806120920415629613996475450160888765431849497948134661786247539067554144140804310280663666096781286035276839930008211843854564854679560262368634847003913194009880356376820319290781256957875200313166424761401627207446374358841886100517350810605462417989167840938593074148031475622531277132189068149381873403191783000992053326691832685556473149512091531211395625870998532778914502044367780910667087589177672331218208030340668611647578643216834558037519577327217804936877284865592124920953732925577690612951302275314377252856954624803889316741965310508462970712240187537074731827269049782104424223602450161487824880109972154992527530334462512626706066786593386816759968448961116909718776660611311701758653655941436862990557387409877233012759995974946912387331283060108150386948859701378414136905239662619244365415634472711909443636018205796193450081799941292130072389157237480696951075763201455446899359850080401330207805494377485667133308731743778040452969472006901816267477397092200846814928254249317840017591632546519344511411168694843359532467930333890885458833564231993606556031988081195946362391997545540733021673766323058702834493631143336895888984066359767470526408843269738528216201369015970488112908848262926225564531047987634341971814954570717129675128861817240732324905433927830979280483527055237253955459372144598934602977462251947506003142079903557506593599602456509093586410215180206139616219708855612730993649371361479277646540086717605199244329979885418792272513800548891945883788000270679711041139298853741718129298641248962948676238375368958161811631403038171071440609980078972296738098249273440194466646145900271079621169924809813840764106669973042064214959533602452785058490428307308585476954605351635998424609055476805094356231824855777526957632640976237474328484990891834918132921964947287536916584642763259276009571244021202407062127884373181205985625088871230318288659174273757519335043320417455717944331262916680896773006890710977597141359209619837768379748204587206547509902138569967471427254990912039641824132322309336117975085361570121927668182707072784498553136322326701079342258777721717715226863044846923391603639056468876393571631527658751505610849649605585885678132420469606962990129189891596248240261735682751512464657213028695677555611605232351672358844326190029389681137163071642471763691529087045911125869566552886098678785941940099024087339197519137508670575530224889379354969962582966283709153359222220023788790985789977627595932611545386923302413292000527455428103595420065583862460426123300775357775900031913274524812450001690898492887584222421486418800539347064721421538960196309900700469212342773945501577213150913827821930959715411517792232056239364528468212089023037353846382598805214236149890487730709408226054699941123149422566801102300956255880875742229219395545068607357864525271091732988228738928410424530248431240421560558870335303955207102735623726034965633297389923224945530780548479092833019985012172644658543263442734213026909696427914945371061738129125637697295419722452638047517803698258521713514120476809876834173153211759317887610971027606518726067385855191059520260924092691137616323315371579454886779887851962002177393685707657234048213109692970823572977846115997830612218905978491473670162793191453046425349229811908788619578811505931334340299950893739542050225334712904457116679779002000150470395482442281336482014839984160585033917311195938527674362051418717933652423601456345248444607966862879588701880631885007176930634068020138656907519764997569955366759623369263169208839853757312136959835656305487379656014326771511408184528157250159233278884043741006310303027702902006120784196770081125608770396200428444246206842330043231448617640144533024030726201552675019667123305089799552020797535984702979889274253518030605870193625490061149737367848332805058827586555910856525010875920465521960862473096925330252718682350507613289775822636299524035774583250800350400963910432470023355081554794447181665651133429064121087513913014675723727027191349933788537508721170244137619853540143084941151045353092726537741622656318628945483205759341791791705100282342691781492097517264081284059303999789308511790784305950034936601694431559949501561037686660212177436799580593599933151227467628228507170823568935885821916356655419875465393936145232563048716687226951703639238987069257295708663975420220135245244811701355044006276219536144831146624279419245765951403712029827874350312541506691806693862136942057755097070637295623224520610616334201040717762372646457595034353249972209511780228949032790003163934112852609332016593820062526189617140411378386811407874837922951955839409978188038633927457471978154160787354605815139839203584597047638308194763084780847433811283889815814735688947979180897886838273032358506112457845153207681705689359013003365348927571754700069649450157772716935990649505634202826805470769607940766667919407112812371627827206165164381580011027228097852755770819367520591164922509149226047597225430782836568406891113638463164721281230714215292479089638196179594713199023322435844774543010363871375872255666518020658939494464371102947887249281772969035839627084247058577041641977344815782354895628483989574921864482113942368584359273233422689000583836138911337452381740961537518588197160009005084331555362314103526036926895875821921812255380145948469943833349185965178220925680343492267537991262186998658739851412295267076978345394625898312077464745561665646391947021692175871738097791723693227301910754905519105240166638298866691393808284645357294878902929407940262741407435225443208208707957797755631008011089053909061566825079178172585235838106720237267882341212609754068079975821849984330671025746059262169683752758316478080231006535576265215797969434339711807557926842182803856057725756750750713939214629664885065859505303253887282996243896867923454810803375901076231955145573535804057846242994328526026989152851128659061501872990666950970836754581290610880119870699547720642427303985784223094814141113906497199315394813164058098391181684031935101233709680721771583657641053641800596760422634651648111642693598786362654449821798361443643414266388779862103892637336098363403866072106495777666669043899827498899579832867424649602623862842281943393924633600262598133168846851270752939909854711488383408953736246607620704197122039890873316068408064100769013022260357280753314100847023276723420114006573447966316881041298532745113569618353943419476994734110066376821730622036058947117936829608076725972652699320676963941145807958820674277322665359675263357876919463604368964589185779623409390291684066869102494259908735562081886311069584845006063697258618256867364271720650993120432199717244657853461751957916020612733138746187254036429715678213669702435433741127729060032516504801070100240609859756901175184263454655650617134264421829391008890799876610923318645889418428147379556514233157726872166160131027090230415205065802103112908643600586466615973376165092193650186447636410849655155765850503785855550754920940677217753283158846475129547200271146798232788654308543874827078377010069588170244285241400630834196120145814038559213954211501216675097304477124470454529298321749722389296968949601517837952465526565775937483469125234380791479712339995601528319346795193685450604707014861944375908719265360752521999910161623522952114354815644486594826582473341788942783885256931605825177497043481912665274135908068663838719286031186890888251786717988451545177255496148934868296875037693544185236333916526964961356336850497374874782157972375709887378578966313263469082573975939038834862381088385889367343967183402309395493121867385899369120392372874612550637397838390275513222495213373245025936452198840819110222134868828502907051035551303933012600101097215154865797028628624116873134051942848933397264894662871341312314034162336535216780241138933600915200270461202727119253404743524652303484647558578912127331772266493457011184363583508820466251422167049510376974025658196055392734364950152590942085098105420362882130750754381046031848693667770583185902945665886511141969191397808557086255258908760573217933822275914103262240602329425314021935941393075000357800463364239732634678147670405846394192084263600986881672821155516015513083486100248746661671789760648232736696548291733755550358349306406352771968784021536139909715597196465982891713484017764328902003226575360676906438215256611712913005665478811387592055448289677527448259003424300320485711580050144321922979786217828304682752377086742075204433270527566660177141440860753035830273188510753064064258630981924662322159374643079192459095973593804905455901706238849172705463144971222725740929487426646384213326502767956682301891455080469598239227181842745409663055984848114756673042082400967913737016071382196052524192845305712858398974949748868350032742469209062704377956093959053352587927979924836497121047684441125675132075057916071638726793394872569421882424276729608457569640169037039698394451462660993947941334202381617530644273108516882026904421831541119645654648966610147334134841761847911148420597455189406437526778796824115971634773706809497878732065470126028802395429434496636153113118091345093716906994683223380760099902068654476852398137388716252592341174847208921768881571186288958415010377422206762719140796341705800213072625342727782595563557655341798673060149386650019679304450746131354613951356330939420680590375172293432801402787158878659103045850701343923394413370004802559494991884495540902795981922927093054882231223583770066619150854446650039865189400058599611257990525483821631360630933249474136937578308015854437943628169396940653362701236768582164670553610515743061711563842840195038189490055887961988909506161657645189995226415557821685810554958145000520225875700036785609282407957715918985127938043798026066865129180844961605022665207123330925376764605669497779344761825231570627919129788681633485988071970557759918429235018950699888603155014200456099663264571984688035876970842839963341450806875535483580857928743134690692294557462177261979015439354786109149082497790522494053743884511199720349696345787214267201642541223071952964077081314282926704597872353716433398107557801507771049005120898986876671818747114378175831544141520208387140011819768464718831163390389809916567275967750591882134625134808687849235977922647906662356381174768052543990806167872304290928005290911545049433607599400376341570420671262871752399120280763722244331002007310918814717872341701511241052666645679656475109368330503888719309263707242856601411793730863613056147112333719632857889016134791723785440261878143407546041624189890785910677677198037674489749968276520195393728377024108028645366656982707655334407296610955393040541038224966862858647527140041839274570882333495193787916250918658238542150808543228224038414465958058546895921877756543530183122541348805028013759788302383565984344944085753070046191421035747797462724706738770514911457290014701703541403199261569692271908898291428427480892253300162330524347106408199757680707765832744643015479528748565816899337327458439489234984094890473030936664642320899726069854068857780258311930411642590046144796494401360643941288679341536067882865823819304489903327568238283874365878148052640764501630455454662349992149818262174132085357350441372039504278709739094867243761101954199698638957143320550002404429210077362188182718019659549582107519589440941869153882825538079102124175465296041857450691202117346548601204030562843429367789036919097540754833526907444167331417823826270386804622309413497447935071183299458590362414850182652021122609285496599737822559170543216173524613954949026252920515248677548596323145817496094656141639179404776138628898509743797821776868160602770559227413716834884400055099623777274111723490374226558594004266370409195228692987537867633073847251976480980078809237164669964747693764459514975912475391531933470890866510739952755678711132198824896554062478298353294368125714650999381235933680302703189799318726579547600884397679093532777026547074714904589190978788120558589727564207425088329182453016637203774604129089798416654894708263978160490732352758734932398087137658496733684864560529247142758286687078272483999236332479720672345267816419985657733173844277226395629098507638272749452390031289338521752080504083257925694146505255823382311813166145505772559241584826611889298047041491852146984253852566587432695661939613846555130271874061607920556033209072390713040447736224665392879463207078124758786727239632975951008216376862420961997470640784000376564181448116500456018503025235388497055323458244763763115649708887252013997936812958820362731287837119259255897751524697955364028545533085649899317374870586784349976997709041848076208890530807913663112488261399222355368962513666119944651197886903500644920634490202382194814655054920284188083486901317920347160752195805963150886010196049795850830110862109894799665521938024382298838436017110023340517666728207000314543538823904711383948615308172750497652801774760371111958807541140170085844972453224385363238360971808323010307371975728057733307037587072244723230173547388892129112173599143737655813185477393035201275061912362126949723294868489128124777034472572890787076806161761181155992511818897665406315196540539001536844707943951554909456635695715647855825942776934287684672862627431513788565317323184808671083529854678806558702473331863583739280437466735362075492405778358753623477484955912739094776383628848007593567512783273622078021419717845479743650779311417864075119410775866677408303639741031351326636123967809317502587911295103273728207584001676734174547053566415139140516546112395660298169688788963815267562664686279120110573912093413773210060697718289368382944771881569197258145135329218378876052019524161891220737373872533772870091923914164001575534352672184811802592092991455647575732329473221906955197323733324347265477259225959631823307982225970709120193061569949865033425875161280485337103373121257958841620113542140096011545609339807339953197830437105304579869097314595620750672999675100409970059201150508748491148899524276620383273483402070677883678165104234554521120304847569503213833173180540541511031690996934843148812292488868100861002551758194444217456446587080543723708792840952895748241571214453192911583184311417489517893146429601018299940463977972825407216062615490557882381250902418675889614183139317271607596804145223252514827553062763122683336056193457997328932593300376085437389563442232060756470310995681641733517392715897013190351141454476791284022272015515161770715146080206110032004538514255993821691197174227987583208473069573055671826228929181796821801477723734792565149528075872801051802396689689006090812993803028439472403515277392666030509338467946607434930015123092617752570639337466031605876073272375203411742931961082515378678483325022263922566459903063825399166586496739477686445942088917229530348563006423862846481302316354679617528185043787938632233151873596742625305106943173303710371201645316883401996571569184670278821166138697016500330572816551604635222803422685735769582280038971234798014630732609818038274619350726389505031992863423463178176513125779252499633649458052711123271840366706814922381411247003488735280686252795940755498517139398734070506713309950976075831204673243727229776026311194405673364986642817633538919240956150396698591998405527433078480598773481898487584123214006012406221101987046370853369761693624125733953956238544625742228182796288129908338835573889564404490699995018435328582185200050333627645266824488668805961961118700311323289246504793497487557258809405222773802533343405397042332654973638050826086524301333047338339199611492205804009968935993477255151913221490531550436768430515295069296395814850484349990949841900993184894861227182197818027597431580471522839906420321878645280439871250361118730925383356395989856135484805363147817452886400119243117453374150319768530729803357822983718466221458618962259986528795003080189015508319286912205055762132136061113952624959012022290408735263285070600410730527681918129505343028287009903196945523563282200451837427980648789852486910814233388872065694455498708518336673947772711029867196027549575972906223999875398762013177335790606453198103920289928398695873268231384103758713162086395428740053270530733938033504416036970212621445052239640267048835703924191812931107941945538564498752386380130712523516021566277669116442474278044211596094526511211510893668100489539571968005006537436342103700358545559019804354739064754812614726143261044399639872918781415591132868052691800231583124598348468282315824895679941840449044948507307780448477391884936135321669985896949626790715992945478667305728003648238011264301756795747385967377652950102474250485108853561152896578610097301207518131116731727427914385609502280603480948697517854950560853535948743783801561861734442037491000966110852508751639634821232894651110328593537067238298185276469628249629770319917727403646073556532561422488651211989103340806994195811152596098034721105112807259561062415824028229062274185905622502495036798050508589555156874262905793885884513688066853982468307953485737566266825045031110875773087683841835051981275251024116254237218808938302379388784154872964534368262360454392734057971638418902013650959960872862540622563264627351060764144918932163587501037186528771760929919881035170930965364966251945193031926739106887536771102816993032149095050270334423276858515526301485280675461365579677515662820648528122615552656976451513315041027389565201489083680257557382578159224218672466736828815019729714154692815398845753474733229165466756171759180190134211340473537310798264509656517017910487208503380557860096110971742844425328660626410871630477532771165008676739199231456391486006203228493100304645396417966226440259942348817825737600937402437446430940990987096081394514434165684141005199778565550589898937619356881424481194759295509345954049190532079725040074094086053072603699650959401448971068826930151267080186011485462163493843904291297820174481214888078211907309660119470098513734047329641835535893142287803122368696768554861852144095492741121334496808938484500568528491842474681246170110255857851894566239343143169819684994818209709249998855882296782178843466628967150601277141420279190975048015353456105462635990278935431933476769314518991556676316822300047470551635363648525460566331730866264186263738904585203360927641590237428269368719169854986065697105143783440492281498827130361143968960118881995305592906380597777635405007493649573306548288334024842818354476222341502936465471665317339117477322157900165764527819908680229064599695842203793763100854565396281440618294024451098120984298965165345705085314115818936331586978027530830934188141895181276239338213938087860780575266058034868479781737532028980231818649457111952402432604965467959177976876974784679372519448234962806493613640693042073480387238361216873796980452986820318470356356786218536086475255561625497803689445401443733855652210824804536794036177783533479115650942013519241327909193862911613879395490083252337949831510922717187974333461530927416290905586350185375417831723665704661242261620202178953262676154445716586608478871318024486761995654998574130054333748104999944185006652692420955250752539424526117535108098440646998554893536396046125880985722776887150134240168323276075481008526051720770001448410838218894879616682049246678004877545413297356136875727562153087569027647049707078264868338070242114779131461072087685363344825144333074068954128563321799079165584304999107165889209631799885757279337106904665905904826329717520663641889830343755486416854933868121002738296868298780652152525550875792112089975376148470517178441033764684046039778776352035913023151229855585671005977009287624837045119048475604046122295549027383659183803862173715732032772536140980370763461017211968540162145180740114407591781730194575522372113799186074175339912310327261978057516085718836879696701527056679942299863241722308167693731209598524753969713388232987155463127806241365755972764529260785850132769349990092216164580642218552698737614574901241637244651993046387050978629622398242801808348645212708515229096180069502613483604833159151329523609019186054899023239380644209064760490902812538734439749260614337006236588030118960429178360753845893458603606903403926701877483080462554708278800194285621980265253762228235623508813067255978145532782904258648931739236083976100316520921709776734452374227292844304436427447086926403845791232633739432633325354749320683828471008628504085489227911329222933815769058383451030487885029123360006980524131208605103094414272932707866448563335237937178187047447095786106916220560988654977465129976601505502029650961150627316616541893617037186091870999724323972081348432839906123515842953838931701204126154134686455097909962814848648717222911663100318878702834208829403345645967972654483885738065446857872231321903662649914303447074854300640474785195251776236506015971458793794049832711315896343386864224358377043438744149569801058853870032554880094493567183849640146381213507643182396421470403180228697120099059340045516034490952743011320413318388810918597784525828788628995413742296625544748725146337975247670913011688311663521715844867328055914242822675695631321899534190013017920476449481480075020303288601076774673264232554948579491590506537276554879766215174059756849625393024336529699684203681737988803629432935981518520934306608508388067265952881421160464749265732227287444346213607892406757004257233114494422078995284460241542504072339020240627085887115010055153566340659893049416307667074344070520356740196806090822565414102789487761665931072941769318667580415555217277427961720914034734036124546610501334012864057285291685010676458956825894482028394990184597462907832306208479130669421210403191658589088680418864185338238173607635224515193857245139988932126615557241560705779735888846835750620516615477468005075345946511115094570152397007815549299849215760176380511421939541252095357923935834162045727207010475920808999102035447617897292134717215489916640937341170808470866265950390749341212082279654093327195789326026689692367067653647967655773360484469800090138754892530634502662899807935878001897862622594653452531083856082550795389399094315625713122650580495093852907708476701981635628578517389554893692557455352258870550111880221555634400211253976332153029796978086412887586045709272293691461284484244544521358393659816491247460345313402390395879435209452819586953616254043549269198383769765083092916397115938509062034580279683492876687844935194200432523138808601721314951762527604297752693716334788241967967806605694321189472983111652738595632674498952558847710564420729867998267013311702826283556875837190747899011400769931236251261371156819012307099342408611379909469539297302913861167600807431211018832254189077078948826471618849542610243635220803062194898007473064029028529012772845692163422170483768322689684079644301414018769389706265385028353168955006105345914737524583418462805966038278798550057550434280369275177615376269416121835455336714852163354461773465973100109360358642157392969213178747072185657170437529127118828801227829704538365497882763012518717675271064736037296642764677049849241363982566051850893118163946221096677096417076622664245936084061192516890748686909280992381915285656937570373100633137824056331788133782997621518357999635916567630970156470761487741057290754774753980572641004487809533733253532119864190331479606818233347029793963551567294917384093189222764819423108316161320014706214775351949219327420994773859209502714589615529665249828194491086902249759978892208828083255512604989532371894905652230135267005972998255101732463397430658828217846177472190307192361926565889061414441506015179291160113709069642732360380240139812324889922963343499797430620793790611208264447473909876435521398382562534747714837784646242807384832448886772263580927187665916830051337495236544143016662364697421821931170075567674288061824029698365248617524572931519566909336317692478452501551993167580071794222992269085196806789902938666402177865776011889089911801733841574548289089531249414119722778919895906612761149646161168168205397902518927134065777522722928384903658769600896963702883911860375096537766527176183192632867347042815436311712740320948817424382283833281875594792050203818043156507378680015092597202195914689507812062773622424312480782460946476044952249825427165796903863119109193604943526513872045472688239220598326807490613594863341057925831550190917215056142723504522349874373977745535912662849703148650033520304743238676723699475133481020054736636610806623752318078533368143079347792359889082172081839977938341756621216515027302225858724516281085812822700193566660083401947619032824877890987054424192433768359881069150733868619025620333494641344227978023369216452734907767119166985769028308589197144869891604292028567490612873096886170850861893282443397640554683303040888207504503352985270792577481657938861694693478796601151799209474511555479577295132727682799936238144657373652034564679855164526088072965375431681739593980794573969397550514307460094088622549583460682816074531805312661591731130854276702964517429160860887363174698492772502910772609945818319894270751987835240536569619648199730116582887521717874686369685279557121225116884152858321431343536683558028984679753339929237405785271803884750349431907479332158619204626435720630996011392361180542364066558704728134693214352131594350752245480990524804403434494620276607328896313274552708900390399896956232335167722746030627645336620013380318182323465931158801223625737392728544974019153044162935964368312715358118490570364930414701996797309413430231949916380479380903055586402838643342947202401321618281155239307163012042510030421954665701659873772777934577907123152923089051602081895526028130724709773927308984101557139078241974980061335122545400263109346954512647490043386262144636043315521633729736813125739123897489650000936013755585151918456075751919092237415793549477367793953713896224391407512667536339065055744362370328084116315857966594708079342299967985772403654004167064645104099046335884958879459496964378588757289092094416944139446108068461172549622705972095257577077738008682088049142054396370574955696748533502389840177640609714232096534214359133094791561462279767035317230499862924657344777238263490013481120043552008029334626180865184183639691059715163388863586465870081761232676669477726458893507779731062449667019516572117699677374078296448965500180711822953360168271890705089082007769247401280770539926117465984062007357675417797007623504534028053298300620409872735767537166906102229626791008217166054955741742549725586783452616761067467449881762669548937745446375838071941033035792396091332807970406776653415134224030956123268413313235519559667326248946328832225581095971735923460032783969670765962512836631233641829628419446831824608645626544443014438618837018516608744257138235116889459004842789661266208333957445036971136205451661913789440825919957400549730282190902417827231544121971464122132387672380604189735220123141928633143749794415427489849102605777740608892435441773607527828609260528733777097340474046776191708091496597000074497050220996036556257566968833385256825691311740349253914891447378851734922037678163993897051718137138063332064388687501544973084914083236119591757525701826972960166811820612800448002552104938765510523502110436804834619447644331985832162532336396434178520257851514814161498664941797014714996019245638341504516337738164617116002444822537116754931799646753662569338518866512338453581082358002017518465492312878974643182171816336648980123042638942043464490636073092891613974953374124869988986406621005798638937035620323007265038819123634285948143801346154724232401106937742591940181939185866409320508303471815371048339613835622337995896000271715428669558211849984961398313858461782523873756715980123752562286503508195323895631538792657385603967654694332566416987089079224823126299230158073483701806470171962628348647717780205116695807220456885672928951270528238712936770812960028224757742154701490466329558629484719513445091669764909237151599507914864905861734996120056602812358143032302865613758824308505249032347104779991540652673469888019874932263766605008256942432282751803029886688409862542958012982486797241064195500521711252891364790645401366763159526648138181280235517785263264902106421719303050950711512873280818709477683739583604040093428012677995212631313159840123639381113004080921310619232092378747597408916947172719626214685725097310384914852778434319293008477135441869375504952421923935382378415521440415231046041783200647990494880469245191955787191554661887949231516340279554633796572239671099026987595917127602903357868241977751613880550510692344167171417453777435762900473149940243433315987927430076758890017512902946201047647221838636283702495191971120874578814754026402518349222172600028391842734128947866862778986887374934553257944877874435500817205296746414224846973843026199974473476827751275552524447792062625288614505866481728356069221605218101540218320015327466292099817002851656381085036031822428922835062199027050881449043231625398935526572997179009636416485759418455825388302999177478122931497274081547463682781144930531340079656157486501940782779858242492671468391245164668454759176066579597673760054215690385722651455748596626809698513932204330311976863704247369571740817004463029219582398674720857666473453292734358222147456950629365023535133138782888889431434157443362348171163123148885958595338120683486923241121256350565769770383499944898233575273810229184334974780067634624873410377971599564625738753755758623838511967113705248819310034287671181623392491934352303863931249700607281692322120183651233686583049460329028772749901706099899699340225892182205079299098082165643147653236084080758771403694729405431436966973477958248791713453282587780100868289195844731086079871708388460184941670359913231702436161631167208996753411889503239321459570885789895408448481418029293925015224936705424275878723059742343969496046760758638904421143842174958782610753568634635151743331348176723181011205136149930571453326113227410781805862172345104520331353143622916167504119212073447495219835600515266749510108442722681715963901464786954356239677027073883393309930107822831182158925512075509900907981350628997237107161283057806013194295329695545377109269142954552364914881561948309420084551279559594558315533265002840920714059514360086840510259776835895963807225895927872626950087587667283448726878104245514265614483039528826825530204854188168793479760904807034441315385997249897273771090294108797742592688968297575213545849124457137457376535943623945416226042418336464584212835694070882057301951877125492849830256720353414845925950884112482467944698064259294297127372987043527558669943782183013009857337185560556607382915747746433137700775515259580096677228061635442385376281255761220190995326884517544515070846858195914814408539161377840207815430680435419280075980562698901698992346284811344733500607516966673770786618128229768686528392619179938322931277151561834455375775988947066202736962197624405156736518232814966923055136031758144320794276674187921188560828858120501183440760982314096873707320735829192281821300066480548647938677302803604862720771151105427844429464173794707826866912682385904160623434056008424769968632682551387005162258951334871099971088152399076497469226695811982598894641394678630623296456421589021159938651528017167328049511564895638343361280546737577997369596141397467810613538157730867981961733999637520966763621039578809832581117298861662349808278404493660608122815496370549738524783658163726007103498460394980950719079339407429898281790708130281942926540398662101172345506429365120093273820370286309586898369305658265165127110510944958485543930418274994232482637477555990471134339844269634240702578638610000159915992602702950302190271726273869253039156846883410384023123228791205432720485600980118117370031055648983939565403867907874258469036263636852500746199317110376195077103256109970545245429431321793101410186945364251085531692671214283258787868542556761140995256797522042216235758436866335127207441181347225397541712814063780336757670624879101371888688398280565632164884774155163843887647950815938031029766444773355374142420861138936433684497234291456640569161983657798756983368981817253241367940926903078938314887340081707169063474235950825006778844801697619839888495983263211849700278424733434203955244874276698032667403296610122614628284514437756060675998715613676866657266112105484120198234605958529780870539561215955350721744137953910882178805560146100315734793957750881980020396696057568205085718025416953425476719767928430099098056474569242103639302955120240888179233336545308654871348740620519079683194826474923070033933620108369992781444869232807657338311775174700353028459465887430670282263029672775685675799517145502480070042190867102272261596613624912237540788364822050740111927932957645894441499701519009862844072311653249837948852014709681433352268124373110168969662637878891802054521348331371197962405692927542360953237211258304846782474710148368582299856233391509114686741190276866076560865159951101645790274381394642112125507121598591397148992904087067450242722508794371751681208794978757540115357281972167005374448771101627104630913256905852560552966015096363268127568129235168339839434397252298757417533555613376126197138260986557932212333335633617047916858345473873778250044392526407623893944949309632520687932372641449588647050127747069282647213367646822950662824565480781266445098090873067568662865022338846400970141986175751195588912079945509757317813779411582249737088149161036602428070913607202689775303227200228256712721167912675062766762353581704883306141236092280266920951288120752219708081161353136133244254451607610918063460503550925734287107189292625459372997415533651271199472122626760038422507171373949789699441293860441674791071922232275960305644675478183703495763580148353823801476033688676829755993576492195356643738008101086500415746647914631397424873514942644744619185028811292280231339196244934828432421735019453492142071938557796617422987823401138411372651320851939601394389336898680673805023568651141454293557117861139997996631855724779396129267378861958050863442321604113916306071194477821459549462510012449392171660959418469132660920812979579894659331674595487566167609094021506691222032563239275947886090442527133003501910858120821462755038038856819148428183082573268425799083660378510902987548705920176442142918342936533268883529576017224401616112980089354431562308386796061708945400412091412303179479570676838572582795714125835838587477225349663784648373438086715398538439457198947429290251647988280369279319206464788344030644831759642366821529934180037010279316629223861968920098794742767105213759474458695365342600168043009346234837917901927666263560967772883201886219729681518083149980623497182682487954501844225925067856559505501297575146705731613838395344620401121838954741627198040932975434605334270485720446754331402040470107680890261652451592542938393562889060118201961056474366993886993637900600770527167435792430610221480287566235886116939496247655200024750272065084022261925784294641575332386049481573757626615595506607031919751804708523426498879237729504964061223452356115492979984088985240899141567973037886712925866927637635348257707583004143180643651456103922099663805172877340610512921104127964777776576871193179820626904286753989183570577750398900019982391979139399621413182689576894125860106944424073914563751794482682139305711843498978246059102911322489349647532665118165482822158601848539250518800566841911735365416358956923662920541217670313440117876229919715227273262301594571583573375103112422587355245757681998022245099431789213847645468452841973107531040649229914062633238841862070321947666643104494864325673416960138878414792103586953802251464378403216859338320725128508308335974919205496729301010688648217132924685373434166940000513386895656020560165512497969839719527662502024482027979490663364247756926979840927234297558920236002744590595736927998598247066624922510192469483299984375590908152927406441534171184061650587755634925791200806760909572109397690016633681730142376187064885281221021757161039365999234508120769376836410776967110830668977483670997435569459754947413535494677480249450126709715931999196279826849735865126330926930999169134361576384261947055703863076272697279868967017652958421878116232788988169529175226296149720585982796787562286179627407883027345489286235178630185331883271277608283422620002437708065906490386340107089027970027358926401809454711326629165167772964060729852862640749117749094235278923417217349675223768517306449426578134869510514172947675811692190566496423122863043692743185677588738103447632146205502857310181879684219658432922459274055910748627145540679059079035404128346971027077459627336018990864610453307779899857041773169934023721302776051875731911932299147378323287266463876680078132482638096934234311532894398964770018302825358168369165486917653308442497552340716965015765823041759646268620294853864995174199147229256544128294537437232642093416125151898098312325207741640324529853094701809602395778530072010482023406808795575275051857753715451434668072211546383028863547693113724543419443224226811914925017758172423819964686301189190669224987284366957082927267287370994614929394688619355196665240545813914834383852970697543485451090369681214991958810647917936771799751353169256958004502639683149042627949670699262030510185742052092114872810052291410797891163631456456023105574824461179319315833807361821035127240052048285745039500011383407522738087412451630978150519534879541278929693933127800524645500187846946113491467127900387138108585170872623103774437095297616490315004414380675556547635552275363859746635306471540067667251233120183892296148327607451545575726665208813900337279983960865648458819381648900436768599068207498932112205255530816964261183886135020249125100847761650303235905060053174090926403214777011631200261952662027043840694016440979239815937473574633022781032119449717943099373184469222634942341227331039677341619005593246382666089344846671924088123403063642889131493994424351688929676985735369196077052806073621025527110798270488814087148525668406231228500068483013296708491583820490591674421131803550473585759176618459574152737488949058198848107399698555701786894351925087146052811111075921933158575390459498703843367679981710701749995580435208403728931640833516108700334883752767166524753514881554076031385038881674374810252834939839593615377453703714915899370279961775896215881969330858423956454292044383556951638007566021464793015172182810455190937887880882620664651866101931579947002992418482116007616732334095756172406692811561702007775779612290304883921839770282411750934525246239775596322928595707307294834071783444456235886435207244329544387087064597366094290750363940318990944234530922677835740595209440643234713287014198968692273885362480125915468780956726225302360249610740294391318103457181907721031490721117357673279190819505351523221150036835401575660948289775115699536947236835222022223763741322872020083287022216739975418091024618825878051180268649921648225604294778112894477174796752022398729451350207406535796195629957669821125896194746313182103263776480523590733495054599921955200890111076580103247242183162839291188214252403388767670266704020939295593434559762348109404159733658343455616363911723379379214881967269731124773806836471215649089321948050746133461096077908428981364068555772733127009635726066316463357561430833733655074155533743708220924670170343752101602126856407171714617610553805462785512132612537328642851153924755305929448685458867758080215422240760891786742028326632205853428632187553537929089400491227339059214915804014549708243206249566742635359465041262115605626464277163718648121215401514862044384419015732093796492262180650115389303190716127574813533341400605145528224854797365801144734054707225334854835785493440312059762132524321564056411260791434142877281256454787856273840691232995524945803712179325572185596570561567837285524618938172843719559053969821644551606890053463677785172045626011669411021329145897988525685286367216800879674616583852611818052332060978132300310213915307942233195753709230467290223452331271660084232090490682894732178906287634687717928931099252857793652918419070502159582023206588070448873888798880508754638463804159453264908927001380555712605670227569022442709564358061318286671495245313381813696756751977356188991848114402594148063400577347217094434164693382492854768020646911291962454030770051019882984725550621257125145724452556365108651839618238603655979650683807757156783572126306099391360967724694149974382717909940254452628575430163442221858804686694915790064792923976904586656079517157074022390856111350164429759673615765341368661385492563189258523854580776033284882844955367902638866858886652771410503553226040298435902427108454914515091209631522083963688166429112171292564321549386427637192829675336446551703723492632673116581173450707064104948371238905532675437208696891164025002181299284695046183361341191662412372551688564641852277246361255314060911628413967457207247840628263243158088015152794071416734335009998757603273729462089018845062873228478774779927764213963292688633199125156744486235614365745428285567800515130817013449178968760790216706629176352646715590039475989720003327031813897972582274446461042278762208052316021275373695905151698010014715745909491919148454838967090525232607741381566871036580517253282723425866406750886632986841342430521664505618351347966122879737500844257938888354511986377632857244769518232806121409257003729813507945312568526080347285402664507376890037855088511570089434288525482428357462954324094658498843152196127550738186185774309728706372882099035136071615003482967607118859189289387404631078131467997925304806988401003185155887636657387776329358999030946585009796545542197589161923328575004798962611104181575244760827111779057059859861257272528528063829564315153740587930534333453318816078389114849981828567591744555350887430094417363343188358061465001567789644808210210485284098046250601020868869943923434544337439893508076060614540113283388842796341401683665583519610084934263166827426877332388529350376157745085414392659177173735729062696384050488673070367096599660940935971542856840107656262012741397071834592075912106680873648918514546798130369123945407938015908977570813543948921446931043093237087018138147414231126578531420339888620819309961605101386282462030838509725825230297898221010025102168799878927090816681432034352445242059497112974209217827959136531880975198639036357528618998227062253073299899297494107406569104561866796172344794299729331460010488722533016955060624712570095309676477144072056271291892283842336688381416106196089019076431827056451856419291295571241750375701097363098575460358878084754930015023619822305710765686411459576413059297956491307791806989114630590791373642868947648300806996464497673238186674690064276438969766787436927357716221862874204273143563413511406049458955542503253441329072906472013262241435483549657201695717261981415369478469151607015266217131156873603402954154426612559794287614724471338709773397363487651501619312670852276407560143502306713892036295883083716027300211747794248042437816087204283548076520103961809057104827372916575654329822117366823826219545238993070841147142547627463818524873738088109844115929420461057262037000933157302081560890917557609377385177583210257412343787122919866954045418091598316205369783590219547839489923319088405319319312749252993096572956149004620593446522953872018341459410000863660626774821421485783128377523125381144803091030015883699808743525128155693396594520492819887584842812159879012507720064195478596118932415771991148130147446920732703830582806134894168237832605370695208888871608032257745697553203336717402903654023223423569987020704953773727924778275022693776222630325518262796377242307194596362854130132239048391089516069462437365568326289439622246886661797067882080355437883474893440776699388031697616600340152167396254896900244856869921318242438766831994243239024194735230151038431501519795283024651273362855226282222781003909106402142986541407521231292226530913712350750206051179889465233645073228712042284123678625435183260426317998435989049780219668285397695558968662282319012483425568179574914087041279138873058763152370596281321787835929905448647062005715051322130670849679472175236362295277173213352545970578893758189675815793006957074351550786459542479141937119251266879093561600975156411222539870985631105000425349073393039779679216060909283556157058256731230412013707987848993092346454028769343468642020945857830107298618638357915308407056888906115931802933855225439611771682649398010288312822744813201017616826552523314709283628184413040240101353675816507404079749344457858810244682704502660105628901396487184792711002629904504745080752165116689106149478512339012678677366113445039471589153711272301729028404470224443484144578131276675544052696717782873781823713177520598263673436244756261258876254198475937363405470183946202137753869149538742643848850496868640561696685225769734997264481095444216453217061155364103225302008383136622800142043121151303652028435633710857348578109315620471215336600221607386241129569483588722494386888303131092909756560854127277987456431197076192035298475483333274087091872803839004956073830417970318370950412409235708564205518178236876892203208607736751917478187219732935760533124880612870288042002376928949332586723912770045072870589870917955658017714797292948611996357299315439720735858983967556513349827482917869297176299065549375485091748299980384439304047308796580775830487491688174036550984025021198121098648375239550561352703374468252135927684690387779341171433916234668714057352002391487152624716506433003526800803629820335886992455160214099926711994428364414597957877450854383949324518424114957980027730190107468572781576324796236902695632824846060171107674353367100943267134705256456224707947883113799306288488791949311491723192896369901371834915939251918940485147564115378567621269648435242707798718477581295856680364065248267264700500236893323770327723246017209254855460029522889423579633853663552435398132436305238700212765713179299716046539595486744041829409223293539513152776202983693716051149895575705070691397821803194647839266375063000980879937471223309585194565147029519777775533330876406177908342980236961612104944381268436381465505654076022334401329065300434847992933125291345897000775789310909928989671325661431464676214681432866361525527825271551812195579799469773995593568154660685449938533321498361931795202369975019900334868895815774315897173752399869313232405295423262608340634351700787617073013884855424920593634435958025582063986871247525254274898361025804267332488602294479174683933889444639832154319064796740426531453735658988523620216995052198193360381468073222919083147227346530056657914893139531001843296767776828387373872498359185948107536534491582570752363545630603774047650534415846250731796753419399063007719479929650422776341827706430603883147904370526508183910537872675790123876973698405953636902922088755483434181009622095776746875166253217683107233006210216338419807127099457611659371051099325196451716135245570397443873714387833421334924867824283047231491537898057067127593102890665734167894789320544784256351087232372762723866310087209487355936751893346768601724521445927450960514305403227236448099072136412519894137560153975959311841043075491276304895229897761176858400675724177057540060045515538039617788240957462774366796367372588315507836764583934845407663454677686505368967744651040362077868069350086038022411761387206531279346989999069676554383969139830416619773677669308953853451139480411499744283827556756982158673197079437073235689491639148440812919810386856067888492178606985347379752049800091237262705803527671131298582213962445847587392117180448182829074336358402009249545001614720021069937379968957318887602218628120187420660227288324309821395623474299182096957132273936934400155641881057096974086011150322308411624783318770317588093266865970861279171251470714348357341787159150732228301703472676087116522200649969719938618837985414458504638583618171408081476419156524502958855426160893601858374269941500469666498865542836635030784982355763626533591517104603485582017273206392104829071541774563773151190219117513557616580851113556996459805416663198137075871524410370566294017771494413501585047415669852026229727235892479558030539051321343711692706150519577934480025048739804523413547788593249060645313738237545149097147978228514421283900459004870978245652408435150471067211080094682720655196470914907003604156197285962115400618015701284900446625918447611122552846705721957431744766824345756637472127877693603285652449594457680370280374489646233136094628316859073958982666928621214416039968474884306499872277670513835677967997841627023163102969975859956065733381215411290156447061033121019128700122936630770750426950874889792504879505671896963958510167996324702522867494028374400145973372592234852027330907885630909089623820812791637294290439815933634383999018766497098392151618695279242008541887558621369972468225193298192947082172261536940957490888160806208410276136913553920305081039496892179758802630565889107227597057138282378899915407123668264610904068991862467659869901809665890231307920354404835599930982255412326049219995614670356268815775090303996762679908806033792654318182050024437426020227104773049656508110901438761673781949847387686232519780624032540082750743826436064456267322722428103950451156041200443318723936789477678379596185373310915694786149051476289872523441002085021949760450105756642631044410814783994856257009822669153698628653356666417802974106559586382788026646423748569315395720949659895205888609947253304692096275445344923735460417095914569692646500078585882034300526960573643791108519321779639881883962001106747306109557928465824773933674988795454072858780432753180390140713552183765456836675001418008242910264005071586648444988574280728778673243770216910998198261794295183484233346399286984894585496152845741870044166034859394085080588571733899684392366844521410074307974824800997350134306732681471179154916925870960505422635550279723423032061116582482197285771314238581399384957059309824604299227154099134636877390189356776888592845563013788466149847729675470751497131378605965569116127788380364741600517914176781080047618058686354297246874735255145904982229869748938859567232781759487266363375990857117527432908207135453442278581030179472047603183464651789873713118398241233797009146190429429249638027503452072781271141369275274734097963502186408338904857426951241585792805618456472561375337822005382920702930777991635315872518843053826648605277437619126528421173862023045682932277994678410136505437806481192795523913016293091207939295141174843033385619838817669710350315012965229580686214883169569610801892947466657983786436255047101403737640700170212434766118614887957811630998708941301769581552915051120604926893444282494334577141376620096629178675454273380288355113037249703493776252933484927246439331328596323146627869156398525823003461359933839294660360625066262776932609406209023797175520691891107976498545527378524373990236205210979319389172775581787912747718733895414491091204408886645469669018675039023048421441414581543179205104281737885584993365258877823027800462039331444218398915835016454024139051881855587463556885398998303326281630106316950612351311847006184060902083742767037030526431161605980736692159564429673392249727780163686988823574323621667673270559015784771927594880746223074266913486756442590383442532022838107217492834103254205451467812298844360217313472585521767044679348930084414623261024757447203813844731654334589626358869390288191226671599593167936411667812844187807548947373470545547562955399004806320614481800196810415197543499194129875154602977193394345409822828273640394272578397077271809033472297957685007376136592889065131287501349511051161163876253158580483697426480415019320110827790130842408659498152878057250948657549282531504626561684373808332275207742360039908356541811543083363121489952838154522169547007765600176821990540946798899565141662481320387515648935366704456466201318963325677585842510888281899746364082316273122859407190406035205288098410574426775082640039982549682961093231590720321158348523759037391499293899221676196927057316534889712716297113662073957545130037015777898391502145559331436136471037572564161512384712417016938186064963491281344681083244223350680722310945826470096585748410280059914279525145043150624417398945517214494217312152484498554827764942466984331896209665570827271075553036719655157749261205723737103672637736720994546849568094101662642492814523833476468541080473509364117212221166763866503843147553056546935864817949658940658825133528554082615721599142803516070198000549547940790065523902031121936796844117631350269386097900071168308553918833858622143493231743773928575818395564982462605545863583774809977633206418995977322444365901775372881483408402328538141254851978267181978321908781015183236904833860411139611610037973478683996724775278244271248735164476153061959244713557078403454780975526924006170822037831693588118227239656738374780944704585927802061558798829222415395998976342008664719495976456495703821785529828532639675857456346868987368054124869023874557373415495274930895061379482784122794030772776092730127373932567956662255853184227138567880138697381646943482929045346632752790887347121572930262952323894991488683572971880876863431761140985075000293044419728385293596440120853750581565063882003049766357656409179776602857046690627661547536661799228423813719954668563260494516118968222916235283498156666572641251900564827384951041717807954929622246629269176512381752019058836495298257049490001840707731942639100298102542503544810645880374172065268217857568069228234350548404698327265783050179330750760776422667626501043826147936874006152822164132844101216828916906554863348570779026917812179269785694292201586147791318467495990623958190692159115609757944941610947982675272068853854697834326715466400871095264949071752358035057696809965253373500441181589836027260858803212613890479125892581044382061167117006774776470717283946089511368004193933245233945670935186032940329073364590965788127955381990957942275693589151563122503583918129369146656234659229260253142240618232034650780017627392038288464236658889982432754149582453495616457667878724190897925089136979354526616380097769112300378541830700088347504256460851312650281821531022865069334046223788170181622197749760448123841633633916072355466223584612739135287147800445099888341037522293421869733150492201890314228216206712560534773968550457299101935435189647740366785844286363533732073407070290203794875468853209534413869495854035218817244264990203719034736521626427336265714549302488706766302855719489996976793836587551565851708960219543402166379927347980249566718812202692757829504989957919287346370735218724714666057099128887912706892554237503477930852067522575628446922526343346884849891818091174382232823612469570518114155926785806009270894975596389789524324197462550407285379014674370411708170882949299642647084799522938319851016430994862588440189282899824021871984276578796035844094812146047182049526664148289472160307553598458517338578290377775236760916898205661900043129217563356002040799086405887061500089108941323389068428213874101209409363211371441436703044196403888302185678688921741603799760174548745526975762422050869188031905407549956882686217503267204717004010365774610586710731893450230419130520636009380532325128830273832800802419920882197630041765688847503395519422580384872235680042592383744171675290007663839539044319371529689704080982122959135532854705995186649729820922500973961954160534211225234154292319447839082992646290297051314278562919874350846872893314508345103475299955080726664331957928324803987781330900534587939500441781197495125238021484842050691197548994912390025750437237747817372718968535505622855517201176288813977383017073894879114437496984940868782094773884371013095384536926979517018105392121817630008707328706139329438430178292364035227487414188176434422329228828993651727341391850265872215412042715696333636541598730075864382548206233471800532812655142728999409143206356959535612655811963154493775238046733160518493658049307030286807526044691860982050675561213586099236755386182441120249817115530942306124682149784529047211118666038291918087054874420203005132726529880718407676126033524431699450028172274941823227341547236034094016521823379518423692261053332973272501258895233183234302725588770019032039439004308863896868565744303797994757177439084403868574524488524293930792646227091931854248650038440650411324261130820110194123583957962464619013373137348073284459414975190280475813932743736775476095717040366006030495202229627656108165861803835545006615712096839148687131578304731664244384427676895001667427233926808542711121410219959933349038159792565412755097994312162448250137879274769345068615758994781631511172041756200438524854639256952885461210622449488350595400146407021296626156986870359098868388913657045067773588974313889705206717509828145123062950715805506077880996703068648142193614898423582906643115205680896032836324610373067578458866818310310243844444471294826438285906893466728781736732594244605938681710193290453272618534030454121530275737409617196124761067801351074381109493810942739186393717198974180441609762942197677440763141925238541848812566660770036215869815865050737313012962229104292381022771903726347316342666475478039547601947021303939832621033936525942009425700902266771217596496161367813186730789871690928299185191058603066399093015319003259947920400583821113908756347550336051468455095530140581533233706186148172188778057337229632007530257818726453784597501465775597561930691579066139999537425572401176543192399737342658073800236556979784450760204955995070895097696869889362895027086030313511287206874027037384159023181706229895932122163845808915370225126200380673850617695160411223558046213236634688086456280884150767765209061963893638146618905963107323866513175005128625902753613434596123025360474994094133016249657930153364620144543276625386305802499211687768125006421794789392667592593830515774998654066399550682527213825713342172596747082793377873285426146382205180886874283462376706893445519316771454394656947931292593658581902716762586420106509793525812850528433052796054053098173359246005767103310467036815319648541278634497917186419597729935166264415104489604583353340553942194649758742667476927752575434932065561281338009062597298205441355357111718542760146341893700045673194145110762451069313910776751514697445692385050624708479319393708879713663481408589305869093206355342252944248430902880668399362959863790770852434205285466810679742234251948454439259784568216263959520231501991137312923074759382371119415526994447590775137167903263868689295953107406356001845006711827007458718354880488173940562655176748042462405696937310180566210760970999687520993474793813549009426303015362643674929181450858805906006931712313717723892559600253447539157179572371461215908071899757333297682705820626299637098521162028890955997546470666034547004431960092041930492112879549878172864481921542638559476944311981196564764044877408560673999318443012032029657506654752606328674444934525259230857337633957533886650595948536355963554246973587804844670224085488230828670993385835365038485470486809594920031836757179525935062270199144158715153425176875401223022473628860314466890209069564040259909362201678418772754441232722040166775507918182301343301116477588575442813979553960261401923226488746868658751817886073953740461820926942518979426312160739939024249849804967048371055442669013609068037405854546380192004442167807602084594963414346280739572627919900248323597551596060143517545907618432741784596225910795870240115242691804744554368850971065761967338850858917880070161045293396271861841391707198756045015407607159942380530815667630142853408380591846295014378253337270772017114087251846260481982580220212454849157210717472218368123229610572527603432116432592666274382417488228958546030382236292178126844316161917398915782270807563109602736804246957918491239860599405666959367998811623847781963361164223229253716959782392419325577913325781066148017195332817210311200230281068269910324389225653733392110518783452565196865111373713707092464060822354914000824631006207060958096352441378278498629961458237723869155494399551872096483573398979981403908356649717783471026525389735274651763906219940104321968984782365619530427481310334700844341048344717524411094224693056546376026486830151558847125370457373271888071412207649721328482004432553619508767252098890893055043305029796030774619597082998278251528566378085403338429933698389241050983564525140046526086030875464739696870155485766400652199252511036835085350309786239060225180095235663059343898916000910758698217820335089100575174263859857963301957276124775682190731869211848546221081928519070741066535249690831148311164676582002631617610739618287289857000358715294031759104863467514859068724671359437067091953134038910745465979390316827180298103177150923465073610904734484216944975417534957596458069542699433324076863100798794609436541667867786862670498778935990067782479991418087109728197442979148764960328818164577193538121022421877051606055626522957610650526103253941636900175785167265801899105957551169063130641505270123189519178832877437266412762301808160191931277565242624705961127336999610744227855340540012117992809423369219654491242047784943849235445153929765112479616836603897159859966362964815647625642103942271583680135072121485188237489892259714561724319530951984360730445308686377152397593978252842757540443121085600855065096564948340621737236752281020882300252248040379705922669224498537899312307280955688695318938349846794276052670460469751121588398434660371220053589193112754318792749079900541621023291240765747678234898276577433377335853608764123680920869137830980377051027094506638761451889115739140165739120438100868348315308399441683666063499426995680446485815423388912439243402474878738338271244480700849739779323330528697403855768111080516804036751380709920268543539736524535923224222308073204645968825057909225180965292644818928727104675606346611735058361269997476893709408928093982983016558439518615913438082615278443384034230464963961807933204628460628836458824307261606792689752653005294633257357276315089960376003839701469797801093868442548908047430765895064784436483166301889891023882019096986302804406768030018877952649936309517305570444392726168686924660650531517517046810142782650621414563079596623541805219992251055258516291541075756665101578719414855511819430369891954536288243893282551332579391609811420965038254336198042737340773171366908917410899889819835441774402181163503166672307675130608954660687567702997406912537775638405014819282859174682532990351912345815868873139985297518596078449434928390370677055373349440283536421256893126890579854120799030709460503982411044153557583075581480056841383084178740601214864684806676073273080919176598588689553638389734289802362688829356448143722739649804482633447665357271530096795883397180973368592809039869008453409864371030463978492024118196200801313195023234458698218695623942036183864690659202016904512933739631190621549760184062797540925854670659626943173834955238022934953786333301123363437980535697473137247938019843554589544861030163134200561047774596632770230022514627692163301793598203899227053030421509250966708411649788358935199782873446203859458162297340203517001220786885702279725325888996451281668936659323407923430990660772305448120346152879175358481433013788085885905338871397311929413085307209607567634114497047173475076076942632867380092477610129845254566610428033992561183036735631736830052723299881526322003421510576380267988472086291480671289319461348472990435527604552759708742543101856327989124186588115885737494143484362569504207546459570438967785044807236799560449861743327479852898238100700055632778085243644018320794409631625629638626527900067606933861696975092645023679336243925933455244988662782377498642354856470381641944678338771997352972027661659504169100561485819666544964111943010836217512460045418895267324115103807979005229877235215003392924440068194111663778865838636010696811746192614312158959303442541363248120966977139417104255249644183565568552465259233590940309854976731147652931031518764822826967080918632821509394326752283830882258693253151458172353240819004415312232668800144964237582600134437051605066152712148581725161313820117851330008101538187703458161970321005433239473267934663462858889568307843443341471359801384965526628156613145879015615879631731063129424896082041307043203749682810355764350286784291399800450008998922295063174525788717257077928063553295223745634983888151156789344681448735085131232034935992694218470274121850307022086975658662177184929454233228184762266856158380742011248763674381780931631953849487646702970642697522797530829966712163126274169136507951136844344650285256486338757937103179440545204550046806071938635229529567111137134415107922073229453417422401865094560153139681696855698469479984322951648588202735730620841549776586046919193695329319195642556079031086607677930757578786494106430352429163015099605089448462517620760530870010433427473726883542581790793739343754014700437653274147505746696865178959801452051048197782985771472452538304969435879117952815749468413227086029554917507332875436309625659307159938320612701116392663337400824581095780821944903966590469865399156801042082192033500400167902973448308443712324014063286284351330628313711085648133167827849113738610999737269213853666292258791234922095791602034525454782478096176819701197764629628450476843860338437931105756319693562407530540187615495794289347636435413858538388509009021626396947968339271411393330842716868567435201620424765179480541468332138663776663477564771795753391997697889750963069705543567164669188900588146202716105004453725619224380696758202432067346538934399012350114823963526082003289919827028035021118656229762988204214386192400671924176055349455013675681469860152001523040332024036049679522815304111915243239268770225605731691073136962801683870615421691065516309306802303190302948227979326925234898751093423786650166126073073946316584612770184149443247075682008000448174439584089148082734782329218412705705725648330959293888424758222012330207622656853462860499644088872089636057277765851962343806861715800340016332756390053576713957336452997986397877414403554601775792080151991669420817053097505061831390436624141924800199015082120131444920245834302140613657098526511620442537457323649262091566169962332992686423104319323247290732818743383104254741108956908487617022666284085895729176292819368412654415991547765021885154295185372721289540466503350329924420463732777143156015729386386689919134248404772395150169502699413506787203169257761062246668596838948494923310619722067631009707675723487387124006256829846530952973830854962260803213785436069252891795293177931524347535409461584532107608608271123026794198305913756247328042145915039005473099863216461639888481267631325899818342297336879431711238216025190858943165634624253013455962779088312154374540528722718748922923869062602020053582583233888459142945725381528558813102888818930894934970778013998971867871212623474870196255884249409159324621575088316452289268106652234923739083579557061126675823279382932347497182713001792085640027125267163939368279035818179647307443024513874372692276613275133015862677942465604203474125730636529193182421885971184610445439770050421236078341047668031604559525253853288948244636365109566562657143165173073625809420406887843043304317447839688293257592442368242328405901258200460360708182323617701063389266434473674903486964931158927623295789101067967929767972634516508453409153262214885015315415890112684473221284198555465286643508978050205892128767939837190569609173770769029241475432998341290620439654657408621636765800296373868822996745154667467614335968815703411972504461573762825232288012152690191181818852154793970143910457423781809184722322947965954837911975025399508308789385787314373463481855537580924020457304362844409924506663564099349896156846374563240664080051200207834478161849451721010635509852410675693136945630279041603514383996100321160519588972962719729331741997496807962141700614308257695000861916533813945279078885271198794416304594234108723213119543481220425350267935516174741412724553809338482750891650525083594713369649630105599503080060422297030629373435740529439277060757640599002672929286318646746329800923724013840845058376936985480564393663408458955713484813340295257260571316061798734817861554398200196911181448689654649842486245950143677994227945002999077532343227066503334963904488699663602335422141190107304570661324177069450905709984959590805078357909869956798773001942601328336316374786324719319150035464758532575676427192291447991488145048574889615871140120422477968374212676990782563485659286823402146723255764184841839490841331383648101458890322603240310962666149361484227493214253613005457035427787522984712230852938573049348480317586390556481957529095456202110156698418318246229197580054287864933680565690918709053902091909958957736668544193781381480931501873757079466544077591431043460449415653798514134011453226903289025145934652200693561840731092529092908175785542033577429282272281334582159056170685307662618892003508856732221729153578410769758234077681254718575798885613796809844277512208265120378000762516599969246589742906781315843644876430453245919829088849314036147876951804805324140462576706048871117619993125610689220080371795965429683272938681765744953494921554174487816259596778382119822551858466860624110878256212992298184897863355647087543722876012506783384614824531908157495068252244943573801329266073213525937677365445827661257305579724658595645875419639367119744176122802700563350374360850953238335799939378776498262024157294624025924682508708760333867451448786304480224318238057356289371511224887579230616070823093568222474591888584606658401015811650130539693194715105230440589052752535131409431339579834305744414517668139895224586684282373245063754564937795284958212473629178322710461605742005186861026120243004260594901480014346046218745035924826347829416751211451183417145402206724716213392942464373314274688701563871333953324076252811360156084561528911163859793831482045846690517152056314585329896995097468034761362534225580699531992381171431972430438200909916301720138174123557998743606919554910456844015415362776281297655291434259903375667027889979219972849962006721343719292969708128003646823637371191712353895445911162643152107553555426048062963463984698187240607844105207944397925067053359785240224620849672942671108609873536569146446538166178678566330910419136367391731967083727783349281499082904673552306288279413226572841300663873143398320049935051765782267334869935275219302986784670225792036885362898879356500154637069270387420527141603084074695732274502318341227325777691710453185890231780268585954183662527297499009472118817703295334463235651286551578385492724428615672854412719781238082537507105140487502251799537490479590229190616716898463737641413751652513920875606797593084847614887023712486714859538908192450518139472394938721771257261637229127021877879305951540611288998994458303973600127322609082191916401831867725588200044170857575816822280820705893677508340295055745506920861822969766283331591781453674106993232799220714683845329149107594760146886130357360506478235309470418907066027967122002870781023590031414019826513857623380110234244294210633617202864833574032260697784800896339669583661874879178023015815500299473187058722874254853307172147999257149575639048843015269769546386510584090145799134899363429919086053420975542723184957109637139121105737542506167231506361758322054796807965470145321810101488807838604346840245970872704777744818823679275691017240551280641878974784648667029835891210837136614848174248217733278988992924977055314238362688541467327293235037979809232006708648120678088344204193191082520784796451289200375079401947517797028316049787950470185596418848850385069459498186286099587378225107016682686691198668548581618185284437948830638215058974459488172742312269042507066704545113985644337283112442580586263943395191258832839174590763602948587168572472997346509649247359926981968473709977690927853591414030246545212729123794957513673964127713136024690582077372874984174765879399946770322505457664287081092117536718922506185854099126441506391084106179642387039397800475027958972774547937111419890340800458096659032479754589943383971759810772902737820824467546537931456226168421505572860890101718763820996136979052607633255784308432615521654080542142827268369479000217875407301361398703975408513163374374794069919438351064129665825321396407509062390955485831126264394705392738280486043346296670173013639808003778576458166368378794890843142454050278676317083435940205928529228890037901173142071771475547207775688322172553463919573158821177802647331232050044765403392584137769688753806783929008184451298268115603107707169345529327365462426551377397052441175446114292005914553285301086353200728195150936806676338468576614613538821088998497357455002565452335535251487246222002575184002878354859979682762032081840776525485359660912408128752142644735483692706864536980207960024555642647968757103306990246697483830556368469849567389230913347101176994534318883618319856282483257732253617597510966782971640102760569570959212977957836901378801365576605955369621804993003183525877285651818640519795428220331586249386115196176495304936953542315069834853398997060865615700950076035261110861411217052552036423066764295112666016933801104863590268343892600010356827732974499927809072068484601787146760089091947973562568796020497887833670257738431924099980595817944894260977307448166768407267311209449073167548251617581039149638385629517003283514552692580747742522465487044743749291215698170285914617838581930003973373028556232915560287645945515774593472943832846437263460358538796723597961670692453699160321347467873110646617872753199625537299631404786286738929694211828195323732752020556249402941312945386656632620745191684222426320333367231200162675252037378289117649760511493465106059969860547151801943143495430531966680511929008968321930618160073040485129143883858772827823849056488241766364431303621533409027164602061390289014407136985227943987463123313107510900116769890301200668934339033206996074777829420293500904290933223483445773273127121107945855581978414675851611041405639698117835681777397595773005283227637539244898891548851019761004280345406895283583736830048336025053317018445587410320616403673926753190147999387624639435889598411782980941452717676950203378744521550604583341198529882122362304820224052108858975319527325954415782972095242425965903105457294754863849401006827347288684852692787379438066452407344229208756920021127610342617892746654249274296775563610510992257325298037706703832008521773206901642126023935398768158863820293139638952916849399317812066312885155380055742443528442047311654548910814294428165964788724952805319883267036544525614116647634989104099578337477116277988883023125385067736366627106934751851875166542591351578032745701618992006749689134106854996952721361726378887181529483417283459129537331777495019412843755355825013666475430997709769256305279627904202601455408582182578263984896869360148737044645962876942060231674253416571388954249918723633284477641604001861153816841454519754033858373399530173929928518079332292500765405136530923042733592866676424905609277436087920411477202976524002225003451338657416585672043840299348716228586719709642173472268581633829204965399269962216653210821756427533269908849732173377976842862516001134346871588392920348093318100212242338176070782172067410193414851551931334210090082055442108032966858733425603054983468433483861775165469179557513931551685559229732921934719753614644699934233748681346016608809319349351290241767596548099957349713059766333574321293017458708496230671110226029089155516501230586093612578655912361051800507190979215933384972557660862511129069883952432799171208691973801799748830351914565756963334319078859375495067185242797235946100516787951762112067750055497781328761278006633017641345204166072457697392095638216748469226731100005095320264429501790599927507162659462872980958484491255560975904871259268043267239971883379560873327527304899272059163827718165682822829225087716541079024352831273057116436403484221402870284898721659589680649741006964203090438859877743993647749003375151962917356379275943430254923597323350126859448631747852589730229393992779723482033029736002519467440671443502476804096567043376133781465741839819209603959027090314051033664707826899427014424720176984597131379650648149828961128826602788745130468294060941262941612829009849914800594865194734871245448348700725243614373090331591303050453055527191285227765259763483537922147860262213565984969959984108079620513463357243416318164167364942933995063992414281700411754030070177868860116095014419511898227272964226705914048258831701541307927274105293205714537046481901311947944001670643556777846652984865432451509826489422632709067977176122557258195545216182795072198603926859219458672952738941891294172552551737190025789362348522984179559629398581038223350395268853153901751648002741976492254250843344611090697111365252077175283462451811521639639784820703390958897785175204025114258637965363258914371702860533876229784611046949920106924615644869145505833006899427610370629955579808505267011204027156027172407464267755118710551046547204417019698988522820557331678902287191128557649214986593339876369009229174352265197082930948456773457751885370808423688461846191763381562610018532319959422484635210524562586166604178265113514409254786189236430624712391619638602172938094851397244664616015448119220476154785881725914557394568559014029668777801503327000293422076853015913723366791565781291470618549247505790077383619632425892247281469105981584864331998975195740161435030919163415955062442690479612042862623198108286238587437515994947976358244736384532306527832042818278574332985791471625304904618313780601915053834264129217128462006704919222423147574687205782735868471041646784696213893057100041593974671175668538937884332162458705795710492304804449869118429858177937212694430743560724589372989780014758875915334617759709362401147795688518474180077174536631755549970781294510446310344123870019553359792366073420133056112106443795424952276922160022088753806184716248508443098115602016302864273783469295269669368028571748049791115291708653928124216993278375619641338768747369845611586731707857135089054098973452744520097401439940754201024512773623342173707395072757271320584508945563451975546868306585393898613883165451062135016646741404310016029603824013180984567362928777226930855201554703106096076928327299677966866816359149275509791085676839445465123831713012602275930893375814928136044196175215962152272835315968836804507677724031993666794183227379982493779940003919496363081023833505594855196785036033592935919614299607372145605821374087231491456478180893342116623918741613781533819923195217135047643591049404901871083014975575718394546347009664065553238439402499718706404899879908687729536647024680900334298150113747902862875238087202407412171775052550260847725854693687590389826111373985404251387347960637850013835099205843302145322980355986265685395475966928452439912934534184017949212572739378471478963423560076469413405941511493707063124098253743614485315546937923685006388397672137179697364926617982295932070654833255418908473452595080021448982730118473492597796990322489383403701217249084078859653863836225069374777185045375749913398769308939030916687044470091291229176054155230217559805054503359620867936007779751676492657412161661888017241351100678299198247704767284642974300109462465339086557939521192555220113542000090750320278793704878812566747205395135281221593509992545075915116602376467559207233958248659832667073705565549831162414718548526195551273356972923311050016433056555009316884357074759311289251900727929751652802010042806750003046993303899821367169797748471912961744616756022547797212992519505372576768176987367267735354952228042680966898373368581887649120821167786250530667214729873048594375052278633823316180225453145809634639357643088530953791921764102074645761251594660056426040907392771112825534898231339886793298259353837021038020184661309489129072648512603261713722753130791405228159491650582921256239497412775313864256254599293198697513806496646230156479345936308968518189481167349176309427957256960799096007173907776039844804998459964815293452213350630817327624661976381810372257994860791457900676990735536083714134171204664635742387275648483257735349527848452548243058044668064648047744806447206561306071249523159383415280439448448346277241426644514503034561982782591242778060268754380474495552826181743229865029365978991018800283322910645241722033152657567838986803755930986953447383528862225926909960431871469027241274424784429933720074731582481181670074124309677703747609386063402148056133620559909562171746343920266296269071778115094151241629435107891062799586604539504175815350570119254030884935670781152252422950602422103841267630715093962617452786946040971367406290252946391350486292455167773762768846768193942120477769679691271197350977729988382172976809448881789046520588330982422848104181782089293776595191588159994684952167903759044185216288781893400181802784333923036473408559676812604913326597859773266415910967083745188722320760271963830731433914722631555677488139946259532075240403862816516150031195844358087519815967816498811782696430183027076965585493039787018366950963941559427194214046418322260021607189908911940439735994353743288231947469281525827624716920598003622059976566488631657993136574918307278318664052878057391402669712190588733540309895641054673490341380417675166949789374377508067052820375634636572745087581678182828363482165280719433061261243709203272357480991219372586481738378307603659278077406305742175252895845618892369959453438589261466814097740187194604631480812530362024497598028313497264166357725395987141366584679950831190954075353083607716837944759881273779238215169533949197266055862626862571855605099338059754580207785178203839902682638883372541602855530587057066951902102217187796005449639129387499691562950434317566206909705023740698881996979785077912899796647592113749820259886889437771989040085732904019870676918475661139904975077526521149934512245964346015641526114126683287273763185120660362260869485334891102154858344237948512297727124307619283491694352129398323248223785896056627731946174794991759205446019419867294489693926101465451851652600704979062105139351348324775223798459674434223073912264153477068416651156709258414066753486843946343696930956088504043688713456430013244276550270695950992823666187393392120762050504229620864784675049344119839836820994018681276545724003506525087858854404386686889875781118186558199972237059838638402631620584845332375127794294530938231175827257242837998224012713615249054330563571821157959848362780269823025274745344352592150405750558100165020737710304260965900669186021444353858874478079718149870316902149031695432620478092491708857745403287986065802620427410796273160015825823133611663326182321231586277326649261458840180845090049784523617224056710532686491114134567703770105257608685487497799905400071970569246846205678370512459565891713317919496918413328998533641097582032017355562745503891330127585458909553287254924024129044471129526563816699861544626666636057933988347312080923948107823458879143616814678391005100445464844478009507798606181309348958951772515031311179269447257142525034759382634766181205169823542872056065686330792083315268460743419988534233905441813438462497832562261828561041929137880166811000044186249723974070559851535525942536791104914861033368223481604230527534584492383392557844513634458948241026718400641071614424373716510842182383333533665680582520347361153733389124616671838599671107765996471918176939218984350129555934464818028910711164491302326050558662389520706518252381120608180987549812167496996521367351210547116544217852917562897814311563371039736123459717830208315621497831363054220508736013578624962492590479166345824659113853925729389803294606565081153155069056976384424943881279386663448963229007973364576833032052806518986630912012327355121342505172255241347455842645974876755941054796233315809625596868224114089049979261727799245006044859632524156931820451013811769826473608318922929518559974870414956433764156514592079980622466000331625507797219218213528001686522224620078871088165617646163820942945017730246973655763955188964254312021711272291194377018200892883641224892662164643659964776451526567276384744050702839720859661233956321320233491326411507296921231625058707619645763928889269147443767156212650956890460887044501241348062492601169385385105921347452288516805509959599124980028068984641271382343044842724183610036696807557142443261356842998811474679695162546017706521318181515732078332682571529542576100961619127134780303565329890599049339201721973246350119070581562737970007460948707394428804296376349156053623491032982732658651799957396500045488451352158384856481050534069508987117868907661566075364923457597660504168441404413026249792889994115782477772977037432614829418940132681550770686504794052276748408000667186356564025395278222029634959931267822119044497985708023754566873926956034588961872536982028822246325721957511130990100827548806972181778289807286586985497664105968289374493603643995768954767133829439882781890168489103231777584171854114115277178588251571413619383660723308665946036488486635948167528114963861742261649697303551614859977178241926726163898751453276114017520248973580658591083794689706363673449326500113992862398070107633080814939525929912823568066195733401378504586156004006909800526399377172330863384841528825216574120127195972754551021783060614700896947361634811563030389697277433110771675009560466883628235854355630607946927758020431891702919073214449390859211950866041834463079289316523504202734569072904011444653168037409913760437164131818346551933714911990942271232880036834077406805882413795380783247028699847380626841388290313148708777473581758214632535092141768391427414965360344545174664534473281760029440221494610120547616119641426065250959521418452591932046786394896852488823972732763929419655815472484457081414230825996732528420276578448297950882086695964339530017578764324144584613774709335239996098454160412375464339930522440119333956219660853826229875810758298451490880585573106255301123015801981915219040340678324291338416305403887907201644268105285374868267091213803383109563820763291301459589794303170654000813097605650386284716320925476490564930277150034732586306661578024786163978578242865858892885245045805782028799435958610363367680987635145500324891060797192896117680301358303813659134813974900929283946119749792700337398824644026692203599053563949021328719149282447760504959722963094636278402963189140012992104098955120431844599683004440472827934380782580810571761732488890618889416227166765875875546229290149215208941667617989544654329996507191133080564243083918840374702655224627536692376755378435901739389921080239616357861592473758859688313223923120717981173404902754208628750701634555930143791204260780117301560279223861352631933897966540372857137223483427285488776451608658642529806033801888706672399949793849723634081517433225236458285501574233062535620032578635737739737096939268013019431442593605534308739771986784504536997138794042934255198946259957518180881067440493977507228886856376331982563815825964670418870751318404897716018898609517381283822771020120719337273035565621066809427391533193220261150937693189186606536745105009792249171820443357435783396742117132397724459547104608653357474242671302482870722425508760351870414167119441981521401477748671419552618365643658461837565855399822431632859283573019304609129535087104532219674237421898617403517109147839978757551248463933654722762143668009501154634005816430592672250879915372040451975596564977933306802703863543242753673418949752266635783607066819604459977339349349576745665865204720100673830237516138513998004241834574880207975950562280201848525161610445225671937279405958102130004902515134795589148661151221963458235457401176589754329799099055123934931137032847156425286500141129268858681697330996091614972689065593621778815535348784474176712993927055518439100153306593915598302721487241510204159552331267147780127490662415837064458631486864729560119769810624544041778502301646881376295345079079901195974545790920028346990345873716178744431187242950748027159863570578362462691117551745029535441110698202672479883046831203248237333565454265430107659521704733404230694554092142993581686328821772895095145151088796475475973555929671633453498351052477583611938387600007353973173849947973189490982116490946625400646284208873358420202701465279123904367273572286600210284699108594919882500358651633698508559502261695329339427143144683801557100457227598889968770985147651484489817942341032181826264807264489970993907500873910134008817263664445463158530863222269971082865821452175434611463969648941535172911457510373012064876297375344944847105700889025468700350819341786412764520619220772230739682921462314084737505436957110834263512599965274632922511881065403257606685877901094750205654326219767708505794716994000281812889075207095218099354995688004988382679790220716119817685113292515391855373605879193183038170516474063403773385192183313490846713958886102674351592898568050937909466643323818545769935380206624468523839439912521147395920191431553715386709250560551059119647833021502911202279611750267650147255474554551374156786189866059355401169018893445822769506929393714858378602110512521340014714360635026878500504144714141798671043051641769861972920834749135689922860709955957458256248583623567119346535563624814609420768453910874187266560764824721950260573547773317769299090076145212625897487809555007431335674284882688678772925825832101412833745267244990450238057789635787270209636441086745428696392049101211406433828105527567460005056684388881494549529264386645954930445407940666682349804966267211501158186061348158485766807456823892054553199826103544186216156417330560368602489400517593737312721660606532484492334917481590903898245860741991931905803176532621947666658878344993734242546766055176960054583265057441033319508650344380310384920515370856350520137244889141635326288554812821239652755771831499454001271327627440385500602217987597752743419077595017114469452517824097426813817372220411336424011403444538067510285360794918662417599078290456070048711842373868641855176791066597478046844640893181526002614994456761233489860886667304381737738705554399913399079612036002032120599530405615432758402331822091805925440054107240179873608159410182585043484794794211247878076494308362782630776529629568510010747881662809742711084791196661588684044485445803795076633249726589376536547063132562969424552085323500023426848545052817773354840946974554141059902633649515896329168570775731788408698948889600673134099153556255547380408647334219708175835668885350977867366624502268330454242536882224414691827386673230744379490065578946191533942496101894350816910870048960696675707500459386115964164731877212052859832315462453699538949405455587947955824080159349156558412243187500059596179338051938719841864624962019272512817472372742810337178351031966278897156105539426819650756472396140986586562630523622275265222198968812978899548402635296446591478471118364454298705489996053599833580244953972674330991705042177895893772451946133849618583986344571462869494360177763036154555485749636877887456443239391850123952179625189587148339665556074398489610087117626202848592933574808972825746785276814771192563110555619448262750680656654980858175777945906261083989785902367575373564651421096968384829480341857585774004207307453145276466840802540223146841485706842076387890956110540587023622042775220923950726670444872048982009060474867852739177008437254369673094799636114333183127018689809214955535481620317766693632108995485092570584177891398679946028184980930719415612084111921899374876593372173646525138265211688526650005150047368032304455738084120562878000342078824511389257919151683874374942746208625106014297644824426245073314019790828266972687352638394030830930817840533450217329096395081131095855113406665767321725116585144424555509688765978255174400525447078278075712419729322911119703162973803546687928649505160741433972660247709363348996998001640027059422206939864517556675251879414603667817756418820062333530769897567637093834825579355720915731719201889093821604304479108358395959375212311067649535919542674391169671732845494632173426186115890410561872258855054670686471711565610740371430322900111643613854174452055032718333831546863846696726695202060932752170409117691357528011739732204633130442853144450245080781913068293739597445679150120409998805423400924929922666848378619677834461745063744040495814334561740547536287738813809256702077902326988603258572401354264428203024243450673707178436576741025579425445780416653668616779334726560561763733143505038628518201090659336999671045458270071272079473456503872916035233432662814028120749401272754559432304226385687933417840904705149712528659555861192859545667624886148828378142344507516208718994694027624620459769609759390944126066440950666586389486037333852122218152939527641558527758529836383418388945707481314962217946337315608981580307802309934428263579553601359712351040831407325125705452867365560938695232279634284218497126343471387592141303747482443261059325519756944608337864344278938089724116119211933451470745759972649988043435080691670550302776579465293617389040325859717122104051246878112731126675908744031312856322298325527057827595139478114678122498387590014238076035305029284162838760734242055040707088070191901652169537384214716136372586485211653359100401353664854633175007826259812820801625045085988813201665466509881438368483509058384033959995438758280051344478091636793242654618345714902313335480837211675692164804175995362166626388279853007842848667049518372971115921721195685948680805375053211437899505153515562202123573944156482299691675345328576847317633658215475029532457428713741711475548389451615858145913929944838499075411295681941186233120979034488910617242106250360827078777765836896312920780157374315629545480334850441477832935783940893498233243356403532969133087640461189727247259669317545582009484017690180012807291888313429725465104697115077837918434327248508308605994045210362101151786072126567085749761656751904999923844188564964372945865717240861810237832317325193068840138543884984832574889478494198521163594601760859994960788331717485945865725506098644870237316544493930560820640572272852516813129166738118967267942994522550380428498840207966711111352369299419821352654578742169743588639362999944208744520876735696574166227249130511237575750927990545032749449703860835259568365324785244677774346007372030591674973796248232480407721688842807133896059665467484933319249106535582239141797184024599302330399516833981693926503755850531057802856099459833720176348040302651889325655203661732070578852618732146370289728985897758945170741864035909726319860612271652996435509924502021387300436759543655949938547579659040953221237061675302987236145182703501434063286319426954029178751915765507874561352639706395896305334645814002267317985890339554293438399060963820761283755071990957168508652646462040915418313340475434019015309967816895223597933268510397418196044296306990257812610540096419085400610234214715703850972621199456028359489269784381944445960405552925387713760347562900917796529842734751074039613454019561450100107182332999159813462770105134311282597399306032499983720293949607059022041101162418355554697464722133545291303299245670848488277034983207316605780088889654751132313980950908614736462490222266016650946954210791864318839260586255023793673016319004107557371188225528777176897811634455314392674653970721632999248125718586358886741898799238253701051095001163284185446230550186206868645938710578938412401965581868370839852427806183871896117003696975624111772889722797013135438348315686430616713673915158633532891294891984259990925346484253563657795698281632025818685110296995128212660183906613595349818238393411493834101220401266983763781507877188309674586579595645707376152346530413796145425221211366242000279698320659193704723490891352705860373028584444808953169562876631776509024417171598665651600700641633638718368284675474025380213515455673027254205651167674637764296238451173529259533543497609323238563701153301318187884679356250574898578518519863923943123087884224023913992621941690760138780214606173845383134524789277635885100265457947563703545424455468277272730229563166517635674878605938481733496560577608085736082008734129162174049209568423932134763472448144629798904788725279558905552998252399415278011458814195984035908967230317557564038331457772616072903450882667056552385729231046079814605226452249023929112463205709293945676898389861172469388218275956091831135750881697315641206315754048700400995462956278253085171902624694365608301436549353745508411611692841987618963885835480983310627360570333518468049765265157315285171196065137877407343932619639712960239503304859236868560908821144242355193888447433179738194264517181643959718956312327548612347814475995658796150006127951798920308674885569458511731999966417078095140583468513761942534504902287463457877286523452481642458695829628588818467698648119337654445978314098245824547549212205127359446844140870085354671201501506461413305995648101417678378824381684282850310912420993869727845338559384170688864251680926455526625351317309703839227365348177495996539779749583211972384511050750852125293353935200187414480226546417544355995187613202364643022933049967580191739353105037105773758837076985891609503239592127876124815375330593133956294900241526203279967686163327306554682620343707062438566731980129215493385136784173528970111618696242575206510507134226694800258341902474168011691711672008827264988266293538866092811497069707451955024028160685105319393923641865420459164092353926191602811305192990993999046760891024444640074347448839719611703314941752161421319466665280658552590587390755437841780595052478918891622720002747192682958150108828792625378783145225769376128074998137991097927625042730360234951617216491196023167927827032661736410267220241941981207489453174297258261931133660043759942514824528768119323506819176789998717026729731601291691394891460794257701688966827573549011267516728362121239636208587889766178188572454113078097463789989345312643574789057061535975255277968505729682208754627515102398803727168016526522650424247740861988947231032992521358418127887380543406077411199474533520562680948938282253842014499948060415153337792259163816679963041939770698546830903273616241752474505869160661024356739006430096252170048718013394357712575285012362654163318886131531771546187216810060918380046112948601209874518044008387605268137395188369875600721401761779440186046004610426845587856437130344814979351000355012702054023913438624605576558003173098628166101698643173044667829743504187214390923657615920374255167873588007654854064932987866724341864892774393573673596169877351192161435135848326954767714624220818410370336818859668644695815775837528365817033075908421093779150909019950111443243665448120830395850152692136923727566665088081639693796537798110616304085940026483375607007060640698232762094317442604396136211962898376708877577933401580860059230500773118661535471145249096445090907693128471090701540429627086495479005156233007019750722892328353214420874491235689324215530725989834567450769983823220062495902423345880056692335666760340250482914205893127952361096909927637248268480750591677389392083594952880724784014731958254956486127297170705368777852077809231114855641617583431851759319177866750156993789331931928069102952829129762949832055195533295585258094403924100654878319274244638369455994639567730766747932020038281120879724587120786400619346541737267665169074615145272840762800565457363533459509150586439884457714218976883380073998190368547369757796968536062158400066007349365111797749863959603906053074985556626069309396350945000453072730052934146026160295955006388218513410841419852097128012805910794480270890334168813948539245828551982458825496598817492181797928393581781613723355909615312149188355476456272631802466878759172598187403515346687233800730736659995566979561085204691693424776133059646379222025453177786328339390644555044972206150649347541037579199850915264162101759244843027673089143899907502231637084144918485269440675742966191983332445614549068325623323519714195494922812706139483259775828734540892842939887013132144576007356655113242062713257396086375262115222483683505958798594023178820262932015313443206070102037507222408881737624673301956990566124534841751597108926394559695313110406670422048675556102872970214896422336035428338154098067091083444169028064149853106798463600462003743834722832255775253184700972184554816412207723379435409162634994450815633547058710186892334596532727141704650013011934327132538372437391101570230091693275003770678741752903139850998615908566040631830070241485489463497289125202568153615476576991904589697614477559517776283946254635171743937964429650357113903593033964047709478731441839694561751023158810348859999995401134333946521489028921619865536053842312877717734903107338213661349194860518678792347983583161652448922655753306013061667847837677353464792319456977658466651390946553021715905241103392157257522186706790614795981109114822476541927870288210451300160728516352800785994551773712115915954882061495857540167081485370969781863112520623884298722138987275712648539456639501886388326136535723757390689226685295896561142447498437141369997653492703143082487279302420085966886180327639045503432057617094676541405946131965997681543680847395476330420928591140019212473477968064874753030876484140717510151857732020400379023757569005168710064207312609337794280206014792946689727609999486503370087330040467141370107503874239534768895053479916867179007424466801716180123823339945342154064883987092980304578422994007005131286858678474577230873252432086967253692775360574547696465476014138565728457928784662134342961974865916040613760276271918157779699141919782381414056647631448437139750454593841030846041015216998370346553652219511593862296416593758156436510851006730776984551749303554672034054808385485850559966935326424548543027574501515994740177340835724125507224355421656771951706533928701770655406000449060635824702051877546383486198631526459333542446764335118018080814403330157343791374555050835914816444814853300715614108737876976177510441849201551801000332355503073649397828377564931068069835199168761407302088228689213858099406989652345460470498362809047290708085126484493057954146805992396784092549302954698263547137060182086623279532429521866112757070681041560854764244825468328717711743300754189665367366044553348674394530929661961799933734152328633943089802834484095572895766998323758514531705482162298473901304657876250362995456861089559349877132166736301036144557530916383886977440685780192835458443072914864713985749691576484401123396421892365502377919863981564289100546400679614976100431165123517396514863444515290863552625987545684033910103187633453024022889048685476429517006281116752831271209391506242151549381551956688157034708025907223778575455208786848205489643910034296961884154946888320019265780062085617195268465645857750365491254433790178727649176069290117424416910196890228352842304624158977760018355761610665159331804689518511817464293843120896363573828943075659415734223531029410736309508960937566609297262057019653257416674770162931337313571634879358386752506665283961030685453272002433973298616005168771114534263226789666735493557418886633542085769650248541680104607011028751091122319349488066998559788492506875569643681255980948691771920055833753487726519841346786009341158874583060362457824002361265874751373315697713190616526259890002817238558561610590948848519732563255584951635833692083079896225888726516359383349106277083283724408958158788441641141021486121318991496887011623603764486759894452894023829658263878473880471321713355053152271939909086622714778288389227209030205588381312186155036317587979938500497931532027592662221831509247870717301848749693000191425889231450508578293295489920283134685672036625341974068317533871896872108375520385099115035223445414503632419795748437258058597626787086163568826483714821442814754611557157932669678716142062890136702352288784601072446831819307943522586844578914638644179078895021403828879056712231088976471040097656120134553830020223588569667900373729170762945043140085544385761188090571399353528647487292687691558683163239181826846143488555199841316654847321429539621399970846803232707440616159826330793058318972174269359171336262536741295957876257131404434466111655727948507313398807675467802747643097541227357162476880938542643733799114859904431326268935142902501854388255416086282059272100711107360399826189169576769833850468895915599432890830596083512671704971622538332157643705048263607921497744935325629096853925629388617948104889905079974101951336444702158634253494666147268950185434481998454486606187283238965622097490553577136303144104300865419148679275573756113932427079459869732609945839034637835575639130996997923015904891524778847135819296157785027115053838148185170897206829124040575435786557852482969074426880540601319177299774687693222687021237981328378546910396088009207070063693512925722811531297605218530546535953842725575142796018002950302431024490989710908591258956982642788059631264391071326217266759447448049274212674735261642655882972997331820623611359034483477362693266402228977949738922974188009740024068547027869107566492497644622436220784173299196493908503927949050870531257424510406776204911418061382949484588947220834185980542071818843231989280243492569768953738992152701853280426399292350434756747286361022491879851372553127452657028742903270328922073714782129595273261074728916246688775844374187066451578529388497999965088714624763524694990468984428150644026046966554280536837381797221334055876036923754454631855529708057251423498052350475236841848804092852495396750634158584582286703788419937250812529778866350503297682704748436389322264803011904154429646935402783482835848043015973776852639750629267233814417574053469136815426744789674820762389627840618312975546693657244688443832310806353296131413101676190689192412468814760932287447283822719202152971285411121171545222005854691947829661824815041475445319249045806053167979448992192464485294464601380087923638301899279420262783084305801923337671690064059994523448366463137054537626424238333397285882910832994183867996554982341659494672993840901776570235723520511546443369651442547022065080475282760928983407496191567451295143440024001116134500194046533294427597085423405578345970028913377557823654391988763964245274896135541552153628657496653998894745575968500933833273743204797324205030341410170106208041474504271839983846699324293673832399660359055938979496459545404066733863830596720072968294380129985904684279964789932024490589996491556041720734492915811083832255619405225291086465581632863111948254261881050912312473996013261583642622438278393887147721908388755814798999404868164200120294483297563280650325896822269569674063553294414215553667961418102490222449772593305643110199531566053036676149698122109841971015294915467107324151834764929756962777551375713830576669885467286448899064377820986211423008568043451828459315058295492824851501566807472025067543982338018714431814886441356429891262058558370239214459505753037593502158256902731316993334256798166791303134054480616727939703548902402222041954844248522612312595891265695873554207271859345143627216220037713914933906154499874482199891203036022852592692275583585337109241201213398100259480932942108844414430468814499741849786685632704320508998508781420744889972264291682729403364676358254873290764151762148882088085428803956081076354503091366492615990660739619746167112996878517698792535772102632406920334243687029995112124802134811378747129499515223695650448145865801896244532336397286702345723506939477360928277703806481174952400465989261512156318550236730299690715147039915455403526733570931282439590312633973112531890802057379760080401610934597954038307909456335388574821907615095158180859362791458494162696590937314092048678094912926471551259548545455714935193751468688341535551870832494681420993912168249798492586168835656077182900072256959184460304109497013944608759349019180836087572701762805883613404079876009913646877599924860667282648005813446873983427498054991148485875385275159723126923348223825929691154298203358689229065597136837679431032129209381865109441721353992940720442133892787241149308513147173253336773674179038468239026196148729634012007042465294233427825614452314423244096424129388092222208506512140316354074295187901040488556835720273010599597627731267426973783828552864012150362189083158263153855896314834621847196770239880770244144400488186970969893919006022017847385045986054315096940121779335942359703077706180755870390510683145982189379346694543517184959740865581602860898586105600261504017859280348637868794806174803554235686042547034221199124380293349560012297157163293926967147201303839749407490565468749580735964381053860387717272570695354042902166514320559585795357156617287685608072358027740523377370576906573653746674381365950819045605439855247425627926343164161829393600762150761726222130355819596710962022525279251239551244766271948045405668027532760454770388912018511494113642562374180300215078864180122293508739855807851868631259364539773955715983452925040119705297375743646850571698876066623903199194151922977063537510713944128740312487186943417437067751802172530832948112503940052575567349980413860081703467136971934159745176195052949558484539579195466024183283623266459454039048805542887102599295009153358056260880534668278279216029060127371116498650750503227320418463325217366991487510309327589339981636128695663434477473945128690555654013949732533574734371200494751489497452086963417166259964180911378466952743660103025301321380774670770617229867335028254206005817183111624694516239432963329669246153705384428745723969751706464117453120344503703469596732284671333951551122280682611876783711015974236332284688492272066745763387980153826864080857877271982183714351567523111474819573584515115744006456029676390102788865968261097805612053892419963974983504778047489360083626575878685512315664637973639491080460450133161116520462019386928526777364190506434340935382653541879870226569226029692168573986902264863491598976429094658359274959906090183928329183230570817192801168909213907686332593427057445558452960964421565025065147746514220934914116585665701886634994295177771270701907676099819367771033822624806954683506954367937197140044043503301468623594161636213351264781697649604479186970760836155752366740120260133445406169513864509954638687415722758740660402610234128680207799148474876924660772780741657982015832752851429219191486329079866496075523712154932742541705534032321626211565944883928975559254530818785343320809967221319179400820429447687623927056628335037349224309706634653122462028288764800859474465239636501297622423825824004638580646966206702828404018876953871978608664204197567364703795707300617578899674509859307346024345668664651316440468742944842983464871743274429695530573728218824031914544528427138826120698729009857251994734251579100306020879989831777750884836427349667241254647627460723534433141754317956395429084668305927152804134459545686593550005407712574689463124789824733837040774133493769280356379286383760256612100951118766764543229786334611772113026508199601373137124994256614119040996522781964059633228876948555520071259979670688409725131587556141360527887371763444293808011808298647813904791467820973138181290157342728637077889524653355918993272532804713789110007919766401638495020687784701302890872183354551672861587820767307348942300795290089262735205209717330762281285788617970086213449859022655863246303765043990415128074441561584848665659285446886936286586759659758199670979045133694997492099345357906660843660515694479018909137043776393669620148876378584522754536965152711720398568667824389254448438229915751709455550022547622749869562563513258903027298816326719156044559440449851346394407116199969926231209746948458989365375491018647198270271343809179059443572312801599193218092052413950069961006604615059218839367819615821102083254179641699262915452300790038601581884727200493376869791407566149332191277646169989559870521652650240053928819292784778409712949896877542778925660291982566789258698098503287476734821560361331913171039364132090575786501341699669482411011481829838565684586738012203330498404814185864287998425839980890896814410409853924192295872744975081301263111603173368233538984473397713263727132889476976270192934389782341911111149261616732184484486387754059527509215862475280321784384948300067614345330449664739046214583546433499068899008905525418066993673478695843671523841469657064379005623568316120885741318239563296359818587849659539151978177558911771149866716307381467526110862018416014308084355784075540449813764367911040160174145026766869688417654050255163746380874323869046462298834769476285763342623749164446805712270171188206747109934133515280688602290011292778499216854795876520597154699366739545062396219891343490497656608362313022725738136793858812481322454097211284908767550869089551983634709947331060119717692101033643721188987282803140188256840320502675369723507944853104716225980057049508450134272950511414846675951064847128180124876756327179179064225684403829297532255923412945355424248813557130147489773002046916803723584838937879501778834388823191645866867318657390275133855888039899274602819392162163768494210821914667265224429005580680608501465359448837447710726637619726737874081832453216277666232785338067770681285599540319810590358979000513990413819941364777476173163913713250496932992895297393085763062559611830813104290656038203057491058749381645149703719767769807385564444040048340003960205193797798002015320685599092701436238102233182043587010501655072739821487009085566693163909000573998908761711984506218803134665311342081005010537406927795661349099739541752971604830602417669197171233812176721686761622940995474052631722498564106010720181614237819913564721441225832105588842983137388367153617587951925204800080151670535985019201011321048064082787122945911508984322794282624186137334313600970296497725906288412368772820956210542791932426427763308224594494848101828612754516571985283300699673351777326123306983542453526958267890140578195889906808048149495110090878787442103599078789079457989115668757175763378333481371751908097347704936173501588304308591201385680800045027949918429455017914483446591255088381346008603207325804572380371470927527500325189764500869697848046793790863918312342866542419254409857176439450959282481575191155336866420765829788610226728167522823082200681537718561936639304782234388006695266858888708450922477755263883397990338537869219851036875013468324804279308234438355490161066968881455864086001911409850614433994601541325707385640572070471242221413609051823360871116176149424671095726207820372269854785714849479624435451259510821012902639755013618552642797414326027228456258875229405492766540009911758560484384653536773512972656278779240605691199323781348897791579586760583538828182507940694589839197597185177179702968101541044716379586448646080260158170330988945890538465420749999593990726651581868921585602807904048922845446629936165681142528654287127214462539121798930058075444963761474794660627531568325586710651424031076327413221196035266393861826488728980204245515349563294001769460384723276985690671705840720995166082878731224271291389111404045106957714699703771621871275811294601092564372790087748994600823528144518366348171707388927560941271135113222767331717363021247186005122424834592362022182037749672638284650694376839844334006317125418697038884342198513774906707309625731522406108653027772839415147451298156989034436691692752336400363754748729956010862311532914021985091701312157498242449323861088492680534917198790034446811377328941989900728514261402390256356055150776626708640161825522021609340887139976648609240666387853684728095592870268903731709279057258761325348178264865190784760031751086921852816782814808570272104332042045033230258232065079180506752309212857958514600181732420910864339291337849785264869865892590083575136502644616500536670684312945066898696633987231334923813255560521293922553091251643222234924199878637224201964823250035752030542372608504865266693573773810189743004732787056514905808227113894977012573106829459036598763744407675045502515679042019591603606996806390204231721814992570507430564598291246801096235020590302367442911949325131890021933573590957311883880847231419175864560214206425126663340425495482101981590376757000933229835542835247509874913649327851483712913505434163986909044871604670894086731813726030898683232630464289086914651361818728146064164384269057485771616985032901973456240650997437608097764454546253311971815017776541884837283331779261426586144325894152174716278886701134747233398817597621396914162591671663317284899624448065199825556650805245081810710782052828632562844001037891003316834095083949267722840784183044725800729033010605579776691419993686103038635814634431348101022053260089464450772348715071947852273547538863001699868547190001813035262450956051854362279283421125917899383677631440318148778267917024596853154921368997972031927753195769111219599731349706142312851606429740187124135847844729968188638336262765183526178922334836925715034588767966990415054126756174080791710251847508108662755633316545169191484503275696954267921901370658725632039063116447775573722908042615096127007069936852620342712185304841070404256517778988117941475336577717715883765641792334638957294826287412609654629112443641701802592040882690447392983006086805772086742140676551874261426450496311565873654789520123559149314268648131244104474744423298415802073805755597083593136822818883871114510243935466543423740627441784475550533082711255905935829358583986691663049614438127704658447737198924220808497901556703159691994569820778237994030898383811915192892915530936276769827256298394835496048589366650387788281157101083910900744429399094087362302418863859100944808618794439414313369599515971284797966845948840986766930236927824546542591895025933741211903061986473237613919469561014151414300567545637394681137774528301314207644289608643075411177702488804368678170078964909206216164609592713783433786623316291295055072924273690270180807174129127765901793256813095855798795586753229972410091963187247012360377215696547546607078139070281900928534692639628844021532862442833807176123191229011753685691866818299104879600622446392529526863495440987414955772137146138424003537387603415933888360008366993819283623143588921748415484642962528345332200571902913935000613271661757970519344204344047082248450940078245282281316168429857455989814314059467919303882613419179678695855317251381411817886182662454247786318401249155145702132178764498537155251832351706432588423507589492670461187551008323164401030084659549097374108915723241759633714318740867553603318567180574646459724547568751517140013056523207483555798397925085020682387989227087834691842849663949668017808466519221667067364293429023910639859680468709827505893447488859903651420393309002372982969005563808361528546270122806524602225337608126967576925124362764018006667161080629453751082066119766715600684032952494489850186958425056062920563949576380003497400375237162182976936945779528377546263864818625481870986746979070272305901025922772885811626714627416842203099814018520505171413961230553644913227303328345826572571278555425575062510011799846706997808059695299993194782543574627542965950191400953529592606556678572677785160887266145276963219058921997371921000502890383109911857713834629554381271843024834747120275188615903924680757635269787671597151519631863729855981515875423293184907466016845683070291008843027199741932950510121828639788351577657709313037992951198688319234940386444211983213425348378068999063357527270830126682333996474762883248513921725308971050397196385912687054482042689111752897104686761083089762503263558524429843496724110528783733573706567122923561832720836601276942409565650072570358011606771353063061389447364702004354403775490068389296972384185926882290023103758549847003131222995548907548948588000817877267221884411884170956576697964778618467695188998590787080679094888605761095036284359996616729966585948661780325147663956581020544570416075393069716023343827036792724149454846566639135056104748878463406898874965633452789430124033224979547533291745300860669997585490053685587456368607052965168800639599704394108870872100675209238927532566811683766510553880110123491488709020498068682350537633225214635114223252829514735733693718944048694149390875517826967201469278770485509413782487590228077809815305131721892807013249331820085240721919863314538954286326635666291196153999603732305062111556441947378204062221719934863379933269382654213282163236455047669339319172249324146410905249841195127415555908148540029697274243676301198238487122986048985968142876958895930061385704426054396978672560361807992483708715177682471585185490183255390652985877631488756742079485492844551761252040182044196238332900088473663267275655309295668282247860276879546020974034392577232982394403281758820850758995478589272739756846430847977482280891606656783605743270461272435716261686969937618979677503097224944017074308770389744152591819903257242830827876901348334097434094760458943755343323438579972324025778595324449809481692166866176316402277688661710236769565673935596139804095219298905676479690655861603781554444563277919200153508727764078472638311104571135844246619882977776724639117445202988835283715029069903999058173203750226789072435575743950533643393228644246424890517290755116956516885002283310401119933714898403964632767057036741334118781164073829595624467184963710476944361748682099612745027377026462010694377350379201135456900101110839431272919442725409495405069857817241131087676099435379518208689224378393998134441728087064872183474545697785761325922902621497825570763884164494299120146811557280228236429769377006277943826867649746957929951911568915477944073145200010452639715720085548260227768478780890026031946327116304364626529022205734125574808055869304053283348479667440284933853047140404940084086301211313436101962079193229943357361867993977513614742131171063629378630449268181800951031265184078304238165728215443823686523986360554511028406958562102847108906898209600857676295593416936995507535759631298997544910986837204802921288040408033634277463015443469804343814108827148015645736043242285635052387907626934701841978845357740252360257191110283920294621252558804970570387456709080355156929842281108003776992394380519284377973069568360308711410818028956008544285914329149092011590363853768338308487609294002092713547475230564579156221948584348107190777764588306422811635928726533489801651076489455783638516798241931409116587409627177677100714147894392807883286623331000601078956594035773422373472477163228708250798645108879517683441003293911434369713996497844024691485512407498307969875672206381940170149296728324358451489460750494896712808332210540332869179322998883467191538148361219967111474031636194037598420455531658109197004073145501076228139980416514823622714177539203098237558511967886754866540788381249031724148417058913151294874213803642686245273944805621754254464872810657425417765635616547059868770464414932895755894558404079926793473189009694568407841437116201409073404263172360393085746667306942677865583425715866407549634481818555252405410748721892743539782285646793629349327976525409137296141738889972291385426768532018730321989990138927382428306179545749232470366332470432596635333805710271791773583759225257376795045921121571370860612526501544717557474059806905316695838847827448290907861896373602949275126677508302684258046682107390801096667071097990119965156925844587120692405122275003264936741523111168852571769803522571179168932746194780868535852823936597735862597437741306081837718349050055061451357893462720954856634988274764026976866475823899951275813994580199134685903859936696821803648654452503218841698507635677319412419822784707228241685045031446068299859071572170723276869136464933167643189263852882374627562551322767341159694231270225604820424793605524808287296349181439247289257182226137159892854502611754323685397569677730165585592271334310339677703142078029943260871768706273509410893715742012339484252420749115734318083371805068821631947182080250280875147201890059422378760253355335522805674243124908125905256872600501811556292517445754767495293046148306973385987780747360905201271583699499024883068221979406940577423937575065658499342665320263472274008164585817601780296180252928446287003749369483050138584805634648290409786570673307709394325512853478746575433266502827044165560652467792388587656383872619739433746424335645090077159862523734114382674903155826863083163501434027240280885278792109933884624393579272601047550844586752581600188651086367396277686108348997064732175280545436026616351040558945096950894511839041698218119700165389710954368447384610471957867254794350403773111044446111733714239565589146745024019363719762846634631883721163368152966721918852285272267447492919694832950169418500706298269861230328029422840484416870209618330440197939691008935673208661359769699518603887915357364347137308934634897530572584178664156545028390046467966235825853150664689569149847991048883470306303951508812875655991687671523627478931751799273524762087064221448246966285518451561645164594761852218587071135248282254926567088312848743979266768459191697631173084428499468676154146531680383097719150945877640102867210531379148998325769502564767280015506366251885381915227726259848810388761953436421622086201236284274686775903109849199642662752039080323707215845492798242814900347058237199482843258781105540111175015241469206866275623917045621536806645001066655799192871295807510178422081289413082670561821922790771666750492112176575108394087851081953935349224780551811608578579110752660062658788852147861684784338470100020610523917020880430142543656730850336549835037842219269836203365108960728601792183016686272977334366858730336829330423750785302283490094414794334263293929245012411564011100226330163957142604603469463031782876628807290147053583842848469700874953328532534703472603941543780486152835224738653051148194549275846744960222789297888787802153045731492714999629427281442500414008228455187856522231857485746443939331805736519150824424118572709124039662181273396880451117119602350430249676462581113374208134987373289087787192908210947526573648141965151137015758537359865874406894160128169766324463178668698637871325866744152610619556776389166669689419606401628963345073110641504872071924100651849980417758487179444874336020543536066233873999375379807158732163604544155615514867909843784516345753530390396839944948551774541756917228401494082692883944280936595176561978282195788000288628820783771720838268989093119281062069419567333903465158388543223360380281536463456080971576843225740223088870002588564754786168306319226370395054839839415678021585799992388683203442885826064925389320973615375944838528707139738179220373953463525957200583311264461208714014939974734427986209846020356430202320971897377345155504627628926121571947879182903227103279677826291507755120808778612122396345232243463662412318446522084748823811747353030435009069824217390616160083390187690809483242136001997283626973628244721637128635712524527381857712436905375195083153298311889156482026969743846069462016172330915087913397257718903012700351879283016498114590405867863534722906806413552892450776613728950993966263284171031930824225018789722631872009770039874435125870548086310029922731922423230164359636491876953945361590937050375374910003288549534904679307373528993227685032243083254952524665025552662343033649642586682626683041883513564159817995629585390212029930554214993382206555862425108633303961786451445745337580665811802894798475494265422429263519679895205740416241389238380617834978665650577512623721844577858650291560420623651419882615462490407066199289428662113113903047556063873225167175468672909253965500983676912250118858032536764292026261346907165468989992589068488731855844397637531898803403994226854561536383165524432847040143263439846309327996326080865976922980921619838705742086763144318858962831762415115192230170133396885112799506698250491620231707189471258101481288097942964129545349127392441819072352943618664211173997989475578540970597352938276253573643125061827827127672378439078411933640537760023461398683672715124151379314586674840370376284529490333624520934974006204312352651041085417025821103929220726520359020478656386183321868654282510982084669904141221565212745672876479467895982352572652504020276411873096471266161896930313696269603320289647695359661672683895319852685761966162539168222593567500345382284790639500629232696976286959305490189268134846354547971811338853789868276719960542915121134729821176334321814689761159535473412582814044515766181596312011622033768277850219471708383215330653176063896568990040279111009401807995333339684894419108551184111404599604332093340162266740888652677496257568262218234505307549951737987965478922233737262952707246930587401131447200551132346549910875126862586184019387967094899739878941548137502391067834396790627033136383518224573237919190435047476871665857611718065245086020770849586390808891769164806437961873313621630562968746909914383769612521054602744023074491101047392981180041061887935869735633245833226444865683932150195609163292619801207219648064363225360002302293013011794750801515780557270658881304190080587477239077107004210592772968569007829181951411548738497759859286443726247548177292512228996213231967750897544870426378588906248987436645971748744820529387352664141146575596278330897239411757479448374664721566770953726301869191795057499376523170634228374380619886408496190452295915152416285101448809304037012285542829003022298971237921616828516382990076640898448747199064934039974569408615871857617425448381601440520468463390846786016728364160291739405373143720924427100675700016311521818672115239881144806875459330814780331448177847084355976443220058994063119029703687663464923123891326565081361276678689318893808703717106098672185091850445752586638458122489578698962427365030667349562519447768895124587488131114608960931779903795043253598795957464837856388504670474369297702969573245601396067161410708545917561638589331454489579325806196416241630090169794524894492773888830189219692977835238306001088979818505190670986146346212422403679625271275254121255761502116260101488678271968027395656421975110742513339171077811168502287832345474063473277700626520645391355465337988504843452865918358715466259822803703832678966294797792940579462892362019728787938666381829967796807262723925037952130831953433848363856633872646626132738585377032754362038774674314812527141875828251086774069069782513740146247671705381892154380046016225756710579192815600509759873738615181027119103244170230624340753913599365258982171804682171799652335193365721140854938261615558027416622989677697927255881368572981117913709864295551250788526878654318401734677080225975690149869558167085925539123104346742780340175180434506569620104894788947272629740078093588232380005464432672568205863561133627718224800618968558896691078920913392862142540937476226738864488368363277450721964645433097436259175662189258727345894000109688106461779960990302952517511472695307834702837144997359162807425327238335164992598947895364934632788060386286187844335536909004414725955585264318165838098079036279374813587230376596743184989640292270137306611486478177457493985283873680998653795920012669377809020855950351652200581007215770164045805772979090692885323853561743633341990973340403418451157293672808474206823579322426601893375644999812254011884441979976000690803760772423238086747271423591893583248644685210387984850709496554786886733955073291905794224981416861853623470115940277907938410756342133822297026400775796569358390403139451915973611702360380706498672426681039358030080827151261375348230904421899759486046986076991443270652793269709583250895661089038981043396231459830815552845916676633761565361454601392239491799370801122971440056026103294202442324549193502484341273763919314493988793505174775997090810454426273211385515767235337651241438211408211541950527593791663472673087577060275473864139900850811849338341470573820854019325564930790032520705582410289614930235621958323777194227471133282725417343241056722956704072025972349931627939766971130136979616783680294290401598460362634242737810711591380435753778866555859845286626576750900554048403980847977010554274780238539001100571481115554556573105670934641667805343013471124302049950456426581088278457368034234297818023125838578445502725362780055835452882742632200127422441895792946330738817036532432312299976346090972952243496170601381741546901820221951529894363954557395139688029584994992582795141953416118008663343060348296256233866866661600399614200589479237937602413116799591243871159717987906334604821120891341640521654639122314045359938657419916484712289577534744369483596201583835488109967657364987380740429946906807727862056387671161208128667863767528106828176501039819677186009561858371739096731320829046166056673899481961722117150939970579739050743068489111638820270283676878334151466125510533005388170804603728733528307968408521434247574226266527186593193837445644758047616396499191184985079058654334429521120027659725359288707824973835428037735140947238698087575814833550471396857425325095801471056871915059307986496285819151249240720796721472754913338791604013446940802664916843327679627799989923951393785551929448927356846423589528140350518189367690273409588265612779243324753644344255245303561396581108256200634981919895953246294954143126711558213012748397153831579305437860739014639342607359429134853718994777117492024739153174262334801925995010205441894627639037962139008156098860242232800006206078544531886413996886073369446529923478668839708757194605044941578038206516486245024000579635299068280943295497243052547284053315195614875112680089655090166884002666197266927385940205750228460521914234481123963181180660558692647852411026039180024156513282169115830564142394244508144270667714657964258954209800173493435641529819096408887835410774393590020901624506938644528732571454672227554801908914390194577087342843153972666142971358736321071559509647099308742615382185946308390731619288723539064317231848951309790969913623944225918820418935574925124574236908225563362725685713921735459856985925392577567279402534910896930308256194083564673677765226565918222054131562550448657067635207791904137557303028221218759619530215376054205442734716887524942275836713053455861081369242636485419102517731813467499709776817540393697707640021924717752292326530797891047414573816233399597052793575126261032767068920058655082049375620584852437931966460109416944098600885899867836422560072385791826959545358640685893380131562309533966390261120651773250931825169463953058581915233894923893446179765221326985322118131814060946889604370177286175361388768372620021559696887101965396320528475448349578488201198144498057382919423456244378724026754580638179188518212707377971895922993747705628834660633857994916246925281634792271565266573731610934513413493830858703973154646064115616529011764297071240125839003074760427739730861502685210369717749851144672032287950044510841514192517358732409180740620993269067570471061682223630990697016830433517406761804989986353246405833915034913038755996051374103173959994433404448981403828742146290160667051087935280034337309884341753853522705729308248495367170964554724488594198253626671730642949172256622201495717948347644477107578759463929795225459103177630310778007911714065774301075596131510687665508319345561855334944353669123434632357512214635672409981638311698744283871761520989390530208181740504775966755378052272461820370244677686225862578826618767063687200848387997203537691063068499725110160524570429269555464195757978377465509124815044557101585087918996635972693863647000679085282276485686903012881811749037185886415192458893008062213133855534096835872506022399505069911654244278895793550939621543596681270605864726209921470518418574854292294891004494848531426623978927718966644314764095807372523034339580244827356859055765457757142185621514024929444471668097391619185819224124053694899840122673629080455939265026770436011045477812809295069298245697388270726377756802266576010866988686339701049843315169698050452727572216665871993383991875554646841239680422557352833424587938761759938839385899222537934017871021791260589890090982125446811523912685840040752521354621347528773729256996402947389238306587327614170478803906491186163458827240950273274814187363265894294086090114117991866444575324856691821186794522103700557035793355285638826069298336620780239689643640106728720429893452699882435904477314665539537384040630631116114228504460026279212531208103803477459915509611145358579049020476534667525776494679233817017851520785489092969264266637884000049617990519382431594241524721828036133386359656682425523007228693678756248419217730443607990825399479993497771812160244246839076211008831801592349014507767734742155930120132551808834982032853956441328107125467699717592579635669081337975584827040027598318159440895834286750820752709444739309344133344868688198342280018389887425630387546753557921368764864885738413616663314709941079473793808285273677244327640200745821748434931690956276667268362602304312636520364653027946778258698068315893082330018975103911257153925508217016716776550381590901551177278275265288130427629035678612829274868319258070467374090289877578406453985975448435444507884048380058166742874926690202422581384256332309592627065874243517033443500371946895728745224460191631562397617198153944562964863420466439344636583838370024181326804940648931992429361353738879831350491275236191361578477772857455979801102183104867696559268390854663199965911761487797682812817697719119234583752569262530142803813099122165460645766749024418748864082211579346366719867489929781258014267391537721722677215757662813970855512209221253588941823198104809034680472487976888097879930234526313728704567472594257001617399212506148066570821243356950552523544864288514620056452465404446513435592829077928391506164925501272158767908700487812571434798286669271513252379013589172427901753339529822558703970925205329278880767040398097568076405959924108183810110528048268307838485892055390325177155637400797863147780250578290087666355750729591560017970133923354764690494839430118575577786351836376803235592171861224322953253402417925516742438542141101896792728558086663114832753251548432148385870105378594091424052793660578260534467276275660391428446764410638060824705490603111152858939883299962187143176043973031926895252351385349580893824057531925885256889644380260652864948575236034429293761220592921821676626017128442663677224277817584463159407578491598784393466482667441464275120533188964440956164167783656093315881294545632857430638753478258291009195393557539950498018203125891266118587000664141085486618811729286944601118564591227318563875895980075572828507361509111432941199262446116956583218648322407600909933517962786270121817574392486060655407095418183705739116840384909383998982272603038271314671775573362086283284116235739631058500895500965690198241570361621567528767612200019026961582420724861059587425071584888838329297668478599399305256382951005264321343387682260080730229523635230087651091522574646937241272426367831589864348604306750491580975442051802240718345739712189089084870360470354793225029719069558031768503354258060413838491981303918989043682152681828492888603170050335500140814029103186498349528148803612221517653352688005656295968433138388745756423579937713202542456787318694037204197901709298298085732239587429481736351513374125785020097302070079208585220186620314506060843710353571593314200410440796936311729098912023909032793709275485799202349785739739603961152480152635263065208098545729679924348040616687282706480180914110475978286395762069072167863216093738201437621897881325098530482672376986592241392264627514638655652071091496911568329606084536963362191143024967907541229588344804590843563269771689998616306696192292267640082130503943877049069708164261973378384727413345182596386144172111527256919761897100633045637063621257573650659370018867421939512743947691466342660671992244537699298733967714618281518900220050997461651052242037111955040144911417798510786480598016163179931215079634215030348780275161211686814435349983591198475588046319796363824418152486901326235279683177173835468424647955223213901216006755451978367109837082237729249048484758590439386383618537518608487577802312279136637445936897281840229401150598039830300040042643382433242500886291078283357636125046408514397588355732576349053855411106089178572852694407807025233530937795246125042279513307494549949775344017861333308708337965228657878946840288857076497363558492871620583962938455940843230189390921178231000286592968518781543052115278137503623609644205044631363820644095128144748172182722125439294000120405554548418561692094663075503479846351473433093341251518734015583840525354467675826764482790688508613671697845937986109611255717771158546807400498394171096981295250343351230858790078091319479120903988755329212880805479746933103774086425235893269169258331604030907493201667599002044070948875257902512550834100348382419494582929728854845206240319901807413821903999091446347148209652953133488021584405442054991615122983410356080891856976372597987671158931738486920858189094792982008612794332506803828427928117454113657036187133459746846058484386562913382616095208639734720682248310001517517656862736912929447445647884177885672766383255642152329458931297992700766167804043905169106583967152245629464551805266606455570455992372186938983644550243437523459867104011708484524889397893668289031560040325390294298732730813434533918719835023513458901891088804148320338962435659890095579756568627123283820332167945025754067340528267219736975559923417119050327020048626966409988183322832117361459003069153530006013214040189799731948192700383527279804709559316226708022561405767671045215892394803704516529609969147737302102809453371491519045912124252744839804799244170021962958572369208376131379207331891326234280907024725153531296119557670695086281027557241795189749029330902644796393043950680271171908799193385578098814488462114052965055163429934566597852438523469072029663235356896167230999957416162073838294556822836973276565243415769015277686551780576798655837392913356638631884989713599445298571091992880063361558143086585105797980426150961116898633997320874709480496455767813520412081223405383269989640268356956079973787390577456988794050020445219950967586587663115874305772608524484602251753873444418535317771229782752866136274686984115365857697911387104883749615956238565143603904138677770539466379630255804381801048488986725082748003418433494173096119783738147671827751474788076988604208840674835919989379052987721563128243416006868379612588031468731462513727504835753894396365093417003078490255661683823482444638040446159805151516121570539079001353140052893776100228608930332962737833322853979402175174437080061725998754185987702805279854750879736269918986013714395363161408254283628021982328918448431145853484336917173377652167948745549126253059189234644532642509376732820696260024285874635431595660758993199409516543147735494846313644850490286650932569110407611871379886629316469665839713262324662774541413403139861980315743730830546230106923846751336385685406388882177973293557747129493290554328929946080231404632599611099728209594697817117311433812468828300643537695037831734151606755963346817409001832013205459995853579530380533572951252955124683789213025417648615416143361623571605054571884060056039854288467159143680951008644918191705416511972903714855328665206502830593630387382439041859498663780372765022176743051436751878035131501667490867592562189020056128187751672984585454940186902776514918415193633881993153199559047963448953150615984382021686223324868842803858346744808945513005840227963745016016022353488711335650296432269525005168165148131762273398080290125766148925381930651493250334510460976525618169131356563483604907518853224874386765632386770480534675161110548304705907995163709567588940634686989063360826423877632809682710601978935416013581731696040680032483974986965602104251766913433722294687091102920347882644637404424027902630442080521437169953948183241459365581179423849485050234897022919100209513882604266986291209502267184503270530206631311079356444929051323298302548300704254924571110626713423027739934541278391153239872465476268906857977163988866426437846907581920193220062757736731856601231830547854298281221199193468670563413394994459832379570349615444020770383663758675607743120892859991315834525966447461651699881752799933870250352373690868187910564975288331248992582358983800367552464663366618180488532889625644896529289394940484355387791875698631755114667519712643313130836833029408290445134543167725135193942259328109433881345295692161106447055723981974277857262522855941654067711252645263692465477202564844140620511537042008241159275228888066223758522950775202384110875129131750382115874690232921654928596572582107631493518299379044602326707736197948888472127139021520281247338253484667651640050436878054681841086538322330803634069147983097269021596881697663534802359696405326088357156144445605763797983840117102058071835660836704822947437368256735772024704374400537008005913452021533102593342717359238726604230603745209529962534272216562727212845024907371310112970943778267208340695973469059721653187297675631060890369396045963563995759895207853388398169551548377035041344894876780763062856780461833239000882333873413778983689219365707167340877437195570474552940722751094456859045206798549200340418484178189131992690849412840708537591178181119714176904936101762116864616474076538777936601982542656636392068960960071126737974193504928389735135380619029762517844085932430565593653780810896623727362398991292949468327086813068613628917508662424292019227990513618994258071261469606548283554263286367439103977274732109244994678731048443368615205428924590924711345597058685908282227848339485875192286110902886323198235029612529270425666332647695564765277914372230981049984859967676210578546752231726038863764264208037353399580751901812261434829937184380381390419869926317080883313933667451890957515167522106639290247552518985561887122354251088789234819520531920826100750897940160114232216540035505344812421429729165707787415777430545028453180349183075435175320094884947667530309849299699551830944213053246956469496930021359472552909557806696261052801987304116828315007268638854005119922170476953091834542702852712747610981771400420964595756948436344783792184853843209519771541468573693648363057326081746472606727715609484650327305903298207147479356752461401354330222062199898982622748057696805918172334816956956174410553038377270350275365705626168770124745566338641220725361937473545025240988063422791417964006089611384387697404332678527208368735541896860336613813107020810315811415048563534223268979198271041985234566797541510222568339174481088175213286956480970383605920017968101391876588250181985723050383836987154942138819082528950823656865078466688559661543401706437575908092916118616939439831829208193576432446547500224324119450156240533949477498160985525302784420957796606186235853716455893118249814282435070501513325251095409413852075155330866858646618641514822671670325810403916268784724576332652855163713455815689096311360750728945869947588066750253205663637981715543608126901410660833816426302962505945622947477251212323043107449238303996162343983268180955234052671460823095972398885854177803029301201439078613154290257888889800449272637278473674804317846862434433743302580393103623497370565348382140650882880569846909031588876762707844254720793441704148644333326696615650437348375510492144441798649946690162811181808437202362454567839921978543168692529560571724835565426341178512316431366172342692573998413907284183948549045373048915307450914945355018952002225281382892811045194254589812361379838238349487826196606533472224476095380167459473477240572418346291868244247361462434772344974507914069466350789856200966332382848002648164818570852046818921989977550562467121807214204073356357751312164137995196931242626734135962048807186328511871047625358181745302405605954794437818870401258962012794520089285255785804844538799998214222495801445989451500884953309087805474922723318165467171842150987672034605764718313306457871104552060082292136598876099759131728031966066693456694899753175631078297094189390217277112029615346563631672476760309479061069765709854918481301411089677500064622670472976819590718267081724332193301507833775647781613975166473618387216245759512307032539810326877361904223479577178054622945607140981558870138059301063727267548257944989689562706748424459839310954566642699464440563251527494272310886544425774124071262409447744285814150324351524346271251014129736807047795314568359583862257060762585297089610534410645766348908286715085764794413881022132211994534857204367339671837782857190635137799109941158814892603646785214710938210792012461601208487565031936808738454163603257081223047339866371993352444942391845257371622751449403105580452837272338659225198261241384178653276594686842014604624999554870415302197115558944620374377341294226046824484243399688781574902694901088031110542682008731178709799282876722879077002652804910723822200141836586700079392159809175170270275968903210583962196426982087208161273565163139241787390239310582175503554978816141446358572944876851164448633242816504445705241491294419162158386230762041590081022565922812323245425290763216597903122681187137942145289383757482991710008905934219931432676452183803230731847255386335737621154087147738063784040938645401417604531305445088966206894976596911048532872350353776779193417080867840628544774818184798480923854101388532472991963198600907755851351501403256665986366030008379207166588051463899396153073874883154280137229776421045189516070602778777329139381143864547504001480819663608747755495537700946191638819020512279578330949904662761929942315354049308410397483967946914254276596599315498542385291213324778297308097803438717818807342665549604118448669856005703612308261602423403582959566541817065682155740874688636294343742195874869621984297929090282637204164405608705097675856399759637554907802748572992387374008365855563322612633795863033835615858529535310359627733419620635020179129731512392294848478471397132933678577573308267298383962803675368300531733426660183263710312945818668158155986309811425079863289707777065108707723226392488337213851477917458130802671403119668747291606224425221360036349581120440158389583016764285360206658400992645559359571649349690261679940906015628181385760383597549339024030631218442183133127240071625909777939745549855140361099263143434287564075906009999819586934956695253302702023726499675049012027183718248094076698271127575452616314450042150648890634765466093679092289981283698422311240704709617980621306328383125573636561156775593311437851336612452759801347833987410651253022238108729189165399874096114474801244702551945166555319705035689755219622290037977558515498575040130308360864950697813616924937764138125851930800724552187270235968332743880108582053540122041548361726760880736243626796448690018473014366993302291738329780927866758598846283096828003161849029739239642890954301126067866369851499257915141793642571780851078201210528367650996501598114099425407490503620912663585699442745164856493988623355870478572501915646831625773480608253797329922352553597802400620238590836678381733486305271590281538326169302377824045554955650824668432017151898294143988907244682317988810462476189476316670360655721992987687200261593282623585088922428114932764288122226740682215386690057943402561141645367152902305707761577895825731480750821754538805153375917091836717270392930040647013017372616691985124580680434521627384528774108336762164837170904603570253774691723814748499309543934468150667797345540507339912972852826653522286130796606443851332034713501258319150393978769331496575839604760924114549948474886439649111339589467844699705451642356040876246630724098150602276781384371224611790934644643386836229617329454029508818106969735570378610533901557508032062998591357305395023535907560464329126529350729891532962616834815913493204524233627055559578743644990869500186367827924715218233032345831936293538161085073878876528929342572486743839975481521554526015646247104944763982263832386045490800977409472449463600691629474392642972388324812348250817039220129912470651440095370671175401357731163368770538498048283663402576690813335154775158587676563791372409850038229420946226986777636838012386584327143161784428999997176934799641345570141757342790827196691272928170855062998742593264702631274536420909124284899327946991151268753108075161928816645567281451897112278132819824651463717937563817134964199949459907469013422451829948363580776846061017805380476222594115965426803622336176531048035577588174748856058073964009731278395420819690506875138915545020013138924799204612406127032310403914660384361058976233161706185881268733440196415250618177909654058878223636053834915374636611363570317200183706530653324263222690544014768533664376637041241153349427027340073201311282837975213437917502489636212232308851527101462519953825818060137979856082567427203956961390228324492758850630509234943744178904464095142055715166168348733273616875190312242725439362846019824010578881305009562854838760282390104585217032668991274465691944327179491815319265121358674416368648877657436131732852468481967256520491853937412851882616227660898474333258627181181605577285713445924251294817339274200465634817491361879077592684153967520955343885478458971590432054662470437742805191916853022075628134299357557504511786153696634565256996146818220262444244343808195851122321783508910083477958018639165974113056209108930851467131589478260813330241361362028745199213505798748446439773783886884424810719728191437856147720207383428118856639386322161118883525591450920915039451561845352311417272786107573130053188439422375820735350945429873822525335889145468440134212502313156648508636869469447898873002540022350084818539222011611507349916126167816800142226256978354388768341865037538680484679224740172210698363788691676351291779515447253687598679091127448470204341743077140687518675162668846904608791590701476091920033747047441880771758608550448738769722322438794975423838565214001266671980091293646290134277938889584124137338441655701024223677877889041647740986030863363890814303954188655312262478288965517677739398521971035852201574388346617489360522460388113490732271485671440078121366429767295843293740720714348197168407721145089521251564598675053345381254000220804012467512377497202866219514553233794701858804016366499588039394292533874699077982335804868531543888874344497106175107759905486712971089640748424274488813142185058488608100773266691740958927084222785741849145766619575447107730987017724534623784204167935898716900289471304603361823314027408116910953203136504603255586691603326823012963444935535475855622999580312148615375661773906497232689607321631809416017759789032954245552613048237311622395464920880643833240232890062672602884709245246387104535543189274649699935361219760356403859313785372141392700281893126902477729989565487346807287611826120396316842524906174677114010466941637279937484932623108619997585797802118833991685214463853763750417553990744960384111355983769786127371176645678039786712916008335951150893775831714012979670470051586440682882086617667926098084939016578757008914023741006987328656722792331228447070992705372990050136905469852232830059332253994625811023206154144198543791951128393718978056030112683340327267612627767110864893267683549354133099866854092765623031081029621241462009730264224383388713918339912176631220554879572728104700880039186035437550192111357617016465489285350512204245971785110119209951721307025329085064279799988698283818979094132078311780656921069486222801956121063390666203699158470698515276290301354732115115603554684087267489551838603245804579650172415472680545441649310008091890067468641409142795288460492555019295249359700399142700067376290664845991941092941334641731086040296501422289352519074480843733641185041886155387642589779720992758592316912450918745215300151842277872852890423438872980132803984582762635412469694999118907764406005171518386524432816702484369939018642392759882180823651597919374077187365217850545830938209597140411191957081791820784258025752842239505278002505908988552593794452908628840946509380961591644486230843132465167866379853158465611554364301515443517128840501018564206337478808021928482362549992709415964136669190765255697918470582079777927172363156153742098517852102772094426011173772850841340397334605532893787004570601525140535125269706316467324538910714416479537028784681300469074334909140588594606236530743170168118773432288013859973742322010172222492396312320259884536746236079336057122806841351365366393255766569169387614279299082183113885736967711851035053194540742850444316399365742783774240873554691712172927193671489201301670281748273964486236572244282893771258855880964878918496914049531081926888164268511299686263524373934218458556230700366571671392443170417977905403607557523717867607936814893645736833919561441441923634128005295150658198603468230612913144071688951299005179253280062860090519206270410897647730840970491411288975728457251656932178631889365073434610542326762119982047099058503762882224296963543472351902442718700245141815344488855982656289107058484699818688543800215899349300314033983681834776134422599812013516441445267449562720954698696224359156370792184663780764428037116489519570416790990471072438698158859471318483160488307780271866999188564778477072033966380611773426246171060174896450378215097866756992372895379335686583108167941815008658908967414398846061191761188851886369926925843131950983413178539212582054769147068092552410277547540147394117823588612251025744605242061502727738661246998886364558970965510652795195432678150909418646584394831703761785928664972544436079445110014809559267973942294631578126536860627221815248715031975094174285073904321633445403569747102037609593225653746004932805319637013516366425555777181523624720281411185696506457416297954385781064588993868800784998573707321998868215968345682066501492146840252492096451205726363759706532199397742773558105840802801026656859088859948438098586078208751551087549018809190572632693163664988340309575665464273605213894489686242663247513687033004079130067593044052758789204878101780003182904155227537951086145624635547483194843456381284467734946151426613578895453218302536605574866799821351557399248504482066228096563037732894941577654719117356225756143050401299809419748336556439489434898626952654105122429969819513385197802746750711340663726651874451600595898631652341288082529531179408790062646197516089252886417739566054331111430047588405256637584255915338488163402351906349080032993592353644746288101323060481266126875019518917016956298740896016325235903983326319934074201129884006430437754818200910235176154985714880336961634892788520200651830161026965478465620805522995337018570628446312092157148034753294257504987141475771171230343490618271426679462610071941972055582519756719728443864410016071250348643140533915986283648669921695005942342690115770139274744779922988445501035534356778781315729874641619314240962996840716285340677049949751094752038215798892181881565069823448831493639154415767028312303654712663620854397088795576882687670197698045746064665868117926444102785702315288889369485642404164042882261472485810621764820744303461425589802061957981601810486993534743527964114803768354690985493989127884832159451881045682109707131543219715804742283107448691015400271517931642235507500373419529855325962047042178323113763365615109289586033969561364279384069686680767147705682376269629716492091343799093427757132259032019423744949641832148243472823601889796038119490827751844153258360267919327992752929644359573617462585974870687450746102792538856871807808293606459628591054900119390000151889235898837812059863436308389859156964801333869655528927757398367927902984574720372556965586047503030494151901136096309064634610511493975204812708245719449365088982018569230460969933347228358559271245462377527361950200993799828979493175963344226560705334093760217437280552882205559024976110270311299951069737139174476098633412310493912314323206273565101772741295994042693491620252819941969127901530481198648052978220058411156579378939583348201307743725447183479414159522269917080085598033972423144021931099587750814687560449123224219271003627567968326610481603258194071750001478710551353821156668481045899756104081526570199628829998431019825392124292876855480091621726705490233172908424965253553365779342631197336604170460144023903917908177702668572556425195756186262068815650470035313016912833254793476650373675271420750696275777258538651638460988511400875626349466482159419329750303144302631769277274319817194202019225426886254993354156542552233365850169887764061044157538332509539847755781239024924975530140169713518748087451349683964985844780131245381701416003795620426412675850300509028434715933368212206606715272643753842126249349598768555423569118614812069866477384142287050101865816951509897053563321671403099748575765331127086542457032938990587717573301750263825813194615824376557756777849554754468301060521464745583469199836571963632296485751019309374573615341640238166582797105974519380154449208044001774987450519976065363047935198104979168361737952213697996247183182882763953540650017274503070801955982527618659018542601136942963328805648753120884843280380475885660571204916515900566739944047237264470437798645289670275141136431573662591325505572131667691287383431622408811034988741761705371099618732641404682759437783432145895977661256166775708190602518493114249880495489948706545430908885249770403038515699274930367923250421041188016917387295817760665912316362198661512332596945873760948815681599564510115350932562953945471236792838612813611827840860717799846095378367369992504381001092600545336283465889174992029449739271040632473164348539591104221989357606282932273958249745316981357337574074238997329752050438491668756827814971313443054238389583531883198175501704493326997064813190012057529700708764803789649716201455181837060398916927908250888527681675861092012696586714875544506121798262916239498592653739347933280316442340834824353371289876476118342988881426876733687706715651664444706652611880292798513449020693067128239749064547688358892378048430016804269294962240408255678536285179854236823456140713966670804960163669238010335407477621320122904198777423274417672056093604646293214973027263919020672254556957238763276560665804900141462234971879816958974567915570281901161958299419683401979819880329281854275963329239143195123802042246689944470408154770360079595307792687348428044900418077677417771535976074746832253749446004867699457032175653476587301771011667220179968577525073310800680488853561673504039254950344544187522592495548597885297868221980888028909606049348955797393592819372894339625980394941414922291363204986741601486450902520511680713132203821820793459911403913178643065249390495174669585921256626750153301659118757340722525272397396399962902313698107593070961668545332028087547415698270993398081769516872019499502337390662174221306888842748266454998400585574446401981970344316872936986347636734125869969127797040818988925777342603665729709242592416132144187640907146404756967312380166038112181474240913378105890813579887462397831958670475847980616343131638716007865338086766423777289032146011688478969211551371795939890594526773555083114273715843302065483391254456431627060332007837095273057540057866602415750742649414676512631169337000144862406384481166554655279997585002790438262850930301456512420893293318181212772036006790751458429570418362300170968625073234612095438903446524720121262785218404075904705195962896779318230288722561519547020737468772491152366463812563448758642287260505647763145762294464820145267795963982406605011212474382262377484139055282791560425720427439955373864757502798587350517261610796821161884954011176251517625186563707903932681102608698346778202440990966128706331748830217789760978808305400302892913142221500699551470539684794198275071136251414700795454895061074466050647802181887744958520848015754817861129650240281346403662747277713249691430000896208580328596571129406165405887039029193405175717992935049174041087168583925671560905229632335371223016282612253758389123943602233805505543119387861681244686406330709227814247564172080531122196450066024471665349173849792128263464875104658040193513130853167789807858692476003069501876502259714026849369090351026450535666246005872335829425848419692988938311411834395530278878666457078915767308576306649381980981947950959317944448560059332081561846813567061955085286979091945079549854097231626961091185013758469872104880185050216376595575611127454748072261466689862841311491552685387967573554791027050360670019491634280959907581939768346250569337034111158483433444937938446331753937237660397160028386487390904211893478192655977105716481642970937185926180288736361701995912581262643420797639407323874863487362647303346770850112570928039204191278961422919993210351210676985716112509076876761261840531885461578316671578569634039792354840770113600606768734691006938870608529053671205095217657267837826073518548269004739949449057905713211261697099178344920855806730822026646774107575678092671689690380665302584187089983622963752199167503037696003646938791163378146019651391975894084288752861320598662877313626639249123982466057681359329509669254308208216815359723139078393943916188730169334885841156357637992167607108381495213666707205129630391910713035476731167287232240299099806083704537508268756062029306205426292317811063206135824654215741045105133153447132362703153154933908011748617986317847163487984620970244085336203112019265332646776663180702535139894823506459887483458792229419048442462296657385060893958220750497023460742749458537807575488210481376232083409327387267524374799104200487881114946864640768648457093573542211652902453979583700756311769051495479026334012110401831385653130401976154051234252806281062539203941351767425626055113549403434796255472837901928639474758441634558079287757705936560768830907152204623665683788483361863256310429616678652812860806819989353721371166759745034242456423462702088490670528851188954047259517264958200770776861484740209229889716752109484120378882505415464383671576979216246937880107701419976867395336145724772040497310729498624540339416438632350809273189943176834332397486826489299049015131566781691258897004899869479309076924851410762223778220706960706513047201385863664570519572402170093895687647308109434234665736126907858919266602048261982625002811271727324920271105281692817968394809165206343093857618098283631227386204878314586921817016626255999065001697102288371402028657842127771470613825297986972102265419663239961701954835910258039248313275592913794630160485686653137959041754195855766248384398818218493436075002864268241227585780913294357216583339077176571509148800533585586579495972699410447051880100061656026944176125522305821749654184285276721291877717962498852904086901702748944018012270020508490000276192034581976903592149925641308761030873679185863614844616781796261322814724260809894490019955903344340357510655324467752318039833608222434947645161680661919057357068241645465585259425240991170002631888811878909727414274958050266206336518376159347574543756952371258745272055906419263652122727635948200693202000827772635790046694631282713216972413820002069242878532922131602742509378089301034911138465769408753268273924302350506697989135559945832656640996664075058491534652633848585902965345143160108654514855028776819032051121512286200693222381058887287588556042792346611474568907661864041418103289176591755692850681049665323969531400498607519743471249686794896545461115020588121661888618571118724334106132810410678636348600114023098840605465146731473852387516820708068890444258722744588976440298618671556156754120484043989536939675153669309165701981805616343422811586130635270666441125637946582504663918557702629370324117579772329599324105632758758106788940308086237187229035624718761176085946105550223108548950431107194260020263328140195442822833805019223511367499355870030317684123768622897888830899437913235450559174543250302271581375073781604417657605717400438345173101946335261371820278622886055869183260952274407572425641056212883569150874393583985244372494086714457434037056359767454743428818042875360437055956518854107741543042794924321201648267103580076464628390691098653058240271608173811830871408876798245566932126941039585423018037446932115233508029741779793115174742214279265347745326665227313822958325196016999814273835963286960673718219015696243749688209727154223627366835653398446547882393260306777147365298278399204218052752940419731551310370584290788244115693926271025030038371354196141627264942524488267392145320688256821083756507821019001249033159117051055166013758913459100948272469216078704275493151233317880473362434122842982173430510781892354808556484223418704444017663220113758238985573198426974776326868183621258276188377245718109608753748641804024443561949489618965330679037917872180449721670016392105985156873530598148649385806852956960585577285639157228547524495500009037982118503200264283774342663361629933356461203062375845872033126769961480780065824378734262036779617902656139925744666073326294285365690287702771811827193997089861649243161164317866413847611782070502133076440202256758313422572849166486600727748832242146873515038149009292077924590171426289994707540663420840850880546347514351296034227792543590916484208164852856304934123354553472682254735350845602070491388039030889133777798379707778622094974092135972840632994158056443807517679339447790649039494166165369013957365476307176979441708843998258652162886251839322235549689604165395256343080142291623236637650312842939525990724820713326848479591901876054413738806337758586696513915447111511757983015367502128664072857416145931649994019409103321833383205167771704896445151540591271862690462263131503775581923999479749503924507171353918372243509390591645228867674576143736691106855173923799407136556133918124307081197202494903126402317871451161298232895306316290860426285488847998652007972314286875046603835356417157861700324135204552341422744628662273713533925651983808321103198391561933983517345480320421745509857663106685648976134900796392298577629611309343156696492992528323300839577140981529390110153476228163388102642089733986458487881020319768372478874288357319019571387663117783603800768182585756922512455868263272798362865333369639351823162977775550633565146457302260117512441473456875715403097377153540813699020671650027900933133975122814459997752315247594411696228135307244733752899776519184029178899161775469937590795968143417259717847764945368916696633266524987994909793346495709498529573299951073935615433361554587301778601623385361819235717060731087022197192275034432439994178665951659305149536411807137483986851346103525455233733749873149168724465924229793365768702926873494791474839225574345396739158739176238638957593844402876991047091814809120320473794662027808195215995352548873295087827386457899963982074192333960985903411771864009392296982275750884731337542109951286903550769028868491676249989607182943266753960282561262667981062769478296678163073278576443982063699130551076219579673057680211307943770715353651310657999537711597089881789444504950808414433897501552204329073879070619403563623362206952123423209887958631611128709337144480962535436609518906848577995852433082920165579883463056382164071282370002472544354111768374597887262218139080585572100244236885188876290762515461762668254998037114289616800505781345264181850390296832639211439676019047184639027130859410163654759096004093652824525344322793212129441102216005575797587471018533473808057332079439864026108362072608233694488295082427564628654321881203225040559165622920307458449685051325107386385701268970245575924873326926511381343225813281057191071205939117393497863256673208306119818265655120870305608963616068617847797522106147424061996247432833214656953278731283223309798593445096623158645139240118928457675440906761726774779869763759435340610929159338908709122269976125963812254097911974779721859931607772728501746331639845477134848299637209134989323942206394525887033138932966495811176682492874742781297022166996069513853348643257492960139576692088323951768850806367849545279019498804036921587776167693848143869215817107078164663355087206759458792571090144228531419590720295930213866644463066554260193341477648941748710410008488982275397564904200311496081327213737351797063195681338468049446614803367129409142310117738334964802847139468755202570257061607638740702821481944313266069716397202487165309169340299711088498369172691519503932790253697977988260902490885245787591633831860488269279319747429860807890685789545753826409342350294773979218160104284502430132397247634576209624951031880422447088219654772263911339953594098811477863420600993686490687458291227568555570238292399301141863495915314991957179846937210143706239469835503394705505183375458099626275093531660322074235487031306980661506543109944104645851177821672204087872725352639604957091454079339213097837927592944048435063790934373415620784834892340779239374146535117017371728373638910227116850813450227047148012828534176900325408557605722451219015647409568069373007481074678671227282057210407058712478813949457626777073449188134241102096404431448545485031574614190966612935746549488809475091609202896369162769339654449733266391248374223235749876640572931865755966757328337456036288453434387798515076399719063480425072855908364741956499317637160405963011999800737125693928877153177983535263345224434487950796454120754074500808116056071030991381672826487306963137823000038010822943940640158408137050388666383143303041348070836813425105854729919235589877017228826118788949725193310816574192168406676672569874537685818165630000210244566597837291873238219992770899149337698558116315266544094223584397111267156700380999298834854968728654389113164955768062527434537195102495444654943723339179220224663466918029925171958578276130047299849385435733952935715543956961311855224969834094621778751584993783672067973447498528878638956087143844925249696461315653402612065989908486503416799328252135624053185765939131023636133143924320170552609030128150679098944550213444089949586242827644153197721361349920800451099908050663246514996709527314396084252675070790062232151581561693824128843365443141078633119400329878641965551197663200090614889762374260544983451116523470433280505651540118288457485718228418663096945074362218708635886184740666447443961733025166122540717215789928003020263610240541246914165294731682590150088074492288374854770777954526961244396363548281963044394578105715455079289012977521886459550206718114428383790209589926108137474034870412091379216452699910711417979085872588677971852495834079511147456980814777567805293322061854318353188438046495630339206842937778004274996234873321927763024656527094213200884932683252789280040291172914041569155657859452514570358294642864905074130330531645160536128078450894239219769738785277387100333390894731200203376395244212616870878720749555465055303709439310130129810830770854899002567158568362758391597142173531576118733199670305814336249018126900507861346740791976030821677141339931774339750590937614126024532251146035424604639817720116969386603651096757936928254509921613345248339966289904310713039991574737912376333840355575352938199237890494384246091418070238522281401078197487492287296475280260792213074690128390861286035864818247160117812609431703673188506613470352559686891243357959115560257867457100287355196288101988221392146015785160683814741655020489197346624639778081572923206868311506087160665771873199758496919883823559766930739251698216553669090781894493196201254229791025803418760316311275125219115878911231859527445907580093833188981320976184378073226842175648137829467127949090011430535290474854136760036807124053343768280623710099025627744399170348980303459833992967725383103309822436202944913391194773371559332009072628194619201227850204810351315078827076125641683739934593054341347969736497519612107196931170541650097975309488478446966552813196109732646679946415721355026686868017477737015867561042866410356142525929082731634297800949003862279506539315350354981125387298531126051515890592336784416820126381752388731634946792428620172474521064063183823969179334293892025027665914167433464896011179336098386612221339874438248439153673732147109818732485845243759963390085569811606356338946871451618198814456254072328090266383580540433601743358962565057253652243807006438391833594397443293566370620875425594684453364927512665885310311352987775798815668561779173731246992465640404061427455189467247341204818583965333654639095047596388800780245002688077436111477977076428589179205941557041282698807138448556186298561529673148775574250403251365979427696650045255037545779828602046326268992742937140351081210277436161868445484574377779022069443551700545274382235775102674720893161346708336281009259292640968012980563733298969368206171907279892384810149550188020917883709249281901739526311847042281092090078680238425691807450932399977845294077206364928653266658926770548149812806352539343542422188616117542757199706180780110375275081319504125373556231100943789430900819707583441923206915927943585154152999685789248970520765295923132633189553138874572940569336895188498674071855486724271499005198382582040292275273327816749119423296854122569615553508600055874600161423176338544438014643622741883211028373411411332927610991152427035433998111016495705107761323480428809266963598077038404272770322850047973943806286309987225685031094517999697218043874735156296908080387963758433944492161347885566967260529461960330710995068983253614124437259648779079284071765657640850746660098460132616081409018187559851865922404003289329811306355175420331989506926549357655926548188410029194081236268232927661981169631504378103284861915542344352474291168847651077101929499948141499569301275548560072765391244500141129344897786811575790235735144145209411297861975979007267442092803513530899260414418309062366823956914611832924207456527565293513004018670312718645747196801902216634502225840511610749918063722443533858351168387857550019689074279267370640740515252518620433754682558718751524961805891706899314962994955681691628504456469352707452259880250148907588754556581218652356842809825079294558087584675098359112299899926611721011217425423496205941946765273833338836259452411877952626658854907173674794620950320958314169186533880590474505686368071927103882737598939347341452748587026391564439640146137487421653131789346629782153284866384882846730720070318017237059716521222585594396498900034435842569219796684026187462260168108519337870376054329735354768923986313154531294818348249220396703515801775573591039227217672950365673887739070527987379957456336740406740979044114302883158538727975155321167770407951199440704947384345670970212628910147503317427370110428582293400072021617187199810418814712383164769100840767496501589963227168078341718044326308469788922294774386492262575638517281346113610285893195923385876984108486041207008447855980194154134406055983208988368635267408163366934242975955784684395934693577063738577889302950649711768354039714903174262674849780754130191200038377387247948246965967062512987820149583881827208084067194134031125329705491588711717298999798570193684138183782134982525854188757955530377204749749597726462880009269962262969959129994620918623044607516929850471016526352401696141089028256029153150165574403373496266226641728934120802063893134182850228608298335942399935899496199790756608710073938052083276546716130327153644052511541636915900812192068766102505065489521966241695330466205421375928598411312566216652271425753924261634357796869905211714144992761019031974664141649024092227609051294201808053948895804185830727372750816022365945618995262802323317323729254017102308992701073316577443958954558979690763487643463395019404985001126170739670309937373433073283033329713702434901070745192314887684349162538911119198590648735711563751555101031367480431471226429446630344300561212041725921856301578923908811697563414820415514178090296867339849157118785895822186555339348639056172687847848635013036034269448181683686720775955749146013032447973534443200610088267500524085154018105747279398360303044161105846196821750059736887720358561886994570746182050559723263769966276905543817081410698178360557546515284483463270990451400888412282360114363088968686610224435901237515780388932232258912233087280450500055929958396991879317636766027851440329526854354471778789136153628827400708409474918346998150913615445439564938859639044175909900054055583578060779505054288417021744557650515116341316299970996258085681049695960306655032573185252281390703171731514673774786105431416179148001553244023940178748014005689058519398253691347378559390882606810182016840201825159983027016995421795278296490515350470020807424308532800655696577405308060738944371658568685571198043060889614783105094443324062327471461280096309218348010080728297864168621990619530931792762004101288582586739607213584012829529429232579913815177576261061250903540992391433676253529650482825496363065426845686274735999578628322120258167983811747040722694488552606518496914136312970647351911292008696508874299776496253035917978216044642020565976871085930347674900831035229768988262654618003875362146305712335607436831728995850887513098828231050260069396804299447047991945502385078994506467291740620437808096320260752909007974855278083179411851099983710224150670076524908033039724725007784611965458508942689093928419207781264406593865594175758138793216362259353468802356427318449260436157594491445666263853746523652746265542936158409415733644162063490191814126867238514098485636958150164553788632576907805226212194072701665510756217989237334728037579032795473493852065286844262127090983150005049650979657546810598588283543836056425686170673695690892272117314183110405433529945938255872800681505923387735336919196599125876864387028348040041263276603392961277455804759443554658407696365949313351514351063705431436705922685403581943883042870231397667232622475699647847705625262503595722027202798977296129541625461736677575369077476156747436973720529521550152646562810105883300411918746606592955971884521139410027368174766093496631847798072885276259749502617266059718329650821653907899243308004889513524930611577090103415112994133851724288087800039198518161265089717411232742714628687475495799733060701622146854142676411525066429811445506395393982036383888250328636705430434309215836320483073437997908537163509727182826508971732937074428792440776394094843263999836874571594633472763063217982337069363815763263676803305057958287329858142583392265587924553104234304143023718268406549235362543613953302469190737095560608960369044849958455715934982360460584276159395810522384385090545994203964017149037851254145307876958674766187452147187738501140109300624736659148092052262336156462590968274877729379481414631943549172856069924060694223111634112749852874962437067326813261195698201858783198626938877271963139310136739228615983169627896491505086450644034761754323190797048982171863266645205584558589967714142457390143105950199629415009453955307192063774483951306535117491606625091716109375074413243299428797732625228320340008689953699541545038105376405950793825217243265937528959861670748247654274208242754118983045803527180931573579346538843471932519993671594853990261998545729071184234692689607804902016295709334913992011669447856491528081643422839811207844452827710492029655463031522526870077926459699803525762144151626689477761621335378264836965942930519593256103487772252603815875363143576113071244780521222470233299150992951517998035182607482068056551830821240692088147411948566087345947653283905025199185820540367753443106626024374995919388493472826056924323059803590997269495681652595152936378851357218596313478927750079184740315666662877077532167788748804847739605050876946939082177428718289362585497858958514926345139915879933922461560798237985550157479138483181418012140684358735115621583187964443088692247902327681051363594087155516694739868061646104931061467404859610233526750895036662119422579808615807695345366929334817951118542103580940219648571971920360191008535097202338114076516947763785209153197159103284309341303399721294385281072621010414085410242950976313268745326631674042871541829451063332214680010474489270331258811208999176884854949600686263842192907081273704528701954122480927534022979662537751007951570568160279865763798214689888587974822569044501629138911247820507025951457302449159716520424344055657112991341999499967655250466812073294662481878428014243952090371787427966404301973677839759558697795460232628002308146099757707542800538025520084594489672601448211563249832723326217414746490335576506273262277214708263921531585881565184373778552547457639743516787742224638480310483566423649504263246583107188269994087112249504421200866194677918579748320126222944015726973413773304663140835390689212906938577980313377721264548794846884314643641511756549903388678407026853902984766300658372400888747527435113603304537472026442980089089426675968404759409931716885009108175096893018878827198702013709539387484635140019823464940099305699834880697500405733199928550788736013877617934849100037026751408909020485459603487947415192077876085011066173821782217525453696841169161373073702600104247069409101490371278852223630626711977225977347288966528274839474399504734963300163482426876537617084723840366532271317387934367352699240063336659111251412821956944712312828662172963483147799474592702627289168312734139331551802862518856546093332620860049270392493085419887051632783178419553422950605335740592294405240482510030542975008425834222222612182262061485434457003447169374258144807046936686523233464784311711980830460998256403901311640804989194393399879826613553282438913268462673623292364301446800044802078184702876588080764314044391421906898044812538880796949860975911430658819555441367880993965352508097469742003214017078891393027784293331139900920234766679224741794532163518066301075717725613367099139817956818333022409846327763577222074301843592164235016526199459550523888456445022150449207552010557096656640037091874358438185916697366164313865623429813158061424268228689350482907881475591884101981237386348118209030268851258276925760666071355452226785455323665115580787740062282392800289478619345207876930109867508558716873048515285476558147842162337873603370687659017220061873124994327022775744083691829745602426880849361469190763673015625735038459757834043775893624844825160886827089683599502542311153650057870132769923319809596986215120505239565857947116710336187555500615037382786073121586889704193832045628671441054859829810253293151612255290785526331147638314359758571857265106706072972867391448791637637965975795848505930416715676851389116370008702830311649946233629876137688359874852145343658821815708828460718435921517289544999260810417731936360441339322639978767728195140865896532384045720631663226409324367930531423915952228782042981428725579296311508565108919042088333404103716415115340434234793793113395143665013608166829137689178562748679291147665990209289875367211552943341569040755969696621592414119716295019450545665606729607938500985132947534330965161126991742341943590548229996422216742013785688364060728526573804943709986581923659934417758065581338744077239940343908691632642162694393304902933994283935828213075501582576072323310390868206277215158713705374627939373192869345650550102622766957223014629983779853762955263561736085672888469162331897950003788097105898556012233841483066460166473363117618056417119121782878179165770464197820198171778451490562958858485143465217916887767268563413078361510551340734668592207943642776464867578894700927092760885650807094935884175351369046328503549974828525313394851505476641732408098845987512032167060183857803974136826801387472455914991379544004983705619316933326072197327963993290135047919190277963556715018343849131802610730138603019015491233065747474110013117373778245131392114956693971296143068984944549419580190647373828933213560334943583439874903564202641030067523584826451114604345152049045550574908541099441433359745548093395286279171639360933942012863145618412964671809923926040077850006587320866984392845365748306959212464451492289403560622400554185337965150187013080538218567123965318985248114045310457350563841676836064026114326134061885129933493943792896848970300264749048689038777592533891767633311460312319590863623486231756089790123164048346945186067928672862949953437715274823107273497152472926616917391826818379563829866909290721349140344993789698589320402411313179763318885061496732925907411222149090692274169844701997145277594497802470672984295615317951017764016310702150588182332898139497567801526021882805656813525763986026792344286696761315360560891564149322055744389773618603857212021730144317558900376857449168582474184972482726089411870141514043484004461004820774683345316531339140987556322023369214820082166891254924305854083467272786907162400336928441671080083997703526044816278784089716522961891414410163893611265543562814462875140841762592543085061398340569974705016495402069945437335539189448554004722424877852543699174059259596114977661217397062834814983566563001993744308766474266142824980947738476947608281934671317591758782467404183436858729896306161421969700301405993412735839742529929118746568061603112229608691149145196822177568254413281259359660051005872472803030825454589889794227806430212137946928128423810377768221735858730609950965480855521112236465181486777950566095025343345397197996651597794391775346314792320928063623666246214314084018823868087274958191319749015169897517758003422077456434071252632973742753359026125454875888562729314582047554852906809379523933997518948823052407566974577920808730773124574051900223403998459803234331750837180774644929777570861473731021522061324000181230118001732167286844891387209614215736754000357118187549331770140174833333343709780103580512966243426658980279279588405002373949961711303353807375626634944172645323452677482961175359806055691592743005238244227367866554920906969779219614295371101909127552330453023750052204609784713605022951084396959410947594238148584275656107584715098121848623706834102843585017762115477702670990783561251908585184506200528151719877950019024643403156471499832562177381961371743313924641674460250001076541054191153186853529666149354586275185594472900605867410317952596216956906057313988338883213380835337438278996516584048024462962357013103645099710606930028699586229791412532822356191572475793320575838941943002151286603057885467317529018012669679780963571382536314670804900982215439492567589492011495295082796119175217521065629028089904131074158128321139037936336944870584716776686589167483437201612607844225690256965492499396018256557624942934408784741152012726437825794689539501973266896075921951745125299297497050432200024209111907161000420853647408773019886392300262371644519008625446888739633297372522729513448366285403239094625493536439012724054093267194805143441613252989241354117293352096722189585248905443049117337231734385664931827086061394874603024575091440384630474121950857322154297487081117125140770857632872733772471084486066469476954555723380592343871294653061509798484997359886388699121941505195979119962877047854128349771704833360342724775206713472098626075467375839745952651590186210621991136296958021450255954838916380827243604240851633137187718452745063239590618503673096251811891815276550775242381839650351270780466525720013855007436397879196534068653807180185915967837571626780017405578279979354161658513551423303794162835480040364884088125638237690936174673410368449262741268625249432200687257424358387098200698954594879131943116544528703102962968555329278967052730136792982689451195154949307939064887135014208531600874798059082838425682961788758693766090442991110979062027942730604839231318691218331369580604169463907821021456318165413487196229362032339242154845143859646881587262432852925384254589287732849951648209848503742804127978336987307177290126026685937649356613648111202838564849919008470289256709262317763138393043809222744981293484902608911138034871065717829819187850856780083541829758172076982129675101000615950372221923673483483258363684554032054758601282513711457063165379789909625123844306984127933481621662724200998628430943846978886344668278385211234410922172788732330505814453602614342851541245433683500257672287844917335102316438232799399725461388582248709842026524760960424312594526500310540202256421657449508629365824964372023830857604237106403879668339124361148887868595192688827189258357080547323051258939255304986039881787833036486232594484661587418573764094238445193077071762757094847763650938887881373093738233918651215451890567178916307970439906032013308541438931103277363783164421926025770404790748970231558474871252651699448662979215311841557789715047995969602741423891140088004089637016707209803836555810193448620598893514822984760897949415302146150058386196077301604290049194699887593359550777960140547983778657736107180358306371190845374010139646808174791183357438914445996853984106647795620104370556669792933417671658854091283535179834932768163149160520274470636752393268099425078456439324790102485334597112245901143591018320531372071932952021275921599850151988015253250989666191671828659891775519869559971638559319794220831280827090897059983768625092972963531651123429402656703561252419809945212555792711498020726197331828824041363723225863991903635340416062129684367867515435207768413525482032313871736753573626658811857536167497634729232320123527670451600111889647933826356271117639718694565723559288102512146657754118219639648173905452431976531420030025528790933155379772398931213642520531044596962866221346983689885040811261026403065786978517504323971167635578171927358334521343500093612090087206719245983270518870399766978458760775148960770941826215800028620665620825794222200625304214546739683384913103173849464014846112495176661333699050518194241437161170744415198685409967825051166015734461311884028774443141035395413538816796166865780170153709933372544742802942063683980307989927033446739531690869478468078771764939770560459530674588327798455947404521301839787870296013006654253184786972032315132373253904995737208571524514633358758098351345275846624998391280954433018580532942411875693379938858490586634649575417512962166379169924853509839700947316873227224291818187633779692617882148462812257351637298267460600928473867314135109406354408146636634804996805626495415080935240693582333681558516920459013786402802956609845791876430451180796544368282363375848772698570920562466723330244712280735582557076909330540247108017490983071290165720530094841000399364021919318843350758612128470684999999638917073801811251537395845387388376961916164696855956250237365780543743648874370796936274225854859557978985699263560026621657228527946365267253679391577952918391783812689874069379927595775266048517925606465418089116147029382419288059837810887251727533418724460169336662379602491171519964405621814631620740343282242303882652773074036955206107093174397439991092209691939829525293717552534298504296292947692981245087134905688878356495429316954399248029535701642337261327057153797516609397573673565155196506776067307329204644834123439463075092976246691082164470302286005272025287155070923255644037770242390836198555650375176656038923678541865130229608523898240929034219798640611413798085724985451875443241205356963539395399257612133343746443568974101623254816294166061204886443248249973540440660832741840682115018089479916153408394807523255899333180618107272194252257435799697301085408331805459041192316708607956941339676456782974253485489130190650891803977882843032080068443847081704681692481478181309671122008820839392260822023952437241765091009841335993917265621662158147032568004841900837367896636367669881871020914894527769286960709004090906700646088141723155658186876557329879378707379673975809703562723739520169228359683131907286911820092126997724423388419260515512050543658515012497564211282995315718439422626872268969214052136842706525765101890690536265753261700970930813931597249949316055889473418140276909723658172024078784223009385199418519750898837902918811563862889965569877022694668797439340558397236277335587961377333248383871956372673549103384207778697063998165284780523019522677266809765837621661954884781183965324994700280052647723283819275519275844966137228985099461596334367556836728074797236473224593672677983860018821559051537483681435522064589801590600144219449498592946596124832205716019268075604196466209948026985515999926662474349133824531228393798245491322998928787160649260115506090521631704485017273021785077294972933499145329277878449011996777703603385643044939590757567258891251108819582352473981370509016912915394411032670571178761286709230895487174948820943093598459846152799478843927615276559659826108110606747861674626658944250718400571562462491076924217643726983675982368992149544254670999680313720275624584168661295943273485707466617888556228746848844079386346643704259620418624950983525311154596928498356491244168264037427283202386644493028349253355574785435693058282799591219669590979421996171579948031757796081212626211628249313869120529059602377285910322862145071742220850290770242036784633487593415443270862289686162720350141045244912641304631541368343290573675820258112174230302176928866879559326325692312690780172281870995650841138485612695272864724546053662935023434290256950903418401445273687495671499490613062088869842856368097559370934399506281574916448826707447502693543548513556644588574884441492334020124088159401953626652065167864762199829710615376245929370389495236916018338143409469387356338201717509564918659695860722058361470339637804531812390613813107015565460801494290138596684391175137359945231770674088954358707531870234242368947213955637105628413684091359947167764107763102351297467642631902021612716921075573264123429223780329938625466395002434197346338277188699150030882610690122636268678034805493241832051722526577703980402347506866296391774229572495628636891645782585140870921756330185161323609131310977057046222466901121524777131717528991404951447382134113837640787788676208007208319898933132173669451449155035007342837897844325116805543662314554402484679593834819794473220771718423472024495615582179127363862615820526367653441060446313160644634349991841100794140862496111729969270837171661151299625103064969641976479281901537299591721466222391097053687499148039015199645293227957002852030539893983672751073880356968925197359052364989624772921788844606228166494462234401708839021327584502606100201865896018465890052752873481829115515638029874310621726464646513881510261943558412259746625290053179864455804568163306461610623937588164911557821129293424502806676991507758586755859247550560301796450130442159273825578217170176480603330984582611935673412884401046866644985879019819410965945291448828205428844124897226080605759345636028451866764128519531390704756288822367959779212104205583778990234461283140071294746610478301598458324085777224959095702999693866310281097879264684575634540134948919921795249745106726187948966911105057432630766252911816074071123005069500271966384414514656891873170055541701305765927505962324863020663026942523696287141498312880915258252423236967571264562201872925708617303333855522395054521484869174716103078938869827737361737988059954862472020288015720041098139803063531141306463912956579751190537126895852099925523416526395221010428012655528792730090684540691555425056164486081964104405254683737198956549158788083622573471763769181462326978141334060861423900466658205772202149714775931688286863214059718965553404885197375294293752010498154012739234723330481474342740887526758784384183510242677719105787717758330616100460541412048893681181188283987462985599991802109001133735568888922601196213940135098952019562343265525524490444466723593650031248676971036193057464907035959594845541268830042828022814563155214601416406826071516280345682478841086603913277473723702185244953095844606329730889088122590752079370806155534603741358947564500819405255053292478421627103361650746140593740393742158739352876175190912816992359697799177489896842260390537102636655246498149056613493073854481665724513176303109181286196602146525415745252240126951213958482635981014405327018762635907940764136108124513647314596978623579663595498124258283457262633059786057821707967979912081373378366227289648513106631033144911843196296118735289504670663325316986567955980182750862890421107107296963439548707115553224767145065327727760091056512924946388968685697075336818890026458245439480482273879647279090032683946719577360556762256549515768981471073062429313116144165097080421567557305598277152225326909798112599730927466700909801691847537912451733092072796504049185684012250882007364032564069913449695609415332334730638319807900656761227468227871127359025452490914349485952753441373868527303560814583983869179721922491786376347175284808730731705369550646153575167301419272630468597564363640850080811562220555654595212488284001880307665108309855405186379916770036285784172088421350715151109865528651976705337925286738091508754677015491284963249394996584837370574734460003781827243634431594951304025004288406059291950279402817306904417710718579916669404822200703982333274933350944401975258872745209369680968576164179630919663240280546011395430099333124071852328804097562918217910497913298537529827625218647895199461930532615480803876645565240927771522310728768748037456478556972600552858796623383080322021415512039758349012314685874749710534316845606079397654540077954867521442066376124591823314104590752362464003211703462113354392152248641460528169704915776043121154876563497832391920338173365806702242740387347569439541077109435507683418586256477831624329419748091784082270223273755888621538206348526772016001446683588253143559006198346951849627781380825174318539951275313752557607562447608393035136150863493369466592383253313537480365271095097248806793319928015821459013652976886693715540756650950063220221234707096444525855245462066102260345508143813897494164547068056030953044631562199733049712388655984810291995041560246725332415755186205415685497957538947013917419710920713106399067824375615483950264203425038863005318380844083931500959906654371840998543234944357013076348631516737854277911352788463724899296420778605811393399708743134801257865308621678586954643360405693506355713077083594758114574939744286443674241162639592574117645526355786629061971702842134048444748003861094502822026224430507713425134557290538114233385811634677265425790322187350752514102715707519161969045655860969535144553182970774956630987353749303716885447762469253520481313560727429979343419129388533914619879778343586254388375575864403114613145281602533591090729753391480305126867758008660625423714943273521831839444970038102331368898552690989254571234479156133293856292673227730010838415543610514045708204841552514213112967673198590079113540502957149435852608943461591102223809934947141178646248755187040173583098705951301004818489343883714245898836737996518590078248763268512759750323641291546708928683927311950521777836794354674873056190731964299742657212897815464289434329773131952293635372573143582326351035098199584999291728882424393327205299806104766840537705668086361372886288154124457580694143650906242919411715939353431656776433899306994227140790207000985829780181788904420474871555190171903991676865790961672158053439372312083974370297670602883252514207955720670533274115555805273660391098676054344343801460537970999375668164498663616130715098557969327953424525935850564890186430202950588853507634539926277006873153089978274595804931420069439599045349857825264816753198559180484239388925122878854305745241585479371829483765837653761930377253076875256426394255257061121927567452793818859535468382419407178160248613689471375747577891454127371076273245809510339268363254464817428627999689436785621540864937675772344371813960533944739554896389443115671360536361210253876619735684918079285941757580812985030953426585846942874042086017400640361116454278517791087257237075918365779259723505648715075799898955000645190172018497846376322737175439468951965610228452436549712380342818711000305576731143222316559687518938279611683974721399327466861329920799653519855648327534542105902250532579334082359130818307035880341968965498923201369174038238603151517387978540758428111789016056963525527909190969723786274744330945315835642222410643821828379143872421990925495616884684464134498610323397156495254736572644410576118975649593078010661512099764206805356787983950766352739970516978748843784998009769440450793787610823431579165250156866524503627715447077140182877009401245779209823807622822334545474571451855273174554051314226993851919888667816546525422908750060971741696612569886265652705567655711166545917498563206348264610673261847075929598059598666085418718170971409360793451590640622309161184627742240164494687936216734966666597606633664585419873489926492205532990374511456702790982069601048849387379252058555749256457456178877415420170633112087541990517872725437156929110401986509773756941234062288213615406151169251525789583230991333141556709001329320199457535921766483280145451008507760063766641221401631490649738768721241239440079578824200609792543464637081522195190497910493925771752168832915071569818580130147664721024991638500507054879995189109662170373257341976021353092408903266339942454835204485296674939313288531811660178465814673402383283014851720947537017119047491868609608370096435996695665119408005710986626361191954701244263090663234025615739842778102707307781053788336272255939977628889043483849224414179125679591637158262968864013248875028147226228808074602005298459682355661418688389028960023716609104937670989755867449666525446666670321382728468432585630760377278162478639274938165256740702590582826105593075779996106989939750012990942459510398779844574774051775830334681379408221272026862663323714344942810308322409134025626626586442566588952817950076929889697236504517390685509418839705605186403640053068842284456340731140861818226401422766109988588426876969455108121458555201707472222838557479024529048038502739455459260688691248936271792568113711286743986188392028916471532192204266831091212270285589911290222372146168131734392543985778856511919813450398247991197421793780290923781297713714276520358221434549672285792396021312850800282564572083249426231901634163361175327923810869340165822974638333759616233587042950235028964722825617981894817921308159592345272886858649252936708940680098313349318222986413987317857160862936032621273844502500895973208587367904154284062775304639429397272768260282704071659014036111032693116788742817843763075606902209886684680504437498831238231087203918632681051756178047517222090360222860833411640238158438721822658229388053908981333718035678764579657893965860634397167952317240948420374997998622871154621785690428640992558567400976919715296783052192251672993173408527166581905446806747146154955055297031189073150233215126195748162736443788984731719308204801588097026614352754387080637396615681175879507002262265135060257822930262874627477642527528602314166788621157500743390949846309705871012783446334658213679953952417479403763134599165186651243196247859037328760847773625153135034782887423409553567120945770872065298192906530030358036239634505837827028787059601802564021565974769819603751842359414723015737894796703581478541342347394196802723332724790325568101726319180412508871032587441589575813042456382087072380693764241718183959813382632890674716418283805034496506912325987435785466313264854582725250796140598809045088358344697746025566140460793530219651402239338307873042793474893821602486575115691148329686809572623345310720079549633925201864894564669192717803500632250373746466842066225067086460211305197844705748161278256147294515115470184551494408699074968765323615978159875659088241928613678997500110523913218023699496363863949552161246510961175437450831888145361758453047664603189272040697334967662039950723443836826586324992385099971454839568841677705073739312408486865895124040676187178122559488438751190694986182239865635931629932978567090425387884612092892281595850317159842160625965724244010071078143016987627224596202368478245434446302260361130017739991332543258294840447486012843505474732166776626653016250124190147220034172229988986660647814498798247202679254220239913993643687204937256786453416810165844857001651493068112439844677268617186221003223533207931690689102709930713826927764886751740563913858297345994207299502787708961020773809403233647775302084148429165924309976794788130886942853200131493684513126648088125317493340842458709465266024312968929427885969881168098216082402331445705976093850224825952741469672383427942462974182425015423946932878408439862585678054817080570960209876515316471615122261571971658116127117908912771298375119864347794991568488908087869254580644316489650438903134980301012535012789429382906646406376424936591052070647374654366423519949527509242916869505127183347566620211369848914910439730642337894394679396427241880334783456418503604195731849400498886852974354191237217535183395621016993899811645910090138915759169357243470218937950464905106280186388573657244162370696333306737975469943271702543792183131142569753400309645610493049508875181912145445502504849566951166338586929388068834389630014174851458829076471173103921134344894651799609975054992082259583031035405021423142088923214040800514129081590328305536692661694307537788325825629457385051723257696222119761359276865526329485835648399268083739812596978732625541355669077079095423164894658906556107189843155913389681201414155761344400727942456583874001954640996332125449010870616538672951550146114340613934505511156305918782901945721704778619569539569738815381808661327318434025258127980837394111161586606389389850472520783914995778904274422035074770085345414720438505740569601204261611899792172679491394786138216162170580601392919530639917689071924756829723058405866788719879634386654395428161733096967717235239424489421279472528205745974584760129394130782203844437635088806619801523854604831022063762924360143170356156477265922925486593171949258334799797366822147983607194952165824258449802473787216750743007336526163635143568552909277913300405323595568867927750325897473018842772342553533434096370529604978980954209373939590820945048796158297724464163438426890111348639048909143772558953572437109356127985510550907451127648226513046641272646327329100760916902238988338703146334285043100100026262024154850120856498391223605070215652762713703912342942348783909373150148382555589501156832286432498377442023253991203244697755290632740181651580464337427268048810794471822628283099641800519181804837058596731133396654245163705500498986142331795911957548548359634667745175511697101431896228693224509696367348217205049085968579751497661283616828604273456283785209089423081482587751756374491034634235110460009719911777617117272274051793686015980127158128464689065316350484488538423236352662555052206147976430472255223227159499051832691989417668860963664400585379663506244305302605165381300119227252147298950902670203424634623526079596111716242831438722575588670399650627999389717668121633568036651917533263500881697089827233832438342432111402385441189171208153430440560233258097637752625582125019719405251556300308893163460414980694435483606037146338952395893541607049786547858151437614509659260064372989435422351156046853320456379623740390921969135519637767072345659137266957004348744685345315766505160692286407267994083452729768219320306501965665339524692505148783565973583690342230682989458988505957551016268055579105587211717131626523625824225893355529551132385003246289283658915121734799834123782086232455348549312535179424342643412971873961603831377925664867525027133849899005595244660693710154279735835175713949802544913728924369057000124030220096335900299637108252200356746673185557136978840054303399316458879497774855473416271893423934745984539244083899054138789937698849937273801570655904843045144877415523807856611656445382802425708348108270980659546580641737919595127104966262284471588601329973820030144115332741129793641635097351925406915957214722049175144693376496813321663844717834830940134564180152921557361718085910656566484796591644288942761031866986930122260788185775070731623745190340173217369141442995217612840153139613917689033362394220923698195350553307001424940569816020833206303610997765903182705502194821606441935545318561847633325164546456464585173254975355265842979708262894242375076218799685693953803854891147199693249053915292835256435373607841361831051576637983238947874766234320215085948526827772365698597880168006682764021620235118043561996049074743299105907997634155116313212089698174372446247259122202655262028690692888777646135062886482669752744901639414996153317236649319818263959760767734514828435778248555678323264589769237485032892879940783150285358893323066830253857796610395838441271339780138865109244556456903305907934317012194182248123774103343948954124565206225904997218574545988441503544155565239670263554575609413876288489910088584827628992945620157793216350668244776779226998670117282087694144762345327629593612711906535290932081487793478662354415327692180872194127880272898916496634379882798315550364790793888484787575983009270832889820524969243700618238416030315011553077894557982387993116225406130898785474223615716089072425818531815250628919142856620982794372137361153872571166243351181572494844371506520128319010230945581387061016595644489882042457018404519517343921371575338829564056358085717202287966123471534688005500890200341478632268939517673182341947650402832178779169449204487485375177036225680196169934445155989873131922578638660477868619216833363869963053110025969036788783666375875325754826135450723024792448211609546146334858287433099534719657216607694125386870301702893856848143874099228527827063506525998614021323038840961414179230133616474565817777366950742147581998847174185604103751577595146681220475242268959494606910392847631346500739514685285083735823234027217884071763587789421334674056463882366296392484954653359426889039244019288278486375446604235157591927267704180948721432664729195983581179273856227569167339614487797905811415430589049302920934453172095317088144693781887840779837501354449393402875619411833248140761412331107638538677119694445583494079950980045384762162621446474289725371325806996456270515228396521378235586201696753043936757713359618218103215276843481653673060447114175069783363577640813512194208161912518515430475582984794465231341636660117031047610815093827517147934505922862165017576896781772962036014149348255365860231612691257303387416356549178765726511189783413267223617696113847541290746865826015175854378241248612582104001256678923481626120475649798880220146592621579532454668777039811667390120949065161181833659730752610157524656023068594083946264951536236111775438939250779738420093510675408100968926675044206591152317719836518193803595046661817258874894703013174561738039552715576515517506042702221213612066062036387062705528098797283978757742648987300117805201181889481622200628843313949689081456062970322543616270079944122815452107503062855728340831085574912468433342830565061246360082745039698802817954444864664855496348009986290690019651589790105952809505331265920600054740724669730246414936382245908285102489175196463449338126982743743397965312605626651344601158425225159473159568161785189995467605684111232434936873193243850069371243401437864198471174263326234800429283716803590281181770282917428058756094065963740813232901556312976346804609566048788451286365096825446874381215130285465100275579997501432157121779552732330718615823207462507007008427299895883848145844875319865681072474245899542222609643929570893406992119212693797358847753636007758260373789720938404062742234635669373196696324727536883289102602056858579163037164381540331775514498506850878937967089746226940668040377553349159320888952559664700158266717515605305092381336773955644237275656296252405003986438024510436567807186875223718725402070295534458095159086201078852590313801484461779682693537115543183609502089360841310525140952049603999881511554327092987416215773879471381057282271361976997874436925562917742428275667297922244407482797876631123738817271349508563275750459599725319988600926390066359760703608689019273569657374030841631141341095470474497924067862068919076140645322553292193075447148232008043056221186869585235065851772601964578822008342047570549737892933345743536163058133692672203597910672901431286890276855741653784368496929228812437988761511841470686490249792977245910371941684465129622967163807867569723378741764710755149148021575932044073629901554316297862871662838271273675984434093398232546603321007210258738689573557941270867726254897213532504500204235459560963543955001264026202646862042542550888279836929451693325040792766221624828734805995980699450133550431786222036163223426609331064148508939801993009323342712770529524750558443314687634107144504116633211732288896853913537689908387381068193468865665843654893207108345811815895483788431353193595857770796696472300292941358938092527060123282549823141971096866803529675676826862245619341211850397019357355182057626664713838838620312368343905199658241840179603036562545866674871261067661165720726971833016030750471895398491582569031590809713924645090002252861777097028454229262865091668253198897064841883862841670647935812543303518494734670713775832716089684449931314633896257929993486080791095918292124567039316259031729339366994495035635975301194123845723017073250843899761186499467975323119306831945126555946803175307544879249923382153475437930042558510537909394712371154967097937121063329986943965705716480300391756252861592444950898142522900284055387910659058392916385545567548355077068142128856886068767512390665981347700070505391900872678472838229640741626545792768466710742703602510408648499532185275715793680514864958616788596481757242841124584586185393775611806708970655441340260630915898625647667659481194421665020537532657411432400914059558545058589235984185761442674778407397897065602650832243924363717014999695963382411592806395986721555644252069801773584836216407472911746491579054323479738997629681797444144422057743122020268173203151042149245536947944763872799430255747643991076144349316984693868497724176319695072369453224343999754208230013864380907398383414981976127583565810285846107901662653179288913651438009343591839014886090497725242809812070632812857612929243251880025338177589409272728568243193985824517321904718933163894594520171307579060235912571129340706716286094824578594583718229040211849355981353286911614679312668741006834769069829766104122366814464661950842225706872741665784363401756139020466436929916130606897876571975179472004705821272130450053484135382423264171764901677881500891084476996278873128301580414727162174150137184893790686575391236266413600966105351203394236218515182536262129535618109627752999380630302978640777138181765310810756380828920870957750485985460146872913117495601619574192334339148612500834152248583234117743730216210758568446513200024207547611461713900420462593062653932107141666641531355875335956228995286962933420066815233024517766279880547619853055725584376308056183582269208985475800775774818477838318675705041125846299865727914587730513900915066025668660318944902048387496052004565560504004455883782527972011353674012217720448344338419482044971663193099624273992437286772519890702882459893079458990396290267832988704519975753770396492691149200724971626585367015339563109849221077517541823302336371415089578954454954729883666363640484866069516729150123979205020445250150213481201526421374861165508040470605134624888864466372591037379526363153397881584781543800621156428974541860373261942277899644314282388864296991615375167420259587005581467863612514016402767477129717421093423012182541429590976100353586644033991681455757740215931715974365173448087306408572816931687809247985718979981121913873854897688124296990369453103538059070062420363199242787543602906238141152318440087648236465927592930448906822157996012031089279009862372837909237844850690377110282898018798673581538218482738552116627384174898077593303874586232197715477676056836791552826932594879502467140062576225448960482941337400992258264434282911033894319361107046977734786953934677069939607677662384754907621756437830580864974345688295189706643357444838502928430215220408775931697114079294829272864023299457988324649180428428809223348784286161866018382681185724389780812760095550770723722143431379362747771221318204506989509139751210808062960703245652507653677351979803924022050034988841027311111137003834436566108797674969821561830086310018092938681117807162789000508149511390026494546288492957088811747453809981422360154810803201331852646470065079233424933580042911068644195412356046741567208078670477244603247287704212504625194117160318788393981406196975072314768170435652229331275917491505048101984681799272470524916166376861291059381201409184106019349534981832138259419600547153179951522141462851283367028105675829432804740385982585600246169247382430260703991071954052487409927517142935999224087093595343466853026635261359841651277370251552119839460110743672610020690147661282245970329743744822895750949926457503408414248585284757011317710344206435444291269985623539684335133092494019171698845231766983643936633233737314738815380047228463237254551045982302672213191830630499812637735791741957125937939021519419327358614744184489709527528636887408436595488772297969374158256469385217439851158485555821070443013863582621702857103538274371356554970458131581184777334418006483882192947301540515199187403761733827776586837095905437180195313429086041247188667260425933836256373712015292369192016165979852114219566874769760870894150496793052455776718638874283421230391094230268528856692843598632529043779519708706510491017921562236230202888581371434768677050205496243160918625072345366374794513812695338901516093093229603329456542294752548925074888120149339858226707468901571897691042937988727077550105779878645230719269638314219178776420068243340453103634986486395378798915780701606663370158016416618361680587346372891445877353655379437830996059173944138485961899083511150443586520690848267901355662556573712881235344517468227486952949942722733567180452258965033818334813055698267400556602710164826331383718594089125242160867936814981622818244284328000307433238144634388989060322108153356678637091780030271914508808081188949629900826555981832589115600611135825364614475704542290432449872653020410952885551698393695973153912561674283782293005310595643700625466182532741281441040165824720474260391385342369850533945498946448192430709425709354027068153467144858404687864770317522651935623920453112865107127172777710921531469326179939161882030463614424571725482933280591454488032515311870465928108590516928783915663130044311389286565744447417207215724478720724560145510228959619170135675547380631685430226251201057755635135966210245524962815146839672498296987693070750829012085859856402076932768385186458268534170931225492473475551255757027878832769625268292656990776947273086480081711359581064090795527278586200344022991802864337419305416986217222574612054276098845728611542224626763918991072728349917690037047432351621601445461336791141414165320561795581503391152400037110593095127794145869602388781862336132921583024785581413120630467656903480459616124426099238556842849044997604788264595752733035530487634870376000278015053169253055753544874699503369088446790950323099520822440117816702642534442633108964336486166195955483290920555299872932923091009737280662479614944844561310537421136107913144608692843870843851698792310772616578620763090382679104824739783167139042229534949590159602624141651076783391523994191643732044577678116833423116657610965097532320937431475073371144102458645789613979429070027880293889367917284624616359170220044129986684865525981892686136925785566694212166982258209434359215281442004572565557159372220122250868564882238203224173042543172237424902716857649339841708635100166734276840156490433064721932739407922180098537319320889092466312682191492131082474312826576515866458008463776998625620418377229921598448465200086843039499275792383724906181676886458490460216589502869722004985076743989457573506861186073924514013074166274453477966607854345091228259242440805778930369640890682762770486961857232845358207524801971182458513403967481790426997335740479240125661263219315104073178309191177754254918624803664424632091150522343830793495157126813038202568782256673052508715138904877877926957629293368757727983025437816986745790218466061191282815379021145733019679564646301806803686585054111179060839506773448912135215716113872601963086412413614550736089071423014910747428081607726152456350124721718540450894551307163799045951411287574455289587795121642501308936359193821110481713923542745191694242614470280351387060826917385530028872358045632647763145169353686212666046412160699363799457862337953952505870559225039672636109253910626427363411225336314495306002450994884054329917449134243921879754398266716439611235858080392316623035600598371118031940569149027806696906934629705392262072118171635526143148048614791617121803623131387398292186515189929450497254045076915997726685075357292640930863045647241248166982089708805389200745663849150941745348505437558250874098559426862415549730388003963220336145145855347175256805530194445719635176902110281445097723829933351690239910633976946554542788261351028290998137696570349518521383424929426880460918862273742923122753315434516669532744254111918304386042893812508383762596524986077311748627352339005193561056948205203249725855405441022171968878686337483519297709964640884335092803060677561948555243410388576214309661237933324546663392616750368295309889732195241194791796750888555016529660216795699969223289670293559776658114369331396763322045198694567932065579504583167479170510860758239615609179093494553935363050629692964548647276542943146780952194685889967237028512519483620465298819902859473190824799505189764946870659308574805159958501453601246028513339201723131322446635782835895463588339823714015823267606487053837468318289376460795888906641660838084875612716930944872366498671226113660028489583729659244754843642958578860699288163347053156209031169610486589486687928995044785504201624785943897602459406738347235122543799757248140215718288994479109053680583800860365188737831734090888147486733303060855046188588195928420647678955795531147462253770130069428662037459796861236112462339702859701752881889076144876651852399287476479112803640355157657114551517523200456851827619480711340682795088109481490244910476216779259442108800802589194608165897620293830043491607285182962827258088696478590778887809917727414563576038631714624049333423832133696104450028902569919201171168832404899546816116750134994416222623502103622478124226927400223428132255711232540454951986487920590259175823205809936399005686918538563364795984404083280750448595694550378422219892520422327879758089406652864015852217008612458391797330246724046260819505559018406452632100008979869593622070667211032258144928589523834502255451899659389603170711390923211244365319295368340530855492299565699238320000836581082762304897974191047442872669763718263596944473505350556692343074351602572512135223138195594633502877168857351120208802568271254352482505100531004242895186500227537584188876864585619433867424831896477014971812705504907988662589788979218996155601599232283830708982322452547653625317108047514262148476524318895017429413688994857239770998099630223422023729041431100509729022639873844242545638067023564519624449877995640557598261227269313184366767960487946197706909711453815885841719720175388679872812109196861083595407172541116079374255226282155884773588995131019898260927351489403743572664220315437764996130023969383121689010993573349985790009240080585644911942169246016643276587466608652110289797039165776144586209553027068031430212950800613257373097552014916989413298085760403969252409924446327676984387613659220185678376620660404144085821064728240261815152395632578890337193428650435915616596691347470959824255643547325792109149445765456535678452469538812746789901186801938110034622355648058190405687744250684946979824688084079389007249798640033787730608375485184361302692360012154242457088864616169666879173424609122440694898363471878632580674815336455437817793815558484322043518971119037067413090113481050062767004409910536371375938915987045633652579048620540737223664941616091623833654339656184960294971097155451101247477389001105170625934750513281301038528364291081505092135477532895393127227010245011745157739247680267959804370933640652897512567197844657593189941981965276451253900414670412296874032097503171120047481225075011952539485546788858979297426919268096656236946182741249498621785601576695394032444625593112936345919390475517818731283408928243578971097092021262289371851718501349011155353040874889207854929087920445105460977640348179939051140164587151558627571399183550755025497993548509124557402062280064921839955803880831964977361499557628803690111788546632562256766855078393962683909829835821118794657728451605119079000725050708061962043767929520304191357474616143759996408550648618726844887737290619190553633336185505118435085049173047496959178938979667962287858898363766017821553376700959051147877519413946125119831601996770177124295584056623049768562395889201856318056704869246442764911354121033013218513701114449881683107792705617768882977444315785196006790876175194298652384409867326372071127293265632789755938408178640343995488903509723271612171819141248548188271593551323225084568854771473028137631469599855442570475594452345503456580537319056752323598546623028402244223751446758541223133649733145336801923355518733893893622259108483587630615561317709525364599720332364463605718857406586268318821653238886255140042350986615494819390633847712096880358182347770161400936335300011029901504269498005515992744229824489204663248455652114784981573909142573354194208470824930504454658890620469502310255900542854612071875418878480813334733601984706868481117445881374737649429175043542510979811288975026332308239728555483504856128471488807261643571442235046357705473082892712311275674302833230249173877341201232998204740692331649348357717943941066893584642064281899824325637625368155734577171741004652955732447140303895109044457938512618943856242552335380495474500669446437108959276022096244618483611812501094710503623843218831211215353219551814551039091716167036797973280949757922078915522279893268064447990649235225088317339719741846742406553734418891547109821380721555329812808623281351618784362929283661534238739570975689483244594816360680294547451693823941016730862586919834447352756273713667230299449283442601373353270566672520852453268499605709600896178996611280783368991690004680546933778255072150035019937367085274180280520294236076480720874475679146847503232604469954595292052326072030348135379348435741560025532339537185039892639921164937865453577180433880030206936841466965837378512171130325068371939750968602707268054724652984330690218787774914035085056251308934528363486628862425549698942603010390283527283225069189942304518324908630735255276088383929764463179898607167637242860279296780030180834683167880704887229438814081407056421537927864219099310782930778154782433408399431490409288638801180193881940179657633644735841751178438071180451647563964820935577594010398882248046575135136919562333520130004839985044043621052670956041627206233977261338179333982512693889519324523469680820221357387272874465510916400085245667597481063338500277046241908354857538233198088168132520161328528204535868615058055266877495577279215961256059945927590599601796310925656955192743111393784212108060603925801966277247170658022030415901504783784502130445424158330020583320387214965304646456880106154407594753208596844249251167043126434034754693900138219371492325856622121471079280651278446705086920666264802192808541291751793169944732826164634244855003069297807641532124109080757073035642005561646661464496411137357449754673588867377041979491011311397462244040838463398420064015484595061389823457067269666874850060100660866662544174466135687003371144887516310944985530852522448875632343206992725094957556430197412802998945617894116714132370847790868657357504016581121963967150898450771035762750568411027356997430127657080347300958811492581866936947675794910759776538766734306016711841379168113153653794605937861406722919169419810867236914791290676448845619190437801327607445236518168171322278136612897600341242408004014807112592234223105001519735390704176365441349383158062522376254634712131267487345214923692317421597702412404181303783174732615197594824822669776561441690345758808875094334759683122736775646975962372197874934138420551209043699869423566407701086452865196743169537424544649138636447786195716076873929435293010020741727347232760287505897150076294804114311383215369631401756551193325700267119537886136672796183731710316068759451413865999627760137239428231460289664624537986268210498947329408256646700829071037847934937175076600288543650919151647795834353170195260734402449974717681775601821668676044808705953734901376243757276622423611747580765847921317489551137749918196960092306458174048060630730350185487862320716781209658129329481863317205398736516500612580732673181880168936067256665905953242479878598480602855239961028284908300285217501600509033348265263482464118261498745098638688241606997762152588121736914322313411624987987644873397308092234799741486676768275410949914300839419414421997660166405417992054121041554493998219774095341187056953224956765563242464343210306757084899231549204033899266109246380136340009849019813220492982140066481443061717357944085430165754682155407880255145676975456906003456372708470441177947114035014779788324283536140675089584887206454971938254552627237997408376648637410131868951120048526222210272866630711756849431858237878335547331855523873493059034619544676203522365675490216992434313147983918362467651466565055471987393255371644736400247474133242780201224068932635385226672562828459203556769274755024432294796547572259540300867329565366387216286273519986112769856146697358007210581056476065298870015246704261983031387561141774112314860517778829839157811137798096791301703179748499134451211976343393419233241674098741892368819390159302098223159094066168613447347823287275806876492556377250235027311609388205005477460061826895887058462047001435412209033095565792790502862379576671428311820658292045631731540769744713744950382470946710384940940143654424510372927834562500546950581011048816174370819327812627956435989374608886043312760263906499094967711277585160672629710064163119599106307912349704318144729612441059533030342040352256877965793600066449704789934174721683288259849237877816904297216931133852461382809379142545914824502366943213001687857695096928060078616452530449656095830777873322042984423616114362675478181254215072281561942456726076918518127528318471150220456977581960078892075289554331960179503495412028705621292707601848498538739809104077543715128805313345678145154911773791156887323501988390867705890976101557621174819680591511776464243319460402104276635375191762955869589281906894436828875028757031442446882869900307650926570240616068023253197007955251767837282453029325758475520308545998047186706638515538676410298269819869168716868018879404310844471027151450463182354677836102083434563540290095097347424137543962981849207118458798595075756728817716512566976035816708568024306722509703458760295405562254144826605543192210465620239169537099027511541000480525346807041565887979227541642873349446363636416311544529075177395305474851140928219708702245665434086360370065188899894884123861525459888481180475019040905662874267860081165870309722765508963857244439297553840911990721688910239294394171763740551222315512615816939160294663204756909730871193195242294398435374733765011067911910157276096345763420832341539334985484429747889911191478604333821415738799221116310732555389826330940010529096118079047400057183072367255165422807459293691875084117824571130759010620510422593725591028043854190129317305708443655119020771341683599262353080546147162775750497398533242326196213301003859914047603284152327760097124326762224416453512826954941891300387007360702948646068053943548838890378634684828957288340128750752407851328224551104634892557467483792720113752999785742136364033711444578598347791781347301605514892774735281522666855266568946910282371290208160781657928500843467102534424320512142265365549053636852900547555553308752267546305928169119823595511108252863676864250908120842692296788191818432374165961917252483544587460748617315017602052869969834328105485308130377656847745695078867411397582173627331280235943015953581195682985466982742449586417781687040765246467507993363195382297075145928807770182673131970424521868138273202018876797787677770998546994113174519215362570894649325187948259595766825274278051300173253805932330174879405611286191380489628188946480130512412664009325443945927432867944888064627519091322739830267041998839470934709283243626355592065227947329243689241143248790211257492800519608242892062138033444619205267330464070110142491695624852070716265316385815810323093126546141681439477780115723967831967031310646895630832905138360837406560104922125912122168121915209347911446704631950865651927649270756766860453447255106527553119130889407563142692681855158043055494549205078530501876858344757916375962671156781544915819796416358508696681726317521532123363087043803959488344870745463225804536291084488996443237777720975251938389347684718056939947129992753795477756649512239229337784877748346474848849964729948198711668537849100947916817443092937205785581580335577404750206961483556970760067847419896940903432067140711260628296929543199498869316025868929657167890072333515533596057006198938808971442297253646479238300528477598325019495053830085195101585133689703532816528506908580344285599288781878668955401512627263819665985037437406901955805519862894045867833245827636739269682929227161876535391178128521825646974755779317895872441848733516215218886639321251029807441161270002584237429994226525331817883699006699175206993749933795009683063298701056615183573018584961321597658867475438608922854600930901212410039357959694699276972041857316695745378387414444723046269003149298731649403578435081593887800456325849022153819240083360188280864831814662537551124969512316053628981185284085044642970252401075999926602294284843655055094652862876015088001368862262891577367232969226892325081240593991837380794465931711897043901557938521488524828587747515890306402774299856611306289378505236824388566924718204859117176536295641880338352668162873545341919294735789889376401318170589013221376986572142642474138565322269204095334826306219916023543874146534527345715216785760261915577572186634721575277449986742896799185900833375181038372395575028654620704656088002176564451743446903402900294435076085175130278383404025201263614781291603195085296816504144622878197951712237614593542854574788145902374660023000213755634460857091554848452312542871535763723396124862392704640495397300223808170782940922703064798873226567889622437976379128225930900868057513950662426148931150753140458449799207781944904024323977474492902918989888571573104516451159571015597351041780586420960906707241525071997005237931218351222314332058524820002868830368063057883866390797813556204025546409469891657527348227945549416348799402283216835214074016255450914318415609151345261396641259119377552485320791285946257692535899069790512580700712148982783539930246506702364335848133832157946290467447286607498393874564133479262944204807773988709443777074522661225983536619915850827799918418781320109113819948136335824049913402632203753139124794086510012267434360738053597560246466440141350543145202701076507445389329041990998253710580402339993395866221916630826643930543055399768624788371513322202708215327847533168604442057910058732949924784231384128780841861494806508892249174431898690166321725357461673404671503442846946785121466309283199089723982712991283550304361090079300905605079659816951305297528762320262479727451811685921691171966273131004346482950557276101496573428714921609057460955572700946140192133838999439812073361788835525023513835262395928780456878855331780797306075215045600145794132783345324356526500428556607246705055727385537088875673193063722414286028245846545724683094712027513099687755049934292848595498207958122629212451679839374830185314648298362671346946008989529713432898458020175530349334249234227205020128823690166637275026854102062438446404159292987474606663841006167881569700006917754451551110026497914345830377834027170320028084265289706201164091996266026899616518110488430660604019457989214776426017882896654080805506533694915952255513188331899117454887742339520004300425488132054593875114246309011914353875645079933532215043034963011561837103710581399771346945951766679398649653262611549270387462243273415139102893387499070638612104304657924689853956301198976660425108883075170880046798762055858522940860577854798109182510581867523440441602872690430464939529675847395692901351935910954276850975577728371423990049614924017061423940376436093832531513767807036226274308507911281160819783739461251393018964171212354653505674174924614408202662384475989640843290776098167303774223329448071888186438128539417808405313409350874219495685081587722980999444802998048440781031196497481039458152725568477080722192596432555750452915660734552205791147127258463596742679907167142150289194782143730937912176863012411135846897763986906567088400028882760886933514411441784185291502596849030214876478628008656993209242956385545609823566500872905121131040528190834603164065876627604968897702943095191397947862662304186926497780601012861517146390373911785602705146776533058680984758511077041588391012102216851391671967305200114004287557204695876248257667958920396272129656814198446513731789287836770100323353115191653499999165983545623910496327672353832670724109070649906037918917484324540564949233069348736365796038632589966265167403797223728507272900021222797633783440824565201254735782179643428967744854095726068238855054071903584897790324760686143886289528546842009466615241405029485411220735487267786478617231172630295572177595556899201116989747542226182093794377167906033383103210450207770559789236755592360529286591066036846108806005385848736724306095059352407536126831243508692207499514234145470343008828850218549534001151506882272049700961713321119726423070328131856109037437419237795365894310335262077090569551358422890822990618473202664859232203882232209556805844930897769352019775976223128813013750215847847962612239292933369768524191688941826083287229044238419459447564396794611666351420043383466686895781157568985699333878297066462105189775531312753307048946293288824838217742518940670367125222885939601884610909206205155178258303317552613378104928670389329414556218346024930852344390657754915895337650002511040109784260606840604879794439767564382683348097995789351703576670352158021034653201793593596555445289724968700745477203470395137949223167708283908608164311357662388405711771697363218068912926215881190057226578624629851935696608734869733077582066367244047615689771652273079724802042751003724647755334268358457260982117768178074084427447188156643392125010313122063200094036053669226358364116950680636346201442427496313393779666354385451250287873253238524801269847023254533878497712913489157218358218938505373596807762933915310947902620073298040687232412012383697773831900801423705885505406459320762029510459227162535259197818439781633241546816376170620134814780501728286916209532508735201745766097059053739386477812054666359264478639173350975709014554450962060962065452901510048219354136691118190555308770394210484311254855824522466757167285390096627588272576034612365439318745527555340715371614035189996745062549050453316245572787392050292446859283377896221970211456416734231158059449495451417986400151948965696630400188537967780590605027442039026089636729825063155389439229569972033522506010932005231511609805465452246053186776284638339717386477582788239206438608157752991046022718608780441443305794194384991183165869558619376072203925478831836312897079567116928354842414400190511613321461775875806744167833997872499232633883732721752146086930516894437341069887796650023903244242679677392740447463664010121115131997638726879447254993051106306950455348917656137174628471985625371729355908222091478553056869092657528288447174356750532297006782084418554904868499466464798098543677154749878167855508111055580799650419730981794553881685417702848005763978190155848532312446823206870526728368807475966881717843743802589619444543326130840941691071969225343425428810412354110678522053437759514018759524304999245547000031547157617864871718079103011352930393251381401362238613495136674798177201539873236156823695079843620276189453325558982872510482908235250712230499756405075178506144202742804612122817961329280305900618542134304046940288986773166736314166936944369616549202434766912337297705204718662396401167590991505008965556286312081740204057151350915382564829660492690540484311059781118029146663796680763478988731765193915960265695073726838730224858269138929602068606035198108686609042105289776354631810656323632928233297687794399220752327494883039441255670102736121677020774394346101286275278908859085436479202708152686312581382557695873709998558330080461243534929007033426427298122036300003610941663704322432392665960359977332557488476189662215445098888450521413072446178341228957152247405911103447929267634059365744600418572477187549939514172372968203625992840192941348393398778646089672743526328345722869722261879337256239777651696357023980207230782970948969810896887319977733455500768282366688717540230950409565555536079612833467580531349796849890646060073668334497450559642030643327333453480840027758265796980281147035356199230750350803052163838291892707637505119851351203696465603582439737759965019861150483037277917517062550643016143868674043804988843647902914325765827365120976621052433301040367485330744485379395557949556350630116562369584380672597708002610008435376641802033302704598825036353095269508343258052000272617013964934947636443187679713558452087620865743874063202077626244511062038300235546094036759391871004082118315962608643928342190976719595672423581693934535706617230398792173202190527418048539381564280458893375932646192035299813100011869950500396649388218318940196957956073536279380802591126857957615219798163357241786859301194188695982589536975533828466766976033139472743020354033551644217999320175213671336592758691207621992693980499215844428577023578003139298488829201697740413486249968320795772842522863417903305896396167217487611544499116399863456042875950081674842923649018725058143041967926476033040328769004476186960782057169359956122708345011795385759613214445859904971268813385381154340225346000323652777500917306659005962144556711956917405163992554234409049597381778815891430239423157618031613490519750235876847981469935610210441217064819298205507004181510220601638309627011357515283979814678094310228993712735958679627552921674127428690659061763951084968526328308684146838292213628323708508333976898039012347791237950216449792508255543832300541318294376101070453987837038547769971084824010703798499019804995552721014541121609135561082886531549046000952102853792689376498179616729116467732297071545496693975471134057008801453112272777094352397996784037850161311431051682700645737230140232173635687185299520685729010991341209510402853865237467470164466879260942251583448065435715101254575495401054438790028758396944953462036960169148755376747195027238045549650450033320463106212691955621137533062358634467118581015033955883403032282008678812533920065503627893775072092272314932223425594182483730960176877003512953515079061405007746358042392616874929706048827030313893313824843367960403533323700936050089319559255183278078842004373857935875092977769434864543767105134628861621429747409914172010244981557095127370688889302721770214397875724250616849436715329271201141573712745702934586974832277756433023524690983175125115601727468327093448960410872139050125865770132238187171008666377895442706816924973931771150899266196409259012009760267308280639515853941658365513418755010905174265213417014689957947437256516121220614380114114720159784192394969198744172977765508027310633094318253089550006837022449000068835665632451743146243476064484541469356928454826600353288594914340236706525144427240296855022949483862538453600563304647018506425249533144917514991382399128785862855557081888190242669404601939532369265958235233890959672232672727666666171114987736856244493306830011321016798821972330179476231440533232400491987664121417259197612106164455570413026385057564268555896786546528114260190174052537972269632276375543611956155464719805021375538290292078599009138942885315306375903208073223971723971264858507534868651467991964199219516997911268391175147978161166705420714019712047740452203775703606129427411291847333291045140165829840468928662727817306232846867495950900623805942514179943748527846727510505108089088633207102168621334946758623620461029323025156347680329192600987226244266118760798165149720723680062405173555984665322333477708461752910388352524458359340081178151849719151504457459309841180510625955517781973504206994879201539894543994960199343396507413567163671732114559713373009941338923818916102986175718203832594354545394144554253169777129390943296695716397921890700366582371778473051427146475097486760044029262266567311337643930725900504197469659852928717817286898567629243188570604758732804250995006477303333971439415800960986403388034763413288346882221356888770751744781921114547781408892190481489218090084907247384876769838491803475005365032695230044248248693303121349229593580768747712883484806416294528521474979383740771467506305212652263945037866800283501813066309574475569668735235956327481580971614349731938541891232991740618404539422881361671652930793128506438586453124961327759378280827448281437176647545649559365920319660561276350423259913442940399828390145279130971678694863583177782666610286510981390300966683069279369486401919860069223575673142237728993516692252513960006721119077979990189015940130199223345968061681384325506081739004554018206223056476043103967188019686415724900791907408782973451519938395893897949632802075340711662864026618426794458425778051346355641744935945679042507661097127647539079551086299520618435281715069251525310349398378661910669033366349445043113423433492178910310876687049669143418348367609226001583593469945510985259513973700312964955644493810797981155308725964970934132884480703943528149635413766085326697889783011440241679320053878258066694082543323697010587213608525689393034600640259070862938051854644708470387755374099319911605687045440136985408093780053569605535026378456433717815793442332654686910166257997381590510292205922810758228139263627478919238872374441567290996071642785719193108345749460392528318256439269036923239888655803819012523925380470286025119488710939728673847285084648044617193460023490383316660460383208799707776174066120113242382158209552322348964916208334405993679465636152161453477495349996953647374144680904435305569247573742986499519160567108839849836235847982829445551129752767107784454151881788057937179740084480216751915617410717399910844402492511362474786423174961596059884157789794369040088053080480863211003708572025647025890497384714224372737470339613308624281196680675872122900572377813693213779374736466035858767266899109136059541582887412838546964694411223766046817027728448899888352981589671748956408045021126708187845179653656650426768886533138490518156545869804804169957766443526780769885115476556229478708241532390328431167260889250294511394743320016534737897056592329536637837195223024509889459894762125176924708007288084305098346632015859523624862860074467824899798650465735560584172852787599581184980023290527265262219146424862949275508844010635312161858219448320107845942473130673230540279744428593821729669842876605973099697860367212521342660411870446158416099064877688054452718962262521481631092877211170442375772555031042528152816887103168740877535789190575090420688117058602015141810612473356601957887938741472969387020277829889643891467664730202055956344950816696543078651225977028447818556174290205020050265804234198495698682432493654397697988941215917152233272215550834602610914088022210652648140529977419111626078813897845812478181504721979742729505763750864418692765009192957824547495877437626548949468869548503681221544855405356614056418717895471571484036633693137513427347487646543038501325101905744567494424313009404777935346625487814988600700107188731102356499291296041525220037892099321652113911094620777817695781205812553786577651525929848120789164055192711195305311292067298336971208110814237104164262442289771267754980744635795208133371732902956930719140950969064153383217824501917132234840430950448817992370124056497611652378449990905184732193886930049513308921603480530520046433076485834818014569250462451974219111170171816648451395489159690621324267278381792990765447408787671578093743914356656861257133337252082323877213776523011184137524952369853100548647133969074726909533478889765133147642796802232516763912227421135015656404860548076941960418716299096083587122236560102723209453789086009400671181764919157928737405267414208012496968268234085807157905232914281560837357283591821145697031728466931089061151754590763764543141310694203096250237098876377568414810936242530192936749151163347516129489901287477351866344366367294835575572714012020330058827464092629683422987081956712480047498808191073543236783416392233002463749556844514984558291627569371022817466919492083585823865067616775516760375711299874000701178126122506870076390478140230964440393405033658055072597302003943218962792283431766657153936738800966249622668048225757793330484936311442460643869319571369751146404944062576812698075421122290655285974676458039995638381112656169123419270723928003813727042990495519084623424463219594772441279597423091564179703180499535478363310261367267657693721108228882221184458637291531594063229663961404518244104791201322504775961050625199029746641747181845033982013313884565577329594509268380595219412045701626615207879896209575204445558212221102428984894235251964174439902464489067871049931694524250312476316055419098810354068469390209122288332746823210593849479439387460124673195337739644929400375118924501889951282323243673833765281303463059036952108753588249873336699974857145245395784479149480505566322848988572422552846944904867913923752527277505829170641671916796277401103485120434584991536527345881637554054617386260803325304326709657009784461113128586058038739532380474964327659959623512253097423917643710417319169096869356690815802871926794698642132083080251365751021974248060769269332046809146852708954921995809126924375923914040138228843504209840636940380421029336789582973124824766393161846489912130925487272815210472548012296977850251000054540840230122863683324533646508489759559220481225606591024015391295397695116654518715577199411772801250842127174652913128939178096337589954257180052396391722663649304455082706623044462341065421711718390793979177258790994014094966139232424476215676578925232672162642996590445062585365251897900274112698265125807665766009221669758390278727527464393393190074415685480141087408232745634479435049066211461178304205510207768359024048824784840806612987130760919676033188321195178138565018956009430616182701663815498708954897174122663307712339804934852591283015375650495727562335309829446397874939966110913208185067288790740159887824137675153713482277174328963011741629793115140314873251971747051119465741941478257693711697983033080829251740816351624385387778640487005206547102639997212544608369246148602366939013287730828520873140573086242122371219338442989794738776795235764506189181201040787433299110471701626850877010723963088151510038434350805368452395367635921350481472989646185688264592538540382182587605124613464073917973660949170789783744598771828268263800327773403977172670489547980818556693846806719132789072676230369477670122816335989454730573603132635891554047850326782367866430629110892765284577552447718544293756529463433610556745979368586382784708572864535907731436655961192688519451175713890532931126382343401277782361910392273664069565455773447389809577787622612575688968037683066933803015473910380895208561229568050299832408144500081288184860216894598837093054222583079839624805666141682869864846991349227042839041403254336128632907063188648428396532266607815907620558345122916822453746916641930860625957832291654064537339068570381528237647873646033573037179549564228861465639949976161905776172014126020400607639939119219575180191496543419371026489804833766886299267059200908643064068215403608404552479116126312085794883375605519256158065939135872659532756844691256132317095440989983459074646806709743755269177712373669011228708434741303099944037712046350416158151769591514347623995422892692058315741890925423483752277642260549015544414163611415915238109010459169314216416082632284814798042288831246453842588597242212912395749617792649219023265857408534816135081724837360966463078602322643922571683104626058649851385495180623707107517897396109679403677302325462596474326119219090605427422481819862371535105419021071215956536719425139240567042985074254824011200990013358636752636870065433077790981024926003735809406988038833298295595492632274120985181835310137191284008159055900891947875708715414187617558864576965256895309406627544061776182784382250101864580599060224296446954370953604163308178215133898309203555208779540358161452473775544408513315427298776950543356198018196020036609898796937302300194666117098693654115570144085521594859307974413430866988114543653339773230797303763003329334052528350455666436440043115861292731907593442632460930822097318310893912228369094360053199445139290082806201419522744016039321178358048111913879750129684132813091191307520378394387342379312278274952567286405517724322050515654613764087422796752644067097108686999429429689743866354274771876795902269584575616558527690549416223530318464963597240686790205261445451498318314364968942573131404886930840447864067859079221062418571004817132231570130568970816480897576605278294235790183138350578207644896983847307147309727448201878766621398895191708239910039255247244612058377695448054864350288140588975406745162051504902413879704185212264595042112020939992704598030728244277143994867486166980384701453370921811245686877458605449722846009094096281255845288531117723817612900053310928798658804681234602104922199210592822733684642981371714897884016510093428590011825238655007232975794938070132755854400116329292526944787888593991882695015971393009258110708504587819562594032895757688257484084660290350691330143747646102196403501748103515479231528690574799149777361320743800345380752411528884386913927052139271476103352317115381116159213939990777134105417600164621369467215320891627688568611481916161545358045435816781767057836276160567764885663694147446664340850940241302799952750192998973223243144520690363645342347264365212757139818494671603795391861861525098955879140369706544322971444407580497979314129802641495187720429269782033591229503768740717945001522190659528291804858789325022390610149299557735209898527018552788050393676572565193915637839177301380795054994423508244116255253623787253060387464390423015937891269759117800952014210654491853900027268696747195607939198421027636560429315186354763520347679832336608474505508777045382500470423277122731085922972254073097817946225670667024726056667649220178876981835852166067678570194031059183477004018175810145841832597174448511932935303289495088622036845965298627248949192833259395881397130526460213664531273020761489460970557889153256950328198040146697151671539937107979498924763758793940104924869418927255854984992969473486445735167211566606975161805408634041434089962886965026874119834436960861847048289885260885467666068274317471626988471746606346718228577958210852986527440387544310293355779285596103961807147981818081889337754547708388381597420144794889052752674272634639946184071213738945899494856738171044270185486814045547829118224051207189513957405691873859166193960503542181634459422970478764049402026501434252711185218730087850371593062973245660686703189478718665259357303545902116180765195497285217480459332495499007279283501097018013849848856808747833369310348076777248497965141489561792804317436039489010931439744831510450010542157917008380157004498702153071873743063961994847848484912136511228727789308238179321929989446840527934242507514000169963057675313475245475927748230682085665576475505795327463974708185532406122112451769890856522279190680760531386646635466934115471345879828111891228559773661820689098579953017762718185066638403403146425161546643665933618366128956833049371323418293463317326213696230053589794715702088619257400735708493335322220741033105612339553874985111798099071607208194713301599038073888087030711941392750203281539000707820499961810584344362749101378421040337789899921202351148456952651697369307499276761342052482711138322567777965561065185065464763256778299001904319426861506978237212685108709795260646583547916416048875322112565730826229835711505500140924952832981479608787152620899824611145838724131963626180315149447451525681409443970499900950632161242353419018361045653087060863798076643881945970019696097823487808365903411332865282095309234602773319934687294130414879131184870629656940106186341049702099139819468019473567587946246461647476437808411176638037603080939819234171485963252110696191062776181564473320284950618569506669608423034821262626548443855377995455601819809837847684302956484604392713371855320754890774352719702730089819489419632565183092378583107489082369726218625774635482589446537226962031177771750424318190610184430174327704095057891228874097393883099480379361043039578242880270765447032153229395576838335712220045839108778421987809529953996211565748836757639118592570531515042637466982992885552043758832372004127410993710544300637371815416903951344402741421793692395299480828410762107091774425766088067846881742996519827234840524085605271688284929310907641861080059618524572720968465731211171190375910680191554205756191536478697456808323203944870341174489993330182917381799863088689532382264742035207314219773059062849631729083930544012180323150445625457324977540351365788929246779194157372930298023477697534359487090595762862004534242196262451202568168257336013573592890810806378698613125380796615601856764906315129602777919927316157482663679936724763034811660172828567969418797309002251928461994991045926751305889880726190614794711071336869381337240162132026984369961767644998681071383200452295404568784624857956194924529361964746928144905230809553066183539721115558306364545799068161236196047390040633916366273931119837727245996540166308305052091954543327594118605724621974212160864041762283388793509114599765956270851706150455765373960725657487146247987125719666495113182598392323479712939547163229707766585120724235499729649931987082456754022232314952438107428717702677943601619632227322737923950532033220523781040911762080600930923647530497774008678239953920170361173941447157649454976484051065516450518062124047638932977508169170130269453551894468293681689591488026650133719039578629419164143705117982821883317936866898705655512642279845922109518389075350763815574384803087319457586066743791777238775929415161041333887989894251419326631188521123248674352226483613195236587540439474056596824223417290993367629726453447125227970373549215512067695303764865986589932572152361814069983089211752391452683643143124099885054206272134520921535927725112343492050572921947323434672254266639807242264363567456715747450741450920591949184192675134120709463953931244103951726081262351794276408465234592781267585364757583271311175199298835527397311326326021239587593906727394197523486138387521002710391779575395739073216709483505884085277894834901964240791331155732418155982434975605437625869377191920424488543745057150412797566850686679988263080857375492044254774424030230809583381932111702350054458477747535671373567588301835833930333891495030493046739499759670768342230573991146787492716034675410150945083886746078570696419360539583367396402867718372610234646700512093811780406364527873077821141887295208631587399698199392589788913360725263930685153443056060048006762420798200955185584074927737487275586948036015849296652758816726493382240407713802310236735072110370466116772024097360018022652789261971452534316990266597969302635045471632651223046682614275084251743872579465234165842365660998847805773528676321933796079643547955160536430379795404394343035971205299640543362663729521372781689056586239893028813997821439857915679569497358149175851413073340059115329303192905264522075879574367715489749638017375554720764815812747606263046562019086068092938170050908655035814180372263387338175233229377283246639271320456426162400347713596775690412278703956051632963515485664643240226889422264225590442916943329272237859022975699206155342261150742751322358748609799312790501046565753067398441305713731972060649202180811884397435531458934455254094895873945776439508303224970320776538422125710426318470365875564815077088618136713872995226416948441396081626292274375655179502496377503926389019966844939072783467135193740209322243673843059388844656386936492570356836489367601765532755179455070955804278907044344312341453819502313199252559029469284962313443509642723616660538822469416556996245995200466024733512680637844752948259436481603882368888365184434585196333805219032908202285403123734251415440973324712396251541539232301882930079294182401170285286191917059132040816646914763112261422815073194339952980242740704412954681984217311472374999608632191132603220142933719675783207255282717721585960135309244318539907813658310141074370263706384213931294195635302517585848184000821039343223894085473314111080484756894382919905095534395446424150798582355799552283018311699045291485434711778869482022495351245910002028578881905809519265513542768688092560977170780010422727938712841990116188387029904562443116149127965366353326867842697139455390045382624724386198954493124031400106360339676552701586769806703473244037969805269091510427444099637794907279219560833328949538973319440689843864017319332835914397700294357766699216429176564327283491153574849698500024506483582554022431296782400047348155292574416700527994781707605370226881564679302322072133606124568934419586482268191676111633541871120925018865460842681021529710277860008317298281815500185663808402534459025909217350782456414235114065406784093551105095091578693422055731230148660466385072881270288392438287794931001044527098043569897158262424417841922334302434338150981192714933865594889237373078895501292787640525602672552355298723084480783167152492350405964741088407229534262986134247489009021821486993563785119821752682158902321850695818099557215330691138669398002149778784591189834568193079420227441030542417529782825240164353872727030510824099404904417393173637196953777350112798529558816199601403363680484800701383567237494427313393527311955298205705441919841849404408455241343143693647342983421770676164475588927672047626368828287616428085887163575541458137699986091581568910277024126502458571034457789497464366816265659308793739145072688955900788352522842970053355738866987234943951592943247710169371777292189252609513214454269790389090432502489877084538107082149035530575099852974884608218224057475511529150530237954786331443111923241557579861847651367754993671175944811193222041671462108667597856726145289814159866329090960341385654325846387808253684921160565196384981381216726981746222903188479172424978356735388230417132481405609769365789627375918119662016238424678331779552501378541270281982250611657274293532268874029897625361830588591429968367421284190381523873409225012411967713787107033415731335577755719463168854799593977355863574463011742784180345174559153599119140089382497269827988378123148071777005636228999204766261304582008839233477580736260984798233537243172008109902387428695158673137797293974195603307061859601867370391756526206901704961302830244839872560072039525275076689724623650081621062895884502993800437835273413894954129000837534305711573152974442398410605664951240875389066334500678815291786049120400261792742903491749608093686589012306273917368577827133964889124500874054581632587480858039804103147968189875912931118064111507389027550839918757198986170298103631007369065043231361077417138842480427963428467087079244998390387096869936734568496878227283129537018779207420022742352262509925455077722177624614342119617562624555440508123224519711008058895671194646388928420488943896527104078818305544295433768633895713982126833742912055241537631212864448798983477209587997052384833934469336249034080681274094533721116023643460312435086333199417264787108521911433707057975559002169160615331428943155570297687427462599511690164563058281327019215209505680491083101052101926130281886359718675260390380638537092676142231045524942582619876917334686859363847814447115411399514059705595550755363747264754764110789113910564777630188835664251511538878440749677796281770135297755673638791024277509412964158066544893972780823651134814766057364237853101883825191009519233022806090057802576739945344369219911713789666624998341584139982795476117329327415689590758655097959401619910495982596584521096949073200439334667207051367020683547821670077031313180746076139308880310848041565765729110554704766051940831378294064270978354789586337360203656323372545133618850553686523370951662825626540414901330931867507342711272303992511758200197949407588526665469337737477478033303179506924089415578804414092956155278267062086700505434389220525416444944446116219052073936062000803990991504810156539776453964578944309656779861661760411947587528271032536310925349359983884821926944588826934619297423435184648119811723610560227928740501553023966913632746157941890239015756114955901408837058084431479272431004592301976297561752523246708647013970461938604179743999514372845506743537327417175075822563037149639683990860545424116599836349029839918563434452637244774905624900370595299726558519458024986357224959922176871035044823571025793318116469844544829299887742637486393474502091615446820033009084039484115130013094342917435977765776074725154818261248635893927104921098603598152064284541244511172053088775846959103029025117613712857979419600275986558038802545165805694355866538468568730251880896686431963286477236054809880247550327268214294185320038367913418924255752797804767029693533686238118104959901885658876778549416549173245748818336791110986838651641036421098505042452367868951791524485393574081363412293877380133224821348948945144880282363785321065945913938906066008410024080102833472568274821093303172568886291546586364782804364138179986256756676038566828073243672865243112732600799661774688185370546577603596406909586248997788310511538525321805112970060678112876691179834533395605648537629949128884197209101762256909744357061759500960478227200604637750076384556396847782185098076160672369994425107367378277880248829246475081766032984060517787454986689834359427713165247310756167197368025639666737767626667378014513493118907711046083775181044822395545363754679972579010534420736423492636765622906888402124966796797132324543777056322380468899986168205273614483520732271128099231847779364261317742044622227288797498125514778849179130212452180048985677714168161165762629773007407998377776469036029830472661713350205378141520473213958842817270842258231270662513518593387937250684524032471954733650459142391858697762241282929096010667551610234155115074810433078695849973763494680554514256530409896622666090990814596094821348179787260707458508925309682665052653715965361872898727756457487350242054113075438227794071182970496388994125175206740643656608432531419937009463511010112079064529947669413327499491856101613982248626586714393632679861648665251431372577526700515147112523693325136641704056241462164975802422869266502814303694544830815862571551330918370025218350231212757367661269588196244566782570255362865219087563326366598702002762993590688260228274624602889175957680581239206734522506739771334198462754030408201937185443470108483902567990009123693273871315988600159279683778755615356919122761550015567887151832042490005563546670598124760897139588887621197162079037725267493678255648315875804950372151259620707847134885657327404708448445208380400784937584607552794108742393740192061220524669602775298686891090052638467723453855387479982137741045672733686744178640878655114183012486774513126943225332058643784644831324232745844889386292574063713029569332707708503625860620545405785532222668671974451067801620641522545992149330353915543984002041242423697173280011701193191364670329533300419079215803305685693357754497007365037768108550231280688453550968549408930796094682039252947239277811169113941299413145951129695892245782917232473537035272236293741597552939700300522297597346192459190915497093616028075470685161221616770391464951857260143157843219776970881299008840129888901789239916285461310864067858794746091561026781094320129301126048286041232205935398157075489719209279659683608206132572609972075353207595550140237072189518394273664937918153789000259444776813786993662031201008112579357823473274111945469891069316933145996629871811534045286609280917902544029256496923850256335279758635308620567853793350634032730817932436871708281561881638791820405846828452205781017201824339862182746225965853697172285485357875199491332115284147679626245628479096472117571691800293094353562163897359305999302733460615843508453198921678691415078479329142971278593775192055548964184083503243139611319918256962157909718197243282674149448438881039849104628650403509795191052631295931433421521954013818212691447372526028676679015304448854060738832973874526218193070642763741496361440925398308926404710154251546605259883715956176918994371318650189910076431857342305817879885526487596361105439003445216313549257488729986383099611590705120794317831222549551412302607274210983784889530689834460403402615907182815518866757885345210357957164876515002074752489771914286726977392347264834641950701539659631560878499753673099310373315494721213529068347115768829831929536605781821908073057934499292097212717923697747211049407864610757337827746238863535646006850871937137699201738185597852987966291838772684998631493268049811253613402202015598734479488444329857944820001161853459363619983895968525871915104589551099301990913795979893520274255955360671949103597454824178871987755362810981255540720334062976862710394165529075556407843358293665416709628834339027317312018540815957784661411432461556391666634276898644232445042980785006528347035619332974068519107293158892223611575155754737631406409722898770603902219615783801041989168848102289993105823019986270374797690059613640013570892113435687782573544696101120525060273615454139786895055186707160249528614238056076367867981378980815788057814306087282840586043761826970830546595765603540453320841406490802103586846329969203146611772517453168885226403313241605190839422311285814612952782971586882943297314509546355650605050739668886804249451762972097719473727467395518200692895592774341565003020231084648919757019509512407400548417008691803986793249329190465588611932881963640978243586838427292271433084199503624651203999533660474626920469185171891301214363501616319247818123458896287439095979326385140758915458221300555641305026727542295630087319975730738409309451371389990834529515370775064153982382329928431328750609995909590103446627045560219140146027554619613902760347557975645543810899514032701608998752321978309233968348838001572683323960499526331821759985597164699115484627914127878264569148269362691377293654982498677463940137620967411347072721882135271533095333816036803192151079451255868462787325324994105458049072403715521182452397539786782091488670734271401126531963145427653893548349071909143382732258256850199355598977968933328882793082865662610699462194238413219438456253682417022158286622090518631053614283753135119838876862246553657820697841249569519323320062384175271938406212695545315520233788244901913300594576058154230219349820056270263927905364600871185383633735029220973928937909432556254876126648032311438825037890993846445007470993871613214844573068590261863845833827950472061851695338650916843623944283991477593039200016224542281433440136487136621963828140298917595720662447412344733563588597452114873105909703005053853225689503715474578999171040495871195988857631881859448514741996371440806021519274145538500137183120772391482245133187855906562484590023358771238957943792726230794713555778749278961252680614675979330898274879707086499983361444506651317688514069518598447312056289018667308762241098631539362019809128292282023735545445961642518753348169424452492587300487447401531049952123905300856551818382667722892304040919925358469245805875057618619409868746818831440359107393459063491115180673925754871112065709931651079009529807349621776690594423614580259882553987148267364023443680863880365750115892819144559778668409673428261796733184212273386191177446645310809952853010283194953118288220641325510306669318894748541642864657694248325083497880092498818973459143783060921489044673055182367431319520351962569059970681968868947910813458172355339127363818247556564351167080072643359095508280496144283330720615853118745354540511131252547491140709938357047419727046561802464022322563926672547406452507241400250335659559397909051472149347823667824023763791419529482791760144956378637792401762427551718509456305908406670830271007508946038996163403047837061111018005656296547483766069700355067249120474058638367454598814744610209628796880197708927684122003771099485686348582435721134762925985948150877525665116147098442837352516022998136430379749321360674811084013206111523972822874510707848865771977631832860464006886806448765000546307164335928433837928693392498158518093980703012185280793274394422385389750349285567517542080746495467918394260831155273580547718811781089249846512415824899901178218062586291945749352505605889868128613888369599092194896540811185163722398277457502544096113870000290965728217818545989243841727114447835746471627299179378788641380892675984119127071336964494333848813104486440798278764612470194574605575755645577227897012443356151674865678455253568711635357487093825511583127313002131978598079709131022815461874409830339139438452849514266980825830619994602527844707937644588368059672368449779340681751269595658998941139225317618566133179778881814464029078463012534823971065975187835164649068830203874424661820007829115530221335887738953942312982149826492508469226741087920009162920458878662840180184480341455484679893068253270222226810075259809009617608197046022059486930133318466574629244620139955074681916075938489685039606579995106214890698308846330286818785418515974610158825926740277646923351942749420275872907001193091726915630666982933979487548980843267164510743270343426336381416501396298584443273031870137443841196391608849712604448343140225112798555403666160741670504374448385383414413424779296547613177128738913221787332917315495897423871573655014358221434927932579880398895872613679042644826924099515346501680973731245368892197060026592859557348805001092832423469332556849926159197204655189657381549302922868147375252421105361344583166909272397199681198409063492995878692358929023391834504588830615741730046880990405718612085510875373279060859145451464250752439297910456055225762800413070926440684813815601541491322814964016323722729801309848063972843811973489838740952530225161998201132807942812362229980949965920420075612252082889865427435836229989194590725201703863763160344459664223566164192519275971277187538678150210109787887336945723025211946536951218199825936660610579724914983948219622997560093028085386942089737005213424221820722240152336465975167592028961015524173096804510509635769780843404686483817154260802056631242806553202419654485875695042364141481010184794224922091300794155090534695165473907638225820782316319093984200361125343525769836853999623047833630523241028196513253430714830619866644759680974044620346505853670071669173436736203529627416654249304884164977407432527089701061222967065918084131460174283212368888447972101267016845084300532980418353000868329893373389241659984803187318800991910932538009232174000362282814997971825749090880631884804138053508303676852420586625329239263919631828818550513518059983010942619844199453673686064327435818872264123085193985429748344248485994889370341949494686925968591309884955288277763085888261832078761663163940109400227069918881348929944880214063664142760350306799078129012603689101546340365163930623058733375942970918735875781013489999963476602956064402975375087833111176231967347632015039020543680054830319917622612033920787124650608700093057928585410111878513510137155691929041751137638376363432797138076606930411309685052939512449795067949859708503474659001979544906219292818686840188292018676099470782076832986076588981380815375354976816556839346083318109932240581430766550459771371267208018191027164452183160211543329324344321749438119442466965759182860600716831645822877144195588446726796578926423409878855386133520477670491217813873018967701223413188119599950316185045900999352538826415306730159544760649896960060457156426915858025425883848049562904985441569099081535900185861784053665956683415272010862584039069886793899259476214559621123994698459135265594599728663798661481384392536987062675988677642857471060072780234901811290530570614540776763956471421242522737864770949391946868648894144619578457226571628690078473164992664960126748319478388759779595549650610759484489190720120223658921332817925730289673945405941246679977324425038737388096587606949381559391632800038232831837497915808221701344552577820211771568677584191050384251781677009474545180090650048194483349822432962771180428878839029614551784375331702234619208271850437146419468654145546081476446022077855727893640517880463901545570622793998886133694103893627444579372944362377232444310574001472374108572462990966255971455761469206761345371427061547821410721779454574478328725094368492278212199642955695854748840325612035759880018026036239743756049085263807025403969794561232721909341070168402290321687294141083719071479764190443218179941631058388936608610697149665763686562484002664129688211850088370587336415467327946459807630142016914993142781100014686908279290699290137063705413783801067668077341042741346004269531960629106300331719111958675432376291004410289755131358819465167011942745357369472860823432736445382685681716175192429826728155747190649339638972102655772958765984541923733793960473129442484341997241867712092165005718906829313681273662104338761280325561071883175399472639691015879608483468003685029725800758620010737431424182493397061340056805030816464411868273508273562528207593461982440723578197051212009100443063627762094999096078168825447516915703925643451370515369693703305514096220724245781081625084211897333032166682592776078961405428533572663358169828637939421004438034221198752042639964126285088640589262886964630992648951583548545749466003594044625213628143334863759722045464751967896199153122995931587753810120607759934970800520152711648252586953113671788379717422418043808529225844618150926259462642089957067905176696031947712302921518669248510181505796953585222467807222736685711587058673390995846524661694725806932234639958438359920002671364382520821874554374107240650522115078654991732280627358378053247847750139879202383356552181459153602289844783026503729396842710603194824562511042348802680998837661421817063594175240642183855565032700589346506021888145318874734387853533490535258359110565304163939775724955571552585210169624985233056216256006502706613834605161190993280588861020612810502279424579419289859380409026778941925925403679668316900263879763802253759157419699165944209727414960864955521900534421123767484385968829797344039318095464395023926148218824618548430784928307191552176792434030863285208511999720716273570472946775803784512050590148951891429708146407680174382577744142114333728081611456213095112773912916905649056855136016502037799351303888654911445457972445786846789290992245827722894718157537962745229746725229906921746048179712418459640514749596111840994116274720621843039446513360802692095678017309645153124158955418447779709146359083180117552641468280674912995762308870988298447769946389468522766123281339327232280841397838596721003204156654806818646890292608844947844791096628502826481766237314606418330888638205194529374114765335010698204970995272308160052964420512660513033460609026007808834722854666069170590731956691365531963933670533768780404899648004322397020592151672203139051001666144923037874905781135749071704289477921969957954641514562708917401396418006729748614309995000208782898827501439796567332322492595021886371972710491358665660219872340897060637321230898321925901920393884684976130175208337843193863392827012334778052112001044120900097549013525995289259022745531779808814065384494349113649832682830575249243270953038429077237910509008912450449106711995493209187094821045720894703221701294596094293349473663266584201391582258096292397578580284623650288938042213572172261149895665821853913062175265457597952249297199297870644062746142024711367054200996448064990460003239307637540346690935959354526086299774571276754371604194317952682374232817482744177583875167968132436582514974475897933036376723017971943950248983940422540527199204965423001050464288994908897701975300431596395603425453749392338830205334225560662556940505095070898540907278258110209877064405457525982851605461857179950828557161899926872061845236496081752743316720387985023588625555033289889730187794559425929859596808295225396542828838273890433221727715456878517525805860329583068087566855628292750171892663104753808583652258940904959062212059167972017523811263743956927524500939825767950546780306472582784344491175404128964762741082424201320498192237319389834491459140368963046408601580749702116545071385256826338443772739324630901300976574370766471485515653988721354974172560790170881407054774388343853712648251570418747426700529944148803465709513451113894200532776694642575192334414361676553890602776040069419676508969481048237649664696790559272811785965718199052276387925384591406450097972480994012559678794782016387212354892938180679396143788886515626498452505347321858127990693597999397138642298628633561028323839514982199330569918959276023204099037430727767744757872276238082935866328119590834848874865830641939067650566010243410629977440438816037155339258890617680453393093414510765900794364006133863484259247030804935946647146377977756981108970390556492662773465276146884440428095013497482290075363565974081959297720844191207115300698525593822969141650180612305373634480284153690080482493969101349452255493541205308821889807355565422934426005933211096123100879201632788129484263654905199928158624789484258359300138929176664250751551000541034910834128402681010691306808095674107919266188634438577735857706372268485550639065743701729543191968274850006098755190460800171969771316925327730624331456992800496416894599136819508114581401928797263531167002800157689659660783950256402447120977009807796465268716184699746633464309346955483817883090803494561802824942552552316428870392997255853981250448051589232976456277655893424925155237766782941067850498752188102360809114965497514838884538530778993896134947743723234506080862041830027572174534949893240490439938824573477128356479381273219732280402872132423869861734406184525936012974789504254751860561200691130707852438397619662435628722328477452018933848900971189012379971064073557495622194557284121776404002916327713863137363593526700928003388979299499286683224957631636423357047229830235713028621200189276600916603499232181251492594530640240651304734615081923188496642086847914713226814911768064939536323230929873386632521627616639293530726967462318497529506034479522356466649463773110657285963511413015225165681923523641712867743727719680471384062897348189473807646118159880978762153102070837857079050753536467594013654704361269298299369690843714925847502602909940654888578350753445636361170944442075539799021406877870534038002457303583795074146516671975362165322173355285714546433692218205792805671413254703608526069728189842516217944058763536426571578135040737028199505608552488643977097635836876551188196298910769515392694224276527187120304557281387416647299506191786660158523541041871855659838391388995450417966089213595124814894416375456991205696984311856129737637992545635546861315658317619903520692014708859947752414687755698294816641257444712006251001433736073250684576903428716729190564216749682609179279187954029311864223704320114035579436092708825659495148622768775848750537309589900814320038557653858310455391253022123170755375564505985052612719272961372649610268003815696383817472422315182815065520414052537075340440820185304945927167143908232028643226484055604375625986515100881199876617520759031932671953230603993108772346534572658846241818116583514761893500679608022020831437801395601889214559136852877875635480643496596930358618754831920241480234343014834482426609514210999161750239120112300875032711565586362888803520795570292850051918008122023710127975753804613935479171113944279195446316281137554816039146822718980962108360938211491214339068174348728879986508476199298210862412112501680205671994711064508682972312643673622745306870946446795617111753785968022994065823083902701710057045673052743611039679175376055073885912146475150931147375311789903237679058820903469443062616856380703522797360918469921233264538841811741225660776201923920159007071552797975676945875169243708829231028149794472618867267566858771417535458037620949770695251012068634652835456661736793241073245438363948207763163030755193081577416726798006442247033812181532157990550719473531941275373130023300467372620036613799924764430737110967364083894865942627178493580589791097887763202847955861375565034423140451606370321325239340462012730736231663270129641451317050211977857355639544049793854860151561199247832936006566085832179494414509813678651128934188316307500703775740839410880989625544436592882281131358403458579133426909205671932717348331723039056962317816239188784024168764939011374766301758845864250285327159698713068981134215985863130598120898336460176405089168696346072469809972155408410884613105252085028403738666187900640638210842152579678243434166508291472480721221217841530707096671428312223983370524044792082683143541245659921450150844006433728539539993108159010311951344847553846429598255226027487273117068443930529029388989827087910921854081006942032487648674684352948016629506915090277188543010104772453262878812593671025540937593756394853142373876040180964300015998833323906785723257737329316302675959694818672263174337978857940549629663283156197128201754576921735117279178176617631413374821995416545954209365914819441614355464326689107834029742492705366165250693475027923983676141413286953391443270647275739964637083657074109014207958311088050327256462567673930770144267914753548757955081604691952603553935634082270082503424966121824612195953126197141643504426822285620956431837016318909392321937362709442543310131633997359145500269254782109900752755794164110117529210542789894942998016101445345521703806048562583856062167165684400389412996580935996075853365868081870139325185495721879286104577798298348030430100045117553026687229415919513787420610447532962845108217092258910201943188403394528381987348669372404286006141952748672391229403129554406763253090590222948008639594045067384991484195717059069430477848761044478701341629757419103986848993420982979638130042675565782547208017984376257170317995101305121819054535860850621540945644002248280614655812184909524902334571935402707589380072495411075304993124480755569474425280457265438900761571909026024727925072781068918754402071415072390872353149717019052253496079002109302105648940621496376588256131574737679615055750909249560642306281646765161961193075236515943298734703580121171355344329723218924929176596693866829711184901780799364649353000282309312720396754571505633283362702503310849205853056922053211871694712346897018200121011211771205990771274710599400124191113980115110909599653386587824492804492301375418752246110930448042726375157568745889187804021694379683160343791497833060030355493294189853499548533422217795375457015303829480585052220528316708362449308261947690664405760034850803679133529486358890042655447306901499190904069166652213253217987042633133046983606127294644432475991758271246200369367747446372456346261853649169202498101971014434046856664194457715493114719304742397612763326692950643321748104630550009533453728892403900953402160898147490375767283609065692649717710707614052360251772530191371757568885862529425452588953952071612814921195433318177392506053559984400896481068252203634130483426765930714467361398525976175704326182781218056331146175350770017790495139542221126338867110500267553251824785212227988539467208233644745100636767530638970954355294112886700427775119103029512308389763659987519955228417936366664336905805257106164987675218589191780883636587729608319810369989817628779016947664009406875001371763758570230130398418718717921891719912239879697371049166142890776277464360868248216582826968546990106934298742013740296504824115929555947723724832127365316426301521741137357738013247281928418016048700698235360710320360890675090529849894863022589670202795268691801581446781416170220711938857787206246387893658013941388998507783331986523920913999916048229072582940112935888218860061389434769287028686245707620521756993489798490778770373152122830298060107729972407693577364517306643520191543063562159933350281638513235833878450653463091585321346458067603405277126315562678648839163416171610393036667162364466873279531998830672362805172598316449077751593249702484479304332349557979006312395376442007293572556397456788261711427290488528795465741805129507179302070826695584964680692453800410812679505570246612559186719478014920119882914177890567330306036904535278059208150010719412780205491258156686900319081589008020945402365198640584291375472324584167962290214667776480532930482438568262361557228932737904434958872014590075000023044746488080194447738317495284490358872929849922822163823074818859108462704918718229607354781171450883978175646379776782687541412170101338459487955547345644711398388736058198006242273069454853603380631092319142595960874202885187739707848338722920581746008137578809253142588449084844342512321951130876552061615498592291622227194879293769086731246707889014197515927907575163744737649585625600421520895315608558604405703484888701130083136805860181652763704667307008361109721357189579073511124196727856907456903290921555500002507447166416890314032391383817571770653884172487219794070244227193854102149749785063410655499300523353257267198940028452160849354947659048900919701691705400545097895319294542260982410696992538741396514469251834137082511471528787063468483613625939111789252456539939591842114082281385107867454094108235701579256555536961940707930876204014522107808118458907358020512681401523882884421169842616539241334987181176537705862135406836131687412227616535160746411618957550945875312846428893733164275851479574994104203467646564471016660183759529764279008635420270363303068739738379587503659899420106446179433742262435236923185251531722203954482732127393326454839052452202676333809799634026020349821435769483415235021971094740972941989036378836795298996758513038758872842574555591519572563005724207310509077806028363485709710979829646996864212630782105928291478500370698216423148784502611558803390847561428624769971125360641737971510926442202687305023385093156474289558069037418940513265196271698476399294686799268126276066209170228864252066811771552087614322536200360142548594124011657396788499723847789351503777718760715903115824912314492241839716102975959153487418165939337088464753848762576512748366470562582393463014398301035182143048115507465942665731363769114501406432246094882032981287276547525840324560278387054891102154688090280640375407887484802178259285493686688221789355255721633865323716721768723269340605804331443222874658293237687383062911027609415593456237316504625376786815192208893842149246821122546541204966253753143757612888464192690476168846039349108889854899415304075232405115061828595199967637905215543319675213618495069322954520912569921855941054570601025866792533681910549719835337159949017414148232832341300879836165301586665832649396468879596882969646605474227395753150829779932837331550468812906095841120193212209663912756446222313357961309589792710699918631915428194719316487179802912254932677675669874930891427354674822569647602615665500000625440650723653473813469768718996212652245027188572769756718204893421884660519586481515861908886840765376010869407310976097786676849678194865541493298179248278716193954708172392628687337334275813657319675146901340501074710703283738785634519580791091213881066639940769911482317128430619937788506840837487900931698043576410589792573292338842865110248320983948326577211762523212538502978334676465141887086357001560162408169299379887281574868454622831209214651315481135616535963448807069950741745688229752386769270584686659260476103583989340839882630643228783678757489017652630359382523882521787208442293843198019394606448580144087600039403858788501754850690519190501589438720713784756988987896591973614822642496337434067122754146540268282684042130902229708769873540753569545995776632250886595268227578357108115814736828922303485292697038826624162908237627216025700809175417531410693600965185035383659569956222932766525283953144232759253523176755546489978997762269968470543423291779217441311046194140913236058245198246929013369625115543023038491868409683649621559794854588451453520357208909164485380475747574798397532730326349122940107083775233161799008362213339064248870206141743684496786024376462592207244441596417736341783090555138191513704114532994784055024832586369614279578937370819214369445434360418961054176843280906848000913715254400278350092730756327704951842702286019179735352220826194829990919228285177177575961649356248377089132618012785092444224823521424639367369885968634767931125325990770133700723881330153323450118198338450091231065300680763342725751428726899040346677647015748675229373082659266744193235128491198675178729965848031448745030791824889603994178210241987557142846776223878023994626629745214098429158554806364781740140549162386948816100724365519725375778797955577371754582247604944505781425212873622206077859455852400394674408332543200749917038622740619667830080029492609796097276088871299905893830236098398441357597164633810538423711351673885185242715234620601923335536583015910521471718095977241707907931526548639742594997050216963999143931711175815756961525025879194231902217873254631852618704588693562781657017407967184375488258539017326857359662050743192734192640138992977249989795777499768827070307361479670160082835580750759116064175098307808001974162539890639238690519122492632551285473316461461591245466064142731955414538354078796943026886329153398511982959950225199212320713006673403995128015565741009585540474323316920933732800417481901653400360178353027131821657499721738422467935121617721499252842549875962308389025115262871598456360522566212942263275715168640725116286845461262257893865003600042931352502422105734983111879949448278954241546181023029931661703613085158352203817563620779862456601805712612571531563587154623486615823465416199198664695489599586372362409504812703832094980290860165066436193650644823635466040097141127022574020927713323655799875457437622565538133158578120278417876071043284362591047965589741239007213047236874457900565688372909561902299711899058412458507370039178242506499762745980398086634864368036778248090586172055833589336166325276928361415044808090510583399566080753923979435865927234686820040665465370795247853847120411162240515291779329615817776913925654059094192266364802040694894692573184228582252796869608680721783230665179741172673907790015686826841307595723375435276503587075652246731372298342841522505947219256424041014350488661596153263099650337266599564048634163461246413024130842784628964269158129403340676006842847076540883899789389650095442968666858182459823498819071646992340771891239563141616479912003790026695511654511351334601692236244410380777852090176519990039907788379979869044338656569000077530091076990370209215430072843948335299575410364402066078900469128717882914567129489543041539823515442941497449041079371205952649289205760569483655982157465978432980632598995735165367932300134395324162053473282053987194301553113144319728201521947615297068370889229042105109607977674530550302037839588185914101545200004430968555883103913224791579576171889796454679201911736173335021506322249609077950253049107397708223642292270614187516647832932791337807635436037519516211281768223772820626152271944832351783479988807824034386802630064609851768948966746222167951003287919465435726645506402899524865075991992027517487091022811759440363220772301455247960404333095585274535700441612847554104571868316612627276314905943161950525058160428759923679949520590930290768277103529048490299695681784391460699853477103707864870801194409160026220922172876335149104924686250775220292285219013125883882348505957475418759236496636196609243231739126176053542664114370143573915103778695913751512832683776455466534684036978190209792645813544100511739221056965372706290567329494716771153969203916486154873203235652497120873593580298402273614699386094968795974932807126289025321871273677140214127859088661683811421029993664028213883746421164159813011462520224825167856715170231090914963872956435282223463894778326923724880834691585675637067242778226564385025966764794800127377970515444134126359834015836313474394845784495159157647519095728939184574525519965497984149772308398114821525099967062744751444063111038057094325455751467987628670229373837483829368612998962844351971258160772637926678900790533001538834099183615165510759362620000387008440492548933116415985061326862490664028782372253590316018826092820374744515446828284550949695238414430027137108053037637087169580672126287641675908964538923902588050241029538298255549461643829380940117455789428032302778370623598699811837046930886686368058453064301712278990868659275491300592114747083034535283103308846625663844036024204811434146337717854411180982075985909511099814667672642962670461789042732818379304025178409103399293848000200362815497779051194942603774304031736002928239144469947825567128711657028580294940682200523100031885229087979101886011782548273972480023939249590904861624155269775844585744679835465911106981731566813145098852959296324575601786058480730140973716670427259315305221660102146809874277376759099814316996223265249578341031255377213190983068002847371911580559230967063005044323026738856579546921665163018943784973358883036843925408203314204589929270520520107068928434101673465910641119546659997761196249390780202943316571065330185612898718293118232827546782960430412414851292957347980386648789290862117795237224186877726599881556695175224832253788395039627990511840392172443117963024123834469082370133835848892853721262994672161082208224742897471902496240774664102423740214284955623861833415205845609448227774861094461516721131707124067584049056694870708254669559041780449507101749640196220104240333572788119841517402553864476228894784099617352030434146717301869734162607574144547272346798392463260407187562975808677873901092042592625130098583029260963686872870185474813763083928949785433244808412458608006921201553402396841300334299909369542876805107835173659553516162097854401774310252824325333433084335667615233133690552998425876639497135866056398528552433591997771963366707890714282124424329709753732110072749303952396444815334210766899504108912718421665161561606897090192767894534544164871080669529372790801331185411150049086370130603095828021083957333824765502397429561833621885897889584414706502205008837621338854285199554079129565846504541408921258881841052520231725697927373541827374669357514934963984660482802198525270302714576344462292519718527792216680844616150623304137876700756775316504837187548073629962841965430460211339727090721118655506383970933063836523737451591707924669036902950766528391806187724261997306616131317086441441848606111222335209828150401892214817699846972738103121896520740596772947257562086105163493980103699407046687817106867608831920247141327012949316495982000492968979832310686587233329843218232776332638866698536790294001109704675679550357140141225294244602227859812490905671124430775775136961820201014565727878876607910706391872771411281774992964207073567877423313458833004371752892686563808376065599583351783665832924265186174525666432736642526210435416415873984616752149004280737728935421501219637608100717134521696142380629141829432456589576398173103426595492916849460186945484376058636651668282348705619062592554953231232852572019299215398776903165101639703947026957669324700540791307505083201134780093848018723738400273652097736187578226645285739374147126201164249893142426965100538579880057454540826486013475657128492337648597865103939173144329353308892023954467772026571382462815865835643178241488437291037394685810545692874773175778451554557297062267414245844633809978697085808080577772077532363856328585543680640918600711804251783310971820491472858518624650234656069988994228775643281115896502089262758203172480324461894769907952141845351171774821440984045765697584345570345669864190957252523751262042998557702608988714697930141526593305188842026978830554563135833379127654061498073068536624609350848612299134914668116105731153774308905952695984657862847749867742820673092008482009885105036295262996343603339161464597848642175638447035824020819854730903052549075474788894412484234673670759648267883420056033489539976159141005243400798131765245667826211046925492468743603928909709069993793027965763265723855527542739602085491371560667809351616665421912095100842507272907416263256503143438086575945420345037130583923601256771095939724034524336985803168413348597310892997005033912023904471139584466343464941032893218476648249988991544399011565023273125380853156235208428467346223443417846494708989610267445503282697179193989563934104611159068068905279924553550182390329911381084083628466525681046577849203831377171260282971500137973369252101585939881357050171664768312536671738490813778938230461787205929117095240646429444185167451192082093777726804317336630950805430485347238715215161936679360221266143635502037610223889305782161812784138886743709081227458612371939813787141161223412925031224450350278474109729923170623500264361467277931173354284066867812749776292550418674056866561733599654269833392763130380665014546581279414775186814813619322588545840434906963955959984764108531360207801159434302530362943773188411093071156347076237030723813533923353829817663021470234390333940355781812576277088700255071568086845223285753253385623349833326425546238400338015621448697014438991512868804790667547621599347428594930038943187466896186942150815009035969410626274008237143314683005673764260869835369334455747314395828883976113092521229124686033103637291180507495206509027077874070019978417930985433365116797841331704092895542075765249237736083015681713176974250729569694492134218358341625546023804061076102682710038679032429664839145649173945653304000777812306211104551674722266127073402341387485406436943496885224573490631132519498517911480382324943880940111458959916779806318140889513604112714381164114268069570292882070002337008950793194869616611458534631907904188772901573081334223765473474157949028603165052488983836458461013543659631607934938628152214755978077641358182928098482498381321599532897879033611439317255456732385220153607822222986918291058661578926804621727698541192620301244567446439252136344992233204937560999695690767335207424704739892770099242011532081129463276197334370404081393735959059481998387349564937757858656805385161383970640318552865110896129947875050610456498075085494728908160543869797558892172119292626020265694245416938353208342739311215250230030163867521582134998153948267250523044334053833393680093519640796038756384732005047903523601086889762083391681146966352522100112100748266522463276024518956697692384710890725012802178640620524747018173154115354608044897073188053234646691705854109104285516751445606401818334233315142985276906310337405251118147142023634663643989231998333793922886906147925305593361873603513404673519777243945545981007646026663016300930331830744143703297592170610435019196306727873189123120003114668970445168674989988661061452953070095290238372685696684043680629841890396272897422150709137667437266301190932966468845306922753679570181291420339081083855307188639539601050701248633959781172542204370249133757601890816610792622331994882118830547314898789171442390290557255348576966826940143545693160574991047386938250737700871715172868024152473956136263288291253753957675263035267451496810995603947956499832147194232153945827567935264912239152252608491062693940912722793519799580038973540106104602256090172730797931402657398567041930915493737830026900113287422164323298783001305349558839012304997727594385025250037423449547990958634613696433844768438182760837439718605817414606845948371590035562136028208520616044613273990160567217582053569274301563405218016020408273996830774606681202619459488418470697185907042044609596035687582497911713192650030777179479243785380291626906072525497720807468385247750110975054686226605869896401693755917631698160177282704052705668135956860981073944709671581589636374173660981838781434775393320592285895222664736823054710332158706034624796283891825271196229856528982684939442119792776648398540503017440545431174413184381519829435175835141388454127470670835862080861433240096595903112231264083637708822274715099079803314616491713110565396530478602260637929262607378741004936327836654934001529179592482343950243870403732066730412084438902710252888049432252080324594162394603112968154524960513854483096568090608221657025560050154455705649185116932320945043060597430231205214645309689144081903191783461556212617156005478726478787986232954953097229859030626258943115193458737420113610783734516667522727428222611429790291755837824663747334299969007483405169102954909908851988483530068029645308121595893510167509375925279278775738441789740271242759268634835915734654038527390034478841549955584819551750809367550007526781299616559960134281006642462879508641199041290425688178582937584800740472994430703909099187043354371514585800129413746219449328011324571836267330547574854048914522865855724070880347710527877979918310692636394764306595890633642133238317486177323852289706809034550133052736253375359797489171745367408444200128447112731172488075348225343631037593021391910114011655617293934223037235175799264985205212758730407218803145700504262267149957607501755655681312280434505812721637944653708034245620527707556921392672555778780529112997209361597840953978052549031025092818134756845676635081366854704634203236117607766257214294284622177867397995503539632904284573695780351047058180490943012858721302551963544219669533158705927865160741392357255796258813097416603428986368935808842642617099438768456932459661184895449908136506054508802155187945808257854303424523006082995485273368239653413943402534895699863926989803675292105344896254024280349581610526941002115687677589103473419942243911429305675785783616855189641947124062524269795183523292937910272839296214290331523202472457544404983211700414431445971715498036518197314008617296204360108184459500656857428091486835404020737932959457921100132058007204902821731473848453000526093758943174455740702416694695144693924612569144240922049780420885801417716907232132678939135529335921991515323087512865717317047826283971917177394837457347992953585080850365445453046395368182113755041856274761635651624905233761432603406082435937473996712125719541586849951431621340356984455560610195186693192736018299155866010325364067109359704191212489750959096302658774723387621604657581591199293296065782621036854552863382840177532227627971465956130786604330051148202636739850526717905337451518849576351980884347382035050142108407365193292376660568223789771198200730433551493140710706896867741944941177045507775965923075493643448053919594177291433144912232544122879354874516057912806191054933900750519284276766396993772138802712387661651276287421009954497724711701905582764193342558551971522201036894852188869669382252168185723425419575710728714619531799313250984775872022021651013519707860019779993841135583006736324358577437206870891521395599819126199851896818203449501728797389555171813469429998288225631440741682010343513882675734198219059540919276517717139088157896454811503738632650165006331657224041826146756489535441684936543587369045317482131564737486336427249918921182666405198736270487546567778975310844184897507205020299826506888116327034998257444257101582121757983062389764949172541386727581979369337374301688772363452915566415051425434078645416970977955375150827505974730881699462424524853321708789211079877497128195087958734027995453438805970406150580930792227756153304815791442307485822001264766158241385800154174870848625296511436797151327125106335665231473507641637510195286598944394837305027129733546839246017007680465037633996126371176595390033835125413227406149224613091476285657391184288884432871769231048619792372338789899100519748733091992486062810387621455791599605338868727330090325492396226144705597793131891774493095949305559001229226463879514459732712828475260284476745434395434593479592800651848106662786569282296038803228527271663039391454707895117816853148383948419593767774660195831727043913120953569559144220245065749811413310838111531063375353516755658426210901357268990648091981692560484962732896350102425773687906986378161448693194966579359190399209186782672489757854644684015293348105607974194227546832025354752704883393250097206320319749132730720844902095598342979928087789829417538138677810826696624067209694512099223824006593592829182293732395758253505426315013362229894960430579748259630479350548155025204363769785527168452057747754941484797967865960806911863316398676948801347291378714805860698816333681308697558111175407637246553205500703873302705451654653801964482983208362754020236656016017782389528986661283936005046029965154352686924704218189065980789849937320810815597126668127178799617498247870802051963076438771923218584600417163044138859773014214992097447754216310299248195731354071404390638405305732942337474659493189196199142194930742615972828192200857516356444601684449160754451040707962866365790318565099050855884824369784775453075757272362973720715173439455033544728522755824267275137606319580676646812520053112396460774702523974897829819073260179331483439041529156437739385965748713290370293473775079631854583403862004967317410103941415876272043403634493327959927116790809267097234652734365771016819038291557879445444693300556574866819847872094117264254422235027642034871395808348532351472632633339766708972813293410847412315640763613888418479127522504228911603288218457499496769450983560220447186816251633548230165507058748385274953421673795761681629931255670383549555741760676894779158633658905222013690813671533236737670751961184401049803637597452205741983683518620997340175416484901570707866437291903226531611900351732709378154510026703792845826211606428473036577558239285272286984197511349138594878473641093016309841804064437839518520210882119765508513905301885720106682543869759829515507954529640003773109470903013409600399494821324153185725832464705444658607111139192155639796822087682813649048639509969212969285684871272877994026897408994415836993517950641518968032910464219586655393145620838372893433080966995193784747830195391496413404840421347642038583574118653100425491980858271895237930305328497920091807729862041659986431453530572017818166182194306932664307506909284774660084536622628719982875500881502906864048721791826054230370207758956307836570008837225976498538975293501150382861091761554629276229415995224997027885222567520214661860036010738630729845450673808682408070936844875110572093013128846397474929998832409332955556936484975610522196431707494043281347641510184949750688551778163305941479793449498011292215729541858538185275209501111718681383185367647452401872707178801529654190015014986031446307996785694977301904675796892769098441227350194990515387786521306318430299986268422272612229578276271122599998472419843139970074275155195618159620720617183607785779894174233497397985676636877735362457956982426630821784482889950656002802857757170831377003891542806882150965982734229991090539180706796462378395614035465596601180746901924674655866834390724629621353755694524798624625946640584352534310366780402648611187218783133803978888428924257429741524003473938993433173426630718342887767411280933671430518364892270629796486036041688033251818000850303501648050675001618382078598053745219180594436658524983343363682797659657606471587709589234806354214522359164106443942027999391960070317304233171760226009926547056834300879735172670763281028078869571592913567071367350880696802355225027308080595467346787260747151958023141898522089573179510049469052660065288330831969543255567559976427743904240820351640617544239236433288085650454861434029767398472866376036913707236375715350965015064326233539279249048111741973575835547904020044492784222414722253324630729693709919532247010257753607971656043149951164494276499723576293923879442648652109380802848314408006347338804018784218554892579045658700389542797483099751183895452496242762738578294000278145356504075787630388737628173735827823332092079517502866879950708206290563529225555083742992480864986646590721131153966164074716672129314708851160803011541024629946881936284268688528971022580944337122063325365081050290049937584568472686786467171268419284194749438842903855936072799156490870126160909732754809369967202687876884166849592704844674754325299326452872611484075350373698354657553675170521819488709437993882591492650221667618416970094369839722897843375612961229603975984040135371663845362165761760205098345350082499890229361766721658397100068095542542955211433689426511277295533721503926014442814590089295435600242168831083751048924979069998877748208155602495068776356915330859139054647640013774870259214700442982775441384873664285739208309289133128652996908168286727763336345080718366106443361247673708787813849829482764214084458906042225540581676983526931945556847941886610773236800799790004936822692320486364917256815047972245583757141403255989535991733712872582912803456938685568136551837766326275274111937300430685008081159559227749623415676325405842057778123456952602224290883414926131882495904930664883128344988108820312453801796741623528926849064581574118489633880487700088536930977055547200190365801791089078278534477920878363390137190050852204208090507579507781967594991386840629020723253069825183302455123277607909571110697983475612269455766855444466593832222356252463948523191906024467151050579743498493212576248994781464708421823538250625537600718658146194408800051361310862668321993299370171356585409318975553265647149011823561019945875416509759890552203491731582230748419592383408401395124045788778339966516385835388234149646832425175404640964886543119772965579361848786714657310139285267967280200913536890554194224499222368872384893213260078107691673696836957495411337969985769104958652247304275550240688368189855812106037527641271737299289606643488213541408980780485765385497684691208675022370804566106045994781840094468863263926351204151324486749812248708830243722977134114161698261183616231557971916458062663570310690919658594762991891332776991060348191535973586677435508964573901653830128572498444281208666136188292666461671098443471570747976303400493714944999668512360276088987001699936735478640599713484721426542699718720612642165338198121980847951557264195963630485177853578638556899593514178336437502229977450811005973633849486853594530221323922586082009755035108348599689991267994584676230989526886550170731904617078298574118073638724242649736376819337926103133932384655711202819394177823007962092495260504865696071644219662887841493634896583351126282132547861995953474010406055589379782722421784419427707012624151021440765951941250142344242404348136591063474022959243111516811854328350682929029756853665462904200199819505336593290079655981445449254217382369920896758790592864893351504951795882798488853655156470627607017118604568138842552183453856376486952601724261505727589505355939858487636423457800616876344770188211410451569380893543042349157332726421778076326156206827940937507204254291952590681511269368081310332863134431981572309825896138573341427306156326594492711042953823522807526606468295852875133632076548475822793060634758682360548489109648275540240071762771772993823254893351268444676223563078090192656550504155443226038793637213982631877918203363146085185884260294878221660464354792053792831992674516576412916150898837113829803957717969175138027655325358852613603345827633512252372141860434131411427415910734312953959048768908683517673494940447871354765540053523187311950385036765993827331941511292990743866436139297993320025169453705364661436775459027185344641695842434860348793911417914999654295210330201410700445436342041940528104659991215889201214136396225236987699242420195833657615011208344568297376368867505945071943027775343989504080779806487234839478669746809137519092212248920477359546558041851562606881434191195756147196952854300461568134306523426499154014295819411552332817526184403296141546666920580306552209075267440692085699854740999433310324323974491177297346502848665590925799046734616606440242756598721992492430599530140085326915461470893615530115632194359318720289950551590050648740866195168224535506939657590756632521508409561743896190599764759651704314386408314472642109897726598058867484951431347275439577783756002008121535718034237436260402071255813578639465228444468024336294811424486230212442250823263522217501879157914478501494987462262982864759789716302086337397622840504425721070597932491474945056231046715377545586927763171421504804023418438218502015897592974778243807667810019328121210853001875346170799627582726935695560764569653668165456654861913272576734288805957901032758600931750975684289317980245201743603214759563272640651440176470180264970171085219533909533027342602946593420613604624072614028974174584490001868866722287841832858408394270657851590172693547707271602936961980395073443434012635862450347578570575456489385289925132080476782219376810278910945320719848683469567212018507532796328272818670981565585915752538801141626286744256271463630245164342946222100835859302363018300251565965685399036516617523043258688842801511144972786349687462437373482890745341278861865173132372183875163886177282515869438554838063695136830310315123286040803545252079447234068685571610859754842138926853773801314905124493847009312963520403554597216533288979279488271101987551029170228628927502849709333903325649559607693885616507985922841711040545052270220683982652225330156051819616845750170649340325415683906867896254943374066682161332761259171889866111462727128294254887547296145090960175446267859801262202422294411846150818373130323143328651519776734468353538961222819498261877878722513265750724157443935144825307525852494333065906347551235071546642024185669427850004317597085699844405247236938063697161907927101352007757141335978996472417593249619484219956789550508718569133856807771283404204016774964737128920385875623650668361887694658807013923528461265374324370798862054887681312694490106274588466226859554811641867921431745883693915718158066563739738650508021156923314826432887868297887175233786073722763745793713470454137477309492933491798672164017673641121095784562595789315351728472542146716867402669452111238771598005697836212318870303186569144925158392261236828446245802822544479620768036165659981600541374063269638373414744549132730047383380592802216928700351719565849259693582077934147216914260882366201677454919763605294369066635635538936184298983113454806431728679730913566012501626672251906892308826254203625031635724465520631497995691686625896138370422758003519149346366376987192211174070757792159575175225210947283373213648682222076407889624230433413230317566918496657327716824975326095789684634340606277269018082359946034881665957078699943430189089154931391911686837231929035954884702108721714386316411667102586879708883463095224492264081815037095335742447747878772731541430672434841474777907369686478954300464210090339803294448571276628175656711289719780149501231062309194369520086623398207170388684528607189677011474975708126997369147821283457049289374970397916988883496120509928261469662560440096362252227513269882332306856624816717934199141092720616394835332194450078974710769528358007368900651664679107381854878372318537577375875549137813512149887977410413121924323939368131254018300088663746401606632865686604218795227312543489481624118207114991849678383955611639598555869325551095250176857132446049164679769071991376760640706040309712042470434534572869772076203128289904377179403186913253016149225121069228811525566299565430030202909963587396416602516742753920516853923491059015441757266444522246241529166662986853974845312593440469100559180649270448604044422616257376788034605903646265760119244808009481544773896178405726500198756975054851500923994772742750275925093533298960650000889460888672314426961482911686316033427838933189606133232305287281952693037522145385174351214629666586034339599105879394187338860220539198261607026272867782320650031706239234573127406642808049065353733624938087916240072047809604529126823068982699681795821505589452881825998340460593541511649520217299646357364093285667474360098871218221586394539539184590406711191480150112728153504920010785019881429545628545397747947695654372739264284179453228080206590130415134793210491289560131887303565720060390151142906904277740318015756069926127665063740860553972719516537957121516151115425971005321058036205600347951157115109448180861686694066756725881822190177115591039962134144910390263478481656227652651812544854078672491426810088787746915479862529169620560570336580757830448567739283380523864416894011124558449667279909050832151239785841061585100253030220081759150457007275822157302915047690636487449765825044551004338303588297693394458549185280472817316661925591853500140839589508292736268438277778976437117357417800965788735420874610377557418622562560554316270795765315552517232939943357587799973923494277363273937893356429591270811015259219849227916269220466684438067616858075765938341721092765262984489725878494578040517237669374635087257605938219385515079041113911862267936217727268537160498031669719357058873568629979381944905372007220218601350737050736267203595518356963420124327798846285470564477880943259373539596739350841096136704588747139096220419790249149941665522518325343348488137775997078816900114855523110497278557001148037615873320599473216627378047035439892188239929645304671162357555584957358144508575764812911978516508311351542670555461624394369187908776609183440877261549694793224993739324681894455038638169410975963325533683725883450718486252550430917300154346576833144437038742178432788125379463724762143877443316385340999836649497617624140660527799464092093186276581526508250537524241493875928019430708040386368274385412850959425050239654098306138685695728894423855386921473355907106492224703907900056918755830834982676911240276335596343830425607630331218276532880797830906585181642696211705898714484567393414185139506210189278782821647997428926013725087850576416652122348605070871027605426231775060589042351509906826885830307691911599493571661751359287306632395246895820479394947614859321186042905189726211483468370334137034521850725455335652150482586012260084474669794583763320867580803866824851665775687669129604731838445919633991130417496689082166711660129283893356172364588432035094555561634058093717210989715941026424553206418650971865122010512333209904296975265112115144307835137057610189644821947220242837565568204207955944688498488250525761005916694839805775721062497080611472804162594096398001351956458271862973384146209839197040406820875895357778389430030788036321311159475488021568660871763784425342933767061910532543443005324975739960875661830655790170690847420083469780336686642279174763684440937977640395121269815195300351978338048634102613566161845792404542200578387824917127617935530498950394040723414272408284110740432403281204602960115366893223997510787607842573255504274859494245558944379897433755707064930050527352412113497875885995910868253749446828026365963173517466028315995495209979917041165193248087375169598705288465795941562976618990971235918316046382194898092004886849929245907876617037945187628396179265241406976408493826633314925200065615186981956331453034121085680570067410743947810666457290333317538969747422198600088181614803886087665615205955433745368706341722975573272524384717703524923529221711162375312957904837438840895206685787357842406366304708019406214116889677107143416705094340357878484821230264298508621777910183525522310695720184757243622451645372228692784126057146195334280692424029937241974596749869878081618884435643248940578062729041252896421958669652837159384596577337798214237581060181005738734691985218816793822276328169694082455579415016751183084272542190705012893269858653800611012161530794632216653595375797677158953056176649541139460497963537024314239395537162671471730008288517347924517042257242151672216511688767918343753247502661256981127775636156603495401630855534326908396810035952000489223634535835381294524307540551610411257624476893559878024097193790561114288334352739041262522121538953766305733393494811342033862815833333500857634089177670577524292151704458150250269161803513448386673742726468846510390342780497153936929334555660516177783600981308604522444620369601196541643303798297959937139867081098488763341548098970599169645956474836797842410104543675325155186923154883103112432890065672651275534391911309065783870016253468312207428795983555415644466554490035551630853571669738173729844529417398593601107635845254881307343671375903447151910119254024308367042071593283011363463356311388127539857399588338923659280074720993146208521510910705319189555790757588295517049209993516589974240128956869956544424987728462648108852415707383843216261281797226016281209172761693347331139326633644970149014622155128776097918828776093198827527210870713858824220131345922431228877748241342128177234088473692045719741183588022945151762735980448562263872940349438243739056280713068972204552912911731603414374560718305623738856463443621939067130502715548597179595804763145638635019347498804856624734948701613936039838481018309311493008089638072968920185163923521656056292429556179605297356756370549204782492141859894482918040642594600292576769780860919228942433002233404380741631900892437153882352020322575046809848717403184211607034415373474166764163741387476832469783353219713575147791012120588027501679079004833474028889052069261729162389246643905707389551645898646699333730640483643656533322485846893649697567865510775044197346578964184681661233546782572541046368446736692834747005651049554476434704200801827968520842572081367361140386180887839968369574105212178258772496905205290752138134785946374015652606304431491383981772688051841428517927651704425253463147770911565206786355064639452617441943005021514719543299331941862424875522653236266283143442345102017260166445907855062724171875470422829107646535801216358990538850741546862292721354184518908944446858641516994617354550577813220386396018543134235134097191437026489960982101285120251496195450183465540427905956765521734610422650697246069988885825801558667111205751901141489835327409845671309445020781819619592793869861655828668576426127556723722323246697204890574250970056600394360983474814274984121812245418580833669961971509099682812924058091675394906455729416321033723882696441015660835318808120942513560793753631318658331684797907515033043394890540276812681291539089146973273408724707490160224925160220084070042734445035507001505662435216752866060388182376305555962337836961067077137661348548622734489871237993547572614910417176551875673500668982090729456491645938562293818859072672137355359321465319142309661176930562353473136192374099451580712133108468226692588510190238946850319403246253789972807118843338398865904490902868393227080866473917068798804004773499257089436292178277989038137588426458349624092932178516173528758220703180779135377248840854975082225678417463917372189957195747234928584663125757846858585190758767365789455006126872981850876533064825551212923750828745265124359222680070635536579618146833183918916043477052499099906328220620501788688663824311207933611153168578283625173724837723680988888417228744113092113088303683987648687043827908732471037913735820059180853086430988092267409115981313620534708797620280570685915465413770803981469788888991222886733918739644998326750700048360670823360264789904044365162787639016006276901182102954784834069655620681190012447373483385140974317098669648290665315197226903554666110909714768083398030971490579306326023843093852491245123620316320016895110461271782534908845469699997697204258599895988020844505763171505738620379315180627503509704245095985001894361685924055713121089855617785162732044932173717994933252583105519841576319201816075319496895517184867842324615942740240494832010940832522542496340273993165630396855525205286745266657996313589321051707343325085460922988070878983360690804272727381480260270968048208508727505004576445323343025658114543239394507428864359074837437412681021603150234936157018054479633083175193586759897245913993159654749486171405805220170266477686500724793621745122084448916606102054893455818852213070046196394371131461629387198390043582980725772338587830011597703831229413315559399239676162207318582837713745443239327043411257104639697589883421741441154317415912510991646238020748972266752905597095696729011193819180372888302029046122651046850272052264812012708405310169198439088260213653556957584693562129186544039398256320365345006745506390321209537257806619871424438749887741062068626022282134549855226696611160104491207604749879193725782803344210009841768912967694814513737020519190729068359205071056516475915632596373337600319894962202882921448452725879024566666072069443262373228277833743511805607284131920897838215846712795496532709980154326723578674210410855691328202708842728783906493201315984277726233074036520862220625865894240336737519114779449166463113690614279283674583186215184098546095565582089562401786725758780448746575145109029605936806419943203310060990784001824341614116378546971325156674968409445816823972072319117987943148577372594314185992806229593790538459455299074089807198360696745373559760289177890648268076365163657118434822171225221119560016516998330284024549617403018414015617141210967456847959082590407927071304736334498580724194334261012379412599254261823565529328675529639429201401053614792525863693574662554976283107851174326357051163842403357542896712602331446570787861265169410586970483708072131824227708196699775686079666740503356193912095630829625974300304379640341895320421645683177437392894722368895123763118516774549175767794986529095254241118160669036470893533609191094940475958180055515614254157623730532241830770232942672494164309651464844765332296698642000196004846628897908271545457493971512993883736462599335334300500922246654817323726204587922291408580360096103822143642950235967376322438106146157556686956761216294712757623426021590526055587835594945301168930148698978005148596829385942641871414667617631231911069263259891894955733717809727457906267220759762324882523734237693002688505901946924042736016630468782462208786554756830995045877886218398753107435181267686758275095007989767155177131922264695894871592595970636429346034210525443712279314268394145622869599420259108848472354169652990568158618785062694336203089915398857741927604025209964348809351900474331579915945699087930753162165254416857284741810955208063998008189504649085186048368402201726946704843939721768288480845779664061707859938865991078605677386898810565874271741312988973587559433434275100731248856031773186258289386405368542365329062423392789409184337525813800618958475625481173370647126284971044951165002046103391075182062285348069560401725247530073012452498721370372036891323798830361871658520744812054030192844629639053742226449463435848621001509998245227222429442393730481099039803828688639352275814022080526442698037436089449942845692082004309479298960095137253409375681274193814471765914294551649403372041389012665453299227441097166430172298781290337005634787496170314794297131282383264936260629460659916622143208851236904697128554494981500814409788944749094930470232412856423371928990207679735556737714548005364072860547546455586293449980057025744269720334678518322930889067464715048001390222233159436190422541679607541457249554356359035366181512638205677025337935137936180393091464073874040701776548801865453809679323296034123247064552659374167947762275563845707629706207431709101844360168366274195908909805863407960949270848002341013302472783539794643783210812916004552216157496476451533173425903285065522240823554664833041268929562018177985114379715307808045543151592203452078876319717213577147695453455426560640213676728493163275917305968971439266439648562422989943439476439440650643244895603798171547031463204843340914241683359531389741514818550763754653697813532603541370507730020533680222305309035987241636217504734200742848170821458955554468107709597266149667016195365403769028089625881037643076884423037424910273173857099362942790292836076484155586520090244196745735942970766204088007859135446212365337300719495837234817962228806360056102388657722335383664631537708599191071294686753978810724677732277276848736293568978160869969602749750599422836636166292355605656679515168360774125267668278116513876988543624582763342735024695658380653692597373993127243946789554946610252829537093784997361761892027324406195952073727079044436459061118305276140380983103821977503516392148968519647947482733565405089231057888257515712453673101805289667325323216885972127266241011071749755397783969535973181344253403427495541594483209890852433970664151840535425413459615453011381359305242906556091068862309010478785682078570072452743735582168373074237416910833759733064566621879675633290655443904840697938031517597196345464642003630011908991310693956357258785344785308553825334063210042881713577992928702732054302233643684039591162516499430684913382750605904163844898306822797851478284141599118746935013185389990236330925766897920199066763996106845093548615865172707578233596283201789132919606462033250712869375612741641253180374479606960238952444400393322496597783392827640414299267695148722550688818738822445177377826299480932144192500587608157369191189327963539267966574675288387527189895084261240613010154174260769791532392129124367973754591590668082029580696305797503955099023295665467660383460271355519948372691964832349827339283659503665941038473947326449088625414937270106049574773262836494654873232278058990664518503631983203904095956945281757457248766856939338138112510020703882364775461689753171086822889451489884763970659292601554965023309916207573903407362365911103520451110628661441692079516641703518013498431483487368064967176573694727153754092284047542443441925586281858148696838781295591542620546761696980582709161572251084971685139002529872237987356465654536960462979976430021571631319324888946338383264481618532247387513158116138558175445469359863976668781131708338246758847705652281757240695075997614945026509126192574836678579216648337604235927049042603254422795308685903542258943491241223796481127472220250666384377614504250924769622517641587955728673666039520007494525445364522609907818630678301386268294614325535275470110315475184190736037186769086001723050978261144277444515950324793738585394748640857965541256912336700727946167200471978621816676694927303675641765021668567952834008037540617477498323623926781823862657642714645121826029224154449555590727759375943532986059009296096706219756088860608990235181116071017412402141939868316261193523430830922401703746306458315727046199481309435109063172350407882405670031211888412548333343649050507511448181718403647784537119469324806499291878246955534041393497871065895705674531688615428502279381602459855094961652061827855781318742329558228409840938493300220998934597570692264962093596269955807209467341837771731668740598089444792731668165641369197346026779600245763390902656284404705012758329780342926993595494288912845958104627769728527221713333298559562324863583696519088729030703221371586386593267257154171479069931471293551801643178945886016736506535318162713437259506342965114007778560057483231873015155274312224156222964270450131917112135975304734934269472995067488584754773965089482500059529775326517294311785096316249058273766091338685174469468763823049292753678849608156643326223473792011111870554270491443579012026191548427052649100832342369191016281024213731294697488359832060486352522968361398552647118044059226567674600853788019943970538700630123256736076526159891356337218615300851997574694864733916087717736997768750382728723760455807808287678071146478065150991196849412677627694309670338602201652860520453048084330422282691907775458464828796718777767595526945851501693959913493419423336588775053530656901847634251630598001653705497174203179735500113826012145658117525593227747072505416156475989456642117461878690408810894959937671123713559673820384810337733895353491220231750295458824106734261695028582103387626810194711131602342240222896809209100048518733148462637866818573277862121021145737403814440007182744695732449469135424804551383205724620974240818258552250559398427663182884054165777953766401323526586810429236136432949092286043722422742372252020948054895350666754649631005572068823192589009007800033009377421065948557792551666353328908683129299562596755085563681044058990630364580092056256581198558601086232479918699346981494274649039293155248296949942495453477635286540310694544244088657250991720732720311981946906967173057868862770841583246934082860586365388723621645504817093779753832101441954561810143820629495429610518359246678119754225122765760536965782525146897235836039542241155590727122640723702730809226702533266668821234592407154588753646068518124416059764997969200925117547400562858671596629101232730990121951984068508585061526195878384941692058515163794000616405289384103459175592477055138846719182752743540393262640704908048612765835067165452383119359740989521076186219007357174292008115638272777478551731524293846679260503072405365499744835163490013752408509026218816660307846974948502154509727140023298712756283958188104365265526670272801554672718916334975229096794782905931624901745941876703978373220751487617617149187595786174786269052913811724609341235532008955194454391694748338609474154806081378410280906557455501117067319115598415587593327243295613031987327888008281547479063883027027686956711005523747546608685629687221466958462832729361192532635452343213547943047359255295668884339706332031977586734278994569140714364076762318565804026848994311343520273034750216994812471377089747956925084625171728472409778967452930920884323536328324292579651700009353443623230517695872939592583437239918698293040229250692913961069345611902052991339162106606773885889385255282225536069746266422701053413561247805967493547111190628782448257983567462135414723214035741910217135783058910241703330720414054327442018962837599847864804676882221647166247429014770307053049799548147951700720805180919318754629219997015610413431939218960008228681764713563032221550982606010880567865067790085769295784170206061008806479923494277242686002771053827322962038130736801538400200028756106428532527481975601901099248891916960176766530297749738370960609440451930008830518435685411870356571986260503284133943301270869129682042948627403314630348507343463657513335819024993160906618137359612271317101067978649402440244244056776897098520524561767533294930877112205707266044059628617378909350114872798083056823721515696537904156358342830975696957257112734219587543695964280831661953588075705736872912128452799123022727253132516682932535188385788543090695121238537810192604723430919597207869088759434160379854720208176727925679649092767584468090791609221945223567094780295123569175616607728326799286193582658509630612067402295659635855592954939161061152492353034894483255727489525651967690183746850850940529578428153002084265376669434929183153899460486374068447764583798301582087911467206767311168049192680718977159441103669485507591048638672460066531734183571141367007301787030704869473966621190222522503141669818297449484607631996084459359149210935506070656489855978805830854520798801685966111163976877169804364723524423087711296201060936196771405503349485312670889784943038443094574864535608804224209633672686230696517585452211975503578269550988547563832016446033408813396734901553618005839815990507046726404703524387077308266005698706576991837898528245183853620448127289244449482751693576735934742991958399499925723072346695477955118172376013213987882703718915333033443758319710456574032928718642633622906792276323807821083280460612924789554188197526005877817547925354002835560785149478053175371785685476218152844755855922218202010301760345835505177689639312051354557086011575064570586037605872573988178547299818647909442873718345753670533348758047441719130731790268000774788382334296066181250984256545847978876842765250743365301776632122905235097772610698587456779727896297707309230491851821809087471408072056441550100136016979705159054576114367608219233970130273475982885033157524458066411596392386400461020545804091560470862691333281541945990226081238508722930631558305790152006335194488196348272470725955793311932430532942186005014106966275365419596120579960879703491961295966040250113435155588803759738863970775467683599429124442618779474544057223432086449337152715967680254871463171912929782832184865896284490024344411201903438127552711826118790172852406215424573327322635743491360442234438355265052959242775166697520582492188784369707592918292578082002161658286593606441928073943275575565020639130697491323851104099629857522321505970949522575494447150003234820289794264700781425257796035748987982613661978869759022006243335898988409812852701548008702298921706667971861795473824911512910570137994409098783807854855947441420214074054126628382112431191690217534262114314945304063606875096936445086806040256505867532768291496726001486303858477766381934729777302501245148164202965278642677737427866822003531054279462144541301167202182949502986972565780329225214262718454270736639586962866575005086600478625969528304369340024694018444371407536525736335887249153237407280036846170433460787947276327638285241273245079687129933953954899017397139494451154910709441149531484357283219987452033576537746409194504625021656120699919850318943154214467163839865918568266914404966202306987128853267538684195474403464304714970665057152952587913759387417793850525961703629302831029998019539656871153016804413814157856409555684000174774282630088720130912956569612557478750571160943651442489483616883740827169150517158434269019056150218803432175349836519616223415935556393613759687567520424154363222175905559669776868392117707634969135754893546156091647228591485822051153355151574391877276594000190540625298854779013691490630316792816555623771398208426952378550761866413437776246781822121151811760956110599466260215274776423906226563140777693221701751024565343086878587708407268853259214081430795720833926861102933204811089484387941235877440501281098155367503331781622190940185526883626848109361704491363003530449009627645976519122188504875171168968105496694111467735268100895206703335438852995431189547729715235364845039681035042944304517694345977293494085426916584002432545834643990070285351571754900050684616519887582090681437852392532132749850283460127269997441406788357893317203527634149701572651814968258172441279374785215411912430123995500822922678051384111995621151688624872901712848812431058710250907309452403304941902371866864819271099661248979643092815243702497364704838625998977529846996801563761249965016796198993396722819303970184253818285789615040204160736283299389006989994652510307289026755469602452055552082886579647441043671109924490586728165531933566198623373384865195542399222296108772185719932034958138094167347413456641888505695769386866039759596449454221739530172290876044081329459908377037576819811447092146479748861304144261992816231391291759483809240548010685154593509105391046184194684352268828037871696761250302310415269320366453645450722807825304341438083173873969379483198950413725993317717967414812544274731767988605965925617177273777308048156324423905654496871084382586001956272077482256755088143838001853819514596175930088372627780336814699317715769938763197241810765146332920595517657532427997307195494068345057617567671164640513935172882844496078963907262826563946536431204738455512706975136217660852903138276291932402162456638204746849060309265805759782178731815636332728099034624436113561761902032752544298217700290785443333409532300694156431008739585119748084064069557783755535989832587030195064332170922199303046987229091879492459624744237404952350147867172834745591662926883328993201600589337702651534010048275709393087969553378858087321077996452546003420489276893215210250759447996732914966539914635155630741401311780159874746628051220209011118275773494554184940131547813028075984607491777033015507253814276703758994260508449954304051323113206540467946729125232882148861145134409863280261308730659987408556166702015144451431532643092523710456172678327999481110962055069084817271674633089684483081623377645193114465279203071251727047487515514038200055894147266723084658649188756934329640807177084704109558936939259031354536884173526992200343561388239780238396974283988500709164261140459006673458848120625953989573493454451447274739632517913067949829115709293988135186141578766276649541872023580855527148026690654454706674668547692241018706067839326319360824917694236918306770435267229131301039112706353092004534446714708720359032126093723185490748636299375998822238539509792970917320369340257828601188919464347500663691671961166156624936686166725209058984043809645753817992011671263321368078884480368922532857950453554988356781464526318301184895863522680273624953308696508709686549666352605811919457920695865943496538352468269315253718801152928213797398851992896573629614701153544391181937021483930271656739718460816580225547204496071761602124776910328556155029441570361310119162533203555790429012116930665984012483287683263746151144223976961732330394539123507715564815703198834168388548306124419892344601225410430229771248311166946031795228947654296959299047194588126033525478276059922129543596077562401225061634085717032828818866466312418676130707937490217233084083565119678708867981129303911792845700343133546009961089493963919506619977458146884234097789519038726596750905638501862586927428891857916330874778267977228729399616677324533131170030958293511672944580913457915225050372137359686103711307302403069698823009743707317299877401296052106494322719990899416253400726662368903849268279773331781084148032613172762784448007901322097967543683648451059726865287009073676625248078297187596101153870422710889106771826958026374437820532900248478525457720428344814779973170606401800450471558295229896398189501927504789503531813491327336915025262019704302937311632587141738800518238248843421961091477662329064015528593375357139906977490075425214103533812962994456357999521134513864170986390896264621313605722485579522032397319312303308955563297811969247939832121739000610288591725963739573630947662474304654919634089693187561652753288707984506014635472154497647704481382987190626617536229826975347295931436115330109368618608312131464787962295281497942237144283667590407377533317896718580810569118652559841426300132166524003737681316983139375204898264871276039109876499949388226448034667954952264252732905334560469918842403631920847873903881736403290174991405495419296360696190423349552236117828768509382626210546323026630841159900151606852881703889252805163639019498294179835317678566406709670350952538288176057992165236942063728551061902903281615165027516409827934151821035426400041394157787011047985354346098346786118847856662046024701347168127717404292352206589649116692133350208008714703691011195178283467226178739885480967951700381554618867833529460139183154748136651222789512583258224112932613443657872685445547437611056354686866566498104058947251623440397985139452938084529739975551156356994545054778929410089130095665848582679361202896257500707700922862695529455955980090200115752177485670788140193324637310913713706238193714028201017712458350419240223565022869458781281368836743750445693956801325917775995706543783660163397914151887059576325808126869943489318154804030334318224077226274100291505470864531823791714368778772993796003379319142148542266499741363605365684058728713217383791924258621156125728334293246233066353141078375606042197675104921988998014354850777392770558227888014309750939574110575969733667195467409792940280806696998889348893490044482036301384222451818765612723503156442750425728959626616857108269207270489799765527478047373154772655681323772637996500365585369136349976643092036770401879461317851874685974451090774675137063033945961772625430851173861921287115608680665267290203871815075595763580832744062931665996826805683605782829706719638103313346998757653895586573773350107937139354294242456797649648047755369223552949428974143217410255469036247596209298591289690468057068370758034281440586885365662749930732255692362237014551258328620397814151014557477757993039223574767352305538723485036772359063568107503862874927461014274737918903936611270133542365913463955027405382403933089223689905900051202338862556523256788471841896606595826721506719798342703620212432940231554970443410382110097245243846081119303183136478064263059841408752270179493171282322911810138385276003040672596359369253173601131411348706062178655227675655187319361636839958461220465292202090943203229295914688221422473801473029521835263321018809292829487228429269440773466169682225560628363911534406248715654397036993665064089035470859374848767663044854293354885872623772243947375809185202555923884571695903777061650810037638469504668079774597687615280941953902512802735392799723728465663365894526177179176556317918509943428281004879052145675262386187716804220066059549898776133133941959445144115941272510729307053397264382090301378693201329253259274344878401311675172869128191240993490003622913138936844199485359723205207778293437184296267074110030974623847101582194860946633000493609633448252725048489363377963737897644477281385212735450651391292820458237248926351077111057935411721007702401850888215023184542370774583933759945344511964731403411078608109637661045549511561800081579757284331124120294067687337236392760881304271914727851887024190575844241345051379189843129106935958265836962255980485241584920094413429832614243188565154070981308584835547061488057367198051969896690962495523807485122073118898359635341978322009883171652013881910264587635195496048469994987115344976906117808918467018090460102924418506478448086199559235367051701132291449345881650639068752915584540813319698075982790202377441534337506514096793202781064910947273395402780205394891348044914565040402310394152627747328108774213912843439265652413417068858507374007687910809174723362470944866209712030360696781046602061158767027251496860349351313195893138676385168660642957265667788702391493747150014752606874453140705784079002930518449924327486207676424416666363256024084195614850027301778993535115797444296484688329010375921334379716175346784238419691375947172672938756907075943678137107975725921385630763539285996211779985620384925384971173900435109785647921636775858307281909835224022966183481240291363836577811117814968957679429330565155747090375792044609219388956332089638775308972458487181322557619180079552228172016354023049200246995316393127796601262342711636468601323838284426050730354576916105839378221795976123753698679062483848887565074809996135746756133476960120965131385617537325654762089632000703818619063275364051178432416988437214224067654634213472009885821875281994570170593486775579417115302267247329023808055779020331957427064575784736758706335695276354819437586408017983419641010593840359112965137644443656407217702259020723107816163512167760941970862248109148079328064589803178108139757965663535951309296067258727230848640839299435208086876656978728687887833975419006363056430884509047868558373703446896432555287215831614416688152947972164514126280904493121474713793889599922706791377546067827302071194290565972376556666236403598892731163399908025912464520872654309934315274892355092314652740862783744442655971135773044555068554107365801433420336532343511509401566832571642410261181022718325443751264280097420293224815322967066421013619269156157052917715562072306594272033755694290519920009964787380962769994760137342955776377163315465877847658396207529276665254064891618184929677913009187552673035586615126712988913981567749820592214251249209784960972346477162496897057198813089053904011111924407296343222886700214692230853593466157131783590580623872907918074699377298372436443663917590038677112863982259676595891041481886032200661475731960399348646954620069112843445281314632052667475310174482904818733493952653561819949804688034164060797700145106876919721588292876207194195064658813356837084741751305125391512911681712195652036486464482627033070752049145641601737066202447783765035871555520272427236979290970864259370857177376020714206078265472757509408064766695371845257833553923666262573535331645678618088297704085193609595748585159330271820066761491211384893989689578706688008268468083679575057988332270500008727389983659339957025879469902949583572725626021286853147378938861845647053299880946547113416903664046537346570649222085136929541541850111000645285556385851045469021873146047194760633921343605110732861038064219149942388411880750345633996086074946937900422998303082733792860318505945628560411122437341951644537657679906872934538436233340393609817495990716511271101861456188219858384636671214978744918380553663665773033794748607420359032558597804782251235289473892643840180026913765209051795804438865123772610931037298898622564554238448476961817480028298684696346097824757719365808146802133472865657731658030180698249111141758366751562275809274595002238843643357106800834114196792072042258176491338053294319502598516646252896860984505823962520425169210953238929568046229139911476801479373924934371916906232811359772914985993949234464158658674122446275462520695422568723263535654011659458860851563127079149896998237186163828154607140200675368912697551161780102739540596987533342303543753635911633273303383922192691102196067146524817671110553692845710270441084518096689826658344174878773598868062678462505562539315930911389548553351133277525652637865426648588786905087254989992105257375523393311324874889914060204124722200877416515727388307247070962482232914103777019264967155819871697848199283282575197019325847597167519342964695943040060251295745175312984747736563068933873710110417546510621778413871461139742140638965751941070083653124047644594799933857733211339231070173802185965199426714929854147535777690168274993825589845123528048690449334932781980257927400891107691575889365674673795191069890991725189847503750359115155487688287674331196572649279401126489550248733795472758186368444728098622036986470868432521255566340918152290694883614554046598432109823157794790088100562417081309423463921901018040354044717926675835478828389609044367244081134339546694361096994763550582073144090167760665145433134545856334093057962335299114475481290756344795871151399743807728025739563887161887368285959448294799720847758565860168899299237292251797951619187316142896683750495325915342895970540374097723920030375931330562718553796247033271594072067478837441298321461739768740873683095481708807817096516349287362955482376362978954348586185354415455200380271380021537393906385349575176520330331529440335012330647294321295812337004748602044359613063192069261510417278909972403531160945809653717625985557884732273546126023622176466785104277478456459936250721055111286499684814920163658711200793462297115675518919879422674241678129940935946275759172002389976343844254163098859040230478347765109729187198266566082899027621696466959816172614719480603729643344417079506761295982332442771166610338268772191411387242274638545317019002268268153876356550092477066807042423777821187024392727843946340851105204394510208822799468057328697230174506973730753869755167171429841779998117339229393636909942140513305702303824801925623499108722489585874692303166993711683706308210571779169632477793395911022864735076241460193395533971103870886513806082304846090531208576144687817135797436807923066985501583854925849138351274113268953292254535352336150416137669687154600634204701758258565859592747943549179788069194041406406416444226698178819618874765617513763469319735743835581297598576197105336303257728950182570440380093910662047411787920954065673414122305088044377931270925781613483558856780603076938972276360558835552706278289376380329852905151249199048979088489751971365884639220829499944565429597845996315545925199451081249158348691247874492762520157964317284287805015053126096940024203675351781301918360430500325620653984592321687827179577381521612805384677954367476922748564316605052859484929699487125567172488764463156478094045043188642365919232411550506683759607399878122492948816494926182424101525434104075836623132104489891306434323086252942243281426832934220014078422686328798303422005550330029177427315844981504391172265493249071753908802636300899141703199589778441950371020191621577583765061285301644445140857846311939961275771564447474172307558306622757036541386073242776389805651310456253479673553208212233814793496515282613930538756151876137872598125161663410521051248558486491616333731758502208021654138666284717160551860432419799437080359236464459493762134452971077844751146066889905338230890442251809317660701111523370737035797564626626811724759938621210759050562073498793956513554788653447094816538443698412959525816084845103460626145994703075742124170045240644200960770060453388826380591605901244557372285589358832731374187477308973678241597076474096092552077640729656560327922086784901074477768382306755809437583262988019389954421618348527687856706803607299382497039787110373332906381550860567988441802789099474897504692456317830446485351747169905106442217470825281840217280559597730271240997273952759829987107734584087312878440504724086798439586119596446752966908937611025428022781269585548249610975165254817373202787172950176333509054535714763629032673163554366758502822009807149749589523887777608347091676404146210697385758386163732417904245104648242443165588605311596992578025874938642917383784469893584012137721983409877660282553019465489860676113156320707112484274936753576439604591452709505349648066079900418255087576094453099780976461869965919809366169334268409228587911940793859610820703279762469488679865076777044641326937047199328570041375017763103020941470809564654164346083804114998304877297957522469281080696777712303666693461176162144056862032946775980380471951470639333083420575922284851427583075363592099686165627911559819931764150681193537272717048476279695247505661879763019253762446935656457065779938697077780500985615684356148716994928731211020100859027576515476841255497223478217752444895720464801453464228138868164108960102965091011998172263055176928913095916721872415713371833614221117980361690503641562846544656514922317322381570881088726862285198039031257340928525703751636556322880372781203829068035635923930779835890568483218426363975497252610030316882788603771474381738199122289920941139912349650268252557409558606934857001571704918407131531323476638859264159953671001416808949475913955995297302634472907026499938216315173329120467169526342389041538573782999682461855056423575741484274842395716462497455588366541074756469890656430895323786930446969986915852258061852867140555852850651574549957205081317145978664060779217188072309499548963879395064360065692912698953915487083429727532578861022594486691353659558338468995779089685622183234060060698227251898035304933754944974166238145606066487345381790634899459170716699440795647195945399902717376548865821447904603797049173783483924072440704306446712225941971449270865328451835090199292176312595620427134373818332174718986033649278161564051964657287270123087379785910051518125325953722717883435301386091406590036726537146680321669895127169830311672539085911378341178736263726495171461969177766920582842485249705683202156017598366384313719537304576433031990647516081884702603981194117127575907954005103489353712656141996246852342328233860665705066297855505742053750556824495267831151873580673165149338703301594558450916970113809715782927148856436580986425300145986555457150151963464046525252699429609944382288554747407265124279292832973723484682410278511826652999541165991321509758131754523137999749436653813074729993670164288536701446596567758721630502084891251665061191628753504908707386207205273851734389906719572932095975197606854238465170786844611765170496759301569363226438694775299614363199929982392457253609849948056809994934026130401360782627225547013256324999898353584777819357572280851282528313986124217722793819754344307490328134559586349727525858667517986028129266718087549812348159025687269879412480243334760409291622463654084636048374371170748245388809998244596357904700156392105976673488475000962636354669787607319916168640348598529583204686526843992295056193225791434526128916073866041593377066864426136852608126380368645149255795750999947855031276615867815388833887166791846730176414370128554472063343709085803260843692754820777326954839462842800988197972714087980178515198199810823881492910508827346470014025751995171191522998954858535022715111798180648909135524801800939376001860820299154280353919655950339340259868387668857745816556722318406582137240812852542206767409711137722783936743010269657777821976272907386560385743265722196753018661491380989630461738817466153653227943917532253807654322417405432260578711474949591601046609154987751927257646482472208468324320703717845523993794518655110182939400702869975117168526753713083513972098658284207322414392005958753879407453416568918089556364252295532258318119499315473164185830230851931315211307165776907577635344141084444806333064306720036530346264625319211699010108138064157845024997443403626928896904909950081664863622527291826974963626064239052496908106402903674838642195825876698406344164845586998419194420296898382452730979149753404700032122758022110711130663659914235554391513474021044461353902671824823023175502888097856976201304344114625527446001260671735932331195590412128814229507776179075498669069156022505004781656918327557551978968604059074443627360311695248776852380350583671434035285915915467543437839599707793666712514223743342202984837973929794760494646193945481305148014079615066633917721422930830927755142612411631438310007304347446214139524369496816233532107540065431540315848573760794233311368706699068290430772959542611436881168221919994756671989840235501484560546127653056804323525208218282546938731608024743337748842188854506447566594804963195408678695512891405376108642737706223336909147120653387455500890008670288144857695120999850411555619392779706322959106461010968232692633567847221115928619127250799766820112666273870909327830772574148484106135487013074784690770940920022887329442964328924028602301283673504547020310392533909355382139725362052397817510331570985518793085621748051122076222174471953632789365014797722599446545208128428540201427282885485345711556630998830690116079498322097384622596669851908047234750462407441801200101472569615126641884801984450602702984636996526587736014013670662329745022197200636235280594403051333925575180786873558195651359350919129740833659144347329560471125578586168884339097284281718669663681207603310538186724383924271064757709225186929268949140837131046041944695894950541322647377916116265092145921264927765802551121602576214873872267982383312001422514882286257466468167519589212655011240817596587043437752527582994329389133049193033251482000905973090812214836113748630117518042995020460941579648183160860878914661718286542638485590716494287348720525577175649293593023352419075057692159862271984867394024140860385568808550818966446497252399615167060712615725713081145752235249023303635679397814258984800226339550853933860454729177333928082786797945286575906577678154857458900712888149576707765876305797011678851758282850821963560908631006807956098512470837347910539601403683659087483984892041868332847753397927806316533153683352068626283100607234825450181019353125577976910534937038676849900992776996899068018541666502652144857848876380049663215317883741789082654334696535778719195142171566555363854918604145205437965182051560542289907231955214872712059114272423701215670340154757399515740775795515430032795438413685567141764188708667284987715120594296278831460352829966197252665299804925456854425368255255235012532978207904171083043764562566612616781735126030559365819483073350172476475796252982289311946578537287741781556002190287661734774666290134422302390679194828369513882470528269498411545988263001150261441057161678206446907434634622637895723207731755876126034827823141110620953786683270816842744517112292264236570450055239154358791462240544528951683445830323550618333737068111192734233539205847748974686997015110969349607027018373780927225797117318623205270910830029039377745046937904544498245078240251238673881954033904405577235804540995213227459462717249959864288372717931852187952957429418511534178012205764798152434865937704341660782938053956308350356779225763994933553310804581390913072184155775628442391504944579283607364828524820427774799773209427763596080753878299736313991599521145986956451917311147847619112535450480353752325939571154991848052260155008598418390319245546878613114577966123966034130921442119403180365809132432828505560518601557646776483746927609030889742301512026618890270180422511638563832433440642516700987757554171191814735317592952461707997111951088267816726888912818347535650702472405548574862479775848940278766368167480142136336953568167650009339724850377237765309323241144301050426000032469812155277844087875834470380513906589682686358107738926981161575310111081256254886619979134587578024392832120378284211677592714866176305532710025020747616453739358688197896848713864309513130176363392441326943063038863690309480539437411301107664086476122387118442429280140170339699065708925204970858879586842435854437631326608715829056031034149568032946021772112186376085727922354977991493604177142434979053929317691391566637284029881470490411370285705838531764470433754871828969056716966855050545747904321334392398833706009024722912798405886903883655095049633344258746034159737634025041117850911552514998197202000469192434518221520867289907249223476420821915828193965579716419747038159028503805582757838847001873314492126869731249413052679801014647363779950144279300170076385256442716708691059325857896180154383801894652211740198769811493026487996873510190369629031868998874293001505968583675839434547975062174850660354174802098995835820821973170220951511137668675123811641063943262061067451020015286821390385738331362073431826613935868196862360271119336133562412300205659083910714882677077504617924870995919917249891576375008314668917660370863887759778429560882583514422634931059100799175393073901219541149834532130223026118652173454114425507874076291614229601041123402745088460018132843801601739866794330823216503359556352647190694245732389642082993536954019413157273942118351190998493585745992770733661586548347943450864037565525703326587171470296378022180146619790213274931919424207613008381142536811780524949590709928686113030405116076100491564788325069072864879438291261924396201819616745478169732258919924167815305159974599914154305689051908740933242169430576587054868650250324432913961349014353584507492454885316478732638733674902469765925608170811246662004858403769128295740818743027064765077235720706020454935514444331100789692072154671906803660600447285683796602282317173385242186031173831608896359212382437044966676942105272144254704517260596675881026893385418680103049236996614165388131311920518465480791824397619321948962503209882080520621251423203909184895326678014778403383250485447772009520540213556520862838885979410502105921741910305390388785422399090016261424724277246780544756697213066866642939654959422813265247837648949622367576832148783001133724417237695989047223947211219252389616528468683045519554051835647739335649226772442827804145725972937854373860157121257193999953987569628300226025037031008034172490502453630297254668888956192414803066374446510971887412988971119920361544531358494451587548560043244799005375280886654073206870232379730438205876395867659273401228346297603394926244803040985758277818712975297097773008355431789972074565499201753583967415777185068234184163223179990279175367869721118568742438434953583831150424549405677048476629425980208440655856757558626143202006160759409100022252978088487598318828062694911952901912832740248252671625003963350816456897892081988617832254238676785238142719635961949000788032575449552218905171241934994003367190393112943681286392906526602924842922563651013315800500063120824427667682028304434742166991594533276666028850785349241480635533601913706474324395743631591358411137927684361710128551484454514145644189764149747963810116753765705242767161640821021373312117599096271905531669026407985297044218932345938215787290726520730721567441647745471574069832646157388649121937352305979320536310330663573148177870704605495787857471042933514636684338965726499184019195536525548041952338180323770431838759018834413251709348681064403360908248019014848428366776305212526830085168880879208697523459788106807956721968497653296718577161969133556783636465022423438665331797885402167622159539892307194105534745972209824234360439037058121064045754332817944800543647676013911715130969025289259389489593116761084090954348350400600156644798613683514794557502078982259041198674740863309801759773709188886624949992613802491110360744958083744181660185523398511078679737377903997952873142327888446820039954938288782106826227526160345252473053406092423119975453290681003288347340504854453025923855460496506943128549872162111700567854246136855365697495812870481632866840275958132888172193926730490403963155399510322507139923312189153448975143767045223235219520311436685391437639303524333135696753071097200912861702034166059687205770299501360704265533645554733862067366415711772654475475808415693220058954951554050088508493670095894549823272755373421920563029196585279706774435372755630879341329857167093629207823148123696181073225260841207098067727548194403060519238945640989286930194696362368951040921190836011880579883691538008483921532103994928947752423194787474138561300016515046746706937542269160130130417066282408580652149105222206962742944996496489164872931264518892817330526820494757389281512913242352816526027445524739887286700276978457084986918855753905663118394693177738089757158186710314052510034231572480512606903546397840004312081401241365491117172140228795906563610550647098722042469234776275403823456442114915420244739961166904918877227159199170332554364997806643867210612171223753892121489870944284295374762233707346454905715671081074725184049187766235139460956401455500271556328085044850978524494740240353871633802776052006561439449519196778039872559150436865202309893281234390922931063314279142305463823229090891858794897315001110703350801371816129684233336215451654342021663356525002275566650240837472633364181680574041256293016743778894616964536775941120971216097476561059644781245591951439073377343838057715129358026453980536939950678469648697217152093036233165314315396314296404429732794542707346962984949942188836448797954302299983505801229826297634013278016992537281892598072141369132432306989554035183259547497434326921274363899264442941169773653681646402423283806721725542924917964078095916094900177730183673588755370678227728196364267471991304399021905252438993552883490416711616790604334086759123628103941254602214151701937896277688156073203675472195911232492824724097302559777733414116656230194730850286885503943728228867990852906924312867763676801923417267971167513756249156603437487058039571311600585233655682632483489180039717173737011683723659899699913639061189272220160450022935603672511515552326733100277921442716479563533133003616313752547261933229338075683234669020460735118688658747415209794885091035520966913879701754487796543648695095943398191367600419970688728501042918021972073049445933351964272355025828268749788415819174283897961748457257903393427511195341176045418743332267914618170923907252556755956381953875325860291705496654921742905614658219086868707171617965950677859054882571164480662945445734166303949588345132317533491005750607582129022576881127174284955845711782997851394740373982744821007046266700674107443688821186319807743650881416669215206269914908811311560688922774035981265294225721241453172880832080591036989587508654715917398295621269206075249608864048929615006959803557334555299297784229079404695552509096100765272614264047855125861359846442232207966942069612374644124764969264496778013793965809994277106352459852673148477053457748390728536714278738447316966019314809954511038492693990881358892465468172341138665197884331091567149110272041930684271253468150937416921028546592743512227183841228709296443043785513660915914967204863418494153547281200315220952413177299506489360313412590328525530457915569859264495217257494016564500236668487068978325675420537770160477989529116638671909322411514434272935771448962762936391353071345975240053768236587643300167563119054592650240667931501461241119739156487518011503576321499094272059707532153934917912836701280133678515053255091185661054779919811788167722847528980099927030050347763867409490036054212193218675242759658661583857911486584460045887871029604299384228490337958532650873906270522060996982683380276919107623930569947095544052299396693217227334308354581945496704763966109489275708303086824145488658969464005963494524382972701150652583763918744169275946313856100477206918100482087657605420204557374325638993631729391242271768159415018597387173338450839309039679959095291496471943465778715660398797548330199764129791221310945274249041797611321309162822275406934991388473189335505548781241405330615216301008673494036099953130203702006328591018217018383858307905941487385318903381851645269230691602870046528612609976806376045943104756903100154258487920291189432630800215023702573821175953277421917265765870667091752920535886817065623320411568690630250527083675246387255865457245910565792048420660026087820097062726983623908671143969305882165870065303985533837313428820992053010192901225563452707925810722060022183634111372198779865763200974172555627127155308925395999824300559394874546088260487919729016840403478951929186751572969824962018816493956396710381920021551466579685597154982202132633341908936776161494541191199230942347824927355561215379244498028100301225306109062278829670916573206784728698452070779818921607510818726890792236486257162384586168582192894797274726222734136600497502152042689718789144445433987402820304423327716871068823041861701177510323582108807674533145550903795912355159409509670383385840338096380953428687799156839817950498430605936627214578563348396237315515976262384209795747929702130013097279759275111135248868309007960784968241658280718825565749250887107392193930193824570803471788556301134357014119648628451447841545395766836128408567064281727359179573571586585561180159294342571096608341538479989305809599481716379346270334172461515855890830664063264665859389079852157990743417536571167126513739032569007081391193409783826470931447332155727799974281841125281238825780566982095829825439869796067440875499166174896495301859123565544861039810053306255334381724616165248773622022639287840942421539087926505703151184572480445157679386034108241968665310133006232244005221286613757124702554903545743345891679999626810074721686858007311731682133590685348159788495313728215616492003458276169269815516314460142105488556581145135701706459706359207333830467256331204133940391278261775566127936936153479983281354530057131458396057892798992165324063424457746497282821226359838703675820454556266571362346253988141693523809239768084273337678842808681037198929962313052517699368703022734434010199522987565390975559980659282208606826275583694309794825938227253958864475253817125652806851660922119196499159116661216853490406983686414990875883499368652529065897856232814056251782289113073033459480709319373192694478619862740992682794314774413830621296740417296271485352658411385538409789201649068940679652258147449586801358580046066803644204857730984157177122496011603998633668393942829718161543668647364837082283639827132703710850353671024440737284433156583271388006614564044332651176287219319089347932694418390492856801222503545129951604971933897261605051182103537458967183145142399537868511597523251053182401823678229784532161883330811934118713005058744314063043900580798955062427657212571723751283840379379654377782994988723862948247181502223480210919655058238634544314865796796943336956535586631405733657344747882205931711177897987395623768971335543919834625514330246988543754989634551430571562243218897722231165131484526842320707310457060477615753464703065843789835612076663239792436901659932062209547519218632968898687968658145806979161631140062525589104573683757063200572467598270360104292109316604695813695694697127806276482866711072752584638356687788801299577691611276428879670697984237222710340263727424718539430224280642981792454563082298108872891876376508715642638192403025508549120867076650081327308679304558528126646258655474178878697849849427222408635119424802145823951051252295309303130121600639550080202529261813054963376956653068089024079402161557582902930988413419230743620256526381828222030731914229027661450873996993225074664585698667747201790127029530940130541962703796008215831097406898448576207639603179739708002172586591740366752694420510531711519655665815643323790948875254113862786512864380057411669793901430455105231390126780067342854559414622753099504636599422141273014159003245139590305545310866745357439025112610855651055493074031435088243468823841216986427902672840104228412233351920172532174922136161619128719649487418198705346201688382730414214125240175532194257701226865104182630701535444830964343391036494132153224888123976399095998484285217334924373416855957578998064610002586054414576785916482022670095675400500100722000259456151352492625664441136542135407743773566817481558347725546123981112014093489237769056905910632073897620149958823232838326521255608338971119471022421987160019311740415050373976271672546279841551007268043294930661822055244844816108183514673804306894122674551926014103121193304597532012133207964648266748184704944354021139191489202254814547428924750530365785495685654228468392472713316836767064238800892890758447728917003655110367431245671693959342200726667537369955695253282920774139891746337486306185732280532838529895388197728036915074529076513628539562476585276772507712974440725193422128554167868824006893445729749438554362863242603931837989672949111094464444071906764709411049431640098019661767154411271785853342785164940538801120857114376264844943172353225108310579579614717820868904976265282277557967360577183680663404759591442514351522911698723397175905459158134818088810781160195755282926810237706507627807792779717723350280600848782157428270654764468979987150239047720964062544205214435689495220396787203874488022647553691082099422649059173965600054500878777057883886399183770235345305809341846693556547941124323232697703978105478026876501652285448278522022933510544835064901049562126862794411841587014439536576274549885373267997630029491405175746359542720811057089110352083487785201452549085706470521677800049610430783001131886935850442137878483366642274915410345384462117792965530189899236323109851439931305887786494482399647190263372603616171394723314818732578064095062953127576852652225543573231255732925730878495784237099661370418632302166669687931554044760019262635845731854156125060860457970005744059636153065064802670359566474536355181509873041443695235375237303838225420969801169936968334530165449653578379982851052503588361419374772899508572774099815995924318264539117810060304135288784060963753241725846503043516570028779460413676966495847852586545176821739205994519211864427883529543391631334471356273290295450679964134404616205202707100592680009693397928682552555631076992278586112706365960899574045834999428764139135750233796264331088848066661654720871935694432895296571372973063914895159159598739627886571722360572376938272182602951295493782812571063674002905101533611786496555821553948505551413746039536273276673202173305555591679882810847638937687672843844694117620532840501882881270669418085614030024562640106186964004594654512767385238403456560847069128215364201986399043106478793787114888172666907062274892201471872280347353141896862847227010366120879400481208024098600099028168830813739934873860989761160128195406194227216134515405262614554146971313282219888777521804357582996727348292847389537131521162738677851446526877036642124018897583424150864218067038098997032953680305600152160419301555295503002752114444715710139313515189705626382804612664228891333549554414950354519933383919729451362047152662091511035023764074139833524735024497083776327514846771066603803505911504738619510181730918198315345534389920777848445014752997878676327142394591226443499728732399948017580012433874414252514133085342484481827440682763723414262760597480466879491089355291223974980894526161874287428891144931326738055961777492340310223686731517415658644275447318502113812465358001904998171717968512429321027171723147251895873170269113666872461614025319303141865414441915203895715792172500736632153479828390304512558316566550890983966162506003949865270232438889130223315279748924953651352041325056414953439823361158985164682396235565823158237940577916058247639492407095762523406501227840703856690973177875151535305577777942179034941688658270788954866243729029232662264933628236387594855039845157628266592805731450546090055488530469623921189102958623591195581364066130129399046762126059971997075333912103172407642724553292200838465902611421430027802991405258658722139560881105263058466793660739077747496128245169975707290866346827010596601266024386587189513099917146205504205023079417559560757669121823869432173212434619301169925112486775925721753640203345227310347868661182145196024183996872760390078204023580567303171739661353074495371872083834076611083311980853695034867822415017535100942659356800365915722217786544249721567554596332398879588155056825957590615270941037619664509632068237589564818104052992320299097543058358349378866134297668840825531464012127094135153002575830771154486510069803416034558653344834451904166347352502278994849606089149609540584314665185173082116414619471746451124787861269858005460783264604136228678417661638635189642971966622764305652529291878840522444859306277257249616339039689765953234456067285711285107936114429345585206412633208263198381834317472134450028023564242246300222591132324503390240046018498692159075042440255984081072711879503151234561740540679231009535632253790064229825719004463703485974441261772120523065437314955719771786372137448152618667639334654461267505799545248313191316936473225693271375462335787007869898894072163300216096316670527823400000673103144586492362964593851637987662407729364695804256307591747775936280263165214432792948419639084834943794842300853936169290390659995462737458796417280722230599859334983573041656825395181486217563193678048479444627432612089695890759587591765413115917181249867250573072732306439171772814184383289146152395463255874148596702580284615924072465399743815337467023293837506139774054184921870721341220974272263550700805009909508108263063059265174218252192536161567119217027478445929479393773468955708669693886292202327979354039551794103830856956433172535305987555685240541106184035362466376361625544154932465508800586431029569419797868334416757107987601430302480244083344199048208739658236469588883349127299384504058310554861375357918251685615840240685199737016476830741887629373437493844998580441695001507410856070456853662248296173345481272758096162365259834699477411638850119701889034904309963573805062544047934879391994915528900355675243335991859600957379718940952001120621445807353875524959320318308820363114687796011479214594970307250984006375892245759968838720566222510583032695578204845720573598373434973678809667251266519821892437919419258749455493791055650289818949938547032681665016737458656899798080887867343366706150300658424324538433706165168037084012659318340795930669542455912557146161376557403856836020020516467692350510975285916242818899257202751838629642200391433756157372686368382454704750741636916372891529563933289050479269997278552335276092841254459767883400765089757187765655177680116233298002070672727925860968436588948429547238574747070641598875956648355886030539948065364131269375316087289304673346918502779709164509561184112484958161440650912697493015341496815778546592134253910916618389789043556486215936303329186300780645596518519519462271156922244635320498485303044592145236865948285278175973574245848611866550645610174719644024465798508225114165993734504247249340435881740174090934375003121516800385694637544534818409800980333329568583413447114809230902633624232730160754596413118808302477933556971839270151737212392537276072943303836953526827377929364249160328444267308708339117385150090564387869001333699735109967236028981788079395449001828534610440415551734363067901884690667421959141231196333587173053718774758729127181711614645612673105912794619964770207857929152330488176514754987041863033428475679911567953640856582123298364806671955633490481909703504443989026421466596253368421395616915048663655694932904358169909766395660319973607384783594156898466430484353987480808983009875181453833849325844837174686049651139836880788892189736361794513561163129291443210673900226486242844280428374013545886076486825058400351736856623668664836995651506621388037418410917616460024626466827182283832668530929580540091106715150746130794423428574518157192432605520195493288713696984059741712116770531497775567236837002467723480157343057024136658298145779142326480788514669307642893913051251259827577512947738542474514012080015587789372066223505660110163372896618227200958084857643192005639150181913827201351315685489797246630857685415406750340219407623085665097189080353932232607610836665999027985437724917922822292567337656359010374258307877409127448149299044126541482356128631135884791026991658011858584302988351577791499847779964600034385381202511671845959837779592437634825574289136702060496039084857931505331854082302335458579127433451395244792796039476760437592013635060847778642825583276576409206689084673341338408318019634542141524032384922365429178667088822683641130153407464923926356457300633955494935197635077248203195835602793772122564031577634382196993362558641825638804171947512860699989521362639475549203807597522662483707946580700503902238270203342266755297277788969370316058732086056681783818932525370903115935150176557572622097077192506101110716913543705963958451183211739653716096855137472433886946328470499695896694539689798734480205299687698001341278149415839469353786643477368033218585817446730414379537416590121499412792808699905918186762944412833914832193564894940387160260230102277181191793737919841187327787910306030992355411160436327096134457006904496051528733857904912474117189576749456984126361981501869314210390948021957646880616808051985781693489107049421230332728350610750826683803090858564227963708223521546200725072873444091665622623237746464373721755166612058985495104075953213113208408696998485549854498500588549253242200569510260249293731983023572370901155244305079178736051561870904585254462399298849081059221059852385673659966143766808451192547002201421506233994475587884742306189613287772723107276854931979813310493155934499389011384151930380005433751196321499858230380323261449732368676642082845434970562877010715422976896162661615257679834615510764194376814815420196846472287921488119965314852951879919219649142217394165135573596109714230722862970845284530848406377869481015245888996154626754577620744447075013745130418421533259437655146355683017483917063279821674027740564998366653690956753105022858232511129067171796294097626085299738678564388680156779175677842544518307165832328276395760591269562280150697915080959645179583199205227100739735121402019232561330691134718801977926873679367264260577821598587450928074700409005214284397116602280021419641267424918412436243709072608947858930075303573531764954042438786662488074356541786861717332676592572411103629027003029592139738448034696387627093859245422865816999425540617621905576030183952426200623807559124016514175880166755195344224172819795239697078628192531355790154984802764336784562888540537616487393812478081990173033438508235545115352586118218565385041906108930087643858678183172083828954300650183068349628641060593536369973576425011578815888647819237233826913886213048190251008407655384460766915911983937918947839113097852719024573586835260087101211238600421491690150083453664016891174151680882237939789611485630099522921409086313631323709828078190638818609492824469821009963958219248875379886157578601510956752442089345832063820894614338683888188327188210413752436804212929962531089064907716259979039687118008322808099048796504475431899097226615375504456320618649071701061154865164769821646222292671143868302397952150234579436388513245555563733173215892928840024227704841193712339714291130498683186058054132485916407605204007097324639634705644240764446220692018642316453648601761658725608278970560362258295613075783714962793157440992887342776657920687754690869633052543979343346562627828994527061507754354868900119983315202640982605507744499354323129104402068437816850365080050738692059381079389747691067476043400978278745985073103154781395560222437680358997976453661756897280396613526788352240192526833015991458919367981708105943653475295693255336928285438429653898330311954939662999597198612540221232054425952145608038871586636077549978794497522758428815760110251861403799671928347760151311996850732895529025168727457893001923910201982480385999499787049730699934296600275567745579659183285620424949719229648696802675634264721018938135498526684302649285690187094957995598630916709679294630785128365299124663546984972453307890019876438584828644043803895839818696089577862738831827491110410110418042783848456982868302540098517202854511100905918758858197743586101401225846880987075014532028845092448817867833454731197251298253200365714450016509162041191525643914542902530080396004980263624756043651353170106123089884926768852725378238696431062598785480469173565782287785453089376043903232110322600604448554577906267575259439444813313832309104057085266408244553751565075437765455726238942771882380340581816371831319320878560099336851764052653215996668676232021983317299796463325386504731760403112228789934317751121291066034901421540280215492826167412048339774345031169355778372699664753083223162315777553571686195030054960654735502308316850124891479059660186192183234261996787270846529857578197031074592103643132269463075817397323337126765563313279844516715746076148232249608625301498297384372235541306213543413190627134625453950776028878107778882489895148901833521769340618729036127396510970057765498649599460527555241242598509563985690743685890856093465132868053258850045448641076311893846464851925243084784383690470890201394265431604299248349095739788603776411816033332496435945843919356221598825842066142366408492869725373749806560233632638454532126880020363994800394202474245212312573670749037696632935534743841189399724328388522672173508698781669118757858763471996772137201808387569590619196097772224215999751467441089182365423535043457564526587860643426231035923473634501917775305886818607613603184743446718661533106247706195052570056154665524173824560215131580412253970526151964508683205091821738540717564615243766353764083598921236917903880825737707697386906472088730990384931362288463280349210903262001356403226824708619077674289151168107273353623486067638035010311231660087654890015768097463128063424263122668980113003688910911156832119950685825995495525803811289861600613172892296397251833284351887500386583666211153656422536735678950666390767951175536035263557619042349702586816763847423193644927338688930162224661915081593369751339102363141169222363116754698926625610119534131059967182931610015234312321848066224260494289262478413535077695320629912903887009034586602730749316500284432077473850073100254871255973565224160823992278168494778690666306400195153269815169787527706807909418920749173146098478039475736720149810005964323771577575943902873333318492016091148118874277645755736306464927616654412380289866981538122910264977158924438435212054698694953138753936749195868375036872300769504800965983309347349667215652922164595516610874913166054309934395328216731374625740746045623177752216817069824831142736298805745336712028397508492883726727298166168425376292711001549540468243571841983093997881657878852848335992121043395641713620436161815670424260412798205597002198240916641565291594024248113892191525170743698742758444420058659375333401306225302726647458095293528911536387860002074963519260563917687154520346198805045797486665482969242185310824430354371615163683970617526345303046710949774223615249180811931550200339267675139269591056347868811224309120469434196202283852907469644480177054335694089880466196095737239758085109643403805539084026706284391564574374529334282326325325168687051268223151143788768191362707872259684636630394410173292913542868343383688943010552482261925737777475654775598279317991805246697523393051371078273068278185213059331409856445040782425411120594699296999996080939160606163781120595791578553327680584468893752357602798553998376020014921144411295507570790204996209241798581326441171752047592632465533394277330902452138580840468174030949664111102594526009070359431807937990078296933244192942361079678986181185118286723086353398057999287496720365236362442876635616814959636968156190351509409848451095165747001089758134641772635717427498324784217670883261173072570167867931474252593137713471446425165257520362550727978190900523078484633900325922750624070884837722120209018503419545600073198628687844896961021811649687041706370373241144738753775439893447895228157311224410343762479538609530139574827217390292714721456369549141039064952917349853013743045323107308520852485039977331114417874465241539603900651521787057487504865073872250170030657228338994985845338900136243969370654570888897298189073307062752870555358153748088013053800378384186995594454490570122412088667028613427715715884688362494206384272228630221354599245657971053242585959720557329210686842085784624618035711878645179054966449603723845173392262298397622668289566841969746280722890599932319195966497149666220879351339094514400955470941172371048249111947183296364172648495566845708609399488796841489098114429936455680171866993644501098224217666216275728201628255292423920847610823128479813171596837353767295057644338721391143690283484571216920551160931773698263012195158103491961323149757027035197251240923055592526059401788807194027332210414691582286896563088882872537549837588343824215322315480892316490092270212662435009228759615431203991665308806615807894040672034124369426019271570238102370238069300898858945635373796646698817269493041771567761436620328948645077512448542815658466254544746453242206382287473417038741997969803610017524419552451863637364457104729174906661572184626519249797793110457107674165416245120988538977344660297956257019531652151908719087258670574205144416534888896643197784021683909663134266430510101833723808577780158152733085831184822621340321339153830518921419757447183348424763223546819357341249130260075411465960951610463329620118944864770649191136536088500761985847452972656957879211928131071440355548921775419919637401471457482330098146052887690271325369955748016798307717362717445289088436735123363482203968318095643787054669155701622449650329149639509281206322337452898262090174895409724913288011240235105957829300791387631016914522540183317018607538252272024551398707651080478695155472220412199516832215741779392032743439119913682976582396926220423395392571920450140574042470255790412122115819566804012020778398890479756284284535873759589766564293289803236413453886530415797157835891935257588985895778775717433830332127429088976672479885341880555407570359087428447224236755180414101234877743282223727822763920455056034567818048327029049559612809132011175642333725675918162618171054272131345618696470288744880982887936728169002703846189860231876122024951577677864260136282044346705712031843984535683970450517890142167759073022838271430887509023638140289071173358489597686465965329551685091213996379900572787840328724243111786485704180305783691474863490104369047858940159574329938780897217644235589663760433446265778042811508765100981393447757138185697412622711410125253021696362553101658999565541826294254479921683650767140492339858836868132080925157702438248404978975411658161256861540734452835182153812437938801068599036353845153390480552544551273296552587865974984376363306968274118521044550654620370646234128495809080614305664787983271771821582395824257905467761244999290523513854142051670306628658465356003053447370761101934755385994878955461224695788168118137922903289567355622239032258990628021878176849805063240705263514807450428646646639898635671532756675942663681596932977041086246219099210038906473515873790290477319981515615333462886533710803011685641200813283300225669808172060775190921843496558724897202837688676953334924472729652092122322540713315187850839049285411500947687580575761080088144070628949319920090430011574140101077510676289505053008983294228537674073030644436152470192407495421040374586792082824335372053240054186001844496534970026828263393859176729335711016929158903645094061549685037414476453986598766727292760689108066702015017414495076876823913720196237533179967355972953177595677401322089794173179757811064726982223836015792602661073629668621495121858675157972726513990615624466794610086938325061148257076509890837840991223683445132691371869563215464508528303894350386055181092200144021351530160817306818676012929559117852836654858522766041459650750425817793503765973572946075702607389498675779904166045825766731824205885278003596884472050622934358918724655218082316655347762703441676515134922506440143981971591811535586037121983588780224265527683941883479245192167641367588806382580372765217538695402448268837084523545181427372598637308148248968033754525983778253829713361073423128919129366740848396666640064920982301248692377614600678393823442642411019136308801731785601204695911697974551259057901983245834053968975567767409182444402679867463444018151902873570369845058882107308567304036786777906673668746700591396373253412369117901435544971294028998365565631056466182847490980928917675796789766314717662648485423054274245841229703946753062082687548979078134318605562985904859471913719647370898530841046073737801644048824848915175494531884247096689628396864468532712774341469061069903401084588552800806661900145656425748078509287634913479270677694880767223800134907487644529533533197551057597677960541622609004998052009012810211477849471025841579071462272888062412721108147013811415363065900863649218871533792434286586070265709365519339304691440294851019390413132572583306070364773646519682623043241595190952978609475331555343693552582699141974275699887964020299256340560086915418092374246868221869976691312616063320617500903491514095902822645719605927938213743720605393216524207701664118455744415023452993604335382586667377141369160661701049417221854801643575574949328185897135870114088721475233940197092377780243409416963224366346774949473587556003312986120994910124438636782488672798416056725967266716617060383684245713908961801552273200149418501960032066684481073232757197275314565200890543150573660214150736288050399156266781738171242776602198787095804372511367509351065682099908314944257622330704810417389354042475826104542338627677740244821069430518157679478723555262242114990273759477985151307186898242964004069903927503143285101289469300437441972454308914403346041942637649377695794177325649109073820698035528193414471965448273948442054653434229423070716038197446194810249041445809637609050557232428575900747491931861895450080259741376381356549003653424068545522643315884064274616027819267918042386726383209630918576414032174816531950202812603156140406757141106619349786030379759400939217495071751960874699483982554071220805345603579174816901730190563979355026305507446400858761104112319417220027100848419885834345610050590728848066600003251550042437995083533632442428430506767195142934853544119583845097483045544742829095586142985906723581349308464432238308400201243536595158099274937292909226250197239831529985258487145837217698861015432517296537404734004024385569794965157987819913659588667058718397089114419962413187815498696616924370855693622291302520711123886177233339748711751322148328378133114170409628267248910430364781960883277322917747846195229378580669924335243111380921124314732306807876507540637675055068203611924197300248556110192128667246184679607147355061755750897485483102637817432892020202020138722709974227156981915431058333168171991222547519363370788837932756027714758576578037017300172137475750402967407227294188507078556661320907191569896135961228235875136394520654038774273430536687371899358637670833129828612967834989633217794248274629296408328849112996808931397410152050721462039994702038960796268108376352956437191410531042011449988563992001591965033126790657266028456597439566430784843238336514914805818019478121305973363422489835054771357225435294532989649486102540560873199547760906482370265932608623212261288771510230878741395889177875730352110963784388113453919118079883494840828631461066041769607419234467797975766275821966321563918803817162049700109074705491694038938252848400751723243279140576555626608818862987782050666830042885042779859241165532744165153169952960618350565782508699328023113061975843617615324929006376149302983497170227620668324214540072591700298501924020140128082645811786997665148007877014789291497162493615604026287203153887820505125718552601130713002631782540314525053643102519028276262642049557142686503986113100877963535489088748558945483546780776776910217396553945063257481832436951551248575943484186562377428277014984098410191206128239056607482806377319901635178237694284669761145482592645795338923910669409266036975202133130579229796844974945128243090817813662011094971680170364076703264648250438365386585862601741692374474105025834357065344777694106550271160177661664508050034329027080910532362145320111591278748259373862303073641069436741054063325902703719101664691067792674051638231662716725889758866839304252472234245874045699476881313092783369972077959067899245011236935583811082891272594921021806977716880369828760397769099319125544339708461626754845748450837669955876817644246361897828697818032651319981992202884065472549922202450783987677263993020496663845421679118624369052973250592526908692772992233268892893401170164533685048455030765751459785983908483305867148607082738776612051856593173716383407011591475731787658721958025791487038561130753311762660666847227447778126800034217161591497781364798159817644903487988887189364918157241180828395499269554695467396150885501760633143716087690740334034989669982784541449415694917013020259341952316165888828633203879077518674054048602367656294662924048051200183086105138642192757773741665306809788537249853167072127319260661675848552844984529865288145171118018321302916990681677636528142326794672086293058252794937256949055591163214783274599189305480632932270803091130897672103478014911386107298553849037124506272043557708113141805193609246211446462159066840651133242829920998566847436799390383952309678937243042135563318787985048241402335445462688120473342265025644938406520795462346944961995893419213193216805916351885658292021622765836529534370143308857126197867436555104819847164939667953467426321426993817848708398556133760932977233862362279467735800376019192785792611634147352396103978251670544544481727322835217202002161941714083028866526908113530911417422216143458895248811813463818207595822998175479195383957300688874857799918892853407011192917170926899235500947357401244962617780494242953266973602324168569213004177640897495324572321451823727595816752502798771668929055651641652967706571140946726678532072317502471958713845268728251270620971787361032096202093711476399187655121303421628854036521397187546487031174989767467748852538454254108895067721234357606571171200005756685226215681465391109258438960038813534574681590175378480396457040878003981497643038889172082234940320748379198675829471630525996283651804986894963284193255218026436523596084803938638070064166525998056397171187669600417147485415766372132570656222325476928409024147214141938813920202796954639724854254965259084632529535493763755284113155813225347497220349240951063830400766769375350703208581825231881444411976548763591241487598543397937610934956780087090988447156562083818488234033672897004247791510781917671738722943407880672550566518062097756462053496049372688048953465791907445991409962738942318548810337099305283604142873193263859847885279091116043962384503634254729032425917826491762077807368130583000233046539314078921153856449798427917058406222377420973866264104513124935656631346211952209905259388161705333513162872001880101528099265815446538855587053717479716113458441724770318604270353309304554599210354041516374361805169869719070008007634597621964138704003894472996409830683892333812704872712495101242441351230386297280856341266412382859149233712059002254387979388463962237712127380017513278820549026232940635740578324603607840553004195639135287030180049660600115772893746889385067966984984465569014316968111246841562138721649983750672674315740683563721082465192943577540167967692962749912618447258399716587701582242832171192830213038568220082800946069529206837508221909224438554802299755809134362683892296280133293209333596833829615713215008080985441231647510270325151470709236254991112279863582746141632308648271942415145910095123732948084507187211980340312067915872391339020044350561975439086846315306333619921225467388997428961242471334226668314834792578115421923560629339011170983122810726051926964434131942998941511987150411747598614927297872726717225821815545270482592983286682293815720595533721161427571298710877010299535306507819115834482018911496445693803606827313597680431076428762760003799825837394147642944086484960285189338719498285674216331870982375816472868024170752376459857109904605627600512619600581235439698026398508278965263230761326465107498942768260429336446252420784315516414836813168401505250611978486693003312759532499488191752760216092749952511326095440945081473707374638813670676575648200819570691355113329730868885949355997401842069783223384131900862885762648411313261756437592762818888145907901338300033140787752232191437846179428096048927194438939167193144996059247711552370697692639323725375788761844747840617138113683302663890842313778166519332217138973820966442576121556253928992807946668533328784445428317179322223224815861800243356449087011799798824157584812976360657499592959329042228440740311416652029343449477593838703430593962921696836608922406170729132512269582278771160410793849488271063659208154123254158553760921557121210220703282816860280801164223053766164928203176919987887742097383823979964469190286118275549768586288025665338345427773150925441432980810960382099001818025216363667855827543014579811673631076982399885664232374815168748254358013768872834638025491227081333057795481321907507056173922332999401990067156701807561445606011288088631662269883108618191803858000464954903058530390080162677930629074758356986609434521537907348915677675203129062543035932660216787193738117639409652917290512306499931726606284972133048319639348020279569800814214275592640292393188882793082991445409267640105187365418840666672242010970849025765383785563095427637951202084532415114103827064203189405182126707371486619787062131900844128688221321237177731840139092752828463348925391826093640411396252693276264957028142956725902128331432014482060467843846031262794623022208643517790662818402453320210149434009236316168057398390308298158376860642347969196753411208082725634511945147870660740968574751854684287264137400090050758416271083121428767238174561042083952014713594143732544096147866404982137759251871938065720632347369546023813297336341887057335691110594721681347579760614412551637256784658730574099835396379265684075215320214663971142549252646077297952164497556391335411276065349682753789385909969539523646609892642237230199111965294290316033602922650336206226009102925740930914186631442832741247238452087528837761885572750239179779816581850392222306663565884576404616704127664680997048159513070863423946629036220125221270097401534865961715525937253358315432015410386395705927752010624551117796032013077115739817625103859652577752560848408705734217022952282344302695158574493962525006652393024271787733596855072802024171167491172499951542117078252477099793065130378516417187183349422134607936904681382954252765224225454802335976584966792712324529572839511680619378025275341929650829748721378511883811917709609391851096576524416724360155108075258640532541775870074224733943028204145574539510560283354256074505839365512539622692971607885312647013616416958310222370955200279200553653746235222093530155551581001998401331708720114952249722281795465449827586886832380655245619005848637628026232487579211190836601628672613980660853917886432452099631272750695997431814096274778952013528752855734459561830817081163801475002448077872939304829981163771421672077238896424694315315304374397660259566973020188513227931262666874267684852696899603040122972920784132158192312613181627833946119139575342751879661168681630063094283866197109180353320456932529572940043310690842316377881384811938558685910268101372324469811905051699566700202204904284785001061735112156189000863427107721056582776774754489610859197990585930423243239277052954725102233159579229257703644324785893159951068649034044982061220859206843408646650149595196655572818900482642077020574193646868301890833367346183107034446633871859502652277658762688781045812004930955764665304647560449807937906675651819108479010683476671851697710971592548697330860660465674444713674011688495755014165639083456816384680043880345570680328925435119019581029220031517565065029012858069100970354527479033173023192871527645693209998870614273136062970668707374992143730778532605972568173592865873162519821609264044697401466390096485138503508034208827102051992904507204211937207717939756920534664977430944599573103733112467678166336176331455904726610112587278156961732742253718202693777235666082365811457768297733537898256986632415385872889397720409392532066982830030116814637661034657785603557883275736559563026484967198112176350834622856971727901043149362868019490358906261401340987858175173107314793068224159818176035286174495445220648062157609482124993917795496396912084772577603661982778093602548002475741575761797490027655355124149892352807903880382271636689665012282956769137604721559902075386382855705089190394193866783898189438998699782973041811911440429572051814510706211170853782223361839160167635384569065870226198869649300165041147774636077119768196842305426706320706710639151853577561811230861853073676194956171964085493471980680042871794343942940848350982463341606037085099022019307636443833941985147917850809639360348363671481371772217384719748845872517662041930525399697958223160505403222148134094069244311410112492165017985845144708004699192457329041840160309628144745167472313830939326250675708568188039501252566147594436463012342459605786142342798546044786165296770006643410651447027326077618110747172953052436032487763101197174975643944741319416644625293919378800704380833895000726223746297818295773634593787554457225229796147902666944098893223573120011689777199921014511187320099592546322162070249231802147133210333823249182209752930413535612272994873973901402121378701788411078973359098862122496524188883869431769526651788505749573609084568490475809785146725513681543030142256314353774607330830235045219068262924232353056348347560685399553171823800655990879842878599843345610476031473211262565039382499878261609638196263750323726723849103440917049503539182913416054991873895364921391933752263336378136077709606926640871766817139735248220628499877182477568194769829963910228677664986338956395219715470039426363057359366403544867717139635399929698464026052899445252062631485507909605182177970211781040551514961943688461267039734448583824979339164389521961697936550695193805930265505444405556568894427724775029340083632609109126054123686129466399811064888658731088957422606439291141834600014502329296446114271509358538087927079808079368877878396904872158067493047488818462635597782147157485902548268346106880726450423744493586977331849660851956472051628332051172041301197961833979149207136827454664580385459820097676468463037514056292156630255341489913141698788119179708781267965686785818577280833876545289203421462200015757495981112504776509004448460990590394632660745001749786223235111121491876843479103402762787657953761142479753938339803490381801675355574646846289704097851235396079853077685094781959350838433722586019096536362861010559147163328144044183974311729365729287651561548974878646504523944863566773095978456905777346832410247737545058075294855799262154570241038059584872569696010115613231169487305296679906828285310119678600248876297910006808332380870980777377799354243371908782176971930956188237963109670561370029598101775761429406448251847956345300701929041627574160271880340904768229180810053956545808701999472814506469683873492730158263665338325066552294077126388384539978730982026720240930529065785662113162952435007450663376848180110733584992666387538702261036392938922312118795474346130568690201916936040396668232489363050531669328610025187031945125580005954785789693920553978117137410492703461814638180004047816549580491509492830630305121933718954370596726039536957743578133584889497527557749559917077891568269962346728541121126053366157746596236653486523599952324660095925955201744759157500325491700525668281420470593960741133329753848504490321998403045984352100444418955956639441648182013130162940239213642206556106755810666260837527310346483012908113045701868657304184871250885246197615950431343958970810887518375514796918096353091438425825606721917500287438177800881924164825845321220153519397275062650579432788304604629434102663036063642596945662955044270192688974276172677587374301931485424426831002357083894039836989646599316374218733642008591675302591620791160423081307527573774895115344915027377029241128460359085099378421729176454875840932941272084068740533818429252135396367029226245204359119985953450789258012741998046201479968450832052796915356552503812881093031740363901759652403921144289864294316459008998111279602856192137229192889941813319723230367614306575472715927772077788256596619167984258482309257223594256399555035260223652875226982367177242492379379431485570771950031868874752786964173046998737987303740987743329685081791489762088980934030190144007559261032738163405953941720453270273168783917295024540615335132090137929062214831322802224053415358522859691941939918907403234517956779700283119988577784722657962064991439243180033613908847595501559437829201937424331648058374546234936901439973030004870304841113109272860643276814712482535985625582115544177826210559343348710424610785647586210323008937558420624865213549313950561300017186279860473745894648319451485343276010675820619920475754502609058332544421887978525092294463818442775262846387993858188587573823103618525623979831101851601984578809355620771934273372867918438640475675049937443487975995549254500172920446319896745178213257044593465324309043608827524911779171159604137434768284719263665076402903024844107368440987553630259379844941503520930384330138837524010796590175848647313486430394003006131994268672754078778519525351701436767590250181869620357712330422132323588028782574015831090251788790330723307425258267619081383772756713430633992661681042006544183165555779634989676771941905500518156745402260156102885655774985768733458405340252777081831714934380640850062414700099705289467114488758833844340143106920842141083682021485483844171172340023945984530220122544310819585367057358928636612056030465409566250178960626534124330932478883647703523749830139138604975216922336773541054599171160757808138923704336137311171498862596887032084757001696451021242361264802928970500001620590337428075667095594215956011256717056292156307688721192756362576375525300953691291704715263812031617081690198356100777087341559480535467660831563753333676345624346943022675971499699584288558418778146521121049740015920820530367508422152276433031516843465140152646245080416544593474366438171301033168696213910946847123468057960649217833558803165605171646170688205695371958087638011228347589012833183019162688051583250559114090588117010291251993565460776434109047433538228294647679207744090002232756462406561393725202996130781112957765598465606633952682633315880963726474820855255235329897875241224769848353934556379136798589429771524969049214409993245348788682267775648498272678610724875788198645304322138436402355315339561310816881562945545864162203990579113566072958966582088378825069588640377293500984312077153896003914577431794217949111744842397226330354979286113227802787201412322614363439013372666519299886181522215561041010592820057809442814796513105985797581030035552096688482080356099033033775481899624768588890375272667259553100632850766302459106858987501398203852533765772551615296674457107691177069187826883134477710316881117436199147452193908142308079347631189167739794059041886164151373923336091173066198683663161168237351517770915218301219686790083353536924846456603937953432420258976870592737054280908635885240855739052993638762746755465181879117225974687206386051018587194820516786819137360077070611913188162414886327465081301190167550932675286748356256742747007055101739786320367410647966254616569754852876170205560647475857165040946880597907004289120928914143850785267841072011379957544738003180795904340346213285835701272444702210617628352704314596171086816623900308126316631822753982851723907643768223480231517743680714169459595208253352927072081741026550645333968240661273093869933026182206670494241011705401001155903054209396750183676675781831416380723917585641003260352410434665184471788932655306295411105768815086838982671496795728300356881996145114269131490264623725716956413551753467609786201372748199069710171017699701596457482064113471732460107793791499753896641902489327193623050840380584650873328241852656734243357289568737305813049083134071416185759251672347636328561544534680676041534215068495289826548975434241778244674309531885174502521476822788821014244095993331780984281977291294464899348110337388055763594108647954852155634392820309723888881686324940401133267285161060224805540597666401636804447170707247373944255044881797437444479286323361069176589504387571791206087278560586403357057878053079385209286550082826360357414320691697108639579420506206896201408281190489425580571562751993914780631301953190091336238557067165169183292981532032742078545928860807587251577741311484383990816425977081736056910339093690046515682896626525241711253316375230538789158021599266949136134711663071233711661525509977400007085603842197230022529245760961674116277990859973038761701653170401760198365586741443792761125065050935454757440703737369000516449238180341558979999139771360784784366147051015104912954786058367474703635576948695069871214040472504837052645390934191449088324784371095464215569670475483927308885915891317284642004868312586378422172694737270492700195999786813469590903589205808646937037024799344174639697038526536803638326424411855146155739424346465286124529381391151653638318452397315735712668526263507008911693120583111094799865322974786300841506792033064196577217879264488768692683651823900803883598614379835413423142326592469266824693992155624959209311881818163301906626764103751572280530426345793311811133692783441766375929630958999633398987317818461254875690998213829783936197890913584321188213996742437384731215662428141572465724319230704740456216121824963713460459749385321605921609721764819362762440485301173254250603056712471346771036849157807679817185765800066413947451331049414984398883483963068427157749548722902150617499626866662575368197218808208646096183196884753844772244373467250757284748005190958447170472146039029866946605874025306735269093973554135617030145873111645912568957852829181734589303392672175487019891893165638683286348176850055725938347462267589692330755074324072598028420631222134155853761215704917082772753937627250500487491113875071874859961697751378817403717796270483956098102530875889964566269409489298105997562444378176696910545132113889264269229795179451717369939093670500918798445929485024318456240051581575569136533880720827031304796409274891929868045357596798647113289053861593370903946093086946652771396005462921782281835459538847376959065036056201993660711251574457332498371439674169362515378320763373715352833269639293647286493079443868616425913995205249126335835078964449330343450187180232874960109817075379468267782047709388500846772488587778928599215847660642830997158130919660949222410971728818462236601314473188554468119917055665972515092950429431270232470655826157262378342908563616261792461326803873054077031309166546044038256822007126285713025993749425565507041757133893374762255905522395118909030441471237793273207229900508102275964388277737216909310595462611946337635880502707888268118008352391759804948890612183678287275453423547218244454887042326028872440840318033705255074023335774563243483141618329851489095894546811975403184083391160458799186398655429946335275249932286407040001965614643314199076554636704697072728433850405152344507103862452084313501604795276638561075400447622110688451713716772332159459698141877405983127446060650476410128401183341746132699761145209775136995219000625653976226069048516161407181283456640867152542780348957867296599595668286112371685928478369479501709286722573524569449855211295550723447667804413783968559864133246747005832744665403166312530461975163037301636391907266338841875914180629868314905802941219341152142765993909289337147766846168045311857264267052652941076290017016114582600558169935533450056194022130324639761258989067160727691299567584660795217690673664740927872613822338826005477038333963612294181532168013424573590623231303157553278928642477053731667599746829266692044872851670526288362244308245478350340285074271975361219608380805011708694469577926122231908668861365420015989547861117362310151013772983858573553187569120861686000301281502039285236400766623668595668086530592720824403052284290273232335881479241039229920724134858662406224445399486675234188551890941932035802294839057308953445144271758754356697992498276606049455849107187040186669228199155186879288344043271284194005761436461553242701212815289863352671975000218748712101227295523944875647500960588205028827551779674610446453337396930653162269278993035175214979429661336659027814992281730911016789852916743351588396378339279870671073058333781228479885610139909901089723726716691560146653352190987958268113465167226803899163248725523226090278022723597072540571847552448250172064752180235550408305021095123799973200402792291236439821449492064450471487409492012526431702388306220751353075203008134275949506323452198070249106385695748064986772133605794057896833035939359146203749119097808100592013598036045064037673702688848860561056209167107874731599548942531098930728173487592433895446118027466668571275326438940178302049768734809343760372060929618988691005708555898425000381343941115305661613217571719164572001456525047195513033219087427027127280138656371241188760848215786044686331848028470264151288422204528431964892759711431535684345417197458068225336981374010948482866715036566884480146879299617401440524189329990458194697155793675785110724906649810714861808517244068955064399709707024982735206960479238486223375819039242429585242135094615284470764663351595361132904423648238128097704241785585009837299626736002935233019069117575765857213300778916934745452949378650279896754315332111963625744463052961442044805508265189880112345293236227149868356131127782509766480054016618737288723238359905008750587807494515259270638828583882220308010643178774922573167199782021953921068835511514403245771428679504428423134210383701855948081850529091861894816806454135684072121552378505583235396058327628145726404789813204997873886871272637566280852726209061879684742350203365412310498687462791830770937325922768444728719587386528732087111140466799174313581479452714616184926404204852864669862187427601251126645781713598657662516961489105086374144601566116646456832963826954368034035770883579391987122946509456463776293425828406214702538726329216983448665112420399308050263704754318656072425198630034604485913302883749376194594224754369728742351935534754384683148588081633517195971350933373124650333483272595074476667784285121730146727269972214537164127881079913903727337906691479797581558808614208398941605763563797587877693612701595771719612267025386675827297847499265025808789709858558085313737713448070833821808756564043306134660992247625477877323833848188326137787940926880261531598138619624969522246492470603136088724916253975805900636521359657610785757176629554610548567110891035835862573807482597695250516518632645540627463978221121441023887215517202117319475417441575264192466358590829475343500264189562477053430561808995654289528924687534465138225443527963676250386672324841506516947077538540850153599713458598090809117172955292826675488573149333908058601814760207928224151966110162203933701597375359330820605180890094490538224995426452542153972642713353743151369463370077510840257301154313357330432825771319530743971597281602888222277320198715249752479294305452630450108073774263362590352697367805213289563005606318533004195310977785631598017134204564965092397714984468202675537199053982221089215492527002675453031249665704627483482730827636059801667361185609468950003450830504003834338155037986321837228114479155687196549440508657567272860016399108482663283596136179547279944346191486595895056370069645948096876182297564952906090230153347027025325668940513130773971913044073168832558696968558892032586213943796195985387544697701402157337733257844507878517205200920992596876239410692133324369451148331854763880627949924335479781084498390376398668597644191505905930259487808202864705085260678909590444919098455101290911314823662153716459088669968327884061284264733501719801140691877919048672598606578697524136922033640602942586571031359877329927646689352479285046533872089404887531828382330574665349227626185758404260957596902875934943124073941456616607900173726504063415526374624905205590490085596118002544715075281442494225507828836353079181728612566833296557415798024293995396399628330644613877565359698059137856381706746798506740883543821828894315716038865461833953942954778556057484171733819523966503918937650804681024373421844455327501360479928239438647300969404417144515538845203652270890925562627128799327875864056251419865678168984521020787880507324165605954202620127980852719697525292280919274486931111500016994156661835655497966098461423763837493771051906431038504991685601258255255442537003520201662370437445625310565158401723858692578464795534520867790568772398183068370914047282932692729593273461257938252410410642137042006393753079599873893991073131281425765481573476635757507260897379865548066768438455800038558861685065678841786045836506668668423459616839204840845607731784897484007101208329060973424132977858964578685578992840973913854801113751296118922021673967082303766529339245367026763637474981982741995752281526044376273997274863751432595976451950366196472453829882414510095447939354112085290377659419129391645343007953935844198708408904840608464966770059891989323632929690267472147628344955988684075195663528598700252139325312466722972405683549982021551632683146074436119371763159075695031123157204120319581856612130683745295787347937929077073275258186959675872611607537974437720839476222142734895610701035918870274640215248430065566734378211270409322862319319459155429169795856799262219714004642037104511541633208560645322788962394195629285662911059005833092666201003829439715079257964033527827467267434159004372842960756374563804015868183077088779511839251741354343118040604352922878024757552945617236124414602516420033890369550531674837537914992834861252482130548700755493193286377208879053917462708091760431009182844911371830343842693876489316912178786408887018066547173096314385902887755602754774042471035026059554529294573517899331071621172683722746435369112259349411310877537163264619010148318613447539907307238295902667833144910640427584262595813782029172805814266508716735843110205933749098143574528587665931708680713011356325112058530012403879556609173759669911683432379417935559612496603117003289393820309388323220351164528010554392421884985594121368835147892200405432353699572393580969815127077520101861159854243176287741313076182990208046387609232801768308538579426714005803545600167518487006541875631230817791295417829466968108398291101856061411337321215212646430198608223527179535201566943183539690650736132051701487984605338308083819879158988050787794053096967751078054597917950241870576081254687213060264046140794099881059368878058382143606866707313608743857363582925189123537246045245693487952926951141403480159149520218099201356786923192053144160775587904660546885717291666313201521257039763746324698565715603228520668117444690064029781101090473565950516807648528745498280472279662064722073877962728205421741176949369853397389893324845420308379082995248585402800363174863538479241960286604555390594874896361600415655483035070103588721884688770363674346371351841459647992058371646623911712595281180600654234545116587289032017152083764198789886616562983803581122840247046778352206932036515226586613286074358786808628561240438738108392196633803034581660314188060286583633855998144756592576429922487267408737264951076140331843578948779412367575769683432111944970880539824431273168043444335704810985882294339107075819196597394113735779432839115854513821311003981664188009374774406513156387093287591073331927240127758039891882512792586350215705589436783411929745970866442585125430956684417137593999219313001684893265533745657240284417073327700502521229173331331088099501995882282412820285267601128083835497068873268528301964425091242762877926877366684543594583963427068768382912651114617019767090987136780245875954746810167764183272386579390794030023813177630814709113517545669417411332321452840089482417091939459437298533844036361920257573696168574322607829181141160248972343895400920444008853435939701762802944892231273105195250075247166886407206947907604905227103222045507912124842139786003719240788353356355823156622988334607758162438358637561634589954859357535151881356322011246748270538984755089606186768778614445389177661555222744200758231390377181117892413440116307698261432656558625459666802216275363030249112284324540079788518297715111302188056990817166405511370563715653839030118624785307508292297116710567778312613021667307632086574517579917982622075300328748790471450895087146086329205592246056681682593541220213452053581850688778541212569738934486651841172183285729998947184224191137407676734569448812315563997948320075251374251906050438410825882923595072625306842379601781265614747814020633655081240188146488284953304158156225474552686448095486554425509415736528034331039857502425100092354339841214305896892457769325820285700022683640116562628272119979906904717605294147621660888633452255010611668259038128558950474109378871409606085382062817868105616332153010219340196989186639257446534572172963846700113853591254156804009845266439721377365000068898054117359656478152737054340969304165247532239389991023716460243636530154868060278464275472174983116497159364063939090007725761718108779037625887442899199558962178710193396730343065607058592537290907120539149417732365127015241548920213911195426009183969785125776028771284617800233619113006857695094068234031233369932258780526231721434324774889711558196381394717299679813598867870221401877766681720078306437834776734298241087047358126813895391971495869347425045011970540611659687026346269793174419690838728715950966361361621483210170467928721965225421172904646380419730616747133924794725024615696674961973582309957168184932150567660615090510479082572709845241283093059999739567802419855443989814584132442162614953778861601747728011344685634982948236590725648771093916300912289547905645714611584135628645535832107151234361796170006489773947716230871311629406736094435855785787095887872977225324896260041919048719207181616853981143407590326267293006178838331965851374072528330053914635573605964163444111287064383183834014482583953655915024103217211911150588711433193483671316443909666890482852121544323068099478548694826615264727735039509250435631318987895422686784780705268651466042260871995951912340061469277212044378703278020971075708574630686939127303131203029731086323339382254641583507766091036437245470436976521709556448725508117289749300853141063619101482949813321689128214200803165599479967157683417746490222992282426318878347922844070707004820295914015658799117206939358569788534561216948601313046590768589362588443133219915615949553854212440933233957936786046623133531337640372004456227912700802727572244837429457749799046499830710984500054651553639204340657287424678576404079042480680202102332595411636923461683866040846377063235955975721534774637922853510796148739508509666596051952422417293301881928277994671278431688353272898638397785121768958490319989223195619421314809027607159561731800907844197610219348867418605061044327754387289143109130471426017749427331165924882693356257943194528316031358280949030247884707594441362752027752501166358419884269042593441972697620145466820419416039296319697570363296028239085207490297792972895253857858631814573597745182897495561402442748133733669545564688866213835233546327581136912611367972896158630972935899219538333764931174446721014050422315572826882147120005038406297842321654603652019257896977776245348361747106032241836326710112349256470407222998561999464927652471258687450242683001876777117649163007232399588902219016438465876322679256042867118065364824552079302880181467022065666783545080403658043619364891384643801509929696110967330591550638729812530430307638803400556789531913609579853891084370871077695700232595466512172455636274316210683814926250092695762130080303624310227514791398903548555507504013586344947008175867790284872361146638163069846653514546468008041972962115101029851717422012965517400966994701645002923412500236331990060725567951408520179214744298030229245294030859156098937899492648754575967383522581829441808368241343953819596118785501483356827928623698011226298094291210608555186379562414456892422288438860675600942456884164257785935558859725153043735374914762514399425957517169632131376501818801571145838483271770804958788688095870516348984775691188189283969466514878818657161236135650151785490669427778816708867233159867374800927825728687813196231338073159329025053445965628655273314660965691136606806685815480453445926548966797191888753633239525943973429042522898410569764376746886083532150682112148758912742347520242800039180066674697632591046146247641144236253561512025942886051084935651810457166909943924305341196985993832207389155892040207571474907794219916682667986271611968409278300175765504712952882273212589232487213887523480906276886319803119235776751744654757368748476662719755374935683343555672457454187115925459487806998317673540989905209334770108533008498663435401032727216565127924161058649161891384394664612740719166493922812200730682161741822600771064730915079571688553686789056916129281601659508660769742574895958563804545879068623321825264740352773081031388716467058764253251912008851297200725466148600055785167535763502572300504513062036199179984802025457211514685136032014860777611563598555441275229833170457362977626373455181985724604450228447185293070949060338109954075792694916564192563267734208905659873008728263774650235038147468427417307773094169528782995851148186751293467298628742847239621892940933887567550130377376836858658547185102708562970923988239160722384268584337553339907293092227244993748534374278740266154561037309320479251764242849312680838116590488249612677716062995043040571770597636854389286065201585189960010851689873633242993943698153703260392724107768514456653426536852307991090891685299225480888046544094411778950254320399351551709786190650401572123673417793642831770341560951083818634638604716763687179970412878893831773900157129117149499709334950622873821446948022106568210547059082490070925937101744918912805552252313161377159268939155743503308331182093131824077756356897818595974374552060540069734395411249024140011900002336987274571261794351498893823581160885559017318261975989589998499788829457929356578454081680683505185431302392266151925512833100803520790571035083793174649778641948754278149576026678153673664697808021261545719912153160676823258971904361325251325581548323824220401250426206286852783392694182323383417447413469568724633596134696095963649750567205018431894374734569212735709230204791597123006044401157108498391846863040908334103215893943161290412674439778481573718694340126680117666001369651951224753676214603289877887687753176646669995846163404025213046635103594051357269369085374970732434615815241045664450963313596919287064788266242140284179565321431152851926057879299016492194556338783865861167231016229830937170740781065028244029356930668731100399558097887013047275264403107844247584023034175657605058621920874407943418715347483852575477319562570709703869306905356220214302055265179115556600747610621104235212578168979999218609174831540594387875489926143118920930135075543353041239190637486772988303470829974455244572071852246319250995054199257864883267655523398382804759919119826055722377923622550943390264529545693922094956133526500428413056821702179009592996457862267998379811135271729126041635632274584487257668355266216449642513363309684881525182443571807045400568117221030722124678395517301326769966791788119937351480328264050194117538053367305551773397080551893414776430620154101548314321617609297789490987298870676762690992938452268128474931204585149332641989667368969154399835432869120498550210114501080535006360770306120325587627321046245267539485027290547119822134457837654916334460357815883609640190257115419734304485754493279303837111428096456224323720202312358367400198009293670645897380303346381102222170765217958181787463982817043982072885859840971506226316628125542545333909445541145089420019510801906075560259594352308393331713381362501120342910787066224079381222345082396022446026132940810699135889544966336591033992338102688873079932897533546307992049271800810646415928846630960821646624842633540314541327251697441476431810452882757382602295860373524956964672768346515014482262916607850636851426810561090934543991894863165724698155408983090101642414491184499314770799969315821937782021642074316794639979696151294173768938370180561206225816991196337020349730940964861681872650395504771233831013556607085387830612529537863881508457359044574805680008357660386225767370816926836742724452584322991762741645869807719384231056418028027922651620634438665075659722196844864505516665243716843778397500898422013739810773780360017199635807413777177835260759000203907002288528387657196617654308507249890142599981366685151116890128621640616067419859744443836712468717082475813485231015673808922508424312515211533115884288369089752489903867478473699898707213816874226682595608831990934233086747914849914281741096556602904468287826578950403750977147436607549103698219026701209790227754945636835709795602782222892791184148743915422720334829327334263351073575667265310262828481130416230048568578247490456470028404024860483581220928622196689021280645666472723988207757327483690501959116940845900222811188906384548647938319897849191957220679678627707636387265063652258853897127474019752951572571810687437416924464249067555562652165170820838792160724716863003721126525595554053104923269114203528295895644412535873542739516408419805478227276217196311760417868864105184525912664246390289981708833633346883951922832891691672395648254725833705310879887179354980418107405886074476149754954127114352909115411484760196720008412738597460340369734208062733983551507281706601060133743166847934681117690287357454163998494469658765537754082493642345997929974840711167731848340947438116365659928336381657886176817257885168347963952005449100310190311847410754928423320875365174394554657287708335189992269836262921250412274960346331476330519346104734206284187067305620503517463592757165424682807740127636322501632464151397192465041114778195334760055442157544168297508430191744811972418578587301941486581656413839210456499231545927174176616505659565613952718170776453152767620319421864579278174967737138060200656392521118730475091042213043850888844711321013352538554002985005567161605056648404669890718546834411209434486428596930077844323156648105052104692646762956697372117421375338293035343069607313583277879440889059167388310404866792489297134550008115682784513999038877348256977070336971596989531400229188082973237310377170076109335324633038512618420866185399931701898085214089756081505519397865155459776816987519768836275101279602778036235079774822806507545614241929851889767076208390477881124516753649798447496906619035003326792334031987961833143100231124744069356873203152525966751723265771666785260401242506466834821596662394974571527245296925180892785977843628986426682021203433766754782485255776615573171969215554732092566660912904259970539429970665505226482430472245795775539608216726171067918928575109695392796683291809144665755549478326744015699112374337420034866282665684943101384564798022546835514771439480696545769117663996903199113721982367313166533819332300123329115695106266848170599002983460055324659084164045838809424061893471188965532730189798657813479987435394311938282307097129575824427913802246150625825439572078915376025186984025446551413849064920271392981819037969581499945585200419345413074411601651768983015501497678464304316802195442870514158760878679060008098230856994957866304740511295623346999824312262438514937034549757340430330644187600499996903922743461671329105972744978871273732595251848027028815028885854336687544221098874143632757315750833182200543366739409806264179367570305598070935885151578588314373085069329914331444412777766963560664830606815544436831781911278462146895468885214423218189007566614670455849518178199636506467853975486910484860704751081548593690096157988326736406318037919701904966304106523002603101062054619860385582177394761700250853668621010251476871156562562058333608083704867836159733270236454636587664532898439955974714791904634842188261594637055170236633172396197244917552977858541679668021406088508678240917232404485322261675533530250322542326417252783323648033712550096735093063572198417388717230728532779348252677225089905637816716565723822495724108165104417169825322734455232384628319984088537924268233407335993261071664198329152825092748033128923902926838217110472207142425361935293362400254431695769451488538657437709678223673921970972042627004058068560224599040442922405736817607392067274903365225747285312313215170081956940829053735329825520388519985924760575399789787839299213340203095985494301900679029716742589173106876092813161831862589792553835388207895168552598121057714129388601729391317141103060768592379740088844368008976242258242685892159776392595448952730759133843012837496322209413863607320897141013899444162204354488919771575269363562387682904497124124518738789043606082170087770761581135506445424534578701594694078064527971243341679990790069711133475820428350491843072242014076204976853362211098398475538198682629110486949508841544533930135571945198833594040524796844410214132858389151057812699014990024819478136480535157720924431410844991042388155716739339623268711398145483346671944662920948064324082465127518744388394424538510280894358084054584950255360334170793101313527294395770309153057832657270294327978859223914908820570364386426045871894486721283386594527819258154625394842021954746045867804020316297869314815771875464265577586453922346968552478214679710657827377943093625840134903322088560226139376837142097054667427527369252729725990055285373191277600416976882128169614789697180688173151583822796304230977227759505558907047616097435532705743247304926867977583588408079642610149618381433742688463779890976893548391389782350130595211621278493506800683238365991737778529978940470170842756702154646326758028915256239449349584868697007561324430458515588617275598490214190652213529384793809125389297975917870767218468054204331807533155023746161025742773709821733649503923455373694082899732354636743350226605380597886677156796125796675391317798181980233848658302387364292396120441161411377940117685465731170372667103584099909969274877872836386383763007132841840853016173928413582828519328122443462207097215866730349139537664686803024495504096193456589400740627477785462216297659580391439096183057805666300380595076070827103315353552913511032545306544284913955366242053910449595595481895243242974559486894720886868749984598908764551409409799200667545982927441693570194604547844221653320893137386432160635192212107229586333115772035749284254438643226093544186736667188735269500522974589074172220070714846227299617213645633652593842739027536632861089365530826408463702591292857428939095291209796796532443843308909264445273319851721220820116495782414842552063805891046126926464076247885100375775250655726060302981461267246803169140978533125188298658082630631095977152807411379154014675283197781832280687025604392922586813614899702272084304934077525579432130128921557254664268111732854308699453037162412809758198091665152665853442152596115333391878307129833070970241658375647033093203102963560896545388642258937909496284660588311121028252523798756092287355527608920843367851162244894027817462190724804848730168741031290367401019395603704307075372472842723758284114527157440090944157175762036504723255553811898947042239785681804231779303071728188552195931602705998498205315147164356626789667568899768577658626188805614993574122503998364267042217282439736885517365017258897962302249880534891452418042614632566271940589687741253013510072223364825749143180667260641493319331756806881026030377827211310688350877803585038376070462327365218740853489784088568905856985670791455853155955270443651004448415019840048686719733942427743245010193851233045717299802329180151352230896458360850020444191127884854095664513700928477350256752941205081182670003443942949348140356421565163194996180771206314234841501074837299190568471579818983838205040953122614066096358930538187463960917163522540379779009989190257638485463591031768846833931038138797846235155348676815300040449364198702219684772767146401996347560490736427224781791755216602364610434415089777261184289286305989965626554131387153941337898878943039655022804489003608249007092883289810353779051029673544366808541548185117606805043846408134690463206510799542181420911238988239313245212619841802581111506210180234782785507855737754576494561984254102793992783517312101193530328574959413405224920815822934451076099357401108395104872547225367366949499698843710429573477668288300494022648628807877449897020812284473364869216753194966284908755679473116913835239044198551356128595973120182812600466903243265624680693257338148812268970253036420032907470510240429790569405452483014502647210340381864456754030647321109771595021000050704833308975429950465273967803393270242391799348487953024122877455833913208227974640320854117819593041690010554693602021425461330611451473973966170821580210375490409777329962616369097845411439530123727275964614271550876155525947482981143523383314721218024616066475219316883061618710775770138566706239939649167444192343237501088698608078447124858859875294783872436649504987831294956140778224043888362842426418863513625767856716343825859027327595232818364375180352220182073468422213697684779291300465124598176739105035771815670900859240970978857573643773640594468421652847177262417783444367335620823858374934751766798485991723031680521266880707564500360940270900242757956673872093856486020265094743545381650431376221259994134777565016850266321433887995824953168143691835055982275732722097962002561551113298411509407018608392955511509152605995313406447339723046183977647253575244352659249351829819583535355844599437499529297777285031603956707357648099367384056923169342958925716704890040369114975185170731842351650507158230484850205530358494828996082981042597390089305297453897031608934213482651109030037999785897799619769888218228643828644180891500497069108132954881012701756121405931604817192458785521740775995341899629103836868646540308000388754360656695517143057950057536548496582354229258032356854634219346313914000368596841810162283213327254504864378763608573022786799604159414443210704521654352958474711442151152550837890698399265840802598665069805810905663805136936933387101514388575040631441126084087816230174982964642399656312498486343389089966468684751375848018456670656841374072664684858042153980820115230312769591350463246762386235663460134541877862850365982902469988009415457641351182460601748518212297818540117546770145685868481684104749911604887462756598897168716732107902911655450335472398918398989566568485831943159103541087423817781336595262067081615624471326879414046745271094519806505597069123539145654949810524149610191750359098924993921601657166230911603483767706243366930923468866156489211424882305054626488767059199064865245964225180716498628822862996621335414571502670630148087700840130101255317619330138665879340505302707501658966230851461099727101933736848690132334267209205370399531839793744565375775366156271903515229236347058619924979510351978360623047053438109724602639371565032801388362291992749243609383232829931617443436860351719430612434257800397480463069928239028373775728766970122834625934586085805937274047925401051035800395778811743010971222897649586751028963232846557444896903144027530537146136543678619284981687042830300646132011419878276038612209228914178329074166515836105091483853862046779507814458489425123506638867816790414977829524257502569326591049154152871556183778567519114998025887983936823157561880224232026444611341818071155979476775511496440772182057717560027825161582342559422439470043330414144470055058305714160839992185875982673443517499727534226990048791804371624918255111472172496484141578782762525971624321428182427478892111635899398986028977337666102201755387999987314249699979906132470812365653697645173208428049701227410924163799748076979383829456596059793769243668662936387226422532027495818256500971225471592277369692548694589730174604465556884309142795822954049458575103135682178151150894820896770737214185592307895013102544496858996760592244450314776609208851824370124087471546348659021355290570384290147605979563238748792949636648337143456251777328856397573797224623338483450896972769949661128102262262038953338130817977212718123579758879495874582356545930258255498163805423905882309322026438820305897239932478857041925387233741534549148227900993396269609173745113276510064117318885685945869952283660450104679099800847562539213530402364453091572579063065027645608335761006021971497268950746908118451163663999137084719974788827911747200641316079064979938998561395631915879450657419651502257073142749778029204645456717305575866663373438545394268829027924630731949386421519375439103514349091710098717323769103930183301103207701831455451065748451963816831280995425336080331859462488051702034449794104010549384164157039531871314518292366954687316404560364803105551353180853462025068768190216296607660647525604472369194722373557156379872474576659058715040639427074885760810101170873530215196751624822693720844428916260657445328541186237587718670901188378784020705144326951653482012036735851797401263292369940943979831861437894122520439760560539185625661229738073469747565750244089416642150497935311493865342656808930458757491022491746898701696635807965282537279778616509137433629486533590550489131765785214960421695448634457017499788342221093147251756479774970469848191743992337474911715156106095857412775180123699151646691897026780357663541887214692230203312533558875660448525359550572349233173556639975358418019969456957949932256995222625339526997059016630504975098564463295320426202030735364361266842724198323174633576580584776256642553499316320780817899186923712964833428939915245029104270241401150820918152965146343016330345596309603616155841624273370763056062593567497927100429632463574461046838687517940431054011611951417120496119758116712334649808297795508036295956423638669501437015571135938362314504051069667466303773247795728753294808555987288926130403657056325679007535235407661030913384955000289705864676850960119722199227408952372168454083789012200109061637578926359872647923634913291136937190103538693268115738083425150642443787409229146399483228171125050243430742183843478740475264134545278093151281860122149643850927151674421992641882091576586102408710606578412891952435659298131869063886446444305438660153307035589367606731774332135592031219018514762023597830329144053701198830603152007405079702717535771832322883909788242944414689619943723776225476520465288016038343957619431082198192488214035784318018342519362478773704830769352450943779454026540475051792425632861337577022537319581783749628391259154430848237620788865365433418748486018571984451529684351985475219949319456181794113878558020967663142173714607099342057667073613413840185238673256183265332400433912887918826838158334187476159685857457174196840997929973856609391677798177446749779102921941090464000209949425601443897347198048179815188669352769827553391367727086583286696216320166964374643261918718507021214522351417322616920832749397145147428744698456218180752599892494362495270728195833683455345454957011306633322935059059038708547090463770450662137862795236415948784083970522939930086652693135375471949602700724651624684469960119397361902988077921446812084750883474476446228893802178284899857386552651648961326456140860098967163625398653081808246904907115659293226732052874266491885334502580884188901528808387407523720441622423629706398235135386792577054511974808020685715095929305144643194648934464564463097942333470471580541648939321920222787341073396956850998849964255043918681489941506820208637739036952970401626983151689475774045335989680919299819724387889698055472966385377480780464271107529115126693709449338839339012099172064664033815963399220629776982054496650900732969419160314375861947264341032541101748042528031487651127389736835827531365962381605792919005401743389356372533875632045677086630325805536073015034366236558502066595506830249470359640827670442734918712415805786439001453021614995106563371102810468276613822209238292572793783097662559136753730269182496094472890757561481040655707419804572638927957811556585819794656069443152239430456452816192802489976066979442073382265853089331110470905930734570036398057665268237943768706372051001816528627074533927668215896140825306896559366108856633512246729550212257057480721268591073965391072821007499890962774615385882146972894060976843846582412391031987227859145004565169110271520722384100521241635921934879575122551895633532003436802653078427816876949104476950556008445219404277087628783290817269056422240818856334559010126428404008021832421379882601678095533784098222153879391389147631886564998542894435298881610599906815527344295156580722923121026594639873602466718720944075540770285982823777879591534691436853534984917446416700945531723069281872000661269563232868755592504273593043781910817609973794856457145088095627480516875973436724413732440643745897542721842068523320283043915762380298055490497924204587756596435462761628125975406381435210913004536470137804736029746625003440913715821372643725945328907065581024432036155321486793761681508849846266985107891983558009467673029332867097610451446493738375619063888017223016954713101025867741833818182079362511136744859910730811493653497498794205663174232587891332137111399407508650071307275682121193946071965056719889595044587030578574304068512035736526392351879729396209476664164074099891623719415345488800007787844942526938002336641648106983629069161409326968035926273677553210990513222236601525747954703730392125728963865583193869972959021868484110122439892285072202750793840928949258151709765264565906158044460996268282284098729866379931530405158641492400418582454274827199897040074610803827694103298863888605220799515125264423491622659748961917054295159718054420810868280799871880850662823287923737944412490006382836373549131555529578250527838700444158371939213742622952177274459640230755378221174687753764234024044880595267182268387156697717135965931610718521778674253322094120138206995124892101713437391740631416498333894925102365118455761501237475429336291151589776512501577151057209474975986198271757149556038627404930813671316179502113272697043918955261126478811288235329108989410274778439193905517323237461676963895318609148407884693271239824350334153582007289557664317070115889012134194248886531235054573052177332852110377908018360067998384021422598388314762345504551247390143510440248153003961689462225866559150100857698532672808370668922711387463289123985504027105985194866476208886894902232256066762787284952936336101381650973217710261570430734957496329435047784256354178029010034019224266686641688999652407794321333371921600680901475772918898353569958381248807599293679255775984339286666813492768692426068085409708386382158861657190966449696584318090039403300694010603450285858280114045569664793112680603037780216374950231753430544098543545981318564068425696210620798099136997024685229721316302595922611031330134241299089839894122131550984625508996601444664035217671226759476107044474924374957376432448604469630531964892039018778121063839782533986776648323609648057695124671827273125799085801169339976848284083972550968773820238668897268554461626410751498343360702967672795922883736798643087912009883727213256023617050654735447059349272984241765070388363668970403785929515359921865323216013725747740411981919902835483777591131020416747140152423095800946252693495683927583986614443547932025529368128125305557866599770639121631551422827701304370992823336005179912721501201330622776204018156911231432600248292478762906166398351934552678650580541778954716421881245485573711229592412674559667673596713145640934930344865739511053617566195507533467407742426575012320626020524734684021055365750876947541608776984467112690090110758129104320100977216931230836703684249712912534916754777789492056059316333156138340443560241821706210926168143304108304088516281821471333668054047586261939156185001049780528159570784565900142728548422094255780441002387005355575320789695315863868865857999901732773430571063416689351010006726926043068875696912867227650059467694479887547460344454295447433997316024776723797470144427450638005647106282885656391471771118420944846919700450754477554606343839111159672668112246006910545817049453352571438853251089849867320603785663227620413052179637073551971574722698050915772046261745120688408551374696718654793748107609330012951508317634356845786627113827223816716612305089864592248382614763520182550294311946500405417758265396600677872844148614514225689240081854422442236974950977133983984788209792875682554089599486218840729964330393166979455069720348838267237071642241125575207009306554903311692024015659987421510714626395211004686209952615252815839128720676557188010752426078340298109043961879858747033072236332398874878199179603667250687281874030837242865689476125191959307039279306111039937356378445902287714238003733105636927158902314001572658494011982666661686229445268091631835482181883441256898140563839043019399374820565517413711113349495356721043945235320798361698623424941187372076744877017891063745097208997927036025031722167740402981604363679300656004095829736490411833540004948635376072911258058738761595987685437311862662132254185347188545712913344949078329292842959651800982116998529277929599360099362669287445647048182340871063776331411029955022093171442779830148764048885080728014410394278831442573659145204814001353500120716012213602654285602090275183447190818628317436881780155918094500680661784140111623388042228722337491460885435820309469893747846565242278285570262917020410601432996447676655006245028726932150408093273922747379238228959609123443898177822076089632984633882846349501592934539818936037660839275412071256656280387788034281808530109101251044432307843465030440458585232594275074164933932989164520076229203277534568781212593331377047040421741999978176206961399504862911562552745374655365720668842059321800745329214674435817889026299369546322449974465946862453938041759035086591266400747173442009771411650286962018365516371694846948051013799513801563431659957009524706156240345839918978742535565096189544224041402941217976434366031619252149888608588253465407674466190065308485473424175962608711541095629364376313525982702327358864862419139836128075108131638357855615341255740968440782425115918174268433708519746827327913066522436677571761252564576127167808810604260685444318797984168989003513446444664062904102107070373269816452374797138150582717950642159114965624544596356340727276076587226290160751388455664475939108856142602507960181030245445623760820130086868589407538047643377732545264657726364889692401723757963342797931243645055593176452655804443310657204647603446554649601323778943296901347745859149117444531112699592835300375204343768483098505164682985929174698359967103966299654065691925787222560258366749236286847370686301318914702002738887188624704116371300114181426013747216270819744686136742645809113914124082357819938043988874851529158336242668822501611505966802218299955123631050093910769824604007356507197229849155480137038395642082778121743562657041431694818604672720348440355745434034914102357803682227185242789657864695340709034411518144204197093994543723398589010899851940634170181512111122243030780242334075343043703147508939631465708818198709287813613442210044845798468927723951188460237785380513349354916408221439220098011823488171861406280963076372238966998805811914216108979957651410189546329102354369664527343750979162840402171770027718498025042506597914573478719789446475423185958443042373902620328567561955589740888191448737553267300145555252802986152999121431448302561807443334865724495802739548961364385616774994990781232139946271724101267645250764867535455547928904798359119947202004482494775725139242757090264411858096355161998732759895068072334397340881545881098853222493424683821716437728852881763661212591891742721632476218252655761357830950753061364512464187284784539745784793200998302316575166400475564182886156763087940156722049613961806061205392793795156270202431337044414326534817043549739413344702089135679963920062897729968081546791709621791694285506018961334445550545445857010212126885308664112159156251776100852775096317876145929094185513884789271198769082754689045248850441675536520674851950762245993961585790606905113558375099303103027325953041046198604719274713002502000086440743136795404444768728616775652906283611524512739920723939185422481695301356384843483688757114217548387545905394233601263189134043087845856967842417885312482459271906834023561354789994065678694483628104447114050792612078572145764432369363955171297646307354989910650030606881355947702868386667995571906178525588263346321652677424265103829079143939665817080138937355662007148338140426295959063759097780404216144060782029082082975636463127001738319320264763380543271242517620802211155576667852486489554547239495222767785409270319500566550828526188915372205608108251656404312554591644743282712451296374443460723857295922932255536321690560601468954360693556320825428017497208589565119601398134134766670133827521893033552700289070928995499425741063877458098076046814914240971944235724538291816544761500460728200981774413018897282185652226034999452084499334655202921584240591959836727222485194316679407707603903360298045167553514262796741551269199626910615014493607065060912444931440084235307172347365405938564135287492617934236898034242338742754399911770651089940746631025358679537125919332736776744366828294806008387052367892801466463933358968506900079869324530402706445787526550575382942166034618676890711747549709574821851363131939580473595012377738610075649869538268285933457940989204702169757239893283317742990736387800558223360357606321847465039125541330526648130724082690508947302382547016848085410664146840179180447996800374902713726652496355688354172786311298787676231709141026115756015712997116930140281296994556339006284542215217784378526301116770369514913942858255434173982738702394215948046035782423823020729913208102682498062123983641063561840046798088570402600906808513902194989530063152146081856426868335809748126627772662309657545873052025209893121173422198715593367676796491333648901923728054025466769992565090322780350480066512235743276937980402991192238737201899202569187042437373346523625552485405263447052658237606797024345082932092586898371898842862181515162495167596447811281339544482089308290469810361803555884450293440031294365943839318139640089168484305601736324611824336289569714434040069779125673469941970686791417697253447037530611610421895832098479122297973064884643653040055215010692534408890579325048811454673676998095908998172177772124240684341175835596617237710439199391329562904113509172174619261646514739762783134377718562526553083904021139382922522723337440818373965639755113011477345119013551501980079092622787683365828338554496358235605617929479659005976180463838197520277925071994922413534720572246343372802870295211794340710621139489161019158697283693607654571604041541267724147919379856316378598172698724683366514477913882585683976552910426908113124912233753846158835659705664301789399238178787374424948196570433251304314437776049639501288274848939023861711077036282848867068848149628817605111464446187893915144874837248745765141736042650990822556033156898755166848349891831957607272826972102828367266364385990248642014191984630590148984882318123934183587637224399176346164614091353646464307295681732458796346037157992850636969491340567180666337355568521855622957279999438377228294794983943079256195983307519011407691372902765190387185772452686144361934441675723736782156202942982734537384752197652304397738484728155515941010252650269553606471774243310436653547095638529574823073565153950323893114083192358793895180109232239427352830101037388132309125736365388403936888555318349268220456246414116711309062391689418508214135312037725082752944174737961185817792871888138586468891397938807318609376427317995658983765182216958900867935365801951114037187519749378586967223089303124552328244427240987938471210324396415461565758983420127825128746666702263061398217324030401703647861658909677687958069553760032181428168800025761826848588145211017215937709371448920366333631502094066869277853166500142000342787220463971707323280465564927768234446483434092250887810232671124383766367760838807538097989453862563001503465173444746012442154068574189666646238738737210602343061876394684355119116999641821154213513826024107304115321941156103422285959128070006222875883802883716376222364315068213423745289985500433014676939593061005014037572214612053822087284232409120044247541863968492383252836776894465126216474220772820151876902287683319082992070240996807346380352038621194924550554277839249386556694054728291702974344038697480833201323327152720109708788127268694745652683186348837880783199692560470946113498917715414045254833174527980793032085274690193950972013864749506449241096137152246437968390856534870973238956829739064674394926734922377008428173050342081466778883702448925050180515786378831404663831423479423831639834567735600181445880741278519826956125303502390551707237127053276774729501000118912855019508666694583053968248793618921630809404182411055101343491244484664143818172733608947229426770317338217267337670656173744537252036110064128177430290683122898940438972470968283067098153985233167798831480684592957608856319008375762521031761887229850196230832001360571236685209072592059895648213853292451977073286422701916186622279975202309905612999144684608408344220717008896286681176827790347927607879715094322061613940722187578086565020229032950351633134333206593480779703686306451233422870313344358685801920477352938445078178469744747556573392953866997949414920595717319804425596366899362338575700415093910552991725178000428281355463727832893566679207647097071792754630231125573488177895652343376602697728207535080024831977239629125320003507141656857240337756573052697425508822654469520572090586603998278046971665267898354801919399922637447465400271664396307428150163650526086986477105072659368382014221843852242235507927623068578097915202606741170341398528163008789866152306267853419853423450284387994703829432420914292172645891181300057387759105157179481711081113799495766659057099744020833642436950494477199240894161894553066084733002672419312001476674544467416387331077849929369360340503458862794833343950152977535063556459379963282050281058335841485043081203781319972908828607133749321427893087807282052787676238939688961391480426271839381176262354354845091675920063131671703718535999085690478079579924594604471662626232038292460135917218761237153922296440985690048360882350854473062903229475936096569235087791005484019750762592925052490389190271895591874165646684933507234539214373033257562921365132256482249332791006987384496440985133868714135583111632051691682272398789704913490425290182293494528412004723390638946140995569476154912614891407059222763428419612536859482782864681267925903873777060473228137603569847518647687293246178119645177065276802433855669344842247272225220124208417122451083768325740513470288673150248282794590141050610711756445227561816785342605456020757085582603063439899383230302166582158294246309283720203262281191048081709671968465200382119680444640445871626833766175973641410541049651573904099163966702882693610661803061353851422939518190572820241466025055951611698154270199271958474824272879271328395298540031107000658938723870141600474320096278123219127101418103237761373477076846138656379406097296086276136979357902385054075467544775850515962958441754229870503325514540988728166331853934540442582581652077704091868588685233510600560321777653334289915472259287988408097765713399633801569358394274695391275989363530025690240753976935550776453435524088022342926587524818563040374123230188826102233027701644910713260650526356383853355161179649475722672124757475865798018517796395069721251639380048812370890797042574224917171174037321088903617117334832144242141089049231490188633594863756144567724884561307919714885995183897338152347006766834648985635134935875061147912447244550021143415712201430599177807511782129053548881954732578485046676644089079453378619985468064758887199089459627505439519147363556715224977265893071721417701491047136748040815764583988187714385004133614211849062246555686525851552757582692469339804895604037085518861412252571091934109400759081482188364009498056293668422880565507400191942343025883194944269608449486235987805473771723223286915602262193683691960387075782347059433352629666606042665441978369090305724638780251070845625019327776743320889768316657192637050891847691641855469834856560598202517911317145372125959527715655907425582115962559319573357852907448610232708797692761236471467113814211186407193647588151402034362071014219484158406445140349147905958954107446886052895572718511465979753753772105331638547702664325590652388133179461754222510607668406706463637659416272161238974308725784296684193752489396734599049155899175965074539911720747598049333911799736584090068473380904474544783905107481351788359355113265869762766890095222814225151055830775547108222900309903492429053703973039590004430922173783368600652951685105186708284807797317174395915607698802999795512138996243623127085410451027138805561534666578754316667300440084883478218145890893809408246093383471494739483395429240446481982510491255115595187993057361806747905383623106773102812452558254053804464591149068958117680789823675655767024430647522868918254214782422274792444314736052219874015868772712677069871827963435407605767982004939654761138505316904173033573545425371200350267073190003607502516920416129639335971799026188684648070836203596973471978849647333047056163152463601690077958701491023703285293124000210808410293410201907297473315808004617656240160985948319826988718095800746795723109562354479960515427506060492385506922170271552944495833544834722748408318440069449683639261918690113061553106925840460314946259041858188030025764416878287432113595708213966679390026800606246983464411604708531912380265916800021566468042891358102131669618934357848223113877130844246149148408487338803770394803211829202400339023079375985656458315029400169043213549042496806533049090367112904245580411180393231350057350661691551750040181348617310627261078100074097803638185411098641691394456200003628417273629941483343057219062452229996964459431234140547586271019768091672545352903984648696748391132492428919460941405440963172098194236397788510817326170278398296539075318514112854447971924980203019777312661120949623882323371056482737213743199443008699595460774213735565078052967111219614769163702588340682064527821666449246986221257387429783920308607220399791307163057793936656760330546059693393078613953814634268620618606638989423496319536955275819694183184782337453121779403147068398091760630448492372785959435535929951480499382439105915405468923484413337477461098899650970640297847662776167054717551539846316634752473766379444916372028868192422217313114929865802437314059167949086393674580491020819864054919665379314559759499412080894772555409498500697831771619211432222628102061364491304091135598678221971930152746077036702361862255488730810908660113508602590679118309273694258421367916192582367006556294981646520080281728756127868807080864762130732388875032170351493362874240568376183955341927973061891341628203481454423829727748893301503359554221527340183310125996944060822306541617230980060122050912252348659511878729892201544172482495419475257729427107807905567066303474214003872193187639037918771520595299537407354109816656386393757778095009233696497534728721091920191295237999496480150203565703946450330783119486800423260052779816145001514371424488433544172502516127573796512939116057146189527132789296460360410565656078224947820514857357885933969401365648918594554179256963990056626435294903137705959643937801625644781911596302788543168762880346811841171415961645833412229088469286605465979036916020080140007293496806478251150796113939490383401478509853175745349416394951210549549543734127317109140327904974210403488572017369433319448701062492981114579203591126321261418279764977137475661359766497210592475090319838235309095347032595388874875760323406702066149475550275067617537695444157243216689783177930865911706007094790497277538434210480456303102235080565824962685222513409462620199089209345074434582314254642142434505818614172962983988723276912603409701588130530696538102216068446855737120640257063603730193867970229112757644111647503871825011511239137594582582669765595122397990205774285319442841583564784171682469331407387459241495689340859948426208673700363377148922831207252397474184282139618170123132665464472646476569247903658400643808486430151025587603205366359459412174557272933387111296852504686931871063204250272522062297124431813418897926104392626196431648197069219056533428513011287177103208216362121625590526708611653967244891251011012547259645416617126568622391385828376618444872487692811020586815581955843274038113905629155248148392387145062630457919699045584925501999345059150024178728767178381228001884024930099543239359989155059128122618015043779878690975434976988294267151801475142189828681913825625957236196086470436305355528512541587308747500373064044251296318644372422138897744790470446622707616582154209626722051971408812784588102913979271619348740123560240510177471120271454083069489476731612503667875571261687560044759565732595098426691671718098793720352116386096748959376108256012019378533551636925117796723774049895065036045921197980916862504343316578393780454280806321348215814557708780705224808132869383345263662654443785169895891701587376199296529142299841108390391455889761127595964046717918583472319083444992954875763118287823205510129092070381462479522946566922519045458717899862908794813607116083004037670675189660844039985110226885373592572578769793847053463182801224706986620614258338654087807384211822219734445047375658198047562352053245225588513540042104877544137779313061986857305040181677088451744740681799421415482539553550428020874045553333522428710224811983928441081969829669631202250121723111264652465368945398100766560314630413776843868589052274287820102917693556829928587835662137806048302248822119227547277996576506707475715146735916712637996336960478246684341151849270950694008904692130950541106334021525154315142048360086704661516276741978762510689410228961135839912854336740081811680403356831462967489007967481587941726025139559429139780614859908483506867248492336639173566244430300341271941820736061024633609198525380090406247319589797297577086915318791529573860676224267730312568883577928603314655547448558876550885320301831643077452526972046419009754428064752489933308312379445462078739759418211215971710902283005436537223803241629189040446925256104688865116272803413624291215533435829778842433052229325729528709899110665022161751711691678650701112909619102107070924191158246136324635643779182550175417989434776981433364306724313420692733780864906642187982703578841925713635797686759206180341591083820246523344871605993740958678142111879416630089564745843047407391457821493208009622472405679287222074600650182453729651426906278335038690286552028930558038066445214017178449759585493270981440691584291160428352444697999545678754486791348349545722484282254300831700834227626764451185367843525087813115156147764904547627098997818471627557415188775211417843054261352518364314595928542619205212617627073755974479129356724804702216328530949628686393592053662078178924747415469906218494360792812262284611211237784750398575017180468679792962829859540839708448628342027516273241550843260303838764957969917535411499165386414202671316046317868140441054328424303361296792269597461946576413486137003093007740474737091899578757997127994327385758620285096890628323827203418860258797689332667404404161915807885857312172704924610123004418214398225580881792716992924308480683087582752506256971385673102020624196312225226607097254370838157536848483824877797028639298867350491368674403895817950822742544211820319029014532129692214358838083013871655156595114643740143380838960147800761205307048262547288464041854499825345021011283726200983266346652683045337060268654553458208719538284037021050398256242560735949339336008708428846775435406271003271672862592494831296822328853033209790386260107750689981990831018565827302778937636947744094393791345865180669894779255919301838724778057130598121508925485036488051282066195056571285238575645219210588462944287082424470370774992574253250469208067097640925897758003319961970639692806062164734470534194508893807292506051129992789545965880785780737503891796094413530538123958179278866522243675655047293831844153105427944920838298631282152551572096763295568608632455569006723512480804386574717779797500074820786543313392771220725395322912630547932739452914432998595061817516767622887772037845059886324472024019921687565379852132330018336762724642449828161967904773809411994727531511560207513990536703763706665114926140275215861813128423985079998104444016769721592339910456868475847269392278535606295403011021323751130685047919231248841318375745003418310057235948848528912476279150484918190082193491486329032976649932404464298307234893956563528273681393021870490365559945779479777157604066393080518435080517980059471874980378809465644718760049690289273538029306908208689250107548483174381127306166009950586659576241688840172044850161946331953451628492791722400149560715287912449632961518151690297238804155910133503759318484289768176418100006357680412983712125948768744487096230367648475710455593765455470698909251404253654837680708306662814192796220420799887702728143551618679751628734475855051498507709981832077677331323942899240878475850718328810068506776924471339300583529265449924110668923227864264837955048135288222154062385207796038514574904663632643367850919716892841683101507939841963294896865277920599927850853119597155005071174855445492831661010598550312393166166869801890890193068306533910672679548412050847417187707829172122654756006176735305990662305481607283047303695239787740414476423035743239996336303890354451656474025764652266046869685117569453397482918259861625199661718859951016741795734237738362114033325918554252903237314722668010025598806280388552544979417923182451871721927974216671609721334853588358796978690566909873292903251163462651806042114601202304533056333737586960317689215441597854075806686588439472738821467019106767275287150698933731107818613682704099998450819552638236498270166006396356015802191335080305627796248329272319087799788486567033095084677831383094477293660355773229237744666239061286466534518840808047248053741488699622440623277267994793090343606729774416918829092610520935681637216700835578192157456529337932700879116380329787866159658468503760858123160067694741089507839106083487974642011702342221335213418350081341475113578135816911415190379338581709482752583796395752243224809649745614234231466830335053597582781044264041784361349651174992888948288044203249370385172015506600596270274863303579208374960026385130893575922495340704866681348396824347709908539842829901176162973171776110037877709866167092503320736501447647442956148273673039010993805905711528393121534621108302455548181793984097854765465235404302477935684184644635276389730706302286127411028283399251017421708404369222069780442180360087537343355340514104845898620458216902780772376579807447049390049419507816635433188676292621629442512343341760428395652222252824669690919995148161757653624508386662341069334008722180761864370207382889551905742171552343320353093503870242124737875730341831413724621263809324273115933647917673105440949648431188940486348162434294851272592107940764073947145940845719032089455492725920450853287955953046152638356543548724250180967772463258199520179669967327921150722491940109195169773851994708891927228226498570412306401699322656075309731157182277762715227453931282294256102560154105622877021304176025293660039798937466229268240981342039617051661379467416121162302703612893887963637939832948060001824288225535980187533563436001913501959737302160576686269146401167351448083762992552719344197029334047858773162715061418730989413632430602245439868958423745603395948741044729430918717926570758920121337952938705736990436285461806421757454193549542848970007663522846694850711149262895225491520831046775041983714691170328880975997028804607211326744465475082329692333993918935237522309949519107966874824457189940921050562315963865608073184858722302909067698387380874647832356335160732823923308456243859608191738284574005778594769052938251035267286751586205795340974030492894616533671528880371320579452607368334330412272879661424844963537541880070422103315981691174770589983219158146876105099329334502221741356082563081926140471177276479544516832088888307022322313817759969588788659573367752032823048884911312685604003505620336650631558209736890557147567331802567269393099678215475246021873287544324458944261979693456166346921506208264065242507146122795628976440203089000991274989588357544898562648123880269121731427026071738492536637271884925078927854476634570835705500959403619282608809398508563646082281148471362596566255299005145044852197825519778712853635840590300065529807777677573800191237799598311856808410695094019247570977870289264851127977192022924870252036336022380463697575474464372173595679589678507712686077219593178291529826199765782281232626794570740644649083377796452799894424150140115083263475446210704674696513804246299907636526911344263992729866341004812763015834551709034089479226607400575906312822618330448525394967502916581846881334781110783853779854195156685359300199516243396063914095616419410691027028812255633823796309740422086737790392895215513133008023450129994444790727903009371820047981203065951773275402651187677934784208229258338297849949662381853570185371999296056468328694072088572596388684704242457209929217841565103440976758098027654872556094253322234843695439084846337913082476285404249016833545654086476558331172747482596559464712187062316539359980680583487617046106512641758057796092239268899314917458759718430707585758566917975932045241707001231879503707930654248461787111970320054455244694723920541001829025594050601514204130397238039738168806394289579090306195435850737820806497342069176651482532004305531756656832078953327842328544885554218259857086480220680788829625043325638831910663388539590839835149397729843253521015872426094701868036945859418676308531772058890343129673452003250632662765454863650800009186052599574528077224894361581159421155175545825615312658598258650782786549369313472650612371017818342354953427744195331282056066269668759977016249541929203977094591647461830199263361326177345599114002358666421761108441954446388321686417812074226241914457781517819099700648257914880647259046372383351288987621101071047474671713654340444993073204274244177158516101978719994276861734730235873437794503736433642756902703844089685092880602149815008455675768774356360508422603172928107609011604862264706167296939736259598573697281183444524902864974059653193067227328952787187034015135179686829576547569206964634603498155602619876999446207578322161898294552722087366259661880082537681326408377844599671076147444195616018619867091272580889552755147538007610734617722505037461595539652780829244412690801553172335918740051662491731026162635576410173360085139758337768632022066506537454668220144528986901117229690918172802424766441699283491739471523192186744282239823494923214939057280101732264898810181257671407020190574623724424827717394633911821216998894177263741936426683467633269238934675589285638451333651209914980759645548943842840675732810897938945417647330882329310017938046132237331688040983574517806991819536315570799569442043706109805196443814716711451814025620521855370803992820203774117003401069806214810215062735524671696894318582806245773013008263623436730679457066501624610604818476460716039102892826932718502897593304327390005696978637001641376523941731266281297170124362907819981086030444258644327586551008693853564063724976008812376891378718253223890116084089871285959478501139418666194047477947495966751478090277171399578430165654733813059934543167685498689209499590100956239396704689630191282817029602050828731655799418773934879951938518386456043371120212044683329697063125440964202897532311321255914953017503967885212208244743610526458701140794368811273245132057053884440029375280734593758439019431067317422418907535429924454242452268652504807667242968408984587661853766553591636896680011110299349272442248811494587314058849047395177680106107082011792671985174698563280255017216498796084504652460506695407867839878863639794575984971140124354809088427758771011893052870843937221646375498311802364019159844341350163726754058236897321128397646693462327396719004720552464876061066472931717592591351603972142523453294134763129545705880417749162154472287677667995139851718205613076861351390323668456056601494593284774520140068137074965048432121472598298395921129271828365389911678692246609053365827129524513911078686649386903120572852349361189574548512026669476709686837841345059134302150535043472347663293043782895287912175039182174493247542019845932906206255306069852199730095952205211619517599573410358906069592476266952478068919504118328694657417404073261775494778253210781259305276070071704595305439062087615668908885827921445094511314497429935291169003911344587693085149113330404024252910180661031748746788588720077198472875119422087614289576968024028029657011306172708067257321068859045463950712214659124727932895859635424140262281416283397711213827612361906208343784906510783104361498148930985492942514968251008159888452702978623891075027366346770720229331971319653469332261451510108736783502955449996757750622322479069387021210558572429099352824913151603323344581657681123891263018265441056419874656429063814381302147911406384780441411077165805765072442207442705148078382029188420818193086370496221138014936392011927025868070783650589979950672498794183713587685716187434377728056125164335425298870334044709179948089992118739113179421404301395410785910141311365636840762362713644554324002454181954252002079391073084131999043526195614102927053239581409914196294643221072274651189600450503434468776681418193219421314631969910549768415551853292922557372102148090230587353788310164699048113810946878851862368359327187954977843830365195139067973592793497430283529219869658412779261099613068246070919321247587386189422859974896928789435589919650370172603580432394743731389174240634435303035423074250486135325745645288397776451375838908283920740118936592246067323816891706523484613314019604498015247577643253602177933830221360496133139398094421104602239044254501997299933229936919366228645131501296919309428022854112839367411076414667076511185636014684888090336937576404238822445405444978967434492443493035082007683758186591127807718773887172912798125573604817227203205424844648392379480332864646149665904903743801311075338236485804071400893991030820760583959015667381086484234071699690940066146969753896504971205388918670742235344245059519441496597636785310636350965257802851232125201711459836742746256628385569154225557549016071076502778653088391173864264077715818458376853661077793455085568630495019689109022156871804689012236406129656757406538806887800713993842355625964894088030740535220640695060821700568242006402074920099336254538732518421787891266470885252031575792118485108190513304413850924122235948816870012400845572984379450798897049550275557873120787161386583016449435048173377687343939655668239996665069733356631932314418167867830762872113174310376301702688809986415189002600783173061793339200526834496645402804430919097552330267307991418867250126137749841109094540977418227327398691544189013984186408500141288777542065654775129414535365963956911344184803863624113268090042616972177046064714478151922553293889851104747579385134126962331743532261530355107707474114275469494797109115294156304660219442024830922733763635141155040588366386718704155583582243395105499114492841881461231491454165823686373289586170331291782070183054030631939403115390692180173842747687758239976536940351354294105603858679206559457112154015630226336404314228669629472845346868837688839468309838424783186961444396161444736080596055931328537395173241798516875416394533975283904862497670647483234442044094474504915889823296248722899328599437896858049359039137349350428528457851018811569245783150136960719669355865112150300280504519631211071432481527823476351846169077427713876874310096807852170487340592166576531038276763190204461660154935199016517305915974467963738551717583533913122661385619105268535009260338884923721378769821529690877707107594270763851205112108173254039506574864182587585794991430573531001166283830577637203663179498833813711314029598361345945732913167184613849628749694448249684886646243812660401634617309275634214781620547701769837033551046109377798471826756577546186020628022120194877002456375463312357130301428831022478565665463839409737876919308473465781811318392162996951579196572240370809273171067764028480170672972374641363483653428424099945779196041976563584656898795442806054716495871528784844228709629380468359310665607289120130618467795548754228609057247008017430909774343542151786877359026289950578452755316626383310757675647516917437032469086412673462637081600160002762308568355899541779425570265329426080663568420503526933814732372119620942167928125128371048349213656543933149182891823692261600419424539155114196070845983619302452427270406927658857725199187198615960891158898059017249076393986471562960437305946994859607925982359631594306906868071803955773492897383102251665785808709115226245912891078237804397935069215673839316250245074882969203378222043125459004387028966412664619255933974464461718785338598101098981227508572701917068694301089385359660739431122393093519694275695602659906340176187492673648784067321911474972328271754636772646356928572665347234086686148441762940885180113567136171296104408615277188268556952663867911959158516133452768338373284501399452352686605043141946477982043828195103929568720143642129159908587629709463550135805219637270237492814576826008252595996437699675827323160775170206096140197845482664685568544551171982270799952320278187977335187737648850347835347667309977003321480916450210321126445915410943372567211525066004626166801249530499058344018992384860783138983030695829823952391041471563185696953795665746640840695687502941612355981932959123174904929670527294876518074767140116934753975206288523122343966227062376095536835235300411364164901688963397924925382699779077667645077960794829123946070154240828823966800861892195728651577860142706275725131452590758917986107823169182830566431792037815824172721071447398308415102364653819676158747698060354535099940651791462541407263734023416740335675163476571890061224269447601934944834562039984453451345545932044411163714342595196928477692494637690411591709537138800145092740839260179637555219996451550883413341652535473754061579167790540617358792791834611058582524012822573510932149111905677705025409242172594538276868852642715327498995909814327708847718059986348425505867447932480724625390889866654044861667783162236468624503169971781857728905474774737943047965120528526603308916871219999753910104954349680259139200265170826246371349829544907086262781777322389721090787015385467930038754024834423441095799489264723925656958365244832827584526485959623259272979325684942834939716823257583784654981190040745274965079595177521088638888857721196027964741422348318884046891481337919074907150021205221817756861062260588534478427869565565442927654699368612797559365275752599611602370820814699138290701077973234117926868086635863881483679331473370641051248270281744644413012720153377750551969947754854906002392730552818533770405826147423514085753034677672411456706466971836220985734524991964228672568402097996097125409005206851258591888767431809998638628332647515717310241504461613322657954576072027777345026962182012992281351880562816157923509693903395572320486024982679617973452216172928505536188722926730141437661047388434294974905533544478041033643408935861155702575083777963157892757356519878838946914184901367311614047410742712665930058417178232325663746660089490437991529661139154460604640118585307229707058843502432883378169302541640174691025667457363115899794847356149761089017199358551589622048497293414732292661644104655993758969663378931638715323251419470647120032960533596208449105743820110856129922041184306118670259495579778116119839642350023415327316246005238964871065334471534766185376160097040618082478813298637748524454387045725670638914170213043142591991437919550815205676247805919986014898754947835569186809090271056537754633888955299224576210559112524408533873942303072951946798779349015769299404208697840481561374254021309840821081915837975940512548068513112162648583400382201511249193334469290236576467326312788016949101094287590908861810879532887196087949003055856865567026924213176118769424013239050176339864933573004265360037677578482804834674985093453493016052760837288003949944812996350149589526346874806312676236822359437427289046299376211849979419274739689466822321275916814972510280010553087673706560189213837863808278711437171330385320346276984572145829015749316540396260363329586891430561179578037925476449182295180264627612175624201827656872005637710128710066967240203647209457024174643532470850234219114383949688738111737084485388533520829408732942909915762990690766617477375858528641459015096278443474314832838104805825869381327247855560069147998658307519575958000269822790639067306975843830765714357360639105970642469195249494372562854286572499624851248366145990718731993416874691487404389723419544292062717731217410060941246342901529460455289211585036604538691077637015270697884003512505986930943049369527487540605452964026088726782900700170405924487674763033643906392411734767192135527876820582430908391883802769378184738270186848283798815213821153861279642752891743773703935280300377507394902605418033004847658012317434181193431424781436639367886387871109312158399481930183789668514599400724759613022466310587679205351277604975511473127903623250921280230367683414108515843953969400189455895403343309878662384878971196863589944864277991760813627524558420409876010041226068289606969561995517608749200852317929995727725409300349113385665238190696268524362600077564719470450872382553627023390292746991014810357928266155773731626111666083947429386634193793466309595136893592529715139847164567878552038432109967027753046267869785761696509257519031514777537002549890148266668030149873900041352684029001178315394618170176188659563504175164623920811728521385436015282780307699590062834955905313032945830211905076015414236844299331033877390261850898715240947238041287309514335484496428192942783221366799901834486759779102835614350927165560982983586320401038749176456837143638486297680614330050942377354728030971043441767931095735860621825696625533386349029391006972244562712139050534944482053400876295787269840617762748856818990674673541671280709201647671269228636059069609884975581079163803006591864620929910623714332620571194171582879721769801501210733135424292992973747195028796313142777479841451776873305507859699421561763253398373894469424805478139694284490141920212802766960643212109676914327315072171250089736495194900936689415273536392643960474186745638835361232283705443810353043226357974462892744689299921747208759923681909527654004442302221378103897539195991481484460124235781922426762098466589148262374000196849753120385600834199551295944143658908428048488843202220790500885010998534325100945574231400851852142531804804562463617965396102915674230360368278441478464721561412738447754431965403251550934847745145938373882372455928771783704685670150454197937277238336239006960249970057543963011740949696284579307923769097464874060627817651858618762737014086558374804336622265478315756281079094024368180308187284252178127396316215043406168930120453336670080544603025530099522760604868339587588874897012663629311346926526136415543137124203802430590137758462138086667642608864149678003229448875797014254075065781485861825979470750325743308088241858270778797349375973090274391832656297644352685538979404481118419676255202347383203008968853380211074428854316567387368774348602664075570258420441034050523005234644739127251408275376775626757882529645128234053811980908748442115040608653033471840091037269167869852190149816320832508349683971640179525046789458941920702664517823025272335763387767520204213429954193037044556135437689496572532630138402547001068242666838474136729690268343631479404469499778945788171576875194170426143897795518290183054186660251523850271231919356981538889775915940017282774061459618060267362859064160092500615939216230069134625373528103673455377765668219087506098644146613975364793174635317051550036371702667136366772941078484094593610006920328994536082353256243071904342888991307127416214200632906158077116393470088360783378664168649873854889262156656421678961367208031648447711035385818942549363184314546319854927207719885917451111592114067371180741994814925164867160186616081008993665930382239401930752711600830640566777210361959134524572137812617007835271593226167266121626091706099780096863850142678425421555970660186181688476399730350852609557911173647063699313156905010450547164529497477587368024188554424883627985581968087768125824912515261565656506048695794116466450247906654455237432613888570942293921467446997579741702748271743551058726341804103208642873315523181815384577510975538131013016382519337837323857674941579555963665006001855392074637423544260448636635089071373394504264588592269659744856775136810061970643386638945309737424896960057154407748310284698712313323416308732314156009110211891105286176956630999182232670068645215520722547609650223008560705189536633664189017213782552514421386122588228528482714756987531211024499176514077455650312621428855343609706308178147758233267879403757573048798630413222436568335847222050694251076032830140781608412530085557966338441299896475189176825713891902178185708384606215847405994095515945332563576076210479948947353740527752370750697274109263818860958760664191916699039935604588030333444327222476896919428708794064105176377648470509385907035424117509823743415993644912025954955896570432848232509889134096965807887528251590128432737112915365389383096431513216626763875666388098140177604309038990277117708977813158479330857124760241902444956437254047630771010832323681223887798546516979313770605867883234652390433191970553139296698416488335751073985618545793314798442753462287459697343247824193104308711198054916439856955583404131947558033727175193769441548483280519357146305591835875426089926138838681106254100413640309059952741047917841816295833863943228092445938583206848114939402067980921538467910741557903305063701566667904793673409540856132224317262821160128279307738149845099229992087101507304406663595273239917491832494313941200556210551470635027097577466977068512707261020037986345130340295118366304404744157461359647265236490607639839607196059649306353431258537567292917581577781327289861217028170965826116485688545014813506138949428407604013393555182613224837432014738913912195838846350504797218522286255173894405542085684930642837901194585201424296516505510872395121666970330520550997072700312128740447394972456698655447796565992346016608627114377370381414950441013952229351265847943040608477149885846559024411724138483136321711294089950644197238315884343021910841584855818254595285695743032888464312306211188889376988033557602261315594959497850559450593869059521033726476676604835343344237732541718804982296040374381078345058596897681794491234731267281045878635159748776794169732753417908464833076689922295304111397965321953965694159981248917755418547796649280942944650013056105730200790280789001848953235123906600282970105300428745752982656568859558721310206333702540291368806183580398872647401832938955318851039621337381393544431706892755721849182872034442002721409426265567598931153471629307161930915490176759906396518698186817774246146452694495510770870811987044370478754496764657792805268495864770455281693309169404221848902608074646177819142263106713633709681941050464087640400992043063463491244158324197560735878153831670178619369963690650664566779122655070299552161107566239831329683902033987568788647799704689101029649199848033201416746707990396311588453104977948912022387873727524038797677456207770901189854079132584534851547435181080243889227917871915671406361832226743726697353035622549908593743224166596782438312509308962139620717876933102745460279743791863807229922882429715660236744056533167891730824784080407984324637188353934804739867329435393365893011580696116860306433038803253793660343330748008829364250647444763709020130233951748118825811085608206280514933260270406196707513196900182287041802397977837839993251797868223630742592460609371638232727117251498095274392268840580385523668108694420924587731014857813900302587857706197911208691256741526926014958976794870408714359504096115030161606055663059103960355648462557248009275474472536476370845262450835124054079412503588041878861076769642262252344484276940332071239031718293818955578072557947482103697790719906375751805385571329360785063669513736841463812901123531181580670765927259286973495508331718375295194007601732128949034650735232832367992314726444903668232911329883206940742752182067680679021390081800111207432159616961583120006994254753909255928505958384667792641093169292302464520044139029848436645210551755465119710004254780541359638918312453895343830802215311063526129034538039365849958513289790036475478008272676257224676187106334061461178310934719828704117657632969979469423362489603427266946406564884642957480991391811187380067719043015486479579506772176914723974383931815663189098398732413406170521354130405605825385865853656205798661619772928889817337090328570124505328637761589191238542875496855901946809165065413576460927086541537467349351051321801425277435107855998726346023179375641061045797366947265308097747691782308740563653593493780634755309035477393790170585723779565968056700591897240146953454895934894556241669188087639958004048063355930707900228188022807386192049803023754299439032941157578342678566803475009366349773497096953317602025494337776615760603115304873984834282142329755756023446639237027316209499868386118136935049627725437474459405920330539944941932500342413144835497838582325345510130390979650694637098599384043173496722646655542342870103570691341540556706531099817484545887019569978350092340628140429764640498818802161227974614266724384338576693708239561323646365466752303612597703798989272440449661789610241349794334413166499318938249816464443925330363935937718004004225692813256251554414407196312011016660653465518797150010626978766380588353822691132585481388530577308957202984868256605931522178254816266795117126036646074390008619843769049400932892436104559200460201998460409685965634446537063758728754199209804898028902111836841023924279909462357136996668539202872769442398818934474248363909396017552023130549450512655567331442755271813607310941476149679480130002317961265067792576088761590642908811993875248791479336450030422883752353125463142810583948655802336570838426905572558306872589240680467767408600347752981759352617390997978697489708198974297845533261171502831939178374970136689676578720705525973362726568657858768231596698591024281696995160500810640912035504967084827518455654446288559417445622491839847904006171286547155681434940405860692923142156302065757593593273587189410308464884432325772349400855232694682082037644418085454434628718907093351424960587806493327861592922572616074966178296935587313760497015503654203143105506146879617439752198465884445935177546801036175559942257467154941218855972562695272196388970983603309950586891755783953417718622726197271853189380754103113808823325886280107194252843220775812705169531115341921982234788907383176504225895318984318973948008540226232488780492056450668586711338768142818342919311352123635573544536999058524022849047561951728477234378951582906418615844829019993559565712233630464028516917965070148640829495519383651546406901151130089251418259399210714577010390121222333296779156109161636250412365135623108511472867073515507790410759878556108068886209745320201287138496271901943781911336599988272149020099831316593659053225560996313628634877416422241487595212760236617856921439108972589868697472392092442886376409224928221475653845525793052417156030525837970150001119520761178293788836623302242222991701893123139899085600768790515979735992071787901953948268061856198839813032151126410428149866806781392408690934317491953152342194939616821897116768692912832226118689941104068950380258948559653686024567638970692248777479249165567326323474581340445538252154965486620530072769655862828470326945598389955527133349944379083222073993370307484276036365087737206904399959060769054057772038809271066280508441281343435158120622186526994290158417901346681568690475441523812473178185067335302333871452467087979881779933089754604415284637867845881993537976096700717615999801265480871477980227689316287342232184305721497411592194747516465418969106169635794652416788171930080086448231176982551165090391706973651110901861411300906099250523060606863980394294808216633184716812557012836547761649195597305479955864592812837031421853701258424701302267270350102512537462629695594363429131674685220481818677061222906028203712057133817736945210194720350797773945372472767644041304643947546998432965032826090015721416942398434510870662259446871067447405217478279722676219980484576558212738538388560484401023658156223227528319154334994535684424639558741017212448647158762151204394083268363506899502592122971598197493641005673578025742085421347992146915716212428371418812797527293989779210985989449452466045884575451104775411971409231702406094581335889483130180682014575659854977809744150818906264140848080753580841238502737020672696373261446919720501316402658227627854662052571302282617934204734555308854158990667879681496813109204144373049878913860242021817443456871528429409530970311444638566432539712832282731508442732378779074716269550770856808744014664137356995658981476661164952938439892938014978925622953705795578018619800464354130358470477200882941537198884611825505285601859979475254666591270514082085224983691098615368521237906961475418583894411945407860464162920276612339433772050798885633111194626019332238952068037611346702043412885273901567697074911177916352322708264941419387989946720417314994664702310395126795767694456626330305008413127714096696789878963976254564052496203251453213775168225258845093948084717515314586400482367299128197311337925031254402987668069592152191063658497338164328759850867546349985951437474491406082925717036281166634623026139809773314758451870114323851714399523681901387196692590403231595269687081438741469592209531928070738131014754498434675601183759756974953499228819884440105249406445034984344919169509497588719625520258346298100377636638943425209660702258319447203631365345595366910463137113104382943862760797090183161972372685461550475854444110851629031849877683629677055656106643751996657741178580765224415494502389193959394991154804018162349586525315507386893533272543433441860753586624695886851964041147218200265265007257695735762942202048415949441586899302760240289353818674833658379379595877555933766180302949998009009572459707304441838306539463631576475930537723415962143352902767955509021279398941334051048752408905259386411691262664493586265528621807783660385021551297348563695718688787920364242109185492867861574689600849863330060910515947705076647782347930724191624006753718883402192934013568616067774438532771592343061575280440497129654404014991970268559489141602984131046064894590368708076455961415060207639530230016339967154035511150851355808019265783383400073449074204323129586788815829877131126564954216398489780639498490706816900003159401772658378599538112081830373777199656819434913041577664508239981089859249786057465047999408955793018608734498431519928045382975735768613666700778910174267538689289206943966108602567016036938856278119873170501514270241491975736292220074464016101283786278385575993140110244953305551462407396562310725814855136683995552029705881175411625456776543988950764126941544677133929174133363268555823569943444552016865103257414994849970168276965878973495889842999920465717061760314327815852172604896281153980237293251965807929390331450718643219845444183629707148829727317307420890695931243782357719391011471381262958500353200066999516931129691408130127943379712084538617907388017076626250679342676855237356285940967720925978684890551229037607909202220015887291304002881870065465611497373297643603029448626017806567759763698733525775079953256522257993411922804777170815586699318058651911226042300390304007811891606387506802912168144348174185700933782151838022445540777115243552942614371122549369990267480650470935216758518856149699150905171778596800333164006267643116243163373920687127183361300613382158949369453814297262478746444993613409770892528769849902727038752498099273275484389487828577958546583591404139269860551246540639481707436593494184605848101208018769509521144996987461059796227201066414035283455387721857145026123143424423318738045223074179965432682648477372420053160167554772223707977260640471911436692274561800437729734500086102080166461948970138633298174673165971725499189760330252889397159184800356269088908496223306046552192711132563855856997618973400404191441105042273158452584166786125762117212005869650286491520871118517623219732829791102158458646899835360657349889228775688301984950056469306877519742173644002538627979215005489129233986597559045119277466940907084767966852430122306033417966572115119027738606346410343225238022926535696066676803909506414747950537055759328262066041264795870716522859386571967401926030091106013770802350981510946425680329424488104831634149609991571344381169053211388651865697150878420343641462030268956304626075811363015756979440900173725395310571255704966216014634722801670766096881000806345382990641214603016592625500233157748551469411955744684037328705921795355220603370360530889177919905392486539388837904759783382326064228701892884412587168928026938134319869173948792365966424357086069651899674348079750318343176981830447521426298437025107847553467662534424299262374154366886112221935752442870005895257604892353185867409743942792664404401201348886559567671804105607908849818843122106903205622994772793597955257374949504852571638057415507759310540670956148639036806844558678657813636688234432445401929864086112268210929186625182053372800148268425507501177256128606735405813060132400316452382091284122678307013134162502898873591640945873484488905845783286027197110796026974059764152453798073815007393439054954950672757162414900423051282803168308937979753292269196818599680410559240510970079647075689694272771968684037465896165555721576679838023213679336220972395037429860968248497261758987536016475261513809481149335101257465798434583422258241499174445123002323479926163022857283980241709978182950240262449917811897925472463987094016153840340848714055180099384481028064445430453270501290810630290102319293752613617265795198548700357659631275828087427717113255680547615835851121382384533075770406127329359477759988423889040065975635372089604823390726431458705932118411552098516428270625513161305355254910080607202203930217074745408251387817877307070039678318490480001481984504123395398304106799980128144619028992880603449806404915871386656760497858832773132692198695658919253578153174402762386923804117863505027207922637051474605362348276301473405748615750401561714465334837028972566826721233556091540917950581611642710482236831206845792643190962121325762982031840404793739969199150613397800752134611730578147524606756314871775499727804820886505262430709386231591972541911783914758879852949090473519111501121598934318229239604580509132895467806225402493924255601664906418791707699742956974021705763341848395488948342865444119411593818429808820964827074741868095310057301053948533132186298147551402829569125703412095747096720972209115474066166927121980913696772788603690628404300843615014072724695199712896960317033546062601055871782029289361820877992141649362370590287321517675443004514554609944502194931822637383191214377413399361804310646253770735624892016048689820052703915683521912702434101930394596844401341152308874184396947633770303159585264586826098855922790317024513826033571834693027700264260457696470244259949705391777699811517672565990752734611535017003067582125812739354864429233835606920028278090932618733620111633517645878601141053409661635255484953952151119216686974951112166986609268338619342912527470413650088737520671447115067753694186101325995601302406479858157531725049480632658543852099494396265882186883978184915019156429805035141359497861769176532746684916375701711141733506667992292860418676247449041499228273848611190888701122289107033423423539218775800149813497348592575885871774412817176971818477429560104598653524682623398015663827400017205170348907074120479956997738464416448903146992614903779469138466229819185867007103951731710708707389903823550514995676471924064200898438122724393187904696090011007699929364574434250653652476387947595117677074420815963336797553026799168261786064204685794677855735049343429503899889459050224777686182314195915508371993722129146134375291140434228315454330043904494169900494633992184158430800094168778414148931713779514603251328928344493465515033975378079491102876817634784364429882796877666057682283945745120523467750671099088936940542610432763755610615922394743900510956193144934335239019474115595872544827686150113002028569517457085947075836270822864464249028304332968724214283231267082164510611626603636846522183996251745841788321300183134035806613195393002829589202225852754711010585666195656980964003092439881738214928127761352133068403735300547415559085540320108595046603864862149355444472716287481944807501599359711429587510359443707239432303916583436104089113886740150247128349290958357721770788024186230913761653866306212734245079410183035255709773624607204976936719397865000004486838351788129223978198673814332989225343946275194635973228666168064324976824865656592718439021684577814140532036121980452597209378766686139169811868447335354606732103507947670576741376576464510529684658021069202984164490525103686351753312445351539108121448164029265808958066297384767038143789779390793745416832782838694984312177317174830620360581680506907895548658673104467581838890559816573880343560362858140044760771729830909683719438775851624542486276451284949004496905248584401928627963007924608712065150615255458040006391710115661060380671730523879954005276835478396571709291179332911242204261890607015647905026224718704713999075537875658369989580970447144158922697666916634586493063261749207656553589713976333509995996290838201387197843113245667821447893775738767746297541158340157154834478803433218364808313658298778769255633382141108230727798698459806129437098028219713939369648728543207614078237383370269804342970345612990183482464772341741354519137544518776232015651480865685272051195042251870293409728427978672781572746966529137769843805345215977785273234497573284842430352860039362948765104302209871195782002012588686971519198780688801715017552976906992456084417915379343134530755419645753427014705268097353179501077440266314991204484475599612987241347325066776979080221136910744937067889708385699921645220030451621729772041576458724473960368302437670950179549224723948201323953010034567476509348632406078367494389273912368731622135179043859430256808109509937420504088158542401839399077251402003281809517011656902353626658292009376656227510756581308686971466376686376055277408217664995774891569534000679100973619728116779929843666437550587185057233226400075881934964441599269220072631682564450786218591504232687416376070578906707961916276213941912880565219776611404921952427328646247937846214686631970793481093150650456956107758380853703730656101164684815156421488451357239176270413251168611152752950760886679729217806985188784233702990725653066499161495616308399173848271887064422587602145540562671391943961666010137145485215783930413884925195571010700999265274354508077928640702449268055166871194039491311274073003814390663724939244860411323470682405393636145171189401863897640070041842601984089364245330535516008938602905864301057646002525802473995778311343852573443776429079520444438619806819103214321386116333266430718909664993775280836122789967651704810694447269534248772912885468110574153640444708826314509464277115380687779511894126108768233559703502248603887282062875219394305500728277212695891417708376533427266135705904234880358839484382355328813486675494535046175829563553403560850261730415440357129286522408047695864076676215097885178594242191601791135348847870841788035687135834681888525100879902256171773795640928509596107216998516910180870997256022963702749279861777493218176598491854656826867354034457775237656498787548899411163860053107534146599083178718459119364953692677566772590071027289817337699517862312530129225987384910472865563739090635087059367799958117116333790888452286308154374947333710352436350401004483727367192395901964254879122185862389292092308189328881414561514374138857439050683965629246246502787518779455237489221319560174059117275230802263941940710587482068161423978715651452175826112602313606455172825884600306324867617976556702409538057365078735828961750784584063641061929901047546142469856749625684684982035066613959806812297682583460906018006320011389326336634989145284078656955671433610086988427902845823747326844238321204748596617011614388159204064477857513305080761215834242835224742125530012110361980188015567766624002033952214374691766606994164237403762977218574230606761136329842569681557723395556924767054737260500081662145573006280580894234773542655690888895236902198162527959382951915288803482039744606906087863546639701544273442561721162885552701561249715782834956025809474587231191034317314643945964543984597009174869696671027518883539676197586900883832005494480354056625969926832152197642222202602007897182788357737705610543788015669450737786598916123064580751509331030063873129138790665516992759033811439909527075321949249359206899439752205412883117138510966073998771986488101289571516757630824356336029735171438705594140896276265401651555453275898543498932158608599239699166885862859189558404480940169855750702217532933034072149214773456406598713954414363254943938613101494652651305107053615038616066825459109153327256131986762674059819076517887720943433308522438053029766647648759802322484501989153987916167545711607864338297054620235939870342154569261709490213730698876977689507474200803930510967839792877628095609652581153880894436354767324715635586084316962304326243921232728271146626541903499314562187726630132682004271432298229754039386581762522250048487607977761282124704080010543430308773359824736626932467369218133235106461826149961370722527587873133379761111527439811124248159197987900915939307519434869261224547318430375821014121673700374405903476929818888268745383654563784188943395607025494264241039125630131079350287236566412948937529986452801013588078934533881016537502275956797723385596512439249745436505633088170306696986437960750906281619688093039138330169722429293372153743305834171436126282925295980088712186508093075659725218471405111186854712430884357676972861539144046769294769656201509052162769106828669658486972089308793503043187365149700810024397911016995639769121039104612085319931958470981275639896074531597403208065906974862249101042258847575963266437582350630747561041052512389027810228889632524350159729117780557120869626820635350461835931244340734151305932350331381809900615874109276238636984133798920343198213256104439237413002813764932129211422422809981639814355442730757674150148923438945380404798522552814861574388931390077740410313525748276082032796457563476871487639695475180524554044873318433376540866968941148519620427163924689731447355205053714070049857595627418966707909696013892379619401294587162784291711295921153646334818783724519512581805995240341294300674706817545266231400248125968866980880469549111000072535573929352167250126046859378324128499780708350751627863349173242609137687619403110782307530762216079408380098521843838293523524949966978184211791050690500946785141889386765163607753794882887174534048905354684048207857291025788470658205404209028934950302202755565566624119406710546672044723172159462997250311153671704913724314575114634042950478976990042356180287456313008795150914333845046970742849977799561209258665600875165934595275345852653949873380932938804129111124603700664730624786079029812372621287484776010975419252746932199291180655639064187791990676459107131011737229038740432314636182577049634508555213754172054280904369992133397985167809449573785441892919619544495410815884547733992983622918519905557920173540712923285487386191978037916200105880229013075004374414949790068712882640114959428888070712734169958796672465614769008116970852925508579999734341996755510489748676867596810603911030724307050452511544703614194126248005774269094954696824807535711485460746472741082824160399825742721525984150329477071178315485529622075492407660183129093130008944627739371548978678940177225211674518122282884315717349961397987928208512834877531531558452825386359243809548445261221960962650070137539392449546237418897305674322013139526562691299932768653888896001066629069094368165616561032479254077520738520711847982894689880174103657975049101684460153651015645803501220632711783393169039065589183731736099908339603606380584321971202646397211617486351262686686698516628214071754200127247920587511606741215910195365656373160988124148425912414944746539391399005941478563616011827010588280060439969194304371938112439613778398430138202356099388012518124442939171048310677719759329000383730327353856822123688786801724235811989889098547012882657722342424919214768665429552225844859542675186215757157897987712395357286442840744288476876079453058964466117286735457395894540189028230579644379035929367073625732283576604296062502466743060953953934852736844197055983801449683048522826940972027086058027387830976899084213214372432610374423986952927039332529573901885337420259665393153110284262863413980891665457115625688681274674701925514669805061148803659445342861678766519414332338324114064821297278157523567026838408984007900805354871392612190807014336428275758603499146006861996723160944651705178481645656524184934435496255376581352894248015883450489886236763401345001480430134891573585277393368905265977441287923021790259068949287454607410106012165861464696229337474274425278460323134042112659518215438005387272819217518369125248456321573770894787306973302429885527116921217914805814815109118941653656130341963144527465929970534802497185998892371006591918794675031448808494878363833647773496372385728605584589187416122225430168147255066303025291053203356612943336469611315754509759691709117328181992386071811165859783720987871794229675794992319906795386653625878196734039601295707691179302718685851272672354062153244236522357449023959011582028392307056841454583932667046323579847318613948400997760088612497285892356054232519946854592792918066746836447657195847875079636786435024262511184355871754424485726445850867701231655910068591088857179610905190433184107625041552466776311594279350751373361706232101299991668682091458993005406694342940051056703181502937403524923006142610110495165205609339035050155193235465859206830403647688331832028985107100988043772254853770154478178733641124267780838121199205961168151775131183083681574826029476943016414656237700585265068955724127076171044513530190489398770656678430514971443273180424305821447423392828637363820231261962879937678575364254693738297984669089998461154539694801487524012824984315411452428322738358321674818559274034161215594524731004067271065927270549063417050908280267136047651644518108807611017201155863878128203371322357296778469191177230041042709333939781238751584804180782658265965729367328301116920481168538132735667509790212932944919194322121096896123256759301133383557062254798712047496285384647884754450623712887276416348406149474841231804718425891689022489748366688711310469334919953170260861805853647915225827854338450443516878722817989366443304602214344597978957395986023313838022710594763222871547736142927569018573261421685265022834994067731043611645605192855133321994293532364309078293293590652420097974610414306135603760749469362856624089185531866652048348113122165082580734532549489896924648535498855808875168007313498141735588611009419184151839023666898060946576978737212446154116059228979907006893408303261112973551557554542631251822181786030137548855723350628287142846639848160232954344662500634513598106466237374385571485935701572164375632733970493597561020675229835088709174823304913682429495924363577429749277149699009772421010111702173758888874962129753361850379205975914833895334806470593334050849797560304862727437693966641024307744848505310751604218530242828430625895634132242644475122425224189358920794157836340922022451861973497721691133981573846743384240801281504091956165704021460149348538042570202648560107370924855959879215204728319627098678261494174876006926595477040262040855156849491205751482743991341660018862413911710287434428277335718165126600040801944335044327898865998177499965699351732984907975945995541267612771483649316506381559715374530195457770079720606407577450754330336099613618076145601544357213806838087875524972348193416754261990918008681610530939418177596439131187696289735583172367926571454267650747940859786697667155572708360264866164721538631944244946188268509328320982000870124901957526974788271417039620130533215199644091896438196624025001687737747860935994239687428772734125899534502313657066240212862977387911028730938645652226245265273994795885325891984129007230866028043611860962773383955589780145240857202825102262143526997663832363163863263007721527942137798273603454094515537817246494763195932049399633498541237769907978475412303467486788543644434665451661224314321401924220550940039241705925976299807565967054006254129914219065589442948858681920605548858531743081582245214973355330391189642934188246202348300296279072221263693788773948275623773015666866468889854455830375312706027993967790371391045910699821601861972814588292203833883554507201653562339727854106704967983595490388910111172510843838278586264996493229875863331644527228935667937056468353033265663091906309251640134598452925312366259174753113127366449321805130061940245059142162460833062162598742963894698714242623355487692032913303720788902408463243950849303544038000076644457512966002818286584077525666114353868449986291552108893378308383548668848995693553827656580360481654197847768388109685191567878793965283967635446383868296536177534539050794959990379211395294359560615855896896720863407853854917323966349602416614611841399507908279728421392599874687395594835770576933192343290273585219332760559947671164714763698062940494801108825829572404549536650294606010677744975047271997442888883062398950158167334467525654407139104991659320163198357141661330608593374545692435669024335111120444459295206655538765503702489342779315306189745651258249739065991126914025300618068813245865176389410896478385526645058417937452276608707589748843698727567858244041081172906809417544388658100353009772830935964635838533031998891888323285869194882622052933449896656728940031411386694934491142387623893814453207650688408989488602802041186431472727525470903480942656553186893670952634155262558623026953780151217061873587917074662552521201243428377161597810651084778524994597330111892014507548766345420162506710510047975940782452826277698200904992119251926098203801500291454418789356988994213669811408215500248418795342869241689638215381599399657158160357109144542757239741272814811763864154002286694681475473308762286181696876201953601900995767811377496669100687479676816813125430013506677825067745469781657888214927200278275089717003441653606190009330722164190128229521763521110621990814891160683627855236551975530717441065870108619210967216244417150470404012183725699808455812522003229981203764214406473311278711889536686078657184968368585183797566720407946752100435419175721985469893724730662520191845803337337021706728945442496040309721272188759750112302742714528471576348912617115267925045829868635378324747296917663575383726519143675157241164420413626713315809061230521782522260548693746601098189798257741461374985336268973073337448519317779374355375965679252320895796992395264529774847437825517757485133468342556350937216215285579462665761181481725861775634993545932776645373964917785004659467935147835836617473932126213535693394564179002041223176615108688603325644760506887919015111437822834522352342825254600992992108979440751497820161945223520170695518068656997119913153057246568516287930041631162011924922473577915271291502442136594845898600595018902665086229919807854966127366598590275352512126981070760061177568844235932527679027050384805828642669978280100059021411895164815463744437788370476992460493248320732756603716594409027700736654453826424598809043237112979172335759517880898312350566957203351632084273246710849397725625797538304840616966722432037427549277943739350117769225004936386846195415653328838972195770955778121705282190284355077422766207979428821207448379049003277911379689526850081533093549324028528206759207650761039119625179131527134318833289181090344244646820065368762896334047832780474794643133589775200506995629934616213247070785236144675884625324075949996389588539504064368500876577209987193649019566221866181485959944176418136237418363265543498386956487883652010869266303595496194233405450353130597075847327727178315623443204711313181244978111162558993912931168753627683087316014365860547197137223330997886731391263726261741937977207538874667556867888902915114021894685798929046578937374646692396711705758062170956995124243652298321521403909698217313106821223240988643515519878157084352957849963760782803830791597542847781765492731962810726016273728825156764536680229459516372828978277835689481476380935304106154268944731496592142382827586080662774661654342420188749786372832588257149972692426363882795788136056753074986315379536570470159685929223799182883384386746905802130742364984676093898453591969421891539395041345076025936261461773478917237529537882077509465900168003507276640971642539160748000939371743953005363316603890326539615894266301304126822876471330573440341156400706265097617251018285276140594383484844685728680563470872122486026689324719505416092347598966488080985996784692112202195052754692392625626405688508160804263867662491646439421260894769234465808030520656060737167119778310334154700691681687703489482876065653376601642860897082698260579505096168572180992967176457707169840550151505450795698456785597346244538247565516944511871695830236523029189562427030144435043555983215866358555328055979917742488764931021404391689690941171711004288572145781347948869706310477848551773821184881674675816282426622186557779860113848547774758935956168489837157524705771608782211173071312111570654770027653073969297168238980151728476518139734439349769394382468723590700800440219151563241166050557843181595126579363249315634298915260933729917697852353561967132176922306084177158436986197569652207399520736849553896367952463703139990305676113761412161788928019892681014300462118053766906891373856445081129534922855549625606563129906566288419889558637094228393226435211203367245379949425151592686539834946224564215745610946534321700532199450607230407662541446929499202360203825370163908226262270782594754447781362514236356358324676049722769006175756449289892137101477264972146925864884517527851229744961586277581801419933728279310643903724056285424819866479679629768674076073885263756982006400400688429090929495669210360916123261911427256706203395741501344342422969382586431115395475683322628090204937130949665011450273964459358302634914401036102825680142565814849909639631596624924812765157753566497540033451603355121817133910125638066875208843060830854651391101038000162927072895912861811646920485217653636863526721216929418321716318491793741749926680719484320729316614634707733979018251469228449397209039786748587116291270193559129175040033132925027020045115860730848569221539016791533333114614422771722704089746106024760059262323421283759344542586119048054172012745900095362958151362185480630376764058548484448013531429664652378885986641580682943475549372763456788476550139250234133864288357877798959606734156289782762877842958163304111551826773319342181241443115371546547517264728726901149867694575421806641460473313097093799673786312845229922235933661417010881599476256532735135194438336926330712055781994947690209735672512592053143750971556577709737830869821098011457153242615501314364935224635137410815205686455133565301440979086647242152849564883175488304372615678029516968543675721162030741360868000803189521024304239716604899001412515352829578195432793539546881176940155377262079023017271283927083727805873767334529854392237872449206548467778857116938098825035832106475235720847035492951337806163106688387837024864752015585209035207764333370848794358316553051704187995138134617684464050804152573306545258053669266611966533484944963406498851906156939635820486366656377811682532315438705773435966884777327862061472312719182297555130257049222475136881694509506654115239683109228887735376889051188961619674041139889231911555300660056951262289674778701771688105412574185732042241088956086332778017155628943656166385100281087908148939487561317959250754625747216487374177815155847153317140916717628998133724611175378026451465425053553971226506491395502141765345948981736935200776655639314341106297276904556539075231337716516001588232176515895459936562739894290121514559279497635987303865482032504345853400692246610329916070570916601546039667690675628449054205853211923214746806745648109327642692868573466550412923703720454223924574580018617817698333332148245508069106161848918893232601766990747273762715050101708865220101600913350669284852095687356134736482173087440150019569799884096247077993068337120848953720999463709874970588840057548300712114670550092809350265633701620759354838899518783225430578136166877168451388118149610960278338100856203501547052593144530273443291870656044786612625337715873888307537149379236981669564747119173827548242729028715648850324455461759088141570672501321759523839432492385433480868224122392552904695391628765426891464598331475987412308009647972103096130581294698269442203330365418628895937877972956441069118281006983102441211899973982628197264874035527275537809951259746518751887921996518315307480949079480348567807213419190062781872474053865448830848201857649196937547807305332325710140307100065499957637424495325777527833469163213620887199436404480591926049711896279845568722453345364646002513216786197596554950018648759719101510584507685133425635973308606279107346999797210359791286475088855631730041567237990555513918593660464853668617485167355183270585512179023926274524458225364462984879349028717493012332464954804157290748489611871027098704342097417440546115330202494940887995362928534060304872631373057298819348409505311960629044398507592836678237256403266574829285399440031660649979559424126304620088448705957210467310060892150896923528503938081634913832641154231612827411426186371311116321910766883495769468612774072230523237192244412435021519480102418536061018265559201560165251342971381998779556527884778243063007866227241462336419851512823617873299952149726592863437308910110372739822951875755311597218118936011103405918980447897850937129063628831223810903689653620499584858437443858739755540826695712085028925841767159999942557171152891652049164606792062090807603822354227311250087019463550540074258238128234322564917466353389663670042465492985327862967212331822242307106216905915569657485538140917472465178983716208769101322177374821955852790530275198328202208938786152004281895756541258077532322076193182003585286054933964391649485474620828380044366335297962404743856849497069451143237876101323300237911413388035525002551815410871158884084161086345722361439341528301484446933456745879310295535559230769015731156354564715799735143997362971801733302477497207149609517961785477368558728580074502658322007319558917260141311059431208882702825423663066996730415936599665717354619379007272690006016634304978522783662558404391807956422185266894231833659429945239913729582743264513928866865506451141169801638066040763471477334843098879630223105203493865743928272841433929784296586705816234695112253427372387119581103628322918997700374205389943633902036872246269448641441649928250709774225710062728581775527382952352917567322584052456990375940972568613810996795079105460677458231307078111560128362038990690610865582204808201773760691711659138948105686534144180612037743125970892537331571035881305591838363732293432676467480052108415916510109519355197290212994038526842202516319644826348702802497484801122267452516480861988938213536228550288999374951715903854622696547683333446235606147947807399818748033723489696055740079273510668247263062362186347537381762652361535181226991647094452843397371663307003308208325949632958165319531299109601814144230924665351089169414533868282518780768087654788110842926123181509468338069716166527308330336425074775023645437946046278426256898340898353912503867484975355614777639994572871265098774668372888960251024101434988106245179189048801252371831683225546928089276759184741525002596649212101028698260846963553781191563963565407735260801690782654406208550074092579157778051584708182878820392972710301339214104930719806665971395543481221634916295103659185423234735891379286784071350656685087735541007066052837902478366539718618152453046200483016866561215287339967175425849827950161078179438010471321937487544224936768087929166964350848604994991732333670782262229597593279882461296286349105021106614534957488789983563766008125525245834993220579866738953857642358916543568608412213286976668947439323397039807283424394517361869989432200695231355529567262825433075356320898122467542272456159386747196109093430414475207235913113506234693289496199693314610175062261110378760098930129023385177213262375282298960075513689039151587248278980950348657956546701479417914709806932952974022458388571574746113854401501054885507094789306823656092976569958131640322760169500823506134501401617018648580365037767313397123975495578238679432009167532440971571912425565461867409133199131065507875654977142918515444746150408590280237829159727553057908161416420363931102640671828141890200793403010497542307434054423649826077078958323371557590049723411820064209186293083409179798999805753823701038569224231383311363776327082361151843975780355926089771906306975803466202447322719905849025562164325781080872104513998463791231009899042162020677823531701593251985043033579320802702207608774704471383160378890292479212018941965777641489585329904236551942940624114718026452663230467457325193621117776518625006658968934817592592754774223382100795651912937106492776266872876612760780914672605445966034628426478150895406687607122732243102264842538218534495797382695558211255117110940014491293323781861822881439007697245081873775469287038349570852375122222000471383231140040098805261743617560834041833632141309219524883121925095733592267109121078825482753520917822574487104654494746562776785416121311169843004286979138535865458514794980727651196957895003938457245487266424572017202077077656411852398529463591450716550769620250461982076824426904264544993521575726457117052761475532342110414623170470057229551799222704861162560488736676707932962193132985434358936221427820658870910840439682864465243134951535607195806994722709528641935695228709609440028545273565510204072440261821075180746918923680617737531287577558051939487783928323900534376135228066659037748463542879768961372631083381061195597807233534699601407647745711072878864152220801504381371534539955808146229668212215531836453176334761555032982940643559279945430654958529790810166010874810415938749218582521768037413052561871203768622593605006603765220639884336720972943243198707513350595989218774299801977703526860891056776387643555521643575866204405261275525942464024126571960940556668318321076480449472658859001635162430789568254742437889045860851912661539151628519729836623577616538151185331060220731044496159449471882972302817103586515743269867253687885550085414923677236173475727722856712922885550320889261519714508342547484253854878623865254254499359933763401097561572198596428829610298782519591243470154639519845893028454190842936081265664418629082180696119981893674456949122684704600865142483084467392636291863723849515898383828313791113257262374451849889075780155238243455222894304136416340003003943558232123914044496938196501317204126787956541074655419288671450541208373003377620388169696922553652246374050344824479368151599988617755263710411110382758831802916532766026772255057197652890354738382377912713190399784593171677455304663544663292776470783564239398727285347866316592220495516432144083153035691494857030018302160268839235834653147744768837280912077389983613535749809951739037872086454693379726710898996944949043597738093407371688776519398261404279232901514633597896448658350047683835647329462792016308398527864593660946418851380744239276643420280804045462215335795516151137964874966808849930586894067547079316442992879284330004423566195944806673762971302244229707406462191017560846781362818157344788862699631596901251271320848264698509774724605373936519928447679974244312486751650094614050750675295687218562702509206201304374223987277785156146003595595565689590930786834418019440817178340367029446576818757855703108240254678026859885141324259397798774039027666067792647462628498900090981173854319804971992990452083788586553327955600224702458849798685128939954215393950947297848996982021110385619320015350433589794038708387020623542000767143970649288860899056221829571412585679236748330182932418329847282945746694116881614787860312590467616250582250253284714286838532378316324409586181886481604323572593240474523066623354216773780746593604928145469847866899032670709393249142674391376440034390226202844070780189182896937422966358002937203450579749815004315673756070965294468909871657872039150018712619473342744715332229311604436975037252727813417971373727722517328840135481506311978317307127589264889676183087161353347440862769871658922822727450665264638535465547977734086656638318857100515577168787715878552760592144821784767630122593163633808778075877527307504515532489356525606501314705529986561905862775314052328178100572162314492381090416962595006437654018373301852065059914954299740518984680264842717495482066417046960702371684199395083338403340289882649020689135690825291306003369700202921059836946967599448452780764677622372858873603762568946958625961968148396587944437604405674890504724886499261237739357993537807120425209241622604264548686394257599733342656037013761752733479257174438912317461790690341706501316968190287111875181738351673557666957182921812927977748837620945933302772611902722946491723695464863247687589158201351809933911054957126321815239454320701358134007441294891305261625755892642364124007808958291546721649188596299274057002795522918356705642602235190697863303543571838582784972059992158699434168802398566206412686073255820811160323335190953465650424462851395786857834267121709717924351098896671937721529149502489457796353383412194636335686215851640611329855218867110250771846287742312435256778725254082299434075116520796504816739264800314409640289803651601606921761950845224628671575916457924764186181215244846118856887151475138468966096140771114508354632273741774859527436546675343201207427597487481925945033039364436597385879459926712248650455752787000411692252823569203199669438176944830070780871270278508790397180836985531235834896392883519029029812815315463299785191499153824313103512278260075397439775880069124246863739762097309038735467133710090649107837980777904719494746924473529443792001599822118530275891500439785921397218866663324402176286639999343164216628559909980210017681837616940426723158497453220861963455208486408928669765431821941806788167912133214647236880939167346710346055984474845953221442466828080746242159885051867834979844192949993825191600917543068373932429210101704107400676639318291921882332398642639579731291073479197189264763910173821107149626930635713523639165998022364064859333463343393943262302367670708967862503245537135463427631013874664482980822069286236242486431743030847094688549683964035128451159232019156944304126296702877603544430895018663522948930411603323495291487442013178925383791458274055453630733676305667805591639581362822129798401251093231894527245909163926592457945693764919937487707111558389439708874573175742485084648684875438334293686068194659915668306721692522148052444473947970097427101711015674717996387151754584955836579842341618306004416360379807132873614275470272629780894903980094736681278457394670755397016990020454506883055818223047171094831266957825335749214648174150063133585138486567488829788565665372850005206073711186709506306471352528683543320097222547880729242765054238012616757889594229334086420124456730169038576771921717565635618797954249502690810873658225551256495393825670576321358260169556276124027247942012938303705143117944829282950273480943928517101816329087219465520008179659100523796570702054783653971317361271054251098814661214974877243519777670489363484028635990757390433961628224119476745371897896129110079151018740924369935268515054164028617790055918675184467670776070748677171176043829353188983190070730277656022656952608518489045017990927930325415443553078007246431602859911853189399696622334947341603959386710007512046762140887041324199800150066684407528664791361204395264617132432452422921403458334122696946692532014738854494953121880472652363089271374083642974683494960489080421351123707714988839668836559892635250011560669082984300451269326695395584817645398490839981141403788878674463970087023213332220335217874282708982835172037918479681843090069660618471966460489729352404768337742046708081881187005834961013911139662721483566529560371125991046361532360990250697349792929221807192034908875964174476094390826338242642164165066910112116348399769553215684473631600791199836610329745109408047529584816414981605389850418097901687129662663654407181469777714237662042220204222716925031529802954303369056528666103288992915499651474550410916216271292299958055155773774737834638134206853264311753557247088206584700243762143334597453386426811107411147015800525740434031934075144601749292662879774793364176405376721090979402129877036160917721760425309627790461299907258091525257770983831561135050147012909686888464805485951304349699715031366702129925855249568617015469247888634836623528001204609102323097668603190379210554497521242628624702141579204568684073915416397673470300375416380893958008990151830235523172828722169525435894111261888042744920647380159131379982547124594915069348875728249389479143063893749867835020255453574755735848128039651235368891196790245646994578189289216260778952998622179568547723213799527698954150877569003839380942388123805240483341427983560078802811454798736403166771871230082675389131669968207475583380727894324544108122368943920124675974878200413084385724896993438361168603396847491141720487610310404431488363497233976509693375279611323396996380900428622924977601649053678375915568907319835977861123468018988443523116562288026143715001892285988015397408078703523294267092269675631568905935968145797095530538061444874733171927446879346539127909079032912394655448581565102683992858477904310837711896148417856247795716194881479721868954048703517467315237738023559066177575687965906156678139899210643196059557606611890897446142942319769920281541082399890016302252899339896892917852957099571835921569838117640178653178704817201504351396991565660239370189461868629978663667928099312957235714199065337580207925924798359964714585515173934287198102204793784302279582963834016701799315864723813150160738704685395731256914521471421708305851585095948194587930321593054578644498555555982831882307977126071385324971838772442623805916710882107882925251358115440927332752072935059133019189230320331173726294041000818618734142796437090774309116441375500858449596712643551792108837498010036996942601175635048824570002114594686712679854223022675479225438270615422954428744052893287533320583658055127655390054797900539891404494222423279977188637095661489921485254594548317319639408372767607303014138442900745709374397606345875617313189950420945361230145823451054212023759712434605024778480312536848024428676802667200255922104287482602962170404603309865348513853307485448992921166153724868691499081280685644283017250346046160971343593621738390879963980430014913242964167471830127227614347674933514997045105060362757048977846363124920837801018270350300630847589178977961829864787127470835587752508840856547824374321792898601269295906688976332377961099513281788542350614344240428670958805654566322457483651720796549480943165119466162249376071870249263236514833349179276296326490290695742014156319917784942416213816267594654298442232924664187623477956417806708650946724090049242733110116247328583461693180483555060033625746349182504408182800089011990638473014403479198279487730006084383308976297967336206079878301785789755481941003846963350483511879134185515984480918422542363103300816407239948752560122460295621377579219687663847216358344378734257350753299631830674273475070528928934153819574040594158621282929449569729787232713384333575588708371689385586150568743564893936468969631816897391180070021509391941987087752672614261143993413190400873520339276086190313906332794275189305616937337412428319054704675863344503793390341177479954809060714846112988158773726352772114657921664951496015933578498298244556698052248424824732525697512221600481151521537114080520218808388363229465762962266326815067121156053695895478896931809518830843918086301759640583015840638989009812260050691339153865733984812912667544367981990228322575405236021946565818313834579189158510223100754517890365625306114931041261255805096747777739084468170477781186776650715166593720625235126305029257673381083953200958171519984694815887675750886487421935215621772272705444208304508584656570796624358610968621896014924939848956963715627844270511070610778002753304935461580344823507108771297498219257578836824759589078531268775914291495501419743350983236412785283371980020813675201270009511383365999575888378854567640934260900024551635128894900170542080509596902461752522309188755379393985871028689294558664617155470212837606854059812248524105168167196517787929898391762836440223208093999045697321435039314390260938758480151189804323784486476440597696634347045124862838711753753349890699218011981604009056224562352841579717091199401676257304472670437176802070731125417713007375603219873420230023337762309294920617869231885450387767077814375954211466596530560543960949212472966595806300423973626500924910226244053297820956481668880402324530322152866849962538703859632318704037314665057763363812576703392023266584070488860347698976939678177528711849765037984239905915454620743422961286014483856749692267615898124403782889110676446745394990409884806108246127014674859481934768329713040196922173392201569293046357356668783126848470561488590442699567548958676265405084027855303632509897116381071176173624890346230877975630163180963615665595569230410032926320054188499411094783982066683806509944836848029020333145367790486500893004591802858640022476202673448708934706107606197793975017739680439428169047047941332128166613997846343929503479886884105957783778150000340303843028052368455499659122456304293662245585366566074102038352972422773526566031240600437743383719393901133005318519146151018335339510207196081443935157477426037834713562149877043622220413185219011953179754324081590655147012915379042896299471874039473884749134671488777035386839468615232181758915271680775432756159655052609758093780605527642524600709674427062212582042600102159361422116957860768478966995782360101545424441499822030109715099951279578806138263626853189967224275683122104174303408817375783507718395013193109857822595125568383371777933099317018255162428778834977942387781774618730377519545125950164145506040908723645261911199306277775559178859263576836219546787506903991119116674820506077985642361120440991723990325478429287330459380723331361710656921383511486846383065955269578385032162784835783305814864266850670697274599089029596602134079267839011824842188675739142308537483994364789339889977933177129354847114382823157275126447300953654685769073085701667820567033518048998731426958862662911432901171341914867456102675998427203521223369514445589206313560999337230996860875041219549478435313237120056691354166819348467601793937237246252107041057988170145092829191177681231817424749411464785301861174259933500327028887283174417073194301666954430728306667810079294008866212133974072248149190468748246570428872312574453587722991255167696394109045783369312286140920093361996350722991437874382946025118678013147074688895627645433637112535546232075258972084893343368491482829843845286283621915144696846489737930763759948138066308310251959687943055428050577692167469371629122226919486904585603150385961566609643188595718865443458931948948735475294419751866916073031836742139958066279230345565056125669390531967969466148607035875251646388819645813533707359355845831992914242859607111013082275879240568512022512153834486247775200359735650687362732714393708803989632131347574305249377812773321246156883863430878531097178115628911734208536170173428436087647207930087210575916723630614845411992613172258788840404103969977428946999201576093043687151373688622157076267172072536451614666206282880263137230006515844826630359208360878537405725467671731843658862025310755759134988804982209983594419987871933707326023589489016134366084788747971902454584827578941360530726104369139523721190772070148459405767378306731306545406507041450228120645353064286541970148483218113463858106990334188473457085982376720095053290343339434600052222361505366780637177241264689487213634680916094843631148133665302817556620858391098903668719613667256666310385229163206334905241433572791394975383886966741593297446441718754153117233539654928728240513288257181814513168701753752685805193321066058182873595163957353548116884493160677335455721816116153117237944154656741431907916275465845657918078976620280509148949490554834972259413134690991067996141263408473685768440049301684679215397979742896485277484498237867537795265144274003517199078613768991938189250736940039385288242604097200498779497126394062461870139042107118037161911200952577620786417316418281173888149255845484553398427509146549611139403961760964661200420096398130867441785405836214661092617734238475954030796486825071159975776012920312104209033710101164911720985367360966619375484681106276076625669817467534932463228452944881608475623527763484025690906853382665982015878844933920884971805937298797076492031771537423968728299342440190151282290009268450729567492061981137004946062756074575644381190157636529055713768190581329269960839957430619995868902779454717067120610621666776280516473507258269553043020328304169260176551053891550628813048834221585113478745131980993236313059401425125793102051357631733608845373444988424182470308015142616690786718139662653166843822975660028776199163313187389747900062540715849271527462271536540982953502135708133139872743841725293508264076048801712091826459940428867609158929452746273049311420690637734232281875955861824838682926705993258919933756532370675557341449683633495144635534424877248343518391323929362524228980132114907177734949544420437698846769083373483710641502730742756360585389376455844602572550210517754889099442329770083605540088087163947722208163966479193455616624992548416071423952283498730890485821764124315507907855146565795305023507172575077352013403267353898363387373595364655900715864623529582807228896118657735222535021748458404343804308374338851758549639314227445989622022805326498734645417987281206614130401391915829274967320775269816708057847846623291235776357346136193192739827427402861980157299601153781755535196194555529675601946122950915823394614106297710638214342829737665292376628274444676595741071458659680892805832631007044285689055808958577192149978339149916498535520043347711408746310600541211618379325164143859522626302166227945962634556761987423514539172163349699409053848277400473197114908175304066659731078030637582702981662762522561100062547849743753508286008127480556194895464760319182917577012479852892477982847883743314689191275167478898462081405509574868672732400927406594096058390667492336594543098526989950305614858189548250902097471915733633219469165909211871387089419171870700276202844806626461329885980730437791775470940750100589676291413079374340740823501687787187213684308738783725482242818774396652663337310191542065018416659349865728018329128497104387690784877494463586525299934765152402306866327575547627094484611059122080819736628204360129623650630044073011085468876698277378302187742323754654338082264545461956237795343093337432692791807594404666186425024317593737617689892030111231011126371680487902378808299311260220661292889690063006509590791705478902502312422362404205189724046298464008832945255207640751031426686553712311765261412631519451795647474486666587491975349337481325965627693787425693767984465086669162522385781666259310106454262372337032750278956815127689139222234614170414959218986447128635585724605438397630634321994376068542252048317507375851533307478911452875711884605359305204850911307244811630340682728161998745956861077799087761478438573393175386553252287624401178699486624040751047879864657109540076199241814514341045592606291403748242852198034856760093883891669665018504918209978459784081294640423553637463353898519743187987213970620827708586702384000182169943078899657463888329477412278381996758914524060284756920925441148851428196983001500078246903974548932633440639819997383134597195167838462958334751345874202091412663098005818459318076104506663017736800342740350027874489547766933337781042183329461412969067113329203463497357759670244354894332229522989658037156874345727315409248165237203040790960895707670618991719916894778435495412248761262859118287739329507500832025662820343665552564530109631270529777403805542930355454384692404502235955359324629082377647907749597367738034234419516510150173989711770028402869912102726801073839879129485726617178816480190271878232205476496824892079986280115983835785195761473987940084242635352416093237311385816806954406223516657592219593171870714799369757907660219475049005768252769379254006061004666029336622734384578995596299772391855269863508364427150139283878402407143883995859643752221135090024152296732634602209854263529649645797896935006094364938517503470276967141694880323492103181516529847230165897472256529109361578111579076238968088601556483846229382376439286470308516549566981290204102532482459567130013316959464585274438498415977586892214700941628430777900380974927290366997186922071578140409987346154942917960359899000938889139713463825875376379304587902014205694951621089020765653185105631349169359867879972168955542768032761807537714215667754593223479872240710148829145149183311694280240109618002181270189901620711552645504787039422532716334784899304994697384411902956637160298563804495146231704527652128772159980370484411509040288682541411619299980340753051250876188610047598842926016996819477809107951987902099091319356076733569987499839587730645794035962387086692177075540609693555494398075263813697293278501440526275320208858316848747341100702482837049109814806649004120750152788437087523301905484667405489969741418334731772649968158701331265986160378091055554206607131220859752186316529793026202663646834207256008821131704983924956060014387365001225406187896101010810383218572602975361050817866390106130663993206980700964286516870324031284418881300686773666981966986822614356988065756429656977614928791135723042802272567621260978030844494440940434207286554829287749367465330403575382909675169224430502530158155277088011882611675257789596793486940501006573398045027202695890977282784525145255607638270071153913561432398739231487168282123711255658634897523712177140142863239261294879563479840300317166063155043972890364061172295171596085364032410105821493700939725590518176008980873505783106344588755448529161405352964516072911191383182732801041177404170067260108419527437026227864849548071390077195569471553664045215850245179272985559180365954782768890409919898102366164288303296778264943907414662303916667439075696338430974591281179071446560100427250459615673759694682546266548575936047941866368966967289752350451296724697196198131852628774752584844065521556485215781009566804765142616799655609263141182415920197843384205343211573911590124555618529509092688022699168688196297022360934900042308169925723620847821294690061915629108157376471094586502991271856036190968587680814356392029875860246427381682161109579886985697844958583291361782497336301752477597646694573280934393626768879327330605022600556422328310399708785731422216221979613796494758893170169223423328907687195336335223460341307786138729393335439665899960325599238598633475331518009763961574336214968905764803794795740904614437119151750958785479593943745341348017539980213973142925813315757315125030988393749914240737378184776441198994170713751272146236009881774243770226119386102972590902253391409880841202432752488482332223771138696421096054709068524821081915939395048064838675950403091223664506359073163078863896051088929404691632932252360222147951921821004052055905282631746364984384544339215259635681300515697816180892289734175875909274789377406942798274121357366179559468412653544017512837684698602889609933265861233457622987280679520498548488944443922320989860101745704144243573568467576141696662900045808210071924504923108903659379728625447066330808854158947526083090664308419449889669378304597502222101824683371910317362310546328388260544740199001852901965500124759343838552021088832358173108885805477765937541237459214849994459734928081754722093607622194674738009494283401507691774969138249502489592564337159457622687665492090935469884385579390982428874550021697398846748345147438310390228570874439427298484152541728356312189386656238286385234445217267598785498626189631119681036770791991422196112826088055819322167196941823291055888951885914826181314355859936915910305964652905352498884208692060578689534513928206504855066462280579269726795311386049540779649542711902104217422418254353221614617978505507196282720753865478458037777674911572828375866919466610802012569760864402916932971467402977466976105928624402897199614304234933346340972643625242517000123512304083441648917521259236500603927423232390690168402649160770246253876343087004948907277645677915200093386363110529424092113181264796637661983894946896276100614844823799093072329082524176196934852050342432481824423918904837215104683583770966915088054848039980324706994678042995643449601101287546167018695645005529007404655446540388371550322961287642012787606427271697311090521332258029148930172228705374498781024996139617033851299668452923080435467004912810255951377684180806726674429101752195760452556174529253450092851371031372940213133804876123357019124147624725140808497241610486121023113464086083699406112433023114940105644796657660980253338185585596827867984561941321626747190918684743473922596449028011724111427514059631438864203813189401681887883348347890766848164517056014676144627654279188114008091580978271249064549811461605918455600699756756044901874335824159965855333259364829943643481858118736582811694894968479557215713529358817105751709632605714656362217460786145731312895753783524894657036311016348408898320157111698988983952865829505529757058021095907089723635632020705071071451900994447293741431551271877829387035192095559614616826445925619594535408484164883805985301746116485290758325662814574796566044613683412987751212134884464922027698132525175108157021179515428705476711123535596690738604008016463563912291347940702540105374935507832943373281202771568500877637865336620749005995289192965337030761809528018825543305331411313654925366491733068884401505088353943040549502588413545351530085262571592649518338765913684949117557835388671309476057187859605134568124550529527170503059312879127066326445172188959756348331597089282458041940577351253747517214038816499994226122745772237876398618631702711564384689216205024083068820653680821798820127231616633659574910673951218047387503013256945366600612725803236666983790778240320181555177419188243780830760217088621937217361978394596334660300046158640661896625964249884108040633388209342831176370347131270782647449611552731515245917649812621557479023239237214294153180816593890433027709031605848730608811442062048934873522890221935146315958393035919526610616123738392991343210181950199814446011914333371402884409608398992556208865198302616216555880700851514184942480768677426100145950588039874401468415757394117131092808985017142020890101801324104979834433813102190534333539397762845339485312819704160949303014255132413322733432061261280723459926937133906684812295858489410699135763095205235788556156128828007760963445097380818172407317684828417130487430836751511708206258523282340200354783504250346598785972962547060924640364551370307209816831981379966835944388203493250505312266934460371711155069242935857652852021137006416860301630406562815819536046556962909503474286145422090059776710094572859012635062987347068275677710373534407871487594435730310600939181855328333935363944865422117544599676685278821857501437257712332085269448236536822380161981022767311290361722856442822424089972934837795079817240366430213154209229415742884169824186462424449004030385165892552486613509622801388983744268305716219682176393603691560506093376410422997043608270902886788353507400210559502085976590488456072958412255957985284009515211484754558196801429616930850920859352814377281916875809168820052409682408102185031259022498536297305974978589642555439968787486485651637824390502469325189623445352368173708555844072724509944999323123336587027317872905911868395601301450474733668797776591220474984341981260868861326882191961942376586495932029595305157049558454160728717997607796947210885520580574496015127247076445517502620385313259916531138610438496364822015820132096937640332239862712374578044225588393859398715100017867201897528673521801868634726548898648880121024815343453267780008711281057063871759989960490175571658814433813164953571008725829072337958288807478524517563645505699089886036696380681128515073372969845089128312117775161745177369075092453223420704019466894482120289272511311481416266131432725262790126544251825297164970612645480976565797591639165106906371206202101163063629410718064734200132919739983724115532897771828833113121678383329803621620664669335628082061091576176654474785527683943281013657144895594704833717159957178063238625774191857721505507511395774473481880982936045150466634906574448148814586753972689652415902242944518003255492998857355395953890670572785687665338650928353319782609304089696261127246569675803804959168682437568471384951739084426712494571229346983904396379240249478517316133098531494790420623141212866140384988506689464280472778032525000381575604514426874024222427470713079414494010989738330087461644792300578757362114941329421324604359258845365474108029870103101669499751687963633260767369578448210831818116001894967271802055455641284286248739027832013674822365633279249106134466478440111941473219304133036065340216447707166778715596928954556157909767975467349057404456934359120482864740807278119703318652761489952081108985269233942800543773506328136841257698821718036964966097941826437306212782085844032322398001874939116586236587050562295720490745732692633327034318479475243357479225284664798175139401366817400229026480585674468444833798391019737894940321280232791031329130696500440753845732794597706580312551041366475479529032261127108207508141335344191922431474233830626223273625529514854721725506150735038641991186549419782468972765508506623440355717261832756480814376942093423391039666920485765468550674145378352038719353240618492418238662856326893350491238174857176707214144077175747592595407944255767485085397961019257325702596289680973628669827949389707987020772420391690759056468084598591691461251136592332651197877348477908468833938770578632856256442070799248526930338030252294648204253035108674123208902544228377822935170161840961990892574674353035166580552820143619637575044696559720782768624312114445950592831262440074208638856371784034996066157305711553089739027103116735428081326160508641488961127420947152561336182006936438970803138861450922585730973912077961359839587760970164619301859291177317155845567381330851599018771785942347361428012870479389712666796609029147307912873786570945135543622711687811840190374924241144769945560430855401550021178809822588699276050906814998673167418060511204439410612599943618218177483976426316553832849735960284468596444421050461346115969794800393186922833177176190529935175690743519268621564799678239222121735414341422670531114975799039342030740187710933671910247837749066933809636719557940115451728549998536428848669439114748063454937871915806514333107725151626404897549469535699159918538942954498926966568134606346244610862253732456557644051747178722731238231412095416402583181262745296379972449185203263312659987540938082345270522885245072253277978901275391229999022240217934766374184728103040060689395096231393884842224683260369994284427946661566162816328173913458178980267030549356316027780464721259033567714199173295425738135003939261472669779584086864154674192557988272602825221594582143758541260183300615643813525797984017941946077819073991002728311720418147522154184409425015448264982967211106161321998935864139786477498558062863861668025903945820336273669034752039590579768131342929338426983548432321655067704061771421934566140213584560161678981359690092099334800205578777792218887495470683529710834498898745201832904881420208899374395726282894616883799616940736146861995571519007699747635005811338021578974972241119640598310106594419935295806349440600610849433839225455333015712235152535884358475754425954156362659098411269479174889962020760904572616483794965009250860679715485914941370915476450399390876301530361353921988920110950335400286107833599506097449331895818983847054074144952236041490918219572863195887201487237206391802976465121854316455665058036562764800228733636916405151283766855913665880788872780434537872001294367730949048657398032225713326239221267767080443672425345268311827532876045497873961554247733328487608566674158653630426925680974276263113659683539003835157193579625391811776153647681356247691813481338314205563379209507736324148710649713670060318384586982641727400289419899611625937449700231611315916152579659748979102971842801786250765040380379788383801366215164054756060577218333164060860194378874932698030142057773473971170633656995127843141640227917733985799929934204638287555262482462736995782180349373375518569322445030303724436301489242502295468310070603297479764217061690092114700163782018166968703996710782632301933136376238683283241517955815684112272112156305451083601069572322574971317509022830082536433523760511132116555478610600128304499444049620797756731424776224735046628838470911603985858289107739942279550874844442270899092727883976739011236711488901999503146770155636444823467129419958191059578969571744393067708170132407038612704356770281809338807160511077348804835456833448855794331519296590322272252030296003247251074133300811893837194289886452966219569065944315079258236951291224163757996374426403997760064878713580312672538415108153235250360074576688164125294042650635442186354263468695384951562516582074526748332188735087522103058098336926850418336884753777510945930757452579230694431800042781663812276085436518046211825265702264555393837645938160106431791605306936328927806582858673569595134417987482817744938528178483211613969425476364177410286780755348788368428211286185530256416264605719651382730331558588086631096025421780910016625585371340325396333823139104795053654250355276009528986468164438381588957468157000702560430255026682317877485749426746717229138367680002223390300310899002880361749054097318173657045546963348429403490483075274734412351592729463196954088803787291820048756157248665039955539910993432463045296594207460791329562692578440317888127742125897499724557549964467963273893003773768708003255548257172707664748557389692196893862734607993387711716167815016997568646273737283550373817444556765445632656814713100257436927463377271712421134137855304171209350594414617751421618872183462903636681476309579093737023175048268815475745574574976321640524407593807124064274362901115584548411867602128146648310705677857580911797221746424018186072297081060056744471585797853437883971929680045425997059866763290250394716255848470649773550542273730938417752817088832661158297894081478197384698542302229303647090763362583659647525124563966349572604348691193281721631439349165599676361189903050771866627849147446051919698862256544070937838774591561779101234764165709720460880534783610565781535387126169741262442767234023997656604117100260030695588152521168406108680104920307781354287932785456063138037695684053375984098018970553344652299016539638505579438244126946747333354697488215826769878379550724585224687202883168392647458821944565026454717298431885828912104357265878215392426961788195103111056647222238572059687104185303077080146149390844961257330683492358367566199679828206845880899073435210297043308926144809078410489967695034995625285069281243222083638400448252471191468507865859141586906555584063862141840059835127892425638202125065005749146467188280761729890501864843864626008664359619744263910282373824304538000581334312778273623997344104187166590227620381712734487302909959741260156837365253437894517837756422275809600132965835004335354020317083913147462074972209479687748212023363303538194627717118403034075148731874162060955231686573804179041095780719806441179034379811720327365337328516759593408802406892119921419814657925919045689844317129051247740920500948113988231328916185722515474336149198261614124542645654790824634379762339327845986390290792578177770655618050078663101861191699440007884384424645427412039086233864282700786684750000724919870616071324763757177345845092767644709097966661439636430834018202278729842124991085889673627708008215236295767841529907699594542655976909152636286899196768804998082555838545410587912097709451124175388139850931617908202763380841558670983566970356470646411278949862399713326489917237158358463188717184061531210852391384490722680764463736274501279206104540105604067087474837620752438338004933130917142608008327320397358525273601892574857939790272467562016859281912645004645160629166593956381718277138245233228062976842408987497681531015955931061338834505165719453113042037569454535259448063668320778805412393696618068471991296229608412383087988699375191090848757825962376171264001307967528832427006491363024698596705737659834423149047685182802517774750351055056237167348774932303865227368178395016885269265562720549984010616123802776797969730778409874346895687525885045978954887646909009021633382901716598539154590468170947628626285225742314711694226581700685266019086262478078121554595924583321373324561906260233664603672008613878115690654826304548127945666993353903299961743496820160746078532326703085119722675258613658614123816758678073197060720648956400910664078439773134947662765538463416627517992219213775933042881407644583730126670265352768163079368489463686452282971364610208615846680420707027957855948140490878100148073447154124053184538837754803806710935761182748282129783274908897495061856107387631636272789221002251663994273084823271704505519295766014122227629254040620361424379371372486167558494655636154827114551302182332371127763618655165431907475729492387197287439635286176180013082837389925382347265160256709008133035779364599235257485827444020898198234650414385745434087497048562390990425543388007808730238650001326736079904636403689338339123229762755201725330443345060920739040468894764640721161853632889269379657425538403459148739379245500809199260359024165432948986764485206945632909369684564850523284751858642418296666635853923109567909199569470556776190871698997647463803943112507435474828515748224294342042748938758609542241895586417454053318209923820910314277459868381223606143214086485504170774670858055426606003978930159842379089293084479831775058387235720322659572566405818836149535285087927055532817381249766123021550890573246007263604611466453756399610007082711865062900614303070385729275134122584204689741102494966121648546437919580300385139867161254469782556953679043835717825152702375604902908431240026875539942523606829892465306547294364494528051181226223540782963715836935527367193748136514077331714799600810266352459974780853971237220050620651887688510859435761862818860920187610199414306008305277676278625356614100279074462693883567065404311076739973960165200653426524511274323685826632733748802749657220137138643506808870823698412937241629282300139792641014471055732868795009332741211254686549445829858248667083521065757149639406851008244811309743210098107027693097952102349998603914534302810069007709088682689680090955640161837525143516772887732377425833548578998212900730198909625740556977436947626296279502876340465262955546453755389913961709722487334930096027232054924057091794170208057660789238605969202787280202161362082056802949129492415635066819055189043575192780721211208597183048806470355839316619270560457813779641516844641422499161444400359276032386326188426714578802395053350074420304241931517099194577272745845070874716698821298100312921546812887872604589433687957097005482558102191284344588768428500146006231165269998360562339695145740600693397177152938112547930218576783551888452195659738920710616677699699413573127046676701799162494855597287922929609629256190323567537991000268577935478120444785651159516721736772784725247474318505554286001940454511991767403670986649483186791541227913888076085352056857008976589726557038907661032055214047193276899240967672708051879651790121599906895802544030877273217442998938391277881688804637981282277871467683086661981269515990125193984838943606834936125705803935669293528534179474119845320733893712139040883352903748070943382789357960175661098451999744286739492226169694112146267212943005827381397096916508587261764549643643716016192246518895891926226202148828847286681139325885949675694090059229824691562975608153571550784741181752348756856470104451379587416595958011802894013064846674084804668838312726708464129318630846084032855451304346944698300309409947510432001492609885602292229636426406728818826273156446414278206927493003202664595971771239432592363038446859634622194432522417043616276868922095585312593779528285835238496876553570232337799933088836738223950309625435290969602840248691505218101573138702776868797541589264915856214535227349993807339102251172568331881443853968361767807391042831093596191604571054217809830541813125226076815966779941065641231249064380472484057167366093275359493999093418982385349273856312269676621595375544327903991360985043131555483851589868737551122595556565392089883719305650835591577800523678119029985302133312969749080960992978768848124697757642197180932052848027781074734797158357145663125950794864341642858443875017923179353747305397750583052145891639035727729323616729396448394639935417657221458721497283634271086618410413430927891513967197690174800581026393256329963281678227043372320938163028497308286859549877696007638966622353917265122867753211241979240671338332364409489467406518897631065391362476536840823691811055282199427050014892293986492837672324643981653889052809506714952767391964854025042825178229261647228318562418238246816486235374718289805576217470168739534119512241925190328306882363971211244057993733397683892046952299018863814116560442463569803925125644324044551865313930113039583880885120561762340829971721414376145975869198940817435729770964148505358837711338779430665689176495882824178217124875120574976106325215013828402542679168776461675068903242137417100111876209223411907813023337697951332340569499787882704249001800235951174736655340530268941475027303912281371716172634736437125191652254412657714124435004167895812067892774549502402609270187254298925643946570848172530433565933103508575518493455763998585549403817718284893664879044004815679857952880985511194668295716362406426774626860218703904645673924543947422271860553378760853417323971363827293242034434690608637416535499464851636787298097542104579420336108543984362692672888062330567188867855374983346722305827669423298956687721754782003748176915617594817352892612772602698309004282500502465212737476019514910988292710148866298204913359745069141623474418418154902104499256747707394363611353838385800893173202234929822448996377669937757402715085527905223881811829193677524741675473380314266586982172475960607658359636005907228623949558828809022455584573606250535399536904487924886775643843532162215701582722729520885869238675022545806821801899043697201130661766272772207965079605680854312774437221637893961966038761902456333603613496578831743308889934688149253054435898330446489943652843536011266617205334554220918554967218989052201666277775951424512109182166035138766009609574909644357790725777211616672335027398521915769055188143056718456385220740382388569935129410875123235358777375042261507651738636715834015408480179493239568126685942393108153581323273569848028668960433137283375947628043642622284840447605097862135982211875828936786893462436959496429846627680694525401065278857165909912530013406529664009544365823910091959735464417280699360566359573966218781035260307185172108829803171696780613515342944360975237275364939367151945203383554593030697983758657514882363200564118066322999044977489175857501953319526673663029861530046295548892493788911989251633420426219488823980688997032265896147221256785841965404090986478982160748178308537279967635069919645396262433272376298729082238205025670314409663307048010295060094502131703122893125443668994077316737144470153975312349474459714529907631089058816475415373248708791267373625702198998947242846979276120756456555712406473104077364100174632902983339525164465506080165565844066481223428543873000609863869975750578725088308070078823581296005598940838130482402682313117466848777129618756554429428254366662731252797132182846568663752348426736680754855643809256127528591739331960194167484186020928822717016909604233003400392794096373180091950259487299430131396743234964160421629516250714281200241736127375611455783778362700741595442843338320004993729929331027916449973443300578347308793260322143427081683668304945508307122187822877714326038629788422934684089677662541934225946418586978757069418842516369211205055079639930947590295729203990820691446733143914150257362940187678914829978015142065835572696246136212056823869838022173803624159970273270950339633577463924458657164626432887909565469092935831257685159663817970298866510615035609745154495462173653120482676858192887594593291431014976198145928086871381363605223476494971831002095434408520010576739265574849295498920311631292494666856863436959132169175586125073810717194591086332556093737889859933666405569585010504037716406185192603743075155456236351334487634928819137568590325742469270088920590712744220128397812977963131287093380131159258043088570269469799743572481028170583625956887356235648685184906661255434671194122481629558716716735873288577005408256920627163349248783209443336473492654718388903724988792723490894308140203406877268226391424218718502345730623468338959435914860136335239113328250444533413899584953915033678160246839026267524964623186370295578755431940791304905849074035497566443478409683899694836536102732468377861469225402676478099096842423819745839357884456251213314412588785126099893653533688259640564695865415163806339582407573417494666728982644268108124846430137715240355475039742787410657717087438673105284798914257280303932191049198874833774112867401735196419599518449465870966398569736001210506485320321459769614896497550716047325998823810879878131614077966398986253133663558898918222094325142790560925685726676697802227913054622362178176432259667388226649747657488943861658010270323333707964727606966556609472662131390616866388097147729691885028704234945340721906690141817051918047963444798655644671903245155073841899210216416993709966176171759016406117266259057022882299756183759264659676710567617390232238573370081760242732490439439340611627445019519297165000155678962400297431005632932133280889261559141669761128916254339461336969460278879462174560290193420744028404961363052621275172975166347727929265415764664033983293673380347775494562830596686982787386143659381766054311160169511571220383038463940259525115095921900107262324559884320085350130946968335424248841264117915977009709147774792661994220362661266987669421010493775230771193101522826430517729382328715065522796591885310614712364925945574370934453047148129893551842678525674426436380237222163844775545269229879839137892254425939642531941432504840078965723591670247811893035023554808821758180003364730563271142012139352223541868126100286160650886984457743839479786876459176779437809699842955870073842852526571766974836044341850672536407823298016367224546207254832203848476447950403353473389305845596811052766008542337074143356917014562755196508144495486014755798547705778266191565182471281970028709168031549260245966265737770180929984350141955821479453182952634552180486560557302195497108997549707461041432056796771467444118935708127108382661875709466586307902791694872192511269695206021555904002454006077953192638272899067780270835559391729939616053701485311556777540470942803894268843086252520422307807400606812881708228040757095584023937399438972763430645927907378347511119708833270616323543435964955712060119022014498198662420852985132450435560999980617769914839228720345672476894253310664529530905204887868039877898720765810674217772768066061784661677070058482069139254946681573390532782547568631666714838943878009500883551676737078106170914168716909328734574257463494609314487465979078401722797478207829563858063749737005577178148007042689488861741127612349005375021110468361939457335562792676155696831839459520005129793354606631568117208906509612490484975371866318467676828115246985614880935398563225307301042468461268415282168573536448828888571497583680005875834219996293413355446460267797749003624290292698321080898814252801248451001711915948215356217555283939965679483982780001251889838032383051414904225522925927423387703834346443848304267732412398429838253042379840766706074723573893745947505687235532903713885943363041446909856370269173960221796846986316261068481838091479923970370685369085413173441879993131218081262260050789146917538165230617567822899808234938951272111333663301368758392418979753144899313090553602228612823267785815582374406988483563414117741169609757012737684209228882673235727394810215411131842281578410651752624991181656468043104468395308875952945938443503556782419431645471842678826784875230822453143000576156903043095018527481030305354506329005785538049043830960057320120911682305628330293067950632896561713673665095245839389503895930292363738124361384202114796023364110206475168776469255930169706107040111795918647130943224331432460014101984979471721128608204487271655582196378642466733084258636325207576009099077192059449454733965915471883830014808657938354421093085319928280804450534440270950417970456518959327533653909136039051618075997740805484336269684661230762977445613875295213617985669969043093897620576284339606461920348447618244525050081296630496451909663976936060485048394043176448787657017830418043806500113720876269980029006950643389968547902471257229894261030173310603733161411203964707639405370296554920917902418527933774942481763148244480336304332250454800554599590771647836069829086637029848580347151918723681911436986598713985085623059709128696497997415593991332645565684123207392318915902005000888613128275380846424892191440896269651900511539972765858658902467043894021940659600570293483049809025584887575547894131980472250932126107784239407485425247011614921448555552473787585802993696621579696002808647415304155228934314505319517231519145036388037398047311090256724216599915481620236391408043101860411115189611348240100359974197669531148867375496945581071375986035940620455905086778011689977600537248436351549855276459033726781099571427985085950718254027400944855104554385457859847328033342666110062670218641921250315458124779083359272544429578426544841783811572759583197514800370233225924613048312066707312921186299920281958633393046826945185984979468275098130850691405553963698489072933035383763968379061469772887629854185079097796132762705801694092252652878590185977601176158945389136825748482845651875614998927868495456407097039214378791432729833833406650643296763769930541995728398010479458608354809327446472355396834162354564958607345508810958621698615085874200459227075477503195710931226737283680272910611819424875901015512661120314430385957745512349408477907863279405799021465041643073197481981207555096031119069158348360364214444042943541725510655532751410624108788507443811391730006031393062617807827452373678958164949669149556612015158529711067098951388327365481178252457754804166194963061075642371904466885527667927095171627726552407004394856993436162860934033853075172933291596340268803971634513458571617998337546198206852741663544750943240386437576010522822759076811509879906807167127340984287527832117512007974160806908642422263660582246658077544430838139850875775833107584961241042951072960750093731455737980560092801048674568454985859534177406830420795815761833861362269873711732210128485735725200726620273686940596989336334652000077311345130089072166719479690741410147123106870943995806307376815862684130018393210496357114848818610119764847744251417152389470308122206206478881049565173267282955465898057063297041148058068959291466809367399561591501740962926614434784958479231832145348015588824107196415876325404110455893354042947725253637339038156268513743264792578659381768101716817918199402670040347546273425408248074240822862364115055575765339263852363778573119459198244140647436742822102679701957762730042890282990383357528508242641636011371886182704328538959536137923886650873027907841021105384336814666292177705224947756796386454503453945448817166988876266817352706455370560026774337691797077403697471617311188425577015427015142814797414706224985985156470267582494693525605241386072871624626003669826388182527527993006830818430802079957907363725338194745511046636586789735304825183827367699463234811236134710590247217536521168872095662089311892993121020097947029926280269508148892095502807356148319453161523214849491050144430755164069072199957466736050723882974148277781808749493287152892247550281224506212941455235980067568958198270936876458868584589615604372246290072113831639343759713272198518245729629093833466997582673969600653306866270359050488778398302677555242817172803170679905480245090969545047906466689954257476445480514778521274716665753476622779583653839833226989549214620119995619333142156711762965356292716341549208790715149757253547940564714051938792341846612437550651450055026948329895249076588178547716128264528993190645052678404696291456381075630338655864621881037189662537351279355580756808320155958931885054817428752219630746680846071170110795707349968461913409731270532768390184378979896088965035615081648035544675669550373970900228307107129197802952933604124120689329766790763801602796524817019117425673425197772472488538389686498903366269918189294258032940626658913837413081461500849036459443225619628139948909479668865396827223128516065136681100850309801040840784319363420384474249482765080550890622453565118568281982452716847420692002776837121195656531781528776085760155622673985521839121542317907299039182169201968750728949326035884492622915121596595737554483872950711623984016600901226201063937109065847318167860793602480501129712596192140170071746117941364545496430996917705669664162982557892064688296219237959628863637701729157376992884907087141821129422819229865363562134779021353303282922080937893452862690042892953647126433169518894074876244472305738987728154997528960027571306955786627503609026712069805352313430521130176071625644951222793580497594163037364299935955810810836146863670278375168336792908192424436765173137227409916205728783478411982569185946898691026762508032231951183301551448060907013967845123165559451319696389673948779014758966150365815972755707713938487523848595905540111066551286366188578515436119961578192702480749120673881355840162969991428530100769805367782543685916319235497542006665776850964529804839108607851520537340465244668410995223719298872949842508171936946636622945423725023892081972049941112546204874945122491045683327235579995985037964427912690403105023522953663665511778647801509599883650997826595048865674664567220279799495705605392481076792489208426123333250715340303267516647688179318399056937749107166494369110259680469278554791711781479881511384445293973621785091825640218834365772958920707556739828672565606701921097897496866350771785818257992547190837968569849865934532142135010500898595556586621389155469442312875948978998943290889642675227411985567171034707778963010958688605265375165612182886036102070202953159202954639467174025638104305615878118100691231415100402656885613092972084158528472535332526166067693329592771098709193290721756170721252875083235622853860585071289016433209388856954528162083724116257056528119415270520048507703473718140622709851458653190771635041139208516449628449095504287927438984969352808103023525717986032128030927219869134419567250165999047209771843140026257541753523442138424804966605708845347460684512300445223435226201638857230622799899739017422504541209220686772310084999707354056274886157414686788897124017939760522915468025389388596801896372292155741877943204450101020785534768088579460713748667290651732266677535062083467860359463377442072154590004386465264466426581828137584267254507158683350504251352513636925293267911228917889201546785253055789542317056295417975575099707527761991064009222638602355273348409731116580367613003290796948720456087555189289153486703972459765942029389239456667779160750789875314924028753159376435557925821127893735345561614895437850293355783768977444886834675872547651709369746374560038965474723045108213275016273692148686617598500070500289972951660871083257979908796599821295335505387205296045329828177901685739381704430474921179870231658156492709052746093015962598165245351150933719923213385667350637197265002758271751215342169516220975194783720490138936001869204398294406552470195830219202559195700371125936439367049861319680639536608371294566636804456309366355274293776777300320800636126227888698354375553729153439027691824243940000917308610518631345076959914252980332284303575702669849605837948211105817486522523561496643316446946748848835265449977558232139828570239925872943397653848887615844878090782420645801843308969042539825437536100895830546040135746047851961690048005720999981744537601513113035792380431385729770267260185413858518945600788148012413637116033493166254876979562561060139288415781607310915038528116439832284588424853402955719456812940373821081914229933275310963053137124901816601777724374026435770766926820809728474683966561099358181979861736091573995592808441930822101243757616717909328121754784586077359772034142904830052683262198292367767811368601096394412394153907162237496908793371566032334124790463134172812255518111486898525344058120513900962893874343218381870590198699788615191551018444456997222688540628862798539225451428402231552298578508681851351025892954747190583997076712182311642266511519372941089287467121981240039198713871429746470799774936540105625075632846110993816869721662242364983272198630347546758634550827212127274842110012728766569349863021675088159654948442659122981198323849050187007538090456441469796342797623024875616023955375348088931484720032282404160235201707107132734070061451345937240420821790191486948302999337800862119796564481333669492023633461591076023684538571826290607462814754385852769271845815717098553025313173444302597602690964073087965794572761441987834502443096922997869511658008124027709151710103614266171865405992571125735992043717434721135594608473827205650056171125870841543478703677503503727853698716794920563976449770915899478940129072720528394428291947967456158492961916362060338372233657128893345239506756096173360450028120595913786258885176570100528365242292971746797458988378557655935176287847298104834629036506399112414368142807191692238314262952532687080926790133647511392876092375230810276883545104366816539769448501410108919709152831927359682803505035008863837525069486464554364248861145068693487216660001382363392185025156217218263917654841814784827409471074088758753081310580824130924186895508872154487039457568366521409335169637245370539996309076867221350617718771757640460577184755628638530112910941619652691443864220201236401916180221147896989361561030414442799591241803509040953916782712152737171229210895710100874495681675221854538369495347518586595913820348193754219416039510559855647697218277313331159349062432836566512167968895643796491699574418519901861043167961434479009660918798762301509531873111318275481039472181968773539641011254761491537280084702527551414118457128389659984430447821540515731074912435479787437089314601115291548613175405922965283681172208891759173541586160974468205678668132109070779452064030005811498082786277441467356638341616307507879126072762057393863568283753094980928541481191181448302366144765359406056356367737940205718053795467682870729394497574038111477596408028443766372999599836085152992020839076615265844475147725394154237878199805607288364276819079756734571159913110021332909522444967389972500230129317570022339084899065040902354839210291777945425579073281566056802041470189146830605773747268248507323750057413541320557856305869209284588156622048159207676547102351065616574762553758528073147421225142305233077323649375049988007096725575148068101831365739371612157635187719822541042681011905303400034626705342344426541592164211131492992864348746563655116670738851577401077142053380237443154059073349534790221763286550033650339019966742271224806186838381241712842520379861689123244352077352236959686020212441504297309593719233788261398832070730955088615793620427905188270716788066949219652813298447709662970045433029931856849810653940706346338172769930604529487433361474056387535302780599542265348510779285807166021927775633580253653752873706893098561898599709767116519955626842703113208891658164319645713460278771601322012022728808675957044265107858213637516312800699673436236405724176367498382151392941120042656534627780568599478596147066509258193295775692214544720848049447893716300412262415600878034435956855609788978356302416031879760053602553448348791376596690093562722673032560212591484213962281553349692454425258933956923549380607387874695911865450026377119574873698876397728734772166973445851601304389842915381239204768728948243858232401680584487005304342059745653825213506651575952041277306972858140117506560516741834261670950638616518521218561623538912234168103535303829614175142651564708720382629094558130291345406255283267881690812022344198686489518081782497162056617677986194650107322854209001727700490730596468399579259756728239095122208032052122535801750457331137932078003473533197258882279660587423294451365480088972474197948156845866432090576102237529996860988437958684718983487800750660171267741610577379830395932941706990727757461825158560418442356691060058279578791161548812319498215349133285451477000664614446264501220036172387555066309506707756786752522139525063456142984719645061169841947883216640687178248141011218485868529596729525739462122256529289125667440712652870999187127496183177737152499565405155201642263629782511807762640797353457059710355983797668383702077071302471387606057788022801298240382658215021986177732529830045101483092612955241595654025501789965749680543687657954414352092474406385483883499151681946042574275467722788235564523238926264849891849022229236224652552074866917895643730470545057939094470191423003214401501030012513708427588153000776316533255191629955543200906533050069354522110085656468472959914536981483365500522585003156848400675503722258703276664000167926431875293633255632752723145188387236361998190707951408193070887234681451550175184360070482201633123457693167198361942705905796297820080951088273859138760205156162613411603763700168554526679727385385737995738932381035757958175665782630738905837654116333332370338252593962891101865640655175343313081290012294338728479559954966491499104211351234996790974968634807754108775607065538532609115304936845025718709362603667002229235933728850436264951010254720606260194797022092114394719698669624345275219601804443877355991519103331730364330331409039599268074738458099430623851480112721012509152553345394853793963511254293414047164775532774322671909401585049988311641558681401743282734706977623444420249097807089586212844129857201306141510085579657995768534977935058506609230040875976029702739715272065404141651038952182166382962899203685631193080434855448409998525643690502806406487876014106726004358651449663732216491874871030138909087613984981283869018529052720265566859020557944621165508720488313614467169158200465716333935993648570022113719493663869529517241129109892244988751686047287535567019676651783342088832340246842865216764150001489056783281822442294145817987420956897246944184305467928939157662760219068550704343755899921014241857541955935686840529183941162655502607658422596344572082093861079532664482661914845762782289233616898976009872528469328536098189051229062310452488836591367081843069323300073130760596514397353894477859541808220866352789072907104217096238807294486862086479967907137370268644066528134184681777340826320269807726279425817789653239178326373556143906841471525756120720965466742964953610332693923493822465445647372154973146330829904052843998002924541503887169366073039837518075759499108282957062491607972058515760329487917262190136869184272531875634714143213024645163699821637553278377721343341939988870713830991411388521814395482603872818200455515384081787163271822114180973290666734579753373497860249629648772441159580823126653247181225379382296537649913435465987318114040421979347227576894833993861693704963347543079950671964331154728730449812343476027707492743794120339252884150397520236779002596387851223512320906803401051611731783480971279112708812495706982335483591322773114434329294084412801069081958054837007767311142821550246103663112935820597125472225759118614364683822310543432997600882711889927896336408615954726894179260966328195003224193775150016387014673215021095950396697110768705081652863031719001592517022617120737972345282859022733320959650535423920526812914183908860932581503042255041609144912227662877233952896577735094480957061627090605304410158755241965903096418190992121412113223353415237309820298695829579072208350791507789400491756163060601834271738685053435388041425779425923513985599940485161576942191850189080183444453777090721831738570486551336271169187627724857386011783641721599492285709392117667587381347886546863049966810632630899705778424105141414286593832229830808565656214479390012610586692190048149506958924158020311175543031045887295564809565610975453157836874169879439099436809377188179784217594913692168560764239780721819925557732133832393863474380388046774770223531362014207005568835688333650505359819037080468203076227667914129886325325678162251614560234607808750903063898894995673149970939249039316112497764060691444038954449151547928394716810266763653634168234876006596395627804757964405806323568437509013941215965301899124949474852218985473151406700958158653977146290483340302032767020723145313759610463646707179461737079409417195513685323315312959137695792095165743964273774977382272806115343248348110369308820700292831662783961549724862592343868239222100032235824082233582760890243727727648159403540584472101114460071734583493734849631154035521848797538301592448485270035776344872108226921422020080068007743238419130226285216577489453301287650238287439784011933258412760113478949521560211953438232181448754877556529927239354414093872926813708190735742939070742269284073260646320759819459762939362612386316474021419921367231290939418012079973823566829382052103767172108170654820212569931105643937304136023005913104393565189250497947951821635800590777640367041443223138453020455404906057754705372106021945417443001391437948688628322585887856423053629107895161104843845380617200809200233740609140034988754183852115076724494462165974359921791127798527552770476949493101497417896518257438012246088275498006154908865502148650757449844179749941225748894070410019993677127105381810288284223350533048140372650301822533502052709722593413993575677024696244625185166207581586761613894116178963171259159278267842682121965402964350400546087590723393926215379031765566528975932678235796365449481015180056885923156979408913510936150672438316160276296830504989712131107115672409448464132079336156141783156041790891763404877478416062144572833972884235405738173363216580951854792963412740292452943833824042909327011931286596605556809166939585367172159684214951187252486700618348214676473360799043683587916784454889990895899690317498772334610014032758934849221642925505644007453791269855676727155815155574796837035635755640557864571155952020022051966857535653122659045695820559269362398839501440134601720490652657161370432035039303204429631304947164250945539080804429785434909011184114695117587987988948663399044917088885937083476014919121953880722693691771228245789471041992873592014133233809931455145537867365882303962592386996838896514385394234776895186245169296832956153063228557487612844477792289501618809573763179353203107042554552381119571591955963898871948481505013022118779578471729797866647928224556854722393730209820137303071505983085096997715842710532841455491700559980546794155324698168208028300210300284662964574928155492208097712799461138488139780203550042310659573369444922647768485851010149005718031854827113675618786605779601448620372093051278109924424507512743513757288705943113950283263071346210425530645307813093190248318596055076527224637430182900811091609255577583818999011555468767331598968909289028570311200812441183014498182327054675108737840442654254308863007796326858059158081485950185811956250639083677035386026710383720902846617304024926351992708710175124598260236028897298879996068871204289560618699294826804578422640187130905237313083149442705660895070586156811737711113466482331055041132160070242358670777914612260879626355970092794934845524888454337702606736323382267659207116963061750657012093897069860745897539377015063815003256577259855741001493883121445022108299133612985188496995956785166189908102574268040005555632776043631226955514030872533642988094288024074968552081487465849014518092942636314246707678773594378561198745894752412118143873865556408809530287186698470087417102991132356764305815313766390038977112640687095661950989802379894524419248318268016603355557924518818047946410940834963535544516473666493061601817503389092093591348421440825534037399824276900764809927714450291839458259207576088854834749807929970708012533932003218103575316611833148824046852663851425983724303263579439541322299623311482913972294156345492595798108953016738676203758886885753422141188502634688229900986815089292596531110275149615535460430426105696840335114326159536325127923792442556725931601416316608222720275916718332171327713732941143380682638839489746599487576741300426376517287021308911835574399175078892836457032807667239188297028156151966092493891910767578067090781905185325283708202383671769805567041499851442026266525807655186785444585264756161064190389441180994596116569041979743150162450935928535188901770543557322961221992051273268593389052899384127143958323089767242643529191997954391495880235719666985799600162791493673313959206439652015653470062598337324502218516784755115321177606278599046463578864930831099990917968269799084965094187644131576275785532356908894411836930678027162360850853730590274848723930247634680803853200085009169540030016968749259819018565160880458058438725853967665586744132814952372248668372590046145537075428908762638560986780808751786883529070983867282285232872687583686750102001134670859486921833382468643735216032585224226891461532030062486247463791082171615055689293868611122241648983856991062379373290580527337911089312477074104656250223779949764810180442236045481285429913052623592441989615339550636379735269093242083786161806314843245607774295521449544654858585014673006581329263688736952968546617881462399676395688268138278687426231300922465383742988989121720591602892388838927222862486839874934393655983695753801970182465910571198325399884431963698602628672856837504478146037796386407306744819295204592516132865299659376420371060161674020982316769298037804297174171406777164975923594808032757647130820652734110277805924014073256195852517882499890332712287248032091987702744140031303076280439257421342957987462931542354182783274757639794860473585613500570456109782523371130431019032573325102095459571464526857957610387057982170301882179797541186421388734175968000122473791588933645704193955049675638039806737870899554971332167288778177146300134909294803233186042598881695478865061896501942386033017650903387604355708680476244600741702236706961451788674501882492888896842525880188313387433186635754250343818250444516523845486211313112284789685636915284928320650592174926126508694676603520712965524874019475607538184313202983398344977886694018941503960844767839734387821639814703797202426063460305164500639298382554848564639860291137872288489377783434763660840079885676045274986897965712936285548910702906327809166379188850049258416271529772094937107141967766228301955203489334633422928563590926653941106645854019124344712234790111520347239909442854865953759816580303900988110237228444789068741772357071410903810048020057347213513998550847891951935847174494641513515484166315991419120186015684645267268192159561035691313116001840154152467687907096767696010176772046975402208627419116662667985697750073929991501213002001956264084677544301007470299345309295362308454447495035007179207684129956747378616522424776132801183266120889302402974002438588386723127732836938449945794059402422028896112982311104472149381656199289838688049840833762148641371806367257447718531554899512149134554472874511720387239880882696996474784135754063483145240175087629744929994010799033463690362205008339325169680827020789817957785325426111384304863400687963331900868559833034344731848511444489133364655795092176327444326109141402027489952519372063993523166108550705920223926282394077334870305789136496077000810769717377243965066724754012490521179561558310792262932687146186918432036289180698896506555001900189809830497080314303438997513204508566147803194213407976831051730277914557751089670732514629781449208356857742270256908362686749271746556847384207995397819395839475871395983680158159262174576606537757212022908387187324874505395308806087260368420467454873752160307727376564177364547272624493495082906723705951773836292839533614248361483680217452578836571507690978976028705218918358379612358392054467458948249893211573826190523976023639750583003113063253157776343926738695777188858095843582683988209528101240424504026090494329510141474645506985473659331363788044020217274948294662176739693396304541682807725162686926582754499529645143387599856704052606117777028293261260832567541049199083897604382437506150873298256034928500437949076801236948898140474476424932288135071247935693330067196533482907826355513596266644002835418505341259767047339689249450412372234080029751747200020064239076856946454057803979995231900113745862454708189817126541095774282711046611222513462664089641730001127861493277093759256992985306820725167772193554772744479146548928538624930258808315147224322512665673434539021834454224572060586078363753305889741052842890192301493297430380331966729123765973087158368946508209446107288127862621371271730091141060359073163317613120113510293607061421205081482367995828684458540833524195638189228133904409022416637962299588964712566390569423081065176375969276513394664316243442829869592471985135803948485026252736328613459960432027242473000754597538927343049663833761474904086756330495258726311474706394353764531859364396648708567377114806149025768610305850888807914912897875162410029024744729898855897443117814899161624074328732529409190714282838797601402947209805709358249975863952311934994946942763980259865181793536372515929759826119006542328362925364728350518495880358605554781418017409563321212946992203775879285091806682212252796183399015585855156371163893530209454874775104223787275242598336640283465238468028598694895456803613999616414867311177523216267420928386939030191744026462288469445334885140422892631556081939817388305759894283544427885790638136606510836235983343521557480695372349340741935464600458402744862904612929919609946527201138919908951496769719544141117588332053654673560720489912175605276386743854566332210092721375939186543982144065900465623148231351579717377944344160902710763942390501150912301814393845007014457180407869113627865133154663981648498456849494723087484128526558084266450023763516359336559524901282193376894093055517165228368573345177967573353552737660097221261436388326183449003661030946434644567942056416955006418174145290039689465327069310561386849793199765005750541840492886471778518148427802289453521578390149206794132496840323730020715030248427592983282631614965542829895496594991720907395900358409582265858502676927342655762006737261647121824478581051063665942039519894508788014342425094705204787590560106622285468353879507964005896316235218394087571058006514053049339386965995571963379452873228242623149315855851860576055233580121791590655958716670562490745461561321117219134522114510295912008073562609566642921906877646711520768315243563121246535706834239779847426045321288221824789119997579943385112984718212912115111812029435772352657102087184196761772604571500782362622367022171831128500810185012301911415032879885010614802077758813951137850255546404207406119988026916647380431158842201414818341569739289256190083470054776695879339458595025308183707495403174872246490256280647382852172200803773239416797724676559782672796000438624218709719807936016391753240560259916907153300296845749798579009650676769008218173297497380847412236664882236049412258220608351819818935453773850715558046697465615108235159569535499928283496272323055215315159472821757536632153637429604468412530593485016025085407605266321181828718607992518489305680847853766761168468380220610606783524077637364846854591798805467647784317677090407553885175369726945127066803095423661335242199215210578660443806460528621489445426304007357659170780858951805301244142836751143207981919901295045259314945678646802590508706307179074097691758675871422028860978377948174248522518887324268177593687860350756410837287853077567144843449779156956804144362575966525111030170466033687816034059521869564722476896338759682594721413015771306270240915753068260752510258795350145364850163418198512753375178049313908436628651117843263683322182970374876579707745681459618093107640599748377372291403043802258048776666598149800174314467179177419696517774762324110507495767068564215603072174923545555275392399867922525144764472106536501344262294007910757304152732992614005164266276821232063094641042938566030216436042344154155963617591003308142962626403206882283821634108330221094953173181601474988666908837662531694934463687212163068821286449416011825008377673441211822618818386321528117136490391555083037607418855300925459141313612238567874066007850789484598610037931721635895122742294115903092938310321957394249324270417055239274427416847016807300784060761991691180725517332113072946381532989946781524768877604155138711861327598745513613481147670844207099955314932936863023667299861632994313305177167811597626237033907466797347248689320079447195335989409743041795102816497888724398656078824694305890267850921380551890117018307405178885828346850740786676953052086095799021789956448608816031044696874107221334557065516919353325674803790088990456077725882967237361501966991645825679723838184468249320408575530142812670450730259871128746473232828023306165926450518338768262141868899344790569056826840076409506718791487815523865890395641273528303653176204290499340152760700169849534797380446433892953409381337338693543609684936982780607976910799333540596430456865845141177883553678457065561018342523760956680050369851002768778186530724015252254091306829691858010015047924465168583554923362101192517893980540275792694825276442430901797256377030960293071528942667657274157632844858830044941065398539225459340247278498004292654513343752922497252138131118138556028282722685624002641471407595355545530910657011025221319398568631439269573684351393987666904715265740795344706643126724385904592393557191712225148305858354234931738311599234545530988218063886651613708093431920931691290647036862585821827230769123527043939691292787760840869679604173975079088351137484019496374904107135480865589036643166525963719159255025468783240316325694535426203198136044917354504688573508401624568230565386007960161425629586644532119445604418907554184636717601858107546399057370826552217260790710933641053260779326208376036957771828140686514184513497258507034734655643006460916911252032930173599716753350086044334042905991169579175471850241532709747452496632809437254409352527340391830425468824660144559394009116805615985879809140791754850769515700144673109265354364286574934072444270866655113342139818528808723084081111472826754469830194156730773437799700393487847181919986102614281782108532368945411032662311600086501626420922748647093286486677312352480036871102974624995085951536331899881890626257754013577297977563059971599499018217473890704842187812338275721098508196878776741453460014514681766736664809701911859626100831710304804695804724855665587218753773441907409815614170156634669200217051183179998950818412456291566124867047617839564919353452193516773522770850730404069296653657632276030109359043010405495245179843973292638942175901179351579373386734751545839012577402263822694074184925329016504423119024482187447582906959662422313812674974266850436474405526465917264112121267046183230922148319159285760612231272106444156573436573507998370690847022142541737220498522420035539163601935607072208568686118373983487264235519153415007764654268940026281555936810104238141749313015649304577363315655821142560549345927409400399026750627800777990017215783274731431079732939386030511772026545841531185106822632520808608376844061423827905594144917655788563742595429870693870218829134455150306877135083151238959957590836608472228177700884230905820195870856934304457229944106059909730133535922174584628072039190874984432720976872352623059904606796737549571234869197160359757282946581926268308662610080690542549950273110882795505806468360475870266620605048760623879679149376360599681099730604223015952843899427591383125220530094448594884982381794190757610093579079807872611625531285399575332988053781877155025252447403882604506677025999137052122103494957868787055765094764144010726033721232582048187420222554221214545450764275222956287708404943175993298599575102868325880219643375725682708284471971946398277159668238417096542355054348256778327595739442231362714335252443599536493948825475647379539557477904069742846003463311582337296598593375067776032726699492870260741202882880740712984342939442573987040124185858755717575189334770921251217792925977100120166623345653368100924813328997536322319289370884765516465651206641679175001239918149846061868627388001668246207050759936842229689388977905336681315771229458137195005015721849062684165744239843807883024368684438952518105642692187149143997357340161918007687594219479407231219646817148250196459731188415526217402259251796309854214289551242681733929594199768529978235387170369516566666705628209396750510918901581522259356154670749367132832410437303336257403294117032678162834904563616379553305906787512137014254557170348187906614545371500743529902822155405421189060267897812686001816547022847823260011787662642363430911965254019349334886475585278497627361454128403911241524763131712430893598912456257539380910612841760787644146831909268875681139862122420207575602111331255243240225426833027975705964908072908099996729357505420019638556218434382650191757843207089154163030796916221465452127350832781539496583808119396212867738232220625505427935023165203815281404865380439889916093369186338416161054753565570371559552933919158478844441291017399906307442675272419247380748956993855511578556181267535253633686363815134428811723194632306527500003464756151847662435174153862248479032766985076768530409370049396148623197705363021723271573163988440673021863678578654579413368745776923807031506154882491475902966260206734049774593849825695226856316817763579429372137203609233539214046772137281941092981625170541494176229715760524550990663492768222897995015480835210239256518800803877524815470601898968285005875573331134253838767185839598949331349860027532133132932255567405071794024462059070921110707975524151384064155727059300164672095911990424847231514157944475386469091116624164237153189167979503757464689668788112115446633937569970179114578629320415524583479011515037245699096098871589261468957321042619893841120133228632522485218642854720820549255022049863672941670270042071607080661924958852559669948962026771979196482442064706818951720169389986555357340101219499417001655427331058695881974829875393378912580149639000033339302381372682597075667990274312118576409965726024980733398566078585651193304254143617806003843754572553450278001287950334742134347202585675133162637434685919758301674209613678534518839781382038640880489305245827088066870574638597630908579828008367986741173016951951649044367849621733833602230853242706853317054782442247299560730540202156272467785344001359933906650700012882769561991104873234164959727628106337245986443558149926846833383176639920164257506425754771082970653777932389154558412678480163542208993946541987176599176228884864314712783484784949436802148587638784244168891376842892300869533264686098530510775859896861625659057310263585184701407048750225685474570326920286900277128657683626222414048599174336218876535328649322313613008522820022339670036482676159569675878215988203426813198371924685104483954693847701254364355618449812888748187209635572052876559371959689910579103780606677874741629940456031870827849154139553441321092449022758914213461921830013974781714333094031415873140922053422259956249414097191930426760018607837771787561712378678075576987084027673893246135243643771771356369759275290690784643098949721213293392583440415296064193752942193482278350994475498582079187109390747181166163813052683098622578020975226732870706419987223270079191017600753862468924178289565252172296756160577293832624135402109917445586273107620555692787636906476941231795821492189560963755829505005575002605858900618905837657124528144793659392299288734453852019460009005370377361816002769287079366540614498911440957901467469625628949156011293450655467688610524941721164606685860827418218540630164062423861734829837153344981359996370301587126009953006942349138586742363553575727194854653793951918542946095341903158558661894653587846770954402523998544690239009771963970991648246492406837572460992717342214929406032631403586741330451344258589922901276639688506136795525732267050378607747997300988926724095267530837111557702114526690799634890446687323432262777440488559782646451013350933351928379795222944847738048228958117486722809019612265115028644866633465174183628938481503204367665703318350739951338388040463546706379996884276941348115296602258235038450889892511464659621133014572299462934137614450623451064079317426811900101938826164908847280927368538408078664728996362012466513647323841585261891426703614198354449635577153812821927876930308329925216675137915533643781163176551625689593748590164051201516957013181136105658730350268106979846960175626433302078355879803057212197415830106894789433337840490535485169818591770188258989074987034363740883205109330047470233199206107599123894526219982262405433397973293825808281475710122888487256776515071879309124328815894605464911102610746507201566236904770839918179235086585107698368176710641508313150530053186565005053051539226162695889989599649183390640221979656762693962800989087957925107599082064009362307819601809381218627629132835671462658805564487507646284336310679069026169225456023094046831703271380284091717735360330196095235651271965991886730202296671177148731886588898135643948371985052806266859573354436230321394999119318696744199636248650565615734222045058875815539021799259860424527012226455604130505819791142340772592421480700466786981407340467485282734684306849451299600404198998593959287746549915395852372675682316595975663508279221343723327550328113055396752766792438535734623156997067937391379893061200161244291800460951587070769909030788973609669348463650517530735305799767466283337337728638664175875066308639683276957336573609233527935054817626740140783445836463933125914577455890125648253196108016156347477477818183246581298569247291833648565283051004064111611101494790113323077745334925585901285383925428359775906013852732793600548758231287448963898701223149906514892958128347182090426919321979946442857668743362297192726746908074245754444127720074197647807022970474116989267305095540329788930851851365434566956054773249357472557281514027532269853015808871236282176256610849857720169012432533830683954721089892206566035323037706163443299043228918973327499240602587677192271322832511382975190556452594229083295492480230881769732158240180818660270545033450231597875873688166386779898880322461137520704040035099500984129702904472075265100538424864727923707051837112941768960193441809810429635454695709845358660097372104127488198258449113577504508726432110127362191565994563069165779133806415363634135962418174571744707778696841226376071234291094168566509443765040596220716590761809411651979823535156764222465315358085554071949145562863178391660824201592761444068689994962314238365274269601118276002048646344793073187790678172313380017569855407627835962713959372428167725433372747546465630708902725058719106920014950968221797485127276731544461677173515466986501307678742322856266107602997508972632003951765991050445918679288036524915755133456432358689039204336183697342688834375824484983056738960335340000070284370080187231555948455894557364140250391254732474520487083420581962845935195559282752187217947218478375806180049883351253459673479141434627102887140282191528498488022775345042645381619525636153280592277776844988691114941468870184788735104364127972833548490750525453786317626491428504141705719658679592616910855661100004177123639850189891663278780743295642764587279284368485475256016260688524454846343118727726581185461468889480503816664235683195122340367663009746647891934911623455879792281582642666355284966171629119553045970593626048681358448745744548163198178057015513330579447410482525076172682826968582475284106659861783483289877569707434939550083471838953960225980643332105571038602519850294411387227663348851041260331113771732118551562504046642360486151800857081988678170142049647287053998094349309898743401170608604750445519953655110517287412189228373882740334016804441506218840773619207723165348678059791318382961900627763588265790937879979295635227313795754062558936152584034067184272477828786752693535157930260664393547976087195427375192151654656122930996704179283083959712870143837412083005862706454496164735564501783988496820303587653710041500156387808213981966742525749007034180481492075516675745768581498847196577078374363159687845495317121806386930199941668068971810749370031831309345519173824398329803763558811557850795567909651496297716377342451039687028013068808852460184101742318501444764705367058456819688597997678869231758193219107201067386417431922346666625170163525329708695459817894212733825963812851845645389683085940061021031971400785069227729440408961034548325728310634680913979690567551363514140819684259528345901277560215926939062243752710877903970205642996771416812883971806083063383739303900972726503224861841550412202223841447772255454683924388367909400958557709378000338381377206592483764559052585839988364002027589295732695213451178870071899150488052274383305128087288359963268448678070123594792099902677047432149120640584385372368046369419434260678663144025192129917310421442580092801014030567041734275259346171751760546763191729460649194006917804870569345953471699956449741310223175961437512722008589354588121041699926461525142463957351703669130207307375185449964679917904784708850214893330799484234778460944278340544724798841826146106616574503011751536329638080511184157230922034221742813888471888477057850232380127266093105657496547624972601343399972133193768721210095996535753862331492606660792578838738032386312521150841072350341560791092787596416643052775107171275370303960480950301918600817676227860105781693182299273364338512282083516541168458092536301994914188983318310600356158809558191303536097566792454406178106307451290560053684239741573776525168945619637664420722563541619052436771899882766875937388711769953109118842063056852508178867698165309582637276790240375397105889523653084310270909116770919691964137804763901860487563845499659807605755959206261618739199145802821853678397217704004003272539671667422147056013510294880722209456240485388267368375556432255750838557627527050784262288164584848674893273081841259347339187243969560187479145134341337828413653044111314802189682916376585312345307032405057172327888298954005024275986220724056335987631992648232095077474068447544886972766766081833879176135565179455650016086139359640368585629362510488377887277396862618924205278037654833878218134270388685601267525406322414553505962929272194534803660790353582999426843366650746392426481824184907546855764146100102932655774069783280075859071819938742685356866953799096867005172445384150011016838553687306097234073217666696640620233397373139303018778490105558389031464118798235963425492417670559916430653836149431999276508751367800377249593771988202877328661214388005050351182117769406231879129490978415842455160275652423533819231874414272357726091310375232820314828745287969026493384761543350637848565573353572567894523125205939631566779487378491761746715150845296842996812991737949716946967957138675055239560393107961580772149272660549337941458419531073613857716037895456791798581117456384894232277449545661729384641650741223242825357587476528316745511500038672590664388343955461656688770133717750687817592837196774833321000654105839072761968110297744140756633706881553644039514135720493617115474646665364687607672374142049152895870075353743471650756889603418512588631763664675539914178232105439134467262257606066165480952504610111064380731160167907444068866277111600817840797332900686460478516527061403091803101632221551647748359889335982773162726782221508499979451058293535003205467197603569473564033689043927531672140258039729383228683641523189514331608788094585362388702793669345853248477682836659442058815566288625926546693775761481282137082456844063413798097055560055540742598438530377807858307171217021630473187632672898295557771402259240122887269411924227310593462389369198991630285870768739039045031107530496496555271249638987990730117075725202113329626073764225489008863419686666321642885599367428198666147995194451559279931847041141893475694603726499503719453812652931552834230912734351512045731006535565838780251684025700535115829781283906924356145243766695214395074889497591415661525082950966956367492955475441832431125389680158410398709338297166123777828023799811823031505529802085890269471242952824966958297385039301741776788266779752065560432638012853434221850548833095315935588944326357479220958821345565962458923770667547884637887987973890560820240595040112499122583897209471798119466525577148496140184244970424748413623065242909600609173604043127946958816775285884373718151016728271243843717799472043372972017389101260329219178212160408879260164582426171916867101849016358760361100122709604871343507206103525389034956283617302096778731826254339070569331485898307067197717174841880054678258162026213048009411879150927163033835291879252063928768069838489241320867475631179164164937443928744149077558655033300739354728142243833191759940204522385512089516704086574766432464684051266876414944523514494412911698137879207581810240004169157500839850734706267401650729250040823108479875852776169965957988825171275068774692053618958291245580769832453852277088817211066348165433663044068782304690942256617066374192131239229796285348420706310804857347124706610541219653523278066968784837444352677899928302151128043622873025554141136473895670067440596576351444758045957062037642437955610308526932191220213939240414982245567605837784523544359311587009192253517355796948109655348936847277630003635372236083066660835167246833757457042316620165458755639694690673380196584147704294734779169862120234400404660431629525923571801166061980918343043823049340628454098445144947542553168534658364620935150858224337538446550880246030520131191377133869721592683815066855804999004053017433579628367895601269083198757135979061173196595887539402620230077020229339490687516568947802643896401385531254964862443540640918102392817917749397760433303686468478404718787951335904154999082387321450398667185496508526728777098926876053859137993604947607600329041647498258788623538425267219161319238501127423323426611035917188270444499002579391166970919301824368515423623369611111745147459552687622945664830167170353059226566826629841672906562894127319083940538774363961317478091020362693509855736968234780916518464112582506078681228595939868211267956226480726451612862034761696077104508400390350091415882481337006226711584688720714668436895435673964036032557402634024447783691418713636274267178560461418602329142622656275336906940362139555019709092635661636278462132934925461973225124381349018003193484515891801323641539851101905182894206624010044315808482336629486164606935676934584869318001481505185186970845381528305833124879441211228388853689359905621327804723603168060929177585300092429810603443957460129410213335756665348053038746668702106162060203905260486604959371497273485801045535192674439431773253119290826212031702946856202018165010223025074468471254314793406386555897736711712941470245124992605158311740458306372363561717702219310401586911959674568929988438819637791936646145300957413079736161918669453131955066805276779530495993147037885970468486706638546598634129017046274705439047475415276342066707961012835615152454645545976926511170062954124590273339287309456446636669993220756310924134197158681249316408125936824290127585113878746420881451823258110950131444467278689030001521784609917323733715991301252283859195390886856162651411093305564597291923220116290526981416372292736262662536853828421489898301407959769524683313819280177939705912857835975602264229189493513325829616289860551302649454812338299913772912816103139639895044008727939474354828360277213132397465292591690812223557454374184538242272104977302397526918324243828662607489834188821401384860852620009999902179221690314612416387543767325334089858018633714825892574495944845242251121454615709789983400449235721737106518442941128493231706839339684823420509002017570743870786534028000609382563332271496629810272092481636853690709207679059257035493177742960240795149715028717483716852020974912663903074749305844744302681566823358649950489136700732067095425869073213608211973149156135469815256058966798606813636175827885534574183355745635765564531084744763744068993806626420245570690047977598631359457451726620033942023324257939629391675293785917242823827011048541003060557599238166216982433268392566624997666506951587023472351519545536647689814138760055671464246360621442771703599775979830351012060020007203585759790661478905232064742708859706592813672870681842916069902176188950836508240329710364701259058193305052829290304153630461959989953417427541679122240082330983227272585274715849193596215396769889397882300884581836609584375460358968044908605746849610255066168424169545478386672474757636629762582280657371548275514767894979138279135310779517437199287858637554687604546362853552520646375086337415824149331163257737943867359974860397970350201469133938115412796273143370138071932383557612379102799484095415385764743511858602263595382212518360420407474411051805458935330304275364566032748589394435704204992699338781980043939410979595546408902083860540116375611994892174868145309975594769449287755674673728900172854060082249590968536904503817027237268181272590205637580634190359597383767039590168255294591472088930031743903840405616264088058493834341625206987374165488067985937209334770564369135643795488482939488817131706274061843339693791845350326997161330437876889718379824473329496467144075294774629997536989255795677898624580758005777176297998485710695277786151240792385257623467802116794498994882866100548706200082664329665615221773445844846975650468563901518187575984014017396549216273295515000286498027527412467206278826061950824669121265902867731396910625464708800666434569560155722477015163173260636565607661935206180084839452712493838174852160734857229561565856044675463729321214120989235391290891300967132454659210089886643006996102070884820299953006061790227407425583625631275541411113231371065619997337533316681697148974460152934235403149999864444797458422002027189649597933776138885808479784934494637329814071110926012875766752393765562547900494701512576223595869270167448550853273701673509843716015922584580224674037387693650198479128948004510254720307365962568079181671142212625225382796542073378668524884761006615292451963103778813813383623720940687732145849479900998054726379774130783928548193441293714229927877447287970045395288848645704093567082605314194631843799807207367625959139128539847630973296890656554821429970956368005259761185423458185293993591059941230929686188544600171836384944050366220296927088670751344129745538150112646690126186746383244018612682345777964061666233854350346615049556270725877345388157718544862266470927223905372409463811108546689223512842750835857023828208811174172381503318162004185206321132091360292663243261227195509425700651349838727747549492557117672397085520829493942880588654373827317162880527250204939293184886575360692027827217412005066277801908697244236423254661348953293584330399791482204184514750615581283345792862629141649116882943447766523835780618704785788913376039440938113422406718487275813776005725255505642049115630929272332867496599928339196027085725609910284397525159634168785166229311838267846694640045032386035931016683990870183516019073170183791658370333821708632532506198579269545893126280898907279000044017185319148848622557072481522888311574470213058724806986984882030953456546496344435177957300744487974991800935169249005100106293895245987923994591466159617776996170629917810329116964718949362004279406725274550615882186350198397442558123647603816326751853979026464629936746077865444762281397986845130969570386483729677417173305839378908463647075473703522392622233706872074918226147770894380729562313598611022654963773736191959377475595886079303479197039388491331081775495988634870547932777094169491896039855256209711331168323362013990322884168474643261301680846615863237165244789300218810879530485336088559014488481849580829883580315018026904266762316851727956571729075493212407384907151038190674214332900828141866372054580192167530994043548757087970967762704096866786874234931688210218132846718409717625598779640253750214266395466807938054545521560560081631762314770578045693183811788099352495421360067821245305908303681421379158058891351395738181539871890105654724422792000241374820687254277690250498285899750806790950528644763527958361186177323551963362022812267439240090502838564479215195701201799526778605749387147159575007940496726675707871514950906800287463406047831081004841270116051312506718861350534387870066541232597528589458566047740461512025834020563445812481111778377360064332325957829392912524678638398908493113559769660907174572356725768324048435475458926459861152825364916608230213382292702124115681213957872169976770990670644721199015258845538670223699761132543899141728733247775987819739699544527003085339684708179166074180453886272662809556073775683488059411872487965215361006916431584912065798369655809586326975594883833881972394785547641246826331999436336552680802358225313424697291015982922143988639559324703925916706270293699836156734257820220393231371057588064170977809261970347673335943640009755491478135944114704474422522084927141173867387411881145983845445525321176385804060898611972886511606059946138396182666624835085555447741964463087235008933055114548666353731749335752509609440941365114692313569978072401131845135615810525833024732937819083307630809368404059565583215910424955383449962212705992534134979909464012697833471184741454125391630650990270793010189405572493767360801398841545606967971382741405434256352820599582947649380508610687457742396421340652489459747807900633291572848944714523726734457849614609825642146340484111782399259834804498940406956024634200102223084313271895277322465907304221625854225247536221784427031516729804705624632601449441367538274863879843030000616652195521736495325774420478411137000262455319087748586886320361953237267289619331474563143949391429443411303856958845142580894930236627407628547898232599946107270430510951831587854188012941450277087797943461187785024091357272941954724305824728582926191920260246266170488077874568391557048805957880414298839892509094311960116776859570631792953812298235611887620895886061260265079731995375878924874772817588168982931914466011266602868337314981538025775988117868717042087009359616799600757212280590265002774767360151373534620386806266975399379035106945735641458697288039131705213875676828591634231386526302663121240972153936732988749123348440854333166033628172942585793341933651212657825210590427611017123778187633465508576572503514704995234758091516814126350671561228800302721629734522806593815350846461028946499592424568795859720317294498434643369999461482674273177382814780056122561293939772287805741049262194184688429254893272911438988561959750197563288706402883167098039258214400073185259736755954631707826596255321286945533856132305596821347867995643640911937931234645018590239540067205966822322948178116288744967522632378539837823894802493956265341540903095452044879467172458094392266284899862911446416867964286277446023287236798333504386348893259469560485651218516211414243805393658159678133439086717585086935787171355905491740465872592816306511873000766544453408751232225135138624628193220863524583235108390990645220663228591970321306620254693455056453252871547680881234718650741047191713384610972309594045828262082014732493889533229446259210314624646099866368203618191962942924830353593719121001500804290858419416438240637691606895784738020714992447580930706650983389934179209402728632952984648931059923757833870684464641855665272749229736840286859419798822840337946309521404164532976817079916731921681532728497947916378835693123278767697904550276755354458005543696092953780501625194391612939263011912705752245506007304663412520601672247698554947505006533381110172390874816184847705969923159815538468479474290087487805871396542412042416059951799923331562464725888423572765979358774156516909166722905639002418680591200283122488295878942181436643699562288424636993377462704507576638943070422750207766033121071815887068128980571123549881517352523741048788994466321260286492516494542869001764195208265606685043415665791232528138597684911828343055423012036690119069723107863401306471289925433343516815691226437861815037881045856860759550881410211366643448741730039093036655229875239518073684223072687312554977194207381014405325920766805997455243985370184025943725171436327283439953057220608087644637963266359335172266316215172357814655637675758358647109778452673878353340590354483175220431856631870106185919872248107050059259732164840554302473531793603680714334813977337288731388236763641122316710663125994037294550455171503391482087023598085571200330711108404375559556298675203310681338405062898378963331181820542832224524656335939901558234049324385846472540635567812688422437318856658403190015026358777497976135937423805533965325780300936101311852555329796270255824672206051128904370566226656868595362903441812270378381508255554950570469037521834005425462229680480293960894664842294234959787076286503789067120062143212496429000720557350647784458483056675675698230968018524987339393495368762459688935558459604213288035098335980252574957044306422065775768940395381541587307486305700588065077630050291418697712432258056673820238047147746696001532302228183282063717629455817049884493796767414674058912711831423460307355703057180707674362684796083893456717724299767713035361739676745177502674549082093921541355012241789587260840402697325036575059063872986369348355361249046798528755436637947350332546546203252133108541030603433282418415836093161848456430796922026534413978632445141889806394643909528112751507170126994200777458078436887410533691068259999816772834893839940179837450884340254934669619473367829850937683509208179347946602560215718530234833791269770564651716677110111516174693053789471957724837035067608530875927427584720793053673234285398864522569263889613178790029576316162594608387558386408809665857310121644345497813579632743257804287806259608232180947828193625627508353206343328852617078797250442938632942984241372102158156203978144849172658172831110149271131362978951156560148830385332476145442225794918544364697271498447699731563759151831846059568112967054305245315058792674202475930646262582043002605363278741902062715490601241685614528210414563829230616340970347668278979472261668279845130270525938012902382975899752056379645139394703137774662172437678387188604281799406907538951886089632660219067768113103288065790573569210163078230344327869958753713703555908545057798638353858877432648292840328671722804079314828461105223882105562683478843948877171129009509946393184358406294794443843269105128373780572498882145396699123115798490360290296652374341322121274642384601149450784509872627919142704410811953420685986559216508419053684860124729059681920874648069382568206711230335568011435588864561193996422423315454775438901960909068530189411063456619848648060426641907044782054017006610130778811242341119705073694404628659554934798375449433542880316957733419638494653315263999067578323056920903330896908704649371051366656810826498567713406169426626976695631894464236154538676365029143734298854572114557995939775566569541902236746096533375398537659114169880638468489297343291991043004873759437639781075247353887331349389845155352310411517169715889841718982743494288364237207259835044052566551002029348075255625973851940473709616350963903539615703820562029623971593725183998973946392391902950375024737837383161616735624063008376882658299996116034422391910707891163188600381902380646990753236343337709775568198605924414649373933211615885354845131093405476797535488130109929333948989997363296970678784949250603472143676816132796060167333726095907970430767487438796011404981233422021916097379527701013143901004688967198671628542610038758853913100094466584673998465665761716420158962389867426051865846452904040611841413547819600447602990237971354583723103491282622000433377708447752570529765337420848085295854378119375369862473026073363367654507281999040316991242459639604069448308376591926075986788243828588220862000092406263384421149163644408768170908420658351843610637399114108729877235065065049204755364139196553020288747164629529641919282782535420726143308853335633966483034508551858999562442736720073761910040532180517115588715211860209970898736444590319226453831611016081003522653854731292473852800453118581083449433799569142946528859279612094015686352098738634003628693169544238422813092739239704380350553007953214794620672713070196489750716080990997515288306115633167253510335748822257602246881490444976457301181513150317159883672176103999214447756334130638742179608997313698259732399162806142917081006545491616380549001040004198380062661597361024368763482434042997391096567113580168056212078758849180605733812408215953560231416811432148525103937946729392671155693016764447762410522144993914124744615690794766430913662994059394420677379315083796519534263677053866397070016533381692653350041400570462421573020661361547393074291511122477498068895240978358398254235844840429703605284570883121467964223242515094874846286568596400441537221459769626528841209885820739948012307689430432488914529804533974867634271259273750931667380910593834666352943783513942054325629579147377114588760934780962890302580569760543250335080568127238831796915704602281796239462705880228364714688062331269274504150308962604460561739411338803864486046586506237509734591383856244279778919751166940487613727822316677640701716558304134636611059390013441341727035697222568864932628541464073057362169316043487071196976718402269438744772913858295713396863773009772672092906555452736574869910445214145405842759447250251585150924641200064572337171557712294536888250720829438231545862580886217233608117514299564294705467678095700455836814865619685625702987193093744148706715801338175322093574246291518636186089590033700969347196559225893036556581807856491027143477703152532853535891816998281259741362974491356936685957155673147544569753507919545368012162850115099854233754386714228308869370983203119193497591862915392594597150322843384375609815444998920596628932874595878455445008458366351429800121826194997505503935760626755567425194592802216858356925413858570406480410784134712479240170721682480185945136416205497740088313593510213378770365938008884200696539980504480004027700528420828927630757871242455534640540440861406791459167734175656935018517499556590107586332615378589335500552783472152761749592491622520344184910514954017749918495233939716632178199269018669223485871141693831492927312688984709406496110528756274878549299469617262246796356047680586594123164864382950792407708509936244678130626819749078542860725807302081311086902452154910927327329368386685346676054173968488907281636774213696272847145616129620541450502992026602796142572211397767317726309923656342137460763077565727897826247491143710539064539022610599128430029143120186347693610198187041966650175195526393208124293094430142235310276580366998743825335261579970906301612461208152042699021093902171787379842187921100996966508341623008398073384464469401972439273056718667217955598484730616153896633909346727865313920907851074349322322785195124492266295734579326896431815104610342009387678778923970423288053874504369660904051324198657906685859812794380946265327476002150730443648548347507505775713789155359820062047224080158061667533705817639798324138454309891592913489239477683436986736236709989587321461748418015080252841927217381407671875037107847320038419902290964378830306089231235152659729653874620890747330376793433271387283586845353577275547659544139059422468690016533041237571208920409529031690258135293995690066048987698339487937011913746104210566643455368797036838719970608037985905341529727760496209711881905989430679639857126457442080277102370412404358079368921922743920695747009178707046004007198764552965701483916318903419833705025885967934342217646783146464120944199965385165113834657059720928252448033822248448987304235818815815997964366922330939765185490143932965117162838235191923993094813132641885851668915801760502855512673593010189692363124347732550855187408949788532817393206642256559901653731015091861036159187492148551471921330257654897445568084336444149781981939585927556992180643971533853700259653210297226020119538306991648664184524259738025055911419276053764791322833352477419120359869176115020425912005389531475363897284886253231994009026278452994435413530275400454872752017005552534031146675236198209729964965345587591885516615346350760669195272420133220513049169350971770225509690574809162960590000266188401716105011402959285156141988322199504192262704445607538338692627568887189453682540997847872634866490112476229705221483240569811346744299175001156465995808085232363634818950039682916013623595013998856306009713278134372621225714728290831977127537895899022934587921419256355209402446292457559025226327326214307955295269352245736475840972312957960026395772347321932390511394005448928232057682198893117061327294866064007142747419018138134648423193457564100289437162222497131637349953031424005048295482137616740632223862254609039334864194946260358475932822353473662816567260248831043602943600476994910781928358328157817133871358723294505440538252761305272125207201858598937544111404672663581648406815170139914036882505383216977932558899435297278220257450688276212896158546878413524070217070395551880467993808097915944763874791572496399900506571313851157451587626516507059940256789328577799988459006306717252582601859865407421954622019975775724732209152304036226214651233155644009945641769196127233697245904440896479494691153660100364884790845193378500543265382219999021828810919491341549853797519767217709986402599432861283870363220986008593307599943624653310411352104765856311143451868911662246554344342410752588186063121481430450735012282935702510710576975483635970086575804366796786949658745359404459638477481280416204637454102089897213525188742881077719868853459035171782950691925728449154656973120806268631723132447390004600882086886823352864311973786561660524038140347419296914015742690541950818970648343022877775783874730393595793034982490157262133018185757359513833651235855035653422430319010181024100031457909084547321984149942500687268312326325035231234444313996070119806839939487907629177480799047482047622859413064622495975139725459519792957383283234427938581360197774540537347298836917942425898573049040580940748626197055662672664357485964645249320444140459615581394165160436178178258997773122897953807811727522639785648954337482473849639665365044880547318676564871655120459884319381703704010305944617893577534126343304672693647832472759218398497946557237618540310580849570223616107048731852582085611250564700038978492371720535485131023472853042047389285161515171510146241347143418181461934111842888170947247568868605264856294550453055563512837730691054264120500067544747071834436431451258284801102633972367150498527666899648283088436768354363213491986075907986765014839610465597570873763774316966764818930757445142920723682700602201796993326548731831559911385038173629252523625515647791929723974256454023318023130289374044100266387721928199355341803534959081377373098075092948767407375933962198119526418863502537518705218325659700925479949253678488084026714381001344571670494252700113389403259309722988644996915205599513222979607361003710044735825036893864207990282010247973079087259061506185299378288892767498870978842245530511766805933593824196328024050795081704734138976432920429652285206160709478394475807222022311192038693067716057989868516939499917487869441258018917482876821606851214936726340320323082936674784243178996263086180163057030458255232196809499761875211185309915048903450868176548063034496947489173713058379146570721889153535562198161720165365912529143590151468106907531193108711860545708675974890006598110847824193017029739742857932137227215901424757920883899479374265089096550712129792764117557679806043978620462493455148195154275522598909096096349794779014114594618964128744906596551755278862748459498215410524629996762140103791751780747627132632623544355735711850565558549690481261226122944835223313550261767797682147622540480195980977388017464249976294755924364007738999667090280200120039959539469597577459659571784654111478029715014958907512791566688973380227273586738141696319300327656927769637730229665242904653630401904619046947998105623404939939389488904149046040054490270495111745614031176766924914673679613199860715674563979771452887923242416078646047572846737373940323427462274121949791903661542541545669660620569511410715400795900571346016355578200804178237848141705935828297188139983105952767120472208263410857545685436788169926966494261247517663275728528254338989303809490750890852969019728211975613367488955503030472148807320643878131668534378445173520449116547967963086525303486073697259331009081642852207885730343670402365611567662856466229912439731665766577424457087382141135415434479138433616354834628731165866529361293829691437206604101469776368340398356492274848654405232204471766881923876234800018510146639084038962200538405182125458370861021123273230123297276760264088723535312639055686564161698693136186650099033279556000439484478392383271934027758842044364458334624585980043178397272577981503000294068977150151520970496428701011006771764605625283541021966500540785707299181337116778864671164967474139831472743024929430108809854268190285784102077180719923495827703172499597310777698654556382651469130005458409375809658351348980783823971499514753236973256128571574409216386708631130900644233539821807165270808653225185501727459998636940973263083196563807206652773639705872338176918223304168798596276219587120176548768677335325743853349220005936962039769641534264355578841601803764412566497753794410001397952040794716947843674233730038540276416176843465557812783709553781498221545262090265526921174670049552599732274054880382615834905871824693075844376294351795733372461142968403073628658697549210895573196666220741440188444408736538922520006116326495463019401115573592141742840889637519174688935514030058053525494246003553809219835796741242979894675215672961377163257522773646821572981616762202632568675512902164950250599583541636015855059492965936387136900005367002420690999967268144567489201116431400881549686995395464138521074269910343581955948693834015193635409527124888143403825981505813020933972068301853421620227291703211936935171191410585763906570639733581248188070858585319155987538935670300471623665393595265915140153627375709113244157472150419784908282876380062820285757743253643571279355093758468368688595391591070069216898385315491621136377924049465948613029000999893367250462558379899372520920156032006550533843083391595426148873702463592321750149296678643132526424975860448233989887195308188447745894045634593433342977387710678124982608138995014623578379251611890148194483293967449634992382623029108453164259545030791848576530824775636141963393090045124628251213851849451531579490834986029094567883849266834212107979501961794368728031359106027086109204556757085325718892425436135316649838778539573518350935714517055552110422804083606979738436858359249932375937304277587805517933731391866471190820715228199843097416339020011764587263966962893815246911505430988059670252153470956119477322378430766388002457253686623128832208275450529984637392296724201615538573744522552685751670174587159130472508791263300734199966568265611754549587661297331263325242819336516040950298051359140978521427490513054176315510634011831528898481741484827186876287025478486328410373318655716833869608853477585932306147698027842668084068458936169017166584781366267267423715639594203788562641722502265986226229470961938196240151068604354610061539747728575723092083693596610604132491529357189457777112219070439116080366079985280755470125743375500832786574076869620784030487952323844873056325634462163450726054145464892954315263716938453001729274423797858152430522796436063793123206389691640221653663226294878514177621319986944480113550183337759714008949057406889724855607209332130733614026362826162997152396864129861313297715732336771407966159965408034196661400435398832918267030090341860253372440825159151719302386282894461436495148971931088889302967961470611078424512640426557428619178420233583169534459756758560310724614440962127350714103052911208783765241009970405381477845211405058666758746466721862180558434413973188223357886880864767695841758919181306868209836500174955427374155610519503117651857908271311870361543312569918142917516821435356650747607074999693412789861320663666220236051448149775989782072511797935141129109064936993928263292422892119873350127254851167661713170393655356096202301814194365941793839465759862425331046024014902438617499603978612061783642381634195869747844024510473262924213434033888309586706328631116509305358138069402637752650438400880306211105472168679246037412270855624659829025669111264656220407119029708543477199868112825904193760297448088680412881707383674357937974657862229764018326802376646234652696897679571760675870349236974746304518596750260423347007696996499354575470957448807881009867453847306698196845579210260248965370894404160789679271523331061789341627989512184903668215605796240759983319181893709303610545691024620975417997722790098812648790627833473006369462418816662376386517640681674475820973966695286110552309222882803119318687220796629652939210989928459410371080656426451911501286323866107938083540112677398143949280093063088307511560371753634556044343919257818266741868504086212539390186500744864294070526899926445281726296029190645686811536853873533021221593226298996525539083622403994058687214510814396368107613458168034832024536884428498220399408727297477678367067373480467772135256481269116274873637109820052699347874433660836736102816702326052565948756845240069345760320829429215110784688003338201571934268641912578048081197813078197912202487962898496665333423777327614454816102721775511381907910479069321561746157387367656644301147223120127525738679307013663148167271079507239695520471956343161672729258146670824284462829449735966260325783784309464777528780363003940064726474500467933507285098672087934932409824045359312355136012781601715546646894614361369409713995689907245081936491969249804110766637230444189391214088781485027741229842560333670480624876766674110291210041730347450527448781023363431599272258938269018643787945060457192131528993883822065567903796378227125674807294353404765111071158727187225153309544609469649909739088630518476409970445250722512530045539324453195117597037460316756353043371913116466828374241343681689914185771463267040676277092073235160451369672614641665185342154520119098809322526221796037019005344218120698271846789476652289310178444086232691159237708218205893919248683371406524282553379204985548067167280563564833727683028272117481356959854605173583379947399268131287718546584722513495111064233837664317258216685253945920814028413932252457815226015707690205523783069218259665449748893043228086553145344317266338285465343560618531799717518810177667179600124069097998040686085588513839125083956084628543802061160555809507242064229932244524395101688364835986384792116712202077920495602956380466236902420405118070989670528063365932270299078000240767905100446412630570242668234462532371276975897077593942148160630310066986629042072970982921726895525485082867001872571920563513079075709694046886965899777182767065981859164950889548918756977135963664287381978375777289996991331706517721187592153538617386385761236494166328685926660861728978661421736921219615750757748628277500631967189684244316055126503372055254654506599769855929163455671100189797046663531434068917535549833736176120603541684887447515751468575571963083245119413509961324687566892825788363541830217928495241599169227999263259486100059363223325757470878065245850174412213110100392317123827386417347835930220120304927794440878379676754429867103187636165447249505053803963509170143108466494682823514514690420584250060021050339491109736157190423108715185897809723460594347250010140671634625186642581588865103842547375008643076544250840331654362236378242532268372315818245109621718982068126012474460771462164751221972496376690514190841389670842941070442980674210333964976809374181719465168272166806625579179568146341964912201006457282260822502376311469233647902939045345644181055902771351477066938806445346665414688918522437181253385709244016256718631983694400407632529305646200961015993698133056547833175714381870357760229893244199795935539217353119999265361206464104662538981396203407180686462363263710027190885441346077922940899847908879130158521271657291531674595222443934676312581374270016654289411220546110208098716795662081211801369840401030292337348099368325238126991354366459393336944263392775133122133509449099691626045967432509543954981922714797995804847050713747119458915389506079291478219802494170388234090130955844376428799323999785940386687101608399973500216188656417887402347234022908643112446975878542264336409114381272968125605403242882775804955786630673424964846360222971953336945043600303259306705129631544044606108077261486833606331313326276382818066046075512589592545719228478454657560092043390647005244238404165632650250741392227421756996893107572498875811276616685113121423210134506692324740343899024817495111403675328185374846020725070296367654222272551932855079916658160132637716214977954788104740961247876881920998324995092866389763192944178199941951440871451228316803724864680151974943809781090326745613127380990432292420993559283216232636632374495064246214243644635636055535900640584732454739353545801392260255042719186094029221677306729155196432074240247269191333400700734210004479413418638067446263513073182827715325444053868834609473629198718437795756393843777197042679244544474651113737628062784296565075115753638377952449387551664711828513926605404007380408763512571788319861957864084412140200778742089836506749362126101883097192702941354231029134597442877251427120409459711958762042437421617847570852845235992661236534453888225743744775164262026533669021319810117774103737029440109008720730483737573220701746174280584956770262849162859965928886521095030543265295964623430468592851183643409953005161538170691367331829958527340843617001830111761119794596989684141993281488819815181888572878369521572598470755868434756566849656799144723964446017493299871817996996796436359418037289097738160476881409144923271108341736046531211247901355811726169298516415168082436046646309279150377722609763232916976488659308819657511517752452762222558680334366044560348122543749599836817365020864907787317057671988822716743968647180095105338084105776845339189323885843557754028105430721574592073669056540024077868292794719445918533501588477990609194887350039755947598924241615418706629551998245204343294581857830172513706327744073633520197007608574030178528446389280544562990595839949182525199780276878946522016272967116565106543171519173482152871364462132919791959477262482082980402872879783820673458309381596037490057355182727806304405272721368172821304967909038481970484951744895490296292989331746330067381492884919755864906123137604238994805247058628280712629514231567403317274784824616896512631801541945388491723216541333292640894779084587452252221550112638998106411481955669348951514165071719290819112500578360091679750188879810096031567278761677244582239813553268021039220472936502704033595011056852020973987199752699914653378690391958935091094691007459915512733237969402916498558375328772804207990287484379804255517145412157707364651281089479681321106100366055473628878149725350244804155410512508748456763774453055949823177026140899117009945133734111325083073671339870289795609770152084552442844462831956851873709389445957967160184023623053512070353897716838768971414975607397098437189004057950715375377357226959383302360010323566496156809853474533348993587084054171570546812937151210855101493730052134664245800651972197737427928118154069123637963835758088174370401688175419446461729204278879439773928978167458476595958329134164658527520681798554860444986481221093443280012856733039029198878066253340232504609249032987462680249399945425840380295973229415003843468226283357489406483168080588701977815981054820011180436836246481842976965307190746610547258749723636017938576977236078785597326758658695831589688117705203700327000319620201648735005493295407758150005471564327810712257596155673326838010693651283130690914138484771966643156672109145270499933852075567227460485675652395211121496291697276411032816508962298849774261039729230308490762657529430192459467165544231873219505258204144547352549391861906437758040688188145050275380493989986565417886398179733294549898260077116456279032963696470674088698736712021798989008552342795048035445703863469432190561789180894241591498073093803228413872379485268729141874620058989242647374305257770760108420649383646285027335289821000930410233303025296378697399048911369129614180854604911891390453027884375382324518855234789793288624940911001065063023983340658516579971114074596937617210183334428450683446978949950279373288826799101279459124221384335403365147284769033347319765224212914847971530549588956057806019051054882826299264112317602404125577559737138010890351959430111697062514999362519827650738877451554561300464559449929822081159024249826238838889291208848955170482420587162274684978042995875997149528522985456801028383829963058021822340501222215725103918493053126169545834272826506846694178175143161647053474633369337069600008195531041613242732913261807835403664832169625240442845713900111577081465953058185901531578767934478837131005301124248750900527539540587140231487567989445064592553090873633381669418175755323586859741879809791620061288101967449025723334230714218584752362148494526842994346790324889581582630659071291861612811284702249598340429013126128686302166750093894220746494502140125487132570482803187500872177440515386423293203549150061000433320705102105769280318161133853187880897882335502926883162829143245178416491797033307636273528713381551473412394648976734165710414921617819780447501201057649348580130131750160414805285418069322699071714202017985620102604465967655899809657031042686660098502407567563746326146495531989591967303869389838133632381775303697323194039490335752673309691321330358308916787473174140345343358657488191507177859903526370173500418031485671687627211900501874788455701520226929924728844930091330070203154932108436070889874871933091852784396599751798580000852951112568207457685729113448442048746938128910377014940840039968835863639286437168611411189500407603039970127324765591298320872680577843208305328809731328396144876537378452753996718451758326770429702432087462081526666138656394180363787847594754374429819986544835334230975331966214208560735235731734857015404673557184156507422317567713990375665474479097939453733043926669305935267242791680002159471025369149384997012202816801975490206040337770202202542181666612285059058565742533226759731201032407919149347082255292957943069811885552910439738970913363880861704420476117105645663725187093466034379642163363588446607575460100823093697704411247093825047274368458251743472360216514176872753306011001254703372380058620393185268924772715130387269326143130565629412256935077263941202215341154263229249618429836537909789700155221909398403302847502276384685306651902310556317790344359678916388010272805470305369438143321589379643888473785166604562710950258726417459399837549485275688940862861415759845461278883673773434560334235088356201490440365898955758629311320676181115100234263181216780275031718843431900061285843511456181630540301340854566091525001561778659620794702478682544758708474737090960824711171090957149850842136347723130039199388428998303381045912510730186186006793741914545508103114431399736355095414008962191538101151953563686969063319921354091736832229382520717388920859068217105995653115155186328910773574086780210565281204567807198385338617763071670884347536142205071896965727890262601704225908780953856270398624048070620357824676671719328763716701455890519672026495009082692302412484150520642555652826750679399967744513434411931608984551588490304524728366202614777294590724301159542871047952762335714061269400072686324252073501305978908288173193989018430630842060515585990216627105686915415808635599786726542690565039831671442070700558206595881432723126512186215287013546089958388317922104745291347576221589258755492730880068103210105073815996755798493460237424573295980695189186490863889432544955777254940441382708050205582556432294794287162931830146398554840925529829370317610028748037740722046049795783654033346782947984250921686730396217877914334384534174772682345505081121450901336412625804515857383097102124249388379364137378857075095875095811878821130243322054591039876293040022591329387036925867649931032994790359324551653731604856721731411439159126906036669637575389753444923569133851399561175750492888502748402342061741266416824899152102033094554357106798715409766180307776490418926479036579987023729486152526576575473160020179119370026830494714414911963283610754820397115570981732885260742960031614431325772720479993000811409680222561185165015018172589576435993101627915380669801989123836386983852517168341200218561221277654019505563113572866345986959227138389882200084704131495323427829021381841926205184978880027760081406622933449450275549030877760749743022009298785366124171391497948145831562471622301132154523795123816382568547417802955825812379239586587491476278594891958119679057315579582878281089922838161481204230212688039785198423136267133378113142006503339621183380868459808482440853397859112453359021934279090471914816159851471543769744801139538123432978481187372596145025230673308055107482732931320275271883665845733334487163530491933058486664520168898262766595553913283666380932642015444681286212581582553208450131885447786607956400099265378718340994188384479857890912389193890036204208311513254948943303334583790523508840105355529647709236498351789735110841422464330040871667972058103615648930026108638509893689617269248101039523345162381958052549272253671093759725093418437565013766236120963911794685577171082084226778081806727139565669522259544202357836318444690699923709905679401106661473286682866633643566287570289765891669567997108679425732824191558726737653585653643181730168056770114068158609379898742890682932311388570316856110166168098828279020607015659300213995138271858964266064308777922168859939941686551969637721145382980107167088170863234822641403588278382818900405622257746676884214145664815721978609211723167905501942361242530967360753874105518107367697775213822180779486235621556858035966327761465159032140105353087723707439596261270005454399173672849962879444222178211683284919666323600721596703791097891398737113129428738154468937904701300075204123225002204235921332377430063677326780983282727315561931050116925094664878070401557061924968788762738030239873192714255020675616413858412588607147858182000799558302574439360105499343746793198623329281140454028236684563198025087804243619382842981761566483856489696434774312444197688346756910756310045987624629692159034845814400756972908190665657540614783107344473031104510372851971955097710891732792531946642962890635881006283733263881944578456469631100372417898098824442410855366507320686581431862945674663074074982583518168665074734842376243756720390144628305799244809260440430482896197502301440847745032440382475393323303573211844086531071920493258172501606150142478232119405430140506777525562283084934698845937400973237653481022679272999474491494945772563851940256944428460317868688165359819875966115100975219354829939805742615019791513396225076465724337870464283926495436602104132026329514941656198095774948494951115626892684889756831419004941003268597202528094725693162307592389675801838125469073053542015508526434099524819232879550936787002032031775121119943270938230366830042137387692257191718247303657046030796363376216354011009523743454940784983743175616040718502114155722983758455466292476318019481341739613375081024587785139083686639843350761575976434753624294057142073749032620436935743551908095384382708276966414792113179397807695535034612368705834092200225441119786911971097166784085364841397503425987298248936654775968408754332837993139992917448471076182245375437098408605778941220886793244051495404818215762654689780227584211045383985295058261025290147381976319939975283572456110554772046602897993020665865229665740390838995520647480684192482759143394585948382562995948801431339686186431382430903263069046461276344687317385737920983220737313854522113440660940534736178180695247838908040750376947337732876316411790261923484507570728900174014405948089270506813163342573950310636198538444290334328293956534509909013654825519285316107960693468499620956634139057605061005413463173133050061445340710311507303831814401860821834356364968827790536804469078539787143816079639505575969566636657003490924797089610837760908610513308757016523431124744136161764094239540015445563727589137272918590829756531306885716197001459909161166468415473129363414429991186934831860995435849378706860129913871871951871222343273778244016199425111487438956026492122881330718560009519730201833124368933000341332073488028685779027146743033331083749660770964118468041002785942211115438546210819296683994566166799832557001424153775275729107974952107068630666960394239494394972667841577634371629545320077494799901048382913215210789710583240090391968847971025541991243574559117518425796600893202993479114353602708548440354284601931782776168004716990078356949707083218937996840822438022677680614657027875991832097424770565369820912782846054222503425410556867862288345804481566097041062409590041733982185766541448300504515863730136058051130157736714785578017773560938356917223302367675579755631322978959281837354244191894842693762896676174705278982681974988257179281081085623784904752683187138102467716507065079539776949883805696871007694084271371257232850042407999129264416485123267248276565622164344394395009285661250192250786986698725936303249779129913080416188060197724702719437970437517471216914531656028956278536034698170006778847168841034250275302988070894634905660088876626807683408457663187047831636370491998051307364699464021986662505984143936833167254885856159424341717775412833590704672225620655100344426890981817993998821976149563466865058872116207557567097582497558842271487041526086602636714664381457051867493898052054050816957960995889022949810419180152544568130188903767568209840805997874690180143966197657837267929649273342919153747897958912366571692814707325466202875103888852957131421127290877150889763016283714455875875999755026757581461334632112817098566258434424257537916021803795568298390006549533637207123842366727586601775346996496873661130661575671810670134910160689329613386149142460579563687881801561580166147440992535959348033279733996896789360616494583339744797881826820898275148228639865743362451594291097087520351097303306815267333093119784049580901966384613592308500387735319570908159026395349356380048086375750129076961909106113060811837540224936211374550664142268039656076648134857632144240570617157330658993739540715194502825017985721736815128831251440753160266581609509530004760034462621506508628426640196758946294181428511989051190371622647373064996109999308569210588716097551531176473964229734089237390009864907102424101940163850303537615624397881657469396908958300866996331748630555725463585184551455943796752852334999219711306249501400627565303694104772348281089483818418645908777612291285952128695580149610731362214623352237191510672658380812869003631945789679096571519677530862622028781187402548876346394636261590451202996216433702272002467823618571823096082702236060773536322968226012373436651362609951907774390721454999496534405386885817702349199431242049045975324219715825254462288405793872705851032384408404103395315764088322097387557862656649337857810429655801671701735592070629152208861137179738344536311258786322300288622639321844340616445261315193498182572826592602246039118087814106130500544751730519464087824010938904639098981227886051626488024398183911409826823738760654001596422130382133287573804733680839144697755027940441102462314521744259841331043022802023285258838887597917953307647966988262074620400265696489112111874670679758518473809297464059652685524585004955829853436280312828730874430436668686437253081833030345863870696844505166860541352741318484654880111018101475038015718829833285740711498250404424498234235162642432622052454500192603241451195043658963519530978211565660465494534348122945638247775068034625675450841825477183644991618791953783878088990406838525494573253938426120104442672404069695014668121420698319406481547291338988140964019275793590576549228968762220132661440082588549068032771354761970633531808033661061076201681958441592558953816046357972599426792849515419762338049956007805510891415584173513475381139170598895865169917776272437979305396742668396453086438851284894081321989150742957591759477711128507174581596427882316815131895528292050777205946466069842838678017477186466721367515854405363893697863515428107657843836711024022691241977477727359130424486346679340073236915239994876720208795001677710986273120225225941752172680353492201648855483666664216229109990146813324360762538391062812514765456202983142049307812740875721401665323881743962964551563163835642242669074578466789069817091318334116696272059721650628060278018791573539353929338404380287653911638940036231557755391941086245218535544417369896260745070164458089171312323875355747526553678754866283699642763335594299774072441522575560709221467040008007742181345518321145455774591767743062585286366054600796552203861310930965189857086395054912636508440595266100590682380382442276402055129035646624490324394005763952654657862253984089615532391368047705823612940867568280247351974040623495901472875328144699392332310438132946383109438634017234975879464697853858722431954437717097484986501525706174363929035208754331170790542733194610982287521663383751430720246081632229004270582542240843430527611070088058427205087342503732890442414732084871118480191937393166066443804951850774986688935331660260753061352471589724865733933213151826041240777934190712916042667407624858988120724995085053547035845952901538217639182459929378704621800223937685832988561687701961917211805673468333634858505339734595211865633079168631489002366461338418236220869440669773876510737157655897348338892433205952957795469128142132374702606621905977560845013324717014087018264736585413453279538376921628871846162396357632313712024020046260078354806201339899865340763230830596243622631422169904438091455144187556492355372432024038762005350256765830290738793896049257813754018530370932642503825048088595696128352430690854351581966486744531052934024259756443043425594180995367861942084557141351098769808450005274310572369646746324702366856841240736557801491472623833829306797348043513970335160053770129130537646243385167403807815505428879775049438715818537686073323014939555674510973270992349830472994553832352269417613495071547270030783014769437841042562995522835218044958938092087885457390457882387708060844077086964330000530609449591837763345975315954246672290133795496894093995865353274794204471793454668818656103684824935905573939452533077693117588651868924529555760660848584001058865897013876365747770176637001756103875077598072100585133278210819437973586002160527385735826715932750084500807703976410915145370885027471803773911504279071605822752833526812926215311069959114532565807702108608101920903413697871658202244615019861183679672005339579157451786838512753423706333675759420862489824779250339103396420371444638588611138618050476461090777072280038827535455625942363280067600686955850965978897177169615653976302816687437169910859543812708389635353874396548196711898530137023815023191627736425715376454726393444068597653860010966705082466971585838121863345488151252866167160642109277987056701725904338481244654099862611604196488589891097761107618322431564923220619784419840184354563185869084701525280176738603288893033859434042412086014351240282076123384994887106334582763973277616531342794965097855916942439268122898088870530346877257668794660647753430149678828543040740002319509478990066837513318813595986758154067073505248195300944087072794756343300686909336832037412254123972318454129766733674324116214970321627729434277144547940264693788569973321383176855751546417974946511721376224719926683252120817449348873809545581912769246478171508061553090364437130983499411531440603775131363334211907324922909953999393239382451185469758915775690314148305177373167558784343540110130248227976632444468707591126232843464437132185628041605242635287823131382527520303608801778244391532503946427598490662185288892305347802091157714677204289888429388196554905620851284939386697210483082264825725362760646597347430793355302942849147410876708181445232574566744488550931902609995924464064326830506808273797214776170917544559674379310839059043996261437084029228726240136264589517586357332800569503736662196915444358618961220861416190715666122845099743446995213176655764684425019210530731605339811229230042047037850494948527712362016303892445761127921494777753043793845717086681268395570020432843092814755967797466231507504193068662183450864581591824019135657576313608880024256739318082424886253193246508355018745549229377652483483860641888181583460651066518939424874338566460987970989304081080549299311639740836145289801768648203585828031873945947218065904056673200874032637165234677122039947328114965070555392687698487098645618444663083109989974800247064655465796682065286897141220350655051476563748206271924130889906257992376637641849609392321045481019701320858928088741486506721747101502599779858198380099144037910740843056110192886078697270986827559535656211366722279586543686002006125656522626981213175927153739708678242258347240109910717244874045046152995152409339300285488351795684161494069290890255967877198688498426268269908255290954271366158088245965136392028741308194909446066928733469530357112641719483512087650745993681777935432105986373885527647393777646602755407495895801384556778785080091803046225196781805516049255816962387076577757811073699643685411763342855020489752163319895496729704705799854105757750120409126559570681979035378980722841742579395911997663773236822943717520332588230117778463274277160132123344639037061744105093124962937672371406958473127896433750376030745242177107054193340237008962380009492297641669197264090088949869517586968629297961158373460325506414077890500612698976051739189732129490338164316723633187610056081656980978916873833342623205851646461256334392218169983208212492007452432282489704461582769181676072425666275043822524539124564410059281914780435595255798694322630614974247025746117819169889028418785960893414625099402791194083892197074931172272963187420797896036830236679281011585079748472861605430003077290886442698949540793663160897967950903240724588042569008771412180376588424627689597576142385595256242732855451271942628069728191238682705322755383015264333715036395584971555083823213429677901796793605760796174978714909516839415602616064463113994793157846640142385601060676355493348386049250416745823308096907715390501617001844168557984982045370662775775544366631774051616509152152253161381152600845119355725380521799614356679519256700827095812861835379170617834354873211057725440173801219516430161750831136619541336670090647221841082951816758034723257845750001825410368978868488478717089060378286434154912575079424026184863009968921454294066390278571607412875503728588636069276794181663680184545223719685602831037143588569002085947369162306419620923240995864326031929239412282025380011873419626248988642336014783045268644752363958620372441961095767228254195871927596369112617027694587733156691487621868941324827319401127990989714973925098499114564519999762090713799797238084673377283861968846561698489314771375126676276477048847543077175495172702022045243945332454156984059717387116278592761425364426362954879521552288458503862621640431471572639277456260026925516573331282414514257548201895125518348534652918820124222525041201028584960125068550093733118661408936482398987731442341954920228453858831867457943544884091851894906229795303991698422574824394367866566587363352978711773662816143161566190574210853087185380525294776643403582569448164382404867908565326815236791327610759639725438776716613968934994203150950152250847422185814695084075937792411189681145482712461611694887573632535234666684847212541108469924015287607565925001711182524348129652180238101502606923553721671534400774000379559160114424771280680732195512071654213615197974296363192953246684251068541847086278167413654514881593142323627187307340186135141709932240880781500750102141676925172572139323727043922634451565448520761531445740237320468924175807820763226557830224089437099436973050946658540284921631196466755220492974257670316898721891858444696709374341187272339498755688583260129999491783407792611274677769681720075917149239876565661804710014377034031851094887085440359734110544067301510591422385314351473593221002076757195143087131932440353479003607160632470568877687400955790896079770559542120283223466729093183380404471210976271283692624104289480452642502317981706055771961354402230530029373427224147670420884438873112356299223966635357872353167496504156520802633290917891750111547132062273934543364216691554917354444503595031597991568890793316703550247893997767993298973860638578300707681610382802499629969509996962540181613999890935017255007077417797037842427219427356979082282188405974511840118514355149561361895578941935652928601636833838059237630340827493638297721465668857289351615427370077565904330610798076451086320175560702716080238254098245850649931667304582473330763580562152370167737062569646270369400700876612430598270785538821185694256079083995808448432138066256265103362385704668532516333444468039820021783172299977919913605342176266472941383184729962081191032058686132251968213235878858344850528342663866415779764334981029339308568488402028891962590794863444023669821150591520692309692756959506007814875656021675049119524962853311702125556659121894288545678358240225687601145798692062678370765350748447565909704596714079340461230263080816970989633679466049426010039492602722348485646156562618449183688163384766774692043797436910578675274712834239707123149195820571757767796476119549603845033935140815323592201187546431746308501959562365895260792597540956958875221905034414421634509987021128448289028051669350148875480657891728451871882764665432861951784182478095951890900172663914893436305308677500825873856208994650904765933032487572633823010665599172407849934946277915638193542441677729403655119278040272996054349714547088480151605388756496720953751980301572285712422920492775932057727951705920439236681631842793725334309493260130174176802786749780340927282293850992114496195157962882139366179550929455441360919253655893980578973064699775486462245583755050816381078645806823880777700948736929550362065382597286953316376862916041500899500594433932506562476958727284608661616572198585192214883306187453103657430313488320579016113761886295340011575479747156425817670465995127928361186646576237927242183690291492580149155073289009630503016298211099112046425851715437895409941225481085554104759033760401310789226858103411380056006964473306066648802830825869895073103648416718734662019135542519480449885722782648512779382698342121936033567876759860923805100934359449747204283265214891389741767844392228264865715814274674528827014460412395202583518792071949831274340643962855070443089305113246600627698634655401619488125079120645353470592858569920985010339501495136158374319226087440538172335511797694214920305115220528481508580620665231321431853209680635128167905224576514229138475198961139311453636905878949372668381505547793488458244970782045531166126998690607503562508546270971293869102692042339430923020934153315258761868615681677518488841361080818691544662306095200032564829331316327377548117371002404208876532378465578889527606577744022271122985740663258693103309614412421523615628089647165614926815549852733582067394503926144190732211028869004759816767630534390212444693072920639800270026250720657879567419314791725491868401272563876754258248277273708402917038707886577531431057462364197046643088245727882610305916626894706438586335961716430483324137255549179654427571092516758703160746825700345859300667035519397067548642163013031100620153310967454050112618409645375379876143325864339479016707162189448233663777057675510468169951744030713215161441775370956798835507643168148596788158036115753314395182592229386368938631239038296448574792956493395243975582729811742113035739271027399453022727598909565502592689164169716543336393127495920101245390289924668973643661906761587759017689900720973612155662123010434323758348908536401365658444235447668475900786490236659945744561928014828853557671040778185833737093639334729617507859936988243705590723407133465170225938917573616721193439533567349756360280209939113956910683477126394451688760870005083897099259061932492854957106708145232486954719988736800078712792379838362011243779377417030057984355422324509431106305752975232241736379735016420459811710604370963507362111380451115599006142739975455543042978421618204787465406069106835538004528755322175699942579851584843360557358209319791232684917894069591114620735562640108076827505849226461854081689178035453530252494915168687246431182421762810042696255873204200926486502081398398037325614445425346532670576331111908340510821355795497437403172831095653444335457946911753090358566031590958385834780266854649274819009829294705286899768632963006536865278128431390795306917619863215723022692217083678366213358528385718955913203171427746255861371818691001974181381253961943288530924422189181258402425060079010395190896810107789381449126108129734002615743740112015814293015878487978462638673359611620686500449867665241501779683768974251480674225736932905258565994332236075064620377801137703771549472577646248388458525376779662960891711804153882226285391704579911678300869251783450942563974675011611163557260405021595121226235661116773467030661628427222081403542065163593972790626842467153258727851051169433253894786019026711760590585359271751328922215408673188956812321069179780172774397628193292867250671265587656014534396185115210645806578529362076870594047151228854285381749804759588231967759168510920225147841416923769273941266355302071873797363654674092424002151855605708375259376395116045449671468967003692746658381079477654537398350547277314596863147108490341938160737364720830581616438979479381819186117186181787140446439485590596105067129321086155841909243239688676431760435350866320507740990034079078903137625198767731703746604825848373042032320764514797533880492505221415410451292592251602604103140570597424276396409335179405221354642964633044127981142725623702585739037720349521266006861777837662971537637755480360009775176453355441887748845579765353424761331553827874582473246832109864349340109992642350871609109077483998556430230731615623474774359147049195085795461337002008912665074395134367708144293662613231697645443284043389171147855320048232087497614430226326580984854621389894865729903881807545330060457418376717664743084130863041338297772116197389245872521069179182292967756541077446645891309350849672191776629169071264181698935688111465328004275580625338969055316806990620977053255754318097919007268041725085444643246949825336109724904112585506523902859040844787130624563880309102201124006031867074731111565543507401685807587388653107439784992994849792234677169966155061788083296458604817121734747900310019456434081230566509488949727894530238587373522490688358520765196295333584367253598737745140182185564168724771728912236695431080632428603272140251395133643469190767145422744686634425634255554453403118070979970877906517269080981904559951171094677545618697665410440040625299921444647950085181908660952821568803270095324829225440319134427306945902790801121422145248333681685685621436149493331943092887753516294221436860834937663223318359581598968725476236966396898133544424148340436364669048037926651637646668862215117586071848139545356358260942089291582190635879947951571036810925476192335712434275366578161439203609642127994151689340840226117219202024540315535367590297357984836917575026667403217595492815517897898346832110313215354829935943005280607068445271733952809315503542425847355009548019203813183567945382734298359289097551736154048834014073176595098943055624570099319448299657049699433738592556478393688704736708142142769947234031115799053204148352527589935173636863868671314161757548590598531258052568676351628917676384883004718427798976853323751176921155066948850990655042434559041565819934042931725623000091485267886742287607858348838856363779350819282414290539147879245974794382283082078931694844006327310490011539949322545134219789080069243220488766544850674118179710098847629992668357236386510251904574418521571645198721101450919654889215373754905917004941752242522576818103099888588981790459752116044936623328059293676526950695282372795874432734227664237724279007568186509004903265441115316406987646528894653149719178312100230025600713739249811399225367710316617236585700682528892778046457508523876330453715620724872625336211064745803261178175804481869823317297228771963698759338712965785173846762506303681620378387761251410002233280228956915383543808710457158901863351078675375562751974943526442389461223772750251264120776775184476201447281697886402524364657281187914393623107414701874058728265715533257035773773181151483068403739785744134134552077527290485593240673858085609555390761071699378958765874135813740605917470526145812386448108189666911793538251484098624298227907389184657588802051774842465031509958803479738626926797263970896667934177121480798602153694956244101793155803618326094664054286942223870222531252979295497556085573213507776950702923566258389134766221008522790382417801465975363677324480616123970315570793366271828315458512327556985102481803877905757953471126281010554768976266824427754368275327164981776133522914420540281160289261033449222504545296987636521392996079453521304454054597245341806196320786610980813876754315569754294950976345879585573580593453379461741028477002535476029368474428126675642084113845862406830743883638126660527397204445590510767725101766485239834652152196727626664649837614142712104495186998173127540184765670322424522580982850762457263879365603244587960907608959414771279642852535275652716560198227282176748595197176535445692628464268934360154519454798694649798016327523470498444649272640893175056470069006436888397324903384062713462411567675921285059517148361913367094424612759665867766281262560461443141848249664702925675031924493519362883732517622662900627399483094271172810150540271782433847797529005112558676306054897479834734105787246569795030058406911981278069917027955914235819281038526178456631104551123279157449579726315379156191399353634593588123634929782650484746998986313477348321728462243577775739103406621239995565173247704035620048458348397936410111486487510291564490289348130826812129839886685368611603106010793014048530496989623230376270510843887335745086082480704434277301919311118958252457638436852821835255554045652592278309250676212657202641894614983063040560237591114303224717338946869931132293125358149642381537185761647353128033480875307038224535827170769732626296737619006452137055524553095662382959157330138692433731185871973010751777515124184114058020059791327091563994590512801929740583108140279778986468416525784449872883782496919561689006514042798526667169903992111455480625386703077243804453529711252024458481679817279432691537831728460123029149769745298379902698007840757796920628877692649149249631783674620095979791323670960371698259421260338386643898320269112770942263932207687035668850942893766418767722884629063135661697571865238562500301762691081691214147717347159122644683321513504221218308785968339495859777138463114999885912134774501086858919214061488998434234654813626295078890122719801984777563897703395123632796768763303889241237304428342343102209134785538649064684137408682650339756457749024335945183414938940209756190642743318928426425542820309294983555114569647740047825972147120962491865820463425206051514790891971149443126331110932033300253906918208091235640112685872690882755595505821615563295961193203076693104408941438611456845855940632100122472181142464934414568704897415239828550636603904786585724941057448867764083708828598854792258528758876096044749073883024962202217753102749289591226071302293067246188253965065369412853706953012448747949881606182056529790023488573313334318054895159128119030789055245937855105128156096472495129817952499390222107816772569245872201118163518138788194649934120552026368339809409199829921583265677544056131203896614646255944669201793222235815273319267609258249306352850195464794469555402330650198638299933992298901177421268596735051408770677252402910346435555540677751324246894407544790399280126989130652761835730307566719984397510816514429075580854977178629769018733399797876999116605785595225791774040093219537092729145440255203785992525810274761747820556553625427373285383263240487073862475274158192860260235579461538941528466349484134951259149663360582451422834458271580827733192372580613341274026442351365140380573103800025566503593790260604955942780863522694167594548638420835708384083766970555956029786440586023998522804779213448350911169037988225715269203463615657018717143259826374703488871442040431078641453122797097262860956197114688537405809394382180514431257810167226110078828152566611413468007952468038485444733772046775486543431959658382790440861527969585581856360134646713581444333007136369218219101565153524135866950036004304409936057910431681032626142090622399698277440305115673337845139450415298371917901125537845262149380438094459666244701310120509080678465500118768069183679417321662395100001997598662243839814328535672725611302191370465511906829926707900775076304761951692459844108767101381504397859621908643295422581336539743790455587345489635378452073730383254453947173231043563440192207983206709556845674649592701661944842234293984688947620069762345526652409285065873286692241226770388958090813207883980941380758492822264388157606545133106468378974680886321070493607135860339613412986118211027006817680961569108095122743802262907754205455810768239483536687194524340819289371828194804076912076007665392591696790823602293514676855966561338571774240588935947179924451043922138615240245102882073994479320071095317453141738700346762399547382038915107667703859210139445998066668189923046592213670306695559612710135866487284132419128314069584820639352336194095804062929758267333217074707839995778423510200241740830099360306771408128591782592941353644390202000422445738077355383054833630521770273594166830929568461373085486932699458517736246394314527118469379796559287785603320519602275486180583189411364110084710931235107305700452332589713007474749234552934254843004350638744286213307953487865450671289522801134679992236309305405939134739317681147225966025048457539340644684708720631428357977237480499078388587838572629247882543361228474071048150130538141249811682483274384635316348100414116405596304451421628378385310699949650563914271036336413659737181022582907294501659660660856506940609287309927627219456428971321450273066577965761255044721651074329391193894210862093704478039030250166481135441760723287690016177827145081241201607003475193802701839959434057226247465856621931007638499828855847847757768347330885054005618355175257172613537183796133756272277138204445542880687670691000738891821127899220077557048865093328153128747370541246008481163207309743021582076785607111528332752305390624649539366797162203722121731751618971744300887336936784875126833032160654917124264820567745520933285627460654340573013630601963749555830587383920675735477381111833695236359860832433363128800690351425679799683249280053971764274665072409002698106954620703963833424234065344703014497087776502772286321261019360973559382829379295352777759538805735215397836051006530227346197094691539690890055656737183976605212227507994927219019938416909752129305473380215721411633596337143194173355586665400617646277851424978385619817523177576308118303669732645218419301707232652254641345705741414934937981516455927100769499418422452789565095884217647933865047844954964906885886703741415479528931897029740240616831109598813570400232941467391581900263884586952654561373657511881851995758082398500968520112711577362721439177616417345273972654479729710567468109261232936346749055411830247623642577524327018038919836379833157078068686629669652484363208862944654204928454552553859943938255817196552499212380361267025247153908350203358212411554693153276252083499161884172314855233052445282916764756382078918009263860235149181363768544383780142546892097520579903733866557362130419450393603041770401734817679637994626830674669180833909448891454769381049564607655023615620643508234514335658028324960323480759515499810232876411567600337578153130216483727665084127463318089088459285686788192961679675689314681328499636560128703639784551870447403660698416791017604076617796536627032519984269898726401478925701712450798727189907676011438494550276465476112497244389896127003253586291885860114871310570256224131177733510734015736281451863837526948005753616639695913448357217096127073516283112130328783015455556208483930544419434975858983019456997269739227579687803943329963666400956791289237892532218585171812321219103693585086518688400280858601371106130519790004406805143410156547845589287032031327994598446867437334533638073843554977957318036242100627485181549844803267796047749805969473674187339509231012303376190825068855532519447750250748188180688917217432144805655752041896143312162312437051912899132004312388029755609172643235131938982456331514203357074842668495811451182521285103192395547761212670375421839873030989721523673834432028405821390391713899899108628414240954740602189324411968829362191825186666787739532934132266905743436983418811590999321477032912618316710927630469007894810513742730451688665039108114294571768346178193431912298818003764593588843076556046836859668239706577442490376138761041310662706298766452133380953245237112392491952527488767942459023028587321657524699515533176855075621836999872817520734858370416801025286404885628182872615622602865290309960460750290651071234530226526922239075825117090040718724211556378715229424848974184391676441509149258252623561181044515575123875759191631141029637884611678614465658443983641055741674337593990204687537285924807039460655457576654772986701337973519164739447511157743695603527198893563750068437894744769375664318908763389771937792214769890415596202149647556501580725207028818631727275421429254735526972127936477568113181205609367474514069089425689201015230364489441117503355569847376627335673720332991672960941221058300354755315147254204076757966044066057330230455736621003876870742698475364252862256217793716019256219783247186021969945272659588550620845796310986838498934000854800436047174521163274295047600896788952575634057369622710566965833380065357574747618195604213153692183514383254679006577163393841112226344502359693873278987851653769140147700148057022968506725712856201651287245042933963573654282916593264507928674392906762548425374426466059431614179670381110780104876587794453039767693349544421146646180513909468107772389120841456035170015113348222464971860028182072093920929457080117239611719864889132941439915633133483955096142190354566052473644556800969480348123296026776221384243357399905246604688364088940969689464179910072813098916623297420244074912479243875959023887138880582046202655159365968804046798846410911469707090847588248414465649243164327818689877793457835861998653247274913179676349591212900084189611662847616155441264701921211124428642677588412278850173925720080728762093487042209167159555920110156520457121630420043345249404485817301168425326935153917274199342260658070700924063427682225847862841813291612837331677592913936335658947853406847834294003677452823560380007564574323343443067829055365608014681386154072242452664627602417074488650465116858381445000381546423951202549800363326523539380941172867801046840288576019835807173110973131264787228818798726013281646022580862786219386848165890599662361037244242732298217608845910525593423248794072596410437401033930682221449711764715433901425546553057868418713829030011085003348034572371406484312769794498603649766845154156523180435115201073164159736146356993760458926306182648038282975587917751091766257790385830090329608812377686895959922609323494727400333987250859016600920967909765198376470905812694109185837749095257691940040616059638414124194092473818703241251840753374489231016556141823936863542048712222646572602919266473885118513273310094603389919502214620442082005045061911390318195393823181613644127570753067828098641797251155870183220367602943566347133782548552726596776620087470853173203297350250500146233014952697981414258155266617579688886319390050489214975306729969614875951172683051522239740884991524922646448030520382457922746170913117513714963146547757557258819724462413824236702528358958534474714540364015143946677833805059876308780107666634399901968962851576305090675833689755879098499242367205349101630001590194267343486629168270181747157191421437406385401500636188801426456985550123168149593745242361438621829343534957078958946391375669559370219744601185364527517274098944455697080723934893897896373628753547707052640391633119865353904887278381284618503950441917234049969530474525893974497511941013997763286870843346763643361870636606037707560353794778482423805413876051755651997148595384406431769646366961275020435391015164669607010681837009835786318861997773337895901413969011469099249732138617174138909265823668444461359149017516773270424877856347595363408684383872808832912426768644443979954980463773911304504306455013733902210956085435285617538577590416725184688955138646418185973510429479098024318938192167112864691448143253169638704626299066867210074845842265071337252953165001620705983642336537395638219725672968711904880161193737464104512197944009988619642767782479126082275581110724095220001469731162742369297832734645659487852907365978365990822275353523347139456108233877370087863960274260171036995252084186421186503613965472202349595755143459286568779857138161501705429300828662197178538743378208668533977018778202210066932588698604467477686056083871522774706540211251763799987101348541582875386267302267328155099182584310382398775683440549106777073081982671535254520932458394264206863032730319496719272382705301747955839892339889554777773075867333516502503061017569640769288156452437790265235274969849561790311372344927148588967678622308940342909926593168923317209643757469556620216936756304411528343218013726200991398494451779624417540085931648556793521062993438929041093859759091846809799469386346630154595622421991217352238558493183602555397936877412877190359713094711300531239926132038773528574694597823303523610600506363644104457085909493680294464166886882295617515529442639652589231436110763662107576190348025917493610461101785921420000937404629459737264032532523027835341747272981369888339287614156430544546121699065777922695057434489807956878415312220527323115660679503815471350300448070233512475937795449193922971200991763263990225124867017778343012610837083264162230838876086072018453568447492250421090168779958033985030814972880315025036466484750762501137700335075729930962621097426456968894557848301898795497329410475475917411962501382224686452798572991181024812129685393321117104852899631981649434764843089592210922621669222562402405499238801081558833105272656628912571455663449897579335501898917129337405646548980324626253600637121782591558000415318690061729540671440580016076442559334618927733593160494762696413346463962769503910336422235038322513794707831109965569229479868044444964398762881112905381850730495473081400520749532922562432004690696739765820485203198329891743503271351754979367200531723755840821652400651587314190627825758927832739612034375945154794546205291496212689095971074119276730919319672094413127800344235555474680601023234792162618775754099451515682829020222419064573557480684557594149465012827188240287037206030192383046560359525948672245857826139937759221892642029809533336958836759100911836032236963132165750776523498254596424937234579172373112375688063588708681922787498915413953952969440377723416525839756494684524376744722955759675149292013337603941293415226774590286959763196076217448418597796642951046624086510272544879697489449041694241750526425023838873700994225541419765670029444878039317831202598034711005436506736218908665457088784581623647810656413017741708700602291733214501453146800455832216988796474091529538091777464833744888032035716129095697564316567986602950199891609465483741341917066557789651393300489588421721361710592049217665061839915516949351685776988246715629448449931979984150656258167831488279491694651913181788780949571172790538497694828204814909785054825880947904993061201772614467936549532384207747186918649114840738894332864015894433923282214899782795973884527846124518222359934867516842071118093720833733576901829301460200990805214726371231913469176327673986894491004379337417223956244545858654054641371827095920050822743433436519387568695957894394720974287931033068584812516465505719503354058324960964135011330090332752040709941448861543559752927690887754795617944900902891345944274499271547630356766066091599835703913412688384019664421796902071945049297723257002409938240331103715721955005023046252081904972591621973730897863842093645683055042015343789650411087571870076316841829447180857428651210634295272864717119025507137079514965783059216832029199336025971722036502538813356049777490345098112587910148302590009196913224850706122175585167573007428884313992740173344761191448279292276885012003516156970479270907959180000659492669954899331736204040702949724530044025383346167561953792989974549454167940838988696286532633157276527471949743788522752456319872734953451863542609463820485136765222614719721033602946893966910716264549875571787080088035518797135908919200412108082304933182350075251498258273958318114055872852405978366216467109493594746980403266459238333867764092536558872338441464785990800607349839566075641042805472946273147052527849689384988540886473053377479329420656640011559542770959377028250274059882438331557288642287765233443058281502923635932628392933185333217061464701085381099512120762420218520681495984064219575793651628829912804880516161811623813554376638267730110254018357623719361328853437188202005566433752707912872549681071152499478451650393046066189031855581868802480409159358329606649186534429661761615995215325343103714373918996204498686240779704076929890911050169327989097829608318742926621121695722580420639340766533115918763372320903688968950297189496518569376974448034965331411902840149283312008384841932940155582410394330165184431486051738912141173978516249992212321451049845506409584676170628543740531780877566624816714755463423506738822310277254498863876446444228246244729596536666154908235499315890336408274368370319800989248964986583992352620120817433380685858139452587665126087726885169560310939421542298677480474340238677276816835601050784147594982300588014728691916259434157727829170472729516622827683478512844208831379918398983082228906540827120307701697223609291930027125983419332956872030632691329729201520640515802098312713986293674211254528356765815945200114484302734471995207698780650493326098466901501964034165789665903886357147697478904014845367917664105473090362290091963131878504304725579780300157449505634993585287182134527546261424259670533535616779579595714397087610707140600173739995949645435179548871669268812522162927555930188450539370755763460886901751097202608021454786000786050933945186407531824549307209512462310550101222610696786610326469741820463110759793447435216438372506252295095462491451233926380158346517564254406837864220469637539774697919753801525202411801310025044212814059714655872817532630837130070778609632290574151682341072858646890563513958889437767767234092096490146608530008155983144159735080864148962499834495248415659433726548836538527487727600986078503534588460979583049685965825064878787533274045666133995183604494907768307999868737104977833420551826851449498117464400132941635881016739891579657720529948094080018325362607978162933734830468555061218921740944706695683144649502419452781480198179264339140627204556160547747548092846078535040962894651820337938418420191045487186910188699074278973084902241413793933930195213657089694297183733171116794005706078113502641634775690476137839886651145599389390416867035315939910349030523898463540462990351354698735407345686593640377119902826240767819760325974843723822772896677195821039959493156833723855860018552335487155293534865129877335779542032850452433102209507277878929080029495785347459873003482557240405410750743977223618034639479369044879451680286571109016022560823710087034300122874171128963986968397357262779067209199511065658838122739953299797263526858853745418800421914650492508126769364922653531073204697949533238809987464136469703812566261574825915032733416375739371878035298613697827216028201570068625818188290853307201764943839721420382872764927483010539679606405242293073140546228933843607241692059660421585496045917989127861636535760742049231696994397417366641151324819657976850914569967589880249562303885294484028819190584116659007651870386374651885507881081725022114425900613195481932899831860847867315118957707717520624074278860172413451301875792775305222447686633009540954047595136102279509403315305855151910933744089750971868106337046845569726812807078163066138512419250107322244356730856283165078630581135453250886537140089278746941534781352973531888958967295428532761887054725915109549038199738538538104023461546337090115806465496723920824161328406182493755721561161342999486140685927008232493634816711629600817786130586558516803639405111897722404302838820959744698316144122048665288105260373872928069754945096645399054423004289133777244411876956315231915653150453337898228736696616283908374005733654638847279321892352052069311445798626759333275487969232327590504107292543894595082373838564710827024854015831425166559009510874582334285164004365929036772460206011905143776566590008654670934480659777514132969589910886988345657930065994114085262109898579565944310750575377751198464010665944606807544586136573312308201892885026211912976154978293905575307500136600773936801851239216272654281486005949808910870042564076588889362602100286002902846658454224528887452604977752338244689595956629239320294753634002991789174112507999397291602861979076449246243839628419835204069725352403046851255920517536068659736342316319367951102148419309032578820746496468713670511506259220532832695867228070832093351876623349951021331579414134532080737452569601310974205292114611707699648468841181674472512568026431890529847694420570720154021023013637806538489343532445949218336979625280775652157844559671914255375630094288875924501944377808087685933810694955208241072881309898898190344411958566439995006557327088131386441643117323609077194242324552479765204936099321529284536173540922331382993059867667815039271733862055882958129342732733802005065891784968106646859298322989947367416883304421211817762481197403988852735662408191196367581909787937773278838982520399588037593468394204282280451002543900467670698955390336595381425673998052393907695351303071979916959573006596261981762838447092820325443512613819127391513486413542302800292820244453085188764966738614073825917868547894068828828731072474583656917461533086691891407976003457183162547201065556187251634241101749986032133417179709169207599449773654259549417606578609029259569517252458870908433445878834761356408067634353597490779519705126276193284808131530437831095264618964077183181896843422478506685968629987008596594240665364492147599916801881024033043694594089908888699956484235146422204299995008143880750400505851429231429576293501261202263020325451379688830762553945190431060046569872211817645807326570440640102300510036379823321788106043661629725094213839299331511855804277058835715352939067355635122571055165551942850891761567493274554747042919846430769244575753590875295981482217219338358521984923289672937389370891203213423034916914821895170362043837199924137899596234336242114041616433637080608926525789986647538900076902809121638555070182653671622231123600072353281017911185661143710084557699605957028177184897772966260666612609658064732299135367280861380782515099290809522231159214894622526289059086298847984876144692848688659556851196136315504540418140260575537823611898505817727568685330531534214485656458757340234125496562372088465164661087130231387053939065411093226472978770249346699262685315125402013373021210372346615270111593733586922570046318847820078123501002278866487682921638597679531122836524012887444010277795956144164548432079878138764498042590180971940207339517186539455292150942866709051460943201943671070801073701262604847582752292981754103240888429720249756051353596677513634099139891559984001070598810248669341813254493023897114952511031998778347628542705416041149412526801512291261800550138185446804138726900178652624761501329497136715461112442594638580063223850156745139865017202748272857877842608716326152855734153345191279954674759106334219718485806811750338872402841380788275600079874508134236434502577261380745150843688182616722742377097761380617953905217531455974937323059413998327632115635871135681392407130289180761123298135308533415664070366403713661057079404912968588118789741617788720676813734955831563651775829176999158571265814203462456229546559963007744883050969070981162365976130417826084959897392465623182415316372659225492158267159679840471124242867934235438405708652137812432559291518838926134487333173776171500349425332003882366334333478081541646053405789636782893197270114161594925144960182901975094274806590577503434532846486115681017571301801430580230603413008087516451812911707647674671889712640145719628873245883208579924223819850618920153120872921755163243878747116943961680315647633150569571147233197585322915030308070113769177118935084852315421710450888910715654279023264809470038195974668350942922966817238546308716522451078974984144956796781517403229732610804659108614409266994745411933971226315355016775525390198587373799701693799256740119163594178948136900793903536716290490527730061387337261510532286968843943543803031060428876040257702333856775253118088990674497809238595956337829225222357407656923604816371366270145718034349252283353533021846765402745794451096897947246933537621800092598573411615373527494187629532283838589323458446195149967439837929108493808419323212698806857726187973224273888566216761668371244121304706469602400123890377726454336339315156870233321595151542005004988280621863461879141881507838310702041334082710739760152235334159473533248799145532096422323530577328151255374237745563781764633583438748459694976638511652047579475809001381212582478703526822227330651964855353842009601181488688755945363802258244607243306926889681674643163565605336386609908414615250139764943005418378182444168852304687669368547951307174267543371005679548092115668065202735672011354831498618057262391030023858804666666800483347094496014567816717311104333185520542367782005051877056533482330430834136811467028288767809112165488995543342229170921341301986363673086884172001873775885046719358376411331372001835303044832352549843419815063386168198485721676268666808236038821039944865214893672264497105930640570850582891793445896672975510794770158379315029989510300313586782421709128381591445717843132743255866518751565372924825198117579113345024745367124679516241496007251261795267145803020811941187847493526185891171256305204074124118956276518387328910670432895281144001934650483525435881752104461635559877515041085841810445916731359405032288282934778143464157484288008976100343139958556981555422722180842405382125066342282473820052803481690812436926856747662877540031779116511169537020264216605482002815868768896426908692730468183249761872735892643160714345928743227303983259964410994027756360507730584635506787831806788340189711382107074496401780099769444560698553306024808348637267670864478805511781711089518565922439355204222260531934901247330582363617214698309721383807230759617989735669249218039857547336284720864183584339572253105439796659126157567019307763001259675697868471174110465134643533951887663879010094969938144006229259798667439189607204703306670227886601019479250463473876730583045971811670744774477161450019770449613470618143125212796860163590616324658864742866125438262033349740211251210694329206797626839800089702846116061862526202306422780075177541329688471916329798450239764849155258806846206915245263496085197357278416539453084000360281228982058622141737765854065944640841384584496822676987482908524650120124963855980229001791374911934468069949618916726844929341417702966117900213314113643436107587273071384104463534360475350838842941153656343926565701168646253755123391235286080675119126312964361831123584518796445359143769843464189507192582007041458457041205575953384646355253286969536370440650543591877524027144727055158676594201686114179393730726819216392497249499109215238702968343924023828735703393787918652009079389184860038812096398160979422313234977566021236467386557358270024523693223882396078618940756651579618003202117802733222925449169365599444298521762101794765417888127397416356044780988116430969586586687369367321521910723245316737373211553228129212009705169256397020950217688066940058296223726934001000108746976624267203440903171024605107766578969463894868827058373504530163202266151364616847153310938266381890647695349867181710266336125837025324165528326765768800851603195829902744486502694359844013568311139581752289705433445030808380523413346194133076023768194087434981296699063006560065294850706648243978150572518175965739644788890246504896851226754215388723909840664861317002809243691961253202978197697201313103080509415896728486988530766026609135038701915444857012233146307383325268725639228309480102147917236371807450600819927825991510426070887658668276732274611060426025335363155999428650906431550408423004791332597940991416827576604740814687361332944574517290671283055573433633814293751647444449775142492293949649693188836806318809646738613061568774175599670410475219519300970193105461822272355211395939329872572519445934258551691240622248559433091236588734432537691741035525315491922662733217088321895254371487370598511271980064660692086890823590468797768082069966801563513408533115820624086375820064432249366059754154021188879049762972357863785112211513333768897692683255325164186964486969894990722371295908053967006664332682557699244226236542147396341365675615093382584954949251025412138927410275945924741521692495477601356856257671964162708372951662968028358221056488903058825997341230781235135848960370200701307424967522244443740493286719571750607281666207571450100775358643638827222327707260052970268942187783057445647463180163949730695882566124201136787556785092410255249169570929058655264540873898560839877112968130203358095557565093117333957699594691301345198853912944704440150124802699066386635600095291123614713650023828492907397664430965381837203141698648330844771291738621624597349789775234050386307786348586975236533782637216999490754456528284646327359124787021938723308618623970016730211104519532292916437038641369821629607594278580027912243680901957519082175883493471217376495327059002304761779538386527647321434322752581966621213109420389422683039915365867240197717332453925064408797339348248042796591285920352131794302276194898590415453568078517682467105240436432452022954498326341458385853055863831991491820757180640336896498960399334617717812979396263380322574305810524541334065312089990269090010296645937637330161454797116047834070267601775461342062919884339360673198466900856383351001489485150183225050657964315499820642418704156066417535598301162564728770770760355895742612948504669387077794979296450833154330940427338362694992222547673274264756771095034883775115209993289689508140275673862589549907591751837421220783072060609369542610091938792856192748117180725396131505645464650497562100250849342333751472418307157424387509306488189913945598375787417131741548998829247208291127500080505936022087883862297399100010085517062891575585857444298374393611353759215911555793305584712794320132574005510379381982262842034296632587727139209628428997462841716300967061500198409571919212980020830018324906135167080630558999729768340515903429889901432375861227169552472186489481974546897181339763417781386792809523285009867965898806609912598179795581848329377607051332814755627115275408038692672001463823865766534175973784249134742890087940268385546761045099952508836933478861141778305927190428450140199597423088946732538951356849482140187513182573245024498078896615580189331894584708115512878997953116810368837865082980665426774453298957086492723270636209177590147233788998100759623005996593401818534891168910195241622443849085012688384685027881343648948124331293367516510383457746084671939683678430791166665602447876938761110819529968866746699843063604064672933714220358828619251627948675931402904837621344002764530827447412673718048214014912666985484163830386140571140223694245596279321457429155484767512249364662375959761020606456237257197003334751985423132438786048907097039114044102680593053454650532396093834443296934478436943898678476220688844507506494028842677789031050747812573843438185963092596871892780614139389576795828409592461711695346509259668260898719114364188001288693151671925062576526291807336863917393724118558096868201020646559734221580585084380306810745578471779592764901310407655311026526112675945834616616739078975071280276248535535706308125284877167254180412130035455639340164025909826793928806816646022757776624167129260184687854130627312760141282547257164261900384843858038143106476623523578908378573960868806972200355207669890966586787409852389461392593809708415364312466835206941103962138188228548682349636610738790659930721999632097545555253115822956732419492661687396822648613497646441594350174509124097024837209834938281043840713688134167476353892990574916878713551588111608003196885590999338286494318042723049581016739280170480266497414312252902733642544868123901647070382477370718315964043180312514841593130600779228059201951579010198180296982616622198948723447335809420647871282491824727787575219638933765074904024777601755792416707530724376315968189379475314786586675369865957963300676194397333370150277127934005048577247409436788162711755987502076586742933071385352947669138794673441375305814510108360390021937872201188097077427467823917479695998493112148532574246167422365689055648205107163995439867233220422888008857761129477037372518086045027683109229370255267011358275568543701789618403223890880246161939673382378677638940584085278000806319223601837014120150810611466185991265896856378464441811084471197709021657792022493988458634160675162116131083299786525303692497440397511290495254600394686793788942628404897653766582436064163038210944675805712906026270105442957094145524002190958364933034178314492968537761599049028306972239359655349078070336313880601567809637693560486432564358586843909644617614921974749963402667138783804087415271568722387395233921788172506873779686264811841126966060775023014787646155758488130402899120556048607571700840579003997863910484784335662178038942265835670194060557541490256412405092660519687415913810974416622084853996116170123674874581701428869618154513330555935761406666938370204517483522498704112466155267928750762751761025142332274863082216905702724060049794715710496539226971443856632943444602804415324793001911104930460471240082658813926376415983997834059713500947954527886426435507996800633954100254797240223446797205621067266003017007909942729027361247897156503196711085208540507808260787067943639839966587622416551524684516711868198026616789656155019707708380232219012930288205747973834713601101049019449519000936999341709877535453584192005735244846937016957287673687447308597993423943609055613412478935148120245841526523035536887580943278284802332772124518246693858365990220899540471437868368646219128633997524293917217402824537154604360425277532622872155299751381111825745245350946810797616720018288341536449753770415474534020841783201474526156264180796641682554081359798507983774531964546349973677477165415561089639652319203725173707059360667428652812756733498275886539426076837760140196312162775074778132933099564495188089791386850057995219437986450377306260031474760457429247801401092329186380999196244165457825310259966513047652733845934150076736172135936825348056753310326339822206768487779457111005864988276095206955214998748748043876982184493100089771830977145641623497518314818007038476532118232581414758032029073532376314558619613244181966337403986583946173275124953291494052998293141081334213213090529217202644754311094563524741617620232385304738654085499224164331908552201186370666518364647856359550093439045474161256462348528131137002877579590410803520052103496258567601650857147682476094120281135558691497604195702711410287747463054473647805031627828855494624861248374687076486445186484858052331639172619756857876788071079227594253098301248604869320899956883570691460148358179960176848882180431409060571149421714172423368688094775585580706707600731870111950862503764725730559330145230387452668594527567131688346982950737218227783215364806131245789166755932364787975213235744539315331759231022343298609197059164354724293693835551606095241745684665856567900103287003142214160716677057551074554298004849640597627589368827467136571154555976505415540866054953058673315069975893537681101248886415750009195810175279853972542915595536949414505818673110696208787656348762998137441194983241776926240516255967257445740646717521054637174228770438691191207454413127489456082885098072990729907113004116758408866807426618516657384656293066809202580612412347778281579167033301997313744603674470503461314363560694500999050419410826672085398367941631028685355577493327462437231125204461026134884300216319771978938878560120891023884976611976744166576356012842388652070182835685291958958950448894419199058216173702785353646411347161713901657324091017699409833824285568117637710823363866108464544989122072959477078416508948018720225459488024264386156979868730572957210254057427577053744868698557695841490380819713155452798708359085496720672420317284566246239728849703242235862613411444124833116515731453223022354590868926946518162956439390909623563255399723912717097671477614390229931027223146772023000138736934991749337492984299192236205491341663037269809556801604949262141978986380994812321379052790504329608438697387334071845435770336678153951795551933466587938720958425143388270884978679270525573515580330946697718961603156407458098792559293175808547427856833484078190867828133678640916941483020166995457836525936510302087215309819653154750748865257849454881689938407765348369810798450202892319133650808045645274981641618934926894162179417502139409199700137537138345923430552546840734879678251053987753994913286867361147951220731707507236573680406728482539715273792130579689742544604383828678449930988964710732827722496466454529127079615392845957788480390732168944702699672388546570585205757172714495290516194077424369384056158609494647452792147663372877461335791299344473441834475003566788258895637833353237460011042226862024390395323376156081183793745285966214120952206566455314338837538209047290568263403901347769420240299286596225279904555282375198311626811898176137305234868396865713389579120301841476577492467585010711813751008141156766431889288548414867511431941819903037316456679707767999365754414790349330078405405497520090116256232411954598217616695902480179358871165388063261832002960331626740010254429516176849303197430590365255486168740158665881743798575570944101553456199465090771504534409627781643823317453350479235956975621617419260870814032151401116922522140905424001467845226047427999177709779108776064259294999412295677962399017372493160761015350435530637018521215229826346121133741234376815599764586165442226476422571125326743029119150824321281272272398818669630953542002757724800547753932557693811055893271523449233887095622555752932625197927352613372953277108492126364352955568411022885110513293608614711599242496990176363715741212863818198204223277075208231748978032395021603239811166357306319502650362836450331565484687391910658165898623935525325673623350611297731379325569783487515165703605211611855578300583338610148621786109024272447986280521515278452592506392837908785126976731515486243152576591869631875905207999470162755226582054934849151493023004048937759846763110606666841469557926892510400288360445391640268485043153877362516309071751251517036777399916922912829735134661280470285664489460319937890386001960494765513067478708198958360208613370115736499534231984204928134778918306470854032853117393769725077185371724622953533546040708561881692253207445891670116418779644516401525057039839793694896357402430389411746945625767108667840092750005854150469652677115791086089370749520169333860219787323221247002030168675210684217806162043826044556884300996833463590376284456649996004710103500132906981334105942206300513527821853741883214653513840065878868249348933713345518152383017050672971104018033650655960146425955348352112302264406989210664780830139112214648817543853553345117418465581457703384218066706699942542111693600574403050572885468629778794663719923957572844062721993523627445063848628848926226220795488955649818532240077234834748446769830928211498472361366735851540382554352997785286140994904568930927334876816078631888107527041421837853271520102128004435699685220045514144181757253688685556672402598614989814512308181556470927791947956905629448572697333977367458495830845596453691890866445409036430608827253915125937232429513308643877275095281230217637003190055133992161326876017685011210691475084579036224826518091336697361593575871761986134902128819223465924442693064062310574557651834753975561002669349778794109284283730414200062824266806873639718027076533742033232436949378020975559404493463232567058360467342145667878723173549882271178227646894432641968430425941191415585536956824210599534439434231493646223309349000398001093238991291991651517035566888569731539621775447192677170181132949711657719084628334894397125671823386971118731378072337730864690443641091514261616683855882468375748908650051516325202810294648598102702166610598807564993771180789907401177685894230149013298422138925762265458719550966745410826135644801354618848391001775145081087824238806520218371616310071123271575078597889509212963252472594189806361093793930703531921370481172489031160682346217872994595491593578630507519083256579318834235535659797000455114461073963034244971047890976755884168953835728094473540954299710780691908798127089652414431676875730371873955934421877231113029774331592280349340015500376611132456596768938799365304899164544402762078786944208579575446741444960454379527974819786962420831776466202395794501391395739309508594783818694964382104627461003507044817739924872572415274076455129913211412869546740675212089262188955058190600133377707350592768738507866777306708954115246036549603309834024659200116582690427279177322978734112122415993637286863514666370020507403698842939018299667495011709286578852926729483336353696799069965237766537730884887974066993652236878537099621469630302260454310484377261910537685207504508414348504842228440370823826808930131632039978196560191529306073379029737617502744095301311644903539003272083532989816565751226220460157034071374090972568659918595726833373458392047621295340666616105987650283955921475829070009336629684704338437713882854415978662949326304702923792709945901737671197806974494112737667317594111456665522633546507180799874067253095365605331892586220738424095519680228315209583394785187780526459947601874475837734807148429922927035171552965750643765795911811476724886065619782188402841160169077212723743876136981551351026776984544146354097602817879266154612578647123886874303659823647988623057444972145666852475961280750306161652871508070775383371460333042207604776835290357533027747091383542959303067536290007765207935929085627841476931388840378178239961536873803543293499095078044274802797406067948920026910107218657811545173539807847829204864631105035697966603635727710067415809338365245660530871491386776397649812431949800287954306138591999600900116677626702520594949245610912127745641501270746781460677304701472211357677968296815290328977769593760782512387005854986562704508172425970080215939087825069302452757134228801236799206816557175932886851817120935866370093287712691091398693737318539139036291574166900613217503674212521746011462507872969918364604713109448519559080923175715507244443403972277490898610901837358367122884429459173960201007600803973523663571507761346915301637075627523013148846049949812613086209655529704678921214979271610580149581859361215921471815683168183586562331677646241215834110199731889599927760531252139306130298448421414868400422284293462573465957497795767105399932563135682209692392127408750642056848209538686567311678739906326893100844017833053427911950779836506119517539981629023016226856517381370412024874364724632632368959356905009338713232051803625087680822458830969979611132160971235195051255699373481293403817096240230408757834111336977978574631488722133207845412256468327457424167737314510726398651795363101958713860877707104117969947256289190017284211407633974442286671465136253767197364801979995267243503966520098808410375550997886965441481759037886158356558191650341276878789381870636633290823448009996935061599042574148222073525340876519293657663914564474091695256964112061992760636269790103065518718814568017502524575462557536440784752557689792947642112067927560531299516504740038933881483392120356859459065826442255085093027575401668724843451884837279894651480850867205416306160847757692834721513771877192371347507407203945111296101402795260723275046014204349253891380649389538089770157139515625756121939402702756800463585627424882916758279467080982285038144265585896336887226665618598873714298551493191049639822745868053641783927881131820497605321970287689439998338931953128377334946146837551852220920980926170878698898979434127878527385382688769321498736139859875611867082704033749636265829918556795920874830527481964898512528682867154543657788214639289197989970641355650674330909770910823437793900081656229662629718816824139044290710122845906699583686974741170005729139405291326884633339591947055032766118489023811021028864030979804405414551803071115643424765703110192392350049823998053563512374048506054503403963456617114855699737160184258434148928351752167335890819521332313083597746349783637075788098211390918013901081977425243595143040019711159030232585187446921465484633698040591681800200560194097989630885892943522369889751681846057187580248057894248816001088432625713844012883086117190797354488976418708448912574628050799873043473772979701075460841013568599757609744433589288145591083692644803853272357968285858156704892693655521884997720798702913403646298391280604284838619758620511985604176271192451919087506415521548882855806428411471817975678461864739912063993528323174351909996493426263623807267468827654882132181702329649872882966972013990813833832375636228133419504921609238589080852800559384603969318405612851475812399411060903957781907583048873931752092035211573142441828955899425291188134176287449198826256725393114366158902702520223941580275601309326521586012722940358758850938145589909161228067486470035533650429414344434223653420969272428324196308110726627989238472674078619712948057747901355697052310010699237398860970192427499815658147283775174534639849904181868737293706386208389174424770388957497308401550064693075858711495111319548680522919669200200656769286898298469616533115350569427897208137235721161629142616939835082924725093645420771261847544016090669634540730627927853302889186818721079873792797369471779735026005435726274625798319895109140682841196461055649685063145276024996299991733498552678322744821388263266249661308732200185049217891763720092257948505131764645725165212251070387448062213749829677399490837176434600066715034850352419297629646469540016984701605449263141281851317563390893980157669771814560442250378638210140434002895420102768383873053277494918869841950418678305231791726559266057300746109162114696582754166495640655934510204881507547573039255730466249065513988579725350493386998677746146077399015646359376012028247476229198629627733573402792866069351089727927928879843137428369368902655779674660065291480844309926051649504279090075035695115488811337276128013943629610665698479527873440388366305323912133533740765770328756988149033892358734293424015420544754249666158993411700950252386609815929006353277742527427597186659424078332145690980431777318629160123015544247214426310741817614551883904411730003154601451313268578310255602094309434871420796292583030699136099227568912834877574339119138559656011884408297829002789099616762501380901382072261903216161869213890381326368559538311534729594076395433907647483497454184962680711781465411713854793369430798454186173676385505644350537261843202432153844535845162329946679061390773058110873585345104187758481136569829930744130314803206212445110734092693704273843773035896187682724337055687854238369747912517566088755767338225348239955933531409516720070853920455886836123695455437686646849060264006316239300818609468126634759310908675945064305765186184095531041160340890642341172092240376515879462777274272924470996770521025644678082195128633723706456457415708222151736739122619302185931743765105654642283628836946235679238718171538096862166276585342088674081634837491635496214334679243134647969018029735870044622703000243598932369329436685689136401243444154974109524032177631394756686233765269599564833785188933848687397437345311464955096051922112253638558715641789659709616648615090739885509786858291633628375648914118607427293587804245419252944700600207935282093492824015878449732578945567268330444824886864594550204685926058523069692762714553867278128819585933945681566677347077976359048094908147050464478205906367660286764756050469562410363468548643405874232830302565104638226863231412173842982572353029954141493163550977161863281018869117647792069621756560320170259464498729847522336543861747649540668368757401661605857418312023001066131454429515043245947310112010536923157115534725634524934297100241591954539434348228029149690182319286384327167878925785517829635959957291336987372940887572567603396738576050061433939495111147644330782092377573906272662713125095904935609933864528325762616793937614507658038845743955374009593111833326555762768709955135844683986769389743118847466889472047205980939530887383502876458096912887173947483690834738296962402126602275800540207289718251793839963606626766801816889992819541757171096476744408654797229455896514357461145909883481180061222924255584513499276501248632777631836423479632008724124834811022283955057139276375356841107893889335739195901801193405515509640253169675362335132186200513511491282605773842542664273093677813435482632972635867279638449486269496235964413080224271511763979955816351230359972162203546641787620875804693053546466634914009116905095492703324655846196973265804365676308331633207614793471955114558908848195667601950437908375756064706610156380139364210189376140422915984040039271789773124251625493057554231989897991882853348181514558973789556654359872942093196131739059250824052760308633176805241174554014825385553394389139292943047070799084106015211436100176210601058899545807244072037882314529161488673068855732475607066501611453588347879369989716663216604522876353543609576031400086275604112068392950273494344624777185824558830520287068828042079865973650052749991099302656205878542423033506377818467203461709035312382002747044409213675078486431227447118352372696012847353756876912817813274964347674968085295490158958501036612540197193828054289200144404450771407550019173634055323286664608658437770776097805341209623478207917220722407336596451266429443263235107393884333354065838943921603041243762586460276225814928995980876998708395136930682264597349691364772909148127569295859895889720664217043796726658244793685110915551956978870989726238467787696644666951831675327503894362514953122119332390808464468681612190630472441166770600834031716191092149634375163016681027183813339583794842165045785578164438203135450097118851631742681419157931032170846683582298336838972651633460501152070815140557764311991777051973745145629889576669198435897477532393247030658340337138725340668273471902084652295729722655210537811808844440194199651567287515273693276583304839240032761894050609116388210698352097319698465556432740540113834546124322537360638781117737625409423619540165953932739626706862093830110977691184739344379627043863628400894590431707725116339775414033515138525891082538247301586460439223609951566462993737133999922662007852452242964410481017928613247120035600733080534291694454767550809999425018049086768356851892427286495723032634289115390179082473278476499340589514020415752518428518026395833187888739818363352288820413199993195310369534880645903837711669353542181204500604289458565837966673515534598623429617637718073205949796503736884199915278576859915375531259669054449945725900573411276368284718708723150185075871719892679333928890621264143644725213055737594529789630459291576174693963205660644260655182133918311946737610408837878006176195875328145748404380707490671267015045196310428012820030317883940014901116128521202084759223031793020135350018440600968432439296255093720260467746378687323873378202326306828759707674977535630927049486889514325904427450433845817900989544099997663760447095528649520657582051277685487291892738068788541427284174752848964613209712120383864758185603276513568497928119402534980848095983015142822063247739276606936569076076974125983470786810785506833512031934620201715795929825676824758075707037371990524141567249935888212782727377497078342660934011184444674740605817662870009813124132805220007490103627497274267807690290081897253539085517270767308431546374920710374452295555224476253593621653277654242740826194368146889587975317402818316171763450154763648372634229412598076337068264812017573882695845657391768510497458595617233734105225025689817483758858676052753012739205659139001126578099330841981942768288023886989692698179805880553143387093308194437200372841381617596810154225817961205889552115305722565306559521135596591055656863605785687994862067991356468299012109538727166592960925290868540534171758737196357882958246764584906977705387863576904286500075366795043659789495479229392184879629083039925442320725505640564323714322132358248261107725925485424795886018622946753680971783174350333351454586082221889050766801961517742664352610689055046070529214611710505479171284391374863238812999737830929268247998840914687459382902330752329139929107089287235742429877729395543682807198947722963499080214586451106438815283567689922177712929808837857807684581014189161889742174969404908777503568829567896176418191519584846297576651271796051491341816519052809558895648628623334307995476178593598462359175969791592215503467171240357615757488121812955248292146178811002586144949554150097581795897570023992644926836914191884332434689503978257075455106193381693635116585620633338205230681727425302486829221014391358712780237351374375994630651755498982875211185187767380379773905953977460770111082622257637243761407324461370688547277490622413770545293719449006193697394630599562977362833788252699629293383048195155432587325154120803291955321650916039007319822540803350665671674883526519485402128222492790169057008329431448342900022480443281843042815283591398765718889423987078526988480497535585715268767493214301629904097254166185593278914463100079627839677107476664985451778714750309687458214600101926665727898607771842720759927565307817719138852090615530407006110664735039811065553153897290107354200565841472860916705819783009847442998340455805944109786438965094631752394675120180884009161829344023294904694494841308518123821835872734091752631381750439521605503242352020889701415827757632784910339801590026872741298346781215988914318414635358184829429081178080462750047281484067731004996185669794816361605115790809050251533045820391707314965093821314090545216774541176732047796482629491075845331052298449882549124940061805824269843891188949337895395651638307501031427103015972350523240549010974625116836608406563448640460391102413943894539394893785508467992300012631223330615007234129939968042494625669666474985358127100755022409802985785067003833983574719272974868919460839144703914332645664453608966140465066957132828366106372708871850625587294764280329399420610598684085757283185691713629640764933586765169741003694072276246914527843434785851535949394859627153752911207092058589153387540267050941554085199754537445232558294826598654603848388451529780761239095173421043049428675563893391625755073978786159557729597323324104920337151631998103810298111925044802474727693176067941689207521532698091166894754225629330905985822467338717801774232538725576992238575544292336425756690019623950088144014975041726746884776057165824070940906726367193937515767999343182421758973830779918338899410472853050747550935315877466637937427638001668668170525022554212458866480206319328776318984161973188090220846363948762431575112976909765651858140282614219852345753456168113875152149467138760759211316878155800486815281390138189669846363256830642265565110151144500440591573786116014163025055160142848876289656118695276798657035747780170945040876765473510575892593491287628310757613491244697425284723122629217541348242405123088950670311412358464452719308470131368890268721300910616286563091931854639112457013418145227761074233940516435739592088736475214012936055906704178927707767381959366692361098734212556366547207853997319019463807467597918491380687867741505427361726990706786449547723185423604774958253542654399879322117836865547009469512311682970661163554683663573153759385403935235032610626894252798619167976547702436386893932681269232883554683358594812803921611278821905452680957759148594875600144471367924685705759958840451305140046604467584388207098689819761746148541121394523065476753437427118231068978535242060965960623951431538171576870686656629149505283152789533719443357383409678266799776441347445810406836275750878975649406833022288937136850223989355361718355008686563557099478293737311290414446187166000160583826203529430290062021671247466058924063029312537063107880130024230049729328754220185831176655402884459947098763521897312676305396195810541023303238401398157427444982817615421795973320384242724681808841141559681802193358111089082605605673558045067236182547460722761371441569206260177017350252395135319920366171166443463216691211878947061340450739646450202387689276513407015954446789318800966373033699274264098797562600823517604064298373288800202009963680071165078893551039975913366713092561505994417659257847886841800520032061634955555446692434061251612569439338760113427834508221323804397378961345340275424213940511086079589204142368245745988138037174023941979002495400811386423994669527238990794476831601341904323053373434203696944339653349865569632178874899146501219949025378199850799986765619705113280463862821880096064133321896207676681422240931682059014330215619460019074586976499275776567356851333287801277112242113790401535205252487234364017676384028329107845245146451214497846242935426673279717863867160348126031703354643424143863934231465068910847135004742074928797009255753730111905679978082200588158143860190464794229937607445917775505715530519815561284425673604509855480605906838355484410519291313453708188202710369582972527007073499461273699802604669463856406856409187816333406597176182368735002603452264681625302217931177101688676385398558625998666294192041431449337501124621880232685322025266920242938310844624080194278134743452714805774845044808297965718351499361534563991629289442254448358420810133911981471325703238663755572430709180275811725537599497928827645375342824116019248212495232956106837384263904031195751456662272511128198002385725631245187586281124511951911964123937709861683382938697737723157684979765010838492655114686677258318389575770008420566377271981314730961911972445135217969118690718493586326714958886984805907832495188857937362675061647667355177085793731264242352582793465159641706873429595246116487201031818329986271817304370501295700579739047793352281261943565215624898661146141728931994924619666901634248999850006660395310245991786467900615200141855026899785267145383909848436762514063703907734199921347490790443747030755156511925893251422225486948974109668982834233762746544565668889511610624363091558307332920174606549312320128616978991303149429025300728598510403656407694286712781129322211896075054076369398954328550390111209469915248328343934826587293646338390602556710093094321249984858089638662420570018643033766060773146597636979644463549935275083990223392768282116221307752052485960933313071461042008084513436235974323843111832727894422551848609072396579122045732062320446120827488047717659468489974957371912894171237640090805542384786692553476216142051071802103251865146110301047144826901476274445152585595656289232580827966508445607967959057789413970081547018623465208207686180794634537633318127297913759174695346615009469506319527664401229021239563110319977908517622248193834637020756201839238272057000562915198138491736559910685206220569590911133103225707419409569713449416214069245940553368258540250227710637136830546806374109762723828784735675530677966521027029958328576345455934875298157145557604571014205832811571751835914330474021856554185299180010152986767517987350198683758797582097838743573687595646013705482412409159872090862705294052568552761967285720879024115586197057414169165982085646537845036133489438356090126172648476822169851442495980294740139311238767508505485012894689570806600367666200143324375970538499391928076901422636701190976317450988987296252800196661720515777768348907636187665662593614670736708746698064478680252892504652072305396067901842752012680583520574396351184350233362386039165545771900984052699010388146289897332552061984121684412899484254668201145373071774436721912590668054431123073025893470814793064438788066688544510898168556806210905128764125272016685519260334189378182052835447293824896332955351214602767521383666870766414818099118737294995667773621831385534695097111659581352415358185303866526390478757062533765759836752151350275360679836204742400766638376531889966077916550590696510262815005575603547959192005761727294093097275106390399919960373291990912130291774483957334945143639605256940643607381029286309886600798633346093325451508641384445396286723509231477506071950867909317579855471876471997756241818365904216011399985324930955744673795545771524270735699679491919935104933956997743196825743330475995271588064684863731544725412076128677845135535136443182596123946056209365949500138718095752265956875951604497215061762262145917837336888728657649719634440030934257196295848548088385726190440163327884506187292484078226162678218396152752788227357387835476720237458225059318594784940092447880470783942228015135090484097382981951223709211970143372054004043919014511271800327500088556870654859207211855429439182613382274712026552104207036124719741208755468334031604163690138729016710281536007230563426339281070739354559548833177974476435567594421132413748321421940609562067357478457033189339238877186003180629455642220666790409510075539607803101353616371016366209130090591576404809237280082197940703283169771667725283727929664176097369271417946098467735035281311810331817486971088697907796909310588226342156873312174614580080189232246092070431614434570398200428418627774276755473470936401620395849315296585414147729532981153300594521938615422498220789786614825870735417731939928262666883737558399997786957622507082133914052546829264461805679284583202471540033578120280394457822450606010270422198730245209895229925092908549954982207202384283155255653805114363695473007206184472118260383621544884525716575211866177859064593758199407774595684396658620177135285676000991647400104708460963940010176534819053848966391206876139282491520762432904874895104806140263995200323961032712421308121755645244315275736543080183144005090320780965144709785863508755504224149026403154612255695765522152023304568035920133597462756904645980096195891531745443125108376447880104812877332284217759990641511683018108571096292976940794932579878519992993277905174589338048301130684091089533345510455637738522225448722946750451509432484203703057931956222160019185116435821892118329643665529930496061938958345390826741992600859268668580140294389957525429589458942212061365635005177894346836060295162126255650211196283749960626279659436905747950972568330883242137802913537487156690411656157320296826449129048220673695415020480290583108927798976090455771813262165840304943639862652139323855901378805684216650793514471306313747521210196596512565070616042789590852116479233097406705193800142513076994871455862121734346036682270434620907179292580400803760651315405259797011079400451007776041683638290778548461997670021095111734502934995859373187427388706644738669154830423602316794462887362580989904406530293811058163315409659521719585503564382669748038202809189949561087320466180717574219584590743711073297943353067053289378990748843988534469501976692555039732019896116391056393590514403271808893230663957183805508012607629061396370122204672100112445620193226446501374625083862399327370004955949241217171422947033647702193779671585677588489441760339713650144690545367708850271651436673563895480751718027007999928273493265994058535416801908832001759046283738485235058814435176429937810807208596989631728760765766666632494407469751903398807062867516153496898580302936120312863536235761814378304430875201454975673618354501856248251445164348425010819803713822735867578036713452254041907830088860917084692193664827849682845724392214194582345508113963932970356520607869148593677194980403534273132935223441211313133583260582844129025632241526950156010476125712253634534727142267389901779897196989193358345149034119033611089876590380121510101345739025707395882517339585378494991463122938248959385265733629566947283498247296322465927015061943353368640515701560448212886004978851448919164974096908746320326309736076847740890681496049753551631219553779338769997676269071171148617958452375882912640589721574905722486709438994244712183744745611607527975839286852815202288201051729456741575841549931313831355264882655740351267268375189722243155097175571639325558455944237536304900876466125346195314172963829128495686624540571579391247571107896127855201270234187726344143393854206244970327103479549419459401220282927488443223390704411260081146829064530693608803956365623874603355256237688566852944015636696410349751982111641502501938354328028520652581843410591653994476422520389167727216828642197657575437614185425888653295946245104427071013709674204585370730730702998642271206464243057844605791193494492564413207634507067890156797660060308214090449483707310985591888255717968690181290899546713041293777860415165479101407094387832808492921759265883172890311177263646839836675933159909497689249698182343466709225387150411575917384222892448978348315150296346643831347461724705744346586401814396119668914507540570932777331024845493241736550174227994368278184475664261782574050912597470957986092777012997514453800019286489406791729753232524004813592668811208803921700129813251514978639111827070782871887535622948880143635829290770914205177275053835426812089708143631972330695460105203600152320255071229356848864012915536942484321533624547110092828760643733631194210916551442955446204583630409328092848257691991111640055649641960034244765467305721459429143316625136122294832211125196285785962456981445259233084430342174268430181462872561128559050277739356295609356439908423778079995704153418737090347568258851996099704845004952152312705572578075975682977330849116266985137150209664476511277964968876164053344512134526899983684070729284722957039923349048591919337369645850611309199501874571482069228506682633285231741596580744640082021473704999736352676214298656606822619986702754005530721766482529074747180744058379414467680125077207755356261372456730168686307247893435994589241551402050902725360526023016901148032164491126736361852426029157486553891975351371735076109552181829309668492954774377860961227277567603023691283087050621271732010337932780921716893355541573754346925169598978685410467082542029393954269768633122556665100226900591918114050283494471088097394214491008957990686478017125083115717511925984004472023948397877490210640134970629007903283417576625731974295415692474523235404410336631184292737549748127814391387267039850247994472370244320814314658629989452024501385365549386670537972787786044601058201769807541780658736685481055823227917775196147903074248960599665105590319754696041415564697930786218526846490245780635513264514670641421819503837700057733895905737303216124251165589852181230584959823152555535429790112192192452518950797130952170335149201405002134050829910406933786029016296799734408938185118238167178074706338484014990747962761886918015239777595541856457327171088085983250869076888860408257634404857646864419879743700354806558236724812594803890264583454883728065807075342780309637556227689246328306739886726100198677867880328448170135073795938989128036377276056269037361481553169040974510915533225226854330349129430695830983681664911730253628636482560550721833812144788075378019472163650786664202301935312447941884401447328133999716385082734438471381713910739829261740041209313932376893993103544273882311339839180132277063401387374470136364528576898314055483643494365368178815199640998996249219127338172503268550032905299759161713995186863629257791452973909541845552495582542955835969072225982772276403441279361310506435964605044132138295272991298330274349174819825102270832803142572117228879131761146216167923586101048345217423806535325286686110652034323604651640025036316908894036884485735366161808700649801309492177753040081931996637736555452509739233469294578328234213505579048236446788066456744358484308494646764400768490982196358554973511188968161603101470393167274639899793202290272774199833380112567436910040863788345290745626568276391581703152804122152757885617075203000328378159037032412470605414968746413711026516990436438265015117653563179764069372601117926501546861895120689936065465240831227605080720238483228108935502220863363988740554715667724545506565305645022807008858921278337267320798310530257138438833551227728890182619841514319191215262447147962371406768443461572359623392009945963421335401221907255615090512137122333868170548677569595625184994642518992268365302405092354028733394062064027858083251727673209752906482690166974172291650429159941883504677859729335070020101928823984536990298273981500115277212218837281859539726328223423755924157052530014367148117411347415131221816044232788466716553077391239924900423437606507138740443345614967790724772464239101373306427254264294505226405687466804055751418312667311948390820763500611593356613348322165773774642652264148353269003107971392304772144852166409406610795972291811139499638469694097574687761874238781011090844643549147145674129929679139020528611162359964463467415429026171010206458011112165921229620428272634285023406082035388659216663238310208284983300054433343385676708772814614808220903661795734747980198062952106625936618100867414893857349845116434283513555103466544114887361826760957423335638989617177554795785820737720545463239018080667600389655182931159113714760636024986837616552648733327638146627564836372940454610601146518309964279385583357596049009883426784624954257295911410843807543082630440526266104150683065674958441259201233309180631486832191922336897633864287906408176660063544351638705398688337481409476405444223525442913644163929986778092971001033686191074872902793097850876226368125602467352201113022161069189635343236985154292066470138373044635098885152156713039615087498657505605111181046433544531556096280406322218137349328647885409843633993081165687505011278566694614660030950219814047139892344017005048384004009897876024043777647959056361369023801889388122872162309669197167304692857297680421792068869684546028656795649107112451394727579091371957281439651062683638486512528140538076808551489313018800328752520596890934805797256660242405599992605537230904537507782612266448127313352932245835679744319375518576661659940316034251827410922616981708085241858191962372798439467207135770342400978834583899315601346897262371193460126540003161940692712049693583673917805463860495167504069356284035512340457023846620526778418260026244777116673294465056467367814076182768034936836415349858216802062751353396175501753870567666911614306172111644654929317121398378809678205617333036740707357515107141284067952264900977069046828222616002779699732019751253310220002901902404611911437368790869911617701091294181455454631414889837306376505607065897931703322987883911783044261704323373940691019292420386920924528701257108772362528736612318376520112145494879007970149690739317935501831969967210275409104181712989216755269823660423875318323930770536239741712262680899858943600144124267267314129914886409516392336063077138015577975092078215161945780615918984519144061350137071694794339288485215100811705716386017757407763273116965734585777570110156038047872625590318248933523278843623484924289091232344562168166899095111580197181336467558673690512617293843905068627536605780015958413772814579764833958867899145372010099642976401591800353840174212407047746280253450882488841828260392138509937165530606461972863848919074128404302473315384872680343865993013996180929775159004871048524673428944626464114091492659530357560298367461841211909526722051045880095860705226308458935334045966635032660654360808139930433900958780796060682305536454236468204763623617714733698469215691966985955029432669699239237330028460105440166865583197512646347806358672695080502694289590738536585779468631051228459496592977304508544673265175804746797730609927567671291614139160509068416992613253850871959926211381033546503631899330285775909381392581385267763285548126704821463092978753597914235961436616050150379851256020563695387007063744519784153601952685960732729124442843148976547097819941382015275159302846348448216217495411407786915539625631154814302855287621656649619885534092473711540598606179600323140486183004140132597604361161909402899665120361065196969468515820502308721994803756837120951611313164802576295322850381641901648989998839668577848239055894954767225634375227556751213822082223899370542706764835154528679278198028427285919151201577643731727024705343554305057132091476776788500400207970972431412796583929039641346832462026946315157844803378137501012073277305026881111432856123235377372431482324169674655007939173072286759738890809000693415674229183339853877160968032185148676716110427649373080115280095092400565703579158561388115130954365889030044944902699634787044772626219651653396251065240525358256618117500013921878599349186185813827602346863395839420192021141626891601894785973903057703050552804749456189054146367760689607216567550794603600345697274123458643493849569249044190833903419312203566141104699549432028016735978706549004470698474948046960583909925476543425780552816629506312909661394310632875341655284575409512665672925072103347303720713792059952639631989788807272914667812530680309648918448856848763426121547144202309309657605215201980014422850519898396932236240044035829469254460662898543578259382234177031406833723769882330134532861842077197323333981103868289951126333717957982424815638245060766408405420233085888217205818967980670657025208462549099868899980742848464192423723263605970529319130007473361426581195278747731812939951203367595802380080177208106280130132425554106189388357525265444092167430330973224017216921735404527624493404474985949628944777685835044480571454103179597497330286542757700493716150266843625418399071053065819329208486993258948828230699130607002922968357107334788225022532751656580991198897614879827462828548549927232637822633990101533802036341899612412426688172228486268564994656820469639871419497211318658576994477565409215631204519481829057118493534676226991595348909247326051531218276988134333196551982436942763829486770480413767869045588515283519756901282632233951319472308074022800313735507483255011577712333343494096313019144291754902014066710846226150339083713878013520834441429030431896189041197894228267231595671654028023643606436894008763355054055752208195061570636510545804087495289886758359744370304460274783169070189082045783489987588367492161118369381282175694292264729686036378546503423598075023408002606580112303702724191711615865124586631295070739305328029783113285545724703465705483187868477362364698232988731331117231534314588325540630450801253229169748762019093547122746616407383517703947312571464780403981098212135358434903391211658233700086507622052259738491046180679608435277030793963581882906605285047858961957339329516467495274882906044668482186242265982829545900104604700104437712659005136187996396605298846162987646465666370829255784009162459612918137917993030825570619905167822212931315951274994651546590293110181208478104375946843632473279020855509369930786941739500839001273563694668133910631780710849303666258708219329642605501577900865876505319415800182219362616779634658630460886683452955555864166891509298427604841123716061900202843988126251760001606743194967562579395739424003622443461194259849017963450838684278652969386589387459331042781239095709839488887094814348692737162348280903852447577882838008428778199073553392778314069922900895896853083631564080753478936996549032667725381773644070342554816786714947316818411118135064320813592788869768695518404724769517526835835812008961605885694472014636082473652223310040082746013643029678857815958972263084538509523703848129484772046076921633159417987810161548151316866939996580144330790082218528019578472548248097487056636934035992276701905402659445658091113105691584671853030517228421922958080770483040220190048076168773194194788751882047548644072522702729558019873130221946346842532321362796155414489808166940332946834643107073613485540088518149095286047168318361668488603680052754100159919325265637630602158493799765737986217502444717862582152955751660913426103675820748283484671282782347261859438260399893075872478515147368283298288471235414960710529857498392112756277965023615633642559067832842412361213072683784502188468219957230085838365657171440422021756224642615829959347013724513580509335345853663145025614655965760746247266235073251639710069176041303274929453730884984354425714976797203793649701861370955088325675219883133776035429482106286533462496870354407379130162066810398023247757060094449973549667691572971176621899132683879690829589955233180996295773305882498752797570644886741568584150960123345849970177213019256728373161045182144496979200178325153822548215226517493505863486881011344673818706500833360280002658328020181882636200406737843965946313244675674577456734633433803584190046871528146426450501789921282407060175702654066134824893034183034868578420964105556777105108813445820842116508363353024747423877037858213014325688461944164721556887574615929112851925533289076203553718431371637936833749603239618288190557465263087933670336991346153335872881153828327613429946332013157089310738393782053808199638986880304018048311322896508100024166021235047837957153319344516649933449480056791502054446761070807096468751395608241345712272528821155154170417647847422714047739171563174283874379486180687798226390878463387330701623707710216280898832015249847470255114278915822897300955194750296708743821477508450843586794139689239605445126577837584678467335781117195780392300791128711013988629739910250143882521434520851585044972166549009986410641061903987866426537134842808882531576766836212835908653328548182105135383127057642751986910540727778141728245388451915683208510500257628038349812025947328512904931579627719575744494859348397793515540551652623572693707398771124293840924229661635152018887377883823189768550133371425594150693200553369861098254611061372032439588729573549835959485491010094702568712256049603989601255483233296269253280714361657868289176922269351432544027383702752901910359815867943215966528685313536475241498994256932144230125397232222437767300870041476607407057322287287228207541049971568101526531475635805562630644527498503566194149093384705673439852283201342003224189936017757293460017197717165466215630670211209080208468418251993694363238867218809835498484826076272267505322369687280940823217927562390194954949549799184710546747156296761491270227002611305527183504000337975964777267140608502306658390062739171009909844794045765032321984757788721219966804172897692594521372070780072374588374343965369655710523470329783033506509613714954306309990708968151420918196724937066924538695054658796184078099124801735168569374624206634561289392496471894672535023339632360513455784051231546325046787724806700520242922757676710478960751347245229155072804897834507793461415585682410397540049227546214482972268633751861577883634862065378746718459905288888755986148156370310802579851839690167567256993703902595441927607361765588748479032881953569015866309263320504376739234058743078223932444943847958737601166523397317664889749661063803854560655083232658630822103659342861009641763355964010612406379514122324108346973938414336837510448062541315146322782578940314762210820450386744502502773757950160337358951331250568785439524425631543050910329324253555659142362870189357902955422120068130504246414988127500614578969596004365751250435315557532205550494894582846016393380038589194695607937475750261365281608526409725229099684268506025844246159490907730536890852019993638599227853887399832995937484278011525311525042572119216977201638639431085817527807255285567237708866501037671446314822861495135857695140935350404740448497135141637109123578448639115415123389799422693009310287791213507670983422632777279305347668464479837327292829346616902841250269032986009889031263902658727249715977015491592416269344149627482562950919716183198779439529177764715034573202958862168900053152071730936607347936820432581737933309510650157154510021884313350198937195073266745639309881640050862338065273530281032140035227430987039256756917251014474619267076353283121858159888826073150151889498452142148729118174276678764391607319011432805098727390747499893682492384151516041903459580366724369485496115486725414446220656663253752246170150366320852288012712509391451113438658532711573091205593773604194234228823565878815466666701418848129337728416222180180901395652842452706614431198769249011435400040544519198052260116984818035682281126259788100645278814380560649069713845985916724021765968568388995752905635875468606955365782277912634299039112149441540477814939632170844244038702089778930895748604267430133756752450143889907955150933001693473950239092271652485501963436864722269842765142333987175522400063796140229945109872865743053127614525815354641716104324033771083558909711890651517305445473652128380554162907362319467130773593358186385586502759932791580131638019745373309090673253565368757189570440097779651356356799268085998287687850679815117865836441150376006213737381714183740109598943362266261599131468782475246281789527238135104329672292810896969420680975483249723452443573482231326444807039607971145529333407129079229078845283553645486073532077288707032001057632787470130949675964225731372751238403803907508084846893364012640350593941393241107284416522563197526053649460602324632137683816127644477645617890785021822471016505940159868160178579987202641590867853125363370194069322749811434107818223022204124274771872800740150990328738976216556286880736613609931293742357311885135679137535943280639847048566612216384687386931759329926001949013589051353840409566827044374167797374377574812135209999214687500718594813804712730820722145917823179091320445301390122075084349840632238635452141752883916453094743090109256945793925479110022914788779034835584760354678557591356565092653913519318928845221984289702046420517249584660502678010386104312644161617946031411340567609801737412143551515947099996223771476157429208918335727586701026215581075975933775574737244427544408766424345392191255713255255248444786017501895559133633836831351041815035195226901742140557258570832733095461952070540519851215113235767950359887826398353864210672464690695348931668758662292228617386357549758604682973784404193400646857104544062291232826817773533501969262204415093890277775682538311545364342163538488359558426120481941849369360043909415470038149957747822243978163351952115438347933639603658426111818731482098794443512025751726147259725032777075541123126779510242592444448397851495070716348194921789167486188172320614159559449036325942538225737477893396541897458132083167117036049447856956190267945133509548437871092242749178894122055377332373343527766803164332372004016243713920628755083730879105194022787159768416136422997867929232523335734772003702432709009366422019084092039998201659972176839999346869957130237673526381089799667682458732337728710451706086789449471882380585144704709648122017640981577545267346986498401857239300258670850022135355945102721612170899163535131442397067378330559388996382158249517905284209329512560496654588316286602082334042558034210122811976602253141926130413406050934199161216915611910964645449305165909962572632226621544569511295495316087199410283930750730355016737382711941051181137210118042934188933622742649498980757559102156940530557993926739579397838173438882015330828378264324925408677027661896411018126621977374727169608064771197698975612878576613236504768798855217239049048085042951587138987842437230419916661256254446522470225587189725002998388286878987029779146018610233346446806709680932824273336713050952130749385289022235803305297707317964170412777043273697476289899866741088382672325401153529375296701194602245216132646191809848751084712986450141520534663010999041877647399170040180162405298630224512616592680221393155955563892454888226772526402750072421653152995516597341487336525002154814066817401656004841710138687715698072984623534851755917324593448047722343603159918603433110987126319365155240518357799666782090378619004380005486438521958596778683629021421632863473815279091879411132947226646518331502363868619946062478487839376157427414864761887739973493113658636704284487867483767930591181082040420798701918443600911408673871769237153804051955145984208452435025733814550609897594288775746818827777781329799232612608475864043879172346898061321440621503254830411094911257855444328850466991797991860654068498801228500279889446118196816009867247793096496935518904812547247469392260186928734001665950786961936697317862578567745844252964647332998735826719386609429513354298964468897440949043430881638114806623356003910497500937770050743933725397018262680870619566623450870234508569003338021134826820704683368444753349353956520704992664796597760830934592071802956004634548170053724599894649027698573027268800894192052691530675678091181461439045100105079486959601490889433725371112332833482414791309401073026451428318177681882445415230392364769301722764094804642395023828227081653571408094210066264189219861768650632948018612472833271435651259434561092731834054286892430692274144076259662619423184098223591727886687557716041863354537524097692912191988642642534718702638679265165787343444254341446885655118141226639112429125785667607581501177898701940960836323188929254320535861716508907874378086553498521204009914922479367542729271090848458748507564168052719697597715060774471076109545305134183258800459071030219567124005225429245819372717281675536399614650123082903682779954851857557709479521492096803865646996871856181563149848063807251650173812378518297982571767638081184765066314224685983750869498693880851887345504997050275574365742345396156951222833444694525209464585722062566859378741751249846190730116853415489264066821789964917349887206134860331584899560170080860575377710042067029225129860439772965093592742425617510168488482028792040246696948820994489235690641808009027421161943255520282621571204734225433221717475192142422363891122288941047786921610224990023756089368050324203343020036766152868777010275045865477959185922818498005760044253160300543203034555746815750084194525783403065742676593141539524602594040959235541154051107378978452661842472598859596412148737664198922921734626894235449310083254613932584468059847642206100483783185944993132870822202513464448656088338536752160967348247067551642979699318244019549958309767931397179831908647013496023192175542562055079424178825437462462735656283567447184942435075258257461473222260665963922667275547064082213895983103147396740927868281324054429844538376307448626577602522850947175029943588780181739985670683235155989261426826162073195166274743436514485763773546446345260708041119957858494998304263367478461582464211645125647619823816722342860572705057771528064269616067999304782164914804895757596743358342660497833249521102591705896321362155387911453218591018138562119454357213746972189709388303733615164662785585292906385342418488271545565768793251748240871903006668686485348617228315138441904058747308422190371302880374174553928609941920406425616607521572398133771448831119093628442405926105496092351107301896662157526651303682396691791875729607986674555763038602481073275713002755010002358473245250320519438944988888920578325654310862583799655988616095842164953593620799767525954105786421851002499700615301182092443748056085494701486012300249531927659069583816569603145187665938194210878210149725279274536064617799472066836935162247561916351630424948881184715412269356011088698942301185967289554661372573641849463415999641040444179259496562247217002607868332274002297741098011682799517469177375590543579551961546051343706747853723931025681575886192800164471293955802128448622384736686363016644116617303548289269384445526413924005810500937114014320337721264631237249929701209738236318156325143035228174413020788817624982658501293586614261340015951629306094566179696436541425015498138745254615114628284783709249080573364957494941477639772387208326889567374204960345672188163580292768055925259690914448926298311520966144111796078176053725910143448161734716081828375719377711992645100988509417999141335643403348293871178457928774920067445891074907992993985647611715715679298003197862270814244785571406139032616300761332076770928885584024418924176050833423851087714204118679491990430884285461024374244205608128157272620616906783894098123911132873513486453815011198514467332152201766234565081621377439993694441894328474541276644634094327604387593459024967305798822924976285873462236799273503254988106423736792866975442705039250893422711026309963765711272454551145961077009592327272209134235550774400716076541660317914798869163355558599411051334013302188250517437231359271996995113493298942058056164980231801344016967822408494830344653594049782841391984172239730274831934025228771518932256826217086342343867565386422781685461635000082348248711890242338878630212425080018307779201879827051823808792237283970684896749008890631331275593636435670299196640714979623183514963473680593786097712505778161906116494943528877140544238574294289244513770452478353401535826344842119541392033631356031827851989691787175152419404461210444141458600379560067199267745555120439104529342487242962039639041762615233854215429878582760874584955168743012057142686498522691967604474513609492564449593122235983916477214291265844792522933826733652385389640836822533800607733675264597807187392003882766304351822959210301699074624247340220057144508353136745009685374844866623708490317049622540604975461023602737193279553374741419765313832279757046632969914652218315489040439049052071839502342798162236859284570969061002809983402930378778859726621270222265725798126405642873853483427967242570936797396270715739515804673611619510192206669105200155962634854322838746975304423346514601034938551017017637328419927925751562558565240383785308946191600654626354254892394809918658381709031870308176890400569345256105743466346544457286735634317083517573235780556481419764474074241332450264094822221067850170913679354465516785102000402115592699938263520728129034096025865682471590800163002752582743029694378276954114606622264002113178787643410661757202045090228048319689699353756473855468566084949526186473425287913759250989816566163717759819405326063922793063819975661726644270293829576992978118729004902896794830959526378291165296744116011722910430106797210747687722154955192542751551906612018117970676775431285856340403969481743436037136088969042494360324451781701396960267018994536931277732808893225681528364036414874577250848547667212848722400340349372125587271061232228377263945261642609770949713959468137997894477217888852571221770748300101334591095094433178692327081381867416424566740464567177384601232553752916452925807549646037556933341571392207010332588214374658088402900613812150782842742923241428596767067873283068342768841309741469948019232936913641872723591345676189901501344534354024014341095959722488040246601413222659165479417582538668814912514285753930356204676214514028799311201302938030232646658265818517205456732948084565474549678859636677821393516198729974456299341811650982173570620335655127388409456353096177795897563798094619177372095083594073102374078845325943150464746789653687253557778123139262512005291083570506665636064026971057759618906928134068331226368567973073129288356460160336678433491169613372102671412851660676681535694892863350565733525231368643258187046122346206494030034614958041813610463189467148164723303915146613407279585398229574861464427482739407172432322955308863720125269224012560171667244923766912869560525763461217398995112940455583281065067871920416471835555183165978916224636675461084073074196006178694145694694858854916511695870421669893429968032284407201517555003521202250170218431637469940655261682429794243594992010303590071036249206168364699860543132717078932044462705445966572024974440081627527705715816264163755835957079592892901289314041486824153942215017357661535170028577871318942619669959244724215007097831422592044604540990549641695188461311021829612238885457490840949439142951282535377171302111286584294677964728256473412159682085901902884414679624791806068609151846066457000499400355755599475185574261410514307749221429678568229978472797847339854557596582578042513308510139033756646102680978563191710658453093461351628001638182018391222029643443689997316885184733122725605125935863775396500641234553585332717200955511990454371195626400174737620060091067392985041460767154014351390532247958727798712415755117812632020636855192018423865829377691537529186917300635256790481756010619257114156659517439287564703534320459715163805730960232089190550731520110783109462676776938051585573542410675354481765876631573318737087784378122759702942090548898807768099596225804314757825132886520287890265575099979149568421100682986578552977366418103332718950499255811181600032151013143022924977813510441850504876757179637315963728851843783229220470638837176523427398854610318110518308097301886202738356974046939798374572469049632827725072147853104998468688342982926231388239757472156533477656952240401423066381153123412839731896938009202732191461124815660431791851829189235152955444501986403784130051890443160908702672655827932337712206431844388670146007017156613614592629211991657946022016250568184502397370599477808003247436723199566556050265784570245628441462803021973597962732799712808118956469010483734795060929049231101255385492779391286353757012526781638814164871581722628974013259905696046038871498744947003271018290246166640268435302547471143638446455809373844763995762067390642537576601362042697230345607750198574855686590324018811335129542518647524431541127363414935610053773193994813650064319873652307941110488614276965907261722578644852608559170112831755361063291572509873805138504308708613635315987523065017958371452589750779126505203428288715904288590149760265389452253563414938064447213144709754489272395659984653646339078169968989584784844896051227392046580720749570895911775787027645987222397429265516251121155950355725491692953098464687822080113084098994791412132759731990321308960175736432060648047958009160093567692318683821156104153708167892700675542586051907791333654956889298677348157413669549061323326023868668459269356333304998135891759640164108308454515277059744432911369489135268852195819099812696427623742669725351801276394406454013677922942970662037123429867303648641339007420620689716984538759645929002195864151616157706387793791589596429813463504170119576791349383896440479607795791035040366486914919722712191588455659026707185659502508487994844149153612084967736225360288942121344337983424806210770004213504412803803790337879875930444888111759693738564066421854528032766507694439990529960143076020441763710156910526692092398509293775171027607805088030539741927177707481242054016088743016576110694177053222643855369209048424004716379563245900852391124785338735547324841872684836280704713903693080758705528498075954946096113684637726397319571729401285102001635938998979122246747785256115041914692668698184174435200390794489890113923323988087127831642329694768898977624930780536516108962347065527872500413691498056588825421606264369277029037436862585010037152164341601045650017385166429622150921558124464637916190215948254086964295468205439202122938585160190372705341536711915805933584228898564802191844935116665412936299905250013563489636973706263294098493784019876165693975175382489280708435901362736342029086471645359650412102579628988050626693573119383727041909311998072502007067740053330343451471425581525428879132814588865919759009274132806310805997023224612955135788224786479152279504325964751763301330225343023985902120175185456253994415975559587902261332783037804302238031630611763294894830467397604418701656735019729810542606293214612295999469965220027897992326235352393422703103998263881198139510352910633733465718789838937258593270515569270486505257114812479701003872991695751961502706572717570293992689380552876552965070927998571447773992459869952328981451982848002705127915777058739841800912820233667592684052384794082271567615912882477822297982353180871025929941015896207864248530278106537098832903362223579643469709835091544413528133442010871981398008944879081192597928153862758889313428229967932371306152792537598988232555815496883722373865181100804489155289351982477933712695214795131825321101944659305005171013410040745003959946580535437875931508438810692989787852727591963584959330993497288885380673716288691318701519492817308058505143716998221947042374473190090868000624780588103877789394966708007275481571320329992234302930049313712339020158448118861536156929537120027354175088195320786580532245368177251416156475908251499086136830343489040083204462059351789047690687874898189855089553513051199511379953015789592418330153796121818987417249094815753409271537768498350789660964468088910235714686290042205199157805568058441581325319822784821232588301059973524088402628067675113142322484921145822237015097497704251907013955678966070719650649556242975451487632368892820903755224398551622018185373381558366066677268012278948384465323315037563106832893114907114539257424402769994334590693333532374494974158683925310142788742488712197539364201110283911529389566411332442547105512945043495073588018184482400099490087697774565063998902774279614881540145976756909460176474685029373308000881482501871357670351205429082935047143304947644674549962386371549126687127945299185542687276830134288396594666860129781893199111623585454415471720943461251441974473087747604638153983712952321654233062965974163082769830026354693813525812832256448335952681823531915835217287717574917243674705474236842954612035731478256188918341484230328230745635321101740001820392581925818909410372514145206439065019902016662788203532119886122702743890785014203083360336422474743260056880385008203273316803523516060787040206703436545010976235545848832521800976898266017049079347700787427369232581802361509632145202630520798117893656829176964451030939519637658482788618315613921348110440037402912943012580179885470051354894358517946514519600379297773964247251848289799556519218946865616156975858044382480626438271818624016742888322375768444670641738496170581983221582882743453648018184903393845336812435931081144632956112313756801079524541959720431956429605688267046941958698469657698151478621737088562131470418786983543525241463218579219990518995814038661442535581870952478781763619577575570455029744857839383967166982655198740000006023316870776533794070564234094790935071346308072961701595779945735846643843293853294634624863070268441612006047519455339940164066533947082694261467050612647228687440617208116038240441593779724601777451361112511519823841420721746506376947194571276800041540157646312590982308095245778005546009356746954704927776172505947501801980566230099131238728870623444286307072322283045516125263716275067136159066015570121475079597355171570171108616723883038179280708151074083220902196410802002650387880980601897554699775513627837762654055058243978928111456735639144930126554846536525124160021959437090211335283524949340330888947754057086634950416630947538434679000096064395556250561117136387399675195204241723644907110588375786125999220196005167562985714883539773288113815665820524459085353084946390897845985475357169963967124416908552688753856767637064880851675394804181712834068534007097195203021083050192122008528042833822317650154752495688417328560550953291403844728356760170605292951445102177109197032400769511481306317684757301550180438365210887205897547964531032911044147049682862342604098225046926198188287670645369160333765398740768372297520541336664659252563896051700707255331571860732714780562378824026021498152932832829556742514723080202083676414012798804936460438567188872330652010398595840954981424861452028457831819906830367639531975192567852382683798517952040967810935078863087153978676443999739487113172149275919067502926917544191907695273964362864069395875115429737846927580398038371695320830227462531696088237688995721289431796594615068023711584439619618974274804243072705909468382498082626506850283042286273883557997241481279010640328103016154795265539174554494040183344838826937920614852919113076817340546744826649919247155311000865024070600068394202911528754278343815640620907757062204255194288476449554760674276090670560518226918807573943529922502224558780043662318961986861805961379966370106125395720040114516444621890572447688822614919679561359538554450460889206565227943289823962540458411062418182066537090472126275328227744621769857251808611549986365952660032471733226097406585004888872865578367879959113954890375213393480613855343996934611554902260290024345324610348539231344267018102171009411057635574241392890717028398382770542878157999794541066939888418695016269640883337913286157688851597084881544196213596259426843088320268149091232492329856935024351956077532867645867775295062135940610914108579843405364710564928862065459924198210964275597097288631718276724013368430527957517530101876169204364033447644597448061257849178057464176315452579183278465333897972737174401457496550026180604663512234863856463704934505627939318810557658979574592917239174631154492013925461206947958952526800777922055662186929295198692387732436976124298073942672994874236242566581191060012603459652274473236886497397806499009572432276880853854209261787211764536788219528808625169858366095418392794996214127667105714572167411453157490603377140397458574553382040602410826692546260716409316643619472146532200428606649506686586044609650480447286379260669156630564748325898511254443625038541829130227844293963910204158587644483035456751154649649467348256459394329857931837941573785362617285699327355448687108019081858739077545721346703730166640719338553481361782066385670029110790787286122137300772155264002491881284036214339156246559482385022337216823904192202020277800124751739836546739335539194909649464272531443597154847243742643941646989361165226549196042970038494930453617145466706487686489947737948583795338380868416582373043383848878903314873201691716834206410125453435996307328365035847852132462765590532584458594991067718747340716150107876456673436302170848581040673741264971316391056890613972819492891700526762056614157823584272898204346128243419567843753328929499203779189235128935650500205238238467064449142170969828539320002712604031468360560345212414022943433904991500894455247278833030746568864490573308513910121895370010342266272382588453076526044269893987512908271445197407751434811998418862353416174257962106411311483157963113475347560438040433298854410829903479166394370332652108224634236738675896419094281987137497966546534848935199007704966902344188017286695554963985571599472078529304781703104552993701061438166313810439242699702659747401521263627683905070390381711156012260153007208138783736024895116169446954650321068912453890487562020190611714691568794882097999190466072684006263505088758045151598997874550350858536526451068579244389191744520322426055467804435533947339296755894047630216329173203668336687810611472427043079854880306387300386812240714027660862005790720938195113074778650571681127165967992452185569256191163804686430352387125699177485639269574429635476611918945091172861197015640313810173577153690080283757331456832815531846499365939091494849878489587143498122533360931700699026634177808814783803647941977032342726093927486077968818934477548922722121608397826025859323020695662086752284892803037042566707886543837717610124038515965763302680408475534473559210683736873907813224290025462741914025414648908500307303715269799279924551931930723561361627280762223346712497585241275605280343851471658732559963899805180972035370710630857433930556273306234098566793953216634927886551820543726125461055563099144335200877845281749894902450274142041255733322439126264682950669130887534158480853962145978424211493706960798459754432457074038147258198129387360073078388294904395271025891767097558869611554153339669517381571262580570186940598047313080887559122875317461166010018140646617392387535250154154492943332734997289123866539165554336729738334652820093001599603408564945071098309320266157608991665286956892033772942394916388940934429757476725969071622112518295122820744712304388909097748861025582008878234542628062479493409184874341053567254304745069749210912924788433095576297509610079760590111419045538043968819905623298324804171829011024616095036456192394584329946331411589264444591790159784553320312591523944795335923846098525725504229630416213582043733510044092745848876607669466138898897072532670482696998712378088888428360748903112505669584493229142008329550045689143401805765015189008416245321508600982498355287307503999599142647949755474698449623747748541723266271607281841669770453683271600525097248789320686527848874689188617944801694348283377007490027939490190681016081093075379125372820793378358675074900540266998348533792517411586379693903885955461528890779399455785666818427340885799003326729213930267437335976031682188021142458177205380224570330872686295489335788235531973787062521501887524463004455149077039438884129508295003192999214523893918873259795250466406809670272636262010494683367785061651362330864424218959579936927875720949129565867506663134814089985536310733461435986630250496448882234488118975285223179676193415179566808717464928903987808008105303658215370799115378435520254333965424109258078716326113574778574887762431137460798796172463062750095257602224835566331527197792581288976725127759768685385087259120440981515266949492734451452884540273297841451122547171065912107658254587395490954401223934823825614046652235532070667708809259792756727554111795368907056626604074737669807371959663779447205066518871082948411958533264155326888356151226236362312029255390666427298033716207338053939644093956684316933827706294770984393152039413439880923411589781800996065905981464651756686368492024058759089481554322960772908517091869400375085443698728621837220563652907324219253402490415547198685247106725527960251741037649647841227438875700567664091845208409364361159983512286296753103616338031069659226515674450261896024733912782014348627978412157347142974081703168182833140430859250108042564846752715196553433901372100435916875696500082312646919633591331093522053761982778314903103384629750943002651967502495995010868423279632091942540522606740711935951965053207953516520648532133896099920867654410913550090317758085391258976733165966291706883109102871659638303634862475510091228603093139653737672648904239311465300813456769763570569715569874597867007104222614360272102319358375075614872794292329150105493137973040532173008892475307128042406277532876988078134707164323321210464053903477144869429017542077766330725342769759251675554173637803923254588855971149945997857948714638111179306236684927350911762507093794687549191440163284355552881125572188970887519751268145581891934587224748687566042476238802756263364536857904972613316678420019718634976001050051461702758970304203399566403010937556633431363143162803533800278766131518128618694114027199817061573466592843560169404182135703532422085633715412721936901924391890991909837944030466899575198716006543221256727083514326583097228210204783970545599350933080888982316292977204305692760596626019133300999375958172452162022350246373826288961457673889003856124202225821555103381649159432936428548765334592752127941011464523118413047586787533909795999771953026196970527882689020097371843672974267941417819315402128836347899061726357801032388829905167405072924656141195433520281322527787056827783276377825658968833877147324730437255266740574074447163447324730801815289962449822850328651842768753543598163195001889150632298722392432369070915968086345977914277306971871035694040260897557582269211741434434956824014224352625742084408120794571068203069805473926538217814855147057592052086590611862641890506483132177398394889093612042377179822690184046282967469437276148277032726922144949480714334033394328357657546278800995185024421040113047406010718222109393271961013502411799039195282357325870379884815160464095758109960437274817011683172204821558153620617554269186180158710901215642362041063434929962887346615199048017366152620973488821673425558325961508476307955287834389361987348527859823279820370974348005691746117037069530283872080840872500799191842327671038070795127941243591954853446087774611045851171657125430046082718932723088246242738754869696665736727028945484708027892934314617066628363607956180395279452548273956498101398529735935409719402033108514203902982251425634197729833261330411912424918139309244280787112723537791259092394814303653774952067389748978894024327825782682809415904322315050843749686830802906446943090817771792369062164252977152590570379179500824002848289039229233797457397220079958759527833459300915503816415235013418789342722958546071604291584180745627042363396035092047024809266760243885500088295059611420627921738850106965494472589870037929409001764058644204544679987906143338095894261698899258114150045592301800982053896755878314056505331717104281458761989998581205546177051678892905282065899812623437649459455422728864006751548502241344926055713935037222201253267863677926503599684813247300109090697359354407651784912207712699240062357134619302693339261731810355421808348773991602132681995620163182750517506258552041601374312320273871852378865443894948627796160949962381137041151905665293254911129117450650767284748727513250556323316152297038867825252256127379012635424896970328813809864466876327416917355248063051621510701376360616922057448379916951101077626354107238258593295294550803692118134137766640388736868007710801706614494296427874072476671763787936334144109472469015165743947279295779126394351247181550430387258926007167284075136295358217317772077510262139772427348954420432022686557293974401085107832520044933365984339094286638190126687158425131457368447238366610440245568104040338202180538323356920288714024641377712301908161739237819636103692405464334591233562660685122310586230386934393835756137168771648870362067867607373476866900209360890781821066333500949510663883567430214081941754933326442495619519770151506641301609957234194335102410934561067212878164315278112601714704372000020279017591127413693737631444062055214994243883801992426537473448966623303026371458171610249303543628304595639658302015854444320751418195870623562635778426068858122737679117480217152984554665683010868034959770642854336718848628638491568375305607682934797499143940442789805373978764898883637208708417431711566007731753279757413489893860422825282892689091324201206345366326244075099837904036322684454448039540734920914783208120825282869772310756603774418854855101262835816027404401794133831121519361974198092101532231057783489424652771163004079870592349048569449767431819858130704475231492022689167464365738847899447227945866299531659983678076107214269464149421088394212707371839944551549090424298844603379166362323935631130167556268162249909812921969200954077244838317591390254407382058362580684892618983781793744333314945034642401541715443058278079185600064916753216929567370053768037335565798819136508462132249292364313734299273147613017295612489063191762481715198674154992653032570094122981674832095372636486696353802502683528026028650022216947662469181924942399990607035396979584269819653894802681947528604643980350349131037694594798553823782807134350198974499208076136405506726670184795361038110996803446502551460177387440114046457804523682459270104327113304447570301664433554437609033621412618119578768489754107419295827490271741152358656390566057259672417772286090294576466508942990792936848878289252429745449240892047871843147774297525469311935470505877554678149530005439968520206444533063847566368585989717577461323439921989957714160617826284667276645371844426215209014258252188624016454279458891789956128751412224910732611388158677734727326615058023124674996561032099501786566304004338072578031178577754515935190777898092748444945141276999924882453700242007469583521373349180210390370923091633509562879360704467006559338596299637897824741228376307984936056033466542043821569842307616634007435118842758130469980299771537185735285997719174449641554015902762791624566299722686432637672667188030885782133598130006807339527433798202800542955063103380601843246785346820084508636213726979758522475745082534582298726640562291954793678708112515499248916655448469711721383912183902731641820418666319346386800529510937669515285016460121820897493029272655656328059937370011882974386726526315400642746862170922203512484208073104212193803197127458532254055426453899756244553337480244593630295676804594210066961980045190487456625952246537088139697481687381775023750807099037037116467218336924608629033279664290454101808308914007152556479066602229869736163013592086666090908150143363679433614018809013139950754278006147811755729996238973441691402277305092172451452781842895831204119128784575593967408964298662429067938582610332481626791361549850709346136310079608197214654060663345392094918584960903093819716496801770251040604395564991687465485056823995540692179522304131005173004122623913695551970200583060341880897636689039218574919811894455275236882786579737444046355722853581717916522835069351561661501870737586014772937268629318930793067587421338338087403556506031615321779883181062746497680807918234824938024579671055849365276187547527638404220541120965683208903422215508706338480615660724685991157811166722944302326020649487272824189672605264114352584185680482599513344856959076326155996757308062119257618312131304053673442273475375198225647051486303151059694163408366687456941597927271334929978697791430166670421368096795004846596720584786470413792100371811626327814005144515091150107496323197809973223575264385292701350031375247664052070114326243455795074134144567917515711244967568250020608765575744859732507878120586999283282882861326046103321596397347740190583986803737660962720329435550604787509970452750530143377860461740567965714890261832933626160392364318406310651777985097575275987287869910514659908279807574744198951141791096368705541552646427727714643078013625586789947021780075659524957755871114988960472584646068381480939889367954948396013650569353573740618096726835511819611981047950942171202589346567164162985807111840587585977758638900958525832724227765192957834638383188537128671091109383994726233885733980647554955712085606553518854935893041710041902823295633864072812196464783079902209334340529509085107822443098838516556818476626161257340220094522702495671939277686378970423742586194594850101704065423292868516925206894273166044048111378855012655183456744367464249557695977186431574636723539654136867864325326264955389320850455413079700277455268189129315998953749468139521263131699055544293075683818698358557694251430626078438553877740539768938453579630918523482994746894256876261476037934469733840576160548097767984523404803661355592273817296157547360417152815486779455462217894432008831598915580114758074445592531724193655145051667018253156341510465075368010334836054141300533967145960174951932124064087915582757241251594068362688087391454121287326155585081325846968226210554305684046831139690456076423733932669385261674412477483717151739069513027111609624783247202328787724599637182215860080615936080367487039309749149388247351565749709610517059850458035304366913329962894347344545188865233171833194766609657864748793570223909497680781026560697126600915677669138824063218369027351820157357951186644235060612236511539519692479583856751848221563487980723819454948257376985271193106418408738244641474489833207636024523619182707674198235046963659431200473935164508200855807109822556459794820249934887414532039811553341221515642133600851627003438005828842471089657427071967579420336614452028638143783458975781087456650180609239777504394290426665248527713152715368502719047608499452166360389740593487418020546631968719242796740401781252808311110642853619355500777503461968842843665836415967592563691965399944934108591158154396517263743940305885962165416898997361698052198808620697558471220111272791622769122275025803139989623536637225265353483577158190212103260873552598455564220414231582886935451073500824498154423138577444304234144094018582590165933468731122983878799488315029697309080624103664892821897686055345059849401351751823176824334922441825524347718043710009691387053768787353695444560109588837883186277253144092933182758450660794123602772340428426047936784276072888539195161976723441689309315520510549107209918004815043098604087301221644784277685625907968551383492324733131363627755268395480160893398905009287152266105236005021393937864093179985395380167351444339641931284464477970567891619595173793800213040085100225371028627432898220881189347665689531143274014309231413631248969762737113350691916961741462227805183049244049580897046903506649092964563806383446185545007022746292846227894029197672326695157741544607964745333533074143152558213399231555777492133916611551380641162576270519205180399559526416929363600915978546208014410626493693644570848685971061170828944979604903763604520569738337795192536165004813472170127045061104330623476747765020570614769903327489764245407895333722571443129634890003269485106282617962463080030647420204941722458601018583619442061157400474239053622784751920622017630185447645710848444612711838154471059962142528510471518016727348648888463051002755735735234567718559946253952960316403088844233703617696208938589872524549853586774042170405754933784391410451585029458277095630452956397137426406209266692165778434773925838262725059840051824967682987168616635149093028859737973089988888564332046791837707899885760195172864464927352485265485143183054811785871501047854676136552301899254847925542086780224459417437440618371580911071380747891959946041808658683890232256520908060231294972022656559419608496099652432764026755802883205523110641616216501285710069710180253828299595750185364329055182818449873772577477666683556615914906554020151910172528912428414795293247434114597599590596373149807488134596179559318207186545675874917838937820008267206285579524916356539592251520241593697877086963835201646632026834235882115734935931215376265439639169687901569828864924127365368011369919395308234828285320067816173386296225449376175797674065504826094375211630556772746268075304422806072448564753225299643384727796784039981976778318729912163611164038305835027078760523548351209506847909333864401173057541820083121279173809341787616500271641036858189371857017656844323226828433212885889004229228328311249052410819175056856185034380661618156113815426635860975187220587272135407338896408012254604530274465607091860321120798338080597979835568333318392444696632847134492665332235281005924777558105785431813266067489336512345733975601872132079526342541351551566389565084377992882199922893352178759503037434066813501838913003103378353296626068725000194599918017640200940525662802129615464419544916209155147592959584745732266420089213126164736728053859173481551529111166974726192255262417456241648320506771627542863504550955593482878327890962034171025180452987147109847172275497921402434202954214906342143054938255051704305209012739680301065646565101011121900510984163437593798646323925333539463189229025177345746370725519505568739444810913249550966914156082319446601569552499430251765853024868429345867704998860775875199326673327660783813162227874501188795330778448455497779088303622524475040968880027593709977064952527109418869365849273291693255360054417790874452688102819365814762423965956471085564731594732387738071029457886496820504059619401006459723610920793470704578867361894387842728634429986307219363465406826523886847387068365099989168419721396685620264849376134550832201297507791129422599106509904277956501804325090716564002212212737192783339621399342381526772115957879237792384719747023721990563875628228753428817356765535502879438787363296621244808442121803763348478139158369756292302182593941230166231325415427115547948665298985255750461943751744153795084466636325838770501969894477393227873046276653291836602495037865204253730542827569901886403268612039991840126976553608119057084433114433044562715275154114371489303812187602938584413003361219002387141011749808361380544148063057381634364724583452970323582062306104468059979868770556622892361257303427517145165927147519131128734096347789582575369251283409804358462527087794411259733505845070322974444992468420658935220562400311343301198613950079828677194071763975717174230252404736735661236978123147752240867884641169937074135474063953164827868732209754299639501627782951579359139639293576002039126999944866973628645367239352522373245242291829514393581988627694031307650608169789871008563987277929143965584477663528340847233769741869237015133357980282932928774156038749050446857378390808237941748288629888735400592810934406547356674816636227927484878144246270339718320110901657393178012858630393592775408354596047575887890406575774934190617939287321046337487206789111358913135225755749737546788822547707837541129123260459945606299477423275509279268076708897476564488710783000077164232918024617730819414102278111952230201994523972501615611819278477558258233214892892846101643876884844670897435131673174325244922542586652509007409487630149415267381526401603558707004900192442871583399234032310028330879596177581790830721516270489770461313551878818367660594759849312690559545209623930439511280836078431333103467280822243417017139255883888761045490131100808349426096042034063010543345686498314612654652600907243138438332363113862975906425793368057260444741324702597525387918887262404783133202056222951436156650836331777361675305641268687762532488791714235868932627861738993785137048565054399994748712701294810220451007818427426634393528782277762855274479498347893083446457751268284113103040180977546730992798650469015220025074832333474344746172612899882233270169279190341232810383007775654923920457300672392812669064147329052677544056824371192904038833098347577897046535993435915197236817146659941245782801436083784669425387613096805685230210900941135914601352037666444291424912961648600552639952410275458057173692379518962287969132978167189524039009234689568789200854412781641904382048928630925997673363058886101793958490576637044053294015548923211025727503717048037225135954623059449244784717606693787328334233150331386467557943260954059705016034517962043554590053165271771260156186185609574379041755802552560804426262572588184345858599138379719666330874550129173455398574562366654568956877452978575999091643518800886562803190630300546114930970032405275123140220070122238334049560606158847095042271292024287214901464794789592334515079156404442067933868746226099277964390772905570342607520524516542394686504632094070388656278283710986181685861863479267658410519603800623233909491113391113101045106586713331435026877173294976422508561716312450525165901553177695594939647453009862976944807261909032744800743112062715754798388168507727148889597302024118756842591723936297390914599349884244219276672505421458816557987645361926895008677379300800073521369576587025345660925496471578211866619241794382497940373223640063546428174013903952155842543823155333998094282831341023552307399994689101462026329208590392401270806010841968203347663525415225031570225834275540316370061542778741929625334316555326329926682391213405663170672240587760729246529623005092171333176039894412615198185094189767331079894907660723109719696518360660819805527959966605774721049507330006137924340825957481285339814135365169125626289421025655878145732750126928099739140857917001960782602007391527189815309027327336144450100659024837559073694434126815083958112725452811947627641747873049777531751485117466822976751092499216517771873044498235184086109824759056048905950919640374632008194102984080425281221217772473060016950303016508149862403592486287025280804434980663443983018214617481504537133005927706230490623388475719024198224532057172042412152306099358195131935485067791313977751937347529256779650547660752254221426495393263120624275702493254371707362292179131868681457430470469818120986034466239094596973497477642004489024299249748160300051010345113131010084426042518959218159072767575388119526724069699010161503132116305833667938698578654238694007849157337015118970586616682132853190630190404773073572441944737321653727269002393640815838352236947516480666999360746412822157403306938602313209674068780626780774948268192583493435026851920759191707599772386546572770575638479998436435544933014243810621930149122567750165951587219656344035326574952503532671660876119570939453960680589546403133069231462487844582993619465699440005722914646114003213352283828460615155019963170707204763446193880209764524494535881990297889601192954839389792705056978566531211970547103440169209638231743888751145013524806387058694054012695511421118778643181315538611996263849126647507827600155496109704894976790930661502793277563152479255980432122000106464082044414100112929580497548569692419369328013239340742587676587505898057604952361629131419650939705781748693311990604498876690759439620306580912927229064330210911508249146058852389546199072831287508393999709199845129187222378612437706431647465156438543323667310857966128518786060222522741211145279406116716300143032162631267390515991585412018238861410626677765133536159215997669613859375771535895406461032040868508361524323058775205143142709568216923563313140803252165039799124533324257046080144183694106869195899392883794010177181303567893719443175495993960035452516100988158946656518410555811857282563184469115205702089064640900793998802906507118037884050481510540886631862913740598813463320649232901234212434809572351380961896651562921775933541444119096085841566158504184259054045432058540388551571587263965113139618732250749661657973341059173271086088952270028936643832500362960924186628812586222346901684901586901829972649018337235555474319956001269918020061895276453244314656894663797479190233515600390614903831876089343478601436600214267018679366118296767594874567866504406484290024431351259384694339406875393638724277244348187708189840816359640748600180761704009429539525568778996493683704623445360931563434677483868114783810084464541463791211743407249097201108326770309189365785719025021979609862769065998758159692434761012308705925239930320129229264946587924619005770665143044771959789072884078767702212810014525833777876132323154413277410830402041103572562214108077684214785109985156579922002243201584563360594093507087168457116129567799229486337195461350455515674219290181624144180609705402811428514767373776682476678412369770935575757972480753531396931420095365478273603601136346581039195113988012845086146810332057379520894634464248064468843562062315132847548215194604942679812686795570820972624892062784361783392616739624755788757685368337947198670050293555694524527470713357205522985461262484530251933807707218395092510779218014335993604020560211531261110206672147529556426037955875785095212601680186605000617554662815042680013221987284190433693262611395404803851776113503376026694124714502523682120623468495554602184784183979443195075250410150703540524534624773120672434023870544809503040799094336630683044903960242631430184995311480866519560865812199162169539387380399652149703377321778397795996215149282408485899619590279876972263272530171195794425967529627524684906249705003857609642141704520804129133590434461775123130684022392289966288111825392102791763971118098552415021366183335474566161997564613846551092973884801682754810252499397398123874427906589337737641698513415186981770097089136604408237364547368204456597757398191915282303610892549510244082709089880403018734573810660567700163215525035227020034078685344223160771331559523338730628147480136950584074393948877408598921645140150364586856626449265585666907528181678830240365068698166669830935533758440470147471739283912614102297566306211721866682785478666828829099734229578010450400510811264878395612297392755043640178565224928363608424698418925315539163098797523851740628780099789439057581742820618667353447337474386470505413183751404574774990864032238929846694149963293493054265480170691419863385448387026546941559026123161386886550193900703580077867713751911601084973999947256243142958988983923946136967021496875118596169287013917657359594500910555114440828796070747297058042405303364988860226525668313754710911528092892228934446412009069915675541453766989907177295196547020330478625222364772511162653423138188719013973334868929737988574179105303926790360276232295835422968403585078397164128508371818154585144934020594286842536257588544834561042358317201831103081794313757313278507441359844185006428959601770573534520391441355174999078576762960026155022893155279667617999275753833313868861221061278181963206614191568196626992861051766375167712394272731577922062156790262286888417140995285632936957275432494854608909287174921129661494660570148988416466124640832812169116731892575327739823257222325140688740343104685681062654194459348914565009045946460075971239435174406432989436120719885269458555101787101432932129903757064682178549453220061999814780413610679689608713371291566292799756769919669006528284685365694491337183708367168817141749802386889455065136410049205261206323848683440696926474036710181882287154965719601856307999782635889621176007579968840895097872336177583158560839230250060370405989758917449337410548077321602745473902990936281052268232695678103731295407585884571786429750053149418565029044032296212361669217622528714410759497907252537392371735294732575743824837799911325346781305001080213287882698545453018411597615150408444431610103699590153206434977658955905798915911740110538779428659328761028924452866896153202445361241951506206905309011476210283980688457669537955866051150743888561932640224084816645413595594858821915843084438190281798473923181434567588829117450262225586820626674696368897857597916676195874537542266297445991662484657644883403483430110230418053770606467937332240086394728601081229913854650006528804903888685073086436806085225838390631529728237487343918314380385096866651713052227873013473504048551836509438537922777284141216451423704366339620151055609967725334559836156996654147769617626259812356536303529862779293727991094687528544773201085756369549628466610655598639084063689173750601672102261147716464040259000820167473730008954277782646884117615580679987101226205442596302292822638140957835591341431929821145307056621183780937860739583252410745989282563882020352618143707743460712845115575237888125340060020040471326582641234245424125936192511380029082348952890235555803988466873184663021778017604525680685963786357205802610847567036989412312305892163279797260457787521279720268855288619299476886010888332085310303301598221793739039787165520147167616550230636060309512384379194996903885966649387377809088867039336946602496478200237408360289782640975013448119995083676989259262779251521303187532734490399927295203049831524173826793260122751364702851060308186119812784100075077609210644163641817354676521653349204920383641049375382599389192444139824652833365046093012090808777014323577751815141540274708474056857420855244785714421477044526958471531898064482824897557654340937436527103373438813837257395651894838394487808593658807235176197014325556995494860646177629015521833930673712631799801284189022351369242537784668087036691297333555721710074824797111212271516518317044733770255680999576491128744041460431553089999444976214355943812109596984717113923535504058829432673211574132715956258005751058902297147358614094107423359624348005405085727071368012685502484227583990947785706748065640291644731251504195358159083927307120361751530264867144497803060669313654798049249796301687161879337382790105534292570630917787562374627141209195219796888238413885670295787192966554525236231933256592312681036730009461296344377142507671506875606794299129924885595134227248190701313373904921617082236913942285671190879025883067096564869335382288252721787661303799308767495926234984887397690893551750338034418480956175463479952457288131952551379879532742849840172218902145387100930476306659604130986458084296753593139802042309314081397739182764707450693276157831222236411116187777745080243318706332107056611057786919518465507703191368461520035555407728727124177886747133406132414433876986234996465424670658819373790907982203053992489370660166049638709457330527367050031558059659160471668666050524635599260830842907718235164876452293294864125383342857227969477314681613871067496395125921157005488996912083543220151450679404812252292643909335415023470380202334014648895832098964146404126612444448398522993360800844312751035306925165577275271384613145540579001062154583953798617083997717713811777142127659632588320297534632154707984745737250195993648956897703981003785360421536318863215039970501400336457760756487523600376064090827163822485928777821342696664928189899816884829283401360609722779252724562702437601122919044449394112819416872327429328934040763017240707967620651066930661313310755155676190258229074197162977483681517959317621719195949634690905036553465227305636055352605450534327401047047627430733536463467089973709667207504209339150888486551099303926114946137485779468387635360550862361235243068999413787680204101188125618133492781810408242175837892150569561416608321110658135111644720410615718315578461528191486914357650061961529736747608314010824993150424719582722472000203743405226697697620302232931392779642870572653019249714237567247550880498447426105611626609024136310242866060065474770384175354454567814966183232938181632409047759248181094582650413336250604546631930245374191204033339104924770049194185885709469117474999080038164875886364832216666258965027465660420149768636154568875284106517765796695722891208328719295685090416942114671222019528737823063748293829509701389663662681642521540213721825468500242805630287352192850727417674727115829276193510738386743962744467350570973284468873533121723103668717055500950975254090363307100843917026335111513624477472551751940744957618968158845572399006288403744309909869482819972084389679654080565188571833389791561404759920701784886289743324703962508632799953563662913944036105143602065978393245926257120353901816473643527557952892408336479649636726024497161662101886315145755812128147676461910358408638661413100804680049474509207279638466619782731848205070342015923858709958021320334508827236373610197968012093874301149394973107727747059359007327542214521562082323759766350427062622665290601913168078195105039947187584214660854881382846433112373037837755406388141100700844373096345468575049743197172344899439630211835737413499473910667280230547333750737345674533349177330513624401279117296638102722613677421122319622703188040356122019863997470900138980779933888800837380831120621134103200913340396292196986277463389346550249456806057588933901388516829148393000117424810104930380413648788003495520474986733662817431832318349046038258155495241973361603644379609149513795981801744051525341679936317661197219916934645222260727164730258747227046257861142689363292294265987838728901174437572668063511243397729234557375548188491853657517225643658182864062153190549514903806578432944058627994373758380375538413409183704843898980799534589849596136453578791395483711654033317813215643475852754173570063883866668850193593413875235825334961236109947180491037210495449144042490359141737927117217648915602298234258430972344766526689220349030231692780704679970721484865360360954938569315352853646126344016973394388699228826907511619664041078592717876724635985605556601971323143281278526434746983594661640175381012154758700748459131509484649593425615875001070246321003793884397438529012609045092150123057182248218327009537122291445838185840127544614508807387997266064385305974771918537292186652387636459567733187385152004390401991037646671330997389486236880205036337417625202720134361981275097905599464931584641107252832089897210085621522385103938217977649409577396603145005946462363125237993414839781502726256249198572213081498174116341824275713484587020587782778803190439773863274491493987046349424676939313980775140242121977738903847086907664679041828005576495401166510448322230046521702020485025879699719084761407632863721829060824762392308773251683595025521613495894159174773196221664920221378959200080890345755562612532264676529714876375607833723804977134709918289355671161417305585977946969605517038241553987899257171634114728817251994255379097537633046665800243587973861951665848542792320454347529724142480552796648876312056391300696019906640496144809943690339745905811108449267137197976167208730676732198117135973581121106731198793038825355694040914602978062081613900165404107462361610304380331864542842879721060449855745977793985845118887583854692498909579598317679592404454830350054279276205334713782626162023448132623026794278133985525802868549276440842547927767604064488458040567503912974240010745436054048287081914481353279324263471934587933365646918237531139319143501531827552678201445931516515191795815596651315585686350165350080754704312747418118957151160405199092565140908570821409291822028950512891414806274273657259287707611393286532800924675667715197202643357851808473473486776759864841626415696199610229162418749794593091739758145105401234312074774507179828759220655227041233652145105787356968911512796967467743559661782080598912445279522045233839094121457079955317717635693911737353699840035291636821128828582983200909436820976000847934766564496656023734732650117646614466623334901129315092927767327979040655385142323700120901204268931692847919488672690429894769308515584156196228256633554572588196749291449087758742647745283369671526916598728629188357975686271419723367412285362492530241226964495289681382887041900386844341752936761458920297513853586025352636750991110449347872713451057575771916664801326555348998249047056567219632501409030152817467707762019224520546130447161817525490678665408077934216675313857072532886008244005958406293585636250053639211624080593408850350596894868644273918083284609882765034557395257747142457611196000742012071757353475250036077115911753859547519859385121956699364253307945590329525461168170623098082338575616701451905033362769610385529173366934393742749738242701517435868323384934779535639133010674630608061850107054525348304726957967851258946276663822175570872502381522926658831409847325523213337582717367214440885760681720534143353142727779206218303835438484666845827822887029352525978442292897455138810301775688164650374823030807492156137279397737502180440556298876556288639035001056328106465012907354198941243845877288270913012666585566161963070811563630948692340377985501806418157676871882945473741689291262191145488278914255439503730518167847669391176320548197027745598965510784760423221522042588471065978528396670126414397456398969919331206147881501345155623818102654689189126798865731630475573737439657025102675836846860405076120971337566446846507292653084835729625077309854142300052495258491875057223355868972516049834319061002141488831547523730671212760157080666993418449894545984522676903730868194115073226716444943650200092495071271302162803610692779902946063175442786057657865537170032259738761214293324338693418816710609581925324707880335924994926731152419256864547412158160289468655740766121551791289570306568592253069562913618165649648204778036321145023471347763133947339899219101505049830303907243678370887049137881106213545208297655031371267092940307150190893574161935750589697752332362509487713750624739112451358237863242242757845752904799790279907177309829448081504370981512464063330578638336607306037135284570361037656055130028072926717513548721881806063264840107732414512145469888621023209354446565663939112079339951344285040970028061721559388574494460261200943470078968050179696509287044255575266858155595454371769878157424865769242170520266414204539738846082235537422410444195137129063891628541509138844342910708871672305537974683207956729430388905673400703138240637037269817100062973680039115091384216033218984250962690398056335853946948437614672870903611250838228068060309297486734435958376657296375865893691281683460118963033073980362372183910697179945743724343313031870966798457971088078478376552045917116531387082118029187344769116815502679487845453388701071924695116124795914237571346447335766620697643606642179348997804320972239488165062171466756212702126330270139307996270861069823415827038625107585908012765403719143637355392947625234547938789256508897068865286242825320047304669407138914758687234402917304801325627132153080429402756032301174794668274646711135237858689655921202645250568993789508923652712308477448610863253579972192490863478113475624836626907059448088170424875024433384862386214152892517836874974699879948159252382992641689042444699344289593319431020252753212022513590829262930349707509125495303051034394548154454549154152780316885159090265509984093254614392807269205116441301061673764369990410751533786173019429336731705327519707329696019619756426878486377029846077143976831265896538794585112278601592215173645675906177838101653525325144241948965402970935418024606079990044154470674959281261018977556636487704754434160499448707865268063916866870245445012738874043671573618082548592584791937832466254904548462211152966174271998142046576976693306807299264203217187614279299691378885808364752052573238615509659609735079994688400071562441695474945540987134795922215898110087148741425016228456094023227484175758463787603928127818602325336415099186608058625002242328537091715750971151282726015926890939039813117869456136718749613607037570401442367273627128383449169770317186317584110082201591130325875444077243491187597765387974615711964434583095371788834301891628846934078372633621779291995564918986691511478698293591704135755922767476389347473975763670054645274232791038521477511936187941152462725457350257554244477775642287292650502453211876062402266785847451495936316890288648946392561468074460142701073175156809231105190304720390676440056735257682545860080371064785231767232807363189112399745512435114454120071113639425211253794570870404215308766026292628710050448727311525080828523315283112565911298208080415096813963279129140606704943541861080503671421339493647506883107360031711456171264631038102895202359576810360980813496386083647381130345632269029821223149178175590019347400681147069311036352397627520247002396656090070801333451017796377637500044167779882057386129281384732732420820825525973273430096974780010552182159398323048391574991131788969290825679296991200914058933125957545908432910522650876177172796120023657663450319590768102063155910383266243035141448263879401579137379013958755013199186479528549350108461610211989391721935969308786109904510165559586431984243505649526794509968024374700634199338283506098508063108124821873607080707376310521158783350145687339199037470730036633135771356873276509155296093856263162042959463882531641131917005813601496488753608567007574984485577059552016059480446212696154176937030819453577919996709830090764350407187307163712038262116467501774288226873726345800016265166633457924378742524935476287839290606070191640048685576725673226259104411019245437902808588318477811097307091063091234524315169626887289929402710720268949632696108977072775714248639245254814790588622566759428776523640109951279066612388016537094700457467491465776279886744549358182065928016243180665593635320809734473120079950033362383210422774791185550599409801718533780993672718650084661981997335541134073753300504283547126498090411397694026149748771955602138739398118936487221530322572433496302296931213184539533328359554848955358934856054828409139738523149030000983282172808081475916736654296997165136474832607780559384461728068775885507055277671970259775738589503806175993099798394435166120279357676743408284462709128135010533840815447152729001846827514795528928304606343574589093312315634863445212159549539943085254862597326867921501861660210803390119305423853200656486140285902479049863818336259639992730094906791656820499868938278560537253817280026186777075399518703194955419030967077363088234693808531346770887254342410010659786214616074699046163163005255891881383813358625444528439193856003549822397274424854401489454760282665525483129840682895082561031892206683102112341395281104318907330431182373630374176390507729245531693132137711610152858817581922265264419741660780549722137850397697830724949576535648742787906497534188523831843136620710423682264802229018751037653727973970801121141695048799554105399376107504217297727680368303520283763256787969754154986832428579089522222199070202968248090117080047918693057523180140590358692875222778616679664282239795159081770955835424854988284836537395589795490967977138761581602283545966322951439950006409679991900440374653558222735227332489285164159561328202377808423782096491961388778784081574023892816844313796197362496760661204384326110845223167425557125744504528421459000193386934639998278453162999956559368575131029661946946231585311749379730971929936024148491719138884723169091095098669993230208578736612534299071461912673465550005168909546503214999706308804355942636969255692176781586765131771754043075643071393258409731672383427554731262220560546921772476128249659805038046754461487915629106097630792436680664691832855527333799855719689638609582293650561775069046880977293669736437266801251411595271767713627003451666781206174206920730018289145721548947016164416451573638625627331884621358725180653564249510115096934714941239966892858349172028455237263856732622309042033604997820575176953194622869027187411394178733655944595183630932780464131047164539205613034045528625961116408545258947545996854787509245841725309518957540940483517592055893853276342043360088910941855421455730901656107347045506371434226126657975636512617485610054985684838448447030407057497026544636926248726168363456789709928590594708877443853150996641833813909297859183309622858009220519705401201068339089096661853020934212437569861221358881488892512428510286154369280229062358518618056466839283185419978771094879728879337676889114659478322788676036266948372403394402632153248654926015363261530166763535714562117396510805161224168434902878067036079271445194906211753539268978631470146751060599240633305922712720260516707788964435764874761883260493223105814308440812797230766842122044053305399693721318895847528691350584858521313667607730617094236895883173264143558224550595003450972804909836778289124861380671755832019523469718440107308362192941051544503562289479717547793121100285081491910687251688100559025219397094244306838089066948064434874785976082822552940551817379544312465256055822734677641651292218606704569035092874915762604949183105067180432444643201362664365188271948780074207259667091985077215838046187922109984936480925088573724050955486068386144885424605324242650562806622730151352819093541406783686929044614704038435791730324544758288587487863027790953182883408604898341363784619844691648020620592103265749501466005509579114545981764200649084113066659433160487533285229224300147024534734754722682949466971522441506346550611701859737635302384125679604789657997614766738763688470789640213439500499170472298953536394060635435363987986464025798162612199907690508882857903901335099024978017938102476768014365637184768239038471744288527240184964134007503740801444135148860588270696712997132076656359911640750960115413750558097206346958040747142287999759908098912023085423375322561719392922327455661319417719377211916602358844208743473215220153274880952198505103901747706510051881409193957713259809414992720261230505900543420813354867798506478758701364405638251698801290610372747345754898318857784730686843482131091546029218469108056533987498043308512389114813738347806228222639739825727772281071301623925259037163293429218234675087243196440856746898653615580481329422869588902970241834102496514949409997809805038147464461634750287110075718628770731175640006439048785280291449599147817542620228285188308755902074377111668465890821350619715059349111827072006171414145761390955733961414672770450212665109162774245067978867163284260404204710188151901470437875839258018396981753443535348548131398273025812783467921431319064069288832989500531003912401345534349300174513393140467204913474159436151134963777402014920205431680929639773516000121303930205649827879293385766785177692229209705068511904396643499939422900390636142527755183903419856159659572625815339178937051293499771503542474567377299445273966249026389324966186511079141317115532792694538357695210898643505827522987965607323733372833269059508085141972525351411803623547564128491846357143654926131782601081263808545377864540321794109029409112182268406493861396550233671009409360451325536855429611669578468510583984952386467443131937629955571952101703696368146209392209442007416749648391736500833142185910807342743035533723456302010004098042178713759646154069534137782116352370411159027005149287247385636180438422235476644688139619330617812594168187539506811302307501354321056692224870668803950768974464814728684340287781255307587597154769195311975242835749310160020536694322603404845260472314423022317744249075018653762180876910843130131733985435329442384533897699991623272440401616170925696950074899122267708428340026117311121895270724515272549471256222578161484745389736036469850379968121758495684534576056571936950529214795987778018620429030150454183250069437331040172000848040964436082591079890742779935250066083391289794305857348072600804496142550790517473713993828928663095728349237810783829186612838800096901911613310518784870077675662379371420738696137051477626788015523820382795928506913968397869798331749478556229399612813024423009707531905403638814889616351156101230728863245536656333392772651890747438921766564758058342628409698347435461655121756644803491539386411252191088913335213820784434069460113378988662254619180644160950823353675865313281344656541018263158023147610298262150901467571284743630944507464137017026435113336557923914286783514064051114748038169818147184501447700721406578147865339192230154374722073299749358640067521109750134567671685836721538196893241158751858872291894507004513109873489299203694516263297047511967703646689862999498181098744729770681620196689706388161038866749142439886646867929893817749379151474402651223665184038247370668862476647024592201443797300526172831555949927112874835235942765003836980191719776093944297519906854624847684837875266187511240157819215497508735689622256363271297165867093711786995251939357070908058460460627131693952058486565663909227364011016356532007004679587873692161337674732199515099930114913366109965012531817113149208849281056130414566264932857604376580168138112967936365711922525917874054949441805281698314705669623610304452511964032241202761486638690905541255680659621543907537957550371688538529089408634646512828021370111232910180841734138968443749278204049780648434121536891621649506581612270076346674961339756952164125523208044424898670995218959859303246378798641192281563507019534460189891418420977854028299814289485027156109806682119206528828624333022625559168681192278942251130892626354020727245917992074855039584520154559304515320351435929987813064982854572271863528946796206429419408297597702750604396239981405663314460342893370405671159425299818264198986924875836439803886238911745446998669980591149815388077603788254184362631482165777203772634729149508639701587764007370152579237638093078591065273706207243463858387107658242347557518385223999092783924657341080779164703434780219558293918066565044582247989862466915669559528645052443876718635844546231080082973670723037657553097779559412491153316394357879423841493058683930465912984933768572601024073642782074638374824071513237501331978643001554244135275259452059295856754616352017467946823931601508701429490084518165791527829330178947895714849840170126935536379813034225192555924222868811668775600299651103788750595270428697280435494793572566293930967082606181872632495831899231522087179160311263550618457512127467409431491631192816862401182476340879547581949560711454028995282008628095251334852490698420361742746007053850895909802405935738924518606666229018601025013125210683649024233428141365456854019156121454854849630231690668153379586371100160994888798352928468867508959982564698366547552149925342393502149284424504649841247247024274807492453981903025896939538795363654515602563431040187899857507731460893127319614301440685510789703112193969562008835984522815290854110939783718675428776906844172838408161101929958159849272219738632108444238380804315870666017447988325730748041954439185629697668869971103403843425578418229761227530181708545627578445548083480791676704239315500860104003312964895920683439836698223055039887567743683269442058575704626445485771927381435039408382743308074834977142664826077088433431265136665031396031312251259335050193302712520787039382944238626020380752490382995055517782246905335747138022844531270413202472529907210469680902745387234669163930347886874527507202360014706330714505932511831547969048162122369652735472962705449438142499679426286954839779212061656103897496441964624247750122268079170366335844287836993213397610149920474136490682624443971072706098314772148901035740144679974935296766989745335488466759435757214044226715866749337169010232215218578765495228454378044695961142846234480114657894108834571565754095282541272952473547441995994629623252083899739411349255563635774548812514047398738839972333959230666045990442806491551366140735627352932032205118186030495828538420743902691752088164752814735998031975945060007870060651374930403553610777264330123630026880138576939346162566977943576011326617581779765911610713341323709573874056321184639369670911911250219697773770760511849946719253776602555681261002249384653652157567032503041934083415185806522000088635417840849271700583087430715407840871216450656467676848324025457558497934469293040961696617239371476626494339543173532317359072224126637337802100129453892132217096953418013758614103806384635259207517124117193391957455199893128022473295927996471647365631442872630373246651793847109002188277125503889135035249936023201917044490180255467521330411515407359216558527616899529602574401594330500755661688354228065508723597750405318353092287023629561064569387773246822906786116241031372245763608152736360550314592564217842948831252385982889176189684670661931916522393053484581096933363582828910033474945203479066208887167139443029053908804490277329481114521177631680499118853698381556109444185606671976490973200517521098998127422356015371365485049428769226847326434978608917636478287143062465096981251274269501578170495879276870361111397757344353279589487188673475313010853974147467029618770778051416572052335802833633747101125704259575691499221398037064966640467726810141954946338080877711604672318971953871915641709640774993892392992278971846581878850433507532640738539609458710472123703346480168641381371949813826219980337964091203681183933961844256619807735840732576615597101911597964956862010643276525337596907089995774431977798571119993048168560887327090149782699486697737145572612173049436192023717904592305824533138557201418986746412778745155054859823752220072240852856514893343379309697871749836081938775705648120055653291701652712552578575974193320059674841507058730214248870026522307052866502799922177211930420850417579579982651053677867322379814899200154734673335828018478476349567139085871674903542642051363919842114625401563209131248882208584372227740653581971964649915290128042237581057808041967204785249837155556790466124896593934545466994936813437545808242214367392026545729690028821488325471788654787955215457062393482839913547359536346937669608048804143197354548116989172249807211977906246155300584606375745476807612598498332443451421365241199556064751050504315559895026241542779614951161520338861228120436879655217092518737645819726430801046947738317112339488763299349098458888136986627954152849854726163224199714431784115937035719731497695878314537812155285231151414680110533371055413694414702024724053665766236958501167210257464715613829113592389693164460122678397252051827011864726618176197760316552568261919937178677943678220142850798051677755516060148544289717556309603813591615759169689360622645622542599571538880610975510964518602134797151116755377737430519443758191219767159461524034732796753473995025837126878018688880671367490821026045077565415738830715095470493891118872412995014125474927817315822755116962325753557404825025995560860119587220196991270722332006382690293158024684489848672380485405729781906121269754095367405229248658714918183728431112179117651410126669781497195940930513313971580495621820028546169993475018259298652666784961564636914455693526014897015203607964311031801093464944078504199848022940533099769215459130522019129820923260156071566175604531088491601713279432773663178157974213102277635360056961002187792232730396976964776043265924553605948321839429608989204383221061412491281420683707950406681047976089017570087704729324821808711673702711489086651070369164066898820032065675307116603569629966732519840008612654972065246522123005527671251458924864121884645485984967277061898282816873237049330248064457357155264111424456688283269678286793190090968959588298975496855984682548713267280318513869532654467197887479915031128799229606294801786057169428505901341823828507520177095503013031416791744408888393117497671036268848531140830047973938715345101323329826086646004664649812704320356867723083516141049565406984655572419304733398053856309644846325044161999721561335298910009498684117776497217225585090919291366445884714409452992868078651548908421874662818139181719328723478864981037370494902740400324998583255297389072846500301898054331867034912796472896335686280678756693865963854094931530542801954442370082665500931174684600248537089622797718642222196733353338805407313274581445710886189320112206582340881525960352670260922767144282039767860119553751902237836267059360285406955257862394040809424900639553852479749914344663152771556432031131777384931228689142039754497724483464920560954502378343132268517372569840663039636831334092260435833698645701597526226667617308033893646956012132717609888237718561720276977099003082593680985998633917458222545114316235463555711701509121245229109886608687484229563778745621374291364921604681181104564825302030988879283065447131781369711989610289239423329327474305374601854066172915644289550845636918141279534668872917599463027938258937630147050899564111498793362553228851157689665503682818195517450467929697420182319000981029908982243970764369828442531360356244555255173674125384714101807609291535808927003096006460637333791299294618781994295168641773093749515276790144640007215413759138557591384377584887291417223402336970707790722205010382586571560585460160938148335698315128564225408388565000945001788135578157990444062871292571842074813399061629136473930491017971693878747060146789463268720857177031389889920778380664400029950333690451308521692795115985443368057697158781581035575683553263743683019936875190974006449581587206717852883369714505523420357467190147489424328911355503064994094859436001783646047925805402276638416875994912309353821669746976942492477641546523738598317951903898912314646677161748447461242228449967385591193714688642941662929531883276446681549990533951761585785641460985409025669128660958545531096161532612001144767454418521973585000788024144497697718565347539173153079139624311475743752911632986727968867005570168710096499551984589960610351986810112389726926826968672668285242725541517063630381378348074447295542741524735474789500905990397633323851129669192073670858948630046969778484818874252361378710622987429115943013081368725042356105522897663405355336980843097268903668487640495658864909852643495546300250981630119170193274614592751966513672494812818304133573684835853781223083937903093413707905073641759062109657505163228883812666809452483492084980358017998596900278003505617068864248211578916044644598945386575427422882355916977325094292778285880481660630130270810164764631348287293112875803498199597782369284784990348197936347147475041797105565070506169968918837342983846842403112659372648163323821492377504772978061155824366197544863259674964661817244945799709617160948252955835269496377403548750496426738744822899059855162534617267792128626585658971935087517689110609885454725958440048456535362893803337323581560815770741056090761137155847016690280581676807057943479189651676324747305036111413215955222443730573392418841465263083377906536893354992274944092876978804794579013365478996260899621057441021032820211438978489898778198706961862160951639170026296770878996423695511557715857736601500231524247923554264884428485658420130608404607899774594510579645851058777380118017364756936542003166498551612836603374486305196748799139548774251794875989149050242430705175930469618764616247702809753909734946820913654615060415952763936324332920077574666409364848714223804020182730136903763869770457133740877390779835191487913382043827628120713325646059689112343252604210536375155802381362200692324360284156045521152717136911405255934843827704590784751564774138498290429615408846943532877140543977095053531470952905711393349759389957584453343103848406416873709228292091829762026783653394923378609078010221741877193356785406307427341866584739051603531555202951410334019303633335127656857295521601765849416730611922488144268586791844172020343383134938419623714953383016666060868088166889697325499163630692805121905254709297669700248309424832104487628593648252492462310230224319364498032677475430019941327530770787349675773016634697911087180007560708128579246846377271128504945444457581316945000859653113667813076227517594200124532643457930874390923151636414158263048064431028928754856144843754380683391485598562687830692920431993091037348166809637013442063947652317290502306243109436000064493006502079243873833912344400372308738968837632048612774251982454289809451611639462953207318193469902382315671316532647215136859048606276788471479333753556030553613687165486656203473890058573951983672050096945246152038668351514174406811247828481202840332499681825675902858495705352320045695229623723178465169852274765868043457290698323104801321233849400084708518255960717702506306152901140384748771566708223752060781138804068709853675914894203731545652883348179522153504742654066900961511209214319118320359754849691069378684595262251314575623011083986339817646606956424115553253387669345550424699480114506068799881847082293051032824791676531516420981798996016845993678795985229911321201403547735230645559162283903489815135202477396053411752314109114072235549634163406934933624472637084072023225991186527032941360514993328474104974399746463151183449751607757086495101088801842571268228711406544300102061813544842298492339649190736740259983482466239593685758158162025202354976961610893741022841826716498135176182990585545288310396079844919525571129485622092899669717249364164740330881922893427904282309385949350993770331080146716222260213809294584269324691638894383937948164677684659969285715791797994640847652783590888152738143137623278098827101773033447750909506554131802474499727860594115286308335239992474013226922919833825799608775195707561432341005877884789244644431699288574222437825502290141462254071666827884639453751115220871853814076529192655279377887480042080944629103499613001336696794232919873699909121685859645820902136971186253100030826044326071653751717351908698754711173179125260478560416533926458448152725576686272328777973838995775866600835535996744059769545508971406051331468179188940682462891788543471687568308667976174093841272546440028698803873543557260890418705917082246078182784572318388811922270928301785639283181257634209084737352568544121798070581824603414898060472589458293745664831745756621025789974546371087179859151953598397569476582936232447560507755753280862758028438558576432123472838573463824899785378385113164075191473317908423388076884460979684098739830133452708027849185976321186898093218887407309819490079228178414090028950984257148618287115324942463139170604303383037939689182165717493656636354760892884730532089567398412135385439941226145978232608437134386025110224080864979215610758311754730792624080653091264661563136161566575058307765236872082442947031005721342601888298161014914075330946450719625761592613002397640830506033177802501003584858136456601522381522374784430173958711692888364307922370012321381333958072839319977321280182123628386185500667808507573001775432537205036860930222538010718742774364774492156907090655112054993409790337399939226742583192806262811701741498451774412992800619356154677875583950262434757750900588461887781564325811022452920131981500635185097676613675658538588590043057589486066491366847980936367784214390236560065885714561573215080867244065897469765085208111027260060218348591821561235217392105615068074988193629782929027890796870700237850056398278928296351959537914595080445182175387409138265979742483893489980578198373946676376732426955827529587722144049011644723270060709673853394822869850400937712322119174088316167059804647595147665679855872434578050214257512035545612859151925013792844010437476738036421904059480594346320293036598643612490212668881963339283865483797373202057219946730542042205883425900503395629081523314918133486785187426157115111296354641097518836033199571459715000415699759845722636497399554668155234934767414085418456596500108293751543751767384269078173636891818960143057726340707415129532395491734515585296531282250567471960708691071619386945054441691074980939755459386605153361950576218543507944688341729391335378651726608400913609071161494568695403930854334923601284734861088832769605778208718039099758114693579394861348401867633150547487556448586114565247794851291387404120093339827274439340073155883989195148519807492892467522303443392617673419720036551102944916006540806241717595155565593751697045406640467497011495196941712622102260119126818127413840213946528276206653615554832944883984002884244942939985350698769545223793595990050523458356435691197405505304164508726840038027020659479177154202672182040717751722516631691779655511350801037319482010423124975081145523716099431784175341640208161866090217997779675133994994028161400989498225101130404565202548632176844299794643166824507003614321726373086245913045384616990954084767823699927341488482489329312398558875453773978077746383240341618128965678737434520715619707985092960166343515235686470386133360922849229323842517245735537062430373212224468264706842229177219083538915293312870528906440144430786628738648299529320380191250163140886426229356095520530126549479262560574122800227377093996563407094282973966848662936305242891144598596702064961800155089111541378675068903166386498846099903917512332752209142424101780649523701839084287222144219013721364542494378275609941804342786678401192956860959263018921640246823776930427906518596623540311478909947111447719018219825441437402902816869748658733493954894222549470254213796917915884738507214941043868406464222261684419129234335826042918759802624731544724218032091803560144968726909881816744859021936077807896836590795833850286242613592889454420734613222868175773028546272082727273087931382412271432179769917573811146878585641137822930219025063218181655362655015812135356286754987769291092159967506669094530555834900737029186102316746337145169797768726983802159619166937618307343111282621560022010058035702797402545585605602457673749230346017368046300902980307347593522302456712110330851537200489813005896999881080572651676485925716151320344734739702955383690646622029656716281149517138376610733650741420000237144375857822752376404900029453134162994279530482129621971282976899369293641127831527257217759420951100247618783311803371176061775550175931990809706795248083217652992677819861431640767206248339536033306056453416529120487746362859726886499522879038566868616017720188289639862740839705260478737004507104704954028657834688124121946490480775263058587903975028996189806556302826906849347488493508999268062802237369649205150584533028840962028921091178800812904023963609143370597630575207783759928673995447302582310813828337834084762159504392701703491481262679645432002729184424238643436938103940416969342970038457867952799620690414002606904055213464824630296513656085137893605872051763663722807291528638439970098732531854563479709816892552379552054993808924158297083850773804036217713666780607869748089653175233733282106493938221118387617043253217302715889656818795275860934003109110975864923192398070239921369556236573851672869236350017413177622737690838612938348358363500219090427589766054420594017094632297393727171394280914555168545662199743150461806426768885045521863706482695204013849218424291568058609715002069145920423344098744958150662648862703963865687416319955633094952459619783395693287098309656098057453065689756541881967006053905184150702195923128370583193353291740617639159433358054594807654400483791079502985364003016988989434689276001638342263086550861835339197737117975084481794299485436097426854489233641651390978703117343543707590353933262331606644905300080923331421331668409175104771157138266984568965468202688047422047725938889659075392055040623937945866822459635873888410914421824500197284386479138847114148468769264513348357924103145200519804082180611711273261170920143565938597584614308048730061251239161132769442509842813457856558698316873523960009360693054176945353701198341994879904407063184920167439296678981834450174640628368681049394108350029135021475821096213517173518491957267886904514495977613434828963392329119149532408069976246930340345199098613370163306335152995485487581717244329371583234531471872458718475288137600921761187858051586573870619893658956402908107051111531037545326949639654801229908730086521573801186068958248224599129377184805593928524448050082582388399994508551057840870810262483378985856859437387366158334606480831135171945503796330227274277745829048046869721127482010392854761350426564364314114924506581481951939780657566902320281487790047185660224874973559697396063818072562775325505241726470605113918630046684066911662059723901258134853050218294581642198203768297275369248478592942962006729671612262523913739545602667306508403464318658621875021145536562056254062657668543690023523027994350055793492616014324746578656226567257047083995142178865235014893061772789980609078472027522452113378334040021491592489218473502865847038161305590263890872269231241371439866108435286832128330855750980936805313527357362608812501751551238159151452382957023273978207830642497897210510766166117993483139340688801352573833295492380241027274780571633965885927688545053268685970974209734743161608633873469610896913563782379035940812959560998837195027228196103196230791603364969775958310110488606493799243442211011361765727639019840587725664406620826223841777766821043305685861658400136641929877394052307916881657021419883184852627275977187209327255504782864065692781873414962363532683257395690558593130359174507009318965355346033346888966320360500552502174802706829346347544433534576901014326295794919378409493838259633406780027995889388776878397481048578805924358936074073877305007650534033638168350976219641248825223920729904940700450086919497310372473828471026586520518626961387332197878524607496121023079688053611965348682535372804427583301717293489586524250546988405458119563466911949576440505088351932896806574283768741910246085387156346405218841057494959619050382199423610406380120049736955654200769624417166116929664711808842941361788226291319474965254093239987921261209680309428975830858128543013732131539650750481255514804559290212752444456642874673777137005717694441442740024550403976363894444210289590428481724712126131224679801650813319130722470587654068524772899223689644326893000321132241278099505151559995720413442875857473084213893191173295735976817714835294774239892222962416095671352440770290645105818667286971754583148618714073933254663838314220064855157002620963043304711286695228357705472256871736819035880600189487682766076418826370752924958690689091501142546968394603605006239692912656821934082720092118042268586990720580702488347768341928719298210073109890079959779993812243463820938952655086232666104450160329393893683209780058299864140739688046691259451207176060470670816050463674735045798716161725065814205313116631740603182038816001432311512946040201825238839495793323148117828585349815506882366538522100988981623308532858540006264174971262858598310285785717853282771582642741079333663108790366684565233214747364350718274989487651795778604763301215379589854386692435431282914599415046625961886177584089402957336345673242394402634336880583920805672627144825308581673542721881441775388948673887972323539360751216075489249621530133138880247866115072047473970396571405888669846515988649399143188958445831382779915457091872156921611145557171208793248105637328680193475592093015932902284856364764098801682329044267220817073356584005522664808235747233442429574806058428277328966427939104047460271633511786150714226657535686226214395214433419056206994250320234940918920183976726511342354232520148844080894642475935403017105560024389314547606409687625632201447371486804478774450694598065978268240632952653782902862031623636956218534144806786192481789592547648373229210748567352525377635427577381264288368565271269259302235101962343770990794251302921309151555060078438414896847178005620772219316996038641570742255599266356678013931855113828875220212728912683854299851741970541971614998771474678724341943552478221560178500005603410574028600970751052231243447474769463458171477245207095482697332958092074961691160754918884712978202382265568124608879936165476995210312992387664419655581525938397838474638585736610051353076624150235674224144939509736733919925835281755040971849184395985391367356197366876285103650952022933974639127074957675681755793354516255544583930002828172808009890788693665311537130565038886584829073020352963288514225978174699153934444612069798210433948685093358786249839057071942583100615417008132303401151981301637910515964300003178176476551254720253901461514081301844403101285538780410423098259201078812556335915203609214563844214437978048418010490966720550323149466378721900068413332017966244974285876919791699335980976837818017926350904626673355777085721140558686722169638053585444562501349896214714847816514918775148646914379515602374130374430580019656193820443357490774096693905694430133296825378690402613643449792928967032089818079105805547784874410361406181340034500378112539492251889855232509612105263177089832237117303779659226474391285703782665722242246920919572982331524936143836505823595763358066093217388139385393160287957592191139060825192678830104054865081682409642980334016141667063448050664541238154620068924724792503453756559161392310713011065709262912166420832106187977704571025282706942919930763669451853867206075396932149850020257562294241035872836149578242042765274751907775615065613150842952557728680714110019143413697022677354831854520660811337146381414059308765197555635596868145232193516329426382679491509274094584433047045886134393091573220005987181692882740614832326564261784325525215684637490338802672419922536832005096980458395926592272400577095479618589715609723305153352607353822575789289945534585097402516546806027865461996406721342506980837317728125774647978260392533674475547636886697134643171335608548450670722924480528062118733987595166451836948498491482995327513731774775302627503987127903104980408469470865855409417606357368211660142317775016342119296950916884605604815511539710421712174455695589676312883733712863122050859764779940994718029686962522562250846534886195717566587043567603274697278029379879012697285295369125025211522241104502004461363591732283889543454273840203301361198606206811262944371442203396852889072512853671980883764080157742812096174228094417886665613444917860950443831680547836291335305913922857906005606374529363422849420689426065825873007678405791389193472844197677035889526921963934093926265178745675034058660376945772703973038335612507537838797350505409779624512756056672615576848271640913550190390256522090318772972119220188948236560437846244572627971380075690934017742619634959448188463181238973047520142924437012329964408302561984833877820399949162947634434256338966455654103481101872606651347652215469618569295431817362274616618926858046349755254126764312668643951763291591021736728980294782463655710242074909011756852318355900690454258856432510902226990878221917399602700726960487608169753605714216039113899516940971264645500362995866713689080330009034681552129058801169667777048092663966199356595528928982713841848350440820262492291439865311285550515289799206728262701306045590618531490672934518256782299608320812028241367318130978287875876392146531650228404638903291484830297946753083573163909666436241379443909113042169114154203456436805856918772787613313589352323675945265933891528659737051757565640019271030541163677935148179729547309586310435580791265889239026183521547683452082805933899858227011963355269752090409284337627169143585245122424396599846612120483720482874041820137420220064241601325702455573938686410773044452666092051075168284546233641491022027020327864827275718258418145144920170957091847973195115652958058648623515772526710967457260676009128364406934546188857893653524408185274170845126622265412256998924911441608172255331281327510871063495372034304027860238411308136371399322817329228651999858290816949590629029863018535761485581223009378637557095513373373881531323180355056280560416333277491501209304265945100554021578757403891525161758081837340113227330314643876521799554304346650062117312993241684778092944673479328893108525403794656714948876636645727588679572784781084289380059011375088592043647583408832670102698047741350252112253665195598722947766751142589073226507988336905925636296923692215665861280672611082651018537531930809674911970693069436357623254614539353018668748349451831584258408600672575319094801578752382417743281933792695576875803083289226782018206328989384318897034944720645279184360549241286174069892034146581701224130623108980546531010298520903052787737317446672259491671637138193479968550187436347090105957551005009871183079216193702596923144487929171563652909178944123992640552219172384352766542339984102245204805542122407293326487620957607530098463027049808668589093591903454385139835947540227896884208961904329934035160540761551277050758243837934887393956764952158812742401359282987617787861107902974793534549863831231253796393085510489070678122582035214027229711166065487826345822241765696496033180360491572194075439738711099766426162041018616880138312597659036506290615483700971832618251261740691061536877089457861725039497327309239546091168598795135202514806923827236616363094620838975609504198551884441338938521173525672524749196773154592085254574109938705641463196144065276145815668553187889394599153353476835186762284448707004477391728679995823022412375018781150899273412560785255011426100108685433567731947892585876657813756530105731244374179747492265315435851126551586576263962293921551317819008500371315862582345876396535327404276589127856965914675171965956685952307173089458730166019570392199101626158225015421759690927638698539271771629756100211795929286637135432909428180912721016728265494540591905106217072823221483685597168129154037820408735149748793930662526545772681471879653853778160858224380123288652871549454361203620398647058175022388340808438824154340459770773347754988121740536830224248180501072146687939046171556421048156066573511609361488466747001839724691852448405849382751621771806833987413488485001113265323042038172191337597879109785048574364825322107001351347475862905886664539260718765127570001913727779266899734064230605321965748997220783172973752728775039805663272516578814277139688018110316051530532850266605006456860497875948461223182797119968624897151899459219343998827004304774027680195472279321356309763606886188349938631168579493655124991075405819522063887303149030899711920075836697862694471589073827503862284747727214038496683791107432750983204496125547372245198650492328418648983738900051162712723450141075622460080895973969244703503147176126112296920486028155386575035298465771434255038888348767999425406657744381788423703528672339425036491241397154519402129747853613634200780111626755875754753328695164513548855158764902982991161523203638055554909716553253185621645915136933723710035064166318556403363203438487269381984757604053814607322129679388540790260037381608972027177935959045371953779434858068903705694399081232950160537182308077251916124704250369902634704945579028634360506766209871762187489398899552085057784060735077309353670586683297721257650893495957292671044612297669624014964687970461664366871916128452569751279236986806716955694355550581273986256166541977390743034121649603214755212863878744542678991728083798307351031056011823412662489150749167683066928397333418187205502517318064141317331926258172751598729162100772698529919108222651230079650278868726291186389213653596820344927508033201338908794497236084060363204653759893519464418234990311235766529919923459320525891795388921140742766255105776917720007496867387998604889865346972160587028346502968677171326805433214461446053078900866756086567972499750830834790720777480494903103482176661485426253757314384016366831382411783978479305271405794547441857464292866758833683531444841334032156844796900509489128431023017463917806079481225593892011638658126621270420528841826906083539312646739185396302852205461542379372046025572727993716143094393535650189974611680284518747341848375316789770353214704787582975273692623884293726070060645382511950306751283906090682709974589693648532026115460037601396095989249189573636557466819855375743714632212169776799475200051861665057106279398361069453165641767655060205958314139631373532924084562775839031103329752747292380912701938690950202257286462695253747574289144161632031297856313424969416615280319327599137863211558497148282974315023800329973094035242644975234251907563457233149042402043345578973819758709766457138856297356166866031074659416316446589622470674280996629890921474310152898864888491524576021677880019125235894499028950433259979764902084714680170895557150690994782494671439653395737106617608072910180411347453867291654482606138502140074607520615281068546213058357091857058638075505432414256585296430379485152659766441562160210665525348534162866381580606943248922372772418782310288324346874985945614999475956883642833592740041466728379358933224670977639191064000714308120493954787851176994917985870443717971371629958556115792667777905708699376302272084829947653100440667346379471853129387148528758472574779861954749179223896918334057494125877567618244331393378189802259320839051061778803260381580876596364581239446379719871626788564538631137705493895470922245124191644908517405235581860641785968237436206832500300341954571341153808962175791891513885625725354583026095382027368601398430817225592461346953753396929432046612995229771122307452794760703956164710438906402841837104859585541227242587734591077742219214990104715176568094475541625725684841931669043121247022385408072011122110372393706517908124390775934616335117036429117128505818872881820370205613968194122957547798330521287578365341895843961722944920920870394801173031230931195461863552286885838940027589805766970784091337232513569169498694976219634080011141626887714644508884303320207628829207032309690616189491064191298164727341857802424673354839545229243719799878412105111893543659354061909567922658814263200251455662289400331262051156234269361005855840884466742104832111160914282506854300622370671029936973115329139073435441845383818762042547350260688604018570435849585948575707237116369447358169940847837082626850543361164980429736773788509734253273071351976136265803807653225038218801376442622362319736152386645197408913760344590576918815043916340703082230345391850869892914467537012542303550103001425961222806024715371285249822096141118742892012967976941616401908295521352300816843617050853964362189327289229945894758107661931933494183272702014366689637986628696392764473949336781071163778899486767529944257696249572683155083613240191829336419256055122421823520286575107820147141022843908426502078217381198417649236831125718022131762947014444721100520471709774408380228170778521090791798415627310193121915277361570581383718978739524273673686290242921029633979283090686445381831493241829782651417433857005476326475206003358228448644603545547780805430410718271198466009347406086447587654983222461008097634739515950303738923275569823484971022360085077459429642562750343572371207914673641047966080073451894100030392368565806954428293132730312527039900504465730467697036553860816771988501482697734736735960534323455329971156308081101563386308999720101257339230830270923363984363313734174642634512857126161591593646275917071331758313452560186451726904691759528076266660898474383495377836581021352132440766047647713829228756894099985795285446322655860635061206340642561738157160201968954095411124628934483725080432231941570569033918391172893808474170858557193121893273932821826850384010571011661342664660506239957956040824851216224665567791231493294237016383363482511045148750729406428815129470621909850940614713692802292915172288110516978189646991359565330800672206886828405842642840182319526130058812278292899707129243582715736595776415931413493057996951877732176795068895542683679848656736511904879666086430193395535963966159565032247571539275533910970397993264935389389905700690828061435959278632487547992583460299703175144759349743727886082171316543753082552241878409799419862093359526735905302682447473773315550843508464946798147469606545532512684144273719776297804661548306942120957289806368791270788163459345026118411621357754130969217899276041007714059703860897161366000315180547754271117388281203683621437618250479395558221683117544278052705275271577383058104912541626614193828208782908361836242732759982297207671024554014639180977738113472607813531409409582909390663498384149552641039922138002705618657519964642064215282820078878320714473048501679527856641317621343545713259650737384583723940337299966783787859185439010639302645291602522169466405142620281591737693131568961082981018459777494157952946901490051891848687502248126587492497946571164238968212183320727912080975710924748727077029138970377835066352580229785722989253338520733775155835731034593585174785487196558068522146902379772674036878737536153079292080837245112047616835906408800492409952316650904443277086393195569816593742115378850373627415790410015072872400162151878949292879551777577700787002575288601291210553313572084291255112985236752161658184676317171698936959645829114794831211258398075894213008323194795664476729754132873514095343956956895327320095583013069578478888428200047602096248882576764377966517344449361140578330486678494356178927191439849656242340179075670148593703882119402066748315869045986280570078346659070495238496982612360629625012130193527456970339183153649145557752157545123601087218486629017290304838889004169683057531263861845927768221665455005354439171488788848714006152134605371331006350717373355889968743051500489986002657793695501003442641667406306797978005831034365047124988662138103807691522316930584678456787772935073099322043339517235807896493151967535775050956069259223431008520502292470180422992135009869557498152021677360866912104412790853705644922181912064123547890530584026448025072983162644335121517707219373996597579407728351175712679885453817373567505126974696080217037629408746416604153500218975271356654930710845936207034178358319849931659921549223647399762917374393680291067782500953955262155547014843798286100414503965730611824160834464972694303453760207444056624519791411550050120065523832811599068115200379969755458962871364662120763461725143168570619034048809081671969405368413657228610400448134365279624409448143963544192747859635546818216755053683121586479527972904388424514410227768149866918700437736649366054207160503204538335964968436740682797221120216304940127434846275893024609154648638466144847330690997081314979681815691164085498372336987840756701133875087112071341393988671579584253770299105927793017674194737418596526352655970857191865561419376786997542377229300445618397667154440852837296011241850222694583042508692901223931634722456127913765290975630403894364974986039616142766701645537938062128143889295352799222801534011585639641399281855068874001049701635264945490563756698908814217471086209468058326165386137280729367248731071643347523377377651051212081969322947622634474243645629773032409891743569034332566715791161017145449734292523428984078319812853759742083004685929677361530525730757088746895954192407773666015774417161442687035874704349808697582891820477079497243585019172172714566131394652396148638833147646299390533886754514455917052731671433855750401482156525252438834547010090484511952754553212393414945746810221247614099885518530388936283934970643129443952329725147890224211198337473894265670456856674681316094943958328020657387194739558362057270451641947398505359847784607866959542376092500999584631618006590221804857450563788701052656343787884957531731310848420063749982957166916636884489994806329502030855066832117243517422141560850754972017204725001693628870071226407551463181823622119477192842133479529556215381022267006595718675390088564140266915762881236627362888336278850829225950792281524766111745446783548036147612435347244418927207278558049415110222352940563305914019367264649730246454176951104824982711255994153391955483917389366315421586446112802726423317605825007149593495631201207865112121200638574399353262947138384635332566632351057528757498780837075521474505183487734680230905330606205344772655196854547868766608792948923532019330130919409809826778419951179121461664006637977483168067593809361030391592099479913212997432642285228707557803455375913967302861492081920755008932913792674880529145829879919377332318905589406671687113895322054307855991468694928714766254295857419005598098527252407936980901684702917300029277581319217887677896081836150955116702720333904785969949608606069296967581930709261172697834031534366080050180740603027168447903421815904537790922619837750991137464450444737499775803171945400878699792918030699260342793951833086107116288327998254397231392775148248284280253581958461200628526391974699533404529591544544394453448020333927381081424601290852720359877955100486469669724535074126515098440776242986423939387542140391550272886959886248202459408730328989986615126292214355737873012411065227724629213337128963868685285401466921050094130745191095138500309480744908534314026950209317280344260217618716738368123656800289567137649495719406420861181022107614199450251917872547030949770834623663537410510366958949727412311789534177942066701087116065594457156246261766947840706026492473686487566540203355951528069995706193394730115709191706214773392019903108233164712880507518501399533251571769413381775236840515285512661353121815242643107985576893419846311185233103349023375257932121317140397770016251401891076480118930373844684248225532751496218533582288396055334760605610513187612402525461744049255553650887004114334249316640069123109876801217850308790599588360478008404060843713521433364136140140686602848649603681902402117601245482458286106696152750839531064879794250078615942994353779497401338368875285936382104092587668993438864336576305881167943263468215522472644154472063903212384388425658060450547708177631132605866216510529824975286314713236883446142421456519160505964460040354180258428585515998638806344396370447818183792164463579147920956971960397111381669983406697939961996239410356149320644017072285964963309471953845789957564634030755066429431991108826936599656349864828956887870334840486284311578075774946120534581173331836527394941773552337451127382672826016023307041020929466991474405006754944621812687132385462973815315178362758033345911712952800097636582408001205604170532251589105624494594842604579789391436614916483430425461882418513320366834585458918815850897387300734974642150382148364774789586630976304890758382551213398620465349299978706010368746015524630315778807595748894325602728412480859615495207919341365855383281656264452508083734845115916490594959837594736079730282233121067366228302620732895360607397151455118205580156518477270339240245708030143845893447831520416283613834822433485988745257067000895305250927232866325387861091659659338872475093062119651333182903530544301172169104499475422907058086143524175171645221235346224017506647851772648243307572736190813112175417908784994420940827588291331848830212935678260700883251979080768699521022534857858964995376282335054463596797254128012342112518578486397355044074538217900508115682617362659689263784755768157160012100012345184596066226046580131760067587440464664317283487601381962518645590146342691416985363975075388723000343519037690241417967280574633258574342291041921872598650874663571283704517623495229097156326033263867481706543397371217822762471758164645784748248829608630376286339640450354536634788406783155821094125499663474118422587477113770325640591726643594472096622498215239615855302634359741653603553506608957986176111295717048843683828072895335428608812215991203726688361993405483669443824927234173124051361489730868452289380193778628248510277040128412161250539009503718495350689395513361777727610401209691976937084575192524342082422874248097918471738222190854014436639734570103122514095051756270983291942654455372619179476622939867314014011615299987049799170944719208030825980387528124905079334650371845723897950759505915416624462726737288774766766153378155143774039291958012662442122896530398094030606592558024465356172771463325492629276593348187295132864431882921669739750515999572017326257211003052169542095791590425465834938115795894394170385498206026414884709920121897885363852385682211116099545181634184514520002224581166896813660862536139436214213016686427648869592417659542842292646111099188044605358577721260221401341472993279531638637151403446273700040149543383790427525521734404436583641278588936327528715780135658546509639820594116949161389192742066074433567098574045354198465568112336961094577764592087196183931289025524110162572744250274295898652456830157774172344172673044308047895518772531362724270746974615757382037051530883797200951014226568566895593091682966103929652433524368221966842460462231245958335707401179240277947588274195135677332395419588940216779557501493709665472364851623047118288542257053352494647313262897537795640150252704179365303098012406446435028671275887321210724446420149180326818890509697529685366629537384873805510499169494125408551128865446524828096134977684100779834508663519405345531801649223378214883033758920331310660976378338269278713244824815201030832672135314531250781031136198416401388626926254899285218821495045015146263479454870005145266097074949140895813898482437916585535545073663912412782108545089726783365067695312057871357199302125954443439690106374300695337467128692634902550047118241116991597657123080210275348978345914277554422186735412253313555860721557678646220161098260965985770711396743944938670065769402254781521430290009175891068808666710601492996767084718977445205126008866177514492294899886505787843691479845704446575647003953842217985452008645470880908748451844129674624563186034589882453949004074402687692013337015987567945029423789366172431689241784601961831682726042554241947525506538072541131051354225304892777087854027668179111429635357915369555818116684981224693277485213777480772037654672979569337839461793780069770413531346453186447139729486840526999952267193464512081305378598783002180774750254138309916115640006346469090419938660353222067479527024158010636995416062748601013694771202717565130643009629014944321522753492364775573747721940105367675277501832977854192068830405067791913659813989064564813953455518696730808653277822213386803493918572466843192627551473540248027472638817418885440277196076867896442332274333433922177994246578855574028079524274465010286417480521348750554929916542821461240863095852410230173146383988819237967347849964974407643705634061818389109315073429854307566781539193153907964540880232915084818451875104790366183618388372416965728797030769557028166296867550166158613920216583362960000291085881710329724339140960953819973933568469251000972014078153048134128321825842846546451912109050044657786787197632821712010576916939211581062159328292107858573612846724849044722800432782187316711308247369634936764069759911590498219729417174060620198753934661713998530199441937974286230020469474247717174661296335864639567154226467180975965792133240162770398526694771267305951333619823182932893915327985216984514141531054413537585153027871612516334342083272466249878222203511423372331221230602385205329935863685518492993331926482603574403550104157444678216566017307060719876282238300743853765020835557706992211434776957698336979827552608196346101255603773409661816216837460034942960017947619703807330003833552955259511146711802903024163286713106907570253067468214737839790302975104278556715568963189245544364675818856682740438712093643222084256184295656498841512568381191389662018098466488393589458954247936500364819501808921261854083998364377937087257820692332705473453299391264363144087652426970457321193346002047506165854627540900514630145094812879220226356834381763433462510707790438138162656168023336063073951216048913207512055634899804438132761221918127751166173497730141808191680933593711745669747659850293358664845381543265887887537688437407931759379101019865071476195440812022588675581012465476431336996901385208244922527687650730380398343444386134941675361375657012003716692450907776547646060203407316270539850400717195059543115483736311156243677944958397249478026593267063045433758034430645878000288793304321735158617791428241528374359141116970649933977560840343348302446730036529452259349619795545596537629005593544953709018296610461493212199927155294499837143695062487361856060955231049536890342389374077902184308632799884503033018648292427165860201589123267131413110858849246657177398961782910715891813636256800982802440694998973876702356375744387429175106470842584908938043466485493590324207530132790346574155065955938341593146990939645030405209083254554191486329837270995052536870064417286174716253682450251126712575031997724845401656392173018177464924526873871766560659789213444175277746696327612890938218922808966619784024783480848993595099808907581908633830441195932665874011507152658278029601679142317408341173168064282033685160516900014674835917549845604068595934292077781135534557382307852786961382920454962814836408348461171379312388889102279206875532127162397126892116928124052323691441323409146245416097274394202283597816635691812490996329814401515635458731503147795609603389491068613347173000534513976959458422528260202986767748126457399166522560184623372174545369615345810208164011216980518226820104870863274187675227526973789292780319405046489465221685735736706364199114473689411345900491634413602996935717350604126310824345063659422782125406005032153908819152094051172615122717061991350471529546747479451631715858502833285468192541893898582002757913071933933053583795444683131543484461230202731866926635703321692948690647729156201722154966274499089416557619112008597155447928658542842880943969302948291454357193199400680643541831754301613545666617518600816876136479258488516969295183957521513676129082685922752700958949889857997505792018246108614840557515560318526802049569172270663825871038589586515104648480597833157090439751087365596780815576417054639747392545041172562538767876585057216175350549438459364208596524650219420913657482389628510721229136000808607172969032675255934646681861422275674570417817748166704546311650141500625689322648618372321408155637781626937176892696300813156959677742911552915718139711501931143972117258660696184351833875831689234031075314696283443389833836614463999890975178189114151315709898632000602712764984330473253707025015377887974927331463875866681274260556486582735991204891854403759536294398183403913773090839729823890070469324963186235196824642499273005996513646436470455349501372422986866176108367956495553494910485218222197518675190575854528044483965817931299126300289274875204242836188990011201550712439073335501531587292633552035342510037608759250379358870163074100527527214505168152436487465257918730119171346675829027463074363428797397136707792883006749285187879445124046084796454983543547421075538312793393382433221025463497993927803576609909184889087518509342369358156057482981587959682763424674826915174279464775791371691502136562438696252179129711435823342074814477245021317587724935588404212422063470555069665228856899507922508725883293461083145458048490298482895548914206308376432799634220933652380333575202956663449359538259603836671609068655781682457372902253560102471112195103694904138347074577013937585835949600981509334981339488624204305608219578000379396199839996268698437495999845166945339020024535477603722904865169460457528670943858227816474167711217729454676480211433731534162465885339727696824447835239052490361019428851899838358038278841727274037168634115110677635469485726118223320089064490931529613016593728329240442082513367065579986059125351281917436689161614683509694217618249828526415442613006188572036994789641632021870844795979192990421405773850134711653735199436291596612045379001142888450918400089895200742528763470727992041391049315074363173774614136280224595991797591949486116656098321038941420132999311010768515275790145071124859873500062615307442079380867838078335220209795889551011642123505974760273132923367634800324891656882860710912241467406100176248541720806346539343763957095350965782537767275809706060253508679233669033700510219023399588725932511925750344638196377046690818935951366375586989360797667100581115300206926060732250459079785598917102439695380549297122838658577225507777636340826413596510905525303014791989572210124808699252861039644778745357649946019632702280755349637190931811634275698881258402498967262253290029557369901642262716098519557465918410858787531359719745233845495566089776869304680105340172503939118421663841187509478923967995465970110030451404465754525422553119002264911611399956178540766481026154551124651079191800977727970296274161426880694000266120282795698414787640958442974921663674129462682206962393993784990327918967151237852787523388827741130707474671344325358000724920534104988999129851447855787416848257899851428448107990661466770346563113264354184893200508459810456661439534802260679278369529398569175044125452459839381545441477657963339168436658709024937656711902132159937923603358647290295004757358800496090094148435614338755004497197908173862433281338867541415947798681780819738774870715140570768169738588070194555287803151533145725587903244579961269789480538873401874164826578496091421454676778882926619163528856666328605436998835438205874364839611977537923824556921077577736856215069957212414349380909977463349146364583707404366518167763061736596204421850236407488792076449494217770658802840965928276707403017622783345998244863264277001042429357750697702637299644974252570300238261998517365196068936654574053228691896526640160749682382248026479722995081084372746069938256846439268058642391538354689954959261973045673316070342334096322989956129043847900390983957310332647785908369181278060674690222291014454171099321159468490812319872556724485205812104214278528689026025195987250579562722055580732832306094631318776122566105248795155462501005209413068285452013133410634347147331203840018045613916283274662887255116888439152744515782561012959175516696257826675156999837974094788199074023311376088043241596924969172376923176534847753278366356240028897158507050933408582531685541903875930511626910838977610210932303439394026149824424493673919730386978367134127894506815108262823494843264380452083423264322481856392767129592275002146982705374347168896486282643064999952063353932111626939373289481198430431780222043099579186849139307495009633336380716372269872360155582222790752766860467994076333397061246524403159517435775456526193786861316442173357395684765351063695867474986601698969165909634608894881281035380587935210700821909363742427919761903342853154997761783350541343455339152263726783684764288688476219877435022916817792004080707409301469857982054630723427478978522689238765365487439495439973981457870263093514099289900672709826937814090277943328111083778768293364750724953476312281782475983031427433987312909481183211855604802694728095424752296244103498408186571090522794527000766606136928504300876352125881281455729028627372735965273067300043283285610310385040074968775638295809417232373541281717319895344172017187005994384268813139494539763128069655465372182419056550669765568069200462075696932186229288509290846798632670855618182528156179748282263030497455300989980899508934776463754263547842713175020632219815534813470505816451138262491268812073766231455174128263605350260320348866201441481639843120500094762947797252010773354751511390663678622562519713941074584637211002075429718587702281975591128011365516484989995249581655688411854000879458837638627794389605729017506755895037312121319352297623667228493182280166709118673165006467251131897980813617996777629145063218894587746323241339641392063799016587141742058955833295722943953581904148163504852215293635077742380289989346302488254933560526964497913174452922486825049513709356534731244342855236806249776185619006251217252301151617610852569556005843433760506152705946619958978959517336863714697052767781347741020632895888852149761352253056025479592708483862035304727452025156353416557299968917029323524069223315845868036344319179978194015176984694951957149885271958104169480647555658553135797511791240854333717937554681360905212483850804270077584569691393332533055233627477110442882155449370914176706931485032259663205359882905982437011168135157875314017801815647667253755950618511625913758833974583495542706983196812402241983534952917565219220813634721451976126085035558510093365519359665670182877597453045875372969428309629202084159524780301812372478250719312395537722189506943075465317541704299464054817391876493588916081172558364979661507907682430008992198325179435879926951725177046469439025131370155343321605070093994222764379260758192345028268246339443451150039038232133346092548112600364213087092355954129083736161971480058035363614034759758968110877157776502783853297375004015371523387693869108248030994666981961938048660189105805534809779828160041819391008780352270961293058826514541094607746442284829426900193830988933045271176065395968531264730659603908574641031069194431410394622032360036095703583921110071815107846411987789623062524279521987535308862207063550110095151030116412805998638141782953643188751066754025630389325203166307005765625302474576764345154483571606192976888950208551152908990320161555479546746419901505851414651642652817875394453361035098050298927277185141982664490760580522667865468842237150617607472656118574023758232183627900346050349869836022731612266582796316770553474800743572899563938456128369928708885419429579364204143341250807081741984187964873408406051471325739000941279135800383928504866407098536348830111159088977898881707972523047293219793812704921839074599017592995001999847099827394928022306624075583091743458984583294190177381252591569386026076975420137358368641883523861862685057376281528669674929218544743427196186032522777933811438478400674651529397067498775074256321911543761297646364064644480652974432022807644819366809260430557939569275935166841857332904374616263059082904146549474588343283402359628558891111723295627603249954270814186264876884365419536761301749179125091474101040985525713364011132181804262858408569566037969600656808678844061044650318904033547165444486219250221843808107722511861442700672498724384929202825248707728368069031085241735884141816823359659531376049430227523236170725603307180973540867807308494839935336604791048278714024327122500404993494901435106353953821651711573756516358420177933277606635080702813207649564048856749373240581831408046136070580453976581340899538260436585662283702421616369121694030397603758250107112876793636358199012878067337420429344100899598315535281102873715144498002184021116417445634784351691750250175855655168117378070660774974856262779645912748693190421432886461199938514185215718027199271659189036912552429499164424995313631563080566721155316082930858739104885936197467188117115556104949917357994731565952858669080200657586603545564341022923339964624894466875117965518091209412626683592232384348380927710838947389598107130658318526127608225120182008353854739924550053682548693018575598642594240989727133383778404298554138796779782955091466780856905689326965957217225872768933488016125165613154213634533932671350661338808844826602092396701580963393623623686927161937023859481451476005351775182077120727953194127462071181814596020358059092362945070502815904419899333013483782715219570987970533513146880531291032359454426622225528405372021848962768262204227106216709140336097804962322239188156327452852054582642666792941244105450041383740657745188327571776380082347159567687650330991660288169253788457069973464566106004863081336389599002681766412566662341940365007457447318112357586217856959210951571679478342844476966995532168090639593814183838256734677386155652570570860349665257983969023717247272449760822966880184573315922212849009369231981412463188233941160620516484403066374622166183163453307562514012370308120824028237374380347993480173556600873015568935987382938065110685560964262894698829203402961603898593373126938012699910725052503551867048896155176185197172604845127273136087416724128974707014046709509596308371952869582650768252721315130676516510025942072879698649159122114538759938675172844334227927949849676013966680795197043846596437504040756582062338020806212639234079623002492763320460292819975194319153668740015129112580464069274473876094927910450659013533096615141437219412394674349347957964152195149185093309378522526728379992695769811842319183399957404425899326054135798280787983760526572236583201498638099898612596360648948745922422654736224068868940213931042434970145169730843629310727529671177938694277788727476926345697648563739039492802808948288837289324926507266573561408386331509405902635108417469169237939775155256485258522481427689615182543105978705701266695104708246721873809949962470089803009642170517010448425204670228887224628455878605738271289190829541377474690674801310434660381696092963540103977937535828360226387311722250093776446312643941232643829764676023382955300242902939803625332275974971921853866280919713398617657073758805949124437369967309223016601418141239126976746539184659475775733861559785922703502596521879052831416037030603673663516533390455217185902379671097278273484630252744338142807195260070081143967341661609278790396323331693658660229069888624587942954643901789734711384917321496969236260888965411576489121357129388783531830446132695162099578582450212512593217736984505503326543507030947812015264750185747908662914393717990441558490417839761442066158149206213029534603338400274891886296837297797244761244491453203546543942817088684323358036643060682636965024249377730151706638146489448413834268156728195265689393898217684073444111083538649721704773894784128457754421571504117314081509745907485005316796664236583653171714585665091370268074157748497054616272091337150553893789606995720158387940417651061126470613853174076534623445020876227043875562479239588171815619424232597187508315021920858828183572922602987997090638998091964165045696065149171688054662616805995657589184734634901457321679377059787692309796999180813210179191466884684347287409215488097252143576821283807183350199889182058961968117777250037203325722626517693300141782800809446909505206231448507653641824569904087347821063955351114459369319815781116786669670790085759559188644449781273313689109826028311774245364821274134652622293436546010906281531931987824243190925746221423942289027672675903889658954564840162641157090301753542969423497416255062462488346969701304751555108156132233467060709953530081746194930374876802972837919187041282358887517603662856757563515776044477656925322464557151445840050088115894474129353944884802660229455992343204206238809509773576948790427063469709239880554292254196312867770848637579696757463909031440960951808207034360411965323160207865275457259241366827848805870852164007803802096132091454392868362055847597307869318830217304687629500077642261726539785628630477598144092723568151743915700349678935797240031668214544191295398443469083851046106536837821463725246559267430982093408835737554572082054369708696340605060162206725668212373862339173062865223146107234690236399707823305683484476126600752218202992347974736315084517572823829348891037057371219005250256438117714336108122137216263806871343316410088141297566012151632753213880831720403657907458505655593977288242019484577829954783886875244678976019503295155284508283597643521298018974200365369502084433157326374437595200176381210001257147097533741512663741837184460986972917509451519479271970387069430642612931244238147672485695692432670469623342384428313050774380419418434008776592450328121501767620911961015365081230304690598357517902185522014382426598881461715006303325816323449922348782607837277130562391805673153283942499478885435901831060427179668874480292825214991615786540426331486511265547904360845617609930749740923510371014980276318783763395072900938061473680865780477881640105253803852273603791886337675018200468471019324368284508685166427459768019090569250458649088741395792604803288015157575219027117035086919447772321573030897272465662382955637935928401650795760288450327375284936408391636288854320300247913896292954356997316073106237392768000023704957808571831370853669806468016010176536154359633711139631728873155367355258058119786617001792882931456867148137181076453383376583620596298249305428038356919737377085423173909510666680785563389371604045601310033392710324125960459859936385348948403966663279901692486230578131919643970627276775028604856654933419749415746142135490477372750129488806286649682608540846725941424328801560569437097791281116031933644014998812332368001958250373583992664201558990099680853120496263443684807093645430584485187859617189674174938623774521029503957726579095611352180352441754293077289365378020527930400612446927526554081548270727540876663991692911564737382242256219480385751856382162509921787758185334338792834753028068358139816826417107997702014929168220128188023883646794857862668781892529229047416414124108872391139664448127111126474242659370937614459786418029897256577243772124416893255168285620637315196080435460282359379666681811317801226764824996037457672471544791106028678833722946084568511966739600377388606188808331964983019992752370238253463402453730704898451320126247327805972329813640225648866994965282228074760348156333261664909620114237266456064733945681574352472424049730200777906515472520582771520771689635024876068317298541152138833432144399007306547057922561336718045093862846791837000856701845208889696932041058946348710407188570111580495227740615986003805775108154782128408653729854253608913220761642760696834376374278760852108502822196552576387429451674965815641560461679409587875866051664919674980766005512438700206117919114038341705218686648157410246689621043751020936802933387802434040244945042942332724632967354065717181128519583650610988255229892165510803096707583032661512511332944845317173689583320247288232317817135698980513566364679124310550364036974209547468275317195016440375545344960808657957550576140238058039312927160254922180558224652054622162227193438765602951260072792262221062471698690064684197894828326808179305569325005203592284994092660552906064981285207255045503704643744399973287181730349235911009528366392921725997622063606173945112660258706560605978653780962841348998738333186271694732166711276405339373748552656301721520046681357090885156006864181324934022481422407701022952896997836672598123993597315956610213356476164397899045030368035141427160999044586402778569708365708435413259039780979958324491224893311813725464771179573851734529860145405691594601071024326994518477857438573656092739887244355721096114747263067522875931017888445812825338917995751463125262699208537643269576547637722270966438499358746106623663853542324919382620146739877545001136663798718577054503370807365380708068108558871321307334565499113265109942199492108796571661241309660410827795040689152662570306224560983034478696557604558352781069502978750953204174203949087504652937207172249974816453824104737033825580676173156335956329592603326186260038782849139125892382233226305938151007888428806981657452824459262290325983262368122755319546322045714317082502079739561678961751682497644103810749639992579995271708222442164000802653071474805386184036064402413310090106631434498937723133221977852812369308294628747501236398690535146370726005789573457583369641092484793136216492727564415155704554623636039778757855475331272375483326252640322160976545441903918325956887270952294107771489189670799206313392278621392277203556292467486768671445989263563469916934536855251253872425073710834487725992930932152041973134393850114319724353097281028054462926533600482572393680847155671177722176707664400391002375831185090049979831075752052004375585666910018810227868706196421487728839796285429682953738633559075086579353136774653340628402657035284119981398688279545649533640234983305541011093648178626260600753446412251322876565414092936228310665722241502101082967527622594377825596555264772017633955817640884689084471162342200263389532697766849879397162919064523445314714398742512760834880691988329621218965463152482959096851913063954322304811177280286668617122220748982288016051730873027894196125405376625670149502964410808851740939691575950586922294278354901309638533139793223041213567094825581851234028892551134009518222259366630001120897806268127944776106347353504473032538718263693671541723555444523684007097429943954953915021758507818965516561486538416156221139570032595834369230233527717999317521907797878276953198568685900287620697638251198704035008606506716130711456120429300224151678552531416034132865027162297343654092935861508871561903135690055651912263337063718600940413906137085503433783222363863961376798026490534398913733277408490964029199324114385221274435667934125615389673209889808601339937866522234477498098434316332141952803590392121090303265876558832675211037028614414301122390322872048100075891676140393577914322244795455354346418164283816815158809328882452185555663709919287721780006080716567765468500748133882921028754989101981633492959063942616250042562324459498894458186798720418268886446098053280243939068466172780105416156123553990022806089550704997927829555834858202395873326759201567705429159928497531806031596753460114421550903166400034655918394341763671466484219954730674046774403018103470664636712636147952735213988320975597344707457435241563004425819223247027831507943295866644333059943226843135801480431383494763908104948935450935714043461427506489901783504917404364968206530700457798352818511092527819143055155338331135985757003218044648875307086316372201490245401352433977528944965229677031766333527590311770169936168630182699458624660286133324749309574831278826354835283351780278411233155223698095365799529303935570862544359522697376684394532153794010043766536486745779945573917232786501674267438939745730730542940074892172974218928193610994479710259213546713134602669056208876626611669165697213726255531932072785834337974937869794947487366144552463672441300411835366400077539697225155033131399980940262579894411347130231071195195084938163211331525127902166546722833831197719122967691302580549333748682667730947704131946075439827859482271908264604913015541409806947185437577761788935820572893609872810438316791066538885954318143341007506517458928856668127407490603835405031769513080341843250077402685954979817967837718540883308574227671332681053618501217434095426080838908216911614576939893018055256973035025121061036273756086934990207035159951319124197902012582979658378299226143714231464770475276368665631987632912455775970338385395962243983957969014998769110403280143626576148996090200751221157744558998804079012679156293463232801954970352143701635315467224755079501335799785598786757633223284079732703626032217313127892349000690773577114445652376619658243405078037195458194463059711644466886066108243734079276387384677561651490332368976711386464320133833124861693091708705188139438644297599975712918443293841091345475312539925451972096783445435332352613939769414099663945842448122745785880741378515208884253813684688650838838978466340456400825266669096383742467610853029203277651830881595425760348773003018858050403750650501317175936490659045286182920917057967124376597601182363311100440545594013635150232982892437133172235618802192583427396056358198831516202365252901019536575205510189439798190905586350384673553101502448386025944619641210772653752001137600730810218290313046875701764653221785585254048956079716089536584602902189566892902331790113737318403384046099668138335935539983179794113881500453970848774201704436347240401536062611950147893966368660272623613594977822523603276051275494852058709488552722364340495895217844580696683336199634478997274781843050410665375567959748342028248957204759257787633254545594485395193941801840964302243575485724170272285429448114766948015862059162949476685868503227299723126187380728529373998104233025965138593662594800716199008556491466171639822213584503025007348726376870976369136608582313545345344509987513478829382973472396380833869045359531979694407534995648755460541224230711680829849268390964889567144832839631050263775997691819925419075794039413874273383363631987342823104857937480374414278118595454065547424286628615713266160440439673260794022188006951943563191410205689458961488686543965370587340670863657917845435327673296040420006845226633514343351055680715066522918149895790019515933108232385242998445711497053584661080827838475214545575161119028785088717972190871538349873455003931450606015342707560966964722471807747134739164709289337829567309806571797641600039464051400832177740707810546357347213316208841330893603583954818389987677001255785630462445624742467476875590890614091678687556978358037624260916876932784802339281722153173036158265964208983358842954886419388062435910396378265642168185999931126656094922450934064701672835021707216382838099348995162847339109997897509483799206955829243957112514302090218719010451638260839062476576634410780696558272194528174322897999189922909884503983662262581782521051297713252687718621047630742249933174324989031990591870928996847884492551894802313480886735495160258572924408323936717640529321675337910669759713310013108049080495123439051145198357612845301730431068951218989697266005752167217535674477454054415786617560540980645588909609213218071445481450177303982206095512865540165224938676543592362443272336682067844893473892840013322240433170695490256111795850813416710493760577993165557410559263026541236296593107970618440891306730966557885632277063523530206273114071471162406807829159235526180489119036778641988504706865694059065503615117353478153080752845728195533829807988183783650832287745835598078333042003685950233950683931701405983458703622326468917127982877735015002001385239025473431059542763783057123757007141444351870878388510955985664917447142932425320319398856165784565090837116801244289777431758926372467739066473681567969920616375069777982210682146598805795836329812873278689164210445913379220474748029986650559706344760315392366475444283374203697424770766464527484625485391152001396839443166688399604274273998683380990685665210020821938113871799836650519199897674327742253074107730155405459511996328985500835003980986250174855098455783979442453756200673668432565435898254696449793768436090403762033034541123482868538046153149184500140900216358823247031696688115917992651102554119699401906296576772600124849949255026542352710266414124901474600790545899922103930490513042586733294165821770011174454484037652543790855588473187762431766641936323415471499268957952274198051208951880598289641425714067653493115088736667094704446169260701893726881561045082193728844782104050642567256230970875160049333968544081568409301700457443580886128646280856888111303616476677052914137577792935011299881532229567281120442344150878305119176224797988847489854622757670403951732680164482550667571952094387887229653062047195948956155197114251385323653798670846514208494894338440785802385722474054783678068476703896909957388406603305683619809570066480597949002728621827073448479950744240108713311589012189859375700607175101986429147700330276348480114991509349223888830211391185662080795671537539376675332549398915802557032440419533698894959189278909367025612567677028794934090926725562397207716161975373069613662499172503948621729329121777931742436024498846903752311829807663585929960683833931312852577510165767631353864870550855943845032071243556593897314686683747896690984668079513642082060562477876292111594185551086774891221126792148596357152005116773317736064081214483145443703596219400554324505755271966899045462691078181103703661690292490609326686779573977662969608342940142962495846322558171183799123553734553723275526837413051606465678373613344369385514867161263949786215922334461109518962560467297712378920402673300315244333434358055301193178315744443454456449103471158853035530145359235992273810422401736290344468289648866699788194784311825505048935676406299675989494205781244171347523709319923174291003976488398242487935981483775411782722592198023378657833353645508638072133299764641956017471402111654594139786780784190250832870306046048785922342139186336218078580813408387986625159434991623280044114780157862630670927362664520888121097815727684103144262128071936279684474631811412431350416355845944736682980871037889884259105585982183897737272521235129271990993768482428142963810705301775602940391817633635863419056440366253455625088574596191369830733957418290424504497095196166144072922029881361080937412391454405917987003177397873618923987076114472164155373449538746987165173660301792141299322439046027947279008912929816690710979573730771019367767909211304919751374022057026929632653503447625930596290139537662711731974670378038711084197029263338870741791026338334487285144417494233484433415623299384949959981310487292012002057590592519421337630858809780245054777164080441615155511817705582451596754928665614644804938616912825147042350741128030623009680401451975423333407263565179688956890464069336677895593868736871224892554731509651390935999867098935837939976057585847678618100330915341943150501257397903752203594134599183712877919262691646333564687245119967098676630339954296240163677998014391621079661631988391958144716084908067336041968213374278590516904533211053723405601919475472153595370860147778527672850362845280133097530891337530754153839489025813815987776157631137679409941704520942498381370962989709644634251674992150364095704554304387819922358217127303482022283347125318108798064532207653818074980742359917432549469782179720921579969075115232138636329191968929625327433376716162598655561352536061131717763036104338107123873397257392409480365343912797758837127427387144126749484315485922609231306172296214135394911725565180908156126013940388208692190763239044857716233177205915584624552508466889227019457758968710758865395746014491630263666080084137390335128792263884304549067964642543867003602725640182025652687190727890285061111021931331660366980145987208338252591421039562863579950550032105964981567413031983901331833188057694908352751465235241210275971195237471509000757255507338535917983596469832917708716756055334919834353694477947084880414394685769059600326000425192429590690702750683251326814277891245082690506553321354372903939945353128113651067855440647041167838494563101981608564124244721071521946966253990490094631716448340198193830277689020924882597687039200111339861621980252310842728182685287811388501323345576252667968908183054500236682410177069900775198106667275356607310029113895486171358045666669281696059908359264726231492722307013529237386201986897434170975733971788087899318972913060667260745630289224015108071735646649520062375068028738108938295235072883734093306305828331716476294853112639601027652425247687763695842222662532495223910942634577758883410234256767767686938507233117586259305436428605527090470792803993638034044686581177600987375413848409044486445960637671000438111624770132405527728925503549536518642393655837251103400761716399268325480711610612192348074287752028672301234754257337850251399093161527704709160340452120698951228053526074421087331695727933355493508340009802386617572382667665163468949115959029749035985003625482144329863632094492165629519272902033701737498979794958211538825296312284606060057548584129026092683380244431200602775983387363969899402770317592341240629736588731744941906000186178529011595890289133343158986132332084677180917906266157478752487365352660148031974358112380970326954155790347855502866653666673716020161739677673016477046039327496457786068783736666917062076710967401432426723760411744860884214129527096828237499496971430837239584830616357283882461005903046432789972533104844483725023243508270339078329082893754047540135196760994770471320958378965755877798034838719878186240659196002619996712358130979981013506574973272169093169781377015171222990791953996195588388272368044196445421191796909027762723170440656525155374139160448372576374733184453181450921553518847172709549393133386198156707663341309048433828787597446468937054228392384208945238810813398162624140636361178960510331281881303087703296997981710963177034477765104390955354236486840211279240213507627694366408061823074474981717794081121860406671753520893094312227572901342103785174485157284273381128583686236714024278592920426113064404745559305822983242925919985141017217052870246213926619776712988938943297484982296098548147939692658903684172646455167152608448716698884853409202989116121091217458890272149685775622361995924509882714953514463689726340668030712177891250443110841934628464157109196813547462170789124589512889074451586001571156371617033481554633186734415171103843198186058698068181679557741091420183545751947698973720372902202521833047777952704083078229383044580715669980499258323186450419857925488915544275231587214198688193579049137444150600020667382120223189863662334395524498698053419064344647834580255773419156185847693519696211235183879056882099294716787597364868596108537867572703479503114705170426679700599037386703214427869623970935111329132365973670400299419308306131960916201720611265484746506316121141557553762631488161690065361927229125408136320976597002859724471921528429478291695152320419633106025635456304439919809416532284705502559871695839481598801108158726735594992770060752570625496209517675448342166600981596680130344952403616724630870588444140361749018548944198129700672088765574746050270652588430650292621469057998415875544172308304026769136533809798900096990832454290736408598674087931390647586396715034795742595579326445606213798249942591271870983560051815096370558459046486391637282084297787565762576340723188148140584309583022152501182587059480365597242665806515201798835844648270646572559182572746632581972958493337790591406213817762772049875967905837775935070102069644044656954335660705312681291872319747928912976250305363675667828140608814114590093776778737268526300940737511477040328716744034694370315209072530738930292531558050401599476459930579103623689556020542733264947274999792494237460257185857422444468018313569235849172740304601785624180853303196888800745924363963195817917975788325691619080261211354802128269090994752932782934781024174608229156554688783279238016148425109841405190141690953765046387453582093948994465581404844980743081009291418103715461292734581226005777851857462950329488307797515671110941091869637844908611116381816237667503114502429139003711267323703334887055028771086075908150945954070396336245262252067516963617624588176929022097383524592393936971672292626142452643353667830599213181203926280309841665449187774369190160848367295958930990237307997483417337698040527731156361703716084427374192505845040783056678871001340504677236449048814854876099845708830199440354933404160834175990644576427608866186783553060498034107673343597860400033187005706865821582201330566036527282632390856430798193973126508789091770372241307158466330182709090745652027474583720570101605932320974852882310382804627767707546781153831553315620183633214822936475360512832797699348304760451181041843416582874537725146515921016592121268771011590940412051893599155476663555030396479713195993615375854352311210541954233319250539188408423747910401029869719955846880451871465363841681876361573366278001196013084650378114656360340814121554549618561493425205178231713837262231301232251084784780223392145373243266678070776194825951235145085849007819143556357216300645489865820399480891538711131825906682968621721748172069641379332283513964893241148312482266473616631906353440221423178623529894433405627764050860878034751294722406393938667986218997409592998424630574799842193823913902320428820724465044368766155530583501974981077056488677345979612929677525243508381879805304848462710798866854298746848252776844255263999133292594961257185596268913498546155172331467109395813603846105850507952630371525765129355556589338932122803304094330956110356749486267604140751649010287367719323148889300682526413079113126591854488063034888014048274612277099528492388858000507563367001954684805983979287329057929674462590067881423822002528439082062511374917768224180925342230829964371524578110211983006440884775113420523784942496556905812593641689653290055227830355344910105805387774399644724573708767663153072667674218070136508077342005785407167433703950877025698868913507020459679622788985355526653160690486708189478633191228776291353855365929592356509546135356159374166362913554473047265941298012436773787331350971890653281503172037756236071067226150772635672093395992662332598396229174501009941332419930638337865223994651758673271020832234662327212788015133612492088253802807943050672443078180466305722781333972718499691869011120380532328400591611755528218308420531045387980241158150241699676166725341429027874870493228894588304000129444551905849328351655916090401839295577595684816306004311431941721472944454158964957847461512149453960957256445169687047763409928832121594109670126054144217283725850750864011950650256393162553319842990032676110512757840871411026998545193199576294717531015279914057093726388450174260320361623727311581073306677379365244599734492884003004506728016943445961829602851302701338186639282440467401301640477487520101124441760210178958028228178611983000571328203552945205896961599521433258628873849434957607225243332915865296360298446150601393445390037868463819646707342100897803614740804161320254066146117267858715258349116619001333468102345916835220033485098925914756913423714187642419190029060032532794288738125313311997165699617279173836847820189666528685612826875280409529011543148181706471257662299670151725640028765710416998274493148916897155611536952004902378916697838301400768914985631833609436479951101034552190963973432170732124234560500533093900114041099434871524932535186715237540251329857869162512674502113260882056837161562289652235357266316052653777226308776665365947755537264284265822311650741994195314485288937559097182594420502952656269884987163579367738349555879882374243061292984107484068481473356192384978833984857203151115981794881811349652032817521680799494285863434934195521842995849342099012826197684716196344472821812471426218220456945181637705298410111516862208980429531027782378229878237902551150372174650017406576217308168583634649263210204618940371474283111795975182538676945661470151703975776235646112858856964888463107369992057017251215588462893024949056912577463268038260751793089850459710937588199904220883375110272583057576155976132354768429682343496591656386929869023967342069748577316945086160573953738039831445222131581056752551239195801374988238910527043893806009349114917224832001635175771308888336129391350766209668314983000722963256000950462965456039881117821125342394719075121728536827915469715543468627472828229009973484467115070945245635415183488548140981065153773012695952059727307565368191368213105182910438378009399063586847883237146062125351191420163745294777390603698034630750839894423712835026156847046529251535928635624920400839383802216692128410102438198299798530334242071875775782526933918568454830692250211360130018172598305619225652570266833807713139929902793893462300535236460630671885938002355144574168702578187406597626696166732428199858147422352428256785993308966046110734398687883403358284093229642684782368247871160362951052617188564375739474020082602089599881332359820427943159535228478582170428660599278229411645413693173062287531569892063563512812817207250033810800644149480715291607309069451154539190425027319766474178291503764042013652269541903991325463527289635847804481892837795949913472629350912450262555321902088330097762771025186767361980367647143630103015297911438420237767362236234388447557377103730976389867672349899456400388873006836854358896922425363148995772566559485105683778454888632839624594195193590135167340583598999458370194343328245872682591758355683568869029518682536183008665742192698213889987157754437559742727353446969135849634258584593617333552136451702205389467942979047262358650596010866136506382146651019061474749083676803821134166476141219368520582600037904282300630680779405195622919435551529859512675068149664344091694658924602399931554589447351557824936763668572042936993489547663179217229017912911261348631948965776169267169070058039863019843797308385425497416751419804651307402334201602962237480423469990488309891134574222713778393000314339196995593033267007548985730365257464156381699417721157358142570799976186673430905692255765191178437058865308763077494114041706232195122100380561231214037670416882507098665221274065926125801093232366520135189416853544488013416983935421990098971876801677151260396973896831611259716386851206499908460685181069697716079434592331318830940587696093892776138019735291321895416123572161384311279043221155709146440331637256017821788682139800828819496997091817719746013721341171165361066773488523946564249774386741617778573287203591010614612708717882079799941350636996785145007592105683791652630407536068271563482059036950116911860661623674254396914976786332810386935521826529510310179896523716297444600856861801582937820930316326315548795975481637568068623822877967623975267874855271340274801296821080670972542714392473982294626507721771031113764077573105971833282886446629090603134575655348915701842667626292647417250602527682571273888232318421487472377299187735221170795319456385679772098717644904461995544433464909312473956405634776616034825088520712958808099996476048504718638643473163009979078716188983258016510695607234882987815958110932432183059535124495676531760229769974416069173296449088729185589100418791351207651511711366031146597133265095800181905053094690607297871894314099213165841935739071879259335226675801993347155500064057390036151882566558076396144046067627322819449346433283477821983826744914515278468359575198645461410243852442460092992892160916348485985557274106248470316504655228690301480016117267234650708798467708155054593915731547854205745577668842220818841080602859378255368998084503982757532808795810366873854005121618000924048274243744852456952650902089565838576067757804765649704089592992089068222089437406691755532023638443378349658110894733955342715777730476557773437817480116772234634435149834011265843625234349075257088392134513059630136236327440476505163660227174711325998147641601417242263611238516390674921450416228510515498391947352279164434629023746269563828285036266589740455528149621890763544150613587342051133387623225894180606862114955622534190696480940252316383054019144069882753741854751980040625440245712974215140370622968612385149643912239447810455201387860717425091733866910911521472891619934631980066658106760052076040037832506027479447078933527877647575458262923302680489892905471828131833222909554886733135239209013285664721879610310892490665582534242601821462929084364106113470665850362238389993933237160910965297064260553018759793529716006164918124700606299512847433886874090736891804758549091542582016344306269620413746567713685111479453295650925211043726102685932749193661612610463585418227752089513341504469495832068994163210762332950298893054225249476586741979827780682730622346215336034359749742696631763710916057424604502638025930703523975275537630467597378201854975320052621788043654466098164588993341732056945871282206789327450863175654954308123606493333335173388128667643800296990674444772881478116051945099067308023553906092251164882708493007964808505008200953599846370594727951252716001549355743913141820945328353330991409936889976587872703501778676816395988371657729293715708414098629886023975802695728712695159405752453537774158602301196466891648718211543650582044584512581878347401752917832691068747467842338132339497568512598996973991490468074504501703101704310944863990540612767569873249748365075828018932609832776706498627474275957859630271873951449476132403133893983675440834625000376514336686826476427343161263602719017514387818518595374501465854948096362676916632156789081435267954276924280587978896615379374409623192643022977831008391966776838713866021743672115309873878992530674872181255165313672650682689241068410837042257205031827713393738554042210197523582465299742728419094817810662688964964467240056098613926245780047658375566373734263367680908811063767089329074394869007311732293174069088859299740965913025652632348904310290693730024935042143673547773024347975087547351035926051206023707807721009072191927002757819776538951048498766412180673987750759748807722632156104455814021931837092229725902003574598547154874466583823018363745713036380093181515594240538859047735974461615965172410002580688048133051914135329021020257231257506396796515956160528467128040968546711953223734532201645773347351640229599333699656651242387414814918458562564069255224290739169195286001476548185928474501446278868263464684094469552934241814522393148101903163889704511832536194456879390190165447777485114390646022757081451326196535322381723293081979722483845493840675575886767625735553002843002469413677627764127605781091822673125759584323172715937577890460837900849825078320211280344505174187924706391069219023013624772401540490572500284643696094986078353110164657006260026189860460195424020033064572376487487611353982095235791425161904185944822149336427642359861987441763237442133697774017485070516763354480562026381542783333200153466286509128895995837013620210296385746100691871424295745919931050297261069989086398567457190148115421928579690746842365792107390241286805961728270185693143630198926176824069151751508527435052440464360778002466541089100824787963535430753299095765170685787413297980040365502602757983149566017837580045237097730810270201680645169935537579512814028460151620967353526154502296868801362788143237083051709878305501065110337091261143367589854300114106527462041813510130224919458991225510615355527453372941995577510918762477785250546613524150599721193534117010222807004713272540658627117000299498382516131640259551685000911211563762263404497814342517073857452824314108883193527855716122629556256635230342674789003000904886322124741900971377565915914863368093849687745831260994051802152203867089244176124230893481042474350743296507355068304260445322380253381984944685354094037079971126659187433775976595988038998223081503483857790332545966067689581458779332341713020257745109663878176935842838871090217651071187175729000014106589470531247079396590479589724237428376847976345547815365749531140088142177656281222068498526075712213650839197215783396844726577473527841084242448892417974490790111121723463079356373545586523873372809212053210669499093036986019644153781017525874808391915132562777522789698927566303820094009629762697497656544292801297914883664764995100339133241360047929140713919558142483472108952560449798433532743096210208219162967426657677815829185154631439523702108588664516191688814415273820304557471591725605558871545026695206226972145985035917204476999350579985367247418066594827071785397849552825018940994784945273300194988959565558168192859632163709065362015995540020388647073858613478079456422169591505055515510996192147465389603949846819224667383917098374055973777307251357847654066504004431455098604627887687172971237419358137669663839398024894563799458916041289750085097124525285092498915832090939364327773698537829344834722112405410330892802392827341315842649720387087266798436451843209539286923354621979509125129661350919815412033372687497090075118989621645815381010339852581656755921019774819904388293689561817830969667160061568460702312209068959022330751805259718556260416937297820316906836394553737907821992229135330506894423625797361091564810503966641394937060119689368024189635816736208266236749956682056823995371897879447552551038908052748565110547980354291812157656008160566179889948093717739895150690611591321235044200786350459291521018193939667632093870727789389291599005348811119078380947005846559117748316737198938836472162694167893559944067190751601871934665385776216717395567353706409214953853735503500225941186412764045040621490130930723137868295581558583401740012901156445194559361897286986668141918970246470917529873170384475552539160309528019128346309018950403047389063249726947190962238010818703031691241012508773796925675606968477807933126155507922035082729434992161594552878252100478149183103127720054773386363582778864828760999769817510900836021873999508762567645300696509606258458277406785453706182242655955734467185227606198868844115578211462007968855372376462293140476123465973512997543103259854376831817454460183585585695511647922408189670946515033993446407821192841147644013594236494320647978626728495677888705122822568779330870795054231589037111454633378422843033765035094428853868348236588432646644926544933704913860929993156331588781434139566271819966362478080221964497797517308038070476741264534130653066949890776170894621416554020618456936153878097177341801875303279910624226517016379230658677164727020250811056702776972167028395203574435969121597144187140858069965627334237736062108363225134807546816994876901579612871905485578746149329527093550441962236817594561855236948550275897280609780340623837568762835961815171583794449680196088335744424788958013545748880905840940008566302181707131899500624932594350647069925444413866685452263734483240438800768838661055190296195467303002379747690378297514196878803094597454976833688422546040015681215430609907144018327038589470760160631918672368165213620056281438315868566910636057184341095538099012160612504851069450829726578239872388419880792531959068711351612499915186118388523137806315839229514631834138686937531018657822475078848506577150807010142131801182701858208493828075813485845674193345662585293213711159220748840224263783164177953514634114007832716032733755343340462201522550660558011648975720601914157680240737159503572883280240793955987763182578043693194590956476548508723613826960266219208446465021075223627619423571112813867962132823847687991804248304163195960833128156690548491694406268503978900148331197087168031330357280890936918928517448073625265812429760933852827238356529031512182808789623923355464096843107937129310471855446719905750790529980384421259647100767868835461512054023811251188293188611069584719444270205268238060954021945725036584395255494719446829762849158143333949518315950579148845693066508181779611276537353688396893149692315608343737857043148814146776595550587731226368784473173657736155493229497880180242470553811833585111707143872803485524745434665773920833176193677889044337183098914469747275259366668643438940442180780646406376112769371802122970921142307289391261349414688502798770123307072679661362531720333684799759481600897170143851919786253822528616097015137444562486448835453493290977800378272561159677118931224248635984043136104654935515819766616052209674151038958342666785301405079879670350560138519957577891769826584498040364531356621728803005145412727061454422115619345514900987869889836988495147216571573340837187800943974069628233273559056127495668147611083559227046178963687917271578220182680655099329285147022958698819707834341908462025221703790133537263310109421683897741591454422651848721224463235825916039317839980198096365271083757374713055309351427692973694052201959003970245729615339341224702585647352221922714484205774941193352371701218375798378905863969257115161924261752882800927055356895890986060181846270658313773753473109700345242958173053514642113576051340556217028331372036070226288004214000928432043419124079940377973953936665835430304409836790497821738075061916441339531536226542890400508379336602672289717649617286164562421471589786009411188930387833254198544327624955994769769129158243743949686248579828426810978748454819335477416505642775240946462447240725913299979147528732425718312369127985154819291861508856793193608324903295013119102452201982187735354923424841253987739668045582478618728933731445252155922602277042505869363988127128791445727658883889320623982359509765442423916843699195362280456679033177868235559236717061728763513397253711374343681058912677252727108824478636280110688200772587174206412633774082810669871957663206271285211839411603703674923056381106544190382926321158758290175917244236842201198734223532997024996952468707100162348498172614444872374077530952907010021593173428345538328551155960774132519811291023528224323730166236514695919868564940744919538265135548507012278054090757353112629592998388279753169585352445792020460557325145116650818356112110380305470343823405607784512791218550274988444660026250673723732550022219816650454427114754960689684940941221183906888963865117965243956352898422511736221618933258525267380501596692033934421512242707847914881152349052054558507145134235547684293544425700487361294162770198572123572072788892801057986963171098308475399918401141957472025207333543095331891801772633058727983252952654351396162822217432448768968590870618454455895228651959944392668622282327324601968993718836348268734872937228853126593156833055571261068533430776854618468542926297061350261017079684338224400926047282321675750600890611521312038936692611037916583405797582236522737543565650959779202891991610710325107809864981423702074404595657700575312845105573491629133838694029839480247151606839760619961354978826135681973050636357666591473165620855558359076575978924546485335138967636706413728515459362534966364321848406379091830311963319106915759481376088948293977392203666767211239513060243604922709299261574845159324788537833666238373663054453509740925589463467621803246197080296410465370700792553444797359622760905111700444075072395786803714587778485801443497662001676235698976280880748368794646557969385330870903048077175978827906493091101370192675726480372931899877036314531392428782362726361722529686651659282561647599105718910945961845171400337023010109968813122909729227275579716253716538719318520373261608711084203128022636982602994545813040798529074275731677145216961843101944298274541070924941030492126611595728154226365289278965518234511105993325024252141313110359071978387951675741295914110565961059088627549744317718456969661195412168686153298699798684851112936429731194547811002772912370556053528177577064562875844357710781644787060743375825981127234517544528940343812454723437825901085244338722103663431950290906998563870064476131500365699636632543239418660881552027085938689596097088262461454035206869001968027067838479179291195775868543608851393450832186415167135080879415086624636489122794433200322759397780223793466529477008545067606851512695086061687357700610951949730697068222664169140966860287986717246494306953598241688096104747446856226652768967315871184702342197372129631080804099251051666403745358917758246716619925783132528761186324707359521826237769963440403569424165491516075184983268387187436632060576068771082669831230586774763531555028883579763615729921196693847580261809819030442140006136100660047591317541451137109968520234839383415726003109568935429457699419650994112177498501566001355537604307201231829602006613054258390830601899634312266667445008226494656712931590534955682679746028515830111423600837799315210267793668288425817205637991421643481329071367569681618347304257730384416991555985171263067036238853828391782807042306755248705897228088692634869059197154684472357762326917804959493720363555279648064227131868695686886784926759425722683786395955792661041019402079038405351241854028515311634568483790517181788382660814695203941864856368468902167140083418056136955301067584525304240650916413288937164569092456569697509551902605000238735724794272273398780714198128795696688019557506655487311230236645242715588036648831202459480167613934778752847140744334084833304972617368817433953953228159572029560459277145679583628720084768118944129489568745593229723207873004154856582995620328301475615983719068892205253240034386864116482798756386278117865814183145259058050086460540073407199440419261864191821052965161093866342045674985063889693084286372831001958005903748288471194977983879084678490958484873194890992614332463497873545340110505049038259136806844008479100192557315531027090888283192865832615620416061377102355429396210462505694893230197438725253682614972891743586999269558698938549560629454433941305283534522218444307357386128490309527080086940894557457016728936125834388916795453398048589567323753934167673768549927567312875142906274781413762858735895842732231523732109055454996862122698284827601571379620327370370262761981680332318052283259587402857765510335879959771257941665064427136655966393140781891059288057160845899176221812471951771900647354166983344891500322360325862858409802286802147125940459685082924315368589230005124470936136984572259587688813291198013756206910010870106402875554674463230059535626883877410882149098002544806536964516716839878185400357800918397493531815369826287984540422490733009805760916301396451647587455478893446924486902958989654560965152254683505187374059061377541542981886628555687335934371192156155382482581026161650276480772297699654593314167158375643175479436019692245979557319887067995151322211157754786355633025423174649751195369274107327171912577791491358778533181286475963173633687054345666287744438370611395994740313712632675626786906505482233077343063930380569062925807509658528700113053256197069382467570346473381797104075022639406100813848504760323404050090083316046342434333409519139301305939288932865865898654298719098542864548679090054255793513884439032177177332896241303023529003497254427603979458560622152414040490435535233531470257103856111948361324249111173723937653924590183067660793143051117463030388219441155763690571490541494969548852703091758817002734443775458767005579397479553367017989869871374830666170698157932524195738664594598092173590799441680924534143167200829100324096240870870704661579817927432902290419334841748551931803666741289516984338915216280509078205509964972742529200863519470228783664892198633011700431013154868086102767841164412576575374777654152818521171361020542421135003922795641084733308079113894089478462242224663931504505398984429576071979220270040251064972281403372138874070078230190995837667689010883212548025136518441501756093074773799022260942152063308155368079557357895579982775162323469915464217810077784926022252972011656472693673996576425551148997668970614227448752265183962090101135944827692718669951889613371041392328325202581227634384878587586656742164787610780816676630360468087631631826895229895234358100307576034133106166565372367821098588083609137493724144217832984678872677837145551797035008240079539384771526152570999541020354681673271298160180029623926019267625691340209030166241374504932311428071690852193154089909970595083548697874689308421016128072515097689135462243376525023357713290202608576895404775197304884394064945835197449115082299105892973092431609127162162097279015732726150252438958562741249263898488965712902467783075626826246225341906325299761182727867121370957718284001959409584011316461692134120587795190922717316724194425346676219113080248453746211313208800703154689915044038620236115404817273613766472500263673337881629720840588005163669016092361571650538487173380914309669290561591902465926163887707805772510345905021362934860592244658742468823947858733463565760240239267235087994816087711204557445799813361810116647443045038926852278763879119854207491298121788624832587559876712003447276453221450777213007391527018900558977532672797593955018288916968770887028090564664383952850282634466217354344464751584038709069760708232078586959120239203787648579040708698730439361194464901496638411865508021752740386669670700973168746698144566475538864471725481641783468640462645160390097159949634742586952186735930999487070485935386555096568907844450405060632395594350716367628302117911709826178698835353364450678346923784099375941135717845568632960636758310009536926829587946184658780710552989131940012507127165525732763054094149805257154844648171608462086447232235992734196631125859088291682816107415130750214928066872745729260150460257226231060067630418410776581575048550716073181468561253775781710624910398064559794127030442972575848464841835317310477171025007034279423942702382850863464987284505037696915224824222804938302911589560118263074185122668670736530350367774789881326265300848550360735274675837809636816717488995767545364315802082763033980943074374126383622793872958384678353226668010369934296773410110609770681319488210092426724089844624124837353686231143956245264657636868149448442201731567868148655738963362042452957305773753044240788261082461809414885181960519704180820365342935912524671730646443370620848426770779627174753404859008733667338533294418525786270485194241866414093983512615162295632683935807593811175093788407579403215620158438069151632160211524327395009134740617822839521308326030286962224699921655569239669554995079018145775323702076281576077550666622553901980638038587749946042214614652223506537275436430570327667465215346872660965637965875318035957818580308645096838604552992152530084356739960059067357133583597971140862835001087988129314761910599102726287641977640440807503629930940194533150854151973306214049437101141484240253206661132914284392892399995447860062199272259873046398671744615358879498909973488202682402137111443789634689853018528087617298453996220700130563538307679288337859050508785141500521723816274405266981090106189669634896410222670411683483441888610078087543770130333186572460068890288219393444546940094090256628387348952391786218301291122187664078484123081172325039692179289190863767809224254878262451105984106911218290399630973906027225464469097102171890749341273117309277046619793521334707194348204304449109135874353973198980782112893327171869313858181491904850349010745899105884700207273653265818839345870333890092552959281759404810695093697415386661918571307911624397669902151873914717317466462174132316094229153352244727445522115003984949424347427094263745615806752147227268238428876655469505062309366254849890593230613592523718196001069283645335653250793317304220416942684433030758833747123751878389721119560379361313030600183052561738288846384122533411025438204602617634034348669933918839568086712914414000930687280003831275645472311875187668999409558931783938983397335269640879775410883109957371775907830978055863445632881406935281013453126351343584860419736133776155877388333822729348840437237414172852295861651869166408622061817856096024608018139399248715091265943730433536672419969185085558231814904333862529248252758354882226429169524538932925527698004570492475836563969980114489941746337416554707478355989023550631472405175013635716315668782363173000274229133918951021404111931364415456047177875939236892962133740381836398689251856418738843934556295664402677542979817368011323891856389927187697854812309199711006322038940521908236073596350853884272760437582389432433491700940308742975447988431439243741767741455454380859099123861062703151625324377124209849773525150364530420117810381236430444750263550314191233099785128329643777258329511702194448966242511624955444009515054148363038345918745915654732616756748191121671410410986940619820567984536132100801832797223109750680726410311330406392893343051125562224123200822422033891959895190707944209892267833360197961052386912905538242953727503500998197544961224664047084090249954146484764827238291906175781127122932976889077861180656455417374107524071064606580482338120377386999457750402204220664270394472892191315891998992120437512437442603692673207923761979967663715358481449306847475459406625432547671416688984241935448420614664681173828848654952400778718661908645678545960532228760643705152093232322426091146692318166216294753039371030823967497629040438614393143499215125125282458538352893689560153093379099680508378507293009722123356027750947778844620123501539271357500129161516397541709419550669996073497470870195880605072282660452706190812567496661272310495704270968030065354820169318469153476742799388867563412976626052156903604039685968209827506357861351685581355769576378334504737175010559718154107979402178147569480927987092945057647601949197234720652823694464683302510342222497073905014045435380443482057663275014019132496160207121014235249796903211011175373521490075828850747590542995669654478391694613188006079432597627192540335918204680576852792095482877844200332638627620774360961480534747126803268624533217808211136971706336730059498671325924371611062549697664661334571844442526564355548124256187079265320646294698804226222980359334745731661914809284087310083982729812322264924740286862819064191742083677909055819373359610921956601103075413839596862063006330509424096545138399866716108720687651953698293420463465744742270499282227235085152308005746214514390423001045756132478890228425483985985580871792060889864603449748456502894083858043837645654774508339600672697391683774284863186211104926825908428256375214873582517995608435342172936840075374499975222157565188695379550484993834589604184490531300793765016612856988336341989609351544125638255034132344652636291762078765868152190525763085612777285515932833643184662630063446777242923535087715098711264997472938942422811867649361270408819530669286613926809003059682721702092583673856589947128497332515437465210879745952560992347827208731396029537405426263118628181178293971064656717997974681348236631959567566242788331770892368169630563163840561255100792206710026468552276085062410477911852198000175258594480151820367595798844740110392671644988935709871214864327215568956573719736811398545816782843202617838635461459451512675417264781474638968110846593098867687429444687595946556203421719715466868038136592770749236258130848871527294745902065882044019145014490850022305557690074394939227658587091205458845746363471468169144664282273774061447141674754725929788582625686321021269701206152691340406113704812075380623766696576449103991710677049399307020608244901481542600653002755749822965262698179763667472638180732308319951399759366835301333858835886599208289213773991673078497970564780236111255135636614388824434697311831501337989606999611229321380209828495168422179737229072272615515443271268158847999591108803961861761278042567441851348062831358845928694244939905480753975062451529471583539457423488543091677868255546320050885837304362391683103612867363032813251370552285837758755252412359168997915669437766533540476662038739639738992598156921164137235468735578307484789406740998384068840748417564660873631362380953872516170277647139378266225097408034041907966125946132489454113202652405647508658412122453401199686948190343961824258742988203368366231474762107630580138195121983517173811338845622393409472646298817295417784887336089358454280585912199402674881443876989013098907240204211895248711115602764470929056931559260505460094830797149366366249129709385765808553938392918932835243587908130392327150097740995626264952763715312572504602243882544053553090639907160030225609953318598864688853895788821009273453568706535071837985421197720830201052471821168897507931916461764245726741412023509235515374175648881866995451392158312562778489266511496163294019675306339097530871903402707043922844758460260108237008315989218630985274077503961940690819451887318145357046511889187537281484831173560180647709059755875590664622287142678860167254428976158007272614267221465638852372976279382402087328700057491104622968255903868492921700926380505053608157214441930879717185247483542040181174810921663715538712643861024913176716340253943846448489986121273138424988426715340045754870290937423178579586830242856675972492249180950472779803624349786186715958628763795762208193629928814879629875648030345489445178619129042161779115640036608588803053214438711130604339861478809808516079368595066439776631123183626109630795927522868678142597925448516063212945200331065368890338983815824338607550307070431961982168630406328242190572089612422393031540804284098007194393003145569515621134658603588106383045588107092969385450277068619036385933104548692685905758656435524253710445688414111729223915329786047596437453486380426141294281950552709723194067736589890289329320938647765659104994283455046630235242740827972715566661339665218379800151792399674768091920861110358307501862734636112318128536180174072693983995644673769472325981767008517456758309229926966455417757191468360695360944079343305783950832434680761192029742970944336701187955823532524696346789334549654907235330611135333430055899524474598765338773429426120809823396787055943992739171160117622883244304730673883416681456813331332177997942589255081691000980385510088424084146004531722271142980700847516747088122192130743390309344790789965940957582918080611376531208829313389736600535693011215748641976421773341498455508051832278289082455460214154028451303200259068354876812468873788544345444824270056905205450075631624829905244311774959793806095949927446115257585645666742924965134944934049611816226226170798466134846367221701160365428751615689077472480988630264598940213558204759781094625807562449732359816994855803555221879370795919151366225851318421290775315954124650131405577472356738138192082653691008498830285120588999302697670789910613583981571621104979832665732037551942304654346183351683679632471493392378834306543066520076527571200476436525687706569597666829331930337290404013004424094988877757399753546888635485764365923109845355596621251220889470067767362369488274839093802794839346118211273732289618302631293300637807508879887320635828479605947760097924991107142514903387919147948087909541957879392164133291733561169274919381674592689457795098730943921521681506238879127190603460028519523791129598706667145303393359970455344959850254984612616469335782958195431095515862430405897300781199081014834467660773236195770269312142375038650632882374858937625420594921931045830996630297643033781396032056107218770329441104650363586081207067228197579845762479800310238029371011378884346023893795164542616089294091594543646385994575948023773624144294811821283340382311321298624121094031294703606005994745954821111147865363238015045259989621575091781664934951423823780621062615868887116317913872551867005927036848412098382618022425245753026570789068867130951269928220404778951484508832337248778751872403588989083942020936113220356479777701358729290183731258082805049802561299870136473938327913080290487413791509204094831372267924585289802032822871883329541677089773215959193621315561225823039597861930147140410255787526768794510093526368412107075021088561767756148827323202501632677288631288059327752407410980650358033376916179152560478039609874171172514476805997744629440344854013137795591569583826037248699528597828733096489007139601634406834605987368477609880815938640408623842220342878800706157481869920340407921840675993703231640986430140434532963407146217970579905502202926262688451658379413713005279351881498909427013647560194253024077110166895197463348606261408638725891612847375203329270870548801695088728838132215512671614739830730658903649523366170407627723711797414439786724031472695264828013337072562442018507300233287281145547343133276090804887606035006378373584633494492973887205011538299963594308601984620486175501239935358755583464407009201175089018839771769619148236547832477014794109246131835577883145060182790035089518882682438224771615137524636617639935108554095290341596242740876448318609385363753854073925854833914121995009581761132365702410863254804856023543688235942372041939009318579540244805077586710685000304437115284930007636908910446079346853378033851025331235840684431237453405233320406857558120215805186940825245848817078305697768657058007904979939582272561966849398678527250201651684372396264658084700423300600605293257867635489310829075433515128891919610883896953622573978325699058465608042115592191365096608949459333865885334361283979622393706451348913872331984947807365944801482977779685532962180308691915957398979850728378403500783213562481300069297361937493965159554648055210802463099230279461444890435218895603818431946453394943569525816413079525797288459114683900835623372858213694893390992782533324036219728758897105444149942902352146306304377763464787789978442998080756632453328895000812740919172939695537768232902690493233412055673251686803431192430898985687058222758640093774353556826441582127111549442108072429732823140191244192505738841082686059580303486023260572719099038685689104550775949975266979641342083198187878036269780462965065043727125687623500380498107607016740493507490682256406822602382052627557198878992152286310572027003738012774306380742710467222874534456115971053533162625542765217454452787597782704929418897760403139585699525133706903409520333333446066319317202663239797965082600314773751462534934927042494355485174759697250019009938875441404705890458265589842068493922680134167524819805233241624906593918441918126625514305095362787587954446632674113057623435774561705210810995708861001661293234567425432029157263417444424193270605616654415878244002718027942679185924455434761656435014496818025783978761472749096383999087500455150468794820929125522188088060057748680211546127783387362331721096997864133482725020947369309211274582351950658462741212463861234065343257139236670700416789889495267045945584911158524224922749067132081514284436122615763579009982949614641005236227329497538155438446121173920067490278245144466649124813520017453196365083097383184685771930315252829842269510948140810776352765919339558635439401983685756148506309867798620367659428740937446560705315789749399797914794976331143162415482070836724881032203573327047008520100571558926788932204512472588639968011775380268817000728723210065317633836582479563455277708702229362992220997722342334976471429557899488851693358742826078207993674499924340768609126561992530370721407854091554987952661123663307400097347441699142219377646140717218930222161565786359866340743619001625507082551683534837680314913773635794485805129597634787331651337197220666770126868918441768467807974515644801069658484531345126315150977865331827791512782868929457842239591447066311790364479374031434354469380363965155325852297166991127157926471520668875235060416230821773898371079070552998194346373491840358618467261866643988364822203182034996203336777626176405135573803617984257696378744747394755570950612503097314752696468925186368924817419333522772773964664274675063017824390794329125366663153160587340255739515162340015020122230068066376516384995241643682388943160530301750847258987867318914645606877958667671029536421876035896482281662072310637193115304940675585844893997052534705198608302273170676778072579816980014500187008544226932885877241534454013937302670679415488003005668663452367956236856757895187960070391530595298216026624397794968317456811651532929513602883720803485838337503446172508620860038138761969800439312529012522592246561050629807713064765674529252398723318712635177474380205116337278398277795535509814720372753784928299527118148363998244308621977111987955936628351548915132594622151667734158598206440581444761880856188524878213254156546948547966615962081359506900021747771581302422463927857342229790513082230518555477874195938919172970236618498958122333441128422758366144251321793361542842360493731100278046346198949565967367787312642099652181936857812240906398481212973844114198734753560876046163359202464517053002042615944531547988773008401154846254025484124256327422330091759723547275041680795525578345914468337403157380081082004403405916890321322683533316027899020266861669703523079662851329762500627703584513570222998588225823113909544443942006511539945305309123262556720588541526479024238223619247270081696441594091172780100004384519349805644362259233655516207468277947699887519347569686451620554927784862224675364907138004743644518848242158722212188224270508859832947412983923558129947592478413920871989610799373902571965203086382669132948319048717775810938970676059771904136845893035062232036764972337927504848483387370379158057183817441504816302167478713910800503871936431108387479710354758573099945521276088805756807974585497535025281502914177146739626932908058489852699235124694140546291605493794575582470588133550446581287473838343980566376942312046168652079334542613648026192750831425672982448981398117026247772900188610442589609528157057761508420610530178478571372516855292068499112119669263849452744815827878481961775806436329655278927520632845522323900331803609333137389531602438966959897888739009057372134605660174055483053879126929531664423812846334537415650000262455003632450752315964813794921577582250497964834713423945499399188717571820652910369728049975744802437837302048873945866161821930133223747569593972663366297254964967504812332631793068361889218839672903972818415332126599848548358873522199046847311689124200181903465722562253777904154341606265957974759384936984076140067410964808393521351313077095935585884873098340041649363474811356394100155326662105290046305662848430033415428944178094114912383526817670908010787603251404958938932914765904805258932347916170754391064389674995672069877487849989224878799882204283000524534489604873431177468201340289857466341719128796383032350230549486129697479323219857711694330643814814468227639157411536509799930321880098254724744603531380732162057358705330513986629842341679756798164954504023831375655988596353169327271408015188076395330678849892768919712190213489228189227921832794562083598045090856445930312673686070050391087224081548150632687321112854319270122606998612774312678338806539305539135123353118351977421475201446345462388988761687502704206626160910906676717293647986359500883411060658767962655952245179849471465124297937103720848957727262694909994524543199647115112818603248749746548214954479134223262598427533633716112004163294143392913885228524009999323632158576028310384418747934861295609395512959538792280222431110617079969085518180770028178832507238342347123171789676627259957482170404477023759991025045235839185912397463120164139415905741044834632236110367939731290874182507432330361391954252151366890403136230285794291347658207028000228054968665011566980644317401064171113852655341131663141529794191274477007765442700065218700217850277756210349818661427454714115093822594116571624163961782204989364611066448310144403242240388791488944676170624733374610041646607115969329657642706304116393863848329790770702954824336179506657565013719440071298625471812234251453087665510182003377166888515541214281428385645970590248615691062022610993023783030305938341613202216052335350992705867403809258914257346131967979121164703146976116514257169695422763223052069877051154647612564276611560458130589959003180653519176574681295802292610314537257134334642655169862714573442609818152555806852408150269451001975345917927292506977978461732448580170001492238682831152989584743429263783556260064836351872672898363175487279494296579213098182686223801653013560061837523242435124397518687516071147677934493483650785101461438000877413131882591991665400713206720888914331765604365849696424884491093256657867946036159288170846579076166013271757271666543696886098644051521004974497141613475429806449436192297726756122463209149245567434912037820856304901346528120288180575617157933789813520035481690244758237835277117334080337091880192210157324635100912826716332573914972984578126538202436123843367907883377816080042937273508926546907161404183148980044279370079449119931662326304952879884871852848921883790434095148804625216105479854824616139105511621639628057494142211095771574899919955000158004063679169565982052279725660621273018098198785883679546717019937320695258290160665268676467328661046216724558514450546110200100900519134292232185810579432700607381239861059468018527702861142154142524960771321246002363373783758195885956267258400632149388817877790697216632574903378561897996785531703252737566376015783907258802156599496862146049147911501353513291074281167528099507816418802549841965878633192701636701480165991370830797332204293818551731525193052946080811248916928126829789181845231423471187254755569589497464111582208670812762865909816480965556909854523787800040319562804597940015151673118462288809368603917307441523204281603088176617439663921473190469913813223913178882221348435951964061428858686147944866851998605673365932908673341157348334411286299079101012357881261299391622662483588543903652252917823636605954428230151230001103435384878478141577150606083133779215381996344097504766389574083387742517192926849937932284347231377999165614695796364468974731376711483402915043790879340376326565133822814220395831563792301527862352042676216324594308956038599679175031578567162777643097361996829638212500346418774617410079616292685240114626230362421986717305533233275998576877123264291614279132452881896762551045702099099153011302442323656186593173242015353592171132067461722558600364221427091833094248453348323339083013917403375293073925502248624436809110342487165105849094189601929605483729712996674636970492503725265556221067620340328069424917980254782623928212590350882605291652095305316644213280642745428579855279094616946796194427830318455306759213949634602419115640198719486087864138970091460533909444677213906632513368769247782397808981020251656760433928269436879688475585230484971498412497964317979512935720711844790280620523412374761357791944171755011464661789808194280220047434256204755358584053433222118146639283228211672369843325757733924256120065824501153102497284297987106461749525302307365295798497111413051349007329169512050271630003211070397007428981731674849808663279845165446875985892408073581158881106838489316628748842105393722715948538111406761040341210549900050621649156756632306594882932133994411527508658858030430776888949736115837234024379407321875059748757225728565322817675374439727377532904393302244763753206976901458030111688276495443033886922106803552100909163694935324232623763455580614469553177036807298835436337665542058336766399607834972118933795567006566508362136986083192276429192522751363158934845024930258457078812886187384146304533415005928897223425534359193217974154338809215542451559074118441224620390221465486371173581253169175867033804011551405213679843015435000375365086597474746915598314534896541326013821303276942486886888148195684846274554785999785498488115550133847273527237105944524037562125874232638147116288086747583321999911494629724441355834554123320414871095197670141281684015726352598404269682076840752117792940776415600306671126260013441955479963005382816277215717606534432851811108760631975347655347655891384957214317044434837461072629626205390110176426139882561458000351894390297299981323077602184282646312625130625066584783828977643413667828400341665756374682437288001584453745579179437832539974880057315292995286174277386855881995459400743968717490570260943768807044912140844516430319934379261061586415139907498373357213507463427740616218908814097360170813889310280408721129166954810024849297183319683766332483929309880804611601158373443593824857958800125785759942956290019268099882272785725077922068185672342084584060005778796356092652211063347212974056210078012117971947365586729044325634257601414541788020586969642510681021778526400233941687395795068766915704387897153424101146304674294824789235463370797677035647781971946873171324924354246554997818237052948327260696279515667566761260799997782887550059208797552370298698013859132496313652194299437004435812771726906613264692144734463934757388535053042732444068475722940392340218106336411231563945094034397802177592109229428776126344146078749891736421511581147816717908554894587523460121642527321822370172557484753885187211705507973083297330148395468741561216978893640285238650632399695195266749873898138738940694141397501121713454002102182501497365153767504706871267610997846774792737696842204860179568033212092153637117077921469865847781991336523363923425088425770652679373082543874481141087703895311089650566324899282903661182377371087571606363844114620821098648472862908460377497758252602839474134554047651801175803057824856718498027228214179623243552264853883194061360669625706862662152499511867369694111685963520235857374729935369208922840320444642429506508329061798029638658417542636302214820738803785275221061798058342491482461122530410560158323655405902554295072456515000436651031399122457602457049743185210328565303311786467255467268885412159112283862205651613762297501812269658926467228533661698210738854881618503301159301304066620027836580692118287875399395300207647738508175904558169602083534301828151966580687649018117076064923762520730986963348525676113765359081609027630148021824439415467549689074415056629157629434299247827064901860631788199098161384736156391019123121342685440898268615930504460398306121745095987931282901990726695693955466896824541351835260621869389735072967379485159011129439667302317316838743624448672600529539279862534957294202090349045746879945363403272045382951901332428178583959930663124397630945191186005128185617086577966929937513341609667453495249908257365451335783178594948378501310604484758681881647190902794120441439278545164211481236641566485479638973779814163426619835194149860049765743983460299727470493321532482444238437650826034724462590749733146221277385348798211298693417870705286150391619469987484696759871638482769311706069556121827344087491498867882692133158252108847816328624870515382500729878799215789414814356659569348607690374043538544823380225056117208309503309537754644933812582331808739056939838507807068126985280202495490722011608621514262519653716156857388631434382880913094526376546778278874447931280528721987852448878096846358070514612809853590721313885172990737975875924380368938393949116252740098818231426793239511646648981391219021841569837581695668752787470461103558435834731272607581583997740918146022144426884700816846037297220188278608331819447634873902932489534324859070218737877001654802207778454348031861204290277323094899115062854749089611541204348414511899773508583295505487714641484363871839360445921400862653196545638101093788568866188026483162270230642455173159709375823829013699327418524321643121250162852545950095152355382677400966697107125813056516023115826715127269817656129751877510829817188697345964834913274439891746798811397401189387490480773537972585623649846146688805570658178706351033431028882121666925592180191780664045934277070169907658932847304049527385170852426011739627538900333770193245731956667763589244673493976320342833546169745057000042532333660016741308825078551416839892048077205512413517431996876503353922619403793566774998691048564012489743090774053645652721353420369594313531302533940453985604554772661673167557267108090174151102592309554739133387849437404377496263370637879001576904319894434703050571884761809722925029885300750622811422815680068927915146148538407627612002243337793208984206696256363352421373992500953676684078229766672141089943347328113101235269836159670813946169821440153087104309256800645872564661509328384575184202565521561196295750232816514612993178969334764214949708823917436651466084668031018473895735959350651538509455911165382466014811194453267828524204449646693302031663023399162385446890305255401540869780757348786142864017132225044269757206420951188178091364821694657061639567397701993533669927630929121427863990002285756769720190859158879266571020351783610842396363861512068957693452967300647171265849846978530542011109651736900311626924613803744979405897653008143215824393800511031395745487151450255193302338759068514344149347987831859468513656247745857380797906215941105520289064967459751253813999510605085585186415761702689703679396393403122430407269468948211738673333237750129409206919590296607871084372816079309721247485772428726137015337908441726192225852920109298458988681001787314431888030124083446747748207952949843939496850644880085680883293337879665430162083535520840487783146878552797743528269081398842465333646021964391971390871563755875538241852549002196550379860467123825785653016482226496089433344061212684917307937876664410102448293921692608084854457679558731616739927313128737042835141432319865948245431342881972044010582715087656244723776551667757658443055349789545319530209748230934591774014451088021189683383403621241369076821660227543361059520903499937784385767612755596201618214843218572195560960710928618436375190458279818895239504925032466140856428810826963736069242154100745659966072381554796434094938964631294807746365429951685050183104146088208408681753138711818013558041980426080397907424864379708472838897713578515475633476964780325961978511859126411442174479715954300451765589320315906486579304427269360187308345963528620725941064154540810811864884969049124961525325762764821170655097222523117962451089338839481505189167522762420263223947068418575483845779186685378437491219458777047786556171269076273431619436339775822635019460580613886691929455329951334539755955627239812005187129427748060227649237588048410889175618365778830369536883390706454146499153331923603823800797631015611286352040727651799801079290526043860728801748341359886611460914503168307730694712926670414857840021395245167337568095022836475522773144084906747709097847585425474356563516809082833481745469915896125657240973892389330050185069788260772442764767167316877661591621864530074703999551269412231560460390144677840981947606894682132466459663190900393540082335479008023463285515255156755240670219307538413981099839096896313048889424197186839032379435955981371965950408144683406933337401244279067658393614538501048596504470902440955211590598199349463338358822128569772876791625695515544088757507548641441767640878807058088651172006730532591015766686204171858425481952317669196065648875344925113551430450307814336500872119457845315690375893803364636550756967675087060044151895839567699252230853310839247218971454178498713949602875859203273902271303813277697798568906276917197449626605405016448042818997517703347205250412138036340815323575263070229519930076432006318680211224300793386513251106964094279015697666498940797135106914674353592414754438938304127688897066244452621767244849583812623259588182185097417969498531941521442781394074387911206494962501156366972128012049339589081146291066594736210238603444890251743455043951804903760571966188214781720038582817151253456247945883877289922504865797176227845497197226240677789914165064278350962071810912311460528613180104108308880001593332974178674003338102431882103628795863160266370588994337958866350829512189666430965557279523218852889390022076185094980583554247896574769800485297044396524999691619623080089889615378510960951937551795859181617076932509476196270913860623697139452217423603978068000572326570468511792876930595955678077987589692377264057786937043640347749917632068110187266829680793774381496980309330116233668845307416477431933557335825300094732580170253234733878100616000748603391027701537534494486028845258376216616490762598622191413297951121298937913665462947861033598320235577648505044974127251375001834714230996159248135032595341865609128644758107072048253165135633640513053286042690155707442391825577055448268087838535515081908100969101748072758740540147884534846917533813468448424872813339345463769707479201630734774268523708751879629560545276111822478781430151678064509268373081149969260689672600426487634619680801498088508222509839241038489246174666574682550549028952312773087174306911911696116993157435649323473270704024343684614946212546107524537915972295735558351749548268337232882382028997962794609162450831010350422642768732071033392305921919614387765587807601517954143480101795071747785658413346097605556734289049858279938733308313278526227027678382416402547702245147228329584649434123523430892591224926241157543780772560304261269600200383925587912988727461204836377358234927842271486143413779497102733965034422849014087549967834111447594641111362232809338142855894459142051881043800324624364664225239631082099719273060940265377562463790531443406061644661912142464316937218078765020000440869483614793272486868901381283219898356050012814404996471914102101289683782493461019544687842885985103446194415172793022056817414413972919763557368578357921670605415796886582685065260001570959654504056124144988609117673207329675154836895081461843071682780007648531938723074918705519697387608117760296083652360278198200217494906628430883411026085172457470302962996841054668890501006980716122903045620394391394098857871828023502554702062180927956769275752360752163698688115605442997940092458404724628442955251170571620208076905327762084331395702275439173433188984358295420945154070129671672985831369699549675207531495765346765553801425020387320614596154519303849458736055908177912250856064203688376892247107679407762602397685209736153626161374805002421357176109192309087282143209427378947716992772740062060619730990045886615941753357403243962695772057534119639707229214173935286002926620385442696407070708195295889436966511058906508928730557222523898073034631475460691626936333192986049427135579200438121899169240429568027449585997131031876874717490251142852998178710452335978255375139525460235428028588327014061818903898902371244556040732974208940505033373677668783199479329329675677964937471291171625490092356436060514062666895805566177496437908415022384366837968571729518189254472785584998705891010297614599352900410388551637993817882232825853149727725279171686239383579010493994497811356738652779243494728881513759328307882700684536251142054207137054949308027143262621605147211438332159990595940549847907492725137264532122013448947198541078606831990232980786081174178566368787994048062908904765931123739581737223921139573844208497993228194054903150741714957293082912535726110448957044810655655907077232054898618710151113782727034089385396019504855997532660313713909130527087518406447148167874900661111824600269101812689486447775386144954473238084646665906766597501283813286024074480590650565286944900666213182995925336298462626593244932525150538619782259074655886089654948107087365968815903697477495627015880170422934448739936487746694410213613481998781917115919130090682978247059868836878950912543277247327475519433395760334324362665041620136339387820207172716975263140368744135977347097754269804084709260567335824452536686731716281582164496850025412833554563150538014689658231504231795706002831789305942915943405430624887668076492388736927305794463933349590138849274580361105904548450913830693112792266321180216275346075510650690423254218550051862994890132592092396875073483918136932916544409476390194577499124791669543378493260344063690766911346441792118352189855852818380151386694971656724928454444412637707170001097898266071398089028682426936894833099843782280725827689433828929771694326646278475768140809498724113887299768044642947117269476567956403733054204644855343614785000804247983945825684256222756447271643246264967872282714499776335268243771220220038751356937835983869519288990991226762890038862574165007888610900821694090503160555751465454689519799993662040812876464730697236456880523840614350260479621289162236731128085521055006961737516000921223146470250058490759323598269057007487650869559391575058498155789061645523614903156387488535363791794411744932517485764454844321454957097990752261507810368126992727124009133691148745431838822998683101999006879674732721405555808468863637321679274101839455174483159310216204970464168921190561993118150488137449254192001964359055407605960139675032468026440625181534444426857000713421303336522847149918701587608745721705635592067970190105666420125741349312934416498374488778697513089196888002958338226662655972161846325562637191426333305661813632952094351450110724237173499252499914276159102818594752287549694636965670233366985289078458583231000694484968309408660892630798906023768298511812257390072174624198338699552348752316102107836170596401528832438463778368345266650439464139970908965755432224139858575646726955165042883203493573838805877855455972836003251165037513938160805959637198801319530728573720493819940561791817626258575660224259893275149880338004861479554142409513443409389628497352877599416186623918578918832590663985404346326825122112974804348314682289250919339627978171181826036056431992774714266636476701021848484120707019240159456323092042230128494555701264884910230277982636804087067211860600727683784042462224271643308426414355288996242281203951046549975878187400333520401885237858566546065815822392779695442492558331714047430765612256498069927451793085385082852069494980321235496974978539468831295397644267010603833033876754038788984580220409320254306178805397507397030290383436665220994451984787607916182853324226205851031745172573719531012160140058477265967710681839874496230591734839229748675655351037526871348201435316914965062373474975646676279918771277240900255201361875121487763935982246175015764809593673326717685207303937766460373095050955437471611243015115023592267833191119947898793175335097137304915750242615333170150631039635202171213045970775675106305921222236972961288390820263981618292757290370931280093497179273000456305954805405751692847144396695414153395881344541955257646798064720256167524783584858862121463091649614869286274932766409361388131407098148648007432681786760650695243636990069266780697392546069717703306945128829332196373290608806048567548817309865185479759894488079518808909918412895997956383347687796340933562229890670402583462040347459081575204216096716184550841336435774522933982394928374168555542553668204301525682301954541319633285777015382216810393537786699610436087909155545622604401230603720368761848158027647806963051484340346787154497510245505724184410725488865850322690932267563778377490647625061499465910304829774164475168679509079420750632090336655149077738089360578573684442962895667565612666772926627309661098983479444150144699578678317052155620199053093740549872620410936151581679301495239363632339920216252359461588730788719511847181159377608569215071393538268311161766108556619515068427450255852036312197164052125524043635157230105555487938979815979460709497443255214812633607205070875189582002322605431138565538071988228973546485400674391262371853726564168260969587657458158163392905585611728455143869325497280135820206172103188500666407657760416391368710773984346590581340777404482761322997177168880740503950312357316890365173894344241986082285384226091395627912183086458560508063682622176645702485339338214582124984115242957451830195367842515806881151824184399224976090835977926741602305360973719815368486096226790507105327758076172470754330318064322564221222603506356022721453036830031783411229514932154956302661511826025264203218928997993725144752608132683223826222913830531745820482361659208086783253713832842047201979870099031701144350308827805533888835244288288188926647915459835795827465422866976935603591462540161996959055211689771560727266608004904483405515553231826323741015232690472888561488453323942571736706692076448414315532269125488299456731848447484124974815822298841894670380566931072269357975166113488076808255799702820396291672174566714282047663993496626002211537287801140504538454322358072899607689713986683610503961390009230661139900782641150299130880046744955872418937894833346733840631268954727909969726416283967181316593896823239674396226187499441482490504526423041995338628821514670215894517183672125782828717285436946134051545056121472337360322052753377076917970559113552097982856077576238183688825828767547987025842596854582699681650917935161410173311398791334033657610615704637170259396696331760043557586062491622560672910435298472303620207423860718992105763552321794480223899582656757561013748798174962508832032889383180114970193674740752774745045617830814220679139107978565108034608109641575653498920019723331975949439513331921355041949611197968997745601016906088542343011130729201405990156381430018827813676686032323890478931854648830391523564104268346693749568172943962587036499962855730748362007269607790650674897047888962541063850328630885665966722780405517168177957993211430506162395593915786309224230343939207324513530273973626005211727822452036926577370016819623673420229380541582867214362598413453971472663244925342235551218505990145107589476430064704982317456131914376736646197150873930853503943043176187200867029457150290026132450401121599747815408348303365250036653552217711334477022203438589160480860909550715675281555833087341323457075858489507683843670154731939218955824930624126385789361755454556867493508053182054130860971169416466529303481892754522359197664161344497472570014124685840051932564046156535089485428035322038555137411038252789131919087198922477451914167777487939830554876043897489476694781584270665678582144371118289319891794665824963899424857694713877007714019693328413249553727853788059031777016900152500562756199344989635375631903185400852528263508034811780204097041763309133763897826681324067125205714806081039223612280841794850292822946812719822932555991100229949169668380045472038898595068600228165437450491167340636071602443820646520550547324476515313936152419324437942713809068159227961508428289325204028866036988779960887092548367599652534814895089344137804293571645457434669723594866270823563181154532967632986834821280020354439115303515658749371619723175145066428490410584708964041988023208426737076508465794987244449251372512330343172193073843451174269432646997470565307879723848753721078784890231676293764775219890278484082415903890620995438195426449515746177562783247162192189101912742563063433248782126785912675678371083677534778201506864462694737335865433237813139154276396461694639680148368847855573461877386923722763806801493044285505643846544563817226620015762624987172324987158785260799174414886128822503962188572578416008565443301058228697285993930190441145330070279488469121135418992740684803099629888598759568332454556704608374909013395411503809658392432014642524144455173000965318826810027427884127852516047482436021138356047289553308941161559539652269181230661157916185284277300295513334661421738227144783492855979748340601413976647196475784390712042725542630001714741399135774220465510960435995209979630926845044488156103570272093167799264010191493478966483500299233744414385352885258099952326076542060891863307036103269089629282497599004501958438419526539885757682818742048000287241492558385246161927962753507790937553219488509757979310308886614557885734092567673978558155029430565327820769057433763908877801601588973500532196930177086555380219601537712469285260612383378466752645231676012567727489778478269225609574528037202989633241994664114736277250077956952314213144968972259570447770716994424126716706457653985535893396414911105409270590596710514006841661894378435945132140285802583795063299562047722816922545895862472266105553181147724879414669766532415706534853395033119656940370433862963862150184216710272674725573261127566841179956536670073194557671376818933124977869894254653363524046624691952818655255219705882196205207195318967412973673559355650958582867071831021614908684708075347557900107336944973398967159206746482796111859508471167171489948036115703514621567526378430786687217547812786130560889100489571593692320677329031646766131970029491536270393732638181696720410439365853143815035669357757579824702443298558693186095101190188367995785865638416064450040381182550898004832252540651232964027835836660079743262615167693425132138659208197224761281329307772889480481087591139854536348809135606649906013529808690226099391242787176529163956072604246917715700168078025914183237643852851530437073031413125386931177186907582904766772413530847777066737562948375639317046440945292257722504482028502301930068388095287411446306228396058113575925136270018368052793046244463786810495279728054178738773711329285274265357163758994144979689601747251419990959158858750177470310907737831086552479435045564954846427926116592145403201395427448347101755563924359685436616984113924748720702722892859167414770677105272788914275658546600383249895971614390571666210962547079258534451169805208472196916560399069124239109545394312718730615907964013048010264209317770276627140694315845728451424827252585422655984306638995701968608819589336256390094953900650552461333400829719628241421792362091852289365831957375983818218863609085591757475986954029488435100771611381036249435050607703621563985529758617438809766083204102953511740670379382910374060654689037261596686267822605621869348997665117751767498202970438872463217206096860514197630426082059249316374555293838037572062145655876393969284024297963476677442110737037893016416841053633172855620095527085864693499749878569166923156975182458843829072167359854231603538512969845790609503808580984503812628871550102551943965843761210597262093839936726882201736000799620902266372621069581297233709126221842355253396891736772371734337243232234286398004619919707399847512354432318793024824056560684908580563022475100365985680036970722882091877494190481384847707915730723503302455352281030614624213711108251252588108080863093379584146922601684627329039771811586346435831673939171187895860365429894770512189066799310946890043722396450549241503456768086075475024287321619794176460174901912467688970725335221926507835897303554039364190022046194621824965055300698265664328216675358109117106155879846792589417369302787031794890105879900005857541753905349753296288591850927195651300953121081405056085590623555975225853112296221224291230549813062133480897174562034145552423831929028729545694710547214132345684396218082701711853461210371667688591133061152877575445211519460865483490525398764412396747062738710665043629736316073657273670703186020694223065732598795566583776030605470027579301509215235331996071332585782956791555303851649695113404929002705780407225944410965161417543542994716683540788416249468588636142326303526437761303627603447515733575284320062138168988428488630287079967123021874703527499364150370871392146701259992483371225902077206355657971983026747524556691430416934677525982241710355085679731530688646002210490693687214514562768599094753198508084643189752093508903628290891519205794520324848031698214329544176195869989445287633366350605698906134395701714407914770586867036560603538630665751039246679892899360082015187919983613152001690242523813538545462876362145056798740612446381885994878315044264197147240402714344267665225413141087693905955178722929434790188101729650960849289361864357979700343452978700406613463649346007359637576162671135386553449612464613507441482376495161003158535013203835526560467688656363249651827555679099246635495293686138356163899601593672731418380364299159569387113408020506276687900451510792776764357776386825150431300903874350261440959574587961489263903121987496554541996150469060727375331926529114499217683155577966725848684718442914518142386724992219104253424924198337455033615516483383837639402069895152692738683460712268675082983758750432991048922041273550651990628867072426183505612789012127478782539009165733787735252140389582999572351886716441955486154046254566475107700509930414819528793759386935276659438831740917746881433263281992347661160227035404100272374453765590906838218690144708327493337715436478975342528994970173997626643153718523008354388750059232524471443490017922288400120853374017200810944554382960741493016876749415870329943339237658880620499077005029246290775673909407482685375390563434333607162456347141173433307931916837631194218983547043457428763039729328127366268547000086896244434695080115016792912619536346546877001797886532725243748584057632071046040681718952213566620725331761517755877620867279958761834614812571654501564159992736036782565027936264278876840440319155068091138697072852441187005136273457312271788435324865506024911814491768175605901760940649364173269307559515820260692944877023112903137006934147262271659384686991182158096095302316876230532426219963782618908290004255200758724400669298659998091158800692783371012771409049692882418400179726049010120467182536749468698123342314063159941117899749583068895218200324473974880555446990191523319535773001186392701428813972904375028008746654357051618195715201567489821203853680312892894880203159959296021105920449339637441973993052539815656690616695627194124204652240990035892244239990996778685638480989220010927518337894703439524327053512585090601051220211703554108283002705546362478229192371551773874338755275885697281848009328230611986292158676651075245331255417485122757998493961730989634715517166418652776707438945485145144063819564457023236514113296614632091987074406534425619314907499624037360010491143690738743588835028971867623065413530566196519227876465601943189309746008479745489597529618217952834393712060825269654054563509593966430331473856265561419875349431288927152285417550468514846543833751792125622922957489022157146997874407615637702814527676420545476315972343549375542811328562868446494687033621846091402732621771972161912974168679275138082686889781133186969027465720472653721911267430981259412930069974114490632079007675596281364224307163221915501840568385760241714808976334592631951600577422968327757194227786272440111932370347523949210793260681682856210301396871692021546747199516246445145858811413655498790673320035567747138707667983285411082918766498404268928025412400269295416319885926534473310580096666819971311849283194740188197518978437482960477639415517412988078017040990924563866081536689289455281321526164577017369676422664731445207770289624590126207715021912627230366993785880965190593618286767550593409756481539791108192702643979618617151823276335905975398040845790736572974880235612668848842507046075691070526223579616254409702744679897736992250699820771201471513667816438756719592907949677511618887937377377320227077462938519183127097690066707408901149790246271917699762568803240908080566133069044781079223575380093005724597004025916532697437964828446636888640593818486112095432630374263627466861811841936511528576454650128117926000028395010499761390423870974817561560562007453736860019502251328867165159906169961184209139747295726612239597888178934541100807812457889868618806564584306343471190527007231214350986635116383950576254120189267203481077791120777272067076364305805930334564420235892201186664455445492684192862411968231106229382690637173075874212536062088981393400961836887421164073150999873215545069622765956198590791248075644626362204953496166559755168540627336042294299700823403335183056964815288621678122063710928994816828112520846042715818745280168794645818609759585608228179874649575701139522378748950933729685947173807226465984858500771572791930136729424773550876810966170646589971031970672105169224796110613341337261653036654012659263574268549827404739008850299135379702255767511938254071977158834593743600202655949340063514049549812376974258182319169973626633875895101763122707299131367098704797794902414573581484990118966768204866025570339849861913447393030781895476347217078954128899564713310962736917228399189003592960207369724225269548512740308526282733969629104920613918268436868088641793010405764694101490282634105258008164743869140601082577923051968950391808857560256035599307195174268070260568367643076060518404032752417226458565321815897856310577864164527637546711019755138981486543957490391448798136579195433948757904851031358230023017072316415075126965358963076930493598512693736076896795497800425956899978936115096629704208759311070370083611951160640837321474096654271828913248976333248674328176054123424939556897897859791528323088906337246075258291658950169786639075176691082565937332394929282238200617065492657816277625473253110672487932321211210105365258314709422509617544544128318086532597876075954341851378982344057389988771809789680657562913036509535797877896506988275399881517347743655783784192232950791882930712354559900106979944208975716454926470981377380715390472120025089607572274914284948692002927460159354749311549885366002373307802756320054860695573113967115377647334867733105972990139000243156633292926148748174223502088859605410200015564116370423685869680618687279800948057604583345988981459448496374555600340521193606771694735286466349064689060090755757936657866019196060740952939932357617373727038388684623976367299289827576968993162208218299402732588641798350707173109707110708844485941746432518664548370247526922082026795409910239563760803280969089303554531267463026269822719347592148135333484639232145916031459713466176264984153258764898237367985715212978987135327550709606131057661821868258895403407691503231912969936205236839568884058842146170683384224115769508041006309784746674029881270044549928497634710674793924434823703392361674330788107032396590909006768739630073347490302768906227979625347971415326266375135130171149777626916044436028433969199476981597016978982918015828247979806952811405172686779937554072353357316484369183851619709318476681702487612837327632069081297615048998630523724827093186548454141295979782478775383018468474870539704771920764510861253461012925723597169017891365666954783694579381612094841064170584622846669806170655847620410245911755466578457545521996948569099545015209999082170292061335084677908123334162881578621630805688066664193731710450485609609633767945202643122720710139846680082635645084372001512788295927292901493870053319060024360653121922849310757254960319424130372939650035614511936843093165982045652665449817966176518014324013696103259790981008060129587458772726228094125581463444786820940349824641597541517648588738496267282883724096776006541712992062498936729547107971495185457096308293129781028389447780710259691871254804594770415348994856778979053434884395191335726141049721742478239716441410775410079574877096600267085029808982295362568203879638306642832722669159695580261838236401047224092655234377504406222784681979070948989109752641077384464658693126546903234284424901562504761506372747321149350471728565274590547647502286664069699594617736217106029895310322958865996163684071029594520669225126024438168334725220377262934449630636549790314497719398866083412795215363574348506859914964679728899456127035893923571429667769161123367215453138463129138000310608020691222787573984190958794029528300490084836299271219775505471841583362241175068868909554496115148126172646027289291867614620758703107014010986955594951792974434770463286371536016999118264344726095029662219745554556519855760199926392323158848089186874964977606990030539501600044201388165637414667271570941022751899690160772465286226256029803032816011134269324281785941670199139919268415093696146451712189645698056337066241630614755003509094339284194309446769393207558696833300309583084624407192724477609310089938596298110988490112422697062355251211287231289368638766311443303232866751923175776494570177704762589446051954931922221183414366404092094057424297542682008307287473690283089479350224552688321903327627696172875488494821845292844370554461390766403183866195941856836158644230644512682345906076741266208008157818752518859284285920002002832344993873461616419503220818547989449646815633673774702158952213637431443905128097595456346476663613927673369251057090772147751594971954651498064330722426124196176534182545030884319868148018092926213227336278329501360425214416073387157774334555683136301162502455646574861390353751803162039731993750846772533081932636755971721665831959534594658848151508055779525568866405291761793758918211798756498618517894862210497273920714776899584496655250259053584469715388835370877842026659087066251310217270660848853441240569016041723356484805572233745008556557145125084230025951235979677938841047509181698075991890835981593863458435327544675989059530380727394741888856703140675560868186848961872105774556941278960208615747075860549995207030329359668612150093998528600307186208780022315611889030234612063689057600246402684783886794585777566411661118763655372831200598166570123117941266522362950516294023458803719760686580081050319057054846974464214287448842502331311301190885432817670092757142896284560960360177884293786142650810011888881951675574102133167891833791953945159180413206529887454136965085755512560488190607900793913007068217861443142466914197474543976543211610604705443634537099998430700460771031464450358207197756276946341237457143227998849819421283359942119519149718900453559998010114684989660910452996559003593086112345081747960468562018666146046048221377461733435842626527264879090015018316194028541404288684192766130877076595814798087645987142191303370757482306831254841200927989030463494996185636565924711007557534141922295550418523764540815907585149199021694490943726260917538932186587582376903058138431255190787707441251324897179250215233672787435274238586896873761480832106605836368632179671362186146888013129620270959808990692407144733824477338956863235200799122229295139755348218163493975020142370484879997741899869243867276743779137564438654713872614610829373708346952760884761850957306137845962275634179317002885343100549647242400327583660152373953888627001480312568942265279571931840125542367107608010644463443590689851537492487337152433712235635230615934810878925681318890375178868677564858906434803663795370290538374529856849858270403411143111685786214801989673497338952126465621836103711501555618056083379977099090402122987980882292936970292646641093324536004881734008748481865055872819740947011172302053231765399122668510191123033952762464695318622089499617952887268654415720411125158960851101423690850909248799012754697517900149100730016161821647259712549070032307893522836851854681919167782314535985666744737867081233416973827307441603978354339357669367823569620965277266308385898655307912357087243024894102283156287465068376225376539729095070093753482502924329732130864388983394324860269591958622464135945436473014214592409569838449187546325109764845385541268668206826976784899066501724983417132730651090419829727567091030286043440450462316105863087061583313759548111751540241600625312928850302901453783827878668794422863474161081280552039434994139633935004947982873668457010845752951875069038761880819532190292740968431212892996136323880326853742374644750231757818135982974235086135156463300832954549424880881524689619230039234570061339366041548494095777299618215655561164890423067012646409042230341773091803448417955254276541052642333148958408652980355748625439840593025791680403729432744379313402960576237012074447423368587816545225827693516870665242135900741708786149839665781396239887684231888012386553956031246394309091537198863422571030480059779389356298503760326817869894920072198908274202838955793530532554462165534291595123510542450745302026324255614390629928021058246858141791128643378258740630010707189996811281999376844600348905565035691293808359550938337109202338212665727066867907419325463787033916357499065793325569940618883680425877851130328265078945742499313605833712571844081761214953774860060662200346987782335762914182833993695714604220887353944831742034473498398360626480914727412586424799637725066675362489019386738335647913930373363545917795567186752852791476041723694092795748625399825445668859185949015894283481462962833562536334395967128735217327376266967642139031746203501444535225017748729669416572108868961567913362105975387314888750132856672093305398561997005297068732002366894745475472514937708102141246204187563994087380391850098808556936999006543063834766022820283048377942328987943573624338637270571757727420205447568059957922842893640352286988054263255885099311949907826389314247230172951257440624741972971948600103029530716757210339856082383414622479963580947077284548837711050354556218158786987086713873252354444401571540736472489593849739288474904372773472494395326353707117237006397487176314240315304913570053283954853137343235382029188966097957264711646611298946524566540850653289478166554206389970614023986597720126428529177543165680107182382707781855017906043910719331915681791861569301922210699670612780905132616126996701297825503763432672975835291827602649985318467945061740479859610606237752675316957691548044678830299942029725869355335405892071740665005188177826685019271238781974938976412054284713459226052835922785028978003195390579565057546215653629900554157675154293445149474744046491367762055698779988921714403042318670261875435382865124954108849812614137656275171371447783538065454749728224377901667857618930686126462535200065208722493420696665051635821277667477140663038726490065418113647915206655160251303388483908141141338868220979630602705141870321062495398201765206819545968392710348909956669456831473194787418994099023559402982951946854361728986097001321381696166400978932749105221843817741952132118559399893373997303125373135173416834391233661782521217921118642576131179621058955371080693109987652006504323390972547073033552952295523664443067763019875643493447275658652175289375752984745405969638103713138990779817039376461511672755927853146468496443056006578182292651263170503627375994536027928611132372463157524661570685056718289356208146691760020511676512048843441829517347841302292755571946286251316994127239185348413378929501321477460972624184641714171886683325775393679893242780790311016475851336680993097483957312680055036356021316743812289320183167034509064376400154048542652820883636410765775418397952701557147458642253378573121120695994566273250810704620392216683673851167828629803220879111455500147685233032273389896256437228722130352377526985977599299212518002792558528555455784285099674935789216511877402215225723638438404749552188003117526094433776023521468752975003640974798676194236855712711790975038619919877022120491420515012786963697405156414473742575330635546369614605441217958729180673260023597636420304236666874276092494195543828391939098278219922159678791248296791127168419141311922982541613810941736302383271176203556894883951484419052437384649277110577939157238215399696295923997729635712656613374611220877147462452407272485559113256140629721198336193011539028670668471642920236892185355796241839880199820071663347433241944295898557598092954738988245830512092727499227356424304055629145529209002777012224249387142472769295080518826439434530168738138525489084665878372839894421568483177305973259160564502607234201995412029097584976287962756344611057900761613992463491940072815060892500107536315650076185577254475474875442719548389202698744317978486291833733394753039319062291632793357332070039462752125253166190073433795057846168494997259518861693374200344803035905608422349640420417317643898468327294926934227929839775329405279879254890877374854533031496778699361710358570899081715012639506789163901195827459175198191407170273861622757772662752865146687096094360689635647251998137476062045346924449315568077526181766284254973741627263864456952043331809800946016284683762746995658546918297467250908859397963091362308498049966713759723416407768411269779369430473819647352294289917940123154849175777977850708122546803182864365082465409406569611316609404568254875498127230347321929094304403988025204007965205110846475233752820794738958942037908683485677225473797894808694893647244722863119270033442445352241564066295574114602468943682028795940936414124886885927732711365427049083441752349980049140946413707932277173468139063154748478354482230668495681676587331936246024046850856650556768340355962368228471547410481872177164845800818565151886188312810256835257297154228748665192837646552638395506204473140946724933262350238222165292129480435541373847601693082598842120211837866381867436405831002671906053548606095149278408040724585010187416470188984998137947649280555955947546013296762361620322916776272272893071031261496289804212243982774863961298626583232931068863341050735216407629389356336775828013150987353951345812500844348169983309569260045124702496004958531535619490887055763450745729029230930388715959684085430629386853514718230983686303905050750214345149702906012618597565058587311672491028568913465082712688312606888971463834812166776177544398316157962515111235509844459187335791670514292139369455388251744347833229399751812580387021581810114415584872585062393660411179132587955680765707861581883962327811885863302112471943871840495278115465979283132056651296444020624539723584908601668239155230800342822437618581529357811128096338954326854185320878853226123599500995293280650511140921033393720992028490112683914100211965413199724906041037449660652766666617235533981340334639582435078951246309606994282811655552030286094036048495831246962259856107217836155319513980790656934352490006348667604222257716564695292387216306269890433211715973153837619495288948672064934782520561383187292616751493993317855466903028119662154902104591357066860010519392949923028659940749686525090589003094337610698099488480770535376529781809261619003051982229528176089019365634719973389902644164686583197574532141169404029387049448405213465296437925216260243728551540792387236444364683458172039713731471885487855922058828365671179003816808388616133357631833479913839680361779589358556111759421452906060351576138103583054768212328957929869671882417410068784519329631597073738118202954461102810466194500222733580525188387802691471390370087470962270596454465819092233224827340521371953540602266831921555297032869186722194138776585710026748141526090339940912667482272615977107909234554036588734058358469007462380366194221908622937441553223405390155855661724582502631112500339190414343069251929074635516910172627594225213447451976514097704887419703761809878032264333052949805228591646064830783941596618393913396370045801302334688331255797307118189433232984430862475676130049158528860796424264049049359197185938535666078153058208254018316273952487563553039943467169602575760189194590363627456907887793984892047170296206999245428854792437086738769730501683033879826722961262926146836070460158169809001651490850531208611130281289460359396524754726519015528182123736348047645276098467269762328430042914378591501804720017201057785643897178668217188625850471115440571408398176753955486410655310455495926914330536093634927491159397199461408786320240658130499732330308486825715433905158686826221205981407990858102535570701234104263522289889393232755699959210497723851388371336270881466702142473327952049279527176644937973706157957040557104259280638205118997835543434493109872759084117696927081700010624247287007096134023021282271951860203891748470230495014365594218027104337555030284854366402669296484964625206583780473342746323843394104768919094505300611711376316633247052611568915824218040761749736197989302310586959677439104091960567009488549395188588114005071058466381714114748654640672178446825620982869812460572849380145815705653898125864643371975126653906633493173501331132873441182047890160400174445177301849059400007307236991122772034796951818531913873995924782062285412125042880672620283544823919021072064317996473945580823747122235994866547589778121648855206776447702472709817439580028955883887246073508982783306323174020599330022314517439387230186882140604899479540142836047779897290703973559827253405913166126616848390623805974390968632796040617300844484537185169969163823750268313283826579628994967517584273418987711772591488662574538019559675866629288163656725786178483859716007215552657513943782135457667563180298683725273724435666807655614776862723729152916110932906520587515781204528488180936228039681180820988764570038501439397529425137136305979720030854532262567909845518478258248855098969229423143882996190786828258990977949108120144510563794687559682122403468559513489489626135923716566076065371811137843536464615931018450812999961295321842839802379443900461378597520598231058504798522766360253069862895553337460330090259228218528787455023013625238183158014094105240040857443214651078169188640782280753533274573975814774498595482505222477086624051938189271960789481404702421943827935048752755356844943665007724887395394330354059430627715171041282330985946074635349982070054352115909289472763320277692470076256268719139696805564757092573218463298184242545767169374897086663113405923725283441695548018925014674594065080304192590857241944657435046861346181160887885910162856329871064935465021113002651867350361491128618793940330218140777029463277785440220664837829221587506710512465983615923748587111209981896119366717306400854913817566629598513912076460959687959550426628659145599876378301608548233303071188260350193428360508737428954206006973165968046244824846218514463063509067406756747722806611631086913818767306113602006991457032470914034812642470307306847716149853245831320081391440022449959341344459670228574733169430876257838104840872628581390129932252025684257153899933135415098354703313750468749155321339079918457462111871405007852684092996935572640360618621983679164809642020373181298762299153657012671759257205466200831786644137608407534548387431217262786820517413402471081936491244837409793401185781196103133486857957354022787289349662748161368672650504140302180631236152999741837808881264539581797839214016553781819737753157912899258860606417611278877701814738563260569455463719546533153264515746552808544299227276083064621445040572975084553094197206870830915867923282573762024388275097452021887553377775276112312263906937423118417616705727483583154011990376208384075918573367969814317332585140576706010733899442600428940664328223048431133669549441272118698829012471754866177484514019211870059630086693430250259112881803495969913212831467954825580123188601701781598832891617422877145529835107877130016668400010303474290559887810393965196653585068832391208251223228291210633797424435604825252319697546168104358865702679795650824270759310709647955391965441976806873631298074034505597278289443743816610926587761064262696960856957159066929052605808571959616560277948801251466559856000170190395643818289100327061662012093914414825477947312176638675781907757809298738215403371273438531886904809646166035830315152692364674183817531810687200437727252217695375479421372827197497071552449184166440714911888550145805169492632493632644425612536754525126443740334710820954607964838077644171942300750688923682922556701212972772061500106239774153516358382492300058741897815182426292715069029086697919623247194232928138503683082526369863540612030205815309985003648958425174045792371624536616513965004474903513935512016227517719091649837455135489597701279057811448534819674068226833876248421494418399546650694400211799272694426676146003358351431307946484019983657397409095276914036151415031689497854532382126704105712677888209941368159638599152977316771359920160362023316556747222341307930362921823055474001739605774747781449948802477643938959070390062506084000142783955638955118985948830657642474829182099247396237841164326223743998132951264887493220542436370040910569209658485413121450222805830813271484501227466734503127160345175448426064658863755819223117953689189799814725714570590095653278815283051540071067858260256005874864647814240872806769916349871379441384090386013580895090347954860011162487419577394985060365736601151021582671307621284351706820832547050434706365898097899876309790027149485131319970602984615019200599574481514229722006431902981784639810319928492131339323793268434254854678161364961908307835564981119408281344889287062879580017671791937671275980043464416352468846703114834545727228613939759908860198555119549838180987155662273361328716413955229692259828013915008534338167254500203169421440027013043122980320937519629202828782788162637737424356068334071814925351209681832583621698393125122359443007840472762645101138231806766381377931971569826352338923042291938337409903749162996842004050189988255732838730768222373657823621742015583969456768599343393321058841612303260076651318745450739880457914642668172106074047913622674259826981110058508555884301972862401422123717334049684919311065007639643845333922045152297208828309560766934634849412895972523885211792862465172339727630827491081597001742666528298086604262016776262478928796784995261144331888350178901151315798274269726694315734207514437325751408458201077215309767200214417994619619106187383486080859973999854235355410764682031991024830763525586244935478825555957655063565028504656073996612869224934177402107985984828625784487735046944897955899441444661236612344851059895813565458480729323331615249881164753080673165690777614934423033147897933359734904220729128717643165130713780360739302724191182924811559369606687744951277975242723971055078308133696229379392243898190257348644777336645390012315128785398920914583383129851521535427376600186461664920033848322051674543116292965165160995030011414383795242566710797130881894796311809793217587837779579562984617166518083551179375730650776027303837236128727439574594932095107331542942880401130742639062994449542566627033887550044565315521644110897852750145588555317040438093775582831262877518730086040684323234019570266727491370834837716682982820394398009521538476639419210628003431222918631296594763693277321728174467214799595868009720773935786440192401251008924484969194454234483291178385026762003146001165099485722871998486497906639876422054342681407657047817704700536011678049820117747437684241356651541509476951755534494435245506108835088428906347016464481992392603157330002878916153997228160274221380423570206025321217084066334294783161946767712438979624992581256339095166881654320945419229576343152367899610830253842631348321404345148795753869409522507878780405382296650965233492849568621435825591485788995793122782262912043051255814188596607530940470550502093331369634926615479159094889877415422004953565921461196884266213443978512368563446895431077121396073704880807259283934900679874670493717443706207453851165634764559168822706742926327654801715195631010679676158243411016766379080982611582143824874481901464900621714478745774965431014276784548487218088780233071026138437072039666266997027556023681519772506268162322945019120503293154658358688145398604081735276486743802318344475636593909231978104810750603412839500184288770713822639023235933139637947653575646550132860144453819601769115841286980329881437157980715495947341363019023341496660980003781793207046987387183690810441791797509863788910975282827466791669322694613133096538314999568480117350002244218318599755551257467985022145506880159993862084732255116381531058726417664234831316938294165860615761301778622136813313482434726495240034827747152834792191335026086491312074462883201755117293176596038892707216801661450034334863857502291287352916496743786593772103873052132743209430640008865442702371633478359524264458406804221598007010735878416905745074648793001642149744878842467816951448834786492014055441974961323166162832419280920578280597773139128892312837029449272751963779139718354488513328412431310065069931148700417752960373213767890817507342583156244896022648643176626491877795365678588624104012163747626443265131511627067866286197884341771467394131172341286472158489627406155860809614317638272800350867461799250393990200124371081349991028229919924381954036433876445440252719274809913062450155821126332358975997758135995508486747778306299675846334690653953411098386179427450237544711337516414177756279429491832089328503427379239849539785353034496556550252217448027614688027642672312770338527148113168252289151550174934186496435465143638444129654648866314093285877226403686793975342300480506415081202338763295494866774179486951634421358414970879717200809398784854528703150850655971212444971658030592749745355923655119142079385272011975027395102509021414429067001067257298519195214862818366783595437358087763774456546750185594693909021635103269611959310247742571151281440336667392570780922551776679826955053359945491622315315482875585508531429774484496033749740232527883292499827039496033496409125915105996147176912047840508810635998908720639174701037611620818936725859348837327914020759899912704317287835604795649645208854652976433004914891619006407692239862021303300230650007608310554189497426499160358704592543394750542663379598883132940000303236303299260098260661781939321751285719158113959005802111664073933630770267567785684373578535041936973534021956476889583278974306111038479006542219097556666056358668562624962330195847555338843076852267482128998342066369364912079097063872801810494681993924419092311487176153420334051583527556178776064906240862517331132075575769969074530002145815051449593869972911094990333540757580610534902500877024357107338278325055152809100050837401469067060370003892482784249588349219460581558609709317837614355298538318095708733908310339981838959457968390125395694051495766798096464007385453438666176617557386119472259449383121262371497921674051728138539618176399095483572348721622342643268179116502353346059613322511249505533314169408275628158748709003887710962620497993957296017330885940681388519156173894580150772725113440656474720815257377860239268714180782179967647998210061541541812349838582307466300661629313422357803426390298730826692151248514948699578216987375227017313460670028645863575285100879598834095384411793149643127755824715877213295939207752254319843005733223589424168129464321999579874631304930082154896648671474994941908309298377361956800701292449787673805409155878448960012378234678983703260198300006868789833407751491725503101560100605603665101404885034313545419612111261617351249590619656420524215728432343487112070341231232123801210007838153315287834147367726775995907323364648119697708313850864968857541019244283648984813442611695589270070347069470571971925209576315763691665172610495535689412405765877775019162613728701956429292876294383086725995747677684617320268628916186939671668534548995303704699431272979665035378486687203011663932947821590252648332046655341517084428076160591464092357583284428157049498205748396520391588007161291460776495305852852949744829920301710079159205563065272131969517325006979434330596308877338301985473562318294235090347957234125040455488622571855768337665973365033873932992802725023454710129948244632170106736491584686708644505136126917327026469262555512049938262203890932515491139538831278371210516102258349498306114769530076581199643042437464977786782149383680827216756866565589194277014213559270957506771661726493634121858602597923537597278934954393100580561985736577752147293528398285804690983909023266892979769278992874352469270521034009980406080090283464134936951293844855383068196325938575367771278766025751425863264126909091766342758948019379555975944386745007557281648048795039154433499489590875802022590722152032615882593555302340064503690537146748417064881969249518827572738232486619691037549564181311463546444660285000182552209009165284788178970484605391169436635879932069851218669091486406886543055635077949428113167010086101658506497798989991900348593385055718806847999310638668885481567071837767457039391833375394663831092756118710859561516104219458255701054243661239966335849410004031404804950903556028006200228897207917439649160647701280794350430882527084105999695013942158917707827377107210214673483705073068941672717330568200632482131359623460691717434714750231868626514132299352026247379049296726646431639727250077962925908164810375656132447421370811136718815280437171397228602213530488301711691336253932634121929679822844918032615950900846224996426691373932987180199705360577713642898447089233105488735837837482128947588172813061653066057214414170105302944432199909896956080437226957820897558087996488242705017851120250507369536434214140448097772513607435285705241430385086332766113727930620551077205437213334886528897572162374226577581459517934505893390864940666442662600427197491438940121007094113174990791187441948118731092014903147641276823511988809176265429343720589550160246631731066533974601367862557972797406730644627406796306034529049911022754920234591295720248432375256861868871732108460025837963092422893230135732413330078325173697797152323231147763656138629913319761894044704374866348234381026996365440235620881168861353183057863628009490569529313634575284431956037464061992381012460201815840383705914011295395057027338953414234932557961042167112273297209381351791838974051184163866275036161474890137754888963627626045736518373546369922454390529351321732419509154247422196728790611368717233017328573685176823767004021360378788572702565519942624209429510430550068372749800683140795092958148427256606429993083959456236325443566115079754445704834714964929261371130722996422334952820421381156674585533648487224765381644021190417200401244651320851125963769696862830123378406700279700683624702931206159856742982539248151938176429157575072130639165745570809538422571733346146472163696447660653018948416371692504997304405118496019256969832732236797076256625674014333575319843878258294941147383973198201187538811737411697076871055299588616446013492757761270146062823687082916907859645110340824538728580819392042396473105496469905444235264778559005599677988181804375435809566909811746259241715304615588008382317513688764066375081124006646567460150930091856268503882131929951239462463789931821771153819505707221785975513460610513280302043797031599310710095442682829946277159549360214331129977834528700851547873125845908576954416388969546705289608867566180554759873050727685707640837918907409578352635978897576119277718123514373455638577750818797169602685103917188778577490796413940793233654958303550609099308928035274224896000205600237940270515128169277327098803248643031589708452246616068167465162695263259248216641638285796219928245780974471099545973713899580685881382244161106527205984683934070852081872762582091399167740668093269421823154281928207053051473816144930228839487322198356087506308547902930694096784974120091356396329723346148091026013491138011531267987838599759640452564564850702488635631256900680288560936502930361061599714989778546596383133232545305935787308088922208871641902729600691674225926434439676768126833732502050771210759184323302330594352135527178960259129558728601872802686248838843042255405248971746248936836905402815226833566743424875247683686400758993974154146976585553300376495910119975833435962664867969495214733322478072927782913976656712082417387258398376650465205027670865221176782093395886391382359678778513302911158695469822490766323600614972144056712709986807114284572317237025511042846802520633861405171870614568399577143871872988937886310451513775330143070061776365765269982971214436522760680179727224758153302830923921760963767254610041058658386708627719089464258508545942261331744720474927105909432296381193302421161169561993646682474019303335689093390246969330598737236273744282948577648534892283116194465852671453008549649631414616319453697679969153390325402857427648524187093369795143424320138675804428368567783922554372719178446637656557764243485460656903814760821997457627625320076869926287343332186110864652665237088341634798373056235888978561186417475365546485505672672893148291204671860386520855891480348655243762908715141594915723120625842479839548098249436286690964665266149717433139012426766131202015742474546422327017778378651427706400871733059467405357315606536577794082215827585707539592360026154449053025474162437185754948652376523085741055829784790586967445871340906919409083609711714977555604522314072648779077809964657286926419614141706116528851467319741252547268941565055846302013378924364692358405964296340534853260407713612143228811388687002111255168626022819670828373297461026801348209607151182580489526709803121218095733709260630990892994949487539154568211260511548231317570092468856698549408529421563587234988348144032474285318668142703705477456174497242864364123628070180369046517704803230839968455331313818067692544711178650160123887874556564477196948197365873697199630286352804482752382570604945104901964053596529236737220253008442937076674083509746495038538284203674371443623344363078701241014673139444013484972740805499535368491899359541967571985098812132914943225777980210124563320422052518212923277407297103400854686847081580032641259612581828333652094604168994458701210343575016302104592891991609589039896299172324170046673777871382792816680122458127854274331782342407822257175244944102394735843852716484432024253318276027407316382618344197032383109072427869003907356615870100789701836677142226932451436716843125040960786675435781264906834887189711762684020823464648958053445454175474209689533491286793507044941353527824902472050068769628396323510908868863825180593411946520380435652102110308445369883144494070099611682693891712223541614772552361032471518635632397214703572530585591785393798851905558025447295406906988202777253150035823922040281185462839864692448377599857188379809770004070902112020804813930332085430584716398567112721269490604925162188874444463728095232455121621765484368421853155367821254439020078896413724186796467506433715464391452904022090342104751884618518905108116972846250153220944339214105384284062942877721528832437872924933762772267456871537013991844046645345631505839793676971083877899034031688562894544063134684327601173320223047054523533899534526638643069616236661923199857867020799404791117087347800267747894579568857521456861560288114264565483593615889772095278505337519120850606111424377589553354808029830102427966235119871774120545921635931127948468914855866420500740145860111603219542789358360787273033784334654102837969494602378406833244017301470136328220247991857263283482175839762270561098104169422202900855687030740642998207909574228237864307973291940503245325302985968009215211811503707439504043014804168840268920022523354329924858456731089742023920872726705796633316150608096573290691304970455918960181730380014219842684490382832308785167893242992301084291658021654568116309991983082771660439481173410472744037331390472423877027532424934104587268414001595214934196286879101310466154711424577139545789604159480117279264767785118321547271060860100332741883058156210315906015856163932202273808523073082657543167933895867854716715831677805599701660741395269954730068014616128823635359501251280298729939208943190983165003637478775366421490153262213039143129032570503968924188903191023509582873783761562144505572989161255866945501243801165538450066673809807889154807207643125614854737778435883059881574064951388579881670441249469119061026034708704761168073231255313780954566935545102558945996209757650765733500102581865493198680994050745403265632645337408035481002044231547252421350324721167465299446532420311461197352758790953044628728383524534122808898743438434601365410419920075045795305119553194125923914638538576346726775899712549113089054420016093340165020918535564363633970301568683163958610943033276411965548125466180013907393752816114985146143678352632214791076209013079812765853289974812773226604442992146683317853118320839312897846965879165168255210010131894947900512036698680054467637240238179291562580344827578209674475760850520688877471539629358860008196228014924883054073622583447593292650715600295088894015689392146423613927244082708178504109109428370055476259881527439435528050569235061061278810553163542121989340482384798500065282179081166814465233848637322004149792606934663602154503841497581026472208077121966035510386904970875605448772385978717867941307318105264012267262139014229465853221946401773572498481181683199844549198759916490997993450155710067526699466044019865685328800805354740407734145323899171759689470412559674286986323004329626590519732955627205136415617392474101130487994054478035344880131295826333310564302131109165706355826492875328617799446985577811742016990839992263742718247745110056006470411397338457326420778683189396994113233184579211640348890651232333205062784392982198865772572780356479031990343676357515899471248616107686557355475938805972022556986215227149685667290790659892305718300382690348229585995542841167685448483564228923458075702796999480562333969419515640882947751467962761700574751590798835480141721833727097980288651055593498953166090132880988935976990342564287686493306419471611600806031984133029970888294483079822315033001386541650254127506262814678361786009359937828670929451726983575909371649720693515727222105569822677807485191880277622197049092538832756090766050248216822405399482103163553620121391086382698323007599445916723436192191692621228104368947967702463812433002884483714176400576477626360487227690214650536559353624960196610314077999180491393864739535664394579655981329635560923787905447716632743436793357872636962326650995994453871908020632899624333373225215403482832018643622819073880179960311509969472718565813083885751801817619119200470161930917708347949440475396204288881254901842438954486764018120308577168388171800585888368699870325646829552691581284196743009054778307819508607860165555003779157745242951213129500942049386500530963658899790884052422129915646377456675606515010833678774157565883415549936779871938099549864488817547683236556006737583718122238102533924249455378705266592572909057663262164941903432882469395246567769250345908233295923461229942997648301995807253285712457936929149858871370370568729143645929663215233337586187326122095137791683589790003887747617481728464408731418057500469914419965151973642838159508735409426301187244540154379561651842350139940619140340123425984419503319855248521323246286708232394682377077251462828032783249374830206851002254364225548812100636462238316848825794899325502365876466403144455698460280620436361567913217477394081562903108400066471564392961941548597869205093741993090267706899223330787498966022134373944466823856207226754143098301704648492261615067713304863460389755286214952908740651774723029271943391986080524816895762451799228051864265241245369999070840640478724579611725235382635132607117910957424543353885189639122163303645758518792266927160858839995602423773904702386168945311615155923775200474287786486841466865214395558675456525894002424295224707529371985814967980559585158374480104693420053249369960340971008951497658160452668630409857091389041661747848974789075077768611397658251379286376152910053784654173048891310222709258623423087235678450615662772172791280718392080098658323343785209186728895043244449424279892966479300328922292228135253895423221240424422677862769582205422300402621809555237583246260939581080524862181861764885421635252686620257855014448094903751328785022769327805066990087765904016411996954656667630769236916256884459365998610161410781021302923526319559743704372484867773369981411216723444973664074194923620195441808662321106531823772396528601584215954372777894596583647814826715577934720808408831869070237013905888070645979187617854850073465828894000144604370016244433214894597625985620254049417470429399253027095489094280048686109648970956706261078613106624417199564172378093443488070155217803012554972038326135972109691194727897638881631464330921839886523805843298186916800879336768894319285410048106781319642088687495490862974070140164592360744403296761421432400772014679112269042153122973846679191532849026834301293514824453170067701736572261709838189587678399951831678141053242388421390841331769743512430816761742282194329102669075394971491903855083292918438443114576310256841641987098071186666753591399405708933076794979582922027460177424112948561159015430548609413075564780218451234362300897150232605349283965830173841130318569198374799264076674304389926029004976219568727579461580313947355649968332620784958800660740010571669774709142708278668401149236172075515851491049280569692801451153283510736740751128892432815176241473717242383098832222665756630758100888459624949345649079152957129837226558367524470302246708171382428111597445758136562380021976858117092416910476291718601584440237309740207793302812064969215739831782052891954526527612282830979364788807318970598450209304243317345239124263980793396371014512984370236032574928618273425203376170053383670253169338481275543623718063155667698801645635988601646411223688778146050896897634960925076432787617346657635759844648515615226116051299357972579027914818881897972553856383345035971577150846199426561424453827278949247780083781324301904024398424510973060696221739881510204630674647672110979363292521513449381605006582482949681771739946986458421556567368105233320287764359898570881107265123104507359566990995086943030650216721306506374132936386759798797792456747863887069451555011710133515669342027687741839222693301449570376328869339807715117493282462162903929598906687119148067662317432289186820558249169970993635506906816196848796173770663912010698246456944613264737873737665201375337908046095640707794754429518886200666089250556591474883536945828809433765446380094703189990009247018274696531987423250342522711754444443354782661896718842723199820647985198271007721368317809435688322937055408941046848062516822123480982256733592937747818658232606505027304546103343281199517611806761737098639800299374829509197406152040459103257196483971117396548706296719174505029764691844500314143066451985912002320553913220866632255067426189328641394130477856089381282670874067144223872662591909752728789499006485346017762575796756000925466472859782807666160335840159793834671880355121435282892797144475318990207770784044420179025287063162249414659114744580921521235107322323826205532163304568267771235994313065020439161856376259433952826390813238244416083897363263881565137810784066077448101606008512287021714631689104875974487620813138693936260213230486069703211838374770424654461222870989688013563487388520214870033149194225869115322970468696732581427983523811684284599453071471907055884685293381462008134500786843347008322417213512668952130224527114810427218299333631791926642307257974548660641858445202068663804249191839716998486922176788484445605555268770691007833941100190313550002630537638659447139125586478265772253052987801438077577027093482348726194105012993097380496836636499610220181574926439847833970933147254075514800563357661447424056400087274036788268159523142562350068833641570608927925051623379028314447291330143649337496269790144702669654312281248949290932573872128278913600393340114691546509019644916339410308643431495593369651166563916839289065630322497752016750929619248356041708875158410024974772276411931851797400401902859834481882447202076792214399679996181786190450925637735015202409650108556513310478696338808080816410095286278602477225276081975216392180706435504606588289916612073724320266444246237196183227580508902824092100692916663151735767579706589151053593443540721938881160535751715512622200069336869068511037234149355485392806836213002267107368456620419782995473513784170007901144591744747255019026572659730791705912603338876494511437023636954488369230371090762702310160992157863528847567196076308666654936260384684635449496030288722515352493754543555897087317396717717419403358334925629162272762849923113252018049301742531399760014641909843925002469457271704046136313932889337855320083347640852073770782611298286295827576204496803617306575782261832946440180216414546647837929763637951699551750391532596293546356432864266316349900769992731668498820941861198971519235201670708790018622426827082381146405533250532342486508298784650243166525359813311043815987272928223265835430965408512280556667426250187505937163346494999398026565642948180647931791768429203899328341477474947538285823132294389608208099200222771571880920281798614979799112375398979077057004346881424863669606385771875513291225596849975401039674550261667163476471637831064807317713342648529170846210437257156691854288835463714438672404994340839129121465967249063216390703949994757551457553750110256930149412242147604484215337367023837614458339034605050632245350635296188804715577933500743551601802111598977345805967184184451748498880551973565311750875150125872734947032659358014077037669031987887540091623890377830507984223633373229072520838156986959087506670550912477149082867042500908813352398380181518729276292515943950152701437298820543773456842335277505859956842067566293230717305712860352749902510318152914554123395779078266520496440601000706438983908325994249106878411888709188012575349975284024268611873404767470788461237610246405988672560559933749914860090755208956737832681239174340904644528996667734971608111887566071513943099630335144798482162347632978381900521371172028255232045705803090397347088226461682380579709141489566611806950921774308268964135592247726617629021117441722624459450649346425346773396932280731438944058633066721609903451913668352746674383729881928877340842399228427010192721489334907247996901874534402881539136439429267416665195247048447551247536539382242466181791921942032754280654049336871174449214090071042172336016298580980748284920147541558966304139546450125165543525726862666106419838288672694213216205010320585382475499709625139307880377460742048971073297901845610068829279749082651748150827787035637681236465783630808936983322407016915478532479433389284668483328631637762170284250178994544076588207568419508646480975165502667235027678845311788608141152878398110947818951870667655080344124569015414326284159187711331149511101541948755903159152314390289838674492186477751370142255431143051421374383275163911294375761598501444220117974611866671145371934724320954117998153958066620681463293510600315193751995835031947445309962093877871313963290448968605919166456047869292072918706392359193050239279457912666718732036715321591534361755552385555804825539465478283274227132941721219742473662596351584860251658256493578254589349391622716851677246218020629144702205832498539399973686782986724226991904973711997695725923668682092765293310280764270482016702869546671541503924267906918851706952556283882457352821798751776588345954956653044895312664549535049786811380305647733633198985738214843805930527783821458659702188102202574845686551663773244214285454421759683407154876359855470660695636144116888654261524474432260301685927262910409787133257971002379906965828974356750357654183376355137089097326494593996341369675996010120537742567176732245650907579362460921568847089599509285550460915498191492159856114991777650161571436808177457855581310176956243482687797703145462445083685978915724166741917352662866130933024632880800224639754256312250497076969519273868849527703464933132339731097771566081722097937066055540020384022185809783052710447398556248874465248948167477542225951843181221892543860031917658986867272168569911252461719779616739196650254615489764984735679300198661110267170581628500715542678428768919000467376971588548310541473348120195709081102816846307549433024143238058284030300144742209472772390189166555903180572634710553935221609421248679913720873725919828502452967133666765838533905193537151188664537518367403618753074058908337882484025557932135383139062199177587792626817881494095894122418014647643166665967366004001560980527718241192774995977973423721062512668316388213950328618599635702245076621660762790800059469533087693973710070417167278170748184075829358255767836852992270374866899863321143428124721707334639568723701522774870254385050186889746155676751801378938146596196985121331390170982613246898027186388395647485785032976218942260613760532314104212198383790960302167732514299415882868929200564459104994096679548914546436674307131086460374432419176984740291270309205119777334744399198134167811301906543434060779179979472385328441270707359202125735953390180163347880526624922231041206930205112204585469337280499403309929382838096863722179798935047272511313091881038670444737252279328015940951660309501202140559064428532268365961251929232463599880627058551071772202360195689264264282276610740286245295072047797866328520701548384107323065634291316694188004914799356320180217010645405512438243814653144052725578680038709319101774607589485108439289273799682091208818460882577218688003227118309611615652818885230031931596662535329852448313100496808239171428555945023234458900191545715927672470027283075083131964433846853145133392584326460952162443419817606443754692023964275649320038219030248244994866579404104280728769981088992712291679608216067468310034910827159053507983073340551894248404457764375495878386493184683835824401560533864134679901517909707736773000388110908423718468436102998326477459759475810490584995117031374453211715354446602276758306019108784841837352209550507538797248466797827579014559699785574429006905573866175638774382058485879673565029045507063493412815193040263534439738257027414519230929082416634070001508178866823138992174051296581833306941361510660039754179966765072092158738475239800314033700894627640186302436726462004240860222371510858676646476601529748219549784650856823532901561728029693861269800708263860984723122403675332559518724543602650822735928438875917127506905137934532554873880010126822839421339609757602452150827777411396305680460023773314002826066784511050687717191930067014724956036668327028111648636760467156571374174706706593012599912798814468467377408732250031138531480913297091140840021807842188061772003170112713050612237335825432152165512371939798236004199154634773972914242614046588197867468007570343851989593440030717717748459368870591735275273283777423109112064665780860083151387795983137653395819427764519270411265366812047230562172872966651232849408564857870729523637767841815362222575741811840750306558717088419333432128037983936639687564112104542549019732413294876267104358445891709870909356651512049549598117925934457399823608110416672545362978264503148159507855542229615372525270412079002808146041938781044325814625197035749390449556094405242381920719948233629673366178231181156013851925203137793117127351010580375698421348262515719919492006610302038801430618004526420933604961692312124524654610683685636842497978820576755745778469163957149083659462708309811678202149629570353588443757882776371512769942308215480207444189304266247381497839122101040645153153554573832500713744971459848704883819306301571557095429264677754964026145442488417515684609874109642545191238422174794175618620699673830624989650359145494673054583273653217495227576631210330159313054451289129302066901788259285173057749631803210315988650645330493556173741761000605460004250891515900290730427858522013365079316151902647247839179353902589892526960915115318945552806728962282874942034408053168646662651518184166088941880464133048254849554429438092322827458766196898446343158149287231274018873447159025077322528185708792094316419331860874849034069424467205249441284589975847937935843643492866575596637427658812462629483261598076907806230861619009790816251202724060290684997308024797055088613214301096537736989873290636836858110234646298462821471621716235542693527872102630863528126091641661271755946767008709028788239439066072364375821088538192294845914347286653224640076279770478612892866263252655745688932004791957593076266236025683972853751337298798298617123099142099950940558074181393200701376655382002138096232200768649874512675650307595041833041902457988326911897758416236112846415532686211830471067857201391299004452090565134026981651834477012167724141375114778560526898909037271241988781148758055540732992835677078890653864098251669775334542164962275826708893328547071273259255221973110247926542336694287975463411292394511089787778263488011946009855345861012380090686245972178716360226303687080377039508967342369991041224496715496990792505299109931387274742410772380326608983235231462853962206523127521303077958782262226492831374494898713491806184475934139556548127782568490910459404060152529010488350673779642451880455396326391332787820683911164009778541698518924061299341831925033996837151711115876167271185797290272422916079152363907594327601231765323766545769716016051523586982813183829885252048856608190145095641399171303044566283359498927972300918005350006207132090184726883715440193517834369067756172332339191339069446487499321038399331673651343020574271450142446818020748281545913750554859985180157417500778598798398000434535128735821501193529269315455944146277142474629151452355455595567354708298378476041014812200920967416137391227091072939414759129156022257762270143630971007267314332379046956497611910303389938096284547042995244467282470663310906042764142079777096398677855692552168472503812700886320220758152226449299617949343698198243564853176526043135365620461067417867850916475357380844612796926413541451630835514500759924926778667158232934897075962586946675852260937649643233368725360453375831819792357960911618256668840077880104791056487740184909166602092341110710208529978637178415705618333260420046859728571870269722253384849430629267468132678753176297830613313056050342138949218829320297400220210399434385063686423621600884030174402409613322806764567930908142702865113468480365472998353283485201836207574816448533884608413918275992026525310658491267064420771108361474288945429615538998605164005683924552101579905281620043847407022874913373058743201079406218059375220636370864267674677986082981961818647706204005538219310458949712441931093561931123398898369099887447131598281958825998591386836617710129848918773633323650785259958883032249247791774482394497325060242321500436055529260053541274062295649582555100852047777677420785210983165195733078591144080494768636696102333728152870999205763518612121860532928766913129594276513030018694575801056297278639861872437424299697597545722777755131043390293620034874196786588978445743229819021792071988592945702087529578249797937888388280560662485801027384808502999716708629069564233857445222390728323531397809305965428577425745845854983109965348356402049250331570954729140611724921776514935302523660855472182920378192540012085631813915939519994191248032646795068502873056995205073056427445519522731509716393020324681453794852383876624343245594692442184534678920722475747779536585421911442627545819897302794941794366174994153876407163422279278309442096063071234257127288754196875750106617093382461344910860624017921471479623552295319050878883995950116699025648436407468474425966024697936002441502688702508515972491099740668040488689493419762355076284599475075813632694118272335785285276896000796515344165566286925105572541318144000348344721227209981851633236055192607697243879942616762081736545484523051662516927143776255016591677673563656312901284871040868797307557056314913394175821526612068262127764029137429547388435990843767794523909184549278200976721780952692622206278585365323047198864915969172609087154625095509664343837231773370312420138659721710734895807660192384540710061052924313974587837868775913234355370555656878591646211873175749193249830148434683129220242568950400840957168199544920752882645438954688610845465881856574393900440309462550376673921201669541979290149807446417462879081108916254061374331284234910750676440812213667416603912488007311208095095771735771163364075546895250309581582132733777752571227600919769937334666340915628377533373646576510127701638739346847447623025763165791997554238692716377378181121538913384136214126237198148525276185272302972961272598810039468018620460258178372955497725213473604869158000225388725873992581171624410593260804132017778188090327553239629837733799067048548514518250985972632891033684559532102293476370722470107075104314428038464712462045007133012951150314295527684811558168255392616230825274499357410501931435848986024173256557280382860380988681037461010375297203785460042925658802097396534441247254706104048470831052354046276273385339768572273974567399256933643227151440496881304036805862972974639242758319863915339875837881141126189338737094082437471480427732615311975685766318173063887898493992708537801326008513806345772209832752018946970446916139486280876067072065207668910722872634917468860044691310762117871846512434362537227454969585643980016879311155554961595847245394679563614718580759551937540630461066267361776175496612721766076439308551811808562588789148823622519066516667606063619064667559742519218745525387000466263215486687592124896841511286681947862673814701609058541747352726315623024315876801947317915559221070315488779665331305423901780659132896729645887690125662660639542117090553382836159573625832250405028726277967702532121012850888714674759145205539795817763748724687807447010494166415636149171388046939635347745931245482485544935984976037880995111828310762367262645723539345529621490906134779197316326489932634940624054098886749659149201370033329294426953485788743543941944541932949181265474234245796977292576987165852402878505425127017795916641129318016622956863457668296461067945196895096671936940236103060639421055293931541530913983060262793654014667381809477436720046513546467249259736153332926487800616094547965177489553430456018607734000135205446609533189353292934587477197143554045053604950475604872254297557874585826680359514303159254403791361249886033678467456814610837935090640644501692684337102631858138564361933346117891161048009198131605165769552944143403785192423419501663466916116037980494878502059072167686453183797846668496542429841207785257069167625257282595894885819195408216383159973340748040184300062024216138396917568636831092744212582763486039703343077697370957357051895196352797535041819756018432798774718614056646800143040817314719786544124574767523355641956245950532497389021622480951213956537410410924515088822182831038263374312023871436453635145435182524431069153178593210383947827665199378380978299117848094671932253789314182424491427511065406113655095716355277776279233747127615525799758986665863795746519950449050637125397830231265238414040747690261951345852405663753647707446888489845276140530250267381513862625665363880141502005107374843064436626279520788343123677192105487304587491130770188426377703026950049687349699496307993812889712917505253650685739882690104922526793910365596897626639275762038035835498060017961980502884130333022458322150751710177568059415251585409318086682467629420182290644142120694510132856399684599855940455337373630301896981842565211145614383947083313165847754090718731574803857626214355942925368940373382785891092179930425081011211987304833794998574627830349810530592433144756424634770168053117665977057315289214389769492192933326153773331395302005784245499917364080116255715584060157100607649326366418205274180238797030938390232603858210693118146790379495956698281650069021682131897636817755796545031731416119375329013625353849742484387540523623384432137575383319590527856833108430491501787081411657779848269840039789276789066667240237797913690141930521943263747991749508135639173465488827949170870219415605731409873713846993883686346780920843591249628067887163725570770091677316240899025789086333911771885098782232432257770319326546773651012476599719675013462131984817259051686931307244142782025070224225509366871947096710292108087268661881832923526573084426074799483480457588655971544528849076113789726870666075318790518216856700132689764457483512402104313977748677646753336986712837750601516497758307309947074156374014107016469672186554855973924551072105932999744694838577300816944251410142709906695092465297298975926529397216240661575037907321687704362944622753140352560863776333048170836853953701183127244337187674051466904065562521770518840569428859683531753185095104025256937066011999912552736811425657417306492360389091673721628676144927695480997311955730694096314799141245380629352432594593548581933188349156133299179059616908553807333076703596997481066880444122638363496984492248692565474336268607153452737940695173643283306998149766205736831267147868751086700380307258193523505679784484684384010476537082395528368563892693030747940652344939386500362664940518446594148701270169544154424657292219007181840564348569313282704162128112410630255201246469531737767474758256793259678368147868807535748857850825775568764532393485821331284290999765589095748466848219325843818182082042847171650686618582133834183473179987964043570414125205263585633346009793878251855006381296749724769471891889045208856131852933095226116821930389242670480460900739581577513190237744666356802924146558588228269725079415079100471261147932519646591715291231427673368091376226874297152701908282760487717627715466813191093163676096531087480835136987532285585821121560618872557608514300578721729167211748692994333349191677446433948044368334896693600885449574415110537055253760021338785292571152170210172598355145480610329080105965714956717458895434781654585478332573465060794036509706000265563801326860403202618655319123306754971068741745270482298880052291595516803852769198589516190423465879750317082544369560888220508195837314900214787847993557956084749371980892087183768187044920615767825362007410990690651387471181779331258430928832862628676989281450961134177679718731951011893625500598387326639298570881930953623562264472020985085371077534247217891918522355808753846278057436937870835366999974477080714868839849287614255005894849200285876732402303923006203896948125970053976006377751333185153919832664249163433101038241807975646703531592132170224332608614144427829610639745872633805266933056942709014060981691066992177510308597926588107195898868520247855814067385830888658792110647425313145379172954447506206944360013200377800048891811802139506006089117907283043343681582800400196658944040707240016619444053792749515983734978284836089937542118743061146959844274432698162398876100195933330418815983589012979625051261902338587805152309476801944569861753052490595490947127403456825904787294510831008716586947945246736746796930538959946933743832392743821249302525936779604655328479488449478695849999775133943811240177801546792154190488517375733491941608614478579389236450741485521618567954567390301113037455253752913607155333420250607584389390416089980620288973098948334506694737615660626172435591812468655414894177451914636002108068819452862008224968111985633088902364606037208457778064341174151484845512495939080494936012186498158680021775699927310391760244244176780253737949295419431286168405860879595673567629362246726880801923905243503977330487854469622580374988086130221673354847703236321099568555927189189108865460886853154354728761317318219422152276666971701812506520550447499179120445767046287778830196851293492034787695054090696954629371070164955019090823896857696951125148481873705980990000286948436153265338724068188295594799401792722011020884746025218296658595018317775790926836724225770586563770337142521124599606012797985178448503626128642080194495850327780303427871548123717075369305551675087506212118067119607525365363769314727728092668566838180561202221182079258804720510670653886421046560677507857867046720985399449005625553711771529112484425534218223347062567571235822463426309234868692519732846793742053692777939875230618705780838131664455026455204310427513418907019851386197143197156205312289930683307824102935781324909729112229057178428330492650324427211626169394736118016914655145527675300997933158640856114662879312220191769521707972816066246961735799508010406494911854523243543166782617209673748932026981266017551500260437153337606880164338584021361568878110295534367817957167657946817822894564377666818617466601501668361808988303727213654083080177651492952260195764191171598834182236963779009567151313861628705996802130152946669935192566057593691723472513450791197120257663598487981332090351577235710762893918442438166291029271460747260981475034882563433147637394407467303089739115652114061596047838614961176017533558102195798074192508581165573507194960037624170863923368509318781654778685096434653308402413187358222059981340345252088642919980857819731462080275587171484943698212907393446022335131840948738318201652386519142790226901475589760689354375422343119677342944043832364404315193666409654934804239846156104821303314945666953032942064907588663182067520490045214823448023670619763595973795466207823308310618104472314255746753673752509658865032997370995209000073770240618612982733357227619053771718451170783560897376622169954815432947469018398265412259491475705847169934591664853838944439800128537013452131251696587082420491563146034647145697534957788695741138542076878482489128104490618801888060998994733018671635962473234861813091049455731010878882662455694258470306660184597635041834002862289926175078875856928622698018371455818198038990666395214122383565632131271840623130641731453883300211330761153460042306248669228482230748811061442693615871864819965059066382057822051966446763836506338536040514402096729945920569231157101043559663649131742689068108757598172603080767101095572765768595133763876345460075041247580107479934476460136893747720577589196187478641424842822985528228654428112581363659346980281593602243709510551946324835794127932296356002874777554030527973392736977644800001516646123314037974531762257133246704566199186138024523460790881225135866630381692541948528708764033248793705767375263452131931179935929196023027719790140358050363360836012877305361186708275733893760254998890968365826384576882786957665807440573538488108133837825683029261582596565650746084542563185817643893875661916133056596680518754373950818810948241601973448946905454448681322533718804819430069299239903368546653150925842923821456997261282061016619270271096514665347757533233470142266280488964306970632154318645357954060497588086021565504826200398890237453562911609004751403376808520175560493001168746214778872557571427833110853426126007681178523733683341092840831572026603803707786608609444777688996970952330397696287699117057149801130650077233306666627622813252341927316085937043261136067736082029055116213719044308963776984495412328563171397632112835659715889359768443270673389079284207635058043549824008486917298688550260219837822903615859871009788052654097677149699579263845299384804993776755199168771338873169867298632389488733452901438406444845315570933065192682692193876649143146608200680040184339486867281752950376925856502916824875034008326377051926505848918456855653639436227400466547442068290537836018608602237752378294101872615301271213524637763848844147287069949656377831565104842216327765560528193367568426457830216788810989373688695665991284555457409435641316588997154857614927452490766976466245094505947363851883420102757292257762292205799393019078299365383893248866994890801786880614228244343506307807106717066128505812742458187991854682708626903287312620147167540054338409850362137890177248057762081690654558125398203911295623494370518284175062866261572023663811614802431808402496933076205864882583824811414318368349387708708261077406966372577470778273977196667266239657678010261854319082862413925679903454191369148763802831990344423620180972691480929628032166780014275234436889427441641773615804258690469733966253176655345155120982508989068150271502539975223930935048307176787795880935634471947331595183912498148334736948808048045034308035865537625975764916139916213002301969836929451607027057643287395716806850648394585617619833076842590921045012705030740725139489511660557759659524735561275026455669354076479349259864489748609869307537487514964219953590984283759856954140901632897389148605178094278737427999825467189764295109059661471852534452755717841631862895862472370233202167281180990398809622126770274122034713348926340408656833288654114081383621607879796245349276284458096275723775438065503877667086069094560385658566324033476335805849992465558568301314472298996988789833054643364780817802890283095781518793853417957446954647991298496033980930828909316362223340081280220926437343673765333150467274919186425767975320431854399382935208571664989658817617094940165617029265155865155385036280155516798346311291681907753638768810137653976622919344917443426877358063941471203101123453899083466209912768950663330724831182563451496447368845691943469882900217651191111624679063890198953479533979766680383473277691506717755437432576848790014400274595777495275848827146773018162335192266126977112457435551990898891610531760959003795766839232535931154119841385127483406958046940098632948659451764316833423239576263972852165224374877502043919482438212380964614485180794292708773879809418330603254802854209305653847594113845332886550588704756859628880172402766735045415141006700928597374015967051761023736517910324180052731620374531133629388189899120997179552591905682573768941438762448874304731794097379959168435252895996913062407324078953158380496651114209889344502326057358899684332285281873189052291997560491019045444387459595566301729499878282806052805098244496925717516943370725372173558731675887915220068849384935314497379841132676418171666114968963653222485802875394016112759083176139635212598959412623266946090416437783157612930552250369818920969328209337444367937822180337399485757575056667817177628094135640737472041054628971231502959344778897774994699622416841130460486394520577166206229657229406850572282423283492378960166381726719997964691294006502201865086368795486846295575337755245902824494871241628766605549622905914275278747946730976591555937729159148438056964516496096053199597834988165412736697938567144219525062356919611162872368453549005766766856605106803579497746881228068389731019583719229466295250028285285992974787621117774918391651429480845050500785493991070148016634236015960937294988473883822132949027218917583992452657973341113529143115738201717278115167361346914205840608436200862099389522319789742447711756667844405109089262152102939579822916678190659905792793854234896411854953667492216411122380435059203771455015060248313960206311454055121406936802787041524685123093439840209491655160015490030483088397369960465117472972307940909664220240340283522509063030543713694565406727233930608602118184464690473328584228192445918150675270230565596927579736295359335897153048188696338130615614900043046202369431324793913432429690832169532919125653901113207939366128452443614420366968179438134233116902988122890597127720921653292651208416437639826852395151284744033364941466115295780366774151380234411538419520176574607688970146684458296177882994325931044627940360254670665435229895874279857828682974381969263542472739001141253688020282176871219026642382400997233141585558953416375203260927687500882054607725609650822874510327604035283340219080351449981741562828031389975186027268782202775367319902931540657909113663961682648309422237558253526442305902148221793774717698644131734945587925265811718216812528218192759412707268830609869727903257733617339122175668334150110333668407377956363169528438568854391043570113223270686556206860733495661433436822249703612599047255419319283614645613006597734961545197875839325000817823657271588978662413912755250370171490228309612904014163510624912457437380668134904174970472133542623000322549051783745287812037924716371946475554453470808038026000094469194423799273921481275655360833754320909554809612669929773357840398505773653690541181250499073609708515088164889450601646301998910207999988869115606745584050775873582588186473010575379700126804256387566539612355781714102610869089814837645850535579008741549248473443587763959805147641548266574341639521778901208847183871647652228000355000385455941290317561581824758036306908102397721745463693951236754201565164118937009396653303385760368167905690752835185234301934651084719514072857736562502052595362551138726590872955814633637966331863103328326653527654963008984511859974939669394992686226672866195292941747217060244212302298152832456098693456801077186795784322107049160957906897017599080546055200532299312231168882766028394807547298655689866235890717053970914193984466004885404151856090878786980264595527882216350945395018787577208967497356525625340039887021121127229028756759118700017829550012519516383956629964698389608002990766176935397329231966574957445682247697301086823505753873396759703308483481544500065462155392395633269729387293840875641449539338885371738251075919302483891053426948375321994136883466595959117352727187782710442775559448963514150545024729280460214083931223230018260382113619491104122460639011107975204776814777957972078001171750846779880084891704786410106232724668458391483468340177604867830456394183350337120508370116786160174854754955688909774090761391251608613147195240724368666826214591016791889326518359529160586357347283117389859419307131872457343460239078856646741570352830803967186144187988630451759141769292710706718965533070932902452999681603364051816536077329947494289227003644770647529226828323111739063225456043322452764428558871221186880809904182513424814523561187054328600624512308001558187145166154887859563092388785742573537651252569019943926939016748486962460266378791971400334606446149235908069861779664537170411638127597743582472653240992787411924740143783939878926926710038142054460669610467268688771265458041993809333457502902799719678303374704989377659085266309903916216563353170881512876706135425640330460700726266114632664181407826353617374868741998735266624351730433273390321997112143497001140943929862460239655201432118711990239967759285266003373391916388656225915420451997667077229459633895285196452792914448271604866827119775535371062115199581875072892270694559610524403860149344494950138124240913124043097309556132438253486647622295514536729803952555272715679854067489864642053876112393043115291172892468620964011769169962286692093226426695638101912833176787714529422131147055530769789313244163145974584707206631400726691295303093627447015994111707839918097041285469872209483410405198990887965706982754433618543908832910934271785415727380056759082711696814404458622711375012285949790127625655841543163159870716094742512296435507051100962544680346189156069299260721425109977205981645829331393777718474841839592133444744154822497859892762927665430107775248355164739306372240138517479793467429168252667362872903557766183806551662818374919214176392448190524021991810868341393389635526236046795059591854758758583982068102687215470345508014696076304728255105876456924651717679182315682395073851640697683527096339004552633655349337442377324503684599695808629738473297464335566494259758588149896011901183173932302641487555061260781085358097038977092214088520142012525545538775349342827560967552106179314909710170802694542307987172247507279140156752836082986013630371626748200534827922737971544597662900067431644345833678619614544380784793370147717050912330020746045746972631466680341347375201045356089473270430850628817084958055110249282582059447706941973643116690922312375170208973467128013726438841395328135873844747393045985372499801783953369142156903058229467549142840562792408327885609311111848866090941319479120153492686907121414967593323976108396947787529110602808424704376604073390393145505416467466711772716480122121942956758046832296302471268358819121816526657626466922075177391736374327115909927706322881731541968987070599026770603541041343867161650882344943599628332552883038933734978507099323460872465926416359040968478525742837883768409917007804766707762749987388899000267754590181818184069180735356127490061273830359572882925017187460945939791801401768937775534418223664699338369856809845807008825352195523200807031456548330438434722501930329734885287812818307235118099760621639642875682973858246623678465339642543379591914175686556726755091918572201850786363548752114440514941426181655227215881285169026591958776767406553181282827578759745019398288949715372706384602444870885079441449372095366867754863968846300300481768026389010246478243513033178174551347196210242611618375866564243942077888571891058304793519002919172773042335478992804677681187670134112022880267431919157371011312928219222540228551935225165816188136091050711957930610370653031753831325755140059107141142866124734495990693634221434107775996591683214743103927128347187116405042131629115091121924512235333644253013910893071480703751840412058251392072773225789487072606603299105665188245990166481346207378787659543930369072993486109166408662596438673556189715700383958308480991721973130743425919745493263382793046646708222885302060808387342805071852016939695524109677968449239888593412040705901255189547088795528219011285707492298916402793959792550684674186164082258077623072335498799901118571095120531875186616812084122150173160896822251253893679883244275386400503797868754119599539900003468353837126382928013482799961249575679492824732641977757887061874776605813245487372366603828273308252907641016782341936522210892602046844642679968924814712485696920538966769647654221859986711202506265200281616454237525130890599566361662678125639171751497056775567410225129211325666669596255013007640724666690070383960723906968796022956548753608624644004432529798233687911757835553869963522064046206385485058488673012051851320049263345261759768907331996030873723813012034753336140554500647531620157813461067903665704241580928495287983183873029764481292296398616274631250019525580845183693914694664826197720046783841516759256918821720964809290833330660442360244642192920815147642339101494064551052724004819632085963552000463614227526222552945794534764025852285431676919034597632856114884903742615472031787879683583004532045500826954415697941445073079046488970856420442189228240727195636786440538336610622440689567429200230162043394895388397480724724851226157019397185278650750645949467532234891084463648763976777482740060370514947012571366208388864215966162586825680623190104514664970748090303695742171892008154669682664387899435270005354213473012934147212745060220144770734065071960724548730689764344074202168753187344017789229647696001835599275547582103723717051403902339228092343205993772793129439396398510220832319048590682835967148806747348705824858710746259845083354491594111592905242600205193183847148891997058252126992469681565037470095144948891057073288597674977288030947086625304436439599483636766748578179279429565148528546630814734241085863875563392016750219510131348405665678299141333851997706011349679289794502042432681493630709526680087296567977227255823130613119689040006672014253171144124605647531649710415054842800121011144921865010539978597492604905910037343590927593231431319597968562552906572386950435701466774240420262250873803470521585631468644796783368720742792820369823066923850095485430288882778162131650466017241104965489340383486774000614284178961131409477828123071608513405339999140795757409550147840623692817460904219907770457078187700858319903947905187227557487555438109645850312094185215657033593320765487434589092164325113947830764936978820258878383804471913983224933759507692084512045810089816523593168358647915074917593071554449153019153589998275390942699003191481185182043570724166393091660616119742211149167108876644280321247381741581731855155105733216651790287983925795875024494616642873091469881461660521155306791438787774679554001263680761868261395035111016144493004646104693400998550367083933686574902855397638750210103156811711891985806957648802574531266122905324916814373097657501711220614278370890466295634714786027847127344375619085432428644865538059380776389795865428617664785952786708060378746482841230453134831912932978870155142322480842070318021735781908857241941911372408769956877001376138633624548175999744865446895531417177334876185035742319867830422666845307541425125738393018194586972451404327896398896792367986775140948352966218118643663863678162522475210809204038253898059859723773511724008997031553267006210971166551385356191788805671033761128453919738419941577711493926191830446292182497635140551194358064321861396595576395393797554770888305401928555010184823581294138238683314004554861350590360431043885936968683418202460915047606621280846338263867844354145721955087237304999139802044351383371574162772103147979913286620981619698212020581958657722342150101305801130719915957820618670229137198009048619588506014386542089282908437864593629110911780837222781097633615904198274726464250246956650633586461611176586514327047157852999983306290642275614692395135493220393199293233207686787287007675446679910932317095065346722353104982452520082971983802722431841041620091359107162749493042143693802271064709550390414887322116474259726295983168339383792782350808273713060153561751881183296785121996288690690264412668792374912800250917647236335866158068940114228962426119170683826062398674860671674439823238427009241078416535256689655130973981497347358366362140769127833270195401177102359265399254935211529380193787702373195568158746999235594506649216511521441611665133064428450023910896178220801173240110405866655913108182032977384674639051723752030295418379473547636169356137465321423597079307828500052744458027227681883696899536408428511792886354706751871721788585660351902022706226719674230943912020910329856974318700583576331146911844516516887171588465757483814131344286181369099307157941185357394189805714526084315301553475419563670975357614868539966812286107293416053980552656436594182458244584631128602602362663454069646266230271847193302881460442954612326163281937222737120342221292911961816312820017240270041650310562261601618677787435802409544681896600291029821192266169384130303053477087864001061281118238392460272952241320235198860435932787659568304890298057588754373987990098157197941557319842513603238220286882789725327532943953455470308113902645028358320816313504828914234893732904826935498591373964784679948244109984755582748708129204562013316638477467629898164637446799955368498013364320513296275218651602257977907586095283926886017039971753847085671035568814382038237284270729284073017303421539190262117402659672633815345363806030487514667796424314462316509355109164003650341894337719480375842925374582246937933286309000489895614643548550908775482299535432297012860199940763845491395632066028815402188766097498116768280146698881095898765536062794829974251414878072931440300317491225818074539759411719035653939389743881022132260190516070564453002955490089715579852996960661954429143262960107383298283074843064166684426180737444245728778427281053843734285604367545492354514512974411484496578234255832748688631818644359282654039497261736016063088441492510113920068655550435398302042626898991867739792300238617984857820024591813782294698183751279243017941386588166929900218791818411692462305338515537367323657449697570133845555912030287086682897548000306517314649165647622063784949843390127641044899825239040942773270620014339132938035682287398060340234085095506600112827714778853139992206784283172728878286759312034368284931944888775642882795960363424710457221095139960977501696291360315421769111739064241810945285439298119308700093234923866463449452950657851540449415931939734353213548312274734417385934166337780392459541887106265753639686406657008718544405887684835327900636159962247835458396593932102554838942781642221327905417592749208761494168683705135294899469258754477902135439367312905019878904641438457927147693537516989214336796292160970212220225642595936264754254829814342806926728075554448138472884582207150910234235613707121759388695343612577672328853442786673428982161626268480166432981487844096021767389908459238896526290023368896342724746162148984432864427753543620266921626370229915918340686525742521293424063340569012394104252100069951451722185214034743000287121600391766269531964944712684398742006490223670918411325213320385080226068087860997163236274981149120513102878358831926241301459552438113023158552719689986682336983564446907057563676383422365814812866323441531476712178733510159473212675526433581194868667588754199745123883019481402291714525937635588418396364866287024049467182127331680660761362091060420024401438121651601755404849988081605209355778552820306423999077243000310293273890264490891714232811067278424957930258038571119027004064186119352295764436944629227429698528747504967589119754097433379720195345764388295876330794049900796218700816498581326786519596092826232574273464354043447199519215735717718456623990429258494324695181015207750374825411220988663767188230099328067135759339866832152307142577634823053860936164878137797617472732013239801512888517174261396920659795812198569048253603312787064218686309330504798788191156966070257042937645976835391698704128692463421933908954166143892836123585421211336518302049582398970731641716484440939485810057333437214008261405341061757504827756168591874576753958359411920674061601224702125308226119918962556882695023365573072948690616841698727436350501537102779483156452414303266120213863862102138694027517323674082628770971193785759627313339735126604840162017678537412718055328145133175770931329793150288742729741188283785762824633099629317372591191027550198097807727696477797102658407989789040891232286465571774003315500159908705128051295131768833189688384808974558729995681608297802759976142706376924160547436344576585974629805034848745786518165198403149836800928836496989013721349711599168369322762079176342379378948215206868798908755530236632202426325773187985176847815727608593570247319196085288138132194409836185894460840320067355287635850495415777630145175575939387607869111672958536620282366693170473549816755994501011156821976217336553331319887617132135214502712014910782321663124354448057171664839172944548092076532085455590972478924087020209081477378095232293541967620425806075827088442506361208957360429879388816814193919704299993319763901087491009741269697884609713865395408293294293708183449431386447326826827958558528119287077861924456706686495305654742177351854597807415966084270235472301892930168194895733923509094472643177276772626091697506275990987236622318819498692142452671091325658921574997487562179408526333508820398917867904432631431399505023765830231951603853119017284559109604250758813939885475578679834567560455237138545925591254281993926239545601587233742835785284788340552120015592562577777909722252003075937632450216866546002414597619066581492112108301481697424841701363291322316824730842451239342016230025681857460655218343381851063673881774560500276302199763099533589913185254797540381446936166164134849688152250178756481334188387727273938561814094262198275499618924151798184102454849202161233297832593376377224656071038937715975103387274304848354520459673513630835074997968743267474791252917303131133580758357794636475373015036283245352385368932621766868782595158769745167732487494744400301153201772919200733902259678484821908209118268819140216221200426134170264587516775508945770098433904496830432565007502053079425466720452490361222571357943469853082377412108944102071634212700909811002839841236890265177022843574323395088478376171607961362180552831879553567402056089568989852514138327291332992976787036779619167350390416560992237754832489521110324565774875137922125959189049884526799784986194197976707693282688504567635776726901090446893196506864052248699153572398051327852488923811887047013533526490098308726947618642872511764855713290434298314269969726634457950215158058204674773185246059585815600791174214508932059361895945671068454142933151803840381629104544246544277196496804553967826627575931647513887797982681616978085755351792394842394943193075977106832930881425415928324804305470663175682283853310915693193564648517216513755565279214860392341075696954766271772326831792959456094690788555346668420194414910881820448130173198422190506601518757241112523841284327806784988868462800167056510409978884259505458677004692995734252513834098205119707071317670673425187619623976019718918461392451351782366413697100141963433394207996954548558013291142122855261433479835513597891873856126103040134729945573638585369289222043524665534231093407031215914538782913804338361258296364549168317225252428062762457204093869882927776350433473577700264395156884183373048395394784394207186598996640429893883040701882361264146553260782137034828489118832784204775210211035945581894383641499762544011907749054753110336163431670757487527494680402593934910988076363148003979506596463774892048067964862274235324242351062957329163752047110944640573119399677223033261249783649489834550580716108840723295082449668292594270897050812287993662435780328595109852333945827819702194136434610252354040337802465840285057135576578700605837931370325689150370434206982003792811658356983682420804268742968651607827256109167940963466721207239473301555152336905452329092824718754919620750011626743102639961872836041203474410677482792654744435549321473984901076694498494219906688218155287849287474116040204810374131548498742358340887175476090573460299443368680415806894466447236117297598204769381765572590044274880244730262110319819028313321302323475070070789322455663038232754960664576428507195348287250051653795137756502734986295607951109792234898573156981980573476674537625479917762743252870363317858342066841123936156947048780009597006538738251711523561261100385270514346289792040436801748985543416482498518847716538815940773136652229647877621752386616922411271802274632369291351097280427156021672397748672965222426609173257481042536205177634517233571455829694181861690779976710975317523721988574213182798097658132096442930145825872133562381033700686738684147773726273088308222435622510929259374406926060772708353452414251660787306871983852213792908389051333161022008272779108023776490596394978337290806932669952423260848558171005547026466458753720450724001484940450642098220331302945766433643337389461927357799901195590763071620690064429807400626115634672125943126217558907546969227000242547324633206301010310237891000051935217519626204848868034789279315323244967757593777666155931565625645246244739596663900526817250249238402095268162903047293334222295013122950725354686074658605195909655473854234816185549766499483197913469031396807094511052872241320748135633265406852987234349239983156979051421266041980644300318903541223382470179219692821321058455199998414503701535865798494102133604375538673459619011766317892852512068135049101228110861105594001673526550212061604123003446177281263168986428848677288535716440257855923001293607668322880365990442916151250712923696292145117529837433974514358882639654128634357767742146943712803563017851471957004781136720995366374721201841533531078440638905534820484979100116474085473878539211565799128437732296254861415655195096120632903765514167943546454158351863837961405832033251182193938877227956888528196726247252435869899749390041578407645534729296259012896515459529772875576594341603174222764899851082828412150510459192220210605694933958890680024816610588049146553563015808735678750487952112579030497595650397702954563328614769078243574103754265389535591736397033813656267390965538034245379201935429005460346643943316591088151550663990881094950148629373621630635680514748128036691564056083970548191047218094867988095343500370971606855209992283478426290712595715890131936475875752090745108497114805947632229874073810404763617054680409834944224386976309638617771857837294109075119579662691629219923361523741542980099678868655105375822474799205631100240504071551580886650509109436615126160166758205243067521987128626501848589864561837156572241233653376750239198313235437891100293405564168074810075911926645686651460715839211629851667538941330804219906260638162459215001209772949898104857329983777044131223471371614555199304860622636403913781574614419783247964467944767174351325064571514946891418357657149919810078810934074462431408320299908328784670087181138294028651330867206651510939975941336291229199293584414301860875221952730418865523444532810165636435239360490022457790005310368409402800989579715007206423152723803502404179875856475480723733791354341376769777823681077548572410771102541786470630176212190185715457939328414681400389385358252812786522355808791642027599239885791752202509812247726531376154066442232009667680520190398346054159199446344729946016937059376356413059779546904799164336481985781698227613441356080037958213044785963016224515571450883697018555314403109045604440826565433690155577739033754453633857468879903803043219064460717404117928010589748838329222208236216849370531275742211839909970630122462447015082543998501477683943631460145186701806842089869036082358010117801364512225801452610939664947211549627938289310363637883672738971252491507735481696300332120864142518812215732163754164724262750415698122252038930805011580459160917928608973178407780438566771964528537094863424535580612223900976105164859943884418740398356314286550498450177633473783215442406325490215374744438036439234953552346321709794764250118508919198891248680981893819393518511021701401460807365800360713374187098790194768410420078418511162877153177462163850118523380272001547443755952803776301014420302466809351159319854159763303852284202908270774375781364569929892189701907980841858672392566554870857795576355523093499658722787970697044679947144026165096350382468653476197925293753484128843508350093702753338923307264396258474126745855758117759936657123100751842739178048653370124273791384620538044437663462565172025384490116705869223056469634722575081844856308753515994488844446240414073701588208552146517380643054368416475368652514767436590771935334612832791518584382515200507669340178784632164340236547616131521180688907501409804395951706857068586169299647124518464572868088358311765031210372476429277383941240297979849857484920182000681015886095758576362001031620453498549484247993293413607832726322690178003877672087262463939351649314564769264978896664010756656376379378151828772575807303901689158083894349805449620531508113718403474707866302069335770705122069078552874394782445921469934597819426803687884908566347627314163379363678398839908459192498749910855524917240904324879535396979744163965337267900516856908826898467670065772162049852406389596677685592079425321384871670381151116156513917184215500753348083422642268715762571812258621491056502617278848870814697572910322004263510615508962117792414767891035552976220444784249400355207236645849532340763581721866737343389080210314808258619725933717572449477221857466383122230143066514866465523759650498495244765686208202224625721636497618495409737540986680106592563811344367609727054846984283709094613286025287556905112865746894444094104183123014328018380049774076595458266684801224771678228223824275371472716423707855544124286013903697401125152809597899706634284697829552183170993727446598842574897039118914636753706556945560951769196851406382713118593614625709502632375446665135614246719429858114816454864981539750747073215019507305303599124067693658158188030485762195969979203948646096128446723442785854110218096513013355473689455747924546105495558092912438066428825036794797289381882866657650149425885385524553965687954696404230510079949872511247666172735347624151223183304678414481621367115416349085147115759544566795328498746920619156048854962887636227027968893102193138274840546357524953764296501358508445151033253203417898874602523982897218311610449177463312534666590618224445621502824717134740435578902373381623074139877502071168595363028920248735474255765902571136968888353019652585450536315077312287670312483206840293828714997539754266990188356999377834597293455383405806078360779772163920262983233601410101398523779420448364842716551086979755304954917549130617785458961516635284399152233677188496040874393681236428265519101336326288484117534277815475927719312095948915658612802213055954047319558671526451017743796287552079946770041143046544985748640579474141699493943272955194963083780834474968430490932494177301197891675364466405208072822196482846392283029001767104341577272653861018029683683898511595366582297031786701641432026669898365901795531498309833182336375515104393443095276230569123673421529833998335299216468202253173259937973972312946493823949418184970959303629353615296356217075158622973306376952739462623220449869370376092296606932994348263591063755186190893235551601391631031697048764826848712125557407841226666775314205705067435664964117697466172603542106963055133654007312037976964950409648462476179997400627976561477964547722798172593124136297993162674224553623451853580157257742333960287098890156086226330893540259206958784569435666223018609478895905891444569227048396604025863560313195405736458264277351726042168280979424648947220937618412072916828954720792352599169998045795097130869612131019046991278341586714714685570741396633332663636323494229597760132933240135172051629415314649732752472057793409951469781334446009751287566235374971726449291538789792223543735422292946642353345313728242273377531572832575907910217161000699984497323752231543467978709521124331538642894290953507834439301331860589687273724699086196223183166289099306259722508845200236137908495468658994075974450197240276219993642495089906512690998536450797785955858140932323610320202339832293505502998349245646306500209798622908887206730473260550763985517060445691964510256582837419157843774095896818490533023947197898148289586158661368802689107107785575320998067428313284431305368446960659103312048662651177200991512392722247194365624752137431307157643565754351344883904743566686267711409045881805933349007033470178404830078896145533270820996372714828826598677789774144798181988616719980999659651952587113181786238889429694459604140329969053406127379179828758384191765620300483515995426797775748020237345821287169168016251664507983531592530626792596135220949975010002608057057501774053752654355330318637895473236661032252412807424615083492223491808747840649689514344433861410048939317497510553081504510664845352758592894030029548140534629765600838125414348108307801392388812618307828869372117197450167851475523570947617478628341287095459252480777642367383787730410623894698347346227335355942129524758101337465909023891796693490860489588204612549720937309832569763510168219819422987322574693497960125113223703154220425652405851806469536026766495406565727562341107033093052516262943607810653157452297250396090815541445311159400638959288035122264626731846808382329457900026954979139834565396137100116570898466382326566492891816893462558193687409222002281901607221573716376841286123418494910782515281955622283131649280574460070537303981846683409977714724951186120938910172116035922615046420447329202844896612522438136290538482455599773571143303586322920620063203418324559352572635962311929035346670239587163377369022795673968585999202869977962373553262551169364497471732535352934901644566802520217762307208366004676267209626277670939170831285730082563114866208067064616442896759138989138185853776609654388080538914316842337339283879728654520609931484166533899014830187401114186385411137463923334475877584579567513422766251902868482657166366334697329407303463819707061366728478087287371339907599104173063284239776915250467500000692800488241606090764232454454433828821912418673788221778482175911135925379571826960571888320319128840994560161346624404837246595793040379365384818899692332741433742777669266115463957673179530381315855178105526348448896186469860854857027245496389549426966207822601201694012410669622797393466246839978170645523245081719865704973573040853382299036046484302201145638533461953165446301899970604183730545230227641516573076524299173574492431375147903676178074446107785385272770398141380247633370514903588468977276382345859773575634227899802362195340438585245367841927713439541493876346714347597638322258609954911211053489126268376668889540669757230154138158160791456564031138515068293197211860922730490703087987801237120453604499912703657334549160930574307411464154885213621170761571462087193354159245225987185741491617495101550004794589590938150644942293769396407455437224617515978984334085713132384983934688436862093402577615827510801252655037127599144450695798580057810315717012339026414526516908577009816279895915202494349747366686134776819724015522024341740966349264736775013078628740489083457108915541037329261641914412164224356214146964425549553287058949937087804385539429758442482797031165418108050393696217135616918472056618880611153638709040440133611007868865027859720838456407676977978892825701922855228807282824816622729504229681739666463556645280176054274265409756436257431014817149807253226984302545132497852222303323776085317356372382246523674856939354278737947351806560604934027762976375799139256854065781517842283801989672689195245366383965916608062391778291317493791223994390014605290653163784404452878837032867611589561008247280537995829311950299868928495417645038438170574198398453720673944196191222337005262366742661349626130664193455663030957428210584481541011384935225877409421900993135424995789635321566044006603284181010634882068210520422197995986473432578425065091885618020234240456398260832248870609081208311534767535549091637106677416058012959647393445355812553768342169672352222450133009752319503216300448124430533076977425290417082286723211890928608799950820101295419476404120660210773666339413803079719368122936657057163295736112265657034617035095967646103283186519418224257938237301412272677980448254566549367761941480723700478631522129648732664962482966104099146781592046336700693904902710083726631292595339844686173020944962728122064225792201889212886021766190022971102604042553073090501646510371611774837113167169759620944329378693888687792865394655896154380437753988468558835131852386011043038319705310477926265079070015881686777100523480045962469748579335059302020134583968198503499106426630344688274835373899176502223655218614870833429916978038101202424022780452110307079943596227287589391726206090038619590133561106367506144169190019391639524081172261174674323602685383353106356962128803786106696615840909692289771223066751952344628935660987745892740491608833396751669474566342671692558432981006232911570015579329428111865420914124344195299433440469903927384059662682012333613221782272535746704263661390542038706602611875911929910111687909715295015801445931506370701078966007925574359901841801022047301857999184966247810350658374446444807003405309696243495484769093299035821373640462011888821535301143554369458283976870938117010646376902097387884287771100156282238388138761174272956212060810748561503457979754581611841182005850221396089802632098320295527661522340995817076965970156927896160155712288795039378160066839789878228794498368234412257287938415650191401878287726154504039570862118647218107291112296503862551265766647093104275131247928625967711625839125404656117532860599307615878470027147402405411543925375156481559772773801832932980333195576625284440040600133710377521271714579904680572410483686155319373368698333581143798314745211884865665526835443926119859983753041474399640266439454758188386804043697662330675762840259517118252277907307310975454446590647697774877311273677487442792238828635796324580917296610450632232645934597011117572352156669709911593793385181094434877650506893133425796998307886760455130293711548457805815794847751940153866874364171512340793496343062903423156440615386329163074907140821977436950671650153204405537577048793166106486406378620693311521929531307189132534226514306010996022847400818012781635185885766316285942850941850686720666045983262312193106228908133385255139051725669065438083707244996390948644165523433732984379132013044429006528563077161183860260234940748998419384333329926854783471206975139278101459118228613785142830427618945603798148599874851269272048440618333402295291249794857958684574912169594466284863059604916937098249423684522194099589041078461621544037128379589775395717463949342901391566245414365234948725073196748625038661008907259230499350933174142627320304836576489300172854745291453222279248773699132230958490747573291814658115537734781199425389701273712830095866022348458173474488437495813731171627948212929853955585708064538354199492280714418744658656789757156841222356819076891588640547386582660117521378751767078714324882518555349489000395713962145235853506318908931427651015295930728528809900249451853843941307387228366207970337665458031027581889749619844211628035330539350663312168330198139363194349665014490066407998806427896647485568223437235962335171504468680210879102307449172839685005628869999789277536197943198731048588040516399439834929369419757561243691578215053563299618840544633660574200128118451567280477027724247544344777543692213332508041800815671511659265107977181358758199867677351012750587491926990320274614168667731814858764550617256900682216879887602691103913977066329878923266426005060043907106597128931904471329019104129142150400628462472457690079397489584596814413092645000023460746614263161385374716645356778966196018827212537908039756640427161640208757178307240495505608573125500168399766946622113718028625332239484668717276080916902718378653047783621550978652688202298918762932135246338210885826134195657310171765484759025589184192906089521658006707369090690563683591780613980849917935346000193023422038450105856075997686770200758086483993773623489248356779821816487318026242981573050843744110334149454356941074758382412615331676378504591141507991334651833907564982891310242026737971599659473478102192790010497173594486595253526276611861340371681463224310280916133643898749697683720290907890698607248060532381137112761414018377182290872883809268596210843671231349059517517783907329534365391446981877963245538422988601636945154394179299300239387421395152369912475756205054412731837026591962431871377814097280650560952751497429321705681210301081561370313382391181069876255098536504948854371090034157231198453069114242454338211567043505680741340859835797183105640857225749709436694736387875228727416737395481741969751075218536188654544688807792419687287815988294052059108554136899606524974810500539907393845411786867614375019916664615732303918750668898240428442952453485585460062020302010854623869900930115853440340127344723875780013392821720485207213656247521539552532717609809006393282647878426915854067877118273751828600091039701165087554737817558370593320264900536067558819497218751819152870897133902776782265474948544294856228646418650444033926241939020090413956175976058714585234641617019556826456712140426667949410789484261843632285562517853559102237773360521244049931958039648015014173701694890322464447898391630377100572028840735466906588974298099359425376233789957022945353299122509002613228186418477225682667397259144539643448546328608515693699512943860173021739416454147035153925599300135752052301979350839790863799729781403103519209649042238509591393512568473090722338784807968445238497680694497321172024618118191013487224279331171508928935458592930958168177886635318104306563873759153937186013427170542597788372599483619313264614883772135835696462461222710477209578784566260543385715001436000780267813754539046519540899350479291399883337732310926034210692610542942847026615341585839710255389037955244505111861474053954136639267610895875684002609663606996370871702993530246210592482269485965922263259223091659286439352699072171220428255559610790824234004298237306416302651820614142521852060898231422436438956715684068501620456832151925600837467039216772284267680259373693435038597221021775143721938137659881282102594717126171537810440468391977897871428974822679050536224373806081843274144289537184810479685978915291676788653159091746149331619136986368539941012991110919260736621145713975241602548732237513655530108014885204482018700775495906255153727810363482048684739795364604032963061713147672435792432060797693595143575988251266635476532480047707280423863415445718999176586860362982424943018829231560546733109521729976031656208810774911674947631987383782891710491996815830927375028413553148377011091906760786502473808045623486703648502492628084120763356494612496384502728996829143991537011783344866866416340475664731538071516064207283661439140833790550555105586235337648662046838204700335912894833738463288271093018662654548187981801898984129436366810141817228713975157936132482872213908986705080544029294764513210694514576752000797595979916624779972309189952237635441722697775600176797082865760724148845850062643124923632990359311456548643238100130714886767766549561979001221342070332690676239655523394901948174953244665660646578018261664197197577496896280919152295895167722476912494342620786125626129830318625292287989843639179472143836094210375699221677881450332982735347378139223448642165744608225533770274558232507826576575108257769601815922435542907654536074348594532332783208763206148780393324056217646745329894106706441696068287212942951091040049899036453695816991521041978651640152122515372747101270533037000844500452380526918550210307954693878997255856584467711584794829565956520770318820963579643864365799228056669051836633666487444105820042575989050487795791767454493918701031868295105907417149244646144105746243678409133780461545159311847104724375698200135907120836223448686554661703428373538469080572660207837338122732953645639562184549972513584323778735860913926669334472266048938278774236727971742170206008927987050282130640961054051879813501268220183874375030460746850025261673217682024580732556146978094936830592757441096525267254703416183556531632054104540369015094684421528059986310637174749913473752533211816950794834546348586231613240749957429017514153833795551416117010530714535254652680072951853752539481603416764880876261299834546019530730414205783599127117059935438515973516035425048199974305781352963788261700605114954566846237701990811073571931969800441817105766508358972028548418765527316300527505984149731812700786351499996763020424948967260109121245568583192564489066911370645066601822813930838325635893551441624071365984239976777026552524222390434203022761713547601006260742935500378208948273268765348144457397823538357986640464502625300922568790158014636037360811365076246232200519085405292311770024596683118927039227047976867425948122514377315869280471505625429475144007794845217219032223126223636371964664758074562813752849437090160451382784194445431012555534841084353061862269927043645260988539312715408616598221608775823510649301298041810425443072004600990777641946256591175155512627282045316505811866715452696199498147399553909169982322047514411993128736939006989315651088158916835213631998005454145521783516405918839263912467142298254923639769277306371084038188294576904483988320194743729622477801419581395202382360732035255207862313376454287481797838102056855034636202270160835493659073002859750923766290219103704211323857989879860292277107188632756477741778503835431574521951967992706764718272624773028116131001983058682916530995440626196971192216976924088985005525972716683106344237664285039181881987356410882791563717527956705261752321100022077535623482798226293637201694390986439008333812030854390723718689666228057496424946224869850338406329972438004336285655421981631033974167063787378592034832080427273184625155560478683500680785396798317345924085638076102726255588975799997282095050796522843232475910455271762984419240304900753290123024136446824046415683350044835116518089613752682610432122243913009486092991201007339141306248560743370998090764835287486523725298245194578393558790729263542903492425479212794270790551828415797407466061808591656360955180359699466161129275932795707897886364145895046994330245922284075877324721369023996473805742093296689646971439342924721855429745752845262972201061106496927745830381285033237049848980170113944069035800894932419594285239747881988970954362417280624205894870487916203204317560998297730103571494935134962735909790132214325270814280187864414628535599080594785373607652535430037482331250651457599999487278772004864631432690589846276346851020658747505315891554143542672325468766281521202560817420546651374299932989517907212185104138853150199445445454784632506426406256825576687381889059611363980639135604108218598107624196270685562600355656687174890898242703263273775440765183112835017516839344821623679095377894396256047982994723277957000126378073353658360795243180808563255780768450113453217722705719185090854255908111548924008948916153985400900845518570368488229116703522378553861704730175257682576887573822528060337612407860177926130818314007615180245262492875273395413931713768040173673223175484965372475253185755403654572770457700005654005488290292621353666796577102521316549463505008098088946385808138256514072308659063862577236330707464434211802190745808982761460046728910056273956768324448570882267457913751641455835045234865995482580118159935173913173731012272611406607929395582922582507222227536761581419283377015763343215270564603305601648590375721079461719710042324437992012459667046637925850626767229334904190299943282270338032056210984592769008463681343954359841064923534107085638588500083222440959985222660808632440304662461261006211208977401108654121521144811975532552623050350884624029980095416522893937285143361393847614064709934218459607947685457934488765300941958081725423594611738934244425432566842092907480357360447591932751009456826339445797221063077301608116060143593428230888648641326253699659471110044123554124948433847894032223422465364994993206071329562544461672581113770958862227948272659750304523344785822663208736628067657542952555252550309171170724621363051569609695977138380744369385675696208152103569065161561730083083178003473346191435037634830862120462002085632839850712958739192457353933014624191791860452046633731005698320129742201467003259007782684490981256940550763750510314365070050676259561558611359256906258675385032299262629728241222359723200947294891098530868874070783343595365210715577527540482360955093776031678377489759922983367327922542879552531313852254885472817640933750700951004208645985702099138525403476221467011468353709318112654373950600707526176111150217269290061028561270467133471355356974639498247178608158485485300677787304003494592666916395504988269212664032769196009638100121965101797040673439905443399906099307444328783834991431738653031347524883231063620583896971590725314249292610004188997890931685997579002171566099901715740229066013273158337605352888173014210565090953056222952025403781222604656792998693911756482121460561086700650123940398462427997437005773869941442098966189837148325359030920497264229075785334356608173035726626821041505890430621954474828565570331511835158501970090474323847423608184016095851318434592779370891402682141426661112603362800960929651521918063936116886593220506780501888204846013255341963673590907205849398517614874551915527598504387469364531056788682711419050540980439567851613146124868875810437128007297266418317878448359285294552741688490098176403909842174342078868862912579542863586828743215986286565686538003981011803856966991869371659738323147161055873246485608373587745071763750161598570716839891512720298040678875127632179183806606954946293161514013755013679796141103993316890691886018455257310989783888068479079004210111131992857048426790541321817202666880456281513054044590048297220555586477721791237482505136342336388411025682604771982973131752879406406107643258967466570939248757853645507221587225841310746431603331259144053501780595294905353377190310323397350940191984500776666494884489593094394345795122998739610540301365080009901312229742844185427704679428547252253925544788808286781363750536421270484483355385561050886760288499508700034430810312978458298394919308448313026705525880318878900641221801721311426886664111927026485118348208052078588091746507755030315423678390613805852362237706795757951276736367894532140934192495752546029933276330908871720138009849342956343427354557994187271389010863441412234271587934417573930625060166678078244492223046905659903640924843526560283476231470867240858744500439094150740948732228218059824246687396358513401096085901922797522816160574360219795358446185939946816974161660642663743006387191846691683771376756047411942240824722203052575758425858193348278757909529018101852364819332647677670125369698052761164142933520731011425393110890668624691841047030073756178316700955055984231818931854215805202723476905272971578433171753115858709209416522404190083208212482299335688900095300393600412155205693090146477351115871758051993437683420462567089757532015957318983924300492497037541916761616975263766146934431330963838935018574085920310805460665975363058432618685973928502966949276814980718681785699768266853518648798098076460439526191812062792100466589996059221103119119684313222591365520802854200305013563045524138880167072533411473316911307604305644195783094207649412830627464852418242358309304974844116902048228515111394451669930518069894511091294489897120268071179814637804643575156748649251078387296470696062776310488639773732310720359799497003545179388179227826405568699944032878812642955072426668289045325917374527741951856632762174396292450942110203276195503586894385656403086970277572627979574012430268158009693331241542162260471177628304134591906062227994397558962629330153627262071394645656682391949065037420014340511058597171177154411212605035220278461503314256793817736941672534759098443926788574281623166011132057716057681467482502219749830267678853601261216702630977813012582307431474075664034199937987407257732408516906800560904729084709787300791173462053285207877950768840155452710419239174459693233675178886739126458570780701616261745819813469459836560033230819733484000250557258181870944738855676369182719105895911950077730233470009186694093138620699869892009032205789018297819789545366009615466513347782598363230094414955702285224192534679938157321238271943555824160045184315629236243107189233052188133837379173737185757318416164592403732809502382407772364254265633694220558752453908110213754830492462806792556218783955070818594217452072632513996477091398795861576699267325855151166218352748770376555070873038134351838381033160395031091121537238872954564261112647976046885755682387034943925240205128149347692274673208209555354807554841240427564403474496456835051312494134708063148355818271010008077607893657077017627089316733208360173784622309011068331314511552222540502386789815802172530501602449343710791815670825032155927283236550513897018058383801316163300309449507843767828938635528829489450689335985674260786007343241469704769158164859725676566749696447212548266632770724804413855349719175764399223479671595228332715022722869485444558592995314509735064395097330075191165677256461764343295531893257383569677897863562084159194755968984634603193894593410649478733297189511417331723792844984849941802730653578765720870011165387654596897341431582211940548098515537203214046411579507410619705539420003214336870055600999695156987688986284551089755902279233016565262480768530969482759787538577034251187409398141919212535808803681443126826381391889113470796266601228817086118937750272253078672139493829669790400194232727553815606664843832353804219955547608854543027268308414555910514953199495760970380957581657749277819701055670717166622959307516908278396136015322824344875097192635821316015970003566677142606703443813095468124168446410416180432190152646426664255896652256469329088060492230985904881009857857074896807169283496473233062819767106070887078727219558777447137142057450630695631393562391281282909810245146875234261485783801567202047041505128264121638197379429974111491154807007204667084214095379123452585221969517922435632709730137730645263259136277899468295923326065730893724202523817539174359237826873945932339841202686093484081948012944543218543772394734879100082576065842740109951506947197930475484736061382242157621983487788240052221352756344084905942783839552434043299338068479273923868291553711189515660889766621022132450926219035171326660981557763469044317489130994651947647303637113487092161760963815291669719713674236044051951604163462791347529213725591880153057406558715449872272931092607867812512884927745328639396996013739729199278336652598581068436336128288040467514792327496373565593197550763494412969206691175894531425932959795298664791815953027507120562000778353706559344836937043267162974336771844266724612926975703271082623555424547119146090296214238525955491620145413073805605943132858897107667507456616743370658082490392705149991192464694528959225641891722342892008555825456229010976970629204644400496419182683462126292730090167096356854728747272981133620507857206090187178043329817162261729408790723370774973524389467657953492950659718909299230735442861040333977321952714638710461356340667100301762621086666389219782590372980301856328958045589622025533433433111618306790076633407173571103351938781087688563141512448025428398143869382434278158505277383701159645867379921994983310093451493117440310166482788653665735422137692264147096800749986647863986871344547724725823174297537538651358442732652477422772103859817884077664273935859017731124263096592018508279645914984958886273224511297240965046397626179888200479808314501687106689403851996723796633189554047785549072392906852299979709972293735939084007126125325351507421287037070717444116648028683827992764933381228409375104868139090730025233871886412984677924133581202304211860110149350603796748433146920702571113718563839368701313533489251251210908321361879200135717623716924172714897335621593290052548457891793275280676523101342937363536165962807922706331536272246706148695468393642835145243858465987010931593153658940727110164936443468491524319768099185188907694747167366331281727602479630985830991534231826645574716498152726425348955589780041696552959757387986845760524454180958179816096299741759098213709260838592487138966985837393685138411427260250460690495402446111017334024658120486818297001128808001785575518343613487867523931081193559354232483549973551493349023520028897026462014255281262537594686424667469000270143382671148932199441195662218058899303749910331967852067165738239979352788581168768995454947376825624632683413903977262070377662968516306440010691091218422401806378494536515862847638471164896513751224215759131881267209412799517587010808235235532216865651581115670579781868017244809686462066322779324837724848997098274766677225727635704264393861584854917964945998421889284069051763131027292053818501139265281269819180413254043104709471477937972674840715837740109574147891238986428182126762638600397618842716114043398602186309592886721348221408124974605817010332195887051197854440749396150413037608810697460931251024147419562868185530433235227779649563121045345008773922838728098455403206670825747782357975924891275141170241702315302682614971067867148990667696812275921814689759944939536171127594870288438349944839239553765306935655002835271172390109399180935805786805397036558459077701837963357597776122552318140990357085751030468687556183064221274211816846906297941245476029500351234219680225780699942914278274533888484116042180580946759202310613601211619315701332336130409683688485825895595398927166287722932116999210581058746011212541528089421115505666369246169618945290939414435208186811714580882181256601807002209124673226165003753484430335039175310536664237447978772741583359101597073922157600495960096406816438965155416628274886394932314723568509628904346544895032432953536564682038243843463590055604418308113236771756567507401368580535516431879301681095166546534676685631661726449820096322768890229004092746884607532732185887727079676890094561410219402842343098505087402206540280806385942637675764706598203369668614570788941959582508311859100994577631472605546027655041785763092706975890951300542415566575840742362764973255233781430160339187283870289182016754284015442093781208116748686997811330820454480325134610353725114697874181658742260406985388129204655076889642343393608939388248635475944912815896962168605775633979915904148301565878730935831881790629379051097584000461826897654416632386795360674245390132999469969399341271266827260577844272566327692827753916958506818421819122727711653362774299810138686209994267404243818214138181960246544167558928458690284071323924195497916665030731694683167928495978849837143056473968627147749163099891098772921982128470494270886745093775176050032391282326513631423139257120627322930365145211551099740688551913782950945515369370500145974276339936884599104071017351251342185194585741622887689801897632307768140939653996115598852250230567115770475987079095146795879329087418964711846000200510125512919881219410357197419075095021075528892128418548241097245166874811679304934226083488263577809669173170018526084060624830620966700596292764288947989100145479371530651339937331033509451444380118480837832153790165679326668275518818929761470096721665702494723840144614555488969772192684102518824686701877061523526976009612918400708822050825083901612987241446552245385818688312087199557790048011777558717890240077556145016319159258966684068469992404511922379510321948599411344792831699656451215897207414427952143914543929746592022188378702801218380480455763109450418491200570265924667127725568066305785171170878926012042655281529670452392418073839299995286505746886138165725737617642506795844532222935909517839736730464888606162865206725119622865847286347569472532930865777281368952516093268683711459980580517163098162280560301721818031162185980791928711185393067208451360614251535660101142528796505757188152936324249120691736163633311275035989567139742452761052410892662525621691898419290501372788078443321787339339410521280666127721218527923735336281107380355750920462321515155216678180184863078795784478672405502332460377320079308439102902409785810116668513192897887987621053685280659662596296388123629846559180714939519522010199356778762902759521495731808582537974265398205310653300250752393475815179333986717553161854478087307302988577194964068976124007567029914616027121747671953126587711037340089490462589671999680939456977526304158452655626003258928323201670808445699366333857232381442698975565721999962372164811702225798830321523636388786917864278138928531526079241456189192828416880306311460198941502200261167746993935675608407582186675179143386702964639606542943417406595579014397873389686352799922988257653263453227495605633718766147058048697126514618463907295839479515028849365761536880237388733344781634958091173359303737180655405126755728849354128932662228395922737037926868874805363117330226428070661466799889100517747301200474759612538846785737468970162991046427263677307172380837929450503947870940014316648416791307874590709466537856996221032601903475057430526405766234642918510053613814881534886534905445876672549271568885016233985968141814588662983474964609304275623521519961319268298538034919119254266598429113399490190234467552326111716071005541600703638093731150556129794798396155393745450390494190467913156241142040620407487647736129570677342895226564564149541810725403433926550680778310571034741741830623467227753612275575417869652950860880203800913969724602663310731663209523715486053803578110566510815552883045772763333870822379994433056386180513162574025730487257289946228399172850587618259300492637038350361238858730374145684138215989310543888481697139467892837975901079759252206652468545373631654917152712686581678835904609680466463251004215088488885825971018109552029451426845178820250239857493161224489156332186779148460776264174045638116142531890071894881663079859276185387488956780979532168813440595579566243304376485839835784661347065812490783053810894736769040197509716105247026619175497985710587763501647750607413535835055956549718701081741834397348303470163888248611484159534911442074806950419675102172160310127561967661256058396261306336499027561464396434479810904250316003916724782409906148450449945694148627539775935354378938121931513657943989192405521755772969257530337395715043685307789238157990762642032665640681272349126643941297218649767387849481131227710868807837933150272873274679140319640889737718874973494772870930641878076617048801807207275101926446560415428499558222838972327729976933606914520329862108464039685300220332677904557993476844767770990267651898892655191184047523456776363635592044056140802930123967494946161815648943317050265987741313107471147359189003348752704807983260728689373609542481000305638832270988595713115933861554577875053556950775279303746180300411250702531612082939344156150109630815327108131863192483151285000671902201730056202439907257526345881756878662583844752633691648933026068701283380114979106761976427248911132762569808220417548321771901020456298780520521752220645548082775025277581684098570873295664039254093964356212471409033193357766196125696296305310438462513850699851426166119821627328785874691158654734121540796134984667168503642497590609102436228159345316997416870374974478058086277702981017072684898990925234127178727642551768334615656548562526369531169033612912142884869644746878900327119101302269371501487126276214628568108273201740177526462983629530135696220201494089702280461817132335243521435987695513115993448544155567181219342352097062848356912641378134224648735950924917889401401577836043002629408110126249356451368126698705467441121097988232861353263371752207857461394304080603082395651364598083398566869233259409943755771876277553109743610567261735158586035516905613400524585022977002210641337884324766912701128078730005434758167438942049983490078542484630772785153287211456305285757014396088147756299990846530410735492473606002208517408823641946068548634799875639036333689642833743628841267120206967755411193653514954255831940013797263702093644183794159463299409499935853361327188784727937730735148994809068615423672257884616450378318467165202368548502230182189476438377774167925207096128551946577775557590628405631261883839853126777724039739051010271040149151444487009911852654380279443998306043992803702370805293844854243840796126510246821757801219254011151234635443209243311799332129921379715122307541297046587439783797887830652301629669432629714943653090666159157296966258612741184642428322228028241446359850925906444405736227056666172962051988867930151845010523044994180977837319613983481139123055821775273378450319195139209680406054288595712467011519999970939689452076127194937957224849329980723299883433429289557432982600568814232784281906243787329075488877011884565341452309064051388577093739542133958328524302455623039516182182911422231190738418657442299966953529309533856111027669193580904383738393614803079785578357157586584628858793871858559728071724000212429787116505109019744759290513331551153980886031814944557711403442083041174988670492563865462643610157633558655069066912342625077353107833774838006416701715845760953460493766504558218077846422710103888975962396124175161445406473544298791577431395447324192378396465325813205820392949531300515110281617254914633588711273592394156395746544855847957176005980113685113691178701869482072098429788518281590197304214654217165211293841580568222800486745933016286586804725887672555050757129584059512229061147172293294795589936939387165533034172858251876226718160625285151910597409357084164891097981370314708294227563754315086970272139420663662980122323235410129999572668333181145882526677441655910852900454938093663672775346373411221431935025167905860900860864347746897942342604502332963740810390005752064766410070524777251778336709417821918581838149238838859028357119045475367519301428854351368677364396899658251142954250066242678723258427786068483342958860991195199781970110814555659209732141082239909445269163801619461315114867776999972109351044123964998191895520943253545879429632066433749037354568042980867731139634089487898631288986276306251379781826932958980222338691742740711047987877122052091548511502080086396672259385938297146281688360869414930656445961838204775352255039976763405649051246989924721230702003428196012181706665377295025295200844795640679589991361844505143266915206147273450723824573103793019449621966842721116555017748445148689594730250096487275763908235235243534139151664773789272744707334763531257475440193131497375893707373803676841280184287706405626997920589794011177655545558439714921104664432501921281308074710926728854475016663515617064260780073450484742684426429874257486477508799747803744303010268417017168110888849393289030724940249768141043127619832196161293667934800306607946607996643296663993723656355301198022345448425427702960372002259246219935940538182264190690454070371153940135338029968252585524442076232526423346726184133712502665082238994958326713695685675642352886183770122701490324357788951728597909314157770726114882888384239371157860862735770642242700633099760196201200084198291869182991196181102676693832212545826274110698889007326642798377012419509931398904251287120026885915051669391088295479475140774659379204663552596284150384450655295114992173967541066510875147083303349533052022890727367119959239389877894652783164151300522160327840696706403837752951097292630351399520308117887104033899963711229997784264925906024953882402128100339692713831956241576518294747304348706709765752785564685105110186750615596929919149911902130297234437430786971396899658234383983630666650701613188664802651928694647896553772230986991826784161686239898335462172850473191588270329644208363176073249404682327135889154082434402441805618739278508306010850765177379932017880732098927919585751270022873326824756895066492706209388266932585090818494862373718040636815379553057040389638657439323576979062260887730584150151386286067522539677527680825147513670177153909683672132428432188489920419590483420019556902803121700801879690030736634953858009501369202725497642157274767456319283454055746343477790956219295625665912200232332236804441176602736308617028198789700245738779319293192369640933112141118444504756764038161677187773458258254216478942755908471628923932925170069040813141556678600678809862417093586831855472351468199600700911084931910867342823999151909377862638159395157436428386556475289188139741478425158960784809343598124545633235353704749532764312360080878206088509364586168117826227515534351750486044091084175287148008496147209520484903570942818545328446130591654827449225085975919040182768839200353558164371511070055272110014717471995018365477932640958562046829107718304146627312253863713751702650842265700945643996372424021208568263638254806988855189693330499654492639925458825627474710383576395615585339910515112779747235613439631028146771319944802890071099760772905708999496426831887534969603296944932615928383162662873084953440008448529314934391744748813261279907213055231693983815396823912478192303886941164078187659289685455094614541680352575836355334025716750389121707241583132370445891527948134406306371967512400790067605363092611267077002437977744717274054782796780298978228933799619146610791716830611989012358583187033037648449669082306532352420714298306935995002639528018981536116258837072166499078595349677673326374923117161240619957031464992187557154089257009627619425681066108399964730769644541996662240901347670854940691400183632254914568399757245518169303456568377042054432484123640726123900134273331267515471765496998126120354289383806208788628621971315771735034694061697287723210178876068736895489314771607607979241331086573355323898003751454069851043468363340617021866314722150689176509164902476496960002484466982782184314813543614751716199695212360359660337386870263825246640828625313632238219916860712341357444050935338843939355965590826394666212439746567912320634691812352167742695198208111615839725012764262948465221331345161787508769754383389744196593468269844221995699814156225493905961414520354746303884318368527453949991167334796230103293199053968255944852063094892212955818972218491929131608579913152309130710652405082255127167677742655806863963681272984016734697990753658569673583207872305117031409624677115060816653090831791876024557425562435731063897801270665768177315200394416330742608828447607587221791434093731672293534342261791777087298501029799102152956309503512484570425726405486115941243137245648937760391928928209700360552565569707958595019979172474928097056840826804577273464944404649761903766251334835276210057898157049100141732371162644113419393043561637592323292266645759445435183233540201288248957244112177192574354594688542141679746988024705491444812714012374185233644192172225778098250447318492603980056913333021223858341963303385060147208748355859945222286102687125322288001327772380878007745445549005324715578712546321837853357578561844019836659085628506669402211472154117725052278212768004887553243793920444514777953722138718427150459267333962614809353829759321146444507460602449717529866744873137940259029211973236882082490385364556383429949649466061636443343287233318288223330776021633715496345504088923830101772988368668707369107290411717821313262422455607453400786898623808042708125712247408590270164678011022716039669217481364280414698083791548939143918326817587550112546365112618377601841726885100879728074776200061460900601067756245069383580528672891464553133034413360185481332692104732849589536392339012614071587883654669814682573951124811701834732252758001753534164668644674929398188675639080333467617441538873588645910078656425839101753079687388658016198610728470742402630545661952828980902267840654280892922280854320306717515933931680934259297428660739202186339810928819150747959063515595030995278677661658519904314794246970942778816326420213877726945377233113207879269146294484990402785874493576523336517019630163773052482298616501173334535189560104007025318290387457809931877365067040532577177595719181167866078242912752048499497873348070917547422283901717227908899743012173915854649336190073038271776435424554618607274104189128313725862346435457450127976408901942231037798906527182758040754242630769861330194575857964295515499144361872545535581385647701570159388964442791147849543935897292813247400883135230823519694598192205511538339411358557455207781413440184278900531195574782693814008850943532557553170817368714394201389723115101953003702450095109808955464196300441510927942889745331867419037818034955059646067939152926292966563261901410614639428184472336374833012669538886886551191359474048758580145334769856447447255173515746775463938597345175626347753928209515305893148579594538393326954621174081733025386440036552520562407079433049682024652168190220831855301542092095961296360003917183690032565842626920609102140464499735619919667670329553279989485167043655427858106584501852567572731809665600205969634599992976931361556774089141361478852167969000552381149492947030544974681600508060533412143588086258498273744578434394188241116298879535715156816598316745689154907113690589794776740502179837237048306971048495402945751424811211320998425112299614220997082592321071062135483746687793198795366048507125554314873960184560002509358755692988466902052770810270184166283167633141499614640892017926366573221363250740238961186604422314732595159732659368668810767565139222091486215066991370373989182348693753015171611612902810482819436227720077027843381756617939804523329147605815323092334549463131744559147476741437070220423743423036117910702323086273160950367719231494177693761330308466021051563013637317232223469415368272518723233729854599595479495399551424439241598619110469053194204770043677249599584019214765727396040200149332548783265944998746299142372790008949007827144781884234093979373061680403314274417103050060827929615132987057744965756952992462738238081889753707442597823990345824677087033216900472836287546056690657728432861552317366808929177793817985749803564608969984602601399437575919239419615628046742213344849307798937891191677831692334705263738773842833771819159639076547879484256143655831151809250136136057858937981611758794035863373067998091440355318025424461619940491830933002916482794615248136917657944262992600662189410262245966478349709458500789600310025201063500415619387656143503630811178504584681695028879375989597817099573372708239231337371600248327677136101372353371849093406385326157159200224639650768135345681791993799801336981573359006217857642083191686819464103376501780991383419975626217512725228264828347155954454408277618503918511799262782078500513697391147154376786622202072023567939483749051092270088381234549967069289163292725675569441837492745123259254164461053587055016377804779679604083044289701294740040135601883082629003458195317821702359836572388467747570941715911041722362414528821278442841084762894784067769576823973103523529629779526320420606133200932200788585944506126396028695840379883362074305973503934679461772023363136674926491881329328029487944392050018795976187328845949910955357557464950938446513278698577516002477564018390545720796064090526418506964664942444083867536686440479156929557110647660473424415260077242561658807300630726276055835058076453912937652720242079795079499443052929023997888738085474819677068713490686522067681498890166024863315720869639261927477861941271657220359550992518514159091208595558429132576271048207049490553597170748136580194544341021384869565549636693569356837831594087608145415306789170393422890353156325398460253345192696246331303097504954351976781563870004750308648605209564275869659497603499537323230391374267877244458440007732643742100997633764730452797075674007523432554933491488392506150621943409917913192648943167305469889735768768297375416663048849554880032790854731641156004875358685272850006340487949453868175238732431455597028164837223778935499812524241115549232846391860681936871120113475991791730405450141092578025409420969856716870501626287725278759079075468452530079770755682196849023751486374192497591406764640492349566782930717709805951319064331001988530126184648717303184030462666611048126535680009420222770140706064103303389439538008028627242241484487075367545620787635113140832508849330470435390178231073994625765425419602911663902182624980054052477444364221771935059963736295020223456123797876863945526964203655338557597824495398853945723214258914136043600992179656912786915143756306310620483038855635997702100043888539516931934212263613261397840381818218106863220258305068933860534234878335178756070104476452557694094258566258194089000701098261776729276036456603139114243678709554097904549173596958248703496038544770967223154351063379217812555216189064385627381410335823446935372720785999284387878442544951876977280910891674599900902025992576036128379769783991074904967391272969483624646531875871148929513125305510172615853607763609032894258689166459080946702903572146427681413665120997384997759256773890113503766645285998406591264173212710276440122084578147550563994750645563248660375486775268239724316744497389233905101855777626530804386675377878033709840470528479288216972295791893924040437947525338487429998700417196515917842132930481367027485600472518697708246904297787783876209032152185407747662535436525358560321678058681778334817380473912375354388061825618537964382753755777336865804778512063923322081462684819556582846135849316882305858183968915530429557340132434800842280258682674070264216685620052578759351271478938222434278327758875570245459625586965190461100376588862668408037120210836250192860876748144320586831061609888488374004683758215517715884478113917912981193209548673664312225084865069152503466959195106427606879271033528263690891797379887000466063906367219854423585208186726626498106831704745951261203048102788448611056782953064730665908621799185885850969132948166901555603928990585299319659948671274743674408412703825195852846509049427489674961457895742642566589853091229539179939243190240590411218113973421405445806028142831383751878749778304272359806931112457881998029093458713165820902980796870209862618125025367302642916013925927675487069548238434282668588606477397776789745276782544917205874732655837630171311633484578807510729543832668086731622105390773920501133174904779274244957634181234760133020115002994369703363959149732795859291952168545666407530173504333515148197355171100556211404282658082987517630796079025235825546299680107177236971503020355491928261015694736911057140440457832595918138292669535180718491198912648229564371040025829129975218389694448886383582898877817442775705635108005653722690970371844441130426463086054934781035579424509471196952150910476251646755531759908432747643464490222119270690236246835791165014985281903803278359340937495742043360750287030006657021761297932644657684027892100827842067658548901004577870895057540391794135311848648582429431313613817236194400846156475590170872434382425842799501646149713009946015625868911963973284827599728260354026490222226730888554177771387895367684739651820045102488840359137782921366617524508589391866156820036995023970392755938113079629453775597325590985015957363285728123960677112156399023865585375996228292690196339321382358447776113184870232998400219110123417381343995056719187062775688318500968900610797239524060143803392653969170269173810770297792492890792032347215417867152662371295620363836864925439307232978244462935706835981620587798106685544002256393800848118794441597098771613030819017506549310089633107296700157297910198187834564371110196026813832722710982796416554432848234868178941870021264292142689475400760782815237652908786698690248663553081096412813805136836792846178991454240373695033148975214586271180363569405303825311419380144579125659819946925051664148976054807247819992701394695595467365728521292929787398435492799210104172317936926938223507467134640096854742998095052331419085786214561409015426746653011265224589364169411589193203434458812670706803269605159636108689165525520606329074256448658463392399996971537840831893600404771847379010085777973359258020095220069746048722956056113531240440111513319142856184506773367326493206023703368266746913472448345800874893121198873146969589850742375713535919612547844421955884618631760300882681293894633579575007967315533964991523400060354806683982001023011827463357038409946730292152563154604074947714287171245811002729015922204007934644213110454788827289758274510848593843190683047201403511393749613561473824683942847837913725422076571409179533625143383206010892535331738357254400073175828889719121151442542658138586435446400594575277953186066968314625775808355794070427942042271119176906741406016418366326118408533069816089241062720183337647562167502430100235295133247490653401245049503338206579634910860653708973620436166344965013121423913534629060802278010674648918827116086171935994121053959298241069326542388988012258900143296503414106172627162879301888613994644392963918252943155366140736590289194443017423949313490151075017884086156589887233529716184414578646528888223641314443748614990444559826555930007794803849663038865903255568100402670492761626910999545614712070252565982079767573114231809940376867144326617269706549621843386290040902349925656159956379526684272348137147412020694952264208875424704930088680384842184722762130729802819361622036649355160625098870354973432302767141654777562418349059945021952560243195774688195842766161083492227057418981422126296320226944209380664073759231763825835929738132130989585615459371102591053042316756485779069791501957125340061626982345509618476789970312620414545561451132744184417125469429101408440122086556932538653093850613972223077951184468851154443901205068417292141085511037594610540330367803205673278205143152800561748506676606378119231652537692205444272274781975973599093309691398233281844599694586861073036661761446510227477676371050275003110770156966183905369365467883344011292065329449272675537085141797282176668785161280351624234760063976687720487739874274973305507503774266599133095373288471964403161207689303888112607599816714898252823985515284275488455243109630674756814947483630803472079968509874869878059162831152868124286046975769073085028287132974054205856143411312729147792333854225695294173535127182527107462877662082836831163833033599859057336226305455455222863879130436273545508167945646604328971304948525258072700789541045677269761591853618968553670899402387278837620764645251621059610395517963675758413035187270515421019100681260546950468859064067762200755165558669180968820903484952971513493406689798958456859871259878511814423361816507888148733918230528631271870995406003730940164079717488522211111204944323045356695307550378375340557262573177566953967479356312222625055595460293906366171211352245396719944106021841454305888325759537079131060991669379990951121209460309777058356294983249428190251168870652032773151768947882845398115999744353393469586413597610441191200154269973721032566456762698120158348710820645935780194946741023917308907847539846520168801775354740147651502165418353955185920463713529005899189327818592764479291828174454539137137507185413574949575163712117966263446898040534428912595601391619078594113305948261098870664183092361987863374911493404324957694978207899134711618256759355302341429369833798294166431242425375015146859077338102183740565301849290106456849496173161612461552183622533598955457926833508436737788760579307229361623664789894789524605537502701629065561189140760149196450391465069586043794903002616871944975056456340688813641848378751154704627761988553605551994902352996091971227660968075411991563882281184974982503056245150727419228896746730036236450512082868038499519722790551112256511491716881397224657039166657286697097562782986885882299770066252473735912977250999781234322783378801274097820558935150589153082678556752037032216998781184379529979313609895677065590856802278016499557614758257147773345918910074964147751364413326659736713454280268130219818807708365915797292091453398834615676599599519552726909052872661616870796223851907168662966573639750447097809800815641794435189401354494020500228518134177445628285867577165821973849290976370969414777312368903964439178245824162451629844441015717463695091267716910345876685603880856009481864179086231759870993670851025231350840570046297810452469687820419125007751762516940321968437459253601036060492279266093186206431998866440361979405489138172359922048636809293170331466051511760650922773778371826683223031938903552863832546839822059847013044843209314462090936455516228849977985711048515824634340274778783299211953109981340932124470052722283069725681272853164773043622972091713057598485340593577013890555745776083776630945461477141210757376757281790771675702486913249769680520234480630293883120776551339276783572104450784141948899224886470427969972997018682750731692586500812336707456610115962604731567213891161266427961683077587732933960154725502633923229461140365047834026650762892875214252239195507889085046922532064793733353560098641548806292134656825695220880533705489860314881967491286808675310121053683051123848187819503721073812745116534415633779596189241086091122848725855503813467204490712509258760442958424912936214576516799327767485208190825895446032617155281808341811964237683651608867534166955632332799109226159612415181098997397791838228618133944291618945447831610923912737535193964346668023216059307384617103747842608628041282071366806633353181309107827704780835496306946445160148130293438355496690865366383741559595300405437398683787389058178572383674354457388641401197910553160727193369776291678585821601503502469427067628593822828147331259722893878408984710421487184185994939304296417183698505663837413647383171434358050157433242428589004470398501401936945908500842043724084031150326600601607420204873759593614847385572375005635551986074850197767711923363240505361169110716168108149932426507259800663425393537164134145308355720609750076154657342926539971790942662785293700663651359924388596673736541009407413031637319826174347414411100345554153187502739462995885409148911553138843664605456525877601584562127966537095353562743591445902995548828293774872641640957439319609218162180090503942289762349134216809258890387535775624971835397313143699221178092342020789082567344900987186198356560093667377805651460749510592796231805811461339346462176166287356913839644577158242877817225903650546455017567233845380043795456092496199772611676445088487477421759658777085863697407109139398013462162737642927437871628970732801027528761992940886266136562780862531310845421008285760798756631887896091250857206023031574474816583143604980701633428751165265619662013607259931546787018922665631685799212946981266936505412776663658073377904441787517369634676987724970257427941321847481483140072914920447920862636759043246026696653002671848863798717825781667025036473543845522356324054455401252260110564076598769686534468513245413042645810719626870654050926288262114241391758724040891777629225449948763072197298099680655718056272122304456498500391827195809662605035995115128545851403281431559567537601030531988020163016178731693785009350920978605162885227948648229951730381730390836202268013662910165561855083191905025222855466379327534424979114355217325868480073591960118559936315057923480267287779283159097990718682971950560144145501675897005295947775270779243653385434052539001702868122026701905534378555302990256824307703425351372245222990259657855944139373825001670151857259388635638620812950567729869343190895833548175424489825091207379461221237108777069762412087135817021421976736824144731163573656137472773495647198697486840699283986671820835299095040778081197452522742181098155604950465080758319510787259431649022691729599118452503407682025216213371272980917968433402449583554457077374231468855918525843564089868900520328378387621467724448588324109650804390921687030664840774296202616879554917377701689336440712240913006069783025443603272384328912539163259190604901174650907800029561965528388441685542055108887756428728393506145717453910235790055219521401596126193403168812665184399159725351642271431020743607578059941224186486305718455931176893018897506885134298967794682862613639769290613179083301863379493559211870761199232870591557291272618232593614851169524963393612653313505994603297088309870035345500348071648241816767599274405074529054303385246026945956259415720545807088133132225438739964860710379869882136852030017946057745574811327568643903090658365174586762944376850859884517275559276494853257330106003612628739039587663841392139676191437622962471927265456660819657976424478841323761941794675080507661691400240358028162918100371771671229427301229595530083910495711425905567562730684148152867863896887296753328416053501048159623712527745611003820411431764323480377924754956615862072774618939437451280706160070362718426875611384349730237366853018873514904360775512306672996616037171288008508333667316108003245796111065729919777687174588022427632258699458840351575389477169391801504997969470049691456888047446302541083615977370526583154853815467702760488605832901005455625521860502755483516165347553786300162027100578167288049041821465220295138993002663394584216624098761071531958633821077832269489559455193953141159090794855956204983394549340572570885817110405325199297995547145645336860850146414580074351505771314019015147048037277300502303490820853047946825093440171740112658215467875208627251381518773039771530073483342894906428300440413126683207275512841030162588033783816378928833374610548011915152366384126173038175274783195820577310757920227934226153557447695233833255293260315136181027139684983900401539399034838886173488434022479923830435086054939999732839886741174506535113101317245971610469812404103672690253197216430909202728575088697778367328831889809968478093148607854175924671414283561671816510245763420740791414051648415047490116350364774591847430869524353334069266826939451555655890027382230226113163100044866302877303494219448747646245690092612228853911098117138186645843761475835516373496054748671342936666345906449840196491605184103944117007893297500796627415542040434863346300532302044868555139352495025539662106010018712126874721874762479719895005417409098210818307365461746776038920011697726213229567408587481138941491480202908793385648842575051795581415095707942295472960842275187143566956628018661859031636240167639997313440726048964614910771617557156754964205263986523900550294435755247874506482034467228613213327366990879372831035676638490443596679051748801132483939565133729350330613149534640768966201642034262541968265652006398264091828457683640202600571317610661261126691435723810676467803372590365660719616093959997222769274008335104367344551427553695089080096577543056579014446908499332745754108839319473289487685706824314365679114985964337820979962951278815231383398196224061807891828354727991354387795543383019324087992806744657114728386203846459926797277770132724624307274515507079758177787954439878463346533462175950685041336292055897105751466299310072839028697471076659026367482741706165070218702953151285042867052068974509087728161598251785831580901645608790825824983936377062997227653592584607745675941285988921596140764031955059275894484074588013326511107718070714012659688370712732364438907928169148992777037849848545388887845585025636988613857914333882929304305428538592655940649493387978017712595827011871963732560925030047636494522180973121617668399794017135869003543743203114263984269713322871957147136750479964424426556480917330114353544633994235224078277727508020663550783255998823598471193513319243404373682524637900983185560047600358512976717263816262619263009806424060061850198473131920959300842025358527878800034058198712206075347138887953174808128275438487454130740929751479910154854135368830365524767918341831050164169137903576094754731498861787639797220133066575613942269621674295999343691141347989068206957745254389198201876118992126902669605507039348958192030484112408811115420035759045708956281585072965852850707896188247368845275686154562048672602770087450765364853462222017010379156792861244433447622776438030632546223433648724666070866029405655232147009770290695806890305877426613743184916395744427701092422870909962380556503184462539398875724193895287069026370542700297039977896745549380889842554586031247260707716563259400221281038922458642897690946941469784851712593758737575140323323075038065735686323427649805502923732997019823000354626991115382089665239209537926733463551749918487124142853336058404807767723715481993811684480356672161930437005445869013330031437156524520668141154953309947658924817501822239163456466808046870312289316389981900597446466705847822397347897507791672429723026683645046019520588915228753674223875773190055236104813748329594869793500729177761302605102201042112211032128105996986638266079110651710931941595552223882674864944759909848066528222232070974389109321106065363685676086184637298941348494650709172982738310770040803639034569246025799219565806715705630798758600996613662918735484428543845811528020547587547132356847390967088029657091948336824208938999396110534817051049892703912463727531536129316814574752434197652799904660984552847728757095373308977406708252842344485701174699460184744497998000769221622484962546378114798604668235426940379418212270154847393798076255995044720665599768625923424005654228638421072048802408314881443512070358335081814195945001389701866594282055533861518624194349895304159732429028655791155514272436412608870679242311949461863312463646386114658292125639527745312739838826836552491775194206330776246795966355853914781681167335517837297730326827885113883261791339808449836493496731627706818376620330265189053500524875111665312547920640011930149107837771534461747564254754082229262478387267855550801706381342851540184331678595957832814725152014304421600020043858531384061760833354679449693886945555435939596540901207165825582172781575276129280676855258977630490126286928230673045854206303996126581692136232605100013665025386106659207624372317122963512871651298544703086118970098984932116775757420161391290264894573586524927410929719390908364498984811535697187060102476162918000577180345858387127359589951529259185967727198855468585468209534351467106617619310278124333112511894419606473848828173877836392302755761998855311012431055153064383145438288038079126020035795242348757965743066359177382016997733658129039377487739226187234250013410451033038975321944318719162989703664632262376000649591192968993388329146313548198162418918437405930606806059072514876022597290886107700446144220232687209676516225839534346811563775642304245998301738450527365941541672001519504665346348967121950752695404727817792411403625248287436230966172385334402114794561088313637814610076791231148167901773970699383284602411339652552120580566713241664769205758807033297484386304163460686174929715571804589393667854895900987183104432831872458777991998355381953949588654190655514587200607008703492667956741018790612560710105225165122626364599389653496203605683370703955647847119914766235975708265974902293069127886833506853599480922885334906118979803932370038323794079377492183909517549597918223080588010491619367774904737118031156583310281595493947611107597048051771413065019326591652581151989255755143802081183932896354557551583708462800196130006754890677840228754715624119497652353412437766071854046388432447728909314423788531233082127810755294680133079176226453216842391704886876382938870836747382123534798808786689333122858653875072737943375955991770597984790623804197218497803048626979908838462321909853606759549425340372296895093860205185118548419447215592650596220647565266958584976139254273172675092329680979757840223966822852258453143316714154017971115164705899661842038789908461700613838770268398754992089983420839020558208616085403880982983489171389763643564874191013379820618276261611895317164798531627944123087187069212389409332284678857387649754898679632131477452870919156239953194989925905246471551561076486535522564242735977485553895876346750730084936155891429753999107384289831657231807051432929011338548918862067912270071228668264402081146201738684791940162932553812195894212433412163744115567304602652876664969622498855405171563560761061496182700769420521560049158845420520297789056000353420792351440500805532439264886890317638140600598623903592935189927642275538079732432120158211380062718783887791630443670470926332495637006329610557997447722817546165560504260841598280769902709008107701552691785360330926346770190640425593960783708042280427451234034950753614652445029869187811697463449443666273957009295761207030914947738581333100872401443416970042343486902168180270963795223002089340082792888823833040183438772945328359274825490989264409218070681856599592356534557997622548197903394598553963339516223074668841683716375909796028603531717217115404105390866683221039218642049084313487221786760916637506395999904708851437729758376076588620567183818708887163384904474412840431790703064541408572093660747023813116385998450814443570794374195812203704047126665980280890729340558514790752623178938292869691865870170481609824441189155670853521784002532827114813545449723496124929652437627014090560163335946854161715170991713720101655670910262460919244817134134212812860330943458037119486804366184572305485516222753231483702285503531065897775138320447701236657138045780006509684878852249262001033591166514898082415988593668944509443141806167140287052089938206897579477477979535150378414006519401127094431574992900342997830137759874294642663082336317162054826368715677954514906669859478268325421435649398375616299912650700763457027810504125370351080795596189539196772950698084070783950565626861461688313491918862460162463586152154937001732317017840491502261183738460929179658965173987261906017258595029915063877026285331696947754156797642861432496398519719166909556715251505623810758543458654512773260996501575038770434202505695352441834443982318487638921165617505286124870271146812759961225277240642243736750543051653458934210638352392942083292176364997701320463364246857707795482634510860783799081648396281660007650628810200240416067353595354032990630835236046371285683796972706451977103936299733691982515629316008251344610175966806038323482258853180003823939839784468021621369493715849074702037294702210509156630532136475380442302945671428443483121686426742051582705680159847736120022249260106698682693934991385425486390904888302794930901806067421168063980958553106816408689136905489209256020773453184357579452132789472806603935079216034334087827878142629751011263719356087979520336772895301005378866304579385828543682170083194025949991965438776232268627175928240802679730613350631380828635704224350974931069071704568841256362667751693080717663408939578844953033652679189396139968187901047273006162232715771062958134812895274566849662976917560891129042705178807346999897125037811685926967267349989705275324292168700415585752402603686759046440034712877691934121775064280607654279808181422680186163002883771387043345937131705104736755102369122678758419973194928802682635138385540866709260133057798665761952213812112246709980868528086321746652834282455287935973059204865492450710094755704499286329469354544598033458862000867518578274246229542609354332042039049938411460490631642386747074362021840719232188584810302239014780231563597766086003636183220387859540656656417576292669787276065885143518036602661647279659530040469845122977501264625063543803415525450054110659526062345697344024551192977677554964260768361608314524054840700668012233634757437855092298287510392743560688500098221094685570915071674317279678414550594625697099295366278422083746004195090297057414993955073555250569887315110268415276130748559196722183928353928956897698681312243575576652368347538448222585570646541859367586447388530296091881801193659323403314574947292398226593673692278628395826298937026662395912572416112934689971866701428756340474139358964724706429991654336164945882266986075656590560597074440670748744250169403631555954681394155875667995195307368034629790723610320136250257912969341103263270933646675687639613959941912558269394927745503810709072480945395936578676775507491900536366880365688659282644131272374095966948846186417997398165945525224700076334430558281717909003990189108579495992405443125978986714015953699089151351612928534226256038882360342681994209767716174856628807079955556195130183956493898335449027001210068450795857655224226158192154425866584644370952134050334083097752647798812958064316272063971157566065058095303887409088855131638506739461648855185684619581628177841588789752596387818158281150361874661318548706151837097741169560084962808195609577015913964207662875385151112920497639173575036463529229307917979259101641657025813379622959389552284401152065826294006489270123400270013401779158199233368845318270010663310793141163509060931672223134668335920314735824576452869263185553715503754229899054094040203942741317933583850467630432419856304831441806869397742960856929959726993868816326164438763998654691219167935339299890643697836370060711206684915117347159597302657515158566146124629498658871577975887828822939821614241635105246372549642907906332665696996017987695759768865111088206244808014111351598723873963954450118536038795122312716394114606909742615355094376083842406596295863248144074816682530823665949541592111417576718363078552403836572007037895307851745974623509454224424517644544253304768522873631717312404291118657544413629780836442457384119441479366709174888242170456731792676509863110356858998950171443802452004123932481011170814751295270653129281812802466999678106327541237659444808431671572317174324777327329133735643873104552386520660067181761751270547841956202899784008708674817854398759014962082123624214594599267624697773815588570238101716394021642473757877468448071036808006126486150691267851248942224858519530121485616866261544446786264169824138062740969590076279215885030529407914538360039265471726484679747527096503624386839115557703607786830683723660326438161258726594875022767876275216986125172246018498699131313048010577922315418064489335015795235883120044962167323925265214224075368807104667581051684959793897602514456757823231928323306975754089547027662083943949349612261641843688309846570985518549397262816931162528901848874672507436218236190692966968492491932091557403536419894330100392635773272169715171517629176818408114839778928369387933623252884261383340401937990922532039725792937513677540044032653112848526117312477667184037663891324474029934428183442616783138489031994094904001478520593927449657986045825822867539329582225436985453341049200123358476671448129138463509151030258669299414903943118082159928484142319965077899008892145168160700803707415101499329905633530947795202703921894772942902971758415974267066327799326571852096703589604945906863046548730788792123165687395286436977309107211382211432301711942461753335892886486051937318478485812585460472953765690117587388380799636183719068995680999062087905305276104456222418412673365159478391310077660083884606760989387376194152549196667164263105069406004830623103008424558648144340355112698018425668516603673056657611341443759642681459323912839952847982141613161130413037844550050271255139339714862360598405524153800078766877583671256631846141528378375550185384940976604719722351707035158683475051762592404098869080921752844403356137128499123762102860057683284836718024135391796194376337277620317167439875266131358191752450263982765388212691169200976237840896889721364240623857134894534185080816522692949194275242698090569549896947559968360174700006725054088411642374021329932226133372952061954424971387993109285041179943550960926391861471827463273227439377797706808478819768884364288029455838891196153986647255130060346530998360647770738733302131040293566541142191479101976313821509995001977709309225690937827910932413643280374919065144324823519472492509218985396217115037513277416201012239404287317988560600070498946554234022858089946221083720165826669081682634882135317728734625991322856304151850925091913777296644844437583657106406361724616029124080166423973617816976171090741143710966100811870117906684084374827542354688548407121298863332733548777642916905440581721028352663283503820098640332836403964001276069998636960821841592064687686216998249608529325685069240767949614193637170571483555660490448530569401474459073940007573191759803307522593093323373543257594281459257604062953190803932651160297773232324596099791431196812240757887687733322662386027053172838631761143057055971499149523086733533694807046409479625381925862550500625222524154535651336738698607222682687902319560307679345874895528996892619980809468131542940581095294956871429560524305534876733547074452729780347768431974119740013044961868813912854148044057788650350930103011014600254324306863996329925228443928513047755883430568001664388860151158987483511980634072763050074907912676353557898508031694840890202169521566766019656323218584924114651724878158608067146253377671314183567062725433949604433385438552662913671244567396159251498307745212097104469416878655723659463260156860766462656135641484386244883128213694873631385770825589719088188904381868296192962786066031704696957687591449105530150522229719550965676419548890093817531320978357216231286406029278399587969250676255877564054347833127156622111216935075069988316060131287441779633402765227546510493294578677677327467211171533983773464343096996721305869678468615013647724135816837993464867003278287183391752077645289947677411764123361383458832497464660911952412941136764171670105579672988333453618877521551915334624395705616683346317117783738645247700423625150493100698848895703592271692730200244792368012160772238004263058138475124624051570680615494782185846500581599911018899176365892255486054334584734064187741330733530013882079056501235698728392124260364278186025805197036532410012434999732617962199686936892147301649696957527518430951701298953255144323063267258282589249698728542487928281091751881561641895918131321972604977614729415729952762194690898977120358507377761046870548681868046248037165507730740170679212101293070741698616489683204642787647490549459033613344959550232188303057082290154121034653619283583202464297951269761994346482696554145818590982613705622351636391158154697435260387339335350060025048850344477975100280451828041979393585547941342474342785400051550856303647765080832137670322548718746585892318459660440110146270314109237746102279860663383240305775598363089868078535789554050109350239644352417639059800535461368963728038602237620273526999984029413443563062528020127347628105006313257790310408402537927195682936191266689161271331071208728595633282352250595992393820817095436829894020943323589732814575092740581408357436048783745985017380165215070140522845832596545617883182140013003931954772746646251828015826137065808964065070024472615662693557856581941486205226518437837211446627459044025919114248232009557207227644538817226670768755301557679966476895647894433513634708835061784889913765307835456980049827844108410254069129400636961653690587323579976731449471225068051951762562844469779998880027950846662590410453820093105318858206992934616907817477017124608760229232310702013968315077205632293896889054982468096470916293184352944138626459308309877490800124457087667082801390168169507283577017528293399682276738765531295859964110440625851085757533373541601820865102961722788032145881885236226529599695700328478995554242810029106119518159980752421130999090583663103407726844224158644348134830334979494576736888201836401756040453784272237916125567177396056774599860253440864953023968501880844130990439291467599549167538193775046596626691648772169550404318263102750241546427547329678616749848943504483981906849557704964889443938795668643759777172517736875441360448436331134282721218276573773237661666212053183608723508978286313148799269288203656273206084690646047962279360350541242149468700538774937415616118388194214036960968617022949627501234903445589202546189801025654019338132506475265895821220342186622184758063164992719708090580522402313733295407916805772150404504631968141474608639506315457101244803867385131377865468620314355459537465076051550769647943772671626023100791987957289799232597392592980069895644243532140762047097341997815636282099496446333752251543267627250088945831664108186899039225742699653626341087183512242509772750523483590442302042000499353607109612383984486259416180962242568612152319694629650635778698601792449327774382539111111854210309207921081745933354761593615172732821700970221517914443733173554173842107694692162840969376172567315712552513320770714241664769847237253097467817856942078714528440835716027978057923479012627284307518801376982524719872166173653710550011114850836364840894580642891675127434218009952469488798258512993909519414740165419568694743866274152644999177121749482924868294551583093926687174798376467918391133929535568109572401072658054132456990007868661696536816204546507517953149150312493219608661398492115009026685557135911490829895872450369548043871182527585329975767233064416513793665045325630021595053911731459524063756669077057561070077657340001607892174695485617032513546962755945986950833233065706798186691471909311350409342650667571207464521630395241101498875603026183578898531389814428016756768994576512970813209482707933967280338459012188536740538707008512200424075778207911057851129987859312188724184794699638321514127440594464204045376121511842950542750247666893252795465352222579578256179670941346550115024101185619249487461979422145885553732225876216084147101203859101976017421162904405236812726248230665190495060642647129111393262490477925637675520307689539523204943079467641390535001373773799149918283437783837527581718529487452015626196950228509529248970695004391630546099648514318684322513647490865291469706903466358683000419442730628829111352739952946003766395679148845852241357096107553024483559587063951063492260144695607996846623491742978504766057540646460580657551936366098127427516843382679754812254765067910147306862961646454565120396706731751795995018078460315163597564826915306507921765379072626693337892250186180828639638539629306295343373538724958141784634573336942171262465568581297557293262774023055113467606403696741765817590567801008522703915439896928227530019498970184972684341732241237379595922958383785993485035665073047239747325349467164635875572531668105603900861460533772820323794106657512758299409839722070934109815337602110091254751867329562213089405231648832524346620390839959303206793305961873045112165939967950301210487188067732455326070300376345634628300745295774101174962191746131566359895507645252475574435238696138340117131621600107150149840558153977891296556583691520444317513456377340098259352838261671635476362813461958137985200560481482793364252154937138364487778338008475241862970888038159788649156861455121736074213272880361668459548180583332128237638418503934804119475395205510207780484944496934532147391296025701784902187154264837633077418359408589125968368413203510936845878682473472331379369441887445256786902204281214724748615208610266369314117061033386921332571277147264367228684214589487729907025094507843912678361883374581171515241924941344459880693154747859587603407884261160786609798256728381804167106036181312137923204923901711624268325686561866851922080542979456111061571653048871454445378413714423541276721403903758496434016139382472084773454705913509691613068446515345693059974872268582165937741846003067655926480109216125013242943188243973618349116788228910828195166742693166903559560232848795908875058476451661264286166998319242089134424934908830822778147470305993891567558708573305711334764454520847642047002315338109277886020556154039020116379606738706300618063265032857317338306347634327668995069315909092576124452178597266850277453725134674523707275835395482126318622355610477816689960123157468519862959750515891471879203654396345027871619734309348745795487075367055458528199771244515942275708058173867254667743778174602375033498112673383932387325683702980870221302709682300643273999215152131640215836378982266806535731996941731840556446973661024177565946069274314362576877634953558543254441890181977699381880813851895667312044160818107015851844688633536239736242942629666570469218155727752107612102798199935791516922482473329452943040912282280253536224772993557803519734815543220943820876558414766389332938259139875188275607742313929997246332839103779437352324783807448976037524154374551513438751981058279482913045737096444481804496385106348835791957581816677426117907556920435754890316157155962887298843863451499879437206132353365424778920097781115977053436181032345138869571278681906293439483101428100610189288539019454563320982751253604885025611860362815728395404424325891602662790803617147557230590893791641065789846379052884170621513315047519251750221349314332038613167638932774877149208356136326716136385008912504986536243505701289844061603409971626516253006494621187480328501949279460126709442116310119328899724818524778124285853080672261411892367184934192344323815688464146392370450117964219676364997169279932986260053865386913904813817372105745536017773235336022414778134050710200242056608581239473468712700762429812599636663684857871552408943895163667841408352619049976580803252747642120116956168592386221589546053444509272844056811131220026959902174383730930878817096127641833662299050939569321848249973842018807243453212065219954994091500558810264842128690461713972073197300313243054622088204892270349096706715885256104858078781415210549747324429207966158876985160865551685899217172811573620793501444388874325839936917874818929043465358188078800159855047653762926744225652745030761034003205631118271902651525661136959009572416693447169187808115790512891910525802424773720867553759991824199200018811639443590672449267613625478887529342329950125985649967140041054128383665818140828573154515488504137410557402188287794601384071292210165614560298685308198861177362667672504003343380360413700507461657328815947700933376834114825284366532690299535777633207524391566595000486822672867351895856592894166338580957487600452501607806062590055449074125069744030200090794154371780250979535739229207304667503436248138532825224989771679276176790296036932524761080488900019389676489464325020305944779205103862970779675483353807779041450451373442539251964440893394006903615005743990827267920825713700743601046059467672651209937876130940725939881597316508410204210848774020990149843894102497809013047090098519130825075267092487176585789587388861877668327816947066375308012053424486533885918599294445423529127722537295122595370768711191937828846918357716550476795892304499853067250072217142733176316276233709489968960983510741172674626731050234443561421466144996035678208675724096152822128645661167069870967296206132178794041462893339028850124564144737770637961818155555492633857235276447634047960392055624642354788708607651990700344811884814262823303669845947826154035579387318765486366841455318206131643767580777762616427657998590088813949612783766631077561212700590427544528698668401272397127527037111429432851908623181906161022219632246953196399494559848078931082205577924802064132500080857192797137251740799932216061448378064011900418889783935773371257783986258605177089028432724232718115562133286863097386170845698997302527992447052433365667430081451586986238631888755117717657737215830620251466936375410577132015259765974208778886932906392425255670319120774539555034785877116380434817023725232766791524985938206453066280456392349462446125650586154012778594101033626439521364236396602346385416429555454180933688773935652153874100046288132383047272170174041964946585595640198328356496822790884881811824209209005323732843805453195453874235496541487136531348701543085829314338035189618576680803536001055118604481470519700679011243618498799816211745942832245175649179378903052572789452695219158808482064385446392736823685735082092792248765892780963861597769520676249684303705339061024602297329267717656114419131664689088404835635724389888321982619310835924733619440438355546561160171603354451235004556935171982863088859936258439426616008826098401279004496613697837246732362610941515342232961568822993288578047518852078962990963817049066237905171671962789837859025628703431948432003182805421664716931177458722145865830328054235300762262764893373243140930409857072317788197815953239760289819658832672919127401862742593094202206398373052392294747538866810725653060110719702502470605951440968795613082623326081021879889332480000776685084527941818522270667309462334346718649537892101194032126663469966621465859720554053022848864987249751860404990946339796547104047878554494138778800493461470237702591450053636157443124318379665996060978635927259605096810805579485166821368596507503195675340460732254197002152837216287665518298776993286095156760688268688035570543048047885440520702099416222262080890057348726141197865965152588726830708180903526482930369652155322460241194304710868657208459282622719145769619731971863293791847505087862236221582280320980197184585934491921792084303613966881001601971371433790760525806399914723918588096160384308882014945760183001144026767607788439859706824851797583393380533761924964165890836507438759155558463171434507154162814850536966320229805812211495760703230939150013449147330868293115689983260049361017426692335913028911443545093496907858445482624244051676628834669716997368354111361973462377843099458472456819168273964542566001623931058681691001972770597321545307617352851382510810615036423998425335767279270706144880746452255906120194106860360733027958396880171414185093994052948179890538596144134035732110860856396238524196092186524360592010231504249937334729165435231846421777309275919592441815698108914344085721448142014907815089926422116594883642518846722785377415404739353311747911808160243507096527695575496974801929039383700781329876314711202989641666210317962563579109727955396745040413468248379725381955700273864467198624690499187050232660302989026635209492920157689230230242669420671099530144106746899758081811687786531483802710018329629939251584153899524881633426034822366194182380768146882147518731432346731628241572113768362469797801632593559587832762114309183484379553969433791118406930115505429930332524414398224898070811678989335243872176993683615478142822837882538730770725171387535489194759822376970618701540512750197729683654791666605618499307324749711615405025139017306063597263547639278208655086053544391163249798652997477411370975250122759251127712411484422389648547437364347491583012170795967137710590137573631748228273931792011652219054409342405562356523617221362989011582445835239954951510933684373101650039425656960842952021661351914171694260930163256588739795278294722859568319179195439894915033312714264107190163630670769196171736793345641241153435400006788210656220021973828763966257814909757569635450353400766795628675824373176414408943978305965602278684828256201830016284623438857381337859243752874590674685770361265062455435399487686828159502572670047963829878310734731514907702528405573988107502833945793705790081760864722958481819096797869789449400466817671336103254768403819859418320212425966465372618314578007735400703775712109986947764271593811952849987573775949256849335308877022962659194620455125413769726033351067744337222695629197513887930058617689026613117647507231231229062502494194694965736571894044919939041946742262784971505086721764339108792410274586176363913664855776938493090903700583141532145382917637384108428253832452520997458581192976869166634955935625861672320387667217456855842745275741002837661596208221946693267721121166573277540057348214948765605441688156267990411584839471780747856359717755653724374840817357160699942597804647348532958246411691769162513858925785064113327742162782915267394142562397327074108174705138406677505881868122642642188237627024181070645204800719464395060774266127599023120353536964925979744987731373249882831176098560547684715974871467667695303608543161429951673039932071507506504916191012069065108464673874178346687159216024255345036343320735218696697809717850151842355146227046924689700871861502480791670082401858911798476053352210502345816118352316729461471376732941772752010477494061713328307756367566858249885821215767104345876283271036000897892587230855124504393689814404693819109353964672374231500716546763539546587127343536639344625086977003108101849022869729083132752681124428884955041794167948741366860734066495324093010315107979351209931871179250760003834207826768908430795438592721240123172644740383278872081442011557676880333719166082482636220477285453730637646211761834602093352895392894320998605265907059876475377692569115842862871182648849825738658351684344895493488052040468681222889466401262350267541561085744160582167547384705207345514339774883125555162057690564436121244799689247257697174171236955666581462075385135496405778905327094427669301737429621614837594730871251408370113559753664601845502808640930301539659429191876468598303121991992672236555770555957479815790006595129659014846978957153033737225101162010854480611623638472994266791990317228112415370661116660120056456832412963720141889732385141512275547780351356585789328852540223408855905105013058935349364931608113302887780202245804780472081880276908699527887300590382622133055916444790936696029168599143457845581202575760240993180034335021472442681287064992999072017627762655282238601998760923357406203876886251935914266716505503850760162142472736238707427371012161361690896455566634850323053357473452659592467972262991585015476696512196652469881195043642864037525564930007088474104530189499066804286704938318774990917043735082832438220301982470992509484291191093718462833408037137244820018724457968943283516961425231663062141955382232431322588467592176892614489638737960133846632146024285472384897101072590562865204725967749195561010825670201924094654762597750176593711332129583904078907430138789701436075679520608014756869575791628503691952194072368629692496208503236726480070994328107993895826462270397525374737487054032030783473787188166392666141388131864821811231669181427947293034807504016222734782493273854981671959116027793681146011330494454363741733401940505975162028642161288419244137775543546026109545553477699987484044262394442576099834002297789452301167099029809623495566422072064843278409018705721007179166787029840272268402740340657153244890635428086074136940346689318577892907332049897022693491717874914385453319601225051417314191875479624864002798445411611369113097339786019168784963170487013970433907008684591457806931738764588027447875661960174106565484640896836374651459650838362203190044898835353544587648263264327960761934448968459578601365482976755063226780682215607413856743359637479596527555520428353506238462961480630989205644007677688555239646581645285903660166443879475789291093180096028799372526133274297712936492787713996416979664627297666815529922664533041669955368482616294205982690469596102662223892425541302859650891023453962497938643063036112667455196382049203021542789018434320258764427345474493585721567147834082269771608375669587704169651165726311094606111414770341766483972288619593532351769485381724991407164476775727864820022094816493180207403411974151864891405375229836256905048586660096215477485237616071533010746114799779218876535793886743170618001542035108967599639087531699884948025435956633609374757310372589823634277549853020922421093826314297366963681278679483831609282071146903829191322868181244746643517960537388381180515590458519621614024608763157735762472252581755215189991641721029922507218363600406022885682709238568352159559848981509759065728892616125544858201387811468468234445092179115477983033013182813821926204269146257127127259722095954264489684774642850926074756294033926795209937054492206647091704123941356633922874102039098338697164313037331529635344298973273251170378308703239301539797874714720985651448447406823686169145869171164613236534676749044048569499960100851620154072537644655570328968722457715020060614685808325294066384772996878260983280615074839892075807083613967114465539727283535496083920127526238549747611377209785754387916154613367238073909564999475198090077630727568304679606189604792776389287066296784085800463568729654074684064869605889341289353483033027509903673526904048589821113391401048051352038532905434756283584847366597923254840877030152498384946964978894872957664091708795053124549035781727637480169491520573588136641863236813514313067237704910780913712875956170158033528088646403824744035086304909687052270229141286255749043283286017482926382020905027965846223725772444615083784239819188051549675995109518365414365651756576339956033768243467119257904701705062845205644375034620458979128847442196032573683369356146523890233125034561243790409611630658586381996129246896657835457598207127865807784552303145851354372084684599661265415749506606444700850454363955787302649699295892440658415155553226507374332221936668840591288502394501689366731219245168783803529783563901808707869268044443902761605662048436358637606392920121807281263277381484211520452253499383416991497978017767688117067791436533758569622355624062240875290506434190528862684641765789712072743341793470473015891323649288415024142138172603224123799357108597618668520318901974071921894265687964500352407864594037319085706432298420119463797554551383484900728819960287188858702418955638777962033944538783828112927456716984847430504908997548862871344772060198685779196153342730048325066901922017746378949217992042770345810109812501783626101038715541589936894061246047652439667885350266524665079460984668426167645180800462569251756780915387116682432365954759036386176462279882575017340714102778102072326502351434822927412264804019572165597631212222234893866206121696161127518423749929992077086387237596537872076926858465976971899210389516014056874410342427011579536375776569115138792190924808296806919611113534519955846540204151850603327444896099097662216751577064236899894095788906055983666906756704672710369609676797426323302042066606145421710863244172440031035169580819651801179906198056316970515465080251862693721564689439246078262522166960421982509824647923451009844862838771762965590424479670810769994123498989369953514860750996515778422611952342044798300706498108034753291942879284152518449334833808629837369367611678748864382360027593028286799752071342950736924338193012433963588678247230510948104629302671365265053130997958046905080620847920510346848163782495692679496225698769418685511819213783628163860256389561928308699437765466842821588424894428647003486662676649474572636539131488157302496344420904449997508381799421541296142462618865802639266235619407595598568469692339239591619067894444700091177112725812702051863632757011946678779401800360238141430222557124376371171851345063233600702901762633319942533134794686757461348337301925320801835510668668977553395800688303615857170250764206326620706198354434647015716260237621459765247938246753346286130080219990824379957250054317957292388410625731828993979699310112480047677352045219833558116077162229024985347662641904596600889618552052176433133390251195610930389228913633462237455162674274813795171793818208533429990820312457944292969041936239111709936984327493058498249632691107727648967979287837045820083656114774323056269123002229893239262816937008469826695669622633940933819351505082508067194887548858705404272807501920167955410496310788167742051316121879204925710436976109872605163340560517666790479406838284775497733450798236703881969391850404158926998776337847306440307580173831213378312827187067240469987826743163930383378319216442703984451884436144553779132787396382839341537708589218868122933808125282360721596550639304621963693953972985982122063502333083158485176530940350701858039078717338305753594803266058711564817798751702575035322431914951769165709461238382688243211123105823289484378712395266456782243717695722304035219881169801189238623535114954473366907564205816525719546730358045407873899501753197967483356543304904793081606300495084817864593468404714955752300151279204544005880584975875987513015681726103490388101383768782092540221400446502395758289091851335693102648178955419820068052562750257819144145225048135171852782621876326787601540630893525485751964041231362177542127601610690157476491831578796155205014417864783498272968936266848600326264711335318979293899324950644122924332802776852763045626322670278621220504369069476537085985523455473436817757866530219080928027948108138704813408732457402108589967031351285125579193437869794805322737341876852989345073048995972161351191063604044604248091596188936065211271380223381141261933658555905012620451690593723121880410249694923111999035949116270598115725795825046266236960109326679163826564648266184974067923139129908536858918945498743166516883009430135775213806694843215801917408744340441461051821986435214482950701205300464568356743758909014261672097770725780722788077145434010503707745143806743944328851167882325427157671747186266750550416050595141911969568955456024222135241336107012989922078932670074063429596677176349239356418818252878003403725756602884115769307082102807617540574741281213624064308303173535448932488969365930724998406475164650274727602075446668234135457706051669501217232310584436256008739162544294397322566594406461888280080376451212047521545466001454209382789833698502673441785687184489347673812609157583283343939578567525884576713016046098268735305746390218278931912358977468474717616882188861636130540818890242605673221989306362343373559522838618354221641991667219692190475460446204051713106775483082744378860853109373387947707045140591741001379608791280224892636110153373583067822939769024312770830814212799650035601620804741574680638884357737995797938612053283920853743431877813455450208614803665755570297769427633783362499253353183207260566657565756478180571901932178147719440508869036029414047966155731715297672579197892321459070723228002886316440076440149575261198354656444005969889467453905114230381717741701036423832751959556205140201286719464950840109103598833473567224314429687892892359258366130011221035414871687597557151705134796602260779131276358298381102363371074172475195841421875336930207795462007477878613596889422346859901240269515468683733171319360076135033273081818111709406887623804986751102122123730422420009455491508308142410425235196845889607284149665913669643648279321764191878884150419054787999340344806600713550712787698329509292178661124218317630365505437600395320242842234176085172617605513285795411230344896737181118468439110233387190505908350133716251647583671240490604008036651447080719216840083320641481007622537496479861902294966267838651217259553330853541079313141260748404571354398940529092925730322153814070550071631720556966973370344825377034435130616202914006008541864657761957122805274469507641902001149769778656072777676305980405534826426799302638857015510988750217910438938710559498793411474090766535019160433162678405601592114667893538543422926259515296216149089954684937950089215069996706099720831651926533686727619562108349458616108093109252210731472102433455984266419626694918147965525414644792539407571082973765437917266298681549406562420047966577408500692688226876311315642865197223269835753754619936375556386607368244687784234620281004393150048367030786762121818093578891275819537303145585526971473067224517230866477397066554193942255214937375507331505294438118999486263272344196185816231051640861897617757723606336900892026765674643892408938410343836167867877278823877660549334493129140834565125530383440453283471320481055766465518067139398485189034009938636909389085247899927277132676402599263584543612493776526974830938434134355721037537428435132247612363107603898979149444435317683673062672442977972001517049373664702422927911411636462322901224729274564822391443067361384943507523427947858014320375527843303875740671908083533571086796719549698346672192256389956761489302733625026546493917467944241266081855831753444713046684454314189803847909022007701213223038398888847276282356693757150275308867028183465549134379698252133379157841513323586205709981174269060031492792530983256751975242496166238931984549196185692024775019936958877290119141383649327644289506099459201049338606090068861416590524585607769020521664152511518946220175496042371516941466008090964723662607890619427106840540516987679706820299760707012742801691781124104310647684321042520722693803043759685587794280031227351012270421355555287737805186750008628455102048455219230131650276303017383496713723120827680654300831263033186388473300501814719853985121192829718936823721414871626268648114906441732558014563014174735995793304668816773395452921225086582812902720941304526134939814348765110175947471407979583872903168166950794654220119625280250614600907832315597449197092325443544099098645013363029800586881383444891256885730914488727613040315789356042959650750738738073881382288171662274336624988584374461438867556385784824334368770724625294221490729922834073665756652227280614681772266294888375016291362204280276910927416416374508466109405724175542196588835781521343177744505438584984512927247194410919663230972584516013706116167840995906781578798569459467470719655698184176075370239094339012683767720307334898376165453146933038358877654711533290084665620432793476336893875927316130093888553254935986137615026691307782844530152979536028939849539337168256158933820673993560998632011291726791856086272851436363565652766447570458259216060279923248241520971280581913327320257051328186225139576421097837992928235304182223884701931859997499522883316601743583930243504750932252934693680657271206390826576022204025259346027974734711886498641059634405783474584592388854114424348231639425707418621699134379795547492217527157639247810430583300516368051180095743374163470966634798816402583310036703363579747741314810464968228249749502454759712414590111090092015901654511047329955503906683535494084637151813763298384005008772173230787228235234149608621638932010048181002236111504426505162037255456117425709050933905586123956526081643282882741075807650132882312803942844516458145592406787010854414862257839573339895262616354970811637945292189063736439510348727467132432097598282688743009734902592651104665996400563219562657169930038610474306334258469914159946416837444383056504810320265346478096610489647954869734437581462434106051867051062447887715913571984310957027754362906331114304289438545799322842105433109668821532371256046969524752243422535896549926220462665507660237413732531806531997253261722204744255297053855298044242815315946020672847104634280847111992060434510999289953922446343433036539903850759750949380924630142962660529953142290283438528149731504499791220576401153798920264829022826761471470017631660776391792066722148014974693646214625169444532837943526540485599462057384294703788227937701022959647634213298978529800393936274879875132926713765764168544719096142237610224811824900552898393936261661020050304549251595159942700235227214092703515766307048871884537497772577983227759728965354109338055335063411820239281876216116054359245583473843489224546806461247206891833692956208846338462597320300371501152335278620203652304429450488981761023745593922549955091138555269195843117785146585938864398800115385768848294271601898342099366363468989805637779341811663857344734333073316587832261814377972918527808222100284233512273816627441420830544229859825594314641670418520670959271268238030162584683455587581882054715607867429372922280154300503659988948603099354606675391019132625538083566276040130965063415816567557269785171589137810797454725190745054540616673277029075256052116751973870094692798721380064613422884394420599436202097448773572018527914894992788801448230266895746344813014880531279193276247179749488719971805204491630858597696244512801011425865140456592785070338018170753882305917233851586451921625215441385795888353721339994744435330351536776646249304211973886117437967608822863913276770426072306273525637536876054413280983635316591680606480324160024906509995501855461466188628575055026258907268124323671561267569606540895115869875290043764230526258362067800527622094125824482282549157911606682321465414864111219398657547016757572421790258825705966686862149462256050127680446728579956342049621933696053224481617941929991943800997386237182378574679594688593413272050445182448430280607282687414079334223314800299053212868611267893866685903392131787057564285695131318445089150962394410413120653228917295270869052016718439127869168984637756545689186400459377488909836875891527105012250267451640725034685320004085366333599502486725698173434621345013148980299738477679555439542135645857912997503713034590255951899291076152860151820932230412343697887291680625722332455788319286540315243626086535574567765263767532573545581464086929282083160670203924056809635146454649620368347001640011199095477803521992522550347604262842813740485239200879513751164762399638688077456873802667541592828680854236127464730367969465410169035434880425714947784572265817086756310771918454582510019482361024460221441228360654800319986487439155424724833715795595382660427808847998532911134997958161834509286437961043420574776454628849001115961338458490368744830266536463596459775291664673843005140513487122989353130247010226465643068897909102192930979573303024006142776651335208401015144166458423298811473040427030139583259342302931990708895392832739587614253564950298889489632456335128759407337573975071256473474821926924812572849893579051501027219800512948672580122839603939981364127392738579237391246104424222358197764730669696256137418058482931149560179023600530417523273403085889717456684213518410759458521189797539965590614634638402532276809761452647652539760541378147242466522117132575137934636352011935348668495366692098776972129092663344362326824063430806550702459045475001945332429720896605669534477465996288556693399754033660853262449631235443672407040392238741753293576443930730617723366347757615770744566114942750047107458407344178193332214633684934396277313746164430707731883498614780898643075396058935470772500473511464724445908378992642345433699547988950936867151694445048745112193967835150262211899473948485567331258598487823944327649402170053018547724008332666984003101122875892819755590040672523032727156805828651395519499157946525127315625281908428555579750292983435418078533260821151126528671395051063531783421315359747324116441516108838791685169598956789272125722440492982454538061345185693564332272086155772286122825798785815982501879188221003598039242290200973109239853509318581533161444876062670206127108039016548210269322526904304409959299696794749829723635528276037603877328420176794389783743275264910330136003569629080756789977705563659369884390793740495617015480830024042249486986346613690047820663173331151038702890970907817376131400123414583567495750171836765066768717669179847447035149766192178372104907861375785398278173746330838651926862103959713660227292797293087265142665513174740969847646590529553856552340622437859039670889490455344419626204683673718557114642722499137550650500619461563018937501752583751571497842041717177216900234295640944486473154060889040649760303358373640327764884180389084492587631918801047335978853680889657898380614733815533024386869789073857272461261534898898447663127797793846130000041016921201018994963148677756078137108873057429320250059612846080218263302898515854865305163350370356345418924627013361140278574467938767587462135146094659875828991468919935043921411214169401744619200076969186538111927122509235591241521074819647123351713645734493760400910367060117805058971609266924867588760813546736870477972478275282459002647039115138095637278043630205481014750525809207250179699622822343142390612890708245459088152367285623305281711572833778803181744320042322791683341823017577734808412571414777841354249967346171793096051862352294352232380994005591825309855256211625768388639448063779796528899424076199667739853722732426792428949012316824912289279488900804449873094592389183042034952707662686434689897701800578987148698539555804668084270460048010599328743589269337857816099202700858483960018218210107566770658212452529345758561465970884163697899621084323494641244959875124532246207622539193550796586112564555858047218865154478780213040804495406619765803368378010581518805066430805831075960898846627663189889552602240027201772899654718297161034703431263240678856418887194813074984076302911447231126237977638649384775148051757009011703057918821701848848754345161350018460754936191762159512190366748893496704032603548970496912608420471013061360194091968397856653503642803389946073722281221227904562760786869115925143855825457389347479757842884001374962709699226535673892623125452555354236043394308092348324070467353196906905740161588645811997083845389733970545462738037101594886003575910621815554822899109950796993450570415706064684030150329141423367920254145367004807338923757825610930458209152258405090328151862327297278703008128972778968039593651099426738305650988258746274440040153284026665569903991727887935832885791037975130771755831453961290753027456487231939519295129770960778455068309232608300095609463105567054034911269768804961847045007133203119894110668389708071115661940257108915350173547120704152580407980289676110481883744599776460662296985369490941973211170003447147188811109424100734017325049813512569251200795920619096038657443186284509024139045194010179891975483986149808722159622342824885689737816960622550730657684927639124146963990250801330980343454337538591571322322662768195135613989345456655383282724634652461566074719981959129289814202384826440045794399598249406524919132464174138595372208532466994431380512051013741719558518958549002619227850736191881161370584727412193393413067771619680332546935289093645404139107835863003561695335491281282999050918178775198183909669347525009016331532531837658962005682874289893273835981060354821630863231268432294269409933400790239011421051810377979176207690100991846690691562788147195170988796122917146570159445397299760133970702496149158615971367429715740556960525691289557504786659728029941713851387023418269593195139506225209615154077987718991434810577319893996987866891490927052382548195534366002431827878540202336896454181445997511285235316171131581013826326937018219212198177463521397368478932640210794433128103514001946486237325497485383478371720191185931413139743140321554167504019743881587744897272766559619644411166038408189823726013154471692489327504308742858846976883282893855428170499008933963135859363745693066654631401866353812092843659688222484339183610523269220705542339574303370906187147504912138512977045707268930481402025566059803714084971864188881133798561309851331416159873392211828200329387900791880989196753178966805868467293403023467938634979209405044600136548967076163441590313321787961349298413785983989947231489740643639272152928627772613776969589939734335310554347524885353497151845050757707284512245801051111278071649542070764964103721276805869397554268794247798613827071480626019594363215820985127125405953426619384951746294752600422174848583804612373963222896173750617421608904539757444598465534803904719455901291380378988490577467254304202224231727167317401551725010071893318079649706296342660660856167103695809628772532153637883027599693902999398346244275170553608149176247903012524794499158463375174462617198100948951568270340995225912967997127347825005336890646205251474150215352925863712879810341016583761399647728996110673858909284252445796605075458819550403634869039485877986646728006285211863798340645604013295604913598936125682610624351765181355431599325390384611996762686318871370896804833391975286660027207498761650246527436865977982001649820215065291638899105785205685072252770061241396155903590056952790950124287296331302116237858877729970676890892680204255698214182511020190469923833170000881939595363143461872353045467359460164916539864048147105305108148698036035060810350559861496470961227653905805030979737482623775534164580635718147394247224133734269011288205635142415602913539447906153543302384304779575250029172157243254436328105863796163373456404018350703574363554824403928097443879252874612571441542517918276318756250524182151580498152070226982002933453660442866933109465119845222234731892499928443537519856259005209012235366551840048232362900751757350084187502210681500046910369182577483141591620241815543041165913108187786430840534283666633024646194524746667889204440400504006146882797074549948442425929179727197386159495477744779217836278025671284321982326637849244853587846863865152149556722398456413231819898902596564847341404331556180865995884890341566643912520417720739439028184677077024994003293144189391896329679379758897673274929047151224574809561981952248615880792975305812597565740149482830713906710898417947093809778345981427084805678181761473348006449192909449789290849331314282266711251184491431054395053460058341060830706011196966502735502731908504456921250161676992667745743991149872994335097252601216964121816065677790155867912124221584362663268042035309276401478236949372935776089608715456737672498025833199811854150540796467840660419247719865619112192494986202026546384941892525561510151970593767871734682555974589151570353614106757832668026828487113237221671523697009513239365603573493207485024685307811958361669085605226124402776058480922984613029688341034252525892399395246456686966422897327236915720089007538190128713542580212241507432990947302689776134550782434224330472084413065170529332879660765397986248235191291343541941339829138134609254700458074714675085068180833448089600193097704216758627900413612852523790110068006103362072967907192267444218537213695686616883388931947892738421519724554307193580225006378495700239932890765944147100619697901757221470487462854866620563329592475144067216092937261688658628830610901548092802043208691304669457001887167759223414875564073882152752083913002616692496152303837174949026042908311272001693442743769504134192266156627592421656721645614504648815930690829219486732520177305656562637623263514188093980892019108903603098441500658671346891443405833600936874305685842833306820896794855112527101130271973425305743203846768164034141360691304936696784472234666387787040181025284118022436757058592312319656312133128127470480504361002809041991704649181839129641471299013359646024925828668940536661382704063223385906512162459499211409889072983497909887239451905016451759028785144728043617986567586959965892702765204950732388921588362847710457759754853975594740829674072994747310848587580347306064443852040914791292197554585425020287158843867929310615627227241202447065452880840417562981897798236003337013733378903922246684957938176923309422179470461268810345591304469281367067474534545506657835078929995219781934236252608537616997697821856602875830018120298032548475775994316573645074457162317449279387502737215628048547916171954189243912953705166050527206757786579706517201610643757534216258575397004423873872164331769514276936447080357743439865379928106962821548824812172156449394693672965476698634324626836089750971819993585475553418433314813249857735793845720850786154630023123133528095958186577775668125636427376963912470193659326152386947332575233638088356883502571953593180213502114099688232897967638570592219183121023141476062344253761122058056693391891671238034013161111171186525089513464741711126187715405993423707901595387521099202190386106399441722509093840821712340228703217021239239496696373076582532863791399947010261464728055128095645449890849715613497171604731407409433840645010381477278741782274147191649560902631410289608625168105808145103127609004329491606482902591273194320164361163026006892013054315074321989026993543322448791989266212059820855416467912691510262891649512622462298078652448344993012785990396243433317209036313792365985776630970833688841608414996277631719150077032964597753991657093018758957379620249123988303246550201619336857423506759426563855207150951244382860607685149919205750584629839949105787391989058598619182826968583286461842487922682592170460994950953507214676450588098900328711902187358351765346927049610763246932195970577969085179303243050634653621198693522816160739157796116514829175682883797000832053971893349389727104937651216260268492421539157776796502775869263225496963098586253152387385356426421204376035767279529005860703781831613409283863053107251532418288947215079571030115288723339967426716937074837197658972029906554521439144645610943200338073056849077566778460735365881211052032894080151489013753011862320993172937793097139866116723792559102205978878395897513750442586028118149046855647130984327555707931987679982950033101228370182308292593435981574558034084263124056663374746918817721536272205309014895389658357443487266595037872569916236345494368594307889535337857195347724745597008370998638730464950168553873879646947021096984152461834387232165185064741757891944270869449179258390568099445752790121472818090249742947799982075874176684680346187035888771590975524811602372715648645583833843312267909162893340265028851732830943376484473255018684632574454358188350383231740638467567921406037350354071080164513959988939755968515445784008734581021269165620325040966966490908914374333829304178614921822384337745139492458969830383688389506556870788328514717854690216430301927912625434759843622781284966842672410541548915551129052498429077955874696522435284612493138203686160196565700244370875121680497039049239882116687704381111029268391379175323143398176429788343847586513859366934957119085673768614102048735053504201311343716310578468988583600251635165876089938726852925065666006382406404080827299577410966647111544862357064402061922872156111706264855576111107788924346639971821377971321490688508209514716974136780234000431035490704205393738039503507987235553110208929974351575721139580152625852669479853338236499565898722574221242044873802897220953531779695470013154586060490358502318962219591753383117204097341139301470561576917653101444881468842068654194434181205097406691605812780283632064629436157017639599291693251332926977469253838153209794908849150249120603828953108125772086555642688458181809134644059154253637349866497481559508236979179871394048453000780059674266912573440336136886358302959794024030583993539240553449406610756102687283457620219868043493868761915366613374699562470252102920496117091481425136019188555013970519731858984116477209874747474109223034080727659198474591132816716089693698787088071134988071856949201786110341955642583745688015094644230148156697263809518143831449001774169185223169357805742781455808891278874882183070570315614192421127030360781770448634938830353094914024227415503480657817961264949789821703572638956570975230213059849094201827777123055636372443982721160589762089305380480600274345989764849715015185064279988350439478500156156146174908287506551417943675270615032142131750166926536724161444996171033472531465785552356310422126031129000095537266012643818335899300214962182269495923534364492001508123324738698207555630393394024701333529808450992194495095878556559050503770151932724075065166411046279337254529682859772607112302902840223036272757956086041319673182012437839667336909875106313798299287885850907543516274656434935071501715866606683267786880797439044491548308398401888151094008207436811323582810155791833283328214987603537715887048876649328363672217143642865546484723830073900424224159257202540929696851732583191835539205403827290822957399370540695680081655031663928981228448696827638686795570963146257568445515006794355629048711300241202028437627091350220791772847499030223943267113737472048582764035945585665876354003690814962730098273635311187199366081210832601887653873582191662244492562443270545518816836421263858028421188210434170073001135113859235046633178025717219139418160546622240514227204228717284716998362553602783725250524220878981950798105921319980487230122209508406935915606449671260607484459236783152408808198030958717711276275316184842621657990132122786586122079438634590990058064058942302330111199994172482795284040611025843659954876419466612741032787658409422425300856712599373180773033328826198780158266781519783999380246665706476233164801503997122121337381632531224675412649053452395157199892546020952160736748471341628895860401809965971202872588438532608882431452101757104981038960195518383360075474649047755885448459877502368412140776027236677781080520186111839141410535440381938760992156462701814391232393368417585869016094693490282251001514991690621751389278159973921192739629474804406557189097436376709735510514287353780082250335393196689154932264036754054752659735828508305249734173519484278568983777465299871896944419108798592604701979521911006509539563237034464282012708408469405710685910993791578496262846193485515154485801951335684323960296580654214904650110122024726868411051166479993349483358565448829881723764771162692425121698614279058111582905484364134813802462208421696820284451972984285351230670731030573754316214220761336572183374342821816062882214378818320043748625247749243277585412376576378039722109399869240322250504434934586961506670746736610696201113196902495935737094941650381233770945892293529188333185010639198028817082927676368796723234621632077570072691525390344105379824797326947713414006266926419880171389799382043387642785315382939823282071771784083712652110828032085553390208960748949535557438181034152433312777302983245512183438155111862930960978393539142007664293647761769281034677574173419415708661367185897771245690780999528268027846175794554501028346261243180796135154947173737358519044754155448269794413711673437737425412027221464743252922464799965701724000195296063438183966360331206948385669798332038180754137972061040358455402568424137694596964147315400100888148163654774379182673204404390528289861183395283261080290090179157327372090065877214397722062712495877665541421977386762116058634088197837225694844152706875444127375645167170693897798593210916437391073555149314013059460870127521921820841553890930335325160217767513662151424198286491503076673333533651591915308746452368878291719921505613784027872813978142525190730394666429634260422363785029097559266962003778466665066500311362933156600988174318626391704460660700389711483115694739560147738736957070975026967049587846534570385729174715929271335864904753189702684190671397141418062863634237365925944009494009269931077206083471450092625270711786083378379413728799243029283273682515203669002334562625749280445289480473767870409073858890812652154224571861162071055811218864347871186528353819613208769674866054121615199454322156039539805745476103805468704135850833702238132324773305100005698863038588193410033957152927544133888146010682754472589287092834301747186911337853839741578346790875404185396039263451415096693404535072598314824062825683935385738968115492192968881336731112783736242926049138048464661634053666286591830281506155721990431793982951087978298474392153604052527369335997612667374632133856862833129659518660396695042426206650507564483627464446002922248223855924267265886993755942549856376252391850399188046597798718067759963033106989823866594221844231872040330199388065493952207647598900649511651057984721753133239529542501173156931453089470074945109138691383198244826726861842015168766686868299743890773443834587431807819417147114736735897731152060733078477017639528591632322488661014521182452360900061402698525777030815877875332610547164323030022391956307406391662590791525073756111363469435651187845328114694891163736117404028262482107648482855890923427138106393720522845547603033176766447010110277838120666553722058280109126925415784399996686174391073977082024134624873517843320334807176351517348157656161581159917438847215436110079006748804878022227719677924887768911766167730915029347843342566142082716289956057067993556300590809096479956670413136730282175733422791289292956679780094550315669599630901563738732242276264531596576222785995852779637183764405820725495769166036198893144099946759033876975837642531495728928699173505012270950234929790217628105571015681806948059105656739052976016929116881416184742937094978967974017378368287643188731055483049106568144377729146845313573698680940234288863710520674211490534511394968096517379912996217502290494174955358737916814130375206839353240561221874305033018746404394316150651725364409498622548480583064112403359633304527881118547768823302836321620929957041426190158483153131689484449539181212920786198928661776289150634014740421529868149403528141454899987714148333397382002826239844749853586790223207792744571264504708718130850576085342740963771638171141566258781424550893181680977460632035551572281564871597959106285140996912316641101343578299396983159682934086288202226484687153741161114830951390422909068198012398093597710584498003069632747990048533690024164484051699862151622154244493101509932956709435707877995412290310577954773886289364225965065477506161905074181620210873470709010780586271541784798336371305070996121263367330989639910428707031306414982111194274423945222313711788853376995904642515974473585898892480193621838726815027628085879612735795190993487431572484618821736697636922075281982393531479096233016630099575853674664996280040714661932974425520513834760552523140312102869621538329814701653020505345684696239324815151377382451655400514476850662675721012215731461799069822100087294784416211169297537334635522795833109244165944367881013183239284569699956103857996804129628826069769842923618356524847901717526516981730539341751780633335951290245849666672080574331663685758077501195398097723614863700480168888832096540694768863158448848647799760901142239093780015912073460342120558141108728426260098985673301100691450293644461734206616504631876637911126743933218520663708620730284102653930565484461558187783528594299102075633524257188077648676187637940147505124532642251869192001273125801270203646913064530896101917810651804050000001800558217021062864546369484733320766510513477401940029405385094895657493540492872292717787127591068819927002959779331814242090253996912443267149012169958173739391749823752390805869552679060194839926918924829270740006532311774441233857823400235287603254208834902328494767634479217155075725982017423604942022120451855494667621266892200482160702901454836312590312160855445869497976702621146856902703944073123546861318196998546445620932005242572478183624803412565301160062852173240147265234213397500252897450817113951638543225090432719303199407313921836609853228586702580977204908685742115050582425643337987904821277536339434271207403329638355582587574971071816871775069258034358903015175771284368820561755314802064618682612937582076242860768569776044686933362467055466633181859561196773294044431601700690461266841225681968738393212522201495119599453545768282807000133264502918063268179852068114300720899236988810726812657921179462370013582681927484432835779597749519783332947563746957315265457302159989906083478074388091731772284262073785371125772538778712418772317041117012404847844528939785905058516636479853702947383500629631288362229191677862921859622679564328347283692266087401192228298288400515945706930555653595084029062527489903343752476283180851382346357200735459901856581560835429968456530496510434629646077377410694900788390605840111246922335925295534297142375516129762961651480635087247048678470614868279356785079321752653558747592020338583588657854814622408982649679754900419653040262159160575680249674175689581704098296510578809540634650542013582718226267962525415659924339488400351226446478523296727645344616878548059998115032811146346833118127809779631494012877477175126746435854446234984025970068512303961635511360242699313560999526601313503119402133959348715532960570840945041636029834467464233712176868849653236521591083458845736593762945179006145738824725540372016499941425844152647410347747341677530165561755660703520179624185198553285781527992325518217675107321307527750158786113780961499790958786882212672786516078094283763401286406575038351900559650668289150962254928489421242163219284494160564922755243116750874841579298052911974270853854678416213800422966385031720709589132338954448949114639516579019584806501224074387467767043475695982085289623628534294677353128145270666962824258103686351094282529210795281826550008466502922574214428356225580721239233006386747715517147542653591459670558540416123280560083923640258969281667878227909981662199162572303036894715519993859162446611006007503448308833590107224536000423512390656340107836231608729065498846088818391688596523353944730139554296493500844940437372801340366684625115635910292105780275151833801541769960138243485856489133102297661550802803799756813323198667362608518772452829574656718122476246647115617253502106490153039756410119546198402973436550476747464735827723106563138719238422696988383687610378514015633248393054003761422313111757476782689207734928070947219592613724040242218025261166580551967080321227676704745547951359558392167074171356966047022934137281672427763595541226319981297981916087089238252200050791821279446225775752825994152452803106267348369607440469371841192742949406666547263075470235017416254240036854042670034670812154958148923724431438073152929806987783162454582098751080064987627909846480533501057487912600745425935456708909606805371298983279318716135550341419452234095124273907380563514334332641570473494268762338963704221902393191613103825225552440403810014035556865989005291181244304164957682187484270849373750385164808739331818672361221646050115028164329598251875551879445826624048208638547453177351790338238443015507310094343618449736664586252946087390431193235248908962890583813112060735913023187439295409853170233381563748521008164736617722574117393969189315395650181708863409044800374349934428982148194653002272585000460771080196179367914409198620526193222871479770035769634394981028503379027787357794415206030101786173313939305122103160068565186497509516638340508823074227153212131211206958922671351782853787790543478876205704292312743780980260827772506951559314021211618754369806663561118762461734451279255656654149346478567101122282760152025185283261166115099424120831905885052625947020678523507063532102265552451439917335437594985515179747912759261793775949170194750951168797280245108246682847596623449389019148409786797269518202641456652481808224094553631015148382181189780812709069194704167625313297307763754075137106756907344178636292698073709692389448355283195006386111797039035067179473242386127414707397613840983310657133785157268510116428884109032083502750586127201354965296700583477457776596766655042655182352311563392721585262977913108854226230997019088321382339784204270234308143152673717139627883125261834233760218528263275015885516295603438267102928609649555412007480886218219022850697043925463259655823376630048312463528611828042110932013548238860149903965158196874586880437628230873073585524724423648887447936875441231852853129124797166764831485934939238783028437642766419516634613925810204440097619326355408057592130282121194052571222119991956378380927836041752281623620494399909855161961797945399244007943480853345628509164641084025040711179693585811113864125443348989805946117744663934272700321696726720622887080818911080154109589154806590042971953681262267146439737364562156148352391773206489091528638522803809205108583091679036922680265822217692777852565406441129729257218398839859459335573445223950920606826600299612246173299254838100117788781657306983077110832885474887765410151416811491124254509804576932344335529949464351808128363647841466707302797907232585386385220010884443249850343730710388528202103406207214970049174495396853803376977839311884967494765507187002452903716314315932359572724120719108918396154401140367017584607754504805051819431431133696789083028213565632363956324845997520452913430082548649110307878645421604481059782257277074988015529510016369227055030150520044681623666701269250868625516510933074565591139928595061366121072973522986352799110028272620370407198197959002829611862980932933165061331573071546832989510807299189928268050479315525021005825848207612664761990171925688125415847836131647292547056312753088790920830153624242717347194661512149380869859527031732882962781396161147503358114192662670401531282213031253781476770777294344784917009705564171247730828938873504012287025539910581949463351423459884830422799668792009238872792870976285785994729309763639022649151041346567423105972590144465443243387492756596038504842064291641162371958307164888646247314634406407458030991414884941896652987561544048576192418010880992258499291419841184330490463633326151724985979427033480593724414816995175882365051257462492464707634427083891455802462859906710418961583825871628126077820303889995059421087356193332436387190209398003909338983846257353509428768094033785700135122749670184704986770059675712803841940635184801518689942333566134636745392080965594934904855305581770273156838387682695024402675306975734999671015692788299966406479818673910881579187444399572039009574637537515101863906938799937889236679960706513448436242980016062547948521245506916372191261895254154399635244443222733270122419081338861207697536484999851053934785411889399757859329326707728977558278917914259995366472191729784320734974720859845243012909678807770916958675355831528662637543999165560449469061710136842790249925267457743831373317005722280676725644507951466893076490258677736122618287248288548439286482684775591766328668965581976745762690152340581295490979956039046417487095635735389146275973923161167097509037274363168246338442942510057966059414306425430064581977080632510611830134572730962685785662953986565811789475332057245613486148306822402567135271937164997192211229742117486427058139529263841456093971581006910610742165043997022575401630992417760893381005898594437287826895731383021440529450037908492121904281695428513831588531576556534109886390317667874967768019597212992485827599241473498740084909254776763346405647992921369945770720478821499229273359166074324283344994172637031512764055357724531304964055034625397151276853421755716600246588374455539709176591704992480039446262491229419631020822974227994958817588691032866200078363019106385460628878505770685929531718022888803583523851455119779957930230701564959317721707878158771756441622299174441421865839149202355637461803547886181349858368134068689000775141594044220622700628633408330218268720693492247649051013498639323014795429495735898903870269799911402022578068078372964874931647703904056790675629208228712797823514027354286834446678706633456828374477276012993676472275545844655450758708044325858116270888740509536153566861385383304751487237784841183553798400717422782375653428312682419672002371262959062267041421848137399348618376480114362190729625122981304881654188348762398495566797077081326287589134652268078804322025575764906394933906016448125471736080184687088421296312886834408779008629525183899714982764735351682877611200120693398536399719712852760562774397081949853298304825262840554983949762499815562901151823244828291685676249254039245081118938884535910070475308092926954257913977392966842198386935634825158705187776484044511624813224892632438126313857823042735463490250939013824212911711137612979065737988247735668650599974857528820407651348569945647685338020191381404786757202055837885731489670234699148946740805961974809852305594809837693410727055957436798023428301954748315046069517646562496895856229483406171506154071869230593307496316865813533521997208033113746245297944435909042036458431029326954880417627204024486835801302638686664920384021051228819685656626600984923672672457882603853644375154296880819605338370683986567055476072219932890174222611405360556517225521474818498086143829750385521668603968277016447277412861693035520408327820276570499803516944009173299005045758920755342139257846017450800836431523835480859632657198284419515322424022639134066465417926663510965409265934300557872619471483365910265780472970032120716003648139281818872740526815468262953023450649311149585345321234918081734941316667081216210819364168277086519633222139521815955736088763829034179221185157245681405018980866752013947713394043583162623769613032399364498650779490798130948439719301673961132000624536980092797162079427689152580163518131198142921033887898943154839105482766773877617564029168227955889646939738190504139347060706318715708205445709621832193579338513379197027499565061875869809078550260014650201793177888650019440725871107980956982829544270853148978372119433594033749892132595687351170478322522828395932214574516107113623961330483707112418331752467721389587607727063050441042560375259238554808317914173619663985477338704475098144542987913880937432517962258590259235197661070246009547394676089307009424749327728389377308025188321923991688769003372801001925349150919366300705064078222220455447856667291992668093103782446337229849718176051518028339916569337733579385631850366510956625347479583987988976368437055937611411678784025322107515975391616763219551389950251570076641667870469868710292287792181460650820180192872320106665644032710618806138797536960460273627230159122158327468835845624827315729394734741938978399189731436815312850991802650579661670753949171329876482224264446664507516245520110720161695403834401782927828618018019199100900056283879756403752661939161161225480183513536658660004998242075562083900434449692368143428581078293748084578988555703462313770970013698747127935430219977456808880997393998159616463099894856924724834426757384638824228717039641274987613097499760724525962695816895549637764876842295764058514392522397509874689593965300072072596583315774502752343269702113656978582596935104804474390148746077187786913037725347858640401657400240203609822991445083101756695112871810177410161792674026213090708937126497290044525232158974494314256110892324117904725143872750773757801033552315279470998227856755527428218388635625399182805601759986618482008354394428646874135668038812914877877802645568445010272019747066290058674857974137566291373250764801923150443753219727720766338332206557860567793684015790588598459140072946813865113587648271769953965978629483811218488736569819023504811857867485639163767468468222104315227783875590247677046328430390651480032684464189345024127444885206383086744485423988495526220796945009425170439582284618623651873922083944750622186874431183101736033938626847024194193108802451844023268548766746132186648082031742681930610981626854651421256738961732997489056949580614974908442276661516249586775832861497429635337335976611129603785261374349112805458520114352193661649904356478053401768358816953369467331505394889490219937940190837251384826417995243007509368567115528415951492943319955962857091512074415489507911086113912931554410215766206533465545506091507709443553122527365788932453088895417962634827851092708698249742342637132688756854172169157799334284280503051077842557905915002476578305594192722195818317911196020928370365429607723107104707204901520687396801451278838952557696442730053899101748593111799448084591663253018406485871632884080792059111907806601064440742911070017533375133753791206571699704019979438053969959631243688272217269170558354474199148578884982965044220604994229914206467287217770712229907098334182942105632390771526845967274890656490062306884888033059996198209754970454328508476297384525821418625116807640142688600387836166280509346834227833905771830233500805476591505016258901166392987804042352443679754903249471009734028696197392970853030082887703746386373303388633702463820849283976825445889106754225308576664987291678651886871655626596289740614145203449316739402352069119953678207568380926686767940362991124231449014845729854967014244194646005457744656477958525470764441525301481790832283645922082647910347804739773751354953182682948399549986051864766664012221392449340309576185536478651340546925688553872854883948836298930028475792802484016792752716639094610228848473602086704197776640395337468410500703846566283368857190910728928960526219435830815400331305171504320620500280284296120492869733105655826213820304012900259476291951972377872127156444157871238398665069668542312061836874079351885369791955628916042095004013049770855439709640112010723818008135526140596831052050059011286851163530965620713411763599170071897304270781684672267466260755080065789381602369293116625466108385684417179269961865465296999561753778284593367352187024927144909753055145852097947009876587595600683605060216238934916241730578473751643917730515119361939421172890726933588672483572179284074649504935170085436461031208854964667338397301437274503467117026080305174029840287883120570517500735774757587472610092229644707908977072053090731726320609425494493862972079091305148210818978396998066250392152449318387095601211430757280676414086813242203781364886225641496565152564997930507090760505824097283955494438196805549890372087595139526343202056522744197811219180476320458904453067453245105188486916910690807606757024100789630482008039992921978236457323617742624087664195895174832889534136216554698976704159403697967008256026027033578382953553436470091740490185063801673043793718754307065529095446693081828242907866349178691215818452900765798889650822966443748257843331758171093282130705230740839917702367730502346790600621342060827902639603814251775364946962804692283393375684782126977431668759246090272341267075419691768825701368200039832725013733583285497105509230970758558702282209743095476821245567859933053668316972285181403403698593589008535487041843418303837093998365535454426151434225387080833779632967257736169672279949824024953549920096554918685090939931612965775887258526685261074677496789981005863722913164653678713675036427525938983819379166540989094379427744778217269260763419617671484754672623702146552198762067963066052348362107904223590753578142476904436418226451812434617416234981689690349674998187386069716833508525921947426469306204681513183054080391573195762400685990254156864219859445382903776986812897584910883289905943379538790056154793881447675378611133687651454332015148468234328119646053565698734167066405991059025174666547853481153681694084785247199130909103138958934002846000466468506831910185977627035372656073750002075728129147473160908182737385399823130329718321759333161231495831893310921054911626504520199635891766671873988935758412521366384483076526947435262426703826636069114312948752569686501660721304395221630856337854434066823954316006547191824723848634685536124973059948448138505774724080525514259100741196018545560668911247729243232039863112793430223628588205536076851035082197217881807386857989423900303179946215209737611205947103146299738147603327161657030627185000812246928508175982966790507879089626270438183436180883896839701494771829249798848186708639129458801296985736025926447987297909684862330751662364420744361604108740329478892049408596551755616800104262659193189441608752143738099131512800205122050244294156157885201098976754395719541960889300132584990219616824421481273962615440634160828105339221777750273645125652843720452088842659640624577326864165919382452001560807779028584932414803668839309563178720933698574480938943810102344937431577829823628705094282194291488025848259382137099342669107191434587005530777960264921648169935149176997977786085354959336032062656595182921686993019878882713315934112699152149921744570022664738812062728069928364088447400217197638409180539605941314073460427421218925507953361282137005182250169388833328891874398151844358442456908401741966529104434464726647825063668546176232054714292449259792748185793455420346421099013450019719627039072530173951128407542536817490919033473410319691421140564293109600137108218504565669041997078367488376335418166324464289985880718010756028644981866854998751285598227470122465618657729573733444736300204710022488037875522324941309173658757485074969741283604917543078971000890569993120052977741063106820792728072074618042633035631254739860701998105924907982579667934391722771123782677189549969492935055702678439415740549897355290783922608198834998100400533820056885860841307226660688785880053017151011923063169607160554356556014115372465467000707055276942038963210716780880789574272701040897780606840760209133247913156219486770406226127756465678125835325942765913078030330664519186450382222586539821979209630415779997185930966018177186722393337808959687041298397462774782998975641479343301758784746102882636090823039054320599994353286891607277245881488115892303161198486111932151352981983354700407756345136717562464169588686619667310350457990803692939979950300194227525505456237790623657039004048934180488792898192469801667605601556854380461835528498146793063719210062380525569854979319497956237201562458405922297137834273590444001556977321556744049795944666668863979643065738521282740590529732409677526020263571836451549906266964783298885703467841788423678804173360794210141112101086454241653166458675560048197900577531992339915915953582358240733240680050393516792041468156273491424484198892545279288087935619892628922072996455499435418131761597949038468524665146530408050391035133744833381533168659013204000041692024291567017399717677392713857809609448895303768687544586552399977805788125124825450244021689980008824490982240750598439360529982403950774679988073106212506812436112999536212122343165175497447377005204971348380053586331992967313879492670195395166356356700117144223525510006671745476371329956487945726446081850359331368453118760341988057031668763526521052419917863971444350802066133282972226831572257546415765922507495733777757286944270723709599905755634970921274161888479157535116898115925707040558539753058861679707537099989087405634571726135527637119480225746541989855927451585041609562867236561182874782533430026657438060374045262040087094787620635198763418877134345572395102942231438111634305947322042989537852784055969359901874873408277193998807601943903995590802344393597178418187729082075263239077328635111306471988623650179185458885317410837648936752598185657218661971679363203134924767826553054158305342910287196258659362341772856846268254234869061897875762696129432001314100582613147014880960221839391961746990281236269150476081549712639668145789511087051728871849597876196967650516098898871552737427643311297877940888447032189026663558669482229852883432433804907928420317216704927781494238369153270355181252816796801682449322297049696911566240662731987861016425828868176977661580640150078555260501868393547774765848062609066142999693681382538181560400124514725871148983829695069600906246737794836541761468357701927274347227865192241117180632792041844522803431464044594102789970683011012392477794629484076286649909193365526700593394443706759120209253758487804829471877232104975644161492116976248697894755334388404821908196890454540675031737550469326173673982372744871643615810876533619407943369105189006799238123038592775107162895002047047639328186196920160200410124684193250129401777324616675777207044714095033388227366063258143015010314660059670236128353908097829246800895947071422662400745467567974387016224728820986322836954112437542033689746482220675924559089282292325492818000847861348500989383965496119830250903693778675860149997953223251398235071912139070489737482937639520741543403011074789322695211279321815872538498744647879977416877306488972180486120647423559813569843647298395687427987480063292328918565958207315538974949561895845418560760526046350373900276072305186976815071099464906168954962600172359492852657274785731804727022224648970397694076291067326199792426382894128874329154422761202978651267291063548823316123823802406889768733894525490214710184199768390757336671879472785484307153602689680253445826048602200319701118494492665689344847292087926953969942446282869817598042719939152092182451858053376596442005869661075845670612076483517526914289603420016334658896289815100273460257219650753351423989173188942290587921069957447712885145110863556003106967569869652933299348551639805816460640949333967076678025305062374701962264151615562810292495224825679094568550308033206378960780872703553636076153242078078324964376418138587204022409844940417129114421663855467219859789467830758732322356945864074167156509613643462369829794058932429379102844935516109486401067214222967187878476290611806703511293628556078576539211335556266649613585470586748456416715981842729807529699563467803922932492410087016401524601151480791392314010840813745952033898898127768328026644986412647167745029537480810540202937770408880432355911193710004285742510189593291536245580289193616133290821558024822425280955279847369762069693822399103480790651959673980377099751818408058657179590938002439162095200269399857780353886497605571985338644512002079490436034864052192775499084016782523832056578476890139754290562084560108894453672330456619987798330808104028178425452793655147491556238152914036387524246121757497548505354688591937189915836872659040851089908245437258935907756914175310292778512575615995236779196284452378322657232517574128392910821924538280399129117914761341197625122950145721664895084022614203825313123583395800584485765494394141901017699346748158432683841460979523183393428419842738277116846181696736248489420404178362498187335624620802150235222638351150640170636910340981610664435583040501267029383075580181350100044828192955532283750452057445867939684317057707664443673988150256861688570427037706005751915933930019174300306230132096005290095704256048288185635608209773114558795509284704062430913638418250168303537020864785965345012096230847208526939559438143779368637160155681891657014152985123832622258220194876902488294158383011723746487877923693147322586354601487215975938531846733741577187339166179466470218177179014681647734534902027458310990904809510971975745221372066800316803832451666336468276367816708879252633373773291867061362221257096555614361831861255426251022037377603380705415741726568231706617357746311323395093383096831198353139720273869413081826941550812934145722653928555480193785732625920636469080762297206753960053315187651816711577625526691815702488313229591417272421760321358321268351639960469886237794605335040472517596493782970825318755606952376648087011343020964165678133477812685390840347581395168174219410512941264770217180679127275833925474776860377802698992202962663393762576123964927785141141646750967327177502343941251708831915405699400213468192413505718433493115428791183841983873733370068360460336790297886470088728595859012068819130910671843291323657876496115300483326567872750410515231649949251488343757765860827685036670006105346926885167518319253728997023526782064377581418695022443053699474191009135245182985029233711548841458475425191590307975709538855981480430157920798974299973748357992293546393195840670210130106777723437846396020444908702249687390950500568425256102579763285056041954157200659184664315927831341050920787316455393692055909930161129302109104576864334425168348571229073480689808849589724055412903423432596978533341281755085438848661730429912611273582957339856579156157930661957996977677658186977626285741186858138209679648932096859893826795091550003190742941518800708255588328848680387056238498594963874141717995501902115277052175301980407645151501570217079603707437345931312858726785160819976369714620767153719952136676586599194716790211359235913762846472707847968172435754905508403582459667240304852784668669136177683209507669691028876959980927041044696465598403097734869490798002396656774687515755979980742571974252667281987968271785152102533572642495494086144852781331534780746890590867325466727038463172661184507939578158663201343574011892038637193655013099813171468364436130713021649252795222561229439709657384949112426511639893195598062129660305115016917611290999958416599155691578869088249514011057838290050658674901566976772725681295049492499105007117858919398191905204636902009158022641150066940604346273661872434079244688388644916179271089334662433689396373110826130053625311274039533000850344367425945211336944605498933119949523331285837119534512998241349248704121568237438353427522032737326234627917730774121018652688309808417058679955073541768267146589653842390539635484558971526891546443432008047999763012730096519346168883559172881677986654893699813935423946149423215424144262785280672793410000438471832096894485958092871629957607321411469593652815595219776362043230848572856227711271687393328503139042363803442693996416906730704324417730657262524244579353658003496266050169528563116893580871271239006743633094495543173103448864008383053834897316338899839288952863783993488869927291432499114003698956553939283552535923063634498024794050332739656952364822684656362654506792830512596087942059553789193592781414265370038605505381954852037741019525090591729256266086489496068316502549728962068964363307726158304535048387069493107305029177735048472093332994187564152934844572446788142133352344563322259023685856624513129921874373758438163255152763470500493371167836912694308407480135458559693166358593164518763232256008565264468511939640185620606534019924737616954762021842918296547991362184405235037932886174173225147544141413867314787285849063310079935104204010812312369991122261343107067126825549098115465342871634664714036886425598326068932124050695925874919945375728803427416799891266510480305639220934463688710997742483418671213609406611348926147306746045189580909132562248971134677227519003081491450998424352048024921274647696523904059927283115019124692579618096177155888741091471214939929075622044245293129838516542841207938746367541818758378875926671863003567333925125810889894960283903816051638209023795578992866250516710695502434627158281079199388139912343759914224866635599349078761037085564267353126775576441708914461899503730909282711463621503618509882001447896624741402501939416167650884681481161331701884454294996028409448119938414031425979910134133133287044566648364006633281048800121235928089525820937365628729591411689671749217579191171772651575558934254785554681722956664926660558901986010928835376565768450114560711365656318047453700412054811289987945683126854316030278083788352735215214006025096832499164083654123988913215374397967808601663174246893144522072974985917200498551352671706675741106141783673119053342132818130736237903292063954537963502712754784741882505845636724638029931290629806330305302936810439165009525901836294945289339117530473109606021441909682867295834684890180797510671116553346058319079158482467895175616829473226688458214525771237380121663650493601412401927683887215334996464562898410726330597306974193354164421766297169444473825856565217886892489412558678520242505785265258754736350898147106778516647421898677934709056604547414121491192400555379474786062348839573922599777405485341982594819766840499446280797709475323626196368968594285449619332113685215507695836537010441524965034523695329954335436156268025200543676221923971236604765841390798273312837132692076574502426638509731130008119669294579839303827316941966537592006141954428296009397695112477564533401014735849597464739067254461713226164632605749153237168401185311787850724012270131138066795175110655301226658341876280983538187941951657978804821397923253094891255243357202884727225969537394594806766820906135146266997176168196692147031961025940085189102606003400646912667097347382466975003430414568079975128999852906408173674949591465585349630254538478934054860884134263769874602409122494041592892069137805417297699638759496135250600003551233353773168827781996250848019472708514512721888305929490794854791950494818413940233490549943960645608872804859705919596395112141850284410360668320195968436194086548055971898856713328696932653546802637202011754117878664120934142202187778295883824192236413408995663633728075995495406230822357064181011232983223354545225960282890526766473843268188309447782681990026635767532998094696705382677782120103574333467975699614019187124559364494235139746080442262231884810746307572953172719303936143235202303068339552530462335168314521119239562223777781003524081784243409360343975087900660263995415115550934540063616740097639846034379236573762152531018719402555959354542679244102957812759037588184221215277691593822184517609940682572964738943604533221413445574151868119677392129776510652536448463853029759076677879671309426909229755046273993454845780320815402340333571297832369577487322706064900596470620514659238193966354902958329793658930285369824699512727210341629502909767202791033280297312573394744656276626896989585935067369335200054115547580241972309913412453367472753776807157134711111361916686862814712358317569969875127412936703858303873941619062509975650467926103814220523064571790331441933808654130172930507002731296010828340735835118407881042662657256714528582344707175150803388140484260380476570381802048390965824305831223518019499159759549442932279435722038370298098257863039854897917065127736821974059163402556796249540463709921444665021280282432834898833115400764640558055346328435223551087622615703857881134123138776671447341811192581947002345773319822951561864518510681661452931662780458692787042330773148346486004109270697858929404802995113532270732031466725289274738169547922988002106121868844022095161814125848829714998623248876795217925930653975461351027206789686280193298019476538994346926379308035063409530716932411929721917847505623370805121081630353082764488479469864765638298535853883810575661538426374731065144977567809320161809746347219832905111845280767736383880375766792813388084282574342427300039999306355720016852455384574657639125055540637232743127992293316859562459598949829720465371721265459824901017821653826600969320246581741046533163799730660041657883260182737226549467618174865408108264534328948783572425527539178228271701614345623896083091769887080074486066513413996231221785410605199902061093988903706554535029722741499776233607117583462791794148262768724659832036744143661233067826353890137145330584438147263852019416886008274166935518887599635879898826295320376364311817472206230897104957545351310915233520578759078332029293901124656825428873300639708615215017491417134761923715210726441344838028385056577624786502081318159855570615470571141327898565903464709566341568792822905652888795881601542047262111998060248115930839152659932007222008846009976978115254461854845299442582035927718694983184889024822105378048408083894650196422762675243011913243084526121935488428437791634163237758864636424754343802698646548422533886300669250280964610262000823464523250299683292497429485430063300440116187416438514887425599701616048311606399019187568908608636223914031913066571625767355664023782743538573485324462634341237199925289395477688802677309963955790968515318769290880503715414543341550684417473277872085892926789674299413261212043232426100179063567077873172727594098986435826011821061548007870654266639074840729869123234759149992575742989357069787222603670068971288618865259693493040843281270715617189601536284231457695445763452788151507717669228586311786435349643778491484270464876396402299948278107025266964476734747481712313222278953717736408688365808611156189220874277105463354261068080120377868322379745370133819084538425141599953838156473838494705992751565834925530617491389929474194288541386565677055308796874859507454351738876236924000941891427127911642402535543516086190412807095243519540802234539458136066567785622208190097493033289785251763714566678559738472332328322545334608016567710430862359555016274797183525501364417228047450376711635692646489575448875389122797671939281091307984397461290242757631801016369226447828249834874309184421576046881058919808065758316424268763352278794775154455021592044507030987261440533509103695713556405701930340057435367355916825558464159480432050346715111852811969916393468934915412739952920526642806922259378789681252101089623112229942756942109944045064081810643847964810715258501018071085287306160258543470250834447767610264407570340536296257446488208590299913679138427898933469838484322613992915371501308827610498478386253631434120510671663781677710938348789724314087770470380698792340061375676690365926581948106478949195820341970572207782896017791999304047368998817250563078594708963146619774398513939218421733894174695805909764962175850414132610948337491588978407351349425378021202171704402105517151225276978696702186505090007057454941294975519378622345735979724538477417066425452039655761308753964130974154568650123992742397873404168151977987233942864439703830099703999257049428327171564203207205895301746430691831123266471794323302495993948763266298753595913997588981172970582142203264464127098467083164198607376423796739208817933408819723573562578200383692216397824135083832046362805686434050710399570380293770589035028497761084206180363997354924337914758809112505898538648595638701890198979902092702350254124610548598185565852257844457112507832407633129961367593627692709414835415016583208944672978393038573233455164459723347537213333498761896813855141095258652096463671943012005488789608389076292492875187590223357042144942334904433776020259019450128020956406107061128799078320495365396206718025025254772210777646237985416855929569089669223928513519385041395034855482179447059756022012680832692389069728946742389853252704871063257228388551345055232562098918033514965391199081441782284630660366512888277988633642554365088041509590582280192008882092310180649606673404218735031999957782537704813328616956847165706256792093266224853072949690312525533645789325524252781179513604795447999157331271757815679614391981751397674362532515180287105382700632189755473042076821718879884971637894946399535218982129501854734066907899863289594183890060893940098560136319593014330866452778861142850914892414441228442800085419247430117351618910741464011743817860285415442919376635292209291982075267932708075122797177127225469059845896222852105821637232183161480243090969486013778742246152671474769076108155548545399789596057056657469704609750193704426167007679832572725180364352377160818462780251231317603387654382704321560824538888157836312788479148537094478779461033167832734823504735601360060357857194767787508180113221862017954679745849537306704198165294580731742539837815339165805581331746692392542583894743109495265547560731083839158734898884520069384525478700891979637728085857638895790359127616750625056389644243371290693485258980069862487383431092685939623551195694493471395748094920959720610773218050350930184915000263472154780343533294551370596078041945550585390222975863057144084459527803658210102320827012571658672070552574959395202381392390714614653245043832968812744203658721562640793141429642048960565699390620195936173800018156109938118582035851897883259971721150848157169719594447681521123224615844749603982382969353714384461592879970852993145030774600603420766683848343765305285260470922820968273169758329966296670618051725811191093346235414935467024554119351656466174704174494359653572710394101282527216434763762608812656792443568790989430350503873623835137971293648448656855094612445069114496485396837589282103767663874224656818405950404234658416580402941468644849703802059721126997149243084682710492458416095273164180831512113661129628791744002748263853865034207268726306396927270335574116036906964103816707776478495895620712334974477633449084396126862149451963371878032034196441151423817132436227372670963827736377935341654305591546678789036923826116645786141969362611163318975149907606583995965740243322280237501560004124434838333988440527088301086079050163042559108779611916664691334061903269801881076547096816404955265407311558480549069524501497283969168002019841486341377368453789177910608716773201101332442964561270079890243037770523528104128119073670688856631502908801467553890012752604366211739147760344681203384705266605438621763006090247371411061987336444299261084326806466795801627841954600152524103289042279246324320497394277027431840887396479592910709285643546496100719929210648479751136954806821808527674765021581740998466501837525699925271981237325938348613157028691363030771660700639935125799069933646812281918165173992986949609072595253156816626231384108070173123178902756166644308397516638191327340101561228738955577276397682421472294028420295566754841155691773683643217121036117368088568059027447235478240622453630064373304451561382071828374173871917914928252281152514960829194553159315845008150561574691689475572503796897475761165155155146746217115810030750043196215983620213038530267668267444475623008419492262393119448355170074140771825496263444316050717024293407998247106739360435682768829573669242203660088378707457093000974502882204839829946069203444213312386210449636393854050630039497158493324835147739648998243319140801926889330172252016468678858920571379456887076967002979128445354347029691245616157838744264735820778899650795651871836001714860064843430299477418311021297761584447103423837465278590318320634063042974695564723269496994930748698144324272021271751271649558639657516442339408917413992675632193510151100865687756284637972469168512919058432667558322896456122590563626408023157826711689142044637441690027948529565865981623516411389530070286660378949995107303730348181946593626380799297839700103635914655491499452179982448749051995812624073454451988226415183462565591718018019427064057828072088535474316915300492763212201342074140572075332618698719481978609469777680225093294243477602293409294395915541722662597964210764781945079030422766363282743239344973906632723939425753659338751038523011606295616405971685436350954808951752964170549930602506042086069446471291502464046887749874786196087033213865159779479724075279152054829409243525236079704668181790487335561146798275328290179299169523336326454690109663896233142356239077440246271474406725158412994419642304256665131532073405858749392913465290606514343658025237389546581461408552746244628590385746666603743869394712625772537354645818091161060807868526697680359488206822009191157672595521379622021370016606864217728304568436158023437435046805809701729044108835014761469909020327373793533131870620261590314372340453009525341672576819803099983260312795494726105892453002639436364749603945252107975878678170744502000939243186956371092310972980002971404209655128305231768519590394878303832939763062472142916947183830727149466807316122557106574984653677862529826512768357802923790655551621995622066282874652358024232541002325704022484701022714681620155264480340567441302691960450613983269514591544896543204525027478500434945352013900039631963720290919045165959785356692599170369713945210750035414686456903552181179260004598668132729549881388491806080486675712807865817060317644429573079923459506392942502145680709864589447052338751462197386635567750379001682185781236969339435845280710450235883503012825801699785748491632380005574400076439645822744427944478568151122293865767425985451504303335980928011474814554230041158852864173445904585385728372275790905863754637459322636380888907343728200871885961547411482622301654191066895145458443761074750347045273921059464914312093126066366921273719888512080252875742539656208026316756913453702293508351676651997706287298272560066381109856377852739207772443547143879445260824981465730096659316888166582584429713285140554858987047352994291467808730845905283758855129658858163654721780207053211706741949563089028699282918311553818739545713211042156643600548092882314713578172126310328092858618480958123948422093839659418012405398834801815739569381325126926024220979379921665732039100538760144624764130592649198816736492721406847358976886651961018100020699820689593966563529657609913545922981110130366204502008718362888628167687511736482626129839856069283738270561521903660216577005995395214266262029707567409166169952675059913739793553335372996694526558539621024142372797767413645415599490872897720371686648553511462088761903254001335307164483101013151739358607449956781632358874728498497490581171025610659095599570741400689408995434406272281087649107596984990315108646343854648108509903482869828354528455187286775751615093427860042076586893441461324039447820803123935778842672527313801293601618878733713653400468922954801568542015622231229945447237420443606097441079125886158181594218060580488831757477592938259635563051770500140656180896111424178530587168299435938741012476203368888129075383888051712291738761650512596726718727392697964955765145501778203475233764749527786269083920635196208762669075476795151132712881259298731781088560697147169828162617837504582852647582380395991528428984777719893772247417170276739115619161127057248384344426960819475951292790347229815781541143604672170290042954884172275493911271297548128535568744318177581601096287991085766015921723084852203822621913156365702792360227652541452545591433289570273780931182071649034621156992875276455592095003903143383404516415876668741266976214209671621727023199921072428988057729044100100454414875990815186105948749206569374334119896160497187203092572818716105233635530174708127117999305455000917142201947243214883442151302061882878322385749316964365315879103904590026391155335681962178058428351732520791287242772304261095971089084700699431329973560949717984271832617026696386015241348022957742366503479353743382788936768246755917456189283620194252057728479636165764404242450002086380143140263777923183303464383078659838144477695769014137294793320321655779382996594352207488576787561166734286814706072014461197830811012585413533900390029864403503468034141251342862084172570296982603674859638973325362340406421257954206321610418527367535626528165408013605877179965085816698134902113171891329857705320582327255959568831614716469399792877867725016724396958972857781916863513473080949936509032448530684143850858355303643083193698409520589931288727384945636140088739109246314521167332989652290534114133269965620498504817902311269048177239338493706123318801710563790386335082876146738277298180249552525619657975805442887629967931208393646411866629260504819391198251800332179723866513867380034282250989968591401911660881257838449714065178315356833658600211305689523240772450041958751434850909495471881211869876636347106546752744736156080984508923182669476906233573680988922091324208932943473485696691156955301468921872108210508482311593685839096442262098784709486510367758516163418625309604778887525456746483256736033713980301049022933185907478864811642893644958123312758878815771605719736305035998388203407389700641060241040465318888996790134194470765259374371068442152818307911864004088138307740479125126673143882695439718778085107915700600651996807063382707922132464630259720613612934813860519096259275055503071508596272948210118031419525125180502700814384781413172910529951749292623464205500298734560814143208635434816897389002667846622246353154356470369019139830126906013224922784342603566389031553700240068681900654521093521289160878790714814057736431840844887308009305494555269941974739304230437420672258595296259367075259526556337319593551050960091474372430830433118670855702634254640795982162513623199099459808972347093347736618390558587154718318557505953169034490729818350942771156409277410041262312937226426035686615942073243841395877720025037697169693156442144476785064872353123382863508814890251890918321015520126580343352064920539082961883681513133655881981772247622199485490122352929056780614793256254695256830406172237254838810337574203939102282538455204047156898832522229788266979612974927641481525275522706576796402248789190648573162303339763196726113610176288293393040040149742184368983992667429179536549962258470598772856780845920809633361852695285847932635600522878360862186781061386614561332212957457141435461709521548200978248347427388738651157652377448087157850285622420458202904366410598356228623817956480674144626998400470472232717366318893971252986998098364476665842117381979728469923027498275263671983917566147762201796482500368802253476811448782024581676995059266650574759998998219092433993961084547681670400226666383953600363350425493242287327186174103480439790460569369444345100821324115041698602122620877138822934181564610836460366345209087466475182092405701000223087814324733141291787794795696677026701485781178048031760838320804419080185724678952780914672698392307214433069334744607688553241410381560895336331627842556066710488152884044115482512592850153313276297222855254595195408755811976635052173379975323565476208030185653641345188461890815356838526269724361756008485807350540563950631407806607316375617084773012575954283572185246852425807457336565032439231293171479554350834902508840124283900579514779631037804525696708116503897319575144211544405632664339149145234755956924977039263805307936618547790837816275794899162637044672182028384923504949202179451627979731756143025223096354585589686965158573252643697574655924175252900651025674216651433298765719786752228783797586386088825074847869166568557094751506678370117260607537434745206008868726734078021604109804480790397023997455837164980425128150010301349423553384451632035010201831685631164384322091605019960673913494380398950644916766987641626882214913713587119714050484405984975598205331350328322457932273771234021207081012582638024645135928103577659741778940432022982086944752953704186834620516166328278760882264540365941795242933296126127990370805560283895223594780629028662662788119874239772431154904405119581221947620992196644271390549352624165946206889857754710578817563952899681932392374908260907030702298331197071760610879602556019942775083262562544558610887827882753549366503870989197581629955293686915489633773675287643118894836496318546971708417875907773892223534956442961993821531118062174544263657727831307335275881838582225278759853752974869911700376993958358717815311067761464071792213066275046771332997686577333281701892807673148877589360576963626781798112415437404677321219428153993393718005351362366648338432435233744484023836788477709422810184621399535323947972697563087972438838436709385033693591574661268405952072654018488026460805293916984924765947123861364513377640242428858712448038851967191502332138995553370648757443197512652351478686436036421907478016605258708142630279990102477619180310668192163960999497664697493549810261651285529793114059148804210825357979167022862917198914719418130403825174386219765588479467320058162285380663676617749694783379416368260202067012018560636644319318372985396578702027183924602440297498617776276321816041220148864944208656931067853175190466824130211318897476052072163506311665938386201490974592702851067909954496665394721870201996175419468674462113399995940352890055155125963213654150084500944464703416095792260661560766186950469905128545223740438206946322299441717765088507525686709232839141751107663725182740733396058334156709283229627374875432899125587307125778112804167333433569145198693977548460863383346595281973764450054665458381111800887505105415300436067452709898471580432167564298520180967180111520359248498481814250947775092051601099578900231431873217358514440641735025926657728292863483632427812995984691876016326428931296763875997199717414840950451781590273469932050295422293542816607943506923591055813429089159553840502471413685483616847581174104054002822460836282535456135576464071904237676588292122046119418946658359620979935498853282831591234914210508087136734512149582250060034590306405503647544186134756348655033887111054325304686177936050745206405053456099042470036929566728950857780982610943191268472255769134176359856011757823164576003080120109922806108717308361601773275986047965550142816349510249386587667851952968698721021572354683406659142741387407322981153811709621049833376420235768142661012941301881175009017553994453693443460845359659652241857231135300813464670458326179895413606909029475997021023362823597727830300168968611842489154101765576009319719430074255500737454118947812067102892813725434688760227811391236200660140616694503018530687665697590592574805630767643619401016753961713559242296260248823389974025422613258586957177934060629436990465186598893223319701334690996207989805247226977092014366111435775722672191795322307063303457704933314565862730306105654180710674708831658863145391031555034479329100358531249748557422931403420092726025862970355751492837056212921923790103463647391046014284038343553095196036631008602547987433325560447085343797336812653985167934678981409822721983429181056534400201624999392253980990175869186429704194758077003971795699048515068100366228582819067991113217283188732220171665878577935068555971010577950321413520076312325738082961476539487721500932315934430546992327068181091600685355892308614163136116358693526096527585309851291241858292467245414635334822503993332612395997451654878276744338735708137843619807865147966056083756121798654449688288770800108212619752694436686413444017385390946088290296964949013094843699745368748462121026278438952526089590896531071617311475138749533580141143910801310471136673034696909190101095405763730342911309838241144151392535494994491133853481720572269172474635533400672912356796058863853070116595889708422837454890219820243520273499938518309676035245894638130067818964282760495325989593692497788502489442232528233753340780256967667814044847741414603279818591164658701495838110279704067472195912108501839918486116192803676161951533595126555628842400411663365548137196467736828908552920877464057314961785525093733966861093380431635348829968809024744303547734571825806889780805872827126965651732752451614160995277013978595895352575924102061252592020540525418807334697507204472834221581035592269500878761802747991047318982144567786162413510089298057908007147099235913314527207358330292974023568102204709555736708855163247923497850616131211536653935142339627625700391499119835201164742706018049964767618584301024794922578460272005290496819145626176762698839302286775725718963654315248769512574193491813504261949357818606328971929738932825491570755724412977159673461155566531651623440257794330143806554396317602396193945048159845074624253079269292468322333843672106578093285891312068677757288468843953408834762584250658882883124555354402949521653935887263903759906726140279759377774195680746291863337193571821228389840116200552186051701017965888814326647022721310475083199176958329527014824871197217535702614436997251612878539274913945358486270601215404103599668099034824982973458318871787085277108770629185020620067850244132216487143525080808639456010425340270788128367673646344935655015998451680697005582098671553489189547511780372495864201764539574430324566115323385598093433899259297550084824789452954175841568470446180521779237724449776353305341654697890586771983378031784395489586002186247753086856070077560883607809517396284069928818252779707296475187272535787156870286148090068690457932854465597468598792954724332172712034541065098938483497227658954331395701624621703551720408172415173852304100784015653176147175500518718046746634200418330014464393291266395332229212038255043969589458070629225761149717507399430177301971051637124960059280450504250500378967370999989102785344871811892317702781325779064584531536288404318611000966494344046406587316630974647923127982025639536456162058492152554099488764966193128682707768225479788595231591381703558554001923468747700255237836377094070444616440921180825044996670996958391355534040358243758882890194381936673149665646431264498380891311375908092596297044550418042293023198138614431379168132179063497995776081923589741604735197862737481093058494117065612196724861684286072146027337811403615036617745023560779000332245321969364605307320073276055493448879485006705392756868084936302939670925033388265003453474080338608890634923009092461598264930151984517590374007806467869740385250457260457101703505509091496323569182488706559677981177361374578993532299794168663870060515999751197478585591967233670411627638933467726343589670832407095434427430018579106652098098005458398096259440895316195510650541104882764612964560384367780290293522116525855371825520731829581530307232546561262519371325148249906217923596509242564536895492547100524565950425645928864818299267055757447059723259798882297639749657612175822953236761672121522165146213851574183477294239861827665935893627618814786855358961103688640063753637375565510830536028545033214040765431250040518247731728983256993005634168411895002313908137938208802673896707974391408693490716265217309728174322405035295774940508438573962307639571879138953154081894640359228380338963789129478859655517792221327151893566642829797125206001421813741602409731280220464238616242300165980081919990540540298000551238104787562479815778716222077258063232794244871394092578240674660746372377357187115758647571662799358495711640733941645505886314474890373430912028613193670467652992886474153677347279472141007639849479001901878691060909727793555998694372041639342550725124245441438464060156667060663876691164968535388565379520343905570274293480347031105139018844558602852402459643578252911779252221179935016119300694515308093058752751554168347748672461682053606534318086812651826014389949591582239224009459997600335996432531073394543522510209659135994717754427907504366873087308879342067339589728409246685592029387768949358242971388558019719527066834796894523458788751198795055554706449166525841960526417030540014282883813137463686721633221150629064378719174380075758739168664202368830519877212535811044220091396002310273119449493692722637040773475837472374957977597911561589520635322831948349467566178563708075096464313844878307895074477270417588734406806622191208791257623260738553207882075662940047805511178450326215480220627034070686999857219946252287424864930427122457552269866480767344302235625744808735335133664153477265955252827874687553108753834751668466785678399863013351757602440891171913242364985370907641744683613046362205793679673240351548967312831619831648660513751989830954899595741284580075535070024306882098731344169953840988287250864195419719762906460599915284314399695700839110773291384858729784398603324518720553451778994137679244546401160316474287658874828687153019900505008337206481221543329929828313919875994212322231400358108878986362381962548631135989001386350351177831626240968062430295842125259908578278351176074435992022993464640868437138326591122119595384143433523508580792628088726210482228079874710061121998520743690356751117157900032450996344399980448360958988540977099689435338026211224908223856312896458022997345332680188290159935929194777052147202039319907818565219008030969513672950917042598792257288001312474844868915694010118677740210458189435654061825997263692142097138287485944526912688595870886296520085008064163325052719174175384569757442996168605091042731520358306924844692973411564364376835011742431784553248064244351232590845815159965373502677240176307742778482981024694818912905122428634726657556372069303687251375832387057888040167097286845212608323128153263726949359439721873625136546744945060786703240100641816101326635816780687051861055752488859582934977180937381748485347132406422784852354967232530483678290735962475982000515962562438792925356486093250049994060449180284423165328982586799139117865599196216646135048251805389728299070611803722887235612108017869810527040079583692057526942320410189188579645371768395559159176630843255885003550135932242405181786361972538672371713974072527353403075209549336480201647687867333563228385155326795054349717080929105677896103625481820405897098017295022645855007189726459299760742206380218495139175086834790175414322819733829763862398566089034102082201426011112842670893196075584680160571710956740458958610728311653304525538148056777758450276800814267890078243679037518199434074868749117672415034013090975658746213297806769550284885585659021218114052251390025508335251730356661159300989521901318092194350885364384359397736930405653833956270222711678924114790023700944259994269272823554064233088375212095761838125147956038086260901136066127733625320054801905764589404683028884257803518275336820825715554477311141101583580937469413435087122128360062676694375071890534163821498947842961251964570014643665430872597090325706901656938449624945537935024829762944388527593000260801071771276564598925276857653332333986403957844266224736030636493697952142098053629903414245038621057746135719970825554919440337592801111772035945024058934194271182865353870109022558600382995141643484520111481256474186261603072639520868249563435791869320241398267432111464885529363580393046336276504632050960443910973034293431548644262738720456989907430546321014706487243838918988218686438004780780770597183150805606858359250511092000184704919526999125768158841434262615081954814105858480033366263022200161547961911252203825664668866372233091208658718031317579542211444503408427606936074648377303861000312536054309955517099503562602533689790329675555953009729973137653426736992939239269319642215187386297660874713374482196361272266960079722161637989362640134305881372413552800700222671252252432476509789399611835992781155658084514688524175570654809424915996461011527326324527773267619705444429262567045562417736845766629193217509690070996792569871716533802149374258497862017897394660380376637789394245952245790325955072165319880585723903480327032878496966742558902772225953822043814384632053255701992087547843608141329297894945980834947331463469004450960956935927121653562769548035638308031920578593995672248912671269272027384283591188325775487389620126687360533070783489823387905823459682793617522879455665549578362936895721341053187462746610388357238726685624877527369914464640109861537418115156533551491400376439676429821281938538563140979087212526430576238703228598135830774435398743641465700826708188650528385645823558009406025954841380205886634091968452427167841655300333881690583194842643725989441913293112585675333231973846483635084391467689942016340598146017846708971161449500902479881437561604962578045055981292311463086293348816266899213533285520088235137431638566831169790550247330458464787181840870574037494383502212862150953307409057446032027860638076197329551255599968227625076510645549334762424131587059418953424965188178088087025467681356938116520312384013294512777601113747145828370134443043518786622156297396493459274608346815474429422050331164702433695925329897282142806592198398515366965162094754009744751634476988854353747887470054174027071937842633343211327982729938668191561685038418219964579444238438393552661192530247259761227767039702475713774845222495612823893745848181788960654257265083027629263373098323701595502581581526250411093747426751685958674032860590873722619763540672100616390634586360075985205582327770733386546508008861006256656977397475372057391231161684966073150119588777048067623786291413859611489184284835569156090635280029549520530797784882267813066760505713866388599716503304463089596928900741850135341813934798437675455512309330101360606588639416784981698676245089168781099960212789663384039288093667870335989229658944133155282925835356963127610796176507616012388887577755529528823706858998823872430124801308706383160698010051973339568235321935615215079365992080357956978897061953193870896125510069904590392561560422056799463818563771633177550730145053887503309914359477265658383200158095904778466182912059467449386945451482785590563730505628945920302413174923650967883706525448739981101114978612494926602152857039083228605083969350940811732604713212671331403376677228340199659075625225239504973211785580536340044225409439927036195297301232149389442476277754973316961876332577173756092503274564312995453712704942247574954417837464435567322040747571761701249145073998422412654168747124154893894531145172639425096111173989378404748032735234064240797481858491836035540063896917032471445491238362541730214294972106312240887297019853630798337845898799722671736571367654282294127847708368424000285407254915618577252006814365159818896343142430038312324475134751506591245634104172219269365483901420766249219308609557174950035438648912629184499260275874248667375335453575241234986413014372350275532294155425740795314767312559456482296970458768454753817299455304075963371300225937295022498253420888519806233393477550764573786743733880717760028641321954352878272985148327562963890909015763725595691734128279438702365507335725487797591256708984819762387839145272719717056162238293558607563080253969787366985977604609020815692084635547981282841714880498024621791715940844369101497613495631254909088707460888832741645928861441469494377182400425004224068356413025368842097530075976051365077932081641016657033399338088859564420398820829038567893566081589496035069523423018543060634035449193969232794934959661888451738522920740275828978160414645910576717301577388735627286078818564692952828987237106210509256953661739817034380250248885044861559084023091610154590666472305301216578556647392458106876629768516481947322600816091702319626830145710287740489233424604609554627032704263492793368755975283396023161855573929861620329718207617005852447624275469221501599157791919257220932251148265333665497779828533388419790834199419534974080741057459363822644910688921918813476425194637711394021683281496631551766171644290194749903028740754382517106170479505065923670947370681101327315110402638374968010909112565098079417920187285250193044950945694384305977655833431743803074211562246831414710572453583696762680404715775445218818838087501601024479825141820575568081279676166233216404892757647170853246613235810878121343933856558457304394149570097361668339130610026487532286846999433290716693618330572391440806879757405827919795303322413066360779459455289988584221223134405576272196335889471426158395979942112875570335826338633524808318777445452484986469814278172548518406590682425511168955740384963896374552599626162499435117694034308178679779608137809664542102779520308747289891434375291284652945352286769863469274282145761564098429810351316872356437545937799964812018958032724700301730683643295626872572071687502474051667385563765427931186600785542470063725932977408678906501483632787888592076676318246889122425756215027026849876229819355420101261847809025044979502790844630172484980228039330234678570678953341208628223609547498656350532697853490234240392392503295694253384229929854010690908690165135361479228367977065208894445643313983354505791683648207035205316390777215929823043627134047779966724584817917379124168940528976351114501253156579729833003200912105209564436978759829418001360166003871975657838974950942021382892012634082134385982137081864291638697296729718029983722468430949539092443394030147935591078477067456319919913434416633037172462087004293713412037300055496324901500036701653024886923940522197442532090955056396757386968986771618071125131739343973383520795481237776773528498692796197696076266485615986013991699410581048867893252833301772050868822540402227062473411081555610739515574845768156974035603914948690245090909290631450781608109645388144436247448086067732961811813283054282672385933454880234248446158625861204021028039441893729937093473528727820508989826210159261759623860419129920235717588124287101681987735766909618678720761098832841083752976168726714114005219523085318023453491291902027769740174116212833893237028904447604188699488739062301595667482072649728157462172057712570307688048793468988928029666055111306704042792765781989452552216742746778493086444287498094026884404956875062445363277940940786344869470747527770174527017635137220502167279742539022768608569751651598493289651019934234150941050424335434056478115960713939184060843088073419308490913120455567908589860813793034565549406903278824149496437650910872760168416163291338781471109548029960190304697254790962421489817331443344474777184999074135139688703267477211008624450023279543642057729012349299731618952431511404972326277156639936979161003777040297174995144981373652349194070988449024819685049797175972088120859816147735996475484601483773631737991315636950165940591676449576228552769698193587242160917929467408434644056966572061295198933079619569843401021429110220457058382907988520311188240756005940464110726920008672253041243313849156808223568444478454068523461055604873163056348758444105957050331490114222099471369076728911789623553345804042677010157406696956107054872640666520134402542460157912740709524534038801601594284994012100037841800342642381999473998511200271842888239177565509313067161364655402030927493318948438842402591788549181996582752585838160243551722077471644094729239870077625032172542647504109774122967087659645287534648288966076580793614644569362057489094790539505287400985190002059738654517095733920638236521183808145495780086065101788338514037758101660803463113873464742940391623789223792150720070576999408787692125971170629819295398799559850411815455982673821144513155418699298225148282433148519872195772028329318481484963707512988746924741649166565878749775280491317545011323228543662022881880786310710676667748304848567133983568354260967363283014576882564912775991169270913129022700779117110274030601017291297343407123855827276210485648368936819685676904414001111655088143264144039991450042228929270332404602607891878383095644125937389000382895684701140310505324556263904750391093269114865818736702989137115374647146328344656118377310367782876595009640729199892213549519103353584917835225972178507680263260439369949814623560845581127755273333251722202254246828130524577471002446923065420405695761673042071366408906599226462596938252691493689700821476398109137956139349961243095802942603822754718199930422627342871281185100968472495085074862027250412159162387156717120687517865788794782890432759543726925787392949307307214945439432773109841932052696754392530528058736766592193359547060957012899680792982818543238730245051111196748254380658553326110741818604884750804111204251302358533345403659519300415875002016954982819719238895474989098414395207447367435419733191936140509887483898977495520523049725447964109628146520404481485054807848753833468212624330908451122755035095394362188221583676348966090730124057795646063965228625718208728736842056409164569928966345701279724810606498438561162917120560495912972821188378900927445721828892858627202578978913811166591524009447977486315824828195324111578176960111104985373229003792105359467806310513570986498132276136128049192524735060639594409527280186919225797479230366283669509558686423621732151316193281470311211523397179827524078944697836752355524771577533259001186133058922772299082227245247645224598892682861066011404173165819652762280742840686216547968183901492134643267289556093783220174637166161486324778730313749481778120483233678400632345863978012385995526071899401469282100818228002792136029402784263023598684944901887233360086415904329486372885508253177591619585065727789676182451100623290121990654059392380375629804938185358286971076979460360161985899070269045129218603042074979807734993783890448062579366615801876268165611647153239121815787403504767077194993758662575199121868868408317810302001148215983488878458600596523067136193128177992081490034329884941845286588796917505643952237452915627248181095457170305883088897737901510572531623135728362323867676113081615113441565689950739770114526780343990354516328226442704094578930496993157249857139581817186280423662511491745933494747490389825958959084605689418093798746471560378021864523981652043731551525422252594692442221384158792264190484001724796186965124430452443475288717657212699676985358792382296320810242651348737384709920809053691628107070856957987095901069861195723884241999795411908222113270362751373083294470913584248312920475810621183212221392817612421021939575812641594728729878437722722485284754758162384020678165866361894368014471073746983899687718037280577689627787449746525918840943948716336542499653905434977889621756157026922347038124096523682710451621767575620893427734850826737074649495823732714180547244387263244260336128891514380004703003311886545570320290547717251456841450370002744884277034303159558231301484415411865786404767350733078170739307729739515857917266599891345080241423186312465149508224058008324563266124657472065144267163164868945522067582060590597687829044985000689177756196362695639966541132608877837243098076208027065413164871355714681854663112036917189640095162311252339414933774170242192438261457304134044776645124779545772519729614594807097537167503027222731944335646967910508520602216658233310016858051924374200842275514551772473349296141136786624937109856291840773922441142658328116196763544931054734743738447422165280352148411657013838576194047462128890297942314459534951779245372528033103252847589711582727674816142725477855817638839701901536677320015250942003055790531051974470535469878948042361148193360023214615436161523161184351130807781265664882467113529239065687974903155418353640717275627461555964244378685694866300880996857833039576883852521878835357507419701611066089537494394695818883194915412658614130921203717549097647907168752566402147552087868197084074702107630174006442619195156433521697637832883443818337439745998301106174253615443792186032162857906799420738133223030078766697081893227542248681190025558853267783333461895768982623463496871361360624492305068295585212770341075283278816039679141957981425182107282659569405567908643634121475739453231104916836420901581891690780329842226365205221791619014803837002668316567320928622762971323611505651035914317245979277672172013232857931576924532217820096562916533403983721893205883983695505510423771270895777278916011564523328628546064394126423312027641383488920044471285750100649544447824743687364166502547200254924847960469532083076558093709222320270825760148086103879148853348698949958337834666256644790261975493297019345685360368721645558301971863418961189581793003343599527602727009932295421278725066608244812124000540998480965789080773392315306271163103436680457195476994440694441371375297964597259894228604334300558833105029638346178150549441720677142924768575869677251381282187092180860165566038770235218546714459130338383129700674709157257574049187798879441178572556845052244128937807713433329858033884322550277574515853941090017874733906094417360432305752415590922027237799053914371417148326649632895311247514068596658603345909526152338324812841462009541006779546532733317693375830754163570427656831009169188871847003626343158280787205612805309042302876501784605068855923184426805421650740382929396431994504018905843549584705116156638621144299933388975374103363983901823559843421519288606814398795759844748105656672648951849867092571001399102251245921093966069309631311713555632730668816468620980569657965164377082285560980390208334494460237588635752733643456855052914947527020206180357324661717397864110095104932414720048437171941432834505779679687628736227198231466114862986263082846743309242349041886504142731007265668333015368224291515590654547369675898982260062529862006567833850808824339321739412145576585181849556957063699172535145058998980110707058382961632100578892562986054756482765006928257523567573472325760740251701581723795732753648272245030731548797472468712432036950817891613147105847132173273871866516926453070111241216840527386637595505750597126137209902551037911507706266770491004129505615926719820561483745604754405317874904920283176264846517916343568164645731369374690576903849391154276474479908283158551893074754831677563207617428271783528223107318572338495538943930125807296850869137858784920910995632458323787333944835157494480680112131089298169714932953363256316642608000026510944502506625485049247962823180092371053419422864826176730097432642460261012165934936218603600366665095874044543024013432615767221132590833623454449433193409348080153930209358689325803441567001201336403364789700794515198660473240591135976842470678512305902925840051066051587433800066588608779244970572510238245868468651698432312237620755106994828292966841597042724999121850853767605147124321769004630833329303636608571254728300424967025973087608650655462877226535353938033192456091794053873042573882112026500563511370988817323530000006145445276848068136523320897366870807868053329738319437348582772928507076797009357234867687619133534927658580801443837690466352810749917502788347804683040391096755266881796060725028387770264285832796000590832589622696420368235755114627794962664574423426961207416368639889041976605781205095732416591303200600047775930685127794769193298342376303274135903010004610841947931488799236690666869929733674294977298794027305241800158492206120665948451260650750945924800984003472922497959667239712431575264472878559360070072117643367791800858283743661786974729269429799065269243501722972825525304973545946867171788530493242230471662327787532686501242805371169800028555135345941269324636060538733285764701270258168586877790466744269535468778810160210630159397048932374914053331831487750791110885673938262480270837192113587818982646940876228318557259511536943785510806184091189042196808774623576515925508570917633374648299075230916779443304034529723173650411177385537731371787675554221072171716190617911142529495025764744970183358021876953171271002026691708235674505465582034440243086520262029721679623215132209406844396771336308417834183772914860980141783724960078289070792876116356684943598506310571084539389797059865287825215383436224080756814508732369619458455180299294578642041427766209602633989239373700384210731609445583361685541618438397220181994944933781330870482051537711043142079261210853316719209692370527045534511685419616266084142661495772690447562505684018016714294295087646331041304030082844020682916631503057320822996715518225098764176554312429773645638577711117787077974155577280079364534615884522179200028147391855284385868623937977461267887926133969837212626007723505259349865222933795797566538805565105644885534484751384746681740926350079590703576248863961509237203641264631791542529954434614516024012152318753672249642420810898735243482990704743959610381259917201081753967415578550857759634945621813446877329910901093681660119106978617044058805369159273327275873618916123283459905237708296382348453838050596208947254814176632627400321688784236463231510751185781397966708206879432742455098279918428266010851614926795910858202755680886816965196667117761072946279706437573343700961631933255520980746975976665899837077941905281748495464525913767767699366543643412543835371488408052089250023398328081350464954236880012943815530374237323638008576648452362455680767448561483245767362503346513847281918522483331263935523098188250208805582053310161188785531222978208042916532716915523728860410220152616719989228264810327519515993663129931785049189234277350209096535776426343298860024595963291603561046696586955493734809504371080299708643799274874747065846629565976433999871721766473907224610263824578479899738480607561720923618463553383887937075258991306567144190851039692489540941702857383686180790163674349175858412022888375086080903682716840032548607786483998195218729308657208542430312938980649407587952761946041008841888333660282792031826816310861350466946452769868507332336984199606916325218462914868895807347480104321307386207661125455147217853541111374788761289309620563821591606368835316257171436800704364831300401889964826962362929601736997349300028693087996651409669591845564652311700197975252232271219688984634539312335783019304369008810460462534973907543870110947672146288701911396794260018645145271070379457206742232531901649842770385512386396164507249748895863451603083197723417368985984708788775991441941593903315891398874525541480080585751423845023866396928767565033196319132222817910204093879340129249613152590899366919472034311898548645398896227076968786778677522442327329406138189890160757433671674606524764920566447339771369390829139416122526439757691215847200147463246373223620602694246349299275495420922384647395024784117461481054887247559055047675715735515856320308000409163194381160858753716982353742440733838644773866114034253165916549351361457995750078574682864728275390634659430140198730117462273263921116864399606929909400414900814020294519128643564551870992405258000963778342574117610693560403823676820664236340435452858131252395071897785133913128754009972203498226431688575486387416672774173201372962952027184152747900615492923458140816115948708446243254690230300847909216676887452506738690278910964324750111135495697131476399376065898824504633032082341373300936289421075776528017923132860087802306320962031446955735537222231417361484926690005808747297838415415290254665055021959001488606433581811868059370304956041322408952551442734975960841626042574336446847347373951976783684150486303482350748672069806686973033674102434721610137086796698132842619295606984589996866128504479252047547524769058645750565626357310434809499129961489702313382723527961591818958419624626123791778802797381632320596866950659157891862827958797329549345551413492583072451474113378778306573675725131007048323373341037657621006296966746605589119971010462524719873454631678146097190108622570086537820430123322556228916884425168190171260886221599196019020309064283392992419866975116004144100041527566954839270095665353558184153836985862014881118615358445555538363907394943197388808982836582206909757330900812613405395171690430796674871947995521967770223171074071055398872257511979797832630993045948474508175224756567854586892005146949595196683048764956244769909084414015314827772552297550704766445183164110262977673306824244468505467596679702366046289560345657575699310503859138462435886232870637882869290689326010845683897417079327409067306746579989976604156267560402880418384039683928007463023140558532789882685328242453996262729700352735648011851876123678631257934469136930906042016034164773932214801860707454357169631747171683266663970972173370272495957523503132037360095483838919867554146995863183184376693266328638206628970292087435897971555315672223631241526427513456256468265287331165368264146634847492257290401184206784774027603126920953433739125604249305635725869502161794844981731979140411365906297316044258583600670067204175216996026653727523006844153313390773896618606475323727997690980290469180667078735857485654680041295492069382632676975641538895743055731218504747311484224570729943118932928037902377553039500672584912965705409118442128053767061605950735191780255962942588776956228914679795797584463520342098974373114460317811455803425621399632630722891713594445412868338131394188452707937820115976422181995959342595175812800275679808346600241926559154797390724384622855811899930193166371417215074497861336673364351211064070838281037003004966866733751924209117387891106651552390245648777408709454623192704596888000548002551241179990659532820849508108956710886897009778684859984848586932172704887904423673426527206083285427538124977002560549828881594639946561130891728129108322482559963675373533877121457094657024304636774514146087056538832783240724137814821970663554006310881063850158216434931671372527376888202175418361236231783163144274002065733224046932069117138736406845800112405453574234477311578303384273755758192512850452785133745339512929065859370512605440733772199561963658660483825804114579358566654754718893694259298906164598456858534890132929303335882262016294493097098860198196002542820449800998235441267258666580078349260481110204208982381171272264483644744413609803263621470846214775031444426770315145892794896945541714104966707170924791895341697780473342472851342641646085582643847210436263841412671560887568680949964027198522287305204286548289418704574677169731399396391433781662292140920764554392670305811420593992570404897816073593088399936422086731913807239178472876666075592034378154205839192707819904020929602771304583197158580617593927471002784814296338546267473738661819641615657258891070803579601009909912676830786785772173623068047490234314272255408514434890110778166583974110884992426664738880282559933491740108122819667981681947796432761214682709105144564428050754735700798520581249785207125142998562472029844378135246779215075293699499334518305872056674427416728026312827867711146320659797324732511330003471181214051331517115102082436879100244727629495533181828177503654770251067173918749080264334818707651307236973540357456345959247176348086923954128544462290619736564455232276225175737960144480568953959707599099561040815049524762475255836963257277854016546319691981357162828084539140300752544662169928062910182441398766442638161935615779829832826999271735107053574683350615948691995492929572506744696006706184033668292877450718331974115907476371259701644308070424065006443374406654982605916330559788597133942942278755348220632108371414354180564223320448582468852498835226792488391081077277134621916072051625285207014360131663367842530912074839154714576281117795332130986680766140578498831470352264287057818755448992711218610943252379661784626590409177781504459992241216495002931971241928466587004372898186648722788192630086747580376550737080551983519011237932410967041127327166039922771244187673012094704646717684926494789669291477217546461672200274707406414955969652273158283488326391098652381749078773309433425351045829430116878831059064663310465124056799774164401013926232482242253690385166077155493445398835626724566330069830518310629433328579681313799413940635357628847646095494691545706185886854862872514929781578914632648798343407977426698511731752585633768974470072059527248855268993176016346276908341706757389601480847044206614192412534970272783718420387061558797257693146576243245096045451274204357246431595244247715392078547241793491237716925926417378804552099747585025910023923965524873819121822490436553692962599908487101849952324350830990340116258209172420491890330725172382038848779503890450599180074753690613952074509103049201863245993044281621198237919918359708162655722244283269745318853296482851626846907120897259371951538919484947999871482670051612116042715187792481761079711177433673553367744350444282533244252276971730184120722494027707926871518193649588394032609251443539920799323623387242417553741248025000933854115100943309904904655442952559779884746262958492340818019737764591425281626038245891742962263632377931184524855694217042071991749815805222223599154127786615425629787312625461738545351326263733684706492447588212596421194044927579929717724179942131518252607717092350793837509918323321076012348168725055244903166033643836796696127786708083158958699269433149273081682006847293667172149737888711764046853683210496628666095930507159646034404406686729984432177557156548884884289644809315872167069700173084077094235099514567180101935795555716630876618023311916630383610726316364993474030774702407907982031196859691529115788967282805041588459187635599986745061955554359156354922714371903748982202386666021153992171103145332460988634986937228857562798288520465216996069283362331069316301118745046947826355560446874503562976028898754969480311811702470256135998714361383872246319392241910425920419309549367242637963070065573733475969840698052512389595551569745980331351656493016547598990535703437323996709058143444352340173810910115076439591034738667678264853813256412549825468236694496275448262996473212034720125837398404425626825593492507331792072668032129333890958048716593884994461645035460831684845400831785024572370515694854533632919792281076088577287461022610923997563207737593997865289560632711517474096409404155014410555420799165030064537576163800021217293240470043948309573197337508120397524585367389121551088142987410459068233178367368572576514270055826605065427989038045634415336904190761135620516665946565610328398470512112046514577862893570011099567227604537411756602044655238407428101063705986124130176577884878742774912743698134001738093546836341473351156477774015015862844221153169289554836836112160492909162043858656268936026577270424863468423766292807955216557544285514481710706322044006704719916189771328136348993235887354720211845154046276009165579237348854667705006354106766998821073499767841818461204987168780774539642948417772580474655606759267491146348477904992624374076151920500783423570687199724565093220974241963639621593839673637892473675778154537414210299408684867840921977048652186338864282047277284243027244205912615194972983472474871716252199748544092781004027383108899691546649018107693487843010722991450616625678732009360482413134596360648721834827170406411274128350969026696276925730031706209121103079339188851272388889729213813274267594387877897863104147463224205194943659176901726906389369704366122801081338804565651264436526353971819899477110146749826294367781574763450049958131285054781149577718172568791701604957667689182189531202418414858352323276019633753006006944883908097616944842395612176712809156872010607528786866539612360656400372388672039988359947366890358962082933288385641034264180054842851426860511116412513209140475874066824944609041877454448532355982429480448461885307043292597070710073570152731601166684678818349765978112959770995154940758769613264423761405043760314755021798357504777564924752127347339697910956503651519731093313697253274013681639122935751900391011735595673049326489663174083850767526549683365893897660967598805316873287990964277675519370708526958836687174704923894683983292115763601696776342388360454420969306850531501264100727006716199650812123911836316767484468438795348108036326871966388335419022752759630378522761379729675768352925909109496847271787557108712968654027210678071332316848347777773207622430943507353043943701110285604320677754070385528254314277676411130233006180189618887598434618583725981009643595972556949929385544807771336351128543477151815880803918656608906174450730335212144872281343969236266973798502270123400172238262916839419034703762503780455191296920233827867413147353839224890067182619231397178044373661726031008907377108096898497939700079648037423458846941934115521148424327511847233101676252308220121495997221698265521021705857251078231185672007066494020832101644672760521996654079006164734518373515567315913759701861279365654213898225156844969824453515132829900267506607287563236533263300415101133319234786338939519183579337478905499667598211266578779989390773867612473621970178593343734404033113894101659029285768134490667481511783643813586253934525112434415506497169182744080010209417602022350127484465501555082201732357383887181235410849903533059326277735807290741253945981846482372070327360236999991275476646519159036633542710272064078432540763527722066967242199956336094202953635768278407710268881104693077215763596564760605323763488096251072562555498702381824271724701299903155509590401979272274442359489625309559459724327587318856114645614228106850674550906494688221640514547479620150571218045217529230858673334504399333099105723074921887654525968427920886428381704993563460831947002800165572308203885393707777149274681418559670859265263037184145711218474240832434398524757063717023035056361015508249021091053484760038657495663442668250781861321194361857491288314342421870262611829159545196984675936732642336857943135467369556642238242517193064165011142603749824656347920084610977314379489286472285652010046210798971137245861587416986367403040845258002672897789164956921092032683347035192909967557776803906338845018007917641853309798482799706780892443045813422543105243364026929408173221093231237440145948766164726870393857026258978317305368834369401847662125215198255413779297265678944599606207933169971568594725261996385391550709746111515681428961587702459903256953115559423260978134916419920782661616750808784363307100295077292561958405072793538675124633859869969126027999653692767179947499198597299372547060981006194815258550911486647157501256085285436530073575332499193080060555826992881313790230956676463936224411803342015296291988238903820484227328392883695770131840965153494329184113683478441053477184818988257356263839870305203160777196026863695058163144741876740665790881728728532693283944305539382034928902676428057126825437262990900942610052779652052679687532368185018775871687206438920774820953343728067449141450656607477590094481021891690338796006182515414635060696380796459938876773295378432997286804897003240255778735740545082245111791068351195257935140905497791313018088893657218581760119649558863434037220072940866845841469682290334195029240719848428395873122864507709090002308632344599419591263088340912865448987969249828352825759189674407882388323201729310184416542579775595222333329851451917304679035857800247740788163178752683420171118717816730594991867541594783878139121678436785430925479380975748579508810213027230402185516483847711225369282770601849619657120973077532841238846797345048075321074072284153087429337203631155059767677036627787850780014499724822351490953361102387284381759306103264390033783962544590693883063109590194153068765717571934149399309716212321447604667481195334922807402480417303263322523866225855682432550536884004037761617599694315242076831848492407420782548497450050843427684741639341844394331340072556577313498353034059916451355534063227193951323280177071973950493117704441422849831516255630632489553196114085355799891480373661110423132373761309999370272918642181040149727573328793141996079326809581595685616490901841115116344161015649871096895816347471141840585055037232862707498957000502192243400378286880701115017958268760507201254238046965088432456444506972465152197408260468275071973208574171009392765400328249915709209492184825069749423624975572200361818807366266081862947081291479034366813794818501959429187964824419825883671026093910156400368979269503427020643026094317148232938439342356503543614643057711606696934217389769966065365832752222637297539148293064481667904560096326312189175778353499749500291481020729930071823898252592608480144291307771075627615545493104548168620984939088021319128140102597329846473028149352336961421440900079308048446570541851933477043818814977726412884723054610507140127405394572086980893228127444111147637591360295879646260348975285583974976600624791397209601949675220891472465227445509961702144520990632471456500562177095341793900264268266006871867813645246828594652783249913452782625281494943776259697774224207577239418666945498711604711492141753109410145900885426105585028153860672801639016694886642298859408503463139242312405032912930812132688157448743463555718125359134480602375983708180918605789849043025371792715476089576844926318448497706938110631416423929587497453572922148600961839212147451373357381102968734309865435626118907523026316900152386155179839784341214046399854976818762437034900420278850210285624228269012333721241224698765589778948498766601137421102631260181775203051993391045310090755118562356378702184552855850721602164104219461563399686143775612457255971245859743768599747056332247471760160032244958869862794377412608813267673148221008414876732229999463827731178695565935588673126754666878033773003823428833778535415707516533205077262633790478252462034963362999937057154372265994761237576331448359409133911945920879035097453331007190620472183284006116492299045590202722002967822967496908208884725005260779448995211537635560893320473953709907211461618051314337859847638882099075771760728780956582919415779357047286980078054599308568630581028600815433199451161637992908038232574463178001149292209781066081392213994497089180557528300377752023909658382253359051719041751474151159186734857076358989315862191831942477845242375340084703594150624495158955929886390696441504060943482466920932972221092397536187799811179705212997459861866047779445916546299304644643374118298489933272595631778396469445685305522160645533097980820404620937013393046921519159121885398251546972728259403233523540964080863029376106680013430761947220382511988947467940114084789316085721197198765716190554854951881246713480169714658947897192229874954365745272260135690623511576003972112815738345670619441671997794240783071876034328091271147104670715464644324917189747924103229843858678994894527773319870228043280159556241034788485773723424581331542635576429296490731911107674557633604417704919860485343242163265926998402339707857667979364738536726960136705516135433135956065822397798979927446289924095833294300859666909791835163416212854335948055886487760549541215518800755315522155592238602849903920447831578074418560573242846205684102386983332411405600982077360501540108505090417529195987174713932967260859607456176175569675542168108108888469268611168865034929777393265728535060706339173906323913847773311936450587636406208959736681854997408760015750047108985587764328539734363289583917548949694187782993085517570321385944468684150355269637500690838234689252024171668346254416922440069364365588334103130243371480491485646517004722084448743628884172099825549931507204589115450613414834768816013211152907198642884405515056636818539024780570567214742896593615170496407516458944052039084546199174057723352405449652186796141691703607525688088232291565010830934931399604241981611884603303119753384133605300144550773659556136494099206734545274396922939578430643293417859782733769018904703673740269262800979870321349145377675339989187331876436753918085914271200073896558026894602707019863609304710737553820427574993422332574731477995156988208882676306111550243462149352382659943975195000702520154281542189986152751609697910044054779664410065912886805373619867317486876365791171988206349052157111226724374771268045740236729299243806041420501618638312266456606158237607965213521756643126429025314244624940372544504116488079057461805516794417071409520460884093496110107917298910887959685173305822558512895777391505219607895578109242105613913165294690789589732255157701690770247772057575244125899557745460810228558147335943074444343459537171277857911897248936329350690493940848750833911952785689869077063178498842332671719241542874488434766371404786381092288556187420527848917722731711218076024772316635535082666948001187312850751807773556568011536910163705721458925995904254113744794061053576433655157797640409598691292182806786459147123195579474754374911207308226679124138552551553393388070865452192316296185508212558692055535564354943860893993150206796770745363473585286141188883626873996225030335139112671571766068659438854144220865703644473476057310889521898698671350106776579779098330326221932136140021521268233930772425909555172260409279087314819100474147989460271507073251032429373141775933644405111633709729054765773336780016273225788169342772750630294756993713674632812774568703980123724532209905224990962978638457444381740886433404900238214770718711711563405027771031776197908964195899633733863284086086566171604048075133646039867747675363854237221073315227823537811767708635316063740842188046920009943900171286063560480165837758647355660774607307091074494288958520291026105151076969668728541252879063761368752200075185206271816006094793770523638285119053665579614550348304432082667101925949986838418680708984055730676399193596721732967814003928542566654167211434730218990418723050122661699191362207395856163189178108151338202911342275084164709016199118567413344505208738304251534777148002911989307541493771638191184486200746544682918734629875739439405846937832907344879386474607396060079607127183341101282164708964789181807545939240187793814271247958306743058266393459995001947308659986337903029460130054542877366274655378192485618711590037090503957457133539436762964000000363078190474755489335303316139823713454069928805479400266495759579209370754844457332333829618219927715078372741458483186247552274529503551710630539759664982300991803701157029203768122378237521139206229923285491953994286963983604621090990651874249203375827408363456580607632213722877932997697093470620182918232793183492112395540218439975005370709676039341571730717512288787799309891356182525253491682946211471617239689292704073058427941326349378827926348680536456229586402687095255762327787330910401249728409121091717474300635413652288737876767223744175400836680550505073002544116178461799346949036742729493143263666600416688227086227914394841375700304321994743645032011083380866583963273164766092211610476780125776356902089109707767438717588251731851250056389522192898066727142259160439017605741233920764726600071265656163491416531369014920700208632478575031866825046296211217602948308027171486095224260738297817619997177386514731692560653261684135278626257053393280530596367339902259628699592644297712509977048952528548330210600845331210606827072605160288867792151691662135661493785597261468108277513739900730258037555703541586872675880647465826752638569690631710745936387187330645375585679646193236819153244819726488401447957869573435224739095005695416723222884049011523784943026096091716917432046859641277134550472352371279836821529928853656431902765964595809611084777995758979760591177684481576847773991643070718565316922415548457358374102150216726747742175491170782314724244983273027887087235689751394153680962255354453958072963430973283441792434258129399546811355168271250097928039776558629756497657934100624858468553264187521008112118713901523379321523767386151918060763863199130237968601155320293605708545696271745846048790845724642348031667896861372791469001330989930626029413848012090715919125259781830519647374553780320914248408024078029326832377465359009194265163736831455624918874678038088869918321264650638816445805985247243893297669704726863034294370134651881344429815811477679101192807463749445677898790821638655279254067510224591246670358299944015771685596396582160229022036211423150626519524190929608675887434549718781473276739380133297069491010255387943821206238173842232970032950747201753933582109855083068502301620034726218513246451549022764697895156987238784384837200653964077200586725649618414338071065069070584006619659463645974758113139300707577148450117174670095585178872604250754546872919829938502989540813241614268109191272432405139480426384670922590815575072853441868437566353592716385668052057253525639065171277562630810227470041119043790971628999774211491849908471275975165895686075035121907277670015184645202787453993356958145393394012520205380980450124350138375960766476323165292309269964361183369440034154287494917779385957021761855651335293772254803797837982185931353484780537286936226756333629779479462069339013079129427917431591377411710008800466919372188103001214542018209065813467010135622532620645507313134061784537213794311403782021349577200740404827730073258866685549313435983648048565135603340397633348831508743757754376558771938058126343083963365543880707496417338541741236389874049405997475098693845085386390682438677990333981023550740634027863034841134234405527399028431027925052519569781132813093107766588571737767000434421578368933422335533414996180730133253549540488554864126670530660693510266798331070038270244781122604484636890878552846006400114947166752924981103015648005764335294803852314472501209253472910346560951404111940488882739799925522871941741233039001500365220646171990620437340053642685270360537318458919343904483300898398619588801239977362567070459608025520972211484673464523867145287132174552914158593362321684848466413957410416031563029408265867833197999721963424958499780720348371837550430295993013508313251664571072327385523071387171529631136361107893377891842740630868842650018885042138464113672059479365799346931585382069210753056708529248564718051252248229885484501594059205141600160590225781331724200077712633600237731000864932487513768855809703275503321489734895151268379305633603781499640402816108407335404637909273525902491394437625276686322778791532658958325102573908175109365198416834915243052219886135179094797516497265988514195533044534325119430124225768923048133681630494329657789792963979195726498478000170645693873177267988840552434994445393614544159103984831678540921417562140726694674374063413502306446291743736743397123666814703518911483732748759368593548434279631770684529202594573462980871293658415084117676343783051006189320413527367268856958686779539380145435898627350291803301769001270591759144468049320432014340156973403505436393520516353809944755129487551154288690885802864339424249157752890759146513337005374698830535932031312444923587019750108597033258175581071137179959718448121796754230711446143033163747168192521559116026701096779645932130758879988281058211804510837454983675181833199325568532455477629111895791508048031360819226975112582563622080531434810569176904943502890993962616577897763793026934090182724651084666751152598575439464665233896360362984767844512545159846621865700399738769471781029232974288327414581773765579188202181451238118971124645020456715185195839902127610722578133420183199409673700640246429843801080666124897474765733057653564769090098067749012600476883632891334619266723589033532208872880236605433374510311850446551423357659988601781408347476362571096568171809831966205430218824719186845354088536394503708052726754577336956349427613206040570807369081090568368087820773858803930324617187002281482285006337798280467808927535197386751910124715064227700407936929820449676942454056728469256133242909105949993623845945630066415875228713942889317456516552753649366597886763592284766697414792999597625659803046888547769999321810766796313966998757910535934946819541962167826656707730901164214571910608097636070077186344127575399461256387691569933454156953554923059532914103107844019450706177395030412822753278245418022151089203043982659439834788989204677735832156135633492705840992320540613061417664568195450570711595895279546482281965554855588586539691541551165168678291361371125731675132993926301540687145040082106599057223162098604203003557433780260445835307169120292677057797392408266570907837370811443320305934293044563026342096749240310130306165643966027383251445042156791808213517644700477115397835210838934041549598343603792497968298334640764322968225354251635661789829998967207360783509186596374589311549138987681629884413629110489091326683458453258027779285207912055495129257045724304717763071323952776204238073141735025936896696589037392205272836776543410047590360580168686057805863486735061693222851035674623472905680288137392463082630869061474846179484665182082099947964288202625715108344231452430258320896187462101876253348145801187735378752864189268518076343364259696483905743668682861465679734795821751124248137835609748750354734037988610596152179949154192962609002181133157208990861600611811716461770361127876346763468996184008912231060065062000489146850285065282058781167702392266470689286580752849435539737327471560852761065852120304334296866685176740369079973136264339630051634893235371650762157304409662036331122197810162684123732702419044047422075846606795679137216063098229051686415181356546601658346394017541002427717858305537384833927390649516714683576277465894140860532314803453512819923324650520436089142959398353352939331674091319408653819052566175650723096105794800942784347271541411597392398964504055110202109967057285313723534098597292890240217970304633591392790011797883402196478146495705115943569230913559048266073108052929408240797988066759578351069458186873830005848128351508011333674410256626815192086496252449344997210813538969683089148243410392057725455290800256401331457627557410073277554910175570643188275039051453081524781745780135230207292095361368990382798001728450541884316568853252774618946644792834662720049164326146610590912359623315621630500840074389979721491635001193168014833829451959793660317085310099255725951132031861803060624174616736748972940868303275801837027783298327692137738182836747052282214299325496921130804972650788896134826708294667148484549897716344444720341398149344076667459415811314812328656881252403127477865033045455297008603825829628306454944343036104928242998385204583162350891656690292414143366379222282563912174981335429711752040214222299960219805989955745408641705379187975804458895566310374017517122454085533899650567201503259154664775828802841866720932969636339279542471084781868548784040756729678863184577060458959009279936194128583424739271645524119808191816303843815755530765642160066461066513685463998862770637517306810168845929833168627637814130578269429857428445339590305617872624990067247265582702575664902905592621239806631785065770698003174712136431481192419655621622314189736483086315585545210808291850605957479934970844775061935772161898329741845931630227939345659635204324779946318486595168843547328641023272990873531579702660083290879880912559573373889029690797785715402402416973083939169445507825746767392370411186351621973774174074597254395244805716109280058909120205653648951409870535105922892914891858490078759483364692811433705610309600649221801091308864907813921048744410280430606083533267298784228633663311719464994263724015490212260713358709656111344411031372715504105646469380125249658919859138370629329001334235974397630838266152976251027894101160570937750423805167473143724910939557664047701155232020370996812583990923377237466937865733261825305282526347919843415122888199383930106512433970991670025219145860491189999518429142754727798325116864107098812537267566600617758788592609357509108593400673933052136547210825228769020866510772466437862568045594548596620462783242575214154209750550421189531487277090063461272826035289912012515091928292254551425173556362938210640956519094565970930584132377572761717382004126901663443064347948580184742383458215093429737590087608988239093289120593584727947541668286877535260072639041622573365766872229849572666892769914644956608477565279805625417673111875462181362815595076461049366519145020137945943293614039461750064166799202213412616252840887535992643268467552158343440140578709228272222448943644177637056328285843909521874752412775909678517739911780719748603531732471652820159231701945486536792833581245290111328225383212344549007624630113340716510712521774115790416577655752339801707723930626832446418553713322522409594167734959300179898511855396443742529110813473353711705716277501481153080540340762438631524675205146523449603649990404806170765929829449675491942411368637403625347307027056493928679188009064382982419349080448610873188732322692272080530266102843176261950195347734928107476047179569327256296281432645794545293561459447484840871728717625872751714131749692171161671058454372144423106154543547726204997956642672963231754722548878265350481606309770007985011825209098387921194612295953966903095519929925409318389266347481824698398370251147268121867353427393248605788977170209598973720627492167310487796123032802930409859654930761252690919945452790925797282391012192040140978736716908604705976011551708206389390132630295536627486201446596046488940030516582366964670111662257912506447105577560274900378788676781521172254494281451248114658561705791406094955109458923122185977947335046218684511625976561222365503145539348336815750371436143003920333218798280570940701805540477947113481643137221071575875161933356893918339904870688786150533329929697154737536951027678644781380099471785649762548987474627963492064259345059272832778633014206662152262982433209895587561306469548830842985413270580472395292675673724045960414770060328656653591537830644746560227677836991967142697356271154892380940733564956346559233091141360751304976125687385753232372099409173264557505558393273345844295994747315836372568892975095912433358087747757318050017462034083377325447634602058243741949387456077795947084400695173181718014353843703647751563980863092033311812096980942222607062508398369337608436053768461623648208566558914612904944595806725440527577352597210668620267112268712007628600776400612896098857741571103636534846093465502359415586912692038140143480336208441467174839581907100101684379981396510325339621660745411539279641549875717991446522731828729840276311474018274229292743585564281149978581243587519034719612677581595977071101797376036334797468607070865543133142739715214109377092469112538077965327558195773314542991994398540916273926808786120170160545880609767241708358356689463699244181163871627783359604212219745024079562704337181122077768002631039977875357758814998463046385003064347376553663054948673787781633552298509861575668244285067808326294097885818508740151655751791639699013220024821425101763893293941500487943439762785919552719848536242261008428960732059352933818458546532339823628155153705614528210561829020759224005475943837562089746417642052129206810714292969636808469805474017429798338902663873328313808028929269754564271443716471270402295954142181277578450187245513251305851954515990525653299566629450890364785785670031387959216229088893057004403583751728334909890052618364878852411891525878842743639375146299422651701466062362167314687298716346203039915255693438081952670755248085232166262761259281999434480937389112389467778360657184167414177758275708826880477744705100218038640008496741591761681186049444656743877157616251313179461609071162768581490110900910380996951796693647660735963665768447220447029688324524953722440621439160445439715749982215391114691491396649559848638046960465857081574328622380115496578032879889440792289394178269810742825202904430631662554534006651076463079030982752474988813419502488333913901674427086242373668372381692418586248785335913701659261006072556841966374203669045798844969953963914433734282369040042226357769059183167846949487152063208988824401479299890804102422481380330446964918346323124557592446693309448213512264474436287077218156763706780902245376310310922871211944219271435699901153586747676241093207747034642736856648016629238110898924076401418628907472328892512365090258050471947573560629905169439426360190979899453126440522215170042331277229580634545059035495938792113460538571943660079155075565095419453348011211311268888615071629706241308681585880000519535263539993366403916984187768693927408677949244891920350680555271115886410341057020237516849759710125992303904472113488857645061259337194211237197969023816748578453623628163776176414289385042459385071439001581367198778101856833057663989960051278943884166255326290229749985377938107362662741680532719199747731472492156373872311326997102844246800767185591426965851562684014845942151445341182835493193408858029260662599516028026943889153538725147338182896480697500710402554082407307434721136077421713987514632432890386388984375044223900270591007528715882877868669274055745895992658026354479002677666582903954905576470103142753516222908089748809634504727989042171053291296893154047134771761104782580764416002253626600777403957477602550728824201504513223434592845027831570976652966057115902913246784126796286034177533242297358891156621417776584762270630465123686453021333722228085910459326373912119266998725437739750271781114188338246951029816645845085761903926381201058984850111120151043700688609578541680209118458083088050680189288720192808724975093891760590110452892227568267251545329453390070926007746692531064884556215397010047884757870877755138298198907790655745191078076528545668268682798956112654753768547197860208647746051113067220070374987187095244675968004980892031050750353528836220771140912649368597257294588566980414005707716054733384286257092051638998025989831062111351122092056764655993849295970133927699119170003443005373443720511987373417441821439971677779113737047634134070106266795298162813600045984122174875049608351701748091538605219884218201021368272646338649409923274855777212284806144117754183945494579124835404344109526089520119430115061811819934173893291039220463713180631180581034333051377641150189570566980289023367164062996846892590721754113708535460721885959926806001590995980319587082860944941994785339739586269575590898854970333244102541387176362372746249656151656671460351253840719444369820962950893219908889049728225309383040107925299978355033221195164379093168020813247781631729933487589549421399841032790513727030089002683020535524817109576676367016852728496734634142977062073741975554703462694625159199097180044930179082784187102982924279010310743591981213223297184178760208910894154131597722764979471341931920790420278045056936072551183991668669350358679209264669704106676192133560329738861514648457887209017655806297315435663851590007101866844866916304394048188844268599514777903336013104844589790554032843807614669381718580516980157768976340924204313962051896008841754196429929608070391817378130112146943527482179606286472603437404152689997281231288576392977065137053859104341312877470259694914097642522840266805685631470856279022361130389204625849340430019237056432473531235897158989809760645842295810222517468051897834013477090662083804969156429671973776100320429353538691739308429976327185891151188233280796970076560239720483377094991426095067781836438273603151529238628077459661154170451819179478700211458561933620426141141617788303048711472126423252671361792286339052182655701025462513841937095848245396993139445868435503474919295651031817034337127958533048897080817221591975390298748431573393662031490134532357928240308603296911301157827444744139335879987971443946499788536603246556756257457000078937272985285720161548252632015114945245862510979700495567630892189839288991767194069516497504240941899688881738480323518665244686343508823076548539388276148517178216794455725130564383584207931606636586810443356439774137348294991635619699763015293547326509854233955964259827720619216666075541915296356437505954145336053110726513490705391163611973691760320195268654811939132138695040954572112627442083346924593776442684821968576095423606287467825274423205709947100961497281076538560945152677780101514076733991048079362260261342599318924219523129293912592515983950037521911802287642184771813717523201422557486752979421473248731474655243783060532141430219739959253651671830301744297682972961051343658281611305067228953834887237889327738049465807264630042002027040550559628267368628754713250296766794796031020706410506013183605172791423686045259114594035230573814045988607960062187391859712413755496537454371770524008544948340018096790407600965566822346212817674278687420285167666491218284396957834847803762916393000418903209045905023938991266924966033940855816689730464119368752052361877198502458511237071299541581747409258604829615189548764704133760445926753541212769800557810162983537541656803833713536274189387105031401093276558658794503235024958678046664635127498829329529581372678744703774426843442986929519939521046371336490989508735109926017600700266227883886335306716716348089003241474718095825438711288179683026547581335349078262633182596161574514173203730714650586636623556374187269649494663245223458482903916696175852966435381758901120301820603430881546415390654911493755045017567119149393605756787636601232457207030792825538917291831467886011048348347595891783715999928547744858287956041176056497227717407382385838051678170424248961031612781812688117192923811332972728201014702818753619811911825718646864898960764391286810445470866908542699382482543445083261388357681399007309338122702026015295451812753163427922035096657864715613679248843693140646826121728899628053118943121418884695557961688583124932772274456143462245404125840044611453409363599786432889364012066283854666678627743336685458500353782825538276465288606905623293399035142430991293203620939993771070214887077232682625937236961758475711867710965340780367393487959604719944236358447921481394636391502607621155323618371875930604515165629303944138229183588137943440037114337961151697279467386936223450793759278081200946717293983244203978415309270757465499154888510173510383134151152561492509730864612283297226816861739387964881288496269714082563727578735209861076464265543616173222909735797778654229525222992210231292542203327755085714646958859190203403637343431329968213151853310663814751066822220120258105923705130466538105545912459840247378235001113410145560131087290188974271273984168601450552860504360147964927023830419667326565302928632555990167972540835674112350458695972730860495689865952784780219516362307539532991121328453620894086831198389814127643125898814991495021323318162778871385580306583408888049731816269972626094063464609640525399909261692463372464688241802303611896685378737110397512424208900248992185732065235611215128224365459067354792122847285013229858781284547146787244271195941440753493627199335564388694059363225223600157030930438795597648777500924181417210948561548484614757362624958260399356783910343129511110567355836556896343364431666101141309428214304550411151288231208710375406386174624218756795221311543136531589609894272931136471031173821003450972240224951880989556924153961439862766444817061171624813400689968469818147556800664982230271045533107202491900710446435484991984529671655718013038486199394447379055779563405536642206107776006909033687398238112197056007117193605594213200285408786554998430575509976574005519914494495760569175159592459354546446620605390190986409652945014396536685291301518991555447646303801592972049975204738034627698972346827703518591907369903098105647428938896702960908245343903367939570087633789684332588003566479161500939401725704063714687768606732880156789169536054984103188975521832330605068600750079129469549978573121886834447732024156666230628294295820090257968921318952155596974880852688432011587871510337356745636028475264048057131942874661182487544493291938600812445431648854451490457177011545303331828305322654024914821717050000632526552687562012746700928259280286539213677029814831531039186361529043396138602776100684774736500423988599700929956376484694315548585716755952476187384931672452634818188627464865823526381977115137461228535529985482111227298338143755929261103027105165074373098494148709884971607731653085648167609541173786317427827110885384269888608223034950688986905142636324244294081234876832144333522889563014951215103512246566657315670995787552962302657811575311935183055596628119030239920663437055199172481869272427085464059118799989640505021928645822211393228784948287813294687073977699300367800207221462267096130337684268401234867262596766206223278209798228327768003078003067953135141656691789024009768809783839454775554629640043264695532524890864630055408479170983845606141474120546446242349099955908558651539364375999940577149848523329216700056735516890409980714283617483864767882123527212340449266405035979870758380244388286308075770537172531987038668633000525692972960707825921829712082711059266983767801892861082219549583529617828231682327972190715783544068870287318061336895116782548901350881340638383365538951239870934260558445899117547641556396711819346177244867682949632728534108765546393476573183486275818923204655583859488642298402265234592730607454596494276934190802290714304700459355627169122718765215392991381793813225812650324751533602171660925177700597771276636787867469479689799907517620767609845426654685153993361746931578205781870143903317502339922167947532796223749388602529007734211696063083370328300573104034243198715674993821409189476916181001773270728000289474089169909415365396337094962443888332936778098906255988726927487561397503233944693222418268700749742069790021020408444898006042300040051873890566385991516243842164634571619040185916363573059437184204901892470768240574034974321797379647697224978661157306213705792385528639064005518358205969981487671282189137870868172739403222190819752376992934349997206590876197675033807082736899816690901384434915193385554212113308808640264700489193316489310126478317616337072108180528301804379711411052595654155064644557906954942114311083808248684666190803735201594435199231578947438686525244155965310883837722918367983505929327019694006910028250176879528637614066314900075607225076522176503835829802726419733171883459356989726046030689952317543382761519513471267945050720315643572826464620753020321165859915108390132820557360330531680526577379611718366382825459666519911020973870678561586080909443971198443030016030004176814778846952489936101159141499612102232076963229931502648981752417716517725124376022366900609243380840787893430944910168415769535086973825072539439781781077148159500530012339551231863708224092276453967660047327177801345527501151703584581389745062301558630677379527941437187611299751219629707462076852764253978151689723409986908090563681492310392194489402433067015240551994884126571459062886888690630211745774985582903900062443740946136734346465497996642509366768344503112629248892438121746718410700891515332110488609869864726704663506357818730429247873553844319436871661822329989433939810903140444144345870637753022811924441326889733337378902445235356575331509111012459971210327434607341211736076588567031391153683321801106133109979973406487798763591103082684123500198065416444506005985046939553497694033837892270981111445094453241082383026913736207915272338705876672237541315632230324773669605419150556081456975286275123624831327692523713467654096864781192152771536319261846784915226799861460161544226439977516596651044971288609586533576191614859507334616068280771831007327760069151683662421138499400108387956707427994246594469285863835317528601825481573294898456291507084207483106539101020147706813334704466544363886650878726786323805376973474559214762906006829507641495198196573626767480220942360191190891805802631196982057599017357648406276369540148793651373796400318439043034439847856592428830237635175795026385207655950512728617863040366197141979967146144226167764869511392565609357248098809690196749317187088152223782632082961699318412569633668938753631070726420502479422075784478051981451608171457045259863906246462485220657603444583152881384907598145543923041685421920827804922131711480715971157038255555228357668079228596641518087111162729876445598983396815082319408402036794208468995667977965506412800998800583864914173521585409552248619208209767593288193769866710397643961688080180768697630120040327379762213094878967169822070805831266553287922376049930391189790540991981707373964426375012821095665930708067281240958406486248103371455806583515199230859540458266043064080323707620354652059382128497152817960289052995356749123591247654271692989615822616860423578042723650025833042447142032180468921137940576635726837483443675021522135149465803402528766067153959765690767910812680011039248331561073972417998800916332902433277771558905271939135422828380427963038339286653127856803293835360049271241178817874488169866374055551527311967548611801755820729041979176642950618413109145592118920566765406697234134472017379416152319645362339993316045128349135948907250007692196299297555362869084467465732093633335853837041982722629326437680752602374191208877136260527861125645258221304131172949188164666782023957422252501554094515624525208698488143221028222694249996310814806727516848690495216108166613110846350463848087311317955493106184923199092075302101118963101826938676925360425816035936703630433715050828166144232391747711236131914565609076458589131923823972809963708021309918991343838594416787395565163780237676451030726719217917572402111561575883806718091243045276745512419989301004884318237076133575935187832705810021782294159237560871182102878869276188501326883720325877274176551249551600093184618226863142242562475333092978952562828296217865076817692777448367579934352981836652405414642117814279146294991775587958547227714206054509087551761495820587255855532028366493956479634349292077368688087181872706403228768767146905683053034603261717299575947906312748156117809372384857609136830804002697255137072784646217257539166587898329723373288671369266470959306118450157152847128799219794695752606550182718837997077050291534650043965855364045113986968472669607354360995420280888690195160734053940068776902144274645736014267674838936239831370208472144220652845562492777113723230566821056799131484055267076184592790600027780603612442537942613103477652636849016897285442412693735892012146703233460761343354819933287821756574354501100882640304520243842312139964447567909539956987948530142443629418211054947660281095334555519516629766476683408504495172234716045279080985001319083956581200971040676278688073979271218536260988988664393467407968805036003149686279869554943622356369625959545237980169723864340744086378582215672722148799485690127685826957127949266712097691037899224511835105803115927779462608497356676235762154244019339954237478528846154949397377150589901587566635491306425779719929576195167389277959766763553757213508730702439095237536900626445358060352434590390552855503850667145945627839187057830106129641777197256376245545264958891700206565905333572701625417737372703026399698745621573967659333953958544519039288417462777373912900743426798394929366133420158601906417054536074580304406255642047486982046074476928518090099819823253505728909166591189359081990800825379516347991275440292581737254616416873870004140295595901562953719319587134290004841132839296141282489858192726333049309084075702709521299243972733677783833711983842714000932968119297746987536666347277288645315045938774668849361878680194529562437597091358739854917853746294868103110632077112729868406807245044942363386153340006719541673749748278919935421118304030172971455367620961985366171500240351613296543411870295080898804078128404485746328074872135655122705621969894467820524477016539335034777204724168866379074444764897774917901391632890404818017213971379686165725052691915462012389948019159454349713799305965483141776436157134491080624954257313051171722076587685231313888147489480555186813973624106557942997160305639952319798639237061703638257822330182072825910762341379072768179846878412369017395903107117190264151192694361443843798574109667700523285822129064102691736358834185183745266379853030298661120077640467319126386248626658500796269693093929454164054218726416935595570685180420089334438817042711020896249363406785072624836973700958736717759228414159571072983643350421625791268479965758740492467236594098190249902666441669896738735149743748724522195071302457269102426591407855228039271414810319478946979436939852902266847674587149433784119966567466246865938296867307905043942984935449384707844669756934635393825718402196605965600922526727398620696528686062912037487079757914526572040004842880844567556395890646455389061657643727019534109084349947465850638973737097674830676934277738037105119014426734189428917757181772777927186139701604432300692166961908861169183107777914704670464777454921204686278888372085231835879002694681471868640172407530008259456509576695809390375722219461235197695778580822490555680477059216949073838719730298914520683944255628779103786568286553516820001846630798733960078190192714737158739022207711522314575968890806948411788894619819764148218003449606703665251903102000911385199188328982802626042565776384295348435734226256938378762916136210490444848541807243779910353296141858211357037291802519861553878736632416093078878586807951524824671585867130565634429624180790763270484245598083848833436727429765287827705351184310623511616934683937040596300811952757246401525712257712221384159786228873857807127673885314217190723475596438161198673019879261908562212518720825191083293487313945384170389480511259864088313533989113326003884195906657202318316531133663970803399185040580583753121042125571564825386496356258210237740332119207155602538484783232309356945109867502436342634537277175879085892294747770811299113421365051566982933788557205122402171958132145294619313541862636283751203208546401691884484335023723688436532640017063046961115586114158251681820634316238235134548120233200812498571266958155838978211750274070312353554703987077804434281915309038361869974086906432841072002863137783488969016147549220445168050276532573311473604684406257644695204796027041826851706352811848347206708998618940548003195398793329706527990228920653898880886057290757590462731260414129124465298369101973583620928013707350216902939156488980280717351650390253666145613589577299676021471591825710732212387348323230717253004700702460085098227062666711587976652585709718947693481760638117881906734061206631683148975425341606994945585581024818658260740256720033037043190887792179329640315285919532726513223273887707946311644141776978953167382112415513274408445913937653643725692173000231805759273930292598108643389991182138618120937828858661215123527055670622936094988573674535283642565032733307378419257039773046585339533791532049307228331554985007652069604835549561429772549069845356959348081990107491065860446017014862729546277599629832381904694168277267325697789763873233488221165969905056217393755643500114807769040343809069583604538242713240544484035610114102459986986717613834057441916315475909448814694998351691852899833220471027447974036995445775936798306651471891067433455147336746860262478749433133431130544533725818654339973002063656877640354719474885375008658142494019704696672986089531015005653863035199058511826685237026101059137290884032604139902840384890656355616856600490032671977707988220510250679165765254140408185883863902209056644462708755766694044574845307744249745402900481144662743214677327102183195559423061877516987258622000309010969703564498384419764986636810087369771654513722596965091097737404893506256432754419205187049185695724211558718006834819557815550357450164792885012607756665974497670023942188948735399516738995272207536117552638994675381976275152014684205206927653977642932614845409668274040076228822123466110499007819395850597381221680086293060076235672792199809215215635146009015374884753194571299444548727651427382259897770809808900698040177868477230837421199818542976570458375349643254128003784651001557642510188636335636648091330808605763548723026828361385592522437083242689951717753687244299793990570208504628563614984462297755786403737897319437032933222889449180626982899439117260055310978720503370780220965617529385695217605466925357206520294099315729361169699827406743856304727390580206425993545757920893824382358547937236510853813869606351448035342713305624031931528188851708029450234029772873686977837276315428046857371188089847244539568032271681305038848483722212004991101242965572218386471360672278301092363699335815765807740227714236281134381230948932329662676642205430985342830206624797096618626175823226893967727345535991537400169553177312839823654990617065736532473266544100160762967985454348500539116564491200861113052179867945560985294333209605999360791455309653406964162801005643923065381965353063769201153323584974893125487142609370659958020962168237362022631051727299234939233996883297073355631314519307172611333609063350149697795795280332792025088268391892726350794305328218260125598652356859893507136134664554633013524773477794145147398340992099334763157030161729803302577299087786824113621930989955282725851623032188809487601363505853457398400299528037069477537512354370597304424768519946256281785941836237239702803368253229885708932991096109146020815328709292078744690192594632722417657803805679243710845216518730612619088792634856175130544263153005324207024834613928180695429533227166687634800264141396204624258036061190187773813211178778196073121570481886971422721678164604526443817856406918629940027550211531431550573753308537895194117308797234689880362194202320523690127821966821613171829127317573156810396186646236365470065029787417262766806941673361179939864899991699734354748662497309765268406968093749002870801480364031924559657954701166464674561846580629773477149140507778238208864124233554979090103972211291513240455978894018695946242129649921928442867228476491982969182466392471293315387204400365583466080459368351368703036616150938384572964333974748326713437440958071530166738266492987112506162923281003368905389914669692857360501683076165384039727421885591539132899021423488953145870068108218081263893601519447780601527881191599889235010395991180589796708748087715411896036070805382371451431393175644264230840520790844688325321220609577870828465901041013709375525848181783433026117900231598164658213963651250746762903685070860619015119921651088099369316411790649637333940847905976413770263716653148649440760939883106459125743349686135386027685510666492797422021545659290410689526889522876669108315523522331643253938802986407642279538472163743142339728234964886484309169126914271054583963711977282323248077910541689398539586613845254419738533561620527486468726704894760702866145552918857772227391711922103073086083979422432469616519817778919110608403194495182258879645041435046479839031119365590145328825539416764654424596747923801067672424904980386515758485603870135325220054079584385971994164062594408489837001490360530185902674325380986671047639619205767222988116145867540048086498975030764418601415224534388060103989155485869738586976260844230002872016245227068357078624110926293948108911228887846315130378226485939854861286731650519512511336527911379281383070579719029137840721662605027767500391998183999829886557485505945208139177572837542063775053459985918776021620341125768317225983457725873745269690656636928622890206568274886138451548855616692232694746517889520770483059323277802407861613634137657957951473438661585929316531428608113217551664195944565337810533123189489552846272283354091283576207768746913035651952765637747405404941763370084475464961552524564821521110986629774207204790213861558627537962954393601611770440751141871684565247357682181102036495647080235054787924749573567206936301223931100390401721680024178406856561303028893727451954261547654216076269019215231196706807859995847851568858129306065808804257471867073456325230718773517138193644961328783177766980435870483947494247058288752751312625697259282830918660337593310388241313507456873108371967595969353448644017589119484431506161032572107378111985341824965820439543162551053268064361005831275522535408094324230327323919831263715676301566684570760927044475454320038289052923641982400526198542040617445162894722742449909786389552450692368251708754083747124058651278940650224116865124537404270655499150277377647809337321775198761037291776703699799000110281034691073461429068689022636040757464863660291465030796988564605617801596217941885393876161572386437013913580693307406461431232717198877225816100014087760875618488869423294752498948145165338684647690451731421873208105864548797827910411179813351594041614825114485595779477586161043671034914333598334837246426052561885592750849904698343754698607202803086265940410344783882148524892874370213889506566342010116892116014526283711964671539902785550952644468019537300566839667338856942683399000395047972811335805928432895597254745052293975225743327307643400869904517147448471160396761165387782668515329345172746893067889904434730644010996719272225880639209009125882237214144601161752840274235803527239016575951729074066795483629237013156703834577384794527463491368078309588533921059707339017975888691470796134932119458554715778236662472532790741320676052809411797456361411957645072976445879978014407635970375525944781287614976783944316530791363628796908122466710423199216141577550653195029811185094881754613569514409268977408496475370872596944942781311247593158154987535360752885767237325381819330353306602302223209055377052885855380731653573085349642097698974794375701953620294801494552303925612958249312838108626342803763646328243135325239828798780796304579669820098125988295397542768731525429885243384011134447382437984292297366572814271046952142262483582719824877401046977075115827421218527006865873793569800955458630977426194295840677379532314157775914045997062155221843236750695740238895694066229910055235178768354621998462077102016503787256044719407691074792700222117704070711300797517526970568635689539388743805029379554122446307564140919000936065869327449055076669070777039718495051128516850794228665983285674979007727683344345509078479218564125346274206856620665410774411130879179227978783710706409627042096389517338550801324482876999836282945377849758734309828919468188455526813238175141888168947642206845989888520260516833858618193405884340421130661566445938743715352366700145723868393275642966801944682351482361355817598630098337224689793378828410189377731076689452686953051531451346214924438059057473284069309800747367177215016930816249474353847833609990504395971480158523613993715800130317121349372054058176193221624408337516795960805502992154876521423624362568707610545858709063730520435932540334535568712522410352274068459286466924241269491893155914513972710534574504191604142263405720050289943071521812093208616354331442674667669725780927781834988216432427597346095601970009678767843680075966160077770901704763666548386882337423746510646556792916267804627186632765727015583513505032474893701070167773454861960303569365681542296641598030939120171139741431354691724227846698997720762340277700097516005496127927466382737930764118867478315741749509962148437963466533329051132580607647045173415727748571582141527838353841382024049012332276609279630910409965473271744130262314832198567626932522106472032673779312816373756233841313399629148714107452963422563240995717235958535607302017267736955298960950866003596101293734907012731094224313013309838768914223995072696753713227312401812464305896901734948246219459552213408884846006955839792948861372699170796507177537247633547332909082125631127354814523858487105577312941262594867795445610798542601900978142000018108936080852092843482227131289813908852242177433990524909146137667645962427137339272129235249818771837334882830168063509980249381596814312324253146216639722101010624899375724634544067563620483687264367723510570133167176646389424075282766727558431081065207389372649792224180434642147822211349743033535074456614472582443862597563339889498763281536451517043443156638319982952782549792971890851013773333272072836769815763219020986482285298349671826546151613693786260035833011568743747971188659690797633582388491480099334198539220764771869206329512348939409553410539055895629614828748656174563631482542364525608911302573738282058100731327303597961065803243518563468854475602469613359994080485791411944914434766713250859680363080998266413202277778435136374749937472772394604837497311503851746026397809833353276159226290150159238420491700657530255329681858784085859601670909155110282644356988328677172097051982674498585862017830094208107701550692317451591327057732068764697847609249399318832496581541892922485941634358890937808697806970835864922923941541831739522710810004237985551268746873676160485482704795850291410306797098877271550557836228281698851183621236469783666805582701434898329171579135499687553487674533572160298137084701837563285952324946926806879135749551379442730752015606161962636116891954760661088767713616936330090980494382586473197893760451184511935478370442061993497036561033046728875476190367926410566417943787012108310210356352580858305630931691911180571755890666875766255678809104668203090372973740765250036551434295952375115857350318742344098888222847664678680316335704034150482981373092627577435732352001704505520177243130934671950404219813772079363253568090068990000345346234015868457506808104258185145300739618043607758549467462917999294113919554389540344253799580547322242750614293227194944861442763958097295000157660822479155523201823878208042368221321471317410892547590485631998756249955586490782855480880912658873305501206632781710742756337684066828541791731479849144155343039586699866280706540867680386840493184585087078158913685813449825883841262482732725874005138488570488548005537461424956765727094383000461874250593942564403273979860792502179613550812209283516594484330139217853288855225164146437139084840001612515680922519454679047215307160940112558534055950250785344298744965908089277169934913886392188801130599878879442530362110698882894256196060858154540694549496439828807903905762300741996652547476338795473950423502152911893877919712274429147809616121956748262363506821064108418821933211522158311609016274462741219692117796692674862981619284300605872418994116840190651725341414887933342432334989857705259305739180818537496749508271922464387114149822404129726048127849777019952640923318764951941439396875913794727663119169062728120315799704123610152080483575815780360937228451838691818716729766841037060827687264396297568029550213986230672344575837756264046317193807351354757161741437519542839847128955030302997506117587391335880119668940923508807306356197584965477722798607897146081093928105896349986211337190266582282043195967439175116660168195594252437108393418492416568732311579451420981993339439871691557090144589738493549478720704146492413473230519397177257132617360351891199506438672959959250236087408620355472558988981220718467984057032238956682075924110768720599411363678122727774946647280406542783470680828736660409643953715250119919809634900165289343847681663549885493654944504086612154387507320036320876500020874598828959125420764243355853821782617302874095800485805195107606300444336347870417386759404153361369329286848035779720601536448998874724187746125265688257563030040902323816501126263381491716640032301248990697316283271170748155728160223981193122022655788142899403274179448850556478110346519087669201403951826096487844713260858860131021997085402280511426218444471774292675931469046424236325335015710340277322519299063455860492604618849707437218244375083734104665545419187072095178112229541073396824025735269147332937864009006819292706734230131957000631143206011061941799113601393275402996843298320104574807435993065937213375769765647331266513388175343812607442425258069904639787605769975006502677313757366008097399292466070056099928874679254314883144360475166391551041690699211885397273301323991926246962785427907112610406887459384299843180369512632295431970101055907252375523615440375796417339914586705213121057611440498011470078224119368781533201929182819514326511447673806700923251927123409042682618825235038262142906940952718563179489146196689933631492317622414873081991887852339015643279709348118780154163432426745741640781088394362312607761981740602095259345565883223016655854556320189799050090115051749203197663158745893058742619942788798318661819052106866779237389497462492494567558230368830314802508060218363033467761593055434225815649075367763320965475375731667138696287391332456269800438212335836816687304716400949745563462260144364745295050070497587620363838553296946923512141339099530321759048001734494361818309745277139630421662040939858644896330162197400996959253895522772310152321945063688944713461018582858376438377979424788421558384768468430674032751231109249309800126321526507864080600926635196308632974003728722754653914386098702687029275930023340448855632795819756543317555150058988092184792189517564789405229634154064954780740064305073514194741823499627505690136565254989856715449457189562795893697143523173287667328684675131167243851037818525410827980451339876422575621295596160820523924004150202245510432446564407517068594991928005915856344018914922814273756352895315572219223571043704411927666335435070348308280287256605229362613818963950729921679037512778976696654240689198389507377506008232414247165145242092273469294356090390440530375354107426641207220718370341152293182334613425895598826183926050938270657752941531135411732154550021909729589548978483959038146618140121823075600711257427059203612657066471501322415773360492766535839193892310646982570793355265554168751724704816444758350115540664147066699253251948014489702216444013875144680768856662227611849429774504199330301535853791324367314614385922171030298943899271832997337476135427875520461221304190758473894074160807455849108849583469915359939107306048835646619166966294115704039930553525868156449546646071935880153953145541269699351972209779141281543013413527487781744714017021540224045642596156597401168665270607086840071557164722505713584444103016326586601543336159700429209126529498108372315099969955036204203262490516608505432499901029554411051006562713047485388905129031395974693795506846307518460688217851032954267360129190739641494720791747243085865296775385468171448488708518929898628231361375362108431396888268074673668972321264321936053097894740576137000669018016366460762399006103333341823603722604888496252740622620147493969798862289991170582414200424051770683810378928335409547289597794291255893520807029780719464268112402251427125504863967816906066562096205152896227140208979120031329436654604183920020630911887850504767854048884724468082905373091147637767746396210733535914892416157765494911651445387647047503559566125180438606109347009499009278816327739339604954415292680734797472659507184556682960418097350139357232752537338288638830230990090295131513076536533862777177097255663149995173495580205804788028129257251275310698411255680664584456627633058714507871621175485020308447781898207416210140919968910738322135707884633372065168362797613703496935894978150671761094098819698332932449814975212654949462893243325373888261527024195121477934520869103827643373485207931002529191025482881141195679275266548439771267945069253622681244774116835975106189019034956178612223032891576021770205877353521480753495406891735281671744363319391159303085434565544984064664403124215294037640693253173839674558160164314414400610818202172491770083183141770596582635564578872355035604265511234017054775487864774430775417088977860207503917348488705210373682987326664835169851285978129298141169406890156944294795185146472269524803196517216160124162350175515733875560089353796730480907342419544550926521947261619064395193627740773226458663709025975204658226542972935915456727043919827657750904881451955562310766349718567297336054431507115449801737515645072421908550167846965170276066985613977088301698044990768710422245649328248248630512404538206392229421383647415420249891417116352343785576750806114205340426955259019111378815339247033843263891854801864174620952214854000950037878723326487204333129972595571580975582963527903091020218873829560106191082068909396930627389542148530918813735220496363793968004128904175846478130513315869584054476413814609826122446341386193527226430386181470247315217058926815440094019631832712161523487474280158232719178446000403911765011847008860933926119778413659330917798151974143604575626444889791207868596808224038698108935493967144809061767129057236685724531295681753360461073292358766584186795042968768441119134685318623163687602236411505883134278932428881915104420532856501390755729244915061057626915775344723083406502045962583387945935175073442833935531068092118251112638741636911804105033914899469485641098929811458904687729364825102452700967011180385539148365534777995793411854229809181504398360821577682823449425367141335670697919136299580024993202021594401691344659178752576275458000585509723301639235254527422156327515205039425245416903551598805174636227267486901681201778879929499184564746686915501373752046549574246910022650712774747469936194258749150886484439079463188740860201234642545932016774754456437948870919600695998278370818939634212543728742197996160396987893758902517643671117204657477829503313308359805217542465597613555348177409174004652558912710019488874594952664334245403012195554292809626686553188649335492459884070994865772166679408232507447933321862140153495153843407091848362057956109736703982885362633887783047408071105526364597556704016626079901251343672328663489976301761507957733095481179067044504710170418976225420910974185918358761093526583653634686981594188628688176695288585514561883500883899277937212259757944160010903875580090917527469837653910346193567711905383031995566564630266480383133991840034956385076567616344521677320970065199563743593539605717778356433387832990454852492496907116151549436788251939898180340131436600361324700131665448333680672872362710044070788247409566305590592247366880264404007771326572205298057596731836385883966276325162051434662915487470147498996884556262447467329502673715978498488400653665936200777560685253967163898640743760611450116382911020114093217082883767940123191411848297958021821997537174722645743409867164672552082647016333389551400702019131117620375485630809661508088176678165614745933080427392577554962577973531004365511978673935128666805887990493280777005919931217274838738306065559374279526076797373429675414057983276993837569748552790603016477730186655669502938682571876576694022047543943571911584422275195492536180087378733819660509976348751006757024445825833025608061560770101858173617831652947265209692596936998069628810624652192938618755072242063748129729601403527307327820025654828016745528854281732203738602464271758424137681075680644690359668617439348908510252770549362017449263824421390153057706061573798373202223597268412088947210333409420553532374121435385426345594031089109710542257027462204264888960623001043881913045662342902026028514631663229069383744969396412417916194557975048444562802395753453475485589594072704208183620256988619939437743356689561686282635117470315368971786871603002274640323464642129909031161563919074356503619554468626715608672826271333095849223532903009760983903872478912674656939567615434182730981493859550595278982578127450608293917315943684554760751115531072764342115183389416725311393457320930190591983937066059370560732674757511386800452161063733786824383803127912441339965203397007123431142086577225076415988501275758078316235938517983228319745540189988612291616279331574512777613050091541309059279576950240818268380348939367445378867067247999598886953773024109226095778982944890451341322010427149981517063676031866752022705390724038992330844751917395090423735350941239993210116461775558738070406128389709064682712272650301888399331122525547946877000477218635007431213410798027135930999349877735615413401880049821870257314082910169955302038705505320426884409380991982896438848270238692050478681925535581288773169841268872172777882908999016284151928537191025354083073557933812469317730834608689668321954394712585786369843122143145639305406660297404532832849141627123138444965726055452030528322177422684080058917402800879439536375246370758541081770027685498538479189957387299535960484620554219566173805007097270126389546904964198342333799260572889024546178346355222909573563453732199361865895737630778443939042728312466560385234827347868532299483849821214450992739130473601593944630392246190972937776279986316403233912998557118680929946831620140263240506723232129902462069241429208730637459796714465888305283025445338488426943234464744916981902762296963995546465451246898071338670903627647744478693361489071603259706481715669994101106544940385475315431916741809101290033247204109291186248824699128238149121111523628280961586466488317705288580740580655516434713264914357064954752867854471908798877311106248422216737228830452933456579837442657227034828277234599782271564453025565178159185662220021734473096188344199268376520252867709140806287574501474409522204779415220530250915507696943870318295799786424831799629737948398196983115956421930723602077251130513445891048672308015317448907451824192630722972855321633313850376487143351614648621468851701301147141067611111599104947732418286865418030371709207025630411225317750495362211158879109870423513502961153110568555428855577732197268607965533249471267603378866085860210171257952632439767555257327957311889485885340734070533833731698543868296428756481412183973925381719141960645483379173628958723997286586760578995691677308649342446337456725488950401379361226693164786901560828277432170675764127570766468548309933226976083175491514262176775222320564865661916852884895858183517957664639009070177564766979041028106512078463702125258376731799287282125516940809799289922086627687786073473858761331586949000021427004236329241571833256238563572505311226748772875167506236187756683224801709484451418456329058677653846915276489481573473668334051175019596249604435161999692518743430493507954204089837992048091924186800475566812438394715425307345723769934535696193990488959130916715886605642051543855419591288303039906701281283248848418940856728252105326075091292764793182077386830542029072485536572459617701983080251241985638373233037901946130095920731101643738989743740888250864524736607486759811429819614596478680119350755199332337616335772451188665986970476851138291147516249536849000213719472611088689898850139473976709924096907173797340108152794125247184808128199104115190383173788652464954982290546007589739287921640645488012723814847248803314566067760494325191975074050711679505465473395935965634772394083283934577758362563756408227296192312789900428093006801304798771277933271739458541605338714642584088416586692774706878758525085607777216313177672562937649933431431944840254627443100308860895391663937755686894727513188293314878876579071485907738294609432736840892379600718953865116821862484666827483680983421231556992314045869063825586931660512460892962068371725055931059679673109142231935153703136083094185616739226666568831733353751366146933122010432545230008804905289206791846855819710742531616793532479918318247660916357718335230084547622925173150318556966620148027008375405995883532071929863990370970802593888130799769100203322411688686446234501260970516333413286518063780932942646161979405065271292428103458969722513452549739356516241739424362923154677471173774134735441885110196411963714060418599236840644668788992450522317687617270219401609983749662404972979262654764037956140559656132665871966389050435814823457235398638994717281092872783865740991382479055400394841465816648181709116267903539716681874303850706012159033492629268359571992006259490912534613670297817947610060110392614683439705098104626159153908733458600574811288208446128144601861242354492208079966515200426426841260865063963959144386637494212703423315120214729778344687726344442475924492348967846900114492236816211151828747195274454241991832335666106673399719164968015939326992217495830696828060150948837682780445205963692139776668433895923869413963310235108731787699906658838946220372449627968865245025928620155672025081759453934102549101129106665323706030269656975329335526863996816364176410366419127740264709934671206442276228338460201214470631492995786315978200137217759551491074775673882210196255165997554747844963639380318219219486667075273599785112644272702214353759501753330125647760889865386439332929160977272512058883478005788075697185848014217716032221981484749269455450957210456865024642388144591226511708090539521501508352703112668640687194225048416254025528173630091822089193331397695499728512548065640275330931776662104406120419675273904572879342272855864812303977825021545572958423368665807696242819484533085946991771623476978611437249228077018741905894882238802451260111312259317644184718911861415717895181114535742893480709136861714365855537404964098917614827615262945895323366314409583771500045025945350621226280508734891673914203626976624268993051295325915400580618606637098703996226328023208071162203021651215495577157183216182581306696680348318803005974309275869413200317780148457085247760732930141117209094256162657423605326818120633049679700041646772583352063383832511759020871815894212939319936259825409131481790283461519244252237973430538764072903458313659296082684916248793513350734867167415546103248382110985654826108723643262408709606974513096203374127274099915964346293773712607645039590491349790311816714670349999923271948699193366094808572041715375823702262199268650276727801082468240023049990082299955769200472318002308601672969894843298474267321802766534165084163389182014811439006348977132895993864018350482625506854009183938780916894461295057408089219666639359735284260247590043840685080566872632170167308625936741316309212418899915429394249619932205867619980052387916525348923773319232425939013934337853937217837145748749113356402135407184973574097368565689264615091777646558888365784098634155126325856490539013602971884289105384124876999342394400177930970588766570952648323446072289729463857115774949047437426612316318942352334298598025134075397948331135818844290950746052436539145863137617927829870024038891778028607946906561318106038485174403100215692274525057183405306144823440745832114598636050311005405095477620741564975263633953449323392640049663428230575834476137274365918114349101858218741418650503276834305002801019076468031896540571821161801820362924031081786298295910275767266463564408359627021704108635270657865815671450524587201044365765392196571398993050110469806480744938451226667657022769776483127023598255086861061557049497938226165952057970890872253117880942580596892302230912302917518839835581968526602514394976134621339899268111313947130355577067364476805745741057286468321550727226190520829679212054726810025841829718149399297444555166040350958615944965501286194886719439230664178898032846621221103126294546660055564942156795515228878368989257090623313124193300974212080610072774627815132940859926486997593000324425708544516800949720472388945387714951056373398007322314436058361797461948763330871848644048447306030804323862533346807969398284204310792023448422109334472435600465886493517019422126678701763713599286323444199042620671061914079921932172817866255508048946968370353385999572765944522374620274682501570295725487519675177722365522986900997745200575513137011536201650445462246557609540529296306140855893495635298485073801734239772476518414688471573993446615151977533477726506508139005191383875798724303444974671496304677655889297028899877512780820757358544929652607356422790777869967319771927245180522744495901742475433840420266630332027635661958070864503549804598332956043674303863021148831098318524215961823196208214134904659139075932058776582157247390745050864538265070654580300081647396314723920896511430132520291080498449281496364452535315728769023359016371441257857723154541289971115013310469954197052778942420783849089726421709120302373482679748624086758174956175095399085400427527827687453140900509631487791120313028923615465494661019994237500207433871082463730093799731114204269234564028043096968796867574153671656663397092315230882013325750571220409473072336750482702577269007392594251787100338342841381485953488937490992274864911221232895285924054566735294660395792275245217440559706630392135938015070195393520311404618152656258780014371977607415583425689550294798244635790882316092805284727269227037036951776084195674360601907624008748804881726612548586728311763583491782578659230400463730942883370565734643581414052398200647728490915360878730758542477943278046959528074912653996003916272202135219503629851505164796179950760023060972084868051333500917527575785082130267151128227271363306746205318605104698286698732569406505614867260277720172676035161161163352718824588876532656864622471241439162578094389576690455527997518042224693431401426008486593843846110730447665319035554847304217255696675513427693691085925285497151510096318091933270338135669568332805239888638628437572153776379775075180836027361411522528267535339968841421567824924619921717589412623253841190184552545659199958832748913043344841165021170152206776146744199351921947854850190811105867776594653275277064318109713184982441803984664869775416808788507172684156699174750543786564593195894445312382716582147383972780463186256822484998029590617438943662808615694521986496643507665714809309240089570686368601890692686679161498161562579550703860887827671724438069603190804573150782790372471620553213143307067742790859600236183558799440056958465147501924722922748467304830214015338019990609531275454690483637544324947028742523514949948060406652400125400568041525502598464427368165776465922552127191477155976906857841666947332621049990147450880424587860271260435297104818092899566770394152887636951920579533708512154403242784564368331100379759360422869184088916951671726957762028673249292238757573486221533710868511367363231139250227922825374427039201632258418001196734478398325312685413232417671958017022014192037802363956665149038853952007922900842364320053841297413426510929161995935730669096177268734094182169460038349541775875001470354230370310796708855215577701266702754093300745121492065421907991389934573322970133547703815095313077703118180725959443686063197855651391916634446610516891499609647771586533471252822435640406527238767015700289378925723328330984920494322188436694676582767618591946553168721240968236134233818728532067302917346660759669912915849610469450008003796593086847326523431346551102828964108002410376800593317948298226757039044938912353887977854688736598195630108692425305799998653551435266793458318862174466349336892181279165033672448307384858639481973582842325239974513295132616681836486579513827813726550287684642031767499579791129909610555655171733687388489505283728802553709073997639914933024991946586350619923560650909487423967941967064392585690321896517805946098546864858043443566060620885542522886192173452393711894597123916382890944913632094504156507192465163912534786019430561997371914583607370458924056394194391246329610738394019628152708083052350649221338426562867333668163641524048488972449745074879591815195179096602698859724714957565015739337719068029628259871183157317742865727019208316705885400991988545715658942559246004076970984826598934619596254999676945868919576494652118262012332152752668211029342657052682808646269452917684821307449885796254753082156768580888601528784807901561982246097790579319788758603074059959892447297982746617898925440239213481278980728407689320306778612321292835106684110837437019234289762342816481028815260818683498774265546353154468169180544567543720386411907401136245624119308325706051418752227071252623160102383290285045456265950676960310361850036900105218366615204008014914067209333952429566083316197919066540045717088366095692015009704832834547267058656053011484326462051504141999932191885726995173601391305548896847160071689629170816750895927193197669791383327682796283717428813819753936674956873272154818907287883177405942332673486896395159466315003825176921746103422130148500111126694397502773668264537681827990986003341470610958792785401402229390081101101070318582771719972504179253095464367162338027043203474611927447767738790531985864249811131142393943753773164247502062151036752279123630410112932215894930858189748479912536467595319671180564114662983261960534101356516922595611561178205160050152725807044009326092470093754635379594152281093211917275053420644606856279852797282103485438010949221838509015653964151708523653940063002646653104764130311827450412232566803772292402598825137979859359797285078565304071019296289033545072024969296861328071984504785499172340998427064802466284856666443417302599159508022777910693475574483608710168719005892458755766761870502614690009961314527833781155242839067332932712333390270133280398902765199996919156216751911435185594140780072600713560929559354329246149493409194831423758618506836720187391629257899112389168431817558503474524790876123900905190214974751810944820818272939216977831638461404301489463587977130204554095354537839736543061675760572873331882708292491569663091342420571926545541798413220397931557413480445959414589296277145073998855726892124819112593031926044234876977059881750082025689134125426547431561432541603719961567977853545411674882648398787060293901762660541535874696926552450975283299021993143895890592158973441689383563288786771616215903831852918323615352415087885951431943294701498691843501102276921437670861604104794987685484662412617409079118850200739536347253493871598977303630631639907428298709956706227459581486016020543584912488377945827477540588439084646058719153973636926071929502890913746888964562428793950768861070462572637242785643192284940505858725818745951261026959653779863717852446193798726829352788386738835987835507433491567022651474036888696395452244053446216486614582389990376439916249339245295854496248836133247530595078480438108180285533586951259943413380834606964226231271022340510573850640288810745220195347154395303332084362705898276213947181234271750123976905316804189291704302752587062356784107358283142463289844878488892453796924272100049637676271406103020806391200881342006987296134504096427561904456370860660390341857965573174429282417051355588286658230534405349544417177701779088024699302427207090027627185542145063423873111377970944341820037779397312993730714248126542858561136397695843840828052838482581972513380787762277341940099019557306348801782964407074013710563530696911282534680446299530188385758905752955341435574943506037790569802757728614177208116805212010673307280083214842243855863543437520785979215103536519125490791566669654327392857357441468811922633225993645218318734950942980339860667214527195105076598137909234445870951633270581753245809475873593022611710690106520270432276845180860507811036754473671798695248987998377178325808302057264950691170910189976100414139329591152369806122841921703503814204302913805962431401701114188543667033968411653266935352113598252811153619877598665598262211383881002348163068539018219672194571259610069965957796379766252357881749693677515733299287189242736861752253103758264330744950430601148214260239020139324765116922935791547584177643854468308515661036621178208151241750881879078412940777975113700509801545067779360674136107812535669720591765299734758804869073239173021309582516657802330645312419443783236634243550092049184978335986260369184926390451828552800236167957500958921956269290544886543998870434437150338533101201418073638965942458951799529892267325203744642735750070016606439448855555442763762500869466559102453134255965803235496103163852080569848894397694263414149423470851581312403770628106929727106972481095101888744118457627323992173378068289215774296180161907110764636805297641643750916673289063426436184545755099073386327875196900279828731095573176336972087523647688396456742491635328440213347973857586497580307745117295048622760818202441911043895476092914488532811313316295464270143714522337011871837564707003040685470568045708439753671721589663351316175845852312653697118275040019314765914826123607240130541672803216922611701826609154982611386516494490048761381661463501630531036410149403399180046847186981801131765459376106199381671020633764060493634468030299879840639089129611537573840240756258106677685430620959492268821852581078998819271430623627128452298200402067120120275846879119345836518323427377830718442368323596856333346872627985923667121321793578946118339281370107004026050404611151086442007418534405521465596224857459811005310508992146923457241800564957978035908682832357056682004599707570625156602003712068658173212736338193605314258192494010015327768074882386381975867860987826167520248267869502650849052545297023258718584594547001595810533539051751993159115013345488262634478898457378964961849030327663222005297520822694018127195991481579383350998712968091579705943272454134314036753983140003124133932921374760804895113925127166042033719289892065924715138835255490708374238690077361592875864198679692169324773870215048385981547550514704050729318564311734855619360215923339334305172511817625900562825351768617706358243356820553822988022598911359655922255557367822142722440164451230652555705805659195835800802510750431988312500371735637902222761115169375332504002636224801456821412084495591820946572798241391972050494512514511063729497753242578893003284461709633196651852300568562132455002017489711220530200754633537452142471939162976079540161694789752335368058090275366494263700375642593643971559677899888710950296923593402350447244954007530811774217948862651169313067910626134658979979751127764754570846887755945421492974259212472153930129365782905088723287384072570764815037799623024535682903497310347232217179457715857593269068288136160231178979230955358083337185896006018479471535724849936754138686608934885678887735844469269145390071912589464054370002300652693889337047139375687020969921150071477278660862440425476490485027257007660386459153691020493973150146094454524423168261576491576328071064870884636884239476588216720866443680847321045664897217910777862805892975383858399327889144437641213378204751460320658740426197694043282829633988911761888856659263431912766602337918174338771040498241542604523120306221984795866049366099595051260949835073053521234848931290449023333763001297602593400610349968336912391361578476286855322392354171343499115210804318188146168758529332415593716420143898914316431627193238996469956932013556302877258133469429246979148909833491234974087906269230436597481549054950062294298237260401279376948931255431023934358891502647376747802075418338121135446232253721449753876334913368324243176276609059641874914439951663567671661554380547516761726064417454165558491847764319686573789545236424415045736074780279738346414080946924066018700159888378438840778231218322411493280880459827029144682411066105829350221760110259110879505451036046803406644113149368873251660658815820900750144672692661887705993251906370919141832781474249688260618132649315448765550754500585883812201146072191851379707588324382913285950382817777671926349883785969452743465040896669519319015455449826857957635976758454546931191138324357149513313784686553526949448257745002300911222833116018417647138339190901770942769753641472086378574761666096314135077745733541712067867821804448988347791418539338409007950360227930383281345198403764083478335826034748039681703269986016704583408730424140896890656677936692388699981405588992190398989401600797583951415006281251997973076961011723040000931908266126665420855325420796497920287020829592669321627872843848883534542589355601420273880655374784568025089002843715580194959219371098230856797443289108931480296691606327246839507127904897988924105468241389280038006109198676837473612462516060035759895173058182047143289114284023636138604169579247517945112108030896358171542281198932617216410187292056970954683640013218588900166207034232390827197626469165202887343962359992379628305814687804483541165339140081569199890100294390923706353699507508550289913159355471517878153525973482040966781017874056555009634945843605971881831867843560928209872710034703578791729989470111845283249644686700368822229478523166193279478460002000587204773306428452411160291324863183858613331689809886213943408364590201715906136447409039119648303443115212785561959295712352841322006798485310399225173566487931021207938614183916658993291219917643353289413304737826515820987336253125444049839556375897439260125776060897562889817347460218544048193920455212388385470643214130746129042084348162769796354994440395767528658012170015226479740896015881378205229381818124805433246309307977739644344636669209064046514047066059804259367894239621685765840703235779689702897415423894169025342620484468708767634122819622432810355707712093850048769759827810781968975593656835070396322628349744735676126681320671852257661825354538189319580305200002074703736590026940834060611941280185121891122071004308342020969088858599094165896199153005820348474886462565266398710079758944628966713020083741856800262781189835001023932084244993927364934600315734783128580485272965259346286063297249872893483137266703942953901373103170120686370523598534916812315490001549876769691460865751916559151141767366964917152538302300071824754052372173336465019137469217357150767194057467767059411906493143219166804273334691857247383445808939448179241319603760481302055083765448945855866382456154303584012677599896424630948473906577117192269989391178394964158163422019699380625314488776220684586514754166626914126581952114114722246653417585479983313923651750374443158362788397865167368120878677726949739558216528999987400252298100055839030767550392545331393616827066430558336347316589889807057088518014797341257676282422434941384779963136103558568032475821358213727831112716824523519043602379254060221412465796775211392355787710287603115039861362165588829465962812669652140388106296530191584574452388745660849823861112659603623887584731327400442033887115931984014346961106891803582531641914351477602497082990827318084681100765645991092226734992128951602186911863863097608007180999846902266295751830782727874602944535260279936445108948477576474557010900113955425037511741842823738417145142330740764834845629942935445965097138671937317759333747262877065431336293031531362096487128838828372086777807887363018914984652554600794576201341883883078354277437007870615505998077473972364412500181871198000053540341880381892149812420008571984557366705236668768541913238406726128398284025766172025835075208953566006961427145139527470629516466260938059506532688584258970028157987684247027600202378286684994680168924114357814584571736366647787991609502881605293012860386000282322748177181784061640634372382551716508184309266575508199935658310276089211713267599847560167937589130063769765012639888632451546667230775257087349314718113618843935723035346512393425204016925728360328859322001018105665558663751338120731858305009947870037488195138310732126446546560908537323608954950121051514717864101450928055536719977471805596248784801816601368690743678122229644265171214349005832810688710047920842981540170967500573984061961113186935239338683081939772536612340758406964461379292035319293474066319158482022537528339063395112682472375220073214036530291999474416012845738250719080802080484997164539923213798669915342002776510314387802390495134967864189701633499320168711107187426299280992782519389531978924566655398641859702237337086200834546688011117608972868479330820948872323591654888311046670682625818128921121982738060533070263025947902858587913302441298934591928034605117548357773425919785521650657741879894810483544974809211931147439888900366996381396327234673604975293687330476001673403407745122259511439599691976195356668319877954026466238155232576751633324189987057580524483601382378528417070616122417110938004391292361775582819295083298708999373976425246137507899895777186853163640530512593853966412825517770759879562893917718230832381342218011056224006032208609124178764111694155127064164331529911607277545022045154126917750250984633961640154838495637708872272102436830625367533103741720363173309364970695497823430750490814728018977390726723402786552716978757245083037814256038385535332618250112439345354161852032329259392894499663306163144831693085522326296939988893489906086430596928370916410903389652052522759025548628420092925919571030783289362247182341038187940260970806940079521276880336909464347042001397734193025696659793997128074902671259279971567154912284067015456249935847399658110549657060525721082054669107514362444384460980800602385101795934583840860453813529231555556976051450246352370121439422594414189934595945464462895549909017399179445855036459408692725212179808289142281031000475964153738125139764793916480917056093650982102757254054329467690071772199784165266376514091971278628354896453380744052517474552588389752372413667883286091833939313201361709365106030120396781766885827454071114626010162212831866630759957202923580911075836527044052153292332215752135154377734259440751997551033369196505426981548159257641771548894136703197188671102842884315264698065813909238815123725330452778936268888643144312718882544593829399514973322282802460477421960197056592147208846920901714067446857736062704869618641587152688018903182633476509243629809820098657366128729027312194052824282746220185180866908220735537625345446296455977283512518166620599504945933676883885199065415972346297181993630180919498675864692412938647857733325135711327016299302267121830493440336071001168795541291797152328593454185984681624543434860945377231051068451018667724115009088744853527012892164813545962049198280076556005770797224115658630967732340166843625533328617606469214277720313374578170102461947787364368074817903482991139493758401516849587917470276778787957294505445255863989856034366048007966708256963499203822038591307526671147423652038672932688214812510410112905131044903541966512275692850315977241903373752728494515945992965630822427749485818304727392542026809858962070103219463727039593073112696003941237037900081126503789947765894794902475422593953779382931379107606603318912522298963625943338133114380559061519090492473274847968118018650676592793010482146471664067854325469928869765657222079463586676645469333385294796510107874890369522424321419929693356063788707427315836356969575646458884911834789752752545165886583932680394540948830236308686384797076604006171789221316138826934511790005813856802273769445035733776289167615754042108884155463929701226096688335534705275691163910072878315686519441682936851762463159203805402705603558226656998443075860248958387930609017248307927524769939001899141797968603499350281965528245107972908648356351937098760481726151326300187604297044189854734408127339421120255579066936647143048356615904144261020740024234102615852751273349749068393665581579974409903198455611910886243590356245545138103971385432885901014819667706056648452538089301279515601685628373698237681396609607125974199482037179818501193183383781510279007372221750258059113068558012449798485686263258433894376096870043357748457478899889291854919367125760048560110271414696311143343128099791748010845758397869693322629177201862289773332866798925170373295935885120853816312250407943133305678867294893130821013198043671603996831975251155107226456568271182805979820985256320313257204767091457749657520925285410721104000230909980809126775611503564240599012261220828892344010854693449803895107336870761389060873411520016398725746524431049767767094773450101100995150489730253722809384872607979678777575114856973891632146639829836138507639259213497843570060269782542240468440142177557677361855105071321543000353148603958208498178114213873601659790279114755226054809293530309081336812423555390151754432723959363106891700902128263776210410106114025742630652111550496398993994952702717061591901671440043098421608158438982315121340963680140795514482222597164295239597456147474053558931052783642520298419603287404583543987834510364031866498693294759895387518697289962937742419349871927946452754631503561047211365054042863129125085219916080246408337985206471464356000710058349164709728320242386314022086570302780183464590203946584622972865827390830473848457207495704390701019553700593346431948780096677658436961621571482130431779381745419908585352093204182150417656736502212421792096005607992550147513650906416683309387531588827866075179012946810293726002219660196755275795235354147515874694457036013851943680186610767905070593966979589961528586046035419941298490604029442782707828561661493795272700350037027924213573875323442412388288173271014219602772293852235616592625002051556341496254763893632625653427465597863223043693624229423468573817188896723760095919652185793869131643173456429849261740149575383025198373669482651197794544130176548368437784507298870216407653009764905440789539505914159497698344402592554847671190882023159954744130324431404981001634836669384870613266590962254730479860852058756690187138162663274440718093060117749194443487108704049651473335697393847594862990261027798951380186038795103859277023801584085231840213463034453461094606500439909736824157611360762331222972172202649990317316590055696705277497221960729610682871754971011227665532648949956172127139486178639827003561448561124386030611947214774484804890168632514908497585447633620037683032261750580949272475449334255102116961399329891768484752033672540784448521722488948852023720496096969446071399717280261019319136131902352872065057629113971495167166023982314590032179610525254960344348484434706380808646387167690527025714632466343306271748363262543219716950757239275860330377336876303560250730940467069456851933831373564943939966978502934748546846399867104165964505460937400757686141775179512584131281821148075141423605482631619581244664748867321927783728721728444957192775689293246872640282532975182240166150950810827117739111880451163920523784681347464908988920457676758361580708700320328716102547622148012159011906743542665177140877221707899879816997481812292107436230460585188552563554725588068343730206338601169547044473439372126561296349027687533038352736808067112231173261840500689602464105803201269197789596579464789528749228963304647480797863878418712027184177379094679250590956482696554742552632443066626691839065923136676175920115584419736221321764597127623850574450853463042797431499948331786864002331872884647825966576085494328788553732127016450795622691125718687950000921090054104080896115149904895375987949224698473653956076256915907009041900429951416948906266610652742658482386304923746691501701036329374236395710948254029456225584159354703813675854990260521990516187206607590998252393751062938855118750509864002759782063872310310518616916037930725834613001920761839608783361961970552564563456921298758096083182273079203030692354283993808029457813535061574486123775685033697011095254975879109691536118377078474755378780174431604405255212584006172964994106561281569361482046895951205085439168495313604674182587586391690636387215169691172044840538641908492980953416063843150102905267345315127363542810850941397373388162070504281883275366940559350224052307781665438330952144997870490226019320000813216335543005280712390508146977723325675461093895402233692238005355155389681537706853723750210756793106333438392357050183636878015820221909258109677005158207979047429157119656060779147953967272194655645760254224173330869400545543771865962941842170341900771607587359821289093342188708514227270665426837192219616760388267383697367256376461872756681462509566780586011446414273952545059880044803004943803644250385690317125842781842811562694400041129716839367050002582742365177850442019704114898148935180012382898146643558488974165945281381495420120422308936187602651740001982364687604529133077312572377113555035872725444881983885560196139498914352872922292568367600293962363620575646496251888522737742657975423015281057227127079381799976750661899361640465559650347469140488529033645566787284417935155950356921467702413357781814169583721862998370666176403848895130450673510113977521788198610927096280799254152823981989001744572461558593088793151188243877881742915977166442894278894022654027864536522307957870199081541771527949359549000001210683942557405591589392262326766269301535638891326198035519755469239981356172450215414318225051373188405130488971434369441280003911324367531318487432040123529238538460479892574159380799791638684803863570433523656138436104363786303241135168745648790790469220279617395999740203056504579275784645995429727422160582925648510913922209551760337642321343195110021758518153633340890670876932040146577364113029505607933020713416663338910073238358401174792973965257999696242193664615006806104570782342117129328083553319734487664168292889687130408601190961517266555971443347446347399042645593713441295187746047216450062522148981767717872068793713289714040243652792706608951368778291758229752540598675273953925800548668017480097211727266679306575651282638460422840740182100362773700483012839686170497992040856900749718071313624083794857484628389106168793966837206773528959610303983495346665273582992512483481721491198786510223200052353171938034616650907915803271488011658819520612695334421715793524581780179783100053292277715827845221112616847805365423567998321879325981932539671410354231574402312927625488145040767671266183635547253658214156615414044719065948555533163084933101395254990619269828817979880278727996107525070825806288135927225331454554312517036718166004978967708054256268942435460573860265023840300629836608691948638441103288934434954694011305033518238891399823773154205264273829412441739248659634467652346895963592046563301200564995557832684622042942807996725725004270945229655615351927575897832788443546658511658602534008104850683551268453908912107491135559999248034134670948232897221942372604368263266838370398610217364030822333909471503113815000243455688597915081345806892980286067625399455551216209051929493384359959993572408553057397091370815948006240489772150661704374943760269963421562014976965636459147336958427407974884166848741025367733313423253070865798175947093712086141194630504888125781310711873119862281084664814080750572927885724175211590718651023927228045462420280004204241373481786378640375864645592598671555206748875715499650156553938203669342944506517624467634763373279015275056214292297549228856358950591536349838007952128482978167032039347152561129260048939840257081837268808712932156585764201913924125102091557233082989202803510912981051949574849617913891490621331586003654817691788245469597260748497920790039917851141823820389062602322502837614593981438219116209564139263494091997483887757225801296823714650802629853270331880249403235698163884788349309473737958324307365990206802983489423284209493596596356761261121557033123116544121927072329789342861968813751884969323980854807062694034429474833579203727831958963306492583188855212477120944926282127383568999949950875407591536430674246060776297575370086603886895111562298527251765014975654680669464639312849683932316385986925436741680068659474604450328517972119990568202771518168431740284611589907990821515455465343608331433915890011472843372933911581073069524464955062573504218334854713906098915247065565700219672078192746445996533128623536574805450700351510258402414335478383856311787733622904159180102501424448935410130818198634913986053669686905482909051237624245682336868833845917227479978529244384706134709221806103927598639788830796126537526336458785596308275020202139037840170448384479831727784399596348067288070520913369527994448804057572230836407540397077591161983506649738922729305534790868514222853200190347525559069115741935939543502272468515767535279213467628072546560158910369847260111504171334928315968256069000576515566982562250163209035310388407152349664250801743590627852349550027741387487210773061128120149361835187861397775668556580668475248233814709486619844927906559427707097923725677695366816872188240447520221268468938650733725771871045702283772557858356769674794863989943574098648302047294119964198694249707022726749632053693094428220535966288844438101321572594847708339605252216497213997732647728662500521937726548133102698739108476312294335440969126292265537862724620399217915908955508450618215834445365675376047106346072881032237304656702093339567267800996298058736095232458414558651359055908424478419097559446100627191196002359135576292899202656146131562966541283924902107387849286679580138388180331805450883885654513334158778174502408730009100701380931422309336043318350879036371414254046827662434753449557097617400812560246362148500666176539464048008722034708571797279882593777287239646276033263871337601404928467473823621341657013179265323125404987746843103929358626354032979482486826826850065842562038414188998454378407528802411474628730105337222807091083961241785240746546892823815611542376627561711168884698528541433718859684097740998170296276270232069752101679280212509962812860464481428886065041279721334781471489349423897176513222894018525280556303682692370249581068647967265200167341992554836749053654661701069228228593390291776944335511241781838590631626141701283718996031418973390379066124308344923875411112079557149196316675848853822542384534412063143637905112623788831519651428599348924881334832847404871307225145377375049829812979098738262915899786345282790356963651758742506944050412445233174897370121308666926356253051272003856284023959475962809094896210622278901242464272867730157992982073030474742807068864385344663212399418121477715152927263264651004647676623669066447519029275866795544127837982370702111654502520435029741603659916540344309494609952976931547430108212697901473377578014392749037993165097078950639032557084523773108665010842501085469607955216990699999110509152663993354547087991366310936251654286695965462063733874225688831759579171819870324727230831037980458611847252785284432813779236164587547035246660991169947917768884492627584338966806568572345303435543350747944544381757488918435432254771788777277170602727490762926581989117038645805304426585099273798993869994856855663535354147944505439032733577918112799117203537664105659446903973254987228053310775764020964922371361303672021003758937292814082320772154974256014496347125207893805163608132005164627298772731930817069744400339832054941881575206440239586565680974777173841753689451568202387656902489775686633105355432545098803021477901635787122922367443445031288846128436888534803589195420889753075596501349300248019981948087630355382344078745093427963210736790889406972877659340631787086599841967857102853596861454608472861668297918340129933493767040521025406565099430693112559137515640318402846845572292179236126805858446304049756524704904231185360896614115224686427751058037978192358209009525568147485032582023399648584905806737868876404574717585049983780423521223889066478661904859688326900792194015329632706677341575450704305340265242834054203891276500665505833139994190539921525256250721769943976065496045726098321624617781261516446670573712737664177648054156960649905799215057506033234137969934553685431899598965555299702643731362170323681684390887234655254353113832948727075494654344066393723023157464051373202095900759054674174917914551263626781128211835469624241026666136338287599107274215379785331334104199015585185342021756520258932975501954576787781752025804455520780263849848570517078082130540748752186449942357482410767187007354951143354372688541454651800750722222173358402107970110271350446857569641069854425817288313466089731124471162040046951857342941476505747155775863167191405681654992464079475530973664537206723489208734613827632457680495804835232969053826353703628430927428341173767020805959789097548929581311282924618534790617134913808811406871978040964808469525133261129688092364054836476764419664068095869836503843998088159442924406202165015197837679245351958174136575457640284161126414912895472442430078561862339720688837976237350176698307662500054000291676252142390942030819275804087628390428463229023314296957834297290183102090871207661342506775398837245548937125498623593823036723763831457225919939809043498268802937196574474105827096898120338179616175584112486659778244394787354827366577052036154024125615079076062865495820961019846553258674728760399940662550699187957537095364124164305231543517302071479544570738849376986758732208750216023082896868305770066437844560434254097572347574171932828797422271890907652986852538239402458808895369536472041593029049387445938317883829435351167945650033147014692591055878570270955279714598844938055624766532251605711192686205376512952022291286622277519435400987499143763842222496327446690133898671758785170217396468664026617057367216092311004581760759300959124104206279534332529523716039513140013240622460106665620696385795410099679039465881872136122708760320224593650161384669985144587285209944021017683078572515709100305373848242732083393666558830733999024700355618093726156197963372827879542544843050842433638611405964931911727205217036935571063672588311025896587415315807818734770057535004915913556066949884291965273922571839590584465931120190379391859683283237528394081950004858080887285294819493739175939442399753886543216868261747735695775206983524740063542157946030195674816444485370064491325767427217025166217322241015783087007743155274541630268797624606749034117243756298937900809755889117353444746604148640812086716452103006035884413126428613054693068341204603891698301068511259075825894957638970729795146965297465504708319812136301768455009000119679377506027633553915192012958630779519910607238784761549896042536788982941671251965167894109283782742350924888643020397083672107146924409611061321459117413882007809035197163088514551555839039734962399687082679241663403257438048849529351166405057930729195119214093346329174230741961715409691489613181825835878340368251059974176908198125869841888418459833498075182085813243878233210792781483133695024657683712042122200472406705085501280781745725562124441319297853749379600917070425957461825953908086204784039019651617396565726590741957137719384256974413497574323099865907421986264674961914746477381783196648570534603323435517195807443895469730343266107929309825418269212846048744015697221300195390376889833715775892512953700903434228139365141037644398483241499251741967377944755585999572250901063344371666230485113097970713623052028747268029177206895689931313065105824115517815928177615793870639334100640297326784508105244042700646532984864722337596539477920527359939081215419527884960354930359519031552587273718226519134315953420986920034846655613872939852244883059076541655252299042073984616873741935832930891129071282350133985022684709092966260680146616918711777036718438117990526059344838325957737099227500284918172836506749809341514398350535572354549094061165139492025461769586358686492222040613754103739276611407781284158319779737780705038385684941158902747938915654562350034990534816883642645295319645508578068637327784506520304107096523040020858274989841353460973033693590198724271383269642430607256282540730969521668280998321814876060340669377519418970361359123589763201170069041496942840632529537794453393029663955466166759952629312719606970564766536323258362195224724648226826834950580666850425649102715117236761816064606450762264713482895096218462766716556516585359621265354153601529482675777632097449144363264190708694798858075170285768105550744092685037342513931647400395974202084190197470049075982775353656787653929787115626495290169022804522852779255385111508801124724365480528430996312337369748975854899119022020950665024276608200222593851141795322099349875789916908458457487438568598306852469097131365333779148509379880678557875014102797391938300846277426547608878306599844915135510907590971291537451322471984514743354644692174294367577496008709114737819019834493848417217190539809487494353090296923648990020415477342844150826678978568509804570948483308812287643661440977364574230492491721790889613263830846238419772730275811681904071101617007709195242106622245513331333398183206569616054861521054325503015337324999117443459989410067201043628279331435183442614307613451124956551034955391651384141417692708056468538828295077468025979172178994407097560586866501988431323912462736454451372208713356497214128634487377649721871350786998662273546906620021078081726003510195163120481924704499700918399515808284777887482518523499680738316248207430646571877838241856527031600331319120564611054136100270981469548367640104713883533719135162562383232105646723883303926412482751164653479867551593928359009227283851651981602506149733535289062109071739000592707188029075884600583046420743138336698994180594392001000148152297801129658920340048157278001335658354282453601183976599668314402299815325582458444386305212866859651660350007451759248795976020489093218427655758235700849689737214953115067527446737591789639364232075078499074725081482806872879158403329856615554999981148003205391026984416863629250481076957509304169793084563216012644169210357341574207713360267368011106537390213932853212026323096700816445085932032997122432776862863042145142906948628494589424415024073647149591114716681885976301469269767380054014795042947145118309518334035944385725506957255674786364423728641709028461391667401205311967603077182710864763635127887693234772906399914934081207879296650266786887515656753220256296214267056037487352800072238774989534666451163641201153416507724877467851292469757576810726287312755887755807742116433203549884674595177295372591826774115065849512524278898450838247853207346716585333634823069329068168789710369652759104474810013254456596662110835328714893969281374259031675192156851201610438557735198881036333403142187566062584736735956914833369251283435041076151726478670152076005412895424976843093941821534068861379482249011272471152906568458729345639729931399960301171006497979622735528643657387540811079885289909576820585965688505574002386151847151731033545587852227988605246637693116049286199867334339786092296771490648795064782071955004070859291048632055968308580356572079474299742433747875218103510784946882812887177749385312523319048285132645092610281685024243368240231198375269447955897441720630978078691645159949269826775627279023764635602490119456419462146383613188112647498774765021730740302846006434123041565181203675028536563764158245890536761836334844870550081064464858368950980837487157767960043530940932682123435049420002109391920907190373861254384391135984081259842624448508696829921854742225641225949883493815806333585340159440087596036964954824793798597119864316894303302747303730544077978409302382659868896469223916963947587386708130783791957585175433769301678168336986740434651407615189755445801354773056541693926639205627400788199290658575482030148287594544698278044898706950164639741775271797427803583511459094397505393546077703155662943662575426270758972437599684982020017075403556131122077827431491000449620582619866607610231733115751496456026797999138086457178329420877534581635355280532825753770130411306627070835902466964304121507070796569415332623161407591603368104454900158639031936918316684032210115263407778448250559108853159390633989106682829308181294771395459450423431583591254079760591218634225130349384743432979241808312230616398855379509720140624604487492017669780473366406753330307031266236637944382571021271571913339723868336923086253159534453470936801144204528014081679510448050629320770785752843002549872868212604428650444441388518505040547961777981245913614684465371993679407738474648732463686490091284442860433230688519112822819372953769749618875563171048126942183479745517698169198316511797182388047816495634239811649542223813698476319253439906816020148495385387146140776764605260870840267823344507912870765747683652833663169480994835989177623974418596480815948074079563274212154723402082008579839933316180521919244074328611663960411413883727062707061436237277225607766205750612649020324744025431812398011754353479891847287334340016247215268170241023583332770974400842819979350450497110045651164174014693089781848687466466206669000719144862121359529377497805226604700543390640310298647138391502664423956701507925856809887638389293605013370724600452749284459783887970412588500179305894962053255801833581340609387080530878362458994727064913894258628703781965306702668079525930856251116487284805942546357680469221861900901490159780324426282138468745288896718157031170861663057011858197493195952300658817821690453853981567767299321712460234793348830774543695686306779365476116450575792019171107299515109847277926229929471934209567881538398380069532772441501735188514765378828949813143829376436361532570898785091864456922788458220458681098611265438216343174652588496006081740455382809541064327823261524430406412252303612238915554140023362602456733830038665117936007498802065799629120154545504447210651537753241036874829908511553696034347577840326343098048363337852856693665226816069771765239827305393547722612448350068994994008182114026437232328094882781544615824693039850831337421645626541890525087661607480624666098076851986952361857798843810744140027862989930150874962950117701241402145251882148553954663834334998683987503212201103935304443365159306464574249181587082946616621446859607108541781636406548469817565623476941338174745398697474944703922624208626339255873263013183093463158888559362150386588590372297636315283523552289728987522892729836325241211371055586540633082675828334520135320403612839224904054730975797473416814918122109236377076191673541484747576618290929941678653122067840900352037623813066886709444583124921860996094818383351173751493257665030040607945673729142234805486338943933834703619012253109665608227523701532719807227049559693128999284069828173744911878343279253547024311139678537217103058856178438177524642805349189800008615872908768735772336979814456216763136690345675630362759232272424590675349078314319725621553133235598270940867201940476504540269420265908362237683683617946068038468857549688595364683238529890558509477351382181131126293003392314335799118088981362332334715403464403487753129075771759259416586192837784504465459452674914594887292767675068371112872284359491400314628422115410363443048768527742933020888899303357309489911260378398627463985833185310848022824420793646217959426482233147189926578839308383228821136217884878137332222499866075901671281557030106015512442318610707229142585868717089616454268679825418087995737797723303570135725284882957524189018818476614173316181463015363939661723273023588316927160613027648250224810023139790182995046021165111095827327315916561427695535343245442641742275178656412970953052803653180125313626559828284702042157916495416505457428548023267541276668334097000288660765314512851638597321462946352776469619568481610420543080002562707066666550807623193940883819626262937868437646417200946358898345002158920002087366192079031013177853064386642135800332577862489357056668102298333612917707097121468503352962884978218006361837113304070634555887672207383067718174836875412190542354142378009455762311347040017257622469355541294342960075696514786537733170823188946197556070731686294928663426634727311309416780910434477574297310585009530356873684820414061999178159701256835238434834579100666530944917001613919465020538843783540679724950224915552861116289959019360489943943978377910049886939704187673869848131512709714534325053243625570693314584308204309382501513583077177092220643492439248236878099158120443397885754479687563843705975149327199638584949072396990687464553300578479178568351404632793324775771514551857242820952724485242047429096843648466705544225684596226083297208788031470726037561950246099298191123374980565839663178689980070959612380193180944730549324878586482446803908063199329792673476859160627971052253916157836473455463464305004775267579288232413792753288548270892309701570905384221394969225003543265415425876035703221532192786567631379928963524400806634038979036579213689171997763693357372702822820817433063046946939097937544701707628291809347117396798324532112496413713286097246686991838198010971079472612623058330055348157667806147776470598642000762090234916307991460018535695864489399619704664361336731672312122681682008825026379904559165056522796578160475046109631631430448512803837322626816627651223738248336760905802855624718274007935781409262852501521524793753374705240526593615858049231948008533940181612503782154239329531890575635740729307422967241585879866793859668851523999031483449575690798960763349232588030800950184177505144036545841344053721903625239676715078420387201208903960682137738246252434815088720544627149112668517899197583022250269620188194925062171577757024880553721306797221286845470687649520677296059492762573072111166006260442365416560120405555628332467428769409258391505041939581161566351785768185547243509194624327011014744890797038799371615223087582455172844368735474820941064339526638638611301928853243786943317240532720295008698939732628757015511959990395749851019018654547871280374779489833162746332208761998810822628264237115908947937239260250701714725607506578041674722179385168841540854262262980943712631437986871440619232186316953500291904727089189493360666253936293953630967445196486665535270343069754375237308431722125217682440721426704102893414974669828438397087473553102205499109420208848663598546632206719558242491921719971229258695900071283776062825740631140190907392051659868657071488373120524517663011745766368877434270800809220927263297420665754164111951268291312585470397579045693618453496603429065800388751009641157528835298524560331039383717165336944093941119019560882806863723650327207429132789464131087859625757098517978239996010395151762238215893286186441179761712022378442136648765557721325058568337278510890227637648738378388180171523633325978833069285623225534973353119983550938226164708926739665871546802929475848024269025911786787001922397885858896905429569817593293548436863890507983118327800692933018260718729378240421104710330460894939620860299866380104829586747251830880514011043124426043763331589252491851520350846686580667414310736658698355106350110700395170833624574365153655038813372208565655369313339031750744559076545923704431453679001907369140606487694759279563539101543782887056058555364855008141823055282633352506366580630104055791608231133251240127823365750180934656595192810208140239543341768014588049581035971400477570760209163243528451935961955339470329410181954613179200872210647450156472854010160368698237734997809376037194371305657440775738949189377338847705132581179158323993397371475882926657880156262129404965136589605880322158277957480165750152464522730857473031412716774095411166491336390945901902855149029644366672774582950492283218500611893029114192751775717718605220937252594032381684836973156793439729886714627087656941549305004393034864662463811441361220347480025464821696845953133975453464345082604871393483991720536710126887381391045719520719394329241791475121945771055956911979791612055016852727870178049143997632695824715659273836969078752052496296747011871177847302597151865956351573739020049649729349525237974514516848444002186020047639985016006473658854138985639025571091195434866119546218660811723309129293138511366141120757627561924956200111340207160021491660819380151275278747711015228354487899321373145576831207087240427704075910348391279734004632724817097410634682355457239936502645653999780205349785156975770166290262630316752501587568860154622488658706722555278274860088931864366983353044934808465989009300053447355598280463071720342053371755007221022722896017008632449097383593895775871133123202825350508712811272354550486530107797098774609431824055131630643862226999377271257266448754985970153490824075182769542722116692934112090199425082610354722092042512325747478104598104609859586492635692943334657505404302912235767241735615368739601363685625416917733858000698841507876428433210491574041569544112368430077727099892011099407355128914803104600011152393351731362117935076592160299999476931637987271026237023300408825955091605083705508740786935120837835946499929176768788573983132984558466368582481582577014296124905417581045729667684384661332120184279410001253602597979757060112545521373963857476504219051535320807666042992960958089308475313714103808281397151080891867945116428532219986611770420992098639453582439311749265346478127934963775336758394459519115265918834202328390446671118108349168465828446169215174362103660921008593828555665477437869453595870783927223499840273942881861588777686745245459956347122362115224775116305338369237543086989441623793330676869701097549540540619823001428334915249497709876904342358730247032109644431242493860844900456169415760322488301775723801872277415186532781023822784312385994297732527299105488265445748940924493949115234192017602612388869684684281150174643293809176057213149024383636761222735032710172867886592328020932585057127811068330721833830266476803339270229263328685864300130428568852321728413192492910162447693757646354699602724936830315505654903823543870508927157449542953728808237070745447632916352888568635269984457210141998215242694598873656446658844184734671260488793689357122399853007426282597142626703397166023620499423269714964916421107679211451194429526342182140091385202182693883631980531424607356831740477820939117355061236043117757490639855664039638783108493118604248291481325455221461428790516555435236554839501975267265742792621759187414916838271119581435268357936899934871007793415986448487513686982163084297515515993372806446745073143111069086888659182984271699083950796163750849333509477778346680961422910590513623293616619073770198076144748946849546915511104513193151995995337974921883673730991347959108612004426751478544168456224336320498671180608565586866139831470935989756256196631258780767883291923562500200301787793529303074041400366090432617790346947697654521428173036786985805490623688883554744356108623400952261505479574895749281995976562386373392009703612738030563665168952613611586936702683427384501901781792696447389346386227658664095798796525328531773421222773884974129462566790639914707895794583880782545115697408714047687522986375917953362299276509771936174178114310771961910589637054794139306288246514937899944068034050894753798751383947919067378365185295193447540129876864212100401563586225304889935606738816646309480119640623771390537475954669279805737473989110844495834640798578927434346818449606434010887959782798770534118191956083316355987334657121796932240726493223814740965606165389103402959325096701313059285428430535739507171707789736562361320361072430676813159702009432584472684262787987315386970505699424931741513739772224717571126414765914459051018527369480750054406349192917661428985576529235099867394372274973147996390756034409681372034218905761798871158705149936540498688173429182605101238506689670100451589250200397453577565906638260219591329640458985234609883133732890123120679271353375340100509326025061319645098865812654008110205642925674628544105357103804988247780767174800282691185321437526806834506098651526275018805851363966684859924305510567029138021796939615686473090129889955449055636187175539724741773518808833997810497170839504069210658908952576633781524120857758778240701694557069396941887023350367302325481004672038996168153259987128177584077584681780236284580942685054892128165193857354450030795687479208021666562927631842077909998485405007370048462047480329871282545873004630406439192624716130415570881591374005559093688371966909795374620348316108686048916198496170723926663979359106587397784234739295678169788790614734552193771227155866543183615846862623215133982671048767924402180026413679358065963125111275532607484547752061148644225107496214843879365036499988069436406542745787820913645568197004986784311167397212154270145982703477268678821553934694794849555243116367155923090578578554527509412456070068064929302332866998670647617830613656049478751172012462924799888392090645691502854616305546026187157040140668262279536194958656624953261613463124963517632577354615073712628001628884591426709578397386496086067547518959588463800003666193414820005534185781275317101166237009880731436098178462558638663578281104020796270353647931006944040349653680444289319783531907811797845701101572607675932779819166081590235432783466049356133828329126689960611324506541698485871992583738167819341237754952700124803903390908116377128322340513005760648761355588205076145502678318342537891660121654789521345688700390198127267530804102886161921813709368871256049199595777300286000276154542026602273359281545687754849139814958741127073350608019056784785196732830281650603205409016247104731066755917611139521030332593832830111304834663132676666007127047221000019787903213058844342340948114813789249822488246902183167168692123530262666094353059570258913633021040417928159590668170198410872060074203765307119523416174918913978726362491219774970578147781570919585413494611520407350131854543896220500036177626675139506609021171685812035792247455579882435795071929186077397269424444437678291554548990229952613100119574688912340924060455955847966782400763616693462908765418435437849802516920912066037272475969134748440440916907150901754815052818747861817949442862935148555622426691033291687292708899024563123942267930229363741536844707270185198829671126937131375956513154703411889621410795542609150412018971011867782628298147966639297197229605887736020310989784140673370722762842037736070861088992234341026178311403000985927865785584680566181801381068711825635072708017564050337642072303932788559632821405663327036961840423361741803950018257018323446360574071115452525218758875936841628624200089704208324275923001850612582087975505018919537335690472163128988306722950145447457731040944153305555535546300909708922816590835889921703222055349831110184678360980362112164634476130811389899285013609075590660633116679969932641983284454302524417449028482617740515294414916723577842840669398535120686609637434773368297064998827445934567389678955997449960888519309037488468734552243794730035921404244045675210435480989271783860788151618602882227595513642177312140685461235957118947720548307561130975177339152478519202320784557293233979405721036286242554733873694847412824820483676856233610785414283930270473068446179294735805208434115965457174795364227652639528485769615246437743535428614562766992954944154411544789592383841340061524977184838578374199597902270495662677186595065844306210622095795363995649674684370411007762094094627953920796359327986803699151387147620115978620218114157475506565346173278916460198014305181904718593617727005089421822481423935704365442647629064941225044337815666442601845612311931783580127221881429911103523192985313118979724797549861396125670790727398133187136890549687164109023920741262032491586941354493320154543117029954583502119049407528674071062361269166647244192428960845315793187123586313969862903713219870166783851149452976844799928914504278420339769334373281100197414564711376497497651298099885794188696286050276624860323815089731696871859226460239527489137167801213680045519334149752862232201848763031331245956101330802530689380960699605653002134256894591385590602194568091861569670276304798717222013466046772288714185922699921990907207903143287272788001075365866406685226680752384510510655909205682507909099584036954113031773434878429167314662247895282711710090348410352888614740108206243665025358845919052225539832269891352632926093529503314384638263025972338016546751702014067286230324032733198064955050305274595016314346420882822889879954867227225332198157268412964671328546483993809429432880673282029900940032195735666544181321994275119790489269440125403936008416780092554086505013417982323692576814128069743005077451932132519084422438627678526901074900475799696178903062881428918919715368651101485779671624601520933150257116180524631291533620492952771457941894714298327885487032525265945569443855231530682251528319062135202828878005162642152036326253704220012547208032605672598011717752623405332058463891301109573801317414981871320838270522955098171956927697487886417588210741936342088291365103301612438166014404613341814477923959515406850749234522604600727172713011089330960414613298833171568807829296143131701669313144266555811962767936739948105435307859728445915626653186893761485684926472547372252273778002495591545469200495205409842322470447432367035970881037721350697246494986224236205578290689557387269317397094344200849969389413741126591125583993201545061276422712794547727116685187235982556917187466961003020421320895540348599239460404128998566345222084672476261707885559574309836923416768826990560374000949000970583645509085290648702714048999395927900837270453835511324987260204018999350392959413204148139116448314090025334454647702273611503102179776701296871338359140490437077140394998069349854238151994633137249454544227460939925904509685081313597559511295082077659416244488762650810838183399695634087571853748443248774422868972460634805977701232480508297773389403368565249577622912539631018660757627117143199968492523785668557629399261607510052409219976079011416360771151871332677364297323601331612914482388462800535492527366178091268777753316108431747953080393503133232852569183426120490009122147203925155164483078161057479781534227580938842391650472233977873247984464750039518303056224150901404105423643972568381528027592434457777976527464355680130932571585912155639853499305089852568776515555612101234261349110539552192281845302747724639238066045383725044342440086028068777196749500945022968587700649845613290134693360342950340687157243889316274664414476394856704541484221540164183139520258419698985962065284727736453898801466078957129295344071486820053366676596636830592800732564167202545609928722864336800151664700297087086922880280302061022121739111592124904548972212323972517626410653663844405110223949979117006902379049729424818897872787325735255602746294020532532295407630836037622893743655261879027973189064655120920887711717939875005157559909720312334160463534781393758892839178190337610938634841936378696822718612949799279238740434141211983187452325217861615890002754281362336114154159945413477840586944785018444812683235263757552331373575461814956851975225410967851964811024290781111087806049687154020717425129020837270404087120459643740306309729489399074788126941903189299314839969345383777488423005611530856694545488325262483005947057228144264156445386605350442846213973841764100878927735950395499604433625874164277288201606628959138714901097036943258191832156204114408618019890557767211952449072997561194929512849629606025308642769800106321541797145559388726290453663724087600374964200088029547216064254230294623416684135825372940490698517553108187006115908861324758129925289837062721719322913956220396465964611400813417798115639711478309473645271264834711667472889692296392510260025829483406597566204867319406060681444348307911129451770427931146264697992723636684769809674577811978525411686520851094537766093049615400363849958831527631109523769071050874490720755921473205046959691137689847694515350682489060169625470246564252623360250533666596255677978235743817100097779859687414028657785692419188235665997911529369052565718771413364572676140206334812889111121237346930190085713104329632863410209219495372404524529018383960379507622115195961924873907907817639522509433237309023725601527826039444178029362690219742885009311807671529889602894311595210371869367411475552891451319406347056337115476383448860147350208559811651676766721898151475102461487254844135584939332150903022883052566676024808632266058138680077331286422541460796062781579450623497978477847939263900742026157459318201714904608013532750985265219804091122671938932766750490516344799457286106323815475098574436526641061424436627862623866862349426626471230593780699056154087194638699977504628151102109648750708289433880124152813450116049423948600665512735521464611902983643183912980927707866741639568263416518105294383711802466030850712178626352112483757062716590115074664253600403366704986640834000330469695973772043496998778433441445719998281898695705777513144607062320878195289417615352447624728953923015117236365175480459903555467401558684371406900208672131943880427709004907263665235347734172982767393153228466084626196229594832830924027983348240278016845074429893714546717273705540754035464539837909119120877211875250518290522782686353924144462446309634270984993914695381506259421636285994634862995679369241195182059864083390866127317602074121210804057531683927549875727336351142956138604307123612145131035887890963573671328756288817270650455274080572508316785122260524836935617001149862635019207934937111109974979423376391633272613971454299972158954643270497805820110533487579378401972827899101199794742749456513370757416012940784375961725639903672213856763772596996247389136979229173777400503476996430988419965024361388612144386577662149290270165357843749096235026899103855691479759451171965857230306092636819986813204425802694391788480172270077356294424852676962825722098682870377257188900354601375459775464806087104121951941882855174822760817699227370625789658784339417358960115261394839627067819955821486537590361228441908797640199355918503157271161370722195427765854303283338474035569959771186825450454827593206211361996890069982502859007889206707164547823633524302342525779952686483833309031936641196452839668391585666281634921069893221149854240349276355960455255454069043747089835999057660371546855748317526117057740275837700395692301708336942732310075042742009634654625898929748352709050090606021201990278246606394811204625973871549899450779096679034423517119908839628622897221039001878532711398847819736089721024998133039677306220831523558277073014309411217761937018556303801675756721913524287249779214128699345374421828499083122611599629651019545806608854490737336364964531920227818523781016720613065137737071449683904922869429397351246887509886812237501808662952274024773797347357588155969202014628073879647154316275817408439177759350949627355272877197308246640838258924704179715945193342114365500103503789964854225690798463211356384583248720591547246032411991717199837401841926442889920789281129941066008457199127695931927851783010493887743134925583875566147366086426561287273308202282249752404421614315193878234824994129434750417169503550611887743949969664503124627563936447200209780611381841336951039644892909415231107418705732404388529694054429781387051505325090480061733525327295253433725273227452483643651977602225728960395919010960305541612872862807647497452423413172381836784525133986019198253220035159512017313076907412546519374683491571384875591260909192876476416113282150907891757314844544925786258074061408784032249282087756577544990003621310997041636405279944771186986221717143657354313559519725727717616874887268396569093717069268242748799686848626437834295799593921006482228963762848855468523852306057514453832952313871765498955949582960780271538207146165168365472738797463475329070643851931306660749240719038302709922872833489934754666083749271237005057247132690925651294515453027747731940074180688756017240402488738925753144198217489933170133108097441923125912490371157425358644106863430377022164678887025670845578036480019134484324190472467123325361668064758691157492465130735382672953028266307167777507196906467161455902867275172411945228771039808365600506181113008252900156356214762205544525307182279674992601332929612415874987788701025972194273172666030956724290410583013118209595999501357420285141950176323419990486608209255374766938966855050339396801776010380832905544407719512838043883037272447140618812175471761246775654971281779650833684869985859129263845021508807084324818329232462040740216428737569033198143537426032431708049665474562493668295316282809322565587031586054259132826469169266099936665316197387932931203210373859556932574728085499399245785953940956701238550520586847581638895694035819512289430330539147264870092136667948559667269432371916156718167096660378683281588557492420166260316036264868257362604784989174439414428563099241461074193976046227649224379654262201042354686280914779080498324638718811141522165157351425239898531375312833455847432567956863697675341881651191452038046300154770810881382439564187906395645800528003919674413887414634456962879515705509322480160941440027976186809121421210713413716801039937535921362000925776728291722809348878193842097180034880753420298283159995511267994846247249938363992248069830150392708961111336672330959045147548826144262788657373580800652096015672492732594655528414048477710291210045490361472732511799355539678765284376204559696783932110598689979579805227777633711852214303310288285836286959404561151175485931141180114208820100147777978366839514688815749514188005926677658440384334621137735211098828130276496636125889987631733148900777508752536024056258914585937594626582535396928081531997233536984449497837950482762636005989576755563115129624573053385303351464626554879453568217817498023791017950675598043840970828033235588880363341460939224851317892493200875122172323977198407150651977672665998091535474782150670781336847036413253062707322848994101583434263874320169117229419317933144526401549517357059584323103378743164831233039585133742426198409701906202204940363644373909898344970582144978511013152045165286987708795781918506297089395423012213634564646302011116817754850545139112327322989995523742097020648912268308040079761785064240418424831933037642501789574986188932026713277833894348845605561573656388544801533739226455381884752205516772257020486737338912067210225954301167959766346453957047740030956379939884854129519559959074795678185311054153804095228281338655215656737327126965547840803588272927458497866555152572863975960620026924207444738204447783494944941986515849898504136510013168821842444954812228054735946435265083766555697662448114583389866155539574652318347845739049065194024305518464469300518009678891250396995531943167316973917802681743010797071243644668770092845721591179539767178901430245293472030415796507190973879852157916560622035266937814744691623462550929970619009781192874238522053781247599456020078866351107858587277352543049670764904363979855285650103533989284156180399244948854924311148303230716147337900989163872165709186861323167732672776946716785491510856389293520089828452367560045086900468632748100242401886068783079470882903177443421049645903238511886335722900913505179728293537177584358968179651281765196499223975787238729286904076162105292313000818838515968674165924692721001302312896578454119226232767550981677539955527846914995472379537012009303918910987111547919461922203770503153567081042354353536521180249624165303197416240159214074548875329336905967127652110853360764484736734388193478263166730197370335989827685475619003756749902465980942021444278588259055274597643188514036630295090955296815788008125834228558767470338660803020152821790844267620952527891641503753864991294930617113128440577922651191383402747596582910343306624392248788573058681068850114238156298356691916856803043398313594653746436729913531430609598142853775437494642890103344425310494394442468560795654793802570601119995209462638754875955124341771633988593245820732916499814789419640682625021701291447960157055788802542325609920160911440534510094089231371423324689985690700765170037731885611276763525854825004794540388632518960980765778165414617269103135618263255385276042385796901032443805679802058484590352486898849896725429748025831023198770818456079104435243934309031787037612915556791543805532145523653818171758020505864482074903898279070258321399005456530851799691804586528944410069388062934289348967832346034344765248684851603342240456289591536265989004152173368428200096596880083145729143567821084884146781511539803984841193697378185786988757839483036480109673254714787078507827095072073062622344611745012532673844737292720536433683602788511962233990441251601593959751402314317594130663558927810619349963102411170169735848878363010572371230680608731737225080582060679071198958155882825867819148087557565397821089629334446040357777992521103285171643207545596564707396396868725224158190052913272572188827271513127104188732377107476821288097830942330409293619594167724861557894551341512546844818995108020656126219679354206391124342937456771717606965186460882901630614507089536195366797317614064665088292093270142776303766770672539976769979811335294832893569244419885200277211718359840599972971292460644599059506230559790194396100068531668876070265490042908741109254400141687024862325588687798888987411705088048665258655851304021786634315903056398317018568014547524689802481883739354622976026146926081416030523748624826806423001653845649921821620922248383660430674809878148871306412487533975626115351795218779189228439434900976534127181325943004015533543636627164724727748458705099975016819399039671201729892551556657457668233458573269475593544279646349365030928808207049126490538327776471225988193649542318273612310848533305929902938698421655454942092989749376234841941305281327177461529943534449463185458525156348699187974995419056977639555350981270803597473358211682579288991573775011558590522420539735984407940731166952138876318077985708572760626454079663045120303447951381418992716960342441363763408460242748573306692690491435051200454913565875419172048204710370364755290482878114478426363379571633421795409902692888734431010914203724618409187669114403701282465019536279985404422154613215413017433294818477250057347810050426917875189405287614799998999265894321314821575500588433849008089813982820202595147363869066065661355187210899491610620247431681134030514107072554820799295839220572175197050575655086875651451780973980545176586193169094050790724622051962630608915826139791659863523559618366301081484862679960262609428709922733828436641889995753881403563604290946303789019325805991032238006025054103825579551806634068382965182037832497073033759733193544885698123573459026385522190469521842889118032562699975091348160481821230889561873269680217548058791791210218721558353732916634211525996808987975757845832930631185763307804175613508373196072527161671785161594350953506474441990915057434179664911983276072003510679495137527886450325207360679552302470074667574055022596409954647769218197262317272456922589352150815406550380667155502480109371240404848473323474801421947142261248570867561081641838758357141462678104279483452547733727480069067704771718433523710280261044414657084175927277687557832670347978727473315482649623415063586054981755003475439368525752626107003920318687961674635602779482412509114187918996426968613512338282753986459847362574272473502267461026145687834524343592402863595094401134356719817765306940001816426448696295155870714035251577932477061509257495911502199066641452497523901038430483442568722534231356520875418198324885658934952271591230202586455016365943143779327545474523095892952959597321960803710156990981218069128332572102869286086128336494110665984197012408039101310538047602602074928434796230465729551986707569181107823564664968174955052695436758199795814870286531871750604842690039176803540419203397113173713347540377359719986903394476068170051973482300478789811196373292642598233837650991992045700530010848172379666855049408856410517966333573646570457177274808027469372954225616132831398060252324840672617986020126599545536546181440561219583718722479591474653894522538920288669229546136548870556078079348536979281304988842665332355429697723191626928481097359775710308206405615273207920872408784587020456191200364855304187483247950199928137146891402637619461614021980363185705940222118901658213849889052772989698723079192046178966426282650360188265465149687434048686361234141534677722249366596134287351133589894097796491165793974554339760087573876806779712081166273270368439856645199748998170244408479962171032782456055343029933655570366581023113647134980940500465762525661328483218808044883329046223563203879463613869451468898550288333428296436569713271242329255509301403892899388501580931283793291619702396567677227489531619961030779567533427010598807804942341531204654190838953170098776534146557449019524873446835348870071608518343834615747066503857036092348630055656840977932307233636917169340015978448576308824680739205854289165761998129543678792507074305826327532319404810685827204445847849606937505718922128863720028919810845329056821337960572889685126510646602910608945529151159179858376875501178988404607159541770286297537801183425713080193684324094261422821333698466008912591921875491172418104875232301461484025180794762851345139311974292061170014569542020284574118363209049463191417631920964210389230502638811885234147135648567257337854512718812955756322704043495804354919913256861221014505894953264026698335122038431762221011901919715358444381436806000333623018708316848905177672613114438231036116049012416436200785348090056467207900024312891654748262841445504351884805603352159743542378668069596873817926696437265135186554070960273558414736656254129772898141372349183104274577539849455438550733670886904388010268569785936834834431919542300368367633193741852254555034272243909134426082185699771299171060018852261953006776941323847322864511058531384647835991669706229431907932402439237754491508133961181803981019966402717037449997958070012728445379047165374498604388039765764655984169404449808832652366271050044025716411440396616778800886431289724477284675191220006960278449442796513545228217421752022810869739231804327941083222825422934686906874401098564756421732453717536210685826662251425521954929652514687951341365704407103878473820176104760334739859379897263282992856653811432487324452267274968338692482479872002851448898469791543942812140912455386119803458732451623076054028302378662401320626919799340839341814752767379691910934017188182154149393284244529706221920812622053509958437822099395847433471330366628956975127607173870866937194485956280420013750400702810135608764413099507543917055894220909924623269130761030371309633809406470609418172883070182792207339767603932628166992107643856253162007758194371822307610671143170325686352438312965888464781368704209637335183366976974115996230035577306804432585294516114907110363290422444733112156977556723991127083157111637216911838777754053772962540977426720794749389999722304045271150644093103211375149204282356035125574242105404751379700467413224639275292085159455373533825458779759943728266084831514282333710998267426678373177937447852461304077938031047234385823285506261473866593313776498709486475841221301127656890940792280643630291483530368316575872260299359137173349564503220312494669653004943312713223850621052922288786654739069728152351060234845382881383127211282499974967311306764216031080402616588812823335305989722293750784822814228913759762523520202582671165777580120874889264128327065496269614545928081600480990573102758209112470977763253123503695622266750437737694632741196869175974098016200906039135756395434818790467945696369992905786125389004658383580875131763445077554689302014930109907127876958646517658033195404872230190061418668141437900469316191048299683783745327587150587887583028251430330598711520205055413684438696590665148979265819818385730446763080650254156870099722868355389039131484663571946196758466642029824770978191473434724509955376255680129994366942072495097469895377077683473705665927957972069454196861950367365005898254849010882242715495713751570642609491042270150167130067956920327650108477049147052299148333490469206786483217901876615921692103736522285815910126658188293331242078737538271731762823773103390493191078923374007794678077711313186761759127251311341468184128612275440247353290411833870253644009140110706858830142261713940161387000452279140103493814398959882190315611969488468701649743558542288771386602206856779234258337735387455970129231029521483807711966855792399220725471590491234566712865072030737391609233764268307001056588989084331344700093801925176319980052491132490366066151190217964071920876446834422704214726221292330549351722171701575112498550823507312855205742690438061185610742527937122220586409125164791649839525063005434750514312525768106933338908839634896963431148595530502551148533156762148793339743784556078147535257607341327140712094532641006165671085363096980510732562944178690579245582095452764641723374293000249885291504671930432329430842106054435752406645918309600468953886437093334389308053568165426918797201171066718225628829937916530502739676905112735166754778066429791409243515514249007679366323915195694649837886907912946578591735958453681994244620979051285144788760201296803585072022959480522574375430567559190035092011289992071000829067388651805403389814783186984913219453436210641246518958336445987335491635015934183707017597506191768171505698339850540307717725465472924160913969789390395472197500920733525705648968448024932727779766981779130644521719100669361118297255811806213834645522975932265149876087041658481423973507031722413772222285290909232485947641385149080060778448138292383383630740401778311855466052083393537689331289388704427761189883526412251050314343533017765734357592707264444699488411897007181028497894878671344944467650977646000963965287081575379284230917812871142472477205680190143777922086715842683810056801662471002034760547763230363749324387095757384201692487552106887363181634496255221377926347719182962263664509395254719429901867189266526422934760596363152741304554602881301994132809225664357806834869440603011395696924228646215794243847426451824076074127356539241708435881627895961654860010291388943966794237297714127387019226559982324134771212145585200819433440192713162483652647636907624018473384126372748254897543448385471672220113893276398337406369981285524821486213928072413577367945406971232880526739794589415821967598945107027334669176957080782077062653677255233760077683777475452821632802772885198942645637649042766075995908957019777030142170189829037563986523718481475528129181809921635041343286118289442247022660542738493218893276580617312959269253595918714486212483477404855080879445198556211154500084588198864269571756799843132815197708611578060582382801988465692534975598122166555108160132649194108225260634654740931593401017514007752720692991638075019696887507501885132937804377963581316344566094768210278650364688061040702117143637473082926900103101999625735397702336342699618177503622997703382634813525675684953543633094651197937351895940527856490812823006792504974577645040077876891510051703064140158119428758063131458952795533494751378361306285147448449365123499961134855119782636889372874052245067770333819112773283209075018838713710204978289809144740265288538243542391495337217579753523733528615357242256156355955462874880346910685516208541725757056487996451347402922834232362866860123364780623476711817572781022861357127719982887989357826977298038443653893158140150674040328836867585398976665434472460931417228119619088834525315076280197763886992920167676799297243040126783747901889075106983066243043677760365592063473671311741649030147115678636989860938414935243595457478527570365546603071092564040526612453709256693070366453537535998153721230678302410368680058656790425230651711975220666853054630840679870373391752037592074517490057332920022711390846884124347879362207064827274086476303154232919078810862247890150641613719853691516681323238675351768853554248144634043525325126419338147327388190881017098893048377593858071756392862809489079002930257075311078349278469592276159936933778338811443753914451978120413493517129590395872685909111630843408472165567032040389103605938505182620476902867430061974812945874506615217459242499753420955451938779770777869426189351886505350755532156035010639016302492143715313382817209832942683547991492165519315520691295803685886871840289821832272067262121720283102504503845525530115999889494234719559560334468202472341350615354420070845432091880372208372869157750958124509345746044542847032237790495953653699831909432405159878695759086683000343329275510310908878700502263856018711653093974678597572997509678099201843399102628813530667515480010002865570055495957227262149044243187566690518094123236199440236333748534957454482964319379014720500130569844994858721324873182258704516240966656752679769403694011447901379142694833827054046059558380493923450604203072864184395064079361987228909469745349662492584511126052358673401032916940912621241096528278722828619874330446866594114355000979208729315422630803208501660603560961811214629377712635560093346647434417018479888077857664093527846353437273235042484261601111242650091345066394769648581120154910837711123328077593272734606451323707392548248676528466436108200671163884809749725104446547202666009057129592642065833182565257234326813108910103359333997958028487692358472284248586045202784023973447842158991835621612551764943657869160913599106957938843543115063283412284913659646623075574058462992324932878448781543493210470614833221346504549544762330866611488181963176703987199499904668730619226257025015443533135832906475693564045664180981766651486460751842721204826985220630454298703926062980565902633585594728654504319294319339376043121039601354307515371946764825600122619445562664572875065751099424310389427808588585577195882620903537727857411296467088278421468132214471079066539906821963151266414968473562153792177664198913115906060870028655093182295488531267231871874436655499267506504997697977934159091500257896385909302473511283188574775912734670718255744367200942369728699570109682554188057997286402663791498556817337091347919029374130395508850378767156584634943330938846563127426853213038841334413511620584813399771613909310816256062430479592504371310358244722927253107908127005807420452178848760814056142430596097142632938926870591873657853574905730234542355047081192160042640646597640918756979743864231566085019992970125243658624485029853674265045738944751329505153180840243976107667559101554758670865611505415639502979557438129344144847347161427349802126057801669732615441410089699331987714363597801626688218152104393703499183007319354808773387777701170626606297229005681928614293769247991708144346192303596278756408520021440963237147166264292742810065967342657948039391045207983757850633467567131624705492969351206355903015869574084228198510977855879337326565720355149977193960533753530186554413245334998490585284464842987249376976101500613678772182733238237726932588905430074650659545284145836519882360789143565244390922735192168984163007602612443719417062804958261869240810286279998503207699501822714617426103782719057234593806799154984318400124154640087161005092364934537617049530723223106700516647048657819970344327340716889820471662110739163703749115948033070152391494488699566984185476579514920030094130773062145426377823983114878230976008199952045029096362564021822038763331543231571534366596871250053879629688436142088997513818063090400625801388714830578762333435887917277897240292117081814555763851378567806971765783685650310319842956720551353872028702668519698140384930704166990805299016924389387679779929796685112104080495830044779421413744464089028432496574311100259526393848029515251593451468907276887009503005091344211917624271655321892050969849774828081507843085786340585143608608633296094164752246847105609742338077087410097492859594678168960082709365107676686879826570309363400329445511127271085983575037004492268466633133108912844513218212509534275297088828499617856229343206535497255786792837323872470343759803174738734515386678239946814444453435969690025537779777503517215008501283269428235383103806987651574461353989968635875480137046922058426185095805560792098550837208030921886819641168930363311991792556155417309430117812377201950006489817209457219201843733853121973024643177144487078243587702531336401936285295964714925002854638977250806472853094897576765044318813922836054106486841917635370571120183152391800817533275257013572392886683574201288566505448529818502391277413516781523235682733018894317367899870889407343071193706971583635875128687911795603837133295769496729442156937299317542362353415311594866909466988285941703420415001166550762480481161136019609445103109119842773431097837601569735505480200084850257927341832415841171283719535250275468009890995366705746900032679447036858408932119313759908308620542227882140571806010441718445723665122323293516612322335356184354134714775049560896613672410763672552673824138884781625643153657848346358664618731937318547105009815230065871364042353485910456483096972921669657152862111019988107116219520218648807470941611146827337135358310542867180747020036648076830189676008855034126293845065502032091266850786166526348320502372709076184133779565640954893179937443400174489934184277208551222854384878172273308471570490436618286671655261260193633634804498126452396637827409605434440049402384721568532369754894880787717902404664932030086520478792489913046777583932896237066558749277825996678409257501860526575900313914763890267238806078583289491092089515325311326002644904274293180132358459631741081971248735033932630190586618952707680760666089944884086248603208092054728731466004666868980787878495674250818937115600214574528744710613973200029256617035565063254352361138355250215242986678370844741882928643069925266910201669837003402427202228673166195748121894388642359320654072813945290847494507150480405024955741862119387322436313040153204874922801077644288134414676588907721074844898733547442973795848926035346102860392634460400415919349252195320349339243602405698235615204121418875213752041283346788666662059136450242032493237516561486939235915435420320761854794059457227124203972185075580636645962211342567368520834385770961869547552240028251340694329668867261427738352066320133107652748054039166430058122830512348946888604976674417143196458960436346435204667314485197700611397141692542158621072785356982382095994976208491678820005501926276431206486919384172693071191698236655343395852549953062527194546507162456534607590916852012536334239962656192362679944071223833844594080582487486047188444244389587084430782655206593386313521507714713233935552633822601230953076137323771160563082396279767435134208747665055702134979957870819417318023925332157343788542270543506340089036473006694834841664942671490636534024330344541193642148380008428392102832175978017166753509903199314359301874464471673026872854940362269317003365351053004069308358971846012973571345132078268151506289989166179635895164695417112524896823705365483172653319842141227442990842110145241390055661139902533444104254726795791948363385833347179138518093929177824718241105668790113881929784818972564557986472377300545923572237064869359264697089580738110650776797728482008825780230870569004792525499155780391811397108950298957509617220420089662135961751454942989708699243317630653756219688476938656498171844720073245663246504139007752702262040390263234768150795780163305202258530797060897530833819624909721138919028691687125573250908709477535719286779681068655181071753840577928694151986307587226161913186691776781230309532634339898777425282078582870122926348281119813864154923367894976504003596562441276050192489661252953420101397648144719849764550756397832550437374965635022859994157368663268200754576357094709707466008061397723244291486032929281406554460381574453981001986940499639979179242014219057949283842487925863000986638346257372542660239035362125134907394563326427061186830396535980549598229237851619471345912552986533956685034486670474462070205854253024303470678531897520506901545322940578573943832250171821033447287491371706597262478015489019245513997043032047870719703751688087058615276536432556291776618910510969069877350742380855863633690324389204237129581785175509596407832039903857456196530610636386009453619411278656115743588712573604302164739213017234580997267661811174494475473818572404174071411648850892385175478502530801895882769533699443372216905257589890456415999861746667347148853445141503600097821035850138376069329825767420079615932318476407602262440818634299854649929956039728784600448031414339699297340464252400175457702020393507069242707413035960519137106575929384755768262706052273417373850282394984974482433752884822750716850983260571738436338055897444226361000424184614478543939737269141493907606084405402947849240790912575727032750322894596909479229496647916485666109029485001173766367440297025829415947597855203431698759343434930060143583611852834709431714322466299439565468101634003958122730527267517255788193797325845904298087450181924608344933961093313673236751225756153382083167487815313868638794150218745852163459457179686473260388922676935494525006485319555284098452898054190736119397686226516461361724921142791774732490611753296562098645400517998908926843380083037286072962358975688309485281763560711345602862972180234511850010715136807703471415211935652704579114240488942661864593487807266014912598173041330194411327058297533037811317284172539415223325173353657396519450262483535542593116258443486909930311403865559450802697783051280620718375770736430358376307858594955803173284072033198992960443866612871034128848361394664827273572986553771595500954905435094023368540369301281180925160289399278269426472855712453547470134372989266313372553918653544686180860676371417973685226895428389748310843972539286638894158849735691754237463307235800728997083241725853539004125527337321084612677361067101147313277791369960990118898349138137083152835826683241264636780047859382981604307433803310490216277547282724964970050955310726346145487086894829545543896282322265850171704084726802115046704191131544760694508619394383976885564664135174897453130243148124584175082288571127555317506045836719538205501379837245693433844784450125660265661381016550819451356615929559510627127269545139392740144422230343926896236525035911647880073512412385050251007195590764276452938648700907523442367224951636109465722830928178389217418855611372564610112856903536305093424452285690237452236730993294785584097967114891222599064687946435638865307493400099722234638555948038755852160960814757640518628603856977472826175476960686358105531080195127639574150038432398292940206811409740033050093962149854659069283955571684734874888318713954289830543589241049403281405049625357989267686481055102887998333948514931231707495051032708194412353365254090076114224936630679089218392905270524886658057169031911443006329094157826804343631817529994373060987428135805369209019007561048127204570212401556475573691907806691353688082928825716558747816825222864120892119168803625311127757157197806090834146765560017278684164338544941807626950712739851276300628172205424262100815207232271599140611000984549180548424403609900227604910224581813150021808547738277685714402497091139151422591870751674547460408894985105072495776442920499278010718621250365648531709782392361499261150476926375766432551400314612096276897058383769221888812679955844573889649132185906347876287707918408276405002578771100041062080100207493326692623493915645105341336343867019067405778254196433645330650079284082929936679568682854972090514406770688003315374632160889265203955742651795239364603867264705102636519273237825983965705816362636865204443488521964419225839170973606122119714945272610122433245059067946519439510920781278601649809713846628037346541305033825728528091821711193078390213072409553647257384461976869055429048232905111458676554983651622581180393986717981466993698197642135994323205217068064458532704889884151736906183344742540210371360019430131946364599739938988598359023696350321377994643021683515808462504257274834994872579383964016926588862731529615773431162358628013402766426789170426108107485524365626344843867117520300042104225739785437042530443765640004042976980947169042283322410376852291997513482020677481644539782111336947243761036222641529215604853046052847843650684324747632039577729569073399161298953208190100253637741979990810697512769716593024758794060274814789135214021768586330407628278399450709727108333593617004982343458577611846031709454418578976359463038801445846590680367307024660440147165972231542529178490757320849493425786844076912460997506876502891351053479342783216691909655047237327218768971578992627679773422765187760983884635761637551792872877807723986248479913871211639046816398843614372633415236938840432653252111186941678053506918540381150229151618534355444182661031110854390676025023284693350994394719974008732317212267200360098678566549442508098874457102978391473174408845403905970902528439246547525266339284311791591862774349626491953684715439219319355770132748238258329046725763502032693854975969248653615736570466920539064676811700392855885547461612101380846276801051865893199039256283083826770362124049243324252984492498777228370017058573945718306111412360884264118742438428149956117206020369939467491505025008414767363215402489715637335675187131036333115950775704797867397517645354295258647867458396973830161623144225925564542717676138403681769293147072074417064977654519189518618768629452022096816821503947936562380614466586557718662205912669831329605881456251720938180013311305706973348995439025004530152647593175865019381916750493804881480044560069528759762487845177820440376357966496160444282771775548003716877243253802833357142556624275460688895747074153002438610989993806951258705100524251230581497149697735349919088299203889540649736261946835697400417541614441773889506906769523716450789680285585425317917017505042771345295908097046713847731288861878374641609101873592398550912524737078520458849019852117501516092522497610317107673794218963877100541949235452907771102375165392355230926659011103155745362573098030599974886316629538058551740256354759439891844812475313016931465231608493698343923834529401089500595576024113890681737334525088265377084155546247868980361772140052228044410930495182333267466276849074297769640618676045777597689863129366799433168990881258296499420373869344793687901843736483353333038853498590098241251029486977452344278394041481957727434064505229478789671121569353198548816625899930808817306902676127129232836528351415330264796639171958186168344760758194292416453358035316243102676879763109520561920873120261830513539813176083740856441387787011469237124761758515749988190377440977001154930811956379661511421298007833647472402966124983769771777654678674301974210204765397922081577406417824447190580999017555703069544636994436710027729629148102007556321495380731096457933552624610647912349321102647894456284477018372822802634283056424804939763497283693164775964424876456720907025649407388648478821156864987717315270858539307077282011711754775320885221474587908850291911710240839980447362726046298708700942707028059999617065167035765591665192792297617215452475394668095538109725461760067434733438751560748432190534259946247586931750038010133669307847055342135811445658435031456942236553392052794509628649913660614785810475711174411187037651551486853875887780668761212999252830915303646700554967185313953472803218444633355662356481500089981350608756258359238951658459055176149488447275582121867185219175379340566272014162492222681303527318881086692453110856885952265428784619153920122835226166312389096865698517858753711614795869643146540474515165268725322568153394089745307179084680512839185477411912241962924424763300027627123217090630881194917917509299384357105857917665886185153139391708296651275117120664390034090362206351222717340090455294513944555227494471961496743056433697999777828181723434434954809642700878139375299266541383892982455009622394518192718844176771111800247695587958247529268909098279344689413790715536879911969058798473035907427182926543482134037068149471236182424327672231897742768916476884227616393286336067748508807502110549505742745825750883072864352697431800704497162040482096396652158015502023329285339420437722690703789309291051487587915970916188252152541763411024144147221718775419833718075147254798217146484507821857645255437332096948530047595423430752999731565521515696607600645105232411040639616484996443454724342846358251969716746426962432753790322005813067839223742378640551330357912958961663540808566972883165821262528271171330878138394287118009868159422779592730681893378653236358917530282442988973095716709885593700025324785381591037237287704216091489607221997993472163205275579413580203775310018491494874301059592735125524619900360141838516806592430230715832561730542967880961901802095292532219058310742800262918113517970155447437577385135298886845708070215880806920292234321968299112340588287572260547202698877125690795224809836892511375678944359234971900130123430146589275438676869217677267587781695447350028014037368272885618827627761217959918586896061351715514975418836283654428848907280534942179644505144041882859029786302980873916815343239745963997394315399350716103219945823800488208820082586548433815586731670166768327386130040347726126652885036031415190559404778798965428217897478754321758659244106953744285363433955003487973713582210650835275480184003043924391924550606079534234395557573848963180811340060136873945158054009468587223652937520868148209394140825300948239813925555438733613920908668052339259863275731928768652936955805170111503098583532742093016192642387999357847684775970295145381902990778499359884120826425087482895075848266770831233348742731514757771290964733649778972042702422603887430510389774982654725357296518558816838987625037158113735541451635865954981327579786221751818911142204583840752753901633858611251044592517438039947120770538752367482050018905276001157851256813466743335240833576321070674902985725930694032779216903480298009096685362091069232685495938119900694901179041567435631130077842453149195574715695533166330493919604638638298619228772309307423015692803259394439470298644090601270276019711126788768628165588240921965696732406924791570459582543634383733964972969711367564381693271575252984835865046420957167708940360820623889474342518755553355518253303196942800419170777993934044289207795158833801727375362909863188238694974236659904158049300035898299730512568749245079023256418493410415785861444620952272114900219631514525148527466411950168033945271718211422355877033231706970380102043911631157819917063860543831198746041267690803281709306916737099690624139404495478733712595423212145748476900047954197356958918596622908626073156850634028748987409905781148234548874666545056294478657567521700148159515830541243337888261056991960053814093708853569045419953182365928014104935546563408679301725159587353391704105464688477411958532556126792146930097604361230109179088899598485165664124416996078118984184080664699918563813504739682209342934148541457788937856198270703175794987981261820416560588557497851824289141892324464240811261294699014372004795391413165939865949831187329653561583948149182354948896490426010370906599698550688705642718584393273226252350781481107153164344373844890528652088572784267083473311792503309955305707741284944770506317216857123012730798056047842941342662941758669892407113462170481878868341699596004883157557657484718354977651697439182077463276354713589069332904243343209469961762551451257496927951166500144036628313597967524408992236988179587088324890653937785543441579351234908163151005560064175759021527132781881607952886866702011484898255608223530792117913769612949414678736453623584887579631244188872395168071647543607195158133537127987894209106314891680518404689911791400262165434688576838570083447261643715438630574552257749758064408828390085237899845849868442477443181615879806291372010645743726164768051756315177553555261211001808467110269127328586952595659184781737921001759054272359804918775899383226303593209540380920163788605449490443059338729696709640104259670017929406375263700208415732332490510677763833798880554090214718799568034868880785029229753496324803317588982524466984299494482390447898766517107357965928534301505251016230048247252718053061023988299328086989068471444262157005058605319533470447718989339940406583562270332288795260335919337301962570839653853770448887639642973723451008317604410817400187898603325757916568861730084768705203977751956943358568419831412527974994563853040184598198196423209368415680880879657207478830240829267017421668775894448622548130676900592947472453639333398304378684427700834140273790658919901623355855517116631053896774728563368108582792926833155672025758654770226533715342185656908680895021322221672495545042420054914892775038235636597535077213268124610063817787615413382467906663718654989464466353840878422552016069408056421155602994891168879694036946440375716216590538030662518801147910001150134015535270500580335762592251944616464252844733069708415152233360101358417687260876586785664202445082177792220685552121704286604958892019596580844091110607247014877346284124057937877405037679109243762578393396161525063535574248974554785978808089877356801298686474260721828870529759161731694861896447309042301211565085563118398319878671930945925654856265023866389050709635056580596393655821098451831420257379639477429609297291537888399632230987487344054643251170010885501593621408402035995667337298428098764717997677678961827836450937970590881982879076039951235682353512587632642352505930219603270932222830700287666451675325202892974816196928576235433867940050805176327356411045320258516023645890708954645815195441425392074382701689214788828085642180088574459937854345485595722081500892212482007739517593980710681501253459345324372258401643745425656632769678352293902207288724063217738754561959899710138536313180737512977844604440923175440505247954741748550585330247790793470005763165795195231727464618053557316702082564345926440393253714701971638942934941761907867256737607684488724974309081145890998862783442431745780652874979261281784316015808864014639157592135500142296172523064310072571763901229308464422711717969666482689131429763540681386481123241727264244424783390529919986153962450841864607732920091904494228270056116250074375744369591529271978987311094122820624212600928770175779573253947926140208405961557157540157402461174810709054492835816482234536388890229743118208583939279082842111379280355795476790756749482598497850918911293428768654744819230933688847083990717198988094696098704761416803221398298886777983019610745198059210466521053617738425875577517501711290355038168348204609903152399582198843428866768486592611947032538240904404252021119943290643572046737009306590757452789697722583334974132482860661876746429780990030530660591511272378373106309029359394024126022713533172628790825928054599198180893086966668997107309839285342135981389054924115441454537770099668461373048218439780566612396830636204563083300305186018482127108680921174038788042962264904354627775777709674889290738771141941932869695662017977283509221657322235607009828435159556201168476551962343092572087897664033940514390433992777336613408014972181140316405228716193358443589606049454035770107720115100905069133420903032158099965455437310394411660823743871572374119972894144779177681412862818962092026545474467192182305962459245212106820194397874547801502633511266012111537532769306854675503817423887493613168441168853557337200748868819660299519479299983070595410966711092944465311489555882633373438834928514208749364036679304447394727971902498266373774221034770727729423371228054689228133916731343447665721059968127509567722507498947180906109203007130597902209752160833063576070098174898850404873342361368650634350094902313685256486354232059992812775439431555018355919843044840511448460813621304133806994398370948111470618012538423677261858247650712006331069930372859923708225258410105654343062637697036858780096452089051712685855881644323390994460643862887936744433492449471552476003786493337000313915000666006532562803915306707813612255014490399333200380954975476259060574949706874583530146788571525757768679292869910938275015488751240030791525616759804134822827470718344272183460138891462728737453893569325932869540694182003702844741904032976109412614660108109437926158289116857458962880112971925624168187945429063409383254431080826289526572909513250141088934924489661723094283153651878325052276722604280308028896737504209352885388577927320740668438012373940168770671868478926462466058248043307274059878624345067352971780020412772898809907886840153841575161993290863510235734470170443477618477286380887387376968095942304845276957831558949008471481894842790261279507666250190743787921996555830938129815520008248769568673832852429165907340071258484833691270729082078397702966937737044208567651210882094683033814169215934805393520825616100109894933185975169762983312193467750393848250299517249715965085920656288856833834864268967419694993285005212733212092820158417399901021359491079454276732951778878070168034770479618160484283920105401976958660929112994224247794271403087230004608366705861044328625775686246440575916936077361362803353700854324473912753331318835934219018804521504781462034372083147447835678108972642443991015890760218180560414636678192466244871926584123718528366565786597147322944662705254912673956833104685433483307549263271612765990876500804420766822784849749138476383288918872906201297421138393266186644679797333273336167648869304085482463294919440439445825111738609912546688295583274232335279699420460427360895379405387208511092831564092352205891715826744754209100317549888727847143433765538524180435266759076966847466421404796762061529947806903869190650299708303199255639627763310393834640729857771315598830212330185142659290197551177360716753654631111067266608843232307893469958693714183143593211720396899482852225065301292024408534584682649825213869163330892726663222493624355754958632122436162416304157347026828672803937676803674370773895477769325315497794864556079976260597843031700558824659284600722026489409116558728044370415826846460342695409032383359507949300857803897964367705640326669947574544787527757513114781366210106861187252292429230544052748876463715297009363083877292027310940731216964024693273294482812258795518463353678576927754578503107650352914089214029933985065354432779149623179184508928136714991654905251031429328003924045894351602214222749108085787909406747826074145918811607038017535982475499179225578519131355503912012696436809852192310905147736176762578891367298687474168908769013863685547087874932289721371227154441409658172181680988375329806317532501936232972036888140949831504306525311971485614489966966066332633409782350671482556947478146693900914407227182616863210357571660731919375344962757908317200451041139129673126288656105748495230847546977259219206741883089696939092039639129243506131659318960332389542179737962256525639019442587106571784412872567495262336494995595980851555896810336759820818561508498873068764802196597066765047784465415600760129384847304934993167104041365459870365030623578905892707636710451389999626164578923803468450782715250414638699690586546689590102354433932115434786785468710462627921050509198424843762551812653822628071303217972423949162425212070359361734033951257269824451588359115903364244456757160578871857994656692957926598427821714475931078046944001165833515630036469202150156852608068386036848223645847432569635885660238252658442523501861848811180403286611329680220674633302437486014656585661328252329611881842659116256082994373773118728008226651604341585067734944778253962394293893485577718759905877756463534865256182349542517689817065200050385169505901253040738683676030773507856676764778151286488608445253249482119572693062843729024332913338216523372509473246410633395502400263658791634419534875915985332743935877929274822180610120598032399529821578964499749437496440576255838090994529391840219662395747205253345391522628385700954990511064197081679055097270971346275574570534522140590117667850110799427020172447978213614226746173733406883257504997346506216811923328614136087962888799409870819309478597347653094157900718729204035686009347352017166750070564934451723818507371946461542288045023683444178185457317451669461782836159012892567604757298471311989018991444932668934324118871382227108663118247444957862674247900596075883833898101810395052129814154744089005873244145200805249226605619761879622503015927794447045322293753430699141585350608301856779030880826459906315459953230530894809985339772391909919760735328319474429692293486744892240066124914461809136500370642377777054397012933025111094908038609498757390530053039371379297147160284141342354955245845710070914214078874837921997796558419150675450691103832468957536829159391798000833344437105176389255859379439414482926746507563277190645139896205890852723822772669415336143013569041407603473872353366482824915093496570301754845826412076360648506280674419692203457152657165664513472767761077717934595198106206069480615247838323636124848519777829237981545355584714106113926581885969669593441334704648802250101541536057869186042254975725368427574085728377510733963656413929537739176669515721213663738569644337914567439761022872725880500878974074841143379686621746016808006070367531019744336757122610580263749357350849412373161373169118957304347036159414124511637618487511826998001107652197571901144411726799704086388293513693821245671285534772595096529906360728963242922253235833202621342073799233818104211476492479230222128416526845432818379186417345833129378484020612021418345172948607025442246606289610655080796226096763963116799117802868233977698090549470160777076327761805863049118207024360587347108449793290108269260949858536927559424560965350716074752234050163286264031449557352110790757698569954117239055297941387903476011575463220353976524696203733853232251483948403268981946133371079595417216620896938858416664660462231944897697723247403797863769031411548814086889311788448657586589844789665084745379707007543713184376992732252806186335886828349790287016483124371076912429018902100546357093015375894670258542989665128529609050548149752537566018887313028240657199330337245763290709977717898603581142521513002584061072405630539829699962280976793414140225194847984360035156515823828214809877535663017718315238804364725402335410098397570585454733246166072733661230807646307293328693654273140267843396302757605361084624301402218218695741511407488966369417972943502562525951720694861172729240651483868242965801651815004320051178276071073217568514722716002959877931421868321349827419489872995454170175107672091834646144594697672469725914812475180987561147875260594743909451104312857605072928070531915949196668538505383235095272999925941069485771143556290634617391606032412776308537336961825974331317337685376050314263804512544323854974960119433915906143427798869187824767608395120005964182416830599991077399790643708947767264743226678631475457055341192169575947513710043978959063808750711427978157418575949698661598935307328126950155823122781276053572550487400911803517991889103502765122349578594488579945896771435481218104482988168492653067001774915327567018995451779482242821659223840608164533876683400531313743870541628026164105869668670732135973580072599974974985696645909198096415746174262403715484775349090741275313658823813982186570072767844058468536352782451895264617027225278986350565267432576305717711576738032841387411268866925640442462299110360823194158830043811429979414175922504286949033768932497983729468616054023562203296091641200586863544868253514236307353358980460912223701808017115270204527477749598651838202693858824355710581921652396821379688398050146755391927028291776744034134316547200965042850941109246524713383046683392583464844442848315350873436121689961655555761119494505362754208672256605450033489362682113638063584998201749409447503374652403472091985194283349846032081136317984326923345298148413656482161319956107156726078367295207745064075622244679826964279590785277694305013894370249956866176606254936990494436424315528364991508909187010241949390629756411881632708584582028370435550143029480178647852096014999547977744134869476257245120508902210303255969586160286214061445117269890773169117572572737574879172586000780363676886752983109910013919839496172133451187304932288726398861003480012038414265244901080671148147357397125974059505056598669558668341942660590410746555813595920229325383151098761979880139294443136044850394948484809212262298782679329784517483269815077348375049806376442674694073126130126434012318895009632286741773140801816812536454005329316777579365494841521256600006429084926602783871074233835833674882467659315959869406060613122917516258781606150935846886941362151108506279315795537451316165301074340791948926109601308420268104651483680305045517417809489586791603996103501478568694136804375281981504177758997097675872368743680128664931829979697785041061066533089841857606272596450251907077985761616504596604349564678013025538983614862485234492542212306227187022726574980494374210950856613983773472614568464658784122901004142691518251351582244014203062245918418060145792498714859476328840198369344599568281297228063084245633666183934377913175298168956550117634171882656629865947240148320500264417950991866855226135761360883888529108770731619677310177330573911580737505575079562573767669667555078648490774721568670782688373628185791949173610119773070773915794311676801685849688512204821881758755768684409614222496990476298831284925349307854316742723654214390864896151676989959160130586419949271399268401499414751406268096121490541764595181625324036463129962896590120606948865290823852508961905124724336311111780647051852434570555372954280514942862595418533038235923120909385520013561984938455634928273209704814031016432977233267788204815885749558926809161878074828065347836115329283835877670311638028172606744351621153537491843371454039775453455043809437412741775018541192853867173758125146424204814943635939381156848206843952005349830222066962415722690561219875182798346626891935385535871136555660434801565618318182748441754808263772461415800264030456438503877970394147647980240865381761869905956396193688608232887203521255476476236860506242688748144114594060810404489350388532416600602539532854403961120763999050519145878115534922216121063841614311615849125960542883037849590139294546393021385149053037773913413279455129912324082443341205042224505477265363361484349569999567763252328757278380049849826370482778596452561646821188487352037482738970022957516094162996647286027658432879207327140745155681201897902164846075081945055378702858586765687650310285885236906678895003931396231794941791546497121278263505409822025174849702787869078527663301688944637149571081204953074269830511182100732118123566500161246780086642100922129967906807823490434055165136078239367794838954226381010258524790542976917244407679702025022217843291443391454677161898215220755180006755165735311279042807148891804323338167650339665912442635015136264503875306058434606956409133150709671760665193089270912720787616866355559746314397583630181988919337085981961237430418977828955345487789426224601816207919870527761789167422670979084755604657882240943520705979322746560992480086849942928727131136046744976337504804528453855123214749168336624694485825009558210345703249796874009171423158041847806039244935991549448886680585033222377070191886870936516797578456577874730071130867524009429914921036805548578024370322914859640048291950131192832907470232626770844922171673735402468375747891111874899504000188752696879436729166983056504493414134165620735475545869033802551458114232045817287579276310219949819467508537077390713306500936637001455713361565926423690972404824174252959623905609011105470672268583489375042271465767509804466950846929091523652788848050714330934732537966487231789271483312651602226515177846726563982653555925574851436083935397897232502185892316011626637590534831726692160884626147874226797382718399884260931845074167600093971232570809490080098661364411912316856482372145107612910518852815364839099543955227144406783365895148223320368522586950985335747100916645064561534598420379935861343761186569714042570436891812605253108883033159801297417235700686715330463233888430712818729554340877649655256724765007530971942622187560017113786277988249157832190583230067007442153860043247550529500289642651321459003755579087153490372968800558502271004144870393793040320150524328571105979970330536298197347489199242647185922726838561324999094796124690863135803848949533103281155779847762923602170849340193247570050435801838033436215220392038805140083770425104922983672421544349416329029988218487511172962222378246655297172279061120606840788492697146848211184503389793668097609762961712583847942076751992778204662911439455291340717648497212541760676048781711824977095166605014105018954613264372929100138375364372635444254323771932071961610390333303244216691687372000445764155123486072277541285513149445456829651684678000306758130963644075340017114980526858118599909480468808150350851252311861812534706999751331124753255363063698345267448359528317001411895938811088945401075098123935387970709712305181048084638629009903255982149158605165077001553352704287577230089131026319337492271745128886523413389204931814429050629948640441976719142766037366024389985220355358916380290206997658147948836806912121977437311773525180115870461099876496436453900439712624425768625481921314398624648374954542707752862968434696144119896241494180434605764234096655606281723794625594422500055609996171994686590003634401217028628004070495195316218054733118810688778349241179510169994205875425303191438159809304125742909052074891485154196544282872453392479398255369629948997655455910682032552660040868350180087225820522741665842009543233577505348395362317239948488016131339594099791487143716545119651555702471389329194399647070230991604624690503014613106966784405649078398549941835985677749028369422853423795192992478660221846206697168182132658791163861615798179885747654369526460125224062738791052360671128919188538886951588786269124847760317392638373957218663188574346993474035717315640796441673820044691911317268925774366909651191989220315542358877866232945224201378642077390898532181066998750040323298932797454075012204910365299628681385744524542045141867344935046241316140422093889842034339384576072070640540726469205283415838402766272609914576146605999030893502475965976973649568973367262652774320249318836607454735772658967865245040378413871120268904777900335591191647176621027839726782864548413747040557218330651119440604508380875162116848141884785188408964664882533528855072694987797763663936097917671253690254307748105472427470592373768912747054033679643898942187255969993734776021680760499807501971263609389673565017802540486801332766592828771540051982881874330902999715283142728864237148247074559244932604493717919627736273022728213509007149998838769064828795388024225035396363260468533943983658531661547818194145325070829138014678647090197048534702811479238126864504021498232663681738332579085273163280048634724057069836730491206099018651149973517848162207328857647192638552186498489670255307454014852726610847179711728660364350806630676187195148930684737616985657592035689107837830102488034193999845737861166632628813305074729492628581404445446138398091322731694434538756491492330321712486488914757573772190562368236317540056786318762873799004008340346743999465217736131248271453687586464577542743734266404708405992006009442477188524014578295905414823343581049462385254071203770191604433411958335047754292938713861643734330233281019636307621199613612314388061222440810492437960317006934168744414664661694700449341577486202658619141012227379778620139906759116639432636728132328174107282770052595733429196363656152069677667618225708372879177267050220789781351898575405717037137018892437012603605629072889512677852627034883310865215291269542471301782426796954932867882335719884845176838779784361263131946867428714875864363575687072130815955600211842746886521535212583373656532442772206370374676037302154048983495650335393029654967701687550850020795106131607742387258638931068495868528499140486311874636424537408588377918923204143757197989968751817453723784734442696814561760100718720580928022321665496729622710329805345191302281864468531890623224415085044176319289699374591619691148995987110199073342832008200932767216602414039867795613339868155529439329924586569658694839314591229215783650233290785772995190105739506361027410118284867824624475823366429532636893500743791175692303158960961995938333547895992899803084352114310551383092827011390104749995313189457222332238866946742575301256390237280526357786692401084667017220385640163807184680874789388562005534203576667250920424215031492341391352662046226755926006685470721149078425982666800441676771629549941832585997941526762744984460928508524263437012098137636087524820151785066126253710240229828897477916962451422255965496773744678165449728683403397380101543312543909750124058272020597191169763153633658774753315390109241080693996615817966796881991756460198536989093427725711172914347791371224359447438943997945775672770254493327140700549044560529307005161276481271739424251168536323384259400663247247436300515447049480564387250749953702519228591277143315548261451043013170084445123741016084830716822350540825680016419574394038669714291288865666418996140696621378413891722527176922233124423093729838939207970060197196479985601822844227603776628139696661403861274166764505380355989501484435942038542029025293085551093111267938498571615678844044146728020559192935537213452159321607993600067692746452765433587094807397464647819972148731985317948420698814375149937861049849593264134953483119848572701585977905805583422171098877730530292259851449161045459038375219161978345210475192262762100127191549663894184864639321878888995536609959234329397479178596647174295533069149450358024132940040575965574066322070734242793169211399760866478791671923931717486450226560165923289125945696088162781030183930690279510291964867156558761539158065099338121342161182043606875352050620551014692190215107144576053932153914772241718034151336539750577411688202376267553151437279742266123019037671710523050299542478252845984312927698525451746551997427518084134517352110239256872449801387813007496841794260985943075382666718630349225429137888051771344772491367965988270169649062542517366147940147978680817170666473374803223864876202288234878594800912045964224390303899306311926345419505635264663209540420904149374668322883861040782664414201882741377326544475168324385887027359637206044457443230509243231933356610013260838136722131486478296028997784730734450011563557103745349921912968618563100138140855267248964656858864728678472966001297575764069049902992502230683144514455777851559788101724633967595709389262638338051077550283503521224451136321968075888924974795360872782619145848383513846750417726515102734726670502698489169574772714074797589708900635960034295298135926762593107507982508521372173764853329665435484268020653846588320364288665497336448351618151317537317306779435434905979731935703680417137022499956869421851410594574750989250956995074152685079852018034946407634744436640071773065766967127531512927634776199787577098769602393481652780340322925629219204257787173745975056698991346869049219489930382118915010444369254787359751842935989706986053921348839012640880881108320659990140099299218385363258605567503464809045775027035798856911272434757573018534778823292711184290825132697531106636310456987646877984054112270708564848041383348190224800220907861641969632708138825988667524514119334035773661360816614417859293133497662308890978369754458388028718214165438962680116816772366809648023303321493483927177428055257921522789857221344777762941965653541395102681687326020132737689691140021413239522699922187200649451222589584323690844174335709085993691248261327835885340141805366328690310762144213678659058679263641699953381412235308745069015880935355884645845818003469740861580934721861816086237693718030631956838402699028590113765393395442815876069431710958562837687454297684909040291936934649801294328331546196151409613862479894714647260058835689457878600047263900918391782910388108206711674396525537964995557001272248015891219159527757950604880252931534470234251250183272128458547407955001070637029884499760912565985819100898239510496538773227843191671175209777360514506517603990961233822795873238760971588380446883832678565296306449807561862713640383534128092502637023340556063481285850910598424165477320235948236598272878539081016550788303790330977387472079707002915626949899001596043344102046153127982159968137694587900576275625956854334428712611552621120791901823023174980724661735794744955220424615792845456066906944944526871566971191498370136565801922898648207416581391800133699911987771053659579217233911840423838189359110283288043377703926789177081228624108113681618819087381323811996110575609150556933271546057921533515241736245369999252462197564030862434071604200057349733100198247080966847714440742778581479062927265291983626936023919520314937574214144835024736677806571315267127087572557519284349678041518093993911659764351427297812761903858213881564440844497780355426333008226584231587723133707466918266760279712128732514097680092104120788925646258905325283010620269613361331731983459506636350557776726945041504690983020128432522488396413254903795880171050942132338298542036103567549147434777554255433307628625441628042692896991033746647969677903554939087456527616170148525774869500801451457840150538493543069410157185198045527812046344945788121081687510539197166750471462470268411622876707269090689905251035109955818623191040758985822192869584150349944624487988553638722835208711176843070037521515069941256002679480700891020333373204619541180875311324854921530101862515275401749762108249229188983773634340365379947362009569288219537572873012701895551579769872750209982213055303902563304584347940207959860273343800983266462048949019039535972898036930288647820021606616891520789425100637210974688624515084458442460340145652403913148330728640375378099849537976763370739390776418960124700917525419054721386437297593878576248803094724799630908640224910633451467827399981255468873493622121531953759046145269993029501037103687893959441645297735492409759011502000070849314723982477334411309608135959424511976877875289581445208811461877965656821439071770091758908345203739560582146267200941271780114394977976834114059449741927305030856430872022989392841672682575561933055326891693443750322766030572608261833368778339900855151862883674127170328578825547078246723188616987996252536978642982942317855304814224713698392002363351471392053399794095764333479591437817324369578677128542569424392569164337464271716230167897685424149042232181260641494992709459195964044611567345690328403860735837705872682727940137388387074590520872307693747008811504492661748788628740478673315825897515703251613815569083031424214640803877961292860389312611844919022692802059349503863661282800765436239740974708983521836700218012575999382247597936072685468282380359408377443499264179544397364209576767707106858307952488789918998340809374083685364686399654769997086479439047642260311829811245878636340130403070015270392979603739252579366880265018582961817762940062537424208507595864623749383859681714121637887763861921682078452427890090323759676680916811163188631536561931940275365489311835863526662717656475531571200451174618476110983736577265095897646856493442012144662240387263456136773835484701181497126119375250338627822037553839356458429606069752447743133105019358317430028363235460548559877849771014635723859003940014812502722748433301985152695420840827552049587041873429438992935050072231680094455333647808152047765009984167829249502804724259039152344717241505015714690025079880297265320777438190829205691678855207001965154691186244503606416446496516665861141004732028780906507002604213111964022791601680865898174730199019228153881374162479467643047247699642455671457295827989474557280562268903621009446482929350996917967864779164168387080858011369827067350813578600916976190373578690494098492865765163511265374309792046605979363675235203935217421090090790111896268502691168826755607993288989636531639591462984180750505417446803913098836089159985213493802479009758168869008037114880573614430797709100635821152619673469124565944402163302435225004125637652631557997543476151630172298209254061744811483012202937812564231722016162760541595463903158972948356217930696589300730103764605116030192988352021065753315715645753367560709952129845980350181423616905419507434064010483884678074931797818139762125180177496416946387724763631454814713908456006592122496653387694556371028862316796738635542810240410516670364923756090778115743108321774070954573978772839478152878659778684900294841153159815109200630678887003837715400121033335888487816721868633845078714058692473666045931043286599750535732202448191555003018645274702128323264124568022540411068736536484753662187845752973148422532026264735567279359400919732001144012626339424631270816998463518939051029457799515343027413662311432994208414971433941704653153897372918189235823042703936585499382164342910815811345416028455971129697038659550778772332494064466693719690272323196965465032398096607438339114283380738298392970181088777570721594638337395930020124895373432314289448521690146656576902466428467940784799635079343849240737554688852334787908109358464235077668659606145702495044281454371886304124697036590203146009316792969113767966943144045427897464251926233738799544987557458461862333448793356594196040071434417462545955548999856883489438920612216458860716902202723738957201512292100763265101054222078500115826690879225520158469535828759941634905498672657276120086529942760083501180000410695279504544704432680208819084006620919550243798724389157172393014877760372393540051166773615180113693161711706042872306430914509257150858072173712864782741165314323220978817364753445810738149471955065665750496200313850263609080849296535433766738926498204772356521969877544232715442158701318085187693004173631281962287798060101481189607421398864720572128089943028880622176622586902727191890079751677618331579934695662900653276864268841148146538901447248898153360868487724501823960811687372028059593516839694647163561189216321446701186926450493955795049353025551720258115450704347911136236689808531962512683400719506464666412147641066342421323264661350028625842164711386085278248538534632107402197172921931601064495189688940586249154665953033108554330289382050564802685312007651280859027989329916722149273911771053910181232198231356942047927105671170202921478725333864695490093865722470950654397082599182874994875920236465576813256179093120046445183903193413545501909567835195529921269211174551028750527175134333114595098071581356185705127512221031185475674036705866510082595105036387456174777583330355871767127337627213978683242537254698828283517590873475106353758408045082086400719132667163298985922742142049033509277939651860386056532031519523413997112037725811023340818316812343732655451491128810040122619171531223266052207587260435674596273893952911956781848052178398757408722200059483354834436064894396438898074358880890536202692571333504718453431180601304613557511602036499575055226195577835840836283250403215011070852039969525560377369309767981419638785256840563187397384844858722276318065524240882054458427718376763397722847843077062437271223295438996331923765587053840650137573040082383628247836829432536148414141182395431551766370721678811133957891006615052373273935574244465106442144305819910267269953046457520571308724304589814325792372220296304139297987256336786252375178513937256735458673337560211070919144950072939148328077079940686487047128007713791839700670763119375149987156548984786941811732282629226092993943878303090217811000342668280165069128983007058440193641436322346131489892423613423108697021173310421432279757313695190583534071012841976346957994081147167890426128704322608992526561773401154321331580338070208827351859005613719983112804579773468511726353006751181393271110793303604096382197470249354775505570561451238271682760274472466205214400857528839707414581841087999900883832884102416420535836538290736630903833621372310423974587199594484682531496004174450025228383517011133826667437676646798184852381079594870809939769773936903317162448415054572733910324080538553337764288684579265542152224370401135795565141087870937813282981138168357412807403903161524703262885827408148778988628275530613530897780481654751431810246061877715774668796894262611997370130870612652153728210417610277971361114432126548220475009162543149339055713664556963935938115347076903427958473383056141363916480004229828235663992822963082020175801272130156920439427464519759464881475394099190105329881296294465593780500096244565646993072018542725808683346303061108536229053801079835467515324516133805754006339324428030601053473394613529688388614479947850012789032202057743396987584853930131353613523012497318119901006338947828480308795803130032043833896096218766996264642630176865062613961071046492738136837225788634479875961397438079921516976000972254515208863101729759014011622684691118667549185956135409296237116874370957085797895380428961207630375835372496526979276293446483749796566028816773432999148641127599194712996518685984298593261350981873148029375826341405763505984947331930991160725702667546279628780976977211560269158312845730412686975721731507270525934857945613228803804580822852753819111344940885602360360193700513535609044520529618938247897951439862801497372178341931918553446865740624391763109134568003900562187098081105893014031878849846950212160114108212666111912473116187006796050229486221265970389095123545174386031358732188630461007718360755451150310348942692261448768488188224067147374527065459657805941075127253682021421460422084618898388116499254722302515198243551315623785200937883340501386255561026143786454185896174627359299224568100239155708426055608148928653341247594738316789543050647857126373406440838360926070839927321713828908139243657783437933165294984350880924127185740667465730494077442290237433744519900194830540301818626386245707552329032058902164521900912508144455051351520733993660096194012688763241464719113568130274411672372474898082854963880736709402060873127615354072278706242069892035617650126955175971668076412384773420880010530052475491973442660001564522566031060673609416535295239126021641170441160592285965241356733513960108592587643716942434304235185674995788580657733322476855749434171399549194434982091857487657319665222202890853428942113894658390267540140295016289866922842932707583174741374202579010620352513241865102246364496045127687913951876657081516208026093635941832481831595518645209829259735427219250645615485933688428309632384834405068700255578372459640555380080176848471573932068394793322266234572573075460809451846816363780889321620002296769715167389837457858685453210248918054007101650082928999987594405133234228113762498658839124796047477949985932781695313635830803588076144424477999491989278523033551481040868770857011228741450511221824919859166426321494381913511962775607282250799016226953035622851137120283319076858856782519593255749234090410607779045580286394980939020292059145629069597581813616375393204299393766211177501374230237404731640261911226030859891935793167957282751562387175693493412049729412537249699553875249796568604804810267206553884418858378353473716145693296832274613461888337886616316167172372615595981731909989318160836059485798471292294811539767273871292310009606156890223492999779330903253710095492873173914429340937404348329526846372399688213037938500461992980206781751489803394369097603914982373071009121172581763080793102874411435691642196494985707651791171753896224343468931742929502013601532497400122468180254497757649929828669354248252064102945553090242385813506770131717324340220465452684344609223403750685394769597909195402909674940652666175141702050244011551048258338633631240712062855251720910263527810340916833251076268024227851135565124731784011590743371829422343728869073070616774125318877198420999204020796963619772423655466940450630339172648779421110582953869463152979325675099094531526577461474264852248095802806129127399409923823655170362634057195340257908968268082653070011331745790272821272818738789554194777946807180354355304920338452703516108104290856923601068126781281082075068384896123185979519480889390806516183514270215370041362854945762854802928486398269761970274679977828176715222062839819482544227500878321534693265375768886072354454827948080885954059875381798688112689955371531305934535454047418374622234594432898703370147584398899868094843362804219838036235521709082361644640223124926611062319069118585591704989955929333495696077446467914726338919250541345736798467393146433480343759003466206251941426942293281252431350918467395846326180748741661864924308280731527535208541837216512345115083356640829266183872049917693550027518670519931581758650374359602088109174559121709200376502386498876972820451674857796089422464090548247294883380146098566447362481044480986284700436553402074980668194449940178709919719579132501690730077438473400773192500936638834552952545567306387422106922953867478633097874058211808100595772856422359156893620261568325686895702136918261651637073041417622394834905972391384524282272284644894110353346208056188840192299176326745639463079218506447003746469426984013175083802321814521106776861905724592344086314351209853439714740540929302611305737827305716933939594272896952035458391424109078371619376680970348173591910697347244566674078244612875026581766686562889341016957158341600412189902107870071589390652114722877611279603398496770271076800117461666551757288552332809869570714936788626722448485179031347121553107831419830938054269468772189709661045480851255965488679052018673532389377339752685694761621020692990689694393575351159840374405964952659144306348636745103750784148067025612315336812032315632570218371188065070173182402300093974918390173567742395569501444580387387974306692545151057498051752833438273814933577753314484002713165915085012711149353960457871821741831654874449659215406420483669931996564322720760655346552572058034300226125504786810232964833663802099518868160083872998958973782089711070083257168530583835341159946077240781879858478675458024696708644468798825447007916561909523739042773089361903516170220903890578394289802170908745504449436056202489757205420585044570445118978878021061899166975369630548346157266136714337530812516528718486831674424674029001741136710792591556114554233136202226312428486203310665244398994076075389660662105759101036168434009709887619440232174259505053668152922955854860372129718559507832794644025691861896895291134433337512385647478053606429476612049926758695844875428234887577519757988965432510827514447289932116984680179988526950026662293378045144931662077444028325561185015594522468848363423365822181774427061767083761481993806240022770129124167808414455480314544346265794169719780470804383320105163262096802402358694128511502109137089666246544943076026056192703614189531604383972316648714911150817281897448424404562335007449485991792786552349753625740515062298357277475187850132640591560334551970545228523877728285089039300808883826191487244163879059077691125234476401618699874720274971927021168710173966605239698041598758593527533136488054629035264075352818537800808958614512510991246831276032205359357755288939249748536760539579838545054536103638708348920262901183764591955859459655625186408533672757233993877104574301144768611962870402470426599122028654975936875368104982483012466416543529869317307302481157476636430126999205781654806123480379668400040346800245444352448493863282938060023199692684964244301547355111633967026159293516694688843831955556900646328726273295700185999389439622319174837020131975938301675781329877366970622450660670974404818514638726508757571081929525146858848164769715530104005098832122586711657482655236900728723305449519252319544982979955927464524261372890071412711082964838528413139583541429034997668390098664229467994225235000415169415182577885789768207422672355108165453705998915931139445547146957577545864360301464313733990174002409454387795370851211928432548883903650029810041772168954730545655899335978191082425705729773125934082514201976470702885567609981390865989529502281223479508235764166003364319630350662942665383498390802124684487557410688338407850650941995292612108785424467905364251299036264021644584468005648301769184418506193355410594198846055560356611071697420111667445005570362593206230527821092536114357427599353186567154523669397930122926573705211209196218059423865943387702927559569451685974255164068227668485980252007916681609489714536388054217523494511408987374574097856607117498808764795875257095782063142679199142675642592973600812359077597316426906507926440499692341631017505587954497957698502490713619273419493434041790063487204451545619831400113116635871126618954275094910063502722230126117215266913018543813029860051873781699937929785992665729002719273907844997645568586527004710605162137169319054534989369661269646623292804167108335037658451544008465109824957571729281308817761023978117273726300185139399581558545342375360612655281844438966331794410207153652534531102235957517789145453438124413362568056002833547490476951279140586528544233054442465696244671146719717812408968532437484902142330173403349560479046324983798518412160762265715563147133196447820054655798406674416974281119577254584555097338368028402224037983677751963027522925710034460593873151958427448117200725047228956264583219144356267510244784433450242728902841494878228408924802371868655553486229351387151246814073522368643880804906287621309319694149717352369896204158348115021395896518516544282339232029797752342230270319320243307458567715197567207808047311700441489363832862391563865315955672080578564775166410016978810053975629918664745477037454658227968279881554256872968518656573450139125935513379294463431026299808947882864681856185668190037766760313595588659731397347546265409089022139745446772703053237087453284718004918920133425225907486418895435332868335172639791501733943745406104716035908808325309981709496452826004455334994928309812982036714763060460040216514184762618322273170759458554073514191699110029314771587461999788497423770724247287351589943114090814885814676374002544497278069658082964481921570344364854362521782087011607963768232631816271358874514287709485460416950676797443508652133346838963976619154920493747236314320252583610767050067206701621816316185751524391584197869142681395661132733506549644526294157491443158293972822290559121438935762725615638563125950332835173608634194903587636134519502586789407099490189083022307150669370864697396816041637994054786003083478926006097999165140886049692119554583958958637834246970484133245729049992743237761043260703674173175974506474638073723590861407529845900294249232343499458971827672858084615805158829482677854224736960112814243576093438739748318494745264913978579226943456987972394932363451466813354388380913413088574833853629987020105081264038088510779970771065782039750763265829134410980530765193428884500087501860038126643856164150626255588333710079675529618274509035177762483184353603723013655891603139444868605297359449794807662036304185322645446088656053483042643204643959235012742809476157096587534088563494183868677796281435178413929544972118902798750984517382308648773839535469399873312527717053377711160528639979079500175258473740252986773287004606286850829682369371709067074602480438747978529287959566431070637592698265341022173476177633519172611134688782950757671940449280193244646440091187111192312496070774851721362075259141346125378250502483672411607361593746470292952182062972751811308332327419067031588948780771541623166225244387287953724830694356329164841942385561706465461756033606129782073663896290353662570884990427498389616616959805498958908946872032798904679703766992121174368865055492886614632172318472333801532554522120964206749014154157034136798347212297958609640963747663964689449315114286471306453455741499331068443037243544545735465132796628272443286403132226356534793267923794636259537592188474471366089550144452436147150002134346380126187733789019614971358875272245974854769186883725947520617024596361002000366231976250044986529538699213321126270433872507732212884081810078573565270546807659741368043921087418007556744477357977234443032091958897502813523848056768863086039943809168029774859845583441517533581434470386845276342925156469175716085699073436137096921057296721236804965059967768145907766680449839936326900124329283834621444989223816685898997413857437257718197644758254433493521443302353619664865523206910230702884693596387442042293478792371416856615490082137654611197524791909655220527839066017282937604314295545956328843680712778484739318198735408486865159335263258565870094960879212710442720509109157405382864456025492720501895537494557368862184452845232078253242326970827147372334981395360942761177858550245967971969691114650076719243557998613833882954746412194913250157245145683450167707077207565107876010485741592937630085378449048766528011369027521316459815304526235209905881110685833189160377139555101926007839669696920660229768127196314860463278231658647387428884554028133192579272936743912206148092245542141350905444198319515981383803012545953617062169596728186962396493678079485027091731504502407871119282952526961991744775168778817770799470827971367784325326389497583873941940686414008110684862078936215844357493926574304736256770997524547828948663365973016526777784156015053042590421682111448202269474346703766365311257824300858390562196947317491588037043587253940746918447017721038541694163124974400207079504815785295050666957682037464489312425431352777457636877873717838891792564585527465368759599683187404991827086184087976291817932296525020235404239721932005664836708525689855372276651930047574829881412723985746384464827685691379532824614629899583748493422527329415756541358223949499044069830518268637661904006519144122030208090507225790905352021519463583010745669974524352362296439204082999352794742655843168361334092308334747998034843543883259805887275456569688957334272470075396329830124095528585929716530953048620976012954503192236412051404022000075075943868354850755676571729924986084904002187993438987772294305219103856357151466080626599439562608321999821218702700554561833255060449219410804950999263187881541335721139785005255813098894855101472516195098178358850694542479189017176190362529040505391916410532169999524973828926155322708953673250862297853678849735176791823370165777061706785020736221920168225673125282141521360060424781853296109070548998352707105286393535950541672024551630262970705811561673268587926608902178647069347010404907929996565118963987940373866495633369435358601417048427302697016273454516473273235890884803408892163338600735593364099790219620495189868190139025882828076816740406520449030985538111273988232655798244650044958405295619115467572762008397881284243248852418533030704414153143927274671312299785800272852196917540533207400714989884115530709206127753263481621605018745177079201096207412319821207330046568142697897099784176755783145375259582290331068631583395462570950233699580317879869684384865640299658463410696514259023523530917152272170959716992916107250870572726444149423995602421621858417866434070066546134764242070642300505959156422563746531935514837022581010511866665570310657199051065301892909572228700451702054571273048420237406708110335419845633040917215540650724750181283533480846352953865928949435288261542335610302831348135974642694760088965530897627371385332341123254404650105206071055825223783440651314663434563301542686852637108534561949440823988724588555262708516060467579930597133575680078483354995594376411256540571831755124771898454624981042430388806379489368232169982987676865422064305296783380975239902110336846667678549342265132503301286315615478849958054501481905465195145826271818413461226237794872468974718377548198960327581311679447589793003810057181446972170227430633075773817397460900849044212051615220331389946791646559836248468600697569551024983481948069650543399962001786391643988052836012756605554685031724786560432350593513195841170382278766762397032638260460199054318837558111032671150555232336891878013824352652518045679774321254498845076691612050905538253110126066282532964257829465568085132407830557273759651650390823078511331181488483844966951827427458309284320498547684894183005523207273247163798855518489568776464198459878932554619617626686463409009830270353492458295879129840756269604795591453797985452477076065677594151457864602388419418501375030465297858495100733578618596198630543266510709779751987200861808336285520564115506882625808141114771041323055383597437648973591580933872308235933505014930679783775325072854996587728338503936438418284766228548341980780822698220516898051300615441747082276882761943727842522158586031188481204863555945124594830638393509697258745035926709329317870925853366654211616192677956255429605106265239264090385900797931651138596834905245307074642048344918211271815979978559709433728078698612928548622857488989480372029139716304290138621146318620466979243782962051271785614295117753637293925381555698985303738543060611730732356556843511025920717018907948008018477285990590797311669830819573381473439727397264771855981914523922144784493179517426558683945613154041069703748882589757434346623939542850204844828447891713005699628433281082934754894307815000426072836620483274535323587639673005963478821898065846247397297636825678867881297876764270999988033288241814555587178250769594645279723428160745062317523089215132324318254289873518954811472153222619391985481794801500140125867769328824048340288281468393095756587145681126318246114317403151471099792445481230648193787689949270798416680716299636261108820118990556471737676497300232770613667394134794432944918557856111537557654400488574526687746867579195660609173309935063569767948009730262023961487317814615506878907848263004919655249998207036148618504097323813632959860469848917844161940436760719213039940754370952849957282148844971419781064954837541503702856455618290688915518036557036176499562327500080781997198115675472058809252418771298238802376298754722100330690236452988723915076015268176592470357700277738655003842716057627577148895895050481091985182668964704755878745877036803022616301916281981935967215881531427842222917428222688526418643086163329119899466570587467225509060053529670429026566334985982447648027525791563793438521182685908388789791282392411085012212066919275469143657019300603514610979358975186682474717114535603849923894271043894097522151260695796041128759533758175605232383348514765980974691402584782180820404054467803652511745847477143688134431156184585031487572551715839056081538002250706391724584030777442895509643093964736849513500608958636199967948070619083539266415906902445744643253222674752225629313542982577885631268423105211943394900842124723349194774371668045833023797972910197556995056518822408084467797211101340945522123655138722613569198750621761829934095453612722822461870613822245380076093379020906320009841918711769461064815585910966512399525195244475855438883101743215892611517330971602329515856699425403177176937316126683227630797108127868882837249836450544813608479739141486611255168132167780545035445749250429324972978959498753828019802895515902901543367128311831324782835227196500485796330073101507149642542362499307242405451479883246433289734131670631006999919164225209364660648223416024052093869150384695325821259629584033798087068068429720656634045163119911641297176649129632824751149916037640319237416837814190335049638195223660476687657110343958313471378860702435459645436986870921649682575371653041507071238844167036750028490310122304890912905353374101737917524093638024495538326867929504456237380977023637655366811611054822156097040923427344705895874078095684581115481470534868016517298437927861833885103975907482479851075886798091283201768761845676474461035248124033717891297644788142016661066941176292021054912358454034013284346868873149380034308348285756778928930872733930924964035908024185609331071839722186145490437677044118880735291230351983543938345614661641518474247502134215586775153731115752584874883713285641258076527015730537831457948717690321796298810706069626338416185792547434805092157295257757350361480203114597228878302404151070341544618517769404100640368166098604139312354077010682034722127789753525142711765182204170391413759473092877446910084342722641581137972717232987411583461498851203985522469533200024035972062413155455361662287551352554414795847591082293161986624608557821175892342720034468732198863728945630871208171678509822192997498798922947652425920128443598653089811768065525398061997482709477136694742696920877288435400715979045190567908887146275019953460676237339229798384897598728916949487144816684553026198545322738688285825855462453341420620122479301840189850039365790930543341738199799802057749494586879975458318471428939414769713763792577807471531803623443142941764066848038237806570602389907919477557546855521699863592863093179683737598346614032685158895097790508596587450022203646803102249442684237939350077130377925322300271957137306737106931989335666829894942702725436559215393196303592794424356590625654666843110079788102988678690952171727850813741813292155636331147924543601770896005562668263825688753022239432458048121445474016034108439461370824738189291788635360009626106365419236408680005595185998094551253422636394284316085779370163470459951352096691064082006100399781598377328990519131716433245985560903397580329242270463060301347135393899990351084446994995876505660610021822328233519120828835019753126053990734186874496876133225837825973575512621075774851582216248249661609815250847262692168305353120394666566882218844169198027219645039990647866875275609113124163246401828524339060261883485724896760305714206942605397935184657563626828823305528505291995938458833977334544509417533314684558146855149706298163919702713062123241761382629241648034341987107765598005405854117135496335586913134276392635048473505127255068384686479873190810866375498419260042240073123219622423778172897804939610323034090378152979390961822808214021215380640660050579603035529864503842722427357553452571252024936387466447958620989639189415314852576048475370159344304743771565652768376584836610319938041800321440170061826207034116602424018440481610324528024780022199074984537567640939440566769066476470071744400659737831597305349330456745525516364755774463614878521877007234201066234396558550386346767591208022851229364580307960824240160404452265269692195207224820565510491731335091561451453341544142967137235338688000015811567057982560096861094623191183703847799393980481882839603496281300731020336518111753954050196956512659530607667112198318830434154776566234242410530723663852624310205491404402470814223811207132262451743116534766248197105234415562826023101701433344267705405739430574347802253537838390096628181235915802194980792445624180883623614462950486776506404403062342455214964704496326084440047096382454474756640105406389699491211578380957538779046184380106841286419832357115940506162713765496367876155350819993405943370978870819970416989763388860995227319056935000862124548754326819167147970647350805684612988948770217688902532177159205151438774583598066244792808917653177278097739358570452251242677111467844001130016113128441029056304838544408685329096465751676671663216368522077424260554755770147824482066584110334398074311869615188761931034822097711339596169238316439555227150130522194125837854094336440082612255470960119945510475702944142393019633749829359500898497424955180414487532030277332445114032750155472281429806645045036885561026008118620258101335231558498601184138206734085467804229699906551009133758829173101640773852709944547060426991518899922342225568642678264981837596594868268128046262833717959909837272289006490509166905537001219883159632808864806567482659314994794118736832645212816999099314070955617538041654840757704362088690216113501797011932122822479136875011932681793449114486852353636293210117035678212387430024715221733551333459274669998128234638652085672324943775412937838521351848201903618024002347116475753100585708827236924793459517512481459822539289892228239706210290464095955469971961232712752575979003798216831031986332028086502238990500832665991507166788721334669737265675312201825942832614063532213306770705395207403168495000636669197815630886174643416757900060852705989949366415568976729203128693738484082940632231183998935640796382108675590689489150830692792707277988239527175823749743291983527664063028696557022933553845648248838318559333609846073748085144551760040894808299071564288875199606396283414875022583299211396940372039691274667364293114915205629353771511703368726279844901609602611264788797260215287246584869342482861841423839357947318963228112411741092564127246857591405761538209968588327878654775526999663804844811769070735003525392348982255933676332873673292812734802662436792759691669833830032199736599395431976693809668513215860420340795678170903751784357039295778574776194904512913086451859721726019952890378034547137536136847329707958988307170933900523455267603189895851130808418123244418502624448059942295144195651580218743592154512560040962474938532148468976379712016579318701268831446406777684192094503614542015231336821946616572935846925448492798690883433473638554272600580064359474402334148323968379109912233236109245739562595594430702882024913880463197782893249844569582689602509015158529224952001136229679102731712881282706566306417755134294382817385694432316607966671876704710108261434463496003734896670412819877658124736550667840592875556802874265845761208283011601282194829673198963995478180829628531704237571692454504677514563114455963115437203626739538555685857020849819012411134839072614765918589031477961735945895350005508992912553279219382668996112998645685731735922773180207247694184728950825342238151252933594414364440539534228774523088404372690666520310058424194801244933107261314818313735153669591126626952621266982828673070818439315286926705066336588715507277123590645890802628738425005506342421945590774414106995196763721800929382701798603158634427312465707905957128832268637318575597180514248847428534859493478583718947429097759788496721862485890095702165330878376416533002097734333663542534715193059030457585485691833603167387863816208826858871585619010677953932422443992211742077909945372661927372391319070636031682232459923175926005579080635805120508730463899341395376936974127823586295153314086208501733515933421720085382598746650470769238303418182319081585703974803247255119682057614802793688702121023165566521395637671834758796264985368574029939193581602000380202330445078181518025980818929070070739984451334497123466708977012520851780676757679353950907510450339826952112423950426528137861259601196339168745255058029311287964056799544591027925142011101667479981250423155383503916095004717618137952414715577740782578721431703189464735389068261343061476157464127014897346123667566410585727392164408803529259062273116976554054651467082940580000157020448417603367971654790897714812580220963037959306445153711975476119691437157977134530494297097675379038857798111930325867548328626077114730668986553784195676708560264393881504969744981043397036019390021603972052794869709898888089289114010636116287644681130305646176745052423147351420117713871720117794073668915483980960376322373288370892193539366130088692296629250075312232438472535413160817214680917917230157691012632069833748625511324666416441085154034879029751532576008605948192419350662211565016604772945017423413864530162391496080532363717281058846271984820138675947666161426695568685727066610986024392718400668792332813336478417963289882380401978442253283943535136220169281532991475059081399778015488194499385220298610396966379808119100210993401233532358036792607858226084020059843910589485935181645416462527117117005248161033969309821183653913281719054053908236870481577311089756760460699841360243914776275977894003459417533173708517149144063520746836374629490394186833867413674049507294322644489122861449621705352384416004671544765856319872604623001819772934961137536598791033466978834777250249978451348280718003178609728078249437043797555168550600486661236347227621670610549502908485180108925456199017408000646341401569349060032704724203345866010830459391609646313817659335450077616754483917253100160309743515325837258428205235211470386092308331818550669103979786794514970514019018011673496518306586266335490632528970524488009880582464142739009298375506072257665127192525121351881119508522708633939048732559961235791191469582973023092731461633913712203063551250920378811493794225026616779510016598843744163991045094614857980840447107277638331452561092754984099380679651950883248430462773781532744397714698314229491824767620716138736424222042611499073204983445813861387299526651595784377654505459137814419736588148956522141164371161221845554369749072969008786926929980488478452660455255726488480222272146955135445231637617715611275318354144545945446371849919024458993582883200101033533572677951623656402373869752513706108898283129106572659702199379105465762609908071085627137933287574764816423035989478286592247789587917880019199498908912469686684758380612269098122885106699136452876732895649112595047652733608282571090753098147614919216562133367313476113612454801629533954146119691371278542190590363517310739210366367494307198090103191548552678304724010753348710628404482597388902420386465227500358565891762084493852149876670862390976238400577863439432233092671757673682164588404611095532322851319824457124701028615751236449400188582160189439900321965549662018855181657702947551310581334054687195256650938979124380388164670936042462301539291535972736078440062523649846141534308864179510097157339809408290780253094322678842467922363245410092521681356027943499496876957940322086551964125366363422637763415246721158901519594416438182305738032857679302525860487362691779802901664204220094004391430509414035470200389562779147169539171443736257710430271593311935217841561926812376981028461702471266449096680941973929259839950380543796878770925669080200240478821321128609359426519438694144792972418653625126551447294734960782041816798477043614400673251384356425051749479455569564098952451706958926710285781048684009597492776985550279781840432056540116872578430210467085198391365885184535452791643624818289230951995814326018620682720811799387859765903944950719780091722846586623349606898440956673480871714329085763450046279152522899560598082301191560515513931375579584805510551051031707186148900176861893024944784602533645589484350491859528307724333914894721266045729626788760984993181397532046328773154955784337203010508507596389430423908191339193029212625249097999561613979082002506305496862285388738691583957365809174592994350160980784933283595429361260222964652750819945076198413763141030407819896040415045293168792048548036244285800584553751735623626905274469171374217291315561677090186177520397357869356283574315703724686440527287257996021763138981258455700951285282748574462339212319291515623191293449677195918831479586398106226218496185979483994928274246183844032442430538939018969536429393368542340274352899995098255192236675917384810941748493516954650680376576025360601372291826475462680083840365957742441182361851670748449080085902647752733679747445230994654140975194117211230901196656144294800444089988641453468905220077042525217441570978049184877901320154021867607283631942011632262982936110729273181002552223034709261295877010249228942388594956969414547527356826720216109104471910373032000154016668174121196144677995454351091923352508453362949292584644081766686011138027441014074975509329006852703670865106882357415156038817753319804760773105794931650566434655903247242787990587960992277105976125415341779969147762894038923412095279506240295038040247713127660550573993297944102723449362667299431847042008168469422357484160453983017966521808126523302442667508961124256446496883954320530976369516418519107118100758885534423925183678232576906306540911673042118372839478473484675322249180745838879264086735242057853204912947312762492648509255741876878253081292847035746949692670265777779095469292924921121718742841628057201078146121110510898502797689007160036480045279797212465991636817962989593131055769301450092191156165925897039600168146859454861020241257361236087339811313189788428650506754779262784778683117275461520124425227142933934466214666499500542190099404468893795854311291775677346441804193159262611312336026481530902275071561250387680376686930664566780872576124685337776979451521727668875704896017978476668776248932332835157804043910696050166378483627095991371956451225725815094576363491154464883920142992901239636560575440849376907659018891579667264203119697742088111910636745359694170895193820007707566919785912089352257903119189738970374923126449576893610090969241397006239561787251661751122829522025151095816264892425976272863595032214096256841601305127649573274965125052733353139596892561699602493060141312972316336106342358417817886739546972974369351276568257902898516175159613810101047703331049375234220048438868250680083971279229062032439874278354621708151395717164989837465624444727718486638133874501203071856327217819956770212006951776507247442618512264319287369894909100682849459611868666646576022863175327233251649049088116399558088034415074756061407788933965023688452146016304341181506378059047259695900861702484973789729525026051461747070607651583824945310619966271660459745861150099788736368267328480316903535835427339533191240732939476947343203219296676041891217658499070489839368810771520278281816273619627242952501880928851122699268910531289291945641491334036154376821422984942252195868918665404760520413214606066537522228909323865259378681399449702206612314910302436654532895482462393768964939779094760871825049128180726007439617135819203151763184643927532497206182385072693662240814986045025273562670476277082619129801587322566457749484244064414919100400548848569488940105695504906587703148896175218538810098177658383840387361772709440777703408125455708934054840930357071119515535609315242458824290155805997072704794058060085332599270184423049898591231073945909952004665963442321582982563063442873398510736197197080507329558600982658584237143914918501300767446214208747025225555456970996278242673306076646166133075695395975362805713629895709499590249117910281257408981883602680836481368535260805197438978597890050438120890146514322468231384490583490711579030902849387169497424337295246147345518663416408922059199300865457531449091707741954951213909389007330933245587262527094354627130192485249164753202783921436408893018554181134415383012550780598861748802036276420364134517940496096753960615019023029419890489784994429023443171778128105702256505192545577796902129439791392203225948709061502605686245934031545771988635963250609726111340076909063649724236855905050986429623741414149026559209619102151467518960929507914159918142957964028439108413552113354347395541128019459871866670741784587712617128670722816901937570348796232203497063470331515770422781106872140021291354745843832620107584430925141098318550132544939510170603614194504323174018264072551546065674676924934224615503414906186569799996136470342982641801630557000045431160100911698894317972694105694775780924956081007594801986479597735703155641373719530564232159861371728611034076298126141721472992413112706811726752407318659853730526738783853379047959789722027136334587804695279597509452761416983072988125851801403962565347269625676219470573871316146407006675395082838544233808135284893112272748321377549249497521563070164068021362013987801732122923274276616709431969963656079652091926833237669221267151553021854225162887439352577886655069763775181210752763637655521333521814768900472605690640541761800028885750562038674994327791600255129051404150009615090025682263649264725641632768643315797908643558843523033227614696789873749765206202162437398923174607001142183907141614128471748477358987623330561211999313675918733889513913894367800775551599793271920140835638742278662131596565010471159777119234742235656677903955176644314556456244301222087641718300939543541985219501173763329161873004927016861336748520741139337372564315531412497865814870208818236731125827357297732492391223181554045856667408436519342583347508735850606857965374786418125978632561864674609413187346000315283116839262234725677109149820023138232191205766735576727082943803998736678144700461434963847404570572387872314762155109741629370093340527063111607138091678017681951499957890660533899558230760708926236246412916728108531888493377849638628143021612627478299334092403630637726689896996401119207404163916576411735484222100414791925178186107360767278451124192167311553681336162437701159285287588623174943195593713982392729055506906873490312383244170258711527964506396420017472266680324425972135038077511178396806721469639331636148314520587152274644133906127183197253488647908974757494247416729191171005869398003328945405592131499282932049314905394489529863723530194405271264701529674031415828874996256741352070654941589344358438782654603219414190531177837550192393208073408740505940011347069246853627305528045141670125643084764352099240378393969334551675753777207349310318797758068187903528080383908805244823148219734220269893793922960509329042239531587939021730757864465393894241058762046772929077332889692330436888746626524639207812692112369841616363118863223187744028346607912667433574009759211568578874503506598955287115817422161648206989217366378429666217666171967529047899612838796721831882424629529694629475827015149254480107932281026044221534215477501280515206233873750225796959913580038790979730080847956594595656759917747970971867104151799102838052917508685744128154610689623670019239569198161947549223324083666250652381567773112129829541222779355971585529171711008505353591687189555512102679581718417270788978198690659108587505847936537172873166584320110847757218414164918068210897271017747941399887529447988117527610867444168695575982782440699847821936384230838058360512685521427280797148548880029719027094356350241178883610643895110875866056244363738155187404000125246587479650016619442699965678736268878016573765849676020683636539447198807059026804902703509232167550128392370312144324128445154208414612635636676859626804873161552956398642659728211942337793808127214022450390920966547179768017673254013728715708896583222023237213945853399048390265981467861929480094335724881882972584830352124829525848071241534473366019057813626859360806275667090499153557184303845213560481711673629500979872758047842342722717079794692488626487099942610805963184204393318688305415151110691438682494790566723914085526620630632002543427003195954291370331684731879543098505701610323106656872841382576276562065735004769113414212608840643904361760630619896329198042031606565470621682625459393823073838114463609092809591465740892492923406858869590002513244623064230742903994362827084182390984639968945189527469558220446114246558574347915768429859971291709769571961229705070712025692763982827535172763167219427103428992929851276354880473539597765451446501929059521397264690740502844790786484016000944615230796125367002731053949844446205112426553160076503959541865608797454325567401491127449745100955342214503920219356612127117642335830224487534137939163199938880016698188484074002501366755523694969504405353316580612850194919522524412011696526697589477375845801084848769413587973462820261765035127326393977502853582011655276675961576492239633179553825447266040016659751537226567958842300995171051760021121857871235287876491569009548882616481451687031511963861483924430512185735613701184787297385202531395286525461613357538661435937586231852455016965209334106653633035806180026824274886544094010110468715000074961672942866152610687179802858752904209609370964484892908670740350997302479908888578317959016358036281358000044272073392621292306606378717450756090903249251143707167657798954225810646574147090466281820418269462349937239757388455027089933359319931054780673165649237594028496790849541110225357251494576654974694028666900735899200147580440191718953832507615941744539357761400629082927550575545047499316112109692705102640218881936542015620233532282777441315524574625936341374620439765059707090551027394803808503285175523451442765147154573113765697907402937889626890133472118319351254166325793136745345658320983716005993305909228791237268391573950474455168426374354971275908889003069594320578170718363095207443737101619627556411913596501619378763309516520242878474116000798253823988302999845288555277300933996803898390048135573092712359371274983907266315405571106102988666695494787268048904513055117283176539635371221922755499693765891507830625323078230685571234070012629469972014359269522053002953939601933626701813713048163415005964839289246700501919501098304962139223220359891594412091517662854978339462375501598565809901207059844772392042235021186698091305224664423276556343693710695527172753747330881198037083873062811882051550887387004672405544322298639408329072581170801356376251175039290104723901369070927974639069166934930785574396938697634713336348903096499222168785280445763040742718542946726799202337128346363323359605715628258154710544543770170412507649863001913039965962765220873927674571286924111308561736749453102711129866494032600445650877267429104188646963557022695458372011243811222706454462857896002269652646541465381748866870341291880215260151860518765180739637503836641953026509680442855480176171137770972958864570185597591452935426289630442297255270370485331874317884107511915421719240311256686895559890444878734259108777458174560153935008070879810102751451622431790539329001713623348513497184210184930137116704050731115479589270022944179650041322581091160860737331565919896882492510486852166511977121589867924268803553071626732523234595966165055636586421287728076710545790524353348353410092498748446689915959122611667154516151519609382185968247013899985689341706614912529873700569325969064820045048055270274049790174183982521717203948760500788817829386553157370750464865433090103538472706031748186661280596054459793898287025476750088057810657359620987486240885914631583164277278875478524910132140292953447407560801312481581881291822223620286579440402598197710278861028274760455035350513583730066743331783880076645048618602755289084250347657788475308389931551064287355627277297737554549492275100090404454252399237879695565783763993810116012739739017757593116128625045401847306651472248400260131154309367096382213424500696919941723540416095033667914432285068249046966957024303097106594154429942746012517591243155544919391031698223492761738215218796391023541356840665347914857451746894922183480167480615485683447923046511921744297873048878321484225331114130499972167964674848016237968793237185625306854558889838279078795914664543150904774483494460921442408470715491368293571156622093821458601901530601996856607204000988362809805284450435137513624155076232757080439679123941295568122434943005632942719473176159087722914952085554117621045320453898830334106475258179066966087507133646814653810338538100552931951013206832225430985122225533920468579616346669204903776432246084360455501409428004662190018736530153662178524533052200624044895712668027673462009540202962173331434322323522178168604979380516548452873642273882741796417926670939923723595449131594911639650613276193714684414829105594131997167327313939286354200351072396894930064575479359374227204443027214529881337643100270519956586669205671895057075490711851794589878869546832526596104231163945272925921957033722771910150327735992638454459828535946756622910670872179041699447754894111059105594683389055851104910836593950450211646634653612716812092820915327501551769143288979607442251065075746068525136814240012669383453402700032228663811699493871231755825378636420221896929546170342473291763494864381768437497002987462225491559270337704023838398696902540951479760074919204899130132930573298185639958033660900916130236481244894506084665233210194079245963485290806909916193692010832382748952262784825357708560400250286440674783192492101170075707732448370330952432810528783116452865948276453745541305004813528626320976355815644779963156581965488760675385957379173412113491173337634036955346702104472999633794966220702397591852098330859760496058410071042804662617137850566252165480636211433082798113351475003262208684149849494283824551946208957338322496728560093599240501565476773700120572734002063867082219697811998743252935658086122214703450776728972162800516281092173897384515789245658805666630791856572831320227171855876885535110807911382378856681534887549376256396533973896889821995265236581148310638765992997286244913973467158391231681222228568568958418811882948622546037280056785625519392911075727398677627275070008468770994557674188777848332786433628621722544077505166303593068846328616110034505055335223192937275559731256362355474575998847997476612313316331149396587659683642227296431579864742493918535952016157775432815776720624156814229661996037600755648626520155977251232010261193630777337681503864322492695584297554368390942357255510615160204900462739205784594534100859233409259194341361058064032537722852665648226244002822143955832473355916099297758788031340322899256148231720028142823326889453030393513423652450616715676167928661932287760828946327187267181439725154837509762067493635806508032214850700781296100379134488658508175619633412231435230863192628176317347602708451240777621616001119021500380932252988077462869728573307123688195291099401715863160268950672050292159914909550134084606582892088086732286325655105964891264168576024031108678549549590857720440408580717546482439751294356244851872117919744067208388330798589998222656752201912933694645280766631151629552832321056297194052893997168844696915068368637998542197484215630818476024572416329035375464229267207972448023115478030339658219049847543554946012494150976237500478821634914768755502938475305386582262023020680386394711814210784256382513841253126606698814749630662972078663676821791048331268739622990054563075803891436431934294398127670709692894454450203740936473480112056803599007497894260556750884738305287275070471926159028782884363785959487757711648022830235357577109964067429639962066317549506299625842691034652976605150227923976791100537308486598435591134079454496296523482222743595058382318455468873527541593956784115866827017382431164671835153110338019085961535585255324297833511780314566772873586046040276356412432864623520546395947687104543800455738915415025532119263467318077944590760391291950230712053611265747535815002241342954460537581949414202262286321647217580048706466457084502795486696194101206988644940042138232693361417129837052804201725179335001797873604838903926846281776531222750318938089272575719488056712640217981285230419762680258725667377311419704707980428210737913348923448694247353092430622597168806707911488855289042294897008665743637443086889645629181819103383418708974651607908295212034132726456394491005737147942383701664984309610071305781603347770790498318109047077245485683010571801351329726694899639662208623622552485755300443871527532402151264589909672241166278437591121904526171612259334301061620127827813676356555317771187997305964092102044652571372920935001735066491498936228520494926061986885264629998001399384274731884990810086796425737941454502311296388324058587566556156583421888586949978707063662316761605673529200129948611852436913285238144895479215188056432475028767728141141280865185508993656736136270216432501860374082884405512187543527851717945150152614260341419533471522019077590770074220918916923312910367536662035399183664091255838885012576648144281950858584517584590385031251906477901658292850941249589107710873821453954707607119491665968450974044982579738818958598966348032550345708346422117304705244764962115872997801631923674360251135215943881892599314819205903439851322652830425751927700034810297655488636607355185992809825959983847243185155571012978189481991303815280587968839869461262211048603057009010047985114567686793361554363412913364277968137506030286785472514069993574710174862313700960320641427327090994846360763516606468857901103170390945789649809027515614798141596553210622572689390458309207730119966883179110337471482200790401444863140032472515972551469793174239023244461447001788776666176540821125744120428378126661460106838084368339565357964506089753928122927803699961706475845265716378971540880628862319298184442196581536374098361558164991361700415807382983679988004244815304255805871449823441220444479385678497328010820749617660736774463605082228894133736218475598914493665483048210252672063561606646187150452712932480420284155009533784042241945488596123496865794767656632820425882755836631758270911449227900570523554041141047042798453962001876902512969438415292070891187843970545383387749806228578268571509049510488650098513370544519584742761039508120701437665183027057194046219246990766608141779476586187691874996329800591411560539348504768340296478089738827140321233307441948947100415800399091071375504998857157030622362145882619010142101923295910591341877404145899191823154368935682311961693598152194102792953536814048272951239004296616098629972722715128309556013914057491733925002761189504931554281287848690096152851042123161097780851688876591292309698463100222663344612101706304549169478675817634574626245520897626462203435711473588242110785208762594533710872328475772954950735703736938716027342939079892040599088740408494967466506390781639196365965038682390270199400845732013568889039977159293535869779167953545573779634591178017563326716175846600308017133532617016545927370034083237992489821865851032661956901635065748836327937378765485265273084745359755159763645547785437200825335350474391745823665567869761360632530751737454814326662352239548405464345765579121931646776082831915140819303579654576236365639080721636299322095661532104953250570374442918234002261343661613136253887332878881149182884242316592234544614756299009727624332156233006183941022286240089220251656450482284706887119984754694865729812720172416240213509721578288372313205447191890632683811528212728316592847018756987202264760430312945004788661158583643173205009082159087820421744811932574080179228429566005712411142010865749944198539312652958128838167454885535846911514059704498637353037042612127602342111748748636173787868458158253773502934345850348870580802471542121307264350053062082143421676950120165324839782628322624816589515761996160482614275377903989201722821135809949913418110178049901553000125155398599226017686328096750309746668519237921579240094091336293150124808150983121202614802077893561692675128815217130353589553275863849413959631785839949251916418288294746683961433148765780192914948302651242957516076364998097700086450300957260750052493400219298430859600642646336082011453093649652865394061681738819026199057256374561948128069502005376471932537015572823156563466619551173690657401252809161147424250614396603623503650191775171741617957506237361065274460584609431231846034814663208115069596552490093563848422215689683771747012343774054298000106909329589254971448547420721386541424944965632463804153136181413097728148243383423371528044553230125992335302646577760313421887783237889171715510564610160886703553777777518784357564014643224208334900631735670556961848370030457340632828616190133353366284831204725708316599129046303111939892562144387906176729464812316080162705374755689004019673019829960520984176113953963344846191548877008825359342534327877724567864218079281097172870713666045710752600021392205533674353932829713567735323946759268583412986665297826304298917650763866444474129188382246214520050291662075250041110045905424806139555212900373658339658186661984523188031843362108820558160411515785671059348769136621860588822951421603078850373878619116029254685770616936692745519932347870973926875057573518254287295504810545138910367767956557672566458784628874898501356233455761276057177676743602690794859711345849119331428579220757764969086718740322105917223325918552731739542201502543346588482981495532535084335106406472157737145629687907598649292736264072785424584924945455465101385222657587451433743090236314064379948200411792080877301611243536215855413048793190936505957540699949210206751866565696602441803998556950005540972361544727529428122700600866874963060366426690754243179483886646574433701467995279977346678924576128650873738387987926709420082313514134476660140896142116622314266416753413011931549454582676599285225414463845951578126054858581848606348411976824444846704311538891620551338535148546138653652392067212832816583837640678575519693550047585508798731914901603446405832167682251071125963724453251157221305482337033981651081948064416363671368604788435399890467948099559786340388375459432414274079660838282125038595612243484957880456279787391645252090183876707861909489615180536504206308671718520804411187239115021993226720717255382281859893487655757008468018257862241308291612693126290059747758499951330447967643075642028897081790074396792990122533945685315560899956897990420362598719127901725540078122931875763282632577316715430554429679452493487804391348941781380190713988179418254370790706148733702040771608005515164804614299017446651209257138655995149363291202698973122103434933134883409736964856662548847847535745119623078082990411293023679906683823927955020893304194744742909562211529748291743744041944937023336114043751777416876162973143453614327144584820405830202589241973378787710682965195281113374227301506854537398773905722735432432366201027965684936491068612333418357290325845343922793876170544006114984063873590025520677554593383557261337185886087982618762693145799778836500798301383792370893494783209083629220939408178602983637422356367758762280152166008805487961421723743294986415294484552481433757552455841851634016339653239051741797144701744514409741883200399886241398400878759990361856074873652657346911820685851465279713309660477559918814772771355412459470879847835026503198502777084782130279146513666109271974398736423325386721816116525900444656241281815031011731481289419937917819478697132310787447828029083032969148846431053507084172757584628382289606573976596491647585464652343558507662328479433557037041613149859639065461233313875290360523521309169798094714706584296753271386534249703073902283763355816122554080253446590451190114336335072086959859136598697829828913226166470031136481999411766492277003537472753824679957543903937610933770504997007072030800933101625720729284694005160988883697314647058326670486764089871699623920435998282505740600450408394793085810515809953744404985541767476740855303749316177128531296102850458233774716511981523948620732069948342562822243599439940830335131013464266973437890079396133734589549487433443734518566455998987258543845264306685508182569842527192430807009045159100457254336087873362069571531039768325530860172910722930209606986215969837805225659595287300199443938472793127013687533594699340482659549232444945189417750948313526409929420819643866954788561937361069422820682564607001690395774302064375379704451339842942292473429589584313306467187243253124898929309556322460495974908657466193501115833832197385383110789498960466097436916184279531400342963695257306487004253261336381771515222490299721457318755892930466722077287792753219123409219750451076989289483579073717315130784686269273064229766315480178572644537601494962020493115070440919668573019049949362802654414571722857556376683666553345006630275535512234854998338020249902901254227283464695187786917791965659004826464214100499001915457985914876658804867090778530771533179058252764495860030644552764100614252060673832119167773730495540414189041256784922951819910041643902662789279302342251059419768166016175475935850869921827982813158721068565833020338845141905144931729865193679077988831515437729346416456618580016368518275098144048453225998119322141663349801749378694888452954069191094858452839074912840626377214266474808981856022984647436799281279695599366909513330322281377745763271278217309805324905826242736237839394625935991593345365980402825927047199561367567804464083214146295247728167424933532889531889382832946124044359806297714357486225375700033205307613224371621308086552851075872254685565454812800334067419044503890080903404004436415001660208636160500703954233843819057528316836671384158827140592887249062717452896095304200952501167873309259234492642067319898317845227417635985522852345485636228603015594946592332038158341006570049466884592914243794542183306983775373483640269161262125768402731982788068537667595877027464583827132308477673438101946583085027756248875066807240906444714684425121291325618618776370388465832438298675916762418242813937574429686260946548132599392583815464720415902412163868946740303933815884002482173860828598495364436577594399076992563198308023334440102753012880269411363029827398790643772013851982147522978726663467128488762037237173515809202347508456585543022544363851720615710919160319962229013743579604641732089687019630619876237488850084872109562091309111082861590686221956032461594534103361980699825633713026905464785279168815132551719891804854950559378763116771112974863156597055145279719211490627099221229989492926169358543657138605076124794473404873686507855570017662694521884180526770148231980194990051465779800985155197678544806045612257724237097634311759423527806988778020488353287550830777799635152022319549882026823797168524618157301434925501577107347848248617347856842119626794316004028293352527068555254601975386778941796018558120721470252828913897749493248697020307836455035080692394475229973138689833276963743605993711409676749091092664533096161869007969631084324977704485908469196956677366279916935800084667657606061222563865566421658862397061097475668527331864992337722804617129194399731846790124521129577454870409596339715719435371297580457728453820152259922781182061521250871514908127155398569276965293880800911365382536122023972328668440980243792736228082694296691488375122164233653250260387166459448204486516811505855258664617834325322142220856019489224080766635570773007848422317925010876767409078569240861010596893213446648608653080647247563707736142912904638871325374722287052269791857340058324458399207989692284015851516069299182237338516122833657480362037114342886419562839826849743674345461028515471830917710847234050350438291911303937120969467872581922520094110290531025777656851352491331275534946603642830667451479200828090684602678404389169090794845777216326451520451931828723785283133195090436225924964328043649046293026522060220957763012625842609717390869649878692861526116907445511846162544228899118995670412151361986660152319859778153577775058839172808784231328257045039631758015271083839565683254986701031707603011450056646319762778477027540347318748166818808476745276559433441975458963961192014398208721487147075743437174339877044230835464186447429718561938806703629152895664672048992577816163892738988384972064335709083602095314374356105904473091856458339492840988565854239013436131683192072340649469565332014923745348756138398008142179625836576066119936483365126042959492848802497738567662896116424482724714280466604739562768270730746408827655083840185270694568279752416882634685099804770176589286404871631292216081867126225486653683123304264961018507868561273849855789610607737819758253661675704766748677897630168769998000469995154277763444173775670333780528924127046682652844014406190284528859956399798241473568477683105206778961180270240737267893309771121241111564958935333875986320882720662992215806625300656090698559591437263997943523989810057107030151755338688127245435014514817643685809572245961449514017157026686590052042529373218101585417910236644368954928028972183424832514393395513793525147708289860025492995112995271093867573224166698304186550109287468363469552779363281698745852031877001300446224530212678559310723143151492709152238080764923893926627843906448905416374819268805342734141734007056595683411383605162819931504135016316970791076245785680125593312616863263560361093200028639345853139009734992530905342713871177072533906058738269913009788229646624743060289063293378680090439124291088502227222492716134395949397629076883304603406304779759188718447834760255389339666396613872480610829112623901610857201878544806532151514548409072962486440150118305559966445142850255460883363137354056192059525391431256958479510746409000329209846645610854168301908357288128565607723034956828310894033716291055854301732924748297675947787492680722702644406027225102024061162619781699319319368527030053513575174692530795888043789220819371895889160968198972873881805626439819211016787501532539379473019603448265905005339655221802967928424751680791499962634476323060973375893066777744969286801487249936306987654850448682236298173974362340032986170174604709690196244995073451807265312516628158168793304999000411735514974828806295309754383511487844200444631381904116912395087125589778306947394888541832393497265110984304840867451411493046025535128062563381957813837452129904470818121001327043274910034524617201684360190693567745801684784275566984734698005695111533050551675400883486204683489492205965979211776847618509586027453464789329101703676941560175703720025809577182666671230229274463833943514345520325582741070513831980344267831301902150315729058901611406490811420799783616145026734313845900183938684301676342158374232812591571786378545725947958458993588832103288302709173523635069316718991330489612470904042401829081225820070043433977450560899849996259245629894580621391706550164048673170701402938847971382106546062298434065013513590247849421546269153901020753171873171179525578375584929206757027347114728521184037663055386997610984366198200573097066591041880228027683202305366680375806557087354785278298384863044172859888946844292020902581222217561873258554786917755828747321872636659850198277418913068468289100228860984970458665901701095146057389643112893094831276156644096622242398417189703887111154611306198443108114289816011848193534877676709134687556818555938147330854566317690135045332881129935860005211163514136909595813878454383189806245338136348894043890507857727138726299115424827225795108088335493901473458886842675165404062612468210763250755668232717949249116641624983543520283968079258168078423781783753428771382121502167691821316284352678206887697156998582942704336148395300117242322083038237564554268798008912374783251066371481122345705635154140222250218063278648142480824067612228633360673939173604919063496809363882743674586778184399513878223378570008237789812384823840587553075504081486916472063266307598178418506334861765712763545885927704842519105677801360947129601236508296575016214150119052727587536570664846110380708023748301038847233567588109617397599185007452471967036127978363020018716009816295639803684797786532438322023778229731837361533610449522672795245079346836303508166059714271540658264729735434188772977285131957592283139400616504331911567262072373310967006834790912213187477152373725379070663367372780139358646255559310426320602809150397656293073681446288153142881291997334787982400804361257972571544230021034676639684564729385429482323464652548536758287412283687327335452439976579185965017874728310633329653251050278176011283584865701943158800344415674854889139942052336629766522884630943952025437966222140727884816274713892063259069383897914681738713275251377246259663702557048725047419172966740355066047160376641243152349430017167399794498483396810254011174916275319016537908588904325715210159649032386632255131371849428610834858465004388293978491779983649444789510956864308078701964068563461532964736093769250997284212493019773101470013478247674298468296657230797781837407910607995500704001387305508287551135284199230971865718790147708820813139128200814909940816586190817824830815635504447847857195209281269983075888158234365205881160521499121993457967700619937831232141336737473228980923543002668544819341091680342472661554901536379373686307558727792946805790392970061716200981454023084198914803269976516022126083933193927980040223777325553419539392679360012732215839527706299688372188724010553361117378496997956885568546139898498572946331426087960922315522556696919678232166454630486040405504537073054480320777083028764678843293267312218843254651222160023894391066898091381281479954737197991732440958518658304417128707447616675968748505165559715431979059790187530645407279444648897294410523356609573247563408844423224315156021381529853759045817214011469747352870337844640769485335689102708144661391472376071562984948024815820007703652144878082966344864593646102807959569497774606448280310143932975037101033530916415901555885513184447955172471659580274613105805878175489188800762564762159634512432504783378373093704474313733818368114654674881616186974157847138581952059838156188037563860690226382902042042784590960905411798341422830800165688694777430232764172797408316659196939243787305839823127438348429418608214076543288962196340965185105972508408488313797290939171963328074187714766710732117024096536747380687606997366469768156077680184661734809978065616389690124907030653212090244140582811348609304258598852375980875134205720890904730560507661894087598184378298404344396165223796756465207181037535498305945451171094022241679499039285752867491174664700875028933581930801751484093084259951312561468063368947219094404603949452702030773423660734484753938668401428275224090010430197827176214138392422325853312275175713908406914833630727616964652065868680655405072365710323593320350040690063416229467243691808991004742474748621151581271077669271933189284360057648446381211360899515868578495145954760124164411705033241432607523527967830293507543804585376971268142038801700147384425752345888534766476153894242657702530864491938859792469499063180822341156767698841924207892494694120815203851583642620668063612338906735631208585315655928884094783627757644647897864704213621780674294698464885313855660323334953824793230112184213339747035000094830768774301916451839370026137436064044928592905377126700233144240663238653735045233602872297515270439212341626889543769650191035575254169218603926769806515705644338812733288405932190173478419812175899746171756394044803016212827758998290904259611423784331196210350316464105905104582112405923115894019651794345475756429377086389107681307201354329547592482850479861758764589672924556347854316535214120494211244658229455815838620010656417828434947603269244772069112403507594693704256755427823470921296045276427291096302567729292161772003761905690302048712068467836754300699690010601841463780119772906999187624278446442038581980809018551611705958572603878469682595903898616406185462019463548090381470207033191854169487487158189408076654721513097783819813390004764956568186135563257677254827724944233284305543759323115778542990507010003233263240602590345591836412910285091347443086559603505006858288709535694741549000963658440115506414391482323235966530915501714073298273850130551214678533366611566497476319436542827610825820935414079831506014969894096127979259365599668452992427321775078975579629919489145293874407164049691695751353288175810540880232246309295026806008061863549920418881237312924642913341866609765206393247928101177017150780293655401902092332937500014802015761627159988919130800594129493638489581373682083941330277441839116931380433047500811306455525394962527310582682566165926893821617697798110637293900790865086319646020413583452928289175794670706210914066175917451786884262600957923857611122086852739616416168493921082081094826872288679754525173239812669189277615434332278653030463200828701067029784724833110117775113674528287106189463641475253510427888002632369084649851113805913421024285660590386853342244409887325408196897292621048671589132025454396509418105160719440890140383992357070158924693031094366099083551870452211260055450526997369944541112547953633061297563476197796500304939318636935882864577746844826730953434932691760792809095128400933153646773805804261654540091589672932140849741388242809107506368710766955003898896388101687505319196472045658493268556877485267962037572866146569069069285939742783561305469596947760648318564383716064232727195694918436136590252136187105758512021669039075923230872903933845643060526694457860024121393811727684792785774263642720399569538138712575707675801449444855287217531184828183005137672913874012013360736920937619790913120774283097271467907952812649397037373690441091786568442874577417019574367839213437101171762975714483770527151730628366602511650957734266338729055837115002937222221443855333626035573068374373546254301985889823932844485761541943917286138725139191401222049551048012292367233153631956384352988902245473092877668680468728048711386391713563069081648273009715683028852448690537520379415414853040558161557043673961886933078693844185850309820605978684358229383033149207151562247896207647296629801059767662990081901545077842308087939618052999717180055257119992368933615606211490618194477874639836185371958939869041186965001433491718324838839550978756267794902170594341927722230070359135852007894239325813881874970201040014086428667644778743269071346023184452422910880576823624325118718527712461582773548606969949140192428061148311455449596214716718029892706002482374795368991632611366327936623785879748486207529810966155733599635312769818936991100266488417146641424691335799027128132312578958984422348132938728343309768672011426146105780877791936620895894952013333147147366778786887956514560480484631813749187227038921175945492526275511450265420972596855559432905919561980842889784337038261888806646390504193166720460801146974876405283910251001686790500160019995284163349082261264176203832662129409587729669123091853736158309358613375204581459943044946427121562895082577209896919492664636247265498180970346598489435414563892776690610221813980337534985472186073911154045299356178536618492708264157724327014939520464378635189478862075991656637578871609209527130867166595030277803828112979550119533260209036705464532510683418175660301325572982579850395146432666567063665425899927389923474882318183619989593865652768076089681898528970671203602812809613429762157744995311582620964100260472363631300712471314034651422210982723209881288725273501031842991644106209193920746448339670403453461981156682709338650896183304495914901295239974049395711895754339573488074953783298808554345964788118394255815273756176507509938763509939117079543233244293238111199012756264144524330949570825181440049432469266709441452518757650292924223035218401118965430490905791704108842140216289462140512701905811705537306773370152971415340744310918861396670993465456119627584807058222888263671117818734394847450664023399050072014603969212108168807209913848135980115209533211895877064545180197273189656001016672529097243059087811662201940070029892128485248099890433883069847412542427843043496971498355427357628158450168460298101658496933474681480660530962710528379325813071990713111063234885792184498091994633277356303944934526160755113468337753117650844171501408099861294056374940992759406744039608735924576875423136807425095381290726743014380642401690713716484875840449455278814250684378359185124676789198926239403184818152443163641203636591416372973246286815481974599102749669763046428408566723576758983521321351264157775348139207510857866481236425870693707906995874408507536749378220020565115229315810982928606161825042258378505765692559800784301789575414434606311581032558940674875056930601796001447933069742719732237822379411075964435064097845550931172643625334879627124501337383014063337251696843449504846603347742005051951727287124960244765041849144065911560213351215840111289251432426387375766514691272536155207402467630620469972304848660688936244733469942760378763335182638034499295861079600727938399955313928571389562556301548488485591527480740993521264938354012880919035135979413839220693835141703973212764857871166996080052975662885241324673556398578727196326425241784383419903929481122378922702048261397182796889437769385930161062345245779361333522796939632446767067797444964445805148958515549417590097811729822484590842837018586016320918986713199900384353034489153953789773930344743088210062516939552827640670841687490576801614478616823183392509364161089957295036150112112767401678999014605761645274609064206065255213118804142902974080802800001020599715837039503741990478738518840327168732546005173319662953822254727571154632715760148303986178651960326621933158653714540647235143824731733537378576135336433505497778262247303898392417182121909846915344894446186405279455587890297964951957223016822380200559148621116822653556679827381455925649156162381402069799586901535849397205660532984013565911406770718682827720400482579764190431733832564362073072232751320608217060148744347505989568520467351029800289104061112159816614951347570329442365098997621796382560907209886720876517340237116556191235741080390253792229751847218023806867400753941603990999089805326123709888536472160217556663639948497721858673296353162995150387443531087816758186523171484392065249665035810855238733917661983137160340057733090141773415720311305007408178852134009766941657591307440958432496928661175494486416211339822803767850573773185185305242482505428121904054028579817238716739902999293432264704689376898139743560597179519015141516669898782576080923010735984599586050789838541651336725951997147848626629488422392684039354009943065695495841158804037536384652224002287767542419510953562505700982344248142318941747576084489818090301798728033321274614827358153842139865746386131284818287169929042662830075865547433230632332970074788897806609097392399740471925262824114259258635163920256471548559325233397339253226340929088115742435351414348958639156638049954223177008891879838998519124206599278224711355479396500381600823521281579101034854118512737361800316893618244622154398770067836221075663062368248951173400017583239162830479414182564181220572651875680259739085582726847015790978648102247164042443169636147372280756865778125777151130270410701338165509891355520406565532233022007015536602154366613066707722410008630276667956798303231446278698650382663910078636936600843499358246327232334169381530647525952578440838048689148678639913968503059741967664674699079167918066488575941159863857676133652751218697487666483777623350195239099973065294761276025684278658172890801441406128826464813426651078701043022962476307809086245205290308824626346218271720965588993535983221127531239452912513848770718470090150888067862365878295517541504624945481127983030701318283671419912074411664033638651655326553256812963039853119175390512130680616706008896823386066379342424873582144390221055067469860671770499999654398858717488719264371711222893856288396669842556506000393363287386852168273286436392227415777377256509020244563660997387136538913116484120759708453677576832827352902826951249934995851233814738837002149102241244315722510482277929377497606134829204727807104328781661378092926848240683859614019936536767741777524673305319657977604116123977495859943852201528742264378747188614638568480854106260450394720383653976039908317360738324317889864991990771040161640154915699761789422942610184369546566967265205574754566071397110191593060697561359938935770428374280319603988131209022532917973866825466129427246542156042423725967711457627334368058223884459148330127942244974584865133236768876097479927015623364663582856000806917512926904005173508421620487479689960978490693442491004222550771694568399950015356200531249012327180617128157129394491902398386286729964799477522245471216033007901072193681321143515676179216430668216311620954814129987897494711382592367905269323162557841802183322062191811561817114951392113342674123931133931104243466159610042752638156902705333924518604779637773393009462831296329333660289843622440723986622082167064124273963760820040213327113218051665448897861082268882453254262281448041882871472023521658420900428096027379025206301819250785280494237093016400887778442128580876851399539963699009086366828936434647097538806129387968077796444972623509013638142591573196784046805664991616270727036970867957326393718639252471678507292904259691150888562670068080249116490329050350707186489056279504143463172615616725072459718433252301569906764554687532790659617420005840587903051411881862612194219526074577946939101756327170971774424752870764519995860909866599895553522213649335974981424088095880901888729198450906580841470996821474322105324527420521006942564062275617078985273887968586298709645902014880992386632680129899412207749600653546747756445074764429643968355567494071201942944416159040039402032286330442037255861047699935221897268425737997930931096428696706427476916962092623756459263370283338893338557614248538077090126155423976917794479106779772645146706659342337162133894440328995976103052642459201777825065846178322360566218666258511675117107549982824367024102146242795377390001399059607227286840947731044629043098164380752285737693107434122885087799769240123758962932358943009961528436267375269766549037455184345195684711389340662203080802117059885011179673438569225572238083014125872945816532321845053881076770602276220411722238768958187213876142693491035772402454857952659432847313012176367065820048643628752577768071246628513459948317806667890754394157482323632632829828863145577913349981561429311658065692473805063895105251811401775731298938413309678819691097288517350125204733861572491532806313561841044787131717818589727785818184246463093129768427863218196353419565936070539441791983373059250530229029693449418576661163311646911155934284017214933296035004755853133840434096796658985147643834182101217302337862439350290503328777823692945575171968100501506860496368937300491642006692096353640342290090141082302586537570836517979846660060784016100458484014341055846699897817060052406089272727691486298575448971729464055166012402049212225613331089512382904693039900660448569155469173954052039239022390993731280611832975086067850078448764724706825359690976952745668922433204226622763938462520154501107209644314006643274925713562899687275145361967115000246555514205866259006098805255331248474117044741247151040749518497910767408366393081678140672729799942525237451697386998821691255761768315565242168015853132066334868387930622817517595979441176685581878421106479966109609575602834598301777079250873194455940975313472667419766445034733291892512859911416573532828216802234106503927169506014901253390616961568882153810859041004148855309742850491171522052827392790565792785606476814321192222555983108392537801908529572083260973442196123477396563625630035595558243363768682801436877799432314976073682545171576643815731134865896294100612343839464132700727569238736516607071954683408573140841598873979114038986345585750896369639107511611412356047353557731929824464667805845479428307050717062976362807830336625931670040654239875313318032951337120290599289586445268001093562443412285222012101165686780623341381040302021969389857371435646196151937635231035711923880647536639508156652043314158630212397606059927387205946585231086532176331495861181834372934858301253060285139758235078081778365837541703374474795832434482231723333751914465218732119203445827312799997728967840771370708666160559606701323872454206064366316112426478635373391454391919986049451027963686469826019854714291690661934732981710632465273295636875685559599576021727957148983150849112498032759284832815406948630224549310589255946655120310896664197202963852898339099741027862229219635711485218760120207731223996880984505862461030966731774054318321216960128635865024285519476350392794436163464317130618642994693026072524545812596760996925158245073870258023225686864433933964288175683182092005350764220950570437268981337089210631569860139503863062039080615904948970873021469851386642761813150789195693692463330907599737059251223660183715602951458559300390490326251944232710735680794397423955824908878316849702536413404098477342168319204473945867389039487744197514981274005996537139351672668103380318640595350962315743153427912005532950110094001210617554391301964581458305395543676191194739508276691630450257453321955174299518886622506455983123521090567432418015029296126277578720717283991835032840774697798797843059407940415704535940478300776993309821592778907609687654967291498770437386440063899068611943750873525805641874963443194869523820076855080542041480934183529553820413347809865612728558595146735494785090141550128421495887815769370889692124527685264528358447470813206650193670070380373414079566504092602278711803087998692882417799652483979583637057804696549639350637564544596298749887395862319668612806467553328286496895548780729883360513117673903819815152464092498822602254007695470934818441454540195484191818535197175197592597452876734371556644706951322227833099950671773004855856936732358861302916467883927793303860050372473853526395064561783890622370777856728605037898052001771277163269394142762077403644852184318015330700949192566447521025679575818803958657731600805672726479286147351544528267305210773704067651713507551202525418962065241739400343744809166380818473898983184381257336702404106111926470846727584476277421725718573931553941678278202688329505136986293325541984572776885395731730319333919153659466739544536092713406692731101813925947158369324461023094249775083406535440687636498199873729740594689175322652823667629692896458678164792706634623410421284860982745095461433682736183555298825632892538124839496097294779751488507742806073859320014548571235525267959361314693742836286511585477351774440199977464692786492425880941247311931651763411046983495894120357959749106796475014515393944870052208755913535473614422971176026648965690643082230262254944902792883723918163695012952540381249301939136421204370831714678135847706587229481590848704292462413950856852784426115878312571345718893412041799389335917042723607496349983661452899821331080403864973010561484811159907874388614885916521843226401445562371122032565890182867347705966457228064510011007846186728195090677470638275596734570746444620989560337291006518826841702262711890140557209640488939829785129360025586490262824861364507118518665860355384529030891813153995740630005388727677432637200598383350120599053451438777212462807204054933238889254322197679366144211239055591817046927663050879902376520029035283987756682399248404974565654915537313963928124373756936732212183281043696670336376324281724810731884706883112162615962917188586974185358275773123458581650995925219398047737879707699172547021762849985662457588183552159506069432031924358626907302584025244468290728195945907630227453896108198427388858858268338793909018495406881971109646728382775872498735164726205990094798116243320097142199118736480595243212465446091844214576013940293370786921270702193402111707982955108517922129983435538865660959666738412928578531261992894662589033822019399115170617258293946444422488587253296746169651503173918754754606915115083527514586400269850407304711565884134702851467043582852525375258505988978124136746818233575830949379307710420647548080351714932853356989277384569740929631465825160815262414384085899642584437062060129868691868851242429513632971577074432330537619586368741588921115269961835686450526626300779833696589633957194418707975116320311579364342777190156546515672815204154755242450204981818945332766529182963196688251928396743414512204636373767546855800750428808072753946715793966550378592915626270041689068264034590791359123993606944842998694154191877727088292493586052462773071003304163993625045587337280153856235843589073151506398536025850937973133729255438103862947344871984733035558413578398422346098867249249647489282885691373103159858469559057436905443065532925391670472034455209306676479744715809276260633284604162784210812235596221344965742545684179934924950505403718261529887340383955137916861545205921620212057134176298649633678248276767872133174198443987013052158025099792149537021991777978891763072170012979705616210041336353525684140789508105686977267968206886568387971826687130986911034385552256607602439254482271318272502216843051774235412967996241444849941804923451100591545648773076771571269263809996766416780796995175942014915391883658928179620518840310902335591912538074517673289684494915546921778505866807992699016111031523137146589219272205256491949557856876639832178012489317670149314641838586506376667776537786851783470331788389597627567847211521869586880596342205068074708723580214683881743346638421559034616607906192890248197849870745069571123236469350011923156870582098561803678267005452491075895655633129970527979612585453236757287510916410556376965695469296875089932583271292608183236927679898037887904614969354628827576616955219754089612311151440165901433147392536902067781409270531269619629163149943575124766059209012271824213977366291357237320607495711979431683568587462535568505135585119104317829842227041766555455103223586727941328952150890507244709300190278652055001983569506037566709093777119750774291858016909071925589734632157294636579294732031887196049692575574540404941576610021697594247181988912279051748410964960776447065939256684105341788024001415474418492637219192651706547704000762111958914939001252773304543489488422546976205244445249446000809455311654817732820793168372637082937932861364433024286902147014582186043487556810061145390097358570110359188243029226830754987850738278514926199964684085600583190101311756409399215622201157904369205480304310851516756249219033214632424595719400395888840224015641838664692138691488938833641620675480889511649296928648456392731984642412806540207203205258604744375777024277967103528135300352556602075628843797494497350127121903102102540518254585417748523922153380117270228934385454580983016391338250428990772743160534827358402657901337964880687151235255941054406890946204083003591933614894410698526121433517249945106666731065547954811456497800815217740372164802520959187395895092133051644414573780575087721224075934961261513060266096932893860035967422599368205892781087862633347870132725027774817128743089572193622505836007086029725614436808986933998893084166408803975233307715254712979655759981970798319936763279193919576520480959478626164988156116469960632949067627120507091078421328912534428844863232857964985839775048132532892037526655731431663024615906880953027742990847586601397935502806721644073981158934521755742213230591935343133826428918557675362805473646779323499480971124843535940648344585243438578621648623114045247544511501108990620753811752128977039025486960996546779820089457635050353252116987628107815537345122236586934582574459662828353612120920655545676041836488799539054856684736604344599344178577374816195160081219794639208790214172808082986759553919326793462530194022916864733056932347127271119414189412540843246415146274488340271562228437586013548612028268766659855545209681638613769490585779205270408523516852183024076836250122994932623719378854527764400416662616002083478034812208859075794526448970946932240920351872674167030354695728332890133413155957456974456509886900030201109251691796427791020676066992987692437271320311786988566982421186973902247332207640618299049541575216233842056366518257149387302494727960999765583868242708759644078321675508242598797386804342923146394247373451373137427988140461829688717843540047931703538141351489310728644225416462700674343299065424954500887583609212358816750662110894646082281705025640134589636043006765389581487920688313617458854627986912134960435232357777768806690007205702185629898023283868033412996280930358713694053352041441561704359437900385436879157197430099486097602679126170396549978119849361901310861346046648174754813073742727182377908672734021245444780632991941491963176567821563446673571732301651628490967210981543238664707616835546934768218164943817082377433718959534628733285677474189050342684361377720136906092231311008104160904220797942493079374274436102993058994302650678388824428541589323978608102930129561711119381214552011718600676890712305890890164968014403916008260925558132980144496222236397138447517846425464587572939497951853018163167665233874721253506748370801659733745014918563534832430275020789977931153639806849299162205485848800317007931968342966108059686800499148762401584414752619837284266585258970726513031717434338806069709136984995473598750182792851924966525103670278349217800377396259169933405616517395774374789170212299026265678963351321404815207596644137929256608470370124485273866343762765417888612416153243734898710365568990233854500531658425387128686127851420029071030139716852418384563698996523050018185805207359287682462201025184990312905641209983427461597935136310737196690394613503068996808871372543723230760685666483087798783423203411662400709529262775962745125711384769477615466352097958662807426582984588536367106298791355111999839449050992331188557528243766545491429478840121807453640697178885203719973664423311158680481772259200951413880026467627292048516826475516774108491153975396838808385162459372983862736604254943794851739211948795621836506365616204129580677876329930035573023157356950239974715635375230452016400521680981380348209813581202973239167670391607658377667928880190522518390618596429470219759002488575980940897058039498385355051733174900708494591426208906952532496032715447743264130556108715160799388998306667827363962934348071482497160717689868831577221111039253377283214868253740379013745511594252058032471673803188372454631548303740620617157870898300901481093290578656551398092060057594680154415377299458293489524460406664241734429476536989870105364268809368799217631457098356116113837249343656309405548943776541747240942181221091694164946770665621906947290776978753710992506340203563497404391529530746509026954350179732446932366705155510567221156687238234031774412347414558139695411295007555975080429294374946470060959669095240357354801173172383866256418696543342598893320821845914865879063682715239411080681869356647435104726314796527025516778648413149816060879254954081123190907190143722958712790133782813991656622237981679529209504553097454733459500335091756441675854601223415298338790119609998014932417175282412792642444937874251427681036497265980038651682981979245434670012547674319897460403309155604584305785455695652234108670857827304674739198801389557470751280871000198672423326339471478733512892412191651131653550219033727806503385851522690748984108782747655462526137606755187486624040676280438603096670111482447625493489114379408530219526481014735525289130227954630945270619345099604851205199869103623912194687050797283362033399715828571230059696250469820067024720714103215069747941624451285376093921105892994937577554263927237540896515666568463605398030313318811571500196449415925264444351272856130390284951439569178101974473616436681682268270598924898509531283068733240937772308441185739527150637929790265298597126587122937852579623023786146697667199835958772590726729451095657605756069487054915194175544971861900704710572901676364052145098183129424545590086818502550792841956041859132769540658884228989226098141827007884563693007395172619027170396039194585179838529575218531677074136019145179361389106627129365124362620949102679340142719900980656501987341158546456041616517397655916982419240523694509635114003715052305699989177001182682820290845207795914231745266124603169171132431848917217882917432989494395205229571515389458402502525541732271286945323957344089747984338696499740880277024130004162015034737415202244571519798149408569966115216423849846904425998368389316188728939300602505991669106442797784096003851881282485834928217229097543736958081450567979801326819346479623113778759705859166198646634099196866075871615699873873680908152042114068088657462678079907530891883967454442319044398112236820976450756039807150216687767853069489508108189535786375449663365635412430926904147080711851255880027602186817579989915456050696542139713974892537114343481050886089983649763482037116796498096791586814950436884013407086578177469090966018582150361488031463872885263859194875902017162261242204017420310979969675626337929272313798061011187181584666056316187349807358476587273657165786379247306406222657988553234024003849954256818131993790525333032667495949060903138015526929120478828642228313086010364254898533867483363075613523049656796091880859360349098942841765639367909868854815351320604988794261327950195945709284631084887084124180573302660543627303504194410972438510839823495009948826603272370120212080823762623271689978772072298183786512949065324428972418729018459125616807306859358296628125276910056438017189206930685302180146080722710086589931936515923779101672943604227577543836203637030291181545527032857585838638932083951197976333215703789296066146199681915201075303938576520464875810023401486391377943070779205596207797187627344503342133446140821741949123173841564964157579853395553141024004104543668469266772351457923557649284530847190121066995110496004764487670863887651740917220474949460089782903823735945029619758134865777389626119408929244140312380793989420037118825033571443166101332588451427507858000283196639133407699052351780484568395768807055277870510444820235405485491743366676590311395692506152181100847018929495960767399958967545121121867695408667571002040101341774118327104868365790432901390690837348414822538591488352053913572403884276557856458505631707361423221345118114063882065337976360893902333966330054807221136225137859798190251433077707429223842841275558291188268581972775316746507553286222509976441965498295181869856574482378429583024055415105319737952716377030335726786783645600333035430191955479236096108370518726096137064220686078670656536514212245181737421843785426682991884816440937828802110286199748070640009245960889384381943673463603502661215006669525058098749830820675852618311653940984633690158032791617355770904615035010299742924614031998785981713840773589050516060657324830125267087929077070680798744779361074944458970755505878449757297739606926962375770494200163974374469712945964998436739764862678904002468081937726453560285672922268602906135112868755141809410444088858055762244626670169277413220629571989668235078667645072042571948919966982682901031161575286466975215284305729577628808138226687575703730196807298736618330228499121866857078698512270670080725019771295350234746821848190815256675113097390596833577021326499130231108375359376128339383272115141610167597648175583459776008917659440391739585111842661236693112910488893116530569454415189861610910047277671438171971222608918619525017371436320048204636067735460473174068407482825008703944012681551905123527249434860904795433628667580267541115226386763774534089754925594288146595863208661509722134154979658894467087177693221363862257321023089978929501963958389728124753544990374152062968035515944518309792458419431513821446927298013133634655173590719896030232817429608443224250023366379197548962200444206002115760459882539037858300228412971138861576787650222722697537981459824538066126196772253457173784690300627900190243119411228962026160426423696364870494444060207705172575895190508065202337745616886184298191857613250204948512787458656343292226093288181868929073729103781426792043817740147026698071524508100988341895118328802748843177257142840265037136563472145957116052459728061187448208039605743318302774900525536319547455745250212102135309022481624811005656568427291550738654974982492813734542500770557292341054294824663152424791276325492253864807965065053136215978058711655042268780300614325971436714359837603837475119561267235374927648503097730870722620149642832263877662451247895374832887271052829961793601571176843881331066270223109941100121987529299561368241046919175339600684009149413466565640074980171315449143963215332662858462547132660364779876374815258778233965044887640914254137408728295420634530974109641152874858639722343679286701112531490803847658375549940216370748139337591849774781233886045232553043140168470593318649195768766892407208853182710223128439124485707185329514990965516963145302360042282174120388492308131414528259812332110051132300502993700578738270696784322079282187600188363436933627069024593320500609057564339942354269928562088731842511693823112802216172852426330577340145982585520413432378817824983856659888690417797844032441671670058844291780813161827574873488038157525207024963942723343084967457359335795651878275206390940065235823428849181609748791534873158811362305473144331604358573899861412704148306209502206758137922751535579511266090983282086061985349645384295024092813498027429706223140823773800080269397647487216971131169439981713455649947944288716748960065648377594949018300757939008289021211668580086065557476520712947949831244431544678804688813646887389401919685840395943113893534553452955046036643345278577672713146932563125575646882529205644916049851000302805896743402062707357220484078113497098128280212095618274123838893184785259908496283001019845999479930094867014601857198311571916097240306005979479506518828612538128415788397929945966213881198926731012105424764846217105162750739926543924768980129991282219451754417994657165849795912177730848287504447378519379463283558040960356505279821880968504960196985233432758651939575765866900170489369521437607984618590619683456290245052553266171624987609795394040346798775219810046793123514016257401635077407666926800369960220304081201027934778300483939436883104712497059725957855728103540454469275001341766399013179546424593609890374682899589843016470176824188226252565559505018639087963313561807521315165775853803159187007519454194857889937880628810412968387707691087287872932706953678542767039139328952341448638046662397158649916463771638836993876141240721601761260326616286000687453116219267125824386364131636815524180418238310508421947750973052035865650521249477722733682020143160908267741210441549792785292253515227671663369270106242269380181772205646112997146441418381754506903210597013890612094276158813420073933916024178297799286196949317497039697070228019991691347359964396149367841175610203536384286729050989341579084740153393655704616713556493448323636210253401413741222387360236517157028556598787287730177391084647006581182760254349847347688409806673599502113887312165644209684860540222055301005009953857881035478658936382415219789254410260218570245681313547003369426042997095852328241290484784455987561686241866981124952987402872459060820528268887892938790915904602591747711328117861635723798334017119707310047594213153368377135758448646506058963858604489609684738580526284724113664398758360778747994074078474951343488380053144403648671884775789816664168329911542658325138919318532266050005699277803440168239104391767428037961468756930910647867645723904256881514959054034586250992160834141969714832781446916508467994572750913400464490601934809378381640537465781001404549104624545633235574016449216835648820729092313677095590197898927600596862631620720703339623530270004926036540496518611121276853236483714803675951160698458527104205709866298149278460498440975035834238103927812449179912863015871701186911437563850373935037064372313488410929782974490256712600101821946956368553536622265718358132109419151773538405260613793464518897628540280625435649699203069376612496797232058295534275679169584131306831194985877864745279100247057647690987814657339211303694044144686016799226803920108498649863714291303470904997831787579013967878971297304378990177583660120652322719417889726296037108239134981601701026529369539753963970318152155653475529780736419393118998271796975195167075722878856057216237600178809786842809181288185942541104367018696722486331128699628601278037296351638133338969272201037989039465814949896538152425116463891152007770119181187684870930046543535494496954743375759441822368562187796706444357103929507480890422337970755069583417952757838789847810099430537785933859700959377811017586159812522386174186303628633491520873097635152123698422930363325780901860192570103132825533805359256856657842817898609742467617565008008244882011277449187446892654119290889495012399834571497916084439285689346668267057643832673516692070684589937358515747851160286361868488261877453561044606667731743837371546576501011478067241178155091594539052417936942280936081721526612227538454117978822091633605240497796398383150122186197948221295055955240655897157887443469875806740609333520269411975369457610295095445244964600435663806998862207123942020504356654527890005371123304403376683534914797626379428912767635752755719545371440328703233999946685296224997564436095205226464414319155549040603566357642608291747998273683143704590445278883311565280112865432569360655288091075537115190427014173782265272899670266980025484767319066369260686781552670966925002278006604256695278975391819656220626542841286856615618012769906535165633308117947399213521211178295947448889661130300388586914282523724104634569300398842960344457439535798571175616822267199275167385652458946577206494244808486718454464668395796293464366066074304856643284415740695748384471168124102872379201804762116372861861258020063960295751122364981367828940629234711498006840441759478676691165555104404476795873604338680799516840024116852431427741786275678076266453943580044179942141090686171880008364030211928027141013106852208669551170282984357974007180714291964659938882829909277245537504824510339477667775552891350172134403897993888675832823265935352504500505747367882375035239982688250053986930862054015924584361548075338295636128564418744293372286999645270785955923044968192259044059421134333968827107677465573275597161902234571082525671699375546330425447795649919351652288647417900400006651892269702855488032843167766982718139767504905571502859346757950073899592330837720842533112917299252683293318735726113124015995854227357210479576343859556212623144827707463487646372527950728420110666370133997627145329661354622316752053207580335946468934812484805758140395887037287609209472776163694625140410932286503139206308191230598548604617641952814786664076138231274274833154482597911832765284519500197154680084439511797207662095917900112668849255474226159194210558694575940271277477691435351974881405619382715313590664377485681645841525011806427168029851528931475283057910129181072915172315834537436174270766675832713578879710269511390525675348813170804390189578482619581742670764922949330104295472296333319609712361293984941192275732351728533274587370076571814714673197593498397663500860352035711089172602633689657497409274564073331592905191307220486736194418300148275688650877366614492740627632704675150094721004215912130412027994544664629702711125986684825563694572403440375269185618542924092393249593562121325319316621883437049911249721906632939680821842187193059434430091156756183171185938192326008143020863639373461153510938612518993425447902299097019613033505342300462579122915590808315376195091778778766035307470161138744594580149792346357041592968396192316042639613015043604634775020387119515738419365100502570679780963779589537177070904148705362398981966318996002725480155032605041614639559951233970974045152536581796351749816019108273685190092399438422499260822025680858326413405610999718118850115536509552622877180752042362718584807724413684732682409491174598768160259705984803526256920424116242526105474372206525423823550718814667844354511898153440804640709076204000312326617685290923189740362601549662057909828810729277878197714377475044902088301322322302485451554305196285217215670011323589454887104786564927910035055663387038276907844204163351434090082388722476612442391147373638012873980217063583170441039810793317004224853148701465244436615460876119558663631446890863135908633750646385241214772519514869163742203661561447232140627166218128007960389462919578649416996167802434909807413592628544024009662547891558212785632578257764165690455958879995114295307282462506134636046933242616714652101844852681147945302710581368281287405443633751921375024841320696024540383586253158222931135872245742487477169674847023981205007371062489772787345968597194268765393939382565999858635370993933982739059655166933008785615486004190577205407863089653161151061287401960478894886395234740904659363988962067412376761996893260325572826493502322972638471091754953834864904293953956685335955111663131440402472222883445795367506558047594690454982147413933172346336582406254358683532619736428463559385887694472364027748998331188639410138296792355174898140326686413056741376117638335071681789224942124464911328941619964388224851212939966602025615892650667453243220862327803399154880877982300458534206751450019054746270133211253319082620457627462160361574855749316658882700992797926499606976781424930755307000134448604497844734879907301075766162943746961239608296878935165566149633113939095404312419474119966952367732660393469816536602351147609894663140987079702673624681161974032645951286379305839522201782650226245278052153166829622334784131557260519830703339763216133919829652354188692086978551202752325994329314455747962338033289324786735638175833713827004327001302514844684558150355715114810881586775524313846128962834691004920330335646447632194803865696158073379726000402441635618806634305359972213158748779634982613058039425506803041821913232415666477869393896377960911197658104101434358576495713389971445762049273279088184178614214589265822163102664138978704084564563521928416048691837636238824726451382213856896494363831299457834787132068758251829324797351485284775521256095401990410112624889374112876022163923909711310734522978997293431786365800337947934956701878885711524350133266577342222949749770194220166267713186693726316753641617996455339816171865960816133665122596191232550490496750545640770835324282459115960230469712997788218430478680803649113316410861246314938749770002231481758553760339195550420828239191425207886133967488553614442353199285416774250248785448615184682476748361050288590312398548534272594030788139918058860558835128722875938054258371910368040945135984929536972471758525317741909819179926673376288666918615657058049009394668584454150465349188244008658094091136000011264376269905071672035764154915404518893719618590358669510538672951647127730934631613501996948007558883265679968984480335037327195979361227666126439988980310500732233219961188433362682904239961700468349990790832300523855300637048608320465012931973156018765753208725552443935789979396605184217746509484853779917569300902431656001244003533172886413158527603969507574013914871193958152407205903794043303330072881909839256554088864044460272108519316534789712877285160518552360396711402201814905828582741646751594311739801687899993678252358418584441436798267556177900574328760423816006246720603787980147541898454836850454536854469769886763187273693619896521093125305492488757774940705460356216013266487974218846473489176279274157029131927304239548689404229823702770915818445661329521730975551704875740710721617862290061559638941164473703219859966257896173005148544285211244731579943786280494740939213415426224361993802045355049360178851029681450468184271635265165076395710618282802178667909507219292055646388525928226957047566622925298348829793368208073437835782208420973358934686127715631301284280649637025414673457272482609268862233830256510695357394036971542617563078258487809428106752252738497949171374434031294265993005966312674105891832928715053567372245842302091584117110265714586281125063150656624841933817370895571909563034912219626742595702082761913192069428477362970413144958064173637393952244909143967683201792344262390855363423365067622160734002540918514554706403061707563336757510994519816395006677696492323201054538449006516191841817629090483477776348878293322608528340476306724341645877341802802123752326312354332786062446708376256184571760632310351709159169599838719324466232232473233961104997607616797330030306334887234059099174214512616286040624432439680698654317817809150297379211381821818424387096273936732627577315218241312370216180869785294294084511924253422634278382357390434976138148294159761238546353328340667150359030663932821056910032129407323898843059183829060144238353798344600399328487761987910631795500786487047437897500220721388451637012789759161131792378926924098806158764766255391541678667327226427608474199844170662663840774776495775450971816907819296848135411287412483969095791641570795644278730351674206718223158261162482444404316839048050089817041841206954602881498290107485989424636774925619284662231917309555839125376054775642974401071744914314975834452489143143785195612025200067183220124531397580521833481687874188069645593610838736223314880109722947583781864624361884574395487327204227931189576471532796282724062480242767101565560008334159646256644192452771087895247480171400370080117105847628210922515178028409430344486010673658346846357841191419584225902252379551256776718179121403843753472003600054304172449180640327904730750246661485689220989001542658338665915612865777761218109355032151329461173729947068591922080129041933873975294198312483891472748042357443557824979567361989318645258068297846907204518120248978160038467897164825404157422111446841074129825521043156041590370363169881568947753456831203960680312739885649923487641033754035764660980570320984643199711352093338725225485392427614218779047868856591542800074591456079026364760126672916390587216428114347788205212273067859160205490939888540906470588863306815816926653355699307880218930191068905889727897034019581478374152816600494695129097082681219464805386851332485942256779179211963370162495329166951763479744786234260323282671120637229815554600864535489794562916428126529932982878987811848762272887084653295100102197150148657552152660026450591024212399371367455220068297127399397747353748777260108677688185478155950207697812231498041633692868201967923946873071725673373335448666693589247984774037694107862679744496692900776381445083758355371667755484105641913092301219819261304130867860809747949778818149176684667485873670895579937468543721624076938405414734555545852909516704418153855258812599503130157477751113667717241079122362805794163696043273428828715181113502437361295998855162333818147972851127715070047170976739594505215425258064305141450702197253326961067808950006204690828281368891826451864359974871393735977772489007814391735844688767946437847987979313304961500051528220217090593724650261585757516010877432694699040088396555532653565601062354375744991354315819548992399885084844089194433270384829734525155630835006772019406137482974495420695680652631091966964829984675011777088583095291939422427637670921527047326600100162692484070974280583769679151553295083913424285641811848856364908833805259323909045968980534314618678739432226844245251925270516752974835922921947923170031100232100357616435685975894903262905550813648707825927597592723091991359542032505957748604285633251679976196221840916248714898553083291981270963344575308327731455225058056932199618432040804762226971927425295926751124126651975146595614551047943991311888124387876806543572631748253226523941280211261458201606865076136353110422213321022983524740805149822016996825448761873470656910900850115398900716931629888463096523397162583963126947341936639176485965404134011573631584675711959321894431191403125146842054116699117955051579785043910882789415222683694700944821974748832196464053512423006556140180567463009648502209998758475262280824262272449521354700990146776827867357346246479466370132750248982750935724852804539873215577248005781393578161735802147868688258214680675281367848034403946319371261645928130433898493426464480810937289995916520030436008068416823622664816370216664450258592070687624844398451155053987280352201019285464484979372984557304518682816339614289764046713163107810677894554049434147652623278959334679656836564279708459745704409952253442022614205395974173507303734983376823281398783895144761411652999755386346042286547747841484163997740673796906446105693435396458064530650566728357108649385906567922183873964656459926656026383984084472970453090841378807077338114017013095104686131745453155682566499977592275788056079971030054190824182564828676911048552333191137832385338890489930980339446313934489625225116930966574363300550512499458980743952162525145009483832953936318727698011758287491674990068427261592384890047162785362196354992905338400758695400477791407335116862695490524679427196980201839475465512555867526716549281251888103298742222102753427153883302206004181361410597408175673121707198591932893926237027125988393563934525488968760908527023786024838171503793155838130229165682878096543232715104174529412983877415851774746268707129471097297007788170242784944564183898436515750385113701655166818882642187963890715846199046097106167910425213745497042152297099063048808433807973324774714204246292737823175677995714638587536662805333940154179465923408065120684704907527503393348352496643912866729015175939075108417308515314492361676728497857353715106512824532401855169841379088722827011033547706665722035725474667844573418829256535734408397341006096990508930856460535337274854423419415659479326928568222854014411846956433963517044889533285100148434166488588075787895267087348726577085655474735333117786693781838574501957226878429702685553189760696629002991506806580083697357896008403136056497279102582596340607574338317175607358574448530372519750363298353460130814723381069569351788500032178514324804535640404250690558739232654617644465017437430033522904457622816667062709211658645991129101610963494413646188639427674991990807452339163026478143973747339654419829843995551271600087772834652575495318868396437495368569196630650952654242142152414816274643339670404937827789391603904402691775088379725564242138612018877415496339724756687275932488102382393527463342254590848091680451392582177056169171759413362581771100385777385684664089277052161746986420556715524742231617928290131909487679315595106694485292026390009068812388385163386600285351306838634162989726203272373104912221787408824837597649326712491116405731262372281524411875714414010067394788244032973000231832384174447037284363957771469773725843004289588172348282546122676699704798857514653712716272879046642827172040406803390820882259746071485464932679416400519828744665575900676708787653732399147773949343870303913780721421979022621105155672892113514229356785747942168378351693212116290048097426949548736739803120368615576457609890884765828819793809768367603938562486502127556085666232523200267886855111944598690710089914765595248310161842686830179343562783376547074446765638232967035878823955074554446234751438056767279900501926673188936264932217105590292154800782165730668271699863674363303753794767401247760632523791343259986996582206457720046456105726604580895929391687087133145894953175281615018970972059763733119683057587523120294051270600829128925093100758132659461233692433282293400949030155949997037106509371259355267313669304671557235161578817315465480055124699974784865061741648170280264095770336059964732413601372941778685598718927400905626217308310615696169559547990794814905617274561558773762552996892533102906085951843953048107985369592920306405381216113142480365933834453237682248402944708345160349598117275519410436659043350326581175086248262360514852578420263727399868547024499174557597172321119572129161327425787401575675008350974811766506586472290042153890388643906352149075579777603490358931823185198984000936902032391144887245815308618348111475260727692053290869574342352809232209718690500340915558664218426268890416001820690109495536077122596444786356334938509901990587540146885765213621776843162310081559292141318132609855923382387962749228796735488339178029203486011841195352312515556089591498047810669977178575400204901667445835269883778779007013785152525940147075315553838745888183907644219826100931571453138030868028009520307034814715098563689337091621084543481315906470296673690519965418848223982079875992515885313910214076485761413440315524506865350778829531566014550122466954085942821029638067939958322149526983888207579314046906118888184954715621507351576421993829320511641814891156458942109022561719364032630541261924745042902967671983617013136360847956462971913896007981447869987107498749014742973985278085434965055400515566303116609227891048394541958246074052278300371456645767811519846951765765761563518659347079360989792853314085037142724563372077214245653355425679922380548024953677823684827941180267460378497693803147172461273556344866427642052906844258339031947742991284458689851644297120080852056521667820670867001892990598108571660794697292659110356113818034479863956585863871786888627637359782209202641049270463027723431836866367038505475064157137441949682021437424634815639933725082278675993585567249701787488331429214497414811310765052482166064013527836446627978449792353604123358947852637316784061097597107060844481857250318402690922582382529581891374341302937091119733133711192229578089140964772372155931150837570667183955068224716643528024100064304490541200358851154248459426852172070527054555828692913700189077810264297170795729628398067848177179308602170107397731521486181973226259228524079354629689555456604268559870317128388752282153887282711873116479386507044615882643502769568995040121956162664959968071542694553936828096553406011299823051575020747921195130184428095750957388681458568016387412915299464746443867793270136548063022038099441636786136544614267206736126452636022736389668946996927003417904076732809002386598253428426082551708357221703613543737072422750181164642597190362067872062920450997658734525655745048832038354187973982466662870224591775234722112109842876725215932277721720532407239527194802296194463565335719414829707891565504252403577327343150412012007218511791876299652144505084124894128119073142381678138902165599728617625024894826375542703871838755801072068260615702500919414308101942018428278052040328458100138297379908564285488511276848610935422778512676119578235740949841749684471777875712084467596474764447830082832709645023022820949312129670748229095485004801026277710777036905988439347494774062164738461683107318328495344659355113505494429554044972379677506568077224117766957710711796688879142907966012610544821955749472447407188155469715400618395744233053107374259660360120720298181046015963506104098123759256835990964302531637068611127099846711023978087919530829350942350586363986665435023166641618479010741851968425915839242299297089765773726029886548179058424233356066547027082274363095382644238676278911153370816859619035248927175157091462063057433417985389794099107720106434112577172271293759354411071878598899789509261671596991550974860873518126293965026595042832582901896662344255488234235958624202765550120995266062214219885405636169112237473854780239010821953327386440009862808860550723092300489979090513311172329147567935370136690132557058181460284849535397700484077042485641403079502104109538024480774215632928522410764151877370374733017150707507453951811118501175380311992513859811102052747149350714778034277906737859206800523447866899666884586783568245119800689492183245024619229799550000191419769764680938856876081847193904837205933646913886888589885070317490266573793426884497766244632495461778156284112730477875609636530784178861435669881577612946346071417362488977482654776307437351299072137481535509294852190698054625194488200011606369155238145635240990190635715029791395177483235943626668182559447365499897065019556563749343781887309397024271592138105537477734278621092615680957696192399017581959250496009277903827644599010270006318962836887340415414245039588732621917549456752874625761281010234609012236394892606731460722135258294796188474746684832135513967517688378267338697947422666433476420693548139634057877553123648047145744115348169914781503061449329804295751463224339336967009130038408741410964272291749913456118616785031439041507172952739450749867095536122897202367647539267011579060161109982970694609686103902710368469219640583089388239374468750045824551641928311655910709305527236190923981047702836867239846747487900815616371693081790328178524866035757853843394087206892518346740845798733645702968269245807112475784622608698289900701672782799476469658776658890513619751349806593629792957639204338740070910602196053429113374475429559381077614210082155206878171989384048274563758783563216541457862470209427267206995437575235512285152958214507660607220732776121764219621480337625607851423520619200070186210880028760550134428162108751103257325958776696362320511458435226790499114372365597592273253850727867529449157695727162864296442790300108753285910777898829779008411204491817879788786293669133363023808161745928215312200055984082180464334529309637846960780589917998367433690489673268694109544160875323940394405790157656481354744876407506646804666077590971763165421639921523300547154905040266359726873338016894218551445188706117785666244423894155458135447229619402597331505667345894600244688164584733776942332258228955174290958128828691762722227050546361503741757988280756657363163800987762232238908437402877328728164426893136062001784760528804663260860039713512561563082731272620400043747973272922538705818681826845622990178971159433941450474903844567636705218232078096363606124500120094988634816013773146198098107934142465182831527381501241107435416919902680873435383276815826561015389325344280521894523865720553857420134824893257063904237447562130725416346537650020906205387534281168828444399212404147551196013747781176002766082824996221724597587291701255309475111692562167060982193955623370648013959925893398891513525097473812840740359572402006735313573975303015845566214120324776686839907850571544619682012335007192417163773190552460450496450447219697389376407010643810466270242770501201403783449558481289740946560242879357669793943752706977833051702849636279833492224252208561892820033930975894285388167972046981742720624564603814465791382903170517543377126439695968156196047834346973896786440938790604724140872798733756993074502121215829400704535785414359255798567537982495404675437838293412346549505967908211234989279309459380697204896254136110169658433462562536727649982784840890793127761949110941256299153800503812147699211236529016433504451995707775417471522249724280674864855625729054752156595748571138430752741258847771411223374125613122066627339455608719824220696626087171350266885517567954982018095982575213458862608902666155283838809724111355899547192951839077169494288694781618812799816171232438450730796852403022178202073935105605957631089648761785106604940875710719795859345095737705960729978816475854940140753303676213277217330862848890320985794236647189761495063382221163643091931666624397406653501135035209406566507935132177366233510973242821620547840675230712593180299971846382477602665569991151060915352466244021230602987785766477139468136832812926980151651461221889651168344791685955982471055875979606991861413012645253980649157564445774961743827333753589804554988076928888576342584786341268315254908224392813868336102631064430559186309120367541819539275115869703351275849712204393411901377481975201991464615477317241534594514017121236296826725870672177524926366903668543365070488380201493876345993871054061311000271985917121502138070626926105046106334823354025401462199338678886465804900898536006224847057143368002008155784926662096444001591933227243864792366430604931451304500843427696433148934863650310404046757607766512918961607259097912087231719044987469775603134005609665356161241589780338089770854341925056038832765243157435278028167918808440263501182649783414311176459476105794116450632197969525269914387208006902028295498094821503410422805382172953810955104410673730050157096878818600474755052276806533623665561511491706774740011724179302651680899939372472311744442225201560929929785461766575005171755721134784718925107528750421506583491343161493207580629538586110915924138230053948556740186452787731397695477144928420224258327808589011961161505225140398063526848520291345979267450550874762919568801115917916626299527431313043990429477591733713836095940883369163303812948532084873648808226515648916562029521472134744783263162636640958507358104860797259720539870363258684229735468794477252824182636624794265829797221508443771702294591540743081002150885938805385200042275613158377773366224960176772518258504704251849843690007556542446788397941933187543889228826640669962128171243024788734810309254206345865783401586272829187013156614788910598723545789219383271093562052795155419932511165784797951158459658083014436059371437989127724903525089787506870509325122651431852370349442473316219012875596807044177136325251669840620529559471330164010164191661162860683266360020090952953888601303099228999463322618226860273075750523572607740354177338528321790487582060752350913343789181125511144563773385647813832631575388444171344087726212936333944157239569275295139652359826379125541144069858563713528906621562236021943848866909963629495139216716751542018923169975028071604806797712137372060314775595516218549226593374070071850052869348056227290551792992227631566457539460213171948106408910093271329721108278286899466763983964426213670342506129481880177782449926369907012449921130530910804847489557543969010041870273789475799755898273826625830011171834158896602202050366876316184737882633744161183195959357920698012887769778725481950925083380784421074153249510815529099164980414584865236261082493859619632426316744014679780333264779171743807853468177288947057711620536585185777857978472671805037912574425367063701864851822569960678117583775991799492206968799105709943035094569389773460805239097526600839313270005366766886537461320491042454153913617272134803004240011943211036275269295753340040110664513224086933102470258488621833526159375865598929015162043016898566079843560643077272050774922912130590712404412639085187618841288939751068277519984343719530845137793337088737314626817713186451134102648368164085379495539304997731874130022059692002690761457778675117629023383619788070327565349465355131227417373523389017858143551384883549411893733288934910010859522744160125624929237190981912584328418326369149742431637982283691374632310813940321240485295805067707000301253246062217602708216105578671546372556767516460795468110196602249723505692024203459949311598696467941102299337738753283020255126987097741222949662221219041014278357636147312448292955450617586884215427833199459824524855717217689180277374548822089155923957934584647666485920693168922468253925017968240307029505836988328082337294365405880298513768861737800636988239933253520262318522587438843766145185149015192338141582449508054518949328275382344662128382059468264755024784375251063287925365615598524092574649557912589521376613242917270282295064896985946217019796736962534854084340869934993509354171673654877294864976022988973788037230991062228449858466508245326248068036835441304995991729774781459570633550629630502637240756891633046418425103751016320168308401341552761650612182965678793660667173198374904127778683881248817707600924831292268474202458699146102915549076465484200218189423395191969876841938402476733288651458472583104771663651581558253565078632795590148324385109753729604898507233444761829659596544881988430317188521644749661193169130144015473104799246118595960666095448023661850989021159747398905917070905763889392222777435848190424364013259221377816819502379950349081081614813420835137760335226237849018498221414532089987487544615621862216820588584152039434979130795673929874858369490349285367224663988863406404385012016064587816388779653990642567873092617346661058178015039903761711111979205881426080749737492170018958661182053581249460019352802900557570679058711412538926883632644075316680657513041941490272587430138755398963314543048594184146855810175546290482200185776410733501867294354718096030195289315150418371215797708008558194223906785102563115215838647295683740833464177136944337866510608177700084914224226928054305919904892342289506145068878816927157115945404482625814180227024568836137661590028694240279366856005365308467297719807309461524979470603545675040772517307710666297028712437391515377415828306678498425442278169904525696416270935852784473787026700750954525147684964393910144684317759959383133950094043671166304761400189421432714650309196233584025718269895107405167548624889925523820349346130008021162087827958135811730767590328892007911362453659577601666757487543888041686894406319027075781740114109984648976930795003765052918662731633854359403715550517126736397997851181283042210577535566159824137911683199897702343863797298354057332562080351333678349745386517484846332104838779951026307052350532381110841551398111126817905282813394391496702928578010583209226804809101428501563509609324785019502858192478170774669942399821742861140671541092259809392900041416771637436694767730700205710582525120609327720224466970428363663785093297888140141102030845512958991690818382418368106945626880296791643124129434630159413419756586670609554833202657684037835962985296983125160540221534588478907282197240324644689570357598992836115276390598983667259380908608238457932590367730428470904484339676414791794089448790884845276110490773130844088710274260851880385648137006643326003868789321847347370943008183659576651365763787505324540376275054476830327177780560826251932045230310029644451825336135432715704776050749742772696516691921661000610836543951459183715377725361065610817041903310799350607922416744766713207046024599907217679879362552634938587599434482430242136919344242840765938278647689497449411741444302450227551931019874703409147086694693445129481309266722718880281104952265419013702004658674603301013246393877293315639199056992061407224494695668478302489124128400178397826804112790040535105684339834963553760114024702447900830120830806215769257843478041906452856569963317565965050602660359399576894956120541619673449511674988223710828275362001633393503569685476756825170390697156608792809501270983164456910323687215547641495090027968538594142329263280971863794914651164539311786952642467496103236519704080804590731363517594529318855370369552349457820836238440237286684315321146244214810231241396427493035424340200330998181340777424736463871216136228118993170675507159003196809810925633395972369617667710750757174384633434337330819681484807912290210147455211794833166588580336252913715853092172873137455061646019661651410620555081928310064862667754787162417054344216900619618727635224595888938858624852574536980210449300439452313216599787424513919219422410725375033653140833518994252408690306553590533512875551670947041226281769640627966088813751277243067164827530579086508058305870017981451839095317231792426248139035873607740682357813906839315913811595486924038824125736197840611749974481237611277995567278552380994902703022922130008548399022604343094233456039473979637623979689086707287060612997183233546715214173988301892493730722751084794369847357189958313063900202620374117383907282958496111170535938305856989045719052856316030239030306934603198734868426958020935723690410049134162304163537021080534403165087907393105126283895994258136605570455664968092863016810178554471315494081158382317888353151000861686670509728804194498818581680092207981080728659788399278556333759214875471535385914971009457936553930289928475171438027255813969189503626345203269627633669650965225816301403298169299942439308344481381493345465740584516593919433012339346827356327843879956945472482648847695550442480558966815751155941595017886846072448308497717616013335886389909605231261829498719713803241142883709459034435365315966938035033563733662901656568389458744014639549434391010151353936004397702959851667069945665735919049669032515549916739402780974420510257130668061874089875092977699759913227055570217308423348880849215644838600919801967062759695223790498190619452213692510909282564305771061080791379164230373554732547766822298343363057807711763441364386936283464792248615612025545574959207064130504077657004177640626294703810343421869999257120087840448245939172948254899617930691769727614306891124246151428304751505939054392578889609571124020626852063261865838139452604730677932481278835104894101552092406167423062968139364555256960821855384262049922791743414327242553683185315282326837910023564889697273931253814011107815008058550097756132968475412748444382768420313404341364566808233431612381315923820550378533409360433014847751654746280532816982303580001968264407463173740644521010422113284377366806979568562238187855758356462773481106688796618580485792645727766910017386481034524927878758130028405885111604032583413234512791339861303698917909788646609573539581251865666733599613312815904137670447911894109529366489018211262516841558584942884343869193651090560211809926793369048294393033076558329941429763637525458331320143902559056991624409279717591444196213351069675050777546266226940270881510179329852703718832899148636768437049918320719839057025448222291665335870581828556659528901521241838124972322607111211046093828077508505990279538354953211993836151412322200766480675172228224461724448913722756916066703008856965508306206578498164734085914808020728909164083805203080836184930286773961215900052655274363891626486351953640093295395016604916937128403382540640240624266601927791021606033477147157307622286269654366735157675520233570934938002308492392354612906169182373963470494301969992486547844611834936313206643525866124706886737460203547219619600758101980713485347352847834281800581516971998415718861652953529708799102365585560446321932303913280159528158010459170294010845284032160572583703325902608908187457273757168964445841343324632558350422981866231946455689228703157914678691526545754858524135899014247664839452468715549816614338779050745121390221004185274841297033558914800186131691479413909615852895240041872904750010312582432246863973885800900749561228533284772893571032178252778900025896195936621541581352612074752635977750589371746375558969420875710905115786578125168888092837103935013314704241540445318715574227430902607191882589211345192505500185066433633859219900418937366724603453580282519160604051630723919170615630965786966918351410674849832687711798380865185083257087322741058809292789125549885956537128274057528282018060212087102756291268106084483049448062208993753057511616006461734172484253880930484669617289285428374179578741825431705771771438104389026947204429496831849090292445887617967284084894283095381801003540119141362605014889812336129086168264918791468104397104187142832062434066574492514614631560121751111524183590156220622095061685315100309489096184691366454730705100693833215228537804792271403757070564321939721367335668033445879379641698538436577232908063859167847431106029455188888809625219528952460075298243549156151881130008239672185760383777961853720705815781531746298452811833795427430074598861502003636334504225701175834280557730256730842899732945096171227310278608226374469942403601771114269762389903688055920223139777418678483200892559456497791782838474155612441446416327614205860999422840576057038786885528296956984195029736242099727941371212097895471977720101517964158805191771649998054274745792722380633902198517712066312973032386935433416247293426144349937957537338072609337310528927356916224454833650724307865859248521052261045997749594348294043155409856205575862349519367248885435168304717487601406982125408148258159970320873298175075658584832983303072738493322472565979100359044717672976279958717863992896775189593848383585514999864276607081943957613611178002926238322092647036918718384683010974196338157094038602158830262415970222254661174284203065799625940550824874025058348651102894622816430021688134013510630032174665969421008838828567293591890549896756460329471043980364163945825115274189202205712809322146300091493459430363676512580589552300193657276124676890365612808065336267031470413027490187800892561384204805390582684309161722841873956031277525018259474367468209509131881125482897934407692814175286983641167553588386272470209123546878418461650208753203528209492179705775390936702725008784585690662612814730317256849823812416221467356461176538197566213807126678558285945702210857800204702447912267575659358425955701769509363850138914074420882540455958163675084289860366942665597526517522578148919353808006257087746185739179606483706578003752834634678273725845888670051791522183270483582678714869973087637544196733606504561318583022261534110962215316147458942777582459770714345989191216293661654370877371069404125292395396238614286508212070603933581165648547593508413062469981193116245364990504214668381122353117944270458844103986000735605983128428953833271614576647691005437555489608193587021539872307770026252356480622562592210148900889524787347335540144680167708667974337783424498834279664279801351146790803703233767812719723527906812064927708373930243650599451885858729050211268074144393183372938764035516910019638646137824004791639679042578739307846967844489544500813085890197077380368258387532043414433251085075832018722125297282615693742461856910567184287117911623915781617376243120705565888552919683130085591412030351679218677523153229573122571766322292552133545103999762838809988557013014953528736450091279006279829945283454205059367716229754800349092449351868709785851038015283226619428317860583582493468610516058007615184494263533016893344076213583380987230715073394316532942256650609793156916600700826407979919503051649588494524786501998883425528062881543541492673822034023894312547941198132437885133780156431431515072537964705573214994837745608778671255408179152532902934509103007733356906945810568952955806163838759284547712721266555879987862627011349308517807630765471474354174273328524708769060079223352132052246224366787170096208588917833432624720395811200185391373041319852618195943648930962770247613768644577779314216982283423999075540001622494668519610247130001750277365038185548909508922264398901109636026282572454534913490916224271783686825068439691067595395771544612287824520433145100803053608556840228958478156496342232181191723984560751080002366438222025598072497333442969424254459589925856481453235006834965917508511935295646622056474785303117713931467998502653529404933457859311650831944819385883700494561505423595569967895957945370880774036293377421009837174715727522790055923894757816454089247267966215652834835199950342320507933334721209328227005785031747994142889515601165366909056242092035302636198396873463671134655326860239473743734056987139236047125272117828362626114306301875277741665277234839758039174301583984197541821591093686715386896616018760442233846499808833288989445281928798202948057522079198466491286899172009008225237424551151580826202101725421010688381758628287838708012943907695252092055109921376344965180493932237845794477259882819545261554365435425418558132764426044213424577568416450189184571528443809900798881445097973155152206979198280666912445238315633708144363805811183444039948990792658843092634962005513130174037365328138516251978809365889132401196737805849255320852501219718909242756688690063695256722845394736517299911378349627467312525111396553463089625741512758695190260206135459845876806301862706257966837145245150999486330978473326204188941938819417820045238877267366063008188739965720602572767935174430222610842171755612138657510541247210551039525054618947519601315952465073619274596430699601999344852525588051907462058878792063357592312824182834763640755136947439362429427535153757367037981314672075942490127352142811520490384908323875915133716314677297295290452521963880094949642883488599128340819504884534405211751173448702973720979672885469214830580793632910561676787837522875147631231830917666920280148067884085849710414053002796313886596603747237474450193863394840808747180793861384517759413926720905209815334984307481405752484659126972434326266056374057722764696154171400468100301597717774109922729772665700186127128326704842164879195961151568887382123058124291540264805718379226733144790034879330724930617728340168491352113959178805593788919430881108570559575398456404071543053077444968475080349581430927851521266050265462816943982273819658508595014564833785771104216957302688751790071217348513841128674295024155512482950765453782003871765935643783408462923688524948161278288708260586710909908598496175546277665777935428567639484674344238838239693561437656321648313214160779521241889911369441771694576965947134742254169209813889144637125032822747021141229036743234726022926410727431176834450168178116228792695918645586323532584021844531194127832021942152764927837307284793402279429966043893086865970679855903820700369881743935352101547058537453986255955404829160085449176915439709667270169948047495737919759343402830048698496418802502511634032094542150630951255996522000950731220231300017740476667571122078422546661491302932627691956327592963878794412642937348042998642196808298741427982032572412478633087544601242519284168458413052519217140015910244453877698004389191660312303048909130905549372129960564292496241806227215851751509943104533921318476018050163614065849467916866089655910603460696791509361752729565556656460784120976035956884870169384191741246266096053036817220943520172688541607276290515460460673097583963920256028014123957480914027826276966514422832070947200322230482830743631915948764805799596589489423834552682017992880284825847900179168404986567489783598745469373948018728567408510357290697868237562022709206024854326636565180475901703218881858395257450326007633582293637498911389763162678498752245802658578909935558163088586407568471426237170585510129944532531537948625202046993855765167853624547907546759521476490901458563541371583328069363157602755510425387501285142267342083664167144062167163070829571606069042782916140499756705033586115677330551181653198635826989238323869192909098518874965723570005319267592747867369495339552422867915334407742808833518663774387134080650615968561005291658589472870743480550648028919373864458561258397905616193702333677291655246445672003893721317400452399093780824633548304407917133907292057576448296516045862964040527433540792485709877660922800208541103214257514755852466420196967230438116453612098235959546819451373243868826623274382610083555316039325337147778698065607892371155096100144781635396333607638025430936057975071849881593508225646543023819551915990465171866295459210869779470262471859021918658810194494424494301421790433926147734265291039898463795383624832441842808848777778458652705559905982054320074025504124052275406928671284333177880368991998431722842154348383032231145529525589851060580291337344492330991770741917633743706429351423447284857023313226343067372662092295921566924238940152663332301198826713837171047764804616164232230933925759574108168430441773829177549716202035315730380083862107305237581162170464763418803191675039967056302418498168255853786542013326688815028094751493938855896212932546437802374019438739715508325878062165032152011342006595469089781923440524885150678732327141390384387795625563824723926883581867753318786558466309144591279111342422206386566630088103792353115297315874733142095319886317343478952888487844164367991884791538721371889936201712727653079181087154846293564359766531325916968329091005556093922851802711411675753894914108177160058090926424030393109584049037442708130380138181035267855380123207548003889149109865713326460051120094389395066994706892873133716078082498300220203012939005193791864834910808495007587016308325204589185089767365285647611038442296828846268445903217663315865752909760610611957445506107492711811425447134956914249963774306522337030222243930594596740476421515674040241487779597385967266927878751060711823544727146446287886503986909692741769597218013374820795906316736536349668358548894994708116052775949248899729188061763856942834420247431261275907457514856740465064356617115324457062229226967187591296468104168336281566270804894292422448674252544076705789678243283263636885008648692664719826909782953419310496479614413300487418477100079146214836896456897081444965780272887496494217865843250807787925808380734881598424463018636166114284221881902377401805259135461831113138599147579776332157279959143332081528215124500982915443068669139166844949857816855140841219047986691464826425833276048546604523497599286124312113500743275131497465469894331457755273589980520520159252351262431756268000029997763810678275457078820895369495890330066326216542385546085478783771222633938630565708010644909135347835656200693575189518295929547964549616351445367072234521512583101545781563883085816596367921074361636045225156255624416763038716469205624186565850460987913224026090038086733262749441749581539148784199811354870961155066122191715701863389887950004790090567773418618487977712112405502602002994742769745526400730417007932263192566801729192035509206740655623312894515382620957743475709989452758568203772832438970048009582894938759884813486510401145587221482886110105894456997891997129411542468041570664712534025437057848284349016760130777403766752693703010053291192803806873547731389432166205196638741648632924361788672438399733478376243642378080886342957480501535192130684953029258452674764677481987763758194762607312392445692786782929009946507882623742124495615924657245069946801655375844675385187050032802810973828151229389049394452464029596409785865840317957126197393490012644241448358143950662359852269395649350394045428624528581527464433269115328605033115280620386240987630988793433581495863291276209776550498698398594716372656150303470267298893162367009456819851738153991996884072814629768009976437944086866318339650560155525374597911477041460322099851811445581284781123862803477353870577911070330158638403462464433480899620542362444852917965251819857880194300041917052617177655904280880639008487275955561536947820587977186186138500468531267072512126228496382894845175682047494719569261194413848754194144278983312046621377112631075020128736279942257086420649503216513839330112923237173262031998947005368699917848188488595985909474666013143916036133472285604199963874574218148717580343069302799543990194696202961245361082901631319185818278548333907718736159654227268501946519259167905180104972819211735726980365459326379925126826398704986788602484959142626608996366362786195167051969244935505281708080473557647675296732922776355943675786280971282828357954119279840614968633395172671889853605872685674849867427531440252615617902279807783360564277939314961392154596688282264885336355209519444058835636932645975047139452791485032314764131130499490333522766059753505018198655430370469933633885990602137444320273692776219276587008805663124937832743673013489415049420468588965946535684179234624373000017626278947441130824046710097675321612824752223182500023752107001754853051443101246335089722445043673795206234083075978351719891190215093415316184514310964381936150229126115647019135717790174093827239633101154582114623729749641083554073240564177281476414212102818259802379470401641617656928783452458415933677588191142720263904912908178036012431475986209520227898483485531383344745426072027617666287916180911446958781368114361115942048321065864470891865640898222672784793343916290154780160006320945170968624886126974308366233986964931799223316015154832788177316125374112208979448381529817295657775778365893699271001578716885619118924521580823681038347955257521613669292693046013094108159283073275757234734591533802126584485516762276168134594403395195433035413015595756954199947404966780978302105159892160310956581697574317406760692589540112896285799159704109183283392691184349186989078893670578668501567241580735811631870483355792375985308113514268843963463062364478533911084513813680321411759682609252206235047287179167917973445803061640900674151873407449828881282033928203081862775836388644258908588511814869777619099621096425221022887541822120313495569799126456473035369710210812223793530448133300669395309689705132744734682151408896383478982695130966947723274255662256008290753545453700956850211360873209514238119415284188641698087700477967466871624505949591589458539999676338209411558632444357744134866847936124602485010490677182621717581718888009877550115505070176104073419364230298743715596216426089400975792024639048662237421732368014333805924970543252845557625822643018362223224120659070561366078067502008606003758197054849234448386454181857060615841292421457124449626038418596132971324433689148088234191627942967533205125577899797318834910023205450501477977954777401889164797745567958750745610456758606547830049746322319156956404725383700665848537250960772236879330550251568096261083329675158734312595782414564241196931881319236759621845764826485726644013741234644301227985166483962606438374022766475871836895227889983343520748021051735295430508366855611998100603700148956152397819821425217100158610440278712361133115701737982594380294978690467042082743718841219447563208753757177348064157724042837059400013006868249408577647794465813690228238907663039041944088339098546471250680925548992855235015395629904974729559461490925243717334790802186023027100748169317644538528541640821837285443784123911162253587102450575545832157063091550428105951696497255429696463501528939426806667188678847707816183480492742860046861767017646262168899157877611118432572387275306801004112571054707845635641905611198348710597246219828514189363453112731162882847578929896687740420312864541150749719699490536793432199859139343198156727806138690064773132219496153417255861840431342080053584738342000825623032288878318266432369387876030629311912604104878443293298405702941740618354424016225315984839074089723192087505920166274628089535544494222352421583646444555117210283333818510925278002825230960715814845440740065595943374981058475844581773693283420594211414384602716662536652783882799864763033531438993839405847837500837179265620348816628560401921379704578311451911507137867466675374930194737186006099047935443518611039623477073496311580911641792069582795477888345352476978797353329624892170449088082525922827694415913693400915397390903855341933663772577615141733533008925219827093541480264472108620987623282397885094013684075472181027478168260841447999274858972127124973695462322392691203595051878125900061315346511770173857786592742539528207886288611996700734696445357199626889863339964925431169989870934868921146876914190083455625105771940768903329915337047756044343155313421199994855104839911939558081432734225323452351940705341364323748558004524097373176677445506948447136556161564855723838517805349610617845033976297150754030526586443852614417021986404954266435164138135683704354134527582382287897793825684540537469402085419058091772666432333603702929289070077997073053837474883357975775486062610984210354542919101879985861410419194053495412346824243970154405604751432306330364457584262362166136114020979423866924947051558700372587655458959386253226525413016309848466122672768657959874815902719862904958949280852602725382812834300366976453888518604241911629804655431461422028941220110222131634711169716969467950981945335591111339421666371428813121476900785993410823869176809094704365721391910725357829709656115422020105844117193229115792810762259689529994891850244991358306222927271040291373882836858207393552287829441187463459745482095202597846353285698842576307339106296806447304788652673684288222771460873674442125410409302791037356921224897082158945105631521431854568376594786821059897043636295168702577524584375493757233903934547018051322467049369959868192943606710140880338329677532006841567155465589699857598861865721774710091573856308628386156311094244228349637890615904247591929113911968675262682284483658002281146602011979125113638629949415000569388053683512428420235691622747715876125667447435335991848591783081909250008862449697032036555837148301432370858825016588521134519894001742246087206852181887743546334947580093934623995818607064152058875848259768304849594908744073194251207404533672285714592199501008156042850890646364629650837622363522694447910291458155287417044205018781986066255290453614189741187859963198942134590410964833860752719997593483670073745073542365102584134926553716470156094304345306872725291558722738428818294559436209631698405581404915395317703696466556543233466672868164562444138645626485719564012806297661516376790277512480041731645076291233321417201546895793826960033899001337589624921167426843408941838063712231953157988051020326070849755612639938979797314062425497769926478977879624378537430754853891208980796499468948939211975851888590937810938436940174984423400930430061555107327773614444573155493053993556181913799229100714070906219164361536475953651170581768858187347883730834143132087298197555614109786371493966296943551750265190166071118549856503061443096929150701744685712096409238506060873577686402568201963583713710553161114669656143241307636800481155965504277832098884267319509056066456149859895708922554831340894519464895125863914711417903538289302827485450521077290303679447380026361711856282928143596607839495474082392562689031578706044580554220200734139702229024416418950148678901630234226281777505097516004556873846716265130248742856184220761544570732432228165522222290278709755845843319102246386837801696823742914749704952326376663159187501774472377249284175339337211723111163405177633585782439563493393220899007929552592023555585065347948472938983430131433716145213212648823312018038319221849918753745987779905198482847528066034786434655442449172014641664255054780680423063649570199185206997239950759824372297394666605081250934983454662129728370394748553242791236234095259294620624208668041593130150558466971540576022661590788286118271480322046798219267956890046572464655023761388995466159194264539447438186254309882526600285045451419012495729654103173522190905212029483684867984835625614434621286779567331409333311987669900592729954987774739423262578541188080388873867869712360565182812168399523703900299746635923589420886705839617118827274593851427950314792058604840724095065274656786708700536016960357267145838815961625897622057039020308791097319415468948756024978552375457021873307591958915169556403569410998713258848490308175112869325109899614898959462577696621558162817866114383304909219520657539843433452657342007857794638672553682966522637403856737545959545211380983248541906678462945288162141943941206038431916984965618766945889722927796151920100298301658536005839231937796639344718282192936008927420800939274957140782638650035377299190411381195422138747025171999363738783683101057772000108987873110358791275951257766196798184102923711703297408846622017794161417248012315939606861402259178566761350664290967860356908945684026949189527202520730897628399225393215146363586857611449304254877423051231786271761640952539800313648090655948363878834731161487531618417424948134467297147902674195666612184177053741279297936656623693835273602011762632624512866088158333085149543903893213725510224260903660942077434516748686173275201054633027704684201975189725090033896745307912310777297779099490401433505479095807444487026285699343332185469682978283376485484204083527440848482345027334270798148100008876191810679039823282006957615569097187008536067744185717517927768410987940021139166677919199864597074219004524848789493095442996463027070227042040191045153019561065800388475188611816174259274242065112353953663126983734149201608493242133031049869018484056907993098306636124778254034007438400380239883101893330455787604446223111796032618277732474373380839404058339251304080856494054014698482561553863006404186403272461678673515751827754166332597067704940663994075439534193046880628849527399318037300311751426407905593256593816913072379133260203221447361400079963882103313137335215019721314175668999707030951424557434647772441529271342557116443681276423052638926779941745891502102072271994053035781690405091330269187090126063219078828576154621434537013879020943477571301420054014844310499322479762259724519686343150224398785350692633836376663758977866621129787022594638193495768053548958422479049744380988152805479323632830664715981880311116374736540465100518881844468716491363927082301144038660987380232832030272718128847665559296504781225706993278165166169981807067436307233135139820147491184878136550520086247445609747125946534840598333212169586334826459879375928481765878801391451292116861584742936292083690467688982032211820295471426717104722049702536990584656926774169849606855605284039854447877753579953778656894094346103745163407965384454795251203150007933369464290447718429401659417872812603468624688089394007694304520092174212476016998988315182462430855765694756349577063698857877047857249189820282326464327985271199786405672320213634405136680332790868972460015755204844034226276676902292846692291417484941610153570285533089230963794223738321451586144167716603091136743087478808915245704219719688489786640280837130871298359731040621782017944899958476236393186420432359151067450657189484895616056638128873556122274642494455709184935348427773044805418332617019971590827870316223430272444748580695359334530500499670647265762997592223741586960644519472341439240861562167371745417625196060996075206758031842025958077973241428817577392416652218020053325163889338846494429705161218519268939508191941520914985261575204497100187408865789758720752590057412454258057210331662120960780526969059125755979364203518914441768340494396273018391797393973445705128812288054896243727749920135776008459441588290141611244655729547239586632481214184841067733729376567504847008748296324675990409960849561132241343814747851489598534751457369982467191912357731357615449426999425139223032728144763073402559550382327602377119798803118310795851964861041847307135915162881458226490695405553442862611754031146963472173893994489403707819547213786777191506175543419162443886552928831075474360787900756609719317041990243635921054556390209484554221896651481183165397696942365939952328447267514574009407769702008272134270773089417618885574531905078242274776352334922955264088438210268188760247127883073568180267100056403434870163699174515140683075231486153848558442708092851134082425043147559853506381977882179403321908431863341731143181769641925012994886469749746537828369862792050460404192577435357954548003844582402717698991343390503697400558755880944055385824543646024713319889411957688869034485104169368091296214755279371660242355948237025725532014518290037620366090159214487754107704153157504581796688099471658522940960071021545602644088525612879444577630180070448476190916154592442133417098951765626478745935816642839970368094497038342855399251424981359635059378808062463115446284867240187196111702184270657327078437056216384460009298853057618644539049839269594710724173854641054738209288008438852625110264132185276053382798977593073395751755874056598162797636749323420699131539048482188174309891899169003098056059315404742146050090912499904280046900706398201595900033580037267471111264866443220660212491425731030312558834351795891350665125339017225516544891610692939411559265319929520399212180033573691364790333156315908563760417883537683756098531977337107186344464199045580317649558467540337812980126595284627400599833973008758647133677554342918135048758158706679085933511148352215150945135064216525030422627519367117593713645325622687439270202322766246700697195449534583227372017206776391458154796281659009014757457803906909350621215060067142242779495554070459128949021859255833986059763637109500457304218404673158720160662608224260742636938556461515001828330481896763114978849282640852138364685462769464615919155307732068760356208042382250565308726936378207257236603404012961820523405559801917118702718151099964451219184159961571743062738499942020768516703776974324738719450747459643489424622816565823244644640764413447480935670815397893964807943505028761735717415760024561192973648182238943223513991480626265061167598811232338764811161942267997686859344463962462246992945814631771227693433677101037384523635685752562988779794106733136797908667923155371770431650813783985909129028061472755000397045635939677508542877278422799268920350414995025577329913960617103201601609722735935099845057805161865139223762907267861928392694691259297060569745823315260089015962254452157889784155509181986657803805864391120498269149073376603351574651053872967760957362362605640673166738875927377626472283337425744124121554002382234189108324446143659404861636961385100764798898840181733633753935439174610598095137943816904715864705844987058514317721406766691130713561581105501527656144135684047040912818560746169125824080574726108302444423387590459031368051054061217206574860264028470700936132239341328375410893915422742696186964261876611543648373595865849741037540418565621758130610462960527006891688572526010150637852427793484571677175567847238365586663888621459368876210123097310384851614049038678220605870893881775282618530926462702410454586019621732557891519976601723601488264865683897957025829775301296841706045692249704267141187745018750437299214467339561057930563252706427543726995205510635628145373883743268419410634116354481806717502005164443912406680617983147695732522762264072380972493239620172003704840720123127030643908387741209132162142658756992467412483222200196954980227110152359194667868502013098469916741309485593851152813601089052642561587602116365826150379647672998800879744268735109328266864507658685785014971009786490934122067775921817053236717593995167003813206466778312722133541327511544443823764719918272580795874203482036599654793256858791368741147634547051168899907400063283930375717788888391063353469672652218333691911397780955191076925308124961164656741652890091744353498602723463013140151977389273409435195403234237153713237130748019379994354287603143620429844867407500913081503871343911160707225837363755159617771679230986687342181457202158867662942239763394542848416895161637815942578158044378925963336838080496109608253869876657700087886502847380748461981481360404993007953933218557585457379383765295261811483469088225297314497729595993187510669763880729757726024120045776671423843127160298090386618499942199227014033076508831736093221184795713082936964637540953799698800489764951967022593143022987485747087664777100570847580289141639279392749736633917683270789259460721016489952529989797582423154809364670474496411405943111588709392545336580675953078106812559966833156980122807210302761161241102952994080624893816618775598777333097620766601562234213674897762748200563269248565429709483779857351028368468587786284149222417913212570144707253280934748966442843039184450366000205091575557766152780855622339897394873221983084595783883212037591219690883151746594331282984062597528474417045013792761389480700287484772351529862707099404171428640676150840834505771273481872991960176107874200252856038630857153890380250994033297172870769101335137884714000045938328096070257641848878849600420343048747740170146836482906527865254077638081353927313553488475623135521778856823494812728164252030111156386224220410874093154299111513833261687689603768125821209524948401458041241300697294250481331443180030995640060648514670148833921530559228605736991759776249679872481748815438397670465077385880837486388643593243488828982875966898826067137301467040527227955098322707231897861057470612035149464730240486805494118420028599626441537640898570662447784439142504813559896086343045488795006011190367136504433771253505883408893909022096097978519449874026539373393183187453808771864893865626884732296302567604216465420175730719299296875757074328788441154889869912155918292434824751379727191302697557833078104341179600858417562626881157821779503419668082387303428874345456667280195076633795371653665586528744795519837747215984739111087059760948973231719121381106042415171400640930143912474148960142727414690080861459915525486396387832772489136433349220616334777284462059619032538984579143171526095633639705988002651323853024013109020385067961939038996935623884897783344898468967154726068254076024053107991766531969860389135890189215180207405322031449759797877963809355734112834354332033731769946845246088203159182166495691948540725822982640552978218377476979911498553622117596285554465632022017322222767982754426036940735455210960977322806042271910016435890886901418252501683699581835684139968909954148942707745756401560923772075529130500412115730751182177194252727004670952295189737615808496073930614938438752882037691146001461554717047119590150697342560625438720126117327366198203962503049728346018804666767826915067680205501809030501163817631769389531350047778550992710806431537194707844504433736734508892657263082677083082765796846464094311821118785003426296946153164681789894634063761620629139951347129455225081839930177456273921365399217857226919097967660362439110175272936674403912841999426798462722485460889909589814345581826197718581709324342097520612745434951458561023965418139630395465795135066035124217019451677891912005099189797798276818146051073543869794871056497602616559812867800899963808116585340444774121230626975421124951472991236770829099595378177937167087964039825847488537595660761083591997489319246091387831389228363949192459013198422866204718075884625512380236965355493851925222131707753224740372550634532231707066539564962746798787133972443897690139079761973980249285265925777836741706216765454508340567368764033768296898326103752521034556712948403109399613630198015510273996161514939489663735441040257557771499178144229556270442431980995540130619632523776343488505885456190517603955794187926896487317493641647675305058872884897199026445816528206955613808787732303696153788400754211363346549617108863763849767521262772801036479102207958090169409431950000141165178194041136329719707505427726623248394866388692600505538589792328164447112272212850478061438674718135402167785534567934072317010883451339912927460023284900911199461221065036431428296583111913537141315373425697411882748920388700846051686688933805170800244012824231998027455737637627369492793067590757935963973778066578487479702052838942055028923089489147739797795279505469333659814136963602818887536406430845402279152265431877713711520770690736425945808228069695771434358381453595921919146098151003741927158911570331254628524744717107129677375345336677888634214425147861784414647760570178499547552540467899840358285174042552869323040711436648340121592794013409020115885449852634114743076193543026611427654140650359596589914603156985843792419004203535928099190129613929701036663094777150121020498621946792207619728529933369401335481308506693280751209987607005528705952405051012423740968625129736778949481738322595889789164551794696310687110293953767564529500212448911578390186701016092997543705777186622481677029484747487901603086935193770866442153247879748282108290269709007535871105695222541741713594313289190190257618176458629322981172116893042393941493043230411156775562514010053441970267490243911943436455182971837157518592351296815192470461146553622008505464976077034419965146441336581284153985136616740365479030619342333212499599697666528259451364395457220351569521611010700555945706002750155008571965090422705564624662619232858726408564744202014041500896925745695433725659790006127232371010234856614649191262127505173530618152385870892166406680749439940567126994316583818945349681617111343628379443768977009679417592173612877118622950010076158077661129531246443690708786878790392025881162196502208455015341484019679778372615447469674345492474636577263319651738568486577313781352495253668731753747087715782480123169384972109916588597953262825914939239186107731427922096132620088360682812888570530812264752153710674331562427336319171258054444975654621896691915652060559681030973367432327969053035643230883183141049886497008490217960588259084369344865316344831752568601006127183227552024402065560836806672721287793913938261721747009644918710177170057500664596970828099338570974309491035182173422175990011672087017658034143542877520907747231854916023274309855684383658482312504173255227625000156768256010865487643450865843077282806729093544258831601369089017700478739754370791843506603735996883403960402660749102406767786575288785576295232901740370455224194738570844299507753824127427717069553897518792712514987498831219770420020164119225697397234250081923239670962916188663760223429917986283374954874607740392920246381746807579218529473445273129402430080157484182084538846044722244951217660955307785834046771092287604175316838932807091865118141985272662670718364657813475607411849595624439422360837208307239264669940848835425009040746005964851807189447088513186449044023942246994618911715960899610411951362875412160871926564130514347740918411150824013979200363955906667203645007666751546077592640003740191442162864314710439897598717144741837789974725544030709253505298388106079479182779254467824127513893969073155368338533555714705884653814304923873892902869254302257482623232555597075605054200445567677340792458456506291204134750355982841043019987599562142948679787411486002780224968898810026562045388987899908806581996963432873378639897589842153978504345431311281275797919779993725996881240973725568039179906172096413854490428864627006512664317446950870842193252141808341878748523023314670294270139228031297716589040276436455058394156233152630768640138611675001991906573757547543540878277261325986457938400482389379006940153453246336729595698788196516759203408105974312459707443779383427091880365477905673252505848919879251379334599555983329803283571594736674248543318394517213865661737088845878131732290845944705103125471493525437586979758318892389990004987580203971522435876207414996821198344684160435055921322017278357174839697069317857693346076843190757454283268567098351383514616810854473366597092457638704088821269859499900386983443142868629820033983844705859194452746154176174173140205977153940259958421819993594846378764927069588867027247300867466013915892745764912389187940175467340770182334354602496374680838976007255332936049617509489032628729586179299368324214805739458428362927421985638659371251351265338881754306346336806667883638496185385824095087273380844054577794452602996656847443577142932293725539799282356450593801309267661156271625026694123390634122921262331678013114561660219784251095467950308081714975448007789107413777108393530746814272478049469118507778682466081566920402320710677173308149652046141975266904679683011554659380389576832052606815686656764826088608231351814963450607733792021495775700230060055160148043925695302624444897555800443932433790965401967917147723473000429879024586439496896382239002387358118161639345900287325361836345489411278279132044200315407836484798176926136264171299093332341292699767568353483942242814142532085970082690361664802080459769908927836251920575412876938504007351750343295129904526786444854967027075696148354661278054478647516408658779207389510884595791676454473555360870101286278312511813026097160967220844085180875007701886752348016769615889429066223903275184220306301493853936561942008008737428854223165839133234879914038832010711090943373233334303807945395053154190683063864907415031171187169162698542588409257397882851453341714903873941975056443860432943044622837222250930788588012056172376970763110784172316574127284939228589030063716168850891238518101471678174289912068721252174499411246445076710397629668397216077306611876873763004873154277028172461438546689842985949982574419445308380103437877349230019479063674085791879503340831016890101542511407514879345903427660397030376624867835983483162941460115274646353695633564682095007475057486821580390035119719490416959728826172273823666700583147853531986851267111755324430784145650534193361938885535205517924239310698160867451999901041725062153102994098227274219364679832185739728333125542647271348198150798517997571629943605767969025683245642892345087587956435327372199734850056036527888590349496395584278717593522074594722341399357083001854447584396315518695849166538011901169593143318743273599189384132814437609177653643622405668403819160921584554521478585354806132988239515490962498885318420605056792097424880093411737516996481267717009806356743562993224725534715122247026124021041116354216390968969560117618044184014576405914765495943440295495695786498450996793900918865519193150908527861755096384510984952712604355914924590986751403352204000475811019417520660948048962273489209360553184406182400578192486742393598038798009357023480220453836727044118367758672568415982755048705685964519540717845787621248730701028927890325679249905832140592722063566829541506667246066409010880391993173046305731779579814903786257992215611589788535990289600223985074327223607371917828500895785218883277019755960903801347697070635321195151733780136879804652919623601332743773761783131544014100526109835249032812793251517421607406656516768377499798294270966756910527732923609445484840781699267508744662948001572790752958719611552212102250108786773242842940018119830906790208356719543299808370705494205665967758249832084746398582214443995743143990693851458796838827324637524960777334795490493996042549346064781581962057440117730636745500974103142812145103873828045722816271256140680802560869200050651626080017146035853020841382004855972665687976529746068273441508181700500264647552071198351698861381398080707517568594286829019249166532974378039342443359311138855719197782895156211190851714961317952730415387522111585501445745166067157949952650164809947307728327071323196950869322549822102902269328788043861096702142377493299630386689118417167561186441441126761166797680966294823865053179199468147313157226076680346067450662040674566557110614940339143797472815649715833409716394927570858004730043759324160150871237327914728946381678232107219837949137868588425776702624663886612863726934406662762224643388916478077616762244569591397076962131576521244482967702413475278879145525343873909824637970966859219055630833457397334023655331358646022155576415696277654793364437479609847058455592763092739704371549082146062594821392708952828070196187258317353591433425756472592920326199353382822672590477347422446324902807300567970612252925905392907341071354063638940314451506398105520837405202909442568498056754844794051298300845825262171736167577176374975158328520235966097940544181972671999761971303519699240048135040534594674261378239814856211910480385288973236119183389990066652405000821263215391814123189838588961725772181174199198057418185144989240910269568741071722127692985545879373372415595411044260938292048649644971260054094420025265336431204541840267247033713574961651319884050896029067420933526930172648645087698148438409741274939293153101345673733401473687266708338982430079000971230931575968840307544350985411521089547357504860425250622515172517453578019631972131357646473773318114508414065114692208771031780779637988580791724165443689221681089887657793456202398355273695641571541809088133398805368586384647711368709361639169130187179611269129282815883530455300961266694069503007506269976496371250019393826598647265768613574848790484761829252431742454777865761260790723015176947617860552837788021264575253415261397906062402875493366574236782912116783231447880619402374094758973925629818674325941491896540145492821826521877574804376261691023420198571912242902399905833515584576669629469449358673775436986234602565266442528790753594675026626261485367247527189251641063427629470963869974962376059842374400477385268074456053678677805874974565251031686273390733541176808888952162514373139328590974856966091258902017952258174858940446396171508134908293628979267778615989907462790463817900699676321490067184536219032453072154244019308055615447965580591161239422583573747195028029255869628332579713199505972766421125478920495995191271088674325523108416306684976040453415064265143962146981474693801433051174707843308230557476027891923551539532852879337755789614526029908068869647460959428058517239272390360814050941761511257353535291623642424104816389626938418152759230288662106120799720555761817534098713581578806151010034334106774584364999165337019551358450140016516659322714138359624414397842409629917879242373435396245667958240229003051345520886060912004994432390484374385979511460247931172060203030053206530048746652196803221329487303254109312071544373347798819381481086213783808092728509441276156089934684211765635590085572526694164025113528693706692348980142636144973425743532996039392494686689195810592769480058470459809453875201463948968971245645050370251119152958553214090354399206022919301979608275839244931653988667034414220909314903418687714122909100488067540630354018051545568275059886809483871623869849788129106212048926043474738061028668558170987161827582685167022250662107571036609541901984434367663051688906728118219147812502782026807982868567823819162098149815606077910133826767900205622598814996721695351779489008763811844748953056905872064648822274986561088995790006980533652510880632777968879151006406623272313043657917442223174579581784037194716909775139369661751769612823914589122601288257267610267019501944998033471068304276829207359028772712850132546100100140063910305737202358878873997642212652194913589696662656728463958901748229765500748724061714505803706975918522747239908053054716751843784985701703916240829405888046074663719300675836119820018741657411103988994629936135039892474273538770507421323595120144247297892647942920792609614521680919208305902262072344702297644373812707910109778566910486042580882477613586020641512324907802039446417829147169928833257739269803157167122252460922205283266502025375527503333646997953190165252782859659403066663875571018468740475666702717227408841346997494370049901219691735925980595094682425327907650298438993460008910016231875663565493864900807423614673220788450605153894015632794287103585962822805061809572197037299372459283215842185118525303152489355221815485785288868588927960875368775343066348094804774392960716892460226645576734291681431959895216692903107531963908854144077051024960769298899873792858408841656423960160906842743306511216049022471286768353779681258224183764688797897855352639625834488182031810807360350965844560493637752670493004924569701610043120065156086750153117942924587102293386780772833334752294039803681853799882474597571620811714029203093478447374441653684485557382974647576056016323258342341936483018668893726542535976984437765546554429166394936676921643516279317321341895954185064373979717630400988801909210811236522182152492362937265585466384208010564967660160071910812803472467167836605971883415883949681623684049354128622535082307920110943072977898225801288159264109814651005744993534188169005371376858824609486749336058036507796639127160608400895514949702581635777964424285988866891607973139105883305991924055264739736626248075004887716338281629519128283520006896507876380777135987788204497430158854736247309612292410504549149591927217185170306828440236745871932268363385409335038414619170158267028037254902992296437925092609479023905266712111201662126268495480465920484733379210236214578076169278907942257857977046901319235908983702002481955278601967769595040022008998956053893764057614207963426648635506810827512575110104324884315494650959497880104417913623671812454963365981051446513782200457060836515647463972341945320514354395682162863190806360997509621649905112774614904615367182649899991067142397614736738814188737905313091224186185180844070639076869707504742095972841297428614528024260384908208167714072649514376522353857995824331732620947551588089689674160565547136620448035411724828054893954068005140068796891901103490531576540889419231314262769050830870838644962401575060203672063945769671369477806728810709876578501442566201916207731897980777984991676194915686224405683219647275589513630465029504526143310544607580653262202060388247847528198975121603602071231427804905738891641720328709364047792984728732617190168789355058923587318975405750002974864661529224567633486389121185470143562580285342355415990625570337149911066569638443300772396215209877691910227717889399813405386033344762224666808901096082321252748868064116078370694559343343544329894507901572604634480965154843897881754386621194316661906912205423096542906017874724877284816477318565414260646073564297153479625290038799681725775280788570350148981425307083158871100823185026061392242343452575655891601642740594265227187461111138718954167434027707551654108383680615487432941965081531058957178929695689784772046990650481666425883505754975234520364876223088958511452890727934865902004317511924168120462403915965101996488799918868081427292374246725560412629335578895777720035281933745462546785202408396910032762038721413521380185197676971273284890331424014640850179037171659963623477863410851498873477031092604246407283853528235046848188737453631634420301890819675542451718801890059819040975571122205852059911626122812610215756665208039790773245310826496331328197335134426858314654694005732515488218265260866157166131572895263749075652484595796057415592045652671183215176452184053099435190811556380231591479684525018580246467308065083276187364126503384638775649662964324390174104161850003027122117062809794741625354832417474016466249409144126796113918709034197342088723564832234912727936309585749849429179931304823065435891142577026785188048840113016367456186862062931139941188565661600481897310864339313669891143841457023168914703336862256597868125767138956287845310226846804129268361089029143208804711293186580261234860936897210533713396837604884081602871307433040464559850173920883409776638880298052887944077549940667225170759377999230414885163998938283456065398027422891994799282596247676013943434454762572531782336569963935571923840150220272753561868870104820666769036885238913870299656224070294922204843204918627552353593377358931885533415174332812206152955262515706738586929767582039630048871222616861150811850217283635306762842902269555522627566483346595609391483385968447860766431695077642731754986822400393089172912742833768922046109950175730033579391092658885351117719948342873077047032692037649229617740534268759292539189710236471988942616192303917134122733472970854368511185197286804208051842696566975096097580712128188702021925721730791912683486135784331972710206057788254992383800381995757148802360313712339056373386979317510686050781256131657898494545695268956175527318222677775914100691762594274225365249625283804220354128836106693325580077249563982038587024370133176057928256226069277869961800023366146941282816430057383601485351614708822318722331184929537348841127979736852934887011328127151351673180531036067219465051496392859995264339507177569502834461826659621686594097676633142087746908067437129392291825904420682320509255667315988370623979359729927752354522750956517253114728856530769471557572115131843184902951764839237915236518981597340422949032028868631079074808699322818951387736581588694738922446684306736836654706930209339133797243774365885179020717102412207340519790935702532444128294129540376164781652483435025366196383658400276780015247335117802156499179977970056497351326693960941087064927505345247421577384745218888332811307231120628439236197785161887542968397691459871281519226467934610465550149417766682630680551287238795915055350097706663207099205361273504624895209127181805193565763144651758628516572622937922733166252445823353692672941859247977205505787233130556675393208918255140512869909426971204759464206644434945494090223699465533633358722961612185008107593724338410512605456234902367815095881167915510028086421803543995142322804613878462095439496391167146105701874684339943671699168699037007028547675548555107231862982932532359912612009594137283955374502222647059492868262496491822739643934080635486495283785627689805641242476937596784689491184545526153546384890998594261256316127669436284566773252896674943499719785393727150855707367552324521823262763294787560251415411796489850492020810179979198218108094341349102972778590152527645091609932288580197274844096460446122789338514849250987948756289640080738845748366902109221380629229735147216710967951712470055843594949031281575967788617940579216929562283717844506749106913899430341678660657138519853126596404844954815893584577014112400746785677139157779114361456897414522923173562643168511406063177867095018142564420583363512533186803656459928723598001867701409874066759202646108311824124005564010154297058381222985126565671269810824234185927805536166418467461808725367993606587413048204677355425613154618824822747383089973114975360035358029307002405152356936238018872182364170341045681773143789056860573270833513060666566830554822453732281012910084845135367257029260374319495465786919690467344626512451796000173766333489865477647200277771850622431675842594913751001331911648688181960567404447251521839024902846724472548954709058556958161941607689409100490617120142601772739990986949733936587784352699711154348015406114388087731557841032815828633088992800691054894068001585147765626841441519514020126169403766621047708701593734108520044357089198134229340878918779899930643970549819526771214393918419138385786995197399369433697246749960021432656854548770118266527227453949660848604403837027744445685185364370590954004831454862401866895446055963546100277186310805810642883020748093082361503000278467760555603991071966122253652769011322092825063323517918167434303255146670075945622789713748264786751259597394827126914180991463897503045647662796428270880359778163568008611881054617636242207857372300794289954056811621474673669532238524229358824268848410824257977201785207328614964036609305302649008453272304834452879629940892450828170487596782929912607593645459611912771412170486328004785253788471078850326630613853734442786286199901051093845364190879593394495755410206463646893661701823684538286355410389531439044341927708587390883890325058597228780683175434390268807405166446398475966670105010776491880295627360187805045165490964502743768794401938624456846823516419898599285938314387006293549226632301554994180661115259429386725559772920669094953081831649397903115356677812189166056044948124505735205506648816736941437694093213359652742740087929823152586635165731070276006345101912162430882820283889894036725163209793903071229851048111773461254306946337457818111530269009617175159089698313204322088425413758352948456978133199765944006639398281477901858004556188212158940079345090344661091105954719145138198375813483238279370636243095580075311219941677176383182381125555570690135816398634308654644204857650399799048557630136605297034922776036309765554208044887356014023772217674921871358858313728759403686443450471079477047856615858450543795385338003088298795340768652254778999673746437666771465810355048429112054701368359526109919239061442334655088758240036783825380852785588825369033569454619029534168620136710684059360662506659070651455511075357103043770341129722776198915694905412691105535664538795554457186615419041770362501304257921339490071484728617874111737935668070616553883990400562400777723476917964700700656006183799846103191218830700421097213621852890178217942408232705980853534733560355771854602916629762325800593804204963955345122801052102690270930460007347908181323692033785762622313359715535648055934195673492257397596858373787208357993074501571648715781422826586672230102036386280307290032847478127728106485440970908261571980793367800730358749401820182226355528191942294113586015909450982665303462653067935096274763487615243846512248081802379507448094732834707471809404648688601378097395837758990333595002315058151049424379134684888717371550681175456568261429171860103930575661732721791224028934374038797539880211183618204395602863831708856133042028658417679956209365946293157893947755801839894794251415102368906124377725255111644488752545961508932302808776387888992249085604385636018414431890687437159540664570936701334377746991339864272106336500305130432889338990422316898879693550546917753523651996093983440866093270910860097087763105348685207328971751369408175012911920864133679810127781320779920389596469455870807162705645091858173831983909457256363198399072001121592875633360215571724083147068180318787496226051794021237085567100186031618366167616872693883431150425960970787307156897157037718154573689340589216294629949679774920278380083204672520382417803275562099643160059104509297316354156325143513427245158358448149897005565325403691626875429226021341246839278461918263625599407190608004349415076777959432014449552877048547621084078828984083750380619239055902134528595173857954414921470567593184597483256169302537809523056126937739540920457988017995043064815726007745452156451365170217272294233826583403823618693526984454820124406781517472035151484353900944140331620444593346089516248220270175752825393905526395362044953107783279239930543058761810470482273053045741971596468994479398296793790593848848680963702471007048117444268998659597010649085663896554179352230843709797276940825070290436701022086071738558772826108231028703865338510637837255138173430876922460879680919760108419992032399477563121923437812941111600607815349408917912462553406253207858606232788288203359922887290730676752442155379584903392540154345219541376101714593736264205728319018904925766474985775596682070250384829414462664550537932717301697533984134812237013856695598525473460780807985690836340381925184604302695993690500350809210160807912673568827971748013500080776620850821137075434257970952704047868802610057839121405696900425686850035227481718015480850033930104833402650640523671713740104927826964054812922598392581443666509824797981992958894019918337662561186851158912413230190874240417903450611710198522433367903678792372528334392404074062311713795209831735474643644341011737324769050603427557467873145098956052463510812093164966213272905674794514027726772049986345308015311556516683513536428640981458095900900996474083492321018253911388351933696626914122808719577585343568897825370892832988257120365794746383304771954537030927591426410096968525306504656093582460395502221116869945386563161383125461629814240476824655097526965741799504883149287967542262623198567621752380117616989977902845725472576890774773417014922343586457721407264973790195607379492946557071109173184915106024610167743072032271862920576853993242076853094268425977595839379195475716634165782396691676878123360993596121326128662307461928204049863281324704029365421718760720427524377506266246141478556271852988798297764697591647387982009275575255551084500081956905645455866969091893993538853204356636191496786293017455897855163097266655380820687223207716228284284765276155373612210609043207378153094051969609988421790549480060335185572322166106607607136038223182696060434413561255860009599602216184126125040370427060102239821085374992877722315468378007825742557954462617002065770084944228782696611858949649130511147305819565493476002081661391302411631165542111631009110339592677611510426424229854166425831801982847797236167062852468390051540813499474942616304728662504900078287316382179887171418328488675160746164577206698735643653732185490551361661952438279236797446955551494222384727562250341246523071596804957363055094803780467083086031056120860053893892341674178861033343741243554045704332839633743055921037263268443224413357296680551885596863676968211876226232812772020752123742678283566689660763011638304967016044776115010235595268900031873782246311045082831258622661992368668245995040396516897240343044079186904369742369933180143385026279181737301934661469849708665926328805762058421028207777359745394585693124881194590487867490253480037148363554607818491997764814196404493929076950064065635739644834850724857840045624432407581365471172247898033700553002698515732739228031754700253847800758112478226327943865084858125248830900875894167142488058512126502156291156506664644142647914624211693723431879300096127578969650936119151711260603027348550924297642235588788888762264437530938566835600189362419106903121562269327082006246844220329435984502284050853561713979347382974741689138100557597135072851765890894982118495434860625772879718835340290487417901412339386327700464509797844895342375380085334150025065115107690415423910734389558948642294674802706310129786497561031308332903951219581203463481713887151267509331450276611525788850862366063061463680971475919931883040884712668528285424885091511575449134413716960403864513921276252251599010219420181640922631617383731500501924378693940408807671746736003181134873561236698685867569121199143157928262513019678964826125683905441939149891298618733657119118969129442000369436221675867389878239286417441163787545807913307077590895538159504993595193676951282212889873789337845554394397524716921868943910731691601547263305060883799970852500242718530852835662861471414601479732019461926364671096040139883213006432327097505246261994538741688649321451815309407034384473544577756624342833740066438656354340615755883236381176866054557968279887610112826543287006639521965254762411161112400108702118077781766284722145232662656100315336571644487283264894227939546688272366524864741205868900622539636836294787175715547598384821422502724083134330213991737200618856690814409899062352539966182132830758157759229068337394826934616810962327593101020323812560039823334714300447139700247444081551647865154958334435453612991981386702804370789545490927385163913343263144215550830254412452091947159659041753521582236773155516090450742607110040844555813483059864165287005125064644373574529842619795709872921813661036527886603207856710815559524696117043871459210383800310873580847725704188469566352366636964578783929461945803115515845410189215138748137467490776053616125656128211132619337752504227029202123852965543801228343512015750565571445155901342430378421580587418241522894425905988561576446911027389534545697735302528323682042297914519807817201305255593065830869376364326566695075707698443766774752178203868111957347656060932782964780533006897088200684474381479208232619307539126697923281164801431294443939680682797665487241157547357573585730395382073862114103457602307181536733666698919437108928003706538079335058946413548393285183084395070935870729260088638147299223705036271905054764184866990854057586727942267470463209158447817972075677650348837977700211023339969192027080096548535065985631162787085996576084273071253100301806420919912977737460547529675623070145730419229158298730321186935720907770344890379203271188056843408573255133870321914494149550696162840520899382192032137288652261974666004172646924792893878980125867084053062859913287088765691595912474433802844764468395017503856312898193505736560456192375077049981676777411649947416223900495245688056664311047229036410316290640515651859322332408183609287124176599342347815352201681664746057442144477060267886393837713490457993116864474071390430949029929367875403906351870396302609261111480485987618848461828232337294350850738618250774200882596606738058893330517866459115195084606372927863221835804469633986893825518068030852089329187608935872390384449665899535161201472878615483283516640790025808957104881586728472472628199645980594441226005445447793713034587553174063564103667366785009330472296810152165990504752428102899908965880577923252400717779300986416806985249668236201626448369535355758142728112334025105831891188845120991050469040209113419495371062610426935323213905149553081413637049313231353273537582754285041595903460210234851011599462570755083081327931214639473882082942078119787609673722452301171550045656334607417591299359647470353794665509159850733150581834356237002912203767676916706156559121384565132203461079843154977822554210020552983374319824648836411786343039405669421037543975869091997395318448157771943935739021645806372899520588299162655082196071003147683095497619533797898288296002678724706142503402974888014439240919515032833468686367637799680901015868381514127784299341828691706359161567255475921794537814036254677336852048042715614267687419322040494074069822676920390795057814453102864815093078098307762202775253732772248811957649525974962758891296544417682975788873524779031999640154261260733614466486611318939168569336099065639657846522632675129407749965408859285094269337802277060844926781031008298717283685625416171852498862817858567279644203242600126658718298000828089680820876271376400017075387160444656770233950449444035709728230284589044494468082460956573903822463511878913854308108327686469749034542512644069943208368852520896686901546046188012238652320063175761568469184303344369738823318494749742758629086260874069567737144534427821463919301614824132172035301599100664927213459222221227055227800415863151024890866117783247731447616506141552285003022261280978647143975724762052434120484411672162040091599715976054533953227407548198358916996004628251100252414733274635074424744369979928250484034690363137747905424299816814350080254607488411892867190210314899027561856370854357438865883239483000343735437791334107189708249960317636960049651360816372880898369161824721894206515566070981307571921264014793682201022848351782142593898814306762399009293207152457756593170256934865551871429475956272188802853627806209063105257001434600112944749225686112799894980758476256573618706094458299861813114167644042393210411319242640663833226459693259070749617243162235945864019473816589633631641784266253092598302797028894445873612587271757663499858602069476216194141936013009718528463407283287937101871514522003283332385635482984844515182576122609396475570185114653826616627911615889666058762158785835660775053480969612323902926157159802201615919245250716998682349544765807335467475686554888275966785234889608697920454729769134743840456267176428246861823377401879477556794998584871929985170935476553055273188879326388960127196482931472761415839277479388888319426391853139079451190814678725033532207677069416155746824098560294020732337714120646834054754741153722616801329655865744499622889489472762999608111548678994919822393424856644535448355452024366242804245264443341623078407331345724118239546431427231054533305520055283199876834639313786397694401457107764780402021862790088183891634791669320751583425379201033366892677061896477257322698965235000526955745663930766738023977111374283539934855563437374770793317097900367731463391515871162069161603006819818993502152594429831267114717974448748930308609323830327872418898569442467979476532927844034345537626259529214330959227032712350829670792080736909990915436533198732957630858456216630901708223961552721776430358514206750526772714643176013124834190189459184803911883803717402983037968612637660400726118784557064750369582818622302105820360721546182949455579336875097420970138912643367296078341952715307731715521077882028759089657749449639942783389059777809681177461638097547714460487530445065589050662251261625848094036174709992510659738207883002414831334956801051536053720547105337711391322575949288941616236302831217434934735393329659099547367152819923502069355557734214032387718026145161224742174502097529857388441434394699157677368283137846254174578535416664572884029205657059112472060053219489470790009527851694464110976210578350985096228438430693221701297937471233410903982216815748017061627159743010374395075010333481432033245733002668540384894685443239307121389620629167091150424698821670639587297487308675234463877015964386715486628480108099640017347757779282841934419954968935868453865141573946252689705769723338155336935123413907133266224644854511614693853322389225892163636744648006859176765504532868441133626124958844137676783961422447450493946832193365122374281857402832247264227385487486499644373317094352360880597577740087153872593072970898795742443160496484843729429602007370337397893710984523324131110120954652647587008648369041958387643551054047462180132751644755348887786202005737847665187434426022306310687364817286221678862246806291765192296569325628167557910275536217903592875490996978532847751095036462287843175165660615351915884232318664111610575943931418521173965729538424870836829257882536000897618550317062380059707911794957148155561989888763118876133606721573549155186754759537687959542435689362598941321630300860628928218260442530952896702617805570391333429014128463230620103494299349691275977552850797919728176656805180582415998345081152008373679280517723816554512250316051771990730419100108976451487214833281384167396948613630474892988918439325907979448221432835121817794029269801203043363469191519645920713060828643630606877721258463575652328611601597603393890883389569210173177520325526609160178745139081818125820019853998334183062355431432439322915806463437081605225061936532148025626836310694771843559041380054632310288535246256302973066940129923397584655453144602654804511483905427019609929536592284549053708785940541174223276173210694087459372269374015650265294430530430486968448943879637782546982607833897764921083166440813703454216506343142418700029536307376170035481205677447504341734150265369261575905702495251066741714027729458320464013677203282453478199050664489858141067693446499583001027517220714266015729113327569819732650634587959160758023858329628492224089347335762432294967343623029232242081095002952926952821539613431618730424101647981024961559063656427758628161835231342633986555632091580051077496789911993575213855411974361813402023233524490123427392754853741812801035516594470490101112697876221403800118665587546213283600002759523017724096560497412471882535435504610529833015494291189536190674051772172531633833858208546052046566878761364701669525912520180949235673005884313435544517929682909961321935091216812100736596518672730892290805128493620232205274241852076180227123028971858749351908541661968933253804900717500328804757838367097451596253724195989085834046184150909066162608863192104113992306151576389214785232330603850097422532912582756616225498860019758399461326906350515758542727548908306107021192115749360801031713506777851857457691963111830683887214338667528410154359292586550364014128813713071389836113918436238155599738593708309271209651133520722869125696058861397400200492039920592358714679964470480347825090290310439573875869674827462320408269488341593180853720751362120018209475762908379887538467932774370921272659436587598558071119143391564881145823722373033851748616410385638301112194872551149951072590276903234220935557408388899636001760624331060177858421424482795429781863654493030371546322718875428434702827921979100680713831625292015028792379635170684412564264362264020505363005468253231208115801907356979138440586131607390934665935693760371215942941331415272231107713287706610077419476618842015143248843153688034141894195796438620474418858701133403383705558058543194846600674771830849303659888072774671393481350680484372085285756224006454522150634206555163865291708288902389654726378857862670668972756277981091909829233899829367592915989133934789489225292773755984509947329165821215590392634293967970037002113789901332321430066735572927947298108836018457669757245429743274464169411513275855595741882228147958146580708809919195903515650316593595236979325859821405265598090519494751153213864652617581206765445404417946258547746097233582069285992640488431986070024466338126020047278233757483085968569671225629372042906316812734280459158466579034758699678952899432447525225174817436830641584831759725766636280040584070727349692029993848688913771087559233585446040285000555773074521440835935228233493575640155282278355104049200568164605360674314190299342716003315162053769879456890376274988760808192712143881879011468092479762009667358327036235992920742831150965556880539880414157909364747355955088905164688073183482693808218330826467277624341131175807284490636872417927342321469177375834920286739473162176145471433158777571393628214293340908168039815103241240733101181276446175313696820886149700977192040388867568880982807077042252753810844958963297282509725431783768780264085671116045169597103125669448471632043849325408104290955049279107220586889050494535757539553912871911446348007016090904361241291908864720146243337851703322122920638027124080743453780140283265130057641324925358346238194196324064144529458735707196699165583862956469026990032131609935781735234931111148581661080456990644066761837773563996102220827707823108907269215963328425721822464953956687187178996647730384707256176094613794547122165205088481739864246009065867855419683136740587864066144443502260184108899671612314052168783678810556489562443628561306712897433886936809926842898658175152626668559890980852196742118192313937160142527749736713242964064243015413978700095595809047021920936933543804151170017272110542662264270027923441360238498182284397465284400870034896212856171607048580386596601565970454805466213900559911236223203751568973081975711259255798725252976571834722811125812476699430891528797934681363396085766248665972258191545437359722628509936190375148246396663810939588907252640598961004727269407419499057844275763265432965489570960962685353488572314004960155829699733959239451273744867464391434579159403465453578709263545383345007657502993260315477439921881463803794875989333806967542289156318032827815469839635491867687808733387859927855022519080928798534998522997367390921107920056313720132668826696786636037373449576422741219428456399030676883890806411684160453078493663394407464913586648111473422081562442703520591152851788512156913299168326204708626253590954564915669207773140864609078164021622511312886205225826057131755566454488336261826719374735406344028316497673777220748843290830769030700872285706242896356325160073446172022909018567667292837945368367883017411611146695027119801598196406479749836922528191030551522053554531166970190164724639295828828936968381413676592011915481320075902602501980054520505486141859947980212091419038061315364349348985810663614965761843022782309454311958452238954969447604035780556916282735551002656084506428938528049938448617802163692009279058714901493734464554966120124699989738429365368584973871481894431593118467178989953615224931464237636683533764971455098786581201114804500005297749572034165536948050713571208113844872161027220229923057397297600865392065173118173253272753121087081162277418677165370791544588198478750019607668053230858396422883733342795009600711941737374145270029193378701452489567734805621078624743966795202625565231778168538003587297661872366383819173522727838367617222650180497871802454085120362528278210034075017281346851270426339141938683771689013261897602657062274788836894220314256164083930633232616314011508158126136146829806244134403254209624657358732293498721826155382503234331020343812094603680333862353351730829106539977558807088796869426949949205945577426363193929467765833824010334032779593371379902282269149085269020810177681205553388525774784090640450497442896350125347116576285724955059396086648551965136836029293401475598287176941319321456196395081050205878161466194207754092123031780075876554773769769961099266528304376715391934769804947341800828633032790812868029225008906760264488416684685264110511082962157565121284915369417403152041775489730979856820972054592027545745490985518950916202742198370214828972422662836663820028474264835333056856089151344988648900605832258785417161173340219124918082822692628498674673064633276186313283268111186674942101837548755228479254651172876746646871452392869161399993800382589565915397023882454564249206436206411745154180633371613132982538883761534354127686720826960641585573583167584931661952483924012190615280016166214436450059863256050699127671191542947588765224010815999984140663304974267594398205381636340407843509974429757096745520672514929002285376421444060488279625417948705758225618785020562739776254676264717834517317788945613242424383083458351220670238016617135469590437760259173374542724654433338941068087790392732045726939000120939505273483823857156682471904850389812694853438052320825536982524969519693419148334329513270224881697617652787016733138787253157601532747181210232236862476221624654766321225622311098566286503542017680141557517569749144234728134970956326070079079027539541445540424469109227141559628222028678599866460395683437776831432425442302932890249535698105285337829565622488078084402355199004496040382221494844365915336659438579306788278655358641890936531003062083979932906496749636212610486876783093020244007294060236686103828326004979214680920370404366950583481565113647695537346550300945074488841491392663028262320523006964033492996140970897917827712819004856740987155539684983272667528394380481727976004108027591469971872629052324919555951005838594175210493609375013744419559217363323997127463092481027627777888365831519456551402603165788510452544829111221746661614240442157414346006165099088866873219087433878417127525996742796409008105397321006257847714346592326213990196152816984162800037364646067312316533534585520424966172692492822110111918502404801964573182009534630300400856615515145360978979549133549806382553531052910772915479878307333459632863291727299892360902363983159341600687182146606213606036046716955208132531347634845203339806643994746471614388334914709658578598944455371948950959190879632320687499890984114029654268882341700941006142535754191856638335963801712048563829416996357721514612978264735188882252569796052797753563647951530465762333102530627052883666167360013508501186883689435362316984459274124706087208782100898644039319418467637290383574147210944316718074474392157718768507157677305866192811823004967193030849151390514348034227333470251925456074458295446104061452165358280193739299145299839481102362301878913323011256277383337076631116973957992004099651094142846924909543646089414107113527887502483701184034869660530632622636872561172593637519456688296652869214221045142778344785462899594116179995857269076409224518919886743672725441624347489828507599114051311623738118669821098375146097394948750981341922814948922680503073394092670244051378178987954085068270252136511920034382167292941090307675980873997481649347931229964303598599072272623642781864272292306253453763366992901232460886926284323482121354627094339815853119763039875558764700193093315227202919454422585998754041272135860601886817514823860230396054800590576308768995064281498100153536884934222750900540771275547966515907247096010503206422840366391017439702483735754464816103621974531886306203821405761208214657599907491964769087831869567801006402824263827688576578819775055749694704224318041711632175176837827328559963544945267628856519752140140744517652403585322685233018082324715754882804572257194115964375120362890174184069307741987875226469837027528672460937475943484208291375551612508701624916497974242099629196554642651686588756103786593013357537216050147122736221747802471099848903139827493300301361082155301081190993657728010511961856078813470767839647564275120229334963649557022530279267866552538635986157082882333068202163286738124867954088718544250877242908476651470719375585212368257976351437115489805477570853342341263685524935653739597614866827572296369630558293908291515080178359819869607368391647798765556306385106438194908292281952644743289621488723307919573714585823884111506064298898467837662154934325612597992034306352911023092595438880750858752604297864199123239393041856354208792976481588034880961630426891664646704757727112208714835318190175550841038926962925077245856947751842712852063647983706498559842130797858419797008109585968950264613597658451491149440964840328670025910158289311524001835911407012315259001843153554370502513008492661862450045455280948947498785911173751380339410415943847259987797170493571236814312098681033538013393902392480808929978706094921079891617848119319450963687853445924923034033946740413419340180769461077624142920241765083774387031268145989967740848447635695382529103279567259922155957481779182766779426323702869450606280929262343397451180291605400675690048564351804746293568277366901870861438261970457024199038214430155032493794064127369817543975825565991061243253618373009441741335388297674828121162602076924102898937129518998578095891660315332513232144828127142997853051381735435481200660180611185826178409464698405144141243253395116463147172971272605254357907658033168063833479665638839630387098500144803591705017320180347924932784103638113265361975801721822232096379388691931350172831673256142928403282525689361921042940529752993855694584104776427585200896618302918407073080933236380734603776066538827899395629164939310992619187734150757881827658902663130539353700997987943150186358610617044809474922175350747109549475779939895692631587893876390578226811723686351698712866800477830544479863372532760921982647794608706876541504097498579794516339340759011290199545626504289013741899018742681623787086958031503867857201107422342239084262215339869942132618599349812254879624768650027655791961885675854986586067771551319238977677394866863751971072979591773476376574764035350286437585844827423544531739311352820477872261592982545671835099607398863667515011343424590647693150321263742131237281919384140885757213236875807426327430559249728543772520566221312343294638324895651695649242315872251813775128014274528933514858005838539267877046795925315167501374333371257398142470818711723694711742546457749394192057686064310312512606050503233293474231308325881072028784544122124893609718861140492533625896311370238100141009475044156613734810976990735653656842626140071990043338785319152826194718830127862682250890150614515037222429405764212741917364841969112221241019747114953887415494416733801500683318198780592582869078919807428289632644464764245551335264290915155526416382505272172177807437730162340771453542163837083249670859077940166329077296815514182740356531174867261825542874058505287127439042334082953432057841327429377872693544310920598829455146864084478341046968446970016054662081768195254622224475419247040182509917160751768865557552859496701787922704355489017668817219796047985569861713125050125807427694296323850587161397694298614830187008235740079435991773795704164563580634088974800749205043236379295054689094485016340776013941682428660785021282923092815930968541567625250504750384847173015245824936077559548969367931319495529901601061477306169004615202623712375994224189565667105947746431266921249407294280192516843762654857637322635924255363194267415340465774765646290729832226173029209299658160538718610998361666927237148798540370458650193124692130561091934740599714433495121130930114885917729409190930132606759775540891790390798194114652291581064764745531613538808825443615791214807840436280093956800010387312099942712743578411756085021308074870396179231590787207549992890751347645645699762674202898531430263794015951766503766230778669579414915305938421114271304320642286975456934648563227996357667935907066211678014484013246431655920614895705416016820353206991715292522357617291280701563320897395166962541859131903159199633255478482204340879605763657051801799151994039380934315346183955095041309720521248769545465215750266791564127442242669431913510212089689450324877039822752737642057277006893980365897687763803392425665528151561482273850113988591068338299478822975149602553383184323431228233212713554546713756230784682499926905971218348970387845887216467680997460300440219722296982687457161502436352615300266141145102310845150189415532959563385732863473348646114826588358299884209129803470639815074782020177649588652551994627391608499966799177637522540149730179022251727640294072252605166862804760592840129468314749429115544918684675767460657763226783247137067201443366306548683352412651555709314949244664487027025184983418490614798575882489384759476750240821602882204041752782452084930520269335812541975169050172083054178841602950117277311579772506824276883901828878341000790161586557386631237866814978943734293245265397606079424636438771969012995849732702311376783761742533246060812324561188486272534756473317884039008471378544007837897874800077879319245840450830671276311306297125757911269981443591256486075911633064276871943929380786932231362211311858386608018087085544893326391765540416101476005969906970421399738439959682591221215071551448042590868844182732770746025149522638507807311855890788933126416183103762806938837393063099519290556285914949846505889526678907661944307115453340392947945412926240607859332625373478087965780638411720442239119320048108850447692438545338116099290360821651208514272055038787031947093722388833070720109921011508188409550836816228561643390935527407124910230456592698406915025009568922753000813152142776818571707313059990937502074016553010482171302025035075615664908519222354767346554424238127325051667406394020744276429200422150969813205893651110207220743781962931795257474345112214351842560060188737682248572788788517010967809102528112104082577948210757034226532301201321230146619465588104447647898535092782559613369296453808964287904516396696733482589477275233152191872616044913624164848100018104299215431628763083118899182259779206020969058455441102504901202447709946528980058680875983293414806063434985100389314132991068582333465655551777641842559846236749104275136377201702006560074769879174304646515238592509274991118259754909734609896644524974072179790021636479379422742617830603582005155948500831183560709733737234303699614769521874451065720439672689742962925621189696339547651037843237900461304041437224660331771965933441206102790588768657541887788682339976389997339578057192674633247329468399563455105308207801161673382053887288671388473419515820699933253602937831871821711250028410617972923910129297403346080723434630342776796495938677797624133179169143490445785343156271287652846206444969013842192714655145938434490031919329180551361826952477677563501205309221361413675506198488880774318234024220282033095945881241612259976329418524900671714442561670111274384404790278920333840440028347479832965121624355551927110328119876451608335068667690728216108948196708297648361248654951490050788230522514332938031944957621268898342560182316142779364952645348536118529654394352542804938818076865076250471211369225195352148576134019743421265505548122899182168954474196298647696969776911323333829107960673765333460421712966302669457408910271630157349619324223933522696591365701127594302901522761341021644289280732256740360219409302481608297569929658847106628592915404645309294758545360955552933220655407153936833867939282516985338873720788938392801787650746405420812400025880929511061410037970208161814126385542663158578388872013812243400910648931381082096892682854412334473191982125574057784025756674607739480299200662567025364435873386038247955754014696395488666103376174825183529507202210147744931580663576239144241182115389212270828397288374296310121988122382297467893373695774292839499111051080618398375738735593987825378523616829703145915881198232949204225739714173140073549124971719819917959856815468269225178554485621475715520440502596590209329768378714555971785059984904337691116903799280291998442236645487523640973867928915085447695276615440594436906229038384900144789674657418559359414699798948651654382293557903168554408216023612374703263107140911934845816108414850302770038254579785198586222945423321244864464585902287885927938650815152273796001695505216777174421843123324943639810407573803054566438514533973703661238843015439735133901989882844836332658776625508849838856260386527805428359439988823415599475768024818462118565064223823698506884059683936036779248961402697063761875511353440637661660464650248408012382098335051491644455374690925251379262328701269934009512619999700801800228006237996387583684112094297682215062967863783001410737348860457326437404665806391828790159549916049903086856652057344446833634950137826233154093763655305402337022866570925067671234416098857565928090566303662828982276738769544280602862136180299850716884426003967780856191656111040826568804064707692748441261537974813464874336671720575899109110977067421090581877957134947169065523963331939584951279708530314612192632811418673275219936059197173121029730160961674027531152766497449939014099978632083233919968719538613304949394668952745011873899718910859169594406876634238493175204916128755469388537053884203744113185072426749247029001716277398766001072352352135075534934563384587346087761463669897941133417931986818244820056644995708346762085413476801151164885099025061419301326881497336895602601190935051979187838072760537212360668388773983787698363258066980898613331885674924120051204623575041025871158596180908539319976123794255015765755808311116097200476344487460947827966391698471763088692022121296696525399681330229248452160777470741409703850608725726928805269806954663238597990246277785367384173951821841778609301190801893916969310774088126574949454676129840122127269252607143140514547292362306252425094567546709629862210119275939795877596616038010875775839500694535466461300692762186705554487006292378102446902304833932957654960843685827127301956247917797054191765938578018671470248744212742201274638350752055550046600543159125189343576483353041956020574789113979729792753031936682068233864258728430538837877288863375426650547041603287515110396231197341376505450378755433375880417949300781130146163149369752392344569425953312290116922038692018546303258438114499165065839620139908020418430336222879209521497610591278643801421710732795093950026157498463040358428664924585971283602399789798160086919685547347528064468167059023023178520935133002550688360727354499947427591578917100398869790720365772794084122436790681335203548517091874679898532501373300788237637256069925143249514811332275803282184363322517457540197704454307615699517135124403676503423321048948052419309682081501480599677176731539671419265356213043887396271826103352840515142864409970608254510543165687146272206417899826181494191044159354288795527182884441948620812814368703096371631035707702716014036721204061378927248033598326420613447129772413483288644503657665186822178343301415563437071158473285709486591305631957240735798265866821562620332086905343066128760743228383543641475961029447403549315385535045481471799512806174211427850425369825242822888766483612238227246588237125888964591140859704132551990804049531720684295484939004983593420282421141719922779286299614779640289526139086238477085045930143282983614150630730267846726701107641003898182074206020732559183808390254749164733220798146607363521810822774600774624714302838039957574942762825246694977078005909464570158826744261381068323704734241608708521926602286481913391116674415988181314278140091875008334946202305137687792816875418597781399913083030879546206491897863475126768750641698631559431415405093269908626060510297431611245849174911115554753326109268147591459870095608498011426652812937549901419919959517973365024048121217670611628119275477757368700829183097857024709369922831788529317937997766038866575289799329057986351330163810924791682931876122612391318925070994989916858128380102480172918319997147988791838184860905875288762784185766229320863060712080720639651606864065350585959969928777208757570131723158380692199817537473947262038785282930024176612193734814287383748922508027479001219046261158817185061122649060285896295678246681215535135651750106172901960223815401933857954288722924622191031671948567705713244311445024402869750238977115291123828360384699840961637446092071444473022961180399565670030284903369995405363608298972461624514343579375222362864582646300138437290967707297131884501758584763073175500687885428714494439394439423889241252473359247651870747371024885841151385458892015694676067134707239284411823410167054597067328111426968303448797237283737375183357667355561041399487669421296343824693378111272925359716903327655502678349826531252654616778534569231861474633417046791574492859515216631770862971841681439196992324950991107264974254114296259508279565958129126931116256873015275629081848108826759621222534064769969556185260306552298064679527994604562398269777847306534476720332399861840817945341073542913835940255151336901210162471693971717192025949945724177124889330770868779277052697925446367687288433711548042954955841645561877270322163634011526033914391228523924252934518736259439883698270310046791821963224429260799080149253012676866946080450916661213944003112472352824971873756153635208945547656355880021432453847650584702774483378414473083272542411110132045089970718985572219645902145391207266692689842862904732964833406469560124407445024168818663548145763818452018295976763568078990621088229328924100150733660310385529605649347418997364602205107909451746113201375700774574238018465756956211061999990642015856185432675332996206911621755518881106051793495129464836400070809391527209131333218230264616198565575324870864526137058914397988980125698369063209793557527323825881396290160587139861116666430611666652257236592677080228330018386646732588482038557337254552995983870310377620768653075175530826855861594428780704291360644660805158010362188700550865794406174942113994929849340019586382929269922418610708715075038870269091763959292377502045050208806796473065569635768174285338539185139157333128756861670489787357895446754511695495116072705031430065707875697677452793876010514532823324624301623110857311522505726795521528717895771675862637168722706429541370216130295685584922977389107821880935404084733848623393424973732325223166166608671510455154761424907567553057040907987725357722367329429666435668600159678314488099354912422264220125207741689321529185490424189167218077904202263567474851120433700737561191307556149083833683354174265163638660470754453167397942898234259356836501622528999078940495261543769289835331491251580121271625882473201117857788856031375377881518599774538882131720822296594430277707741118468923794282000087277148618621192706351810729521993429025511339854306697424397002219114772657783478744121688575381148096393244516345276213817297851152216180040385564081822367473029652699471086251708073186760057677320928251290595616701226831297832602846316692095412518370867250804309204957887467970418582063691086991430736732134040319359984488844949993422162835717517830769606986395271561035195958905493066968538813754068485145070852527964380565694278115325470914510121872752760716715098742844045865060609147786095181199258125574024025293159031507303825688877573230521312682109151178584785015836863551968797557353550975418428204830209004181443457803850205372788518440725217125717889567618045538656592778437318178118011072059231843078800477140553245718196655113472440065901323335326176836993620616777394669606667180234243886930614140041670028794840956521584744869267712929872583274464961987779754218383786995195888828179417103249321343380587721310376708115746101890479394516231613908142397980377843889523819060881643277766839471290672081033773299735940686625104662547402727092728675997175409619053218853189748094254511146932167076254869846878909678269654465029664521268522761642816686851443895107042973061340309506465171896500337440911955660992964964003506132900492110843440556856660707831129175093231776817317888818221355589045060795389192671147455807232145246560487916519252397164330830172410472397428642750757589196608561211528316015755491303234584006268033387736683458064831275623638880721247733741139807834390234722850213091460137430873923897881019289954205025375077098989244321328640409708256972116995226262176471526427574539893648914220105216932153301273759507684106352467139412736750642668380617387984895012997351579629471021060761855800408566586155996320481399959834670619732668635903858622688274272723384042808741433484016762426999473092308964689920298117518187996839271150860243764714660714706998203573069330357253623130818001088477936049170436282618297914064241952995145389665559752730563747303725433728083197022382049329732357820038456817011441219917970644863208034175512374838730022044153719690893372581473546911283197185088555797766938438346478289228240115756780765876521526232175684219141773070313991346358567070352388764862165737435855755700088414879523742917277778403486895886121984886624331298418931885328327752115336744117440876285295522714059800872015234661772612228909381824791837640095043497077309565712001649528917092484394759803491036936427228930342244123355242787864454012243540104213264128130313696692759162595556287670563054796405838394116442446061525067500371251857845731899582795425910150651161709226070275669967403275075375060519512915252731464341441549481544642393574994739121229615157998641268967261482112744791678489027350999319823282225289380095209194643306054474874126580443761231732635892421409763726115845007347013025892713536724682279052941514547297685352612454599620183944627018689502942294783642193508194563541249912608910118167474490056192328111460621246326438713559203899203357168836299341290611653512222020038313251210042753439668351740242512679139702008573497447167257362307519650933367981487582884552377382946888425566886605250123231910965775069064469844733344451281675948640146741086140685187688636534134097192368555446700823581003838037591801833711307403952789245669365072150959002742425737162106131433399859322650589881667860433855766057016647647409784187222236870940069641286397892943803968866784109725677450370483508588387871846913640377239548808621156415415762326304928848459691068482633671138525215019256455475860750225341841393321545235112660574792147114060853045145222162396863211006608476888395209082210524834286883928360695682969877706602761145118462844401100679693829018284215751668113240122814088314562411835685549348813736511995894835504540958334676846154750356856922676550174486778498725887550587285264200399599524945522673935440630943501518020346171865665028670678471408880208123633359195101094853851815607091576391959811672982237231294291229784494396864124865367958897374835552989233555788537827909811408176943593369095482543067355816687504853767271241079656013331283751209817065602997281000534235886102576793877623998871180037173391270857430655698611934660869754436520637384051924854864924604496996206321686098755458438328170554717652243601086219767484519548574221225828310233720353577584354198239410063460751011376048012790634268978872430163900031151791639972811764516316854247532340647925147697478574480398406451748209787301610172130334696597982505470181704133160705446249028314380321065287024512055719156066910581227646400897016294082659396666466320878653031415530765330385086942521919023475646348870143215317258890321306037543554294489180648514874231208975363087242247963218242478488578803527255339101695268719884353414677269375995898455968144087741309262502436926704990389502789939370071756425479863576825816810254707150777095014601937800609858102591871446862476764186732600012829064086996474411379471299554685038988772451060151439467589503278960707448726934043114317409973457721009076840946520067967474876396407564366034169870256820474225893900485162701685845481113101955561410272161120924264947972312038808734224056593523143490559983507539932240354112612969307722344165806233188834608521390950365159242034725303824662813997100519332141923768173149044564850655571996119227508210652137799310341261369697959811756650097601671342442420916384075554394514050398691728993261350657223690762305658901753067601673353884228348353022890516348504766042299398498827791662261086124752891830677798274381887925939896851670278204845195103448647296916067592636852524202341701682284295838676041954458518150746119200027821412398442485542257291719803479109162738564210572683675010873046328022538015986327632398698672854165388816140383720511790507483669294473118328994986601953986275500648704805563453241193300021400205954232093730266794887306339689260654018109231652679060497701583430361652441885596860775104288939064334776587570215734277812768300725239136076483422218993925004637466309242613361043822022200923116389806474157517576404162609400030063017850575124498808513000806738963957502511258276570512811274436963340219033254398069591698675987718728061052924905561277873704519670937097869856962466644973209249816337380831819601118261651677755715710842750694489443659304752426109059383794259264199915110285998213585833909878396517684916101991900319602816928601684378420129871317956378807462448397510560629779045435824683360975239336234345422782227529046217736237018448442143489904373134775505878976580293205038443086762610899804778557446092755892299294320601838559104006122392493470084610375065609458138059442286759161038089197342826688515513404835823629758026659615291602489976573148326034572649620485952112236483523792667600384797849084342359186674583595633813885165840387708233955700817890528196751515891249231566305860458177805411523433750586149682202504145025040946073458842596617251292842264785836003740144960456323849172795005999070841897538168589601347191340335941746038318742184793610944239753415540817512379685717794074016596457237887004591557334121351164552188846662401469078498043221825405214150664813942801236011773473249386345924873212576038127357217255323342308905075429961594154160014619644405840568208050782935733939626341358505582991372246796580064589934673942533703292993363466635455260952213376418255044120530811472221880927498217723622220129987863130342980345221501922727069317236538702217714375303657485582277780399218331009722463086318700390228456611444395314793422467183232524926079602465266113256303652885437821772515786274471491728335535424754089619656089400214679882947448486385791880909533944387594952507407581087520083682119019437551549920442180586406152769958418750590283997689131761825925990028568644846407610892249662220708908652032101446830025868788595517355925209513026208198124612323731536817880882157274959496760027546397115566366848316010005783092898224408599434434761635647643649012723372627752919359317891940811839418787027644334805078911057699175828280656145429061976553445610161264176215354549400739662838488012563087768849785703759736118099016641016283001129388936171570492008543723143651353024492512534594205975949826946433533434094845839631101246714440486181068253270219809715615050032806598306448475434522697646879210286374524670182253846134596776515824581286537580296372016421406631271144092344221506650843034889701494584596321325446455607823387451887653241598474834620664062794810981328761604730440993029374131327271069548954001320190828699308006910204479172316798991820782007662638184762153936163230838255192399661748720299501848861957233735492111978186963104855971474020898585155533649103277747353422272636465861163385495816808765600906637411551375976824602635442786265420972815384718742529909923966503417184400006100315024160378941687318393560223729802319537477278179577048678230067616372058365790172190807125655372643933774460560197310396638256284447573804543242821417479871592759367730070808610264076729219489163133021861803584752490919324349441577926848488728335569193972481159527128311403890288431612168632690462456069364153737661614047700822022550361053317419062811028919816883259030715231303610991619035238450116398496745816313561270009656025354912962764635340664843345291686074843357927796583758892850339676184217326690593585868254581889870850864721602298891831890239496577008731139124366962528299250650127318166412059176800268440652461320202859108136102311399313956617560004145855836508931522718550710131370229611660631649868904984637264343163885099957070495302703154887893241222600300197500370987352836825607594724011789370511186211837669084222729275217633443426063821751318489129816310687342375688022261792960228542252202154390892204485817732897083396536696998688739203056315969581828979545900096824277419143579782875010697206101253992255219863616816713754448981774930427976056632225096936800977667585829903024838972870559522230535117712068808027277558124039772931614786228679835504951016442063697395365149262093234554764542665615379494767283928967491322065116644028766323384334755648994839264984312966043215775312544090670755844319988169450602106921115689848338573731366358525177424882994482159265832065861410640074255182205269748919029101083920785667708588732399612931868480941890239652296001565067115248985257314698429285900439401927641369830875739669513134057502280545936898942209882488356235338412424582468545582359555136384288850674178561477383152786208788635064778576219426696841616387029810544940724454034482425709949247647067076506430223181779315715517448451758199646337133820410355636665624364043115291527030851811865693853522024254680929081119342927392607494235267104224811946058854261961329873070663263342752015994978238454655512031996670199805292066912158487726531645031369905955173096157583629815831358762529670667308220345496468153526773610732124712711617303029354623473253000183495758632386662779459754463853869441447163412115187504582109394534637223009415516534513337597234564236311155306805604377569998847099189574009509053839502589162471774134933278283543671440061345560637145075445721800648944220663440289273775693625214788081757000524792021622821010536867546218167435320650761851560129992090787321826422247390642450958112591259871914890152885201734095906731554322147450148008374711131241454433111896212175352822637885104922173429162815595702862077810997017917334349618595375113149434708986378612628590858552388642503031339949519401644956925723314804824104207182870739741525255956888266359596882130616470373838191102768963628242847167277710325552919603648664860514629056802590108934668425559961891975580296626364208092351608829085829892285303704140893133153093283425246577704484404721036000899145974927244831247379626250221151687615424482876219783094575204884731857411509638287770704521568096653116038410250057784716385930732531939491456356007868192648015967712038816352713889266261166611324231994022952763978448942103073274354251132867636266184813075665173979201077833615297283724768430481584447590624115858672469011062123473717301869994247585940207632504854393604228302060949505445521034167130218048558041725705399418205203488374143026078346521180224951294668484540375641648139885408170839414260090710562248634900887596819457534258153253504314185040824234685410816640043482833227149050709862596188908409332904652822051069110139334250038815452535960256441495930304833583470595424978559980563024986540186706173950742026252343250007695184143285377251090650291046044683745414166104346808582027192750116909799436134100959031020435764891291353688179247293518054717660383343126072837760113339807841310867232728485284901542466802390794268514167837112739311520322287180244789219010088844181409307965469223441805507208220539356558480973260332758617329114615286833326281547090500881202667040422051362235294903969263813199741138902971413491011672426990925007144995933988980383749015943742239849083739357334780710186304729106922144080942900188380220058241623750007403592338366913215485233367330934396065776196964707980870004695298371857921860996553802826620647016033502793929865477343266624249619831671740047732320415154654093756948316325549787549687811335048855631948088100270187355711210293320951615996143081633344819868196534005360612597086898088693241488442893476769109646524031136082498965240879278133547728985999293368778034934011248410012372983316823182739404955625407510017272049735080210407532221060432941766435202633208222440755653837609196933428237089422165034528449796504117188211402550815283389899890365123791835790212108064834110707949757828667435140600826871999245263589772228587552546910907407152508748618357817863416521083500473813337124620614822792792387548873908516645391450944122426137741949891795056892524608209871104919405830887089552638915303234096214160581793275005201536562815433541124541554337179858461101225164051227343601841499496155792437472475929250738283264172952222720836925017122186042456125027838276144226823873373830178144995943996182833190945896583355018161930127707878409041940572599309832197399121156485313446989038622545209460913773920922029440966806776094555070549290275763715096617237393047136199501904282524984777350951455142182292922502968444400900504218190162831522033628063273507430141492159290402260208214983386294686789561838132929919257593734133276738865780473024126816176613202351650363118749852099087619642258730758355465738186125673245701026385825259278079729389798665469424730813622184973253972348863305182419970510933817179400373466187590910912699810017170960079042905049613553107528238792739763029231171595084661246703538372810671456649146318395817679423450135963694204672405907838974690606260085845326972222131365101990937044703107214253382017717865519673965225424718959542900469215815556617174781715096594424179757233326226741911791871781754195481265630131634443299526215044226780213466208462977996102246885491228814716543133016650077196966196364595128224975882411962456183921713168636339580467855406504020384447758897021087381756280135674516085349792499050913091512145759473126299514599750951665027765035699574726987275038388347895648996767895566820714404059185955682707152029500187983135651564517394754558557030408250512417579072041208771128082708001343398256978742776228789686353465473567079029396125351872016153258028362429707015573424894067069277929119283032541915232921786700644846325084567938137050334429615584819830930832631712885506370557533119134912692596756368977249384402043914217933072684443607332803783163208082718368011500777755309927135837914191792176344536373152326386379855519763433699735490729359008181761521839070012207490243343896378987501641062873168064127538101445924634238260272038722811229403356228106838715047022915404959615585357789128196383758930897740772313685436667243814294077577473410164579894527005372131416541887285838976758500432630062501180712095266241676669295920002546237267528393366062728363511211116804555088274889091486569250326138809631991280712912421733191994551965905218901344190282199939728533908238901560854977077811991718669263969239963726569527116438777863285920785831988562631501497159034681410528172328475278371886292279758276206833720565946415786643509686667192128057042439634253737985470120878414207091396920476482114071785355998375284416727590630536575722601040793445992386700291200252045770438283713401045837109149878381845623884127234104599537136848803635616994900840787389231029851010279101220064745175663242190540837944758736714905787519112250878322510148224943378333169236914945969244597918582815705851608181086246294396432448955756612502428643435435659143168756776584024042552764749773295523426805661472863713653472964915247073182222618990752521648091326408373411913666978974451257156637019066954289409817912271256444437633030572275290918715188408375245480589183148722063831419570009864111874927395746878283270943149269829035286647139314128113386295069696761821565149155580685820617080603338350006538461197539739561948985513803634995066177686928654587649010599517964737135845869233275712189249016185812861899168971635742847585822337579301270325271279006799073347566027350389616150793977068638783109421180445814843437888341188501000670585438187734747540768902797647198478238706804715927492345541983490604154735992668627104944063587172577222711351685345059967307541208651721402788011368934072247080151029077213765155677596330785682664176782880468327378159926742366772880430362438099465108261380156426734014914153139015067427209371607874027975847953343910065146353292556165889371590171102546599468365892168605855954616362724978789805927777012911023886916577076486940317036681417742887861865358210562163137153989017361740635209748802116428105488646565861385617235803223591202383399653698331429610700736388740314539536024881058042509079891413642249209186417244050211771437261802595854484198409153347583128611040700683035620245267478055295654654002373850230219239832676003067962710673706128074538957582087497022358150248551567150802216244108923895466093672591527402990676277521809411511905454158181241859460057851044911265620028443215344423213844997927998339205011138626805540864501216282023263187815215512585506115652840724896384663039282065149278198304012659179942915962765206922894668754969275008440048040389724573103673184559240485830017538521640061944279267753303874663034225725799238337202562438978220042106535829521077687999234243177458380636562275111496253856981510510884873513268343102693117123996569822572670178945229525604987438163507213063609126672724564934432739021021011698754536580593582484566657539677649397338814029526357034102352029797455497632694622359004359038497885741828822172736434348211047193909647300819095792015438388370601349329376759073463391311425519467098494038123668892574603869125796955678219928287160033274895525092606646515059595051883742724511299984426611545188953551252530248862062824780748112772759125989835549789435789057404866952478679379173147492215316453601800454089099227293976152206047383921761731087060449019210058198458566083704587706001898608859582100735644240743075426096082768882575165280123786652337293954465063759474962917304565842086054511006826699988168056387310714447221109672317801143088772197278175821904725275521636813361456553301173027990033779114625788355801543310794374107088872310016447930237087501653720808202423423660840868921846949384871833532114215358805086571581540339343908021053331893763635795551214685516293355391863337157531508759078273876499252512700369958151818948220476307060860761444734900719467157335397574517726866968274974143724348215087744043998794213182421715295862514713874056380555384605554829030187940623539626601897275058894402070746357519959668338845094918622757578177440669517667036695029626464812633867337616464352768671493163984792611156973749642303260081176958395050426368774375584970808077902671572922805117632085588272726740470705887295023408460755990752899695782720872267428698390325341426715095279702121735759625355681198230592581062683283115999414173586053407375857498761248486159732001112075502068843620230041268773346311178077387263625961099933353062436097009975234615868232674274532769774798473639506167285906331559013393771055851151360733984709553783000338478316973074748648373436376830748423247365388899140886105310462526453408684267904990164399127652511293110852996885494948671554177844211576921663663377981917243869358238197558382875857427149043148915807148776038161579219089618454084423707406326065274816663487493696770606304509595198795495064322612596197751701017132188643882486482309903680125124503572943192097831818164588716489335093256577177427709456184889619419482297237407110502355390356671293432668668407494506041972809295182790831286206843312857704916510676609229682372479840976339656433756075482439148434635439395203724638914421381137133502966889747045997173466556941180821110920330718377839806643080711993246566291101206053644512278130523739702746355951885825486419734129831901602669120848783941959506478657717168381857380668599186217986537476313349997683580886732218643926806032797850003607120818211292968633988951432187418606798806826163984499250143308339367228840478706998164990448010774623850228070714847983005619030772578429876831679477803664179123981852725887872734706444007948568699942177218372947911701249205656520322204474324579289305951891725093670282148808216133983380304758698754505402531148320655773912815109656324224876117855342627129129966792944175279635054772031210528100224404647093356359311868144455839183863533424384116357731820730805267513200179434491404222295631364227428898838506748732480906983907226783870137214764817271368432791485755290902387806260402193995468063497663560850519051435407744364085366189797315266721343558146549704817415754365090982059210370523454149387563043397753365334329476634504548137920820424642514470898825501540631464043091954009107530445964229630733615939779347284881948355651826757815864054491929380415433125452224340847438974627629343756525247221613735145289719850152278103954836855980904521034469718441236455856242436049112444844933319474996233224484377758072531498904576737093639125811529033485851008981524116143019394411018013129239203541112505549815477114605087229033497856208187744488115953125225096315500437287574591406619861260772048054603972289603263983996631884524672798177687009778003062569389589058590001712586195343669904608173105799543120734059834251051784074444552213652490635646060035099995545509939783966922754922094059840454483034075509681974619114142909620458974270892300244219539688909926443711595811779914603601781414321361463326942517363499926806552595609290811194012458966878780329491184609734917531216379046429732111445576355340368331528574547147906856772595622601185762333170169660040403510311562798904136346776830875548451021358382550787535464169685041751218590902673358469612817089941069040868489295861779802840783023235620150928938942680639375329538313163167675471343791349931748213028933198980772161071080858525422314163612705135668216081822509247292224115617046455935975721572655698177739851547751498906828353212938057019822532016125991305099252187116023449638870230368483597366249407830587471111458774878865054829571770866536104269669559628347258463349474224378196953634348925731762020586018200082754957276517424751884891934884764543971005562225073420350372647291317523847047342618485391751563110321957780963793310609377775495064892935119172927578239632153813312173367533795958745789736803939518106241371973310062665921516036199202384255925926780264123896181457783623879289324609832253351739307132537736831072310549325425164454400178477915156796732511955165201570839029570674953580479839915836569952563779971871779063208259520078670106442890527187674366189291442506127201433723094525671189363093300244195267384006193468026138207975016168123285868687491405853158497589971594796892110954106511635851415417525650691741580271373545247024064955661803920813458371275606685277559274111778438269107537493426819136316898424780526394158743947200830965444894823750218014594550086887028060873677264360295772722309157102158093175523732121479152456973836023306796781079384724414626549930012213294062296990056952972544600443648638737724370849307044245908458793649234082702828454885364552230013620905167220301076703756811026699876546922195605928190600359904668154998534967267982578988369642057911496472437468365868077324098210136054316153985345756146856920021950436525594027993728846720040005956673167146878234499795369657304605033502451005136256933015758342345336104801689276897172768285152077675391922163122933780013370692819440325562226676811242458086893379417446673857201465028793053129538900075151079186617151555949841080658113599094393216079169967716732212065655168033358459855802051480877270705820719101671651406254810878768424478357053518869438094395874283612226031724629342714437284835182595039738580148395902725048838818399386705443752475938521946451492580049004603338095342979237198719265913794608155237118529662204231841048559728135548907847090426750548558653293860525051442161011025490245039624944841586141592880958102093621770112274217978041358899948596409586317202342463622829574790708132890101367409794716525418115241363201664084107501800969477494878742913036198303024991222827758363920247119834047406123396049256089894535593798117267099557962212072626488675732379848434594854475006051869479299200338624434697817115088664184520971568231915632389129781488891986030338052626625333824456346091606714460438528410292540749020057171072393293849288229970272769800557239569273425100367139631541909113110598769326341261675774868570240392145704882313044651432128428501857560910450843946648258598857385584667916822930726651525085701252780370656456514670410809758778754031288327569190474733334674021442677833336899988534651184273291869099596458692209668944947908231012326873714387844352070685109603737924007129478599674932587592998875172154930385460925260392092082860890073628425434092860835158671746651336252951566726266564762324728905874542159827287850915894102209428330606454026190552701447805658595122070753767208584302076958757876911105463171920203441165052860737731952328967445319683280849319740761261225684295950995538914642883288267455238697848903478325114204680106558736051910243855605897224590410495265740605925712727337861280287303339291332100298909452630381958858439146033360943029774338775059264034853239276135061677031472372429432341384964067128641583594417166445373887100282068376673935579029961616380600996214954004230841799193620478435435494975955492519520962086554801269335316770759033331775877222345798212301305238499658114136030491006244416719502855317640499593520900587032746768957255702421074677904062077844939895714719502497520092745764317265721993996983673612329966306001472691706969392261670619090498338700660675824658405745036446404736222687161407295738190021378075315157232725056595518790611536709869473493475350171488740086115954171244261652098353592364177441594869709063462621691828380478359552790458898562810555893857260941895294448054057123083973385970552894588658509249201043572304383853208982244329893682469362378472512522342978059279888621975423750082845028506024686627955657875325154557193411454137511354388979356307522759449411424512762846827778079758947068197217503707974811036280232998947563273753968348693267064744807699227872262675998502189121263234765334322901335712581186229181345466615340749622277922716712241636550250157061869633314312799635802365016936861178995436913862993603344972623012231264706611887836298816862041843632337580118170833485928554536259804493025894691660968214831498806621518490309665068296151728001145938605342047160573398289104176489512093467655013593001296786571764857276125487572252550710798362831454127686846759106685532249655793123971946061536267778265555347712154599329949467948040561241138703564165835392683995797091193080372254066951637903790876115799289909402400381609522476893399693064778211791468728551012884795357487376340193890904600525045377421724177627767549316672582369409258117889341482719679416175093806882248960005397242711803544590842951975546068718880562755545540481516420163793835064245978772274631617757594707631505845619979085910774827811060414451638082124350355906235678420816957715151457722861753567810429404282179111048442163912858061336498785769279826803816910991729356742992335796606600263247752006913655146910321413061770959821536588657071101542286903393971461060438039061642290070285953406918664944818237021657066679748664839698131331793529389619151985861652289773495849596669007317459450166490542503732904247748437334225474432089753199651717118520966186095899797698849787607294066154477824237679830796044747211788330667068991851132479638392731826458552725933779446982340140007386415619918864953361895204959734108542809179372973616975986877677928962558931137638819254841417556262774632103556180393145306728052150274749899483486952461970001261507227492873499507859841910543037034292134004262549514615261086040972654983458105884925057860538339026760367036685686643203158228022592256514869705591490231712434212783658414969047789515961017771047353394756567962271321464055617186907141984454504450029411160376718398880041473983059074219555215163466893734832658263863457665690443943664911281447957944162186190206519241251343833286950613430126685528797433901333963756896334147972371097814643952026203418974551883573044482481148063117584276198082112927579330780881523741901575744967903986489022102941772711004130445024494419017909603073419907578861802220794166115804221518801345569913613070832476889020648401386678515898897645368585785671377441327060134791812280724766768442672305638491280326738693274516611484739852472306144390683188699623757687763072694167395701616495247119454448284223187624526120626109338929098917282760210455539658933968190360283833139245390805102992036451802385702448825264358062162749107994901819104066342820098272273670961562756056814323359377662457778078161682360214605031568311547914607732727015319535047076331897508872657889224506627795798475119280241034121817921457789029461951578089128417232685919029046624485561537226526329293115961349530441049877265140497733222552154826336660917305662082136744702138989530601040876972293805134599179854128978883007874508500855017897400299740847831628274881908325717963018154805855337151708994673531727354547689009736567666229896706830004626774417682001681722256158790614581646259518511024587430717062173421855082171300594908240193147625342602091253873675288081331873593804629459716746703029069533595039449085613379189322534891691663992233586957132469821842950930836321309173145446087309746375655825270418574574482157957181724101125987450235209218566657137419154503013129234647122467622624519559361699699362963627354346067991503938278967670633761153498547068886658482881429980201265708206041532654520372038751705475143833423555097641939074938947698675921286013556701256350681863192222643993315067985692588384164043674609260585325613711995081231591249752293315825233276450172065739017592438778134008465656773381884503487127092779544392798735936105293938271736612190685180924745027612438749427835306846738892223940382958516810046779788773808467991023866998023625862982805373051560085039987283723717309120500032304947259395765827988125993430479440508953924328264930685021076210788380924663322723612518960359707738876535362711705110532287441355529185323482061875768025233085378919631521137192292576330187471119642784424524378169403497894086985176647795589348065676139548197844449339296427966914266528530254906283155104744209404165907818853189636258634489466030944164468680446879321074398337291883439446446706133935542174387633123420231857119394778785313972644294732907044066790377846950883733122405180295097364632430826488013111871474584850509487834427384607489418348990525505237016974664644020812561361831250456073381214073339504589330011419844721723743552404517468089399803489384626812013040505683001064607387824812325777227465183018473925820491215863339309720134336967699066615481878602653978120096338788069351438194535302679440960640357829259797461991329527917576797251512999264464319842898783269391819870873451059154283112960366957015739729050290126654077132150824124052283558122392096161298832098688666891629042223225676573398446393768012867630250771458656390259466665471130465733649072575476486184760689362166234004850050845852397620071431111890253684798206100709059718067674323450002237917644520505175666427918043845849725119189243456761158486654983839385191631673926740495209021021685039095295574460525603541705207508293548675933588388120364833104337523793205776298390755168158616632334031253529850782640029527828762188376639594105453397290154717273854404718836888259517529059661043795214566224159296565159715736974381590857787266115296135378811990111878737859506515264750774006808547863087684957901893875915660805572521021057512023152834115078355034423704117650063709570694497172387742522563955747268106067160883937037369679773421374959144998281949945994844322171114351007910673902349081190276142091813020098431636514085737121076547046732388867715431529212149983859125985614155277983243045796693660872750563141986208855654765888157665726920808539226471998596642502808139098693985684334028746609732160372138581266596503998120655716258358528500359919389795172071838995725755536932888396263983997058385012701159129359767355346898890345308329169689972137347492420687609571797802882638041570133336031951023831425951878310984324539279663302954828692204028006859170790485838362514397731294505374888215692956783164987999591811223504094511897498631486122662085310828555008671238009191665293380190776595580578798143848137399966590010248178899243130514756512867547334804750821724461079461236068206908779543062992126282967011101763497112294205040421634491039281583253756544101283310995196196882138058766418032807849937726458551144156598819605769099619791810202864837806428497283507941184480869022158683522059778780227917740092855117774796534983122780172304804973337967529177997197061592241952195788006138750522809318158180653464392659709331788084950459531600395798514871580256562597956384260955945070810432102968158543038247122591033091802151599557900816193133467650983317182061214025754745154372862311871276793237589015902864936308067487345025629884819271621443917343162789206622650779349372670197503870056437465992740765153795929893724840659011205412902549938794641054230385233179847867009001143929660272315148677763734567369714329238980676256020429377869468836151352372646124515488351645799110754077757139203036880001397108429995252213767727128328458996800961922247424948439098516444154188113603474033724910431109900833176407467404317631125738699419937046231459157752414124389016522581872358547396508749437473503294001804753115358797046038639277782055277873636313764148846840504211719855026099797815678434044716035248650486374286088962402670370854765777743389430989891848123892386816181681196794734852353283536191570262575450991479958516984588819141506928832768925564155132822787172154020136725131837346130893651673093430899107346328676042808850290489278968286667476236530521448754900298474194580004469919163115724606206847328192947703729466938879951779662572362488409109972911312549259885601010793846843103289549826240618790017586735044773590216900904527210271391863718644005795864947413457678385223170896667791991230106198106522126213975630415933160942630113897808043469241867520017387824334949369200853051314764204466842113775943938258440026852847534155642110134423000600420913751423313225755716416432334081718768649852773085662820907344963172916522030163946189447719385278053753400040208001834125318511164428449516380134015276598787740492879172404849672983240141814095999374887229809506354665307169111670353973607324150292402383347401950035387216669085282463728566324531954825679058092905067570525182692183505841284676830681555084606241794060356933342025255714730654105772174919580322081216444961929695854168594080253531465724698760485617320255215970876284854742608233080142635747569111317440343691467884401518212201900540020365813303796855475807098088052490242170869807951874720417533203764511818744376425448835390863126513004468791213224796192129874104236477954647895097937710697975607497041289225179619401933520917366057727758379362663580444318762898618927527567374080836885445117594520838715497843745953446326550457886760357449988025666833826820191697122598211241941887135319229810539759397900312246783032844593022964973042000447620768682396935935874970430985609078992156656896125240104986648491829542926801228983264395059687739245644488808470207741195917319573953224028246070730568821219642204567198500541075086629968112624229626930423106112786860063669338547374863903707711273103964105161703967607444856312551997013202723105621753174695652115624196050898286712596103670096861590955642170092526895817994072703110506690318024829069996828842056704944831068207581118616208063243924779954275491363951394266574619152635368579437175306969159651581752814490784340054411470286529992560231960692533387552611834740766079438923289982813805573225827183497143879060211541225500532757144573009759867047184362612066116819772064980995438278842892423760362650360349373676703502617785511735831531816274250831407490863080993187502132427752545675599559956332487758324326025026957779126380704253567842449113925358477991425177524986672686268667791985695118064004861379956356698209954908409050705568850400337080165412799788703097712270908745454176838061664850547941556316135349235292421190799552512627702010953161434655294745909525514879790687140220315534816498473315726567765627319577531131557420173117276718294859030487796314664347852125362709116268714117246564782738120972431626024748566683831820406642420731001980673894233791762312049307867551451433768736302201051173653897518582444931866001923729693245457953813316541511483044229000791979813604108501037125623255004167366970466527218168899391085683050487086713488212671032814155459272569443393602468341312698010645472904424473971402266728634633315760742232891738046389152484747561259108375831927254651900802729533890911456517185339048584301524729601078876769288514353981088241148587572855311029043749395310426082730129828831140425384596340688708006117984890532376465253829929476270638789534273552373313431000361002964942613187419522023884138207061909926189102205054097709875741046215245301579017153053580727174155648553327316501814398338537971558193915901008004736487067402955102717747712712799334975685267422880843728018228872641464566725718647270745845747222898462771182041874382460539723447930311864150459538831788214670047344890247805299632138665700756469850909089748742367061124911812648681051821453474925590320722098352306701694985192339572731401604144658153872677452168928851467057420729271198082383504382047252551095501881038583642299526592598959436757852103068716626355577230646463241173783585760241931301107410360539226854503275115822435926008495016223990270423777359536827533738713580739876583242131031523056920150385997844023344668790054339685113262977597168014390785708675584785714217770562637372549632288187798465943987094439787004744358243568489083897030906764673348668915413599297554025604052998328838804888092164382624597926654902337853138566201681956235353796330223045627974081003799996193162633996128217801541899527600795365957139364247603862810369239428604280420508529737514505606991025600947898236828600665886756017935228470715784803939366684426955507874223609367692575685055802106364254886363664717973321944466692378810163206143960063055789313778526886731233770364670326706037341413998887904903454837592728660610985257834667807574663720281221684075551056281452081001922542405203379401630995393741411855231656141290901084209868159567294870902035047833329251146201983941208955153645377905714083217768049289681396031624762311193230941489861047154415961392875552916879152283793500199799013688292571444379053949177076056534456497924030201387244652457286694202331438492045904814664929723527046908206987694313909454207339761800472734765859951469750728025750935361059245079388823034601583242163831097374872787368602939990437879568254024311973059628832061757266593283588856638973127860710891458009196633871812959002955537300911543133749856074466828644869678488441800162829350795712523657851715135079462766187819360611009491077958267797807316194900721841974599334748170401297339287846253129939348439579927359882435576550854655448508470862439499563160426223679415945406548388945133120271129339590947005758629282651706918271817896257259611082235349193767999919497800267639816618204378614658461727168551415869355283915000766001494117943735969839749117274684547744883981110626514336734298010378042495721383489116568671389663105180845357689224013536280333506386746561490333174839907944180432719260099218816132761137203726544017417780859975909936780091079091600811597307716604672945847634494584687147599430620959432521989472440799580458955458171454931646330650208280605568979075034087228268081079168197825914946648040884509832210947992502216022838002235790828394792498596173689038921460123167521071335300331558230958907189608015293896246169086107876933293089225535336404096465931329691742006834213544620777348114563966816097209980927271952299261354116782697783795553272049269913852429317316884203983541500561314367385082655819059979065837105221808228512298008649504293064098786849470616740930780376865290626867904463090930464410450532461456091716512082822146400915714732797603864902960001103571111146680532458077569569275072906528559131675945576640778051931565500108204024160019343004347274084669997139204557647430628391812389797934423224656338385775097678122133891798724154410865931217448781439060227707927322116087115143819866690160293604981050541861029723420271094436089602976716325673973765292186105136576995209407580168263331445487064645871903400318072283213433395652458484286509292062191857830003951544587704772321970909465845337165613166243351527240668922431986545401360705614684242644267684763114534963069825131931777025942257052226859918101268878465161851605441275251481278546328676692536964498517988246160722559383733898595634225091243407268029888022278881213221855403705703482455903940480631121305423812416748279471688148810388293484703024311467349232657431951498394635852220513831523488543697435113499007601079401597084905718813526538501614164658885137271085142344923688825778523839411211336080219432214373353987508923125380422750500557171789789929747207013213559123982441376002806490818064974320636625437731529938653049033962771451609872959451142892723439987041417650181605984699655533907295816559100389935021895344028267059319046192457349039649513957243125415344340491504918378213113324561261758169716623419632722170708996773058130819438619870993998716054763520929529178467217956699150399938155278347048770219623921261408863949885883538157670490597112288706861722437286757402189263687938110269904540156821871913265869736278196168647950899871604550973891275015225781459338217320938542359276107782545033011042726079319074055841151326524498271707574240532838812256450449504543647708598672545453299534772597759542528668729813493303331536340068830275262388436023980313337941534200032221596825511188552229708689532472384150281426814951115101336681046859544764518284155339894000855465965217963943593056886268558843125259594383863746806485103141170964098489785542772077544586712233061529293873076860306266450377646888210224411601225663710507944528753744653773747785439604709021461750965920173113478017969826600875081396413454327997531841151210713433401097782115500065214899554176791628509979576523318090374095593590375310305270304459210371756447323375903463713384419892287762992132354623033141844786573039104265611616150068861584254992908903511143797613664031212833427833032560175819884782461856882069564237827432671906648694699143752417830868065501468757382839534937991079603961629832809074587072832935664382545126268117815788830309461984172305827882305901855370086940183967253562878800288696251944309536898610494585452908229200604490537199514688539702010543203045181083558234224119849829512478625977555221814568798774330389317884579328637377377235886598385224761827530135746493536593747332566327213967611265975370726944801582534117337523262835707217112426119457483155046418644619112103643018775566957038609480162936242893000287049006955384430949373537184468541265910525638638099308933051481504690119054540899174078171468548463771184680444886277389090742599985874748236956390332510706029389020307690867094247138084613007585410378690534496852978990990602138376064944166476721740860509620192576298769162394755030337009788363533731839298228098369816866350300486445022631386959099415489132119789432054392795136945960189707723445495227202045619709148151811590125887055434219702616589964536061733641956993503849220578769791402758430822070400916538830974565250679454785752727647502093212129431562968348865529657789249375074811523007519119593598736315881250713168320508750070281158224044582672749282984581678649410125377480274756857432111797647007724612753020468293008508015682735073404553056106319799871989880362356044513673881046805834290982746722816126996751075047526624741818280049037374912538024051763447156624493440766337976793828419115831542423524191919781884091203449381965019198063975465417377699237098920891474874153836240340244187652230523808730511193721331127802143155148385596272503518710601844840999608586252512157673140806244967925299301096453451927430238554129543181378330511082472735028947152071274950805524797339977973749572521974269855465619657849578480074616699480708341080255918775207334008947845634334723068152079678303614246151717873561961151643109189928429340083261103174785663226157707894751055300197304067222202408840893613197229147210648599875263857148669300291527931344491396436367831735736893088048714683634789223897374774336580587917849445136353816054212758290234600306675526541629855550278491612702869126245983904583381938603871750956913035265926558784087510694751161775829918095469095313933330687785467492427867600704739372385399966972767576461094218079084165234536567238015946436433814366847337742321252136200565328541239272406739596855502626876218140505102411606961155872478964814011880945840273062690395499978986280200286231383226065881945789666648959740752947171249427588328453845341536296873972448681912698601825484837375985681543710962338212073506222720725781224559483669746968203462212616960669910513203002068785402874745357580098871198077693170210636890736929296162881115718235909312938195470420906973549835551569621996186948537770124542955503163571591833827575094922327992633086522438441963338329293096092702472963272212367415384850889675652774166741572468472254932015375918765212909910330684654193302417336449532862579098463583814689144249467019860047042520106449586991594471914071562348724797877731673334330966768343993337315201400418042052538648503758988088580717335413425449566922041893998100160315723785427022612500262382118127731619089036649455197510843533438339531531758491801665959811673478663460086094663248116203394151493608639861584472519481297618392948073167371437879088836477500667410862976621408044956646427212605746529294055366414594079992668453828736808066327984349497112197937432449350536254366836997001130931187845011275404232841776916514474930394033791966260292287740843564893844162576036910410978992083040274309010230305616788701487081341668833860530863268636062556748788063647579907017474655949351979806804460883155783838710596127644500100809619281197792829499785644447122755729264158322420468495086894203506474825360738120304960182978806213277975787873603773439731317240941396234397411187002326569015577766768949462284143405770127493516173073267153114620126932598778913760721052643731734521762051448823750837675145537944725690277358984548619611699775351469885483597439515303925154938594642625299114030573192250096338286611123575894653110129564294664477023245779437636260916528593765960331098317047430085900318875513935973633644972605659294038349988529230349698112245839963268576027357813134893817729311957078907345673682641918940987464228972336493474436090081364301348597578346312063053522155133404695279040871287907309021792682638115638402939451434509655748098125853242264542058205023669391736276540880046572467570413313660301853098111358141379572338041250025866434690292217407290274963241425715453130126863937359066363199881099136657503135449274410453321521724545299689291932832947807949775486777045269600415867725840145176268865094161881394587619628090973060610968846157953275282192675554664546758946401998987757371279613352765394968764338650307485299186131838726270502277739931792512823362938345100467254645604764170104337944718785381663202416333021520453800746197910572326419367518174684123151333331505797211482846525794957965774817344840978520170097964558015772251075020130211580585305442324037937438318283406289917231680770598525694983560009969965870647296269335200142446076941639741169166176805953064259277116575250512245828800686028103773835915912678819530770993167878203125643206542463257229442591641681378849884139091120844119326155077777274173301447217021186539071398745479069958946730121023047699926813741768759362880413113909305145154642816184297384794704425538473442065209155849804277591402750973267854710572078026978811379532800541160233314817217758554000654887834401482089353279427509013626380137114123811331253295564954019858810638357708781930092528027852985439733195657923802568017821076636044992875123565448513125755528730150109981973052472442783586801457936966867486946790769893588675134878100297754246660431916906461805286512291050141286047271465117892938574621061833172369492541600435269246690415559344773284090358923857356307284227751506454911754984627861069966027518221397639769254665745310351561335141178108136998502887522747940636968878457280404190419821611340147902327195786958803085197361367372612201922778713791669593311660083156356828561160489958102381047160914857101388770598118471564579524917861537250016383162021511048192841933329400148784868466185179877970627632480451155747991642450717372763898252719213153138394298939365512815646677167459788506246548794643552520869685582350815236142498434666467584501021180538376387827212269904018986907336821427113879417856536141096349379053259409899277945153408390738846855096361629510120991086018453275426162881035815717345328270281750652449257012218253914461894763976428743911543789697759379123852626653175946394067179058823506969912887798887107997404329678467089854621484797415327847423384898220811308730503660224838804211671161546205851752445028849781658840033027307055154016005563689376327776246036562483421346888708567669852072614222635561398968919713851690154174604531846354043199700030588086788391934571400985174760002429572453306714420867697154485565886376210105256319277484934360177869085116210404874819459308159759441987595716614055206308286268633334459787919195542883113372886044676320458819320875200639959331969603078598971637332167611496166445581874137066973725800649803524066501483716867790534955438914492644169967245630496881738432921783920480005666573241809611134939252944204653723552011340225513826012774484520891831968160221637520489500420323728605971233885818448242712562848750597313438081306151210096632840366242195357310126779459843822095115688137878400462910278329485993465829310556664544143800714046668878598472956103651799975895681709146539006433060687968122611746680107664662210647374566085111362690164657708547402835419611159207205717365250576122820891905237321606354702807502590309653333345854043001740753820636353725902452003506233836907979865485298229522901198786851822882389260955665992899822138845571512162203505152343534785675739461405082779520788125469949454454512575936154950766366131634553344187753334035301850123102720101935181039591497802330548837133971695857365460442161853238438678015145020789322076030896416984178422064240862815418017778793685157700810588262757079358333471809980226129570182038553898043016248148110820340009275413061107775599861973600115936512589467633844365473206920915073429737752688073877974977830030480811086180196508830427457284611920359571372470786942154919261795390608304607969388249889082631223618616246384327072043736301369686075213512019327506393797455510866956479376242667874887364379657918012329596434694234466997513700143285133024356629773120195791411857022594773314314074288086074551263253497888791683274529280107843143903464791847896602599279011058722442872381053132514871870469009976640032470512133669138591690840875863452837718404725044043195472043012677661471119386763698593855998736448498095291701276024048000470444590278009249086354196639961806717666513597153735791530058583782856659339423892299365255264220273441739126883260857065076656219778698174463304037220340267014710271308597528041260318678662840373220250420589635286661706742172457096178036413302782776389950504223357140870480407976128831711500440579702492580008021980141731578473493960082652352235985944264179650837857469202941589072702898505957079464018971605387815110513958100166381819293570902163577418594164914649020496301339539235747849800525876856369515732555214173435857806432943906836509928288417869432098481884918311082397549591604754659138511453764922606495952705688439717901027187495982263273076786386029942366982174556335030008330940093414188741295596185434714988695030499621842636674824282429892510226680199632517818837906895508910352054750608990925934869742882228202640516538660362724745295861201804920351373357845373378943621098129271120374986499838001986606965813533542276295384387801024810923144853383711369667604920661654666076832254084587601009606747009840478513822865717617188918972247786206995463451540821290333894842448836486490602835272077669878880319067740730818522322795762391940291510511989447345152927649344585865604477639233523326287207701862989813005505162212615008692766172561418194096832802294087326130542045241931709255653812470721708097496163647155854614092690428773724660084041254428622447566753849744822059270972843149639751956825319220702836211660627479804965345800459026868022944188499120870612832950891103249261407492441169643261740702603320405132039960638379695874381273944538035092341880316686403954035251740032468926856068624922746761912681401947162346992250053360239096975759885197943027361479092838569379170456161079855483216040696605206429918806665217046482118362230284427959677157728187719657365940716874896795201636939167629280789982434954856694648810965574800024496324609302593676008156851914275119605077037657036290154402166420036155585708631346025120794092228312843037113953764905527466265490143991395082613258087252630656043712871584336123345891443154546139824828836402215108980619607864038271838075203370102517718269729493386349732821744834721577273982911861292609889522558967268999481671514704488270703088191436662062798970847136453828718187953959899808579610247338269496364345072102514167372767277422206421226478248516392456827418152873858587796859781381760668398034500552962942352044470787271412788198498005125336162253682059593377299661811283457550743351888101398582451271378692945572899595627131090005372912670384991124615952065799664531349491240462147394524299098665763369506594389941654533882041693052629236093281260539771853912229177734147965813980560552038899019333287691172216566091312923110170358465351357614453094492293097977960898599491737229971924802803502288733147854560772451445108880128751328807339889374061226357137910582130023361201550046688904295901085582858846083729101303619929879283292464153795512766663194757903170032953958926282775751319658880870129382731758083908039455896435621381096528145890424907883901951844338389701866171699766486583715674344852392386066453872916961797464524050448516180758368671072792457206437006697151720062877522291252175787398224874111349199190213301690031801353929525890828719153765853927881567478735782282147728756840529465453430799443209611102177551520227113837117748073795105213156870250020355410382659224752239462354620750116755727357279671877068411709539500777229177407440236918551478787606253126028990296058118362247146544722730198322714763841548839729985843967630843178528940892271900732212999339448777543510560546462936534529798921834709363653395446465344977747491752608698394211965196347690460974110185302392932082148654680762577328258946043325011234054297614247386876955985345020750681315807713890655084352274169916451941174455614615647033215967392397335539446542117184732771427133450088006636324833651492997899903310962560958929115176070483925508577580036834471597779210384698778193729459206139417941611145377689010236991043426958170932010543335100364913833427075822733576471581162615012991229171253936362755054089651614633842068778225272814190776784542481683628289885424645051686976330175911046719908658683849309686618526885767839930161622603352530293322015704130639637614362277356207550336239459157714548933718953385436683527154985855403779464713727652313903581706357162957462767843252732913276412380111053172024161677891301693909258781097252583078139043399390928588382153000759104355952061370786515391271659550199612092144035558554426795831843560677697007917887839001180397353894288944180564514725309724282470298969880534668981686576942030307774123428932556608506634914061785634113951481739551204400390759256420861313775133246892163227142602040406715529332581215146477455354646218085670810617516646420969494366360606895020754277830094731789298667603958591759085492725752683535907157499931080037528496251399834080604228284407280794951406544784579447936014416904255801041735348682785813991400039857290423367205978892605648239294453595208614110608615241823395520750768601388230380081347635546596281154709610455230049882229135608628291965156934950936394055017003225554163391035081747969275280248421856291608705426873487801174287813587121095803006637718339920987127470126285825039601644616158430347838048136578587380902777670568892542085637926571179061345265373595135402363985320768799501298505856874791123843006935606165236135550770639921470804641160725283560549343302977359547158620652721362944622867399484275832176904595769469078895334291427303817964124561852608541002771007939564258257701615186018862050496427309381389422566642187066327657295482864824217499466868165806187048992263501870866886352301433445518201039678633126265266028372892201297247072955840811523043399278111636589635422354476566756839616091338460214255302824470558423096252707382642655589470585741154082126115380899147844790779798078827298652856411973774305087937899876189709477027390761039032595745087286145988411923599057931776727192056217994233042900113819214394061204492386947101606384417404574927007430609579275119973391535158602255791200239696571379326705572079895231829009195352813960704301869383689804280756600696801311530359279603094559170599213455607494329730256280098538553366561358557557147421539007989439887440699589262168592332357977174976076273244249578772763200001916460883251894634020180924233635463666882209691319831226002331886417410950491397479797158617701688850622527324531548502518689251206492155860831131355075523104258549562898538772030935556380889254882722060773532994820258362108616206746458581192785739039258243872185536438833744873856657444017231247201447278421605800201277316739397691332678934248758775859975177050275019198081882629979243442249540065212553909855012579331850508596317937938336053052462784029118927836430950646991934573423606586861050195985370092051763335023701563267019447406761391169663974493601332885942191043375150778490804631638333539576987778706637654031449720189753175835163874590950783362566603447397086130893971280905273761809142364633828942592028810760823691353306379866250227846308712296659411983439056950324771798294238872836309057713514433942128855899081307110710460007788523505944679275409897544218235741729689931436868340215389188108426044997449095915459351782240137911754953331710804782278627740917855806728521293396869956007683089169122394526931521830595379431495474154942169315954323719149874360484494388398553699984464066351944740042323336883419508112857800732279923415855361543069875107735855066617293335177812348964429557331620652880450177721432174137740023406615106044333767051022724729865233608081362114012671570973843510989688077351362575061550223701775321586788918629965298295748432664273628721829254395643152471373792336983548544817892781965084867661751211668891219452885717432957842086230061279300115617184480277941148197809447254097985502598491981733732711402522456959032410228675538314332919397344842894510761218665093512617891022727164348931382186213350107171969250716481125460710370711239653115534983584891047997774504860488479651136027406006172722167501324047708481434791253255670492680604439422832810917618023031583778390918698302100870547357544501449670273857116004914698919039461020688486701186847958985087177338463178122726145178418476734677881548754207696405112801200179501220944925555868205867573981571712406679796824514879063662994690706753974750213064030200755255915168105025144697754907167117957476748738664826099670996490103072203027668176950183229602348540987170004014957331049364402342005915483426585897031956242346919948853697821001004511229928743247999054723962224079507311868767439595525202397314787019168926212661351069242472563090454563914930860165699407372392577489772510707910399938938542244599207372573544154353450679034443964832303696723989127073350441009512115470231607743845915314464291461481563661089440953294335549139821086964934273414116382703798842243955237826679106868880711162551141112437821656287276563096453023333539609772118167497998882190526173783599390115038033970835677584422788481851640739896272366497163025790896836598003852438447410065472685380197945609677491269648146550633652438407172995130557376691467008165077373798590306509361330822285038162364005034564373183328910829923754271994473234390985210476869330961328539408615578375513181570557513329205979179055121678398828083099520273365837713922348991588519399849961964620841933843864562142680266112667506348942431696648483655522050424926816619441180794974148542326072222238605563788973646290532067566737003765135170158818239068249046195547005628816454237008796865202348512172205612480799671962689059741249682332851162316743922575198162931659347386315329770880503296307655968020533712854236862167354481886514819621008091775168338693411572382138556790732750528843084577543106943349801253759089161869114303318052654359789903773048779026946458264584189256874137113225163454717474135039716067376727031936577540960547509177776420213864553932645215460107820431712079503317903848286715955802188454106944632595159912245941107939116338001743538669754947447936343339953827159887236561720281587180416949057519278311881697494652881800852256791983458136914949752420425645796896848707692591242128880121874485311409918152088915696062370533164289919425571452681702537974462999632698752735744760966869764399748394170211185348067968083821434237626150056523420765121505201179160372133567596623935233896186580752668323395341894705417895534148102823089126139196032103472969064074226936770734473671772493956045003288229253375530513962779096129099449397240302605195877750797190251107914385492080832159965745336836303499622568859431806928309718744206917592064735323072267219124246812672201897402679056690205381158083880600218563011325264397334685053364881327419704670892895046990775113602809825430847049643275512573183173155386773824397597785652191656815181807259163853406906146375975722963282772594699516332066663231415952375310694839383192899192655668409786779223669600896330585006844100780437568737449510548912388971927583471812316423785959517653615125495450652227075695562797619286511631264016845969527693942024329177357905996415038226356408595490786394156865561064950534054032748067723795692690942593926706782428819342182083235390921787879793224560005909979906921589864378201202332400297275847076940213635549907842555494033223254707334311496302832901352696564191305351447733862423582999040223293086884427401980573457112183075927289198535970888254226910562624550380459455034575868190772094990752378534453738240836654070578062856476660413374527746335053461073509142305265561055871244341234628224850595677588616438052836359671837302391664869728272972145021481390133101876041701442048340279837636697737838741296755468299577450673830169385646533703104101394078141278271280201885562572197656065897525509849574298963956871991065163234002143701815297631155658508960488202856881193459734503040595681606096537884830020969745956711597592978036750258844033592886440786135515948366866882406995681940376204419984824863010603120748796345389649398516012021526635126631906208393274318389076025836218103778058371637432541102919068481180645216692042472239027109607663166028807846919451169474760063298035516591965279420328426107758957546430304273639398434243982111182052648585021874258886533897243195396106985703209976603028156970764646914691089560640571172648739404899128888538736747023565627978450762513526868791642577792949273495306896558343957763247621447174390581478182532483629528608006403612616062343439521301558752935478038322711240828440195277558185994504553454616848557306505232188032012797113892648021494763340207403556165594064467057587417772200985469638107543816826738736598724458359888458112656751853397994690654822948664189168661947140824710540906429405467876036894933337840184106955227094761476291858947316955049553225216951487177899560064371049193878182134545656110045750037417745789526478305133085904475248726939921172728131018901012133329529123611647075243471846020325045802355206228204732599030426626349467295312154700547368027588932523557520079017176613090263701928655726785480710038578525952208178932409579173101720442540676511422293876216221374090346504144211485086158577682820439097647746219997818791136358888834251207315062971171555104029044390139347690650293542232679238057726082575292586591138862727178345335949298298621835913684814878397284051651440554189074642187988030742325794218440673387618223633911300252077202214109506598944915422969383487987900646225775938202964774195689175509708815905761627134924248887054161455266835441041155788208624583628697168037514324826349387622942191128550667038457839396148278741405620360622747088218823049076670136424453462984461764789834674587295485324200210123154683342894062946217999871335297362155294026719008996454048274914584749788410464795740862162629076099160097165710306707063321296698700408120582139718466050235614366555137310879768020137764029538803873879738531393135466934238161828042081720972986651003666893373089805861671617124776958687654662929533882231362648918355257991230349348765174605879923184303699647822994491319671495852101857817439943143976609437940277894919137126614953305274232425531689458807080972793437358088174590741847667547353943777523959576776776804536036199018053178259279339508314103802471208205581458583916799826284179079112235281344415915968342129142676128580887806977909184397631149567145443757663935699516680821261569275576600021877506396313365894426327729167043065318485448006409846526286518978335903858233309158842228297852009806043946303854563825796369059543731751920755409335651468119058954344480719104019559159415017326574732883364744883936383923133989822579101677358723551505882564809292458581089838330919463561935907882508606029850944241447184054727431517332551177358957004517952597674019296017973834802776567032796777225563888664304314211305253302739243320176981302950638728993609343940422602492121878118787217537055962236011209968974519811683230132701722603358980627236616623054192812045071017362018283240655317196688616208955663609525637451774621715538752824826227982034051248812356231856236109569598593547699887560391757694559590083847410045947012134566001242333121595381958665523324711222437625662681143054011010820310103085731959618847441198787609960953625260439431439613058730677213214734822463920176479149613440413690285311431334910500012495517288007993373702285178652241308227568606159963967425707256216488823764843784607945150770997264784968504637134380787179074122852303414041913780662177089857530629822816532493899339651312986323744910672519535046466333156140900503669272652745761152799827489408582715211194306745120230092362172379630781598148335839078685663388176898660465437908761510301698370113919770796905936512538201356538143478797059004725490651714011020340685851970011343816103834607051438415149385903900759466336041704099879705622800078784433839136980209587495592711649550439220472726510669693927333162349926864712765594440854472302961246823420612358456982590912682717322166490428328787294676867307079593099764830352114955473226509037759882020932683190762152944976529499080591361309891818539947958258570039506832916205594841924090900056286174437480706718609532354566276605120258296636242336493953765205451835135514013517288182854905226281826878643655360103603625021255025852557392919858494865145796980945123448163114691217359055255915797794601444811259839170363496348287577590369529884565914886488094145981294135418793751534065747678209442093003550215794219929974808192641192053175282368807799177242518274702314523038136357920498541864730777072562145696047131585123765250169393241323412978630648990055135939941843309868973768889466198613941783633556524221948445384719809582767592214501599370884612161651172663527784668940455358038206329973714408862148025825594813406075469045760958157111371372136926842389187156819107661138627269744604989614622361284567587907923068299594389871050914477603239684582306608438101313149896830436383700252193468407892971125000671392952796860259020740307016515350528295343979016670541597190846089711458424942545531308430143321131502266044259343717678649324144668896149456321299119898202388247696793228452458070264882262561880929942715430022489523455949803804327050416943269354271131355213059151781157338778223947990831634025776237846528536966700564960985598756314539324548922265650283129100500209710498654820113650977930707327762728409495255026230767456910607366605974866472820395730715979932809437898693405452283382321927984097000523351571486087617385412427303757207089082321508544693801098881350710355880626140169855019948134884171805849028139414764656908967822753529823903816927406648286354782108632345136224531336718225722048291837272095197124734264025092209101531988279995826017348300124359360883545848061751046226968080391018802502772644732394100133814782570519764629554207593113127610020386014095982714405648513712137245573024358789991605683173470983133175130434602628211149308500372549373701704933079257037966331431918657349494481492828547968848509264270842485422338647525960457241002853894359954409633479824668170716448634121561422264375414681754940317361279493607725015576159552889998423141800437942705916155483223778726277178513061329423455726468880677227411569331435987545558950552713688094728028232311368620927233480998783619498856410904268014212210800461234880699375371147174625666744475401966385066919348765265662997097226925571863347769918530999303624162589383642835722566155644506042437358479652560652719450662472884651008387564556939766215281856581008473367983889467442233844000448409060737789039292253875677083393823863867226868549811519655639906407667058575220136426048466065137863666801599013871954917927941895964834126021515391241942387098768677837291457501007454831125166209868615947488414398443759550400215616581388887724448002120354533695247185844773413745633060019910254252853688831611474874940149179957410305300143885843046402516776145468420248138564348476001536869389180660087824126845225830936611381742337127459293724015227938179695395592377279097271724472680299350736634906952157620121591292530283903675741681356497228115280829771238985483093443197845286425647220704906400964499858896454495923658847294368111812456862006902540263667841382632210867136234066665190393731156965031155068715659464878624904443804413265014420244053728486279310345979498001694980595836956245078698168595225589249870391411598628954497456640077082688540695734066882702109916367034451844359474780191186193600168992628093268639031357386530106200998779847641085698818059760801377233137052026451857288970323838362853972469625933182169222623644599660236804385326192262885930352973146637624049207031607423608912227351439577228068388995736526218244038537843262760387610831171558696060211899182840316029209442630105317140326707993021981664759123055870017590886254945977947532510852224075734810956368915217878670627410821540916783807947229541488516861825965982985062677630400256744349845583178534944135377716470580908554899731755896251011294080007474893078959068336537852103653412287706313833922542361505480451658036754673826873321892945503985162915759522129189440822254239042017494268032389901109361911062535108605498288930952107505693921964817055535116390103603823177864314806549660668228611448619430353725885244854714029501443881352150581720378185258634675366853326853012885685355694490451871633118424591204617529723378878367247677424031140714957160064240027602955462771106659337574108409865099972864823507766827843704872088781070500403318888910129546002178248408339674482135399091892012306542329815513406448079433334018384955933993510579609844143257366328950477631892297483886911233173774826839965600282665095003233674351234215140570559789865862134237570185542299434238392131647909364165593884462343364106879906767707365902823876556767327706082239198318312603446632230658145401491427617843994395149976829547988885368665555341380065123094478651491648161069705425791976962576445462322462246004882345732376307387238592253331855049859615133467699702452980919514622308608299537030816447414886318098261919165942292152032673104521508944180988384664400947085768126164394870816763867867826144136677865706044264902175849131182637995062714805546793059025643885617423419366010767990202746467605790841552218588629723173317020558549156422740481217125651368400897192187695634979567446061570470078065257731459396652383998766952408723156820717391850013596578044685817178493349029467559389564243702075681719781389956021309300914119343666134198879411816981032295232098671888959318714813142458318011584828906695721483632836591973954176787861228984927327251382475799152748817829274236341482264201353714795522305202667117884810965272955059703140954615462190638104992240358698830455674530904145742179326131526358269417102827642369470022589491257275131287305128625776015818042949414653114185452213900300103020978499224881198862836354466231857651574165719059466688984965961620420295185307766114233388374411595303559476160024117250409256654518894793969500977621562666876232075267659495949495845206691068658963095592209962099585987039916868858551297732118487194717360977154080464565823927684786565235504809586561337450978769568186438491114768448919846879501673126815057678341464582320582674390577800540638421735210664203286924558959246786131439143456563602339886341996029755244554005949688829076700761752321201297530676107237573836847082745931059881311161553159909222002916502560063520803534124001970342717511600485641331984975463179400210352832455025464460739069392057666458377273846306598979765393475169320915816072973388344358360705894831140309684046700457297315876363674727907942143718593248953870501594291516187355722371153339507276223955724832252118930423333584226718767588604330435690239189410723958070422498784307218053401181643465549315278040361469775779354752209763516069823104466979681780077507682031509694149341320567763851262438449087664764385688425204096271742436996724886298347967427383045299595476225106633790927550310478429975316369519500482791707768887825422753065625306436414485333851360173815932579995833216793313550962831083609103823214216591717930517014140465907051661777390011032705915626926905715157852587780564751232831784930310550387213004977163410572310765829858166917035616197944237498852885577499957124300109592228866644057630750745772392398906010754402022769231547181765213614203741659245261079497373645836361550086459231075271920652580591717375522209733636496788616050773139955688829965261509702425003504302326506111392397228243055738012421491153166575908142374937032683699292076097302451448019822270843385996591340496115531493950037366236298990895596699459413949617188757601403923145833453713749877154859342630378758462950888247753499696287904487259363589248441605026551187527692284179066316645628654860730751610787942771302797635648407902152797868317879528512419899794808774137129878147010054545160702983089982674240898365290661534213288156791804917065226310008615383028492394108670412929450717750945355221955645060605535468651980554057654179981128865995780972383043455795678894533306434676100986078421904684147367062947879476160418958832973664828869380004493517348146758244093636419648245338045651046640929466434225301644977822303376101140877399790951979318632983544170198787085333238702263440144663696452852670220155789671233517249956432275226082704976894671805455421348595864721357391994727833787229378189235128859749806460377555391340046944885900357041278382193899486222010591172977501892605028251769893283299335773292253723251809978801698223535823623445854273266187501213514541127890648791836938782329900969735283412625778482278132254400577187421535017764590018718536660660710333944286782356765776556591448058056758565570344347991485384680179198364186925353414556411372666159534401979617461623792084877127734542893003420415716959350901632921330798315672535774983188991795897508114450678939587438903445436670462905015171519404144472840139483734028499371404318329300878192130279535690476495966520724905450324812152081906454623377479416470293846465001731864066299657935142711114914628132881290832115378563278376572787880048749667762716356061625578476208639839062286858449287373711955414630160889482615465039774400905374193749657727436134155260095726006731054320425558612197018829354834315746982290792603722208379300831367410227103344167968222673243817768810055913234375339990639565928027109634563896143159276411545941987633523976835616678532793165051489739138577906840891485812587264525277167679219911152700628768765754317496152900396853627770199547401037992322444586054772209087111250896809004225248372697003537702713522057454358999141827270778604045595771995428975394764965728539007235789882626975126317487903058640700465580584673513380561080450615500117168376131900707864671668670079297322497838341816151322993280613589055714924632569386729107309174640985124111317014251929240475038982623531224941253497157897040003798101302511510255270141367200686804579739741110552739174977267705847942220692291876983327645590731829791915728291383506742208939458993366206076796685381636983133989045814651431741813304069872453768263980004247716315628087537627730276198433095948207575306095020060841140987013712360414936980816512584984520198974415879589953414646839858069029551892154831710460736230016843259096063580863942742923470416572271267740897420726005165122384140881586259677266935160184033858587319448522181993601449959636581585478390966940780730799134959782080193736187996204406169530791067079430468748321755959590849003047926376278607210239067601423792923347071612348018455988318779226732734413442211081161456450891565916249797101755645776826178561540477390946930741987906387514065815308272071524175775982740649311255479054458270404376170705754464883531562262913227242801601867623749731311941719457748821962006653281533073978702388622034998835869395151382219781263426517228964211718521990123283697417194247378569494066014438802157757595548430266324629862651068094266258916512548633996371254574515277975900156431969482785048512680079425729025768336723492035357135608282031138555007013335417747092528848341604888215114744950421898790943595089476821500591617858110215320664578879634608402733103229813009366186705435453747359921931338362608642432748357924007810788034154378683227027843989031796848815049631203671306890245883541390213371785895859611138814017843722555234863617850378572599149087563293025614865399316250433749794995200139300559690706818405169499347101333897231121483279003967905783987203052562381865361206947207549944977543897732728084180763579423691800143652080394703848066932995179030752671735829196277105651275014321857699460280937244960396203616119477890287235478489477311812294233149760186994725759992284716745066801471031490993091517209706190297427534223568357537538893414683802585086877260980425158554314772207074978073548148335009386173106523557488913543222423908691313299182635888376613325782014122725709556106184254122715976818490783193430131619306772442257650555069250761366431710892448615214333340472818389017853324417112151013170584334935034155636441743754945091463459910228059579461115186019846841259302385320587724591469830607762813548431455241055543676573119268920356315676983463848233399778952616588846498686210476100924945907726827126742165073962259926503468905855298808269938466160179558951187856286105076655640208060830450079106866403038173957422811005113711066084133517367547102748872269916566783778618715992929305364364204099237488684730793505709286485239495509271066788198527872996254861929667484785719970631828666546827118968440577885206681634025539326029023506646198252587225120454232233185003564581272811767693843583682145880667214200147868240562175541989351058946286301612651682065026955832496155008727697748781222499016798401813955748195165888064172552272145377116212151726675211220728667645915485815520770408228038132818499651416413598418262126911397998994972285050067193488929063867936993065963643318995873903398454326276593573652744829998849495675959951205270396596144982892186222427842373191430498157291323029662823157927284638376858024330127766041479623897460939178487946858582203695112931922238658699790326334372081832972537250766516811102931358959081133024345864927693459818936277797003992588434625330160646709251357640970448888522127085610733205636984586061668488560995606047414935834238784656517261351569844638475034676680129718227271441524247037502749550182752364490280012515639892072198837078636042190199053084850900485312824566042414803762443071637865882997509914454793769432666825517674340659582955106597951873581981598145609862857322101483725078830625950558703929892129022879551077995686844275995236673344777524028715306876849592700589485695847464268530909190643676693375496838393575904083249054746877740862692432829279184870306994327515860392895805985218726457376732189106052598764851856770124080611475186344258091479111866546933395335455604257589389121701505096390636753501259104574223882056767964481557931127666761857193376289590629494565267858642792320504179760825541514428877269077685849083875562393899382852800428005448568967215398635588622203182348263244807314187794578737731672676457228615688404640163467967127590095046606158126802170436997049014993112061655180369208162710496267603032997360562760937207265771731764858137080804575512041722693773123245820519049712959172598344131597509316323360038917745713974113048342112363211450661951956237109846193968214637907115851642400246984390572191584805681609777612822072151210795419204443176681645741751748341777640202378727963589857089066472602042968145830946966983423383086129260533722386359196246762415516293699693233641077524811188025403910300682925241325367401781869175143856225544214632702679753921217066486954702292231323441422186303837324437893076178886387529843538918322232159994806949999619182643476983517569010574887899047776021288220751742088968986523834725593371230153514930541470580506153165569282751080779598530177935781423722769233412569630256606835696023220911077716305747151159117804204217587702745748438204378304441751460384069057636292905304558182284478812779824080702956447146838712806896395285671589711035931350338202336824509911757634847469813202718808683990808590780143628564468552688567515818623907494570074456188965215061681364188761245179376923587431609672085031555021522862932479758582332197514424926521082113139286570983610025012173379723142402533020728780404609659083727794305488678683185795309500081230523693715643015815564631584520822905439585749519502195741660152873929054697198788816694541564970886123377640679034332832831016194672170256487415859221919601976152387564023118362705497723128619597130760502448650722847390466850739836434751831813651331154678208622927934320688151846957417184958920005358887420287799650743783800374723361132311476317493659786624966491525987240474467720904295963701176321458623950754767556334459850116106780421994552281311722213403834825585135040424151786122210291629473907135700123976075036599422516214491236239428765785339644043255913559811841850731612882743967819668826831912262252676218043834373200710769137548208956227793068589267837378297556679555473238718489092263790940800942278905645750888815260543797986508557714051481775468735485174292219020122399864635635442019893903675961227070758411140750606844821351963443497565774264275217760159487029071000211001113050180246207579082494066868263743520924099428156493054458876486339935673249189235458824866026219496898956085316275335687539500336514506033633471611051119357868443437579895761405606875072563291329567949340811858788312514249784614542104257901853604433005698679832827157003075711445280621391359151426686951103396673870604958315895673554293360721524473822217674921111283478668177124972441270124370144141722362970718596105897719047820522636511330950858687756614412698794267037395646421548681242143785575114280994718520672466749134769169151152071046408046013422918221772201711596771142977185216599185099001777085111401025666126355851593080739321408576481705300692314481888421239358965486762533050916546394385973805146913604783733879556221878963403321710725761986774881092325095282593650844291209368463256466137500520089652359482824898544071675484615983020719649131844595716657519594001919136673453804186288659531761035001474331088378329542318123105795276961867445488660031149940752954418194910362084244341126203832723240371125922784625975450961686267610433162915590350977415546306700631470472186659006862025026124570441653573439216478794207567251799425336063970450975769604256939572279295502521342967390811934191857207550201623201867962524329471367211850198279601644991941437692696204300869935278861101432370120985870395249295155389153553470593717180114685617556986655162992901604672931274396236986215056072424125509762864633941073992482925787679046830656436656180970624735725657292653149900782771801543083765955949861001557533986399468189912327333482600290522443568636175163831655991939302435261041244143297397736447230762706109772140423265761867669169710129439178626606133055201073273910171229501919094779340287169170013570468297772076810410846666643986138392945263517609415680271763393082798112059222191256526587922148140345226954618123045396032273297876785575142677799192124272504098095410614740686962355907517435991715614298846593277503498024510528249628780449360694503375437495601326800214614186643921182136455536473658178435120103785163477114626413462954388689693397283949362044247761706105223790426104272686519998775473895908213299260099652559428016374367399546114030428382207846913169154067198481037303040481894748030565010040559392856563027164149731648133161514020939065821291180200515404537490100976418735724619315643034678563273013603718224416761651618105781146205360350369824669824037304008074344222813427909127064423456788901502679924715278636001098547234634631412101600800427198584978738935848725816482261928973752179739892473944571496666791175486390336881076107939613627764690035884032725003775533154739688260224216132643448571873400846110873231318802062358483075309423830467315828227878767296543298165616910676843753465673836178328972019528606788841897478200151301019027684187757919583314908743365088752335263529820622473355007408562654502652626200107158147101742515460756707205414016428169002556628120866185308495711251980882661671876625367333743057272501031957318579781320484617213280153436241309334133351311008903626406759301072940699746323957681505471280581107214051904668925966962892542611683124266841843598868607492566353011987497621002077317973689072328245392064090608402762913670939099350560567737125824767389020763355476150407702483244237212960059613859572572161233720812034301772512042765671576550418614718519094796785582240566398954587069700697645952502478820511071671280011903650074239797607967399813860402769336695622229790342376384040919123157329368032505854859157542924680776696827305133115976700484284990089662298876978435105080161944741146128563468706991747650294939428686059818113636267227282092428280760014298375393480670899244273882814572451427552752225852636069788411298678566670716734232574260995722768931657595550137721104785797993379922730108818800230075735850154276069497624020886189391555898932335558603255934539207319267652058952745192890289926715343550255352061687404816167895853594544131805590992388812728755429672127593045523722131629403094702497509912806652575747284602694797220670087406014030302513099487045216385002812349777440157176860729018738783574281617873870544520459411611499388992845723065356568069515341224991470514488934989052684997509413998705128443698315173779394054721486753163523079444675027865585816305005599324940583666345882396474827154221897754993116956546811951934888006193335134170804153429458522485524987752087763056655242113228115265453655395832684981928913831628268858342772713773281855004777858329828192781516731058386769948427098943497420956955872618846228070460969875831317959771808337802819570957389112536456138145428456112682490660214270464455090852447772199601684644287944762215804637316559107511797470715614455842105175364276410965301229239403700691463181252990430673173158362886683349735309572723117470172671033389719962139878986724247047865007146122937261701497835918850548317502159456464552650709241849220479333617881355791598892730802594888315805787187633331177431679589260909810759191063113985080842747343854507315425154821589229034515507403844928156155820240019541462654502347990270443540624085986401844883676460818573943585420825824788617460015783160164886627225247428642517908514343674794744093884179342162928097620550778167420484108709208943984004733336433695064846814297685721659350515256684685723946400012629122520789845616626865125411072784926073746089292228868595550901526751534130237537643580229846554297128652059421912404366484526747599346126093340878799734226769761822029182643443868220416566593220677734150681192712510543231430573533758990527378492667315581343877768656197261832318656957097947332899622029990240052361888022828610836853541141670046465182357774821610936081323751153744624197931332677272957598987486941061396274804438779063088566902505156256879762877537896552053169399874069086500281719545297165043113438030725084323120755728921829772945518141918034789826022651349132395319937171185622500800168622005663043695959819228994059191572857648190507026235571604275473330481850779505097318406260606209030989535352666062172484879732368875137737646625630066046758240353273964062996140620754866010092077279755088083985484737337013068622229113436276113274128441173175443378272831650605962791247402587946767960579889566420793000492901308990984520446410539597377645902667988118143276987756536732157980120381768765388882363050437941001294782824239256900991400792280221341411849074595634905027463602430191960742982213441043331604546740427228439781475932705369981914496038885734556450611177582237176757829884938737452630662601760317294273561246569775101367969773539919248909414794864708794908857848012996447043282540388346990447449091227134336784040751979838876773611494372717371610011194475298856178052708883358260171885225547274724457388412206529097699109900855893092788052134195953262355362804475036495688179197889378313925501797131398818083887413066825245382890038991361848260441826512078259193478710899927462660822189233276423066433141372472048023634452941439923367450426817569998036108583792379366822635542817007268622441091721778747957227527014283657454444303110525821997069713052978070768811937292654442472252336598821811769022119946750868956345993789237099102882005534614991403887285739301281071641948720634289787445583499952601800595483432595386328463275022283627103755138784632001377925004540873622222749078210078102447509594702356152860875070121995431619211213622196369136748503216287425921882925809712111766164897017476423766323096215336596393338004883126100038268645446136822840721305098518157646139165147406775569743950209862075585249549904881087628154285344243754547418877407408512150471132633489430895256741482654106012132532271106420552669455804756633373048801804149720823666222512068164971656289991605085837987972438594941873583528648020006183120581681606317279199801809787913562173345646115383763469167020142952221721077841409914849075042212795690730574228855821381725107277846747230380981626968444042724505727466024617787300667527257000807484161347321130501614800701879342081557580463127027280310468008975233609184451986154009329086746555987767883332762000534244999485011802885441754912129281105367342888081671379192788155930083016468271503286831976787569385583914003094043586232812365278289696764095480004520354030691419903851845167639842645639500721967618454412660152419622837314286634091569657831434794498306281504565213131467709828347360768544851321599163383641533318815480240505157560019138108736190503798514434727548935986283860497799656311059414193014482994772022369483100888157115520195746924453339465072669125132846800188965815160735372867299109601305991114497920407173044900696189643461962472605100797147960074388346482735092549487924208691514176862286784293820321872159336416288306526981419320726428546326684892772598217752803151556044981959190217692115688566603697732594646643670586574304383261936351721735417161458883148743484643201855874743237886427465506742850723786908288549667772295000693456765522113508268918488315632855080185420049572196808589486149595617382592235710908821908317254696029949232987904580326171544700833152598226432521447338491712436372109247284856657290673634485142479933068760191237180618458553581445217197933613039534158231173679935877416145807637886649081679796986910345258061482171109712939312364143694389437934820055806859195907469338483534783260706294532878793481738525981981188812901460910870230541625705308860954179946097411351709132504449956183758541019998387395921995102876902305437388245204794494146115454680102519045998801123070699577563186095261865681237246623660268468062751706911775274608470027288494002258999547069393370299328802993478204109041677538858309110617399774377498654705397770485510323286619200793276428988399739947164708682576616431109357786602483959564970966494418361003919141972141241066887410758270111864798003982211213248765456593638176769877123720201402432801705425204782946351564891092985756404060212872222673526093752631444246226058878972869105508424706160554589142938236925479206378518421399712371791280538239229693917148031258815443217638427837736952836190536074208427891726698750791610526698913151376163953306446042381286594309230069044069267186439135011615146080105231048052277699996884192933779320921853181944167681696616735918548749042098231868410935220535280751099947408083117128419496069153826047417370945706768818406151928245557540645242878907732891346164763000083750557034829794203067303839071046496618404905716928117797793771374019077465966093226169092504858512391800224502959588367244662857408776933687384254485544234135786216609318417177542962748785206843391161541520793223473610562878111464555584793411054213270912042045688323452286544750377729910777144534904067395188269791327774846322748293894011393491425045847700987778597392708531434303795736735793572018696244472101561526770175609709862899356788886448619627971668389561398029716565139201251568892585989773919573089245328562480833849307734781209526370297887174960524597237853478334512957141415343277831374235008479878558982402269857469940194257476336191707659516163000238136228924366796679797515675202232774298353262832624517508988617374445638688366590195380168429483500431988623110444483362097512679636530625372512050179129029778221724661734977955595359248633601432279663654039536252234692747921105037594511295932252688010138793249273082914681995629675055982311045022250273343930729509917675131596338908027321106562861639484779691543349948261450970260210098358461389804145221443713931599434045746054449604365413281201198889406425842140820469009060513486643547719453135072508746119787286920274128788967706532763113324111805727332590114100790268923845485071994454204095948724358306342639993339410052924633779945583706447397531182183835910100790808835160323854961978087164158077820057112171622214059522733027876611626373584033088411693738700756953412681919476856511688597533416494829749015447951702622680337331564247625241347355250581957782186900982141631785260273457664519815118469315997424078143644926997074157081362710982099096609902298915396223578138187735736318853693547922482225691982471978329919790367296057497376460590459824763130223906076379927256809618356800089531998424581044793181217242406373980531323095431598884864312120398893473128371320624781323962060617262151270064250573635680946761249232899804779409686665004110105332367575503737977102807138436893893692065568501682626989785826883845083460281766533685269866669161720324929891954932974029119512292286882284972257278612036033217429472648763669786478985488198514263256376486304387734414884398685868035574880640929050439605301982441917900591771475055037180007307261057277617932278022370040229359097861866272804483920024186029166127854530909956475632829673329770368949171790866367392983081225533893996623229370471027699821242825912202092763399225758880498922679334109100142391206257032453346201370763816651122203435522580898445378693863211844704335613091393993534642244159512189439260011920355859744259880180266041904918226913847737109807940526388598445672240712479182310144406123521322931719013360062581913633468953195351144550812171385974547601570656449702685723555808742507821195700810508990456513843321831516828837070438308399469029359052085467093330586546061657199097492106989240463204916450228048209825857564255312626541187968247205037625881547110163299316579662109672407641281136123377097581136512599135770074284683704167530175861420949809118642319554526168687884995825165379879574230859097963399850379912084520190470896883045332549982688234985915050459542881184709449478519674298621099861868433158184934128944642223196196064768800844298885616278184352677713837651310887916010111187440351551603265049445502268030459234165521699610155412407913405009257449370756657491252341932255713998874408134923632117886262334423103910613182337117555454872078821256503718647076935192766112459478811440524268611275554354740971940928867491789331560950382897326392365053981149667242460014877406903895928688726176729022800823348936848507292965380657784983118594693456954654805823071926805150661776356402327583570294280743294421115195585421891928704012018633196012335592142966307049572232475014136426498770331115601765582398900623833623340400051207035111214007588435855994240274234565774104746682818449761857715534277434652139977861990431337021439325308506085553385408288896666858638200494259058350198221969997888813028274972225071666836114602476057926607196463452769307431613584640907324354541504537307293105614528262816422102933596850435209391800114125234179823203738777211019449776754839389196501959608346460560796796241976158644625703130184609686204369050500994171905644466931425520120395015971160022087452914666930567760940485842301224454052878680122161548181701817249528866733946015783429265657482014578799424143366354558676618714452657516333709037657332898194242610419925159120899823630828785900979010754727991146240469432485870514260582211448114470851685548984046325396642694088666440062007951264783023998901872208105327733724166792580600784528469336945060506341000866321556639816958317333899336297612977051857499332808218926965580008998375842212782777592531180230379330839717770481353228004427583805489024187569515439044340715267829078234823386305840085685016480108181335939799386855015296112516820751210988953963113574994208131897776420717892368972124163461623053639877829066901000307399640796040562756520933365090394773777825606518413000754203763744128106166909654443492212886153700674638041660001588898304654814485934713769533687024646620911621230494865831234890628526666091284196301779686621254834399506532487472393955559660660604610094567883257127748616025538840928241379201428092735814383865071434418226348624496886757004516099122025478450886867298191056579574656919487089410975987047332153565222573651610399028537398421136455026664788923709134594352083013909275238551982190003810053712457470409395750673332652873791666401292881626077086764797562155252391304191643318277888204393778088652949172674735857917911027965694194254305111088466814853999412563549062516889599225012377719390864248678408262380664408747717000812488840337450106953365112323680477087465624272242409051912948865833349186265659335596439342851391305978979884733171734590335206017198586815190040269234751499546155149441385847410974206969026857796378310241246497629170429567500147153261800713962645762008902351637210051139464587473303509489717111398050732830870353510721945741008707280869402346997810920401623473921146789588644884197338956748829512936334932513110963444029189953934625637361321030919493999539294514650154626845179626955755297120650760097885216756152259472502263053056912297058238888775677967634088430916911008947173804891179738328131551777443369366939269127061082148633859816230469418998142730678283154877485638756027915342646479435274571589684123687558382364922543716858582885820533929305687076281896213699810915060100768048378862162107901129500011453018389786939147560298641420808545147968513816087100952335966534614246230881098685742352000286703831578247728636958858273419845410182425875458866144691566603187218493742421569050758082193732371292364691049425490421692347023479327394159727260168817273598303885782050331266091800075051164477509814997229076513587457496791737061925959939558068823417233251345320170842358599221653785156976261789984457226165453690109605701397411699614238599797290877963029787680055482259222908378761925826857290079205910125748442571001094006682775573344308097408107664060694264194419549491395886324427619976005872329313128718080489416114402767129759739413167231315469778829120260464190633443193393354271908258616133913234079047299340653567972954645237766264450851793441660983858215348829015145187960107668627005338338884805536339609976479825025374133230818934183808375835277962152861878402157509398478006404306944211682528127825584719862917240483679197520193735615585350839298892673546375436356515246591905940348969977970278121033429133996336063300906927661398180178502889817412425205166800863984606758661679494622755043328496793111067153368207511294448181282868285558496285335244003127838705775352400699968412545852881114167880816215102270839730751508615295558942183181975723452159131912900927972151442669603510387351860715684850922632497898697207172058702906344525197715736223714949274633569870489676826062741988599858115457160577963272528330880119531226784769543620856398056108885080190716972536280587238057344654086127545810989805421698833189291188466693247090915269459275623528345350485960577165108071082770512085962221630350853866628655940857225050611934300136643376239024304893806949569273257537638683701254514838624525954541274756023930303603050895668511550760827221935370576874111730003894129797205345502632626350909095039931352550860529995379532571777752950482541125072771830592730905476249578766293691204957148529216925683170148091385283502092611317539009185021845024409597465350067509868500734092067303714740637596993242027064465475278931130856774389847869965187123602914223668589802701177342313876356194192475640041654875506230974856093636891864612586516588903177406170129846892946502302481741904457737065063947631189771384294719505823600117530377247261526841406340678371803336035070171616929803918731185069250913568288562525258325494134704332053694958649798607645116300303419225575896844651375165526392293248417490944650317420550322507489682965668176562095961018381466214548110041998445799235606646660013921323941494799616003998745027757887363754991680395740804556331432581525869184442601793989121043136212177027923990262405808394806820339685181352469439183688119547187864091266291694158355423437063160557207068602854321802600674375334222589164123894322894591569860109890150393712393041646023037964641040397655902300804516045107520646481797970970398280685703744496353701727946996951740385093896699370302688495861647371439832070216785983944979170816217364029855565353988279216648328374681063246650433495593487382306994593504774159750174467818228915999840589275685844047174746297483236422460309676828653046010774008830454197914178014827651578628815836098306625975098286083816510520047671519253261037446197365099507093136758924290056225811456985794309238560222848431901382985547222869666720107809153697003881392641735434802416769961539898836331057604804608806959419648868439881432396127579309380125489216176568181037927540006085625251912823301698197356437449132936084476283009450245367218167016906361036658223917944068459127692455110574935450755019612127935879990442916038818413086733962731930923217860029445648512558475058951802759537623251979524894354978214278959309714844686216455697240529938622307047702152180802928118198710686028214024917862964673318645377362065872969688103147730681946728295413113750230445298516422987206567615764794352657067235698699454685796179516487186043252140042235068661251903806458963175824433595564859599423004298836210216311028337249449702670580866762137015579407067756493127376027008929993669906345702375210781124214206282502900894684324112978481967203340249363596586344593847576849470126532676434587543151908047803158481926617589574796086653318896004641478542752588486852597878685131458800939174100142766264308208631702493997863374224883835785343459149238662217934687970905449149216491363406228732189021195310544457947717394144580319628403052789813154830294781244463640301267444912869366258970748812309707949479026229109505738634905549162428669323796975242565990940844718206056109652243831357428643828052150698798876654410289477601970829460293247024176617009718258371116958144621414067463111890455601362552794109094116793907303808173707162061698648978638133161617560255369882057690931538025815507233234108957591328259942313243446092772463243894413139014016907538497269429093090088188749044877764511872462317121151042660717881063205779077087007174804950758251743774832530080967256854017606640846044569142323602633843693136383735158791199030871867339517404841598113897920294726786887780053758461618806677861140938916467073442216340885754887710217240843719850810730880912389210076576304139159829977011647960183196554063936564994329355760236400286491815667219863329125825079222009781074270556653784951702286877578254853731567560643631280548988318206802681330435343375007392296139929376498672836311834042974838341075719055232608418052874941842974436496083455151486969462107805540613090896453413464045985900876310215074899530055390741274862531789677452191310254259551611362629885790284561308843004426346395302956372796693163429824453954023988099734262345239074919813097965886062993626912929225657111761806392732140485273704984010898713209919819113357168534887329309948556208931403084763314580380131499867964367428103376602330309707846241636024704377003654995455613509852441269905361463436302188544438441231389039879694582118377310653221464151719503831538540124955454635901285743133062603097103482873674151332082940287175890942526947900714260228229016630194195127648773943207005091483345324974367883625662559065540067091978604434860459216622379816464362522040562780245914717880785906851566513485356730461148541151201958583874268990554596309067698573042555097698806297331253242611351876279696395025644109918920924064326642084781722062140454463818316333165884210274622780585551919663054475106246380623070599774022640983230773934222768910055568678594164542096523525666167575549584892678085534305048577548292143391042841642261866807242401593413271273767105856234996291491560309553946543641425324382783948247225044997304253117295924618945896498825288068574873250518154411024313574320244623053939463762102316700757725222855580762704062677425352127343494948748277675021914574771156986713273912985102393836287057543506867869649744623607208007732726792306974452684726634395003741435602467042995623899511541297939038064521560065154701262343926701662407934315106289920333626274498995581077597971576729862466474087264859566320980946928259947907582975559028570125507622614314462817159301404440851524153734912782574819375010059912574544363040662306235532669290490455518385864604228102927924733978852404982567153129641198256447576690869735578356850822103239022420798085443068530474161243626601702426888688473361408273263746217292776471319236444238198892269693587860399662876670778699460113844634682274505068634601406827381723045617618628816399781027039136989041227901291986991168540670097447162318688418372002907597742027114675272506468379016440305733703460289584540190364324078907340292188423317359023190012564333993304384343622639348435695941519899352498394093162840626152004361409741713400178183366580888219978907586241025452960414304476290210673845206208583133819251703837103537018810599507398390598018264391440542915157807677586017620553109040985608306788968256965322677970753440325785940823751540105860233543453159047522496399432046972687623913390296005456526888429085945372633230872380129368920659565691457856594968791225432488875750329243916455651730321253872643898592079454827825872410479688267765131401176435020645626170008729645524106919176634414284868937933502111571361271579694061334258298628208954815546597505052684295689779087955944388087496404249373704905778523041600718500609200839973141126311820578320192198079257871915056129662317881711176525577048094320998010821543994869339701313104962151803803659804527068890130166739959290858461821917702445785389989764041000128863529677898735617216021382676760557575478072111173041227719509002423218345565294604165523271795108670597746221922394865357862434249381545556382580732015430589514287566160954358479388904369050264577120489442633459370970874229960848363550920409423034792956134417363696030107748155625230875656274813577574247430947050744323425804501943332064655998474077517802857978539615364770935789401391277699742610179348134290543834355873588085931671319948255651073453132603242316456683134707597988709363584980988691249848836554783021357706597581818572203491933799189616253920398514831236027154909216010383062390839026274559207339065601870534872065981920165594427934372012745561643644781943385787456915412888473267020801534236027529126264490764729686069530008703271043370623165952362669608535532002701546422902732993305247011876510828607216353635769963663737173451888706041654819304635550659879914828761034118495346557503471017319249202420708843909117959878579128140720655718894421113398160545662684005030315415440471878761993148339035240299057636950263212411639448967602408249018153214011789782865815335770917648318748229431123833744214042576168705101531845145492998892071918278630218650288535681663747463564458549985625546347862671962132192847742117311534163253490485211981262923892851101802797240657022179686800912343411968096313039788806254180585306244080366295349000086882592296916032580165318162513228409510572947839884858958160888794033667211656637111895006304357841115823478461248110731831357276465928407709516475272031514093483683966503972237516343957122394767339781611710879136811503761744372259143828809027776866832486285211608462674121490557214025771992716584504716558013950407366589027690349360979956174575077121394912370597732495732943779067791191775987930450415305562987788711843605453442322821743854429409680275708620090866226739041745682466150431999895088359135337658904523441472495711011711780738316151562935745074575118250124513907545213048958651406159940883366500216518114845606077827271913646865580315531990100358208807880119192929974351068704170433146295130101990406322300254734817137283499509209751046125432193735794219114804697104363946788647631529556866879247243065812727809699639149135825040667409950872796827264440849152744472908573551455401693796060109554517385407430719249158165779003639692522210786839172196409223496185198283645508895824603150101052126550708321369883162996273265092558350957958287772875938016943834528958051656777168324872256090349206183182903535066718760559409519188611635409828936337897223401955271128496740344831631557454877284549039798967074223361257173944783566514605202651891346902105601256818495767812410445462414115526963181368597338175984482241221102722852990529778276605137850869010538786723025438286840330681778009848399355957600553135955686084026711365846654240854694726803452994362996731931522124736310261448455198425588744532259795912056285023533535242274554550673926089432380217742312194316234291069554880641919682985713009884866152208326587251744507931841390433604960528964195896390103416485239228635637880029428096724809586227615211812168240338701389310188969993329304585103705733933285433617004581713047506342275999773448067080881377729718275832292106195995462195227338866311869895374900082679832049794970832537420371649767777090184222379690733948252104516630782518775137332681615928521517873340728781745652086825694262725636767481334527351812649000279612392588318216906306736783875760700171135832508382344426441275651699577063990717632032569225157454726380720113645787349939682469551007437557527042582713074384810244200721387464043311294093646763478443555019410280228511785164899871924779258545837657474298421308640160464581431465944433960928618429283580596729314367490964827464349304290052789967468035048832398529859742477882532909042473683656052330506772774314409510359477763561047073697411401116295395437943296152030310713366255859350242656969988400744908535332784681236390603996179995736160145688581897605500537631058196747315859234954124795924113966319543403762849759840572177221426548572963583080880330076197240307650343473029501673141002906091135315016904666670105770251520135500686411212168005206221755646714445140859086972335373210989872426620102263542057693436098149103658178470548397191815637225176914304813130124490185336414791065039681893020895526416271864259630330278892414189894901351318735640932000085618792606592369083858343870817001633297674768805272070182702914289855279167693160381635159902407484644752827040723327668966665877266593523847361831294683423815862798550629543803035947207844536639732369013915004207074448171067571449019887425352752020382913333893707273020736314037063090100758159191761435307099319448637437096691384224444740095650693127286937476099153810893657863174108054602454689586922684138560892985988086358078489963108899985981529484644128070904107223626388885756737639653398213297677924702033124833711133662061743638891825031106325173034123569091600181748162753023664720915626165401946022623798049881079519727495791472185536054915421102353257281945064381636514991978499396286807393911351460786321896837257955213763904470130413582796920967025459110089212547172550426858074668009166035219360067717465517185730936585828597518331785995924796182185660035347504211778895087938645450339277052130951633668459488780943705835592721729090799578177268168365018495255073025410489804092435387204830004532297518461854365977001969770381374557532603202320858498638347240362214773148037855817255068818195677011265427783751213979328761665061480067457591045287707317717485999271205235684550376383634842179022559925618503530434243913390846120394009561788035315967434701487436801220714737028188057226376203709417369000922644231144875868285981948655329492925909250231855724171718680990316876321390792549305654301842859534949255456362845608625874686685505613619917140328938168289643333072832556504644359487756246295106544319598633333641601355146909507792194846344663933710276880463653201716238338132721397243174183124820416988777853750076413478742749402051058135968208964580654021850182779301895862589733996619134290219073781667513739536174938816444864546922614232985185687895827081915445894110919584589081037606818957608589745221688040571368967160745915636100028396543444740554567063154295899160748904768078076102247788685865229247097475526435650081878037912529150184709327828202134761958598553666664908843524566911801896706027848145230531375071889771960072476595271159541034392133944934379559363272429156904232334645340738426505445682276878472789090332627232577742200877865619099691781447805051089260372167027472173024612658714348118108321581111666316964855002935165461476674343342008493476627970335032413945183506510757361167336597112051162814808907946245772841330878271551847625687854649158908205401912975078592687576635816979163945102275662668672273381679322181320150669574864070870097306556988203064181056379842176248355511253214607078348536153372187184262201783870695302522752389858032674844071065830134510786890047657713176208447163546982008399103392160185561188754731892125572857153426502532172506451352370025533087397107950222385309665611915469618853208789309987455164269583225274950349456844668529043928174218432853434186630470656950305268272615685503739698888426017723538385827519672523011790404906954792061873899832531535787945718268229277498762485866916729063472768536598341064373126605017583016046552255723698092148082762383933675363017208142033733843327747594365068653583086920948638001107854161959545827919023160589730284709898599510999620001205613070291435000675819691209126570354873046456157063943795848978767058813506036904619305076420655302144933344957534064506794896861696818486036131198875096462974218577295436452767293344395609189906460226558242376849328868968532049594260219240299740089650157413340705018818941389089440353930951541859781129118573506782067826864371301917844740614760760339117181094944577350646988280417031124663362522945593540973105411815898637161051848340352249024428545093461754921651252135223698388658091050943000939415608811498953559454470500233876298888303431139961584017139145011546813827097518036843214803729286838322400453174197656296919372156243317245189007801793515311453595217818920739733477488261804041364619847410150334855867682803183784833105108537046424746420279081590307829009646028796157527105794671927463255937387744684957089197294883136491168604169047839399975832788856631774127494057762514751732251933989299944270600222771976521381445807926004919603308766033440084277619739228516875322222121969736660696227587485339408060583061030071378019190038312284438753482797555630070008410737640459062065098893192452934100014892250179704622608767339096985293029211963876741679640356888198502278857600697783448327535441002399268923607413563583270086457326112155995173105196697518988020120940030796724090835966085072646917646192899772194388484127352354888104872451177314081818780728423037012391344538787674021317953020163078042185282035034585974731942559099755510003324283389634834266612593066501220900440002929334111155014994994629727840502602447354326004502724645471676420847358569814264581467304774572406169811807469323606824001739728724741409752427620640675988185643868741374629141587725760880753214464373857098109772816228737772270305116189354626904026772571060908269682140750185041952074212037672762571569725323363993942501606208111735174550852416183982658980547491779090829431801551017002529991186623025213347822397740081485410081306591464186430626229579757816612325448433403135875039148066503332830049717039297811687128074368508409241100662464333369820554188720289079290776626870003895422811785918138586219848711292967533214489449166869225396715726244864772520574655597418421175294384485056761437825692252374205685701445584441897110600693140129916425059780934241826535990978977316436122562515679952493335612157260616588824548511066995232776204127363513059765025971669796529543662067168480812278423471690898919566534984430865389946250145548284194977065804589851222447059406244805842232424328771934798776314585037991314976395572464100955257439760406153083837775393400728354574557050970362672523102584813446548954689526139780490060077272858479658611555941246165885452131463648356653950201864942027527893730826915610403261578779594144255660940783233404110219254467089861017048279083699423519720189796094072831692760040055542914589815952152953823399248122047515313995758709466893485693752583699796978667717987554184683829357573036515097002368046337635394341565085665354237287780806663098541074641002844778480230035077413999509263159812197840278975456268031766142545992198184534700449416041683477673577619916156536122823133698725534623199338332685872832895690764233187738417905481391789713253598890612373308162094556382124938379920928426028907259164140407409151612141368762773325948215184700291175870794400739202045958800182716672676412811738396393455997970850518634991712307362651343985504352758152757233427813633910701444768356735145711720691749325829473509209707467473425638406226178556759028680261920511871013787427255406582483978331233707695231435768465595124835924570393368990649618053913982825891622259018912093256152147004367289461995926609223214533887394641133149066950470359087204258858842558184584607675422669265207574684632283233941543551686927378067195931669473380168335117667474621861559605038278092455750429869709896564611417818792445125513043660337698105121893089904962692340729006471458544038091379156599594159507726013792913815801115443108993037054796386254892995241290900631205467042833129320085365420041477010083018065056292604022211784774696437390599101550155633435328910882608105214451966739683576457057538430472480151950007178314343073043680942907356492067735237351102186075192304707026842376477530824769376490536978386519467825016159111560124987847073623144430950767084784778708819228453855754975307065899942469565422522469617337274941959647971550190582044873783357787154111020871909196518338393867938106336988233764179506100355346820398248162168345312818906134178968181597047753176738026314581037865666788585713229887690456023098189100909692104762698531160517917978353264960884191468975003643395139865828354364503950571924279062546245363457322574327336663941089971144121668175298305542793337303310366885472830263077768164797400966514346164462911245804627606864573600086282942637917562177636589904052327041253391317651308192527497189276036587813684766010283863727806015829631160383850321708384297838073809749780508065089516158926056282514065071012877146185714545202604730096142085748924510563379480944114849657508114550849570466872688898933983022005744237098771883230522673795568788911343800938818360520204285748746224577886417428018108887769293303480716782349164328683314070638477302718409897246281541808979732663832630292242301563243636145271052654787859620576981170198199093616815806896696397818977014859695817601916864868124806409783115851386832627402987123478783018988335525402764148479906867130246380807048544460097312898595032892156221972816796309932871042697831363915117463841500453394457040959104663421107929143479589517315868244374533270240044071204176071821199465771639928279823901517922284333883946983900677814600634561243970865951003061584665035433358367497082912792288225659607592354414852757929033168450593120645361158100017242371054060417559609488409731932841019060844389730234498282760433586072379585798168601963767779216948384029647607352948844022209361127446027723217903458380148828049458306014237856794941498493200766605826880434548995785317275564147901582310924732381432103453638214050304329347296067067488164637240409254378994190924229062296651315333263106079693309944661898067388729099943812516656267816976365130917378957791743079741842761586760963967909200117618801492837331933599682176638112811074703567877568040792318425778985309478649492758233070145036728110411178520897014660759358978376761494370605800326711540208801095603716219678923973227687203782497573101958607251543611341199562402389257408013547854097720246276643794003381464350097003474409877637300746555351937105804848639347217967638288053686067197568133278728701326535884702380899147123051489421203022676549647791693513804038715556459518500945811291445621715901329581753761015434543665818342614702979707895888019408544741587599385849661242803116865765286036840581898396129351054439892698457658736043610377182752622074469277410616863585385699744415496223120111789232647421335324277374372126515308226872237037808698932947918020460947043149392252056415212977087315712468212785120229987110890600592277635565527599214400362159781696347422510466758353942212699840849356509066768997098362606058433351985659306561040048976911934083664226311446682901789939945101721770970481866749497576340603216469265089851133690358204215586371996210603526143522601177075879445621093826287508244925198977270172492910326265065336721659647802851487648667501810833123796065014663110434043582197267396275463181000371461698652456018872152945214674450522966554738853009724574401594741151443428859817704844013424369634015036876457165778081613764330105977646655022131497532176511493499373345964572153552874771423863897083577195322958739765949618209610115897105497010659166448604406677638135153793033043781774149200891308192831726716815190648033011239219168504639205931346014026142484857210373315272789927733522181802167423994034981857046623242235282936652651390630536700182670926194932984731538221142261305990941708064610987096923154783828735456318428132809544615801723867691591271096483407157486606946483831681767406113389509766101060954896162044370117083528985248991668118141407638892252390457838725606212001832583494788988360296013750161848014126068780920296429998171387109452818866505850244885717263612165696754057266671544979337020020805557175449908439203731612608331832311963024970001250225171012426367135224032674167560540666266853369277239440796238220807427624976600222056767716441053473449230707623033421201793891985873540706836608018968295633567982379362640656602222539907380221004071269719772743339588656982484123768615916726699376017977592218466694718629452534932811785072708934983553365556146377418612664596384083375504898037721950888992966451438429737852790588155066139761891563369355000200181113045285400608636533714477901832723132096643043470123552595839864204906932982623394873208502443206465916399025839959590282775592251523039450660772290301130534517093629657893475893778389012290783386452138915964285799374872943974667313151266479793164202307765854568164597139087961832157595081663904392838246610406351383772166268692190713317626065249602025724819673145155225973950626857702186698444964582011014950524972576746309000828380481020851626147466520005057227072196956109407247591990359921784611808080320251759487155789176243171496049635670502963031331100519572213737168361468535879461646574382992252972322505736479554020719172466688315362118300028951489383439645151484447625523599783817666542252658053316266010745021768329473168575681200626111474476207498678164416460573918059973867385590773990552524298087891856456818084204637177688007507272770946943171195268629709652869435426290826282872359193656427816206020602407520438494574985467989109447346378297753511873500946799650449043424720069905078733912444579248360483887074640115061891656125585497841136153308198506040862938992550311150845823803658615724353193251605750913612659146762632845591315673303255596520068173043891078548727090194671073874753410091520460823836343684138845823494054966052241833932643060373310156419104639623806972335683254449176682484302432088425096589385477836379974423260266631375237928880596293982216790731249068288828053213147192490561177164889192201789954369061913318734027502786603827373954378316296444544554271912468316403943751693765087469338693629231512187247295118664453952630285898092077343680842709631612139897934712556680476278539521376107838414842024235649006541804544884669247720408690807628350695704907420563857544092191989421558398459893319031648247657056118341890505358616158940471570031880822283727245434816494991518560033176572499213479291067932015783504530164898025496821220310672075467891039372082604994738889479485775861329619013503755072240743976027238093051206895147246504691682145035152133537238328983031006643161751377777464963504083918673459360922620253766200107056230402910530136691286255684896175125000786692457966978872652057436363256759819940169741256602443022496371816720928798598298150190197562848240225925351964899431431962337997239178180287451255598095933334310926906072606790162845885254024026363092312255940613212444510378440288521273450276484595040350488792190476411403463277367080750420777230485867523102286300422974050075973541516626649701807224577457400172461794842142480017036164266329889620797730534569189174617512697146544610404524203974364443067435788871709535605394938230771024377726369095805921021424001299846282647970396182061337443741346083575117094919536712833463102214957607854996155777175454818204369145370210620217886565947591631820141779532732151550710503933374270686408447955463242030012246928929316976888764597375434887269342298029955202973833022496602557119570148160696382863579975066983648609139649326191106684093573678583272293398142264171308692738601246402040399384074420995787171108711351765152688926380982816911003806686742025991561540194863566729629687883270366151469770776128066721210562763385577933192740116150904367674350004643290759021627004726122957214246569979263357036760958952229229017362761016752823685197417763778749852831036403611360639730640720267050645624451155316318564711786637679651418244356593439263597199263846828541236651222955466140170318813936189027362628923539745852065242150451633452594773227555764320622401806801446777058648954816304926473707961697478159591744324862786997923428568196303965555983359500058101022469804127607122467780761451045356522914507441427500581714878882726334200224849129305419289855216681516182934254812063246464016477441978502070067221320483373048176579244416562110701701249623736268912928855996817487364024423215076580953087034268119493335452832679162327579499108457904147368506971806458865325486311657594692506232444577648464609649581204131100313025102838334244645040748925953904185622816570912604931851917545161374713151029119333192520616490225586688859887895041371455162767867866773398050556580200287509081048615828108514938646742947524869803155323470462486212816770278697594546610956501263879256579654848314400995898364425559773494554952030795843585915837849770373072904533977587729237276575901192259183293752421693634063962433755483169310538276640772200946960446407020729282286376934331969375948754153422231406791224226396018022119390705166569858626095096326437088724625474056513583487938646864846464597717076216314061111239803672100845393486794281672033427180168676290107022373094314721794439488949711307422669876335780953040745827186445849673394136191713422450026669534339096847112606082913754165067788011195084138588489419068073304086627979029968224526897365955720734344363805206908486342844420115952512312700639368395032901221985701494160653166211831763333288311383212775745372620528074565817227866222039707490683231199172307118280875767699989267179129099863785597050892177778482590678953524304440786985444207703180044267339801165816811451413381799778223584716868129537586326624043969431912949141379528690056248078344367091348104290402149481060609539023879357468337109492375836914941760872600531875238297371611005905976495202466802020609181554780200431313457502404046365138496064882469090304220223603627102154833613602651040546266581375393303450602277183354965224906570928493191341461109879493176537936405705014977877349566804175901900178549223052631110738170378822422288561708134552501004562074691110111054961559381508451989513157227832826751178728382594122675795492976557869986953837052102722341336784775803887630932172787217358881959320745614997016355208853181207415610177608468431578588134670288927052248570667913856945407186703099679175928222195579063236649358804319536944786205226693912711329163380459384535570938036924337845417737858105080644839194931511253637680562056913067191785928798528968081623893038990169245749453928757537799513670404349977048717287547158027787641907220826391358174323486200775412365166768276951190186108409127452862040203014496712831683457311704779214039023309543682185457854727120272243061366488893698055033626647770664626997089175856297322255761576361660718199478759823531357341875313391703961418937249334889808900902301560699435509929267182176105785967192100921631885286634549509393735677005186434365019670165617385803222840386842506044703839456260557034390111334957404281896990932861984073460492145998802808456436379354057092273566283346389241423201526037139018939986766971105723691822693748812575280225493169028994477854984262124317817659320919341428829969675211550113600001964299593640524464070882640989518028772438329060141371685118274821004831852046482059309146065700820938153077561107988088876267110243798035014258182746788612923530767879787214251713544041755596067778262328587124429141982565847594743705529095116517328547055819004858254730231323345833882781666269277259915702146137193759356644128232526307684455620518135562751540915537957271241992228490869897917576210608446413308260641040939171526348994603047231848973127525330218273940241808464571088712181669329211418511808926913847836956490357797654651200785517104853817444363893034832946736375440771982775833666094251466198306654311307250182343098152786114291260851739375367037875367185373651253842608569086605792286697744116883906820805006559808008039963300346008602408242308609021212798935383924295560431715531987679791674280356683728045794524690392728593182562104240035053043027062188914753695429739995187650028869130891963951222480975807041345608545052711812841388015350747233023725229215597525990848572048845842568892835024742429540933786789467494891805600682018558748540265526805081666977307072541193778103937894500022334478922841111273085816566942480657556733684548762233149195226235918130087090637701477807079951578878613052101185369128067026139620841880203762180726129762458418663361820352087707711857458778520032166012265339499125475054448282405501388182572293712605774953293342565506028963711538904544667528777304482501399544794314993928574711676788599386446592415128781211566829576635223808926110971868840071618434140825498655215088332261511957645941255567223660719964478314125218117504052016983376066167081753277305932568617306892362249422727145700543663241188746022611894126377220667956698835890775839656154248198009017603569445500483437167296815619160061843202842161993872852268356796364109505863922510632044396960143976739169096384799957796719854994614800540435721814393021588875047700237609626166157590211669200724441201184791340777213277935030197812537706808224352507704719622535631465587862665392167988561196710718407744287234886975364076355878334441277576089156288143386176708443858472581697756577498187000534948450598599060377804462181530261631220926957683044072023861814357472252993000662963507612576735883205513728178730521132401894750327725142577630854988329726174888844560777756345448880263393328558491335497208300986964779703220856500127070094252314454324253863058109835842520824578229836440971690988954689598926388811135686028135423937975338310042796707898199820276282972458769054579089489465646081959218463622420939870756001438752391409582179505101577483419454821833813937452202809246742869848939320413216792222537671639317389329700812375533576012696615479557722536659394997464082075403409392572922700740249521996897006414384157795128515439176727630955195068074682126215382250147554919516830268370581807372193258704014299426735781552222083556432447934615015573847584419962895745911153170234578477738886382201847741811162810531228335154263833415306180850955617796319168396693990558386723025397946081082402116686537107792335525250122366410279644013405291900953954277348389068089530656959351062399113765167874313907137252943234045671293528287610299146762601822100752832957293440363443209911648342360158994706087391129201250864252622669913090624836082224174249513562945251018303321931456986952142771227530543800263237350113674838283592413912288795896277247404157705107146307507294803194345583045221802211186883020987505497759187909953490602931235019960081779369832149926253461790911507805553236394252081947040314317084786149595753876613973370074157835378923147751088959042238123155920138606916791744926710319509641541246969974272390062234760940271270185541141428517424285149921435773672198878745763972537119547935504638553529429027246845344894961157336953814401512278036197064580287924400448768158056626309856721213514729567550349753424282038057455516798279255282478879126428472945487318786969562713250314579133041050861488442388136564425195874709982359368327397154169859088736467396615882971498442612950040064828687378439524988889371359798375468241904375439928253569628580904682586609166993943084713990966964251658196784054498914392324596645344802693495669072331535329653587219949697729658298462033692572158502274514165373846893203354268072966321587338661773806922598388925041551288428463613940136481768886231507462236418228072089969655778820668430248650735952553476198958121996581855253297635758374727767378465040273419884549336670288229375649072615521239954448019421412947579526810325886997797425821682500776745080650502363838878883548147733670760865936261639971299803505142864997029514599596244864771306856116476427606783353333300898424229847616364261411106394929579867929443116803478601206473584398017333714884542316694185366545507195619874969701852101597441630789948850176127892898655245352243655047781318631971550623350397147921187275505811337851155682439106000093926052038861278711748830080718831970942393368221378561067930272970862677681836299363713559500632206811908966377128748235452662927842833263170507980327913101263407404658036159042803948867535194913162388991198100746172545815304055972988800043597464511538077317956087033022055571639457594951923380124284765334738166792297658797605572653393188167541132599118963165607479323566237253956839345225646991979454320356519905734752848315728898329276808110316607682666220172712628295458554494188966619377655708146570797010295969361434656759358755467705799001616508465772731545374966041219206860413620733026681272133860934934689726880232064821925475532490620635853275014904891378185216796823258301113489626978155920622795746650479511271534012299893903445932169403657706316615462782193732076711283730349317908802206774694448242811982586819611117202433068058078928978979638096078353612099603534586898468819314400270366077304153310540754739244643323675885486352506801909137089546637279224477293781347217615141899081235187356764813086929104501763230280881561182899022377880109474680865020712486189601463352897147417906237057964632360755107232068083824329445997908893368125165085691547119556625757196381862685579766008826761478152768801579894468716318441947287300213248268782959045949910330436466292638588198033401357687056049887114015178990268615395823317385421077846829395308957347430549262946335654815964194410737766539133323901191503151104848596057212404572071077381355721537764981989718150468017049215470255925869302407376019111063153368588395474819977458757908542879647890631373127658313595225066646258290392780635035610189351811795509630038942174064102706173318349225525688458726125563858424578095784757333002850233696534809944149310852077031129425841836224942187356700262750290510540230524261937665237446493890998123837666542256780852007064095307553254821769407236856682820354666676275879054570663683473174381566867629735644548730146127824001277063804785809426095216835612622519512999127554248184688098950633938045769730801449078793693013243712834188274951057459650602850574360123860939749784955003365077825309687790150937667188091169755461575347342459547590813317983965627719898648747363061970245415695630157306100311574582672770748720979566812416006948349907079096242012296250190507542267650011290776105624379452686405346759239756726545903549127481185418375452191932359935307779977632989844959159062084594542880379449063111828731794265725339104653205403791987470287826286667138618148959926686587447830715889192118938431056547191159934329413899265753262900001779002645677524193002913537866036643735094895372660883295764753463166684409102998299797965057778438542548328427477787026414968095927895557998614669683387962841530260218360837452063817883458361859792753290400046829711381295626113555819789583041396309148900857683709809069400867118138628589917455376496471027871686511896284277588320069132480465475808686799085618701462765948401971161826651418231481179043809616702722694104409533566176824639270955623385782419760546798433147165346087554286086993213599710564949510643252301290847022582534096723921534055749352185581828468735859103756739244202205263643346648424399745382294402956812105063284560275929015702281565315088087781649342513128085642618614278030907096902104376491337138515934054182177004417736193724194611752610345328630405877234869487496106193626132781764141785220121918937777902769400292713811895301263453353415402041921000944248703132825153048010584640747761894190368081170861539089533383164553461630317548658183200781308420189209164621202585212166461616085881738847761152355123945712295410371374775242523472996613800221372252662248970067524508781727031978401090819768150629208727718053526002204588121987921741638817757375057154836108712678199084463074881353169110070007844543556886200976987481163412623536301501730745580496698532347585634909652256806496994751948201100462922182524284150440678913763460427821145645481021040621471953505781779481916071819095241013696081773543780869102063694134719430721501397069271324261765300957894564167469816314797525431662643454106276861798045043387587032393401949809087453629049564536156133145823571466814342953154004641127016292794496549314798385879859572400661481638394436240564481092976132149509971711475222002502044302819795138158958357619211958830380250658885076482634721614108323431339214343662297278594056581732187892829285038284967868625692328671127296720763362645671180411256592798761857851645413830664378570762152558630044115297702252548222124305092197587815726575203064321066092081343789471509682250630456111951227143089990932545022102344795787832371104905888853449695987625679542703141116420188413037445064635003996915225823498923472754756747349779299046542754607529898680083593355364244114377997074895627489578213849217881200445886129733170650755261623871640372446224920947420326518701606810959612771384331990448901367012650588200162064210599224483025893811513781910179961824383778921438842536521572319457039884023984616761296970319643788831692326841206290955902159862313514265925211554760958932546257475957823160222626752205038918115058120718521901353221327755062331714047920115398130488345607848020745635325898861071555677337174230696734313168598293133697298182903093991133353449276230834801075415745105701780992162666421250915763117467593967626458593878630805726820324358580852088937048025273528023652229733330407878900990002534139996794259344049883609568466013142305139796146413220212750629040072837202568543549432328177819305723963950059081611581555071759450047982882343928663022118731266735843566429756224163050823276789716250012878348215793370697644703149927854336932677489066011624606475473016245162130075085060858084238178022705118249810092174224301087428587149493789126759689576938932941018103518815966136734751928073038170546184357564259618501553474218452916925057342832369689121932257385429552720328595745569055244578520714840472723723875253443472034076953676256777692696427453540258157875931332535967858932080644453114114534193120569539181298030385731060772779884147557664080910236257064319372608722111775210900409673747141270141385724187355438747975061286724648832041170556250462404452870848347808509385108820578003054496857990906134745008678945468236157757200988527009206031503036610531088424602850441837149761257154035741184551377213932757075392633860694094630116970928763737195109914971527874090686950164733898849260389775893025298620478291922477121701155195453643475969304574863477070851980738649091840833405920885373157432242235156788251297890357084616997153741828515430634003353921152647889327208872910211998666759860282176283789014700624181852524738797622774453941454245083172639808835024332940248532455213666882196532939566539021007560381901042921152632638508389291479379909155530415325595807850654159844861473994047692117393833470776867045589686622683136713800976030462834066689221118410937633003699243933040991696161869866423206633230792363300110526086703948201438163672812437328367680438175250544298639838898273303060440488144577969893011400320658422081552585064043032713255616329000661593237556094122668186362636046514892573982275130323781349757591168885700642395346370263994935644088809433377789016201846146127283760733542941683714137056619934450231380093375378564362272186925136964529624424277220798974047315183143554682186956882560225203478806485444488823721311399567280173466132449799746442790819295064372468724881846529285593770511679911609876046302532932110904777475936856924522398387561216365746855034222798753794703321063272756252530078585939345993051901163959728577145752585727810043724923709205670495863811317790277778259136571000483265578878278775362569088607622298569899759777031632467191389569939363639875144418785532441101671293162050205459271472921965611353945125199373661236654515812678136165838712634196507027147862382852277413431740292859093055083413048706091526392726442906010855911996965458492789700544194150587581032750945024706102607571164771477488163554962774867466211514574231826364125915961812844595853504404205842193428027282670030776843220873189967200290577300431978657488342489397000954639814689996466908994299090286819089659890771984813751207226973169866044224357586576007950554058349853012466223729420365518423290965446913942917514947488010092040011683023448725102188741415509385006253531366240924421002634334318811074526614350922912561123528930768194866793305389863582568219207418478998365591016528150949698104974491309275256196404248234680288721105237714279172028244480893354124820621024991713879653690739967327059463076065354150176039308973913783873732138613369989641840950109532223354043206291114426868479741810301020145989566874588663944165624625690944507747755688970031106282368413009227551050600692180774662642571221438181872298246228687145619297427976151241799370778276588801490324020636271260466550972382862586055374086025199070548736796748205884440270659045559733159306733676322302304746483659802947167371598940050157668460692414447227016540303837249712113354431618782019983793039998409998953397771872998830793252877288830662428834935335273196337957598397204554914418527334311655323817928342413305958978247087527925908314954050095658925060568684574224076298774880962463082074818217218607012804259424669649297755518922826158557170095948309328124297152399854592366364325186215810386628637006521286029167035235158039452321006250409347581915958942477750531415635607948119288633001481159134760797992142267455672068472311489516997821633101647736734959308905540799177414731458866480305375399662640756993161397185825731734739170678436108823348757380800109060142044213864184019952346342400623458409943763614256523118997776793648127930664017789142439391031314070986085157602215507384754107613758667908145804760124697498512791698938121280044422494829400006495277297605721511993624607472981589902117569950469937659247844170772468307850676389349921674079733976493153644294177239686150850913781366131163780609494724145714905370298685128496507720743224486049548029492899913656697209249092223657843384768579438228691690915761588185190873494863729954976007587845528901191137683056163020146857205739503153735623797807646103079656155357857963931487340854680200891897064744542176996468571544433262079692330987292450128530130290058564535072201486139122144635625403148209055854927579075688613797388861829544485293502266188735334955377652060096701981468481687276430051407313117525551012996658190809660571576738002747903727570380747862411080890465365466474684457844785413775432641749340268273772677130568980568615832106198383819176669887277429544522549014124801388642345000437609683633449012560968152560014989145001165960167275614429122070906005196580284365855862834352269517658242023498898993807713519032319612400211460580774397590260421952957637831261168096825620022114911986477489992033635258113416350385524732750226034081458430214116996887421761250830317180979378624348903426611388470838812162674642149070847352193046917084605022373662078488938651873348704126339555664136479793777605431400337736358325035976546308866508489767199753660877486326165831587401444391850844744375625093161211311034961071291030328556720514310109415221215898568965209549765001092332947737413922833014411539701988720731940232711445066460301616377341704801261994485590394678738448672123406754455046565395310162972485002741206616592658757361833325539571773114297376279286595637672341673087064006493944005227395322965333558819419981988377608692299563889074230835838715422727555444338157620474523706835110819816932956472477843313798472056506985377091865930014169696208605644406212895840486134622631720871415805235804696372400842169258843122826939426661277167150246466883321849984504412330565805472271655646165705878879107520249965778443370245226765490208760058878493842316292869384936554328619173867536479153248377958239599035856629807201346180888992430653795956637708464497142871793820954372808191851730264045783125334744493789794497917371322550836740127867711402087055641895375454074954687871497189258730973995502993457096325972119947690146171254411049819845682689221783967515963446658237585353234989895109746624840074199299104693841157539459368827701676117794238338381450805654027475472027714330398632843575975014256835999488114782926808424799850323962126466891111746176103656951740153195609295481631630344832750696970463175268381542708567803977062261166493331134173350424279930268330077942219923203355564083480954163263196522024872620027251072389826327065315344711842475795552343127960266103257386057949384091184549246182947495271387556140072831858507642349326699161634242623324761420688125949420159248121180433274578922097306476785108855373697922406401460661200783391140566633642051650331997964999902761029919789360436377468012557733935030746085324397784539380251370851379502408551489493356367832061655924011379348336921532682643853272073887768638333563846611178427357331061941497027106878000216687821978573616595570776392063617160702144663918528512269316361004436697103783012883043178416688285823625621438748679983655897030365906448771930116829856996278829615981922994546566072188467208885104460521738917654385476636302070923133667776356795439807682885874753630941793838905074871509697647820881606919753000629027812585698892183481373984836066578592786103391820598428757652061494303552096958008397431802390498754129114538383901742824326484857668875133708311893502741382383050025033466518131730091930229324110603191902930158552818545837687047329743262337273162210731734159422754141081626004367912777616838711757062244273933824039243212166263718838260677488639477284145843896635920000254747687829887317712951932558704200909178514183115298759888531548615363052295348857902339426394315463886981161686522457563392686132245432575855372581286629415257004080778406896979278430124323118987907803759953056056892704702557652629627051713921645362083922294615629122624653787893358747539760105774705986630318890779633464431922858140597304026130016889409335373200997722029602137840730657108333163970101358920695226447533609670097840814439734719174619765133657363706110704711664621473294581755602093707684325056475211159134274412570535679061305316042795210921519898319305213388202780334783922314014963201317314579911101099414456532548669392103645847520057008570411633524224981589549987831686247819821767428362644349023348781355717935595335037017896600002441262227588691184325115712892326203775469483466837700684010717500728142874178398705377290184112113534725703644109949472185930759420184946949070150585002094462408251574781519882124282689775445174097073536517737423364798810441855511294821292490091058813291472602918282909160839277890693605673681896089821444466710575457841986931732975714245699627483572164310294924921515071252191735529509956206180695363505002541460064964546086473924800017569679583790610275633983738558257154492372325530364845052302057806405041277649131595827080150793714567973396425532513770543407560443878761069587896911811764441997717805404142980007825763864008688938943663087925368303042824090677195099962671859735102886254807794168249718452145164174057835291790680284517057572768170794710937136751525299332210254918273952750940238066727105182774871731101511488205356015856171298760630487899118032496976307447003613800189858795457808706649993279010932203402207527585601230490932947132897563972093907734087115619321908607932330499773472468243477338654931074118699962483045466260958910694214337960833125152762933691295899961286273785916364624138337195686838102077521505953958677212706205862156888551475534857512065974053230752950761987212586038109757188669714192956776442146621296229436392106358340821493566146999819741570766793182815597375296180682987292710731683344456190125600825829165670484180127232893558891392537892687655128136920275632255247750707141264881316981737860020549618613295787141714759896657146921875804331897238476093950217083342563237644438944892421715002150474805681698816957116323992927777930719025687138619621347364630969957183030749168291167583538386374155179635219270156590743641250798758823045456959099597127018525124541488258064829642104997205956449210285123806579213397776133748569030529429626663059764861355471821524099341397928241437760449550786548997486980667191234604784004150528945743272254295300673378328794250540616433592335290616575993269918481038125428203785092627898424630797180265534878057057861255906444979577069446507817765132827138729013228618929851739208691307753459459552047829737587888554099044129188254543407185584290430207531607603819695179176774872015169103915099330209241691371776138283677672588519287483735303583331048969004312319944758483182064767651045166466552374169572540175216653390795964672778556833336250795035237463694195823557920469074789991861080823603454009752337169016110539430156836717796777741330890630998965067166872708150671135910591910028233051999720055044290194318306127100352066651162052396201601752290263717313046107210935890028344119082189993849957551740842779311365422621962314350714635114474481015588175726666006902488815230815442338384003323121480045661832487238532340830224128410192378815743645556780946958254237812166347310402524716900806442867955424660007190221732028355438601710112935959907996822915594423630900467526844723242652955930544531505339845862247962917588982538537822101719773368577266881043886597196598389385994906788919065675312494521737282850332788079655481264603928695951519438154216204264777934104712944317836310406033636809398544917821780605934243276842928456459721835052736452783794865501945383721136741802385036643602622061077586522022191897874091196750274538887532235257411146554475869619953293098884468168106263370316631611037913657935542966033300408191025186517265373122819276743978991855062705293160988290554559180001958350731803889155092256939686111364586535535016321396447468171895576138145144452835029423055902513574546139545148743843311099058905112000879550552330129599337379377420843286033683954037968038581774093185409816489628459460400401758235033912581231217411217782323194724338540032395501712479227829275563332109196524284255156061568425856155503703644940612390021583977290831025804093484826044611346359442281878215251209408817567155093873573253309349556550059335626068679953948677400553944546689062103639349040168581717961586150834292618560349743228515985831064094473683176843869738994506398646924612458421134682357746531627489070965165542210349761826895916586518371878150127521606601255364884757759951744166219043224509638232970420058386839444880882829316579095657830221158593955618806759728529681015236213056202459249709992832448695697092990714176077407354146839760927461398719161469572001888717279667321556435791443851223211305468874455805511386229705672243439124177891878151470888123595269208266770343841767409866413626564033671927798146633786303382809101483889008563524632043910276967977004008401250586475844592378529730478843278406432795146039580318683718696076057886121949574949875497910310104247695634770112341201008915616118905909709689960493812915388632277026159830305226233747051993703833556749319742413671287077497260530651181799337973899404581997556748932521666433345041499028205377469884148222500108205755459890740416891086804044019022140640930715197162947828545411879974635939183686338493398076573670089946753083811013400602875773381431371322374709999225995598087620588959192110086159432952482113579838638829059401311734846152824402759182430536865431088576553421424485149276676701116214309393038563314672253142114665544526011360354586073431334814402546284158649813745976545310987886525589873927442870393255014752510985949774397129854896434179222880852630355699037973522794696135531430742620171942679568597831802245315636977480148080505169988704739551457657558311748113690918364118775000566432391474558128778689815617971415840663279204120260964210411808840643209340903257663561471023862880638761606476790606489562520210631469189909301865220607765840202603812011573697927315181701689325271312158175230240308207887816489551277922823351365242020690837323232982774168747686303240543293960940566458410790622917309361552119885891460418936089922108946688136566158760628104390049416082363194723175922489075802428939643612846063066504490887256325811956204644688845117812415885608312273555120299159856509237649099068212779338982161389669112327015771948300661353699373153801077270540201885478088529992927662101398780379787326500998544154383644287545268381946273809367925327835106234100824903707496958929765393776263621284180232748269862106966303525691376126945412647429256791614356025255156733560159692654089421963431878538922006607593539369900203345259414908410574997929543523420874889287902672278655088148522592743676153997611058425676722297071890032260150632389726944594702279091576997178397357353745102216669438325883804284926029358008484686256979096933264334668126966591839217757293918343934512588917792091980896935238940369190784493379735592273771549251961690479654114586605523707719663288090980996091076915639430019561294073621249119167398589466261312607683879579104594595941791096188143106774773677792803029911533627521274852686567772519216552576481861831674042083847499677475646497269312306380439243785515714323454473671267991712449425063520673146035721769566230788655628792839946888984462652954351583666891697763397460557645675769436097717231452735703398618007753551618979377660686351248925597492260447575157274775905419524289514514326432773772531682272339989776539403760987012773601872020663560348314298369060168867556932138552104196221191417889305304472715036012881714611750098093131370337721917561499415840717018310082306776053423797513717765408909213373866474049436549957392799922414578142513639882852857048755141479671351346427396118788338749969518515753173296726210260689868192223605257029219630792535035757163933495436558964975968227231681796491200153777587812898263817331292930598622337478325236642643303661301524050448293308223211343206949133090759700037657796197574887630321334529382747026875223643751416853270662331995569480354477876334558834306476543655063784084942081221111229147406765597273983434319737449806928704255127643953877724631045354467757427683899258262960481676712273639354093998408883011041992523813382403365844168266698529326974228892442374100427155090949200426626431675982079583902282056591026438238176299755767524789576090494823452535445573831441850177831518399781284203906522017219224867158804846867432196144878305397366182768550094108525832299561123171806374220954487358622155741951029486879344423300342900749027944828770984028839213234510174693276074470845392729364552968550355016905421449446375468794571139661580582190095707396660519537325371352633882712882003020906531313445771402796125208953186504978835590238535060820569195584833161235844569313356855831781189006180625674508570418665257700143995221077016305629829173860796634030127637374609307978927793940688199277723399165698080515215385640758300282924128265579636165632412291939864145153470072619275355975108744927048046371800323173539125537618685185415976577245213533701232288828355458439226287043880866000494820347149294674921251057874848108627346238755664859251138999892324015286466891530537148891951005371010795701317088910718954241637887253640601511297602489358418130432170960714243710668455752308489565136894027584921989769818477467083982051016193704412981381620510287993365905719876837078489524857893879247320889757667346908703732259030653559767024810442343926891975582631653860295432365790634874138191600586232394539442601815825649172224317182380696464834307644343480576999906070236581274513515569373787433194142110450521849997210058074527268044292944023027314234321304937818772566041334623006004497403084582546055443114412472176131277527875060216369009699728855154546445335864470029929991963685265012206439070777452085634178631123541703088870826264985898885288156781927083966940139039757216917751551116560975563191507082766914272209076387383070887374106619796609202844601512862225316339802853572473262564990907167842008190570757263807555142435949783958305134442488189079117966733521102655647038632815187349376537613694273031699042762365155872096872376085431527790721182332662441913788638188218845318670089108844134499203401022050772861131989243279784907277527772785893388410957559745767516230513674235869334207644788799618226820245865125664984852908919244620766047954534295113303081478606014212917980395978449070486094004222236365613747963413788385717156285197057126967373897537171474078021616127693352319999495793775892898534394267449820708640437984059493422248923303700222114505602768224484289971831314949607986708373236001469044565141806578782176080137199637885146804264163092416903761340163405951470063713628034720692999720638414544887197463931048939171420731223456702939607543724253121412601478096815165573514253020974389806404523546181716306227199902721974936085109090960715075644329899868031694164152312950259005997653228018347221017687061084696992156057537793037284985489460593625979266965074850552075269051748172733402932022302776182844175661436139937231012226176253874209793646702158828882752493765612716104077845403591826071846901001750868189363468175678170405686817156151207905010199095608111959193086081013376138083577597406920531246138031743887571890058103382404358313891998983785687733836856973983235365205414715335094783289568775781493393914421738849415773837056790952335578604895406465345698002485936613862571389089341919153464951911511946876403745067112731654352726313354884896589973392302580501246621574172777183364226353650700996419857970825378571021841010994538692528672880380505620870872990232341191864270358089366977049584247207687193921619914299222319080511306385210158669949267084339658962514082545676661527379123439444010749597031472986597333650295627240170814493015335102517592298704593684407531904980206280668503440443512214569056515073627674712652986169337244358743086925448781153864049077167591211190754025277480463015768988486266994807478034092250665194114007627596578009921476578800576110270049577306553183393718711795397785303991549356701241508600697445225159641890486852822220642227025431089606588520799327240469173028453814221576175846969104428954419675449046123130544997806218774789968304805768368678624753484853452349604706284341282906155675583390436702492412939743825931462603627310133374700289786980409701623937511308913788700745718831492196276291467229866230678593203210457837849052266601091916019182024767889627137911380127421645834170126651244367377908734211624028993739948612738142703727274427287851391469169438059670260246333212215485568741730576206215933943473088990028433742623009228989891843828080314982260901420568442091497526520337740979936611577638304897969850787327323625318084082370766062314366189196837591704518391955338407719806708577457147533648673161038514551290437228509832225053805072205899491187573591529137521886905221689657171766266632998196271443216703669146129716313880348692619587937375803206227208568942800741750048109707767608877234533545110286925650835440711725329224345761931911790604158481936769066200172587226247563635857004978213029264794898225961739506385228008005356048483347145641381993502061273214103167254483455710373860889673236969229791426258609444732445032166474446556970064486053414244672581281069495739803956122524828807741413506391898567440493499360372114057282762797454316635598060798188527478121757988152556053248849146937884323364998233110464102062924310543394293864814103616014166835282211770378790065304523934419626462195730461471820610717929144771697184158314251308464787155875115352397126731348972667886500473734467937241728752040237256812194293952207983827801578168705995705391167581418364528607740681550135812156359721894868173128700716193227415981734443287668824000537064402384690023784861795883716333044313071455959288068078185257830034569571292848898189333387040639518886868892815631140461795811149450760458838465952981401823822198360134056595690510959628764780040164764511792183652174881580096926879774606218931169819631234250338303232612097896073568096109849297528391288614788277762772359896001238755028485652194098651237663932066730239970663174997610634679503420996184327087473215650258351902497307037216089088305758661032480044902585254456627472795138378945294597364222351748826741020819878562501407867942352865187889063391631053413480364160808700746720394111896557943014864996419213661664025119001904151487189582095118151229301840098172937013264259724466943775157790519000119225164144710034912863955942777524391725617844890839128615061490788805708994904894315793293336752808148346196081497465853503774122656351918710750655283195873540473774599955833291079941266269786263056358259784743865235423575693861951129489419218567021127113633972710401631596952035322790247321117694226161815606033380942322055986990269189928367425574561303668620964239298790543743357758038279199673551452774362665606456245324364290536924200084159693596138061281985656617407119754808707367552657004276939037558500616594206682571253453412425523206327189770409473827438775655554385632803871917082062896520407418680257688834965568265725357699873988366235045739550093048180043293346417497225319950891289081334537639905175947730447004117981114358783435812010005077117432433097675547976673191008844896696331374109930882972833349356330417328218681596993754460981079601178171685653272186602887946080318337758980979787315995109004504416604616974850311051648569771437614651341151627554473533596459852723119009423951829129433815702223623033861981155231304546293235730383855457626624997283193246073422225734720970404853886805573745450245156073055176321424382809717100870946436641856226635328660988671651726081594165220020900748342007379825043307612283938670043441565795156312759781398424231395640224530956573727807507475190030715951795375112769592824175096842645220137035294328441039130062106466013921720916353644187611071260859357166950417381069248390545764166135560392625538072632744655397599547256177191523994022319999278886529419659747755831178803876280613865303064598123266748703215199175628875349017205874258804865579706361805962505776688946974434756554235291643761417429217342578026388690227631129711455682836998986187873431320710310569645156590154531720450481613497197102508304472154707590441920432959016443036313474859197030046885895435536323216338869107076733214472345806877316901170010085314261047406785897041805043490250291449397278223096059638024297553536588566929541317215488038613628443822762693666812528202394733170456475807711046388807449697415841615851640258101730701322781797237125997202656640453487515099573997178970941227565571492254070808862792969912911947351763446633957850361936626497159090904998948856119423781604128576940667230071935145545542455122641136406243088508694720069959661935305013101837784042197757662946314853950163397768703391111821174278908857961754331433025031450440766862010429848415397835528118539742871723301423202289335544828561991603563191792342183953164668009452120221702710668183960752087496713034491738638804756562701436776715662092993342333217086257986221841221694908924434679715605806784876236125026493212263137371518194056260091020925293209436588276803262559117210931692013472125394260877326801080942864834316598110325492885967346122771253827046743640147000396902362969006861559574117399741090781621107230288042222992720040812633968570770534823066676429772128975427437838262058181051418165542319882242293003219025719761583256081756898711013686782723446114960776176448733904747274694102001256708605374130177755717421894138865389099376661689946841751419323644566761537850714611732918160554675696483091003683975522709522535909707431612923772854840912048275732710345185018527202629840214636114531147776536779120601425840948868502965376785622522953510956097696117163588171034098863125994759739421220382640442742548219002918221846400413693191475859695314364651714672805822564471896420487777670476098714661439750684590121611849708954509143809141548223129315949948102344488645367286653280661670219992655042113962364912629218228640548239599580012788863765562851098399373768383229743755144735218481008262265544619561078410579496094234646433465953236218447137011218361016377014432071391765762688376473649952883384080801292450992812166929515532371256736786350455534372264649337633377246772912388956905273643530863294526536694564620465447658533133910682036111461903408598447135550130926600114977977439274059511245653640648520066114774509406575757709536229446301625690061672876850591237622881193311421624233911767887985621572129111712119667525461905962510494587382329219717722087448708873670818955567112495631785752507379693036113812237046132719790444114623539826389597500447342285531147380011496269846763267794496900239017604254922625707016692573999750341126448649136079948905372436763335673545798300115539363586277369060848013950192885463001473698981452536467416686539355334122891319898806679035421413442805348791126653654230176116688002514833882493269237134133914139185684872471411825621679335304862797980063249089390926561441870974413250056770553673270355740609553281912070471423136127916889544765784405304247531805083527387247030192974037600328010312940653813234311921073128710069463400965047613613786604201920358080804345342228468981313689965067219486883568731159918737280067488129726689704794741370653446316371064753020363034084672958021578866768531003159324588665332330916271177220280208932031324296711256290795864608001869378299750653822777335513583915605154898992683187678625755088093621005351004443348071551232136072917581279885323344148935298482989797646763009250215013315784858603409793025976583954271199174056304935422497636059008626569309681521854787296075727436717091676019120216987504941826844121873810090143167973427495544496880583398902469490729515261034214162204470321799037803940786046045053426565709940255789200605249711711604448376038663014583276338420232242957768833751841685414351006402732612124189077485891458444899957897653442338655508230548056876187507156011683163798224027287303079607053627577629577657740541501520501779672629210681914278077564581244308535134718379159659245860128039589754763270480150205166402930004316249406291606736074008857440118452194360131103179894890303354993962606309995408194839013737566253242143122765235728421493145004350379834979954968348920729954086150147881945831653272127296487302524327582587612511215062107412738757964990677257851825080736589669516010172823425605476569953046533083535141415799603638276589954037136771935330232239117042549529050744063021618015546927607007666871394276778475309087783006684638920946303184716552508838013208055154721143488112382001542401851708984728480620719673367369329024823988893428500779309897729588448182937708146308094536133122508839073551913520012196164941066603061343966504286448533731695685744933638284943143269457931646248930869402173897010276428403205782132377488573141968445709372869635153226313505562630437769788340709295225417807501553532261688338284713333280869373262926689020464993303376293056472104125885679753007785465487827860681255697964335352221244806554890007480719102490753836377172460841888922722271117639987283648102333406800962376053640412511725199480474383600340504650990680560491953116478723840194089646812383563082817550518940216471823421259657636300495858536199271397875717521592822200014392271915026988607068343975388024349674165705833685148382067166803005210360378242890882717694910656245075943981483498115749907778670625166051348262468002687689578981533820381454931350440179877173526347238514236698576798977498200763077193433517166730898201289856743208315609688287009659623918008881762626703724661749844590770787135103899764621385404237182569571244557913308151068535963961447955252580061174375827646162293634527262338995746690858761908684402869926135728178578443651848019138297558477630419417871321012319720252528471981857508654532007086129147833010205898782334422010268719762484406725579562552940642856208233543768578885115030138298675878005171385395379456296206810235029799516658923827513047593783113638436609731959557682512163400786293947842600019192496278720843530607404792618680210770417978002748621949701028436046059748553036467007656247730578083646285347810476937722344181844565534395276377041589752006239967658271394609317994858509538223162612258076044148336111373660785065465600638007600882251326954882623085141154843962197229636848846944275788541987192885454985030621695260010881669867280342359809045539628674557254728317120855789769194609289629862962467829962039488257327700440150712501943844583389257892254616580509972192441052478451702004314803802081245854528597019316451167158702865296566774088658614087971375460630748264495774737429475855296395471646532958016460520172937718295858303235730718878025016908562775111069840035544588415718174282553898651484068746252669034474694072300716753666652478939901109058198061941442119142045707568813853670251952220063432471061864094969630900837566133991673297695042394233597931169790117906676099233894772090769199678348395802096198704471234573050890259429740570849448556968659998250282144431951461381982544400347581509701168168474555876476702453198641945138948624705382623733093117354781668861870696839420577935018127434296492544095426767936110299206405871320072274044957287562345194669806793665538317385450191867736750960027435671746642549563013933579445784925818821956981592880611755531255244997140055136809825860956805623733154793311026368497528980148749285026060546674310834467861292369820449455785577593574855697975108601242054450066011440601070279877418285007089471697277262097519331172903489871467559901293772731464456780649691038866135165570944236919411585169391535148009327465385901092308005397108745544237555219372720187922355988827633469020092583990503071685998350969259134877592831529500526118594266571302382430053270926308098975004790212574787853415648419944966211058816840546278365113481491716612473753682898057428977032596874254423115253591474818164209125679293143429896128468656220592756948306836356027784204653569120389885292721307742674539699201876922310094075579521299205012716769065392063808218579789381897518785402250087237414533648078133977328010272029530086812595007222377456348643074688760418116545534674239128058449634323754258995205248655389267070213684051760536014866188908000930831052092423113128329571988830487839732978563788688421825118072277157821735361249346168422107321976827604007221993396259702541921552697812912497638389310566226657784706983440231008683578931377188665142821804253311636534233429193881169102074325576568547979951319815975237141705374552782945283246582771856328587858455428983352723086947882345500846928851566776684973247143326389257203873939249601754946843875709907950739955899804732457731532008991226113643156683008076270265868225629018598155738728133552156824116369321554178461753426662458800553532573891345097783805538384887641219459893523779368682647407072238649504360817027150054247587585888128948256190716230410153876246238301110542893228090944814018921444749992479180354813477730974783227393508111136839353461202132516548143657976239567355362347132715457924184875526989248866556277157519335856392833360649439787811313362774036426290193339122117770492851004865300846527748369150823062690273941839187010262268945720636095170170386350820043208858448622924688952784928234233955313371992646329940180723784678776504578766221457994756851542189804305895017385532005764760563171198120385364289549218930014632890759308710521182572360228767885698497981782813626042389708659361756536662072637781279094312297675609199505716637108192108818708614892122644667722477352265879012601784334916557409954662409262098328678165238712705360471650828765496058627780921170978862421419119273045545628676565578729818408653218801474199311941614760442337227686471426224231704971246198145564017413009422604409920960401376321165947938106827397335716650754480340085571554042354432588783654397078546996681994270073612022187014104402295082668106002185279066022842958122574775750844625876653693831740007621864088432274893930812616914868962850408321372995975087210922105410034879681192548567438131999409206987798110430644103184757304265846798023415356106703508154096316350674001745150880761790740823950415601113769356282033344543724890976418295278180629721105560325220441908067661162537943435198469468224282970914721601324635754360455176399166164703535088109659242927932000806074341221754177949105695195763694216520729043762175959216947371746171553778870018355577108167597604597162938539414599279340385139877916586408875998903620701182435241861859140380698303899961097181349902308656077714618608049514028679356767849576118557301156826410503737094693122356172075351332157195452568430187968073540961172381249192653584588147713918940907115642871102850980353591971132127606745872384538114110142255270576362980475901966674448299289292691541619983860288569163463552275469685573309505696893308278146780830777358895300626961681528382203247214704682323803192643936055915404018300810883902957669234963381902758184029497553974636148110377455705882934547244193888101540903998540641788546665035978342009423668011241999202924367068939105211940859215956911021938329109524734392705097211032625313516821606891181322387696178595982534954761514468650743005467939949846906851686017590604849706953099328280559425482809842804081791484419833210702711917741948209201631086643978925881423065335620919321178253316246235885771923441861598547560321584635278069150851755109538496605362089520003630600127624850540615977340261591199694474013440933033588106737155608228034999031929396727704126152508437143549618813485143606892107220064841194193128546660984741508905487549212064602322898854540593868495271574752525207757950232848074358359314224458784611165828522809255674899558424636742849520293829639163922630820358489224256681854965839319126726457619371720538823648576784426925781019268886038066671181880951600689397303826721557782791322722022199760048494011317515361945508443909940670569970528777550324485120367147723129505047441665071479706051545030024723698198309262209408289647360717568710254562915389614958958145731205689970240882065726138454921770686485443499412943794356462306042902249874139632974886787160880200967370324242565221269233635931690019609599798598208908290106523960307900706046853012464873354580003008857523504414009055420869069161834407915632339517070484216580438914627944890316479341601959771523384086515169553576494724538176064629454596381569375422650600002242927049652241595450326113302364429849317875256966590642835304168754781472917812438939875246371354159494614077138227371936146372326231081374956474428048711412922026212993803471150060173867994257090272544816400111940172818453321595933325010494605384366515042724410760299602241717976071501598063505514031747415983521921039065661806648103048491121906621958277976109937319545716227349422183096664712565519622177310714119678014426865301079170726639518603639639181613330671384428506881327022714859994984769195082141678604669685551847469193259063718435652764079175631251233955753498683651353781257098813986332063177418060370861115825012581329677340773614753622149916124978266770553715885999716335766230258730175737575761134233057342249946583855527314863699366642781454549057570708678419241643563634805383452332490060097205253180903627718416436187603123638900704207402005528795723629491009296386871405376814372178077803079243961993291188238782256690686669478016527554880262596534455635480101978296778436211154572976850124838393044907788018010926615718544855105189979919295686419724793221558543408739790277103821370499464718492678021659189108891472037818383511253584849293618023324779329117175475768362031659855207154919527148014316591636400734295737320018217209527830818964439715860315593295505748784249158537945883696676436783123995722213886480551311396745766753470895544930314025670714478984178355317466609788066009152454266898508216097979938975716136832387282482876894237007433162224289532053127927001031673632917356119650178645563027586818569481833056058549990462218768136691813434323241380982239764388937414352125845602574262857289878416522421311470245218560535828783454706962530363446681784238492703830482244881638927803816198918351212811213831791698554402542570894418736393095303712312485767409874247783452313358198302861503215687611178031976412047972055696209588854639208083014028795610868157390025255158880591006156151383526429934396976665966337679913672760181364292838850909946104142672831190425041909006775848505802208789651132750963024648202727645979610768460534651719454292968758045533191998860219179946881185373964153587715285118102236345661959334775344798302274010478489987800932190797975827648060182033986504649234435970023952424495726835769738212727594201018817289844027132976677788051818815945855673240634751954726108524570132076176107868352235390403142941879286055054391576774683737315843135378342533891793894583676928433544056274989008061985826016277834468956034249560920150257414105919019776284263271225172076993773122554069931780784963937385034334610386376823614698178943289501955672356585940420519661447902529051859724359475382350320832416657214625391419632329179097788652678140725941876378574409063305794245512348565452724789497208379847999891742440106429440746330340882774265677149606833979340606735043584212579477373092685598397305517571670744960794614759491149703850025683045462231292233317783158940824390760386573170373228521222717285708008890568571923579109374803569273633352773214685709567220653594993913262515947824474299393326596603167905878281250456993633351989980494250794988445748841349370843513915939922791304864947403695652081693811367670988486755551775443442251821778365763555803541640696200749343108127894341506552300106182782247733633489271762847727464021602027114534743708134230947501257649947633367206647085791210407704532308165848840270160462559563568908083435542760092574777263187708516449465984217516720545127677100694082694987044065897898636850336321144110691626787060201132648504027428923353069868681454100829439504081737852978019869156227182864874216650560835807070380295119816407115628651727387754181167874262112565497037985136775828817916481783719991322754497366757999485958728863822848311611123517925252885814040353016674760771018913546758104345630301988995982384021019931043577285173692294617006179562381646383702385270194345460701128227945194050676114524227018719604997925949543386113937300470474582969584674726830535216978628787248284237691373161086080372398980477431162591557202219957688612507312378940566030272380679109797136119049874280750491202459757609082868456663059456976711629881522405555970688643270775403253091754998247363134746315300362739524511419630156726238907305229557917083824995032473772627086255941900885864460976827919610236230971688336375842783059912922647217594534016726468678905046322888988791309661116843903696824669818074345609403919805549089247030219399193953089619386625981283308268133586966816644399356279269562573973021815218231890022581017461538470984633953293527010089597125396659166763748041665270939397526437845399714567383907485778537862629472225248095200331063984241402995830940773051302483090120165571138849313736807831708057329488916741677120602953719032124207834756873281612944715163676763264802174831647399836872787958086126260745105875934622017694116778802587416319816234352543555955125920064829880770613222212984687143801517761608551406928695086921375629001126365411465350097119461305267207389483447320731414605825308753786485704006956829335409963228465412463136259807583524971061411971873889396435703048881468911127341952346577796042402299290872798379056091937992914820753994073061890566345486836313012205596176528349105498673237118264371776462560071242602311797205963971556930843267620206897148325510108258079921464098516031249906854194951482088018246035977233962062764707428799864495457418414616542742330362967265534324577037964305411087272019974696800461054724672754936387039314731033208021317839681799890813830561269364432085358261537482909023278341823305174910013213148189019556143376971627994567976206466724404251444149687243587460412675631670749333352915589218232960087246554753153558814708392468548102241564504287820754737657593168345090103251756653261647235768326727659941904359283008896252211756092228904403578453985658601508711015021149213515086227733763612174256004339837576570629312732269662114736554145578452602460915320271553827298948103916316413606000392765161909780313149516970553762804415199958285397915965553939824112715631772899198122759942649610161828829497244137061388283930602902829708180848832911317214364796581991240111378127606414934537805651251291245147785400050383859488796721103724467942909560520031039819992955922211441268145011225172217909358202054521341789920177272663833973413460845223903201277011758047770443216541963670273869750735812319763114113322438409685305506975137500130161168761526223007803898314671293609299675544174180263625842113349810058867412953410050802701115917692924807672044656290562258262963625817635691725648913725851436255860566603354884266249648022266522072041428936035830727787195312275925928398924208246226000471579374414487436732835290508887123670086253103750058754222026085968378423076880483859725085652293668893286005192632213421611603142695115163092431375982508777615829263918643547531393200805584479361664578410529664534193856027806689212430209172581688540199307570299919225024927947144466326063494258545015800274919920328024693574715521738062756795915878814839869285604852315513742147956321382755361061240158055432176153820708648128126451138562294001365697786966316239974930376478316941380684811605013902910729557388681239052849177497662092709200155307927300139847306524414189128624946144706273572817532018295202561597745578993886225123967828244799282871680515044234132121735026502593448770577411500120548003162409517797943473564415755016292429759551712555989733255659107873017897818659436466217356642497755209010417352477293604783612015998701975793226373524961164615606093999642258169454500756386686793179150186098562309989509251312119038753972308002997861570296661986637793027873701306232931911946451793718744825256654495952675293021698174135080635120591352224839172967531415505779141649086423422461272899271226680719792699845481832316891205182607581657027478926933882913033545692868601198984838367443297293836752941545497397478222147084799607896858324339584304597243100291321297509059436568946648183635157035860953221866317283065655524582404965545528663843903942561626029728982555918628761224836575898582142945053394645193355875044198419715464915119825917639031453225566334608875637289911862555381323371355791914613570676048904843355878573048181469081349548016639735074846607715420121553314202520818956931484813737418128501119798064887934486097586419710292978712739420439899966129780465230402829619971393260772773847320137528501231166238794506971006024725626824393123349574665456398129328274380635777380659312515132710062333045688235511603069607334344177668336565690707863035601466223080802627463586107610370308120367939986310139374333319085838026835408500449113092816839943083312877170318712857078754682222423572040448028642262181107721033546651790407226324467816679202923025997277615416207656203219570888849618670062831432967133852329581121558552224825053727612340559770065741851921374633956741557960050608036025628131328934834900819906092458459447700782201729552227762948086195567836168969508334416343944603821524097056888811844090327646174070555438178175389956077928726794784116092014264547934563780423465868196897060972079707743899875508116787854917934486994255749467787802672282011530544777016951339050529257711811943123397074504800253244570207410507846610004605378986905113243430584035820461183079425410587397512661739618091500386303580745221931243417567079990150641100888570025170555215416262143679588640160491632184702392922324519940542300930970957001825731792212295440573323119917580204147489676272337729702142792192114637402287541593241698208408838878339063152763555166164619415239817651636613688147903361419163529036082221707701507159143604112499142126715271473922076258837004645760321280367042291462743893445612137721804316845120852421712609773209066025648645154150622982826397363524016752544680711601284633725768297556743834210413137354488958746653902303401421333230670161215412366757729640398983456889564011488214974096546898331531592764512741173656913899855460437170648905536218072230231970257371895852434867007863864396517440185243922675917534564663145537328595214008542705596302060499416050326702341771838190877693267331579489334191538736461248805969524819849622889567111008398079295839210950277338379725978083137801696075061916295201281810258655200317372768340689500321035297007450299841228265067058365959282348839581110768226699717433347312122521361918154180788127581208519060851565944009961395715356940093991679096390314675417618548066953585272429715080230534787383094543687233969784543023879194154292324872068177909254102472806776605824307772644771291355141233393948863390946804370325545317590463271353072817244476775013903041429075637291379203141902009785915082023029661618560108186132366466164107511022785527475548022686570889114446807905211218415660140050820376630887457163604369839042394152424825881511747822084980298585894431352233626579430428871126459393915912414489154356211404719598097347883467228817126849019655478522139296769181697621867191255493196984672409449181053473097902498599062558476188685126711608501799774102492960564167065841648754361300704738434137891105289124236956087981526272328365029459382282832330769960089367519295097644363958038421628212730195887861170693225097744808705228174650894937327709701657634253404244796598520372102752926878620701353685203929848937218642526985986960513401415056285580714873176616523717618395090209010527706699102821884772127526024163153979826490129779480637574719268986006744553915331646419396488812271234468146348265586792880551989583009075133552944640676918767932350570972254512696432028981560289449020671362670027421762487056768481766902975518069143996072830656794360489001818125369229508695985711410503275839078130702247907214454495948105879279856031876969643940386510731176997078091266540918294668809961205960215202805150717774676733037741694994572196340264005400779602898068747679528662028626899982186908485190394404765066761120170067486075678668412204803798014237296595029978232188123318407135613375728894904955951706455081100638441653489104717303241661929977822268342826182702599331704434231618480653846820980120711404635356383333477527091672066388359447291421016748201355631421247287562417684296084768223536066466551049068857364731923207837840707300947362887562002805424692979137360855210493311400499395472305386001389633441401941981301861235613242972177978961487006346341902471363748249182505475803298593546359888953624797125967505571977257840576863901005592677701166896165416147791925468049044225707036838750630150731363256635993005325724299425630607384496810567248070383548608761195139207381952457711335927198046998333628361382279159707100875618850552619467382540907069131461721675226609695682583698897280568884079778172813206849623149062420943529461856478772553573776579049285029905471277778506376851858927071958950460100717311430787563948177740519152309956090692048319568400425430822926758209226868874816229411982278640750810481472786532697454284886605956300855692731149174190601130160747770867554568874952867465380676521129232211449013672344436366961167496138708426836587443704741163554394139270769669104520380839126411681918893589599959168497707524614991178380357173245303785803134250817453322221121854748172600142606672049184374750887810857475472126930959986670694348335383279983201300944102357916316360311045127942334858142188418010464142177171754366327591897069122320949353565484587585387427217784275483494537732134581135807210857151070824380426841777261541023799063586447297054585554632254915437362359969348518573088016074514498424339214134990212494405918473532476319760785817760494886870791944031276560751295912762390251344788143826909993656126272687939906750658566578449180525947325708693878575186647083903842352769427890034814909999852767454834208354958769201596511480062192539703561982816063306206966270927579419234574868609428108932890876141050140997030611659706456765439449030881109905589505661236628550919440435501113538241696465770286113331390226787196061225325679688441127587221778792982673322374925421819637493946828959616120755631883962808547503170550777455883906796961710623594168795626221932992767645550506546654140666306470723254564834554222418587457771650910425415195245540984707313176700579752448530611989994098193749707469431088398769655271401767341918546063359343167124821215235937851897174881750855207462702216055061834300187090320189181202197248652470223338941870710359896200943429541371073622631629444977191447528158143378303048966936369924812101287640925450526960717371251307347245602132965631606848838232584547824767868974574781329881635691521878620445594806995531207867437974951936719102707310967031386938645301069905508549724408929661307513351342386492357231952207678901163414524576150573321817670797463786376050962475983577022972695158503431648286690128860115285760286714744904305716960563117590995985679281310344912681759494396181126715693943748791365667762447317983806818975457104646271647848680930615503584615521524358062180643580751506916820079377252295246596742018567315145276119188075385544516346123061316818734275417582996750447384438403728505111710084689213569327027123539121058961782544554094163014765880704176214574177565602575743457465158136289367630830865412184872953080112495416234079357598213607245162085725439336202144670486006978494479498707482611757967789530213546539745341815749501041499169494406565277358380421853715985988166861254935512319276525055662107798055306148846260729549771002917880632899305439283252672616621673416346475837093763332688251028359871859038962853233540048480427272684083366549799389332065267260730791776930678792220918704948635367689215225908329379617620380142220298599959339673761321042623739318859451919825682387829395398908530885659595521203926328994271273814380787981305928666202174780305452937723136325446591026904392526490889670599017834545756773021828184609857642593603477522578576278048393655062725519098911399542660784726618872418036642637302648385440204970234281501201434278915444498141498864591501466412058356216124791296370157902565476724988904837595930364056633042636657767588285781427573805188634920642035941256511541636850664753779405475971086516759765719431027639555770772223803385017786283239414834496817499841957775538184486205238811750995268464951430115744558776767074020315831284327920041087335238092136002828163264377272439552483961421681326518752805863860374880796801056250763098094609532256369748368934379159258680836758552885098744838827206357439383431293428741875551987197784660322917636595121894640248659137743231724056105109502599586849194357799051368149790476326123610103788466057455524609098080043006135489975724610654471601241266796933716585204980536086418376987152852833593763357782018146606171248118415499454508143394277192464294231072044980833520215394639585352732716592681367792873011173983675432268687851857467613844179618340286209186870602614201666890156850015384816507258140887203711599701025741577436672740216938983216016252798891685809378795906720295297914586889851738319487160763142882807550815707406818027022831165843061488189044571536984427528950164779552378183188106206424506066014456754980523621572154311206011818241561500154859139119325494576370333100121953479621654860580070827094235230129952626716839573224821255588591058429163118828652211906333003567465819011209509002969473781813252976737129392525217592776843024600801771047461570268832471193756465512234167107036221349921771864685045506206943857043498204762925088905371195118871068026377115541142164374590586023107535170993447225880163252969073777580247441053693180197684821030701772152039749143717118329696626057288522960776917702482487858775600468012509517964168039291128389933751281759433320737366617130316596023525554140707102234342082721568590895128644714546586586115186459580678958106085716384428401146645454917907803745340111190484535668172176828307119242534249780470744820294605093545732290284680309107843732722136727956961110793772279821500237293214706048643215569467655917513550632407831236543789312836236782382202825551522793819898982299055562128904576214737571155023387991430730353234692260933898704709954986405211771890933630410815451540447906578152200498538023382647279485833947910742024413584434366961221749290909540494893549672209734629850207281830044501849705310106964473856528019283805459040817237318206464732283326754513277720040496675937600077541219390049879778900928115715099411807947684505088101065704740399075638747476883451614582763759441190962855260302287568124592753757298850691180894382853160138403232005298074130406481920719633225668751846436932167654015185371166851386408768444248991436591948814595479378553521619583344765073586070893381799078335625014612458217501015683080695167003506979377155411241133740357155328115295076242217706941388021237501217344741401159676720529418770848561552149765765203177894915650959919621894398637795285598550040925470251592502045748031173582042548344334984390632250107139626252871685047846538608210172259993015584500059607082646521015283294663106447823604307998675844179295053333466580113681310727491320534694132910781526999563634940915321369975329708871448806780233242962663774136950876818183669098019524543159663641970072020721480073875078804341145793158659589292858422500155511522643394893124200994941774716757089605433960558674298397122857075326921940462215272088300090220354711667703193955354649497069103225246477654238570160116794583438527135170779538170634712085193227172577287616669853240490348109027690099886798370955796578841364167321988620791222219220978580587118591924752456998535664117433411718104937400131172691641352722211845883941840056293893992462976420183483932398719515738200958878761698119820889691557636330821395476582497822568525208603845960366142987170320000485994520772367757358295770543173990967099715018117983539501606839561820967763305054128214295933574561356732732193369607395684632290153311212102427601084551698917173000670585063155659378384172061928669370384075571831667093182362751876299627697954826465174163930545501184633154143867569473549022059158476648653169470822242424191183092240702963361177405097189098385577622570312501729523102255959515878250854103281011445708121204606056551048348708975953811241816274820808655933711089794565655253517373705736088759427103635350690250000998295628328213753917363202035058370819127442884681807028861027247386223052569042853715876040870499916876460108064297902876400146992447589896470379415791483351909876632402021679067199450605789858017478293465809365534889728361916274131316029638199253734420329906706638197639805051590667222625804384913721636741529225718725942346893646303253751652285270853380881804094085704661199281716932147510033049436080144436723879302699648731492911154030496526102784057853269905038692209750480218448716511722652048691949525537573570173155216805694256642537080517475060076191283999363563752058827441150919563421741436351583559549848881225721736188728226257554497377349306827884403117038075280506729747254840731818673960055327616642362836359812952441442143034828015909470457273830801607177305391364947563360076884011104140241842212070699116976236314587955411393309079180338056619176801263450965440594491186506424296752698393732673603452830020174094710784903650586566595620429604623772942243722232379025512337996973872121782514802033029808497884056294608207346707366851877299897144968957308670796878846358529687628588602822569101477766752541272201554440078641063053651013278259500347628531896343309685821231174713277644454212790818787338355163915306509004992465365996325005285245802854335526800619225463379442493297861068597481517275277223349661410171324273708303177813933305382850427278061690540103476389658833737492020443743615233118178140397334025279712103011223916851870889665714137194827850830972359306896577572857039566949372498430924089414717656235656432631297232526466543231650665702215265815310916674654757672169928776642094229308630147483064719799046799022308638457443434791534152274854146485921137923369063384614002661752348427022245313385353051654300993257275080324145234388570688245788244981619068683582020771095252075769386380947453519692476334807500525819876836662725587169897248962100337092405427698184877953934515741614915831446873944104528570453382789920770933783858345089668488139352689913290695213657347217764124479195458501689609444279953643761981976767255119820740043287534167640682263460844597779086565332074024517716758259732727672297165155613978110864856536914940170139779163571306559420415159004916074936760010102542868125566425468931651408071208641299116085246121017757384503057999711512312265752373935951679251348024523189413848910528814400109467012083320370278177995533740002386313198083161449067618469757925992161556116094309172497625827481055746680465760478069825869249128479314921522883476599649346962702509630571399383125691073242574460741574669015282401585919584917387196402160118000124494740295067863300810010760875343223786617638113237117341531028410793216103321758625281475455694797162435743716753641435333977126492429549693700898996337856367550184004552176229979810433892288305262846070613952484252144439313796301639374780849339736006167956564930831087356547618135137372035082335592004731892501459487832195938994227708088984378738238688177794485716545727503975269579154936473077655342850665172022900743988696742137607456752939770284845485280234906038836794754361105499625444049781410776733288231804401284737782494632596016645675378163041923911151919987865122279601786589236239874107348938819084964247902041273439503691701045745782783941701173544944318424102324938831287534015495451518101170782134644484639003564784382866686101643799540129076950248412572332422652813536451876257320039450909222553701461781817071370856671755533257903150816237881691461373123919365210139138949913720324727799147507495135670347720586586846706361661529435546137881105095830345489408496827236492873084819614616037770680995489933221454880321780828987932283294041748086676406650760376051134606078419290093779043604300987898893329677325119825466650847955517069703602278135947708687699883816276939955223463795272162734927027366793577594751366109258643307531152524731515556434423711137669935898866838045345278914802691949523745881275957218919930987193012428030696819348633927140964018561948426820546811964887191431270620599860121474650640483868879055006388528923930304476698031254677437577182519642881459852491361439096375025433144385505450106813713131716025121996447375805259120410612762305277133205490694908893562667879760720379829722081983967431290614505163681159250845099093930577408871889717497402860070332973381424650713289475805227354274966387017792730227612482693171629162690055994999074478470275954692416904920955912864493097723238259011554063188361463463216612021091099803144804246783560498435607435396178055303686995170225528895321677037300347102707777005271320718625637105031547902635858975322184780307992901902797786075820335675435214112694470942526616736259815287623973282605019058965472735965301859179503535327529289710781285099571453803710134905572484134561162736887456428303007962965551339829674867798122596334670902023502421281684056032183051252541154687335318529139068023784441642475990976761275817399039295675662656128616887604240671594097547937437452010347755110640456883209286310133544502614606893337900425351774783675836304283748777146891196406188594361140157922249656911325281185749882052275594512997640988718073875534801615987238603661524906738765449544732122209682944781339652094185347942115036131515621040919293373674939348758195909240145470760849362708634476712792998678511198237769919950376648186516814294927517832271237258066718899091261234545817058381478946371624851032127036615834033098951533211265028917371973519958989647308793751226190211870754071629573168132804692587563773766271582708804596761645788976427823303813201775619652754691542072641733124288682083854091287703380958481819973707748052594021664000308253278685296378624033980876107733434554743367237429943549162710393628321148930898505610093506198034511386617090833022286596942404458328418557167180506804603678853982627891846796703955411764319856754343852194741094747150529208984541629556578001095492289677222249539053251947713918308298550996193665388140986049145923385600424095327433930808794863044509859941328450596072473801703430931996551624999520741812381744686372491252395818412197242198717714229051644740753748206418772640039152585659340221210449317682507065718582968271635923636371343271406076595184716171314024472246565436858131134575781225871593743871558420307627412283959513565609257016686474888526848731160432462653179301719815339300649945925040648590633045588162848632727934430580747924139959543442038153514976586136732908845940852805266250340659999774496400198790283701864789707662401827400790276880541109984354011116265453748343831807986455725729176553344001665869847511169276699225424280056814052963847863679490707460499976722008231354193505308508390232795272459876678458367854757702775442234198767817248026572613848122928078413658185152967600053557284920048843968331178816449087153188938979597759131469930039434600181869774044086955014581847679254051641084747121103242306391189123920584052101410727450216656570261952818928324542647031173322277236877156409427581526267175771358546878569869452608413824965860802269926997913342333484222903204419047958514181137515118313462718306944875508118607234007428851011359727650490833651698914614462138978064358679516240963165136840571502626414602458783984928056537627342551153509156003366133804862940314232722565899802726819725862213922168047379298104777165921238281056881463106729378190098298265151219175832031232951403546312086401710763248616546093710036844587259611746289805608667555404369693761247670650927736668594138341033962299627130612511392243249933155887464792166399113935007179345410266069028459376404063239151642100271817627268801682233869854060781547504077568422417387611414141779216098823789711782055572267799133552521020034516847009217775153854056371533343604298097338066256938315647152235439379960200688990823947274766056017721059324312604359346673796488354854905817961673179076521879930562458200415342935573705230440427401385868631625090046107680354299995747513369977851254601389772015145754889728967961839758814362428545375514059901785719052601749671716063107291236132247254492695886137188253858030768886513509006039537659780452356191135778586725598756610807513238929576730978627631586108831709109239438195651640281606009446846603207660409890059407602388632551164008554701324275081230673020412570210670797230350281988343590307936648239430149392799617418763152847612501508634106928952996104707329970797021049488910837371447945856610107284000294887234032320143562650350865063693827084544705313997623315744120090896721140047715580491696135308665295910150740496773970184049344958344226068240872694304199585417996110909340758791817921793322342283128139065004406033447569402709345231249445881033291010308992848535623860076581218226422586049767654892668788274846625764223298363460976503715592009747853389096047713163970020554107882691066649200007132151588474953940886721519168623603625500957061835088705552735555357684340447788301340031715735817407360137701187328621519600696045806524840669049436706610390457861192278626082706414669907056810243175667345269356159432251694822528407315711702228975001649261065336096588373501984472361764776672445943210966991847222864524600227851835565829278300631670866462221626688666610019909689390827994249897071900867468671447182957954662542914047787494741012309177550233456812059461766130560250386590993832391592268307726119492170975429051780803423923590919516449393662698475691336762378129272098826708256110131451045278015893798992353275810816383080929609265942329487577658902379950975616851700416568634487290333788167137534888050952559421295799226734356360065738457850878771078381149701911443113838620507714183157738623350738922246689053374140578010255202043607088402606522179533004627235667440225786945452797136831217034448262559057688710313420802622904136898505170043345808113070485100237439499001572163980310786428339970264106899299306085513499810069212006084035412511235714908805352323162458632416379527141593635904236526141423315497474012106756196287288605072323922695195522398101387174677322980163996120511834525419365324808760486127882502770346960437147512161564409434751243069496488177906344839582545824845090693784362275907649035220028879867672434535472338344714256191432559516815339007507813828389538437596929704489524614930180771050926627084433176334049719450057445777005761077692979309501045933419425400306433998570324882622565164056277210355281784086881898701345257746458922430891635467898566768035275024405244884997362836162433976237975066435170256371667558733129771684159164192170914505210136372860129880716363767534710112241050149188478686671287580148193081212561540721680212219805274830562475581227558731646850927265184484938514141004306306255574187124001620893147310456969785675154528609998525997999864669882742626267733840889806285671847476723927563666382767170983475331185862797282161545971636157267600678981117398253229942151387910843677891132370627983163518122197203509374522678475214309508141620290987052147870198317245866408439556284106888115623643787178641473405659447933536543690179130051866308326278180517881017873562719746870749141233615035717791052345044097892340769896095201375345314112255201218472169165946502320540616001595836173313505215864376804452120103416811355508121707070677052820530053244680915552330685848068610065324541059836112197262646812617522371689043850031372042627232578141212791525648046181310090874413335981352919151542928100526921988697787114651984260941483556979443615472728692665561774014305425532018534952345007644105605329530185132586450917683823178288327956126735058499830626754548482148030508167683916128287103677347518921517648115413063003797439939359689425137590775741751102678215547829959963800109694738527659329489417893296516942707874938345039980405162097583237193826981662873594227847994023219020856296008950884304765843342370737399396708223147947950716160781318570350763847772079530076046996152561720961879206544917947840931156357730244434386308197961818977967033715142733925516801251574618739590286505368645783759088479489224579215250769218510788478026440261143978141301405884238792883616580494877896843628743610841434100424154906734295513558889031360176017636109328438903167576529109494879870239370702786629045036993085078223821638908500711832253979016417724101990731484817731493358183023558039951209334368262402174183701922992042791549069403316775244553920804995278100243111529485891930002998095819086222595705540040309415210894582293626045949531613293515794851114938303682817473266219331281434816091779168299377018059582793966541715720794996151665450440371241481484556852084201557954458950370541717807694811932532189101299792248158595265331536853765001650089866295093052019159837580907045085129165636730912616208835086902876188559998932996245256913098960256454693854149608998329715432246709943255199111160554765916645565791366571533559290681714224153492932473279078315788170380388453426996427165119126355367929705461682794766501633227020106572701027067091587022129991730030001171472645298264991223978867664193515100222334079416450389475209105420101826727286434339315003523486531778456568268020844333029546798989937388040361331168976082779436737882063847189002430998931027769600052033881697628633026112220307341072516323674530234322760320505160158480186326033182515804326438130202511700591093759494641177398311689062856937276501013944461632855802497684887085592169611764357878859471361914940418735328324088421496104312419414283877407605334461894820548975078646616444342375375666936269958843002980650518799509236137129175837376288676127324578963768307147927989672030219533223971010541855003593616587302950327174149431182690759377538738202714532264176081131010816679568032107836355742600271101729711643191817360069203917487541157378343210774345796118474211151835926196424631814912736579537985049091045529902078436883256951182985466871903766124126160227027635964306854358882184382582936243527349310544283114063583539044748898084073030063711610576434657920693670262484232673643300278388589432381405348114750754480464580441401569776589738319872921515679709874965552525211149511346498128026288205642694938701338003426646036197246945455980816834355861820932228672187089388749500161503485521352914031617107535116872732855125865798736931048010648789042071415734207877731040941048788785711407520846639158047186519438158931494873927462512051780656779921311651819292657400610877599845122961878441179063289383418144348266410037951042533403793898182812443533594213443279642429680131378696509461958279681627019028866732188949402598057354094952973397995791715405981143914147436968104214020279664469861979096944801994999910896926957575437644392993801239850378371300026285064126611140523635373067401640328770029124050746783496806197838258657368364170009316615836837081333273973327221907296599673608033552186422438265051677662807458033366967792013542870379985782004253953443123938864447184654827394945270113564840025640877291143670703942290844514429982305092089468346783383381085219190089622653482430069728850609873707320237586138860458920465299248896492516024335177937779248288884194593854232319820142285385885315357338293842668932323438407311888862858960319579501059335660699435055674263460254003521601729372191853363762019836540925225601632529159767512768400205842172480505420473890227136185807496510573837285423003034613674803726135832377412452335740239845329185697245685474389425606417087638076730909337233869645731589724446762823897796309056150976642720905073385141077370985778216599980393365410022157507539380021401085535319471352127093833483356161122187565039321750112785136873210712649902646836051472833457911656314523887362482708775050116832995910691533971710366912896931023803029726762759995654607764608896511153161024999167247857549802810396798225279149585240981722522534489665998148140182675003927127020425091597605221985119211785086820690925496857563809972048624638341126275617078892645313732484119307931829962980513729715168029512797709293153718480123093167674202720064572873090692862297012273995420449886029136771246428888893348687259533741846574561718022103892595259911953659565614560806306082333088331705935674444711637478717493777518551176926576948060369305576799986396631588420761956518848612466422630875235335614539690042575960386851101289163349420945924157116528886296071357368789521856982911658223192776870786701412747881758636523676685188532950218653125593313620469533542508973977971520945126312341646961280246686362384355998772501372633005432562636606951401699794502074168476064050574573738765682581871975307985032311407425510217673129946321393108379017962534010325895668725595315513005108498358637574842810639655077624502394722386152303719363281332962215775362707413610352090203916650777677437397588448940726603913903903722637024509533774043876660077538645090732306871366666475204468646278312192151221341408534484089986476282887804945858707441102629521938934344367489882665810392138224114162349531054885648649618949836352152095499551576456165590110000782559979165408516793735066678548755844028656050598878437995681838195673883754849430470376770913449667405767582910015439084764762076900776173544311066324455260440017679240357294599025799361631272291955493065189832871254289346796239736458971563980642224282238214950828775249566687897139922285591613405425871931033407185397506229287526330440963679186465129179278494190225193628715429909315083833420262413464646702370018396163423351662130172705803297455854386911180277325511824913528973863212202511355470856381203776814235152801045411469319390639500722209639250330240541101507865312918838050622943943092968557212715336430783899795460365246032755985880194636353363370033744526121519395475287856685116684142708580865158527981556914286787518917337489399026056117387082443641228100060382616953385179640192799273367893929763722139182706660469095231187847775287218634563150554388151001377991313204287706651553198743701474929438045864628158455194375448884253367386551226301844523905241658321627522431836949092543189486162444066832489005008106778985180125847713950782606459003528728549459462215303057901558065714982197173989079852292248583925524408449782926605528524313660092918972270190483673595163359896432000289738443079383062101719737430851495452577986583579181440931012575941546944979419655392778111472686847630889589543520901174366074596633245184073594446615675296261046304058274842822687344327133938089773730508367806032636700533321004595881839745430099874721628571830743515829656338179443341562677528355898078315150898037141786704077799099589637198417522488711339818732775576054067981493985092398831851727114330187093238591453495085628955181079647682232971572347619948240422807237316419997547440573955701871201343150935053804105533731160698365951141806186366700601155283170676702003093053589970285400153593896567286785933520874748626297141164605646023866157277211399151833934807439948318611561642500091352855401677404467324530682224279030587354215774798674809080272178314574209099864034293022807149660948623092470114436885061173432479290384480805445932210441979359180780861660950053628356098401910664666666408949510434160118518011487463898865839341918526522559351285137893534288853457773216941438199730229526279509966410160526310891198770230018010860213733876361498538734421178347293237913695690316949039393469331727005398688474513068890433256252034116410641252203556865727073751954033522778529406403667975315517260024292023175901186683257192351889889800237820552489941261864400289185093353522299622035252584848137988323153355257864788639291616037849720447156717018407416504494039496057796514754434286334450300164442963916309259519793998945921550725381932420127024027102481174587731960298931324696809641439128239363241182095153291937029101462975776591802001047519686312261712913833317867686616140346600820681038595124516938136305864882581622336081453132502534834966861596231835224378182112207726594017212641134295845461259074350946088703301363946042072071394478132037032144292671954487534985027380056368893394562395899171628465836661911512426483506815407890487166523456583081330655237088011235569671874747596327739889736791581623404365595887660978170378061369740502478742195713445111058737469920995403820886368283128162887921371148811195716324529549538206436840132702340314746338335149719033099673008876063419504365867854483233724505999512011874817928946167872260932837470117127653663423441397114229109277251065946309320623030013681627241162031261935549213342480243740856543478293682278884856160655079163252167759469968289115761939531320128035502755690214194846127410453706121932048096865707400217131405002270271482494186000205509507187514558196755408458615976029062317801127551070936893713980254644198846844599975990512794416652348517919397626364525390358421054653325173028870221616941992972814484911381457474677328288379893368993831734036583190969302469994853086881906527177822031593243765299587464587830651176346051908855045426313573324954654309926540758593738455926483478350999332440002817017778559076022000502099965309404897817974648184542226928077956441443972142166556673485324302666024982531430422774137306425820733470486742130294188769806566178867248114265713509938723607914739450549577636769716003128524612774697396974645445285122303956438866217821398045547238813413772459191398795637407177021650269670267907146683054518876675204061676586280940261572644695884903088438236781891915582901813815899569294334182415050308346471352594907499954619361583820676197946011939838478955642273301381444503871958509001919875315425730859414399030868017365409608293067318060123456681719972883137303099819639192737887012854123961247066535118527013090469225687397155864144208980987285961789392647056163887021776451139436404503192962370708549261005950440660506042209128807228845073631767906182107531193981285568976553935531852403827440119045088173428938640391732958199091936569650114526915151864615107619881382161487198869567904837920076760029482225692749601119845192935090037390420959429806601769944047846384221974114126472513885664429305490893100429075632319245223539831497288721819245201547372174656149151407970064477546517565945055897397230392878168854742639050897600539509510645601729648400495527913522214269516477638049853214258798068984211526219042246488867972637536511187564511371911982009008711647311367324157371041819677610467816989832716635597933552050974406320332821415361440522783965616923453112489927961896933911186287997430245847332700101490807667851883820982938387064339210760770381012614960126175666025240332393484486218182904641112131177684830990905919562391771923964512113203283677310599108845377403040849595949005186864967734454480961613265207705641010935516778787925612696063573076369969906008325705684588822785418823355998098501032241858771279582765165808840142666102014199692135551683890776152509170457799469760141296755472186959483371864329207289304008766129429862146023023588163418888887006075046728040829898810910107958927106354674845970717048680864670252765314563171232205901088740987126222954201000224908638030278437866939215107251601959819494387809782906723998219058868985340843619209688181078519106451918692411325431026890644518651821830226791869908508241281947299859668951441345744215924844075292369035499500832680950276889922468582432377849810370361279833399632987790562787878815144117554132064402182158627247960089168164097546022375316696210741148419071015069749862156907078113075266479627788329630265088766253585859971845526041502702541395402096156828093536417489164673735521968953136523115106150638618131668969288116845834933493154841009291826025921368261296500330580866856868996368418942533951553886231874402475382159879683191205949402954728268030563356921598116280732874698506392481108210993336123582439613239958859715320981177373502535784391131399925494493740673484664668375503340718635546921473870678394392780176070910709225147191798850967495223035465663689275841356253276871140099140767524637572782185474725832254255397260608629272121846594950318683421041336057733551489067811093771268679228146939898537965339676264645384512661352677592735222308735334315692016615064861149242845108980580478689564456123900296584161099075903966580194755652326036668278073240593360529872528354336642587940357875830798518783479908830070462776794452653417511972108610332297519502557911823066390472994780649706277741808582401604718607486186601706499359378533711779138222937588000593605025630813805208311967144290334633295100672598376043135870593819549204513691306102822371124755814396219288285051460443407418509989238914422255835796001094507558307741712319739645086741639654640495809738790077061070874091639997016037879474565454688866103738265170826613999892072267090890937754720176788451622373778375366342189677457187076988069918700426133813751256938830097463973321503631511763377167181339216194219519338806711352810935584302641238031750398574095061313536490182515241005816410797428686056301126967501486876577250109841521524901106104511027215985380820757265900317483340507527567005419273695314623803080064670872345710267202241059433888800682264769767969618152452215178755310004284127580832305931586603659228207883148449643125613633706152698467258906954918869956579197851406397270908282531809224832833164102643750112456103405074846015407967030889719963086366983551263649788893149182576584066470140843736393889954105685755779045463770821702414795347097885086513892937430882758778699238140240137692880237437039519328692272892075004973715839201797020683033701549009979425684800702806984972974521411895906492246144832264504817190726378541655120740601693194852646280848838744911881174378395803923183135226323306961680485454894833267365190089617196097709766839072199116334386053346326624067181895548217949324837979975471432579677327037111579557414797825009317907237518373298065109836961705561116827977217795634004664671340616708751075798254969471383847895799468509116927405968004958707692052648297720980424569551455470051791308692404774059445596722555399720676854237852771799006121508320124680054739594443883032735683627676450311253678365124618790756120479153768198951141899255753686216006574119059993265007549873725337689514865443099633970198157494322141758617021718250485079649873175793435233470675738980580693003888178955258044234890979639642606737853485735023121464527310510645340793006905743789702590387812557675355958618679195912151057849495985512528858083663455915735883951975943303784546736674697248332976596922139343827477205360480615890308730313997063115138697570783696086095251628147212585719229517248487649151541403522702972250056649228176325795844011619944244736096639097906366733986662945403160891690838901392659956808304323678741511155261252712789710846082031703986965918027239817841776088279175334301916622478646934854703599618887183739471376761773650049841812212328853253118039936893665177644705546923070353634620358121769115389837479031473930403453738945957311552596166272566214292566884078191336682840706112243285681431811228575253694320877714691692433254866250712431611969440522841662602179983194447422151956039747877829047942490929601197503533514430571972129107062748085262867209160213457563618188298139985865676196495135922259080632387298906909209951958207198943653262666215569221919531903994490574546421820197435633255477103185411925834140052137874346626981583239968441833114473648632760526385158479623675142127883358533223681037928385269222341748081953371072493657264135325820574842473944481845427335404468113766455345560213496023461545941582447531791345549487201034342577545639273286928962689884124793824505253229597074250817995867985957303931083326972701480351136643865995641922668151790140480426071139281431290598101328438788915730909899230387292271929487001180880540321760721830784257604296603042601498926136009822241187003111791639060281972277551119151705822538375526863551064203114391612017306990454497101430297586253554266272319422506839115864558905535106852011135045395477222583144655677417207288326879405298190688035797124269294617205058094070471960604722077480900445512346908977872457515798940543549293921789506080183871696659541345047870296758345654091792444150725397040357370426809484982357307453585964867755826596676445743442355429697301091549901669886389119325611514256148603135291323446633378981548188509035652411707607276219043595846297586184587773654817467997004720626750706969846124932052080003020320415929269206393317174451341194313767622711575631606569395259811320348415727920585360787917531548596278723232460514491434695834310551636491099302161042124411535374863917981483585413651428413325604122598891898879926751231417881990225918932320924820803507409224324898900484678615771577803722716251272272507419903794689956110865880934634689805057588665086484274937530157203750199466099432432803031023065062339106084568684111748249423934349820544270820783946376039936530136864171301812809251923160383962153890323884133268795361464220251191234466289120887709870440242823710620168538647955537146788781180261741726564257426305455950399969760190095138970856237991498360372881333828229836708840287825504348969949196331713859599394140320578199488531465779393910882388355906397778542276671049159732012350540752078382418941114185459273517798422769102595026025475057973969231461717347330104828013017493493375950953620410965591557289674440149450661312766821271286849393253193499933575051199883484567826023554501699396129600035269418185920926391808509544074422104932202789589063965086832349664019062133628808379075231367205142698935244576447928134627071140543537989599358920041788447171235069586649567145033189315556868369783255578272727651284330444823214351723713325062801313730353364396358314461839623756444553978374676630839777282024359598031151474166072998890394007333509533744184029770723928195717665098836224029996993837507343837549957459728782511712943108027652695865172283401985161075097888866479478915890464782469267514337701286653967490425630877766888452698873396008965206615294344058224691887126277805176458858177050395298163192874376982263985173910188340916461098250501920975768610951790138641327745426639576509303985382152255827470679419506738013548094083407950954025400446096198708088097077689421906782525683748092287064044722324259875913150416078562207280330710187424027629239349036444511121377873534818269263123394178917544690654922414586868397712767079267698763600530563745558190835084907942234887812662142855477649097883373861484102387210386735980885028353565887488257485090831118854218442502812333907241270616668628275529963562164025896836533463314295035815613552734750521646671106712332439175841035577556740527358686430651823269300638047408661647315692395304119375771678794363010597150124637205606718326140115511517258019650127311895285649996945329171391952160047606145247591867054882875550066113219914246731027944779498586587667009898970568896521838140826542243059451233530870477281167655479651377462883134360835170216105751585917718628130177300693720830494430840521604159754309381569318370469366729756845083412260928871636662410624849135419347365787993518919585147392875777451546975105848259160561947807582410416189507460114668125406584656886444108480421931535837702050632836371499337014747458244393121159623008616718721160349650413289276503549512632572024517999044247870531008711993188446057046987429698778666781385921479529142236723604808948344905308945423585188152520359737519622276820787271728179931984395937054489392594763948853843592345573407906625045331349202570441104764414345598640398751881507200559936923713193131181714721793969753344893940687203566624757135809228923505934171296564584887797396678587822299781778733737162033578451496803654872759953821610239981987692552878814541496827312012000495772878070159957541510762405438756201739520812323571928644335166536349598816047321368942337932359698413158190488938939719392354749271786444848113378639504632260128162901639846581701270119436228483747683814212713071553480534282133116544089699050754768338093111932531701747264320166392369220360301776250827669927338234418588844595062283132705116036684372424986158997242278961461502416100898968487720807525878968158209493591759737690014235407345644092729206612612016618079965297522155611482185270275971373115835430946138287314198752963968555035309766125994751137598783798880525691101543350601043089745368624597899651154427953913878110687696816117545563562621399794104070332020200110497704908841748618721710823723682875947029560936282956372416746214200862126756383753769757224455753400407790848298746324936775012474444917277172882167356500208051294548359198564567530104856192096010257160698182275323782398358036167180036774714802346772897001212526346716007498637998531226900141918102301355229677649695090903040300542946083727752360177442113985418178039044224657166056452128130124482348465810829884710664925963059251685406520065788859990104321487193443244796736587783203618680058917652247477871982308703137434751072625334449665691234581508454785556417759573167808292178010412507566155918616947796352314056392998965240525979565564969184840575812383426653633018921427464107023638533586906669069921478117124370679615818068818121397657909147725001614700735683972788204207482095984183888711039097717276020373266746320631947316688567707549383920046707197387552935518446380074968842211260377726868784316801280982480009523234817275159388479500998536283921065606445888994072485211239674992540561126152102843823730608619537436147648662582799466510696676242648683807837900451590995170542311332926087718906941121613935539263378305186192229143895167366943930312173554595861799335580018606980268565284350294087432373838895477689938908696351615156948893805912932203348397558912417352707082461834140280536542638149782484936576650418805284467016619100015116739012191326453391658948742290604027225773910473056329025471631651096388420905678320249695346845866502697484013551281020832443765134510944033280699749091534683037399499273520627954964871487029047995277692455609956017481438122369807132967144992032709041223645914628189927735964368549407214090311957424683868083030684726366185619668898575191200693906556811809771133240665373681278323664872729372834705665905482910823526632894206008449725947913407282617552516822905412240532502548909853726852341730401675326071223532083710623963832888735576677613337180193690977049151516040699983240659952613617350857115293326043017396880733917155678445442902075717296831967890683161175682407045443668748586333124338005456727237388852057836804428619771456968569978468187542481703346626530641141126046276825236595657953601087869766817277907506755703072703919162995728245327397275898335341032266956823711297184062335249690363484888150440966482059704122718996088609380492031898500832971794023152020083008940707079662787389647845451693716565714453568643350146417975984737474608236497232177909604516416119796853711503756174033049418408217565594209936349587435510863384198060307859855983173922735889924920974877343970766284723646838918951831635372059557731229701142685773045930888434951166456909403788036522643330077527668173260415881808514728000665585371491899567246974321945397575054173808443192722122394692819162326899539747264677192419125631500557758665247077474929822581229288760591447027672907940182350960098879525709721563078972427234107133549496873007671065160201894473747684090295549353752006947551436783874555643517228353380977721654408527600966062393837732827994150982437820185463601812250550203002419749128362062386252559676955327365232284763512204929087714179685812799209589591715154310740542406819653199713082238633473851363696962422940723829490622963395869269117473703848657189630796205460655372503045705202402101201046954978188097483220617846236591180197281741827151318145807920859071227364612661684851263361585385765181740466810314420330478302396822368744318645260700448781490297476780595191374249477524734264981310378478965877466776672216693780858036009407053359415247805347855194989486334745087584210323869630161222213505561597958348719129261150059191664358761102438929019929286068399207921407099161518634615870560961814260265615262034441343974179923918380489270957586018114048339902103134094551699937045030588950783798741590548580463787774480220558097776976194482217543024285080478183209216027469225111658247285571689518885700570394653079850363843418378389383070484404735229849355731292739431916383057202368158461467052070066417096970396520793540086176879695964787510947215774023014699789194538112600584303771656838644135201681015099611685601164615758322267753523663622622314453870929619002172860047381399978555597992414278430924124028403323918399403251145597603656828024520295837967196638905261902034427770595789139135261314459729064391951425980475657189903277916544030398735277694627319484904291915072345267080206471794455338030231486087321417272307622076252704185114701216324552523829260274694026640249234423966269096543917136665685631640856173013722909348490352850803555787418793325888339380563154044036204344546628619739339058658019487652465696351454315275667328409844460327218618861905231268631252378746531181882655863977723206140718503867602984744835155613297775152348050603865435732820010642792972308962149558761369121570965836826411751523236671215131968629788908096968965875270206649109481176629724075368264352073537835695256922699720962071176627434355287635682512870227166600398871774702942573271625314513522919232337701568391984166822487904993641921976142876691715949372546115854226458216435515106447669680755184143530958878492538261668055530952179260067467437106495025243080399499257684745671972084594196883373959031420303655618927016084316525097866706494918999707835298567339816972109737990459219736891792869297386137690590468984747420051693076760337139193830156986490891531201344438204209786754247228046825813023978563792073410362112075882009537994812624132428862779541860204327743045954125977270500256649503267945457241791465297246219946385653918606627668079621170544219867213765798311900977410716201923666609034423383624193840975345576287767659445828440925503605808785408217999077586348291715654258464118064137231337189659095477508314560858569642784772340248800092968543076125388790680667870317038228921375241216665894055242538945880717734540697714182571422655363069614069563686507123707872648382356785379093429445162538035560424140857117132741507521167506154960987975900387122118622061190822184647085643852324947527269709412963341774510455028178048007991361471418527563213946834265064839514014749260072280834938301581381831060678354724932746970078289775773880660139185918781547052389203833451923469911069976455608304153318668206143637365249048074964283764200135828837184041826324148792072603915113677134348593944486593949478295186312279560826452735531834472766156255024208607707706611962286278906995448180295529937607786630019371167678618822875110492646857001263446472748992322163170289634005481814421959567725985367284943263291586432522976217862350914840246357264166315889222887493772944457777444944936767402656974105440591204829910137659506212836958430680628584344311666522338514197436531094161025107195431704048171121155473914766799427612031092044197560810979245614275830773895118888905808441296211117486677579585898112037282679349470694555170566744058180694807703837414800445330728448093012553256063298917278379442013240626451743743152020864193234830831506441097333017800587365984840302264819321223137790229195924811206327887159188429490872673020006114230907696720839169828231360934070557908891472050534078381301115031227810912119240617139367369339123935910557092487639860764051340117221422565646288083183669660215435107817270328921764660776335029369490440130309905726531911248911915971512457120755042701778395720873688230726905007873056268896420881998810815898371389157018978686008904984679366103644520144101338698037458334408103724170236612229238969236682227811889417870557242990889902961076511695673049470511621948278912420252513410362554933142553514305450840983447240407440183471388567311936279745651611678528646431600819294749759077760899042032774434158133375166484049798922777053641738932338807942300551947203822168711196059210466357791574243472458672266186892460521170592563587354351358896649941441873481653033680817020838705838356584165542011438145085393634838339023514907136768026153347620613816143761520383671713240738265165178616239567524103241474051289482247681348557072151127031620771886117880028425172698625429828440518665278589013882939473465111105551107706835364645137529707575433372440102927033519355577584023816964696594109119449592898537919984291568770107649416343538291192755044839299394373809504985488620410549512026953866896912163439393396719132578211073577132620203300766047743371565668291782114599418297129073159293988394338481714053666868145136743960068881528595458512696540394583067376822253633056687956325616815487695237653203080217523903481533622390307542464378907329204180116722887628707263612452122223438651511184251070489870522248697934334958644780383158775911701950808568563549397962652918783863145135939310186657650916750035648815120243881333292518966799608821813296819146217974684871307778458633049404987309623474706669860185912792431115979705814744015401980513540950506482422477182026688150749997034485448944122306044035751942542637470936542049775431496780249268247274362998280779357626547371725152683779927446929565994165820113822618678133596904981148921629179512591744436221589912491110078310156661337321349656094156805293530334971228517765954073343530803416150640937639402090333221731910269920523755530784714138314040348735796220702942650456694044481325797658423621205350313704469540339065430682849239083745886667422171533626849571378747204525385404756763820531898070371220809938092939825700808211959825428763289180143037869747221084050437280592932418767211914252314800965907401413874931668715363542276137544754153121887765762994834923837533100100748632596694419250510614707580023023490473211750460997979365517929337698659471396039766989374503325843630793631182243582239564955772054307871522388906789794027892205581443043130672785753208226737902096091040755129318512686613938176712572083319476746633078751844353095193673879479617281772263445745541034871246133524993697048234895372352710588279290995124696877471149669058460377433626721549781211173022812502242426123188512435016260146129313011049083740541728175978730806855031550366682917794037121497673752260000653464470371652641547420913154587861540987731399259831248343235910669846140836832403135300580402662086102979494629459337883531516222650429311316568094214750292634131995543671983765609541644850770018919803442504403145830788498170380553244697575798610200580587163022219261071263031982715359756743187654856813037249534289538309535016461527142204434757035518695799199977795126241887116845307959195744669019386976079304480469116837540858644830910217098252057562011319294318307526878557471285603965746075713292082942185560129714951856130126246973186579530090597728437593062183811988876358333893318046611586208516093586982515846321303781869441989871586168033626811632808891047879877211651290182256512943459261319041177291550455463140339520595712775440410828414691080888692110749828757622180167268541931323078408343722479228717441162906067443617767606111680774638245150716631279744519636100295077926469858847368662860581422431785805017246844315755320496222868206957174733123138192902619992625346442785489381060640267576956457917690457985598236327498503516538375538835783086909193910148991383714406263604353713205101736338603246787244394235237715796638305943670523375056416783514334816586505852034249265851959307319414697563340962481420562322008184875379948932536338906108598012664104675697465082252665566543497876522528140164009187049195908729063401092747214853465262743847513923138930712930550741500043722784717055915117523837744061231014843457685119022960113737268226423047393876987613351761583652958317909807609528357909921252658023272900243876484297749035742394151842459554358771867856280580038442235370552269613153838599970563383810268362777996724333067400893829805312511430564380709039497967194819457781199524481768088780542766029869891237532270040909097166414620311381499680291826947054776481961204266714130842713010777185518419797094094608975838846111420718660001904361241594636928522491435520339492862066829796250758699111384324015322056597683498266966581985928859251161794460643880735175146824600018471479961765854393295676189835795924984785137057833153082239168483561737218652115730550381780137547705373186357200424815299676484818869917696343403300307153318605041499040237328600801855390880909426389432516730654962640096706632323401381180729161593457572360151712978707023782332523737303054088587094773793306169195848650644076937841841216740399290143552213405835267151556612238841320972039488769011269874309642608241226454416573728982573236043202832952194876172555808958354823210502204864813624851929853483757390761066405259543440271079234025049301767137031179954392480558561999187382909274848203221452380196145085148864280004574604962117540856458450963963339464031474384413237019200678527459651226271623106856962869994378538087283614150421717393921258379170343503388345030421119307710331689385923050615573012128963528501490920633365241180387817459024211093133238133412458192043687131166680024615616465917647190080124901148662470698942390572110727926332344635328983612935926409082135590532621851883746607504577196774228370319532180803624387098033616898211429417629961683118581574191022537646685203435323052319759803454808626191933116311695938250548603151444713433475523926685046948070151436883453731499629676782423727088434921665946595652662867093730483400817658680340601187833928130053758858278865314182457682491742648614408628664019204972417649527018949565785847381712676967862573805456925759575725151431042537150114018435075795717827065727891199597436834294669735747283577094182607666321177179696512206797737811751966587709113077644066741870405582111968546130117674733566044715757934165607998061864085067083116258424689204871667714963842916677626452782854094427188466363023589374782065758696033562552001831452601876058124014813320062594651534445447428099494015577811887554474108815819059278123979528004034487000655312255224362164724648420786248591751772445844978514839319130555659767974112003002631905125502105879853569373566822918201533200574838780912789503246712755591557102124943909452100205234380547053013284254472785115443779133668348038243061216762964546933415158154661734250548953480118051162891956375501473958160993481442570333037031302684472176711740907741650164388357831602599467390387553709731294471978526786840101442090856056357830714800517635688795503713758101458372799639037644847956801140650359061156843914335486009145239875684433658171302883970225942844737854497792961712014200729066399628282669696973879519485199875902022228002541564151896580138724581729319032762570799545347312808287421528565128768345582352828572146360209045875889799936547052925320145265459865417973590515630786545083715390821411550074812179826600822327142903547387475128595871567467733356984721619735690370512146465040809591700310830915915270695500977711674865002768457663788094520590139061244485073182172483767265796395522419680387197288364317524334785057530139457669615182442725841108864380622198038509789963328301190245482564493962427962955442777246983037649399284534385856846030833545875080567848487927812510756234203243661844860267698493527555677909540515104670083940672670567634252404530550924758728036113840424288579997945443121873154557629008091586274247205429402694755815969447183741875571338305289214385791564545778642145227857970741998143611096978595822327209715346324804204647737237723163612551599276395779922645152550267308925834033138025147371854014541561151292331603284976429767122094697290920894224101257083931196925699367044867783806407913971954478032341419003726812455965465513260499348362905107637793778607317914416078778092940589272581498143857882690871825697524699881460928966114762950401397711803177828468740387388814915820096359464332955608590452502021617538983705182010124145176299071683877833240235072489146114281079190679490835624704616526001984987210692394832360790650720259559935233654012112254451347462236075266433063917662071621305513775359667625369205907922547547183243358664439599955079047421431171932810918013617341007014568573394064453916446883280881154550378569651822594112127749803906353760076162011559974313385825345823978623725332969295233271594159309833509532906207341533920135560433032171550336291303636002388552668179803434224809800802251571858728628255485640806918437209823767632354594269158081555198249463648430551725551271928592648171656461953702245124640300619725392650531971086416328836315477258049566376004464522107279547373565483236362505852435513820407596314718542395007680287385257595936333933015180061570604519670279123381764218937703426302131990247926953882866933998983710227488017277042110374378271618470912438885898448742400120433733165356315977566284984097295866158932493549531222244133559177462496995964775138983077509945752446065417642710041417471702427548643522756068321663871698595385280900777241738020556771529553017406016896234271283795659010010355555205346299886498466972126262390925814693930541883694202204741343717432147955362250952764754057475009826668037515328733370360906452650441288543306715243369218054716177541691862569809099019564029171522717637632337324920910135189832579729659321061803206808562932264125634641054081074242860605292835570985968835509133236542762159080031010285343374741166167690524457973136219046253753329673184140187903038896677356394538818657978150616604523188784384065021155942838569248010273490697133629477731107128484276912012236093363841687237229452919186868949549864219792470979891717497913030803192015328677557420863592702049255573076451364091670739901289652616873174622440530407679493728792255538799094199420631839227707364006325823054524687502930275502732688853263771562674766839105238678958473573448138426152780803791208165910123488649797805266719917485637278543618849229702117591400418404933503013414499766845523878392171648254999772686753112809972446095309045375296487505958590343008552907133242651880874708982638880176903784498687775073837978937098329967101981555320323004089235121003695718757312316310161809739227097061263837992275321768792923997162360129873423714526440411589012250242403393378158621083523106335425930121597880207506280558555274287508253939193428182513815306458967710882554192757130058798886988480464783163743040421578878948342274438616575722519119788727021824200786459585697839864854997738234242209051600710561672211280871488856634637616020167980273952775862977978310449931792654788813772659075660442311448681119285787669955293578066126639713635959905637976286033550226864893807333020683655992200718553248054153348990368018319863710194764725373849406593052460502524722120078414401548179656117750288103488210990916166455368210322197211249907420768130006288563621546615676216004330704932209245415426024446284354781654198127178862099213241171257206982386540343652131258965638794823579809240002684702811966326574175375715766031342308539082948277507151763696563583102397332224670244418358513415236683795322234795318558728953456028556644235350794755916270648631048975666284407719129309125466279646283673806692406035474830274615261581696789398529022476124609189734304181441130703739437556380945223365281156281727525072832135186727030373229667214040949598187298654547070435832568940529652248286493856201615912534107069116901719708279418460235671210440384362834234289058701215492716277577462506239587931313541451997206765469138884951782471733617809572516736969623138669612103919895630557415993662045259536124981166768427101575820980191198111780349176163677790578039645425731900435598804449665992213930860603068629975867308996761924329491444532365585224249418911275763644151912001904916999000761772093565814179251516225089076632778097720946261683511383730587530873229525919581635092696541798914127261092221502148236182753822431311952233748410511381712165289157598246724825862674885439700331825276786127212218269874889465116545603036926372960422564952031067179853477236586385571590225324811572708550226144767959565586981082800085098574366524702621794329065708968388648028032065027358509414305101158454849100033316116738600513893987666039784191014315401611205867486198390482919289363018905125288064508550277194081521888263791281648300063157068763124448392803135346641557751713420041669923521783206774326134662152755567762824491162752688008273806447446257584586925705669647048475731456058992635950209343482598692111889675964007762763814074524872611688635518956673922103659461158248375096993672371844779488506416749595719089502755756212765536037110963177654766163928553168728987756962526256901178072361323906160933212568914389958093156029246655690680908815254361668803021801944005512814245898316645852689448019886697321036528167748723685742263180717543599771579611828721943672647433539463140538772471569927501085401514532624216227582191657788177343361765597643917317983751686759142963678315255993952600006810771771607694109173256117916171242338720195141812038617657721572389126051395032866155746073402061146678665270803494861656367314984346750448175113643361147703153158772428866920249510699402550221062360607611985704552425221417441007729159843645424180044702107080661791260617708926875665946287121583328229067182615603307042028999222832053064679390938898581278272950135495456957737488913178144381290855560089737252888770670816391697156740866274298582624114387076813144737066741844133722102549746907136091273907131877462190366891627344771464094340603768863748915711133716506548390008525245526286350908779154679833083750561735447587689169376935966421934891802890053267639829624956807928824650611898828264732467138249818311095615322980843619943672090325462687519774156423235729907207482241002834543009404798489971281693485880229060750885404703486998263975901316827095331712871990894154086090686271406820340911392114191917498911063535341003688477801669922752081846962451179225105483639230391355922786142611191640994176337485512883304308942648673680497067565748527997579041841306327250425758184359394156582268972159644084113974311097793864147520695321873626934684117199824316337612930093476898170887877296678192926117360497429619248909947762226330192040331511109389772975669241480564488444459361746079714517728500297635421958307340030584250623098265606706403091347975762022051438125403150656966296023251428342045520708095347444417729104729860951188471717668647388367144776628956087301727983917823840210072826504789894695994864142922717129036440098982756496744943746286375835251037131247034982881548485081200795492802166595141041916549313892715942332237268286780278762014507179498579629001717474685900578516147368816739455224199226433713580400809231965251989098662512094845850573313362430139865530420110764093865318884630732453885661443521079818437710870670161120659902688431837406495944536285045472291135435618427405280270187174907145854415927683208073272171931459330827133992699209203980694797392083882452981562759275566233729112883192675814174138025282138745194383360762732807848207874878438902679059066347167029798856561104894874129901855352448968172678151169399716946305686015073411548139358887060788630208888558062905420664989411370390181528674969636753788677235303104203028405534694871213747378420598682611903403860228583002445353871617433809319991789144133212353435045409463754951212587108752084797470482358096891408457287149195224449180345333336025434069351266458005303058158798582276931456397509593537197398289032799658844148794349023930914261168867018041527987828904980330210077787088724661831218917714011120766972046017115431103454134968600639225127165430897567335770597919337069096534361388141187034932095607842868943686893571154855651704492734032211275359004185826628446046279773033647048492528724567356426205963138976590606006719247168270120314457726296976385416812077846522250802439839601503135667197928713085858668807108090103191260946419164190792608883122128387265965245772798920868955243065542780326764820019316600724971156316142955980834952795822279245706054913644928870241545235781682057315379962832713916795524185563909072735846064306236663781717727227875880929368098216709950757760914753109748852744842268803197131821504199208767057121479286726106763387662731465116912965340696897324080966918905840228218144845156163151208266364608736010436535723055170937983034589465625447534009387526272683447327259795996982473764132457495856438160136255256022617318255528932885205105899428061741450941640653121722555382555256081900802959148668728771749923515333680822374066372440430278277221214567984677151305221635276498020541569851468203122128879395157970803682850328658045857334075004240341965612733715669817769615479151708899260112244531180404316166828207554788545153031717627509606730641995324921102829000538736946489324683417201518697122155866937520014638973474764781364925473876627906180497037963966377857772137998899544627030929923401744512225514829525912901785451568902310735025126642217831734214885608294780368509358689653148997681483503046883647971177466017404176296846261126971419059976538008022021112064507004968394640889395819204821115526711279500821411264311726926294964431203285466187485428278473243657167100199321780657608838201498605931542008171554959931845235211716391309673102848009258515177300033888515677056646077997198668174317205733121927800610322972285512428456158118505254562680812443643979011663435133259881888578994070496730229575544873568202488561291239622494933271226548414329600413174837129420028285947594196573377902681345231286844011868287914512375789897897949413959236589050905543099795336210937942928398739921535545424263878362553097062822181767572418409680540346684919659075353081325114807257221448136992305904494366444128929543422778962408245280546080458130256519665754460499262016758903005328118708571444772123515620798704198458503144221081474253635313032340760897746550490779784711036733526119431880438829324421416284595079242584539923264138385564529149136442627788268398448353256950493560247433644864638927258492995145351529313945886452785906556966013156427034123449319167294297883422095738176316137323367191387463568708925677520829003103664959129508023740303815383160535659541949784487697336632722321868535987732834895259177519600600421415016942193997167562681676145594765416056238060101580020185887218818737508559832860203532015026048427010858145992232066797641760712677906920442417230672078745285689821068835000267856180302133481423332963293863785188373954022228075836352236338286753619271238667721458427142024066349197546906834220749054821864283976999200346136115520848913784308511393102709897397057323749574990681090348725350409029269263918544365760920021530396957065621665907939607288446739204881336869250638254054858312837019307166611823401076041722907376574046802191881225267568018502742428448634943450490293183674489956226367999625680742831183061022897161719668222917644520922030788255701852441408223663042234067743713353401017772348423804860302150617121958356049873469369015353694892506915365665057472798134076138320832626726004688651478200783899591921570717957189747665048732587715274722189870726450932794562353349562394154154179170715583170807304422859868496058993733846899872452337723314555533484152681434481993244840262298647262943420990311789366717986247228846259393868326558023781791796367944594552331403451364253584981882420527659303806890305918631329713938187787796900466162301607068000773294507134014498514124582755828931959925239627148326398568175795610203408191683127815925449423081903442190497591886538812161278868798917337410968553240619449663783350008375301585197278859126571902621280650989075885370421799971348201812840497069404868609910084112236596724093897641258620043627708553059437501834714531582082933841286545372670254447521888496529149947925744550803309993074300433232140091980225354224037279187387066770417192616627511301273778797211960716190695118713493758538272652585492325924781007242616521150340626579429812576258850652388762019829892510463060961681835919937539019898930616342283172403874587681197216084964268450521463785340660312069085038162699050349788430269865201756009336400882041939527081513131383893213881649388839467990257722229387431354352095280418842248469730667126341979406073332038394433359419296502745231213961481617041244465608541715046052330101463280023099621826196796743870292361059539367248843194832576971644872031806674685221434303541360102179468111486985473828711097691878193012525455689863936313836550722010828039521600599325192201875630743148645704053736730620278421775261906925573054474640822937715807327907265455038570944865535702266817502715684516339082290109384188585356494739383528077388996445401242641855878508846717890861282078896985145471973655280537748172619068231386578513361801917429712007511960971505800416777929917624391211840775996546275891476278233356509383596248197388101294466216749654456531760858645927706275187240739343922304423870182355906125346634245986217571691677098865971179853962864540681021228877580330318266113194958434921477492491285910614172838155212683066210256744187327189772631822794791221120083693147180002271907228623726260510505203618675623670788542518748496896024917903368071085553962126106761380094615362685837071894887559519255911312563938884166176628173538293688515508546777239216538470921315161093595084479264223765335197210947726542398076415411120223214543082757996052324861241264531786067708472683977169573191274450043448185611079127951917072605197200327199926286124874365745088892951605936921216449298647049843815255513643200929450264028055014875739594936419358512862469606214923071903479208022525571637329754810098544107053977038435085713207569693627826785668382385940531072478014307075298039332861955242756736147966991858175689120432839358361557650762399299750520741125482818530593883079970866093690352242044499917717684744722247579920102605931149757048365768876952079909846459727848406415512111960542990215626220603285509413845128575963942631947737423342016429383064879445990234940702199360130222168107394247366618010172810410759901127916359647059071012442229927894734649998285756102524561452191515872244352459634454064474276029473042289894783685339132745051539200792896257988820179074796910683039557592323630065190978531691561076154367775722237567222686405076696503489388055175977176990794757336876018681223420467393896328729103872028324236791272858498822926790917620708158372484188914452259150576443864142674075786510355776743335320175287213856501241326949614345506291828548513456845660840477328330074225012639582104324753680319483142038374307943458418730805869495332263095666417006709265533738230048050694952497243331571972322034391935585503398677029396499494028524159370294779291513594778835450114568154567567016960097625804104125149968986742989466995902784784071667344995068610283470569436135008055483575611851102704403521871548780785532443676009846586142658587771730664649740629581927101790614248483754291860183286362931828060911976341512562892198927191882218074608876843504683813640922784869184307660759279409890345677891920359566592833445105995870166300413807624882136978682684983179066124056140166393824267626347006146306763781833163375245906200396713286574993796376219383727765150384047589033335930965326208773761508275147570318318436570668348454235967087203411648792879126709603899507260191191471002079288824226174805096863733112252034910940048203095010732539724627123814895495170511873800761953102230669282545409456674532117112760668501702807419502911026381918140074788669301390275669930110409655016525387583008167811287722687393960439537124800981889459182494492969953112615385588525408643583295835936627763081000344363988075229803758065240271432064107574714841055905672437090327389893347666021060850161744019500379574341311170860227704460984854689041715782599096078187605348568985728025309887906194906619912520657035653853603224428577953990923090731656732282835800649879688305024704801539316714747720624991503620581749142625039524806503578294171899387413933805953737434202688510337609568865416581876800883502301515853103702892707714281918397092349456978709862455193937949852125450349095281093017492435982489183881717458322006508630861194519626770008508545316035773829970829819392794218259196046831275394262158836193189808201448980477446389851125531396754607214650953947271622920410361778283043900249206151734995369306252078863394295556678448488753713703046912192258552702047873165640208260130373350178987321859002986017556592465061053129031863050437669811820364498024395699759352673771228289954944035803670943981997129014283780343272089284212246462608560055209958425313534447509189587195742167749543457775385419925913996708538918115281740639999994073199413839535736886223564604148444883289641442826226269386767967970370620546390226067187962247612351230918480157424683223820637731537134715608684372036678635948403125967930444315541043960753275479251034185593129172568133673505507590575030103599749478049031665718914960879713309607465953621493367818210817434437033341867438238873013923889910386110651582723617364261654866997945429517390922354118006792383508714720238755479848992970132976006408717286451175764604100146162824023601560737077478656125933679897566477908755934098536114037352578003540490499775616429893154994159372313227039654760257505433437194259155564638423369958764672114283415570157890230534136737271260798162201253676787935911446252037223828559763876810957422415843158298036914107101727640473946400944185441117507654835353675984754612152853031595950190393873761069611565609923971192114249483045602562970749168836398316205981578784582728033927331173536583964092482488813204749161583206737112625118679583193833003904596386610835019352288948591712591846640432843231024395005321748844992573134038922604001651908261173616076444822377806909046360696894699031216764645557260903950176141670796706694158444336007258352760184424658411006509788113652761500305835131483189668675084119080431521449461780197019431825643174245496474500016135653062947277158117530687353757911405944238468266447295161685635904960382167471337125343118242726300936095470699540843966073151627302707517323801701343925933254484394834579751297368461419684635490566157773349346161522029398285920984762178905809721848810996696771836192811951647901976813091370472260533966327359187547982996760951111403591287193235395050946004357813010981607869351640662462198311239589941519425134024383595177247914391733821389797545658077705574070211960666429864764356932639348744893401407082499454239908857696728162631170617273917948256499185917934621101211792892305058263335680265524945644461726521610714667922266657166410015735593910307545800013967257949532257463587187115147482379562740698963687644317598529757946683139662588719151997096789526339681942280442453384921502516072402397949186701412578240784740070143080607348537157730625840588151263881549193844867285524125361524023621071527620478042293628223050280598845653622999134652446791621091246518560740504786864862690755298644838283965867838949407435388309464307817460531708171811572496894554982451013361928782341203115603136126064564883574788282099667422895459009375619325705690029874606377715908950378418739113811501438143518931362187444633205239230961888671610678530090916598590341444476698880326120799864569032064511104503742458858490342410506695846699889154847821014223039414113935064065277173888959463520790440018897468956652234268796126970103231877350614468455689708817557154989506460391049501759550031038355351171252775445139401670731328713125461476174802868735636347561406917706605734919700551810193181312911987224602565636096299289268682059509163479515627389631205980200706723891892132799733392083015697951851517467395640092025641776236633507597489285093652548349233200917100799660448310375481393411348637605587120730207189082860547033505871629920907868784650560985660483839240862149617580218028069200951990523492777725443725470895025490053168510650291967027779809940920838776251548054342304510792072160570261094871917923780289379889054869777164151115467512512345376971332278332669340172007536407503385471543522790959869732135194986510591907607776981821558458477141165422245265306820759158552583191369647384415853092603664691830817335908983963238235977533126917618701581785376177797401670668309340466578220009062277207886387672043650691127008573001598989234729584345325524934868774874212373600572897583110013864315424881284895049022334657945786146524643752496441361687146471019013546637390280257773424181858375867189303523561051752376633116064273504894168439490243059287894921725994145566819673775892346238075716910178369459466670057164149487666335146275308164834439314222528967485733699906026085153653809004279255654591477557710925286949054611751575383425780769343716575980352450515669719952049904835080576133767198488623422554159202648412143479089520408328908585677518788859073711587664430451681301161918280935136639182859894303598660260722260859706467238414462060265290345708852887968492183131654750260315452342418294774847085763791112743698133607788909773684007113453010383999168042490156871835067820466600854570250666628121508033720946358609599315984758038971692954909208162032796629874550255497774766353306119165090247931251837146287313624447326970407654988430062697950204216309467881326764612220796215319519833262303683553443551916825755412104861424653089498879663905868300966934189913279872768090613486155690469876748788148147105434903694880847532791528519993191685029200103244680004263386724225841652675755263547228753842863604265366776990650568015774332688159246319573359776812740513763608373175313595311970392286019563822904299952082747074319693826173924742348699545871736475226965883049287507999181984705090280949821583220292602098540192700713235522596261852498864413045045275506293770668973510583852414623019562104659479809926221914438017637941527676554573290804898167834511106559521178613005329112479199808803717091646068804877012791580112385081559411573257551376515095798216143179220070065809538396241055329175409264606808258628259019912616741519314269211373120615582208457486547602013739635565762541098369691850055948996324061588213129991869050239638720806673136536421018618953338822959369641010116088249165232359580870698677661013993554088188212030240949046689411141755826291629902195960785504470400948055453857455834086274605360593191272296314646714498510524950685116710949292667452999323861791546406638064675189084041580928340180493199638142888534502746075110790093742978223524842524110250420864620211841590102035948432305462583208863776814877022382731564321094908345309686164615299093085024405961238293370215714361156773944852875197175432219771327879182509616967652722450474243653458842604215978614018044359261033848475948732774189712471290434367794636064230775225910928381906556501963629988744155123788017532861998526934609650820060486551252896813039548950244896757765314318692370175681897312659005656729451790009549170477284420742137484917837619898252962281036830619732747867126121298485759239340474098155918870991654701380190352335806953857751352677031035776087668623139043201093052236702145973398977142102254884608054751324972130118095169639299911372031834946045651432551512042769199032161279465474123767743207873793183340907174058963774095910658656932327474052410736378477398088398790628439705782651766983124557979264033098506789295864484961595029133112403921037155973699544846220671702619733593205693493631274692906762707721318827676402289627346870714709764132439872756740669730851473462090353768780596971111861965079640434248209535205501389196756344776994350860501172436359498631848367752726545078500332256210113717856032244331664296074390020290051643415410944945724574689997870516602095681757679558306012826007517687640534443691977666924804335590552211997421765452262318419586664692566766059453636745805430732724598019965785280138901518824349062695135951683782022928005753532474529126168447110426322495656184206895596839826764022419844116032372505930967150871937139143901813532307056518614711909377865030390861596561881892746717337125442857497137074654844971997388523779987821764667374196169802188987235704549742519816283935329104601466230835089093007825315255273589868001046658983688644395546881698498535642899481335884135146771363463440642422253774358933559371217784204074964153065658225107305577653712334137969436894837507348429988883604342499181975288495588409387494202812377216922589881112620556353020931468759980442220672569691446187799403482302189442862082371869514026339736503459632240645290181796938869118204039186119265064457705311444362423957642702415409223030808750681898521325517598162075920443061901074617814685335163392606337084090111992453740534382824501779360756378568362607036627045744864924927204697323073722877086822085845599275714422841968535968039806434018474969606381007328642457923480955422607656641946733489100646631317966010831964026246059316751984825798363941670806152886762146778175027898942459994255652114524338257394139726311461694150413525725467148958013920386422016837168475534509665419714816873095070788924521608640329426032647585690663926562076947295640538202594226640223676778916629882035060662858052967661024111322461856924121695417384323510601454309951896825886687752658697088445411244714632072394056946330499532526556316735046141531643733926764076901336531790094032715587996669236062999873247940486594547747476665981593460870801396078271626185671504690977713337956136712206437723938319833983464417981819632013418055910576743926900930865048348742167423341821722060274533765823648935587370465963301852695619701822186221482494220247513456188525116222583039463056715601852315356877631855095991845294607406326502153297601607339689508412511715724530351161344132195362175549844824158251101623039018351791291722646623690639814603625697409126060840632542896446876556384879305196906193850598349056441290169266511590014742698610960137233586728523739451064299424883450963387261405676689588411647493660361087346974501650014678423789473315298389207023620754279631309333430091164323397025231290525015731079705994269634034768121012906278101088142728301513801917191637802152820031413021174078139838848629314123686809688015751711444951654249767383699851741027942692756084310650838860073275806068523768471090448500067169990344554834246973575731286689092113334419768807183728065782636802688080999556837247348660125603115451954166525048818903152174691257722326639050636739707815736207025412289324649845768352314582521381029505545678112732649261223150985011330028604263463428725211302699040490568762245884846308107560598774613207367934593358403202160909497907582548560478929853067176776249991888833345475653209913250172382408963365465242943525617508751669178045012697959170584155076889021910267390843825582817515031670113711709318271217882108700933277366639081933561298191463721863329058443202596940012157535894656359429251239827546521186574134969277261431628868271933941822678210765880333452082327180665369102277722914324684134593887576660833819292127572324370750365055863310521710733768799957251388603462881077483540699055684078165274427093215158208893875253446548501219046938090397992571321720702008144650075372804007121705231148247885133530930242052778981419394373553870858101173659782356425133748079584389841568062961879326019294595537433229205999454253722368777657092500933098907232418340271485907780692484906229502357459973972661765161929094031614304834598605492841561146636101574808103146686402003164653725712036435417556648876259391435869254142571664392376990902357512216369182770964781060877567423015956975911347861461238798187473622347582549412937491008987457577084083503128054158671781298975075477498386184218512724648946177717400915917823859038802975553002862640801538071769565004108024903112832850601332735204003809818240229832651678361130131350493058320504696548004498037717495605293175227565137785079735097465181651200067384339446987712685924047332015873113013078786201399914081625931808157211808683456084927499895829602916106255909189784093234793293097909020999532951739747993636091463331080636362791790635427546691276506666686855755320608722300322046545340497182673102069301882544358525276949540273326483444041170951750910910248114243190120663404198457953008332763017849366594436942114599979814349861400184297715853376722625992931372509604049672443134185527889235812311768351774593801148273822750660359275651487064843345810724980935278561870622975408459088397713677306969470249827935383745969279067273915593750500347274496097129429846038662301533197246028557477673350176174514756704687542913623105103158654660887052012295208868822277889144127818387409607524883988951099676382758673545696075960798870881277156370577249553012061541783704504098857011113994315421463553134849727998791672199262825630557977377215533299689912419811804338989680904222088891217934171285124676207367454915277068616224700734061905574226477444203857903610829501549206734757362114577314315087460654214657637921517920336719380086324485994754058513756348362408406987815859581578087145439578254692740917274657938736803418207302213892965243409752240905483939529378691328106826876901085116362338844597475865939538471681787721919125335085881331968429486828525382154377191316990026664870242110015597247394872800970146182850552617324767651082276150449454605208287054391379005857861389068012924783889573238794083775914454924736947262909692888350376521302265869250855470750351705733774189021035592676930145336408381714816882491931637241745445601583853922280976251107453340057757914962577998216912331354467276566525648960014866273885549115025031132323756840013932297798064581516824635924806194702375822883148377673035742960910285395108261838093814358146841015893443769707595864203727817279843541700979952241832595790788472038327453840203478862925782168585286090902715474268684141891548404363820603558791006781352096600734735303591376110200842157985669143878106702234898858340189618021615633069856102869816426391512270451307583757489658860958950422710551066044377549896251801594647763850231042893863706853785394801478500389993566127697664211250723084590511592912057235223940556829186741994139459858844835606228220753183113720514745572707654229870651635818538168733871720555171082695598997900325102874011533446749225130716694848701801571445664385851802765754920245426097194046552312884212202383735732670052207461988865332967545706860206952809168529675930551883097432075339139031328877219487810565115523364159684758033481474946120145982170241018685990233792183518319608328454704640743273300179605767191452965609963541442630080248815661259675740537436917592322362990996272052721520878208198933720254854397014399735601684328741730366114401947306910123679203037549241867120330852608109580990395793508632066406829011142887857422206704966982848372392775120138978839243187413626047794258029926511830615611564759914890002956225889432859809331973434294659569262099376449086513881693104880966065497001305468161382802109150854950536103257364934036912503442659144097335532308949450496326997391670551705065711648159749276503729352662994655287416544414285343939018125779822692678236425952142035033051314484517428103419554755435076100863595446608938879268587854990841968773921117979506759975588750987120289156699803469538797394681054100154136536186646714280487487853658581673554598617219547312897633830101573068568623735351557200911905789544400566654673446181731024403777033604586540961423518261976936974390993666831282451131493407997956777410363395396674363589335574144868828239453556792351546225271340497427234863103371845251174428056442092679098821986256709847614589739579915360895550837742258231332555605345258297335813102722839208238607310860620781727720375523773923766902443198176041997045481187464925129931563170525036776034830698342131963437279789907552374699569495411410127984722436846179586407803430463157546414227867524971594517042615564875193959598571493998422335832635643615915544950525217247139597521972356227027206887157191852129807716459739338855558000701205095231789647828033619833661374414733891194304745708175465790457918880727143202741101353040056374599514686393679686395617799452178657541419873054283746127928406952082037448393484238883283147736448547486352753545834945049988968327140793266615098029664447039836047854266323880767770214258064382571745924324925963295410198212175580150594511676256784973783723125324797172072974901653168978438258622247856295928140368114537932236160616837918146057440916675801802511842340771259102405099023372121289486965713354238730544539521163934850772060866338281731321051537201902116994921207751655200188013624388586428405891688739767878937606691047318127739118950748327032805697464189189038037351271066871480641318103840669117129618146025861051976377309315616234492698599750070313830599926255269250334340686422985190352050493358268648755647818388627412182222118703407826094413119363154073893035638571598369320991867495232503085534480048840475286461967235913469352396056468606126537028509335365214318129973266127223516994098078876636593624859127673062701867648649980515295540508799134284144976344508425845131304351345684013646935749549093186101612535329761755282297071616668113791924595761199921282303910119121237383420159453609153139678176773320425018054462559374161007836424898612849781325482581269069793683543064136212481539256581338703825863876844268748516333094279344306486920939966182948909877058640727556876165967957889399878111889049566628685740895235752502060151962329664094905114204173293606316861331354661807495163031230506537054862537033530374371998913498194562465280002957274101063593435195975131069578226545934971306602714358906360092387859638763953688865692884162166720872687807552522718651175831891671268989987004265187561295645651903238084706385929098305546358274948612850414829794714621093366452366899293996562100977362378150453053481571152850808976932998536447240843915503645921663731237964057018950219854015914742413606839047892811685805482700553136374098269775253544008553763687674610943648384034559109045508830338336516735463781247057793671679351984495501248894840450137654012865190279575893940413895113887051551207967004722975891128580464101785841133744685483807829674386476058891228301462000734279337182321993905035872734395455170918485125238592519115769514389686340611258693542306605382627559789424376594439898697208837407999908305327679848045552762040103722035870738859844247562549574043798951182950194382878819535128276342156155269686105022440203288039558188620794066188007609499847421511354985420422809701506750253559637878528692813770243491140066784672083871597122136678632804345706061498842637551384741626869418652858403867794618151412453380898506059038784405889620442723247632136926652356595121636866803708076488994761330154605026030965107889534483550435504739595001069659288094060036548450338357965528755063180791001295476368619744518116334986933965651380374226600472010742377566538490866737324726952297291500741939144995965617321467499111809994335486696413327729490985657797427800558516667855998327657455930817681549727685929388079577473465540316273042053800573539022576699723382950903653214859353112556822075769643939304866937140865737344494323347300999355180720647207300429475719115319877246882024387756611124327211478215585834389846693642524409040417164654493042192871888107232068347410945349583961843343302457376196512814946802250276271758104911585887718257965521678873446633939745238430356440286954683586000872728684666080208793330699037944180313972535530058074802539887584869918167165425685267597135391262869900486682746439361965892430397933122390023904268545987081155004649765675924332013228067916245901369301792624041428077902566669242014494438929796993197594655907247202803597509479477651897140092211660304824368407950741135252010720680171420284835869820031992831177586175842392456540975999650638662217095518306502359780266038543779742621840288465155952730865523301514198542281912948611891037933515673753740585318255700890812111754077715846999373906195004881835060561994321878259615534425133624703663037964739038598847618949940315455741339460672066456131461603433628327745439223652644880374324850510119934871521022803247296680248477633103597414995706883734661700965121175072278746005955560008600609231715920941112990448477070560511491507258588785449734355428336775821196777810342857525231597237260053635556000043233781549916914968569675652635411095050446889221521736279752592017676281588207622942732140278522842035231425273493927554612857233518500976555997027893030248724046815611691323495051122170610417412596971176438008492394806714579616386160813370269841130660704935376071130793486264435449528136227887713320616285888653856272636115880864692180635386998939541745183182981761656013262995667918090996590347072276923987458748159018048355558434210926507497989674638190687077204130846898386071397738547511742116092763584053569349091710862544853835143448761643708207944372258999555017713258997857591389540531606410191558606003699946409254787324887353866141212477652571120726483761704880860240116629068511425649432609995793448127397524817925849385987735195279278514674580441364782265439854543711960895278696618327615030359250910309394238357556610007169041998392529605636981937192157577345743258938689400827296801941229185887831284056216190490095504126135873422184414153398238136591858646653104280955775784461354993306883117421062513094965467639113690540376216906131430398956980135173511948746809203631913562181396120045553985519207265387173095663911769520356108662372226128568157168175292360127672356574179137703171614562920015661817200779644669798326105987416249340762893378999497509066619662173262938115927817535302350463198000941112032582477148284646816135805933163521015775569103611362074121423333486348321809919660077021464866236205135083109314078943933246341581432141449140927021287830347017114827169149803897931673394203413639335794773207011744867302740996292733489996047429179089312345072173055174872497653479129143409536778393716262798762883847597142594834721720907539093771188253415016326007573717032657360777949305230643537101976158322142198362032572144025756699280755437757536638585583850793232808842443803637181109095827001562415581060797039593901106530775104529418276240845438698150424016405146209396152310639685414871451734122640817168607956908267071440034114320154038751957438310889241864966778476930094223681488910749672965499384951473173920365170652565386475481576153472350433571795412089980731444398114714861912038340851803206483570086136090899290644868666731304800915294778765407753132081576979470916028813851891553279403910250096281350692904848158930639961505955560414360287256376237338351505931959988471628970409973007049600305833592876430370448335758042953879127324866750612797037501499011735171619138685148737355166275954151246105819256157414633469337584412793028753506102630628989442664161455231335718567334436509477741521828878703798932096401014841108852024494547241561139373160048222321694826075636142806306269152227881740902435820391496954801323834228556197927484857612512819339299894376687825947990789659385872060587913367190429134176261759044360156186646601849852873576558875518581274419391063740194404170258094617842063837025476016569118573570946813312637005656286492187145537066406772230335133546506667061074083574497593617995174600357307966407764166992852693327479586460323213816812557450091421007483640627864498936750649653658747829836219171170694164691417963494444895825948794423891113146297540670657666637107535676546473752741843451270519280328995909364935988920722394542303500095888415188915417988266883103968727546315940875069384304568230445202005509201852460232220451541477531293046487434361045190654926183437676793954196088799999699851908867428465467367934268429843701523579236227933332570427250404586920150104258443953618413106638741193223184235679612444911715103825505750992879654624583899215816170216863055556766573710237390480568310277847938963070070034341609616700678710951523065433028756480819926819274096195942726541115939551166202043294751186547213720886855255834575199976901603408762989176445116514797743192169472612917284835496455805770913981019197797485615228083210846268911488739893239834203966203631526896601350892562376112107890247255344178419438221553434655445206449684620881256949589772386291356565906482896452171732205625987964237755576509822391059153593434318029869940113048323540558143207225888011885153899734694167760582631612478381522285546945135264581225708876052772435474276145937306942750609385345418538403927299294783176083800547915005946408752839901427463025087667965224156153965750103377326979134463912233909366514010484131008597107208878724426651403096088204099774345979918265862787382687767269383373205789954376117506214626675456150951538109256659491403791734143859431320326701121501203885091552969251375182508263958906587323312450187801787924582146147770049572660224221266898967711254082414614432744964589096363666142744090275311214041900771826243430979388032931569110784115952886493868277831174825220373954067233121657224872855139159247357682385703738233694436610612377411337926066225170343900482187710815314425576651656444426247520835913518102797697394513310461466623834030625419522880634042085678471636800324026223001767719699743513596191873563182190972075585362252261961046609835909673897231103696300303731585295680696692677753272273890015240235513483345185064641017197245467745143804434307670887748679095251427542415452522612240506028314424786005524145453286728450954099262986416862359965534594478007411892493905960284755291251776259090357936139520217014121844521400310036236495846625823357729422851970633378695976633356736381811401238696449049901281337338967113883562686563544536125669160725431557832968700143330092573829381154639893473646328364680570148533716463654429728527487392174198798963474346637191545585213294253090125510738050927746283708348696158824819980245764603040456107902374163818996033712817186721662584621617789194902837968889435997185945709457061523320538001683335795932528802217404281345554852630389652595026607585870955233296675840539322623701825996607862717563966203691719410226014331435912934910035731163072390252626117386451554220945009727898604416481454048027721258186273175325552412229330537602546211999963761842294215301586993382564422820643997443133219343649344403706500464669466776301467444224465429861390898605613283978304886060604642258078458653587877663644421806141592456483804357953614837764717747006248692780624838781347759766663811787024343109502356806442298084454057022001490199439094349958823780928884994968422467971679783460075346515864612630054037977061300992390332243139199309267955594250848853114358673487798694814637563310179987117156492181662508455745932086091098986077560599533395942561579407236383447004893677749855571110235169240419557359078761718215064871803154814603406553697560267864323112957607288553238229633427801560118246650949067901515276459081671037921930282814644787818859340089298990115437453893254709127552442501961264068833648921018187653756239435695457576544949095060950453898370312827543333790926082004519311086738606923069270180008456341016147160788160543029663863156693153919871631432559424618872279751805273719097844476305001541959619940425955664915075150391379850296946517621318225838457349516179410189980099162527629408559034096848654908767482406005394796295068739474071967644656090606018482923788728035904905523118132858310600501089169264355573250608353508700306484850823164667402050756878828491719306337861353206003878337444929929704635765272371785888443448798247932243178836500036317627082994436475274205461374772837416566078829632112513893573448598275749301442503208571842512939629804718179228321381268939482250640867141368573952401277992701344099461412552741747142667818990288702734620355155972417689024154250868145018673547618300698723878559433911366059417854455704952717133569110477220210690940670001958589947680117900263159742551076607505022291549833891972418129042757163657302137670056029744491393103122463372741861580045457223028151194158470944103499976953486155955064472744835625588141454233869796840453101018525416756660065762285657337731695754036126138952419295882120609878349735228439442243199138435741776929437061721566264343017891600317604004616447934343320203363057193936663864263342493094129130401050730681573842628581085442513504061529615021630200827098573336816669414230077159651562804543324073830843458744894114136131651991265239254262020056173940697779613406109352257651732865764344480305106979208859167291868439928421967532241907390621046823298014783867821973863735911183247294830869457219424698978664803516080544542934957204995797832286808295307043154330610664546714889830896218550671185597341788262086594903569627543029954559503364921322661438971761065502031170800187780787355343216453197381028819639458805291017248868055862555478891258457252598710869207394514578744585126228794952371513440953579222058357693514743971895921816845005002098432765114627425738444397383495047494320599314823391238305220671737065977526062005158113541652610672547105495230893228032079301512739001974740451340804275096483569373091507561540741672762824276735654535244692679018223451928379714185091149329797247980596181837418060091853778497867574662558824466716143806612427092831937121122241028700607853803725505660225556463443632898973213057021872216201490704396151864248844698896995264828954036011360518422294154011016743107643494109137778466344882798743093876647502375408785929692018064950424059142259349687624622325583672009036884114115102592824788607208396268087815260584016411712389205016474210928361959955393241987249463017846855156682831540877429005141565844331444050550751434035488133572098658810885382887929396001835048027155195147949676413118149836086382996143426767359771500059154533220090868227015726418588514675428186044024050558748865982374990430901573118901360968201299780116076423360417080074218961155543260352310293495999946424618984513416274950262782082586678349426304275404780594598447959963374329740644120932737508365743225572162478916295200838405633734170317212076861950695158317368580659053449976489353381038851552359105007862842819010025942331509389140800768415164066821080104383683176688789223120772239495240464152414803128561550468275579585468309738908345171050130863798429445464647757071520097278273488922743615970352295239177571781845737243442939974373787417279625709501986681467149032667014074111074001359314222431691821229198637972355965161000580483208650819280688208523649187016119564059727020710723256995508093203212724802215254462566946796477838035184479392892294380566086671038143989090795231604051515449223420024381053063619384955878114363186312139075298065942557846784062461075080607676243534751941962198336173938186672810425081239043718159688653252193615493142583749094384277727352950560472634191743705266635467925578582344107072043522334653373120513108460690268713689663701230685853553570768554511025278010947387223635465099030265591072818566129310606954349089786561300136503458891034088931116937081957609571594082740864271254552121952985647524836748692447748135448383790599128991881979859721545364220984425460812643609193081737659492512342268898770993472009164986309870299675015354070364536239010686175888708331113420593520313439601105547106966122171288819407345361595350045470562341166041108270802416955426220979762630373662498761670814918329654916859933994706480722692436156093321577862734540407571388988658424039717293716890562254497940738818101749542188177341160901797080067214565047846392434795641585482888246684950502276971343565807682599058665993211222155121896620914942311743250484394750833465355586540943026089349275950561080704409937009431989204050344487792386471388063944345844658107353420839111000129872299631764376765884369282607905497523782064401049667136481904912162516449497201487900016193594824586274293822477108968849124330913935577673991739985483429848428130038826700284904320240586029417155965195518633070236561342231633695862990302020696964705499434135779684795541994690076919689842253300702795342406587803996005043710787623068159597381614523033219117662766492886446953477029790445659911742877677069443589236708752042182436050331013303848419688968540902331676467315605251701422341799933234372595101438981086494119615889405812067682993306958638456610673172981819139379984371495991912898290752318993190405339115071630930119691289220597862453137549279010520674586906474012059836816185555831234992097007452672779449231177114906412763116902718608238662112702182798006837102262010891881970220343828580474532297321494118142020155007433381055216343537719519457291899160691635963060444848988959343847096777104586799873110956930940557824181016671207716733395706870655845699419606485494315559389195945352774184046128063165360641293344042058939206689598941906998539692642992701809112194004263534475775224069789593849688933189707146044327990461177986073881094902738013022595665537355676642482798536581515185818898489516939054021953723170222269571308456403097624695144381916586616093295340072390582129277446374905894324083885077341866438411265448880070189553089876985803990124565856051217109743745438225510119567743089527615408371294285074083011100131262140579795216569016123110146873516461715552631499238368973774958955189141544382140416918340277112962244386420073209097282911583790232116169341323817014488301333990269914128794251515001914622413324414906270729910757698318388456954458175773077970910640770603299017473704091372779106765881712639117138225410649879464662366996318128864427385677282652562972375477683042095889292249347332704131594708461042163903985128000130918905262214641143618712805888105630994715422099186529845724748155517961866431280451009253909702031712698939446569524235351932362004161803124081448705536316186186825180850475222166982528469973383467585413699690853725848718421165981169442463190968793055971101855982797130542705390575548893766620172411803745764931563702095004851603677942578982577501122164113676945692908833167654757714757762734266153120575420826617586920593818232485988278199034041978797057162088303004969315100282121067865080741512849339787807449337759716428081451225499081420956659868817260964598118343112227121707771402948808448518601965773414030332547273682524028057162722033839158512254565427015216786750344524440003491633796182013467279074180629067843129618279262887832487823242999420518345334239026217163587055215718567243291554102675730176132548894483715027425550708244956777183291397961487424159320924837929072562620358498493649772607681093857625214515263216867655969460740957603213357068916581340803034201855160634843411079992138645688611061038041324814358562944512588826667543429572217199230824283501389180715819548947790669412590883905726580051506382436348036383475542768039430040200387236750475801102352728036066890636664870291288018556784293186800367590859940406839310838698132638398839569951028853671884131170989190714965956429235190144918393065614425983961208991047518317198863743911624661345568030934617642354760899372592221472010522663479843368517220382972437225015921173288963880465128593526040662279056524825344093379849098525195013128240576476972791806518714196106315332386533928464860595785920272813249035719562694089505879264749119274518931180911717203345189911533403141581682888907942642465587123785565279829657654973359991746657047186164936597914211548067615864318439150165551724501527710241729284816708948656073506017615978342969282101032990915825458264063205960828826548681795403593722142351661506075201966065903896383844368059839574199766074782161469747023792826700004247135076260435885650894493843982575248176294291167381033357130103356584542973576287512127366124951568605517057028494429955476247253416459659955766070103288582118264611653355130929278133241185817310678707195968409330717879102164620517808380577743436133843680918918533769685034608224193178695973317160718877293997334484998072623792520157804549993983610062694551456756741653311965988212181476755533550556614869559319667862346640712064858015654052023064558509636344309934069000008804495092528336985899611057016314100149734382916260609671119681167344086643966137062407202693085110097791561591443025968951787949300779377157869340068981092807391368268046995086960429178326106506938488531877905963004958615640404336517578107394601551608690715796243694604025715876981403543023392690633553101752708277485119000560949594914000370672563866569037329990594800184809557443500320257812815130865505141994855485042559571623014194660359293914678510823161010960425356629237415435671762309900879476924575050690344285663404547694858120126444722023538663153472929350536188321860928205780632210989121370103903372548997307994848110234229913186601946032601086860289098942132382879817747202146971850738560841636986699512972701999567240975798686805531562076680725556628853739338678771307234128060592396420387961826048277794087244803944555993492480254437103269955490134285344714346981773255052526655050506244349602308599145455189497691223777010871022422990093209070100614097783854786099466349858272743159495796492191902256036032416915209960052832043545586663211845136926962637353754462398795386770438814611555947979963778301438328681368592324426329992329409855815650389167075929821940622970008391634716140130225425370781629404095189403192522412102395518387500790969028910039282566295731804127044248290875297026458243425405717067213456109512869729750043766821846016635026623565911711105870618333905762823912043462118624726694960482252972652963887096833427953119573986968308830090792397641442264081571476753471517809220544353553130331396875467446851227742974900178735290811982116048636303113261957670111925858782968123000196357630114517052498129939751875274013658742722724237239385242407776525919040863287937275360354450890080466976053793821168897377889313554251354983134173841231227654264793937180842985740046837898935789660127628493220618259088361412660376227544480792525027318405004351205801942542570601042865649782385417713176042649696227362212617135115985461367708416159973080179919212183154130640241152648923725381953226463767618274644295126214456292880574126999843033649740627839672748428881647162413629789685635417506850903302543821534287920739231946139595000899942178980131184809842340061892589237304963339442834675888686998870373026482343162782299268635799129239547731678198785193632398410934479462433399775069329609544843647530320376596595641563537265164489112123434601211112671540904868317899708627177333578489885331194205995080029765767434337418299123861776896135734024981056414796784061979254855059657401344133324785590166539466776980297117117658077780382478475061135242893897005500433427313954344366080626520883120036442129516647571088085429027534901158648942054174445316918705777577213232473469954105061926989719254919859669294004534585067764120393393063668471950235132346466236734146687907175284441514508389822817950175576047919249691389591723146874225231126800390295872908652301398205722284317714980000618036970321973777148981739223835133481732024598970913094195395391958670549305985944201041490442321883967421055330392285364499387571277253347547741384446478509535302983650627926289747123210811799958805037825078159493347139373815422969914752026882242176057510375046872739825485403070088455222239237825137326448668964170058842015329644623317190383797201168639481432299527566451080807916527910906235068915925055734282483066537912711267039713314521186821976544825803239472826108799944548255683397334313348515902157646379620653568797275512798493357897200396609082224924744612577636957237652815672149228868126380884104140967217977173585368393308945993109391858885539365666449718568026207286613961740540841361698204392844440511546798672538859372111366140552108155768908256164938130176924860787385348760847961696173319307394137873910883183022032218956248527086990967648779143672626093704825865351443902772670402676366387376671859837865933471368175113501122462314797706022414727920213332471709810201866152980462993936085086246802677049598391534344212582427013481837744816737141681067626566277442418076814075457104620629216291613869388417064420684469086544115811481840839770518434725441406109011099511449258034735647411139321725426098427944643080681388586067705999811679532087204231911172302818684033074603224940492281371338583414626704928430709036981509518599643136905108052577183129410584720128078892916761271570603027961218171658887586251022933078834471272063265666834063295722594925682177103980151366456754173162727051790580966608505469606267457216648213032252936981804697039260647201279113163698182087110857181375486949501593520843671170349730871058229529527169165750766938732024769184270826130581990516911617047548706826450898731716252149431118751835787753539175773021852929310601275179335498605649244881535097374767994082575430880952883853810580595963894988794473458543062436439740577916514867818770050617321476087023852150245990744191635046213946867464283398430747059514061138681430042591360304733540664816216725085074361785390151405667046504554349745206838008297642978616220448920190199944897646339557399559950406793586486348682772141491009449260291462085783657918323596352216979713307184206654100776311772061275584959412535581877962791069171419991734714564289245658228588612768292034043889429041968400872247336215792333976020519050916451663832129705570451779853373618019118104501352643103537059982393944882701288306522090363576386491183139738883129084350547151214750044884128922670785069474347006158853676339431141202166539661071058969754960416242916124775360915054155487316964763902132933736397809819223958483243080280874989991372053507928039556921735304107471364286839151399328159161368901453345593943927341290559027690821489894197121480205124173280519944119796470948941161443669940664312098904333644143716443053105788910235764127375876743168559914768965948402889676645023603444132206290207913840728977055556967040519063294620379636494389157704936569464728302982777157635069991967966199628815285836202095407418021163190002971795934947282224516533402950679971457016630676325808038678248108417072169083100359777970736160091020298823744345347006505687565328082260058992544019538000924310787752332292029477658345619344557235390100298189492797814544951402164180126287807691681671815233273644502292578497428835527184847307978139095539804540086597025211949941571783825516396227166610215229161167126185204308043349627889618456471719396783445837086422644562804042261074397820995297179397034353587812915470863419085322261306965846473381997123057013960413647361806826900193623632897410888299977547355362723226894266741548523826195635531038116837275726891161012058271506781127187804807987260078575833066499744452931522530745237210100826789888632952160166879118477980386057927689313213074413297923478786000392378559335419217234053479977346156106430440227741842826335234041143027115922661890754999567679037253951314700325307315397390884361088792699798074586072678501990060841864361858890993139610523391426672440100140885601475084253721300930047053360742563913529781452804913512699545239922044447207676781168801689802161265954200521019043512204842506303645256715967067535930365142929461804496228184693686519563988729678497911036902961952722724375455846515240599014152182372758774523176407926554209247864199001407766081229153523454361841285432141479017544753452573154036471172121558431278765700883050893215230950727607878332023131707155040792150042528483577938066111803740289610872208725124769739240881670822742215242918022567676143906132717823461834174069031897189321244097217491644053005642514403655866369555161008008453241359462348044024007965059214234316729224045711101581644485123945682335314981884694954959439959738562238421298782612365141717013703293785461498920422269006551712576881282422776223028417736677920238606309972002186368547013404212310379389206214577601633554514122833802004324876815561705416642941793329624427709887828340878711742208957163542004742806433891442436645610157472674468585815927372772181366376813555712166716394126346262839337437060308759540877350154839940730978666166827476965738078889660360834359424558810105242799582710413148942861877531840525465706431907961069279861509179112671695742968393988567015468428488259897207691751277937287067418702749139921052902820324989532481843857590411900637356172487446349132739174050429115141890787208322348771982862009185206528280967705251826356979667371059542708499011777719983084540045675910722696794443614367326679105661470373193227751423469953277093018074350720623235640338096537611538646154794206089276928579990853515060902687264923563857103490395759424109814799856685671445103385131784863771592225781860848733274444610405483785521567063644251164070978505654348549448647193994443860338753138488509414043727469972619979555120196533114343487174946053734610674252992427876680877101476996067272365788460636106842148513053857796188556080201609414948594374545342793627787657893702665257219861998560058936082634751755225227707695386426594270573548235206727711082753796583187597026836993291568571382774966989391312171765839352145816877582005109039848985757708677114290694527920804247132041991816915503335280931769935933990948089767836610721569209456713603197188665295741627807373413957454948340613432978699866142387512225580534384525902112301542726282191168110029576502401208461220538840078899594148391244136796799411754310032252389876532203132491648589645128488648466429977270752182898115496628957559438194818861817783096993600860234311517982166846833310415249241417356964127143759992126602731508771518603208653092762992806524747545478150175001258015935908907056194421362260294460996046072960095385280006695975041095785044258629930808259873020869866474163380925962041354151401434581904219984134484046866762842877660326316379272780272160386183930910957644341361435818068121493227012688899129677347952702429251764760655725263793346482140483792737057144202232968236583994239296547671552736412946781375864081264806855941915820036256331766500757110524099561387019249861366901591976215119677549660891320392683147572707569688788695876714144218629382744388349468363490743419034450834458639631984366297382013401705010102540561775631866598301737406086632798722645277435030288858010270023813236300425790891992524837019764496796084792961611135454440632690007305994663607599589389526665287265418501153464917827929209253752958633771295753024818233909393784450566268038242780892089855364316453833766050636998265618346842077915400312764504968388189767464031326302181033312946165772419150793945726453978328585299666119079952305889731234524968749971123904538676777947849818231283118566544317658655670322931423949562203402520823404381800065890806959464356183517947114158578702965345641730343248846873071924520269668587147461718495065794135367449656420733121088663433335901622670900676237230675339583878610064013703972456283292875613051615457931345768905107198395664125093810363776759874307982167917440448256942652871261779145306343919345700704452366347146904409830639829638098255107849704595766662479683737802034081645078559436987817641804610930357393264002085527205939917734916148356258212383361659084177550719216719950896593295367943199798909054573016718979734996412079113628411227665375810832413557074775456897318108144150323674855639213709348393705389196096070341581968062131445898499432702585570285779147334974020956173632700049436196143150538210897590883863739348383343045166916970834041062063384691218124594571969102713721054436073921046095293688193801440924593702386816025525269583443098997425872893213755641720133833605382904401874453404190114215230976298070021971318638651978367701237707075833969284516235070936926703610293330431837916786039950991109516017945586968216385669263981063578647208702135383465875957690855277719728325860829264431312873420337471675457594085941506195058205590306954717271910421546934880590508017353543415610375100582426717375219974825099418247740784807957673379042603819475763607309985222083978691842627866346919909605324020885530457181039314898633553396686271546541420944372376529636594520316901996704805577750138066172753040949347585021046842967147977817171998791432980019511107902948292944917804046872342773368197078050974555031897367538107054650676131413220597726852653451347703355277495187891237796835269355853855600661801152920309070561233057117501416420082436398000664816811977622594576052084445697399666295029839723349494586455957459208006149500524737130458250920039201169366296139018767221435469789795926973670327307466875041555146041565385108120806586862442996824640160669195773796520590321324722472951980201418064048587625519053093512275052112556016359515134306418511461344972651007935486328037189621064247857920265629852241235263407167997459793153641526185595215845021865703690158204550801670717873305603868728910602506931830251900933744439207099950255890506761531619416442546903073176726010464025777144253785946034574663891512550137448318276684626636035925696923481487658661140449790922540887899032685575395172122901283106080189549702490814409867414204164147225797001080942034457942220534840240137684722930301627126869289041869384861204483784326391776315899689085032659930587574514282650726819936281150782924448874021389121489094868640792585497329860506886693439455530221789104437596820545597308651895377570308106885023762949445631406664379107519437298554885592739830002816741418638355926444826896964586468043806707975878426642304103161720718185917859931715478375209038401054652628479623523095770473166789658206377495139055417335900154014983816088797128509927591043148144656446222524216573016536506583333982317177538640402920148027690100985957608323384273321696422762609537756754578671073525815373834159726949390888292295670440103150523137028839529521911884185373932013707241992474504405106611358475733816824575000055669145077191604382154574498465230284580447680354283606153127517800261509005612420562493953988199203228840370076272334654422292621414656324361564083139076993650387493105591874767108043387751124679940162743363237661730327259128487968385762515190995012064562167465941082213171330906669222031364456763037791649726496152070775156383759170688151825528387512996181279193855303804019887543680593147855952112931659303749063179451459800737088038034582721737673330854442924998775742460143828190888144206935729972090683906961549111295034824457311812915113464195994261797750193509817633183721770276287042044217034556385706943736825883248254132788710101051894371800214421110683908185673848062479358943170894225892527959998298840358155538039515911743550655825188400800625911233656437530103881274397090038835705640703545726427895596216451021576889447052242103069861813053571000057745815624115322043371907693339855326884607749367219119598508895874635355291558154696184246303841887263820958506173528094557979411425693046377423635454123101926484404935977030877688541250958316072979257394359070806299181936367650774063165466199634658649508830879100869876586816517453150260086811450871262751049810355199917724614676907181899378606661474264047050457145931892246127568520163751671404417869267586703276697321417486238586613119801662926091619843595985417088421076795540791775581204674077762252357391266993791226398607460793203180699437384544000950331244637018756107301190213752085219755371652416249575799996906884236220260788188010487034609441640146167975421988368241679870638445227635205050900979858699460872525885648701581358648996945629009553792273087233301325855415451101675163297899176267138795569397038799810489773337392899525617337335474700899759312573177030919786716516427674168340612851120261633809002758905130444133238198109113551002433035567011128971646412283259959625062631832057042604046649953980785674126450590193606540471356491864522525443915573465267028678448792532209293545013527471518279320455603215122826817617760725392297799964625046878884283005694175503245895304656712778126754517232483572538090663644102984588636906749007253359078997060327483031624411850334371544772473635336508037591461682353930850105814932982546547217651039785356551329941967866216766553234446200498989861772350213756154807564212655892666502374416855936021738970103159186629150372046529572573104411860091516480056288960622627162396763227975266229026034466478761882218272308824695284100859988937056174761401498713734549699209323250591744115883714748903308280064468811105416400025413015431852626143806362262144566131826113054131681919542736525215618528505383565549989878396505757933464552036235880051167156784089395624143276826293185556702760484012314923489227355967998887110669452053051925756300803995589087045118993325618584213454281164590945319374668772583484564223916260668293770540600403103488270805736852867914746233060763828896194852428635183994481934351859261585879824260952792457685345885797186906084976858984482737951341866026785440854688279338424746736852017509916105905411106840757002431643390050764777133536179647025598790317825056265543843518232746720338988631166882348554389119903799024736753857867972355357560920367796265906059163605608360027570917700493724773170734504746432738327639925533601145493089579087267314571619276434581216969649323739060475926098920085370206295336987462079590370326236483926000500233718609887353095514477493966439118872125869658552526342644769495341292311374942062292896876703615770757787561471952586783002274646350574556327979678392034148943451220721848493560130560926680716290101799668118859086461755073807837947061407909796769603294968960348440987759014671302138334349258678539870876379836590908567545072508577973159704612305305666572814739278232785521896785961547742699919422911855147731633450373099997269986581657791135332782986192805018165174124510592142674084217497079499552484730078543440829459211266926801793609385347154714414094814968693095884243848741514773014036722916999646296684295778356537918161089779083757194510918199202903784353135958716100225080003596875321214392427993288807969976271213163895693466171873130134460315628689618958365635423344265084498209753974372824853220422521549632475360602973933735337635389055268447632945788381431658389346368327141793125459772512964381731173711528580006962083758072573869244917861989696013643698098171512249778760894130759317294027213420312472939135846715112412500858464963852149163090842914080223351850676105821124634982430237474986701617788074039595477105678575097766579127788939557086994997547988835267119143467624822948238229671597565507341894086671849542035736921287013833720497029305896058702725240707755998642220805231630503517804346028938138183495085567733974991546320321477986520812221781089960790944797629790687951334211932548782811736039130210743374349833103011512713514029986150945379124912449645280165500035901833503559598667434385215603778250444600384807115966620804284758603487730059146126090230205549539228989183550880314302859886822172917056723933242508838520138716739870355814364993160525731419175516053048971581140492533998158698544523789181305138462242616224544709122124372559080073358559771747482860823351275956205959831697982502401981561693943448646503303096299426377202835107871300519069506224728443102082359706825254276405135869323635528196113933177938591121953256035782881244325756807762661710366719636560156824631503021259671457472542005582293348152941062320493979619698919847445876225328701958739423911096755487631443416997634244997145535259071625951201130501101610980820665349728938596761907334283486639346930659580464187835941260284877154703479939216519918936875332438969116699067130718673457594632878227192966602316715451528070701444088131584572667280965739580550274723350824582961298278060536011281269656878480618549095551748657384817500996982547519818775305247797372670511368933528466819359462274417423905419650091611994713472982717283780868226986293675991986607118719310142883202496934790139794731185772786372393292011892143699987700476932512795609065682285489398680248527581398340909883307510285407559323480300756092061938811952704508557267056846469158348381328497566745376987676161421257627625549871203572128070907266807588251354682741753658077010334982587725472971686976142648186325429083896279074159927065765368822043485316656452653129806007196717536433856404536192994405924117416165527712003340544629237888707875761059475415919063163149994110851597644652696102605435214473093299222428866017053360260826698081151454811050449128538778537321303668911802848259799427018492558240588292412400545798403347709413978463460723651690907058369239356920960135755209308420399854628158697053461496526147627056152761667416409925138410893571932593148870155659207959933456325112401787767779885146185660527832125200636309443046914299516856443828930806044772541052747035618621357254245228775539532975191378869892093311822460406214370821568788264734849870059184514913136734738704547591162940351458118333453761939162152816232539479387880370011835233595596445146653194432031231193896373493318891533773332306954934885540016523704927186306907325204307465266006203739006810640588499537992697319002866310879887137801645331285993108064005697523855145515091582178217727290251017064241107021183091921496051770575272296354373043249874960370231015368156187625051509954338655396784145615888875334828138390710604860225243116743732973403453151005117780338993259385919855580348442739968392869205359082770303119903798140991807675989416720868130840942328261357355487660200190526379837950772178311505868493319573791039401179977637431828285165031377630359390273650915423836733155800079463445828327127706498940784125878766873959175655474885008241721381352099480532866728354167776177096471482191668531304539632983849413190520970713049270708702035581827934110631133441674930612044896091483437001671094219803715220796692217667034701919976942963418834190600409247614249089352461710271856930730959388218407749368370187768350368318102821642641507027805353294601795358292139030341176957864888167216210332465413763884094804892018205343510230619149804064943096292577868158407120015479468071133102324811541852523074521731735725770037347893042704715026422915156273362854717805836767381171924801148589912614672509705014264720737248365193849067470170708669575702430462384643988923597144521796408413605319571621889093733980860233190363297700175051887154610258515433853443272474411248270223819694298276064682905299086318195628432243808166382373703681342346389711036377575950279632038353438570277725777906945708710038344627361418332991031423870713070560499053776280827995818030653525234753006333843317755386945889414324620610766053062307264477742994925102335833853263545975016999345790246245516787653721129634189248418142614297481467653300295706060460637407827936814047706268481102117326798508655212617908551563434162366501138654801150404676415914805219753830413686247648419494310615990282346574487501000395275052116435045692646046297836565410379944084528472463389694889142375802399957110645537447979857295233107108241377610606565080053573104988856660600345190070443933358804216452991780810310698285070698695935469454041306306694283384388429183115967888102669847430493913846385709699860605379693913846405990808296396410982580960210496637586830807771959739693981912241755918598734812623051807791136452346721621485650817465958967415866881650164102006869347312415194089626621214738094080746001994454684781761188120100761642242906594376346388045683760212071633754892409887030562116164316159053869036201749755801279378069440478692046440743582567476818858640357191417196294667398680943132629185111177758397747841766179028002675724529271396026125100381225872661098854564135346065469429300210790017303403176163890857685233538309011161267911445203345734465765210931315619173521587687493170399928551364614950401339005724240713570330417617797245176378471899180003390772325778746860483770480034292352784939971970115677378064876912616996711841385730788251631548272920151549992934653190288239137875910611125662835837764694051062263334489625976326142449955679729186863075453657053913601326403734929663871122359344092624415318013117498851468035826147195833648050205951134392069748134231525523375239877616380773008103940729974164180755136405052578829289428673851753751005940293555021300037022243203346403846848740592234739280810013685396599747942428235520157520482468303167865250630883099730133221888072684364003764562952316401755389180617370359236929159465566848516716250073582223550512979452105262258888186718065029722207739735752737857351392332516361478214075107101021308084345087336963604306025083798143596009341536446650016943788389529043005720529024364492655303431685237148933747502990136907747892329229557437347457164522510772779587601983606714381693787932290484410388605958118963369778184482606540356577294476146385553055703814698708477148111176707995155494924000487161742420892150067708630826871629647452488955497750376206680083761406535703519749550764361359516972659341337075943595134527496647129497985339828923288717522251641258683565147249923652706212596978804771754629664362519571705181566846194761870591009251042902629704456281782446325706665022085363524664925506900763986796850848765639702901059214791294209715550307722614083843778260247002761434400889356313230003782735007822855806603799916181559786735102240116452416010078150700469984610792672438739695473116366896678869345743541200508018475494616658639890031155680366371941187286479101067113931645299380648712348341134486364042521754884810976109475616655792054056712413211996772879389357499226297027881642915970973304823392010088253277714179214982170768708838871114412486852504093358668995152873598980048810488226862748107987770756220478725484196594414094133840091968637908772553162345541467646315735066250562853666306292639434310448635494202635260452680345789195054249452315126025307848600000056194856002549548015590114397319099150462738236997237791156744261057417543301714601091449174219319710934350738049898126468420727135710774815021996845112386446012634495917928235507079201241414454364206907781911876774017906137133638564286847753766330981422514778769546656737134214385379916673774550484776332291548957104102082855748983581624514003458460180700142298613090392308919356629079821319682301828170596551581075562762765641726455178566762362514648143362372822734766679114158624098346802982299003649389928568215320693576165659742083974869802214353872305459149087629289515303240911866453897215295504680227667241762805571616598931773933092400275330694330866267470833239242495570922703449700529826500123658469650729703209548860077187488158053289275718568275667050241926908153260329451011367989807847183014519661094485507103890869627025145124320393587023612368340657174140440135839351048134088590776437116303595726020048687165739827514714778224415878678467596815264686075606068439555449835464705182756570187221445551841116137669320901256220178671670951027493979466923285702896983780868864544849920674401381904607375324730534357427209221811529191923839637802965881038263132181501318400955339874090679290440014459229786717209719278600972699984670991560441753782108428731371200566118931954974392665358073084258836243343813019786619642779293585550434561347452610869726766893518631781721601891412536654091437820709622838215170708188084657609888749488532561250080476636671686752253800441928181831977614997801678650611522480236659078340248978807055958185276738392089197534593634606375163941635063092698536829468369961859424792306874524218512629461484479435285727528171250330855811355319469892092137120128812870742135683386786342876355566240395662486060082448414884323444081388816942890585573374748803602909211129773240056941479981101710508363545599671263788136131279474979077494276403324677465956238579078165057459880846625132706914140132771988652345788571109589424481963168393685639094126650415890811955006764659574808553348990521446384953008093412137727262153010492320703670192425774499554151034518113321422153816919955183530562354713878950229745833833935418261165928345307843228447636529326362114406347921286220051538206325269697341544063073771826570697835871858779341211995998327688778788136103645011605774786072204071125924409460638920965349844777981260840187294846125802183679587355808193001196225025281363667542186663125574877863876090788573671382214617461023786701797475018824175374652655064031347476642892670184322128617319188516883583360269652178087044843288313296925545729035661265902447275628413996573448374182340509476568500986133061155916692028091692249223749427345672299350584695809999877597266293190980817654065962530087354770219068039237285364910278818988723647554658645745775303736527422214619195177576307141714893387720412697351046003909148948191923405345188345118467906757292640107073752358943609575131527087983926142701567002926022683848452099979080075813672515255792101217308215168979217325764325519605836446969451884170896857968295011892331467504815264267421006241595172377109868541951019730201057972990840585100634157438901972311814067832382896528790879885782964380434915139229079643780817282652067885326417590188361873067115830547577282599274543763681545824352531264748893636430141947099089050830282248491957202586607721882370173933566538060934398841194374060924146872784249016826919027887204187687447947097518858214383438114777792440707902723219053024411942235600467266870261067137888328890222084309837782517637475403830054592737135044567011910177836747695124496114642048486489541330263205920849430362079219518921201517999786724071997163090343240547608690108567989844230880124887370425639562773266528050894320116626880694414822811563301277681620757507100390891917715809799671750921605372307504912002532810729384229409605023053022293044142269502650395274314800968022456327349573773324294268852136247937405142428558058816039673870266174588487034195896852437826305125549592935284395469179764340708711378050910265139461019015084150760894238478991391407878115014323329389952950880440441738627018093226908695029268238401286548897672617019221680268045432490094515104349851502695192912723634232774230375831556368172997161318279428300596918823963264961786892016716989647134309268494933539641853076631375632278880910688333919296371205477844730435346811195350766600890448998354534382809534382214242275307542873183588388930046625970252121624006145977307439083276732011142526408073752168154923670503080083224715963055391176403695856197691034523014335998994734223819375462518401116444039171203864870820806708963642699591865055332674840491554651296890667793879059895168522094759515730130916388447484521212310692618163221397214163807179662132601485706050121661391979548644234762346305071683584417781384833740831986512875967650083034038077776380163896995361875204350673911139901067934301625163747693550494852878746930163393448563352541985415032624151039613213283861956750470645335481101693154434041868655964737869276424439705157339835461380883466061264791285840298148274826658121260919644832037775261671123799076158563677205410739265508736225373293008480929250263510863413177876073384107178997505909369588296067307294309389565574456107528536032987914105679266038786465110242614189432992704767025037712938495734640157706938890707697355772756850840117172906213068254435940395680477191668764337476113439114380600820776557759403862028983471972955510836672967175705371065099813541399945697003498683770019507360483752429652779969906862978958141090999988790892287517516860663903874119322063539249863979047572402327618791033353955353824077243636024427097306853418528550064310345480068546176381337591160276453332141269673844389956348053347123367031479271018562673514516172206439331980750086070449670810338285509061803715473089022073863104056277789754535652776102612677747189370026541005016925355794820196209303241295472091199426389045495941467004219562756723969478866783622952342842811174523665475672296513664633046245288819841527451241308378919267968412635900636600430955330423905254704998143801518777187073290461695488967417028854872475930699685399347051039945746380891708895241548280261317940875301508978203363363268947094181793188264305496431765670231217099240189919025051295416849910744613645376782825372133381135648687950932893088641186119239364399547386507637645452062398510796520749453650591500292591712393602079695869452242932892680143493033916988924844485181264109362026611958532168895973587286679067733629698475747265322207764119685138106224475699532906487336660508619838121517239373202446636913382682117833714280880573531080677606594003270721214245299053442647342148956073744063007717105679104303125313108813696073416279837194297054745377723354148193331093416577725594463587486699680544511092812622862186481337933359246354803617684455109893469108163435419451823715175857529849417305616993406920770754723287184467331767027306241775456000588154752923873475270194290305312069453922854831976003658096245367209391160068345722695196812749013101257621476677132074540732841969625955569575053019842146371744319818245261671919846983123185991082661840103169724187140800606901004276961892974174301970388651370983568756998243188449375530927070959565950214765890326944432576127100703903562631746509056086650476125299520695835312377880594078271055691497432893189402563761445223922760718020276751645514647088741426772353035214871180700522315182895789997703783947035205114775150104850755493281280348216212863977824816754969002355069643346971542872550231156187779570587673769249751499543523766564080262663430582157588002540918465529676022352234080559672176009693101467389480183881838488844639362719461059995123978917154050146078107785472598782311397041537741249708382067354289825633083306772162409872557462900167238575840366153113701934531928368775077477686921549374337060526269355364553571860175107275382673223902235258508322375602263576273457969231490054069932125831622666868353982358605245867157131955387758178167752305699566192665117899213059826108734443996619830438407973421883332064997370912911874107298174425086233250020330314459563347567533954679432916957200815556318526977986894132026898918304981716245767494154241371906750069012283837334377400383656113835633430070757555362833612374028243855853348142980246675853975135609922047392078119669991429291471988892308262885728758518009647006120753361565558738977206633648464806593299459582463464071784310694782323527282304137652785809578861784342592939915546417427569022072936171935654059153619608667357585568116118235803740044457141523069943880512433316267157719194538159157310619993021628641110514483911253372898687475386649266023466516386086056442908409249365837232319461191465471658669515043839041715300376595550674941705307271966198148011673114613772578930649402079008715877361529078726195006274429629651450514097348587011496566532423212144318810740756642965233850893669764959014394449059939621429433954046569940393387214784395931526755010568851430672773468323813573152816175343033607601767925256870942191130370806804017809479284477065065120537178204724181970181268054507306865350609374464204375201760287798417763688183037476109456083195394640121319412774888193175198269285267231864820520971825060400906531821520544832209637347332820258600227263434796626696565007132703523471111179268512815218846724894116143282462863691159742446306867512173993411525237010374932732319571290853885345304079552480794253376602395615709120544755606807118368341412007462964640160625060398640224727111500560203825854873985495563525075836483842674308606459852485957661388621853434126729544576312283166392895594610437049506561213634758510630582808918997243425835449215912135885073020496645093921910662040318968997568616006984550852716272943939261571890124889204706976819485506443711027752974104816931458648283963525070283553879344466909098146700640862799015897371073419071332648518946985812895386454948062226495775848819781259157298068038823046325174336756187145884809875511339645196945575840646028719986910394775164217983152699174496692292839093167668627154337510456845257088168493571706359453053088943866634501653367345752033579229902987821971790958164144310335997018145467600594810915962708844835532507079277766340420069877615828859662446637305825167971351546276231964526581914074252115902965095864304119784507388115229001758794216414022248259382624392909047479796873930856871286524031600503288205206694091906191649650118840822867480743423836967852400351793054065091879581855857004308402205202556654794817156363580379385719918728919852670529862141934807969984190893653978235729760904830830652259372082283501145588582010608588613723785415182878114005445655368213863838497191189194779929305004458638469008921435150698047037091771267952267031574767222236511186976956880578965206395890361204994040306294162832349858897458391459006322498431358496491981623195841177688519148063326848121585041490454067125674195251216327362558239131385591194010916489912232996653646641775830355487773695038494635507589346681844863897219583537256840621778278183428736521047756971792792613163920262530232044115986981483225863320757205720524269027795659871872044372191358759511711393345785561907992264671006057051000012448326627268268799658308720962418435261846800358927440735504892628877605331329559133477787153258504100463951860723790408583357494256497794699472408482205185739067562443950676234934379416928880243877922593093324178482474854493744190300377959498877838804695189401246373548234236257278630059992359098983294203934348522490969761205937149259766717598110269093283493913136594731088553882709526947349307904929468303585461074718779601324905285358820361730439156404460331047647625555504574867082224057454412931334635234253837635380751125538134937234869230295033988860924483368267169174056013291321668059713307966196945955565228587830800763191122094286241946238508349579054718784004365652385396331246581107308138216896300174263833705585194800907779147016869035315269806397601807710727709181491560094209183258906821081832409953975948878257487829157136353635915993528769302406367113907221646125291035398023575090943916884211234874849254764001687812642052821247983040260720529307266716095140711289722072591305240648980659483607713327616115429369496016292668274436495324522708362612677486438015224355082018502804924712688118683605913455575729997973013174347990247271886252403975019470839614028978861086740864587806197442355025150049867535308330782542005739283665415174926238379446060915497769700645910535075053535273188144551710113464263098072486196777844443749977582159430017701966785590861863553545114275783432471487332259515717188441166158591853110893649440141684612128038778392977725470536460361684296556673663770062290252302395852105552580555842098696847126087359725355300083942823847412720883379263421856590371398774426006164164106692722437929878503012809973305808792879640136956034792023293649193189271089480470907625255571004724648716883824811615190556451667958226686940889398922738259602245307052110552979235407113357127730885579482040181065875363649809955344367820682057612778038884980142567160637484477514579816253609815829144183654061908149195394562299889117209539936688647049076073528503383640603397962705415336675796077561390738842543189208526929085762442536041784133913065325321409339971910682832523985572654285534934333309082739619050596508895508836699288259183461814942757135266292380818664413160811183123691661256604253660585172226756319690196609009667692606788380222592255717627266009223281948289503920825371246658402604920376239188142494692964526807954397070261953986302150567126364902731804956972727925444389753407939746816854306947208505900798993046900227121376763183256759538137802445193728371166681769532911487648643361598282422305501719201274932745126452950968934939697619653978065140729183219931155231912846096099720499728404532544432693971272861436729146094037228067189841983071640891625296169658387193042406157864044623779764006807630100104495760729715286519714358697400928711937181677541013928882365824694488763706795369536709743143786561710505805360234871503924123574915506037630835474183496528996592806187368340555821124663940680817750162513130201903897454577328313365951255597829970573630903796631692295944245776815415168025268054081003845467643841857887376473111167022489290435709986054889337156909426403654802540775524660185136853437824647597974884842229415912117734360548560112225680700376982271255206645604585757007590150689313316830784016705853391738494520501042787161542468677288641094043471563591560841722280309570053711313080271177189973274182857784734596983333543841977706215438748392374447614039638969440611626193140223486715556092329410098838738733746108286497847365040023220442219606793706949801641816586278506306592831662516491615073519135164108496770551419969852178391486290107323912713343801481903502427320411111421034401525765852595750699268778657570636681201349774903874633640581896959234057291923045415571809249322850269590946144129743815077719278151420458515666924733610968168548009684578533201851810404525815331514751558985810943734257505908481793832530120057094638039179508539125794411614904927938013879541052076737833084558369799889819892819855959598241545791960106879622189432471730403773023258669407063758651661168475131825698271705153205865510152293262070382134204802788391380238383655106506655118781850290648983020728782131528244241186690863387361930111548066963080780319888013891136067084627997140889366038349458453015109254717758591993958845118449803958749050307691856587180094890281876095646042177737046221579885259686442219783897620092361857909185931719556324688690082308163324568776132655175105525537686376008770121574280835240757031516010566264943141184515006464863978813330596896257078523074504106142268520519696191693247235405228559075861038970795678831852217666805848616887068635940213306353515316837254478847356330016060344669194062583816634062692541637458672631036001212691172748611868922023874415424780302532406347407560525050181967735094811666288021459573078665231857791641894569748143117902416960916089906018721291057309920436229534223924360295041389523383091026323854971967287491399095626356639369541911441476496442850287009561645189157702063169834688998265801792017545228540087722031537363694382333386608593931212640450496935936253270249170318951855797279446612840007232111951915205265025982191072569379805173886272480273431433915035574446982705235864236236092411353097843224640205941305371681651526549591078936663229533068772824370272613248925340088439740700520366737607005334323949249414654420245262705629438651923035070606308003778838892265543336536188475807984918989936396343325280224006774798812467961389280379163502742906648695400596373332605647116510640262022936430659865914711315018660145711632527825280413227322277880067198855144266650686787773480999476201982543699661892132982763102711877689183258059279051071677988620113497046235569318880019608297662697544952990354463201019258352640393412997792327154668975379448874773527433797160316227021210407923419202177725805110332966550163581608629014204685031660154817270347956335590945477676258356294190078645084736844042563935344590415026074621902018724921714225788838711313388474433048085564586631987563101595469034355721936372792188198017479945346878141792533157839145391165689384266573542401446204839500068574883059470391910865243498440592048681849692426958708308520843424509665397014989221348054102760749071195128009009075262290009765955665246122952533754527240144055340074691417848096985749402899637557108777985541619598690493836239595398477125330893586889902926916479630531154656393485566746633775595634291741360819820622865759965718683148414302079874995170701086217398162815905292096780877055969139014162056842331001675843295233011173641412429171286313338498949685434081656315456990821882765319737682865875440931140823323440051559809267241677301225741596270696125715523696285758515319582423542812668759484298889189057598582279558949076387514690772514121174161374863383415786814482071417164491493411328142024367236141153924243140714843974862208206205898742237013455246125284338848754933919879111943946726245116123578729479710028197755847550867851156925661373812722860579110942411288960596914418006518808272390346503901443268933966611925632452949571034598644836526794082176990393299323754075457262903837633142286166742951646854578746530325945401802714831544371040413283902546066998826276934212339430063095704805925761300862291086014217092076649255583244411239662510948783267885311140146962643705985517852490102948411102652285589783249170773051561972117433766421904984301570557632556227573260170098835585072989520088625630788744705124288348438340279186662514201883769306256758307727909029533377351385626563329621068631972162562610955385908769289801097547483137388707977437339885649224872330727981477040736559580384182196918414653713675097393696687591203031711365178861275079090008337585632069972094498708418050919206936881825300906075803025992163953789627618444998036477372155569183267611426960656287491155982882313992650985294500679319947635106713106009467705259552625472647555358994316490398679533553387500647172127895169448053610759894855970017393891831654712852956981327802634048617260989874042190906859336031077020262549365105269071278040242809028336603855766138525569509897334103506812583934076101641789488549010495267693926306777694847457693823518896079858648178020268229148163500154236102661309735856834514617164519851546353092899048010987868593706587267038065863491067627589672988325026687311071980244157958040700631780397119887901359522415568514503967147537167591112276245415705584365504676180167112212073269804513176881531803172594008019361457261760682661638393138461298879943754992392144669153012817759265663927625111530587081175313828469092223402739731031476844696502472527696846232801643031946044910837935853409614610535048075564713503469371043639691405618425682555211393542040350122412148676511823474806432751770611538865923289699762481052116258924899622169225320492438441469478622206181531123455825775947055582358966885886848796911918386483777469027398284459153511943519488692712444711313359877560116154683803500920363099500202222688483565037526401706116247199025446712321330452079029797123432059489788558063418181050646246831033096349954287491215685977787969849169414032008036939928717599125088066623967362531073932907427774652231550845114971023035849126772691792558796780754437249394087540868360112988488443863789339197251323450217009152757308320955980425668582106127506259892255784926382859694804137353240675524860182869837075903213314089712345515276484113980932590957506610588116949066200773805785832134219564505524281628723148649810789199569218212049155645006350153019412341887194123616110206806466074513730968280386047716652215584931485986542349893128154526845357365155141580067291740198989756210813310486053996148541377424692784937985310404236152485191625951068153475042100194995630743128671143255227650901133584402608052816766538005404899550687837980560092607051694435846751295564445553725585571971041017495562605557866557826912357689087289923647013887836209962816770836384683234301015172633167063018790421504910017783178473675795882591975717883114731840118403760182551113134396565965479747628860390672253587372543769629411977750713431417291559468766794507884274843055902241722884125598974472669366838061467953036035579969803716923457018313914028171975090400540638073804725133947595327669915941420414291773068625983940683979200591505882185361062092420384500275190012621234202062848018517291246031606582704308695716037768577052476378644096259106470073104338748848628109035469157148118660324762463270541532086389991204407526204963489028294472038738976765325341211408213933148756660065031016257348078097988668771509089532108703602140546868705831667210647657993920131301500445561431731552150036989024408128694876484272502096931690242896185788524514030501488898298484771393615335898986868685253775430928467509277577901212196691577446122486026398965105141271625787221968600789009451771662234002526190632248743915547868742570386121023893578828368239570700179051414936538889511068471867257485839753348140578076673588745755293316853460161280843230649935778685086658430973991448537510902698969318904426221985095947633936482136431743490955705725531949646684042837298263318138576887067073909459186670880844194498241680112887909939112741113613955436471361800705554643179861353013601151157057370408485632137253515402180545119802384197664984987611632558441574044013382493786127740110174833958094490465400170105650298966170669997974689652873188277251531543954824356002098019742448553804081825963515934930406450609000840817344819000118809469224874475503928694356825925781579994638186233682423366485916786186674226837786024846697037164478766382210314141160433086717850687387040578091368379266427169447097620438819814599134447797024746472195088645966256412628998607784870496426656429137009002740545272232731999141500833307600952261069897014103910156408051068033383895218631047871473668003205272647209604784984568936494120889210582088560060823677599796192611120429338442845057982346232358941804516166830488524323465600382169455411306861399331492774192277269017816373847164650568253976467553273061992575129307184501784403076673453323771121433134170864931431300774693929781908470798847956818757815756019077359087519864500045173410993624567755578378829601185085601790127924953003204845929901619372625949951073415726836694764810026105772578831197872152814740877642758253783073284659486120004370432311175365754399991676794207937782963311638015628087981475780987014369173329523047109523086991764072170977810261964943797781796915627560563259940659742341909567400128391417165335683537327373494826568715413799533661173783829276108403549517901698578287601958254786310800079988993142946541702240882982830458243860350524122102134276532458897855082557170894839569597949085785922310695278317235062649840719332576722045495317631143098045254870395448797586236736511215687057239821269338891590513566742686560242480888887189582285406091911335396366731889140061499756651573332061190309978821389910397836551189336674760872903565129284568066660633795364307387212695062200458973075786120308931931003304346830452406032235996377894075734740951217345019096546710681711160548132337038794730309887191966597967537242864042262055927011798857644545863694088790879463705522187879268796778181131520639969790645017540846145636480997367124695692154950836899503133579083351388378522868178436213753385007511604085075849343834257237084730048789565527630217642162902050788670658663166459232412699070818144476984312775003945183869591664644056631834851499183903672330757682102394392759893787405200374753726997078524842653954471183799533192348737329843187408381517396335337563485950945220551529102809298568141911460653609779895853554366598767772857849865475804638308284051660614725428899157353785180082695614227163360317572182749202289595646280873816062506650652075837512593796543323113728676347048360894246814525106413863781835015816989684985203411587812886970253526379463017763609117634261811616478108971928086125326210500521553318815334150834440941589270261095545114186268325846157463056147257783899637327480697416548898789052160422481949358608325707292717349059087454664979628413347061530209698911606387296014467662148972909827350222411268517167751285296838596119716552656339342185832180882886752005156277123596854506756430905142181523391116514075675675306383918025169799623020292126603071596880377984138540545187993303088276529028589735011152573233025722000838917003912859711328437921830418067670107238361820405399263786503451812155970998753998713614825624947053630468000492280051184443087261612204412775165927174613935851950663120769916630759794374588575477877949352348737641330820503428625991722245243499671883041333466210033274630973202925899268888644894302040229557094045087854066907966520671027164994954064651233579319173501414423446500428985716721250555162304126454594241671195032380863802385875103876093294717904778209094521497341250179933009114573912971799512568916810736356469016977772449619420570374252297303536144024388590756663279255043428478972568840093133339366048117333706508600642522689788562595110205802993841178642284550801844060687100882971650054635320137398042902821524134399287352114034245462036387575302076720415411591600849541967583798746845259573052920355531234360366840971148919650441862430361671328079631407940903978090994710043364160191771846632484721453625555666881561956025567021166684341773978941489560789244752186667755577715313122017854226629336359705251449199154132743365517826455952472578370356751671646470968344140353274139556132175850537735644096389831302152758599730665653150815077523409798016616805668150240401663126057952999275562309703241967953089297716168200879899375775000894944802707409290758341507874282321103076686471596192727772432621850287934825245596595675106714754417663544069125844779924502064832807651739619075231509652778001253634210451975226582762019347504498777172788665589796554614050138522468949747636422959969393390641951234979105185552120250500450971546658392037559301269845383085142730276265315822640953405301628890474959180849024579833208671092732003741516254648720957432063219029066503258731379667644819108700450866234905554577954266057468283699306655567622310470848865670624245154592215971758935436701290837839533760883714635612711104009534560034040577499594710610771360990310450906829397794412778174961794541103666910797318395549714864972441939734531050870974840184610686204862299172413767326549230376424527446511562164089261933027097335757133969753270744411155811834839803484451165304129891104480027246463764078715471816698371947179294935309138775216497220683013474364673943544102756286903037804454575918229290553599347638423506703885349775068130241925117270679518433002814038797081955459944435195841031072433391081882868089647736394157710411233949606071595588581861631501278000306688930754262140046570770190932810273693115802632239319725326545738523540273510137669951318291869589365798138584847132078134537194203752614168455592065593537862888901735933491747571936286720650708160460044582671080354186853421035795914647462375568858546212269143634102161561249271725903869056058173318184120028835603850645106555269213634153993886990079666419369500846264798288697517651284565909421244681397918131810915065830101587609740158692317222937404521705575374234520624144772052823750206491045908502842759379837905184361819822041525058608703385981150498762197008052391205458257367201564659925872849150583719074544496346280063407516511067266467690334129926958480629889362930315390042352896470149076373646295631340622398727564907717068961369531882509974644347651550847338501731134071324395512155171609412140126309653389115152305387669092134558179340787108763518484955754009081642684974010019785112153737876513141025731855534542150817234669861031107601305389282571953896331117905148015244179115669094285914473871490345173998955281711412327083034194685010030981580508681882566693154210896434437279807884328647417237536892640699929754041467574034836366660754087061280005973190102880195814770828076007169685581811314136673124274620542006855807062091603828863728699135952258335989674444966948193837428430292154648626665326491027621040484224329118143487954636439238974296676858300994049679139232533207749996094057658361605366518073283052714924829761140966314612920396661218240658874671949630574650813199828827812610074877767885503372855793256785622972163441759049166022140217857360043611866056373103732846752433376527213397331907019860950490686839194006618551669781732500484687985405353456660308785090680991997245495197829626558276511949606302896585813160967924471964080584405220184252183655582305234551857073486884518966763412399023848318533430643497763304111702134883963049569137300679630706248509594081324149854703018697104994987300094823395393007706804621906687840038507912187592762583238401177126013239570317010823466706071340674698381461094209591546051929182627842648576304305330662118619061809986817840768441221956353180018005045955341820496330884706337147267027026689479472707017453102740684936165469292209885577250875101695809627082856639239977184269860299313796969945408062573734072652598210250929170279059920242094620149900209595743042091807977049302481454928946254282081435449576314714867481861507249147087990527661330100657961298296664737724269792905693101545013903803935734137870914097245391198779454536270092070453852191954607955180385671111869883536369920893794395745851876647807858812841293732741298458508167947062015771240747706217499439936869253570273161573723591191446733484426128286202584946625614768748067940855278043323626281491739801829290069943402739736890016213866132191318293465949001404693838263257647269248735957096014845045409579712872343792603376487723234094729507723695572662554207518499670162275396411820103378757707005646233425233226076122249996805193359859781298019739906999245440617222599923506495170304397236145234624636627031449025370948713494588357195015928758598743959026028407125078951372629957664009849004592567078544005650218778029497080827691923154819530888060720842701070539381687407079426540173309660115442069838752227341327576912401173457957684417776612604738166946410148467965392125064500026533281754386825570940902903467327842913975330967428752017344004139309786945289125804652095412038661709962400876638915309632785937441405597792553211090733169348987079531915500761163477271455900078350123409087718588914926264735735929230910062687977536953005289056817921375463873384191899110291571231164710407023720843954443224513021488082751570714276150550709640510340877167650436027957847213033899411517558388468561568997422526589625824007448395995139543085930151677697132308372707238193819508797996413875040499402177582968807770523309246212436450918079258960114676040945554069843071541886487988037513764144396362484814170952440068317974003980538101827335233087532252391510386040506165243438858256135910446390940588331176518392401801364263354461680804867847348127154335656232731797447370811548106068930665430837585649137148198148927149508242409660545505978919536133939395651655708226984423719737189696264461330901907517330618529270995788463232626014855819860857026491974847473844341018772154436304610371044468495480284310597215692256801719524156540380498991735835581032594313673207506031733444392050812123969373410377105257708344041578278201430833381558787522991221365230516381919031365306543251525715647337279926146425843515324984287441399211952928749350410216223385643519718186617236964235032650712209324705507738492615050403931742647449077332474237501043595418107384405649379050593052418878237615893924683868299111612639502037859676433350380293005907187349236479511189234074325159576068537641766817358071169867268179728538854206305015702171719907044126181967482475112649526181109638969446823150827869827227229297770591023047604922427460947613953866030284757572712373132982645587715648878916939100193543003032424915816728959739470347790964328291717999948451816495547933722005694904514126354392649825074614413935579992105699946243937540407683302995354393453296012481245350078237593333145627595276998440220685935764466457258917678666716052440038128090016142213062392050867490729739336450478327686103821332236728809965407269499707090822648298176621936194214394297889630449059866068093170229714589326942891367577419324929739838438389674073860420838872236817833442718200683898524149737700957567109283370064117630197069823935163419605839616861217065936320367244477161967634957586533842008140882458600434517752465579759896815545122739676676044128731982675225363751740520177019286135970185598428832750716795836452482673853621437041094668543901951794979696272937115058296080371243466870026574000307215498851525183778800292592925815930876916282619444645818188462178009597420921241431849836016213350859594580380762935242336405737214811484464626710526818100158052105925321761002003493084126635181633839641739105027929496771526020163647614408414505225304908178873250357831943444627802829094190884845388585405941595889312505385181575113219466230880702272912164730051990144029213874635232539660679151555141541869583339675463961604856339776790810634076559206100937453842755892256833514894022272933498565107588862867794779912790856695993035721091222850345461413701066937520113661334050838940801998012674711446895248919565951544132080342804191836530903330957419908686619495210501820845532916601529848280916755520061709606444049189188390042236472225920327452625679889660439571214493548816943331404831597490929189217987263852228686930856824196571836532527601417206798815229177696337329587884860559751614108153702012197266803900199800458105778155078292224922102507199247780844487582790197899433920755714190783425283514688601719430480371044201425472686690971221374118148585270224023358838810852752909973227294861752350716961829672394752660266110839730059486726011769968005578519737996797208438810110810670240126141787484310303265915529222437092443672250887905142101136183836530122021559063444051261327258190454426274548378861529784803909414234715399171367685888203988785004691319897625271221930729636438066563072042694268298308757555708894562255394349503782556267370294281708184967021510087053946787057380850253079473328810895004976193043192718538736119777236235751140708649785798725728224868403201680825717715068437156069129498567768739477053409263671074901659946270555441828338397939827081043920200116717315429812703390807890402761913311288699741928001873144147827910315224605859492597742276861876025456524225266978210796089328785014240476570412483407776232332940099301107425543229083127627246007483735905366579684187774784796907019845032356352607969498558924110036453721228675707703592122600490428712121151032656295685589583733787753092647231970608692404883278278581487743195555213804209986270873140556100250504381323456466672517005141060521466826543040569274042351959626952912160354306041622960549531780325995472447185660382432176405046736773952564507301237242078906642562243264985625718683185110895239999666175315951329672974168055976234786373537744466884657272026523542677128758409944911661042212217861205348844783515079590020125256383400857040688237290225623138082184974295669875047207288681007147600330138638475943178263983921470324015801243344410462514627830923375417911881216490142095414886162145805566367809305405678069802769160120295799630447654165722466561249213501143207657299525268235073057185477210741712808808918264152147319218782673634059244827697708164273569518199997806961939463472984711256647207302489261734895276926736084252156225956374841845149006698136602707175265315378003009834574625375918745341595953060738480528773438287415380705791668670981740045509052560127069527612253280706463396973829111695759625943269989580681520613729947807398557924344325749707170751384972894038030146375586576497301495196538791391265753580105143507562668968415165254634716709201831463480705358903114014368820924006057521138691365499770438087295499984802027767892789024127453476225140731669339099548990835987541473028535416463792746206229861371309136011008114526178315069067517915598041179411185123688159134731387603021620779682528617355482130657721011231897817229503443639851923994678394842756395968800392335024261909644072972082875959450866756064758565043825201739581969054519650307594171010133495821859059208168964019891869325392180207655314261922753391358183635795140109551376528375730027100556126103502597570586090543031272080838653518251750843489012911930645997938909963815705442862965771629000641603768641315726774490072645256417658463262719770811070353978452713762821587832121825176567478719268608145273473192121577432913529273391875090181288307272908917497211218428339613979284084786557441459221614634236028337778159272992398586809968768948982952169176788881185600181054324496672305217242154233320967391781334672372620780861669133170141453550208216461592320846094917137164639179549921465397411781069530027757689549885354034281258673570695326957957626913442260420627243128371274009682122030738296062665631214306539720813203452445056093345477743991946430009414950281025958709239944023442049394338572838476553482032802812199209583072561322087293250853194143654856856675974385470914856839878798093134769036412524748096221030838526377967996641860088978897790397248539474780270622566036472088961848572601532643254823687382950948884572841757131144662060063234183482857477217186915187630423817977424838317744407942690107974204906304459869817350813477271185562260776129090567125850881867401595488863375433255942711365181417819087841617762625669205870921444003674490527807784656281545596206366880037105624759248832484527942180924214079702977205829936792194505532937458952080389825098722885935765628724143853929932282751449256258584887256677949653466028270514392262573082591590221846678904372789997683042228562453655676551333599583102851517819132529396593282341988395850549491219772045041912917184218342102864307007687134483241097127860294881290909660259472853178383596246179625998595570177507553225835042470321890197988459833698695920827583797749394204243932173283234880261257736853065303697261229696680761043053891516552425918687805101143534967104541009478430130537680379643133769525433582615729767207972413971871760881855511609650547159491857563235478774316100101707194912485074744300835669170121270746740184173577931384100820626188399480772271356774449993164838341223078782689961924155305998760358498595199877503269702330280705700260836394398828556331519436259408126151691447835558336572233076604558977913558995777146343261250910996179682086857057348764901992915011134938012730481139430005873663838381872782780616468290109451637615248387936669395196913330801636395107845236451677792430832534759991728723278877587171699726850653843880474094025481588026052079475273775044779557716184634535750093476711370419343077175750470382212611199862243203885896508510885564657953923254364449121251310737748616664066431240883255118535169356994443722315642009482947265477500107055490064071310770403783594382962879012136801326663757490762280154894772153918318676865601630976261853146496301858632137414629184652842768073286402214409605494752693471849988235979414786323528955429089855508081562188565665202953839591105178077066476545869481136571127956547109571811941634371195324364722985745730620653675715742888076125640761430929814923850205896734561183837180171425003952526179211469629934939091784270559045219817895911047773682116824437648965291364171068033425470422272689292479181175929079630553381208495433069745929356367182643392347006102953690179050569247412598414958921085660600904930027207920545127262268189116330188402496940311789677924653228791389103479222374752109652830798645811112430952502349858644825995516262945028967350159097292684419156098246570924628570225231353794468766851233406919971912478682439850280712727385541072996013615049479889057872849223117085620918175491738791521941384685162492469257172475791347297595296182495970666994404460064178606300133337895768064738367629861876912535646779310394530042773606254824791105744376108990521217511191574865680529569189325141707317412498163709462846332234338380819952626796157280978329559474199859584645334683548351002221768719283361910581520767510501097591815149216998307414396452241258137732171993873951727668217636834152210949422205048827141939450704155747183672340468356654633219816402723037643197443027057820274128652892753015045631378511472460821580052118862389662389234784332079400262522912300055641410497348579892177666969704101353718498355076656943940227463796826636275915261073610265053887337450240239592285197542018488149230214807614695677926783059043797161774421568795591570184637199819247169306244778982115680968952501361290085896049618164979593134202870771490854213159654877382378853321855880213346366061611342508272303841327551079666664385264692470770271031391613462509387137384527261493600545647395230192117503012198876053085056146396441098357803552836766758290972012487860857376698795631784781413892592268926942268987746688147893343898056013809240162497469325147353866659900732677655489781033134696795947422332859612269555533971609417659242826531656213392737422997122384190278950500634169710351417540540732455872718594730148396982339695554189494491893648505254256683912304494041932339508105059871240732644668100028064330473752998461634761715752343336850330347725724219705893726654458822784275534007907584830018160079556312649304739262593094861396647341814966568625037084194343077384629098962996387182282277364693064296557401614702981765304089527637750694124198023914239217438190111539107822076633392854896713457544904488616844229435576647321940243985775714634646003166877121109474473280770079259130180541931734004632748817555960457987917342641019883202915707984492909240865213854473303179880944340531085252181032769936683022381747781202659702664960168894253647888610446231963916524853130523687888842171464054605073064841714665348676180688155904461313833467857322776993405702611292587451238984213039414123845757060597394121363950150248124026932769663879164479503473322841390800654272782185091358125068969572059188240843667591279459762096741173855465830831808648138859794485076756713490342125674916079181322997836268330274144158351343188176379221589795511021440670620712821494367800474536837945776404513238020729020122342151323175994213503332281069132274808407489611371033783496266863701611627283586677725319772657584541929036242023746943417579971812199797612744298325139609279113263533301855129752605268600033508752288263723420060757999610046451906584125207523734016436504221843018269040464467462997530045213804567083624640510963789723996377465575459833255778399476493589723005161043668594088465477495296531956303478368434551112237839348631824700758596094988882963781752263455287518308061143839085006545096339645683927965774062305196065031883110022450100383664649604681747343954460905448485741373172282951010399712835554582206122379474429530282497712617963878864072344198790491536633643242855419145271858868866106341137367328838469815759527520549294382231624746129503997104465457014346779946866354037404889716705963949893399680971610959943468463406861981336979324830737621868408407727788673505051327697588865916252959225051648996787037918901578644838935495525814332877070401194874148914625669895055035514656970599615831076898680914277083216676743805406520013747222954012520994993628933261413612303733641194153196157625320046215852966144888573612420403923624781848240028556972131967272097408746313607328090259712441685587456290893095408817317404579577479619771090084923941684284647923375926599443149139209525083646469999867181861369792144499124428548872381463510220917526980172321662642310919458212793266177227924545538788937921581014912491637210358704972550068776136139423557059987500616252798636189625495572245145304673296554138849661997335729070925181039327343340237104954316539307979710696596775958355246415756178370076820613862400048234548898308450503069504581918759349396481386928724833991515710830907612277313634240687703542383259266755719571978540227511183203112773490050640770384993881814883251865020559287381038396397448573438782497207387345831395879583444530351565160401445013204613557624325058982628434240299776389530354526714200622561722135613385169379835421857383430415711426738793156497545331003883528030584390333431788121621433762445795366607194049907412589439075320897249696758970296868456490048836475842699237629350717449741113415041954033872927142321177421373348896957527050783678350155195105087886773427609228321011882976375236170823327548221212344106885715513944717675683443449173277121162509904071914784387516392432920148129621630578973823846515364017095011404077752143219472199942201799929457079326710498958504353396938768994471689870873704989793353811443149672938697818856932598303129845540563142973382987477886097833915845559051849222686167021865733391659112239439508043398461059453569777490497134950714843476646418258005534295652148947368637574585278418037775649051751371255865031650785409708344237742138178879935757073352153936258139135667071861144310686634172613271751881573148399461727168349563485388090147937522531276764266112899553570204085834338746776182391160250704660765260010153138085131899315278095068814342342902477720465266862575750064602783089559763856524355125819585833945269272807443242890582089380289545541680111083136011537195178804617630536776813318037583348815945018877321146854460392197600893455880916056262724909611123009129010558920110862757532551590943130739265784002396152707302063345815311189945721548631779823382051662020487227368309145442498581275378888070548725936978017765021939370724361303524616874025703453254606742218518623511831366208938466744774569822987716849799575016247837759200113447519434088766808324422369226966117517638674890557657242522669813415175208010174824910732836494564538763245713667434930664690607984001705484116234676515878160255925234418072221558790027342917468713818788209271811509077952576437052440970565313671020631264187662809927636631084238396676286080165926253318313556984670372776074908736694806930763457505900554100058158757335797639333665296192226393910337515091352471239919150540496933116901752655126055143199244542713974149890948793316541140254670033321030572922608955595249275077481205957830502859206797696642367835477857835061193570364239947330687131432380515899694704950799304187552079036969379867920242539244868690229739332023827944109083100438618521329900715003641121374661738811643540704491827154570589084262801112096584101188469809164627629941960719811635712133549316509447416071803331078556484065740941136715028604135873776749023145504537232939848024001609141688140346130948435539695089095999439205516403191816517184244398490175368394721771042000933619288210587454393670350988584623068717085169563815565287976032217806046590940177200018142704943994985248993327075012448462203998562716035005694854848206028726821659530516332066629914080230520395369053759521651247941616289196320534113352379337516689277961165962017855216336589675837566440322258977032135966474037474275635349211824317147754600131322798840557579310542909760000591021496932475073011448420722409210204021341839784897092872836148081207986729797329323471724313406726869027764009397803105465414888357358801548668248887667167509699910960583251953331955317690164950858172344584975951453981145216025291667891027211098223769949458626346683380837282909023990018801824158365893102013784848670859477687957033024135274584318493551269555182596195459757471272335081170240914962671860756362964354008147354076160408003817596103680095477781894891419023750103706095759754584367105069663021644840198068663346193956535884566001662325384659444809459116998675317975306651874284140605842954515806496357557626260609997660939809953477724830732225422186159637917116787466514462545901232111488105039093762364402882245445830115767411870189518305874004737318419296454932176482161350709884915653592092359461144527689706446396956511615716547939462468261987534887054831395238054907126131008459623642645742503764594023029906059353729315188450404106865382315177444844677800901330717232746481596453589957931455138955217261402787043472219532372448849402359829758125141206290961018041823666681431895150908870017842906416581399864722028113921209129204255173430635175125416671645164213623568422370508412071271733238688574842383840173986170044846759030600979082290289267713145874979387707681599964104253984661841105709676631880935376379044105053487817417566463658548170127034762129998163662124269905077085260166442872775190738590154105852312530051298968664829098641769754834179191040555315574511525234509899118767109091701901593000244252353864109909002059918496452996689151925633180723731247804461729367083306116962034252672387021954682236912141017834846097343092914698675900265629023428299234730981796541726090243940264726194003034195355767911521344318693518051402061843681643128040562492678976715433919478286739902483893358994246785116248017020325559412101623041862007510368213875449393419344687680975282282364052021712073097114361731005715701803406498060472318579386636464247535399075556817473003284225813429223458397580516943822462151590015826789258362947144157593194573540549500083745443907749147783939200303100282822408697136551085162883841654613371485435212913849301213897503482050231433175930849904785911581376255730259013089076649906164947361992803506842245487342541707007407388047886310577649443478260555651235895828678521964487327408327440627884958676967190254870343237358864442511666137487514532415874547886369814232624155229476541095304687739912661984195225708612314533534772857898935526587983048602878295005612524587404714033488718074701645306778038740750843233108893210052234502768372869937479734443347898634410826966052756804790400707543110824553209242581591583803913661333333427027314112447622560465554566713442221259863294171038179262045719005535706367714779268377616898039531097857328126146767489779210233719418452222721082596941180603207043500184343535832002787519926838174402100380098702255022878195644734484031878518128858388040921193054777720188374248458624129392813142338561082541651127538401904169855540943462505481041534081700264345149564982334975960526545982289927206800703583296539812549469635739614011902290518985104536028722010336533163434393316926821220517704860909049265274622251645763228396175548045324690988608093162249804202264174159415887235626387850840587263740503415431796897171287853640645894362858535166876701345921816291425591987722934140296776580397016936093402652740589435818291811468860360849134404845525396414068338894109497446686741131112638033590347568931520305252131394126066547423171138661180947859966066438441709250250191266485770990310819831272309587216359399172062761421966348851038404383634818185873243435966240716041960287674577851898191900425150285685348825362173455652733832225272608492014495022491035184030163677093384783924160224627362286302121143738233082919817036554655554255243351560699215243352854741291429345196032915451285698270404346585149662509600267448417489691315435555659703619617712869053927618123498697721376649766915969152022797719544944465903610046655311517865029054364002355492165611639597690254245597671378654333540798078301148217717791872280974941900850668444775677655832375513147953718165696241899702897034490339241469719834435751294448219093430218967639718148927338332273228546650933736816847206565814828228368541526226154785273761651542836236534789452576922523071309648228069519789537777338190514178487939656042041438153991271440416185432526023525437860416239022767929903574198091715130369866152867730769811934453350042826768285513767112333105141847381970326722013330182237403336312509869454511182799510782380298471588459117496336391681704275562238720717165285916346106120649972033735143981104750147707146619016201437447824460019116011821477331390469038383878592236533486667760172227132987732374024962624010361065496312912826912216771357621499691177179212408432460990005507069351823716144164318774397484524729695107259758090682035861094313093760055653016971366378829345132863830718230459020412529809002028680889460450918825123222612681471321039112098142755937023310062094847105733880023910748106148525044637422618523101817699760304641944455851137630756636464270507721591890231249639242386426821496941549992446418659880494802170934731350842113056625377969480384165214166922274264234910654401599617817095544572260708929279194110115977828133197483705970532388216532063522748745787699318040270063304882979492166295898416791309244703653354713381154176773283193337981965553864301180633961545570305912658144656243771832996246094696829269068583233226470034664663292613697638618938997131247974517166937508405153137350182094632305634472091600675748020677806997412203816122730267467797831068554924899293232775905115448953278310859212100995107088766403163598760687989777892833430460864235595620269183909945945476871595919982468897372264677326888812551405666293165332429512212555264410345797646461118010210776959192650329112160545084426406238742405477353515139797714067688674688496146122246453897452627578128507101762234718841634509737516433708012968461727330617771998753647232553046792320688191656175256533285507988726530871365335922961138677347457771844134081637991505660351122002696596420049204882653308775343567627406033776206604821270956532184859599300295734571067106369612453869083324220137852100384182945141773030830166163774180040031709080081829129055649187885192460862992772275597349677793681094626151612332341274864997833009588559600185823807615283979129738244651859955865201176202050754377411294993781436454848083854311870335530578361897229232987452372745445217025212241583812806444167349649899167805649638907411804014169533432482052200181928721955850495596124200112169632589100805512972297409001400494619997620573432331374274515666297521581915600884485084336150788471783578703284256310869526998032221261267878000413955406411701571842632423417749847999548884775206942263481222571522917243002407062117810156526552994933580540728625587334787743931221610195899551162146132480209507946112190533242601366450686243129245638696073720095981104756097285183532682494578657301707071987789688839267858406261480459955992870881373301125939293050836424362446526158150996972868416032029420534912348532187290437976822252610154549951372552363259247833440284298051411428227725444659837576504386209746164097274295440664036907540518393983886674746811706710810475985058489229031782419173382072824823548232206376574991454893159700593450916317562482265028648709038704959538479154004611583494566931254831319067021647733348908482303588598339293943009119729285048889964311636517750718397056644171590854140555120634667714028321995458650802143807240555032859978689448290031701331123603999284029416096935832571242419755143734308804174650973097664651987473164717961140131007561019391706631624965334806038359514729791689084493642018040126366392549465766065293385123340503752848291474195635794855069866240787159084208998601370948762584015527870937197923287531944700388110399622192280132261627015672507782734477146120344844251761081535357291466008665955298279863419626956606259398094539938164967625482246578950866484894954744554879068138793534428898878779035475930143008393398798795013039386828268532504664793005148383573707861641134214449615977149751209201079828173206149215188768728793850678996395208909156429249135190469099240299022867797853444227854922781638218667218037931302827258960341670494984996500869390732533824002575682164735043205522453047775963944130172105214353810603511498978290377753862594308230916356735493442629499039432179663207774917305544318418401382352723807675314670534088261184033022636757739211258908153591848497711993695771232487792006591092330296821518489537166024736251149024231525673912200860089397225543747685283485660685514902623963271952005198933513255289959708474738717537702189999626763326719935497604029078525842868980380174375976978050931643863922341937867544981692974253654152315867538465884686398852486380557549567497309452429026846149394283201481359127690797444596569034665884825646960145276399083747222671122417404679245503182479363617039958951938161676910167238873355871740069687702041632642866974518599728227286644897554459479184318492834380237442410013379663952772832498333040894808945358499267114679249258438178200234918134819483086556662059069443424520208533129135859950966339377437456866117033775273713940004819533581316918252582832594809191668458810803148237844155298360215302446754894362746625866578665923362313814749224575621903815593700347584203621850301634580570703164166345638093326446528653351740896960053443783574241191412976295046180901128948240669946387496552485328420439616894813540336501928976269358391167825636569455432643156125558436624833719271725322317625572618180085225038933147563948757663058954111357780629430350789259980571032191465399658124405650769806204471350885357800379092185280863508419699484109077248822029767939828496742111678226898126189683024030590434354504170659382262865490753622508564574303277733990445884705094789685115835435498043514551180762912044323351786227754520575034763438650066314821591724960729830224981821309558193607794602879701654213279121852016320105264200514299444123734629838936362534145352135778585459187113977576368034774631254588626655559540281480618889397295561888210843980228741162297028230645376518131959882781318273733903575671737542228150046899034239607241003120608635899057425304038331293954436100208621201790946587229718536515032694245791572784822873879808924993185093922667933542837267415919579079618063142311359347135487042638442868691685683938731320202689109943533330126859960442307056626568061662289355526518042325687072106715037830783816668228300744371603287889714969884267846798479171342267158362445988824873587777746872359482296055658135218335791420724607296553638638932015027621064933695396682794599996019395784417907429673816686181678247579853951460776441971061854215413249279418756630962260268066881869402719371960037089477502267178504856296408190845330641452154628107838670426914615459611882938936673265588900789518242453134765993706703485682807111981373515729367830658646341379149418313873571288007474609782728976395307640923782663105852369439259869598588434919231386143134024890092395217576961728004379556727087575289916838649665365088478957357065546333356755740539368538187601995808059502751264828946801477260531549775167684244227373845171589771208862248318459723637811495456071491539071323730783619589094283457493323107762999082743677018269379418692805614522702783492293756536836198951424442780540905321548895347786879457677224264422140559537050049152223657897172236710422035035770961872540251482671316790108646257957244446084177688393845231948585251893770263433266113120716799044321863207923946352946132796040791005101105578281031862930968756528381652149068438522363063585058088334247231779860339176401021551078588165862012796296761626261143928644036268329561051851308059317942423062218592393473584122715446859600579681586006058693336971765467542517120834238489035941153533985916330167815916140910138013258650446217029724575199503236593579845743026816775352710000297789455981152382260953474632353331022601954836937386902732617645919909698865894701169889463415609838355812307554617495183511701969416997915839263813255953044117834452314692870363332451246509728943364795914129515249742888675489163498865001835905858727803270938050836983557271494749207064467907014382167745874561115901678950729909521766628604611358892904959171960921018631930437253446715170169062296616670598279422425638826084101604098074338217543141975116445556758251576876001626341793184322927246629226425374394136429485867439379013951193630067120600752118732708128284405027445896835584028575644687826021807471540132858141334151955332209124793271594153154224897296313480840434153104323248472465172632813844108429284592122111437677943154116443579836470072869239911421442303555041724752923314381008743459038972216771958456851974020987258218613445005370266747985705035981623758700572323322989372559965349544115981099473372258350231334577266402983584180189930712421625863646744374774826266435674629208158883608977563830301938744015242270969070699935790696078426289733668811096058784321742279767602483425009657737080797734659931296987388427940334746785859615541870745472628575364554255660238540107605582478532222297491758819043426456395604958306866116663935593985945077216409187084659973276653699571775985954979255268087660903987395806334678426037798228864657103975468320672156067973222644061040295928032242521735530144572388804479635123435910277120624353383487658136193071579051495162954906650859161834856741126621523704449925677646643054462689865639795236492053720992890060082595573243740979934988336853322195213071090581288913655193846451020022482175722007540588498589413392014657857477689736179958443819235075543961661874705329755668443016551472588493965038760373559352682206145038449411033415229237132964620456948255463428178382268647531082807243109265410935961746719066119134807640796535820578309489095625429405671622321952879454911582124786351821746896453022827701509344708079476340190423731082730193647621402705827326567212610968147200635449514973822658196574582632065199127977311711879137339359429486771329618251098518591502838328011310853515455922111229552622013387380141570967713548683586297106011498380667256877174549013536441194732124832468028117668662459273091914294910561676699377513247251662821752256261579775984783939009955203018098715006417771979956622413848958112815143009764211330140569215442023464587694260423714737287550068112981568222971018161251840471660180301905495116758953217251767492854664296524176445195187878323006188662953418398966318987663689841240535640893970358493334433687880091584203425116175336101463639427492093299564949021907095776450124305769213575375879457071923909232751771242842957247890351249184797899310456976104063711415324063284896314033601624477074135637174645313531490545256994406341947154295005139984910199778825662197092067282707070732628319820332772513195931796705154947318903952529205097477380855634468222200080786687597872248574462079849006283716511222537445391827768180658289441973016012931925365053814185060938704903281813623567074634877504240546449421074622368777801583980941439300662214410104287299359343078432561285389158469362350782734965535020295786229479704846523114637766051023694939526023144714965522480863709813647734801473805725399479270865522075357607107878881730339397369652271557970575431217259878175024032764869963900150894997553716565547510252130747190334658473006038998566124971116536683719514154165776701823841634015823836034527152459775712184594615778540423362566363133178311388941700816799868395541901775795730289712774439736680351745033962666074000330771792194397580293219980242790439029458836666462918339965532126736349042695454193205613173022085069563102369894642337707367135263413732992542343539088300440896318065232094722193066479101548892632809982768822932409463348539163938509570052249888118177942228811460563445997465045926720907660064709603345259545702307564896181770379296198026238487548233136414112075522604599765668186615789760024607373227554388959568541970885784792834745114927937369742798079274571038812781816241315397054866464913792552214993404789909479830059617145799939654267489816954549141887910054025701860326492238283103595858777018225595498694675892944792007210273871013202714943828938294578945125594737669735489304352190298062164030908446833703217461201306988934071517261580839093503099381384387944162761687577946020029395844561930621877172226276529044758494272620802166345971388674616521548938469466902933911824293029216237796185516499275066839217077527523989944788900660045441071481792348326447819263604926028839957725247739990652060879376235618141597523852787555882037955132033715426152462961266295833127882553379143983147591678692726894957080893148078300576219108984732613835004653946588035519993362222335576162502759881068017154816149367769549379469151631316304217794191214024097961562775391788471268617976203439487294874888527222468636192532177284061878258283869838516084222373686570206549961425239959755370911331331438100417568651633624295148549095562136720269295835356005850973914233233515704365807739614697313892685047341569551619595286203064319768254308736655799773507240454712953358476645102838238285206656427770945544338529190865377777859375990310351665517029885235407476877226672561701955138495912472244867274097953019286532971931159954898801636212303708082434199249528174660280838302616578590904667387687521774431998973599007159107178354077045292000783323543277860976148637599294869657810548853678586389911010034298948585355803609124371280126693358227546992446834698068340756364129792972534735772838958253173236894529986335111184491997693384876318212152995135716441469500830645558633713919675984383842734989291513306755371896271459659437865697220580267110562436399608857124968769637370772920513371991708839495539256135996299563495055271003007407557404886539144027571873535297131669675733831443605593972370367306407738245288208230210794900723043360339250827354511723867500947788645663709416761668496058607583066461793147096784168479690069137432152988878302246068730461730813004297830823121267924559853616581758893091463946089716301229414891390923836069923516876170124527636338354041889251844860563437340672918930380257791336112787727049613677602708528280250134820737106056272540608738810775754536564122756180547724506132852904574320380436922322632061284886723416774373908290955698013923873224629762056328210528091783637971360429831878293157335102199081487382669415969436560205804945034313328354621791160378347479494577218493141785828646781328904032996361195224579928277816324584170041530008296697332227493562860110399807325184459017426138272466861797884506889121451371707411448341791906720087954294732056277539793533500895282426924476905319146619687505511471667432200866173898942327075251586476020751071637601780518679950722763089048578670130728064361551675726170210633872092522860131655249215585960581037932270495611418251954031405150612395462126376997815943009614459357292870792943073583321346748272959994636289574903933952518845391724997144317482829658236731472654026737254170159956015510634581110554810965177111875842481163356100434758982594833332240865964638235691735684879359135632742652691645739125309395758205793345616911138268151268320396510163555370293759727247501101310861437812090069835708933017097008972614548975771918643046398038313231622298702498496748357120750510925874505559795063751676937815792050480457286852775703330508973587848127104940451676799743222127368356336249556465612017511331322634279663074452826625386328995656434255322495999685985176042010299698129132904697938734332980930848742938441080663884130826394265990037160701104491595883459106314796840390097160768386632727880517400794222328276512845048213086005984877241865763489848644253652610247376135821676824830854153254891995878006314933911478719574269753599055434994631552759312208344320133368828674363359129832105647057878385353656729990243472990655785755575169785493644742228678843331771825283384888270031751485925502724395908399985832083075443045701558613829847080037706393440676631966151890701049929987890252998808775761171862968050025838726899288494133931313535026921097699446524127230086631698993603968844638414498998959831085684195230173485404639732297390893709712139877011234345578303588165003610277634332720913442403947584410534132123077368575865534763598019005400190080152664021878421374188731942358457890478174027589902959605697943554096509743913640448364522474325843090926379146590129197201972829026901371122276713848529791998556538411782748381435378682267575542650671591364728832523125712479193809320886479445434148441977260298626210189379414570264444659859412372269948951210151931794855884862280244586933043573637780719217089643411577520981012603410553607604738468238193115052469078645563199262369796402834877280963122872629456298631473910789957622903133753301543620502743014298671987030962915929314091070525151073730623958185618026382194012236417225992625494650110994799973091761349598075132485997610386174874528729850074673016349263773601668511972602534797772776548994514784084175022833850372685296312641145057507545611368807381710624637932323594705356089359009333247789116501219904822596879464714661950009038814553912749998629219689134591726030564190336721080608217965386471468277182874823228278300682236039245723380615597509599939341218286547863002206155080285479199189026822665075957304834537099542521989626008326253434404605507190041934392280453855097584727986618402379422461149268900194813806021377261817376453732486819197303214721608032143983472038374023700975056732239799954812378235603021559526210695463208939957665751875403686892912508762104974239051641310481445221496819400430545617151213258323975708123423931405671949787993550391136227711744399737260046742161343441940287364383716914288038124628945074395533663535561765209550717562408223181860275909761388163891686103219650226920918534114939468788340386961548794116457320719441794795542419482891082417875962531207974458151529671939490474236262314123123134726494048734796079051321724206002567904079691965475666950056970061004786769759074476404440792323624859331821611456449957991836709222923990188406319941787838255693083173874157947211460644706525416608438240499801423610877784451085345337500047850404584228106655006694366875804026202981414097312960768251760998569580178907476999420293020895113083750613354935362222252769844774432830505432445436457635978950299053428659464456523135874997874018420039725721956915304220354652733944104244305669297311710392149227561220029087539861155711602608657739961285034917260478879929097897540911631189760626900904746374852133329889268876021575790691311887350164125281130435639477917491271420936607300348664682381606834023305551409414554836736843744535755609522554173134170313033875624524879295610302242190133432168727811283985664079887094603000078009295471553291099908751456878553124355362691453719469280610405779956574465578325605216998161319163872933914163003690374534782461226760739407927371530502502616866741066962488461309203078032010390378281292116401961672386436162375611200073319537782058180203424579676410989383645137472236250620471851531318594762533949244812273557428032148198669278673811438779265814917892290134611414416998240523326527829152037147154273887751651754904937085467320254444288491157045870328268326397113194660851794131804370945851592752067254760833618871411764033780624600060974330567627821316858061630066677192202497307673336219020122373241160271132249137316525748101356251986017510537565186845031517334467420407370774019821412661135138574608135550183702518091384690502287591986101429166936461621187281885065779913111639407825870328725899540969785855038657079345884953931242704987423515636590738617983985076838300495755188747855226910116187330607987087043546777094101506549620435815312264487129172791575290636755834340285168192346153816598818434835876901745001534735302286692167511024073038960834310055869059303045882295317192017615199765815796769528332730105360608419674776288302537341777462734587725635858068611226518258828228639107171688251888288209141219963507414420490777564152514074645389066792661777109354925545262951728170906265446439215654071587559571913579551378827245891550341147375613301937840587767677294397034618038165621837470468103530120844866780277863096036168374720003409220004268881451271130423679960179309284768537355060924760452901484837748602230752798322178360258494984195358343590181777794862548175723272359392927546539181169240414242475395111833135684439600000092057958546534201139418142343956318541327203638903934783970626128677251061621723923264638133472364536868252225159109906294947059286327821516587588991810490634811010912677556105988737061060207711927692509194328379011481622958171306892521800582262092806047478772409278211748703516678263039156226977124845953681722139170118583246802856179429848140906342288682676669231728640842965927084276572733097867864591354645099791196452026538731490247347613874641057219261236533162841327290291326244390292533661680779583730069952736832027406039241672737357736004246647426596029325161097389816101695098166427333200992721930627862198276110450595113572247052001265377104913139414993869355172540976005658002765282855868676823336656297689758672510696216501470554416820859860517955575358490724520570857622936571789293549212796201480764784869875251872994746403776834983490890442486341640405896992130622064899891760740405840688801610346907415388711974473017535756231623964314882944234813816043113307063545052234868761859576034032257648302952657861984053395985088807530243916046937723717007089991765125398318367130796782248213974318093139904582226361012130451589130837667871874930693548544794222511015129797704928113743252313973247828973629091097323112296871177982174198272934933806371305052835694621333160896499081438734144518537674014051332323115210508107895326703508700544529214255576449387109955190522848756549022438528935551170494143620668227443473392521402495218937195340774285109159295722791207380510806250014213330780200163595566464074889503463629240315585503931235940939402032500678156285606245981117587537401953418662627075400295452737426502118926562511685152172925054352079192884728439425636090860098472418076324098014856904160859537762717409436399453732325152119516739695865021844909244682982396918192413607342866579194719317887628338231334884130011995414358816561416713258873968551826626757389628135974337615056573470823666295138338171440794815748791713272786964258291410882991539269053356863770650269915837551995864427852400618813177642019014468666114337755779615281846714334317373022556169694502198479824276179443894510813534244890178689038316846781590025894240471684859861427979593590551860022198458726932265251080831147308662371957656288640461679102123970210153836538201243090388382618236880156859500873622283718304425917694023457842519871610646912367615631429130298295933896991336915477243314154848279738713615948260737288512647493482309998313633411992856125913181166148105699995831635071831002937027019275766265355673030270420334047732117020949923486127619361992227362741457481137832626245659599773372874053642193448188356238042306839901543721886354107717576104777954539580503667060669728272001154250831724404472468542783052660930458052715646341179421557210241579531402348215276369580450156523963582937985063023939472343229426912997059156737987280161677080787565942977759596622440471599305923162198682471371529342160789553831702112078297700021281593559579606878067868180133977986704085034157239700667937777023065667013661136831021697731045829981262020287791024226619599598846887405438039205074457774070400891519431588724539958937589428144016637710037944142998017986554158272886234378175358865782683519718943761493655501251082579655012646444963779624886633421764704691131170011977721298408216581550439248339794687782419940471086175218329432518123916474810649137034104419577770462064563959623183653833535834915065357978634850125607156054651891861171743947683734801308758469922496701752457277646818961357501425653528446786212523264688097756657380981655875734417160539969025505966496795467671008520040719732495025419308631085515746205634931780223112536689535499140723321740150415909689669778124195249246894898007966895077054306127540757621371046478142564888684918784493801004818952619156621665259503020651189274915317337759873529326569228338075213384145391851177404385147934306368423461731682658081128977085375983210606965385525758097475735146552997213938850403813947846070002655838964699497039785326161960504950279213778975404963941531615920673179100408709800964478026267958184604287641781631674270423079462196004599501868961730903403094809436919796165371200606821699371454781970357372090544879505910680316048830481584971297962840157434712406896633105019888580394710394405524997129131260603190962502274208132132638234318603154765241710886977405269135778400967417196854753770658973608030559857011363588483160106567625144978112008302826847814022116552871516211586729274212001372523131588665534898564086809647936658543808349208491021660525370456730356212486418226656294975348850540364058226897033691664306494069631733015526079848560625356968846156312550902796320103813514500504634159418534939180457293889068817351350995708615916591188249883416756064868730446099413001118172581363177183960702010196186313748742416295351168868475524715842764156915217869328417728052735964748089824379607482955971113771360906028070692456271784697273991815927401239456246333671999835057792066965385448834521543355643393270361414576296692650462215683733026654381444453659083236330710410192109965801847601996971014941138893641478110134398988146829481903827462301569710304317149795252980480030852383957247501986330698753185881938416151913075801084794679185826149334793942650426078752832449269583210306635497483962684108620429632565768338359597675702873145410679630523889561141675726184524063607132661205527997420779551514889484492368020731452793822689586204489894837230421973706639576764187206812375063403511011193851927089138709407696731949244410619974285039634288889650723414526349298859998408257155820404799981843430268056350415878697846439050514055629925095960606445384945236674863308546330159532182866316565746896801585048721020389293500407029769344421133755111756560894940836825281094530707716178851091662378038209051838199576285821105056172983513435732494844821238111972311672156520866424156571594318544497012267127406671614475116381725719590125485759802075679365937062079888931047814516321109719519393046173767986034294961411695128958886929140306207711601168438703095178975160425298915167284575908438811757663492886670897580505228222108561189829779415048142461184612160261021939757305916303093916472834096937407946916042010570081100529930927175585823889981691183419963683538836270903373411342244673993988212285955491437974905530043994110340101394973568094512800477774157117980528481364551652330570536761347916121224013099567252433310440397182772345586659552991095084689289096802990927784171941830760631001584566877090223047005099694097457348072925476475760562353873478735257448906959655521206415735749008163813862033841448035845177409149160273718035568524266952796887864850513848108949896003042483496116060052230887639140205624754110769134228123550812728131972079335487108865801702142260523092838433787151321323390639111276750522683068494690609194980059638179491714627069771956891055799956182190697659613440525736579581716914172880468438606373931375250015199578098499898183880731910196920447543013887000837482604879808910694169510918719232436195153233007591779037198376997373656064786018641957151605611148014562181009867832818760619135620045890422818747161811408237240650329107518111887177486100617931025725091715472234702008599186125091120081102084180783860808311123782958370857422636039911961894241111624073084847856943595373263976042672336824344839034167755254292679089495067585524102461666663553690342521907603276037939229317458774075256815966688502540341816488627849071916797552656862449698471381296430354383744655901561250340135095459730246678951651434960106994936676490848414730365941901960373942385337106497722827099328291294247850093266481417165175192616056369651717072827501389143974450130166869947124946208997481586761064214024471175345461278478607783953348835030963031658438267774474289338645500435740544133644979798771641356618352244192867904795191274195363863290274883275487161056414940847407550736606156389891944620529286807524301468486659963235149029442569573798641217585441378829950673795915048290256354428458812998369361967437923300627799287098966562407187215377110254991311093831736748140598823167232353688924389239778773699624806982295778035257066118152957853266154980919286646475742691446927283359908950677627483936869104730316789920701034157212337433518268813170895751466716927219014397127471994258927270974266655743049064914523097318377187637498288372435386313224805561107661171362787652472529447282081848011617628659674340286723559518863775563479391077534817243480334535688591458728304365056656659264055589832478577050826343595943039250712895396654913258382078842723087436966256022981437321200138234348334091616869126441129708892620892094606146514427952826086589295501263824468712825394196319125428884212975945630456695761690377717049510653880862515281874986521633957855457132152502601630563425036442682101966408725652662347173332890585937463807112561034483483014517517976491015988082248016430097511920230142573773036182433678965164908195088626056133787133559304617943472768553484162356536950501982803031243457331852729313107784940728742084419064428362524362492862479902404838610430103067961467023542567212333350497641067209175097222745530723698964357575881042792223734457034951284329781313457420770060656109092439941725995199787815874218928440124151372079300805354018755919885023642499611476675754415186709887336794801280411914997622031177881888230806686547986706939978910057047126611026902161430659483777585320668797029945694029421575383066929916521960233163040826226899846967300413517013072634503784622477375101901014868091491334165797000905777994065148150232248506142972083131001699531770945557254936417096896327440001302682949372196443121175748593216398179707082705776363762619033404349252795367166683582984595681724438129603351492412347879527317382301709560559331199891570386752921778010553427299329278988085812734435607291589572105543416221500088224497300827520287725445822177553698046200049072950206970303855250647842557717530898109295889148156943879068285766503785405598424611057964169199804047725221178834781950301762666941450797212336287242090564572909916866334551094100863266086363697054257571016412156212126735562075457678210060727438374421740791367511448754964539488480452916271600441387178121787591972458668613916256917136775801801628584914290298467390028293163010412071241363408554253620962452107770007013073894498081073503935895688988662398092945252497103686446449308720102648329926676806745314507140612750567539086274299514932527403732384697599203367437233174139554002113746104871865284492255403599711136657088468388179082178913083976475996508416708957205214100893187310835684655709037124021975898979659290216541644629502493433739663362395481087610145994596004388548219164737116338491451357230820729697800291990732426320455141633913450821082242879469910232645468331924193016960800005538314076448094589171260824103485748544193325311970151991878396516674992208689848429715941618567250245982440125505952699603137976024279336228395602219449866301335877670662720002870752032346894721874624436954594783500954410600515611477699977490742967922143893681736713951417538675924673359576018325150776369729287539291484137532923429883924807960129252965747964414704274251576181164762026804340006552852575467241958215309131595392621849056513292608395570014586484407699172438376130035398427754664433725698177234658095541831031373984974411314005943842380785892617479390858397466649171192965708640624190793447777162420406333419597048736833992774316018952068419072135458584932482047100996841097852175985024060439833814080251944459874285391958556021835502371286944435189427682168119193459546642237467738644782763284381384029734681074863891763535769194900814703035842501003070164753638051842339580985145216859226194490553976381663783028530309772997615556771204276452193064355851984139291765924209463161029109300020234076605236050929060477872889791854045144910676359296752183925370017633879538477580211345297060979691407933432107827030803465932632142970582298942543099285936124809562019486029150991623279422076554534466242789964903697020025867016241802135676372669481904070656644600167445086438507099102540306033174408085981842337548631630477379808519640278294871497466187584524561764804860133999504500634055295026757165340534893449398380109823782622831422547973916868440647212783701064205675954683670480402800392871084908092137460182124208274139490653619489384794759504348101375066517053292880457619117880071513235641126728040155859227115486539160392230559051596333007153968490265316930585710210273281345361856136744570970649968808998666373755522454591964321161910901215425061212577747290069200375344915210403108593746849335351907377849744647087053576650551760155584970788520780622480711263068764030852181390076163348821394051065254068181653588786359957854167510582670204432263317637950859128555075415933975339352608410661250991773819180970221490080630667282258987781452345675813944764629545379380117134549052479117801038316195803938971827553353268730017400466657966925050856667326031548155702155510582663559705715849715740915216481371245954066506197274714065263644156797004012807551516760821187942059084671379988779676945265349117010662514042299902707931563846017915295376419860978662992033737866190042362712888845356985937821092110305500257950176113080708378316208946283000014664013254443621727592878662665998622298963713913817437066516794819392487438130238619161057888023964908000798516753903877151696514266944459511889275271223799511744908133747617271286061181758298697480906028369276909983586580969532137616710729675595886445939937682672849688216801683712387641441085447449731810645987430944819284351119778084973767010180315984305385132292917631479337791853157311015458287165400794758549884049013626753982586286425175434246006651583278430044619469305989530868309280009193602063669020568684517375109298774831591979887943062129553766816939435981996418317176772157450449082689942943973975431923614286447307920959843113158659750892231190103710024594090690775149177459755239580944403443231256943941622013493403524963525059054110289672353502844447520109449873035899723699281548114059762174467542367554927294812784471661519851884838107754682267018915600645081736485612422591588999349180093319671864892153401573734460817943059819095203776112640525958413532551986469762181133609044399482050314914355141289461257005660157251847337045471573379514429036459240301384691994384215141825223059536796326543152201093004043327369509493578348902574552878888009215079392120459504339476499885308001391656850945155655304961268727708195123437135761738252126636343351564110308916100015938345152322743975166373428273350824272060296662965257770638497447241059100183858953781929694334150730631998749398639839049998360502689457401482793117449211670170757738886865143615141199119928747835136324112691647301481393243900114519034953223327959142090413975188838243099464689898760287969700131494414388296557770323269748211423917205329045724041981465704208061104677334672255293100608114990785135974540661704290178640842591539307827928663052590272556335570619845826214555766970707724608488337386242496500809327510188990866924479723269239457067815883317763924404788182029638097748571467635599818796978070646448473471702211605711511519369007330064315381244995987840935984882991168847275307122454510174921701581390357858594624424961885915544117436409862326072451658776925688854269090235033499557686569817130154275673416728074019693489584893581545477178568140879469815998653716627482291700782600905489958334966594959543055739074146230070445407381757686047711375101700263389226733220514292498434175288446761016753198701323115284417671995806429152803778226381210561133748113974807273134829495294377178177937812633700858479556371691424921197769195852643813359569907850251896755943998297668881777437509017730781116268646289329901611762128166298785319078868719637333994181060158127790402116475102105258284735618546872032356869940844608190176863207681397595624891822957351027255011782863507432529902450250692161070072530998680473155146723587374568036827236851349916040469009447439452807305007244844913323224667487715215458033786280215076287075243689854740382643342768596970519086280930688637640733017580965292965708817370879283340178702506073152479466570905322556880483948228776194890830325570204120970777648858301009312547904145358288934735618473157384763347934226195453337045629002556282237939913081947283144945070014178801172867641486493530475394127080900356218597469268858441183630197759742776582150193282403703452931758139755202869133358785108980676612954593116161227280723133016115311540885878278696667076894654345395123578690155068623202712176188559548150683197347590901294306617486173379377031967504763223066724076996756516064915034317621120513805656717801389229398653432742096879828362440103647917692669488564882955035873405033898120005725203348164254318403235579900155428610914405788312513527025325850056301317099122821207902945748166475465317275267082740973826884248583786180179106104190107384153424162636289623052212716809827036439439414408865998918222944081266434138996749702505966030908902910118686155267719304438001775997473174752123110126186969806637045645942717057320975981423525588801724452154130810781530364216677704735773649848330209046972384099103129926157901135381487872820187042507067686436172358653622401705980878215703195378348169220268309603303916862306264442849982009760442977782860526243562060292395617636830099480368010477851317648811747819500462407068842026495242925322177982024530719819635541748219553078903003560719088473505276749361032427867842221993273426285321106212084546012684595860004784315220867515174823499215983894743553785395156107432689753380939231310759807851278167703930317034279255539813823173153758319811956578362825198137115142372647976829376061675315868596361360990423832161337189721525237537876309309573356818888437994251112463192343241709659040274656033043485447877585911033241875049188123322807821233004774070369298738745104267309491813146183513746470716197361374865085596613506005509695553165455173113983891536781510497127388190857922449617412370659192840926322806505507908565046379691731846267453530716945571057744679357217945962133147415619074247628874102346561951074273682431639188640839637931866170040429471198938574981024675724184308350571160096947366829935133939240889924406272843252960698076056038844586180900491125642084460500627219791323982005536088556427088132781587086145406225723371910125766171639992704238483286290195236881359962838779993849563959252332466684923227743671062228160661476286884487596392253192455406893516543209933052614916080560497941573009935195126762625836984043983409086622390611671789483251605537522338367402154671343371376473495887110102150867698584980245246505751470309366408625390321946299116741353101483181656564023277237696840980463045344124380698764532486845761640411889432942329057456410831052605996579411154520941521511402243450826493093156656765132654749208531379018096627599338372964638603645637682940694345164403242798324263779994660718936632016354085344900346302755423876263853653968750007005276229761753298370077256043316799359681740698704315791006774760396120738571434502175791038345979600731649800643306507975421756223677906796821726097459700909346694995433881561959760752504869314611426607434481039380617631058047223969657127834483210373419415228381914485539412912009390534997564539208853031172252657974855216345579815124846712478479106908443254569092361498657162383924211010026458641647934749534731458714830247213063153922086120237439783828415622129338016101876001851690537972378494900169878323205860415408637999652837329989439003857131190736703524477036672293493696290239257030992766674019552034522695973667183581445606669495518618267135784016020319000535712333640933475302812000336473594695941649978434272605205367911687580086895591323836516218276492729526348524201627314061449206077416295880151051498470087312209271878304671574151385427943585682332084464399806595921009292946726949332752462482755325470606419765510576356263338017137832343683958948723486041255520193250640329835773431241090479511277973140135892499589629464560834864842185303908519614545145424677760153202675078343124962383552063290788309254809254835510314612202330683778122101793347779595801566923713086729092856760204603539725098333445304140380476565418705975226309270862202704501865747047883230585735215100594508485332311729556431445849585534687841728607924029030791407264054648375898267266269780286276098978384910547427371804725553553673843372354946961639697708061394120612100513647766781765400608635973529939628696602707929714266532173007100745346101507019980841090244104583771357184809105273037201621712976897107663856670086842422555923126154276371789429774748171795764756193217462818074376766174594390777151370727681617108827368354971041262002159782877657884191513435564933598335354926825247916813010871980490304238716034401444028075875157193999949572063645642678451321233222474383193389609962232402671406602168171935818041440058633214619881995435474826769071157696895212261793926330097029681822842717800987476903057416787493877287321656498314048993744887694783507438520483710859918053192634977582960538452923952097138628594724461034898576694404774707136130624010877920281612567079584087231356340456582381990683345244093565181281076159277420528357379106101306696189167233287879661574883581704309725793580765964908819850753624251112255847765784248347007524046156094082741752484939734381865423767373362896243418967372035226661741843269560249913688212660408304903777485715609350901088365305149041643144013124211357396458046119357665536738212628911754418162455242600652842847339443905643934039116275005138381000549874232337151867697112696266837318427152961581214737977299195932480635931362449248382531309832015931523390270076623189599662232874250802397217646423649706182744484082275630160811002773547488733111704847919341470936673627290795283396932463725473462530618265547540393091701583494896504254841523150660415593313295348576738439626090927363585690421348109590299167924067588669388657052957788169381342925754338996394765718612696814916645880391311905827015900489284327475244391368905660135717088524283181995578116252434835263739606528227333444610506900000575764922312580783386702820142415002407419019965617000553106556038385543524157746096157100829555079006084487495351169779881624814257400731694042595814512553598822549720844360617055432461157627674611273894825633833592168522691169282501720624887474849986994470017997325039319001955803820545915380423210152609358618913351593813341408268549756763199889900728537857297820063600230597657432643187492195278844206808320463728218242789638586419265512469106656443440853975774230186807839391296014764488937585594833956853776687632821967905853468905509294505237029867211918108893682761106801948275320141766715660032758962357863612693933271242810841333671770452525219230619310797198276045821645341986940798905239455824724075564376176121690195890354174656163781172332932375710256868333564455649423619904656295104011136701303420039466674425126083162665990780316180039372045355108094150213050416754011327617574684728083229934947812557713585343053307336638698898638943897608170774249354894654594699905791427003522384481911271810301196631650173675990418815550943295025120859469063130423184941846812669243948124003761585796520394247459138867902148529873398050802405908370656479375806020996837536989759647968641371819156244642818132415250031645870558377091943401098095597251206489427395655277140282297551709775073544373323877710581445000249442871301580656947401102499708767498496838484490180842624227911332558513099503109625621540780633927579546591092192633491770559038968130954793561330571100082239266528760364754026477833157436110264308806236115276737512676864856265839372680326759761489940070500706579171310140303376975411834189733021557477643256740632057645266690757616072739954677742194996138863431881033434059927451481741775567642666120983309236702475224643588954810716683239978285384387919388549580998851474778314786533894681774324112209796597600725106487420549631563393072231583719396405791028737420093840819600821272575050493362313377151943331930182743470620777986401397414836696823654301924474386555252959558021128499609032815203044111848568755929132595244160729922802694031059801109161908077090902019210925931363969552100886880160282294904565007863335654748006341329313644123916093299759063718156519191985871435771607587153362434078290651912270548197434943982973041486421692940783126697268907170827428072588027518683037795725807122190417952107907137422908387066470239530377990043498390883344414931688543545587138764286121733674418640156697988845137417239331505587393062677299286029411361100554677546519177261062229464683138707910411813649714624505928115075531325450105822472569971296141876372021486209909809451639213431638208913114571685425749125300353553870690192912014016204539308511387753173272859834357665649130338995245124118527623433544613825300396702430637449521895435140581518356651113358931619541064212281857871512330882181781075742665529730137094184540276518705129074096488879162497707309640172157623383367036224989758683667281054506781738112705095757644859433825077532511553808173643264471493618742572079873444585046044809222751107135342940776796864427589880594538631753051847256024162188359096747127304354014509700325345384693585170062922911373881417589546334842475389847555429669194923397474727645860149664729068243799444269050281791468760767917948876263394789817087940350585847221899965486534917168888509961969900914630357065577907444607511279910828456738900975603164748063210958105294988565629445495841843889148535824776674985826352039698162354384874866700101150374649080940139037412920112695887970661383396034721527875996299049643671440190647598008571407337960119604708060603153309256506219709517129877905494610223853528758089929513526350703181747985068347946168497853678294586501170969754499282455808272932133401128393049633995522511642485063686534749800707043862459668908367433813829118918966626370013910314466208762274965548533282870425226904687937879555731376609014834561416373543365652458541306054012628045169855257354267962085121943654126965426584199481808760694284011936540787560970847307076724000698732702978870184657070983218001740828005933968263466026859697632921858686789591152043606858742505773852004155926811412257328252443001997357541614785919461231056925500290846610022877315387032445444876815493641925353568417279969660935640336073407985029227650796648707343178611767557474580598226064022882902706225730889153544352421379327458642976138947054428864849553076351497620415467620710792038792498751972246959758069621883053490666948075602647864880321348459219141016716076653593521895775807469801112731624926254073855804670144096679309126865267420086081051418367253453580561416500453093279787505023735928432563201663529436061372326530446371468238006941714458484049288425700133860602361213439811039287136066742381180579772402400455183366312798813047718247593699651732351569551321912746079298857483776750376175938702990426407143371322382115331149346031153171938438284014670789797322232896702282208486319337619664722921754439838827239557467174984219984754615721272490498894712111168687379822433015282698658912220543489647526351189430307032038911333930346806614580701068668770888504468551452406328417937653386331761168349906224744208108530360362250592086010809332105739184960707898179486546955187792515161243937747725316702434235555974990671247092734592570581614204770341713902271828103307651035757456654327651233099819992519967731081719767182690847898619138742438631476173489981270194320670058112261695837875287381208165576675838964144447903076013300029405974498409480256870901123263718164975189349373418285780481003927092631298829166188505005234709928792808498085178429258820993371656327162360613413747068581350585881176907041242488535245868448338966974749755918275644553621281533654752980182390066883967666829488636210831968487842897412560857910728795688262477104831779028111919574450319363642550551567762313746796398957597773271710046564332937675167928584812171283275317714167961014543585782843944299168192362972399894690782425063291093046462689868968383425323446377323832387895020020754982422295653287164902401043164505851543662271340523691033517522137390380075903005599441667546816987008616615445581533327124324800191492105837694918121398301750801241350120725514660976153258306654903960072226731042785649099677975189698173588280831248741172079318182675277492864002936143610443631415045160314227966911373468276112454419910612092332605280211746709925025806367558070422490734340878276380898570131281476928406274345596597182963087339666901745541982897967869214808368855453056385148269327367189923991345744366359755081273371811091966227766201794025855277998298739790195016668243744275617529005403711719773623002336393879279253795056463823977780993862023889216147615990026728333898444122644519365835180474590500949743604871717359559711306858419591148158557935395384807331787546973457846108762593321160649617219095315473966888628404610798456071492363547587599082587226753347048097369446607218131453843924939354122410099052046167146136375616932715129372883046716573614455281960404152427354532948613506311836607750961576843794650047765956107612687120319522215367262817476982692660698411203078223376375623282547308652150337882098613517814315624031554789360400809333997403927142303807105892853370105184521527033739999980581307492519077489975441013267836621760248296873317253510955229256866672936544290321811580498263860285740240835727150673093976872249816407694709651040575694247228622290556701310831312971342611587057783270137027781128621636703022230276390855240404060881477065612762193659200518758146176328916451195278393906977577709823418740417113572178074218686655106176374172265026334328322960750837138209630798052805422406259529849278901206776351428400957991793451234931687190825685892644663194934373002299449916374936219492214843467290732044791968278876758263913591961599264689717224796405285873603524763468223662871716736032791208645386785764088125013869110269733271514717459929704692889146109969001841431493832973100369071798462212470530302913833779670190139342341561755852042549780274183614492676028641708956017131833759812597118372488347480290061165918038912675577076613965612832263223145367912244600592941793222144045116225940089354418178214847654880375334000359675436713658058341532754727525562830870758334878144287500734534125865349704455103193061980513302439742480076851259721635790961632669573303577789462061198299678101159612410657330842918968891995580375704224491581418775366666467838823322943455537916244632508786448306725689402515828451559701474022417154155249599048454033507553223174775551306943199498296619722415019445965790371932276337822745375520986461184396131284398927633437971037352066836071746749811764893618378560419174094458373094726352622689078814817016835101369792349746357928664108761910226614355118633700826854829645339043472254610233496497486362904404582146494053656867259030988448196429057728242226645804100961523915091959170701848376175619729675642145651702875374573402596971301437261432154554043362074503489383838474632141403127706658993065250044456668849995888741039758552956330616641443667677022850259844375122273964535663090314470670157679514933734608415164058167004375886709750679499075480613576442733952173308400162566292488775557108804879485003410185296505366716134116086516334969380631438867887038670052636397020628847642280355400450852875160138225004620159503436058802098313342003665091021860988136905959448002632215564766332906532089867757505493259838130969285588171333820394775365066057602460698218900817893572340785440911270676860925464823790818057003101184445794821090360117768372098719663655121599186690347261535114780794840592818494512292793552828530667165138512790635563491552753000399683971965631438088691546272848294501611739856534384487807600833931330136723182664422274359564304233648020959634456990872746521254718815607031684280792382217070937842164358372936357025507559395154863209644354424009765756220725605727443107709530287961607028790562096985347778006035214944880100906074034548257032909360877371679354319183125221587854345327172804602495529857916333357805747627683198182691926299661821918546496178728676448704775232783511012374708239729157925705336190524279273993363969121088624764306078410575014466819497068660168820241168657642483185327194227532284468161886009045795210789393728057942335819616018026498408509132178318513147385421383149492219533910315187073700873634962027504898794343597901283025320772670371442160696142933804901853469542586134877907612966787517437229435076515626253718144666380870771702800408892610317490276001948554974543968489873353467718061599889826404160686018463379140447666588976087655320607252943959544353496083877715561231955081918529631741567622271649277581919392721765604327267679570064564219117563085218373097722999522986404760608275321181634542049508230896281421953985595490310085044254367051031396734717857552679966188105782335798118503382724335837996657361327263407496653996765614065963805502319386064561993768695902237843724746368094919920870913722452141506542411897858891342465932186490150401533681126609401841672731892846242569202653252474746014496832515185579035283980492592168542690962079859224344752923355831459791184695810596359392695969882053212411604290526626222789434582927590382759194708322403688842937245592623713269149383343052115938672729546731932532026722786448564454020469903977236048637450849425860435838940450184491813874877461867289589163356741037252375558945410563583791915077828013883773041812010436814571830973600942956390539801244924048521226351822118479976691431353626874593549612781268248692729709820340541871740420871168379025049600012613381626819113429238794896176869141202961789364424023586405804968523878044726464023501338255107013332251334420611683713563580822113966674346118030788262937576213799399510422750056297491959454439498465741038027758954487098456911757100767002386815720021351272280887665906895382706777855388424910875725572696900469484216043473785982405199133819267779190874505401276133419967684008203595662380667693115321855199373173109492773432240479001184820851456428025164089781242048327102174828605603315654811292835224227979336840567701003568540485738106822219052977447823661499619243612033482161791355440443045687644604742796282349434288677936117860224914504444559631900337256676197782559750007281344481076445678871061686841966926326787667554212695412507168078547826379054974763633385130925628198622557763252086779748473926775391194008315817750187361877068191661486724105369881799101457425116330400011051052054885534351671470569439950464209515855680379845278735856602802912990333708836721622052585088502143499571103269314787460271344991458434254375767313760579825077959974846106787750207045292526319814711244709787178553692817545683034804403929592039507728786275603803178841125193672698168150212966896859569439242440937846019697011379885800514413965715019010669183809144051567727290105547514827839597997633252456419762544839168938618419810028696462783110472243796352545360440444511971289343010814865227320284716016477290176170022706557424003139950757391876283898225684177057533339920656847760509150613470571812940384088728637430399633923461688704645544192678207653005679472216039323044628244372616392732905123935047418446421304092448270995525625060963190303414566544469047845890293501264059391107925643405039568526584401631516803172047773151071508796261413116302786887452205192807476792144135312135765481844816565829831175873768857821274399868528682547535689580188362219439317040341382198129827400751864540253226477670068121001539133551592448679018187616599675121414123312368467660531179533043712585158721725276115788030458659324552179339682233825501551430952580130829348957043914335474850621760117855438284536474621935104968537217893574310224478058345467383815254370013629106967199528732732221015319985814815875109545774963155886887334409145035386457535909655179384612998195994913842836730114908212267057393066400035078882095403418303131204078009608520387286909280123566744888083637913436921796864425828491062802148253314265473293384381312033853040048986325315826552556815807139053640376138731318862737468953288579657238241508154571524189265746140289505993980270987209691932762032074992409040095462392130780425622090170709680125729523564484784781333733991685786172945473347088909817864705161846082330003688296202908838345828421158166626285599032559756889092265211463758164227497657965274830851755323704179777912359429293857641800994072703859081401250822009411599161573205160150104637195530616899852164265023998610736617377526355373250747023879870993721135572520803822716526452745185181199796769218975564077165074646701970853981401641348818657433750420839370304431699670125639685397886083378436755077706854793395749165693750975301880987404739376153253402098908960072659717002803140634152858403220089068791094014018880979280942142563650754885515330709572575358436124592498362085865543267744791880630268007402396673946669258431616559573805520363134685343981501118761094330234969118437785863794169917179570595437089802821499489102249468773708280451008145060357151178376873582081220247541003452468494710352774904191290019489063928105534841773930530766094690954462333421401100923613455417177571182599105018634763416252228988640029248312310620825737859024875317649996283807790175731505542747291797135920003132218291067030233221435681371491054549945428732368652127283278943447777912179507739765004035950857816516591270090135613549227625055195093324692607454425353176434859370071245849757803440941976039596759240771576847269613672258651292356019673640918921126958792774076637942019617841511528207672116342391798373790864964303247866674216855538062336616961284850915949575853026566322087014628756652933953168724473780233583781081353484922336353872133713745737215703194477771875207533409357021823367065432303637607156012139778132215931404492474785549191113235258472411990254123469508367229402048598647564562756086595512791220615433294322398319096034685753140610072489794489215941688894080462554729782337287410761718937011166642655815406517855303090644265901655836864387971963739929614370751077314100591603745253092485501208709437230008979462220031918768722207937413481076701471779203754565569552572530599961235095045875965465678536871208916191513796644566274789680350955495371510643490382401214722349738795916965335095704483507287647955354670557426372592444890918137688252317759284214973558197149597413537656443306281390339890100920978294793693695337424008387552204746708694280163474395034549988051151544809464122178049481294669979079477669379117533423265799031924252212116831564427737627965357312154504063881678362994396972048451993652484629344159524988821481808510201880371467612702002466791458893558284358218578044228397956956570794815143202142144500213844367784204037715934822348651094056044993982745763275856579383512472270424561850798883596870018042481705441333381179419354332372525427454202973928303588557435535123693327176585251430727396729425609400822696600583688746123694565765265138165349574840255502365512799048585365551778962142786309644867931482152115972228818494718292936687545311938688446917167548376307593803929651285812139021936008600860169561300428082781218644584537956865054081039900337111424679529355337396768242820053703858372780490882551891857498989512252538274327825689041536845308489660665715192639355966458787964576135732257888615769883185161833069652543493526657264603336435014246789723022573872817458188604968584993991375659204417069012678953261873427280952675064008508824411181612578930492004892541909458405137665916366837739625096835057745158205256145379982569097979766401616244811520788499073823326979318677847194016399776505427126361219630871182019908545232384868593142459589627852989837786923037233405492202459278491640724990966870295621088129590469482723157484830738456005145543354137920805629843663244659641207603578085688713930465220969411860750991889946126853649188805576227533367231534302282190517756129666158990808665978747341705395761112059646873384169415475584932507130066663452685940945080805056509228619920035064735000144055655664225568325314940427015382952946405275564577507029254609271122010542385522062358374230011764881627687800152583368340158132269576064882073984311962206345836112051540527552787231568629881301512657507819544068294441783054217492837620916506267612198748077175648788383577167967545642257766456616736973902870825312596987588840433655362454483315920307412221409904470733518464318319360670989347323797388978190774141365103829626699974324593420663902157694266711255599282630641034118550294381996004570261712229573481326338883938253136568422332814772646633231016510984139746008068190714729192589218994924670908965887927253652988652257160431972807490699269500338561513303623997951850945167036128890646520850510363074312563883552432091040961532380441042210766255144374491488153931889284291445854200568704074440091491060257924550372891918769989144733751572119865786041733424465425803756989073056834179105585124422457728143169889674319300566293037526483265041352250463762122070982934431588663437766269016554238448359844557866717315924165445761417579427262417709098551656862330443743546857831289426610607916390657760037253153965609604862905035034694097662099091339895282243034175084987594786885964770511909893555111027975903401836809597808760798885466061319346898921178490579070498032646087087321614175405821238041247769303534651279473037416567852775235251874612970457131231229987047323416393414446535740317735406640220062166628205497423855604328064494419822377962919924266456130969493847828320533134097614951512306901864624057087805003056627382417305879159899925333837220094745607178039352960904117352751009932677516716679535376843595482027889491828959153829601335269874738201347788402036191335404319892393024586081332380539521073017517619664123874951956242563802341141855797385318644985421487189320888392404932074941922424251113615661714823920977966215381204486253452220355212976754877030121036631894868826480681879961986996943523991355538019702742728841482947848974723718617925154760694687880098000802799046549792326957461377723291058567775279185771004674270598779104292864952330791239821655296237832122500995600083197877955311387996984465682890256882639739200054822528291180903859095482716029804226435113339053468269978216470898993574361804949359240736140265951455562726136521500499949572523533335610594275868739481542630827637563990260894458319179564175488022944723123753909890064879569782670466423567133188666342119999967285306643178526609734276294980350141661340919517725493121473673737167616724585964910895416439687657981244364399582718823985781463087274332588159333789416659385585149731763490782257570306894056285230168774597618196003721788174241422765095307294879202933475165190072579241144454049507885788663055237533724629377614075482654524775628104771156149188531613259104707348309684144905191046194019900699823589419232486190763502950307155245491703505301646767107846612925711560043330677098542944736755534076543881381516125696585906575783295292035406534753757564656496281613554866767333504275629547533213968760684759977033993214767876763691484628562844942630309954608800374847639132739097558796640738821717376192259115789215797232734354856888435164409718677757227705907973983316336003009167402130006650122604957460833937300293000244133095194520296308659090005237227975846483178767054009602115242690593587595744504747148451113850638264994903894188871575116995738932664757491921711409810139156030333038582033984041764686519886832071183850878116329268631054683879070751663018229747633674241021159881473404901260244114975451803936516437507356713172403221191003623968642810090937178505674854523492613353776150297014766915037403732663709563590361859975840762352070234591102066944599023407558569710918085994889469853381748419049178523738236419662595461125883312672956491884407940309343882412546841953549000988181620051813814109705357578895897005309135183659949343565995354398527456734443556903089838909182157230840498360205709424708819493360840207664242621597858242452555755293964247005761203010471273235975870514893811939897050110309186174995788294268154005824555321116143943358925605546798324745988246036192474589844183398671391132984065172572635328879902341147071090491638442930681492106128738595470889327005213739315421117786443753279778446212037035243331114939644102238643527780248656113223632549117483220403853644226704032978322192012355444083926874521222456408344847399686104849348715781682423658901683428818003383827320464578561303366753339919920874909109301481181348928104608160071439883307198869946925552237157439820453242863321284280097365746115136815889837233110285723425456853156451098127686084041137461967367394604914548749737260308245211329565847889754941367058408470166220343572981243709969092437565182153471024211013037171803360634867557342132956517995669936042773327599785102108836514943962351752211900908981678061049352738119303642699730471811668515733627021399619423989063272089482740084616881648693092884289475730107386415016478801617289923586812356538064519108107928945494939104757902184119061913958083371316973143325219834600707628024467602884439022769685337665538487166032810551095877592277197701101836220521897799947320615022666960915689960391665300084749133350022681074822513985171743760992465851202463041719310065846728493460988083812535934714515043428895012177538567385750844677741051470426362463704686498561056149510390274779727913420357201219113492580284050760647967626041751571268286983919003734966799547142546483550649606045645053363913236078777971666415071692875938417097249721172557761977766423863295414548654317444086149405224612866342497533409687233406053682941212445146870826702274070219243928657454742656805654418424326292702795410443374025980812622880820272106601934034884589812940986704446738218943665015468401109310528161782178987958090594797278193318739260972122636838111964911038921594836265394151760811772254628185895641393820347217248546694782287837154456163069707525124879796881346854227374647184274466622831171601703007734107668795794658496255229383713026905456851348304443346792119020812532402877920057616037637089732378022184567643730531530468081690580007434958497039327399253951498616882696968163406408178533180157146189931199864325786535161776271522939615539064538305965752734839784660010693785502477269822562791467780525758210047414191872098434078313702666708019466176165271653938851394805694018348230109344994082103893930912579031948400439980261040713911486914319833132712877984485498008134488399339672188533363563208814390166208933137683527395428035745097346013855403490041699298663631545404395112392104056771490751348202994010666120718347135820487709826278917695711133261691657371438709474662384619054724227715800375742166794502512885769460644997282323540966216291964654642675256884268295569413868312445353864145906161148533069480337446041041299780541213238952918061215543180329330769441329394609355796099566951534744688438401986824338647095528160697193186811613059835478106055679410591212126509058534199894915042893292147756110488377662605441056184433942535361980823656614718959140208485994237850362414040373438806385367621850910322115299074487714159981959368787890093287925255011791897481536689254227742481601027708357178539351339942582559507126228885490585979950978402509665270093562858924049215100414290371925510192777692449642240314393456510851435791071386571596916996848392301118918251702100281283526667229253309253077469644143054050396937961974531602414107831251942509405652270425495182376373687494427212800169013182573381435433633055097471305924880273957938762470902189136551659597667177320837840366072292468359786375508008826174653558947990394032187702820829151656062400515515825769454447262556033712735116158495628504848575603266727705713185133596634781565886247913156457405868008297647463345158854196926951985877963653284153137426420015751169099528387025162641285844493602360031806616544967739391113770456188022788031591123650888481403419054132536311049980397293480374740110906203577609572750882251706434133056324835538784840719838347279322550275480664525073808971305961484748557243817511274898167416865216623808375680789637553672120559956751510610119001205016445952584722817833351930377307930403426764796615122985593063296830167888303362845468448528235985832775291872511762163404484992370193888686106918881334105577774281973514863292357916150811172097422510220929897524065195733870538994542408412390009093922470298035379248350339404517542340641271683397986761026074383665835816519721309319093402262279162050003444109476233112328436973657085623715812571645519576013309692067472859797772778515827433674689081375284870900681647952688621287936888047456825719109013066607210818779843257938675154211639762197042699561535616639721564455078112004349644919833209394092619086890861947042878935159147840510499890362491368563762578978054794047069889684491934585285280826100635787178953507027897200296389502290277332537738187979218777148033091947473160247479324881056521311644648189719045127720195357765709283528128499032194494215379066152294357334292408608637674494809950965438040570247502107912575447932761709453336619186971924580022207457239492301879940608371510255193325655446875429511793374389512304050008303459124960085022712105028804507494659009706705795883953020163547634911330033096576836119351139110486795771593978573241094072538501108490011753272426896550713276603289613301948485849043795765074901423257649540125278647425873678375920425703525147906520078757721235147795780293670837224016116894280534642215996362673668698832296574769137008170247066358242950878474159367166230868973147781439149148307545134295062965694251772523841929971253276295047560241602632060450143840055838709162477493257977012289267777136636153728608032120990307075025214049187114532286847245074847300054301105642252226048118115103322107435582951502194031785935017157663382121132603224791616933661053092461602082338603345451654338947578750374030399868588942518924913934115252912536419637387359097481099300296308412358081024419461162460091304501497453544261359727790354552560683198719223020722179171573977349247535604843503555695189448823121567014879122763218901769179329747191223383082135446983756639013283825254353185557185531443877379137881457821370491023787069231404582199803846308927948780416060660358684605852106109653234391365658870112053277438161591473623485873090341386432848917396144202066235028260142000644451543301365979488257538084605656028567940043542712258943806701891038089710307558264041775755863235082373342719968384966359285945535342644845752405628506386434457638577908713969317975014752557873013549990851356801516402886743238671607381798218558478354518721688824490593778106796797727940273731872444478459332498604579297516690418550641452288124943575049873740119060166458915659678227825900210611890103100834435577424466726346590118547696110563130979491692864874999149602170336051207647549850124174520525313720416210576144337677317781798401966124404801624340799040472667997878581901907506954327982234068551442690290806989179428905839652743471814611331206317354084706617885253407234503484134299927387030756018222499458468221620365802387103137483066568334559132223609019421843473412179721694141391764564417764917693609026747797738185665499152203172572586738683548069824771778842223854583311601561587301602187799282193965787077224228753586955387123543760219436818009106206674264193320277364732538440595764646338458379403421476093930315446937501006011508547282032208538639129762236407443637503893330732134458965763465046632323301545795417522071148686748726003480954235468906157424061095583809159960010012076146058988708356045639296616343919006941498673766585128353794017889139112072205050741796042620782985644815182702102987579245444731655308036671442943648334435728509616461568461729391562774580063134386283661104969817368614326472883259172033196484103109767955658725711412821739339938774138357839086997229936957220333545081018758279687461725834463874323425218375413764627977690988286381362004474017150333053061331855283328968492194496694089800748823284716476776275777339372516587805928956458684805852806110327485166275428595674752296318569717296747537134462074387392506094122838207953574288548318667948365987497252815663982662334382749529663222644756392850415649570230135697577302141492879888821299579454496565854600062069158482047816282581089153024973602449821955921425260826425835249955703383210575095322421699488667635051557161239927161958351419497955102691733877854348154075225399089433547429509546057670015169725967312996680447820009729083956824956454654611737378530319758452623790409497963757373471753402864880310301453347759262854428624223642956324860575395054294402311894301980714135199836109862316307236829542554862607455018183161037301396546844675864306219057178151881689147992417401964378799767026765759125467392132358426831270023994791144737625362220136114449796273868562608176403193668007006717243880031445556696270522542430109573111168426632608745639320992856486221973120078344041906177196546169397907664683679025555154409750514448592384156196959107238555183045559587811410316661815151468284309939533351478470760721656662689037380048457005666982998258951681988759227644756927265773749573499186454470419074311313359959761293133384410856231732896202785920638162644211800043611154698936754594621034305466839459473727593169493864846489678147643479414035998552652800783051800463739298508869662109380037922534952213627900659015776285511505407347661101781762537814616198885852198645028254144630824591357104915133621137148307794227960304107337167551489535853559562337324610633315189519723447441709617983284115920782012835343977882794096957054800507084980504034632899199488701332496331476888640796533047423980262667136753497727647886669815411757581189364604875152284357082103220057518049408911533658988789074144356521152987028533037923702944564874893048620086503598561718943988808006067387106720226055673507254771808197058849843647654890966659693126237690526621132984749069351562171304338006916102438325395781229748530907525586065270117593227724291370710235274614157859856808668110613020138685482859038387065885224186245084502106192195312933593808979442549377284248468425896735885150101824795946271553078275103741433828809105955554469841633370147489960948335841675382129134957193521114719431833435039022743528235839703631725957509771781935092007856163956027578282886779754992099303764199830452802661262943224547584157537529526190880848983642613963553362782868113684375086296755648554802832838644848205156699172033790996734872142791891221674635813098624933955324308915043837738460702104616980949877381377976308377027081691079709753979131111355767796326617441689542765277334331451618383315097816871234809488908462187463683341416255598303683672467827262225010827123144002609044940370370902452794043512519947793428043888459204244841719196647436671636591086233190856143961711631192839821191009951204267899392291201021469410254825791749897815668974025421359780880554749972994636375418922472522372203463537821192604454900570904819672579592777570688294074562367948927363232662422437176946127609980722652121949718328396407182759177536483039932313504232025406080501081448473788755856084221952744685700822346150626441210235746666313452158567260858516039002768867560461490245760423268252253783582204307654944984804264658174968035252300531943410550596228292343581813824918499891149919997702242610792590501076766714983664269197122617114715889571291486352890512392970168286462562713031728704687322959740418530987969753862688409154251751126067114565467355963375403290323953870306643898041325220238009908367150975880888039136350059370711155773046368940035502875134321167145106182700543316129021365363936421178982356244456134782521734441268848966870266450225684073667089904812433178894718151793962104715831193035055840459122363712018853045658928109550414481369156184640383843594841993827741969899423705850030328097644053184596907069640256627568025585150267854691228926772660179421040922168517645007144579126210110986535464767948442374074087747935582907845214253111746437679859727007200803140386699218002221886935941743793833408732372601405945390604552526352135219013134295223874761260531780536196946251503158448259140416401173894585517467952751137754962514922502840742154803195753246746512316466425148623611878686722347349771092745156380176235664351810438264238603746061932874226451120833781391379895949219461402581764988605156221853743707519901362155327391687252461187579731275491170867301393217425403143545036889888381877906435381899729038819084197595989051521561524746785363245911735390062373123487087862196893108722011964227677403771641780899557768541282393519030830207075149259338834509519392688397104389556351702317201311010143466439208693746527378192966641068982596246453341311116412172327778683236609465416694214728244693593066158932315819632940681386401386877386164843325759850131711626784751042251574161965566676275944688490441016405289937427854586905229049114009335095848260986279203669129741203767702041761221287632971583046686042456016758501221597672969354507020801737454307311854438735460726324252403614497202123763548036822940803045125709770617666109862001628561282531668858495665877439526983846899358887719590248663887523104141420084757975025383455383838962552475824528808020638538024178279947120232998694576637634159130625471630600524152135962585625666744072107523954439806409521934718270613386053322461372510397906520806905173926330286327802497889513239539554722940016125725350297140819576631994645298210791957203850020146074363912277592255949290455481431180932846406029165980670065896139456334233450016593517999789616797696702945482796497782588424516078607056549487110685465126487068669522391734301069209795945525616033116994766259753633840048733200227319738543789605187912027928435147235413230323408654781779473055720845906915715428195059726257673797326748690037755343776832167194253793429086868178232134182802373415316369586293132015793754321365100367992382226865588975768026735500881066914504446116943362777441667954981870279492492473368858142886559466720974203147774075461657352891763618912925518269944692387115579957813986423493431712341585901662737319015028997437473998226111969087398639612391484315489002760790696766994163961247304317934752052335897356800899355886069527369228273369357418464563177815064403088628883376625953417240935020806284505818480643441389681858037432772677798583685287147451458739971252320865536684132081106306393360151140803686985813204794208073730172079824364702128304286089815198118844238699578483530867878077039458207990834309521903818521835580926068147914085516369904321276584045258426005936751613877389044223441550855662383503197021893949451516516675730264587479654754826897837910459327922075128835066336175172744462180243745946675732837032656555748606432385919776664177404775464950312468566723413810249787155414817467447079146912440704769550619866408480416980157156582831986479705441266978028529329013070262425927857678524137036998506202546461747111907192102021182109093031662145705789830865639097791334602723856101716439665097505104471286308036190344662914497963558964161912439808490616847222905651091442241988045739564222277388089042583293181387184330567494824005679209097774673240710384325568453414587635371570846970185167123287923843733391570624149106185853848000385995187114714000177076187500261612985656155173612868803966917150797534961023132358197598582364958633264453540137253391711209202678814707563246845270400863767780509630822323720139655990040899160011515385236058539120121449123744935166892157747584531368658149136395602016694383420063394313004049051689825046405091301623416423983416863259649872973456139172209236556205444171656257768821039966107847858196989697194327562522958162501551129966472106566183412386503188298714387818516466581872077246261793187254270322899215098690641790676988370325787758950662737579717543301062714263518893653909869104973114913519510703556004568881904246229340835724472841458813982535907798491891121682021817860940373291849681690955566585935957942511005196352944636152296880013663309144406977704154330913618035391663776762361716008862711432527842808699924610165776667276961899175715503715368578346191162736492799855072599348700775733660086573375062087289785656112627787609059829890161710241115434061087262166680499679323929774904764189862564676736752209164946767598129480255478282811555999131125482398443359607249960849383618149981177579893541309864669648539896632629638039745977802625984980309486065654953154580305085841306930917131728100328378639074200693791755258346155583923291524980580044397942333411253096216075493584306542773421931474854337135202167831601368347291541855713427288400835185167160572248688803788201289502729257057309754688587995032950276548046631032436253343583299038758543472488377930784129900353844676146261299500767636069088119215343818984098816933171105069923981826629587228936394936290768806804884713829762532260144065091959907734015804631936262029207622258838899510213771082502275049025402089651743496252066276274918759506866383809029715948863584598954228675126352757344891861907472424098588768530452953371597796326915066997938943455076657463801727537321320482986464367546919395288426909217528501111411120356064165238841765028186548345250930268535237222326535807183499328986131091136000598895892340731921131479198003958614136030010746422336997378262548030714784122409796882564983507958910574538988897907994973909603300788129505164315036073356192025772954287212447674809956434160994134682092582376676664783255719029933830023450285686000277143958621054733457415670286094426144271088181715353900169169344846520337002247002813176830358023234367162659944422963694946556936178265036082895149613324542486948681392600686320498644529497293890235599064990444983517202483915829194796729440329685235318803176074153114996481535322721438277571203529036003042925062295269523257169856648732208087336068407532222712697465920209594482407302954692300583820479319505647263145401448543685963659795892310424009180676768525816319150712160592773883051166715668153796021759294101842043076011987985571615452535115516225928048962148476857760344681273888120641057226218533139117070489428478062999661364645127367218165377614640384905315685296460345960657006016069886222477912359384451099269816222762458320502686196411997719700150926181593346282449530464101390619023155079305839045376304942493492743296883207445901495792858954988304956762183874709531209485802253430207758909542610782692171292948488427150435764953933598303736700144701291670213158478130218005687515302075416902895516113983241592926550643784286477327798263955090105294044370142777980718965731826995081963936528418721116590957455890994458811202396014856628379992806153394805989615666670897575807770819827824953391827006903262921815915706255480365428515274597374200708823058062526738844675107266360664836321707615827695455226013896915181405868669207120059285536635060317101149529470116269793974255321365487548258613130075190443079836214166124310919087739092357880323722892956463013845611202628060153291379405734731960660985530274172698742062878267052848894081006794202345167346525196673452248318389607552574656865027568384278862106880135643956225156220116870874634593206744110303288009561215633256514764000267619192488810061623139880877713383992537098886304339218538373412822041406485144842359285845850855227503335251931477498838024096840830980416426595252790965080080453219572240766802174686514759126317201548410028815757268440403909206361645510979475527971685657951700556936640467952047034904610787346719302947513423115719430531766648193372576492611653962399450744660532162933120823581905193055872980192785936810862849600887613764657897748639991776838699230583701306681845180437490579098026806713532093161117223160134627547981749945198498620787254433346841210791450184320952745266877644539806680866071308769947897035638501882913263548846279121683820332740494728265042027254493806873863523204299546589037702121031968000692072595060228583113736510081809764161832202423341147129344123131036236108932326893367665328229787412198137328956809958549491382152799501959277302664626696279524889955741268317584529286048631465953052274803678745027671186135624988590824446044659089318183955930363108158043398370874429719378046542052866322195019069788034805912251072653650086020931986794655640042330074413086963988005404581403822349394706149879996408666582373700521968553826220029090439602660376147385956042305351996756545170086301826023060719050645404054572414165239020668469450768356235307874338590234554064796652883029455597522738839913919235752178022322663855922020001700509787614121693367044327297575010155379559607027805589226574734052436375682644784055438402912277066774179549319865706675627931328343457177438603032036724431551222853459679671158820055627048709145931094607073959967372378833954382073514081783338416864056273658504982389921509881785161248361184525596036255629817606469548994087675705483073624794192305801691845571031753668520711864878735991384648398015400293001633362045418305506372293660494886877731262783500037065002223720743490933532490715407010139002162086526758576887631402701477397592772563112907580914918740126367949116207885492216070509845071538978557451866931440915751816171939957309240096866682164999543531473708320058704630323927955086819944414078995853284023232243289486602646205485144412040050986354890398169452257724874871109583258847726507090162114866038683529219224072343607754322396621020239621835257406046200649754090037821347632523739526515435964433839188816858762743717280269110080200463102019994206135222001551274323120367016889132035852300594835280756371233201922697957954842825733791132324441684124940715262457797242117192218446503939631314413557258469225433538927041877171445724447480439545077905678948237461153750235777874569371295266610340760700737655152490462822168877160071900387453740765305621506593877354949933406004624552612424892673844728434250668600201808686259493145455411117957217422222594820427613427882808158746799929085328951766972435364267906766465025846304052411639223372959702148777769035643093193216063226496948018485560712597024177371048283607992058931616762360932115272333589777200914974929801851737270517970160461503703859543713374874272832384797482384370753007167086575905299470136585703481855357558861963850806163123904598824130915033357805897385770861585432370323859360709414689196121635472543790481514992726091323071153281800080515171157894899650930419169122485409254512381293112814442075370479975654796273055327129372712675517803797648387280644288881952410914869683442650415485035624831766044571113495164101764242236211102652361818397321363266816110704371900658421507882399438489935758561004849304229575292078049072520498203098864453615528940263740904029953783295798122695531608434587576962701939957587218007564551483741657835281054176876205560827500412781867882423662274057355715519612561142627597391219757783267456816681888966898656060475695935162039381631126798204644010653345893808181602576149586241709405854498873914063786792272987075439211543463640492759496771207550093042679889330796537359389747713395363441885718359425572875221199199963529949586156220967387853995319475306686939932919336202179892523970464210778675490221218470480849411894691421241847322731221568948180706031788261985823199023909748112767805650280637709736633621872990630085917804758380963082687197700187322576111531803454566093558389971404201879023336356649653007653605839798054373027447770715233538632170867045176508372271898498512959366020217365185499674841375646938191498299639845019770782564275226642232819247533294852805303952998009884483490507831461015817469623003148889801972245546677934129186497501424222828087580366762142343268334473628008299943664931375121555079714259958028703493143884244367363044074935235953597362798562841495294669001971823932161916180797136071096240273349060887321214902566193697193046956852514310901877588856416594697517519362347077412227515553166265702310449837205494125428078382264707888400276805084378530702400471741821512454018667102754544819533824924117617570458093160939806330773381947725526014327569797523165550667782305663021508045426204423601238144960220373469720169625985595492678298563800539593525882684734344410875156577281110750152734029287350911652512381805588125482975518148478320096473347438060181743512987588882585924832551104872767788565212969947620908058029306969617645561572151958892641278601836007768031346253150074715311014098065702142131295884977748292248640046812636483396039135963138864423731231592451651732176386486416492227695415915199557446824993124115206464454001210642076210701625464366076890205178358084077833445524055693577706494395049739725745477513931086021386680556976803622866651701285595656093213045775528489365622974487223760016403482642375581351489546486872751233368134998419498664910731275247152308970119672563513819220158048253851560588620974049238361083356628895868330496878461343492579418049346957542795956962755419746195706573252669623104601498139579833164862613231452373463117350649078008386862803530169707139748768815223503510314447792628724886086115886826486322622699695697901140822883476975307768828030594265298762544827557334502752637550224868961467137006675092031596884382369945790799794793301042534083392669311793980110588787017933720498391403336696163934533368620416235671034431087991261375452655891543939358281528842484366380375219102287020577022998645642427125875275975112272331881543503930457359333837342943104600826920542529304373831096793643692837437782337467288039341745160485160702975807594504505841564781050194941491478738896218976789374179779722369801977428198272648516250662327027403335958450232723572339625753547767580493914853476096291960067656642785423528805220322353921100653235032461968422710621941975681690903607060225469360432640637287017556163670124532729519870235343462737430039145681298257610483433872502414784631800160105418695914276919427419611538323640222617983189656888943582130112221245505896659517865508120487516531115110923025557349017102576020192306033545370529934641770955570503433360153635277746814013609814232175416483687644017903374945634063567894101670631749896217771663040341733491529533002491820484384693567019073843045192535097440596498430062026196891060119706885032856143857173869016795876294654055031233634245425193722563200845599766642549832026749927052756484829209585016084093588262245805244589271833927694627220844679987106384738775932663342524040600470367503756844999023845943870208640667805650277124955723554975394336697865622258237841662328385706546328799763294624788702094889825172232674880583124988724798739046397020630717821758336184983392141677907819620128860066739455294042528048468505770827635425085414449875431492568017215908798123967130916001075233496358591040518830274555596799397584937990574334988234700237324118672907528105611301778151432628424548102392435480059495469490775172542893011894885289263205873574816584255744049225308791560821735535361454039903236178122870714349003791865160915922209314860833261064214132466660278716233778900788511743695940221949228834914560688734553683465671816663123285966987551678371385077641537683704982470840604209936390981180497859570349252687176609198723640074492688850802917448819736364915957020198444207415526098451378556167950698591135495571304339348566990126531073178624847389904840461391815989320188598461352433650979430521924750299321835697515739916396276601359986072212670731510152294396002601095503009776977615336800895260644901691816468179717750251464470681546795450457437620066034461851175696887578891430370270173607787913947348084221882156899139069851222127401181254211081085321301063849442319230953031061897101327792576300868686112333070199229032306292026743467014317978019835851977602190842707672161121417735230668667770280796781941391713853531130272986157769873538805366814920762268987959331619609073363768196730674231644113040265010953958907770563840629481403642456137175269323503154401123509376582320864624098526780114534170906343085462489434633625331029962284230613821899448371041460372777855922413632927345312160271024897728573177854345546827926079406522122480029069763037958091154155229680723381420912431707670981645570838120051042113211286127055568866374765945301843766039819293266469605928880868797321498735906103389123849653159256893906761943645839852752232305190452669636102282566696062854775788211642085157456913184026510164166874901519528604698293464082959337685354745934013331915973317221879940866387317984338921135816637726878299981877528430982481308352367604813296191292622680681762592032701689117049688015234399985129792171890027107166943275858089204038038662262059638761884714658331928384396286678574686565855694415960840104397635493655859318877331077538605984555653360713171364771220670578312841177737322842151905167863592484442397734625122658855477517809272089875166350929754962365356348960765978199891508607614569795275894275089039818010805985691435726448845803113741495380637684088316285126221456857177900183447510180435382334260764340079148826667125340117989444441471759456908430612398287421750855936878181236916882210868455969812311471753132646086976977042860015425442545544358070259268403188788932296523791004006304168615424956088603157672427044967336929878718074017218287688863173927891198018329453858960532141939436796294839631531902585934463207171729394354753525435264138403263272888965284400236873893009815796985930238292456331679544333282062567049515390379612944978082712998134208794770868606824489554289654161925821957387021291422679118882901130315639657626505269465806511595682067011396123247581323466179415522089746567937246425943652033405904613312370574552748057660209450240718807815214646973863267110238986631652754641007312250744028562720405971640279872047684676935643243338394591656709753900645276852036794175640528357680636397551281815763502627399990834110492001907650999531388490790083599996324522935631812622598904693042900825570056374096594723944646739770615088210010736096773226770999934477407080642525318406959813043381906207676231502686103811595976662974471382690948826241169708884611488545089907127227934813987431088184252347395305316211779238091223370053860162693024505146899676611573916541617651553835934098345102431241444516721243330022510452343797511680245663578779058548336380731215460733585579171668282949678320077152483376792065619885657272640423413507465969984530686843578236487079285746461031275677178604233430983477699947026581105680707055516588273444841777356294445377493852170754510598743182580141070928225979035310726574967451754706106861278132478683128994815945213758382569124955180072072726809651735928844568195920154017678404475770492087018411751548573833772106758922020135008105877278427994887549894297909782069027703052430757732011160096333235280995969875488333768581244441420672298156005229641403531627465973429089134527074401202113901269570877961649374880907010458395901066453232159538023525791831746081803052602940291769314074989198992342816037383207454972228729240480538523296545306870541325089520524501350854845005407340097144812150822073660242607538375351402333602793552117329591213550127469164421920652683826419585067372798478535760628297869549332380654956602668189677586396530933953335196475770502818968565130094589675533945410312978211655246018117128509507937629529565994762949253728114364264080469284123601620068796225531120676132344059658672957247204061606177712449037655971942559454577468420189832821655418290702542301805455817907929974448219468607884429780457957999191038295155474400070206757524559065551190255802609549578064403970620984800237600549859386245439909208664488762171798193249165276989286104022358810958614681146967116772601514984797892498707379481369488307952400975571922800919206556903002921420210827233839708013234123823213984740512455627900606329015430556805400447016926143557127079610950815051708438348216595575022043548833467052032205490449298948385749324711702677077371555982304226254361932534590284762931252695270833060006673160172082707249151666439443002735867299376426113109690941393273086507329683665421589953965715447941359553176845715771517039987497140604295105572398443749367670063515270561503205374362082739692308531662413517636132151065331268535860106767530395500684762681494420413700822664733408445406368562870429005227519807402219582147655494659780710866392126398085610099452664924840312530138757166907434837988807958076043896200306084894559037137504778633578611716583497259486624078911683737395430993089408293203750702670908418152355062933529681270767519914609360043171115035605063592973784265730052688912166611834711805941143244314641475739331348195818916371707710600288157999463321369646806159213930514054451702605908895899163841763217189374352615690416605224510300155856688868815090130117143114898366650971568436112931741129061012360968279695548802497249179091050081127541150827312763363588034074920893282350870168619989796524274117085300223267346868045088586585745959502138536816754947063698566178532063080154852236853098867511106556189028550552742967891176140599389014550493900976389025685598265042196124935073238507074091116585045860356177445482353324555712828723539872266940939438003528790930474904358516941641879109541768068855668930304442256656364269195451473506388267578806307167793017487974821027064879026395015763314997051748946430077011336244908011965366791397775619513485272621484782116360113845443906889451684576934707807622907869151649543909894001577676785989991869178388877239835093783922272112492696603496222160484586143268492925586526638209572964808530624381787887651390866447392275504392252556823663520084621138185996429171392366008887050206409965143474653985253102241472082720674415987199459649487012304166034151095830209302770441444056936439064129282427214927028272372927354572886394970968766284666456073452098972456667599334534024282236993395235525401750666357768057235039207301572734502893750702022003137927949957966744166699255701757795328623340264389206741616829098997749649626974870529836806210177680698146046656580087297715249115359291493014032423875228445142214052778817106653116091260858854240707242389770855983773548648990004865960097631077992072600020608267184030149950581945127530356257060032895316186151147108611815741387149953698317082030125149546178456837192703040967983082681073535315130712139278663417586592080871946855797712662739882602902845260551010338520964200942761793924838701886628238723711749204998289706057144515385687075428961840731397232965291202466353056218881537802469335904028180715753507867087918822231831978384601420246014003248956455034231546103326048943901617360569567541760538109755891249359099493806471849368818654940126107979509166422111105788499612239182568566453248996199029729674842342173223718772708304109462364223733821896639188199663662468534955136101805080053741240274412560150646581076176647381972595875046750809847999900937279536098571220042257659495746055520851315656856148440082127193858001911963252746936769137501271080664371899537838442021111547606015475371724551749063004915657327816370844668761354400391231723429001776244570291548285165265184872201956671839714981835458384329587136498179378870653455908096045807577594180066926405524404414214912424698123815705126983516573090862101447482180447045523058103828965209799762641574236002088152199788507647582163981483455343300792007977221068251620583281534211013553247572438919769042267114177431403462343987571190951125011490515431403635051789601323647216666497632180052706375567548007067276581589198084281210608644097379226004915697510966069442220476153107553186980967104152901164902247088764098606167461248523313147129387478817823130438570284066569407233237052701674817366735773826898802458316752946184466771723201787719285062468190611840297660438090090175881623592540686907816658488429085531514848799629582756723512984218614502954299875151881359755207580694355773430824032408548534307333281899116826638880017745224476552599664777010236070309444882481625214989475186305662567718721548664862918656674125108739130733868856887732040495132093707776635666815392822024013335581415707889708842785814433939111151824466556723060537301228284439441631037673664163787833251251188846874256409160939900566397947468004647949971987919263861584560053109433183627986703629263804334951253633541177881436639570944738990336657163543603472413699630622276061501705384610277089303986050073636107203656726238781217817430667346768762834696949254063548330433558334920546857881300307132414915151032223023751461694735860036575657576865895861060227403010905378247484285313165805063751530193529534437931572757448820208823055773745359635140638889521137455133462335157424916359115301517182771261607272367898595568483665798965152626342518435124428463806486945197783203254123918500861325281151303965715021033119409733209831450715268658458106007985340693912897650917739660927004872849986298742156777519126256815519217420393464266203576406651962537563942106931248416457952179376711748418601729224022733430687013007019857708526506294911922608699781156814270313804083258121305658721396678276734400526690912895392987045551847528290414950310061217555712909248224455566792047068996311676388878221101023812104459656498233093792274561192172646948000606963608092221093082371683624420106442684841740349281762506602381199065621658201167048114244567455023117203800582400438097372576481075115513511055613305980425717782744869692190657251747412912727205012037886317107734492769466743472014018377932968936599128274594274378847642218325445025665487529024355253405115834045272380352376229603413325005910981942815239711717088071178616114755195663550261827448007812433456346092596140961289739207791201570248822175092599911946239011253233716120038277265092426224409850576757468163379576575675977802409109878791862218658974348308927001167099931567901976521304762127446300527423702827271364942880353984788811431473359264624471748152776391606275611189671052221800390525064142432609579616297698389004530251181970890333265953433650233574285885173994648754483744122943723886843206541086225582626454681962818965498502595397320840894824084732759967992536363841334654357250772342159155355752938666546172721873777107266796549551241329695848206055257818588353019754783829006893607830682170711544484940072357525377939379981300510896627012003675061220248959369260693556321393833779464893410021258111791755201280786797843292328810991806515213241110695890577122507697134642529751681777565108721643882420605691194720032196301915733886879440671105551776973029647858165729308664898525601545334820922835759063999752522228326495758508520714136181838293605683506009266414038233744406142669142376675986604140859843468192489008338082796154326453594804407255118065740824166788282311450768181855115014441609162288302216807537887024593002372211147946082414999103181446011062560509379807873761076648573497696881730617760911574915766830470687697372424341226531629849376423068014553191279566480827338639872326509452844302315540568721176238729943205378108659127731894057971335143484880253924992686333363520954981378282779696525662670585422970379450435794536821795629560970753477356853538926456325107449950316023909326592799167245488596414959720089150184535552823403407500478152525130860838196175561316573368437086120301631210063246320741757821320447276110531729390576280686016409947412121615106569321017637409518592896138717658126006326241074687669024702359030025038807935201597270846494065418907133286993551593590625200834220281890966647311852749727681652829627881818176583386190334882975183879897732129417915886106471701540219432228983659722997853722928780827663379519546635445954590676108160248128130050299799802639518119345852003753319875684696468372327388513574214946936945514744024040692564936473911507694975850436889340467969714936400470803323960953470323788053493866574967043398198593643110784612029718866334257064988448259559764922997670818328008781494125450520945725526228324771306725017482886653847785530438279021394308929200157365616352756804472221521909236484580844966208913089961642352937305304236081671249212171298025938845754920109346226754047214615542417715891364599548589179632991083767712519700758812787380473426844392741506285402468146157498048897764999387869429711322013207801130289252231280015437864065058213775532417343909033872239299698127885773976313433634708680042458040976486061427192109403553137478538459632011725726263426202127458192628044610741889137400019180469224644543915250247140318683076387872637269977594776732761885899080987576762989115643484461475329983311689224685503056366982770346251460039071836008462939040697505202411420150307080098055069649408221342357757186855446061968207104541126823215391791034107052456941867968308731924901282658246393168138015304739317307725498080887849804258075803580163044343574172867186596559281703695524158124185851975510064055442135513045257963713360695006322691978188331775206470062975082803298737671102928126721919423393438444601636166760816361500055138610804415534037164670102296678826975821407815278374728371029765564462890555626965569400349142248910940578284786466148728569345024027893568609761083444636979288014192037451386666180747484801230022688980247115175120908161981350226056270330087976429286621082223601136242708187254676903292862145075113031472304552595616505933498796833413613920142352583193250126092551669727366962491570985510473313866227787991652843811490494012601241051237304876747816101979585679271116270518445922286936598128571254167950248268880895583549463782477780173251825472015944213179768862716655287167798819867419352315469820662905784503510640423675643448710139676490938674749061923598682530642897034231361323643880657449755734370117312729910257949480057841502915027825027931809119511454505608879988907314803845346471793529105338061810307947203490398161102941230960578288224028311222802058003551079297825830066462951428774280080453415143344736987919264777721473522636150903857719925592078808105342149407365929070959138136481324905201623532078344125575695273767336408049839465936920702903656623555327305576744946398402217663596838940873260392133828308771148936595347886176603532021066672219649490827003836659691672769175578844559898614378378783408742915207489855660618795066109421069943710837952901546955496971058776675937304456493080776286558702800410189480269524666101954779454314879100558169490401535139913627914409636512982098342635339699876250671410393534145456257098168236011084326946419720906187718544161686676087112522945588538662903694300579088703446460533416910790811778902266026908337416071711146682545348889009418294922652504792126062894912856110217908505598248775499318788246276065147768910189273901313591997330058360475076671899492270548127785472114080414171984014123361754252992240627996441498229600691805636121610259886685400109304779059799452715725346558096308085678522680564906010633073918712269721692441403181131594560078923329040550711996337432742211970756307314822421988002107477777026091400653359535415155688598620961847514807090877983889943481149819635317342432677217915252716730106936584146909794258674708409136851583867715426903301009955391745015585235975371082310617656583558609013463067162443809621183605184195097947773270853296070440799828473772601438140608436782543383791974253166006526079006319279816285098597490766850766309428119018550304419161152122967592269887696717756761954268441028553629121091390255836618250293739427041459781914065605857573468511618413535233107454309886378117666107548591426968367885083308248756318323287857636206735601245158631444838166427906299630771487327411179544945298559520628222744198442445681812565971584261099234072732929575100351208480950812629003682869608667436758309414080379615982619439174390487356890391492716821037445264718993785405301710738690042234946091575639062434368203327215193480139240784548409663832091465475796609295402315442462574166824623710812167128236981735819922182673269033391368515525196873843689068768481625527976168875379944966144241972992430191781477179889393600815783416860178493833099058677454052977723835678615949290121234441074933741611803256677653716819329289650721601325350959023742652350798443048887220260590407803747282758584088631037274580870821060559768287111727089295288873983673594778391430374172079916966610498203580834858278694501878869582209889393661441006452642849601994868263321608348902560109048634310166240798058040555638163954128819543478729858069539481246519406732182545407203451452648878771568250830639197865031328090344579744570634456604372754323143473824748512525039732534560204148048301338754950857298541780507133020769952053952473972772570954449757050290638320002336122491169946620431916242146088531728097113525101650550139317713298926397780565388063161730004159449106658710642916447965995304922520602210887122348461514140198198767770332167840545846540304124548595150423203053869705115385407130670373410095726969805578186753512783421702802687930683264960109430086147997948516711430396468694607719603481892101099237978841897188587349836377112026194077786533972236161059344042309528942766355887066142359945552401904489825479605019278298975125534246107181600524811836723415019652727739339626442439395649512005766705465211735206183416195874829342479772054330495621991881329415391276598791828091730845511549804635016933851491096333811056737875303636546566204581389956527088137005013150055079512151052197698312309477187792207714069856909092472523009535040998878535581342348468035464354839365425335078756178277068550502855748883919251751357464340108941646222958996658665610030045498708713857787797173512769961859345776790375782156351577759861614911055912720853315358307470567209269787750030108891408107331492607968908900878275247858718919801534263185251446666821600153753739379324246007983838074721668484214684318374678598117442289734367856219839739765927724756879679554527722986838991696866788749140595727832405885092713041024944519523085803286188642753065765708542886921651614060456209909442188257301671524972683881216541731409132575425920242351017191539062295130872803029215438291463862683984857098457488485003351334124454168661438898135816313437089442306019465632377327383779650452909600382678097741008963766559008587096471130782794987232600333612519156779742694970668063332541843964281434595500542540568138578735958562239574681208022759606450111711968360331608627911217473437498941961206442605858007867588829782453636676024211653439582165934517540904724219649077245129879725207358532856989801534579675157216589211786110446504462554744777734415715091201660042763636158315240687632456306255463005602457640211568715321270558023753514244537874560764429902941569711823999692702702370986773556147011013951998611628267018082617971632577788781331669084886171747252327819880458955229220775416650339587382980255177314591067120789988501087285973406044450391541420952828781113768594377731567189348932953585337840489938169947301628668327173025622886865393476532211744673793018290431314741257545484388685767433285453278993341737392489835021866103569228639976212122810968755640870034382969104676248370620662833648678561187958938303616350015473060484796713271676319873950174115506439331812430152137224144184837200185358347731764032302535402703896705500495663187758169051812669635136642702354064971574426992410142400483459832225126456020347305949936934300795461637119459093528687777226867885743555632725320286416068666990928240803930239706658617478596243609946232661234946419490604636747648266952862511901136537056018817105906135098831415818976239699889699978680966898682987659030579366024304896346259204870043079197379643368350703142299240373068181612398864182826328917236597419138202136372546045227536180380112731057680453243576617524910366549046770736390355117210488044435450414596814373877106404684314743761973528340976870963397412440353776100175724246835907501070781027736556896578926662860230397198379436383249240220997410479694829031815095645787125287251683075285942691427956899761265538304554139179110345531553635102168643707670392039675512275155782220276394038928569307467678803859432757355680244666882058559047370401918735686997147025409929064532087325556838909708097502820853655277396961625433137643644312523433106063437364553404156994297916674639978548454634503597876366481095030226893933029348738014989219148341782345494622083778839252235745211878204826891259283273258609161406615164825345653295759858141216566537785063125109754700420070757062158680407581399035910606860327036511848951338960998592334021261202016339907416348476597935944329728457955675769792787929089362153864471693999077129689360951603479481793168625766897646886563916456889446653456638298724738648254312837986619386454961855976367992544049296657352953641216047174626612447456100565220650775822347918263123826954326277983797732191310789642928018191461816112241859274822611886501546610079673798669893857046330658218322837065698067305030532082722926234058793499800902955870712322985153539506886495966565723266722876309482371079016533109992024506716639662202406092566085933696251431369779293767930630044772852083822884975004745002097414068940422979930887251151872877262353898181001214035944732807571800990951977452084119472292814379035074741708831207848495228448436628967886328238144040946046940001330302073904654661010151958873434171780002714513371691202818596204379094219080029988317332942601480745197490816059979604722266197970023526897608982753841898444232471193981962397271270260071448173003207490515465388917626326448758267883746545638638438838086632153846168803219132827425606331730291715929217662643991457406210425207123723829363235256977682518969983383511098709938345383049132608267261839345311243352963274445447184548057761221059385175582206419239568370639117910637861133556944704339374306279985773469385581303373925698619615135218377340208232012277207435884619408644934022774515205441903894213521757980616275107298081921850753646204774974996214198113073176911753970977424042253040035662345310341279531724721596444340999793449272374505361144564181641960143125947396421824035977871316904206783100619590409726751857868288081783543899673285036004681242607837914495440006571302850967158170133773300247662094813461287449955268450496813955983891261551924065062002259954221540711027210784469002860446363423278719364964345022686665698392681673979359259270425818177375068036726259767776976057955770541422305294871490422265832503353408872191182840537565961787619391066654075882598599993576358676910566360018990168363161445695170867848028211164873922053387928584645799319121695644581674452676719569689834685334637702465950378842410784971022789772464611460459015445093271621134356488395086499820318896550865539768059808814993286759584586240033619086540140413092312442144980873657046953645060663163154807557282541389674106053570294765187570118897100515431859527060390553176440160897098387138180250951084969213515398818454008393554219656499068040819411797251148169329065311515764336687003241431537742875049739332637225544042590080510976242637565512982894073831043069332531183099622716228458013270046866698309688192339566688622091752503872698870479384082487069209615054226137304982624933161336358691361108306232469437273806408104063599875565419620611130905167366942512670404294083667893249872115300169584929000410694020055991851628857579388919226060158132320115258756185285548872176403421594905149108778373442408671268931424151733935963309066632712602887417260300609441710420957623944239204785377373305637751724391064808320640226809103021987657525334313644067751427221333722316151062715404552622365497442364494492997049470507444655064915871100873292169453645983064680124400879968670387434358550308788617706955385688919898838302503249069065380197652763388224653014148154228612820743777146259097644074844532850509004993820155041177674204610422941661365110267168032825241401147607462325227475266197378905834643571114534446535458339612203974230657933910526487676940569393559877175597115734787717769363098298349178088620803003834392297282791780065679385977684910933986970382578883936871351614717591157836960233757773913044043600818585154045604252893487444944470616378765405897391841416430631338129182217227074764602764931559214223367799022172115812085618632739887207290147357306210915997542828296197388774920865412842493323847484123093131217552906102251049245216061679893874741811717516832073001254508430825046116882326732531515587249678746053193934563503723844890071349886372982919012521443121046954439329612049026622175336838871741605635540294110156971704106423022155709010842549616127248009460666884094436210267259800729768778131947095611395884798388921960171248004025382702845841337179279539993047609974601495423497134678529241029089082512666507586240995751464686208507903912101874701702924919348400060931284180328528395482267999587836583543822486802040936537049227524856103624845162743556794628153872741462879807495614580048152735108548326106514507204523666121588259710685482622775108029364537760243310146696855684664734029403066108774608239295687361310590404299929367311961590842030083637634830483193651920613834909667993926881513336440869922081612345237640975223412511313813223584901074728988807195589142566411620910653556721173925664735849479364552620355649672794024246391943088150170457102811269535350440623903660987304282416722476346639147457659923636669150056541954382829566471173391960675947742239150205310669011199156374619572727762616684466388112428933367856955221429802889971724259432485404245895797479763255928506286429534746882992437345712801418365807529763254166423325107229522025989232852544448387570553524410996226872544338586840888367581364496075209130768766621729882000782676886417175913481919974333988787674631060436723049256022031642762786697226139052903441492282584626451463167957577212843239361402817431126835858868384119050915571332952571862222121922826610098989215741110683434911433307805091653865876992800709047723704436842913354072183981920723399773846416985458698312894989284415250358673128947735003119205840808668922613916886325088916812648710475758481772613244745418269617014600090430696487721122505732971742876222406448079832566559113412461180152179098709114011642839640818365012661513787823188050629534900663111237927998510000690887237887959358503115867606480765229992150996720985702653960111486799762454722096105766213173909066600915436383480481352286704657490260667476945806433961894418559774838631569652888139700475955373402669101745478040363752854081634934888228658314378189604046280487875811296148931498304102151688835488894211719990940470808576182341353181461713925950267466442019528496776410956312089229686876536653700212801439206275996868960234409056465945649371859811011311106571793189317807839092475780453261801652504875612022979628174267969321470168697806778205074031847506099833152579393407816702069401999479581549613669877860018586415916729497905201008146085364338669552255416715737007709446373617325135641281199025753673302265552559060033629859822148210369006887810137935236457790590339631040031012716141666229613703629880952227828880191776295915756732657928523395819744770145841581535794328658557715159686767450868054961101546447217621309468212389488274448579866306049352839904780398414821204329750421210308755874079668419798998659160346261796410121684730743320747506819654894111808460220909440172541146159132959399394822323690141168006581894527797992020398626436105714272228863355648046648765251729727973346391419512001405835506682483182036370540368631290002761909388741611095275314563957833346857580016755163015960791420269068334664232962396730515993341676352138689349140915473217418206469468131795531455428467698008909786741422566553994174010281063966829698990650378041675028596057812551105493898458686182694345921899674436949337605661903457230324624854100103678664198250430947553534180406616741340873560793848566434734587279431493330707690943953188669342819372227181024826267579894474072865043114283591015600589145597535019062040581637934405826100877053767977745134702028461864953807886428427722865566585809522061366263657285715157132498058856989569872179265696763848506268326133690353744958051307726639613226195210716424878738741801410923851191371166393602183070866896406100144254931008553139231493068476732988952584026107293303494024834913634530685286657068582255255574934978163411076559094230207370650301205177339313354430284310510516012438885404366266221695715069170087604965274967274751287150801393416082423508720158976982489025562007487513370461870007698746817511579225701554320778204442600898224960239854908664508280046196144642208532596613704138497501824590143361572261727200206829053880082706911151329265512459259905387802712719264425754819079068794281469650670327210075484603602703195381274249573961335045273629372672817700019688185311904440296441806551843954473461601103167196558894003476356788071400962928690702279035762069625777921477217694093440974789046924435103475462344189423233215919310227898687418632116066503918695064187225737504095693936502088663300731310111473154067236175437755298432149342030595275097066004428782847356640486162188850755794408531032467409948128714850903534398676577170197879115611127176236021679336981579432011751137374852913203480285829622727073828408277990879491513389954591421636035632384364469888442993294354044724002885019690979275374690498728054933050480065559270539844571571062164751896490838755689251023924525964040422241071636148134717657725508189241991964108986376915232842190403583742910529407101757702763353187667160046892130447363460173040618200359219979910834686840214832268247599237342952951136088794239406111944128353967170227322278431794226250093710510008733479628367764888670854605572770970547509395623923541696950146575179520037708451402408486772714333455143722992598989331431674671433904505682087910387879044979645200524511768906704842265849179885001219877193954497555854331932819342104654516868766605126149234216901054154999687243956688672313902088525593902211940320475941554513903917816022245286807626350967558847217052106381707638548291552094018065049790161255621836675154253940067287764241271255088196554254067841142247911896347408813683614568724031924099476267221325847381410914271704779093105434382993827744898223212541881300138450219533436406077421513004089254881688381642499079410293497147322957297713728563323516663052688478565821583903596422943905401106423853338473625270647908678410325053166050491786495914160960960307795195882596624711213951527412204878424025851419835374096450772253886361947531604380050993429073729361354903149153302851826934100155706632939517935753157113004007180761029118932828976002331840807122166092636693490698418123861335590254579900818912022137451073851615697145956717827440968691468554492377686573264218849636480592996720947793095320051628848827096788524446011282271025324851957322719004909890298650134972219008381156483879108200790022522300967245294936166401546378426132557770839218710789761289619614748555588971345796652342706969842449790615508549578704692953057556161352555278855785972206119233008788598655740533310176478793678976429268644655890608382895930345495932045159638431940929899258936534760734663134662523084069797874024256446048864528738699512595128240628389352153871394436396592788018507140906121394708149746186927776263454062720408728321684593071441152738304605680561270556038577117285132477920720197485171110661982464605431095137677963516846710266741424731891501241070277287240898244167288611282677100260196932941855281756560803570789836583440633514191000828292302532347357055312698936298502567546209965157001421000431422022344098072104089049102543252154203798867071536740512554258889271466590065232757017799939809878956351209403548805042097258556903565046148164206551410190046813597805120673251023548174801554039660576633367133472809219394539336116479056678923581637784974872526772082199898120199258940667779164725116675316822323135566155396761822981031729710440046659565152929626610565095559317634815622056450061052695284058950493735694161402302969372434164930599595218400612757185662796726673946211494269265020373126935922633976074081844817553850340308900713429886001648018017853187869918560482335753214096901516841371432918052092181205536560705663262063195845732985667163028682639421876903538168222712661434713342116591550686829471980708724226816147921149922837573866557991665213508201230309104939962658672784745252954703508474683667525319399622662181829662272121202472572617210331956621839859286992417251829928053701039818877791687258373956898715515026869011305687547653728177493977680510376335518190274766018260647054913565041720386221370329318361988417024684216268231074414717472292103636207764071899806964259673518977862277727400332157298793219602460309068008239573241845367747591663561301584035127050317755453814707485212447506351278148905250849473715896320837311373841008831787735036538509311823268804503420064558403428833604541025413209890027605754412934702318318919805614252819197761224300947867876197710642613371297017026093250526181247641148486103401085650311470898714300078322581654997606249268612049144741188558360075594658673527027762233292308152164819750762579526572662067713138131866156159102486770976660789043318193427692991870804328697788817198239475929885233200773122043067159206208779125188578466792255886601634425753063107534472517354738300329329549466479526126778377813989260764574994221396380623701795184601883466297514123131905824021957706526451906058427842798517637735495475546394727443655964831123188796158811190830190781588858615995225768895724678822347723251783137252712196917075423279938398808435009924370430862651191643780430571339344533360284994349679467488180559342413103500627382812714484582089850191894989874204576602162931809893056024012646912010912320028542954532747066304828396839680042550508208462643165976685608751501624112153828774020178351530329462184611627671409344685699011966650891723710367647969974662799672379179666080114502583933291493301135953415934884716200531581054093047151267085713644641480570233099605458265568989926741245852055526563910792011805290871703311177612531264091166969396410264922701576096621027417869131407175933015409252060832040891224488510447941213014567498992733177628102702734438976594928808401130984224717675465657950811057444468761113844959975105799663511632180775374302998308049362867293743889860052432821341847171197853973567211193649163031773321733834096143541171746871179649988416130038699481093131298093351062982211663267589996340933225442815195690066176445940205886595956938340359411709977425500883233630482660834706870424701076578472273193667011793857782056400364651564151190290703960389033297040042279633367849841645189337050123469026066468399851429409774326426323060209897073373176607734719257010369706207921876928233523780053310583970503565052729545973743571319658781224573879170935820416143356555704154359729115561845735762540927855292521016204262482570175892841786118238604059236228845532002129244689945054210651037363821452780254773048375601959330993100208584118711036779680607043751405950987919547845381652748725203539765613654741612063927915254281053467537955822174854189900764633896878441523566622964355634930733229283647535275968994969880992664945220437481541214585110855633100817861454883980019378259194660263694907006939796156087014750067267084625615834800146718957309018996834333947042465328592640592975912348201393084443481830478532962546022579696819898427056190357422414132606283159289813199064402909065265797948871555413665168726801169451103152334562910326471483804137846718580528869935456875216819211273497515621133004288620420906030204506277555197070359019263459106713289598954562218315723899008688451708172068967699434854731867676477233684817899049046489043539095418946375400783192306287614985634978397486634183320106781912552712470670342642532996227255706504341351234130128617786859168796208501970343854945244731976606384374649699921936284899600106370153498762740446162087256616472411554224579370983109109014666590071358865708538795379192506374013291918537205342105025007035844623022016289382467904887268523786725829089397686160737361164694572073922213377227041905509631284885515186158627852571705355607820864296447371207720913320078972107469874301493971458910342679412777168250830958482351205619924907293242236831668978396029842671562378474396238987873795738013547661905636631427130848960422785869099466833539430491574714764289070715863127394731494867105915393850548363096709268011226282006890780092597781557908435920283979219897747010255930038637869444703732796055992815623618853625048858429686703124945493022273589305886036950378015371835262496643963702554966474384622490011190591393459904949295995682252468040068254562642195132885052724215456788502386803348640976704559098119412161407537115762522282526967821452512740833737159636885829881232796777595222233794134313038790134741540363734546378826713569969488162734482562877515255339271987984190090810591582882429058758460845318853468234743325606496262406569470815995025938556065791324586668811489725279641427593520213234425965020245223082334245053485543291428318024067730189063667159613920879648176180075605104227429161832405314209378870420266196227746264270277963480583059192295432430127894739811395533617095283235488421786679898597599690524475300250541313132057121394084142448885830873816733930073772771048194869808602719840164820888499189884747769094264308070705464356097326846931097132023876369275294738246493728763840025805452713655265088250003485356741307117117206828794937645511984945514666200736608233539049755752234041085270815448426247535047993412306676090549242931078969297959953022674033812062226198517526985668584815670105297587710038951979102224141956448491600769955010675355492878279268053701763616304179371376121408374535304800259826587676069451434748315725536191275306581499683906362414617623462956727961469541096496386511187738098845514852676850401076474390507324465970537239214906021371520064367350264680182861584543430257905885070882495458476754475763774120585175399777289487743792282835398200432402539549687781317769818681855320702712461538355999159423728692293128882774538567901238951821905447958559848475796529591607159686545040566344243479603089589771427477799375643929464787679296190543240128307519484338575079656303527997719705261165977509550876348991198434970323920714933351651871341312816096944380173814018547795304752900148028417999284082836856495816058788479485449704160762625243464362409119937694122017870965147463986648809953756364782060856331533782929914706222903144441902008295211924009310212911623060780277141955232037121526230606129538655076344546249718566328005914524909172868764318427012723483910712591132783530500507323479771902181999963955367735568948472930300538627352748986848781723373145772926572096929559774257007686497458394320793916582806090475242239988400330903855619016354309730486723459109880113204720584167772736300985234165893491125986639980931369002184437954212861556501444076892043479448169769353795338691704721727394511812101057904992476541582627825299763191031770061196954631922745315714597519276985117313807225920544480551862884798359245001827926402605793774739667120595755181586942102451853841060723060404427383412042506629238337028018326531723571580826134766300481120685223516460525793114565640551873481118164906659490130937042468879111625590585964069583170912349734734073122312400368425211614666708900843958016273326000665130785353195259631211160783667206241086915476149052769216009342133947381663598209136375984074803246659955474712388007406241308085657443000082069042472043718694571735851669024411043473803143404574405047397731002706580570897025452483517930991516789130263628378371546410293855790477651944868635969636783076703160428591053840340549750999098499883830131617067877846738737107598315824979331849169141122322676229111492644976940347488530816744784441035099625066292907114041059121626292228745119303522773487704752412317901183042196570206647258374141654129995270963872026529309098496364955456605571166210429080320952161690374434098675248064299954544392452080785832139872114534482358167567712195967777578896163306286079546978088466978121116439359823259142207234243613723393254681047235416426391850853675916970407267921056043836726950798105530607772632828911553877524508778840779690049089521493574745198761297923022073888508525027312851999676561248048644329050267410368955174500625230925000568898991700452102577054637334575195350958402717673622888731848720628501580342709754449968859198590899185613838989905760383205808747918508434977249625653922439897005910348482040775007204603459289891563249516226560295877665096334084065197961069201892891333756701277325262064022725771294148519878074648183173108908097678797997413998942666481527488377981199637183022696710165238964295101376768771435138762014227593078007572116551586786760571599409631519840469686552367655671013096496246809687789982258409992050710251051239205770532429479980683619904471698597531534627290973681631628340132399203239539788298957199348354568180355882921678989659805961906220656625654498133212247424290136431632356768522219802333890364386549775011889788337527734139592439281878018325994714464876047286328668061567919875302514626015243579802099949921406652991268093869871071963715173101077061430390681253956300357202864947708773762938459041379072616295746273485545260126932251684928519511938830795806069695619498303047092076767080369266862680894583310828088016998771688832604496729564342876571849537279851001481030106710601629302596372318335455490719941450681090170601451529283703824913133309194229060432977920746650335062655024325605398712417895179058861912967496009969325455922639343409383520318331157441377910240251533039916540639973964332092416373395357005021567437122138826825565931419994266313761864137861513669219849311480563443520525649522498280782373079499912462297615893720799860592726565080316184896017341264134987223843340965903032928555430674768027327986947281176885888696551387961678507220061909924105531578146015736989412600161558143120813701764261910504691940922786022694291033325996837624511813513361446765131085718437255317525324695626949717533850273283868334244919751397478994443271111850207807109776308374661717638783951044537231544684434387268872251949871187377641510554510536049423852194445536405408890115448662965636546407180247293891288729040312587607351739601687540204135021263426335048689471622005507327485757756559908782599020104100427745533586778919211924092146651306974053540354514441879607824044066452141373322782463350932713608415102904689488280694612663232967378394248223931206267201024972677564367574535723335605187032179070466075725704974894429705427690723537356805676719346109232530154971393179043300005326029414461808976875812918292817489351302434347670152120068061074974872806357117729967158226859513783594410258850873901831924673246659761654036849760894596866323900395557846800529527310656886541280624893955153355549613885578801042417422064289817504892027998730965560528703526790755114999376017998573380001680841614330782674552515415039431675476064162332306515125666542923827045314414078318247838130888479273927417346527053718579938743422554065713664033674750256577987548596564236982938635662931889881832043530036912880960124189032621182910148962226065792303734190390135710147687893635043933394387782390156186418186197089713926962341413663214588125071608130194376551913954974108593648850890886583792640205807721068140652532251087206822039056957440956797657634646570411139343522110951409103212651648449182257027147138415863408094883744199290538346533506488305466330673332757587463914391228990758847010444854065316148637225028655998388278044034421514833285179169029725133918811990583414783002512480213187535590156288229973997835671014975969798983683952359796060226259317164619957198577533358729419141503664580800261045511390080127723244439315244496655491889685913165828955817908612785508366995910854035434060771271345153661417711955883351783118966134371842128500363101455500201241147307980386917355847544569383571853606009024156103432023090675814165772951795182881862459096884622617599895093483914938518758498808266760082069010873700167989956290891676065840512019502405299156450982582791661846845050698609372345815097878177756334034918791171206440126204929888992043293706320558858729888840654790961953549856084217044636658560065654002774318559327506569733487144787113595964195944858405370933878971294393819149351647205325364572386683599684208195822268181364614019748311156298833711335329801982313267191381886104062387908691361841993639425609067419653442338875584050958709418322567643761338811073168333923693930475206800824715523075931806238976579776445556181481094812205723137070082618814745578258877084514890492983078851658422145498667802951414888435326780381462522988628346132410927655131426973990934799611367305572861245845129219645024500218433475895653603424029562503791011920203776305416710945545810415087219236912717261670515334926367127161409040204444471258697935358159243179425554796924080149065787483726112030588292286027417382763666832103121390327855624425791012255075888343323004424524025267114152597304195482919257816389069164312416591161050375305310426440807858722875426999000344204395927120946035593544642609634041491521799803258406951216531141388682136827274587203988457396341358691221769144481073830002761361954853999992458870693310039760950182530133361627896043944213209685332654831717902003768603713116347750758613388805674065758609357867362059541192151834699144448044278405055503298577920726539894179813895474210825314318565910877077179228006404264283325970318340426315672705874618711149261462621827400203460461541799847504316964095585904024837355867621344049268903796210463850310797063182449076217749182679620305617151607384560457303954548398773098276561725353689026048761271371602061414261670805018452620943507535641240561208511388591947174075591132621765471650979574618865338132341981607945560165643136927965221581665712346092813778019739241064550811156031723120164263936296594350047350783719917791068829993559991029929739006539315235432249434407515088789535964497332144866121481651740567817769197152410176206519456901802804024235361366105358968959172793076542353717783398950116640178563725158006680815748973129166401892764161739068544194911505773093295050077681276032812850091001580105440653535486390553672728337680010729107241557335677932852162492410545577196488032521150255816539385522643438667881120587623608483980383686637658187652639974337410553336455021886974706498142130323265991285681885603553758624559780864340543834624680824293932323816868152464585079621693059658105215791470701440899670824962539729318371620256951478670806794218556807368123833096782446330069059204889493515163340165617900550970495723284791655601825622025865065427368480708473417774365346582050231801257004579772691127284911433891925243443914453971800199594377566233922855630933605330195377418504733144588019131665718764791193330830375005269636551284884233586614697318408756282809469344813374963374577076917955102457069718749825948960249197350211931428650787407846754993944103991087650289773343757563305168490211152864770157199283799688942515475803611908935541610178483971656696314922503372930488947752920968317349705735679727623949599384395138109496905907405634041707570840130371519196186335930011692192112322226200968872171708980750772178498554730502684992243284055133990586143469230830357600362114293953077739027765839259611878852444853734562436529324396741261271483607842960578443532876038286559513554120052690312380368678475578408832764861781557327010813772208535288776502108461165433637511058464715780116034597553365927495174298981801332054228462623402716105376888291192676679371505179679514976365110406221560076870684628619831359548516175235476209571556333375945055097695312274331907625429158166397171534965555921641111907051255009764132566398977742105348689825360529410303632715997425002608680268575018454031091944533796278004669456976175378950348696437245228274624748434968579531060434397694544135960344915766016562299242547550915632152464820334543893773521337118879997076726016135720570810987262671055898436586836074435768082866410731933982482703162082962443108596579534438591838568097536395319521976646977933353682932894793201782902116294910677567472364415691984289497796810853799892687111642740524957507677172881380474321233378991657706665351978683898406630372872609640480855481696355458643791479378957646878360056593809499809497600646123947647042335466654095004821975265670145881105992903375901368462090159399275048296269408716900233303013311997103484826303598833800945135934202334957792578282477174187983854808379234765311002009602495485000271329913771348809473853561769325815616573071165145748899279350184262596125379332716474903046724932052614000502587577263287744160833162443090579924790041306429081875508805054549032879906254277525478905918306308562891234776268341605689724876391792238157391987917810754075814006738561961284914419225169277292868335671013982728281419961541435661755563816790681789137850003067127137624617036213947644508517298410397996595127588918294922007106557323857403256717875127273424783625752759495687745646772425002098473867300473784476510870599462291698925162732385170389787640887157356388602359404756631344399604815637202315810474298936925576610280168281276191907048608422755738917456531520838209193174456484849114261258759120334917512746077921695756582028614277483534703530266679396158746489928962476926820172229611108489869483971598064874475883633678323348258437487395956076569476356853757847844901086467197800104153364369640583753482009314249581191564112079821905353777810557094873630344909598285446793727407798320074285017974012781974426559522916908502046443314087856006246210278727958006496570912487981003717067623475083325937574706394856852656802747363738271236539325687487227781564403348229168035668938482420755122040807136518346347012509606461109682116709875352721109430317741947184583873242032513906531549460866357713016080226903489056353481564650980901165291465977796146073700009431118656482433706966723679248159339855223530837147139965692564552002841267858992929005128385302080172176754961970298598899547532216314421466338244306927983236514295998676610791495776143463710659647596101437039340664350105245434339793057168008928037751371297775984294347127533770223512539192848760901762738539376302386071589983771088300318824727486434436509780776748213384612008190076667935218255221040540899851947468027747941546173853591578008179766783391787723113876856220984882207225964189741733226230500006757329598253741390030802542513151735567468140207149853123263162877859844320325867043176652861577651889132583042854364377355601371608845825755785572758407083702769034961943071395349825120385447857067154979181094676538864097778102258235397796446221761085545774514925087642182499003457536391135047357540072614563825605883137424147426665600804943194330160720359665099168871828516686803261771521979957112702682982691539907871983105897105953930075350544016149751299564485953179800354378025040127237725502444024588472225841087420600677399813340247336972234938236618476618934607669034561030396595627306573628216476263653536667322725539336344440488962000765232711317389056256439403339094068502246916801638046894907623338725842856408479744366758473713661717163575551583859542498850644824276276886564434176874454317685564076582708409150604300730413376075910811357828904974535303463306290119656366342842818792413477578924958593042612328384833224618638015502564681783528955892978670690138918387102307489059742539343689642396518095517833994047565154237081336528159218931574587224009595040061553853962688534712372785725782616139433459580127522442441447807277349789464683877710956565672521945894838758610482534094989237779193786156729277902170533403255238450161815431435323759296131766430173362523619090925946500384867237919103919672857530466989408459016667539851716259278667154291943004946313048329664596024485493336270940850094946354145733684449633552926193100977550948055123830262344331561675021054455315758222684361500949015313422270202828548660112550355892189392313029177233590514851389774397813934013766335159726356588531753002272038017820362200647062500786318811280166515386042789067757336195161238492723400781660555594426312642622361561841868319274297279201905895036717325558915291617453980016002987970006602044716369137525678178831163789038116339187126914802953796479721824444376030048422815731289777985939588044837569277163962894301236510572311382222495560674695950722866957254824995992171645545026184772250201684542018063943024843567983144741222310219350153877745611537786839033028583190624455903819759655818871002721252703855707439682503146253571652739282794602768735484036886116135047725821301442759235972535037576519592218690550666020791395706350271232266893590313745478099781461249912418535843456265231457483169888983272385872894896286860356657189495292464621770503848555878637879663281265975768222202499216686607497491272213297227333792803065974963085587399188985883291667560364990153374526358636834743868924353103957391005945961898997521586276946264149513304089222082993144272928654893205101190107019366146799561666973869204921160744340171047255275022795037380758360794255324477145035629610159332657721422196281050577059446270401391805964648378817262539561366266634986915430392588642636623783377202593959046226239083300224404387395699608664276260343256956850269938767291313795106414513929470197895670212082017447759108543775816212455383036200018728928299363451098888365871464684342299411639138441974832657793770631812561873698266617247881206239296645368777936454929110260397364080081005353616779539464037972821615011981366915871156169144608834042632436189551603492545941314424109905323370990543183753698912631213854793996874970154132587459570626622441567686841485999377605575298710076843754621694222808308307312586370124064646800872139853006125287704112246790278497253420364134326330744253593436047855203612614962350080733846833631429368447725022313346099596475790794946443441069789913672948326216068181913191201676848282182257690229247068402985645471849621934786756792143786487390057670457155413179754960000120996135572455545349826255412144093512484839673148637009411286505594238444917121419266050420000708749570817872662919494042528059120297188571792046934502533155563772201995936000308519789094021063296021871050878663590955949983415266989778640354166392670385093418350214093759601890841373522592552610253326643279796309096714984297224827011017831723739537076758887681068783967941703945264026543949910056290041032651945914118167520237356650278574843405702777282601727865399996342484683149470854096881405444509453191292931644827068216566766463724736432122053178525823485965949205035680002962977118335308904479027187115523566714074947904010365263480193933326592240810577781395125331905270352101977324391670377810570622814754033198768440578866284703418780298038378449927321850466742880359133830087388677938180104290175290902750085372244456499336445766619035035919540199630373940801390223968486560232665827614513030161576702481971085770957372890711124982712388128876062318192025500602935881512763623896081896151532463935127388690267462660925079145319656918110463720733699700752261341107327340356243595649253770496783072441728841179142165128114647419312532044450015699881588523690847678640846467548276224886175209003731185513829902130975211984149755148924827700883814766822689660630362063837600461727530941997486094825358225825230635449382059091658975648593281117145504003197671785191572756277455975414569819834139286654384910812689948186000617597656684751734869409377418471585164528298910172266227724806637671097929969486890610760454857645573969470011473929469969547036744146281230469223635889046775461970604975973095294948771709498470798100333411867408562171688031511007799027196302732480364249721658746870232038931016817437869420246896560318174204914032581358205067393173280642566674480782258408046664129780307155309735649078323502242482284916753301619623468916340187654649544261632222713998017739865913341365726252620667265602475382286518156474689465330767761146189085785335994068884165840153358843216033145268494606457393341257328899458511708132231334721434246207370260346816180710248150378816021760401245549779645423815836435843544020298488487995726897290622712951916513798317136460802377363551194718694555589215336203007867454888368245509888892597422174553148594218766664745471656466581790121104491309375328131876523180252925369808530231417003790656633677101448714967065261218286816633933972280467931953654413576834186979927604601537989966849134359478727952997225535894593817302887061301068905529610258594638421021951605793894941702689414354258296229284506557992244947263700696120533785597069206705664980573253823791044780815086982440798338691320635615611457908921215955407522283386146787573920174820157036161639283434268474701795088241870101969097266642380589755365159579329042449586439829467847421577803555516960482840331201391169973233862745014882190462826882857221297831132508046493328343367327798025183423873522760814128862605562705328232248043636770839576284713027010378424677075316774279731375370129635001614646881807388081838932151018657770221378851488314343942883290315944304350215133745161038329877852188261783390375958986327423162337452956572827002883265638361482289660984920451265083270752431716345633405329668166529469010701537713234352794138387426137291271111327659881294550659196230441334373755002440970746133074416091893757514386375755021038420283537000050297075180164432092061643440023076404669770718691932709666200806240388833660790079373792052656191585767683114550892263272062509764707364967781168312832092899008239707244392280869418348069962245563280930941354197883901443814779189826602368797129638386335733309654457021293905751341764282568013820030448788788765508893354263061087711650872663188996956557683899295647004314100252927396761610064393487922631852413158323985462117118028302664210526394322904440413822962948285301332785626430695807674178064378440972483877650819824225382893232820249008514285585091098556417435817301470986455882632351740892610910595711566638728327866593998725942729600921040371829843806667414437857651614110946955205240936952357952535907410848732030731111874598501815793388121439271060073116552346579314950427440979676794858328309047052300675494463636255807814918833842306022479355790163153892430288222152412189720332085641676853443525322305550534864321622690416013552690538680428480238632502327224911064547698896500516452920624841285774634750013613859761512230619886160345773051053116031892253622623541453960171840749153107248087357968553192938782121681577948786678340602247221749852227046128745221127942622874031151978895223612600077674194774147528498438913495827385913044364196722899238986716544497074190655714499946103049982798256532010627524219749022781599889535964457480365859580632839867889878663456797657992397724548279103943813290342112927421066032086473094461208917794364963086705436820954967729680727494267889340123483891516232905402679896387888963903727396495642057634829658238124502491880575248824588064756351829799396437959233033828274363342900667138297028949774702530504596502385935968939062298697202900256103179742715255969484366982200963710039414249397083840268268942282680482822764173886616886756435683569592678302348169597334127948767482363859167955215036471035442057808209110612667264984164278284896624868960720746543372806099672886296716454797346486387542878321906105306022131095524300069276894616498695192774206863848781550440465650549641888523446805018636825687632241396019488425000818869917111572759080095621947446030039076654316337243197532067959403444069272168623293474105896849179336066022109976584359028167484230022519424781245626825565045492651714665700892921015382195353988388284976285492909410064797587304709999847263510049656227770712410850989976601081150936572693260705906203166082634757427922873981122063606917509256192945155285614817039012094713476130988607949653903930128985619243231255331558464824121572431845284993031698576250931458532856173923541117423317662292972482104474261745025541727401034943081965094876324612881240878728990561559965484740674672759512130303025297903877727602701895093356931067957118441460689501681637217788504853262957723093735212947311134231812615238219159424917804730947015466072023582314621450669755708011344408135635450826582604962002377539786039607778655256836496958744744947970789828155016395240396475102807324100761866123145709746475775586564553221597590936158076083195587851586277585868452321247089645877491809945284741461903585319223233035829598526267530084815563342176595068213351850521524179253989544876759588113436128692058805203998933051091404664091786571812780516626404530298710440512631192178285487461351652450056865978454426803424054184199775470456401686936673532242572621000092977105382119985170264519492844380791691080777033141597436902423712789445889466497507087473595309302367121664100220987224457479877176556673622206674777996327363408083592899416779309901399110192081173522222903206729872890651527886854722621873928112614440457311870245599152367404057811195789910955572130536726487138351937844024713697561876514360654228485157341147247614462936071772278127064252359675037023573763052836992283602662437261202325285490422801348587707394677142315302148866024281343685550533388624875321937661547371868814600914155482536810762407162221738140921344072882606154609079455903199505917460258546494428683434007553667693518281370714939370244563246059451491158680108427957701207147017352644893951173890031929197937656932775335646997167261107936781442020231680530688952737047823940106412186008336048205260561545555437960672362799515427860829945167534120183787011592848462370030743955500633929087393034220210442277782946526583147474888152798124575525935996836798772860762132503937344984056561711967127620752346036119237074681901730843747625018368572187257823744218405321565561890230169808776518615796256692804399382831986837307166365787091944749581912395467591652935581504961527877665602681372380126441299567001597218502589291711076694392693592356427108672305527974198149886597571883196649471856143436481914219067162222398136727966412606283778195214036248457856301595088519631361504202701777798531080524321073135670417543408575468249693218586902684368720503879245302779951514142885240729709159518861592198440982472887322825513660514127322450888420472523130793880399809675204944754840137386247616828580875729635239916281641440830321566315552505037267518179259940595681309502653110389462332128554109843162653249633776616924568977085474890914977434534418451702033815475402804060072761341048436574573244930795280437479898911632461908361108282422059213115833855007756928750306238048364502668476346154275531487063801887136429460109734319009341012044468227032177706820859579161114586789204766639405771644903534574906830041287131895632399079692190830177149061163612931782749613939374167633861576965795995240822205600144098152919108493358728492314079656340671260959938912052216906363010624222481748688577598957449786705490066778717535846506831829085091659530043415284168750777616387686734394941993350621625444916793120479558681486293266829652824073221512115979517310655411678998283123870881036214809052156143078216227396559984436256207826263979973143034735743176417294810632046553568351371422068380334203644354345734651442265901626155594046310352683019233916231541996354736251362982088542043090735604471132419358728712918218693902973303821821210675621735270383593816337810149495416431222954301919237692175596820491509553169269028401121779580936223855459437507942025561388210546699599299348455876893737480249017730107815678240838612882433828436903208227479325409307846954982895376044664291050588770485595422432847276240512813263957376195550656447879423286892753252387374371910378503348232499857404507073051337280969406293413212397609033809337914717880716586303897921734212779546973161589397783168383087804362645577319893150482484989203104325853095758880050529484389376751341665120054593122054929137828049512827821749088328771461634149572076342330782393365044962702075757412044919979390317296815169782775682194918448157104694163210360049265418975483099421667047839889945225124892442934898004925010751246353674778859902695195928118060162362513091663989315734648636736431120264445983708258400883382888682931309873042542841288628846413921286085844487872737112121256927709454462992038672312897403980499999832068779873186082040571022705207962092303352432482343050696812110366960809266275370890667754351622154025334834413208530171110119500318722873777111304635177438769615686749405185028651194870296462184093595460569946437728203634880784477323793771567029520077017892178293039045746750437657225477491947854780759619897773885974524761492757922867339564265329727827297525407660691349802062642118486171554797026034189838789122175578771592899383709741989854089830452409415518283855348078909229774170268358846854708780190303703290580433339153905493544636355737517562003579686371181828420068077965297054035925925055925962525525152203158874096743439618442515904608264041010326495627014502595800136245198983129226535925820146626403049360420146980116442766307948264397743738648561823995107063552330845759875451754541970093359009393880183721780813003315947198664644009133541629522308269811754034928806628354858463352817528601843698011964820924416878518250535234959050593956607070587691598544711133104754429202217587658635291154701442095625661655510190749702941618191213572994719341457464936500104062105090800508191280908384988703774863128831764134593261740677888618826499606146401526442386111046919097449396922917155494958945991951522170703316539972799209842191931076028202827620584959480385535521869918939298699466663718773830349311493213254311637625255858172663343448806702227609487894858285683411415765854710657609247186350415021717484513189147463835786514744910598820401913842952995079749153313355830856945318873029493556899410323816263440842904505589867741036145275854542046654194102304898420804444827280285315564512867834869370872566693181071372749861774026184449307595003144080472425722190866544190011704271101296373605956448805574589766443630738745799181242091662886210802536864369640076304762661736397121727842277874735417133803082554734939329204840903946384093244852493678121603885191183544987856869443704545272473216542967405604491616524498323618362275662103220679991756877286934952886528289415559222689633899621554928957281739765151186185389383146439818284972254886926609574740981547092787748638223900953851462705285543400964479848650629966322433394821765104404708153377180342668451185955588001962824772702524814983250316214433927700101338461031572782933819402124062684269479768819862106273066556893109887343293555156311642913437891333435909378375554226461275463755010175511813166413489448000771983548737978141830917148229525822702057484919790424744308760250286084784635043386789224445668940984975239618990299751964959685572492437920435053592317705308933295736089600461579010269757300259484515267169496073455986667688205674573789144784361788304483011879811492314264411224465906627489361240356473782735446906785737193007814389322128065828028077503970089861865795747216850420731435003223145224359876711774879367237502461802094670555712178095666522316012924773384968447657181472883148245053213523340430744381279525409488474488293308166130357136381305449635837191166182708120950328837938426328564039429193430324669158683077621618178835207009968074940352764582320406186569986414281377434189154450246686851869792609168712502211331320837605911112659305031266294802434595138524358904085454644429194091574561656709811960608957329248115443893629389661564161832740687822670684918249959295498246192724512978001470961375290153998678567873389542475304935460252997984304637567423720937919462871394734891753524165123029575527350223502484138022436674237931791216052145650037823843924654714014993210402107132432505034008197885191938010244313767656979880373996048747224576288053397965935908464378265009407488375020068107347867415377429484175914339180531088648097895882656386031122541659433565918199432419784724602573422759842884861565787883939586758738430245371730001994453501748503636274563755294685500857524528389928544815790932675531350344541317477143940528320618402337769537239969051820727873300139974555853157116501952696071201658393605518535401843376310772226679344049077047864728654001452773733768952927108697641996522126770862365705394654294492530692435008608212513014920017548671098530856863016329161734853115959838119280374916602795356308562357215114320948563008747064099912271183575740277847886325271370209348533573059937530632382344881686178967179653512960700084392321652577604612758807849410816671674166632757199013599454654398744818256471536725725887346542882975967395989489577564934340821350922605987642293494027694136298772435681281232428471039638205696543729618505274275062469020038898062544000433441738636911254709414310284841107355434064277831302617246880228310721064135264560548967396612495970533389826974693113622180280914243770999214315410841448802317846627373124056048293385063484094318240759931967168647377420871536296445611656028077818099062198869720296323385979256547733963460913617805518009579211223130478097312781617214447531847862129187413403251381152954620799559515029015436193012942504040463920689715883493397635341839967238930423289039555639999571541332170979189682609479433674365919678882045651684530189313847171145428997466197069914673731869341372187456745893901722726264725602727771918667598474841086323818367527922449801635426648314477692391430490738626701204299297120380377451869824173208570439875989434051378296728612367936348546587350881574398337809340821488776939304997254391893963715517554703513841356569706621217691637063176063555513448783962841268426548864263437798072855899345181028144568751740096466887270704276820530643084968605293283690648240235518383398079890076771898508707581162021363014298020116351887574677116633329904206861469092212702214748559308279849164960779277410757907930457911707537089748693425255349532332183854368051208037952574527706334371805084117696984730447724422581344406874580617462205363220501796043929818819851324352143074042244583214740728848516892205405744824446359025779187983017674954508512494416481315087185473295147405659623746998107994776140911957564413851627226215171033010994954074436570276463522207932035439124003871985162422037421163145329298109950751713777489284305159281135854442327314761370211966006169033118408827667313027062967615535867521638710500353061690522727365084483186264494951503324831733646542303107194702377516061625400813199287580600864378597312638777141030876822013374365887879516590530371806334723994625764555880712662292039384234579301594763939300743881953830673750654533765751036586521217462303987733864563362734404762593813407710913468716635145818220146578049830642758999742637383052907122246612304683012069290795588327942480181031553242771960613136373746030905213751332480175131912415654783312826627999600838825049397398088731961226646038318436672819182182066774430216503226624471343688048540526991310261617754622125531636834153210171791142422757781716383245549649203929498462648475822827221650691438499429734878571099675564105176189528909689967115989930323440626519760147634782119072449814240523742490262569859954012786937756402623691902393345211808875307533903792810577493352549346125576668553568612676948387327302889496985083686149550643237549198732090301339270254279783502109769811183302754184839533326919874935292871601548543909562767382398913165656872075211620905171237108747945302890012477542493232027702868411322932371880633511781138922577294188746447153901617566665764118693254460453045105808831413378768412705197838456471556530750171256662521995174488494615152444513860731889738409926460790032769746677675571720873750928325236440385158266802282020991033547385139991741198729626508873964594263818134564482591566693442179410692248531155428951336371779510224045404988216880018623547166186935898274521393433414322273043656413801669534369524742680233132054497354587129778909442961127238450168614608392810007997140691537272561660658525783178631358358677893085705282847636784411708248801046251524453785420121518905361254444142246433305429722572643190717450154074506089451097048555376249005419715822557451792161593905408553728710836419025482275002581322861150873452232125756375991335416166201164537903446562969854881998510274885957149679532482225080951151764074452809907066762497446868902849555885474703379719026926907622666804031360548602268011889154354067347517723535077376044838159161651975719069453355642524701989467200411944996861567277334988466412657543388499234651036491750012761596847523390606556062494832261623904912177734568452362481289992240072220107123558325546353057046702937597613479147177312128658165717527526560091862446717893415502066589621213731917239382291737444219304786131271017566028981240051631778249949837795971227992438088051288995306064753928255144346290853632897324990586019074719839233878530906102148864423717907884887494659197453378256536370552548720436419828079536206142087452898947316641261633344865672154272235422023906966673624523713432708693767821828336759512702089638143162714432808176257973162917783070716728491124612366281753152282763397664143749909623424958149734109067158700208729392930430955411595529690249688370759948053867643402957853394086848958954592540905980436207125454495043466152505693746253146170602176213613460694226882154439184757067388752610360510812201406487851498208952093222201909128228947855616674588491306691105479347392695026268241500507267213891026230956258004305315566209313579460475114641232440178918745613932757244772534929519932633809511550466243509660136499831843539360668019199476406034510871100965317291234972780832955903260712279632628175315094757961305251737107125945676559824763424899277585726961130926012825570416525122372563848665527581904599039036323299735516412829563868815955027881930430405823497740838191384219909665406575224409365245762419488601201439843490139781562846283691163389174050149826105638727282458991807564215536176492055121678967109181463363713022564302587557616977701768167339662850456315539474082716686144709925154904792689471765023153192934772445533999773501931903829855675174951175693711612354175675145243368873474768709327955135277845395099945157654484669505899053351914369388351100318678358943013200777520100041368392305773908696821176971541949393542024329366163671874951468237584297780212320559848310161825631866362243004200515559175773757868490072815162852468845076188290846020302140761675376305676794616243756211115994316732926149082870963833042670257098194659736201905884623502687665002231324962646224279506482437496991833254623934103318156497299155713531425714694032719885584996436885246771937260336568546853231891604654694626707591789858201486064919273769121181980826813759099290169931086542321343292815962721860596492303684381353306706310705450118236670123928804530496913694370490073183795506013828630906864015397917593325145216855843574181049139948429508182067186697465873196713163976519457442407268853746370774427248247643557417737993102893213532705074257414214693586549189180322639943883570279153954895209215025348304046639597210185284103685276031501225916003984051770717681386858215713370917011516439161911279787675914234403875275628022592421791676529629344467016288225154229409624998028014034100748373077934941575341510321870236425666722979241966737746863313053884017459687022414334769325136623408730858254685684504247758918565890303216625939622240909995426302667036175769184166689627161499643907236837704595793356179045020221503094573341045952628832606682527921913096238056410642258613854502492517079945945294117716744454628436168532908448132270102268026468215191161199662962349437859134891366525192154119289148203728059586442857364263288230407811591168456677511297589257167393940040188536626183400303117280601331349133335801620562239108483004333315525379060086857269849926011134006774365515453384241728983734676155974974940282563781664016114672535404179331395347331157500167487367622012412274540056817165328008383746929053642857933070165191136671594592431808581050550002795848353630898288737828588778345344228391557002361909578417557409849415990909494490408811665984066017406516782077851845938524592271099232333924250818128876483301204109779461411451057758906888601644830700633050866940621434576413099953104474835517522819936425018497746610787550640328113626291071554203983334974989139129577663542342983614163458777234041935429360985508785303899358086847103682522234660711734918108804870443417169774927094971550737005013917684811855240430364605215182659546818917689789238014163248229483407161725686998528316641125840581959185462072185868188747343166854259608003670089173302532116568664064710690969578495591168390228815774184260303897235848400980745934534557775651040260949092777932031928125496927343980636514405338374834206710759042223563831222069749741871599943758001502471746243041803200892680538343392273973655562436008370721314222790167366630894410424487327466113694530323976375635790362176362442912804564330364357033653963243511362909162292971589674176141377493167921024962449231025465472120700738542193444819868667088573971923134307809463165546062423428342349286705593921146868420059525838148209208478896395799102563508855522670019737320984291290810792186762176616911533424312438267758851745466812948288780806786704901796119723357397552091964726769070735921449921539612406421214034658625121095630865988875344659606082249123094329936161405968779040268344486508409271881539390994150069317047288516279946399997705875693731464727689171307666230634548576662938907938991076669935260941298893381141472538204823275135896174870891157484658117662758652923526075662086557208570095140299596270865901556464153490394278036414636267862049059915772688378252474506028518063161055436446197495406359606204575364308084316280124382778165821204624145426714100172125918155809654306268649081430173521146199221141999559764291215484851231156999228622602521498463732593690241158424465702372692878974273635380294904509551742236134856304951717753342402362093770345894617952252537486477741099008210082843745930002477968220475091163490965276128198643298448916163624422524765244582543566612302093801721515065019972755508231277187942000469201203831111910933306663774326882141942367476998576614604744551536189870139263808136339941455763003929041404684772902291618871915597362579408803475717600856670163840051313129578945480300785763374792495118297626377340759348915463429784490325230195631094164151767977796399897364808272917913665567837046124800836767033707739382853745282251488655569515322701411186632449562554324726456310187237122667578242530076899405455762252578081486815712948282897139666057027063339633482291583516329019418789554422022267031436238656463502408930304469807333218335378627137288640268451849012485454599637630291155680860323696664259355698126500382031369430463920356020723093448373582233094503766610993614667252876678298022852305418754508134293788144891793532228664044875232244399004799764520830744366840075437939737878792252477851706609794154209535832691373095762025776140008516865483699808040314492332367866276331269902367394914713583955821129383368499304123812703379582672086063699724529967275276593404652003831815535836478699182035298237849670820500439539637300049205082899396055268389788059506374475787378673796442909298709217154239272942804908591884011655124105648428346415653062059192319452071736665235182345025219617079179027949674406869607790176121054137685847858719108217054858082991734065901599742913618069444676753681409116955130612358456626709586717948134101201501481158168989321835735033090367589348264275482430636104051375283376691210273170800036426722007947413861878201453986610236972526634701263059373318951342626886010317767704785581972671878735765512423674423767481276665008335679949194691929916987426230705139720573280117118117215156318914017196871800991520774621831671396391385943701373561289089728457978553686194938486207095355821385484953489335284083276191368036541541163038204026745442305557062534924499010372093218249352727423949407137326700612566486611039460998415337937605725647379541434799293879257086110148224678858622793075439367675223421124149398403453723012412867216263208429689622992634881371298778773388471011288156773950232208328896622448899651103256240002012079882807275001866284690158615357208902978041343751995007991895587726258907259751983248936473583531345660188885282011307121787003616329598493517247738382690513137642488377324125114925497852554092826333252503437225001501011262684087246353747361043262776761807955514872182793698054513830020910829297231687836062128717689622750802917983519388792233988435659055703342773166924251715826239067923394858380901366163971348072140094238715246248942910401854852737128769168842617173525351527960184306133051519291496805770897746598857666550547100958825558429961770210349638505419440042584833762458449437475090968447516089020234812264813827492524747529838782332046265402414145649113042018490264257144689532036110939069457788740477247300138051729661881388994680452212756655866938972507547000324835064417501813997976969643188377926161726790330062199914328533355109698887296681639422497713852031852359722802797188393233335265043685276171833569802882698225144275259635686601538296886259036640932976680099588993617930426097565943840645017852876882445663165447121079463045015201133418480382833353609310816723879530200202300683564194757010512197453234027838110263544853959362569728388918979768209404548894270784389143215728465035361707565201890237487775501285387906322631932865370167926943443227981784474524203666332084628804772699592095075888357125162320637786062598173141185782591554531892988795612893250831461807536128828443446904663105939798234766673765313413707006330480206605625684323431694904435440629015633705911616952238660807704806940198305671954365595854738009666125774186804484192463129157485468729301453983983055959660280884279409455840302783903724330722807163334242461691268231638487084362158286831756583023189369789434314440631396538106190967471517555919764442386513684065010591075890600076879623483255191282028492945626367148273863623764706851864281614747687716659781012963355393126305880877055231389999809074998696559591840655388979210665486275426460822186792692472134958074669590882673211577309071193545970294448526045932250628894717397568771699133807324343735501351932448719711020040450460445844559335971236459326091288119771763801593472172781727775693715932525326353772827494327346365136862718676945314466785421320555043384636411371574062246856833027298790655162655700605726809737492447732357973346607198536664900376169613430759292863760034638466344527507869844263129051244359142219214921152334536027866042068911532053079272600009095039096682089411337023654734912150181023159027074562487268188010663869099448459827663180117636320814581128592898828753789432361667303754402351122618611413128316556334559176775300342076734555831719615010889110869755244974080950234652754678739177438773848548046715134688833660604107656400453321563254735531506614080375203613366503752007058940032738483269418452018646508018310586335728769712413544622128951100796185179646772061849932793556603223231211434882745352113341017394234356346264818893782994170468849307058381801416892824222032531407079537940009445209742672107596170583462831104007858530990432784246291125177285492554667820287716551896596475965852925016823831454575487296046733635578950800965186542165857376242790568318259065729372172387316878204529812504188547814498432626670926808981757229891786121057455354263728011447907354926776670879912919066541022420190813432875848090223333076587721142571515094144937234909090335688182647536571873453036144889105826065020085948296689231543910011806708549847315551444330417427485176906167773849750418916408399929212575396282205534864777820460512533903740069723990575366639676497723521552480519635283981724168594743564537991641489627042103714581028070501393584138494465857846961093842394353695703047164236641487141384462248541993533497327074529071016416402035389618931409998314896389391225596616668840409428802078235150506347857785487752574732685254813174674431939433080589584139593433059165555576189254222615809262547446487503757645010443674286570241415086916874668112828360008839152430299468709637324021244883291517846508155663265996126148268162468383508355172996089112165444164400815081939739547833584928055702539048300400082894773139461131024171944526593632876482329816619909671677430686107730328312540432999854862832467055706003624111712206177026839852867241297350719053249883507672301087237740363006809732508245011632978379056670657219494797432511158357175956602391683822025274749537698243973765699844971611215326455132195044630175764599943914357876200057639657029123581745072208306602851580904817180284594731023181766860000254834976268515686336389078402147165119450653103951215011257180089109945646466942441429555630847635422116155153664401774503415909955457476073036177748804934717116534463050348962481864070010168032122157829630445395993471281489019322939195706461332918878936564433701061993976969016326686489111088306609453881150593681439012238118087788651888203647326964644581518408616275257012956851287144699929901552210035706891655224069945787358830964755031350807791283366721869590326106210950179173389823618743780083146137886571843123840868351636952690811758505814245439450220732747086981279926296837500959304097396384456652712431272414585130919066715781740855099387142071455060615768356214801233737430943823940547106246944193981863161597193230449955622076601984922026989844205265160478538997640206936788744681123872492991834657027701842828240066781416985965610826881376000968045618292280008382569666917198368968954433602179903557796228448168716642657177357731316474791052766971244346256127780480464583391643354030835102272243737242463772207389936417803591356230523658177346033324433497575688533534262488400555951889965034758333394277331140967890993637265610977767787371719312777163303795867710199128265035406064518077945989336640545815926457613832901625016642669089834866336936026724779318923632307948447281068198974031642432859671497546877382263970971034648807698547265495616752346601176179088657886674191862277977082716792830088084570872234626039574496084173261906246741152529998749911089940138271296311654368600279907464902603280895200997662258470360430495991577415061577602010241758641557517871699915524776408488500031625525548647517466218125589773913957848711112920019625579494523128300617702019158172592339520932984710594656982742959874033442594382153385862138815954581522235247507732817460220925668299497177727225855908166686397391351236223293558670599415358260091340408195554272901025832554711980774879232604046951988910361829152190805098886957967987453787763820022890721290365554424623137341423718260589718636624527227176235449724461818292224163511025107610286743304398805065112522988643091352504284752023926238587547215708696493587022708692881190156511797584493466473568897089947809588172776044792355067708138267495288616720051093965052822905416292501865864398210631118685507319302556492266749353230900958437465553843959659493587587753692988104692310621743397627355535262933885841654303208181659332704481967133539472880866062790058642119698976722551658043546598442726158774617393661407861727610997590084704794264270205028131549244380580791690298139687014809817462139620935261493103106012344395583709297687717590199703445349125245319010888970367760786722084175419943736410937826065824575253250772692223442702644520452172708595055888779850971433909082491808720529328753398788212207337625094832411473247730782367916504631660813355106270669211724881056100493353494810229176053109701906242047816340590905126662809683325620924470361169304196296875237136751892930975833169207889936703275178125714155443906761895589614836251653031071326081032747758167286283684300092023391617004667111049255047449526822196519227265209926342342001644199617969397742512108883146198956919382592197265938128267747779605889501464969099103937133509440940742837745944116151331021803219834069851611823458058216218231352984369512708928724439083203164352461020831549086137788615186661543480274833156280156491520392140022952721566586573769884638459909061593830320663823322960779632539523869467953439696232483526355977208185341698491737183981424639279674040271480564392699390589198032207403122593196227290452441217937488643783784621662215520910081200388803529138128387625789147466035197304553888644308172702134456474341069760937239827810107584092250829632973065586376468202612463669803394649150194692726433151539163810301454811171317702249437491257516806548239785638422351862960126144035880632921964054158309185513601191914335712631213422873086014564576628073754177304499623817511893576602899266709855016355431893167084342931697869022445570053172384202169168191806857262468551657578922030147564093045030523807331592273467562524974124939795083752642636536128601096298591015185313266563269647859887010440149706372139124636147916733901055724562430925241301994468102858053857145267089330310636416691001277126406270375461189347052952580814572383471290246212677131175002281918291608281834260009914561999227563048973862743054868142320536614055818781922223069609908449015461718475358396180213531772548142790361480601125387296709964050193347246023535862421028666181157580248859797277301523299475995318288383391391485227339215813316658164110750929223658044843865591069788599551868845982831096428952056233132455802626159966235106070883594202394524247268539454226002035093962494773060742481897831114782135324364923507654486764986631359243397013609298603187844207984540280522398861394762671618657655494893753987853858047581791743894742505479499351855663345014928529812946886992113835825630537666337259504219238687216221177565567552253653670050178535629020506972196187648967358625980462721293930400026100814490043300091230627619778815602407407274819249187477347710227819912826654757083945102432212649114660846723493578878811841352246948544077227973387916186184695126025334329347497402264494901056333100410950936390706027727624935495382985394220282129172998399497434994497243750358205096362723897613305992092511070362375595044700753853066230288294925308546158571121749417238312928670516929255018469343519963137151580704615224532664229263203752183570153263425791941555381610579838054864062805273493232066387172549872527583106772885422821381946280751374640355321244716310270616015253426813646402178731394533786231152769983682296170151830410980309700204735098080692895943728784650563308892275672025657822306963713740345736821862505057794706408015819260230587307533411454990382127398351608681310907190780400992683276296301120638485028273554262828195406011174036116134547184446103572304350464288683676687543750690413821452933792430749764411476580040741900194256886566462746818559663663306686629043635542623958574489232326637256386979509947514752166751959305760336419402173886336406915920270130235174618776605299951691601009500859970434485696072217277892047728833887095901751959465210290822235311205777904734303110323833940985862234052864315790627735566292320577175256993542187145387996189367161243659201489791463960593398070440632318234172708756595329870482093280875163471358856896764431549420543301387257948861885685903394821801252417211883136934948096213053272165889303248126088524536347556566760447625415090542677062240059287145780920671455061115914579937514165228906044086685882720114970795218515826316881742648837376661459757115763312347621764232388502885381065428340943583596977335875732313414756026004325647547950602946431166995440730242603015298783294909842345970152263134621962982130837795005114692773758552486349785065509063452593349874889133637337700461654681846215960330789938780189946570380982167189541136827901630358800406266284628785127844678737135807887522438829135848993088097388895507208552342452971918965389000930566799332047134151020893645155437381056538618032291718768466186478237087503996217657139486273605564221630866344723046219574764548205174929657805597574052243010617206012240231344470796350442569463626529253850088226487365106752196727459474980225262597365431492805326465203363585472122771087783604951529527255854582768873955075527475417151274142825989448453608746797891514042105246838184474071414329947324343454335115857227614530138982070150559791865175527955215880742895085260202340868856298457914698979632183178570994118631468468069596083226752062595841366904922174412776438842074159254224753858315155248924478423407607337146955806055025379167284941899024671377414368594741759699868504261174434162339207423075659156729836930474641052704831064238380841412656786092224011242084719805269922200192235072495136610684171184375178017166978900939820156207804527788915142105150662530754182259503279097606778155699929703159775958702091000765663843353393334413906152977348191828900178471804567616916827088369902023996063169421128608748053468354210898884445153416373108642397248059261433170004228233927949286221969107467487695785759529919144051653649564389741583671739788978204147749570105260951256207702591704363765112607565545459694657329185395973950483869355003645123030105477696688451411927585817695748090257231657089587001846026231547122014292294284694525039765409553192124672953298204507914539169451895774625361955914468656124340329373287814188212265040841335423871634631764770007917318084397091623727096902262250923936903755437339730164584775070772043072108536512900601121743362860368437801020005170922712626249526860644974492313934047255426551716882090012968227496548002502514421730726339294286704257081636538972384004179711742078948391726610069223236592833531921332583573002780956187994957058646559288755875344427854165487523135934615593137733398624831677030971194358459440265229138409029940358241831234199416057754110113474146870367958020431653164338805635266299085695939560194098872081918966236945133645775354949237583931434512977916751445184083201161147034836790499739721296861446366954472918165582083450991162716208532014911657432497037740224348658897397446529056762370512001837074269560625332023509462044668775500945801582554705824809223037367887923269407694535433795225119892768532931246806342174414664603006698127487495289780073996664762815256549763623867111573882572559571414221391291744151344019661049883085664124967742376571049376071271834674914933153971529379179564535426493182110921054577896955233588535334507740371962264283926750481216630228297760917523538515919675226825642949649991665408194868374074856219598215419855717787179495154374339179110559195341253262708749103046974069451146534150732802376028352454129684715902798052026560360257678440877248782846467967665473099800345238277256006390637139171488702533218455155100241403489256661153794725908944641576881811580862643509561827312584361561708428152687902794816986114658375051803816086034021641486970935042980511252011376474660697322892361499749470312981654081330167648502968149891554551343335813932395456801652774024060667999215413765196314720959232874384000987890227617389217923750098910112211180894065558756690253193463440988038241371380551503102097916406721705259463854735208705100852716951832110620823639756069940986576785264095294127475311632650923406067570140262190899632564573305818490643042086557597149268157322819815319431595670455034346210439719554202496080328029818743199619533872887584119976677808223437157674317055946395821325239261426639116092762038003668654415157554316888308707325474500464835226476207119628930490757447870688656629387744874783460550111011480763052402121424843126248857721552428762168572239481671539224673391046198745053456569245624491567416364596933532839419056281126064673134026747733988871827353505649231733597781026184158730511803672976797681680729476665926922382900884597730659916413141628564280933953405843495313320893975102088644659840447909903033914850338783226328467744889832051317102853286327586006113988955585967953149539343310656389228416794659022464952009778717315184005195721305385131425857109751506843686652223772380669206378272418259303254849911080265839778171437588036027295391619528474218981622289909430522091146305185802546540584783874978949321876766670476680804655019118284019377939569514331168517301791545186677136010594218013970443998666431590417640267984977014505967699666071485761918402108163442426285823590297127579657141616091546521293905732048862150024159877022272664880578340715056626022827568016372533171844602014868958375008240132623378092388703969134637629523695071760858551488579128501660611030383179506056691487305925848123117435168816740893419563506522085380757308720285402839120558227947314676506675983043972280433723733641798897505949145985215944514809584679087602647265061602708257357591659275710093158607394518314731384580405815101431324210959007193642884688450080795947983199535560923248685440354215061100290303504053880267090650422506610344495440032769968836719919361621201179947551041179956498431461179260427730456260266517308810779920443344098098720785240599725800827271198213515518609919864615244338147854054935818566545758192111058412624390986214390642131753178651097481452499642906864251480859517643376101012893283420060081952679741521067016132182200600452758260802791982468295165229623755559212299978782655240050206812063461526769455670224372022062361984184680517979014061102299409813411074661722524408632133831725802020774589498286374631777685833577967428953536465778361961768304855834007817274766870299141916875346395485085086645913521084493011071257139655274854937416534727505874989398943762203867478260940634972206124804804019762789002286025732784122638346774615774039594300853401768775259072143974071390864114656593454595847542749186895929100842568762970738743423421818263516647854865202685506887562295352467454004026213643415903051418006452258028464617344636790274945049542532977709035626784441837210168427193477320168949260212929109091194468931581715106104404852727479751586590909724014078214403691423343875414853625937520800046972803968541096036506858895255402799542138685941849020729686234820944384285943713707548054320580539687661466263234079752192056529385272084944600247221324197961889383973771352620130835322111257473112646026978610034584421005365253539729457904532870175460369879307519619305929327350964205882839877030480628563116120954002256669763261634837024415256524626207806925848352855302977861922557880444793411031398257153480847769049253407585227567452916961754837736289620080838913381474214676829499682529479698027586208023108076352841244871415682144481204568336407455618046452187753478894364699383718333032866271022496267065416109363704302815962472370236371897715997578684347662717807048056047355185600246098786489542009034784836383164789418194292754612407319841695805770349501483960741351221617482488793512929393676084643823253559784625574163428330692286590581816306664154422654339532789351232989469013608805774109616967067213093680597152316679288205438855769184872517136164781811431618651993122661882108935902698553966382649411819428643308866915297757976529783648138681877159566599138924863663944977353198606606687041394131294988185347518685019484916700626393097598076688029770760155261770840228468370900891036914674185300361746735592981707818322378571028250325922081817812631927040005844919864268063467155469831901952836938262918807878883758787183609835606341780017268904217025902366085805313683044633146993237019719120128176023268535995410750830505028562300864923905839032174158454410389397408313245881614180096635337398547198283001380977299354123674718833004774840711909407757228036389034309101355333715464688508876320996359336786775010806661068514504544479508583801863750934769119068515768964251462728578461006942805073158459091767351639478160556346677924780989797908244846147557260389516797076772140207161914472536554205875425399293015484378906294954358624238664768372503124507606550644762954853876755273419849697382970562120690492240509106793642646380598763668407521243997303853534012600109076799800649497246847676097463639849592932179892478238389170517471257199359063639547869853435687052656581923294978192589185837680842919569392082671526479141402754321291388555745318761868734499061590664437020972714205175479703381226022808742987236255836405123560857878249505666607957999505827413317820070438346757345744151785107830400659790392855278511900601625912416250649404887824337132417178375598958707584292329693137557508399045935546066475337365904247811582267968588904079392719161798298566455903474522198196276781349974057282146171369974545062712081330589665285886541003476012465087282542731869663306756261966560507513945523204074931446351880546690977252278159333626901392433537530548055270884310271041867508451145035176819029110630398392718108533191097603982688376970147040450681850680786438027041959375356936044180108192596762412024019193721552061924193176055117846588225049544545885317700277702768356227118314749331711953472295884940821188461867917430297402420383837044283389359086420608495080678207570922263210355433761274155807218296951076130698233190873446824232346754636326135094933214320147712311208833028232728665731688777424439174201705316087925997358409337065385524736837013981365530726227640864099585751683328717763964011282273512387320940299846300891746481776565884399892858126481199708760298244925448875397630462497368402409602969122325557925579404372672298977096100431225949914329681016626678434444824934051004357558741230176987244238820808984676558661941406585744467061148793255777094875779483079744018785202618211937135126526456790604374645749658291915220041349164066262523562800546609702362162950471212727375861720292046699787067627295893890476178727641158351123740478976811383915993393644561152108060899194046387723513508234526293302188551719624308983265428871376344187896980737929299090304589338826520148053445686631131551580403603284475857174520084286408577413315385564313565050469171517554991659650551480809034603581974222483165989788842019239304375799793906074787640422086204689694977047363600579379300870474214845292366827449665697759635705881506256283374636246085499419595303040853581670686367820798851949818875943788829082434255907139523165812281620596784793992823887178620898206798984002903049644696684468363848743277782304296865687078923255789826224666717115444050887811816675308140143799114471606218035652575608616279645911805740683721928331159128131478053842626936136024064886542813118394615998209694141475108393352358218417583646418914840563070236591661388369741024123195014800035258251990039030662393798585893120590388404209664018474407113060573598591453781916339600294274114846406406374086961048247702900648434736316821192592530302368936294770518499816286663008612598185038405128601076886571312533584500920866153152560106286682259934178916908661015383194250424302479444874409006464127361721957965293190925666726690064420667074579399123735636641139345147340308431741507222191014611379754179692456189413581240038567180026914895028575236738115548917551955416570390231423482807117573378029483447199811096943266291963022654886980816474469061023476273749197814546978885606506929078024976868371720611592924798371114305982739002562172689971317035368917782152372815641583469390493709119194924170849047741310992601943259589928648943395150177608513592458772223800317088019633321102958858663024692260349863175217142062906408147448559819296004870176406630935013560146978930758526409933504539963478142686374088827609756424893706779090866588888564885960691565208239005986024758130928509744001796603137235539858595847359702778680306626439979467656620135819800849878152953963944149641280410946607225109583207929300662905898758800085656647570969443407226450179642343724464880113053957077742165630723996881267282097486490515833938962814852961882423206914455957035974750315390877883466340031841365223973278719761433532406019426923987882715161560267794817203888122727648659166204411492302167536703066482458397923069894576764421920905427003388551454159258346675800651102982267568017254284272548413237684784242345148149758085294309928953014098205155381772414961072447015743332139366835200887461895384375106955269435948198445775105864910784822562087334188598903708182754903839103866324887682484580501245046735550457207424380030337351413234394820367217202305810556232183472097007430394142671979565513074651043702556734977118926881039095893137759107327531973465252186248576665513213611661072670185965117085620418077149953816764690832608003201612875234589374912700916341847506410191276517871896694174967706990832084404644127248284791886578984902753613103592860356391520143706243249629808322282230924172488680014290835837250218618061576844120541194336114599918433081128727991836429785385162833582796850102959449403507090983282311472643617207971960869699654224376337796770793535668973695068864753886389757279165187976005058147824298096280158658295454473775826797669884595312695619298212693198570078175770465621418288393558584162941660034513567753439703530743607710466252789651032604158338020601704549112301500495612827554978036874176461730048435522960913527538532184729096383683075299129334149334795087596002799582739859429121622117719415858783219962807408943202061118622250122727456738486494619101584086120041917983528086852410261085382725730160432316154132631807215726628665992833619407465873410367206604468551167739606394075179694188079773001485061062339463097541694070755710320018739632903634127137797065088915858105561607534135553727954922553529571226922163667892777640442889393597799940731690841186550094223708095549344600937054113706343319616560111184690155583636076828998804815860328086665990193489823300124628354462725746736652455798068875470189705774808925034580088802512622736987926429358588958523145711737436724492717217084634987113754145145650773072057056433091766655952297080421104563873771256161768178932786481112574139704964329718216042245396875233895631543907217230609846448118159120870032534296599579100413393767539697099265168525088938607939334069036113617513852415636546718215863208054385545163668547655407688844994551027065641634356032169501778524995879612519017449030006251536688553867711996717610334930459360616835510057106186575250477434274890231393506836976573373868972010997181625343132647886808926360109981497697831851464484908842311378441604465371182463869958272993535398114895017830388335786517727208563869704210177059861696527109079204878008088265470225929476413545113218306150734265769024473595276415544931215456818427364587541053396748648638110278760848370090456213948019786255408926684525108769846759405996764731244872141127774948433752901286162133433856176768245769661767486125534951576849846684826348309383188978482137052984587342195486292225170644381017825360465544157258424920917447089463782517053438215247244128467358751596057019405463920863733975988418259720649875175506672406633955254213135334460543729576599150361749185352171467897148760707559790100953861772970279422889517761942325898240024261451218402059603257420341252159575834119117410828363682069405082956988922046785931832936371817871439390966440415254270084676050529385933016964559706457235492594787793645092608257048607713985693682192992090173711183369649450426093278928315180017151110666360732872420760798522520761607052882230636998675680042708945902512952445662110123152564619037325804521687420162119715042687550650090745005862189590061134269807648363650567067910285445995387807817099867510139324073939036516919708970514341492874669965391169537548478599808900700784877897258479729777247375067477588605630276027722179132824514154890815856707810334529071699144366377343978081548644868659499053891038186468876099825632946629632354241514366101835999706891353148898118702852876608137272082689955171511336549530929190539137683039924443736566098479417119778698356395368167970363107096298271838539879664619278327517569049084982294165508981835689789272915181158972618899352646186102327378914047077309731337794357642368835450183839647702636174351998128130176417751205153566247305492276786935426862358655991006211151747162408315494832116217004897247725569360310757709931619953096872127664003419032900811909476527070803282091891730465360884813291175752031178063727915542392628955098739001336814658648971483559318491790594430323562528504147969293191970558936310949245117447215599524100073262466050940200112087972636001239344502393742744450226555446453503921929126108205915421036024467606819831004621552849969571194163838209574222898101530190578427042272914995663882773557555014034957190197697551082720848490178714300704689251874894629987530726541918815954411332530458967873256282926621735121441783696173314022698981949547166175860733205365291836222149092886564729125318032633892579268204193997068096888583130452171504694823480189025714455988156709916230436394294978963070898223690977572057067100226843771717402679787468161693084259193297382842894331759902275043124471353219484666922703876253332709810137871768520164431000733370111374367614830792154375912314786115291385015859232582916269888708516657057912885642223445026684366066620468954175613285549969815372561359159446245981242000079021161920519976082251139861799978298663398828411144811023652124315667359729234502404313561508063432857082513089047961553334541421584029181127324479844674113739240404324489628413658993910710909484452137885514810533580428354520495512464946496063628669211027447136640792120114350727147777018838381627944072355096917723893139394731810553459493530708636905022249787196875544412849699067730103448273527923071810414311626292978274899559046552510383403095720601942320592551161899603404761301777585746697548881268626278982243287362889840482934680174709326718177651881091151858162145459267349630163083614730849458019243174373575043063044199785150191393819659800007709702485194297957855234948733607394300055765345370232656984437812936029017761874612319329010146109592963966646084374720193480098198165652596738681342640283220242976387281509146765838983463968878479799023534937202422485014077335541784424768591448022430587236407652612411132262362769501967090690093582334039138765120384596712379863412869416748802007812168130698312492043561643351792065353171549494542515227853929462337980554182497437786663206457700414131951952783031291326113936324541261379056246897471253488799296394065476562258089734869439215751671241018629686407125882216292949785806229534227577727463636216948957378591984696992310904481604895026088883787561181730262670926408478705327379822645013794880694305003549360350556875378059738186516891349660660141713492626535011244329227129017809370476769455990781466472210505913607945265317451885474649809461979304630491232690770402935226833031325678107580337820108502437920645215342471512527519780463947979060376632155899259016845253527402482011305934085894381502064963270466083175019206780607860545139814956751500234956814663643398219410817270388363944954619852824668731470504671472597022577824610164483477863498835858419312175381823335764405821261082774001370999267586271415648017132413593399417292874138142171999051228457499648797522130593689565766529808388416713580170613247037468640650628662514435740902397088969064962284914288559537842171270528240828660909810579869622109806449817438979760093297009679900398946778330430915515418684862578423954725868425444076445597302122698463066300997799199440092196662435637430894977918789798693136691857323870849952618341391023336363822790826729366186821856649460608912684282186127625586752193774969474545429959033551606432056764162190633936030447032911420181834586013055621348389853746901259850758160776362475873591037240437949604796375477146635669327297334008198385385948906219484730080626677611317500460087302179750324615984077163696506037437925634136459624017146457395208139352931024798606751332376316629181949590452000993480215406233993379494737109952308230959440629369729330744813817966783647939154482005330840244943944277864746775663445321196409933686274863715344227567844365577459832729773328500731037879921592102320782628551572986852792222534386659372319687436980293002357103447260454899045979146090802551487501281651567008467750014383713161371261019033181832258378872843512716152313426229662914465870579191875611531935612170486625159493393408417359862836903815194858759708334772831724683578601192237607223488311323304953004514803752696149351351825100338598953872672877314593335460842216311867511173797016794579168520942619763961421500777512539979950238996736143347937979262177845672055400763374835259463088245035863590033975740329878839259883973108602266802120966274180304101296707054140073579209013760194598229473081834115008938447321188818433658862261889583447573316420229865295255209838321048243127957473763460430049409489591828618231553808615744642556352044410840084412990672957186595864551747105263925717292265062527804059821975846845808713103975566094003401914586116779847930812995202598647476169913562763556933518802372038261707410088809106580450445724691063427863587173420324917896558750561121843390972190566451526556763838382537837438922670242738030858993745289892217585304745880282275887884186036264024319157310364434219928784029631737387911339532654880686643857064501861158478161325974736509166224467496880086942644741512660290508988112195473470895365508545187741572916982885426112587121769497611036465865905399842819424696589803433016234980644901885538868694183207536980057163558067468230955867754825170763418567862830487565998841129409769889696777886553829890291889007712997557424705499759602454113827724678308806104782178322830105013940105504785011186595619269155292693458891214907761250088191223797173000387661162120740958849510948315432531412458802818508496166095093215555878153012128515085774909704427733004888284853046490844363651806228207498286397268740833525716810578256341168910132831939766003224717107096093405679073744162736788544050173404944132188449974257592006366669231842598132588712862508587452861986348071246265163414189187534742541699803292428942827832762857778133132773953321474771073787222770067256367738418818222719258260777812940175533258195069289374046174443022030055801250269724050558257372863753581245525393988354935124897087471179643429354706229872848766275802116444249925426800778929159965104912000136898877242364368420531553669884901212867629258202165752999476030208887986347476320849383912306829681043134656436930966149779307790079037341198782165461537051056146017507103733106774065401185732298688687952686970422604119895771680940093906470533271259893642268952947362689379870510754243457676487965679418639048238685933271959014759144659821884402278946795990513186532843392270517930349501940740264568676925560077061377252014173888527961664482711385686674864757313704545503443026501610139354555663119380555707740107568767869678390697487052702291306342130577542066089594325724335307500421496019634752748989809463775724112415646551953509137728020187159330695335512940003047952621427880327581415591939160846162583847876516291856294822362045059022939261420356627746407981711793869199111670151941069207508297087840361668241319497786344631575951516353515627766101775354978747592446193226491419257965249347852395627108762620722206703354264201670681383369614546592799811075448984813311861096573120668876944573813090102913436794127901938140822631119476132342880176967351972991304206269741199146988493102015558296676139970462852907922441291089002937626025688592079485302726328699663864831515953131721884941567280741363371988580578229215834043542962960922888768887505347701548680948864760070980889611116425029438039461199659347625566825442943886307263162726454401697613863452810388023581830080784027846303513580283434544551113348944422682128501688895266467986315510086942323148164252966031454829662418833992524243879010413019541865586852076331018089956281164290355273887132725407672168958918573681715667873434753155997882732299748613383960921756993945663254278644158433667617020706013059973829389981431788985332687040976588480573421560726510723112812466452886603944693725450146471683035942863766168776256936471678434676188026121102686548865244972621061062229914436599892279935400531492395518695011799862592340051424739316935968076912305806989161689411372579469777050637276618710400549953163758054871511079392476827220307093640847689199909688234507771990006696414328169313642360321696509102604745255028199087002318943852241810929452152494824334024797269444781445917271044265346480583776766786334958777159893225766759744486019430972863936305660166938073489391867925161371325410485839631478953399844357730833798497407065206689730752447341319781032788560333830461600045527324914281342514897047089377911250678367737573536098685281713382658360743584470061718776470138456384011162570665638136634317122818299628964746846601519370537709319220679913781758460747289717405251989119471971094911016645781083651550743474559640748219642928521609621232978757120992612028425613206176591688714067552246433569212509051117022166238901165863037697390319264416088811411205801585717621152242858277305016577687514979226440266755614548810533266869636551556503719410324780117048225679974048415434518293194030248310005559922726333023813811396664258751315850969194924451118500584594021821068582139320161152739056259008540551225944925297126428809962479664365234433329225108168740451845152566182564353118795917056400649831572121246184952504450964998256007770019656939935874541216980166107132807274593524306018645301450644239228452301459240957360504525391059610899246122196306002814695671270758268009041895218546513720757029639212687053428933087841500032471571725193066629524897765586313352302381746377120167029946314452562414974197690029308931438104618474255450794355316401837888766718488497915456899008626776638635377647151396436472735075281361243753642591214030320764458115890366820924528246684522815774955558865010033190742703478254113740850708019169422047665931251147809481834002165670056016200117376952891122741962095595733173952488017509793141608395062640427847126120678876952934618791380952414963516640304600681101638217025457049848043406331357032843974092284134396424619911128325997721722711824191264491369884457209527863375412738978945514065926115132305159808088807162848179270807104946464261134015430153954496033465925767065888667806034268783116814350684451756425428227270636145750184120662565368104497737219561608557304949839904479705802609087347180876694471855572710924551818637299352738342304577519749530816708906900221121749153947302557525563349455621528428265148064043246932948232224124800174731810143201464732993044779942625699234580101767427077844056225983273458456059358585177159268765251774058625503207573823376315498134825978617339388549930420527123893360030470765815263659059888867017931555338581724214285613742587161907998345293061557835549612317628928261851880524949246700960401321641972823793775870480868437715583427435777881270105410931842659877347916413671331591978775613894235147140081043574255108737854897927230217655460788308709569087245476447491236876752214112467694926127613273181106471128617694808164159336704403818066493468279017563869551697045206238773775176274203446060869958186020308940171282925286600534831260364428490303368042040175298432423335506170605194589178360480645527949088411271396230026120538841797718186225285142058965252693624121928620662388213088282342571959150311007432625441724558946328393386933169574348792834710964909584551382711615859279486625527660757102193800090178962775794074727097326154495601561208179802836202236770969244846110758687813183772000853993606256212778142537583899792733977746603215755169525378408635536868133195784236470786952083546009196698813429876381085776534970258259642776435898261492221556502800832887054304784399463667140115483808045886874233903510600709374062760630221966407806397974140111628772636318168185532997279070390083133033068426938493047465701474355269108759600303150245220502632473260963069924828996110162287100252927181056126965964606303978875594116866279137489444157155465979016794280225459522112378652571451296225476344508645330331273729749511276140251811672806885816140509787555290013074604509376922696864054458592746415908849306820039537219491162932096828956058869804317912250029377907621650757143695217598818976885456454944503367119642883485253525832025159113274103013130178990974328238673336485181908546084094237348250378760696903037763686230774888749734556583960682431101679617728343785103517175950934725256199671305989612569563721202848814346353261150616025061928713282379354442775877575175088615344260966367487238188065699057761131083992726838569571016605429416269693138123744634221989173768461903177502812543382816520965586550712804186089859476363123651458146448584902435351669349020743625845083058556636264963176417347934831103766545433256777236253252792516706254601209975445024987932115307305800810737615483821560960054501537684527949924933677076324815376523062285632479071519815062259131821919251494682172191054555814183516597936480177839904661384608533434644506866972973450359209548652906246534130189026417012296391913072481970941801187142065239777724352325226614168391684268083226077040444616425060659136230532611983726651113649982672795831244644090253119656214997498948798116818436698444161140315203028667772486397391959881599340074901094666848493911995924357393332685447279285466968422860909715528612513058604565846289714610357940090796769755465190577716097591423352580219181625973867234446528678051367800883441081406075145668614545758135216153048754120982680079035142429970929645868801375863479307217463394739975650147342767048211897594618005776174741792184534177076518533551522325766961255887367760606357990025257948571459154715901646206411074339686992061165164888402975711389465560880696486580603884393451231965714029366757338988101137632190687036786346950719113492158198003167146180494097131220032179154685246896120634399729724718815045714542156149741312380161671780346197478724131856670315252667989078937541899693389256881160389745304971864783002957341273384751858614390247498066713533813679845625579683428163564514422152902955642275632377833323575880090716404127399102677228581935551062382728656243360700024084732046411172166352302499475322464512457074803478235600762432882301448829276447819290201550858352945275065721536911704920814174572662890152637868588967196110638286140438200377822572195947918925650448516247066693035471429953033561673636742478343367046799576880271640747443862984452856120232987477643231226467878425000643782575186923890319035847300659568628384842066939368735548838151081344153227273028343033825968815804102289869701023200864032334674912148709586785454506659470434558744279850687175317162671848022530489474812864330947309571198097775348371599427439689973946867462926864514283068276313776164797495601028574571744165949626703089923013155501243269520430182626401664874097097331225001899128847383875865511184191095907339284664121720472221905514617669236301270137200716744583847047714485525955189764631684550013033133244961887780095899448366993871677719483452041088375521161418763364666909963389318356418032666315113433065926310777462655926091512904996148061413763782040799468175543197317833648981483613727985543535373390320445859260390157901794363113037229186842041168958763027842687175861842260642477017984421742395213827258918889243899331086231847634388985303891468725798922633574882630337076702034386107270318925690948924487720214950015952427696571486833104159193417631332535665833795947534160171410562860631154481432231837352494853058696248940446450630839865383221841147178848492901657700365136828178016643315638256791523497054569337851773405950668873553912441436976146779701631092757802422796039840956164635220603610672488382525081791542928284012472685000727333290120670921928622659914718537915587686649923132511428673399723002131882980235108721099159437350562121043079043752935582474799344823108065120557468194639541784393775478638879942191557548122297494271098614063390678064996352293781191153306350935437102669890847288136174589352290648964287407059986072222239422081117852838043520131428496530358686545645093562279522798529408122699502857157824692480532958233404525980755828704864394657983990166626887274572062361600956275497143873649878379838285424143974722222135454779720427026308148368019815754662269852564713371838116158603247527314545258602537393296859750696494866830324295389960943823199151674871707330720198235983858604603391707635784404439767536592212252300235909510874944387214666039761767130724460837941050741406321014424598872850528853538454757717634166721530751967301108258853854670584974324670364807661330725368101169567565612956740101571307934441651769771429358129528166043982411237829456507254121693982558035612583987159988659765857636996898430337585985906861789706507702542625344187773222130017532979154709448511611873645618731302979635798929239851961678375486732972418005297662457132166645555755175286867990946648431932174424327916882526216116777208334480432365886726342289475352206459989929446243122375560614452624099792388078572207571144426470714104912588287460934019848425232777399021266995868129544070818287863848489988991311958514552880149994418043547184314294249886461546539438262698144261127135060853000218186312927485705620096437060795403901261084243914319387264484569564111885470979801224063003392162060477211034739893055536761094379131862638618685231844549103522751593770952417562649334392544192545903444472472858579264026164711152280665116610548551959269838408773700321606576761721715361343265961071059535646040998269916610658604499581846818473853541193016985048152832124976264771861517127301505880787027699802707462828199110216851052675138905682385781012722279394302741957679000525422920051009243189801482160741802832954920855229492657954579836858511971122195470980405718688519585958960390308718295495873708653682269235216271491605683544714159760024642117717932251259875689614225302005075013988919553983901737624315813832456826748153851686601437108017279022188647012347711244503569368263385258581635301283291006945175732105301535950452995343226604628906173690058407972857703371820988382765318006656489308978555162308283915042478896885784552441268112013038740743946151449617595223811915150055915644142451805178999298920543097728293345882250228438435013397645273879194862210025390104609951602296092621278297059678823053832458785336473059964949447016377836429960567956448723217913960391915156629292009090788395233697844403775096773821593534325874558142756991617842867162726181862188571535503313288682654536048959632437296307799750128441245847515600898712297190693377945170356001860090520051188432538331290600366643647670996427416788472524533248633436989013874957513411522089681993962190287272039240779307713060840848790890906499614695520277863082262838208052177042696629757294016485509069802654324282967085782094252676931422846737535226301245194271310586344529534687120661686529443992938841539540898241861852399492457981388620968234174405494269372841072452300708169008292622588198177926586683557833227990584637949889633363979956761734422116361091549324582073812346874469103164258137216794216785882722206655295278569406436386291699756595685146850138872079609074110039131210114719443932971762177812874150979649450094782190816934798866267028360657777041273757505103214587136047456191824596796751924340145853235812486325883466479069997710338856549450694209689724805392966825465051591980814854053880421057201834048887868850993046535459283597821153363911128185269447858914227680567257008501518463574338737264992530078322515239190346574457716016067561900406084818795741139468536005168718501003997571001536814231069372724936295538074580910744223135712950666965117524766335166273329755845026308642492712806040458687775426790540534226153740939676513099209478773338385473304139023550624382672307691559752526726017419437947971232706816356361034099924924069915066314907550434951218970929346185184706890325363563604878231053704508249426565335551720016914697793780098244074510387128484371231700803300537503702607108192310072896396404083986885027459629403346806338938999216505143228912309470358476231065880590563112407161146006754963185776087097310096624249118348080230857942797160155210947363377333952926045650565906393556313547713853964940298489353961693924866221773646288559028458963073291068562166443367560823522499764753080376898987806390541149368262299226112512132511058075908394013241604141951124465314647374413126545740649487027289116112304951619587193209949004805319109066633706176825376730044424916086578330529389511191401856322961849394475656413523988054741872737776786824421559018803629052877929753972236298076176246305852963899505619682591069603845345476880045804758921362438235691267673369936005806500538551485983897361034270058139528281690643513043991331503790815859577688033065955865214009957599662341554535860097455764737389937926997955591770785409626785295457851756645386435381267723602257450099548006648307843687925383560929120764598725435605641345008732672996346083116609393901428845041758964472398056683516011784511683230268132101167463067420727802812974678314036522989808644717121058337179087103225164616339423145859509751283897465174529568265462178213730206773277601768368976100664273620059447695401132306677772853877932895738858133413718194411144968554032220662182214768016144601653433839012614685508915441783280054096783441778999346293069553982748366236448117198252096378323295741648510433028166168188659501443319480998517785937137257833575223752055286112479098617793876419996435139451867006175822692809527506488744896319894791022834347332449074899156218655699928786957882053967678085218353110830186877307824720614389144091711311149412947464644842034892902918747788829668089690126913301001369593655026553905524658539442325996710632483142651761054146429531684084521888070890006395660124555384255084627591991464623500217016735774901897889872522981267400182395863643723567915348592615881049192015662548798483081232042179545940272881294408267598675363121623023428908534914263044810450897369735376932649975808822622661399453474259575950651468390173107903717401361907502514001556349819111854770602472075557518964037681129114323059147786631382352904345968847954086358006299551746876459602634762883954700907805198542520669016597806139497179312709318601748734295216014340034266227342912485766700092042726455858319397111354756632358969251700899755923317054278732392610901518342973985257206905158241035677415576316133187118861333809460091358524327337283159534698472088998251301055284189526534963751863910030233656735152822043740688790915887440419776551359338138982706461112930462318877362484298395761196408333389998654145739222335391912623839364988555216582043957634910965436930475514240245379516425158739437003566743001816549738254756324479331711710779389049566133704000710134210059118297071783530932728396484805810657097452697957205888236128682478543796810646738793562700484782054249884369111665507149378962710055039393695021852084525381659686371399072348192678911338158535738644104187245694566269305045657398605067151134818753470154790844228171915173126981016634646117295451340736246717320613197590720580669213353797958868338559256266408354141970876916969329196736633963477928201832066299766539272420055598320770804004279988395152642973941230695494745948468255937657244898886662699356833536225958091438039874088411458185607748720020798306816466607448922541098267655436439301850447803625413664536320610782609573823093146073836067456122225866972078408935942285328993625168298439654389649257361200024934795828893135633545725656173842516980712332937523885446793013875950196994149199896846170862328341452531807341740036827604295383646102632440826614602637587944836261335302900525109867762859694730388626069708908374745970742302399478441485272081028316332541644896979703938206465594448790442857472865625000421704236531893435564882203585037184920061905374567003130775319917930232637786967368972507397480732235686635718654574315671865840742028158554809129850406957851354371482575257529147867708342066099471772715498423515630764379492372596038815553399473602309398214848396863155478514042590303701396529018627728450535742560498292702891306714663235479390653984793218910714293587673422249839116765985303110138612151968176396519701343087424104963047963856765565358935797233528144768555173496754865491882746584059340995071875051261733420357889725601179266708452776320268780752371254740687376224900684647928261661353310443160655402795251743401927842394543939695946302791351472422762260938520323565225487557760008768674774097985228100020739305633121918527185515032848828355942225925117103803400007772716517133064587433808066644188227882013431926752493281405746232571804693084295934880461737111555362293910269064619875696719627201590796492279265195943752402273465457516624472104294503404246166831283950760998291341902301937144236558095649109685346730837267305690683897426741617626504903453884627987570899238078815848522367715009216628646203751214227414466892537602958312278052344593824266791826173433288428605372878770398331343668876585864925194709587853236920882310885186402268217871210008399684663678008006375812562271370151736297437300510113879338185540024780536096607647829266471239130549074615355886821836455965863551194341628056654426641318886111115900271506357665130468462415323763792844593032718834353301441122144858890085501484639815184067356847631010074264610939724227136030763394815990560936646714656738535468085102368061638824262915717775790452794833600875318236309312200250444635369195385175257599297761803846120054569331914407521196158737400159936469227398886640172241068410889731195449274115015400017792236591045984707181270099588307754563111377080859578620994088074510784404229222684029869460855426391191645555011959141692286758073616973256099855231362080610635626972684210651795738020904263735259803026339292438531430033561444276149331631543133237709051804852690633703388517815542857909174076146403344729920757177081183896234494519406867586927903685853973406048940462936623007310232117994458484325486720327298259015574058182065704272333080323745210907620050219030807905736630101943354459207771111597780267347648266074190851872079635037033286277868251143699787780694857476472162421274174955221806321949787006295607274320465386485762886645856189463570131468727673489176930148396185438460546307180921322396147992835656289852185323932529319553476742094931874586607950163516047045197691566120168034487541415085914685005297169842797730205232769404809380257012050509685719296668166701155842533648477188521694230149526302932519235565214316638567124137269717517413655906473588917984068693973705128681529654687394307660896212980019452865414295417517715629412705588308644362075728312438868854128151809494468887445136432895644010654374498793135283421028253104294441174109289041503585349041121986080867133592524577114489813682337745851323501985954632477246298829261387487513216197563906179361940237830977614096295038986462354717013756257948372977473055848083919627348940618137485987207718149198717967362313186073341200224062476671899278593765402096474496597490594743519821588950334787974420404988571882576108765187713081034911382327231555908541797848841955864925438797620483231055285773256933751568363996383995517551281992961742156698268541717145737965472520924764348578569551736395797449218056570567017001950150855761920673261255811774741992721768668244105790581425280121950651670228352401154397686922875497707657592282936591844695226995010422993621692242892934407616288607592902000675397848396432807717246755970179815876998924421521984234268170712200084932272592419034771096336258755102924942025486923160960719324941287302012700096287229121912795083294921938501885948092369117926117413467818044385909024111771431588170605357139809056424616469523010421010431280982277949284409525256140202350888077268803570865730749517285680944021832685511789620178084550748570213087111368628015630669823641328972836251946172300628013377302145084405835662400560051865743461996266545641615719911005001849683147778354383591106041138903836899821845893635909451322145255248282424564794661324522315958766516952516263457741790390724585145980615212017661130915964218716617119649550866047705415860289226404870226444036296533743253110025431467214397578713645373026580014784572118568550212665001878531180114356246383494409368955782459168632357634591200370046921127590731002482135130625481619376351915207123857920504297212142104032134516813443283918360756393390116207470554309324491708648468388415535491933542710736006950991595798941971320589162461618119853618455683125283998745314105027978684743742179841843825035716384335678513012856872215985907745469345157261160102409597852038825202266774729988107500861894912735231111523430674792191248847722565210108976458879239498015063226794841109075174481665469419347727531301095802377405404866868051868761728124681210956067239858441409746660760624775908799166807096799601165412430458185480148809003111315250554557502773783259656986576337828843857619071560036656618200252947794908494679743748347837312195033485076618910829760190378035767355119145995739529687165446469122280422658519812286668562691206964176421845478768194881184814986573343582702367028984950812264027105461146256776930394175604829473921052701864225089331918191646738374642281147733696551668949782322085945798053782554709645672854659402764449390338605817903223215199181928075220250338013499231926528357138776711475433117813913316114033510013695029789121768741188178769414644010142366955865129152107028187697739817201821646487896633691921136077128848752255457711169224173020866707599492009769975337644568737694929879251489753589943076877786579412071151498716637737370850141409538565581507129434002984398490125730016160758704304096635952990977741608278491231941669453799504793334630696435333862290576904510536121215495978880626252160084666650046467930997297447809596828928054082485317947891335002881541353967964502887932397717844515636029794988279971756838843850532545520151122626656301348673506712099980664482162749085215916805064858126047745202447550072812633982269971582389323711776832047922031647028249699991085420675843670668984685731226374817652611106247062635235307115290894036485342682637472678141267320012452812663325563619155251726897280560600210608368796387677344271188751309178285549550877914472103536682085691014456857898408775699714947181309084759120047292537476738114573194116618060572468106201059869087126066771108971417904426929993075853831861689738995472772872671933183980515836567788743623147428168403307372126404620060602677530619751391657573215207778018778696486495937422597151311720562280159335879500939948418360923286748758003734538183776325373184943188654204070303590945064310528561966358818850317275477040898330967858909016124292295020120995281380336258702064806506395021520096904387321253415504786177480732273889360404405337158122466899016970950910247194150335984492241581705110687749203738296270367054294320411948412029649230892424980648524963333189675071196078677483329316802116612024956225637684702014683961921951249432602398120715450541850493129274740229426071090919725944819933699860999665577446258287161027079841540745259972199535428108053988709334395996691600067294800888029240249047114534346500935249740263209499725983236398879374408124868682427583599732864791855569472656519080095024813903909917908944282844103148541912603508760206349490822033172781020973916000537403595470928106776629721823449101686625034590016307989796162976667078082954632872939059799580295334736241643539290011589791777422196048702178796168291294867698336765236590054695862384755792498509216566342939392203046237701125742646097356120010086071179870137154479738250952137750117223627764880888383031234126039995405639624685181354481694926269502070478502774508437706583817399910036347468265639853670653360715118798847750956005655354381617068230037800640523244285145199897523044149904697954682373838071373030256725209695522266812269186970552426960155045155446190065385287836677764667447105109264542833542531582137450133419266903067577217993634801927725435393894445372024797138999225592770974001459090025286599174336629676062608807455260647040867285328325053983123683762627643156002557082771009165305410484025814553301186506767431597385765104219276453210796769339746541123961732156445890688308896260935420725394055996664563920469762596744055591679161499624889617516806590248181538020053107007898073199974404068611726605786313037042006663013862042787157159998104013134531973836301239996489347038440943684743004940624905160986119706038679193336515569362749809803727547493466736716631929157023808523359842410444780585107487302500080878589629026406003897451568543094135321135411759091702087019564251524734434906580258042619351467876294972765294525744532951497018465767969874003734366413339389882454018556101571660067400629973698110514855187699056569564797896049705473016595662693775624360107227430694485135467385376986453453780059426542399432714431246184550606897971636801300316877345436630029251958920911712502175934074968603841082719581250429288178182393560709578349273457982203882940977601875909054105544430494614819518353706839392377778096810797937012831013454518301713545500070563989053171297655664098281806912757728014846766156686071180253245077623169892000828293586283139039511378402128202318160643955744139554488307669129158439542426391355943594344837073519869497300220680009819910058749359470095775431642229193650628011244430756778879052158181493996528340360365968652225072750109367784723683310363421881900287240085358225467808112359111100658032606489843715506712208191636165050976433252088203172679023890682074889621928747265408822092540950280049562232122450487247758744994575898200770996294751165975831180937136991948705371927985481541244111370954819221113635061213375213687452883509217969746484876988243810170086899849392720664560547880552016193035961713706736145751855626965228607928091026803233578374121851514516918465300348725097256308401070940015492014682097264475188515916590476006055825825071519925312321530542592353175668987162664783082069957851081412500959526940167187829644554575693606164694471823172448656361085010324935057740453331430934431853436755950903837182501145178872626814100197353113890124212226847152034019788482737224106108166425188731135381447873365616141890066309219270719163302118425819083843469149554967745308941965198217633725815350961458372633192080020167956747310975022862480910989352596944516242071360060062452968700169807664443787043139777100691210047006464516742594055184447731010454038871769424671732827794342232782601854241973090425187557643097741393069593836488218981794521048657649385021786836930573988495801649342634260626953303129701460292904635314446264647854148158914286267004966968745358109001687465007169749935484203211416251939318047764728063379380519421273574678433880027857602189819271696499428365410233408567877656210037179293764531229607301320811657735207741183109807316832605258130628703038798463060487612560663791775092324521430163814127978755485485407010005444808436858967778708839285019294964525004280267779674042308754453021494319112080323539749173355619850077526526746088804303862771867260293712391729485862475377771730042538225629176799566338388377575371103040996735636678256927295726063373689691115750268999412900452558461636388597834058313114510656604675959550069692397520209600199389616931393435026844558357626528189283923786746090113114375824149463079261206046391606610179307723574805236752743131699687453832383112923156344721843835635987296217013761797860422362744948118264660697448545872395876497615547733363555977693282768691457096023616021446406583662039824410882245853052163490775268257903179272125421497709042999616284550421400122961776843548206439952981310512747820636793329667689539670861607351228892463131179832462175500132224824628904183621195039652572858412037266439781569838723620440499245993560992449571115222485869742506278598806627394734639624045920564610279449936739354634103157219322383332872889759323247554830176711181720678169162973879523230436909607917131479745079752785259103407050588530628684662609267434446889882577869987106924963569342084392973916529992410199952058966138135420979106712805966933402304091273881167269501498840324948980612387881721892826493102378077511310246359645740604217088293844255875296992652924824153561027234906999601031512942421922295498851658270782709598457057911581869343227444588287935476667940635294369476485920470549318325815480240843098810144784929786839948609179089469436122933829598170858238776068639103622685567513431372483158477023163924143365596117606840757897812552403303718311605656297231186545669424999617776363657726693164893552738811161854804918344043060730773163566682948467117886041157338763010587160452311150936088082234661395612588179340861210430229319839102563983661981189759891261070848721591667688048550984233751764021783589636008046813470521309769022828007735077591262229470791583954093882417439063651610241997006744345733281801203576304329629302468212462446317264140263470027014373866247402391860245395174382931567662647808011243785745335942242720021247944752139970258359285669302463339081617743025688758976387715786128915842480313822544467997254948762323637176954486146273447489218431781536995100741722498568048023266338040576819597875174927909077218012336244307142544547220309383696716067370978627589724940685564869552896724130527551590464235724197175542349457854815586891419632818874045132711950442106311550684591363928578423636686217167012413820577483229635532350767969035915475499925776662983514975894279373529401451651660493092851002222312646865556977326167689654603239920011559535333980197487904207829405609618099828107318212726460624156950564979415816591153670735228315092461371220068816884724056996474048568030730392311672084986337570050990812196629676653432526988569841172731090734839647783929301294679449821280949202681420793975101293363705368194424264925379690669100277960764327897002815573781681222026448192445667428522043613794430711753937001648917607520691061857095078581656559435190136635963384542245841496027058453193834574287937708715692013259442665208761646605156558188170580999751510457982366863995870840332233328425540046583495241854263503627234586180758866637126712902130462639725274739533623010398651643509111515453198251303783042950436143720286294734923332744013508378724937696054652899294702125916239801118192737719263382206438756590651280090385480961253973747847376251831694345366153642267287879395045150571907187595545292905152354340237032974265038899715341588320120417660432155428533786001973488663353358612224420247536272006206320415065736632999972138401459860771627017469863954978262951915240793556384826766620437845772536443480435102509172542305819269592984364220822694316143464479914116174422589409508986878126579912391030265970563161571489988203904221023590104848504604848049942107683081893984203193985602275451918572590383039989605249529632483148464449394450038459175232466059136729985954966140065549732041178113197634541555009849738898388421394362910665486069240818089669865671916617298665724153734414814291432151680815015356850728295162969641655179776184780126237062575382955196211795488483445152888509523374888430572603226601806114793566467180925579537107119837909752969545337517252480654412004265289837649325279558239093478895928754914684521244379952655789430839857065840142419266227113033727108050413500898377516053720471933292026345808160776943959318857826130776066818178378686807232731481418702969698661266128499874235276406509570368776871754916970029311296092126058490374775018494018622928397870691645946985905269959452245073105356869744528791183606449191606295517907598879296094641976473284513387435032720465629991765121426450524165373160031323331393807186066695923140661996496379501204914219806420368651491012675492367748516810721693035442211118829602798536998409245057072424776343806107696562859994436412318597449635911962181409699707792055382496239291712493390559374804678741051419942254373716469921184916708526409645285262917575492127378740942409512178299555138306513934199838510847227795325750578213520588692453819237744660428887637225573830617933791541100328921670392458370096303775641114834461414281389365003471582152195073153471665596178463940661810337472454311719656219062506612918662184630804484361492307654241157241235521140608787805949064655560393338461797632188441130925122712243619568273220738263523055527581804875458693580942498510050672383170078117983113564971329258341525733398608905179112693155102822334818774562628751624351237591186986955209766433346958559249164841138535603721984015372119621010418435974002202217493307816809837788079875825283583450847627889219623162803609475877314797799763554315042127656511601338255273615378823936843614821866547473844388821514324862275678061417588338137796033481808581867887773114633090687235078444696458945582758191638752220470165308977583644061836515703451325473936314375183149777529123552864999756006741620825764377870463404445766049714680772625677214928025779459863541812894652214742609358026019504342653699873943524339058288234893946001865622875944495090013646072086910800898536029759690922763175352862494770694787592744820033476419036162040488454614979062692709712042628663485494262547777278485796247062450100693729140012116508424484656517566077244867956951513266082282995900118762239330349843206918710705352080109862782355906319169552488912280371063142885850014530004004910572102977902895989534111729803472179271383380285946968025700382206305272826740195755880735112772313107677575435595609593420874552027256296138420580924463542947852520167868415299526818804949750485438210579209051991153489270551068206110760625898739890521868420326306605964061293078077001326579786984153364006333771843523912011711196321542954016317354832923263302878030760593837679976666549759362324334155590207792005460774578540172554608936551135815803361143000098748284658706440273489132134356264954849866747994136592989387672944065662973431272047788596688631571890801761961334982770830712381832376451034780528860707297786153753352518283750950309535111980573088568311095766271445544436459549142203120876187139827788915678382255474590344021017572538163024655816752522237358109406099492072941631224929795335078683899399809489795020802017674676377908642192575994874056595696057274870901257700170599462982821353023059296999944531511892920168719539265988556904634943309972285607499149808312539066868791512884685814194690062071147170783443185929520630261274354326856676466129010245525204196355950837792464811842173209890164164982408854917993839077223067102007712656829758005979060303646380896526621015557256320431637962359121462909928084332798893028242766130743946439578457834392231222102327605704283523192669448670364895267545096656830892347389714444477592624756656333340703218133580561235025960729992501250085688058715688042207831378032414246994014562573416720354305152727516970141922266988870513122801677246683867625390914287327470044615227105557275497603962551370068726739125670046313320231950767972505510831431045881513789028271643543375431428102369316158839239915455362611697769700931995128916325859304476813491154842379692525190044695152179882663086189569890856260678094618930503371573261804183170897098709885179094317198319816088360874988486748445842532557913788348576322393982197040801749765276172779932663563665789574563101945222386470681297752493896845348836500014801049405707159431145892967529679647456770402984179814760662238157881798328577682852022355610458192590007433562282748981520666640893063959086144602971119567453974279250209038884689035865888798871720266432997318883853450230176373159471302158936974762654187813923070519510277115650052487768886753099484073006173230712132345937600446565897571547954349978985634951452866123096570078101202448187885714258091875053495407945902284114450143670433507504961328569755297071142617722135108584143073349517945673453560745850607148498800189384590465238527162955968489354238645199458558233690925513461974545282773837191374549470241024497630415118516078015536867960422882743024040394864367264421902765979794101680703418031570351652556368903462263270210106682855718672612279860696210842183355195538550572026334187868673725008582182800340038677872417613168691047500830460078621938061498900997870521507088820410695918064396368083365037772457198794015266035229746091994672629146279056813357730215820415514493188245153686014401412957752693295738097829980627645654192258459682738413712671213433098152671412226676607390413080810537569174084139975980003748644027799040962870065216587606667176360540798777696159651747564965108048822211586002609919675234287211106484372515346448785694038302828906352277183750938746484834900008790579843025670286277951343409570969980004520936145625798979080615356261017257933971041529046141877978978533684917101166330367802717749744064441221108025437632327164547377443049613153461957142000064223110788872913559914421194760960287997205077050213613004450620369406766845544771251625425529427007812608645691506742753675996448394713816911789533870730208451155596591907756611059564779950142968539744624659099531668557398776563103038554549111733417657585729457441187579051593678062108058997364499264845203917951472448090720302171134056945843643920901536484710183046257900413701006661387695474734456085689836579645253577744660377319964340502781355819408239804169292790987182090436154011975058332285766606008694086022844968646461226709337642438480958616599482037442814742971126633339636826554915192456434669853782059162977328242212355693144359606760864602699481097469931222623827345397492983780726951547429785331505885846962073423121138340626975838895748278218414246868088768961327181569203403650346420758587256262591343868121303168550251960851855535684727370754639588223592980416886997886604754462790411713611169199269876670113717493602839484919910323001607848564830091639833728135551409596231251624733274468869700456014430123529587600401072178735049411046274431670646823307374084656082873588667926050581634272510606825660150185233516411589619517593045481020716684936278528931960087594219980015943887490982980916276145073293194477417330052792776190486797949671353372644720480280749756482776830930010194365959283845844908060950283082344874104414379760274073695057640122688478141927756623481661266205513947319213123357003251877265574628392445972050170678391248211984717074063531380614532819261416418066115380375351781980991613243551171356479449258050467025521792353969897600917630633203729149745857328235861205453945226661948583791567553127099447183290478966805659787648554422642381178727951628006304954366754037647160641639773407117730998089235762544745646527104314606562250148475029746948062010815925368202583976977641667886056216265839246899399542968665714809469654904087694917209169676120984609276483588668946430983150756261684432193954276627355252688513313763409602489785708655858880954924062366310918649499043487593684521734474068156874235778862018961662499621363845653499621744066464800346323077334961447527367560816378523432455755564689602798931704588880011892241211868769352227309745052967233689036195425409395825012666730740672233580561063766120280493837077361900868491420892781278807372829930000038412001122634685995368207003144324031415241592308037770092325647613761222356573986153645902083189197533784472032573507578168009395788721395086463118961701805740587476476322642629384555344053620985259753467983684593723212492570960109666958554435921787449285414074516750757285325682493062896184051193866205035652445242496724305036569520201935991177860768075538499141030411262388171824066129632485139057517469234262036177685772110276383037591333476579846674161422132689256009101402073225717956483410349939882107684055141469670672741865220011007937573724557994451658794534543461209267074592022581910644592489384336781710291671156695502608953408008784389001703800186339032997513839963021891552525692496689584307416924279257268394559978065278774669457153107038824002613546779898663617479464998141799267240527231026875077130735664305953562549926726995687108557476626200623647233656909158055586813372353356762956773734239414101847460924479521898628482865028089908366793456141824104164000214099840188487433470025178851069259444203186777709736515304808636043058336363940675361456178325306917065598655820800065926359134565532736841620163425983567936305259412311228751707093193371646734806300845471649830409082531384921070844711432141809301193878460082802330120418147039319778821099269841229976339573515453210097888641495569391654460160414357595989248635838219422434945751215080034414914118656351263864699992573967437452170023080579523401259593223994570456159848295426875466367578732130713523985458165843240779289252769561710861788242204513001236878959212871332153301119044600159258708882038850075037930824106146250028657973165305230438635689349529174165238115142935106188030218323472579642422684884649960661014032473207713410485364821480542268426827602448263160059052086567896413179357145402489964017996465432617967210076346947254183434218363662135901956338950636040201853066075938782420199433158200355548957956167334169458371672992272472819353890565447563691994096139292863594194428802675181689500707265424687809646667161201697553760628950441167473739165483419820004008841646126259679223988592437934166601720034648036168527090015983515418050613581820331444404793460209183721813943084406695430448328334491851046659511206651682111316290223717071998783304043372013996334148461261830626701860256289025445590499016472289768932879298110401820941752930752860521128008311628247700752972291657059729417759395468068341842919742560145563799869121239634290798743905687346121869769269983088104076991634848995329457657454095888051832673924410606603295176299882905183406518819828916488203698567146800996556925586774714011269062646456717096766683922929617298303489563856895115138427877148459092009829700518531464965294683805778820363533375621610696451202588163136521921961305959314715692702764454545206640679160894903524463241995877627524430181168013329906916520228588064573751855867602003961338106769393826885921524103849919771147727392482817405567029964260761055869305212143152419172420192002168969566526984341726490102446305119980860185751288062286009216706579448503450410634715531735141566661182197633299948315689316333240047355659564856130584073997311961769768397759051719644448727235801858387000870711280572902521456038385112964599178953325125355088329285974490835083548161728649059698342495786391951978784341832236667575598956637380770321111396919243197948693984548170994699559218359085385147038834736695810671547181725692959103844612200517200908519887526737867662888419916725785176297915520444604599292771471114196106985473027073002325669725441694442225025480914912015954553108741078176767430689185506294882485413052787112004561002180538679096766091251177841263160320338467028494719718952991399292354444774512905171726934706694571044011285567015482380489266039438819690040029238210701014704290312994842142039140314827076696961774729209394385293468434437257957629163205770219452201601095394619266864823371803720884517772420072357673574595508503858812721634467670373638790034792193749237121441885491635684679804622595662032901257283280545449359811914113801285687134988047883435226181237063188739403263995635062789766008091805900257765013123215117837139115571093891324111944908827586323151556672043299840557888094534807559984939385509689853487738630526844628139736216269703590412976306792467126156998779086772539566485701968565455378526974397655794423023809428160757859526684022734773816124481533633024002800033674451056609273006350070823855319134172799664607717033205353439494829031881702192206794923757676136574266254294749304578628001771382997421911186161569904373402744633197968597771147234285067616717917165347752795379818560900401739599077465169820978945109351494865868361187102936091769786365303110112631185529923402803884414936269345312591542144336474879679838171244921363610195218603829717164915316848963294913511971987972619218172181446039075581199743676653257936022844642668976613927816153057194155620913761255977638308851283173587528561696871372403777817882765630890050364975591078599387227412677351325465292651514000540931905359690879006073519793494696226762961928280787556835657804621758370745606643506011625834714932353523671030593616956856677346400511069762958695487295292884361625703044126393597350632877007291523938590937622170789738088876807034007979666522217832386427298290058275780893931745213653228123572398742964076707219309471462062856419613598497733812892379006243437654479024816364145185942640641729905480111821437523730849948230259970201342082890705232155193595832505216249591131556364707487792159477753505077027511085428492148443407428693999297300074318010034188532244840455882992957389704504672755983114070805326142497361969215569221541118593102332076924293819529300865228468881447400755794089694611251452996992355509531754219992694850412515597552536817018466124246711262503494543252454849533135986882115829831269914327349021606752807540757118327960286641078135013917454839096413257972836675594042648567295523866175525657345493136236334562509395996166926709588778790548498318579422214926478041192010677554488870184875124272341612321382743631116853060917402014202085766963021881777187852489229623451172433353856728793719403233129743233133783015906313097877974886252698839426418069259733779154016010193197924157769655536012696122485823451521592667682372374667232237566435924240442166457914466384921005737665121460704044602354186413810715544186303072829739941841401172683880933622456726283564230421306650044563925034677633427232507237838914706564523370606382354412275877863263487892576072749313082661295297800391672560235513516258785554689801652607729393256093736434006696205715992379124946725502908194927082783073221081778239083097203806037203222039080144784793156289882336362009420665859803053003268970963237510994935043361479104972169520576867717755621491102910219638002097602206449298072238519666325109610524491969492358989435648396307808305736389011742377868579583996679615071300328222550428691315624809106371982046726744019580182008179625272400477310786061543384024690193132070988409737663659968656750393244737465927030522730406357985316401877128562197520834067965005273258064584420807996709333076544190880605208308254669800253190559046448479575133485615216265871679943049725386841308997602781088759483075531579175741542531305558323471122811098296974493506444544952738261556445633712274513267943023111876365893334258942370470423403517225652862907631573433428002208086881089892227104074153118576160611652349675114753024310227013492442318169959587147149299278921782035558065839528394002011187241027544776656956100089333592183678803607514101713040096876725865118239152544158615408386359030607509930856973823635334471403712789444110548921236275662652978543574439139501922546836990755958458835833864924161638461501178530731344834110973513296709324415375344906814743980874918238986750726700758317315908321336017245561464614172394355462783609096239051798531815380229565670753488230173991276489755865993058422156942142344947577808139385039533422394284166014075074545831193906387853416925922032077423488706781783780013637661936274173531630220740179667105820113680639314995307851669467841649584217696572191148006029959341520680049813271042177995798753530404256245408704877519072599872287002307838729724303510463280194715877744244308099680323162079861426076411118276971082400757432694382427748761285245770109732954492267526203269715178215476009521463074859044942160298942640534796758852611072143633509713025127251187166135362572822697733121889569928197807569912872159956321923760051552117448468068400339546163397677126426150300633670002575929426593367402094972360161087131341638796751189392085084561601970733381663808094428945631767982969576332823515211388225623599668375487245982891237402766522670567355005446650954988492007125774652640250251993375220850224513563915255520110241150479628979310283154814528281403561821370883959599513893093377810832531406279873724131239271300982123028481919073234131056293775888633319248422618200914701131112645881367693242909708712565017741090127873571991451848493356419608763150301220760479090631880808375947742696614795981152229481286195225332079664675027972622345724542644110393855588415581913288326867138103753029215909485844350169627916657684414367960330140621552416008206251410548026115636221974015822812884101295364190208226715343186559339859698361282744291666070310388711223979131237424244106531746836762254886505263073976523831837654666964495685892017199878578366925306985096866237381108809814189682535405170544483850224586687743985890512471821942394355692857464350592401659214943627726720383948896514012948980897023676406951143032090944822807711846473764845796207478885189569973284945784349561456225493296439465932861483190513090052026970243107907529781759073759515481885955756362640595464564490325201742323879996757234910378345193518675480712444238792210097688444062405830189293705321290692571165304865121007057379944081940149672511665365394160491939597374442078648177605163256217712225064491888984616964966579822722805373311983757546375405906425681936275560868579206030659755419028539249169429784019094340582563550128719635997414933052571429580217554738285310725178056659588026698131746729489887027259759237497502324504453051771094710688539606104926231162224060302222880869442435575817118021787431429544687658283592588415740729323967557563772204257178724885721443295334333923178322896986851143223169737468293705685775519703076570927224989563386379923543289959009590964427690615610986458077386008689979681911591966021014937038279445882463081360849207938765118116779733766971866284074839153851417015968891165326987630863633230122917183428317550290960311311620682992314188742306257190285930929542657345658274926412663640687024229684026656401990100266134090353934972658258161430867936506672629163419109938203396538384764604121813369751543291028532330279806548443741531365167421001535921272405319757245475259687598742195667761651572064298780016687115893270339358292004459198400495325913310337491996745359795627551702721022519014351148173485310461056150947617629519407092089028209100779318019343332816561000477666690439053618750164333299382384276766193125555537989457816959222604116612396962765089714912150819212707138133977572255319888374359583821078808582394624776301032188854138872396198981368096752857758930824634757735674757797482301959007205918671664373312209683615633768218625178538591337465813574215991639364192002218101105078579131694882980382345488302777117572181859197292737715935569525984456676247057649942910152769876055621347818354259895865929597130688482351565689769590527097278588850996379071426874356446114049910481447075904397684713476927926149965875588244146511836390208564794160768194315244509677774093755794775569419965923871854745779946496054541104160785824153969957993385725808717478091042586571431301668947353339830421667382611690047961974374870906078959375108506006723273091480800204829527215753422248986308375163772232827205630662064441960538700061656254734206278037580362518832236416662683860476656252381642518382035490633384575763286928019016268556195801820681170057198894761769728223886997445089040762627837681448101930890114035519221933157001632967352984965883139228852659279900746567873938053367989298615642611857478759102871345768266074076844989476234036499951201121533858946265125201896412300943791344487283020687968541257473349805529544737837634037921920218566068492993320960096258084089060841961327723589895320837621925282201894649229653371048020137997018661254197113543330089725755171228169016194671598648896462868261619647483052204782268955100724640279109286414779645932838693485763538016055833408942180276653517233087478232467825494336840557591651108846850542529530335661775780172046490724405896482601287280515472014348779879881204776327172109863851106327723850270223684059250391010870957982404392356174762246205811501089851232245950992940205719069378040520792275383473494110975750030701011401914842354763391785653751873050628188734732281889948599108790294091776953107297717456176137084056605012363725640720909139137205624015671654150564347679281013550018905423225292046459016704428083746976687529157775529942182299808554845762248636650948720437127207452473770661980227767786431979740065831459086005903550644813877594754867475083850348281952545539817473141658846708257045290145183945285780693126579247361770893576159685763677924018254201105252789592702157111134385427002868305060755256694622500570054331489993926610631916176614722616945181914968725542574902954373342381533499072023007759447205155879615430855999148503306208062476758655754328430852912580816631106696641429751494750304666639911515594074611861460578757113370003186237309158778766685495975183940172265335945494166861142745729518907094394934527814981403581507870431641529581528195061398228870863140725901456884150366513913776337682347210109968707466021740582621593756450932098692627866912529463980900934259460654472954335116417377148068369107052862942332538191798155659220276605300849337250219811391417320146188778281559881670255920205298980054183441710208801127427057518260402088071332645329834083720447467116922395011228644720256890462284445560373766634971607808689202746077457738140554423961881004419443173889744473480967475646634385371163187718713420750667222108650992591510830162686913548781025707027307468182866298883492886081411183516509247577696793475063806580605417725472102177963151243145282601695832193995219776500991345760149233020683539584289052751179569189926142196659718116162328133516482877970593830638716969388083737293249914283275303834794304819987853094160870651859779184986706612526147616257952701124610500690392142415712932731145304606864659200020812945489529626254892889713224305582360882353502305787946931764184827261907892929321640165640700642161494343334901500616118763593244796974404947604956335541107277673086090117317626024050156569512356879556941907639934253057767780546539862188468380557905389970341345572885834701367138836924793437464281288638410585352529157928026060887341997833540805809433277299450985566461545124553107247600879773080575838208157743225726193078923286924497651119189131179367160088455061426325459786896273730264859754025181235413338012648181309924762251510955791969346843231940120050888305989598423440445101087877650600581270284466431901744597695614834815995946249877000755485084234583906251962744888121848192622538245702479251145167353361405660804715515573298044062932406588481055053289195757715641186124163594695138218784820265609090506129078752433441650289152669932577984438725537421206358460942325309962095053307526044262530847501717359180862594946841710846615585363123692847881811547769947508889887230108801055183066231295138277436666302454936946621087543989815995994967643693337832062924439331478180718278938652716419392796008296201556605235576458192727960473541241834899741735267441880678310134887959673222234389979555089741008996131760348724168594329684982746604874904521567163205012098837881633159104153017382568589305094582508549239286702644389640765727226268417836816732643700118010033809970860515699793387529320558560145766109955397211752094078262696588111974031558011455880845740227296119199247829555672989864677247256641998763940599726506437356821213494055215853917162245766608478115319507740745109011093310829368517188298865626464475538136860540657107927057054700165425685381972071932838390951640809696300552964970456786077698274176810432590598869791001470685372739306030773276590557310397617308592715895794705651615686958938635659039816194818979167189765289703092374069367651751038338570741895222768899955258211462679661302000364991913448173058598733216632796681950113116497040521028450488407293771688300349670817768937189435253788398893994138004570628523282317232882539723112753316021102706327996727849785533425830903961224404308528246701183726314539780675749194772504070259197860941294839826663682445557349264195639532986529096227446245156238320767348860781024897853897755745087314420633232058479173522104281046793207627922678320287677803795365392850029531968745886687622886293550062786276144674844732816802468486638865425175867460755860400176500445040550953236730502955446330803696919060333968337521758343615142163858753569566052735560799135727116470637132446407424057717449290124925043243276920253773404659843186082401118268128425300434177840948757919136419010757849243836600523197647575745621524178226270219794043476739573733222200469139363223817732143257488437533429694212148391018969559715649304402262172110346443009298506065526163828570439816141655211448350845580740368393899062242653059849039356509572175270598191307157271429357993182482081654413642346256080341242137778575707960589221751183609202869681101113773128245894786224436798849581777721967612607295986275427440604066047086141077514566760667024165582685077938935790783631543318646469809873191266348002467556030337070537839743428227038500637472512898070796722170973982322134460800121789921806003507550536901059053684007966481801106411907107229551651387119552351020356300886338194723554057917890783559403463366585675398173956956928354496713649151084733793857686405773207159164745528702441670908376790716509290633994842219824250748332301231913439938789428763043037813373791333194726127482380110962435193824361149555584239992744364268207366837513280850933663063519870052311673833567345172635645301656953612045222231184671435696718100075030967247698778280792967953811290313039095270881635893777242414270021227505714277632086059250423467292206917186392494249107968907006069519325304514050685976117011296639889803202997265575406203880047877301574458500514745081688948650579542408589439030979525154592389685547280752673514971159086509321041947169633768783717565988785184538933876776251689735298100836358810541691176407032589512929463088644163686220220288424161765130267988438676253040426209996774673738477417050812015889122239296618109052723141737378591676983146595588903136109750693978273611216506793031776564458105180623914686090556297581761565587096903806007786201805267042961256554296575797262652061771324448425232067049008443412607340921515424808250036567676831878535301796426459206461661274651843196222439518536320889442957642681499933906396970092831214972669762564550082250408481822597934294347425585831981635384431169099834973333992920192895196308482894665633109390201376988593679388134859235328985726735312100911602639365798220807442881913256919769563304242250167544241384987629070353943819577125901183069610997285530269089954658342748531492440202208473211373183818645949569458575831144802982113320994418139814786388634049153229790625787594507449757216473947123786921293779521974219523581876332896915884508129652832272232595864723377196607499160156817591938881042283115511004690520184212064271473214259947140735264327489709675579238175977393582696186090268989916621546524179739222165719758613809110806947026364341473928348031746720887592465542512685728032379941537172060676493617726433833096207690777211116185459313958831168561804476335623187410877520952346009254271438070391569012259689844891334039866960796401397268718753333707080906707484340602324915432361094098154114163324968076991480116025414094656803727866974752803101582960292576956464962509997545767539379322491166908715652284279936181276709640106585442863016740640197597829751006166332735367747127641998567855214139836436596015549107573904201624662167314402980216291128983187560074048870560637874149482824092664610848576775612013866101670817673321909704097973400568234777348517113299803642193284395241711749642870958350174102936113046929006228279609358620468641538849795425297417949447109109800707441609571350597548456202812145353683164188947958819191836358826803705880460563620603746379100013709580691146250497563255339602444880856437809362972469897811518154452328874945550038692020004075488655679569309551567696684072050109130519565650958710670592831554195884058976811221644762014496108185051863802475425975967095408500459112098551284987253919881619538828829118989519657715765112465243728612772362740734274038471799496589381661407709630227724392324797915094231802895078767452325877552644789764379783214448431972118010664808594191773196453718902238717559002673767566693766036145300555314943403684188327278942071084637157433963615047963827664545993384259353909841636135701585638965962171414041685438785294934964126515915353672855594496635562026462654082085546928652597729968126553285099897902683765527908217863295271297725240519667330444009831274323242455875543327874223619054203007865078055967615692981106826278953791217983132477657031615867426247636316709966309615926784836233604020514685792563583310155326042296757813723481036069733576120602045605640899605643157983415102750427585869320370378241317422658541794005318039153007134199593172868990150862599506671790446229966082510149412230585864572465103454381788848132738344287976025013947648929647941793925959698062056240896034378526502871227896307882685028936010480700388878441928149396989302719046396921527003945434886319655470860949328095288921802111606264521713455834071788633983753575126872121449159449263841875468492466147855303796328384023632159647439252277066895287499180014653829947120109742862137610754854372433527388595515435413833905557755678788493587993664364737950193666223724667797205686009418355385944218847031067499215010063085135165032982196777077037004046823466986967880735868456326749570792696961277098048368133380584256332151899899242541749930041190748141006433376457276342816864317744207371942202176868097870310121559221252600620721677784217665822193759184178004148376644536761313971637953920110957077277545659426974111237065839590182180831797343562528266341044430583403838698583469933866988590527763031573445327064303746511977073774925517966279067609249925141312781585804940260280259313077662316413524210740091000831425661122356035829756947479652578078057490072617914551010377448516414048193625980615148017696688095755511812079659565652995239082047189150914599758910515420429722258056774421768347848396882422960946895736966129156952551212131113937639940036549933083633586014376688009597800735354859638037776067247596255869244788165015925406862367557161973349998017151895101695583296087824907641331559046616279691561041710662280283092374615056165803088648579919370180368047460113015914912073372267572291623128571783708503613637070582937764609086501782843549884496587019274609733489559226937761722117699535921694865888788729101666247020622773698181627462572625543671557423747404882789711983845516129765714411305491073069752922288980054963015595905986514485244417675255332165865649072186379107046746132428185266833419038196830299211106141159077330343884507407148193509067712896911976119535736078276444169576366673108625442276246999135020172790070850976983490610132810216084705807005965899416742910447995178179977852776524165362237531836663836667064568334127383779256041145510454358631362287600923249942461869771686127145205794540277347721090288055717600517179567269228169249196157919944812144919518179020500648063740423156380851461145442333411351007350827407813464582371423860917758519208265675973016219920280585606433786341120739906803228826557236691761026789084051859064385813346974280050310480880425996637270020728608666993756190915006048434975218762410335324259390766131290358097964710247124533982684210200709238026968354193684456108126183099302066081626850740073629254453915295575829345932738333484341981771289211537737955097594995477050887206165956851186805867207092067380769176438369140046541086033682562552102539392609620376520446873384796316323871068119597214024031699267293298284834040218432911604295277274176293386735487009559736938007668558789903854264970594894217340889877659507540639499264201005982592650781322175765495033563819957877596092774514642252329750919807086449717349721827581863670189216460130955117856898326978961505559690723054095197304389107103761591854208320175472410320695140081638011322925334246892279236957416959973565375175507458731209636068688448047589917936651640773941767338171190071583176513135485679373201576580131533783064113190933249356608855999359630752527787231215770812765212736407739261829882332394423919995531407824372620142955270393475940244902514303183328078424917443229259070352127689606538575360734663216983136644580443405827741663465364681239697075368717488962020090538790391944280261747294626708853822209149152602756793701698689649788492377017835967802884447351654631856300884217392678896528930666763006209712104325774551113375605661360600535675320826370525572738590809325869878565631642922096864678779138977940154765639698660858892249518719030468835049283033898959474267926014940469253354219496670129870690468020648341964596285859206255551539666765713322345108864040221633227839726468297330467087121830873820763083958425587976959664397976363106493040478170420056612139877659070804614249160321866313207695879707896949721363335515987854159827899217570464511723844803768485919671558033175358380488287018088164742358974794557782765333258397954544362119087602748613712574009222828328933510470128951167856916517412737789739035409897110518694911515656872931832291269446773913380246878478900563376514397681384430091537294232911433107614945154312424949091098627723089600269631520707486735178068253140902722375798072794007759239539769843042556675361269030795279471440625988133145804761406031582087474664769134552094250843084228021307325045701214289691178588897903872107872550525388507972397168284553544657032511969656497924430857864305492599980968275497789981781709116583845071070222705824644812266521498869987035316540057172236699127339917742370754082573248039037501397889296128686795704403222747265379905985514362697607372475696728291184967845648281081817460192132942271875962289171690163887617963639815248668428578372156514911535150653926567061300751623437220537357554748957446806841296257062310465475527766638335422697164015958207734719564781000767384793199564300059291300335969131916847650274022606817154694000022977189015570699639294694475773343884012237528228513516482395165154774314733191191594984857224161243527361778642751685480843564631625298599938235202457802691922625418923792810081619905058452637724962015628017493707408994076339940175485037611479918383334779815514250283074425479906966675480642019450775653880105951683037399268213962342354328704539244090384306561837287374258189968263200072301573802344448996416412868840468776593864768445588269997450593146456861819750347413778149117653637841340559749883528825576910825142336557189177961370932560874360793164794778714595707545146431516778878270635063602184130825744420043113116061893427726993044103087724538858824441366329065440684224935010590295972532569382154471064745856713779658967998767486902394317704241839437265339890271506354274607370006195638926943226722500479971737584121235089999614013337170911046366078438946275958333984372144894785455481090998738175730548111168184054869990532372648318965798164418354393713087599039767116701012297159661082932118873096711959789267931834453995979387690722332301577689565977533070720503041567838946969714605172677804987558145434322393378205820755751735452456032540636141913050241823431828307790957161935772190975338017037946995871812009994743860970330625585899872130975608254866755734919576427685998042081127881412918788307081121253576457802644940869404183449088845110137658755842123981765409526311080777075428668209253037199639302647215917833858995167874867680972465934942396637025576397205100299171472270103812710850863331127307239876758639317055465504864933675750369271456513033621216803156443212546251822920660083261728977845819281333849037276667225452444095195795903964424769621605432189450608139824637842589301860601652715132230001790625091666507722790677462719751216828129718359098792408385945354138851570972635921626394406838576340713011574655412877383851149562009021037659160131741619326247465867599306435878150870143450767940795595122226413331455528716726196811459807856594759413495782073184230677237070613478187151137642929291505535221831348286926267630736650749078867850463361818836141103523903013869812388117849515504131943341031864482028323734245819234112377346641037861632744116317715849079442797004741570131950275452752528029676328145885763168135940722155263094611772299206254464153728864969490085071432946075650569342621982171163626379588849362213207804304553195003059889726572596268295150742561901436731714186718683320807475766307570187709612397351887181827730700307879383402737870050529277904962498608722006594610485472893823965474972708179502193820603671272642625123920255607650148726506322550870512556969459693069375700768020574972832642537371226186576737114671637468122523024268024216135384455075433675916544452255475642576622075608120173946842155483855867298355740044269301653694808040164931562259964030185791561689513934228143571941352593867409218403382697696008039530381936784245780055946316621016113081103359300502904881880212972455537743944659803077396636412477394643546268480806237612556558314817642043527134407665508986390077752677899556547693797955758375382608800261565888017720825829063503607753526117686548872190549296503312963780557528719163960268488431113187029743282445957239883643002269159592778441693013556590290734536411456462877036887822147133884266890827130633087286810779134061134541464701163566323023223488461177727836916633704892062823969340845470984838563541164560631600057822648910025781925832397526306587767936839193951842134716341943883059516644593666067808711278191248944731794170414734227362545857363737547057242776739523081895932587341284959063668238707527538687420150047310174454000660838512489130067582580207584262744265248807608805460721451744701054260070251138496215780086642939483438085053187395374884272168300499015470407533346219620422147974622488170891895388949087374007262718154215522550795010103219528141289368496441952997812243241466479414044619071799314739358747762097586953004925406255841974040536958925761336503823569797591051303102050898811462655267981646400264045437508180700414894820673948303247331026840536939436416034573564698694371240590663237796138462773233505153856467235556907064637049587128920051916288200808012640102954352684596700286074735481890734126705186914894505603248411460318171079959342067697367809857046915567719321176782732630984109653384407185671002269315123014735988979965892613457474692624950236032507301041265128399922775941127117331478731796720587926851265181657016367911711203281506226324074145580681791468345019570192287598771487921016761027993499135817632630378345766855317788681586591588324520731963306206367186229583921572705137520491775328862190459746232986231955896771691342917600711941681173647942355087265948749052571072655508675264915719206001618506502657217402265319128651418988373033704536410308817024697103426404305547358797413976830941411288876815573101392780652578648588772787624852645129186563757825305258555834242978721959311069427892963581613469496615595915525076573910019356412510170148387485295693081667520831942202089447407463537912733159750604926989979282639345996113329407509789443979429132502724560651986446335527684869424384325632116566938315087027720104764240929583461808788213660284645496697219548596783589384222910459202621288174979480141828772866982464429895832559815221450573872681413421733806303813885746681657308194241292157746146976790656523559741049689459675267270766791356580972182071544692482197387361074834676339628467571975865705982462673306436608131044996717669217686329488084805942754754523425585563580293442426380544266099345962339669823889450353951203036481594757696613699205097159703756165392343859251923301028719199749272420102047078607220662280968659502846026375901586862977452994158032812678358436663001600978766275882504633086343588652463529871414877327476769057395155394018872863300789743279714696820800036391884651597433809101697466541996665659176142482321810598322442539503889582240453149091306500594190042737649296002989834544268320275895242917375445955415956088712996190831345818055339635722786873669263659383816284406282596585554619278558607146407191728596245330412524882932406559687553291363311284248175081996465407630984196104134234276518011811921718775074435365784624001902251673522350827279921924154610705894074027653913175927511079582563987972965175251599902637690733836988579590608955551344563366588745127890309086947101838149306216662751487622452158295406233816971440825608513747120969609529219159002351071006918316551489827990298141298473560803629878398454380688223326912603511368342972910726846733153022961986126830663356954500895901919786106327796159502005655508908733998713190202785577722844183778880171278354911588078789841065752757270973776746542178070018734484653872395330069356189739013958594958950112746489020379357549125872297139177149109671456153976181890770912234466423483922730194509363444460985953160882315880551508743515653119592946321066763736381292310842233998087553778912108685125656544333420201420878339904731246827800630141830707321315609000654899192504415601504785447223122022060405997243450582525438868724134495487406106592417361847670178094728912132678908780550137328298278936435224008373245796489197377582963900280575612520670838467952842361248808502069762691013909955120216180825467086449538653394455629719923527582527544256422969031347678014434293594384488537129042133592748303157632193248410576209665958649508644762917229912672464033243954583581779711196950016161203701687289085786025884511658135296133522968108097467642669888808963441002309495304993027163321381098715203382184321257561613903570914598047082798913760172822964975324242328638227342841430418503542868065005557233964436080456761355987064975490870674444070394002392974958202757432577868149756329387941935461804474616526781203800388383831407601771974966948684827462074053333518626342937405904225838251743565366627996000731205606476927781588856975902392988901541580750890946275063296144292798500155845392337307682291093602254028065300603836084630007409533121640408589534045570022180016909767544551652126368985575558492703427870991861241362807257939731066035850883803235097637383416956586942728950470826117257669728198018358832831190562015255063208878417160088292381723427077235233717169895922315827447711214172214114966604000005476458955494210823873222880317122462780179293194714237094522473569283396326203358327030037860442323390279481896394187834538754549675479862902201472550610293551627984187701133262635142796134373457583835305151892129858155411138333043735143107851281899381648145915627827422195025926582865894752566678380066771786169043168601520873427523316030773769910994646340450922139208380948574975758736393543593852272087905163967200952365298542517313766422460543638638860303524787359333234928675151437486631293113894858696297757272081804529927095170424260513489830207563775311809350760186772057423626111291639403951604122850382923091909612480840991709998024324686461739710091806829294860020768660065431233678647875793552003488167905859664006022100476364944529981824529124314135762531702787116720559940213475735556087409238504150861913357833931432474176412030801566984222060873104173411389246747310177019692108549856616348512173472497982248839135901886261141582957728962546376649150651790062398250690594145867973337949812893776193919492819138295872234976757964855142615504772454502071443830941195694107005332257832309233388941009490273689629121666492932569114584499224860247444752020925557783923934478237435739482590192521714378646430892084059754423528184131948928528761056086962316591223379543886437335019513019460100267900808533892798395529033151785743044063001172212827809442621873296584485600730809012861364796367093166315275932364406338723164780204654585598434286170526474806147587202008825478435237719252364464793594061546399623886990574875851705517493033926770929240458364397595251782562719481248342660238799683985959027909416684939991917319734014396558420663220341217424765351178904638262149297942428589104814604537898003024506295407407648271479813543991189294060391977438569520978998129364568602788251466498175607130449293951919751280512618533441989152018061209909222010961006206859995017773380683639988561007102212947936110280263009697962060046862262697296003153755738346032755182464282858356390910273180723412673820870722472661009220093216359996711246994418599350692229981851002932231350604973704693570753376468714771669625940689880248276028869414552878536771107149283644119745233557377981582290613120040123014944192547333967711385825110017888586607846333178889960238253112562881986343128522252173130613132511876203301528361519746388668746576101851996415992446926100446134367946877989848808251223508690334261874844915730861168193980552896970872846205246739989919280309686698271741379739518475691384424501252301768566594556802572368308827711677635298350927109731686701682287236558863568747216892305253747846300763417231709771371825850524225337874784359038228883538119557372425316107354355668510843044026428654108345609525315790243962651527424418191502827148816979225182907111486941899780417298609021981586777077327964892491322295676976287276442149330204582719668731571601633605946914703365092785254887016476928814218296808026463896321514310825874122376837434994781440294158921294488262817694804530807609584744822334569495003915951924204820052075048552014493298199170205701707651295793683294679176625547354624553284113383997803215012537678680982332963978852015965024493259825303110342859993533611721935658947636858484997172845883946587847178495859229228706854319026992093119011980235935167628700772857504462780248525805566658415911296580962979402681529277119731962847650490251728849438507896101532582510308415012867305665051182895894500300516936905546493285724898826181982646914840997908965813850200685745325067390777634400562802457397589327238003852339192391371278202011293259448680554013758420644255021001680025016999753079216350347397399203049786145439007295476477447397037700412701255046409318225866701362100863110023649318421761301330602511733996580999552624520081395335872031624283812781126225262714154643496726213972563972531538773207968995981799810784938088128685588570687166829207409440796429034424309912225214636630943170111030673426689500687970859859876942414457716614048913264268931230696151247308863044261284170839782359654898101145330556943212069626580454976089233987466505030554208909323621888670481395314003182433601641626967900188116088631400049248027492115083076953882943669957077781799646789499985075512830852937515752508878344881218150358992532211003169165804850382422257260694121691853961443047123409563222315227022239519608525646067810402698386288744510587932983393104218780399344572224284481771094671657941495715039561612981857550813891665952851406956325107517165217124777093371061350502088209866668681264562615136266780785101863768022427572882474706254799145706582122222961219542914212155549013509008795040636724377814038216421041058670868947241776220177784704755333866830035811774176025590078820924838696621539265252850549278990825681155612026709759220192288879816045666659437950321223616228395709786671646459490654906699746749656250875128743367444329387716317348142242632071243078247235831272896866244263642207769719679318746042446581331745521767491931574873442753228530484092841117654027689203917508975446033189010660468401322886024988295827361278876897821091968296228936993509478968385126930112079340274729195255438430584542918545078784332058614644504775390134088674506287747387047942580849266156728768104654022345518156211164825741987670646956967826691782090079978344972831809541447604772142390801160160005966337341889545812633208473566011255818782932508406182212934589414559364665700073787827530258267785576750921640393249979353421263214797819926535910785556237213413442455492899297763755780986688428682051348279497880818621218316596833600796673465028714780122408419285104029863986348299847890997130061156994604740352598191911855974195428867931332659720398044724847521919170474318879987146267177747582356632833927577908743013135362970183104106877658097465331931501658051155992361010649541437154768654950555217364562601371363783356695603301441691258800860467787111364278140227138138267210940181414587153214777167834260579101790022979008328304577335779334098368616708948053959506435420490525720446804911460164782392190235008795500134342743610183755408596181800792274487260239633769593333873826744037767054192778664425569987802154325081322434974440163601920543264700079554785687644759562363538322285162714493867257936998929669709252826962002050193362970116774201484702925254589502985115222933258220926400586812293958182421351034097124354861623340595866505919596754027402713383231226326120739324763326973975822671014381905326762036588987079004567235687416406033332493254276731661352249170057227476556534363888511074036150027464605798505441981031655779021103648618016856379021453797386509450388692589501484686183008236453580253994839245601231783303514438031490643029396126672388250610821141330693508488286712017909940710252174887077494289284131661547114647107725444212502705222564619845191612532893342280064710574074088923897591451986985668397380834955867150885532936011812204990935437112622881484974284127851589230805217818392547163667459625335350636950977129685062064460793401304741285175372568809390620143898848773532934758866927317994925611054929274096347753585819143145820891788825079149287621319831568984783964352227970447662713568878593859485592062528813823718525240461063595688196142443318751059831811928854992595120323149162189209344389713168265290753755338926311309667493994106902647697453067634114843133314218726039863408322045040564017224355365137433089119891786196796495966804996682196094198978295548250059443900574774540142867987899665126482717403666954636499474002339886423053850280349795825831268587561519388598641444568638640738678599264825059307083166125135253754616096654109510857458468654783120775919768964940091202016676712096304538790059370010522188701267554377908262059846295183411273975751149830451557352402199736666844888810162846905584830451953432676359841515721671312120378798554856276420279316960332552848112364406906113087957742925003876776259402425270715919290582147456884260096127631996987658382904096331917873393453156268771286725143950273183170905337832790622498606092502940458184891976770206876740759836183616029534774401329872131812243773013036604195299429067436831764787736189451156742586939201498054275163211116045298170947754201066621902814211330544827134179821685829491344014890838464278510475278187440624236136386405320410849263898325659650704479021903448197766485937892711361249652837671792111923593393505237192280696412484310281296502388566548903741153494368795923073261729436563370147693691212593734304152038849262759959232793410644394879872623223216064081589969102349161461373848259454304816901531182297992051359529614792983780394228747318695712979999763329743126407312087872861386087877837850025637478985894654539472721395728595181781100030663598563550251910189759646985064205114552093917011486562590871263636766783182461319972000629225780720534643274874347357744788240633854526736519186262797170916277088581698997154193677482598474942223038798256441740926238295205161953555763801654149726830962579684312029534969013676604744273852077723074675204483128953074564733653998891142293390220268696985719532143192327599944585961659284624104970755952911786009821769562859526907302079322874932283070323773291685423507712366772648052604036155712145874635448705742208850179241696542811039747434597633266762195144497525139656037322750952448596161242962932692393687021966882647591956675024804782666992367229339846758330929901971236981446074683595902191666141832937079345375536124697303482531933939068726487595673796902164892770611055733509699720780594745478525090350047432523771401975181801774198501761821007138672008497203009064675103273462130117157913408248977237374351289516107317550973910089346316244839339467544483573567577052439438881609820728360433317658732717557073814935048841827533277802745923053677895403485822645385097820263998286983859347337322679488592879734488666701086539244843088723252614494995493091845156317347032788794267692582420888474367272410377961572608256738547054950227432184426739622736695666968929440915869613622710178839774795329107300636890070311508205204279024800809712584032103364333096232289170676987542495383546023605232722141642965227584879583841406506690041190683305114236460197845045632700295358745269306201145642841403702172393211836911328398713288273728806056911059257763778831392731886780777807700190803429763692765298633619226324404916387560954863521192578095838624410583456000442103832850686938955542239852635353474728535072737440074797830528156353016937908381175126298416225696420338867949835489674923880583670100371285994748576092720051526592436894138096192578303980183898639795994862334312002029577410606602410502863373760881097263074780853466424744437727113637156842712420238950792350502507216289087912998879841540830593062737148952719978347308145161160276150316171075663043526752955404481034894630281923101586561271154508840880585897044005308166746510581843147717199369390700540496833989529586710706127586584429212875543989441726576118797651762215914427752968856905563198414757385348671426638146703178860674626120806354398308011323089298886001458035130201910415555025746883727460940281560907412254810189476982712212371400553767873558300892738106455720035280173321722464548099718800902586314931124340359048781549175978277019999752595392067293878035839393042576461237899558793465935948746422464291148180225745724695939063519913070682230484122230685829397589151992955288548709385490206040832954672528281025653045764125509461788210914488396007787869242402332728523891309629092433106308926851722637461319906988950175740989734240966138611017257831170229883287609830122424822581278871842564546682264655664921392511755991593700730761324808882585584850793422518897945483482491530269719170697165336164758867443292801397713884352936229222085832390383794669426949333949368829637389292198571837329774360011321439463263756771104069648314109852394099214787371950010011146510447135163548771601530512457218547640933150192209978001605378895426647542971784443753779591090677907341773457604019444763774915343925062510493800719051376021580707288498978258081548900405699984313721232321541170273760362024393451049958105486383068357006698150417988767485003896730472919320963896420401624552803396656388552011444207724070372817603708871183461340751431506465566159235452480526552543478092943829531827671427912871399981959338647020645026805147385532034882817760922912174182651938494608736534246349679386909931008519885526969584417803218258889666104626061408999937427451044052580595044321737671901120069277612674476281519970658593077628119127199199754353490951501259117250483635348549147731886654532672934926002538600359798154314544655784742535038926904404145297085693216204233341166353000606092828478667689745833875600109251678749441582116370240699578022658665077630407829935972733005331543746534676141198152792681923027206558955385443519423521789686022616722427080426831617189280323289635384264450361119160660754396338442117343928615958714810343487476648364801095585750528846647334055018985529937704931201573309407861054605493155971933600011911981795083803494215687591992599649126227688395814361077712680565417914505920834331439197933443311884693396753267504243403024836562287040198535378489929420628855043049955676406794769246052529685409639358279022777638249373494081942609505318480646730616067272237028629529194853772057468758988360559977022562086861453175408682695969799017966291350085968459906201603438297716379032420458902659405288470183816616115366263624296572149003834043561015965218434230175949710641963398573263662422578219566059065400477438657571363169908802529470994152942153375877040347630721770367932581721889289791972160290386790025183239257214286862077036791575754612359465320660473209150849020898595918829123444822330842689890714117198337796402339908558551562154452811120311902278656747909163552515151557030211717831810118079395276586125954627792263429450355104004388388505408334858838214691429128319582278149592851207643002224020222458058605655323858477484926368271032642746474674161731311578548077704584940741702916496703550377826232847382288597559065884019113516097558201569843844575394079077667431380484937208170369754065984287351517270174588468843011629151378631320899569190987312504948434071591723858690067832095766780830322722622518529974871882961482214340570125033966387854511363594552908448419347152880336930779520377831616053940837161855891582252304140937661367100599841119690294211033987200295831038381913379661461177186058299488434877849258271422205922232626971717949904084826773323708206036786462891608566685867890092770125612213905486269112846489094465413316707104190216724379432969996241229482035436990881805805515005341269354264400992921977809942310586732766210987020455640441875441365153303949762936015368962629563977845639171138787246165568794317049571838804656035366222927227085318588730603975840376560019265474369327457199456074080356441158366108329388017947214522977628911311133719550912840930902444501356293676467256072160899609694389317400554170266485567237823293771358015413604440406965704247332693204511792218821049556319463052938482912684579396337863252939804093582803260238915684617472300506423997595509473485952291631434431379566946144309331662267001435047248898152728380363529257397994163927436933022243672788263465755865700937393524766670916891179282558466243054280050572382640450155004150041955228369586921996349214209219568584344522193412360144845577063459049769129207565949017800739609917209665686494699005283780401065521253687659224242553340340889822171248379915262413256933588424301131975497738345225870448838192357663230162564677623996800939061318491522961482125261496956425013100903334110470467647608626767897202810650246011141674421048094769739770404476197670096757625627522182837104483938453568014276563405427296704577604709023497153968210389471967294648639386908289363147402842284252162015053279210420337663917466253490265414777524217154301875691944695792102078615510045872173609775358516190717889932223686306114657517653573777529369642010236691342432885510536829499496434990485142558755531344108827949800314623682693559902698215334052112178700024225164528619932366131546981316590746660159578307002712658662287914905675758146454993156916077171435206851705729712190565919932188978877468772233871331208625507938860239163634893197539256998486835924939704168526046982510244075859120908573447141173940277610550033279223695951418894249053404705997883082961741739689707701266333936091660714875385481509851381218472178030403066981779221898038965268114408427766581781916316097361763095204217903636549773498820723963980986265230849525368643680679290817409687226956932454020874057288670660487161160465158520999963394836369627516911795448461115611876958899470430319104506303638713596560270084869482108699430021099670514111045926489550624185361258041126714388126345433697860641346861245562974164882937771568212278048967405349078696159248774398149643218920914434081484475987861696768440884939988958025846081189530124283428317032605651771715843214433932325330185664837978216229774665399867854725642390261544581308364012572432837336353284734615293098889844284241553423292475136719414909712540647666519372028212420237569714279643798420553580805391409788343771530468215476987180576022942242488030013424998023763978272680788652894092976665311581519064338311736372767119496612507057049747360313137873163783753915912856455755074053535183408503831629992231907925846652007486130596621830815299734797624647821684783788748487274465164179541854641306916469068098023361789304824208749536722672441552194240739628940273869196813046894787561120169938625414822375949996981058871539624488222387309302038281723083449871682566468971529616566420111634002071542347889827104423449406918063372067675689645713123382082862282044662815514106684889526650652776641278175149265647845070205762503574301335355026325269556621422908288402898661474106930585988978576731997005422983476207605539187971365146068979174274711600477656174954705259534283642457342816188360789625111732766082599598116122327870207490092456193562901088254682490256753687520315184224082831760095897338885710844033054728548648690124988245350747398187578605948551561468540115586522241002290370313927410775520219295418503998578296331442190578660762585614268447320801935716983780771847487460775771394838786351862141437784930666170363746653439801116090400082515888868085905412326592924266707498446316705656571554003437700584459213849573236722158289616467778065947448262521319535786066344367205214871354421451749619481957672831548962074283243708117333700785098054505889387897300812720842035539920311480491258478463545179898615696132846811156244452764691045579858469076052272523636203259732349566901025635547424348502808141281603158028260121766737221536668781432258010727205460823155516968901232158186803617931281721494367449833717821662929137779529734157252175003479962290759486337080474132708496801443466698835229446742138414299063215542299965310837139113989913518523460091843035844507964618852348591347518213632566059551897972075103372474449447175671734695263437374374178870511729298427036710714544591149682874067758074799241139772468599881300993046148035898608553235141039501371436417723728939710307421367896386296634548667752759227443013533319911805126271567893287614221288780103227571177611682210824951984293551614745772205558697364971111486129045684821179998066416974618211853874155443815652287619192927426307384222478110119089004211268365210059920150142372809130792675637411661536736804899039928915043852195213299330803918307346706098292528580205680019204405586226748397233690349217829822545964691588914065428811115974093309264393586518199005583585715762866486520685415680470492580871612654507190151946449671376468516199983731580423053289971477274430263574484908811021154831928318769909718355200555902106181958635524736226954621812364253619826573585353870179703450519418037475133422342804389811193452671392862301774969163393777523544303288688628060299930072823649186246808847082049428421377786646236268113828056360576190406726034565452733781590221236673839679265355209134333522826840612672832131817562882622768058463134976239468993172900566260287004869540974943904202792075809876710284740640782545514324741715410344144784726837925946290811533504807607902557535020277660169801535803430548905994430497977579179826650518699912616967603653012740899351234754107435611745414377925285239911593489687188563060630566070555601302004752293605135677237109151761986661253712629323303667467798098068555166942030193519553112109396567843644828944986579876730184026766743305874176457797757751845435253853516227164109876117230486187902483941934998554592493300909820670848128570094068103919056561350890728365506779876169988563449067974089455967189620373989407775271228894596987053489777358966406461565089369006943771984621509963870292576160731248492416202920956855371504534494456915499607063415428212346985991723652935806133806641639239931511090046854993429493115578193128557912395600634390134164239989042019932011733201563338207776436629762772025651292806851878522789416478650142522298941854810168173769220794487035379747558154747898264855195186110126498170510401896524153452325889930265837270155307879567116443224542298385558839558460729745496538537990517465292702069511125690472955708330647161064264099423809451536914223157302221907048142994987279684032001173482221077198346733421880376438504108087753553211218700806965369110126714837903857671853577204569527923545930187474009624497064082625644814339319888017233500774005596104284153712323314409419218926438600915006973918716550315858032844237326175912338135690318104565492056615379385561816185155874841777393510993373231042539012283117390955243223695673644032343291237235154247823590975938983701925347381553468050090680325423381796892017876369621469541041187665671398067238408444621626776827581366198030067352078206003478755525299187957049048223401759042211073676842876234349855085225032237834071407430184531641031173945741499465319087449116321799486560242969313177580327270491116507669714197488562569486032300502752479261377462043981457557319713640648313258438377790836545809248089817840111222892644760850103415135897674912933403359993060303435087659868648227212363093809919680661054874792771656115114767497046064337240866351970638326009723902464854867157036919683530805575738760901147580845045745552104187761326269859507283765148917264075968654541600654999621856536350513397492048729645183687683002445616536045514745844264022086231199290648779096038750871136915168538129008600156539394166790929282421707209491469432855374452873633044022714357590530342186868074102688394711457776540325020087336969190961571880739345724959236713988089134054858017659025108861799912535108260718010645925896996509132693814623602021687576179703820087482550365119709184786857517240932493136092118653624442216012982792936424682066304604714396327805523631176302214792574296872283499404402527363105539178344779405138955844272915692132942117487662695825343561663508067527202981126987848143195690209007490788227262784517219745009053799309482005239896989232436010308446138286485147155768481092959424439247403793221147838480004761389670083183827903718271641624028535456504507887424201869781379408534609324647054827907859800853683836695222650461433031063122039660691965145352109841148049488966493818619469036096425523667274562471267592603690162620091600485568728566334715941933939901320999757640459057320619521962898984033301248554425283592494168352297358195723728563813299835224127635393051169104380781236338943589156399539368038366350949554185577460061846075607517838378412076671322102391800798177031357249232999865061639757749108334270037364254248822917568397172165606439425392807633051952474766238503155987098115557743090009137758808892466927425770066816149804071013746139473713937541394115454113030403998147331089827997515813429161043419340973252075069192592450384280862772675625965232609499337901760875747828273683360715668125837712059153560868848169542168952952800922778993005173360155634516538673179733028017290138603247727856908934017903284188507610258572455598664770694006970321639595043589740183519358662604419045325401252059985097650686201623692191469052243546227366914169034887405364579794695335058699481657452006840749476487373083532982210000291313396704458535255056861209484974077389203184493716653045099447434450894956463025537468810343774978652619093398527281808385336473586370029580044229882788771957236364371891240253356704892262201560947554307249234284856129198979767827169748965084368332228907115761337742582513467955561127213137189101461886059118562250979515982440278848401717460351375540501280106533841941391037515404108120652413672112275686527294436736985038299321182961249632421207193005619725621307848675039090689816113174864484826904611528702210708453747598630040574591138588087004946332834667701399821931131949151395141473618981192267409364728883601933836843247687734145776832569136000919914009476410712045432505097111678602037329462460464975678870902660789192066998328878232514904252243407822006267503288319136072127983745090798477606377080333876423679270059620951563537969675718008614457506095665870033597709968544204352572177218177133883001918088076605423952953231664361165718406735046902148366905049224457296143076479779539241422510943255594435762859256556343488571270240234859096845875572357643087635598637419167381105107702141163403489225990561451792558037190462480520332399948653943500770828652337784578558919689707615700921339393182674534257820300888146070194192689716824596280833721435954833625142562814319829807728128363756896868974445137345401797510890346085241931423874330790911932627782295087588065610578420005775467530782279834636295962550546127189532192075495571726857985540589024563781678206448239847056816717141784117858219889909582729522867223483755552140681431345248300742387939828908798444060362775836026919518302339435555914671867728838841704637702949697604017163434290930658679938496663217472237228242900971053541635240292686938624600042403741429920711509824636829339082253434071240045430455132416718698957182129244224612632227706183348056939561037995919079298455733799504131990279210474602884676965840358183846862317385407627596334468814506292692825134847817809979990794511572333405434764859158935279211379380042082987073798029444578429882891108922254184219093002127014196368005753941364329257431190019448198145158234857651094006600382828164815162974700539400954571395339012417045726306375317115242593904272898859769605388366066015615374026649525989564076753817027805241956013602343103587078643869046559332753431328463603232678464678822490789668907551918130378735675225658445932562176039062779749267254134612679341568861769475844145612419923217906385295855409175901091458329803617175734596660837385479258801251450471028844482393540314237820324230716815630206987322971728907490553505377115417565175253539125788079560288623301588850721087147805391748017408420967422620415268987772184090987539589223699339258250385884922282058238957828166274069410612295057891404120741620730317486305757691014078067006888210060233464759787765124373661990409364705560087540567623717536549017270977835307695246843192784017757764120531115613458027932211902380656687509729324516960421776578386346933058187982618540321657583455811205584252944069628213109135674648834897715229377465108340119510670556459437600964645711542173929462419680757391441296028111055142331372951659719386309632648657158072332734378122883414818815158123313300561448976835639656288373885906043621459429439450055223700391124890394366844069482020286914150606756858085598863663058443240502715518856765456253266777628878016146622089972109597561298970769626643108376398322076357329038660556023630233304991499807195194631459843617573630374345914490158130221868311672719356659723978265815372152896062033447353757078253872878196553216471948803709008513052333211425654584090704144654298360527575920486124322155633996941881680854467952488449665404906827918571045462119069220246088175619292353240898032955623777101905738070233197702114480586783125242578952817170761325118999731683038589186172435485536792201750105230098612885475199907809573969479756639398972547437488177254065697007402737756809972295708006536940225096947394117949254582541600661824396033975872996629592229166592395921465325251968588947472976357878336828434877430616923854924024194455201407443373564628540339444838352780683987249922856376494627641552168793577410989900304385048730713315205823460272106747722249602957220677989164889553591254955430668189654101293065442889119144571750294361193099485929565375884730945164821409474399327559163375332986170596784403132524095297239377319332322679193415144925876594662512474022855683041910649480529384020084902635882287288629104790162388199502105515318039961022250201416106230889877969207106987884988757443945497497616747541658995920844290419605035494658182987589807037896339893136445459668125644493874611605018462507428948609549864645281476025276968486785467594953632012942836653553847576301078462052720226601354741873246592125882984620693319102941247130090179374831157486291813021172162948115509783407788287746454200441510494268564063941574517780368758641606410665223176634058689868178328352581508375990428295117036746864033055432065147759431440376512051251732346162687718176024238051037699703473335761049155973027002238847220770012117755750678736448013602726228509368099531782057276899635419609023476656578798510701783521414591567305293979097213502688209016836241263427792753263421985975081215504785214914214019257563423401412599017722028855067410046688350089847825082211310033413503058885418408370163832895487779186099817384027603018947585959487030955032679997904922935019134980915409337296191424527301402278741850247525433990622802237750688266705913042382002792101280026925986380821818239714799220552171003169582893886059001305064870408342337313933990599571673473458302600603109238506288298274307537755900678944332781948747813701921866433171960662387335325639088636863171874689902875143158987936333328340105431072879762804856393265286199674980554767730471557435472550129374303125316345011570221234933425584779731644597709921858489790612996291972787190813549960171281234468355102875419188371410155568766624659168049777223530104614055943493162689540289486719381933342059967716836868538315923226367716079834164463703926770987884564230353779702372712850457784830020890151719535131154026294888014838949906039072192949981843017892191453977402424290988966910066332624893324268057191880544026877982366848952753218181731476366182630053364372843787250839067013304648793385744114813384505642565280446411851749828741887966865839633220056419114690461901012306868825863939012160655421172448532848325371347419177126193745112435897661320317686065990399037277999659795558991453196732274898408288916152920968038979569810601501451131604612481360058891308328595848173649682924084008793176119128880395915232462042140765657692663602094044294980045178991169641951380767139820477372842075528446239781968903589797062715686342184570336505570990266767706755730839224378983484337567059138935197248995275696711648943157039562636489963364327674515027848526280819341626586977043547183878016939400165130246241238249998811255331653140870910034968527999966976756029453902115415512889968677553629831613486802505812739768878121151296479693855909887490240648537215277635172059124901883051631578089997747990183314699005456594042067065248318555930066284151149924511312446774808119793960169387546075118361575680226786924884633003113235907810787759962270768929276657340247529180886912538051776626622822609147601719274864439949865751484983161596108928674511862233474652250034176634121928495888521366545810243807113781523485180210780773393943161373568657733909527024453270623871864787437887561847225077201234001983683773664839213622401066547344998163627963625928849925601782325799129501403819751615816325607154261497031255346993325103577485134945722574555866741113216934261592522132817707132677127248570931489718348158906868077544367389863338890362839805790663050897892819503078039208080520784322128444335933501008037197842777729517565945617830895947163658927992943401894296351928463532588320175994697865008426499662223126870957122269632459427482725851764857063684343939927744402621075248246634852006153303162035826792355667647781041214485679790612229458913976439007940532810679843306951677227306516891073049769205630372225589464299513399470334367157085198091286237528426764790572392380356533022821253833340305529704739626373750095191651014831431590406627504491130692353618943449022241771173416112929917653235517883938976393327940265649758419192083838741539185393082143965758778395575669028072005251681263830234161671441552416003927592265628768378716976730705891140747470205144767122092123312205265732021638259682233671995747326661957263115203674988197358584522499258028606522113014645380895062382963871128023843647932300039454837507305749125069114454089399303648417113675375186565729251774773914269997857972806674098469785700626629224168617128087526501775855836858752702445679191281233333120450080079133749108769003518339991179870692123279702683609606426707685618382144712073726695464700421197589096475266363570677612334027948053639902332409686231793745540489960952146864051142286960445031950219120063934667429434584103759458940258978789831339594466854054700092041122437464420094640163984443165955854615958049075179323921949043858120573443551183371691030568338853673687618278920377030899480729190686903431094867298739514641974730209738153460753787038710647662003483868041441202898406080290754966589914166937674516358194849740435101844512540094865380794310250489970169241332831300546668589149955729110112673537447641253892139284885484220732171726706726641474040754988448257918574888073727722109024458980116632798709449445914439857445700540049375807029555307986954053374020505834772120184058136385812703732707592971918272788742364742154818745751102653009272655552720300845562512101791330696105106908927248747693822693589519592249589561433215256720557920247044544138607659195437815170367470218912622251002142939886633805512990437547802340621644953609505503116318656527295534429659571415657705590998289614141258936074483766003230417334545297732679885449878627340701377246700551489804758652821225800045601533823314157880344870830180830472568965765198467246738306524408496335872483661632896190895812419950934772151881075088395425790919219083618918185051971007012565365378704060392837728147244369657101745195461304789770692154720531193916617606362055889151601525472177557025934358891676402928368756743997229464985664269880215419858802638168815682494795869756329399674406530625228254033751804250633734175004769952882754884469581956260028246279069881496888985903760271484502562616418222994187622493858533885034034574744270407175094652561758626580605911055342806772071525921254230073448740885879848092042330115550079636534726965535691116412236992453343988479728954417230777443330360272619031707577666590617490925594877224333605791239757736968503664654692632253898130163755863982296149986624461295069924673276149817595839715136768560617688312506948039465875737020093038679166188155986277885185380793914755486946027216880167027245856041101279132274324580837495048243029315454085766585611393182494110367866190614915438479954752429367856869425050494188928869414074716114664833248367899323919767859024019553149842848968534359063416573482941845833788889866228256719884427974814740924451236148359653513887849125582902828683043813373062280307513529289725740647041123532932649652047374053212682706207101438559199946712841067431472443508386391266571937083892940004358037846302417297512491661392380439666275829963579104034073039685950391386740003646823670801430037364167331464868322237817930321102717480202899986260894042563063656925598827103170136495809928497446950675160972420537888001943250630935411549657676621394896246738624609388546463624941044943396678450169340122821769845911257078993909369524202324244404016803650424800062615037511240185195296656285627986298788452624226248727535941575634503655969971061762512311389098977200441315217712873538385447781367161197845078225248955191095680346118544475932688422872893908760076109409275744528913250186573942662738503927529588602588807749305475010133531673544501615280315283940085222731673538579085317299358903844786860662379498210841720365773143001095930314319167619201331739815613907673819663730111633004339678931896303240800590843028132318949916162588274557021550645839245315287587013283078939306515097669431748209393090493226353091665487989513367690060775783586716939012191520841757615340603609954955508272503065723233280968277994490280740587591934268354904349387558286161795336824712245428228630737347137644655197732320202862960652479958924496537707047104225976157511769485712321309426084606472891359859230828119428010211327857838070022368128662440264747549289747315281797093342429708094778317691197237052518748727419289667574794070964851626513813465128641631015302301298887296454859893683680295254017900105951203277141348443329633557299748483935418571986201626175761686308646284124895219526986845970172000722216780712943886823262093186631176709085096964724588963617066637799910353461830625312723148728469230213767499547478940201512995310645126135662571375550819313243420363729907849799274722701658357048400114394463498332050252574546594521070882829724165912425866114826835335469696769352479257654128522323104837026907460344608557374785856411072980939049946154840516489263970838087987450478633204075521359294103627648309267708254969927529012049647493249248537600955999142220661808433119426511923305744696026983317818004136767126246706506866392984577780550800784417201401458594844682356592625325906262105049876625448138395604989719349913646731453264009972463924944104652322511000516038229910256460842305536603787416691679371895411496939165603054081758163106020530067373806074942537917632978650315067905024750175538109859655757617896177896490859030744461773179237517780084302007871414517108944895358260203570360221104577682645493387128550154605962885584288360158670666072065969261434305713789718940598968134959282758043863578197779689149752567776208729291582933144455398711659664575278970956416359069918930646124382092412413806359405691649841791558297041980914139058855172064702549915043438532947321629504186174507133680636334962278595131209730420638854974184186601875500710960851444754606234442940034548440536459362126851284676879359203619631195323857007572590517654034580618478024365422620492536258201598184220326737754707706539427833778445617930007375819820399889567474906983189067304168446398673420693384245902602270759199208894137811066134622751638810719268091270399514687801119972949271590073362583461758132831001757564408566856707651480848942403450706104361933216953425241238375838923462066519061913210049039399170543953294554692134502393454377780908322734303328987439854719420996228804859593585936778832594496918164637412167112096994538400956852235080364826033405979536817104400390858614770165092543695667106664845429860485518622223431455043026380401577060791323858619791293319274092249621878056214898466057870782349710120863915286914790411110107496855957675819667247038835392649204808752633709869416603865394312262285436277885210009396283858265121819698907265930262350444234783018867263301720189311303163588226038455577986768851179781186752014011534999002301922757536887656312055633430135890414682298186099561136791346669546206137212613838838684399983702669711463082909150217471770035843274492984078072688908365641709117566169909574178571330422366173151713930365306954583621535740293790500030204935344338622900101430299122885600100997951385835290315236599482806206669416796925266768860693412466703400719132818468372471796057994723489401901059541605647822143534518095226483994623153321085639965461913103473900476639949018477916221280418493775094130889717303696972791331734886604867665093820600155143479592226917924080066374080543681989253827064296749277157953698547055562231895044330078807538721598201872122506504215573921591472586263104489644191796972874021651435815203400629585720206641319086495595410001982632433523735172567203988856483015394563177268666254007625362899505413886176147415303696649535719689215982890721359880190476763434861099981563591611108051587556218979714592860707881626818768170046905167848193405047877923889120855259738459580647720308334536480598469300434472807563683541258339577733139093223498010012876674504187243085720343640594170955606362457463901527072776415848804118407625845857274523906428934318134095781297464857690098149237355264503568893214387353579109390036301521256682178267284075780115290840196661144798712133079958012362598963852894164796970607033108511145026463562868849006846814966337080413507359297545932347186991627352799639976424840539811928117672167229066591138983856603365882068065399907131052665625086766140889486745122133607516474159616773901630112801880074853257662989973825849767822366078534071251466230019843058326513754388058789244817727803141434864633605174400162204907826582024687078693723782279951868823456838295675778948813688898695871172028204625908769641911193125591207329496611499959098304074788756236675327213788169445161415866496369803978642315890102154654651013774085457433532613079401269676620114405470182326084899968091298485508357157213014904216662226347224769684948443691327050733853865964119637603210338059047700289976681692328661347123194054856014294505569232414717821176040343086574481999672108950916047656426865923505157423026823595388058324420590995140709504306044448383703694697855674393444541349832357122085343271943323982274610949471931625464730235926418388950896345594778101946173399138779906747995617666470662493303877665254510611157449333133822871065137155137006617604325885707574419694392878113697399542329863408658241177468514741459408557174915700479598950672385478931514947000938332408152590417888010228622593353088530765903072335551321766479015806341402747504564075731734320831392768719065798542224513235242209149422825917007686832032772555377744069423295668391242469199719558601354524611192177107530262819543164891982274441997270627306211246324128431660450443582625861891787834212627516307703542287223920240894413516204256408114813686472435680648067960707090272279346205131162127184003249743389643323462305914337696183859031467237175159597248389018897733400485784651320636292908524432022973246321539288147247593133223561143235776801445449438189250093891432515960160159163464703616258333939291327152833676380975588320400715952672523813926141111504540940984714957041784915604895259104443388206789130899132449240422492833649233909256724542023247217575942114469225189073111363676276321419829195309644346816207909564395977202626480336545695405658008983050456101447722714119579437302903801854838787903297407600606607737770570571381418525977659831741955905694547172678461262691347470785560687855333808607813796061617501596089365938670166409119121641865531902643210975331292076729041825837670867602026981037976989485857183390127993004532929232577289640980677467992030955479229596031902936952554125957888457222753851037615265946047040327230163732649097624524924721432268277939696882320813266492912847321412194208477971813705893449195270130642822402268935034025871576722227818129522833121435782645146614283762369435681846648798521385194216865981582655975452856625586993789528677267239056799162160285001943262532867154877206695814795394461330641772610577628656348129975857804258944223199827858088705223981172915765888239253968696275170445414680744352308182862862583538715794674043590236515834804123411542500569251199823986919092873043860569160385145941434184651376783700344517145065516354816586813118069251671487059589552999140537236105966236172211836879210558367080108795374765556896344856711888079178049343956681749756174996950552459774263398463593767197399691006023765160492745468128027238906352781375835688386210681241970007981906205082456504121522239612127719727695771810624270059116640584132590737026601652901603225772719641181654338034454837142357835698097692432592892702000161055911673980563290370427862619416560501693297983691798124753495615379519560839105519837820581610073743070609534330033232014856898487754749334939064622883533431182878282663606382564931704636428857688132455916062342310678697433527497338488273841567599345062146721850155018524568351072575425479049832518302869388830322322281450302667617097471113850627788759221384656586137767909384432580411464643869208632155052382514895290695098038582102651370030283576089483689865356457240481235067769885259719968464616718195068734616961700081149652714098845360485666960209796943459600854485032610647070011558975290763763595332501455471664041688449985520858368700246812526229830938668763725068108716715619957360642669811221642534153103173325426288815283036365299733982467339433670764208907146459143393193620306906660101541762863429998932296407190454143049094818121446579956297418635215430431429409470734540551538358465749317040992111388713760357283462356400196281239544461050722476532002136139596257972090576530392098890177734324462020602671247747854911823605523546288464830937367803033885277424182378073124873650379548082985493111848705666435098196725351544061312200415920028017468231835618611032761880894371971474803890042266868729674620601476454758985193005233930872890601165854150201554680575250517686249289190369665488809401011941034213389757156750186081745360747721731158747812323147922727643069038987760456259407575425687149887333937187584640333872372995602805908202681011844163546413796753154243415302680810754395284425526350409496340779389796303233769155343496297740742378683346353472745397451121596846017252679016505229287895574624953406384368277571265619346476614309665685429321832844945964226414133047015197305315887702328464300952611940430070470702263785847317275669556595609119252997529227148347399717109193380885137208378811620534510779113694756147257046019053819291602465377606454477886496635237631433799292221515854434449150560778709436114500530981654579151100576881015781745694521241589698138513629286840420559723072811210687642628377289701984515086546260067645104178374498796130594399644736826421701206461008616592485202561134769688064961124333607681264031300317764614783202216420123141626799701999164236237007855240414045909656674643858628835095200946092885644429541891072956234283802693907830563267591034056172713682827172714517361335350587973766550985018841495734158196519097091268371696451949039944843424611527502520248742553727987757744534060666399608492892380260370629665881335665544703068465373100765792426324456316221253605484021699942658382598966435814118388337570561459354612902749638218643682219502084238395376293745326948905886211075509750986097085900098323355531685288686523051033553892423140456005097714740062789643666708072386775785721179520584395248274295806869651408591336371055773225729587474882293572479319957505490500474010543069186427529540173749162787447092928074728402335314805869735944232255829590845090160138801109850948427869662809144479214625316708868918332185616917822744495665332660575798952826402983226221401013285422770177050315960999154096663874485430527131354987401013856480682081657841982809224004535454711155490577504638632930562367395903088388868083838051641532357561870084418932153408880033757617496317408014782849641565991582967731763221686357566298078655254854979591916163165560674100591509404277201773768602287561299891821409460665148659041199007965811539920805453553969409217430961498263442884244101199961259963729993478470681326314199371669439694936437585532183869080470433918716172455856025914494460681815106255862022980152497813674829616325164714160641795875233880708934655116926234460554111804370701073852112609060594664026199039734029342306599122771161368710307604800356825190187901393156143545485350627389806192332222094256112232198032265325201337767194206638659804299974027996726701233617157256472114422610750861026455586807833058937497606803403537761639632172414876665995385004244115177997085688184574967203778590818109249473560281164391810169424104239726183881618709573266679085307744972445096026258516658617839137777692414778502795575640700443987405486544290391751530971042758017771768035761119509708076696611754994392442794948734421276159366732967559125895567568786653353058720166945779542823002756292616441114939912627512917613522656628700228870610647740238245555728371406351504839266448256103290832641948965575173115270518034315481359925118982278850581864816132971691153590792701150291974436807824115117582672248616192276768206035741913954857145375309512888126919324361396960344322096146052951860315998347477445076577890746279802728383020472031924458135852238253770307131435362361290275994917894360547397980911433401612293087769688041176183458543017254213383259424109982110327723096154749025033126934182885499887676722226270451194774376050649796798369338351057510453607752924987440617746860132576761044179565207819370808362009774461676980111929478822649780345658824976668115044496426799627981244768678027358010303173655367854345646620587314855098161759176520761490624474017907146056147535658181283560685058656795055759401077278417454679793174998287051894007008284294436886378595766472554603760877436148749557071841726669024121585901353541444409623659232327085658689453611473431856223595488351435112565953411423623854975508154368639826870757788102704178707128944517687307833521999625061049251543821386821321426809498825936462867374626450480011965840595921482231588964879093146360111768224091531065786149503190473605404611671902253892370654195852913086726885285310786939297543981344946555662135763755439110027499589424752486057303517945243036783083944068011803152875154904388856387804016107190879834302443336714266059979038385549439727160060990847692210629366776716935466358416049817819804234224133694524766173550261545892722718834925940310719873634991786304441054535635633277320156650289661903343731321134325692704982784843470473463807447436553354743257496995195909524125432371319400627445797411411135309953144454128528120081403660011323017938317200047358219961479529086217069497022979210265186791390962055378892339015533161557324735515228397006300976381448301670681835815406536302339408719229752672772843971892684223102348351770232074801034621374934089540052501068125207301641686021831976471522236925408633389164088766403488184703354671727056872056076350203269775136484861162241802940728368536361753878912539307754914166408994297543288810440768139734192455694095687691401943530718362762898974965981048505218325458548049515405341651104479123938411607451738812011021306166651525694913735481453188287744562694652334087768027383833291685608978583464459191086025899061333685557718307652137876629613149314082262710583541590243761635060961805971819745133263993443286079033584633614346135539327855956234529561403546539623243031663836071356544176926120035033871158267152213176006273981850879305735673664934181083982500514997004954416064704643993910352137035786539885667505793047336658735661062060751346885676852677103214847459204793280988137527875593266281356212520865415006730371835054478247392944155069134617121436891109447256870091606596242446664794359587237895256214507499103359251218430233735927512162284467796712491057984884563491517630256072390264778632309681712201860317133870786938628717205162954582105167361470447603978402165475488517618100709260926007218781109627395510882530763771825408538803849668452070616901707427743161723094662082903308633494895795044089708811810685585157649221289658000025280389109811775649609850494295822623580062495910171012298591687105305578828706381310965610515598282323254779585634246455707240276149874847156603511401934764185536335430565116589287392636615519256317801327745291710072203479175493068520637969429592019648215204102847054483977237243677187361521403052321177879840299637612653622171373164507785903935320747491395097734100067209792849634481678758835881840001558185827731965095106868769046334796712157211121513073848196535557219084243903107161659931324243314680538855950288934914798907179004118914078320412418698280035406491017851195501511474160000332127558713780961744119388418637726519006643110140374111726677583657212912871736272609785824763309638282825383707611358978976586796003973667703339956627167612836622001337720315521649895093705140896248661172877003701180169759888765951438520124705094281850434938228501130439279168089169492801562128922070906574117397825891791964417404698253794118379921652620493838202495366487011991357538288161614977170443729202204845236137034679583780575219588159407569160459983022738272342451802223112895078366627016527093937634630539696294055670634940114003655141636544802356987596336749832694826681733417197574361787986060685823385011554554238837227642562036098362836226362426183915634221830835768681451594983676827650835973120015145682982384048048599059977824867946462284653849339919641433838227984061300951906185862137384055239541682920285705523733866708589979277834591585745893626796322001366129775995734565198966333836627874346433074579556564288258437374203771702197497902433060711248512878289488250408092129432117549215968532600064879009995028854870393171220511952182735731014775138205394096403892634723158118461659263597952166247509856570447497134620152475310144905345452409507663132625806518524718624781274933006903159436008751739375506003872150727431053772618913574402972298174837342574704342258445440915976730556551175940589733195015330884613001778159917562313782596145585924439241177818899578155539851161063856220161268676332257900321809797522121903700725653479094144211623785877610186964222675840594260266291089934179768089098027967823461097038141682719712488950510209959335411743850313742393789557842680127888232294632489418827064796096904214642540426059639009634589664836892639851276885347913952331014429096330090299507500828235574128027475943682419951764863490647394094146455228769813283322673666829700527547401418178087613717722320848790254539186104316706396180613879990058188718098816665201799950197704368786105528232783234696282561736762373491271024325761410164617519527439837435652007808181592336252878084235832078321513378392224597769507587933442670404913610357085898528867740887732956651096453243777251077213532971589158176812408110879333904610269788295285950317568111833075316159994280267901176283062917616130656789118134188880478456001078206699219639716263602332969964315841910109215105795941252656617132050705277212423391715035687182257590343232523806761386109663396646661877573631237672723703269707975061964673894017003448769223946028094895815354129232977282604700055618564105378619429068197750191997902040569898382329119417607508793922197528368837883071752108750289450949719631283206357718586641791056260653624349730373690303514530893099173272097631359332938161694286436197136920636563050844075122885085934569370014652671100696833924424735725013867830175188884540402173928090336507600488199137865855133795245211195399065462035771605297144387803344648225181386673690377007567482160136656666069948355503963443557445228369132359251112506573857208455372718803307808447875000276979450404732777050832363119414577309612652669219802197580215553909109864503825372888428294075772368592873631219795142927133838275859680787684539067646513057922850021875949210491214348592581700304781663169612904015718928482963021528560793227835786943606362282177630184384088477191453858939175130869308956586613526821038751670828696553629734832514148560037742187586863412125709147822537392092950378484221787665177916697213075633885504523898271692935734132719141061084553838377092387720449952409515447707031674876491975005274431213642247700305782321256323916744099216485153033903063725362302027755634750355825071978721953913920341661724899931226977314445521989604870290402588483034752111743072759024190819844706981157587706204824784243631841452690523019792322198713320929889475590922570139738222623799189410665000163865895828237370223332281518482921364116343611617338214471494764175773019730002422329101107693419145432515129743762874193889263646589477019570091854802810921172696721091244510248160972411309527592825566687423022478879756280612962228474311196839580047178326128764974230346576585975107151401247273441228319550955897163319747673686530856932290855948988899135377040745501177881536512148479662449789556992565534679537171795294459231152253596423454946239801371009117432441714416009907859320716068149102063266711986483731205263768238745445427869981159256134109201389022478003323317992520641503043426429841528623827956911187156520911963096569703779604000806349196165069160710246050408227598016018921892068929122111551871086089402344623542572638843329652135561960909412061835242220848245197751299580415384860348779060388675270568172462592573065307890215532296792251136152073037865838980621633897657401495939246368939476047081458559977364381366096874810628058082558430935423127018889623136993874027659853666058846121660998603252936843702398820402635043086406650091642942842723606227772584944440537520864709770051036634690992069164061840981072337650218066129801483147693793012813984443643381623785813210775112673682343878293202001984188256694678421893108880191556196917760774783340830649595066891132483687859455048118669139162217535286596043801827543757944842961004869162623370616001426686896748222201859395304622840413561750846046648786756089720760070511545203458542646118670139187661554263672506017300587099440473629355968190761291392438984459336646748602732370940219818792948594587852106547344302838613199880065587916639796521303051327098243344809189625254249620990882669917714997992771613748393847329170016636327687453055180798856839681560555870444252729373361289678398022659176757675285159587637774053330421698603231093378101846196470101087214853734204456289031103518775080807768756312903944506670850700505258276687311979598346604116707754819331889999482688117376445312217567402693715430310930231467024985324379346268238693631296782520364164423382551732978088615570992129459503958614792767948075997232560430175165902058872965279798186453821083087233055145932295642181402466167814760677092107722515184553265647784598929807436164378327594224038835411990369948654154567307306949585813726186453356360136676166627730182465757227982265388682344956905352195557172651360427296967077599186383290682318968951520996016300954429203651195160563499894412882352347261121575395824752861990723933192575163573590374625648457890914093170303130175841274668253953422789315167421982943559209524162378103026510944134891406933354158503300535505887769877150753587209032586229907342960818223724427309903720089200564834307183771622078859118716734757856974274545164222308723776962237949725516656020502401186750913103897532574072857164292196057474336259019617214878872263784861569981147000440366847511702445882300288669259447551952162195339133010147963535216554890809628049953112554122010692555489375556926338670112145771488191358847838791274140088946303911495952233300867535413940273230730640877278252072162282090672459036749130688246658466624492763834643642482796085481472549308017880300025167895408525378895635245285543288309217871446412876012513881608857476117825958532268015371809363109635776777293702993509002436712661749726958032023558435123381891762102147929497163178262502338771885797944131158466582869943911839392134009609047333029628062116361840103933220939255508141402276366032895016354266320935471589155163967822945292225780044920727035266214589511629007037048392057320757455725428906257122617145688402731352800407787665882319441668068121755992466138822233353392541857596137532220401619226661285534867570350904967228676888938849132161601881835007904657885972220100516629919375755362071909221828818153988091662872885148541500757696520539452181690583229369586721401987897780715493962544176666501875641261417660915955987939555923434887877926266222910281040927361518827718194765375909913921694648082883678665205765352253296097645134010774304172053713890056612718996477896387118075651188775607463715276504563161177050214031415675124551780450052178625175784915736624575069002192785887544928734481913060932387151550074155548166788591427259763804923172337663179913056111513333249104720589571026255181645835340419431426474390702658815359074069927775443367493491405055657357444604134703378954340430898505267804735876352144465809438875592116624981832454338705091876641530522636256755649111262355827388100395225757796253221775214274758130635935405677038860249556647486702205509206261754293466080310663736283141673466776913787126552078782136946581427569076276118232967317789309323647407680599863966731580500613071762364510844264008192473627981638065387742451310901556894935252702292017733416376756033499783094815493079584508618557345593884254532297474742765192036419065523936614462316960414733657317159454795138216753714425450324321252446621692767778538837441497743598508235685284460891660859410437042235875356449403401262960879449902962470189626333103121949913291516901788807715231280514665294421026398355373693432727373720959770990049936416544267001336447666006355607261974204893890321157760846083488779109695497243043299655887612242503618690054525542828039745261453532210523785832390446684057724109237452466264134709650697810179639648854917239082722535783527540501809727374506491385591237016839482193949661756691859346163484835482018056820258663847612432413164901566557267887988817314802630220726740577870435065918186703414960507393625691346023450948234331973186928853266088463387710192277254396825767928254824892651832533332817766420350123224153813758136270428861735862339535560762848297672889806115587907286540069861200039284479003211035166121047318405679000040822363877913424603449275619227566580636314847839481499147658866026333706667888797126140267039457082174804417504072719767955747423135566398599580745258390006871591319402574109703566542572694203240184804370125403385362312588142726617140862657345642254389028414524421335766479895875700638254270289146995156337703576592959355531141486773313728546797150139154355293191104425018020224065858833763819687231935450092211964180008348304953899853831876465712888788776336414816788597069379567335325881314633081678929077905039161773571780657120350839321014231552839439765492849853821438682794964172833598102218688426813112207958326065878705759151223030514101612957210595556473549185469073006883649390580732434671866126853089836280236795613996737055163925075787591556092236639578462936467683241873109702829393440680057280229872423202738317450786726919573868191640072854315825297046281460401540103333039886424339807645027138202299909315484222834951143560849735038630927922680141240310368738794353452911962680807186712179553698028261594107329572620540688928776508504727544496878048992769966258217312527048532419163281241054693833650370755346049544356283739939493036513446069622405844203620331983987820158166113183942355576567320693371953336108650928464312269191862867522067228445716935901069602053270125384568590416258372317813140689902462698604753385315206020927373719027550392453397408613570616245627239527458991098969355053231596357430560121791239629526511183317934242303904135088483923527744344226435943438606153010594879671312932741194474607866050429528088983326435330557518987217052344331002699178729458853468888235498537297499310703098136261809338654959130923378658200479939240047449853308039532459405861902686933415081727593286036803548227633347719299786092989374542242626551648123200791383248347405112949541145718795820713646196305695862940007866731831705551188206773693857164574161191173916157884088736754084324488380293376224027056475597519923165309586783035346309959745219153245819273120668733084888741004930495533593730100157672234081427710946813896474393613022993858388592616560795438964867824341845325439342101019250998002087465011105797210814818530205960762772218729641654185169146689277799079263359960803675147709048491735434102254315275760989520982629363652419974020557640714584701235256828438881875667267619945758638863590933578296506210114163281361262672065061102207602207403510157559170794085785147338740886250354760272258876649201942205266394826714125096878566652847384735351998377887885698103378567970000973877596091543458473919484361609308409231086498046796863436608852577406170254107183529463919206072230777910553808423705182151773778253735694207490931133933430060071862497332965097151056962695239630288496529557321541852602974911297754268907408390883235961972634318767057448566706209714209548332258273434385003212964112377596980442072422448951545235268985075708418287910169132671169346552189559529336836211323828097897412002237922356697500023840213250646602950917943073612536774514557561550645468809009076267175020120548067939818636075213348973156350526303347934019642092448084013645809212834124537411238835117379306139687306520812980006349158704745373953651440864410958348827759567494186991557295873677384224587722003387762287978428355081512324535109331847970633182536461241747251655170958600792751315475187653617423476358974544392843190319792535766899029027419005717971439567690732586136573153889824069004250767322266463889623294310064658824136681387165379539252669219354246196393405866953984368088075114054346353785547080702423729015968290821446562977084428494100691422991264333147895816931919324315971583830399150758365073931184329434213385682799903124125071831111257010749146935733721056987235519527819057927647226658256358389403667914758834217534876801360401953899766724314528720947064931024852720969647912800577845427615523262297780934795212020682743023965321790006864348960079512478276015682097738718996223241298923518303037391121095654265705903302371384588281884538518331429828811462209669639082193548427436910464809386077808177255422125334606184074145233378655797891111162914099082581635126187535231940396017342327852290959494762942451504805039869525270398613092006125951025931948958322853714575365292298861996362929473393705300081780937514858197254507464421586956057691091894466340802654313555889282777318638176017190067528937976714791144840096072708664651592317274108244543375131777439113869796322134757330611807554609114206832014171248910438407131150368271368270343032293515845390338303746248357275524343420449931871065980525409381429243701447306783223557214754315096744928856528587921899667214016824223658164805714412465466749833294956586035615609107699392015046160237121422680953844075795897039653517911410378166934550578988266305815601266702751639428327601323937911755656960388111469333121829535741004920706860380809027248482380216655066008470911139744073263460264466340348446082630635729318138642056879118963045615524429251833732239502872590279795781383559363561912026657196769703986398047827976920565384913638847803247912703534579154481873898554397559545231261695514674791071324496783547487059568003586994946502975845568211641614266587624273622780340481345635607427632097675711734240572919353407993140602466294661559331484597129456598085926441955733405928356663925067293637894162419977892948159816333609733539191242558710616683296556559950531560560614940767565052585127854850573153239648122089761712950571829444699427080861920367611599746790747384267734608370029091620866207139234810399926569657721996808953520269567205168321272152670571132280957568000735473259789411300676890004672069141542811750792462296391214578092757812281451033351941832852726783272599288059442827846659459022691865083055979646892654677383621002488231578008636701531050450092994908192507576792023320720636011265531423852185227382329668786739424961302901480263273950810935254627940001411272698389328144578876350046249474964478937322033744447026391885484649833760376863018852828076705100165935915908175237746495159637874110930646023409575052299471198862002339535889175192715212651364672741931314510393351303504162561966185698802940153570467300390409611818846240781074801206733452143358230345999770442025582178645914612203244621042840272161681487934693422616299665872273184024386637495096976995672734757673605035395885930426057301484811840280744187228722348650524123065450302894705887112443618595713538852872412532048399033212037421633664945096646793926759019082610047023685249813298051633919076810555266790352936841835169586339773956618217242633819779720085108063515568139114396247743333977660129695175930496940331161723008643101041772193293878458020592161859946184556401886763404095496516837550704946611678409740492924390785308356847481078370800514118172534051023774826493218819179230937757425708007777786133002658059242680564324271643302460396362774160795026485806621895069380522232043379439262418990569947718816558296715037948535683515047398654782356058480499220483526828496854633352823060407960698261902861230371372220301605437303438153303381169202908471363263845392537574135000593936421944098729026680060424184372104779272679988515443465182215331115740320245690652893650926103153051615623425385114281975889643371587595089521030775001319904971004239981714140620120239495462274338425575232928028518715025315974759968382201273903671780189560290448813888955011102248815307939694632216421379958682676100512053453745970911396734487151113824905413586113456287756819870839863525500207162479723617970787028651183048963258241149838581804249253960853409694674103775309749784917484775577215308092269320372033866063793268167296427465897964506085805754221744564688322951725400452835230807917273047492434655580985828111001031583621176989766107339549920712865317181186423727295277186481667699015788196292508623340203828180638393924602911874504589958976530193169550579012693536830948237569996528941044137164148509560401415155979882109032613649478006013107179155857098249579431762493254066583343557961729881312827035090564622579300634774562379091027992798568952046240672793384467505822458221715898158806485239047693899821817063410341511411792086524051570916800281154386445251460336333752816311260774879409588051901856855348877810739570280548473453360883675504811048699428582833756771020558021785663548250536803237139027546657573466081533376038532721615013994018333604645853731796560533311475681166936767613964535260959214245713356789973664910430873782767198357462122848835206143647105775828813898588707223999956050254241600338873153435089793402386568796577335276507074784344176930739833109047593529809215060942640329776104748879969267716434089659385777968646798075716443685579094871523850707010842904126196301317361087976119101414750192506674858422153017915427268028728911507823282377150532440470413212237659294166593568658667594386116826417066689106731841849498707625928536003819581205528472088969600310159400376478644193252202100854336824433728703313749555805544285926942314266936652809309390362305640789397553870657487070903227948847181822084228838062573729126536748761915589839846806407561612453245781865888012218820466825241487609150711892633357407099511068933988003832451614601914164214895153010359616722419745845721837885479397611262762879493464881158304397585574195965774001503012854650910151456618807351386421006270013315908531787800814132425309083230181264460932359439207009153130455127451189174486003586240407399804895166355425121384214141669841991532178467230246849947479375121583782603168969300701186257107142534208463775590309256709432447342446026940757920007521077264899854205264340895521117432272361611640686948602598262184850609225592682886533990003069139948018479733912863620622100148995224460248884702843071526305289516382451331589126498721999948478396128759071724079653679834032990686239578984307776701227794720113232912956249868282121633420976534764822749359289352399953950669074651434281277562979617634119844318830847028382486184299594261880492837413632038891886028099421541580530081782755250725101659887499921975236932976997090746315776611015132407815666054085222344161628154646292533657229474458849828363313173225321023195200693935545440164001456927712968946849875816227177885133730942296243579119176100048804086436855960105140916704965596484127451306554053867766846451029240413660191064363533232443724130553603010963874500674758742774070381614072978209773143953955232420794276211692411548970309398387466236574382065248063642918032875662058059557837675676503814563285046142013440645084803983064178487999786626970134592419440030603398080091737231242741191995626285884440417936949729385288126111300856724743008511498977796656188991600333352327753618782913426273783237630972454505335024694292156346783451570361214871713957279025356664624290998993858342927470244195349788785982488783361588593685231433233526222360751582493933032391254873185480062080014643835836942001773908450337599312736292494989775333781213139367884993626267401049807473362523437837027827419648357160811398761925255212379727477320787585104418620611912773585273335535094469360164635761439028198603517622350169756188887961928235241443521739567265450105417013538908815451633652960896847516202965651487626279466336278424002558607187548428693536590562536685424880068512914727874342315559899064983496413761287724507642742244484104021987894131005287677006691198125046823505405276407305599710856058968076282090604891255934297269375367273142223438329659408140690788305580747762445021296044624713141925324772698049408273365950593365098204969932252406640245514841562639999945216181500833465464479220167215369821235178717954368236256720831105425228118773189841975544609424381468648902197759597665337913146484052140588203682892882946327436470351328107037022441721075478872110394298882696024144598017012801939128711579615619842645197708521627231331735861089369035018627248773355913690160124505052595326518438059682688091382997862738870661855552547938135772553705845217783677043539148015795092285032810393696269834181502610592938991700915564555957578530495463913795894690667426737656339087831624994345087908739059312795113644124376646151516122350874191427230595039992611004333763846049175424191815227412832848268846073749022803424719949457388629274396475738230597850821396432155665760160705060501228906773424786542570985438503935095035263722621093733124591020468654535717230410157175447167929656634413625374134677912228714665809769159624087227811754399807307031778853860917690684581694546498678190516387875552205065247860586645211163660071409052892517744372086047524976659307034288824713525475249512628052410676761513194186014227749019096788038969679220440426756891683355472090305180515348314634148632393684118124680417289366631264268037537134677972203573121283028235549524655005554784366613585594472112713716570854822830474046160596981274250953816877912904432452784210273736248115920555126005312927509223218002303245721982258667395022756530798018372664407725154761525713803670185574608009721175107797932759010481436603718647007115606007127538712450142791125840654437147866118268205515811181185248464287911994749606868672161872344442405380244251162438408233291710402794609346510245969772811645745887950592340647709260758862083142567942709530699927741944869263348215027503469284419689492957864307770935900950301607341824175997766157904871733387888499473031546303251938479822394089045354584136920672119763143995606200928374720673944276300458256778593559421326548801657303098535481708596018948003622122137549890737504326780419030890716099155088093149163516806048025182895212515098427934245083213994933696511674164701041211804797245673198520004290473663012817069597821708115276949783494941584062566183234350121287721544508972877354070589627010904283934838307510345750800885359638150805095323454255422412767112518390131415986032264666461154808015998011651612656746707340207648952675109202531788646508767481812513731345895834625439922265749590442643620803359904304646090722767518143179867938605775027967472317692266050338561712362713199642864759350287878483332370794064847815092720137817882307156297087104429148347555120164316178669645143412837762542811306793887446818940374070380853557355565772465589130739258162154978992524914498350167177806653222805679053143066237844627588243341613138435540071860168640661110885576901143543106764690841681535881956194883802365835316821352492270474075397692698894526004348234794392938459268273455940499258126487632837501532952733378957875116873307135199791161107346257981731510224754173954279348178764144915138184746234048019469923416408713670740004397744281606821427563478997936324860450989341395780320900728665002774609106354935481316024902846829028718408563250386878395976750250733903897981552128438897215774959423507108659079877001761125617675190548525270503297944338605148813787310614394499743830174246366337781004971947708928209469347334661170505510236135097313132180581289334862599096665800718536055368088562897592528089580683844649057004075899453515507793296245384769529907980744783529539577907088918735857391729770866487398921507628942936214433779725596483783521797902553373252465246010654616701604018082275079077209105235013739302931955889822055332651518799901402915928183209436162893435576488576947291899887410169082017180731919661804385029712406638043507687958696022073510520417311186075217344065838810561738045404137581216126950339182338353271167201092535884872426166048838079152866963976541274597326229328437042734019853562818072099293355110227824390168500475004938812919582969113090514991426132538154932759349187648999937883971970656094611113122269362398586000767549212864630979693137446980868217944432016370122657314162617492978494937920631652239997382945586964184127256219965461535121342020226441557276955124929781404880470004960206723410992148395722848958624767628759504728075059151425860776561977978847747412635215651484012905644188242397259695200649243243266661480591440528187198764639703512436889238016329012352873834181936305337593615788209789054250246547682615658639380157182349563341803268162214411644265855464717993808896679311414452291496102109194075737852599589614072745559771600170332629563761721249907383113854327940187429337671692147980533610736910385669965851211879503152572467285843510290849493988376052063218088966293472956096669462746056784799774314216546401858791739431732763785832804147207083310773984509473505732380962858448921844925114462178462127912755003344374757273039265141230366460262162268847030075987805155243410349471283339975514763139222269751909257921366070655283807749454358575326943375253130959799302153546428936823617215670211379421629992505311023984812750031343232155096664927314449546846951158089000527761076868701425477290603477105969108499834241539743430938740164069902859614713814777065041172672236036631117262241268822744615381162482952444994321727166909624592696024630488838013850046219385539602659495481441860722986794874797369899498200126569678297175614256988581988916756267700407550684294112296946757155234136280715503791677877501445867975180257859287687879061601370877807904127117637661466420321957153297360939069824856441893412996760906914714464313956730077407601990152059983953886798492797268112057043598086996215544731123217756626838781959043071781393670093946239374869588741206926521118889361398820065743622117226342177473466081621637291964442388419635013955206243165206004870530936341950427422904373831775778363399644986093704160062250414434439038013816206147314244056480082874945145554778428772014408347004760230455788026993672485474142234977228928522699515794859336622210150734296305162577180697761187756421815357705826795133862706284676275991388146821227457072134219199459711220179984278515690635944298647235275340190885712622668255692427972722380659540319280523678568034277130974354946684885972054627682508586402509958179625645143391136111201186517426119211762656673527992601129387416428068222481850076574907770920236499528022776326972989376598657823792116231212773266298324394553267507413078878572526170148660172316696383733836559239870313127271546138971806075270044865083032800932189194847694114596059266495870023768597533407954489031290865399848277170028422941398689581069855941478790504637797127364373164488749815827112493863827471639212181237612781635087083136352352345923727869355461568454491812480945686136003002161875175907086505554203044890817883888613809166962524763330115960690251600474996316325042110454737291258729989360136613340622391492237443036042711517892187877969914069707737742073914942394005236607051112556573628739308885147452144419672387941882087525740295802416570867947332253708615490896202712881133340182551493918778899262776861223300081154378002623199351095785721212954245980844872985716928708918667002778964155868387979683840846646771999675201577825386199297613320574174414406762834716952071001871734470999463654506543162515023251548361391981287723383436143374772935625632067511063347905036087371912394522184935982330724269507810868013510568905974069375238459446042967480416779889011898666840977593979842344935865484991622033556308797087310587608743945022167512246601858000978947987964169099457556665809927732562688511936426697676815277646315934024350533713601955764271314712667125063663917193880966490147375601917104023704656817833800843571831786683118422421885639245334404826455586454151814029648451691641123935975215466435093700621433797551134196649272679922808992620849557976827289815039524562582826391583194193516828790168198304479054589581024637750752851202976933843900488228006532124756618101561394916688574291470282472934179594912907502516555280074455768176973254619666341364686663223214826126358155505400017009945841887717126643902042253373346159818628322237856291929534403288698458849180338642002287133991540655380998944002225222394992868529264068406195814862199829503563668728356275629890830658736008341697037281542276304965545885591799298441546793366081594218418065656802466486312697239248079633753020575060642839994473440580600203416499967420393887941497170303446055951998335803551502233676797501168992383982801027376270918539513732591567507939750783124815648058835197512073756089367108159334427687020832168434932331682493409853726505828537344333091602332393834578444731009012955048325243541765679559578212506969927571546403241299649114907576674640001191453711813359618907581717173763754218227569841673521876809338021522148463549018724428383305161486296361533339560888543140125630207778874582802633773953650463351392754410251189630618759009915129658841235177181146247378506142235456652246249000026981645735084856971473886042157353027428652301801117760740026110570022510707248231711673368533651630480491443745579098471194300149076965578929369779926488413152655136100349023100345788274884282407252721511279260519095238788369181293304791960831574902986304249090830468114162380873703398565301013753988991194697764561448508060164667135444633203507810125096617062193623644890347065099817635285716013180682047005183815766246198173086251796086280978316805002573776656703212936087473996900054525398717622842638276455557439969922831939847147325336698836473481912371408062326367115666218682635196339136544482251464422149173462096166692770659504272328822648367733511294036119389796458658306982380517765147294651312118201201464583706985200876974054848300600394923986308482908977508690921783989203871952193300785515525454216746354101020046946258887945787283668029488268582160282306979452799965305831836837379794602789282670183578796289362875845181487592046293607444443938817157393208217886804765287370883132451108850631784725491892524961671310731902914491402687891331411884453743011644666981907834160770200168753743717286947860609575057307895366988276797678355606246329439515232815662150766678702546066474560157691381247277557018607246672880405279276366230298247454386976807381535400327395916630436680273765876508012604022696623426448111941922510012277432498804699181588067578411350609854749544958788880186750246116150682528419465078750614514899233588845893734762134829157206906466276848567603081935877285864065374286600346606900147201223256824875954198531048052595167146189097705899656670392464448460257067261086360917399109727417063639281332872363983377260507072503534280791112511945232798234393654637663253674375824086173312215649437344563240298156285081057251196183506711653449906064483319530243535828065914845356465457461518806750680121299719723836953247377181778991223638542842982695760055680840253701754816568557343231381009048922165238940063209416616994152952170772644987999037682816417639659037671252656096429179602248650663313774618894126946436463297258399492598770149366934898610396113934083549467260662858389187506318632070015711773547178088842820858702974148039954019898219042392035284399610857888219154521618110791868971383968872343755519020303428347044033508696129739309772103188058887552746198195027794356662349712255262688538455320359106810613109215988089910385207321636136109827938130243832927689354479420733139356904799058933199137263776013164158288122134335337300134450203677042518660003420264046784846146774605534968939369928510813118750036665923860262273439224477121027723698378974526576825667500768657995840484609948738496265798696687166190888208832132182420029595073485638778213489663121712937992932328451475847014676521513447017825321974481695230954388647615365764166824719614049456251211138244956405131510775693172942437741330860578712792154067221285660289132847826026922985320963671595617111363250586580054937314664568906622284416674339327906830134307771668764011479562526061944288959621559519630224538700096785957685990113818302136167624713314232053533176460623130934998121907477160269205216668248405623543290991260293596515502439056092495808010662403949672259963355288240015637174024362150189483014091957070813204249074480473930067121066529676951508350406907627118463892592766180567922408614310205503507434130379833115064168461062926904830102328184156166417451336899684463962296787400041932130992297878117120109249763929578449941925534150173283197364262720581656499838346849675601187825344371608887475791085173172689402373450667502386031297521649921256038430497941284290336419657535013672242305900209238952302985484985448829004585596400464966647837411153062087422950323839653029192143134189896504849228912179144145550427970898463512968396950547998510607685712314916727977533224638100578083799768253188439359782827739492687324239182246738391652396283216021633908221092865510016829872400181135923624191347998889622968154422057612089029197826750815107709546877335041849990784158441423928353565761246077455657286979244734586195718507213384384872934923608168840467019583354300140977518230119346010656280741705777698310508079814293274411510622075924737509816851994592293385041450902972942669952847033490808078870104503869912074190188686090133156310667390953258158117049223110209602435168111464709421737750393699274283848651151771607655834462307357811700891724026807422053305778670298146852113658358556001822850687025127995030453236938175128346001307666374406613996492766688541148157405374767696006979057072693429806689540271002356540893227598197374706544177116133227887757530111310760473601710343670520023618374467751218344350952171034120684195618681003606385982932717225605917269718429396291943428984785588003506885535689416788453710827328562773745680378157976194632856194905101059889485434455753432849199711799153937997680521071100304930131279476479781803892264141316837586964799843443589974930799108984026812295232576417039590576698582435405470188790581721609874991935923108247170780384897055303421359229928098052931584493344406974462388232170294544483639437217016612010496213845427510634457588472922848919945348706437517785779606719717074849345446666580047243396241508774699164903664799041029373552916853019418797581315562133920458445422921369620017593756045119790273230391318697548752769473147936406736643984513574004398849124855659104444867306857719126498026617852593233805959719474601782832041333610683175681811696109044786705770948117679641686169387670799787946013201230149788065465431050470326069392641900870894950135242028261300902362436878171408078329823402982055226744184730693087898174356111919929926570646387666172711135889810720554879875278446468321810425216004373874087167204909281359725307929802039009774197907508426239687089218081823188833571354194560724840858134968620580616880360095202777997959039226946272462499557775642799561868586578393958344689046213200868231546721446453196922593209457780149999645269190581883280750586157713917282156209771814371740471991550435435675120662253871999186869224184835116523473033762078859293091806472739238785619649301291988957346204075846567194809784309581321257226868309088092658690621507656232872993378835551536165000238583613951927350597774104391496538922935081763859594693366261340211298832414151293069577931271241956180573633715855418471477437010656311713746699318506084138437396660080563583071450408245772728437605686857928162087546101497658900481196777707819396606709955661222659066363546667601668494903341436733009391016344559486738233843082071777189489560727201589216942832572853197763644490005375659035112687744048370567201064320553124592566369219247240785961474552699508646172092854452733235077245038983986875651588083371174669233504763449887777464015573356319551198978110372580183147528829130862385181498204647130665858107386760982526319641680949832461939082151782598588388882446193560295208427064926516220336339774039771364670811157121669626345041615585646356135292845227916382040562175308464255646748481271826268251307002504543039743500950056469268966812777289142982726455647149654119775696201910401116675437312439406066257451700388915636930931636842253733288443086687660029028228245261414594886981919340158887229391164938636292597816534918040020162598706826673656209143111474366765012824408170776939881780530167588332366405132679903229377217526624892270045681899346971232312845900802037696090129019863425424053309388665323702315374906959670274894709048052197904541330339058268697917597175183394385393849806495079184937701717127616292509865386224398109531256923037462513132569706063204573747289721289343803765863657552343272778071186314731622955533442938142924094993383066315826903946444277845452738851739849323517685751612081505435208957037839589418441066327041423532979628060258952980257311703163920059699591976774597952886318525546015498586689250822451839052524120818563641969021451709514765514122294568949163524824744095615782857595585337837285689245622205872622018688291774032840485071085853697639224796636331156082598361902603643021683581781768729150501177128219042329493729634914130455245916866652086160177448737832755801848468888578614249582025790311876264500414463035496444602906301435558521984607483592607834100374623445009539838862328703824049206222778192064642319150232055022864534933237348530674120593215721296735759066378371349879331547011318219224990116499487016605472234429314301054352891362788387621759367427236510554494390795884934569288750457990384647773870675051128777338053858138257768230666264045567763478832070086444310043064415263509659953890687284643401913819379590085818244884443090285030996941172502147331324292272433862594110586621604370478336493611749409352347290691496588860858407022107813917649761135652706508580036674782264060396310416853876381358187273730276161578310860966400344860656867574569665109174992860293447414867824866768461291865057788567795606058369494353901542557006124009516058431211623508403726257602154915051257823493176587328298731371151169999131868798636708561174554225740807196660144419014180084358373823049920553528456287808697428679836259599502031482637411408554681213463482670413817399845664030934216247324339918523750539166023898275969853602700014171644531836899654263899820549707031503558915990999416198425935198521995923685212496992534430170540851736218543315012169749675914797036481296259542853374652475452249448860470837808958462404386298184720919706225930367584469409401383101066744263501497474027613586886577364083427519996013691523388039311868732843714882984944012232162018584575677734470925516170158659965463442328982021224803548216786348508014054025511725206453666862535808160815706534101692591685567275386471974029916403221354644020154232236545798425543765798089628336476432701175827302890580329603847184377176008443722537167264711494826503808827220003373691641995786115666384917789245867755067381486747599956639467349608063243072792318836434723068680447933601744836987240548015056760174594031420279893800183498298751891463405871469519965542385287875140965587925565568223718785830058793173629539221946215659216160427014959509025671591169351626156369190688770793659888065626997698162655330059854307590600110901939235469443439035237358033502436541026340478214167262941774953556018180272380379406616943077387142566749886278169627778051785822115980645387977672307653391897183928846298662745528065737999347662307405372886874914433768852115445069893315983978580931628974822612395108885493847943130426360121158210776869638519576424694156976473830255097039867341092637035628227224302077896607957629921904073973528316613548096362577099864152176944018628923061704259275068306315230027067156187905306541923187259469683977039778851613313752713094907245932306372048245514562670130937159793956472375483822250895609994981952655627665601694816726298870032728361806596319209617835279821280522804132069417372987920792603842010580309418973869187440962691907597259142122268679590462393074202729807365731955750960047481764147127827317490280559768176929569780083601883251419860691614545469299207624113942522763177099894428144256426222595204701533586635177317010833457857528463320291496683290889940135440382421144617590931363713929683082633541851135675108719924002485513770740369633041512223271464043365036638199097952132519852440901993675224392226100731469853557612086047254717055992769413962463505607354310211427399967816392272682640585228784654608168100807649333489047876620356614524590135156369651076452770854302744868374026295057392872207204945129022177972989220239595793632148325557631897550372306127410762579205058413547537473353554043953434590945500668370316005757831133716517134875510644186869063354958508650579968573838907788674815961542734101601508307649318789889763580428754032616447521579916919542549635599052494229935257012678919125192903316276239746752177780243859926977473663282905792298785098313465282491255617369593683050276300459270936244795059119738175140405473368063274611194466696876425698467361779389024204408292354225213208121805844578030974520458372124822051588233830678222021254402522596924714510167010167885409131593676523991023688455417261516374913217559228059034855892220142050447036853675902727217605755401975157941870278692237388979388842790465405114491748958085665862996499621995307219258001568107513745042516683259746940931536575557711590832188578530699071249000798738108746268591453383775440771472695970324684291067578753002203866033202139426096028572095877955074972359596592033390875591295024317601879984539482575194271365621694275168803713835432487828735251201144123799319247747017062465643035616555039152010662428223614062564207438065366248757932560173834098218928754329498697485795194149347458010864321114085052450533037287987144574815459780304250780797301793367372258493101590269579893137488106590919319560071144084010726540882765131163687466360628546792108294816526484301353210311578854924019609872423935772313322168451509825088931017861769805097276455905502902307111425179517709822341236127394422611788072568286266946705055675997255964009671819536388871528834672022816181262511079108730834964284512871785588871778892312522803312103801748663169935272307897754979947624264955697142779776577528800002024921117699528656774035084587748518998688042993362706702520704816188154446528262836764671614352893862255201876894772936454582236259863338566038320743821843306495702954164813453761410659437466268137223886304575122746527365591975786131933612988377235551529707722959224451695583846396838353185895805317116371382641480291852453105438750218403717971182490786363055398796375508426747484520916960622633976316492529450273245109939597932476738948561437435623901902205447372427311713257418516283517000732617422419146231121851132411308502597777294272365521000185859771276494577177912988664369598990513022825895786357693842572373605398191681798467979350498486298861674685661560649864361696469073017937632188386027220741731199285898741203315981486525697798278594027162456722702767427998870771012818113743705369328455694015589278081175346925528547404221318020052677529611803646363844494323745439678804243433506311507131506916788993216028820249102715984955493205429230639930721513913144742976300743780625229042457158235592018133524517458209848103086315837529306169790575657828114787061634211040451948346666805610031571302997249246779128061650588600585526275559567414613533227581750282712590302105330075761985304930015663782219223158815043718389863577345231178643153361548535618961542307192827862517483394317014525838219395345116032901222211237326650369442038053117580491712776559680210989431686677951786235449443228875016973709146745686122943926359480459886112491974943031245997691308305095386456678211253023403474137282912685947356933738788585856991497866143480724149315425279628863307032730167144852329620970537853508100090323204921006517711933462950940015100643032309643928747429158719732735263140517084079293381004796032447610804849700606853596799069778893131439358968608655680307720671443326373628827572156302386325038110783122193104307529313015599782156964387251832498846440291132171344699747556073051629068948551666353642294199427814604855196051217981197428927857789759280617525887557077821049278145952264779926073810927055894198668909042457473797678233526110799729498728650991790668653694007330234764759900089924052666032208463125218854892493005716313626503977925471446941128758719586880689481309196444066575647784752695110882121898297465791874700153751259446855338915179486205386476231823935742052421581515547935964226608730833146039204678714232084491769834007410825536231680966790030027177153670637025644092134930117675542763061854722539334380085198675531213684435934410787408464105203654346979718268109540605918224747527418785645236882030678009909820588834360784743495841461579174852574919244687161011158137306030538891791628078813380154387691149412382988626205778989137350784752830803532925549902280832502199657911431856528667296773173749933761652478244726898140314555095174893567981726228756604340634769804146916708625757827813271364160848482838203712207053909473508046119495500766953619709516839667804597044992055291915437137962884403651016482954817980175254388201020890249500965520461368962060055463579561700615149736803505811692996947176727660375852860006980134093413183733713708897936341462397837124561314936996141446424760528769756308800161887791674743398081568557224766855497190823470587220875970139882671814650103684008342264836252426406726702878510143793478737979578692587652906625269613787211573629979882934413403027367224320109262524130771990539381917221524123139985633352238268044645318232188248696616881141449811833863419409841878938670145765410455244240777706869057965934780867634806591553608409241345302671248733192878540476078123640518602776290328439701921775848076693213666610137614201662346784751284053547897215562901847008508415827525110533033979821075221983582758719366222495417986898103981474689148938578316117234764398835340645461606957072050089858370312927194772607242139184037482884227624805472663782065143770451095062969900707777491813949347728782216793427352337158029946561352819631975461214595493179163615564468645238173906251664863291069980243589463876823591881680798464193499421614650524082568183441402812092637045558605622523488645083107859073752901117644541815416341449692368740982209324510922595011631985349396633202358820666828940660987594772818926204786970942773783659201160978860430472392188726757016682111807245803622395153181799251579648157952226245661635651775278073077388940657990341336997873808388377371634081489198831587631686109915741112365765239308059125447280778002874353627266087789713334754267933074712265840648708192171924330405427016305649156762663841570452239053180769377394015086044596691391553860177829269249098775775058574223214157475279955052096358068216114377081382476497046621638407535067457149421535931375259273246463109788833923275385658564072201519836829047941229021028965150120444281068178097450709293415997918729731837062636168717873145706277505000217887160244131477052853545841275847373226523904685930237700845108704294331507131794709875778259402953337406458446397373536213793057386683229059911658973661507183907971991768500809392308374777674184760007629034365040313363482899130342380294233219376579417447185020187368704535708993722530522677309294590340755440529079557518692800906140194159212660596462478579728408126681461865848214077070519139288227647696028274900047809946632201094550483485358784485395364078271524711625886964057042967140194238752083699642858228229226383722285438212290018498662331877247804250039162183258057204533226289125765557578091260996094973922562602360358203254618167737625594801579443094897192235977209631657786727306701121605416005270699560961213295115748306692058882832915228231134534271907953912228570963991122744123034697442256772985055996495272903720406124137938055677336115190808084177416174673688803483076023372930321767624121887046718210017432687229906291595774207663959722449359983201267730620520846198840030869862544521933403012485132486273327899153000708901440631347775282798596022493577881980700943925112315902738456390783208257419903625369254759338462904437488731372210514342692469335822548008462204260047832927543267801808100637639532778403535565028182266165155151529944492493767237065255746806721757710105297442116463675115501009575503282293779765907283758583056041124777200514465577006788882225494181104722568677371588287477282985047671743851924644260162110395334604184685474519163522209267871045765182201791796736478905304449800330089886177856904602667152775561214667040304484786354618400908342113630053804583535237951391661842400553839704573484499304509092154728994077409271396331281026118013533544280648706238347485634108167868625780032706518737828766920509231376443512954666512134397076312196667017943167967366645454905749570454267930867681229793741543146561976069074783970179008041741115092104070920544769091751349748103502831422595000851061047470343852459940264367991865227892491004798583162409541862379376816827678882242482381863362380298191760114080309119619050064780222943850251538172800915406165086627083794927599111524604206920087646533270573284192167307916164187953414065763552232764582314210197655217121753560856145417956598918537854318051455277224045658243253769099800333201743770333380465220186317560894884882968273596208112379432439377385812993574807913608952818542593888324475319047343051074915166928510437509934370309309909456829202503360532955447782924481252140134916570945829936814247243019518378398756983489615095211003573509198976574002214189038901861665842843368752581973739239611453098958181840527454507100188040753585477151794958629657061939782189352857776257513597540103803180705942480941708755545948428661986478795434693682799260139051764586119824742815849321574961992913137921707842205319169561354012277486082658107921808858095069819665298645685661571896339936435903225367007277563249908309273541581814394495907894692989010811783094079640291151150018816967274707249091712811047553846530226933457292035187973011874072735505874696693068689383069814710340830498549963250963960659862349037305951381768566509827117285000363621858988620145429569595486328670686890861833389369338246827593594229540998723350686848466503802939512654379350795248013411411508230786844899963168964308149025716440739433864484718701816655807177764425013598913576056619266262257506947121705475586550948919038062834352169848871474219629598346515291445422910582478791135822391552475740585805263577306331613834024244885827266406320297049158423989212754403694955033924902726521911570690623873937035299062877929197194832183229381945189998919341603843636146167578812979275404367374938238003064115528395502317297181499792803426708021054501092403226147793344778130917206718453603267347793242402994299989413136742702693187813905750296544195731263986148409609632089835290985116019405650599781502051619457439798570973310825108748331452968117301786230765519536565487013459830625518762009249450980176710952984190190535924916369714256491346861829572566603010288880995628292230863099683072997515587985479123014946444970125863945131938306987746383291001969423949244099563383906178650666080114767320814418418800611937217627353619739510427887885772115424631719383130520482812851090234244180793315105044038457425230672542310438489148197777966250518057418358346611971388276884093520062140195122307961390793780607487610655458722913956761238661602012609319451701093278333685023165523508513493427675822392490297867152694609109120060078895190779431258486781002200052715783104648090174134764063350287484768162406260265708133114916623129272505238735839508074853221929115482115146743547029001110962766502795659497428100355520411866998773116649960224891311223707266491045916193276643406938493017127829882543828961881067813506847783733778811638654478972931521290924242097765742868258841586764349565502917033206671820825766636076413283441965638937206053677239300304823381545044091551403738017086064138410868646748509632841720761480230179596956907640219773138307933414072462750924486077868255920439982122914696697846946628070517205256452793397326310203104017208252580558329042022417678632572252605699101449677264487540149137676557906118347045829511988988702311963034021985556744353134182289446579294643774668054800316627629722287306939928698704710453207650812628646512960625744797037622391513461060439626530537851057811832528186394765309798026071124436340718144514892907862725145896260011865989392635527748331041058369589033176884704266575513638802508116943297127638281672355584653312144537967920318337447490530919038133858627354613849194802951619149635769035524451998677749024484756117493784016246673891404521959566011099819000955534755414802738326537465302120583899679908420159134683211063024206032004354434320367833284223225699247230822904898915502057066048402511281773990729147757382352101098968383010202622428743610290875678470042860887872514219349325827425327355267052406302844225516197833346201057246753165610991391185870624041770895080282059013232432787532615268495922104409827404902943192823290376804591361951404981960272646457756667316699087147927904709947854096133590574428880289192580146124462859939893524474520735520010536213115210597419013156773561238088677529583858177198688592365967077757777339777147105195189829827767251442358406326381193108870695182122974868051144868130158292441303154062662979147262775226861424041232118298032482748852872226091350107078569396831277135235479301417433367017226497814677448675655704726435896406642518841598794819622443847484041667220360101948024247965341271885164459494550100542529349370974123449397986259968770575774395074558505067647887051871477561014397858628990681380109332286299893457499181992514295303757505015418433357505799346905883539799875957355278763419720277498841958153353910710972864766103482955431695532904684518060663319419220015365408774798869820286636478420647377747225456098929614736796597991342620313941732207670446346368774845743896838865194374839035603266836844904493236161669136924359291761328885823802546487059195880728999354598263635263562069791711780705890918055738448687778205137752308919950547711899150978336987083405321789883788762236295233349494007320197487693101759041115953376117930050344711551754718641732337236870978886305188145962834791110511902368545658032478020537128993939655222707705607715047621982571222714195621795426625864481841178783230057807248878453704445480477633856229103698786420876167486611164761179046076619256735250477090969782242389799129488254940534364360928295436549290240056549425646602794215858970968843041589052303425616758125321905279202425325314410867564714173017666961538064580605564926421099338860083247426611399426963880725020907409905614534365543067331901484529615283358930397729680372279381390080300883015279868794825268366898736803652791303984239283415455848819549983583069162689253925567369020850420429566619405594580674821566007102359534388745959299648648360604867255953504553528650242846260774883716761048295687259623048115166216389490329168333329671720607024735459190751583778864365424445665814242886866239280370086834482914734836856532780649874338558804121127304342134971391049620820795722991028469641787772420875464678501910290653875455875859633887896231376143956756845230138601741188496176561712913660443091129698979337042505153585377307188285639410443716478560281716102708976601362653923993386297637302031749956435567192170467866639837235304713808188661787616119659651835108614791791781198783162386576941813483036372225166500309290523393293442463915620196451364442016498208881593310523411760775173543685771937039665117557008988615808497223008142264253951741638682448079869480315275959978734289268295853484526867351070080552423638136284534879864717257899200126621222810092880773444058691169175571251333608983776823679781923926713955548263720216525608731139595005003761899085812323023526178829808001748491258390866179207827923683424018508393175770979464822644462541725086995589465373632983945764811588315840653593179329856999454100158801573981281355962786697936931998786484171581822460926356971705080917361464280839905166843988953496297522607783204106630814204418077830252856231621612359624095723318599691381173395170905793444983928897371880807074366952306052804823961817103726931324457797407532146794116117868186246362124070960078959297452432985607687693462302598962919753775105431053634828914074391012625437340113641057276109362198079392307507150407105854104996398658531122461795044818731512103040408759492876136760752127647425043034051476122269965481720066770636736627428240436730366740669811418624732788141783434414862115457852835529136036828135452429359882297996747067008267553701533806281593241044792883715111837472018843237977199754493809376039817341401207398695583812810504342749963695028192363612564534943817091940608977392831801864736209295865435458946265509964718303944147420522960793606232481840140468439610171993098208479828470808715149673069027829917573880081307388861028184684693009400509732409600143449362041096320868730946101660489579738489623587200920438474128884575701131479927796232241471947777804117014092756424207045092317073701628834557161240447338606102500871906691933690261462340932549733191142583479669229098312337417951316719138849222665893433426274232833657530384929428317608519368162965242266351465026523234414692143300841726276333463953499006449098889316959353631276545621433925846732472897175342826166347109645165344533315695940127070136362224679595876450403484434301216038382429612419873066143390343299318715355497194078501249693824317329793659445809859283836520613852164312931648134035875835848337381023465526107873786829468618076405681659575536969534302177575090238122856367546172476542102669385279885111690695309588673793080269749659606224148610781748120663466534557360204495419033042151136729875650028535580907896941518872378642405284890641221361165617717687546214395588923533228505768944982242765447484669301044201595007549194476245213885936875227420426659541578957779035202777964908996115942854289513452993907694100120272776103626910583620112139885059041152117125697384164385717854757740065775514874229950060782025077046402482539438101463740163862067578144000750182269181935142209854514294550449615539193426109266746618610183764757798797869980927001257837788388693308106326504251608723484560040028846690840725612304798370098025216824972158262402587540330200521533008406832535199608734678905925789080574513368264100075969954311301511846006007161000680582164432170304808003982374007472655750284081871999310590941688329539648385513985684375614193876827190997092051471407783777943923484306968082548380300851915682923173995080202030215446977262481623801130239248168809736337238130907505350651525153046457119210380844384385746165079269158858403158616472554458169231902300676739141510370976425394474655306087577194513226372122676389241280738575191432732837926420044510077162036849545544558766455822047307306124828907305809155135199435374991390508745414646525061227072734596197349629802235319017149887551363472112829114260513189654824458750986285392074544770339710319095872806239343317990378059849003835445174671248491537445917003468329344034882564164904978806816539582585329614079043278591919582397288310966806744522813563414824552402919172695369302225845255054069210797131418121207134332191551285762264783693253659059226600222036268924724229574007245323789780297179448533461699213362178901021420466306291610796041141903224810385834193144925400824910988737568977295571924642540729647347101081125128698299930659265014704837871662221590128914624126543258956825494711771159032019418644671791732875288524592791787706435923651806367147842797111931997480668596072726638189950987199746663720467508774382263671714023467553868057230824734003972338701312440203746044640712247240977885259121530801210982935667658814798247920254626299655011204963210144328365115329966412603371278932297882744222915959594288574864015681667302342808650313182700032319567092298308821083632234353942562527942894677496456635289192978733046984240302546436547581823857580749531390634704959302186074494300827876455683028314102054165354882684890973077708460651428116043303652207367087464667244421640963562786782410179313932678766818466635477895589419344576439010817308341146058298784897420839253130178023199714915555767247746982093574251734071609807021714389614427752025601241094450195819681142226519386037889293028217007944202317023663485959892837801746706353304667928936559088306205809790673663215166628618542583960156032067779148331212730183124080212390364277600788880655761433690735309115151021461871559499012175583857247848262586335819781459023834807871993424403189550253467397366772966167981733985108099122082292569316082303004075995855714751674251840974942290990905771032678205051713736297987413411139619302175623584908581146708961807965793010310088206590363542427959117499906242520445478975918996025308569599522508075496066808821952299704961629432324701609755843495936914611417114301679545006070291216788927444310709893312344867646400118227406005118155107831020544911762944285628744097704579910416537095876294446036159206025963728757219099823021350347974485418112619840371375652378560344210215388021202263378792704799156474924245039304100448834303766980502262630676250934705178276888954355090385112485363283842602590613614916250262301045579093201984880716707081724391795671480017385860576721110258428783292337536835027006328253269076734013928570617150461907702659780218844729471407317560424109192382355274713577332785152775643226507744363581313463841623563833784932326651880701790753793230951115624305694127748769698593426590977278860791907575854558909437342397831427335433516144738728778620767398442086240661143789799244704501429567977285986512238095192992526593450157708330458894894218502986097649505829804442389905293596119321943729047682164300313410766031179680771883649915891845011848209940243245020657009031372964450689093050195556324983306661550787743367593890314681335794046741832660829468087813963967754885938098876325008673460737871460010946662648186646466409293509084112035533588560513510875918859272865633848131237076039662324122541610308518776182917459428779818611438683683582723251333797998408165358975364907849106418623484180207990034871899933112406776216367612495060968232535832582854808111977039934945739640356194252909628400358780456475600506814190997150015090183074332506129037034385832318104438436704092360593629888681116914449615187050074333788946786134763916345928076256253775278428777561959404418757464201702593224063303194917436788351693264557236045868735259739984416258205076590481463575592316133882857409786641589249758996685920108443889105575542005989624418157955666247075012195133772527077520538948580433008504593349433712638902321910824890639642635155857712899804733845295447310192384326288266950042330330284800977234532187233591483609399088591581553219114328788982101219135123798470327026394593791757764915802584752917412701687895570226276340844614392917408071722107593201210185661786594912092678525367092699826534768382711289603640521713701670866264363579786033023668589716231942426742148567517570043904824416056607334518093624235347281234508754364601381500630179456348256276292696040839208584884247894737952433368980766675764189475252227760009277978336870986887491833732611767205868977940878207650101101513805124692270311943470376329653059878933302964215415390748177970036762433721959990924068870206526170680524654251358778138787166259042626105507848936840451903053603233640507644812470022987664434881305529662447057066505897732517842769900736712635571653987646079179981461081888516351814830119514346865923691004518344214131565810787581367509642587146843890112979593433536363498284232512325343890941617368267684908530210340882741883742260232720018981299677746484868377604813712216857301256854620055816801919418332074067297648136684563652194169941295775551533903636048910180082481013618962893048419939773971034248901331768104216203874676863276265382488096647532499607878481142117047064953834637260353440541600932791739183405108713045603992272501529483497344954226207264624433992672516703439531064188279736732942564196948661198255685954908329315518233378057631255489245640326840136803348982992459903852037243764562583447233793895224908906288694446625171692102913307267303440593141655900646842349625998274937246032358475621408216894040465172417994447314238759943427052723369533552107302851264399648404086068465465947593801219621085951331113438907932913382908114528032922554677524655840868434879440272178585505183757740466655630072615805013909738600215191692541053737050395664582238451532221384677664146194183110916588800388624957523312460476699740715965894934622332823757813786399730599161443365469347090567356147050436363206553226312057271402694552077093449476989752978016254843317089711740441932842669740080545167079143343677586101327870507124360984351695140881233355190319113806890410845416345586075275013650600720308682280218822565120006329356894288808711269224635290516204956413597290375810331807257225111614482027195806650091427836748343212085276794152360093396522798303037921014307435616563267187128869932437312208402973093329274639497690969592746043309631030070153837402026780185914882843880316634926057504233811975940390618198735503531320672357305750875634593197280925830330967478400602515893096726669092648202480855521163772537281462478286437152742967782290584410829569466138834396680457774635093704665686943280268788072589406733107362504813458257843018073027680987009028376012015845644208588591912695994224673191567102053254053321734975164375211329640576797600920902575995869624089592869676312246979646597703648452865743894768367523501239838626175109409467829665668560122795285486777665890551959985591449550916264100802428166235793290847817585054055482422628230603652868024897791267448914690030166282527468011771559566729192110794698193807738978801963744846105031261019588319439132781850740961216845117143328831320363669667792941894769335280494112316388689184032778494401067004343601177405977412804302858697049543188303265769129510802009502167285489515141188896579008526938587774269319487303310621637152112251937365240864561627526669963818552040038290186567897462032640065121372623377388480267132174512203119547491281801364897461551007518585366735808041876531850142133825441001157183585557067571047615442051991702698786584865595479761574295840796307994074009535195067851050025433067880272283780603071001358802220292909000629006516479770031280767432490707290222408237359199089867930796362679359705206425053641517297129487698643267710667561160423158990788671080472085479605640261332707501775211558534109883189607021415322021502074083517956918076020210468053127360631472660003903011487441664626534964004678274047788004459063620650545909371166816958490277495185167076632309630787288447030267399089564415825923459999450449176932408235340582262145901474607378703904451794498812638704420859665281509086126867377662003334341320572028857495417109089741495468799184750380933824474822567595988034831445537510332988005950205421068319296914948663248850312070730522074505686276752581512192940265910467013787890721135220214714766030531486202266707475101347880957651201704616794044397838197567959423725848662950372474834808502428907962782528207884933965757439769107868426215737158282081270220194150583991615960938990116373683946211531859488405461339770118467052123386623306600828553161646384924291074233519606293290884512152209078816467295180016525174474820978886256579003534111250671126403565030787738789516863327203383653031074597711308943455806749442090078334040608509967187730440656847093830362942462712819567437454479958773112552354537222715760643739002472569273977877160672682784537066246065869252219090224301844725824785345779691222762404370372011086451399917563840783727553108940797081430650005428570034971342397406733191274337443221989305451930149150085018583207371239543323524599088925241024961613622757523740794282813557325509654755847322011004782387336549156895160867618608564323947190986550521175081654600571349487842345897173688038576870360326533921124267313066096392294626867024909859865001423254736708663042040373512354615747826426626461344389789731403504261791917357482601896584917286591796975041220530116898335676483776334793724533787313777646075935747631553864863228522869214868606702818063653756568414111242506049654133815135813382752052471655675282281081475357497308915326732768247007165609019435459847260680270374846573487357165661952781208037652395423449408945016748850263193454480652167076841205178643766886649004321077035373713020390144159121551733221099056969392271237337111340899904494505183962428231895500371788776759427891470006042175198382412229739332875028853990933460654434350465116481042278333462033830842345163296109967782246309868962095989630751011136278921354472644363514290349591300475556157663109192934044433883426231827280103690286138340317105778457822511171209095317037472160618742319430375787490522039012011711848012002933465951600259927557044760456475512620726834577309696848869120223848679534183974878354724281477997871666252372546167975635595662939099491460633774457783132887252193259162140559209444014511798679419762618655652947134394930370813394438476977738843460763212018914995878255828740297581953638097276722490688091492930175221225858208841299273285172408635400485868739980800713012973609926387246860205118524281552401761216328901075975393811725353741003254704706393683630566025411076348709412247033715989079734759301799771012455554369954356046286409673229519061868224378141033581338280408408123202257275219036830754560374181047275420815923728718708733438455454520339657127490733464973921544330771207629169176163991081469222815328860550187918527890524189859727971792350157733985514096809745576582028853024952048307542035314705163690529774180456650214512039761150939636909249215044951249007878370982646387186062051667321748671712014767567811855200603453391328054609686698540919783404481307184133881314102040561574200111248877183296863259532110470313544113051136670404466145105360258796924796979159499467266731182497981579929474612332949563578199114355799743638458072157281428834457778598141503596369706229428200511667038345110421330632907371903801486788638950332847850152055211817369902638915134337362989546702936705712337403884079344325343603689400782524438362637950638364315438528692877213582563130348864319826109933271703478925965148623196056946199438594921676442479649261443599699576041727714753390495157997751399786858537463673526050431030395237898957350687427383036311173765750685258082926042702482402201474725029735449567207351800374435855112805732416815144726304174644338313140212375368162092840149440588315666362833554987376289868666041572486119126621778639415476957664221324092304591585207103156077090945881929551782842227263020346549960293581897709295563019303951507918684841512925440528962401650148986623427509952707471667372416524791461287113096118347946249511430416662521396884564858911631680053971714873601959794118002766140004391099760124880323800325549644779846841630012888781277412493837326261184913494911174476748166245585816818713513383542925604814263258505284316029442000004161613692142893595204468086071478826294983859865374949661816726633520224265598263077660638060464844845724349364479369111287151819723260367975877031570408726168431761070292844328915587107355372021269897314905103479133139193459604427321878570917042394806088854384731556901764495464317468862621956915750493751358999467621901030959498215417937568895096475946099229325496832547138667926882647406771118649423408713620354023790566371939623551127241032836035234253815812286688013694578956952177137445671832913374165470533945777564747672597691791503264836144047196298238441003407523479900619474808304698354970236139678931851741133609648494376743317025884430328045319683240263334633574894886187185883794822447178290048482723858338777458705721237500789845710458651542330513249651554028959333068627513092308242122846112262879948769626922599407329224351569723185394144836163027830666296492451138919531619186155097327506630457430886872084550770898153643262737032566274446603079414868337717564165010537517907282662168085631944724202002609615544138565236569238257363077865269188919903256321255502926912835565643185366009852902900792153309713643170420077087021902239567873889166436323332194919984967231157664020904401077887820172188975205964293893899017615320519280768850746441926052395694173409908751022606744233108393281801018297091764539974499934510241768048534002044567050533856860073728076140587854935001991938612390728920908201439757891956472265007357914871196804015490200777451735520320077877704453069492103681879732967113507689402880438800139613353391795254876558107014931158404585193870537424617217292954390896514727240574792827301135011226014379436817006664988035055317510228205542809221998789098778413328916713505327976249741640838235030042029583708228453718516951850197634330438202322409122088714009689024807651463267150980505707975745402008025382362859325160531192310092055340116626529614638458558915134563494799431326652534028987860986169122257797214347555378394912948981282537490482723920305739827767108111817341304238524557649557686495037622345059137563046864961224889614113715945949805841614191959769863027908378476289468070980617997790960379367853945951542783879961389654506834418635597247022834475395862291382309640386048985854761819209078509264284003033911919113967133873739374333671431347465417382571382184427019792676501178998209137974913730724170987329014503514020141962694429111545809300487490307588745742296191836299683244836054938641652371754461767336807982119782487519361915843373309453083459423811411726985043368995986128847554210719335009179633719274793798155536846307804449176051224812780857110709477525177714959731566433519265446880922906533209605628053350408933168152178798600594288230332312740491572670334027477509435754882017119425863005177235558572871899500336556491651450350149900737684219013809387084653031021321968842603690067292775854171956695801514691524389070891617164956160325123377188233587005181901947618492913796486205621303544260398101477763291678784555709980587983689451721170018721313440244282164071661979363688093172246895528576178873025112255172271826002715046989430765801188857552790745174297694761310042744592410821896133537567327800230715781312128804640130040686052461488907485816954439531375595355324255874255630033602922857442892211304372208583186806358492707770993672965965895980716554770174157350003148336102745644584226875606216879270135515060141162851766181982269598203683621243977346038173538743341660124130692935002919132497355201273997943439070000594969088346833361710494468801431287616460231287141939477405506122274588452748098822247722727416531481176091425493405444947095160767008727651503102919781649531567720073884442236814617619619892208440084310445739167229289781121552274154478700844443337446629071124258661360018951610820396162902490507387752106995652025878487388199963411313415371785815917315062242422108781060647138117361272005969083626223920446922444540280358707303511707200804172960623688439817425722978706411340973375939561469477924980453319281919150118108161862287920946858730780088016143132537437359135349076743904501842172680318167378605359852278809460066190913975629931132469147639005298699638902845427429719335575999261580379590052061500174641881364251510492713182889215316580918258848756817439888805876281496832788119775826280685102160221598239687871621433945816258523115002471393936920134660181965710951662685028986702361069516064622013238212691372845685103920158625626334844122592302437099412867299371995969119477978461645405558444485502328738546381072905402329121701188443401876607173604639609517257546113663198485321173453972523684052793731376628408803137382358205465742913285509004915828439698298755666444212512980618922908368785846269077751458509792518646024141384749389096819252788694693844998937633805015007114176717295037227106882053087634325692701439303417153596548143166857134691312932951939312872322723375422631603025165165291936279389982409380024777524924057936262737567742296570585379011763611533874337287923867503504664086489073156867001341688486327938888702324147164204311611343210757682610769679920418926512119509145114872700646334262473263500303897862337628360308964786894606047246550730891283547044994295833739587842858224634863812042713485852791464414502934325898602009230219436738341791094289174641192110683305867128248486229328490711030654760370669401645448954179592664464235405285813879049779305665740868542593057398563381788074728200272939304420859748467010183938151447053391373654301388726122063869467858169040879481496283688823452006052292967596903258508142194850625220541428222456769621958692418898958440201730083492368691680527270781842384017428892776587084397084166955266956863537593542681705805594236647380746474173817602425275094986670051094395704934533259637142082334231909684372704371129944494632793011382673233317012874554573987547704882777191369353700093335045260265142376044795557485442428145759658291017106318390004410718859298357083343794412370362120305597421034355689850388774771551455947252820303363609460845409365601172338758608330275754752266000495807734075493206711547515700157001961848449155089225466641809343231467338389724683327426375739138903824410525787413268826623231657320056398722582814739347133202899711237600441860983629752652851287165749126411054209994392566971710944800604254597086878872089691768888835245409179498050763183882672271038191403547532939648614839675379756199620620037240883440451943304187501164465026989381073370450456364097179764454530445579706253036648282527517698892920649949105039089520359263907961498827198042784509076367578286470949355947197825498029231834072795254856100277566662600739770886263094260577638853194426889824793710390015078008165545559959489621271429918002478260864390939255440844264276008989696108786228240029748803563113514496580318702496768964371444897992367788208947551575853160714716056458965935045913417810489382565870752317679155614569775224975488857403217128808792815298865876592726477329080944898296949029892361337529162469421831929379881400150285701848264146638326290386048570126097166171983213035201896569954798601347269058235950719024984707222366647005705759030402165968702938802447449771102234290784008123088312586224789210323087622659733447236302616385035362510950968881085029630779588647081275275726511230594654975215943806924439726850064503820815286607273399118340520200804205711371775954221233857760707447509233582243333038667225086616113893849538644966283672972935826944879587201899621733916816266536718766409939432497856882428738704900426066334843972891344461627695392666718057857519655014027497795136991983650136055520297917335963262489699063220747571671672930090828667123853347537339094576707269490720616312916734906784916631094763717711221189243808558726794038865231367926080223514583025892173010446434008144309412245943240504817717445058033270086465672937048167540064279794686044316930736000459680484339709400819053240428470114382207865473056891747852089520694436402258547219062856449377066745244821302956193714718402175957388490551978509582415040107261243771730919897648554509420414486722150841138115542155831214467987397057585427595241611624233593414478036457994248683818112731820042437216681067244051171291166090679901335472557012102537956966330039348638646798822546397338410417855777231265399391380000001297790186210910311306189286355422461208375119315557672535888877481350665549598560035202274673643560205471963522649824878944940060461346127671053438945281285626292409735039382897916155525115638001776707019878001926837453663874929501632087376033176511639785190936395920449468833303381717601520511623001807887899687383892910399328802960424344391356659778956259796119324565554947300409059001953971513171504919841567272953774879421465290807819816734801030853775345409532174397488435983285533524132809637932901241919596954735705228701331518937886568105880805402154242737511227783645559309313472910784019306164947843473609326511674651880658995238495691909945649636036173093222349094711974025606818786687266849389251169532403497676017603435773877251008272162819237453325687350709059637761684377046154810063547536894977827784159801931682422388613346193731703977855401220469557666006629224986279099072813805885067353237241122242773403858794743113188841594974154070382731510753953535162721205679006188728338665277414254452939823393356407888863345550199545278059399350269583034049721282372380278350666830324486697956492635787704983802592934984733125272235639375407872426055859659228510151829149050762233001978415057828774177305381016254555125215746549582094234128600310597089704991861152795523658167023706416172448045773681310815231949814457242177580683914604847450637420818679309672128714645344446464952288401487676864334200703568656632623346003486921686325362938403676648132314957672036932114759477070945956187443345724263286829952758101787559925623750984596463268068808217547907432085664174993194040442738615538737204631550198340059544682549596632901615347654778462014906870437766050097595460103343370520249177039953183394088383501762218920393485739716427154516222883853948925258123387660199176386132403738726283511583980554236471398898255869118375452898975121203433078465366894079908511536783521060079048222163557243818605037955452992685250742139944841189949453976470083236403394477770876625625797239130195172186412251804695320698189647517361247621110032623901573454050382955988265760463253008331943583346139426724319504863840602699416020936859796540622812880230809337449762831957341145505018646575890586330608363166987828132784530391342219896557663062197072867089658695480739005745888037754862316945553438683275152286451460533073342885132438548920278391220311877526779744591272492188703092945941094326960473183966575135940673184997292154971700218636163740575736191774789777835675484929996298998129188716992514753201309275205624199582319746484822498063768534001704579983049730237898773531247918883321035986811799286150246124112844891338790110999577932075120395892935887077695402045509393007041627839845983156106817606314931578529458815042419941479316850000123218376588536885001925198560068093910187666799309708111187233453767655211531514643407401110224696469780757022599129895426415687203708594368689801354421481340289951627233176188733755788594406191051431696387171523859705599562416489171288392969846131012262546071306108500462274196728112542664832894753146233289015055569234876636019845068384040792083128398681738443567703969405661737536177343558939269324905100444486777978233421128526259472189811294780141515019847222345992608037170429230343907217321715789688058645611083823709143021912299165973649445717114808674831614069765207466757126589435090830459010110581070622324033347563335107808688346776893575111336016919266568586403566249951295775936166963651145911796184644134906622430521495958578704462508258792550936453481289382893518056661437499158699797210719316479657567698293234162626137985996116998972477968916601459409287146695374486015569012388964193775435729858370370428661689961116958879393728077275939687532397447159882205812202579338522472168280265872223710820049394208499460754448103895466959907303895699374300553277578468262031404156616168197504625905141153895526083793792119398000516643832556551065426037082543158874302859749756284139626006060840052477362550011276976808151319036173139370541109219562228179648229154384184769897673633517085479080863621288679058377915968931015616535864905642905199595548844243129612320860301917317638536574550902290842480309426115489013022874093715811545828848682329990047210291556915852756628139277730897448154297952621607160923842216344346778329558737918165062010208519863317257960512358338469108913278838643974408758287009424115027055587565918997834892470214389781925098129332272205677359963761590908044995159903535477222433246345620026639885875227533245055746680621897111059108763406653314838273925853436330707998617835616916244905409844259835416138443169480775211537718708931598327514565198043003424406578274937344609475824636826066217648956937441561232839079851338687634912681080015415852750520694642350009031478224630269903187488872065471195252031408072904043136115441162353754369368704516437307436550060262106908313664990805095371400172337382347918976595983547605218698221199873777383435368989153353686224069224869201839221297747367896810529952086128169799276044284597371348200023958843905062121820635638699553899960803037188949876455292055398032495519612207112529004167572911440594178768635018730002187308495853888786103974572159570500118122831887578421342576537116169708175769954440815983946195369150066497386924608186954227318227341237427343079178185804825072584404580777384367262910516966047080624182639765035475282187534106741795485357704707891517824426900984613484538136688786318960476138394705236310161870224421251099299137884871545145034861585739390905031091151286645077541205674070536802557330814939498352446405299573195753180547093313032896052373597564705059901410375526136199507464086664354712178766673422026354450691255453279903839746841953817288821601364553881958617008896015899712899237910848977342268692514779868644552858285466379571697851899017882441070728092295486785436729972484995462243220294495549551018722185211837612540706615126508056109936455333928621486960054975178294658788601025094953299680363465946347627566614242421924816826441583229589002568640302440789528746222659977293726759767672469589098444041193398149750846061858579515503396464495132142796457557254536949277197027787930585264585494758794001682366571053773822987131044606321318658560384235395105321986910841706123701106564226574378884258120600156605045304544354059170944879102559040299883894406548430964519609240062221312564304833454055551304238984581990344351531024032531131918047256774226878717021218974712869891181789667321424147942385540718043853952477407564798199035500158410909761155687096162584816235242771624144351565916538483058314865127545808811341106210785568694379497650629393057451918712865514554580917655619265440138432212892126091951643438417104755782819084822665040967183584983642803365150028342137798839925785508552824045913388176877967617186835478004971737983000075683908913773781349393692656379927179713064721627048238606574219552540576121254192637752707048065732775716625216142769884891889062718895526088018726672015565622634734012134750810323356946835622631005256719316685199797692563947515487251087659717378022080890544294013347308654193379783673447518302403208058482984828648831246746118907602906952707770289720941365462013466862558394304422750998047217604354382199555353016197541894625067477015588053000000323778246039004163175246659387829113610500671752558205152670093042328733966756136596738531341590525120923756517574727090864708118104586020659186889281914954493542353497324971929462770484794019718532799133406279732556041579914854428971468898010964894092085195575180133689539701338031767565216129089906892563076253626193252782091148332897775072914377116781598942371793431662320086968526772074053298124276633808829934830788664481407323205206196628830491300806936856195816925611511840201079423533541176456003444700178032417582566876891650675403254291663544833052312695968075747357031587575594124783379473117041977559152529831043534154028157720625645159854437773357701386970112422923156255262626740763503187170199442532244931155657588716654893897717305162634678950690179703033681367909732569420778549083938428153360262254349593563828585485838114504334148058450669639946906074325062126019930355207773899130567908138166274764036851379381481181821638676001703915193876027170179246394628017343158686854698137431534085839701380145412819685803940908779146286797409370867396683478770927792184749789647196682970774406603661556505742116033710955716129725638923049885867344739874760770686377353821866529216773440151034627999165549777168442830195403330712990806821768753027859693104014003672968856416863986411897185433160411196908915540695327713511442907807481298894686045340519103088257574283735304287743650474682875844995030255557040970490196002268152198524961048397334334487386401771820053578058257973467051792775199667130561481220610955764472778894162225071058143125889382360524787410957746618944133682549698042245588141409497625417386288103055595860818059125875890639120842757712996906185358425932399251035563224791661491220209767707176219817474414003913030452041474596915256098660101094601491708022613995142800096728428215654833867883458187529285194347477683156437481734511721625942937115363762673472180999669008028180438264243690426203409205534409829626575525669072025273468745234028279379355872031901044780465601520792160619659842456049800231154788868728798132986215023737626577976958428523972541387600205037600060299760910626869589548011025322518573373535320117165647208297204560286831041569373894177986594187756161909194046273619239394713921960810066913725955174118396094888137195867245018153425804661618500529154022774433363184469293342920190997440957527908565240966033089028351183681434563081635357685963319327626863926087599217304077519736315301203717417219403788952780293541645340133216545258666958397424474824356820107252961542044819745687406396089970130633701857400142641642298757460571519058711751686429272719770883848502291901863140484960446904796612308039012429209104082041432369087847851386263088538878948734654333602893925296736432676983328234443368549564053388449260948501454489186454138331002222184241570511901729017592208311747989011708321707937909651714879569485932463702850310326560223807697261545048836415960186857618234256636929375607086460564413225275623473733027091833144815699489733966765143910569468894860096942276083990657320563723513329267446877502653051845705920681780895880950167104507821254347545180550853426928864375988373699228215248082356342167280204082988826575826904107916739483872458974556272224384197844284850344332413978920228113141808804518730494718442905470821802582698096110330022842964298708615741729119964815482083252099144408339536599510697670049446661896483859031949426729361107057857017269484780723064931417099270904125482435992049980877552825025400951967502175634127049565408904087756819879166526224191995089626479848985930268798000480665261243024519448511196212612196280065476983524157560815103618337574218222333201074753037192777749879802094882395729272891121081653451353555716557556302213715316741526995943469569756660205045461409827584057763730169012752870015806050008365716440283516698099405451734518650740868099895954171333746749081377308334845694009952474912362582944166902250406171665131690309471216405647601806387099652972377090867175197288055661943551941502208964320264250431880755763399399077267078910691182399144908762719543512682180088154714030748136183694243736362561944657896909322886337563783206755975177847876296424669624685626124176935226624672991866169311129508811891546422548368330299470627764117011019928149646933458303518976039227361295119943978904350878225755590948276486770241361442541506869550411915560766926826132884667902783699025542253265778061276340708260871325240556874411876810435879430779911806932891754279077000041497128014912668236314664604946380167848689503902517219546734055548622796839686014889039129835636811291332692195254023936073974894625015857460910312588698313445559981659022693622743909322609089341784485302260320109502315238407086812386215524714393783062945832931438301237336959470815106934833010319923011005831741113041359737077923907877606420060256049284374204030403251760829786989102879755143851087863986669204635492445612618439004477434113384909670214298202726440239146488844800868102173475866836479055902289733886456564343583475774053735850226246018477905127035313960607808020357762689721415095132665167122226250474602803151233274491477290938037253088075671710952621908232203836211813533504157066838556198676081592874806474832118357135706130106612115448149502078553942634601583035376747533506382367024353387094236822408026508467705974489257957704734397716255627078064581191868560682156159886251788805170951038097097561123238720508258340091771562484254248586822125619840351976373916567399235727479852825007246376315357866276009164512885263582848189482902493327407946498223216857878066285027125208140004225212599842846938318033695584406065368643232127970041923975450741108207016437828787011420189506813947741979262610797173088656543748973448532640365369065808708420607931299273572613154525512585073830448030742635771239716315890575576376521079532953075502069077874189160959760634428512744040740019279939412427229570014894458633293404237262548281622227263469547233623576314079645069642841879688058325600772079935166345526144892688198403246795121200495498028386783577796062456932261483697906601533130601210680459958110529428775107194691834520495751329565668140568150677216174480708344098357845084374280612003277132110531162804312279791594065992892466628551425341385942978754117588652229507769249968827554711248964690845310559004248043729919909200476883346391734335501276672669481472845119357116054068532631928044463371309852134634622437606168827796698165687372386880918033938720454690669068413731170154235079908104635910336807613784519403648666501347498398443492321473417660909797297640522539479037612927944088516240247470397232155160358459558850477612623095150383256755566616364815760494796641731051065906271696862637011807979563405585434803141704300986758850061347437467325567790505921887673002923260299772614070135050278118791144103420413652003082253818518778489283234277332175336157630883488107050142712402560311701567567885877722513800054559276433415541121286598590284836975440799944098078928223557921383232622909898225131547938845855375318636703977953560218056436747071782132310044716341466736959303286397949190591540493610925284595876842090109380757366312555980443674028909945635019446412073620112272498324082004989961283922872291223390388795384686997507232887617682061424508524117863028786510484747928958556524874169871306383008201175226026450168625460544065743882359119167793950966976609536914104262623129172617151053495780531283987003183176839124519558276052062161544688223139378824108752868213866575069392689477650920277264021557766050805916375193076733561640981724118997232212033754451940257584347721064541642820476507976651969221557809496216231343444473100058897171562852391735115799064827669465509820969525796510083180713581702553612511199157776096942579705238366445464953673371358925992634506049123346208668128128469316184176920473587871678843266760347564308348356678061159169541530011545047447462971556456310774423360625121002285219223490551404043220789724991237945559983058325595186202364150805596205338309285532128440396657727928065329065184470631926229680327164912011984912439866189964603174077390055518470839000883508915781902111637483935862829972112249496923259207994577941027345557541689837753947304270649834235575777080609013011963214429861103437494796080305346349986623672807484099075112112579651887118011840513597587791419231540781861785323574702527086537023594370780925027155752291726860737723541929157152496912551309055808576447916381793009641853694207554229392846360981310877150804974130897170401409541487759597359190416230181298532465799188100526367674057966276101474082838332034594456791272741149742072504889455995031855290402417155774024885918388661760879197481255802131422092685365556661152703808824047808910275530120995371736591105970063534513758668306381852503864426068058779206800584545833607232875070525306156467009269044831167295289347431443663013876668774554928044810427588793202514409411616837000576072106600890635638238365111351300152402531516139920175861348133626361420499323697923654325374478661926045936628171945141849017568856116004240407323726736028297585454030952687568126320039900762790910238780196653182784272825832165988522235320352682472407685340554079775928712766600281122294673294563368405022831878989958695051871059531317875933161564528969799932135862295018063047038981469926762060335444297918830931443091140096195838852640782590156582196251523157620070975930141417219372047554850866445187632239589446512187760488231696025038218678878588021038533817372949097073948861645014996238861599447732684855031269670362313449728710876491267196888301705730960355981505721965310334274574011165841484528663271152425737454123289057325216572032832041494806824252276477913976134165259092681254101315460252215147384973801390104735140185769813722955855001619219725695354806321236201336046984526835082579312098316252830003882410266825230012867087661081777615917780848478410339524386242774252530674450226537350784886015845066100474393314250036767598891013587096974188011887495796571639163573632005009847119397354769149401394834923193104538895387963147871098999453483427344976645395999742863153776005855133261893420373584169118680058018113389516741675311465733348595696379248612124530870726261365045027440621584487926064861767056289100194021083926466402603290093288513236883374344483558245093028703295831905449554743143649021133676364954470475444489474839481798732863449818450235398848900632411590409396257554916848507282057594015303890295580044575989983824273655686235080390080435718251134960069894124413081701833690774917035262435100697008443564375861893081840924712977289048844550624723983038234976723484540605534462225510131301935547628236441322114242185331404040122993314591665900469646069188231213788423630787248329038428457244167285377132220206230495828791414845517944567137092400107392379596177882298288670998114582369164589482878109733029502106404659315939604421889434532980407085463825249908436343846454871639315598520755055201388362886347396455765572216454152280649064560357156686826609005466217105244268149446512615277660978954720622013420429260609120529683384756220750412247661171266777346393997238721504205167368046418739116424263406228895706727804392552471497436813061590712963561754548908946800552848245433133495259208043578528959143256755056052287972115710166610124104056249267993574946072071918817950770375005496069054018403548572563956908459468084076226866591046150421146684335421912608419808218542822803547376932838117146393384824996983986718008715503285665008689462898509570714771858740792635046767579360581725538795023727706959667322201811951342033503394048733940600803426627488525598121463122665777525536171574447215503756279471678323154607342222225445969168982732759702812706254434151053360605843080669516207458942151565075915843702667876124981277327377527960043958763540343414895213352290092040947701780746151550859265547001341836693664935404320342481821626933610335413517309906784896430876832547165814799064412663386740787507370715297783841042117402697508097568060245589411066384780239047448919906928696415385039883182665235480570678846650175075404164818960084984444366357410719717742507233191544635896650371045238147606240663037576096350575754805939269412809713497487899215129771991234688481158617364531957438608411258629875854084563993320932444015549010276109183733395471794590070908166227739836431729107458586250536728685546446879243179969497828336744282705876716106246737790884788158739278288996919099516244446347230757357217152832829482338372117531617447105028160254737008188375222914586004961859503226325229436870783141675993744856125434677372199643485473716303136482506254404163044336778270547642220663754898431790755262110915674143933167988777089048952312231204308320004543403468158563845358741014117356147637060831532604414028582675934844896237004768417708199212723592123064683019265655710456991671163233098425602371163088240760066221344495396474398349725032791816188399474465378646341860679074820529866997792288540548396748444478678296340972159051539034522969630938133135308349206744059943988369598486359921748744540392601062555634759779371552419160539421181863672772225824569024023813503581843044117762754926830312593915309811800117242198186000927897242853355931538606862587569568480519808181746098889115675762305497828302574809560972830627843149860608110217245374608920947359400647820304681253308776212280737287485590248707793574164243421046292751259777320172416244377179762742759903135818505155601189497372192381719662095708277109469357703383898744119157878544571706538786510094930326024851549537552654369338459759688175311508120850845763088812935362565563856858039190750300109935799913902938839565284599006615207373428042452750922381068582034076971403245999148855090380278561238818892037285513844460554677616081959938174891359097783421775982403158463377081286820612909024320766507618879955959109952433179848205687039109368635903370141213338308235754677135657295990116266211342601404732007736605608755715111654894105903150142790574404473680020335680183554619710426684821160426652133976347764272508124846910021933070639736144508403360404847319872340317019475215768526681395323108981981683015487745103900928745360329953716903465939582574859072240503348429359333351582501389619832809634891641819568926757109662394773266703663680413799690649764345322054885973248544805950157894431814988070566371072654377233958688585289160324741688425044891986090286767967229993113407323619044139510082606512422279181127701144399317864163022690888541214340683563757520400136442407187355078399011350006736251513609290168186767080349968318631390839564987373901924900172193352142872855044052394066418021392958646382413057816756768541246283408608653198245229399248296619438846496580310472915313160613768989349720995094601901885317376005969194273239105908961398016940228823526201559418129580977777414963032948839291531361363410844511298408111413917414613783306207721834816688689330699999197809065046811254692646513176522617490891766915413855914499006702609127767292003274487931674379202316773235311449152510176214991907236353857434383541445454383410082257908212881286069708989191248372012408774196320654827754417818724720090311808791095988043176784963202590208616895267885252328465708670451717958644523369549049353600580107628876464058477213948897685921438621963969688981756464427340794227684523554336162077517510208607610586498992929544887981330338424920342722435265478908937205659876273012591299438875499343265326853983894216781807803889890865955556402756026195707624320713684827144992918871641673797710785435601003291732775098612371674118071004999462670032877262902132696962717989008030828565634383048361101312612679700397212701001074002431267625115977214206585841117612705110857327113435799251697684255619808142925827408473466033952486367784549565022615066200574162940611211794323870493576449173802733455635517370353320270925870815769372223647428452408995878292428257722782330917158446095865948198239254413072830399352965990641885882266302174119763527836944241626423084056712372577409479818667569190396931759247160497123587048713324098169131284197152995723637430099070035354035539556175105833774848206572754080911020999721081905311848926964355278050622773662756316884429564084810100946965935584640435906863745790418439622182629441923153605562067910906103273100478905360383185694153993787239877845912156905228892310459126295529173653706831004308425481903097451742434582516991213024086187337399805371781530048408202552559659235399035597988776444263922918525170018711665956245316581236975057283769879889443753018056328336382958538026081282896318617647945527709408579350206473425381544107963360226476096743265631763696831514023502929408360968004705424058073007643284231796764285068958902723045443581203956555734399058884539670394858437548185285619909757927653026237733337755440605760288409616167132355819032881268001025310823923221045920196920066370882329688994409981515807904036235553688175994395785146523400217855298513337252946357780692031327522606875824180528774699075520340912570731944794701626039518482244655681138048477001241583600704728763227684357883204175821963682150006261185387999761349050951849195174646105834747435409186817695035146129071448519926817913006690690147818747005519287357980656554051604309829244353575259806355475594298431309130391459786517611707899428625221608699547663432533465276663019700165605478832398504164660681485499532781825354066495148664183621911562277685031188436421583644947901456154590888647938792205675006506839294315070861507402015822150581260836693401028796225725996032238249343717989362333038259172057536840020745330535352590236242476145181258384879379809922234017211485585341610238802416484953727393787127595361578205549317227931149804819736602081664147660887919719207068749047284439859228580192582091103634261599305419563594206732728161408580866489715501760681088269908033680042579958189483609018268353685318403954171788415845207324057999548544031652925520551443120785424969679608397997702948283984082662623656718984410612656993215254604787561799609928351108979596909716727333426501476248903144811163579425759454181560995940944903658538915027508005296794399000030955335883380523019553443382424631272042714902216734638220879945547041367134788463342593887565159272597784223481912128510387726627983495602568019130869292537198124429789668080236610627051616121525116398425255043417124436373340072224933873692830475272692670130001734603271018857811063271642420829889181417549784295806483532853208350985672101905889834177590095987717845579348591210544310867315745485131861616085204945137158004026650096134828430306441064685012039900141013162213984330724658517881138731804747060934037122664410875275649650953773865283944042880349583047783315691729086106913043555990311934099212807676234544487725865333357965034544421193275780602825605302492915354704907869180234639088668172925753055616671238249230268079817880846407340151703231003180886920756540725526497731425029259119065114084146682422007361370355776398423326030573683343435948624889719572150638424180069200461178836887818771376842488390895769118002509161767551891051127602362681741287981573186861775000990206235775224109759438248321309028563627747551136533312983457144457348038510999775219963533650777854468253262610736952213925670197402939868355359726647623735376241152318389831251481327735407954613854927931111202189301125990390258922007172671008361051140336950537456550639651342592732889755688920836726229919689025853379464696538243211541763366935116065171531769372988023185525408641734571964073048828349228542594088488446184943644679928634076473034179658587199542891223067332062092982816325094893872237952642254495821419852991301333674587292704447436472812557432178680241132100890670769279655665413000261861656743327438232566846434882966398144207798648984063365371574964267805254506113187582417865109085932655323982882448463110759026466990380511777230560529594181512441626742655493743089142307599524754737053516371298769078995001474382807830687096532621190912548330040205326062275556580754368065057480614958952990164877383419835919511567388956678598887592292767274751206806097493150258557206345292143049887819779355125828689174451567723960425486829740906652948004692407532010579258069603835332737676143877876356193560028239570911651601927796342431122024735922921859341417928416740380244170527567773229879126862259925915345464807062527265883018764762251513539872069134830488716464064790091790013603104948357523102410324574756906270536566008834752826197940112366738782153846503695417393358788226087412923734114833332350958972989629959974295021447811163306940647027300048554027555542108993257637383856540386639548944326094782540427948035147806094672120722431972742919473026678432642099876053146199691835140358471466989052278280833149526436458288670119654979564042113930515903265742924306942387690460667579362738485203160087113298944495412454854390917275803903508296224321184216431232045212569224687047734775505230525509937280771595615424976564371190310701650653082768097485833938731104226810730366087505313559356359676176398496972499171356165646911068114312137206246588110167296771289127431690913967301016333781057183509416646745155876018435207140192511139022104389037375973179078698728038090308861502787970416823115412047053150762456099189651284837933414197008026213397077948294593258693100434228807897555262217944734092576627307512278014686465872979326012913019025929527683568111457115965224807432021722783812325130418545642305551835269926577855980744577029938706967994496336011263612737481686952446812222879830442459053900315319511072459329726043605200893778776766381930052311354250269189409673751946535578316390442712725571781646172281131390100675876956124860200975550053817199653945031701800146072287964408163257378138853684835857617007785572259087198589314815240939483714876188536331777288553386180533223970186891755155185207767276728158128735804472968510098453213873902827226097287941908804970934197902195440144598037568067923191067702280238832977839836886775668193766856513506260131202025119696669117987191510550960897398806598062339320898598859579312142617994023611705581597140870162611093950083032628033949601209240730432755983221654602361816208657682645894466094243880305354519686380846209446716363432077726352362001095272028269099115993837370887220739694206281804607566318309018316358558989980011656367868610650788254758215564642692707359866474360671805671506862089247537797860717818811563584277036647594822828459421016863896926492821641680502882355017295440675651334084113955893534629097106137385082921203304594284378351666733810213255375642215434285070729196934248068435275201808322284571965091208071722119261419615626341205323112182075862515367029746873737957265055301168908398729911602752252961579099092745453209637313876383940195318536327495005277860690430982107913818956701959145133312149346877285171447724624282549622338684031844794464581334905776907592480484415717789490168812925988349369297271434497244037866866924328889119649731194325794950156652129985305440171246968383408274020357967727233802855068241063142648403358526010980289850379813653684114209396200748893190009293958198885774145271554075480666909947156330595980908810249573020787773582525370991125422481269202023044512087091461627786359725371328500554721204956635536793616388395112594585720085540356998434618717881647326363870286036894730533082937698097315824369445281856880910076383426534795271023094456920666768326882355343685781750396890238956157295737367059442514318094173481177541753604164174898829697346159568788659430871000212643475945454186548229071802309561962128985502946203537249044743264957420007818473002211751651873255853082287265573098301734938635011857727408827777168986435410921401389653666039682505895647914819945455991507150453651893750219276374016017895731399387977831614114202036721451358816172644197869611362274953873698960784651727733557750651055047200963196317880166370921330370862625015499189615745941717983495217464170250957503612438154206769432766340465825767232373484792148832657773533873176317614618541610831669776458969387944725818068096989898977803724241669997508208345717936544938513714893347135811019265726804549351384270866839866289797763205788886617569996684422294282156513050923367331625532271688303686188326608392446516106549364642244474007516808738779954645141884167572085731172214705078172188301342254515462543684821134705877734398734534963621544409736223316058313614893263728202716931002168549548669094289623742967539297134415891710039629801608682643726056233764730677257328472720157782265412344454993685690848175949909737091121810181283579910403594909868496439685128751559116996558992661069280264841907862160313678437424599059972786914354988367142339812995970038128511993976186810826307043137256784212636709371845984164366725518911957625344646004665420885407505937741270546458160379436947212307186372809896843534914170811406983960012326731449762325446404883928187868188514561116926879546404120960286320329987748424471313113343880506444723425725134277100673229863109399286756401900993988922853610632188395906145756298485070463510516269975687595308368966137334781517138694531265267159794008080802284408309676154275007056212414802927840259037636257500340492756445587567199907297763659978746411384771802532696018505158461918253116220694510170344507617216315727804424502338024494148987568323237354176132451613574182216330430062176094674957272071440870737880884022269578687945215347386770963740127622707927342162772325138778877672023412197550884677123037064287383085247465082381355870428564543655364196864505710769254599297854877435300500378196234475061245945214017429292241383326503040248253542901207749321228765425715622790089227779632185413157394475584061965497255763352075695791537621690654911796049362705913816857486242986545439513068712655643327124481985284472779407708890784145331212962716216911860653964318082856462968009287765515674634534246409918907813017114203462843538938566552490382773121852022485864476095434469788758578333078457074079759372186765712731592316394278152599510353638455083186807685924648202363230522663657565323672146286898103334773992125753967257898791456240456523165191414500954540055423119699258685364343522087065063997458750153734597128844160830329393858931124815487193759030689546190984294654105479184762834874784418513149127338111836635758706119216766467090284340913423499053721866673517237611597553166118139734504843768555497385835658540985624225211932639466495180661944369344010362518949921538725784223476388284204458651855454816060580661193161428816409756175571879611168460892783456562820680462990844515680603340756769278358900362349465808843864958812731949230990717458977465567550923265407101011488550747717230080003396095786871731657405354580530404322458207415735875521931049956535362013799200343768606094070865523782135755413027433991945922460725977285811977241159371317279509128633082029275248948748379667887660954824768662058772747960679327410737180247178986633004677642436429859226544484120921017220014017756080115383156266548048304407380874435923455419908782839400467684155193443188411808238294973722860755575331630548090474900645109780732123503052991542819572032827134908589531759820806779155932419369673079230984667140038973869870506929327394238433805050724313250128661141218581814407374085099328445951419252800384082974771365814418677193637374878310803782472877095734710115835984424203300977450050192258103890072456090530893380710714885790396716161140134160434751972982498491806963957046621421832051441670554242731523878381687493979284914578055079845864129781062696768940897179751928022895194371491939500618691190808758689817184253880978668058878076851353626661174838421584023421335820005339820354238572456979524005146095637420713650870782664720663361189667583598886535990918210565046828631413266439708902473867550564496346838332589456221403079773169308113314145989878557120532902918759114000416856941193434643658810019881489569480592697970217875841234513292393454887018916274563866011486585106136121227986812042866200537726907865699396711895595405955499534661471890036357995526074918649001812338752025123851385477512731009643948689088177606927033245518921117067046692949085759366272029198246107063494097628242803317791581349964661333025968058716600731025277520686000092585025967420272799877922439350369808816146280298288422794335912816131412446301599004837575939084908927987925993736504041185877825753507372920171488101603431858412206362441476098541187445992056080898467384613125526680114328613632387825485600916368837937076949018398578514110114747820602481993730802143886512552068058933191873708878138715312468649212378310456977533935630255429426663293567627787667765265441143707918790515859728020195730779235633066355499157158445640123090229464920928971376105873103727716221663582855914088385438565544604979937645058867231203317560855434627022739731472784604734096865935866285251557207023946332590812354313395272748637086120174646513919222089130348180229933163295783027017456214993944026798235083692174785488216240795364190957902668317816360522330520557973406554747276192503707475049018494645930321247448334057905887027564346942982611015602666346636005082574470868149285104689573892516147985111310238451965814664857489581046662980184034097127981548806340214465735982329852926423264988919284225072385291906772070239313582291813297581730943423896007056001737021978497771521292747446049847877812369642404761695757221544817661919624318795137173851628766584194189824283312403113480376325880473191421344190540390987494638424875854234443004626842407238939704066607211040081761192372151554244069218118116107200680983110703589262809168973648745420968316606161088372059345532718401753857114969868606645832119084882803974266119147643179416473062898563810899411248607340568628243490103787452782170290099715035343023156096503047661241933202656538076446786406772874151655608296174196352514276026151617681894293637120810850546245770026602284852302621801108943974267622926820989698760284576143696324856343844706237058295675500113563958364456227371576930974960108370613266397779672939667864190875883374657947725910225420609974648269361651123941804780574499366140271425641438632083512755078263105578661470961368320564619070578156939071702520431485273804741270379050792086765809151096206420424509480208432179148384361305346289120256691745259837423308376604889491109085682777085323632950499608967542385947939379431429586664439378177538815995077608896257512524227126755278270065241524006584555937672428201740669675503379267341888557210590560601353420807460308435005683244422451645789044618984883680848956458479782868493128891604838063626372014240416130826710305940715105394633083212092386733038924839443249033816287624498975407027204257583908228647639761818032610176622400079356237323688432341241718533067542072547698857877817508874745703089610566069996169576588563422314304663185326931829317429580120182026676711458238568750367114340342900043848357150097617278052701697868918793134899401132981171436192996007955981557918271240967294799189598853888956153679152637022992781168733718165098206616824936291895742770390630972267104692919673181114440454874588587625513593421003563193799461805269987305424270178249962796232279991759529667328134229479780254547902449711846527550266842299268406369368580403928262590731060049329317576326593272067507086607054741449675842292429376032838479753627130527251907676504176371512746307887921264965258554796576564670101920069520704563489721611498201507218471195359540041753726586062886670630281952765582036249308845528359907275549557980373523596725164090318296805280659962605881683062831552196062850252733492756884153187058227740788768000577691710243747012210106418484231969688436430213092715502640996497756163621727429503717484638390960722642329874335657247823537007169873666153113216570623067483055210356807380012456061977422388012841725208922138452499204492707975932742968459651618317483479267735537506308826944838570319831232973862048480123341537171048198576055763979730157042055564097745431521700415954192016302412884450125496966201873324366113955478231093948053842404222667768105638946249487705761473885525520601781231020712935658422437738217538585143765285539657160191572870505730407132412078607167159551287416219165280724508431627008388226363066811613807389241279653927321193571549145145685919653446180215073249730951722873694598176619111039597055815351700786061504698445043152912751337048155622588177029002143445108610664147488708720200495090199076946527818298216169158142256152972230875168930139857523824235889375417968974548459960446339072484746940739195647562345175510508820486288392147951447597663845599051598717285244837026963841426673600244845985458855809578212082248164932633942989036855592506039660569832464165007393603922439099642915135442101803336869500953808301394115972093970642247360515208594146308919459779341088954038922666338052387887096950815166633511717418367312986782498994794403769189500053347422666290928657105960358617022837891234915667658642743015840801069262169328757797859361086382840131094367538446791202322239846114200465347932547057645711051873997996344818240241719616301533018746279665883956398025314810894757677605048009247787117524635098942959120164562580299804330994912527801479874927748062582275092375245004917458035244054379528981823028719333750966030483044937650312729690216603557969797985554910630820505183702438538359706603517585819731651729305063225212322474508060157552830810811719766138674896712098597018932366122531455427193771887181800154033890853369254533992010432158707495877406579419291235773977608287818984878535355167318689863876746470662765879463689777828950417656466902758301063803501033118283752943811687073842604742391584861883320835180330081693315145871110094266899932714180340061142517575123378186712062500028945621584933275803604154178538832091009926678461938495850083603374620129499167508505711056226920675047336482906609817014604525917771784203177262267302107499439179061803439611536048481322072963936996584312747072058294765869710199692471232905665775611118703043270998465859867189154279163021616413642967079332251082577685145099010786604746686570715910242063243623288683787034796072247225174173547392090200392278160804093889752439417241628599689550713045054663977409040274926151778614496132671326927752886052607211988742567259255953036352981057097084088458940469683380979853514987305910014240088589777109315225068297508057102608673988863201471687977847673884165390426260677082418575330109421206485855754059662153504302792233115228404152476649698948085826469328031977106875844354271020762923423652186714831343491881084428850734022046416498757718367795002572583870728243261785749520751041834133527836895806720172464147205960499729790676307290024363235620224609773383482998665595717396674626595092811486342284952797513930695559318016068168402880740355116079489965216819481769093334020448224096476381384435553462761592010730063918342443060325260600683408244481809364469438150342559576958710812912931944010935733695407428405016553868169439472515468518744582205954620150294804334388735209286531397933276272282550275644900153621145941711788523153305767802512280262478075292818112603663264473710284690460778316511785403964038061092447722688760601169217713650775592060725797554341448186493112300663410950196572456948933559913144861872143713852450188872193777834320484172666817477040530828989858666975482854209888956308332917012305775998439819074989556709293573552529872545150242312427275960542297305473323850406112619493679220150505091579791194775249826298878744592174110873798816571795438681283651509989717973386745911010772106152609606205977570297547652195687106934242236713802184875631558276877045176417152878717601459018944454631000672507167133889364332291133308449232757546513325229732136278122564194489538407374901683736563463063529852490698622081676932550542052134719839329984497726930377397552112662896498248968052172375904848394550628545908975981418919416511020451414452413726766915557842095204647432655834409972047033482775343934396024036647626512225937377099980354227583082425753230941425083640847816653769680663256620698592916038119052325365964989326737186983405600203314946812796466350135896069931374947448332962448638578550362897820190432087205220618902442450326111559961934862612103457807868328351452934156068821575916030093733551933994304554818715816462591411565326136554051392408950987312556491153470545854477752367405317424522059783409060676992638217994314923926198364425815813550942424095328197343662586252649790334240785683276020143095060325382636136640278560306928097120811980986371761840612946712133952191761253014292707947347343877203717787595545081218826754294103573826305098504206812225308440081321007718783436439627332558528285542130696619969806056053966658148928725093198419808741369191754697016633013556763721478997246697633474442973986298446630518340808694422545947000054100008657479932116744893854405585307725045113185935036188258952518877193991610733224764494258740089937815686228048535281928954658798042122158138545871952956957241311178854818684030195215286873745912711283650033945846742102446058709367781975150375884806363544858580130492362243643672176185647432842738771740209322722047514141107863727928669848394266509172652467437562197351819014451952682204577431396879690954976045194505829277509756809302198077727898029496359210047860853027257607310464811514016903741733777230117364085337145714125503638962094650187928055594457391551601657874274261546871342019417770781816292712687119024189011743617067172417938483860648005911235660760357545677509548560530195967383107638893236199729839995640093660406142591775630820925864535867029478129186780459291531261282669662502521039312110250197593719620905011264687202155457020879880842598004299302143135166540086141386480907541433411359146846412822482417986980730735041458836974832575916534154641879454911828553796470409619913158612619833292651746385087363367227022738327298177039733302138046257903098438599917167916789987946027871580015637453220090464879964280218441868487325172029425264086233104975568696787995813609948847076714099273837752409127250832550410606740223610851219747820848878231021231519678726418134215527274703421095180240903743838962666559409623761137187012234161392101917101860799509063315667972766702465464644361348974179909939348258545483559554531152313338093556868194690881341927622239052682038273567053462916510067998181970976153399158473321605955300107210894688081532690228419410559243051759688702008785130238377194685167752902542896895534985111156228324627930320572476565607763212598547032762680868592368411450287589940320154864299867340497458230582081387637221196680878205151547854674628863217661816333874508948602443037485038393332901782790142649052831515241561299919178989189599202686435008352903909115754428856991942411737780600159043303201515325410193837150577636496050159126775024501451512221604380123678534876992416209410683604736516770322062263709233147309690118741344562290644249039186850275958188113299465873307211208688200316282585309119209307713742164648488312377723579037963492718512154792663554673227904063208139451659197220815996379399435149383427507683154547126594194614622687814032710435205697703769086546353598291125295128536361727284365434393916870368631121791097810060761387588757299160751146943208691726635013748744613414019758097305109620660103992125461635050343385460390282302008612678089494600348940421238555369804742046932884305950649248026598038104685503595894809998551568986245081502344756421883459050738238208120551530881947648109964055723349076841196763317293111533164337011124525298421854598118673322704596676782719793864650286754049796318966287062531926688387578899191205488968494452125219026138925183215631933988167954108215990523175118962452315266813167639346574849376222982485944769012508433296059192838827903572813855030210955658935412029659661627812558377301514807144837401152650182479915015077677416619436328662900268804956504702619415439245863918293713761312528147468770286800365340165146372107356506117458601963786865816017915265628116606694272951325508458590061849987577934877571884194514359268322492553341212575501808314028902786214466435824833837461794528297789034923853781400950089405989203159575991943305945186494014088061477340641255568499447133318768635633921626491064352643328957651479198882308927879808517446114946181595969782187038636390990235974148391943136022279540246430735916248237557924491745793664912952681427734626931087261562868180896612048980796305018196305424008992784431026843135225875818149747132113548712803458958032788117223407808824909081246118634455788073203918337132467556233140487075920683838085224107797311650392581751724638882090052121443150160209140484585397640308465850787416424675861712747768759603191488071462398686752008909120354562122509186102343538745208216765246949745439218078894441492463441981786075409686063234973908593005472257640973526269868771755081301764114533104271203498112163695947071073620618316374623390267781110309211863838294041148426050299693208308314834437723853565318018902789293440707615828876608974219929516049738674856945481714716568692400265633709339978279347161636963760330282606900897667242593579324499537990468551150883666591370873199810482010634297623671669635238633051674439508859054419161787239668605965754958681557462815145785676730134902499836986840192959213093740742255123568086995582081080450680715886977609083327205153759974551576182698530121673260210408580821240975516710337260993170517364675723219475546969282286947073146931135008014819179794181564489228209076657487380440436796403087952740245570317568711664818693883446568279199873230988533280392171239331905357555058314804021102608059299741785350019799303707826264562739610283343636324689856788943554414728302396345005451437048179985336446098393517065894856158171136054694862083031786553857818993017535940810756979388109802949970862187647788134518137207937995665369078584347549369709135866660050010064337447051331767990283151743807701916522534407956133510377004814006931731077614694824294136333540763569016643062413508856513811673840286997918960691843021443527603934175805542522275356102723644761162432990621266520890369825372192927401099019479309970760783682495708144003124181898704266453193773565401215042373512340291589359138633566123555951716208067184001916158573882766827799381576801669524252171571636528361982694405094912010733880218933233655442749366680146216427230684280818778412080251175297138231930239519624239323976351501222211484036393470935318616853748694266405490042842609249694918573332901028835627211935084918059402579695757659484227785033642630017359870957539038759460378104281804597204761792856312981864572464225650987127018058589619353244967383454742802315995008100881463182237498845100098077300871104515333558875121188072808402882992052476432645767112903521703436568597824931826288997743643272836286851746928004131851239424258864860942648088091667086850915696490029104020058543727106755286968142192630737313657884811552540604368733989011882184546509452465530336973128033886288718851261429838359169960426276497671284974527529226763353433874465972767666488025759765593226233096176865593507481706448418347661090173154890085796447154332802381255712758473256866397664925297190828587065199850309335337539942557233650710758198744376871091901042137341972586407419790969630677323762564605143362493966191939490701032439621536682817868676295400732284605731323149491626039224488620163425674797546851373947940430330465958231089970701457561724977580184563421566458390659183422580911685921495090563799283587852096617552426533011252955977408120824544711261254845650160587731667748700793457946768197960281205029166275173340723939220263646786433293038063336965880698191498655853700692852832818129127958221344481348387739827396966662864481273535180151771837265138010851452346632278443664198510251765922765412281026607362516582942359815458676106222264697010970281249388423826013747925676638979657997230473367518925520194982838264491250690201088019013013265398132790547574412376268522696030052776973268395116018697731184661387055732048190885642144336610358095658573845410568821575589637393014393148298402598996065029916557665212207698123689581500944474524865170852125651909320306840480662123153263111891089168273516060937447809177514749176454244367348039845072865104780696392253730002423773316991473074357935319783159091069303977559977628436403815675399831218171922499825620278533200133872147706558742657162596108732005212596927694157707488965510368158741918608722869657190242302053605708191487010111427902848262103968241993853105686351724783719767416559433196667443058373589032688504298524454330953804278557966186329334889806934921426071136123831382026334290772969518970044593326694582254415273452719261907072274719340787171025291370497067782195409998638337051232394015545993317421553607123468519973772829173085806169675235535424520787473159298045174300407526376789348963259266122745324513536973086241033757154801447056594195406286135069632379868880795469893784756821764453035051862341359168806948639719451229495283818904500108703534912975653421295212484360243483533412550416572683167957922628925831951710549468429361255748652863550305237929115297086279205205993771117805228974681894600725789620246898504666847809476395889225531854913781637114753513887451962781109303345135786067642596345845206678669921461581398186951415436863024022033299565491061675047627865495603641147558013429442007625124910594729610902149888288548263187697703172987205165983317208501437300160799272242130680351236727240449188249010534281314158214018260969109330379291637494605682145429741516043696916175050165321484636412133248335070147763993890523751434247635282523442428295327627011034960782131062168599517304285518960514425271821693597918893677118957637502851003443761067421723808872425785039286153985132848551870717996140372051180364361899674614330840901995457932772942988364851601134749198169550637659851214894385047493919816558238045553654481487802172014095293571368459208278307838914955633191396315045216736462908586963204331315627648792686392457361567279121680107480714568603535982767102222703372895010082544946973599927551939289823855746127955682005248438253643218140273855357885199768454847107598889895077858913993157401467192721785336884240747390259700075421207768870072529035218740429693858929247311038511207725509492329376025492054620173478549200983266979345894216441188252570578175266225914633938161167493018067231763847473679177134137358257411650593297718183625850914158226114267414717507983479544940682967649469648991609520284567374722636936429352364895717157925995382964127928680392992817237765716293696002053795507684327437293606191764481728994841545841251930865039938779351353635597893293787854345285280099291694738937901147553427664968633244339993815393106049006528660860753542439215629676719268882234020722222554252202606491953786408578971820850765451959163786783429077063815058407200629342180123543085236378109377763938854084998633531090057576502011863593384807850143877926689004303218403441493418927856568894996514000121235913698707414704602271129140555632681995756631836792707485817977014902857237229134598625996363343402080453443065042966128777677705792261242446017907137882604181855719431655940489385923441205334663214164453334271146893126728460715659853008272490925604254230198522823877504437300741115496155900405383534371446129964870715752614890265983402675484098955813534623621462301416767258504948968015633487404456234502309688809953763109688152074404576873673213982278846568747673017592613346523622157300224304864412985295577424718525054219979465125690655033686059870912947816610210382917820456136229672395734537237205011069638866883163437204694679926559767783051956673144740577283315832458344008501913375438763004291271557356045882156632505232392226239719332609966696369341180359574412282749110913947772713130684136934280020975699060723885241079597350390365116346703365744509055226700227893358871767560957272393637486589902113681497097393325084363132841460476491848344547435041159246279721629156947117526007575154010041007638520723074312456503572389341950189591888909336960108362158597635577107116188812982985633512031203030041182065741235791926546121391983723537076948479318423771062290709569556842942648823775124899700139523001814477602188475370627766285934062294916424067581895819142129013429785165851819269503176345216870797587994996221247644501062048048224378229577814340987181019254964782636633571747304325415433657692672465320761552115336665702420575028834375749780083812381705160423631733380816963439639780677202035549060256508351471943407976163913531019147660102206552982874784868437438144799739590105122498724141554535207520275041037676049867822341871325694779723924133588939761199872202972823299023677240523518895513275168910770865973800503017237829033366358944999778105434969809981117415874933021125502442614237042815518748215893497854430542858509666540450897996184795328374002222503006416299159643276215352789738415797791693370682750853423348821523590472982583669356421148698070799658800288856166251323135842651009944908356288125159977365131484462408145700571171444793521664203095250518950135082844290981481638758124999221340942732760716541607534069878548895884025137855835714389474262490378355077371228890951562989912672617309649283273917954861302556747487935486422586876011074683900850843446333112415583955072731848007287437211868350061239148849075751502115732437757541557119356476587864403005780691887040675768843447630636943437156982309155549722344082120862043717873050417292302035524783040558745562034993064306281180603195759078308647428089019367138632333449627880097599624232328153353062240564570234720172235932316035482561601749905208289652984783030592600469569225266457529548802026163970491414426857240837050444028289501797938228442828359564940400637866065286827526474659818825988889553891083705485459747483810913764392707086926804063998383246478410793843396014965338171358667981769438510132067430099904397883325735046910468881341027900535291390795031524003855049450922201787931393108618272843037891212643913395193353241999682181029476026498611577941002299487376673238601405542315391696374118818073015047833859124590363384065106935054615924792406765910328780977782271900876750066989328720656155544052071280332540673504797603181293126527351241748813287576994467170583098864116326958871640369647132583927329685493768230158574200234044124385666041415288909477127693713972611149756987906269748119215482944866252886142605818630594966577821096132554566545329830877625109844423908204406773909723531610661282680006026861505368940955658337765082570682822497074457519318220430839435964304482616789570566103210635976400361855942507259822765535317280238316346665050249777240685589437381046412690643390715407930710753410680995309490238918157751064100980647225183793174627797518504485691550503658420707271981126541952098358089274482221877307506712294179457923311026415412320535957446620149231606144490959894444579107199854895671540152738181263570476638230611364136984892059658177753109866050678756675907361283198681522061959435098754857318121689632663528295713100606649430815519265185833451358159696466680824816944714822292787316460913288157078929519422253895266600637079891945292317445364142483707737028720514176015610539937427648929756250060510964714681653348449859538428717194179868308135539900768743924609725383478337375550752806279829018581759363891486760716152507579322852937366388333714363519665463455500808229970813797017805624492287913334929779160906974558998561873282343408838495443421803876989819832615770431627225329082677772310048800864428736524558966878344812144184816356843247687539274978745641850888747813579112874589900180398840517799301698196341204381194550792948394544877674901179342490015447635993774819649920326625832241650228042265266809731139058718947590937598013513137868723505820768912975982432927297578639794387228511149714238215334868671045228807852028187623948095989706379363498682766834101383563268269363142775069827433369430518289282643957777522719418031033688911318832487629821064239239133609368174949723416414102530391227394576211060491319602985588150021982464625468933639506172246861069732854873716464569190575255585245189530451272750767725115374084241992658376988260007559139999972699188727684072582913029966000866295473494100744502615628787707279387207299172686006164774749720243226517316154400499884205037886927536810828370592322002014410311281774335045064070112125825946339493234254927005133860007480148154316181178909483674259757559464249570340796056837665680851071193510574423165231414399687577820546426794207858945564041245050254272600175731792724476503620333592485084804055853836059525532340072940722856995935172854935296785177319578188756450261558754393419258878373218021636962372434179582873273392990223911386446822918023698687277230223974452558539659772820851405024198558295800686279750863360029393443924625108127320392586747980664858985294336827487108945511260133195669727123365126701208607514236082698670622841278257879296201135165774267601454547297354935289665756420392849761741422917804042601537499669853844941166730430303852117780602806558825218500423956110848438755763419369799934277742240815196660606218232102899855711322520884474366934984481616433154316872300664448922129774836333196157736680825769306521359388925547269422567205502196588004941751264706110012248447738901355892476058572020533513303791906239962600692499982175414318406689523762828856011805237648888837667000205953150912002113407204996511353037245052503118404914777440617814972246722423947160662843483386906578000982680271685418959191591844638115624332901103931112644491871947245553947234906945396993768719728262925027905189021894288308461765108794244283984278207968299510953403331460669185408109829296542534720535744717926943570777526427865425257470261951085809040130232035768715326388390629229074215506641830762178598520201774324189173020220105047986267735592591189200203978254669845069947959722757587471303812611219728132386335667515403798384558648677363580937851838076596593338787630925734598563796270233889831472393919208454054782974163308945302773724587923268565377459874474220614819361212602564805985598565337108418269054599487705811057720546150334228081624856023763604772418235229710425564015627221564463252466840847335272357183810631434466411528921524026676617250077581131752840290423221031029260494870960464849721783491151500585143721739086382622383367261210489907081231758233375607959561882664417599610952335518661892493906813424200351568453783715158034130576682202529563973248563651016608644245115192031646514764965903538192007223977711575713157687189547530092125838018668033193966347909843798886222302220770982831866700238152960902556887383350835258276741084836084244798906934332197690522231906554616419648550014793469444917316362864782141198532169665964784589007928785743835954696940839326452981481022285240978646481764417057797704749708602046544438072351363169054947370649570291943439166423389949675534414358318667555247726097266640320526507504277018637877694790681467751224607553968930849408378459634015475200795783569201883092983012909243706097005020784802087690500704941871077365455740214496325607166130380748859819442464841877302920719943600893052786225638913385553917960538105187711055978476744402616352143840097478996791199106714990811486359615655914058471942998849313141958016913645922390786879422294112663542404382751290010398223917555627353993164953058377063361340126606162369979918131493971487585905175621971046306159327858454119371028970494819286105138654747160094828384046491548707804865108992568608844552970469626325882964515105826882209550734503362623614932637361108293118509936250741728047005062614060640534812136885480985272049854657946155945390018886152935726243465459451894542815587359713917972570132370762793576114048460964710006351572637300912585786779448546954679432460160053428998363304130853849597652510840010924331724340229631434036391778414634838872516845562948708083925364602634282833482912374917130202633496220150490369938472557329356354186137791782036019094529233323686331119972169470531005964614500848475739149298642818679601665132692827604726732419038379148402732953883047073233427972109948808313154749283528008473897088084554165651231626604060784903064995238850834923261054092057724706681435878767501772491385428997326223881280594566501263280232458288360260934206702448792132257429382846479507647468964952249950874956655635259476125084854514744539488516694438349287364478799612455202275699870969509423678867512557433883460796530157075900223754004209223548738940033175143241568801631050146415593041298401453903557436502562927964777063506863437016239772394852705726013258853198955517141383027245740253207391541825052890955842652159805848099211542526756031043956690528419753876554584548040199651832450623174371442839453921739313323946158315765807119463994363872024265487297634362789887174498457811322447483650093369373689411532215936968430556990216306590624648342703283842399053691483172194864601442692538020726395818255883242348062992286012692287546276681145116847144393375829741823020924569985132088501954361947794977556438563647916507121186673754569848476099534639395938387357529786545843534395157586185174168285893093546839446957964487977060771910656695492613941321147736273105152186329568329884517071838756989590728324031616546237102806672880787485941614907112549140175816260477916413115079384711005983935218509795247246499946476889251367939560196842046928088779621704338840246994167122445865988647049894885861964806264465066967466512793994018726689144516913300248347506258838994089461977255068594785927986801115776993408658683342462114183757741602651264139162083206437845540114907275103753139777400049562797243736776485195985902252631491235444286927768103967040725440668557157819404096689255713976683394160845592415978322665141493025065896829414530876307764880790616341051893731489522649033863838668898416090401109593569778715507007697287002474357999157696050353116583709474550949334156885427044563896849044574541024564161400918579318958295813546702422936352905256612382871032248133557696977449217905529842845529424068905028832129555960779093351370323524431921371319595551746928341416544756653558168820952701239595584872016650837772311164016122000700910538188039753535537756572341294499172337669526518193805239867574897363738010630861748523327871803276991918052360599375248092889647095082985191995831669430637386146542891653210629534771877975926747582915093301133011556974973914588384187335722022655950136255207974721951137707187337077049757016784465220288096992899145179389300240040867293880914862894673756585192130472832858521252915559235723637947032128807176120152434571614971201343373627407755405150851644334802513311936113139336909580199113438651654744191771536906395396359156035921213812192146897422279645278728268380590972568622804945996478824049838534595770318922256376190497417728095089307327027409719963128446035364888265125426947389376678523851969864347822646977670573975820627918611233172614442853196658871400853772340381063654547782089004854630738368913172429231644974260777021601665816978918537600195227846050589625686926661921246620571759137001400186539826522171066351100498483149549282263437549936388307406270064361055376359879410667625474196083742618809930298164587964546185435811435517656475155675808203657358818940674751621017841192814847057356294670820358658976135003427685005077743967646672202145247887161863665903326144127307128597157750024086133778983143571454598536118481321429707805586086641310590061591782111962275116557742051725672477660808131860601399890991665310973989003515682223478314393072819194152605410996338839043849867900040153824637632751134713654406829319047477279334511168716553311267497285521940941168437094370195500770823308384274238268255261088650729926150662695480506925547711191058303600591088657189914485730941889194532421508804299547458478813848986415870594142306425675402737611888507468745269738992689300801499006657190533400324765272606275811274641086870375876009776558142527724568112927495590654663221432736761536346528875921475516615839090793922974017459996018769107913620336666571513780110755422516305099867970009616597360155651201347472758542427276319723763080720443598407235935354618316098540339100818668901857798759539722868245954205965062783895568315047136353423067113360571459089976731738830913908226294075715538783614731587241096860866769297306658152438371064240229962020462353260712693631281773119661621934000262508236177112788452149575869927263562563284823543480773212904801281543999527420998593216177503982706723569980479910098687215804112397232027612758744319005274105632062717781194654699909605538646344542449784397074811831208957516950307577143156443428242199260643479307741147654903125225300351528868281392070170771513998563583363895227950726777442822542131780214599863659405224273088247992108079311205490852930287802094253573449089475244480522072662952216851010667288564050070214896755532582224367862698892406942967692426601012471003737410894333605777777917406015515767605979397316625978070461940075920708819632595425012611440754328685748016286185484139932885768013765273612102056349325441710308533704682146611109976704523890894006112856271179323830799071048415857032907545046503763238782437472151853416013179269390533081040269283830248548210692852620815356124693514463586267207424023760920227431211335522211376519737206759048689125306118473747384221288942602738249766870644448209046590368750511665332198109422639225444853571505021084595132030947169734818110834335752567438349577215901473507104426995244700296750748580525836496483164182435482795786369813866015326115689997941029404097998341504628251162383075088224296561346432868871413164357835177641898286169444753661925684843395511865923600747442919856288276030195256960284809440929994655397187932772800194522931065640817697515451701996933531255464625752863889548082508577526797240873946769599468496339959065570746752088679939308938894678449921596023350289514540545776526728089781507429404948582650335432899355824238544100838668213712813153404032845487400119521783942214108449264523519357259146521126033135412154612373040653957201079801521878239558409008976207962083023123778339120682961648858372141399932324245420656992845470592964535226963768564114096783358111432427962480463010893262018576393503293194725109910458307653311818627954941594416877804985015396131580001090089112542069408884838161697440770319713159466052518576910397719930357936885158982717838797290705783454674299343761914967404154351917175573979591808520318398772262805423381926020418977565749885055195017124293463268158981600205275521080533945959137371769103029219984119596861057586553047387632232594046588019590024081964215665388899206188508529452383032240267618394229391535756553734348943088584761294283369986082908047505604471840632792228405956587459028736915593816211562821418701887641573907215429955513633756102087424458110840217492533863893405341352860903896155960756479924722912655764090255674746315199704587061191871352534592175117873444561302226788754418860809815967209071168811314956347246396939145181578166905168597777535089732505622183496927500631215953896477499838172732192770545423690595516733596093907082941782702824424062400004181377525024617614733153227817879446163630811225431168060166802152510774387541751089621226098607714790751904707911352006109305324581335641667346888019967092696375232264169611041822043268398568217188819827978613668765745638425156240762711128724764904392855230609762580526860932464833861603320867704667365214023675898220149081596282469746826922399050031755946018498571958840043763747001633804826791696278639191189281344958321263622093479615964454570223933027455675792373342791685852245234184406621793514611401861829154218664677697322645719813008067350466735789882775117585927446579875723636176168685041744596331602094476383713131870107431806876699055689805616311973416858741352407882635603044926169536184162655084558713431972112145761461947764921263432328337931690405415581411570343771189414010014641366656056928835662478111287657382243374243576838644988013304031288201408884895337635473074755073695712138858199261786765495732290202494590378321689104209047383423630422367333999802617698426137726186573277178042608615555774172625902000550421571511952539406590403060051416786599566546750103435697406012123384577494878783676750624529908176556142054930921097397204271172607869047099771172748900206418373735472216275911819171609781160963876963396691266899209079596382465231701252559518257376419441597865204766036710563172846847640391797764182978853318616072245375544446701427874476410961473451729385248114720588453462292902623160835676781075664760728982096144188552872722274326220292113343879646420339673910693549312130187274890168875516196685026031391165927882389898348534050818683131537699994650283094473742338929907401643371746475458751130216508799515637974081273450436850930914586374508500288766583806674654212530504567314504728843149108283441897574750521969118715503643045558548918807330692797275667589719926877987767902841939002127542330655059539980691166805570782039438964535623098264563128045058105386669742726567005704879160837044377227492331602782202586726898504036671468144172925761831891449330325915563516963425948132132421286756446673104873195570116222317295423722463309024822160573955153050131586342779856842333510461351752972254119121575419972690774320509961781786440815025334435016727659177538617165284518365120799359545591252618820370257742805768810262397607615071431410705810421263018089285258695686085280679981835330800841896037316208225804725348805766519697672345011176953416157151438014982101233709163791497890874214873596961662010845379107159789651397246997352913452178642029441923819357360765460904935357468889193404165285193941263655783905439010813434993710457786454639520256198806223878184934602247122751668482241927310095399511270814279424384132370513264955355770435501179735936990178382741275891344582810094488158436884054280745457231318191258825888037940756250925362987707926818069033708882288562255538473892484576710945987970572990266955550039788560257879591056939651869710065671538083970733296116889659208789279498177118064811566209001204564502933042556551635935630717118210049072961358846016110241695963045088761388110893491903313074408827808483373096047454616794267302849920552598404377297801363980670933847955765487141690980821333334646708593266171512324929978865316210412882312897024361919097708489621104034986518526974748929415094445301722345072525425357542094548116476334787392379978783901458169906383675055448475691879124812831123721446553181944869744957836095637484231268549197945168467550375316381286163522039569290773820010083661960668162450469723951949569517315175297358699450505010240205797799648424193274908827272308658947904854357435197732760058446626557228110451177142953723363351351015313734797543129617518494551513112067020401066271844242504626492451589956562280787721828375182457892594956138649341943446333884256977166808882810691415780671062752885395281219626417595356440052972531277515129785703474195889309912170649216941766786065870228070968784524015953159080852628885372890007849412881262767205933736377938828490065456727278954628876889402598101000881865797683842220562303469527710031990052659656734460706118280469148409295214451847932744787419611594910857543487584912538203441887972445356863410853599884343104950192051956132273314346305103886615620574493581494715292077087179580159016757544286654654998956441509455458676454114901207692163469459247886809144283788698253469364755734286683356883268144545971583987153081536254161461385355490612631085515345609959708257090088689466026763054062230371021347600736654798424476593395270779486346096662136796827904191534750135755507988926935357199406643986161991250436049209685115659913548518518736884743367947007934628318739194083497318995734569950282318256376310064799839250467234228152617826969205443878231556379587033023894592840020820737693608862559322342087970831791276057229810395433226518754985008922220626159810558762990906936387295086758461344134935887295608458947374474066102278720392977694901167772868462842595526619425880980150574248768426982682410438345736669655963871826351460281801941935710747807132750594928180179845683220236388920044737755815240836669110796682434872713085193649648257668659794438537070110768266720713476912875110990538049459409288174559135786860146161120803876543608605365817139332510967704350261079385688822939428883971808423389234782469101764939268128883765827671727110291790929529588905690383175352956390598706551050392373369394234297063080880510861413941992284732630109699819617069377992596258633669639604388811124984045431151587469812524344978054656542954880730520853903364763427953912684837226065997075624691949865981322561729644514384237087446180371642399519191568063469125460223247159443032963281978232633030248740230057381643644253459226895519050692255591186336674624048857201244305535231435026487548582763606784664079257183083110272528882016188620192788267649411121407331570217162592461771933144084256109157755885676581360979601967329407578529502261860301652981059809037441777131425910509330980790921758867609540802562985956995772584773382810889441235628616328674376336072126884900098398624835550364777856139333911996809767590782890956282459113049755088860515642764230155704995927488709195940339834004013086907025658382803245260003517061624557067820029627916023866550299011336763488190592848453418302657094247876303639749557724519802742683127265334243727197601453929986128466723856141942572955184590615836372064880347531996310293881793876579722190907224467481906523850877165380750922317590763937435885806020335705450053633813595048423303613595345659509947978020912187673618199011166772009049405606629046702422022943605207291175649185783407222968214357108071149825670900869323925487241304866877518154989203980758571195409584430960200141767682051979616150828620318210714685696098117118968256784660993124897485122134529450309253460497857584938712082692931288664043139720805722585133793783013762581337528661580448173583116281450435879753050163564549017826888160998089387212355702885972451227942211970561118334462822990172587835946409720572392786376652015271302243207796224184314561656059786594297014601712274678697465906728810960141531931484040405983083312363321589527286435033368585541296471473411157120838588070796244795580437282103060285245582904477072777500331368943452427052319426049737777646169117991179941787840947002010432896175457441288446814247600785278052264886695720800210733862597875418276742861670694644296120151949121031128876456488677970300958837933796057929962459987727222264948165601350299201152480908918838835188601093787927550200354009038441679800319768630598931971296489349913372762853696710462698275417715388945756572562853769488605983078400233682067096313301578333522435049320710040362819491068622098491310146555685391439886316389676261729415480048926218182035918092062956358239103134395851748099689763124284003578970152705390520615238853167704184233392460252213212154310563612969008386425518738173332516785633999154688312182550722028657148080754368256331768742998336633134980629904460847637776519499547548080974807687495421497098890741449175031694082177128721242948494987910510847203695270826503064756893056195683686309968780687882444427797060428991160160763446689957780277752608851223279431884254501015342708829214035414070380105111986191700440104732136289760282642507469548859243548564486432524728797195660686807907475803562647236840003661304298486744316218325949278160336187032699728774430763336826237655479912420717462892865786577855425490163996763629322517910152450546168022540528767486377747699046462365882070945507285377310079971450301752124588824284813920901723567798489112617463307999739401192297754503712574418435549299922371154443977180290908471624011858452567300603643244476506844781127754206368523006946590772306048690596579106022976966743972246318889255385672689286721786947433037095800386113050832616594278513099836171291432666448275782622785563552467613812360568340947312997674323776222209715318194524273255784131946340510912886818063746540804724364129289772485677824044157807016007058834315345353354903786240795796983113450634970614667207582380003692486438819234219449093975886116164742267335599724839324740690058703961400799712657818129174355917644831006189209270077738370189789021756140720342257959817285775635682248699676711059035585317574431217027789368206238030491095837002787878450348002087561749729622676251420603351485586735742504183271918218991326149596160689368759375147580741832586371847570327404194816064644927519003122047601563800823270018743506829755467526962283551266907151548977737332368221479925178533412950549658145439245491356576794342160825474066573878215889644551841725160572962360154472611791643214575094958109161287881654226261223929932109695294705080046673825116619095036418322046508209065417156767850217194320415709621610791011805562371199570042629799203940339355476270591981463194001474151678436078680060001555823047112819775741948420422614945315197562714855212742603505269353002436752619268408142601551421287745221176819665963451395607732199658632578105777212662587440856590368794540189111024514298186097121694463179993539979796257359259298821959169305253465141584286598569858040173966310084417395568714153334471053068186770001118640411912580781107665719126403691284130337231908393504231147317531102252452890908621414987232104159903875607501824117316287252033139203807608424596073859330289795154968592783882807885355374816076711317326003656976468871657198134623744567791621260522986099250421319860610213912006110338689919483108455758170424888346894261237434476883538649976954778797514812958702477848431729868237030324525136500452092619435819341907707927348857696856282475407780433162634606878869716003521235776824741978769395018619401713979569799840202546218097631240817919682279882312126924132384603241396953055141483722923426680034535131940503581150636402323729542281561237993812238046671574295448804003712410124052528686193740502216032659378706473859315835913215961113454088195587697451318979242707993767982189259856014200157095199681103578848667081515300551721815204391036794276375360391697109306238751277586237027324795105774663563895655002638605480827052467812858778920124107645514955824760581389864494997701356758412762876939749226925433551470146527511990930266135051053397979271141772338944022337361946186163496914235789801277995109745352184724266160150330659638651367906152965516892395537916699384678020187737593387189523355854329055160028176381553110980428703084074339608718630580289441595202973866723930199145242343472665150415478827808148116976338545770837473632435243655724147566533229581579705648562639360104565164009153870080370261506687464522011818936154550859109244148799513035284264958052476893324883028907713296517505161965498883657345646890464967885173961381880853072279163159470315663315522182017511518319962222895088900239049743174021630870574292906216641871217689776169199891193282734030085179827715986853203375987991444587684902188576039334798409093709600810445330531428143889080760387684775958191168762456688445452138804597678545725530735923726183797312086542865784714220134724111493357259464327319341109621474981847568304215569325249473081814002931538746703805063025886089441194491629270602996464721500904669810610632161400944409983414213048837555261805459272899378636348285322857703800739827632764963478758984875180096211687051756502108727501674494173000930944861506421646967947250796472849724638964131394253332088548968511790755141659297001213597646241940426221589033426985772857061417996391423547669172989714012051862727657614846917895977977699145455218899297031053194447019943029759318243861997250384060256259832368476707423221731870999813149209949914343951664975265829149738847764379488695819058537867587867220948346012934686842547455246567105104052452444963511915514315731648797785198152580003782872754526447973315750403409457120903922661952564617036255936819777042704350411838869632098927682726443138386618883400946571751735837373172811041154774719220244615366042486868660921204587718683195803024743965087165578964307790328672531383393069079819178529899406253042954974870474269581499686022875215621217776793793768127819928946252318526952771684967113241108123630820143786126879443664843954092849445365187735889067180119143343061239248465409524872582379560401567267790633625303002250029614102923409782992001561783758447309821963604250409196725200655508601098698354007868930897387572403289039259226605776768353290237230140725681618424436519499732933026951833347539463626484998297261664676436149224521197972437030063847641966455618230366060511358857305108912899173087783349537272836058758296856008887140661970753367868358061975260783265657360110421315132121151499509545626119870408908262544641111947744241755368288422802880350079552893893757284465761080396290156739038756915881602091598093614244739360005041838641376029779830155782460823413306880484948000570424482074396815978353730123471602933143015600399285891227127137962578830135712861344847523684120141464829357607270497600724932007469581984584604954887123538141874272509897570380114851923067179212062711220892723525417105000144077122845792155318488158116809852999508472523845240534135243477181545957387003914076192226282308325238626949916576068711611804001408189611749851486141311507510614191095304776523285222866444438704530297185707877342641847909153274852753084348028845671026598420607847618445929710620683832292845150718082652683063989840185630961978525071435455417219280685388199053647060818323555758896615914951135069232714494341679513880953208928569247878676398435991468144060375926618367262720428118153522779200676903695377221248544084193602114101730177077894951106325530700622462784736646434267044746819224118311530351595344480795161966334418274481366838315331944310729930760653982897383366528983362756183457494709509228037597179270360153817001589604424051421030564340031679903130453364047223700994049637789134226925222125443083046169255906834714962243193753065799294337259386587006694238968728310432174919148047776656273640803752676342821533012478786890063614622564221580276901953524363394359501664998241306194122232739598663775630934888551890881426833016509657541965946537678241872222789823467544271584391354377044891155480189155733600729256636708719330019769954881848668309880891931481590054018814759743588785830809240722941715443136102618363452569590188443864393499914112146921903868230119690418148686606039439329247355342886790493049511029691221318146942416063026008999965915143759227164687953337895265560403061045418863337383296991219630325241885154988345343331366377312202447766502758543722834584593317438537048488518713203222735929778982115049556004774543319567815596457556239725066726808969259894706968821261754233838353369214750658138973784952560987021422029716786234447326064070949287764000681337478706812449729997797436458623113644841647197406124852165785395970182650898035941500434682842077217836933058860318906600553045666258267805444012933453546242394470970492277409940897391532322979656689988966958963191077662168282982554999026081352851480098591666952027553286069101338486518095266835385878967372786022809410088549590406825946686939043326754434853483347146875015837280525466237542927546994744475751619603806196814625110655866257190660194952259941412707478496324061849006240850472910910683147361752234951043441302178267027929587508631005503351266411879285481388792453175487339915911399485817645453423509026197863506280721097786949201764216824038434163540885220957974725202647008575347071275391514925490093845287098955971928674916523494544826396827504182489663192304206872126432335471204710327400775667436493410000445275245549424264256768336602423051821680344696442003573975526755517530532663544312153732065193868489082524039973327042630165732810147157275854575251790085893433054249678881703525715702882734595529407027117935164292532180417908680810626620783889928028605196687002118924712448944865715785217988657198841508739389894621826290978590052613739904343956927322842880837796985210025154546292000227010679451333437884041751878464022802565894202667985630525138380996286157044020112594789665769527487232388745105854114930882301833255996785462834306238965408681156892530115011932524134102274353125000473331915190322808682128118381020847128396033749384872743009414569097697969989235772653038456487138970601697242759397872795225143902411508280520703888549570040410138176659274749864471771255088712755927604666815779359003264657906003199469214489119360342348234275106784201280502305324347301013040886140595624243182948583044057493478806072776280219167715741851147373643994048746169565926511046963502815991596793234800153853002365758899205810348952835445002177907851569944878925121247778732382855595777670692895390711108167259911160805397789909755687713463213545907916515218006953240512041811793466891847748838678330022604359551922904858424661954161594599321975480089114238621668252273026747400339419006421940971435264050164661168720105053188324945274756390517927801152945710291176426465086266129234452190782296254544287570605112941969841212927628127794840579365229957728348988500280657328657435530324219834163842336943646267225298341461133272676671569958095607966955219373955211484836876025908055677694139557250777633149730245297748888150579196501941268448508401387007068386958197939358675745013545441984506208641912141322370307762916172109694414862228456001876186677124296703617552774375398854963111035148080859279537153343546334448024791971713029896226515187743431345581567866896559330569398612883352761190287935782374285391581941290021131968861785062149838870124052141696778645921252805328187750844338195205662092526270442379201650433011329379494868475759965774088746707034889256538749093986415897704524467538809079281807862238687041766133508251801962547132952941196907426947405885864784941682380356313050468486124180760969622946740144221582153952367704460090643775754817100843267877415826318714594137772843342283395387788591485339005109742381104466432811654414174997637062540742914570120215788689769100520190801571431764592649845344669823397839704575688483892528812900407439892046664313925736969673851268315676935739554592029625685692166085600613625544954433174568871348088564740936750896273796252101967478650484467695379545022207404934825767216644023396097226094309960199850552089175063640276626438234442812419126470319480315959592488106755581393693892648315129658142867207681066439262247083442774593772919209936729313147351319180545083322940801060343615584635440026938546807923371969856407187541197851400321201330122634571556147551395651035187502187099371575735812697119597913892961096378230489333747864968174124468512741099088788538952698129207586993595446142851985862490174551308233780307771300456250975966523412292096808993199950061319119293842722095526513456991332676575452684222507512223547297754654438712680954179706685720670734396400132644777452983639291779586887507613405474503195514007265645793012245126294218317711163671636817426413148456394863100070778199390548091034457417479743567582585216974390214360024153233888555288074429859628306868279930184796838501105408020080073327773407041202334465592719258449240146076480208278102879148771578542257601333175201597980374638215395221571660311647828496771438905468795581071182072949740333585075757011545496345821431703880950569147872033916370245745303356854891845739262442331709678207348170328000266113649773334834833697391498263870683149855439983271850200884731570199349662435193566509613120972460532662164064686316130466485452323265575319255504602591932584899709564587234644593427452866714729384252357381631005286833915574226570308541815550505193944836596405917818976987138766336929066730071644879757029728545125263432924752001171196911800822590182074089674504582854111842206463310076545164607108016159154162313142460717006549052648662817792779614679705208090600662138281809228552044878344586509555617648718054681771683662310407662507214413580719219777853898130590699120503053774164217114851387262838762219309108486876111918018579393680561088509533235783056240553321977526152169078187033289486784786239592292366553170853654876683580736052168922787147335813771603996757076965864526722280893701054793432617620515721726044111315694429198259030250341337078516466021024464857230603459826070061490783090308195164922397813470568487656930908894830995070840631659164049053517235344248484247384819337314191014635362362759816030654021123684200708010903644565251387792709146569783791642063659963440202784671350303640490939936764166700588566737734415859664255520949501608013233397519973330824509283659116237551885070915470147858744303875377450527475093039763140033037631899993241477523521616873319264360394097457338163900743594106095007476469569273182868445900570186324204221507706000834246876418553260181482608770848632209568923683371159595124449870766231347234319855048567774508030552023820139782031848387342877416196799481174837040740789486725068647668248214989085391075276232985923943234269623872367983758196964001855987732907005803410241750915680671417079211581255634262961066200877414621617721223490118911146821159385039356605900105408269260401444237476854601802661044387840467494792489097921150848078207028757519019515538121511803641577065796678295227280871936547337911470043207292071027761313355006346228161961516708994668417073879822932652189638595817518290853090801062208140210790768949656460416980815634914209299237966133467352274858030699857103032139293897895187296100315936238804171600935332344175924003676965534551855808620891606562483838449641620909660723439964858400102595398383543439045508016789051393166560035670596961262805456717933343725294397450472455562417754680058842806257109056552483692852452730018355138760913218647492211470212033609469792368343774635869990031455498211818368651028252966700802169134689497371070668340965521738220015557008242399507924246975777188913926089848243917029949803149663598877447032119572426269773094875801734345134832946989261753603025097804377608824082894722405004668199821348901405757629544574476622941080917512110643710437609663195627887074133251520173604834747014201676250399865360123027142134059486813483473715203162778727337461221434948726228041910713738937474775394321442504167667356185783694902041302857587663932597557220297115682818309871976257257448551304668688738220708651306647592065814877757469213860497219642483114846403125139142220437669147260023265770439132106114676148413690269894717855136608319278093468253543464072991625981332751132540257035049340950423383717880003739462319531756615891337727764991644563299845753645284925544939375815509173121982037188690177451177930899020976604210705054547045266722017269959757465054948847989203643946177985806171916472657374424371901413940063750211126597838319739868470088331880781319431669406680402574597904319773523727506149841838199324020700451742157610227902779638026425577874451997070239434021479101452890895338792458890229135455284455342904001961619369709716357554700393956522674530761988948360958396814123759321679343955190242035864105834813826138754363162781021605796666883727947649444371293165308299260727898608972223430468670134346834129523771278811134289966829251243261305316141323744377618850792192148212863978785288841550383829186754812859725892521882025549722821802351159636880480717505671237410496524232714690898662968261695504175368831289913396044816870502217774530997096418680798790888382514715218703668604780352612679623387411921324213549766361267712392448309977856982583936252211364049994861191576577306277424633182330397389768168005908403166008814415397826586662434489288153545196083704111991991936686412472047503233731284006980482719074214613884709087396370179192495607516823632588104421633793320186465755604110590245029156932201633468168107159916729723051574664870606179286759516992259587000173640081612017283819872965176727067751676776272806895515618081327066795792191892841621725642980834040932371789237628158238242276652014211213966367291327669441898707304923228172158170346501933950307261043551225750799572337553298282532804137933906976762307089723970557655241253422842105124204669492657812725780855240416560484010726103585007379481605310372209639821214531275712531245884914588452312803496585185753009867135112888722218496413617839401035663080819778393397313728001346062734396147821083277735721908524311794689091455086223574962487499081280673683332905204636843611660508556390510192634906750012664437407087319750240712944563673892395054225663823353605090714372140548544240794321448527413300592463434260882672405229727129286442682528374356013529601558355740784289368666151840395205788305754053469675501211849236878460805478619748382118029646387296237769795037700480761554578873539304500721391043408411098535231891810895926485003183068921393271873110727781255855492138295220395923696493434280028651273312493265269754467490705095662939290877971270730714335630783227893279177238003614141901818759558233252118892511672191275903657615023525998954812398628223253425266433589204639151598229320928119592954234586218324321567514472576431067446230052813992533331325179568548518233950653803080259578926305098532011845573514622228134982863594304650754505160499056655567458679223845908841047582255305328602404515289033359220160337431199955327708083827369245558418514447134288983789205085927066326405844083893374724633437690346691632541533001922996002317223557091999075139314382883175448921663124574630487988841556074607392545053312423445128220810159079331592523929507958314161442810420426816186764992363483342775618954681993464076019946547304491221425240536862013739067116165197485491967658238385872358818837753746378369767695770943371392053229560427911190260788851299534491637944187811896306896945813546293434126463895837125947761889760143820679515685939057264990568364256557041704410971268825924405450859874042337503813717352639842590731925389294496871970412885882345049544210374196728405428676084467515677100924230819501680017784402666564949065212693450035350470306080285015306914923864201085780725947108364405620626402837015747446531790965397257205115721058659464487213353358726016517940735761868422683892080859905750728051686181340432899132056614953411455160688122705698331571795489383043691670615166278100563671186070405750892852497007320577735654022890231282730892597887571033957007585160041755101451104816674535128063494312654715911201995331514387128781037891962157052705220771637187993486553407305333482622423640220885859776001672036146693155440406252871789039278736239910665154457555904162064105695133229587965143796385429198201400717858799930664809771082521168183894727961860361591638606107799027511781375123730107446748411294962301286892896776206482577533186353994633500367576354736199039766173689895236185993731125720150841379707989184111321880799465686725234438057585417508909674532986441746305749110793758521333034247383457730387944082072167191837207530146037128424007015582980271121708685412270507527137801688557026961655295527168061048797915272060779946732858541696631324469949928746367874668614303824437573086020066777611182087586288395918269462848770671733349277323093722660811256231152045242681034760750405113436351689456676601749843672757642254721189118001101139492169268234453039022821599716360491350096721696564981261667956838968258089206123439291441106990690167874214903673429664701287880195142670696324071034465067607626523059908034271380218126091540465958225865293581848404878304509088223452671108318240096649211931871211152789355626027159372258925047737276424462502495551089371208073941747284626990158615496254470936441970536329328314828189078554020858509954604068063519749308296398904699576595903876976208910983210424041443403438717668040207500026681998904138785679577039218412816417065070024044298926365705282901600707534585425510998266242927952120593948694420436813644356461493423300096107816451330923386630518614400622605988178315070273921787465188887982787305292086505399863828369196980937140346802844836485858203074033767341972539399605027587198141367421408242670984245782309542180854569243315513639140784246534781539429793886245711634291411742709750079991240767266195458215428235076544198950998895040617478658701058006511269350380351112861479616689609272475500563085340425299403457187320610178835123156439827920427652293412079209463902174345687213388565646749183163859357313042623760458043443449452015030964735281436490514732096224661367494858361854939884055314807517159371969211906256400211817416358292429835306400782257601632639531747368804326102298459382297117877472184474775108569221232097869374789326657671298182081812141258897020441743920944418373943329860493687348658349880976458343305265188775779013740607930005571207953374849531406819013965481487798051501280187028225500631573902682523847886108059953488124734172456817600433915929524805684176139766771935941691895466059435485901778817733498976286313170686404316996154384008537345773295571203311969101707718115960137327843152474422389990078768248984669001387017069190331256924430423652519319499186802310567421027608771686821914386945440763946484318291999565645245899207059044172100221403683091373113563517836601902633395476661091651403661348950298274281143987297587613098343281531869781311881296911594608688178770431140364801190086557241248187365088599656257207849282098986441378842921170648143823532064960576852448412971858999846573282503596794450274763596280401596134153928518288123095718038691714145828399960547573341711875207285303510061351487306969428618157148068454338092220629334343192423354008553707163494892649358229689486537797445880517366395085690785602936027924100501002620387910323583825585829369752972277682634632054226855027706038572849507930218857920880119136956257692069938058412691706743576062762354993225911179800364147734378667005361556572697575922880988138320699999297188285676420614584805522697682778101297577058137138646202661822521691652642191531416537319338788282974326331411346102987754097834725451922980820991567666791473394859924726010088473453247689734350938857210810641620591058798999559226817777371387895133383129712141529620295758523373058880988331808852721358796539786998825465498845357051790800895933324655135215298154275413231690312134223784674658167446714243328229826168216573549824104854911206013244861152053891213043282590397365449619205932472675474640022103829076764081060641941502416646303802389311855584574286931683733311132669246230825775681250157054229147765825317043615169970499844338743999585065021542293132233308533325726947107655256781843431832920631344989101915688259261847462626747952386805902750477036070013817169408993036828517105268960578468548774991158515229841226048494914250547975721496842537860546462928988435475297675889415888481264415490480876641358440516158860257375713798671253900184081746180283015273222702609395230911989099554380497816532646391778032259891009437078180186590156295052692959337141280523971572005886768229552908786148742384900308825131791866761451278353734779947394118082924810311548530585513058489351625399879241847424641141654391005662103228652661419056321621182734192351173794825814850683848248865306343272003882696446934654709800875527608829254660932313541286082097983109620058084225965370086502780648719594121543952064764873867812654559349030745692434000387242338081174305324318023505610284379064889748015608256088706945923067289391334163682400756485359615873930121765503946945128387294883384725754285898734517402756804617392102800597491565709184981482203244848451965295702211866259095567110736280597494174816295430122429341248291762034649811240032486518573042301394636428643533706365056611003820971423091720069718413807796803781842138701097469317157444330554677241962619038709828887908717765558065908091271268247834065356049834055536725903249505938429752177192022381013947318134002390641794526395530078799456777651191813634319744514599389471776417811510033418660060274575331237335189149264176207086634637977381413497412255727964850341333622400989433489360522816631608772597055026098875166159427109155573087828593930258395362858646150150712075706616589571999516774582104019583307662958359488230160211673110840922469239679322623908590931283247513211359610081724930649552050954213121143070320024510507528674051729943631675053822669106060973049795356706171666142899858374216239505245438201575185945337368714865007407597927567216754088794749548082041804508558622718292854570619754800136802440318540820997941510084094912451721450279431974306103394202357946188238375535727719740088397433996036255410936874389946093083587159158759739775209953080395444296484261198041687288236024275002184018473129326213480044442956516756654343904488093189548004097332783070074227229356957852286327211524840179706808925736952745780138314979347091272126089492660730208502398870968411122675756799507989090919345681691918682713046197807732743782460274435874299179972293109695406264288802675527296782246059582569985324513802646393701492500520837130395772530407427166117029346367479235144863840274289719205357819635433649736998801959231054246291594101458439793722173009643046302000370592512321340989353319758932153287700778807435799193273699936617955583649886751643414015060442806356890681084904202035835495589362730963696494463730852512575894278871348558687772929912073094358191598448018298870870624250066406510253327751086698633260662575323419854197119740104532504624114000735713331229009854760992152833566973507701645769428875746959194394590534072369111124868129577135119763966800556302881252397441022822407074976611770449350998711836296887925381816148743454679677432546760754115776147466050659273851227211109463830296982366659976381483022157026052529116160854026970565696599643458086772261290547445975234236212053633842879890532388872644448918997164753641594406386777139218873020802660079614756950965746744529105853891693360948128857090441902433341533436313113600719118143786570888510788324225760154537413694006295522363601218463195645381395585184081163521531569857261664647508617154537348770071453970666259677274073909183461571242486542449139261420928535125316437493867290153382139656032135342810157005007440577641497114798010878600326019881945895127141768877869276335103272023418942582616292129704875417627885095232755739813270100809673146162469426217604615805957956331123220130172488100254816745155524326759272235705484701223135203385104268773211278562806508106735643342688885010997961340662470018437891944844855771087830844554516876210949849039593028783729195804947128641658885012517950440738750102477043211450041678902986866514578405143032573675764544549302888844745856366842399535870105835442999023709075044102200316137455125909995876062186466482317731024336133269774046937494505580619132281623256776011343599722427346021046056089124937345677556292040312812539431489914374155235042109038875284631942090686960690388794465759538226533506325005510082305137118139683455591207271347287572371977955363989505734881765052565149996890132013798692866479569056562069143317412880978060107018660546397433977625750900162078752347047379002416764961087466326228924359229941487941666279850924014552409274560491107875816130911128288783653532706342972252399073397275178374065874675349544118667020995389166029338722169286586422294760551222884956108108848070472776009446612159099489106729659560556503615845247815482194102860960415884942078615807705776118034644869193854088450096150014869494491126219361331571090159864834816001079995555337106858156985024443844531205600487311940824403976153427428008539173625711650536407226094364674275393897872958366102432248035295617327378206880481766476047185559114289756305476953275055262276928496021538058136811203455100771625107118634296790311920259134378162197330055982641488343334084135927926313155397755868645253448487422313494734129987865698361860696929735854783300823595478370372725758981509711390962000235672798891009756917431717460664833955570538000578483401712232489643258073593181106311510793535101298375967713451477195477826199650606911264534588872776311452751701875213678615335837433588299034282681268973618732825009755536791819694727795013920784982071402783365006767359844585246911478505282859697414904063948444599840037057190409607063367584781001775308841243432371940933516201661453363344230007350740942766149380019548677194135999313380522341167665469959636781292208311237387517352047609455758796997602851119251932817656349650265687168703646642531084738342419220297460732646669290082388694159763619986329600658087969934106404216872061634641321450066563539278311466569001600638833943647008995825589030015830729246290060602467888312539094329850383258538598015552265263357271602796828921506990564512178020210048625433603302874801819048796490297179803743445789479104902214401096492091278326318412126619680274426061275376556092270701289945014753430682418197660304567507344437491392913385250119490200663231117106982069475865095922309548584745773488144116581465816495188638517932706236004072019033302579808278404899001966770306500456910940050477626430741114776313153413215701070252529361730824500710223430729937388598211326005856441237017235282846388674652757778318828688806681397812857639889891169330489485315194931691543352231426744363924920121514484633091415282151321996135737519822815283801869317135087377305693470029369138351660438464139005149407808623587702769550403389911490780064806688111169226855790592780141967852402401102133389488247793476694069872205421314398856182215924913604380679091916598693758383590783109860658449598903270245950208481906766448732922795131084078331813406591537342749447027718170822469923991102776039825387119857586935516840945278463064912948364715631129769757166469989170856489846552043820476555552820667393377087251489918376518981207333979985788493361467760699743464640348162459486328274900900731074270736498447678834238986134684343249815647192477395947012334060491781289109605660743911771023534164004210646310999167928422172296103097973771386988047955089221542642462982068780112509166081966968695493451002098552033642747212464912302485203979166626960282665570164568437805474815457600292688009304894377393876279465922554211595891694829517520153961601400283730275880803302075922885366947006145666352159998901667408974536579112000449312471113754025648749538087399063551634281744487037908933041163019169594824111973898835344317051706402059826806825280792886850025104792870421658708437682270063553472197401652445370687142623715999617062516639451386290274282120511993535755590360824398015907474024877942985433463860370900684516220782612909963022110958636150360293715792302204909105132323746697832576299677088337258275474714822534665985817307889969506392662988068554738479194553370070429422780650772743803113193783149427202744828340450819329933931890793643951939598985722682253977924266363030175727437813552370168510771675264436337487152341721235320080554933190802175971064405575608232574278987008941167449912166887424231313950171163985620286499730530564548358970146634728959577107726817778716856575402490207173635132559731192164053908155015829150233515681940436123078018224043241461656577656275792244445460128344162661974629956070484104879305251935274651186668026961844777131631581572811374031129607919837191371026505200842900708470800744285839396010977119455922708039712014187045969332349335471846776389284057726319315033173683644114345772019177796528905085103060700247591226040811164425203313833084725514875405036309630176949168835399229112449639906815377184719646564367304086994459592728326311550232535981606121313476867839179405611109910643184472159717908543089871429541116562730332569943511288456077547570595023197900244987304323817399919671292776054253954601566625726253495907851782328482319081787611936400804494982508061082741587887844194840899754967637251316630515638457127567596277592552902588120861098149818664008170662480363738413303171385523723221891376075332932136757746653406391112725829056585171153112717456109161756590115676835497177475568591588576430556065612434868208558431719887535213252994080042426573175434157651265655475325262352736167730305326906649116891295747188394068639188251330266422268275650075317940027784307264656409004420115913722208560651954749406867007132319440987029589220367828136036943619463612559871111145897447745250675960790966931822975284091947540490870655034019968387471495406291862843974920920669808930291980547854526706311403064042467480392836844015547088611548346446750380618375574646457729783389997919879845425620987630232639923449575084124835250785206460999075350423690077832866002563205864326584833651344876899416305906851954052128351924264480507148046033554402288083486189282830108336805156462049099181627169267113726955272950125705572687325175191241643331116002698879881270605446276182566261897325731179930690348669565846006315831397527567414086331382105947187537631346536274157287673769119659883018454397417532084103879504353290580901480718911793924959294997774222651951780332414308274167801251019794410037396679747905148419284552073101204170375134911910519206270075059415693026470804590692662827378074605975686500832268150306445196897481913834984311466434335394982760144765389883386826101633159974445391085888084083133712559503745241446580425122036843191849135102866092243276505795340101757890918048020112022088391830731921613881802721525982521398480288723518863532059198964845679818909688595381629914930291890147693963697032982736198667085481473695777894208150365720351268102720646122943644178750226374153249794212286425207683946640615525785753991031602822570810490482958077393930091781674890439584948973716275057387723752885998188273184972363541810368611568407464979915005827294886973845571557539167038181162040432223437886362284938350659207747761811052499067660152219545198546669698808017046316309387422625051416482593983879380871981621591210224896793364883394870617824922700451500026956024124677304006624081695090416155686824140514591724302767253089235429476567904660891162652358826643332961544711772006086411578695766175734614693418695609620424470528199307121986789103242128525169855444950210633830821128402815982299608453859071294000293939182661124805539009402832587053554967715631944419349397369085953026682182525737746879703947164034638106366040427025393418055287334795656607682481364913599110950032669875183182530622943920711201770948923230720739996010980738831411901902161488934719867671480229187544382268608091323308171978392991403960273760010634686483707836241361466432660415738788697531618078208197375290470791401155592442655711211438293261533434413267975513780230325559527826422335564940918871606751058325226858886684064026062517726783545192074015419619805766461220258882133297728335807185346127060295046901906029066021043930464385501843037928947024079169734537968485694944251474883329770628851758870488046855779862664410831356649538719255906608630321553260953577320108233883054410939282702940718972768105668130705549668163056060782970627081545901917592160778017201009459166700415085579005677750809095346497079250777410098755969899976635955752477584736512965108336436404453776967876122964312008975301107602590323913209741573856670831958597659254742444652088822917740072326216236263306137302672887718877822251088102527904647189294211069663600950573927335333769043211646672175640680715754855462261647465139820978818494793005084363978721482579493037171867286288243189651403098579453867338247958374361419219301278323299055659092738961040479576769762148045384513723078423784070044636900979689064741296925251551967773388031219981239154914508810471606768751140320219319580261879008711812034394247904578678963909119256374521139768847992111265023567424722134536667185218658718654371069316492747528037367934652631377849718693046254713867687922328810475509336717429692414881761642869444588248008657489438050106724886585023344261631316590677600665239585367663753641144023135795576809929592992031431487894104523513074445231737805932696057980957227040273509460239319093446744898846459243538885098584249209371849425533804268739008533051293648903513544205222301416549572753641788475957046978795885811668179103486038239783222789037803922439618412947248794758977730552327710625368075356040407216418840187784455326136309400344166711466461825199547811625216386527972174930129664021963874823858406830156481920874556245893563054246268396004314973504037687548407954222676873397719700513477230653766907162792506136341383046381516912309410795845208422078656597219304420433773407502330930754893298291227105249341919464367280044629624081976528008335414220741380958829334250807061591346437143767846265050836851735543349201609755464704526441297069326136038593559830188513904192308434158389845970081659727216401338490403495209519746133745701736269929572553706141447860949556776108069886582116381459746495736886668175664178888793753910037580758377193698484716919187471443055216704213306006565072557288537429276627897412216863445666978242890406119626126885647962825505452385032732820370373895270720412820804043537596747368915474253422178068392063062963802697365610728046081564621939130559569478815641099059312212740900291784379583134170920650054754530637504191862212201911523509957809199473635863994409580192920725991751423405153173583995504643362041669447923187994761508310157219959981893672792104793752966010586167475923868641037668968974031916862478054600460021270502544235464894843816936849950187171692934256536521296560671237479624301660148884332236752780685131964501521080178116249699805596094212088534473278423256328021377462212727218193098503193407035640644972271899724926341253556726823768316410155153071263752919975983804046276289588656661754520520948527572766622343909509108505186143593919764701951115965434020756817125977580925907304897912998755428405071519197773361192666480736001929610529841295488380585242923201407256279096102036092703427834164677520682653974212172008767752474161153809654704212564312285302480594943550201688301440745911888062224644264263920813347518587154311467566063301920009310235164080100048412133848516251713148582027228969871721239696669467286380285710144882151625463795609430536144043294115145098137371687859958602096447307693719138421302132151355101124988316162624808495747299382628902621459708522267862957750112010532464976355258630407121693495599435668054826200147101641938016422079822744951631351836906618576432371832540907220431920501664958133010925312309429201711035939850130763276077430503891274821667198345219730171899388484873473911199142846187345827991634127305754450301458853836192436553541143054281485446143338330861565956743308141282081380594231429119996467730783563590115295693154199169146726682873011421180174573817501361804393740450445986238683107082598650438924058614755017874675785865163894035631984291233047324608679256182220305795233127701592197138459866907758245950013915578271348251664214049592508177806989686614115213527233346433741351881007606865204088234961735324131326428586292589602709199976011675833690297235992674262641003385381432235240452405686733401079290025162374292527550515105337876032496933922701118560321637636251201297509935575502345145312511212255440312930251663144887418015518695442672568858823761815564918312573860252279300220780800439684801488316875764809424371314233503776104103435943102819055226610728348528734633463420862412354489226305461611785209963700817590453319413924071144776138617928866703552472938038142067444402933922537293556812950608017894950219462301195507996059544869205737399189375028641482185794479374231781104269120727771052920472725276348833102637140786323055734855252023113856230024662540312776003638608029993820146147869136703723407846152604607950447534478212309559430137138038431848713404033414230800891509282268434720460260690614872410532445367566814840595248151499400120288142060882580552789144139595143330971359225737455715072898841615641663905261271152847125829216831044186740222173131618688494592494514376145162733078993377567509705309354025892703060601527766192473824139033422584982126645428125581182109193861413817188510068416400788652688048345441711736591412436127917810042068280148760985276259064173181175642366860095766771097894628439697337786870598640455972474346623119336833404115470656788691677518152048494580497370015371224540103588334319767406124297398439057787540847809682153248414364602196813945105831942254046467763944285313511597286302259493130180133979921788509132303060604426431846765125222005431169975789554389334794664103931977650145200891690620542874139357132345388464355361674694141437853922186608165648947178085882066094541083165110436279195124332528827492386902974296619960350880607392910564022375698984021012977185273845427572321387413940936116491891615809856300675160223683160484089329581093562614367850334347253859017268757426454703961450043589171702627738276950287594024140099434604477746882764380993406455438610816956607687615637844408396808308837009922266640642169557522669692183659279500678550666090368855885973981325928662271684437791569285578256435448966513921247264369097581990431819323201708660008574445406630407980609846152991291115207493453566605881031620648408445584449401961417229273056697083613901481941260905296810264171135810021921122958973210567461948656416156434990908873864391043200223763345812694306997772694594623168569030134241123384801675750513596350033709189666276524119855648331896616727571963169169204389376220174614055857163698618672687494051437950979869788178556743641087362982748833029928182904912777867563539303866995250379524392416701267282443040320022174370568263714488446325591703437132498393864416578201756546478758068047199283855703021408734800775968612157605007124213809737554741372735416749157530887364236599034858259426655981050698909376154523436635596049352982563715729316922403579157642906175673077224647231105137543279857357606932173649502191877272148848822915536744039488054047774023421990372008095455108078550412465416562104441870052975386807087324548682602168058417189116974405262407516094888458152040383165926621940414967362864409515300823431695140063493496803086285479594609404672483775274078888279374962170632365048521961082851183626295480213868550932373172129525032902887307671285895562977586814380109537575785222081354492359120252410804588576837090511302211852607441103875660098701945491566534034492839027844122309764530979056938752332718904998196687559348781826571101539828619260776745795312678084739520491387744715860147186069408556207374381059952416937401484158012073322564734563228209993367263900172744422649953498206828612998237653790836117790178089752177939420226662190364186118010511762657291308003074212718141328522131998534115276838583323778369966910263514661523611971959805204665870801110362914511920765473216863823635365998691183550760080907387106179827534845603659652614213917329384434657189117917359705612952484795699593514650265249334107611533907539760319436345410986000162216036686808436672286687866020138155206226978114697330985784976486223789830790810993242047796218876046752093721254670294674416282628872682980987975085902233122395428369478197319292047672426509485336888720960720347695144057380096209332303422906844089879239824367811463967231427986079114157925071929693842918496496673243428746818152042301714743134127461359230809792040197095717328818050177373234044850377497597148893980050721041445280648164457872050740719105661737777269487496204377267489762860404720883974461493952736626602762020375198581406455315612722147882690569050471996649513491925020328724681611704256347772423991448786502801991472668200141598639903791488855861336848850349718029138543967919650791571201950145571617900679657498994397677302253070233592407800209196913460925398578527493195793159537949131925166009812759945489577246818113494406477345286362399785469635847816128532753187133694852263975071167286852131816741890768095074153164620473258527062036097896197757610005964924056823588952519061096249928840118965487457004584018926697430728575936915187876687739636889763427343257043975856410467857961447576423722285446365748040217596255168702831497473188039328026402009315144118210202879748749112963601227477247275651657815601791051125255878065212090517784216185626625399955789232234216916918614967782947841555405178614754416902559453596861490690706945109633984370428677702683594539857637668213088624130797648656934948369445350794737744489172633608627549886297959592923078152621848320526054328048221498410560403970330350825594690592110553655406277792381615390115565730505985808432514151071729061990313524983695100249385529127148601210198917539383812021526320046992897147529298240547471459784247708546266792739335118932148820880470748392740599875060560676274922423370125465643500373642515796451711348344879950646156969880516926663083635017431944190433405351583206317280023935550376211504725259039399374183488321453670177871376158378828121797810142512945111454405246547348386608365554850936179800748646873624900289691793955745167222032969060760452014185747971846380441710066036838156183431653904295270714211210462217444765977864916386615240715262890055987533635380229269561685677583035283643231116190387567550537542458195317016774030889580178400047009568687413886589876871460956186804427215578809377028567880423242210380686899233723752229800639499393981101819074034802329684014035474120111997887966691413626046770003217888484425182612857265695052877944884626531441308714235565043582075019438771692785311292122473206032013225017310393767154296198760262858017171466753227120306139075631398395981575672632243787468523214994251243152955516833020586314913378482000646915995393738657236497962993953361419925631007351106940540249902768613895490059177467610778985951888956512765737051257461325426592336483804602208805661853022982807708000843496898409510252101432032985253092827363502495913398454129117499956081928852710209109771533529335698028844415594439430874437182596723233683534503766507098035440266213047361823788873237121947668597056664603578102296219977739369117669452023476044589413518419478562965166098781183876188922527661089261147027434372242796403111896857185493272154546512104531288393730305189255459451686155084934394281607971801072075352076628361928617754244203042745853019683907736967548747111823807062353862632384636740801751231067264840137595073101401775145045631961033584054387785866963408187032287536492661552064688776473506472631505462849058828154095365394390118095754446921293194646662262291988660528074820713469147913508627500312065087282464710653375590489294602505618977728300574389639238919014482596749231249358028099759983759377524585380030773526036457826532123690650723181617289312891102222847333660443024155266900522915055093604949332382713597936406751169767762632434815312426588982153684287379801156788216509187737779240513535861785902340211780065451254791882159244405512934118720174098727919285237775206514050014614748556613024412651511975110459342132193684998701489351918287531942428954511627248916501474388818120178979180032485648057699319986390669996476117652369579300349174122138643376954326212664942696513460791804654791119283390342111948938811914470800715637939137881734896536415182688500111004281271960318610108182151283195219216998696320390180535540740626705773407823702238148587998410302256084817279177229239784578893460452857254654468624920271775979556352916067953616485717910724904915076873011977016307694585265333183004932108774356404500605242461727209011810081140309718579150352700167502695058854903666784446437264287894430679355403460247674853182560335852186923974912293582799708163678833078177435662424358331997963621463806509052768762105814463603370101200938715927856475129452190951150353516628032089942668474918171177787239164126683992920527393532445125796644566110442952609787999600835721764196069379865439621663064768260129561496587315905374120460051997843404132446591453499306832104606605520073165639972660254089356512669051539530108372526091741935465271588123762677414475721007422846543811618052346849618084672269906420741016292462483473584426807237589247187737073914485034805332075857038400793363586992001616434321922915364825110769702446954044382326373036986717376994391399392954273766116800647107178659707615019703076458659792629012087343076689465892030595429232656853493807276500002605761060209978705792851422673729646991975139071267566458424677509343602383883577499572748653134234512721707926209807574337162834265069578602773641561328719895873345665583406894656692652827588272272955798414442972240158383353995993681010979620133916695416184690661660427428600744298579922905550719769364583098222660494704069123845350910646610628467946167415918812569003734680832660732742027340284864452624939180127030453032091307649040055456636844596109507574072931317285939523793213761019059662600920596909665796449265078902196306514349267028814963129007334112229210942944293885525628487070045609734198849606805578533471785078779923920638398006000179097889112189887707057957929920543441276817668997087284391100343511860003520823158796337804660308773764103928287697973105962017518912878354894196944934600635983073780115083270843135853793517795257378052989185339980607618314569486083781236124635318919255734259937653076587507135194726364636336256859700255315600344594968515925288869296289637707850567891736705219781151262251425716657625700512890631009043263943650970371912840647408891418166217984555293090931629615429483770260920087415745709042810502736613055691862928439571200123783301030684942296742528407539512526666242037898548743486909302780879949467562796115620557370328133811210307738207959702426277191787618441986331499203905887143782942128484155025529955329625753445245916370651859606655018449573287966774765905719772940382045197347372315796723778393219366490949530770110762196488849942981611952147550341067651384415287399430489752998653497343276180609106215282950942622998056584014780947381491373953519028996415981277214607642115858125415210853407591768804559029291971874822831617450026812106742897698535636913185617233131808259866405770719200377292902992158302140712426818490547702377553790487910183561943493791107389102058806793750850130271321606208046024293088693828827996644828680991990371513797075669032942957282887518179118333579107442567709987798629124587297878185338919624904053611471612476173403381345394732415050116302732677832965436991934108136480098325659633120855885493277769069695238330330733483011058171339832183855657094917110227984392635579087906068141669619574515225366303336096098141190145027684515983018206591091196065166771082671328619412589961714570838727576536709437302905233036347093226946907762870766221130083459885817785921928649746987662798717556372796194901736066982731186410762160384484112205699180923721642879710561849134076270127893795862762301628430320602442591513303435850354167509476668618856221162724531985214332783997673402657544020862971046284974255365418010664797255858474074613562529705281000820323921829652385916554961851983061257055847744268763294588939806157018730657503029584920192655326643202523201097909622859687926172658558991849797821689613781666424820971728883865000593558874271955713355032974921834318619168017853882905718125497876451305217783316542858447417948461268502534648502672089423766013366421884715077493334040812232546468931482441084338980740871170963538164233270545388925936873178525539539866839246764813016226668633346179699253313305743442585272275559212228551218811159662259140161998207500850943845949821933428794420940449116011488382660590502388030582780006118617972602240267225327443495222106302986379658751168186292777091475752250342125877748720492251001965025620815238152855040827396146453342582173269566238435409198697958014813785310822638620231957104409028810729184147603646581919854879105226266884387627434259021135632553305183278363638488739416310521148461214568154412917062193781357202601660898519869068379810997277097845824091743565009685165533757280453916145993739223923825134827926984877993989408365245602742962500514077583244798460509329045995408961578868055574208527922687981519282683998619659448584418553870690730854796584093633238449459692077700798256051181031526846838105091671007585120881238642059907792569347886722733732330821977478398236613912577429315036521416234471432570204021214290618972083569859289806035562039619488699402504755271730755531243045512187716110482083809714301579661843961663322173531930921165729239102300855480156258527039557092223778879666299399736351128396527990651004467535354741537294794731343854627131718139989223583512571753531045099310475999578590592586984861245291291636568384861830510793500746912080949845562956823564270882328105423626139255780647532058599794957573619593392961896679377470077306569072409258863515479051445683210068936877651866283982451353983334457293188905441750059412411900698854599673699588306939763242097206930325546680429305564638720797038579079034098797910862490122452983323209112883977512633483751180646045148480127899502027558707868001216787358021833001766799100959719815654435363718599471162030535640696503324423761618980014837580224320642654668711374770801706653374028234426497718708033799892192095296482293373406675510535708916237462837190671112473257529586365841773500967106800792517948829771837942532786684459223690315059115925927221838118732265944739868660854836190495056786041708416166195408458963444976491717707955514899894438650671064588170544660171009192265645930569938722248164301893862350116444305213239633068733795924061790023936497857995786615446676452585118858737245131842394113461170540053719932993259843990258932770468379171899707068088263761820496439282817246457419801890485249973744701601416567410810371517102913691366353248406025839508923590902283874689030235033291376322615892806176282653094295244445619953786872723400092521485157615415163495747725656083160102657841067699491733251188038256125400932996896627412053072381926606514575357153921534072247610630632756389831312109810448517303551173954784516659492487688508105360702509083917531733452622763177261108304190257202597603019640919495054269900734654372580475693716140467851675484646877515881008607813145105138478569523514155063130093401435967464516019601507458580625235042020828418719390382942745066509992719386675024590734756159344427640909309741256591542066365003366773785400786522630711792906024666922788051524146083700693480343725066696755645583257220824809686463973393297815285294601276954481504884319379375042496844093301878108552835846893107432583148675812810612140973492661582990097617472001802092846255197925988024703678720078603103935583586204420393554295311998698257109607087267454620942707985273281541372912852009122598355618630123235786789034993109231834983272914905509063617370628056036337321213227962623298278665554621106417329949811909503519915618688636690414397874537002032191801812022216403683735157128565308522500446589912647090926584651887148107079222495214623270960734457934654377896677656688592168516234686988127971344009586868575963336631742747405105532900778337395452787541740233388232756936982268683212156591475706626036940238082834820833160205578462521517339364697612862606042844379365048856822054841673509332938130107620937001848666832845457319185277330425817974187665519022226483075620996305222520858859374082412161911805991213314728052332539595716938167488826681758882424019863037475555550997626433375470825533525398612234259281595481459083507351779631340397623527815292028859715388005390282162917294606662983774088467376396472115218851684478636435670130279051993843953171606389174271360937821521630617476095634866961153468804404623938572613108991542131912281717340132071059079985389337167794567147969220327948258961617430350288206026205736499460233246801491936111120521335298299058856109809078809179833426155180436371811150188388107313444183076942815652718798859015278136324795009356303378169334273946367264734979073098476579312831829297365981620906250317349869824272545554053542467274160136155371496911681908529536419021228301970687417270035916537977163986176403650878194265861603143747148993529813516220805223052121248842304824786673005187339466503027841294559874670215335651288867204395973275811472263499125774898536529198274516591502658861122481335190727792538729310441418160220221105280730146803844442456551753268264941467884337869548607838149121038420706814174281749008156765508268720942310708745745521064658660733206540684971340344443333753029674378407929136648484644222730369230839938178534381739120873867632734293991022396167027490004224847900663066416139591913350684074566071478402848501262072327710871766160926338562842931823413681011415214188580238110831968866589383027797809760970493107043896267081683186944270743257268699284957495604917972912479735106626701910080692453976738486758387734503366077455921008978456794776164558450201210338704193690192691732525300671850616763514721743261530497470074088161609172691025291703631503070497263389684235347874758001076560605112997245981220827451847184616569161424370722083835520616405791277770088077353199792861723649479742641208602784857584690518734219613747857102345335181067768105109354864118397652016584939275608210221478193581270923470740511709342421402958088270258818299608708973757081776963864259320904595460229463310835521369071850065371604994206426797050312404743066740907320600154498372647195162805965652821150028865820350253878086174375435979203269421932731445354790237588600366903527571163656976067099087138614030086419458939849061967924973031075169058799631634611269878233157719210066819740049478238958946625006527215613337178878542763833025242209501256404135502044307841929472814178095299702577627754108794384960397860932142682155306341845347262091493833444121159469018083404482698629091565757959029537673734309634725569717133731002177829377895781694053183533173387899179860177842799958058589361757842973934396684228020531120930079436838927596906632668148586076306024883563669553189538031589364726493050372306819718783909812882368928739178989562279761801430924194002837459625721377813787567788381786898649262134089958181428752792439090247167827567868287946540705369822381533861683188299723873841425585900617792632276520840086911289549068199874388493629088139063632007102726180681547117809102828878528444635792230502485638548349396553705653313212787577643743567283365125357801108858267224378270905475930615086162653983158643897726443769548970018763736547852476139549628758247772343324384333518070651189042894823075835832602416336478567105468259985247425657213360753100516683070980129653133048530640658288865236938383039848352895577822412982330946094847843312701369951660453169484719727968379380885673720433839367077321997359473740505552960837758097780243478680265054302515710107205345308449532927249698825901678973331858622565385202423956934207122959913703507234969294497965713622081829435106181931890277406093769749402706737290866982604832428960751843799804506927917446532531075847668311743528686923245333982226302365171196814123091884123246745838649472035097058880964308151441825521957104132170255299147854695734379003605592142396163618518519847564115175807836860476073687887144210189237015373553036740584197744543815090673788759768709556898703052257011956698902880594128169995126534314445770411382506963875783592095776558325987736117531926297693146986175826034325275397433842990845843605090469780159861470036161690198171675293913038817873440379239066714901396424975150667045131388624364374912744657469437378829291853982385704626688469301333757813468009106018475998429511154833993232488323414458735713936695233162887726301216183712811448672609694228667256116231652283052281323657827703297891971090715032741096938526155452708645623670051156399258727709752453839120674671622363249347396470701261493238761601830675052140172657096968236630879079004855194713471684077502370685927368967582654178069047034317718952645403327952972048647833731264062277515307843043385870823161421746945195875881544525159624112307938456340547833081282872111039534745695579110497235667289132230833750320350967880920506741322216320356310658129144999901390622678424045111238007285423361325567538932847069038485805259646671267132808067280096854910690927009976377516558331519305528650249784653519816795514919296787565653891120800166206179827775278972968796734287720013863024691447257259880174450110958740569738187345398852512642790559806763137362261832311377862758714727137180060638951452664483068766992623573876234589926376027018660641611160910416807102524322827634471708582826835440450246850416845154262698036534162151068643580660859624827649368924103305793933631354318467014907655653385525097221791171444535477645500317347916908148278717908177697346920195635756086310115502435941713910170766298497743481202945899348407826007823870963673426856897174485842655570855662477560162368837313796007137269994036682800957514078647818298672412759630908898642811495073225662043698634137441947454763781607214137648309534102178932138687350785106437491371119721187302739625659222744856876518693129362370564954305223166433520896029937239758452212155405449400734185877047325845381861248633184253317783832322221880478409242462039381178904141824180075490687624902251186136514058563096746901222812027861527101513917608897701942225040203994486049183391976176630954864306380998281935948598002797928188470221247717759342131152528053650016219807250745043156561592970777191363748184861494852447170022723337519988774555911190549182412607174063703519632210909783909463612799313351787692421871349879985752591310933913656506222329484383748885686007844291660370981788404084102679757896764610570375064544519476634650574834603525888591421100584739796512091845798398504090016866512015397368977512396873279888627800237923047858878701680652888036192345593369674010458797219091351468418397902598031871578889792223106919539316480092478401245894242862637820017474449035377898776447236137898436916253324500162150544511956628102366913017841675704830093355196602872818077850686250541262904840942116933244656050408583526550191935958678400547663829811789667600434946027227680968733547892328632218474027397871851030264337589730965881665264156019318612837015676243054780996540481937343766491870850852447942024695022364857822760009727059142487253463650756891485679940465636032145773839770508871883084212832203081362238157298747791702514345655250913882347153205558014269567832176783550762404569347715660035864175492544121748789623558343267184517373583426150193859802972338159386274851934858444129622470872884547314022540211328562811422637044984355623331858057137578587705630207377109014128627851265241551866732111107888011986716763574673371701970674631718218851100542873795305737513581986095087072998767298265167194276093464825600015947040871549812665744767706888204800584402355420783010701750414387292485401893269210158432221885154179800390618289430043741372790869686052867730814596787645325433713721508639256291120490727419481845273873522720902314085320746481426856572806634141182974627361877499894823850572020938639468873592648164055117397485885824248027377167147674896894628642654968126784076623892035884407672895327625086184480212196636963300742261378049481361626958130573509322748797107386047434654221500572083015983173653707167369965981201078765704369747801111841577205657243130693041003656425646317161938055760644729032860569001193695882756885278005708643272777309193472867519189713275075040463200124127339892603745912623889953418148313236733549740622021862104615521939284023144934247075885286512334626152432963755633663739316070745746655815767008043142710780206207128754510262552483179300392345584686029695922149876775201537764365999744992016712832132352164715988857132948027756054675754672292538316776548499411914480131399865923560458369625918553302499206050867147925685177988600307979123976258650797754578902208687096442293479534436357021389191506118748995678113619973486711721601102028104711626606457457438130017241751567260706553979381198415733483065087301719040337243047874536978731901552401858334459115730962782021518868745446724512779070621982110590909285774559081064055133185817934231360875837624637076610462323159353921065942862030499001169747794892849771013631717848178845525477783368264864205130908459380957291427757536913622121259813552184110478970021039265779646777156387625591880925440852623527872732086206278192566399666904778005671635252933077007771201015389421085705862260337737522407324252201083885037569946252201831492024638147486570812490178172051607348879488791396756968053596571876306777985197383932006988611526547887094326952052584761450065414863824137642223008745594405130815545054093786565754113419711393220227901560258780328161823868853771580862611216420924121298737698423161371193603959341025201143236122902646321155260085155294993225978393173606317271281870897962992198824059857447405536092485254957843717245593040440019612195011563486870738310480314041564219856532884048907416870203334997824812473125474721470286385116518306177942088811417477348930709391144566177104912870422409971564388724472958569566874550147924529129419117120207764309747102031146187155383212374361088833566042288397725606409000905709004885520414901828462442160372218270656892756918045107767937535593297188785888565070385907996246362105310732410943123205114340903523388632979210459382547699234739816563153636592218195160487147781871025240088742617099424713914125399329286730250750237127738492417529949884068711791069035654319380529063126199927884388590682021612068163660977775299452046905545473394513772490007220742949375765659202245264486043055039813225140141026874460965145649566148015041221018739514019344464549909784893725295986574483478962899646105639584029138465558396610782176934923345375547836252073727611712396324655633402878596890076188430759618410938931884933504629320297655940702697840193343626934506731179392034225674784971954180184715929487955845787587006340570690519228006168036712463632580015607628276539771285813973130216707356389840439881259181140108399982564604590707134985114842150849599844347600694308379943951416145569723554056970343199281566697711260449660062467218855660709360250646435335394713688903467206848693280649676674881624377832815569627656700784859800473016184048320525414250189675128787369563330134222000053928799367062806223082290080418098575894260405315888633849597607483649105644872256291037283389672499160816589308866645494165925656624512849473638414275192174988495897749757438021994262853785710360494742247168355502997734465227310131823254077497677854638907520955064675587107699920550077267567915587775109746642751274974517989981980397188572147178619112293687958741570348509074684604058337423759265552135504305280461637551127061791076493635861976720376505520892664146729061852961436915861386005912528826293072383857842733391768063672508913695813526958672362571342939236457448153217010336342012744294302752372827872708426232670148865986371132325519097256528772741073905656734232942195535941834489039715721619419734715844859726697155235237474194746240450747670982368832909933205149382735796736743371291327824905077408500868714142068727710434970423495074903401148052434272372100005537041674815024939925609197888491941159617156973944118165660619328504643171683164391616953741157831369169822054558804016654510095153372632114237586331163145253374599567028666240013168298406476134100732212388875081527256935702487791311794032070293533145023445453319656094174440257024205881736015566073552139597543957839287720193611912939676144826565104418622870251674616769848486000949089548181863533388945482152365715864299023857002884732943305005951765720301839326765400557427966115578532676490141082685212138730771444719852120354059781256286526978496892077859970486071524380437162969135706071130777126714308245560630589407415479915362638208095608199340730577425828154103314912249793667402062326687617941710548051961304360467631407600524341776750479923959258661803160502158513142373849975202185566700603908512774639557395225521100325230866360737066475808026713007634403955762727231679689686766071396447354259559562461247868481753542603104764398567539838159142815157924062758999054909687980396525478481161825171568958073918391890189947641533691606114360302711906446568586271818969484824679330325213873653344591432805674697956127789492831894984772340796179180998227258890062223428773325414292969665231304593204181133063544566095414388895057766587710069851769962751616914351725644274265839456507027951846085544341834328199489978068644874202810028679796437160846015029152903537593280217301624781153796127888697091383726092250190655656300427974658255864532099048025071876870472467111086736386921725700179814244472766902663630317416742919555391231969355798354850399597134299390514818766785297645829736982059582189708931374233559676546181502587655132333584739368214883552235633927356936700153235471937297579964502468799803541920528955374169829379631252551387580026703028458217973779397598980491738721216102868872882454639506152007560223696134167903048726131961129199121713874153417222780592599578608708887452232019181641486033872037205575712792804421222577713696169236097688944626941023365152803050035966512965019303435125019719429937277000682747116190931049067842067714417789063990084830871878634897971035257759115970128816262278940768250247580737125014506428073705377202082612905864945213519315649560467744158929561200709894780894743853036460289928704883000547144885520150613096728350970489419616669169933091002126719211719001502560754554875893916804294699292476491029373227029558346737273596084677759700407846616621891152915367421108051098256744634320961707096671005673207581848949309227028152060243324567006325958130085466865824171837128801414579510324799431402977069387884907022331951759816550858893782038001210207822957965037914708165226994244585670762500478125397002080475383469213219580829515981579392689639639514080952522615947542085517093096004978119420438059043045264979193990016483799465903628375621337192079490739092530025826765358777997332893905062331061033886551522149378452095702277597236461364462846650043762557703076698053207861675697974400763218570393121059553164142526117366461955207909293524660304632326367022712650291012374054756998743814593735929520528360714253404525681966414770743657147626202129425253002814324982306730955436742650980448337004484707194448152506207064755536917800477002944343646140427430617415302025112224805852565449617199553432895385791677371784184494594437835467829994696410868598136446302709298634015190216713907499489672985061411023081238783160190519524692881694717006677778200221004223100604479430346157553118197514473879625074017085954634184041728114656123407964844044013438345539291559133315433529214751624764711264202607556492143853961909011462541481753222560713824080155817482312400582159029472958521374127269633868667527979891946751581983346012288093050645451761235042644319203670620660684771304553194269804130208637708558609016539752739017904646324280641217641760746587176531449391645004059898599934917137810938881050336202872123973939144775534243059569571075288724928063692041253918517385970038042530417230383926905602721457788108590277447018510943079398143950855370927200789035416864902362374403573779183611183066619394484193566752309201025071791036041097287887132554821612019753980145622964276490949815086189062057494740133946932166474406764312067749288316796657221879564685616618957635131089145128340621905221914423325162080378458275800046619325739645093514272410098221578459511308975767555572692808018086128515078192720892405429208786777936789662083355404333518632195041458859787418156170622233447852074489900053882861061674997954097092817004940414109458747216540123922503560218602494014393683971023929654072253777442337585734707333068322888083731352307513286472649673673244662276890527342646722036490044519238253365724939843950449020845144024065648607852649137031354901979838780066099449138718748136332805677493454505677233211746510747933501162600823785308268524885294061445798621579377197418724322262492420929607684082900908305434146338924769865550708816159773573092598750845277895126597872456958306631047656887142360879854065018069874894132960132597758221974937450785576752922453382624766585166230793609340286934955835677516733835168246882308764211206903935150222640462016325054357701020864277504947993290878734897177443854109719666373660001254463917182983753623200896971245071493465134290480423680741324970058316664606726268478925094797261059346282763937294880089473312629138528675758291996458318869603653013018306798558779864066363291662286446131912167171855832408785533617249410396551945391201318464596992545553549283395491364733895057449147728977164217427869122035004850658964157092056783247692076473385629284010371376343443196688484949349738487998481031014587912646120897767541946643246203785485626561842992919307522938656515012686599415512387064074110388330138680465050808196491439368362927095298995172295920370655354055957956253115303545596873911524026605833767374651117362217980901668533624552026318195798800262724168503638324275448082000763035492893653183382562861134392132716010922743625924331926045536968557370921257478968004844787351059264199273810398907570346637451920418909171743849123074328705807336630049201237341746586517333429922315663870372167662598724649222624250214559110204398127400316243347305554661428880566263015447627779454862463857392303754128652353048899037666493873917242086938873357762184644582557176316913445614487066279265464395788224372455647318022184795978979064158486553356311577515220796187879389871807929489709787876429181068694470507793222857317343301144006742263522004422414199537236078958023543085982470047010044961775278529515458736695254909859954824071058196066407161486364346610574977850592629944940216968989110583954183068745948582589054704699064524045733769254284832818267859809717081687932353594921825093123560658830386362459308747373513775557979305621631343547873169497394447848654430175248249877815023150639704884828892676064707856919941530638221945153218880182846213645767618597452971244307824088612734344192210239007167635520281887536587992238667062339335494813768495939468456387145680825042271813036214268724456784709240127813076942553633289435940121540117988526437866343953590370324767386364999617656051764096826566391379806694789149584441336971778895239033445848909496311242250302361258779276971378454067232911133946774208829723493284455905242834120982752047891309420634514070401615441593194260754803187668816192267832141467366971029536951115006284404675054491837947762327222869265428189571814223738765280410127970067744390180539284657923787518079859270184925165128559944511285294794933591900839636138172014415014006125933542557111081762490278536879227715119026722515763897941717606693461319051116217497794644573536897334432768945311201275872474845651127378537287791330415732090066951551355627574590443644196186687660004470197957267560960392312558462007855143675058547945624358353579745339768684551104795455776164963826074746080636694993197143349212896971012364779617638447570397331131733341430155891838095748287502248998635879610958725672952333684213251372737296178027595670325913594780203033606804948427603833721606846622793915519416042617535349539652282156885449610274757046493791422196277594092477406957300203609700699131585552171725372352980114841115531901721562403043139498689589725366673012867272674278969478655593809577998006270939614322917311683495315275979871992211018894993567524159859961129505838667528884386234849843139069427591102735197441268396435598536908214134697090065387141836992095652306692329178352678306464117298409795072105478917314527173978995179242079405617172776034429937532417432300756710913007873766138521976232744652675908345740872267649948378777911015990547269034027924609329504866187635342290935998292676105222863466370327744618248963258731520929851606359323726337289994308199511311619431965218638419895657789922643967509942140829509735174943494005127713908091857174762638954067381105077296305720433960644414591256669094838758813144035062065564238241084856656241178242837399236778683724244703773003279892574453955217344534351036455523215584175698578238962072706652289924620230879490163064925301188798067450820528978014153886308826471132797517864187150763856068117609205528293568665185085606458888945140927774658710816911907448903474617650872429813116969379427260327277395649650172125085909606556176099284707490480039286502399868725870320767791173209127876997215297931675916323919020842970011020338439251942867497022164983981576152478898156248556977832450329060634919071223155515023975091115967077983062614372432084558474850044901128521800953558995709488530592913342561608467041457872150259513110807845118745847929377382865775906779773801194691868087645446285052497290522118098101921276864911505254754889227564632290752989738743003508731441393630208142557581226781106913417369426742579402663485472020137711704687827216739742125481471764789323386711436489372202979000340233808044616879145604784663195399827624221867560724641920675331340277992503241087869797340954404461966236182205097583322038312615526251104290902049184912793731572090549432296664195509415657984022885205140776882179980212689014787025271495064221594543317139432807702425662618740872486344796473458619684547835395726755913415573945616533116454204914641414812917167722219363875017420887342942435709963361444534299646877795255783499323728470744387889990658217873580780882542687767657103750951897943934743051247422516505354817509931612795256207239400444080766049533303735273364798999688740224490287484359761250489684848811124451999181989088788088718224637239788466530944787058735159971867111763517615304783915216318286971451477920194876849448357980393929315397000477025853547779275634182317764543655312163976073945095351604154371693812264483134923143492989956847001578186612537987257275318928561363065640900966519275707901927373610428341236755768709753793892291978204283668734508456070024247701798548239104430581432733781764209667812791122300522375168351381170067491779810173702714106869508961658945732883709186093743898305348103148246242199994333499958248277920572420635143609668814200339636720757286201358558496363698761492987137455273179299179181213420993718890010635885379029442471330918957692302080074621853109416705867473526266237169318989795087746154422344482036173209981920884747022205622234880593415322473876451976903378885075881836258820062532952297573395066819311572770653960756928021269224132460278196916368564622603262130515101981203867758554577841866379527867937026205897286037970902119984464672684363344014724251075564184312672174279946068203208952597534219904524495996734061013672080473339857645046734422402474140590003794924049224985879417497664074382309285994843805869049901514983937671566416754418714479661692359896745933143761196967426322970127675951201762171774569553789359018126403185626293750082364261828164391773130438032371391420668488818351438791425872039629343788476560941678967327849141690259696878882715304741988877292352681336572378856845896422162162986049200560714937672726361772783773612459003623745974777574967663530078981107277235116165012592471105527696396084194477834507903281066575357693339248559958879288748045620854277575101477862888323593051413038850309467390200927857653639710688412955911506779061384505411272745841744277741828145994946314838833353175663993274191902167855050621380535355621775920103516290416430297395174978252883396522266643374617011714092807295359496716508795258284764179696530989656379187162587695633536902956703725384751700038960379299987978472122682250062667609990820861238815800990597243066539440633452330966305487072225830588930471180456852833258870234420239703736806867448917090450322465107006068669547531977106237697287288448260996860286446000154800449275671048091110486928333109255355599166213203433118020321913920552896866663144410001022041936431673834895247821179457372831307121828954464458141802799668811620907572802926762961619128911187355723772820762679448501778994616941458262563140954690605148108601257686541837481055445999225120183013402987956400823626585414738149811295670359929805344776524871738815433947420848132461364293032937223490885879603639314898976129632270417712850404886048016276145382289321232571826125277964631248857403121290019815289989090864373314931929567982243230884193815535439842903212475610892250805179577155040364786277377739984411476243954070482230245382961644350541259900456465761185039657102858355063237461815376027690509208512678683326929661603130387579558007318847020253970975024427445159662391685241278756905156104867423402439696010110506198840992003556562039999987787743534699891981497462208197827337181160780090337508884594063246107642643378108490639017135743816822687420744127560636874038459308304676405430157057223092890841976661932353829122404714416268708154859984148961559538870242928889833501852168241612798243854250580504460348042260235237289900713837418469173784053329179571545968767222901954690473947267330922286201940908192335177478378122008014457850826682271712082866604504065215443513965860192616854336977574353676219614434204583931111647767350099060691098145376976036013439995405640744693671266513296216304651299576560721742282206956220672299722755382482258599841530667945443737137635428190529557128186069441427536070867674162757306918380611530931458212721263590225954164733400754363430243053330813919385659016841221957457055355239470917218802202145781254630782571432392614433545554461796891656521301125885917432565787102732625981430574760577813518060122623092266182200438784909201877531509832712489405593522482379883080375553993845624546690481880330557831033066884165466330698350547340031276091189275330574680650986421524360748906008371346968119560626899966530344098480160124734943445132661960065295822857334110941146175927945664041563835681979210278881657749090415534315041112615418641464345787006579932018057536827331824888287172428020234063312726615598051803148468852520349032813681770968224800939359199724279151373065130752036393185103686044841634740607961452399318315716973435200364326567645596101713096850247784383816169830183693477478530790335992553800237822976708889924011003965695459189969823966544537281922224311168476263801605090682487614200614837977392369266282759821455341499092815897832827121848071194402676611516850087848257909958120236383659379024014321117969053500020464890467172865466363698408775795612562313891831418551519684747698239711485099391623075339534239066162590671838878781202355815958630520841900647283836821618100719318860294464522156094856665074439456599885474333978803826050725911711118764868241549685068142160571892297704452689183342829575741063926340736197335480013996988906273768088031908158688252080787960319591098281979592639984348947600649574848874130693694855924074109651171043122378851182315014363464137979753816355830950506797974399854766475869117088385103374263853594313234659543246145292259369459553541360368403829393841265889303271237598137319353616175214832189767789202765794719978676390464456807477474677826212907784598682709213233468709303032583141612621317385545290773287790580768782762542687060844811182657234679643210938243102596973054620671025429050475209784292461882256226277422934934787872620352659217986007821602771910698627266577560377594766098140232677821512558852113265100260074235630806543751756633885259602738754209913739664118550928531122552340205467378915361727964000145040715069004570042410782702310915970768926747061816346342085345319179812326821411975492428785222880185501809371504461606283946306423265889954743538629045280313297111748095652153969498090125471333662645345067512805477762588352988346710685883271460059463529965424761599815053027703234324940082793806219188959873099359782045197683113959185894322337915451144699931133637430633372351658126944818118596738883267697240732560577594913764667217738945164574498765412159364290428001740612061232963791289092867824322270967142996690089706441273265377386242739110064210365369153753268862609862177220791920440571866684164678030543593854116996718456936707732194464890519573178200045503867957570151446599057106335989617641367232970956035912160267517557688406104505007886448585649705354484579182121115124373909152902550332812246431072474041685819446294953884686006946519244980850369026068745590701579450726331002840014862508877150779793267810947906267974550020553723873484284882323857588760110669036856535382091626222862922156706624038440910105529158372549688033325577182226217447641991451372107186863096244215835198708039369797041816899986158670840211870239438277004461226549001852692899645600213067299509684439457046013519079172614817445484092679102997358864506890143839810375337852328179024458746472908971225509707508493279028082555507897513024877094647418999710226830990345191378467557543266870355924134473940976243171914515045665358691612975031272277452319609653054032199836851748450688677380646212698602861718772608574089417980035543277008850438420019243211664049068424832123276494144133314795656605532430716721518085078945989319760167570287474792429275194979888399909239138719101027427808011958218351313293348549027662382279434714674808227579806490478100855130430946906784818591167478562839303337571855610646810458551777854957080940561385299739595826638319836103743537354008670416016884942576003145679829666403538405321646690998634557091686402624639477582719821884418439538605662468252111927529851743841900073255384089365586992467212849166951026831707755277315767054906310004079708897719732083547563497203475796164987718681347352188228919429831822214728999816866733477347711520300846667768037521013608521364431001495421523457053438800939519399578816579529623204695684443293353309464179781023583312244765851679688464703324763269716809320013021966510461096101839216740681792379948679753815161510948429360265885837489323529331622307200592914401852303812293453674196678573859210319972979338675176364999530455765364372926394424876366756385348205024006092940395876371484447178077058010377526903595746675260395181886701479398060076596227980866388019034084237069483060547134194870872993041039938349897258455581881213895753066240742033975254861090837847437434341338290411085533868801188534797274247213239189561621068784851742255698992720405202560087669480110370539023523426113756908753074712554746553925959848101839927597200188007626288794771442817062221472605588198533578813357812779476271538189219645390789192045806481636591291552390165368960793898223218943390807029933745885961113524835858868386034046540949224495512978915121808947205720502169563093188197342307435638192686002512141414175268218019876501307233917091443268361078894005232785380268887836684405960352149647979382964556893715033713587264535659348204457577004870898867773935152408425640488406577988884889667767030683684652035737449659513409296409429238210650468040358763160956060063859668499066814191127087419478951996770132431237736484002899936708113382608961272709278741692301517451367982674271565237860020313121895622067362561735567259780550711605924361106632372650910827234115925542546000876744518014471784715508358697766306476871580075065263768141203777293009960494390523364779549263985653713595656242142388975217236629263102854975933510219244282962482031478784361412390889682017226398421667274153227668951066782098103145470923071758184877282920064212375927277121621030488982716686766057743990424471123768867178306692838201242233652916812347767945219976364837412764844107984188966693937174945061361748591838766888507844181652229759078616160494630978399914812446001536673127347160126333494621407723548393033883030856595928275704343477798465136866409403753155230353265495624529066458985809333470218807432151125289874011197659234225210706509228424422862785149295415834109343914642208756057325246928854524267907020152163230676741714936327423665979242426160729870397101872222852185618227767915076906317996388731399925675992513864907053905370706730732346515307071517806970559675555479646258033608426423218632969341188139575962874979857733143004140595894461397583444432413880334699224708183221452556826567987240457068026080080341442180627306271600765889674276692423788585513312462174356563483649950034097326397117018395078384194242750240558282177394917539837134945646301981785724394661022305811961450919258316476107468496670017216750887871551234549401458437454557988259046049407605016142197366011360977089578846374084866826802661167686322592010147820684562271725925004794790821908927106888713913296245354962196862265036395618332497794358749139366105905767180334537800653194764090456989197054402795575734813637074191424273303528152488384579430211831557599571538440978374965389969791917305903828425363447956323183171554877528562329766774262882553436066413514637771421418003369659365836339887079097630657526139760747491885801930650088098843747889525917391699071332189042743795340394772002192071144274489398382023005810985665211282418469522062508120559486677934478775763714907726802253532451415412807384653557829034829522551442729582210684365479075329667382794801198566252563175500486584403307550397061297004158372512993362451472964234991227853151088496925451781384541720376698375480427777575431880921727807949513514887529744912216891486564647180699386160717994438464759009549598790452736193389680917508610038282391405824407362861803508421614444115779286696004124244795642787166295548276960061237123564807722284934494220842794670570155082909393166709216354503128484628807307297757086191937285598301286139007822240228297580342080676858383527261923826775492242225202866629755058315896653219597664682358950053297205522722746290441515612514458404472182200230976981555453779748097710610040819570070786022907063046323260470141441726071245974903972455421607141598652879798688374655001089178859596185445474400849445094620856031458819021351235701508646688309020214998661575228262223228190110169032580960845705675030684484863346600322316425248140116374537294899743606885512382668199533764262721686530821758348168548969919994903499871725253497305967320095619548679436503892526699192858661369537714360375002247284504786794586744948610677086473149207513054872457333806200061596878580484445055900592698694167508315134743382451676538866081493572701153250908995993475321151687978551660948254238604979028159604449031155953101373433883219838283599707183750567744136921059939489846949744002924930639906727046190425202790700019742853053110925042137995439147172732248593625751972736935594039404517528596216236204269315027245177825193720603345473209199726778333507274865095767058531228052283815556725156779834808609206590671710606577023264163998272856257223118089617467788294269995532398796099687059584040195085285023040621113760962706705374241243891935325542062337058800968388256647186598486608308078662781739819486983199879655610624391091300865324534763042199836006996913085889154091607600605920030617181073141629274614328450648255762237639958398164816674305343891247382486231229765498514669985740305580129080921324499234591804978637139853291272351337881723570872990139988266871515009742833245551614144760244595682554901958401795099837110603019510818049025336814945947259453414601707716700319334685866670125451452639282506382455723461476683727066999599215581726660323692991569762238230174909981978495301734273606394024982605294164592449449491398169154407629192761079084271488992634430673943903185972158712971473564011501462655006942859259567233178595533601751468320279705330365651268033832538624465132250188797816175189194022106290867052972109266114123436091206758159236828999248269550099562073249492160010468788653381421043077985505150036886758978571189905434913740867482861595421260811806438252857060799313911616246962144135860597097334979254237744009228879937948935709042298864161889106610335032934984870677723265879794797949545564472000851953276491626084265159550208834656768769682401604148193440611784929111018076306840460873019923494374777923155941491888678859074241925803830310275999388516392107791782137436095723465908302972664984512943565813839467713155726587754474972382398667819985415595363888912435496313174304938213119034179377210659579512979844893550153009250967293663751199152153748855244450115428278482127320381706922519327233118852532656354010554498017122179925671637495008870800033047531233506365066854040525692176834567972076320435309813086469830689943236121233953935153510005212484557456768596520124516394714711769155539073754628786054082404381104132067853062240056014690036938189491071625899738591236864506179013345599223692043775976129207917466136990100476580680860015038695338664377316261422652513102564473840969442272348908230452551522024832275885258858055032213316915559702016916125076524768579535102608888293169598076328810191119925157022739114050543431020400080551139664483674541936104546619512421308580773713225005788769340890523103923332816751101406774529359452016089804562091438421332964215654045542447198577571726381305683072061107864115011642957742916163928940608539320677465844054427857586313358181069852136483865303598516387684119268051701965174627908635731419518395634171077855017788005404033209267950376596637041325189512668385460335223607525576399820497271259918572107007473593067791730902457364025537903239894892560903089722961479144735004577466942568410592285195004417314150288531583923102283385061721574432022496691697339763845072754362458515684026019038079620025023975796301628811591097668819062717013136061182106692844525775954782177648633543779654155304162371319879423307368598912200204206086639130360897758271524403206435509972640257627703178890027802384621658243258830409723034984520382716036865974496775015331570153046402764435033606678302888564087027280574052259539918887904433838012087723736107952815607775148851914240228480849664679661176513706819544715978030924372331199398853973799143083643361753279167491330645925064974937115407119003229744564092898909878639064169379880617558114066020395294268550889406061373547795823348140592363654994294045136879482883016080630250123305297459415955808355491171278598408622221485064874544751615741789526772226184218447877149204710488084599042154520567946832634321778411610450596425556208216739401898485562055210141678110644513215795320722195609592520916748050205856706210137699761948415480353037276604861526418337042196502666520226534372352704367119609994111183119679275766694695715180966410968743174730813192733946486234605263846278925392587133528407028971075559940772636742817152310347164857791855807051341716602032347620933437385051661386718837941510823837933231284442464743798958394619049480368911307145439975811151268107507306011944385065507623643400767413820527671693065844999287170004176945696038352108933457520259539825684082272092004200981368829278396472587530533192540370889777018555616575101189003585586558879604371826597730538121553860306699678350438136330827391188716517873545495650574816850674367276762781746293382463265271777878102326022328401253866586855417276645442424223583159536208376883665066140732999802442352380284631997835266044944425103456274733001360363057214044117362871479976267456465909092764538701841298260578924629315388297780675905524899151900167027272469846063668831707439077731277996247580501129489368805457773302106588279954322022580347617059432165443956715471263285208084895904888031065131010036139779762608600721366081615628610186556047250641849317172646928870203200801925416828154577649644817227454505307742810108670175422415070526195854409906688017694886524576495343205084639525964764214761023586639277626235557097702400065224247990642949698166148845019150270927416528146397673094777904747240532224374823644206699109612328171897592034329454468645585729246526868347160194056751962478025452001960863013948652427539016567657055117647324486740802633169440474099768226150953359409684392434997249313022398491597812176197986393398757980462466265874007119782448158653792540167756535111329405970861599392383064132131077647545591876755693286259455434741624917934971163951782467172620696214205127966231656557488172652691621125214586330725844913874447582059740305021731278901981188161356463166561277261082948395312074954159957794104420525492832193274530292524607464069039296550694013936210791769299291890480855282030989836360546619286790970950012894873257310045125635073646932906092934238243512890444648312517365423672202696393289185241762070230633195140850451501097189995520562870037894717086747339690075032530086841024290162125293559506244768495429961559356562216504136894952628217127447406549393358074781659938260873541152552157351557968422850610590812895201116490993904122082146063103650768117210515132159611461319216195599460206730602541361014837268692142873297796885843396541943668628633503241878793139941504200049964137654656028467497197401462618144520577034575931785967537734124203545345609029823187037932392774159633925035125098636116524991310373236262740028019396336235124881149608478599575872342104230491688256527261495910387514850694796511029538200410484371027311434116622939162633226674976603249633526116445636580070862224666603658069145006162317815466424881139982940260988515331836838204233490761389505260469233422063215392158841515938029248517390862606322434783359093173191273315761603632265472308963077777945769976953421487151153410084012956189583115677192074120873943770960350719496810593086308535776991951350546777684042970643467368807518006510004538627034170362704984020651232284417640349414781977090696432241232141145306382767362104790523628896842794355043988724160023114744583663926389425027203511268308095894218007577782263363101104996473872671071705661128805647544255061714643663838762437975134612578650345112971223728960581405430322835005095944155752774638266607011629805338888352044065668811916587604145973105436649037718055711144824645991014912112415960308399486847857679250338619642751442538108696825061670191626084492691205342478133519522828135283174188384411488055079474152732937156241932735733080062183673312847111734677083156118973750317047070806689928782723218803700560549764747102881621244232536441337071267396714715380920177780966771159435818789551569160467058496186484615287212727304047703517887874059155195937864820457157591596435601075762183433693179107556028031558296599009957672363044642252144226900798158012210715028306941526808139368171326306135277858066551548985182006385390162749427182748736713494571885639250141670157292314113530728862207216509866663014719482219811854517695887676183081290690474933376528907916599565636778865120774054007559999256287273668921484647138169901798995242224130629347049782821139482867464023446358286133193748049211068018300027115154016042089466941172900929983225717928634402731592906380665266445636971584980989581400157818386356930015778023980977986334226137688792041452377670864992603315681125720960620586998097420797036364628221605259440940831664129734316138728246990210694958648608899724078257328773609489515313526358396797786350736584785601522134808739749079237441707499833579834626693121818350944038546595567579922022999239111935411887687680923103330839227867501658736197288700030125766036942035794169587102642133927506076015999464543760902200192356384415020203517023325277117601922517451931675034395267485585108965481246347438644743495688322456875519060013112316255058443221011152795488820941401619514680218074434756725104666141861644489021534810432341179361421235340332086934144449040755062442886885670177009700668185256670151667837045572876640932955163314124292369620050244325683024475607809636965827476935965504045459694183720797932428035252002252821117623881251430055634347792638630295924443026522044466929764805161143244009322259716255973483665898866939270914211940035731512497460403978294430827272511733482988507675463556904665365172582117481762748120910668552912542433864813231552778662876313049878724465225640632760437511229655279363888425258762995693150783796939539454845468137622896484652359528644520855400815457829927157721360009200450942794142765209563601768314866822882281839399601944032772909512692488456581150159944402942004212928956505205648006048157100294449921864071129721283694634661634412757188455148073906249853539995320674892482041599646238408961949485411585087206994588660593490203783261439401858521907766159755388252405647812428394266809085980540276585117370189318996938528473973051756976091596757504251590848013219344302309401272966761490527602850813243566917587039907855676135109861748071250012829488612640342153184267565198351382385936616801011421550477593539867545514706989983164338794508385000547231334665323957911415948085461607145778277876605774156155125277013006407462950724467714903402119100781865364328883490878535732806606729511487270503265765332371072071643217055170671882623028973134125949841797232562484155416468716086285540419742416883363108846110933878101998105716373901384451265061832536892114067697811981265731121050831649597585537602699140597728926950619636683501725875610610518380963595377595593474379495109882201437421394151193153239944534596325623276385138652115421074931010366774082340327331267649242972459080565373781090179999435789226229525836900051591657328099539725913928786159958147299643152967326578947388737036101833159978063874459673272016718459686763044783474551186440221770189789091982912920135810710911723787510281613204848124126339438368057862445760646397357175762626089249175323860483215330841344825435211234060572642825326080172617159499659467123506892176530526693467666731939541629766854483767622109005952231447630845084901317435722808683413124267903282673324482593704002555521800548228872424458000002571319012965706554259817445257446182018723793320134459770075178839678218273961314036638427127371375096561460206160672730113329149808918069152846599579491547446165345804332916963766900139595464248548228728172509276683681624562183245138314539565196896807116765304317620104086842186891180771962721932612578828099450694974679238902648822575731042357255317148744940265626947213588519184335071286701910064445320885835121691624217393357214039910212836664657360660621108126119746594953166586840028169096339787266789486801314261182751329806107684235054539359236504767974760178875888500892603257824278802220722176043353388899927202701477738711900889151332745002975957938815185321195360077419822267579834408500867272910776367696519742691418643113165702381283292770155845146685196104271661631835696168395134308088026168616887271675880303822995510805020910969201394898401127853878127876323235613316684521373682703636890675970577872777045345298395445602024291719464266700522681858033940069395643227944045038501332234776402660534740687552368264473334069281870975933390594151044379591452944776295732433820815218462576340584129403230335397945652649789598914861581279360941831618963168415569051689059806939922590856269076443840822268479914582418962178552110742099111528388230989353086034584316734724809156686661643611169828481569897698448696173255686484049996066846683493145047989874399922824157690340653847697371688167672513616214654756002177301547557704627357832745911639044943300726856359311200362411226568337674965180452379084676709283188152971370429503502174730401341587063311395559561111893381879841508749865404460489114646906994773170131777012032528203948521842009993870544069500423825140874890753933395464905993143583463863251614586506202049260325441558635215799914597125150824469707396354873296676821440113014730056244106127283478046445741500861761465174812336636913416745796949040292311664015019482846168417402429475760015622731417006286846876574325130069504855797786851727358436994926305222785445497810841548559304963275749567633234821989096921730740994987296206699877736255984955183280690219365125803943241956575684608471051546538106197132732054617439498206342932142137821892780522865758024328895978652077730349177122525709611457387550236372108502612413131213940071352332018206708483630577373774408819457576709788280845653786542179225235907354480958568137483822584463788082169667763257836769792483723293727111970293966938741018215258903990363115696239732655692438849413965562573130479896936401652721199474079669474440469355465111834233578558775355453014066329919010255443386340681523725692346345938190892502092929559444405347120564019170751172977007118634396194697662987047779040987293977107169923875917007718473477744358539155945563660607729348731657702467044063226772789503996419721236074381912645164176248670306933794619551399170394072240959863971243792852332708183464139242484560995111834085783055922699541249048470037457493101897617116072730210633105823925975449373530931493316623964668563101490261607189146420649163505372254519333019257765672370449895851275621393619584751079527536142263305357609458223081789013080628063186851540254760764593792995900961927797733827582018977111823772707645140911046241704581227938960473850449889405572748883704320635772941640872046934344310085348401528978497725088221348481606799586635162904562211053911668072896840510399403974913942446128566456650302182990606232985449450272912690576643909591190566134127033382727983897796012256421027699937211341559086612783052615423917052324131688268945096165823397993625071772609529723392988992531009704048982878169183621533359955418831035168136609282447200132455897681285871007249871732629595918490783320356674724633255214087772361632170316431997030734881199612390046986875204665408376482371415061841394442857982251224684084651877068425393343643270090108935625605210403541823159626826252525491643446133318126181889806837204824391698179868425142732921259716398037804657792731383187028015829938941859761250125316253121766459308526626786307150827477215376691433209748338841405138894539299397570873101777782021019961753645387515793904610240273425421228651022508927685611852176206595149952464376138351354426639289595465832953950805844753657001872583718503156122075719398911310499518396915841733886300759786328467165850519220562744561889394811340302411917093546419496658213439496433938907203028999488356072423516111383078372672746827715848316190894263107010076245602759662150807087280234389286919545563076468593504575335459860912259666728318886263785817506278358785968708146634106002322370636734073646560414097887794278280079019120983852605694356664024110676935283617106650870941349945475144289726879622553996430815798144583425064200852018633063469106332310330527502942358567372951934516219249087896515657820904117777353258895941987290514659266574062575833269459637391891850536257257924408550609672512175738056662630190007108864575573278961267996130912012769471039338618582102211015877112692054496084503190333424003651743813296358100432201736034957663688567078654812679019358991924400752083706091498968815392454533168607018722373492088317728640230144813916209392936705687265399311397716155072995599309053542194605340833031871293273005055011752324924298220281753621464566090284813153469362364020004844608455765694305395699088331185627126813186458161294112026920006399322925607399244545153010071047304259562215398884477277432186714255611624066836602894324948608940210841070679077880328798898819927014558166759257679467584196870160079885206205022736277934410441540917154768119227642407072989440453307053802588132389122892093703214614916721626631561365204862037657140877881879331300572995908912000668655201052459872251587745261754739991340036199120557721977406023959101286338259984282954275368574004018551414993521841517689438336047274311283337065187493648041628561824171920932629373716327627811829660616732553492709178544045559751909821142140371084187405526432824877878726685193500391708985056583712686738024842313751509281052392775866825636445436477231654545403232557594711119562261415892422905115754223890327726356839342412814227300164602073357190170079074802602298770039991955573746476944112310235062642776756206531732218209650674973683774023701054059394674628793042244459167208681399979940375861139115328548244662686800394036731599114847435610027896329331343858597098210956137662591321798301671142523987206739320502254294925989433352722975997284176349365202544412064163413928387603951524120079774838083726872529988342537228884251892594386221410892994448501700228429728411758813074939713868216978657491454076283787280708978037699244869795309560466259934939580053652830362569637854461702286160288534930230839188101105934134135093531000003343837851966941983794542471163404914984336042897347774984868640185987385293041416032287030295919592357152103121673243249349105894951364062175704617293286456686645994270943100920284317816667407784460535604811750611220169619030426428841192763625178113658490536289512602199169808910558658426694605111325743425003253700282651419069944827647546083527837327607254568040164365155667733833816133399247324263410752740220619046916350731058045996098668771488804687796333624416826267948787332238585888064423576780971095878980498654851901252534647598042403984255203323817539968448262867707190226891217641634915761344657781784883275866735638391629118157291966849616547713720680782885627434347053094458487013319208031389846409583972997911906775511362535278200399195845722204060287446381457042183715319432375924514754730474673200255509822806635610814996952225271659529210182893954784403742948485081019704765851956374583138783199487811711851755562828410415241947084052504139354399996298123196407967563904048781184499372487216551221411987998459043971664496320342465454744243011719483563626430215090326148584840629075800534398502078401411550042402770952717623917841864557339670383468242281604577192830906417056603559552156072741993368554939695533490336739961678317985304018409001240413180342806771133167253382521920533260771913053268382381952180045396527523893146393511722006050550996090605230926274888832560531260170590386200014154785736972272997084368373589057062100624423716405227810138593860220933416509614323197687794972967906341752717649592815147342241523055200989915012050901589240591457524140672516976680797368015975761607513165235565004207256161043460562254444118786427892506394464346277120051574448749253798941330695928693859608054485123048709921862767404396039985325249291835305232465593105081576335950086111729040732038814955450414684462617124841237488621230478100310189377996677331526001346035123549350966508127165567675940901935451559773716141478560346161904112663146364578975001421472854548868404011388623343925721036314700253027746773015485600207932146436303900472369323683872971522584368469818784010869538330625290479867695857568424299006922156943939201592733385073071490211426974560650297616472255505833066643368737685782933702047319873348162862680241408811989533142191727569495034027613258106562709647216424707371750544167480692007035931564075118627706740786204994676079587710301701321972480731266465059614507914658625076189038819247995748429854945205123779793943018399342075554214010975470662759343332437581266092282382733892111305262988222062434200864010424230597115857786184170901585796836163364682176188467786542338058175437133869272204735462982388768560365234413415531220049586363292742922027153106478886105036780054963498748241041189377008093790525723689485336538568546623458910442306526188211363275628346490560643495305742031653169922092358292320308883493800508245898198051298200935571692721589419648073374923256284501565828013003994617867572923980553667900052717708494516548317119295593347196279995663933666089863152365062280555291902656796046633899773000344202019993273240714588475505730847569951198629325687867668452103199008166963914354280550485117778653329875827634558446177678972602005364895708738927943160657748845213896790869976704561138350498195566345162285884180361409259085223167422462839751160889557421423836161333135499620739340643334674483424587037148130461840250486737855464977061898098684338168285447470696637353214670462876286140598625625009280461304313819970683207517942308341277007673780503291474075092244270912252180855384250133328575471754814910846396437253830843275867757638329939985632504094450273438452804649182829757008451974391808461101758228011849331059469742798840874652644559013449341269606721392346466819511783158370449937541478913702191957500343565866934832509123555495127563544620135310631186511868493702722316247977279823515778358641524833556066847815780230992177199811498954897572846770630368771080061899685954521305337888824691257332618829292955402076304243785566741491291103820059424254320929542185241481278505737103278209406121957914044112016502688650592150769529914302672336616957388270149499308416614890000546591799941038475678045755023351444919076449198776401214488323761092512736390452894413781790807186697886961088193716618110685327680594124900270424185868704420458365716586221581877204008575450955993318139146397828660988134653360638600274386976551105032871326411986039895246240905563681675841809341491646626489662164106655693744374197407367177992299817146777834412150379400272846251008776474987098788697922197017885373844507728620111438742499440601249628325997946050853212416500026203992216615704666137612456244112510356918927926830078570062487347239142329610505014735073688080378602189460474089927336468814494367157646614156790779427265891865711210248058541637083141507321054293689368252930974634769564300867474245361610448891555330435873675784021502503416394100883361717351724456268675281655485911327595941887441455136656911212096895960992550425344270854714595004851427423520346069457127212952077294113460394103542046920507392463012857672142813565632940096377905586282728584632326892874448908283166507963278886884327235423751205603976886495566665066978412866725306683994039255261913016774023896696271925266942620444111641729723296301234466574383708465365413646865988942384327391261929811598969065790338230473279456729962189311027989870510958121038193377990133225652568403668839701005566853333499807811391803289158690969267078313480632514149092716445730566904753573577009477643563430830263198151902039675069924321126518746259141130564871759902289458060412929514727273134917553814104741774169926447035910611127688220523638046210880872512635459355719095879770405114851587963278310308008999187891123313195161727428552393957070973679663344705382547272782223326886757352884651566483371756707207735362116275413059318473475666010018277781497867869284898438359492162736874281675813952952519358763453399696033153566211441761296005222760657521619478675634482106107273503005384663579408147896487493539848427571916903835783470289721607758838634706472413463067722068905675149937733463919586013150623723395091094855636570677193011798512693920348860865801214900969094534233785081049173195652886652136487190965269069680658271900831075476021179624402672630905067093602398872996081870675967819601123251222497672018058166165629711560931224924129153705858569757069627492042700577140028135902209496001690060837988056540480583528401031824534612643834106096466242253338781927791075273198821593247514021206397378979595690906771584278447941856245335293254265423637284130735046227869034774149153355736239764211985603857268517397100640687833991174066869887849447790802939140049920192345608286262830784114408064059017746530935735814727510810465583226664113096819507136568807762025986707308140471106066077511310093452931425115023873171437855421417516940689492725604971128163429291505091814935790282941877670018522766371722106782968549203503763445161546582046894972417551615314880413357482197737373891306935707521574957551997293152307391100209549948977693302301910381567380733766579210623894592926120243331259038745481036022820324103012232498110459763497868754753881319525950344037187008207529860835304141518724213727206153172843155221322485932714264032578621629762028574751367073520035195073763103699400041256517976078338248873404128059117522748077011690778614785606718261676531622630125819038149420606313817821157293456512947688917877430121880150966778917699686091436792955970054648168064012194094911388603029357512377810925439868090451619675455657706927844379377405022358069066936926490767668858545141999816496403849656261784408004657457450827864704065562555485134596007915498774394677698013630623660784807636239389232220777166645052177746275296670842011299352959450302537376692040851892592880366222316184620025950890201546174662069578039833516364434743523578986946110188152080603583900732952840909928736429314037892127223571039475860291380697996892192740230380873789141812418905966267843110497487625572377892307791921673620552617938574816350332515390177101521066204015939399330642860217917330481816906475896740042351720241319229143124072941600442800389681074515507632742554697403749042530647217942516854790625168657400075075322622997020337668943499273568411372634179191314341938906544764006700625564848140947451942088274869145627551199299086866713803886413330395273136062597863001984615025395599678799973517876069627443973102693437666142529830450442883354535635833307930535044951681806343607479806790624727213696416513398001563140076427045151109170439342971837504127544964625913955926113112969592324501714952868289194620399093703350438511512591165107311532779061595587853124213671317555918806417743195357748195866936069222464786508222986301704692157033606583708060899810475024527937541999973862944694686858631192009997788223225521960055790284119788277263662774638372719826485628800515227329573226459126667930248791080853564123903292892996916101895962636458876523045029631869940494383806628857894781647950802068867490710895547779005692001313166305479797636189488049117116117414923601435689011155459081401398534088254800245134966331382675273110526654282877568421782265479608427787454499423430853574134715281903469014727208468430031305768034091190379975904691413945182609977568096621587350995773666948533698193016016292702010813780445807758194237633831185674458273705094030819498010455198172300221749457662537424246065315113020334649356947554532850941871123592819798252831468201883999684728037832526068371037505854728937093932930154475399681369772118004261642900929877544137393084289334606842389071972117776411062533977843744248106060081401504276490993100141750730961071387423116812616227576531624177759131584528848274706358076238361256951459046729137545351958746619868110629079746787488863190548729532152176097384554769460918851177988026855678049807868806046387126449576513895999928294280115131962697284997228501427001661524396051342424260726704200273718561420087982944330390973877204331296156048592845203406780019093226884332541578700414168833565418449412515201009987268046867178497347684746394361859192411317438225930706988098874086513808539689043571204313967921319660746902808116612191149304594553057918257235400861722226850620812586302910141802509700532132621537277559652714284828047709402967932451499670271158204446720473609675473567417916260818220213073656806178843684099692703328660395772655221395878988048042178726330720834296732861416277464982030243455362658149179524050293540964328196188333540436884480722774298040032741004362331519821787713823335637308353098131164934521122262211719458705452629230611921418400242177281584022867113667383262493770414088360463335892831476440694309990183222332907372206297417003940470084051012486059843254933681775785140618698871801963017770400160712640973412079109510972614708190653608605823362620061019759495688176052989295813153773050345460461517080032054671109937268858909618132916748692885525596223578770260325575847331118247168727333812293883113719376828315314523673169462210572216353765330116316477297739315502388888359703661051174589801256521345630467927345256614732431353688983345606204640103510662461729966539585836919504115111469675680965815595924158625474831217315316648144006678372273629390204471868976503595636294913031555431919512198424934676471910275339172215219648878914314696844688218765956177143676256229275753655128394857622399670090619271749287589206641134088618706278947081970146570439373546400244602411558548570659121336048024001388045699090675801523973712488372915687502959877553668725639513652963161835704208182334083502392911516768436670861027361855489637799126152384938960692648112537569776440126122626695444532676087662913212401788634759050132288648591261091924442975792527999664308656818231947330360241891554096485435394509113842129980233451252372065112057270940424994408394737386006312185460405312553070862513240949963435940816954404067567821553212888853807785503985920994063491278279043232277803964236136074827023611983680974568792791080704287932394268978338608195054641302694869523625607108011933932352668927395201330811226246446030789742115052934783197706447958549271436749216009932929966026184827440696340374460007683509067503446217051173831999078439432808058784455657007010746011744088729982754501036040122829621553970372775267710604352143790903388598297835894048880213282573522373217348326701238486515658079086111092707427898092932335795575059719619162890850715801077641461586062910771411960293205568717583155165053762250675268212356766461920090841860103090518349326091911512110535971123961015339520121865096654183573113487092178658125982876871048153180790730506964939086937774286467203592276075216236116057162356692001877936611856273706575712396379959639241502292282825916481286945952877534954564699378970139447460128652320961427449517127371277826910573245340915121619252342392761233964549976833029782878907643161253271256097631690025152524637845774903262524874024178195469262006782709958253021257358949155129237791418570868652150265855855891681753905778802880701543599133508541350238460135013586025445460078264530837033419524235499049375478242975285025591387480402380471932600320640467295572685051120513031449941057391033276584703324882510295587538481760846513277866807182353062659895278080194223561286665343161587628696892302694330116687898440343849945044456597635038258018273751091432360328235466467355094992006977301582628614787033458046059932077614996970147560565834649233612973089832342760340416527902002747583512648483155767187760972617396482971586672454951033683875444759070907775932465048092470944902602078281787688684908550373746453540692144862572502072133024518769094262706152956614074913128735710320668561446091965192776906380580677397703783316998928484233575987273278269555083863913234443626928519431179216378618373934003072972816112610451422813934035704060046187916968090948475965037303731149363970549392094839295624571947674699536129130681005086255973694881497394701128996781541384661476015006459618667792675773146462052536179750631564618703990580870489844401980214386704007374474354264231889859389704103602928034148561577841568009613995099126624150442817430465878925408202736800049043035913814193899726995853458838968715983468597875313117834146967128284692077773790595660040590974608051230106815946924477542805152480964548364912725177760450776254624986172444235001062169759263680239436681363243470990155330305291804107076669505063469773639609324805112806173812571515156476121264726463638172943407921078553822942344785766627763147831082926473308302341951787390916382409799183020833808147653865537155277434472613364574991704887784435021513578733102095288999959809410410065902847517485006872008518104827771076650534683018778707259152835595120373367219450191107592744051059106479512152698487443201099542274726529230641733638091938083408650339311541797628893567308302212064021303653811769945577852171390217724720888052462063647508558823256958620869313914490229568231050169175161329898704105335322282927727418798203107943324060814686958616492060924060406553600742743509390925732795248419197201417303941562669607795719684495329000851385004537068775787428942222819282555377203625054006603818299636211884678369008973191893537290320932888518717204211219628953055965521423576587418373105654330622853730653467044797387933909190994394525867774673672763243321887970368388397434426403477012916120107919265820193179912372970964682432911321702522961566563982225416955244625535022766708381076856456671488997715907553048111842547096856250739437718551484419331444291438798421393737048977195988138431815375078740627085370503785701378056801345812805342796327502564690821986330902761435168970224780506476819322614594455855360636007145889853617563343970988835679758911730996820679261765211497599251112250557745002795360774279070038056753254823518284543644281489035102611607951314955549912824551903481776973929026212266832569506652988195319431421879225192751119455658683038349991930854597037966751670449805963336410340675607708916690972875207428753055940802699404692760252327018321704021832924527709186888554722714867016466380810518697074268215772075456426581496951610310278439146013319514470063136332744035424008190100281582869065852928179163345966917145880446339454366023504436284327157359180193357093276806933743014969836621669869399726837243443570483234585150608118656436951293555278238010163655390927651209993460172366120463808739805091732172585553427652171203510650701706962290047488927841588712269142836537939673381975210300739797284687237451490367942248133799967467721848338876206477109072101298336625862771987788765170761528957012342297153005412849656783569548071926322825867346951499218469524061926954412992327825775676660922343410699458580938022882392271457359188831796715342949820598801448260539798962259896423236843421509230513098867075500111238801192235199357637674770527772815258367787899604541598856229195734537267935138567090776932220559803524284135437844427169437763772777207924064809526120804158936703939772182420130312350539600822942045292062236325319858627041586464547949088388668350439296866936851906234806175407287151013042793930854078251131800054863056136823274570051588036076975587676874734946690693961194859566645036699482377767228081977331579368009894310725142010431616512905915435400531742998431053308224093198635843844467894780476737289579671786464641286073540674001427229950203277341468854121827325338451996807099709511840899765934546879429581066782401788923750113746544923254272785638843278875091781983800557232957211068689732489989095946499849590582859907869912715559511307709807064436880661782756651329522544839681223351332191678605652875660194130887870795690164937046915355352866634329366598827830750072888031940436137651867783853045831919410313320287846212810130621338334622842063954678473126218654527474026991524915022412220715166406820199110159341039909058637484197004146717048746277618754106923831686925805694474506291055407977815556138386913902862053165088313628137528521874404426509502520841355866957400194769567134217976481029778373827222993728922462823157934131736967341405692475071888521844293982280243968722116658542213032024012579671204975268039956629840452044503377209270753118739504794090604829654034566499100214397900095495504508714368048533283733590424837860398091908894623379858627914520429348318162310902661273846029228727726445422595525905984955721926494927844990420304943456900619600192277780130553370024113186609099823235904385424452704707307457906495538872777993388652664210204796110067790028959631390628257174512540624967131526007004745804450477675565427758930057988823071280110439242813007120307207022273751817768856838238327039089226309550828232057345383227366571510429746953361931387905963696230521448530174602740874375993494475275232553623994887864521094931610802235697401555688689766631715387392279194341065210910573256903743726445153379990438621543692144503182715275884873009286670799884847879495561095537993924302091328660428602927608512047583093363151264684567517668724477509861063248125096207276138259971557982069269945294622818376392727530230559646581469716393278348025495030061467834839447632438758978203308433696235968589886123460377956084327128256887267668572593187054046323645471838992327511143349520230669055133852676411113345371056047686219334791755558193240703297900907367079039480084390514141679885909263727481897293948321646327041698918590837051522799687696496193987290589293231730667575469583330976407532794843216036665675942822378268930136865041914324688275899953590584347584934167696906932483447493999519901784422150063390736651622959176685822891828062250108236354459817023044968544827237282784124583038862985116255434268505805867568113678396830989286223825131162709165141405321132458490793616057142766871508478215399684187233330344673767961716770889510616332214510876621702721392806889111387632551880274415908346073026458354313207977431715079889157218334050685639670932301452562244936501773431846499062900640157709033101893845806202741787060619413587145160888964885659121848575294483117701195364357448298073399187265578890564930074930082594108418522310411431744854154538882408740732339547025458055721496151148650222140535202511552011816264733012718347280525707365550572094039148574255917457002802696955149277971082333793383852344067337936884589954548461582525049250476616853183830802331062667528221323984895899010057989476759042943784880216180149871651280674068130351050261503194461718922340344364747748538106626225803640666100987244645536473324610031937672956045309002293304538645924312704772253828703208296303451335668853390540757231149561875784758209958543858847507509314290083553611195239061267755222997181196221010713216422494781672340350139422943680219634342183086911143392543739774498792686684652718474438478504962187538498894498114314549999185255993067329047008655414319955968662407779589679044130321688763546103888465515287265403244849744946873979153372433807506150358768001489005414128582979742089657829168558514684335626979032074244160979060765051130366258375636391063190542133321092558069883651181461035343456973204459210966911432185012877481451273622186872889009126188001520022293681891771144045082345236699123973072374159670802515627425325781186981407152674045105063870391044650264962946007643812647004302038270540314626452872211224353465011315662629157148794757768568353861181668351842853293458317665942154801681912795763822588644636617027592190185393354918412511541045949996733742139417757960138815180698345926027831237183072065095141396740060783304760144231285490551133687288645261090366393411962823143283656633369195314334336277395893302187903527745184138299630774385762935160094946949807191613579454328933307153237228668121707008450070883802083133466325844426062611837122882336937652896163333736625223738644557123195880872026979186531413315997613095505460567055123263139609167771018537826852763921359470611165777416059668571964087688423764535828858583357405457835687726762865785218165956647457930663745155733734516047597652014952727440651822764319960275758922701786506573528957062897573123212177366767672715449116937968266506970104544483957807197188968595578357770637942726609432755723946360647604498625500451652662632218811162348911622870277930663389891421424173640347005330801107441273747184293604891765200233935935120637701142770699922904485994256312057924705777177633331552571011054920523103134080812532350708743877002505743610015722713708296963199160270785311608767312326800628165376862075910895697426980977686478365997157263914671178377110053806011437911545321927190588998376528536727562342725221815677513118106220227281416697898668731136536790970481611354891140174936554013730337091842496532600333479976979415992109270139562978798290039920124363771198374523107272565989592450380998546538731662063411796336284917691168528749933924098456800349133160655693380987332218184824453725904087111888849080831575544550070524426092777795717227407233396359415695774961207888440420481415911672161709779172977315442096150061130041971234310255410355440238549079095315986274964207252764061996123286780565939101165378492045560812253175739229879701305877696332786520088309570138814606775139878321020227301137388514478759083250019399419283987865629183053292039400276816534465134394524402382716790929834380867937556614451949470600750089515054108313099811801551341453748756847927247371909976299057658872921115256821583989853209926137965030467950870196817401037260353260827766419812831162323354371393346259180679281088587166073001638946293581058810742230194911015176661451716611712727672295134321366581493192348335653666458187900100473352754988495949203440588150787207717982373039291895220430853329773202782296394320387336635645417116296809083538197122130536850910871422054254944118279552902891584969372582786616825395326982753837649737401419484946883919695718698575678677114047987492757247526287480904410325489974737653658977784208844802533750417942243601394012373328990905558775264699888397959183232949067687406964158509307526281052386672269540342352951286174745963842526678211433329889697797537414618358950336361325583644432155222849452134924396055668834022721557735016227749982631646564450121199627806969888441987965021244547875673462273571042830485454575331748640600555119958566759566747356502262118812634736603190979400604299264187738739444388169331657987957654174519556541795670727656057111882526096684479635963907820152506346695301927784077180284167794230831202744357972750329117406642212327431792223825849748377441008434002416738653525589846863857836519100126975697897782363856888310270634173617216534449618481270067054018571471340162181449226451601052329845445585472873940912367288910485658637376320088773556201141061864756894466726582742046123927249323994442846537611666389730987821340066613747131737497531011396036910282354848766203060470923847085710148195770047104485449158071178448172528701967235762258279137992058391855780994034045610220202917438615534522927962825148342424333082462863963270894975982670773092951173048812360784002980955536299459612641470103334964696209977864475159243479202463715657896548372692358910611345677785557684429897254490136803997442206284296069313475747345905764817291132559111244356487961670915024865674807465928258651605300605041382021355137572846800813118143157586803354370186808204580104738272662055837651016232413405009558517850117507135416893854279599413375985449571009517309250167017161983343927623910293946523948815288245484330299691261777667409382684535948490828754227797127416439289183529406460669532946200182381027966186400316080229880063700732931818500580527154290221700209242446831195108354736432784358111283084200536028070459679226444528743846988833196279707749772264582621075885389863597189138891140649944711700527220034193300718229507216041062973391860911739843432591851752537345807114694876445584252052068952006586147962750225784389521923533797438579727241723773714383466932500769629428923750139116803526664337252646789159293066023964324901685947032584194409091159433016164654606535013042580715885706300979741553115307414296391100328620465392187316426852187557320674766587232764340721169717108441760321620483048234676744137602592280048254284239286766676972064233505874034697339510355858840622434496230982789043207280181083774566899145481561006813944190156755462225154066794904416387192303467593214340313295306500648737635982942224181575940905780570824352719169134502048522188711491634759518823106435041037086283487241105955433398395187372119910919086833983990388344040669340914314011255778279515512872771687712317702462666950245848384052049752277729602026871850997187605563159580029541713353176008206245262803018716159836879730246604981981825545861993158633636813655147754369715791441452494849391557704914016142231248393424451092849016413601531864660756413797506050109378436253707567698023932350748935286352054928693332924133579707841073986404386020620082477760149277685970702453815094987131780225119036994782772956611902911639789567915275575749793348319742940744460912165466841662301841955051609673496139451552489392802394546174276397860275233087440053701485777950924011427692609111117326589475587446331742835339743637044823843238637995732210954168526936887814340981627427059240379325132150046870842029953612556875994269354531132595671456450138979487862762478942504651901990917956757821141872785681236479078147857508506056530291473517052144162328348574869904260769460066802071061794471512262216815235659465613928530381962200399671940819409937583947546960343435108957238707485807686448437883316850842066738885940103203650820428922367356074414332396555060379601493314156614305471874506764313026173547961983414293303072864781601957608027500506228363801008406179014292209283572320620176231051879269044972460852032126577082932643375067812427619286615539592901491628122697055065767561048343559658356336276781263447715006513223232511406932320233431541693457446395955098300810105468059454123828580509953560995876935938377465715681597103726631852508420055490057692628985099223391105391776946510185377818896301737469684472511174164378955564537629408043671311607275717029242072138062423091076239666049882355624602146883457981982472405664133180375918202146890120494395724341327658322686020924489152358297975668087333093077709083953439445717687954256748214327256973074776439657068425082797169314498074706797620343739796977980065211749081637682053792923938142750552286171764855461129434336005936711888483333424659337440238329533110158996280463536235110720952616527396257847821243139206394146400286063810363167081412600197254052317482354429164513068194289331310322376444547707153137440015470395140247864883723696834305395326159631492020421169879631220466372982705555411645561428067585105209380345620634760190561962998277717459863598806511071484827504735982744870119333371350275388551932985482509876162362320754680920024997285582905208911929323886636564534020655737318909339903271946651221936392028224484509398394571789039062578254010869709242825295809228996462180655886267400980154835878738001384563937310324429012379196615777779134815481699615313690209627205255312007620746940026740373124650546603923534117473113450565933676484620910004364456574333395291268662351630218332686015049254349793652466829766433183909923684626824872867385142240559028235741222396275803609079683654885615944311037754901596705431012240884159829634988196475718063615324774855473226606447961966872679563269599642067390583246630175487947349066496523386578889526791559932433407828393655460018500915824326840602567737759065637459031498386087829883612403824680383224319226039113858292911479748422874122174035385759721635715765485495041255007396435700060421544261205336202445399686875655946166388654776470504380670723606324423610991359060080462078321259450125901484944148884028226163235833806380846731484419354570557618957118646937416394257634228969409612305675747640092111439603887067270339087764759450406004091299579715934565119711346889810110306794971208030513233794264067639935067547380533566874408086078787403568643404742583318494358995316946711622738443772530718215162582977188560675807234025383888069398364186543133029856661477382615999028706463107495374565447014046492679436050296507875301154636747812908735318883819354424594440590909983879594075712171987037369359330817569978274867210207870680861120960933782323530436475944551504643539173225069543682036182144268136969687466640651153220262659951767871252238127327306656185664813280377913633873696334113983213213724700106912766130717796881451842815151240655813714957289468015114980286864874165336111154207971323978257561626737557125171280820537358066937336430110579546634385700431305660338275872991231814535124764974207147499789831358781946251866048096713656900721355853377426581821369828397124051326228527533360084723564627053042267695078139415552674509566391594915854427852338639399671796964361099789813330187426000393413604322572752795798612284570922596420742766798701416162093534421074252991607933981158255375094307974818142833377453069584446384699887102444662072515423798713137505971111280082085861859864077042109005165339329028586909794401755113377782898464931721498947930360918930659951864708457721612526471955757054161961947297089652820338476165874464996760314216189253937428885175200039913376192891681822746580621901113668432860907890788238604422604073255127733077592585550662155738357845043226239567123581514713070535159410395343561157439168380699234100556791857030784415195739345959708789235463577061703905549580445858735474532371610797575578193436312064694521170049481479933451424679554424707088965218857869968469094073561788980710337039450635575828636963477967966209252324494506975285648052343017484865393685632129729358518413111892187218362830504058805736469653730251777141305989079967410308621406733223761784513549653734806352344809531418837882129916952690932137060240234709961761975098377461758339573085516070311338005899435073099309396614643727354713194901902891025866852248844739542385907359308164687395503873174008750436542237338424787737401627012975202148260627307727533977764567403409508231903042183529653415839561329795801687646260153484682126075919867509828331082271368912777292114221631227198828551584917938909616199216521605393590502423786518912817942182935012236550056763015989498722293575541700464220928333442549675447119752850930785786550954517536100633741264540218674733403371532240285704361121806874768162808430143308754979268000659726323542539001502345348970973408613205930483101496058916695780249537609903575508520207453313624718956661909121335929438232042886170866183682931051015059890445958759951530075155314651811648436348791012570278298352083170593782325830942750610059873249264499822500839538215883732833248119366405785331123066646527603905566231971928755523401123357745386877648957236791506449903415422846792019408111980799027371040134302327209311959115276476156370849210352351982773732869175228705461423996036714255873620029726010718686591817889890409037174118439324411517897889996936794967453328363749838318885186222209477867636673303163292987967091360550087368557081532808175820909537531218471345096855887646762426449900118203270084042965389407559275844142005582032660057220854944190984639527833295224016503654908574847054127807743716279923513597133378018642771176073867442905020040608334365388956688684745946594506112996067384050017179426983416556259671813750937070844367026392049956424414621748754650037720691347969715097500016999947869063279194889426684133069272600720423108075003324137336173517370086478117449050556853571832444695214920525245487661081065233939046787035208458093805311827592003442616634641692637111013975239786686880600349941125631322424888750944527583136498725469534976751721253338184567873925054517115855066756166792419967956549337112738327178392906812156718034202033596102401112260728858464315428356490882554301781602199702596933238289427964650705996232588332483713306426517453693825723188467954766405616338685494790901251037320712831879060098621978603595348333871460308884752056560468953874602254812272458178976237345228719752254828070243958487118656393983435229325964120834317184115264660910469971048986536145387895051184782873703668121888707793506756371081402596987783458545518719669251802508631873149148515476369011646008487988174581974797170590993074459957660343888043260410255223179368422310420204818674254338074118870640721201645808981842630377783952743059323531864712523115993305922550876722495126854268504599168449013084707328700346343766438816898105882810532521761311305966803612020050685665632559868003581139279212788221613098385572169818633318333109602001277293212797823025127607284948993933210169082738971468593243476769677970904375961497945641070303864243279488868066383876769521980095181733552035014076279705589117725436223708628533010586752376220309458066895552871285143224616823175154473667949588342219186399506279886155525427428719877975182246483991105913215544060138619684778141303132483283798307848325946546986986427951712368168809758847386538820759575411702960234479047849974931100362421382738886087944424894349890410241004970653997908383654416199880218603002994085863985119181336950953457530205404363018570844037245300157266723288229694794493099086357370215592732228482907618803148511924230736331068205064413152383020217674365545614669578438231837496671355722197490864089777567879617615143264475165225621643466199954465980652983054967155616572218362377140051873427951327216197197719679081791221929399757198736381615990152045521741327559113454623035166655868470497173947842848244880543195996952938442506867490035175390580564840586947604583241140892730692036559743089575069085638838759572406306082630677676772969207670059000284892807240064921710515726452782766578814629445022084965876464011309378042547739956263047176287622441717221965930817402093194772872193298670467101887844650086535522087437238194497994988877516463922711489447857884256034062698033376287839185761309542288236985140656601844943821219551804205959257249891691093386564089773046782851830624473490943813991064946915599496665879886069388243817403835970671956288056565488196485898224842342786930578404096078061384089139612345681900672609356865743820120667376196453911339762792881153403392954838676693435032285986530010718398345305353003255520299918344083392396291940277144283359203719689745951000874784738864643908897525880097905203180079358004894127778017502599013547151647473672637838164329876568604658287842807083652264781259541300370614505346764019043488420602112735728068352442180414221956262798132101961221156957930705023283031792073076071738466397402430893017356047517070812791022874801927692734281872392278128273773024208175712420210218988925165932291752508536673382005762843849263530349684490205602159585426504122924269210575183472268647554916502242660116777604920491809557856972024463173038747775455551893143936570499210978462828392693241869996348802954186055544444876756513188264822744832792678276546308661187575078980997679666599318011119089142854777277416517742259040062196483298232685041074529254759980611696518911232450344044390136593927167239458195926791766751318539112631863648969485341392371081495559030122482304530723506519938750181187335188636667975948706602785902000174719334017006217386787950402478419145007500080875942539416457941441837266058893130523485383032538890739082022835293480606764171949501364578997116223455038910964078804169417530882408361622228689380733864142842888398850297201970379855055034568767391234636184991670798908830253909057404130607163113048367498479365906081344777213075039615267505226674309477302753139747737178817903312400907206742441995197135423721377697030831380398026652260880253713512868900984367866473074559188548281990750940199532627387063002264055338643193453539045972276123313453552267795882400338825980367040113943786383335061067372437952148509169636241414153438324631634491535413477573338007401090710672226101928201213997539076962574589643780679359842860995954007446684523128891730745988768750570307480965783968067070052319013476114316240660538123416095768513067546382625039139123565433569944955386008416846077025928171089517535623237380254181134928025826265208187596497020077440034608632951796728669975185371000598135741497256276374380727756702365065562893759971021785588228268015663928640744732956221958026661669873753260566060940056181427971078798957976534298153085471193229062361435484487969545361613949183773782524654007006158044256529251238459844373827884068354037747232133144919003144099183731210757966441713123136973565397988163384431553476332492056807068556311347543903580786098125022200725383374580431428050653219141755141798863095093442707150567077499912176159016013538933256592206792956663595327293117343899556853963102790441395633886817823775453923053187860962452939615499975313067334119267730274763414853845585267324779893619185455886355175015022689272575673041212992752227144367586989276564682582594747392832709486706286586760232198850362165124705229872329382496307861723233184356819728148173364817491983242117818802566149341568916928492323191126656167168327900102568286711521453694286775079901673608926609789972369388205049830439327774673986092186167712507339147127898167344872469576546440466292548221065617497614875458730872866863248685627394990172402847223248751102149304443399237679156698454411802413666344370356753345472817675670840398064445666024586189862477840753674368866588355751286236040807202583326226451946445031307040486908553555576610875138205646043450645004244625351367278081599912393441701840447114018511824682036027227938799360452403706216761982692626106054296520033360624923769941688613803133227803655885537828141643155708676237139124578201577388295749433984508274610759571721674219027707690900361016261847774228357500808242968145401574886369041583265531802491906603883012074677770968650637537262936671620550551537170093431756349491109669224382818738089166107305632206746185686816382692937442906753555902290820051944789004859731458296444451801509955929568126242328649883878837977988371114011543568671989098678131955095667078681766617571479335081164990777901001499413158314317802411873420260601104190165098783595043942948460434047432528298682740063583827435410667093237014668208863514411462669008237433260354131455154442781780559453254215422931286837859564931030191171510907235848559187857468688201877311670856361923566136327719660625514923358048009056578149449360798024952138119922104573653392608624176650630030053519507361453621062320058602758421318798480692469500272848556881817071085076361363897569669103721325486586506709141100794922482339568465410136079910621581388172060402860020534299764797495493002694719144359790216012980796282970707185304520393490321571212269136578188897382751001942468975035886749208935899017029833900947944471160518226263581446041148977399389345354979540115130549724836268354189637620079224941515968612400865385182505529329923815490798836334730744727726300142378679672965208970844343134960277680273208612010683747822974522699766077411358809358649841504545787965105771142772981913305816259866600477727521473058122640369938620249345694706507542331189748770104758122418893282632975166646905872751401036879015407922818906632104146352516148146783448680397241762817830145158536337346995383338581653545306163971663726164282282027582616337888136883477007409029044912758572889348589456076121902263527256526657794801464146154367767178428353293560249524181530577405306445069804858681473638321192638191987968445045750024005134519579680423532263250976617954010754884377588097342094637284479882988766003391853095646941815482921599153481262602001902905713306805512652120746614568537620459883139806475698010690948562767692652201308185239145225469448672451442929840929653998043034962423736621645323789693079730002167637219354434794802548495899983731592870906250851415405301118686517999598725376331641922555374829901683026344798890701475611822708186211007419907402253582236511139751499192125485292012294407016153216353100109589389026244454756292432408653024930988110284704846937087046108693276631121551805022105789731445508827188521758583886535253808639766915530548852740691101538135970315529331206958270290566625075566112390645669761287848364030920059850600130992083528927041129565420554260681317035358566772638879793656179533062129117653698573545509373634458720282773347857282676851260140632248149299872040870156702258106839669416201656955192465994147968611182330328718710403680853120595752111366521819779636433524159113698594073439367748114047059294142290808374660386267658601244763519056833571021273736512722739089072453707377572956403424231627491747633125318661441488913374084399602578501480549140654685714047098542272450661776621958347437381220265867393295089359246904486576078826601596828158413308841771878541111731006790393432964818900818422295941535373221487056154550682776421801888614082345642734979083632667258777935188499684850848423292624415186994059508323865898042087792376334667139216115116181739560874191082184839662769243958048358434808278213426961739826440989295617282489514326063908630420468896726732063432874214396001974212939638701132246284900777717285802469014912653268437412169640278576153292553092687697118386462195867186032775755296931893054069421000221873249446066403365204580114613380380494879079669344877981987508601079178633280759193517336706239460608214676157792656592981305705241749012467715910358175364539404911869279061706372595997794571192525347918643712324447565185589697277403791054707960571356432824330755763468676824134892442588040767432364249473739833267207720454765559891899944535662340497579701246779092225931689186063233318772662334327463911740664481306254613805534984799428707521505786672183035909801407926866267140216747215285904948637999366727420028290287310088285350908447368395940740792763884200713537045354292106082273446188830691065423502319604747616849611006490467978510168587004264362653923898433772150827112248342842382461812318163543427056646926274769061858684760177389210123134097803068625986650030715376882436686807190003292216058200597912557574019813887206326805918233854676342199588526173028990950984813983183014157416337373433536598107294676360575165849825562389044778898508629299674408131137078513162769546074946117405839524344844952383300051683981881954533040127294826981014914642843296706908239297162190594874423845932986099552449081462562698653379683715651485371912539621217843130257295180978690647538350666932904161905406459639325483205779163393785039348346428153168582706853478856570859797538414586564010826012905862323851698928164731921081328990176006778319748618472775445387464527761006800181231812679624142795689096871585421459333222116153969765413118317189088378090313939293093811188439308699403375718744302268666844859289083188685434518361424357821639945455322561080642852464509276368191217946971363372211317055102670531298546033666379338211183524883970445794249493874509195200428861093912516801390394453938025802569800317614332794489661390622860758530793447347394737241432059516563436872052174432097042566691204769679692053079940998007841576360377085583541638157240237877054471116890041669643562580197711319962272831527459410880732313036367782127047277029638681200661889544923482725550742161975162170762537810957226136948722432242853116740875740510610445832419453647928496525681505898528061384681158859465972046241479016673908462341399557502989750045489497977122905939370804360066738936964289694400112143715981348625142673669041122180952435054238031884929437219438953933416621679614747532016351735149315645162667714263277071807749670809421024563751147680259138171568380638834826436816442256460113656770738351847512403029435793671632217097348407919311695889240954169621811754174356560042595603709092948382465433672005769559647111528799803665473739709083854862458291972916481285028361272325966875345284903133095902220994952284127356634200014085373600393480062766186146020317482946840784293147153966731659590946222928659555279213042707235201087478362435369061160163455054766445924779008325997915057139661884783393747485521893562511167803966693606735970614477747955269323710414253539568675556111276758750953655294089372565262007955300925583903894703352849006982460433453845026630270946165897134744252681203767544603377944484776712796830753108504344433906749948116220992469032833981924681592750401251076704526799663192076265989728469277541810558795697757282693547986012094827453825909732515515743124349967643065486336705170579224880172709876198452253687831848815716961791511008697858660189451027805567000568569668885945242391353184041604660123782719389131144753254843469049199299722952533731883863757523424825557949996031734638464997848695392610561077332551139522850338694579579477028845364446362852457948077413769185719256882969259850847605182252584351602747156432854936262120197766580080424640976363229259066060000360817764192983307551261379343383719608246116938584996468065271569682110768664253405704747018770394273154416289660816154997885309730532928628887288563910406037905814801977939499821201521732294489806658056937787027490014186925573522112942722655305144498723399259716539305165250969972249775620167465690815735237671608670385888634745557794011193266518424578706806305191107185547083693409152173425597470292946490459665124294891515610640222499509115284563738912845888750468435528805781387524473352858268098240028475923614253746466524209530134207464058121268246725539877456196336193349207911924955019943908543725637930780117878581459077583016394047594389570908122930403053910902393727362662652178390245948885908370591341788315713348935168528502946051131172999315559312792776703281930412568469991556975186425149271929245997132270299726189773769344188123541501367399164376583656383520634111840520369412978011250870427158613198148228038578563827368702618132382886357827773540849632348095116435076053639447128039617506632080632821341120446305520403905083158411554469887659726988375960258637110103470685741803799251137305793553564218561719128109907217784324283546007071805615677874254987014962691505917293098952526894474451187271366152022961897858853156472482928791886653745500046406240452192838720696938384860964342025286322579815592609129535589557796779959720634568254193327993973408065680855727037048485718966341937203024325868928771043827813133878703271739643449118321070536245600715603911454423357569856339992504860483479248756664132069090916577789750936042268712401375247919529888133004693354222682143424095266411978459212876256133560540716432015436196572186353257546859870045801907570266539926418385564885090998033887021389936055999277022459365566954982342886814940582771449634130831336503504763820849215161396299372742768831454911442812092571016595280595402218215519838775985280555526357145098669923926943499708679273534040167660429361719929183219546105617142048445511796940021720228552979097285662327349789132718533195898884781527985597963079018342312976842227820830756661835278391814335845208676990957825347012636865451468137380125648697129855043748205154673623950794648125121231596912334996129729920454177987425790721839632949779614780872830538055817586744089958873476687590127451047625716546239559992161511646280101378096577385225760290198900245587584741325611225355335987715019421735583610172557141638238167440754271891045484601240895313033220127651582214497727485105504092756256879846176194795338775239207375377201791397941048314805215483227845922145993401353284484715398051872055777131161892480929588208735987390070665825264241017776878268040068048864102114182859480243571094504514080626256776346713621189135812566727404499543718757989234547938168516588016024602516827913946902947567374037088019763901005676283509814125696571760141141757145045043332446261626336156200264097541277184085457507803227559035405527757231987331628077232046488803929238049258398200712182028744012764000597717066546098015960779140037194037993938695018249092142658415763994416745760169007040301652850568693900462662282627739259701211119428781027644830902539454982488589466481236197368575748467827247181998941404649297210425796485834501091809781067320958595423014254429573051629379622297005833561909072242691462705223709922119920403899868066546849617339308976254019443423075614797118311959386683162724910061304940182867739631760920756326885359812040974633779854264059925099516290804890179599350888522181887749557189134637068024494882227430358807797481632989567411808649782489469022939798504274450145595221567926010032803737387120456268774552354947736136030442180079916867399448413190336505611575754707507930023519256088416012768640788136061954474031266586708460937360175931671724125186082655980983270179927974854879493032926908995890511444779367762795196877250392499251919969990646693774490696893034159587723096550672175707646212622526282078081686675082611361398375502809488044380908642714791515126438778777124535805185876272972134572490289422366911832176689607390347948889256751653618409153526300970654329888496757822264129944956117417834940023383386968592161005475255323918135954021292984267008978318219248714702370987508196991537460038675594640604069038007948911251183036161130196316727319900361752695979394709743285290847161273864928045906261515028767545111669442835857062466465780344150780410230841818138550432572797593207426380382186827142232389151810267551166645093917564889995684362381665297406154554459128213267851483621580735503994133214757355847634519733675787494403247978282507550263209143911053306263968543749417176480350404250848966527382304939995030630406909552461371937139172428876158188860853170484885221144939766410651445102443566502736535064679352203174109000553064729738626754844056456469522578791069100132895174392594659388296155917918143899041973432316777171900527651005084031969678111746967307778712207864747648404400149150179818337268965318080112321889129850159674440122605653270325742881692958281529235981512676500797332416262753606540023573107757028071655051759433869227070467184139792904388323761993569088355830340358468999429405679876032284931680818975548211064147319564853092325081761273956096043798934819405587409150177187410101204337730888745109559579396736232560315609609231777575220684648031305710830145389493449300202373585531879088685977783147759962781879675797759029560833600163047382816994935525442304334039250692790407017554626146807525603015294347819197492358615622235664755641937966594562821148733667615104111253158059082272337450305899192515745330735861668689648190622493111973532229540252922442037355444967116540870688422896714637540267500608082247936076016369532523858822381393536615274927312625059340264935691547681282507335946509060201000639799337230032979088372349906080112786113470366762480784970079222043679859812033036964258781034581203572216767461341937417249131656951069096071721398735694397793477811110335427641070037541728565145313234818022703527847408833303812016612825442173801640590848209084798911211271850136597374014918374441522839710682777734522261339827935337163063884325510347031547134272610609246934704817803762718001375891196905309846634060825267370421798487825875903353798391116400341705558698752652322814006420590229820628973629986100217495073560114963596876773913918484353970140259285204200070397321418272496931087000869062336565657282149160223533163937802951628155539134743847171158520488940708063854141630700453276389151032312700418300861980692465754633114805053789743440385289458344408689588938953760698016768537925987710376205628463089092579245230868960911471781861939923899051124782321289796136894198300181728984961145108217944919430770129326080507341276279511989879571144580987933023351760767015549230439681651779523766016377127688705178598055485567650037996430690724252653882811031711465680520462188702369688246543880553379213354363115616729317778596951532120159508972791589294701458479289603479868558555381279276082840140502839813278294391083286344513708659122974763055628259342985740995442794733660801138265798154377518454511398955043484077105343864268387830462399380398782352967648943877921033920300675802362050029508366614542505506391548736378735754140274660513394961645761401296863213444504061895700869209923080858722225735583534255300092089559912139927065173029328891098055583682756701762546621262946362214194132389097950033244313860402180167646811455953010210744034211592754328664251996944705838828423964163895928663017671045103110492887850759405338315801761864201257764888910365517883603067992554041168849079769918935915569297594258799718822044834561431067805947435851722955954872352075273699400106844272713404857090015822246978998418169891614257644225826102150957867001497543553598929476913043949451596015662312519053156708030192194428289315455075599008430455718911777345192459481964927928522341454706935325226904493891707335013154989334728219995160462591036124436010766187180959003172672958902783118772169487379303277421786370031949429340276960959908632073007984340319663444705984694973517208447383282322563395853724334770916423905183337807282538021665179746855988255130460200486458190277051649961159220836724154904098798252657412735017567945356087191586171951753747103989160186608290279558944782604695504023394776933323994810404659202182736342026705104581067802731640330245453531976617294296180404430847008517626816364763355160510106866423414474514006648452407494180768803778201980664589447268505936621454354179360874031370891444383364394142685007972685215587931982084525704344406611561110987902127729988467918813926557509881166439981499771984157974304126024908461710905733780091468185149359046666881541265406109248434874412117636096075654586025430252957890999427908442552261617253078755396629476096343671201274294521179169963661464184413303029326970863431533119718354219176371597541709270746645087072318007994912917222853233771106721241300890491844641850921007174877934725304530669806799571453891599573003363299254188922164436858546150130999792264236933511603970015285492371720100990565881241914719442822385719491813892956616699171092120441266990960592933771848802004885941582993969727023037584594246990577131721326278426770300285807641927622749773554291653370234107310502857965252825871512352163309134399217635217908614026072887139641560284163544348029354731664145214242805920143133581899267563262328376025606281247892430828314194296543491739930077088767690751824606360511451259821653700624516395110747962300860640503835024835642893695341607149147802614883465219027276235325500166713127758573162943954708321596498723437120494001683038265023101936890097434573940713464281775999958224178354414023481205341733988937770236424402452018097658925937100365726774011976415481036743942084991831889286191736908680698292555736171053113266353993118405759323766364318404137471908211903148436552850876555934323994512540305133812004491334424292781016660544135470987423764512792552792447037497979110857923403016840611750934059905972417959603027335133569236246102478163705231040259698360471799451557317545106861617392722129356270386464362759521087425752548483895379636018420507064738716453208713629145915110058086699429228428383434559945636789650488584098605644806718413909511599196763534262416264946445879812150671651400357201404922697288672600402662874256794274266214968983522500848827052364502830242991117834823933563210251965375470603541190287497416357215789678602755639986265110510563734754593801270755574829788778730166407410485693339072341820392414745021712187011537978542400147589879446880743491619662118742177843825666824834279146259977810841325979135901430713068660617312542067601652000896189713538901673936459905905435491960633770598537632683755941753652972811287044797194310132350374814762040167133746862169714527006721381650776081243993078663164599154613405900525881395794141375937994181597593299960328988636942849872857972045227565419255850894714251917866363082376754529926878568053427974859261997564426382928686735128534534961634742042559979205159820149445876127582399722867242912828614150676152500906970886281642016555628023365812131797930615449316826935752712295599985156788204783691856140113597655148542137095398368404203325774947166350252599850371289188693644622700649906547221887767965653702904808104248474918249423945183301039432122242800980819021477052159047039792949855376574767300417483534399614019024348577377691145478153026500825146644590503728725487237135690354919631721084440402031964609578506751931982138230985947179104667617612904882294382356154604585385856381396281600268745939444387945749407609553344227599519690522596544879294763976234128111593747884827086541365511194820454694544105940869631492192721907808835561107347624105965411430392116915915877616991939286647977422652570375197412646427947871455194208427832475732949259353511587136166848983552215363226400707051144081080972691274369331033482052943878580637005845064974584325489061242520196590159678673827500649419996183653053098406872653187941642794093533108376369972655360032372788414703571987238989395465005490636861686010388860539902579229997000137489429184909617713950851756839034247508861281451533318875465742826628726747297556121823353285708745571178329843344634457375254509176971905894274573653252997917015329512988872013372595671616164306304252473949980949031638151662867367924893592956044503592271755594284620242237010553245484789595531357313949611960600762553713446911047477562945148822700734851828128568634077358544840163620308997477452888007933960185254781076951959452152931668224987280698494329607215687752291208319486174817367249483150205547119464995317940196458588255023470765963466093425047629919007964538047951483874406357687147972563461883179710597376410647395276647960832439050130546980435915885833256188815086111276408901891250687764566915213653733271951402791876783273216690312132105378279936669389708594743912942323643592670614741997167348493264585097929053521411531534896165825439308751298592972484744318377839111071550237945447017412029190398804273498074693516341759603796450830902509216936296277281131215118158201196446956326910812110520350577196049655073261287552831284256551766778791327420105370921459753771747868384272013263421225419889835006567143616950721898120733509358362130899003175025580502440824560081014659622406767396672799926804027787000219940354815664379058932396956429716383382960940937381267112974789231600691042194909868452501890063595513967789715104102760313857591729241777993647678043568849182276423617427725234336029889585116528367636198481493482372431389904164794469190176704491307370568676951285004113573421938560063870806996013534094624860423433408423118439821129725690659998706786512424196968785234838751193428577318625889511461013879142442881368342538064773122409270822256274120344841864597789893169412846461278902819963053343335852554498080958343444403659149894059232847296674512046880656796796792020846310408074697132515953106009680370699325869074736959864086632969153221960401838566928193174012772348490075504794229875711564087121814116232509982686081660149851932465365291494872162737914618055897106323135775859805630095768730914469750908349021472538232355651302618401405354973398394758981847137536256378344850257544668430865222444184404228718168356707903453292650284502208883657793371906201037394103740303187424846428059442465410799759826085113041364260919578652601954740591797097740740582713781819892065560250861999070208901412862923695457142190861036329594226331590185217897683507129853811416352438572251011602419920032885680856524605282181331852384719783705653709811949609628241385989515158296389440415596133713894537481564237057194359797730545127207772417536075317185274091410567384332468361031896715709521232377186507629671034974748008446519244099668389211820570297014725724537037808450226394185847458382765102817487192905203991458356840398535499992601039446336937491886747748046476597606926417160457095210097000189704680441434423855724314577360520354333988024860943446988882270549621518020255315385858262608042761540389163263317208611588623384455829174252010180917995597926895609952133432090892501664816444847771334885163335417703459441052840722545421875031896922978679873680419324249688493678053383750037612744623964619351863450642116486112317322573682843989750539316716182078923605015513969474004340077778311628577089004852712430967034355362265954516737597963350869663865948957106963789749664425450905854103627698859545668035603670320463054027192293055083377851166152586195640126017345293274487324156961949510738104313939408625417805715429513282030029824073124339725570607294910758910745659981474004335239178668086801617333525497161259826101845783358854592952739434325456840293316041101860123369462818636474328598995714001681926126798973856537994854735894334131177730837367334569087706769238132947727572215164892427860930509192976669064097714339853318431416825175177438942794003172056256158281528208004152907602382819334163590434742722588835087425081769022535048591216947868839973569707016080605954706557982251612910194524649513489765502514305899390259391649651876920941179675315543767646571396804643976754656734349293717606059204906114621833706786430103890809994367957124658803074526515569092308750571923368352602578966685922082659091380401898945844914949098960102676056650537638379363280901522947385207844451532762553695958917311209890619260595754833707515554290056349370962461301614094966653657471732094795107840502636607742332103738793628969709478310131118448581219815125410924469641139103025776078639981692545287214103141288750911757396925433121887724001361534755523622840584398171849531010058313788718864075561437144532070729857583836673308214287438612500979418222034001191177488211107767594053203128327824587738134049158353519691007732008787524604045597053391583821614444977487001583012182377062911693524160853652795860239135526878297075209642828191440851278495270626720408501096950018976603296545559912258174013084287727377266494276091352558555018923408100528395927875452196279294024996803207062925121078866017713627990838023472084402901033727676648741619381370683655497972011342808441568718700613164322752565244946994580059882887801205524882320839223398994855744933091747538911166500519124342537797563983903397714107784356868185788172435987125710872255477790111898813381750306004336984780301591226526339380942792510603787997574505112951331438829938220437448351734694329412903810195359047556360532681992354145582682221810469315878763463628954941218000433965149548384100469728826458661581139809221856643580764529070110692262081909472881750084759140981334534636820302983491697961752947663516573545628011231908743022976320958057093065422834826719872349741689514233378055844252847832254270094675275125509889507700648908102436536074506398133937613501868472141610410500627702555681499654166300923407827823972961381930003812270682424477578974088483038085014247301966891953243546776609017216397174751519768819047230873648094644326550112678534867721401849742925211372590344297702766831869728973829939316050535635093338504693523828713251453232800868972776522233827269923851039868449143937794088534688647937168095627272941002739028540237549757038936758620724732415377283017730105993251333059915040269574842879170785511818427976981507383867810178180397397565325110133525640224062479747565415956477485669109508782095716123153381743472659121881603092629608469442793821838595340231934334351793683874976965000838810621716571593921274048316111552149013397382639541069800065689466323711600131174595876190037475450845256816149394363857017593106271994772010671867096982142084865854578194402027295422906286734133096961678794571421030415041727588115491883659143244131213782896158375305906634151699093782227800456153218780820186301370231575011330904850057794982210157354220391650609989119882581018388494966571183819581977326575550819323871011983837507218519023614771590385700546704103651487847641985228780674075683226354229603998434324477823893290749132539637101797517973555165746247999322545594420430246810126858072378498948414237437242574473758922499580534099186080561552912438739762007031060846274639045270065952060477701376624762986481833716234969468228293185209214243652901507345758920430147046489350053771637084431133252402157545504081163924548202492444247532241885380702083065126181659272920031842860214696475990464859266586962885213376936665190744795193322228844104557370089037932311946350765373797202531298321307998899835854501542388597233706341752682691977983857240181517070464967071578665997094441966665940121115754292739650064182500091918706408335892273944888198935005574951424305710757567450064381960821827414253706454807634816928567440521038354166841589860976149157423885864777084161042616956841922573359175911270956266675814850273895639331551663357945497339672028009313044249159902345615474726078151179516410023402868946171829645740615754640763631331408426556182761045797208186202224444469018605164920233209095097538351072148990541644884477652978011178694515587383572048083833677909660567258874651130548766892800003098639527364393721008320561553385664412356649576667460228645552119765344187490852137080289410170777181091666653352019241898379140413466292961278434278198904396174075742751936291661167146201818389650887187580933919455650814487552530939197930189864501291316205602213669855810289430453017842097681057839662635618383417059956544131096786364010400729567504583903091444295186226662792771132220625282338210184677742054889093548676002469630887542538634048510059340127375237110245833134307952571163497528464527879636988498368736637954115374209199042389010661032209345617409059893851763016326542087985379856091719574290870580551617832953852443248653219888076341159312839012759867778551573375792534217414959845729348411925783706671629735372892677296244386064936879322185513748719226558905530788618662370436422514514703233107117537391149265191208628036150874431321696671892392721670244220884912653112596530946430153260396996031566621292232915735124369903397437197997895499622692913590584994269215280254453113026590160194716847503355126670531298678565032635225334489934008181811573331117118136521768098752323162763508678983793543970424966001528448823001107018661649142898563327832636067718503087933717529882922344927821752207974695876870022535092456879100591163890083748932936742928535696712070011909499281540967301154517722004367460038923626339549917706449500050206773423602960015287388388865025697231359418344817701367412507116240785630389144934963344611417678263184079114469548403120813022852183200164029280801197713142889881115418794965530765110847471700027312756823662474580633400733050675891109947303157506495272519911686276855174033232649390256518318715601533053913936325468680041209055816582379968675765300813637048519190587226367065448863601520884610458342170043403665194598976381877809514513018941790556306498692604939159420330052574164940349095864944553107953131171978196040287599286507607666638030818544483733770138501499503784400774316916774782447581698369658727376863650033019819388326217393293923036695963715869945182939585400304690692461945813184773035033306973036762652625916109882866870557045037816303974957085801019972361863227372507891995039669229411496485397272908334829410785201049528856577572426798769429022708602590249815570548025820551631475341646951151591432696998331002421626411450214838064828757687712457175086292343926512263379702037137698211591575637204142773361648217007359471392657235300593696997290913040256430004345176922542637689810356994220874608606144875666610852358507275469296990681428198800071927766516132266302070296739827684926164998694996743138599936037029035625056970444382592329310071718671708112480172692421428357099712931016759335983409018402053045606808735750173391843293229282437395152475630238068872318223582372235913062567998849248456768982998631480967283480703618412802661267247639488413023613714572389791825653466700808333203493524930191849282180493966915464058340677215861040283658757394987166471701412060680772191470138871912306708346064497232652260892966621963708364323167502402291563376896700312598466045437564017497346949873091761846390855129853068908970583336770851315470481856180139768673727502849431433639390684097839983718352038571665170333016965311401828123721737040640309688868014490882801546471874472737896436457481000119882289701437558856246788762538269280418361877049309726660939053764891977470838903726669123334060405160188193521365758875361460495407847515762190674803541309848879821595078541722574602210857219648427579400332135932807041148747833006655958744221223453939017951028941178408101420822976817922152559720275134062334911619246340148218975661554643966817035169776366761184966972820056326464612280216914551726802813176332988697489601664968804795506762026991202292804558474196308626105269547022817600560810590329376332177301817228715680696306871649909802308258925705311846357811129374426183954120167291006152614225297360343794852837905550193528691230071133061867124367674411251426649662832434491704873853172844898098169357890247452313345482429941703103116041912517971944013349192565318758183425135632009630362963902699104411386160640892213827916242577083831581141444535641604696863229575004452912245455841085977762643993178257968650369271424467452040103245524038845098423870975961598177340943129457169743863023056580937302008698670775360263550459179904290297869549481775370699720579739529961133656483815700861289342218360617730168603063449374486092727851304153785358812480916582909946650450925844872487032674869248350318539241948487050996352196920742681099654217873268580571910121272939125344735511030695173269775588309375291211599418905274953653996304205234111368523814161299166560094118042248005991332011536456533475685589006220870214046091327253694651250053738352695329251879937508623632349648094485490870089500886877010047355948937447993324721032795098890973695194773090090373978516993088625262533192191011913288948554567974297933885842672528274345196113371408809434717968264282356993807123268357922867089642822926798052972771403081900247045235155798429269636465565538118476474407279501263713582634084017648476909287888977826800590366368371827582730299225979792069227543111740004483149800873914264052356157406755562456117556313235010047853383770569537913350079409667840709940850688591237335290117797446102453178358443450243724703520148348862988802143900092021393475609056342777861791778943431356757098750278140662815190146276058560408344699969607082842241170712360701518019953759544302292091730387429871014507147735979496993893262968173908155893262522825054563857106808492238727755053687697962935330378559411194730005092547816081815809998465676511012158318541870691268775257441070038498379798500703089005792644015278803348577408304227364765771200969273789167960675465657556309606486652201169968469487646259322511774388275161546662592800037144878463453940115678043568483430117709442850387006286570440732767586544661360496112939436708429110307416008770803154830953269713331220137567108633256897224682505300632809560534098273086065242713965333922353387509763349165269084207827115970321209707120200583399432748184992964684950183207947693462015597958764655086260924260380558727639670491539286627081429088390631927209603558830453109520765504350836014233319640033094630207487433591575825874558709807711564198830384089643860735643354018549197316510468684620976413508946955298376577537223052509885016615186502403577956974487076891131403786620614533283519647244299553645763653955712085730986367945888814792532203158470238294737258220348243568390320985731186371433055654071579034264939708808082571810091528611591162535501096670444859166764158641101881122982597708918384919501390706525882105342498359764617000019478700655865792277856856964990112601504155704715092530973555577004327016810634224934578863581943754669757437532138087395910887071177945787502116468804490731427038373367915891067374576027508961657942962227387023395877974054097103436258653866484610132162004657712790149255425334380308702064969939705376143597901399746295027947400989039141166121048882451855838609058787707828645086155856464153293271254293981870275879952297150990728109598094719490186325821840423435735727763804517480204232396750559759189709545987357277633950285205041871825351313386962381736221048035743735129835811176807624905304398065258207311490350745282097381842108414748234750976218718593391253923099575763389392139204750002063339704621024074306114955134920361623478341197519674644167883096354297827848407619174974185450559275445987741237463915860154262872132604901690044138566993213252386105417587639317912617910313025746177876576901369361916085595050899478891538076340259520136676177011157467440957150165857821746977200074918648273832504682130475495669820823401085318817660025280737554033384831793906982774851320126009547725713658581955050621557331321258965922342052653723413396721286501417626971475798825906188573489389488933155301710178477162479881323182489383627129185009359165757039678103494905479203030986439830519120436586200012692520745694175276779326199973455459339381663033194199562745190025244071710235699144589153744102309348022963927217288828429127479561593874158180579316804441899478235558636121053170674862986920654067515449962368081902208322014243599828314396543539830334972453168867346023592424382540097371579791441869646394700775870913141813013183213759914854964011883423254871537564813866545394055323382314128908448202824474776358084465743723621764582933521665418312804000165418905479673348504568194515429998000662162515506714210399342978218018229600387151178552493623841111527478353661160754250977801101082926648579391850602625921596957704181141312007351075484888930122987278086682892221057877096116300150633405047392039721574362000958757992889184217187296867183235466052639234110191389538259040554073922085204572641193954911365793387204033838369893796663064463768799243210320662323727149491161702862318654288613799685080807076864941501136563874154655528694533389205528551009299484743245558794947316618180364997361099521407777445437209364296780213898036968604994863115660169753156676713828762382497536535245318676166107501458665230939636551844916256913391420531531253550645504043642528989060698151452166954409723600382340370595374343850176190561017498105987102208111139637689935584195025976172811411115864483469162966466746547530485412542390599779001837840773416278553493605168776793170987261715514791457316902436320633869238741250894876214355968035562181575712975209138281838330013054695381240217154894826672153933602033980508291116432496767940851346705491226917077682348002386610609668193352595190070427072653700089163175680566049538794025778953740720349678378362683912378899107319514134568709917607983762210216544539952385819226064856784168515901481478187253529890654646974124753023770976698367121434935914763918555905802438752194755948290542977353107941142662862397974782157360319568704103697671343213110761927380706794394801311681837681843136802644904671684797159601079159541031273604959668336634579960410717737646835461683841422540269661441987923798711339609115884196479687862125719812660734467654603670400273881995706719466487902053152653558674187766928305210135788951637321454184439419867323972622997190858222923805846952783204441080473854279588768984994083947339664273921874804093189945768500513953319155707969163813163829355700257295141844499226819490344404947258749069297356017052707040644171194721356485485052119490202468272201099189340064709949581392320740548961328948518394238046018811104505502018769245827613959720862120618299558181928818519690071991600156620945141241683402495873492115325180931284875223426774399619265060793614247965424139954201705638711421392227797890522497909991237393625160078466323015484182615959744538768169413863750883167727794870600316255698145400693999948078698032737359097685837072473468255146453141435342370400307863800175243189113934411600797215473643587245115442213600754100257235120265622113610830618727777026846860100560633059358617585238761058835020070073998184879313936147290417647196870002458935725611491359716712638288106105881258696161885747897540333731726247511692404610002180305944411976843110347536613135450523132165748040955624983057657186760050539845614568537816206738946779916457370324535251567485005733961484824133005832116221938772839553636935064950711956586493311029709209353135337406192511514433628489443797748889417075082246293097509405574181707557173142073111505047194065179697074976481883279240400967392504399025205775884548005838695606718845745281389483204775086714964061763133179278223604693194500895450323787357530705205273489948137519977384388389879988485769889459010443303048858970755471920499958030067697685740330775154926242712582883640792585042954225016433933035712651654263384985229958728391367071642268228496961655146427566182642567407355993782117433673097694651067087140370662862311389364114975173281321379745252526478801884639809842816441403727639764807513774364648884272665584510784655036811047391629399027607239776479991122206081370176220795228353413963930489998399225517467404937480489994865153386532750092480534991998874815687564491788689571382364185806899204797908414153330655851757205920884511854523757207172789303341785187532076390888124430150029764800014290176554848149512708073914056060091101626052207264896385670510948360663361008453767743870158984820460473084733677898829299277303452571825195843760063454191335527320596553885747672364347747830493686645364107262184289672052629673955215951059430569708310487699789543307984427988396235098362622502258116762694872053770058255278303321826787876515508712289628184879921189846466243220342068690508226642478212227105911649177991291716361146276210085365366398494222813864380713536408960048360307378227796366685488100001745908831337803806228589886883772701184903629051604165571931587178878156803735766299638645219889234558183698706078499426059754994261309881302526382811829290092953651950084481599820355741220695919350421054084868284764240898272275452001364943206911480977668300909993107899695036054975664296677304770901594963765078809881153690177479285487641647737865410451784687226949060773810423975248244233667743310139463581011686616985734247375535198348338735381728408841312074714663650608495171152931272011314791170828079650741961854308725546205587904675858539535123476968348218837232583417110110219008535915979450357244110907998290114123276739699515737069345421707533824899433792916284229221615386918075621556324030848517539385596706714721777536617047487132880106306702940937611278718919256514993383214441641350770699842964606487033657591138661054519491894174986807617325644193996254294756172735643955782310604434855252201360908799120800093883086539700968837815377562028685049542021817556718741391146631156303001607664983913504812582459594405492516638498216955801868883973940414241526892644572947705745411860369020238954982723015298670377399175288463025994374290025258718434402956532653739377456158332426371309465331711944320991155091055659301978188325984180524856204367252369050135947166717678104074136501523845610608988071821519947111650204136098315051393713410400461905046702770467585140338214480640388642846472542584011207297913777748056188411374148637971782764027312283795433216456724350887533478755607333754246342935865699090857848744160045485523844927226972795009185476789182826897064278201536461325664680978818822064991644565037826447125247960642738750149335720403862123570217432332626440625903406896905988003492863594628728375974544718898580989108854614433485057942887747444345763795837237476007755621617267056468645562599893946111206167771678787545741162870689211111323445587522752979366651845429210378493967544843659061078933619894884497336665572219917438567455101872889162264045249670710006406365626352620674776936682868090537748007817926123925286888532054335048415959427502119318341441146225898359760392017733609911388827874403612615681912105828254123478852163546240128519063631117567689280515603977759452942516221052797552558591648058126898568223025487641028442179184445460668858878990962717147638204946710911651421864542317283779492742090881430050137820100052145725149626311032264966310788350786816531911380641639004766347436906040660720495951004548864227053725444936360408080289062678073055723215063738083685638693931891369072159004344709694453718164539126034822922568027832102267940058931170969548194179604565934281800844698628509806493653508953643969214167970297682539473694579000911551580584797534225830472145674129335709396287664917940911768801083647059213461525600674098257862102006329698689818275658775237780263555487162068088110361080753733382025080453923760738275782132281505882225720848273419106987431816468898900414242160173368661772452503250544712226667553868388749527328262473356567699554144837134302581209981247104845187980377281690648935607342723970942698838569237548572908190977147966928956046955867662361954812047852136562058683408256293216727602245841737349961012126716648233433112856780718312583996707340558930782725657507578053462794590927007915730705921600623296079193572425144964319201353256674450479430725772434838174042753775782877954058992672693831112938784909251378898696675204116012923790726477534743701114140314135444504278019870220620028942379866227580492680823199814451995726781176219833213082931763631115444474699800432579469598457944897868418707583487019868107772118000256833950025988986865616723370483829663941966769755136025661162551057850669959140029977958102505218069531272505660871660158639415811860939168133474888787127781806667766204914718388107566642161291053554028378505013202616259760837292792578191694596673343364534079454820734808717641546745909650552541758350179613996899979771738819844190148393348847368592002871224025903463229834092983244184454908435045815590352555100450802868710801267185485224680529991716406674034458930577937987951054536930527632767234335131948909482829102020084813077899286175231727328931861427035651164564825573848740645269871642827734577010853481321213323144824537800513212039384187499652258104215353854776539205380175032702529431005325012111061137507666132417391893628525707692003241434514265991137675004638968774014496546660277647777261839064958320008966966465518630618910891810405908164737956902117554118413432383156380228269625582624747043216111435506218610659568431961744191228371657195394621730027606192097707595246790361853941400059095359750399583603038248890691739821295581840373711339954435243574317753495972528887359946449115263698431197573482466790048623576451913440469902498087791543453978715516297457317221133645743836994542083980089204493907940439091664648595660141845530457102805916858884308672171729712141262602118581360656035662776407484022206540646728992442481609689460261108931864772656912251796363728308801359551957372276250293499231659163992451125066453441652880816830536922910782864726117024433193580379141424684665574236027422953197164348457652495269057208490525750504310255627488287159646317623372148115718578004065588773926732423092848489902442525446958631950184617945699529486109514236529418352846770931744032414438510693801154267580472846943273131919014158333473868076883669767287232998802785301709287593062121690747446284833589398912495052331507177059450515375203342286436034804144838079745142767026493085806135722589170735304914443416364688676336174296877389783724594191874847356787982408457460151332636994669192980493722237904326001366668532529434791625525868960801438610592602436695206148743594374443034836003466216921633428329659506171324324141207255533476919539381536023850776993454134749428270116398140083850813943832923712880258932046821849789673484549029352955985138014164881411129113020058113581267979479125942836466316629826515050241569004940207038547967379670625485181688874711011503092799293194482187962777335824779514487627858372682460038933858569368457309054117167688928538869492268564785054377451911063200850209079454978669850891088205848618027505871958365999454838139883250496635272676174092785332715105489190022668111023095512739326931799361090931516320670360632239919933582552849932480178919794912086244187018828946712088584932121800587305995362761458670596762607983436971813681689587861436454202952902095713655242755888867878357212334466351720894623442585450246744067182749684376691067988717504653793565775087411208438395203327366426575428430721147878047008732999900855876040774262875462050938308815989490474337309295828436474699896318383563971721863291374112995722406747206662829218542242821641627769413608905210573928742947876061809405390748560087360199438311589242314193182484100503089027557882933747829937927713752830338357749972034360695423238712124587534267740003318903639229215752175961481391646709126710997970067818152918294847588666239886661631578534808621749750427362403211822724167983811041750821284608976890191502777680459982995703152701647776472778529317366657141201290347398541438793517507469847777418416229919210916982026639511486026744348663546708276838366979537185927617192475408401729040251739587768589278009505283145980604168583895509475950962011303500306625197506382748963670851725809329705801038908051582740568249629252115065267761949494083781514104820872566770736441677901256671572275679871540870118549211542378428450831163585584395928734037707389101752677561684346016027143917191548815126681823100277198869227497600409676620409340515035675136487709326089931385155425851983021187981564705698211775556725532739361289448909355494764070367561578815382648768146935841998267112515336658161223988039363423806445206970674745185032062282178978150356185080792635177842889658581053333926586012505214769544572977939161035328597634062084307873921312316141941609831909584516398341858463866980660568180501857715514363564786888873786835818442956195480908171854495079077608633128171477098318093421028172766322226755556754175997157987087384960130847699719999882688998621806596536624442752265732579635871605812136653009595820561844880854023588777439993891661696929479043516480376761526540144911535847491372784177527760726578308293643435932401914433748437053108137139120571598497401019843409154765279015387213585153121596921555413652319867825268720187330082234480823678601374415912347086390501029097975819581542197220926734565760756949916615263828926067576515264694946615447204946395759459447156936171001804522401816883973214480462030063182187553907583226109859869527374462742589108658922696272916658370994087919174371579292534420720785315845638927615988715239531394578129035721573848825363262598733127352921274578860316281834722130063008014050225033316279060735207222379496735418487622160128334887962617510943904131952614724749074690806987001855964750995975360187686309400658275582731350589462641339933645961455956829819160629687133596180900118349420177697995702126196592785377672228213418032177693779206779197631098654999867295446745661550877273544678316124304349912684105741354231009398356772491470439361372892217315677387783895746924098191401986550264462201684914437777584548254595382112577163150966848069759202990522593583026729815873015246954379146381202901193722217628642084380869780017726824864744727221645953363241331135420546469020567434632402140248352068079807560497143219036844163135475193584922302657139173002995506535754421317138463655422456188688511975496531558123099011579304425127668694709596687120847532598229487518735941585250930141537794192268318233973386869880861467475585938224076132243900235232470394776672829807715150670052548723462422253152700550358462391595093167745529373615122974443415316557732164431476082780272037832503535063887633312072354864938713814533590766245841452671595999443906256518508115263642739673894336200058087209994159966042127115904417082481323627873175319483942818869340357296958820784566657190688402027845703031212419014357329387475143091289974174166395775824112848749903182705286592350419337482026963398722701467178848364176983000915950866792159586023472929177982117713298824442616929133831933357329098351975166173006750209352143639810644757630964947660232278321251762701499158441496345733614491688439806477867127928887371420979423160108248665833778372172473679138623094095711048329628054175525797782158582987449194636407262952716205432635632954245869963984340930596634085908478850219289310111128320975612906103097283443498955476408442952799807286952406012963939241049185034041503742419160519146243648580797617322660586124126268858771215811230127991819886896937217847334338195797319580809448915430896415592463236139015570541021944973153520630584151091866093235946208974124839167661297584188306834223390809819732861643461608503321651537469078895029016593964632744232393680755243962875245339319619899364366945837088342527250825867551471137424307404407877816375911480609485971840259385801825469503345100139868623747927563261675189502890539149276213368592082474409244458569021697198399117290771746224119845170859860140426298637103840716695972489783291085879124228563019703525110850886675749854534912230265871832084072752584195573817537174386423075950537938946682759161094375604025127136269514356271481960621869436305876428990573873143827267031355728687811792686427468413892708383851340351453528096632556556220101785309190241472780273380559310439930834738784897811679754129614210982188442867953661994002165417972785140775142226597175085696027315520813797873482345586757733260438648061823152525468169499407580820675071306531641357160205407881711051920393272308056977606476337374947553011439065575240877561981152724537957815560921938861414959331032557511118662873725357336782705477032780426357757483885212703956831141891202840789129633067721456914557531944693434673556242571146568392194213625820226065312634016092092624597995006891974541388342005330936347539960578795266285981907388371551587097441399837432007899877417865409169711776090412873772961075240975860007371226604469510032657680004640890072444012725843477212224136915192889214747074307973603412344109809118437058137873574423283769520897456298033722672499757626241950693209832780218135647852650885432238831176160315707356702986213864748649144161788394935321882621799549200659211400104742507125684049140889105298336197006308139461320278829493247315879235058843184134445513962644219222934226707149026765179739560318908133684311523083687684261787441334237202399051495019813582020569896629417694194815014351043991518442442683633168164243066476126797515953977835417139299214908787537295875648000275114793608826480962414424934670093109923286569444448243985926311710324194632396151182465319344402422618095065669041407672140848021933894764112610626838493619386177003103433121149911551106530026692325445663351322402446436682706926743816757424146466802043890612173722528556422456561874799859532551028185574412093500669274505488477283800830793572800533758050288151185706045888329822399882782164786788103753077929544033024397738673102062904067246747915351674463526764873640532333935913671028510151572541517498919980949675309841549841092087851005827439556730740255933484699262454645207687713471689423076075353503350034134873135172216913131180994014207122771876794367698546615237662783398099923358473194619012434200764149382411123240044148835787443234931562671513944546190480003936373192405454914339714498191401189097503432230488067969724660415009253450730252969394300371367805968172058831536160926127836534789834165801332078000172923790908988248357273909048327302816511440373764852285660606955457541065306540983566952908532242586656091042826147403608234606462775449229891178393608017396880631998339551027905359773935374488683097625739679262148928091401364135263340542916965010758773726841677588152637803338224453048818717720169034224534480675355334362959564073460144863660695858306150674654796704108818930777401357088551305416856630301957836196158655616742616526433711661657483996210318102955642767385365873603711477250535815458859037034588686969624569691870953220056336180518774337026312881256594932142852530763543648186400735258794209548324719416169201536570067189816466202361956815677737701370751141800185440081282530620071185264586743206786790787281797713154541643490362153494520173446099850529010273018581589155046047366434329541556830913539527863291154482409748018094620380212979324689365330097120956725754416988266906614624167698274833629944081733047781835891505299546017213639925378322795297125668053303957170459805825377448278439456462895303964945218729031670270769242071307131710320788164703654224820653623870788451149730255712271863911798890586074122765852736748228030115319031321364734511267682217120922590616226805817112272664186117889043199792885706809102942024287427217998874713834835442280981894599848065391707395217183825699278994934867106998493241698307138618954344215208564157378548373525039881722897421205179839522906149525891852623555981912969342240504165506556079085031840994528547012346568930741708434713487896421925305688787695271226310382380322943999836656028575345461008440931106912458713995429736563923265103468121733055726077718959778963671300642036450456723061832374098811914723634101546155678447769627981532133067905857581968097407642560504805855359740895653849592686840677633919791024868052446875314737794099233102282876968854302923316283725523547072187617099714327156199551841095867777058603019132056847741790821148811406323100927086512602007590666325628742209689838470094746388522619665254920080391572098155325345125960929438319220079965768688312038555360693195874426039975607775847034508745928900335803175230459746325886939997286012663144536810219685516341869712630808709101856800244168493016243139572474901692248496395569122585060102587206261861745509246745743824141441980505020902553010221494075620699196411674804863131661218635936314527176502376049382911383472463992930093265549291776890876635291215082848498415770209481625654192031708727985575525118382177081218671038113460208983891625163702966061861948977887466444590879798929471532159745659852892903616109721832949675567987586060558761708891070908341354352345493947165026339698856357830208372622352517376487476975355415814857228380214789930298949351527921389871805569035132942958170576121638471969008531601675530730239295925786700725341135363743316580691214305673795573233726638711457046065039176575075972924586908142870192229420453812893756911149306369166512674839175371547857547383548393212059027395107384091362489340147446903605318674556095373345262220442210479596507541010087894906682191284655339133721644465341705216967568707339565243451972711671209517755444145551423800918012505651419628460813556282884090133492554103368148094954075382918940274222803719790743124144210857930682265771143976546289643043806502038239994006971792682066939256919654939261946552746584308686495824353246746292763990587792641138637553469488197532042455888577394066770028762859464955158951629809214019042553097651802286457916069142886187495488758645840680942778459307762533178601700205630126886910597541879616179917969268598889933561705224150381506237639613199930941331589229936308264297794514266798682456720882408438739334156466101388711802045053410238349505569961780821272830161081796302100009325715582980776769096556742801555081855411649857450820658067336241313684091521445777408651563622235908058796364514796577579531387066086008530612418370090092176432578757551092194034479118574092975644649636994703697291968446147583241028210317817834514298634789067523692898900306759556420104485843727646903956359232935429310056021585044412544139790843689640428109936984206599836362824464484137146224993015662240833814611811423796397256460618818420450068022964140442893289437512706667801065256685403216707115131544955224639137964437535722483353222987247182688367872861558153824820790510385108291744882874309098887703328846647146088185390741248353478315392422224674628816046722290114683561296110893832662365259613019123980148212135870115649884063411999416565959499374417279804829785294082618683276354823130298549739647424840141072232751675987817679779657874200226339401019638566338232426137267136997067848703524488153984257009406588041303456574273110757306238462495621012338922687912535032697239507242129898025291675319262453275320244814611693177261396709906199114216186865244130938640620276975140911354794394552225704375742995443942362608646567043311122733507915802409784336797547353961775776278784461246969006100639245762006125626833432040240690774554468175794173431016350720294237831092183239576074264490643705813714969536114474892786709464611821992656754100561550309492267017063279628908618006319115511894368293512034245948386308946262008186613664735304142988826057641979258573809526765166310130458042417240801146832411072481236778378293424518063075472884154477367608753257665724542442766014747806677246465936597237278048837584824441980236015275107491476491512080752484778889723735443739350537865163464316561375106512515991597533587765869959500786803659643778457025602879966928047466472524660485084843114975600276970693432268377528732940171841577229304808608492421252704165931074186506093723376282655788084547676193013107227951889372112397986808518045524220688389434310558634867076817479835626646175263059909051299589142066438161182833724769033619689844302253279810905890828238825849268300458538866951988965358071114160464336423561059850233310733560203866597178589016896605040862643338892665182827534350234511219842292355901464451116468966129708335812571300226095033169122450016116730606234476280118168294072531576838954435974907241738246257698558330230350939605747722252531163461771822801495607375183189038615020415599400975616794807756700054110444998972720364285153706269050128322676252783956126533624957030987418893591274463421383838940008605851213616701489878816180529684993882739273381983274092029055193964843013774944758180225505787423622279383918437599967365946065468975568652275931970037586704943672630116348721913105497125461907142891583335286774463989588089855615198082149107666158007357271662733081498565749334471502837064018357197008811059876366680589584934418350453599721635630869644832901535580972772929864444292322458230179390056275279527742459028893809611130080818505890113152152945996617457322983893805498461877374048996279301122220161945611127165353053722420706501165492572601539462243076780418586712526766278861289145226385271182779096009424081269321663566465052745901366324518648934982837412716929901847536213108160677802614764268722903105752074975018423867193983930408065500548759732002889015887558082643006972649320963813437673119035795687018261966779982952176782686896419590689320862607980360606329701132912100981928192187916794072994767124916270890728001693770970109863267628330393052084795690351821298166409670348079106455086759815323839958388364745020369739803089948376894616282709378968072167653589375021614265859326342896247616472411496313184157999321733009180270924054361985416150295730451614437731478940408920230998844984396638250157848279897824078288338705016025040221629666982321106000539831660371115211286841527954797321239289545029751730037525023715933682621530507816166659008479304326588901359739906372326551075154364082996748045987979734297762225690177439532507240420245153965955946034280723198586313530370514634914726367604493952138485123320067826723038971598315572005153627769638475471905733642177871202324650294108988746142760800353532726092619985058634328753582961235101573635575935979243759718979627736139880837552663887456242225417061659686876489463411041047421565279826048579731717940912472967356546149688139741808948841003121750613984449660253691103247450526818385158955206643569355342801740288383172805515009138615038901499893893357985604162540191377320253870672630981032598793973696212941952508920721696257665262225369116067135733324566194744420417419246767494487858344917290807491557323196995470048080528401707386017151487182257857961414423090985370811361923213259620963384090676112677540123752542662462478953476000980277432734157386110880139820922884931241246820288846597159175730019709112282434792286570219049318909083238142022915205727812113221407474694094012908042919982384889238997620798987058746985361587499076037428206935181956197354067954278434531525208613344509501038545176788316254203054121060558769130366366527290399994652753801217761794871154161190697508707896095129438671271643101443371462457701355587812768951551195170569528437465384077360347832528178064055233993159809579652684365727799212368428619213544978586245237931287702132668019208646483507196444413256290899567048100280040746940846485900723970382568857665196382396362967492783832960505707766309316972289636514183100592536997862677783903891667151867696698845337476788984977797635485965789503571692580126432005225791931393727443177565678559922862977117632404678627202525950862917709820750196528096326791102612894803542345294864361677257030446462166983017483173672714992773058115946269161764882221430753779448151475269390155407377528249666957962829170037539252959441704212770866605483422572185345572755491655692465644369034439025806908227821511052151405674511064142381799173258322630489064945097311494645965797927062102898318373965456543147400330439463570631753435264310019671525556931660576405186129470545530916448006860101571469323155851164500841308436672992481614840859473710131560051570726645617447877503425509287158736579221214454186790348583769893603577521828315812968176914424559844455192373180403496965801114539432209797330439678319252640215275900097049824944784369503887820320916723205026816464989902521700515965331323409812449902875063036699894246170848199961580106359761900794258082193428305675405122090089753238086674752436210194053733171607255411485387085319253264693759082938852857210056908593934033320593947971117271059479192593697745634444430107392052148414036406007864497185500991661486606891687689270489824707146715426275839366448926390355812353683826970074171219878577954780410039719278605358938949770422784654132917867615353728550412546254595538427918773862100245471807564870678571191501310561287180436234819560952538787442673243768635835865853804385410804637982626502450050254638917392360098373955443493904350862654927426830647654532422034897279416759955683760362188944241478543376008232409745775708601559066127899618606907985752195539547225422018825093590991031726644917222657975494809521183470428029508773496047832184581862446197592282045048117228716638872272516087773105105611373314452954237263655964135599162838604527268396768902696605920645195077746915715404646013900515521974390585436906900740076227166547293542521732403314249411464163932895399938709794779780370244333395395848714332924967092046080940768677808624895416483351308024559501431725194377282999577000435548230753968147996920991557517017664403606664693644045800320480842373080567295779811513485314818911602022628942960742618285373038445669079853451904055333047375469366763376261383809795954397782969033658716981730746423209479476903212016929615232959827883561408416233344128223154405290400768733736457841737373276873325791339936746064694329823274099637679070747476833094957174169580346349330918832471681031021323792667319116178794289042217083466195572626048844847057743285213193390265932421355904307035851208697791123602617048763818354276116478434644062400807716817045680447472963122965973160538879389736458675231162675794779851065136625973713214802741828719712864825411883758288100266076978970502900374168863113978966749379822869248278973204997767916432903949840706285506844242687852765238872602519950349649013334888409811785867132407215492162291437247534278391051169198004838856935655488902698166983229096548435115000727260378273509670551616512638858428381888340565662921520979321619715919098826003087581962962879256373498275004452680825532861943508713571396689444163485779663888197810553500007797162579523633856177856385635907859165051389042684636470817892937467767765289546553878348564774896010887768203173057998846695143595084013807054994152566126460181545788721869400813449013842361559569956754783690458875885467190027119558215725531368635886543636989963437015691588654590569884206235397461486152312818767409447791050558187985032798426609115421741747318167895509765358058617181326722249166702511741954957949415114185986526930283080063529096934637504292740568970581086813070473762314610551610551140665348479005259049593134820686819698707443897111138686588072320533686898907531282957100846224432732140584866169788864752426037756736316396757834053378633851617840942275321545263327978507552841658243482750552822637879411985239137832294836494766257141069621687361623615840767760011884256285442711270267599086886198178024428145820124284815491284158249755286231568142642699630725755115295216216113214953193588087765904857633858353947830753045105563800217165855122893932649936786186551848601227744464115566504436012544032699197806138817106136001219689625616515930058667429021139081453375463002534306845576344864736293310919949917597894994046908740224144158170400788625507059535314757288874658460948376635340277003936725023951627578623931868863208268184663310156149997136403923418081849585810356757867270082837879156067080295649870792536918362174996303655720187397130218626697884941241587657091693993429702504028502812432497577323087948661804523556393999932414252987962245999898166146034256771094944707200212387588197230617006388236994034132048370376768068969112114811866862124403131525757392742972845888562234470337968161741854229820883854169985284653330994735895965176464938525342638200762459350314983804150769574924118274990356248936478400493419165845673488675342361694440270037621622097513773987778579890537497570820643469068225119363279879284460243330996050532310506512528381183100892579810038122458601570806655211946694624538617280968950720622967148283550172854864124116321960152992373426606218307519107818858289520619135540084719990975111698437911435713626368219813546946544097557241937747485095531427928616112688827174041090899117260844224224411486769178204260511092042400506904488353897937532204819977360141563874130116198458901693208703166208982045809485814693057312447406955193181270540049046699171381751937473451090126858031916243000550147418072735245274961883324935237603366280873757950378890084099146590884302330140769841161290741290321917314483234555620230002062244690668324690960534492651506944386373250352200336122317409885820393041809183427304544773878524346409838438662033700070219462508258336892001435756909032186322902448725573563784702989381529855468269130544525021984510244029312620162689976413650864968014685245742999356350213943385230941512062468610105310997473229530105573956593759702254963504724800515914412637204309008126203912507486392580774276165586044218003092174575230871837979068626935561549045220792502449626636740962475442550254406840880870168296282894382127327600107636624097909592874214043037998184909013389588026067498713953936381274746625399653520036124857392376106040047358065171390997035214887179615212749785663054143680604282013522340157635575256072688113897611591580557778222104536703065300903127879294582473141262866511093306126082442129539564337814318504929727118853449592386566615789892293284893384587129069780182600529572226513714728223497039144808305226267574716217942661388595081140570997112693688584167593232665429197301579648232724344310663475746817380473461835042453516376199814561665001176891910087616738233627945269581920109371715877642590987504913629195007379782684082892826573258684314372749336147607341834040719944166011941901675311491261661236959905183875462684231062604362359107218775810286516469682296890300833289847506919361657808978104781390146013323923418066754080568085093281057262987843980563146851643419202562396731148946884147821745367244991159609793524985007880314471839947907720033164100858539768981225221212571064780548376295172413198909580640965961518326605662891542084999207744459300650217692816192064089976535987298471160672781614873771383729189723250362956557023301543107690975297880039406343730701247398089808045380289463062984842982510510386949999326640542328674236711827559707890887109053766791721685833148375224738224672036115133696666513941876181838417657962348930267353105229728013817235581249412037004082450641649039383291978522018252415162083965676741186108218617473023620391036190139361805544872145143690253575065568105189079409376775821983493970315617688207780767119295897589454023382318983655027746162633121383983666589629021711482951406172392124978739737686832483638324352626615897001774206518023193698150770235947078838899684315784032976788764211258095272650628934331025754542581241051227223579281994382140872574625662799498646760953050912105333462836421122341835978240370044393321644504823220482288491670961646554031045421449770715341312006616540914546272576038914577752824948402656690070661516364964565938962540748598038103984865925841335424030461088242240897729281139256493139491087179191040775135581983229190593499793658125529497110767465653080645516578652322523669799085699673639663321843494154504195911894838190740703037154389344816548698832983333337852454267001279770571946849040991699464111873784319050696333336982361668610727696804334263315987506770036729736002195626670851872947513722717002764370906882567009352014535202291341708108294558748606985373429613016759591438766512266913042197735307850159858927470486107817029370022645472287345341333193598286875677455905156214693787420016109170153932202585114718567234960284509355449546146661558628669728180279427227789328038001283714151275413237778204911173035770881374594046189055491783923711304426841465001425623882721722662708762115765768448418976724670565058954009659429771376333341002101612191571649904302092299992430394404437872753372678758100509626253924635872011156870364747250577726640876001022642636098991582494585109840596011521236707084841603695774957656315652001286907346072215891289830002247982361790100558523993435458321115921641502662481593711140994665202704719446158433537779805812556028268348216169915928315722408786904243622076616643671021580082959697568635708796792163955015455418413231743007264942428466219583665037192153383250894903175138398304382585108223470410763677494995549803662583601281215430955424968685945475102493098134633019938033438045603385299250050522079181459566555486575687238588493230777398889328976254525850079140751077855317174583883913593346805680108486041703407808407386791533334501103265644478764168750818012933515005404164367298349433241618047115539759904673695216758392173013976250495204010976819285931182298928206748875761125065565825465821762992360792575036938104936402910014264757058880478452666101643190264553986461345993849157349836439147368408298497448472725664211817542767591909403980932078303926322241827549487355017127285972126091000940006842625839001429301961038429530030776759378610797254894041012843883419721614034170340171663549775933373469162552201475423385457155661218152935485292909922807760216562249300334408427516761377226852232778880592070219608959150186439135477440957168864927008417589599025237957161709343795993171148699422769010108396700219291394576367078756239010869259952129546020782061128633106442477692910356438939057995349764513635783038337830560808816480147021725854458868646036582160259803718973613489965100349437348519824627267171430139354257556941664944187833409945439410129216725702094772275888201781094427343947976049374783073655984605952209180604789688503409648793067386663522270009050388746606258109556773936989996257315328689848442633266654101285954629286584240859741110039353429308271306585019805077422161504496364305376120917699281207642050059785171314720148661293757677244969839108790523374021552368426931142114983447716436853705607014803766423677911825470806535676841456474249664460526465986029338145037821817741263909314088293240459662001398501726477827175278387110144257597836710757591042182667743194670281336949149470923031137274501589014066559801507610413881790465582274260223138506867262337279243757918208707156930294478734485666038430123613670353161201059078256264649446422603777163563303068335962170145886265718832160466971521481487326497820217429932335597907883454126058122905776414052579652101885869782875502239218695769162495095834200916043270181145745016935101477249538593243667626840601284320585740807535113594416079477555502646376451635476075138439490487716160095741621309921762179349829838182857205980501330838094029604204571004490452147164334313194035916259293324524179253842111898802988285219384203778238352183862185806568321575075475139577701114104876559326346542263049256611450899082232794808701070419395357401866789477955836826603306151680329254777452670047066361787243086371430688277122200670498799315657553106113103396962950148155372843307273073030882859103890768926641751314484773041415600523600283135710699627555243099465207441980494191433459672264634194949653753990773153005241116119203228874680178864158157578669004967194506876544105399435162577006344284238059355991807226423628966283976755187039858061860338816147959496888442863127051278332338196245512843691910026203444363413392923171463661849877345285818779274388397979585934136241547663287344176187722660907044597189888158679172790340533562112110188825187877931322959815945188264075750010188878058552753701887994357187512100127869529754935307561699943265783769426728404617422235160122288901872380943594171800545895562425936821866644587551054484394407633712016727223517091699429249468907327497112287674059074095793944005886189112699091766630176398622403625339203705927292920488939426233315696724292572537085971017184246408062420285488109432419317823339706112255494898015473637081361266332603390377448703670151271686533995533268363531482970303658326823165122673560201505825932351553617288228015080536551525107148105075828331304315727236397959888472734809967669536190333995042424731967390144478798787590922064958459528162647035056417232193883036197371332576694847773904585666445167072314238691146363366152223190590063564856082331641611034573986463860095115908532899472775799096043252302671373411199410921405208348519178630401264758152532611626225257447477485365795149585783031233190537013022429174672617702476820009799514093872022515201061289477782303126983641240147776109722290505706692343913039141215660965191182234595266529494150031120813070272926963133013152272271327147764067641232937566307357346944335767397785040311716521916230669302678413209348468838678620639928251659694198611154403098340476244915885785780350733108505905442533191501915739428232368182298844592207232690979340262051961454331214566722908159189796982731889016467758278501455928386539253296959127500658927110979435057805294596004111497938382100852136888483649088679567508328413001896129106752300634755585655566308909426813103112907137505040459839992528993206663612704451777855984460395587669468190628576280917253615909251170223845711491731902859676387915510351597009436509268949049826311784089171702022756666403500422159361962477422039730894506373495182521013551530460862520108113373342386494677140374154235635227529860171415535994097690382191730023872341536958904398278753590723233246220017448711071936408735477323099502253457055785045451292284393011143869798755545204313645657946201917214471347256091378342485315937904083300605933189803521703797727027825056829861119442525872310548105158900277142524883927686280139912470639372999086096042963114401176943363198363094566275373452685444746605498583562782625556633277318308532150998374216483930966281259014775201902358257427483738696577340380453552093174547539422614698467481316015891645594127998975481902835799009874373563141523302745291582366595653273223953906784677816015124531860145770075200625197265603803748116953071790261288744438024636529239965335094160354863368751889159269579575637765011280045358247483405468762965641247622745546818629330623910635905468770182932736509929477727297127692506050039255654680147023923661695469586260186131390543632784619109182839669491768223876006452834791393211367451316246528582192740110876074271455635252052687290317136392756586857165862783707940122321570745201028869325411563212584907797313927183236700410510466564597220488918685049137300408038896797231088197485370425861465182389023025790114299062803478001880280086884632011521654897792533146442898020110786982963892608719090543730344765661937414865600651300604955564087041897311344041140053487850700915304496003246482864464436966402131783357553468731303136401852256772453732453685995290166663302789291685878709571812132736450341991851443458711969118284159572743494288035654360443023547392597795232599239681720852359633567775509458198988285385723263570942655625362240018159431439941990994973192202368986243902485609046427533861670563161537888895850458073265019711064745567275719063243958590366411684919505102284650339470630229579828462372180739826940561481478169481799541154809489551046574026216643733764379532904802489782336400529667476544243305505210560593579731692737577268398973740226861042196213681316151314667030742700880730301364101377902922200124445943404556285812492958206786491868620737500312168721800042758517413172832935830953410351247350179470687447303218148207865364242810042410319177602009453377121587959315803121930614626689943767944313701603386463655735441343293873322516120579376915269743249363225573447031305735885310157590251681237078026832110187923002667550008271981636917329303508905041362393669410133398135136266911632313650166156714254961737694254693855766608777119649323654940413467174168787020902353425624396686101667036776225058453429519693828576080686295056657426899522106794471724671888808450327590259047227678489103677805739566824817564484638190118650265604229615890472927697302815224226300998877256428396205592838925647787250317692126781503963481995424058706725930698955805599533979097262972188343894929974137988333981382174146913776658436077303922920211379465338614168003941856138304143229037239297587584180881098735479651436122708840574384236388483274821942739135298260177838428030358841408315977645795323356828350126727863214360485709929811521868475419553072791515547811048067840271268388803664110877972781887626352651520924031401232963533301920697318049792664473612771311128002354399970404893401229205183337136781052048431540896867869506069600351087900043465159838289137264090989165038282923422630876675724011964657380374771787591746527106285560062216454857325951139068622727166081373628165755209717532415916874349122208279711445447932895763718062326379755722133903724960539134120784677809059391853276722187297172756224421881677895566390029396311057800372468149954867753554629835504019704551694128559757640671109651705900467091710181176344323410107888029712647586467234966343280402075635705894311210342897301366010005167250572200168937984560421248755244620791190313108092113850117298075404453444024624313572258857958656273093420460837788744497584344097980774532588894806638705818692049218397095469319264224077686471506717915029050958486788340162019443140290739514212237750417512140883546747648591778352758515268420259811045894544592924904281537985895547059761671148829514880132348334960152396675687139604561327666757015647095372649518713976759482420155579866671795118988496271225477904072858813102183918197692421437489121674124934664840065542758538397800494840680857987118632462989236323311577501352316943102881864880546644256842962825094646171161411568402512202180245195568269891078638325987855098485471623273544989319939273264220337624541245934719751281461544188064695569674030902774982477595116173450621768551990081274152675428955402528553424366687872204169462411720966048077618290763129141227925178166252387204813350927882423486284056886652252063678809930416550608009101536700196709720831409426936728588976365219897811811203483293712911344194183626876071018626910792944694780755588790781843223304200371225657535117707177174406203084745519698851178993949024804696889031448297733306505588546596817869589593239003265643131750614924967944554793628412373523102718220741232327067567261624383739843662711449295207850820979490371526471964052596068900615626375038940585636529859011758949868169681475083160111581224414881027051820559112164314796750237203143609136423298244518947636704468305724284489595886367867846136851291016981507799907945921744186080960942484148993987906516461400918020609375627964564221645514555504814169556480094791785853511600878993680456056443741864609160968054361795615656636914112916263312994856957977883199199486902068532028816682201640583572889997841304677734255397140781510049570449368806424849536862179354949851806399016054084173019692650760452885262843336662320742179743420232869161040257872788536906505675531352979587186668724741300648351149038434486579649184385889947731659738668537747693592629589831270943139995033849696894947766077787873234278670565146165184977254916126906959246081229748456645659873787396039022770976138838571067280918767620007687121214537839949890911148824754600797159809996299520194848484037213360238931138773742515752065676151614872784861873425978761865250567829480001542612889939410233323210330597514442041143906135170470727359972035339384556405005290880208872355558038560881155379076873423195942860744241425657269418665121549389523161577695270039040551747625335185848702586882158389683249335244818553068828917158776506719028923153399378683448398774297407052571344135062266921129847883005121190657386168116631216564885614685897742437255184433676178726567847398906637127942331597316207153996091903275245941758519920990387689217710920981680748979360499330071207461465651237690584485983579096829324070325028672162460204337029577411068510896572145217856309501429576055680114173343255878909099895704895664200246334538704165572329165852625367410707721127870098115537336311733293245545552149435500327781061817183187467154548032426263067364529027179391417768667259577356388859065886935935573307032149307663677331529464807546345184132698053581406949432376269910672317256046589620817550239350408870542594973953460296386088997565941323176703670783276607086770873628212957922948393076143471728503615176335082020850578318574025789400327548635393344314300375692213406158575979600327072822151220392598568974780591460909145032087696163294691992409185749884848988147769875412457912317797304505344862977736341752669464529867370026797539546240514853025332543124838240449089248772744562861460915749630094490032788170341272327078602448610918645212504528732783287415446289867313030634495512820643860348219102513334482252870185212922510718941745022582242559804874977691112294322967963843651818167266144585212804660644467877746676995050494058007401632610201932210276790238971216111484031808288508506621472164577638979076541432246584002688884929958493119778649940296369748807009247771510870463200249374719059307340766732950438868008138121650423780483514509222644994106134200575871575785577604879110619101384791721821944158794347469949457166517268618235902865029398772858950823202347346202038776835315070457440786537045505533295699545811720283410004687746179919449138055807780405751707327082136058700884865171465551007272758143589722167880931727106493953744859608596598430084443302698516083612098572531795900258707483936784362078562222028711475046044151551461560931264825531203569057465267705922970340212230761212045266387178837429598863440220938126305844900313865750612638093399415499701391512050913913017422848550441678483101323119320864458221835815310315502574232645319100243779143724467546402737315502494077304817239867325536609726004844109371159500148240093189868253649647088069249848411538213887730692671150663110450014633307054711251305142909012080613269528521175776461567567748068248701216582748668949920579667323999888109509670608537983114729534658068206005065517537777960188333131391655287858752458225551907959376145953707715972706825174900247807737049292317179908955579288100542712854973960644766051568393513073888052308436335808718647015238210796993429941324509881572458884593283891208138158461741844549529696911868977160187701463054888862864796146463601045292058905359196766729604517153280796778177864003530372462899510830458883976656418047738870937919112272898508806127787822896106761839531195868048207034350573460894030858475588438999354185243425145376477184238917178991451159962068338075933973082080989252356984877662464391752916083202680980446372758928056674775414081420253004152993344603468432723295644321931776433619715611954239672366980918836236603660424240731713626013639813074970339265123962803338220661753583339132590611532313607065348573462609440103004255740691691301269859881144383708286098357944956516350100946706572752087669628749456487935525352553234398258145562023061723729554233340882651859033531446175416687060103503081471447255095618996800946273763272097650974292079934446973189094056288457687871599474121818053707402929187849356067069541965584803738188918084092282679150800810007426543223118668323952710944675544851977428975692653508762041374151624803780785082144698770251042308110679130381286969556683175057229807521975854790700583996448303133286501165915753171354249549314488809459359119745211361317938079168757441024612971836231346922888412454292105769371955037166927047542263616219973031944850662172456397476082460668433836089506300025059827974577541082610713689499674779241279911939516357580061355683727187987976058636673118173620959025786858345252559896471976936813443901227601235659096632728983855873756832255222464426378680084430184624176157667102595648232525811178480826480303054496317175170156158152640584509000874334570301109475302104804771831013067855488413002389404261564627751340898185772377764693181389807990846054626219398272279339890420819027432782189171013691878453438736876798372966913642320299830713650696533988141492830146858880421716377457723985264458105627860301969290719970431866994102532930320624006358190839498758295456479543713235159869880192282102341602586488628256711300913836077792801430866698072440859993601837773245631907877549170895502670855928249685768597199507358551176900266220094544578969949363277982081727699867183029842797365651636603718469813284241435302980572825494189942910948455570379820246103019303479710750789738073060841635888191620867216922905775751545544609825319747175273655806959869561419311326606347218296040250861050842198852146861737521893388988365070768899694344728332612601787343738926835481499272990150416827324054155596221698628931740480992496167499002323975053786774638835439923550402005487750788849959576845724407241551271750678844510369889632656717163744845240453574201046938564495277256124425941579811697149401979707891517311860703570087306923798440760883909562906683649036578032430575445358135184016868096022741410482745766929590529294073369889911063777422035760975764374295553319679013750409016658839725187313859394489227869327561678005843341675162187095876353056486869283767688611831985910417116704853553109578416588310785137636025147375036002336712580279904582793949809873157968860559057765891407704209815169438162724382530541641177071476075283701857430982945543822686748390878814506768548420071594270715263658166413946190910246995955164350710742439481344765127230992439742360206026519206483729202562355231329107096546769994150132320031763489974398232989226262693434224267160912223439192478638125299399016319427397365249740877658816068522664017167683618348629525337989030877604395274274594992737858256389848229657329180893628179524424755160035767554702239799637580043715526704470976249552442318288683061031832955431484576840080378249423819276915490299354217174299668245011622410038094648191400209494353060976188752533258104908238853302676299248700037155082003270982376518111585680960507369707524323519379143646804285338394586275485227175713081927478004862795477791817242581459213949973427164222830791097513373888850147602063728221901966513736410360082918916211561183854495386358122976878973320011614862075371712835133583464206821947038737311918404101881958154097100948623860133668664417412480464804026923272425525302585552603013956896278352994683315038267348097882813177703366650742064017536189179956190968904155955861544729687674249398241932934183985812686904980478282178551634473877363038038146367066899809825093826653703548800217079934621333068777296697225167509543961604813740838973538997259765163893609570525424491453848772643907109080583016836993232195378832949760350016745050803026785891025451941885558800994353277825436427285422434676250966967191722142926546261556497352137412991555785540766408042827372318416938376295486440468503563378062410259773927665333185816719574036319171017945681522995525845088190883014035370890244791056125739336338448164991960421577277691539086172475269624182729423265911602320075221343648528865736940932585016338777958651491508516098888223027420851343672792512013707314590045821530069503661456512156740619990462402600351620286860139445593627583621939045689984618666681956392138461062670985261870958193636915775620181062046686718867290310266002534584570789525670766180028528266008855995431568965311062723748350531749325331364161195742022242146110623938842350306273185728274661002885600089906603200646868687660734439919155177911276900761441541218484242152907390129152121341214814262222842949290584632709357673586268619572337603380166952375582741999510546924620307868501152188300829274105610400010355145981326954279344032375603082172805350484958169544902218905841136378631142474440790727415786674880564110637814135065966473755284727388695448278630873409613203262053378588442762598179184776993969716422576267611226756316138160706059647501229854523711761814803551911700982565223862792380523238132619351115112925919526883650628192357703686971638706686596033960522878864600035928103382180576114719564962129705744113019817968628570603077174239639698946687957878762940957531952786704611991971845996752368046920865280527944669263152618381238449652800323807965853689842045699538015900391041910023938286489914117077480183995814409346110862202673779342924843514028085202511159659438587201008172722882917333058648576570238586553557626471742519722683367441803369202494663896890448644526347338436765298955441549643211525758052516717108518644569050979848918880415747952645509082048101741112631284318712346040198741578666480800164425647950449967355825838424292635451308106096940535136682413117249263782688846243066307774496956552270461488737119882758983064555707385034020461218656278787206517543669347308334608981099876425344756659496118076951313184467380668118535365182684037413238018525320802066035150704063484271715813392191444939419675134255706237121147646939391503146232916566410288587895181332030545405351283030423428666923801156193165074450751194438435397622206249673707754135720562824037677829420137601691345246810012417052188615846154552673326057490591287281257201199409735340670192232325992694619186549912267315723244293522966277302031144390072277968933758729609819362295223963470977065893610930666439410545267945537417069757832186622949513474558020081009084573380998063125961124144480162928723685979089961231092853731220270710266633718706114264447491120655235334942939587045040251552187832751330468877352027703788257840521388969567045690937961923327641148154661626089466576177867333503975574385667374775450738325702629286822398838243447713815931054251816146529946951590249465965349701902167534129842960218067950621609484284422874548243409285684319931176980586400467184245939116322160959010081352742156394833180900362791597468831099325400755078069027217941565921223421667543339305118125961344369963939107312136140092586415185809218222112190997092780815724787753789479453402507914142026622570396697051581451393392984285831233320541998722784272123760091651833794576372588725813796849322473791964905329596928351627094855302780551790948524805003704287532413870334378435183297317464276415931477582430215672422440799860382014928271925065720179421342030023117344873157197594711391993511113476003364977197384106833407889868964152485677468955479603312950650289607215731630481337316485392740875984811608140600956776892850287117352231623895352590182504776598241797251208229948855123696872962664950153817233239676343617220449494923698416498423100855842427854525510191509903245640247000647857039585938842692319837648304760348687682605363075291793425403226421603181626875550759198682626039519031823601366788254556851638508734362215254143601321160296910369017905257788088736244341060832176731644591651932866860965514540972365417595962900785038886223042910808971436650360394910805401302720646295983432753056595277613760677278898645827000934462868314849567175462209316485400921818172997560729525643947035802362137474396976117310993130473497199747686567149306204296310385536161333612967933328890560554038913309281331609680588617894371553497305730468430880481970447658145955664003561809431892776946283765842184312893859637170672545662309480038739138909483444644627493021212778357274781526834016038906893473424368947731660277373041839006208492969565468192849375181890299747900335382640265671526449743920441435574904012906794204277103034304060918026906257620155482405623961270012866261821457301734465185713790674772142848249110158541251099198538152162719332126807198457164976525000462172296633103499309751191752726080885793777498144443382083883861833539894145386375824016642890312477128161190244423313678479238052138087333146238114253220870623813987857926687386799102945186742919327589036966251146083616505644156233414652276834352224168656795039508320303474962094528036888710633032080060837814611795109600812326174279782276607599993544941950165586156424203650561450652814526799235247569100041253533347402154534683937545784546836305722402115829963561167628407540178802461555097616849609551866218201768251527208658864356553848253481468461858598561666702898083918940537090907317908116372949111294126104014559244120706721322612333848721883116298323381749537310099648829268445296255645626440052773910180914953364429026421438400445016333279934856274844396211549938835959471459565118493777307147182666539981080362122481721305753844792424380724244901164371441366676596041983505676584466871663809187433736995235216227614143327222768349495778818926782539326974466329992298378794003675356191327783765381212569902238235195981411088404999206992169054060070047375350823550209640597135998997150655239926656653409989564973566038520122728500585584193013672008808723767694865273494457096569381641722146894381197586763035233094962564017363890893481746476480853319219347929114703912544743159034390874843505017612764604766121656731508084082326759774200774091511931304283313368977052939645264991590877363052681582839443423640342945031468094834009464510308156557975439277110898728864883655074792046366905370046866647834522302789391982534697049400802757343426973306017260278654228473574363773536927077197756631321991264127771212817216340849914685875413134768715236154293111134879501464529341872367950427232708955252574314583238035435216502991440346852138314947691340594898525007517070725805182902326608014715566219719619727272022390271363607125339018868683721615392311945223217117254410861050365145408991209374450333021123967136227612041974362625587762309588943465296995488400419739045073622420680527658091174563221648220028777272611881500401177784968278447165425822401158353117091882112330688306757637248942063574690378963804693888407587645250490279480396873479187907825123267127973905058049181304408894917862405026327470744618366017367070321206732411340591395045466335301211662040382125854459304018073694288969980521490956306956712443572850607417855856951454908094439641745633649332728143707472551888803113456254617599459828040080972846297579162605368357827310142109175424726515755360585148057501064009684575396331413031434819026327546181023797658740199424839537288187630873715259801156790540631479076119308857376678629017189497042426411956417337086752676100483666204880577044733332826999501324961992297646030387318370214214907948871526720366158101805803557990938868301431838020052880746482208375050578769000039866998374194021368196297030944430785582317253186013296044940795468301160308154095564070795426970138910561592259507229394714470199550655825721427004172267571561061927282775173762756580498465622954603158925148705153477373967802992128153228791296028487718979387117287416239790026007020194846663854964171441642343591035190411938700747186460447239965395227595117353943830569302544367900249306783615443192134863759439264376382433117910225708613233362081872430367028863251148973842984073279800730313546277974872437996952521363765135986113998235589278950349053631780890573942288450812076149674631437165886426517941094966314909861915344947392338154536904375517378570866243615632118682316805849990352532163977774543959461191485462357536589680696787952061631640578102942265748420512996810041420101936074039174562667116740827705593350722136405638768525303292137429596846457609380867122346627060336448462184474461487834874558505246922120789398406741852812122578074578474809320937410842014553535134165487122675099592349270309375052480453730090645357611744679035925613860536707711326104219748339799844116010553089619886496534827899871791353871389699466534822644079411770488875706792132431881065718474008118545519807177235321177767073545785616817051043716711828121640215436973058655906100735190142908218530868073577329507664972818598066636670370323998198947104190647427033829786773632263733481490349757312514974559417262218888363138864263263016272820718054591092946754820665763094242320958257206907039916782655639134019993696965408597604764677370981639559283983149753959948493847757178410836853609821661426704761703688214681331006943617311594574337609220569965049905559747356663656970007594838704500188330849441205221462641116821720374790577634953909749756031736704956666931685049330480368176213589129484173560536686097611982829567482763598170087963100296494000913909803969106245357413869200929901469777245866650771395011628229775049277336257841114922855090892121140144731158818928066164363176801327962086157589774565333555464481192142135859377903912879416531379608951563959115358863997315036127675942801321390902589669234102850746478695214900254906380303569643449447209285626813924392425103923414711997069054184802766537549584950769738604325815297066600571184053650953834041583425502656917539014928573622535029992172608488585905374234576907312537987122082591762218022905728397409282129693829525078253884412255941231937048162373445592339183346225945718520475847964732550655679626966220273948124242042796510383657688891424702938754486305934729367974173156626325975856432460249035412383657740777289630392738754927785384510979223782573919272027428136690360837287416548760635327782639007844195663019963582258432417888405703720797913575393932988974978179572535032611301178736112201886063173505093139506013192290326473944526395085046190053808440871217863122143579236886205012669069233838494417684148943333615068513672721392286211105916263571020024517208020237335665096512910337456916251856479050225863069583673435880276390266695991668229409830088996467653358892899031374483773876940547112988142119741486526883465570688825593411393468113037443790327788067533229576260186492907246212156509621216844785506105629411049442478435064506098648888892776166652513941584431254464086620995302267690257232646983153907374113682279984397925885006443053960443111692621871789786041509633170494473718964555255641448616080348239701020593639790703798215355819034878067635531056046247413306889027628420109413070947443465436508937403446433953548046253634063314040847189473862671624146445255580029376269342216716245599418222750223532617086009613898721235302581443353139909436293331654268269494984425476678630343351973587375479552395002877302516381760249111521627178865658161158225829081804079662287091222586162728581101829727469154246515629203000986111175208388599802430923719880566571598217950528971828320488539597167115704715951483248870559366339356191789676787468353224632222967193538513584943845862379940542178510304177660768186347063124479369521360154749554547663862478213466238155225875433140762892025358252452838507670900877089886199715440922651392083205688635241080051306202396024598003316432018791462706023157934758386552501557542342351551519493940769412629275574897983749823766672134080229981084861785955476184661143802749785300491960123076591806432932619204712109017806291770867819863373425764949609264746352223861377415450100072899466468820489918586952237591575409346840200183125293314744849313877165190205430048486586648244836155341783743107530278762261682258403322173768384688897345122632073287387707497362460464953047874203728784937789672323194293808949286954001365477315536572241915507865991342915695426117147184650901452654109954321866404771694238445439322979600903863835109094878827510723508294119032755701578482819283328340276102672052326160588054625814527504496761119611513137802410754552983840223287209784620055491646397043072160108739543773284413000890962369213609691008373827137138208006803652115264101665519143851981070940344262279096936469520147744524311567140956614160617703083350918498789596644671746700304129278426395959355687262730447041814308681279122580576235110256281979905937790142884937466925176971298907316459452837466180676480320816650543390245465185533632484093725664781476691992180691073835188713352040735914702774722070137961571043547838105840259537586780803317153644105247637827097521105951785713670088547565134323508099727245973464589099884378306553020993794819242078819203262782966278848418652258151750083336811827118585392492450822767244427922774103417530565491720824257720155550230113656246246923931741482174019685055887222347528663363060724416055176566555805480679325059397890654935449282529409491857365310760605266056329182359810358501306682075646532036504798426640931806983761597375824681717970694854943083978228988269888995652724251599274175418413488378172148256366611077320518100306175150944112704033167435089102796258569833421900828489776940610809832261449197564694474485626831122496009530344024541914092861645931248466579952557912760181365120217030338865918233103918534445189072927844257189698577841975868297840095879886285440373463407541112917518822424012711856349025747638009122213903676214637677967889751135963893613183773463798496655026871736723080226136212824784508090727166915219139925761534257785395590515185267657755828014114363268780623083682628701923703716759169386097569061026758408777302001508909582193893256381795990492565218619723111853784755219136999750316904489715512483548686401842956051002332033842589557060010168797381811262934693297812284850468213732909847630418805517914476814767377654091226480078915898477510820348314439011335355326739598244825080145030281318997225090622882575244810326343606302946792699482077772161067010399105811551407521720376423451782812578588890724660178575173957903159924200554506002713972241125479841251846131703245450414377323636822497259989516728610198750261561973225169216275929194309814070531688083393969691107023901995329810620279559025284796279381746116210189496321229141209459497480471153232489658279791133541071892716222669310951114245701084861022835784448835884209436975219735426493074893774222652015416936754025883438317453426562796282344327045640913872500704179908167213703957304469573402438513208016552733485007423917868960131626552166947896226613099532914376260085027775592023833546598443044397263508020512457837674026988258125425164115839623030474799081023535609567402947054106384500410520548591200587219591938229190157494910858772948537963983739349617354043579027127417371068213636052344820524164182100718617016357350693059930120273998574747337327115268306190142740071195402254188104950681510769599257625235032206334193686461044933588029345471683779730296079501510359728119328754423674234432730446313442314299320953726731389344487787269906821820604807110212745748673268554814406216288388171282718325223127986781366846981157551692168958065096068092665482443977090731379884604022652773448650002743190209331127189352447373297807683361449022838671647093392414232303317550426834598302099191370621134727795398248525130993738958565324357592454960652615525236986426515889983413410408487489246713509845801324149010818718298951460527921720453933580026220088871066331864614554980153069359887269001974640728198609850200556457275163773568070277619803025538526476259632868885534225421515249419063232167573933572048362055027258641190233844055257529748949857709418657348081503772965979134238208864928054204469193754982403232738186720337953862470493624660641215743910389556206067137490284636231788986131672652136125295353211786125242937673203817889962346274103977576423980921624602848600884347946708927638926372090374098582838484000103122844973874882616489604155184793344016640100699046587273728542763123115680575953816923959111350640877934181587546371493571133253111830475638359367447151814498472935288239149896694648909107028064767740972706968488254544849031104417701944179895305815713149718357870559269017314751046122940738876742757089356203407099016732834117886196923722801447928225442055946593811967606943328605875439406021673299543775115762784610854529550853190537639216870152535289460301886667154455726311604503842674101458963336560867901751903878390077189437614952418627848914522920016591780473186026192114891928049806263287059534835042492354956858870683022645765578620531424605005488448523951957617691676803224529174325373383376311187607459266556103160461187962048643969049087753320417569472687061349909851733737379966872547569105651843041064353012608264210643830274777534450238094734941599324127975685100477986327317045691272252071821769073956173511855751794056082129126707505981991882802449696397127463070196234535082701801930809780939952726457964396280955523287196563292766226446049736717365604521286178394621234709885654795879046624773824761451719543243341331153997659426377934637405237668088536621553544775964571203643288596341419597923865060289784366713542382633523977207315237100824486262159323701063439149929484611204786488548508267739482871534255018927800121030245370214674752608454888362680342713990306136241011030846252453197629015358680442904023532737158094413927732840014837860605428962731980018437413921572034810717867174220708917752159810701103475414318843449921644985217494856005354927918427241634853176080466838586570866287069198634625894391960599680876498344706868773838217543132552753012893029736517454433805840469681786974709870409442346062943676342421914980020516153883814448342472511468542112714113590228564527284233049926316153531228526600709878511784004874019958780612123570865083080547759869013984787440904379294657611013528844350602140835151919482843813027209415915594788096536675135994640664038045696515883331518331482555023619408778150404798741481860130842695336856593426354493216006989138123222286165909690668114838939669081832276221828827884328030877785800953029532570202365326653085877903873223374540066719238519079060576528835807128051733595682258454610977074667940419767483346455472947190558569334074726982554235311469301854500400698765434534598645473067453880074091097806922228105127325682381469576972257165550602141105716163457558993960249527074923342533232693272008115734625368415298568450693839937488144071416377083003196162129411460128521982165477326951565183102389273038230529265826117557124274161600572604215763324932327511591449326011208247485202025227171185679816763805371309220055965213564553932151916311001978216169649211683272111665044022261660915190841664901825418412386831235236312307949306138525661578304423918504390456508543929606437308113254414008352538705400158211577703500210541261371908312116227627362235138748640759161222782126357383562119558532916410953766451499212794891873749659989400861843070144018956658092796988375927640724128727479754039780564883351971883999125906561160121608577022598633615148615686038536043504579851839082063175875869787814561817752252269437337291401395471109445501355415455740579923355967093950917839214133459550856639148620773813608300997361840241482961778089724488765867728777633513476767790968415284535738386704225503922317200759313947446192768919466491085466521221438859611650896528253786103384981651648470217715711086582737605790842719700221968205558682299228882779865376357330332920039065737579103537294543928699141285378296073734051344674032139340192526395100044028793615604632439432131080430645630894232383551491989261399131448480020239406955587508702479320841506585666239649593281711298210445000162464449604701753026811099976662088260264255357127040543771860439345877741382191462577949349318084869912277264241475785253963569504667641723087103924883809725342113988890622352273119837568102088823130447970593692418324901760132608051728964782467414652937604624590779935481684550048706233529761299214071523174862561572217589913925101322880682918809818623698927387824812131724000453980773972072243910767988108391111972983539727518582238633049951935726285237774067498579229694744916953660838497137202290694610196312157850585636639777293687901610812400085932399206892433966345553301228795494639060245079425192326721491071806927376337706723164200420930931827563765815868155741255461187209112811809308384034310622690869101046967666191462744392911452037530595183812707923708643673842780506508295175161656087777200264751255803595368429007873734208486576194989966838104884747020896751866296131038109848703585489883813326541600004103034831931093471093579453191970478348873366402936522510664679485627547830420252488210460682847151367628140779777709757322181616175477719712055560608618644356790248865019536192774953685185736793884523791117601814589030394158593811887001158048464441252158155844384272886416785956002487884156705467233791830118341597459830179896268597537251875261890148401613169291492887259651342513553097520279015058544327832380361922129130954544815647146756652791192985777876356465940442887348847175458969222890269195293015172354714396972262949502081080263518302083340049798016899589859967923749236408078900775081805530607062862028116037905952480311494472805643665617238577985380558069405217658450662292116749066177910151010195950439208419434088706794812184040394722748272104542605693820505558394841280634670094886598910411418498843648330036101729582679154373289757131728535427583441998024421463159271637397485965081901831698179133999317447985968780137585355833919929049215375715911586801733213684854852941627649988180239226116875386878872606190395615476160462127184626933999567346990321348837614000324051755892946974956209463493123861984393289754102410302570525437493423472262123039829654902096241965152481390112291834153926989234779043042446432107759291273868699745448252524968864989649295896307890462952824426046297273784652998308144990734498961073929645652791118829667104299234619371234480271779831950572805324529330325170741287953426753038853191659549874022151809174398640986765459924581823953826233585585754200314415078370874269874569205412031786181641218422194037989107495001743976905513092299907705827995160053907757226854495097324453022867065852817381392170884775344576436387226627769616002087654495642920777154784081464930550301604344350321378645504115143515507983924576703934264797266500605611188352377034812216579960390970818585679045065075203705233648312320991206811107716571984133221243590576116483085340809509502104072862082083872311655610235430582417176717226707846592045985856710261128859086358402273047134672989126249136871590521839019748163004686222722233073516544411444148360492492888974376808112985239223600871777968360001937075843050336327889611988714180427034728898480889286533834369963631186765915788478253406050691790502536781704037734293424161310157431912665701756783896368506567143224125693729007817994340852306020410290761352575363291613230108503093720812895484002714583216326394297234644799128904837271507388001488483966848178205895200203931192619186699397557439921737279380604928138207798296924677546548851516466657845304570701887578490819231466690358346304971025623791920400140061674483416063216091419093232386804513500721773569438111978884847956053043113047272600854514966631045153840682038143980894400106075587609619725001983643835413207586112227089604808288043792218209202802310181991603919291532865040903680089976014389204041616976335635701058298734350465053229717837651070190772468047054559196035693480566191926928300900651667655977743392085031642629767973203179972866676589817875975660114019712127365085780568875200006657747966277434094864740902317413941030381672576027103756741893765197368703177473639543991293311867440929896860697341673951629053252597074859942266726419412425583621469554508648500970083617513743279823719941344258980407626694577676663050830418191635810426725723003090666128732800434390456822392814050807273116552437578737306810480632995854261676541868131181612082773702491454244238607319943779784927809390975200539025531613116028088037619895933439085161272349681068552920354356386508064279140491014539152189862665035810666005585960071758566040288654496106940334014509576401325995028674174086926283316402951414530027407297640398722370140636771313758108524700503372065704321956979318643812908827272769549387216215213462680574743543634339373302966018723523735789875062434157678994479516298135613664690686682248392516766152641611080960754625228476810284291230009507639373649405683225987580441838540922749054815842076795686845506600675458263333090125818199001496810536870343177825785664428613719435341801078001786478625697520756831588969812368646810849999087702813933406136706695103670464114230213081673470413295012917675499332548266362947948937933252093936898939267686401585204242563984746532810479845703743941320654243972752715961556647349857958218870239137510453944664604948263433656136174060790040605226490291313021952243781601795562650205981120369027226946429964955372083208214439066976663850184877092240295377232021475539339257595358421050834855695250369420489547533902818524254663886315039842197939368701829463249098987686177309077373096544339651654630349163942398693724460513137098643371482424406361525392741353219457474823527807114266495798257999988636156195519240837807749545932301578632789630647188763706130764188240726935417608939012564916960893029986808886583784524511684777940653247999393024262049132405599637461892890266414976170703782749593059679995594341303441439135944720751450211008631847834373794913413360586722902532469858896845634589631470755000527295491250072878127802549014417905466528146910977314687819911568397681644722079766059417120686426951298546211238037030103166289159439886171748187462812153927097739485200314403961129238674617579133047304687010176076493847367296860849104553792466440230012420608743933113721407115536442124809159928290753309636695828089633514466362481877886662308633415230738609449910336533351381103128605165867966301201970819232465651113722202966234031901295297491385410449453999875776786724688670583286185720113498395159280237439392409510017196355680064317253452036830008307204937107173784736342317888183882911163046566380027501372666683002511608133972654424943104549699668462061976934463617362371528244368219127857504464921467207720504315250855154844304124850517973065448465508766593818197932042455947677806889720117428149870424922718547427813790479266397032304842675736617181165738595028902324684492372878641647628636427385874380751105887040665168972671639980661926556790584431874603951777056780670518233989679439344220328786415693710801690032247115193233737358016136998797983484251274382995127768416213309172227112238640263211166607848645297880598946477203010763659490279937016564450481785821349458946658396910749919749135786719283447225111734349376917261209372643034846190584526647451490964146483028856932673288923753557287405935566546831571027326299076451638221614219077816134792927229878046768710758143140490537203568205901724234548303181630202674593027985980969932120103187334277032816372076512064565136606645967386552543145232429758756428847732208526291206873571576464116939428907623267608894733847481219969241484688624695004514546760299537344510246502006152819063629251139982908255809670811640650873588633426369857530033393223703029731910402359254524295187365890143820855441207199214341312700181059635090423255864895524234176588535019553706116762816622209046743315321551771618963313631747665720326831940605341745095778531366347251802249199965879329912796687306220405065305193758588425929640699975125253004420906331770537679735663241750695512194780004327773898042093644762866310080080384365315300127386974896187181860580309841046032633955278932552853622394822504540590229471446014669353001340945047220855886175176165462728111663706570141719301363761617831498711525509327738485521678141087137223851120252646788096153485382573727801083238775130178439650741504719962456809852962027507354240041233103249501949891378035503092907665383787387268834718547340384810585015656612037864021680340522769477171796166649981333257473261198931929371409490401267847696208973380667607043200439690036917028817440285192616599873753327265112891682012277411932800835411042101326534089361606057603044184123189288429921408124162951935299366080861145585695088733192883934271378199423504321866593636383189606462930531789229215613877694544175524428753328527204240175241946978536340488070509632115922557014087387471616035641817315281124792695415886809499633711010473723280355241136146152397163014609490049666691802827805461579283004747027380153862711625662621182593196405812126822728365471029929773289600051366779481939881252464742397473121393096944739793836636440926186758495770534624198328063556831393570112983019632146312185741660946597811971182197826293156250566889188802329276787516657693130645497485311261668335262993446011946107502608128948570326517995896801269484742328045847971727363268714009166886435523797224338549075112212569361450650505178458720538543513903734440468419610093365045364309660827263054110912813653316587164181620156856571139923108181967622995809095138986520999154330499558997218695792410201186608826609106252345417879365360682741462599787628669759176149063233377844286160105545899557841250109803111357016741223197391971025894694236873227772179023731080970916962748409176308674029754251092390722044833465727625239245792387947474436418360498355680673655667624731122789707981942652497616248978605082053827455963495165049965583011659754270129479405514356797799119775804453618814842470536323081190531187127888198492055499529733029278491341394144623747319290830995281169572990071179344912756557420419782582982783957457751567629530407096392277592688248065766905093371019351458031641309295709441935286457910779481642845663432239441015052044149191873304351237217380578072468925000582496987889352227972314432403620639264716416000497292580997743659810773057710624014009887439549618328145054200785597157476627695022000676830194432584675334465782673299560215913287588476511176011288666725627902290390499173893641449429733597816266671883905180920690848445169258621642573189652760272929769969742127413631753126265084297290929938551879174157866905571853539855904677823412174837052718090044130625537976879782613358470682861279978574985972237859254312182608260283347477928396233227028271504529750066707865956440386329792978767579220303831330320660391559557515842640155197577245327386288671883503883650627359324808982211088879587550197726142406844132126835653933647393750281634261219779537660511880814671564938886421671609996635902432881428886070461441842267587282857065240929790972652997736426211446995155168759397075923558581712265345947433797245245095610751059038419647850644193452413981827063229447847098990892288270589776311922746155610071911905900182075674835369916052753958563600192330015214999656169666343731585061132621450833486970697524430291781210069213640120696506812671423579137888021357888770245061521096809436335093872929531632114207851021885066575142506001144261257969228568550567901466319660573444895436051292037752437543865796842318226558200588898348513561050537873030393479007656761713716571592567397576419890339338140999690908201198142770514989641013588401564007895852916535130647857569339209882788842692647737817486661028277035647596572603402221987829996054401685915406408662231987039962174415644143343237832773752923457312521639870677197076287594533920911935147460595760618519985947559362690999371156328533795683590363431138650562262295954192596148008206975541942448005012872055379261766033188747961531085159198959089180687400368959892247283758827583669218032857072577478688579775148781967452890038026839446981072883754356090319327751205065618893208515279679575482214659583834983550058403492868386916457971128749774188365336911463550429494703506554823200109373519438615418638023069065071082336553967915096858477817944228924982400033528835708127446328180712770004863762986482798759782785365804468577033338239807054193331492679088109489671229634728047741180791017112263166216916974836602646196972515577820206629687449585968493793712637645670133354847764449804600888540093213064634954164857953294377589543386790388601112965278509977466714174327487583191934242796234713992284277662961228153611253294645586995855091070142408817902768142100508465351702855528347273184549312794069017089753957129528686454521915661995613863278043289667378684415401847594147244161351021538011425585061124104053705929278265959285142437417319294466755101287398315598979556584755619167712123626615062643583953416988371078389640993932242577843907602711789822959519580552257146982999151272027997713563246058893563866115036879304217106586523948736371140929781385969828837279145335882255861957419604877949464819178500460059634021648987551240536275883233442284774634496626786483485556212864989177894305310259873553424446684236963291474915132698428267835050561665499213329564663105828597327033727810010074937049095854635992987446909571206055088760740981639769046948681411438737563959481432317823717370841497552741181086143163641625543359815794862620426059374350480006457057556178017917905878567754446048506999365337226044811818184112070053492964793060981358857663457905983968916534933514047647742895995482054037790290187043695178818736329568364114284652953567376103823759478743261355514589613851146376970255337067499739451959945577834105052154780803685061392422096197764433532517649641215196728302404786212965991234370211687038538169833163790793523789595671252296494766448855269685174016328530537853977916357424120677970915055173227526302119599450626281824563698383007168197099576328005316766286786731102372990924999269651840230773266769265551105122764668897564964431810591947063476445645808773903815711541033086772232112536524411766252785705086630392916646216504882828600425458649944945385858998263130918853912954125545913199256422082309310817213920569485522875884457832838208591407515127335758778792136922660002788356785186907081886546082977006760235615152077148847110404702135225964610873950506998468193900617104994454629141901620361380320095659324181675586102687014600444023627377521630049514152669695061206736077148370530235207646955641165146020040371829706175976633629376077999859238675947900226807219136836896829421128411554707192227241798989839080670829381402811691630433793537490057869009391411648614660990258884099814935685158771441788505389152953370612238511588212340558832292842840727720144150957260656082015487762636204225150047740232834216405379681233783420582382934168750495914094037176480570806385744514431583553233523167001847628530425606914210046409193993692679356767284031416825722348998275131446087604767610060983390706039704701467420058682744721945774845290105265896688511992129905942219948983722458183957462401673426774420521260271544067046558554148275185759145947782859006814994306326200847678610722948121800630263413286137160322620636194272607233559030376355955578114151072930031943457574390796500436763633160929993266591572106197576929519321123917484617542243686504851681111470306335888994997646819974624699012628912906714228831818687707925728526942327762725467959708323554396155207970681453990917582986702578213490224453414548745162690926293530687511440496917994015807999129368778014875022336298222891242270477583416646497466301753657056983484766098077413564428409095696980933109538306821793755564105280740672595951325837334763293914019620362306159585261642820817160182264677765894917090303927423948550896018442418863720380669054222681012341062433597523716938651695913531042929212800035659032420169799902140899754988541134223582491666529590470193243515474416214004269069996308763154570135354373613658746056589008142907426223109230145690139911714986754530901546456025782263704723512875223392947651341710991034247423187266871751586655525343192619345266284800807221244444228842544876561311473249977369606816699107596959462231444766514374847459359250450657543008380959181088511040344142053051837215583105693470969462924447901638302876048509436614372892389125696147070094263234552699582493813665477287154125337595137669539823382072872301153282891298427085404631488934006021231420554766404538643457465302979471433610335174216474159327434716359394589756423832015568545107388555065119794019812357198207684744740933507309087099131623728174278521638440950562485344108209354743416195347661356831558535187070980769163454819585622569658468297021033793262478555614645921995665125881994511896552429833085964638407270154962613558362769698049919635700936715111911050193555623270956347385570673016274444605714100895986856301923946574063883114891991446900007511601049139849829276099375781224779670128868351073039673455827063684619133092468296251731402752293445322826842681296080629157570713797907863227503754195916689024759279536194560046282394441261292888169829844117566586606047829150747490155360301638417736438770593624020765085134950805646754298435204583393027580856698344956542452719317912747944758846204934312063499695172414929624831918843914025512117190128480169461416313968904872032339961631401977501936004055229038795900130811099380692966944715959547576039953425634725343199907027723965481981970878544579868173321021249592934878212647662851484680098390702700120334037677341154005469695731744349422306992809614574333622555294939306850273607694992043449711029851602143577947820727298645779542036094335902164895618060210535233452779990879849985351023520727199637999944380238990313259725139080563087557354190380601143641562711655074024628169503572627197501588213972190233684104164355199780104004646573665915791371109048435374046443652742972967146453226996145185541523932595429872990128111495764590604128599593426460312156628788675611605759101899764966038296534580675530326497182373692199928533442709981681024148829958681146535497839720827840646432169415194294505976236760781541172829771920396520905756393699523663956176652622528916584913645747736139060657944922681887122810846922841659816808475974095596270476879198688116754160896393680395474192884561625854688415057772701427908303271708986163244972107588242471934233258009058844123620118127608659751170088049759911049960099424628407390986876468128512821200241590909324689623294966916644687825734411643345936255956853125281594048029776374133123773465133099786194786377445741685527378859286589415748390505821790288524100694202587592546338108840674020029480936338497949980493666866067516553803605057416451537768313507599759812884079647932420700261537986522204558699427645788734819326917871271139756129526705255760510100225983193062200275031798074387278808771106204256014894076235755744491987242710932119534239130143746305542345411917649995327261184834386515105058746985072152365420759682373736454969994028557395993278614411148694461544097474612851688126537496493768427173105743266427883512988784418372928216343317946465806204590231496350822107566898845249735200630232875087140048481181857602199785802156564912215340868756046168908688280227665356875412058354333052925695037797422165248141430181620070830484731845660066934753521726626498790816287016844805093482306432494095517346111945350511014082008998183033904616924839618746069839335895710726634951774849922724070477477057377233723420561289141180662699144721293499655433223358311709636715173760359844606270380404837572367900822309739291852535611175367565537571085356912308014268096556677302837828956969683234674307580198806319610946538994398422301660565009109135051012619602408318834035646544785122109098443520689453206876453416542797744532389550683100155692274211191914186753823913047031185032010658600836588917106955336219583241289654726545256063076619274274526365779646418903000726015499161046915496405021972007544529826415203965442720975978358704941448986581849756504964038376314907499013801916260110329331079603868272955959352060515861259613380614857539001970901744170635840300921041024104286202605970864732030044973836254683620583062431098501244504375324275602239975981562903981588330758536872314713830742394864243353716736898301113807020255110339924204790911232790849787803347744088389464865266500098097204595602901126349459877222268257551714350672748099453146980233364982340286214877032600477435147749623750082540144433795158710427394583508412808276411616419403113861056664365691256132624788615874563998370827651284788228240101808928059096778158487643236990011376422478502254298504570083314310929323561202313842289303933376583449184439596250164771332647189364504656135635315596080218171400753256003425230807263839628910798191198975038454610430431330215802095220792906586211488435256273958897758010556866701686277594226176120271627540991250399016278570853771356530688002590776349945997694302947915387865978843122383037938166661161854708043735292673909958682504801490024407717640660059896543518101475718385304029170965244600725190132385277557123670685815352529756477249892103344331897251650384868336434225619736499204798574413383930859799551763035522591426503605249136558118844288514314201230378823024113062020210123043064740309599995687566793852917623650733260466847411071719447738607078904600479813088003297721425644713602645876512837449488883220147601049438868075598687679355988897951512721269603330347443005817236348136002505502377659242551416563199353719926944442889104036651406799067511562619340005541891387265083880960003779337099632537514738529846221936862713375619227700499517508106997187520007587333460491637248197793259073506606028173753614276764729304189710948268635808541467059664336847433419600103142185579974441688593108246353102000162246082858680980085118261399449986028244662875313910339741437352778756028222599144418047546971560495272959159022605035392670713878164825238481510420863078503525183256463918419437398749597848155900400781115114547455998599980136179415001717853253472100432135244486428246996279527834874411059051618192918581790876119153953843057146474686423236678180318494697644490688492291256505894000112333404697921782083389263389549079209129749068383965847166619684428939095633492321176073780211567466348512205416406110017425246333560627232463855826233911949926035556966253118901194409609704567204197822469533994954845139926748985088533349616145196593935303769222702423579359960114418317059929739970173108202602682430253710452558843150379810851350700825459449400270722478238847024737959374554996537527801899330138231061291933647102588342559597584970161501500535759165367447024862279246631013742493661472683821189325332728339652144063209414277571127966698240120919844994426669893753607779782510151614007571573193536020724025826228245386720871007301364887604413005712895164348949450034311191295294104241095906136857024201790282614014714579087797666706884268053724591640884920699536696634447967794314141367691838559881682744821738359249289273720378751651888273860189697816935292653443495672397838342517499697609781435518330300642190092617561550123282730043963570597443071169724028499767905234309929471139514378982943346732710519558934181346703073900440180169368930799994342922893389174992110750779087329886300539451367896345237215561133581475770847203287793954762227284165548622833567888228968455729112237055167395024256189113725741205066523933440608927250086663763452986606346194399328774823972795601591817592292024019777000959318762434275890255182489336295823553422072777877625437786567902178992679415631276240177253491990857211527240715774553014709822522461166452918124959255608922055450996218325431295486614668702013544964224258692919462253556478889405036666321744734217803420112224321506905091896023360361499445494986602533068655958017284137092254618567403312856634988925838921943283937422980998370571918899771503607330492106707049949034752300136375231906259807066936964968656295394411052293390013076946719001801313804731298481073544256741350149741076610013822107796954067088106358954097100716169548234805724029895832327399002456234410086580091050073713158457867779569362569112181395952187530324580359751872058945920909700345675221454305782991632111979459855955535562628369406382001323796990514703699817929232848250558906914763212234572589783047220342650228855040373017753617828786150750079015453886611171233045192768436784997150810897956213437333716581147388411389558312024771641503249172242435896189134496075787372535703161607889301030290532247114523396828053912685765332731015193509290594550503523758053758231800326604587716817877962644435078782201921309675869349528409120435716363784524754869943797110401485529817662982932886862763517253976128788308915123764838543695033479968840763571078704605539693957529998972267573329277847732469633311707625860037361138332725756654677306761820123406268903694738991920624000671498446774811976746223556097358954029992989225365255935898090715001820385069078591841363922370687023690407391725646766374431432977486108248823462237214084901729206175219467915543088411759344453389004706383515878486241658960590027702190694724976505457550630920243024622535812969890991456002656899721298047924106133048888784697222742544336033557630978484324322704585162971876638848971358427363203053932183926446923596651649830665778992105873530468512004376943931186295138143308006256530726386367441176592580688764090107711120507053790336620131369330621241737609338587086306188850670977369282192843368018138361789180939807972878672077475052891622944465308858719773308759043915714968323401358024978419330406381441736077351867511953371072617850271473755078258989244103846588653946207904592448337810944204260546775045919633935407941889387978476455115846224661870146361197332847829743565960514964291978764272811351059842845182718453557843943431766300690184307281565490450114722663089806375849981738494486973963270959365516227981957862445117228169757863577197719204368480231009584490135615127034588134669568820232028818015613006748925466353890652256933255698296464196374635669109787888790831263006831472488398977230504457695001967454875667387345592389613084719138481091244118702113605795600342590764338971816172619283142926037031379783681159198971439186129317773907590357445062601504243442408670342040598801609178164854506103580135391292261353493995906703268198097285785451582682474892501950920192192143959720934660761027183007851676519770983499238546931860016738294069200594640709019722185625716728509364786201337227621454239890344901489017005976370826659077839515811491466064729606927047363031027976340070414822524974263863450166488887107330375359918538549287536815347009602268483402377137283744743591222303872847382818456321508622885920556107663504573132765837878535702098100130009850413390631039193913848772893169071100306996186553654208718889328395819426320889603550807562654370596349029571939612153682586158513246687518711136250949379003407530225563731251958638871387093801522706902965068286986793958365955290213258889621553256084526297193299106662791329355813245421849701527780315714641910663088271489889346272974448177264805087155953796039567325550697422478882650708504217677507085311425558460761956318002438141268439342329180095074604890890135187167911129539755994220649722598943408590410793752666059739229378415792151626009500675749340392472414980737923394096627559636716210469897740111100871882949060351090661031681067314086981383509352730181979517209688252400893117973032673377561212388534427359704592105609317229223789813310448608689993983288028840936836785607565707892002136708477468659969893853473055283130592009380230338073287438115661292067525378406080833636981056385976176938961860917861249502635652303203687813632971806982405564529320774209743735488705479775697899717318101982237082435377914558657035706755017769068292211787621277033008768590520990365266008766838827738623817795341177305557190631937310512192567363857974492552177125240577736733762254810962419750933022790685320130974331999966727703718266697883053179167441901748945604062937971218463248842068029282875147181649310225050730551840660759990356490634715664348175599187046940956875781676628934044982771216100965034614392637195908673924878427778867188095164146545975246171493488926632547016593839321046973635679183415581692332312615076871710302376487229805881559356157758954629596167076242015552079410566946125378018613454966017255195922180382638926329711879299174337429224769188112751078580897017891944737964403772911993880145977719039766029783046546530490685951737721689647788918443879453372768212835124470431258362360703647773047831723368176795083314232670587689315680284570009967446660429846220150330793989277774777321731781612875079966229703426798936974920483696387559576546104230549031851545129412159981444826733388864671213874080065270514819177255519951002820113959329941494633299514495841118008671322298765553295528237064287756147117243400165044530582313164904895204994304451447021004276813965038368820549367605863041412364631961663159631082856782625969210249378654094847384907208062862666147112284206358650160088691499771000695592062407581436129330005224842742431160749621829685457951412112739085087938529201509398178816621105866419701647975607067889644252354200147299316091433013828338255828062205211617316771465707496010101689622766840277013680428953822748718395935710658723467005831367217110934866823074469760169963025403985471214613286606585279503445993785535515708340861134173942535242441356259111399365426549647172384961386740707800912800058216582072122634467133646465128687389769173662384328274864900744554314533497994261430293986909078757011323813729384648092116419018159686569359812580924365755495672087239962847377342625566552532110201853488125817828292963299916597851869078592683732342104131771685243673538549361431612568150992194117621625758223874050553936976569851131881381061028956063990841904456009165004853161302603877278195006466466565415925996311574710493276047655750028129276969856242458139035005961256560004695321754200607566706860617881496914968447507660987532240526542870870627961885602198154211979259754950595667283021050659409679378871751545609226059709912985886020200526045331095365744813446578064013268055750691269591580961926926187849339223642726600121111567433242111869615861728144235287987945853751651242857938735257890573027214375475739758086275708361531971471441304289640105337122476653077938936154278209042562096066336346952079059476792104506217664611304042279620862325100985168978183248877001688587888852280063246218576797878443138310006245450750789576365030783237126751713345359363827923938436374729001520122203799391592608202649951025659456816996912623922234217043246951637514058718248219696324245877426487628579247048256011380423060712909544667752771709436286994096933793490644658865066401537062598212798626953994119695390091705131586694760613537697703480540754060525125735404835297633608745008094596492202524749498927996782947744340199291978656116539082594659941172781503711791695446178684268068669260683742228609389914015531865323692197514671699378472443096713261831474629854061804147634708273535618034303934236853865212588492632371812904763548147509421810250849577374981534049698246489142522723322891085013774918085111057276110413848311144373163874962635322927961729546712428200079624802382216751952681247835221261367532530781328315806100191993775224823258121997437752644780390988104174535058150592409043972341946413020591009445559097073336686222241071324835781545824948933839234970758508872717771329839839701043488943125610621618619374025961807481200875276565975259582298697338558996087490611070346230028870979975799304477343663476605245252549083458550775425116976699388279793926656062326333876943782953274597010368102313740660523112825136569854242396987049626896403779269901509450283162893609470072081022700914416691439110945652500355125349382525758400815551424364385379448220347978405810440064773080849294854605633134007626774046822426776543025596393281005860365571919921714726712110269201777858168180263441830959971486598065468168311580992830873220037259736520254968740645249744190643751869537371834047964108549160679082898126069522198640760096119997060015167865274832937950345570810116952810728420579094514852400212176356433570749984761198568643931800850016532093920599095148826048422631127793068550654591907211639261998613703928281894125935435179892823892171811234805497098283284703922866190771372883006983598317081624387153246303444473197593770871225007570256779993054486269020772703982398342670069703237746459684247818361483824343990266270319579015436317167011916940748328152109366589251202716217228944509617905796812564642019985291505472357129126272949592331953535801345349401077545276822204304671109986505327643291683989635872580173392611878355322581181725581892080336963663935381386947793754506832209563026417553940458739065243892087043403379851181371071587289616560473994058018264666912799934561675287782776981858905756190249405945192443241211055143015224904174717328481569018548086348811415725074124015883680099840146262278088641862362130460760789716420261708507998095417520511684974854288530943836570649334164836603952991750091970980835844088069239312666224997491222207752335685695453996143007995563065446447772416285266966577397711550955613311676931434207717102289907197980385181753602839235924499925418972974294601612096502204235489473441300244153221776655184743841782564882963762002500645845568687650744708350482812964836552412978709873839646895614085097667176970298321419195919160667958051841492904421880901364689248003838616273732159337757408346985365209614285870127550206399316893210838353208663149955699211629485603353702367894530688199768176627093796023485099686401660451620224156204628499418743031798015428612160414829358685200005238274625375226356378260814904746615386256190661896800661139265441222687404444643977145395747446599347588367773477207892865171555871892235219127407819126882903670648351552051187340824955303471699390667798815448550592142618338350421454392277724591890003043797544534617925453442341459769056842648869070217956111674290458238412499062035056215431185068853714323558535930156986704002205201547467805544183528548500337305217172733353776879497004385946473386634248969401334427326050093421437476368318567494859207435262985678261495549908415998080808086519026327040956984924208375306654482316212230426724168816767789268883381402296848671490619093966392730423288744730742504431880108658086034522134290424055875371760007569429770749045362445896650257752661341217804720263833690802057028899757925963561764413877373936347018026532784811047717116583497874727049100349440078444376748904232371522029397984813264281983589695851379767456916359737786785027466493438613533968410547419430156343629582471554497499446748638674495370492326881273738149853193541350349636621264948160182649704659131328606165854748015594251832808497296805061407207506049734279939272397735422603336496155880419148811302718648575877627707936907171610342460124821170548290859516697155082899454868259334089485219022893767794955580659761182224891771428024869139638188560532987996363927977167825990586974869788173825181198886583264256093668621485416024831656951448928681487112647506187772123314950709822106936076688516593278767372435051074618856216344044776893336317808993574091675387774840476246392613922318724190739724641343971764940059848031747140334699774931434908932938032199082386614092319183770067922812688628380876306677269990937146600764077975141727035865382380039011482090870251540832515195093170073744211788046213257960589245015519778175641996363470286619145864267586228894401051947677234808282756134637932789894439575918818899298723203507763562059738366808918251858931021028418982673279177448549477531483201705929994910553737269301500777288276522213958477061290206428664174604205067954292365105293576617432875878710288919704175957750049556222421976919553011955383665490128558358739623682946649974211121216725911485456729318482220704965410649778228615662115440982429582752799458953380647930884952638592487432083064051331484680717524810438376121358204762748317997824187283651813596617779766212718079502704293892345902267945433099253880104141496079690961032830435549479334798771259387511777895561173771922315007514002407057581769447729420034638703272659974563794564341718441679830442531238721786859033368729781507942799508666258119998874566585899849759421826278681758631666243604354572083113569988525868245357774000460557971803605790684750692782487333742591103375308146079494913179278780454154078846540976004120253313606068149782072044634974080284971742924568414639406042905805709755919450405806613906118606645035785960633191212691484928792719242614014926768889765054747823339301894316765875367902208916262099337761973148200393545192231046122698000887891522717677332364460038569218252896246172681929875835883410770348443270385601624091166432313958508767457914363310002924922840472442452180108663515778869517037773542135336132783854968251333943294807506393113273462295520395483827983527339029576906070301823664593951337468079166700316960135298010579515842621855391956748860469499767756445384344112705571405956861471984709756043039802151988749136801631249566893448371445818548013080506236755087902105496648468603910037638206594987547799894032348286943489728841543433193279748866502346195241589403487878059729157353304117979193779586601020246160906889300738086864473161262784271016688663660202598406798220841305168906642130702797687278811684196222634016523929839903708144219476232791600460346402524085994880883603449840792705202972001252129385241624255112341482998541490727011660972195274771095429794783763507189202226496325982192858569438713297497415407427925641018789962356169483378684077587630969315938899582404152795953266662315643491375283815435221155027136726793753306601843282592492097627174931176629024769180345860877781433533558260608124226770670806044443863434307555025835019970069283338474845678472415359882102948350105388818801383872557401171253576682122008602568333475953116668312801645503511297100741313382883438845477352200318152023220388215743003758544842988557119830548302396293100892552057076486018309844127445963009538877401320733505370359653641158127925776958691010180284006128048434433481609242379697439017106242351701332123402590199204463925336317644516699900553574875113232351662102572621297395181550780119357816217904540225678082054281010611804380807132031064678226134230029013416492030028653380402599830173895859812432068673892897519890499138808781939367743022227362783409352041342763233021874378070829998378472910443997249769638773788019325850101972410376948232352808256990665839094484859019069490402407834287618793565227957183889173646760734531561198113629261814997623056070687208319812512405498985912581091067766528102984901049143156412644719572469395321689785469456174647915516696367991273687500455180045742574006387911249397894285686765062717837879338456328540865998891562701698971490484142933822951455401416347076959562732439695039660385055255486730846924061842464575606014021857267331843130905835278476687517119907232778437913846865611594087591497653476207455754338301752478287877220981569869603506017317749700088883340239322964054476675091472784496568990543829969819592768120933709602120172109562607092093895455496516003259633356691849901516798644051232750735153545709902882317284215307420343299045960219999258105893203126451096504970348494425404328341146628725251656494806851883244423042090718813774472505346853374687008980084166680502477082085354377933270812583239334089976875161076297280326458206634484694523941596404202690854797519438743036570052026287863580829578428955942794729281837943209293759424791122296011662377939515228523525541379876294193914886420658665588139085761886763147802898392757204591696167206282015995085743520481843418596269909907055255726479239148052656430748819588954546409575793911658550508128403790354382224757353034230694748472468268755505402958783688152261421729130650606010435911217849504943182516746516164543931830252716818631031685424141744927467330614528087256201054099769754404008779265976901914497303499678041286692304890280820694602861157713732899144137577946882187051335929327805419604895912833279284872533870582753470368441981199544852143711662057138740842097307784916011565996588318102117839182790008695466439161441875333474921390654638043063308632373625685747924937669386119859649399954228609456365250511454396093486166048166516382372205016653642870406456389704310153543183216219998366496063586738993094334832486667760735057963382575927103283460712271209413560319454013876711082387723021356416545466972920683801239585533542893505693199987582534648719925700227827392461400234618166738843055192125150693175376751185313340069926479576630646536504867904352360397543196893267911269510816172427027008996784222114367224558803848628330426117749921432544432440217545874208589758506586073357010132113987798147253417163047397006456750061775200617573199551556111302800048255655902099687449080809269620902084471780639818759828179880899198225459427775695551221362860562042619456195305295740887425200217021939456055093527992622776821365006555489961398022040063625252829629186984151727328514396648962452327265569262907906289621173657685359047049730916613981493261267014436306201775018687974609461753704401416523027615458135264983991573008989712160934489098415209771998957249570435817787543536767166561301231120617652732038401610860421172269809136066877336041841982539254116089920058954798835740534636315229209681476429439379538844148773935919241321849946699821585152685356924489181930644328047188659007159499445447220271539943238932869142782496763444681551511823666918138394448666652828168558940175387674681529201160129780210771197742833510969966910428195839888985657074863017467206108266387242096347085521905386859028704429048441217911734211709351108308248130835578193073138655516670864021611971880590292078545690857973836802316615775626022143036325425765309625291037474073419268116547305057070471668655631973747471070880588959892949532465861844214554192894564287017720535719228798868742094226192639039254366630319620808498030267200163194357094498344959442341222474370154822186267963766966947777841857351890570955006425032870767757035669775581596658092263605615184748455346005413320968091826672866013550601660978477832250045649941900496158568962021530398012236557774758594136059643390430552693607294447326395324535884676815644040034019367357054573660530112609503108624056161609660132042172032625404629649213264061141348467102478879685970733802332051464011721458995238710672171412033868491810267826123896524583050855139373963793329646482158411352284382759442957921330308964178455882405721636563403843617254079691865521111236675569660938589404194215824978333573774010877977641637250321086272363216147714684724615910555802366244421318372761067310245824948403126799069289358736373447947382086211498792806790907180657814480580279023510683139703484745334910696602001154338472167459799567028743229709532217153074785685158710094576710372667767543045492067285396749750396305377363983028646866350025030956035831582676722040864269108599102542793893194539419126971264845717825846499969321265778672279944597448942313788113178740077306529265936856522347245723618996532837781363827607619919416509806168639722191717205329287253815908634355972292012963106795125101503318930437394747287042618894074935467188383116154677239060798794393222739862066556084684999316410185565922829237774202577328166943053624454861809761765667485669045785574175935785213759046807964840502735529252112140360585029648229782714386114955708303191060816538063801470237246205555014624250941127214775984617059500620470401986263156547328670008209071806288410913241510766897291422032926805639647866127332436315424495299247550764912535631056582349394382970197416199191760360746721712227708430077114969622884823587561815798332264769419953688846992770522518967099212144748922207609829493609065840444893136267486028341983726447827242305446980539434514133066023793130423853507721066749552257451896687749763401157940619766449204468985026802587780745230181845273569264750170140441407430558105912890677802612889529728747089205437959722117910684929127189439302713044182029534649523775901568700204059392306833299947957662212521925886223514506275899391271850136506398718336488001677111969985708757386213603920393223361831666000017664322063628953954584289747114225546361283227239073319826686107506640224136818878115832583210541388885736384295406483864147889986062410741230798089256074172975318198528448225409385873634838695084429204504467376964132366951977493855255887580482903569763099889045677594104026109081831435568805944645065802771082226673570697947797058696095283446154045048885590172919887726761473331530821077840154763747328647672864509211455913206758650080228417402672919714908989065048077461199584368702593395040186543247191093557370483193841172929215705046882528914219249878434217843181076480292417339701672144309981829542269021388591110432905256233802901047162457576292412931232971222296278569160241373272650095276149048041350105890075383264973952634539243142537634496554465070993051214626972819546403150714193036993786119752387951671815020456382936879339017946153303722395329310600344980613105080455549153672690682063307912225289700842749948633409322387200641661090482936887969589306461890063280325317033131075907442091116307933313661653154122088468577221598688094068968003102259532155699736520177708584302885926584985274442164428582874835978443150527898038599803838758421465397328912023350966549703756744081975781318062755549410649420367034437639232575035108184712990558152071170393136154795292271199201580300115599322011058527019010135155992071495502952441419523355463975960677093544719014854555334275839822573211830368469305857473479971777002039726187073260349155043434155161221500913723599354475076683623367370214694530261058791970899618815823411331027723672910463054112055525723024646734970606633668920379627555907849621479381169212753520576223504077644985487216050014886080509624920869764488087553852837406437146367268335766226199504927871112780551055639899081009673716795953920881930572983650059155397082120022525689924742526679094334561395350978810151775178406840199298270705428478903068699991515098131281723812173667114143315423586971710942746502011375030330418028601835946315987123415265783848470165450359079112422057155180850267985450531150199679288003541574991485635132432426999373671680007048902771301730838740624318190449277006211189534812153798659901403501849573103394451092438919739730888758375079474399540334022806911465344167896793056078231138416725032631702129701000333885274481343875541703700773009761939230395169178259243597940306787742623172859504236578543168416492925077560256521022863902027918010272214476156542742069709605931015387690809444954652089987464032183992747216787779834790362205531429472760717366702568447199507786241678107088970386737939964337805673542880497246170147961487853591233742381381646439255945122649302193537928986946509549420267698530839289278051553414457355488312210338350373811671906872635231973063129453976661513918208831831087415726174995585289290900905838942406373304112922860993663755577488785648683953314137532307426245452766512542410204239418530761943315896739291825231410964088919145424206692309676911104968453980273312516911622243488466716051488247254464148603121387163827451590773665199149681249765529686283508857840371029819905313548066983734688716308383225691044304136453764255393031460317738909543971258199726412797267727894876847212019794028144325290407563602367169390862006293497661769404186017812196448299998596906185982540806752826360593544625701705065154253020477705004562644816457052089968086547927330957519499738250347178720203232604416227679139227331275922567542218091924323163134420158948319208721408705833172052941085506179077416385351772369428288741905913276752132901065788672918401130032146125027260492080175822738005957863360208605837935597148044675483689835546739443929956022294497242957627728511159245124461639268029110147310577582484390398014506961018060833548415273213066311863979145590995126871486671287008681452455284615146575454712207174426919031377744822225699573785262142653120836703097409985130687973638225315476288760437209654719595593999600560533130437991712739950386253354255357286024070443481118654296955390498779058180991855052938603516492954158913076234929026821994621577866719991165824576808315027699276006232369629055457700191227073534291174831874949437875941964690512141034346657622501268693612045638403391820692597986061102732760008992106246762719175892318066617408042534247333343342940976725964257770825874801960393740836430945555201747169851554341373467056039377418994561550873930704051862641364864796683796866464523600312744006822827077464246878779644546651229507406935620001412046278563133520138511226043179712296497057087367364193864724485282642372171093089652509334499109441795097714643472098244072775386540296435803662506987900729358709635020245031863343865017940047557379109371654252195009474495164501122918372529068274138450997331034254805484815748333121232018074741680453993471146537542889330728292427497743598344202675262292889853551031195232976260139238631348374842250439119704662399439621462323529717584296804733203419936594971427217204575858270824527641054893412392740842053273337692461949674942028662730872703420083383868787843793425999112694791759463671747560191830303407559391062249038917216315696428295488285087022743486538447503440831543528907917158583311935023913204093418020499648585267657671086600314108099048329113161971825007895047965319593736138484791800290036445564133832254681823661594774844427707962503009110150584906856251019203957241115091070659446967385210896233695125586637796621191744266671376962895959854315653961472760274286946617554141954837360312704019848696827968734170762651233234585121143664225369758462664603763518180286271954381551219716525280994955014480599097447909914284347697840091767986794399454028229469753958627922732063886268984731372679786642747633248007789271588569537503292344953104713512809068707628245226095225005013536623871344432922793513064613670525847754226986871229301072156731943283979985048806679567017732076053709083163858881329256152875715779891351146309271653281839275038245562188518320536111269589586375189211470939346307291040133324527039204135835070393425153237250521340150406965266904522536350586921598490665044487860930493988068087569163285460286887855361713166177157919478390158071814762134437041963387103431326162719232453823912168197651198135590024396396273147932365056725948095835843678537472948705618403587041014541144983539779418737785169203256009399371843365392441490536200053874052387301538230535451542797512148037064631354956368382273340895072364829169142638723901303270113613948961327761323627591121387698513575083196731742887661299443803287387710216405038147943323701916928132872325396672632520072769743844085760860383959692948564253350448746235861810565432715725522506344972178286986322796633891582799741699780535568935466281271888260892199165895585831812095845499247564401052802298663473481398499831814474626890984530893947633801791671547430658969942454856973051034484374054792001454572827578899159789777407596068966133264857027380184547365974470840312475260233729222312405560350433762976056734844108166045802261950726052396862595682380513578219023387777874438881955426179391839710964806357185701578334359042237138886198898533323855405728629077525050866292090130549584472031982723754194229148856427057304106837505856128751180574607387000427377964145297965778100359716875096097994986740252301943635432008143487815896109549447578049201597995072541636518115821361488805212257718917772599855591284879132512952068386947679514982399508897964639602522003240985964558800698630327076286897127695821745112433442587713083958833833562303540182576073577244928656196461832306859428116871895523929754630183425696004611669816516934295037569949224578345172538466706964578247213794847468423578407406753066039110498071450519740885155448333490654117220105554133868559641730500426730665531296872351711400710057372931734388958624328028702499492319130747592469965725038204634894717870963947106448734506383116529733710739980169223302044652391622162365806424941127501795986088684820395811839081858114877365796443202674588891340890066348497261017034367965223242131016876589226800996692753001372698736329463635910552554668351243827461905290833171395897021423916933858732346473838033776882682514917973594160238519005325615161150802998193113148860862144315677532260535643962593145184799758492598717254243584722517496525786846173639411446721385967325803768915210970618662039723551680371788829929375491367118323621685535709445695202803144084358089729983120040098267095355004884303861472990024279808692079270789717365935178635989966920142646882005831583824995853169734291398016537190626575325375693428978835478978383042153514303817873526405844439256180239871587560259787552957881204471648597203549891443089894353959076697200458307064084189859103285648068027024106292709847901449123943605615827040673654492589654101021266940882957647113276203676850045972394774306274455635481143293382692047615149701546404345438579763033305207471297859885459496177979414120039139394458006255821036313065437567917350896011273539948432470864935058191860212357606766581355985819675308855346160767851496361307855075401897465508307899099051746700700886917271558493450592291945479911478957501561669759813305854396724842358513167715519249748035453275286280203727222146750140583851600051352860004837109428124879979594771914412275260856093996292420021525717589762629836674322927992243370586994433280255036582674035377497943163488022396313084894515762747927049072777601996794698330431523474005217415529549117372495411738837505177637535949210629550279437577691485856700407139147281536870920449460815998604236505639998826803123906534082365730662166672340390949034129142072233853683137915926259539327983963025350948678870366833921590871993994974024789270091565742422687036150940349224740154994688371175926357770499443288913602649730702692828966116105579891957678591417050863374426885180563353058070956164114420216974266475645956280719044229571059873161445048876831125535125690910655869653355253052371430768520781677104704506604388301001676956732935075673637064031603532933238345953465219386765018063731943072911468804664714135197978781363470322507796016612680932405681981364046992944867828090522514873869078032482208710674955376744269383956541915142136687669917396768166708963464389536156293608323042722633011151724329605496089623942883199387729652065188775870844971192367952648079198905151035194608131488866315259286502105292230957014894599086136066358070135814683144290085987904874118070044798836793519014085425567031941986016677585448534974228702181461220432207998875051920186712307050772830589108774542592571420351868891072580438026375574760610146082245214397381648197020641185942133475067994262769137496710840211998371119112216912050078083427281237960589830545594761586129690871666913761545259707038859670042641842326989978142536513979646057555394104298274904373307895068906783499946172262652528090001272355052683815970991729541456430768472882578082285987008882955266774180989217041356122896296841054401647943515470698024043673825746835711235200719697014542394103771991412346374466085428537742500442526354836818407340213970559898820058254335537204422105690174643369425116646059391176878929522570378058235843845338331312537100070428972537163267066180900613049492227997882925985199426572980228114335343763975330368380248650847549786394851423357688089175240836151802453876210761387665162131203282224838128318488601681581484846732414495202398508095748164721868712931862461770323726127901762569761645306300628871831988373148519181430334742545457218301358050153007592688725415698836263831936116465401424513017063012866233365539739479846186959144613437151524513951106991290850123236669717435555109169158604697261536700274259130238678574244539075558114729562641310336848738691280035214562624200243284283051778783227924280565185445327864366370192591567682599695835541110936204545531096158940736268057024546852062963317879136104728301133556203838696752816243795559615880436246690799167477379874115657269538821034247514372957341752140998915364371511544868094880657240043730530319536008945905117755927464110571276141733489635424812424289522304779133541594098646542257435716224425160091006651385734653812712963707405097128310780149605952321098559002485477267287556586224028795239843079306088933091160566522215954659160990895727208499461166987959999951489440401178841780913022341708384018073867055694956873246788383758342290803323928337768964035837961459432084094316884163555266507729017674617795917915577276481112453808997313392078277714966065870066379763406744048003605064327303785717127584094570330733636361885112110204466901423900549116232526024250700643581096796432088767573362500981842606874158942504841812974144047748183297038027289879410813970865567380582157993429625465193696601097628165395119233236960674787401910507558908539920210606217732995689745006718621792261739642580472666083004206936820412258339545910076455102977265667388900561046177760143582698851969139866825992487471716309759723949390755882283809409781859431778277150440129450696403816840548566367756101065039815955183013552505011008682937521151080579506573272505841512664482363721089701857053414076605505981537982738392068021479144691070675780849960372562959891266404249283050859391421256823214849483099152214524361123751713199598174353230031000036224579215466070955533539510801013479060340996465349402021314318263019263462984893549487153302825844396951832129004795368163731998589241111868041196030398293921854321069354973093723379123151130544076944121751656035786377916812611703848792345998500137466196020229642831601162500345027648413150498800688392341145049601653619658004876184358277128362904943337210053995081611682233116121124335225332334375386834895717419052565901532746905281172226030851576438936036211809175275789257052243924964373730291230009429824742232081893221993831739745690378316212459690934249518489555001558241517322010897830525934544748338597015482598758541821195972240813832690572889922733792822844466659586453560581798430166447948733464030936865082336284964768947301857468726588662224987751941306365933260916861847677504024480437157900065214226507278366089422864390086934370960039376722981889717396152628897368355549455653946151601910879280335562259142550869212522071772177245786843769510922857410266985821408371899895882454341468227636021504421513740337489011382229535441157957236833804730852347997623348626791266016557656809876008243457399368773873677795654722873637896922146910926755664316554051640432125301147570263020506071522138012506774424033810063435180907851543296415790469842361538412775744391095357174822876504258217718746645256435686899213015708455012426436532557505206005880817055071722866861451944212788476284756772780979029699601877108829064962040591256404891682418561364175574727903841651299237517996753141015216679166676514521067809558624188189713026805025457634256596806411425196768856192858957504334783057237606934359248372700311007153747531072897247065061001469087728292369231867595008828426453505106578329095563120516573209598833557511469164992218189803243598503677221751703595268013204402709762830401230975061781080776553609542287576376454798707925321956509669212344174633979325743042921164078495263340169765401558705882374640107904703941569309412159502640664123401539435891456142784199088105512702655756576075667895679853141969157518713914353410653681147113305832795185462813142836552447332908859778184823147028831107388127689359276614075531572130916082513222947646990982950294551710212547824904682847424550159999094999186869776647393557802410823169027923676434966034733211812222241625781189653119772716927560442704877999178803596433891549698692814486699487985983551478174075084747054992453316573450281878986548616936571954662130922753097078811638951729921774786256162221801180624284431219763271500432574299863749064853090436246409924921710498646349193556395404551931695817910856470720245634827840553512262764732929833799666176633493428499050321368208964711785013817810650157507732196151875344781424642709573170613160723610799284201453882885984925937251845292586288164018429333398815890459667679789338279692413677198851137840439961843620072702050977249704693153005886892421503234888130053394399557026363464491389135286886572184133625177489772476406495827350359187319645718997825260809780393892809283600624486552836806289220484212859609761376620497949555076828419312830650493338880459963811133819316881901989099587207899810366877703398162887550070233615874498572888052596385591783487246723122239828416740297674152897446756146980027309932127178078837393709718135525829656970185237310391267994555677346716414670736496526377433792422656246262995772929420184136794981792348203993644568771524148413990439896782490612232892992096316525058362590590456636555148947015778000512304351511025142500221512503554243006607986498423337238211547537604445767648804991265185037078773296886518822252904920936198093108036485233373743230155740232049923665334861266483311796047351565212022850506785001579332647917191487538623765585589252144680530086850050114295284529436926020252125792568123454126179064743922049082162116487190516342419675090493880722476452500821318661615662808472843045420443971241959924346352920022557772619556167063313567513917808469971839332027388731316641124814883035671692067222935148791967841986403073842035471271703105786907327892569749110554656177941886824572044469200638138067807273856256503028614647354179265366732869964685385005838274556934717234106448869101104522778714677970980007199058024476683235287932232273191849833284483739562713993826023182163814367908880261331138299136176427753917044139428887526250686140235792326972569985181281117917316473889785993703360806480275082202891886445784406437207644371652013672559546646042776703337820012395916810746093062947167662808897916042216677665582702529710294949024311420127622313515408008637645976633954932013977116510754191614543981261889889594279464680334780510900509116648182850678661056670671771926543368215029349975580909399595403519527127193755296046671688975922788484921285901459188060590659215505898910654641358704653970381694231782963124049946374240787119908205516605716813240836663230733329225101628592672938571342316922650985535160821286752001749848341841309884475030713663820228844999170299192043763524926472795126719888883613928130505002789958672904315325688345506010913272902815153712528295314380806268803750043949692335674288238754540085880448791925659225305822257182686176175598016310686683224639116872134099412586003266019053023809103930942006393042554319628526027620456927201923829639171386445791555608800343589937082607658044383368201919802143608286549135464936198749863477058963579239105933948453469794119910017075752942509741262691846791566882762673050740452546407779941040609137827442916053054795196273555096962319866634678006252156472788343373763950741209202460356914270910952104228591889002702266225879167735362468445273322653064395344657480940507577809611216880865623757650906815297874642423643178142165207382154046269240049907735571313024703147140025841777145448337966322974771998560692207247061490491508838050422291555212471873360360611431706172025535020963759560733432921951037627029451724820818381745638096246404981833169528569366147611014899333286671499241954819341903396484898933998520906157751512691468009125213470604983710899093295241790438519626509636878750903534389870457074501748270239865900232474459963579150474748623420976815827741739763862901426852069145558592403494510987384407391441883691910024991690811127284666244123276159502425320053486297474630483372604844271154504438248059879426591667568008094519872913443856382908913502895682851416824790048815319046799098573701005976128932132228029764172411823929325235697767642788868106834259409199351656477418749764158265705885578362350641390528963671294888835197735106228883769516155328536590915552009168262706362296814367756814778811258019274650731650747503650220159815401948960131729667397626700318599064338434312092527108104304070279417450281355447756944991117276959006806626477772993374384258456495087793963733916632307434098029804242863910538278588636960088839740983201797919058744928189946064772718744817733604539948134051558661763976132652595792229373384623470282577386298882834855817921374931761937864032583036518607885007726898580541586000851673835039575848344379774558119682971673169583948249710137613032883531541923448107533577155670583941716213858183006674913000555885262581464828206047568063403047378235283640300073399771740855193349949564329953450367538011540310468440938823423516826197854250402668370858683077958198664086044726463221756912859893693678013765011578495878868458528528585718240948031197490016020268283282970063442610467161617958534468850128810419023178059598698192014337995050904414665715900707505735459617156916618069769553584140166634868190874534879354048707342957550548219040429337509724282111935109111802478851060609439412631332505883877634640672521491064184251034700647380070025041853913461033956411853216114319642527157994683127252377735790615150892757896734002196083575392580114236096006257669789654126307078168044214427231955843094153692493446952105318998620543575832747882236289803775219707513348020099815568306115687807333431598467130500198224786813500372711640864076172689613770987263577064605007874069703631745134285091112712294333554600451840761508139549389379257976046359895858198947758306232698603652782445848896047399222127861162510788311043396662981718005466837805726954530785049080283661698391692896035932902326098974664390610348123177389327422869203059944298828126115263786339040512165850997883538244007833034124568566287696004080655334042680215491040588977190108391761693762494045884955223432736865532039111650848008795733160981278678588716627274424840301641350218893145729542516156112010870733287782796350197727404654090830450815519320933874636288969358834073677456250628191222538176912224553302164559699070573696704905860760507648987343516832911450035467045342552379991044102255660058039805152111876917385625080116836603570282378771423761032409590383481426666287851863660162085348315619615701725701001149840066774791525304294786570255442929775232337425278530523949872562307179407103502106963352160939288610125951167251100804698680944959271995527110123954807744599067043663689362077262246907594849913031546713919971762897491877371413867843608181760078795753582815718202955645726682298767730861026232383671769115139158529084824508867031573845679665680025602345758378868664580315488940919478757754595891528794330400226019270052663693801243291464425771577351934022044354828261965670644375355019016002954353739103521124615804163708170744568919200186795040196915462670991757895071573734590911993578227894919533149666894156801591068124843060651020982188941513032575495496455538960064257223328482256906698592877275258773113910798715075556774665308887380284105487326264331406120061571263546278577935920907341023268276815714195554075990483112550943084694895368366332497031763845983116801943327818609740833669808222248623344210348386953564371489727160466225543683379423292667151991119509218863293534282557984438902655822595827276856367666819968315656809981639560710918407610997211005420745163507359668598077177546084623433752061736189162486062929479220674747893156383948383214216525169183781984465893837949335938401417824818605721766048078779330350808096317277860848894409188039380131493788339930761189711040590126414593947315947378435978718463030065521787751540843523385167732742468826054602101869989901225264864142206230274830599946512199550903621686413405072731686235928980189951564807731250287989621523578764007140878676597891781680150382246789841035122181143748874362560425545283404990327475401394836844581864040863485558890588434707916672530729581264777528036924981027103934479389503022216924770127815964237235201704477309550374700725452044940722202175138591460095719392433487139505395720243728538781239032058382794602816137502460525643176055080739600271112082577727949599433223282194719162463326446979639018767218890893049824485394139569688171101657024523086491786790020616935524345216408550264291923249494266792910194780455923354039015246568889749298788600229797650637025097313210646064026293124721717102389732589786321365466873069542680035326274677448123060955090855676036206130660993237753153451948078082663620786609011651526095318546893420500165103003056336684717142663451029543305163843974035858774418513976676277170381552381503440474027877237887047786364804089935654856873464041809937989565377753200179510947697392059929343012299568887554026955921192558830072921659559159860132690184152489762099789239813246533266208125637433075302552533820299940733823354143884162894602680949676494417627488401238435277684385490914865313682843308066558123270420768868337418733172801215153713390092878497680408917130134163214230355479072410521009281240651934828114595023845657109248076885856114070575751516904125400234794431281308368030105308489558732965551233142886395465987182985161976700119044722297165281807653525118177311575917035095160978465561048024481388948868652302635954376464758743079196522481567311313356084474461288811701392347009739691239876106358347193322356864681933896716963788307873280487311303577048350737325096283288264733714324007860797838069994033448343705792970678260642409447344839052179244169430242429788645373480346503002996625558376737672811256680508963217764020115993337410286354576103156014619603426248109757058094315044095395026419935675223157852545008014620449739819279881068057329167318815816834350166994526471303479081836306925712836224765172195478318232799474971224485930858492307917703900126263424399064604046636386541897625045327721646149045061148028242806041103738221311232829398105597166985112831875434066320504059784767808194805116753030116796723494104396591396101257354636393626019971704007530509652753490985252267925495789959583604038558351132740633721488357600548741941788431794533305382209664046420667830477930720401736293281875409300548119778365374302784649004351694496511097180738869598886677788598882714878034535651218999800930797564480482525919439854884183449752256701482143844414467721839018273664780741299007938925295707557878722494347745813525590084382188584676215249494723850868424341809558502657380039928343191394133041671218542533211567068730860820908233600718546221691818136323348912038981703969933892033746822396887599053171223995647806219292804307003384297914404373802413623242218930304835979815853695651079227137049065963770515162960966900569392624458135446660200957842579474686687562948961638932581502293654375678341788495723869544644782899569585881313055429816237994454469591608914560696165876366578424021882173892662038345271502873881510220669254865440024199870040956946496274198311183161880634474709797643000437059456749878754349074237526799030083412004691882659097026789125284653860177069565962799335189322729215813266539261255709196781831424656911975921843559853482211209782726784827804707295980467800503929695764688538204530197122906314791249260916432596838231642051346969925322475168628604692417610513206959271338589322025754277952695606063178188668573364242302649892555557540699914578533171843605541006208539986756074768809895932873069679218064389633123435593362077350119235462364955951671709634703242966917778572668223630310672704379155118275128272861062112881081489687531195167311344242073020592746249034881799651436369789933634344078987712680212956213789981151262530523017492935389851538402961347043835646579087313556563707033229419389256193926259389840223154659993714227854427679389967579972532460134089218386903529271599812312949638714751233520462316533514990675716120995326266071455277300881925921961403282742858842801620974892067549769858033217613728916048757918998341877257127133422123227419213460970315266712573493581615571205768005737281444967387851538152695951664025060584364092736565939159976111658154325555837524419868616719787077701863747026962393961073915329611054544857175913080873929009374667856888414737558606395612663542201417091272468073461320077558515862877992763220797200242575083880555888787570339130912823314531495702446363159641020117554876777827078409506122045646399607812032326734947357725240538299037637934354177916577757792999506587175497951872024945699163565763171873651707996725653599984428641522294813840325281680056322316883640237340194428359163944549595700611902600688416706479079590459267248328393844779932829019801875709942917041806803551416204115289902597661806197666246906976466338056263986192634994602841081280778891228055128232386025748793670371789656313332890710418602379116518188950953783110611806040706036246767024515117162081177531273900996794778531220923328453420865676728222895748333678642070852448768554837440416346146698192732748566997631612854465258457142682219338145955192132217778207328116017952779446199975625887171994490503549669889596040085085490042723029191927977957521294299086456224872369450211674753840511198975509418580456062536137377393738009362202582983152490892388846445526834069407781608302944473687766340668315461997861313404989551651362629671237107095889945362634367150088885692908134330734891248348365686773731151790240311503436988816268281185783102041898519330316077937977405376336044763289629705674178470747635076423280925674315616861751967270280217648683840345481843467185500465956545040418375517830633204638855547241940500953028494582946492190776418504099565078110244338604465337152171706162538080112573012846097819437853346974280108334327810079837741953838525778554077849671040277411115041142044380691899585876205749276407426613854697924459154665068772697481514606462392083360922760038705052162804827075262554653594870002424266751296620848984841894299542366953706610321124029263563523132353149711524007766097675185948825325845559657811378915231294828210869162918508720890257445538615411827714428789768447146950574211188205064155540720798180333671058388812830951446449841140291170040942322549473291591448587041547710231090325973783732632996088203738009210456220705883862574443931147452470534505999199737046358840194731743204588256768510845079073974401801049351737170861444491518245739650942639744870868779557418368436486397243356270574186767672073648215378453828124289761916173951285569610523642992059813598048312776207262610325001382739701575840663437396288997471900575991990296778467778697140482922799477054820134273308461610095239838206225687309805230685978003702626384968083951707679302583739081019691288370463418418527742082089536313302813013317041400450863044052151864849174556447323555214181444239806070830434371709490335360276201975803055145864108110129259687404046720773807326601627002285253808215910604110169459071673362577041785157291862948555438761279116927705290328989780481395339040035938677822326186464897537368120418729457856134747586158907724246870434653997304718108880392299592567639375959914139448578119709707518585501804174010117319312221338585001361043828095018842853415037501038409319539682533202388853124925225783126782992704264734113352129463380646282591529221100929097079010423464667363838989547454918912183878181119891126284215981751342573962296447976605352639729145068864068051398078139705407494032791881036013987482559582287729802122051378849717428241121476742152088610328137574213371896501033418376477583541757558003003272561570526183672764161665550300935444955472604672788452930055572603079711924174820275135258800310113319021540973979034799546465477248380732960182062281682887210577357214357595106825864831844724669221400942130946374295120525016910188355481451779743566186718527309556137477422174552377027605378746293122935795696326794412595805592863064262452928770896745582615287340468687606479873651504418321311430520427611289770267502027215634136410634018428665199542027042915319301369204870425945544411694338225007541438772764163458577445766478493186961656766537802117407143767024206805320851374144428915959239899806872614900999934679174282824168821614353981398361330555429610821316407757585321736353193285533420534597655108727756368727744857691352717512154756057677617763268296037888701814920293654093345894081785220841747875790083544135509963166776272939909079025489071979974228032729783486070943422774264373837717602654714909356032646484421810521246309130432301476019880040150247010553395809821174722933946888521257960985592583071120309315489422849841973672555002141983413781171684004451664657421974290692383767792573374247732514328739832018332584279485780025845672879988481478434637599437775752332388560330124894709071018699365259239303123621366773491263621266691089345996323182043566392442233584864483894657685778938206033210944973889696127182137791153914661172820403999395937963298076231111289818104446100449198482051994969202067107175951023998668342460462415696002440347475047218999108027462292450519009635421391335200252934182219198558346738262483732204661372982558455681255381967073390536611292782682634490943901809006179719328154221231518178099073706956461359292531207411365980041285716736214230026822100302085209861842953166980494209045045348014565738605277323216885525278808139493360059667382688033990611564439878842178291819867350047285385040586311863565128311211749970518446692816014322762875676208608661374975314883913372691617249405341873865352128937726765156031773959314336274519941356516507835322119034272993809412444982073193532524609652313697106542689671201541858585210884417544322602373113966940023608822939514438616277762487633143905396182538751752540651568014160097259433500093257076107437724711658903788566876471813871450762576478386782361170854861038155223402825225011431589634895831658851873106549576582614776619217717621521524064291944227360591745869592270436296064180049377998418060216294311091204635930046702181990919495931492144488581694008009443428036522011605350775246213418643557245826975140569092397876847837169105372608554315678770875730127945790909915311358175935170263414687027610872607818658487761537335512627423242816475104696559742306559438801756158971069767992306075237843996773128881026112427894807080532787012496129129792136394618582404373681409017194938428711033744327596243303893197586660530967950163524627586072894074732665552545631289887424664710657309012070346727056514447766577142785833081909906126966979528419722541398461964946401048255213509416181052939909967729996904131939662416372859691567866156263177145076579238276033845696748923333341521197202565443142003020730811217287643123902143585345056421376490752731586395880699239241831856275691685790518412742211246977842937684269582669466248058909586544259926645229248317185693901921153709748707364875594835225040990764257485888106526821678703031454679404878949253021134355445768563052911024291877410835008049734996600695942588808097196946540921876086564738270619256768634419147280634407435974936687398605942493451655556295572385179025448572887710835116865842549888822037042832536840922512701451810057946019291389974073789645123842595742409064980867674335067692467954827608590131542371638520030974883508777535245857122312127784764126955509130487070086275878147049647549782550684497910977925258029716013419320994301433886387256707943668068747390129406246028813255927454771549486572665856443474969507550092188906102438787689372656727109645419757014084501444351123070872351464599942486039425963268555996564741024417233875143083767357979377188339773523984191912583049762429786080573175778482985170316408330418883820288004306853268872943541240516285764660472920725342454237588619623988440570025970284875764512873858855593222873358733185853271405246353481405122704879563467008981285405773998942400003423346445117669123036796861043414514012504580966320852237745989505059399248714180299029747833931962027541149127511800142770786532276089194124740968556479602571482897655808292581803254918056485497628057742314787908482028010666992740772801793052849686832340401828085814586601335504670835699165429712811505674999126678768575536547622426733116079094259688791515370233845072530758942058799744330631832097767723341055874096487699960139395701580146643321686212593605948283838769920998963818764498250695930256077241905593191389086398845102140206956512935835858086550853304906019988774925309837748257223262101799526782027610011759656640445801589749642479814020280455927261731044618610266536290050397933463354024913304933331912848168752919336177653615836702426454139682443586402848224182203387661188357177339766514555083170184242178156283414614716274373833857400193585201172437562307851729969077148022773702568615649948771310225913956524551191782149865283084954047530243371836676774356785770888337934581502795713806110493696626935701468282042544713436441071966534768432596391798599244948718638372286324194480446487332411122169922788711305170981491333983663037399491703224815625625379694023473643049161426639010003949378717019079241165228020677638373322163137816955172931726976191699164033433918979829170901701307591304488420119652317179528210945551399946175083424711472009524154097125645118713077071692257036312145481872654184333396707024958392717180673002656327553775137647342243773666922243664386447188815010234038883325941180672526010783702735608466592591436390497367621653218571361950949453973448712673912759023830985687874317164250241731532859539609530314221606367731251855547675196858109656406460445187444124661833469759192864115663759059790316034659653369685481380961712460618975753033735611832450441070189343383039380619754277172682441439166535018578888440723590394978790598016230055021664091180562260556661958341216529659132415991917290024000414460381937253500628377898161285760961142232760668004394405252644863324883503809798854376427794828528665933769832748194950645274071052633655997084479927315784409245693336383209249192533123538561810209663117761402634391714291518318961091624601997316842971284031937371828339320108769978245385281451506583485272377746043416187142980164841705415806610168164172574335721461930935312682623386930720543780027317631200785018254607757812725457978018143724591590307133653512620849853370987439410405535832939060062273235350181555896986564679251269009931423189617115954722248849230327962955626213843946348759130197068667020947802164247545168697455710151298846332327903279821259752759286559232480852206459780904185570201683886017384919525450565170826596591322351662959712466272082418797768339660362338496751347396020035945926278193573180365291328671610929223191736439440850517328074835415470948920563175429195532944851456490036817950927867808019815492477970549598306110559048729801915730789122693222403860939100357991514380905949488328595777451250258584403051133342176344543371719334406552858209619197084548241267300839128040729029440085717132524877889769680449919435010960367521971195607463562184575102827559689801340926065330481559266794188986727114285340570965546901349733054205691200983517729015828974664639231519175279706748875598661688295305840822995678257162997585554821472069278392120578478531539578061712709868082868015207477228753598545214381736021184087310807622870926359266687905905790206884669625612032851002606338592812843958956560653202739489630443111187395176238794690769374325486448671334683828885207551071825055588054118534200919367352421527024843111387774997496561558479989697242636307208554847600994565016222295186948836893523156358987173076235637270512976410092604024024236313941119547473307156073782372787584652322169254432784820620735923047411954877866223017914555716792723878080844021199902236542149359702469481181615890609483908679435336999057843286487170211271991866500626870732505093267427400044943303263436253011163251388110762909401471862116724623416796366259464019696207741805688084099250449423142604559697630853419790169925510036303104634002414129791880628188441074578569394552954345967192210012379373091131043419884661652752511124020804764710564517292413131726713637646257358020340052608712517327405140195634612808788226452826146194747916450467141058107547028514872695228803955978547531783694443451335418821640775191984354974248902552106253631219581380144074682054588767974969994756414768079380129031334829198811095962889280959746890383519186684035540998118097135858976922042218908057210123314426624718993560826524256427930160428507014011407249633182559667068326547887497220503198961044557675514602335185629307471610560336513610269080086902757851155439725741093969764752063437631217772990028791906873684794763427694235717877459916015561563573293427195308247614975414732331915370888374721263388132119966398479846947971833233594736056484122838147769381441895384050365898710378318060902702447402971963078810180535077080047965745290358395901021093424247442175921067359463368943782744265972215565816651909649309548260558569671578457006611892111052240798349888764540961630775603506909520441769358740659702610531980364667863828802776070123897480290357718823312732335612567203383050546845331418953585520410410684632821121264545928195747388704835175894315083034004396099973314920048854834632163621819671339543893090825077165364816379816717625203817906359099478357581240168471793678195751508617857231542100852923292502364394895225848226264941873883847094590132226175686503328219706098459784565405179392304024480043802899183152989552836116447955772885745845349828585951178736637169396582768966497048364340261866018415246245623650628056094602522122141868011958592062127800463748691249213233870937650135354624220283447201591339956594602060993788675250698043279496092559516281909269689188160115554458654651952806574229804757276241603729452930275074333845689958308715253624105068912834991491723254876121428941062758057894542657748692714312138478036812443022978898014793684640540340153057269678201452796148225921911257813341491028583555844885195524714346673541779719610176505139152152667334181299172357317717600196642158694799599888155343979539725935124782337745461754669555543038225361920211425900954496892844708349662327888344405258012256858319298781647891636838412270259834770293994979765300398407391734363685603026560309488883942887260099729307798195720121175329136088826662201022455698354293948020424761094718119033935824821702918965599847174101917554129942922992492323057756278175546959273471298781649338374630920427278238776438747898805011659894293393713095287439346940612326299180678082299919561819354947034141547618392080384528329256884144979760267091952398881536172594948512942496948985969996284863219891019475766867789491035683964886251436917280568424219989147570615308979034121903101162448890765902196006128056543498911577045018461833629834451122355632535346948226457773828689443836429997534914118450870723194782951636412145749726518652157740167523460479690007181068938785297841278875211942619477541066535888773690703602440784760051377739760955135211099372747530000325836843143295598276557185649940129678982811186183678815466372435314009300430569922974768704353001181741521031999537781086787675649533647273307400678829868616005616084336931505853749577041343650418325005202647294121895490616244465706790966426759628799814062192244487602284428849691952634216360795965576678023747091975157985297750791151891290048033198932836743680123531580279386516511057436707852481098833493590154706735113614787483657088374845564082787107995298409180226185880766880143880581996009602518908890901318913843467535618413190691320410139677561635076271200719867594641837014624071473357155112013227599534397383680385238125725025043114886814080089349252008892264859192582229660944801746745182179128656860631627787817052364597039965304434719350895336934733186647642354688346721228682907418542274246495695769210155658039632259727361290218462989324847031659931222143144109465037839424445408195205703056189993382591678715211223933639872312036628143780201862023223098103430731389769465716645697954605257504267529275044009238749334724610495267204039372538317701845579456643262683339249813933974676413883965716848802475270613279900695113226169775315364337473827674881895316198505204871969396990033664624659107073508076079155816437490724334645973288471041680732414319157167358349175880949761593704320832203774156846365249452217151004981284271903326748127214393654623897675882603062340606265406886740484354861999058998863958437547442192196969962165164280541759092660717105674270136406852875541019337846149148767766359137021535350770237491639143836866562711958748415634351209108083234180635466875642231381896260103397174963451641770792710288226651778745704469660674317887945791939386073454864093768273933464882484584429568281777696682398191461852380928012686259229957981711611708762897288900545948745239810431733812036822791569354398265444259337497012845243060693178592479726242648487551014252727497578585587377598561152941927441572921331257711607822782256595259220473109875590739338612753266392886286483179728404414036830507323350937593046334697823721990627006032853527114764743891394848091625037916177619591537448722159223750570212054251011824952923423504882750844525482380647191193829602467715991231627089410417720568075601137644092917133918488454555000706983760289125755415681297859488199004590477327555561376481229774915720678373838437474165954346953514077941034045038046578516475833888053223501785000460219835088717960139956493489506958518714290706615493047490321971814913159380576005446964265267311655836534293917553429105003954556455735614336625787880159021099500618431719856071793461269336805487335454140231005734431499038401783469396004884602599306443559520334709283836039830934564989553535833972768740000802174613609131240166216896308565141919942445858184296068479559454190240899966784169728039742168055326736021547541402440489326857666848045038678092233328155046898982088559179765918314442511441619919215365149073667742826172041781019365186190724864001243159369117827733005571419734470341450968414748336774087427947442053677376266159027435719482308050389600982268140599183043947247040886133109487721379035411117995656335802222245785282886383973786884887765573945109412064577099226329398268461170754943264042837638970080390606375148012934845335150723813821793925160725013157642642917807234477101614725337049373624699993083907696252627395952988659743656023937513176005446164553278653128403437167450692939247190846800281213188110878212993491088240919210347711227197897615165791276938094020210517713432799802813171551729125166781755688387351395760996033764738463672819897751067333052689946711184085697730804706849346342182510477615832047424978753871800735597423568446169075871215791521157817327859384378715770127032510036566791344791913074277347612117163460394247263400514631782578697894584256947851375384461362555042709128844378640685555630771041852683830691907974295799535332366237427634338021748476176972477123329998459397776806370902327991482663429863573319263119577197140501670348452694036553897158819680671544985773057877450490338523499238826257837991421408946642327441764901444651159984891733260187044818167616049999731534272030939762894219859094536838749754776670533479835269527853594599410436217847809144873794934598653086354987820514924416436516199243845679488630262597442123258202450024506344344723701746068839885840856778361694889191000840834281594860951686610344950127753896115793329384855643396559333541236052574967831331891167064037076407817454644520864455765714635845309632132416139849051782172343342912460443377500109269460927234460601538383390204003391630248313573775251930386674716993145908756922972000335929824966470070133767076473835213112153997681897006987680873854400735312153805752058053972700051306439347410043152193135713919304112062730027546955568180910418965115002419914428363901384480654234946879822630443816362091534512926357301014654087319039899847900083535963996003901352566501437186757453684620904913818156326725891688435491061315242044574796861950757749925092365338462742481037888556655944427902759869336984608060160283207810815440321827134879046750268704967062477889209111815096647745531893596772189579234037701209934990341593466657314485314634541791191224349312979580432901007320416084672793199161493613106452858051176233989725613565802434708742328212958681472896371343883380289508520364572025317970281623967363395059827825528955985633680898362326946114507313504646762062381056498934991849011078072454578737316196092200483187938882002271970091809877112949276980696660536872378321140025535050421474424377295963563298888283632407388298203891714202948101176416228196932945226549191486849814407865484944055166795768630416263255122277380193207144827105538461200096891972051979826010281990056892713544232967518102573185501626867518249571380460641275369169488693824624907371597636079971501416518564613766482124748701038210172056622022444925346103738631650147026366423483821616594185486278644709784215741620878931350560982979402374337489523353489823300463529394835727231450601248689005489944478190978011856048310659391095979222661262268845365693426959235683747099785709140976504635428355657812477526794183985444927096828194165644123046671608954473627959032902892488784780245288508765160938247982456885238023252038806886556923686777939277337497839249445268088742008542273259386774255960468956608178641318440964549813148883299865290224305492559502380494302169249183063940753976492290065081349621615549599230382803656282214275118749960097425297967672108766806474613386967091063508682811783146915678795942236544515758571977846069661791202263524515437512973873809391750951018491641363918693543639416346028179984405816612100387881598719769985705879569218963168889927212436677199676946318198185396474833458437167888383575037657292425966834241667289129292862777973751511106594042719753086554177122710931324153813574512947117490014193030090147656097826175334790299263667930641489365112607996604185960800960941941882932093408641807027240252789678043171353858883521373253435380218422055341341960429565215642010879011240867097125378091460930616012780238555232151177405055153479953759735237743982079754363388969899126588869633379933908263256121484672060543657782861584400757850570475745057113754504403321677635116770304684827571583122621517296485611816524198331985465222109432686165884629082470733250126129937491753831571481122528945042055217928987291800814444448924369597438359394266709297903779134853200586202553389459520973611084612094213102390534858538025892792497195851277333603119168472539553164128864973304235305559115628740104566875557166404357930334983208302071900922222268510546829975876427981779938775871357535750008661505753816687350161021800043087898019365814915768968925688947186812148238450779919445128437410034038861238176705242294198080085714938066968107002817977584171322921862519116849760127917783708357847324573222366399884824459988763659208157965516344853593255790043546203322002686199990894117419162079242762366292891653315082971619442097464491761917955097562727547124418341337850755167488381833496822238554940629305168190626473649373113665669854376038171047297770724881595847022262618304162018520554550797709689097193715989910683589508769292547043410152936769303439859774817987002289699045468187289664835215292854288767961436008384014203190831063263691925404141217548363336943146072636361910166100740643325626289131983331108115805124239168568200883065869984188301857110177140526145823509601108960146137765365289427029900622902335439880859879264490761881822556455765755954934011826849043068972552892709144083978003625338015710248052871625937846471295584911376141072865433216841358705249041808603691448261605465742248988137908810266825012846532726301222217264486927161861822022338314679943867889144769254431340830445504958621121526489484201208719491875165940183818199320342346962136230838241670331502260676528404473242741629957019680261569022916537298361848261328821612398481200159834632136066705064636089199048012930566179287489150988759396700392818161214292822403870367519108140725884757819614226861094284933253755914839978429553632487444086283581320037788884686309845967289640813833940819748952506443213807291797803416738817185729776031832015216048185746536902185499182829037879638345623916146704353889192297028489610055342653012584027315200662685941531415877231813724064843527528619445969282982202889124810607125432290206486321229132802518493953382980008634419593390964097754681510416334031196429835167102198757236554419608023283792201053943798264403320437879475433578544027916586160034329475747905724910939642938004484661151050691339185178162294086573681671141687611720874066939655342480796774186313478997927277921935292222841085809244152415360235054922748469387844928231904593450707727370731106441658405378874601580943459669708513723787262633768821097284152606259747671220671141411496647811696138320552170290634792185057760260784685867037556171407330406308879652941560868363422686358742423997657910050631820029928799534641965656778569257122863394107971878179688099654015070579661431794502700201930526804640428156427533974750911978709851875213449724278009571662748658985135956955143596111811523650169035080424840792654303170290110357434776527919956097033393963039304394947869402845046382697667779376881603260071591968057959715897315958698331738181989630070057480152590040317138967755490627087979960034740120400048833072032459882974201925216639378373808044031943468313779786747492033713984510121478813474713326644849844949125786261095761787318434216997919110382668304444217317409151909972914027093420403057540753569814383318435557397541697723808150160627488191203830314019730659461306770495869786252442355019496848980032891235812519489586827722506924158241276138735409929362189599977109632965048354239877960428645446315126084009864137615099500959762870847693752344482766687938015481520000564750787940424126535336996510732940546329686509413103422685180045246550403961555030243286959871101516908653745198157567473127439365601037434569303782114509244857120891805051134170420527054676279321203447737994999875196572717894755973472579831345739163946656972117261302638205143229816458954709172932099512084095992626381054772977777312666579763440751160165088798679488555256817735243810991227907354452647665804996077083963070227526469325912769892672243541702127125465908015893772342943434129123801131630569049613609524417390827023357731701232486617151597607976834578607019169913589173741836283756834040499036219603527981327141819965259106721455582661493231449371990443506785944732889556947735824555925831920931012266489967332868536736479607305569089913949738427328610851578731385210965636894641095027683433442728761200380503968339266455197966870292535329210043883023050268741526553165716695217537310478971047143952430803719304524263240499476607277857385720610618912338461139089703434427312766813182702898269656145332595583500516374060969132753090513180945443301624764447868678024956731153110673022864393687591686150872461563440144262478967292097517224345268416258633111044398056328634222977088822764828800644964188611869506500150014125825720650362137832701841324041676341187866300771761856423941372916540505637455556420428218037518869933860045274322823256663773536060364751790182620141682010936364973306729066252358277189882225678154522342663230456774463266841258570745698310711705400833230982228518699438118804300526882662026465056569975953878911126787678298565853339181402769726002258003963068725764336616756725670874465408061450110048841325380290589554426738169120743194548395610510349445071341887100342736540072484130929763135708117357450048722622101316657252729759165103622787775369317521961687089548539801088257764343006536018643910100168677655197507029245323266645240915521878031735973110558701946603609047349119382689878838090595272090559234421048477697331995065290172130684078415933487692375166011107537425279912586369953467519994329993923875150251569111045201831727409793429913306327995055135493060702131061880581158026137420159200534296781903825689308784891758140878294219911218287551133676853041237269097953474705326095519843220003950571387575887095279933746156044865087639777027675448548796769166553979682788666156946927730559023203591572840568618152914578189268430585624373213624588901344881571143549539379810758077467241896375380606307284109802585136933366394961338730409417794931683033751454803166033109569964949700802172895833897391074057330538569667941708107072295811691202671549071181988935986096102255278216188491656591369918368761318812093547966808881301442149594562734983575797696903236129501396533285273527875944123256562530212215324381569220973686796056453864856476765181613337544336059756661988014574920184959504352359738197529910690811214735058597586361465611402886186974842213253318725296559214070467522956950823690758784899388473579859521800714611637687944113241770697948118915025009360618301185467651402129235649773319327574227465215024538549785819062530371879236638654512640644987093032623046074752732921088813190595338005328717480412099109745785257630512643005626880502451560315735237896614502558690856567703506339932517070634267508503474983629318975356494380145339724349596172595689670393922651891648156399649950155351906960991767034728052211654115615967354947944306087822314792464089022883108887916806802381101865576416459190752470319791730065302566309707400581339891219912583866480171957613691263583725637407633429441937192982235578725772301489992590484603001684365584622400061865401146686457471839407998591414557560518666738670828606305326753771010869086483088473449519986561063809625432328879077719796009328282763357127848100328409732993138432224117036452152328535529116637363124606816244419582139645805861917737306509370589373038827171488998738429676174136534417097644034873192436163599492675548004228489303920170223883016419400738777765768586183222420657646221914717267281513212399462674446804715770382154310408834644867802230753936028054193755415489127643966365594090064763150437664420834375952826915850820025683482991775699046977817603897340744886701839522909826885164322449864269200192324226872484924666622333200331538088078580304579167074352699617300074444215956900940423093906557518790138460546851616244649906835057981474712400573086984995073391076474829964196740891101329431552958638069126594101806803174929273778680692233016912313181076937286806266199814358033204015841128279920683592920390316933784893383514265036517449658321959675527164084365807248675924847302288223890654624973003352037358946201293624463386129225729801423188079827958278864381352091852713176211466592198247651920322682831353723301010514067116608063725337347175282270322635929884108203036358973705183746550418627794624106916636355054737661634362987791145736434132326518728346615473337220525679347796594856959037452540782771532132940735110190692046743972113165946348515950996237914309591177959556395384116496404094648832854079357949966250563583172957926812288440981668408162031272759596628757012943552902366631217129481319394177501701202013264323029914807842855737283574904031817247197290531983764842416923042462242499702123178313724729466916489273288341611588035059087551618932490620425819997073491794597733225758627977795469402789792145271309146235080460815334519344540677358186821061427263247396985533512980389643140747151147758675069893423447702045447358127447223715345956996250275161629168136729949720535606484643131020776778312087862852788828008590900292682693103405653204436191855258192665623740697669308780859497610816651451975766033343544422156599026136090296677867235280963572012865526718897562769286277467499647988772851591283101463301354588417723943854710001394339258540293831744658874225024497539057217399442169117275633081773542810963309106901641291828202077548372340115547532479692946066813989284351972371356252637325462880897855737376871653020143187991054630741499487517427949483863400741237334848641568820298619020910648532990589144827546300150565535799692078680457581905072594266410181195117562699349159889108589480349726086969128516801621308358873989714470160600425139787769821588157196511838331514484669247486804392201459018720161019723019939976950653588444355985834307820937344839291007558973331638475485217531579959225492842154592414339631579090058231501664268674540930458867099766760707032052343782902271193494004284280162103710189378011268047673999975550591357337926478728688548042359659082871507932690075056807426312608021403297309133950578423437573470900248386122661256709659213017392535868632142096864606396195254393210251818140224181986610527944808312742275167312800589452228974081928470928880988319737832574993208134047449130756889628922077200779799164284905614916901428201517232528878076519136086107643990901524335148569168697897565682496240418735967992844931182869371607600044904759702590650861625460380211362880197022678412906771972803692480292527638283411687653882052859959455163567558554776264721241940498439682847808398776363096783140708456121061603059604730494906956752997722506245841641209737003547952986747535785190645774505126213817018401516570985634206455221056183647649485123538885055196846365171647831101378128850382467801377868942882510380957775751145532873128135131466327532305178831041658996957216127812506603464125421199583262755564358193902848800558122078417045263931307300659707431428851902743420275059283841828413294972383579655793745186493416242559056378731535719737717551875091016152694919917391638465529288133376269018651152568740294797029492596458703485427199963369583247900222982324319383873303788251946023914541649969837760527550671987701968855180428000652615367931682693855379495764033776758848798532327103987527760600355424078714645763247317729301094959350298736940908666854572186369659804482690914234159875661496152702366388548358939841547966733315671421509309680407814518163161823672099325838992879083749313063109425184583746653591731430075678069113480454741459303226171543084714514466898215964202272299208371442219904147364888227479509820086897970122348974198685035799532319840267738073438547358492687319755151156787836953077106269562443816145185939802714942819933637238780599304739982211569674750162119521937295545755311118187060813396017119591584842472991851199570767744682714971572386441684962711769835021014085152277563864397994166606526962878098186170126345057112034416637396939935844664266861266935426236407711536835579520692576541233583362620159703558746940378306656839870128638146530326382473642781772133929837627743280610741034858077884900986495989536827945896058569058467203737514429373251663327750657816172462097269852412703664440347308167503740024120334930948761535437640747516688630314499501350319782120353314868390202926750275949943825218795860676919228615277861423828280895288119797520740843890685414712675630620824715115336950771636692839046703682674159029059266946183104183895981283318333754746231383096471233798411852719843544272439335525281638310061250635115533671122332211184791958534286600136826195275239065931983269142960830572895929065769482548825519150060082252820809188292900296741678065763231766140823402322685388024869643555419111308743198758655054491036281820170337400749893602597326566034708893527934828730647351151381788058641441213048295411965904432523816635221769141222396353684973756704928489678551796833401960616378588491636278161998134140398975277520428366830426838744212436468691991663451057799303803406524587190499340887597392193583270809079499367764352925632414674465586371186625195059243869811710514046976461910514869248914468880011601858673352560562976544759090675879823110564538887827188066670255495864060561579376949246857312682629994837907903495534449959491570742563487336517672909938258200116300404174786124452489997024382875049051175518077461154603117564785971690176425458101502133853651715798969573345719113138870448887290880972642965694161018173935323287303468124048903104651497952979833963754132323062698545924981216272345463945471374949683921851648618835651854979742686755918743256975147892127335615276104972796976381352749164797553052061231094883867007038402053750675365487249243303595941921779058969434378860791250558395761218399280782420979826748483536478145712905299731333854309908442644442131910660775028842913042160787514236283482229076262928445118656034377564421530609688960638720924490182972926879563283523889113222449473040874386865163902774073523136874159897291758352551513251171493938935012545382481917842346117557802123927085032605461207275255329316990210279266362326865415401613141131004844183064181921814764901832837950311203024866326222444807506081023778640667578611554434839805682707354634997731308521828265149098275112624947731353433160134423110001761549598502714089178144507215957252919112814002078218529962796316163871456683909937068433776439124580243845210465279412903399496656366309199211127026599312472113711050198717591511860688442849960085419472654285365744875672812271297854396388247342488735880969396256111508045912872429537164994999098815419583252358127722160449204284867187221620911112170639597338074616407164176109453075126242453516760872569750422934158745146669638017373168828614132741687786830147724898694021078221881749121052106736062065294859004716281799598470080801080099812817141291855789664837864895494398572038334877889268897406212470786331430584216428077795398633669511135636484889343954378183123630550203698402224873717748251723236949531304065337169112908743579406570206774404359799900926031232779336274613042921606917000796243329714332700518029485797316144110450137381715697154823975735338020344569830497412555460695918119610289047092829707705775130144767559993058904483084735877643545320929093105745773026143220678918280340551923436981196307828068641182507420745098182787589362860917793326237715062323090323012256711359986997660258331627421321963351933686440785210936475636683487675431366729757267761842744756627728786329346574054570519804881827161400472796799711567644623721478348305012587877685142432821158106765832890881788083613036181410164026500832753675349910841326159834357366236536850421076268349386349096440877214254759729634372022379437054116409863036677506964972321214059584831785516167406737965147868211681977302962315702462838311913833783334354104386289809171656485263889274094589535710555246806724508059016728633545366289004245998032586230797075570854213170045989382432941824928475032986909132105829746896250140126257463143582097433135539123774387157958891748693414309916601118048607444956496710559474510546596650044651759255403901248731688299576166134258398911987685855849616342477874101227663664043918223141976138699315377566400898790234877474726532895257018825438252256934558737786870650089200107780204594931993791162357354482636175786219804302280598375850528260624152652219268558732534729457145761423272172905454091221683453992552457699321307641118755611574358880325936907517105426175363612222793465126766126122483196568624096762678570158674235817855959121896433187030345526337448448158128311239144523094357858080166670110535641725623962536455370423453692856005735023262975002292387025500015123052189356763900232887389922104838111815423450948157742818180745079925227945663500783944607604336421569576310803134570047120573858772691924942829540528053337954629418431831836889073064158068679423518119481276900577766839032034649411054692586399979550971814863242262048344861732601623846700458879580308053144442071076717639865000532641958881226381429500031387119591438130768874677104339034065699567221878770855694566158519727070643673405517622889653456955504227088554296301277833939891256330054874762008478624707910206941786710981904422046976608292505409168822535950627035665821779228228105811912622768033654572330062468727857330639059235385917915231749062163307152955138583761013534826043831877348131383750350186293992136982307523495766130947168315618877513948938311718484826006513149845218664866877438621153648526810067420953571265770864394061116918957301372573104121621656740393381072368025776975689235909793688253099568858951796518876534604547121241272456483179348092419175563218444938633000113320333151745121000487973001888320483424384903803525583431700570667392636826104846003167508952780716181259563619538891235893666776753093126530379925550293403655379001497105477590614571374283493818938774757613988282441947542505071841008925072345564287003927214227931525015385487218338201165210255143087089522205781208865861563106772782007361656088526536403567251413809794199851468226323105650053671680939799351092312564254336640551408261594487143438354510820995802791898237089180541664567040526800583984206348680527748307277493200588540379942516914577953805115087129884785932522898128480118527530410083357940497806026340498464301984848860746824160036598749298793646938333300382992286188233702568670855270256504806064208559457407891046372334819334079073223588284270842084799082581294274485724136675064363913254348098945947552268918453207005640956606818220575823819072771705560546375726974986892509833395883470451486500284030770515406349707917495237505282036322181430725489147972835049160131736193673280306732461111029264504637177001960097415491154034061439943068726549794756703890073237725940420797014345364401998840177312967674156597737757812570215877880265384398407284530401604839044732480422591399060219298539420875491948433425129633424293926792309699929933595170399824498423524913131785406067375427099800895985697089642072898709070805312347355464199045017811309119234266629447174538023075651527798264990415252269972986501967324881894967864718155413009153726640099187674068188343480408661271222859379273777732533423650778359451947612244796004319397407696133605018912623822293277760759931358187906130165559143587186936855766203045199261638784867982996457483212364658767654682174409360794695814849326878037651162588536813968444101652734279125539934721001084989991651763256901294769249100463176108745402691974677382028691831839723616785422040419758379771027428183654475725285903906748257506097928096082887916263844915025110352397285016651547057608899372695513725699176088728787708672550698918469695206221590220400672130138092588245711096356973874141222395081458857399903913989822765248517746286120302215300924493124062100293365521115690659643726739058552714695994158445438456144775201665849978206421770218076591157090056437454732557927406233605862870612332339404324424995043453260700020163047401692032765752743316015471672479672917772301337874244479849472790026782326115648564220058434781008479619128757997197892349035420200699054631134238069284180579510397258483968597255271458024817380139464702079351852120849200767599393001257187668183080634275046964305735588528688419290714800174799467700281488166050253236977908762808631650386338299989151159913279881124630594026410811487977658022117657261122961469593131490290997088787727051385684029019656086361387988926673708664805018950949310080042312721577105619881632843720607097683999687850535489325653730332269039050513686437718250696891922112199222873614185724718984608352555358950079717110513455311215588519152658600682101216202489212923042944660308277430306081731111138674362466619534217255127377394554069367847460045179769795058251729824002056102218253411026399836256962269533686113394149228044406401367965063647516933338294362905852889603328502326936737814013809099636500242243039364064450917397932521497892312391710207523882202903385046302892143719105243048202620629189214713372036395477423731308186028294523816727206220835775556770950588089410063256212072210565410875731081032701352059055356626137141222497841419491889250555957876317594521441775289966476805102451364695586229615925997099263507853539621890257131454994746425005376785773539552417657781030841566977513624670896569063148927096398712171307055919137552388325443805894982681075583184053036584909726326094337978928437079869874976032504217322840383525781128980239591872862291434306951456841067641483619372518136833186516141588164633108389268049924053910099273318049004616821110544441003058177304126235426326849314638521990098519082448691057688769136587987317504208932828576398880952423355565426789085563240852101749230252532834251701866773578390667699774868145194450837181276440403252084216838529043423204457319218567508409542937779530986420612302912527174619446823510588355963607176906059945559090741119375515819622542413641365429710653377587675294159271144978051418137162156377251606315425626467637178462161060223105976206792823711015174788583125267029288610576029185487688034091809519391738545570444156320027898788694494883355291959985528960420291739577765093096034340332872774398579048512131273874579217274102267553196032831039527562189690382327398561858028701365896264716158062498583384470174890102550283812683769718719013323269415928828627272465153429289420397826860283936337815678006681843118408728867797638654720216704296100523912441010240469166678074303199621614820061124348255921794569364403510844259734556235569193687286689239550423082058772852440319515244436940826472134839582119034247889109994033317163343414793522825438603254644509222441941295722452281125708878337871059517121729799452314001535762568772792340474375315746359213449325701352965886807225064602684336951416284951882140559383450478856477717143349757357915282101093892408354691240126235578142301551943358869798191030072880288846288111797222345400186086072529202703032038737254703037686346888297976172621065969788538651584470027011978135337168130188344475527406208278896137718527903631356036916090274708733232491452575284837015715629992363107311325314631454364687150110759201425429472294902894795655704363270305895619566159868189290832496929388780014013160898632860468904490865286348598074086844927640908374527238494383385310447107800795542572398465701987597611031414002692656577760609882602047545167439387572862985816827214575551430575431232844774543769281304709938728144284657968314488083630260214406255082364331932305544466014754526797704919629421003789766547611668000747678525046126020484082648720549707119367329433445504374043633559082293325209001673072984142253144285729165330951428444308811682725172365788812340893558397238315414702640857642165485874805667011834999272266116464060615997276270958758525595897037446706789333225674180107360631409311112568768313915628764899671299673687649011350705214233708427978414618111249388661183828070465012227846039632747051437925507786875392365908676610401328136562779819301237340178820464404015649876734596115462896640914117134720381327515940826142616357814930936907653533419693371715140180791793391029747193017006227745876863921324778859822612338538618019086835159539392263224852632160072687171223187247111468883451376103476572906257735485712098578439851757580663865895387351239215456886231551537912485935484316038546665204764996970538833027440011141103421155776810057874848073755523913774614984747392915908509976655605924296342664143198203884531512112660911557535101612467436012972086490835604375161126469871212542607708279111751560857485507160978716842620491613393676899519547692626366975631302281098012176969064940295172018388385396145626481207136794803198231734564863294726991043406707867784373837978981915055169211256862650201421776146608763692975190581954173363792231656084393306928688563509398987117077829715771729356531469184007478198558394429462577902063027935914135427785557722244806522122031317963166531095266553599749478871903809729958965805808488836684878919383728278853764257937074269666170099629794047287551353822330407260022183753686785851019356847174703229204139051383361517035223841608757342208351315840172626871204036866486138758737892668632922674920417041264651146693193050296018357484077710394128870331645065546994616740146862549866620183187104472623496519726870880564489317234059709160698121838740714137462198875814580379316465232642399844150438097661402777711619835121202320395305609050457963899522213348233691129628743622293587778981725357339015938639159971630647726303103269539882266306836102195626692233005550643005299333083347687415579537800738764748749872101969689249024376332524398104968077419269744244227757256797459600157306958680673349705112402490523557244368254688083119077113535084982342718411607021934246717220705020473922696695592231392615315991131218412845317647074486241147732831942368714475703370680153916506559761533874219531025267862992204432095545458255495220403947321936680892053289490446687648013560379572251788954595398192494825183740512853584363337973057231264626945493842614067381796741192328554620862380116470684313400495909229283876916627755543362546106583247253196653388814399093873332413716889011239118010053702046119760438120977700668756120975524259140163101235190883635846931966225855237223885042158830180200193020116817697108943071384201921657314376576388750805211398042156243423287860732036253564759378050558133415474788187105869469552690977338886373858803712868996174334475550161418487525758484608210221751233514225183499185729889713636807058815956952095213817759215909295289301060538145593381011286427710789747225930275486007604325803026953255920333057219809033481170561707985120586780655366462731687704776202125920612513433918813193829753447439921448661972713261978946845965821458945654896849244667414490703801505097879249692242328794319362615017819191270218255386407378611164248442140864505899007345599541876310723532171770869122635671428434007335775368685025661245543167304675911193884441909687130558068929876299016173263154316002311801465407786937763191328575883215387116425036453875526432287907323285873541193011123597771172630421477117895921738869959498209072751779627695103004177635303039728697477533420290359722724694086857615972206318106880990263035464985524281264253097235194404489078982080171618472334581669953179313597100033642624190641307439245905495561023422422168808416915301027350309433637396681315498575347747907221468458901123443770791046624504013268267342407673981699342901623071834004421463669113627323565909718554380425825312340524074086500995978970989105005001222759368283762923079085792994592697250744277104813801772935312381770400018378544629493533531417363028018170479224963909526919911169385531288647498041306679911939772824146701670938584527415619172375565461950696692504961504434930084824726335384109217384791724566054609890732997801853116375081844292658401674231542697150229499947203579640109336418841054042089187278622749460073427402971450377798643799486230149431343089224516994807859626912452673508483629642150542171016960844287786744694587234356525279459447301449432562106918073938644625109040705905447512042218693421750694858043227968627846777507937430728045281780690806795976603172824597965873712769614020814001633917739850061657459950462589669266429151233254697219990222728486385949656259305581486043428140956692048627983593471126091118132743693878158047154114007520695592346362228740622723894903527053427334135094072916236816112817967002392219164869335634322013982497346750165661678951073868863617484568622834472710365171993727018020369460496258779555154333101183105314483499307590194350608549117007078375961339366309948820984143235999630260298310782354788669605914139162445748505149642732481654660663230316236303827416451270422047845489034910008028576293402117147846781209264276498814698735794850619446145883025482805593143130309442781211682477092757336052842742833253995603944493910591461604631796573350305482977400278138724383783249264940277916540980576896454541176651517634323259334792870830603503903484752546701987715385441271613600867353057758776643907069079930389050903615878277855516782924010231093203521988824617580603195953432855375588064545104807992885920218411223998111619054511346190526337397201996994211397010027085710911603026763656480889472784283865609329213576063298385832764794854381912453409916100209805074933860862818181816233993549886967347950546802686237723652714524450597219125966589018395600733481528429909171583206949220839936299636755401042271049732976424694475404191809485585503150048061537873122687196336040396974915290118282226282754674433991790891564942561847335261443789365716195943673053500732886665872733027881978356541502472511113200287997067325924277530841462494756582422187716836460283963286165313681774575857866731075775448201097189729028146994943846157315033416874183747846536154955845930352433080558851600611359078555207920799947979001378843197461589971793197667816574464353954415295308770412920503443503658677054472041593958182500375534818917110558805732619657480952043173170806269125557459845752826038119600977739582628418945858981612840082486148118153551269298100626895519744664018356875161397591438082716462648167799616656726091097543309719974465125332872849037873739433424061998417221271244535399061971451162720869431765577664406861901420675367207346191486173634990407497412382884524055371169520631606339861792490901344279963021735209896334267198840289261756202932061697421184788818275683733600676463206225482565609872731387294968303136371398732129102390570369235711294107518064139259547697166897170419741949908652819714838266687440494947240182030837438957699488163041319124197902644357368148858134746059485260775011059060758840082818345549601166307591246992885653452822058755218224490797750234947172517346666949206919982100225199179688718961576582938180302316970719719867943648037411971380454227150671391129413646803964790583743163446064188512232159037251699834378307201529072751017600805193855059388773549255712367151671938309110126539470464843980585747290923875970487094251434167879445128045900550781125434022567170275311910007963491108470354567027638482790080965975336103608631872306535928374937051930625114089057184942113470521141151647779168218546741403749694343064672646886541722037181542425552875732591962229904851319210283563193239545044353644570372984254783295644793863942246681269184867187583492146130447777344083490829655603790071908773509000341624483907305663804955395895118330435617791314325727740016991863186328692638822477377722689752952708837284333103580737055616974791757541542958930183842611915063485341217007791693859942016543078300438326955836328360503596175384919464062528439990306900877373917545749057953194482145349082901966823108265659159764702241981858976004190027382506885682468647890743992784744363969236802440970192694056382678844881681516754255524780129073155008046565771393142236542555585734345251497155654616749640783235310094403909828521918747493085194969356204001201112033937861064788252190569453848418468495950696406927140430837436578257386828154402732950472407227224216249771476734786392045290583700463137233993323847992630436483969475500559474243917590326141294597838688027327653162818381023659295258747029452999873395722150386922471703315347181637953830543661105264465775631739468799182594949712853564793516854601335398561031665681667384854789706233642780781569144749608879365570520863269604706983759184497490871609444020140296471292038220069499814540275460181228257994428237733235653006955415416191474682893114272153059551167084249032351367698967118451741081108396429318615839952044534349395809564034557332949327032214261259429171034454071012548185610309731490963942554825269746493520176872334369915328842084703456681831205738510381287173085423358149410455205848826275389818134788953820617062862476140398794243526899849711642134789884232587572172841952907012744032122330068929942709104286874820895544725672799919552301050382235827405459834792546436666457576413339213339419010479102163111199599934977090216911049629149986741291344543264244588824241377381456981092405164761610005632612558786881001909137208193465642797578943312579062265702506461639290749067344886330084609151069881924878616615569607101473934131558875464322774999762234887446610660329767769797697214967837400823089981341520619653882129196656495907681995948606231004760433616219528265140200712061264231473200564169922877387348752156638671085395982666296773456309650366216643718261194801020476923888847880596530265414110024273617429630233296144307128346032752579030624078038532187399238523799757536391152610882904045313711921718450363746516582114426522562738797647214057910419064180706933595595497684552459498164657319875625145325634951394437090327066437311355299655709455354196639919656862891232371606047316567649347164595155106012575247941121643263823388703115275680529075781738193116478283952912466681821894266612983823151126940229036606635635484582915316252673713708214252434813043041982585212590648014124068866678296319700961301457234137260475163295557519367067607242487933857643068658796751883297926059073446130906807694743095952980322395566103807413454975339765363059748103273513919888747553781517839201705552635029830088592458508071450381957515895266146776165131613636149862842110887898983563725841252933780019253354589841203954952073656266643046298582747862232259122913664600754973954702943810148761538278635000058549680785243002893498360113492303425082548371859879804603646444417306104580485073874777327628894574410680506432679485648433338532199348526478293507126590094066297312870719494393733203998351487849937976880935768978578578626705192591888135079994891372804538288672199361321727634021581634272984360448381254974572337042704274230680969079047979152396444964938119540820242233661053699432690299336061754821879171829454000352603959084586236912642126583522478344266399122805355014651318571237750906002306632818272053585699722779877275294909075440520209168780025059438014984727469837453053000633866492920874200562389787389089264337587713090536706502330196409178860862191140649597159176864033574342454429262909723235676041996045169699075162306877891329573297627084608282624133061486218294481798410238998665767730691838359832104655321566101766575885019034532317801895366859144513875930066097954698497743336862827016723756053101155756096396252830803321482676626115512368616244887111997103525140336058016926305729218852821676469145414999536436089624747308675018451132029457862098078711815910990432228432075658002293978499833352891870766883448302766284417225486565802969966397680332467429870949151396064211566643115848013906608397354292063590082707322600631050582890637537834278114533731820999103962241288854997492655145103525333556623170863302926714621215915892503982500587855622821279145009722184753039906348178585597729021097213743695840801847030114549456315854057890952626928138977799538913689003711316291036119024652743004228418673633824814795120221148787766426879980702536647831816429531462506353447910001894940715140559681150282681762746856902090306710718552443827617444708061729309078643715724091069557923201743945021675164972951701742666557907433693397025331477771620610368699291136146456279499671580094617212308844380937376237304310375174230848698128145831647116019664656180052812548367421139274113634468302454912504087206727857466540676637905125432291674924933703506174483338940217602211159072370111199711358313872367624352857073989768595949266750635883677830157297569533600743406341368084446233537534105952003667690918927633317590034025463853893076248265060702418810405898910955432892622575092602933286509014140786897786792503160468123121575782636512288456613913714817846952285819225440944599993931293063542855321927615514858203157609704615001802557649550377560933793777439785596349013767513522088371944134378803730366839426313074478531082522733523429915538585474274593101407024787447429656050968453114463099849726026753981263018636571087331323781129026923734420349855445883281384577639864931407069751194514373005234363933426783868304449033681010145535954876886680140219601391460634307776484486017395568006109259438505896843682169567520255374208247323947584926681757854243404874516530016783726304251456068241479378370424992523319959712250082171102915059798819801442865921101491000845213392848674940776556500747973006771657465354976993293941679235874077348878084554614348025552015862779031070728022820573703077637549440574705926783026050954467171699688696344607261511299024031032731161828937860271916093825011107650502739508521962152308657366862491484596366324217792943954325389924370338182847186153801256694689691641432545586552050578584362646798711820181151091490693778982193832510319136595401455784826164511679650889293845866766615157929137226531761369931820553401508091844687467276924115770871523931107479792072777806492368090083308933949573829463348027286656250292801296345838483468038391071940775716426606407248920737181447375496238310146569618542172864749085117647760596917872341328365298389195383162295947424517146400621993065184177229052495753069710120469734980314119630927448473576502560032337325391912172884776704447901970383982183115106444687615368255266795622105009458742593115216798363499882712713546389958023456026667828812800746604245726147117556788756208292601982524340122910541784259945015240289788933323419296444444784501959890585787756430162578839336134807471929051578955374561600684619233556042686937523740024509703808582271702702680738801667626261034028516346922635638762733737045372711237928592145704840486861570212355511071665948780287882228363602311430385696546361277517909115712689827326648598905196038325722341912281296804383155459754120493117761497171931056852268212727419162116058052833904597505278425767868144908695237024546101896107688201255612729690729374053752172657053593931551261595239672288332685177316675333386282244036170469959471434337794124138978750639008244383854820138119503336046969446441644163014148713153233849792591423680599576397128633307165216466212680494582523508162948408787883376937109187433764592396482974063180973946542231891588750239920462111441773859304037241608907680734756437309507695569262524034804895111413609003223479642818306244754341074882475172278914725154492494788726370243488542184713485707767173486854823197357685498693542812042198204588083626779687296568857054622540459273426712730871589904125535153486347861881636882970088499902056135570429458022453713089121370763719733094496693370186701126942474030760312094112924917442540110934562898537802428007753651481814574372596452985879426625161706543785491323585142535304517963743998242611811767636392650930248019153738748195193398757721302341331286876101991091406621782154502733951080189626028842144671750482666374193515761758226937452081030390667111778109449869902872427627101181741367933231192054042544189900330931602215879676867311247844218477143178946111634183961311712051773085127780781363432802516238608210391912007874206450553070537480216559446394516557629013854891877028633345303740487010456775387571404813824717793898726071232792099743371302602902780183331151887399047590011325150150633127896832741637443277947082185485982248712206349006179240006425788468223153136933948924819119482576613029936812937741023824672683222395641997768808482146772164130524354396270827395162342542239670091179882190257201129653175840833510494768521921774108121744156404565893613263435539402593664237906442614998071684817650537946234012956934455019501965627931779460253781073407680941066789916957310905220443225751730266688488489010578830191422436127040914594550347075257260244201118227016612240556149808404466204440690869474371028866054724853120328445753711141372223778639072609230536646632906149634226066032088393250065630012474847680158149646934056875260483126946825000808483009335914540352848526565492071951922459888400088528534834053395372319067985771343305857164474080647228155097221450363116622868735592605304586793165349995085966315788386085326253450007117925894113278281497610530546679714667922228684191079166542240913236779406586051545364642728624125155294901627163183804559573120141540501131956080674925741270537640135209203794839138523737111873658578613855824297268513465027281469840680606460453530442684271488031728279831540152623379898234979667177757688169144864193043972676564437871503357948535172575325463970933390375371426031101044378018025968519451320764271676444917456033736923093874079906003808105769552266319394856746168106929421224636797633475164694754870132375035058747784481662600782843909805906675148849335690554893370852377138097675338240852297389571617198353186650225369094967631791412769696889010640745169602521145067943119756125333553460171507242777153868348288367419560007901204231690673606054805031060125552282640357771974305501922941042804774822989042885091633753329609646781200488605057421531742165700848489363837591547590330989246340018383825328227095892539397467796036451290945763041505478130424277460120426120205900406908361183610892558198265815401665199909838878243842744476199904271367293971887282344422268586229339951386972019172462111572999881916871706893678437278317567656519296247436088749729054577624130140094261797446953773993525462165983034376919340168085407848518261761208166162681375195658312497865706969977240620714895442957063941144474085277932596123225692299214615108190962846389232392420276271245850755852022450130190389651579670932970258980352485472837252550855432351572432483868726944293741205257780739642570194383801901488918483219942486961441323412047687799740631573800558602318449943860316722876066019265698590655322863877011300793318071859236996354963159941847673055001366943282343763720005493096983358432212397289458204779573614545966752800212729242616691522257618706417925824694846713503015255323730230830359818920720977628358114010606819137771486637201172189157359475437448806463658527918196705195116390420914379861411834913743025474451262003058643018750666049374451889719887417105401818606834560396062317829294114331166959025952616398098859380592695582644272448709855973346488707772331469934641843301846347272246038881429159556853457078033966062987607915775278428996016500170019203637075953449290028035131891900967115470486807763314147196300051476998044653866969360902285189788794147567201442469142565640345806959266821214383012667141993048840804288648824411863919428906987371868906378693156153373524799756800140377049189426124192971444161167260440704341663690929518617156053200754575266278147150312568902124165629956604891457940427731981163738406485372203264476643174557449716374114163452936591410095499362083224532456718987455618106462565559783848107900208161991373102690700799163210747178558061516930397321889287287879131861484291174551946681201836814159762555303733097084528265484972100464216787006924253750171144004048502604661963641624648871730047669938214332629273325427045532002040748275563321883078599861411140038845247864897161353698594399842608028517174199885007480146837493220442764462518959302953581089190747486208089401718406786534061912054683825562250627372586011445144443868844617952817732339685743304492962639377405269954607664893099647903289913817041884207530076813866205047242746780024080535196401507514510372216461012643715831306876763797060695798153146709408765843770626069684683657231437626842372140133350360591365557081684932586242762066526361109038735753417272190715421211517883142114531562250744070984302485961300030950731053755663359731792170449231064921261039406029608100357049216334235605054084441749348760315534751399450022878513641941469803581907423896087530161681886569394159187178234147565473611169637391855619642861474534679179588725094273368987650721280145819507153293601178819791203380074135068379913210420563598234350363859564268683744408626406319247683865843537595529852085654358627310183045477448440689806376745658753460095466903084891676727792918314772413527374525473181699396749909641945939980396134237780486929243445500734250051843359364965071207311456454000197472480334773787990319767149776874556130785144114388299354576558827980851895703104926867376002207918867298585545680519299280397790986656411852068399619420337781964120127035045242820214890551787731940631739505062201418525655914647459351998655459499453652744756592613884394407695313761522048910041232720170828414530551908468368385599202599976443236136466161897791952705215131782545109294690697910682793076722670464019391511332966608826020840613932976121658115578993351457223226331071095586606768918642123388536966441800028333319098347590783212907485820936026292859706836681538615686387190744403532922119248190361532996374782362630222492615994455502938084342001230849105673705174106440965329342940889531687153240484213820586440445619577499482663281418335159432865656679391476746159370886310132329205767707129759878209978302334640243695187180502629764978188629627234527376827778709231990975455478816218774195686538519110953652502739262100571553651939088762968450217319675439928072577449481311761764795992693349177714089611863693415254463025841538993888312744442659416768798933016355662483231700703290841931910417107677919406177218339123455342158877955941959087080724525939281013904559492272313254027848541591068126419590546355822743798249917886263236081312611243945825036899393959984119085021294666818861703189928362282217375863402417769316156827641150159780233657159780142112557900518530891626505559949335124755783296098767890638927475461168639974398244718580619547258738361061057359693490543270293006199544089110353951244556456239288022427816414629960298378430107990826804348887316573129495755595139497109460818447790969273269003251125029925890273869103179359895919064260007710742222396232540771745598033033351499314131568117986602098005327075622973919807587636201144441455718704475452904114673394631657481233222152950811795143195562413797926584262079019588428703075690257593739756903479265441914867140816904440826927223590924849811944260198910216707523600275711806244760198336701603700135737296920267292419268277527939174306445849974607538067517362778522777467871312015901779150450320470616682317444431656066505682097871360298459638805599228636421171996907343349633452435247085069000950280670449358265916281015373313617837096655595845665914387474936613250752374670229908894462382723983500194385830771919963956971525505356690054358274254786216986102637191388127888507360068556237445513734083829802854677915241353452910884064954451328367233151558078893470725253430567452155914600070199712020824802189405021109022887665939704784203090517502155432921331695540246965878380759692219926506397099788293328815698733064433707998657057690593065521051556412394513171301394132865700369240328017619121469173434925396781049232816922621095491024214866082406433088550706837388133326988534453036847614647495928533222378872146747369562895472208373398565579992509513336749345896848729816857984838584012982366124038804713941144540999470536150356027108302244913635083362167464244774827174028206286157349275940863982289226541707976352120692108327137254848709039022251272927390598966088889799465262230547978369286426112128525870265913680159109375050063711986942532763799891739167974092705890285153304868468338314465596993478615310847473152528082684998741653711263123734906650332435825810105922536806981735485561514179734720541181794455124543594986035553686315343677003231591598929116034686789752604862346144961739711716049007852367198549898674352113607625944160459008280535049276704710984246034923420723865451383669031337604992515731805137950360928315772040143060553455606571875321502740916647129444381156093507247927681480914023752734933374995101425723999423999591855542088269349994834767718439846916569136140151218939426720164628386063823061871516799976090640792651063696491565709469830507835245891979268048480937664478448698323565457102402354153852320383571963750839234579196365164391044485476001497047464139827040227933976545723621053078546663243923033061003365563100351989762969403014014766812045750330396625355942336906640120069964881821064634938406250490557608747782814085437085871617824217196044204200943605891581066356787269808646702337077350706118168461877823911298377252393471198075315957243251590968974735274711388296706613425548915259310050825462384634244182433548495798115162539462216327741103985666078239574121967407132579334912129997144269344065121028719477068153466251037656855420199829514433667645175568149399076703835060619872795131834507610263143836097263317848199205845345330682054284769461763040136901015977069468336379360470690000656783044674697118683770875847735207333925626598755186795303091176079466876116712486263477020513438045989309462076653409171936481180185956248560749052461610255327785301476281500298379510958776776311076104577492193634730462442093985041299575977716625639355472180202719769606533865071614834782333213794177053909816402003092484171367842602012936776175271134943414425893975850207057204331607967919730199734323046882435786381786655942147590938054415792320825965210245548189960930753130778538336939231583156084834937533973270885937327393843743404061508746049227099099910893450884221395699823257890402080058264551286018779009862238092997988272315488486018771461054759068016629159496501223333213965016984557547066438671691890797347070753657324715973746737658987685566200634765267471432051333087544999016474459851862031118566248257721607569716299789921769550827776991077051918381144645122347458554718311553652744183646875405342722817075432924440121346924790156230565311827022955807005153131461351476825184788949976396492186582918875996395113376772045763718506752806099832263367256376284177869528137958021192699328288887108329087057961945968264151211724926397264568945797601280238285494120490393911292850351054933466195283502621331682073088399533422165153158058499205182825792682394897055781545015732847970475242860104460284292884621785176966224751227853879649484490181830666078209511923737550892844026954441650147151811929135162363754174491255099797960449846724879552038115480318795995346086666939283199180560653653060848448179949138457161851530013881322625265658092997076826969887537755029441760416446778928997440106099037048769458654015057395900126333447405348856489700352588120291632779509436523768842735663127817700201677457290005327586906942088767573090249294255359065522324364384983628354028659013968750244924187924620339038742318877741597851325488765848767011421770351661818257673380391726675600038890548700814576093503737246866789763854021583244469072182686492654470543246366554822445965098624671183229584237709306353309774931010114471812780164083770822850401571578962853963793080494753463817044008002877078852727639993975630736386973800023037665328834842124914710190217646804834294749238534590530618352119504479428951017837019752734988732085905904333954465112021558086606235407661956197868616746300780238136285369983216312378640154726324586997626727444176550635193305794403503436669235727311965062689520842697276197397009487419951291948467065043641811197318147360446006946388170217899110936947116945854868794389601831824512290419142678211180774439406262918616505090859950923202405011889398108741730950873910137209263796790009696635873794694420602907153350028485765466048723052951560757606995920692688725017236783783840506552240585008953165999930500818700292973924316114529890732075200506019032564606242746290924584601633900299609228204275495213065113488108436222721416703999140688846449096421915582892077658916145207224995789945719373274065867764699233953185963626933507658884443153155135532946077128934316633928726469583410569198524803932593241413998863653098425421753157165151234102465276633737779765111683163115462528939502445934812463086103341541111235292831283583790271044673404461839653519156970094017257087766375802505251342130168249269861347471804648455222697974997505114271032668571902372362335357814991658751477617285657075308900828635674406433605861739143699603023974395324379430832590174450909584307125516822860887250672832938353152734293938604156137032819756315357405924575496065377743725028617299332971677157593577661831024925220406649644535205028566356266843292121933184283827314981783106995177999436241445699098748810236875034935800321683937507878643326483470291338962427957456974215831271869997366083645221692934631003594368651904746707776285045909836703915506162380182719145056147638040235983548434347168137075644141041803469489280619701799080322894034924308835458970811424800412847688314543401820037555966425760096118602463827513156198475287623327954160887423135184830637452981753428341319067716294232950766744228437410324513927558270327310046981991235593308168239683245829961601289110561373623310100295583302979729158148243399113300836677655775076414120938408536137253052758799965138585823194471471798381150653575502783494415706119584717147508587975020411933258148679000850511504583008584546101270232448352099151915968765789400876859599695871569750751819570205059590713814466747921874669196982137672031344590860124929485914829646293630027185104704956130337318658423861765471687057105770624864617358187648327277904782853589693678315055284524229400397891332703546771893869933241789177630736083569033214563762951991319343238337967166294428531599969382119865591316755097993136466173287252650744800124475189261249029783012310946275277063684233236825961403132246535703996256286076581141880248944115948464014095106401812860782253140546890489846316015050414747019554226133163121733432161689842630602455399010299131969599638703503783126471510712792620823466808907486808022317416785192916293111688498042811655370534537622548224934324971120128555040816322631592293919816073070369594539903725064160684708196465500391491880447488904669246176418173382273968031158287575913266890122015588523978765578558367671324497415534918073996061883377921062546199600735455157109893994643888508962000361103948043456519124059137522578220966475054269743734393712638611149383345348255414725249981223919678930400896065354708718177111993048370036735533769224128179799919043044662028581788308426108766982803275319766111253429347152822761929993106002378128629054885861341902599849326030401895251835796319982727991668735124930214936335262009019912257810373179110714102136238229158451386301389410822655011300153508657516511628180918993837538228020924431553365743031539219493993557265957309015341406234308155322936609844398860838975266663142652729364970841701929293916383137215033441046008505617111840447238123330687337208947731252182329524155376168669237334056769655695899128766264528740552911025282998702433310104798110272476443001535887040307054711197884227192909398815778313588607388228602893409453111689442264324902566186809188231933468007348934718990738728453492269431142312162296615351148908388448414300191418729231113994267447835106499707650543671931450591822140078537220381952774400375812108731196723633045575055611961360532902131198644103561118746746908760408486991756666484086205719733730858290236830677550807039684289782323683195062602980088246720704288310069636605786834376629082826462393929342596108069148448689360691700220394931423239678766611941695053696261073550213412319797276982992028354627584813226675472912670881086130027443225178264966067010833193509449265134887385933625000589934171363367319275375872405067197086251099956833547940914978335476593775760268087905050579632451539770633710759945785110263095122212336200906966381187808680009774135624669688030835910260056793131239945275800839962188462954876889313721082239107369259009361178394581495625666379087366527534578452241438586025241289431311450274891662307315828790347654713292536472203313570462190711609885898252527922999122016725894538953118448706531737232829325537994688234303217399308725313706100525951950838221765561214851867343269915778621780859991083002073171285226114167405064144983187851356783125396844937902518356564203895233306381630163304405825054095826671658055921193226450961453992548487116202417081867172991255444979538424551709899442264039044911987457320513218989376333887640053877957188369573147787599690112364430596525105588637677038989060737223215876909492231924207029016533537374299955708002405468089184502090608656070010928292474518732339695059065929070732253781407605979521263854141672707503023850157562332645510932142232778428665481460673850588961063231074075848516398834079357017477575318907152628504088498265728507066413785524047464778321023326054497520188835780742536864003651966624238608376837475305318273139739713979440310564143484141483766757928054587856105011574436486832131893118513425753691201946476854076810050865339294900136208416670764278969200452072942157661328318449692273608803866063195146747035818800043865119547939891895595672233912755690064120203548353305888103324291546642856845434789335664520496999966047109151004886230712606074058389739385887139508637942386529367443448133149690869595111997436545202839911980866601588907594588731704471333968241570999536561966557379177331937541174374429044541452095798308361126179085062743782716205954310977534737371343256912935724781997506809092536537790050099756126572940463971191298666987377841009828901969469547860139285953582982236173082607897453849372305372508681058591546484822142231458631762319215520033238350909857508998013905651436707102036004796667072867119597777600792567822544942682933188455405755061872687673187510313171316385916989548422433601972243331214752430461986353603292831261948231460880651836204345756183044096954915368441738072534235685582952079856549397179940786612068804339611844720023197241960344957111567237055129155459807039038822267614963597728611367387935348137189974899165566485773814694350877472941545531810246756227317509648876926919695726131551511847130113619407613552411893093712475069571847665176127307383972411324374224056484128545986784996945051391346189285739460736274715229959840255118102123256265802753395068839015071956735478922740437554507796413180778824526586638893717834701190824336628016001771565900264833011872745870099492844379210804847347839781552363976843229795403712032618300739097409696005184243185508617195299268576698009389875008826957113224017622981345995702083516405421889028186672043845352764568869958514204303716710540320958450470319490371244373958184203490215718723227618714156978650085497820295664976384450999682536639575854949913204006281198425429652457588856574163720548515256617421973262047650851258793169228113256192166247671053219355691568238819581029409465570704214084754645588098923041267331737336400956714376022412528410972093934398931165010202790986819410925656645581143510581074920847792399409016956129348398912093915132086840497750509212126186830093191876031189126725387171961831317348915744212663915788737974267735077540674284123190198650207475178375807981327066205833495747594811907676156893063208218325318768392472294735411932304124231833519233439758786220931010245097074084631885132427890354458336521711097818365025187962389995713451707104608223599265560714446374557355018977251739236943932842741793368896057954508748831513512303100603989536247260548764569486199737828544567946215714414984357806288378679677225172615522435896488506241381155116236654000023641809965279825351517901916725395348722162292142015727597577249139090410429716555669132999019435440066708386129375794299919259415867401505286387569333803658477892258263795115141233984191989975049786528178284982306545689942058221110203811658110090840868770933640406161337796808211817259260735796732767975826276870884261651498515071426816922886493610573287739475821917439715936391137282685494549913218595191049195442592262123925370134770714390409263855139285037097551674718906269263101937822092808193428946611302656309283055370700912511644243476105146756031355814274138088014399925698864640604273942465637906846793930622787488706344679069870617096445381594234836182754856526001439782741432613271802109739999744171299562122075675962779451581700404562798972552909204262251655108632050778674976025445451374070673671300834757990427240867167788591721214453635849288609087211366558013908184756905729638852956368263483285912772922530432266085732658018845486263668446520436442562429255430920547566865775532535198799521166452588822201388887315288819380966082448816915500332890592819302046781484494106029571003191069169000659872610220348560275266367668001326701290787590697229622855366750313883663572575833569539593179059396414796390415433936056535759695499444219641727615706401064607609265576380905788006205699998387458867448742180845741688534240394328650415292372704275175833289351114081550552154741843308839701357936891425928333987891073140050266109115087939681666877946298593021299280870344356319725418681014138825660886586759375775692162860160716567606000592358845397389222258132248173138516117384819691410056216636651737213483471022790313144445042392007707168401684320164852972875020301165271974503366312633035028554009185835118012575985021434191015545576907870449668768628754129459211372237196401244844086079811223696196877500662620397321867372602758486735202913378703754258942683561901733122744725095525473591407392563755661301954241783608588309889806135659589273762484799792727439996431580212760261145577413208747344884887034083384401595192703166579800353703024578631172087479114834277879490229585181572999205820395721020517510491827419141302029249086474010213589592337396819700715044478934734721187091970483315179754700950189169604621196587931341300271098491719486014924049718943399023837414682721193947478741569897768250636426544462917378720180430460097774757016992446654344608777897066900180084691660950455470886220729973178641794410660915117072833766963796426174693261893620124443295894493285586064856736668737247594415305738058880948306331583771445111629038306198692040521082419165173215697882935039919705950490891259571048826644677307970732234977166187696235801472849907116547986324394322590938875160762149364636727957518226829062908393664187493710141407193613732731260969462936326895179270053820061689597383741888840802221986431789487931405216014876708974857060777632908210201355163952695155909536543870562499179998249671859790694557265387270569417170747491601851191691391626543374587828007502253446974623216394956237527073139519111764175971393052964274159125476944449262229987790241844338527001284135215857052234262715665671942391886381988250813573863582428402537215356714052752433131040430794064682092811045616196630706875336280643397188411488687809297485459856106181808363517292236311502872495265710491253867374413412642040667328569375615638837965961444264877285372095861643893821759694544125768308325526285480919908844494937460883930897074632704663171381015826499193585694167357606303413723329805202028647253696722111813266504056937732440336861651522178320771705432546721468828713001653577497857748031178508935079622088646525837241361243049166381085593363902880045306144513612905130137055698420370131513006434939282360145685381953676073181107175358163251898414807446143668379260962607623375113767610310364697100385483208999832180533993827945455638745944122566833526603444614873736783687798285610999351855617342166018675786236422102225924046732580003954594035769659423794165801227741704417699334005116754701045352551591067333324344825091091238982384130997032345463679229928152204087775017547522966886572102472597272114242308681822673952425875947548524685025989902365032638776139819772652756535044879096352863243896374014928741215469332944855609173957145730714780169968721689143784209650059681806124295506806799481436711127456068491965934566786366596452999721788144012161343721432266719339973308561133096359118944630655881212835296547855301725877408368873768757715693228782636253728491741774205557306140327143476927187346272444358391785421924714238772892242899415001189410572929124668007906528306832624660532348159302350639734813519672987651580042084340127160599789014994738352216266468508310681266792636989016666588665411790434943897479927387000672932805810713849613053149571046037555000705063858145552372523484310132895765594525834902451532522056393106222107366091397168047508740505838748536054088297484482270411563686578582785310011075606511909798827381192169707543944450537076004093447004052992214180373743663010867746070423553010246004179509303565677663478996299957475680412528703343154244726296631826943815463140862032121711303212128664754509478022381482987794179838225702417333820228868693153551358710338494602770537389539334783567845674243097626523019544967284634828473049805002233707916060140422703258122847462000647724752848286822812112017878603286255546785560280947830816898942662291907397002618153149406751310937428619823607066292938652081554541875061609535970513815877800933702479452842305100231000487087187940891157256386177885823109351265921075963158955164053918296004422896477294906991739374306731729440593686361235604071461927363644123143244513061392045067424634700028447468077216278040034568501289571761541970258708007059718615847291081030071521331597963045614256011887411991934646877437291572231166662299457928950960015814149945713235697850890126071918270341618900918013922559319780472773578494321888713379531881175525623019201154260545495695878036241821444492136638797871991932717745624341326227836639897885669767139717991987731762753078584854235285150005417847349637789178827510205174628681159430430334706874726855843369356860862836139432802684680254439723575112968484139004972197675760934128459631301343096561512054907565521791355401441598715849522467208932747179776239239028258911670673239279404613840434999986965642935942306375189729126500371725246681137207703570719403908796224769742054947755981508143474195950471556325697165793953035710726931420267932874806862191653761294924711648812959634929582429395991497762070695182283046067324419479553069653849652245618478686187451951558948555613082181745436375229719820948229725354703242149115354774382869617515103174694995791447647321510995262764872830431113738417274848670372665172651532935131089821392062937015295233525050602977015934301810483053621934005086207945393521249968007646734196658274935270417809074691769786374871751072502990896782152033689027858231978593150946633080899347980498090845317217296997190856928469141656934859265397038468154355009352678377014261410018619411405285783863560909539892913439091230272886554569442389247659326344630334222903766788534352584275433373560056668770892901305748736874746100034052889570496753458303258734840374910526679914701903178825861899021068321751465815834028414149239629777897636695162761227339406145632915621282866654580954838777901661277336417581688895643024630918983950557571919921708187284285002519145988775967639885372242223163603499700093242141759059325839007881934075331575244938087670493042663131691638037219089994950241102230380600109498794802923636117437675498114390250683371928029088336212611450014355778625694963088714798644218460084552522191564422281097819148913324717676775772975318861955447924022345074416150685343903820243122863074280106953285062975200787753461886925781399263259781440440349700493176580736113577622611080519343069498342402490314149901833015682577354963013174271259546097696248113636078490344765893468095871716974289284630071699656484823388182615440800513251150425832838453499177272607771054109296855726578484395419038124053820206613932165547147623128635907235255802338942728766648305727138537470259116791050884711462904694655893551363595623953458743653821434973982028358094261122300217849348452759004224253275163145847138708085950921640924692067790864030105830660086372910786265440004264745654493465691406588276987592467238408778292629091799696113792811679547388265739543483832460030434330087612007787556976045026269050351921342304202867695374628942093005220182615736013469069296466040645800085403418547844893867161583201133272013539513727093994121234965979240032560361938572080586847970552756778116604378207419451412490235373364833485300283607718198417598392700740098170702640923516555820098120177875322331202058011136197586489569111877881885929573724677991250125497110013954432500362331612227863808292325241105451999214750131625425249747356703866967502763169665657294737319219550603319853316644222055900594356238527796226536771659715073447852652161921249697389340997855316753724979203810338234414445013398158746792668418569114827278117270924178018536937760823978429399468283229987420122268871696727405506000394612635530646421237940001543013540390234959379310219461127742066687921035046930762849335390256899504894776735489980745739893523265014532810307616282431998170582248072767733519575361658715530857407491719624918254569934685174011327954035619029871199537004731684078114467506083913274112898226843455240838409765503315352048968749438677900665368291049258678849029745493566852580708034333049292135965763297862887273162048972410857796686161601320844436656055192701537815102225085364012758659228277270039616455894211054677859705622334931849459764795190865604919428591879058724674982040874047202607123725013261175420689437109573141127607375546969410351387127240971395969795185412648711774558412503008136292919868993842617579746288739102401405769874630708861643321058924445301274485732457290311662377189500546896966015913645561944155725136681481118214188446489414903347748698920347290820357771026491204680915961420792366245120508444720329597783055859981212502558013427621313105641484683177959093482662882297449751406475893603017536304827568686743106374358342801351266636670218035509529017010651451963901380134636339224201012102999366242525557359561171126014459535767678515045032562574363913677424054530425021184980655733075867129730528508516871730317885274354389046158477923625316266934274440980762875040542404788749660138702508775890206483832819696155598395417036695727160677467751560232460266519813564843165308666622866655983351664453467121542589159778863456368573903572270012292316112567939933958522837409982319134342282806722523281608039953808217676610344874473485219157283259586196423548164154449695118168707796812292950855884653056881205522568128733037649063476537274280671494956048400841150460320789417702029434165557043007862617938707879645173642540029700299387648951799828881293222658985293885019287706892432227511604891966588156427298966828674478992152289672659491834201062619096576792966456449687506436033871073354992252878332654903326183029439066447314530960164825331857234706379473383024704004260198586037677196823015795676451741684729856425149525592498279620324358778964356049348198240844329498168199883052952778624147331769452378410027349791837917437340178305830790345330113287163809935180157422427054481811665387135438204805911917693229269334443499357397428790913896902032554819819831445068250037505017664015188512066138580884855206863433389780735389309319067059386808931163736294211256041758915666763621499468710564504484612497871935396666963334613926387010340322126354733746819905492751183086398685963621805809405080396597518829922187333783329365936022201232399568216567436322301195000892956553940736629638755140520059382213891331251193283818305076717519204772723483922896758772622590685125332995854473807922542623759242809831694035289498167147663306869786196926970178113061982288359266410082528389826663968479198839155443696608550712900118348244461029185620824573259320076873708640428085903052547993481079841690530576926692186373724313463914160553229411554440920324937333526357165833270748130520563920638451125313496586140091654113312775032458431474294240829213641583805351393177829175641700157722195859604240179214267447763151386188340890718430625635110484295095606901139749782558288591974240415760281640867303893159390291121966261018136676243445525785304489513071626034636503357263789635697155518860145090770867682796996360342463799275837025499009459262780956937148215191594018731110708134432464158735723360445632055704715500838018236030870543405923516014170714862539031190887614727446728347961312649149990133681605970878425295473853804194400487757190073796682376730228392689076133426507857442937189062743484943738167766629969596667636352199785786348720986246127613816997241946260589450103122252675075392042024842774651270183000453247655095074056861527536438734212741427043088421491943849062787849055459960056140019242757526337847115341211063789899333281550927250658065500654578261361509227481045153102642468780649775484833181475804836779049534223726208891683809816970900493280713064288699378357972489568864703383019730770886848857778463788975441727310907165239966203988300741375124892699119573724183618013335092810516702215121280156119397888549905300622928427677638770188628646546684248446706834498578596217461725410436323773504486341069309038435901401667933691697343725430992235051899626434988007634835037593459540314215179020829600872205442810465994709598219034293809170307172744347440715072120887454973259881298604236652390780892635171541969801063449402085040017476803803592419000389186217367744695957799482463154644559848648375809589715877523484731472094266165021407021825254832031732126945569501173654365429856088492214285181853126618313815533414006848240866826534758913883299182630617628770589236570124678637656502258985621814606760402672329964079408502580005667925559418074805295682363045982862899897293015014183859908510009987490632692814324677183390564630636272668394671372435591800777598526523514379307344546138824498147555592948605052532243996163380085784306702728102281343907572890135649368924136048478959432839377092940463985927234373607701011126621998553133940721831118296793899924019657485261346402034219339804643651877686796734047141081204138156927917079230414090660021673478807326473064421338511618991109872431222470667443360041101235388028271462328198324064178205447313306375139979640924457624486720375053755222202519533036698342366970984387472774766505416559686360951111183682419558001145613888660429592618264957171007840051981986892967192263731592323796603052760802611835860415195649172549293621196901512751967553113324258881226664841158351404117907450175715283925568301390018848727683219370809010056376527728351034059984848044675149221596264313937991470471007146476099818548985388057869965158941807263258390184087916675479375424933924760287479079715609492906261469814381007605424432539327634716971509209583341967061129925396331397525220261509881141416925940595294747831299313124477233147281267899362859076685498849471045759191390990665228161930397934494007798996397159655636408656978496276291954418974169993444015277845707048760093879442799151121073162363473849889888624959197840414184861691660830069579828700043396010198887268242292874193341718726920422463797059367373289899733707037460725744205738402485771626702762012975272087602582934142323319221572219510361501903894235282024792085270812957070531304186716313157365779779135134396731113016160220222349520382432005105414358461770989653878256105152495199574692529948031052284229348322114314495927117941680539628140395279596177894120934256801777354138354796761040033878043971014888943345316590836382521086326164736504316564325203225286683064320629453515877993968815298385827355843278315993798649496162389271967136645490228886322423086771913872596789345074128249449148356381080756740765404072228161598253296974970557094429422805568451893633295660008812487530126593635523523783765816174546760078956198817804946157952886009177290039530115715238956148993742684341617979479941005935861523879936339400125697256131183180871630763517691771812882651188439146893648065217017783468764434101273180911600338830890853371087936244400727338209474628150195950667180453300693759392556511956469176598769276797826341143636134647679896455843011919798328060980979461705824706660117784170181486625163559484788259627645912852334638748814629681226878102962719791101466642481263229764620728106403658527728955245373146925530172584195080275437797836070043412245246495143432840695641069699097065611282542964939638579995905031270450338487348468976923677939499428324699864724609928411926443677422090384239926842926321979086680196133915195682847185634529338075450056647113336961234323160262859982239600751662704176020743257851418255148761740360498752934764727708261745948015306923313075508207400773138838029654084938289444373046043318794812451440715309585830363502989064979132596417504722858303258994608488913968068767441886916194370599148106390834787653206308212110790393530087486292709304863867765867751231822413981050244964226805897772908062441156679411254131693757526971606471109906234214980456042501708094846148233279833493642823448369284016843789155178013044687528896639325919798882470208544972888996469492349498729818766195302768105008335012750781050577858589628977293291815959868577435097674660467916612734421662912328265563576089935606670948753955838189946477448934441487698598330350163258041839548232224465344778645465982661001696485225530566080133592076931948749123974045035498240970266816529542886219833365483978034875728345399948096006202656634326920140881332596895380799674718436403084241459607922571354696723051183649036399696871063533258706928668531888296184575078552277892568666194032157713617579262938876619821874231018876821152765620616777207922128309166546836818684351112626327010217468475482181435531597388079087040377489218293785908643009329742371541541241934444439801818863156920123357540178785248171103367368603567876118383067632944969841354321495947267073522323920238584629877931921561926630905818259703014024620137106381540248722723127622611861776288535714197130102547516880842046900242445275822930915482736647924449897085849622244913424594759632741708450441165031883590125571725038426214588191371195358981595139919209301713540457220805317476540080464903793104464147454702956808842152495712865103044845148258296543450598682245523456373100975099094578626151047831729748690383307639723319382464272935423803059064330390611439089727448679256109357818911760107619606311851249179152159959674549522775718086395439718010162838322259387491624226969661332555425885643225131214920233814572677209835597060117711304582170559157980543290285668658825252884631332090908679629098531204626405746213198653667197274198654489747536636978846350123182545081724511880340966511030190239413471956745450980237368559978145546333751157419140596797259347222145998103933472721080348228157416649466834238479118638870772356920243912983324206715287009726553731196101194488003168785775613724950519847498962862008741170446236892645960577536999348689333899340904630382034546843105790241731399708041665826477489110014650597459807800505740069405236397551387958517675630895105936184160305114449099758970914205340148562900077503062894288029532794649926319865751056416146011684772846183736821937680358875039554306982001666256213892100955273383988553734393399193953246892461873749310807062347740813859608558732509761406803849145705470696246051363663086889566117046192215369051652641347568002225002504650580654184414455776910742365836309047273401267147599929101075721877239073274003234394121659913222031117882985660867047094454941325113517221485618930110712514058126737085138908490258927743794163940757219910236280490955643590564905900791377713778863182553291464617111082716211655966892996573456773386305694490817811541389969766092520679310202382571188221607082200292035048600903987742187732035139934551282308001343524566217770411727364590638904401433355474357473854552191126852498814705977575756642940906781267342256704603776516293426675479504738014209998807107380937888545421404377775780447398930048600050762126505513810622354171865789766672871362626761769620876363869542536030455871676058758158496667309853868421899638961643910580291021929346975571817659443801566538032800203843658528648747015393800806475413728678377894603183789223736997369480862933128693662206892336964668136591099755637593585686690876259036351611539443063623954514427875307945637380141949370073401272024352589101223293838471483451638655150596355636348310875954831311232144117008582040703607211527660187586908984856910845893615058707485369711092195153684523453065719664891276117114357742278370555630940293940799525004004316913209009168546255272434961617973102318957890376803074481797410753101686970210573191491019635658521225653711049560335126950495632906433789742535433576428720977733648170694584135186221920298052144200086522326632038142248751175440617984226929453356114920794678547991953167594522140207756060139663299133812488693383025472561201757138812526346882296184570039872763909573698135399414179105015280668904960722675882787656278490479190763220374411101100790097244093266162177954144690363328862924714256763774725424982993028264767093251111653401347354265718121685465480757541809418495459505849722121073137705748940345508408772783196533539547892267851019899819787765785254832953430742116207136334254669854375105025663228713270852051080773976940574061565426647982092601222911183410671685369510684180731669160172218846853995944287473899793670226772373400605936076307957956548124809898924472746844367749237679269751813805131004701594969542169995722438635958877128268017787258522853592631572874473534207761772476231027003052626050504084546586909226850508926446747952205111231733419741185732034354805131232849117131533992152721004145670931431043523223001352689555646870165784395585011012907281086311520540044718287229836752240544230214621007541786590890198858826449156938558005380448837030990058541400544761068684654189008655871619332086014142835130764546494739702917045762616821414755123627425675131162450495678752789864988933989497345902228935911397571239332368782985047008049661526102644385781049370899469361843415826875707230720315100208205605730655196727185494631272844395107845985447719234412489236598752658718492534227593218567360646339689202636345883752545420324057700112384251542983344998663518812199449105984506811968900207147726890068560016868250293702439416711164674126611302811470780170287549864899313708507999563722920695552096245644518779800752308106194841027684196815041150012693237356419375412431682821943280056433438392941367934884320962846981853208050274961010536933118153794340015604750003746671093983732808256425982762814471592081358989963624849242914356997539389151873103040049797897855824726594072300982250273829568809546266134579682632394473715446076716493822258165982948625919718231458222280685205878288389095793522285567937509647208652698773996009172172476131588328324953446643414236058835200139418444567825177336510590378699037118603645365138822425609740444444045166865781533352800367751189633319926925706289189980634552802896767320250756245540623408350590402611094937625778917201785862381082229831049752949173919318786647094464354868741559423762489059855804013343906105580925915993984596952910486201220660709115885400873495150708777875870268785672040803634040686732867785678091899094532661008360175665490864451101082529908737547714352619943019371246415621966994868504043442895617857172702235889696878260073042560082794898221806923217814061166903807446584498519845777736095260338339141139414649372340623416855416599140021074432289394573141811496653671589752493181372994976880701254934677488946356546616009253620417829668207334328817782463341048354517883951803727788218226015067985620371802429315403714511849443033802545928034783416345334308060211971272074008161901259599941967624037634053574312993924018203249414178974272111483218788466242509410591456247192570341158470865112457378087338755552783624977005703051647802788180981578491238828415464669167907058230942257086809257237561068464404201046643884338521358534540850185181232793279984493537493913633585717633167761566601049353374159123564199248299617951351663754134034511675273445796743072524140755234819115359421140160413152695202955238545567681302206696437329482154108177622157917438140907061054604142544807924787188119816786516070135363241607033952534100327161963891855679500236666260460211310711909907443453855894401441179935194301461605749624320205338952406123583650396317657010647437816728839195036502333693831442918351953125029644698784102608664185956003574097404701778266738280209640827104979490703015331468521423395781608141736283514352382888045104229925065285104278421352890722977767097743811846775393839546693297435691435132515100350082199927432906457182045341116662006547824251722598849445445135744226137557942172412744605889086334872959473953479885131762862904400367851274863187235647291995114865152992951870988300147430112906224557183688951587405890232971659263893424858002164206991978525851523348372865169493922228687473866660924504826450001591378347693177042600007824118899947634132161374624598275151384443295518141986316703089059295362681274996880617350937145930759693654320548025091731173774685853601560260810733239842299387224002748808358336454737760783540350534285223065018539583291369223343795744444103823810220745591802842983455946041461298387491706765986031613733685269770447019350522272956485270078599853546935702629336045845981033103625953490518455440304048729478419086135637331727978467629599421975834779190821047465110201066173139780895763734914828127177098939213850747962592899339313290297925521284872134126587647622109616744176665858462398705041039541767315376164702805872353102871310147713934643567045467998623349237806341448483989462197194082243621440123718063320643788552073762669078715334704792410576624758068455418598636310684816468257260599401642730056909017401450385383621649931392108089337697603714434857451379273262245439122798940417362331630431875664728146040441577472059499587905268984436776326903885515279564972424378731382456892311597464899724240104559083237203283657301841406001475606532599497392274216890438604358868143883337123305367288301429471144378986071785316230208239261236106999215475046481434390646967163747297837465366484724692864173900466106832847970841203023840397089594274170498122316271730215564560344453168008603261146256701767107985467483638858984709409025461576044506191052821230541834059816820331332747370285436541865572577700543769297929431324315754799424143541981022454646738654877060573859254082448349578567558541988604039102580163264161180988153031931773587710848690530803979435964679248388926794336381138699472983145550336910162152705501375644335490386064470149298750285103193884140247641060450691422560564592014109293168559540844312456604265565378037243553650848214471362605034680031888814038724920868832885268327763933311247093550689874423936494226029415672561709897913270665816148239655401263049743167714691156563656799539992544983275250757798701846432866261240740004037620297679121657149001116935652206426604658346587813147161393539050816807644008861736683588903178476538397935162336142105255984532585673165345087231406716373311204490868740050137234084443995879373013899716333027120217981211316434093681171828795075015298934353363751618714373284194455402160871060482878751062475576649227646815804010886755085287861837129682544212712011436099669766138558709477848189454568117503018026662536839163203315500452946031148866189111516951369041803139417678141277799551698065090990137707134158964295581796521604084144583170821612127428298136096749556760031048391041344169385787395021738509181417781791373509269905394387245633560576284112587455986319937964999905202407231420658433285033402439755682613733492748897423677899621422753947894763857542604592543189367212785020170487571577963433552930328560372965996562692291420470855145071091701419858890960731362762563860908968846507177968957892807449509677642563389277643811265053898907012695609416385567218365663605316600590799508608398401368987900017291663171681553763456108660686785743966415556611975979520767749552264297089983534416263774720985649583868111789883251107525188720585212230321128602384730323530901386184689692909380278910588120341131465812574692969843463252535096420250297380982040483501507043986617904885909027859259778768409843874117464649522309384318030724443258998138728795138837307139691105298067591955497964930256926745164241569393183768738859017236169145145204068056237785992623968192874627875827474320704237777230853374302803725000547541771577895572104326873533183128914679000860983156156189836758124279448246869182727171777711912430832446423442208723737190866736649500690549826198036884227021864812367136181675145196378183148903851333107915286775833815633294400211013860526635074502103135359043206074460946752270894412125682290747635963839090724034405866041567121547994844195805772538307678212913259628035288069864756520763933742418968475163044759897762762681436916103871131890104369243421426738415608232443906471758831250348849896516987791418935638714443995542783790642707623204450647900779242743907620741497851700193969791052026015498770216974014534788526580962346744191277718975343764598655223514520491860447348179937761657074491208666270727778706745342915560479442108189283521066228880954413825249959272851189446198405886621729167173230082513310588494161978330827077293536493699018245829092484983404115118630055167545788361643542353481937225610490182726563800553579136107593917714266887219879738620944536964704882984401524208230434770280482328337290597778225640929401189961331034470067854244581401937991416556502342567995716169532224424637638864772792288287337931937540223454803611332427417787142388635493965332694363494699703796176979084031466209954736030229869550515577845968667076511042694806903673034233784166360375472977580036719811876225876237402038255471494280648452563554645934109838659686422677144226255645641243253486741048717282257948665879639903816994037587746760919398778563073725756136481456465607011401450058012420253111850658983236359489919421115803803997104252722823092975542359674685310849232313371407195782107237721665708274388451659830263034583474074773661740087227530022872267066896912277687191792666566944950813065694746330877862917492523202576814479569276146125097487747921396158092468658084841008020067090066832212594091752456240815829115468734715679204378190069553082945177564919785521255160571998533858054350731916511799410985306814556728677562540201433375871857248586343595931402757150476594381540596490779948684126197737785325974266341071783046170499713488166744385570402143599229904231016542483513105299950327870218715650919091034252284368616621186171074943993153246122255359316675403777383159081618036209245343130333698436400282077872798162625066156650446118410781242651327551549487964474402470569348692293846088553665474558757387402697562263216268756578213579640333045539466968931947092143109165346492941341136518783737442731224640964761980329826534598951868750963804696230269581783460203874825015807359905176965837897793992265929113782062540146591414520343421749160338405056239871504125752679498842070296196905252557235925389713747232564718782112366043112970726499528876001614038814697419445617775191710041406700483906533762005873861484502365462920936026002587949823592828174005013078848699337110516450743395721402920045163054154681634995775712648439702105663509456129677161422091571404626022447632471687299272349853075783625998923871141774089296304005520130414849891231765304345379894471645980478101971848758926380853346850328079577109642873617980389147523044016317828308572860295760706023786996029984272090577018606141623639519405158248220783631777193973787745994653677232141585538493076474110815796209077972815413426291901012961013271346197925376891034990872577016832846341522649901898755273690336150030527028159131346723873196850102822141893578407633924905213084631449990088981873877619355339212603467330838583097748902603874850163328280848514037095374360722482610937762417120064067257754198399336786909390023821094502484517121882947562205173950792447693718465898669793326573136573076638497507908667746658735260224064934311623167369503610747183821764660358872705965117159060745542259174700200956282655729347294486459966113398929671007199316449620527390248598717803909232637338369306953108979086854454091826945087776665839756111424316882127218507009336202887106491679515996916181535373515307424229543834162328454764199513930471888465126114993020238731337194163720371747834854677011808655431814571625785144029730071936456279384759036561094277003690976963830794081306695245600994561702106077471085040246530509973590459984964830382069794384506590709464237829427422544454162941916099757158149933574372294999320806467904551024040864512558561761881645071380914058846295315131037982410597791328277722097803048404574450083997288282457109295633054189950641963237511575925603562318560193615273730838890298759379809135671499366885830828764763409373366999170693377310167650479506718495567388360783102189730663146004233952515541801195163813544799266549029993949027068605900814763407960573750715048065260595006329816091748799136098402650534747778017851195107312731785844143433939041758584089655382551902862570788010593112048438812749752761325230813802871401203307614264299594503166123494491758457738746073810530282626586396619225161890739811057939045013826368068375440012322115870961137503311804051967048318051245612725869833296326453312229433027527477296580687990842965740119406432744456222485148452707588502502843824632977488204634617245538235113517815873719568219186968671453068183209804886642775110835386774653699749193594515362738717666807225241249641999621306423667354624595843063887523744390382248189091907786446682397465096362275451904896164339983024918571544391284421493428987047042439967176932298711926416509084583413210660763853192272167582716279528556425142512748804508599152545825524580780358633236227394626568544020228144810221968821460841210823952318107106073745747526820274958733452805195924550467133216233187776183098721532675242343607900255770448299610037463947368918007232626141290330277251662993142500465961524684488048703738804869069176128395048847978434149698680896118971876488180364907207037485592721772375973405528952319455832168824518974694307228884867071878833125884503031325264647929046254612083265702221614153329678863606927702032251103108140217733980884086502056050172374268768372309372461466449164822273818103210991693521994300690267933765841107050924433107196558180829839650845590212718302574498298574412755560929069331635960048725870748089682662321508767359727576147610661313968864568837750071544413699805609342790074021676837464071622802817879801236880782131001711257547177830885415857811233487220940877065451113786241017955155051798376212064503026049390406491953968547770400067717276804912581853089609406682617817636886571731618775676898402855072473676155969765846855537907089089379023477564685241939201455131467405153836962739221669138690656194904922488633077668843602037859475461132564312765145874370077136284630821071224764486650839034799136721842741117513428496218792313274194588319050535302231771206925837115708712628625221178546239949586946134699132738996132825513384918135668502325907913120440974618846069201644271951838004957784147026389400248037819438474426272824578822307879589939045049929067604875577606643677852223032508623788376265052836426813721699470158358265105605620563724177613812566680826991412820968349339364082016735911107116834597101831919636971636178401066996495145515091869038773421242620577056579063807002210684516036202470837989502540081037606623572993230719180180214463404560097621794692757215394099979707752444514196315560173988035507133075888067753528031675892621023650159782069588112383294121906398793023518564754839534989041536236735263430082807636571348926221764787150797043965277373034193951857358965842744018675955283663043905582568267640691189353021522669447980726992196951553887965513869256458978353325914323378372856055109025246776811805141395446287320704728825215428037804114154176341208585806142805197567627681386357294449618291926571668349356978807737897811278459264683766480617883879599852907326603052032234823777400625848945433917077928001908105460068071799245276018389801887886671547465805563284025897527342555802913784075558186898691493639754335111247280705018968088501275016171707751858811053040360447890943527104129380585298288360983124094578668259398197910672350663282143083520990540456735039326973711981374553504557754313217485079996025140130869290030468053977373169489203678002078792600459754371173663270997704784033492375034093816951957265756986015960003618671958993979769552139942259649281747576219607731263112609813193514450174305820253011644216806986720129472518558207293726134525664283791652261411434818680431412679160480836458257202620996622284171119717070721374053454993574342932234373092613570992715133813445001559255396162223580793114657712531156905870987143532891477935009114255751990980644640657246080319335935976641130652797215565625147142643351366975910708030206132312080892008721342565122594751764093045163483577907776393317352444188816973205580798508935795497534095824018515621121150227120560658569123706039899995167861909803848402939330312661191686724334185206526373530191609657817492569947125281063529519164989020870907790127277345729197099988178589028973185945923531245238753012378550887076337296597327287522489467003305528513230699046342201720080264578067186817067474639712948017415512163100569789405817381130025319335183463448271737899078858928238995918436601786891388848504523123242732195655696694272315567865305625996904876192742198228545747492756818662170878586178169679911336314528422793165037181598961117046092117828336723606145870491152111298777629231039734048303873398986816738139540302933277412861365260152377266640209321660713216095372788469623007583241266885984600844158803098757822558043531968014413373512610909588053300204310521172610876122158294441215602542813084572680980807222870155413896598166919655797077432512680051059312526738920689138716031070559336958946874367906861193546920399998725587279309489934085910782153387454597019714544621406577599978491028725600894300431066009635854468630065903337403239205364708604451598067105967120525923774615149087372016116034294067227929911266395404341204523050488241396703656405204994706987559726782955782150489721945157983718031161347992749409682846269172535415990262827223022821068060824410237326235829598399171311268758829164482462260623556535738433439794509487778457482507507940369923664583691353246256538189499588680146900532471387196607588020155989118407319287512989600723635245479466696721577664230312156215487212502359101936288354534484325330823261302074831810971421494636482704922700921349545470489879886985795175308023185865502721229801700228982066082493581606260772678966139467335923847017047913603258426099774994407026705146092101421817968441741016624743235658056297836733421560645018722059861642160088392083129526940576366067679991440966497152285664295463467991068731980610661897273565166758065236140956800968503275379355692088940231256704735084375774281946329395980053675664355693876031411386869628378306425030787830592614916770731148807167526933737518260272876620646407399543467936618705952750804163822452606985121285881373138127445828530575100394489608780427426052550160761269020732882208911414786162115275254215630865924326444244674094393097242535296472511143811853880909814592345333196601286623555975691811273047808866013002149943160368125972227765699557881335966806320507566388358835448727749417014988455735493837462231548317102932230858646845700730109114754936053799803805640199808661079307295066501270357892607125257050210105707774360959466676014956339114350713056695107365888146841811579373018882896151027088170210107357769237591302608229639865383455863165273964640368755227477712765874707387327938220919581471378080497160363214481383517550382156171705983308722786568131226283281558650761536114042984499554594911296493121971537762591306987921407002753670239707921867635376588938048870900130734539566475119700958341899464206335686220083130176753460448137474168338438339983862838270989624405663317420722596731092677494791005600703132998278188850052069670589993000671702107641461443465878440931244228641160677528889473329459791983290511562583951373049025523239581098065552815707953939230560865455076950850079655785047948660573687127012406326021383645140521445245717918149311464777122910319826768473120708190872548486485376804957848199233221029872805553869595243305511200537106838695810402751599719970065457089580414700507566751815743160139037985520432350100464541231497838030839908605288405592624522364924309058157374814929607619244917144271307662576308420126882841711071541006536034719997620190827500304751077223857975421083794610620548972456504271842813901940116449724906445689571438292984991462783582515444183046174772533467775026835657168033081672082147816011265020861027029540849996869006583093680461394698030448346275652301196275366065825835662163999605859014469837879101902129749534327258566032874749962763148324831014675625946408317447320850294429672464453078231351143858377476586380581283376061952439774829641695272060874079828292851480736338218355481399062469242161938007565158326995797640595988536617911925114061530305874706950239124621360329260035564987636059308345026712527776303900787462079534006839679568725718686685132241597147606208287532564033019292600598662637116023501377446215216420380737384250474413802595026206412264506415949217980520080164361966604100483555195842433150890008258170886805774514300533950316373030204835200966892218411598045970429458420037017697627047188702275805688023400510346618167261508545106190087034437733961852813204484739890801916334516743361941986430824684875655188635377547451649256414936001345254318568582478542299034685759481488810833184376832061023572529938754039831681222880841291079134888610954425469961499957309509876657059063437921201379018986599353545004131135983480493180668200642653563146613717745622440283675295012492054359789606621289900337049300305040191757696975217771527978962111568716710950542801162053568131945277065419050981469822584348028457121561504180354302605454684287241929992683810127748271136624735047369147426354142473222559041557254643983412325154765897473239991382277247122029359575963786622947638320799238934234776104252893427255283379409370957473125168795378807169344783871534950208532581041742682911868922254657178338403317386117953580561006880120705006044835828851735135947385745550925921798880109778629545825888898225168930688620734013684680975690979934901528448459128701268185997162067628189433028394740847435388971326404322004885033911508935837007975767247953172419238868693587074898655970787198456718032370184294827219260041803430805680391875864463192692234615690152248889864740375440845416540607960247550980873016649717660609564503944672085857912330152180159715369311323381360761164468336197775113833260757840428622799182752260161153758618499571435275959553687356422332366060226555396883043736276293821386265874533895242892215886637053436468166997363460260979267030296142856304209844411036998969084151447505057847958908262593519372775849504199130620932003378642444071265808925236177241582038851066447670770566873763730739929204333362160032953122489202262051778873709891029500397831128947265000954424932242463994926588068868001421736212069391456728013400724962556032264082360620037469748096442366410338996709861796778118835979448617637120266813034537946695814874056278842269382648522579794246885999824496893428227228166963269209570322018102162718383790710934740017545066096092966323936575541438500391401806636327997309534661062411359155285413537743048575090363885731454750614616616347121839045418274036508302633549045000218638415910562145857649349432661870939604030824540814503382939819268596782293240805063947732027926990837295946179712035498674319892812323024734921105591147569488605917741981875680231506461681909041451694419847856949183267717732858283653169074873274996025477293050726474144893226631313942693089705752890035922485470246581113876289444851843330143147750021141831453457286207291780288631591853557641263355382367074109290084737854061380211665004943458706192115154518473400984834927753615176008284895547904430069165441913358512155631674261542004479753319172757139599459724931410608380740444896523407707099805680625888719704692463776132904431872781313792499859511984249798905241133290421551367567911100786745655431371730089287196523945924901217439321305955600880470563000665458485825974304146795368913697202410982657700550768838140909252161724137842745013955260223444669085736464638544329315145699466673657030152230922745179183010698953037440087310962358914471816428459909610297671693286355168456913177276292948150265742677412478959066665319312278024707617861420233356323586483760379288397980540542351615443034985719711313733788228058720702621269329190888405944471538478882803298994895101787778442472457932715050123412670946466652237870526151392611110578928373348255998104455338109281135435368328002108384532896806050766521987223858193897375859630461434511855810165150760752805111443994753270260937923624587332517981290651286990875019665489704188738896897075868590961927823936348809603404414203002217639702195106281041137700455606523755720143759701571458968323826841445070339940229738092988868893659896681294527527294254245958182838747629343125336400138895266530031197016707398891145711742209149828233716820301561781940755208844259584463367489004541443511932024867374940285848850629737617483010990642198516310007099590595832242280422399898736800993827875273688481866852810331534225357980025971012640189191581290377057434069385203596278996433460129808086955891371539393816802634182451481086901723944772380473983302683591840249774622497703353241043689446228655820958463074508927612562932529564069054085664938426550526770056177417758988124489219863489515451674727071246800925593638750566828965404380026228606025105426576837457310964198418510598784608702238636700847765246117382988461887554320762921615431654594288860760481498090982235385187529731063320812886130628859634437262967494220994609830112402799538706567124043940848165417044696544868962647305051578576198064840811536041400541343047869251961739248611780712800001054278161070557617224743003519589328771343318823925715546856100190657048134593044109124265333827329364415391375134749817931384836744231007134241777521370583454899643967563066683648497044112312999424555048536176437780333448772247594482666637806689337562450738770064865676712550885249519560320172087437607773044142084131291662391633581543597131362272304392494545674468242811282467126038725453730207599096273985407477477285082451198272378269880829562238932491156346676118468013852421788885877123343545950820384929408717757814062211157224559237886212732862648360819753746184653226903145717640924299993250386345486917024232091767625472220739740457222493818201540811521992030481079972562276834612204176527143252963931984417986930209341740333203879642548526009170659989741207909332392872289885690938515242786799562055595904298197943544472200009985658447092698640739514805143792838324286719078328232076216123159472660375451801664099482760452503316787666534274383456332868010785715018357746806252426154905516952788991438582176025310996798771860478336594617446775641137446807237862174832496895896311212256112989000657174987450616102981969067825911719923186291036918825192571686587219560010717937955702922180792284856207854669306828314132912597641599265711549891280022749142598491210151428509178217706649356970658381796754345162825439036441273107271026232413525868972896725184306312891665198591352534368519202142945419663201093527393954478210529363773773245679036248302803720332926460391147425989529520492777345576442814335499975197804582402121068479318275873237509035788397707245188649192743309591631556533311337462804869255540827947587439795908410526266092454782939076214989713841502062399562785226472941986061943304414942017663514057245424311959360686349274639356035737662997494515799359331133176334076508624378042910483478902778455594258692044947776429368339237203400937320271921382321309488546275871370294981487965527799465857810893135829130727965853693522545626708176267963767897638231101718361549491187985337743672573150083995053644734775592871880967454933801535169994625991688842315007537578726841598637497884932189874922877191323275618205616535398163617913170106363208868211286777318906563921519002502176203730245087619615004217379737771616459068942630818835837133773098440296447014373870128200064076070284312607408728766649809337174097099489925710993296783366050886093580284783767135057166388114221525931208788107077349872574920350035191606241383596614094988919640554666775757407284837142094163944422929052585388870190694412022171821580563308017838962905393803045530257656533138643544234854493572062570896382501009664991598298758961440620825413390592102005527451465095682144875510684969970298104438730225458987302599348262542162067632433600354716485600169194590480230695644974909012530435629780191168474505624896144672443426138307103165305173544686613895805290745538610877081052330530087081980655081073504793370774130941644412574534859231677118608460021269684677197278847287376845958285707622351569368504919525261886853747256271987527054840135326043062443551144895850518710460593565114033446426669887243588719181128125290993869615570109579277058637502818722820898781645102948092340571537871756449828166658053613246197294421821089111580964443661852270897257931167970150228799265858795746250347761513716410369876977724211952048912727133686715588186911656990279596391603204983909021003377321841526020304980343124446187485380472376679886873888273045830468708805788750318061350262981933323758481789019145447152049856600593387089525261387158314210222165451136030165956426269315352068801170449252193720333661979602405534465232476913669136841625774097022861522884587493959311175833762922526558952802134012245417678986143115218398526262857719288593135830223841933021858752344817117694728732849423701126537292725654708622808610574061141354745942521247229297115833660027494006252748351646066085757358562801469475780598668644605887063111043099398699874371999064678178536679080220969893684624606303155680970667199797174900638222484403810912449354175710320636545702159172436154117200380076634924601230554063081529893772787525974173854318512355598118690922058808954248174958830042105974617591905264109067121269960469681537428997883729191889656387072268257750057395483465056677972734105982480598168973489382129584527618056885667206051728634876298471941397828298202372056795803611623087043083806045470403274201118696445466845422253772683190162192106540273223863360190792003013571672762388134443399800968312674906448557788883356635036396381789942996402022568399641078348163851477438740146491115847080576651034595722420942307527325871388935934069951271870901908593981263254368613894178679397594983482917978039134110024958841475488101889240942199629403719886381106042262316297619558570515500787427050793371610366317274868500746362782581517237888806263564078984479261177765902685531781734793688866630314169572745785837645078897798482594636140472779657411207718800959104328993490307888037195724736844412175173930691717020837642094320156485143530346444892159744275026435017094071318079363963556767047240948648883716141758863879225281226213320074432193750964446218262465989019248033619062315713982485578657285266240104835258875446759832800688365082784130366481702150094659747671198552327252467664311003820111728669727654110067320038036666125663973329858914582154409772538426410912054130656081365111495958837690990408767398717291994533655633668838995451356199036509831444933791993046777910016092980174500457998504875338503626033825638625004919602656684444810103982423839870579905958550572206653103445966572913673776254048501770924084237210111735797916901607992479766795513460803637387614991630073213268008410702023165008711361204756194850240067585024923081883290011266602152669527065768894139191744431991227864694226942016690859917940585932165281451998474030955892397588636967182008813141739429437137155311745200084772090563063052568996382771771984361142806044512048975318554752506585062894007978504856195843106294958278149014510849035982272358349287527765210314022501868091246959613988617753928187135206385098389172977883366978602868498054968937358077563437995046285345472730338430282609646208085308551592097451805236410471110670989169121281686338854534169984244705103754390375581492998665506155431233650321077495070735342629203938534547338982938690551910445964469825172844540629303413620690062547034441734062122086291219564674391940225984358792704562243008320298859604956751894781898837255294957929471073485358136778014839044495661856082443896744391858695277468684111184700698349383029599783888081500759607737482105921726358087295607566502034922535025573780415156391685359959853342702267627827911033257627762673666658878760917219044540430193913024156995298850882341503028152377553618223190260966396831001337919692388611907633353294531231436482983537139577148805297993788116076270214537763102522479602073731244798185607597093257790949314059067097650442285971570211314159530021774868993151882820962140538488294721444740937173494513564250003360824846218888009258819847240349785411561129333921022228706131262837384171173381543049568491343971252047297826265012700727716130896196602296197860966815185158850764447522831123077157507294472510703984995938284370425625786226583104879432885467470079300174230930591199408710078774877046787542033107468940686161424408152310837806039684919091928055725434527615728796649444498170311256322720034378862219130976651351883878096825072203082860738469948659641025658547503838892264171880074329597616453606716413885328303566040977312311862582650313822185901887797910994931887343501802986656165809025394774011635950069333869741764715222557692028232910952158841404674304358134352546328594421627856422015640310150873433873300853781126252956714639661206797082943144168912236692221772625930753568223451023902550040076477532707295467702918483041709317272566818374048588246810516862410937547912482276448449071051262805388560147763645582699052177612697344956147241251519666959166346814102414213660712231804279327388884568655893838824583730407829148216937586690766659343566356020449921998127454060577501637466302846193610943808643343216432469257751712770261158007560645065453067379603885590678586410210971105320526764793457497648650783304466596439002965508494989707907161335759648366045838853507155127669225746233146301909863439104081708291872805218042918692591728728692226108402728881638801705048312833977213979997434272373738063951526654508316696174995964920628359220485753793495240111476012687072617994789727970239902681778098838990495060078335092436090480357243854737544829818358432238600084156846890078605575687132375024443986788416808772648547005889909998183382510957958666341987198946803049000125652922359939165408447658322094981342744194571105553789773507002978041967923199158649615496901663530606289167882375003831327738437058255001723169905363205348375644168953225593467188817340607499354965307971125851070772731436503794302634264446809141771896012539912930741675008769680757037825726479806906235853321362774252777574209548292744999763287339942508752544907391828079356489840737156929290955938852816184568904607339931004448415903767585104921791080690540059046018799212777315654454236090343441641269048920876851665044225016679643658617228407762306439758335351152764808443356556881421171148014093021959383623350315634581409946684425995802823995681577803149404899746868693569043635259059573858079486518584103950099284585474064181321639779772952555156493578961879349049863925820582702202336513579311207883609836327894797305145990096807544738743600285516341447628252975861070671274555987369696935657885713467097763051956904203929222443771316205570114236038911847993757104948889241246325449451833225457462821728895494445983713384629393820812486647832145318167519054205565387763449506196041094769429187802164351637633554079222329393829236144023176303018530098265693168811001805339480774461860078161459946683785773056700921983246284297462270317625473138347880280367952641004375450184901566916812153015066847181225717579259803553370585050594546386882105774279536736969843992638716520615563746255547257462945695645059741778960268734839679961602496243645474198573530798197273890009292189103124773428092358225939218746026157768200693524066370139311240652327635337675197137021299744671182671772968279911949777993469428442358261691020262044672445019037163816982197138791284084602033993228498072138896898790217518869214664546565726360507362791618486474247939497404621017708356723298999242823690299386424279172691162450826624609580579052542391352492525657045935559896203768689415959064979110732084485448533711048348528561095269644364597757085414292973282344535536162673934715083134260471169693056653808879456651349253783551447536956521237231382919327716308256245341080816529424051934523164376613030903022961820802627380182271985136534835647516002672538029788097075968520106603356732714388392611348159913394752529241622343577847402724505897116661880746473742552351219020815834004020680552011588003063986545784341402013034960665162213328799618348396159101257897685984035317565696118144587555906102296195661157169355656477003551276426144503193874779339973775400934921218680812862396535821461933977444952963417412255528798568042480820465405556146659735138324647696123230304253898077301127624093697269020003484110492667144191916247712187525662404118755658063615837321764356923697009124317214313202245327169068086096495653641012695179706859647725848821872303008840544460256896449109160310618942395491757322401918975557733012835815318836766629676875383989182905790586456742682918985210440923806043560874088522933260515245340184614555318330744404768740109911452855867209496938338214431115706956387770322261500519309620108261490833224643510705518354017404310363697158945289531567881928449556848436611140573976642231705858588277024490822047247777992462570007937536126917026786777780650682771044383193842536026912419170806445141501071351795749754348946271575837527812943363154595622864035551762812757171387490722036859014764193096219023745956502137011919814347749361365519910296058743260374238921098641682312682745990122727394829464099133033095856831317199884071002145452610269949389186826812320525368836635038328796783047320555425780065894907692349193518618250003109536628421599887434107598807831811745436216159182301583645451044631465875862594948637438712220548461833836751777013968580974172359013187842511100506408455673278025401850769952471601969064260990085549368746067140034779558098554818862834923558134611002642483891553754384400725146510543409513416865358150447545927107581470249687991380061185608954491445089087069596228922995403476067738418379518701665733348218142086020149143872483626114526713227981724295271852565846763837163645771085951780670820684577232197754540111340514680186578646459774893633464814193937831916929920610923589893756977430373967282976820036264627315405089063059567535256325326941984204841590206400331739420305340431806255230076178410736315086122327853308600752057053511443081222654010492940196851113957300596641488404533321534473705543417251243843624955584552512010305437832913523960185463212561998029500636992585152097626524071741001279335717233055203210617393108895169617825133517236649817332688552839739873643999829978663959071387539056387880728735101078743261185636635154261706956313426944389059796420294502226003256392640309550115314128748967859363729204054420284557606638261850024538434526561003673818650642876436110337145239419769465962499630729107306398430695037022384922804161312925778182824727899856626332461523626508856453620562307659588628133395554617674740027654091592358522073619531276659261634979429838823553750136592954078384751794196762479967376939969338454996593566089980906742298709347100162852808101456118586809328808359819312134654879755744815906042139320782142804494865558120832007967869905383338169170618554606792650569231602867736104070544992620709589147762707418121011252639917018933405218003755891181431560959332387387453503817316596711700655667985916308293167098346502352436838404811569090358476383044566334449280050198786679677329773876110647020773633098115580001932660969325494712526823090358913241493843752686566714433304462906866744887133249428361048880526380321574109558252300910066738683396618394443547797469409937821768892290354290791527602277959951834160850559617024231943417486738871672506923605342376154208271841935091221729556000396326637948981402431358889235170636380078766748748899444505587615637989579224078782935841790450108474913021818460108705496953456300388614393556800721962990276386748824770954508846006958239817169685889678273340027237704481906211623934644009210741274662342423733229765584158012654568641555585612747971496119429191008976418573228627338857654919512594783066708905026140309198180628033936837570548257247469417673815534343741416562614849571610772706605239257294334525477807448972878580660030337641369030489867152460484677668874832709333702210379902950416878316426745603524459689020282107336727698174562714172341710975266263918442317836143369212305945182290201738504675019215663800577648703614971449956267445331099554918527582108159900933294936816623397483025937043812971921419571825013294436101363376687292645922125398704364895142917765622305846595262235797043106811187397370806490704480532619031866531090914707642226742960756913575284275549915124135363707774462518574177106253200752357895450704855746880766689955126594047076130903004240939665481830063228626148485052520077097585175789607204902671462307801821668266184228889207825158469139525760867787797873116949878313942714794532937126481377270246887690391131863114131982397197251171912610307084370137536178134136847021206121649797002567256467860978318693092121076091994328552572812647339777758207521626115299464610094753482484713726240297510452372397806942524433854023003019187055709525312937606875767863367178433536497010051571488052795352475523573148575258047305169000838451835970778928151841972817058897498334390993102376312043339739851849806177881473298025498872356433642170243964381900892831798334469779243617480122318621146010045176154450841352678353976296563347360937205443618468361805145410883274465707101562850459762591347671152547526044053347188362669889721891320356743326249049919690681910317966229290724385148753817332742459498719189186721759801065814542686537683461177819093027834650717417601025595505065937668049363706401099868029336240030476090731000348516031672919149540477493232084315920347501182369706043971688873108844592254602742370004392241677372730771603668726467123174037754342804899149008677036846366232539128003255024919280714765577435952005266220660788682357582733172954714604681151036786794622016124547358032356254460336617716250311688257723260891802781885222141394934353296697040761174059470581687667682981948381611233368239708686113471391428444188788958214162299715916599523610436947728241487544046745440948928662831700165366484846184218826618812489030442360093051141014952947599737347736321164330755630705087887382114184192463296471280135965001971378326137199599552279049426399448472742759847720366350561182689553171746473957023499918790481953039936693750052035795116478729935712460626341531799405367868933649497251892518034083404867877308184217743356409057659278675529592074409022603600736075640312725226495844220555806241138642693583269970716082391818548558365501212999761394221280663789519073121300404814282673708102798988925621720538080277873277120298484768300860703572814536286340581401236336344326547056402242941915272811378899127568574879454965007763659666525937295833096979473853380613894644186515792003412945293595003174065376549929131354221673686768442883523772236247648555875430666938831493144664351124052433272879556383045121958010915179417365061087958130702591008399319612748008258195761525461945247332421904160825923961561949882393382037023677258580453010329184905255267914559019492772019004008707257747405450213702405532508928979396032625904842790445790782005198937720701667272218959044299484745346065969263187100976500672157504925066101428764633712113852665620596475630646987239242751795591364230865898921898862361783594325092001549261163305641053640497352148050868458297182053721622291632627743820521779114144226426666969559957131850047549649439932982510915619596849784810166387791106055590484296837647458570924469483366839288908599276396539802325927374270459239133224495285495719670888111409806611980126866625240486766722369173148866209173556087140614277836434804911270280398242024102318976961540009799702531539908717055110234645788613178437677427063023151320780801151520487695363271468052934573091553448529637433241389168591995868194369959685852683547820243938743395459912105624764897381067991931995540704263917559508633795055402344250086448374704054195795283206040662435687863775002754746273809017963793398772338744292375325959641109309785535315732226899249072571534648839764748647166928621946944658868444596443726326111848126185939163932523299857075092212607670918614893649955419834645453866835833246770397895670130328170303190583177269851885852444380112337252586707153160984399780537744635772357719880414855607858587158144928341950865473408335081030285093514603509910235970932209308829911510007205590020515227463595319439648570466614663301199656286995453950713822400387827816703226855236257910564450362054935888781331747726108665931267544215506230717292773874420094238543144530758994857038828465828029131831398272219125305211345005083045362784453618638541208717008776688106179757452259125078068352488008198626565587534266774422517946255349701576437376632414077455204013581279164585755030175640466981212371585166721820547479286607870042247133395871001473510715698674869623528073109465620563755650173670040257392926087962806493004890898583884545447045327004428665185083948021316510301743559486333685299999088417789870559293679576763174775102639328811550244289567298486004690752820425546850031521751738995928525965242754183654172903856602957076764598156759440668367554619893759986297357405345970564256060026999957514170288481307935875247744541820700282643459491730113386641048373672213882216121769489674361776635893109410652527894945962668286899135840787555781713212572274727638393820902973955266454202867777848790101331053338818616811610119702797443259384960789784257402155749971137036133125208644640916547485788826527496125014845833764867754535848637403177142342371834430343731072374748371551571370892192493693155839301019379116502365446814567828104833207118540558778101770808947577491351917028811433486498213810933014396015777931662393386937865692683411339573968671853590529566132868416874244697975283133048023213662824688491792234581869609417824401110207549417040950892592555487475837049607240461877985426318211508863905392515383593515866299758608374438662876211204873224274838772224601775512495502881522580976892121912012158315962767941865725570213392839824306066114812404561038709018509658397613233118645372452509977523063531670707877619790580101772508979426781508436350505431001527748447024934812567590754440385017235094779078231271000710447151663547564472352679978689500095857806804450184655766490555747589365826269760148480895073157432601358048840604035444615681142129319668661470902836495052820402181990228702630079925091754929703700416769282002111857993654487414266396273432553095124828760414946562389280674657986129913090087406307622362349624147473114008488586140474787046739176910839973751290556179557164135892709099519665876034696080914251580159885148538714988652109343637345034770129663222649322534015015022221135927675386765305995978034438043832518379655335669399820815448983707471276069738739648714325508977119330154604561055349738684367409568024014235738946714814611075324724149812658199864253750266917606530393076322133710134796196527974389020065214944781688605180006386020828874156129706311183811451565805987078467394766927422071621299332382667859558467543334990519335825271673214771224487413441419835513324918328423709115325593235572581548965893801776215931879453747433397895160551004626490330576314101535755596096873908800706087356034611418137739967128650672326867391348934340312916034666887227861446932675923370531455013897900004985164778947299680770656709107973532655372908163378564963250953247604809189215656087414080459137742638228337941515547858079285244621221504635718829693110693399872327806336134486564724681602247533053162631068634539190109366197543747994205992733140648383070573738480268835174476333147983513132432219148397935294570219349166442151716733205839734511549416301434171085311997050902344219003725066669453813995693667902765191386580854139952097072780593005370941343770086906128043413191912875020291159753152572061033574942959063941914527907627306421844864567773462897828118772625648781963120643353038264878289947582974151545786000977269126820336122005941537878469719264686812135852542883901311618447044197834085889788033737155821273821654875932444684865042963760028973975207595777279011236462580185450413773587609063451136028910827315193373216534156988418634789568605853681563858656345025906971320331008875817941420720887286785012177518314877527910073661741617061622327777752912400188126329859528925270500924032457601399198134383821619103071065736019633926462482878229898109928492156164564799237447612473340138397019003894759055455898332288421466500242190613303738254500171120392790764726825976179935212236966603960883483386958505133802697691831782774849105324904126883847237589545702361776356521361394390337070119513629043276784548993159752118847955310545723678576705371881283899535312186236205778267016061670960508382391871840279363318001673417857720756389051421698161150484562142273864618182230425076003846809301755535891167072036452011517112541398565343324125346083904990275361304827055329126989275292458177106953339180188009113167789430443868240788148313280569115940682985835491923501658984816080145738383202378932155321950827509835564697016408219555487407683464608704059500150217772781868265341114338812426770866695828432099293060879959243671273252268423179102541236760250121562807522781389571816617064028834881758266630202691056024755563059566841059965124586655499069429375215659264477068789702634281252757168658136130898089835351089711565749983025894558010087642861909298415384151472219072527730400013776920901907766552240277554375121476280689752675906751348586225725646829234216865287960574900058974344041931800786001110005825730771401721885459208440589749991644796337176459852856271476477457319839918815561143255361841766963491564118852655000659541391457510580016455855985226178113065329493667451414898006602413755409536108735366146279446071323285741791073212104116985212169335854668665487908586066677809343891994754930670636281614953083172162799485698847594115457772745735655588405254891147429827192868419947743234988622280439767441653653464128331241479290224536619151584043285750967702360953668350002356422691483670481010103833036680666404283773134207250791968957746764706131839568565591434938658318386646511162508814141794722067120171017720395105410352546799289658788743061525925974260344252889094270938577859168524370561706116968160426118955166253893087956299920864613949266596726495470185108710982743997807833332203850538662250313080737355296186854978036762890360276325126940865862867473375574371313334248007642869733150484852343040365282279536491784543444298100385919306538556801398460642486649310561101898741635462083345397537344216721771044466706917448429150734163595917902244366648858565305316178988372020716569866132266991391922766788898326904916084607658231204390885597644848214431153321894170707633165588792010513256186640512042982007377950982523955200588062215362165772419396195246610277642625621129056770716881793699268085216053200057195802228034042238793106887803794026409643306797778129302451499720836867068655908129271509855059493510714090214443341669185860026194530552968405446352849259831763820867972107811449860563730799429618342599265541918280447249195735817535378819546980029281893307140152911654116047957473618763627128159457089174183854976203573418600687334158114049723872596406989155760296207041058475985425154150360275357072217645061120997155562736206899223229684752784213179644451123862894573955645416043944528924653593593336916357675766790055252596087167628195038661247432546466422436693607709411781564093290702777829814924738143929308099256127157511725258833811708762819316225352532638866754005670831484125618933475971036715434073749033880606280771385310294867804170419595187488272420203469865290855708884565327054687171256227816818156324247003308572723253520756508227965450593418434880689604893311005106047034325600978328023817936033141153539034778880278007205312580012125995901261235906041728355916972338853554232153896279812946575607423100732192574496581816373962690286878990650042759649176987997201830207370923822538730921949443039745393097485385791984533165187136496600559603358525234349051513872975540696559922356133319522698515493483851665286818287831557186530287217995636223876824030142756403941678609256687597465617709399532054267169646915978337379471046640348697813313995165810927491432376567563542644158931591727736282479219166916380133185905548664302537178933552182507338188183660485792665411613720388301729370255390060336383223435789759435998124179359632944797948374748278635698749484454880117492808300931580056918188077398933113208301408456178199918550617617519660539096427470140317953853137605321250751142859017334176494674029193603922685904725466336503529705500226496550497498103097458013920098768042207859261541313962351103909095077888081144945235298593799303698579639980455016956828169870726084824240491710171862571419888069251398685120497474624141738413747110484464639051999094394924559718559252199840479554806601520665660520017983704145151932952732763100448825621790040135945595826392335096180947558375445752563715561787618189094069229945321192010756097643554889146818785329132919098884041453455859954247139433186413766488924071714254217017407572690402917063273184283665969161578823835904773338547454662294416515277087493350345205708487860062801156214720582837080569583479635598771510492757135881475782304696468365899701992767109170643054156791624961591260896913123490243878083668046664203898273905106643791087193195942792167244594181580180854876620133792144838845834192282763377752985812208130124978712723184562131969748163397177063138373162855722461020708128452905241146457807172909419092869960658782238357642791606546349276331339119531327552559074161054949051313822629387577146491553730177460294348292247510499870720771250005627165962611065038142464398387688823900536330247295421051679915637730545392756993482148076342087043717183640531596433652337710686761227772548706201343143022719173478371040484114494190035110764210664722651753628056551493436617919145367744843188290154123605827765193647427884769261705814696716068864854289020425779222904433020649422405614949959841574771705905162934189489104829214935023824022472419612043707876850416444628375533372575160041076451631393543268962376060796766113226345306488603898108784192031759100394785054622568799449008729019731187737212325467619677627254108432729682884416787654929609273381326659716727800975254339403874710297562514068947102344947341654723225829125589678504995164918657088929913046615510510061327119119625697584883749940831276992566968906517112771878689189804667717011392022779936087976078274822517103382728650241860911841517836625307613044708942075625337336062491784917835455542558159228037327260801886391788827058218609240364341886373221697559531998927085191666504536441665276076905463148278687253078315226969870347232889449884249043124087532844084714889444623748739401091495330152097464092255042018236648825027039715775124662927513006659765797526446756980415231312500162069609430380637433899365163204979337823861797217017131801550163602612473353537457739587383678299017317780174045647307430310004993686010227253023804752008832909540711445542988760870695792068110911415828359120497420372666632947345899549470575440014563078647339180096810999521863648666099451973027073774424574804321945186310972435302738679099935267511010767971647722310115584214803808179505369616342971142722624827882778170804942463815124920728256967638774532572217937412880512240732592454212857368386769703857477631377001671268323121400808287641185334196940677998754144325313391472294934931382347234414597726945798001925750241436736929791226255889634061973694778617486311168669045329132350104137249062330220837592396710731496484403889648067922808925123985220131904417747419914202899771265545696991190624902886688164058999768536159316449801685028886770379039697110594346546786801046828991410609419501467052745407063190306915902064926519857608910352512376642324643063351991869418354031816535184797518687078146256631722115442422527891305928940429323034382595683968456924159716835008513372264641299274122098885587452699109977722460406983719346490141190585866981788601719952056999981292114389873714187361821714007893616518545097298998455018172486051051109179749903690611626296786362817329863383141619517533137415612845729273680838013557389764359782568588136503561045443653625577440412335647077210380477138132465494774709028328402713981740053486410734474126786462156507950382048992683240139864105647247000682918632054024090983530625934058875127237777994689326176925668281713627196311013785415146064612698008706720847040670649195258180374955076068003262331997733408897988902184442666435897530652228161271669847037991390110587798790405472481359834828245747047246351615355002195771523117301456000036351423939503329345816491786658265559976929498341195016988037952949563415756603595293786010977713264499680997162219931266413027456928189497371382554836759281478356461043621497017762544280071568637970718288328149938312883922254976283193993253136245616603728055895377778129393568968624577285561931284514857874535681027616615231760314501906505094250009012595074138940691394220277014873890358156933871850597432211356461247332779486280793693591775011546762243034834338090169289851048778101414967861229601248756942346627278095023695496401140104994414457874288101703816281513137590528268741071682549200252489606705689729830501861865568344380569496607372609065422536170142081687284847415738042691175604920494912133718327263776993878553638998850733833346440948827634120108062290855161549809311237622931572705273175148076877951074845050553652138463254102302185813352651716225912024408294765955429460920291919657277112079017816486328670725524725106915959091316715212654992190166523655903016324898497272237238764873365097753439440801301214612807872711070392223726979059552323450536038014342681491426850131975983673603888431350431101849301210764811555674265584111092041957308550110868821216534105310503703009324514667919888788651139101160015960555224477500241303567445858018087251228603164644159337936892623729172355607465093122621783701259525523715026417900758507065435199759759533834757677718954207308409986206734257768759142863125355746810455444235908996454022603116136596546764232551534678982633698959407724744910343238788229722219757813913476958725325860704035306478599706071224802572633367865778942873183645487683190669664745935982310002181695728805149685438480477484231406046629773965023269016888807863062575044428670136870423802968010401078298970154376424002045065518049195687836140866178920127318065391620089210614731101204882219499999924445221172719898003694278633744039727390632419660153879021174114109797195626391265156706993911024072022127034248390012175511553256942846118369759994771442665968963833432959620272656207524210525399682391129547908726605358398735282866738338146472751574293769318352414226779154357767498108514788673320878219890783879800535729604585270016017166243894222535551008147846550551161561067019046899268433553159923500053582510442898637114088304228108100267627133318373227030421402389386524480948166969703609395644664923219648540911985465995521015145893088755905251291587034418170822336650663197210137688974730017553851087098644385104128644015690284735396669570491062378526289430594792079395663161398355801359846593104089673059232642489990256870946572421700626524217015560711591225491516788749466882257908071710218878349508776734414644775934673813847767288589543186403909505208137520980359609745293329442515666550042421456806172394038975219494436774009596205202649240709376797877207750165651005517593986921904250635709030669277856930910659150154932337793866296135907606716910093994352437050721118066610167744042091453057773017677188433263536254463679008471047539771006070148879928788442745368439030409556501557558751011646189371431568359720637165194016603319532832113319364845636581747284261397824518465258342879114661811174784032164918602826611902321034339730839040943724456467076766109833043025441198910911984380152301206231464425664451299844665498403955597723511412482343060223162221975131928325440608252060353172941277625834106103794798258015939865113140577080857355609225997358695030692328499738271094587563671510435156826578740411442278751444588782474543537368806135082121249766955182069089872790307864696694932753193314653183574991739156399669666189826461852130699463627648060969656456801668854889994113138605050072571839370752282997397921427196635306180926986126412902802940492611067828603418601256957215605644253604599914090371489977004526711445926820664209030637827726159886017708216944192316430427387034066552122790507234790776987913376588952266828087605751696793076649392804396821954854059528172101838345860289768815538219394036006939446847144024451878350337712746733120204695918509480613524506686807716665985685798578978460137116293024605114160307711040901281141139835885150504670345008111017352613281882050736721010408254516280034661452925449462777607362499496379175376645412961758036481669974124082440926167464597649160315326977746280171791646467363557376990993440228097537982441559879807490291732643168438337805182426691796526186454464390236765751434035235503451071162324879517652139473353646597325045304616902596321980542478492421818632420852603170445449893249678228465548969545667554158268841047359671603822065893000761605642670500139080553605616442424642261658518583427520964156774323281854373266081770342833598224565682318243684523001424284988051065092622045842977246107654045012091442861639636322090843365050909170131296022288733340461453081089954183180094485531614067929124018180029759235662928080596488483321620251983311509595704782219315664312188872775510093734284507862207922457383342290507513937203792497303774790733259379658142950374561931239246343037473880828512352556259566691365511891369090410036591247813587326136327492635255560808940409403518981229421100676508594170963108111740327939743797647475954994985519494469799890835220838328280218873862560835908312276709656964897109541496428082512483074689754384046549460823434261988053806124711801230305464553215121437789248829692504968391908550460077634249144984455077776993115770377393914475400703920638669280563318140554167415250921449931610882072900607262435530911129818768426889251477364600933164824464153663376402504412483149344506273272437997151282692839237727902005876823921738587472125899341413318973943432733593235594588550900817102620293080609562666472136980095102476485623393256370389466625738324212495598914310044041328305383268683948343436665778383113439161872654239698911547359220603005550859909505897073044904251869446362588864537955180122600043074086129397171863457803255602086455925209025436671461992295049027126294164958360717123958269798848127617302057685121227589595614080989407997232042994688807514127261991430344179384154165318193275784289861136455127408588895945814163963044514965220587576876926235883138605874903131895685898416356237025722391668267195189579584276139694464108094412353163639318428939260960866000909980262735206721491871377003212296204211683532129163005704444269280912852122981813292423470712585850658257419626907783319550923614151895739847090764921934094005909179243965216437542124357477281648063570851153024314270501039181989961753778587828598539132245571098270979181270725630585612317470151794771365220162284787543850860360879736030995133047711666321658604969315033829538698258053641712598374562589622007804889966153974510582765055084669871488105841280216963039966537696695708648767765615030772921092752367029353707308943564838806360599452453924898467009847988515051762630070004148953308664561332157295456051771973538657476306665472743540277776413053209047577420483140146320110570649893948814925626076882976277915169770747612141941268873146413492814280407309831151710999179637994877171934165525558411598532956681112568337213388138969740076862896279517732460169295596040577019650158816930299950471524218810907623097264081312414287693096220568557261920645250749428478258830470763450586402846578458236476021962408663007317550758306389971458525060436712008389650586431156548200754655344711086204764080305718913862891170086049066252308012018005411007049229711082660815325636040897117785145205238866338603102620091528771526220174116971553822498284901935470399747557751339583456659794281459398029626762307042967746473979871222345181159581327994849584783660211308007112957861109924247571995297375982767130562881703425585354785713235565559165510570322363325301374335091828010249776308509474541507287206750434424427328596571323754850267932372023364176278658189680849244885438710113931794977929326474896707710014705083958130261309294295620435740904112231757390724069443421219732299903247781937530949240663706186542005338400052801012683796159309872281281780360699915313978421799755609376243138236569371379311005498386389723381725816579810566614431383944794929856972546659024387283419544164022480971700375106843595615961809999252049824937398815811452225925189924695917179751036311120976218224735916980900428560298447005749675721476663296640216889118434455903694102658244621399094524259862908110064921883657082813545039487319558431277592053730925269482484845731052278206405073138642464975934689977119837757105083678287752404163231145382581863783067338450685335904772000815826363434933675834781303746839950123287890458398243085715450050437507138553462470991624161662691218031567744134259208871916862589982881446060210806606089765141384966339584059597268974581717276672880984709148323560439613354464608005892621140803670958052494843752413230300030334640325120116313408294337872503513170655635161017143854880520474444075613086672197041043106117955955640587001363908528298354046167556888952849311739699655953425834642014197459621524095994484264441851693151707373904006209481251872137634429725004801267306149246442914735135239025152014094899816865845495749532101285064339960964891613413260041515855165776640330619520491237838389405841362167120187685268666295923943788226652259217179141209203697422212212170783389160882705721183329892853291300547556256620902755582183269853686216184793248865605170404858158436102784224136714248232767062107595944853994251918638647218116373951759237615129686854938890725488477897061273179572579518321638233799920587596863430771885728221880639662434002052424018963027323965052271305474703047495823405182070833963613996490442812039387257384131527122590302518417081456128546005383981548071172771512634411389337881490247372398098272539166719793948305148589049084569643905178632822967714017495590321366478222759738042124221280404043022151672344222378175942327654237708219514223942686740548322974934150727121988650097394680327791762470215502293275506286218381973746549680448529620846669509101192232613529118803632316255753626586630858312472515293306642690081124259643404307083178558451604561188922375880646835114375510815067700856105735574577902450835515433401918422702394374530058753525302456605480811319013951190651322053062511985161467546360083679127316091914983583294310857750488552912867913697484663335039100979238959541826446162479705653362888098628620821060034330041731943703831076470907036837451390651897705776466593325352990809088133134963182442298542528202345122291996167595867430304949101634735867339554945272672215612505494051851712625077937563506092778269050815214211211086067008425075266734389385078035434401881775922088000196339063248196542284707265411711446940130126959610657660429788706272350262109021125160065519624531007940118612212065566082234813731125600289048889078367170171754115130978867777622242642336289512540786660402491164193942382511610352507800795169708326007252068807705517757579378955989933286381877282067931430440156792619358341428586517373955111976332666856683467825915846049836393822503271877514505729306306867692059979079949883038039722550640935339155722970834467462506302055866733805341570090360807781946625669227374200537941098969369093230631624396037894883690464838193435804788969074064110032738541000989040417658107663667992786956508929472627908119828870023196838592282969393458576196082224576142623455740091543533652632145156452728900815913375982934029640266727465971867112245603550369473231918393297647127068880069900472975335986411282606540409386112884508981576725486931001754578199228245202029203132746352986518086309478431673692298983088448068220390788264758884028403302181641661356321324149031997781481187412482663241332567750275101150216721883318913650524273416087202832179516544282395941769312342529024459862894708580356166479652143063950054425671668432324180960653036126152061449703799429978620570682848224943172085451642866550762421544317414433039776089857855463046170867607803261864441796911422153922384896180686335259544174108144509463275690705129153716743096959452818399909258274860762213900994757950678557791897822233080968156534783435489113821426177120475650139780468035282333210772311878810928164618323860396061446292080115446182647117317331040376407823245959775314269701615396491994906570068828929868244482726201332450347439165135402321126004164625310337243956717961706483944917455123752213608277539411917734350006068223840432561925875432267596083911333944195643068903000434006933904957518911822247877909330052427313435816279780501077682208968455996676363024062669879272102438494803138284626857426436132157224979385410217669458482372307460667610519884811042478338911791089805005696138210525692548247966500302209714414622768068055108659043251603301689056587270246342046338192400424238275173180251931425078586414063527476348235092927093615893604988283714038878326980766878881272367634521951260199939527010627398922873342034356194402917643574582685607928368082050728382142391991938964874212587002090540660697880892027155279096519903838058713962823889310576590031837023365586072111538135247722197592656060233468344473076373907781159735156035465541889337621751134357489305539015509731449467750908031090264725152310663549723885534606293346561906890731229504447850807701727382955235412923659342369602243246525442262800592020994481143039471346821124076546086146676858088070680475352313208949502727479117373212084909872026680702308186871070452174408651894591326878802886034544916083469438857404248030227187355058206534472213683269441480817834725115474438366419365038185509720057880553549035698653836049152936620602099362136712951263034678438397722646354710418432419073161014882115917387357903103044278880682096807459439424395621234974083655548546129792142710054392703529346612811174530099280403362644797426397580492042956090707868519071986153363628948544216475344318047582228192247145484056037735973110364849977419393148477407456344787281393577206530885345858570584784499821868670500153543223558627997791646512333446747511843436292746395582223355809289574594749633907053793345306888693493089306116232755649024763006141013105498230735067014061456179123278786934467661989023857998120520286551396991563792494790621051016156337920469265154248195537010434663577830329397249441821220861056912700959313353631198413728477976427017464866885562999847694709961555331862929596954514594108144478357387418369686267786005492330827651556689105967417987147570138663436625789677726510083410981709015103707713723772566534924265340047867209949668057489115971686813419425907915286831436665519389918983227661465616513588915705648523166380116142218961563310433253898005174530724003843372386402549369065904216020008290230791084140974916473906832992060789609550730707323981512576105753397916932415263553969544449560934446144467722051624121625240474299267863711634877686500323617042669531189800746565926165285979045314309246313826306033103046030030938131172150506101540228569579962506059530223124033791499095371889449113253474486486470969785707923573684978242687916197416860681883203724218080446978221297406497497468802956304363411890231887062603554947102611744141254853808139964686782840499682697108720661146935141356122256386211742144990795023667858949325331772121219965627236633240585634558220879376436788382861775267683388787113870120832101162871805653769781427406726048336213303870461791193152520885932702655884651567627867295396592679154747570042189214188482280179283627949092861444830706734969394200799509894012705536960661193760537772596152694962009467658754582003604851274960982648030150483136958277809736442038486570214893399073211548132211209576166682046004663210858487141843845148501688159731520306881488872684230987039915488001563924131203515316617015838055543272697073817449149313619266564154480394873650857104496280649347147265780450978731053929940893136213300107855801695304703067874917654077143257494237943401910211025426772937487944309985745748869549576796547506293826299567532460921930200287051132082648067065399213664908107126694600989621705450799599505738558176591073503472982605722594900923145312686107414493156360686035356665947360240382230098034450183289294942741037398562277558677374132896594774359649351076601928640380884706032968270739465147210253295795425933603000811461429202789729303174117967119746760046916273048029919371862104473478389973673786548991261013651794281537748380534800076739208183871028012459894949969312497485521209452044918392782102199333270396015919359120330134717795532691204498012241043294367376551370330214182873756938082910728175886333197032231056452390572532324406844498977427954900803047729834046291972229869910042918129223465490194886536078015355211264438212764014521864073457432266445791989209066844140862478198882819105476596521778740457147730679195063371159043016779253701046615078939935468948213155362417626591266269383623846856017688768472831694527518993102381314431621378581837454729944098199689118423387626966504901084307434500489749868031143708481846743458258480091030915903744458718354792813147500547680782392985286839033234286051276510316999165978203622793683340428139132277150501086279428411010267538745903182272914358056809814166953712850999512480637640712801474472879343342918078073305789164530403956952224515761556564998496658816746214938975818577266380827128513892753982353259908007585488116006524696316890160085407854645608327858045457572120999531207588327786687922603347688173406728179627059645305650560543450037244439837464097584799936206544753727254317913858267196870592046255721239447530556590447132296495673406689154656016654977926627529607792385911547910691654374746631618378916157029508736766461582234251876772055963540283818565226467472822352545480031907392647442827810457534339652997727464379466277445703451128977896573764077149914914955421141121548258113680983387459399059529110920767431869654247109214563413924402678104728033318692232537544661649805640141480019952839538707505159261255743733454410041556176955770078953505084934649767758991441330555360653200569893642756060627237925556983950615686290518237456408851322680017590363764637619165455148875884481820705494653058919284213942333593261253656012918198141002533634439427689320173158739933666502498562014595135741956586427709109201081309016730094349056785529153191042282988836597738517301676728768382930094512813043844906781840709231716542160695724827299915558183077473120750520420434539901473596317170095306166947434883849317834754804499096627481505941800522780060574703062123385587551143089407352180093835322659412315603592286995687460092492987152906417709170489216597857459162488813329818123524277787676339469063760353721855937997144749654823592584973687906737984544342025396975243473389110589283545204878460416879404245703622244703231183631600479121464391994860118065104666599466586451445920961014747394725805652749125424364161146225499288833508207732119688208216273970333048073230750515795849079694730800358399190976444947323957353653124625553596062360971813503962594253820959137236037668357075477079790263413009814983745765572552632852035445150749036900966305219658724304113219357079883741506113714291554082416480879134648007481906322446563366005080537180868073492392814263341877520321178936555276427564933796829592136187084155779540800724292540663003752098878560799086866021093998185790943311946443423344310993009868760944167496633592728220485273425539317695740404344831789732544569367597588062245426843872184898353645618080006309498872344945965639139389286125332319537636747629448651253885460317121291837632471521766724881161616727006608694843264570780503751891425221865563447983503420706376991438512192419050093668748881254233372486740619333438755676806707950416022795874799284756940806850463503147837371103584626894904549684454277798806074059017672196556269313277251864269063994250554083923363724135213945773327066416918364643548397054310691427109275933605724455352082235681668079968525521705615802084183677344181626751482029425833603602930487379913311526796466484508657769483028017486925158942437243137235624517359490778292720029008171960338002003992525578086455377677562495611737290406903799315049209766074457341377965511814476616831531612717486608995471414648125812230541635312041352718582915746826824799692472581573609984062455259181902887571771546041444498110788909001448536582247792912065212264621523891065504882888564669378868413799272116755316381523084843841259105020348724258907130779363070611833198715447545442664377221771129196589529230573475120110696773762614172128802918644738382936842215705900393788337788958317737356583420384826553147260325563987094211158733451280661756814351110656668565713062196885946039814253071848060017092080639555926649518892611055640657628022585208771723110177550865636499927179380681228323475688881099469490577576827471125464025250751190192369739247312953930808647046525342793058698801259026811115857107096942896358648553767899100967291345735878862609041885971227292313752373392638138741497104807744799112346064524115422451359737700653255013335808569480407682815577999638661196123309756789496114945485174296864682560185335394381649200168922436090779996134196478092622084800572964897783786718743437548043349573566070205138669290386605388848205597450124077070067731081035839228297985721472593775253605090359847502652808646398429337565612549876971828220450258996227302392575370385417874809321529243079120066083559895809041955669673529160565528098300584704916926049865327128942226618559535911688564274154844033167290542519356700846612570503984899111746845803815043958526541106986780203205751418642278989682375998195951584355981478739195286033440046836779047702913950117432970431870482859188389693162902825026230773134223730690368526449782960491267368922335417733389127464004562096591091921021947171207185448159657674163618894611794155544274835549178384538716006684597095822751201778197057538700919862807860876841606525313484106468741047144551802337067519073716144321107936101724021716877510764290691457620325384773766572074593598481061314051622476533637919626736854634929526336153908839596728862035104399231339651777689281953534073429293508215618541206187553792747792794972585121279632539424250546318157593520995842765410345452022553098951457104676329078176205490227142087078456372180243909270777628571263989377223195564944861949666808383552031661870922102662215426784038887898863337975664353671347170708056064814803363487125904561710595749479812725089142139345911516558468896164060274570504187834891602256160795699830467173315376269850609275929617623416313497672269462084738522101864886096863915337316130149209071828101085060043577903945583699539543384095635046433073167702435209058273165731434978171906886322594709257118904189647685033136653790757849653591624842750239463799870615177689624092053665785994729493356595519128008055724748718248183226763749607574468696578189530913713952641234566896086658829091102622462836936594766995723767665500033053528862118478505847981392151831661480199023714815055929333990920461917970393789800108305140512462320266014494835492098435016792918386543269623891553381940314096604593344124538449191114252060631211389228977438177510692602302693454160798301297848755256979299443360419855428113639142905519301233236221714409294410257059908892312828423507933573163426322288164565328541983674700885217589935358959813834948297697929464119568932770605441276966941718145013979246365429536465312213289483081450201252149264558437092984450276823079215559288398119733289381448785506944343280297942733403509537439063785741896857545271014552126573838145883279209451272363231813200743555786630470240878961137239259050582089883131781763130006065509723668316121634862189142345281704088016282499473080577878114735376541585681669821538294075460373625558467278251492752681075809625962189989731919515474980444980238600734685541714849297472212626229032208919319950583550640180924036906175401147453552762386947614480702841178066614669747579969959392639958782874363332139572536421445630186956129551807345672505317413470793183923434877697924452969500657674579422254852695355887325486857575459111680744042758856515813370373742332386615015079919671824224288933758005775051017839968328315292419970150038990601401045032921154503015744381139713580154477773721402761036818375311843803277901191959805423690138007544872374381690290804251983431148873720739718065764565436148157655896738137972542651849826978086004410797103216878337192900103430376698820005929803334232040604982334071241656235163000987680880435717709248722984260894990345441111276168170468973113103305112278475498456682822634619249982458211041066786647587138112632481374978430707957322703273921951404312623089249141067242501203671633010441306171902841490294077136615061134454420825692561277604796343855917363451384037179769820075367590027632198867020089450847375460813503089305541355859670493380770536802830959359395141283955017443079238122467302028013252104338044622817418312081611271772268325857923925300978525331504026022481387284554674603168976367168919065217928132425524043312399174833179668545953938239672019566404796795826474142052763518905880777736283606045857127045876065570117789297898403627522949289213845988669908262361575618666949433919309972152427901924953989922955292967035748996441188398854337937272095445560072947816152201431628634515139662492816311904438622596168590194720574072184371673814091282370624447554654125343534931043691335332873392818388873359242748079781304369624766272972316349358804582865885110857775491371822566799018685326884052230495302956146392488581689036961682783092441147547683793512766841961683656410643106744002229856510079400939687519073484558166814895600371270516682399140596332930475278020376143438318578152234115357428283462599464540709628423486396265597643075633154974480554611459025546991197270739966619869273625898782465433067316014553379940048803014934596302759237218599993724667339047864917580537815313928912811179647305180509672056735932071512500396071705732135178739638571548036925827408508088641836987789083250642422474050066497103485426090070801783099960011743476607999411223145072671133143817076788576805388878520546820348246803323222935795089456666394982930318292543064385181742950705762553453105349943655485761667801470954256552216065879714559447487257647041762492259901830507822577212551700605212598288251869840939978234671938322555193457895549629792720517384403094653218835921872021791129814762255770662567753431219136078202763010941689801905035866128436810828673496129980370242704394787515439886994149572514932541594791519643843101982761420805329345000942008825997562410780846795077145161378092809664191993614782093841086278334182975842747411629794883102064601865769791773795333408811493684854230192504798302216378915707773237959579771623112281400709166118444813153281737457784821593885193192924265384029245933952662959916890528189714623540640909457883348158715193507498668115764090969472334587890120453323406238550100996980083431174850058365494889919402882468653068700650855497706978864812989228517184496902112009440852256118345188165320874083252041471287875068940357422389357265644499203998021166593186824343375260071670909773877858558560977926878616644434563240985478261678802099146663669630060379089043923821081170196026875685218025551111156213593694383281300493321215922933236272578499287527741311988251346885007930184477714527458476629674122198161549137956034095257872667895346677774377023498454206730549883887934352473706575489201046839770332245173547703900356290568466417941830514865942380805936982428733851307218059743552733383106496924512912481841638357957483552048789411069121176869525656174430548298362262446412455860326034719654375195161274693379553064531271599138403943501383829994079736683130677694039840164135426285551578244888494400177918136434417313225359956886593379888406764427727212651379696770194285587931505501985663561445443937631598691321836412627978954727907858117881922230213908203432598259113110600891110738177763218377898003687591406220032747221227502134291010652379612423267921951363413542141490454572669069064250186536440082662503519358173328325762543152713779712040695914589952664158078235763154216188633000650381946297073406188993533653469371015314627078406314968572578225784776140361507285904309829995905131922624269224294280349620478424995735568320380626359935399847309939693614497008217485842964329149219167130770641404895998301834389390939617111939296460732976868576764167660223221626235235359316918976619107953353326040845915485384842861585378336085647380859867837949745799615581936315098036626392155177711935022219984192782559627167110904712428911834141772847754203679074824289348475156543016625137608874105934292147829969680870164598542004629382837843769099034661391061088000572682444071741782868895835711722148052603967377159135653667804280858537119859431517832151892966571740174510108594993236120696639504974321536243495320314888615185737295505749423247641148102567490398735121843659791673073940333522780773670929925504626144457004582513307494611282609999278768665156526196925084831807623534871321265177956746345507146204564649921971662284420100010777332392537506554380802120905141257857948159709203933731543210867434096518907806897122673131100131891427031250276352388286662166305835717524154068661861585186933483175031446276195292206440123273228638276295077491522460986305561414371487045135474276304938662875868165226149014302463869907420859376458084706193048595467856709337580489887006818914727544607644197554792264062191273530211144851746781977499539620611680361144791426912956180737193447037670217636905669177537140801741318253458621964245890531589982163916468794836034959235998726376972200580526629717854046340405688644413245030830934943921295458839800570277736515159352809633877585769692259647919780705246950797472726035193946240946475930629908507120589723595151145948164072668022743220719460225935673012732296221821687405708575322012357810203522471721248287382490055680342080215062945486943874207992239359263605441511329815900756586748533084092015609242158576927460932215293236846185129541827736662585241459477427767601951267569448198132902872463008735443181923240179353702468995210184485547442982419528302866707054041326283879655000143931445162063051746307703043817002805934315975263516602362091283835718685847053738375796754195395310859713112084165469388731521227152040529009945323125189324592998533724052113679153822848685869346649415202807490266498343846395750150099628747044319046665143238351282540620571874584538844756458196078919755617388998642478438626794883513328137858738057142941330244279660759753347187753853380090887873234463318874115991015784216429346939942485452283681147417422283355549328274279190687019337466964315777301424431153337543154914955212215454028909744653748157427774721628646576212514012941504440834912193077764332481879623368881736069001645628752228112813403077448382632753813653484408547695450394132883277396790605402554113385363157318552113926087272438877738130447322132838243260951818122345324603462835747086634169921491615653591820294661906209979724476799456115174449221838232787244412816724162900574694507454992637058197047310859116322953688783397459660517246390022073075055215386262820081809849495505366263536220458278101827492441756201310782400900096708549238451362709892538831455489615472720508791346289919416042131438283033018475706764637071101699549100727516365033582886777340191180352570268346431274938732209130305424375322394638394864878093615451551215602363347642948721260391768917536071166080794870231986701349424023493244559658968083672357602018166597223133659934463097527746267444032846330123527253097588973112331487598377249250013422039274614396351224417295551927586360058230679386277551529167353295043609651208259272798087896243415437772895664370782673532494270443112777986272758753849453811189181125041278837238610795537670792237497295711438278324934221676916138593111959565985891767871992514352799021832303767988377170446991369903947006402558061992917256989454101353525123705768849435516393937887850116422459057799855352056675124729467570023752624010110553751173043552645010146240099608299991309975963476796571932062802666489629558268976919362267647254415951041837318051922403888571487375272431366967462840459277517896833336269012392280565977297858091052784223176967146562464280497332880781149367042539984274809729482797913960980592226456541788031002580225839580670937776493039197801627668564293949370809881145735397504782216847654752263328850528663687170403639736135949551110283950175534163269491424663368205988820118148472048468043835071012559722396236712569145512131139494766722458808069892541024027722424818920603010153141440833431207235087226051715138599739701114774356119765305013697137929793537852502590298672349397562590354765361310149767823254132819414326199215596396353428891779464181718348708966529720175313804095805445046851117007127299677327839414375330131362592269012880317499883283949760057258288285842842660657615127416234970182760672164768322492189975824255338293888265385979648755086548659112754580529791804044124317809949108762242650679676608877828824771866531738898136556847962386766281544537222892822298187947517062798790505193872602675407487028445423489441751695404292950005838887709215213203871166032532194594023781568632673496233525637354698545258236423899294829954353028056943059448933163169034581852314194974014178779832529259739515223978381183088803578278767689007919254090337972037744903005811958636517917574072140765419337227955102451276827681968060415644291671400940283587484742944485124182859277656228520808991184263768301228092535068795627872157041195734761451367789230113244691876890820764959665774843565248727475503323894365816065740087650643439929587705059093597971087137995523640361652151847114380556935644630713833707823598913056738024090518456994995782897718527455242919947471684819646209359020153122821086389228631090833108673703762665301442395295532851784706420201398489243507053566755803048562954744125093496142444995859968112999593311882472293161531679145345419020315181946773264197291265030650221302079084804938177774698659684799201309343537422007560904325119997138534072246173362156207073350697099232255890253083211408670355667708807784421307705284921963014765280262005323160120175107004258990248774101898989047955390701938046637499090761506477860620031880947761403131959253017456616687974017621251627491545505104883824131290381064968328077547815887414255962680164217974200563077000721638228793141472488572019700050182380757514838847816369179713352087528166048161641870514620696506335863363732120306165673889830627013945643341943503636717089206354684321363013504705382779646792405333552176891745665698638861531486423694919613487722879067576222360784052483702617050450034103346251779884200367010812918139555087652117146178598235637925161543079931518874826124415606557899498302172863847300618489121403224968302426731390409472050848443935293958811976762713066339850719973023389477963891162363554529967071061159285133043089002467665689291839640518802645393314136637129614794222523097345290418835122776164056024231058915826775840047504370797971890753975472203267504281400529243824939995556854570808279622758127873360161507239103233001941948514948249781828542917801158343192390472424968892594121827176387064684100523052924259382086983784429492870770486246275107562110974412456880001911621544464937611965441147068036558252840336164164888395450852832305133990673901404945055308408249481116679738457399539039778925136698669718187611103488940314477184759934827212074026449793411401349645491762215898840488742047085692883078818367087268011443050258061784883825886645465340280897332856204722127719616823731804814870002024239982517264068605152351358464949689602540788570125325122395721874055341888030992197662234321162471924798440577068121504287716499462529938577408239650707279014341594503829042044047235157452883999841964034797296698628089144580817617882160224937141781640017025042666050694744743753469145640559036844015170023120046169677930905605194629784264401971361813318434558380240912838986264124610595960404884587563357946568128726504411885985325627573772632055577301280264339346280062193871985000705065733992995160699661310664646690108418003599398975328182334671904864512567258615230635039409890219502402895005269608485946530323289694967210826641614952975248063391856433054872735094113348283434011227853001477213752807876522443198551021661294588258659732141436404052402108428711519948605995227681963372200468399093364368233616269398722908923392986531211864451167824992016091911044808880934367810176961760322769914669908963867228557338648335299614209604911021834790067790020066728768076124477513446840783787631306938467021059554490745862987520842995881748773803166956294200315435852134615370128218420533208478664825009941917262175022414514371519326267410313494817936149960451791104656882827272598781342020648206630823273148723015707038309273366665470208113393970337776493715968374220289012457930005501935920837106440901597904706440974756858126722378409665396294851816132517399209273185975532558688365062774718729559784251359587973814869354025629758969236600907399064022522141682052761099950529281239512177531038529138661148776237814057021760665355636239257566189028349399739858426747060382782941779296754602321062343706506775817083932649022596292061436926041918590433527879096040045827909178512588227761536844090409832386613710133629561369056540809496504808667847434099757410562681049026227852135550668883615327146588703336170543801719685159433594675762891697783563716544890025445679892034670147320292233677720087940873473834691760436071463163734116854246964272492357367564674290281166482440078093819253068144546959092455894764608303671263125230941036015523541189753799547712834660121856179771384210385811832185949762928677650736368902389855965909232752464977907023672922858663519898511622786617989663254422526798810281430833374602104895568270158656881266962189739329287805816969984283790274298781685228473661308898851945257971801506040448513129740387448475757782117118553469750775815106347750255163157861575811323179785403974940476823225208859937186662546954670398127215868670541978982844521777250572195281615937164249679920772324062997440089996240483788592006342615784071092651719718257856803392073112885008570821210326171870923459921613342899975084848380507577427088927505017120405543243746718977940940860389364267594222325519015473269182995680386456772100859485767613034897023810038719155453845497804739661195248721687772188805673117141823928290561360069728614904904501110847722900158615228762601063271446323573789419414838460794238433696695642517219744767196972940555599528071591833996501710687274470474009152532610143196229520067448781084585786322373539041251884785984198695444428200409283480909389168914733568265976070492819004221451819916843636027663191492142616078484906780544112191929674144180698039562022349639116854963359808220300175728324516811078963001229118586531157039467738886825226549196916077622308131911879752360360112296582449053470984696511359260647752813852684115209070763196049162126880497523844952158133286022942995600303096915896833259423361846076432364661970366949622067275650832156893593833697516470148669044890785154199476930929600807060931759328792849010689159475220161930469835562042172763108313744207116233460006880891705233566129643911710525398490064557436506663237678449339330949761214726959621926539890985996658916409620509645023979127383822083415998328874618140949362787042474451439628573868142346445790693340473353742223584734687815020974671501982415728722672150817880355815444793496160950392402078221858420960387595881708523253843215545562593697764262872093989353360622225439379225873283234459544318828786143386375819444653772880671348860151128914416821843935193520367502947494978433681609039279312829469123992768625773923635227145175651122201252213045813470684497415103014213630995275232411786270036760018283893279876083802687611671136088414922209463497284607093969750873051309514532619193998479727737012694943374683478109118245548507609637173632449591675730506504994884097362802541802797845397659806144589032809956493000279772569211594360471253459436547276469547273316518614152566525300472719032694748145165563000425271755439910663682973894745546537289121309742130186193467225517792764805776329211069544514343600365400118411383516050639628580915917981169706068968628883618779355611714455568037799809601036675958971625551425545659118825412707287299496212791250385348156860885602258322007648478642549518544165597163989810132987924355649472358213418575328865707915341763084093796297022956706894801716815436104582405909304121349074694986422530820285391671585673281045748492019051568671363967654994940268294635491080308198303537851091150315827138974156739738336500460423252702264572309996233615131979265953258943055920635632256876084863632645935139762752403463723223538685436140037068348468374168355924289555879411583233354706774781086578554250360387091315713551612816751758050435255976762769659869379806411582296959361975896143147454132643547107311101118147172129299696691914418646829305691825035851002766895744462715931906684638607979245616834547516074540118688756727993967155894608374022844154183369182717298862164883714852901254808323560440925718460605996319508979642560322389075693412950337009090405695344307977298584901736134599318986404511058945579113774559260313382212673549919177146104318366520220810201181266029394638896585234712800840511800813302587231008107394845332931014812255905299920112815455195413437475717303233911627836438261072435096459617388471852853914365641340840239843074717891748723978538320486507061643665541658199821915348648762716727628759046018049377419654920641128245362369039102242976961649915233936002824854774481339969130485182976892433552534412933435934877181679219842065612916246155870700185182383836065678755657649103762747808534041742522373508407990102631206265632165883727404436310993357609302654228626522672267780101911304787987597950649710306641396837522759485593791758825651247864730568261687675672260920510124190335793376092917611790291162785861474514337466726777644000511322514815623532416890167979057958370260010761466701069807598430659548793234195749344184401869086737678612064093850570798286883005738631778056347969575259596754405577295583321792018914359084565955121205675493715128003939696368243454876051225162273841879640824869366139583278988598784831950908641114625258560092495358790152304596877156345205808708414805905251862520880528623663582414980661049747822815625610898873431853930631384252150342462080962629673308264901000804183852456749047244787046899989593815775375540003333744800932070289876411621920993291319754148133081108343679946701514108669937069172299325923905799474448385242067897586068070829658968478613339670350534210550565623945089667377831891866122141626685443120069358721509746068018547761737847688358511027550490251781970026944002039158939816795350709968788274779488999573861821327079761002372440094278653146493254004169670832198580848149467395047553444060674250880291980293509904743728543150577195625933446079742217813421663892049344232239215831364852793020412916734514832719284273210087292744512226251468310091288563459314796865481878021957022426593514343552254276824585058667483513654914284504112382763359256071004685670776175092044162852231946844694436041648000024154622362308596536622282992603727127984182484885704420849552206300252993029808847535709348596101259061355009893413172824506742020130292158529723344660115343869825070508052022232255114400533125985139100454543801403903200491860229863390525817802661880029874146063494419677050161484492153241191034427324321207319794852289871394141956844887339137618084048403794720059656815607102152650860339978791582915540836896037113316738306059016314464467917416820096724837110805153091147348913193974314523591948375582653762736566676092292375364919486071036217410923538358322815592630859760205140452441876201030088721117947671229563175445087511596187459156820762609810942769639032080103875174447874597514111635447226655941016152667922939913872840999750404754910877579887641923991980556981474666129170779150999477113045690775892714796700446197045924479682991282281548753690913443028043590317663529004592350845859592083802441100981565877698712093969916288759312674039044071823001203640786319221605055995340547362806954709375759052760919295935540374166656235987198929684738885279106962341317396022150354756998330151465284921070057734241602682126303052199500137833256779080190840102090702902570504313031726648540912168081002760515723286179078158214976332023866508347641344263736039698881905765860777117028998525908355453965854125482143058571342883697059215281120927071630274694442856298239295867423580721829966419086620303002820863342671883419942733697480587475575629903562334707256806654584394748426748305167295275209485757314553760289040083527172146290378619846480206983543925699748871368237485063011489087336525718981067496831811751665487636448351724218511013093845829095308677896773146176694888275488777152140486759600766674610739899129185788416201503034432201007898718067268499312285600981830205597476201366707988172169086419223213840957970618439362482616158115365385673643502487205592402141031969138813173830257971483713878350804063536354363929493202057726393154238573959616977594542741132377524701648123840420111537306590638761923418910241856180217650136731996762996174278163079652074678272972717512904136068125097056276796386315920449662239719626320430405857270655753761090177074853556448258022672305211372088294254742543420141796642058716503193103837247484175468694017667015032240586695910183482514158801688377273670441854907243492173043018759103789353317817240441934921862708739763503553482215414530137476718453913634711887348565649140958481700223009406765026912266047634461377724937263491738489113876958628841909715568879376880287987576615870507949026914171756825636280038524955051170542582199287970181648092799751589734028518051151415257275825194264558531117121901918898745984521818737874212771381956976394048031693181150536439104002879012746172471024113929236629653411588488714669439473309603131683528946880425055512341666932058199312269876128255205468381269223504756579021441458917587659168142317935216099695190262247546368928282441976718640436902066627735588818731887061057345553738129307110917464357614707969152468974475836776910311391324228307040057142806865030206398042496612468145944752973603395916699694226727392774854880645987889691304147645404055605685212648577813548082801284801199465200979106320092338446493293663781311471850380522642553676590127523617508204710785063266422654434923429830880655226032938366592976598644862972073603404620147197857204091048054692744981756728369684526647793900492493918015635117275595608171374190169132794923534846448142402600774730716792579843924879935377819382140868080432381234269361724426797273559007881473361433579970035200015489347797145284365681609248740874315220047156678005848900078502905441242650080326268568533534458960597813476040560397375075800700431095130953228813345323203521712960526077489488911125141496094243809704609664019888191315267955623998723003609984982572322887621839385852242057956462895877283649282577545796580883307818013170118053699896091961485778736000029549083564042841861276067423847534827585149713339254936539730471852370860202632152359959114287661817561717421248949468097371668324054361474713558947853260378552083394370030404033701324507952721010162427560675353357872783740730090316256432814002328379364994133442373448208868083648028897752738924129968354712262352559982248685952450876539468499788089352497793396656278936489122581270738565087372851666149231300393935425901780440725332584103033328189631600979130756368458278260279880819029866040144865414934632965227161159049559822382377770270958656320659879522255644208256405370741081302360239515385060076477119551919320432444328180784211120714370452342237505995028331141151446647127412137183081444631483599093340404921390818184265879453147787252498240010537712496302247887721751457453959785198268694329329956436592887633452814803628247333210386180050039725707664948916484270377265890322246085826676505854058285138762095127375186536911161476523072470237695977068817369725663193993395831939364471541533819326512470166291733174986485837977349512467029167965147241601294050614527660634614562237492437536887869595576710598123281183611449920412796671963267342983999919630381108515665976829474917972458902841631892331938913806200172646424931406281489966634957571187472137035267540704001276162388488338580515755849278498716366267311273722399371506023365094440259995701434755217618460228683111867082458781822563865619334411098288763958340579298164720991253602837683805232999815065571529201888356176211922574832433260842228494709201025897230272785114917929313401548606599827517613544791080607558935533150417384613605832688891333390314239740845170990136204556502554875221419325620569731458155303687473112902073537344656762708365694473395758321245587226383088342767504880372013835842002918361065188191257856435908870673081751050058938923200149232294581733531140774030693270432314389630666916127008565182374454554792441221616789254942137285284526258999111556068665670478443351653827455683069431348818405697463355665371911729758276331743785234541861338100357141248943892280759777937336367708511110810406876531624051397398775610920893494702787813542033088499172993797170444627069460725249182071278773924078133513204337372290657781258575994637122629943156022913240215984021065481761476674181322192783615861824170265543514908878763401749054181236574600838383091973595650325218987237442770406684497248393399947119605324767166992277254318167047160663445425051923050293247819152584400800793879686177274430620043177482295333527440391090575281284017891913611533107056004898607681412467845500983607196297769913027929849336471408603408341795907221511635079566325738240374178829100806117706086878773274051986329414638504709805213794690168904181264397660182011709420183876905393937185977956964038166044801573858647496370421177429435780900483047800170667967587063967455830754669703931480788216748921384958098715505205850403328391056015409723906360972190966994308676672681942587934110876862947194499457802178143943763557766528879605034448557574033833945443716993033851811593941403438487247135747209549026978081841895772554554749555320658430938263066894955728375701755672900802682497623635380265673849118518743829710577855051942519213043991109643192221617939527177229516591498512206410278843196655711739922869774866034397354529995011591210447490418596061327509394781704233229864821578654813446415039293807562658988604201157908929837963797613832435221305555102468359964025928547825393455371247638592110068252211456821793759259488480260265866081740314580031478776415611073535969552310139895854680730541380520530313695596885309930225217508347633376964060123379793706744474190288986519370738658859782567746254037869776438313237463926788654347011510182132248595366409300870883921432475856503618450949591272161625383392694527280548648489085476762091914077565183854849827883899875942175819523475854914503634335324642343216812710206857339692532083247629651859249906892378494234493392741558227295678088069838286765766787103095807196155297068622638422340610114325531659480383930281150035886361656842669334198485241751557825040029670232707165287772951185461525804230901452624830990857001803316253612933199004412872541707087627000490454149074134172934815331793875306707911822264866939498421799725622277197101605066302485399051712754753011070335819177303093743328259096482088092424213541642919598413831241715190879481475236606805727466336133157184123226453291178920223552029077221169282250478317163705487925497892774282798975394648826621950173083999480234288765508906713606360680517569380750364087256822360778919395960163100202969924671320103023804354823397912247171919600780050871912701446990293331793902630792003329537573399351158762258446221714089345550379027955715797834824981013910875257120030449379265214575864772907097222471842756970830238202058210615910491363880417501496141979800570723825751310501122410725954426569421024692982160004919738109566471970037541962007212202669509249438234210868171509495134854970261852538985763501213191042872262857012952000486485779409213171379610784773153128674696838808490417901928262132290575726794756340515533641116472973932518129846985654657192240509194688279456909865395668265598447897831406351457683573739837130162657562327592731595117998883604430603536988043659717642063778688901353892687720622513570388623926099001897274753054118842231268754251595926078106879918099907124191824869538961115057807935310868126012251618595044413614925150137160820245114686473773619387285948703818552565673725117963711155831390959215330945626227388416044158885733767750642216485881792019259233043639367618725805848888613949017998460165649543506293731701919544446057090358396243439406073843456000050307520865057953285368660835531863838224374962079484606356597075116860531691596006129664766141740837441599938201650662593799510727444885603917164811362449753706243352462455725201807339462248490930679930781001722567134204456048166812146820975739251188325109871168799771443246318095035495961163127661244305639586885019931520061001924002687231563284695212511877178633264113348654479799188397962756817486695057330836920630179117337617661582279997422607425749228455026909503134535179070225218357155000127523985942358674602530668022935061699955889786512418939147819183161811365132402267214759125748741894205496311080035591400192444378836619960685594491565903847098701023818409649624275336379039219184676326311148826141171650170770714780407655527323040942313367724285121199946443609496810759055287940821894856690806469457172758666875017844233367013717733928888906414177057225679507018203366591043897768742750488083424701735763969112978967200437947896357199541706702303735783085631596430380190594126175971818395010421424247200684266881742090123150314423593837502373289953195536714126579270756765313053291993653183603317280291567314605956881437357918052409115636397943230776854430201134863068634079206122957186581481903023867711711018613245765464314441534897683921459704965868898067463870047634691250608630425764168125650785737319092352900540516438058454766931938911319875755309566639980781315329245629232006909801972609096901708859925784685588508970753240286338738426183254467384394917479849336647253824282984771762943744374829181267308824470098350552961741593861151025747019768279647531932378835763345469486292132828847496316701585411638760728843056883195458701288408211080734952702684254124297183306776403608800198061337333976964432910220712350684410863114095196608375436142359589623787979463045451075038824112280736497024310884749637436339666668915141318920724556713298002365360540766683579190223276754102981140760642339838982666175744238438358121024743368343785277281288018611239613091825237191910652490898708765411614097717501028872854861804574075559249360464278537393057855777610018874492421359883192545760229357012205405127629948358638574438813676722356861605340488212174485406832398189051356850495180580593227260386238704600051734188308727119769108960334087213459443252377097067816566392852392797517149730102602206629201075431420882740057015249966725067808394730119353084459398133728564529844737699893926652520807267035474460253296534071210918560593483696531878521816555130707493800112852347369225292405218128757553336384040314140486154466113125165836076259729315857157676447549066659718974149504269397345200229888543093647174516429896376412993704113058709410559143175001402237001087616294666826911404191369342026993195814614688005412928785093875957334305808537253217380594513438720564219408330580031805276393059133281685117742745244648015772889987313703744095648794408859389623064297265680292479875850020856705119090001869443691703035190935657972166781297515488818405611531941410442099274452847062427966111252911149886592853518256785839448464297684392055836735486035568966485954606362282119624536017216068543761389589472894273009027779271844758671664085689308389308953337929817605798444791965662960513443200490898503827227985746330319502887311359910027983207695294283924241056270133552706395849773785258714837086709748822529953293216607866639730355485441553868055585446792666566712857081062175163723440561871338507300586120226890779091308258029634934077602475345254954397284263496943232511556991943752266361722310358239391441139248296705692492535488265843416879526306590901856568742825476568044756622074938983721769001882168677384838936850812983967940810412794193683214645161168766236280466131403734361967705061927987364195088540660259444493318541545948081719158691165637131535905115776718144264696241166872260424867050793234392020151149933758881144156291262930192591606875398829640873594775648548495614631138603661043110901768422500100450814014625620603027667888068511570603811251123442451697905026264278823046316927645086615519949690414897901135305297288793538144229685761971623368270031351071441675971199804212651985316765059055573839029281511683465583004922751683503591129585252137399331652732353341634715433529243217013525197131832124461143781224675879725615151207674195940856055014436417491282622876353263371088229271808593715160066343032240792882241511840096805609161733513491392434131447067108312209375402760609109381386890439952679223451157683154588327803811712605316071318823168732864048739804684480083829266441983937516585039416194526742146241027929500422110770410550675219188964368745418106782394833562099728316301426956264083794589693835077077993895112904350210687225778007406482595148170207529538055289092036500192598340315006081527299796033695306834199274598934147934194805324320897263016432681785448652225734816493466626635912921620203000117867240167532358667862223189205980732852760248021054571957290862721203780081838387872113843489565788744897025418871852501001444013734821440053825732394587228658863366135859359191321799480258683515341852070142705887779248867862341294933026581721283035763777207304761146572267114488663405612593439682298900226363767653904552080024692779212587937719328596170583161151844250224480199330050635743387749987264923263117903765634259154483035554152147638529743708737174059467215952845873634558349642969042257365338964226553248110859116822940775824849528893398372210077115017089489023780758486477145483569403472112308469983515367970786354402095437819174761043517670656362782183517704169176259172081270929104305681429911748768363339201832802178785283496037691916642265020004610729784904290762986331212946277391730015517023988719883565985138215873037484583015673768591542480225836654113621586933042091437300988735910201989923616477580338455802864340363562785225454911295671230309081994319775108529929357547616522135993406399274229461792701867889649823478355740724153777873059515736582213893692753173505321938444908255795747512265642124599479948445755168486763065671642405953322269681320712698532410545155793826629918442379887379334225772764297562573409350291091934870596568147119877862273839994111240646764936554524434789618439282452637195509472802570323328902472551888978902720836525909751457277976755324999457782406045064652080983331158534653249379052806374668247826115371489141977310631665787851976423650578654852992282666122812299024384689509698014567148870344667491626288463463512343363190864769056251275236208965937572349986346440692619608138726577608558224906745176464791721421063852571072906663379131905993124429059768544392265263844141507055566247738819890958973508907342832010094487838740488404012048386712438730452324957071983423941506579890786825087114924419304229470134968488578456056102104765123442036464674844065544672321110164763509233259657929297788597178979185609363462510116392025303351533373524344796874178720068792048190857790705645035822822200128729552896844325796618459905117214278989802699826228896226502219763803449028242364061410519537224198195532082534329448356260085815564637606244421473508916843637345354831961469033506001555448366357842163335629812360999799372315432335593912484967514859662762207934187909343300765931581092016247197442477542492783703523806982546856309403174313782131346864934720110933296324978659615923932104398493973269902800188707670031287308465193579039473584984150062953752441829515397901109663098542834703344132412450010480597267080323114373909111764193791070520810741777746603490650769874493671802623979362629644620115369684401785200531193262731881846879289469800550935068442268180893443028351266019540526205048220515066715252768555123027728143628135233847697169216706126286485408152226366472782953977824766724529610380584770810301630107997674474199145542176136778443221360673608648117068731601508670934361692171902315768688103927362520922609259367557514051813952534601836366544914850469852460827854278207271859602993381116090366293175190052972713946854902384464745709769584178110542619166714329876268677853336015641955958515419201180540554603719101198556320099600383186094386067240903198841973685112505528429287131754103687092801534419822301839856507515096775485308753323581203657674176415739365448182721003063718123205874991104866782055235137319066295891584701784137694700293565102173270012688633626843257179358379487285834156731117372851323906936078368622193962747582543966221410479872524923185443111611804792489876798945246227596875345289852719240619753114767136436351478920336654749653666102094986878956728129707614162580032973914830143962051466150736128795020506430327663673526974171111315523654083166900689929608900577166169485906290847040752168177372104562977262613261166782286670169936192364505278939975615046664325175186544438857559321823184630857542021111442917604957316250585105766302365633561192329021988363730764977354576178754342401246660159506207481967170106676210326285405888880180630030274938564573017160079756103069202312133601510346037524216331599510410594286011681857154257626060532134487694834930649891508661427437137368335906938692855865371278747619339880674918292061554409849842090279450091763381154849973810768376248834242404245218204069855359909049830653697157574987229231664890412483698529975601665878911719826452086995279777486814837664050407299685024430442362457135499745167293502371698413949084604368472839676374964941639534653841653399175622823850862354771919441929703640758010512062629751572800990274388724797810905259037365591518574063149099692194128988737350159473495079929233691700389306172417020880123061938084251160586724145188006833354717882595921800409132605547138468077049444626767507778638519491907514521093196729571262425386205804134573736259809347423621692440804499798709994706429612685849113877473509562204640041021070710019750293738471526132896977453182662877226579015951917364674439329424845100324866306238554951951074788775673810854620205862224938231951910292663808078356345358275405964367250942229831729987777526134904235428177374131063586791798594860160047394701825547114339388683051583991276756431476861180324364907496199859669310160540573137464206763129796584306411531562038311891823687134194171542926261740952513311285543567987469151722380003949621262402119485234142573426968876214807962408262507101762803768228591171434845326570351997977067614566848897031744843219213129421078914402059624720441721475478990504162513438030324687522573293586751572983628130659602662118240475877812446334625079363834480558260882956338247449957928416430340144986927144488821981313262700242352518889019175020609123228308415774749388433952275058003132636937414635492640842719530890749981232543610479446289810550809010647162926700755603367217451273321866008735817131835111737846373617736212548981112706228858757907557810688158645269566721890713787869279670318631131468308348140721934131843308884772413641929864362833877268256052677067683390930068932469047656269310359195979704943545628271779252858453407741937017789258409240957552277052233031304920994856031169270560308010756354923955627803339541380771253111879363697791289561262056399023319304541327239023179516654328456276389372909659119024202452462646450520266858437472813084505461065552373657979355663044876055211601722589177324379187495695567144480485062986399200709266918334299225927647525650748250065595672345204179731442643536006806439654349898992922449107829470954983554299263210567807769101607621903149926891196438623257518517599130254249891551958465285195398739958478373038720697081626781436784024103112551684252742964758470106013761668163295704983984883840027704655549239540782303949470165524070010046871270177662378251650032071712062024192853442289122332517177042365080304057893625097904051169969260410476642858667870223527882382101559935368517530207373396672098464914920082971633987104971678023088022103588249925542057330980428917976780572640747381527831062243499021040865350941862371422740858056274950875673417965265317770559720209570782683878982112609241718256750612403084873980317435080357122180574279009068745581644085603212073225334436436189839957287302349713720111006817064296340246758467018143314877962381027720304575708119748098279674485340619535516601912664655440951315588156269826766869575127930239465740362213545150275342957757670533503693784027275671968634567120464835128379515533173279456541077438948477892116560445046401406668190988936072363677970488046850808034409940966829701451957689170103510161367231503644721488289928008708913795605668362616889541843669881609481375379522557357923514373329153353388640016544579741656981629375017808770352338281189072502528943587998550408144520177933210286938693635211819614030798457003415455621886666254167594324040348488861238078996566256613548825190517708414887535762468104608911054839816162124751300864326746261873913670775390134779408580091615523867037755766684239730810866658097976068851836718614472123942393667307313680346086021237282178639188924517713507086513797329409143067525465404016241783036877367289984681201329734528681083607353143556447676735211203720685619583117477763237779597279383011794832290157113342518498336416279348267935933972638655009376517802097868628887639194795927284297890196826206680752112981339464958463571589336372004813955447170117860322890722379512960743287936677862825149034042361634804125869205286749809023425232207869983154641036099261802697113149819891863102257925071161007866658600454964797645497955158332131823727529975105311148049532477157023328552269238999160663927590651663929104241204368534427293453175647375049688704855789977290860235225767564139048299875894742852292764557981562619168574155407410054157363063991659895662916893531538376957741314027975434010092425269558913726208607527806843614419354359813006347670090548171400642635308147806299989838939834203386949391831286274607351357187382094033080152700050703807005029260651021666582538139787353232572826309647518888962450633899478253078430347906999702262207939286370471113248929949602472143377980424451471084560297592785073076356998175548676799985313952422673607576957252884803954241025465492709792489550621347910745472017607220607088207476531290542757524049441082636256106395410263011812001260001853953056072495473292237558966212152708782511635671900676878902739345609268687563278215996311097269476981924139844905924937096729595156179836980355411520986295792992526914469537375440046382939871642322712079030178211894666741635138557416680406867698104919554864907435126891999375378605701736126937350015209258465514319830680349708403085894258927030509280695746585302469992712560648140096932618347659313931301902592555264028960279669033516426111363702607971537435619533733877636207521696580747484340087244960705358901651928910807323168699740854273052158288520883246314684801693556214386683348605704861576262507617194678313025797869272025239574089329072643604893337520895838001790570012640375182507654899592176000610262049123053740561399167786536655597464402675142250566993038495827947553534938198835010721234549308578096940066119136975006078293134204232989861987224584686661031413233785891874559973386429097412847795179852850244535588643085568093172625712797144102566301718915897904493302706774417660523994712093068544575575357177038828824562227387291755518943463098456643895250544884443284501156402373133869884215116850171810460200197595779446004121417212749875699840305988946292744839060397539430571644148854483448672009704801114238683343044967783834009154000464355112359446002653222155026266988341206802929422291333099298878676666175861097568498330600729800927404935451340214239156024892487434516345309757485234809978710129037430411926767070149319292418529907145506799760655176538244919795687634458634393762012541189092896562716929782232523975669121415210360579485722242579944608231108488587145295486749659937208729099467434350799216097523160288385697623875114268474529204815854590359705710877945332167509314713116577179533157673551193855566885836102849100080710448201477738956536544964977685759169643687539089834332691016625292506763904948621544225586147131826194741363775012914837851289922849449089560078869993222751374736806682093987119514895354315115488261522421497560734468021721776746304919807929873418603120815542621812477767036606713844936803865533995279955766839572238919990531186505614610114949115715421960600978680328612495109496733624429812893654785030373883374699404043311770631998604422842805479169093560357183980265185544365312424060348516393128748679190761741650121601679708471825132574216006159647948063677834391970457757422632073938473644451692800073795508881180017630653869229859372026469240816331211104572348565846560074745142369542959768655567788137922819845572045998287508111893426513744435134360924468332351727933659621588608713449938938334297511878878778465377067828437161322238217142711983859569696341813676564212475126961067938000802534688665581337403689673697727819450162142004806195377269641914376975611360584052112056422419106019071683791068869471319229909975113330713623712659032479448010531490120278305773307196702399638928591161996710146019427211152816291436242487743951677567834514803689193145973274584680230769655209973395008096738609494938125830790430505862146754582396984720136795868480897190025583071669037410335253477422337846725423635544580975193299329643415605495500282134436131971634398843554663475878798483760251775515593794623850266134972374235135655072291221398592728931647785510806193123971218958194650676103706691459466118867251823642911660235871917893123768971364755933578717010089793705442484628449739508563241477305229103606040303837521026112302074873588467811569276512344293323855335463911648839511910024076963969460031551500772434286332512964010090973540818240850009208589536348663676314796684366285592856772479060410134689709515793696000048584380458200853778124447224507618453762649834357941539389809768591407937652482767550147761078230659665875140370246042019874655933267476542436073681189087686000037980937094944101210997231360321838670925297280816483339198821403313942164392266058277629094677621981867434460551957371241967550711242616896314293183995764334558137842566587385089813427094322858249159734256681773835140145021749513828658536383148477481328683383562079692584853713719445525222410627021450789224930603706854830128410162852167080540073348900339764557795584784041130134714016988241777028764524962914284498508865414562777175509523112968997971276065305757163387357424369626125374629176296973627618028414538384502350258506009485801718121670343849366584864102293303083381312848050723965712730166665334430264942774382945496046647242032228187784417422491924130754443402488386606061606074379031367263080774577845250999068084780728929614471278132762538748198051518248360569994243950429404558348789191381620397802119241686655338743107377749485544666836131854848773964776124861883467410896195687274949240450163691882828269555744953839968647814389004522651054028086177051121808074993070917509780759748371879055128417640348446098798990722690279588061085644320919763398303265959175818266487513046176948605926568630660102627348944310173789543466630429526058334736693459843420905870300939711821571631199972488753623427013421748275095317754144530184374219079507788993738323909578722046979155171413866392604936757802909811578978393695160302384791257114908287595081685045786905295516138225275791878934722917419317267933279296201645015147908724492914816939064972721913971214859778690038596818258459333162744433665641072435060777853881514879829655154373665718098010996737359082629129402805636197906102633094559688951597846411852532690546707276074729260038100918343913675890287545923300148166930529536652333337925688421041450786428706431018366810357012443987535277997587246261426693696442122122863058707691329848211206343103570446135015908537683724865643991063312508839819431085649202800727920152599026715423468701679544093750296580248521672257307458038065487657167385038408757962083943693701536900622575256851918781576890013148624543628239807332601546096150490317874618614388602955667290235376838502547476134505000261882681128840315441425768042674690308148187137222070521234373951566209926398099920519586758550914900815347800476211857907013464293446719172974049307352589845651617586483275584633173094970092546018751187882516815593414134715502478006722562857599903644279116501715406552753264947318603146335234616770823020967881668690782343575059311009803758953530593324086955624461928698129676160314958942437660899579002515759784966423459766244818070342425944346596982377972341743741902450968375195757588192590443308076054554952360838425090894496979366683069370641233304969258144425281870923757441719704508513031950867613779063197360548559749851180736624323859652993019079254847648697539691998712133344675615869471363774222303929029967488947619690494442817959147429941232443234775134693687803311972568131978110533473079916680975924081238399146666940595417800228441647589334498507916852663993744309232673703632506678988295558472015038923515984024162814505562666943324165404195312774281573912864607862585022223443184139188531140153612705341498224171636405067073322237162369380089020443707745554876052738906468744351732670455201852889534394114117186058564152520414455446585128534873091298879782950482317897378173272246547081365774858225073276425780437058960287521108909089555311623072547499319707496089441810357662045593531189526664914537362463291270945388982148181182201997539824948701135154162165808467880647292979186159770208179368857933556407478477052133237103925626563774806593368470535364241114624388365164102126918535998589401825600876775633987784657249954815886789501273616169893483711052245778129112814454556246128093332767954451068184551540680173661538513838668817762371320459895992577740105547614642160172437122672406857602759963119481360305798205305717977690558088939719573285388623689422905976555439488711829150668731665191376409488959957840266268462671642603751861432094003012376555766692130087986457865873642898271977947461982480026462064045441089413001527733799228597292544210858133362296942031979494963365398051244794633412365440199860645030170933858006523588589268085336520683442779016918952110765025877757208290351153719447820163280083982623560683890942598343730124386144133583786332246050032108367417678473906660573501761745125307110615122895750102719355852906654348567910049091867385770078511833248093031966998849484778481353282423290042383067871643674435473191653748744484812849785495089582827589606923920603884434363742021056807118722827416361479603998347431533393558340843852668187468702422107310812871788661725256002720265167188978691275287759591090229814247593137777205261824361594530124596140850514084645390798754138056369438392064168315836437188667351502312085557042725723318847364021966389987211135247680945582665574476085171220539581667102355991217293113924509277936872132868646246334839807498564885096892934653958953533356710641152581442298844721091842648196163728634971308928136483994743014972617625953575077155236224662499758822638545090091634872438292280275213449830687172442020162932357959235798853068986630082965175001549505954108144263093609177694647058298581027501355753836948088884029483087845630891787660309959824799018307809686248702271993193339626784190488870112767555139555829608352254585807321249563557341975867515731767943841056948926619403349984692411562171728761091770878477586796969260185092271588610137663972480475556375931024622814256437020706409727124932074590618501777390752636248217997795177321506175985812322760245859395827099011825739022928719640040242392771413647248972481670825563203129060347674310405693859519447722935802041409303410685379431925506906251196806442214070433581790293890231115974172828460696587300600466935846155226235090429593749615690313991552387424415022634393546313425776477177886221016204544302770744704766365140114224504812905001740336605603416192296032181290085110266966043028508206748310401657920594219587208168915805850190378255996971624079055023922320278854604579761398531694795171357653512295740679854514077568988712448801809310062310103675902452202666422940025904653866979887194979054699603062148951718130388053606050414360708322766586524023302806279508970143345891813758839702973906973102299874871580052143089653735412860823999722914428689193524465212232200507033239892195679760122314388588240807144243898226287824790720953553049471715740649718188720778206328543540266635638314950631542364132069202000475541354391206323269106955640477129054376937459043042404918261857134402785746528058247760977625501524265375613838235300792441355011311173260594297747608174028677000737523362300474837431003339252297135726939834534351662591527620144705165221741465793733487695089077814372965103361562563575411135151369713002902059619241937095246025231876497229864591395547571479477456004478497472124085969302385309455378748770744270061854473360395923800880317466654159789172903089244429369388677165824338892211802447997357516549530451208440661793828999304753725578609730095133693549139769938401865783097462869895355341108759870345798071823952497669847953939030377423338887660525413806994914693979927112047340156447810559780165642214536874204062560334479442323148343181183828191755325613217426048543060530444758195379672596261992800349303742668600478512237339384429792198475889538513403763359796282530031581448783669111803581816206454791190421696841534032153805902109732056549226606487456376604330084553352231549740749298376888163614262259454911933797492408449513368377018761502396404299414912852805320883051905917345859208297831060691927165644724599111091119018655178045586203503034599633674433015253422474238530953164002328799418842537948306767337084672899598050238870600567491283844396753376598798897142268693303126211523075741675637183955350848585358184415405654011885434406407191792070601943254093260029396447483030904934725985936572192665699610856975940777949854651036262574964373870838231602685047309018903750512563948983917002296307884323727115730479402301961094412376209917802110303052545947709227153781490438055959811753551728118263579879253325535105524080052044540091932855652715029690810222753002135919389496206555685398133787604779013882458068612226679068632663907815618905121630150258368690086921753693057623666441653974693538254560841629356707270400110110647857744642364303419387709823701950027148352989439008049298253824146063956779143532170137735270682184370902645426302379769941212390946350338784968465870113793723090643058529258584324635399540414210195620619702346967892785648711905466678954562435304373169142261332651206227813634124430548380164514754606193244646927295931263302173908455883448149330896220418377885853420521530683849741872670157780475453040781823170783996598461439948632773359629100809404814783823993195818066051330826479007107123500788733785673741933377805838378828651458101611980125952678447862674919131692062233729895980679659411384049833285326884585677374550846796905579168720408900582516915448206541489583376677191914222672489468126453307621729151105055363762476589983960833084727823565544592646533827547630230877529711040860812233919287316711553621442072703877141626314840290150234432681265124397365133132335109341445395799894140041841530686772812670494136822787378958921070002400845334540606599688380722381532211426036968586887582266314936903674846159257042320609345909731040345101807444990276679053450242544601892221049056262444965611816297893240594713434701431446080402318260904517991956627302812650675438662296102117961614292714020641980755217896138185536017918217710406607147887210329097291359027703547010660441355087574130544876183275381613780407761968522544862251240904338665603470501557059430388143796297883414898975510956524106921721503906215393429379704273491170135979359962221440676977411987885937079220702712244677239161952535186335045474862170043709066983148149024405421040773897493679076326252364027337175997899165312566142595952250110752266067431353863841397201960003502860301434357682246322349395131770368699400237335919159134410223192311596302474061838990010229242656417488241521063540592138767807434576722445107376223639266722292863327313089277680836845576817984028972445586111810514555466075695546733748858610949969166460773547234434750410918954989458436609260680142569485763428601753177237974522880476823571671851749783860490282642388304962811626915590796757591477474198845511334652582668369957568278457963001332617146126021633105944042443003847542642361150326707401929624165941252888218129163002555200792713310984374629646732024514859521790359554709452755605965552924096743542134456924244144199964295149333023421936052832383080953046406260076731759892758083254565454772913984927516793305459408600539238766759122811409472324407393395116390722760097032747373528912024067457826626235863703206969880867362550213689125148958590932114331301798204346063276160029540232378495410536609390987775025143462753876458432057386455029549126833781114744357226317653820385862195540644009843616724753986436297660288356944013742853406038629238514057437013718102121964100790646687967442062833054085869868002579551821406212642095573598391643889919841831870445212653237984089922185145460557154459801878666873257351804885920340051023131708148573424230678849474640467534186836032902951832132032492339640416516402255811658709721592386585169634946877266708375002119781455537880003904253259255112255019698040575111392885063104540628667973850177287127780942978133039225234005162036516143266719248187883325265535399756368770111643836431264996473911042981550538277078266791293420309403131236067810571460527608931282351578509298793217198347047871328975285574343561478464576715361075444305636664415750355616971668939237844345645191919008858458254647890028185936734713030971616158965116739143387830051115806008539847503333542465920626959473326984839625370541059699800129589521069307706974083119823609703600143817278348134767907996360213001117342266900652193533515848247741559708264287708799012081608800083024436727528560045331307864344064828446038383301239258279939330633038028147003551397211321351269769150504527564032483435072824550498032615335767380901749797255494561077455043487160831588745767607097026749525378908521564467863096579973299185736988319000874967666095812909631223598427611031926899633744794972631641981948026193072350517528599230520842049198052862007851509717831771088636877424146585193360569197134133689051304502313594586100664586694926113839418665091208452920037960875444920146324563554823394579335268413216287489452731972224045157028048452125845237804400793727348801625452179296740900901699483608750662854314796497951269893772249253283915120509445860369365409121823872092536680792578170677094639542578034627232244040652150884779212572590658793134392399445159386248650480843002224091258128846599324111944916994601848923381934956800984112442698939271496727002542682595303783616684840117917972057301537432050456365019319386674482480689356526993332315502758622399789924877122433744290114501839934783243516061328422022907750392559489233728496174969280565148563575804581013052571079434504827337622080777798150932260475356138267344234263934255874677986936741119551920687831347432761961391831784581557293145292779705432902104433552735717540052861515047488611389222269977061620380327923451502262448552438960708785907110285666120408297463574288018098253816947514425325669746061349605248651066045967387392963940811337162731148247508792910398493094511254943443553945129509381956765530338185760771230020775141939333065882260945651827292735518879752877125626423349829974042993922559945513822710912176355391947747073717892813450285648786408709142508018977744058895475244322365531285400925541526368855440096554038362276592250291458118347263717357328473089652641906292281411696356723028837281817044364030295647695050537200903190993495353330841686510682369409788994984291443125166794360828587646579349238070510297372373383299704056215160628206134245613962254682246109315392951780332092921756675187252111209667194462942744887074839911259016401916309583127611826718321218372079548956433356404059805972046766984919101816804050504447772972129771732178010253587093770539877871792604884048951289510643442260776455133254614291590817050991024469853209474920661123077553501753311968895926208770852914383705912482778058607583052484670589484136047618142837720948771039902176335294842006428668341936830415741350196525083703904229424005159731770928318904767827022673464107013756432723573306474053580928732975383562256691780956497355379115318677645676612906561597547434128957120792277522275456054095987713260887937953400862236077659246934062566755403446599832899017180818056375571155031533389550779294679513875439401972724494576681209435901070879824613914978116554206683972083854884444853026308793236980447598043819657341181808694426370632346648741927629445627465747093672889737977583257806320046447610501617327326356162401824602700722532336141684969890803549748675639439370318230172672842259153554079371418249394946908286208391964709202567711881935310450439505603879719506784195611931535725098185036087789741831689374683079583480063204254025112468988823640064096978658837751382818053292676245223360310197022247338831806124150853132665189413705160055289125916843382435225135665084513502994992276064529869352502083634647505864170434427701665096252048434810122957497868112247786690352626894104102231865732476228288408867382156530655797669162322036672982543965747274551097734667628691331156069682184407495346369332628742653953060744394149434439122172268818981696018770259107549401324150567051007868997301636067471900570653060873197800425676205069982702911524181358834725164041847215551472156450182291262417786429052964728691188221974919378623778809848978805756710340543125453735689960611609851686540404713086098924250511150057593383942378425087242445488879586361641716497685034703277283800894426875461175548548429865441178479804973509745286238924653817056550763715751286334850214417573011226492560938758095545987576622296514279900486140624715272491721043752892077507960842296407072959388107607581220494860522935496116660376093956562072746004874836575136201746904561259539776445069901161335989740626831880977451074346811802985691848782130429948293705073620540280391157641640365286124100707846638300873963055563551337365317466855201785615093452617139185577722550807054024621300755714615446958726937828053391596722235570583973080187418840998153145894415588699784505967297837561201160817350755068836268873992381803398291651201718310451114311896141767737073160562085549237656289589854095676173734303206156083894437301885286236895505939617019611330583738752382894372951468284823849476536213028908674431920703531726072495072516924719943649005066226728000299377998137272159332296547329833757021786138711120389704743015019567600283090292424350500580790678678785548714369231203125116973985437756454574000513977650631271906034341973179308391654746164328331074376230259572195022673399405668730527571535219440574782604678364791796659646378029001940535558592279287729304130915376657029781212335376628148863748286482559546950250645354090777214701679113132351522367718786792726267394374828209578726185694161712332408656382640241111053670176706197679451384918652617010165952061482822180910218121549599892882980327175621639399025780453030242712291929084112620874334718707682625042858215871755609371320600941901099297136770743754709257787560445438907832283775007173226475342292701518939020227140306693010377417408580684169135487600536405633792583582820783965859188510536803818655693682721468411626417350889630256367095051185921887296887199323172783080604848430073745088014602215645437852524095657417173987135269838046006787906523993211624567268508742837622838123653458214814269477106367607025137627331841521474485080414327834013827688763283610849336953466345904664603900381357012939678662905135396956690045908517421634592941650636100565462274861472258048073859930183824623177424132049523659392344027053410126821938594760832304047237105414731048583627574527039277202849385179249049217568646822912580419061817407583344347129822593483281242967169909440305057232036374031964665012133690496487863370296010839411076060870052849428713689655082264864911182560364237157459585931561848015874462084494657256242312367677556927916989661237566088388966800310487843966913595047616248670821217907273198008289961920265308937242945066996257322232146867184851770792724309449636116896516012833466408969608891445393325449836182332845911767825120959057587660549572970943723408058109185421948964805065196909124146219858566580991441864729718221917543436599184379787502619558838819206576484187680445769274317243250451601751936633755008479022247550174934074578984713171585274422002402816480535774022356251792799366846303921340406870775294024487811798460063903377931022867470572000755366366368182124834188409983766287609648175174410014095013198482787181195583352593862403158292914887863180684143892947287145965007096844523412019864598318911369639819782132147114740717155820991844995465364787711052172925435534310841735702849677151866088126448352955535824107887406540522295874696074702107475667959573112630972830310160155182517723145249237749839719870143837357324336567874643751204764390710179952671079543275096522483236688237613788333930706694540332668105553562310856468921850034668723881494935655572316071871165437487726880558769135218683359697234338908614554607890829146794118048240867068600469765881112527687797458780306787535317319013520495533271627256662759412342415741310079889129196250618909731316602710185822225321999758355526937046729364228711240713851272789428112425629723662022442292393685558817885203667958679908054394566398162735450424365262381013376148814575149592065389741548822898231667631725154950984346891973661958440125466619335531025355719374939046718707651159301405828567090461914122299425602128390637461641058266823154290956408041393926023045861985994368833836646500349218808686377547616555635481985237593944012364633299759708508712780706342673551266390877312572339038133040508777405239542929717948895443492081150516149900689390694424972729178944903853978848724269877621607854470492957947624471256932111808652780666059205178013790037814353874315802719349818928451067064941390825653469473226540148400471767175079727139285066991364822980738606997063216463689274964929036594092117492420121725964101629812340427966565793214104573061370148367321380313967880709861585590858260520282161672257584546352968397988444974987113710269599265572933893311052427209294493894587616837536119147890098946347488438472774063518112386987061238895690467555572847868410879450614965864234859439871322639590852073766999744841705414220044663798154144771807595417749729387492180423785263575410140724864849197202296795422653008418461038630299721233267020902226139662069507921889097184042440800852108097278428495563335338757191254368052306534803799753051120991237109283924742954520463929273160132625389579455344917619586973900107296497891529757550578718023381992923154829818660117982865983443133794205244223349170936908515370611066650280027277589390847730156735196041264588168462374979659007637957058509627151263125790225961766555823150786711375069945543454652823729141391641614753557283962742052412148184765822126888987460957599963779172730844365160644134232109954425580519223687346682483626674416642659528971338915826800095634870240679701814360424684259037388555343825817995166559831082018626560141591367981725175455900919585404793029381721669685840210300206340199217813890816363425844222936554940963603110613770004215831061030165637935563609565986072274582530797235314879313035665967699487415996735704934090931645713907159357555759031599786521097119177965895671762173689992770560715939405862242576554629094636201419435693335520086882211295833602107275374579428294510497020010793979962721133278630366081517622734858949560084974179374224131781758555708125337875750517345220832829433330880425717367782766327440481478788836719083118550447881153412151091156068389832874919842548129965909708742529467584907911022385066005628912429124912569545866595005647972423540931638467787152664309298060285788757534297552751886914831003423458238725548254928867578405041913429853655007011247350674484267605639204061830485943193529258914403973301649558436570630249142225523606495427600644426525022778878443265577611990651934854801862758109497472685723449926672058787840578072846923986210897502032332932493439809941077194036091951582508299284166221946854066640455737371606720201705688715020460275235608654562104012839007345799688122640891503851249687103583865787165968082329545335875797525451106252507068346440807424445337510098721334217770739859549000698885307036361084996531480908775632449442791855227546291736818080559774270684100018365231400874247059569145985516887863105708934596105435339554283136779623062022888490404084770849499386728815598754647466480415055840558718560360164820101491120138316569370338779167602583029320142191230192122595280414784280710056575149599632919398319473410095447922502589648014206414014030343608130921378776673232457748240527265751504797924383024062141611762566269370918018221718699113603247441685345029331842922032099219848836361252763812285175979714209966260921736839643783080729791500152007086206017853070412047612650129373456682577469703245298976470657230378900033289086495251633799728771234183019142520350972322862837707204069026562863623815397508566517636780786577591868760879175138164026299126506060481158844040094591905988383088833105368183958157122882527798825055314217577205776088263260195747941284550948149738562000384793710036091578903674888224805632752203021423182975135700663384839718440322789973129999722737307913316577894216402606008451584431725309808493037430162945204955547453409772320397945359018212109138697817999069385204629152427711268854089532669965418227938656554572581378895049903883848477322390567985445870712290833901860573894114168890366184109781522743215382921840243846630953368230551341446649189024044698292339402324146431492271404379188373693945658012614331906350724376915454313693882865427650295877235537560216984105115097692288666834683285004765990531195728788539031769800179491610377897328606939202329116504433549772761110716082873233098289160359814385745366698703329776949480316904280016875370583984689331451888193948450916817584951451315865944456498513457499766743741169463733726962523217031987877899327395384586802003387395192644128709552623661184723225623473052099142792561616898603232937321872789198220266142013137069599874622239467283830538342772520837570176431282180475458624128444690102462875224975105969002955774964754099393366396165199350959229579138663782885410167100449251661033997382506420762516508758589992037365259874558766878097975063130187805504540031046773933480504096131746635733333595860061056078423451909186596864096129183546369536746089224703400664144148917482233818231926515356691314254498382409684439673353118720828908294514040210949610735915146844148662151092494137498462360275219722650267382918159850109660317504806461910220153932656597364373154707063606893928537579794695095653779187866541968057734513945063263451755674143922882830541250952953656566677232659896976193102572268974699982695857603691369302726033861789869640414028100682348111528131646501573261180700362910712676395591751297794837931822171548578072246174620128575258415090023330580909314061114078911163113143144699729771529292464613218893830387541340224205440711178995339190504968210287656640695881250663245056780458885134217065604752599330514595985581589192190175021233045972007079162350968998241268221914986183725257517217422253492862358585675229706861797736745516765336942418354547335200234425506921041466294965287516929272717093732622748502266388463225292383651332907867015874312788557579140974073469564001044236070753497875693234023883604762080230423790460470767210894814805048517819259406965100745480917116821842092036243557111878799080320982877652887292186985269173272302512438225085528592006705695863222208007083531895766000678156986235335188348316119885148606033176769989880793104064070379897744695533958526490989860932461962954403410824533627413440058111389237904555195758251718662506656609656982336838093628415322246872545661073830575837250256260905609246480967054061280212953925131288809364118169115267721739462317632332085261243503796614714523825648202733069116045427565190562016274706958034735430678081377205421924489072440475824574388554948225927969327432086962116634004876056350911357247707341437025867317885257439217903891863764432685846994804576245975081477528722576097284999955181962572909694493502393865019165151968581433259567076535548174253048473626791988441241983070659243968312135991929240026819601175824139473960860364701567103598903100362228985184560088960541424309067860780909159264463982788783692269382813619895127123951194254678086948679346219260688402616160335616792960846281920782182069439882083957161928774048876034884806900868614665531135695233926375741602662962010324568712081161296287512057766986455121968022901826463223618213186243901006774280287860294768151441608473241635640851506337636832462386443886836815737808097242289232032918691264791460924688575376800911216922351444249697908378995659810878029398573977690294470117667087889235113175753608233494680000407679307067831025073377271945207256556423520420987866656940427087166426693876348149998066802785888725084391074875841291552180846110892719022056303284768264796192424025507970592177539589081143874469012360777472262393190443449541260480060649678019014468778002168610324410763505093647910752691405486169001384764115423377326369308783290709037432835137871276715094299446906898867897719133906107648885570122693232070779496308556124046112343340032647517572511993994832777694926645856875903077128723464500212658966353915009560355373317642032458702799582345413771979795834524386668267397940552733492146861368098494746483907251436420044630822750803886814763729545910258978425390122311915509529245477571765029114670539501391378496540268487224619111384030519764673196950184458790866982071863143162187493436946863514809179579809614059415313462294689870085142251716636462473404741830976404967871606483138331064887496767794500751330301988079214049497028959573218211147669314972802033363182499920000776030714519934898751775892651071360988881180742192180356828319569500530944269549959527104208607617672611790532455665288970351286500257577146241410371013050319043275116478946292770985029510415349840867714306767424196481703332201707313892712234828924124797668557389688042660653477550879018470258337073941493264103697945479533657107656747738772386255060150677373926770132101375039658783865817251835555688718044371848614448554683421833028277294040206628760794445725457859959096091763498311314848922496019872282326019719234697910260790358817039110665703671815010047935720895263224835976838571300493895978647110316665209439881044163384550896936059350677659668289982212138359780133170149257745952006133157980199727509489967548752466697070716450797877725010093991273642629789165059298951742197850012560464768516860447875775057170959916831620295979547063015476245785541716335555077253847688390525705525303396908678810548170883514345016304735121949430075384974909129077485090349776064907380659816298358555916051612819094371048896181100231405180689780021466255868128262999234078810910897433659429841073008071294900492150029332670692804161878568741318607045743009332053803574788769914672686291616686694511429406633182671288765517628571118486450579327519392000036322723963276504495143628170717423861349106620059909379348728834808821788138540382398203726100771148685867501610479051480820697388776444040669702820429142886874918925162610015970985304930147031359776587563610513692019706975157306136842951710276318770259675869374532286296223593526847285266851638773923228095965922578264114686741255448341611364129682902288530871953405657906377598085505347767584213966807458253323459658296318289267977450946593447581770856286092109789082574615130098713255802843942862454527859288490176157834395356819089720628076332294179220918538943950827067250559930844739181155236637287635518623685785927603754573785337317486619090425031563837016356449823765672868406855138095446167101149665002902621921623238828148346485347004898988762442422290521125614085712199253154137265376930329541531503775517993949247359105924305503180682095576618189549777764060464795646025703904317645161746720707640849941544794836791762537173336063450392979110626857424136735377984564942883234530551593790098528092748685813424615204598977662930951257728289315797061189606917589740881566064697645254125076748405256602099187186662437238977220712541133409880657301121175195118706317758744952070582056749083596186320860545008223256105054491673657660413053598817494042729720550541053647993331640797666534220163708488020182561900753103847374744810948814004490748735085444440707749156193669613173257150031319073494499109761925792843797097041726343688014804867995348916096725748503028542862941586917271379473777737765140634659613944055878642179755347643350168585445142945432802960837171782358903680187771179152704521700102617291160921146710050747906107146834601296646940108847978387359418473294973456692690904711022935757886845298104929598455200077737355916401584635205474420618976911706601874705878065131410901018758580568793633505855624707437007096306944839784924158796145696081351465689819813788667252883376545610445394574749615487358558189519954172669665321077636340609455629009368298559946815133631381448008936577680986661547595564667308247630246538328566372764259467644075281122703165990371029362488166202218084167903610989910703311416329360702517876121823238295846177931129425799648348077658047182280156094025529513566493832384203504212776145545652043958773154328485706628924830749632374984993631250635795079402010280038660150002195917791005563239995736332787568901207070306285830130828041705211898181537672682824943544634172095158661138017448291483670002924132926218132975113624574706561349661512539734477311871450817378762155994800927383771071084992148843434326845188223282211392538704861660253312382178068022482793027977339750663930784141978611337038142350984706723763830561970994652460550288361822257432360706317687514297909155594748473662034137659612186005638253584272820436848343148986965557431370502096974724093262588963809097664762903783801453009550615670062319002883398471629262549217428803652215098079439945996441554910493283063591341951167457428495294891984070401638373995353897594834209645496635900351722509922352746177258205717159209493741803326455989665717240651113182924280921525415951225106206066670430046964126517393148442528652208342595260475230895853976729748578672571235142630062626140123640733798165865002112567666897759686887795290160249219805705960716434010467398772303274469778408883658027139348571933730167638562283039269423527526041437611656773496178519680964049719302996960104599777904704585466510181469365219423984846292320661598888525474210658917114479533965602973360285285715067982357480398019019316643255224107698076192013178338900234255613256678846965457486417761259294490172513487583862836110531789138415067990914322270784863159814375332810030085848764759288271175735741468889809682460135286348447492634782555420096759079142528993633359140189983022446709652016197080616733026364646566756729219796701696783515186446655714577956581166043518307489584117171320250266615066704928106827926852731361342392247113158103982449057472354653457485261188656276240611450865108311996018088198296163715983960099276033861231495944500541180427297224030028806261947188666426081627214010431197372778077265177873659892573366267366420705439226360417858884513791404616085596036113248739217186591437883615338176580077396857675987953006600411340201726925132862171406779958881949197288807052179908448456038804221773562814104226613188917916844953128368802549731367508866915295396170854834197058015654858069448003258433247983733899629080649740915263142544448556816778978364524202268706515412378954928517900437024197787495728011068006125905252332289766645844514835190253847756555588328477272364738687185698061328345867799428465338518611639786622660755044659300827657658656372411939462930760423479870136617783879547823325383228457209314570199365419097557523302248075507257348090311916767507911337853423931112034474519133176591154178290673323042371253826230377783482726714691460639343909868401678661623628671994298677209125453616323336915852540912956858184364214224654910837894451964519371516353102534848217694024518748217645642888634815939701407751733577782922280898989620438807569958408747137277994665529492575350982205492161271021905568901054941428102969230753442355898336093124956375746636196599514177427911639515757983365643945031086532001312670879972755708523823421375150415579897014769830527356745716147506608789590458121953736549078278664466739026498747032581141195475626634738613283517501730955306118671168004783346619121723400127681729528678631637602698626370235465240609517618568700795159377778544522972823570239432382583339362578199128667340359814429124958113792209138479693663081518457070866005743762500488734270307418519447627971340166190234002544874416456624695474331554309597644100714007224587163091490681120620219213014213742097778822034164967283650645161383250658213058493657140424106279602890760403820924930635928912225723582481824567097643510731953163440133407942928706944141242862497753858755383512320234168291800799906051068732325673066897413865283127105027619096500758605552454987510493553102103190328623139620333055544181892816812073247395415817671258806783145786327969455162315519391201694958043896690144586693567713798060852462057411463484181673812727206511172959205582840431102457871365422225712451788781368861260525314023672238612142599791359942111915458772258949820981095059311644613222563638306619016292628459062406642176048933283826181482216414127292614406196849235688654825518538478018443545729658737406908577527478459600369948298509170198247504291649712835716515781596301304070338298550641478062299174397723165375209358395701694674848461458965060291366285929178753576324777169001248823295706719777782729416274075810682448874126023792652425525594736815628660264281931348739880568682526538306839370944668010060275193206815679349569412398378188883830588359336826582216498279505876601817650509660688680041145139338444959239121850076848215735568403218260111315893926200362821771356313617675806922060750434900199587051880517813474688832059426576785789174533060544630911891557997346661427077417648162846416653286245388132186586845636443737182716382484942067830612856379750044697302718394671487400450829481044482388981008773469088910297046358695494020795746406267388035834999998652352314520347833189101931531261458798959958733183152370625691817150559075460662192851599021549932685878196976421741689746110656624540041284193884728895167164009403089187819754901595858298597246832720025363794993151187771954183973018287901353861414089699650591063764569981829285440618015895539263922242391670798223540252552909544244101669309246313714291382940535164419118380211452829478839082527407828726530185094815124986327132280617100319983001727916449542153372084109487691539797490641043080081209786605182308670530405550721596912360326371844431922778793124855298924714290888980715652889697149752024964592368229021962854995996800892946288366617738732335440710957004160414750364449301909185676636346950671127338611596581824873628930781535187547830637266124803311398197906791984077621810315520351520653096752043856111943168919749841155528700490947424859643494850893433117675848841946171604168497134243860465876065005050433574205223614324596977652872599026943282589035227033884055176625092100934818658614402071668483012565852650106264149505363620803153271734183452094538479064611496172292350116009074753920726258714574347051079720375099860903702195657153420295024614128901318990472866317910480156946086592707211967707786543657105452134182854503077729190785998880063797123077922333480192296303595809536712138867695069020230175080167392976558596179949781265156038545406409445832801074502793758239512808537434650199743617838673623307567227128143139786650740909893754693057054075959345814626428930544254159212464056045148022188528932400835158811750131130565342530293214597595460244715730005840136726158060418655866588787177289501681311475844278574633154122759192584578699448287822769785311743680702028124307153889756977772782421060171009746219480338994496791626653772026103228431671568048338971023326788569665260083249504435166847120877342025607835175081180819527136364741478599323385189194802840200322488099946670391476521104109389314914886114300838703338021139748848489781613965416236397756870605054512345132909288205953862155997863325136997018234210526710960068507401968934770943409177525461360529483745230265228475001476452436397600126034810588697010924894425642778747247143737343465036853808361459835768808418848403328605206329884822762122868627336817068756469050016849792111724573151197414632224700015777951533753524488727774649425407048818409915279477320214454689744062122593368892739899589246535686077719167179329994769781180231785575698666381002522613791578674910101867507174896074493236464888550088695175364161715419230105505327695635849834745370930601131989042398415218433004833852534784061452968268461701468577829556490132576749372750510658724136929269211877654741985321802637960618856291304286409818260083398081573562019188863583010084237975127299641275237910191317784889200875681814859733651150337770998996581439652537439254184550955888777652533587682561831976697332960201556807589762633375962630236702330744979592062994149815838840747358264235909541651554504335372126373908533371656333476605881675077691396275971865368877520441748167458116370544631880958930108432024797036317410027793362007463118007510899895626120687568195083587649635614274142467273574121017383923405526448777539934150440061054003865652971808898579099205528816752262071044125109809949658725739464397499153680173410654554500186416060900983415303062780188335544038774451783908084406411587442814629189188690747660530757515602563389856314776740623631474055176662844034287977749493430248993963346242541298547134040301190324595818024342937396539932567298049627683648618144096398200066534185964402822516527403609034185601771562277968103790919671091716877289140627703832640711505407255671770387788705935047554962478554204787732991241913020152357882543395822306333384132902514684167461385991004991254235302492775940060332794304062222702935679057679143454356589094755561542136177168500427400959029154658454021121353815714690635119304720523646898676649270479024198319194778263656840890396931882730080514476341462645588227765524446721420870736028597457752936727727548114600157580304756475472453446245953885612749908909935211580360224712615073506420184970715824310929813959376494922123903848723472500140490027223184629149996086440878782158506558738451808857930827578134738595693533708986910679035472420940445772179431241989294779987122575890417148878914682376065842655896967806907364403161547218225504333286649594701542072015441332899853850478897479686947562662823775057828183514345466064774752712625603634168514950205803271914042544943924507595970503338235272628527741664479459763858885679551311651605209489854569625907814926453110917632260390499285569287865745967134531105608418049816531710694768275636701567360831312101446979195444510263921114653432163260558616390079490947405668892881918446709979800253216712236387943302744173985130634094350834539751763270150943607463898220171049527483837724245920287300985902551761818000972382478450873903744362445725884352654853039377714293316450894959788720382528187668777498401753257036558090281327085018564873773107621115158247199184266601812759646250640272692598285356052498791631812639777059694650732335090872722719064135764368634899320228644287740091514408156522804591896592094063385363653034839932486410461156740401954287584445106562725960234838824633751950326018211594088525516187775601160869600152311156410118073914338463606073789311918100294622988627064614043610534701597316849470374503971085245475478286805437443992373090638894830396927074659147769143774235956987884338000062299906206837473810638262157874768582879331895840692626379323509380138693464989594264796048111151494461885473499058965369113793295701962003123095617340785104856737101972145318207255800241803931248019017995398637138513212716586847554563019220603024568855075845955245097819395505487350991716383287257547900664060322453158312962370641794447974411940757814124131700282405949943106063566842715253110968387001373794657273430328866715895133300047423906030746727475641904831654639060824083093106643397232090783944231820925239169907303549255641495363007913330511919457664665658689651318827395701651524740239056953078513394979716769862349589820862467857739306669719792107163916918848977990561584144837072985578105868125676932916585254783133725018872165272759235333014270531627891052329907683933266387726123207979260943644488929588967833167006368851390017590563230494478197436977883296770273361248056731262052020074062868977585141517253782308033100969793242625169787183179233494155728429950363238761658131275989467205846729617731621263170018731637343176973471747167116839922844285580786260759519969157561462874449444020729357195633437637530342890326737614908186283654770187604254038419423020529358134394515486831017287428219024416527648052710066619700080183386889513757573058452339838894954301375970743936128061347968464999003908272313401403805683322834972207337342205072032323883766015296699107958159234287351924638875215257686822070944408904296095349516844895114306827542499089699698821094221041402262259487281293828006264307874639746168945978911893321039395198473765344501868628201646441106678076906735345104974824137523704662909139660555242447725501900539245227213370046696765879837584468638528647063345449479343528698536644707123920029800078664613476773272434904899346922235987634079458631812239241866018487666004291184844995368449171716477472574649120809744615189569196826620810036290617199619581719136424092836633691126352328788034521957882895167621302055626606306098439957846684225975577930686890947524953083685131215112746162235393115234499946625144764288736476309917767563347158911820482605722055895653819946598034205748236130511867315615733246968243604544909460574004486364522295526012477343907150027621951239342573290498159126133009939152741553767983196230028831563187270306506071820388326159440353831873045069177974572149926829716991824769573384676688623572863455193857980306083939201875332132821573557252964560329490761632761626834318756667441598856848192084788014279676620795404559561130688685919358833456542010166138215014643248713229265687711647988197872675092635307033499198545561096313332642078527026008223520195995508664923210286613695155178066031188735623425233820465873136127716219641534770451671047200405459626335840799396591443959587710390810478412939503302926718942245821794890439837063832508812472168758226400540880398723993063095402489010050894237058282438112414943959829220440775609998776053474548280147396922962729267005467950604724253875543340010210336051237068695363008639294076227696461208383258810218313506528264129361356281794716329328850167505682000324597303632934649268231166250748737795189023133787222568263151596353526093778387749310136561090355560221133497880165446169169451983880761425704732894625372854319644532794851960603859745148214951561273687239109686254534995525186663968355515380787833074698185810377506792827848996104827915458494064771884929525260117236135904314043384921260280319154385659700098318140724744318408647762754104789089755711747154792498594598458597323357877821930830428071209448202740339369706791804949484863707221702615238746566268329597615001960042296109298863469889353677478217516444795420197644079360296075833250873442438727210952510094426058093212293243694320028336378537443401039643550661118443895993810109365627991062055082485050602308237545589823741427317572526300327302203164001367426559728329469074119388489038885203333591561570388381782442588325349461449305601240976970483368627202716313626609020814231990893835427414906973484157254785170931445051291042668642922281173357391354305519876102023352239333981810004087325740486715055359540562123438592892275912183142563282476762085633823236828106466802764640162716096444080663300708759389616807327502434881042986891798379865569077495048591218238599745167367207085735934013390704489735078297241641668459439737517571514162128929821800791212160004675807938825793582310028947318534672495867591853831873879891247198313009027228208278963171764805950641968792110471716307944152400686425351039677560984185526598682804572137664075582109169584279916724332778719341308075108617882633749628877860791055817826755744422108844386843636806956484086966493108642676677472610628075643555893033901919812362734275819248532292016989743027692198301334771330844995357055729327602351884653458816152563569261733401594588617026260138053455974465457290126678669340115128686949478306774446016693796685959530083401519771190529689474057483398643898013152159891296627886088594627960416830847606213090526228985435421326428304713801208393728131526545076603811756896580762168338629294495691231833855365595492881646542978168202402585706090674743373332103595247356216105354557290029484919580779353911310827729763928957769698183359501973513184925740834624704903299235201729894671269214092299128816853002657139696231333915551712937202335913038604540689073626074288063834072269292954286684503553441215048362528430905102990292102847725218597909937955355113644396859486177409245838248461294795070641440038160292494052533170795541731887004611096702144369263830421364136604263758074885650301374051459600910154580905858518467162138906414901393127725717566491183136626071738528657099928874728203819209776222689655239100635554768109699700182799548198782234113232499837078808080545623380037537781490729920299029944191099958120599707089495376205660911255100336203839443292232851939511492393913253602250090891033884332717285243904450868915969803039385507414798292217348534556895536575695520668167319938435977041960894761015878189275347855048894492346850616770776815587403078584386599076754929085464156271780909147368935046447697593031731974622964409870918084851376925638530341810803755525899136431910289208941263574288732917932072620226879087842691820015611930326111916499562308093617173734308042273400729131622370784662124583496654055950736927678762401024967523598553382330538418126192683367081538434591600582058180646100751477685771875454762977658725107614509712123715309891463294150624371929470834471130711288793405557427922754296907730932399819940525648571074417291698989129614955100783780005153484786651000575525322808434619206483416184572903411112509269537210747094364641551990629468765869297172356241554863607886926330597239132069411850087793725601195658731733066832812556323894853709452609518126950806539334649969749616488714596380789306781288962786619935947605756346311607664535237005823311503479852576860288173477560214933894789877165715637194527809604926187145315506183986778577604909181650581695394824511854124659926318935592353177084862684454491221365659525071091281627844718787758997342940632601724261293864724591379432327493280060904041839259866584607046561788790285448897724766536559865338428394904611861852274761697910202308968414524110150511680732724310842835656017435152807091322138943257025467838596901898280999502533758454667812430164943052784673651070856950715628059788191707028529580973745618171534631616187868628465493965888870623038759045958700847304833935790341425007302432046980503303360027526842818572481467482443028645101423679839730457479337419659070155544049132585495752712096307895809027463978471958518593038753308409059418076286772290650821176064694747370988613344530966128749077321625841310814154296546964200309083884306722468709534628557818496327324982460848445043725017057286831146438118659482552276531501306190214740883170184536574178285785745275223782312912007950669058750179690740727734249636938643606529531397222913989788656616463347982696094212530728554315797998188500499244869565772264681452582846980429735534658538994497189664960266943466030725994167475765590436114224616717613708033182290555578410264112548060478101801891308944346984860730351004576021674439231526134407593537283951465792996077742035694892923656056669893934361608817338801417767983135371910973150137721073371708104799089162875168224810879224729013606979854982717788126533902778581259344367365511905938113883432341211811092873023601334920477705186138117069006019670847113655870902897498637234229237241118536393350894612082891022856062200533871986755887929933246684122642653679059205171323981709173926683905747405461675497713463562140142745379320474983320856856215760974677929651868352114619752533325138127460938885100410503107921439975934003420447905036595934795108458901095724763639438362624522620184693144569755764711539593983712567734690189936002261328555708764019919448781498257254024113881631103952537605167263143248487612823232902311583629421515289146860777664421402360161493113975742602175595367192297314313269002865407972454254769295528215707791775493921613326757131274250259666664903971628613781171934735079880873973349492643234165496867437743939701528339054398410720619864793855716904263878958075404427737223396927960765651605913444325082956865016010629314527758776523770322487324840893099494966364913695644901852355058404486746172932456744427811138062172285611076827473900274891234230674265538589671950247227148056840507135940923282302322916655060413246301448934758092781116906018810075518943050315326603536517987236520799646155704878787343594597118209530085933009452546613547427323537080105641147617771587854513169603966690574696977797676472259548965083253774693853290311858372189237410547227863437832284122409058601629819074733573749449192533401163397399361959298877257393549966421319494401073977532671469566852975334192435191347690302408177039614626824016604615469689297100905448124857769183562468261955195003769783682920302867575590107024509708176355882081548745836133980503424896682138493723794247274144932588220279037366382728538936618079588467243363190957295145440637560784658523951000389081972509070706846155312209911697043715463820149661967864721969833102433373131619786636416489194843383337461412348095672108717654259690869218074604490867963080174656299687218590514829506202798070472279930467314416150009790455059988042444862692503112761440484951916196131441805058062604592474910837013846842890257455158752407925663284749295284375796557011351918141074704761294524635822158686283781570081317770396100243680936903387693623445616550135589468558010700685392586061667081894802067855451217777598665018978304601326150635816203728408185314053232889326358054063175098090264878201332110924447187508375331671762314075183411023531471717591881551987670674555282837592348714461780824144953590741986066620284873174378973515525453438354011130243395033471431737263994236419458927049528372656794064305791799259657823065404344227169482640306963221495603733798874363296575822997456342944970773484131859661821586202277656031794104587104742196070718940556758238428970197238281995488930245202385649439061090337579079120202796916913587106109520255565284721640820210870593388663714386820111338098870022885639507461324076649546011292956474844817814047529891087254047357306398335002699087402296275668210283202948816143736996511951416510703104327428081136173338813908508267349804814228054590272120080366052545201915633002482726998131083191433462100262805452804777608323608663095496479542683228126839849792772095231496603101562542964799179257603977086024497063014928543306587237726905808946223066835708857023940685262446209222502893304406244110475326522117340690555094507392761672620742338433750295131411061127847079362716165271217244884523786550795460411996047739173299686597061256998123023810002253915126104115735892420537540300051444440366418616713139318768794345768616506046627311695092215347986009386126633746514686426497300996925475119494603487450764620579937982524881174008974667922234571174336759036142372460039729763425740432203893596081594371119474060568385903428296168620260333442412255431595308147900588001807711962586849694984135043225495991247722011080527058922499010509782221418480828787892766217086501323860179923533846416120147083587632467208638212382518822610174491585662500697713756049111107274250300440659795234557675801036444356999759121111629856413095932307154961333324832377204594925643943960931753712126032808161918722951366072113164397561461770678066306782224406793496898406667989053695850901410698460953731748920632011243040176014779842639746333831835862919101990703829285561216515722693500248921709635626803813117293639185716343906771025386117203606479775775473336798496564471015305646966407849121086429291037832967343332310865800758417427427025618186578037531366454375433626456528895901049286119233326445710366744714653193973812333829414569372693885755636002908290843113060184835906540850866681968901438257170630810435817287663053472580499703449975318165399711677588178039712976224995797830344247057417950123427604588518777591226593501405519406201439948213037772510218408537439080759507461999361793274066993231494901481967001538345782511438725227715486925434430916314866067855801473246640376843521626973678292298583430114157867157069624564161376308822396477866456272849249198477254270607498694181422191670034274758218900809753952593843588776047331567533848071546994867962195834241806932771253753058122402370666848782641056295475318916028309883188582078909012403331481723934701360599848730035520089391044251700954407792859590057330591449451334676636976733795490096977726087881655951694299825204346794252829258585015394786998678945646040380129886133808965757709244675747805192247555292917187049767175339465106952509792032537106379585205277361147583400701832112672131209834155612655085121060877278071267639374926415060515600825196424897787210549003632317270624577373060437892401069083769036019581148885062180318724362955677013964433008767686045934750600414810646267116677964040029273039366419156890829733301375728891372752632403300349764782432299590160204414769107140918219584753403569174773415747590092061506197070088705688993832038257074496768604169734898902761492676582889015504620255803370530960615107319473777268773749413827987056012763165365644175919380830314974295309474186772390784046038449309866643997131650650925349119349746671247277258808352776284821700343443597231170118405188224787045893318741405084010800809323309302228235987993520487812915563247319153144055242126017784250021525852795243401290631716561013471552722919002150321963653910100847432675365242843267961068095223399648811076295768201686682249182948414704673157296707957687518707344007700949626586456104218440776859608567870992218671287900753508379911942752060967109582586317777144552893468529788370928463786873548937007213198638293358587134985124201593062799724860166655708747397628935769401862905724213883447693921987299491113757623613508334350390109559567760814874989137334519930547334432076108661561676754035518708921604149356003743632540197291049270815626188450101930108786732516957293565747249547685555958425704185964632766238153918628869659289993431400187055969531512118017711267151235685310803231386457877789228178572485780595765384814335070275321170268925629312299718896871537430923275522030826975389855486697613812931359474428292502053197236718727987826037356766363562812016310834521978814625820115726747124480845784932043384835677856792197800439450917474828165759613002120230580238519716942415461969565565606479065540744962806471071571904965109827327861487540014790974129497767601364617178380533929196863235026171599692369644253126955514775545649887418445830493200913326774859949437015484887576689151650421272844814941998908260020588778772057106452311748997886899611730507152894294122999168678514042453435653101829342157901595528780946637032678326670737496717447660992906292112582061847534694985837253468538641836441727272443461242461154463153191972987332001462561715631473058886759213590727820387257772116380330125280779214072060616408789644973721881921328108348336536235092268164796633705019417771078573954818318445531061734402716560255381595924245634228509626147891530158829199852409542302924440707956304037164739620300661115920480708547447133015793514859644098341649158616134523598964985562669184206034030185042400293486170220393043336355632945197039955141020293187566983313790558026557129604080278673379115151947582583070931095134614309825196001773380591481044781431274388145963924906323496750466639876061957727834749331447443945785885330688732252893182309902794501374476768653260871326182532395329895718480591313958295844040888530042061255133167035131528405181069353546667388258311861540962856789755854032707210827834620140526337631867849421745389809882837307029756257777161626685605552578589278538673368002655188313269069513604808385554244206253786739016442721935880133882355300042942304003370310842209577452247347854867360167940404433045052296594830757039935979260149915214138878751947034256003734252336209956319048929215305238330626612673802073901258913882426575042135861534981913587938945855620898552967506386489337666796391014966062040878531454173962835879083011305650201939847941900033049086734782976960391361173700840271582282480673452441215538559058012630685236017780536805639467089343453839548430700449374857359440152544961485474771984306149046103822131224899969762087877841232808510070774784924406024062827534554873485178804331246058071779309857150086054293043873602631035854011965928955681258455450581647373365052023061524578280492510790327044327095639292968545312227773956193378982491785702959663354609006655275168476291811743741487306130594858252574619445098936153787759267551822544376754512834644334115583080286025818776048075468719532452256247650960146060925340160619917504750670989774573569925564815695097824474409445528404143984092365550133464099412866945878752786805953056656336945515845701597509696589107364181359042694648646132925366381137889712255792670822151815766516179709133419709411137133871289279409349013074606969363325271458743299013082451588188231651572119946269854137872938483125225941725775538487450925478738088532199606117654060593262609175348083286855763232592303076256420918548446645103034452150052836391944656756735690462590006375829604370448989339720604935315030695765576188415352600012888694758661529375688134530998102996719944309724238311377008660187903903630685836917386120357236366872445169093336051367947267280335516829143447426327141059779807467860636966698954843576073940043478680571646898201697130993188600904663087059650354639431856381496269796403946036329573727675861271033089719944336434652956838312383492712314625150335756361063048242750757947870902911797704431167266987391439622374900658297010310624416355375875372252940855938052477816266511831554701308198405303129186810494183122335979523331303435380507525582900671898654494416504511070119921115013075780039454924426440087836221642740530611599807175314541227943775880835255459351205635986136290605909019998565897423958219850332860830822605766595890951497387038313733549467509136984613890096027625206132311395444646231754751213219558673129073289844251522607905386724621048609987008701545990448723939012134967177777070829093049630796892164538788008927415266617924637452960112533249470979277583535040375896721096753638750702472057926621631245116773981269076736330736848787954494806164559054000643353519981514894807094346740965178955747869298974184010996852033710676539580597960817516603807400387491121890766010463560061131306292978511931580262908465262086515598883860966642359621249269262478855588086171610993383666025483597373041276915942845330454718138924035249293808353110509872533929240993566079798452056987307005854554510784481977247665982187108442879885241759193805585380800466261737505079449358722256745375020313214794853450746973077066020329329720456339185565496510442330614407432759409046497992890874420273631559554621017696873991816016991374454437572931891209738473197634220043836033334771237477684922389252894288097333724450745741998072565468147185388598647871942144216468316474851283551869823795306077074151395287636104442306992940587511369216895783703533844219940064947273163716918248181339630363567702670971807906259533606147672153970112167478833814764342465573960304369092522915557583020019346052141761278456684715987761467587947767488552121224693444297075138441400009556595044480005398173196737851874546496080913401217959151117276166743365673920160056813601083522354727245016033045238239500444749811555184159772074880321251557122219184621965058011457455995311714460278475661781279044361183683630192931125363100707299705707297892289174461269670089363108199710024386082025149873861930662334892742164979410148316999666538811302463157508842191892610823194831966455107288620357217827420378702757362805280936353547966179397199845572413504398673906293256864309807955740955915898079317755298013416241792613516511397607356801608477947267369978830871118937712438242302872593488882795753812082673644304740175911846273046860710138914702083610744255157601353913401798824992858548248331436143894642769374946954090186792564406178473585102638640118243421170476981704764809952366556833014504928556594817847339428413098330430522889476677590864046069822579072781646350325879517722362721737432615611704554782441086885931325861485059807350669302042240886893881136337075510266197884387893858712121094937517547712798218494092294069100296210977115264036094857093235331276199817924281069523335478209145120500392311139099911330496505768008813951056646123205376055991469604936727386890802920075503420756970568315206255399557799128055917296206482531312256144276667372253966067036054351690969092594950419043932458517190075875515600209274132114069258546283722590942989140048103912978280990755631233246105598964117140249814627709526544157207251581713405199106027232222315811078580889377155304319370532750445357649058987952569346243497276311420370017135778399045196752213899836557391301296883374388184505638075410266997685311706965652405602266645777893754047447515661681765418973093932442950944548687023900847739798817023684539186462371803656589758633553403362192356233274861414054187269847806252815108365394005866507644162546329129031150211732651224478174020998517803879604461986483210124595739523953580521982251823194541001122527205708238078867970006832220581868346535657627357489393805803732571622580757580049920094309932483745629826636310850159089963939401360167085336580226414722132436471280793294113186863338544832556712601093887714545221681391346540978199869015554101829661328320712860769124287549945268768832366904409447746034298534280371697960447449900553812082182615609711494596966850560929531999460004823173145471470467014185012925721012925961550956653649887590314778565396115167350053937209263111861175243077458209434952895256001407372793598415178976809985689509001387119312893522716728307821585384856933718960019867355579302579312527307169927838878984775674570926246143938774276692826574925659963977129523257522532882855942655637730976889456344981312932528684274431818290605878640407247021179792893901519767163818240252661092515024751574718048141024781530370423152472178831975461635038643649405527632978042044243723690519510378837017330704792405137513628636318494750534994228622112503288560260231681105070401791614276722796373000025837348343760682256024598402843925507469220846325551861398227278863918731469284451317478396779671416311606034414259290727080659519162488520041996133705662746421844395210174214153172035946960907157324051392188967457684009063758475690477433759970463613719965680001234083677751178895602701457990066294093543393615214975862387710366236549859066007382800348726921351545871146026382984397017533375822612026421667564395773785545108153879590031778071776091784120733947917195756814563136743985842051039049147246433979933946449899347288192296407223117922200555193214350763857080394019578496016754000378334360976879137487459154428644189021277618442150093714544787048276850665135360042627945356956607168818338138653282123996400729484103017885544313449761685822447441794516320612598314285708814079021807180328525382204155916129944427982575705778829552187209650899596356914622757081630808566912956224749242836781857178453958777537621109303265973548021973225021310186496292936416415024392635175154344700648479578619790744816069628118277069183592465408669029703442106850973657835479557119561939493177682913360459977891729429745470374848988429064701537505534008622741258455266380649458378717400377786758468552882455818519374775047834677016326559916817909463687391610062394534873191032937953535952879266706132208582777931111605121842892861589710826915816757967591490796537337411980277021559057625864008748263720407871767481466397968759160923107888122286151154409806698047393297183414816543805376572080079491866522082815166471363126515163905570209542395149474209020587652441454460264870382117105990839226674703811814475657237057812924231435846171992611288080507392203722852183816529943595002060273355511170648700132126977403458627119711603964074955973867906225700662594530151255600832874820531666351355642556762386926759692308047745224058885373561243256844971864956328764773970473899226603547194041150530972817374231833653509588778308413656886605347766579269472262163694900310655282311870173824398695393300836132795184208119759538873296671806049639865425181730030742702107527229760898902120924801509876172967155407223545670339376513298595400697489541953232661192329421272499931486461647504647978420883346168781200445400314012897142698600517669593841158500377881546725026799144731612990219803807558317240195804237304166703285738797013623072652870278042306213394707128365675225231236463612586304243642894195892351179380684824906741678377974072804766856011447329990608844219298011482951950203893983393214819019724110662634636675470288445981501238004633660947042854760291256763892583617315620426352408196025027010052554761382443277323714813765178383894823144244699979389451758540490883451407276894016023036196670371012876238793430564182441529707505700119907896082041811044747953291030355839309708216640636679366926622004852124568825249270833572844250454919791764126335720059729206752837411900731201250933381543573649972930220594989991284970188690803229318957454376754032103099240972699979433635786599111047629821164005314482608122268147334824826978830731416066599753624928540270491517619895351046873695954899978549554856836441624287499867448390414770467831001479571633637344803800025525685355457548219404135941960210106803889682488311186912439063476336215236373844051395261896131614955668674407838737524139015695095809690675183689102283789964101904921653081479828417931699152987989007222711629520955284383581265175052481713770887508451574979641169743717666825065274277324294022291558506676188205077118611812182638221272164920955579313205632366479268320732746659235696886896617553442550827301985851740130797784854459941492658481046870044966880271986456614874949966053777111546546579350231707686050233247105532800414511170562992791242548757551508983878416237189083474138749991627595639640321117396692635499989310330193211464140275187390203277252454416128790823402922788213603264397938030249240945514638788611060729472527096652619078599143583444093922844186536248187152814101258778687805995549863050597828844922060222854205323273720155875795755972750208178359241128236722817087425549691327257657780562431043563680578885445020666201931851202093596637068746181221038087717028189828905118734183567079198864678682649116577135374367798450309016294633307091041157328777972970154750735417539837679700171439389592560112121858715851813984135650789677143608258498361536563691255875450081894294654049613739716606651193596790755941094607815337617668162360469928228414785140426499598361882139715023963344856824516802244963477901667855262509821038211010132232766228834483710583727127325782872815813032397102099282463624130122451791911584485328726768723212450626437054819620409210762753589807438027763490685263520322304491348760291929840187556701612224091368334393398580791792113216441989880196467378391038461283470896868069772246661733218544257165980834881562329485904004773689932869772250313325712089496703650256663812568168572583024558414730677029597037882749305185076497875172272849810138899326960612028040147176471848872701253100687317559059552921615229330381802849422150772915733729534021923050838317671386681031750041565115849494934953300018058432769118200997507091600927510437558726467286496299834904469949654252460973080488665683834261357246155834350197782937384018948291316008928641711989683995155046832607223407883240532158363499374647246120411261877342185883872283990053753508663410633735379694874890552370272186241934829027874237876337955248659876021053008727529845074934412516004787601510987892161787896909087182352862016512261927923336515162850389460488088938293755931305788526723769762721091712378875873559011507836822110204249853597693174551303640290754124926463282189546099750748522518073386348245701793253409462133753324013991453013836109203007509474092159756049137564986521873155135536710689366235679480248624249474827284943562865319211075526608954861485522708615690839991418061633256989320595031120441547592769148440697441253501213078184340084333631098560230478819747109371728578375433151645184438243277378506155674140464183704685141547293623931828675673008774942323033865604208533059820542175891064857011525024765168302586836164636602663598215403211024307488283834076737149022214797638050359190821631895069458999894399206844674266667230685288279830404525163392628519805657722732967705743876089260710371507445770971954169213976191788266427094524895378631768801511081505666775572943758479391511789065787109920837025496634983939714225664836375662175326224718652411429912134456527685081034314266804190612983986785621497634150011053948174121147438038897514512978123530083253492207262219833033962204989010940925773847529847593845898725297192370932228079314941310294635526571262638304159000781213872948113439377288213792072761115794847728953232903456783534276336028397178178332949735973105688873161568782447207801808367791927875122843017605893174255985270110679754940901840210002789684077689058936033079835313927487453742276600440232186220720980862896238999654632251862954233801104875560208694927215304714762565972000255414011820326803121704041398490466151244681942511557828730366415467856252854424981663096087479687915611037339822741214850310065427157468224543449497747349183132082869147519786033682468137211381770129169834534051354592079847653231279332329445293272358020143773931254600694477398943542065400609915052280544461444349303718587449184051307890821501083499378739062496136956708035065714232258693550060370548948502999851857742992701802401305406972079515451771102163745860400108080732256519073491934391981264567758760076483222842088396910500286733666660778979415102495491944306843458252848548172555470080105542017957874649030500786597911694530683768786880240820589491046287509854448954190139408203098615475242732088461438743944925454049431324493933691123128844561943651439736892231037796736342543383854938937781910413965865610951570469513162833295202987146610488437133458432345013315996295961956151250681732195517392381433584205289136244292332246736880441902366667507054269171614381396301856608103060024197666225111965357089455827830990937714748681915269184683742545211185671879464505348622889706960689435907317636339294436414691851069246260610127791976567832213115023239987650544099485825596551720479478040028264233018308834983062247222128054475370012611339259131733286154212772300527443412839699731718373949485952406500933731734303792546599168732090220012507489699119437963438138899478129293162978872042260258560918210704179356326965709328095283790424223854170811628684289276779383108533536176015739530243867332699648565193920328329242474060087995343912705735991160160802266556832589576195154943161019838430701111797649834327595848272619587587697444652067176450062123784105988486563721673685850167308708697737688707650898764411359258575358923340568500092896696038393047669740207562228969159375939442532213514012085446645525070615119361280400075982815141118515420374330006262659170160710253726768280131438686282420279177602170191158600155242638277366461326464547023224563526721829177928336319596041153905001579349874676504113119041338404454745761357228540369367979469295164136602188007212758557734291797088479492449979800127509969335405466260460767930773601987692323759066719153557257356440770519769210883598822665295381434151628585161580980926314281548508139404166527288390734737057858948106482376728288841183891274347937806403351514389383559150450135944323150765150088664187057797456359663710536203339709650063973589534912667570882205298823181968035649820589772922948504634403485038462781707995552273812976751338213284994199564041676760860404116447085134523087181907559826128360651315059477626489223701022257681349767310214579736772640721530534570475721799090266818353866166255874399015797397270322417054374128278922076717973072411505737802282304337020218448591476665736784273651531658864199065337116844704877569156960942224672353685744822733395693228271109589325302988704680325690040187693322723245033691095424122703366045440119328598074516829563024236192216071120067019593031941130941001534686456925802070645855977426846125994850286647479130108449670748880792078243508249825814678379662961719825177022017548678107943025786156281971252655160699956693728298438572082601308046001377205937790318173924801595906524659220363069568339922908515668581619831897377617205441749559309320964577552646432315563775111116141205965137109312575776282546958862516583322745398964939491950932208115944322627132874036353275093943881080272259680549602495291973384510603449190807885379307529971384040719583191912524126188976335715279521388405968099658874668300970397728610082532828251910135538683852796614415481909289433434231486637865094321542882942310501417247444992032217609419107489406643590762167395776346546783764358253342179796106358159763339954547738904531143274222767643938020718727597653451135951498985746921654682284582492029171369465200315416659872564536162532288516255200114094531565739717549656279455603539033248562594276370464616947765201161389568858858495642583633930834034409086923473248768109320872163456795113829294979854600569590836936401999233610771842810092862501769192088702987009717722311562736124419659297260060209535713850484144677901104064344246382826724265454050031808353729340388720866924268184286689236329707392849519814151049039304343672811382610679526184359526261781464521129755275546325898594357276460668265247098484277096599993731705898034057280467602546622802317652085584626979079388257548983806027367954492899012486153910908416893994416253776348451371188828702960806857609100483981670542907262457679516348395686604020953525061964202052629412819031092799173037817676926420248730231481239760917928597731996968095450422456989301916797042376337843644716329971119218426588757832435989432371393430373087921492640040173840424892419951556281122291516033506550775059880560035968524409295297215914235217681462459400412719717622577254384452956228782785752840981454260273104773016769482947885523932254802837946203359286644497794960982895947256814509142187399817591363492756660035523994072699030524832236108798498352942585683948484786695229093892598299331641573282583871430811971437241564338056475917142164411546255122344865914707939429995123113107155101105946427743560009445560110833049160623432820549857078884063439139190431309699112911601030242626271511084470672463561802077730080608653541300430712740251863508926792001166803224591145389912764420336426092788731584377410235825550699047505499708579412948061149853515654744123020462866485757251406875892264666315589344595711956937619532339664150890361139388293689575596862473150035902833376052542771447010613574778477004067148712015482705444140760335067542734665559556708500358113488307496018280931782268786512640151593429882105540952815006674195890776146151099762666556213222204262892350551391656075867670257077636924206566447024924092954551281907818554684226984904664196204935818878788536262520486571336695059807495460871971242269241093091990121323825015774246460321742442485143938131359367770834459381328600941704153537480172086343187288796030855482272973586850460292949320018942300647840210792900195326895921583786184072323820192997517913478835978518328442702096637441133300091325804054287894206882647829996472669375035760253790238434603453053003404174667651787304304291404209043576327241150006719115163910308034935078816145790757647576799976992429078100401164399129981140242523601991063256457823884609207628977887969324087679405390551638043029433038026058594821843266018869377133206427962008074476817167496521642058852759114387255872189280641535879259628881433991947918569382501152080417364880947811454304757405315968283163749229475725882396543904022326719919798658446376968511215018605998126606578704645985999588668001314164704989058082971518418963815588132640439567443855889734567948894230991203191455555727694366425312882593684568286203941545695037590699429031518550105368096730625644702251625655982504762905635963677419130540555499270947760131479094164103661607084441077455711477185857594326078025874010919318048403833828973783036914034357853760889423013929746493892920341286184899205459245484628713728026970919817612859389131521230671579608818423301603938504654118888087713905921475692566645713671626448573863213890051466000693909011103943773755839872255618947704305939735960970910488211495603672314859850858623270756409548967326520058223942582154438178631157914233413810040866922518549686921093781499183706228127073381496361420493770723333344653864836051529797423382241370680404961865984899231146849429605858318846877018810150745041944186839879611308312700771944041422727056465062102976870711496665977109274135083247055502970431008647941519692325445694189391004264141270480351933910681211052406111294420779188182541118863436622012773002688454657176781816667098183957517841511488734304305992146020092645041452526285511121268027072069916816284184768259195226978665132712752270111069578203919525834921341677357233034083313066677340592316267928946649946251362827434599981619596965148594193032947968288856071445456753229735353745121780984088543103803270206478339512166249335826623025770391589981346106054891985572733024647066893199989099776784204413118239593692485738721154537369059526158071825450984860150559989121394015521880238280119201413168059099528883078515480863420756953200415015823603114229882186106179922387992639955883947581729995732846978608111920883570377209149382055342864844422636017288985387993388769750146558952281206277531011266693536406502847533767129872674947083690642227227115221889615990779077212553028767683853553123644440610489857666267861354124326483520016816680119141249228418048603790541761696446065095313213013294094436393176853281539089285691512019049460367331161409645206617055624835214899182538105721176367030429926724846823882348497660115944831623704379577161979537540616948295215982978579741125019457203342615764041011893823678868813510500986202531593794210181141544448266294800029461068285288948889663388744431412112129833600418478742316241895447220971695423685658123975210681931791132107820103712575340620748418620810747869222192853020972516985861259150016200141647570225502890711669270496362100019773912822905612571182394002519754609695103911885900346066516099698889239099207016310108210970777128429140458413902315194324772162750203310556598085681356967508645807009680129608497226303527375396327421220573283467109539453483509819287381086806882054918287991790309953111851646760522859570815446258941900633147106711318134330544371807019103842162657365738992594943079065101992934135682426408773259449511166317949163818108077427553863554150968127735669647290596969324570671657299089168834121396333635633865669534682161844906988512530927911366966634809830489197407813611188710433079508342194162996993384946347483929910381149725027732391053726981285309146676921438876103021797567393780692397441954607858104613661592519551761552515555466019192067532386597462125773540627323345687153765863966558655496135703576971841190943569847093827081910589920914855651982626942304244152980001022304992989979272039685249846881985916496595729523633280679735373984807636199076298528294361967610308864981607271670592540697631821183371410143890280360368601055971620289535619276429578775781501135462499418948330732457338749673246146622598265076509050065155644633065938591147649214190952656776378405994481767286343258467822709764387574090541282584933795784826171284920082592607831548339615124205312047317356962704970718110254061769349182556599795387437118824998329899202534842013626742147109677234254803242865942100931323993894459374394686257051962276583267754261637717130386589532256444411796502829730095897707348235532170878276442350967640354642079105782105293289507992871656491157570390194497356843577431308054111048905206840924070890490237156617806462121067380894277212872906983109894491451016971387694090641223935521151685593263520767536790082075053911215505896262071738513554327151187240816089906554998171487536024344867499703349646496384566353241766825330907412769915490983768948356040021125539872312816173720762447454544024018458635061317383067978384560375710553027275129530517312886909624702890628933917689516216080800190589889059198503263688218816613351818419683621588537564256994348872111328650040898659047207644566420757730390709436050644720587882025341416985163690372897238699706157799365984658509839672163121854997014441036617267769826694419812881699953125479069580812085651516620011937833541220645721208190150687224173208402855836259368590793037240492993582436587504505082605511426914483741806744346595312368389010396893508384803840741379145894580442093561330490569041893627716944806047403487834378316825405982446134475419230809031328579056831099171935367989931350777227577854177599729798225979654738365404257042672535085267397726510879773805576368052288486333634197060965833141601475535407062286459629157229310874764370906008613133015323269882871287213096908476620981605211556611149463410073544672456804721089746005171811423504669369873904286738436893402622729871514841596467391136230199034567681070120844438459477650467236313467447054662364306703763586168259967573932629173395448321317309846579645234068707190208977374522443775350479623337604585429348391642092043039649912709909569813424270900113351454881531664735028374389944513340898697148697968055893670518859052459718565376804636075416683218551736441185860167724615438259027183945276899640265652509873309345736423100748309632637453327631996369017453882808599872297080542571749652235662772752250947761960882454363169621868915873193885789031495811151117643901511493416079149856253984892320940089591751918747430392900622540124271501530443032157972846181662671168373997210109500773386153383066930714073517487102146935598378584375673915234073462579250106587504790423655696515693199147590093657119161170113933572769192721567729457793510858895904843143970056818549091176572652998886790233217340661374776079125019522802602953258451755536505918997666993400449246711911616155865635123873184234117995163690187180768050144679757220096568084885207996618776924625183979089699837786144385280340404175148142679748009008552515206249166675129826762472855875656967753375596680677744124993753395923604583113615316133764500946987271473895135249181824517217037065850506781196113367134145172249089300712378962707590579727961383797711127827423226989873720334271451806482915788281378928726037989685364801307050379886398810934639568071948202128079025026185043650527296605128822138124571722816212125495435701220836292972970204981365779327147142564390389786048211708122107432658572040252229695112958168196424530347771591364537253623949071665002816107170380385797870636321791338365217299483340484813978641811751180365225441065247507495478947824855599135984354310401937420223924287478989440426558885080900057495372308965717959208075332234935530178587207881130311023950089657747831121122137615076890926320967281810623917355948455311509749125890715029913833431751714402229285224222575242034863820079149945315910956623205039507026499489200528844854771492121981104571169548345919246799775026270774025328687023185348608494050487423214151471626866038479436990032199549828179144658846829592123973191945879805227736132715752666673474648718034801488377198868017642415225025505493552979080346285252390688128737952912840749845792067617796483370650907370820225230330936323643128832927231777588646005007500100661112447824633398219434240332603823579845017278305344733912200517071648350572588825852765125074321453941578995260253097826912358085571548626838764767367423028832552652512903932198987454853038566388400314973224765900863896404525898294959443194316143412037018892442404867800114594946444467876431574522403547706320453111813093266004992274722370868989662383437958733343455805468373690874783761628854573338171467061099487202217876985698453223607572913154883434331950253028788445048997592391712499722886981321317669190474010765209291255248994472205016435362884309308960408714008580390333272782092667958997363297004048813514712926829648368660779408513434613157592513381765408062661521307090224236697026455906040304884736072666091465386741504049548720548927773814720479598348452366374911158078668006051202955102944855701069054223916484447622477069544792546757881433158115837807588753764900733984239076075988383059711735405154201065046855998348895767320446186115717006295503394249179183343723912464159771895704391184239752167830114983594266844836853013852655116192349242485695217298831329013568838011501625365025537332332170169122193086285113291702840147479471991639521275767467548552586897542090025564118429353853987746779823649746953489504737897896803289740936775152621390472138014629189154996139525432070794468112934207953752785159762358901036035997999315277677816436908908743583509837699981503043419867516923348816757368596092126751426871426583989278393021556240319336002122674763993846918705850434164146193801311214894309202442829989188148382885437399344507227470618309769900969202460010064542950089650507618405044562177378645914169087800466187525389638708892040877036048263666141919179845053359958873429010439438935354060176745042740627018237650987477880862398941378544735670278613020987440889321245526404895266594979158493673463705941880741905610599761366561228959555239743561402662162499671998159823832550795113008575886533785144626394280429403047675516736725583538140752352481549650893549187236503802851863348704060442872499977504623752844495581454820060160852322116542077733102864343346118833440502173260519379350983712600178132036873072047959419554977354433483580175308548392495095233999127894263230610026739951936094744098193909816736756632968154020323232019233798733088802143152134161036124487972524492242402302791963071252472909892258999200698450560541508511156827034299494072292427201630581452026714796734488881007481771208586029192315004939517966474914728444713744107157975004183964251646130245521603885409657424942990150502955218989797119043672087458628147213031641089314205845134752355703654184352236496418160245205593224997626857329880764210510681275849647949989295916317377615246576212603912111552321303857502812737888900705860835986770815625188226711584328805926204410662594292170186897833212075925140227436963069351406618930865126059985190176752572042140315018664221973643630046903168881230521351047238400029383160956646127854865278444659438454129779107932646110955029042404349246909872868662544215077391185197915220323914375991608314379215318391048125338783964353606359540688855569041416060789719588214087036701908417922219298539468810208581775376088386773151344719407939406277674390729867631587269677013833373600029149237553581407100856399943730418416925856797037599200236341834062371930882641963723209997783808565116481150809748949202149262024720487743980775563202178359629259064480266951046359218352814429588020764273900052512803474396159325407374641493737863277786460890470881350540617713295848354885242421763672970654805638651451800116649709515874385808422107795192302477109590801515371193867501089326458091208083678252033006085768040530573407290672904462320420849523267224852814741239977496154167084728502793058839589128964517486855525911331320886466682113464698972474452315145132031584372469540027201588834421928040965570789989259316870496411862321144203552626410669447633249884995018935563642931786688554615729111677658877676726543365546606442937818245492370931214933986435052335399245661247425108321752957691827556973888739878811651408631785362480721786658558291137918237216005219705462245370749792699362963759672246448997410744842646100226899036860719858663960023575544875577343369233337873510113042581039758347025397978116292208096482652952153872234378760948294394983010358923084422401870833658104615661494773403623603453313321544687403965244788326357272101288269310372329754365989691303661583774008735213806188357526010758172058268122863905896984706722627437871714290637819033732434979629059378452051594190466277354091889880815411829441154025887564445078145809897765103801849679128040131387402553557275894539827080471350246375130743763170874442086616967428806229595105649972128740181806969337639050424701480209424596372500970901281645503727117723508984393186290097869770797406598333741008782863709743833387088122417265445742887649566891886528080358959140877134559369023850893562184094139166262129560938592095429357192679492359226406868390464814094672965841743473829546913240991926284159521109609343659457334177674158026798208564282799566413655386531138839292980145838628621776274163312142455522432856537623883023086517888726388370207843215822844083442982854218075298648794243555181795427532809285910394482814469502935040641629696768641070913818952398523365868859042114665394800593903502047526488953978240510925399459938163501338511414747398807302982118110128471207621911273018431754549029342752252933164235311361857038553421013175562243571074194391767983349709334032636724805371723539521036297508609775203526302195630116578818104693001963465678797793979397391423005171330503433511682416761037305997069246029914092711557012620843751127128430492269103246559471867375941182318077963128723585791608048652930685924676470898712365952159526130327787716336389304798053297544090176831669907947492798928054577255232287719395147526947127094543532876597091532164118682394472151996353109254172666277495318269357111727294163806759918923807717523280667079580632694219456083405941269242062046769493609133034357827657983506245882135753545216416427611262797389669506982750099261664422220438500071804175523242223088145789078108252576632203183790951216826730406020555636481178580349111028701229992053546330898494780159075086503225929848000966686881993406658816938603799009359625328052002752887518661574342393041320290041955263024355614460080475838960130461491395240482520446023250873642795800430551249207026311959512242797885408254554642490949161607012057809511548891769649578479970696324692455533635043837873590368824135270790795464730104321512185411790869448940599851045685778508952725710865274868040432391978573911919779078139718606812530260924054538639445476521606991547472213163673566394172603379843357216190112720165689030534146218923181198548105846366725730280606262900715946974713406916806313961698104186424616570317147736878962772360190435422109308310383392351165525172779485879837053443256617967923241928441318990077712583222116999033892960577573964090257141724111619204386487354461003184405036247759010161472039494411352955371226982198955149232423081842421277522264529298193763718753999561169996743709808160342133603483168455478675850524908871003783723132532010104918477238217492983527813693045786487464647278905033977987847324318478303515040180013874169715144667583547794935014519523237909638950726652783392916131048349411492957424641218814236116779740922930413997683238154911638372654602156574530986998306199562474590305471132325398599968439275008485746761382529106099687925747420925100693076386702189329868005509810813233924904467694952455632204722405046288577523145609156491038801839899943107684654439123710508194234803789513635167721179042301257716395909277349269553879717694070789348615418687428173402499103109903874893682973433748504193880003203799851816139476063476011254092198851749615869802132661316224659284737037863752527773927199557839846784112786482590007843296853693901620546025110819581434712235788196197677566183119773681025603996138667655120934431526378488096132056077269477157329855797562692817664832917257761985699101610663998400972906437085013943102786375104568361065170780589656747427850291429295174392984811991257907552945544099956268459913909509438258324706873430092723250096417825802434661102786166249025462470638958865958840469229704028791771534205511701473595171871303733085058588007835055168388025492304519665511990373201873575177176473163658479196678389354515034407202243313372787445339057800511173545343608348173920657148684422187227940135709258632100477404180074983221327669418932074594193862101440988214587461702155562230559209766170495842537252032418387616105079509980883381067802303495610015267159379166157303828544999821023857677548612472455806001409763756684102481720944255557791745443006531455592837175241898965960833209032813433294276528106267567950864363456384582641327573232970324909838191676144731506861061134177226333901488794012704460787123214520322597789248307154934353831914772209138508945203318917919820941173806983582605086612279640046762086150337107537078828517733086784532140155087629951376236202320026613247419774561810837887284757069031227649192227773610958266794745214153137516306235996789072940111544782198827348295115051057026126995076446279115424848910585785648600016695961051372228604522298231381378065158765554542145656715704277805875993798901237049039843458884787636580835055848097242531467551836459710005569556732592422603692078995935044008231648421613134860477077242348191457169639262604483293046327052068618594794174897692431822122959761162087603396205885349935989552955696114280699946552986944038377425054913332464336828242881304969222635182378017967261512230816452857855693036763464247891809146270354634551432875359269333755347963594250224099746602039005166767484920510599849195112266465122709993911895053684449167921579664904580239607327083312451664225196013720146962499701793675145356194802029534828694090756695926215466630132353531506208448011108850203329577306921914939337443270592827736613981109934072062198724339002960541387902171299188453524619059840042004210939220051455084372940928986582560461762173883833192226066923499277398410987764510628841577650406933795389972689035480144807724106038461372628732514819222358860758384987319606631729111089923959529406374813816269480935716399959595289004556754744471582147540520649711774447803665546720995248758632254860906126810379913324749843047661642037287896886119921456151291316630022101092291488851644730061784068486456658749381700365589403434295036754981080369084448910378768569608146853464879894866359622099487235712076116467910884407898811662631632529897448595838269901226626809729650477921489043893097659584078030336172091193783007382131272249200005438965407839842657131011133203844144326317821217905508044316907492409668832201664963802154367419389435354685357022199938786566138062097395043708291252967417293249057002272220556793817029395257615387383538545452104736401252467439334334145883126342482777442440776340222156856328025118080552523340386954875362609933758826277129871879684243950082651023265519677844537308636456845498524285872704402415228320558285386204186065716369840889659058366860506060701369005414244572587585308253471318336683602416363733563008753355612957080269254695993437646381176767722494525277515566773688471080813779537933977100143794176276617912603197813681095055046752046840962723503539246293762781908516088298901395731996972275429168163182709946603227492625531968091400695796403372090595683384562466086696995743939134490058452664201441791857398666671731959985139527524973450427237071656273984783563639440704699100628500783668325683504200418617532208444703581625786092895094845933281748126351915271261908109686603872355181070884231415193055525719686138301390719895613631917753765620051825348833995953415078455262531776322331113081467720730715967162539009217170260931684612574316112551234537703276796934326204565170247506176720987646867247149623089828581747633938800757952347208698195270229581849348216051997181663910678187401123637563719901857978565893691637166108744136395355070259119496092795272491747475620113753566817472190218731498652828872000997644653276113047192265352485509701175750684560806002699173720525902653973027470404226240680725464533407599236108421492251188829269636193742986029919862460783820388340435167666227010924978643974098484047338807340510928864137182932816910639242864570139119691669948984433171652156102801045989628212358348014758005869990620115471228661821568284711375624291106738552510500955275882193709441362842392577677068948385945774791098041278382116639882409344534289526457201992859485315468455491193411958270967720494909226715161008932807006708246417312524747524238416260127648874834883262890451050308099693502398498732914351063827103793746042708894142791611258522339479511448089836977042526823790165048533646950544526458112865672454664929102751846939049802785240072416590432362402010886041478820047451616757975645828229610536121165976695122956241200992892853384226229629905290186860243986246438471296118653319448826016442019737718600125771631777921244570289471384207704828189604878618787762217518625050652265338717452017414589728663988956774433678858221925334537775085096162875374996917133971954059393758589086184739160951210975910027851348046385887617983429321412183510092479885941168656087959065524368648795106570846979132119733540185994603083439811535652411927453218959534971316542218620913996168623484593874240817898715700636314689123109582362573923368481552335947471402277516751853134967649262643641653992517892835871292169742004514105317114167703973722945483224536996815156015165731194355635747953949195403052701482444207175031111403065493128696850197906516153496542956447114402211606942074029451863818739288309587239264440998503233641859475776038543468671588935631843322731543877340863655543182338953432472112120770150372472802097984447459558373052485011775165484531965047696974359509650559093350365326488564202150019064098386618254015385842984478353843422216134634148033465954597339396250977583091488955726993069535979323294049841511625834155492470464518659606438312313978874840848650447906471151478443909931369853006165516613625003685288579200875286427126702269304873663726362540156418953198962308317498905639255513476256474931275962332681328398636635724190447039092642378643629125244134737355401476991005158650870931478157546830285071630360994089099010174271167541262800440042828896430837608602707096918422354218845027043074781477818635413815909523224626716218170246223503399358227700372259168983605817792378650740582035682945470921647199762416060872990653083667273505537593559452131822395313436768681412643602770164939910510476311564141291311244998046170650072938738588043049948407498450881143948648713697852155171003653751435528758888063857244315251896917612230974230453823680675133972443870527368419812130591875804497804297755513687152861972705652528680761881309109685957835924303990009124003689138296347466252133913818784425217195810167968623366317634977950627630480304736322652134595013684545564495688205280009496191936865224300400679789574853266435935659106195235796099716044456849781595945828826861726423369640207847534909899070177881099619355097391874164415082456351343901699388544231801407796710636150041953395247015788543249843415912072353650374188266506671836743507999718560795059129230023300701521264423581751399564589144653511696823753434401580837662584147847380563672177637476400882285747877541135845102814255601665090000271168697405480747545279875361408866146962233584648856423608615712797515662714248246945072985638143032811046609768927740765928085990182656468340740181187210684236568076924253101512320121734150063522114412646814652201944344684580653842191840112688107832881020423281857217648707714536426549372974056655666669344125625965660322318318784052913998721763352532734306311034959782278133885733902618135757762643754551855076425776959459225795365001830519753213217598134854207860735110909169098490881010315619128498738809804385532276590516498943840583195903135684862542305995869723505003434096472924169515510021509930778772095722599669837075671191098256485718397403080438118874034921479067734291598870239247427303225136259950285223076330550419122092968461398091895509163934126078653807221591695165273557180299073666701801817454090598316772741301736440273849669006235691159419997665981262795497790600859330665580620174080550999792494185061993242807458027862385186345448388791123745289545819438098791799376186506559862435947748064738552931175330958448766618057566764438602671619774244707507943200411464990780503264660361175652684492451713226145581717352941747577668236876977438214648154556511004886902022172491555471449917211598902638369043028367432942751532050583699545929658854972479566895666000537578457082708155485452615765784867560471759308147018146983463990868489230333821113843546446319250172104495270985864995963794378289610364089925885100474834314245404606559663215367250898633500261251330734284940660539672670152486471375677301280311781623114772241151689340181132857647668433666744626364574156980187809927431875958719197355205039921686692262891743550039840493480704522547727755656041645350733012738957631139488055818728598713399986605765604086324227707044829403668924949388994791811049637448138288736008697973884902620947621313839918732872688787816422321870962712772936247363502582501033458788482616382792534729921824729548650613270780250580139376428269546645527974674268589188362656417090260175738806859784781412354055746226726675572318072491851758690596213294949226154251775341764910870895333538781679506896840621062351567004348304572822748467872689175162709915128996116227613886074566598615633336014635429730348302051056123884838678567571447488234498345178377162229644467798123552583756856488186915963450228642295026240180480853981411275940442631071236549605776483860147585931807572012039568651923479997399022294988014253443479528612833235987640856073204153048857828574499684593093218168806487796626176770488408690539474957638820528102614738851324377677355193341003894431291050842105247091500382724146577725536677029017486825637680267371864917968340190881210930836930346756623975324988246940747999069192167474078350027102309322556745751703493993921163342934199905075859803107654777776637378281937927810214418189635043438112837237274981767042959576772920241404454478953390671379292961496089837661761989838445705225174237263714897002297124390932435253740528270908088593689961090959612911925565602800940736898347556666536200575339430162294278271114559885040378182922015228056239298421862833308283199669036310732991102038010738132614779812880698389055589730589935680403283893814148151408417766715554532682554403099040017998267493601902704061379814344438643303044110156578100628241365357313521077748272133127474095713438997497748383729030744023685075342531253666889339539073405271836479131714785932017581983231405494638565118975237217912877216824666793221435550191030224165288603278369574818167361927411554718052571659886678855692772060073992098138737408464541991342147170308645505722596202542236071738829293980095463514488280572177828794594854723927036808326910424077332782141667471242118382336156340227710933153735377891647159654396995145195924472095505126890867892509771465186879037064702638519167368504523377215556507283248722331752448646882295232790612840895581997909733202231847753487070267484541648117739472135246078597316121279296924088019224562319751257028914908145445957130842651690570639505712274642883009554069490252769870639966938253849523807673920621387346107654035432499379529357618409041750039884475429126112556242130835077418676226420111435752159082462979736310015308033296403540669756015563477558457014563948558333331110426608473789234700772589068405044035198089658496730756769314630056305233657931175529246181486413155942501883845379685159181602934828681890884631616394082373266687773386046019272107744867586923670211912576513812878513110990412290812544249441768308173408377233648757300176030787941603635460717012446796244485530114036983501302689170649922220577774541035134169458222708815011137748272477958456582832771102317775713976686416553516808855503153979700118946177829315962152923144717895295245493079453880971736976993275559701677792558380211147969241268763573540755045708206184297241102386228252099998777572219249508738201310766008517646909272430793460637662943565197037466566519873465590167819812800774705186305999949306445824724912134155921543604401377925403056527556884101337883018711939541416093410824020196973807643761879501999904777819062200169205594211018147552611558786892901742789437118088284214255220202653950724378858005206757372133240053402394091297613160668128312451132839124839490180589286056658312913723135202570231138436183446416822926499447326408062109990125021064659077878089602032448809128354780632516777357540485163442808723705453829212389103787170061159128119548812975521019790081837558323736899513435127293076107071556835487849694546356034569552038505989450424977374322158338504012337643826202837006074451869129369812148745413803829090928704549137728020567247787027807924907436950149793608528437441938859041480039425582588456786384545626706977255070319159319188038525469552795831670758848809383501309884429468280575785632986378758740333239190067878859319594981414220087772909538856658402991897902685616515839244457162428084863123768961897590385911362927822357513992981189091025288910091763552268803858637403944255957006184634367953477718374167440760790784975890834197896840862447211570507584995105076326513322682036229447603460350607883843782055276534784688559885227285650461493099771271504373352024926747531072267591019576938460931631041879089286985327720330079126487960578662388222412740220032881567494610505677214465679948855197744320948239327884093453951253744150175710261210859110112884119760852009559731347391589730169476568833235894686374772585834530828068992302899402094552972571503292316502646375041307536386090990860867621612086589964605651786147036490504886611088037859884349281415738382557149906196968090683220298437905747094614253467295515656455192383702941259626898773238101675456582993167921655973436197728169659621514683186721264611854773175953868598638258189128389979731913793441036718258456850503346004426448723080584399041955582921048100607614894674389717367726319377987081046020161569005090532810847680925232512885966273831139048877979903535546506077995367363536896559698362085423002909703450504532730353701220480355232321609742172570755981893320397015467171687044778327588639168293209240886054207998251941995940988493045332743626332646132011620699298417877122827574549185024164751132962551329166157178064736950379360300074005761200245925167875080293959837395582571508900234871904283653430174211117728071115706754538671993381050932160055759141980644000119099169341578475453439174123560689758609734215748483777460393642217174119753305460361101608311135890282930180502058164091231060328658874280013693157340486171483431498892737117138826384752722576909943775849900946115598765411314052164799029604789870457288855419419714385866771023608260647148918431428619855703815141680227167541975534128299456138991714737610068153322462406175713729043284320935695234137834192124658674984048081018012105412501895281191496938840795761977257576962507159453174653739142141218637597375948073061272049388498515493118858283368927688695731125922769210526501012289410349854165575548602213580882434759921165880940676377259324406042700519197127923092599043991718003889538147688671375067208631243115130319671622070956177917680579089578630262564147542171966928022917692890020746545817237375880966289312243328472192166457155428383173074150007005745992775791405909363383416949194376738868624020695086370061977430307654638079841509855446824163485536116623648294360750446128890364111468812475397317261122261448430150233111602784191752872672046795585225311398829897776647273045083335563614599156062965991530524996998705180205405636184842418857885966729235257194792571381739248713120705120541199443355096308010557011004739382739139437658030536636751704956773704011975893949829795989645387312612836380029645295394502303985941270636775287077364567918840109002185938532606612006919700395675250500566017265082827000445549253937128843718611796094972562173415774534159499364305517450004793831071491131212477222949890804319450772716154907283075697637275263812062042063300840794542795240101438160070100175947254995715002334493127624627076222699231339995711372426360293760332071007478883993932796570241485589268854627944555572699007918758698158951418005589295164424402907628916643238201240380098194807800382238098363450648290380266088250433897809135027514418707790349618314538443289162769385713800788553414826557206717293389215355450476008137981319763065169290841096799927370123057053193746842052233350675839946452999862381243375382158680683218467758074622611405158081012192120399418366519432547817612235014622456340424071765504288785042665839111500953425147272019058971788684383918118658874773484384495821609790860106116773068822084030394127616986772546091102054584946423048272162652798695045471208032937719788948096686159993672887615243594530173324354421829209224829484040795291581825372377002839059504837936050210629734519550742514155751182085494391685538715742623424450979631119201332986291980754303772683536477152534158281566999493334238558313284410390120196116844516336127256829234570781217826598753745234847412279914588965385165039554803597420586350932271109986202390820852649615401247333071346121965285993728788628774260966149586989950522102224678723079177219876812634009787185183267137554187023890965188873986390255304245114793408292251912696083731451859338524761919249257467342113711277852062592425430220258285688028686601443224753822523281138121577338724610355558890555249211572469994047418064535253156675605039183126603044284306336829035057328960617873261984222831611899747454819297506884054030252886652587459070199634845374456126198902579455908331778041237215681619255246154320523501606897739055464044886449441342954208133768891013299125928535136170196238727726679135345585801567125452928759655003451926742380086523430322910849050768566512054906241038533355588815231880154326686836683316741738153970295442357179033003901998695032700162823931781387638258753900612159606254413218316558129307927272269855968622180465706985444092882649084371743406670886537592959452565158430032843471462520612477555122728401015990271634429461114842781885852397686977465047744697625910080702211280431496948101486155886791073975967577760574512617758735850299120859313670874069931166231041879452815140831907427092365420115695716618991872041178346683637315918096295703435665464655765419374592611324965228105418006094620451789459254689896325589583558714562170853358293056699153208928399373943620803660528893057251376196211819522384560195635409641316565953210466394086896282560915747592177889287692770685358413700029358595922387038685640394086265257565257774698292565529501148835241777971386978031131166084125389221435353090188327737061412192441824391683173976942284872265099535569631214682775264938682452108265217338073626491874266337126357815182879205141283613708842762210053899479755746181482308517732313342024077530817340610963097365165845099443684464846085999020298983110230901475324299837829850817439847692863654288692506922339285403206982791140576465962533956234433472738657211559210654442884677601903957065580679156127564077990381429171457733859492798190195906241956032214349459076050376604806984353662483006948858838947821023414579940270199997619843729190849879124344619600279604424827571399886660744024644027927160750911619881056596777776068804513267590098421559695378054506315967277145850125648813409791687062206557176696392693195654496458034440898678204664135170746493734575288450111910296401680686425769933880264307634998458116880185359641079468409563726825826884832364649661145884021744935212067025778584594934726971531244422499632696953109714498442813038508776729758445401036944379744531092287358464828307020235210519304836328656628162642966478645234355666033271818874919783138128981947600823802374366678478563872022134490031197334083138068089580614392327170217242910925792827045421865221471265745704691570901772095344389366759542106567505060523518196730115535491964744217579493637702387655371803713667742806650335121172285846934142824505162191663227303719931592923243651949630331659775130191277437067463294816111091944901209217731586382127893538259081713371609174135102761576987860926338450166060521852182247445074981999570182080453855263017539853898442239413035826917890635987622431287179896779092918870077982646942239998322142937669335107778038102237154188207972916662180232310533410331927889595846543776461235638039963823568769543659562701252005500582412785472918480509518417881352875794319150445733936637471124846418602590611403629004424428439332424377597582571414419667467899008120265149715419026691651665593413440593311413786677794226472686254329608077720684411844590243917651188388059622372818181849338542400200251650975872028130318469150968738576224134282728016491017316911070272954916083350902293459479500774518511357250934659161273896602764017426415834775343681839143419738797150623258039844676730779536952896677386656006930720915254410445046291126574699338546772795566491126503343957961497640433068341831866360594987885645622202210982696893007798279375220830168423231851026062251335376042284799606307695900105434332679076670539663348078560540028590356523518330128904970016220096132533642591031854768801095241090547125181808606491389816657905744070730395411272873597427731056462910864224252312168721424275481797560873078998076808156523770977645601862826310194729508270448704373143955532513165363891732894762442902974712857360589287659331660075586523245794044310047178399620282826768319445210189234440421974997467945890905027980187935095035845899877091953029919121687816055583751904669323183111205688207841615249286345847767207689724901240353799776871559047719521253728528441498151544475317521231439945363657166132960241991598077830677036787468536928020095490267420546514986067575875641917958954159601719992283503649636067269688761133858070250083155072087419887754276822866692549461906812702852084916696298153470725188211099069535653261066392466392758726925228733105702262353448888619090794106415533403490005088593387746184412460848716256366464937967759617223445818382501490794514471688185363863478396615701098122843368985510119063134097919861539962046254065418594516697344441180934151489031263144330853823829758106796876429786257984633464998310494120939881459864784971942586345806478910376988160182083528830801656029905233410047079232424239098980036806997895211101371196068432092561714228938921151906701914056728415154018863100887240370084275945060821408632339867182652061828184039231630218022046234107453168139887768882431951136574416050313842568605157486699264649253804489822000503629304464901854943544394548821668372229286598744422244405845527483279633749459682231980355380733507901734395465979314487078474058068842055508264660235718944526342227869177863553485963121558055964614933172013661920723159521952607556436383437882804960708738404329279303865993541211308395113125751421422344658646184447794135543972217159421907491297763441150527855617893937670974703927166626463414447059348491699861033522702553416701902801225535812941143719381491999920725080080795525807488075028466349764876501222671412037226413984383448012453700399747500923817647753123652387626171504446285293446435087854695283233660899268762760246714793056286459542820202643486580649180024993427550552754705998133745635021994518042126741720601849548120795773481851716933102259055001767033481347597410113547535846094305710440053264515975532515135447518551900206792012913992231168627883875946460078065569858565751583392977974683995885723267097448093496637153041587403182844982751685732887344521590594757091281920846374937518363002385001506676730655126507927882848292047512360429824708322857641511801145212139469136968434839173861026814248231316984463578694744462153063230631788923134212123939496843394539871933710714935015284653749957679953489473186437135602015708190150962566567619736847103318629346584783741388312470746383822187405713581665856484685531223428390735659612752897074350233928871903782787236379163088967462953794597330494897447158614409773154375206584933475536791276464746098135348545519537141917495056417910621828145820025061126852833506408625539450889146327270523858982763132579260435541978412345434692867565118981864598665264418586562155364950371367512924243166787150254884621048471664015066901639445996893855948032782052070115835436208276889069895422822349470839154682324672325238050618795759948625553602093980859184103914187560552798684172293294371973340979615182144938466468323607435738425396215902372915900648006129612589795833082464453976150173628191776140622816252272458073782038033845593308246554159673430870889844306619521171355085231433261184287316773048005068502483817446393852421829382097195354074988650521778620086272207411003061031971167097448518248849421344961361728396319063122163883325321606138337975813105399400611327924921963243984079138499013891460816434429020304755375074581202339127516175102313849521478903715307741018358528289348878289323551155736890523426184230123554476687591643033505678360591730223233049429196884652127699933553254791183798338007055441984996133714151686254053272055828883465321192056584666632641672581175557412197749608332427814370460470970372886009488699645149782469112258004468322059531460895927245869446317819153122729540660030626449308967358948596187439130518734482717748990012359413062776202413257337178749614406568830291833420615390968379729195500183438920859301731343904030466666708610674756853631171882277794103424279683201560072640118384333556768567531009177428112304518370031034355871212690914506753454461315007585581013867911095453371328174104383885375052397839639737710357387811020349733459455570768515233191996236721271517293007647161222208457838633782670429803826406115991880961691956889142572853489640314551712060846233810816905345783977717722128209313784635038773357013088986630735349296845450578284799306554074245895334788333448951499078190469884122904633038968750773719207366076782980246516929220210541988368084853890986489008957754768453236073401583674762484048842844664088689543026478508929146843909391268788269797872891361746000780711160572628929178426607071321975572858711270520759662608008144451694452523561176288097934301126436420829643245368372129910014466047558951702197609555345666304906555450784177492116996672796410583517770000650855917052523581626498390015063458884383799909590412377353796585149979515092865685469173355792603524258120606296162846049659729634470697821051407473166109350490804828303506224526837478354014983123639582812541295194223311801087766561715762869032851379915595183122929990172403854769680419085411055995053316337875137046770444118754228381662137971885998777595437060419016121548214414531378410385684081320522871859903823038896516664226554838411491823954648067432738068617647536606560025976902600186950620998620604452575850143773457126706058737429047888194705074696213173977712621040686833217226363951582382710383426495986854681662444385408407084063932969986745311660269664085179658154161812003435535598429911640540569588103259429581095074083899769020590234696343368871251153669616752391001533468430978310396368714266441585211963021450811068984837889626377647678339578748002668429016058753624544220447539693190446345613229160892945014132181429799250874902238457522158074794012521722685859469952800442536299456029683575863194781157093952860699310551313185898377421700629445179984637587378361827450695601806425408435911465552289172790606858868195854140534312815621475127817363118724939436558295285221624913105364860662774780085166126837277679671663017772252082674610658683944879590522191485683956181295384589314374781421951320922358206172086500702429775079026248483317043149713386029148401867669643806312861018063252073216995706125960514857639951574181123138097289861452393499649223612418638888146939456906362003238529099489976474299332949261114540366293618898473900897778015672484037949308500115848922937264344203730634957048654180404071657787580780705062704338797482842680099640841517810780317997804955244121136014065802250597125903222644252579942372415520980946181797967195676766141585027402255690193645519633257267948627295783066663041110982983711947558436918083305319960086790192432757895262572117214018127080354578726327636199830776803567419902991386809771794574348770681996598488294675724014175577177972691627652980925557172780011208663804129999324469131024309037096887887435801158107019125063501681817482931162884905522805893548067720391475454969225058005060411079592762223218638698947200565361798430787138234188543636663154369575794635232920641617442179669040186862231358218464179857129407422870612577381591198599760615931045451295345438377730316115801768909399642877030118249070481672495654212231919819722685121664403943245834111131383118916394432396028482729768397144996352682163357463320514077672481110902223606702603337485750439876759693375000879168883907165480797114262741039615891772480163217249681300325042541325421873055647766989764651953536206199806304951068181655632230872504200600214634618928654858812372463387916019491815459960169529889346851046532280902740551127431859641296276596089480503191260628586473582447136461504567182521653575655241048926336393168082937674463711475451021453259094319712305152562389095973989785955495432070592369099555699323183444979629581453597245396039626238237601367913724613649687013256998291178866801079147801766870238028661463059830996371838135371007987652877746193007831278389348019764608194979789415633057698553794032614374520135048231159296962800142507799462183539815604708830266830176840608421326815072635399692702975697326419137671183383016815879516251649184656232946671045914352713076318717083082268516882995166390966478029029410319164365329572275268310024500384097018301280245970370431668923280641789552772677638871626192744692233944988535197080796318213563778960604870924528640487799451972941838363746460217822610946393743488773079559170610756715084528216642675775495611810494992411865079347241837477916699178592477379857606667383687428482997938994416886854142411722100650751512505932771011886660989031953999078168993612988195024143162354384006823157467440577306621230207300129513629257203139590222253298145595590050179483595842729495392555787221122630115182080206325753371066064751774904022850313577045463948720436182043965394845125626469151718392613005945267696345890959600580004997489876865541325898200238670354514071240478346750642709044775625111765277613834663213382723932735636914416479479569136800440170041329362518761147820091823760743268659795616593903252701129564503539084155264629002582369907086146263681676675469120791030769289720173410766598028192909451656974585579530862273610131000729796867747832586142034069886587930793900622305870677382563584740421462605062250143293462803394738498516411317795107079086044522623388926731364959558544330727353180797745663274498073655792358388947376780042370263596624783093873402528525133217448596624316973374626172235661886924054255956875024194087999926832998066518532954270071854222866393590453334580539278957095342834105504576873482825370371423550155510850418000836286492460597544670483424962438556919715041145662440411106403180544072863423671739246707936153539131455060465147440690180933908190800015772192022380100913413195296160014568411885209563866447930402798618711247818297360781516733837629918684887475663163757682922834398125012013761145492784229298972918349992157504878747554683072973148716536525024520330196388081734936055492104530633317906509657816019633871109892118368315033221339962284786286610900342876185621495229227328059813589082734444936630052306633157196640479545573508804072725817478040389071449955540530866988256759727392155026329202165671400016174158903247462916102274251000833510744236836986746165084209784352747909630255073296973891040567342793833120180314530335007339664801230984433253709212742392788210140352402305490098836185759069779079471789811106466964558762372612840398267490199575554943230953053785947389476133658983236202525507581668698310370834942225785281717411326468516672981563650951173766492524061957413712117453086911607596173533171742514166485263734810227323215103450262573011888137939409975138367780170715432687719138213822363593426311972558862095794832510667878531710076801222935556937269651012551461047627788300491447137568121187197199532272948957173652872764712485916994435232716174639522555869039029562125629140537923024319773838927737629316266775029595500107411753315504849462835603145382931769011128848581816876867780931097700312354719523534202784976387391123960891674773891717406397750169207601776647211750033909730840872971528926465776215733244645981454709280110778556482579720520960101654080854493695394930675855534249788582628494015247292491861110412629686459504708036463270886462516332360216847142114038646175649621459138294932058402212536215001681332483845995782592331229327683665071003824058256097643018514977845357877577700122274907631541690116866639640933219454573132786323681231333486548211692564538090316477370821444955182336349708167132126304337068526067457228970137964270575403123879127030357146147340810171689499338089496500353924724208640647686204169416903177642377238958057757907307693388812363202098094643704054545933109350230320693328979134337467051314659861366570558162168313138823214622488345240191080269790222547796144432042129595603126207962299844723684589364481560715391907221783142930081131371606113216868438315157752345273989850883499260865120508955430190444692414150359356707649741604733901023012942974542413168341058622089064387949389515939682777082997346861998722500365067060933565332921002538741727108324433590564118881155993202022629383079468155965463169006378924390195358065787355992323506944426985970058846343176154054590089369887017447092699699110312399178712844488433002860452832819571582347329264342430054662066745551164410887781473454931234267739099829679269030427096615828270633989077824638282209559200828898857945616802193098732336884076371421313034064325124307489554870433700907502410668461172368234706820464946210184724690726548978693634225925455147464016321183859161266733259551341087823059981983876928796418808873018362975933769711208201669716736926589950816167534932045909777367618074818283698034120633531620554554870495323834177925678962042409386319754104355400592713365472052894737793254395633396470930955683995509913294051118842470298494657871576537011946615545561346052914430394423089548964932534233941550847033541640552189727921655106782694858574077768268285340003000041408502040732622094962364078727602681382437961994794033107427481340927686347649510466244757626067340971973743198934207549012917478027273144962179474095763980175402388338784127518053811450406635134667877623672722017078269045277480502012052822802046462062691579112448340388450360146957660632412591795011339937942264841652662680968083940749764373340063182043776621058807319075689338182686482999177290275231275060881193478671126953789688198677546148351176204776462406726385315465150907964270496861161097489327197597593454639100850084381227158696108516198607856402106898078930275543756826118673173999321399282645125200350751383566360388961592904076107670284991095631012073191225269787144105656838977785884504735162680418009609274797238536227715069684329108608878848045169064971790465316277397083041871190815879354134261283436652035593786648060198330567063514639330239958264901806588015596244326652809104623464671643650061720483919483629082373261764292952534175355447450710486226752349045936203544779570866241324602086055160807517604362090136232519428630252134532357077939785539486807408392119836915633500982131075091927139189554360904215051509120906523566990409025912041349666110278855850178764577143748962813263706766713889808345691937634899329076635921564667741885475203762589013449270855889064623891415501396546996785360165013779143915965751940951579214109911373010682607100983099719262432566539043206446711729699075093429479822892732672275777196342375680476178571753974185539280032353361758361497077353299862367397701384680263345891358707097835480402650820386817991745650217204107605838549469740557163189337804897905600491096785669985557900334134377490615452222020164381102158277253538098308386639963757056318380427068585706093532683951773343352413744501283541910139113291134762063861327681503257933891202514406881159892504888372157173581313510431536108508913266072731349740721192842939444985385058713199640324642542274401577812948056536512589180302558244861449664158945307729723577355825891891651338986262267522045588003855714910847683902341756330295303203478896367952042162872291452353080361779195414948010746664650456519616611810468870328216190354104213515484179401691842990462217952874963714159631007762790497150883147578995954321215269931937464193951767512751129008728055759502281181304593575579903412214465509345658838242501592167089926860712349615924461185499241575941036743308889572724632876158147098635159306950794931113904641133157982684212126623372104359712100558779123742456478328356631206375355766327747080933058675909825756360038267839512084668342525045805456577035917044294016525355112822986028052100987437382119445929058398101492929284442318993220356192942810746635409042925993013720954545097538370322370338118320733193735574674481315718674704203571024505593041771927447066438120679969945763449426639373714102027817523041143761206465871670564975549132616137342369692534735462796247034119300986143279753636421895045120344189453796889217058677739005201025958069520511255467003618227186636825018233060504236079519152152791684415787225351498323255418998885164349342047915518723868213614603064641823167044188517164101336710269576572885732990385067463559273660079714141571427877697789688474831511785221602521613855251760035104216113232545896332313581671519945127391607321581404514394774685919553216309049771013708541028087604569399938225207490498122546801984668487617529814549576100029994037597253997584430250841378628803102759790304466918588860664650280035606343679370530263776272648219447813776595240434648860717582075695180901150690675418367420099112258268382534497666209853386810839689651257260492840742044133604870098343472542962736967312605064991289028548291765578342440206304122699602766894828485066771349022323195519687556452818971927310973643688974887194968380296863664595926717815320026450701578579120897836051135497797113667216069891523847716430697489919406046037616399522025751235960044193979473365269967237935354643092521780701688220103377965434181070115811441958287648515485067903210147923688529742392427263743071369438688413259698813014386284234880313864542103548917276307507933510173045044067907006285762133642299993817750912046114696074740989927482907209584739366129802714705139586129519657245337958235498275192090634076527812241518234255462343864972575239194487432063528443223243528438692602671162467022635310135540351236895221134714410696359787894819819927692379076368781445593855062470715773718075743255333574950909407573063304675337318239947375403642357209121264742124012537369979534915732384913975881635631614594725460190327030670505496375487447181213020997073917301525026334345118356091932778220293048896172608655312464566945099628555519763768047566323293452636262309848106617423290414136748268549438789111602054683856032348928902564626861941226266351755199757692185898486032308848799145563229177184723809841464558406120199381738845095077945613170223256951988003465170590764905618606380481275425751086080836036792705576627638153165242012180079270247427169624415820049045331288018055316411619180399781517865837560421938355057139596361552300180425660986289620268254548295961772666336123344769947875153527344659364064281223314137369286258937989840171442430938131508674558902399042862578822262450415196846118427719329433973354002013647542575224084883246489869994434298930660019268951321082641377216240834611060409715519162624175554818816644266823673663346257887479243520866972086216027295034970241920971067183206010733274505829461198380156832260687065173280725341809079399285141006772151819965863892111894792673258852759866626818097543343678086409827284259874877620778529561946529972097518165650844912403446843880724546582467024737833181820872197694552291983830993309320559604894746370291117058514526124951838636085932874846098660763331967813148877618066629123392467110378331233339967643905854314671574561675974382062399417545249666320270724495360520827043755395799382159678985949677716011861996670105041839860620988871312989922520447120534840377062989340825319654129472890639353809555945027851973515101386154826147740647479143291491649415731211012056262629128014586936977620219649620918489508262730659529572721420742190656144795701607113062166519508324861431483308558738123042360493634329205094564633615255146218448290335203338062470316233485179649304586505269555501422816988562674885840937675116004369682663862670973821573881343602703285722928141859911416290553361905697241069839539755694525111421058254938001589676236212376693280044636024773995624255497376697032247730291700549063986568866597540914585318994556396336418110979243390664244774696784154759581734347669306209331788384824311456965875343107626708058828365501510865328393374218257627582476221306956364955672181105141682794218179017614581261800364382317480622839344102440472068194997438969630296911667901202671678820440696085017211881594302655238923545709804482709228319232601817298575209093008397691761975363443473227116127130078984551468614073051597021588565940254217234204056158649328900432127294108597976496987459819242667342310920067670048461091550113276646556488149556595406205924607801858831052598699799663486135839396781515130973092115920223618475740740481732901517318601779317643839716430087788979223366459044514228555965548630667901931574009291049432094379211200474349303300765617477633840130950793747490051107288314171355661423384568236229223089668658319137067170701135205400072140531174157541742219327731892665437082245903271652931259823636129652438354312563996887572185566182586764918056465885930301255249060678972928893378996297064207977248107421294110062612291674790675565365302519292178262662063245120016508395932858654054940770362972309325169435418513335767954550097223842527417036890035002039504423963180592010451434271457863511661930812883215692071479889972021909165519236603080630894363974070314623600416408666920401650932141100168871418857756078811304827466770673269027754179207448705723393356480408928959690737910939158944240172158224157436205522872403766059689714792223778740338648717890583130263428539714608942122777179121022889847845266695864507954362182875500670132483417119608695786770854020833302909823974124782311554651966024567629614904610573513731076285830422386110590704151821158416771647860353966525675884526407354071697568408498176549394189807694223877747376997023290557435448729501889645279540590370042256203240064377243111420107416393631548425828532932524422061497135684002076908304245799062071565167967236929673847649099707154550882243507078031556408331449487021199500463182277932840057247395392422628432765941068084069926108997616447983827038752465587594969335998747761274136580793960891095667270060597604368457699327104991168885572883435575451809026117189995675966503591066180535099654318283094862189208640601899244056417995494808636453604995914838451189310988234633428392437778195774547855026112952179263490391977711342012226031081178639614525991585077215472830769761997180058204390504728066150622779596648967120179568131358412333721606610228202870496365379927486318422262119281488455363915670942357456732690727317908792595760356847035669327464237220089856908742601767498105517310832618480564292830676979890198098479268968342855923428397214906651667835725111963912879944032539244787931403300322664786005659062412479732121536808508442344350096926539744371156935846411034842945361297308199881080190668836020530354721078873186925748073755242849557518896578586968714357888914223787129993043402161411486143501175025410731641080830131999791769968493505599168792332575671501845396909273667301784060562723149588181852818727828750667343792783949941565962887288479804462735528129928353357478436903052901948040015305678854362931526566327030205620106279376641189991105432598647201235602230836752999486259693067450658297049617664529555375305041665319433903977458803555413217963271298971616482316463353002802398343540193190958145521490316843940863710321814542076375203640904020486954353024528693339094259938782043130214805819884739245575749487731000340455988929564282054209383034738566459321636819418249083185775917640134844626677787501919815693700761161910368197861188223414753987448859595942968784992338126302931184137800165165476130822454831940160823056247488469784815119102412319973908927368161771123928624166403156983970169715641634593859385020841871880886949135505996440656976275952833207406715988183747201134196826604945259513225720001031701276937334624805620192891572380819866707869550920134314763792810443207840697625637875900678146464571199230433586913286571119501897319952879525471974457070428566947016026495530367609076415285716904325701052407163635010662730064903612913159046172106434127284778192768432155800252495978513309863619972459686267151144932838481239465426140559976058734916503979321374104418916624835775482313772072140820833933726956534246423041918763857900135234259331159681568548014377944121207219555094824996190540467353981636620988236669589127949936293484439572796978594780610274612199738516625473964469985075421306913130145134365587747041201474367635968083840636355982175418178905508968017340064576563745360690285227048543356852169294594767053481455235906881544035300266304022614630819785820634075620512119879723530879820873849181978825090186805971602401602929629916326646480356984306034036645289727501940317563226065977679335757509198855569084749059930247780115539549342230566995946688751165736490204334147327059095916581234647245010898433920872905612298651325138433559198308373100371875253855948597120641647256964770407584076626280955740080308579491299398037823401633434407685384174093752242281889637806495788051083568212973313820560589168196423774087374187713623227596931616827758394927108440741312795562010822680536867610052510588879300855976127242680704973282345887248710791086969038775382198359360948152713763849366741648306604417056671043372701685377670846335058486695292935915021387447461149090148263786428189412992829139473475516332011626268890122674412768161130084348371997973377467899807733561081091634834242830075577244937571490643987390349617970668622152081769384144467043509383588068971201481095328649121790944621034186274878373847570721906743457253005397626072237509093544323787057402711556727891879842182742630517752377605060852958474628508043798755287927886734726916928928028969875500904972119780543848769747024771243704173654720749987988211658251101547575685268095992484949617498150847995429471445565043463200992165238804056434801093669698089021453568867353382606932557325363556704379356184617406471538639808307090412894384495451801375046386617453753404904216968904270168779536731275641481457452548677894243883872144877231285063618664640133920908178215799578947779024405166041885504590219555449100703772785830106703756044213280040784031967250564149422062395433427914094765922672497051115724368437327355700326085646118248337259187552024190128014758068360700911160649575739826406537829181126265817433191516551087517569395892158677971751249733409001151044399681170404321455479609747077285542258133657879486184642184893178800133394453167513625110334198823097378971709025696333254115857674494050473345700191866389614936448064961872583624607557445300175851596924253948228808497954764286359670791045463116435070804042960314683001636089433271537199336062686914547792345897327196111173969272845727064943570294199560923620913299903121206884053727675562377528789188760211782452756920555713011315085611857227515553056419246753071359992154238544559094720900292185999952300279483394265808579777723159192134153893015459975163463998093941891686229511642599065380884605132719013058485958558023312146937569486955343218698785593699156475329337325126071826010738077857125035860939673160345468347307363101866609109949819625214717950000226653946631592362000076791066033040560460895154502485152688663609550248836419640104144690682076631404173631841211948612206025848319418723491963274601043401985401246813674037310512075954927683398029943658198241786765108995256575603412927206448740661466001518213434294379827745066413330065940475372104190010685624575356161861069449032471595383633748485782458632409883682541822565360104634846514028555005493270349331693982274345631085656171504352967977237073800841041481909172213936455103528743989110007774994784138614980040007037772999962354704886123333469233364371937513808760679824270143065540023903853240839618507251243456163288442638888647547425660069084106156510036863260284104238345603519628725332023613575125271804894816129194474211904484418796136883342342430298161074806084605238894191881406507129784506306427427211574414453491094851962136831974678589888300399016905731710942134194365069699992029747610630132318028632682107789778427208412572455042370015580692779422103337112353692424969864071273773062987886850861991435336316068985959301862681446091910140385091428677748305484279733186214985556951715352113727329264852180079870707027444793414760088690623746451928295041333597595805961348072198947283869556006051461924218160336751277209013853092930359990756363071809434791140958398208631159576298383902706130743014544029904217608228933738595888768903141785577306938616655878877216454341497909705255361744828591248655728663015390969400007763888734856185995630116249586762846690974082046305673090669534169354539551145347840557253507484307906813580203187981905695107890754167529325940623827126554072137955814739971998965954357522766391849091693571793318882202046953776889695402907536407598371178987799564796485066528514025206336993038055125930710164907335947876662012485148002392728062799877439381762795179127668309694721894002555333236412079432993349716685027523289878420358415883584992910719586414431224856145844334394713708514703661584685570891775349387690527428853821273319559716550566668009473886225568947719176286875205897463719574460938341703844757396517657792059643384018173479209778736958613102916873163177864251697085888240343179527297700862004196949027660127578661799401437435624824118410914441149257978218146891313021847829868222502924886310735230121764234207201963664129696312530942011580537396331287908812868046486293458205357599042249604421809929196783955814122263227067028628934145207298270642094466343252554896741964395793805572395582317186427563333935863396005808835748075372903986199072835056622408498859944896665955194938299234879400260253025615926424531435795249510821527311906478141609863317126322992537311980486741834274331256026622758171150482714215953324858055273824039890616045166142085744640720633052872047940903966527065826591658119169151562381648717307916524827754327790496097385347936284945579387077893054484476185032315079655455149211886293008984363427233703620120355964043510472898507545276076020757910446042846482991216541484611437947364990622261687957789577583285566452943667688592902906565235239437051738057071952298515031530922007194098959542154752866798246951773998792993545323411062109469744088661720500008889477060830438099175493802262342276930248611335716585665458824721050228909209805124497844214740947386853927690958264173800722879159883130311197658211563025795271472262586858742511933715318691726180625712358038304162820283330616848362309304581802921634788722737251736241472531106428894792304487710810440707457755372019459796386096422954859100197687152983196138251584587624017336325314636411622047273557304147355371104741672966688038874964107357842917482180785677894690589254680258620649466495107450361285707096340528124801785649824887268248713426955515919329746454260826134272598107741945878147827782538551951334071177986985903922370488963671388672826287401127620774042187248482575767230712023926565366094030702574792624727853850301639553161642595639658133752030367695020503273112618538157210783649027945553620937960253513158803627935550403166970160681515426575437298945254387009793075516088291912651864390860047354030267730134712059221404365291802715828605594967253096051613947891282662310622238159497344482999035715395744949291762410455908123676598996437554799172419037965730310404505241556868961002448851243554991833501408493330805233092877252566243059913095838382782327146039694227214234293021660304329616472028482939197100553780449597851254085114777690971041019007344484148252595904143605666022885287506873819634804614331132180862010255915455703784648363143629758207575660631994576794028060132422778463874255552061827549608475216411188090410006789776855699713764348683353297786178765619205209686627752350104354895646516454288359847523729297193555546929829312975859216166552383164005133345911895285983099809317846272182761293004341167901116691021268681052767818378161569476187197641623468594498033223220463607377985195608125839969673662660680804355552265422708652293656854865392975422520867164082519700318343132933674877421473556737799698697211289490191438413060274268169067089070028583679721671097507023293022182778302151504800284818221088193572899502084805745542765978235060576091820715176595146460773035415196989422169899571225489913100318977991403238233220017192402739779152191813009514612569157986457472920808509749145584083704637937448978074104683318819174893368073745864256849707209213180324491398202480194639661560167851497426823343206254345875622097762563110303903543718446238036016201375240549105510136804899475974931049609116888425041278937452973878610714326924191297592760678737489921694168881696343036261314596061352503234769970635205127059751459375174785869207005398550153782695884140484509530799417035870342217101952318069049232417864582640782333753141155078811340774442769194619800598499448064588196352604440423901162897243027158424753267858589974003817799637533685667095491396641565089512450386943022148038995265074713468401544912026026567480194078733120717820765929574151612368027013386928266068045190701644363832844449907151374166012804255200968886534107819833836728775360011764382550551630171147626352644460789335345003250809447144238086979733294205815574927867028144770932070418163273719816451997150516415014585807102865354017840622472994304948090221702062509926847325903276236915355539650807150452356918381871253842783194286849225926148498729748111680142859779335190943091347868775616235424122906576484562874946388067357490644232930246324219273212144115453564335462468831468666982031562007874836883950594682867172393230615374982654660325464712480745116220245180215497879551250407570745177307653726723754415364517883358067607719200355606781591770357619713777653434277732655034684564962666802539185948241295019808536823677322472237832613878447091894509356776670778798863849722570631390285232742464232200216195069365285772986951326657027472164286388941167321774794487834897098353812229915876188881428138118327257510890257480344955353448624823933496376544473795225295359442209892582396267975072189753139223653467936704413228921159468709597312386531703695332639948452328684627371564950166162760813293874116307927761823175487554209102643768495775988246589674737258770681302182527315383802747514353430746104405848557920871586875274150155788111894658151717900943421312187272566752358391070192106758567977737161647001920957521185316466878737408500200936722816978533134837390138536690995073884229199245058706875773627858745144913307890560351934103959830694252358317693577119141082458786170657275052042189690171874806540543731901771171426516671463549148796153788917114993831945447715203524060079207188747193832662272973122564845887602719504213656875865496574244322652275578528921285794595026658047286942400623674998372274189070731318047042656447252291548586155905145863733108510733675361824040843151274891044412697155174924207318524862415339127855242590817244703907734235908186277504434787099898687525736623161363968604439640947411261459183984962181791689637916914533342641123704891944093483381109736009324389967391569666767132251411520577376961741874297021908687302780439478485057326762060500153510668334162416782198461564390129566732796072433237731568326202696799342225785074306501462934170164051394813923588860068460974321852621394150712546160025545496455102195425831919862170992236618159375147333172502450097039826296087905884428326324475500118112005614771859651981645837669567304331770168079711987245553162379493902831471318223398545350161105376883660232489930302067556852820858219568872575533225289864541036210150362827616120569670117263307259047804419735949594082591562468325794441793869440949909713729949729189158157739718000628533483841607442971160220818566476054743260440015090865255762112550046582379289629872082215392712291058284409914129787191199303196692781814413325903126033069092489022184149738547812096456306673598835730025404891466985275387958722240248522591542702937429969509049981337397508315193926332598617586098358353218711184798619189927368414119717869598812142034805728443744535768964082956931039828603320383601688908060187789834006097978265987786583190248906185554510154454764044846922511459825628494523615240440689171676809936661398258959080684741440846516939176920140491512083481991410530183586173012717864783416340323561679848766040883888054660766537582170545190759389211120937016346316069908490275614102554527224691336963512392258151230397387282093875798579461167227599722922333760092857029882442016185143511619044727560287375693086547289757843234178892168131651975745601877274825685044829560846070813539728353769317415061058746819878970714853080914964667641912230519114796985820867611847244705636481864516838843374567873120406032588396581429142345161357343383080037234918723708510905442160776961029957887199574820924558887170951928801187407254041858279261029192381804062613405447068321887810262670607796970225567008175882296722919636497728466959929359711820520395769672185685829481853172643290679208120824624465836269297935454226721462391153891202773544737546848753638580840215041440080405257079339242547921185953553165595161999132479748662942739733236578605505606087001151981977006569747982034125809564870567271720729967786567222820025755546419730020911835521967120181832373865992016090091061507909193760325431585119228947928723834443548873311561353107910574153677471762127808909348069599276348648663318910980153743579157126203118550418865033689429751224457255787990610942160329433491767905310079349801674337364143431550862053620031849278192731428693313786471826255972303792900034056888589546229454312775185514938703079735916447377658534090656109856700859678229459541239217292271868262259101611594334773472675778505008030110119870324834441285316883551366509282695913425772796084331927386566957937051648173057068724249867133041424344241609059039269788785272599934401075443175033783196132756532552954019917287577714004229092088747704588866753973119900209468462179504309886604389697903776743953270994501564390842851867886446649422046209471332715784733366110172623763644409048808811773828734449103851116508411548198353815204009041750548363001575387511054179504001534185739749250203417695436411747404082645720588860438038979942614271102955140718138480365049753293352848365287704491618846356508711500560883763513472962589729796966220020354596783961923562201253739717181306017421373906425720898324506551115897855588548174753476995249407814978649594139255706130948335925269360421694318122570564842730907849027940927240940657343185458321488350055038460634933195299883410059838529234469033734570814449465656912859070332833070922848512381822314161028253093579789722684467123225435675427294607348479406107574539301776774483010617945421921350224174795255690621068855118576404813463922564644201625006698934604586199898700813494998420784608829753283203257166252947342124484276329065104653231051708527281124388472434240259432070315234133820646609654346137861309444975727886818023999677456565661773154095641563366419196641571785626009527220102047852926399950325358962796098501882753445102295026123453380964487855653308680907920711468776810810167498566271659335345988863915357900134941869444501469498008292314275465545216403917135912637640193991069551680916172527295422782589252929021970357064086439157898527740910540424591491219974645110972544245496485816850060219288981771264746036552978809662246667764582398874879656876913724205596922346480698458380575009956776570320670387404068952058336515601051335892434931432211296831387434210766784119031221041178137443135455476942249243942854398497649640613092747963574357208946121512037471212775552463537774540183788015657909170041576622159342441622027918203920914919418293134196071763832887000381437516588677752998578596637005833594499441010597173611835041828684811642482438309913555068772587040189003007575405122696066665669115841071042039035981766154689559889292818236961673223165881032557651809598097180668252082285665058203620900111771102060483295609365208279131344037908892331937376536344491006597031775314447701209975205889536622487146708487630364742892981790295184107999311879759121269013849445339032849513226223832388209849634691506790285076346990536300785914463224049442839716217686780310735837428054070006541892720166891896313148629751310289947200557281137339404583715468998802676024824957763166812398473716790317540004582749198300799174449706256593050863661017486909869358428274026211907565478828988581904778292815126800296844517469852529205483027641753725296591844839260342230040859700837745013744706096281484539827533317231698273937573944636339687648372907186218433859495329295324316983464262016035972737582534289575001889963805702469374967790947291134560906814770994771908158439138348209423780818094472331484934694684285815202260989623493803333664610617841466606013542252456778703383376984526819202766922945854440351708130446369517441952650680157929085714274407376403744096640108418316924641530477897603505890797607268704133734486437173330885532192801079368973698252517278185867684841585206182202362788462879953209906264780960209124639657821003520289848843756851843608982661836245031802978877707942648483093650983849362011694491299384578907218415806896797922727965618948483598908260979739220684895489649510801760353070710743541023728838308712021008135908260312203753035648302655980208562365761656443524294414685501137432854696516396645281787222885563237450668315705383021052117534733668641904130444149335093669266766472388507784491984701665601114278373674750977689529368370051143569456239341925077675549984955155866103487707346541449213881115620026798651214826383310776909906298796978595241085300388821160215616659800548039916356016238496915217334933425647808965956487457792664740130938401423140850100023248891168089534278367119540521423752807010342179399947937266902225667436270072417587038486827338879746203475972476737905392749381569188066436149010187529484442812532665672016989831137179845475989737523745852729320830882089328292655520351196475111251236429947338014035428241288478599050936260984729065489579323601466524953531537366064852514239047788869341207726404877610009605690352350735164169104646687382624633337042903138599269525070590394541967447554334312088094571096578756051486576608389066906851345199754976224761736310479717023206351814474710183791584597627440357183958017812476459313870349866737616690178164664149074466692744460407309533710182869275886015694858124411079803953075487220719169738882829464002458813977917683947613977943065840029852100673576768674876982956016982220963851230857471386672479666554743437287636790727585115221679480426769684588371300599026040692160090599487957020759971785730144194227764849532500926359875934438788686226014911795748002511664875985834901995338012133525911034006247891061249058833266399801131951650169185512085039692206263777367230600150093858215805837066096941022350634809319686466986230089152975607576823402413958042543227152403477420424924849077177196881372988259978420817569938201317079026722230333844847609778156927043210555173309203871550829364847351906464975915227713644286639647116587190965313485962391961754615370563553320840023286080768737080619840893076079642597849489922575575049457614207433820565892470624241057228418560009067413322416048150550432026081824306434788348342046518377629494905160554568670063413796425365858164036342946228728375275223312039580617703460460177129417476222890878332268432888490216461227380542669067918705749128415825129841668452001827747312362078074878298065149735600539940257885273263693354750021503150117793374540819999359845033250806812530954653477602037876767693616550225802744727211124542185016533393657492777705361925275110347473397775415800198636799239069778669270103896064754117859255167895001588847599471510780670401873910443517284053299351604638268433907178107944996061357200206953204660103731204877214319188845763205198357600540606942276421351999749024740905507461997775497573093330764696795523529175022305556015179224603969996668708626964529570076342611482288060102509667066489036040826637759091070436963357192663425443457167008430452936013379731585821777111904113449027042246075780728526940084213359766864797998247070362853956473229950978642559374199976625558179699556574883344181319982526194184905091030221282497327629911651310538948940730693905880373957698221336220467664765614879489574427356263754729546577669152640016357961314635900069620728331655028332381180116846112020711914973239383417787809970632037441289060337227714819063671397230409590890538164570023865229590942571640822001131301455858633004902496365022647097742047102336930852427863709210480556377217314558856216537116252133625053100157026616501384520660196375531367983532004990110251611821346180498561319118813759011650817365615789482858823942538559086901146371454049804877352004798893286482141209882297452558719782051135601569417205896057458076296126885750392604746079113399235986630959754225541675509559293023333800419387829385261063939924033873955322519747126510825171080852692111788019322146464357220778690048977639961349093524773533488741874163846102071349953845843602512525113360111305690896190943285063978805576294429229907171000381210734552000551005527563259886129561884396750233647552709173794103982695538191791600497882178948210177645399043576404705637574845126228403959446710610465311187957120266842428091358313615396543129156627345047882437238908966502952246172204032395012796750155782653748707370111810289221444282078652632606771331087551741496272018875531084995929033783260936039068901036244662221302702413567223891264515377778110812518671340437266500882953007276440781174233332570713541782766574771181535475514427689411650932266322061189073016313064482818730901758707843922777932958296019227472599840172493281509079404328607002348534371520105571192407621090648437543016279489544827971622351517841371157647290819524883476427080670068003571112487900412658416631580634435905697793497185833861997814106640151044596265046356053004937081765653978288644524606567369847145802832765262834573367559455367339372366153214621813864849840067509916667724271353045176724102695778513393846417692520138022695375192922339792617153706873780199776606433336737738151050583022736465285313082863911642849529024437519825512287925672030407860787418872742908707020538425420871928888535547020022199652268428989204903735638192872942216181856994507219343853718247753143105957270131814288361127195176079025619553901721520478955638633177648167961294261302940131844610272212748634339173341733494661842623048700770616475151917195451742555392991075859369805654895267077799856226678602812537052179650628866498718737073637613744229744222043198749594925709872925814765145288375968608944880695353906557810952757726312220632979383351205983623749863848932260160403849271169337804357561629099312706767220607862315643674329183337853676069586038122596432070446866824051941109673301924530681937290910252942241503137388114921160613792003892040465513735629403460974509735764870019110654841570656394281165778708286826347882434248062953134465694867033216348416177725403331250285540020642037235212987085408568428022976956189747076944679995490230911692728959444611506536518440117389446186985844602908146662332292756157148750363730015951385022172236583331156525369498122217440330400463941470925360164519491550052375697375990954847548754402854272595894384388365023756620634841628616750019771444971138337212323923493478136166884718947013567479347852549370043679736396421311730079334843267455412998735644917453211795065892942172378834185154507092841717229610639429744955364186815383889648088715083490253167284866744330276130284814494279098147023758100352470863190974526212179030565091677446730070577570226731853461691482191924481241613906443524176308188993377012351222551843305533738417958980819692619840598386607864556503448690237880774610038175795163490599882333440864372024111946598286082994407439712264080727832910075688714630141992391652527920151097644581281075453699102699392153744519308464726002793805570436646465950138725398126470312218386755678339321237358874129422449400383589565248368118630580378726715318442012206924496355898564786075493028429630808317543296626228376290208537938745466928048056478659903172371586700067649693068102447725273081642380090478125656092897569120139817805326097643224309046916525862602385467389457973365862931768273752693641812963224212445995630499194081006657371681906262754797822531792377500611936544303817905152340077782586958240117381015285759654254800085821640894355943444621975422716484838606318840157884651465601670565476069066169980375648829302612814012904318376756089483512227790860799246586025934677728095506130299385008103354823937247103016691705147700448970580505729349698663050099685282447033776042969730128109743649722121572880319805120722162565159769858153897542890417010638660984914053174507452646315825858799046859041673039498340718814591501647692386189501351543461172953213784075276293551680354939972982491778055747206803961636657637012099422972722331102791979427527354243461429747192916759994907748543300122287891844664828002444135069586503950768850469156640598893466639984582991924722555313047040724986116810022231890866356596860157189009009820139948052931078406841892366627022184209547928828588387168798579841566441659338720830020973602947299115970185409853890579060340353532464125343719064574693192555724627617949575495009198641330624840953930290548421360768397680853816611287151077351492845405039407367555664500159280777536299830093737978357272544415174895798503392806100903662235932919703648349903054637691293069708365652881376625776711221713000881345491007096382264759395244335738090672129960674405927039866195216671724914496596785777957177136005368554825183010872901625110266106686471945267235261003017932755458454234224566560181671303095725859344181857025210021976149148865463668922473962616689966446450851939167834893821711858989387353315584853467552860557813026276514410947542341435618326352675485732959329340826732694741277954080936984635329819709657314966324454378075047086915373595780952896961618315285551300079829168323469226378272440196602346652437692704245104569409140692541006906343674457955436914437166350746706158307445029678441101823009958151964973188976014341273807570456694279191935432249970536304365285116618301449680102573906058637110272044800978483398005491858662585258972586559537715242081839529816159394007460426320230905709690436659236682740660430296718287903369185067969800360598859260268129293856544958000817857389516561898514981541790837439335845406332888792627733786530447003069322350776622137132597609711969979236573106727455728860395067624882061806640306185018113798447876891236361052282159413024013326842500396779056743536247593805969125129815151150635261872061851953894901725065340258026153361517288664019747991681253529973396396883171147655683827102030359940402553599744020550656531628471319743200532226423731481665355110769184869692038427857735386034634811863304118203430906219229078975510535257735180096077516623877500302521773821086660013402262802228561215701890281998724408835731350737462823022405586767100207281269361528480417611952369972898831546087402112308345569353385416762233607060720858231028821517244975096764820101662820884005663337733477574818635418448678740785079285467572001767629920400422292010223019793208023877292443599309393469798445251871622598482766573306092342948067430209090722906278772257693556912050298693911468924753890737069600416143719628620531313528802327751742256289430004501690812258676308558515236255975638052176715782353451340294486366736763297444822686010912477098273836917562451582407605001146910723738387514811526983714446152051866595566046044913203066515162310855546754740381296178738436838507000952340861896329177386461817454248271504161664873120005025147026220339006806278302182387111541555990377219713267762649788731353171015104106964630400115682255059798653385008266445804813106947508511618624396993602231231650800634877942157412433197342397370024946796981492054027687771580619542122998579618593275166223141937323875726706147050298364940509186247118462591034868813252457951101555531391989618881732903631244315761087555311954328181176417670796293930131362007997554475995175821052782483173057390999923315533873818632655460358421483138216141632190227182758765974182616460795427827060804173571385632863735622778698071720748504236850833452532607786017068887383578639629535589429813127009069336372389421499813405173607793599817034309997223770123934829564470889931777417741880203555146117094477759352686976462711761567785321720766000922113243488147641760918997484811908951449757074882185427716097151620847820798241250028319933417142360875859977160159542018462042407308498677040692011776542569280600663560549251310921113755045440510364442794766727372796304762438363731518094594500330655585393638236099921492478006103665090734661189566945685599603533910775066561774129915661029278178798868100899702840887261203272360355699622800028342487495964111329061761207296957771168367868812008544699398204424569556651537079539278292934260493814224639089260559739399669750926587923344922893774964303213226026653876563960363799083058556420839813652848120694027714363153361309971263470867060066504001836043945866152939010813190320755063464892936104835671604963854567121554136097390668938549223450724068588734728997305112814362038444779935764353933567273824616228498943915961347642363992374239588090358992286255327925869277782807834743211801691963707946565690370744353200710574559226132912417458364387139838330892483661185407214105058061039311870505757189201793879134450416988767041304530919919888296488746869043201901001988944912684544527397324773694443909208039779489937817638848717372153030470148260726116787549401980688510423127263016580198695083837830604033419154682412163684115803890187039602184394445948844087420493695176512184202742656067156870499297884420386767167537161221034785733768548579799036517425250024636725269516804409714706738820562682156150339556112370392713793443462284083855936746326766117155498617322551937596681893920796822353121171793886370970390565901063039325674824034136478630265525257181359884414970066296158445124921591011053839281752295602959916532107237822243395240688300288968986362234946542423900471000555381423030722451571798124619488498383276076047639546243523271485257422877854305557908898629778794018529527065447041229188812821584091482267366428223733934281968502912954201305070511902509252069586105339963600038430467191888929432867372365125600142760880408093313457333824489853666404877229947855605038848156581189883117806218178167319819036689009797409778162203769299001270137832079810024535075918578852546862653436576819637195748782580096356146844498106700625062411320369533754033525585576398669989754450778481205367355764737606382893105738852756117751121743913297505808773523125723201460633741111929270604037662279947582857064769334551318410553353703273016496694625470180746415129098168159564975476437629592327874569288793757100882364994181679740030857641365125603014393469258823586432443267141080072582523465216104101924303329242614792797505657258933539676438129719578243804065914051119924501331729590827531921775354425539657292330079480887006938850786889377390169866731090835806143020472379631090353261506970911980326980975443054260171133003160524924750356655699073324774392081033105914473261736155539112674512609731390017238383208976865937199202798635739833660454879148453252494900938826246167913894526569532907530463734554812626412087696940891300591831020762126865597070393450231750046476061132373861039385673851746490314146301575593580037604919838828609087642593619368264387698733139611106716046145693354295312762534855834131015866897920552596621605484148198161528901368751177646708996051374184475795924048873778259754104017835074359696856429223690249441795275537070702450017349930973638799608659367533194031167882536340595738585876414373126885257021430259180937212246205873648684326894977385533817632825166749790024838576895741446010694667869385312442346466237564189051038782163287742970812592999193054927155465757808759640420516407532018566650770927685019116174664144270517464424801384729776283233685264781870263355682780860576415638409123224709102400145928636789189454332007525613937390305709738146162052503784176633536289536869755559181165104152238317693802995820844452942052742266275342750261066769086744840613766109511292692714840042429798935994474631828340343472292905101177634741277700483455540204116922611079627194152290472100251543997103847949075969228591722399142169214580277150754152013560877249419722352805516382320576669134476963649820196240889074156728115776669678617990376840398072134588717190516016604519795867987346478210314448744783998653116671692946878400576167089335458906394447219479280378387736782163463234302837291356255149042340077066348065489880009762051359711848272623078811912114279638043048502608021365788182632113713839614398665397024451954426967984811697112624808594578207063548173925018390856342272027566411693285808244741851232373641872312800766459358456609105240355419304162298944812014460305653505778146589406818300205109650524746301207804127319721182154805784223665987269738009801270703111121951697110426268846682459898807393268219946315774710486700856534649555130495373890868994528020753020212907375154242118102371910897836358405091841767396724255840213942950489308146142296799069764576400795071296260572119520114055953701405017624345953247320294858281759939935916570586239183330124939918901136944366514362020722934830073815661875210565267580448520583411479715899717190014041125749401554740770970971865892838392587636693315431827892715740285603357740394849315491882017201940975789035317928610064319544033316367886695128848285011491186378475993950378443830725764792454161606092686019931463404255867621525474358030700283591151678200640257282422481443971879443656534334802076568836750465748812336530411132294521579560402132114072817611065217969508149023772931747613019201766999120026636713971079976748693973749377545797070555520720444331105879151844238185501784877147999235344417647472986350935702689165999304540521461107716802507404756321039493479485172035896895111321059599538018236385675069287333140971364728187719793382285858197353743478185204342067233821921805909314584321238842186609182866785074823860320187284596747081902068265065217871462756159197931002365008436924869185563159934786993614435947514251010936052848253992658009480111792874385542541336543128584332246771159820989081065273773223414444144246353454285910649071185476058020336398540084438920721338386702824254507614570460751283718756598326192993416938877939201268318874826479525641498256182213884011100708286365119978619460679278467985843853837203789652136301060003788362646908456384446121353242902158518194151094665411836942922032638126643598367134061418270103908697862911122587563768592175972586523089933757978467642560344132332895105561510837469773284304627295127667202671503359157728334979478849846835180823556605870659714578223839561610356702285850095131091636744796638048742237257072493182169074663996311753180466947222047682558303232825420402132459406066871464245269104866197806312831650424043846112152776885680348435745222119903545331599028697908480878558810241311617499555953926836084414639435252708062182732094792947225268135887902793614409350848437988013583186256623468601637291136427608027232673976165534421999500210081112687034504108262436930164847179778192782931972194546113710371437771703316827114811152788494449622469697969690855451175767054116691628835694113619616018642560329446177614957771882730498423509103995784471526761982935408008699388644239164306996168279229027401222222664753418225999322062933945640308433174756181004248281513972548660730982626136584879148751606182913158450626048821250733636911910511020101862283329559557440571922615076773388007988884469117977671830258657014206124989770168857983420054961037291977652448491935949311169316735646925230905934253036515262432894610130387293007523104465137910730200498404029896955287133972808923570986744035247284386890219782655838048832284198784618670278008599845441188785814690664617524473980533948196103217008754710620972498649506756007392751553274297331417786858394207801616444618094488417988036605150190852774776206557545950397732577650606855557683707114565401970048455170549165238330923410168276164944847972284031561546210222058402897615402190175055519705233144973850690157342935873050400774908393557495322160421559575144442665630962306538193837743519645275699033990032706496980015898261088105893186504998464119139443809248319200501329014705324988244471877971871162421230869463765659799475717015937755687747486667623687155308409769138850761508657661023119035577823000279852431278182644834734106661638993965124020044501325825089565421914895192351700073924523587508942988375912180202184880686764111533495962109156222505761143466609070903356594913032402617139168978858911650637882925711387135205275673282936543712816719668762957675956100333222945762067956976322666266752156323518677320452228336918780045839965435296380441757292543279922526127660913615271066008182115752080329129670965427363714330650501241830547797729260560942981291796948511061035740494838782864329989354702752494880384668770928518083597887101414719764046550172270803274599966238975479748351494835398137912837641538054860906347448370080487195735171599391979758883183298370702532114455574543534014123709078985497786920218494090079115328597382038101367042073956002126554544019464576762320770285296210770822147837751540167300372833259472382908095149542113032272249281868197639636616335547033447092348737066040869517681294448362073177674911689721622280966925149912804338525948965366502647704593726096879330075031696335222416753629824152379776442157353947152798519400408783830379361254499048134690727747711023981366024894140975196492110253881564434085279014231243856502321356089872393477676965847988540190754246830477031336121300404359249400968917306389889895218543133918947253342270175841129355322934057532374352181786790497851378191451787961369560077628414719980432459735863275452056239292030668000740619777383026925108269805791716804908390969445632781516513533221626740022121159416642871672753200690698330592023778332998806293479907977765059457156848605380633391797690287905923648547794324891456779712062284028003344358374374799279523175086962821927136381114616303929463206357681771734913027429286909120751534198565769908245021787106423395965278228417825573616716515166322123554772312237648457531242033296717227842613289200100852335496687740982004639766584111798773542558647229414305326482394318416610491914852528934935997467565916873483153924514911152561096830281205564162763309868717893917847627919250725693125381366189643261349194475976963031915982710248976070426101532793903034547318983855649978220858577879555589836898070168225527157704387154321125656262575742022939180868486428804177543164885098898344899967412098275396593985621123959314202476218744696733197282063132019546785609626213321655527723745603609917967658166805082543576181023230722696221694938078206824127312177533925088008172065685447960034869841591438896599460133087091624154036191294576172254805299609416915918103249565499786116629920349788479363407253407865936118646351926001354214310464577580091170546842221820735762508583274977779881780387880326586726737974097726774031021701388824637929747437719660217588993567451331339271512955549826406429053851044796903474265544707430050313653743465282347639329462795073982790999540863351365877713115074714126130721768716062920904259076918761166530204388444281983797606857039063688549650331481424116603506417290712508368809596173181476553464190921366757774237505166184993582585015551297385181880047770767618176941199561404402646948793103384593331911530584532780270441846348978659633422753016846847291250178910976091581967551369220916126316898822587784375591590383781299515372678869277288129229623291665719402812226723033978387608975706098568142794311044211607284633155611265664639355849005444804982541906765556469975977438073502593219809702666522615112524611537788379390358934667585602990835412494654158161671832820107238010558279924670071553019277817013050831197218487918598181640672676655275539079257404223855552756219870092075937315449901621590603952325943370642840345915985719855284501216357521283373860398789483318198538686424384633866702488816869516849605436724433915791665063187215476805621145928585646047130528172978648767388382986469099976206281618645969739026681171422329052531707328640810616891087733173448333460230318153748664004755427638344044799170627488627842454210442998836815398599542782330132830944920587652210186320426763209031648050939151415434781641846647124918993322409668767804542374430881987460065655194419711858594983401343278545294830635949745664583165874999515815154079044756701603468796457715788796783464823469033685937323438944344636907628995010856649438691481712590118849449520613910225884493138025410458179624719970585398619861928553326497035592310310254027267546826489669076995831122095861494234535654968126614885801000889807106571200537532170180122017833382630457747248354296959033267819043175848777641338293379739859819576531282568193725504273442882919954654070644433410385608953537741008113720163697382410125706321135314628930664606983579415590298812499581990167584373820362033848846419276042818494737175487281158148494829182291860328760314164326358795536316948778762087444667729652491108783819838921011665886416492490082790274061163734615206060601000276249985249983186694868562143867941989736422508842435534825648365569195783911079977045228428928301541057716855700284421905722290920032047257038478177617561783269531811625180670692769602958429691391828404110779472555110093962627595438727344403994402521084605626250432983907036155659721366634316234312658766147848478388392252509504772089419717277386428143336287658606374997410009352327703017454030495507628796806178196798319280375372223404750295093345284448965867249531517309227759514970614408770493187764975381790436463954804162396706125282103127952488858562328949821857585154857773584006157573056063305333237951216764469039966727812975359373686269252247473781585839650695715084657199895818236426311005982319986554637972805082941196963113916404968019818734789692948580797937937209205805627418399269915303909028377297317073899231076492392946383672517097933163575815262534821147538474006091482890588159443294032972032694261274989124120244321070857013299816506122849304795894805035913926383057000165801717506342870194130079138385438590276163573900377062557555247762066924265484314679266639773082980712744035237694460697090511254112297560377889142798653370380035098250248433407530984090147759458466934370433677198367501119645723600082067653874785892873703523551190495197355661977191590485939410114695000150383447180995163475076318272011937269900260155674076754452488327644096485489692236181250527131005104696422636985109057340033066050701508028944759363296450799540817656135574574895220730585151584663823120201435567924839117005249700512508634274135994008286298755068978969335555238967104636158801634092895396646961337374416963303214666860447097478855056206712033597930986465733354986279254977874331309455032113071513518314892561202913279855621132377758765648615289632842021015740769742724127466203072908261134748307872121390023989874856740176610615376926864561105641471397063697135780240703449314614180206435181534642041123439148402020160056982543062238331638003936312214625157764657589308474492704651624992155077560646386295039035325246323528069080938202834073518602732734727900677130453098850649863446494272546958171185874087116322400189232062496687645340701125705406502497419242405482428742417136721784053316050002364500436396567283066175853990318640632602221291393977459682319671663745549740335512811114139565473643176910936377236917742461505637462666858921341474494070173857999564534676348298484930106738931483410577982785396861681488900498398932829058305522104654866355187734942197879694594101741248555345782648545153304717972962761517623725429653354315502509321910234590927470653679949781163903879948571220738169141236235939594805266891982901774274000764519186142096510652795921500515681894899068583875106638607232492805277359371936096418835295768453411816415440229951503845062260810927239088210129071629609393433269351939756798299980370268183724632408524620527686591708741853390882934968000609423514382526203549724717669359692072165869364918016341599812942884698716141215277655231919601507709154699081230570852175387445659796409457286719044978042784281400520982625143570868789185483093016242455333021520258480400978306357149139404155389914559252154276527866241188899929044104440749449020420732852115875807794255057287602784616503445754216726010644634171507302623154831136793427381015805234137046265764462710021752142496495179280976071625375697073466235722041894609805962041974177097975559754010255632120550497453017243165314728440158455212917484362676647370171312624474052328043942183989653050588692546865236955375917997943572393207812355228491772433365817016948072574195739608312365409064138562975735983353349582058977423515640204367105087120416079588011357303968134284057914960706374278410479643858383159023736223484695707314436946988819812720462704363093600332657042468504281134320666347790239343144015924477892951860495848770489558578806069413390314251766847487124930018441588622555679055552565592778893040649874198101075686812020079686058967143242201993482587018751106083805456494929622539039646644659768924382311761043483774086995784639790366744521605846282009882102057912376695647708704631897032480746329720856794701597301990834159871211024597363699464823631585608289543137069768213306884801703988530085923627661332159881852788835004220761374780707286914686738436630787784242949724772156295498186023186659375591773411350782661481537049825496696509336324720805102456550943592580238435482386077176417832636764309837539973743447986181519981194775061440009063248743485564997396950417532641187900182469922917761971278333358023630247874295009730877105125177308152643154682039651931042524654831460696174875672450748712530804855766540347173596188648489253217610230590011692400373967918780237662016231165628673824592832996275378883072535144069204335308178200544470433466501265780051765428304112684038112203634447973464837855078927787688143060323135149879627093238273147932566566257133152782575042206821826670123832258685174443272887251181928280891929180403073865308495693880171759184475667369001682601521828465122902278369852445618696831388298620951486803607672473872599091476793297829926730640990014978781581830068527906077192051690293298038101013268466371251056539047797899811666005840491837894309726192140363741257567399536451902846989915112801285185090582353719901078507876310934626132354754600651670614415781989933498715829655765446121192639616546405531718637594096810667521845299201693671629134525084586230593313551736829183739700633357698360109124034957617190838911631326434918260901725013739975238842118611709317837232142834800175609575300277886736113929395060441006471204374205788435508097282913079484708443431574392892594279515705376516992617032422590381196668599406406091383929749764443288186346873356250559046168442012116954750084001018816064252314765460711025586204904061731705220538380887880828868939398347610235653356272080224952256980369709470308781503485663572943477551332426909078733323911975406626411670710504458700497289139111150156237867186458364571284075487610489113311945608528917043646105980603574348778994634333041408563950721885449638555009495058497061938020824067282195463793063273932965527527817520505154512346330708821712725886630102228781650244851162579658490563996814566451975577946132697129900173721858456236986236622832182253652197132498452387691713071241909300425286727754148312538428905766425647331860721940097118283894781633141889163416078915563312961815852747852254011006397951777329189902427207389575647678005452006776784906656683987529354000803033397689675420966592954524360196372737024916358551150428659026726479445074059993970557846993673031898520866817638872323186210748932570912661547410340077601546949487849638648601753686251946097783181798951628535714853321515408675288496952079745433279054914465522552259511048147652815296390171907986423628555559163680333765935331710498779585901163005192647375112487104504877454528551835256492426206279840052716665988878044605549196483711280426656186436109003598424999302250876339934168150113749665190986255206010996290928663583970530922637004488266803895416554316816069601316656516205746634920746786997330802869968736638735476219568906236182381401091211698975691896243507340326062951461816613877607704461877222102135095636632511308440299694729737684501774966824435928948340174693527054887145322962704438213295458348796749483944477456913492786985964885629609472070087303833664517363407116384357954412546999757743265741624732432883808942277955314087501211702618353715251308102083114970556932244651344318606350133371342417873032782156810496921081665921066971216105544223907727311430741591720409661815597780887289438354660428598251535821105321888709635531886155645743855496432522500805887970219747442794107018452708560633622374130538501432405424600090327091366052283689370072173315627615594910071511200848483017926088243152496296599232704567462238322600871146888337274705647272193756223484230142197965949975950189757548232878780185025850997818604471859141340637103894458029405635343525132942863807666170317869111501039686039513158920770239508522391103247314202905442061457537859853600934798949496771145201996281211990619944092142014477685556791830853169954184199738469106133005062119860042700432613783640294396126770071743727799354441561285250157057308587068464296789063490958158596504550901205855087471392316994968737671110671873148881555520989354492782493106198735048120927231646451481792276529158905755117141604756392320884741997481976554889660591769149582312552836531681845463899008478925141938169288025616730286368227465274950955004631446313189449061477230621875003714594193602762515523559336854282083178644905250769606026761206178418876409021726177828219121407279473343423334449436002312586331964056624580958135733651766909814600036058725640537574247170460821002204077104459860629274029375503067840492986354087291564469636203835734133169076008379398070450307378067871547350009988905935226615175990023241540693652297834331058164946721260671263344276922737895726888091478841763133686163562586045073102773337235003805215535591308719589928126378095767863727093017727645156841690354204122540821821821402893387484499495436682177085987804911447258286504503711870041175440489731633128841805608739798588938299519733082152507178578378235241203321393101507697374903742313611216006286465568553417965911832139248538190840346159160194871614900560127578940416271759317613895183300725156916673837517714344965193159148891037468758465233261536388791276040856429522556609130718777305847702534433425894382444558793265521054477890682981332375898905130221823330692918359276304855158431688938804114907459316039015110638025144579765513106246488814563483177707392963952333645993737117623169438500808509260681194673675970012724916107428035105278840014088796902416307952829733621414103751237451323530271975754491926165704182582614833567893571083864823319763889115077384339931656387268864155184523692701955682766593027357695663555330896045757890759414508372011160055640902185100279351765066886286271349042569440931811188119017119714206196840780288411946724525526864258883385767816374451427184459947847454173955018613595245186398773407862051840340439240998047050525184204714045595627975785024717868758737680889976254304173396919994225876182454721121507465935010568051706127406801179181632798046096195190956121410245817844428225849648531460270340127546375449372612773098902672286389713937907001710675891206965714825087688525487357914103457827012257750186145273630159524718665362500882645468675245540178433091145354076704326269794741758067853090469697512016010877072631460702598253158290063621669220245435673280988135292923846613701423893014547913502055785631718918096181206872623788719901855639455299208303613267625010636370550968782927421677525863923099902108730465546531553068245307676463051004210877229864908707485364168700085756240007994220852749766904766106684508661766424450362424065440229479533260559539334824843695184137284014740416907973362191132756413201537041114948428066742397000816397173830149880264214316629171699405777512113534023602990884526981709046265612666691338593206125757596668241409757254610809243778123906584084571522377926226746164507912104278440459261440201457958621526726864973342356884567625405313027424550661851387811862135848961164065441597510793234733330791146492881264889352579156534867211138218013465835117854080147318460785511213036193103189494962947172854066401639304256282628872151907543607812123018513267460729454927082527652038558587831362841597682902639157960760497388768237152571663419523320591092514713013900015029193053039279815714495976853827491470242509061969786639181735428143031000506756585459060935551081441024100321254195594876329722788146398160005915502360606022759000648239231555203710513471072376942766634536674991873674918580179969607551218227431705006620451818920873842129114511848066679977155601805048347373789853717605686385000646233950291233164355036067704649806644273626349954711189322273818185439323523837298570975257533301396815359757724384964507752363757634721896133557803175567651040070611426858949883167511324491404538415614804604779689638730565735234115349676827874587240615377841434629933045750484108746113800807938745136514925065624397353688768965856172124832751438017080894685111956767052367514219785052680389844373287484656139378677908750342860819719446024980706046668737835312321025391325755097199600334947174301034234772651972965110684527577131207225210617501143660544115483184190384536466378181780369999237404539814743968178915096614175066006557919979122672753129728931957080225826451556932925188221130047793047303077836602117369201995641712880603259658704309129376301420601216538951471056352459431709340531572142685743140855843508666477370834802248721282876579202478119043923940676473236710805782237473127363039175482421322515227816080619061506786984781912172661198687736816526843038515156691884900884969444140614889701570407068833814877196342768786921574471033269573477002104200107489063430696440009960488277195156605477985523294422885740939028795627035680126347461773058171388090614548118351577043911472030411852626012342754891660488576210962547496761826104911509749609559769866248645026844807142900481703150237095527017376363270833808911957227423751749654516789146541000488459268659079613354871348142462352062565136758091696967367159589997160887161559767661084431660787348669903267822181478101789759763328040099618435882155922502623960492618805712702463732257818463292013638650383744164558085741251507462173343586228887175904370172076880206305987308633189533433122533259679347918389191020885267144193193346217211134540113312729657222502924616923870379889626422584689866720949625046237733695406887141558236093961218439169735518264172021155243516013573301387296971789778017486475653391076831876704569236190788675035802707489108882009855367903795029134904655252047881294206272913355781235460391153865986951663449960680863589212694888502210511361602247610587625925894740167531980061594952619207574221520253768325119864330392297386960650110124520859037884214932505560252535104840483706851827455502806112339438365941564505322278913425279692741482613372333111964741241080965737070864947801477829329665215312527656526407011448216589740280878577777384672165553362006585404566207079325458503099360331992829383377644503620959849300358767333675738577309592491681037244353330539869423251043736556393459004405875398537619858196225089130558069115516369156157378304305285819320193352324450612109543492099478709363859063741410510294894224108111246830974631165674735100501405632248301953528254706314946594320636748358614335005183065668188041379254332420438640850858486785545259657921948890703985242046506033848044765398916378761311671339879469002813327776906700700643902981226148300094830352562207374020452782910494396398244914428413488586661353592823212604842312080393420574584482037361279723171986411380627978476445680716633658926818310684065854596272495263187981684693491464420482213940424191059590718834352049455108028420316540143899405632331790430413350382223500226104304039669825071107228198506540700755064749963877168091853789474962284422172709845844995971821558260996709617993678479269742481446166497230419583945519578964929004496399836218234924385082090034964253136591607503543621501914014411093405501902885068667919054803859254379112338766610578729075162433110972586211197981954126113767464094369573739787132590261785707258413630397819749286517278100774093897698931452776520980851897754801058580148840561853068193410344927145247848953014165829964899951685136305506220801480996287273394394077147422725097777548049604166105785161338971458947808873529031883890241316476564916655812723291358966348837228368043864499276329817151670815321112742721082353611712424257284527729011232275606312428065935572517638832726469574748015477539039969224577842691634221746665912851444489817266832366616909630567099417467460998773946593171230937527971931250497343902763336382469838650248820387897898393214861897972713364537310523046599950966729961834920380968046763312300257014988174602443989327387465309553699891590228291120444377355260879104985610151507059176226613317985184869115344030895547236592872925230485277729039397735941266990225435751230759838874988340835514227662870386277380004744905848803149403136654645560014764689083342866821240198832252812105744397336149704012654682923835494677227204458028491274130827070667249366851804678134140870148687116844135067810225385688331069304562272107334746783177477949435279093427068064648364941346826433143110098313009624559298766999460287386158976505776345201795285832554541986764386606378168119531118035522311677835396208918802261082264694196969646612001313624280621246201875500876243747737586489520741455014911976951706709888277735186103824946895671741199526645237999228242099233116664630596413607222571395784190909361204703221483962850004578883121925826321890639489978487820862173204271683663416514411371924657005759572412815809330638324074673271296799781827594484588517518616283269262778276499487486492779686490879001240579378457278662414981330907429243587247368513338261529724276752158142003370206292210441711551831531212616774940899949223264464971585556436102003559922700487920931122310058684326443467622525517353932449596510783565797396036058049706702479556618356218073031319580828421459144163639945286438154337907605956938551425542455560851199066717468965648663453768780106458927799084784956728220320493048211552449189797298923941391433135544709496734255422827505913620544969725547651633143137198868504123289247585869733981471343780730033253983093828705490690809669513107623127685392467238979885328516380232202286621536042859979087154396488202917262045235414039028348828274723403510613450573949190708180147994426968199071333671596830994359275801366927975017920558815304535934113786225123672909085130393981746411218020166933617252482221320090385093010787388702352368922783687491371823461001866100967934934602292267162262632791853539613949219167180381348519557923370694640494892781886385287065717194746473888797804136203312413707780578679430849163328377445212497048316238867699808729017803495011309458646458381491137232581289984114834849323022380775892395952339599374293572987371690943509132128263732954804496804849545529009346629946951809698731658188794490702643952124004915547975952099920275284418843677583013069750654639504151488802573164653254416898101751375530688326054653765463172970771561189432937100131693306298995895442038918162713198812746996002831919685919621486732720855859815169519931376637830254076917189773089718264262643681423004928015484641762995042649477192865263884975353593045207596619153232555786861712000144831558373849352503567582973425800724603104316950875582844678775137025501115313768670818911679768880331317250426261215712243503464766830677907486441801506489690754842573499203555869445910579714631633920899591572556650832295299038816401955275200604139812695988892682712611500557010340655813238344592763122159516802680603825888141903299500414946371306459678154768591239757790013728320426940511094155217614890217831893902204456358263575035169296945464371725057262187466432992361505771085026118883050963967835866479629530062971202070582275525586835766456159474842769998552730908234455098907406917173764466008343466937110344226040413113013018856261023432360444732781731430463481391587162190757274134717280903380156318990838127681437438626711877342401097471898359935558951337373515636035559356469874978266274152697935441963556979103633541712887222306003513546432310771467018576278913035312796012765549572783640261944719583547577428121205683636038488460240802812355253780427012138150613594927387130273889139917364873919870942089976522153559316130074171425630936681185281970575391605582350352717090407798757221551250263581263341084041476282967891386076694179960017120821736692909970898278662285296547346451701990892198564266215391656477511682879082684717404563696725270486262619260955704704041786738956633272774973536159056849989497687589417419588301388543737872006046014700547653154404584983538841774606265504339961038885466443469284101043220939880982437376013795061362715135567463186530389124040370356006261929495964366999672991718355877956656230279163360933533324847812778493268336111144028375356875669825252526755043850613838460639344648109805469170888278592753641342524578514770342120879850983161168814780441693372587618527499224095043073993941034424660770254013331942991576190403318474284876359450281944564186927306355002133834585095260405417826825079021856725616189664393059968843416228886473893321328638188700835960957544506644017331245516904721761917753431601754676122371780527966115255104497580670641554735884397976566348854234716706944794492448869878961871267782354849007314360378255597900121872970672534932790491557976528309416024408922411028892568544081131864521599162771720648064356869995962409668967508020786644949887133679809751448399828895445761304265585510587031952333654111334648360691436118690708217190119337195241986194195944176563935757259233829110133666494097015665885638512256980485271729799202647868403867170811056154723027393674728286621641137241403329381085004341416887881468211873293500336051549791585456801415742389917470377888718346647488694027645038198748088655811529418370311229358137420386884539568387092612033137909062899459272056229027697623841440295590816744956624278440110152247386016960895347653153447153592481244984254902812627334732282571228173267057496240356553822143640721615791478691859703628812752194740011767879060774980720694154779900072179382017176976283281368749086027545652314510980746351909582594352515561355801226729375701924663641646028680445739056257829776711972815013001987791860597497480528549722332940286283781495206684964583250264308848219540697990034418138803395664151670563276631960851112652876189702366755318114998889332864705101070919717171631276059169297861635855514741732051493929408472659889538182049715608334630829057307543139768412875766241606670405838536847621837743066826978423259661350797235199088016078628473952037023435847470889207784755448412972591033524846639450807917380669892798457415105210392374917702259028076881201118906834489828140428953514070979838751854592378062770059009154385152969717570250647361691614760256261758156557923139339657914167506152891153928655958612229814235996731207577272263191571122226063786035049323842545380530424303198027646406369631345581448373202803031310228280730217805910601801076222807079599683710793163651903628205207381431977306546448780756843622431301040408788613324905513908545835148860248771144344115035863803551451727647215983593836467895739776490268536660963734104030910486204860655824522129923158569279922397026865103041959004405708380410963862634384605347443656275496951643652875548850713872160872874254168378510392680427438898997170940331625425335456211639445182297814155677998515432724220035589967839643143772788309838390294732801712916020601112041450565870994504924145689369542330227423436189128665585999473445102778063264039883831463816322335673093624413561183572585460934338949731980314667492478160506950112177267303740441798480304491282081324909959665196432000079455039257099482510463735906103284391391000715052284508632293364676617237105941671629622433212365242050127277421074901670423011713988578326370509645607020911831761809655847538065976651391075673832736429599843930332969469488006960754052330626348122579982535968638382616161060325362368231017501526482171363983530847099435193132059222773173611429493143648612714002919756919534313093623218898708803620553336477686848579212736760844279560341796383571287423872758615576292824172954454434879376337313305494729855495755214891039438503556402211573330961882613760407649918472804546789871131204385115529161871547962687994421965296806220827822030519437788845653076221022115110361972519640246092922384691613273808200957592057649233838875853095550664759963637189797973175340125141312367255514198994664200966713354992925497055821762687011557602235225133814768206539960860339914748273494665023657083207950637530934406707051243988226323166177054134816950782109732182094899945014899961451202736221968631467678538772697746517660975569467621214755722541560663191201560766373863583407876241710851522152682398374346031219603525868261168231555491827861319252968759845271454649360232430827465096510039499634957412886609895459675769099045438252168977011920343420999708326429511350086540629963412204697112142552957453721334835421331078229349604662077134817684205493297018701871998572379212226713710173536971525753705510858856264136397680312231501933791523324836885156317252307791988378343294389786297065004295997762866061728277745734881107893506987916688646665463022055431128590319475659676886872139891491049862203535554489750619267302769174449732788572196789537811639036805522285222540026110435520276708474232616224519497014755668567010651650008752624695139061485571681631567979543636694396998932795997453938318373528898051602228322318556813341102528686657769073819063876276149332469383975647062452396347586014022396545510484279304278865830432274864019671673203559117889032136537502577910061923428060229630135526112526827915589910663080703139540906873556481237101312840704471062049965155883694804026842976793552107129706222678825967679661775628862967708939651142748079388097916125685865345616809666368482022659463021177300849952789269642022765407902257721297068472814223025903311265558207949389152634760183057995713318545105371638705830905102935494899504469377676368076998560281712543720185643214483730575248256790664940094340335503070527524154527582730072248013294911141095288872607468526871600680502245926169100045302960179086533005231614255785780580899526435749505115780875836810427449461014632886549738191029897492768327769038325659208981590041185810864399173191582810489670075749824049480169908100514348192083996455335122162971720043949855375851032813334540557180390278400294823952828874552945661036420324971469770987826704924523791097782156066517098312067219406111472904216462500177998989697834728785498056986417036891303697648555555207491899047545461597574028042548805868231417113145706262174951667678324631762877648771742059730872485551180344744635471269562797199289409168447818154829005738165308810475000829545984094421034414408851767896413234930789332421549788618932398111702470856269486763119926343742974555750114695060326140696336162685706446889556028263089321876109547206337843956147997520676575196073566788184961680311587622941308815737829908111138067251838681825106445667896239100803848028832393649671225499705980428428315213020530646879021076698916596869518043815070752229728427658442044494897834131828192563316048027771624130387749167195899457605064959619339734026389043403482136090785658451776686146333473421853410677582490728716300727450565353858868008691245805538452146057613749303118846186485099324632776702325168916616103146447628452471026004868261969235183531223535788317355070115327132537037380512131390107586232765072487895597134819816562112570720911951056013430310842526575440735654981926240068782241061449398976459863652146029185961327431555216417877038204106114834060010860792894411988750225193115898651215054177446579035005298680810332137668822274466220571903615532962309568409073514288956509846556170239353062259767821607825426897684713870760875124745868583585589717062023340939523007923482801884178473438903239739340242525350320553801731895129450530413460474197720634277977445758911743927996315481124688931091751757181137325823031633647923330264181385679475502908715361210974565868068460277886422309220357498653476721200172804047492979488226247131171438672199820226846592503561173001021043942607023301265583238202405954247619366544259560408761518070555377229017646526274532477496293408278359266004848599241557195506653865590292990866877441279957010528862102629523858930469269940897245906601461947142360989609694480028155128207109574536073127072000434710140232977516573005900558639670317030330838740212223962024278654961242342588503275645680255054561942890391322882140264567870334786689985085969396146170095377620014392367789306364346067878948596923345822726074701224355373962623884828488459361260783823081040488817294336788718312786555865491767725011724609967036582405534406876048913631846940403281718070766518843981704366964497785939720590029721348665885187185874578765318085094108873965643528299605447660509008464938389622395167794034989248968768214655713733336015338492583930425734137901545377800583133883533295545529190007160825185802411673817354755915179302761834223733153865526862642154840298123350091637116999154395161280024999529437941667979472904161112827754922218102449000922082931246495023768318728053869151987357881657809034262621882731891018696969212348857862792067776136766305018714252040710993861084011727583098805351336598474070277289264749572099890712540735509372078933357483441434771639554725374710172589333704513822464744802967541058586965638096044054696104957982823249145811245161040525661050950384921596856927501480993460696183912796002024736510400199344030278035868154594452894995034611493593964181147891112471367249741922907064052368498097851500802341258263092343179379508894107561257488453982337066208017789213362737795849817448765968485078535566392682120409874876405092683124878042447911291720603434745747642080027545509136251770955300923776804421726972192377524090231789123644537619233204906962771795536880257475711162174305566163832416257926128158528567905379139056400812998259981096179489407123706825245320511330814121802711714850277048975198642908102381831718027874761922759342491290745102816568026200491155688500254077892541322402501165998399031101101129890495893324433922344259646507319684216027405468572393601463842615469778861161263321731149397439608532202394887595404488632471336914194819306707078802421758992758333911200661499075549084963371900427928649552007153826369661136580367868038614621257389107028646343977328474216249655853946328802938577322348782285233089048340305592582821855945914097438437012909782538550790669589967380455859209368685832408717964941468077241815870435810604483953482525116082657718375947372138333185387371267241797365358374737120657788424924319498789262803347659649220962961922083014757464902206589848257229075061865291519680403991983049085808848397763129915084087666450248951709010598974413546638322265904486095757102894409878917631076605416618684264438673176757096263904849629317466384512692609941143844347929748684979624645668608337423796407880800690767258514579190838230327039869100826268771547370262234393904034581681675826653888798941775438418797230520965777465348273621862953169478697976880816775029475564596539061894567207856719248656202517534538524099705915600692047949629863408888847334781290704477817128627334597209653976601507523800514002761799838462002317305241031104583990708570644900012924136088177673673805257340254067089500130350509757091730582669923997288491409414976416149727138345580071858294482511603250300869091029013926534932112399790001745046718786897299017434496002547414226728975194935923803213940403309506312200262388808916353987240113138082514622751326383261027065151293050727294517719286867715414258181608921189669574513123037402009528826705487903379005829971742398483125720637469130038656922820541567777344547252743246575616441286281638099861177735701191036762399889005189445334205798255360656315736937198267544015670192533725111493195866609560093467163580372178189980470742197395998708130299328165584124827912889116811015189883754493814781667204986698839042417568442355145153904111630886950597953349339240484894755242427303172300953810473412153870188890449263080111969645679268459712523053203635867346535068415917054153933800647738721314522088248127043830171566750938781055280660372996160943728705114956136876381061251708335616356943550391327465368549676582554551696903717167742693577668206363835046117773056076415337816361435153342121681825047352396052636300501885759359654597095741872294603781039636283155867446781241893250360820674376550935297762264946039320695671994431344125959707499178579807058878571078011838792157360104014598372974061454305724151802622355879247772754854986396670034573392624048659844521355955542513377426980138783204719105048721514990173986439897236697246097028337016394637942705801991454073169380212372960630884428248893079224992738463006380878232445431864133495760037938551299631398827011594133471078401295528912519163970245664185952489732086140219232673343360554411105612547978733467486185658764216003766066220236807994070257069797322364608277764410727657033215539639660318318443918353816141215140454186040641626999313575410950924481904172627277794065194559336948606583626518104966815675497371238940630112523810852539544530939269394887830081632247195537752246162548684646034717531307879452991770365687739931688586361600938907930904302549440116582319478192294071774127435198267424190408626352060697297474934380266652003349574418765453322911566461347300318061378092740183091998814614346929220467206411538987333001626191163481609415203340371329650908021760674858934834573489720772529815983728767941248824615761904183399165958283813124331984517172516981535309587429303843998614611015971206518753890914062747523713789919027403774970769718201819936634129809004436357861291280331126440197316391662755695074672676703166280339163704071439749753701855652225582910533435539169006356588715964857367659264481494011505389454584831484319698854420682503485944715731931221513575661799247899678763094824056095245518349624583363898023540081492382987676068541437321318759808799203329931269080108474024322248928645984294988112196142152368888231691657961033522636290539605717982371595100861500055474843417023404786519434588583767998068125715989216328371520210541070790426016862826960873329738758365686945659696395639815234978264342505000119391417020505705860279861891450366236473671502929685301515747997236145790954374640222137739868236585940226062275198633783341189449661132524619421190990110703704187257099432099485970863101760098428405544371154979986295808477795362842557439743991051973978748562983306687541460964205285091793256742393310452419503884730261516609924746456345317910669722059702656174603879381846257951661667505580913563311239767854427572048139981501000972229972215631259795152846804439321099397078547390276345588481704789597294188045676224649366515652375448015967167786418910883859421981116557900482331127623418669545997913361995290599622174401823095122919701119905016794853580237282451472074517083960059248228236721774125371276071872765227130892362547111980548447643352668269438246497784253202864195028735599815925127288711773160102402747081241107862632798590002913729494939824953142633815520935613598419691666659553022808860925504205098660686860490558578569221111961049928827071278366666517898741792922803013887076232884910843274217007153600367872331685259748174197015385783067308455445253119727018343329433536738429326379570733192712741921935924830242519250876851210223550259825096145623141371683057093776966237397140094616972087593068720097924654291086450348606481705907752656272309673022327231259444965954479412115648505485337776456917882668320989433842449890070715037680040896408801259322855339775866928851348289333422748498346727168919433537006314259982522157706759702754880055340259552776257096884763434026212917109684086106903458897092735028573965466631987909703166864867881149234797546788425919542843113659751451903890765236612954421473013101890084567037731960343387348292842238260993965157801911691848488383836253175998787578982747857358909858678750440545515444257053024989676509285872799931397281258666013690654614187352298602741941206634427025240977204159876435098542534081779680570353949200124884987347466054313449777765438651188372442650364574581405708232411879927957811340973468043223812142734933926900843356011770050103062088450118365288137454333092290837088946499367823100358958630719083562866042399635843955512053217456415764777569120431208144403271299506957355095022871539158198602774118936809420010088788571967925833251922155273693084697179526187863407266172357559946703621587679689608241918430746532331829383704706374276764309909452653282351509855329151711808764324215293813014736218744408467773440271123629784328564548930743138643877687535898807550903444982385266616017978070041821251770934862130434096216698690390954675975619433563947958632788947666827171990855752324302597587792743819014691265060013381726742560735419489512045737786444985597246515067668618983746424749986596867931206010697357664266010700474270149251039415108808895023043598541989710843143192628007868426044303550340877202394393190721171440651858442438351435830245069890446252702384086138368685238686012359869164324411187038489569777474271480982719716192684420266099450375979229971074753604013196316513084323801001228915277566782272353488636901943577773676254668158797429745800854599467549110638006675416689291679868746214165245086190682621031022054001846234882367162930732179951992741281464299019270481202850969513481105815602421702729428895398965471154869471336130694934301958682016366632492487378671224479858392598004450417338083358338801333370794446207526665218865547072786266053207397964570893379968548259363795094208202789849838285144179312954188258240319060161465137396078674920851352026190801693209384895566643299938357736935892291190560995576049549825645503363520249871743189015203055276048013871879098630589934068722848848654543240464035412625735354617774906397682860395058745884521262601142067910951633703116228575047167678303038645346132646418543264048972629667959913774596542200967739184557091534422855754454722085506398750186892014095687566083146094173267036136649756816801359473421458479306256506955549852497646552673904736521570184198419558049495506440342317733793616309364454392489158646646682341375827201312786083684531477355747868110859558815871050861320060303771179156550868912830867732371923192755007642548363504535765406855939010582402939996611100440381845300240094933508957284232256524002390123322125686440731698842342943054252831383889160793233866008307496855042740685305077227893171622187452157544525850285642214965677273276851302920067806091666142808857236895890272135175862034299152835065058180430494149796881023245105495332025670387933033372822347493790444449042819587979874358462912718929383249846853658913654700491777784999969082177532925165349898276879439960633275441307746579304785106154611512905446042494922283137001072257516726624751823461363651810057906638481797848634019065388129328446334971283478665785936943915002859999924296731855422627720602344465916927806521309560884135819477353356927963074924482565263341609238097042247225727914291800619136649035629951808664006835227731247958029626709737763719530798090946441433195286122451521059676513042584227068752337474771598922749338542009911335205143534812744932680478062568611511395531179734286106654943646439010792774270098217695659455784259026078239739663236637449729586704805998670245027409582446240476785575221160739363714402923831663274175619009722622831782213670391893577165153964308546072256554273899688651274111280803919691397286708975022461234735583503850966736976446979980545679614461382193427580711215440252594505035947913620864719330335269573170957229293992125840890578417637026327252328082555520238161184429229108617663794353386718139615208027854945268854596593219029837378545189467109371273103603184494698907033496237238111944847258556173381529765471049281016592164548653129377359450440421807590174870821793244148268214703727210319239211751442282604136265826034776038164764833569396168496479963317426739588762817405019664615239368934487007268187363931237659920724068606717021547983296040934427195795031544395180390272839518629803808969354974840629832042651468375975322324023356438741925219053613830886525746436613281461007051046167980275086706316859880076603732304096708492650024140474041385345733280142105408475486791708280603271599102903109089696492258317505174974290174098559157816579610804465794056493550903026242614719646828191329698434075447204992582988492443443383997110802321895619128176250494714795015308584090420363281860899605450364100369742188336658543581444580749581096796204475222238399498413503593679286321411373127874983222233919962479395513418750830694833012959570015904163710882441470080187977001102670406504472120421561005355164671559406190766218653938878737251225645762013393996580038280626211828581980350938293107132287427826643284136681781227461864201277528572720280587220272560269574611694797242471263322839460539575620727083780060935454673224145110309829269250362117091476867404119724653357242914939513856507329136468911322343226994109152958422561421938663471780164289568974218607102581035696122518261805148348486830378782342946851784962247679335796221729605578642190028792950599829521615479284868567356528539186754344297966804754863764030234044066973777232275396640211446281587270100305842921365397521232371475555373160400384046098862180717852115578419810054951189423283351495649526738569761018418314972739891722080897959353015453101894970913407337208892210242439463041274503474430784014903335531632668353910632170887785409185460589629327215319375640211156037223431261085510583010893337064558670377182448461533705496172001296180836214601825815372130419892243368939421236437428475150802644524595019256064457457130573735265362333505317871456765327481583999580269313777441794002396435133826120634080911592728610508794196781674753968585932860692466161062325624461849305379852814794790961911235406212128401556031322063898764963412991806141620098276453871446840442136519263667586125541699095550511851412937027618727535079522069899297722332342836497500680974375599123019274908295526742999818444081370248021182318538200528588084339724858154313140370797584547453477642699027599148694149679630418247483015735273532794605531636256970398990303978797857314395875729584092430437836673988902181276145119697817120933977487564679486699847433297919893446189389818858035039536589730687935611966232179398792785188154148731699654720739521770351963627936538957174287942829417727019229206045200293515040798316305189514864883441589860696787060541137730493150940969255562969829464407376477238281380478684467242929126596953157048882087162865105808220925727277183429854770975714854952671835526421385033423188376706453716610028190656993337523855249833425579847198369347955758884721728015475842929302381505355342430374248108639223736962869016250736815236757770552427218026700834461433906154340385686152833517192540881364838835710401588863814769158019128399058567827796680019603198407299926375026928699140688000059883791071132925233057038963706927276074241638128121261019733480615467596984687684526841845833188036903203338864270250309110084913957020439692731914778691080445752635761398614760650045187307441185805468968190942081369782061588825261856832309621302683102028048587330812794095382505900857563857121998199075025693221527178906427232046826743157957951344322635668112474684117609356893062924488497418867989438127000558807422406396477661651442239533666133095567056167177698334992693866047861941278517590795329481209775168826941025517409553000546406861947274856331840372415233320448767889136557148046064526779908162053587235972310076991930843297495084902208944654576829552697582563777563956434825761082007205063051085878903723899758795977921771403531188625976444258675075861039650143571740856362777928357082226846534574355530043130735391641320166715827046039993220623793736836205368097240239010843722414886983836258597726468772208269280889771753284673540504140596248032079669513734708183941055062537312359666411077372019212735371422419887993293007041783160863372765040318125208099992569667364350486352841044416520762321131559036133912498641520615065565380734333419262810024486056020335205505180927316827807865346100119513525998746008162773932330050387809402303734306083668621310016489258844871237556142516000770334231280466936769096844370071510517842484138369740321903652828872781025921648576828004124831227191753456894367460210756686258591780353648851925441325995630148686060084448832097966497774149409032165519646410448906444017112476713734372905701589648995815074750115200041820298052713808919326080310144126900004690453462053677572708717668718042148792905544491355218076434360064354630397789340234540679526401838743954456909853977652051884088393248818923895084296565416107031637568973925860144805281481488151271355180507707692620290173801670080082884016371110921288091832074330570005666583326670959035818057093773692426024256019243781707476974559020119908234792749228010613333573430302153138757454419597692378705705535449061874351921057265642455796128629367841412666196781785686181321587044971973103740189616234558933678853676318856118653036382102439948260043960587720959039293326857560188826849979108928187008380898498648645456126480862845913230909842303611753092814583395703998217135916287195987490217588032053648131400303771212474145816883219259962523412130494525705330398696962471768093442742804583849145005408318588528524446899915038218956463317555172678754009402681646755377202764449609390966594168173219454374370557052238845409031506742919036175668645458392153438749448420162916414709272661880153026457042578883088363793314682142240987349715153504158981491725312498231561392873072216845020036893255757445707960964174586460570964017784656022925720176834157850036757402196116491849796905611101174133217330906309459270659553588573961779245878923195404336527327929366179250729486410822351767502142748932219733433697960153447426550476327424368403012796120899433357695412488690358323424046960498081088012474261788875849943130400343861306331909618866166085510487246093978537085464766806833666600368751323767213586017467825819627497433537888683775395463361919562858760777811662245828721544030033430509938942705974766624829878033493088828479905458603481429106051359619975985138978493470748400786191750554671164624178875968904478775838386135903693727903764494689580298046582929140640377077000298199423666915019380949009108024996923512187638629203656305750329294368170993008140818490951446341888091802378852216558750872424070951748793525019545548768627651938771185298885960032844618806830625914018658688364781214975011910432434706491665922214617623079351784389831089824814319015059005723465347502870573058621668902549741183888196670277558867705997414852822352156509609030090329195148136156290481405513442775198308340749197870753068380281242517284259438825858328768174915174891854053711643429359952404126560718129511527776139721274659834166662223132536140321894059416083426264275461874172918997643250569098317156420313363031511311253328068254007131912596174254611033571433382449863820854228068653727417597672234366389558759220249216313109402514173713787438057226182075990542458288968089111193205646420291373386113706802824704762942856921005623918264072172177269247822188341869708649847658078724647954566752521675183860970017415864882652158355537481872267346274586300969655506671451456087154465023500465866545650224400345646516460318601941560707232055488710513847519688055806148236522541677034827751256512293928481827570801862203618420289286526363167476323660251631401346670651069123879253822815990798597849621640128984672113294911735267293387952558206669498290901728967133424406590380135014345623769606831619967170709853732403544470243083691552747536176452219410420461974635000035983757767743071913560249902881551957845179465751546618053722522097818085760583472637805304611304436216515024189954512580384368339645394287970838790451056876289910534638176115507333441217387820187936218853894530490779513020475817525272740698910576572500004321942256901510431227353316594541539833599671228942183094251063989383541244394927052982263518212720347916604564069515720459844517017509323976130401604797727777930150100940595726602581427745120702519103763391142409749575706388326181335558428816054599700988528704332200487457879751688046143502138666136018647012474064903005627250769930419566245578727104177824827368807887129476024415804592560752631249412831323004117509008858954190939562346893408696813545162356062310356135475011858900555128825857052698145690802844757542312060203778026520915707499104628635754803817613604370505245700606992531227116150366911574703789503542546446087136169777018055079269947121525511951447574386005011598327934363979860500329975447013242737122511493397013614139742415951429352600084426485801289155704517398514684956213136877991922537239117357133306472856891881309598923325269697012332585648137819688263047877142849001287444169895871784737230576766451451495576675765127254033817844846344816942854755269412058598009467417115544004987072752211521211253873571190815223734321364497993679130442282973651478452500185466555389709142160504469744858430713358857271330327720734469097367631918800700516347239474626019327067877495417225680188571838264270334201127125830767059684165427238392752024014546242215544480585151706408937916363443263117257656496726385845489180512417340841521235706536854424196163953443864058106780980851453600411375185265361368406583917724058594767080226330527747389116865802155942678668708273137181665018878856044403584045820026478461360550939092594685901360507842485397899899843553267857843524545285833492804236379871200328879009593690846700244358181021381966669094828991152280741269728141357287420559100644475737321753810069018155045628759428580474741965948537654428141163175648722388287589572184248419870702498701566765135427140067615627965587176307427230720246915005282110619018742877102480460813484828517600478321312823250532260127297633897433739829054030255032870002940390865568433122161553808198351597857124735459321663502142333594247749660269443442843927507889173849175239146894650574397567344835109038661246962574290903556501136695478899286450583289822625218214629433234435753651944396353156189898412643951083301745410119197725285975376099922661414815870407742340619752023278757364026270241210403238349740099040259285110426188137040819892060182359396847241444371610937923110338896078412450811653605788247255363081646945499302307810670300584341843820647755712170880932529759710880182838340666035143179586160254763904728363793622708463949545003551871688917922555010896063125003592644903401434366673052356868353548010873194255042337352705641461305681879303456454583363890060960926594438622521466246623300528494045458038358554535520243852057872751833189028507090191142208148251486913264665739641081108694579402807898626552557829230103649399081893599603672594570732369832784634886481684745011933980058185130022036696934139035394636347365895399281909263192907425626202252467168522326324821939381789318832148963738377905245322521694100128315378060991529841549765036225996652357904598446355624585627404205738767866391162801883616627134780280582098600193988087088133609364949307431509373569097360737331076545620496381143467433974367581878344969131556888296321965100144554039770661782602941921798145920508651196848059432536065772946939084675903034594524171454561495768128533688603441834859875406008586142554752083564432443019739925545544426602076431119816417639664100559964164234049648491605182280988213995173774864528226090977994297777587683993538654806615115175520865462228729488311017647763522044066192441182274762356843174444207357529541850845821877630844045500640314415253206653836760980974283611690088662123707164349855489581381508414901932011383140625650411297518904227336821408946232197470436213414763922985572083085337910798316183405914628947180529763254799926937720334971975826699913817550674092341138782860542008893249515371501098278807147883466014463871629002823640828254246181205487609373411071615934646211997280582305834150905603445104750513090719307368628747164038096345937569708910203031976117761157388835016687797636697497306463241033534739086239510943306636010385483836414913487666180171388596346340782521202808596370163640716372256093293675600986431558378368505764851488710687750684965618934204047293226733638257094180545400101453183618966094372836173462595713644697823019864804463674510199369080044185679542895486127240499088419055812932555543768628583812540552074956948214807942333985996407440753697866015238841985374245356903038610774718508032497458310550101999468473227140130110628542960168278999441508028909366918829425778725231752320667205696047762376400426851687157606429590773761554958790991506077636346375035773480263147908397133801289092032462090805872475986643043450189004327576778484595019255800234235928837973749758452336627048437784865166812740928622460325516334113445034138328934327770372666487143884266225013531960905544164025546057224485795676194293224983164760811933526537434926227912310514729122661186556808472533109710105141195216875428405665201039705426945950536403470852285031141979406707508203314218823556446505702312951985076601263921102484288454885119907133153331378991023659865586239722128563611847167903228721634630907986082324541804221942023563885733176096957740843840842241355613339832713352506870159046726559246829651635108180962387212069464662405760107742344234466719685979418834713394770344682492591551755899461143589826497138831652844135504104231475089457429889524588062237496475828277426718366055452369493912136195512645352961754211724641716729185824324641995468673669350455219435968339251316195863313752703879400300002245278337171092124459174075152762999789444296440468562636022302966847942214976981784125418053360815037766482162014332669430200864970634846893228519982576269215490912197117700912342254471513234212353678819249474248483412017789849284511139774672611679412531756326801341407253977636746880411392174935587797822017347970372436772162285964857494144280631964286417584584310859830285475568917977482254483025458696014064429260267652670606096075780000495638490008840392727751718793002066134948129681493675349352799330620711458122150858271890875563495876940946871439931223864059923518352201213236282622736222583809368197976326271747274768606050552769086026718485941181974231581810165030863369476837162580429705679400988856917214206094103594017990167317003665578628752024059477220320445363536997531533804844733225881207202690582336394206040978109925401249668026915125817990272594500691611504300441194097635144614270700753277542219976229366190488611547486630602802357791648849154160927603799458214699134389032199505952075468196802470317717598300127286817279385670431062885313486123933172146866235530720112837317841122660053782914510648736014170589847399671544289987019700388354447521262155656846879572609992704649993979022876112872240676829189573641133564035123430902874103824757080983735578303449287510640388037399278247495743515112060844388400757492228713215989135723885175624808683102171802248562681198302690786865751872513711026982962092204939061832686018580352351360142797565648600317177741064114970149123908008026398618595508492152405759506668401454421222943741474208595474927944598534206474259853910538977412028438381589327219520861696831641262438257721312219411501516223929139923696679728432381871589329017000660317996198686694371499731562798502392425101640962751701117030474578635672800774350647636619590558182407682224873966970796690069074800982752396512980556570856042784660143087647045217335237450491491572090433226023596519802997452348229354051890153696970754111270657472218270289429803769029882258261669821677968930067761239915118783767869939854026010318161670834935117538029405836730505946248561941178553498356641068312306916064773698072021007275223111717365431155441850880467361064171894033791902896017973434577052440551420157721174207566901800297668064473960674474826633411668097821553619120209924540895546382206210365809005638226106264118161243889368546696005212247413077359700444945804003192354305686110073861954038488291866395805693566812065711859010389331229665014720046290576671731134532029506890900765472834798629415713736688281285255886860253406624460996633221434206246668267179933789649200313815614589601084635627785028187884938725830347573005591003611798248078355027896999925121783331961104672739222063740734586621848655209193956193842874186739095481161396854023574373678217898633296984585817171059323777505341649033244155750479068206228653687348706635980157773532256647406614835437253469460966900829935579675343802832679934125307032219435577772432875637977531430267248880012745534155981877322365707602467590973362024305364728456124854561968497587556134448683795870655010510694392989728823885849988447665458997468832814053402990377215824826017333439583134684780698842234696366116581077193942131353270877708286063019165483190818122936474874858078220601372866986758420108093591561594506542457576233501593083301496041047997440849744612598002255752751322642204966833966711867442102983073796778896673050071302404034157036035404587447938761800788673471861773913768196750363300147863821316135622102041492227766721305634240382779262017049563581842113466441156233924847211581222205777621086349997604030582044208866618785500259857475106600529690153215965575265043368243087806272397281113972167533392897830274656438040220889918029704702009698994678792144073528629372386605519521303447701040798852740134227611073010358943690984459126226054264608722387086265174618690138817674358676581391493822572765402189496289425853821530821181407511670097964264682619698229621041118642467139399926209954158411153243076183124713772532685645668201367344183225471735744913557713931876286818939250368101401350399754331179368867517975518151732373381095882456330022896692358992398972029895532302873393623326277181467371870122434516030067525185864659681221498118966694615914323338517165378157860959093294605614263392771624361492339859746602329068842230366712865780002499809786016252231795222532917598679316004243193272593295461452364239524928565152504113505482030130409765216233413754622127256483510254017248303345192044571942671481175345390007666063961594110266201094019837359636818695332518684548048092340371378373230900183110322022549960825816723895382035624094793799727958587606637693674876705820554124214805058245495151413835565636632989030155018693529058079868626567971178066289429229389788528688689305787886147044881791506621069898230860068153026088465475933114133954130073707318073783434996342658905028620406911280149613172359699513382873613221273057576043761352626318518956723939006837201299460304264306278946775240249583465365294790282494104927971444226050275411149075567371878981764482004209301777560772468246889333157618435139400120906358352336945560993885390651107225206525136888726315762195298164883281686970868749963380197073496010629386957529191607682291274282087593846437271546847073803226406973175154467210037317543469352701398012222879872454203497077986877691275003072654135815547219517105542029802495951675653279793598078518649217953556855430752126844399501715721005412835545691413608236049991306413446455744746389100883277826489936979158436604727587523698626687809190324332417137915728346867676719943750838094049005995810647996116416503993763872571017369802204438654314492707088624308630001505805824431672992874464339886895505234703348844283386409173708962107588391006777289372880886645223622404606935742928798777148920602392779655574854643378994822317541827068370752709561193643460126339141406285184966000509857683974711191709303663276853451483368488870659115048354110451116868733725559180236584825554225704692590324063080107111056087786289386343078042721629618011426914329582016050971363713927240318243720107924125655867471302950935144678941260260674378287855491535773582958804186298793957731256644490143746009587954121734427350555941093380752651020631512893789204353564134797362826365332642574720339725952489566720324884700509545381905735027633049745624742086745212738458604719827798480687175943316854949100468039654102431456993188099159322856765680424718114546015460219661213268763553761705437241910884158059425470985254329664822131485965473068193830889422516949269604294388342031419517807988496269194992196778707665816650970615939597655676264631333180693278354580489313327413298364611382759817019330729623215848959960443664244679656912313133738930523109751800061603579469138236729175226623701347102387666010697111520545066102746587045416509738972133124564467859340599940858476554371310701998384507117252460744150335945578493440015948606462011045979584829968550222497722990419564979890995986046341721023674215653752744418866420350967519711879829108215880386917263806693486891296233354830834408716763619750871055772676289981672908556388557433538499709236301096994107051950557722174194039868542536273446338703950875729689767527315352429379935032651577634260897722679437754299927456434399988330309653050518214445046148480785015299972496108969788261339531742109355843482713451042094982251260275174239858552791164960022544721917924079747600670432503826965788583306369218927867785837647156659080303508415803061089227613402066544656850822842290023365021052689859571041259266805239663657439295412928354081878375356886588677010717051071749008146662248878758852498032043499093355189185605409566122754194199783453731977956935087815208139086531225561922664111257111594219662197814046720765276876959421825344141966887797543230086487149569375529181196763064421333286931393752323126348291960215922290934273311448858144649008796514055571053345991686912611842138221610469571363524981609388572468270062456105616730575647609649818018484545441176027400974854877772581772128750971330104691284309479403677325621980050132510311173707259510781865011069694772636902370466503315159723456446728090025486838370916453719449423235180602168771408793072084688805313786211089508585703096241705176659278096895185012876623633799932804379514921284866300691317550756249110878277357679988398394345364350891548212970736226970394011449240851620113054995467736577336061458336285165481653153531357506129204756659525628091838239298521710940493255245809538885189138231106622803636843664787684870570636851297051911006099159644660107847436249059118285330964014977591724796344405354736713933013596747296581348477671888468798706207011060511159477004669926952252037769143153401069426189407810449486570595220812033454327476968634553954325121608075900147428544291299467597172733689012819666146162317978581909394921204879068748761238540600249320225016938888857898666903478272411535231760690608496736342967119532896658936281427423213582814703607861005479492832309647007767407578289439112586336793505624604265299530423448787683658365961057040529807617324179315272597935999086751937367097793887574873380974919885909791162796454339984575949992157187197133935818160976285910701675300493961408855308220776686501448709540217459224608185415641160789515264874649871316883276347879018626110315740764312029938770623665267178941072171424883200736152100419958685851420881038745537071124855197089541172419280641607575251147327496445664819875659416719046182699023957001078987955707313733683166223284971032250600138899975171205569948667901999312092355308243138294067233152314256715575727292348609732902958325662801522268635092797241903525975814576847094619692703180446432182111701424635868563504186349416476241309570770101920907504669656552915944248748768793066869569294775269416111083530583338972644891545732333748394930845898319612970511909772404871404202247340737280022636160489292764484470386501159403746722630301217147018466303391814636611227221423811186959125981298941619084803949753354828963138676939461311833613941297504464480538234811224163983214711091632178481032711024247433464849020179335452222728717209878208188064670146900716627094801976306471730090655033627807641428887930915793089339286245405907617400460243016554593786657988390492090374641574620808805188995190829971635185568247440667460439931745548934654438258233341343580269985839266575379772806432300496593899738673809416200356697377077549340209879172321550052350191056933900344645975852525772948886318102511638239796362886110663095155931157280733280552643585416323614762138876710272746244273085000597589346918120894645010551144292693181651356995152313448547883700237430792048003339235234518502144497373973305039966306725273629764079233765564916414949068121674934945917331720244465080554232848528839993303176807940320451070115942888662300067944314582297937669566952332850894335363922268401650945539611199178684310484197471234607848368324676162935443538992092316413470940826400259594265358994891016728507920898639360717400327878008852595714635116141033685777241161509355245889759150081081553632496421580454110124461469993626911776290753796044622487704579753607919115575841572921722610790110044461032755265848397888806040250248726153322049399228961185138925116417869408586815562741306481904625717167164853211716986913708158687209132052520283035166933428462274043900493237622170600364376629174972751624994150446713972550908134105756345225037309404484264007731891178074867635647969235164976324320856364328157805550290705456289595864410727687696143617828329269563800420166152937781249647423692020852396419237183033526843062225507413556755790813160085643348941629164571438974257555799379369327549902553668660701081846695741632363167289634186145831595611135339504316402523393572585437908223985049574810208312446163428509561303822605245836668768731843007913981081130682790160065110539753226566606951631215808881374514692060409626253215337545886372243539862015751804587253600732645752198280144468260230057674250507231139095219498613225172775907518256146594473356857154234521558805193525885148105361595922004922642646885538769991488408411295465976121946581834042268088206457615473448697076020027425335814461158655351717748922502733090843085409161231046636754877050756297392488899515595553538320360517406259314882858632025698702854654736103189907352637487233951257325484678992691249851471923183020080359477934222847807325510197002206952277307680716824450744856093739945776714290856134852986012664026898726192927143454226092295188589881168355066745005508008972340373937956618107117921202458482814046349495858016042208544428683847191066902681021233518691039898179648833398586269149338772427108823817140460662568755696213268897982122749299449579325478739858595059010054850923755573622251524728209366409279997653222582181816792834466524444208115404960642573397307706618568719829351411080540520188978730671185316899825468704386024208682849996266789140482206579703894489923022205133992738081438835331933378892858153103732762564699439911810888447836952688870650591291313509788069994422246285247465345248675463520725005111108694789542190328545505984430704114397001851222997308697869464478117252841404236852845377089146350165758571699750987176014442858345705001368686904589135277261249977420177185459992990976529577848132168701498929849959507975000740302751027187885718621445027006944986038489753542962878498948610550519506724816266841078674998156100161146637907030845411213246790169725214802155402424142415929593758272816834076706193819746126697941119236468641285730151423310793503759227541284582397850731609854355067690013623507697399955853753104242931095759575376678018281091835615439211486931490980951946245921803149568893401959696788102583088920944089686064828350436846665448685842657288465024557487347458443486417507494803493628813404862861244086847334035758987817297973467427528506971943988034739104742286406115458188243199180955460788162979335094506511868506658370212353721229807180968740465452493554804345734287776783070270478295317340473221369376200741288752200219455030797696724122932551328346094362363644347341046998689216286584990702466758042182369590311239274673430003336647234407398111744449997009208298150739596491715191014456069769837492699439866858973424525504357560321176793584878117687200800765144461846796185982499337866861368512357275072782252472398552352984877306320667166800640626121365620767485483039059441891876539847633798232294246269020580386770384500633795940124045822120552380685853754108514296378434622493526324515360761064117062375016501701820039534484963663161027280212102115811489243421730145152266751186740731259351037625719221312586922215794310849207641028325381869931154041761280142689847232797639164705214634879134741240546080839676381134800721702975599709434264522777125447538502655025119946875163212885794200367139736686898936588413575543747799968246862068193798571140347109565067463723660464810348083383250962094918815342625996465902116977803268073220051317248229876379528444044695468228177975693148545721289237604806668387123559777744710640312328031789248046050489789137232398220643340382456852568365190481354356409811979885257280132390315640276205092084817191282977244977937584997452308593460766134759664692576410428706007180745223324328461650819559652237033997364198741148012949849596294577712729352601173919533505869808879713429602026157830570804629080261964173720877457182645899071079164501364823573311477368033600704726088464064567446324833085657506258347298275045325841368830175294338030396311204566874729184448229192423651684888129261417415147686374340888762247447008782954436035777314732712480684796501043147218397587885029722994670378712523720515637915150317064939263134135223115225235081797578638427790955746875931019208459214092057800626450383172933370911989725194869307308245005401963251256574303855037065236440721092076067911827136404894551992710663093062699528309087616141757009635425593760881642139644768488244485571278818674049894476492087877642193644229143139916304361476145052162563375560329581988621933685599868214882413844511937624942649812474154868139101358564191363430483056397328693209710628952967119991195742503492506202320689978838871016649162904431382856082887654987280787656140138870163029293215909809168293589970104825567421529463223919065957286125832741755141865976823217970383686271072324209724928322632567958008239479758085367084951289582099897933301290311799826534420117892232164292249361353679208308064499969844275346632048784955199357296101446112630896988789297792088877430038215692129826660323106652272031012051640552154315799221162721645171078293191838265241751531479655647390535414320189309864093246307669071596773512274194976889393487964319135702536971308097239809522738114332742082955752742044731070893095603317055957711242840016985754965399177717420020280299763658290369014461359679566504444268838558647736961142478679896855586145788910001379515722782303868196387142267206902895258416997617247962373359141658907670861334205643498705825679901230860075457246835740499536923553065044730386336811960104722308810764038448925715087400866998377008770689621840406129359293042551196911922785011428456830408171337509401696304373190362170445443303093481656225118075313767079655091320822821732261503276523422131113490894132726071717310064913701802039169902178565107667884658456843987894428327618321772946158139149619068772216328001381404287572274637786582821143015379273926473230477383465745789762612037115338672044564779232752068463575357376642465708853343241594445275289000572156012097356772090636967470498931317926027302527000656627324095343677341165889310738253126120970595939370979386684780541238929671879082652862924352849960656258349261362642027335196252815497845809268631092647288520507509342159923007969532220391210899671494554415586158002671142384351111014944326579464650981779477071895388001665612687901322336259863150471003206453824408145946887341989126207669297244578623168127918297273965771580449924349568900180006776132168358573328593912370758067246116545863851856034377257886102023215498050647854249073283577986449470113727257494573443986219664160129449070659558188244351630480551256803888524368973461789362821468671733013878704410236842013091016238541611991151102439643035735304079435801066218711825759182853203931041422284269516547270859418110031789874694811170466017545491566732301716915022438597776333483922017406194158545795355789070058983488535691596757456161408663501411925778537961990614651097460897199938564738114950227392523872422551489064528254048328644522904323541011867620772645509862883616969818989617397422946471350941384048453038828110424163313291829166208552713258804998446828844290797878218896894403471128026667931693121867607763049785281359031920897645918262842585624093661934254529276407378475788176012031931044208422033262780095870936866169069773282796383048471079080632106014652942135520557954126995595336103439322304757888211312582326088909217221412816347316329214139843663291740204170294204911385334229352114465961925444120582865349632293278557148419955347435719794269377150418065569353202196376158627766590375629901747957405055886479142126575312757381506100606281040449178831682809725729659561339144129769790623433048864185614395671565606334350538882643988213409416100250966317922676919769885272687201252920546957457116734226589521380218144598153691639267456500419604795449659304071393605502797231736143397738465619792562260484664794298621435039557671185865720449030248303918022626611832023073020496522557993507554810220053979988401555631557364141619976150504331524713531294227205305926355440609257455574338237084158877238842063498456302808797183393688432952594762529601773866576171500088679370166251988068299630744027374184939946563645504128225778590381203601667302782770158000858744538174294893627492505493979250130381090454145994156970651004307666763294284566711712519755908480889009784820359645864393830525453001660719125239668047439055088608860061058475210396894647253895359827839286570944465803692374559897872369197275974548578022001806182682392646525605003180305846928645776441497035522959721504350880707660206111206896805873374592444825141240886876202725717569790440102334701815082053923247418936283388520941500964739018751025198727490274168813209982998709244036153379017318395014716965160773816586866151584662126880513711311049570716172434486793509351508355893022418772904870164914076152734869879921126335024368373589499385080857115095096910272069855345847906382560168347376018150021771806550533636854653738871031260288008116692622816239503871509488175362308194897149394900835691310865884599128287026448108597717845197524012378185654468472434814033447339507075670376876321254783222794730166280451648741508479361649330950460437900182724515081832716365697613106138198041125628003966345725400017030618216408308364750658831325487625280536125182270092585163886090270376107451625944903326917312997725541909755707407318477686470464086223184996814452496618310901571155901480646301913148084268294225881933369493637588105305659024706372545579218107463571512452109844026316947985525039061488221113372551835220440480149986361997826664322221262513054815094654109291159551612182706891454615746413180209388221932364235571616597738697892983992450058620567606872077009480076020431906451305375643754369564018798145308561403961525238969730425545752351030671840397333161445067578688958467477216404331014654060831977780213314318872089472411232529182019874394674082039147558275990778684010326881095176467944665169482936439397220814373389603814400499101998782081385041249783877580956871530641963633354758532962533688206971397894156250095973512405500696330456373388144427461442728092338399174920264412203803933617113885989870916252873059681661587368176043019509781626746617306677170836965378216644310181647111917431279040748711442942513784480523847800506839527618380583945528590582274383326489017449591682856184685530854792880590402621762591182987694205345190438177227729508034030981432893842032922426954392507295164867632473337458924641790805316614279508180712487257419109809920356166629751644087099096912195582674647703473232480243064498457339909330279863844102292927384509463257455493802638865845842976549304229556361832054826189386092024774595918836034459368876171360868390522957610771873691071864781104276007604274618542972986492763325635318049234948407378561515408633248148041457566543015624193074563580159690473616890428796713268826912354589822280606865258826115200200353059311563543792150073642399573916394294383786797163217186226281543129152988183175927007248343412586588646085063809940456373496640941320448174508865421354677847837790168028541433202684976001825642921038942669315793730150300864718190455922435868405220862486259464354303368018685836180790380149620440539317513772760316297831796188034670377387066347220504023675906064716445643767086813901454128596618949192171347605593426857025780875284899697746110504619990480193009075788261226015135553603147984846663693821369189087968368090219725678633767076583096769794718888508173626108707780268501762715143695298715370794890473602581139681412733015127343625832442646464248742229198930221738113751296420644493513313866410174835207542151557677598798232561031269514254960536332518375414687444086011659172307984902934387656984001354967619274179460211403540552274392669677695053513181614987119264184734620255717111780110242731318925031332048053853024621015131075427284194870370695505314812108348583598602232045379467020722287335154234438133196477649815822834103202221089665221803808257175655415845176256994449528932285227835604732217886024866044436971670981853273032262591779656623053933350715907362106021560468153581905352208448037539293236274456125544032211361417396514137858218544043300394810419073630554863479246563012424230897650332092287579649995337813067218245907406353728814574490347733225906550637810147550962528850498464489954661599580548478043450530317939486182749859735934183968583262939852290397617180669497053868126798912518959274902321567974350707189606710061477986961132133510785953077260836820180829684119385150057719225075698674473113295978748299057960433741025547141175373851192206857657524175292020742290288170729935389899121946463770949833147745230625808046806180791446972140514579525874656374616507749271944299293780928539458910162552294842558309959337051348611379248334055139015881396440474607068817553635846352103148847062866059998945168278594236213496090801474206154455568160242790877123766524877826608114817981903075485401364736442431835491351461514378188022217855597745280592055456327929650999439415804493287590653801817210472901636397474543734950804215695482702372070988275208433029466436370251594557047322293222605961527821766442318824314969762580745874561928603309706527007884107173155010206040695176221429473739440926240314616076195330981957378946530986896516198657669554053028274668779116770389248957549721987209321103580115197693531471248310972995577439614603337999710030259644527797427339759000724863455918949349732635654918729665962527498455134024111425363014464556131888930145781274070806347321439568071221520137507376375569527106458235058488320433079726203337893788804718322015657765041783967813609094940444892803940572609664937474861536387315294373269311951097488258893207707240964924154528729978618584129926823598324413873961217264371691093125028589263294067121001217556295603543197399026093347147764472425270699478929845722774563326835257795350653747159755031855233170714103874720017308014869480045948060020193625829514870130526283293864775216184907094609841005944892724447250358245827073335812623592546619173427441659443476295977430926870333088408571123730217088098168635534971310330250746289711150231458245565425201263951762912410499215967316841580096622209593914966340610990373114853689644584782555427422032987666039772588611327707143893641397042556587563625248935221509414080638012681011760704130427816665816624645304914641130018799614162267626115998071519940855359232106526368891509854242998227829261291943564441477261728565848884221104143558505468993146446080371914792062728423313754896377521660379550313579166760981703305433086650883684194967572287615757242167928920787087891703619570843106012825684836496364833532167421474146862527236387441496473929821259611243846017390406239512394596751016022741217156027958026165575517921315014120830647537656828330109834142568652079688769405915210466949055449555546246529587786313757033805069080253511180659645761795342905162354191640461554284721817692488302526712922181128992671658201950474743669393998821031270362367473133213822748957719468176116734650236622345794116612133132821485392544299171247111150131974501144792804613926859185705187780422831115939210129968190233052515179970668291679483067122619305252323436370998136765088159753019293666219699716871908445587397796055875941242837231798523807343728118394616194423528842095640519698925741900798286425607424585809737761414387848219091390692981046620425645492114093374213465935122179196437680154766946511716680082144979898609404885922599310327438962357605094931681463169554541319317214583901026554951032749683669191376822301083657887818035691186569083854102704754266841211699437344822110939959687001205906010542633316599608922974658594589819241103834166820309883450204200247340151180794119844352429591451546625431770209881469120946611858142716881199590511558408895902789298964803650078721365062441015002330056233610890225815954874700929440741929570519219816723081543555282967252301449863087414885425051932170516090870789686404087023794096797537811026921468282838803563612299349664672969319917972706645105508567684781960018042124565718928703520197626919452574317450113290030450360328873258180677192986816921673894452533733601557570749040016507249518408680949575995562814297910211154780794217583944166330945154315612832430268586120333304548643032183089783031689707292224742685615925687045966188482741497339324798017678242813949276090134270659341738880069731897981532496541667618700951309317722523973211545177888128467398596516411935823966657358701364594463363994202008590596608171492788043678667310469451482611504040699453114984510813316456485953494117894331511340029133012496740460938454823357888920547768535315676650071902532262214457688122395446476704764758799166365169556195958742753131509603733448226239608506994811763412058139338194372085772553355450873074325484215308454527922666965470699623508822784886103944976368515233302243955680211123326127005233451865334758434069167097533549228987067795147860013520490441086649777936628868132484614177429041576807117610518503497045362047107951491211542266022335441096687037550950045708190240246629942059326764172693455674718653881511225890022066982442921470088715799604942613034011208160524350884269801896307743173946610229876321479053920186217300627955824873272473028169967203192214936544946180516155848084223483587002151155562228729564902384450769438170878085542920168275026252691919433371616908292691400809197980720193348593525145796202569869924049629755202015962286835180856828641314143920336104688679166817751537414843746131151695628882394880981762529928886584409573894773901300472953855560803529926326028151308237766536615593016299638152572485380115222545140775156839577156667856438654245094007043795171015994310286507793843906404128588975147350330187937613875001402515683266119896511417836795546412513892251463614016105812958664507878943258720650984953508303850493415918406892714777682382093972951947701065919372653132719505676875281991191664046849125822371676300774588422847203821739115562859464841787335621507053446636406874691107659670121621543939435941956643061015746459586454590936549274124242960077181991596924374690233890683047178666679424492648617651508339212124746944884282485044154901779927689490745532452523732850049181300749944740177677271921861978250335549441826380598441686906466054016000825523334921608400610827453623091290583276562666547271762928177687205910497518361235901252723967763195152918549971543110375595031018053748412558865248686755349943657547006427152833878863963475320069504434510305022386630363671580450409007107285916853991154607836267091791027049297034073712892254949167737616112625208341237789942215017312696439775279577262414454999241828076377804847053060474274614931159414082879523066207075745845424079766654538118991150438973595031892089892627817100123726653333559593290262906183844000254224589873599820103784312009418071159765182438359513653013180293167312659391207587234615988183277475349249936333072873510915934214781430498093760772318626508489259443367931324060677685371489854206277525300144722677010904342346177450740701621386701232669953633660069728978364579712679632066721972181326822504322236249236701959746293368873251917167730553232024672968315144919002457900634314464444840707675101897647760433753475995987355383295781174676671915499692741784725541071219186333456970213339531867314573200746833816208188347505764590388495887020892548342450909126069398250287878999241276344754409902048261732213100414134272036389747081424331998110687611439713796870978742745055164159630191549198865553731345360427886225739462874409609259169006404887313051016801184264458891230761603656228629430509618098165863819397616145960818866690596100344703868808147457669875715203953279556766043799234057363902980967477947687684962435315909710228853852768717574658648793317243797278337952140575994086112171938520043317487265810595919178517102719732021330887733956405794572647708140501341734926786756152449091331293000158572177275546324416573027949080684980681318811477589122890557989985488736669614181920313198817315315378911412667451450985579254567989842007142738894042186685019117706496750141314342732211271151919461718421896829301509579108493799176385142475679073914512551913947588064966492190627901579359526525859896193754753633739439503846184959229664466437910114048247357250000179922085791359122353451473660444411798432837598763853610383281564751113995373707183089111650856805506988652206775331494808872238444793844397210744376831211779846092288713902612512929149968029045517983087391388153010005694491366237858554268460880594384395413079654029862037280471446796855350431685938622672158524713025198513443030246452728391896975669803986469092884544646128908087739942085480136348341421034069256777677982207366538755572345670420340504784763731876533453576120355060840552760032091322091673898329409527086241079471832000465360321109106300023674998790019793823197661333793273082519626895943420153011254907483261906559292494517730569921606111721939702286531046243521286546361266326701992995242029690734679400495180411322888682398616658998264581002724667982512874550963327836222295541932220252073817464621820590204428399076859875808464903224908646425638402080668492359404839604440607732320568408604460518586788356493225287137917933562704192592866228373789714466216043855502801515253350300454148928016253490698699368032505763284469231776760036370963583649948275898697528178815028975027638064288393014817983110159187389840761822051475597957600038022912184074078905612545896316623010034105528558848577643660935050546337519210644260968681094919696569672586798151332010605778318381107892818454668777447031235607124695640239959697447039590713683514972156658081419137525032548291061435345331406374579129164867451491058044720388445665938627666136305654993163998563856102500306844665280105028740650462402016116617386743719224705229621761415306952268319685739967927512518830169914330977450814759466770934821957721060227436877429647640778512201958329358085301968140476917141975880421202036781657774418638939180279632249257691144313527059816214384204464981965285952452556382239374669250657468015045329636443881216116085481909646846106982866338923644781198849874787291530585937708602138579999081801435764147495010041528474013090672002162539505183369500822086592046774959634477359439967549089072766452672009997924497168825937499007612313545311902405082481258348852011654768146565373264953203998090888820651926728784882037189308661138614173195419458894913832655047910476377919634288606420828817934099317711544278925071824630104218034825913852286843276192532565364078383054800834579723339956470841408945549884145002653981539731728043028173321910330893865862645460750398167767482588414494140638358453517600678393177439319851970799781455067993634196315716895871358806494393334642071436605998504182518827286547905799635093513405460429906177621604849324766828442640705955997130249562804458982830221981691783662771174557797933239652399753118966698425419313913218039531002887168122968363782227748666138331791917829531279523376894530879108828875248702544635859823751019683010009799295085853018000549496133356822912254998235007512595960436708952410968883706134703010088374817546908623241008163035513863266887577092830021692593763501446687063301745491064457810071479111894656107671936873025526385671294780004594976203358960136130904266487972528443305259843480191099796948480349084337506168205215117425426882725453193736492741849068206300869130791164485778923929928533114057656750467787737400096985554958497247467189019726416458302114885027349306028164586671684824506058533563362332366309668229929433427268340205899966242695358235823637930681634816026652592734386706201197230387114109122288695177034508356956294804279069371809183640153625266980552018485500315399233749674522091734103586645389077794136253185279273432613557686126717810117079769479768416998829266398005009817551031982683247539100539279951929041938642212168767330773520687743845863665326981906791609552356638252901922424313423087776487778259461740294329675541436936753061153257054388048359153778567238639869059201640451470460037235442488064275220317166947013483719469438731558452674311831151341915562245797852952508207192504280162636888374532864314894446102052964277343011281471475565401624020050718414255142372035257490380832801504142648872935927599040454401927264307052740389204093184228989482393397841315463085531238431231905876802219942346023358045303686625802485964888423889744298067987852787677277773245375985915815787490829696753844787210805665768114630750472959789518462520751259603485384112049872387535266660967313703505332377679129777987311158702352018912820064690111168277522286392930011085975990147103294269026153090663866319851193507290732071391608841026301210287453933874718747380857166305477685808059888931697626506002710497643254199000210132463620924196833850003600157293251170176163442264664946533750745935579667927424055917703160831337437104883948109227825863859940194848484548352881100263294376892190969732286821805426488661491171203379535450402623033047725046599002782768336278584553451198879777487636126994976680678333865888063395331481441582682166405309239451536208744880650889336328783404924163721123881601391993974753635353479465862830066152810186679405337326829858004664487507848585634722136874542868278550786947685915537831719953059263768418173713833652844276743095213347782490242169164409268104474806650780656032549075450447846651819731239974364918511568265676488643104271633748003198626140556388914135073833657370608284128132854786832287144155558147660989990052276143678554674450272571563631253528737449117015465030035850776913001757446064761282114093546908590050358875215096399887724326026672529656361766498307804912048776320132923288467024578298516549408436800834776249313664421156599024518705790633140331184265495900758102741007030084740944071196776776058332710985264816433879769300815518247497750184088472005568068656510194449577259951310377125620285488409786974507075041300517297132414314377339512022929286583530918241398074136829784573928732918302445211972879055989855083963351969618722816248793945591207179432810761361661360694292098876443598813788432462452392598648834804212420503251764123836951873745511853118394689519310899063413805712545310592768497686008803428349196476457857935093443123679297198702949939645612355482162221273997994550515857463031645524243225478756214454387143822430368262122093778102493246487162657926425482473202134155049381647493085287257527539812729954197812091394924689752684412179400422678988954431629500042196998650596766957726798674889282885538153347574455975329765873941389229549783717784969877220976681613658453289208938323713747684103283420972394522583895331765995501639889517318486909301188707553071201887206702998105254249238360787818823850410896476622330031000369223337147344076667495291401208452173007251750858061340509124528707772312619759275154242810379907320112467062564359348755437879536138778243111925279338565531525629324484632136876255950588018673492868749591222395572511996518423914370598757258993210549704006530104755511232591807312481816517473915639701432555589059731655672820389759269478812516232458323569942982027252294965686659285050564916459506931223942260767261342593446108612955362666784557644967075051893611621201693514430668915085894585661710382458709928664667940943834139678874699534654509311677845505472005827015579558521299724920088152562169434412208129578835428339444658304576653793682353084187773535856481259760903227525865153303835848309440494805770240199035709545325049917170036248630014686846434015686680899424149364871572312633048634710580946605103620943821490411946040657937677491492880105734543226448206310068293631855073345657628769118436060110851503453445716580312312903101530680923856916538769264480573577232029615618742751800152248319460863433742493883793491641887597520440629061328752428749508272119900094366189392654277540907416445836493747026232514620926297040175876800434535757655693197258027770206806772812181955708475643038511331949617318636734294528273234240349914613105839987461773628654922732366061852361804377758621688403097510465870659632882104039176128591800263655842632640212694835367654641571491540812354790593621102948547413083156601721150525403929093512181627096631523258692289595322710440782742346953659813029350849733076719899081758680295391979815153792704709699609746154069240902075481173685900041503378199522419263140631468461027852639112819446952876666897628205299884051576828870643665473813179805353527402076620147659532397401599119903290315298380849604066985169391273693677756858576149275571622301688029602421351760853999429492399290420159198538679563731704871013163045969424915630077032884507426972232273687242210873693300907950615494076653709994521969996432380057765677921656487424213654633011079871014560926216176851050590963898997560734193436636861409819993152830869611830464244570211788774162308547329081057687205528859905039171229703141495390519633356134731101862122271590425817789859725794009595109457698472862888368773567441775836277723265147004932528825107825539741069421992944131921336674983430535037683795983152912041183160504172664688535066041235852629743679426436522050943179053743259189336548452844667884763367922348997915409196006157467788319879249406848153989936871873397041042715165778223504090456119165594038496206211686369520363619609449931845246068464982247822127309263334946133673043236901331913859469240879236133602039022791356106640762073417630610282871855482935280176248209384240563028762470504955091238778869242548116517246289749313478920577255906350821123208551640778955954199153029152265447790827043186720659744689092297660944199238452989677312939813944718622054354689146577957243829731452357295053677734118119720042459781668872127083790489265542739963462076221750855549566099454712417839177679365468855670166567824428203719878341239797194339493887262904325683030155980588621584720267312005274485170695977469990752206326429244093454481651257296120903778157875732783736292709424500191322828698845817348266801692104417864095735586241774327938514236045742767258852785959118199672434318713574436134921745493590912296647297070660224763788733349577946433288732205198075436489912419235461029148808393236794826162150479839526412603278453347703304968870358931188378377882222854301451730885454454467601497696719267069888573087061321741989542088336594281348768229428651290058066219120558582584971921689010230738842455809161236762939470318487805222873405731800837176351608303711991703842645658262662410985873403475601417138277284485567816978754185414476616005626871208866274360903960554629954943214323467492294669637817356867042982716755193847902805921777263671784699020508670500430298387061923054077923754825180303911622496062534854344604248579120371874771164814163130038600014486117044064318686159897226469952524353532417623807084724161745001053272936898922338743479160629248099124768307730657441144711811840384166280002299366141881953821540754507743856651278379163886936005888147187487429138990381016330691688190182569261374972889558056329172966402247399706241783926727649770174471486669742843716492366862555845347972761110430666986946580574103586100242005679215030785430395976795673031438497845883874549504602040736652865588102832143123637482261786280070422118476978979499650130795004795047741638308493385996640585370820604466503171540358961119361534722299578251961639011162386615181133962723560854298705857136943614182641800038916856170399780821637849740463469479794493642805463639919146125534969283862924476925755484119410272585675871495324901336368890925302786535237926608345874638482631722987510544853027519455477870456399919370196453537702541066332539979704148755617184938763862405430730231638821164111877979692320274629905466819838721821442339429024580755869721173524396573554038950062938908322046288782605405243142441451655533582966124623484861114321389866677801528184174101552264225350724268926793327643205947852738903704047484764957360095044903206512134784507453072620368230347419805076394421439432356512166376228215368370421393133645291853301961490421769341306795432792994412414279455424925338180091340870144875142174627848650401743536955848575047265406483743909320636194283277177479934631870298383688852355851305745619363625613794181029560785377952910060901166010575438249473446961327085858173289911421457517309892584578418879752572964546377248279079774704590965404284646408744100957140296409554942246605155475470748904459626084844530488780583281924918946932084557489859064692528905769506473548532710934309077033557661401123657287052116297799255672480959158708798169437342279721413071986639723450402717765601618785897881529012881222572405271193472322383184785505248151296270673205987536816654633240522904461577551415209560564626371449453745485638900231867584696681079585587855460665690553875742971862374659579836784375579683789077649467294004469581107209285824630189781410919921727772313218616138421343671835114657779749609092462906281927285685309258220202039446980255334366342380136504152897592891701839011109389028141977987194760188770663213031953818086405617202083614369487558111781200318545057133209357197282118030798565645003661967979180413336914983744749708212657029375004613567887500810664474051260231660213030007356299714457495123657422857716091119388146158959906863795391287605964875995168275634919510583489724848202931165536891712307828066139534774470563715864110893245329324882094622980748908454955429945659027480676006837379880929592149940502830121573798051771156153267669663271808753039034271651807616857394153159225086231838856681791005368868462665950993631049357157400109302647403173081615877861654243046504315872268863454310687991962612924561857455904313490132532358404524648721001857676728025510342786043176687815931230832340696439856283564736579486878305662540180755140528594087732950619777215582909520074026767882910359300363875804195712600547173655218945670187298834277419989730926769176402783348414685923876234525796241019456232931716650522805606088392815650164485144029463976578050879759672834526764763899960531353063160351020234236220746770482142471813308645540526311679313359312922692813557559048175637178797274617853509234553587003395955865374107603678464376136356962171674691100018542618684709545555941390653649793787072908658893332493425406818896689085984184603513582151903530920227075230764756056533420213884004415204503927853577864245182876983139534666884327504332960346369099062957212946411105882492289072847437370159327233879678201625335319058585155993774570854311484727331013284621677923973058240177540682876141621044352653573278294562985338193309447945192689718997156856341486690468532402884897042995806501539919777409477974225478060002898038221656488365622179445310622298984611513910906603667940157823801435894404245140884687088365896340647043316497317556240483227624843292356688855966133234932100847219976220647137172408675999775332806108309233509638872452030856038236285367827083445041241427784326255678221714508860546129556599418998486674656216039927676471746698292015369633519987455322108457780616738629606884458239667850446609310765766475073869969849034710403497171292230467289903050188710224028132319417586509024497237420682321033371244257068257473013194751467731974038406646865052127602659993491860084519415002499505078791186690046108547120963616678892474426269765334931903726822478713311444811344117933797260007594773280017062427699331133694788313294768857057832995749336034765671364085967094971740108387289623714878543501442005589490748078219693389390025389396251747006657441280661493248053749530013742012591748268921484181031896576418410022029233723052750267210896503450684251854556704500927584508103127491737633716446004971553125856963125422643267078120414314589697783535802755659161036589949076473770857387338279647300565665550643656751681296077329843761228227846654539487559624957259836794785688588725015718763876872785411189148685073643181317077580477729441240239675537588122266149909680461260285095993223378137090442223836086303951698039823058695467339713429601298178491327730057876446967700107213827110412782072046558859175692351947069298430553334971830803543218851965946413630238396086259974615717649440038338421369222504575512818989898825867919275695023645449448888064291111731033834177036666538707436864359443004842796225663797020420237006814513955288068617820597196419246545021778153396132788720187325695416346167290094172163732563762890099047841151796268477715509947509597550640752392249925569607291030084458728530607117802105351800894069181132955131897094591353338828152468034042587274393936069947576096044194477227521655586689444022203080582257954920591349587671398079867152933761157195756132682252342238639145136978121101382554621969424498205788564322836121613995609184734505042936053138335622377557639895065436628474051167479892976959823106294334827465031075017108636192670945605432840118123415476619121865783114320196082596818875402184469721518173897107899104977779851066885802700772026279846699685863190175168817667887085781376730680411593525045673229899781901166315172349013028072132624822079217173636164025971417639152866775064762223958147092255602309201789538511620006738086912120753035898841315570098632433196314802254146126132652163260724489699856445521611205064829053195340515785030628798425397786657238485287918595826664597214504576352934467353252629105987717880342831174749767403335070981952398712179581343190136760607606003903487294042631535631555342119733935857539484656004991073964103034870869204964298690487822379390420453392139960205645542407390360244404224364714887240026460407173280231503720283755248091333653308814131026699067035646414065858428667997621765393555286576167299857018513313334354235661008183204123838841000227026182071250467481100659785973082575599975117468366445003295863768229178466146263623164451380495115786877405168343585215405569279384448857679390774963624508035395863883668248410793086942418698150639374059090744676912389001356301039983368252647479196856395209648947092914511143464196556420787888286289582445979976307970553133986922317826456777409805883944521926867441729918371466139328309354129546064032973305853521177401403816700967795788972348142619989424824695886723080297402885922125715399052044551157400030594220807161402181029198569052397783628625663518609697892675038287753364987351470327246563068452284947858903494811065194385546757161871054334274428610539189196818566550021076866165590980287135723683356753942418933827601580525003390983072634623556723374423642634818070753923298178055384516455656209044507486669314444815882060663614313266107379626788815921923403813014034171495100560922572839014047576361011762924518413206288756068652439270956208080858981678375898627602884685647563119548519716458901798650701238969129552652534373864012108863037092680179522969891294917407954083848103660886633263520774645863295684737038267015678301155516921050884913499813000391704255873958455756348328469971042518056405261455486226418998447530305723767866273669906663071587775721150034755667880297749240274790071517979797664508462419398008995845465541010294433577823289422944968050024377744889089475700316577270855112375494712646528261667557855596115335085083247730594538334241156931720010046783271605881141774652368765899996700012535997014163365652660427235036806590832795219353485408642224778204974123460345810482761955544716404391063443874246151087265237784672627294510630127308263197874058198554456346891233499940055049171371462254515504733136294053903118227170039879833362711321527546912917729751852446843187757290643962353225765143953814409214383857638357826485571497552476331536899917615645145270923698676494929681761307751211649031784923667153068723687908094401763506546743187030628767160334855138932350005442963687957064190756587188754815106254678007059200813830511052998537444900202937461460997816441918055953948737753972733278436991493932567599329856912753624246475595801382258116433966394888513729021256589330640058112158052186887634661277317507304926178952798377557955573308389618807039011865211114116988259844191385066858743772323439509823796492301847745738410596458541056009059134362854136507974745073787905348001258193363834860377638393197478795515513625929102564845741939806685540131234328674183247924462023990238328192933939834909194760012246250901194427222722309720434393013401140116098579116766421273638642469008591377317927355292829417516917628469420679357125917905603334052278472121549913851282762628394719941466945357899954987716624225089949832913158220791305667347887750096133498511813586106171415406920199846120137839366218111085313306706962271412118763084727129305464508163576585892661752221826867827566868750453727397004440389254861187789133219934910701778562114152513896607062089539677608592243857930396469777850678152092858292492219985553089805627639338697721991892181477166656969366004646971884276050622195363331860469500462503586876603060164912135063336507294186871788747963542486590351182367494792655752449447383862418427526121010450139286392349549809993564913823832166611271890432841666153795459433860506663510103240613759897892837910493031025204690430228971338837214716598868323591233951910468607289384432423196308464991391459282121543178341027857162708088738173819674705378694428507864235123367034776145653267843093012370920719102128920982799338651775574577793501028015500151576870786005965865966869430047276483040916561261176991004511725688767267702658563882569211524410400024273386855642793167527705462036815581511578083634316615577374418459555272620355067052510909278374866972711797584167959309004436082528741421219239237542559143082731276909142821816898672536776769459843764463914488308289034619077743319336839040943295731289139770660666452322809832399104374056374266184764420236931705716062606139936801241417437047949413232201143572015486771486420998850180803818153068706989794168049140195525726031160038024535441024344631290518545733640850294755951514258773945113265711346908657175069850419579083908549586818942860179784729084999293881420446773896418778101280254161397203296773988173524629335981715952787152443454164886356796530124522979033795930738452035784227866556932122939708043391390008187239208880042446916390597435050937115356526061745493670614871785165963446665577930139550275642002462003910692354007260604157337302839746388416900841056864027817109295905406844489967093131047984484020556458652338396247806654043797764637900258751976187224454979528320613584776539998917324436942574718838151540796179376259384685768054759684597294162570072712689042635093198772310989345671484153407795092837176138412280326762484701416666913158907831618667622997458278463040245234402477582854665056263889700727071444336994679374234322585364711556511161697374942230107710841266633391251305441724093352879456947364705981351473023775545113499169607265554940788405460382791831009147291732888888704785859724109824724780101165967470084147846716940114144912602506455264849041936595705548295159270487505352140588459774263647499653595101938582040279875996700336257354471839240244056959365858740336841302424163816480680141798979374958490662699135159586349507969378384877329073569812190241525795122271660137757446380784661849951103091103930966697032764681015179315569440584817657013499115983423883007668585865671270289855491556332845109921047281722347902323513483239489732162658771359440494406250374002328164213023191902572843459667535896136325144543512721603142238294698827214536342852224450919187833972131676875419471595148806033964522596008429344993741560955735528473784209651543514880207928123497893829574049895000869684888218299977840754827141519118349005962534721627435555380939175494911974440148139164512420593936972655294802585765277244673002289116373305378934864385756037547457074719758165347512387962559635259046724206068879173671627236429324254399609684405775254068345465789687651645421642912954298604929739073524674654961720488620666457574269571380004034900104092169818154276438916370967549278428330612357532262704915019179182453061430890810863185536446710986739500611840720165905812392489077024589677435766502131340274247986816998392773870166587606836226420089235877057033532325812046926724753689363211521308942701272302258947275085543200417965016787286003960270707156840661965300409325513756316212543620938385977206108745362485123692394304888501094039826167751843643056640343537086989481301210641101220026024614258767765516535051063381166007416906626513590667524574305415366747386443230114486287396687728898059052211192975173558622239469257620308575659676223467868915055543116252554356736821414294402619981183007374313458094557797056076479697721380404033968707764809285297522617936703185867153461659008243216021836131706925162090740193153734778228134436566252110342036092026134696352987611527358147291833624645132948525397017190954561813307829926618485529948893425774980508533218535426203836697417404341165365024810341518227718500259605549209607981537296990739823731249293507477204159699360738910444914391318464524407345461485729830531006033234941923614029679961357224082026544803207568516286896487213960016189849171853058314926436479826801710697169810787530582352460787516276922141571794826866263039409933909291786932478491999495706161132350534865180141670561861996127764237932544107789881086083613783431238587349417058900057270629537466015840076560996193104199314366784433284156687778085883822005846400590670884968169918406118225286520440339142681895416579562872005354469641886969448459223048011690576579868550801557065052566970993838703631661215352511058593050279260996329803685543817204574502597277676153556300841986390262384852872314947481873613477068466989379896667689039654598528493828020073103220764728279631142528469221610475373622808026915284074529068501307377934661067002826755460716887648861937458306344468591088604966374383074987390268532314789021909961542420892041842471249848707493086871084041074953974604432763902601923239348881646224568423702687547184459106103416148831411939685413607196369359506564877285072993565696133667224900969662549776247918049643655784888362642188444458526689536049203986331446363663888004729315393317794734013706721983389271231992499248439192659559330998620628589852019163825407363510709400641172324904998761033246220691874905312977146469187853647978856145223729979736243977875148815699728847774221168483553901859973726328095966519360223951451804487901837906344458632979182477754370693496302913047258602050899850016362093506819014200007000016277024806394085522802719059202000198372497863843036106283298682327758001061786741811850905569050102797359925916540097862302297420537232910308163273705960347905328694067033349232011455737997167913508081776767371293629704949627370099994066650525704823222690270436525223515043103756722516822208527106786223288720413643592054287563112478692870776176261130894867972851294793229230631287670549206482963032539863616780985410417543936388421491710262371940775099614214270163031349243410485748504412354205570692878104276985751611852955638101549896331548103709283458398710812238477520350610374805425351149334702531101954757211916510566441956145027435842523045867961046829525427231134507892424221825464761675597443867472427985871015152190168224193874608161772871173955528659240940717955314619530363579223394407808964411052870896114926052917847696011791195897193264112750966737071903064081137399091029801913067666235183394143970796674995322061898851067214444429812150472848310448284056619206163484796136511217077683464618253480099862474975829368879749603149083181043472754759980176822011866200083539452353671918559637864635660043479181107438068839790372836476225962714205621093367383117267517593308467017169765831582368246684210600704887467754828929934780905149697401246593797311915621772340274537224656497346234560739547218887584334322439237671736282244040268972710987325534356821332238941730486515142650643941529732306448657254920422244821654204998224259039725988976854018863603464734868967822565654579630572342912639449475451232745186790134898374720497564073863360531664287397316212828240818242694205377037012666533901071214636830325236591886737146038050179088271731958608223942373142504221371382971914900726208421309248423801137295203398459924682268839680884699955287192764811634086884634179902019365049720165079279122237945910848691546788938087301932222254926250887272700432611414065325765738341262939505366184662067165665596376313393083408221951946845221071223912480946340142367402223012869896263099168097539778663123578590189389691322111206999404128925491095966582171082809333422161425450086398130918363406717771800392124658560541943281765363705279744645294919760996885097967255061287751716296359943351143733068093196540293271012686851153188250625933501543634585473115654909994027552691968696730654663914014482110755567176308138861772243410130804196912726665468612059808033068129875129178297351531940064743876598075704859562140610034569856771447660914498988827105185320985144912943258726496403258817497274974318055265094615490885300132158185364604862802278164647402082213000415968230487639288979085606429830076351319198589012439160879234798632780286124092294159625526558480323251419796620068460967646002500980578104221503217378444807426184839188817268075338022471167244914805404927339244283277018353112451326411755056393110458834498352046956282009659882769963553216720356581692448727811737182760466941985546820895142360291384052435344509988805107335807672899582976521120394241053094822886403441991313264564675373839601705334036775199508053214909330921897897519025044031143685307921663275763181983221303098704683114643738017279683232626883639241225214269661151329143705615454771911487015296195871175969925074295441187352959678833817638704507886095116068740954567051905113937729596982890106092893299876538627448905976093889051311800713136677815988712485574118649408619287969839297568250129380362467291627956236063541958974769565728962475867627377606231156286802634491301716638523902069564964328497420853822337536070425321857728243827066117829619306635516865757429525616220399971723925651520826384501492938432146517903468812030737965494119859792226719671382344856452483455534963821919828189224205731350543881452769152586773084510395228910989843002145556311594057307631084855939674717492283697992353721095088225479791241127011471141112276081755834252250243657984152205786983676732594430478000958328315933689209374372661840077559947279854200403715420238997570942838242499344181621399872656992269981076389670835909297838506206955130246590030941976704973490665412737313977136099329484359980690521451367684375214128979723490961305922688547417266797401368188564349680834387308133995157903570916232734570488166200773163931048176154801983591325605586886019152673996340594267904516677341029874862170402127060903398406515742366190899543828858918124533739425938987382269607130247344385354916868564889290653944994000075062270860861020875658883746731904276185390772859999861249555378929309641340944190983896413039403845516576519253087394582570195019956674485844548114020228747711631593926779282086567680062036056557443995845679245149159956527624538521039121970361080105700293019854067076430616113756122336443699637939414778785460927746847190224350194041999717845532719759265427920629150082489369975152632553393231278859038060538113139671352025250191104252472291494134192334608248883044714053911466662570333177502966410745013384781116632604937171322771884807182773468236885128751296661827337697206713323725899779408475399049669334976201561522835815428507516243556761610214961461765152454706479939330317048566136799936591829661678944111269859785332792066196625742591521673574842657399121884547256765220211368729002406076820342542908009797169980795222724222484192889782401924247534845238778811933778529816476473311545045243843072026569395536611940921149710828055858154210240204080752278210597992818165524122501905001690037659247734769292356136744307082367672023557163287606268729186447167117653253612710805751218313454029934501261481675492047718841755041518335385792399232425244383945957279415000442402526149021467059364754364652673706016277210141568742387420950234130865164273071097635480252298874703187597886219996001871704101184830381652556393292845973499919288756656947019642686903909344649199928423262036460700302756501362859623597675693731536620728895369781673633151117729574499215528923485996343093296852688970087162913868784071742365725176203871141984973344746740638711179437039744042525091873690417213940836422482456554819085954525661354369682770040039428601624571319712020341005131462245161785799440334590403357940992809389247821031704886954128071949117638986311284346555285788286213091798527052319403166590575661521174951892704994843422470828157456928588110231396990226641449889593043960091224212923007422927222514705629191758810534374119561713096015678944160899216134368544982063235802368855524297538280826755532192229457613171163470542442042444371107349390845147198285035730225242686536379336936808997881478935818986567714637050698253734030839031859916027981153899506261967546468058820367530705106533314894130745074026011998689671418064941162876170933219194088821298876528472769712967142197012804541947427062026322504530938280208485754640060014776336634746609143204637932105344599789956860704090406590656552124588260093075067179064622701238123414339241768181616874117668432615990187791550335581426476316569159653804414086136592849749485528929178402206021873797299394809081407974170753458518753971975762111328558731046164202838892339455102864506761459261790265588957203651372640678177095228933459464203717190789391054514852267359315747850556551985438554098900906882566032155597353775643702941500142276035424821111019324754984025825418006702526636663887016697204770024490707424524836623658942090272058500844437896030793537486064131329149425981555918615240183258990521583552094912366514191073867147981657790113687124826447625126812281856186731910989276990062458396330584672283239371353809134587192857646278310146888843385541445692908064672660429666888179619899985843101550953962303333806456721576411597323717651514389515186697792138425453517892061326939418101198188897993293969551516578541146958866484219667046601355569066398112077832698228629224717037975257499773638319537722146440908963906297598959634593100235895054508381504167827402159379021962523978425613800714645626062035100246835611467099993980155492153536047867099188683628245412128872824191378996202253720024556496464653345168233473107121103800040173968901961824503459015484520200413801511405517838049281119547433618173407147468484824198097663621335793849749067740019909748341602618063086839221965294725593385851152322899930038426025656083500787759855289038767177792466654669228292153943776202804220267830395297172921687160544605626741257861228514142263163679141899762494262525064092078503749799139747462819456814623693783134735293173609680479466472423279981822043465600780846313499386751179136282232403773928580965644647819449214152009569493724667104223277564646182854659444900953180462719935020598742618285540095217215192715350633569444838104761151961465114625908603857478428642462118508786274651620926502014625672854539040889484739291394534741560705024015900291548459755184388341733306615433066010079497439465873089614039621288596615875412444525106946162888505517630035987827385528684748184443191423402360981391248730397971057669375244848370633792530995747180565982971849920052484753759519296973184435291264228303219867495596263681924472449975193046094275227503966360562392451746736549885481494029525377137754269734319306967051883972821928726383626875209040551896592875075726020765768982973023247971098194294508289318229949386844703726879094797352519064025092899800652887068761984614694603546293803168706013615804742750668185969123104600091987726760195526444359254073285413022444551123852422850088383346218101655062620454689755296925942223354182275444317471286470996954532198829825699100133878205928690160447893446234346852332580323747115831965723484973343144593631286096047871395551656476531021860477653696882362318693172533365477987520272940816357848288051120241607764477110092968662999641264210042388489515773079550903906930029484089831457803829530664378031722816336801379137942213528809630122103450525316450628400433930216084866021912554676702523716173838443229241923365036817516396058384768676001543189662936039388108880657355320192946817758514438215886078873902509427892878884883734154826314835361708007402261659606402672868809052122814198066761087516147223041396595524780882053745783370964268362392856025224450150738809631604177615420366537903380905158470496437399706983224717816528690076214159565280851564973192438209239888411968109058880063982945391392444654872460334437187971892463216508213088634359010928417892851303218370568273669572800775864547339691588479689323908392981661671028694638335104322805708842034298974981796424326876991242195409915044903827301871639442862486381658679200386037351058311273539351033946900330037704365334642673202509564796472846767974385234139226668646141001144671082965768445517189190955927779150716445228082221111436507539576546080300155129978797741130194570576851962544969977289521719718804517472153342479326017933575184072154577752299458693514882756882880641674067875249667527832839458298113231922281636854950779567413653998692357086148132555069986790130817499537621510517817654079932780932415196415970392684229703894512240102555497814995116983154218710309914240276459594635102604722795106147382820564195836727102367873736446868524697961192250965404420302948801867482917448382922533729340644011197876586238610221026371906082292301943753486351778831916633350811937233103655611242030901967062024401982259585821424410224567668758438875103248245234791882395107291799871540051242763788348043177719513659935815328120832550698148346311965130958968237698133271269489119945511118407644147798163147145533939676806318139741226573350186161920284836193100085408451228899043093519639709771596498567913248452892673144714486557902966853849802708126686898168533754823996563382574733816669808095344878264324120712161349615517015182622600695267811206181027942856289552722467016170490220638577889921534687389397681792662388394422351922629235081902957775350266054913867630272006547326546867064825743602704068844714271561291672086797176693665511143477496762458321281314774701382895341239291812572822713417433788907122278782915585981765580354991672306796193562179806540669054376605546430741393223094023767139100382288469486072342274993976485394683897615080980633265071110471544551424709003884777122479807182937558480471158435967243373897161862594975337529317310709539579707082519517186296205051323727374490845748434503902391584353491333940023505078145719044570915459030250047184753549766677957454366193355228340197828635530026564554047908929842038933012925567096542647940165526637922924115044897413446845515937034919290413178010722257128775298130435838630378819756445340516591867688927999962129733010681144376446015533567988456715653874620711700597840509541494333544473614776279504473664687632031217430243058899474300458755926157171190103009498342113330422441911595159698482937428223740572445771204467373475051493095528155978902181749485805931868663786648056447877154991378211077848149380247381989653255410950751297390605403762445308157957674515217286032018654549535765049049675438832781681622664580768740871696177707078177421695854046383448587614943313830204257006475784325871388616791397051911987013264493585140638078852677115290389910580307356810518432918133014402351884867218389500831168293349042537906999761589301447115956721550701419656237863975588195763800241882821409831830436765249337075343419941706247145705298447582913753666845489826872333950510240310382486836127613008666490164310256051667871550408576369375728769103428124229768209560088879368171699607513133414532429586544757890327766527773572388405412914567837635234231222203880651859390004924592818649728682476731660566940728515137218659025815498716011883069430437072209397507408459483340560893661665166710657516757173730152263270509022057071975688602024549055232562194830732660302632316765894938365480582865028059223613967035322166068631795733153805275238082547160186406790256188545491544456293015231112386242709312314524865290820234972944126192527890113547577635168616021887581970616391138682971347522392865612890896341254962777443356777834373020149837868307832840043493048746367965416233537935331229522328267006487899936387730888290311264252342184729749189249204360740782914573443872735931703532617471529818014592877679133049006972297056555844443460718488838193299498444157022253175296102714942445340151655247130116546711845718530005256810966005756761165413387273626150934939040498122593029847692726949583599440897822545325768545151964370115475950851820933820955711234253423472697726315956945684662673892072838885480608703158916307757482387836771707433215268627220470235855551041594885342417509379815592203263342246246717951669323580500186305977675746693566370626879717435624277091116776605229732410081587284293696984118196778362089035322890270457559532061426610769962347237500597318515075841123439966380924498124290915712656460853654184799034726577407884411108123351878763754413534047672534200203235763474518399203225820862644482729154875498388570113140096796294292374948171105230815434191264534396244654270540331899992238880021051500439049386215858070296798050994014123129501005741360134136433193296354026895382108093759427661334531880590152562174575368686174252113264576409900707160653619702164196395735612167709656397812867898953174495890539847722832553276392862855824253273588380612624950622762661969735197603226602240004919069731258750062336383117055385280146929699077692489508558385080929612054996350917171222949212653906326852393881771219204965263789561412539786229953122539406438053273573916481349253919031173823673572397651036485004051447526145893019157567031056275675082004490438973560208234488031688335302808648861664701652082792367223587805865843402897166586462556001021056926334032341799627419538519035733141860047536892963056141421061269603827009073025508497034118106586812585226536965058104560809577581093334215827476687853775736165674751556331528470455302165286241750386852018578092915553756626206470692857953806387999191556461039582792281845917368847452987351283275669015294223545689435624801137962382047165714821475551775451831668736213662997936395121500325313932336819541307695083752477487972546799933262939201580847651913392233843388842592423873305235024918076728829668661212827448608396798285938729001744591344529128137837913860702144586819128962959257417210292598847476424340775239261261376708839466590379887538411308194052235613994356271100707315168896421795441620629069495090607836409967266617622719705575527578649123702585597299780358334975525316010415396375892520359896002383466846561587012924013210100651413951247901317145607873289096098871256179440566188626803282357302972922798373553782084633848403627851951280690269276787029898086244097629869018111319909887225682920743618164437285727288183674650055266424598530675739008628414229543519655752335558626838250106830537458601351555312009185436631469637774919324338946385332473554931634466501488946003856701064845277366986905924960261446190575290322106234793619904930762132090725122321468814422976671374141020459168239006151998010465647977127216680859824592608540935357232883948690280124811889787124261280867460957386501381139842297776865251904334075608671978585792182732579029602558966083165765311646576179998478451301471235404896798705675013107800505664223951973270808790641091264729166481493214738331544521478969625276626487859830967278806784133679616231318428985852601129098530682708843435715851658038967232279709358158083436823097285038985461605740974681826947764589092988822579086649553970647649321510749015805737571933611559796825054231215140611491477505322429232500943201983935656965137727943463213984564526107388210975541657044533960422733910258929812561182689109495609212633441759164720702213116949220501837847738223516703907815019301510225429876863135009859867776275667415796746516274758385835431038452219537234006691505345817108259305222013986669127668091744066440474941117318707032967328621643516321036571096862026874910624924828010658664209849562377730673836411310897085920018190472399745434238409625525296923128861610989775165185482976749898905399709691315013652036635373043479409409489981894572058715787002374952813286222822006484261369044605295039749393809796660906009818619118253837358651805319748876893722173138251486598473084324988149332476488639675845049642668261317656183418863050293090850120310864378100050745819439434634453129494024812790949069919244811725054487267428520036716231899838197860554737742720283695889342536291479277185636325157267323687339175392906584965925287350606530131648991160962213302194896208162900863067524406740134079328113860910555282664863408930979408489787527342589311734466233249341180567016828230423201047972285378721214050929260473723803764409485499913781120052476818408213868791345705295636198329553353889957430794087472243833261572289377300577720507338985017494577445472215548769053548094213300057511127292478737135448746926811534061356299241500875487520955173630857988922178431886197993083385296331873326192680815160203276497201243675380700297137345553401186089337724454991992248032755212467099815096343661526539433197572947770512489958202445263925770888599326866086626652044858346672058266176395128792005274419072615369373820017707456811877580929809098302069121682534759499014004323740149143005465417009762284103437024098370310596346579921933040057719565469283830290223759070451097959438715979200075931066005741494145388449304249957800843202762757142645727178489452473831454324863552251091993688154916043795083344330757049300038143871337902691627532661814957217925507888952512101557248060135935106253226629672222527711179348494674202302393671006298345670508213550571936458187158597732530352950579164259199394770212950230682222079636780105657609404528015137444187390798776180615882776484538139430226373619338427002499932008108925223228482106691215635178603147021207589452923565303191464709438450622356400782652525957924120264341685876490970090042048070298509508439758909317118826188531102755790057503532588130198581832715251078408125094620957445997443921952209716592037061505967712220250200216298499962710941492398891194168454259743558437541496551620164476274645035491538474878949927014419176138002073129344877392035066575543529490301069844650100004837523589266027953923860666855045304351783000569687335546060930390110995653062857795727753166260098408429248873932006392274998524124879163892351310809617342842001996462782643112077031333923046543108960705629435885025686592031744171296964623689157122414004817498694232590220066059744688928274323319296886750157315591802028474146078133212934259433214653798237647416768101859212542721565026061402301430007944569227558465879944552549085086399796587880984194197376490843668377272626743603904170799485453818333489763402810415765360924315307768896914501485602775749279544151798530648939053994570287027256046024316015231944869677705117418941910789275520852989036737174367450468748031202014112697427104389770506231095956136163333568610173536064661312551943195831297096967765729755956405369190246649928504638786689696998406367521893892577408185116892127285161739093799973331498731620140731045283105770953956034215669705827564396633938280307189893446745158460618261767141159690835925729631440450750832463975513760251725144610031718598735815893843540196766917173022366548733350609161957206418263835530895230344925077892720508951751658002713939573458278581852302671677310901474293512214818538388966393872706927435204984223290602469495116150082936878844519367682083905648920662512998035016814730474855513788272444306898810419172330619054991880208437868893584414573783217582857496232874731637014572483963532246419642510946685243647963674047238398193724992877068619698688248908922869063419228196847506278830122847724616537867319584706517542869393411053500586078418784518339921896013878161860366406402612422099046103081736004706887044065054491634492361789612102162307597415563018194625924153259155215522305542327941221152263260755414077162484803065796914069163292930012845728732714705921732237762631139925177078744157239835997479366453217513437155014864673492982012256956755712519634073066654352458912334683626010538592382957328691146785492771844532611633463086177039464699147174353265279521302282350357765728072131416879513484928697337508666280566764197860500569154585484250350178941488505830777534437809863619313271330442393321252648551064774168778070674795856596079993138038073768180881429927534115951334457466406280344050613330309354653985481833393280836660820101024281192346015664857556608359526199216281008824139327545190571752918166886703088251239467003763858185852414463041597986491214279694654531322406989173212431764130546778280114906106724648368788332070426537715378719688344870219313050713530789832361416115302634981389933113734323487620867373504460544411288522558095428320332536508261014895826569957833802986817776657034048559188361059154945935468518905087677807550760597977623954546028183869069489434246927596181877514758000946057084033356986758590953803749597473097096159284012537257877600578564701773278885645153853360553394474602129253380934405154021496300535841679233675577460678371577273451249373041954262578852165058934633956966996388795898759810141812934596866735526178101081134606732923244641624783917439098598519935803438116522106009727144320931603027684044784783871292654056351752594188178099867190345102575943231087807820245672235333799803569160783772405069949382745514315627159664303208366510528386017612416053904880787778657528569822559330254098548695117138946506820534148280931138074688422211952408880327037836672560179967052634440778553075142289644208302506944403277428032570692188807149972733771739860183012930916275759949618705638180351544753752128603893436438356965123969661155348732718134985051267582124344320485439316762586734582694587450621181626654972266139659138973269657005516792599088410378460958965072848245043091090484930488886130441744521412617356366686258978302708572968625475541758272558110650159921789766547123705269226586098134493940383725375377271627508953664795355273610130734667971611889984573955125926606008766692417613175255004605031954955125078356924510547645622348692974496689403602117197002986395559140851291956273808031264326224133326959237662655852254996286596140114617900242986995081846778309028753551448810231151985137077109958778586644778136429705651942460919471345049390065494094371976744891511697400819989409182753351939632437253370166483485497628575663512684148440698206111952037690998446831240483104728191605336382192851057600151404801289573969400310926226176642516198865777953647478322813641075353538520703503262484393579631249906712500214121541759062936156067802234375501518199667772067212571044506190173117078580657623776162509542790745138545402103231868913239887204046926001965638783855746502534739362438879932646594113722213024902477422036865705980487667404925821080939137214025743880471505614169094240300064171829606049751481448887695785372495360846461173018370102636209049808045391008947025749794073974508443890019575573574186875647589938037697742174248630033453857329400590545022555086967993909903593402688353563587689400049410962597935402768220747487478978948097044854609529548557230089508188135067790791139901031444245802597849305150526401923948460074796379313774463479343840837667742757650719486099565149859449397262198094916477332519793014966690327291028243066699252823743347578166062643366320303742446144741695971048597499436586942668891164655413313065972561789941283138480409372796697147787776204938179580905825724317416516178874455191742034982452728227105232836966545935738059630149919740918881204585582628459862928282588223035477799699776168542869639241209504848240162769247309256589468521547885251646292337194379164835127683246167797794527362122260265054452612937185269321813487900663272342062415455687101915557354634347932642211184550988557500209950294205519793666931590271170859574997883978316626893130558122698436182289279915390299297400136970907910471640128739095350593393103943159469376365204351674201852371631139942833711857165003678778322684937369243324845722460542536654228350727052464819917966359885836320090480996817108684907366016287522123304721420130691416096530647271913835356152007861634143918829867291718723353233637740114213350752018369862014964151653243945289899021976266391497750030570230492695540519136354472090273885517972415724625552281061097784678744711626038664437107888918276484230128815501881458602479144234955244657519108095384542033959048012097135428582700725381141311500314744835710660358135825938432504309251517447872756377716263240854268213306147099056076923877477752538661604703681609043372701142113305060210761585747787246720752744262871795820946179257401248301058969282408066514780081446727089157300117680882566401559527231261186938591015227705581406725976149664300534071359754632147354279690570621844084515020063460540348750732319603529037809566348748730071895107507986798280881205363479791561919292079389672020040608113480292652147908200602312097734528578910592758994514623093953498821661838733322124793150849326685373416989548707465674807492968319657536023463047176420068632936349994867031337396696641715227473483020054337573651509011007412718205555694697718626998042613335446235446933730932780774759657111141199587785441972548296117422527657321174088611314492339623911633771399770441137797044197661494390961365937185850631842256694075735953168497623602865289963621595735030619533672567928868064971081114826182503674408910391287211387930825000788395755349076850444039128488478213694346254166286542463037517385487159279943694421292247201684938217865428194986039575004242213334528404235455106175799535943978594119555147472531251401294722903969906416997111926152890347976050688226464948955616152975612834539100802628337457356926997256002044220458795439705687167015541183100715775687009136483097524570589291240804640768530702185688072107583161502762777674652889050990406584325546068540914324857946067391861775683302332423755369232229665285069154700708404244451498021600961751545520221459482020512490949466548662868742742904754691074165251608564873095230593266632970221674021329228208060739978879317964451378495967129136625517850180184562834938753582842228873253143488938170838947156567838286951217184654059932569211595196640637205007656314902516672629034222410534619550750528405748882962772305426592124362445415046107102619586902795315480023963185720124660362624557552798773279233135781024486497764907870668744259856523655067178379712075373679816176780638334970439626465683467768639695518520760786656783070047659385999888385848328730829372815681446238845493548977748381355364079681696930065635559817633679125800445890615269429443102642965425380036745351014440119380603280375831998401723144455738755289602390907282668104508243454751007432679723863846819901630351753587788072572541065814215483352040508452378539367320883223908617928125842417349913274068106604875412382707736632256032166766110087989680292923759449710390907326783025765706651232826209744897018502337212848433918678117553884023213623615502464717078406691645660986509051094246796155329644305360811050310561024666659585715443217746904607105920345193213182711078818961480667539895856751294454134627790173373545545981952613740220176473731971298321092053495578772002868946722994807892740202725486192825262041223597402233360956306433450959557282941156408537899443093085884417130454740509297706074681513399671262423094712376600329340131643136038184044627595608394144774815310788522518294890532669373910722860810139755391323604228944523663996105581928909696627468196336549338498994358180267865691352064663881880281063325381528020239661276381840313199026346119810239927843609748714351947904180765924152507753487664516250980669219254616590885308179764861930407586767645503622274763168947566719530090616047891475591301517634523277300325971535940570829392497843895851670597888126770773501478505965021777577782474963189318229597253243214735051055614651726562764492561576358440641196611618327733284185589633682142518105371551346018310743864766771054890520431489443983256468506386837216547867097361490176057296724585685813876669986829304538726754405644412854853566918105264756188396671234404429380566381977504337657690975987830388505602656167139240009677784469782453278393369847006118809666904092065843583756511116123757459183412172240548385691691828889962659860190211459791118948403437243873461253411518130645789490233960460765910093347103037120196522473091336078900729154043745477165070360281224246617394881475247536168095374936856995738258481243478903114071107782887834622140886482645170384819858676295939851968240462004069306724944671898496842535576019945459187197150089487279678250985358843785310515774689560860457457030594805345981128909177234856343722255516154290981530593686465367553623432034172315615438062642620898728641414579533194297796518688085711964522200845587027186146629542712719197734247352157574089561507345251325743210998621754677798168248057584888580042599239242905026936413671275857266341880855867539483845417229006702814104780710564283457935618900273344095010966739173927090004833548210862740646989239112215083672771133606489634029753177120433608804036597540806077994044705338118853149652030960053952793136713278237926050061956383713295885043210785096391359910803883272514160634786251366891571742330959118507457461317338914467965565509165635625053004152017755506875986740523470844987400146471550500097603301342638618309475897780729814869413758228408944497019501210490903551117163158618870253962196928392257209914897637953347021419895193687426977059038085226093702456200017048566371434775085889652024398912620188189793168773551652881501145666882291829313804295929726840723370027381384684491848652163553557030937844832036921083822046628737270140938146204242076937342404889942235327106002106265091303102831851762487398125779761386917265617513715913696768430190516396229920011347118461130485916589004466409764690465292924597656755278188719873879280478885599091352637761704560936748606470536828691867460378326341370451083420215093967943963420662649620671515597839496288766126499785364764438105536775003709124265627252066487738808325566345055833423686915695226099765517595086952778656659588976833182594792897978266273291717806743359142263375845309157698288648436214074587913509964698979968371403396275252226468050435153890128960085030205622465688393170188901911155011509737283096413678395445928376631794444430436781511705291584773395503332274611107594490357036797523509305030716580632373252587063394894038569866286391892772282035158083664052375182908970934923223045463101909439854251495611625114062036824208585372576623926714814060585629712942882434035982336950311258639354388544565334929080110003882983495161775624615928531303669900680584458508774787455324578251425460997803252842463622023276522304181638415803077308653682594395045476572676789713930228560528398357987929571719392088474921269970144408167064783596115692601609961619848564329199557746021108980210852092044155179818631836201501941607883501961267454898494402877301099207893414504560125402831743924902477528964549432243511094506982995988687771067754507585919703502441279629666010673946520048823102583588860960215551566878790767673928506169977544759226368038308912421810624750708543421603030607890822424810879509035813368053274651734984126004440674757557898208377392988799778141725911688880221273823540183024499702423376603703100104013418267590032806506331992444443192333986254168980317763858487421883866339782452800105794577588513947928319449466643155035926858629152324590536211260829725899192288592321156770431415678819456992390084063195021416582277358708443450526097832083005863291141948210504226923086287129092596955903576685779864862734932582658091565744270110455376751911885691506557056576120136797407819907725441438568211771891896435521089679579687523519718666844540944366227122485355252616822840187142295828667192052641653016635731589944435543617974678376624314520369320328767212616574221535537566271465931571724535650038188968135360826167853847799513806460546770815849382810524148308578602051290152328899301236714344645933422107345047445817987127441955616601759853313381118650284045875498694565702407045765210469379659630247208046863935439478194938273897550396700950663588191126266249334135779821797039725449724648398060476180954317787034551560014867902152648872065432480144877530988952596376501986601645753381286425018136051209743625961480550098002537180550560959789522339677693123120824743727572669714642010485893693955462447344733335309768479942787577652860378029178209686964937872586602840848755355122776170946312735873308732889093193568755364044405468226305615595693121706319354217497380231644394741174641422138360068472482412565265618245373867978342672740184763036702629860242321393226049065893793698979618296543329987371204154301626682028930577064164612124454567065703412462570588034400719114659870707430013733019254608405223841649727717557550551063834227181906445093567210757140149194003621437221838124249258227863698258145135903695584499645965315996183490706056800656080558853406987154730653411958544330254436519010475443094962787175795029554793963763672918315889850902590568642955872885186616909512631784049212486066197556942155230255748488897445960332804035437306702987100767501347482802290749802531959432538387756117606716925411683040428377767200767639260487435315188744828743946780218517334857819092142062908681009263542254084685036522107576955699383141747989741436291881639038108006276776534537830083727095705428081527022005136732580644091211721490675262979674392498250703823132829892620143595315002695745843979900090618372777540067965348187240623053935636726774074926609353137716473513021378167415137661163817962780292691719578020344508122152807794937091929019198496314324085683647398728578975209454549648718413776328397486325930571126846498785303214569614644311057610285881480501863018244751087229610551079202625317315093860166330779686570197385300872673561432864461329466943297279041231764697106733230950601252668741409819264372141201715903645747388494468270863269077566432278370760281303558252509882499772741521663474156947794593810147056246870394909776162527335401267126089333876835026508514904282209140448068456934248624626353933606138711031387150275526865638555524985022947748528524293910993039474563524945793387774259536243614462708204074752363117068312297348299125761889960227149558310553325348608215652092489421887882772021508292523445005718120438697644188124974904330377665081798177937628245139252080109957639436646469570851125910333419905178795629957087702447364801475171367573062419087301535469749701526534631942990921893972708374416391040663629605167391336753907925733581988457691034872966363315674165985489798217057548581970055195651937844916468042344674469789449934128192828967802152666684970187419427174680567573808103841290440567315613614998170582625846491988500301308051479713963897072279654692430394078295308536760620598916867920799203605299663749610694006119995169012994376364229426332589611531719235440841295388425484710587566800241543822582637136652806440570556801118336966358685241614473429588577025105525481976143996139937012219460482208118510251276989272088801715533110336795042796900396960394191759394179378652453135644459234976442120055165738550677879548318398156587435247463881974807360057659398476255529588861180968684387043427920716636055061808594203748207629169741656235241443575798286132781324639207375341629190637510104795697607968617060765157859262186787924664903972671009687694075892293342600482896411264603207609275641514075189229109344955604929466123965431956455334852480598816895248343009111762151607867551700596504204005432497009110020973463162308685870927213412943185866555687601256533963615862977657083422179866144280452001719885172640853266575779753795051792037750654025875041408578514252786702130480676204166547446438393406345827105143985387286546562878944809382606391824129720168749630816741499201697059255504185037519857914182950413771052721152161930406929468070906564604107841874116529310565972741146572244754323607506444627273263827985107794916348810827395294076718407536185390706313418656577087639218840697934689621311805344325431593488369254488671773758849496909454536828791755109830888439150310086851494507843800548362623076760810980005254567146214163196909210230898502436227575995705932126743284002857355060621284462227172939423541432726572095231680291072311106637760458643178259508607061838100450227554268246210031649857708288581498223668544061462772962948726452389687183167718233518966119793867218420958821675020244139859419640474418669643468604632365507494830231758118824539693433097778793912371034887186256205721093643135174425092236698471316580580200822065703130754299396684040655397538193269271257226831233024682054170851635744500698864833931548843877557504683671170568997411014257982358242250502699409631081465496687683383660149115051332782938305110427202029838149544740316556009800971188128416083145499564729190071417768881731581716722064217079101036181132368435072278695759359808888400993309036253717428634854322018457724610123573494606334982805163613138372172104572178373075590174704834157824168866961256025349665802683777589968942424230279068044032850606529448353267010427860703119110057688374571310704469105259979111634035545729782736431131676842427774072023017084064341057444975230363934399934735965155620444664902325159230612228441584043196194941935068248453132119110626870759139864814429975018469447096508327235037110808489622849633645684503599458081575108283403643240004092759464728300878076567302918187685107981140152313270564821004039919656698025995667627200315063817839931651096692357541436702039551774916055955813498330611944386567564630109029801504478366539399013485162994316813254953285500409580614693207724422989268309172140509988233807938846670620114438818619875809682341506158853005507265800243620838165986197761658313362255680486856629164704496854005759832870521348101396386110707959986456496336281743847506823605373344762323084130541496268745186885044781619239023624070265052267927416286021929867776714940851983237619105625268671152593845949864736120821986480388247552688894902255474197219722505384878945185524298576851880651229077517523831553075016889340489659432565292865262971742719127300975453738665909329218357778534587156726487618736642696959051151774713943197392564477714777683887054314967621981188270876020846067733083061700067103994110243024103331695373967900900437770491948536166908517452662366338983311603774582572728357020056619913304516402842443144862986939459613840489553269864443926517589945240825889668139627939558860103682679369664278739996961706743418444651078078802104027791706461487671884873449955581422160720460042847834747600938325379016035099358077415631103131812361905412548286256105594545674877873734031510538630348397318980781659755253379399404031135267013187497031189826053142050143955771104966461598270290381591665308570719370259949256180279772245605151185897266282261328153577645602730179507598734869540068327191798179776739157304572899451393512401667007190548036225767746339920396210121910236475385591535277684345647380880509150267473082758945375364200340778001977938962246672962261132528928111683338322231677452652368767753588984074386812276455523600281139646161555544762496453012690314470384324000736823745728235861060496947926436776583479322994982493319066544694509513388454748317544714397639991348916736345040024825161266929450047285287817003225209972807814315251307320770422404133775297067267720888921902114439566551819189434491676254990287090833247653960407990759693163151851218554342417674327036862462542189487202975327798805470238511128257429828350921611072733802391603947702284773001006395806922160834646973390626846767501721648473889639166849368116574495160398138955561124973505363127781828794813014321786198123498087615543178461084700252068978042791442453295239774762987738755514445146097762286960579361176760697874716373113912158916585078044269092246336463249233209553309447250490843749336790347673545865843013818365150488694088999734301852013004402486050086593027138006381748045117873336449205696385859671338769286539390153214582475902847401402278258198763822519147812780342804612713631433340414348869523945705385802556265718312546639159182829001855902382408200518285384674927652214901430267786717321115402696883850530537363412888331241390522839267672040474317550329330302563665860879358527011014997167223024619780457875466658281742032648581467037259341823482355095482362646160772916513262436811492100471097715014004885508501014266874789596583221707647894408244719822903578422279871987030806025363927762575447454024527514050811620457450691617407757484806220262133455813340885056157165132959093412553047664232019087184909939145239888675705714185435199287392135005803018620324706086787034141504039510410064614160227268038110820788942472325011432346934509641237704728991925869349734824246806599649345152181358308875756629683051709237527925176132115287864496413809927877908380705859014223180322781970500655906339697767014150941015004524593843330572316163555153682911728419996296485139188247291836179411888380473167478405289531767974826544807975515905241034018095545930268344751792073408581774822761459641874222540627778718867476870596919261851147956758730222956296573022396126846045619085773017703313940732615008970692155978258777522005298329970891889944650120085595339974951916083357857188483139934011331156296570269854026713442950039821371476396415365606186385929907228742820769672989470526105244030603601324633283848974185161979829975975330702521547132652117836030755331797617061829867243091954551138444418846690427073723971756507453683176182667120887030041924355793003683628129484246183950768361049715947033351998883040495557141948913871700406993271423648087254618129261227524907248517061865575090919893866866562915195143018200952827097260795926887731779300814873579593035847350632126962426365042893082301119182017551352143314262367402610980526896682446991545289767108852549160506499872755301318400370945076502942903933850905690307990111684882038808153553331283109174411053071113623212499771303589734394667645091767957954078387542141293462962009330705230266298080036293269239511562853050096590036855363609508897799807429892801563805967049005232351057367861220551940231804775789877375107475616991620722943813744625383931597477353337421749702850021606163968817122850370047574897137983632595714266062002983198116644968146132562593058606993502731358219239345134656210789499022458463325778114908233251535986665194819289305448367486375649832699256957742447781051068041317145063085094424127237812282171127248539584707870613610815206529763564428744198644485252889443766842688824475217187768071684197619572608806085331395867598103409076123477244857009937593295318752664811763910771991210037592368645162779054933212209534857954027986208696694873386035876205919532095403018995515652827443006642812237803842862797750055264446119204137128994959497011768181628995012013718074143979195245603696057620315338131091942053239770686985259150995859967505183059620124688389851425620231070555466328794925383432298033435002542140623713956787387384472883460243919163593300823357462517915237350069581645975477897163641322980936958163740429139233904196538889881221242478098897349611908249600068172294293514296734758305866881903218740462884332730789131409877473524588113550103856417637157266341070874788268343035048665156973865708113168905153394531682573469909992264398209038478456636486654559505202977761739357549194524663451775569458542825598401951154536301409512576208026614412878612754063595559915784963949729628288559626042042608846710582262566272886809378188586019365570375238664665106616456752779410234808338335174116471895389288702976945841584140572411882647281553871937247233026375120835612607404073442678190996737028800011029759245498227051066708050570530574236454693761924912436661343401477781863215743609148141055469754273010700078297356490787979267032685448306257983905305470256900446112143863512852956816938932956701581123621500559839679407129825610338990923300117899532523790149260679235187092620363830734385059149699532222515994648775775487109832710518375611294480613024953941183141121104671213735607703075112778300222699446382000343500633022821267376158783473819145879441587295693880668961341114397908738023878695496346184625506068177159669775429741234601087950100233181173880404560892833388854385336369609285603944412838716559225654445487264601400668813075973172436780235030188403508286219823738223284480263573501805824032534009918842371839733749341289012027370379362899616166375070728648670707598227022133300218062569987755368913328373364208129888242635720354452096183297523103726226387579566505400956286106656100272770506582673858730874532129879689633737571762212899668334205371013248796663555247482739894568859378769714465168098890162635835122399041432793844168219564892304432147194284649176311420192659429995773075689060287904341164746516642706669600445598340939806764041656561114382282559006609032311250867526024435942592796425194740660837951852354620303431141188072912119450338901403270709873901556647358729196030917224498185658271022414910930976829405464669167425462015221050258337213133605875215499795507806056735331803198586524222949268205784298349522216042296710641367899794703348763920703734966417357370219352879107918775911540226431112758094242904733184838226274979063441994268306642526073185095864637939044160528884652716673275510761180932499943056983403806140124364519795997811571379626281010774549101160569870018934468996622230268443819854128583616493064797803776984083123577531225734850951320838363634231896455751409848114475096426249072003118059154263343521498632134721202594111631618525308820297477277004214313515609933149013528837513239395106897439621450640946849423861032125436429096919549832018145067730241211065159195095240548012044908944256651432604109757219158626762842838457977207090857007780818566328049264532720647798400705353333050344251946920193397425484439648452966610094357731160182507295831175496074642457741541603821921817243176615297419642994641651229542247716062878342043481404312365708219199040298729699494344374800309128190599686771588264179777555106336928858231467583092876067865575536525398019689313817722957928335208054551841273367498876822805306128270417562161481712101449838023629340091646764694353788247359105861118344519281023603580903005573323975216436125958975201277556004035611531998657201262125100687030786447259366496646534706200075357286340664981209740776806008088051734231329609572712029834754864090569894270019156380320899964600706608050407370962406223341438221381699117697769651913681379540608917748802574714797570601131057486904175799525290591621803312379529521788676566733899550814179535624142416204432280735835001629550461957493460908923408932212734407053807241259575232649212878061046716245296185098762239568839845297178555240276567181526232503455415108344575333842666317721145253612483231377850969558561894495521813416013045071769440624008587268846142293845245841221437113474105831863568725434109480759630778209501259561854442005311960313832192616159366050782453448845866366572535919333615097867162897187575768377702303108891448913848885710493013374166774966927265990087863602323824846617386074966309635324450946231814960775369203672064723043536818819614418728814831084984687100066250435441283368196440693890507611261245217773800182744442882401533178249884219736804288079839910303835353839663727106642979292445464765275736837197325987175427287541230429792312915766026677490343602841654981136098244713522892986791330039385722540567913248928538762562463438713787046129261292699764727221760700898402005744476577348015555179851009047990695523053638650233498507892512787155271338114526368109150381578975648572425066076127017493396394062216013999569060961435342355907706886766649175602303587025828760619591601085291011052314861734882921824464157736355196158906382989469446919709586706310090070384326819890756262874365874809044529582006754168314543816581748901813942825454286549455277027327836808784490400852641160981608457834031370439637930918712187520659309154169613374141923580036939890881237861880522873589605153628089290567808559948279809640430656223028778805155413525913337730356301658043381091339676880904096864737097823979150125305074669687646435429121540712673807705271580814255003566914012723501221983303954007242898434589641368789647914973816372523937304742159047616792196407166128488518337986273887282142758398283636837483354951792938670918965508122897427293793945969676115322478965867199871602366915436258580840504711439567458289154400235326939172125814472547200347382133191139343353130279940705100064163285117776305387129520846439438858088825551098807008126167074597716344439984294998666936296567216392915481238777964992788948489706385874092828094558314577263331349079602967493090325683500068477648356741702279310652993941912240667568032759688502249813092416449506906360758999735237483197819741503709855888188393696936832901092677707211818589686808347385085805711153330558327346479287854144629275352773488156069835247960126997633900283223036609275345021169988189944554703820778834047940701825167758433771600253968109851138839627705738937228262447244970267066448257631311393863623561701965923679927003136321888858467091472796512799757805132089632966080267143550393149421704805985173781897272037404639020674226469048957926163039770518989914102911879173285351171238335803625969442319365357362552239357081212680275977771127200772732371058782853803093109580116808303307608291826513109110438342656374499036101001166896943484020359967409352137228809785776403696680862751225174475426031795486357025397566464793469959854403569776590993259395798559738332791665236898277843973883895158473986322235577081664320485342883185677737349546720108678492901148955919743322930018028108449385465581097510871444863430014901247842439494837250944264240869956010813682389843918003994707371030252907343671006126913850356257772485819146421225122117835060991833642627238719792210257000104657485906095201290487838324242625614911038661702203211079820284105203172427199401391471896923074466643657031319456601587932043430315579188588521685507405653168958894625967481118007107083262089886230430896292595680924410830596315719577888802097680434557720778755134754193983002825420030749938715082573426413368311988413091303194958470537174360447977401009976728245846036640795299821192565455189207643897879873037956336237892285297128560185000189559706614763826160352951080387550629812701329158325759248091452002864804115216814422654456229468286082802681746970259513918930068331790756293710039899084419947497361953628488980305353528438315256375867474991616810015011479369749519766835854374584193239753199576208788363679863993254394232415602105620347700439405731137204478048462088702450556973031628606859701074036013600695030090693074367369681263651674432173692396304976376210346975317387639688570004393307411038757300326313356649652422567627772783031033109756208232973439611689184602042440440698135999156020741863301208290845277204964809911615463337940154859724296078879833683846289396832991879407490604035633418041408093029615730761256653052579466572685345737802385962002395489756964952138872911407030063550847249429086294548560609817250654603138675723676558732562755795748959625503059950245827490163233135321799146320322128719079858422615827105930389634175748505976270711692795020791894303550961871766648378597256155721489796091811309842710364623622455347010800830515001647751852076503354669017441444556777473924245691502321896924834099892746061223577264540133407645920700234364321035364783554446593667762169925174364854860056712205793985088311340292994996028569709765741721354563708832882452381507760867053451337303163821038385707848926362466153623428328779721573408314623331015378868098432061429405953616392484389317180197682864280542592856562266899354960756785910630376988893109217643752994365738816414399622979514050399335840866844143177603784453069444143654051350592955199087473512675880133753822306323486323797945738623257755913844055925501360566972381426619876543815398496318400469777853927636617422307407026642639764570892119971433788746705474149627382758351711478766591808883675383142131824609016132829581213826739857301565874766281527691372515694206253486761237636278118947196343373779059749311771215438209917638398844933153182910240370301913531549760220191598477569966091137844540913278348789139256379750049822756499637623404701628359820361000263833825862325485576844246803637180355720588678963518891229995220175791556168205079242937343232526451083775233329913522153011808021823752543408595056464366268852511680421004349055494261483440316247066087095564845269779054151495697929187298549075319774349520029324750257673223970752981296247803206077764006324168010328641154894982520666819110442216837198453842041810678829435778426481839545608458559062038582312698386983120071753715528029930001658089493877250509390768745695602186219412984410657574599597140978637109717119808213264946105756350473463436234727281978035590174297429733299290937116238764629686107770415568734539565094027108349344445541157325946075440000818714065815634928847930135505934199125337771769844895138082009138239718187502434529547182433524224359099834364097990094418320780766658677701271511773147531226003421205092161372468851922522637464783142280299803778114568534735810595437755367325659895474316149893681602767510897602467875281559520026666734813615826623554049978847833844694675464380252651079824777175052470228883387741511512510189098020465456327457369368241015311622263824732367636319777023911887300944881550358321694584636830303987579468661445885221337914827830091031313633069648235436143289969959962225156304182943786365160118344412748670546713635009133004769146413534182060953992667732175538887020134069129032287105083750203620842950846667134780472372836009225540643537488223585966992669897230053315964667117977973167956020390393890515513106962092763082504363885303931080269128251963453826795350224277720872714690762338154236867399929859296913711784903510213726244440933455464694172927212581995700250228417349354203680468967537759158881158760484282831712563259347470875906020578110614040622713989766419691717522039872895835581559934942112324301585041019462614231256902368794573889084576460411979039906378341656666005674337163995562225294304896550289786793882485458904110298464798981535777972707923364426901863617801523004765787947079421783697264218670616296565273588430403803712985732339797742199474072081600492183209028444395176388104235879067744429844630654687354625670807772061169981290152766895950340974638698554680117480609272707006458047580107533440460976294038968043208890120811168907711540020089876979830809179087947515839933021362424659618174115558208391123857993461097443147551258646637683862683889615021961674758429085338891955416825176233887040037577478964783932646735131291024390467891885071952444767830756857714281226842585758002114220690364426315527340197456798943732574892137861359924728661716611981143853490052681825547110936146701302477002841201315200430081062086956903374577825128442296478681149653863819776759395204801068639557368841352643795466296125083095471450874306338127735507138651445071163426377775565632375278372966677499131580662238384614657557209510521364770344668296269897731535319082467777762800808926741257792156514059221698939474081563737450006468826022933053341137417695769368762815995500814848427024280734421039422616709028711906350842926645127090867264491876877010929359439618703201142140453576402564883289377530247156528104481811132107088831764964251447004323318765837023151034233338184608405350158332791219930111953557628805565244175025945111224551523171552391848598122043396191241999045500285934612121083750507160486466588799682541285661868817141668227462553268225721053405415170657932425598327109052345300371681143899391349506648870395399453966056473881513461855365321810777682118891584437981927444739373287773117159906782416259837840250293172463404639393109607114478983923512109386514344837771057319673818037990546029276614422399305459919187363495045638422480915378550937995793518308335794748902148581954922738897809383871435396300858845974701853522410424670203623259915382524101049971475480971288601852427049842972265708490995412146767595522408332345599829190262191611666217356172817448955453916417024393946519509754860144435988702636330283592302085476731702809698665721984027068968888158277706908166509207825722501441850644528157633336303285683865241824189720183465991650348316463190833467908786890113417921211347057928885863816714235827421105491663856727481067841622172213385574781437925371226521995343114361043735375679580691094601232515465504800479381931395688224774229227712160283235365077923086647763170427449119918466260606139172358011587517785470596542292440058414825335056707583999796011937827299653938470807657659191453255027304533567387114275440950213433268845630014892058943142266234912201140215307832644846386713773502294868344099962886500299733167217509150999406462544458974353690312654429326630488355903050551395913608802028107545152763463623413011576558014417837031332234901732140380462804319920824270152067003850121027786594826105580106617922758479675756977753721945024892398622107206817479721067023440880016252973290561756863999784354180405910552294380581565909440376394460713271103569268460493920641810541233339008563262899941000489597427729465397317103182011690374541126684849348953167187561732353916181440527675722487513314670738596006933259941049884596136137142877462060582928449997589139559624560304637460818128411624109940465560212559498361285339227337751211654625472869010419301911588345404972396459765673899858288119909937406484623340958550430004684509289451194733658004701271821128210236629194618472035458365254933140201450925140028566030220222141502442673851303236865913273485287563939635984274960094107889321960657563533567162320592348011916499630562668365442334616866329792039338958358121780606340986599820262272208956096552798592740225136020953555471517225146346514247072781548684789934024978885940014251321486983127557267814062870084657647799684810940180779729959913164960980010790348815456449480581372180481578184443792690633135806424721023106043831803909720548182393875639300870922069872586693349097767937863857041119762524287602135671778330304814020532670172895671624496777843914893787509440578901897386722099766837912182186672342656527594791235017853280714388868785466718808997229418842352838810064101640906911976367312611458210937360427360034229683922066620201324036087747807775060115895920385472477440589940997603488656060361476869694975101260259791779550035308761951477059836826782850183879820080948240762016280778321011418733119414157426593828928038764601146607544555271850991876961336809428886061845217842145837033403584235594722386917239109179954941328993094679318510519051435666672815330121529528895841303836534724486127713221714606892594102078625175197910378439817628462757678150545344866735715090514191495487903055994460197281389163267035130337324391630725198540493300439173670284450502983627526134964007523633512005436586237168566525331430544497485863496304945768318638063754081811697601382042812943438511030074675170674781525615027574643888626013301424777845948418450595812768736360879254290559111829958476670662392146771171678777004271765151083472010071568664376304047136375641597830629683814003725106395952411448439565432735012429138086333663073645189464198154011661302852596827617549930986250852623161958686544622643431104278797761227273494583223393890872251773448853592109561278301688669824194128917345811183746612902489233189915681866587740564488943814239801228827923204208893338054255718061932018885967947102543286881087873965484003401433561838452552554477860150810737307830972570753008686802359694731325342822862795993452004556254620764934752051771199357064932805711276876504967379486616413375993887554330225783260383051019627229876684216370070050351668363567904800721871566852473945163879515919123649698140120317830329174953384427650007617681338160282338983868195951844193419250749499866947674802871643566434635839671411806092972365976274698735319481710835831979360089459712463142522944412339113650777805210741238056599788917797044414833462884153610852313365540751845159911084726544446557359232012777207144139221850151563612491755698412389662637862140462421139776853916782983235440154213203323788992708278370319260222017626214257100185090075425381864724252511965312864345922251137924966450279935687530142053148095588917833753286093515280470508641654070016071432786042739986626473242301395857967728002784326654996835398718680498302001205237678366425021511305881340449892708631230604060667675061428159410663882162131948707954591896343401483193369382953645092686249148520479437230236580676213320269958977979848161740842129311531544007248947348686104339236158852211051505287034506251598360348527617877572441477540132265906976573692909092319737982484654297530834055183552868003410822910866976555743523842266908680611793574473389336342616750257414801330410533963730964220903462760816112698215235890721514160170340382599562889385461594379850552200745566541113286071733005189741929800887623652481169641993519956106442622102951979874375002716298350018263275082555192355962043549736821549038754816279546689207800706037673161062943084963703332615346062798417989033601147857739277436771466672060315010094097153044219465567538432390980916145939302565688820174975625971092460294723072470597504058542349292251012547721012922199444425796254081557371798632693436949006415283916213030063462800789240781266531406853985572497408095569165756786479622258373151763626602994464602801864284329484320880546811881896766516169147768451272878375087904777802192335388419923769394749102849212046489234847075817254347965723503325261619916494907578990753013750606750502963718716424880378705391406434986027567034565605384487564187462416277927564295537012773300150226157988238529122566370873189988198968197386300067786602644949650334400082697094033713451759587284975319027959438089569144070511473585633272862576811881238369457823064365490995204348594382986368682937208510412263987957270923042542137062499056443742153239670877684334844572627282772166217375934236929380609713430125218873650304279377237195713335187297487264569632066799876931002873482663679490642461484888569806908257180955558175407446050198039146426609073328583490898331145768551421067763110669792125012468319773102181394661782441050045699720201541863018940604957605668296659056599724288009311630044592048360854606078401435578133526230178893861918854586356374536846521508371471465869683128237265945339939953779498659403482845971162538819555226219702282055446916170526023615497541050204960162150203884799416210337865834292212776485258060705548999843121152759871429298996795862303351143373387749881792132726325983709374458331439369374432420722614378013755841963830884754244912274887789618228419852056931702358629331221596756631398582340391637542114431614206141301707464330073333550691793795779365172943446339708965049117547265641463950959978301376923547602945563192128121673393608026766616690835467947512085725193514555913199131883883002793731232267354332781798842756142609997781741052910799831307805882952894205793300150607947119500186983201093638440322254786714494715503722243592795752304181078307497116970067287501209683895052136805804674446370862185630858695560792313731663259927904557293284037980121578342928487327676170428501006860258348293426452966886719802411897226103505789817532537699964110263765916931458903502798368491946796369323259482932785862389959556666313165741857763851314828788486846738326859081863251216192298222599713431296107320764403265767017026629854817713845797997614691249199606007993688836447609507817010318923851784773155856133043965364155326873907336413909681385641243429905981713468440769360158707639136621241138484595245188652150690874091062827927452194487366066158123055539087516927614753633296738507424810981249827355365852976835284418996315787507864022019496189244495277097816914785731258417696737527984198848632384607359181435581719539802269351741407973515461780219040158433558392350882636398184391911732520903464612351771438133538162009268596323347448436619718469765752397781826431951530490318616702378089268886859881295736280018256106610717028172804402555808628702270568831776267360870582344658323806449461760447617318725774606565288347064371086048785916288097367968425838031123737751464192243580198061887497945535886284075982410108581150771177411001554042547885959550591526034950997024236316417724209640015935889136508141752619433355407461297411036932687583353570718491608339944582149152801579959868110685449171901595918607982869885469762678553343237855516879867696164562392751003929411803768594090450474761930603916671872538697068378064623463803652952582418599151827639671264655742565783762042318178305244917704846457702983949608108503283136138727489006397333993570779355419844338236654064210676874413291010084662086103946121270165393398160085310296201714818048613096590177499595390014880107646736114545447072994668347400408248352188446075410391003124060453261822849461775450563866751383285553565651131071154744134823990114711207478924416654053334493234148209993250906615418077726905096632465394645989469806003253914483447027327710479180765935423067523127105942573885680284073009632483432382605231051345817384580625196879849201207217421374295178194959121160480206469777889799028844082699102066670139808314452151472778285835631052719156433226773245089852022128419295381292965863861217601341576085232256904440451840435234325763557624734616564041123398245404944313039562476531150225205135105742921680931559452354651737569722465726783313268003933585666870703401419715035254249206729667023386614137461036440217712737219543307359053249434069693772497281942304373736352700853162567305717208133070893879182041867641594455257839385240186453621282916691177056227326804178134363096485649140165748178215205663599105081448183671351084956874149040414098004560733000084004074030235109380408603723833882148476892381845345848705324629728814529044975492782874190551779678957279645248359512093760285572616847153491591850263048031130660301969886022739792962148908650566350845208702435234153012043297878314339256506983589979992062271959746067746420611493189411732094069311542361732567833823874928782955220575345842198772666513655612460774960454574634137978467987659202995754193115081458627394790188750106908632553522930801803151601703430398965465017469269332752660108020954794935390455699456771856370419702984973626860315567268728145949820734531664654141546594281503063253532112143378110100305986851267185507532146697188964819394619344719422656856593521293658051248932925925087253128902161165452528260564728027696045277936558233119699491901004856617881593370602187550228714634722608512662605664693249316178791132153561093595390312450425261548056641693247081032784010120659479960264621856684011691187974970716343894632417737053150082004687498777566214902871734124908241004517808074812381716788336126396242087615080495757746231596465519580292130333073619921513363539075625825488601512542862626085827720952548232097810767578990063732325695938813086629582964749562203195252532388008154455767978313189908881042549698998388718667787327672709194759347337889951159731585549923809601820799308861670411303441915872819191174307700459587584947443638638571360670841269581810989753029611983293718732246752895045501669320859000397873049140549508610193412614082722016487964300141318868241188927980270485084870511351084254744809404118402818603131317181230010710315146391028130983084773562380930554434118303109527950963238698075483064768922735765501156336164988987763065468664807208111718400123876861634602657652880216842998411582239280303517765540399020560332386723679418024341249008960090097167712177857080062555616027555329007669314452407530324557487335325975986558067137894630335174296735418184721312870969405654085252755899451030295393238524796446644768029825795800140670382875187538152707908594463367903131242154789919588185552646464265304297421210380702403469930377389461593717068786724712271017543640855770548240721250435874714242005790972769998791867542149810277856032776467373161699200803267718952186211545344972484672550522552821432248517481011331975818441242318850627424385044572242473283421990978588716665378734854090517487131513381662638704754326703112342302962671108870891836630731716349967151330427855126289036295920480082124372108860824203724368509828620584442186975571998422393793301131611456829802846258827699590161449634802072014464864532030144581576543656622405175292724895231358381826221387491545209786611804288553410998099241656028434105606728926786523694500821509502488161170922137306840368913596926312044712243954870473854796725100843121013944689986230039725195224769179819467574021911442247521187902110302037576349498433333600712406088708923902440157783817485165632181075328064427523518009922978236146030638202191281430907531872194815789843370476906247071486517167583605446574931500552922604487223708427043673501764975835564650650474909877149279724951407078622274915152612602818523275060477935417902330518198627404775369751767581585531340698803306496748766083705476884496974450310278992964337063050877381521546161338952355509049832349106937477827440737360897419856438899059841920735243567979883198629863551912629026393031402994405509572080875847701757016659475986725474127970258925046597784798024720265804414797029742348911878309870797752396728380229443711341221122200048569476022602540909256215034863058577455767834210002179104512312809422316738421773239391549390673884120725434976002061417609563924566773628165488104433895248724947726996216404048192212633927153165407301426132375766043003740429996706948711645164139226877858767584165864548413618474861563136392761415729661787834399625147023305420989050959590148606851768532900517051420428458258515687838361812526214400313538235156875255914182951789953023875073893381138880535093553735118424723513550429459952265561973793563296788697449136379338342344130876519643725140815979538230859747530609737933623344749407301838456424398810192682270410769024033308205001317820054677206988800511792284349749909392222258402885768171242149102970751647644010633917197550364928936944733868324243998482756208241356462976306176667177452592721587019961144033174281494978519861008046417012582498086545918535588402105183630349873078138926592334020551940252238248994348183054374237169743100638695353347795654445318228323904984798877745177490594653501156611585031096235588974464903845051026805343506213539399355994506309250669186392834507507711447438885808111728259225012312329106444284234850744509451621277576291797870418593979701705498529516798742123014841328785265185902222466466394781497953135950483164193366275043397069430322646538965379892243571784994520729244243155187351309206720305873863761234304643000495541498424525407919288590644992044435565289619259013665398529474436749798322770085918122445027844719624175185766587067967318138913434983780522596351359137150208388660302403506077051538709249984525192773452625406315478371150556505724199221874973448359943361704556139140927810371523536030183113406813275208723539151460754361968691163050996206227885416854500739511800033111733837307339486610488738675497938542867579633857531610504668487542527639097259737764921172873589290086284996999455797824844784166884252594381604733980363739982501770043759156925597724301336375858595451323998356776603427702658872734847654144027566673087739387696454434506425760513267627801038802508293244249413628763852333535295216052731398240006631528897198836463616851829633000195001852189839890034828681548162732610527006401921008605422551095698705391810665248687977400915727456308693862516656844519745088894356683226438887016522123425622265172286244818870503166294242525620824772151420812696884099297937651176203236112939224588662587524449016073491474991124767207246003255885895850817198171268827886899379069421091964209745511341197369557222154994714540858095532294616799660283253675999188888186095547868166895086991041613453296300584107563645961427355484429355692417110722418947298027088825524719494409881577114536805485856232941788573737509339571447344153424626192032792535259087362206436204596455973778933370928308187785458653699876777261780529352461919842359569940490541586639792821516754419978005381401302404857377420744693747279738632890733283088908909471298621814895958311239715277753725681449464731452655856767133253588824646391484637842916794675212075129884381476090966533246056959636524237647843123356417965192993467558887564601682219955539983779887932806400864650730776965719331095940175239171370474690404121780706148342224547885996829758380856784075965927621872467549740116796855170267042926444325077613956971131562673225434149364296612375517131494700903021925852312138270588696027731165827790372400285912460325175276030935426088674418425378827725034087460551605468829955735336989926881309244832496526966013388143958161810290765440266357667462719778500502376075067013499203691012227782732533776256756355313317491913521727128390677831973014981730490420678464022807464027469377471845340277281555838275523683593625047856885904214226004335594059632673825292610136957052360309694866945292647659516520551508187591277285831618075471822582119501708602407948782623918315467567143910681578268197102249639344451441051746913523647989163733946854359105889817886064935604059884806255012899794565340346733338584530435572640339666435522934259678038169429821951027622764582234076735258844758299701658581113679219143850594850602197369420615123742961077096113762850450341489171292615975624021411001367077146421434494934702411249599050534367765813310995228740425045286071846440739119886080159310620708727660660025974703546353031512102710353276244966522519035352145104701967524058836962002186824181331789654965174872631607716038979804811219015368746790283634150534033296443123842906340301797738995064065909123917389560162065192494971751266270378088458534338513817524415882380012306975778961889048985578165978929172443276920973354111086289723505793229580895886849170305888558156988961923295835381618024225422695455171423343527089195746056253580979887109847536259369716349267389747236067513896053383655756215979491078298576731302732047985615934646584466904938394867136821535699327142438399864670518019172374904933347763117089527262713604074681222533656188992397492822000907162811426003748761021448339923046711846191909132372062952605681597168117010058116523680238125164154754702349354895218659844542601128424651064830599656691175254817018399312135172838588072189006656507983913109699773463332925000790760436199445617032439592847879723494680205988167934575836927477013450659011631081972248434449552168414415159777710397476311579334870942498259843587511942962307791444579125550055548817667966714737270510214499465809508511706375822576402427735237762468254747545984448516103022398587568586855975282879480124400316203150749078419072503223715933575879674130862018778207164050432333234749091922017961584598421198977275777049373792067678392447007418453440263681171688635485697928304276270260636634127530556809052133333361558406390906180901804625700573195069907539539468147754358066991832014637910555751879450697977980534113256010049993118758314493802981967281228210455570257486736974339868957284529524992307681659717133708112180560611770798545898892625566665539368342956355041484351691806055819650098264457756373498707300457780608066185918542061416480486297300420519714259960765742927865026798653795177263500085371846193382011973817882699286339659619835267201745221378349156651270490234017386504862448449025624028345035698037849837275780702098111129122032655929357753630179443651281195192750312432181231272309791568030248803037864663178934786981114016282628690393269014927493538151587763903312931027465085818900956620180315250264038064313609020274848823373517616973582669518775456483066779610243151701605767558923325646540636328400843859794944991431559957753506082435383741789767733007955136430281893734458169843980530842560163613615619738222296291977200844557176100222704370777696630778175498543734560976550685012824650793094531971537311459153732900744898994213420990116317737314292037003687574556001520136067092428950237208913741412549254161218695677452151823849294248513665115727386618511746741283188992823599287231813516794686931467611260033999703979819673651111651155035029766346146245676641831242247967912663481747165615883316886667791775458027679096447535443167541540658949418561124922613623478177334095411994678443734878921126038822418874571253858842788708073806433112616497723018328849764405620384438454101247674609884381621345637769327669685193674442909557504981600059119351311372182803645163152460014816338641468902567422174160850823457957633313441852698520751613303228564827400241900749963606117461090829334079914487827388244421916837706005355940563779735019988839639006707272030105682472116828905804289925576510401445313083083507806553004249023858812091203264362875176990664270932357407922474293934669416437693777954025434217027385999450954449233326594194912008577227472963174988448677603483470103644495066769292155546948723185981952155112253404158375244189169020496285929925842726978826006098930938830459178823471649546808720483184531610359465839700976676628166871380711327356595759159174242233923946966275173018926612243673991168691989795449836393889483328395519127513500412390269049531707609030894728040615575760775747735997635189529028619169769356956784415011940147701195176646086687472508684192145919276200602180212985359024086175144712104730417490654257888616388849006850540348977163447745846210335432998300802299696704531295668089942063591297615837172527498725976971611206792179222349353700949846758545040560135003029434402932517567614672818724204118061712942446565500610650338054042948227396481524439141411421118849380450145348465238036446563201550387636787119723274293348382074930517190228708003368525996899671433164536192678670054011159011643177448262007600083856129799137611623171526518359898406403214418611581785916188526663787781717326080857064360868687901699096134909635658693840319674978946045770228526715371405522709384206517099773701303505713903994701110350997243920086832753381738565184030059940054118195121494453505580616271748610487727368728971310166207748909309660156119902145369446316800977118449614601531244025515945117440769674231201541266686634658801123778929895169892290144720639740169523907190242363684343087686093678858854360867279462931293530114989847722507427619022076049534252682626830015644866314671809132123472332973289772090461270935604984706390471055497180345779554121204719712319757903213888718270575215746305428805041059089733393716499965428468083924204593492598895759991952090810333105241768430818833581670306451703706157296340589611915662844321159609268623338386887168436372563056611572819600267107125943706547757164943210241002831582766444425438066359320933148171554468333009956446118901482608855637475837149183044823591402927581537023689387237361568667353992992191596991894768983845879559594011553313484060899980821753010209728503292128552615360288936278009389326100421524272829508313600008356112320053162496888593504965282124096636056500002223281610190614800275413635881936980799788987777745184047062497773728196154776905066209091045788643511806651976334393400374377489156862445759508801007347608149861555057281669801314961714244107712452714309800017592110580036590123854521310367902556075132568406292949101662862451931268637603910364310068423474296455258216474279244348502691501292337965683376793382361825882338491919282290118174579536065925099080349262028385632641098721681058278823686970188730857439555921711710311301902044843968139057353480619770509010659023227987843916990136570997779844298272962893671157424256323243067336435400257080068417894837181059350356097494165993206748060255374864443374604872176183224936969786930600120501937928864761385453582154369230517563834945728069133223605518749957516703514668108196510008138730023568321225800120090780144261394408498968639301992549196770698970654650106561016812381329791062358899321987272127725223310154950330860140310270093000942690986384185189614650628636801472141348633832674321650928602831328476339597973966681696270320689142558702931890653062435428349698143542437580089979676801015273999263337084525378394074202564636918248250086493687011336822093469479902310191737326658210503136906059225589557381499954116989181657373648268771890503187252417509475130670034620262326962013432240086781745793944868266628644566710572525901266958343407100677930056600726924951762142531023164898319181301075251069032181993750064096325535818770112937124378875785454680434801896464214828668467530469246679437773134820344962539489348096056002716154867700420041878420086777117949829322621627516746745983034018306938967140768595525872104949891591791724585679351815922750286258143495582557818140585659500249710362700991039644256190374672235434053213340309378757118322795459767504240622477205489116588649273054745927354818203106323302107036696963847130767338049116857422803629946030144321095519514167928511753114915623998567358034210926627890653005272966951432063460189183633940662739480735779939729218960306045813496557555797101688973035978300409083982206712285553354899545978601202144707183386727062453436927891420688668794940510057187362552947433919575217722241820112202811644691821016318078609909520187592636937739243506614521911287018583840808929894516796685225459963508088580933227487937405817380572249778889776852193955364584549599521610338654861813349161638598976578759726114320696079494960612723878635885646889257221726739090427853788070814277227271602010363006370078588698414185787495127825296640339377390559823966808255307265882393280213737057215009510869159181645435432027709179074133192368237430662796828317847947883419304229158552418252456926470358470957517436286580226570606895589093093697748807069067572829070658070405794330967629349810769559359210810270286390983187684775332261644286438456645935935277299357123389626553455080069615558293419090124712106486553821381478342417756818305054723532266437746557422196367996370409082140178915845258804588388801215284571402002090721461803764095928223834618687255992402076403972747839595912426039224254111551437542019055528610915996232063709610675393584127640457177340268318438928572587418669704149883726320470521559901114526380410906688881212198647921706511177662919735011296454122721573273901882591309583269671538251305757101742410089835915171845913163578436376970798962453318794166228091794095265158489795419033865341626955403575656731016164063571395720989508709143050909609029742846018681619014236547374431476308179743015451316381866892228449415768504081978413829289862465134088350893541478609661720917223460621076938281185568218793405855899566140697082738132664066206685375709374209863859338489244728640760232552017683011100337747898830089351141642760065161826000990106647035619126921738346950758033790581721425063639342226934911547520482226130316030682972404612337284244502396149602786403794039642196284703917048116445968928264210469920404252544433883554200009483050740653745780569423230405854054403887569840464937711366951955405835294753401990628399227256362218357203478850143341321773262670423072946092139437197093053636900693899018156858503914486500927570954651100546663220760814596940899246183289121985568611625691226942246611718980788164141203792096197990175492077253289662771408623984293556066977374379289645006823685362272101882796287777432946528481128981434497329859303928235864967756226825820422673023439916408813492999319588755315119931927328642956661785066146361562342843908793508232444833008239042041097675529134274760156137911029919685282847092941913209339257423828670939173573531291203201388959437910446953627762919998751437729110386541064812817921764960838277175974207510246332231705225930900795984255330282466604663524515291570676891219732217193240790943594764819243064998206475617989862202833334146262902809127822267332519217208130836199344923783616726497917013230947641990872515436630467434829431887091468850707859553637463692919800305484257766460053462068183826236957215368315527519662595959217998521266614998364754145811910905286966981108767886103743898023882206600633383798895975436836276491789666168781390051474343287573755682105650909464893455012117431012841689807806425658626953082994122134250933316985345952665117015283218083990133312330911191918357314873580506804416182079793567127253809792763047149443612953041799100132550092057087762419204728730549870055394636288207060786615251520084782000545548348247244622071703191678810077417246369233717683357551263038182581136961767235975108679764258170552468921386478803200579849883204287116201723944738110001957345730221193981387933208522339297174518039506413947373774452207107322662314216530595185786833388084441150912846410627425373177555332157696408866092064911089120451525135712366795521682088973641614286902087518725339320954040725775034969988030175335480966987072544074753701274710475965528033370063979935742652698327128265482994417957650038298621217648628194042052069102037853557266419708878841072953770784692792202200958816331354759948593356235582883832467101571489519666502545909771365303192296571037373264866058124713601272431880439175868714094044223531710156818069840330371181695708704566498401591926407790425554277810811807397267267031317495817452603202562389783230867899966669966454730891259725132224536644591439532552442731015694625650554062842365326026316981175507530323326992850170127747660235354397703331527007376909165797787255028738645599748345847158709709755377032389527574719868193122082637148545295811743703807232722126560062959741361976760191304919866903708748785709169736452653801278682627553138867248552352436998015761754102593130531928901469892457289253524001930692049877485958963417013490946553212757801492483825754963244037187126095810327110757433062423395178778387979616029196944067568615672281791173988565023465202273512758563534450698855176762395075859023415081613395299523459669166618571253108565003677303676509231883105212637096390441291201292733815551446901949938447906131578444789727306084281000452743003633242105009112341074380445326635762347229249421946373265734720690345891092423386411000178553050690444947559786151012738564100042298917448267649240326830473429760642004182193207281848561072726929326289403850128715613282861479287047214453875377332017567519583649107083807484732984715329334951526082159584289932974912173244536586009464145883575020443190996161741961522064625428186699661692516202218158897072345583935380198805242781030529691326700172043401246367800839117539353430806274526111219817125210396962374168135647682816646837520912095767506493786337720931902410557676873616313394371786713883584561509595355166937232639324126922990007014685578636108360900373265712751688816459205183730842626380996023538794570075546864985389569025053944118450702159838009839753380041599363024584612107981594980463796887363127636868977816632847386889012867349067349037539300675111760871817132130834142324111741500125972400402523404238215029627459431232326037210544555192303813180335790565910149153753827606192598736461515659812863906737704427744712072326283411915427154781854611359236517876615386328155819379319874144744569830361521877459042706069194249307900842729371364446739258255915551095884190420310145341820716124656185131096022240302236442605427740623151889281632374724445708570255489774966589351881635314929071735966917355303892812805839026164830144202113638891437486063763404003199723719127898402412047590197709582219295487409926294960316551696108688195913458316791174642144257077447907763295750903125000820874704143366880887872711071490032336743322825430083760699910548249850266115130322558224971730010801169863697471229241241778243955064329402021356883534587962750227831906786858704741021636152678032825910941633361424993160600283422511529740745103617421610510498244707193916546576835338840999311895655762113274447827484888398779702435014671980998072822379242112550012801685587447609486896970074859029743746146801527759529822865027003249064276254550285846728177790573645763977811679480939290102712574754684488640027701018680718766897326184060624064998199710303844883185138869054522771810647363183492166919282692795702247978771050950021685777010489250734716379229523175732236133450036188220230224759817688903767935789408530705301372932060677175572192012708202121250951799983566382163515975467389017125337164052050598845710073869291783728941183184877618380443934440842454858723374477811037167268330643600455668614837428995865322804836194520621178401493709940866862479014600699337236785725710450470848664492597571975847858013985228566458513349310955960800324198663982058785463086586244676179921632114355038354408932149598639026864769283459298881117497469293490607733900502387740566284055086722955124309255519380283776043011034558926003226966340651966599455326697834415417886314191343394574553185474935988392265621533451136927074988434824257142145662150304213358348992372600892418944386901035418557581237392497878507377947572337525727517312330276312998349865523005100174751830185647381140912601252050083477601235990609659016372636281104441988040911809198381140716869528478490596425517081178563621006792084505623286679817135821528541538826026885780705659062795337395887460913764346868918653775745989931085167867041938777953931820187876825723497092679012343897080125217652826703262936468230872782883389396514181982166516179424752859693962676128926368851498173123842388585153692750823603726390942267909961912155248109169630173632452933311671619076967395386850767490409469979415081750231367678631690595587843505122028481287976511766105995947352237178755293364287650473226757861167890255149689728270787689416904532779095946029825868135377278062740195937512421957872841229658346221212811419304077330576958437925325817116194135214306424810601747182071942583852520151536000851872292263187525916208123265525287896643448876636502665968140960779591562383135152938133481281897760127687428275455299989012577426367277352397851602697083825919988336532583484292490456710763204982652994714734003736967617115304229975536619353981321477805064881610017883309758329695305449262059747864339543168719988031411974809614786563445757203599768357758746175523591477954670899692938927227397707098882993836370287681850452698833483081963087612790085210944881793245466064955081265465569195706850872594697334321759553803583817590589608226842361312657659022881496410124273753229544874870038844152809436036859624430584867205624277764620355788056864235391466943051194462535814342257945417560148352961445140344754306622952433289330709425811114390666479268651180407381889744453805099561807286997560226832589800179319162156355212373769476379826292368933542975720523902673643156153581656072995482061083992502202851883202346439751581961440439971374411085505946404524688487583550936200606461196084482495516566571599310798808288790461851492815195222402264887657107042595403871299326147114957196335284228712402314913861000505079695993527725465888158153991689700202089699654747978382653495131375645444476440224821000198517369696051161771661692848946644204715057107323072508958495254913891726475025128924563328559297235154676711902412024002678556209342163645127609497346482759066430264127848487051674027916495715355290582889448003424737010484941195114130846597957188379193950642793455998215096736955121354570280623445949186842174963300460881606773340535314924105343930341347733082003801660243152176863968241262845858729725372143551787202517658332581714772386581347187338857349928478108669563328573940562602282751673138532418136375334466132603156591854220471235013219004291866176798929283315489119534983425132132437550144621692451684971195303299204161868878907559790033354984076653810987368388711948822140245426561193880922672481008400109726008864143205021404054606149301019221523816003494506575245047721297969670503464792184071318109847098189685431498368403907965019629209007635667227058656869428990875245732574935054657844241463703921546773361327206332143037123177392058046789831413660889592453229683149263595218507274851780941148386983330194757524827578911719946011133819569181667113037834422197344267095001363919616048926510256061487383506637929901174808270339015996842653498111766021190126186686024634323218670110773889587576981481338115539059727256447130758764739847572544953008420273766616411272262271432252959074593494134573856293155415887138370193574323348294954854172615846055546805621482856384518278212639987780258458929598761472764592070669705096116505273525639334743191974334201818823009137716345456488408873748650854557626849216401244541751185686268207565817921631899287274736477284733092310807664080911127832745571577380180584052865130143030885236939016291781669701404646813251327421763294290092998941636462052907154819536800972073641884499938537669905749508673192219332593548492786862830625641730078626302438411505420078534615107495434220054506403606869548448243493475174550439104403894953115577020746324695044383902031268335835062208276836348610881354633833131947427663163491178989600066236118205489007479979177625560498978597366750810581495605001266538267542577023868006808725658430321352559981214630458643315784236919381457563505856989729700873945592005360191744032502956740227531609683483857877224462668909685728390390214093515130299316489579821379056337776084690681351409320686851334448854116496044993501037257674398322985137255902978434492286315959867513806586822690443607101572384577788561676761429277968730878431295228719270595639733800343742863393512611097794050398016525025879364505040636177458823934841313810963647880785860068606965551500286531727946859846647008380643523257287207148049705910200209491401176535227135299013908818651162125499862402392005143666675244561562352247873862489318967211944866887642316977923728640064526260763900681822283810867389403977801576012168169104792995990283796040865674849116069351027273804140312956826123474891189301459169952121644868903874209743344956161421895204152339434174713527264342973368754996768613203830795374293272334609855479847889803123192142156353349793774181598585165922291292943276801045977037133194776063848795111102157748137583935890338972724173911017964072964862764163967993390163644957602568876814618475933607027761065710452263461788049252660447223290704066151380993464811211270254798145959152942473686230900832213128373004027545610432173928390024151022028813267170204663298502752328359585602758955947686338001852699450434590746123049155647857510429565092221776400232797917887202343799975560562429471582371094114167343900552723209761981889844011668756298082424624630380692115030373972910521172879568880712358737112432117033368542151418538053073300181472048365039128782796759045080042899574846697998136445694099737539607968668803476306223830278995758819737023973333591435260821570223253345097335847169930845522944477954883957246331594953367460514317038754166587221586323554585783306338298825083508952671418087354869406777266062494331563999790853059232452472102088437689785101230292629854042818401356886420269469919147466788277569459324733949001007570988788163305811167783726055804460797991709421575460921134329102583489812807766082342384819664257205163489582055046041843627972960049836859511116238156164139763414179921547997398786869413683336963314877699073474818640841087349316325294586493661017950780810999763893159817729694937358064175918103514575695635335291186701732153456256449148517339134826751710442567207096060751322113410486915408225970520400006387081777291438383615994322523173142926636284443987978018488963794155608953512892791121989326557334540221510280787200686197094540854192609048956311263816592525345611933492043783055895802931761571700225737233560120335809108497825763092921477116554498242728741795065315384076498970129520775517750705647581675574163040651142673406315406681791090864004504393827873383672480320842183934333097038520852972496174907593222885882865823170651503982945606298534872719823134406560128085799941954920391901761197205716351682964870395453903666335814177754589250159319169131328079194183280118072605157214124370688956337631064071433488760509191609027106932562568355305171923487013072694259487360996966182553680659661987014158476337473361536158386457244294632520756078852914641927390065597396497340573312465413380278296266067140859215555102338190807335918833474739883808991864329124401266026875612311938068022807202115504398719400396463132026380963302041511692004664876384273642297828210234882590519275151954690572770573141280420952449168556998538396738584735213792986811139736580504187896734726177191456299513964325109049677727218487185210801825593365165059648749708847994598803701252183812612521731052499878269706959547494860619338372928506973617068611611024065583041168033416140095737700607635570541026040765685445940705510834102680046573411973258357701138263619927269643217187369106779551901210617947071886072179359745409941147533496773500959865127472285681681632042430896886656412362758865228345773609896015375854478745815842865338947148317351727168494953833131308295998503409585365377635216418759806264088997217056882688738020168740253785948429109754971244977436789791322932749700479075554720133578897066861501068861658956414284057829197085596199432769855230914366714590230251246964532051143949781236378477009998628788406773522762089035100416804168658594084159325537157678598269535961926049205580442202709971940630635699040721134002003600754493926098178752568011889674409386458462509005290924184719540995045982464665652995183682177105045563824781751792508910087131748342580681197213027754170820264758585646425830535612391865974729190231229627828708373336741210515554709007948830216478148060423662743451349643362028547552070403642475256034982824567572115800267404263724193865355698301688573091889593232344172979673493030436672801277048221576427107525742101011806658154005149989140779900328354319425587877172324828382573868236591965874299453982117299491797963589154711088300931174596081068783238520263672068630805651283908737707128396813619163712582419318927798695113722451324925187542590368837328972486556099111915494475486823046278019670432864788179032204149841149721340260865120301505726188699085076884861991834620873151781756646400119996613234409237824331440395418223259919729511668068553750156348861546329205418501962924252493361044656285037785435354173670526129315059549487650298197805505070014884767250648750544021375202662398850166167302401564251768276316735351766847367603788609599367108989161066646759189936324127409350014060821866122911995726161333882599407548948306591088657588101835720092746430280554233149082557921916718727590078445164540837172825936902300311708900641291738384860785415399075017274437644175536312152210486501478545577477954738665492598817670216953276177066978698631372309651340459532767032874504431447064932678145165686539699131484066650972326693268884363738292627288162779782164555012690179766434645380866885017244771602432205325996577095032221541536322995799647809705332702878728840492921380100777032344884898896029940783306667326537632290012937775609821727048279183555288776276512792898215913293711449721866915412084256459873371409301152691903074655650025297358421528662186569599362308330271267113596920031468659730723210803460914219471913074056545298512488414174367825540231727994061682634837987320428997619080987148854757104324961207512412070125878098944970530127756075292618674316392232133086096685116645628910643918336922794868490035806323855555064680569437201098458559270439392710933248292887952158432667714580337395972166051370603822963654417274218106629596506917842550221522064544630115752038730215931392097887695771799584623759085871349236100508595231806256373682632467001703988215268591243357758211256799340933714840552173315608528736894285506792698234248672211386176332160442824396064076986122672638010955114644935911885686835846715363917376199060062371589935807318794398320860760889955876035678724378752969095139039726199978158566871461640478312232813503617336633305565507584345963965809519346134893141427884089654464973813505567782627815374123299424897431612311510284947944349860220958051794387643582487319751527955586206589589155916461757630838389569247888107111657791064500202483391400791780746839033480635727094515873880659512342047013236222940945500535457961082226038946826638686894124650025681343927191195227755348014681419327779659875339098337722903837637419281440172868758524593587841462528072445359204067746426555049477305316095843337310633232628603761025013631140268140045850703119368961280132629740210079442021021296030259518881825008703273613759929492800768578759761282876832236561880782421610767742360747732679864583930292514500631432794635540415395250794110714144418576214760109063551014537954624694487618247130727397524882591281911612158174213848340186743777650128747592262534653154820231318987916073987356701886948459824818553867712528648540313047914499605155084379300718482442345409159483692777067297783154923061189032874027624280647584975243584257896148547087813824335571292003736577809057817260682579116353301282909091596221102859207638351220765075432018041464890625463681362093864798359392931494202385580451436181966527670280811378294798860916861278126201777473879911645159833567647604549841518051689974285050128555680929854104381809267526869257754482551708030821653712909557691276251512953459626303087119620265017729748598610466552345067977491920028018424154714759427075302710006716366810964757721056476262762812165375972088877066234476578376784495839029136411695858615695511529471173960824844803520522720677733106968873456798215223270889426451038667223274901683346161626634838196813785373303200854166139539689110624453717993735292397337423957066598833293603889415487549176373223711073857073442012239629503935539702947666753540002193970806962607533416165957864385706468239699868684440616466249838318436499579454318166347368977547125765122797315524705220121754404242379886072243061882138758930454386945647127637124827595088114594816623335051713641623391611465211174790770743743555111326819959668243057088630071821170153607110913884193503108768181144949285130905934560262882485819506485245894976965874279188810259392012763744840880580519671644342687767593129912647193115758342015479801780463524423053648953341413052294534426481456429377315344353953215335446466184949178412041070048106928922013703649265831637942862598812530969271476712872585971094823849075000050582661277990808534088525377161182864669292016292201577429568152705956082638780015058537488707239907094609609399272175074848650146324799684745649068027183814500425845190294915681306743335601388282530915575815120689595587112306601973147747051497388974962929260428743984363179933563955278719703820840825325995696938322942400783120540847547052679413272088408594283769056689516694287813737791150047465044752657098970924414802525973015305887264923528448986491091942259141006810977293813307752279861343438306702285414604835822775354859906032730388707608930356151731476594213978472264598478448643215729627256760861144605948978312089671778471566647823139789982982389254163986082940067740701540348055703734539723557940934067340523118224807061876306044192382724513074851521697143543176093862642706459652952343955516504367386604724448515387505873149465068307408143878093268795530990330015462936132043081271426382716728800061253393878611272023760322434215824771912917789335894789529234848407479813211934016298407726944259313157125278647155437420648057419659644711840988214640410060745482925646317692638290630978499899843369539179642803411543931211469148434682529928090874004060071120762767583735278451346034237467672417971798211924523599978917358011524132277859866416269231693380698244823903387183554081299799514793768688085339037973187639762800965082072522213934636660704953198082892528625339485658211677864782311692322693126689218477553981906158756978512302763919931177653557184071131746241878077544292555515428705738663607990414543957860246653344796339201063637569452316615404393810721777447538983398035663097352446578989163397790240919151593443947318601109273894956908840743117027968369033993830069415333526793873579342815589817567260370011037400354344167274967060826463092227973350059494065127511639249250845304228147891236095818286031687609505880901811511104046556386234755560398348167490993338000873776876266028484729065359609506055799653744774290132060349270729837617505648854492109159502218825564075395701877229958345938499642462872349428197887862023348616461562228308670117511232457511080907381124462313341401946218448885175861553755496783630952550362048886417992287437608033107772519501581638761032095973824227439469222194678681018907633775240312292167507948202629536381536412016622088929838448267052762863802177147257024324594482632724534436810644831150355289933476387648470618243540161018384914598128295238711019454182835364504421808646720675906854887423767648964553359578080686282588150783703550010829006070704517607061939628794588575708117946414382993625532888167063822733174859343356390589874106711430435032262611915381443268694576518325225602381958785317677581141535331952352185207340902834716599740949460140537814108058354451444041277772946484557267281422463424950312506176349786575260274881498283081034245139921481079005832461441025071608639362026781958285088978910430396262528922230129563404634316963773539719842145926652736473741758372847488257581701035718238051095310627860281506607773647714626432020722369005440980561434198131460530824435423532980058732268850936260973026185523091944905527559245227729484311225755304999135423604607808100850497248219712801269674989606431757439669032049953720830630324681620107880120513105096240444869290940210355768864553457398626057616240868998613231988947202402733534377560909007156041628684973078604228121560825510260269005030800212042640523441188807011538773398739855388798245754016592200267137401359725781758176473807409896998116836568443100748164323964018670029831376881422695600736768536779940812393225023634165277888887935702539571583425739443586507529117086714267761569077432802588600763705979172200414257699468549508463472465493619005535738145268872746283770713127418592389165071165471370144644880659124505421823556256390564215930944763722735852469642993736604051929079065284209190281661770489308722811294261013128393067093384509652991432021600166072967870167973736618202754228800141833373374459509307088287812174162307671187431871250153263098279032374356828583726775522444010567482940265255714959446575561002061466841554794513266671158305516050644601890257999803066661844065890563730232556987662174509948507985003348522069799762157167715857917251822134027220134652844919076886121685321573234211589821959069659899033112917058070689712716031145016671635878545299288467919230252450363924583419156651964681822400279957458837156315636945213704756097716210645707692729829092685105190858004039635387080740529382274512764377514792098670891102048364463406433176952586575700846639111828930389559474449657436183858143899964125720336803104021185029123609728516664483232486960988174792073301153418650775684528973573975303479161764792669507816422694097278813656257410128188923145833383651934095703073308447436756791635900018442341256360555288006770944983860930354972962294508393840183441539968934343739452304492874261071659338860020978384122350527144807446480201138828684194625380070883327385667847043635528305820477198122664234970017250226638184534618006642484214280632071809886939145573117904694633989079724926918087279482855853577672409620782817711235866806579825484816005207412496384810967107551721356753066268035538417228046460165143647397964398749207711529810560840275175069239356680003963423792519934366738676877809397310609475143771313672189870884291962255761132151970901473325329480452840919399149389803100365269018924139786477982415240037823168767808505303634900825020261768346137190177518634825327619824155519068811173482277811866625303104732360220233866609229690201357278226630223696611084649983808932722452419624471142691560522693341391241214948204432835050650216933135699829516682820089140651917340708849194170624363887944062535892421425359928973098105184420834493730519027238419980768344932026228280754767250052020146273360027555447533206765170719914477882066474891206281620440457463858385672262204399598367128186918210303481811809564882630480788748785177555633895958228794526014504488201727787408457590375059317051107804000304267413846152494435875004399476343243389561678958403444432749816336053709141737550627430713935382594595418353976493604426871568686901956700700177105384424789609819574497273398426405108115268510530212850085471455139013044623093043432133435168110310571564936930920983020177623779202602268379311649256275722491037146403116833943657881440579884545752787592335446452173655127135167532161974831894053051367793126397580697626441524398271819709720847770037962272461487322345846689144949320410315548854727426371951775901858093492081608962537135979498501676075280162368109240631539103210890932281864611325902260819743635137944007154602166183205906846965827603083501172607376108629219555718435108579467681271191203549674057552398651500514775394460349654567054134912696524863356731149208604887645731849482587704824119235328799974987165678030025215507224664645332652556696299119876696234420183456150420062459951687901323053566161582260957070052808772568920560796476218162619625454016680968816280851594392843742390166841970171522906049785937380179570776970530739281022812914804689975164638800444236344947653839559841454019866132054462887179676923661596986401711695670900198886706227607131752086214059279195697777142888892501237687466075270127544459517234253492324214149604728918789776525480975990208956686703001455332052899370829799587977108596804784711287792000514759564452774423146366771143376234607465639553494937775132945067144021758481080177469216530718330452002927829033182244314883073105196503594611832821944291415497291188628583948406790388341677824516910282071384482897063110063234640710868417904354789593835147346567885031965349419936306869168220513034688655939495959043077593428782295041745394291490605373735770532090414079788340700795193110305688281385005040901993100845592559762362243974292232455426280855614545771920979073494405402353924673833980298808742051545009687090079189769901409229134292863259732630908374727280157365117461425985512318790844138119975472971485584031555201704749593981016060125013802397474407041421134170275143930839744196192406342109065898411781691754023752808136100003707874841899551551400292436874603104447898545486358411801954226069763252974953548879855852340366081190948783064347259063290634699516200644266527486110693225200165933692745975779561610969054632518364240649272871063157792803139198088328553037301293211727566319766772088276373710220686884245816867293733499177786197414302838050494664447942577177059803761091406608310516111070399860883889743471579102164475529578781258348709598785973452894469788930812554730733909248402155293057403355635466803897554686308162824563422150717775952386733018418849123166818453027150895179104147220033100466678920048247179821643400842028230026885416757499986466989596108811059173543508029741292606483967321684115821664175340655412744660281846758804886363460882759781057085025416751362061517467332432346701272412497529703720890577906964769397378923413226955929455145456715091435924927870305653631294949051992151906731121824495924405055914357527836167368381282961718182749819417419762768458634515595019264403606601094072954279000034505056841493949913851624714034478747665923915454064691324192233386084006360561690341365200805544926260057179460909744080441369959960538213987803885459090268713792929502480704889001448878487126170377754637723629751305328252994867667312683155589252077016444550987453318988072758602368666386660771932704499168203081334182923144707783736051272887833066232009764153621338196219149135910276740431934911287049033076086797656192589999102047812331697804245848448707788966788410071522495084412574609859479950258691706742115176621951669083295044857549380577227816670142369463744688003114711746838125492466727283568857758067548819815211039602822485261900002950969347173846405190332149073227512722671681694668552346597629150236010595583036251749934709458494328431859004021434816927857679151646727906979200826882714076803366501269204531053004775928121386578110411214898901720510921715717103872382204331387959089211644790735348678342541355517863548351879463499493553362151859835084231884716333514769517015925943573622926285095517472763969622712235975330938021088793215453376450735598486897398998885237438984107007673575563392588158651228816042196125742876751780931691930443585914034912649703615472186758855041569175026601193749067415343246350030597294760912535121706455062203105393300686570393329861250731954084200896291789426126877432377154225009765547216758926495795286622209217813764483694987455980161064388201914096070348543161135340122509843469632724306766073007922392921659732855317932311311065110812953558070933394176625013564937852977960150945024615403898742377148148828780443772169830665884422095534387777031580067941254851030118462010507355642328741863420342975751867691484845299852298369754286973082394439250805198171739381972046473894927705866648201447101318705430814796779163988277455919382277300270722889973649784242565683266591749186786373728939603215026064824797905877593208912821991889344720863529005097616280629391827732922168928955409709311169905956044813034385792291446578902306793834609699455560340500522475177489033594711830372756833266837561996556706906366461394567839608511491060806566467496917811013213978292705794124542402676715000752991072417397967421697196827609679471571209304851421220526618532542619396811785070597862645230196460435445749581465271782924007761788075735804723245996366394767800433282962007944190883500473042450785089855547452800859408938126077075149713763045105591242520507632624448443080562299255736971686849340315264668451184614895363582542500831347197667967872274532146026366907422063850023160754184333216850610856663643325942665936009386994686234712891026747510379283681086053486854496700153222818491887213638058408584351156782168406490064879649766894838839093829491376199661007346075683669617698143472690803159206483582865257606211410645042271836488042554016829672809868826037658199431431445457911903974139172848686414859985228631400289849480833266747326013162017701910369410054085528652554185933429448270739251878401448072667690375090724720564526403261970100732433394901585625181366023496296973584433505834402180648726925978037295125700064242993639767811711795749559830176325856968482711961636876541331313493160924275903867099436454813918382266743151990746202645004131611303692545890559155788199711051031656211021917726831069426737415173068954360700071354911670369378290887750617422579764398871394665955301937055805754749397490376450183395022215936282653619893218224094454383241988798953812751663073290012867380791517256318301234013861618177542317968297413500575839789163104482235102456625503009653842907777480923898320862582642219844006011214929661897077461486351484616698327052968212982775911443961645918253322231869085163762879890464006027186696564449128175906561751341966591143132311175931211562549291595630619676526858757997868883202814126841564032830320123078433295104539727175228794075667618907492091513064464510599018483403447082962215806383846011644108524489817215109611569357413375605148074654927046242072245032659726656716201775696013891273978148632356979487237477927930273408978538271851629169977799056351068296221792269684881022886601381481328517463920150386018438303385220081188432970550594310270004611398234579314266139889076063185759585105463292916916565124888643018222101695488047222531925936805080865681241232967828089069408942040551796033978211525399772824682592939613180901963852626862438374150827168516577041460831042809922988133916814467003385498497265295655032433481879860115586248760199272218348676741416276691258475331755568604485186204373806697573427408767536945199873964019796081814173028422274923170985353413206536522074263930655511869911587646939758930847020308161091536193270648754150652774273000909129602937317637902006474928095854789792199000554906910150732885536017709837451915202879798734767809594617428114208172339469335027336475595398660516652013731690621134514856123410989303906395155476328439808349099337906092551705080558761545138726680605848607500841315993832626066562053950218007474500490656013830251634097517210867109938761097912109672072786215381820957485973701231146362450445377558341649563897753311197805951105511484606916320012621090831871510729277803360370018125304939077750078895621198467736420600720829054042644159590475904694704802005774263769678757066936584110945290254885957403301991519493073563852670545183418723190881171197807968072569872626505350694721699933584765863847289068611875015127300792410620027183081371369604231323540521541950073312496142900045025310047880244586597130491131910255959311101498483386725937568705048231099624192387793590020485587542447261770774417969214556810992488982842572808694832135218640933844924777917623395344334130926964116249593179677697215717463200864911970667423408867943817934887408063869811027082322796505698739836880227603911489797073499377758991679437279375519251491778271733504050917343135424987239283263924330599108032378038912971792498494994884634512573255112995795570310327684721659913230714371900831081223990355847972108830600877420169936893844409585250075138342191694680334192298403980503235251422500132599946849650450680184371097957140181826255155500916324422102408665636218742369861776894209176334301340149863703824388891842070237576979633912391937971621538505404178166141628646586837712328598421345191224970122368788801720194548026694882979467946585375053703806875372593080962761112758912330412196436641241538446964460964741983250584955135352561236991586135454542463960771619885424715738029874937998261001722386148907795679435986891169214479017360449823487718980882899121873978456030726987818847177633962374166522844700867040673633699501586320480827058116349200413002948377976144769802030161767477610436624416961583390520574047069277909495911556019169087394728053235522686948053201624249570103816360758854955886563546461570434841220711450799155138560522319672698737244995544776424301643952947859033280089164595216824333951304779585359432760495911992448268779127685049539326175495379702274812047383973102233084088790461487125057499997789017544684577124700024976156960850430547589288198125339991385092922876550246120447170406555922583488654456998416739216918501135649891575533690182449896247178349037371138322847987037128073206452876137821655152153428503659817042390666553161783725774364959307391155794605971858980403521119390772451243282701726258318199595683578173244252783610907496834280424742956310794769230838314527024671126343381703200833192971468235073546219563292871962647134295526721653860462805258489542950431348373715436373717030870844327096447431315036512627775900429772593506844600481316618385558771037763493028986102925498107725851912048367420214168597794601049983802496553632390443953834134839658516535050689177990005676645435349810676180170720407703813008763246393079115702413757443743366872375249716159977895712554299393481382703877808089345260254479408661801073824545144997000060841250479547454248308286551257860670243449628967916174647328222280858438844764004800603412877027465541334809292731880961480799284104081781621136454465635339080719500041324591176926209032393467112889914223614484220902789276488383274968914665999281347309190591771989244391837734969195229727123770240819631180026094708520514194822715847516154393801624198822233381817999312654195743947722994342553208466848434517506925005251603478203114320554753079302217115901399325429699041817293654538687890785401230482484744179881046962476424596314676752633812396570317444888209174663141112010560035502056328300051850384127810473341058705654418310295358675578784016128551171564167809594988925956365621019724038454580948841147419482254631693731926344464949211718120217161474117015217951219744610605399735478190076333141538344666312372363373624257018155115802033990734591005068509521764612068217788158898741163926559839246672601075260683706554091444215583710666313597125104183359425941595959140910292310352398816715424731971954769373119640475156026764768365714312305040769645916184112656686400652549190968527213442185657290553794035559469745764882370967763102944321385388444573334333734840262071641408893238339709959486960760225084629588387623463168905857720054128666320255886594913703921775390358373571012468377451009966786999571026134712225422404243835053593123699540087409966385431829388006086235830322551516946446948338141769024176173820954659921142189787827603234310219472178864002491080411520651173646631388083284606698171413983641824553995752079604384083020048151245067805148826458256154857429941417790617723591248593713888643738310717334440136592776641194447559433204942467850820368932329553811758202974525132683609248360780740480725355226919795342864519596530593552515819784169232579628692922250994593070022694055654153253596669700414502623247579735422173758089624056863209404623743122423122180141321743511162268795099426109415908528341089938751672814503763488183819249814591723144014242781101491075346806271879306860030364984035286525238916965468531176793393379090801991650544592650598450776087617648294758598868736836301156776746721090380716239075613551028222841237325302459925166801627002671653887212654182427390540011864207342251708554630360905836999944191418224201343955178274047567173151561770417941699107131057845727304575389641013902172622807706945638765500880746947513564909239774376818508186620412305832936453163565068388206740921114719684404481614370747328586691608133702317732867871771584323760840471067323628422223891962605405098402323474578060712781223287035839541419182389691278265371643490856341204268675984185396790649481047046992477292855480377302961245826744286735840458598558367083723535854649714976609132071275808727958348883954666547074103495925105502417925976013054892325379469600614721900579916994209051556664255836602318746238556783033166379139489020734833694711562550025304765958487544060544095610587273276182748068281249123834896189572036396107407739778725894750061895852623695369895049082033615422418690796720708514340093628349947781356621631890437310135229539161359394190483843349596615999444540407412593290599442939543084990696874603615344152691931765802721047187101315365303837181079078935968566162767193313066036163152839935505928695488511647521862828250091112700812450049185662555342193162756627165491248165727313282417375428463806915390922260554157405314276443719933616724134600649828366044048925260466440743273389539535549269304254066209882571218916921891741470788780177622748109051222452737653983304048372205200434104477489550352156064645522953321462565678298522126500919260803915581160218116548561343163802842295185026410089019224332710823675602552431505859160297221728987772101859328914008574887915952914202619898081561801656175667639033120201961718757606599347692411605872945691245473066311840204557216912860207153229711780839024124533712310444077375833735362953653787374074957579820518122742916495182486387910724635730716944764140857940583185170015341858891278326305257677305436934358231515139605816748698798202618674815904920275491312070513553404983777757112055040476824700571513599214260392278194674560538170654359463344456023037874373849851628716819985461902601259877601232349861677933117453969920582904220918958280564197453867656778540416932930199416889124339438668437161660324782804639090018338484065466319962160766775698384040298943854742573107060607610292924136924936250848222580920310546073853500560165952695106313837765996241207674971759377669765319327404491967492558209282583480784175607488857319214774706960623413435394019064882315807306930043661801125007866771946757236562438665060744963096324105090003549793412739711453124184535818227273491474602467401527431655139763869307554222994159415761136860901409784470276316825803721046850672223696205332429271264024940405840191038050954631191091470719413147458372635333011897801929516631740048359658276902106143826319666725841668443966568406127907964331523103022509915646341524893088300998582717598471691349591149620464009646492713309855514665640980954676709116165589071115297626865522140889489768556616688513339245543336274529465924368473591770939146669530480219082712629697521579269526067627187523731961811213062900332910665254463172444579223442639712144473702968250210179632625506631421166468797459124534532688729895268759246313006320563305997620059122804873176035139837781295978484617942353007585082428498496532552229795028157959342101019399983695247257058395913535864104783161790537366579110176503072132883047994074413583412498517523223426394309696126166810361199055821804100661708111191807648223219944104041912200859742920802474012690452481146961364652324415267059146926088054955612551125666925262336852093416162213108932274975250307004965295282159593812156702096430971364284460063420868311970704003871796650458399745213937156922573829547683561803088634119838162323191743874266268844606480855850078793510708681160138099651833621250257743380863609137799905989138126254855027180683103622338559999026325645938533833249401743988589991015505102451254556127513294147130923881596287094350440457435581791237325131884658240242930673889472270379563121175929173773494062565900318795485029175590665599080325264624842191784735922601865404628006089976678771304101449146011115305414399905794638227691620751289160787614372472573978533354769817665591666115298917015213276830371754400143119776598637358026281910826849219404366842414508154559499161640250979301567323555559863945444770297388009765151917234381549845488512559405179535043828221904895602419624644634847270680650664933343675507390276335375054459256041129755430813116691670392058591577012953081950953040158791894621678217086748357160298193910541248925698130847382959940910130886030408239832386553449439238967090201139571134079080183001859551192106900024618083035684474101196417053062690608808612325296857344552697839692225134469990098903061037974781062877248080550123255257926239010229053233475444853576570196883473090440723814046806779012122412475554972679816817369063373971555564905457339535804871155902051819388249082175482457719009089732961073980656285826022105068067362273654326717190947755204451088332873761284151518695827135050437972653964962141258782502460257934990702804549161813247553302573302872688302761769048643947835592001196483940673332423187562164513298548317960572569682465045222300487182577282423953012309971760515574972606945954732387477486748891547347768571595003700321090188595844092592599642959346695064670134192042952727202442260121530786595025583980175402148220479776381596917461385866769163432881029468032913987946413948286829660231090938548849837174280451207771987257891588452954374808896284505049313658552348984458036747438179273260420995074521335436157094330324292027977300535184141815817977283079914820576404383044066547719625109849725405093337110591415991207769123284449529131624230028619671053559211949707892196493851704182082275935381455178171451898584076058910162637109144725024961815033021696554252654745628790263973107668360434633876255793841453132030429519615975926839799688299842911151687651394674005816752724534827891801668928671862652601392806079878890989902173979504162844579114371941981522286954821542322697348458162234488840562305686643954979546615874738160703108050006209598464035870087484370649601000593380835281576107343703194323224710745267903417106921796129319376382403191909249968696819941948178229571329101463623956367435421893286602531737408659358520171650895175245697574312815806882219539746852554763906786572193413453360892484403360780417721396511410930461618336287772138602546369660683706824953306529147387359484263032217052929717971271844990343489619517131889713968663298237156498673941534686159414417851602371987551985876506868663819552895755696221532293211298951762415928358338908365822788107355169513136859338837960646809997051672689569900759258322402083806513301887253225090845251028611111604158471942746071045385679461190837580115626338252088728050536517948017860610908836741762169539766457435119018161774837458126583550483241404224876416334705679056508218996924728253692536148854917028798266295531390443022804719787007343206437335908074617337592542033599643179179887277483339717733493241421014568260807373518703197018644596840287046443096087181089145912041873769660603401293261122855010081700834816809616267364674137114827143069971648194425957284255509267414251435905197146197686670457760452723398980465475830616983929696080092835706220073565094802443351038237464769035289905326418016653229616597242673087713553474720928926540575623776311203803582527679043902097295976738618535069235348110079897308705127510476481805653104349887064695661187462742076080346075083428297436275913113976209018589190333662311502470813795817277112973429452385012605869003175044609503199434433912892612612197205895035025211807416194315987825640597431082561044484325569358995720381990815036155122649530762203312146170931701422081262938968970427619865822597813696519005739761791002745235315408454410673090822304600987921917776850332536608913702923368187056198844176415388771177822285257055449917401188630301370364729369714309600403836276757542780757511992672633616076418419427071482697888668089760789306429290850495436913092409762989453834038980135914811225709162277194493611178653264150249866009515579935221969688310204366355961100229249854056260363511469333914326301595630581522763439023256538041814020891430433771116056095810598355324737975478459619095036959223734657434449414308325374459496697873149044511299625862946360114806956972340113553026073881866520749001807975419730460165927159092305404511964060564827774275091129212741351732727701729560183868080326572128300308248067900951725548111910250576796821068843592768848446889722281429329206517779074295830127779952221295924930479981986245840158693843582612473707114757717998223367335046105702005659503006747181739346802525754690505685096002448429352024564475326195383282149901339174113461811970049851800671516767909309822306384303061914602152998210223881914412800307915168171662930178816918563245863246272492637946002823188802589047710160788928167930010694377678110323846775836378907103189685835908844279173016166806333290018916404874984468857411178072462364340074207588197143033891461147977258432980734471568039000357538144656695277124493224093278672483414764601819471625545085994753755612222828007214956128277910352511210838245828929450547813978954344556444818422544002472486118525010668365217361359396904906049555565895555461467598061745725593702182455451805835715338432989893900608363184162556076522443577814337035570453898141769023710098598062535172033334924897023529470788556112183799941148116609163974081950064676639167282260946078995053750607705894404276882232025012129218841164924865675399433525216804883847169983335988436463354066752446313605354471822629827476822168503596572710855102728443189734664987043765114552450631807329952960393824699420646506959883258348454077944979275931446255801118411311025101054826973081626108684490966828339140504114554237205733239362534027364640776911793642292253073858141451537857201183487338583907655550175317686880368180248705752889258337885102030297667980032233864205103763403751369626604443914271187286928802295665048863497155311365115859637451686343771800378905312321657858216099508498051660515823932327532742656921597573344864610141146837409530338374874035865863636769355297242527636232298685827579187103523846296679757403216488695853868964167625883863998896019845637361705467713393320589069713610119356448329710602480794213481827522707833036689001143253344707537760924452342470865521599463066912204678926906935053191823230390797217423107672907917467261108887609609309588150064470581585058489894190976027605949985149766700769673919728254031748041371033535187081458977584724751285659062652898315579230711877607144568158845972284608228702767932845481413797559885591788002744018031514165764259966277219863550721474446428434646382636738090585205832664862747832388966339689513111448318190158886766540535845269883943899194671993235524890948995226405564904120797449419242448269920949429204637764652334639198522999469429414406230030218490048387678087686581704044531375021157466603088694440977522386488576433000314592808698792537052178396630537624185651990528943043447417198979332411960072172213790011548411907312417011937509344337779022124643729926949641630737242534678174261485343135927530583584164720796932422458438207767624132078976550737408155081068989693657234724770154649464328488519261740424361824097676522618137185218556818043057797000482556160711143057679401476474723111481996484592308245827926971122666191700848385155574811636230477113201142786729965058215507146908610743047454322472822845000706444935234147257365989405048709339692476129368672482488552513645038537326813074072743519885266885209645145957202059102196435630864970153942083717292023016984547371805734408261759534750491412163123794147253492025942512092112228940726296879971913617843126233855441952611818189308919280714656573649587890851649232476477546557098760066415944965661024406591035793086311648773176225453414812407220289739528111964575571937648417591057207180209511789019492838569193744217128443332325367231314306843345733692942613509444492594842128451211189017846270509039652626811555682807858779131539019259099672387845686690749244123559651527451926545546430307197941606768261450550951156898705507310040254821053591677918588968539310820835229851210852135735902353722571290267692365233522157560873753011945620692625907333954151435808566488521194431549344522802103553967635123556117428043416922373975919494200772849564442796389857721983590547238922561402257818937918915159280507530445446064584493519008053483270512806023389878682978307902397881906559008299993599180612470459933569734558660413207080844556891319981793662338568705773065768487066958860102146894996846749456584246757451799900214776029018033872044885193851072403133030222283344585837354303845042622398634208737535456391310147974725539549115458688606498816443919631526088684704941733555079226489735356246363650066476708270247768700542100692645676315734486685847802200864741170344097114795565434107537584065942840476003882038789894002922330602222479532428631070815508725388964069736560316270333468601761072264807597900957890708233979295728839529011498442888866990298477956784679124860700382507430181814647647910767991136162375421257895667702679829640387549675410724459657250554020925068164916862548708416330115956080806317571799340432637075746370619864161835123033233627448395891263020656143248058415026993746600973175730143541162588639455486338649828048087016861270907236595325853594560745419629982187942398143440937927647114065767171954708157682139210670875306939308085332251989250557006985221931119955460860628311823775498844504955942793060162487348175409330848535803546482143256395938053903336436466659312057175577826100940986478204827223754527424545753307138565099711635429868750810325262368230039362674313832225597843983688255437523016045381381490324075382748401261417925039930995650793023401397932956446908103060961941963195547529931952506162591061171640659587381150091212789150950049536376594195487382551509213700851222814170984968474047830980660780625168586073886567578363558616446769981382801883204394794683450719053151591745845559398736028061526523559612752440249173251896007898653838957635063195520513841104348249707953562677500789252098728275861682307967948696951853523167380734435263974977870562151635650173852418232193582324187106129416009365897857940828883642001729599762603097991765337693472692404988427913353963933344484269064575161596734311403605673806783535102154873642777028016410381405239266318831287894177156441588663907541739319074026922710895519234524065650418384692636632480328694084666373353937665253600279516152570873789570396154379197452989396792825417551371025050563495668565764680837116248663299397566769764433753884259362077331058093003497908967372267999797917617546586897921800824100474961341232739915042829508262545832244620131303318921468991322256776319913788000637658963672110054351761703186119932222193893450246669311603467644663833034246984163637143683798834952395725277632260132822141227235212200025173014195476260293707771672631175928877429899959514781702801144554002383595381842926371894089040818801855445917680551564990406536453894654524580710852999877660276693903451921947015557082217629865443779917028760242533450368888445578461896885316183203223147077984146091357838990671878012906171911630609185565113189885993373321675261250391857761691958072490668997892553214416356055205410151281574361994596423902516461506850030787613691806516880878946881680153834974379904313892777901507309948787875234522983836469322571336915176322700371047387529298317418474633854317120617755101004216810842233354254139497780658300420166107531850259485250542525106862862688908618475086233601655202559519405560519037250825217556826188195160195681153063073689905613188988742500835975446113925883329939827709329997864939200592071587601322456177382988755964253897372203053738795811823932947931766597976990871040219889010563246928204990530533341875824851086496989549737036441903965034773293774638808573166219929061612321480072364287944164690413984633278643033153479637267637519070400646274075266122004571701204922742126334436610371883515059258476001974372914394662897042808858727191848977121245265742963735365037028844810167929551785698294664666734189518784544137400203764412136153423985620113929018505389459543093921952016105434861672020379354093971646991322927247595280702167863735152863286995164691819215423726336656686253970890053358854624841522001479692946103116259197954629102021421793597497723296535410760428887993254640085115798700042572334664099462169551767150276039027269512366145637339106586408130982123318976769263190276173383364175331606085154226606626163323576567996837979705856479592383587741455389105356219339483789725835360838886321022892865397266933162663355747436927702915099829819031145283522362232569847087712129060609263957054975511139809669241138762007932556059680692757448340327204053528276445222587471418188304706051577856454513973229001820745257382960067303013525546133979427285359901362381694727286797854481067974155588388834735251816982269028119735153697341081966163326794614820330060325265490665946611228904088282160799799449053925865240534598809395930714628576000257428062640763176411351102219582083255756683396938205045215249393863243368219187428336325913599270007430218225649423435788110877081598181890238285664878875548906639764096420665241488449954653958882129716027425270426595437822152100490588819841577210821319530674397941888261225973769159787937885304777848972800467058093735241116056352087063710905525531281495011405925956264108260875852700067286635132890003760835058896998256291439950078843230127472479043243889629738072075015842628504696322158813434482964413133892217425694921419646655871174580705465561217914823486252183755246986070447116528583224413112398329559083240677210511849685486027473870897926635052238576658965008567193362704613283240628407615939196382829405819315897491457040554760859198248747728821955934391978820380919215653346409039845690017217191229045430310887872872217001439129924468521647745687513096032599687891224025874927192903167887297912844879543973991002159207886122987284909645199880435508710341871836610330958451815053491362125626480298553016760729932241115685913507710817815014769474540046787004095767123430524305318067439617784629065843754375583775324415448159717604581930610920681517951831791405846486708603917539480965596666409857031268748791838764887019730176728622848577596789528926403073446359239493522004547515648135653299981837202307994061614883204312059851268742600160727007235351473244258306036360118688769155109890231736523575490208568679018590113041550446942590269604134803195518089391711024577376345338954066272338115962529027492948024666410067633679256108831960532264734266866242759979936614906063395593922867991054233009532171934243753340104144273634069594846453176145330933196108109959506901906311787139217548577499896581197296237768820250648788616648562423203786339232369352975329882297086534380272827812407570869103529583995757972651453364491966733173177008508780762498924097327064156375469260233970712120218732698673206123993459562825872773167561432717873744687460138178247629180185730508049325620426997308512252771832081935937098556430046497550342566663022895619154996664579645416144805068503684379974085938249661986991427622066077769286757043746177947064284951218988562573078298950934978457305960805582815238667022989203194167758067562742481380838281620832349645218293669257579634054095307087902787217440395127963193937637367658101260779255504580391849780971828496321519153304060775867045817255974892634309127097096841042248326452309293595305610880148126715196663446660589870361722161596103356376915249750116512353524721805905054705794928704689036819118320106910276844837259144592933286423695293667499577258282601278877686619741756659952936338037615045518854628514807207235730148325076762920781908163990775673514516001816700068868873122373236624847005014179332040209063250268444660645919575073384014155310468936510168188254161096697955168787432274282023697621993180442305381025115953600987760200708271456689794767568704159993234732249347380131818142084608997286871556713623300789957337787355995281200577570345795907632270235169166312936053302807349197600849792898513162171733874703711622681992486134063793271675445505175928619189299686536605553015261971713404633739854925574232056749331941005865242739125908713276415269898560227888966508325505852869439147940580662604452597810307647399275432766833809876230866141030111246785365229504312605214280311984940808234696510658630708911857408075522724105310355013967648616747429295471008586451210974084897333998344673720366839146058421389151532962756515072350528238281986716544203096234263400176153044359952019052384024598053620127443669982062247216876873541670576796683085471913830885774485530274840790251449613921083346237568617466632974021078377507515367198256170356495440663871534742373616416151553269974197391365389383745955565355599080799959975772953613481734838588502768693301646307572811944429088230117641900189872154760254474091805372060439264736182322249542153783894036591761029306387463527013654059662316111589490385376231096509742436699345820554284826871138976432870601223223790320063409642263972171363265689415057196336855900235352162621580976557231230598726221683308204587808906355539559728971488840495615779825758174997858349365702239975074112228269318579977090527930682863158597520513447468827741326210972807996410040551503280515637529663023811235720974803737247876216463227771671116181229696050226536592738642324332274519275105508572813749655284613410393402047633839942312412137619010974340518025967818816285414810284681596188001582429339869030625703715168455656593522588394578606299444809650899283470745050066783477851706849988031017150729787287982521461098816360189386453738212928574590416917239791503089843329327872037850880641537363987133089438837200260700347173134814664910175763467438669904933775110076324312535154788308073590188555542584854528741084078574514282225676431241308970391072126543111820809494623254141679483463229841776101243239070467557480244618445737131435311515379613312740125685822155798510837904866710727260549448987417800411251661419842715082202746502975752182712465134375633945456747607220731055574278150747312167937138483982710037796393557360143044850007984280589194297413058447079594518571291411501464578426924035375456747583769122387382276899337682811345208176033256526540589882526679779817370940532229780872744715249578766996969148997598189320749146440026618991354418622830778030976523956257388903819011776213126659378876412634066442798134579605279919538647762550641873793059545996266495304116717516905905934727790412880115043949777962399054835254488108420753274549687477569143449731873833925821317178647455179677265002291018797386390375751035316486908707964012602931621722356420532498609201428490676382302032705149639753940063980534221047177856102569769000453353101325082199388182160926555979507593273910443407026704739092622051132339956406541657974208350665854670864364131955446981403306952408800454271305156762506810668770614026177198382793757180295698016997371770089025400668531167422238044811804803585218790427543840545374999246230968132262260727390854095172902198659082159433687194415337343435417902244512955571503262176699665940412298430590743435147441524806029310924766871566939362447903894564897941722603459532595997495748036303343830078968755873221944401596829162332205479353573611516165608390012385458301390206952402766964820936452747573063798556809198736592138661604465281960154118120070627578038972623683281631603998757336911437186485087530139865930551053416277873355145679641994801661758669721490983424710014005264577075091679313142375214975361973309896123044661784216499666518802924221341370495701175341952264381574523189176616472594274632621742352255804993901784265393252677581318651199838902302804528530628826102553975459158789552567667862993742794098891573191361214610725997679309516414871027118873706388035828063381394175704644362856895595570559330210567976697037404019193558660429017048887629588873786899210673215216098365078152144217056363352287333606041335199280342529811812745911654812810392416603456475280771439506518327142032441538370729028942953476904862874047250708335026004175314275241156302944673223813692588141758067197749420310436285976751281238396824443081114027157357050875977075970313302771110412884845905298597726676636915509300875542230756824912484862094461169387149646104455604024577241959144744127289039150128938510192127584803557165867202143953707737404753475790065588840733288178985871945751812419333096318354406384423392720701538739525352526864572279895312167044797175956195134118655398880276956938372409662544258987453591082726982490170356853804373179051632794644015830055587783412941280739564129156088127998033344187716938526912918299718678549045760925000751656600716434280826127379043168991121726879589575750013462369421672323961599306456189276229992141645451976757970263458183767011401445432894337210041282339696239650126968158430476058438944667621259489622075029012450129866068682870419677189312441507284761723771412485298607611922176455309882111607032589764081362234999695735956372682880320010673523254502711240966977858259774431013347907978300129866403251751459158098347834948915495727366907485412978444821996825752244392486746522823537136991040808492732855811040750600989061478189218052484982901259931469610740367557561734406066761182504464697888076111190954505163076835436151822981727152025335894329898895463358550726504462167076881559418094809359368370074107087995089199546151579674009632856607349706051840162712052607313345178178282962994578960264016771185833998135372658908161241720966094834988354614488814417602870029091183747552913976530077417105614851703702613344305158646161206717182550537079311891445707906574276497821761979863058560575590779722743657289525917395112968518464389150668171255374988890000479718381244746704320128168029860195533735532363511732472755354177476454727348581283997674967741655722354565162423379834260869171372183734162019917295284939467102963640668156720510863146173181976642965302943031116815457978222856062829594413578008276538968460601306519295823652784820283489757221429244066302414296524926987969666070757727581565454617944210975717921584401880838890352871302189891160100545782606733651663356539265961800602911539264079639905317294981823744174876470625416087029008550866633718569006926108110021579035674985995703234509664101163972152140566215854760571323375629092543069404503779032067301890005015619508165563015310873035934107000514647695497843168876018424954793615155291738596889326245878397230731859034932402964286390584232249848452725975244294073530686788304379372318472195184917650123132410808714753597309493737278277183910071193515070958111581773320519522289220467863287949681839142416917839134942481090838575673278454550131916202983440023140130634123361770807576084073147634410039087776541293813443365485240802858701277602325828756103561287109352043822959988155029743442583998293345882552402046117414040215663282502719288819856308997485949317299779047645188391871847074023647387599419251002367564884049478045851573166892407539253377541800309185438748069205895140868947354849811516013562119765531823726083865999932543419984614851536986158600083374717424463219231488224779122300957326017188508466202134477911006605632830573115338938428972642360453299356557714551821426464995667832269497879019940658623191269700927896788032096050190131793827414618594613102988724258461656259203000968605295241727580867609452245280228262212782649514952318538912616342210724762583350012708035841178190509734415978031559308904747643180152286799604793929777220131143870504423445891980471035292938535393386347119363853107965704701606647558101683790801468307508682961235870328615618009986495548200810953520888097776374051132767836523992203317838959344317446990721483037990248941074215443120870412839047168201829768027030709158511933554485089264351218770306458592265455718944341766290231421656944978957632135848741718617832443774951402923889473870495611361424171999724002736978005828623327250267913864721568798953046038399410300197268971619940983757038986213586885285428273782247633510370067642428672779903352799615717742102035991175617560639921389597959779441729101601785110547266796890991146556311307138371032739106884349660855871551258280305105139122507417471246784472171569382768305894817217795370328954765852093515722391995533770685219554791809286239513466878824242650401139824882115777190219061746355845185891425876926337837212350358378193131935000609304928947473876851114405655660359122273143105047666488778195696130021328476468186283673648485390357733755010314636563818141038350405171263645247096587379193173158357263368666244325691673196433302005460919965628439022043947364941196693091611268920203475609154538310860193441193258660890377523372374603494053057365632386682279240901754058282791530433922248145104169004302814124651715634432126712323722128489422356060631964428217874445096823803661826171238268277423785076317445618868846949640172235874698005661794971974184999980510026001113357316505738643537818466503078821636463467116268691287123680075794177653684199837281983808766657595818748640511674081616733653553556498010633753044420267567424529367490498261952908277130313199599153771844071471632326897366734994137154340512054712903122609910474995403627749399840152800965454988272424394274529821565464395517228632741704435044359048708510071388307519150458250540033283154107130793750317046777644957729324868008233896909736637163752973775027741318818077734366560563086808008430506057070465000339506022992333803538948975246296059096483700063538576433575624664984888089843739452368297538718330716533802602049170873549252966751583135272040668113836625034096997171410210281558275129971433751575529904747834990205151381974943873718446319760220024737095578120183265709443850794687792277279484501904344482037974473628197120882001456031131022254320024539288212911571170297953143835347979837377876939333663426317219129892681727206809747593297803000529747822374445229712719264138665940552671018555218493346869052933634310164507739677730200456778082156624458718603874327877350231815959050677988393733258295054346218463579608583867341747843511197924628505104962579974541210757525963614699582798241761968638573930550366131758631232835447651161661496972340116546981679414478118145037085373912435534855293785278898589511118074852557335851186524053929391595762081154267631398011590867486106359655384127918083386667751351082080166004339572880392078538410719177780562584309377677397633244565938905624412462213119863157953790004895873403443580108809405150557420351183806757006764786364320834796988446486757832368168245042072087901360950192690528906564971424395467938013085010803046378285884886398340720205825110119452820874422657413553253093665360756131083876007439862330277415485798289612938227177260865370334833839434103414417396986739647077105109567902458200939228814910848917625062923796442567190463948506787494824633770468052048790646027754919386876200953887471195979955926850491002068898408952774169802307404249445113492436498854974370809450514057412922486013666331114341815891589289275224669335438499770589622991011979414526713165179233974972427682834632960546928856876912745572387899170510105190970071256362732060599244433978496321565217906183889479299379590139095274753549867804963198887211996716227260109876059386892538485736188938031539034750583993472919360270213189348311192605286337906199569034937834898847007097237671823660169361192222290080640971975395929522542207127233938674683215597392345423741109676715448563592081159695220469247978242968842641147238061315202859824511830506524139948262589415994862177211763951110512815492407838260648135438640133508077529730088151744846913510653691912759352307940346172245533034411812705330825896045109116553106882804903575088316612690185395830907907674555616474008180632093385328741846438111540949864798442820913550453608439874620184153437111334409828954067756016322863359977153568564683165832807124733954821955301079456550981730896493659312214576224125972789441009113887413766363222772916149410757623140654251158562535742433078306024981542628688957301089651929589673211632813862106120507180093958079137085126348159735557671920328207627681732198393590400684414564301963396575207787728619048983899395308570459165876208910185481081291774853732779344282997919754776400553874568379218254832460844080436110349208373163138442815290574668593473609966354899840654625744097495014110030181520269179491080882792637448083934106613918534738727014917311485020605893149290347156980533917989401716585902825732127111226026911210043839781872714520561047379956112863499601468155026560732276330412545891494731752416984433772248327352629695361335921825820610741881482524021045941780589932791064512624532947230904774632254060843323098098053818637603261156398219400141058545860326089102596270852892219241208649908614685914865687284544990444194488942775392518062349558455396531098232409118426995823421659209632478788189442820074490053169429760882699189184204390517327658979321379932185500647694556382375140083007889959510309146692496794443590153690771166931140827036494721770646395576903750562627820588720521831862143191056310617296784664612942151079311265039553320945228663828888912809418682406559139999195698203530816967668530434566786087549860965672041295209331606701429294338414869141255645697017593998764202738220262207835147333186772286148451786334737144174360996159824633670840503751107131670683291602522500326460408252129363264183531616877030378225477259475287773831588692459241310459088154311821324806675911001867579076378350253163827576295032110299968679630101824057283294643570640303190322319433701883118148742983059531140917474416767602510662589469669586444147864340294018232935709999554218891540186290372675549885148335969094898481236525428290731557307927229258098568738512525084684979120780778490276594606810030955991646044421360085759836559310272068986887855322655616492185637354290823836907474999705703605548169619835809301355010073874910972915263217549407049598982906650725355854730514538109865080870980284733814695169978487539851808522948283119913141252030370333513576559097853894387833017134133853548748059969405722657171689704344799938113367020590850945614997433161100136094004080815006031426389573219513873933627934152368870304628426232351058164743774187999619174865026023049421559428439585403989106909378094305278787297266798949009508286140563430568466626361607786373450500500815040808276364976828886598336524012947624559294649166808708110623541615944632471262697575012970229188931159774077403625929993325733487597441303543772927860536180159448387970354353656946070562924187166987593090930895365405595663115595858350117544915886291123379270561584496014135523097953502396648165819805042725078087324192045504107830693317458348539133894305356996659318658041477948560687326582586185594270709312439795113246397798772075141437520458582988358783760544005280226248198182810448357364520884420196620324301459827287619151482610694442050344768359635363315746164098975844859705458631096760988316294850881486008646065797485109958663484316801963499733599918063097252033219056771197058210683842873531848525689855133552575070961000094340400901402467472018949868363035809053324561414893548992406296567904755360295630011848669666493931136184835006033652471313892852795758263159817748631269278928205215952724401580372282713045040297747440180865200521582526629929867020707862496107744711266357018177628693863829939429111292032812509565151618236665879774605217480065284488376317037861283899566431168314407962106159859265982951796929959957425428358708415188273080945635469333629306584870078191136846083094573932974061181970584395779672599671256103577497745010811908873862324620040505308325389650637821005416295104485605744299536341767040118647603285289659285898758576706572075207619264916567778339536334568059054343873270492295870996854694567504607962153651772569688387397905677057810508328967831391309897734741672183893291353062976603444315020996087361385349248385172944746806773765597695488805405197167867415551142919203949798813430047319887773165880491360688438163023858433965628390427553075882294899308683102621982462062494163175070639238000892009796094864516986489630072505835685699807749273606541055111271201882406891750849221007619023852949185503210265887468238983729668241187660829795824224956221680656688651821368906651282773524175042963561355764717339141447713691607668118445382309560243085696993151293531468362169324111829257698941435871845781521283746480532871920071045601050254718861578471551634358501235116313144460224635550145181713493802246456579511616873974088791207485559601659448265088610536666720782975990937123179895483082855038116415361102730031257244114002352994348009176673843381146236044271237339747766974208600204045380488624911032851321074648748691220735951336748621722996461315571313549839593283442954450996575375275981869209154603549481113127073648663081465813942488627528547940972889418194084712602235825000837700122348347670971175108030335426210262574906451244545088462381018826333183600263453733601832036601624763915443967397669452325552999729012992922870950559837257639184223644071127531068626541834152362203097315665656233021283486417852655840221928683874209636806038780062907119680144132427875798452542066341888606844879498594799846111352785556434655038461407138344223005287163965556334871603427893268705813433250115823111098694301237627220875361036754272570113412747562165882213657531088488017715696456032739678283155603070331511519502656497829192658157447234406978058312180019992519256407188644020438376248434114200499523972074277224630280273580596335521863461326446708792695210490968244108351585562987126844656611209024599170384332037853117581412549095755196700727456424628207191948214717913898315782952593623464286240986005455341205766814841190669959919402445619443753046326952728052768684476347503479719076779245075565445749632347762756634482777663718931059606675756404897510063901345955026797196319729838654162973481553983105294893655720218749159419145434897488301006528948025701032739146688760704134388675939149968070106122438676857900705053021254649215228770436017411080795593228576461510124872973765987322826162322662751098971582194797126668738741429660010078836511211987986841333132427927370099555585219816333619772445194301008873109943763948977145761584973332230497166848800179363599961640954766610500262759425209626156765359801414597923403286173210062511923647318403707499112902506691730602804999590996665127164803757160625480756641849485706799299006424853899620241714707506657625696000414683663999177799469524444167295134832765637604826763787108002356349640610448719250594465376445807312465505210444629564817362027408009688096850104823812875282425344549018085544755770698601301822625295178660416338227470358534900123754706454504257696841176399665484719451740441547477075885637726511224871002995751410472105741247187373633263091171424776929316204817409360492449747647413407249476551791682603655633480937301730442000771346760334683992950794767382968773351991486655115620494641025864253452273373074709330980334333598578212218438754979924235272242510954508087953465043272494234564626514212308521354758714004695017563697136041003091455358413940008793184524182480539678066342882693626395632480810165662343284281811505061425162786232637998049751341693629631180814614655332305976654984044854460191484567638740863323505576854265910166732511209216233280262356073873764358809189639964401376558605745583234269810841526471874681528481696124797962170942201257428038412867132165321373261629577046955281114399002584709347851847967936738615837298762189381443485267786121875284734029478407048168656862170539135160491277703404304670499222790872095103865099058093969737824553016118269922899124171088364927154402723902367070159076982037981571326682818565797139462086341663921236911780344582279171112804333201193031391320423673507877154734484281399489703620772090333455687317123957831775011152645627791621677746590591720364814394295879748323043532901158330972401512358379432227794281349384998016546877573217817443072652940297923224571879639227130718598181988727544695894301977756124499082669570958920401446007638005433391057698963702817985370953350382963783537181730592969477418969254404049489689253845041886072037248716460140550272919958950903301034770901518216582694412045974701325602073987263130602719600047824535094514226281972490178148931035297997289762851633914594678974795703914308832884612511874400807674743708491185244843790037131077127130923013779793245748252036331304234497483280751137353470827980627772191863815235785048126074631567491134099190272185854862760389085614391868599400208972136377689691324647419042416325467629505266864374523990584427116052147293089000195113467186223592561201001497541688062881668769735124325403076121931568104743806863872790568687186283756274697693953969118366760995073308640438032095781974895125253128718205970497556649955094379009172045005817941096031805123299366668863098747783742777263739878729808318040830941786234816098436875719259797140105231702845369057453446217941473841682843446242325135980094907953785723637957148312742409691056159793950069800583408384824317684854742245111270952252010952010295725668005320745146017245786744437028413884862254837985351891786835883449208168189478571433586974853686810701226562254862500490202004884835260847688286438885937830168629684957708533942497079742856159939940137966008807197040254168639877377847633666649244118230570083716463841303283839632141975254440400593670472287334635034604100886021859919203063920569609489464855114765809132805105412266550130785598227095618370344256707622367922102670746115008104528647949550498673407771089395481007113395765778962111948470475950209266828195691570310943303076236079205173871709720815077001866738399189393275118635891331500599331850291117374741306600904392677578250801283935151679115456845366716217712850804898458317114298532771719853316415672809330021065510581024719916795681436186567514339151797254124231123708775789735944630833271913218319792476207710452185751039554900948258765189915021396569359164068179236587259396963355241758429640527911355135886366561832429053980731458734937545074743907572816643557507561933439557288577078085097437172734557681906542948425181341903544654738394787570834946859881088993928534812200266762884738795915238390453302876072099024441405075252365924560706241809708473871331376918431443705171842349958606135575169516400911175380910506623060631150846119184467898163116514246867817153595572315398715589699709115534043203044311513201024353181388698904667878542748420709212580139680757443619880913563295858318817915348665498089418418702134131545727878893428167076090921253261971272968606351526444915378328171526758152696725393244984014631722331034708911617745733158621583453798822863033964833130432089734556916695961106236165802800948268036469367925126670191330965239519796817037362337540080453792873759001027116649716895938977867728871462188252495988168361517121922482950165428647600748126904724579371908640405697356765658084395775155748894058236672783345537950782280405695416607860178515153030475621969567332011713601433959642195848895956673997661672591700611065833937585290954136967316064756079553060249019601923738657432351408290430064256776364616825216664622555069012144249022814605570531317198864020783633036581139488340256558815365271540722046115501825464318736475445445747650795370218147486252249220233142230052632570766008584796820271334389413548064613049978202755198723197964719007559742674457620668215090787960037684340928960132241979262258352823906285451956543256289494561766493970271670046767614968217205882741293275279267560834405130157730537191314234148394359803495727165739786158962477613971449347575810981571043781507577258516332699303276064472598527771961327376153246535634780267117135060928178146170119600482122149241741121864385691597980965771638116427342339624434264273004164390623789438138574066544696939202217219792716220606103691841505037452965623567805888992663405735682148228783558903573925038260781819528407005868316701494986403464143830889541077129415785788350300015373501521666539387092276971879469896078185578148976726991740529730777087099543251440177924978347663373687544926181507390172834199058114268310874151392571075263314694537585908064114767515260859797824947806544806429978225958434837533388040533180926115349866009054585457494791945489067889635920608915163028318279727681665192209646557206946986586592079700252089411682980076827224111215237905027571208100491746715885667203827972707458864572154467948853373963681881449823366652332802553797847258907553074292875342165773041266071861506876413138446800924760886377838703612374333741807951608840844966305452787928022986010715997881185705888631728269906126560392167297548220908767779925261263539344501886323365332621581433652975418541687036118285736164773380200500927113215488454531245991102200884629430751731167799136718591037085485883423193860810326284354769493016835246303670051139677039572734386783363983229118714477389611175263573911211578745910101082387930654219738559973022239126133261271759616203998109878599044231911475449003411619528168678260909361258729474990842375664287361688146900350513176447562349861447542347883542439721214406299645867207050274433818449364405027934728237214844532294708365076121759654185549834175057808557279406765095613583209715727503831509235719136678968358619715756238961851456866403331170927438964360840986995874602299595278615223216415344936389088684935695735521962948945206401493687976105546183456137586946362030271628237384181802010734740642708944481595593857579472960786101849580348150684366459529601937340454037423693633030890030419030152643228424808274710493692807605868493705921737876568493275959847279965475108868505305570401714840569600017770647524301423089652631615056210349221753769488877144899639829426668804411714585072440246495823691599159938915290934461077011079963365060465139973202179191768334807807872295162732052088779754147254889785910287684520580932599861628081562092976459900757524357225264898297805583150747687013080221483965104940392309339463372238226891235127201761486226590599516721397501808733734265000034579783919562693360214428128241315803199649085607641097989240303303947807367367856170746192863448625539697567514215794216606141894793693019375108465091759466329851690720499172891753656717321495061117804882169030271497425074172404065367712089126226606617113215113869116005477078116208785841057467959665462539648482036621152684446181594113219531005762018375884421677559238304583487237995226707623191422980628605792134589808029063769279471140715210917322497812851999760644214674757337025688772620454556654829343381027767346051820447430811561060086064706703712936505182634489139992325411437218044547462512334637181554852641270803262474440458128187473440935932253272310577484994877589276009617719628325655187090677275018355431133029060242754054570388862680835172294679595653228526902398713101960236010961532288079251884708050807767876983337951185052535459886264035835236823328513275671671318097793022532645038509808783936168727160892386213401155438999363522347126379459464839863139478225825650068477669598172310806651538786751330936764552953034612618147333210295064653751104932627254631293031460943910300949526460614732622545305646907943067123143697425435263118856620247890813754855148812007325992584469947200114935604384924869261204814284620532223072926549553595946491723352426769839661583641263507492171746533788578746754980077651078416725543052029605683674728825939204888766572788608800420012972128322472955161960122004643435552996960942678468938434238532104587733913909513577161548364017491237187861476035134674124541075998513599770061681341582838391914988469623475405308563860220856421206119262822297435352057288930470167211013842734776035053572335160079666899197458594032976716138603461694654357460995230405925646051057124236427281026120929545246472326221532140792170837902563768940619989831333061607465153688630062917319609149990966211098461304962035653078936582682087898060606471791744385311660471279612868737808293503186796875361837205745313565107204120400208213526098536910389928748283580931303718468093427012626818958149559875210265458682418296272946579224400179657705247354060016049367228263599532484846446894990065678655024831439856938882468168884935018221906419895845929677161514467517515166200970414321969069683932948154038869734015965442763727541851300128380113805297779803741306357488931154675718911715262111142690125686771078647410323372870552986721922873561627183217124660065026378016692323173467400471961983042147801813786092366077424212963631715523679694318334582125781016512558774157823523803399347381952063769649443689844536198019739780248126807335461771890147726648400791435023058854355634751949120543711047512705906313077536817880144126849894067269427386343375906643781887307760249942280559147478341381919798700124918346371288078844716826998692255935471384375237681957971985069743612708071963713065713488828008951662087540791350454555105833579460771797826937638525604066747101499581793313983454166311157436656114833058701973625808564643861265232682064465037077624473709137850041850410827028757924592473242833529720752108434391661961121036253091687096428165450997089143315509236749325914117924176396418903108156175097592340377446954877695923312165467599814691497423768004569192001681695955980048527094859582214837014753763089462677584055375637305144994056666833199058233106128507032675902062450449483357209906248341180969688327825682538497366061808685496317582748434523740545501410573130740357858833680207234438534756471883085965199091109398991769817356415118733017950031761479623897615198130584480843938095793543953015714937529281225176218936607057215765274903529391772422184074919796487758982295342253844950957264236472824585592915288265900056617922721207876425955041147070298163790698605460952931739458195867740936034177435556629100302138389910526649581236981445830154472029085536673467289585204485195623281985587484644945364291899048388026095113243804811490116749627753177780902580236118663957308459157418180402071693461995575199993096137527224714952688125919865183352285630660362212625860714789046916879490779648292192239379821530791909000973755321194402492459987118224619620631143167738526515456324042005249604916671566314860847345119544558663294562139102424963639197663616149630706873514104123773193622968742722202464018373474365498709501953370612121219832745095787914481200104778493485356250635014520943347779378656103066644215489817861143441424217035767359616589039210745364424809528440415513221650880305540794955015754886196929077248256928928173347410090549596839088424356119785349018624144768691141130866743362482596470707625312558496712783142981006793797160663845285950113537788012799755765749780440922230478403466070217224579329822958466838493066564431221001669722154443351422001521856335872018959772120327905227267599002650914387104475979561538094602350852378718406899253894019401923695269036809055264617496090848204703625790644341220173315685134923337434945405800445425167464842642894484864097465566705369242607038899386029242924394200302676695362595678207789098602600360512300442319508289907594988477625877702199003562014210599523973070110456874337346675565783150427310170275433645314615587683899928751060445588757714587016338365360283161587042225881966724386648347088507038663049472085672087347340623928551182976443047893128910049842970990554314201466879654818507098669203092374093812885704166785046038663487721195895486075033983615761985621438721954111861983750488643653169184126314426039681753432398638586232076258728439215743918004917709104854755294771570172620637731294337098758747087369849400111763496246738625823442837674193103211911446580808456379994707331912870934018942395301232807064075006906885855554138055322502196931561939002223749182590659283334412208828138314355359476787901328912380488294223526826534623510664468508818197277505250737273762388182514542910699111922901581986165155739375603572926246275059999345735500080760742799571685553816512563221059062426951758919287607076784013901666473896901910220161738344318750344267078896270107354184658129655735009867082899930752230215391394663400701965959897043256372790460379199750142247883115936439151951766285587210312330464854030971686257072487876586717598240903773299806296592666199057160588091318279282065398527210563020334460078522577052720122528812281585515427464424897312362281629508752358279109281363809681377640935489479528324951834784568460813358826490220548811885846652971097060284796082260245682359555047300436102381036327942611647037263475783239544999459807794580238021034154861289734180324260990880058946192724996185396698337786533664756987481058931119643266726139811438492712256666880381969409535727759095667919289850646670098508528961552312251704228573176627215822205841476384467857161618323930528421303184476880661994919665254774740280609339833926774901187108571714361259579468695852052794692642313499789885114656497478902732638264013615485764267306039694172731299747334632340023315243266248229039724482652260590459473941868486089092966605915104839595855534691331003020403568618122207101441853761849479101201284752695786499898897432392162877480379239269257109963873510350300872034796915204541510273579278537897575792685511243676421816574204089297839121084139610640474486252285756006428091182284268496350937078357713237241712059468480191872788097998934012960309211154389090196683927592565925544856133725058209473494541248089016963869133384956498669165484060529818567323581292858179058471772985121479360899261608019303778992943657973644106823826984475601758500564076032942796936723955278734687095197667301664017881862325562447459010012996299157927176737736694800265365634545454332542529148877643471784987461830838868611208029876485505567844410012042413635535855453230574906712162802866172349782247385294583817546582030245341773354198590748407374885375318056085134751731559840718959617256353156982690480913596767834300534834200060305593378573055472491559426123221001762622715696210563962479250907127246914470844217355891206582668481620233160428307203190379641469376808588559279909875782222064345513317854721850074039110973055313921782891203983940489986216888855280512306480253180625245779946314638657073727800266855466762292347494129760197781191072544194431965936187661304914726909225146073759343128996653466143567043479529608178411131158316592251381887574592394766184496512566298316043833125050653973443484722650932297490552058694196524870767361362658045210431340090760154323167206530847431723358606824482648953920993885174440007392668895762393248942712915619330665211395438951555611652860801077246732205025697386930628222280312561866587632945879145390430707322338353699784321037910697913608169868852672445528276449910308109088035501552386416715641578474015191025887719585838014539729221133893355161902894596102998808377126437124960424547517350158726510775366621585089235204723310704235051000002898151567719739110155809820519887902776320702595159920763759647330866173246946858980748813117094820021891370600930061570613073031719196312380203137128858573820128148521186337674811372886949616398517050551184940598429207932307695831874339605710643380746609563035275084566413868113080889639324764822014339078374854302912245616499709526729128620786490535766037018545225910908570435707212775738841228508411302825298104817890751734110176248824146570248852776294076698352455391661806197437232676394644984741262490010267898262550291220677108247512018808323995121666582403087132667649155458283853378072960369627175750793690662897019260258294064978781250544054705614345192189061890540004449628813899835130406254201142623076738121884654749810900315999864826493507404181978033708080129858147000788991511858684336407490681443592325855767319826788917146787187430805131440124812279675121834516198602464120601570905097331772028067891058560554811797131738264467109443665069150660823507675194769217336469341311025749231492530732174314966593400408362094293894181809291313174993386794485899543829940045041972813568641937510634040482573783862717965372920818998815617614346935359527064806942984950745972495882711788047735905145899039108772235063946457921337671261533788810901293744982727059428946157322560951957542537098501797641203683040392553380707433670513637772517727724491230030741891562837910909539577407124268383081160331330757600700687788496075508484558523911457800394617211348118431078926665655784550182094426485081908413769227960527585578612580309935534917649985158199198357597634307738963302846443891537539829730608951356814257577403056741828431725995055487540142815380967703422819757953855738918317146706381545431690684747113389699786389940029306785767412841222042291199390607436720902408281381041940265920141664580933323337593499926520676368153192943582586089075260922843840297822378479883135268150724244092664510756258981273360024685420738900246111165910205011152445223725978645429810816823374581878395268703735175678974409680013364146199053180037692261186365905964496624046329018982316761893581326347423865548427531509778044733151167754036802872132851360024367521017886905329640002193712841188911648653820614588639769971608654177931344378600907324014816450031484342858199560240013160390616885417173198139526726289569801472465957997165108715307143783908137269876992163335707377919155962659822639725732623415998520924648977674244901333455293071548390217578616053798615452460840535490874938583076089036710667702153298765114256454836399731558735381380892187536298588696815675306863593885501987399556764912024949139263523566925784090899674485788011124851338386707401739730261624853419715057022218098218866850194129334162739015167795527008047229664792326043866230455011734701315792501174766686930628467650116921599522683284684179172186571136768365363306205173489589189355388866564066113240525442218831140519119657118722114610294776668463979451663934658741394858918865374772684144555728853489990409938870678465982050462184159586297318176221991694678642861232959760314006240419372731318525923269701925922316380082944916390543175769306018519124174398449245776115043587888157737651528817284578000398099939749997176729624604585631275778022784631324111800813137098445091865392367886322737124582799800171994149219992353932836679548038910885355871724800667362370531439995126701851155405525348914416180507266221107050250732880638832559255357212070235685376327928883468341174383391698491032312409357447675940156626366361689232417912378203792183772689389903527873084113505868499828786033298669855342651643956409260129901233012964771916772871423619595169732187172402115713865369007863195944405881841680507000565448210595470237476148414562760968479472624678521136622402470832597025925002024806209610625959142569344904646469962325096760582942693389526603786129904169380597696528613497411679434814696274333945161007361455773803027081874082394158456274691091309445638901456725884937253125450456496765725161337940511313063143891350927991262103532811602688578333772066753691676000030714916081643407520876521705906276150056922104780706180977359026665366601770576519560631092822433045944873171483095785981744195563642228910001994562353008935372475641185270454735082742007666593886229414220207782008837720170022258069570560382724526216508132585907818710592170027441819362629911609716276215132411320633380226729980519729593357276758564426413388295407990583248385776693530979583951260069914913778614126098692332317657270754500136535238093476956979711780643471168120874239340100969918844111037153184934003679055846338173150623755120388345052900534456875106585214502880256030415445127753727431187681492257143656739419193766272105662418382535320314441449891563683284838295460535946971340323653722040039447112907782317486263851702529665937637416621418736871128734457456691537632654116454789646539372870238351648525160111671669838972318059785276275732256158689448084688143961248885963081001854191792402361323641887557815418070455595012431426143632215909944995277500527337965550516546209937841901220043733198724395301261151794008949136869352199816965672478548853894113403005023194583808698994789924751687085030924441326719994509870564604140617098916939601819081179302817214682051555418123545212013292193351914214847994168875653276869597022831889281621580814061942211871804067185705156437946650912433070316684513610669480716211694322030165097525539626516801157022649429565838626805463325974437686408507228026094188785688409556524521928506016953142087909195811602639311399789462312828373557757902749959354896271406551658382063218685638681389043617852025900914787041039964441829892908963701467936540227165634992175127043986377454359340774429212752457477485404564240291691578324192823444915366940211410359908262921576492222543242090307009678274131558275641634935964113111657139893778811149041650573005864771806493469151349508025809690733721339898188378870002352916592856655054069884841490775289245685555207207091674717730305770118166160923896461973612256076343640109880418115727656591042569253197218416930220118249724120736593135997102853534726920760475468290545972787833906604541556428211518194853487102528595267537898421386577926904657456914404144369583324039261811033691337115696364472694916397780492074946103924713565955018184973769060056257700365476262548194777688267082602881030970165159334938608432442067658767973265616194814460317937056946763197228295815890849732070373323075563781992964114076279536184447899558524882338359478514945987195626762806557477547979489593685184200466893012684227953957528873889223587163092584537103543000274199255190007049210446414883853054737558459368362645572040930228623707881653158375561301658021018977702139043305257283592511302596101600251635915224740619724234445678203922422620802016295182743125185270857288437624650155916770450450536783700671354659630649346242454652926258152615568948907764030262748818451539475588442825565493428373946316581003510683791098836857375621318594725693166558215700280447794448530509381644690925550414655100171547782062732068108682643739252294600194424998481817907255750427046741034476048712397959200983005644173913219628077168681733243321379992611408752056828679877671180806673514763662422130124274508378785496242775456913418124151635191677490144570113019226211716972269411160531437889717238804727973536808064058516217235038984519301952028005447616115360929566322958310293862387361346166258490353067895457142924397647312482409354849152207250430438336267118009540619884332390346723906875883283225985414658360148027059237570847007833315588471312324164834007479083557011103152401022191734419977584402137797279727836225207329691064377635288994319800819665387098389637464801389262357595838630297779106156787001505442453423509689837470940660615061402085615744643208086781545023285592177935053980155435544094323388175517966528569535780745113269908920362109231861079667219050909712820341578744040049029593317861940192114021309737250935088277876718230393157078400509116832937895745322337819472800143321240568750130013729523644399288375021678333080671391007342636761538517323094777768853540306679197304743352782245879940803430002628561906523227842522306073629112919655613750509098572458723906887580639351255412363920408081826668237233831352630983012247560446135303838961869915627789062920322137963568982911723620201073621863922680159079527736553951017490858233413863844625883039923163279542667919147405965815661879345920688772367062693524154187225168276601135862362895087567395370427619442508127509302759935422455897394759547054399519005994299210387573839636562557085237642338496462546046296554169062977728555670528937994734153884748157029132221148767118788541437546684247444508135919768833944958360482845879409336577555849547431653724860818045085466876026983128673204891268765611876829969746662963332784698978258700519639690827344445856546803792504661954251123059723901832838510349410616427837284671113351305134159776181714293526091930682753396321693181293822441134003339872903978725493086763373189132668992682153856263994015158872233186078469759639952279359372186267004852859515935718663136172726317547169779846361618204513447849720508623910462658733570741362044508959014394159690292860842847363490236197331092451636296872987004629205532255152938798395066245048589719742033376891052872117740943365994546395586950279150691565859054078722674060286565646718567586791143447490703199704948693009525257276447099944158759784841417058702836472775003586227831784565507889955722028755749781205806718436641653906823286450367958854991723640570926709743986311799939839774569431489744970786357193459589300549061821339162597266752283322826268333594928517165493600010223008210743354303289933736240512963082086433052558396804464971345719588459546728382992667419375960138150683594654290004200020928912867042081840659528000612588234802829626189623906278261823388519960520872801466166689135554562524570936912901145187317127626687735013287614456534115805068685974099944499137048918052238019755716779496063878027733027404197556383127665248967965166111141258366142915290410656503513512927056113530487286864560713779354704576238009414122611729220113937828645982324450606730649159705874148594615350635173027626038629867920338981281093636875773501793279359773076120825233507727704081907493519991495296234459618534311956943529710605641655578128089734978983650086486162653995513515077252233931215184727934874484590896107595855940603697320437211424189348488670128119226496846519346345825861040504624571822339226672614374748698687737029534856900697534495770463254110514408892628185850539472732773513595964297061319637130900914822425951249327917612796471712031502848315301667418833815336285182508011358549195365496095251480877106799069931112107412088333359614146024663170412704386317323593072036065259108837957786286879816150568825185871102559224834190698975847528743841465459208750158501028763485359982542520489672588350954319076855208652276079461430720297394418398864433611950845804634725342145752520713422513722155011694491012487297217863503354881642319375732089833645923878418679218975383192010291767785472602063383502826224660480390252169335337297484517442616818801786602098301582659086046299681988981269875908178442741542339748160110009984233959625608317384546261343913860987790575930701139835197195657930392961474208826062822707141946729342444940452604048529065592008430942442296270504597029960815824099443057740057999128783020868436301471828053749980696775305178082161781104359956025000301015621846458889328914504425329302505332094516203243135235462283526397890721638332803983898840575129876713714684985286598755103150851786633077604226628741954524268205049939043673965723346389517089262513181692855419247460938118898309567069981718877621786268530854822985733258572884560103097560138969957442807077562780489336739213822533250274887201966407677233049479542204681964568838872309907398202482303627421278201615231035605026692815692096751117467003444002362911868529624031006104509428574273411476376013926119919693956303612413732399002741233588609065269784197658057375756020229167614733657184452647607089542222850469933200132749742813937059531402559871088779846752731738075534562078545783688723363499463827470868512329890804306319326923324819800416674645245055846866582352839545091140952677735505050147061913115770030377795547340012746470543407042104426823177914752274827712717819976051477249265467602316799973952288793377852969164431785249254706432321101683219875514680589708322398771314131334480589843439551201933696949927524093513484058249750943137072858545748938540953534311271334781361577962555248428941031969066929837609483215459156401125788770131540865223902764519457325364569832058799138235000527258295075153743416568826634915419419014574770459394955165452268485819597404908447114602956514791323550851043173655272499398487961645071177629012016239472879454948106366545668538605406501834925338247213739732000447127622710689720675961628382398093571681097875221282455663745514445266784493205369003992157699541474090346227190014136858953159878927968149527443179611344394980129103510880598945572289981299110235645573374568291374635179045020133366789410439005140024460989803457542740310164046294377146834651130923798859729597933449131917239309480811060824426291939662836798875674723416718090710194969274059308319988222468082988099489288649621984412351316858722598011774417845753981874634513879759934342925985965993574829477198900847339679212805100708193314949420870524827259746239271167839280613649185357163156666451005464174021942788246241784688950110301793952133461376354302296375007836834647102881794713769505479996362001857169400636451899815073456593985420163058198205870678775949737230125012658908681936966100062198628166184769792953473621094587539336531721967760979287809197071239625039607976897914425819982565045469525373642596790310397464617185621601106217890733335785367646886055196133762408331871295592397369627263262061019445268298986804385649480992041769372781112848511480591618605240098956783211123824141527521040512150350375745307627060771668943117051274362123227660642193157388815503599997599336862232224487170543138896970121030024883031112101212595124790470034457908923571695740737142827785444105877786504784769485978752723981757520522427234590778679709947579070264502573105811928590871646573528093040931545524550330300521543736563557871263196089873282495963468774280492418228699761227471456308513331158441448531610474019542467177350173012590744194135405642956484693306093370380018953406339706237806958151227794069702056481723665243418676618925677203756698554610973824832160768343236203187491653801765271552333836221276985112735578282672214866404656019342669259934926758931393080704771005593720568486835537111502809574226196059069204198811750865970011167421222475020643928050804229224021520539114199846937461401815615127095668831635902416116614636912091922182115361019846604859635358871040285379462116568086808938822949341773977848376695798501400043865873017827739981913255117298096532888357430515635455482722467508471197941971341505781240567673532965610209858677110468123330000695892901414288327769861099013650980064966910420395775616712007952946550922095819809108136285527347167397947725133227908577600784254849410348737010312102311157813607572786273825724266319231295542536420844520243732710107435102214277696492748718010740353508820254992366296681513828931083658870979311298147031437021032390318310113488851075244422582556024128685471667514248630241921446513889431497103793107992971672036027245316331093866850200764493033759995672623142527055665473681115649414501619594673023435675060983524900763131575145153979061832948986291606413379580468120496885289694385964892883232149734187499099589176675283259271065182538944720842720153691383281923583430204532187210665480049440817053640288818458190787707098164501127843477524804619149060790192393176566439768284478682720581527114702907484800784262567618839184537427751462994359661262392939166574770803139557679401337550167946626707836419174285783429622849413787490927732062062587893762996865112565250325970194009578478371371876431265306296169472721872123190349314423435832461098238127050471399848781513771193880978348258403200291279537559794434430254269268999839070445521342469483895221433619351229147475871397330195061639811645842693681766620994445213041644783521754108498931936621942337211603987066681799808724700040758780491365056874530284058601037692300297717711991617753725281812366438575342622085192712755912340953816520440801385574945966458787928324227392837114142053501723918991759585750381037859376899944247849653188422584717119502868570629630646154244774939870016267252688155085437820429390157275678795943831139474679814110405345609364454986649107025658987356499272396594534717285973247875021099704738167693136170940120551326799935714657286802292090873769936517497471836818203035881645574019865349629193758844093960260034013743215568020334963993027815624138368670064014346367025782271925968874174751292639334933183791974164705716839010312082305926860211220279545136560117835215256460114626013125500687252183249414396608022071736279904931230023992523529939687839111925994930732116576578171516353005261823174869213970365888071432732886506401582746611849987704202890466220603355399322362811419969840882305583691284012096395371737130313198758892850311589107443338617417101934979441803889614103553859840063326599966484069433966750303417673354373597278969087002711616079558918817693383773676990593472699623007808906032771091827321515384113415011210745215329937042578990376181720900062335136254839765203274213809404443583145340667709545781832221797337175845059086046816254771226777500969276981012338273860718224945266703604803907916019846091282985411401449824773397865859302283488296026062670699490346217834258694523879542302327390830751564904414925920499006238915053000641305111924244256316840543795778313580442998038052073410571955201135364396387149849239137525462085850931296348658937408857304178789761021520557011674583892192427494912603654886633513866806572202700032211377785846698576639837994539084403523087893755573078959608721634405712229965232663801619764668337742046925651595221525587848256684764168733012277867142583145102454614933974146213759167205905668367834524283406436736805402775941907154414135393789837105163615875304086289807811835281755874310618830408238639228108848250980041452490769187164076439403704948639988473964987493587999079306033687897300077526010128782305673720630216412619240434873193041934342838255227223401088895261941060977722787973687839915312185068383317500913367356198183692682730087190404786554822451891072209920162274472692717915034373127895543741998055650617659032480551908527765508807380994418975288021442423750932501013723397970397658953804838227672870543731864466688656239234315826603776859428478476160708319178873989050549188491282779560491199126603847644744353418947966123905853568285619724758112089165698194278601167257582395734985687046855531181599920771825940302692681967731606948524622612574177906885993778751436158052044604900911238608380357768143140106158413441037705489279444281997104020813030131234106625008873886079054586834034803459840958393516338162413679361014791748509405977369863017510271618421296983911460870354308067970819114030171993832946693496811448417242184050490631649748224266362459749769889267282243944127385936111309039726900474666327021351177529061258450314009141430682070192254455880946312389352166174552813416006940629880470824130044043382781486114402969026206504429455038975385111519258314036953680538251807071652751050637302663023098597322977019888972429906568402162450257801313173620003207151216978124106236657968268670893857117148809583386828664041957408073210772319470467228127504943094381799070128415229696828957376305146482482964254464813575199634020829231801236490323174883244655802794269646340517872254590998726500973800475082924191729171748732076494725618034925514171022378713756005221843894179900814020524275329601552529213583952504577184819624224690843088877238942994405659426784947807591559549525766681254789059177988693465900814750322105017472038702903436300790876555867178441791814080010919871348398597714832681727488047490151864742854720761391739850554161861743888032582227379108771939119097013828610847356343145878169225197073071389381860284370333945540484863594539733693964882628561825963443874838365625080017969261499132560413198910617751693518621639240127151950306128716366069004871182967553284926296340634120813905210761069773029927940423988759642361655692020208310123572000134673285372619660227317005554895775039285677528140760646469369004343104063668593887597977589831138636045104498873747242211308336677746997379027979111169567238526668061768713473057150762486038732367598585069589918026416869749691080678064290148957587530225030799177296422222403925579835022644132999349568167289060760689927457545190752115273094830425163366803281506145064539323602108630261066568118630136385989938472068968677862659672139639196707775216708380523886085256884355109578015211390658475576150203302976494214336602804543537481274849322351475624123131145475350375616078680768567017308651593022654813936580710336252635374919232184803506277469366260244883169126946873289973895786248931530352537854619228378931430753043982498155630108222624706025639760125706190421253515416632008325782568242993455957219884525082042586223884509952720275448347074685493452153108694840820037280597677075437813240134825207950306203865020229035822389514932614907639357982778069081356032171909037446076768648902561021202730109415229714430206283469216513459844437516721260969449360375769912416395858997553858469967998570116621800695530495285920622787951853235904230198516332866602343703033006453086105738082581951214015451814718674080119157625178148503956339922009359745130373610020345039597867830926984493121200178000496252106629397837967960964787587390833202672715426296987225955327994251281628145701465502313775393237755863974698877743675743638415446665355900813037374993028228739249673605645392874187781828374167425034257969748903550800882020329537644023351069809442446155334105116872544550557529620685654557927182580984003848714786231853683936330574390536147014146524054426348269126722598277272748219447275624550003417656799852474286288075320236501094477234089069148129882331110299372325085305677649947738947496264921854910454138935638465450692093549612760522026109635593655242667813928093202519989688467822824054609700235475682488151329377641841041958559547473188803489767911028784269683226888933026855371597029513420214288710179183331146282446631637261352907904476724827093367370910605369765206688782028327402130682819524077824639182671324512883313646189207697338886924728828852824483896102521026984040915586178986930062677262716192038802398502566589846630325493229720653938834162639305239787743365461485957013456404498324010050676963456163756683710031762876810520053161363272501422272284075841982265554550399696888189648420880971892160961830895210993502342291114956328644073853027585081540527782406294236871244996572733881360926511604718776289537102159651150502083180779963384992978863206613550655909539779261847444470677578737303972854996776544238329395126805439479064450450596226027683003786696413291806025340016453742024473236696896200543537704091470883481448008456824265959975220576323938595013807424787790904114164753667513031010493514491662601682118574881299161074634383956812468543173049879348171396355805681101436899195093624875182589004065563189729303449013072796895050476606264409577855457648686969565832287960397174611323507501192750297104009110091822138366471683451039635985328733673050710409847387769047671029132699575193790526577708378834517604070497531854046448735172384687337462801311655815960495062003403148685097393553731976154190523903609270102995085097814484507402212241304889512215898914786867405224975055565459041795747319591952676754101023102117980819189842546973999209691956080165139070851693143570251648837840445737097382346708774469655401125134583076503557680731340712944701402595872214527987085063777904970776357312956046407599240893382287186314962751440194975232376563852419347636626231290109666209950002443927889168197944800766703474203935810461707617407361656684237913839095466970563520386499208443505149057632938613887689958957582521716115188327026541937260146294976391008099867924711925474428189912657758392718554347885809360769239998739111825203263057576399299440240370625512242605795863870140159991898950931986208449887857255387437306989957846809578525192124215774145258006470756549518274618597251691120071426178410948531871540616679150617258021947326915765027794014934038280344103046730958509062226426732764550958430040419655334298818711043088836993477649006646114495608187577499850549680126146126569248668295060040181230405588456803016342068332559326222834253437619679273471340677104811233944806166067958130715613727137464725008911505804179805579789279215500438923028091222938433349349331557778230265729372678282492066903870637202033606313253463880607679227732319376983444430000270313617400114822752690447095793738803410580073696054237818751720965995268604739039445978135425969817634990954811976213393845805954029283186338179776899145978866356006688753946901915431426936025499238753438370591260727086423361326771663939808287802116606782806043903052341361428310326318495898122838278430989155402323789555477638568484886716621909900672713258223282663052612367875563279616258608255726257509946045263726805551766605281634997818641391753506367684504416693464667572997473353304231751567820179784926120332470192419990559329393667999652549553024380483106604002192519311012374763037288040089974575435325806829595033222719215983308298388855866674241412213720265075791508911266269831369897689472477568959735919642978515445907735641093953891488550121943822041063869811586938536682533530099578428240185466631508525753089849936579347810623589788264166399844852189387395626918957856778767438241759818592825799192589904965922586440714893506147089294890340165268122742605909414242408504056317661198369803961007238488369329435428881303342624774547827536190855180686597052665058796009777346599345861646110183550835621937950822260622591485279295437057779401176329836069758409722770779979982958500928232533524662284113540545670250579016959227244378769153493105810947132664110526544802572024460804781188179926417231763188357742535499792674609212040086645008690923014771235104240942512570042620153294144135883458688630285076779260651303843801021175951374927326867329105559459364439966590294619752343904720199533315364365298454657479948271789399144639817425006828376386483854837603327681910549592140013139985867139437309973863104952020920852021361702644056601782735677989338053768677661114734558280146880733691851380230126416016240624388828971484952162113691636805282162067943913601450071412746602627643553122034258135268830470393403049400829050284097269438339214035404173719689319812746495023412451365439232485465599531980268152542171726929262594843613740034195423466728609369758886851735178148140105866421042530777226476637381855250097303547880917551000543244014938315877340939269296212777164537476865424450553213056996446540724970401917654234248643861949261478644213287575677821381125995312045798878638852714631211388240568917863880907339384024904900373002529896000494321770493187648823483434082511332607172691992835029629913913740799529612958192680225008403587381308765941801517811263741997840829423697960530052943130584782526020364837678924734726496895628911944365014243893359838625966214414147121522593123215056054709869381626438899139406166538319526941333777688666095847198012006982450005359582092419285609304439231224430450589834290745520220759924513577799158833626542798306607664662466514327751569693774120486043278416661898029225262770691271101162126905455824646504529436188752491876044214886525159343876553836177748396526160542497167559488336777534822044122885273481652202602888890908359952835064410674468317423106252435282005120230765054343722876616118474707982930659857202808962579611431318541464445000377324932745248322893526965866582369509119264974164188157334707644268232091522105144331016889068427750315494680830273596082235234503775970811023273079713550904185802271275585304600278795247897261186430157929722416124125614538909541083757393565230369688445812655289040688971162471839477721626993542410535503440926875085543461345053591679758618384499108166494688022912267675412994723614512050510163852463903769290635593427271422555527138092578494182165850198725956130676167925492049474136840899322475054516441758059270491083055659857982294731855176801044509140037485611324232338848938113186200465493246870291138857337023939482352581652146294663823116998089982441725720054702094061296761791305350890253063082419267531215992751705509416375479279619031946868487279992219897469430620294302036761246865880934340431062827162335601481558036588549288634191787298993842788797221414540998404266419392059438975043604784658942947834153279749048156939178444355338245099868258792782931876437166967505475207100821503145467941212527894570661508232111259491238044870796770011779538153232910230628431716297290097165126462947694947977749961513123276467934173725212287157928506142648007571914784111262000937137814284962463690660042762591262232147231525595631631019775843180552267782375594645886083363230761523303233594896577469959791610725275112016822551227151022424787782277329225664789767726884308836362531515854208851486550123318482251053505441732108424687577915175875157336495998767548371320902651852174008466477145861676953665388251903164309879099490845197081206932295110244719301804895547529658238918598858409977221473889671164852621989290666078754686400135071245457605454525456985752891112217584216946070471307761999599743314895350815588536385416711754743713781165911606039411015100599833217914350558347542550011666437930388480484201163007100071912835904597823895180866435791211555338853429063016795550979779109863992150828100664164032180917254005300273235966825310794840908906726251027885029148607938482480284662512630787198597380830502824632422102857894097816827089625089595082463819042890976081111490257580499813368920542976782261885316954109648832689578750566324758179016394854946891409091828066746302871262114803679748216991286119037554340228050267285296404020691860631416079924670637990329931524844008696047221154942413328600518068167578473608911743006472670496981330429131757513818227871124006910213169416930087647931477028396865673974323655318784757409283021739681658049709182315962596141917190878335857496174389844904608319066560338427714312574820377693919946552876512005619874696551870880377932580186689280721576637009024956806390565663029341902023001654939529209166346541674148966058511700703762476084671037085420539580065832535080728671503954964570316978913493025588557450028076281211131190709487755404251142340080447896184395200235962091540361118576120403154705167994378650591908044994786828051176288034840249726967065930495759669682250173315880141647002085627456702738399545664191062903965701363441301162812690276921936414032984319355558175255283159177616048461167940610186539288662735136515879969555045313635507392742609358049323554843369099988779174674962517283387013371396795317226458808115159969870267432116937315073298699295775156256512334297330121238267352260616937424115716161018723249415216498278895164880608757396267111583730661640090301296154620494048950365244869035651748370971290722005442418846848002504906486837811498124397358514677140073293360877653591118181259461114603070804436983910750455704095696468741114004822398581400714983881168063720827646405025539326424252808188335297220879139831644343549556162005735838933987657875605588700099774243930630177244664803871258041941911555212752405866088620899376083665969628910213015902385164220621339804053252335896318033993312334588811297624862063808087693866498822477816371859754235026445359329338332932670244338938119762492408883222052079015795795523861524887088876703576314948847322150055314006389500361533748448196888389714669693551548259807633992239233065337806501553313694762784588605165501111556151099224451933095002833246861450039110453814201535048504632463023917418576247947059532952029609803900835919050721812981352882289361474388014414541216348511812065085563596577494988176252641091325651432492175743545686576880142232030962980633621735566844089836182001411870902950908039952111305729952797085417851202508838685572864230128973263314944172773484568777290285805693923091056435610032559862774650440444205260398707218685965194883360835649499839304433462504557641385375994812940672446926155988089331176824375156870581340231725236207892078572321838748573921027301084044986199854248230526422244269608447657558341171140844788251796025524735509532015626564303901026736848907681870498176787676160622983940933129234372762411354192269869351537267962142737753317602605947369693887394977593418257859732950399573417962587081455416223846944780653616058563166971124619328588952722624488507545018538095244724833760818067819934679051697111384551043437438041401220437601721009571115881383482960908912365424008737942815504916289423427795631601534960496905700706998737977536666526152174603745364713438134772306028539158590122518453405769170819031037468723542059760547643685540591607388998872983631750392799006472855905109369321677504179950510958843989847329304811119736879810898137191561592668454306627052453699598490569088248231858240897744467221823977661684127748277311050932733008802524693871173911314989067853290596930989814132187717335014529134810147657434230408615049872723035519431165824375859227261984375869478484294042008737730797754510990895905982008315115742741740293154422495994788130205291837048126539649235120908517476638564807446528320028907396384946238421838631341683837122086532156392626209628483400150215448630118172417834208218954271740791019284399594164106711858646810629286679445274906973952888216342337219072480032309409548061607594852942497790690733886488059785297292261232487308099231534640968894564649343375201081421336366648320096610779843358082215361740493583041725567045420082063145353568969915796818633554274803113515644922486842857810864814046948872143658438354099055068155199555242272857445409924332343272826556627147490008611604938001927143894704583765319409432207297454524616627143158011314914090202162517878128353615790295729056376158437969022202042832918951461538211052338028371751640227219295031287875762957063246653391457144777281522861901757309006643289149416491649324698929294602832822910510690039251671001517875573050655349046774967674236719782505722607791951362592034171413787342994116990108250569908527782654620183454383079305363348709055699046428695465887171156422531724555308662337143052174695275830994374339403151684615203571066337049638445226794165132881876054580995516659855780742857861289737622769879567478829552688341628772128210232115314064822714305106321292496575435407621308452437474440314684402426502967655968559093483243593155792501914531575092478338270670862798710260978525996145272369790046982225105390914736582226856890272706742406803692575368375144800894659460384391294552991533684828984757503475134589780606451299253066101633503129463883350990274007896444542122770393350867504888451265233266172673716393035428149511056590508342743742552813496408253847078810083008112217090257517687032086066805181491041756542382255718511746119188344755087614887248407884637793352689292218631928935040511595771792082300863740658719838825444081106235974546578780884998815444004715085009373248294965328980739479226237362462141357090519027154441810183062133020484159359660018048852712351008690987238717144310309174916855400630248116314685986964723596551611755749402864516506428788794472652968813932594392239791516720910081608215034843312447552512323090425103699042332745927633564978016009001010024565872398491722166576580388481636008217078719318081263067086653868054916287763223966739217269783510517987010645381694132076078082732353075017979682176735965479376345079949624725825988177651255363083999826725207525707533991400710251137663833189610037039320743377628171970460153596635514182037536230915846810374277309471515189588026948169306040521676197849583675373057581279945358759713192083251265552784017913116972417220422095597295373422280006286680932336025215461693309759471057429753162291496340521916413390178505990971996124734811981951887098081298740445273176780961410961453284221186590040133610070715907563747932890986862355194657941046449603548853538522325466715368389431748126621501614596719743812621260076948268421820714025051132633840349328291136682845083423884501885885097943822311845484441874826361447454931348426677425254396158808351747991786124782066574726485768441633328757003382044037346438701577650864350261202304178027636507212191337762855724754042225201388004081218580720345274945275774339273703307831110177633986297581687545788809637429458116771702102804331098308784252658034430792710969940492917976873405403808406817199031948792376485695068483932863996821612402503774058373023763227974644349800933748654881879091298502955571000727743377051469798261996883274953374404168617803662245848911987670892785670127947604841326923790914994958184108733408048238799540298272728934336050776668952125743903312230819459810777285916449506894406795314455097284057299450927693977730807098579772677504153975938890730333054209120555902466084801893151902355457103431416611485514088190079780298784959551703531647370001070396073345927057493612557950958483764623218613634211602555575586474419352824958171349842203059513361591140338103001806496232283353047969390223691062065004717648240166697211481882427066583449484506371462778280867480120317069087501612458638863028674552026790839982547265914047611510996654232668101844732147590631140979308989705492213186689010813282175816366611494500378738278600218402814974292171242233744493043466869612155857061122916296615676259044939383963502499059584406254602907933220434386089689612792716527131833619538635201695927612602014090362667975387057500971706707218112758201599215676261018427006716366822091861439121782683314716407635054017290963923038854412551105766382912355686507814077056978077438592470025479631105939619449265977355481705022084765523602019509153848718548829453517629375283326944469225273215874250102867178501367199893938762490764234473582608147272236902269173896861372577241254205321817631999353983227947571249448657966538785717313577869158963033672025352231704371085049470493416127506391594841285243163138847190022124483135747894958338101649530673469185922116668914223757202157866030428213675906380538589799829412219095766399784196406669191307576523690387120108674761151623777232568769692877901300036243031071294218128164382933440436531729381252082516377756964328312092914757883426430963487481231058169489230072876910470969167377628317860553824341178346182308129296634774606104194694532052709051259095619202650232133090991155364545623912789990352037440564247512264147137751083291874420467740079336972869787703969787496267412480980194038394397889166996338188192199464595804360829084951809468995895064183270631143838842470690986308334046708921712132069381465611507639606097958035007357044987415897059854132313288149122431186273977589858585456988463712596467588882847233674863298603403915998167031991690961857906687187427592874587315511813976175902317534101249035592649662892918888263442396427787941345453639793201835532738438106884816371680470823079152251104306529977701337721323959519147678117408607441385513769758221322960639943961260764537731088959355696191266218912206371353231779684144063466052099872511821242585102651818453603290022607850556614567448766564419203117120208582222473614401859309327328266095107133461259966176909341797855459313757819867807800222113768203468277578040195762601568323852957716049846515162391559795458514759325127452752997342747660076716700374931780780397538660837168420211025426960758839843252451405557557907500033910800635268829075993425980627960855363955894907024914156473939566423915951223564448371852983524268320326032541490351206098223765966592099042038822935337196381659876952571646645246593805760116369897485224372199308705091690898590612224151592599454712966452846492876816573131101688899241302829253465727174876322499145389799580979365862535295897915124467747542553235969252921453679327248965438626045603786987671910592906146804900964032656645550249322765531501349507377600048704980220061409463033770500109817732399701486339943553431670151755599131248192184032285565943451773217488487941714683657995229745051855576961636489014456708783710955847686359200382638112178403356414219086347168502422731491136412130174140201550223679328303163951370833215453768813921272584051185436374466342253163431818815306067811260523530618186549970827969426267359861944583738235080166280152635087261757360115036631407080360442571184888675034035217793077714797384093356763670363987912138903537523232030935464711799988224052409042023001384917811240234493760164080795038574367635392988193674070001533471419026229960094950229838246831532605472749357158008455319374779480662514359571196302900886816114834197343066725117018623032511379083583786785895487065614206922901888304889692056188725315489410973653423503938046023121302279291007274827748653761098371636250954775208638300300051669342500696915266890778095794150449466916585984629703850772227520645173626274618847331054246771538431937064939766054299830281418931517480218628590898604390827623521719358779450979685425292263927067890403951361995889527011407864720437226730346975816724800987723335021685345596003374495049350928924659348444072078445703306734067654859975057391447607722557358701632996075039493502067581303039946432440218494681773874335147127263842805634963691187428592890330753830752778979758364714002118320180128998927165805730887692761296970116772264027608789717388913066120504126550006349834346921846588996998827519966142490620067090890443715637086956736595358429653673919145439168870115461941871034005371827207796516099777435642065468648349753806444914032057821136658853354664219707164365604197702015356931303373351210860656952168756844974597067486532754961129073647465589767210395095792808424394962571804715250480736502239205305758050585576544895828905361552145846698680424012866278446639678266239897026200116018461071000753527464841607096133594663387473204528753261307172946917482435732295171100507223174446453429471245266821215244820404719213750547895662537444347831189122552767999260977946750770534383665772923555055699154845624305227594796703995258599905665627764113651065155178046922613375463534630505638617549378864429419529700402292201704903616931863952596125898139608264363126103773309748043351215545152356793189766789885411464798824038258789404413606931582750037531358444140609275231610579369791969939149345166745624113669392391235992570326099410345812308941687441045180422818175014544677709565987139378273013060671644702524973117574635457968018681223148580045235619784051852179662047112614338388006726738324035024657571940664082801146532496880189257461443081202783644083774292234653721572906092164717325791579940220134718685054803493785775281496006603954147634561224841397896335538184268033688344589696169537234759988240412825265918721320339581021353011475899292867684131407747875029833506760745425421937997476311815580593713303566410815292064296794822108232038879741545630342510350651178814467726748239161458193020430923092174820751178697742587161303104766175721640280332544995052207096634415368619244738008592307187856876359437508194690035171448063714255088235397417734382223468230302943512450766746195347081022428304789699040824064551379990188740942633756363917657659998738649071202513312928544566443099118315273928831324354782344059649795078064169740472218309994092125273167058086088867639824012363484370946900729899355490092045388871460238639497861881217570523225833989910684346970429171643683984829464273738834870578006141841356533746558834828992880560302179717288876366463854521532241603532450980296372800062008207505155858963510689487401935751078123007542564002332106051782645432636922834953201857289402951837864113178919696736827966221655173810267605300660518807786892515506996648476222078465373915346913804562163123608666195561332945744855172452080377727455004049104885737776196835246212792140345105437521317289377813524096438515607106551028552462518429181799689686360913011760367677593780258469952636572020618294572436656485728845919673959495463414107701532477341038449867797047697277884421431297059316430961165546535623351412299058722557963480848505028050426213748918265531381590878684844664871522886346406662666680836271642085174089814128011926170814965100496761450347188039875337412499754156703266530117953234371905397128466119064548721423157981274558049085526384771763304295456601609270229051309968319303476950526604843438930417034987782525888969768673472684197201731843962355087332932753567407612415564693040106138647019398791596929489444871183114450994895725077923724518353378458609318262918614901600736803700270916761103908818840392186691703776860120166357448608654980069620063569211525846981353852247389905823186295560046845996713994607165602226297638087366128172951457838777695405649170706877400487810160811140001312429238549583533171769530108096232888274236871925011877215863249332146630998832342399628651158268372990949394194955772825024176869818481774996789135560865390195803216399252273522540968154475032173231183522652790987598823858543033363789407525086604522634159172430324345113871147605184047171124914484081918763305323393005268749834567103944928463386236946942810383118254989489145400988671509614347404620405113675355339110238571172217787146482860484233996212008309242569851096929873997261204313613362171626255450919963452911328263793100652077242821619603635466066286894935741261808275936649850239845054030891637044624652923665380899116547869274118462159571712261238100600814752206929970456343394960513671314918192960645815675523595319894010623591267488225401167594700362182673618206103090201567897492501357056273287686551468185448010290933701137371549071845932515289526415189364544626752912418337870689554992821167459193687835362578859041597358351430112352373430816206881680407074183082375725036353898603344119701738592918297345524744341524475694577293223645684181330528792421562775523706719922682236433370698300508927426014276298825555467897345343929895906349291185564718480398822135060131970838208056511031622790069714313420878157509715753731694997151776586987704985786899478706346214904799042556062280202816728782112030598066927899996153954357143853383106760297719956496598138025599124968826889588829978556444716327883624233311687302738733555925233748000240321677780762736820393403553899654263247713404900231541334457527601060703018582563815548087403270390787251207784214230930076633981782002494610697163680955855477539225768543905412281592632548645007800134563562325742713781996133079847842389324597301311093695190541261177294246309163710602838248919571060432272086805200148493791543337378660438859639961820283424377396390978885355852038645874607974121114669850495784018287590671426054373991617581741784915284070847585648231913663542097086076041234921366635933538299498369165714629437427083629288309350839908513854815470544035061759589875646440439065175339946405054574611595057216919274638848962899671563836652163323362431528363027427260736314285471706555979581555071040398830620169889443967196337308900261870322539082574125231433257553422611423038547447996001523745643490330483498748481172662221146891292830658534199227791253097071984199845130282010403506841794426444006818051645060673819628045396152727876442908829673365077697547986225795341792293543946535897990983182749265520209391626577209323342097147078686317196483941724599721666293624398882409943878839427362982366045622354195875814811337515022994484777581845366049606410034536850562398959621004870681734658978224139628420840149744902023712052822761488197609538848480618630824138727926044162364942867715914637038512372202707404627824837970048096445877456541651385336825512736530568434599489440577915173750073096774503622932312059085538823438242467845465335963835994437768703874097122221138087892123913504520059340168869260951983578494889291281565461627975320743195467600667016447535520392026543995489546474580218380155018484038762081564057422824553339041723478756211511173799037410806364942786657420878813525790993355864522046346239687594314967696074471704664770139236811507161321998671636638047117289468031529895593847358518069861367050110960430603539914951628236079950532003051119224804167687232919018984843517970208279144824846273197047083300680197996765531624680546777164047034555911780293353511481504411542789485687934468267739929017690870334369848791978940374639330412639518708520586270782497789348284312222569876455884843780902575937464302950992842998350654276369454688974379020187927213265899205609042755324866950614389989327152854203724489526932289637428260289226997520719420799296845893620767886863166177903178755076743517069511083591838422921275037406149354722352044087608403932754337673393389843610259520152491670360974202655703372325144445036136840908993509751358365965440432477755497476581838136963663847183728942587754497232756741072200726434644169319914038044358934129596303004823299072815392787084458715503946855130014921111317977715746520189615640805322206188306321455863794752785167075089855805494281909023592491502690621552550836988126756459247998516717848397955702505933890217956094700656415582452223599502360861659069017421290126414507426034117556701534497992872061052391991334332909331756125306832991574168408670623164880331663408431849506401582236068441934499454475777519669000711808936916795688942551500796059822118947861948044593572969260551171543104842815489615161903689451189621585782341192281707472730340364590104409434658336451835031442220204113844617303984840014807528093725740888596225488301256344746807924995360777239757919550570145165172715404319885829322565509894222649361774909651360901683157048458807023660170680932789338748294501936563551546099557963288074961370867728474946101693098422289461892429684347468576802388403793502153636461996264558830667457900128696641034376251908791800812304471942408141696275338368611822212332173097418251793870988628502455340322051794714924914461988751339789901760193702976488305303995450146233257354614743964857037038876497888713900956297341967811984780162018965618004090334970598386987811525061755430430494834638148478586450911873903524478916164620846302521603944913080542278070862085053967870756837865126790438141542215413522060596080217171932553504750741024580634298570581689224378558490845251180313753530729656933634398175540219269785609439474769083065239167703091144731018777073477594722283634762688061522779644565339334338553658841712119756499833723088005537940836266246288776440829651221945124511053600463086221575471274721909330460112157110724070401518314513432922685616952560304028649053870452980001042043574274042505607202270843155327157766776890957881435812545212337820055904593087285308148044674948330502081299057696111686287810374532838192011464987964132726319945103170126378602061280207466844456957197687864052286506035498859938459752528574850134715110356672020276123574681160405150224475244978920018233610024120519056473845739032638006691759958268386656126405784808866756239127146771291371111734377450369445620943615898269198945696067927816658133669879671881623861852216197951693002885730814258554622343507238288181733636225015430357891982092042825147888271752557569373691721149665608463341874502177209986476267129047838039931058575174728439752867186246248174680080899494006792522655933353906871814169648027498784729021623733168618364770323747585877476544125565434071081674493147072621552082008591632497426458997041334476330009626379930104480653478899886889218953671366672412224830989809597310352388847816886787705920755970320762998161495255296673410544619882731792469665499701887766775548022387642221585514799113099402483330347666771563076492884149691527291206896079611488704126087890193667915001429061402447580437109905025881311997931045529027283416292779529674041962179113878057328087609020783213138045843322854115337242159646854888928584669156354204498326697683524050965760062255380582785352283345437739275529127953217267816551039012016544067609240211469495858879593137645578812240529462092888184903254221183568477569153257396653264449428826468053295015894226908811311523853941632529647481075159269830198169531250281813542898508797741257963972165882944641285044257870007636863142943084330621446053729824057884344644264321736626345717916150954828791183880839210888030163578262327831394129198351212765555184397882575610166305923834211054818018574724908562173247992693289158241971760816899666319955977944715085269077845534497473723270368154391929647321058000883710829104855018911706537112863549707118614311124901636725077216862861394167389205888965616020559608903588179324676876262697462236459404341516137639362237527974162450644708153655108006329497524022869088335760904356307518352350810043287208578606608564272415643813024236079226482373850955485082589763213146963186252958643112938710790037794250768646977329815723052465153718624253998507205244238304685110899930987999476554111475667552903171172618474693886280973182966853983135878822093380662523675746035184885820900549586515936129371822983341088174737963819014272047213315967769528868094484257372539943261935090667462930744201269185063024789979117185794869582933161717675463409887955678726807212441077530540415901193738243423442959006065254953393924201768393593780880654750674442335883974611909830102498727316719479084765189775024628651758089362527849483734871643284972738414444677705787840565705045924526208483850299691474989435459492465394450064671120732294301351441512552827647082924901282683735343898250783520248713961829146238143823937099273944186301117338789818105516573497483988788858257107179585226606659363539345699078070699336348009001695952830733442238657013777454639336704624956879742672973626362353835147680094442701878179922625281585352419137122677416945994080628885309963880052748505664353625252556876653424747095352901700857626004533246224929872718727423662145343307651360412900603324196662043977929687920717856522382513264273123139499066444364515158140972670339638838098189375281430574198705514840060832858322223919630078855726580611727675227598207630606101563375907673298022391091875185807923675508895948305670832994340469832775409420736734163110836712044870566949923502617020250359802542535595498045655867544395280339372060985320440541635705096988956007564583134642860745526345562464525320769153706011971450145046195898903699129451610164822079457360778025690314376704876772800391376964891651425828734902921757425369197657738554477412803627966343548799497174197682972415966803394305586238638126547871433094332395579941475935116870580403970564428203905768458274568891254040761447453351022314359692984276944888845578451274099861095944982372579295822891492397379656671865702030922743580822936899015581339799389648504147590035927688536849859057900118532885290147187093044667042168729926919330103817990690312472959345384493675332746304485585819249820985815902443328718260726965693902860087029798821631106798219668467515957584117664362695219586220961428850980163961307037950708531625048718471600764762166312476413856944492419783244747497715701576979821748717554347382811718483784080447051435065953876031533800248124443886133550436297265032973838460454430754142639294894279168103761529322954695393666490003721898656629198009400508869046300452003046806491454875830317357600278131774337728201822561951588993538386742635214791848300188011529175286570040579617115913284538378478403043151679325032447146831663941955623425608002913144194509541909210654754728996248346251728563193483573432483650190129215958353371395921888167152539536091788439862343209972399171706782328333413412168188762675285365528434223458217704077042266016602062693694686723895800544232377194010596956610462540873975399832309658401551272076836122345479917181057254644544404321758561923248722003025363266281618538397554651780571413357589069138897983137536583945335550169469597162073552128236536499355569076617630746889009907626259202917390308419908915314564852511358703144893866554396058133592321086418070463432736182957015215247311817646116675602005659888277546168847511844565854597710925413609082616709675605807187040257425345208740384185466423056801384975325859986076756635110072126049716189122695422829542377799661744455885935857993549339030343286803418595161209488432301288518117211381083591772086387153160559051977044946242096830213000152659525892647061943150677524594874562295130938074246124699228679620117804581255372694656776288999913456817663512366885403243163804153700009724882513423656719175059454204279305878292075861542370180480861176804697003158599021778452729090459749070819544511943944378853847888414592153618818392608923066443787989962413095332352770011970655027671947325769564271689270286138047830060448823016885562372466063729519129808173217701548203359179541959329608782111262160718607025696633990168239970299155205288607354229881043466488597538809198190727115774929020912272873311314663308769950116184810679304077283088387666631720349622802481636912261332383325994341626733805471747354551651103093039340221905997066458382874640755804025933511999555221953553991016135982316715404672923263420448847444085783230929472481701275826135900884385498735774000771123962360523682835490843874232188114772210586263057500952697246894170949579812183356504190123193244571623078341624276078175539728883956448703473136813027375956143449765227899049512075144208982972110851572801450069324566660225486586507370187209494496525812759000636877958430470966229150115343385403057893225039441148697374223243606096165410648716436814573866891294825548220431657458025458564948902369925560314167563323187538791143646251384476978098442471341560442572578607928392215661494675670671820811484106758581800758660082968016262149580504062730830653603993430815057042245048916699521578014221179603683031324712017050576634751353713746835913886120013746017360201376712879590359628134457293341643895533521521072266241154867668084707312385571115897582269092290932676573713061232785957722740685808173823224832952615647755052007716245636706848366816051364518624026156877525825407158751640202114993465270689856194552344096448685350705905795002658948004091059163113828314215542370074281154984709411558884220052542432054767656739786999057253808573330966525509224609613919667707568167892208396022638499743636197398271813551985372046394838711405115833368211715335866824981206287787146285573576596648391523099351728655349614019397171221249590028771367772026766909638352984437410534282698725182842319947628994939417811734668597556060561120311844892897834802190098245758930018109754645061741648969182927870017232330791968458559521339780525225175338184178611499828053779894623227169003056861036097286350570066579526228608232040129147938191031882176959408965538282685379632562333691797477828054287199414106583622306249771746639628423078230231486064902855033759687060252797065134956782001948405261523642857186585078758400654884759814666772766345155718565200984957346478354719386125369242551121838240269975220394661422253931585976441351249446994252612162455498706495711839949814546935732164921673965042836839954592281388451316339819513208566334924120695960338963871667303032818500659422473772567431546971002979354149063920840224702482203666558893865855743546300210796103635331047993496926171712071943096711339869483035194494612394130203319471470066086457286880456001607902760089808093244995772664278674731336518496212780940817601523043424572447508106537777517380833561731703245066755500220721546635617260365746353103757558484619785208797516805811469764375280982506711850979931623067312175483496286777146405619957891447933227160716883065707020343196872798442432710096964175287928992455571785806868024841633717142296029673015545632329847248867565147852902664401847376649864485756890822178685629933070867616001914866083180048287431086936065566944287176810003729305061791850911945162622159341409736059192260358822920938579578998074165120189965653905333441568699146799771266870255763030850360211791822859485119556520222872194505359694635087895487935106185857494724586522142046489082102667361837492031937088527223866472526692645914323166754215285818121803762529553720755468073964616008960488656768714500780324379437219755187311812664608550861667849974236825324965619491787914547544674550654739092984492502736947268842577186066984529400665107383337886068422270046233381584297576404931440812241983874087043363024684010601425222058026662657677793997802991508853701134627426928259440327038915088820813510981310287493214949501075572912242402798261714882036485283926925309550435298401408400252359372787130765556800828840582401237590772521581457110287796921170588871219468643891639705529417751847533947276653029646567933750956187723048000850096011560131923363853911870837224676675190183080394363456287950729317645220563713756969541861947057450748555526945254448238040547666569428145470138558173041368652391722737903784669632116274409103007938520378695243874728170154361429280253858540897149502877108407162140889017272601992544870557800730439350556189197301412921785121228354354967101037920635801715413746172204054332288381733014088327331040258691278130022555030976875806593804375418199075855484352397076896737118170888283029257138717593562899670279435390770863466829584846420423730754804701872416709121679719411184255215690464844563968853242380213373158309112582103127624700527155592667083959091490066812615567124813499313029744933131614424664494386734203260814205001879252808176572901352294018294745805272091756074633646021700683757342419753659444644792898516983512741324861876148226787588320939280239364815131811797627564668999223504971101405196886377104944581090222293916536485254719488268241574007962768075690161285843806432034516681721533068206360538849137770655426521726690139390263043286229341472263790216911722116755018999901095762342415160675420543441926661132627831544720125900235242121616054282371336839836280143888835312042716727475234228638864871187781629472294620854702379651174433033940637789857017279908322779960630759532092781986832836452156360025369782790926571794553880481406129481943509995688503791023817964715479626977073277161774153547887196607330348106813768875356243435371673513922532805665618694550968453600950774345828732013994994698081607098149314103792626895611232898171456783786148813432490664683978078247931988474346582051026527919151975499130809075658477226392368142381106384934645461712741248303268688543687047984771316215732527069690014343440009875510275275452969011259714114060457040004924315849004585334563717290992804456777610719113966582241011002434992751236691489507484793744448559173797543662454704512505782786800189778444654880038035759199548182248366788779788670722390256242750844068711361079778706389291069502160174452767617372667118129828463904201222768555733300518662231654147633448096967282060832973944253206061078311824786554674202065553996627022507755313682686985183296523682716262779981494013699633036663129397516623231880768796411406257222368581996459366181820494610732434043786188741323305881008568199422429280621632853996026848848452633316205924111743233295494889525328541325285275256371414958486786489560821899206374423391386192600319757501772079515746602874077544944300294743724620351668751017529092882088411880661217231088696832130742497857388570228997946011291563694020313438363930309740786355684661256978476605379826778456314437576399029403014132235775467129122914154611402971347516131944956701985788074850128467187088988795627346336444638699014029692853394096966631555050486655883647792157315463983031987607617869205087581347201908270193193058795807596268622474770619150958567738007482661429389331307418950055277685323958906024251990258394059775974271781341643687605535607568228802643230541959304314683206380052670111498116593053946993632524830844102014922143966524263603270283525386863928714152923454345195684321781520584863122213747600700179369492319463851621602786985633379639293563879328169062002099870425378568468231203229405350440393412954103293620967308429713891868777734259761867595065758756969184094580501447008718725705762954422094680944861780794934015006533496176328770099664770423739530495322447708265990587530076421978300496400267382370929247394734603057752235424064038245874808010839083951123835226084944158068827209239257287703951558741511582150985185125328293333395532016307533387176978023636863171856429040806253783579585758805523734345612253129054633196411314555544427306368424983698313609587872000723925694373440870499136975631539085053220921046481159578290954805682490317182290451510789915766316047031228299276171020857302080951347094465189724277832638241193000768262419376467330688267037166511751051661923956739651139898185282193689804228434097539641522767908908417108892924829997748810180044297574917150905449818845734149148997678813152164507029218617641449348625948981680267057107195159206719373686901544753690075362220591079753827260871615694595614761841542423244109684354827607325515474424754647255250373952601965224004972073605347723164535537617079258595864179848346452290848731298567522104241853744760171863713006949812705015119357012503254145922401136115211311175153015660669071574385878927564242022584409523837936683826297224963844593889316906852671428262227672488435374590816555876482007436001177814292963807353362922340227101373549189061765973124757255772581534299640502287472533768752009107838089425004970712408229059152950927334864216145061900039606147112341142250189674919410640595765220839902041514702298333806658650653057274441532891358818983626813569471710522043624279866536394706165168920988372756057473628159651418662596879164387803982655637229327866576503098547851368339991132517505397002787784077844983863212842503869276265995998970058677733643180253263902691465859690623319222676120737738366279903830802151729103900419187323065447486036118375587182438206879165600681522652892419224900438759902512425159663836879077933357417214164572992619789281604827205033630499096700546910026228145163974611593514086359859548548623261815736831070717809673491033558490035873461701234536223787230069345684314890913594964728816098041447304116563596222576440716497540446326529384439246978731947732796198690327255470292731547561815373688793156598229326727447522822634290632970878681590757066806473805462080430891442555148347327204837204830400236855445929959566117570031404334419219394367020535879531187368854045424963617563833757256448469742246579588402719711409051629770084357561826521208727456888347325207524315106362107758075616847636772959175152205858667210442754610880483171988282000182358073861230719967468454413636349469605855735688393580093996235046999955973350185623083821373516134949238074761728422124748174153312112085211014664771371710524968104478964091742446209119975677190287304446424981311252043189227135472842293811222218726854741255558353079584599381158016438123455331678618636242081179739657890646027473226831323051974676949023518869719205605293410961905236502646925638106106932766934612067598451419863274179415360522839491742762594167140252359474902943996535022392209690110161424349372190232655552941828289212248312088115852948543261679059575457125383777223707398290768752931768700308194062497071955454766659636142393326679975397365915392262669621246730808291109685984673275468924056977158479942336394439375045009872118005762400971958737846881253281062178825360495491901447105313566288945845150757630163460038452705616955468116907584401194433257623816791363066024623307096557195410819977549778668387644809119166227029520774691837523461795818236028011812367963998621132604289547465101698230084223178436264136491693116824864818921270525630481734539631401765747208953056991005556366644750868858428281566851220983929370299040867817102335956404044485537692701266158063353986672659406554118931097552174107587831789039834053523471575815426083881007123761744963166392483372196919793560006471338596558207237521494030945662594653114720829924538306850971743390906148596340868630211035514684947693228995523059971269853873900621505485048817362858082312144279537630482057934257495517795309143706713802279721152884092082315336168614803284597988271409068052763117130737596020467173595563717159344017110862354568872315178829770244503168975360331353257924018795683789902524419456617938398665166349142969611828980629064237070717163312502943833603617774033559283257206393763224467216907179109000533706873574880273201782222303743904722899953848454324068426278448938920458436639742049238344471689268034989865645733708485663636845363818460556452193195740393782063717132954850191104170374731869094635928807150664189611824914091379417959966857572500074117404977826097617410096105708867671025611100798134055504332783182034611057629419245674019563732861301120860443461420917504626853837169328306935224113386229599081747473888085314140631341555708854800011493728757863371556446040000528365901940515953426914970376072904188328624227254086883117892096481725929945783935838748809228167531014751129502607051151890335590278495953799135744366072179128704381828526660986708027410526831253357969197506112395424371726919425707849917186379540684314791443571114134781674674496834289646330639345437717794511800179324678300548622761973996381739383685665040563971923726642919391127953093755550093938281826594513886521005684852288609544215638837855746987078197056291854671273023718847857105955466030994405386150756957690814940751330171387670957384792632992537134584630898167914694568414746011577251175531083226904849500170270934892907598265540794941353263900924479238089864638946532712586504649244359278633849189275225992745399279230810810426067094192855441816590444777435554976087350263283625149430107065996224490931942781093888849460217694392636359152425139842521372977846921260476018319986875404530853561550289278203701682316190987493232264495822991982046583596615278849701763344897133081713372042402749751676702499681194047952399045672142659605753894378329188371264111651261608347415001983297462035374045027054587536834139168637961843835005431574809272776018802905147684378574331424805747080694313695527992835814369320614796005091171268667825887925459204937509749249148537003957614479708660032044212631582211359198369714051258433178608931756513463567081468569731437016995529293813421098022107073231391323120342185111467949464973861809356076765521136943619795517283538110945436010670194498649837405673695472644247387167120239131652315346482980639952880820655760529677758170725294536801700716966084151136452588150018524338969636989285302973041977128563562271240970483794227774635991957622929412194082479926505229168372167346661917024602217175901407081919799656574605873242942555424261463726490480380747928373959408900579714632089864003426460748639302941719840556951391247679323592373409440988878020355834874603338630478107985687322621234044887207598366240598277585275522488465322524350650884398560824213878570670423921473202685125798165561907163482917598841991365917859471350480096395500110876886875005684936632026233926109726461079395110972631115728433255072158827752312937577134540656035176945900369131104433540626416193078391061945437395048693643651881645943678164089140076422768212525807623257875720319146866311145581111667466768996581695239301742681117527653585106931053904132266332162176803801535890133997618167161094699341536544232392639100241491997849956423367413851123307052298721794528216178312391465221706371948031856217660932455461396245654409907879025903046872037488332816949157139803674067728900214474116447848228108879809973810588068747155981316686555058391711566068123793298428904228935796583601846197028406156713323425830385568320649632617648887285827638406690412871609709559332972408948972645799984150547612717219460597336083071187380279303777724638570741555859378935905008507206396037451459369161657472417995682003770563315769153886242240633401694166479133615146898985343269781287267209204127881371241015121406448749030780144122997863498011610509562524426044283145271100558685474235493106749843416963536750763807137101298985625213970281811160879496126771191175878847792812898770503623281648660235609395615552210825218202316136744682164148531200953065821885343675818826949744484368078491782399168661119198229910355386953227160827623668656205212144161381543320555835893191223055460093497940274448782582323830573650702049538107452736312467401247581446869638719967225424816172707634229657969195349320651941311193382855239659504689303438159102972169918835354440280355061906093830253245295350975921146208473628432150510557077631855959746016411387825564234409787550917368234670007090739645828557785851569747964231759577753887315112338950950334001447235053025809020272758165464776076101906540353241042866408014705126221438360073501385971936191640713543563343871895779567663642395544957956754477802976478944599650186931926537825551288407751051939539031414126058274685663723003435675908967672046508686708428109748406167941120363749185397017733508794942728879505323756188147286403628957500569594953730339058454425414593139433597332115263876896299657004772753730103573873822483862219198771518618801942318592317036278337466260772717143466432105995244645786914072660830028983449307447605894947572269673978590225917370835580777432702945456658434407176604358668620220465782884269613379355310190557830185642626567695926846310405695850598506670609077790715700614160879872699167201348481197119335510609319395807246170131843161213549832797693464924733527237612894121081028417892515013944565060540609784637045919477412139110923778282311752946827598319201443508824686221439895161247835233195457508747581469218344170007763954876086466767546413810155723228508666220806015617900323772376939883620747323816898853750342933989407435537219542383116693723821813169251005574383307388386938725164139867955307732127866941066217251415838927823878604486012131021081470723555795578264524065655751394000612098612154408112822372665198245854629116035114195733467105038591702288799244301119358561630777844885556297817641617457940182127742909837883150508639689847460430651055704870156994389547520869727671762808549798636476364512284485489292778970560079027918967067852007681551949429475379048505643533181847428444732036102009733694271255067879900445815416340830006377423832147585296385606171829953814110777515498746952447793923966144340942339223923273010445279349177925601698238014963013309217237757780891825867652816744277356254574497460365212578138500236439489994338681298313654003449686325345455389804511619594739720059926684972731825484368203062490785077190430233814235229504095452574021845498825567802337187539690175396211041641144450870112950695918776156191644644912850683508367893900932985424277681891951775735455435746526657706638104997232251556147103681920411938340395374986537631893563480734841830068595636877790125840251844682844118754495585902967197794929608008203907361418215631649942828253922757609577326209300888278763184498903493492964627699505762759392055571882373118196479280402596070244149364029573894926784845775046858463667940608556413543063549315195265408591250637612266213975517352765243871772645167950913501143419573911613955255690070906608191471872180505148213223079629248779993345131287841467561698959750245966729497736845448509072721443575139159548129479180667061433949520127204619399864430341634431512500361468617223325271859640548889424884399965316041945617656134010364167884766308985699290200787750853457250669835686116372561739527508391823709744120432247499954074646344910599246894254860648709379733434527144770841855121966265175289514925359799039670975102303655855125164427894801981500007557729953241659260590740780999548589520792279999984206295702098926929818071072483449190291246532184276651461095828507729443747377728662764167481013790292013609999085776718868031243689714665527900496789795845190945507432952561800381649657458374591700393621664100727149056320292278670071195020764838704470528167042193194140340621755521392337284818201997147316641001099051035537593692577730174504028700648566632252092026696642299634390129898644391399581411481422263682555040819444543184298909625779008075309177578461380000431439057165591225662437364178621186308978139894765286196773017969265006114338967659243032691389526562457974318476174505543260432062435214938340486980423227173020473274225065829843768164158833180861439941910103711881206519048224937398467481625316367259299249517790758763487311184478533372800394939027584608894133051635327945837670078905374413078950591542025025447312074575288038081483868963004213856909606903473081569881097449338893020818173338417715827026190491036843495140752648039647297716432771852604434080292140616715102690467188354916758569318314239696736491377002743805290908503545062753785203774408632189952227123667831430700127802849671170212146767593727066265898013886973733596810770761656870318781198521640399198850721384835361328921502370963889533074553430815811224321205059466817475799263641801035679074729945989861986048507507797626779053607673223778713820067598185068920059668431713247800191949248501426725049436832952888703042353767503311948269334733396084457884796259902654622396583913090696602281751388562360832762252084628316764370003004774644025435188839615075884004211027502970727894558769570114223086521278809720364451709714039301939956877145415343370258131856204127566189822228634536626391034679352338642501844740452040895487279123710181542229258861745844113397186032534534030808526666388856191243494245818227107979626415533416824983931035673938067186394680737118074489755327146330590991258246733339626723340153485202393345141601370649068618251722492057044856078190745981151823185143282964193777161081769247664715262514221687364916057994411541493524184097177979864517985118647939846333982287253970702859601275726349943891776302782209705587644194948821926058134136169180759775979488426018815212985778492646125726662323629675404843978701498985950341900564151262423573132974214952336386610328587786792488470486690273373751741438926691175907972573511426757631501546664569192744532459373788185425882060325343012479165068496428434073590475238583249543473077819820720890647275171472783368936684275876244012101046023504094344268310118444496494836146097566234504723099458629274140393380943707074562103379594107361569164355493184825653917524470918509222942156251647065195004927368749449937692493021642562777383029603426623520470850288314106021281368223384140677235316805687231669264749771382102122019994180654279353656900340298762650042784253659454540977862844136013415697048259489269601239549615729102919712016719644994223562356611181893612839563057730593196744132795409341595575844365086985033794792738305501544560871671580294896683266312503022305511311452137955193449792655164339227567539414526681757611192367506516239106112762875532066865569550459947380294071914048808745715795488080243380816655936522287319967128931950725153717449712410971001906138139297879008533946094283512341490550930007626417419578137945313337388115449922022024464471724696248066702019128661439744361664500578659789580346854710013046931631943094110480021184092314463179053821958392120939203269736345168023191168499100786183655929198639130302379507798263886745321459695674433007837577891585347432483200677126137434069953454922993910750136296247837591857621110748903385752563531789414075888459862779262385444497758148252503677156256665727139439617663139707767916180342298653432791001971496100858291940841896915355618964467954687522191637521644007094103144645120178674813829607432664965389587186202402857741869018517475793377968196830524078280903361277215609926168352422825008301919302524039710893705673615696329585804893694554676107134547467525736152898582218846707166052211693477709329808041198425542263083585197362165085317860650764549057830875527611540776532378270021383751915522485117127716788289708642775434826544151273635368404284385564778514126079076676701573262092188418441642346695920906705392390295423023840156512320431284948747188572140368296883719670232620593261486816485943341245546796171726957370755712879512309315443424456700622619150986777421890551945330810846212511518806894856504933739025985754890057339588527950575368721543992793464994861124572430041613757154539324006319184043527646416215976383879529796112164508700942239879218047164735279475926385321055101382649142202290493173963127708876123109170148935615469022451350298389895376094886826447223028504737177895902434054657969024634603969382442593446242863733144715845913459860687535518229892186200977169741376403547928050361832981075537218491141343994523737647741949276217919183541035529056217526840839204960980896463284314701033339280185410761765957701092650708458290682781528974790362947395705013608072675053256378134853972515749525735145359569736474581380289810903268025764210146054267790359792826633286567523757770544361988405625278156429817019919861858081710312107978974908571370114191394167472554902109374584333290557139140786827845651231775207834154245202076687455486923203455521077397242708335882908274682202954441602152319103091619882940397650029628191789021223198252641316883943465821871733417548172858943262525110713213363037071158287022795584856591337232572711998042782394143083343852279920672137384970371635875308212194987126041875636474659972508447524456726326970275754555141327656818407310346883939419836535128349324932328186310875440322282619922013233048912303283971952870743081601819119992584423407559387116479321671929278807382891035570198793890859713628888200019605572799463397295814155309483450815024455434380457864730863272452087227240766672210456901713700498198523911843781695667091063696332638169489498441301711615134637896823150971510676516585961282259445395444522821398354779675483388973358135738613384394362766451489684691295672644047067675376880059213880093838806656866177608523194452665537649743140370993850018396158784818647838925539067856646160186225211072524450129418182246878303450615801605712463213917893045702217752615741338068637695545938966751219388090227465554255709563619963886192999210405497481125946581641960796254695987815257067145018224535853404038103992155779676557412125156296971558536043942552131937441800222222148750705694958720827546333895930468266929845893704561401878768887628423918266843527691307548667334749117657526318335823630295923670945197445982655470406835957021836554775979118516436786195376119758750108131586833604449836186299552898123070810548741990582266789632705073905643764699632125399657336657894575782165467678953456395598331264815882292113504579348029274532160061128052304841476668366830675305336143238954753885985430040429786584415102309917397660784578506753505755850374965064983872228562016015448792886861707587150387644186907419007555917665880080762308834887500645562845673469243899482698627110758115222128773278552779207478588548418222228592605827142679102905837831521185762266027901974632442346623803607974605510140554879864048557550054933671890689053741361800298998109295075747659832227408631323334482865622929517238396666096543131730845451421364902393387208872931227823017323755951949585129971754302724564435919883745861782445630855963052304475770910582248510863349294413508194675808916892774453601799303241586359323153944807925560473185609921719015098723832723856394829856412907691363324165280343263136103916892043719063021561709142248938360732601418905341992331366990659312538439220762506418745408054934613169882771539389033286906366123532778376469130400068270460287738290622385555676230172238067904307427883197394380847934974750582108536419238638114491481306572217783370557650426715886118099207670187120104308234852515966166553247232795118058532724462377285648793715154047298463568558667486804531173115402075542718450692721888509200668560529920469695488767952837665595615158778438507403048504015096822734519763382641523174958401123588362579297647228042811615577119623665811690147618987251572890294353368876720502963490067906450345970988627084616455093167750214396667343495681175707537994893732499259316207195257432203382223544108392170680224911857915313736150921162132639186632786108553008382058522204531244514308258922304750348076188522360108526875485093259135542877389795206314097593828438545319621413843546014818632522135922878193541871603651432380861905284948011483215710753452454821427747082796478182293192980858701982772338424939927480276402998278092666512715288028095217290386060744705083528893553821901090150189603310628022310436346327664099211190161965634877058308827487749068447533678235580397253082534673060121921353093840374961556466050752944848372021025580990041977641519815038205193334852841202884355530431625218484767720315127219304109798471240432140140586613553732089318740768935217117730476521651765229509609237174628743067939473386299642945612659981096044730610653024970326699924061326963132557867965427036186213014374176498636687038311326981498190074975892759564764400850648192113118969632036530572388439761143211323174934723698498660282632316856235432524985201869700363290107492632714296711579582586899836760698662371199068074194114327016081189427723857142603313875736076464244200867512909791255287580565459494004003176177317767403968698048350997685653453568717522712195268209543079453471749827887169557442431802602078923711112620785954073179071283773146859626762839924840355806481393507093106144761579063775606362973560611449395203143619224754731201948494951766905682654954670285467929522921622509750783520217669983625725413229377063687646708708068647791999963332771423227634910441716021806279310210132897556650120188253833070017407943523054054955890450787508322759332963070879292322372124127001137711655094468408355050914253834502104739535817304926509861449338903974038936142832432519479892193117119646995280612837754364940532032918075822174551256956294703280956191358239438391902454471033788654247432282338531137960934730956530052038919885676413015649728900607655677177813106727190151384634697799095769236008965807411847435189384328254107610882410270877654904871915070467509234180401025802043039823861330729715090810807084367174646404253875823803765367884057797046068256412879230821474187023828263425536350924037132749920368183846075704624697987777751159919114828035339470215565375717820605044850463249844742630487333669095705140273949075704712738971923442749755106178917396848236526585105570295877424498812933307068791163754964935136103561464242377079523142489495481901321762309684464463464144827713003398963626586597262037460161361811397396733311498106826371861702067161661583861173351993373125116954166373968639948734219800491981192545808740190869531743590290184838273008982304755389826455817823773383109002183466825002956028232380726574391730383342285559903268961144581773331496528338444489451106658085208132583240528233530342515623449121064682014666775064912672031060459574329633441468110186931845262855244577614004085190947407663550308437807232113238444954007026771574996748218010913560386916454438090487867006484376197562670582416700608326695793718364251493964014066843593431842901836377137902480080594231371229669013472433046982138773582270064770220901966688427129218966012351813082839776068447055536540361826363813288426813210312359211857791656909771742774136293650794365491201515952246744402583375549696278793385467696451017250420916511916185763314605403576768280007725869616262452415627649573812699182583049274685519111936004444540347290674016882161239121077301042213970490543612757913251948454957265017439186866588845395121114098405006678578574532261573377750478845545991583718029493447479899196540649898707388819696272816164906209899471493636682355198374324321293667677146872173583207640188070354890438932219668205116844184667125940214318203496392095891599753511794033376108588891412710580804002636140661524050951856404440783174192107010140390259321539989422292194878203371896351135240199661990214040772379748080574402642923489194170001509342021618306326997202642802630403595574411728984592419146386252722738664648267440088615565084060526415389446081747855967831935532290141823631304205005755563795472821518502111106829781021776295409417643289176065177828074892142769825821681397209040231864467534085511148997377411846008354714074751120923365419091218070065185065579942676266061721298700808364804858402847230961532155963414934054367054889190640073570840840859394442379651333238216286026693372945322152438742842229466128320590841304520602617121688442158616572394684437437062515817585281992684237296163960317234697816565175683977135407260565572685491375716738651193348958192817150299779938264042537757412543036091090965879301295801506665166972632182055620214493839209164851246407944697954204454167387853268979394060340871960370769186808966181072336972965453694275250082642260724938594835538005202131343279222261843189365268694518559058914888355991205645117729121183406614126963963195132630113608486077229602156628164376961169869616804080435938889229334438463431267615693359828932685975096766211768976853865669760358275388602119510925763353970136903362648400648913788406171372134113107340474790040479127118664887867832042263231704126103587431335079167348583886511448597755977042452522756699340418352976804498464135183095696318562321863920346076193185215746542803035026233028460331586096978726042591624200963592751067378648705473716195739731129097333435238886295084256441300980546569216243841483210834150325098719259128689556087934885543485488317001967119097569315762029426553276463813548481948567951011989887288293051120258739888926022416268182368384479242302328637021618463403767130994305902988840887826340500430209489977111102591275000348443525594095145095226410346943451024961822022405440891406944399329682950531643203680943009304374264729047183800963066014803406867199307245623874096286151811646925528405588698908593887707885962094923673594162760600827895077570357454263572869879769481768859554232393234397680198133049231283144156287678520391487636968583700780052078049299061097760646361028861277761533524921887411153776972658057322065719429506643991255817281591208287628709044002872430412024551250107850286534659307785633631848419823110667717489929909461960026572013353393322527111449376777294079300999220651010378262309353174483498256844772553910991615418338403250900631151883665690484153606887422271554341019680298055008382697453714984379186978366377564871720293333440190955244587635454143707148548160711493513168005682318090802199759284350522687897154933778987697009039693624295473324615907377009575099338593852599092850681191838118490442160815343479355365903066077691242847411315815024974935272402453928713048791348266063990753690642018078171511130853949693511418432538296351833908685979135462086867728814494788389711728211713572612143877023933976111879100546549537088460406193716614582908784967481622573701780585307020014684529686052166184734114017523810584457874395712075802340032406606561767810132903085075509854906242115028246311470536061153628225815440797282352410832961419855751661179768843800246121924570628642634121593268089220002611269431914723519062321679824837420673155405957742452166197126261075125039369265058040845214129790665865600431569227196817447798518658982722456218368805795044254060240926698301488206714721621276615576047902846429530195585951404222059845697434881460081472463517067499079117753063654278546248168320737740954763464992919263401277607937912561640896188052627359566220105039543711964680191126565849668067475911655628173897700191402323723092277548426323476420140545168136811186632914323694158317787717517710007150106193061759399587493238081730825100196790792677778569200656091218977412680940263618205236566864374620603937772981568545264174320099043658081712209651869584395267028408616001457581229056441503398526147524425250456925400361997370224758303191152347326509643930098316161875450623623523253022018084860334196273927975904783012898696234279753845790543322575201402613457830519446859421819202178603577392916006130808273966756873581200194340465407365274598793039368427384916190758103436567752184108373599371327587952202983954550464843240814661041312839692296543530287668260870896584856320764838645775357479629451977826726194375908283193229590296090346437261177877376531814271724368430758039676401167549533462548923790074865345423759545774955399331153554660713640016571453804567205146904130905722498602977106754030400355852226208990545234016661901888742441500240595229195324061640424097440069576004410805328033622433262174012804028446295106193707008251644113312314955140251610505459419648982387478329948565485951849397110286665618741098901789335602707566677241856201029361736553496824382493405972907626633641427102973476423942354283269091268552663004751307724640271983051868078637477093570747358106643018738646738391414882909250337809430239788698289715383784349275773505085034435061489185787148360721295267375975420066795737884992408901470655028062953394248422070426613743166268115687320018474258813858601439749574292407787960302287729990845814178513778966017889438321231887472692648032438726029849514306435606033422589068963336783439220946016284385268071551180666976359920991542384724504735709951917436756441616230630131194783295909143072683700995357765967149843932501434959634505994009615705545402045004261112371832890991535959869395635656168126161232708828200334678194329585231515919469612060435571406221581263377543812570166529721861017213102762192280579533535439657949911183687521537578050287077217731198062538577877307441648339197433506264470561301465686741150466768139806858182034634258346354713912290644790013290126013147053684121525202651700195714099682155621932067078840977322669863312302826049222179953671996278028879024900439763577097189033908264671923694939380534735207960278224913350679526130102590379595822340666083349135352639914061451998768377476981168404105987407422653457436578448107051742607188330861283873911770710986931784011355008618528412897797130883529928064924316383230729490129951690957272052519905612295638525728951520747411640852414325924995784794508691846096712244911642479583807418569584997403152383410022086541099829566342765811145988840783603012199069335382955063234195531458132104476885794290836082195176624340548118645250853610746863934976926506070600526397264258935947834036609234417032950718986493751419592658765467548621757233022972939296233593653512999651008075174775612994037898523184465198506134675638375260614318508370349255926628504509676541925943940274644724714371892574031836953246572775789298761835867584580050490478206679024119030947783870630107432997796740096031078329507686908596450541688093636817826038183331723574946702245217847666987217799541899970289074762683390449545697003955476911552659374989440980966349798838421527420113863671319935270208493770151483429925308868644810102923171098917640209354240695938298843248833729794032127553264440613902261713210528965427142526411110362612602934390440124226105247732647659802726708627836657512785314184340518697613105746529292890405002805999425022134165454126573976561548453751656157200268278268384581567617952611507797813724730817386852378735843369836820762302054079628365896230476005785961960671300196572182478443181648829359292762824135002324645592778991752248067950327634411999525103972758439039399367803255463017941495106657224748057759511066861410348286597323869816246477000192364577511663187914282576486891856229783470097289497148012026768206768136748015861272602750480685471812129297014538444933845242822665636272448518743967859183603310580439358866739853546214200935162520461646202970436883148709188853684767053829099783867280196195796543583400833540318330303077599392970366502176816761929877732795073935584980630355286446303097046975857703289341282597956238968128428964295243515146480834135049217265119329716028325197261216449487544052054665790767930902885387103286483335694532192764296038707994783570484666568139928862951832733238580732189436749934413064940760583401356048488969237847646951455708781929920010911497006444901565708474573473556593749684329846669038094777574989866871784852821578153561853342509900301259930131408071581300914542656789013040484858481088899660483898484808666436515343311920344000708010534736940426981712104715100247225440567314540118422285501068504615042229110461997938796897752594390219134468201172833817014471854530469815923870803601913741290857476028898910049581691312048069968828117575586476093910177603552896326088534059583419649417052547194144903607334095916393494715213636034957587375521346877095876822909355117425698809151359678386825141500184023868506280009686176972661553409502391678212782502748737766611409719005754806373976741757842401544603337559334361984605334269328626579811363180896903769394891446314833254461737371897801478843999897339378889937771953246204550968059182314280252727442674199513649690023362231306078021267426181587839985249742758729034280276848268935332945454081488943035904391909029766104648970942999547169960133304407163700028710896453611977597822525621400817867528658706841918315423945948649278631516097107795101434551675985670308938288405060957731791835266559539445544357700253524123875205237443551496869318954363096213011338987481436640111700778937963213317158325182156563989895933174834378683895518179910238036691813953096080522200115503665404965367141570541719373987747579566231584647969867874198928550613253546972258405469711574562357550205333383708258865601672690244301699385737300382399497772825902207642175789618255119080305123940105052807945691077133340901880046491487928018838579372099763060260504549850755545533935919017748945388287794650474497849002305659122028421715122627846809817936106073633302630136689921096010944305534518643077717166415270490420129033786493195105755485287416071223596574461719101715838135060954222904264703172722652165227922968404423003140686879561943450162851677501892948776328314811289508851439991030818546541568664781151248487210313650840431810890587989425697954630620849901485402210027562330944057004113311505655834710317209270591321042061370577469163807113961869575229643559102284389262290255958255543253985361834282287739635162801469186360157405400907784114134715528261353536581554902112196170352183591650425671286861610797385090422895584491435658102126943310834819557092905730150390917091839555172065630382656831995608234528288999323622214565153811335358117948099533717331239617759387233735661340744247679890824726661276840783224695427392262669728183820101445725338595327570983583202852640634183504443011699501512892720936737883677955958097150254577171937208060319013643276635171443410690321714600148598010098334359253223105509746864606660583402391780706252136149481232045270093457543234949268157160416116728201093574242000542813715641940164894134542755149106474522202448336269848720645036303719301829798546182202345469958133965792493214427116469014266353963566822819156771235086748721517469697304334409332950622184026105711668494362876669976297871670461951725256572877924875440029945197305110056624449498797633737169902450135403290502906267155250270579430998082633991251191904379610242532610064710953152900628831945954429525705287664838119062846923079506510078594144472197942390583041929449001587692298399506752806017560303720496779531201910228221767891771848600532797107845280759803565726872229965688452079976955789204224552392177194121145707088679384501238625818206977606514786483339206400015003462551488057263251540826482893034813015943171300710811935430908878135323528180444015723267872820829523159757469027311564001714706148729705657464834190335253427692475228382543916571833204654166442333987077428031091291866909298707578477485387460831916853902143213668777681755847207800390191598092700194089181420351440318166201173947835550658279326918776343563710688692147387611423453467131445891589950800906647547708583468983435812476121978439176470954807796944337950685389179031801834187572410527869880271746592857829971991817134561082823858417106958678387263662863526962914599161777464664688109996050997564345028700120160091445536689070568334047137689291314580777473409190662580909365851333053392543209194368159660561887590445805089005051127651682288067454395916196400228304714270870831675151791352795252941374713861029719667838414537508495038895162301623217256672044916837179213055871475830170226722984918471198524173512485767156904331998777739791611892207012196666934858628997456277944239031982722168462471868690723330578803688269578240097861012109305817387290822312937847096737786934623917067627587058205103406285920330198467700209676535579313623513437648057410422016089422381994745860761910679717237706958636874020067648088640427458974448544140507986551918168339589352866812056093873972011159240088856040130050966626243473922137647530264976408813922918255521845420865265280562002415964476360767837420479838557175445778903089958638754834989683061644681857563096072156093982276846820470138380983375069596234643583918290085875320098750685207776748422827913235112031733435353249321885599209791294045809371396396411250305478962445475383761421024748628224981610241939933973725410643978314211457195829032566253984962961130609078571390429942217435192500882818134780413059564171931887107486085931391650651441528383382869967458736355073927317272574462263968322376564663541400453916469428802233726551336172364123999926629955453121264263496357418880460303424080374935024131816441811204152527460652591567908518028005907269146693736729475540509425868209491725610676864776810745368768241979418632906957986166023919791899833695751995210568299548215198968373326181276016400004023371102366672745546385037780047813872036967327475457606879361139549169285738380186182731168383698197589687995207760400555382298072646483710107008604113871307094844082803150339914534328184314181084679987492875226825056083469000322832487675465292908572889713941596755844442124435247659276500793328732549169720687363026779605392279775777455731243045418386052879483763959087475652401825130772608658446394983947540253690510619046673192673597859103365685439158039634635151675568568676820874778505261826005678318545955757659278405931865683402362159383234425893540720776868077350758471526996872828063038712299712893097650663870197993554398608431728861412766652310690189352672345908652209529242219265383973958120260975400621267787500726188504289789915981462383242764341649186096405211232932292683497668076622151896781312935066098690592694401674772512407096416091422878711428578924975058517890145151981612136376028797920862715628772355819128227572387109958520495868511957644482492199343596769809129728257833636246291575488347531637971944545892461334692408218831317270107835474933684909256182088824720375129271088330942171049090791076739436954690170909567118918220224737219376814861038059661817010919571367756959119254558472424721181734770678253794919344448741124128843584325355917690422157927348115708376297547229641951507960788707140953625414909848873732860176201411578915684078007070760147788584159320452697615241129961098420054385597897597308809573596983960366506933640805095219684635744315852484126873046040652087599284595165851963318773171856729405678304356883954030738246764239996690818621707143722120750332098629123801538909053226485908242997051730371667036536104849362668551722954581096982375012592785846286799518425416336596161332881913748666492242891632344911554462824083652465049574318447355142504180981887669638293379752962134059761656907841480756537191025199375640281707225544102237233924130284699307945652174665521270450072975958077081456307763784889771031108122157019379310500534528090740365860411327367025852647125175499946065779324319024767902704759157054866795456246388160021333504711367911471527765192964300377087918894979566688048808750413134775162606078486334864091040788726985288031847687460779689645726321047459363574815320435108107393475974537558542691002493556861313598635348694652712187766258103095504466779936532890630701481448915982586523247506748008988723844685314486617498158618930664661136624695930012330464060295378111496661067256281836629865996314624554354590880191925231202800072947105232495737469462260398538839387059712267690276508158137440351018270536208142724636725680722236437056463601952302204493898507466745741725717277659462437437210400967617684340332042563395136559373573241879789234322358574341199945817583050009958980344098786318339207144033634493340906469997827092967970960262770333678643085211134765303772529950139276907433120788463893335862348128906942461845755174906110129624802749466755216507513811964668674989201749363230222741601161031037671542463190602243411095951722982889581043659040774944087403079585027031704484986160723428369724291827855420829600379474984350475845714260280600730473735484922276194063325508435105848086727360030932859184070017132519841957329039713890543323148157495504742422229640662237728658843971048851851262521404582969656787767118724185005917218196472851565969899341527367350457802551010706511510113535971240439084830422587142242684330751533752601009062101932276324237752679697457767405818523594983581187864744905967535255327639816297532179215420938643695382911174971235783223405561109594254971500067178073062232244532408147966280576552990646045411686473528085853591743153524713255575964040941587860935109184559365189846217651772638909556138477497990316693555138389200102877756417576658933795715483214926527434249106170810408884498910696790034539129898833722925393234825955872587539744382143878183515517676070662023295108230827435579825374216938430175608764115418248234144932047490432706560066701349968814634112918675708682191201450025287729818054648943660134448473437559650445190270964571668723814785485991989706831109399211516675678405147177541648388557617120764638506336369138301820563432368817700582604959585857763271558433652033330171848092684752297815862835901217970632024585417530513591382580444183806903190404512772893311833000438337014925192414006511870626847326823110750717970984071559225124995566989619449670413467462275716698273933017875611912414129060349993652506270345633309844645566419665417467899879753489738297748331198143725514859289638660638934231855965065278791600464085047016715281823466111456079866783646772684566331075679120258003158766677132209889809471894995571152829604172841481473669518417378966790668067242345768467406645950227414034709566831808514311932864629668907708993782845569761998300165256286080877849943833920929230123422143711995107096971647914453779822069597761797509235094592859792247779803162353784107856420981970291340733501957956471031735864756475566409669109672875117616261761101591929066946750942507615033299098500936918263550772539316814970186609588894307604315976252797426043476058616637677492066802026058511509416748605070164541374298846439792424011671491535720565171478113279610748760595012565160334817519490807140502540377978830203665581321208967163949607381556783278963323247535577632682608739263904543625773085668558799604039762306400634614144878004768851878010551795042836578098070967920100212764352274273671843943355926498055719309631701993384681135568300850407554784076311459328850616530308100195484649306359955962928249228082401691170085863726680457013276127724050006307399716723526532749547006209232246206545451901944588203842132802289568361054614612933938925768092127364198972326574612548583200228123486499335565652784342026366397484952141169295477063095532583877641127699450134952302489412503227725847846303734702401297120262531055714698659174290711618158489415499562149169242546410322776618017711942405209587587760115354778297046171852502232121702040254589710666625278967005257041389276562640698581356975356488168739982090657115495959940234578572889616568070596932663270765746093530660201499201735939740603152318796531744623655475515022760199751631390927724648484430333970336227853121678990737097380246234798879644430146944797096050425639256156591478263126433572868783529617795408246038324620044806390244559786040070859066919177788887063898537926738605303978743597657233322597282438381985656730320030841988480181703048275465801527257279341389041682866960522404765243095417237140519695907693849090558392278014592360247651187379806624648550715992377314982035970679577169771877488007503867740901440830992902454201137829933460619963037510216317345899566281187606421121541661182844122585467773439949809656600668807049332297324002104208001432528518791880056051200774855626749610683182876743633869977751474488841998694719552742124480876229632980091773187493351777940505573253706631902293762160957037417554680203938273723954508371571557845227973511253731235701850179288884592733209437096497390696779507468029370617456175790163615587340943814401163617139764431827315996588085711354594594949331729158277854752680954873844770142862896601033680394770402282383566064968389271258551078184549762663113569012486709789715061692548022719492722174861883915026909878101682432487889843529991695945266140359382449714604455636211531589502789614029479894835638417159021263888921984973736237471033838709515085807726677467992736572250323824470830549114592956792635579996109871664695719048287020331477397336142412149170164754046497091424956654031754481219012583099658339664241596380156748396472734703676296147337446246062983396826682706743162577140967535578377253969075918023395406438086684425559468476665744647112100890906179031513843938137309278106495227954468692548494995781837376669538808386716439451082772436873220134885777187951663616908802244513724415441064771428970513085413704053581168690881909588682907466358677426948674055002698959103346383630630471406893820888294885516968778549358107620093916672107789979934858049501750945422458575740912928515608275782974160784240402035684144262036484595849262767162065481495314095510379454733569076366803127927009210333394246460321513304190859070444432702665463238802506604682905628807675676976503079459570160861112117011643061938736580374731620153011951717750885478731018015599365459184827414938179231332300537376110990716912146961365082900971875972346706845391774204419939240706115574229605972346211502565953829111003885913164395678403976123026925296592102369188968548600222845155481622369850386173480591094958323210856701095270750009184726049344169752484904766262037467499408970994069107762611369868467706434861739170742340876501779092346482618398276392077810839605284653780715405204453163734154018452076337487756882155910098573029092639717885726332893110030863587213659971972236056038070681954852023646302248044657478546056870366886142537882822091299214958826024251330091075947382386018155372754885813510892480088270389315920221111124926408059876548200741451745982002345449289756872936999508252743219323883682997176987596397802847474005577665230023047170543754851749098671283031111550264786977761481915586750532396833118570330138305541324580687438549163772725060247808990511881790459129151074561707303614020686780350758363446561635606602828476900336269741817243121554125250422586479026328479879937124368507677979233042526666780681262800002204803507509549763702301772669649908120155865756834866727352076657960766688762066346810068123260877726329326146421335336432275071089813846983610532357958455107842629291865289195404879265074001776915450145502720191735963378194485303844305163338555436783707864819604565902203965832875252427621491754574676339480719326776278576808976864783190207628151685323339765326161048408985567007985353261064111058613908649660814595034284025365568037465712674353245994428926217600857503564350684786773990083641029732936764277676951180937197926794125114662700642107921235485095887765875037490650597197613560155358195646916810684948092374002699115678723188318259242171265796023816249928378402165781515050058602104673189868611171406618002104451324042043204073277730335486058597052760076008934855365837944735856121948410472996703401086797486717128560156104654776073500979714969168377510839628508819749249541394526575119796698793142381685588533952541679133640970145463715093590846985550197156271484468166645051197718225029223510685555766921826486143590173078077527944187066345359602367247384696213651659815602065957247412410509522276209461669030211735280239178982717754153072864599565780608639993495412361341601917811639777015139498609892515105669060392324716977351270915162039443570320520265336637294447252753907389416205552672728494162910570227587582588858937608448768031542632652889924923095525376826997929288054608572682726600016440311079464533679163371561094187599948825020836559841998275784703476449967256813962428235930576769893385850943691056801750515908608313238796468397950970810893659424941837126319341238407993724706237377976853253774002350780191688630890450875666555937342956200321343739818632008952578207214021974984185141893251584111707450667261186819195154279215668293996773587038080317101653082329587678267821539666455138030350985825648132176602684136544151886925026762649873601008597168919955366930419011233575796674989508062259835829586725654281029820447038082232535560809092927103793898120190769359449049514796015535989449165223114607539867778197104329673468292813815945253633691819508263613334007845030824520573119475565951584823002552048084799518533583043095724156928666399844246701115097437645753156593372846292591055674616676201091592183513241820112722152927037844843369813314834167892087807103382326680708373851840074681664290789492086264004976809355836263782272655703348104863455784522600219353170195311477203335498737686534307746383185206047747684869324109765656290512006704449924423836296293499005963054259495047355390294298745062446811529733093687258664216662633351449348901993690997858902885679359247557553387888467921779545650260215361076826070261716162975620788701779221599929272198514329364436344776061778142014015740771754411943802324987288636353411191855905659649575826760769659960471597087654424624632241125159518537598710376857073957570805333260241071633050517290061030130110620307331084291411616899051577459451248151252874786288363588487477784670484881402126870468245878930413743518493097241777267502631549879411310919400310763641739122532351867770867352975583266529319291940341578858576411462162441528379454268068758860792905195663695071303713626380141953765594876886574046021469708886146399420083903045144288264315503709437188513760433549669253738395512032792573130199342295379042786329736934649208391476224685472331817486667200186444806409734022987640442944965831272208530209499988598752039777194200920387112966410924462572130719108904624491668602676464932222988115836228295211615727707860113032611892792878050485179229447599488432231468563096089235964413389128565773826833448338524540035822781167530222650442219513960380970598639117813344461759740225859111632319780004891579694685902453024514615428337727386547686943299618289824966762890937821351682517659819026528417731401775412177421788343151814631568622965793523093815812113644834977479422366713023283558621504020355555335605713346029631865615584350486345375648269363451429187084228759681831282423838787934980865259320564850775145824433520780047891169069777248438400126654947822536894790528483947868654865186535422485605469375744215836784335666593405900556971919781543220921342769871052817822722733200040136655601949274823554299613841074593886331943035471081778853262650813527654248827163229291487564297442193824379620698351400604671567519547137324901551682766888070001360211319874560477125313335885578301556173273645037752953758236465708515162221455503467809901779675053254880523171229907824272895502492379438063239059521593101503729778022946137972247973512558125696336344330897133866253352213846696722635731008731947923238296920104109361589856283954365180542707925913062433970319548540415401514086408459980132800088169663157954816160003567088470260568416854539427067492135316830519744160419399948065280986074524941726943646033958825298383504227145766383683759986937911508947815293071543947695167605400714686845929627301242338182440182574513660074722331218733738031816648128983443487429572446344138302989581013524397806767348342242468558397042675910063480345095884195285450106658482439885818425695553525742982814257355663329997146124521165194937193670890475497174612979939827022845790574687980822800318101535104958278958742000551542896093711414968416255515445325891280145974375594915425173757006084507794001320477076223518831805065075185634090944536974847367491097380455237373253302866339822760525258885200746055452876547902888240357821031285780145253186216097042866865943207618816469815381473685925057100244078363643813695653183804985343350020139309374699173512584339953530002251189434926753257770724100314117284020352357277080796352905286234557509100510450279662678263757722865261552969089925568359526242936751023354722127222694563316128520904153686868727112141704804981775231342373182342715839576686221962774666894725337838032313894167261885887944233263152481286477167209616129519087044998778282231305852650807250115242399580511846443781443542504551856176683250032623301619870136791940369597829332796548941496242111097950527131926799257078763510746929634755148334476146463252566805230161258341633937481953952142299488745125767018287430657731741711843118132128532147181982376618011323764274631934590400277173272675666270599667663357582081590505128720499148923869929083149135489884146830389252063660168971612072169924493081628391240225812712987740272916953636083694798657615756375233134223062410899026926433513158618015940790424665531891255861466924737733624701042343236213180324234209815038516036151823626020431564471902534244813869011626925659350267882023211132877650077561347995272636632985546064592820512374971007078813835888312601215909648173949446865453315127249713702509802634762290493297244984221109799160982904669996362542540343290348797152995040998634653011611704613799278259434147980938749976575790255209179463538275331312447042666421700030895575372561895496614317760094319438644789914246637817571193598723266306529180899328548947424437854927456958120621637341202955590888744486706321464660139395898181674949218044866041270345602473493016926356019246436006001742790064777463797480076433462943985363952168883738247283114478418491448064791724011651244404731946286451684286766545865216510012727297333927156594317911177889839958275153702299119045374344570295646179486190212161304015777033224636132779489648000703528860945767128859073231916447865362218099568799890905983763972915572139227808896605014869518957890574112840025040620892049149622003553824186389119633632888246575954375044437423255137770295712798672229107658039437930841995440479839503786762184215755081423171735514114809622874800199594290837019670438003591139966599635992237124344781443975102874941213838717511122819216897551389274917996186539977307330202023335817772062579864635777967258427607558799626721187776538052715844381915187036919605647336047598196947458735843282238636500355703861715676067691894377247573748842022989993688786341593825279408090232861329193168676945238413745950879435041357554488949286282634229303129983382228766368950607904034928702961389699757550490893711707050347272815838870350399620070168111568368597040554839460579186936835283222816256589470219523514436527379489285615449247503686320091633096382758477985336325234265246083938489425300780565933624925343102453444810424280858571133215251169796849226735089002122906631246714649879359698388928710370091288828709441017376939088445355174886314458413333045937198276987733370652148765276503932270867452230015406886151143110826289274874628741674305693096446757782292301122626985490678030417699204029697154394140016226077713361812571160752957265002114656933696365728560329087992245172255684857045315766070835909598379208965194573960133850455117203332044563511565256876828124069594740286345211673858408610548988473694714934631168591724816195460487613477355444888374763348171503932143816291603495964739522180415451016569764163959428973988650958165154195702098795574657709845863100757289598830759856843689910811809735787775612101017288175329536875302060743504483453722691437331599866377245653120602208162217899249541792416818299242532762026888352219409786942680990450389367138822047717553614904019293583362602138294534900116419884330147950128598889532743702922982144156209753919535931811366348323727395237588746953206085247566737097592654750311227548332620113636097496661368717246304852828536614573758177197658394678774810898671985343836342533143435784024434354582335768693301571452477616472550282786255815552801416916271652957762860083978079669439088992140033298647032549725684111841554346012626450591189199583347111568316157817905041510486481418493271821494266473723671234916352985835852711784234658543037187309919003750071606152384847990387349729172320848360622498543994381181529544772268674593448494529819204711382915894421295360387755107112237494548924823557499259576620427205996063004716720249344506371129463679805888627078578864506005477050094449482540223951309847772943694175419008796868895697897303148466855823455585128593605658720504572959938642041759769341244020131604611343027270456673862286204948618507656213036173462211455107042560061234748148238568157221779230358354219635127070026737785018833370925705323544360630899276754141058020968063114896935357932037664687400649987396850344564237366392788218343985615208267730576825778147538022252236368672790375779070604331631402274318455824817308188773897917399642925834869677529886801343499344239879833853599642143304446032172122404106647594044217651612489162245614113263857880169944705031868781833829074928345765157572228750136592040301863280664505159210978541232025569205106904600068189313343425034857732039786148205773410113376680002116722633064895148631541420242933044078162770101176884808683491515623479746697774941324030218599573404122301805439257922371826347310033204530768040843018154540972046167654960247972787633960577457950471071853244250477813912456236917829681455497775387473321088788398523727573117078285574607380568396133080640557657192874331759111395220377896218986899746738435433716533770593883406363138893837821659721472989521860043450922833536512073844004112363671393003196904449839218202052735372721419791691593567012151824621335168129735145011215635958717137773731175025944949050622578436293414640650629435656261913618445765567865629753112079549071036402686757257350241655352457456454237862135993749720030455215470668086510770835188896870149530169214431903173483923997367953114019777123845571448171874132758278556079205962546046689061349095091335113329103718148339187276727954378640804671282799255071218894098076594452534022116627846970299151478208180020267032814045218045722664295962930299034116677606685982862125860027496943472457778421998438852120736293958944592213844551974052329705013951726274837600516757555792125723148054309433800581875723744832647329039930282286913206524987030776459410191085533952084236259377168453656969226461739848833408204251204534562763843169385459584124008546080373971044348720010060352145903197388675315480577176657561558714263720022290905332001492069613567381334617880170795559942110575735601555337209605247694811899717338966747418184532483669926050762556053330876677833167358149000457475914953934102428644830262620749081758840274315461848122561058758701078866285786386654892116397760795429785524331201833197647091301343430992515260091413623617765302998521882217493812093097633468411998360937071144603305361929317801878437966327421706633396746808123016538852699046163443859920646200405796508546283499513505377486835807466258594523036957602623068215390002956551358855828709585608935948864777618684796494537298354627678414052990399786987255638942552757028510527105940532031986791022976351691583135583726082250637722243030715706048320948438981167047158792858156049747092234306817541564416030118191287301452834111197422861521865635767795179950074067285557457865837587628730034483316452080107552870351174689765182533008742920972223016541651556469478666570778891783028470075519811573480316823179378207967722035949605469023036730406566678610829242259912308084371168094947293549209708179785220689676576399747212978793108778286870426133914690401927371423347616483006650429645151317201777907086069519460954002042009967474847217003518304400142468775362760388867330722847934639538789867175332041016209721087508065680411568455369257709515519888555981771764525545058752093851964642687771797770374615494453274275821846209435143717659580357691838742219007290874075328804742112711401488743202182276172329536927222491019148146388427644712431284472812090661936779177604636227232180090767945712727206722880723180233156290938553139172056149240743435745704552503622620876204404628383645794454918075055090058198142370863656575066396930255742805284720382600360222694088395007921487771329931019652253835444192063245082203352632855457676282314861160217641778892117454057301595692696842922417793369562118110199072079988419017833632508268999790933624485198953187246183376604057448522804414482858807358306602930225784255503464436565556284861450204058803355327931791520071377895597432799331250976263532716526017635064862325148302897811884830905586923093490481916169613569575793760077952888330639701763555526616366426444291901578155918248006891574999298403095465000529010755159087272794303785064731446717725172785757872429664533171959252511446052034217994017821925493463581416290044126339220799813047489969229868180523168475607363511653408972820060219158245599946233017057339388568711143042426097327159197194232555982118871850060587757636909187170261121680377957860127844435841498278769400308418608183200387427528805506762840401288376973865202619145262008984339665584313869234787102761732160192988830518673292257357577663090724997514712119484853879221513515529741999076176350170073956459517104275322899840085006521795732730004101830147438866991879464466438714128387382965718160610648228404650566499219404900568447966907286299718928020974582142463069118649473115963358447241810303008501539675327936689160642810778530789904204923932358994295500926058085985321042219749746204045168540349203344332553547262225229443263545103511581890977438486604687787831596080151501240185448310463259839091066975168474233046189877744214227492065025925617854513829290971218184954739614223290784989159636480571677895338289193775804295137179787195488613337290400691247619500054508156657765151720121446205344813867990436380583087403135395004358739784675016027315921269752411856601965379190000758265576318683146762551722286730525874888487188315933251964861428063655090578481781521343497285605077053813034081410175325291900424065207167469791372252429931796941057927889273641795157008023519200974168023075995110546646904570781246766541456498871068577403928506207641646833897841850770064375455743130923718106171091710970770708871866253357255537956911677064144698628028436234936761526736139816665101171257090963612352598720046175102359739410031011018791549840437463629664646517335427579642390581172840426459962904828745199713696106131919229406178085658450070129237681895691165948327814198775704943382500612180262167072066586886253056337936375515088790758351901071009291922501149465967948553470276686681059364345903037884516602524211990619736247491815495683230788266133525715493846442037660983653877119793207089505126624852362231025847926965394193828462013682290568819780100681221541145547638846077871698491207135884145018334549985379045799964206248567451513425783707202057674996137195270536471519996050014947701950887153377283166384717062031868049266756776148933981779583779324370827895159931988861814716610831631822482007782536684265479427317245685367832780872975414187096028079854256514863921031705116781755281227508115128869745157236966792862754662798867535010297341533568277638214984410801508084007944830646872757789523835914867603104088087424475408010552719644918778460056180842950853439209019911977828799275019106909531451182700148535144204205648637693142576086423727859871331514445333406047994292914190365402850417318996862113220086224442223237704744561682631770473323374960611291193506627243183779712073814534208484935886239457335450339515812000573978817947683153272991282678353641370850344323374425553619990218692755130617429595839011123778482188038252714804389300154270271581631566622417726853138858466784438765469501350997584504794788755483860123993661025567031565715484972763315517334270513479197796813158127550035781123144306287152447924426690090883044188472198533952983612505840013039919898057639479251485486624863519434753802838419231998298304684470497037067134532330629777555959098871685602415625286463564783781650037812172507842251748825940366064862719572971944935977989120526049666311043269934630603476872369752700940681546723331543043729992577273409440447543156761865656516413949447616875587968673725429067903792557852106113491044558108465583261038434118333849956592471092321382496651548925776827907833219382491296727330807287429514427026953658524063793166894550191724904459503784738328747664000284083414791232500388525083444960098200758578933019997041992017208436317632485654678336126258945495773237851418815292335814415395894359797804401220728297726056770629930945927933870587831021490239909115504467254384538138078386995535036109578847280896362337700430935422716649226623093141298510182410828622668221916328601525514882284684866632930597694912984815472076327286280788865063611633950109093851311700252298283418212882112139281217185940642457522297947463367944379216910457710206752196063750250995247817048988059511528395989984320221177621122419212292963030323405089565548721519377562181625969197604518112637798753409016111651228220524000728378420049535938900365574180204281818709547986113052752160959515416866844412291030077946827366030998358748536368436540125002587009110785852387249880835402878290815615145022531095049914545693245117680327329092131097706003969688147131211490358931503496348738238219685260901736415330202848299437700829094291283547643333589111430940246106966424273166434419246820866487030959462712994718898915684801581647516359450872210813558764968267510983170379265442884902100610240096726812512069865290525018285345358867316870957000936030362623549151062821924633920898065713417625457533551285859871465708155728753134422076390365056890340307231113677909358162863942049414460854400964536502036698503400988635085246634906486923096707765760902091465392375644997404381666789812650879786334257537378658314466614042447843521574008728017395637273370332663917025411863412221436405308732465879788551302672248824743630984018870523670498336311561798997197660718590149143418836964661412216103220918021633270210973826784968101900529777178293702123122738231837467850969345875466781619984714580255947057809016726134564568434453871001736596419127798174937528595805850817793868918246856878381795059143523806552754321520863929713543919483484004467189102215541769003597242618488285015032217198815511477028470898027284535283564056262120872616667794732775670481360023810602338597658986501849361831414684518967673919867783566580317066729706028825915754724145277700969777136921949368553423867266455670889989736998740175244876845120092460401721606208807911672319792160703477052187865184288399680972613642205825609293602579639965704957515066967003110795293031583721378696075329510710709802333306438956752716979695231256618546015228101132956924214371365546698785496292923522779554110210959149188187770259003690131612910685425203888093703256119713222008114460908177616236593406582057951663339191667982002402017853728615230833338623435989943198376993679508302473069061952499807194440983602215694496538277358731794845841132081749306221048153241792220499340832744166471266073647063439669415869056387444494294514424365488739793955085443552107908708205663946729623821521098954344209144844523958440391562198955105265496720042900781609604314724284129496015027565306801618797224669146990801393108035638401901061266390804404295079103018796266123582903065003620930426877306501420487409453487986516320023417658885065680005226469325345789304120002311925355131495388324422964659207490675071915667152029227230493713860040646841333023343398185622187613819692764057851638419708956793392257349120931186574205918520524889830174377640650404189494503685516963419682197908887769432671214096512054177727912191731198244616290281768767863730455057955400055499515041394500795837251296126141884818434785130663686631691335111364371507558408675074427759020924701162308691956275975540842831601919531847959721137567305676336236367271287169531443345774214298276802039066406021851128293352091243641344611599783846228356279451169665102947871696160359481784208045675487762448843563057400382813816224853629165594050416000393157546225182728002190700702441966093315927840750630702321383773377844379887404353655968744302413933975564332862529948967448553906005243152404993221873198215633961596811059075829120328273409630249462521987373410593651979615885659815903680038292107137480570647078536357884128826197385168279283495143003383433685036780523491317460188208938706848187370640809678158528060983186702486142845665256095369205154543357400914621349431938703178243343894008343876514549803456226839682902401709246647662411532703396338966585655368950950128440643016042481865582644032926613870171376950031521898745731443412264001617197107468927467360013440583707695926000506938852506673028969451835955490041361219461592774545520610094965882213170420785831593494976208198716023496252415205022947021752454273476565974727328423519732052476676813250118011005677421513437723176744154510569443461268261789622788199397894216575152598414887713503510082858691038387779141443828937745108291096335009363540010782250126102618396235969779156024474273108160123156820691414213357292858378059387038176087482467392035696179796276593529702969385126107644672775684450662959083706049163981047542886512901915098200385743818811372314553117869230999836627684452464074929144711870852655107291751960560788230068357507113112006341040195899065899156902617275557702281743693066346620735135350246714800003488329765714691532909285813498991213462290079249296504279258012107803834478263004580744330206071829718712004518185029248075379835872160472938802452585709377781563575254165721367715678861465602894017808668906709654971648606099193659674937631723842089930973082315979712524757885247532990204636544638097718048635175627096097223794461181832647960291497870821721517074163178623250770601587105346712094460701731984659693016708540164348174624875299801804173111034182010776345902131064584520078549001755574146590517681652399113036169587394129539920610410851339385770171009938439927047423906640587781185888025946709752776899133481650214330473715598922691134486601359354011599237674078010265014324419031928754615773041535691831388446937319438081434573890262218138223266201347915633642736013877200258362248711768447929476791341941554037030373558727473716463742650006817997342144100631876404551115041511607600694595891819986801025677452131163545713375222803626097825161942950689694666845350710633819086372741639432173662436736650192529558081316247487117596997438616708102870854652183562225686673850892234891074793328198833504499213829001579395826045807287690334649507826043185164203373748330780763751928735852589671184705044040250318686938385581828131887263620773565645383529472101904175197927851718773702393691229243179654120528111470914092598035521409062632210113629524543590122454673086465252880195094646035797867055805293811735253695754460602514434073465639250253480325002076689168386659803282618969070119437831705969394822439582529307020673934603088523571552087112790547491252973472179289500699003220481445759008289640446612408633368048072275962140694035513702369359795614780021685957950754120227061368184476026092089751670889662628261370196620492753656861715361920615957815205873489767662156457462617432822796031652384559258183751893732052548838051605417683029194776539567677670326183092321204544209547113769439856023227019072530739477104702836795988144281000515323480079306453053141032693490615958350122092751545288887006297685762561996573117663103639854518729897176793242546351313470891499859621187017724287383455108832413191362272229755745663063560622312410331449396394912340510747845403226147269014940837583048162817801479012019673376784377041564389762963351691635477737946314882126751161825375768981030943703059309467508225231242378987863146662755447277428399966180764673607961471685225791966287027204122807991153118394242191829789301869982266375912605602085763807523097907037075230610677119149065193145094296909851860595810587692172496467528928532083694466473462824930635319733237213235876875175472286735758315645028153773260517403717220040079661378678663556337939954479840301238286213231748858059903530537182716842242444457264086276252711217832809681564860209757857097321870971765467196503898546594356729362373095347255880847100041043137953084234983168815717882544065116401607535775244178282464446163973896079490146821836189487400360407591731557345738627824311519752395417906368745552539561196864799972154914472416505313606398813297848795949159036352439053808771503650762835727615274680628048552566094415699872579503594503167744192365507262131662549069845282026784283648269260636307471910563184009370341301904387307642493580589479946567885126623238139248163340496139893562595466544083110798206239355942185705593207634581891745397895786274335162274490110187906279159675392163048331920860480330443071371800690955757901656488401920189790599881829755176599259549118891982537872733811078458773924350046058179837038062151172597987010741553047444981750036180419563516265318672526617984336098594647844191576550411953976951821636624705915810204126145283667351981837563950977052394936694114805276962559048299783226798477471911985727223219210750220968961946201784597646069090925213787572891478915173209571605144203819033731119309271956757639000108403670404066445356646956708145277347277320249908945887599935428703189448220561785022896204702243195763877776990601566079819472847427272972642063634345237611871567154848664839198915110248541163926580655201221643024501147674350293929720363735394520318645117637480537306149226460540890073810622945801344940226748170660190138152207916835175303520356873966337135872282785814685141419520327819505262439254780866236009566598371377861755840011114576940073246630247846544211752845611078691710536188657536610879466322847026188161679603488514919558569673089507357610183465838994434463896694550954254730513106251432846611566244567451208250015725663022845716547618360089513855135627369978743080070913639096658970140044539768299398191429763955720187001079832984934777889390230282329461641555315397859156552659798535741430943758446550710138868639926341772196217296285703124736039244338360291363590671223752184089800618792995878610381108178543392436110044195071475231029024822201409819285731190884414917311881295510891947805111431798209422557374670022482993568079112434899996713686781538677552018367136163864893032573058114655347717464635409753489388615408405673113389925789392309866250412737723097425973627995534009479220311894173062955165402448169053284704219315107615861008164306877908228706624417860312063522560026021081604296302768098585841983108303624450094050799430811478764384147049238023983645484525547734203343555226535253573583162500757856614592238805553835284503631748566651988552619178293409217016349908948950357050747741839924354818114810818887602686379474112770827468128747919922091138932233151405630611257015753099680008385502397188644550308185196643505026861406966778358507562870944130794656908181709344987120814553012340151318903772378832375703776879272423557952262707485153284646934313668803651963827304900955337045470955871172226048114937132918246743253077195778691641061963770106623474951420660769472322929481967925365369367101449608415876682557012494912816148447783910374882265654715872582544117583845178371082738967647458678872831328497696963106014405998402292258426797206877081708719441803034337076640513592444654804859851803500150778248980742038340795768913823770333385176749217326360443837235528818461965132018743975278380346519601324774973814180541857640222810628356002673528453107759813160059600629899879955092144716153921264167058366832407116390307189000825135254622129584205270150867963133628668846009305987376690288709132071024973543314646938237811534671527775293543428549660640547139115420987539703218596509754272829041427778458386341753734399022108500426016779996080924501919654228610439423263528615954641218947595781295532659384081865982703946364151403884510780306175609356209339611225682364031933053838847402958065697850286540808905122972808765048006752929775764362889655448723048974031444327418355908347474516792798314237514575068903757754641233604682883244903863818284740245807229939408889688315563277593973266166262902236447698507291704143673652563611882606674050308286833083722829164023026730270450414630955812919925501630118367239073510534659673319483144960053246744298770350435464021252599188646226891219406786426781891664282894846232403764158414767144628156110346017158277790788000353609118062904000236995206601705372280240301864816728379429813973301443041940064976036510938808595539685438132920615883673571485157633017416175426138534901979842852635805912423380036851425938943360300959193656062343187043043986244224636744885307913103790037634421860141808010407818679396019913539472292663296386908938322816308387429917438570618847745667579563163386764843669145530027146012673887719594739234188891680064343582852294099703221400461011975591604608302596712908596927075699713438288297210784289900348388203524119787017496817603444755214343881072005388300363080100269452263709014682806849578673815942014964422519814590646572097397028726454335913024211244116093214246288195958153889788028317404541211787589499234031154374647071365913791919637753695042466734997353823765916408850862552745967159346791163883244800900111369663186834369031062246107112253073060662079926133069776602789242434458185010232289146013641262415933791200348687768057598522968646697154823225686699690985378538666381396836346374355409761140903966987129038313771116326622186533611495553498075854581925416058253554517753516854915764689001552290413398151051077779251915772495223506995438128162316879671887252974947324869381670416663437533592368323796005164575677714894913842633910641911133126871862470139170081263212604491159819222814470119650951462851380499550034459257603233262050894629862929556503525331407383172163878171520794212769365233134009409900667301269380010506154042808872250619723594476046119532972386045961107632045184188833244382215768808255988064922707668785539956310584428244762426366275924538818972043476377195256837461766699238175833482023073679501021463047064422198952770955553686388834780308877159664413873600606990341020093556923447147533404991357934530100739517066103801649803228817838139874649162419550617439255170261045328063095692762626729945983601227018580128265632338983510155264363215525599122238137049472308149278137458909651176716541925900334960617756404699421317552435508222486523824977112622894847986063371786976451682162713639144813705002147077614977674495658232940362526572079371153514816010692947029605140211040882673609647433444938382594798724552073938350403697625337931869620676200177217686576741770580555716055240886607989252452096876516706845308123945765800765266418869068753004109650991941129019082203532779231857434531926701368163360273375801184938918952462541403048556526630628371351791099377829833878177424682208265298430312191983837165956828770518202635359762748440703375431377766151423247531014592653608702913178702580561751442611621890907831355706934719076571341810776803255746235164074618342143142721715980467315578078321617183158978134037030485848496172307227786426232189300110944477322842183110937714706030720453611246199583447533913666770128713467561995230415249747095313358170840468587695561848062730383224362650297375056909008658315966198040010538744340712507822256526813459773369836763060967876856405173785621737556994529082056150274338200386758201439504455810745535432508557534419504089222005525474016685609791758391528139951227604156625796993824889835820431096614690493752126274846900826244999336295929257640161922172072184191468649860554609393190162708706809582545635915661171587808422239137215872084323408630910535405172257556931839320026206386892739517402290427380542713333915589803359554816452089741976299071931309220216568758659103749520403759251664887310485018415550199247112875605464858282797543642598561865432883856390848420213199304499945547853630901479606709717042606175569243529528233586427788367570797410668654496508776582216030849670046015107180052847562213823230858038967785345815772353064056343328577030842368522960244360144455296238139357056536432218344592322369002340398188041415100385639438426775708282858494049963273886572964239228317445343317165336304680855583075932759021323359860660631144173279145309831248181625247134987107912601641721770357577703397176212595839496803316286107845412853317444333989772251212085374682718751314373010426467378004768355404538913541096384445176253420529285711207933623525357628170469656397682510046799497346418126773182565870337051617189865451091607160121476361963348455791765046558626939631273048607161583476759358425172948744753494450975615712891099857709142818150281778389391094621478987282658077124792175095829565604910655714334280077193642819392943682388661851136753403699779922742829959125608504103384392845564586676992733994002314581109196286680030136664054018280450679981490588745563200508836460991647348001980590684875660889888227874247478612863985837673181929913581973736052053281256803926471718667172372232303047728274851000054438013613329489801595497302762080417495514759596945422062042505143224726989590040221773400349950254675459534433009375953776263702358859386761015941827945856287542239762908690458592113565418371420785432914092042196289642677883561299015354865945210442054508455959556730676506436762323587167575435689556784740503587861593520821433799724155175168983268788378215970463664496483645900528898337399624750061637066566858919121230462086983932195025816689319504044645919843298820006072240819383256872166498920763849939795449891520879971356927840790103047183705294530753246292125914537859988616624337177525955020980975567549466417593748620806009818038396782691143894459818880394107169028640113276414558102854963507525282686433395205305670157054051187292506931682802055115986428605641136240036171883169569028203661952037286968055693684526495656968481688081477548329989096473490244211469929130894774559596547111881913585157812788633039121977358319363336286903553310515792842173265352484983386315167904605122981890174792155991973134082069240178922048074601145713458024051188395021669416514103826308818721318504107908645790908398315330463887732178464255999181571215080478011005956491698008203148412686024310300988461302190006515412318880162368152075417480944815044518040583934925545921631147767975296085492473506048457847543776513784718674057427267070875045296393945098499287733501246489071160947070911355245369508923043917378607293235262174613698534475276007501843084860430077325298462670642639081495091703048696982839747569990865597909851162330085113820456556927520847440398035628541626189015088453790487194638511418931515617771093361544062975912769280691381856270753076240363049554186359337869753056620562079010655704733821871082738357436861615520474792771629411793476632489552055474430098196592733350711172690522602634703040934408461530046516791839092094526191763598819947736327233059531904841640381277128999287031347012653320233592037189451258112185282298478911951325595641516941485946254558864266112553589402288633431624275437768315978892492111024303621448779578445238743160500558787775892483876615663632744418263835664943570721041929230529142337966208123571265130434527979741727869278122620835621832383816092192184153783760058030907803696581445872452222632542408350963546414714154481558176767965432713697010201506447327676968876353788980448594716304274481620377116321952605338644390815920214901027635898288340820865487855318077064210493675392539519810717519271792840728913795314070920101104979347615861811092380347888081468303157012748027924879111476622513000100257293682868624415602871194806750919725267681446742904647942836442739751013470938989294181016891917502941900361864930805793547309747232720117108774129237258212436140757021727437405074555440275604364460983729315541479803699744855434471901922123957145509323099536174282822805163958401090074494590300010242442344545122985898093708810257682037956684045444223594123615431419050095845685551071154425576052225297828817287592095006849404456865170991826938404923328255375525074044113311997320063861345249540346224425258146494946053115689209836946140907893487662214362788311343503549173021539459413615029641669124083890212786221909805789786713900976276744411682677380125465995394783380822426107503641107078920232569929393797440515623409052057577384330992429126611832584979979810242743505661420540445487172750614755116338961290471835267955703333756099600619462517826364431701569332684621416360601597613408074571411768906745942362866256146533234838965859985957889176478328089048009001668221361505190795142781390772262161148539659161191481533130618698377981593711122537815140513047968687073580236260223418858008058939786265135956299032864264251549760939821587551452153593416508051152749226535672803530729963788661133904656727451571772072190949127079575954720208833323331540803005759961832034122769121724625589761389825620789288896585965518932850063799895559636493176220733490779187132796668030723101965149853045975569927020683326033213265905981461095719106045112021755877063085444496375570026466512123943092555209589055143680616004500310381686777962943467996735942486262354433415341427819708157176375933098104289762443188540341768416961605703028672436416924282247173403163363730904999038999476446800204551032718708971483177157845871212809212847749038007012356632558349277302530000809871202624483421132361671493598710232829240772624767071362630970174557508900656148904209135545186412292641312643607851268836807284542418063065777552327586259817924483860860534854017434894330437341894181170067282073971487321080397053756331243136415195197058538274071718576681844824710405354222650721957980433375088736881209670316987376503986780298948813656214444797049419047274145197473892620547686800964107414848294964594237707977420017377280495980149696295660310523343681009030703135414244570805081718897933583302148928707573547741247510014739223543096781904616889032859924304933924183247833839793562346988355771544798412844447261313092589589789245709993950433784728374078866954807003290487399006650961374279619404477202087771517266904183916355847833765452985102008014294370399322661210749033477674657490137271024400348370696405124395755777026215952722572495629160044313246953307411555629396610793242953240442208467105650179935414292186649546823186873090336153839213665287034099661185831183823963832515776571724910835227068238005023993409455271170324615279606931547178078354046244372606652816073092641749709728009794280202670845375543392239864522081657633741561274660915362134921573195552340158535931846903005646924087515818601822497151434482439812742619879819290641905957434268919544130839482783781747588506055482929326710884514932105525172762633017143485256376716572968865989144294640056047743497544687674596017766370952636871976031677953183008472893771979206214994547901877604506487225495335107753851378959569654015782380516553106309892734071045202299104310809904085816855926549767038927395038446023753518000286056348002413131267770106903811183862946198727046818308481296012015539865690158145515835524429172004062919694331714973736193167911336608335150703096633294037297636036027786456206451432680079775596041154355485032728799621675549535699610326514191642843546186613767997838193463289567719151327333357796745238348384077632275538181489648636962936507525550491151306762203335966606030055354566121877543962477675450409849212183694880192465889466015313767722520546857652900031749486011816057290195292163155461146645105923952581632343279871168822527000889988368322972315692151944908064852862317204120393090091700038351952896099868901656478239613723947017617633122510902611217275212233563601423464039930519829099378057849125700252669693859635339702606631166831312557475192592299465873235980142177206533737467809802660100075718415780111233141500204071183688062275283309042057229813819965062864583642919045671295969899615758850951429265771819147888713818577545056521827401464976398560789921595270907803704409005459460977743151604054270178586951881580718820793642802249934145820840192303081947433657496538418640601559016610826198202803723523928800140562909944818537226232026958114846927413265528002970711393536081974902522581086418832416491428365865311448648084142219509487263256653249695488178714781548642238355090674165294887059985562155480335954390851259806922277978014794589020904304256067059844999846068748262685903896754427470279044962394545757541393261581100830695839996251644505711245245109229759061126129783034153791206870839294265520865965373679875482820932291342797742491786905241360946902562472152571517189917331868860625406497615527419870130549847472691865120925655673194422115697200834195784469203229241639206744665808972600017750805483200424823884247800402524995643254428573382143160742901111413081509149487440552096456724853574744047744448218534031127798649295914910162736677784453696530181414217174470039088937469187325357118924678937895197373790175294943859076737048083728390280491000269860285528339631943825316036482645633818476125379917474850082247119875718263050015108469691248695948015607969283635508335668972283128033179157303733734022476055927261135125630206161766815316172632053468635051856934858838250044849980347353909254057740587040985359505626166024986691765758552417124520014836075308616700246057604619567330751832881451334177164296095162037103177485182151258752835670432151605920135571625387676317644096386124246435862034611186655638412066824967864695283331784642478097880284198222882876813844755746121219086392445858235533819448738581328650225867416895586752535253236617019545230203184482626196089511817857280015777771650643197112401925227845866232989054371806584305024467663398869995261066856539387912584700265960824005480753782933201214438176031559857557975759339218883176202563229783017643615918453562487944173382308888678239973241828743800965206615186009467878511821590285029381440337426838045947055528094798955544356024045348013897942131228124597405212046737486235416902144042303396479706049946664612318872061650827664244179023674740055147726633369135033630569678439168391030759790964883757931333875210824135612841477199253025950201147515298272166026327373867119976639102182993964127845652529300509987074424013241418219086675281924779112034816287958800398931601188226663919194375379731307670258714974024729749985561343246038483719604285095653495654813694537468035514451965168306022371598648585269397900031932086086898053509898232304192129642794984424298406123405856003007726475834622760910542236845379799980169020835859369114644022819176727109163454234448341502548412468359362741701131422562143594022547305377284876690273483438675024009508589061131292422229278812725106450858526252274380035479793230014998096277639792718026079067537634029219573644873749196686361060760757277363544970802104208112575324190216366576812313259089495123872482252734386863323471191420207130779224984827222107707160565457783130761877968994391170750622315961127191896443044492654405322217254256273969050873613501005774041728593763847889991560616333188010200047302073227584644771797575579198693734890289744286514933299157339424718811439679634081247536470185884622458204883429649059005883330646020159961255348396112523757492340112533203580893410098683072839584711676048348865000638029633933241621832180334992066526733884333609158053888301978477693334849288607456393481803917702987550339992438095819172454281171171514160967069711936262765621004654796489402321690278875149941301116749733357576266620863509341531918705702302088667183858852804798061896036727552676815851050482938452067125186242651108031565841686655660320621221905368364798503449128276852022463882088237841066667801179481886323157770090158704075190407919952692234720396838701787033079448604603214113838472446424800795287902678785571788095365691909389478351665095553431531513911244963155452164889205799459391626332551141001836750585620090483707395290223553696909420593440704609735136671620870459655874498313607885559412357135949677023144991209631919261885640754243408000088828007637967994663932497131624741024890002714920713532119264722096930661586684425508382543034200266397181040225878028165296681329019667973830931069469590024369255522567187235471309496864784543332337420236350827521342196821971105755851045825447130273706756579099162877470035108683080344838164900863320511402855078150195296365440358793935030337991527307834579732925544740923789015554162646740358202098133799365143220677813685635162871148689665730134997634265236936795478564212003166831339664189755613398951356215669642135263458703317977709208442147642200887344004476842210902311911550550854754101899478585664256242440613194020246148863070866106851544323287221212399551515205698508260229822765321291101989166965390110482561250841731743494758296631418855705485426694982711833436156749867332658624094563777672890415634661887531954853428341839942716488403661688952436122384511135555411765419136991328150982585257041821770726244469641059151670711529685376718195746478950372121715222265575439934916187274163396190390771874076865910298973616837400698872310401422590271431062142357006379470243279787800183745665232675697820931293179834813179045312958946780342681309686378289099897237193775173139979055730832711822779046749996525762758628090266700835571274977406427630769964499889004469422677742573698379734001447179302021766947930972973234565867595927048060450999239731993561906361094181727744206343300108425162816312329794142176416516240213225023185962271384052251351343277804349130122799886018852817739901874867919578922359050867908512114633392212659900844234383466837958676320728203095143581531803432489226229831586799901675517580224143301934970946639492748240778700283742062178728210326118120076179144273247775672022891392445174425743200994333201109622288807788717246968876970362265603865052746453209665924266258359271114891653380587676984162012252517662143267957985094617183837217299773248835642868551853548144719876000183506028852174794783007428786959174096970877282799529112369420012029889010041415472958395273557971761488423316610537751802289603988048276524907228315232314683198496407613604992760103485031815678854636421367303486608973009304596610982013619059232000162076117123594772388479262579641011721696056198925386084561260587684634161361937519967944103373549840582520255721581827208240067413185788692540392363681317074758209714311121493135066266983035378035956779523350860702205930601617454444205852040749652743849693960957542438527540052463013679893891581981512080012445037963972928285221835074686860905700563745634794052909430368988418149501963914229074947860018941793312976508183803227323557672906124974957435194818862343028834421549075940140514277963738909301790412152908701227953646092131964956539896122504651622749276011483865967414500225988141845471878649209584368272070061116843486398561488307227930112554545705138644339308586982909434440852445608165505185291240612002511551944442821720828080332792225799037999755854986505163219008278178346412674446381120762071629926138026721406859176106840629423345796949070788208082741028991817391829760173073959368567182030080197775712061012620390899578845791137102827747520200541088189132411564593836926923370759206122314898107165676571227057057545110790565046332386175221746402231155810728803146143812487602189686170576898804299448109028403995124828249704435829349865506323602636243150954295304138465044460985954346457959909162392091672546124068039118775536066182798937753973568694116902448359991248987751708397272907492126128650033773179071398864170989033117351163724274401087309419395598474814074300721885336527334936174447874906860275159766803679801332801678463462009077965197036480853906545056556713730110165527107251215596266180935573132880437719369922665642262657911357418583316555758940297945841101745494090386926879768143963616998808807165676720941137558173313776742393139234008962990015208936098602692163260560808423303717019992163521874802861064924675671311578270645026196681375450940986700065474925904674828636439067910099047910072041004210903421801720955231886101442335853683058554498528497928012456986233912747699900737052693365697972217959328335624023194351842243680147211594411564837347673259830470730777725008357353152548509036350397160575408301608461387295946140476333761366369211951477602644726723348979557624802860743727939398757166390684094741043124805784903559440184653204296840689603888567054904470162346927024011579677919051152094254419661437645827267955699360858782284494691047365740913458373669169410213921480025649352585110245859887317813666472821583814449522776999751561064543500537728610452407922783105441727418068243678750614595169221149766185723890175564165728333000860831002898860321223889231665366058509868024394715879910049402809412510562420634772036284786987846426662173059927578376587149373569535179474053636340820343349301580235494185355227470914160252294619156151981067660274354215243687245659346835699461339025406042353365895663581207673576522757537296892784257661338629124329441734978813935376151801513923109101299683489384786988369441960186823238746931812877152505465510722510667644982984883788155185926677414924808672636946864740561569117520043055664194609516374359398235589454298091472697988133376008739648680017053281221030178558254451842745424712503343184741811128962764854658374629937409514486510730980902712087327040798020264961475320610660050166379102979357842399929332823892928901067546513967880990047134538321614483323068892442499321452890533986617055664285400522421243945087981359867372312048450801264518230919744039973818845871363613887648852009597060516673346289367482633489912355115536400117823156665842679112983380891459902836398478411510351515755127818183389809965274393483466720839967401217557874984904717921813695544406660167546918393173471434031046727554120682733873533934471082061647811853618985230862791651997909763959102826409502486527469735256701369806320983681326912225186432973841168580101533525366345384836366220201547090764201916755485637764026653446832630753771415300007310156883416011058915576808191042295708533670745562664335134804708917512515074892820613715899390069527655139811085582960087692640526404620724220483678766823401637513946017180472243075907167460877308111973194030968513643203023775848519937330172069954094176924682328768649917041533234594427244190365099342794408399692455172518556702059769065031710625450808036863528172094356152929061647544740207437733606706271654310503826986885912874183269167729636943509858085877963996712385540915904524410519892183906230703046636929423333819816936975967132962905923142416781722319974522717090358324704904582997389141027529536433517286407652139960411436369076454289788991822133894041795771539696786806556018238730711318209986659967100092066318133984349266349632484234051446660871097473515652161096317263392503022078405410433263497543161820264969538177105672524850211395288725066475192161829358926823794220691265941367505221344468040215180206696251356677229240349328391524200945054264401988488559501175150861085186231387559761783928870844112231237264086495459565526521178750965923729702679894108468215981628045251060704761624599044437284238012316006597284146120959701182163429291211603924686976503648413807090939266192214944237051798634042177742424694079152126522794305536734291573195573273552405913670861978057272664567798277078802621305673354903388317393399950520440707010457425200360912288873040984617273135322458540895563577541977394464627794070557759363032125316753786918162715918723104816393829992461960450059866204764012168693583911646590771557205796543391977398439135266765530793149823737198867441909231317862423976706075766304444946538646029186119011004118301822439688363544455396420705689919318360407574281920426620086887177580868475133066343126420570808764828510578854308701064260828980795266311075971972044913170893047297842887223052021414091658471878330423793219828507978785368247346249936067983675136979336357427290455226625708205764244330886199151554522283094683048265670493952695345916544349645613147960941344581733344989130428946435692033917474593224660503104402655331442058056946184771501608778202779414964375254071868863460346833345324162587268559477265179151679506241643509989722527858726546950119367595933864008777295658690653104657689191554039613173203229382893495476648306533330304058741167693412118558870850637521445044079553147675761525197592661756367916322511507374492002577485467468700038694788256788136317050856441076612102422125546042317704019696507738606361556108445599590475264706159531358335000469928584708582176235393675440120092489331789688184284818961715610964692818581655354885628882680682966305585733791708446465962530172320814586751172762629776591527523125625610897343112286747095436392258520724078260796901784025747749696738442342464891161277729631183466976816803167667120894930291585601735491385996117373678706350919054617753168139036258388446610633857561570361571709773113827486059830570693449487644711144793386956548334771692271874701540808528306111006969014820407242129060684786312260156011635523099060346291229624724055794370009171320376763785268505694450981323096527252711813592548834784910719070758673841477451720462117329235035851974053391951225388931784127373748546864313047180973746541807125899387003519284397735393852745821549711117476279286634151681291037918900072970226748248969891952641021380409229368758521180968570056284860616257117382706341541140511623400257744031699801070585645037274463046838734352396433075682212127383032401842631085913964491002992174871792848490681562131917986313780095091513434374572287180042276914707890438415868627596624484663228789299047257113323524938307365435471625503380270870688105722039485059977192595924445201781842461246649166303793017316795541121179456104304946686981938210228580127238674955601924040249638359971123754485742030288466751469932558378810100060698474216858466642383326241042558354964687066062554772683017133041206034563651898398806924991100687681030647166383114585536504504120189648927704803598719455968174366930609508563855370588344159422407925297363885145696955676737740023058980254472900698632913869539657483017535760157304776467743292491536646384253403244803351120101983391625130857699724098167276156013308706597152172628711300548902074376946937300933351766576260486946580468442558004357432631885252217332077935220118357592075704994504351711972770923020940662617562438912949089830045067137341379493280624231925580413360326956922543797740249843696347381194186608148085487750260002572750258419242783438001413287569441123633938249699841637253266072200314921800203428702646978769129044493157455873957425876272123603167579987694491497228912277970679057860500197886084642403819089871822120556676677777595203227765585856147188162600413684320060782777309588549030656163690910103329756890002049420712738987502289878425097172855412550479061869767611277236747649821035711264604041986271108683307443156439990940658429078593053945442935435541986459270757071589884860679001949545244548739835759313352195300881271565504533865396636936930753943394122209618297459675985729520105974766621453812322471734851594282518727014250519088842509976900752902357079791241582451985688863020578428564498388470257892467598872794764748183069098916836585594637395775032257296537858690663949774034439248105646821273286009833063369405299942431137148421708082820761265842961139761489748705064574099576524571836309694949805093821222526351907504416270635316373079947282681767019001536618002790353780158674708390555206806494334283653684168552105762831281690652852519650041188410424267177860861844357634093794713522595668689377471213147236646995954490820371201981526900019049748931713747752033939372774907941251344410586039814435152556523002708622390292542666434947022801369696583422456957031093848520682511859662306561810463821565862690402276376369656408072365120401411873000763009536562574423905098318467566387254105854594217402120067563973767245848194270373625391172279983113836815582848973436800967995910274791219152001253874066317858453684606693203467164069219346369451839161259890009145685879491790923362709453369401228507198309113284949541445160194005106897413975246220828123245840182454437813505086301130687024517427811215945153859548991631786091137227643612805084892952053437318852793085312809911965915988291999860860849446238814183813035133751252377095692747943024921452111487604041137136393666283297050716658962518011277858944001554481237573815089293127379289374567008752844120751597082202218703139597132315083293934573029952234897121895600044607930149206743646315275193871690117973534917285060243538555720283543315079840921806781351685830443379710021083393919268989381446195885507240278474940974745055793964469875715784479165195942392411237371887406700738956778079983158487484821912187192630048672400752790300623674794535831159042346678504615097108020298245515020207075274204255544732505027607941731117292850290207201254019823441211636910894554795817653603606771440380206705643738291626647987054193766182281311433178935236911357423788927392619673655570469965194996490094226780397110705801526440951176089190009068173451745607909529089121399048278045154744431424042100819105026940835163292443438039447441494725095238271829020531308835298753256928341624593591917930197337579512194162409193069006246595236087804078326446106750473552524952098677344259169428859213886451223817650426958269598943609599688891070161263040879631016757295942911336601262098139194032471498653462412113927498006206449333842462424295420545229057550769302113615471967017836414639696751907270539240712120481737744542104055004738396574993918921955664356179425013568565872812171641393480131733664995976119775192395280150975590106976421125775218650141290969862934948119153542353521427906362955760837162677900327452164596112001395292070465470776339283153393478484619378119227915320173042763846963518911146453163439144626200852551450834741294412857334311075421901274833368798235477921294191698667729127847385629798431525593731212287753286804564009769528890317960232738763507520436644151513667567427957789141006361517565364737813532485201194563155486080986627240534530850650089983496867319533048089637433723639355347652544081342598410038011908378633598550034161722047260546084046879785511538352233998858706689718244117413868424425756822415627430864390555023426073320757161499493788929513390639202523549327238823568028697694540641327126614701190236078096273526897338572772399680454928090920987009045006783631863465555982228986406174776523040545024316345701418275807695710326476021810853835948997774091084102592232092452130264573976044590060299487558187613497449523978567901708481259641744258487234915405322726599573589595496305253589699976182643652229533192824676826689541227836308059613846868166022957681471120565827222475899546806743450408593246619514754521099027458239382645867128136109994115159051972924330372073065668252622382821856279600240424916024738204971751561566776239271748609913464536014135245144901335207870656825035406415729520118626193091298822995220894106089546548964177127771761092123763832967669452564120773331910418078868575761497890869818744143207032127269546722612197294227525474834821020637041211111233907869849276664805874180281671554617594567163326935032192266444172247974203307093473188346510500277094626611685909291473011017520488197329998972504865086851728524856238492782001583923363462905739429337208621440653316824867464912567271800790502963322639338952293387212772359495412164273098713825961688105711171373191690759705877813388271050502444491950762294443496104853403935114225748231456015981262127845574974786919612284047446343946115444955414134314737821447908364825724444388613131189140744784809165099691270951450520843696755017010901630681420760661740066259049260066158573737125514552393486819849807246161003427842934320763637292187355215405970260647847530945641610901838505977148954796367761815622214649415737452912865461133044809184077260416798141781402833149211208034661520846514433578534346397660503231603286974293925599641421771666786230412556729520577936014794720492098545788134013815942185420856290656068011329535796491119346660453744146066884284467025501474857549128694232134615365362999907938492219664215998048308043884191235640454191794782077716347854906566731780887644262208312704874684366415416297506463414589416386277871549207554995142535829528907034824538990871995531092538905175110311336090467823576088968712008602568249855434468460557512959557803411659603962993562512831562355637943268726764789040788801283692064861310162553553384193202298222158077829883103267236070627449032782633527520062979344816492217910379667972031887167616122202010850283314374167010563501927775387594554424000855729091746547127282439288795809123668090751165389930772749080450897672048228402956444303012620709381844615887803422122627231540825822101339484369021574359891453641665851554475715934305992125690076273303224703207466590025383029255303294679982346543033599842238603268783178663019105189033771323378777038703214760110683585659261004605894131111841069577611777822850577834480873132958453163288176216854103491195533559442422037920064279903803251955393882454839061160040412175951706044694531254993976046780366063377380840525635387840742545730148950528652526028591969062730139585446392216074539828435985380937595965782413885312741184934210950334314483698198677591575293966338318734612761319494048244984296072647974301842122945556690840289848349766929884698095961300319837822219250615497855033137902206956926012429053517803318917948713917287430884486658358278557195108906029032620554408224969360984040177602852273196749792503325616690554262117771418421485448153500428205088657960569400207747513011999888694885400377055249642056593899813143889970238077279689820322552319927134565315987954197442865885354570539440455787494330625499346229141655023628413991949995255294890896525397296680962129362491824677170045699919406886730309528391610974667899211731858289029148088371210429113301198200767137948982038974576041692257070952598074060368345605237476929662880823523957665467408546457406714472580431519299562012284312325748082778844145388135908841941257778269274807213481211851282040804875568837866137321151580551034194624760514829575834645239471332304472238595878795551631093258945234812203390389045060659830894065847954066380512529544015063375720611326872208430993406761586352061650994483204590956442344918511642200511243939854111485357847853147746562478912782793794598936273924305079070209488569752335773664001799221908612138076575536954632461564059071123509816465493339079975275899709655652145251148473711672025283446641163679198185467847724801483047461032442273260585671823413310593445252679388016298328324307397509723158851689828668192035251547821645126810523796715541772222920346023524675418819233225801950266036799699796244376647738292389192629752288051721770880792062590207803192092186149485670004504286409805396504083387244281033494226917707261969691763374241950779145725610354152562235793957739561124391789280584518273468081782217826501726549235398018280652224505500544747255334032269358834394539861975059365883175748497905051168439724806933393584857625754474628196995092342480797492548356864676330450386366691082497724466744342498883778673886379476014097178958715417947831111571150503089797654400483072382173674445864063005554232057221943446498603095695057961113507620733531121414537670246211510412954110736609918594073446554477098733887535506828613253856838638080653115599416087964739570764276624511061246232709894876084294977309920404699777962091400211994188639341541480762608966710714047224159165579322412306871589718773653507068430524036545483288628855733803659485648034984836049705622682748468236210732515237912955257917778686965631450220551328173421062405255293896455091744238146728237716131365682670359878986799130452612400953023052416631616596821544422787253306717883725222724068194259623080499794321853104549751449510274626040347863841920568710903955758941636927946003756525877853854750290532281129572470956924590459968131401777654502756508817345534018949782234528438475663789348864246951526302537379190278379567270221849082104419678234138924364764614887848270634283821838454194190679954443501442688994124963123007685522201608587625026427431090115681816987961416124284406763369666571561345138374909270572855983733258518904710938154402422172409595210090372867600972640269822498815784748421949059967736796227197179342673446736611184238350237879477416019035271553750285318065685546882120101087172844105481637422487502840504506026788583549912667929931595458049213177580596141231602652586215007907559644045740335643615107294169986214299058931064985212008976698495309933015879124001576775515319192980490403082793211509588213377785395810194375063563367488800512848803110402938242284350926266131719372207810602794871523639897838406378827230705989842495766380445138858667298984462948333676078630483978860830846842751635662778646861507058270573929231915461715845194115799677201242896853488152467108066588417217802860276952913041781437142396455350090005871577845066237142872000568004391348843019543327210643609199776427171835566685532864481751938633792620244551213085997866569387338791288113882616456031047815970618430108121926474826799503350940534797056573635589428954246741740976953509665844137786173285255017252679081686032515552568886543918024104311974365638202610295239552708692975699706636466885475346420139682144011405760196562044345526679832835865912599843841755859986253638549531671066179166146623219991263185756257177537268101498860747922857301834815588203056611002601499014842550498270980611597236956352258849646417760071778532021509685094707451734673301774545960427168593063622825289842735075125929609902445697406125486642943775585239456295372179645698972767148538221266147188929576517467421862485687768524275002456353723932164189644011542988883566911613868779575513035028643499885274897727749847376313393099400622604233229941089100956399702391096748571346944813665141412437226013533365785245180453386061218477844456281107686265586049730254516952640353345729432795276540023833292199555552609854213675814374730845206645947252578919536204764364406573149045098376927274250762439410316916449140882830049765650982554509803414756961977725320018528445746790074746183956115022091880299176222023172291947739280277111567556497998187668352490110537926541719883495720264435311088967646082214726001410719189903369896949378452904007320905553982187224852902324170351759464270913824516244647462953034721555529139481331544749230192651772163351266753303877080222316571295415021673889384688010523918732608814603767295814147597511119908885044734348061408772699701828914618348578870458210708620818292634551503860987339870917209598304423173916309272355765449428044148634025824100038274842529167182743067827770490270878031897610542692516733231141514579726707640915093724907482855617359816806680976333576734125358488825149224387389139302124708691142807525284965735131296838696832735195515049030349775381735216105644921349856482038757187919893966187644517994717452922582136726864426802765306259160952094775196997902067199327196376897423444077115493129936681425413012838733113183245335925278224188439092281864199054410046141788058069518841396528949412173202734636352525736857375871290086180627991272909965424776675722134316444503442148371510274411769125782941348845047977585215405172497536847675919252246924094865880228021790673923161696919639114052516682175009987406413534396931681673766679420654399588277249379310342041482646929802535878257542209576853340374486934896185481160571575100879541472270551543060116069451284919721761908601182490702073636565785620814434384835230771856630574551467561880688443903871621001050593830822560918263601820298546207139123755887736141323639505043421297558562999540744645764223752516692596848944940365451140103552749707971933831263398177591442473745330501645415846410678628558624442139780118854962284020177411980693920788952818529168306405990314393322823336396624112490288806252025563789314897742833440828779439650182364617555729308514307048844151740217619534717531767044814899062269366600674822893484847002049698633389385750549818258914657208923292846412509197450321844919977259644372377440326399422384412214026413701134455115452824707617167141662888972144108808110036433704559610906309285526358679048314257541547635345177112340479656403129793110317807472715480478766089931658731744246305002241442121928516081246173318611243322649115407866325871703831884635191787026439808892020016186424810487495103442878230007565434039102715243245876805473275547531133138119421948042680034466732213258246777065762786955888225218498103008684790258339633194981157150243844043248329620405019046544389226433046849409775324714719851253900177901799495522201120630716207795288041737460294055299684058629811110711137601019748294387082764510373601439187772501627634616060465808566462406843967535233850418297691420979511777133466605174213156621004981823605020798357677833116258193563826838795237248303452551650304873635836716206676238373655779658111137699327407530163291971876774150903096831265248859752314762647588384349751075965658579332434253633702050841864942969971010462280666261911183126031669892039082058842562564641429845849310936530345317266573606205841948204142233608442173936203841292983029713945172772455897918131656062375070309594089095854271437409261755461354900626310756653443061309687067689758020806174771448102090807323425460617430057152531495016869280802507357734473870670526066336431883543017728517570589052801050021649037240350239921362359728299580156699459276664346856573179460333034632960622643607752749932681667908486287791183280370454798838714390078815139242864583223888585524392910514807444678034249540525564184269511530287372572824237290699102235839442820156642351034159905463949959684738264393969238708428411406550839429872360664909090669467227596779060489922725527240045256147189091840480083551428241675933547921116919536803477647951524441826681976724732042284597765828608755692641477331154007395405918347961000763605180163128851689845585693243963871884555558342394845660452905388561750308539801562395153649534483262161063067044957293447556942671600401273909041996867455386263765820664843635615226515826730238551290516626192502072772112247818253516209832302799787062082638537760639678003155830586869022559451995634267310955946251084642563175661928031813904900500924317480246180190980971267399418180078501081706734195718881990007757331991389695286966207423678403242643373942847179238415306080429203545796238345657886418688176443114142330804521680024439511825554340297100509860582876766253825476365271407164990263856743652015493601928171581256144216673666451861545547947061440659234380532935874989916302030488732772243942664044288525988339880370175587359167918183134506243207340589078136416836585176664941246928031277648429336187797287004614544927459524622691911161286108766612034387913642711640746037021052439873979400990202888004882263364487169554923106098832808500704260409460281750835764309144662107117805855566389211842701494346467074952334286383366860342023656160467615648053493061698067858420542196316819420418725435483001276815528455635766328564805524043832192543899305668591622823603741674523900184357003469736317459740859964134802357766050352192345198549288647547772995606200005830154569940035194275353023699885049466023388181627761658591067764037840062522258054582645248854548442976423542502419048762779398769002010627623129091571874621883287336600175520451694660455161790598376703663444545016739867216349532932824753076867941010456158333070838190064399102787627793526917248254947699041586193750486647212066893053685205975877094540766029513790958608729135316320327527718491690108693902964713743419654263681626966438465361177581024617171159907709480962792475625723518601397171661713084083550305506546807432389217771247901335483554558473899367048953763904017453491396413774846842698035135617351392257192306823389458446337767570766261979447041798641592002024556617576232217217082863038482403752771853646456744222027526144680007176548232753443804352022580823358819820809875068730092256916055852236145339373374327082456389226316415407981464026548524752855263930400286793167803163437480691435326185442067283959694026560182724328226986635201187531541607688619986800191036220917145912848289261223699413147778232486871969104123556863241945497615883817252773062081810225657024085189114821517860726618498328464606548885185588033025106722604540105338239356501235792346643952245317586135997599118124014187014037279434725233730541878490681902436172813872776279101809459865122528497443218724748394653673226576233694929931792173780248124537630532475032574998685281620566587108971132662379770793318591763811358810252961785037650439645867417016630238436711341842329642217736377034122668093411794880675690574275505117887463782837880301034002009115405058558165502482790148248076593099768646523848614107487782973367261416279552059675983750042208686786214383205669068981648358786900450379618417494615782479667642046184710723005311780991378708142449985208007806647803660845611320370904953504698139776165420371864519986225587816630567759352433906178168832084774172108836299904978235509847093751725440535055101076905582763701555753628089982616758839853660987497117148123706856284112311606607209430515471728453527526712397608570033593238453476497059171784296915861865816036600498629039249452080092767629381453881462591134619914739837865944928802352483190105186664166383654815969900100022009226644668636887983622542164461589320499048605301908051887004804052154252542819409787773125795310271936912677559861420791192104732835734923210754897972002889571048124731650339148624640350167560457160106890404694699085454455218002159915784637034907557863492543306436932355865745497267570898721059201233416324287034257642446613973466298858691481329274591192213990660954869999192918624487406448255976453648684274777346346825004391546298336202183277892455293200815678714848378796113400441569387895472898231813846780044999483760348363628686127997329344424639702241487692681977887662590663254907047009751247405544637707910254546242456173263340700473832139929825776050144087691252913948908210995866686522939622237375828481914643384060865827472598425488741929761101978058885539865165775167941091670782559343304719323046790137251573531610933735015503246969354988320335399752954659712442409549066950135012118828369005979483179067269902290964860768488395886240394089036374212352819979311401328294558600196199593129160271180890241031905660082509074006681725204019908409316801720606476126526926639875821808671781142032904144555127051736156410532098660494142844343433115256404539048833641178805092582207938037483332900002914392571426240304916944686389380182402799890964595098972356119109040100063203156366461647679973132349755447440614333925035581847546648687723165943839763411184403659851820786273965855558113567507914189035830671637789286807334514166790609938401850731613867982295479388747894415124017610637220858109062971931097800313576555341017982964568715956488738404935876448464635863929864010164037158187344430765342314673231407469087648855402618743721375097041950281147054931661801123537300904206669444744725400603832527132635806496667067202328910032504451274205401662636930544512407589284197805837658114339962870149603036093027821195755709975905163550679135551111930418856958575703980315351938875796378597967767844672773744945515087769986435052010589569416179919472694030471293299359628650968232389158865356531093028551724879555970753776738837079506268952824702294172109174829815514921874343631116625740070200259340084202767028990195398893050653709412105666518872447936968862472143272807611757257214214802627893304837197331187665828759021040921186447863374463325995782978025208826560980755506115829052620112406278684640220786307738524313387001971515079497925369851980862201800461107627882811962050631286238470313421133880857439267298713210283361071996840912319090226552574198718685995185155332737682047257160638017199346619082103738092847593415031859582600060694103306721307241289215772180588832008553504209378471803781609103675236603499774086182961094280403893954715294569434270462581238092844960365840772810244791688919077992667586922560447531421388297320421350214139200299389095961202554857713115940589360190304553041399348299896463007854912074534361367628810120404575666027547735982700552441583842986892826628566688364771435214000775504428816943239814088239920452390053376205121920559084929008505203996199451165989132171867571129977704976484247231715335196441421454458015438827876583311499218658169426464634875406883015050186534234122302295094406597118400359525171755977338584390461352999473743720250151146511726023345765692011408672129871312542471300522011428867502781417747031758513858826528087996651773419751551320611001121784913938476348413624070470614567492413347125493628411100319200598367858565938967842375497055368864321509138989557779829590658896290583466343932122702817255039961567177268704996480372761107530180837281963115831203742544981330315362573535409641792390461631862963740620456784633931267488325033573383992229414785277550528911521558168789901166815288490314754746948966952756403725553301367580269893851689649202534244238416409203642109216352410771593490424052207418576887503902154220110642917423297808462713708659503997289521962505073763493420550588763821902972127695573144950120766644296756989616718519940924646375931770499983909119186479324606352963232972366389099056204680840604293302609631876249134694177923201835022469134511226739037005083075556735632700202582571787585618534270129063017907011333446476428564106128749336832040308392051755768389582366610983284111384742849380863324459342305717460887173211548233491724656778888987365994180889729693973258865999180616792057034264342094585196094702706621784338113550028257973416767233115168910897666328835520272992077641657118810786354207255219922576532146963098107523764500650982629045541236776948961523587496326910994878315285199099042789900291821583454002867759112540268169131776646836334546895000635810525507590327831068358649716228507062680523390704983544583590658260930658465211848132624661354028823387197730995636457685129477251629696323613560818732662751998404140074095337100075801806234775698598396870669278100541244834463017067539210311102730045396520209333946763472833741292963328418141282149072168501626975854754665344507245324735369417955313282033267728560646190146486577744535772076690241040191022749214232220424185707154478926115133825205846860058058266514431083042289880799716138744146587487367103717319492965967645090908626853183402903858352878646458554440950145225962373494774662738944688994428046602592544817665452949324390095231709110598183933398821958460327879357208199502158698344521292785831377508414416922418595497682122482505527838186318522187855050596197213519259739460559051744866814819396298657384671469790759137816315242036603951629946088294834595270802539348415521943625238880136655596606945556139851512238243352104545722231533968056421613477200765261494270295665024525767907148334210462222412836478716020496376879723734497783984958300364760451680454397754617308573623030939562683216005963111134332504339041362788258638047610676392349037369927304038767314177448233069135041734919807425675088419015451362327705551280317206270411069123639409986738259024456014118198858321573672234631691266138850578951020625312826810439662805061599395480980835573101554025131900541168231682959668673968366040148010082495909879301094724629627173196121927552521733780794004814313652733756242141019068925671328867764005199850371910902517581940835509844513360332315753424755866778299322173651472006372659686579270546631610539282495297552123933880762760807377737863696493748741356806476083396371414635398875286178524721771740675110428128245384930412092512462910702753563329450755696732627014915564817129926734007085767183704332120913023171282303822029243432965990972339240884221814271482988476290393623599607653624963315807493573325023300979791637304045003866146218647661745443857604725730329565341741324324044364475011853724244410107454315812134652300428569078308645869668987171818547949815435128685470859133445097951312221551619529643873207831819461985115044532171525919969296517755656797687321292068776058618271250322809483487805435941283728901476689026050145851960159584988850512255312509369573331093940820105154431390390858230388934825677695862450212266579560281228205516885842228943238888187766510376049472546428024120847634529121273593606654496939748575653664064780384531394014242355339575110727396019740383531333402706110820392087748544662394939732994995819208632755452125027632306939885435213665546088898438809724507708213927490487400087805013215985345083656666657720803955638235219804345247690720614670795652779737345686684507158567304932972431429273830634348082697059332513595364669624651362831034157975792582004506047115540698990339520396554635830935735400373342173751046774184881858015844374827734821014912701017050618808695192188026794662401521282785006801336093628294367623051369387865750412148550668186063405960076820474293419879128774198836272969082213814169354345690909710869215067968862765104132544647344407709261629673470689705118780171189482417273715475246999878178283641382522642286474657870705757697335605143412218437066729908280703403902093878470456332533442742928810007137883006025924955705866650347466330001705510900752731072852524765417859082551523673779276704801442410037684634267256869777859790802873583113303532618421744266843550505622604438948643199795998609702972034824829679841483985094422151479278630870194447004633938263436645014048311788829749508413246252425478678620728811901512188970004814549602687592690597061821097507116525844704230184970382901227700096497100657748403922836999410235770839520528668352638098555686719775773608417067822154765751360972511790522957961705720265223152388127468071669249351726585457360281943422295093046091808178743642495697196313482588342946770442225477694039335917412565275918040561192631626041595302572343255592029928252041297218238987091870255893693959604814362633567541464751849965395329342630970374609723883803610271426736940200109592916811349094298948875505716765546707388836174882774996209326669984641988172194144243441540683271034028202981511392747850290430694597437351165259226774411589720527718334808586889756905874761507759912538855887021701985492242223001052194235780043875620029063118856351580688474750349355168919024451860784848953208642072837837276257641733460702250747409416718532710070668027767941971332600199177355883497641591316945476818884333359167136366034859612592468968637398856401435787334697744248391059063259182320512495317499494017933595734830512042509287812528668220781904572636376901678150325623801074641594915171178523332237386094829807911080414293508976403319950613721059423032107180361314423478147983617571090911894937895053849199223261723277410422344727383301694937537668830867171347845137702271924929681399727378372170271744102931561693081832415670558910521479452120028886826307055493518048686358688331175735718930337729801496335368272773090230082441654205871969888536152599779312862497667201596083989288217269799684495759131681756977204732581869371771101011588089633236723772921376671501580764163495273170640767808500027200366743604548989915392843495172815975391807103630270293749349368293486939155326309280084330067334858858477336250811805556238838789049969170087523415055773020326651430036061832621924236449073614609975512583787633903510082562911289120917761999777652327415500555887268315193204814013626033759064276056315831931276698845148296532346414111911271554085919159239655101636397467551417374700228718231594645368167756801950347137601726715943366070546967269101817766464889846081195105502540716543539929850587964394098057313492209736231517353756680645439713919343730465493961223967468070498058181471012704741691937213114038321693411904143693942560135010915003468771536872632202631819811991145805949796216758798532614456987428485498635726257256633826052998388152546099030345388903580604936023782137057871566815584171630380596226738833389150640842035775273602080573665796270794132297324469128360011027433910242594946123888290085704524983385029183651393139805890308276009278722495106708153289685748409848504634450167284079406667493414131844394907676053734675166640798196032962761300612706051428062164023676470956853694355971130075917873186752014475821400803303449625968952758343324612140311609258304443199350530055202640987806933999608685080445849196363242022536858234849589983872112928331020162913246675979916315255369849849387677527078473067978650374698846465606643993127258425203938746563553593728157543100251718761699038634919892080226965741271711670598838352667597598576020659744571041490054516281899453252995391151812872915956099099230771440217543234507593299482349453077975758477007864827111469940064990092523656057290355561439100457531974048710908138560859085445276496434875860321483989542352040570144963213193387503913148525195735393982387189638690102705052710245549236878763950520791111110562298582387386373140344781272415633649400877678760757635583202035290492086322751100534447444748190933855165663851277995283068928751288442390251477347685439281377316456224502774339619814050184034981500232352692057431540429374280603476599071374228976711608077484072360844252563078846923219142251798965046104602140627893777621553064686771246559776232243079324000962971417640895360452041748626818414293530013565723918986844944132319822953224547869810499680884563356659444278049872743715836760025803867574230053551771053169781603440481721463770961056098221144983762713176606611809059832618537757335661078303421381449009054181931402721901032585024300679636716251227440363179033203816295442599169661808354504198874926884705143129863664640506049430172640666433662109197920217751114481624701676427047866328980430643601921727089707938579836636871432355156940193017839108406507672787539615857323594407046030905781565626472954643007304320751310757094464074722046848065148108427819882497074404371083801954338376272380744626436885272301252908345996947491763690929773096771224943411815724247581549113823099376284507286546130282213102659813647395921505299389425561213828249783982604281250591395136609357908652170954447631157810817980040952533816161798290677926015954181697663262247158549438350798810530124915223378399639029795660863197388168087417160136799246633031828525702283560225773754472476733726371926667124053522419971917648460136875693834356534250113216636458983838192240610581416579782649641823048105421751184462170478588493211463631698895581241438498328490204527685946893600436124306005270019769368201180448539284084357888724089290730794246363830884926376790674237398692607658360729055471616770767372194872238279941404759380401049851809636809203634800335265597103560842616524442564435530962647167282107941318067059894232759927490826942504897377236117548508531130646230876754644261645382681250076441984230460067461140315780348854813841501676370774903847245472804903971511371966542881449619312558695209736098080165455757833057038475144530391641893989839866991576796509076243789425663300413341473622259549811832555820795358042353237934049074751254101587869523987451619985226560381548870413951406233801208935464279824562087315839763168499499666332617466229621918779728823454417820625062523143870876152601508420233909223801838655978530503324083865234121794305776374794060293305640330776448756719927403181350144839787851364317887599665305829714200422291191684798846556611206564123547326724862058096679750447360831403629456459529109490622710478552787832234874185910452639366715210796661219777756533197146676749300451535925479173439133559116924167953346834500023003927214518035987745004748524316435661023115259160850142150541928460555078702891708044909586386014205466997711805934358298232895691890300370281825719082966874276175230579244033352273114548039876538964640985011824069843016074117069831782237817264059100811209326292353365770041515052126124002200936986944313635336036650321352103971352290229117793686321341585402653709747025462180813586509847115213978512645334115185380605322887797727237645551180524170878644090154720485561661729535005574719798466555068892848056294230082421598829930771826818211994210592192755460889019096222382208239569317193916522537867728987135536247556391393949140949451720139740766549745989940694456188394500247878175562737122808764600428743440931912614976185777764182191862266739815861264507049231149734285569923861252714932346951087184666182097456719587443628916570908702243163597983865832396949085244084849268929152022073374888967512137344442090383765337383816832540133761961644875726560331649859213796293347798898572725497937068291783589344648935543903426524622117658506115484861233314989295866123803145704420579918719778311207994133926336504997234697703895513902477329277161783622876399120153173766554044008266813912227183014858113534780381160602889095225388820020069040461137428610910376585897411625291867355618294314366907379493131295263247583154349614954885686098051778481150894589501097331158316039706819853725167658916623473750728729722639862233357464820207748248292847859277454781510144819138945586297003490772947343659964398843156546718072024201518292422396548907487354735562589673713487076668081879788756830664786908179279274312137153886829356604132799722047068927197637247761884819796749111999377667196017028053819649364939534651474178497208256887414572539609363382092925572180502016342873433376645164980083175509235638522102491045187932173918912932834345399948077023533319492666266502871684350867492444837164422959101227650739686556559839782238340814870706556428216952367552843859177138173156361926856846660463764406253755951113382136877496527663639892515348516624451780522376064699971298671139187841754881095245699330923194221002645051563137174200533007473651385509143696223608076026665282548934250992419618509531163486399360054247329437833420329566137922621524914373216039563692650271438910083611031747023549315436450226239004430764541213370718548181203165527920581153777071531390336238634310525598454299288625944586929509341970429281050432213059328325517321824114950549519785457678174214059383937667496861813238498787549860674056869836812771612224079931897716443851650057313122722304517778895619940885424887336365447483985632701705913906449204863882068385284087052521770834840759392147087186146907886794052111145021623972384953405222089926660504995876386064302284538156755070038173158466245926689579539894803569020376223074389552749016566407695064477678941852475445739560703619138853311880937070297066396909013267791317330110037828515557268754611737093526263613905306609848401337024903841580246762249372340702702257529144732273487017721189653658943238248903183469456184276229397890014883563630581889501143390847236104795068462407496547873957384831501433795564045233411793391103054947228927659269153214142635978688016724660755632266798945838474740137193657939539481148557370079955927481071593876707755431778247909382397405388839417143510440219608581500378219407277553530532627344672324809305995999172141691872811023761713859580812853382800092642550759089373994693489512761548942149223701821090967397198780027444217318359538006475714162478524204570661765011386952470229428449553668270340201605830907202877281544846472195776328811721547401003934357868750948353638254067691535311557942033133866687686237853460148843846730225596707413951134783480293637895860316133701677077683304477591313714306480365798747658698720443308681983382564405805034942801965545308914587638147334303403522787842074685942554193985751202793056346780448625965700336897486099616980241974753603552536659297820380796634782112354571481114222110103238493729257771623816144344777092783496827981702008254974104655683000464402009109389856746592135333490517607892868728497179716539025423379222026639256559011343291369736112103848236045718616839172747291076892738588072800751158017079995951852567867817728492674596159714384752882195539940655122468258713469288832970105330899194666982399682042968370787275243366093235055364205291588301837900577134969482949716050806199348396758758994671226376754610278626218131047698739942091007792548856563560983699303543629696965473311229936236188706882956377348673815740505987199852156063567664875263961095764320594897175908586650905338310385489384291611593144074510650056238599428140573165246399611289412682211878811887692049148730815516144341585557720743721613551691913755380674809667007634682623033048860690369719188346759729571823192273116107459888848460549178854328118199808564196544172089743295227767605819552856733028161986833552154422074627817426330488548767725591973945655778077110174819154680086014425145593901490084999024778360152373518003288384970689450303548609974116597959087792744096703353107783839606695849412034167992461370065073471075798386945855167578913050033151657604275644857346278338280987031439403439077574160782443816902967249783861564291746574832714834377304833945301216705023394523279992470175081221207378679183641053813027318844822457691368270971177157808718701692322799498798705069005631917633828337215268512658331642874095124924083059360581365205085835224555932867382448795265857233101378375389152120977631116204903099767895903821910201989362408224679407472733502529139085163077812128656366907282365324744903542249964935738782340734036901615226584510990156752663037989181190891951554866336492916896280744947412544477181778955134555290099081391638991156827969929938866937466092169675565389546412982653036478356988864962948339623294499317644018345703093824100965387141306384568529948170056974433823563318038940622462154130400797542178350186187297665353440587474808336324462270850489045089156786044339250161726549842020742854149051832688801004779014682613532021654826299444839261304289368815903873444971283917586301089612244555884850475179781399093113118128202963691189921564642460130577915412412642835143785650094965125667657328503616805491414660188418590857187044649804312627504760145476600572036904175565710493886950986693290696232138769005451422312969010724412834465807244884132655145758590210408567226377552138892603532406290295985391477933323015003955446620347626833804718887043907320005723561178347446559113223152861965594704948097768817967983771151298160386541312883088982327617950881213608866808591665565487469083273800628957240508649788816514466688365937082282888942238306466743205253585894586174913690977574245933329370082276000807240729079795211377107303296978314002099829189772209818845814782322499161175496355197868268741619084528106216341071262235828488574883150418344521030744537070350771357682354021662483181379741379848858887119676943917560545994718882979487195337898192838777216503559473112848479822064695944722348023775244709028550563817969051308449497067040729836369789084187865485286199048442004971943956297663542771852974892537615916578914415275759681852652634515113996806052702568514317311401874772123005824000833646885220286581211045438967547795450938148880389944774873991905609623346291039602579610427420890951310506311318718294864084500099230016612827968970593490049835696413814837529056596771398422178538585138786040592331760140782700811225239364646327804962047861217489278873885412393100237867045652484598786296271060043444598663472545284495949237948126320639589116685514025990985422260101021495346820154587484392975625917666776651455579761341897677897550268784906978061284819537944985231972627049402709802598352876908070303213378482542039276783620639134479142814267255362470073308682231613786215825310490938716922945327778468951676193826444132129231183068963085072302393232553257396278946209538475861153833301420844876516460659852352746895755945549233848921695953121371146610816080876747531881698914612523849481852426112566062343372311291080777489028885640345148724259442505583518514422100145463021879268473741507418141456876276141252347578023206617345513122847283083279389996308296682956023847334953841711059173302400247406795388002510660800560271140599612637525375002455812888457370743252054919904499644595796018748955705158384417789277933465497162401004230619462888759330245547825165919914668170770152870361048661441940970900780485215185024235936329235155306643019674447153641771727622028791547355661651148933917120817073346818750087959183293947667800047453472534446776845984916313853891676102603354611944608266747159009985260133644113220526254259338738823620153359821543392058071594820605916987611368507557685720369654751615859582984815872657185272647559046152849942708421607406946445961824753746420884713985889120835967451301614100541879215776112206234043890308047779630099247204193583706381943896363657449070499015788527604859016248099621793679575962600675266478733030949710762563077706479723956479628385619634513089467904875894857682866233753271732512406400712630193164430800705789040122879079766664816076535732208106043339543899999124619604920823335531826444977369604775377910717755246360746724735718564732203263428754065952050297177573367115912875775946041079961827415063285096508941589575021896995163059825009208733944700258887565259856934568228832691940852237652557280402813795151833985144068219712411044376592727011331456569456161780650336721184451212096214943168497019662717860966417922849038169140762233685225710989832805127059555415262501716259276357822509610010039937072672807989944220039029556751237094784738337728673833019751664668949682417901854655069333517225759743511147083368636787254386080639127248927006528886472850271054759736405972072751941704113546942164806225668593185249156563623261077376787633887281895857701631704351109479911600736668150889145145187210936568303247177603668408359429171204637364752157276730404966504752276881992507394992307327317747916977119204418689386274060452108723886377442942972877617988599394502952755823678901592554568993514161049185220524378959456414653799973700831909112171304355429266724648615177506155309005257912460351218817970119591433884187319164501382610331788434880178191059737793864907657252135251799773022862189115691436464601262261526908184565603319894767272507328235159367690078637097676168534759288400959586190564242651335175200471575909713248545061096680698146607642515748643940458746049090360206214345739369864909334697727288495241821475593038346828522692036933628261719957070324797070292396021521047380338407416185373116178875135830477021219928134674466164611992657389425237672182683145366408610318728245186096842898322282124537260294410227483785843996256310993153064493601814970593006570912243146987116913174980797882750116395447099629880026238680495484809376087800428228243361961639386953838146156196684470665281271066389327286834655495353858647158931180847083682600537528066562284026114003162545772207521446492290171030154041627582679509649750523965071437193761859125868231643748185759851289544589002594403050795185986023626000365567311912138171046028431206117385125037577338209209623445425726371029979104406128359427685630914351090776621940009350757279016293955982910231144339719747362736098264275192838903692836237967874616198875977935152255063214784489223725747521097860708004977508525681386465527478364279648041746275132752561900173278721098412007830900244548600947648808970844047333760828379328161360640841043200498863998843128732793388749028679340493845382121488252711231912618764203789499360156545219785841571142975014229230972212838304498429744096012107949483510423736231030388932761065184695407920567019370679312215448580596262738645013791664448259795034602484268074502865078845189612962479645127770536275753222044140576552807397604236258130988609846279017148175364929799312108979904483502728007381370249967140658624098176083258949974511113463011782637154468156490335437273725750667026174803284588241421337472751270441366268072751625603393838581393659467971739757435428982870155958545219810180682942871583758694180800482981659835719182279779503314943705534302046779341090167894645175736373360962826827831277520365478685684708860813088068880030883869460747740330914639073575058858956768594862983445414446165039009054866893248335675016766020659568183756478882754138921676836072526590912232533495062615579990747144006527897794624966469218747503207554040083461006425168757078098339276035766733726547899150246002136004976866750025020111386401805125073036164466408363860529325998239010630178133334091457343700033171833436654473708511786542802966839620507192104526444838668939995514311437818109900197495382871413136870285781478637861762393950395577315128246768167192459132115469744290785053140488139947453299192880430585705998435111736207915862990270753982511308374844982747339789832211500602143786833876236470191854717000306494147376280220365011278076001337048629576824071301537597162297055906337800052899279466582238095981567835992758939788427164405174455274039230954589518752828275032595789168018559983278518378599862334740884085063724260274171280923216155703739906209104842650784462103773793368806119764123685258287322899652889864320142711474727799830948692649472015541371777692870746565605223353060892229851293739592089763281365818635030805127838195221366473749288463534431491154474040513317035569715989203076714674095868943129662912897462599515623669925192748244272878638410208894815705157617991901900833938903013852262039721310693910180557669739115084410029955031690693059101708147812155096082627888257018732191108069847689479409236745643633843470959687632213826851793847794950352102772541999634704978392811501019502247488040509191819135953476769515975108411567085243486980968360964886088865096190840212596680011414713378553157183027438605575473123397626027275468381698688163329125880236594125205672230835757487280620063691914413993095662676886311958562606034309218807099840175198789213277388010341555917145206942801056046826596686167188404690836376124708934043357491516471585807331657986813920005018675947580857949208742696762150347581711645279760602370221165449069818031618281520431836518007391656191342705843227074645285429554822214314687609466204100740579774695441975353482898387429314418063169040444211709724443001466515131235606756673030530418636589687264528387714954648979401965531997250924659460393815140251855424814853538090546385818334405884063311973119256908029355305463985354552168346710086465264782904984924714931337565220207507747336640075818135316083416733461087733730650457588986947052571686339314696153826253431783772902998518385952209664449147802543781071142696727049099143353545082046972846571925050321732191306007508540057546369123514891209065148022319177471551447591762892217709284273099308657653159155986940436896727630295184420720165620691479101746873957516738634157022998436553073304324557484095916259136379426309661857242551372721518428392687336641479379560789466402053895744535240550627930390937783322664547773824491995412385076797244535282144115102716126494910754239101962897718443893128434174230311979681508969009325498421418300602595268124826391680559183860313612215813755806259730999417798004169646914443937365654144686880874685593936581034277181996769467249768184614173941178280051928045695525780471363202255844425380441471483429841901809503229895565061160587382319194455449779665872403960335447733997754519857158611536838219557685264840221465462224154305728672332178323228392862387670349236464239141685081855497023871596889539447526266220321967183187280525969215662470784639037397184989831669323114051943276410908861618059479111116479098907687729043410104471198282456404221641984050535575007854754966313369204091020672750028867289711419212714617029192487486130750805653180612607983946803977370777350126570669653602306461158456690126282107321013426644226059911766594994151963926893449333499398937574442827639140017200046221690361067826234725477007632704923591749524914398829847934138593528989782885525984880403647562768816522305363503590720363008180599161951213568738750658736038565946256314889714240944985803412920854463724740833741444935046734206388767282663195077337729647764847460216859587904544702409700438628259747677028755863516580864726994938233233917973032270360434127253705019249091381179392426492533443366659546421326544669469526308002751001582753406640314146562818154988751999558890258171882676602233790974649117217231552892167415273282919967342618343243332386876592383578014443283004263326275336096772423984123520809643015139632479496171536268762840047820189733285307001061893046497499880539542640317989113987242473122708091242146703227961905937441616380548286788066081948938630919948876824258633949107815982429374061501293576814264929535273239244714850886765748587614463376666910438964790575776208364269342742797515667186216492125667600981841046895871173049027128243638782393564035486894701942306819218188250386609218010321045699642436888558395308487449246616522723703371097026287349416139961021953671094906545178475417005960368276065151529735680402380267782684097404829385224014296677682555603981562692088627491033285530574797033419569949026493578427457767779879743657814098373648429746536761264925600267761296772067628985087288183670515198895570834000013561371610753303473546354161642781034983192434761062101518416444690840695319646194056964128262710533946131793475424486098603109402035555677037539334779272649444911243282944132636900761687650363345358543776574951777979513287090230528252600815510354614558840790127968878435901712027291701172989865752721800092533033615742968956663012683697699688501158500929567950497319471696337286391081524889020279851124410948033862204804374790084548109164967316201485209886082486506358654454275611426043071724438930559404543496662647109278685121727752004204340904700782844493689343909606418723732029922557393937272744831458625611548051759327621606453337704137247863656360715381524622405880633447129104051287005458436454782263557719206342354420084506960005663957708018535162524735184216814802610096348291012962984454964939919303878372844231296984405371840996221764747409174902545641971657060751863825881557753712774324041704785173175850671544302508852856578382284039806754004702037889245598418209050594134165055504792111557170193840932476484375237390930845222329378638109197747169126652298324079090458452586208633241017418896906490638902435533342749275382696921293688923722283094399501942806963168770183088264331857828959307338305921843484712285666440251743968580524148361172096875492355840537447117759657571394422930478559763971457789085359292070661157185233025686897350939233894281585325200324645532680070275329786959507443099434588547288837570048107490414981156376297778950105886095303834169296045268076974801725792265361545903366885552007367779312063616976901258023863327531682415508609915834779151405351068679338478303531480278018496633282420282034092782316778713992553979339680730159224556242352150106073532273632331713392627592786816479381295843454479806151708263258583215544235933752813745891794788425936923738117151941594974337473794337572748443257705963693138035085272177623508111126178693093443955882381623377247101272682225838644550998026577759610357437580224503962581766175354047155654997151349205411055207845995993587638102356486977838155165683027354070391753479428072405120030729710072651720315511644837926298262677955126703849425397127238743561943180170611011986143908139417122369272627644796066544734320257191037298739129869872052274884118776787801604740155943823528329052528071512841853531640922988334571232665594076164099975867281758233981477933766982100151590331587846619424695607069242483078753586259977588977176115167777337630502732740613270194309489734891318366336723457287241458952987659918491117219120375476870730358434661206441379170784590539096819370496752657058626138463223162833044518593336234639801424623756539320438123621822003431718607519554237898663136052682406976195561813037350588408047094689394998597773713860563037351045205115757399775211187263041447566743992995583247855960535565075408316622276933737126190124503322716151310008362804059677396326993086497123058198279106403628788327203667534703091615462024586938272584731335295113216968639990923238522388556633314666325980617083794500447443414324100359846579111461329818270602795390116520041615293035624090322448225029579076587590350646198819079290144918139239255100482375581791912644368939293713355370600846683344737559011578821325265006354621342739590298208315547485845402541214063507315199011404227898032490518503916859881877537913217081777028078739566530264564304199772815040992452883489231718488336067152682201420712449410631130086225624185927454076080081265942663930072364709267898253381621283990790524662057546352101916531548381756651953168701857226655107195955142201767934701948237875856819079122564121817829312648383736346716697254098258949973149554739110557048093571419636937294702810498586652694831366705353387183953588616359908804082073634684453475676846494975505684868270953376518593637600905350163135399668453002858129967630607888149090477775645500935892427076616408233729029291850724145557607771789270976387648558232501366160854351298187476143147690656504446477291460636432417953812361310844933443851456064812460853808076838662544828913114512800741802623566785695850941875220247463268783282898265554223190604589037846762773492429015399575290393608325547086179857328895771670787437055636107780967833575819104261635387456748477720747856557251387193980199515320110418816766163602736905938067699702297654893547192344106041138184458449368441396547749588523532099225314160672601559411788650504788301012497204470833036083317446105932141774155157973371970221938867692901409897975355583472401044974712783862274970875420227367595699424417585204575415724997991580428785638688370543596286346922212155292206061536841082640611527520364182909139263551408068657320630105789094086788882228001483905327858741113595695628949213648876409474046761150310404995713001283947650040157426122615152956453983131581747504565124369243287809041280228452229155470328836657458956913791902876512678632577814741689027755751583634982345267794582146542786596171898233042534483338154349290885772071586262588182022808211934155233203917106868037663614699283255928004706735006898984741606887958415447920849784825208506132269147377802239585572295338106675495175191899887927071855097467081132676240677128156939960993237207064995871132523684318357198020935958840790161502231120808303966325584772904915824754944655568611955538795012138010345310685575251015656740967907085225403729510845371558812771839664080105927868664805586040009319108256549470768893950358349904070650924117391509757742755500717050417627247941897273962386389032851747204348376839479196843465310508789093721642036575377196199266294050088156937669576612282447421795251094107244891852177558749692751537639693821928548032595868388882936055857402096181354308241200263693651222935673036160933093477766689158004911163499789653709286446731238265590986490752793305365612780053581880092591900825134110106394348311238790368767326476588933914584740693266328689757659332023396618852554845574457736231139222307639210088698231638423150795754117042208321843976256542475295401740677081161126385941105905599180870931961777816501776773499879294345564708677301454334348556660530028984964110683453624162118546750043368908004539704029732485944153574000093834654036665002806450717624548338707620937404398444433289529487810196772929634373815852915477466701273093894663877532260617140303384667104633264134725354930510136251127157189431682617206307120523285591373656292656016905543908773725160123026432310148643679142584292187830777134199259717361741537300296963785152502853347230059529326085401458838430848624438674333198006430579155574343602636873123677272497510458715513890744051421745227843559879777814580897765646209684932808797012445062636103225394602610679123435557851460573715092940056689782928574886133956832254644582603564537034039503378460376710219942374292705146871399685415174335277778769524986995749615427666722862411322548616881081917510809004759512857254601080373712631300280095819305249472578046623592171347901727466399185349082339109456474733981140794264476351347387752144599520831641527657522159288638613978130259038212088257681628967651391739720681098305534255276352685916601323368210033361492944546884313534192888091309803674732576220179230158602206110179065092455239004398662204321395930921914708797675158629107254502573537099303689919077476127285510830060355629577583671864027292778036001112145257814071208627209938272210583906288488899809110402268759052281050639198928882757262502842904988947312335717457138295922455537249663627382801141092442307601131270102647765446123966020825029796981094892033028084908238753167615915038811596765263030653535871638415868385536298053140070492596956034472441840259132587152551135497261389965673057205600703044437709247993167879866934170072963501453185424937308908620123890487221861186377995052906220300406700306801486211585685132115846217370207342686677739500487571711044652728962355047374433489964582913623341278977686427684605558763715172788295590217065398185071972962136545957449497465268019569457435642458132904510398867427704475039090991835503860951782772332272734183734189244071734598531006672424615064107873988262972361952910702397072189272441891388857744335453710889238354210139399451840624084232734108539261613354610457521268416782794142402341057163644019236912909854210613253833547698650145777750460883294226626222452786193432722247357864067701106002042280683710325275509011951930199534793702215364001447688673884267920711043223924366239104078813120103088850091469263034328127476002246030832790910199439815045269461930144494770138082704318002239201069957451883840333321199944547292173158755809688086439886881290381150149851196910529338109353015624179351508899325345806117741495589681628159470191388647354568194626878754347085463295297635339107380606611186909305695701689148966600972385969145010063167786953165455213781245719358407795639764718665129692092096507457777920250267667076063245201240463097333091407960879662281193334300907699161690935520649563011745801907824119281579316249210698231505535388107793467326931547276988243231663533243447591281151523986396202345067871009707402456246258033086993798640163732410469287449641905673187790370073917961912404507311568694197232708229119822030568174967822502547468515153150266619617734589663382401697446227295914995093111919126832929540170447014681536260785781716459679717609924215797635108192153584214601935099614357823040729391377212602828679995581341991007839952004917560034867187304660246022610719280810610502547779860877166997780132143914376673824212849191116464903103238554631303545823501929558619214832705736823736707454828697630862984878864926417575843646147260012109921691141801835204232620191701514612396145033722002526160039494717576248422130717974541880687428952157361917125293991557857241262862254159280581343404952310702438852578746995081883911327121130750911175523818264976656781233043873438434001884316922609984750105507856295598995321796124577258879818476829386194930132406592924780671381895632110867270329602222155837221720479427066531264716182311754078852888395434474058062297358030113713861671843948982991887738119054559727465025403754893288684087919576072880093425314311988752536193336601076072646922508971733095228498952190748719119599751093645159996643938379240622670465074477946638392705598555789665854796554525514960998999518474035254629626537006590308422663203798992078039481285729711774842916199521854816256081171572639593184847920310970028337268796097931118140363783504338759911702925305500106258049706985200407987960720637797685946212156563838341063391180516857620734517218237325492702161140011436141035960549097863007921212343302398841561320963492972444908344186054597659928054657842686896566700642069822966224503649137750671515504292944178657924968559980689060735299194691998863958557174063242816079356924914267368351144164643061285159924322088979119419630708047714478572118521868145393146134834222290587267200827511333043109029592879309968291154138991321517525475815517978276457814643386223035151091080817791358643267416162974741983002974225143301617181694132524741882435984419166935615674501443375957152826405956116665301483136467716650266535280724140616233547942174098442596304853576172081568863524712999544544208490641951278104319387262582651963126463298155537813224936181470716422542975090130496299307415732849894648934651735738949685949937451696980471924475135425808564855000960950755107087744569629946060108584875031421415936377951278372206158564735412555429937933525992060333244827900866310200455560775255918238010105592043753022625086989383554488802913100714267962995315278404381361410149411867334819903814165383117993003274692130068652086420341249443625243816396228264573876714804115130640871892523229734386462394364156501399379990155793368681941095112445921746604674977624481329933596672062970751926068424995777021964889588746078068401802589116912585251917891855456471346040380262923703553212717944163876936665051487996909805211199470633012523121400102902611832790469363988659234262574167307413908748952150510861471025033817280838193555828709036377925332619208778961080599800368839734155559488508990147833448968773071407178144788360688568830292151909068377137468739550288712160680711367429796312680640471524815058262356602319852433813660149329996366771089237443223770623807146012979148694691384726638992808192709597809486058602242265248821468677952314062899507406657894416470805926367698366936236101249078388558280422349786427610883598163574792775927866400496081733749357591698800488976167038035937666241889507980125863068850703149654731387244606983352105818457797236522801848253991818804681322102396133519239816290798798499977228152418857123968282093707738459456592412522047865330937454473768555860666968196869962484569068994556392271969874289271710709681417434131776338373848654787316241993896882441955394867572638340879611568242101491086541428763862464751948953761622700769524070930569568942872014987934430081241595036610869959198286604103862759532971498407552321770644892362924711534655190593586609724196055516660455976968289924225026305489346685911009130670728879743158824621105558386693710685091991284576887114613270621204496038400070915850458650109669486813355855159542790751418656141521846334424363699625575475227125257100397641359107568551901732438518023730282716346646478728215827209687814452787521552095703880030700929035908038929300091666638899322845751471154190334681303318346919734446720259290346115920192907462037220331030625864140581268310030039645691321219880578079998815157408165365027011339437241518914743233572074180418210806175234218660521258922870696266250598916492600699102835185712515792782402382110885297499692079439119810573526761688689972821523299188565008870073840751757863797635435016365086726310985839985421054062104224507233291457179759226547546431228507617985300036340552263755702997904883637578644906858534860058243969095607319383746073076130556984017401989453476131170490488478469257926108804636438095533151116909413957636897430590123807266509774583449444703858585926961906646519387518881233708285806518060289203248230787417914791398688844619402638698820469062632318825531248226099477121149331079922888434120408119917020647508618053252011181048272088728592937823830394994127450704471797901131568651103247916193740180497718476503356226468442672380182589468977247312208461241123619564025242890212126169111230773001325157014822328921495766569301190496518711543410711909288712497466317522709936271553826746091033754031486120526088876334465514083497300323083638072559174804577991508863369642579655585188107727635653365309187581153943509436978008067661921217070269842724978559360925653119938685038357459467433814888889226468909677632447412022164638549984666448800249853272580221235391770451619683099700300716941933120599554451136209234780269209552608390830909386983995837686174504788881271987958710556913399781104034881350641727650522609541422206589453522622599481506569835497021335298799242913338282001876899305261201745424402495719527295787159372750964598908869102515407819097116758596340674429758442761950389173811481838221239147777708840912963795064255037006312814176886145664731649519491954332989083964402905700934525228763863527545421466883971082623306366436027532489625271843214708526737466028724705145304601226215472338128172660029559175314688328010382281827908220792680026098405790866517751722644309895632120190407983618313783434869440399417197523418892892077030671591370505974125269585198165597262743939080485974371217590899046350138738678150819134115048526634339234337034983002055997167023170463789176664199245263726746105595226101689213138162097942087637432348301702971666664029137040372231023505413076847873530171904766286410988210147121224121020056269544032128965980229578929457038798198278382949977803086875211834585329180195417463457007577088647845250573219942091535138086300179250189443330968529476351496457135132968830950421721097953570259976967768646425683572871127174393088466585544563685914639828911692593476992970829945867112264482435654480421912867273212228337466602160857952437981184089240718302844702513919277436708837396946910120058383658045600630766210082603382965840807064445002239496637618791905944155351874544289827738167585486782664947215412753297382763493329168801933042819373976316441350722780195632697043697751174923800682107968325218403557440918377745634475854802484125938143318039397597602508550031118636853486762674007084490042287572986946534682518597926801750367334728499863180059993377411210230109446738682455567511427741756334512760569823067675941673034166720854437847242974629856921706740530256387287148575797667562271380004471321486109102729156141948777363084312023039899982892438330115013062616049190472752258448453377548659477995149792627273280748263362646588010751659209216321161151052016863257460814255867729278796349157765719863782627332127752374186158289608482451434001092008403891572359769509418005426587378425999598785898623191232652393958187913235531491894730310247908644909061896454864950260299419099687668261212088405707012191761011725646910320711681675294965767106814970722551903447532196570944215645207249118816709499581124765511008615088146387412905812744479326987132400563783199852890230533901477294246607083950444013615467341320019711209890448429232094311866823356664663758290433342264567463088441013204331268602572530560027622608769787475686432742044752331024119737625967469446177836483490171451626248501947025254182661517192133971198565098610387007552386704646779487974101402875640717948229988690906710305824370636848702201241711043373717875551487674228566259632112428700722609262793454177648186983709411571284153308821358299804488651412405489843171063488513602330189557915820468996306500823729065941015693382469842279423842839900496933352947924424061714129695316437890358247029296489247553665951430284612612471893301067339916061350534705566491567209489852058605259447935057722445998864632884138551531404446985264619157035806134988518980167136707446810982288005242440421853834513541219091099188025177162297557417422384469093240321718465006944898728264308786264450525262459644725829576423972376095487538649595589504217793046912459203873050482980114790528457074968619973010077831603719346134459811870279398858197659793536762467670073092048153951211229539193079095145734907322235394746458677273707518633341833727274147809828651669476096572248187743970568020539067649750878538871637389704064696757166420483142899734452249633806921937792027238500134855543354486556537193657968991300398323584084329776841288154046469092570577991273796280724829510780984088789525306947339390261341078646989671639089848077028735370736536838154695669099080293156038479346152555938528302131669465318204248633476503050458998676754829306515577693967462350289749071865006256911070941543922627428172981207073172104998875710315738837546822092656718017277819229849188936850292062156226224447949232671253655561804098058007644758688058332014885710156706045627182792666259711383699290555074484846312643036147955361230746088975169610962679531132493587793027673588565412874471831448683061417415230461223392090902766857046222112174591933802889013402117099271695122044230985813852936185828733422529608357118851607319368376161701534634379119340791694286499844840982094431901287901151099629000897336094647843970970019182268409536444570508162157707570167045886092113343923335175112329627639445269848962632765773879773535864611002828607455508056381688142706246087612042918768386284993520027592815774119719332760841854865717290763260977392144768458762883081002219237216481550155990087717637639966147200136231181146182301340140923634168324246955464987255974942189267577558657198192028147394317364454574508483626608713215660649577944741509465972075613742975904421334278137922317537752570557358776962075804025237557379260556917006303698274692778435181439245424524443467646520822865122681162630585219016505669798600252066041718229370284084313253866836611904527417301584915484306260657581459286199079665762279046525285953025877238232945851668042099673227147076956283979749911447306431003034865800467871530629309026617547635307737341130534803717337327613463554206923757499819781836956652943832724656641489575204696851999496753166012348302872676694614177223338456568935265398056467390285463936835026504921311154030526286441503801521775093010971654671892969023784374366777959218034801875341373968894821325535198708184417322713657458940768362090363941374396847156364691765811726898023679114436824547498806622035765718655575876108578553144111661638287669799595332219948879573738027706000240460603506144487694908569792050821159928703641518135479121899663960224355265052664402726951354998899900321072792161523843451059133510724320427201645536122836241180551960179068323565263627539616038006377679714534519402576264060104300058331866500877820927161460428050857154290166643292924856153717528404527135114488541004959717867388490279629132713697109034447691885986373620667309766109788345471954794223015032090168188961705646028866274802193474176993257002138066235211366225451406909490483920737378824185358422087906971903058080826654349801175978975583846665377370138969308829781372903479195436666212541258405513505146202245514759785762011144905782718182868363772702299031222312799246936558610273475277080216994564064482673623909814269497042914125298144122667949674386604176497894447929506206412324056934885607887701973426967040393663938334239597570995963400095399586592559101386066520755973184353002481944189242085887246173949502486848937002889393830691332855733536932264791836737605558678960349088727299687905732837971389452950920133615973645555831949273163945629387558489161528282706494997378277949605462195985629611232409051981872970414948691553983049545228916659152854333806866830957180470054509155175580592227213481735632168303848103845063692025388179208050482071618418680203622040649474977005353507872532633715352112327535776776277794444933354509993177659471902798747870715734210613286096685207489978253352838342184808776121828560581719405406846316258788200025837050057834986976747431357116407341439005283458916583707470707548170474506448008808073732438373611041288462304889452249557428689189812186515359482388590080297955309839355645623538373145374931249640481429575446429123560252735730247921118531763713133097431032993927528320420760465380020594616412069804029951299194051431746143052634606338506239356558187256265862999325966084060611014446653415373736558382028354670929612727356206697781110169581879755536645711154064716933038942755443697718106924678184195788254595024078421148262380881299144043354571492655527883215420705961900675893947289523438937653805182620712771060198361313343387573013876853556276069781676773977826553137865598557942885176021746857318296573505402836073945878469861158911633663082558846066083140273927607891835345823628120277688619729477950957794642102423788429104652926770314260399533505640196568714700813379866963334277707152224117684121977766307678408587924204893048491205886027592037887244093725114225989514562652815423472685767346501841602678531390041975872831007125956975228406013485488503318292503984984989570467787573411340194856021057730835018107096189758332076805872010177835481854750740539816193010100509689734025310949853622386938464369121691289818931604317997541875877890385430316942772441974193263603769660853045727402364391253935138871291179821092752092115117264933351214214348051397290704159264785109589513723859570954727803088278445528463673223327658405274753779511607301289364927393250594351418224044821226392114526040187865203498330021728151163581199658053436634893062306343549088010500916517109430909529487542722527551155297450076495699491804634510726178578956762958449230401517008935348197440003155468058495792071848096136339032459854720140436304568554369525039806482842102899463084382715023933039673616519221220764562530328863864577406695560892122066275884382265509029281970729471234908462148445516341060250000437987043977000392449424122245735823558255930291020002055884934526624755632922286350467753795930284085871814709522212882092592726153198934062223919705174563999288204330508673209709300966154336136191840658004004832520365599845953354194580648409983980037812130230160170146083815081961129643152873992405086456284065377403050870791015801147136610955668807079020957332800283095306138377400765200946797125861788779759091215118419331832314528259611676210214946699338611244300392485103620777628902835704114716249540848567640275104728148585667491119550218323071052393155034875650809368254913064836878868409691627806042836934631874486246858663495401885410586572024618184810568225058129666427994891587716135491479071468040409589065873794860484995969284952827238957274306247843798353572636604461836273753088357012291710590155440991486842005852426599057813141765569278728488462531263873916689187698065253782979296805532659729091711726196500993163948546476191084286820309978846159993435225672252667066289137649924542781118725202923665178564508984416055106215785570559615332378811458730034155055439453730820982214250379441799041673474823369122010060923681750878553147077853007801836778069222127190435333313107106438954595935154420539896499711586093020537338168748387944668908531013236463373367274644406751895628141940496882764467056651637365161837412138563025868152758295262382612768712081724136101372257393601721588284755258606911256114033872557961998697110960235301216136239601930295977425145141456144369018318593639035701115241839987168171487477398085051707498675518774943388845549914696456450119944815888066569188925639833326281535984067787193253712975797027126759182373034080216438273460395329351742297350837403995044895743179701260501778391231749894104683164800079017340600963360114733307345765487770067860206166502476744474282809545417509100862996859768405147861144302897009019650574295040201917767733586772306032346110173049179194340828041572187086222404622672408830061621312122668639652918500067345188976737643034400071839696849552299127669821457376235749200232598974441581321611260559194130322616094649286547618362382954410832598358368263729554250015333433941773780078777238021914662640957053035384721988682828835965274846623913431148725072477444186276322393831249987808237000595161833384106093081561980894625800012977242639273157450744743932196364470700575393820501950227766976261322008292637074129801497597861635506930567651401639234194244560795489180285778030766632391689521430120452191823700847827386903781385022145155362019685482831519241034770405728255034981402898361251638807954601252243493563741283550242753635577663266953415544858703589498368048057433388039894153054552757918088223899216699873686118753877140373517091000363464523075729264657782163153868076658828997003803830943756126771791908842249381606104544803724946916021416084642441020516662444628185852892496317608742556872232003007744089890323570377477529155907643038171303984492757014459026093811767153772082781197991329108315579436842107402512969645923754931598644538502738027722402673863811803116904216005472972647807489155087633075911779305885108044450819975330907446931317784805050440588792708846723139713071685444418984963127350666340945975359004370123632430145825446491167558644258754426295634773096196267256387618141574445985034874023803536756524133091791349255328825435662403403316127194354929450486686473884141123904514767610195562921038207604237447371197099914044201023924053280463851476840499607508151731037824714463733869524601267323295314700474464451513203008870326635588862836283826360014513102242243640900686700764809846232807345933107913511633004149018436975184150689186016580475240817896917533619533151050098517776165604963557414662257837682332728486084652327950487187108504576826156703816167842747593531163542690362191415925329171235573111232987215328692772082890550501868042571098432362070304179490676471464423673430109090333570069631857196771696983700896068431781675758866642200306384912323552076658005145354197466046307272093450611055390456736715842061715637912855251499231339115404566626587890948392569016626487794337079321558941899636184149817707688809145155311805059474275936221904185339084561042603582180029790496135637167698520390700117114634408591871734502133708815161902702073072420742024202361606980276975881362631970442517123420504137322911448750212675078731776302736344557185755098846327491338349446978684552375736893886539287153744160546964789654951265271618125390665881756605285125697338577411874185960945273622887544373424335958634575905925047193629093517855173231649816756622536433056738313692311589849537996683088688823431329635264267379526102811037018076251013784818721068678843977905642690438321193608001572188032575347647002179908017222476593126378434376239803422980506485866259629694356866697121214018116063152844604279416023930633328448009781793953922097023070631458399724474000480246897786426468141148109828401562819817976638093848343816167457139874565806858501674558386003420917483321102464490089966282460831877073745637042638936450404400371733899932994270178225147235736893528657275848078512750764504735944301796553589929568863591201432146918092241792883181531002686400768223499329568924615954003745087879906801902538184821246947119094135024231240128405843334785198534543572330997855237178804165511311904049690654317848722837403081239071788763337922927965038131294574819524703093524487273704778366434681751897570302851878697200140106560094765762494343440020864403559446615561768654270440200681472594797238533476091574088045998794823744546077148528427509409401132220744673925950396489676178991437613201438417351375038860712027471804758078181280167596367859564484096951747778077619881809000554791763273095271403086045786008510783725039258404556342111707517251123985593701758228776240678151470108264744256737764290358371519221182972240182541371889447986136397142763258750929359429283950111013466928750938788130543811475148068697841410954518863747192934488682142083829276103337250347080519700279572536849308808892296999004445365798863723536372585187770677378805418963342635861355576536438566309711238216501502168165830046023348747017698447796973814951432944104991039935411939146490637402963534247213869113814352069324849077336415319119410439906665533660096927327989735259316595435451981674384005158749478234698813608854160766445720468198564334981701300752307749353055684231497777440608491479393182494718175730026392909741656850822212384343020821932903846182871071390589069479585196387251386671217542066538288829829856696359116577262660859821860269960912264676568397916210316757438095375536205386579418988404589097318602161511990160479683363762267050099957354135333033829505191072428100184172896277563215542099705938390605212954803711608386498722638585725494261146071124919885416946779361441308600332209423425975880893706110556421648807591744046714643197065913921960500321021823199473549767279477725133907138304048681247374736436688568181646810138403317919493303979076494048401598718429818005440073625603088484995336878743556961889053594221094532199531552949393795762723624504957372304597309738278680144127478432994668752091239496354658539319554971534181007301021489747913427886073959989499408949850274685442692421348902194729719486649054098881559273958921272167463284627089370131521239347481153490484728054581411636725858937041955458507713023231867046184938427291922834334290313548946195095023210032665915817919767177704757979479899531259249814480308780219386141096092940448692203295583778109960331012883066116866885785876605690551008884425912274305358542298791238854354110273537364353727313246997272076843772434687198178575995426707985376476997855378949344550643073926150782906646738184645245210864384458998343545731675980925749465554344596939572826026930401610731503163492788839349051740373029441297584248563028055252776280798676658122771777767757809035948538755138788338787662065788389952564381443225810245974291836652663961703596461167497051435516807990181524464326688530916823793599588011178492051223624361965271799366231000800876768864805869344765836135958965868221913764230624048951480622836909372034533335027377590841583080944762589159698770157326061784788466380392576504795314564659449834915768155823501556256801500127293089910659479185218260466837327493566982632873817804588704031102318678850287526403287909644931579058342717839197911794458761884500958663647052067501949819965254312794889644902503760965492766486430467517545063366687061785286748232214735683525398520738762104936922517127680968799607313176986786094684631122398288837389746191161572298845627944072888072489107023547881235375105773722218351589554619779431199957928351649785093871032008070280644974651441258430462077866233710053789853988104744162003514260375061424175426109837799590507763016277789315975563584701410851785829403209676265376007188343624200826578247897065118365843164332399148733774593782433721443381929209609598976070042488310612875701163174805015853407547530255636424825558648451254889295399512532090241744876548779240929377096689990902515330281854116759962068912050884038490733392388462492074350976210319519675910717747632540796225058362760011329633902603856899079812557667790612249797470359134127944261599570063887439411730005759468456847103878280072889098903631337964689860552508512016681446865560050758386581107273157044914150668641525709034957107247344322777202060047301852180191918036224431982054102835496610012833106531054752770395097288691507222457878947449558376134521107438808109191850624773091772875128484772314024657787386215681443007928885356245499526679074062573641681162861718061892084252881501239386820224743328543033127523331317925826930249628907551491304413662107571647034631175922823770111594451503396720938522554177341113805064271816280984232105053036084269341556057176778351840740005042598642340201005911566667932912810076339826012262503510245307692754616768759231897014210284847050420856063256892977342267903648764727675999322574842542962079603295600781097542021930012984910501501498432601941803162635214161536752981313428572712456421643458923095179245650961845220922123601585612777553210759773443404290233659729226428965016323908599609010477846669808146650903491984450825332196683330254174785360433010976540755626781395665801959571826691432097809917645785032305777861051495481982313567120598786839350167245595035943775960605902233795964998303827503237337517450329069788370536651036752810498677595719540779559762736784558304274602011813793239979530502073976988893037099168742766051675577859185102399047531385048051820931425246202249257643997450682515824372590128817954287638223667345746568943443226487525296688705314239249936981954897793217428127704493523478512031147645143108972881156793672445089461148687247285655637389200479132329037374925517628165620328992163810800978452474344917547612734964185375909312453194547826934027052756345147832212776781861337175019644246925038554110063932618579740484879585856385319832113519302053709355450652752670909838277930850686452386647819089142309234867996855730425550308469639034342595263830002921737577845364525951371076272416671958963662209317131816905493807528918881427984630179338083760706713659578699846090861788710890252746686506589780079437955172483005030340764298364784566560123029010220954979191867476354795034132716885188335649794034770746957988966813462364581410751124083045582903858977603244941279479375735181713228743396645926351604916649106388316770597784039321614160508125947820693887617754723565225623937565178738386303621820502379705604080094827574821665879972876003456489583847693198859714605103441348491563370148369752324634818680651561491061597200148891729227719179664526333354162253296189714817137423774938366285777023463703554991518976320389906748255970523921284293868300866334700921535145684991607121341610604750457798970393202458667453535727478717366077334139131577332551268480052256076601713565609561512054047688391695758763730657194453716540282513046430844767623558233680760762717442027503295470876714649221888980070239716032730014929178519020270024096079670876776729800345004262295337653570616704618154981810923311720122599040579831364582450326660058521523028428725785074586618054513130979194627445822769024281368298858032898466610602754924491421143700793090511027383374480349862548921736786429996816910491512307795388609357678694041449213560035509256346898542873242159203510911511621534500612975492293257542557284235907294689994255524036744883368160939720117532711179765485546947884975157959116716351578711132942279379449458221229611165339060312439478364557003100916469158057061086454362729836755366614664037898714317506487828060872127316899990092613294074253483172708372323079447242385365372506545273845842083180861362441179774361726499003854518655300547482902460885951393660176627032737845445045242528627255732592638713069795714816947662645873246004173958119723039302872024608606900653960452972874361453384321351263475384520057335133010785905939629781179554173868947491302752180427596324394548058128641261790482469779224248561133868110875508668563255570243936410339879711587602153084933871341373093899199494034986104092647622615520339245063224514710751676957258321187937852295076260435643487290189419117347099476033749630152096322685995926650111679920882627457756974836873750242145557931197067785379075677591019094193517509635785868504277711120402704839996377336833553300809340757540418937911817002900771329409311032370335039928062983509514428578215345199054458796815197559778862972944781623725456323760645365672764918921396650599924655257665815855662902559720734149127354756016259468818956439764593092329631146775626728031401909533317996937469502310204034670740629898945346571845593699499734955471956700115095785090709932309365150368462011145433284085871215151497018450269709149828742021744937082997839742840722495112035560182351699213513456670391533264886725520027978372229145935968002673205717251427174458052542051503967152756847248709727237571001330869174563384657046505158180348974959283951202021708816601119273285892045079644379689880135393711599091439914117039507638199797944327705315208780840408823522244351123154210094985559088608065449247372430461434907975151535450397824936909649271777594709199168459960890336346358229062993420478847656542725317851555856713142776847172426462745595466576799079557350643496156020314041358593041663934581529589511515171901475403397202703631600394644244854308845998241916033033514004473310635075997551998600728338926834541638245048227913707844229665445716654617907703444195574266970375770158287056871024801592036413443646526260069095571048412919955727299258448123738383442309896467527325217817136427309708342850649265844775947925708847105459636338939655650604244067723126422687408616112960548466395108932014804240786946763400911306822553536987837740598630498340330051267991301391815723081150686431361888188882880517564221183596667220404375437034318256101860934833879276470534449369915731497209039891595006802940387199672690935549581662583294679897038813634360609211454834351238163545799791732675859571573100242989669887284598226905461424759674641714351122534524505615573250300278465569301521650289701442468026603330628657554688664644898292991891401119646090098230387146583603417970472334040008900429902850708517391149393980115426763445432074275082593662396543546825769730816254386102721347276922313978491383386167240081072743726013752677335423733611270522081953983318756060455910156921338446734713260232688447367561956390017870109373915293575689158574131625010214971360065777444874769700395053304194057107272749402743375830534883539466154818405406751872180631700898209807198437374230397644951900290842890782938339847121512044906030309416439553324372580525402322742609728688628948142069505413414449686384084542242270006975349222718865316242784179730756684249643202636795572339350055801524298738164970013963965160721509488946876258741547267657839154809850913824852924997686591708476246658586054978725293433400696063108569042245540851207127285165951828985277106738154466001690444612133124018773839650683906226510606029947592587847017763650468319206121304080934217810235688852801658965194004606220349789484893971089680929659050750443906423092861023577831579858758649893851682060683563802210360965890795713776756916963507440340458193695581376978647736198372373890874183986015319045363525576155170030551580610494282135481946768461022767529716958960236154790163396788719957795892122764886323274770140919598547627935866857180495287568802247640271027433134412207326471160879630187373111765151084446105597600739278375948071037117616283022022716029109547463060317737288348279790270270346318839374740386971193386409689407872817504191817702649823209996172861212022430778460813868038587604129528454192140475118268302601793093025557683530170829044310641551533270951251477864262959766507535074299548910502761922821632909232832590547604817958345111273004939497387182653991132335430971835282485010797256408598742475419701022059777292747484997773453452081934492042322659521738244963035115199594780442767000723214939086150445987915426612327360062057580828903637795388953644245909023110099087513759501551578986043908648530932034873838418849473343673687862613948064467985343402999159953236649864897312785256782961398206086976441844368108006647063924921519203045015333400953755654856670677113724827970111255293652121764166152372330290844942057291022414336374183073297717736880552309354646996724260048426437446975778273415006276292387681854027396973773460573906840735826882083960053262245680058012916643226877242149011634301448070063524605278019292665916849446530467346739895993068906252447203712730255742174512794255411120600599227494940722133418060517688916581149424109185403758994922397347771767623381230963113910229195046985311578216696151670614796725154953463754518486064740824022397642901022766186326205362444464672540512676749727992124800540835584371012163344364938324157268939042512095188098195384158045095814524303070843727708248357385851618381712022417839086779654627471972415986768817136531769610823754174856066465221846110376865872229138277587878698326410653954967693235960549957756401116618037082055129340988824272474288001126146885881913983549565844367649159650848833187997313555544730843235957908569076854257174525847674517115448029431087852784852558223020085454792008120132995031123626326956248594316472046725406842043770221942824108643480147586239636471382645087940073260200386358660139255114167809268868327343182811858234047416813254380834812733175228558861439332787568216765459329396318888008556357804290553455036319546759189517459624848132100683273124931266317046803059256547955254716334346175968434934480537121576139280168545315373856197811584623407668170128677414129176767708775865458736037022448312169517098777241723140127429818376951730518508729978990544098272877204279303498906371794760168379321255460417013996530662229807095743631965331309395733319315656191632468747888069857635223019128150192636570904724229790033635928020740154559509556425654175522932720900618711462654017980047875707835934271801435838962593383849807893017107635691377749297497547690354198921260359519032583083396145952068421549021362281508019215248404345058494877058170674837393803330153645779254505743762293201166144733024858145935074011616389128003256683431304486023170942577418352167167659889447030162720595673738343479229999004046778925507453329617527846364402569660722563742216194369205845534543785494062796611402089316670685224432594093587564644916490941394416733445964597944813625686100682030257069891943278302782452322116905477309173126263409878285225247803732404839125909045894744939645729326147445920496148905852882375045398200786098659216280784226757952669743683706083426255858474718396809577419472273974856588625116223072971635155240889612187859917114375517246654219431389083751785465001161769208408953916732969620388933608999080576822956528442574930451135701606917955686479305759324225681934463010662768607908212201022907749192883138294187187642911575577783461235430927002061228566198075506529448446249714827015123481924574040773594409519369419321760327156466879612315763230015410437029616295859821530818334920560065363785578720241739909943833697029521685146573678539218566590562991798517162705112109250950456117629441901070988136993245536258978902221346087283494326175416463772177789171659714901876778880484280595369196474541831394075604461567699870243350216925082582340909870443930683597023956407480998062201258604409826404562351464737638143044940310908635843973713839010024912770639716976511749339524209594039495285243189886914248254173634619640073391867768186434173042416516627882308269450858712059925957977240029380981385202269474722315631010569570734250885994797105948465609736102953613939346716022553524555073120047498060351962021075355378191861744635246331642412444576878812540145308087648011336950767380291346797881096065692343266917897659569292734004637516250241941665216376863087948378228966494571655463620187116600719285690153687941014952456463880125584788598818631622513317922053277037222254078481719355438579479850600876427054562565851558949580200754537402383794881977993907514663379780128226797393644468104030676088637812569155694571769445653938255444396065981792187931549238767759286624387907961908121718504429219416449569699406258036667605813161419038889606248120471748993383281073307285454023505371424882166341951789826236220773847386337553367799492425330452866501153426620389378234460031823856995693923152452901397572528352055111466539209904682216655338484325950403069924276576527299252884428752490155469573650269352793949898152149075470715950796391907596265594061323592377022293501942470394926899815541509312993019456153065310515902932336697222895166958256951193398122996081963074199813209384704226844832124108106509037157438594254682422275686263665576954193820908960494243082660459824043323050113733969092877064195826727684064884834910136884134228189184562838590513506665840959387226870800026138598648094119670631836774116545129428129938910027679339251784901192425074027465896211010414238414604949461073761194062923630436129999798548613150978853511674905902002794443235980853452224301833097927521473503317430849773134503940594619576111596056694810393581723277701207567795436457625268719085214193221026420076964060574787423121765184372903778069053302921280192587861261789411332307857745798045632035227171552944132808974289391725709484308176697845145659311648164353344156371893455124715768880723004639256114570633149378770999298535271934477547638020470880021035192059012801521360634127063741607059877391723490580689367771176752984519566346978866522763983745736721492127742817176402370487014628794973541150998267493599026778336620022002936069137964297967540253624199847053001384698060843830747614696618157191970423839835403468183150915677121248361488058275377665502546885674145730038474255422293971012053739910199219590800663282090752254725163488268998332078741993260747149156447026801187154220195914722471472551886353292814276827608637175237702900758137932529543900639149852247545751890633748834668823492852277906958691630612655047541700998353822949608120366902464326975328318018683014676011776130671241699244793574459214472398753135691846454630777376479994451454711813604042493688176394694336358572410614695279684398700927715181503803277906462464751561867056118328667318029609549724485805138117168611755066056567527949642029856622033119863802330782712816946295443881533159918028869864120938855371234015515154391286749833329678357885635949212650239172700692676656731944038251225672292664438227594198488664491601852726220096654048244562098543119261027388127533728050718410996481322451075181635275368645410975388062456335609613915652705774514670657076002884359152311853195004081961412781721266405272263917376908458291661033415551580914791482917665122131314177370578583404527948266992839404089121864625894281266453415684759289144945088491597403062071475976239452669128392752689242939763256136962562868903906201680090341196488084366589082369645117813803211945383893732182350316822693465420117591880872706859565541576801249839881884901244886143662016851888746085217299235035574838450035025298680132745281983761241317812611613121324873009536157142753965586213845410676674834289325289162926220429315895141227141378632188877025948798826229076192493714898855427715237666415865507482447189457681771189515872395394773679793177716839279272991130762899169390283927126853895690341527147388997319407074861802617877404447203013689991775017941065120171115253316875044215895173055021003708833994657904783489719069766618354745663982432634957649203565424900831204101180682069931380469244560463460839659957640187666363584220004686113867768652309681255620731959641363479849041237009192184574608287672598342123711870246553918625197149229121837364301813986493540595438901661606808353469606031966186563152701781534330222813882082990291738076926059239434208946174488628677193054527475396297869846721083178260912120151817600269323824919406577292734298567656882724347525676365623440139414203843005194279730297530943383059915739884405933972763288763490583574758179206387971504912262229587910196096951295843009451019714745266342970162668685106055029244544964374611154385559170739506577682883907974580739554146224572620636360604659348705862527365280237904768884711203411848384668644257502305169045488109591432332249379805951702632255971847335708312459104886215198543717309771091250492850218722641727885909347541324870270078612436904240875563509328564447704169649032611932586643071639787159972936510329562358451436234270346509146695337948585993929493631173693502603576555758736904118295021797631316924595806348127923402104822800130246042896552094672377065964694755850591295074179176233006518979747745961574816322666778173517487311489228696876677202673545401858986725064038991995049447010830378928508012573490523664811336415594355613454060331754250921108885100251652630001207809912490748415853066745433656264900136317237384772312788745972610600945445878415192406354233918630513355669006385227969514550039066477755655798995228622159068232663445960418587406703171947735152679261084898925020654277084275169456130663556223806928272990387747235539105390559385598143354577913401649892304417265771350407535172508662667044885900076805971228114345677042239938821049425997423041827627490751814969821989615545151960908316229353143829178003269498641931723991262421336545950904141366943849402760995967419752568396666565370116642995869030580242004123369335504383312534046890259612977647682102970064577928155571229479200916086568601236049102273683249436775975273252759745914328498401045235111993587280976992759576561372310046775919541461062360583291237709311644425574546255567798632207874031476027225313054326683870237591823462070469813325462967484599945635027350694697641478959264820432739750024485349321170071824691695022273887211547688173717825419090368533932901618865927576463613886859616171192634231910216668865144160577417939791699343937553694373575085071921393866248778116125098621175877909554128272071863114071356982118597451903906113843705695295809967862679357980894406226597240270986859361660699508919814587198393627571053902590925240314710521698649440417558902320005361650297100494528331031703214567109881873266456032896940089179051605779051271603205701663537562118650471015174409287441402104274882447462672819178626340226424160840963860513992727500180297219367153345368936090165926370842645846780098316893644837748821931847545952927257202871401483820676329201921937073770174324909529965259528962127122454040143165652621869401409565713136639417406222917979529976997781691411187183979823796451048587669771788898621417798209996406831700738100933109495235097086623213402755848775317307085316478248293083569968243984171265058711175313247143193277841663264760194238778774895287378288147315452622281162521424102318509880209645841718407733546126254066672573763418431434747600612845120291272799189038848446575386697298289196661056618742168500582603235058420875034884509438153921526784318736439383228752740511199182258362827557616185654327954776673135308268945583324329859565570322621735285368066295224046653707201082470366158311535020681361655984410732233444527121216562775367841290826748643738007291908690918350437052655831169467283915423119633536919484166075617482588035181257535572380128898185688469961893792183903300173715803601727284279351237823394422224365942558837214536831792047934733770783103764059991492855925919501842273859368628692524013509792292084903874436331561487105626871980489111044761508635985168146329950722339547924570618958588956230937657192837209297583336157872459763513668348824704913151462204321007614233639893970553723452961872335475231473881977420528262046097851808422479172183247609143053403484885140639955211664247602888019524634331735922352823763942422829283988425559342843669592541568951374623748494662917642432199970620581263838321677354026913121003031150450732845985892795915927904558038902745549043900067966727093574809011645213994997104885685728840029275339713775733139922732183627949584592386424661225114623813280479065025847353707997236124278531471707939086169755777785287847106706408884155059815020967903685287263231220544025443817711601568233307456223565613662260615130833423682495275733993549117673622416792521644952774825163531254659752680748355793894713392097189976972923832864274837364080141177565212769449784930167755071712806022280351706096465555016038354305207284862562658421924438513243272445512994705284548222269427712448478922499048225553277100252275499605673005935708244696685980502222141153621455625907588415145558454315490264402425990467316934913815279930639713494951209509361539957646827929764516207174208877295967584691606523920695871855450946600022864633426456413677170699719320492267731580770529475040232240421738214447848481097322999974554710982419756284444639875871439992995810536988542994869329506651658433343242906433900350835775470483741693695579996015193397384469094203577989108477562267999228535623807094413951915725187315336305882019262252069564574503999976467497705757037919891876012284050464124283662778718562507213489833972793204053142115165088089560670414415065814531590025971827056177060085389240948655167702048571718734130366305466442934047922495526417850611201758926716826965539785259844991124731148539662698870376519200768137200221718700715008025516366235822184763330541794010314573382805012296215382533378007897856444688735550488610018858475947083063100055442873764685267791857752130371370801970625681412715958065626292051406369024990751435154908774038638687834858872118119311022786213006616650426450584393660448502470087548808658496102358884691058007788232665484146122372637086809533012641387431513225389784289816427747643135158899224173808859047662513924346228070724132780271868548201793547310349271186897918508952926895496711229459311467905127183321755616399611731421767803309871517059696024279502294665954952170900588209855176391861152608110719479470380163994628362740278787754854193060020258188943452799980318338326142091393452407125992832775368009414473620469626407648251094998868563386657123585754198722836181013296766245060222904698755754106882728713326043539558794626003196523935094053135334051872234935113906373735922704747121994684394470440158490726434049640887987608292682104410084087543835540258508361842947559318875019195722791478220581979515463324733543591633303562397638151184573722454173540791372896175726243170152316459284878556249109342392974702915567725120488988953858641116377753500863164599492350344939828532651380387513729082804318039952470879774035975340345662291029726877995088871905720771132457283148075256322002767699815585323282854900286190854303014702235450826727103625407675120334242361701764509254255201121092182794347303641130733546496605723884076438748832842980656187065286632349984493813432796086606687437577675693479742153896442680150613250775750949790251511167393642735312019026559316355560476950901753016495334708604092918311630130069649146513102394399446057295718807233745029466670864825906019438824693651684681010610316149730968234737811907153163729986384062940655666228031737179870689411432856528287676445265630172891078710494988932637531973827740271235970200203071541679530771527957003434187146995966566190147988810492354614027612109455401222605109240377645041227561459043449008341965056504245878404156381066884239080327554449443548526073524823179162239938937457498257731046472258965516821599599163270245278375478806569301248261323649341191247613743841984874297062122487256648875952856956244635587635119217006654274670438482646947024444511727545180354044528525088992939575111329784293832204206148093613691748395158665109254134153391175105285465845187554039207382481796846431293677150464415396131355046671513660636246334982589191480911959745438145828858211813657093239823960932839992298255602079943319219950595061581129353556596291013984372611410357995487426573734358354165450507726213356251760651778253681603821974598288540645814748919555614859409946710403967884443858615278524352336334990968188618587305760381197563391762783342750981417082236121027702462582368703438199051594021618390447074246052762186635720936784972479974909302106768568183362264856589808465139454928667605622921451763269974614762744844914046242417493373681604294126652712023284362622142448010773846644286013137600459977599097281569699534079692713573386165282200935090617629073506570963315174794248758218307053962052071131167985412264788587993431440996902032729847701216191032851185376183098614799337325568651974673926623662735328315081527399990692775566276451374400479348540801723650977815351237056372146116539270940101653115827376165980296897344403077060331718557683550097211838309610899731654573491624209886878530473991600936638987776912821397517109323138720956962742719015563527368727071778568282734677314459735876444178637441534164842785866177474473429817542412518001670596643132978560659343907399646632541741055526135559628297319080640749960345833756427694949844749941371719041076040720091684999706897610456447209070277907146645439389108880809647322973406751650998132563602053756208212957619668158642375351340583355200744050774027082269513230425783973137302867578797362155870990864331626329716647157849661436997817487382256034989921065503762254379707568319719754549286255435699186004670119040780094498864371675503229137705053149064278858120765934028931415943700339638063795661224674647243949789937335034379236698259091520374579551975085474884697657806509263706155303221975966211035966231207860587922126736969894520594386476058645481274372762746566020165431809523930296233542483988127342038565764981439650021759065922451171688976274208902536294895384692470971010601096466192015721697222147328262537642415491387452620091143987259403387834445636704321453690507026438519746861343411509073671178686542041854380722562552443869603373395568734564236859006893239179629848525947507509457373765015434378233607851901693439129832714019602638895806139765080038102837937100523706446949329662274288828130865553054228539795190324498689320449412289159899775713673371431437546538519524032211777247688838277090153545908374793960503833954278596364247464333866424754940583772319711049733310449782692561587897699283695573565410973271272037023166409522763747982721537701780502047122476470064137564253100091366798279806649802223337808248095338191826683541990555558144975618591477720268727415601257900877080460399337394602542398571419808633518622019425018966667788520009380056481953456976094081390481918143860385014733193719574222443676543876281554398258597308888205581961692607297305081858820562559353645797531549524460212434140788360131407621346667906230712351579408810081243932769758155810096123485502968979846428293728081899102015174114523336621800882704224643730060546337178004370219441193583385846647857618670223511547930639002347857141549976234094122173537701096094507422969970592543714358321489444157465585758743730986774638134963904350204626456824529581064319659261381999254045670780308166285515112973920642612350226936046227904162030868725633541951771939592668115466478917865905112155163302254826684470199329612703992350252006620766165349939482228418441179084143215884444018449575828320529925305134442083571625935485429115776463266066010827916939845653613135867190754059965494267049072778010379509082973569268404252602001813867440044323927966682972267355873053008772741709783412825799056700593340552270495957211346840730237720091693795087574452119327440756589354193859537363442234391678798562422560689779959085052315699925936096097156157019864026321802428485859539746218157485313430582210699262682039495091672540052822628741972302657840004499285724297710274146074026201455971886548429121370554220367385110431454810574541221618552068371920975407743152244371517572538429768207220828167210182009543365192740076331149183141735545543115605627858013581689780503526748427663485336703806542063060453033601666845271039464851389410422416327409823206648257769293130197978111090264204218611776908097492342991763854056989016736215133654645232468021417686506025020611531832711282473816777502198761206378967263986088436253845971625569332144271860171497680983277373916359932270783432216697498117966048069230721209484385635466741600081388669030148623831175869651878274065296248266969732142106126782751878051386554201686808447989412181437105073274212163274239996456505502495867440774085210093996916716658884360238737776805307562917002617877026831374150910314564748453284125417451882876271958564277199775574976856401062358501853571501024169760709973164359820140271940548958671800022662584216956065951387814993389272469037950939977621671503371543741000441680446865578662970805424310592446156310010585931553286551795851103828179317324858029594572737408550889457240967998700675892814862312239282499917722296241819178138163229921092417548585916167799114261077547553874739484689867023785812357175042845268240228221683798132518283610661131687327694451038166389900549199513711168290661032725531982052621879894240433219722566922144971589492057362768412893133170116563226298036858479602210426079583579333970147628709503835859901810349830158143104447275707738552285047515288969180446457795321341443513516560074063047915629290255536946670290833064488769348699050732776584722908465639528002202854218667066554952459052622056915307132036561706089188373809694719450781898166392471849788456004916968310181514505265706872469224034841078141667142254228470671995096592382726659293241083067566710200088662236585116466340082594007270085178401702023026198101993718503773916097924595864780216666940188901818738371266159391972805693582745958517912312759671216705821881888382680908520860049862404565410991497975571499250939487555049491234186122960162098818048547312250192921268066473234652156571053562771912804214716571184110603219009468441429125890391490393922816228870066179039153757871636756539731709960836279050689163874304270406233564370861172826364901965867184820246281295655842608594346537715314178112232929366856106142793861797069826632893018257008492869132072302434018720106540874046894741628362016446844415020055451969296238840476572587413502669981716677149105164120197551280316541811529997851391775107435421914494244366767017136867153386361407158299993967336495036413806471425713714308687879099200787307307038363344926683538373032143449006010658043950462373349118390039251298218873474983200967527429817126663065433920552867604170516007233687485404885012101657343470502610407172935053536107737545359775243685637689692784095034208188119401969240079796631988464969644338650945342711972947001537857367549795855480074533211175877165202199029663868406912966217940065581131339731751942155126994616661038740041278687368479112112143160433760294374877885770690304051206305596292893875303084825818482649970343978932035901900912177293057449771401382166420322035502106479649231241440671923308541956799888692961196314306001154783576965371344012231509273159287620831973352348052622139410544629244506818974033139831206257059775015185341838009635955297888200368080983004488109660298209757075160243669983771727454495231562441686136320402749956060922642960118641621267491485452381755484993685966166727404396747332953424529793255966638930013363953862279639416848630086257204707270788606677138794942125167252356675665223392333125067351125707447213194735074261877040689851984462680769934086790798667045075333433934606025332101376073300891045324993697951904362663208839819347439675863373891025483522111951085275618325952194068607550358909252609411284668358767098721502378242100990981794305567328468199385189295766581428236332757331065316795310263267530168185052009185143129193258961865255240266634196237664235072002555397000232333999129439591173627028699974417244498182097993195013046187177608194942938431128763975517860590508444291529657315076694543412877962160951893832058319452354335190763550767594629801400113452943198648642641519833740987541700847907119838926724865763939084687927607540940192120669087139156833235543038978075874708762532651479147639479940385835742803757776512952555363392444425141350338484871719547874238976172567559103218197737422468117336181334694727681039849927858904673702099581281801205861878231375786469490473892591612884962113686612164777324828385882300881688680169074006004293986152277451650080028166654810672355851216768353238868154337147458574213778397180622269654814350428753106895956153343376733921804684505273466283416272304763749468530524123627009960477804744966755855597873985142524327767399216049404152088343691801257914848767206838043568129255314203198254180818287620298424071421328054164972812678597655585344746329604718791669484436475519139444063791336450266203754836630465054436237648945427686962569917222916052254598075033855784443438956632631562818702326194196532078108800703801175553697818619731588090169337363038424314534898403036511601216844592384483952628072690309243557101842930482521631035270944200681546582436395555528328577999812435107427975917423574624159793262227349496688061937358869795282858151121945588262130757871974039747033256769729450730112408440820460129646425736302078163124589516279161435500410658483754794154460273186542459468058350394745176741165974988613868392214487251521859961282270485636770340151007112773273859672150726382926846500780168124105236631551966228352429322685025926842759777088736106085539162806824088283530917897664384018523252709543064395906495137573397628848411225562388975598996182321046030288968781112764805293707123318934270390753671538463464058278564938388519023645320071719261888294393844584414371889413058707672716075178161762826250450968039943266288527812995148657868502931578501375691985778956444203149134439494403846815088592528418413493842403291874835335970648053933435885708204391883125972965453830411564186010523614877322986695042676126580060430624443896006028041879960489667382795351813897307993220340811002569891999857419597865092338484979043461529385636974370906780976553008573778284192890164152765692057049461918084843878570969855116468330392697194548779079548851471852375007999299050171546570641117153871092055060329894752131809179100330956936275599894376774059954092476671401818117195752165915624399297277280249948767530317189841506812043259171677402436138694427569161990822421535545397685902136725354269655671401776923607060951135950673697538038294807402574418272322410233883055554519556258051352004754286477251221010537837201872686476942580947508759387650964757167411477742488218465554607918733509797861753713591258831194483438386871823665379134709688893545817089970835583122927822919424456596424900225080959621368270398311779948304179978950572557329546188676278942437221519767858403060897674648512594846353470247321719285886069394883704431751754439656082371885410396782762424935772958229325824301922133206971035700136352312010222136138796490791945201192372830812734469639940453193700580580569174978712671515337054822077257222273480181479130298129740420568560422264886844408894785240398611124950010516189256673022882057329652033553050757664783663793423614748934660781774941957462496564727128096822866437797007153238071655981715522537028187878800187262184781249189531676043615799661645739913835479833301114575613282774794449744035762442497057224377669955376591864556104426199991554636745855588052585024077663671749348427683124184626001563596505441082448680029203892111165783445152025749962970896597339729837214240236835244549171268356010520941514638715034380599085166625679213200883808897954243687616046399369038054625115890170419794822606225760066535426673086129706023763968929523624742761874294639761982750076767436593622529500827622365750120079965162719138590375873236769830885015108888408325595833148530481133720972482990750622080841184818830046582697877377695250734455217571483588375103293308867234092241496716106436174889247136609435942601633283068233496255354393268391616447781161532970240423105464619048715997540678355266469220542009351533723392150249613823937430930511558436739692769819315806391154130741731255338904027386557609401053070589107099092329440736354526223948719616170098323084779359348219487904268126113966859473930110246299942618951960306835275488430798435963082588250864953063980578112742201535361083861700937950600299898173001525946299593325818053543080936831807289881278439456406853230857929172930367608568399057022666253140266730911434263377740796910922813449822399937983874191362719794769853332766447904210165151672095253040050732760292517110920628707986188051307466036761833372446541254039245417372449517326993078665599932627032140489643804982869045985598273304819929002674879233054542860359851763272699297060709866187903742614364143222414643922300849951585069827471994787678930467222931755027980953635740184380460025596624758429318397485467499944512895908019135657403080978084508843268748104339480204319106082829402223146744876182208198228190338584979390111060401596773797902403438655328099153066894671897843801120128107690954728112672060914822102065065959719203965532767228069808409611753560863517519987953847735788096794131596865687090459413997274978092378651627151158173011912393974338669125896358069425762811910052404827237488983668862948730734442275132358974658263750384000437465811652310864535354894276384595925163105469714480440072332789310884201273232027937138029429301559935521772515715475019448744247709672084586286122699570993544720637125749439400129141547543070424909881501106238222211550550499170226838260934302663336199598885367395373555512848843215641223514238079671469976139145557992706449059893384758088354679582252661074641460981133407206766962888606941412352564113397458069616386729755880918380765037316489032178205585904300910640547902340996142934579722392775843547969013086328437459666584036805284881463597151869037143014279200329696409573102587458623024563646876721192354247517511758515434358545013096703970377995523868082331445001640087373332132028161824092384535484115169121410157122595607978678009829699865380161397891559625081729057577619844646007203899450359753576343469092715811295398165341053875940529959090784404085555785857570049444719710379952980167157950220597166401468613797519294367052805271300552746145450226269594286493134415940454743152645928502699217704299234778834323733575267723932792473065213536221322372098272767954572568419198262552841317465198926350865210720381744277733236575274012651822520874813358616569813861410462530254570810922359104092168179134907742558820471047714818942003890396362278228885172845008827819807791783039480232680608559624621733021698388922558175205431276731572077479779763081928401035037703886963526669631032192344037814106076940104291128433432177827755624136211219295205288864240506075032150479930950618091810423457682796099905385975322491466867028926795209143394616427723143641351754966000953873347344587900446405151120703231882806541728309740597350819311288428847497937261105664737428930660824252433074559420205145246553074498766458682471000231276224542220112296983004416885838804218538899295312368771902818942049529934475844385439857664347690232152631845382805390421304031361722531348748256207975957939537230512774834749093145003852493913724519452175849428512927212294005622783311923612944245121524617645380655032714753534665851611402710611026520453494403969502233105302733401804550600102233116797356920993718379696240816767228546162187961726199685576164534559530650230876737139027584875982202229667383325103966397010546662605423841066245408220872959006153464329042005042492706963452376233161184234381075953167499028621920154389488619742755951934146190519776593549208871616715535612962614291388588693373996870832896064231124212941406113486264005060414784280077472826993461741835937083074275347831902236633096144980521844054674234982859898683885642997143888874059416793744377058525702838930093837715914313638026565186621668440761170293043546454662414137125471041158384754611858300026603095277939586030660990302234986951017717350217157657501419362589742497367124304931554430226427710417085204165929135118941033394757674247409120821187759766511602351165654825902448448261212369679203354590077073049872206732500356175166592922218659744237141625872309958209140478584120372346860480523579629013090591436192404820289029888146837706539324419099688553750089576321174747852395194381266356828120377017748817425526651218327925201726000921159537905819915433058130859312895063668902884688792985356302243229786550044748006464079645126460115721945915924986225844692982571282332678376631304711105249602618038380335004936849121439300011347333647916595539540901393441613286748066058314499457810072560247595316526822660260452557969269499828279850975377532303466105232494950676560270928324442425229992157821266350159800909068264951602468575843784720708892795867044362309841932626823023439731908559414814242745585605180505796254308173052298987626197239997600867752883557533474022572228341045214615395957228531760524434250604177410997440895084531187696208201827453628699337433092491731232624374637400685225463628783534313659726592491948548139232066819243813071883901281465046410115450515546446694893260479434808976777523596247679568076737298166609714408365528476742151510745569495558083241494327323708641341566223072086966996149536723156015300308002080193345245136023730474381418071692128094522049304217106879743095173466071907603474819908796239189990330191137923766919177257857989120466289105710130058660810409921138220829811039203275472256241104296346880750584488566540091002432572671234381570419425481841941472549455863392946761618587643858169151253525106775122626996401745445027235692522757608195658799581145915410727827565829860873432449708875884362287824542566670746016160080073823217560822064795018225756107508929343805033644291428889240826609223074515270319650219743151348029628223782917676135745524220212606837240028375825743619802055903806915153164210167527782839930363081707171992890354660268284517787736901211666911900058938974222988873827184732509794104369564423199768103895062357921003337404357420454401793580278648777486537104867389879870818746529092211365668168066449766968864397361026161259776835335880526311650717839060892912353183857808110391822092756755161903940480981860684373166959386520766020822718112800397613450772394555237287692579520071561715986617022581843860737465082651189937372926756492749511310629846493336083220816645314657951431477697057028794034354461654074499497598352769240546415302197709786331508768691128349211500486072242744840546636300819987377740509672373655050294777715306205083040288101976291169784620333205770889432990784694195076385609350984767210490791436573343494240811273794269234421184422557951436268025651524920522369453026106657065854794515171798937201922621372772286453711387952359167831163400769285361815495676285382800937006577324292437197708009537006548332787414390656667107264566033750567357182969217574399823609997150741266375388776892790470472760718412151964016153645959792130652960879532770344833965591163280889050692348105682265683323834701286918771634208560575429779009703751803657811388162733725375699344486539194075040881660749208821984622265722855796185977950663422158679201019087383443490540999614043226915767265741983065044327729512103878189687954631954591270568544945606580564621245828679040205998833034718234902933889858720196434075753474202099173400784130987023347218393677722523898698616671321266264707594245339478696429606585014970843228773049445211968390586493357861530796169993652428692099193965509032218511726525490059326334612379809163355173483708687665148926636449065020626832982741226855895244758016869502293902854915904332069680428896529493360991760742119381960909109429832851513922986740902539869738468049961046549294432087391396519171293502325824779102830456834145514210882258313525266617456324818721335462448519422662878789418428135295871999547094195118489246459582710769911464015465679554195969481957226307510094652740180172704773773530440309719579998089088719106862810561718421656594951594186721479422959017246187801562021167308195838900889221652850956400417385858166014082012323978605271930067789166177166095315734271724244992231704215733560433377801020540785865760780764211453927458873578859464801870567954578565724368583855006213962872668882682820054596995892333311082550018251191515268043512691354991521057580984478294092609525617700815048784397933101129510624244073617246167879155189057570833502399466711300117866583430854100244560224100986850447051004172283983674437932604191274525238530104165144107447716913400849327679462568527487686095449071043753180528545687244028969120252296144041933268478443779434731845940689416244445605290489371718812190985984770178592259484764064239613868141688115545475005628013678576769257590183763482830879933053256059323924478121736978708649798893823472714258507241623675465244070363440383962819038815101649928208442902850053312303137296738512879975528941055329948891804428462816705391514872993898171851757619716393727533385160591635223763001338888270809240552174334065208383788326571126667635934519681180017103252345093956285805748105262846634054383931724023913171512633733115057589532180819790617912751830869296450109159310728458374032695162240901815416018715289047742515841269774271439434009800875429666762729508353411674568423687104233357222484645830080753620148799868667002848288334928689185323463488440294621019467418707135105726527625979280156185949604737958713668385739307833402095126175442324265151595861004969515222511022889442108096745816478689593863189664694103640382483075760854805546887507692725503994483565808429932686620397305033784392906594810550970910580811988096188762896880934165084050913763742315727031385839098990255974308064215921447579979661816428200126470219651275130745987184734580198857817934334707413549610317148586377127764952130959310969720424308013076562074636216423156613961402468898504896434350287489282259614878228927604446930233040615866010487792082202062140839612040352240728052817689106922595569665510169168957378370998709028221244648831590924821767291797370515540027020141739791183607741207133355360675834128521783507754298926099989657274256531265213024719506115804092889152571223476948712043999356791856164238340566741182794409656163530202336440429981673015449245209892988506466648123501309829385875550688952716997105922586179822002483944433193758620920155023955863845048325158926481779578144305046810469802634735054406399306359046868250084484975239313961262577615244675633646627238220638938488974014048431715567035533328524608662904992066411746472591195183851063234913756996751515106461773898112002076280951171885770642053388898420694604991773980390620350890900724779741656435135135100862032903420430709826621054657460557341061878935673052174847114449675079693766289747684557199278007650516258467034952901155543617412574138334592666599378303352689880106843557421506972691238519827730220595321124896194197517704354606429028603488415641286809961340061067445155722543172077850354143766787109470514970964605000116972799464236169878109314121175559781440196752763382632166204590766660002173177025912070515642189313974422705296724085537121470890941794900092619953197596762166599366298669057209531999982040986330497750839114302680657029193026135081116930356415806211862943737802098226121056682733034347478805811765221688801936405072889810495567280460538891075095728487570223819790775638980503649814894679970295804426690140498721490657077000219268557618653468622240529086823559040245715211572994552057019749765879989784975457133598583654946078888720533150192708834479139584045391425063560903786414554782019198519581325753696786978823493388216249267732973787850434752582430243905161831625404922451774809058855138999891725672475743057308013864920119462017345818514074576207427390966726090729635164131531007659471960070492713120461160729300363257824900296076173551143601031364813885532968829099865799202996056534803168456841722881333272941126672170484431526744881066803614484462805102796626687709330465775592770519813308457364737927651421176775899423766469083742279996661010667920395068536339106921169926606980202103179427408400644038655026899040394811660695348874193074605051471777769768686579661247043093692058351358613776898142897459248453127970196594674909151082126725907469297794341658363267997887278385772884668018106985242721295365299485768549788530541784285138773167748616220009527575282862236781721760224542416535346979504029853181739906704265756776719679016002416644860033443094050605083970711901631112529990946175813327771563791159933631049230545276936404353685242365828312050242633081275201296246749920617889215960097319575048728414235031958105148112649892165360037250585741696568961915274481306689311511940437574951823901982813442501743050882219625619631764863381110604539751665675933624664002885361944106322596988528352532628172178234347438824221877200523759358744775419845509340250090821644022193641780970126838379870760392310577788617833495614794459430415657726390783022859808073089957624774644452108246826057019736287118566246205548509250408850198873937112328142556381982216998860678329482856261787770244690574755251761667593796734483448680577623632494795658822629573728718526066876555592966577155123367765776466249144863712705297891280589297403080769343772457704096407850382482190502733090909159165816013408017902874939095945964598735295007152730425883140908168843772584994694851184917990509599378271377104832693633713057840169222950391193019698766053601290707619436869403364815931809584555209773277285278475358876577734732455657450063199678702918590747288118265908481974170166084329002798802167881319272192647012358594555982916697147864400525664533038424455533620460067607433847154902861665830766739790171958045369453663607521724291096607555932892706151005509317349905055127143872033628736737039455321859704301239195615952592742260085725087437338761562319591603087681652639594133936733103109767060242734391834845250971215901187875678277791209099609692228242319199897323452775267846184285273512918698172747273583234505312170001193639768858169178194413225125587169806709277322308365257644244723311883136691738115688341907226427887430750529466211596981872246717422669488408401009413731851214736979934445276783397545339981102990971100258062200339626023284113592584160730906821482818979654500579529957118518437991291882829634695481098849317084413809602183652220524487414496207511514588240484454808671977434078355014517520899873935354909194362951693225871322280663506841288951827494263903224902761684449344370143605149093494882550997671610016166457308369276986800361579199250635052565984299319077875732967543383155649589863917381568302372177938179380871010159835433612283237267694895647646209131992990711684282363928253620713641829241650755204921970578418712632653718951804471333434365774469771426882316428304711001158155346719915895989380761894441359918663956591568640479802736373821879865478963776496422937739289209835212754989790631107618008518032292639536944168832061069303867576707066557013361318506176379786851182546000105032960606632644759544494921697464274672751908081758579937621698269845107995295733490524794976287476106226888737044983221727310226519193010194842434346780593169851520669720186358594063552502429750918553967662710649654080893527776521483700010352048803090191023083185394141475695958552011180179599165114254061849966382383732725873345412394109952538502569000665867868529031263392798644785771361612075796236777084911957761393937857151495525012490030884251826983701350726462107944084645274912315555594731609798895788136209794146191105737408926459531051846853436224991858923750966037426468634771510085188057484940999842026633847393378057416602423257074527612969791651510381139341629137494522848312911300004808574740675161161593511545763838196501977026035174996496928232405957500454061454526109814911006153285743175560647447315390732078897916288518761442965297266267676498099362831505058016851983924179900833792895655745014816462488668579502749697978643302967753093577716693096187454872674848475048792490920178093246647407785746569847514421622595986758950377709186009849836476525966201946252829177694691238587383027498421513291916735783287627930513116335075206219713952357651686007189757650095001596867612900395132840112177436010891904825121825524018788553294209202724000484340622496147828350065530684575415820839660736398182092985875093613515954425455585332469073078774305286448336151147668774714166796553653225149669053223476508809673761373033742349184151686719795116095072212274509630006450611149420611426008517683554229808668614996507177200014721509264712861513410226731609182640951429613732493408720493918001887266448956191438365533471438624590788988734515012506005050560536120861818105074309064353905986615530273923131258614001969259759374434106863653397570781798406252170960287972265448389001065423108546916167013052392478348746119123507239099279226843441358368981576974471570535536439918023477699412137983332041384641699407988238261424706104399142754870705739817076032984200862138728995426135517558350485578493264432725119276752658420436253145347040111740020359852698604351872781341780872079837151844495887798670617747086706870579440228207539194542598372283137082962208580945279356573281777804305499320631876606438459609107115541957890543718419289252604265763359848666258916306466078594827286010191670383247688065466529238315315162880459086840165738843337849036560445505240942793886308301512596813334749455270289435200703910369501072647846146929574017815558542572116612660208685391154642484372250248925129791221039243413529715957499688096211609753318742160610773818711103091233358381080344847702514408527232677067613670164676845601903863430509396229871473819656271472691969216718192461522777478270703431491768398069709902454839980960832597407884103369560354683942950768603946140973608163277205935658874904009662947063691156867617090174630290960392489076334057524935776090575523295564806619750354669474707505731034049362858365063468664038696905371651298465509992033734049177599904289108220363660233446249952062146392378231977042846592491973718918187403081771938159104429936534538378348916192205727364493495011253207442960454928786595250643845561734177852580933022545357007001659024562240077853033781226794805826386943035139813890901777481701122668859348122818749161246494863839340139234697176359545683255072322700463646330091394277554110576794101092269144428233660563817758359557380581370367897919708558168383021757966936783877451276880609857722406297503806734637238117078551310978303456154225958370457864530403808242710065095577670912850332908496590017678180471538277670755962273458464242096211703529448812138691263805309229066090199531314620551807621177298273243655549975542833729944183055170500161505722147169718987719615241018405900714839179095522257063555355824367171140208764991433751245296324216532830123761353066748305509994321211464398315359077151045888913259994465351574904375402325417313646184855909598434603822381309465482102973748338361738315900585862055792369174180903092524251080833242952663332503943404473982400175098354762134048428252877909534072928172150189056432171107081378862133243450446156060320726841469716116796869296033090873616365256691822170914374103519373718152878480219157374054457745349141294693251007019537795279167848007471400135220002541250986372597329594648316498069975370501401447663693404968561920474897584933260690394837761624769118585233438657162066180196424763848624311437323714066047299791183252007456657399447055317422037513064165173011793904953685105156015702056520426569319872823333751893512788037420245286690120926280666479929153721482191581570476669159146738409589086578041909081260460784822278710256959574892450136305065904034797358385695777001715076758811872220188973699274128051306688835075562551871257837774773870689079948582914814048632753640300910712797857681689032446592267520937450036449375598934428896093118391815922832054699772056101924210299938463184172939108657076516687618164401386343006581790132780832603906575929279729721659424420066152289952229676099095982361084525412018954003640538037955033697385237524575537440704122449177629875880573308588361367880969633380186140118947899053916337808376911779470188874165645550455582491684135259511321726601319408757782357686033431454654514043809486703285326843840790185098736810596241168174210411668580836493787341420423180787044886621823837581895823124267792738409601726647116726297428867154871899442393740557387223246876172098725877822411965586677632271904480625814928293596891970107986420649513068806271469948487586669089365097896886551148005482077855111370994079635708588913208915642263145713437461641828328668792580906986421780957913993882002304015328735161756620173175668552929489528291821481265871571939482135359142205099071290840953738210734428625558267990517595337478821860333655992624384625273740642435141793426821814073585128854211518091259546508397157550920517288560770441047141917478833307621591787528217953927034334476512774614571091182628287672740685663349894685223837392437524012140370178202197996279642496731789393426695707193101008782939959713800735431759834434624584348787760076237129209053176535086810997222096542700971603279687163189032486455973771921479334718669793224667249143296363859343420637490090707821398451858749134845629413406614241478232023567042460725076555847708223504780225077300415545047629929322338063314599393895125428272676381593599645862545394227442071939160830394325332909146375512270394779249844468557788977401995445758855327285617318686395945145320041370618996447052923923212542947689604407573060633827791627586614378923362223507607350024830759511334462625037651152987546720985232537253905629587853179123168703685443916933096775070169245261762744100246487789290126855618307688130645575446104704137936078795682053156943175709673055042452251031667352967262714545544807889922289403755184724281863814387778019123752753702553189913763350437892189150031965771173182474685244638883504279829749742818593005049421853870321031234739717311684311780598656158700710973726410406941148613147088139570107826064999030720799640057566064373284101062773079870394870428301519996913137683964487889984116959587254456005818141796409130606934259121424924383178101032106932532595576090478380457668674036226442886003559368167832038633933712911710989045609818330577027107381465702255287669796508753788930689595087002891819633366576880896062595927727022990432431439518629971736709837836377516642507529525957069546637468908417553509729638457014332390494182682768691560847227376503350042858662418592700487719793246355817499662661882675721901909313971072928689644304978760815008223265885060623221732104858937067128653500863120572197924636262125950885526343111144142063677666165843241091117554349239971630606023348528022250515466110404947395881761621685704803756692302932041946018032086097667175541665893291062122356731457098631651984607646998019870927445313494993072364466800927236612505693531779731562737574524449829831720531710185848097926414132283714683715505014897130253038475760314533862007978801880635381392120860881922368812815643717944231700431102147512779419952362487846886991605157980740702252031667276954105690989822891784073643078958929154428443329089177769379425426054539534175338003805150530316676441934705520113131864043576835344696013977421206518727317198739178453621789983056465688319404484826376402014308307202590956326409862562961343410001145215558108454039796824733565442108953028637456269703119095771199997035706132917723348089015253044730431473066811062619987514316045377812620838339587784701698741066180184729372747852152505061592728921578931409279407625723954838813563996574302077250214714094953366974536514248441564042951603759335050712682912933961946063820815408833597770193029698438990272620934575711440325319797180065340829751760846116382380452966175861748188672899129200584030808981473536418500360788359435488199226703941872336396802611393997698424045972394153577775774529026562273126839198326404958099977159631252629550577993403080256005877976093962624243694648143696725765049595002417075837536240563815150040163546871746373143727719259788469549592972013661424891580739412247120085385950214641405028588863081062461635566984110872576091692108963867978795093612129756507382294934847180778993057803310091354262075850122429572337074601329110777492699248759516105952715771508786080963368793044789909567062547720996681033252612042372016278547143817807365000534110088988181927925609115933897063824952333086758513307912329395271775449566610343799395949026411122518725421315202133072359616688129358673347294750520088976300815461879007326872908213585530874541467239915964850022464210650915298881472318907218606697110535637836927434559316257965122664145537603299771308136011501846589655394223520402227346411493220473980800926638236078298397711988540712941638717492766370971147786548795800143539952246290662519149457306933503953440985602314068335478157506477185595782734797529053425952859877045751020012899273797356325336437132433178811606785116939860747384997227787559704604959765109619764058946785525415581643494058166095835635808485749629079148260682916066974828033192241948698784644814297463518772854381628919810150650081779805946562114082954266891575603812666023645502296096073406683037259608157103293844450878528523703305305065001680969002115287519590542442984709352794518862076135086659049729224204255399701146589916166404549579048602931541558338284560366836056583576638856181905751173723979375440329363765331063629367961045529316973225087648394540971953595293924260741786351879812098474579517015911828740372354453136025937293340135851047913884761184090873588426577032047598079740211391732025399035871396230919987722815742809848833280864280809847344610744336507492329825265910588436825360114664102804973329620950449647142862406354191578579909596661685029973434786102353406030113020722635338574045878604365238713597888636602335197905825825734704936459534935491846232620157594132609145277062710982521887146722503890219816561230539084248460382079986414630391287074816839400016802354358283324444426731998414685279032748602140487731076386569272896695474768736972995704477797352073553256385723530214252238507844205295401019526594974335913612172132643329093784607710796181300054952324504683801862115596339646536671731788503493456874349166298766094031114060989015236347353977931384509936411521309413359798828541337059302498795188069658538832251151346724568316990720160770646801077619119654326983240101962722002934882186016178806646146877539921555444966399136213186759715702022698569260550538736473036103508130350690843183961512920574603029733150641241334388860146751503456419159965673381521783662701344035263639386267272552461186547304241825177513772295687445858860132119360169757137948424001144412265511898801521820647741233324435907195797313936038814047294749295113581615172213459164151117440130926135943109130381793709178203589178356644114642763459774560353649356334449359716416038168794674929665269030943130965259849285124666752297315247874226791840596113193516155936004048970306735111207507568233799132400627049890812411293387434158188056234611245856877684763923852069503409800374800539360305295892680476451564944129641994090263221059740795619635196354724691294252883607508363636747777383643125093119228661538964721473972267812862996304522010542021414477652748128644326993980043146752735101789056156556240445583236526929485927634170522699034536861683442262689806201308955138781407722459471072650867165956521705802431661944151724465598748191146277691963309665094815295124604083009824027123325669093858230146426244584759706759231131391572236870783459724691356844682887411699751462677245614433011330580530245464189637255212951490358345665257817574989587812148138505548054767951902657500911186943373841606262003628239243403790875006704919080770513843645955674316820254207255211302442992621258062752983157905074556733070081293664740212700504228438405741538897841401033799866083853244544327767927697468571923074596628851736755524023612167457547968814940504448266870246377779809519170390891682582874232838867606653460592825276773130488993857450979531551264624541288269011778932881037213171438170689389577530760082190309068170183528553499324145784806244752431798386329054293489611761187127303749910003774929282344192730297936079896823155027610422674444925765485860672307590451527097028866989366397177168247743581270058130142122535486545262300752901655651747630022183282168114818353683771703657249042593002726327795779850767800504464370197710579646231980040336145630961241845956230937974439843917844485491341557887551679589417128352697241528063217340555245476637062757628594986253943435195285234931402064469367724832331146398372357929292933342237475877686057976259278096814488765010236587892462681252375882219541876882477448361053361482769692312475321276219937589512029041385600394771295923837654337140015655180565432714729817969540854693059978333449306974920800101294491481878930347513359104829185993942633911346976316296820102480816252406257127579163271823572363490563035571498865554400674771567649047872290200841963433234312382014943519276308594187956708310823027639506404160599393428703080815877020686199753030277296366506563417925252117868927920217923714429272880363120710775129261556059682167456313497808095247792306182777233641708874233069820848265968185435321037656862509657917811901951088221615478556294533431430276755742437563591658320640309995531338379103128902255808319758776010558170040055178282550806029257476811207766962223149729037869036895949396553955136160777547896336151531197988571350960832454437019023311071622253316114603389072825998263935040618285465646512089258644294799238949604534541811296495624495886153404252782464628275536929653685344480880528679483686501557857935799437611821936986703921528089681346146612624486839839409625181338534343704757607462666239416599886313320297457354970207807826400528006967462848575393000807149049556493056167382195569769139688069485197915837295471563873508259928245725489401339133919316800008833300425995393223530769265676081956495358776257691637337188737037160083947200237787041172615296499539790795796436309310397513955764818197741425767763965391860183518900031501526280542474083698263793150359520327655800678463671682995550779003466077262032418460306719955300680724500977861399169262884355633577301024910482957838315840000389280454176965669665335237556443082374700808451006712311884499196650939176064509061267014700107284039391815427844763413180712365636286169284450497354297938543809523308063778165972061866507425850876230571276158739199862715354467650776392334104968902965329051177430931121851308319645880448737352859856468433439229435603815003223631323217185094183022738167483791847892601180850492199100841301823182825711913863397979013394445636282940859238519247901253905506034886012044514087268258764031097705263086866032653496904427688529280535157036770991934589631225622042936104472594165325968605511794139480301938023344757215262021392765482131916248093481345219441171019194650686191658450589014702023031388711675570839411582199133561420249404923460335755125127944811819315364070946769857697464756685113872625557716019261987914380566651032042682410153210487066608550634255563001240806503779888556065061722961959026957303701024215744973568820063363704231824431912610281532651897649845439308920731953232069311174196742108502802090236536366535949086189396283142729413075784103829188221528875914711887962599022679717179058929506362830843981791196064392081837441811009512295524015432691445317147556731298778309695461905486866039498004298393470950595198956078505045890174786202977311607619635789922923125670720152483858244621907350891922397544709812232046600297448162932149839247984961936744912830783282573770973011955838199618419585782664360212885528831689548967644784342010454520368747567620747260417035761235557387258726911238254305957134240902484201259949667629087590702026146276763041705146722777555324014811637584509337938793731946844525663843307261244693219795902429703327063227192328044395576571864986370992271831361808710613347203280241555401965015389791138912670544342740495188969421365361404136124535305935760840442246109607521109759420926949742495365096506853617488339528925923340635964779916361892207642226534084843081789180974614351081173318184760814907117296014601251788442446201416096313799176338835463639542837079932161778506771015893630414031037871214510327911094607819961666216338826725427308853616003181195077446446775950716461372602504680575793764724223668839215012934518358915835885955009729157231872907302935873597666881272409481668703582528959762522665388701277886208938142532446400471938224927775268694719291651650407204929479894377751524586636018600846592155454234274711106134652232229417935611591103064724356391325381154513189509675500799971061579363655231566956583748970976082058946113020155709850715665614888568026089840066239169323509623538358531043888752579582503023060300370344764826185173343697969487297521456114863474672440544782021905896962203725715955661135614769473544328052888795367335287010558557659678740346134169200941552599144852100371058626070023476100791756695834752118045371626164101140719440729289596185218038067416330538295381768648056259012066939759471703556277137994209075472559646742917954536125245232733481497968856522540168580596856550547526800817544875610421974762712363705595692200565282395601859490244686551490788669483551277431209548597591340508720140388679203792688952580476122800674118869631420917845090947213685205948019297158853839296401620531962990794204770381205039553745679216773974799733117438378029591934310251025153962902784508135013209894828142380470968877822519267961122335725666104388282898019239684076271717618708892041523933069186681772112258916549601944936470828812790309324139816430510270318048861341087175493269397220250256976972688747769366888573428151647711885754416138049707926911132194011707894082933530150109785395346355707131227544146436714817575966272510031360229427369450101411446716870455838003362609103407812285712579824030353636297300120437864223888169945644923401051459131538323378423333466088455498034084977732903850881422180083244825425649191044785232838963762472112470688465429547513350540627570312552100382763394103841040114222256279988896729377209638468656552091150813698458469304675055492642886532210177470712466088213794295950897255013592481658747215559946029905332250388254159312265037033383021307534327979915034024868264789015410711525363862262470850751300330430696907255618013120594735719366318674224666870125172694918727982611225913823693480783973505688991506427812376191133419897902565361377860271686705329231094342579507635499993619267654324132387375373226365686543871645242603033901519683678107258429359357613974848769994169006902934836830456095795286440566488359979968245840232343574892436189225278429731150570821117610777045097385079337684870623815812698498722342403257904654834726493695800594612343862487165164027168920325795371485456324829898180819778719983479600647045914001727229222150067272025631940516827873602606501194491490598547110186194767077080218789933371830481857508508548908350342067991062696884381009285733230791881235903387284258002567359158067102318160487453427239878180212747573020661537597389996887869180191174438999968397841092811846449989900796300094904624242252266595303443316784148213754994776473669032637606426161143673572627817083251597022256379173025812672299400775171547701613370875138999533383638910742222818004622671093570444145288474136728384905098865312070400777381628903595817460871816798834025073124132974931794565802887039850243580335477094761629147591617254995869536031458112670055641286365125112095885161844864151610006722399655557496612263428553906777338746756715776391917365967208234982283638429442600522195936378575732096619800794902408814892738082924443302382172475450949229759558412345390374658429801864315773847591189643501529696287715886324684553023166987753546284539352759934683373944889940292876796266733843234045243758638562505339799054935263137607492721125128279635024920146841992093933909122423056403393163740415133885430193604726550706647646161470431118101509838502369532767830865084364869153182463231780093537307181425554620452384077256029487488070119795960552433654025138156002663918650183006114468670718029606010957561781501493802566636525565262143409745901177285126299087347489636540302022868625130615735794853760075152306701345735047183597667210051659501344175501620711513792973171086083624766772291981734320704255783019694501477910875836853919891512893539268988501232235659950299570389374477064241131069342820722330233152340916908049800348448145471612924482689222461524099331926801656183916489042499994406423594648494072946075325887479478511207495050513094025620833562789622584518876602494411693650724274320929336206102100320192330839257445395980319911397304919393262111984927001770550397255612373349860290816363965646714161614174178735043326374658719649264216785203018351309723777171845016267769924025030470233159385280177090099250172587419624491076287202211487826086540070612866563884126340783403476995573472968343123948693779430590217683216968529288532103823119184329454506602520165339224021843709109756855259670186118034863023093707881412594128774725805925022836462163777223681937911954600472174089142152124297886879180017613788134360867449808973169107276327610743077672950831712880867453387934184481626380471193801404320037601723496243791594077959441097646946178792229201967495934168373298369473201252239238584824537662932085470003449683857793396403784506388245131133797184827766181350846111195637612346164299255374071091006695528159718960635559453011907534212793064624572583575091243706226092609319528105307782576537528387908160000846693211663091316927848183737981331017924875011973184318281622240492164144196060201022041173000261047324642889553092276994705512027218726859900085186687511546126728084516813908180528231725031660423278904236760127918197968567995660905669711597896174613702092224394029522048026387272039365516709047776569812446151416590263286490921282141015313333179711536764705581082410363987751662016534322408583017158387027701379641582040814872254730258104802063780523361857023122203836723541802384919411014848793890562598207868340543416819901886594431656797270616003104836524616981689543428225672906025007079824796270173341311504784759201531173422947192632604660795941583294490935975404607052972953407502348472697552636959772997118554969302780925758872677163512267950573689543241617391102632364756985179101874868581485056256980145878572966552965222853118953129361930299694730581941368454980915192188532619487642769402244109547862205224867757976002730377870294163750810581148362583502190661030909880201795023028537970141894199617618411428206628145902133635046865032250094151334623035706837698276761250834985038564786917446825983848097483897780848383043699081969639583249671863015493707366936422713377153219997902924483924264257075951623434958189693639385357819474033537958216839927078797155841214847377442221864464550844174049093367548854905653444479165195447343588188744205816767518954464838841318674434656672876246047608724659176406233501878825068707756685890416972279403775892457968184306738018388852643523254566924018124265959922000012566309169071425444842505172886297884519111591410428620309512246333238936241128344625992159831997985293186894589096205840628565091604739997288941615313195002866877125797131944249927343412312767412566051323927632502936614310704090564680443663329250118561506211011249287732714140036634029382598447055492731673046556995230702453902644110533864936883798506136150071618337334959128128822631075450338343307530096782998342907340260257365770908909035464143800981010480504897661838728205111421264537790363478278896212583696218065675768144127344497413011126240299056186068967663865125293910858803279382494004600419125716273616629611554728672434234219867304391514490670442627647088968330523265821955033170835905681582947769370014853316282002269319797016386686144185560020960925271911167152953484907976448722877072954632195021662851518596616044196565013727547081723135969291264962966358597386688657364681363951030698690846708069336314068451716501832772627420816348884031195707850866442491829154119615582670550683988274796221496286112317896286281641458123787663740278408727667460811884843145371824268403705431094358010370643001633824596872662018505761551451085812990810165403117545766638575792338646203911718049680761707061597784821131175145943407875722578637845166564056599132838401382122584154184552535773302306364321852891581390624319488388587867350494221349559475240354775525481650752013366765595526119337519642516124911805443867381881409157214836413950253747872521712337141487290254646077929447794236226552246464990406256135621387609945734838481304067244010159539549181814305153548711611803595294517814865358127548681368817722902444596170730989261533003726524277324163013403186012195209784063532106203636353969636862253286597393272372312221294882852521985585857452831739730506089376277685903847328138220147647344410742951831992626819723948779150833758858156379243005637926168582484080546739704783755866159245976949086529314462048043326249617105017130520091923030841842031498127527851583211947855697782703666991595907563590408368199106044717720416815984178853454196726933737826155761097626031330385265781729343433148397588846034308655588242509853110852087080445956436784771470683310225719079630293120432456698436631959005847303002472888472929257046374769234315539140977692841069908559035110977765170657123326925295378877501211795731107301079838504939623649245231257023618252921392040342515977514042206871868303831165866664047200569270762446651148370203993487679197568704577355597213881025777994308284762422156031279000368402293083604619966154920551741709507957239518177062088232768963279309847848419209588900810935686723672426078010709559657112421336098015979287496726188660251686869770713025087043820080132583518050730697103846612170748062443384391333161211962853529709869023156169275464861983203163340447038018772000998732182867163604738325294366732104298225292572915413322774820058454459473506730246734997781441970414610466837714307869958083836068937147434581418589721094186451617369394824629036320695326930300635286331635792797448677600009000805701572232883489951520185998540948898234086701229518749464028874440377605418865531346860796471250294796127203023950139374318299408391800910987390387041690184500055990012928742677386767196768500845726148130878835950401754066161593276563528401034978218380053508483905949198628568069252766958092010740171304400852034231100693942910781997844683730181440247665063369710077046683895112161936500673053772305808311405296637690790579213263086866496873950219560789072148020692822980126628539461679511403849820551972268187516040731499721688715408108924415707470333453139759417698306231677555035144350275942680471129196602194884235118217504696220083525566097861079651307158571717751987153300850555071547069288268274528990904856552656545107800829278180732409272126626608915262551938914122410008723857634144554771697649908243577232650217313582992999313496320883629949765485700009946038115334611936814258875416111900519235803485169477383852191144740823287027729049389578496375731309843806891092110820096752318018945300392778057671381705944332509017264419197104193910543593372012865902001811277059990004890483480058038383975626373827011369513590497643447810055475159069850727040104338597981818685032621423094325077713076148456257228463586478537152677912242111453851924159219237512723975943687925375173929686495059329100793341931763143661032635026561481381389023784603689077418614515413251006558901017244411255903778548422995292726730976746757903613046724755480645651986128733383131308102881139914707477820792283072707777560499276847554291560184827375396919655782214924451902461550273019665097891310264887117268792913637752938555472405299071073101987998929248054775359684175442560450484017917312785875678843965724213934125264670957572106578407245111477941861642309809354584049255472312947406445233290118293254465391222719852334237663780422259047170643738422877259793809625814075232872029904552088825294359267997428929808012880541216416059276625897794375539993751105434638476366950143729051430839774044041755458233740193423448633595387881224384800366856205720336830925569567002552394347292409503325171546019016138143339827848647753661209451172395471636006009051981063442836854785476193941540499030559773967928072341430474189362563054031110650546048623581720204253887229049558146481990836224942364651387921195643895505356199594438324874230975662963497862233003601642479036665940349627694650221398490605484057840108660799076940717020009818704551799217302637334105832257541270752488086977664342593297945080134479173514128665365739585126106878182304030627048340860793616698486307112564717185367456479677511415570792621560248126503337484551404437693077787323240188917464177244254371901414782256140687202590401698631167442372944575873576440663497672892451486227873638861059498876612835541415386434089228055592837952572857450053841055720482370002680535471868683851366872557533181639539980974626617068517847413928459369638078557553672829724876037092149723165280781226126812738623225133732737371745717547003665690710869159780775412265160243057870156062976092458592444990445664564380266141092167738699739265739763810662042560545946463401496913002051233627075796461452461162706260588660821907138624827344709462267279374973703636059025181840120087435904464557633987492686453978774980405522022396784998372507385498405676662610436624650858095424670158245187629210813348573901007397506749948877475341808994719415913290106846680874118708687845295156929177417359168084801937289424004137440330537176470960006705780065067620121785720496004195983443114130264712501051541274710391876603678972856049139716064768501009097001437201419589118285313574054096968001988529429917781068297424868012875271438254404708284387810751671837695422678934078434546499930950568292453347326455940233570048550320798928793905980840221677953470360601531212174076408696009197839691206247294137700174163369767968448482277613813694758274709341098010685539167176060033750962829415715474459111392229314562866308919831555308792811307901992794849484233634745346489926445907089932524317464482303574094159304925593982013244666415666775037057906303576962385211216856269372753315712442637541708073519431114878435881191694167731978089767697919046953176969959266228604832423798006844666203638164980315086592377629599815397736458577726052798996434328877242348291415521032575620905827522770535047188984309098147444468926512465263867268459743394265978026650590695162595741923577469701749298020124189707500736274632322003297199261245941632674225558613914110461017043689796598514979261359435011555071847519721099654553693335801173386135164095048944785280827558515565944968291754641263310179815340581838223828554276734079560617844271712152542688362208271918960365502816407373279808102957375424915023415711063210603943601631071912567395670781942392216058291389328752069434542121793322512404957607840493540611270132089869918888100431051525530809552149561628296890511035001945473130754373564165782203751168926956662782603467956664999540425084075985269437514718241953626424145909453565081847984126126686233451106263376315806875072424815824595202238773698824881427884981391576561374215714300117280254104236029529878925670758866734644425496719599219530145641816026883988502236871631730233531580164712635725159381854564615228751857443043213192711993484439745405583171526641291707734619323025524755434151406087153033126803957433744823119642562315899811820027636873231233583023360360751122472838083566541261054664039486750364148802776588419159139845226000461217481968741147652657555629702223664950204166218286198445619551222820034708186407387947935866177362389429847464069846026880794727817602725510385967106092527345476296524733063142985188205583298517769037010615870707533159068423421457860252048124542149307495103088867206161417890322227183372805895955830094173010163569239531693083452229379093735851012224171379932105724307985729732938494446442715130565231075244198551952358746865289104566458067206862695979554529454676003154113665453972440960771887201494482379188406040247908778428692981334002124553746013944585532270051194860707849753523985524105815676192229410074078535067323766116196361186194764362277827022495303314868890775571472569187048815299111717026876200966951085674118330369011843253992308545828941318706815123783588838993191656204219691212604914694942213673880904893253897057244731872475983055729718450248887933180898822128620191171012599634276591216266549625940227747102944157021701556864908117955632866842360819329527054272735120333186992040881060959303541527842961655973709560362803970188564758973838291735958480522518417107829903791804226898390797006090398014372317194461784556198291311394062207172149282258709493975697347640981989677082973369288035442645261103313663304740546848886502466183271290081434364873781036013559265658473559643196196673764439743638933771102962317837311668080639266430735256639237104186269991258000891492748077569694671734223802552843602832718326778075647397569113432851992496990487205843207520580638926247903681825331176555338460412047229484581963975033767267567413590627144921688894869958455120252162724872263874466279828694422142418974359042452938565216211025886613799455137851109789895032868831940256380675718431615276345304151052433398669485702209299199495313416292583851268257785122708624592021113897430921686353822825342528055458578615087582955361280277237965737144297285888838823413798347005736987075882299534073710366836856223500620280723912680756022000310899737694911774931946766361555779352715872019301717556116249895612605508312614476960738095002347411371834380295953580407000994869942025830845379457716013319779869256905165485962035589855353638679352104909733166088884847731704965025745671814116855039900029209019730010939902015085515259073996960022508708481483167488705495673713422815659123758737584779342964274943683109362781082649425214032627293018669399198083023428701093333854726770295308979463045035007095508852903620469691189410321597571101445290971833864599873957070879069280742386499281335747940261431022162638884115871164763815783381548858865579825762538455495617925364914418893569332114657700180617687154191175623638181863327291961724372569626515173666789857335757820519455835551729633246806332269235291392587304277343295503180012576375975106668439330855341940510052970895665974564220444971525031576930891707617861925912704988933877761964112408066782050499363587630926330871832325226407564840645154509160885334851267682803678268373517446418075126344419956034403574795624691008714907752722342524016092148453383608739232729763249541344627360652577732218665263484247316066552140062864116294031898979710446748363084546064125877235688287810551348623858836649014822742058985925519345631833831556644178791648215229290241782905481434722644550571610836701584757823357760265035747649726574972584388683633012983000346673011692733924544862916300138184624102949170662210763214144850356846453895205200910232692668646746132185456382431864862141973488502519092586446801979256932789157130800657405371267116233028431660266574377836054459791686923021704185812079716968148018725083855368288537548504416999789356278293689534523407711253796868199010048068815555630461356492605237495855681773638394155321778988059203572378280023749035009658762963273577483572073284802911024323598901472525286230998285521614437210584376737637620288122215263627617785206846230612436853409123403880098674998001093973158928457619999812449890043551641178663502736897942202891601411507871869530550210534410337328586120438574782709594735939502770610310896814887989106306706748449535822066377296285603492509100280750384186610597280287912823897862668964371152860252373992403817598845925483585428185479937305373816904149199512736992483808875493400100347703075322171998034201103707809595991532614243017860441784524871210156288256276505490484604182701387892693092535824079872972213938835051954359408932260055297884203456539858254342792711123770602501123828110403882009541310349772673961034415508047129944445915016055398042002577720507088321585153669231900354946299085923460962277400757526450078245319450513414278450736659880602261676353366783990267719714569820057661278498615392570166124314934494489721374556209958293082971331107151031992507362070015072396860136838706960688616699897127923137286054927700269694181451999647878016944094744488519538093984014509418913280647841192677431785348496014651508799102327761388439985996831624432197448206438510850877446709672175001492690862840568214078210034085420039891218121367491524219250169152221373650507477575781396454730764603927937652007884454791774099122845519915270334584642845911908945395920617024054873755372087230271474180863939890561427011452513857302952936568971088266881293346612924984374262829983271086962227006403142741969999749092178369330583742295410347754817182830501252152472422404389960130190072995253054491568966773100873166477096474277945152958974175614166815228788342363689167542212881377315539055891220195839357069024552030369852344630015924294942751592938438190006653229505317856384854464677140091554197657647307263018412891984502737235699602031758213769712950563123942291501982295724872875766046034586116019500802462617195665360952826755341924982307180795242425559603850166371564094703044218319367825227434323184385400601542315974835046263479011773037903677976476142508391595152217135406962684890004550904527205344400334506444737588138618789898064610435482873277887061553173641242845414900926267127657600944463262930197595456667734417749687010580836401873064788398617567525005295208359997860864913071240255812783623851410390601206537179780701731817702644573241807695678956200788892400090581593595284574282879447249510002612332612302286078143855990445379638410078533599616232968496504541588312083833486993831795426381361721239482088885179042661277105899259686954922325596314677648420960134924419121483785506852974331302447929492244318669308837312920754758617833828339996031039728333016504734225338688044991582344939202577347922276327364902857165614388414817487411233146132298696801578461022709228324683418913330442782721368867501492421453703901837536086624947729271796897276852393864731585866400387333069175962747179714619176171611881024132487862511687500181350501506273357761452155174945247270226753309097309876379970334065929416011140883940437542668618298282938034439714382413615078600596829030026668651675379449865071149185342149744099198611501604313208486603018117693030520726003099198325991341434429099957415622896026867789471764338575378345335038064813555270469409474164659672135949697785576435975817193617996051716305384102050770885040622464872622849614744246715402458444670230672308634757781717933756291737174777104210801846455916170693575668912244963268491826144217343205865385305768762927736134900783280551686024782231165562269614685829033499807467064775655951486346845123176625980375817856588179694868574263384286752015600298905897745357358882157981966752130320187991929345349537169339718901796025818953965150545814460678169400540915648460020745056026170839093380112491594454382387388056451373106140961543459754793439113555155016072061476535377957929414760050631202491660113512699328656330542560597750906645178628152006717777668167885600319827092960927259323684066111884711467502040423373629019709131694439717898633460020396977954497876475661085537880578096340870899130759183425142824043555670399854706145941006839873977329444871792430762352520468203511764672975352049637817024221720528859802327630065076941376615986601323854261148006367763005528140955780495715678792110201458871845818931032964322322457759976469598723497983725190364500435111512052259960366310880480465625849334784884368039312585737796326619443090310387157648967279376810123781702250555774290147354015865266052627102066792292631951985008790006279309460792811712058567980374045972147417147920200124841886197791363343161744290161455737237858569531690388317225993923943005499254030270519701792393230428929897188660317598373704598605686408671429893763604184427799709442582851172336758940174467998691716115543755745998976193218790262540326857829132693166976365321214324191334106763447395385022106141301259413305335926251316167581160431150336837577113197314775670685538082280844331574948928619168275644640050304901820076298497737372952695924164417332555014340951892743793264065344700715506390088168698069046615949355344192337910423107378155421232418878634501650316284856683649079943686772300143321829541031566292940999475441532878146242618027043459629803011047193625183395336990956133994042591483596406185058743344174502881381200407608492868848251875356948471421835478996803107638023723502424416028031777778840344943348701490533929154286073361622096062012580868193754076254990980051055766365061106457704825893364938591198856253178767062883002360806177353246982906870062256935746649850992383134413185919725139362103874246302399678419574055917950759110994956639025168321588134537625929537852490064461109048819360470438959726292171081763461134946584359818017016370821611288773353151307396966531226323195528492050853350541283186844232363815197446661300103730844358709430407987586302102290484151447182268052337374167306298583624532603332887939289736792444456214543824428203955292396720868176161308011957420956173430924885334464892517218702463267224160651982234857691445485538119391631896435789142109509804827522973113464487553330893053761771276051861271781527193199050375026251196169551087772701079452447004502878189507775476337940705395648709435737256079930519233643048939514375457459031702671136399477076471357892105540411200302006766345963202297436596116545040448589110800265700896175553384906814935285025921581832832003103972889235609490425101067812803008609214960002142680689989876866017325712608165644138185681843181471071769865149819045487098198436612609241892259032032552416299252764134260323415906926541796151405084756852564514221546514715947067809723264447524726942499753946261492464314428352570288348278973941837232507955273564583862652996099667545519457611210227342936528253163368144905190436241051902016693196205629922420211552407181537312514875537385314322240905852184527477475806740199765910396172221727953232970218659145033843288252597577171766665250586506272895733645534091719360262648291242064579913949401561168764658986066064838100017089562898180259725646658304375261395806317678583807712395809217040400972886864514469957029163493940756750384169089880954182566677663757263330314178828365653697170846056121276472086100105763113533136012644128428092816954881419847427249061453291910800508451111567759510562543055916423450151698995305916651258952492476659962160067997025412490275329024293944017453285122002055478805031975325532546879437974509554854299665630969655505135313578839111753483192104279785098001180379372944836383144503425605125518951024211625764422300115842644760772427829623824597627499481895640816894734814073252864694874544395990363342292770852919749480551373880115612301185467966343542897026771762117889645025223565210238660610046237908263959835828416668329752294390645787906239232552438182369473191514492397348281531297405583436253751720900593591770024986126007996991142159732922578083592585857413227559880537401690444933738923660707462559654280654303769405336196584682321297906269376321178794974476867774307597884625637281764436219929161255280563012748101007065779443164647424543549320565122320871447189282598158527609788973209920039041851002403025340164052070728106796377080021899108393884140467708210125063429927189846741781880791265576837287816642652334242352791973158937432300930326461585053219527828591652806728803915499432675745118850354358570204683568412487455078528202276249498788014457266990351782584630535124134385776150291744269635120176591887289842879235717435854314258901433233840566620247984341891188091618164934129443924219149234056625124243206392482656423563043278723091082108620509264694811297908168764968637257698597585121950473992951234401649539417168794049862407259223930642527782736679228420887451938636805944158202061517936144507004456737398582775993154383587965492577395198039699485869679693721413506575732281186447525597321428836175885568179057460487201590582078513837066139619267746352962082818618858805333787136062981963753497369581569821637157163369581528026814872564060819560543731884502424898605291630880656106264800870205854897271162634007147993943254626939231776895570940114113516974015711194861855931747801565062306613740832847221590114873737093317657150009051424119376910518107213989772556092987751359757399188534527222516744312244423395619534707069009587713905744910560374134772994195060556501201885437278346646419447960322749087726639375152100752835514550910135782063732347789718366427113342645618125161084432919328659996221177846997390575005138117800505398681161132360389297628130960821128710288301699232775551050427373308567121863019044115785673949413891876943759360129124728541671617628976346721983948816099143719210555154152807290519405559491648749405642011152382292672036429731639039682068282889299982789110859215145842736492034741353980290347876004741427833772379420070765572960314347435858969404187298526974661007758395234995367391144330494965838853988080990717298293486629969209880753451542434607886912955792973150819317404663088901052436811625303182623010818910229274806004439685523932160774710574383014031739804824131267209717126335793349867436929326215827947560151337345879383269944016755789993612927460308000084348804676534246783430202376769694208332121430899991040950419604789351922179676487486836290339732848842512865397899931745070741533361508695782882152486402358665303593523691998924837827446729658518067324670566272194354383286209097884061898002793180768476509039691925986123477104635844352802381528692371368919140351257857402012978973123804873658460352574224617995529289235153672440641435213715712402191865118568045933869385096735418727840160336468476607834868515330593347702606408281373889893996696958809133295217567437033018352932313152408492860755984402566613546172852477369657321047080666309262345778026005356734743678881826419539560564698714898738299856633898119950650561769624686578689223290161232591641588207265006120861392012042437633614197806005635060509296278829368280818209224495948721913247936714471592993597426980287880014688393377781643603118628148597243301598332497602262159210628540166213700707565349654053085867696960852708164545242500721527625822519131378796567749842523635102776778872373460832176145038503151432107708811808317669692454928079510736220978784313408741888729104145095544215515338026202540847443620302289209486755290493029832113682539206967688316981257690884508398855257883867728348028251165223444680516445883567356818751442649126477110187423351116649365877926168021579376265549325576017572793404650209184497463378025957001428717124655845297975567381824168324071819846672869796723591890522601783867867975075031286148434717662319449214945089530924594441267372507353189314147380940632024147069190787467019515000945908654098452285531051259168464325673431885202113329964114689772447278082471800294586324466541453512903439433113691437763458032110808462410403962122798215042325188106923789897921900354621190734108251933528672279084641889883011899130482550227431401764563747144849043721184864615291986702265813623033428012205440179315473705357443391419679202426303652760179903936306138747382602763060926203479201557677085580564794256259302408499750932638272615404300356758322848538335334090214805712489832941334520092867284058329275079068260927244191589190483209468287142836380673585381566117737738629554579273812277388568516012297147249711636121932475184195429486822286910772108439279077628885039650685103124807567331586765161990504931521496378326118245105069170675644147677280668571959294708362425322010879997727360768707908015071856634933945555386698588058168352543082364982591329275357353023367705269759193291514649752362513618927537914072571872625928102300542109747959922321857569892612935110698648689359141311731893903196482783787151161170329200559956964150092380189055821640867290057387588386278459190939004487274456044353916549974471535350466535799984547415569625934921028953299294992304145067636436243172232631576261994423464964075528484114435369170853339040407067498628299938394124498312907666830578055457720034526001017397294301175437805046108085386442076576582773498823257736785902808132143152403218513679708288210506568104382423161227616154393471057493718901678322284609247847139888566237553285699439529918839465479597089059824981547392349666550670123464002296071404706266027020644129454935692575591393326759653182580671875952387291627539226533837956993246578654660956279505315219383863388212826820336438067091795644427774112651240700101220114313381331718525453536986243568772330676173203137205288837137398217285826069427847533572331475959012412464012037613797908866315393313861406605784467282293901983561112318338362042356233721414869817888393684344121519860788510871653787037317889730937077518621066217002691727891124453425515361811929864940669301031183378504718909341398019093731365229333152326672623472682467917274488006968677517507680594284109326717452792126069358124186584730819196737460272119882743132746008740678873025679655052615354351240573364170357351270101377488132942999315760024856085670065991890877314709688488737133571914849289367562797203107685653962602180918748410528003488538576422489041141751867167263281648431836982429594432179397232030627530380406696886738746890907417891085276196983667765869414386823575922459691650163205814689506053255092671821679490586121300939233308975791175468799429273917772714632365134430379550545455013590942353966424045338684677082899677951407617472567630547065760046434724161798221150704029696430124774036107849568173484072969142005196976069720122289395927060492324747104062380587053139792162948595052070689330310908095690130068582878783662844867896991294692597103547011911365783636087397872384311129491161978057141358410862650969740656854738413564890437468364086180434189223592964052151435782731487348903308104700613709613950394785607133028993429977719753492299780538280110263348702485832628648366176174669980392564846883057839036380829083342452450869334542893966726916439599948157781464397868527022937918415610433404608835809733424482557731034587146789295044126674741624608367626334931813563851364050377893408222750466963207824973248142811808299205600083605927316758186448673775857110534090373148793618817789204505212887931726594750006822633483365905211149360593951748995885914099596032154214352634678034150350534855302936613976855167753138869774183987188245139241320078456024018519813652079251561699183996795014775890037998795474461911446339873394658331932749600195534385626311605227921131225780416557965341356239275995744971466170621426580226904546388552616943538850347112936760602167236963430430969564363678292278605949461882220389012961709559938284951647128233570614380559927232755245636411082580312556644060937126245561488206363316890338785686827421086363619804562479976881119129031471629702914789466366116463940931157967800821003169308304315160199660882914261392986230469317764084278327127988117033827486585993733891941554986700107104121756687497639368556472189044722052397877928443648107838270649462354667602068545036821829489502676376055507732869818954534090676281085906696593308470399856212526879115033644875215373278481105038331364208215388332245707192405969402855728239872233214666660550161695331437258762834812722579872648612986803494104134215436145996496543734535151724788626698327519969653449986280301557821557377481184421437735656515412178147159015180004201094710528593129339472201974254794291015152447346286357266083654136034200670012106914760631326492504623099562525362903449128669641500164525519558703563784300521007608487891289344429404449501281803629277787314843899926043242181786315247921211211852146484029664713495848931594883981505174363495129728635876473916641594146422850254257114223883479369196819798012477203744789052617317764396822050438098446617165635552107882210280833295236672235011946762674787900300310152305420665397095431591225594840993613034790436667715161584022655002939622360237423565284234643930753554224649646731460842646273929718838668565364506157104878570741659449787102054120848209459198776443712364659154446002706816362532014034904802003331649877342139765399014035999161623455691626122260336456419965795051447036095965828302009886565732082703073698696946421683095416081401929512101604157203954914444468096055700611943542352158419917599911360169880985413904842436300664472978359430127147846619637326018534639353871437356679335181064425443962850028279712045871345661326661579258349140391544547155089158970198007935601007790106201409822653607568006532753491660039688875785719855682362371556619230600565646098112690078339268600526435816933188455019170359556737820728976524399784056146969596164613031784212571394490041605377384558251865850127975660317531478743355496778300416424935048059591992198209415267355368754669953993336216826040701883183385290266166134222284622663734375272507878205700452538872260874817567425426697325371831589045081681535023885445592309769785028412844106469608557481413215226004245739299337926359542618859652999095504874942523074283390713731517274810581874574449002718017355754144387429446688764549760431248995023340059728400776848725993927608957227399426552244096118343617927236245917748846366099489703439218694114911927508649337945722776877981756470344089653465212562129893581658561413883069509550378990439793756285662887330245866718273160662145431491701671500821801886108149628581006080910176517815183796959443395433471649449188535312594279974128201728339402875835045603088032159634082534082998543161804390108848798770073114408395699707507473424872965021122605500087443202505250426856242378812959858776926119008369031468916777981661854303151493320127583438939632765092829593509574397841559528682559898746844174755588934195292276365767087502920350741185067108747997642830470865462356258486460207039503612830240075367319994171841345947150106049280227366977146817418514815005592265531273383254651087574793651734459180272309284372944091226969693933908222644091430524928326325427620596990336588188697062007225197625174818385759354865088747136210238340910053003828204363837068952060215453627302238538557512150653613125197183244008285293132070033667120432172793451853352308502249383032170268752017011582949794567274577278501801277834514592171303117068042675685230228273331260274024613948861107233859890329881424485718213832041070367716188990625025251433981090298545945328929758165579541323883793991847181574865954258034721835748643038999893593991367089521146573017977431255970987156030902918391737226346100060336367641168992351777882581104475628486687816276368484027301928337414695746757894398062744335244710383526616783892989483522775567987839614967432239748069328574751962025458076802193257370382150886777802524986899451803008778230357264481569778466976119022502604475754754399025809609099053945470528523178758027665835745022403233716835053665172169485767674941824162541065841026353915009969845738613018579530612576487084957988211468882807228510972767988780120044581763312447686147814614314091778683971964631720081828553531393358342055143263563677646077889642265142411791826806127567166568598237806042870231544674721019051463438157255177187676479936869951009292208640675328267546326223275208484939165695678589839373758818708092411015524393086477599468037029432042994574021916401459909280884721731637284100965452380263245244042272913775793300628480211449921125821052738728810774342900554727545563806147446768956607378151183139538320074881277490679860804698134675853427813111295167180429645266554021584414921182973429684468572317058462009604601676043364428313247454631402596076029663192311529729885014919780830134983479833303195822931009810231757852690696700530728824055922245781358158074399503586608773431975177353710021321155025571596580239411140492414242109141873649434258862923305159576051259718472267326828254253265069366258987931380804134653867758153331029560336952995807207236919440661619446668194664040141992195460909463973624488965523392651754707714874278330663654571152804828039394942019556569569090379417536218788200723444957074984873531660935967620039234346149731034271698305793914626440173668344541136243793536862828862572275112785775160671499013477340984615688262690567990218738758348127264839958938317813754291481831374218714090491330819870628020379590367759862947690181944327150268432668321750831635970141025554946276556409822550395658525967016168837023686979749012898892459995889622064455300566056899686251942337176109812547427997654341905990470508255170860419925977026144877552276711919235223380785303991136274895183692088005071661467982134752020370741596215936511491485717354221096011856121004733903773550904854043759164824199809530747612962944487231013653643616318817748616544350042164784977184229513727995217552253753931378180412551121322842696892098261044002145725099017526252635019508638142525966005082134429152472765332032308914709838959012670822545687401733189960183139880625436548754709535408528626039363968811808278694082501707218154866928389643459447243448812257020563274361117110766002551776443985014325330434951230232336092757791493328350639899822691247253987503196893265426112162731083329011532697315141179412606883643217043170728171831677301709289289728516341485364336263176597341340124646610477386633791873974603730531757321793405587571531266655271130079050509115328890819509828136230442194968965440998488931548799879292385976285188047994005239903966492385825375330175959998393174991635601796489134447357595472383622104535740485326506080697354508141974138037342632819839401701132780033939121315389587252062977382831203591948024442068268548283840040365664372647651671022063358430321293948299673040581874256934698049082727025263818274767513586470781805128960575376864833784166826964121821379125781932119235486478052168289605128094172266615005373991871815689805401278969445613692995662590990316547066489294838104764724201724342917707242768696443431141433906208382170462710835355046513744154501166222708770532851577350140133432703971905467831542832233430963329819605185457003544640988999321304852678012153558332984463344233074295849155639768147157111296107762753462260454325598261824440922928680872554219855665701358281650282549229423862895880785847312982448574352356260212133412319909278053665712326012266733147234754101476470524874155786422625903156568698155832546492021383897958885357964850617408806255499411417926530792739557702418863921257290012870100673255853797854535291949733839376864873516424808603259400092149824125618972201030366024238609685809514864560842071776990188696623835887531909777950429174748799582758142919519129701902429603670657310156038057538034997681109755079514679777577192927407706985040584699289777230250798442049292201381827787619988742463681047761075944867368205191241725104020058741721424844364216159511299048331290044290170856373522818460844086201307400330837017926994330778994133938932754870481949423872080901197758301224343522949403599372640023168612944577973376782398784086899174996922811277187859398906024702012406116831245438628461071267437487189241434286576102453266717746337986945493726839776287172169992032874050431373971187317800754638669630486369668175414629831107257440655302418270988917049008097359455386561523957017146961472162639698814056048692784874321239338903574094387037843312400075667746068041942170922621790554498690640733191986715725155760129876124055591810912884990971106426947757018263402840340598471277964449748144027229693325644813346184787586479750686341228348997577886804648055391981816131882609762936163273522205575258288679335622794586234081975338421687440930128121702690037690686190466680267173230309890805492980576256409899623328384349719572938600598383691315232684694095052106134886210618455590094196334330519741844149787189153652258005783822349889130004883019516736240190222348515982317936399189241935295827115658715365932542298672458163955471016965812709068519049301053333404282744558569998439608978320797234808070374724210784695326262226432769649256842434301150849685445395237847368828081551729626775889785162485287134882072969195964956874956401883716715330661922713030557812218174480774027474038284852417372167297770612680288320219327255250386479114495425852601000682657835727625554184629661537003626385615052981019586382152441443881965775922683817402016532264523360942060182393342085228642626727612136888443701751321682583135490538834081376795607854281116138683901035611317175562309125272137633068830218269731188097178709693185474958295152960901985210353280992009219191777030155231477845439634689935661978280944655003226668350706326447803180244272703481441397992774530498652954597259699809262627944390620446669753418119547140679241864490422103461711055456507658042492401410935069128767747888172328821564925868488589140931632033567840450593373448896691314829279717372666540489286546743258990542658637243971100624749801181480182342999819537009228225583667003502861824525221807670851534645760582245367681885004643518680951987207767911476251801308649615125011476258545463024784748286273273987374356218297084609873242804243513046158658974082051583436388223214184648407586611497437365117410999011173867850777513714224009976459541494720694737314976480231972505132530031832124635041497633033228727670758005838406848194058059229397049620426192424521516745203075864988239687392254971618309705401512482504045479254799870195198142996207674022773716819137189390536793943219417007513295630913108529449458280280790811409581946017139041193259255910082978888999003861893588830838908291372102968645262848212352969642413093855754630444514463292297152328895545648616135254033143687217908491394954097982888263399758137347492283149310572841158811172031754051320184085571672707185976727632813652584743076353510410331677857681363482530878534354313412910851177033172155875933637357649614748453026355043712033587137117848228362403024053145323058662084471746184956174092786502290102314178760165580633418486598907899408005482537372934416490177859975855067077476566077036943794133671320812212637560312528681755793022282001959190729545906986390911285875274208517157619515050633222451631336894397981715313277911101056860284412529100966339522420474066677036803950193630542710335145475615916475826656784280821422056763529784198642911929135246215400676105381202186439811658790053910529250077247659620225124651661246453862959732847223354085772096850254555456422920686598587661878843658221906154727689029694927416978204252947406363230472579366040312493524296723917919198099536951302390870219520248926766147768903083675580310477628836349577459160205789485944955162778481874891674438815331709921218210631052471908505705546649044638745043938933138875151801581060925021785827472730434284541010494551301889971673914194176080383731754708718217973066928422923690868815889534544048192742191537347314872986016664009441155926532430737391333017192783305334191861369123461101115151319542734200450049105018296654843427006316870075743951887805391868970208428365206163189177923552896936619592111025448276033546628599535478361849772191051757725498783969933056606372964715366707361348383270492490278107087134665098608999966098665629503972920476026577602532033403203211076801443839747103521047233023281917534570721710408537726712304954788917077061379598686272516214361235237157692224446796599670564128189151253329726977558587849029973569970145497141636504872505770813848206811153582824829471239249603063433691616981886838610051332304713329024608982752165509708345955236181493966359026225856533726194289153105927113133723755870353668924969227676974260686612103521663317417170577395694574446923375340426112369519586168083280458546325924400583021862775330372135319654298378557367340423788931064699421852424130951192831179547573499152179510021454420644185023054817519630629815007933332038215340391040351402795045677011225723632648990748325669337216336020140773662069163113875024245704401611350665536594994337537561092376815180445791912216077222527751625108994870493642100505694588047674954082509438478173190975169327892328655245583084218805671005239698508217914983469316501424853129781790128865443397843756982467316563340080185938792236441560895854792559632770858532233320511491109177481315225701446650573059213916278328571711867249868231142614203467944446404242035368589004698369293883796542840421325564791559453230997508343769657876943004216672697535440697732926221514229552238292953384851963161514194461315961781665418935527808944522538399223265969459088785728534957684451124055681922457559600627089455140822538991350356635824762904371480135675069207761377187662061845323722090941001311479960679546451774543056961964062220649499171414543771800088866652801745677815575170475117615400248814051027067661785453962029215712988705398475656844722952348175814363379780633880370470847704237548224733785465097471865186822467905248995687290419540219915187763945352793541151647459538009332250118832331823519142726855988146947790034008549132536466126275728201955440698416144969006105473127087100372778719614111708274077615535346222791830120479929214726340286062210739755561686790586019562004401856223694653030769211021786751482188772994136641996889763813857712777096524637603887977769735701344608664092502797761637411950435989603940713407809083286183796924854244760866365396866044458108288566384757088383540941532950397692572080251480869842533628510424043044970933580451455523236295846195565673068748083832373939603519738346335006653120729733567950614593939528807546889196045372519198590358477534693015570144711501344474735237141309231098999660146887127906323853353613192249121890275737217086602369533641078364489856946167723202372743128960700341323584291460634224070335828703977821451773540691018567459579499270455003477544400175566952359257357283139958295498223208316606822769183675392284059777683030421362358621309976304724722379656279222299544930610015769085554842468537480473291102735882592391281016080969703787746315630509126999272314928844906895175147130406321778443644290760809781339116089914808949826511387418604708628161986904785234474949894212731138928876558644441202146982625885265195314830148376317865873443762019555600215798427291775933565069220162408008343580247517538379163908852276356121772536771481594845847977613662643719105172633069047894347309230098462702406581147310818868326963090981099764008471696499284747167243152027157038166817594834175583581403860632030214176685475803908710050657527209838775816857140417028260550566670101110623910621975229848545471716654055701826852523122215147646400780690257665298058035660127642743386129320399986507543350639825901264887230286250996241371490948399932725109460500398126837932500168488394443846321683807517295561158277358443801703774207723240069956407116165092369594701113214952199138168633080041052857424227816335921433220935593219589505771730121965380808335379677427708937062471013586686955527748487252683694662092382397841544590111227917866117830980375905457565941496857262403528528430275252723252701996880747159474203512261085024079998258331900615901763903343946259628226311384038630729022211442500104797169076598065854003162324540866785026310854683818800885112157218885750293042521844641396431627910148095635506911886810982390660993891644740049021086301751811984518191441713531612296590992277420945281823653912871592697790421532720959806048574047470463151385937068484034470189696170486739412134033169123535261817823991783269073183144053388996292160884254410588598218706133441913417997910384130634670230156203867560412750779870477676212970569489948389985182912002213324298359281902303994364461249947084869483396885304810436764359823336974144025598481919940948327823276485591523339974821672512320767498251592363672222669959915085095383561194610857995198862104225116346186236000568213182109025488917761070372363228443146220839307354025334876300730267247120092732778430285012603885467670741208556513265229797626511564873390025541052432275588246492608827497025691267724538087913543270028953224818040081661174129742419588819359595311689006607537078169073887327465776699621123920583820897478929357808184341045504123755362835900890929528850317845580798643117712821007197580196253147406213316879415911660360135187982632330176749261688862045997386020221537938257289592833850007159826953216511532791967892818863871719110723297181326495134577141629577779266941791310010481449869139871587750240686022951522738558100418213658055958622840920686642266854557026186607911398205194724668978824242322719242489703482623704101946831331655703259808461894991716873592180896470154925723389146514107495219541449550997116975680600312312123628652649666184940160004676357844990617899021669947443378431424453925704799321815107083753523402989056081341260747032711448666238269469545058733105521129964559102557200161996784027980442809273038062963857108563883081615816993217449299151337545887602497203093486241321495700605906457872287576402544966800186840102308216111099494952476528842676463026556942522398105316180862717986201249925247043096241070048891163206825780652688708638039942061939015742156518161007296658671714611064235184588944282637486690047151426717197616336223440928050635461409428035706793927187748314579573870081546369322330342855673956772828712390273835192492691501718041576290596972875441293150668018032540125006302686894411050734789033001860958739467102430305372615902465992437647876275410485728876935711525663679253817798204262061007588637425229473263379537454442223398149828999306894410859196314302382321247781020995661621858381881258735651925476735180293062560858894986485842930455097826307947520876786023732604293604168486472196399472332985546469799778007500994511605541713582499094773104100646514103221483986567200323025866769638664460823567642167815842667993848970582084239767301433088174638840982940914206012010948478894914022587370332381217526469350367714547431526747308696732322181930229855981952061517271819979406086655551667465915069122017727171134897010937802886865625501110696077112310675595287194510160933643127391946272254034983917118459842768394085689073709300425637291862555667547627429182839829229425252463457362044456460583856834808157426841782812896016841792491649099636672456995962443750861596071917938956878480592840305729870474067377495213787302234643761411296562994560125307236121631977161174159722509008044937758650203063655685626368558482722472742174244557499132343469465244894397370285748866397404801260775050506786515283967965331302721191573064727796248599315756599308405058471692947175557426413703050316609114339555574992399219745074061152922990128638223838508730963098124036382064427673435383869326485362643617516162472267734293433831472942417363918314864421915485809698502530800243720496097590227007301635235242442583895840790610587669495898053278847009599242618473485402377131471106608356544579576498801460013107116997479118110349905833908224277882466968341212986515950573238069980246064566272945706485581158503049718460107873827414273466179750922656389579478336922677596241297459311146838460737589709426709663425923565402936640253846516772536225150065630226408226935870330620219671130994522258792208721290585049450438436917426624058567372980139926182005474428876198134904462901500658187848716889614128559858431188778397451172592120323677053009879546387860237176939414273790994387275616286993316794178287908229065430221500616179570822826516842954525496575419553648113679861870755557021488835767352854848979897885023259573478839632370905070508965980336845093279419412985369065547284936498445061529811469475446434757717859196743363684659458526764261390258070674899737752738451184211943327295671051663719300613412701632557424373050048228957216119377980309709157990824391815618747721089248664236814288917389369722453349841537434581838045428119741750604149560212024350306070094828830676860114014839902112214331112647827389273849599563596921412698550121667190069355299834406409274547244137660723121517469260209889810832341282503047881453353929659183339874901098145408740999818421654787814746496300787047688612479014794760171940401885720947596944790540999210420455404208275819982647187871941125933136751471206980893189109411302083675004806722456764025121784343240758981234624590828263777045441172459546830217936238138575397794456386725376894440275349552614150266638332279356457544477001347314844150640986011835043213374670324946802057331269500928389540741225326268905937977535164412290178937779067809019469198979337901364938838452297165783760335014356914250293769669023352628313891969493137078696105542674004049034795947061903965921842930603761800410035345909075271172528999032530999289462652111034952261010565813671613146884685289817440938830782478639246346926979820272270770627479910418965052126133864141553165027244018888077887157132120199454119481784818304253257006429844126455757030077265199850707915469187245188510172686219749448677627113902326939894186730067624948671189211427632258928895344131872804954988939840794773292235652117204916761119246249899387699906691289599135909262632900477150797956763256783072313424501321300754648830946139636058893971548242425901226413791509081987337510305770854116108238376270785877268767412110124022232605828670872987966265882041386044646135253747034849677837342770486968062920730558894949592315954834621501168051981501851174735160886206828959961262884677953935650730901167108032974014958582616922006544781798049837537040490932321228906224425036351716471397606521959261572717242451293943895718882148770014185359235587828980913572518872909795661365885907285552959461306892995972303905723679484069526099139722428523607858395822227981380484881014809709683946594069504331613185999597935203954833612274321243347628693286793929212686495963384626589534427297018330059141581264802214541718768584556510439633389854112700347912469613108122053244712057716793219658027075551275072460818405934599182896009208092959323971891350753101824421124949626892507633054918762754104008520273714900848406484666562036440839233400679728019549703414714937328608505545322032574711876674485877112170280073258798030503121321463335807627483347489467454107854984272391588971326374871116452585927352385954097958589609140949111628826360143481320976884009681980806649250782119509854208549681841999524997022852920238336191865553558436286704322867149677575177680343401875449335037265062323544131225145038607297309943797943569456571718197264426051814082039313957020929876487879890643342977370502156420749423255760654588925284341567495634805684792686002388504116001872053203859135571569171759562997329735120830497265066322308407150070167905332998377673910456361742386078096726774769167551842194393130284985997293353878676706055813782455825521370444218039892461072751654328216782723420363388094336589016478534704788219067112005822356515900884823412067898311314547135916664648760045801991486736945508851548550135354562081117177881216649587587226641414919664235048254549233288437198349859068275548525010175614383634145629918105315444490139468447106959169325577797011023074766589433348031654633766550823013383805125765600911457356381841747460460783446108711558126638330894222610542454106583187786870460686315110915063452558324598525043775613040962858183499263674829617399532255291186350140558772371134579554868974619783639244950573581341539167142408926652663589045332985515610460580054335734208545195128912285688570680119012060282033917564859346950964748708387822041389146778605328061739425232354416434920460406345207696668444281666850358417454645324837921898986659116471023916155827607482891195629966899476919394038113329442028927003972184405109934181074442651291575574656776147458221632097788440934501186670751642417041044877235896511224990630129839752343480843811517043481926524315600642234926486818606594237282298091799685866012311316293098637529313231837673262929019190460251246665479848551346898863829099824711354380533528442581650539064852186075380614226391386120463364853453180363232969055187557856879288069270144734088298010698200798615267052935652930072895100210381149522318390388157111118924574599243778961834240968680165198546798747663305364863719912863981478816205824448784363356794246980847019735711774709152232470982900395638064609598683995413976359961577463508501388912673230489456480224625125269113821729379870961115871023724341322661448198267111547200801224415395886097550922335046261574162160805767587734945311412671231116878671527451877512061902101320200827641400346858904633782774742547331106911505885287056134970825846535796418263361325504977274744882996580875377041447021312832884813829436336427750612054880851518229741900722550097340290284641604403919117173582474602194467439530088041901032907849719538411681344171857846131352079721955429327410634941097937923588527489170266500599326930742599702490457753766017824377494434139332035564323159085214232077707744452423049869650957009696371091783579744121215117905571916126559521946279727544060725456539952216362188313488086524871186955925083129192742340273065994545098333471395153588002124913377975496081043196425545147031445160395286729916481793198705442914572439511771894397729933931162343682482519806550312994343989289948041812908762195510572281656841930378776684278652978231513381363251201547493764263377593380286423491920238567285843534152629781735642603532741051162665958987169846168074305067057390633084279526165750937099080630074178364570190294686957007157709984005296931199610142681940127937696915652859138635258686934374822427648866592330461730776886083484157199480124772936836923812344092398821152939375306354085910538651483102043458698257648257899854926211737164684219620614037901259837700030464883934947378592138321740619499231749581035316240304427629710954087343938586881348074276556966160016091643945655036705993891147423071098637845482802490145086105203184310953449138727894999081255123128531003862232107273764342039112574444332989926963098933017263719682192741467225114302152972888435114786102890998713306483319908731749179570134294308106720341767080962021830410969113518942813383449589228728089071102596619168054433708071470635596089298968535564110269612104629878234104309832167187138416312451114970826743137247009296462059514079108266708721175092674173781981921336055124030518705162305992681716362527338179558550969452540842144235912101375733162688069744227293438553301370785347957467585443940893676464613351212477479180929095636763869787704674671536945447132515900285655067741105597395298979406319235830596563982725433248865862291582901558140187274118522169426926362242695752513055843576145621070459894952272294614766824520012139958736545751799311140697672675027604356738118336654654003544590254219458535934846108940836614941303156396791555292617080154865953408332980377796448292523987477893199035082552612830149620403914174655679659613625145201012173245417724780912410008070985770315942654481855738054649380095361366289436250172229609561858168471524826265882789039597517192318903612534746135890425465340879989756223926323310113625709741105591461045915866134783892764587536116441677333853819105806180882018232656645538049183687853130300908087056237163115283986569541882272401144452120822050717176434327631389910722618566184768255013185369137853030841341331037743371170144797990958246142305785545951914343642839287391375916972305393187875926618223459915513229289856115566506780150180306881757985174402847340195802630097423520681155658205326617804166370406865481710719947940491649468044809533073288202803901906286344383406086076272440992547597417378428262122230826793305977007048506858252521058381744781968975175378849605050371962313494378752408549520814695953231585929971258968079575415322439971779224156009505011963528064906975320228274447969539678659653017108133058504767943277819271579873729991969866361752765841209182195794882238881557653127069392216141366420654452191943088998297858819408368302735027292212428792250728953664694206850297672666555194332249771968930853877875273414544200212173013794553216525477740206512709920310878078136868377766399328678143372587355242384173142545619693145744858926228650654274334996409457737578620686041820393134941412426440356616437962747804301808564925687026557396888775890214281811386601129597969464921737732616440550157302404551819357537995466389850509909826957883214533229332588697234278074633797151999815673896655316052073938455300157598969003510706117864049464916436755629625544508829775687870325998179014717425385642803075961359785111937928618001089905099876519758106603760143408754616326365339376994637405911029450279595306982595279324752794328603212505008716153505118081762323837842415169346161494268445352712122589370795908798332974659126802726390805299806981749690020474096939809891659144740717621241883686640314361823242769577784893242307131413549689143454383540391687572187741546729097314298053274449546045114874913389447247310127148564519741862326968167418166074661123009532953566538309150852413322225787530226119931005003275066822523447976767342303183009425332611708112580125559734564470294680887881848203058585066180003723780595596163887753092669631876801660186019989393425560115447011282990340211768519202898890743054392896311645022217560788893478580919404039277885428589496920449136464504412399067999865691860820527072818349571803530469226356772145687929838523331017447138479647664231469718865778421632565067620498662158855629387068545920230195722904793578998689098158091250650354323622352486750806933760780052264534898273396888282657396776280982340782827843441289362512526903966312040683042190560885874693703585912404426837884622753568976635113905127572580477298831045187955532712982890445960367096991412153837758660989765387904420094647492075331945672373228110579044224201944655836247693489984378671256651046842754669038559073388611024900989694242267814904471648727526440323092403314474385146812460916608657046580736435547020798695426505342369461485124506499234580699658295584504224130180689668101730788833904400302078471364653252597405924701858848589790119704288808144131851601247281596531027376967224589018851234367594647817142884745440330667064456357105353337471603196416005586078932334710458316935641058351632272773925797925350019464241346229201098307472512440660703622413165839264106867332882018655023835613975862392074696026522171216066159441020036021893218493012418163117604644980017390978111134205851622213000400132203455759775370266684712702021888212400733471926969596333484628286596799944670457447111390565293551301308341204076716873447065409458399545774366568532938216522581322538195294737007084846554565395406234157283966536243334214855059435151710844204742836103405101237405990128481571202629058958676735632143353275612401116322560701833619703588064205036751874651842569308495573963104561983015645291764335770157840959945792146944078961171082270787008123033975618151044299613348412451475994924269925302881090381685783167703672323972421077830710834297334352010187205743140985039216704610952935636720589144756536601912322285472604011023806926749932931415704202327623030843196229574509603061921123806602025284524133263541109104080802613429529813638461359243460445772316624640563304498520896646482583264803842890811462800473211032823995584326677854420306723624296176321872199715669847215887653558267191254759313129159204545867094719737858772606174768722859970526833154038212850291121456140098430224018920688671621968422314528497188035257927911683912249041923546323305096841276149299997179004723213821090366598973722323425058281678859907308247349649247814250725687257218815860140831594144404080669316160133774864582131014486740304486682834624450766011010676960614332692855799133599372295665756683661633733121562754183789678618034958309924186333054989979794827061678416753463211641312820419632702407150787821627054376371261869960899322796529578840014373964574468371394147518818941057306917498464527687521816160837129275757970067946942929107892782495199111554105733506722029713769978484019107065135314065966791809084226979772275466300960975922071358750964300797369991694382851086859815681740324887603859063235732610905591729479061610198571817780635827175885489609993252758814104017931856598824171062082646048448111381566462270594625388434488816389766586091906625779362660195189935782334984347690849483154454140963791898202300800958843983286721302447901442808194411958381260416012115162539242791264123207697237276278054646835004424947684354753268930103876257956939707799275006723930253532203948924218525007364307077077398863269155853982626396043368577437745761877757917326850229363468324703779361378959300147930986081024298243792655182651546456661190950912355045702355135113079247697244540070881687673022085328746090317696890620779270338179941706935018045386628598486372749082398693208765966071910174887845181830700761670699876189472092647863399850172386474201940663368205643173016808075014965523045663207522010273796507601867160104099439078155223173421622286875357377548066481485526202635952777137697314235053824414069602255396710000041750566097615095410554676193475788301678579620107091363798011872000992097183921323515782048233922561133755826900224162124656226784945018392714051963795835491197307246163389044742429951999732684687217841234895489799995715915876891950676936683589189742067685813685152637844454626615856635203267653986502417104707079649431305753490299865451330764690679870243420550180608121162196509957595634836610137767263916537564616785263262149026765211808976481229904660300986279702706166522369360320733080622356410126273510633075321134271589488744344457802300008827004197480743241226932441470299040204638875766149147298200156409915946332102379180266420829177566736333884075229741514910722979271645621294535543141220422941129847097536560770032359422988313526359764341887281317162055955692368296517016498593605027871409867580557435587412200161224025146450693699271924159021400372268993178162733574089390236820713325778858188079902316153102468854380265474423439690836987484896099425798181117862637200295988500739837723743546612784177287061357274511199556447897489098374397872511510055641060925771773096562082296123643890314730871154742108989029222701389590369440329576593799712489524687345511234345456191733395050185472767526327548198684750018402718174643150090151983056192295130109995102839404960131450642477840305308873003720042809697447751523477224730520216231934966137224937816228015518911296300099012595410921982056689179429718210458968088343844736829429164241737629563155020540027810763546073923129132143002699646798235795212196403829938637662566164353201302355051880334916703169635030451113825729040070373213808565415539145035603014638912306505402298226762975263111704874226928585022041553046847166372922766653282766728502810557177802672748479811192449408144169883818641332134176247490922603574479618252110335506328697204861212574591239464716597987281763145058047602557912843617797970352809098828157760845069966102359604807069570356491968568684974833271158764934945793640742030706729398276241967943437749039742172274186597058272674703386544153890784556578626145559165668576755754543027821205936972734089362831392532196851449010697803777684089217467788787820248961726457563057019462125100489356055422460514359906526190533414781265345617218506417875443403646767819427067568286853360831105786548152063626350712742550391423133201324255617336869801893284211803655945183085188051178438887650579450401207336183373434704047379641012262126384686682565331333443568115726631021271402460866645475375378574941099735942399895003181425139329607491867558158227974382592048574715775598745503603591185994591908276705887799653656792194309441156075028583547083063619746750029498314866873590976182213768356045406075684304986624236631264499798905873611489763765283653242576725543215201672572615359649091256907101454418625792646459883251009092213189708877725531833765014870686828811985911211809676418706943559302598375673188212929067565350573622321151085402205719060760904804371680795377832608156938222670061787070509474297041757382691244798290399328225599918679705996300638724499390739448423508456477444755994978296511081529741274383686329181720290102674414570480422110346927487823958438680431058003458206728163445328308613277728099167564992872940831732361994896311135042798406901557446031370353229282726973809443635940710663335888817088818274428337639448278739794409052368649541427745448985002623118198141761088871311070943211147810718262805538204416846600802033003695640408206067033732307585254957106199528069792883467625409086181810729876873056119859839563833826684123823402833431040988829260085031037685622384067112322428700145369446327346754897184164729285486974159256550493735878950748296686905277595761270725825867191948761879379015748148688559510627686203738914588942815192968058154459676404284771377383264968409647825255478815167849469274293064491704141182667988749870239037356365631831260078249123470775964303401310366519523403021303547000785654934848553263046362936053545756163151103018261421921168977886625859370549785058675335500752573727258482636205100307143070008128235723711290793267124096277500601152955441279225817468891822218714448983653467590057728044538798055864668535611068611258851567419873779178175641495354385755438706659055019081403178124795664873684381125973265353942150551854893256938746657333821140022845397500879488857653122690929800081851493814955808679727043983087150090823944578862740613930658613499628566376789584345747944138877387413623065307532820255299206329326856794085298477466586250353870599912708689840627698038915999453975014526081471420010725516967935907559957831357842765984618520920960284937210402218020086128465596775824096552310056043152085881507728225403632855846401723334238470009274232324407936990950097334347190480388635508446990174662930736755492568849595677205845168173051070145014898165542700769764423473456094629985792564115217128870073253148406252062541327952062802377645071520379575537669519442074250073527840914801136760388073615490771965037323583024843933965602457450102875239649090845109491904262926606449667307971247539351982664450397273316539023955246681458393730398343709053118389673151570379422397763646581529993945635364443507205518078775784296571488303691371660291464617830131982017456397705124057318890114763597831064188012103138488304933045413616918888925705304134955018032845404866146331604941202512375948779869359939500628335819797545911980476027071639548684366559610995251132485863984141470691525486426524662890265109988835808283501691312526600828373206955703026770098974174725616208635226057443190788420539930507119582969858648597433644534006026392678710594971621438809296829873112765983214042607014257462742969058543971382873236699127649026599537362070579934010473742460228864308237522736151867824442741275089949543108576337454204388503427005979460839675578683906901632827215954651177410902444403192609213464055619725832816120989051384606667665490238012631138713836364288595105630702462627462245227380749307656449902711801819715095198110253947886920324557877962387736290415628318163876108231758539884563919426986308946590905695993375783484068636579939270866875998702881800806127180351937848651189677658646303583013667988852904693751031456588873496111252505767033209552243649401918265713588389387060597381717203151781378849086958405152886098345989610277877035535363489851683968742326596895992837005103055925139442953529914149136349216167416497959614078314905896256814638729001349383814523537377707488609908034771653434682579800738221084706784838632901893245078333321935773253101689873285522204322321958937485367745150295520314696776687708235555778473301160640241444464081429588554147843728698641877503180862143066661098334037383323790335522523395324036278806173004382853646593833290720179104202366420961613414285687558231067249030966728102624907256760646045871094446153003711453584987543329876975916697361993784325370574198513745900281017374864852775265755846143224731454467020212879670940448577411944496153137565233689711441985247922763547674861328394723653099921367815223267390091491083322862892831987518918004844752004776436494375184775294933406241194889426797718856446339807331007968832855064011107214902709184093546903033499936510958860240850573196367913127266983444501793685962113455502283014657802226762965328484432491663948407133503357576969435047851828435577918399235824037104609043384043969709173809346887015060984233627392552064183828083916350472181597588696167062614394956113627643015401683386285760534798758728342934538234230647746838287283927252756708897751065725731864422911061606818328462960244697269832950463699421827676010588620707850711121633409910417627983752797649277570931920078317751276120073753433887156422502956211301050766369121978056381101608831404316927396476867806179346246296348425852608875159996188131314891566996935394834247503781851555961281904989531986122297540087266326374171495834929963316898215755560013125313175543469074968785653343030253139538738182815807211970151909557148616277391455377713835538390839634556817903903970009852331373718539118042996213749662317965919992429341151078086667440451594109079350050857425463568021896725330175834345842003712432893899897263034128661076351877501328448428983697136790614531014421622394745025816222587202924230583426353512763554768288747520639983354750688203837651365356370950059256446296874223642116010660054391701359956876185743313607771117198004534580469238918289390074557407730312770708048559222705434525912304825613047681002421989608453944057407157082044113723602008664859045494487536932796719355486521393719797246701940712066555962964863381372168323345745622711012544760599524630539412294187999916517554998440900676606131349311950888173034305778654140000483694812866272647477691638234081134315273367333761053822498406510544785443126169284010390287481828083079801191137732912387603830946554384481259380850347926656608814383665880926780292432563497214096756217996565999930715182653030988599496549674012059219438788775034613865954636014326079694869131602890950533647155243567775780758448959814222314144852980131852060876156733285106888850070582726881906504312154053505931659369330536583181421791461928500657573046102970453586185178836102714969493843610960585697344283903941629106459537426604864880343405767122571849533080131869948989388952436430817571711781176920031897243416989953010371380278797741637942867199815603365028636846822917270774935216999625031402438865590750079547588001313911548962326703870049046484177863127679948218597246383101225611084153451190227047876269105719313318071768614320350713405106190848969524091746618828807249475535644691567416357121168871858312768548949071892002400516390697965869420053763423331505056342051391535088597552520600161928640571620530330718039294636261694929604811538468640295579574435272493590579849575370665809727033075036817456448606063842653763137489725138311878152951323966609370007555914726149340564271651157223099934701097568134984542543068669123619879267631142870877683889756372741906053805787346846561561043940112080699619926485746152854847222394504958300565464528205647085213618218523266275314634084080485374029215411643769821323299162975482326852072595747642738913477351142927684153341202331093671309354338707351007376695856850664806651220752489480279726883049224820368441224684829838374447352699031175479097180219319385279602394849396598985614638625153794788102758972488140454411534476581139010536740625600697993468394085994363874699830238199693504083998157004121142273974533264950616367250244148973548910794939121254106194691351622585945803042087148302325688606062641767600768278222641881787403772927554445309483206409652165396510256926758198200599271472414108150320926776335380430847392839871679128590818808689743555067077076650506407395118312578753365851563450070112638272974552759677898501854743687473326209337789974574856205944849392794920016133420237794748624081021607028697804705444323180357534890461304909967899496172673791716882859898327608561009891760130425945129560287811889829393178959187045447181734975024752952641612949155912679176295584649314862372741012853196236431980913674678287014862521471413719871208392868757957493964370670523845277013375431982895706315061042105032118311920977733154264538984759918370726432305711871678841675873309983908563571121037393425454960126004315232869168526450115330776813357869276664358051348951726366749540483584875256619021060327313094739905815793915563976661323426225925738485757241039876525340287684112687591381026686822191136985062070300272198911159068821174165367265689846216493877256692361645753575714887366557606430557591166786812844446086821240373943543933375547640425641435635783883126918037014631110769051039262034567797758549895446629541739405227167721895982902414592138120362029896697284028439685273806202062905930370155544516560368654901684172507608585874945004878678639163766037775567626013918048823702518548454830842325863360163411434374257548018876102038627792957807169812975390348743477707684561987397076844312443285539932998969801642833385663295453323924876056468060257154769975333492793899771563041942737294535601567208861750499497853280862889395092343776025634949770357290399234844057702100782618746812195545133742530025651852899349636218594146102308563277385400381967651763816122083671255328771125843117968978261887486656337414648832089500292813768262529985301114838200424407826175971002264805724738594632123990334238788328631088785776054606698326358958545905723056871548930455660097937057324642080633228729271955930619472635782230277437931007198367134643007905360212827059940225944563011203569333460764880236225495694260320994311064002936171009550271080358683960950301890474337285202832932032322497424041806266031553064721278022079020001265061123173590772325233360743504762955967837784991547922958265681067863906554070271480621972564974317242323739929359194726652724099743297998309428048101605739001601594772237560057485529971784622490522187350320280261506411277890803666119258794609144249862401220962908364772736174743800132565416724847441105674435872346337974946362085230251351590125432278005104012362829324644184364027719555079646167683918232960128019091199637117433670020696759830125695219905485020633052165327397390505730730001500660401637923255141072828961744177980358817205169770802545750714029705604837307448647534653124433051794817230286205184733483627160887954382602074215557147693824854460220850424055366554151771703245757758392112560709109080176325368752240476497018980581701468732673561367201197555579285751904243060078042987458974872372712602045892538619592222797329212740764244996291778946831425998589300462339901399363673904336110955611216251271703594818037867884452490210630456877313716132351752772663768792713716791350574554878272999984130642438177847730627766283412427907881905293383755557108470881257121074380751303970761022348053500464822295663783705563518545301262962033752334552355556560471977068867518317567264843438842225809711347351213068791792196917863057988163383698354475037340384609989569472464663026980621603023499729865017107899135605463239702437334873879336247396611122269848382125566859946873510866047944667212164454956722017289497759830192759015489359975795909091683732317910967512174042499489584838706599120940406362887565003222168718384727826112117676662967872778004454970550732585398256974228145452156923255538579550663869960744529960182044784752339447553136882848035180757473466990153002419323363081846751092374592955358619689952560182622686066148582597464018186802611049158643139745583778632788266408976567683499711925691069069310603893493863398278768537864340893611545088236007948402234355603954905470931371254333734869324497040787800490962411048640185203807507909031367908689431209408668823353410257806705825278442127516629974915288447820963687207358891973762042071075470698428974399052294985436345712425956920003108471927437814537109081393774818883963474623578934592485553609734319618093160080372087975013182209200763902669318984522448083285833716778032692293726427811386753602348184624882213161143944301911643865014482562055929208630979540271457073115623532393702971596577591098814413702821603642417271265058941236006216461812245623116193913749832714232768291550428937176671850440875447056571658595735451056062165296032648382469715731973073816215907864527419158757326979184713696196428117930823297440060931415690952698666496576889661797703933288477817290363702674680182614699111466474700172972561938779770224421402025637993610508280118804033046528361111345812831838686195170537832082986033831161803821069820474354622536506271795531648224048984142942055767810385140431417426192043062120741749521764364692002912394858422190646871087352045936242482133320078322088030163666925993754870638612276928956544380393444516890964137089561698947161667938009410395741108982441695952090138149411655200632950947120383943414585847484358667283041177335327120617424268401612737223383188479687472041606886010880030138657836220526032062300797130086796145336307203059923433473532698644487594374158373084932355949628361171655076602084984727378527700731335168519302976104057891940750856379771984604927568177176162944731504775819025976468375097345971126516079022018709320296760275033414521179924763454195659557494429754695915686520548028432486956448044350660437609700472362735608104413624704166931423894250663473079521584751686207517179288090355785533754592493801417096194898878064807910992982592907975705932471681381915110021886307218591262677660738476206556419374481767632690683183472013109801906788380055395636648130187044507826819881745805400779371782493165880882239340443331657721612896557622593023595913333808166634971250880860766512131494325173004526026178275524376528544608461833124825121784502805481973825581212234019220177397344602661140140967247442518524545551429185049663100386579418570266918076409058761945678788570472555309451146410849444538720460011679035913266754642063024572510571772669409439700085647299492532188858711094259364656275706336342065013642318020484390301542251173510462399014996823477962319097158722718211398768330541037401045256583526658322233752834487313339867204524990165843283222836602398046358764380849303236846228623464210609219267949313528378981395118467636601127497368177693608184957829444057160951793229706835656338359208535069992421401623776641390412878153033972102925147863909655164817263604295633709893020686391714209911696591376853794760589258817706546125770465190006968893823080798991850140251375290061931287364116762988113751031487468577835637692220550572362680659669368102179555003865285526716165428549418471274264914774459593100283211165813149835172925140908563693028541082983995427218650525312398314737932637837168194222822675997160302435715875638679655163330437977733044404946653297361729966227141608847519666865150617849594186265198721578888282391888369658291646482680797873933253181531860651489270552513230615346588943582708680992648621638174777702694899655120115391663018145438217480102161667526970014411034849346591893483863439502077939088599007570484565419664503932147655839613528506096627031197871667583859100824089038300858495272368766813908475734086838596441657994434430217713826750380438081619409823383626332555121353200647747659041301654303500933001349215593736230333952905253340091354668817911944467399744814285709836925391870377247352322950522793180798284784333715253470711674907464633439440500989742105554380464834496007498819211494466521187426134568110297410165189376172164056120201737407851000898973467500883671652299320799981839446250384379164852339859272447000924614904831706325884091479949353000179494913041673755361925172294864484605022331896991514010614588842761748799454073372221235814958305038658493699432825771956122696581570969940216316115251441202900754285312757460946990785877980789068489841287230927617498660011259590572816218400181343195401887193543181038254463249055240683138145536397363064154232749576270081485530673696329310971438380034466473904242956101848882177289354433110593311053050945310960950488914142601445532765864966671725146383542063159230953489558059899135320590990650310953204681345216993996597034583646028144709510440917578802932157465404874589728167775057465922515392538881964579560338344225705323516036705199666758594846614754534465637071010555343981930816937941592140869476704926967000824597435028249173567665107614005707217477617995970871510436857012115561129983183023274551793165848782372514343664558226989085693907162051221030097733309775917287626974261357598930837013514850279861728941978626045751465157564145051347369936267505003943378551264628441556749368416237805990548491340654428315765998935991967260151533954196815170300700450522609476388361024468588411489280012628192199822576313964656759355442387082226623437802316634265608474092794183620745028937555160269903056350692271650003055447171760440869568268843891771872907619230527314699061528166863940888116918155997772785535872085294136823288662578351964385952973676947310987414129027442492402931937022429776556299445352027190144809987846303312013722099984981498038145300611578580091405925719727472490003874290517811493571735524318884519750765985965090954594089926952964886380229504824473860891145806721239839220790267532258271181195670510493531292617527588057247513890268721788857855506583919229950770550555948961076146175156818914723226671805514449015772276304067718689973635886849557476863799104569470484612001819532895167043807915586903288778010749409780559961322029947819641678406258118867266353297078068982266135501843600401807085810551750616570045157225396334616764875229819838971567166998607279958708729681230280301163166253799850226821604644718543408183251879271622212580443374264269831088969938353539903797314142385569303519745116240231163123678364321187545398023524516673134965406151398597248470505414064019603679988980775858057065385802939004346265140882286975861393415364937688752503472896473752521577346720130210642588808125392642453691185336962060764194730802186714797564262998427217087989781134171844615772904529179501858310900207759751921245724437871685623277586206760322313599043524618114001601274285730105386640197182554737417004529269382092031935401883761912475232873132897570605267454420683886115269853902697080394561553900402480656638053671501107493268388516358495445005090391257704596520591663823020313159720243175761845457329241124852981638504714555032399826087190456458960164509142460443776937801118224599987809400956130970548315211511637008982451554229898613931421660933225343616975703160485559101754322774473842864007316796235968223727839277434824140421137403750796538878754720040004712760011763448565424435600715430720603855401044088747469726460689221301280691786853091633598214406472843359674599333441956001584813023493939072642710566411026070946818077259810337649006201250424666817462836803831235101859387470088425363794234641972523679893283188936609964528200220824954284125109722740304984716707914733724441353518955568925346954125867661905891515370829854902859554825057869684411299370245003837454229882789502004007456960973192697357086283792359756148780288564053864797784013081301804945740638051495496424712474908040809865778584181163410852551844947308605760928232116639059055074027833485264619068586482308234929992519873856146711075152585224314646680780548758565662780644466989579094845350916257221211418816199071155424339100060849100227803808681562632447310449045649691166009698229422448335359760571877526093879251214326089598995197411070752849787903207575484124165176343932905129798158045269292541385674641804562227296734021919431875472175336488225285271704452127823929153583354965739050609443660504286169176988633366029399475590050433478587516018015403513773339200710816922775324188485242216425049124224207983228047367068312562601234527995435921371221343839317468701128227505294979709552158114550201234861066643013045613582205684705419420853011812208093179622439987210149191693863466044406575602260336193388460368048913428638395847136484892774516625384201096133699772370609805959107772737875365948055126195685771207148405251418959049472295444980132917604453572634027239944729996145105221209862583963073480027648787472670629615347974128441825042283373452328454693075742688316615073376389558592436589245775277483816469192742639599695363505079450176808608398875847727396324142446854777395788240521722099394449796960727174988196734305780760273154878598961296643865746557311514708836156336471460337375822010279834435949209565870423014432766334042525585947960952639901621699299388275649438680798062178300094438360762931389932592188518394337884484895745351132626959372483724598370556440164876768159177631228411504445587332097175260495564495424948391475100745827933787913352048837850875229934499561312978632956511582575661073149282113043415058577763877421638289376150399278922356009846309476412497539286258049829754318518577833225061499017266969546877624766509015224578391809198963779424712633699456278707604499004495838130855669758092341034957376436314697045318874942000683697539504885997118920424094443198785621932092797405963533826555918049691453668036498256137622415842928752870461456513774687467950027920900204441950915386184174202592417483403734355338845933803821576933197926734583870220260217036927757968966555578139565825776399448958644507411654212047343652251765903701606022770919960006591083757564893818742203844953163180820290432598424075452035969005364395030398826935118165530871889401095178719718019131078740785198292033349301705997227836875726815264106215749966950574244485707344489557308745720277337427338997290369833563154897445388592309299000338826436699705801945173964963286307463304450600372336147088949994353748526617476164302457340843761217382972740340748987334334348062279531540232846706512344767108005636228655053580039906431688456928773716589340199457128526737107471506811852381764904950161450464985592847706488942720969507663848103884066979001990576574003632565832816500665517147988278453335908817552520031581323367791800289273092664039940889661019827249109577634479636315632478539096685209525697900929978424489410100482981961957041465169283862687332895608899485170872711324964163638409903415523249463328554991704465494741682926228921387793996805281931431705930077788192929654605277560987651486166134320909156936107545896531611798247623407129237347720757410090628574908875317946318426373255582832635418923999582976855437681868715152976740190685289427265886532695895214350719716238898283721542379646625296536756625562305396134968820491185477430351535517781357868225994587617427895173498090860261295549720945238544615977588242871780293885263654246193825406265466849430010771239963313173661534872512472636075994627044218650457370680979816539552334942482607151199560073890612282186381390725837879232569269329123765707844311473469054211526250382858549120725334473508720333279521207552079419497935592004892662662656510974406260172682545927563979056575990999682459516296420119736088150871370550363280427320544624443205815902831158215027575542258720077836681948828945754813999246788893181620590381006365004512589594822443312388719964071666940682426935424042754461923680360169590824409910413613890043203142560597534329680726506230450569842541726487164674514836278927250292661326640462205804206392206139791171812350838696164755834134057226523317174949192045075828718943245392084916417716593359605935287890818693455888558224241996968108140899355836022764283808162777746336041202925828921081284300005859565629272787059102037791844767507290475218564690941754641556375327081430466951034109187275932867661732859551757869231059810940491135002128571950583773829418408680360040944756330313063729420041935731307806836330407882558018444947027120047454860140889508340301363206398468578343185538289825797466237333401849032192284807864286627040634104317873537824829690322722061396790032533827218756189898057426169149579991049219126827530184946256032902690229393306144805448155828688845223050545164511897695685241962595601163729760627786662328652411391452848363927100908474687453424993970036530756150451739006209363419924597349281831369696879154704500208307654924499247579134384439929027336533933930710215524195437955061501105067431068515752412759198851819258015848533599384211581449617984297354964214791678736449683605560609034597142041896707716223572718045547124709163894052622724035783058250378303459150704218355474459615792115425685350967657598688637919528663896062457920646409626439002584607980327841641161429777146306112409978220369538767794736374337101244371968800407073494687234017552184780197866763292985428589752903409713317616831106483868360385463185575921094394277300994674495168642562701629237806259716852478761466025230886652677841266184969959179901006931855912611349133032982317385621066692937161286913228856185900711770063159985609009940984636990654736094188880984666236586458959306732121909798909237411146095077553895513946212006876571456236061927456760208484456835615398591754917335415559132038559789192710885464501001346649947113108954165972959992137580970613731007468032387097609742623775708884546561102617680429162748152356399573312636394285006891474278772213716131850511977547465837817943352435444133347741790714064700695333221413146753399746644456959692889823238920587192879010923055875872616275992298009212734827005497677487274301520999216129295723816155563508450763778877458145510591701726803051285226874532052422892269749200157146783813985359200659528471069634675141231099318769794704363822714778044024139372322872664229992350169737415419763923043520375781823604625236223670386416095001365775783250609421525977849711633385074236760377550891981984371320741200180504358209492753799665684119521066062407548529827550185381223143539937860221904168976508109649655951922841565612433007963976045384761259505539099101294725139039681669417820809675815139367360347140189262677433642549223205718254561131500812638217470846145729442515383218771651748016045395996038254508990498515125212441645246030692946643870410878925611275949461854698560975809339394083125825045573614791349410493805902604295538887990073188009288789292163240153117182089525758914081763351052131217088451710737684667943074110638391202635954997195628984513439705118718127070949409657245807282514582066304511774129323087637866198114642913923417912159295395866643920940565022816380324662400826551722059067472690995163378984690808276382100624150135381719504531916814265609998460749201044102476533361398578760256271548341422190368848931476536709883118138597395995363435034327700489457299491086076517996349274457157314138330786281146398229280761320342548380217935410384085571687530154223368175982325129975348523393999911417342066232233442031784767100561946214481649027087428644292930976470904364474860282346844219283936005900150274486163096053412293895174788945604380906436441448781847913944181007769873418201039246938515795122533525989720746157087327065270317623789940947547328197083933171892658651478074058394206202511914417056124676661945999123028322496750524349815457511867490190135603125722328639645252793088955267731097217098118202381443285020044757076053005376616404227934467700522726148377496472976837675261859791170654322226968789569976346663898988329401337625243283573725874554523336916333162656787194056676044924228714825504229276235868103059930278792115838486151829534492524612076124065012330293786571638236118748287955174793844782686326350555312749623673029647146882653615535838743654534555759975733133308332766256155190524236689234750816399041072239686998676380547336317150268511766736911243229372437081828349063849853314785878675500465221005012357180044558603562248736307757351463290837259788877619623943838063390617049428982973948418397417154446469388013692007609871158186174113221107099282348247202607947350114128820780698719695160456883900550414445659203568973679275642021174019361373168925130943422534188941636487565769985770940194202428248158785957574911773986567489867190702441090301442928528883802133322401766565888035427573867299687237976934317201780971682780580477528562648169903776768245127398828347854643704078445741627407437242054801957643706455514279468052905475024470444655773213328547349683097171463887638944967581177409438743876047057224227180042008201999700682779616543756369705778452864413705661400102257165548727227771939335998628442278126098785980757041311118653765708048293747967415450887315107014594656266368012479840811003399295774530806534238632357189445310949016934043818949811555554829565752556266477290751363949511343770549303520497388502660302576001361349869367382933649340948090033606759869008705068881673943834467186623147546683603777972862670705563655431449901308913716848760750846239795853848160832059286373099587198463654315430277617610430400603673418723791764454810246431745209546395567032848241599476176322797878146538851677944672902649991791695004109400157407870716821528224285769029017118074310784814540320961962943251062797342109399077816131948854561972321671063581292437877065782604634590565530818237062668739300058587613507253141407477958952062330809105234744313946294641420381003389597460764539937365392036412397193169547308055194939931199916085260078304787175550670591051340121745349744326902750333142085253474155175691095757032906621389494692645360500041209408661865780531001272088650157336907736353715005266767151610094558396651459021725024665686830464745792926236737292832079632703458240422113388416886577673420408645983281612287194669784445195991300210819795939310759614228612734583657352231117538354052471561015301111516914990316745141736727497375213735058368625112513402871454885754275583244006870712589835330752741639560964705427781637602719198435011444544159359495946063739320600293993779195759280779840949243186596952052719665257981197548637384765363249813172034149002179624262265240553043996598330175189248927538030965570875492833319291100624176997531397828474499131408696237973950169121617288728393327997041681932346116485264853062614153255578240102386773522692319544625683089811757273673184455615626191725865717934237940746674570673877032305374220645115542859351184328147057276866235944093302110418415496707663358260934042231798488115457302135763329312344203103557121417147839550298006878094652027362699238720960874427902571612449081808433343274995382759330269658417115524131184569822333247292630417220676681180959799185840308339117922828009676295372343507839340388582168146524819490166516035250862033180563829577267107373796380193708721572212214674434082230711439701903464169501220456547859335759430093967441885595589546932872202646286492949202219632078493010558798940529722097115058662806108545595541451551640654830450782793107532839491590530226805007215809012108845800486717497845682613837349762435356756256869823094220411686362475677720484796184353876158390712980923399667333898004378905956329263461430261125015056977862475737093089262519566973968906131160407159847367011380503325103267470557021068737823764354613304838995727425201752072663874832846171948555693287572410421417387165010702805630746817026020408537180856048635452201691467699458334521499927158023756927499457317349983851634962512959633970505007170282978406321536088527518169164979034015850265788405397541758104809313242818648289778244802711551373771060574274052637729770207948651941398760476048787756410659794977579852606264402685019835459866613652767236945700791523421731223353757486739119038911274786275080123899106955349747595171249499367444357386973302453991027407688603619620523849264203948762538678752515109301217510880792544710904615350565545773678909615526101605925616172987172531260426826510938176983716003567534256639782874215910191410060035141217164121322912676656185436138457549893860471918192810760714960719862263458099622995614976540910382153289841346043903940697157716119161764522528412874060884563125399200189973171060756463931501241874598630202736984544337625726808561333202518293017809089860589695316262989104103546365382623670940757304641309379474172212780774307893682939101480664403184945187767352810593231845702315427022175700411990386050279116620700911020339185491377523970441757659332311888061047411064450030998122271311965066971188878038042677714581928599774660539004203937522768225003870290673940374005250336791617025929293305122563226037041013368061840532741089260708164393978187875812703372640707083862249954051805747668154447346017670627561788965317192612793135971376955775424197916118393510747626573772861195286488037743558801790672481042699531202909015975820594156078490260540821452480573396259239171914931024380760357956869439246103693372120052639759773755898589720833631770165487941068227191600874726503373702096070656375997987772809686534993201906847761616704551789489029295161424352804360689112866298741010101821629247097924626126445870499063267715189491659593232881931602152435381076421102503618521373760076792217752695698737643780937254211812701346590441236443849166158586441100503962953272584932494498417240346395702523623957242214952921540259705669520168131089197026219489593008881677965470135693743465329356889335450848369027938753934789229447229795759419338288407239195277355799195136808532457313696126744513521247651558021744698079057005988080325110986219820255509964116637094976198297718904229256144212746819412020748458431751658846899756610476497711541852962568935322706313354609123899037321399355692722309193055786682868634267771511894080904552125181924546333465931426388764574895847964528440863586279727007787849437228890491342593497505187349509549538489479120532059582805670045366401456105205307603812614970439171605876191669428931323796870013175516784034724758328023970069181978796917957546324063198718210043080212211819588470006444056747329694766335673276817679232960528884005415305181764015000975296726359343506677368759129643024983650737231381614852349504309371281682651932621948252588954234934689295842243658320909983044674531668975552920923484099051948271599944786066164523205647824808148977040684398054650710095767620382627738112656713262439790120134790145019526881341606841246555954183638407051978850063950619187333473034082518246508755382288363383065894025253305198968001248588121712429485347681263068632448854272864699181139568246626409372077629343895000487767489983720258582786435846431340494335684327771077880523076061927015882339686801611583498317556914663919716297115870304044088061181717527789240402275521884736570198633401526845158492011788382858284679129392253996271818858686883188132781298224285788510403311652073745641109673482374512941343265220246379044579409580384384068425375288098585862060414646639011026575460356552667437299116132575954698667124385569643374278695596762535699087835037725892691263880341465613364820474445727972554312419488510834233425182173558903399000079104743300003666244383323089484348740726184264354164600207704201035438589720153421281875980484759088111369977869679424034225657144314595047863258400242205320382136542549917866516156218425530455907218765635530046124026686168704149917812365950541937749714379314033725431279214771592218133667075740995857788105330126916751255100881349326402583515972716193243909652594247810210384684088791220143067582516694500364531959348244790553016807827300828386795935006124607210838693933529746548159428712749463436949514864914567254235849658694210259307225119387967391534992255345706182229017150005186494844047981896944870388563560301442482181194543644342152909776777141005286814771898673158711860217172674455842260187116568322256935197085597832722451420986709906434798722025808986980145721269605461399703956404685721737152674083901810079890947173027847949732977820527094557289473561190406477996849195805247129330697444602746962844197428416559596891103149038955482493232982647393899324236519314349154634012850605944777502607583245651934818276888034683618274478646376549576951334302613623022557953030269136726758254753185779780150267952156438998981764945470213674379651049526835888511685024475948646983872177106039541123312756348067348176128887816043207447550429355912695462600545079828271076786957639444915011829612579672786755652929441124218391061202752725264363627584382021267171964039199662128182664271217324288408562463724685125461990824169514192001489641940871262801773702155533761597148091149664284443332115994007588848393999022315698611274711801130855505768520865247626932909101893896935872843649388137085129219156246717951558244042851989101064524606165940101725032065496370056984386661118366491048598590594531177198970292713623520826419035039438580417149895469005400705231563027293675765369456433913666573909607774851270805174012582017445568685598254039063757354799278586457949184021474352004665655493095228978642669937040733064063794805810357641226242533317077027745648030151728306273768150167060169982389984854427892762478690579006506932860829467478730975194439491072099139016435739376606754454429087675006769403206615997958512016564196112423483742478017074947881604057008012093506466627473038597246593042851500035795299438337228208227488873849256742227898905305837595288346224236698455982161060586040042222785035189983709313452358273785219596905121532656307458162199115750918391093603321306341398553822039608176133331969711600646384970311910499385625722457292789211790653559867100884144494145086919333507667751236067177857451319869711769183232167249579018364032962099910402202276438931683037947361987859676101367243485596321848916094696804285535662845184436381377241381882603303599281365688514290119071357010306331979087339383328159198647336302348770439826094989526085702208911170828531122692441709565251649269923937259904191869982419544706784522011967226710195107896408247262540578533549450220689805820231082743749213127505630932735719418503179721301802308430702742606461800871084756132957711301148886474951565401093140226128650929806071094136933227938737333632332243332310699695614082079257510371022738522726814692031414842034670295923181110517947932772401192162902268834563954898915936270852255342157674243910270336554107803227039786481129611069150285727084684631636154732676384001549717627941405942514233269649285894528413931504282372076510715743550313984382871128255956717341436637376222110098265373191176414242099120668875080275425082206798838299966420098900364101725321314767924446326387167301565754605111389810588665650688953932431347282609352835834501155738556130055173005893890321883598070879907269560367345497336627706810041145927753771193841495248441828636923221631280173187433368519206353406086083147565006871894060438488182656254621974230154652654119927500297082427557273337948683330777474541026466191927148328682710594782282996640073763241441080922040104477089675822699614983072411932989063725538028169259516565621872836796324361029784237552268849377025283529412554894553751945054422215088287215737954556469354838437262926256954694222331950411009419920187285418467453256732213218540413868509415034179199967436435978419465105502951781216890843072429860861157523485387045827337941179907610687078151888744430173611065215809707533355824852483328440770480887402588049938615756428504793189588501136495208861990336977073970110348641485521000761532158603939634991224379733735998914943909735732600637065957342526585312500614422006029793951413507981617848582989220567435574208023016399223615339662085289721083126971489809767259464380671869073663104544397684055925522194072499576105708920384277817284316379434901075585195923767164298647499647244006113738545355885418282817766577739826560229640796626372813944955507631096589761523046200573599488017671392214223889018246993657868573630048855158488742200364118372308410455942836449855900639174327164327186628139032083790680569486219258108061629503762045886669757941395530045061942399019961535459405450406026923078437169919586465112623641281096755700993498956918384474341073529517061908014103130092536269439453935968877056787943781755269623386689732542126580218196225289224785732497063842337181152897783050437011041479423992456910465887464009908134411715157624321592042821988969355301996248468839582758576948197132698315145938783190597003843211901708569480293639656934342278188580198452222147011206290357308722934843017393777711404030871135074456622759790597782627194259287660012001620005878943099678776611859926064149239486894604432134616232948405703644309808887421237192546822462051038219461020688207609269187787091915397052103066526944780177900849864589620220136057403787904191076664774572194691649162772011253004684783626784904856352628183438989587216653687108742608651115011554816078585848203798523570487889050196173553589541490268795109458667828781844288770489721086263642558671703091954981348780951557954613558901145320709924089979693047734144120014303479801730560353409301710905601955937001547381904877826477506712058863610001578168205834840037218678890498708865802417914037358055961509038948109968774677509875455879819676895860750623716450160258732365854445807846725237674696642871109590277910536919864641790348196709649332726184908277048959925167327215416908051731172119729511166848944731131030809648132479023901894402157362276393310876234758872709869883423109661244943101044354928103001794385722523318956325049666643419155053593869575927102942478490853918757596537404950164795699220073004928032740129135752037121342554165367619701184767617882568155277704590879057059461450038215864631985011586818995868683507348697269450696828215487098817226292523203031510843804324235884022098822018328836382755053727929204085544696786427973860335736874047424320567007631043255861151630143368014760793779085526244516879908180289646872522623090418593937483998959933159788463443737949868111407332346428894698933175175589175936040435796803343351894683060659688990902365416384765690813324846737926352667514553434906209634731449382881985030502237428157091353502159766761156949502406961985195335539379727991971417755960159500439923164779268118842828208700399004730326057508548594692259442745342362018523856300299199449724172065284014414565541623575047987409526784368305504598329570685956900859112426462170469579410916191377881140202583567492341149014189853630391170731424441820710865045305151833122516261571330857508760901044546097852482895727570320567885951570397872534061858850792871302366570003268194800249533434725887541227805669757537754186766283962894160928709593143563100527412909698902404181826438013206556148194861802243737163207708252175803387074983609537010219016288044668939691147641338521229463181581907871645082588485420282888398745986571128100286611153295884110751208513079180140490055168205967789283877527341988050083465353946713552384576801577510039424210566179961756978539427593232975232490592937412242208429173064225550832969831371620780041722940557217038469157320319043773341956760292685603528212230031074341321797756982911141755895901164966798954527752879359341084234220642307036146152997706336519053447166312737656709448862219598071896384894165545661141442030190325035235219851759935132494519938893574866606992266675716082708769846383099340702452325156360873721510844657871499508917488915095060275634850048802488889458671626179414208215862032578523730150917433676984856300777788862372663144394544125898385129844376721277817917031118175258082265739458002783017326605323239271155111140022758242300179403747883543405474417245453081501489901639279185714017850249697927207971153969703780435707605144172913632737037041631461701320853475000027819567807650255039194093802207193714158938426204588108631908537835563686475023529567872919861701511444079531846735631930720492952034666940770153265006597942371095661108433675530414259178411003070381482835680351696423098398769416811534245666702685978206308242989898275824074853544764313552704524249977735282840009909084218899133059652687599874241026065516491409724685205901032981410980254684345480709062122059379352812636697862461116894440381514301405522204837895556869986316576948433621825542178329941209156541234188004326174010209558193505630793073122037126717922753911972880028228132446742383251331113848476824498479420567591428373222900355266672124986378605290944757804788558191762634550662035679588644221153677038712982217644071770049624080912605067333237389221142788527002419571937238580888825398928780152158734617567370064665366312991200038025109622068280993187250531853505245195292606455748194766985023753849328172720796796933783633938464494088335678885622418687545878155242857873866740134979930932694583098108961723065296725515090900082027875727036756853409043208982939684438973162206272895945452890095041240365390136311248774917696195918742200989717065435358899115601372750484865430536514665672310159853668865853717506070444342593034409351851291523049650090786283809407779721189996963026444324502550615606848200843868655194129934028629221450406384283174685039178701658554696057437287157726072424820908549190477803970898810455985943583913848329246072773402232890106786634744409314626674401092304820329497068283574287644133329574185774279741358692199096973017578613428256043365777951183198822065391501228927556174679471851973129910193884233401111686236552228289398877134611723517819638639855918855833199174037996510281004909376198713418370149025202527414015008565839931186967627546384295979075587494677306881427747821974331835106294673550861951727457210941069005661649027955061021373046095422809840610398983347315157779910005586964794117978173336139605475487056266733343619308300463951958040446473559383419562226777590341345594451494044046761209044895798785128903435867427771533255954489528399399656729231114861265789328833215307762720548027421133538221524892896561246072362243793825502096173409535221229296148815009073189616715893672135411520507606922636709094587744465537564564233196095664489988728763109354520053698357337657945084760866501960651420401846606246301575110599096320528265058980462380754924268176624853624632183684533429014793033924181776012626950614181187782531706702952691025089015111032168971654833459027513071525197514911623355647776392439797751213860271358027435800748537370885823272261243122762446169239454436044802291826879432775369409979473979022764103599076130108585033011920377205107329255453329965950732605351565591658917012548011886586835188322012876661235044284144366677557435811564758753271380042263794088826540310712880775150707198476683662452220305087715955377403726909100064775396847953898505238620169801271016114220095045549362800022368642935789819287132352635380423998134246581177675217368807879547729749742980488469857694433422999317843676314082196137807141851307042214318927047808863565001277296423237276824366364834863758351110882865186777210812409799918151500700761448771445722249962109535400046926143962825302776527514618922464379316185418748037183934058543136240819690943560459649870691876743119988936547058086958967351708485872193674870865853140572399946771273772766084277974235522506792042924255472578573207589957822016380015671656920341329345713000944926661384301746066028781247037683451188277700847059051281618880671839454329896406742870348448198097605563014792376666412776089689088488803796409432324626251389959408214024538176943313832207091176748256858100913727181116404457502134440339369582073134132120271613390360004003699078338391827159218596448992470045503924183605567633607735472414178019831330682256001283201344087463161258343875622391986320229960471223231413872891930231106765420601289647747517630601351697535549947252281187416779958291528219174838100849331182106198124445981856932341569690499875944468724536868785554958411523760501814146263769767000361046547740740242216499307598405687090983443273917090507689255334725096508180215141436206184794843604330006975216769630704821017586792827691264003615267913323107896528506293141773448593441937227339525672394005904406298026737131681441749321248208166320595863313370296575203621962310465658718200723301315595960793482714884819475134078135375087664960058379263293217441323668084038474078788004295602337354218278553824189575266981549691315373116849338210223367634172580954416466500258761428634982276862382413853176976199351140958980118906174628830792853713642020191709403749896047935202850314368878413645208452616334852050386446132267134509476545206593771232989732746610363985357476111259197206475248058479494832141203489937555707312106807153107237776455990577346875027370875111405454291834004995865813867422589402239390349362936207616073933396461164190540229940472123291248612925688195510109227499986322154634717967431504624577886979160594000765442093010866277448025885111554578382934007755881361515646102715953013386273163057313469518476689043639612352388742267726522999246382182529652685836016738093239334925576107655805628590374259380917615435579347273346938442129155351853220048033109137251464747383672735781453081365774258668658939497613783195356309555378707027294191983788840604753270232654050362519054662241668404997539732124004877403822798581544922161858413303157035500114943735420707591874683815570864444337185897735049069293210359035291872570561143293543636617199553142412101545900265416272981900199841614254680651158178551543299687360811737992708823967667723006209246990920816511242836025875249757019318898803673553600733553909687178306489979947806309177526209450790242180888397651185605389573126846557355454154634564378861273621712791149612932338271834200221118255371927832011604791820009956632444771201405957177135788539729886712662346881696319709404156262728344567587758991631226371471967266625287661774835064338779043792024196488501819040254945310983838530028252206211876295260073993974933685811580990417829742190575085352539569762197506434601997173495286318230444166649730284688719639015526517548922141206989524895707040960557424777783905559075876203111320590376581840845327103771539114191062296678091587374194937191538793762026454741684777365259421396776766699020939400870475429650331659366668466363512680124772152105333028054611708224012891268078090747067230939826874017052695883017527370827226205959732062465662930708595371146909212626402672249588364327408362908678890614303161375899634244274100436086008962611681462462923076749976113571784511274977115125205701018050862895740535122526614058331444163057236012834952114091421289204814523553665011838057072673107253221620664377113447985062006023703005372101470529597802905474033698650249408985412650845743552378362464761311928272896796368507375731172798560010838901638669623646259015177987377550156041814181878949132459899082069900316259597253631759621625000312587370062804218804566082720027485611194161316374229193695040772653496988809510828986534666006728672275486934038324295621030040761715420857771486436146947160189637454403151005334351188608301772026006916726992038386135449961356013299598320718033756903536178456033494706339179577444761356507803952140588831299760591371507642922753703520910942033844108290702559528431121715387410282455116993740737285841725486449800942835797878463417782211225464458157548066787945482711282399274085773547439400455642784369463584384259535481272285041800660002962508807063778228398140771135084776841955590074307328028316197485887007144483778808320664209404855059529547371927922245042083502575279054094153041723395103991102933961807317224313650808851036990097523403418631201578803088169199359225628444242564341699636874988061215251930305887132027936282001869864493067638207697549417284087869139450607140037504812745548147319912156337786342676622893207739516191267170502015278818506769689355983684582245472514343942555395705783247689560341691556532806537735291645502555680807012194200469881084561977095290656163647294392293646007116239962484035444026927539293217837906132045883227259506648593379951789942412867411233548034586902778315767975571678649424902486797685147698607681954060125332963698793644972381090119377949449416905363908662883942149468542740349608929958581250279029317254666686100736415232619045068477533070789886923994844658171210779448558187934399859514393443292127280841134047438949082292114541887304915150728193757017382824828551033707870987556413703560496581555016959489927557135403973630814220943450453519428869242020956210004264130502209286012450965663696825926486921882618085842396250564509236816940822750018190754398274643225238065383563182215870239160861615140760494328289935551367123070302833516393544628809793233056119563473995957841026018897730528741543218410852528144846921589195270816202786181735578280675621724279275996995988882007164737204671139741374758344639064557560043764062423184022437504472572365515285939479945736047859501232956460869435465939457952193211992917553296024827701518306881297818866455282569595602261321761316700944087635410235856792978604253666101992198772942736430506965247303346296861646453958076075137273044748382088983168120293008524269917540490309734304811405127176849651846596499164633859234542008895104015147247579195055036630250671400843957866128688158335643057189486657371140584725438162329255138999313283371280833401216674305742175924140456456885751529906787316477505733092435969204737163235311020093156340646582655755855488972621616742160951608213824437015309431800089826059883665382280728157264861509372158220155870822829631984419577365393888070510109459395034334706449694023664826862585881638914563954937479997828913673961797165497655646647009104607375521901611735335115449986756486957697896852757239703464448022946955278423659594558586662667576957214514432854194251246423204747819320986823955199082260147425928281799481225946714195096090641786530876147311151515674856041265462223473252566254414126935740947224398392572066069344650068462877384569780130950219394559742586310939218986498759859409953300483055611462836632574815320016059810838639750822141316878850905921438107478289743953326652407458672513350441465837879537117080800540527636534103097602241019381250719553555734234797300932685975949177546502493079888615325789669743453682182823307678421157384729279411084569190402240324675572648136087943208619103773111837542181506438160913035432496123668383246963605986418107732117679653288130882252611693799159906195733342535608785052329661977444982383455505947520066087031790249577114508774966780506576313830085954039758621481005112185177315136092126206935060585294828291397688114423302325093677548191258817295051975835032865842205939947675784697631443667859685680719574531887901797549614965945793618091170870775851313062243938541002100828864957402305346290099132578953123849923935373825391844223631740494859501603666049469744200847501276688883312172688651873004453319701962991570529356434362586101752480599557732506909767237942225269293491440099731100940985228531732639149223620589150585394544440357198867445356362394180213877919866318024438857460963333597193727489528995095942931849823205461609341616843770704115274992660043115985588930931466303427056635163922576674744460982155134777790243927484824048706555793226499364255802050281347028338933186810053842132848614440350767666375556339980556853781244809635446454853038844526608331926381952001513541490120727572780466097828486552096902251723931916140523176413917832988080819360969812169398577625778314938631999016013298570690000297134608741192605908643428199750336703497877854681643583453990342349357666515372041637182466880196371291104671780469862887827563131622322875019582516509407254525222259196015724713848694643622724275159498425155142775912388469776615670583354061515342224217237751812963761443223465834709478616790055984425137070835565480129649306054726192976796706103033160461002726902605245756213107406970997989463251208498631297384033418700892111122670885105549556323350592364994964369162439437088312548813569993074138679815671881684831178531565771534103738986405136557206887303229489851775107055794585541093944476164604931227505519246927808250468183384964628004522788462658504506769388553287190523761570582501048705362453992992532312701605712143114740696340206665086958964664248141777009151395669050084486613247223068875815078861452018318944962865373827654911417205094752022848284327476897108165288820197640112176051392175574311745908803005154333532832145501857922690444074850229061901141978661977965255763841016244462494934630523294052376247556952880860116918814246476052590257160757876977182437758840420203595450431030380275275279627268238090867361987965701143453954319858650671249645831136608178924864549898505712513928977854676039795547292013964600809159937724943057189435050770246458496675663541415022086334784246048316028891278247202579476554947600225038042841019445185213222181045099806301471467590341528651861019768864896031383632012302115763818077930433380802202902412040923222765526321712236204078308179915763146136716677799331833424530851235018031298304054823483939304123732626017874666220301873906871220552000442627780065353849533788256795218416439633553021549121604625925768334164029355619072997652500173711069326604544164562235039994782063142416834438656675856385684163253406238044872528601396004105709972700671527913950725935653502161040108565536278128673334779040985260121712983344983155070966426257369606025210538069570026869204628406362215371945925979601778875803161281350614715268848142013335712929428648330503380390182882600672459348446309969179544298250012553978415690050371973276109649748629916613484312105954796203861435764390237375315083143421634839797572615360253240213529742407613240573989537492010110829034259136807397540265018987744037995064107314192621331409009541946108513524458030346680143261889587187354991631274831770799074062479572872166430074889075572338883658986528152997558466490043782964611612993923269882818314210910570022707170161272246959801168331527265689936287272599841197357607448115078832889322221355220880502626024073854628654009385503498941094804806712479092604050586877558806951933410740484750571191164987511228610020616898344713998677195450416940511947565516529261149005029278828952743919312328235783300843383109014372482717936744273727411687396971727879418862502002178084374192794258303520653315750219870677594361533884697216628923115753816273745384367800380028341045049167241995361787289964154537793788981412764439571257063070091934014442104770353166796583042070048042463445026137182403323012934014907660044150445228215159179134376928031040042120059874439547480292412024841205597358559186966823578289497411212688422162441590723144051822385645821627639573059655450329720336989821212702482324719223219454171453300560752960837652605331637987470844602411650554657395351421659215592743684246097210351270131046393657810867243508453025747394724668203149206554734342579441988985982197566908127170205166528509138857419529394429281403438412434853397009178227683674143934608387365324081912170057873844823976415208531871082318218957442533862426628976773502016669352565219803137031152375113581884443606420309738063689594030329503228881338238717002840691632016225747533792430623788335456540275474614799290330678173734161592882576054103795092476990113705761577629705123097163477832581553956941572209867844481816504614745918812690996472608783573033381965646008259198101842167156160999618152852727195247938316812762118276528975733584750932183179997988921936825859344559286152138633718616054917323156872968772899557001868964739782186908845081775957756356912121901346349756025881632604046323122021012622398433841285959566894195166938136180201677803873085636375915508950542285242096033765085126560582628173529679992216016598590315547186331195908663103723683109415955305720516383153516369882591362113666135277240921829007675682066026387688039146796596695161822047044470981396194680744035812662378481438871348436279042020137896074945465914369003195109713926998592668188065997438145830201140060010469502922670055013910407791973868246124603971207185043820962589740316196933303483634580248056225775282530466033048916048592141977510624558973450689521607838553692670609756981401891727856203460195218650620946602360925766287829335283325783690580491178505611907701699914452652753407250059016999690376186259758953731325058870560698692562974498155758798827992840829701086574142156726829562317926179042235297465102605466302523854452320184462759052192909394798628607568111441370040710806855695785539570006470223384004101091998150296634640970159695614042304962848204450581607665987805226274176784410035335613568183113220392733216979592455058271192693757897134388682252517766542440804379725857646392013540188733053380048408623067595459499495526824479831133786060151591180119482592662894351296458227139560016622569078439840701683255309134896152156458645887636436004302641841744248658013344616071326791783521520949982084036977345904120006420066701994084675828293331508118940207180303079169686049402958593483841552867518554140766172170468876883410527290179020683158884073406900977510129175677534131376567608436617960533338676553781441566769647722191813986865531656885705929037507399261769569273474062684982471512596305333571879832509214076825401303442340993288632349186453870013284525818325951771686281527586145771550804448397229837380412974821639411845147438544722114152195764961609815695245875360675764879404222914939011726544944599379962757551855613868420568766298713307443188172564735272744070236265047993699846932617137125509185136230886784301712887934363378270108201785507209813157502040012021062069379258005438220010023309564150386967188603962559063383706980897236185464061733499083709048089832103274328645599976152150952303337623607677263506427708443356019883278534706388023444219612727511422416020753247440593655994052942039679240935355014799621500927229398798678452257747285775800172084086971110142959159815238864904061851899575141549357907440328163722585684915060172163857696281214209610616637776686814179421265963160945159410300661836852358888829462478581477751055853035295419925835245167361029660229931716768104618671713935204938220755710996602226469214769130938024820739431552260804784166928979732147094367034760919202400615680760495263508148434055724611855942850895612160487741956876815489638869856488566891755787421902598077755647309814619365012779973064208415763717657780189696695973713496632468194316096921875840239011979963650702074443101227909527347076859212455273742975770747761647621275366408896920918695287387115524631104306031860758464258674274160462204673828531853147309212319740901541333841983772027604557138868635597055579103427748875863056327080660771341847252573900328493528402730276507187821637786823741293593713654359615405428112131069997824893330318528995557011042729774536252848806977649551395209460919107656433887121549338646012233009024627477223738803854636029699577790937392675282579210791383408158999781833405345946979381842596016950882066444043430719935451619633223062990146946616632059881422912002358095659360123773447419325114991237268630268597439437219637936550482822549653919032111566693271690239049002034330533738007017049569492118322120670744258007860655622913402812350702881776781014268245500519989871820220705300968094963547367214887854914291980817469200816598765222088441053331232649508265006603364815689698410374336338882970388989350669878064331496790128353056503383730003993165971236912232487428313238398521723825880239837165455049416948890932051937457037544895406276789432982987682966789266282497364528482811104488432671521793047789936300288157073489404940591832098323945058660472284524122500701091078189087214024463935866462941082839753199084176897427993440476668550697166603898116858946347691380162890550908269114896624448505977296478007851748218648856989919864425654417372657271213975944254515067059866437153517951474646641881210712909086857591808965721233887761616585303712267547846099399907251262280941447099298909205555524726189416582999202654449418423899635259250860223921317221876010738345528817706997019614001248083782033370099129275119052704657463067825908693806036663333920832733998234491861421027743887951678028759860268087849149960510348049313815921155019873859291733491350731944298806720395656129612311767546421840691297325384783781682717329093490094376883958572554542181380827174489112406015978271484446625683299852289287268728283850913769753425735170206259912111646122580278629492609142011741226142891871223928314998220625113339997783091465561064645924852985440235943396900682646131206478003636356609387339039406662375853277446927753687856119363265952204626166324456161644857945839172838784962182308397840277681452594726807181084177513238283990903576691751304068032603708882823640861678531027919746142626785996965593803338958904073416663413748552981603787221762349290034138329108558768219159950775215678791989052429180860109561710526558969143783686761168519473318950010312156106693517379516147447360485334007429938970041158549221210254152366142128941662641047100581423336258663203444913575688915673355067913254444598727306776213696982684568593303663799067951969521519003908150156426666512096213389254147506826479582481285988880346359450620265564063277300470262889052461754106652479769628732424127623905839386516202376631235504832861222074531102262802690464762347813719477385230778808199787056491181959821100037245638060589487942352700242397781280066042812302316022615394190815165780175101879417972590388714325450564769705748673190133808139787467935556202423284289971153615951446064363419498442686602527180550475262196563372475080680672837197214337519330158716166169993805180898865456123778209032433436870519227249109061438645730965414381538055496597792944419888600879090229921768334147875202420618264773160899724498033121289620825942188207350138367130584858723268162065182539568172570472388630026748180435639982484774754674867192157561403211356626882004996218642666555933636029868727340394775618942835191488021448235721639459919957921539303836175296055711960049154037454187755735406657621036343586140368007270713146346320638879010901000970712079789870001311883117684322042853481728457146898042028152733819113320832810197037504125816957263797259775709743338189274995425328822191978702462972069874995846750569692462210707226360474450934136678463545577333665141567825237160590105516385780825446974387942649580659110726666776593277420915986232712440219252915844111008760189413041038323075302823429491982930177678095651298028590317537189585813155783431242520570375963451049168420344918687976666242151983478761745616283126207048186748496548067747710367062675580209367616802305328278181826889266440818752201113093466815840723940019169869064427539124536580463351395792328502305933598741588130403743055085038554931061900484213809614856917060942287890549464507662411521452475977778503758438936885843843151761089815905220401277820232921144102202130798812571614328883519893255001143089204933861990803740352858336570447333622566258489309420792517932859642106688043754864554135147137566948806731365321572411018018037626685236878497592702363005620589364930923859984109388704702103171658274656747361882812969525465847883549588524636176203283380185996221223897061674756703362378013196578779969609042979507688454451356793668703206210585369957085678225567941694045661759715794249345090236476051337234913920537987865351224807955884081315056207541755097597925811434691726250712087344611167941922783642021334789952688945785048249671170583523078978723923450607332898878051314470503136605585091960398143764950846277946478256796921583834006882386847701922518106993437669416777490843916636327387711477806946739660388121298538955315894986560363624714967056855983021643913932686317302801627029603138459165681967284623438354493979519408528243949129907996898382619495502207815635579380298772999252568835695898581025563735352991034373497780320631591967059477573725556763139710429351258634566181721480973384632754722093325535707399471454580453873787429484309179294496267566269106250968851602618233329683866295115115322821824534602672528791428615482278280060599429578757207477339813294896741646065917937393696229058655823173567092393902163470653631705451917421744126272387836427471414441647394222463313300757220941697075058292995875134784377155381783351256800124026519620957473646764021603472930361584818467652428493258914542159439080440296469082116528173173464588109225980943156376881243001439378151930870751784773633577347995168816728192099373045650568418592183441575154507374100415295437062778302054123085786480727059406071827744433970359216006430599392582360909173243560541285591187607261430934220374341377313889680628021686060573976280775675959756863489912549738805992627289511049599474422606624509991294933900868026729831723369025239146650388034220351228002847493878490703672447041670072319766278577159295510078576831600207625531014131404445625369182274132726557244298187478441629544998215388134236147994016253410300751154332456081321327112576953868062931252432001449792253562435779898431789338201765128056085926335423536270157070841026269738367230984482466198673949847837285988251875876616966572086229894512657977620059077453924622150323023583684962792548630569138805492189716002094379693333758011788240065860201330914035194146133235993964093806792183833671346963655591693791020563863025226811031614930806085297755171616274667289915690952154936287846699165364146964338186225594198488558869652528935301628893206753275725736218172291601995550637527815915017970987253382383241956764604785209952409377446246927964951377428220579566789046863130569989479004551942964229342682515826061472915853561794874642945373965135202547098725577856828651029570566008131744030534650349834039327401604101582843982665399773194407269346528928620382053460349679578270825722453927348114191767590672303166459196115080236809024461427692633054132358936611962839038499007435164864915100049066923215257789030792081724597169132398196527733359423719815723802458046424194574606651761036248773913130013393760266995902711684154148002265076327203632238591000975250787282341538373554182152078700311871554902977852281338119078992759586507176601293695175191616967765550828580676057074912205200856146945630500557785988884924877428172345872762538398313715155327941276106853546136861194515288056737269287721553332349864966348920846058025698116861614115875597555784047462939380859728467756037904364153723672793802899833379982758071016878476188175212368242852174394759162292827393252275947784573816697303886039137200252397218175073911051923671192901066622285451102201796019354280877376485981598955797378496543781309137149997591792327400503024607525996398669692893694461247264692960434414518295918974860668411311489045430955853492225386089977947946668066875285142093584626045551493738658005189962634555310494652109522204928863317794831803409847416027494050467256808438258682024373593966782905381701344267285578973282674337463246264762525140654403780663015802133535014177009277545488169724647611089871295628787264550407750904641345947225360350271615193944592473086020214061196668513607929364886749234523615896908323968322573657536587651691528311372030742487449377142145017990798905226085444442849164574705503622513624559564338025556408735499992460969905923497791748856473804120686998372580090952986202473514381888111218315860461851057503468135710123756529332653581394700656781851576687559399665511321212655440746511524318286320379005170525230907606830851509022599436599070232834564034946307961389803256952211955153128014506597834523603154419217206008284115792395682618358281411098910383329553771187492401791444742584307424782975609297558811646885074381795256981068042556674332230794915990873314876901038033445459666446126759604109119573546487806784725087803537068163358951639997700253987183247126527878007128717439690630337125943421301907024180855006931340641299947863031327294638871030258472382053569401364301324549004271692852548038998776295030010147233642600933836927572990359124693851868442351252410639840158618860280212417999555034204808043090971550385688513376719712064427298232621499180804233191489887560533497398302921182306548903047588840960599702921947692107320118594428618478113765742260681603648164168607941065818411970972499721373876781507256587302607410128048004631492012106583623698184175628943503683910837278499771282541533285735963733816138103895512837439814463178484451098764827238594218264285649672562413532037170252230582326921326561591420949732486365566767779274741401619292043298072930779598284348022068074447471684690185620710992520477232469865302952720760034762399428339048639831585998336606016234003650694940801324998674629688003401590668079748273397440873377821978044206779312819076673282623709063540763726271866465650610571069328728570571782953656422710076492629935751322534268904656202693617104049415847009241882421012793243004094102558494220789558510303333301002951689366692811576004948444339005344110185455449168577198289995655496998642860254684472988095047088858978771963098173055599425013799611826819176613391230397027030158568442410023687315200357101622767223499136004633679431272754792816439678699061620764635390407181002415836176171136366397497296909372683743480386543094740711404830429672449737447940247420411709211574909756745775754849533571276371992882099216791271768644099545322639149793045933957475567547336257892351535686653177033832921214568278963657999225389613012193744024616122012414889344658785431418060068140050885567035970924826187481379738860434314934619898308243653177392334600901247194305579885398414924756182933632722866467103605814556331895633304207423658748120529091292844545084942497193752822073133323690750771331639238931635456948441244240015682721589061323321612158652773046741170043986719674303340936210962086344442403469444357494390561385545495911810239853717216639948315524613405626954535832340316418147154300449738117493253138156607616291481575480027127544508927479697892677568472021141136961676651762784040636515261760581808957480470930026440961502906741025231364693400343495394312846447554176960063482560775145519406259834905321354790177720997379966052199160503097310104510046481042819862851696056687541447675172412660108628842037285181010877798733184290981397002481168677884085806030103850448488289526376804130663753949236700709676961853022680946732846975757959189363889766215531829255780618768490767800521263410222605003399558922904672156274619735481365493456650966333544365052588712553302933649770954869878608131022170198923765212183419657675723864906259316419020145477439718804831612712232343093156037568235602968349139835798653292853687574686567156400574995345017254852730960868148011128791934994119024026359478574170404267548072639502620066725618116437282815137178563730044627088163278188086389434903970572540464994962399060589797459729280588210375919464501916498838469285638750314978714828317954987666687764217075596855543837664182213098024337950756618137050634891019316195366195533484182226321722789413962765671430263996667021939365461496079001432581410545927025476800216343451297350176140688511135010225915475195254307251581621132071434935543393414694193321230841759987372099754070392276752581168699901744571329630159534096897762101409551965667880819612451403525104168709577511428068929422465153157532385634756999487561492990663645827778559782802363753789369119899564046604989374599599097405266019164382202356349924896127936287355628797926208676152818984853796090238794767354747581498087391288145892962474845612952669995855010381767485902098684489173712700653050381300438229014883222445130138148343736320914149253831445856782783816253718492964082399377194794883564154240130808477617633437196702640191654513590096862078770991137816491700477259689673581385745865572416700912264261183214118768534192729998940450540259065950247551984800082182673597945193578839341088574216567328503908915745443926700861774784527104850225919581682562363321898334382871398061630644486104418451874197211133629975620494177431421550052664677231525186352030611582869717748218562541821005703318572397803368062179794909288345904161240510607096628426583350173929257331854979397766030419265531481803653421920179688735685219995773736613646509054335354684838043704957534153058021693925036215837548352903336564559373611399105208457234555683740815996301445574589233443881074374993073132570048118615896442049364073054400831195275603348046846060883912411651823092487608216735969523667777769156669375249360995788491142540406917932824413848505511103216600580665815171087931059939423671164657439421038195584173893732663554410358593441794975537536218495732396337562074084747060959703000000866911880955785101914893496801804466952518610977112434662491931406666860808972776743186701714318113539542727672615157910336356065267446293173239778873712384738083747194618190450556612249743888158780115794787015453045440348998016492171819037451801400922937410209819441984691410395400646708252956543385966517505505326180604156640841465902702118197784940106117835624108780825335286565664129320598435212851567518200593333806376989186191166850030052430191403096107433453687770177966159823962061842503793035426289518534479520359075477609308828370876931425294999229132030410430160093794271364413161227395343437670544901331416711105799767797652790017533127459440719496885866097562269912113054068291069369535325357837027621396057081129911125206594012533947338655924917032505682829299251790964868021590037699427390407111859638476887484010550460957788466913737532038782588354098414981811371765904026297486574630977974624077907832048059421183631481010423978457491936422554708056090137441958491941075214898974440042093042532384446872514420728795200193052936697337791581898701880843371532781532807517899379721778881150745690584967516028279096589106949270802382206042438184876096607037511045507842594023216621685121856370645106657032533349101783308794652634027820847099381067054210289914300350896899717414304453061928574228500960903392547468102565708670393249031359937275308254608784818493861348108187649060881736090391794632488496892489869608089048822715620162466454692382071249832370940837689133189135776712225292178655129998224288488998713729573888661353779560080474486812022584215447257058645148073856789467885941357434081448022000171418901832266433942899142435289228323567040603628285875333210891454437109584732554832287863387393568445162433657240898937597926927152364684355352112874814423617345625054128471008085568488171286171687592308381007845437497385260194353477426295999083947983097960141992838463589995716046447665976374150834498550048719420416445840703378189502615518463628541872654715625365599356099557724063446286098484526163852675045064192213855111927308686893143397627064494241046675409105614807836724089671919121242797418095376016187918437071490683330322701891820577271912456172728347179338339449893389329083123417705050684889707292335685431831212532665574623242146629254673087203417663862367836081114258616347814285405520664923170571901304043481392831256834738568925427644987184159292997047700973648137284391732409574719482863099471295151007502084435172430442393466861141218984805978810407280702996246319929884350687482585759798403763878399356332534183005266504351221281345885036130713725374200653695934158264466909232718388804075771930614555452727583373902021173104382379669824021096971660431775273694681544732411849139543961245969146173183109470735838023242664134373943542358778530810157040390319632837579692519591343138279037626468615717123622089303893528774470420783836115145654409867284996840472708714847460340244753639340927133806774336011257272055576226035154308457071071404545514093189780977985584445624872233168123784124529486334583646397013057681903871719762456006117842911511951109260260240778341928117019732487329273233962315871928422864849097511058284722998528766495099068660648957467299634652582091274942888658740346365601602837340589487608831001415019571299419614264332396936246017973448488363445065777660635814762853411568459780752619851166858271889007079927779115612445757145670921253126902644230742505277935334725226942344579905658564654388585932361808718767941970946374006188261648108766174164936048031475373741776829696267461289655974968416341880931203051768246569474293603515616736111394788701256441784600676315091738933553650516305117903825541283986002261563098493158642194110009860879799337172078997161553615362690099950805825266674456649596417755039978320808970083884250870686852243242183529033856568298164911755567321923122798519915843076879033361969974988572797299457165913701247065648462064000355494469977059641104349287969268629845606225593256019958999544360893289502596660985981934388910882608314725552537525432203925456470777569001347553939984071598529767145307605031713667530001961538714115669509034449994345420927774703474531034076559805135748469257567433932071197430611478057891576552850614854455923660329858354417105780250349187753546640695464109805559129461185701478318385332286120220099329919217776837551873906933010112055047504236086822609757367985551691008015337514386217591497777777422238416867757972720648945452166775465148321723816819860873019337691695839747763901916397234795374380828085020422525784614788180548647439012793528491000638126514122988508489647354021515448840170000599467609449648657123649676649221900584307684352900068411520896724289797499344636252577000501467252304702890293657435636336566657986194299055856607284789841984349787183644096086267317143879886626109943387140759802683735623998049731733793150073367676120764326248398840851726015095312012180017770483447438921561599054759806569791608716324620001980367530125855067414167835303133263957689624906200006432443066504774182248520573503366008586754772234634081667323642159237042036661058980036198684499774763977076254091761880159762096869890046908804935844830736865835577744315551842557410006780416569460621587161378542223955287060258285242719435949049003961325885055839206536146536805491819140362840245616953981318855078655590580377170957829117156231374381679069535759419062252415015915489735418052759495589331629667926718580131122269499503827259996252704423084324682150080536922433691888972573576233519272974539502896393493228583870190421898930070320500382508014970213375664978263428215469571433351218734125855052000767303914753794377920814048794368549454713878903839377305058652609269194066883157019802276392286374064371818696789888926845773730823433790539072281958275465218704841449686989598710552084440870853105923233465250638289536032884746510769301596219171281856750485687938261730138397917937585536716000407999419544250519346677129370035620779033197743616170767686298379064135372162767943451009614779871350253422856869010256552224493287792162063527560515342830957413567852132890385991794907622325353666399217186548397091707158052353813951722817599086146214688473493879768019316879302982026585432559177928474497139038739249566232756326423978687609114728996149783570181989092651818834682011052993661814911367796158260781309217299155106413073370202390291290620969863679182119945634844037530308668074551571515216979571421837109222227520739184917112766094132416204596935953886422548157393375844294722778277347221616166220521035404039586149456615597615239825993196715920228460234307847150844302134174854099603458110884456440340581379306135727424085383930946218219220066110465948619353065079316062028414777104197582498574165637733599823224390187103360310796882859677925672744506363171511540467500558530958188878629056798305889678161563735611921250859601102297065917993800424070822168128327511037562732971612275690711604503809700314929774483003671949297189256735496762993919160771206772624605880007090412213124264006354889003450709937307984929656202312157677164601355009140005691941788275829280732060160269464631071497530805322937063057072362161019176489648121389841592183238307592991202149883265041273592224644031659059691749908991104846706402295677136332753494655925043559146488977822881928301132321433614699755609226683695250018955690228208307599719420254724892209138851589148669062968018699522229336375963077333193082813935051455820354805878024343990908144487194824162491976229278172941383946260555945509691468165002399173168139961719178390225185958810401667946894891187870627327164851700843719251336124616775941263058718891751068680776018906281535374926756908423079730821357851952940785165901498894959029373931762510295389166488190145374080923833606725718031531600601698275882334490837689305678889454826757603422394770687321911115028967481049531914297485790667535071782089209379660355916139153628488260074384917677057098627846664817842234371279243516019755947201445848615831531766467158794218899362333615096768787044413348025613310164570788611652691914972563755153141994480962606855650970341035055379127569341082692790271090947645812272529537670980588024995224064861901000768500170688453783842461881884228287332851328030631267398186833051274482598499411476675717355820043261386686695666823068295666032331506898993378569137560337417489203858179655391703464723538023444473815966108943697649371717675028629756737382111604594120553226988415191395839095800499220042924632666234930261973426941392069522543584234106771922411781410016247170060660992401557154554857210363014502404067517055538706928463689281046821324831001499537492978636680224182362642160321694131890873283558547960833286053943547198549906672793648667122114074673478535227628560997636508873087375024449868076008676794222934822710661832532474540429734220875286623727173437076274259405116349496755552863235743821418340344755926366271536746999335334181731137093246093293564780858454123082354285084301375455663166654954188472840009794501787643595416728717297867332928759242299009494456089494672818459056772193445020181081491161213026526199773082188264786836053938444465445696787830233770749835118818976364574663277785141885709707737084227186289003851883774740270568572035687093969786722611643525711775266383288529266282103033860938589950855638823640090533707706068761753751395014728491414996794023537899847815458536083940865553489786741409806443666990358640963545100926656932616376371580732837371517072846102265896513167371913602299308921470994802804117014521027912623031228285293569183149447978571006451024109014379358211867092632052087347555842319097869228097445219582083122113924567384497870113899532169463778329346390091758279814153563162272527920748452483880614155504532167851586932517040390628780388268513995193596990625958807129156235054161465928648564317140652402873086230656308810323207082158418233773553604178297051008621816296208201338370799151727358070760969077229659063756676154239331724073123619542613571123645211648346740733133690052776045167104307739988656328248251909263563628649614371762735358105653698811762375653987306059070970431759163048301384918342271150908566487510559254859488840756883040695597521147691395008421514228417870495764463834611182901473499275671290616966502317564398267425354227229712241923625928318869433500219028782687364840147227453455886714591633103627163967975658971509821147895735953301435541886006882290572364232763972055246538849751094626083546188794282510361048141514307062456212231531870791308280025505652166176842715874137243693191208108335629759342003959011772265210210756019083463285048772687754473020406095392369868339107754257412987082234923639586265339028417001414723090067084786177885995404179836706061511340843813893746796712634650873124466801462826223705997091997496624559594462153882388354555036563619072163951011180722271601246983957076590162106216486140744000021826458858048906799447209325678907348074268461303676502924228466981820034856962159521809907762511356566963921902021131256483873602567956868838206289346467581657929088319743506810936686699839901921502927789044557719598861049161570473327154927730530807692471135818467771717858702005602436186365624973492575799323335911644245567598428533672004170111968546015140339356688662524846671029263888209557239862148003698935931049164572804036376896787649940878561958559287991252218661661010324967605888141205359004474749028252408366398613518829675196098009331748558918048557444902086097602179869307935711432505227199832586663795353574262659690364209901601286531816554886181235290161795986235082833774182826645623857946329197369890369328902081310650749228706752445951181986382032503565357618091710187778042189710264214997189015282745332796947700821314103293493409578644072483579840320404634540626009455809194772024346196520397529334130247316332769230874917652158361128630788222252340358139806497451586841791991847889724772994413619706193682804961242466939601078066269137704799293076396196664712181882057238152253851602775438877127911844004510141242574424948971635290552903405690531693370219705432055050443693786808592132049428605389652859937299833173987046905103762462251189831525574627910407132032656847537058324728570076858752860076828222899680176041152635078243948655548172984655158517579864601447434808695689944859645463132044447522950728575446575690996849409605254586591263549352349468406932169776092774300519089797113314132033259721322644881554059872193285016063349325691728148328264453688213729510381961883156551200832021017882555125046327804921812008436598699881148819551369295017484677970094758911665312156188584997126978574188227861376191341919000946055989178698315476657045570950871904040929438295893000673565087640298419980120056826544630735697275289828633759375373346936262325345312094035348894416813647911152566294471963596907081440455783345857677063250159221280362964864995771241030267040186901769204312668251754948457837345084678246847891224159950172509766324160857633601274319620673951189903196979645077777928449914522757314401668206747699210284778493426519805208234899479591572578704335847601822171892537233375583050879948290051814550998051392544593473383939979330391540521793194460965976560062242144386654935602302035895599787183565442678043453028256727068843149882814498338572292260362550748697139776827258010063178977512435726788091249847049922913549996025718557432594140396103275079051449698879029030160416656086202598883682025277099646861644433973629830765607764820872361659385432657763743070054615119253962519111221274147408468807061585008851261875128370426230923387550370785706813121696187249913051982603242625845200895898636566919516761222413193741870179930476331271281041996529736707057957083065719470705935232578678699506872059052328500023410195965880123958655296743389734304884025805518107248790136208168756478684989764281813392010359696057618375893209665994625725998433788013984964965915602114454836780613054851842125964404461492530110856440304607811899536809201959603545184126715320322869660899254149984233936320778916030775474619327499348388278439248365277968392199357208717609459257182359814381553276313334802309776511702204854500449102811497712425351221484223199264859810628126451928519765471334679641473660136876405336455551946804499780826346200202457047878306116951884477332756224285043754258792231868225349996664213502951726367444845816299003002756485443565290969892572066066229818781221458190269095849920819175905618578387121671301636535337998114149235889387254343256563141779195027857055938853457176363688071507081807072099026874986461037525481277313830573066512406706861650700152383586175320781183251934865477115266389015491172555097725547733377246244291987731776073091706823668020913812950807246278501269534029341995738580662944372500373077264333546436021401541914407858599512845345568049534181218368481023596085893109947001134128978771859200906012953630956246908452272196173540575452919412015542185099692886915115441901492328164057641748402504329813431912208044017643765176314881050662124939989624079125509299935675732003278163848206504132537266456471120528443969719189821916699334331617901205702824046204950649701876067035083595639859599211156135776339862542485210220590266569179127746093483396063711849913674916058904834074326477852082996974153652224151298074108648985576551704720430952794732147139649313619187010126184312838828999057089598637337531338937923794290356699263581882632823583285646906930727843861763018481690995393628632698459371231432371246117179947095010185848943325368287470508201127937277498357067382499986299838407781685945310045693857400788730212420866365034064801853159185719867699222367759877250198238009627025978093828233146471272815112330712260046760251809801552986828500364631440797828441979134879375088782387814753669111373790259479700048036370677209868280889438450034135969860303845914541408168954724992329403504092068390583778723741218697565090913217205466709636506188956887972098787427748376612627490180989898528935807553463927446411054293594396505907649339064024631197781634183930782874844448777093013539401884047945423557773360764904450115472867049308278201850598270430330467185820453653010844835523366163697326335012264640626610135696767575937553033034780071348794230727087376015068311538627859795667031346853832734592054843341756949060245017230300855294169764240126190638062946117889353772938355482202698240228909748718324348048157022386734984305226736464828461675677359015863077252877754933621764772770654527051286534527942546343681359590657770632571668599456051475613591288750193837043607463205438397260487657546851697906956055620623058731339418093661325526387727645085715491592721761492257763252292052776145034193076018979714840448724929991273219623231997918438324464117471562117034319155451916582821210655270648324610497223278985025842208662287804377776061712662171184115749527839830380829905749668259255533185690160211417213395563908835556873482599203973675753061516725661997509840874853561062650601969476652928812035398749961136251096301521549912372028746705633399794104735908125562082316202707967997735933947404182152781340882774981658597658835880617669567424002114627203438515281813408124638949783717394932904136101443786134374737406571503672002937782813958511556595037351081794462475905575124897199931342861920184204370857607459190624643891728694953823838758141048080240089015293892568077967528928749224200778206133432384738251437551189872060455915804800924510989248761142907369588004957568820286496082012774630605093532211749752994942211095581296301573138456309112282333289469911209754841926748094648943983613704812399995120158287368155306355110489113833363552505720900847238420299649436085705692579804820233992470293649701360811739529188378465941680144418089872717205188977908660119718484265664239712120316126267625612643159318203105390828597456536635913402997770213318019658414700994259323459388015407079140934034800900424677501607322274628102803368948052042022180970120604993409365425684423719216513242196348937849265198652534574798079910432994875799906588849504918577785446644811960024704472046772287424056775598149011370176645831026707662981214089084447154563628629820403487505809377879024340421459323961721058205403105569344692921268652393127367289593781873217809022890263864697351339563469712954677357387535774403587622793855687339205959737275201397393344530903106797017319702979577213270524386198569928681207483915358796060865223977377263864866806818727264593542162856166076826186866594557416281128593695228426999104290872854216626427554641617397863541744165992163354244568196251117547343760917771663504207949551475958128833207323168644537356935793981018769148303040271836947982883284808334679033576492923452770763548629341053917476066519847365468463646507524209865249181793875003088377344285562091270301905820894743952501536142413616518965319307576468415363261959210531578418804965240312718164731242536299404130710087639938673078177478191508724790832369423347796134939634887446836441994491339732681864366026173913645399892834152043432195930379116145317961770422630430081923777383172747464451601616524132746431353664986274088286162960818969337002000488896880022336349401374288725825113932012195085128938317155822282960543680935795716923424937856938249297278748829738939219098675100830873990999444733710178144571214596177601175026485364355087205487177372438729483231976413537563337904530195494587499816667579679708173197022684489319414514899613479868099332154736735531977249999240352274547274656372355588890039646376162298495305015921921435586642775150310757395464114502123069980308672002663801787592635604080919869597980825131384633497867481797130125177900326835962709140152714929380541845649537595908508598980506796480581548204951129109382934229046616056360772619412599191059209691308981398806902144484627474320834596907431499285561089614706992267382813517919018698807585691754430473243421474831003202226995962681991330295877067359043269172186752757643434016752770861485024704730566693115464448205726091229910164199078584730047896729905886808216135425420975197457006487998045562081800453440405127462743738910413337848151543358805733913814612614943739718835364373563351390750118437166468006141554343977363403040138395835377593488463317369654599777454990329157785784255263117563302972483320944650210492415678563733980151395255059391332347662174413012430225280860422105295479324216202272612457363901507828529771186842459488027530465623666660452762533443899813231720086135516827562651974448869228427592291451905267187686489552388425724974953623092084566645396264184807482528857799592226200387634308159375575266454855621725883282817273241528462903333005857369486352547987988568252169357691499565344437010757883553764891012705792587087118021502095208120577629908484293815989121239358812325441148084348149625341670705840966181290450342060667057093568920759737688744798171532117317671566985172950657716774246899680369147296799838758039851530677427082605330847261546257039540064215043782541386860277663811491789317186251421772162234397480145926825096504040557208563230738062659626860231744465053736548392092248776862181913205224051305604998919653096211949374575280224053908718516555848721484821829316037029723379044985442845751378287318540925658110644090870254969665954624783067666914595305687700262271854452965279115275940530462489123937131029063049510357391344124587936795930374813330299927154383820774416502499117367155471653731979843049170895491901082695993247746469208029920624025501296447229999249233078743684659561256283944932709857961092047856103927129569010121046428020279713008300860726912390593463505873201423375653638337008545244642161676124517229401426926929989021484841044748638077504157602870123859028387653583808310226122805039768309198871829282109542996381459791943579117054026645249359670527941683773075906384137055882137075216016056152086666132120620465385234066693482846024775314922670142908340803982037031676560733221498515568094460474716422634628736307821521116361311176151458068877026452130288136014335438394969343881387734772576181525991465140857165514039576376821158934273971835365489843394075761376466315044727886070627885889610337441371377051783837419666933106798443094523809674660046936428572088752338787384820506615338800928179330553996049046740779780435330349145662501771174680662161729384117854342400210271082998287244981610201056542939964042369355924917166644031742144339220567004868716366632352772227490774156680227974195175834594532271119879693781647383579336202397515399688336480381206310255117666908765011903271004848836844635209926497379697244453311734223907167452276442785847227870955955141469990833257115005731051101832961047462141288012683027822828412089179350520102041481971042620936097222163885472501448152164260780190894895313651049758960114571659499742464872514265948132381932766116366358928387669219248091860450285894928856759761362807552714448408619586570799992060950279106075319483441204827429170688873958230849193490565627517527700966132455088776442870165451427148203302167208687949075360108745372800579710864025903097532083710014420049083469591553680126143059167255075229812301025409940431331644322880458296893823611660394753980069071549682985547224479069684965385057659634950406845424318260730540736542953682562361489121567398215609188817422762052045089377289107007855116065516629985079442906434136832380082476228423883379429112347390449234847099419426139171289575556365016442437381271142782675157178127532701013905188461089874925636637193143970260061551298263603089280160544704349029224480108131379000853631045899372680606037965689737266615208392806656148148033731583316518715044145418518627785758778219943965396816290122288854169891549928918056601745983987449599586985637031375499888713749139603643751912097484344898903482326324324541860261074605332331001368876874103753661237367771778079268990171085221939412068102065758701168353452803815003778195398806947700378901292544298588019449041789612365071425614074837611748232276945511062245938193745480776390231590357718860191828493944296172106729327698965245772773889796088447542438131445564645952772151959630194775762319580314144708839375177712337950323530995086703276239419074457239016404674019493238369286220527034098447716932276697764883939492918176800732727676191926096850550701915813574559596965332126695273310431005366784284566312154542187498693690018372851267832159985495417120315710493905830732313488388183187648813832664664132382369022571647139130647533745124435189002019257173403985762902750891030210035441293380846462771249570649219755138938092317698373656226086117125930090192025508917264112692092331451631312566220013925048346683604738723217296948738267508604648645933267627886165050989588638985998716880590572027106737946646376436433553179040099748971245005217335682044332820173728335427239107792879846517871539412170028847630980988462184360247469541195856453081970418842077560644390056430460921280676726549288073899984814770639882271699305334039753547200208755912780033115287954747213489988907441557323409137548662351341244729404926311849610863743294243328885958659720376097175281338968453091976354499333421697533720449798981986966184506535290555659161518531021120139871498304957321663329888012870748107908642519101544074518979521042765351464246981487640846834011834249133634412971097846246019654804776996657530830978444322119131403458951533276123294517828864054346399331672110552979611941509332487189766704607360794353128256198012541825739505666757255823519605349223934622062439541576696480907267269579693297377024906846193937991603299184072632804066280903667320594036351345677197581982242240505129798398505685712104582792202913714499561889186656316082168100531897315860625195232999548465560946317799316148650603161373958608387345621943207252063632145584992159684618147738111952167257408207707059159791783880449695780038003069394944682837507336569283469677879779045289738353623072852830058464192944933725685460787120796923362032314661538158623388237861674821495423710015515598517401437635119651232857915479102581858978421235901345777801614004713356727729351457858017332250600935362457591877692529330182151742165044571708099960577615108265887853096187263206640347231411436877735486544762873551495063145356052194954156178864976422144991753309330495374911606652932398213590652464373232421194826996016883043089403119077788363302380574929962174573478692291927353791164384672180662092879958380639451012105524097977841083465469242410028638388948659560999286036538445961079612476455554791704593679509989210941040994266150585088643668370981489829600422119469738779076947492837689644095653397397960081980300314306956544604921552823682370302496716482023668868215778044930237336351234846035920266518192130335743736333847853611710175623566246459350050210411415452307760248579400966579923251143972869343807383923147396503017748861965660341442882884104506052909197583351151118544489371344947411997838680773268258682005269989699039851526895877105394756358179941069195786050600038979416993520858436082542715925920606518338974802634632032998015121454010764343236540395828280178375165080078331386637467855305500431674391176714523072344352992631275982007816728233016532012049256301893153384494358385642191377113276987519825453488188353817643540188996190675500560332139184733098138759728668678801764809481354076787154835433516956294877375395953851411165769842397384275369206282607103979047414494777564498664044393205352626624229883645169773034886955311646478685458479197182058746772771658826494727157140523182506544795917956335105715977919436379643077811342380570147161035013682915278896690564256415297694356654197664740812486870406086969303453962924824705416002324502658827563680198128923440196330978433171513856889876167170592328024381051422535181760821586001802120880301941938019632876689665472852357762976153522411300377166721304623350126117585187950774169658317424815460013014832287263774029929984567352519817615612142572384136198208619776554098448068747557470247004983710511880638821945649141511031477924630025603398880926991296943875308229638549893100743701563098204980539810159301854070155166039276804838740207155029373696688409237243613135305144078335096601893957713582326622619809588518116697531104608716446632401120830078995232028586107987299807769309171227798391280428566157086665094538547450995439863779603123401326994848314083153231225438386203547620298073328459636436389394741105775737006560061899451397287686770186758056532621684351031344221721739570852806635660433486342596678035182653600268337205760583799472360572708477690682233922257681602517531089324541114438687978739786687156916778042900670691572851254533440919246928206513084955194363057912914236758725842674864944694289332107875979099109951071701755571029544048208040889653084606051633970268197717689688657793389946067158047970081746034214863347929498440561432085084303364019704097293274762290242531894611235841346356483447279729635455149341325570242477690589852271953899601544231989268177195008617669863633381248662181162122913122286724060441150640627685627911999189338595828701422932326410194058501465772758545523691257053638314421321117771892675257271029391856845731908735253499579384151296696145368316365415300535502818680683858149162620038749182745082298543821817853548028544157281580496412204207420776239933988170273928470869333114068174129273064025582402385158346071249547911216545940326903220385905507594677527004621811531853599656076658384453787569594074539210247580929862223284141817759477342611631908084360913052467457833538811107130645700954093298794745584050210968217815434567177118621333885635496416422192152439600558408978767303394117153464766950488618021785089716816718528684717265229164558256174429534641160940137457287603567283860389992289926214502290190029191433391769614297216815259482367025433221208441021264853951215587970747391223936394381247057689633337824012292990756169840391266141190816852208767117683673743539367007476935860845339745512897807986753203250870447824889652916262539662337953005640974859833525555825347770028407964614212095514796819868922469450810142184942240694966037875757624411322263321647687486726374277444238621370345403450314543493162018111662653879011236812032069011656715102977139314989230175945648701845096218503639764575503881259272212546661974830595317327181622992830840601645540770348478224827368003699287069655317772568103315494868274393732881295568998219254043194495627922743679785962251590610463221791213409599981669394977063382330740462579877687138868177774772100144383918761840491105764831741055001159216662089112221827105539789026880163000862984739057719264552668876616695631975428824441242202247143732668763961113068251590704409371276439912272823195324837515282664285770589783300612212079769322388403993845204341998012748679422555386027181392334924273510883731716433622786177574685779264990947508845000216790369819639271539125353874047489212023283398026753362682516025786669872561872767205093392046215994116113818384038955503676325150326623752523689641866137412950445661460518844325974082609075381642207142276417594878972345291058417141352537027837648402475813329193513580148243809347830816175458615638601787067235790232658832921614943057298694488207607059848983008262748818223866466615492802395212174009372084148473069642406594812437176396955614337904973658184336856168822001642785819447508853594408327315106809092323783229687984457488558657831389052457451663755133016974204426804525248179507366311917613740745799945483193082038828067401697013022283530842068970697445044984171077462596716567405493307684414544966430824784193947921136525975874114017288459821635399289356881229283518368947430722988855169842380671354286804264222524667179443070039641369323097715452036426863968863652137021448315218026512948491691497200111609640000915223858340460871452704911166979356892404915116316223606187158589396279267994046073568127612759145163601790236755128960465388019931016881078405100586073061344563613894612432708684764797354847899152261503070225142306942862080182004297153924372959830484071094022662618814993223093561032731068272115519623080779591333356158346097395683072179358603618972002274508006344829751808913550998387185082269642302529019830907834655521768459796423085773944600793665508791136836345436608794331192832911879453195857780593070406222208153629124147412092349729067487755559085056241762623772345084126279863296526318548405110109218624903462706270810079595309451981040451105677878334249984532627533662379477100614647030846238882949114897470971694024643134544675867698933684333909980813099170695309574922061226259007252810972023052684724133646219718234206489895245613997434045658145716882966303037637180401841322759827073775110933472599729120684167329329502261393236003572748098015043290725882689364417124303829331537536759667904772216537520412376689126407590943845463848055038304843690920517153718332945890358898392742429601762155673676143221189587555699251768502619851900561149705182188949472479848941661165395231106399819078793973119098030045745897614872734363055967801098478836865615347292028796650116224365960655392597131995114144868249503357442942778519500091616161845266170375951332609035201289135031423443821108337947255950196735795931577615566293135133327798165074056680707797383299577788306706892012221365346541284875723529430260396748697414171737210431901060235842015017812821382461234864911366757795707627781831969924197845839243486278483137387105844937800539521752657091867484346933769517906004450642292184789636590574771761721225421804058301771019348271668839886498154600991796808972517053004389891054262623168318291226051737070489254529462636615726262916894694661648456092268551227940259325746439029836921739112311582995407048403794551184715091341768519762647564680445441240238182208491895392241670798508564926508294234362422595127948976435218936916861007406386929407166222822656037704929046399600394379297338002830862968474686935931110141348681819650024661799553668913862588131395642452465650062878436048953719720502494907532648632613894968180026970571662078533948120286024690617667369452141304778478038482393485293095534344628543554440992152046167214543514986685937638434955838120042611952761692876439658749021840329835771262250095203177504371952473010139503975330186434196932540850182915390217374266993508572956589609296579297351150965581293875019163382437849977737566356319354636891771773776550784467072143232539786579901242377503645856052331668695317772598640743927003555970074615369948842411976096738052470665174406675506207992787607562954533001702737368088152183511003407735964131171037165214296693268246625724884535404256937112892128518995824444145632253542528111078206232602245279398849305428550082283997834376817808152485765012679179871300623873538933460694688627814221383296903814380432322859723807316610449042281039712504891062122000383563117717287214348038985893063350222202476170356011923580352444915889102518873484305119038706758207575969657980098058077513187862641698323796055152124618968898430555743372036200595923081908895991672790043832857460391445425176084333379698962665931592550592209700991442160707384088703054283681113310714168213357827528685967080088712670771083166111345207405382709792123812938053845148253308647644552667070756906892428132792191995003421764477551800793861967048333274180083822977825441954120023092515890752202551218480851434146910168854398938199212543379156217590451566551762354618666847376842917131621301872714864153557096941524027581403651531422855203616801626766037559986061635607500456408574611075116680409814195454878955457500306665918483481888568839211429884759273214565011162764427681562398654703715391234295444969609469300214127396898315789438913920359891879815166616730096643811974967256826893307585460280366727704929034787370977725546027000578113895822215022522302509857690857072205194281433995103366758551411411610793984431706279846203451981296444541674866213074577160164059490602903763779645564024504370912761253461878027689027063902003341095303324310299086941113500235021421990031879837598140615387589720368266838115105272485872703915800618353328354958605909598244163340209763149284972887409747341103151806624707396356791034590163759413177299855553234947312222384764713634462568310104586720769500046525721715506673738283469087289847743002251847825207278655730132379607667074068090662861556908430226890545448053529011449309853341786956942993464342879791864853513678578525904756833839500625766201736629289628467049232491853813622789513216999012596905633634143522020653115955713123594779258805656075838978491420228805929701110852708103835784976459532913315665607449158552647155249336474894563667873214305961410033759707731439176494974710078475179222926381488994993602280615892664565996155479408442215891578426429865280359155617388066252193511302001167681039155105715225614129052808727682879074438135198095903449341432939447283992139148440955490094474260358502396083665965377702765499420040601840200937736189770329343074675318960716178795632821857189346089580749789191316075039511464826697512111085992599628708356764060632514183628823930306238606375895720753643812903481425241094491299768784279964695181547166714787996243815551920054926707480730626835502047208436503496277472877483772416973851877581872423726590236070025098314637871515236119437024498931838880259311325840624251515854575694505509493916860645466557739716467722673316449245569643863506711354303348951277617994370846102245276205434615705321484804326680093624440771544950565723095029041208361380997175535396531395247249438444051540972620668781475201275601126767513882090130047152732902741104635682612203753176134774177979866971981437022349962753029216994515911554978560966794764797523116745286237736436030595361773538399673333359760532533089228527020893895213467641333141496524437294857805873405445775196053367244438005976352767869999431107334656019405068512431268726103017664314453008472736560531907205792265879820487426940018294319912734652856904409815406889625802236327428665145130725097116447894574229215657251384694428985496372684107915410276158839305211785773818098760780493773783231768404112974922619071856215887206814523886984166235984101432761428211433123176665758351309091785988578963553131877957915471066486503065927156342869309808791031243570677635188955502685659492761677979781153764815160861846141505824768172446843084853120348937348329105791661604194375209037610180492813415961015236058631129093669409066819614512082425405775446905993015010541125654196681527561253376689146478580896267785805653778025638857246370796930965008630507922638253131741735505427617302205065514508778702506176388623609661967680112650997237216183463115085893895355276209153002653556450387348760914083579102653243597303782673868245349324203522614659351502152420795712634321540325568190524679446334368372776818840003244621521854487405957415557161422487214396235819938585128781855520251400555598664550270937519585269136428575412185075113406493489104004980968111460880678727753827574735262763287362634229295339100936292190473512657420725773445470529004594739409806154867641319941036076346611077282036394335284991870055798175774224503324629319774373654972244779147233537173975236928013580125881877495225479099868367803460376125826082054663369902718143003187974517510730266498256066986326108480507052927728867882853113191419799228718847177759117443066605345816405450610945416761546222617813364951905257594885715841496846777041263101354438091642624033563452640848356351808449303207634463986347351127431851561037523691944388519673087372078226515011601114959143250897436195360417477397451851164986730851270652133012048675233592027213397748774206462791426393216076110349981230328502348548050008881170686057722809685847635983711822124995855719139565896518001356472821749559325492551705783884005332463249853627217750687643400068326063754511006641681763961554861965794521533858010810540972692198065220253090403164034774311474467274581580005929950167985913931712471449339709333389016409574976600670722891752704925396947551300295569567861828400013766025392536847394690031339640155937300502604362576477365153404684902244788644146848150184303162455473152314099707027942068869357634163389752131740475096383429672848875998923710641990760878996313152747745989948583124692042314690996266766537121899950155126137508501927352200014288779827962709393394723813358166057433070029667471895293872596787866075643512246732533057818583039435514785676213365911857232022974889449836304006047954898249551656685689470907617855789660202308842456439524518909857227359180820228811537334088025957843485707662565644026268788488196477345110764955721104224949543455752948893771120457352488328008766115475831215839480476810212408076738288390961068408475244214637462516600578305170418756039174129516620356313038259413236528534817505037359679736180454840394293464501377960032133485064026781220595704195727351502855934308743414304397915258236771502402681758764761976416048557607832771168448104308760087639067866804861628090047828112796253220577877633390424256393513841228086167044453910828868382822499579838561844610166733570870197395675763712149263816879957828621448741495851375562908995807287977850826402143415074203159165706071521062251340387956480406839432248410510978895821179030898352547949141374049839719820400886613665867052564642049148247043690016755399639974834407886105504790012037984044628145300565557107925031519886946441034883323374376731658949897237232868057251024314864966230496571864272829164394014957093319449998195285797414928651042959643642923771136620751554323666127923752731351927631128616747143215358570566078819765189420146169280542541056777184392919477580557933265435523480388004528306528058757243126931240851493786720957141067870594828616174779127772074722168290468165019105349983101353019112815875275806277157918544097423741784027216944226082665505989342234073534839514822143488886992583503175942918212209378137955684883508529589720885542199079114279411546990023725681542873429173428597017294801913927666312418050833318729259697304610906740415139030428321893433794614799548537563342434327891888310138344025060666600284646907949308556002217000549822323296612726557935168921328378111948794231098924304398101936882360796579630478600516320442614095999174078367300715589036265746322500948166621479885439059641543477832813186324886086043883153511404346543625111459000636081435357497070732040153067922391427855715464099872367141974912638166965578783740102433915082414420812499760502911916120730579394018280111206481828490305178352915010043310467773894966016861277141994637844867510933911522903721964269361115783155296495540634758066600034208250177013938994864788848776786549516465812746797463975774634152946116216036021319601440883211896902988262579772558012155513361198232542255436004395556794032106007756005369856335085579511864402140485948126503752317972756371661082279834807171918317695237221527998718970781176272422459849997261911056323435387136205513760696138251277566257100613823050589103870037812144410413587786259078487235262999110281300034296887241402987941775926688005221458697562008940177917971865842241741314603850098923155084687468247538501816078728860598188312018324158215619032129560158533314150220446083960546053010514944262899564548268248861622858125888616705578021795565077759375942103967537115214609823534424594436024823557905887635064313165753373028448587512957779352880291973107856410824761142030580737227059698498327227063073749801180774460644984251024039056654631079727762327912194670376436491441254677297634038296927900147038777683854457809386991435751897090226237019946158492181685833318641623929937989825241268361538435460134013758739925807594679588021525094814051162673587482961852754912746983226674618092083605420104857669888707836038645147528305640809787643219527580921290083454147714271793811099102325336806627315680971496326419385048339346057406693078962918147533538325026500616245834053979387123770393975357648813323646297408956720863067632084363300022241633427099500524545750286640333930405461195131464659078739549542575580127273244627786350758130794785094150356521419356889126745209868111458122573487207531778161876700239808220423316900090690414395102597505231948800498260655288444408316994062788846930199310846617297600055763891429627121418652188371589672635064405756909202173056369706478880139935226287911812350908039356737149158009080013194740097716973805368826611715574036722020582902268496354136953115009182311732423074066226700779089535598902849879335893866669015462333440374170043193451911564623224539056300858558468403622850925560733796342385048702694437842371760777638744390707723161184401026776201341286506487713467180946638022574635402100955473251434451065594780289693002987083421829979457908621669583696942110633743646063329667417876237750656236698704883263111189708514399761662350927126017889408369557742147787504911517698274653587253529764272974344941562732317442216611592025970571653997674021673557257873312284044299701109249113982096884093735870167177131771462908635731147800862732438077174975009777765032910678311153456786940744213170025423011981204565152984951890976394184539682923565233403514482414413547365553510274814226778596667002476658535386588778024610445874286500260908757163282285534284721259902404674141703160797439370649378784652741018619367084110274894060030184386981268992841651897147213698090672561843590964513265797703248750224787899504174934071536103733992905456943491530483814675435247370114527077772456073778570884396108479946620372616965485582856602651708101255034101124742996063253446841695608598028046870564336495167379345654012312940942268738730158942559104012126118573175989282728166245038367826519272445368706693018916771773474440289903530017957095847250424549547332895753393139493547340044376977663068906176884824697043848002761769599452357345172458213681820974161559821885162889650346942853068616131836009832374387647531914630159883775003225187751789240133055994300778611500502376302443951278185570848632672128426314464806257672590139595258639112862160607573341232909549136043529166376249460117671585294884613873034789081976937077629933522080740291577298593713788577634425936386280581193911772277993217069842458531643227485506836875908306619398757490077238981856486511999879361431797080630546566877663887335248031894188311206425906986841324965772937280140913865998916476188790003912281694901351575748438830108932654615590172253721219406233197592541415605244062087541419609626237603179524019523632695261577105968848182665322988722948404650115997927104698373797496334767029461935788795420752441078385721395299602617344671639379090452987853774989700360316552168622415353290144916030542514695364548825638751834131261667426405996519369817646087836408866542810548331008272947241991968173788724628672103546480043159253990314927844885460039915344647710572269196232925444768303544943168074916603304086806133611471061150428910794898178088731542746490987292860326299773688414032877370183991546813484433010993161202940849873223740352031980401516514485444261692036037781449340650120783048106263530515574878894597025613535558104329477516974083262322236207500285422216646236833404950983882335874507295094113090157295615578406944440808419796969002947642006835126117085823040726178467497201333311899626649817895899926123199268253253492381622381860386744329503578529507620294008136329144433313000146496844277705475744273567090459353217293414999929502801998698608536591393573047158802248722826429668677076193689159717814937797058208275523783021133158436158422782247413573921428216113455992798146453692486172485113902291999207827407145210810692355980426098000540536814446567012092514791637828867370940351385769707347222542329317447748737456423424652391299187211234403763286038518627437536101413711326907421751090120417859173639465848821910764376180411443285543645350436240222183177340496381325563647317281538644020584660127386002641483578765724515104004772766014452186724099856649721684749716587095601436385717690229035925061923518755382948946145094281778153796068981279625231432988247271476006509134745235169473017338415052113651640100128256549776859044019690883586307050281013339261875348202393200167882357120168519952509178655830690275164756863272319480756743423786689460447936206074586252649774909597850277275860885612020619535401090305341343307788185702248912583434120498113197641621570507178997655913857348950518574089432645034762681230640371344684629461907504696527873614104278747213239203952065451177819391429328141024226120641647986359254189674012557017885083648042336958370005543163543154973360226555644596912237023901117035712461698198399364546058681909734465407437421071114069638212868621953971270839299561860445529220313961896975126430865937037405412183773618151943387083740168422069166176821149306273807550166046401707212703736097226133332152212493331803733189843996820927809012078695820116486308122322995177906270327480060590668547320996479744334039744697355708448663453359339468995607781820901439883372518052836712841581882824029974873884416432354034204595257940763173913105069517979327120232192101644050489526942626400036107267969146725601679843933167814585605822740763962999493887968573738423568307938557252157551306821190710652716818967860993334145294882023090541533711348995555637886788924090930603850449645039771819771943799515700279301003730524188937509455739286417732762464643095302832037567063911237015716922460092602660233103555568512048650207975384536523253252119973865604580132365306527732818709949351042782915667653324536991576477602396890238707283504999626137474713078660051971253856291548404651890027742023503749303336232408166122315408844359387891336328669578965444229987334191347314527820709302031984405041278476393801094764324149682404225379433546085685824914562374201956317481199720889375342711430307968820858224149039730328363427388844509158947407741596744942213781608399757275465400815043087175757579054958148479597520875195546491868574962915085031123551647025997571718938971622189227702728912134784963919019828704462240865874875129893677299692047589332814339313533065950923597097520319484688981921948171021569132598721041728359055501271270944460976416288950722870751449484349487590277356951914101837403930603081987832968665708872549829129450678859894157480470401789566337852305053738014790268056920248762042170469082522258020263261431870996368729160059320919850203799856009581207597654038795139160410247953341942105189492253297362316321178796073886374874767484086567375443209874321206875869361603348228303418012166258995567934394167313744902075042246484103910663394429292182510308194440555343423456203255923633215942098773188862394690440164005976801309889702158586205648323786117202320373624866403350291963951358111736271008231352767234507334330570940463503740333612105129225873849861023877006585754400248960208792897646552687510383832117293494730796841230655729538377106886394594196698595835817506651593138040348622702507629799353257220422836976671922519060501792416475357014143418758133717736866306594982737673855940362626624226611781201217345326098326363965161946734412275234225671344639207482685381731388217257395869538475889128361611640013416859547757847437495298072645309851771739393473247244364312350363830301326474672771717987983475686035047915633893529161375191164945438364696988235954564178318794575119992881620363288744824677427115154493743009509094516440877946648319787791559254391439414975643558060887585183518361475944421503862160656196973736822429398128983416310341234303470182395138335448205041708678304796556115384491726021666603581159249222447026341244789789621411161936793236465708627966551152195587958239856186605766362497065209734537657251263532053238148976323545776334005809931705765901984988143962692280832877923089253839695481609561043776711244998573373531009771209549808696933105117598347135686196418902819355419917192350359552108965817134814385802816396988295074126567300718348061403215768067755154448465447576975057890305618843650667487295478157572665292280552525492606508316477438686028653541200758363137683401620542258003568896810858336342906505687442044243262669398676574388054004765371568332694901190097487166897076833909111426688225271248228566419265618167672658865354058978898300844848692934446028342705289928875749659372496622372115855038710515576509657630884164614924096923180638424981359948959662202601798434337875212497795225428239410538994269966923149144292339338155833850786912041876758665111963767220320854581795435204317781409622424316345567791998865995017288264759287494611749229605380762938226090770695011004913042259060375751607043615415932240765540779945556097133512417987939619479456656616981122494147248959157638543041822605311684015363198866816502176139691766520416262221737301299163370912579417882149991767106850552438065486743866526405481023946699042314862385833403289827710050404271154082924158557466686952028513141663213176073785953550229488930531492641120609814095088839700444330111213984587924652407719284181251767243502866749862438545722918590044196348338619827349686913861417621453430364462630910037081077093978161670625877084387804640721335559811078911869279116342696320026426624372893389885435921081234681031019359928219764403735343797854314916067515951506091540420030167525975531028819244848886104321791178653569243855716344589153334799894146554351344800628063744889498908888075249351949502530007891637528918304547230094121408278320536284902972849456226403714978257728797391287209720624713002317830883063858061604108050038576276353136202171174776321097278151088808050116241495496601815118363836378341458463523972112001393270159931731204288459963639812007982075785302149651527428232508217527070058173542428616130355639241661918024175696994635213288211501496827408165792246544738405314158579434609934907041841843162722709515022449016718775955907896556937351515807551200480053717618550538786001194374083297950887121304483047605791162616701991665876466542177342644906356815112632959105910210823116908058700324230443367811834318088662851104130019645135477811755424420452667643501207720748760271888264469898642639829585923031180808697071144138506009690799646800885050124789047796891389991730301814919453893394829326059935937427353030479052410979474881296801011156308846144562077266845206782220664641234478776732987102153913350733026184947474357935757782451706319733651544136481545466248578715652204563020683558276007790313349295276032737874296754393719682602039774177723077812982404736636175261659648600132545523086988516219767687430584079879801061693694480975976058934865006541985670409829985331415659609486959747638636943449015333996676511148306453525580552690140673998788620472404942361333841231906073781673449187859866002566365350921098373280970315435796893776686721700239675630703110767619975318116901133500964878738345572330595140436092116387894722084112374187926779621914183362798063205004136224037943532309305100581384761167459602807703695527233773718653236158096084846943083386680195308021280631678356772536152466100117326590765886533260187028972656354196785000278727366015081333081106411371123563962120752236418975567038811672529425662068178147063543538496829247738701293722678166529431709365542520599772584191128710725556430024903760012913632548980075928784104453851822721329651431032825295047469082760027155675685191225221001467324896534193232897503461034331143793023198712014253507276073657920636706491957501546644965298000763594910885155017513549511767089238630135080818557336673259940642810820587998126465370400769159326936539011081203287588990011535518761446659423152456459079071913265223658571908106389768498760278887310636590215658206065384524102209736750588554338250446544679670456243675509555215350598239577450913726586732844277519143649743169432747404059574235759842018432534248562937395024120234380431655234791800477801793074956596582249659950858925613927949859632833738083515406256624266468555649849984524390672290217444853908350621311827841512706265842642243789982676964740761794259846238926135481263638080729219396070638291702656382666740721046759000343053598050954261124154502271701300926038671598946968345588850433570261010151149367021962085216366461492587279195262053844377124989055877473316838305672735562292328055653851873084713791355585577256845557061042033720281851107118130054141016299455911825038436107354053721844747887948701460108205243114456159249431984098754977501589781952044989504868899840174618690109179464898830125609024027629702393378212310412793175720134793658054960642416424497392798402184186115179030651806601213067189634611092281755491941507690879331361525953090959286257302866741477689229669201482984945263961712473365380958776258101624321288432598004997945886791625069263575855395891925273356329356074461516220704567438484723090612800476945812723804254371009102808183526573897834605500532856260884651373495801555016680005429653036892673527495104244329839981558966363554276830811339790655463380788485154647562587994489127057884953302941358755876142634615703109783610019980072151553992179951602801086922936342436063605720583991516129417786283357292742422918763236359636543100720782165149057929403593471921294006990719631226703449446401138781662521998802946359688387515761966825440868877146817076987810503320056535358788522944848240806984911531102975966107642581635801904265467975622326971711481258007717142613501946067429844637105055144719923313223784138368408126200739261004786458810314917460381617265096977166437387719603794664280531423982321535305688785221608669256984323713895599716435768968463686534506399074080475353826993759816092192197310254403491547950770156853100526044070794500383356702303058490860441317329229683519058679552722824596481989163894835231422208827639303970080002971645640220290510644650752352202497042258724484180946524468680474410075641373384398239145048320740237495178186643072290293304239618191483558824120706984467070022324401496767739349258032512863625958193312056700564516496934706099387886290862365102682676180678136255944484992211499780576403689762656923008624590896437896769051761929472355427350512583817143259641092043988425933421595266847721550095784600140166503694433255368944454002866196317238788174687981212488195264885507456683686953983742358022462323246673818731833756079447876260074830552892599610169126896193468490312829238346958979656343375265656337908220037266805647698421750020848283004382572758725815826093028689738311889749307230939626158130030473979747004635208459625742008455799156936537150372245416529179481565657085724825514008065427995174404588456971633204296835004723734304538172509489042895838270245175106730936561482260263565964633943014697298882568748790302185705779401906931696116300806626811637151559373179133915820536485651323920469232729161727576328263385706438003996791138349920580901823178690662324134094130780215269001323729535381068543844453120829377629148347453161539695259647607497769592064834649836495603969776330521370453371346212564184600026262399521737533233023145471838132724374412380022301644980943037480690156670671020905542833532644712337235824610918683821385442496013599867323037598687854952853074488627779131388473800127201531264390183226301252217762818096204331486527215309096404679569024354427769235453386577257023590239753497418608204109756545276555004767948600063821194833369961575662138051583394340925698714266679063225660353578750805547034691792392082322901071270979376320639548992142894890484598245326330547884604916666790371743537202974282676340243268853111713094236081149377132087300559999104451041262244782921044088850832621560537441042787008470154477474621552365361541330975757247321295655467569246337592313790565189866805013612336081904273495237881003099096732592842493687154740868712127992705524281586220922370479840022294259919476226764737500340920451344632400098297984068823466684945112814771144088389551057168111288084283050756439991195042070243004525282281147244504181258330455562767988845805575066313263881617627762065728655098062335219293339198439129445004827155606507128593163046572214008025656109687469962983044280150571032666863631618386592182098376352375029417278624285150257586130803186883620404613261192417547281099240205788346023739926723847143816977453624205716456364306757373559677460833590797270448490849284444506067857758863746366535622436015550690007821601995449185831397784373875832351659115915546275431771974520234456387607939243524582417591924600742272329895038641405704533764804956787842743560231066223536018532640927244144003727595001949371876642524381720952234415462184700036545711458821929096067666731687519099723437057605425596228107857381655305112295622317404648216204670811704940542790099808022891003846852907912127122845190002533971387547668231690022063531930754572274263773247019606410696539373547766997111461833368595686337379869676262595449031147153981589591590465431076719965557002118429038552013801395658815270637437613047384708481620511240875229323473287040996422082912302662433941805498613689305692446201882686482368495765918133553378937024698196025211094403996350399525027004923732163142317530284656992878066649774419565452601693956858165696373346330919644642237275596803888137831079509050312519967247670374070335991978558249256968738524766073601544004604964348783359264393018172695078024413663883618435752797785899400854079353808216306511915057979393647984818284036731247297023191606445282988489986299434026709105665632699322063324759574707501351755309628829273179231181761523074221194941686583864405300532436500243671458483723791377344211237607119267500009417916540955769849142139414363884001470076739930941369687906827776774939589400660445625770636616766175303152731041945292274714775600219632697225257718578015027537248611625031866451607355295460750116575781321527232300481764157476318768275544484517133748796385282309561023812148214401350663640272030205624108783178221661305351931523553785579162358990627817274317638415551586726838226760244734526956493356252377862180687022191584088809986199305148116192657553268422722303398075438438130092303006015192796560435828266386056170364158443098493616402561241661522425347864224652345138090007223776076812926991478262775116216435848216763715661788483939229092818778298656266462320608708780623841965902860180971787866617768686935517060645363769829160581958335475254353375135848092526854459000573030892252494892580775596506421447041643245376381099381016111565609835364397767233540547394478931719314615619907255577724802318190035440099611942404083372471582792874931160356294118625698169996090638616287844732998779194117705776252474000254700895782223338402592751775279276978772159489758445318551036023104862704425740645249361148349841085346877900460292032738532171488994909566773149167112655706030806001855669663165285630086348515988787013664838914028841693821871180363897528326420369374246474696930074617746904280235675825419888415297884967505268114205525958733649519376048388026122572886982712900815653342518655750205400813373963872584763635371004641733962071669579019333852520604598875362970754893786618956542481317294473025133385831714936565711186839719746734127458012808620635064819186179319880441789891998469336622692868662600504762377654954775281015925161038975323738872719425191239025024753931252399552117434161111183056885797308183819288321448345990392762247189689407108124849061867397634415143639112578545241539608137457085406809623648537127374364131496813297313410919985518580833899203773569469281040429283496807562288867117869850466246716045875149322851800700063201929560132659723310895224582424429669897771391206433604118720433164105676210030670447025206485547772907279200419567961144826451974170382033707822169261210985736213770949510610131434724730688245963794463824640859498075402419332656463067464653793572124797433836087550684038899510470857531526775454212173152291813027439996778744073910154556380735755583604638063056784180928341637095120515148611443599684613784094958278080178185308175046243414459199916436099083536104218364786122595489787920290979676150457647708877153846324807961416684404021629162887874245016857138098952805925743641128883019347124506151289145993899581521399839284149910076456998317795166731352228353483754146396339248880467557815589216486854816050291548105243705987262834025287742769247170001871962893659886365208796308997208326621619375647958834947678875841270772508460211741037164160858591089264935352469193904236736346604705174412940746799121716539097547936124470933476670912250570778789117375146707594808296708872196131777892009493758412346858660786416762338835647972214218793450793208171591248422278955437440542627560047833134862705517376737685270431569876727143341825633517409314533637969361455465762324478313639703836366810189472996610855777364587294805197288722718577376051301884707784091597102234795607968779352605489983807336646636666430862728459861415978654692765746705436230407928091909068463912169640734419505689510162589993278899155647241828424522111935518372845257366309655328366833803221492511226245407673064395456659991283812202937886296455583899497427527350991603561058851294675856856293471002741353514089037356133604894842965408423958697250601016124555085972710240514916361752069429975514227121229381262952137401947323923024465365788665644671873925702694743612510230319451091783115478120718601610732523078767368585684257263092159710772245190083170192684867570627904184196237449067772064547736912569541937424380209874639426214082910800528048421145708253623260620483772662314546625825181831354813276407184444421890636711862924719802029375405259259722276926116097438219467258826618278694808575996385656084379843176981296135348521608511631021513873804823381259604020676896686271484142799765695792391080878769940400159439056846006871575577096536284374952373761171627860831626271980785955146673951415735634204045197218732007145332586042084793060149639865744694337806835585505232683826969410899316627224612145122821163893747376878431505287055686852472047397635627245121023180763649433825649069913193782740868621825094522244348447314959362948493253107597278455716453047970985870758903802655705323266735351619467759291976797047693837954592446990679971490301623718087975375624062059133496092176615912307072550309768690430352445913363091380920487396756304598274240662227587681830013794888339218754926702839846482228517224973646436093070218300590524114481580766579356167614752497596861440549751413720649863602746144364998577841379599614838431147501462334312840930656132586406762944885944561698652711907465462583389224104371637268937699742601307362703873624293967046741689961685292805805885985991415534881743858273957417835036649016042910939637953183583482580672505972687845048764579760331685290441565796509914353444592763271599784043421520198927923208251161025559397289229743910031055447820381843487909815577989633376157749453183437498887332688518150336659908210431393828665806960798515408188128040742382160532081305923464764658542218471414681035387641687010049640804356767064265794267030008130129775265707392804501287509093281100819406198448555029980168908147899531152681385606661406274883452308140860690020411362288966530165061219163857085680047576928943226907053670397213712085635175774362745742462320150655041471259345029563865242978536140379774783686333353366567092085384004253656042387112381743495537067887686964038402123353866461028991889471251614784646969056523159292644247175487032811686276101945332130453037589266876138742781097027355896711762580943462242729798021121158767735552210990526125327526980298072770937084813066044109704913300357962836346661168061185800945329043673906393315672952609059481373622638258695240454865974786055951613605395869623908136989166415188445291232893109905956256118136369895753705178789547389776254925953225934135944447899167075846155865935244246674965326880013309072962327299893016462793740326672332395455303344298458877097637519241254225441260859723622622398458435237079669642463634155862132448164885165131635556023375756924965565753136772505403073623977339381496481376608316575389313752530264141661157371308655534926457797150056376442304337667619762224902344041246529824953435101473144669474342190365585882987863141095715650512014555485372579176277672253860811772572519849259777529192766596418994225121690267818911071426417521331251838044221869232895914205034617425872755917109654640992600704114670875414956347011744583658946357269532783399408323997339355752633039404322788236454794757736555282107892463257446109853758395651612773702139900488585215255310536284474490433956130952859727659194442579527114186478048981916191764994941061539631963268576225672463241194109380589127056573932666677398847030071909534492676371083124999037043815617980640130022037637723115159065813993406097173613614622765031614271603106420295965869941179290193270913213535632846675966220812352814728950617087691769906615658824440679754008827526784489888014071229679554754459872078194530604614896957423349627233547323969680136308529848878723664873007758242641703148711831132234063466637543400253971236150036203755219199278248676478752497903105573195714693493071245577119468295518516204434468060999870735014588260976420431747238280981154261120072717710213769130254638646531143441367977367514129520913744312998743137246430506411128476500587674041779540931446741787840270350332262861257248262717159574921033702078177725828804210625892733688321132329135852670496236952732729794170715912438958148503270511746063566453773327188419984880558322716773352723916905238892010067363903297052423952244777193280437899927562000132668045418237923879772759097057025216045698999656317817491841233156464254232406154248760280942173936236891112198619945545529770524607259712521801513948750068581518798913136847339410942932411458319767808794684651631308609199672670697791830022786117031657504283565030289527591758254389653504137535721816999169784378296559374148504732696914048916367981486616350007170366967123070995096601844564500265560239413874478444713935321141148156714498034938514794872530045883359766338694569729282403460972067911161510518098629250459990697899005903130246044508828799268143838282478982971572787581825760121214571890756670449585878922470696293087061498582602833697760346668102429956334595393784998443829987483527100642334001300146259730104677990358053939070043763561286268864748700852280560740498235195083695148142229728506215071969930368693065913989832845171058309427772325929684597596555017747450806889614975256370884052705138057480589681288226317779726246570801324211931266107891676277402746634629978260672625145811509552098009459682615811357469784546191320504471081929944480605509201534571635038329791259285127059644752322492532939818355272896467968364882029265695556868382960706247357082808358057990633778150200365832437074414948440915915197806345928136009084708435552999265735540182498040573494387711540192023746327197469112132582411353223734388844111407650523050009670137980162062407309477925612814779325919204204455735912998252632842654902829547410244401542136557666779226832808289943575900277002431639346249794184386489041298249748847441918404374239895020019635284584165895012215845360821832478042505300627446167394108410518031461382985652468020158251096637349862988428618066708491217367971457410896827283302846983732452089251081561765236028586311409319192598535754019782858565381370223326557367302678229232859370422087784289159001990851374245910888599918838429452789007165988070337347355581907043218551284302192208256110319327278687386638273632862329613285700739035183449322891360833671042462437151993697449252680896221968138863055565317574995845717558861996819043675568097868830491244818639443505751519602390574962268510528546679870989912217039822605748177846129606195600261907450561777151945193972372581655155056546733666479493949864688227248674667346372276287067911862939233869941783263610367732212859105172079070622037129211720272583378888752131693233789886496858811742558748676715428081733184753763270452789155096010298914884319934541339933834275845289050907497421349543744959191446601248522134144984195106842922152342685873497759233382207372614751246782668118897814142403106347067143519037777047473697863569802197523265085816034505860968269798267916856443203027749801680743581688076749849628988698701491132629544974023056475274317591131737507631435094389650438614251544338606895719869236343642524144238295143834869471364421118768215297124101290151339416822493479855630634549067724969206870955441246825461140707436977753672731807954305556919856159561955939632575998440191346495876486890580077421536224154170395355880002758066112814423756775904751028191892032565814473688243744825722964150753098729788637677848019052365676040960724435231035033114782748518297487963975351072301347775104178551413738790560231866149884371241429419507433186076951436031958794696539958095015651922372085652678883895228245273332906175478913607982638171837102096044077015978840490496266469589369415203980983015909364339489100623525401742225908861422116447665728197047362478132174775173024635821548107200727443489670126439074969191841853618250221401476401305920588004274620182383859814710919573859691125174984107041121153927314128300372309486392108695387834197263806383961741809624763409324017836426778026999222238257802823045660937470474520148153054093665145946251161476163339843996551630196139776273399661146605752448429126666602955396498562914102080934737469203970269797035489728456700260549283624328581564548573272781743806855958252744702544006355819329306029080339096131371619710311622419194951650227758030704125943610780450238614738731999867993119626958472042029349566494173151950424708236831616798498151562586098847195534887313294506665275635387891466017818766675004186191025508187343473361956097063290673252667266257086679617912569963394483213627442957095420022244437589117302083825057729653587995536574297986470608563879750397886332014470905500033787935006593837841029148718690310313686799619798283310430438931351939934653130050521462096156139810192115262537047492189059803748486107424265868735378702494112032395421771276985707009356305134638947935111547288547561956183394392354449586513162198943450195651708194292814432507558914346427658818539568093061757768301393757755005555011668710273443406891805071963714306679558511285076911561778057868950036842210108243273355882919058418401785445581831683463353454802581627900244656577533077519355303609841121042398680508826428892377506091942007653990917983244997520713343512414248593727338675914875685051969443962691922768040128819666546783970033767772662977954528049547182087933289310540170009143024725249849765679060116562574959871936755631185656811338593727899833945515939612330968058039681069951651778681252331657862491298501007133828458860835781867548157929498941081234126794124229805748292394585441517932815368398843322209686479126561150590817391494321684510165426444689086887278292948996235802261810006477474278276520671017831187584056812466763353185313601551378906603760729892837640115055582271966029460545879580555972408664951240123157494416059454536278941937830584155518912817827679708162080408261831501546609580007061104781140304766315765145407310848064579212628671838942164314903383524117485732995295964410138398504373898585960204328459919191376642110477782371803823169563563150323116074669053580398171860065434410877062721402501977788743252962335287358729992834390949092563428629501439155595258415850290682331248228084467887510341454226967435087974323474360302806110501394960251100924797947896226612716190413766626153157301873379718427125616060421876309862784834017530030185396375486497370725370696540293157077312518487703679564381537946421517113468973483188120667369366360050938583651600214752676146992046264350797208874613391119171950437447323526637080208749250140397280271075561349559480296567417336643215287443422378993015695483399553421669300675381106434570637133975728549948478083942704948823594282760883270157536736436756281072507062730745999436015749676409874097988929286584346463175837728775363175870141573516051085840954844145858477811574082468029558132030498486225701212502759633924848064452485416591426431082093016814378465219702423393698050625973524277315366073059908882543131513367140477371623561967206024650455635047897851141052495558545717431359346175782521908972895783168142541157458233948141765842938817820364169983997248142054533413730136412850806214691393147292666976097677008434282028114051203287229089453869172271282890785053524579314506851560231511978840972920160464291567293660006376558114665660751267750199584105896835162181932566767222607296738259874468147887439946138198700758995104955188218724107992765799019397258683955248469826700592574942041327119149913587178007973297263418783949830252918079171807453745355032445780157215422038822123915773260909295316312766241040081534209093813571463842517191183650566024462706951315528589229184699284037132172866054337356429417354599236156477033077196071999988523470484217161122492303179019954182668285678257721928669872196928280090549539331685222176816822763949393228221335279153780735810060598614706987092460563944688049861258109518961540336798311540974887617658109844966905789081110329838544152466786574722300978637737992295544704962636253335085623966369833653668337209980390331459643222915233023925320458621474499877731705005776189702653334003990912621664296751089302229649548074099384165910750308706479018344232706224244879166381982136329028769148304140294441782057032284973916450197039126665007604303271724971701763226355773598826567446527290373637463751322842802816674908288939750053082751687432079655181758611755857577264823320314816625177846728766577449397852626267840286417244131812023424420065039637318252913487745044870857574250118311513645071884967387371574242238562888366567766381983986961244236020968536608591783096001092903150970627789514439671091744285083905540029916068623614246220917339930733129201858524009866716672295205517324206616128363256124449102293291879381794258382810963583808253345357910200757488130647491192137759221758424898133356498266623793714091760589066451720675052574310033319182709723779273470344237871280846899553591878510944456971285309589238764116454377351423162505186241401117483128154836449527749353856848003467620334371526965045456533856105831078986568707653152770143605024276314041369267417059266008239208580509991415838439014436746519792703380842560554402297765423975473862082520702869500403426267647363334340070197807678257953396271916401645311456624435978893606685839899299370357443572750505445538861572590460935562822150930226016344897001566038067593769540234387410995269446090506074001638438185854544464883853642964242793220928880556831349781790498674390445476192513024731306570523811531252909648069901991555975316222759168562088252347493372120274463737717253159731270220723107194137150975325933091091681010997539378384747656533865713956712255766280830814959365477588084946403095344428822783356570005301039805468930527090839764854873171564521036383739220238222505336416373878108897190825062542609320415453455469043669841341314778498148488477884062008269765883354589315123218024492492643899054151472538223416696670199074659919871363881333183350694931281740622913044726283204724214591547619253175858080029906871238464127452740061765699041162557654656231487519919393613624117769498097584260346094415619325991303240684799541356965950613429534769040700807116693473825719230787594441145773712102150048293554016651796767254269358474154640345847449126951811165123697816588060876625482794519559589605549568426306219696270069044064566893192045576958992394577308358705698063846090132344312698425400970901973849092169956976382031558454978259926563658549114395157886007540399589728661080151182552966734625513981815444175136205157366884815488662484207384074357064114097605368976438859562138460681347589638634095976313136478851315995108649347950260369627129801670699032533559139615708605191565558478732355797893564378026524890606209999842516187735092633654539831384593402939329592786974430373081629585544577433046619206443364104686730010139997506742645931148523219730140361739872372043511403879327199693282906762393937855328039248755250795897805473061637921711636072518115738327355369139967315978412650758765245926459136410865069418444993718594154322319153770619261589587027617715211492715420592432196147067343344470678464523675844302166188648684030132240301520712046369458055271030747540136054476417383357534340094821278280520102111911444239500135227686750241787584097568806593390649266504797858637955588389526123799429104219368912492144653438759816198067930210982206938136020480780443155359239941053190744336389189420910243028056132150315472997042944796318774043246834413059089808944590743127434359532915944290655852707947701186062141833715052249956176391995509585912437203296657364875079094718256615520116741780660328399608073247349282172597865788421173463971257902734179062531008162428020419984824865659923233613651571051333632717570735643592596464806756902482498065133790080327584734635334602286812201434382871009320653460457781146454011451550147350555313088387299566830076766899631932713015739126079339447823966170865910906689461726055614758089554166921716672697697136263352073504162970094148390475588994940070758438240963295139999609443142302199947855929305544525733626944288863497142048660519433669881822692642999562619481284143583124580860484981127064611040036333774388626587912837315106031315105007646475697155757073843413733751915589240780637328448043234603951018414535739338079893490626737026815794600068492927791185683996781661776150329300760595033858110658262423440253456202540871873869640689711182235920465804005859691659990283376106248890604621670360358346992786634076853453332222600564922288237864750721038313302752464515885784852849790333723704657807364349794899155340152974910093704913621498316922868743100240888853935247680432172215112902949062636663928096813582560459592343986067021539636238600500338966077735402202816209618918953860372910276370214011916836673818062673452340329442708155808106246897121516628321134656139000695707265256312820743438584320408500388680553868364133815853151150997109519354103216491706195250950043272912734030366520437069748198665450330741279444061753251438832948600254194867912696124534214737750416246785058418197163151650250235496349046348588369444459029746066283509420370241646236594394372760932701840938338944211707118659972361566245033448336161994846783732010595207625782965985576093951417126889241144286381001445664776301058268933391716561698418236016015757925155310162976752061203439983236826811420104965910472583292653978091996728445181281244765484483307105784926857795440784553140636732488662250659182631119404250395191343316280906852465957477852730604186612121631060350083216639356287478580629845122312689805148856926811021994736376620844411331965470225487330598808115304050953162544969464947553002581218764034338129483905409053664202594705438865082017356247365577282780493244690904993281548339004756794603329085069954357366921851393878804718521523474059244181978651101919349975309278897012748216301429600062785268659239828565693724360108003619861953641384434052574002527599309318771709769663763151972517240107351818567702538486507116726210418381315024361872268935257296151839713618039334596281082001352675734441273581586358373758586227386029981010148022055151672756243227783635915986475063957463974153492169750403480867429247707916271703146709460896450432130786442174771813423043421585970681657193128354824085913605786128567348861824214100622548921777672703100265591146045848434437500486368580272052211222232998821165418319559048112581687824171121832416229667281742312117579276252415046935074483960517906504236290094081499852423893024344042159652215368171423899711007822347076416403198782999708192207647358098115138323145019440191684607369266390438761077430817427325834914564554643436531301314649639001494533364970966317163220251897438348280630665195368736103533253132946828278530505880940842310845908194458461009667889685718138446829970773055021752148651412736144605833943110573828850918979976465060824848786993349184570920980411505876326700946428385930180158808799913951191049466318107706338894963128448215631923804785044065450500953457285778357455630405109974032149931303434610931248353740034850356746905938461874335784676786675382604172176182658938550274957180386104051905948920377205124769821019113055068715257493022508029065302352483948214660809164745720776063746280784847561441165055837407313238974492129261117993615995379973810181120048962445907455795789438167252209562658028660620631575255608742829431724849654900207149172305374402846442648371739644444628277754155882977326348382767105587017400916696165485641845329999890077630853283990923785469557049004069646347227254639512318513474124331569638075229192922427442458300580123892711917316271215348328604248022272874178329465313093446387266718147947200916834788266141913757812756536702896676877156353999327455561334681306567907679811483250123198388186562922787289552643267287701500068222593172643589102743303951808804651935575196114554080714483709246107947881143596062133300584307686106699487301288194655988060910812369219691128048155411971962439303359877229041575911196687495511879490735210119963455192802430963880717724971019082685031309137513048902373189763046472177372979327385388843330971789729626206827057989898343348888383504860035791326565777694948313775189026379554201056520189361760593871611027689346609594687712146167281716582293897306551689341791767810247815682701627562712114645564801372059954759261832225728802419938409965790603840001268975261500494510514996104934721467393294932551538113283656373998324482709356031673583942868177599591269995797734296277551136286824915545433349015016218382648544293383212432556267032437077017587848062890927256342118769330754907717184978541326602599854518372971138211333247363649308629730151902530366445030038750223443129133178624168674486624073547383293595764211819344136605677443653065119406811733566858832206560561799450502955500034301479086807210319462212245379952983525638368928792675470509384345692500209010344315638563810494227789743303976592020174367961746430979493515617767508450164678408895761393195187605238135114942599913741185283968218583901962163364252047476915291000612090990559349297897087810266393737141137696152201717200739343907113801909917216392210464767262440802309860490005943910670996371165841981431991836509051432174673100568098779887990412852412693394913473046972466801263069662581048939949600828600452752804673961981909756835899836866552428487687924330042363117504959600462198990308148767447372638238955206441616986118907217206132342642595899572739768671596936138840214856404740142576835430515274706032033549616547118669875783844309748634460192958483127313793275474541355314508749838789576334568715333725294647015335552591195579445091899984558040390756259694972939273926617857753335055479154989189145543365084995260209892771342960348075745714181871355117417771416614593100046247019843172957509821726624623181494715020106443768272621179887779600624146291983779447533030097014248918061821666017445257624616928314971635224852304332430264307811775843285506100109694927461475255240305931630080665224759001930587313914873562698777399864482903919399597367473372747974218740792429905648697344988260397231794342245534626287490697647232885305985216395139882564009894199486607853412878296084440435768065898876387263535657506002340746524354832401655831501623752085978759064732660874234651838932162768734968524689919302161221132740912608442060855343336086268400122940651590579906931442073943820118781324173089643510500214344001593889590182322716861903217005011701388539245209483777925981399017347360962239057096013356313790268986802758769413012378897230225897478592794977405330375031349520142882243443733894683715206389372568778053630488977207349115003386685355389707997911131293447493488550693277008420718777535130545850314840467558932085212609919496707342923016130802219554355118975536451236560936135691087315389771740833839538540345571883465343915457673241456608233235365032346447661630268144655004321861609904920935192765165649696121570712080633073252489550710399183284757219423816596109660853141832055639996303323788245912932219490737110449666710251496031324597841393721164095081493234550491699787108099718714805171747066170215815772331525761531581600185547119442148549622617996698422903751818671277764356996287291245039990930849462439883198818601952526230198482787775120846731631385301968225044929524860697544955230055277262133495591753922640775529330061759085210065736487140498529784341998625752310033552811462036940530538936984962977812423870458096269790296420941530059350415613067211933486138432279672196260282557689968447128648355034387228714933610965320889361038154870488144960320329037250139176463431248172416243646388471476529018761297713379150320057572116857813097107423781854595448267800888812973850590126332819082702409499272792157123173588102695770465259344385091074779403619713007366602718289198357063032821679499951890807448166591526947994895016362781257740801742990849798684530533512324761331487526746093436770316576132561891019249434191709650562650535839775439291475598105432337447830101597373594622654595068462743761907548902308049812817037941252049918264905640521933639330937710448109288676102340105565143758700186856336250465680600067754124644412152650624330556979952833801352234231510008565513947341913700801584307876614281625287379521496693389694532089722307383837393808421281027806921877960499167370359329804073666758250447285446475485556728138905621422427057286738481688448348133151248568023925845728674567482201417020128324893781245350736003679608938970910132014824312484633752889546028976255379260760829901429611294243502407206694060890111090816652432362264655011601272482623878917638653312712375638962407719536740446450449329611088066781098715971517708221234579865291510140544278853983255914666442748243330891766853299358998202233304717560544008046795928930068833308649975235149241899366865956385511845167878493869869254507646791130138099977342244808963736130032442529924172521905750360922072204347176603811867253420658626851779260892067589985495919085213055333181066503914705804316747373354378956471790096690013546405856674692216791504105513861409089296579129148858757455626369744224456668378108970138186624932223516469313403332580887678675125962007630555178468766487946130249233586970462270296676651317613061161449589432110830560447764145344854938951145223289360570704366440799803419493722404054760427699303054475310290030359894811857211064946236301558724438111239389751603296110324251627201834812422303704976122002668277005778907719139060128501793471669814624252091312028187219927904415431350095929558380035684341589529408755829340257048332742736001112606863907450279776032450650653526446218213370018513416273111404832381760571565427485193174042323848438653250477735994283190514872225689870249016948550704824675591985026510605357438191844151648430911756202822392765913951912172935305964323957715837970706114971978522073381779057039654583661197605825489719400588338322647153248944218595049803291669649599554679538242143627171947873775792608346167950580005411077894891018013358806459454218509065888355787596254151668717244069315411878343436066926608871317559080547619913464591443696620517173444078765546939258467105510426745457406656134355655139758948044353318527945126727028421336205900955825150856509448584159092725220582628755808909351350270066676925762513918838436840239252049049151427409927837814236916548252744500230037030864644361270216383102981716586487975364307007297943187452827025779267169746720734646224481274819136895407068142200532483727960476304019398996821025372718092546589400056126046922322853439467661301356243508123403343961341349032208117142060042525565874867321506745620179114141526154212370551801996848664901184996549161062657842752454043710481980065340856153984246092679713357659669671832608034921421253242719190376107488697507958660951005617257295115986581584947524082999940606324980986586290608403539516172093912511505905103617238527978850134189598523070456997384563730580604542564758615951652069854831383199570167063322912841607133428501924046051226099455593588949313365018740161849995795405655489811889691608286069458142571258661579316724816703681656703514196788642044281277917191292238741476765675664670440391267787978683906763667610846553790817974158668724215297998930452489491139779914527632832652687445839275903544456742249879396405866437874767706697524274066459207853072384057303183638138911743147174614415726753917366029613831263471438361482037733468929072698226402307735307245077801480892699275893827907328121274702482372773364509263699926768299228462883908481122873588582734580214138383509412797348670258288529567730760272180014606684460420780018547460420020865533192341933634245259590370926102357393355673832416106607023366512392204496403266215326459729046406821543068736498462450663798227686777637146859763337326688527362705407016276832140130463753162428628946959119275131766683533139153558016921782034624761187501315762758168606957234685208828367607620722571297453753164916624414585991785526813496613385118036470566898397585039210217959904530079152954895824136586809332221887418570448812837637999071817223438132077377014715477006353768382077654396218431966859787664069242838515520560556706891750846566182416685622359174352687872408870554326560865082731129111975702033795980158852478076029490701340226616805519412179886447525262570831447284768854280522339620601306927214372622341548435595028545207080505200962454759532328029444279391166345412218042574820732751611642755394372962730814103965696373918781603527011143696286751806057525136166515080870774956242884899350755833918392284385904684178348154681243025489640839669818507124174032058647429911427179323538105059259209691105700166471666590791611357290936826956374424632655441393171872064596099779845784383338831964652107136961664381801729020146726653816925063381754431722853333578891514773708699343842193672300644710483028087462361165229257838154705086944823375826892797565813473500208192877944354077183082992834703751074151585659870382740538798204838076167623624628515063302804581669041326110266235854898375978390338086764189125286932813720401118369953705969622837988466656809532361482766675911092908098004298770020310851684777283041253848562105399567355670318255275386252854603295204946861381346106776338430870940525645751773266293761701124915611007452141555394033889152272224257527363146183045200084943431687347496859561937920789691380252434541122861944053621860382033977371135556757757132074389750238970710899844031331101438896822371958420347901795579353339509310838422808714626250740918659631302237955356610611644090484843276450681577983770926984906060328533933547912526034246505873190530726221567072720330225121890544733433908887357688796220215573016261805626223239365504525339881066484739324158882847575640474158800867440202316893227661472108009168535275465237592014214972967756543798531888359010589236693457074557941823214558263398375707785702959662764208669970925498635229490448238120501285824050425689758115510283847055001975516816420931100892823294325747543214922766918189139710397136588677230157636252088930578736824220129012797268772519942056506491257452701830481975139853128572255935374336257334067713693512619736609832250953172349029557962597975429238603454817387457519854116477677606260795447016278754016760456164843221438168459313723769155440488828489843011024643106127785319148342383570070012898364686895446560402501212124259041562632757858525907835883596610137030013298617720181993705754239361245426295780624602859764964196340540381749281220585078117286578273907888560422047825848966317510470179643998740075749269405390901248882943830829086666662734295639054312997326729464694914228560298307853777613536784949357557054102378011324465430037719309860939626629541333693627078162535741252825908277809606786807933693558367210702509835596723008713563862069579628271174205768899011503058405251878467446417552280870315145453649153009907605078992412880032417980300179244353372952219883100779679836180078070005787590857750639092668930584435363811336383511113581551456531192305453391326536373223739701244817713327676158379468955532025652249991428895099677530163617724123850913551986114816734269088540707325547937692014749116150259964966072055254178513053960080963569784335006855647858429866760285086775497921169534318901915620606198882303603404110048492136577048620046343607968913584846688256759073003601198840772834567451278997172098662725094251485224688357662238290774031783149369068031258584903119632798998607082356269376773479528239462665068313034783478987585743910842515188276469549575886918683732676547447259160005091086875089246216602545455718301070256521905144025140510773841836236230060726889151643876111501286686143101863351026035012183113568147712031640836793630287150954841104566976720146178644520109809078591951523715191419202182516084108726319915030311307754398412503725097661508863650050083763488241940802977520809295127145053971242686521566063827089677557041863543107766903804592037407029776408133270385396237606660025307506299972818478638609416597313130437366960286703076207588964003716209491426453628937377582840567620357694793122092300913517302919728645212245717692955962220014563616580055505098053471090755699021147956848594319732611958942747545131176428471216565096393543914118966888270178475168856528719972358535510344503995616688150131516111229862587787426788269083402430022989720195621510897555226798372863177777103872541577161180507435276418615326783358726635951792669871613577753434160901289763480253321752450189970766066249912480186105418218922073549516689981743267065859569466702017558763076810553266300010011658159249498392155328837011389360967854332353175512374636438325986903693703057107592826134577398766932147909554796326272561130981730428158297743380661823178815937331707830383076405378681896453205297804624086793267289251331927406204952442250779070648249816947441052171847968491450703930633013025735030519863865704633342759550898568932318811317429725343331736280942144324451225582293543928651199009164027098043837670406631758842498593524453482021453246451550874511076989481809496875829446292023871883536445695316396135271044265082996873573941089375689278326888078326212796583480258007484147267988104148787229361108903707329098910488644751698146814670201605813870777164265201924335377337101777195602061161082428078877770973266486598595800833296730074084687711033205879674415655177306460512641279264344263410074306774468535909377193393815091318953153037832896324331792085071644647462554987452554697134111050950551951700395264566952800462300364908957139080952024226230071615773757268700127619251623903161138359362944565372632929770270077692394281487093647001041049152322713972853911197792269054304685490786154943753826388519732365427626728138152700903707507429659930380231906812148253033704444557680423527853348604500090771905839114981552799991781349980381944637631264700841150636764679784512937886316787136265328727540755809654312306130074377422458888328243590781513228209772020501018614625067458457591164238702211632973337785821890696402523303826261394557061272887238355632207771297050253484407366960832092743682800048942096412170985385873200331206118421706722701329182390816978845169333339412052892204235172830239869595278320166298498420750368257009356860882723173416354351596227097274208892673172731998108123404996626782868832512695703873778297468667992410260249213858584022961070069326847344027686329427458077557043656518991561253360382937484823749571199919706788946440414820602672683050312619996678513711186620900417478882121215551121471514036899696497299824333400880491502792152881691541279232097025894621757533256677324137240244842456106781104516516789668648889531767201174597230801327515009427526549649457473895671743819600737338653663655468107758530732801463797174815055716832963411936984249232243702754561745598257197111142237499675729900247859598689774425639644264677331613476095673840078141446460998762501421464396057571277248942317143484458552374411062419519241318743344635282562269426344433027543535817622997202101807468194793306478263025422345963817969689491641662051933144324604702361556954508812625402396800700164735680942543542600176675277864630539751655149366488644494241774318023717815391699948045004785974219127000890936521229683357826643399658691845530068832490296822670624289754127385637130230606465772717094791463448282211461052213347903060253946499862609285748049415134466608608794139127676068336489166372284513100826745814640162418528567291729597275900541642882622440740419377607066285525066347388460145820226042234116639528712491985597409805264077381231061243583030586302752419248909426661140943575486175349823505956155230381158137815215301729445430356836835987393998701349368735127114055411532843226726997733213147644769374610859713403310194240086560096781608174572032119011152115523345183219478908473373741783885699661645130386769218626865016948597585545703141075979194509625567664657670447476176964016074827353430006016466892536899749575826960267417487414249046972693640695428376775133034106826148014727977494947472848523483499946070624166080001058718659231494603317323585045537976139743659183901218207845420250264677825687479317842924035308015567944348884307799455836813172286996179416603725911187681993555226052248200869125414956929633481611131067665928728012049250496621808443468786277480709668584077914215775644995662799491152380791698235739576264662238703285024071404562867374360521589632134725260755876274069484260656832987795822839771100535980169451799663787767386422170103618134768662946836892085019555746318934398089362789720085533606869834733266621972004422670342878796630943710197804247383687880105603967536529194819181375102445922907924114509466746466247584144919624107130119594823873195604398105675257630901434925170099599399928225431271688924766807425206569796055149572581829802348663052597290216974781746176344175215642125801736765843618269742830449746996031459005533112738550849835769123553900148598113906179120036858205411423191152730452413905035044778969130821287413360892767330537767883816724870760373254712708395749974372288815025839963338250046504259344068631716491541336540118237764057726632663468299518069838826858122867149028969409803716038987682016165471559446920475813969196687930660562181760808705497905611101793955710727848061913359154441477678234640812543607171845902396869129286504233922266391626896628808349457664733956091677687512224308330898648657305396634188619516845612825422674892929849906087245422555196352886684477149872233748515922678321325662379875873347394742709008857750485595607020030854686453919788772685641354291575178411216956617564945653838319542120757599574566387205495777780104938356668764861776141073670389379006843943539313292074488760145103708983780199906409195272188227042354028012537488226845803447463839426756324172679071772800410502359125034797337331635788466767928027840806949032489692862019406201224225615930475588684499466941703537616522257375015283163721565380617238155204852510067533973236012070192427128040059508730961674701523344265378177549539412560608972987758559955370621111274382608967207037427220878952451128382717234150410407552508897911201011256900261638450386452446581498952352477227681768482568615010484551852911077066776158085765183765712975389056717049849668858711195871029365154453484958427396302341264834427004378256048763292275896207848343562509830180598022616486186658751536254683749376896391872953442053281912656767027324972652805698530491201268080365911032853894532950636362052204999553290959587309686019812054649134089176466064274128810368270629636409357509377301999202558889892511419365936082609945873521591936098715407024319590663146449429725985665951566294975477233544864855050721417292782020696279287010162979499438994000492054766846729362833814551186208419790066351538240397293312205861060942262519966790805107460466655003086374041668577136892915886979770504321859860415277719050795661091876299987982820386384676130033599698756368365407991820592199480894478571674032474531819355297855252863104002292774489492211292314447910275042861348983186131727781949765323973101137620751790357980778613184104135809305304834330909701006478759117551004114048600267862487360501580688368260395880310079577046581649592535429363399638662095726107659882188211063070774977842812555781194353927246418145369660071461177435844682822725097533462775976835287321347656102134600617186246285868708436716429568589955495826777220986323281992655113918686084383811126866761668433581867326351904508239092836790078695438904262316793146099556099533739961757465197667644945592943839301624149678349634961163541289548518029110215010691330956727849336322663983086914306142966325665341612989595266328977436024460223130646110838486270596832790790495623003671067941765646287311360383868521498727717874619700452716364033300296018616991312416185268365572868851526413298036179721433819333051075735691705679742979852556263712616993326321377214195186581019164455128152282311232444196335640473655670319850339832372323685759723939744735740298175411139744937213258740769331666918607399818170475884459421428812137342015238875865561661511653444804355085109228896525848016325260104565164989517688853868184406882506208452549821858312769848451171806044074354552544078719602768276116887581628791919746501034354126202599172056422673013155906553315590050740614556869831913226308584024045699006322645220785167238288025986132473140612326838336063648972613224820480011059936926092726403699220205420734011990162590699476721931375618977850472339340443694789831984650800361265418574057440085645054460152208070426275535152094563480075813577509396101165258690616979352169093182523852832718509121464340089461301624458809028506982266972010797929463841809548141034389261620519285433091760033825669443124829065133021086120223903858646467080457841335404266060652710374642492036592282687533607949921066556078208308155280319798860121567630851306481274933500539185356497620371725646367584678538575637314676603251948840866182373173309247058056935672951014377471812725684411720221728524938898676418750451561988310973237549035917854632119224989762236105733213583550917113319215761620512972184215350514581336796224101159993942784891694985376821194841737685855838678774947887362327123158479266044606052876072997810538578963554445630834034377579121428133719777015214764591540364870056274422265674244337082074906468799971881923233314752460364634715277972990803250893499988203701359442400359556895240597156282215887091384596191409696540219519783969805706648319911891024101665580437236757034089768020810406005514678182604060081175144021415747086877108682233058472508200598496607558989161210875870535679143442656686126747213833959134010679367909518817310469986424562390220638740339086219979891727223164305109632322703288492116665530343593854229473554058097675064494722571528501396569375262517888120679897834507272945722694614555469824815134940037033795301169920097986969115510246750484001497104493072886904683404625190807037871242380944595716359592185815860335795187758343414882188964815306582574608853742710903130233078314278557442138563682527245217381289841686138882415050249719711153720236508186518723033462856346977680400337178187318463709850981530285838771330782490917761047327329341158104167625003514318536485849253015885856017801532515070557757894876407393417218648196420470182404057625519665384366943205330352636555582176930770667339348727912457121435548675482838862884910966973401079153646066775209550000004860250260855239395400453170716623108663537148807588020091913667407212855468756632268783222641019061628661148614831657641600197273129414086516815646583877235386682078119646219466138462992022981752797248267126168305112211244122013787336628518906467889736242032176372570092443913174352029829169763919516953232235583532653856938639433330431264007306485739711082369758997217813911650494665151742102809751028006644762165132326566279003476030612076525841831418465703722509031433731400382186483233888301237584917262924135313945543360971184647479708233639094637340546205490905352667426399396454252443251717918261240351398751539966752380163499772802820757393129500811911775834838487313500845722302606650248279037947053033159837969997522795040656869486875709546142949066594723163359797374777819795028332199236045251187378370850272672708913548603745773447076956492720253572188287698725530166082827692203956691901530886151062858277364687311090255510182443572082548481928248155117880101442484652682637243190954301372282004743595807250803461556496244221544387978064210107314463372250583293326041963035214303270529731705468166237864305249502082324357021401001093249003942353950225225433890805993853807633163921733247333108414398979524858238610064422832193210883975145761472067421652836413793216290156393063108277431676515611892067573417524339576004220690505196369214242473020912550238289962846821751604165110049264763489200453176544092864936990547466570385880549524314528129692279589781341794408379232189921100679719894009547250163855570492841604810319153139653265084591528486457068579709909090337265726162038246745785686692481312585140187158350121247964641683709434692257256158706886667163865093936522824886970914953898163257753403915823349315333272266181371651190996746762065033722608033526502929465143730615805887697464842959776763153540975812916506647476344921866562805230409740818852052940625108564109496288651241574264111197770338563638215494308883204286185318134734519979274830539203342663987042878794374063557823373602467344101122688393635505672975097871953146766540426910391176787570416374914710414801291894930406430613145078319025343024650303195129774917744252237198042614078446085029540883521029837392379515337967923913116024428181765955344431912011795839669743347629498395035383534324235629244536526868521282487270900506269402083793184717334807509626585760037337337964486191914706522572315501907987138180709106077851992071977227229205135952451088104014245809185199772524872837892430964321002685966626188169751206138231785976069419382582865703582595334451352956754543467859460192467290104246904557408135546657539322175352082446545210853731406807871752907752015452686759552250312599240101099146519264161064007494048032830511107326681577489351213686637487800890294307536371422029592975340237597788732713637561699102887067270391656088247028329977594013270720300961743370922777461467960043610899586268274551480600212197575554196599319314881536544790169860860173237395723131033717966240677310959897348527606431568049508212294517105742222823335450947056280369875325228695424232463572321486409055464201567958360709372016777355863626137652810602333178976390840397777862543434148664508310437707159183055474385589066356464997153050649873997271623218093302805580350601579278815671988339374421860636971881384700248948973320915427360701775801448818220357333330969600714415626682214561721193897587481208815125420264897638969272696921107986988235604787710969249690147103013322177815142805690074331929966023083211120457370991804719174513729706642874255295772982897995683874187422002115368122917754702861376751088043146130950835646286080946022063317697211772907152706471733779659390081463637231709745274203956313693024741785729731580905401049219291347623434759162270076258623271683387261438567809172784219042524989144433404090561450001274373194606634530251570247901112855766347057139525440175167164460993188329167474770959606244667183774376493102788801866572276135857792477441727803795106253965194334295681759534457099615650603824180067312623602443256926514924621654892812545555739695544005060269362186014205372122317957194150965086556250516486670142939579194855879577382021763119351747769664027255943776474441002526441776137665493721906766904768556832387415706278635828694337021020318621830009527629703023601914653512967898779772880280981855343720943202776689855992339294575736675847451849419959859682500217060896965963728121462992945873911995455398363351191100851522808434297281809869378391027471047606755107342032346851199336404558734454324461121885315929905626710905826784056816611775625172397559896658085891224476298205264979608783561350778836164963175412612329424382562050305202558329338252435504296793720741873116624207922397523332855454650003781302833587837937401400647998375797418796421816403964285589838525025210238573638207528499886630859337741832212170567516000095456455908630867201089524235415481245806209820176721272918405805667575311471560693856056820250029372394958216958207158095491379041248532885216289198608072208463267301447573523891382416050460978970522959649914028832742727659082317582364824393336446412438410670986765193622218752160189684376671403569531141393085590632486989481130805341707208990591079886010211696764610012624270637482238079154538645273082827072014912402839440537463065988131952375475979901912502546867893850537322900189209607653887746014079862444919408748284542667721329532312641577916439351118078500109365114814115811825380721321744126690623870914539483986916598611464784727914306919252004924397999059839412106108768667674165761113450907666134937522003203579996294410362292060271240559597460638635263115349363470402848977149525164310616249324263060219256310680358323737351584613389951533144152458600788155946860154237417894576046652937344791267382619377223016707577175076408219560889060144532526557591010430002192417260974632240379595864822662765379785363649017423067015740866740411101302394197669956338539812378247708029593610264880303154956155769006354007918077722365613061028290486170607238323768332721844503872770444870303281151117877434333427000375245293854506963576663108114327566834125557612149725452364033693175710412827167508752565712667406993605775583312694842847348568876775940337847221840201174941262764886492570816526054339852401716107821844100323651451589288612388930297412287280721712443059057536664166487990268484004719671839889828518107054069187180644824394248962936892019947780199550352286692769000664311486187726077808443874603467112631020511680806112756094388430161586786080906078933487381441142632948753311905153911997310925105153167278913841801949517617056136705636121566142938464661440510246625882863745570471011041316477440006588157086589716010617120236891934316305396139590176107780170975309719839484340220765522090777748441675127498188423314402209461899789483929536766704063999486718996621379526348820092155139176718471376449967161120342733399813919868907372804901803213194372786735488033894373290274273539887907082869712445173820820431206443917188432721183849907259821423007147112474137027727978834095522828333433664079852975075816631631931538471779461210995450106049031196990233440427246660561445803936221365850320604532706475817730054923743397231139376902217389861904880786977954561353166456371365421877676163837984967492534799317813072815603543120330179079938489909742133779586713745895324658361381384544525451362088733084210195523593523027245299181157297868917636534534542848699241803754050792556223631793762577436208440403875336348394131554049849407395688419473217393470570650594036568253747639327418954751975995362091790794041562867612664147467947552014515740989622891719366083289382554213128646157215865875614017227168879178027756383961441508114855594788400583350376464191668737389766154097987338724379053953659644113868320027110496056387242704128034245570501295437260335296828090219970549445450605759694069060185692029589909485596952188180790868590578901320806027944809232065249160760702560749056904477609439716620412934175894054185422798157109169282372749054445495921357127040745105862531112118300154072132097884223384208923769947733544971396446574303397363816799545823940501268030598895659517620533513095157821493067252431775259071057573870512281871585173686439572262101213785401020416872610712694088872381810875123815252765875642410005236674721411784600147706790289380568906108459323822039951184251747570041888613554044982908587498780756892998660948512146063682983318627228691399330496157154439071460481622262080028772739374243476387427086094080112413754711539213604370004725070506656286708241948013035902150814558492367814110308277592767569435664559809204567211465812257646742499336889165237691410524831328508419203859301530171224427344950423787690476880362392046455450658456132109602404357429712078418444840668110963467895070344761014082831599666107189806886487105911488172026490610861553098790915539593286540929189900654013922285582124479290558195822407447273556107803126954074071378298853443540772620761302496467427602673962471395368673005338750063476770916137438020648589700971894299348659228639374627043362342097668816957312389288964109581757233266947809203517664571432732126112465302177207919852581363062757179864766482201762050774337312674385136294284823209988211482501155193810814319221647372843410047796736841164186879782728588602388315447834788861919684393071972154584104819613670301124235821440797860440958412469734626921679100454892745968014197244283872888950379435605116985971745535200603996212569566181805728186936043567376777758246700941766886410781639457158972902062741213180835741396894262464825229542992754729397466430268107191479143705958999234141363223985383697799815437710516018458701577902725077808331131091467161718051061525774280850951506547655570426376399713069970254032618885673319799436995061919705336534465870173468293917697475490678901772212093103526410769441635034017450658007271628226728631422734258514140909139476699648829245936651855118557792189964277517850992135057640663918369048813592143707801519900370609933584226691329192576012993955533925288118349739463393638151733993856437618917248400025318572839074657000558102132822417740747761231740523537751066046080057272882710597304614529629276472744256761083964940534184368659330632742011704358959126607570887610636882931331961093745449163763375620591823551382739327139829563955294529858468946853310127244671193868748842202454353127940760945198628049437433999240085206386154073103903767170525249655189241259365894195059263543229906476533278462660848789039856580333205996671311826635651783726865743570835961431129763471523438332369173817564084046790833782153696440412393078270999691965230829265167544770305718773945924249093828301813267539830162958628327432345333308070868542276108693940988164237342246004065249536821072663458682586734881225147081612354777577135090961493268748610793954568267947797220094272728178754267559095824371518210940639495894425495342919395042606570737530010710467902713562912669272018536027657452871585628269859916272026368835401808972725287978531421816448315030058190049497751110915834266682259583745103187151421093911956634370143270457629616403856288284191245586874002443510856472489772054517745417951654175078413843823356397724533065281884618739596370954589462577964182978044835778338457851029874242401314005068409560286721406393851670272292560633339637477235092225861026755419024805630903427060306636624154652223639218341943477596812802950610574948113960543276109342243458256485696559967313227869938545243830860795798081288042193617533193799277999160860628104281924139482716998856958445852743942449223621433957934471619514983320461747807868334579780403422968038601636278030772878645756096018364092467180128564935645080589145978495750240576826732522732558237907411932739813934353582171190979859014994965311685879531470436655852754763178119630112507801270578530809187637147285360034025497459863101043789739032097145322218014266052325839140991292957518929875538850610833447648505302653624467865829302984748248432415547888645101049338229810262674272852965717904463062546294012774815392447184149701810235798414618295500166021641610385908183196069011902256597380794938340098705927864522038785902821102709306030586095387171989349558820167623700817213896228567800002147711208558786937221951139714721397091542093668264387168915602066427568686664897745951875091687395741677150057623338251351636647371689668933420528494274993741772661945149198439546038684513830557222538166175968214390448749678198221216920422592968451382050486659919694746853462651165529905239127397011205275518614754056180574419238773399161850333488586235197411897590036364859947337699272021937910441110069311352388663824180330808874319352030838182930437880241488411324374622101819081641023674493742423325931869432172939355887356335729481561935458306497206947451255998864229075688359270487692501291367073194098050626293733312233600676520965530438256990111898596656415672848029806663843667509416519709209706251112883971749319860331037974147126278620865966431470187634258089224407709510158521909165282042372396326065919009582723087095461252569169969106658896384608412673138682593133142161487057094180120874596121812741871576976870209186538033734743042901611906311815436835381515047323069371787961383078668888620448785324256081025288934549739918363828132247322500833768977177359108405267057026492727953439382881249801720762873941716604515515050134639778556877241325720959198144718495022832666044702341556867295649356030442222874887165388039355015357991286205177252531719919575612143894390785523038807855379422015765440237094807920648449217461444388618003048124538695848097955177247805213056696894825121899008150233992394410791308241467801323630085218024232850951396620224787220809292413991796544372366594260116280165147415495045372236274934112535668362324696010105369856863247295463362547209999752449791109945530421057949314996704330697113775547989066417739793523683106032830109693283716048592704270826804066910895984033289975244535026562591064979181773920789437866056620949177830243984963512146267937755965171615126085904625925112383908810201971680522579109237050768205288208646603785513114349788484612810723729465132962701502920278878034763972673134043064171652886487309980696708727822315598114852293368034709175619162516148704209434558820565503429789697178086062384868934476225448013360755981054366935580229340055058193623363342543092025414736155978494088089819906185461550835113623800179097092440503462133304247162413283920843997404367617167951359848425234836885189717721100386114766721999407897574195996236437503029367920714322201462814200474418882165563557176970397995158110386707709937866232443929440525264217390452736693481666099033545798861985754069071498639766595821757003890300034731638906739891696789844611920060197967603774855739813187080773853326651298443193824615988679018607351975368837770815155187628232602896190112115211741101384228548947513824469287686080895577869918178169380085494139577702086923692293493093721697799383694313353158241621325148914669103432664378085257933524922072627814186425768763820544126190280008127566380371234352659769500933448157247407405396409286305782538639939591362112214580501182372624360644872400099077806935327645179378797371068073725024394038939377451484461621368093937654250248792600058817579150975958944846476714894206670405323543891788730977323651893579258530771891839710470083763697451071644367465015510842649795522358354817137450404483821040228449419959964402613663974613456161044961351540989044983771938383079488709417779971295499942935498772757844561611077785397147619032796972688667080992704696351101148418042656329329870884566399982782096204485356266650147684491240397997178029887370077996214945182528448994797371123061900681070458104734495708542871188398577347519588623012228995094870115108794987888995045910306326790766958750416196862447622264189170916866795238194639985316174994865774401371190269735349503637036609072191402583011463541987089820017454827292843355175923175232255762400849820220296602743041899932606000056566539442907900126491568709013167589336800562714059078721142764447489677850508756291208030957203661311131056154452260423393735593970404155680056286627799990974521736085377319110024727667837656725577549343243517878023294704836798078864065023638278929428798759801578475414380211831289830539514209079061977666356943964014461791858881265120795192603383296546535883599277596671225749924588542202123090256435910690688749203667493196589762398627633797164738642676371990655943575365578265935730152912850021191223536840729522347783730024535599186898316230486446097441521792715855522781953511081897310432660348682851958489660088130438980812858260467475709889452112328989282576343734049133315269984053701858087009634951996962734486031387258082798676060208052660889946303919405605667443958096447478609912120342454757770152497517108200241316176403215464365632669178011026394700903494739598368727574148928666310723937599124513585319368051783844660088350129381902261660927272189205157288284484268795407319994091990829043420471917213272661462764580024092087982405339600550407290890998120349266345933162271787274819713650248776630454005628128349806999828249727322517244956886009101779401068537216713948026084138049145646223608361306787396305539672214197165215259665245515375033344921199141981565370508340127501810318090108926107513464830564049957961836868835070056310348658657187602229590939789398374069390658515509155161472520098845981209625727652198340532248262804700560976913829400687793511918594729414226877992049620451258473292282619712850872022014220951783959546620297797371237070409783897839599393368107797646150795273824474386682892792722789030111122292537849026132182105140371787375068960058036143386212289478946360094887063772520321651370061809641945861624261029515640033991878922759674922099619975582931975019245663905645745405013832267488312270754494302090237243159995955486329393088554536750522587307709871813304402175248072236347214027879350641909749287241160514972763057026301157283750204763413937938618955385550028690330533094392730674145800320205468397781040678816672494458862338866629413023897526847406158526751510948949729838710312105272755247261809661638591515265539065883580173207423278291190905701922630005038323318285462543713083322377266067045043828738964642060706895168462259686393417529808035587260401513247866561087035133723672351999435090952640712812064973266137169176496220030790005470070515436054927263437351930836120079469414768606817819457237850146341301739328275515134403115441988080686186263891436668045573265951237671777369295007248509861938585703305453976489433627388651797199634683669143094358178088518964092404948206463932735637014800256249516905633858902277697168485953353848884151137920050977479510186017306570998809386223539218752747906862622127730252861792780440165398860832374299455596266929305710167556009076666459975776797629685744323677119552279905432528547581500217053736622336433041050751619719596624355453851702927800676980564351395597242481471602469871331538778633525516083004659125066568730315547390728606639033598245079577617532930213438757074449722055537484343561712612319028651087083102962568629145386629128486991921069019176468111749617854950726439992809307400634478321724311009765720317942339828279840415376812608090656955811727896655706687118150245237830913762504583095150935816686833910969684719124788103791232826434117303511081179813510141494824910700571407628281552853386257305749250470401120744281778626242451054452548700940371550448986115468011067521000128575024869479603765486971977879162572510871385762756837875408459716652034380437165411390291125821086704121376676267516551606140191088228057038382786946744645439592629041147394303003851958998816901164041781949763609644558487511217997733877586979468693356208826583765246794609716526487155907555053852374061287412120608080350064515758612011349747141500753477028431181799858838880034042138594093457614479007484709260269137062828366946020574581178377722422069674067556742283840702481393298768604209053946024976517807716491597634801069301834686947091458748216257900772291429268688067140487536232035180729867421358671248863756039566722556660837225536198039657266385914643893227316897043900160888370400913108192626599135928899030060616719007634651021896414064824643333123244935081320496173139229225922503151929241641891266259578744087292229419496569229254259121243388227155772428538217364126444057347097639328847242150975433423247053103389093462906021108600204886783500676912388649028022588950032901208113822410509097053254225441182603194244907253989925162770408576048284447470262994031718392029960926017041345203218001874352502706269446672343546027379769131542514289306547518665826405651949147145263980362120295188499161315945568645689589494016538101608936949570650201258985305250527718503703373880885532452676451006529199217517320580025607705166397442238527594705318128282614009787012444678039876944134754128632545354154073228067945932675113201284949936949268800477959788846749884568250861706886323609225025720186503255038376850865844966804258245938075749994157995389648104497873579514938223184891197466091281830430725826085916167790842878968619108389056772107846920724978828377651125969925502424023988045770202583429030739350285306603482729972294643261540039077168560313211861654034718234684724911888855128932068732608369146942378048311824403007890400787859911987210190017011786648170789304760210020899885760186868941881755190486987393995907228824539235240142232875960572960252711578669038696728611911119577347941762561195844584305792268408326076976214056049675663452828972908224695715461217377391169197198908888377052924911202470657785396432386003746328327151392530415153011891366079505185096930589112421576398160416420611200205626254971114764782515413846989606367888898375985405609843503659548126086098435964291921522613609398778938769458730112269815755163261546715891577320108506276593341937835165020793256525960634992709498217231235497369041557777754143690704442962718279332072050129563480926825171429475059498371140225502420493138404659452514834034719477835085059419868481866357330661473117821677102981254816215952856785084925216787676295699589199665620562416574473473337799194353060450022873566623659966026276414040650281605414640297465862880071866758618083073502292868015895316733193761609070863034021734963319471164871716138456580279125108035708654999421812005913137245940020600645944521545917670863961297654096456607890993709130943347541922509427824953470985766620252810027466491067186784586524199252086051316090965855662241821607072688943163113261361744474077029074285734218979610707639869060963672915956019027568465454607775839274524213054210588638797810364018153660992155973181640919437149398596753975461384116002369393219430539698009420748451613966919555238302033543420811353014418536976698447572942348013347541286838586568985441454618907584679586639655832266013982691394957189738203385147030587158474733974006670677596813219662992623426524999433071022875861944844094487966091186155596944110552913276136555404004234420491838815477016902783413950927075199158159746458190264847076181033822563729803353664101867437771210922287962773076967441043643775993351113546594769638653292020047340676183442797684016074708502804173815256254169011255144772145912273177626144986378021077518650760696454173036292584710646249250168860456700362931085137095326691319504983138552037922703975125603159506493971171743778785067015223401278514054074966121293915069774761063113384192640930173245188061482320364954614798486611242579545122181632627735157640548781577780891213402123103650421841547946861074204888564170172223427676980288306743713190118986125665230519194970708172993104055399868766904115262549134043358607528829792891852536009374194034031456441860203954306245482054038545597340839429175301909222276596774147979736443269015444567116249817372056601904275194895835750148988802752865154278023147152471435451257670388632364961808250730053047513061473236324021822679184912542606877339335652645062311140774387259008331671787237288806445018164559631220747764129060236695849572624175340312180498710287578999306179635380138573873323538457194814444011716199514966720243902913293961187560821817805655785605181845986082450031873826731873272719009661085863303748204681689886119434032123666366756222072759669918162460045195813568059586649227276352678463121554169185360678750072827471575465645601981912012090589549780703633620446482258286510467298109151330952909402621055340112937798429693338425180201378599081243979312753388498861680531295469825745806551440662398916992797498415498511973909957325314631610020910368369045682852088388025705736473298610768013184294477672144797274495513877976596206672763844276081570594370546184757175271589230326731231798878547407070566735122575809891596872823194598231722431938519432597190976535778789623388199127777607774575136834814314318097587393710841372789533045761440889477141348821497197327907823434189500816027435700918376066098887247044730634777014099130753878061437999627689415527813005563043899761868874646771060366620315082002510939830020824616508872744373182932554746827565288219632072819994223291138708751680567498342297609640839252171635337850470228068285329970336617687900876519261346249441982377634559849210092688490899375642767292566244018965104974943884097900600187607830344497531606344570814672519825436377932673950062034655769120085834220184773743985719292860930590373028895024833957743531102816155436069016728570017593064069172567810556566372438505549882684731709113573044049902255198335219968485317665591896871988653947836907196218512130800912070564954270412448091897185548762433664597489513637194007376771443991473538822900349207335631227370982247613697794060432884354465582794597544537106181973239876486307061213321953564072341501445749118200935237210391367214513637117702165933057130179209443407586032248485982835874907644534328737309597452077154478278240102952122702617394688668477035627533763979067869008242662032470341450318158366403802574378730523637253541452021339761333305739062820920149795786032809351176780702061624448880296389128399468295652709239894453264371281156412072805270765242190302877644670029695108378535011980276767531866918255707248561525124226853004859884606756699015594131084346532386175831934216636776034601790483218311659970912309817002169067695185805489461593229440398539788687636272923975964419466005857810028191495871077489810629095908851037399707153948010667651522444324567389613684552979859174152331539029034962079911430799476104482236316845068526232035436969058289269703439934725712177678507930163846700800669268708487406603721638632692464100270422353866735318167662258205594499026108381616637572398975578638252916343969394514752660059082408288268262842502148177003120114780840086242920160025418354518757266554692254431109609337064773850768966827742556658657893083373504160062003857507829668742553532324639325832999490368418336585920773768342654717347262883292001571416448040903687218026799601371323706601527944517023787183466036281204700226280145238893553162825717572063373658538685651510324680642937070152318140924203428211486085829313813470607401963599568813166165078801155936167728135826784369389774128627955764945454751855936063752933506924860114897392045436502076578844429979883340824059231109781338152086457926302119527172264142643192554023150153427057759195008508186055692236339202493338577106744088241777027184535754674311647293693607303719231536897366774159610222269167225621152860290819248378428980108336852070948014085826283918138174352901226250387775330803194291098913267809885234178076333872852349031804049812123973812388478293784104005118245900154380660583009993981051136531794029669166310634182324001130975727050838116813246521533713890803245876831817703714012936718027715065955188112281810074531409661225181987157813849431658633573137338951959799348843923589498954053720427771424028527669147613898827380398741601722614403480018143141405029893459758179485233409535302921099294247151272914113086735104418628289175103826854697683435574614850590108607943601586625291085151633370228931744848392899637725684700527647036724786283739222931359952230744469006725925065824519265501830241680239752678650401336564883837429785512509208770192276960408938866402618592407838164605432651852579686256076035251271867908550542091263883930001730502156226668814516601994660399718970267638697613491284114990947540088977575174719820923916128282517249029827501679858512471714260800516137877111107529720675886662209980140059787897961349835578129186383318056373304136181817450702546950399118861284119592029763155344707201507030615106044059417231432050276218707647215994802801797259521299737959807240407165995522134261127791729662150706603036362417201302111098871152132677067032560567714722790542662498417601373821050647813401398621626841861937237350518958893253739507446826899186247993463710393031926463938913156934371565059622400663154967801039705086358091071904165491640583750821313142822441573911712680701897591104272319009384215368751942417249361154941399082995993919823409950440217409207247710587068193366690510905051378729210487792735497064726372639932960949132449108608662226279334091141841258370381293212742996907219054836113130898250989699259947562703810365158253457963518507650841833383073912910579730240361300343877477206507834083745759734814614201797630254442989041729343514037705868435168276744434565474957997390614400339563710267392592412349491876989736584593820029404661866615380854429398500338945623828036857301466700714712321792129331679156307561582740289720207666509677343038367417429085005333193565729094583535738217670406221520999211932539472909551414096437461249354635552030913622958228204517188711917334725237964321165843669324123252844900841734765274962320993637972033818389909773348415538196395116516920553367825733246203802748287082502197313101921856578096068965721217317987968617021310414376526747771319112954093112423730925438281695578139995427460327972704507287235990536997180133428288266523215525660939424847225162097510060297467127258484870208205891345644674528497391347484182941030948386987873981344843247369351281901624484111816699654473379073896124539310984511483549299667476392034167113146810927448770324160329976885568289010924231146079817808198407270637072004814838191219190376097377329225505490626551866869061220984973632954563836037770299527917440538022870443829086051057674235390247679488309580031013267605421671006653580451364573615097563786299484303054107594759753582434148039472748633680512212127233964420753549231282083973299482398682441085013608473576818001019918784214716096127674107678985610445228614408226902247410684972332007018086406450064407668212067833725497125414788758978908587061716754714477541298205170713121886701149911789781030707779085123709373607645156659159568386434942614612609967093972461271840724273466867629037527012651650712880241075988985817741180682114305189550999097886940808156403143018185556990700782092584085269380464174450867773203371900908343028503767889826313518083120552951748148213795620126255180393091982004586220222930840703676668520059988726119147670787740111671133335004812162723984939672028802053476415353987765459881031541094238657716328499926970080678864306613662128303690812964827933827729060432125434841158944742754177631081471527528477399957035442029209293843408503178847305391072930494194771820591334257252375737629811134764459208585742042148952671754061673225537143996702371477994078473236179861279971525218719632320977341736884587402796191555999354103679465015532040562479216397850480161917709113607291544046887711416326492011177644527300829404641232287395082758677528506334142342779800118986968052540531152724548485166377122892710566851796590369855206180331335094984485501878137876031109187618592417105221944913224378253238690408154842535373022106976700453300374895554013645584008660852872382853849782149130534059884651660287425613316572134313369315146263597876810047371752666768405295601559011805406409712377194120243712308713603848887341872691399835534461127403742787702306000586978294194898962595205214645469717532431721756169730282305174688231096649847057840653650391061983911730501959461156868132780830545870834219626324187772036696571919415302994008888397560474115216840260225711725313108676267247139565515488103204815078473183403138652204481257722846809400935124266445933450999591095357718927187257647972691592800002166921231623475957319752752235309220299005027527067537556614880151040162952884610106926303026525381022890285904797988598252408874112052413680154897079644224483356844030919660975744669797668289763017371346311348146155772429856481540158918654574330701519262456036850910764807641997885395288876142501213281924095364857420996031921555192883619742953492013982360878791330474278318043768917675226602459757796936576490979765260313372714237500295658718162643947830310602409898424211801549661103859139202170580943447185663744804558072470080194235463401596348475192204841182199628950922562178210446175074770260806895688614204894456297884483353650916973085143338462546252828099575053574433645362272652844888207576516040619021357324749789662788445719548235476595893239134463868171236058865767686285153529848061624929938746968364875875201747987720831249446976404284151424147273598497000418119245400706748991520747417612610780180261081271186851239355251918340732599726362024931482986985777076906756271054695934048531463194253459192237753052914737143570055548451095519344610220266164979428115352040719264659307314283756847527299107300490186188601424549012456329529203513255795801275054774705059913997102419084386156723854669550714973885309688713288886165471443711296238637394242582794408160704477509958468242106838351114954176799069542272069286592879673974211533127484728256382826480816107031785939391155005141029180657781640656100904703552008617159830360407939403891568907263087161198311699960309092116533412672736479736983677106533345764650230343899573974339802606268441084829583014738712908334385797916666212803250960648957364277334497602545619426842285154564562398196774142086579303148548334475675875134554448217951781435484477768811278169381193742711798267200752993158309533420336108752400601493030216664073959085641312727604791476897170332326405006769264903418378844736647987720371639450639479312027057429693465149208486161043585802610284482173473269120913543159040273118718923294028498707279779278204558463750542557159543130259379230364125130327037664520432489623336039111085696619063223093049649700714956062718908192548548326292288118519793126550521465302996123582433101516671875580983002754082741682868740692405389792766353566941289683381521828995926785153401664941868463462898369151114441246931444552610129754621597290304887978676673313824642731214927778141114455540391216215471142963322911973405821137625179147558698284129210890181844959170824816093104691469492792546917712890631197561984007775065986000064990233141515793684281365344422828625107086114464064470722166271554692966700879286552672673801617194351195441958827827404430979862739207417423329041546489916238026080136321003596848442452459384339321349215310678452763150547247325198487283608658123592016754860515527373609413201739607280931792885881318876388893176655588764767259857381785812063111728094717179923714817864066758852384908699652982387475465142569326796534207823319683153958089302970157976686239447943714702948363672138028359179128767487833290142417700255354547615518041354132490188173425072480945660227158522670034100671873559327477142324462573957184365179060555609571365936789682708042413883413629106959556976364908509498177279849024224929328394556979522209033467311167228521532121991410549022523472600964635151210036963672547671187599017566263374909329325198700532844916063880986394512216825806527302627840845796271667912255428645801591546992489069540687942275870166654065404815068334577823421583778867457696005832774520805766257983794340723688962206370208331796873127928396874229056901474483543695777472912105680699322291241417274026379706870238662002123706685008743439544321163158092058267711898978025048888423997532623827468484781690495396034802297252604539148787961103737007728459383133150408054868779507401016750375815676832583442617977542099317359324771596542450404623879682597301378006926961180617556247415843583689098873347294906905413427645461679921161009471802324435432772169438100123827836053834919171492141495440453486443810606354897807385811889477794409485014410610145814559026994776068276050016586053780776626189180935214635918139725708723269798633348657222167441879712484764155777597655564054072412780284749675810348127328163353036937808383108328342654291377207879214542912001042387618487436604384353039666879532074015292707041228731439921420956446233597762298092824743833913767636820386972521410272423172812116153780589341081222099484968585708979854023164196745061134557331344701135533215638625153555693781084463661651534666938744507237781065577694173977145569557076511698132978414607115064457172785154303781256170855316565677521360475548575664977548821149332067001026820141926636524267533110878755825794722125009910925039333456925774176226078789796043408415690791095426074977911072699071791247933264790966629068621060185131802503629968176006251057660834399294632580162006045589134828835628469625237687363803447219649802078949343429845871841913015435713679732262960657541367198814961508459438691746019583433689268916913168772644705970691986487386057253616841047996207121484793556387973753733893899156083897862563739488851454235438297522465607502333913839767714967550427381951369770781985871522716262269708495804918153454002417676711406146621619114555669385693388841925481016394253284043856966864094283552588383932110698453186132549084164538515217677928118066750509816635597244284442074638715552926411325198793983668194030598967847895194446955431705248472463473829491041843316574895565878847005325504142250069440253141542017773802169150742552339038499107116044106845472008529401960319967105145534713245781764795131245262712127300363980397785393356547774577187450963795638773720854172920753567189331795689956220831332749761451124929104990817741412305874416463114187816657872311401450546736085217138927905405758934148163992687955211550687624726765590458776146785098314033462720849028767671959126138009934626422489147198363694742320761361708034606345924225334247422677310249051482983819883093755237454183184066951199328511512171898382794435037736803967587499933336535242033339602128623491687473961724324097297587563035826619736524964847697001046126525646586171693283089380036381212836473736283092009328533467807023700482343494806478177415785620313696345785996335082602584969659783473592075672409052758071351754351600414836410291231163221817029376684903002577248990208862057670696716877030623689185670886647301829482872961461986978670049713646329644641203061739688518523924318176963078895102324335113409978139575570573879218779870176031836591088999045046844763177845280845760802165410627357803297191783998367829761282264840573614066667260390815476237165158924470497627562582165641175223475362453093967269016962447650503470896829544031056244173853151309838161534837310266410184761144022684089051473172446552431671945361151530598884832087559107081793982101128925303614722883826376281770063134054089159838297908795838468478614483661186737427175447837622268453922428113395326958589546333291767146843055995510852144328786523413877609600544005949260640748356419022409737447106280902600607547257231713920512722529963678531626323507224502356297111230495873670622825684478093060049197755270212854459206781786610365382890647101735735567415682730247008528255094329243342205153889837107897656223757437911176884563091120973537290870207183444184458064190743937674979328888683895908913448088167349311297671750182834917833513251592499485711999201606683184251866133426109839139775905745530515620059489316066664975911202035719427778518324665661888022677811670131107261615752834679241371164731003245266790868808279650944594406138884140111619884486957582189809411383364974085107040312469856990813182536420551698445513318402395490316584971633338944666625623515481525608521018814299427754111367107171404307045386189929283793422587158567677831136974195361665310857277507227730529296315710886313456815765694271016693860217729516013061371769599980032371863705553616078038214770051177302525880370387215206935216462225843507447516001447082578619271331855920716505206785832400750236626936539148073155999976270253749890010213124406310182588210531658575262891011953269078529966614067817188869293804296756824894562420867666723770428553682026743118270631717884612142722241756043691501693686176196872840318593346499307926950800558712583877752518080886864433676717086681961467150909206183308770676505687016906364562799762836373464031552905391649316112781572013916982734359711166723610836539005660735059927076909326157509638698080967018500045095718950506340054325621150234609039227465300310329164867874000962518994808053467575892595413905028283550383543181292151616683784113592459442493907471356160908918349937626612051190939880544936396523035373438842756388097909060219738439081970817790871894104744060127881784819036456368561141072640696323099949459320663187037516668474776775752831211277498800959478249566567781076384307318167392389175491240531768391337887485388870888377564861702020696131890926445224130464483769180614908260813304568965348414357265833835641199575045349785859334290944121043501621531715112129456919483379507880958489200023217245320546621667168281176153602350383070368273074779407918184351783265690215971470028658679333258662706670943134391856777686408112569080747251999674471822309650353990513576463637801783571765951047568172195054437257484003020404452840316223963607622265659252110847476933566448969025173669909094933235991080790769655578738026583990970939282930376530526346290321111084151053932558474961507761041648585725404252903227545205776960944381851945039525790430075432272406786073048102633924017233615234694730247327882500518097808370672444936168288156262224763288332839248285245681101249573674433151004070334021837732115851886604137704511268428857113384398260115282287927561008647101538851924355283837038613083637913334416511281528323538579104873577106503177574611028071353716474098806515739814708455730319767179720429199524422769846594258806888857376221735766514396970889109865902189307249856501158067781102509253526399099910909301557716569159158646770495382247615854362992987385358877750009555716273648152747068663917775113252953848809104332407837590441753969174369838222109023241687171559467586412325855630998681338454054348519312001443027190519264101959787271336898147477029811411572653884998576786433210145210700146744578067494711026075221537152034391083936882606480543467656480946836436387278876001176407412245712302553505434839792120461238007644806613706059092980757192931558928570476008784894583300696950476093108140760194031655379624295662621550434507087627029081388084550147978163184589518576499523073908928637769465132446202466832280307597293676093971213097292266703536423893834105665197431481778296811493734828530599945686767345300433681753106635727870956245619534562345825809014340066825154879629276972413035183996815123059356521230303225521097058307156518724436791485196429750972816927637874241551312781604373445269681744192118862698369468193433654418211880623737168714724534948663967940485480280570136351894977010502414225529059507255721121857806762172193094244189824272248630888229092483297713226408071734601172656863896409410428089332664469804847596314394636356216921088812033965342908382662138608407819664709662387086507604437543655469013732901261612579442270134270463632862840453639748274499804690178461805275291100903570058133638589767856800513918962072134716064857966079258303166704837520784402095948417184603098642656005899049456364056709992290458871434130543546453559509484598296877494039542977876420735649813800986470797085552493570940643702401287339441969015759241300438593408571185653040032770268398042056538124489965116487886171873654221577961560247147488653700798085283179171864902546214344079868102825530305652132510427329594664004842848693746509376106319083334320950194676264168232596083340201577842315026772658374217165854443699901601611570650794012929396988824633989634532332759295050081086475510903241659516336403712826944904275356442107184434276591998631933600562964138650648213935342245047305014350380632195709536392320130275585343832382614349908316054421395688773581487398331629873196682293604815025351079979373515500147621512193520447233084054215084925698979010119124751951510557495956551587488868162984815077123943254142144918917260924795387503112239358060180551344531258047451678243005096783647190961577581049772096983597436867684019526969988960898379465453182747126780400119041226547376008366791617036023105538747950485223976202144156061271822749342927258828647466902908965906556920568414587968033735185218936297973905639042364962648982012907533007630171098568866800486866494928982415082978267496005348741630448702833099211658554879630480896995105811521630843630567707184863339201387866553903065753353790681654529413844980883291169914116931453307111255391260021465360238864501656903434310627376488596395920319126116546272014134322090294181263472431709584180634735350062542941724649180198619732287336860001986956707999185275528137616258968386893386377436470499648355797033542400233569328567171829757087171734290651444602731623610966652331511058510479476707672713480004345995371859566619462340835643065929993023111791846411547520417634184620368337567205673688714645361421631418209751724194270149270720912498585005623094816565175150852715370768154294984123998307836780561772308269438315930737461764478897342718716654230864605069227308695716223923263132130559268204931162706812324847124470660375595447753319481174618107383729610290656939328554917410105121612764741008692271233187860343734314884659702546387786854763549167129814666703842329725904919166001402453679637487418670577751373896324941759790489393790888001939864749096958677143569990040991013545699571891022716498648400492846813398695743697761433323754549373278314606542228514894424810954230706014918034475994946463983578179440395362504441498618769395396762179963450207049465362828882160206799348814220756528588498871628837299059930576313035830338039588192867130407796655753795227854055122092423837789854990006008240715552911424996673497883637800938823817474286316806334604498438705753025466227774788216780894725992639934957031943200284588176436156659263496989466674106499619559629636861974096774476433748601701760449401207956407285889821090452248443574045263217269513125496192386990457703505834503235996554386926833883797232749938919173836380440262114013134097547869366855750615503926903398491346522876963333017095856090147009806561233408496084833200828704381210264457734087028686244888935388100614877814312674353157189416973887343142473840262165474376855862335235186960140488659464949506537243266487516135874157665825842753520554409896926064384636880669007026620626658183794268653564206874251897188980839417420377712559187552672752969018953706739472273600347418227990878042736617879714107971388778723616924343482295729767024832277885023764920100806616689028483509769967468764011499476113743174831820389152330618576658449250809259623734847141198817720609229635256331225126926512704178022363801800414035178781969178092935325939981475465018906657256624482139416996123453067059409978763196527564265360255122316554477762460538198648973422068373529720272263505849082911375852530719037442305115866277287328191840712968024456559472809505449004354014287254962248466327081352280724470226703901502874603791502104070058070650814039439676757383044483264938733593179083551933331691503956827619832512012139126157137548367365297057481652219700627601180704723164037216450531801066281958324609586732417318656874695194043827968388715247310657334326368069237560372323347101117179991883491783393929422037893818623729454751943856883541356068262774727023092026294342110324536793408548626922788144517364228091321054392675387619191834628150290953774951793328232412200824265702078833083627916186441311156761354661983666029784249888627602035568675380461859827934573443762447633734153382468202304881999079143594225864624440897067025999369764068671244549746460086517139870386149874168502531734940790591037105213463803666192336312381185173113548856377014762057391729087187424303542039130584486726099568821354727272408398307282181601789578966642947819992216336066090704448341414550043831946812684516533763996143014337459624735088294812341388595721914803752628210675976729326238587309591400826885957817026993760716993200363806957868150880857995484059550555771992216702186229368975013537407252472308780393326614447263658072618337360793176810626547676445408253971849236647729844380381147428412481895902287235793456571349545069702611534268359646232607994314502595272459789192771063765424176247896539186806931628725482726196160257807662246440625961369946584333846359674521841665419320931538498194491474204619489154068907998201727589618289193940702122441566175799513920101596994781942929552648095512312635921165345409736870768693282730255138577143224644259951318313383049431852785487148835075367530196440709909294264877328910138099795908707206952738339540211126432932281585345898098485451053853635869042699080837440609176528968418814667667991604143732789521991959825289113699901050726109581093314478301406546427545304933645044110734323388049525513013600534307206180564705024518982403808596071940749199845222192891760867228284257040819670278970302886710555240779621822345224626030298464032907286362898890196561737468300104357310049730158161773293203146972274713536065336636597898261101182974549526371589558432428615844882469342685255024835473638821100097428488163600777592592145849048329592641201275504496272076566294259550795773511145295851426402145003108770512870787432064214356948791691032621846671944548784850661994590342089291811684009017616603122916263721987048150634622866718209321379819914544233779819769075453136964850605929555545360805061810717660295584292412688308266396440679302271933534006791134249288652351169583346479884331826124144971434351853247373921605322662867325877202972027321720712429123727734838935369756285946706526173075558769976726784937305589547173730394974566606337833088170338938438461345427460021255519276268041997393664020085047145215864221445515872377607816064230652447535037105319207196065446503248392936756623034030716683753478145691172340329090223340463767737382215107999712608866507770179916539834967379467524322030826254042727235894972847015490370368488752911004318100554536917642046978611533540363404796119914514640233146268540300400207989281002427312180292152270695663087697235952223837078712717170090258897180520157847620236230725067424772102386301617190823865932365734107089859703139990589739760875654336561253162634636881492188403060952088588759216014104122739681401971755125101374411736394499081118248267187139548171741137136926237174866435596579412474048389536641944039260339400335997345215107162857412433264283727248940754579720524216917020960078731251443933850174668967258815968242180425802558928902547355195636434592897699734782043879067753609392250452981594661203436416663257343618686669850218543768202290116467864721729750812771867622521015374112515772070842061800372566152961366235557505166028589718690390620919707329594212117567664191138915041559130973206535315503479219309268263742040942121782263818184814468121154087182998431859571064836603124676655226372987468029907916310448246412778634052149912554555807196058436966046616127889529349860605799322555735775484078598770038482680227297449214554218651156455120938607051935052587886722602705356377840182482492734725549514024739657263856842368474057677892765956321082784115632163091472757009522507383744668220509026290589892033708185082413853062046251586761798822927503960569270061527472477780919502459237396542076768411945520434118040225825833529428945164944696887185030729670252204534828770778334614479191467493443513750511164811072796043927885852712008259484751564996436265750131003999172118620245378106242578572434549978379727567770345793794157276076790545607677351925204588869585866439642609929741567096354101708913294141968368371226581890235707013951748779895654196988957903838065090594270126473759519390658627264993438205016115230075819306327182915310465794590335312978606429379727612224752602460666009847428693524524674090195657076666047640029543767145776605250806349605114794793639006879183822897191158133302018832338161832285844770927246714414757606279786870080861809883095615424940939672969220625619851927040030268217083004884430866866563724263299711768721125350495008373989554327881194697253546849070053776134309482392212643334078534111155341082783802415638907939350909139827068687287286368628700668903696756249693262484009577671315410419520006490478771636689723423010964625918588583153034403301448538913879847218574436742921654165722407468769634133841620544379064010364901353651735579999605061108456138160257831340694923994314158569382168023612189920502736776773653316694785315242998837309245474529372481598610723727648834427293482590830289541666578794730833488048557442776781264777846368785858833036161009549799438309418590967540289050603373115012223626077677287558520793136547730114551338641093081150651746568219596417376854635710947658644595912006233444544028226433545056301843933544836049504604278850320941321871362871847831796266889136473325411748345399693582103275662271499851903678461215722532451926105013213626639916509168861550977776639497863595080263319222555466636650696852343384007486787506504048208310177302249555245681747315059257372868529780187036010072715279734677594004149389685897488920901668607047469620672459929041406095210372460681124321985369894227723628866124960746544261469300627919595474589526821947836125404668776332197259421075848420323474774234105701069049337467775800874455634974911282575423299892318066851769213855415883520959506284445527615221974413441911905160690276773686103465522370477280013737159727067345494089898899626470687694806269133575627399387646714030253891318950795876023296705397279566017733300047519515019735315454520214398382688634613660305568369969805064286114130255067790347055500084341657798983748696736343983161543707757148951117299114273117100566239914981507713980321345292433808662052001781998990304532030840802983883731486312582081283080486183183349068624075851851346763971093252371875511966212988176715532692052463408707735048103661385855938436732492952663301906115099426116882236696994647408332518964618843759859165991675847163668987014869933270350496357528906629215806137407293274655679568916413216664421909893042004501569647108786418853731322230570560771635293867039716175717900872117777621507353431861463276049403997949558626563330438539592400578645123791989037750199343202327901895498783427714004444337894491052828333926875379782985451266124423107606566104283766877294162960575918125427660827480084260451486825866748436024862519719649767911103487465431821111386931236469310202228068686100965434718222946849647011179705728234443564446958840655911150400960925882939964318243138409743723495661070734843949718665077797124611500247915099028312760428082695222774385520197993050282990428426830638459519567334111300096530514087432822189660954885981314203567164798542051256016498554969167542418585564838077425849874327242049560567265414326381564082378840689967572188419034255227343363346585799114217912170582385799321937457531191531999608408308278550513076847953409018092741099894197755454335882405141703623236595390940714657886163417535677738395202969766411682214761857413900298269899102369642620525205451971504998127617335439228250359595905919032527126453769582639724204123147851230537998541453341410011957723896329836225802501916051385742316796818368356108645934766478127858237158392254955601777842891484696454331665151204312607233883928704031677547146117834273120491323236904652804083179684320713985324788843563413098380459810097237905864778676193835524131928660481374492277681106350001533558386829206784777004085521139558627617092311630459543600560946367791935036733216319665677503324828687353682607541136905262722423187712190458415128864584439037962327231155690299636351810918339345698833405120040862874431908137190838605903061273299356609445304889210737409179335044669978249488151271687057596577201689463502441573757494896729067055703457431566612016094400761357436751659868294714285033281890686410454678782933382926886268356752673266326975243629485142310290090445300383943735190516984766971611226420150969125319006640146335496707954305370691980778919849710181455000036374568943227192978356546385807656910150860354601484686791046290917039921129979095231238583204134825775251307078584564974724207257020718984057614994467229800571190051849049784087739954920425239117306954698293483716682903760044795292701370956756591966956160628960260855029524431164191927225987202148797783997621127223701062235581396328650355671707416997878580214754600019937846906405373166870159469384945357122219783127047273246938274863234697689738122987842859332102576884844988267670632022517603487890639162588402858495644246601856880520356224484742757270813198188816372966723367239343300353418358246733020667039436393893002739844001594609842775380932820989845972417996017103360580436460418490994778315822571805549791532100511199382904340975601265232134399656582352635578473242261950777400036982471176113327723632828808949030695775172131031460176941422152292329605113402741036983741588462249218140737617284536338575951827204735656151301992152754513442648738437090986100786467383318746886483182011264881019344327703391109419778474436689503544879088458612954739012784496203738629163301662261368514291092976443586727140145242200487765563863480127268866026151430710594657646463456501831724926630411075355358216793085765409192206879515550637483076580436329457080906586173105712860844579980569091028899061700147756377582301493073200814138216602762961546394861144334262532115437725712748566560780162514738465486194311668529956491841262502091523754900159999927501985632661104962123934748891911855856206070796215227425554285545856716587796659807734657780341988323613491361839237514724514833713026663548485275610353606159853942946168535673861257746985032050886684945645245925590585845656814235991259362598169309565151208865716003987054030730298320362366796226162388634718095456684599737641357686015035803156872478460702954699127415365340217061895439393753296598464461196269394784027447529998955113859485237492581858516816697464483167348096928672492616623560970214827913383265456739913863302736999548365112044809970311718974925130910413095701225892297133774830293253247443684136245333615543832679007099143057896921612692991014226389882802597830858663116718907786683800715833355255038813868187676856482517517701608278112381360814173088076514175184341500577157246117817162285511229144086228047112736255489797816211390062680939948012580028055250130593422826721250884649152435927988567681413442521915625172936927017379309022057805774095136076308820137456982062986937961735118194468368016056736815524451450093009170771542647509916761428339988928665403270944460206920032965071485165770203337947041094255196037327326672096517154158136809952525434993614763266036397732132301001785197188130468014448119885427171241366837389210940504746391736563284263569099885945839797892113472402591434698173062199421446084098652737283127794005305925253903752198912379319126843440900879491274654574755709227669889580262652985522321725500200339691887101166009181662332853047358306433895038303011943143875099999063231221392952169782950428074376265566526966221684438346864736943704101570329733703801263938883918072267278775124050210212102331287612466779908504196793411738927290799897664682219512027611147967253701550269837106362374192562950079647168043210028355553755416717994387607397795020529954178363291312566560363721756726642323953725827896644852364536105490010010467072281099754878954137922390365089474972745016724103621376979992805742884880590262823177280184821427023287749478015450749543045782202057846554422183017175260950405820065350492336022957644087401720121114596505014660564166386734607656738289335626695757074523127017054822433853811578595770395133640735328423589125607552996027984711864469636450295323105325727108268672133720829799629424846866086613664452749549377542392403851801872783014614050535325777657471672144851725865569954204455588479457597362117041133747120475174899186318858413635755493316051733084254217737466879630680905886576289613209092486278653549091602361795180149127205980586682274852197130446872753620245036970329933892821552060096582100046798962087257245607004712043017336406983423145996948868853755244682986853992208180339449958176303000572797432292590498767914198090869019135932904969110022209273480456294690587789068020548267300741598471307756389999863785013916187613760796943685097914658786312665856660239264598232409843455771064218803809562237305326860827114622953643686710945906993948389162151492706004261328824801569274094794212475192877272317553381246526742110842197655246510975516099494451558574598582821456047936079231495970369881818349709109413809008104195174040529087468513561431580463796624629987037223082888188787960272542635555958581573347214013939393274888817182004208648256823024435240602934091461898768102107198875866430889736580272168701453534533056518610996982144282867099383202633335796354181534318952477097653396629684189570224830914049810802280757163787921668389428775069157900882489194751990495951543498555435848147561675617896171537919926762864444479206342201296527026247449276406679927163779507277508838777027547279821196466918526166264564982966740778728567604302456174553462976113746622807656861931790868766162289515740507804458305784491706621255321773795245608577753015765093733917715130321628127695941713265859239760068505452507715757726239450652498269819445375530856314861819874315903861674324327188077383275908021889704260972623473646473433274591464793324952418633271729158530151851232489582787250191046343548676717152136315228793091184977243272525301707661071117082573098962358351833680113415393828328658689664422683271891540524261518437546649771760786347169624609305087015017145870736852262737022150545278850246437903413991355957168727494946453956310690021340299516809921914579956707655022406105849933431738183426992580645982199465802232605182449143146688694376812537889099677747066526305177457937594105795451672658249652072808732572388938652830745090942978936473773787605777348752059790452431075418363693165964640577652242078150782912106187774234774259892897600858976113608957397010700172551431954198482011225222533325467952442515773511931200265919039023153146841070196614043942330978495104372376769772990625672223749909362824587968743676560904689528402144132195621900222149764487540835831234978417225254671717986040043839262366615379381965975628919882613791922326029798309055741891353674956932305887086103126758839313424076874945417268988043136017130200126175652026779052302529393860539874778428588684552847389702410553756731254908894971107695672503753326626057265953349590186785617207652904616007472414434606016810933920788425956690653855798570776309616080309953841199397543907528969424539557752047961784172680089256810799656735703312741838526188946753338692202103345166881606162871013759148928931995281168495338526685095649739737186742632143578014576963098618317216646771452040578580453456734585995115124675522520748965237013907577257609193295203008168472362838479715567188950270105258288089528891697039141198681096134259585360031588812575369109049960504618186412659107856076711451788343785395735156430732177490826624484514881296930009354786973973650156326358205164498694207329238800427279392833636408437243427012931532400553418805280938138520010551265653435737148959272348638641715202665957917631722130224614218115527050187236431738615631459098312240585486767947235379566545350214639610310235841865958168719650437666603016086274535808320154303598530091826688818569754633337005321011855775742528875346529793811979006484281223466493062730366814348665221879303209510451226507770948030502547062237825190427222500365574867251311746988852940833670551039416610553643211815969943778219345365386651766635590153760370295383695224119340480971531308305761272217196299682337016958654734022987778484500332659551300100268182831194878608899082298862986813969924410573682286453722315692300129311484012479048106577204759706523691309036379432539113639118003583051149837438861263593610625619743893628406207683192856771494412725110540793142669920940710132476265029410709137889008027900312688060191890983623116663425016559974213787834174511902400387383471391003691397106831738684745080139134704894124048462298893359985466152300461213067780606196762522837017502484370280624234549678756699751244447506615863690476692193311437627178015511934191535441851438195558278300845736577828849910012023009701606963061409107400446504848675137801456589109525987873896703283137695064397759545432365347408311534742431782176438951249614389908297755260798493041030843502862382724003578909389886143118127457318354956907036127881495664758393078264699734075185664265986284509636282770987598811892424634246615605338985908493141147644306551739332681105517557725873959418015193526828460512086859171526121005072492843286853463279044023784330554465954721698401549131731440480800822368002017738124614462539158858335612088617037854420819454221778744958986324837603287307082604233961657492940505296655092740211966001975995162481032578524489972366259983104379516635549218999334275938800293965371372724149158330832241028853131851738160919886021254437033839998076543004606689291070590975268699470738540921111147417530561648934196211535937981387766349817859329484673788699420639951206159992353288993780254327210995747764889249638021539861603745428438712613794696012475068484553072876058161855166813725287458453837432543907475650040824183739193851218904605702779076818115951276558038026420666569946043767608863866440794861775580326182438068089713945638657989240423505052853997712289454823814462288296715250356020838216571304066751568832031916438672466586117775988716490222528355363494903332627920439070294114724115605949985522583570171227860222336978876421903148872592831653309267084842358061485455954353496433369804596885190748665492377258708072299891014866386556743482336856071625651161718930320216872386922387670905805387629287010758280267884625737574199991944477547306823407366802022866492894140117423102380931679250727471226032462387167489191990600145170135860558052200254030715562640718993394256576427055298826928995132521510318341956125271346843303571079667446270658596883265341064449317290419850508606247059736058287100607763577060084145947948567724246710403565919302335101321038322983552455519535382618561265882543330053854244863951173884671948059073151328047101154363180508945959823013378791680168356844613509184257886566159353509394126103118848988243148411987635626019325333418756501525408883084781489625852071192667461176363967238985618935230597462868594925712982163044591567858679927965134206999000061853501572020253704130929480910522142728256505899189905245566673696077377263582121909198374087796634450766621020469136771637870845550916311450999253801680476951869803554301484258185887205644806503740790173989840300615793721156146704114153195184891837150311336546380592225396211771435544328794492047013176665308168362504381574521428271143116073666823935507526863269796112259234039460066260445784096217144015818292802071795698524874542697459918752689720927313566639123507886662051480723140123368493682551923903720185517543706845424689430830230504355297060112824654520277958007427337998880080143066066710895671724811812370743193784135149460821893481081621057196652950587886863256091119901980881251315903790702429279608716855826906148339893716211351318437478474652777016445684096927385335872190910111512871783923875369923958071786676184583347293463398799805353538865780337283910844638148844632140379666814062902646099125454319842776783858242935551913882780908349568520015572394261792847126828791653464249416800785014658743367308788946686867848458704418559606199838736211193336102125545457829283200116972120918323541157574020350900138428075917686274846141031979352939062113390996749326086374059501909085850620290384589712885239052059953465386216798934685360533914810761850764166923132340624514654266298407342879960439990111259087027403430890813318583725336308493872730432448726900898012615823872339944064385452651181192214257055127674555222482375827474708965636647637045448414522624193875077332137423737579253744082195750197137099578644852632589784892100344146176978300267183216349082085900607729363735035066509736605814635712812396841434160868924015634249278729904799146386659953886068063381040576889071808643425394583233258189173390612624150360128951307737113503514784108030751456061942641119329017980774288323811951966501706485674303923977299043620789549050030392611920540122417915831798204499709609725206840768383606357597509198911584400276773806720870807915523523422153540757760585358032831355350219029139676597881117338278211873526809537878449689977365424180657376993435215004387669058232051332248153644970002547270504456632735553500537083638977088444500472950614398266463001483617125221989283732423210172902411840328342335900832935610871089391433363819609235522558196777446831355847100096514024853503471199940188792196226236524072990463250200239184219769087550581274790329378622906681262605104341717191070280545539275306025447469778381441343822272318654888695567922946054721641710662519771088618225989218807210782807061534086955513548953307515467313471349464717074290379153095526340282311970266544494177390858168712950310262423984019127560870738511505756954469732757545608021781138774839837293744704142525195827907163142723830790343693763725162429470609437209446606187106136960390539237988731081909869087442918529111355646418675113303763418780452056025539952685165096182399562047959516269727896389283885430669530618218998826760109786903974193443416037702122105697210185622293664801888710109551654212019372295502406178443426173835448586187018038419905381585282950734252606517880492283953021279685214853165873271803587424224832250125685587646366563980821850201369480739388593505468621553875986972925764967511488364610225169095305462895567921514823599930974078822977216655120915138311421735601462529482300678373668291483569669955266411488503438965511034453129564647543416903264005911047695993546787840875673567106767817598310417278078682191764371531020367546573158239154713977825300013153986460752807410173468033462459906826161473382507221595862038222422522842627393698257286094221612207371863822754232598030772964608902869736235808217289534945105017660196303785695454473527202127098457106390688710940397328507526001366021074401569371177005077607062927505720887396302359462612062780155585214870975393723544641618369278674693998151771487602625612358755030071579690527201500801174090395545996553343198474324598436578091730721154523580382662908819176165097830821571663326065144118681790583428375764115086267086827448132976284103219477306562741961317375564624687238377773770011588204074095558887115092265781616362206169594203812625353933382532500857632180499371353303558399967009562893425234274546230627602001895211884572353281651481445496625371378932506997105496703226819329539942203977549754223998905178168865246946903309464878996481431975194065912254968452640462765751276249492907786152168980186586776662250964769545179414063204563898228505721433790460851550125994568834368530224900931228824198439507716884964687348242317189937625122179350340325672358946350632768298962647397403955329839257710773112878720328087779050546758346260160258479312343379531182075530157237247206030157950984366184557265054498681817970280714059837440707279394210395870350252444835198278471233211206955894062350355702554459150724100071890292068528016576872437547052613877037284244554686415479317369362203963781624716234832675352761110075224715979955526022557412516175941887353363563799264859622952100025587058545267351592502447448125004568532583134212797178963431834855200183189374512724741643792015272005446882360758562596145737934681496250291025270491840799620080060119264251574677393327152089861941847085968399365636763266462012344894773796324648461961736807860961607238901159976083589692380201643251559183894862781824295668646171526967680503731736235610420222729319028983866028964473077354014888415844184524612415057386190975305380645381285779309632655046754217169100036797024833847243886938382735507197631724365488237702700742960073120321430432962160432187097702096694606709073104047258302689055263980752099971043609088151055824428116272461665395775875933147074864159199653697198805861104692242776273834385214770784100033859581834979539990099563285542324308493309296817111586849504320390158342660093726803390814708071782719205554580964809803740851551061077418460807127263783431866950385367937206706410381602778704977013086568044282272263441037785615446785392820475935407044445428406857521214592730437928646612481979677703819265414424737482030075902132319072439069881506789340299711649729629900316006992124364931902554566423464935172716981165175802676746254547489735941994500745135993970874061661036834367959734385607252944403291208497935168500310683585507399249861312495514101389348737599809157991875614841323938822406569125067967799212769780034918489418677187285774487853334036244201801798437412053257464795660429600289393675725701363360612266543456533287699581254777974509264210330949662631826211518690993533516599222645306501569471300912361926101209445265105284760507043792461252545492811837808885257770740272847219754834105214732678362996292930765306392563151831145046747685106950525861521233367411701083867499528795601356772547245221706888527498655683032109125907707586474672266429297462106798264151673912688421575840254525950957394727925028365621530660330764640854404609486501145962470967634041146935407977681786581655830308136126819449739551561561228943161988944623867241315714255574844555430286499814649731826462523694737550102128977239138901155979047432310463424386043858561152230750363524861976796825228130131550506628046561917562266760778855826126267058047036268513160482678471390755284285497660878118155074422663462573768111425987078371995412494539001972744328250893451313324493778891734797771026784396359365775887980662455651210068651153123380920824908181327103943367404764205300036934646742064062805166260497137387768701326203985091989923959146578357115058476609273217194437195561019821980185855290518931560772035322130052434768718946144082573977662834021283259303262598648756305043390854184741704118150397213416405307246958172040106064124782503247242188995827915098324380026338496793860779402637441575249815421712715122361227545701862797535625572594515975864560331567119303896398987014145177693545709085956513287999925346710444825927065768228679271640498024654846982143833152483539238524432504924802721555166190785864397348189360312905976888345241052960054916745220775841358273207818799387215499754777048019457574496812626263117616872851545429396795441954067425335804767752161798200542225403484018691896193948227960850838811387962217163796854243525878235035854453132067458742755309595335709687999495511570961638212891694086852522273225457375501764448178571896964105005432357742770184330814452743997734596206928039574105958352543301090153667129812183781523906868022074060214928003197944977837766754834275990298910405649844803410333366325879921060872648453625888904384543912223715246304876029106762056503239612373104852670035291333595909760906526254088387185163618588271125556028742426424005799787408497867307869383291235468360340206441532448219881393947971612756774155332827161353261794219895917008417662352062185379269120689202611704541849358076812763300047353611536408391068718699517048220467232256519123736319134251397423157563967789360254815400815176118273832847750081429933659777143106337746103977935511262836889510240370842107166755216759528987124453744502689557532300467813071535613450638916389605215011564184707809549271980826664880165770435241726639841056702173116908037981423834341114017099482674678371042218304731837545031259958927513705538254360708612809945190220797158201074883085396834294689888047525042398120473952057849387268775152621240349211033010548393964325206006521102763663416045507992812821111090867519611108053475091326763254124146008139521043950148780324981606762675814766471989873762943097954714223373106374513935048724243687069434730547568051980059890201703014846419722523784307537902152098995557991396210229564612420864619041348376574050454482783650177912264157346813897919551095151202887161770456301513703781500016207179336002156329435158804539385593264246072957091424124460342929688372099162651682650445221658497943089990930445689144564170906909230227591225427753337587785037282390433741743515289788936424308663391104774833113249497988415597989641163365056945261175418207226091965610034956367223269048263122340454690611116337953681234859996360461690125987996710368933316740334490622400731142135068556853273296281558674740211514770993947043798446971022683422544003197360721348593169056320638143249259770102503992027959527861563438190014159204075610372371970574864725091516764221279543358429143822603253123556272154886937773550315977660380088152129998940315072488697972644657915185866438876997097371838237852098560467662364008513096702915359477430999927687376080863473591304641515692748889542365662449809100890694594190669112008897395764922143188852170194011627655947869349310678713045581178552145820263522761985587035662272307027918915760322382287128258240551021651337202505397166317268033670983199109283573217737598098559443834699435839537580795863131366318138162791393183317347217422428481653268136856962756007711759528059964424715751566266195433314159696905641109177845901701054376120143511288331999698292250112936574931889088644557828510437959975035866810565775756952995040214792741824734121968283721412269817299025117342731592978016237290269120037794969029996269976178903757340689723775181268979682162883349957541625672340230023582389250758549165300537858931848417229835005490716732087275687780864960560136805402286048055128436820509463025468241834683414437340643331063072699579125163777358385613937154444863448987478201251002501010382652143172694748670960250885021304529109031098883866584478390661856278493759829265120009582139514326936557338305375743084434851527645075187192550252522697253013144353422656472750444659907199157021701668739592155544213642586134993869367639881784547584332513811904980943860813015352920252935870805304417639303170336400759434190071338356741142831302817550252339863195821725483720559062498811973882010039660485925602785174207889287678762693887352539247162830296614921917520679497112752510610761028353653848963810604836409325945034710768062990131539370561537414868402672326537590361903100025009383691889236506800602265765181907258433969929078958219443551454014808807062157067454822879230796373908468261590905627317503183531539174282882183927962681758801363591560406557210636279900157473533165921389107571316687561510562070445202106557411606110680311434575984731866930874749379379334962409540716995235409957069205603166568581177620940106502449700653570675830285362575183410972157460726653846662168745565818679154289230021863164961537374937538367448539407118747935556388031752741510968551952919200453061523397828789714403477676424049191700598740856309971167906986184363418762703692826617479765602350372863782254899152372845655414585401510873024908130454513699306726924344597880748764879679586512598414540341768252575677843921040197756430276058149727218051886621965877892819205143902817406625207382200376953270051397459354262983563541128463488148426019962972402261353110412686434214836873467077433280945623349989997884697807323073074799769295755765040885720397591351587665257194073206241767050031255125233985252098168464163625562808731242920724479053441328532366821592384184340425026514768333766669404797459817787690694326529002785740953489228990397987733339650231844399540028856941860943703763137983420287659515760692806667065547886068218904404250215953721165301134226224135251764544761014503906605020607243245178098157100711268170917754150453172515121089644575944614729415046934820188307667161470286474424085353717486732019166843956339417305293447306842742845158297579698756805151151164700962293100106602209132905855364246789409176038070321896010042010166296550486522167870775251731432460842476535849962175309320433645770481903710497078815229009851557467477967831493400969370493401363077718478366082280082321062724157764157106227088120067731564440884168647355968711440770481574343235708094925999267757507793853678062291636279402744225598482986923083887764373074686684505518776705106496052136221003214912017713305878235632138730298803109336427641151050926951000983544412304681909688781557532872696385198845720012168389268542758281241393353225452788180069592994700533434652303520365223972010347463534741138964394979792043925754703055782939639261134157720278640690837634298320714580971400896201762562827926369405840785689090828125080772996679949342414932354023514497035160377891606105847219882017435948432609426768964429233591752388008357516479332982016471391101343305484554531445076133015888209792654989439119849259904391424967840635172715783317906670228013386352553820944299335132003616560932082940086255522958527900681906681882307598243321506701807888411756349737561191124564344438910937712306954934861996121063868803617316845542760157410040769539910933127276822749411740421666499889382790622229411968544319476749994257111894532289500392887809814154469015436484311514547680611588062192275747950844115329607599751473617902570609620746590925968732872757719356782242423807267955593096464116664288789093811875790179610843374661806520222954594226418463874800267473697869479696245119898161003870773878149608089826591909717588924898769442519329094967774905966221842011136920539727548062196852091196692494692474533469143827640790825848548078271601906072497122131177830424215856073499839875636159317623457257002998435788747377557392786209849361504834587339316869826499562323417349132285571762492330669594875511714245183410675328990477887093060703010495572677816595502294009696659731524140867563035310823366700253044307241386082746860852195230915124198119826947020954735224250271980721873305396101860339331203002101158473958596698760704828525993663492233120076702283454464066937747685872257574040404811782987561020884180867887736642589465186990382483821052208332322461591091479960394464199034272913510001319435170333851731760811175499935819773076580793934043218546355095592333679478122351338617495531505021357508384917461544795924030151070860789521086344045839226189989935902154855539145367327294216477534390741446968337006014910418281636509222652729599798991035598324372975730163593736944404293178766277416218750348921918849444301202923373065412964829737634305631545473015693187100644556634130308716737636701928626744321199698328593819735522120703757843325361165897264017292554700673994168537585243266278559139227977973734677501935031098339586546617791100042638243575515531376268253228329663611359492887488055251771086586039822940130823989893398210105911161033951851863609173768263947948774423585319281538461459056338503131900864407184177563034138072686096445329903716624764437791146331221897234601878365630454047208525338004552068689929117294208307941280703436895901292796128920234196753579699990635263011892936887511105931280513551624161657007917771365486428890334742071844225507424013985135448728001274622871028360849031110152490105861477106330947479294737412371615063324854785984532479169941340187000831424917282800517353365073867918091628561369664559352270287175305963931457090452395886418252134737720708713449439858975510443433933430038653705864259815798538738071578320131042279579872913433139755181264839153866461387515177733846504753706450618058074199223904877491593828887078960234519153476583853799207851652806008622337829508988648581888599459203150001803574988289541675632799166436096455253567059453293388779472865193122347979827596331131074237676557264698658029120764853030945231890257113163152191683425066163266990305396106366570624341886579496444953704708502048870149519608000459916457319053443209779706118259961608679607361143121840816822581302670605330238661111811007641905777832649258521255720193173846381463804002704352075082518193219467588343715347037884357067586524212765858164257519045650350356294737775972053027718042774555867603336308651452556635391548714059519299240130040410817808294149400100980391182333772218706613941759944837205074266202977884951440250198026163825169124859759849789527644879347193496858281718224433622469489226710997333512464255361558344234820342568399083502608253355457393178884837127165058382969321597782647591247197554805725541299930655834841933720638836221410210176402902182994301207978557720577112798273521236900255493561360908620685236782156350019718847006937434566804026031244177737419323233370216005694239006774402300360576818364849625928716287286714687548105256349749845675853474784496107298795484018397604556028154911619238089956065309095642873762659722862017453964931078886211586029025437608129100048027610003545618748246775597984711540023205098970129078014196806737392270296540443598952757563628553221326466666057379740205452442771114718151875567574230963660356872238302290101153358491747013135692253037868448665698410514046072652166736457578445274047031073428134430237099472201356191901965566558072675170230146820536257227412251677549031328701125038768863306896970373848597113158991829186871365326532781754513944923820464360693355486503305464015416584733805920456036786757036636122248583092174984181061621574415791061603383378675113628409566809148047698327338956008818596635734844807003743250132001736134860076544985620063770792336168303864756668646313819844109330828051807993001599085903933644059452842383716668405719191943811359673896347367948172294379617879502594433254510806700101915984782235127529467950203309815369446719945624661496617741671103889352838132393896446375038856011444205986518210827153546872953051245407228485798628174831156139100901909121598526284674313514387762697817464807822271397171406629852556846429179817958444733120542284295625114600397253139609400082057446334903004030829662706463167107033467271479528639657019333280660669666340772785892512454088949005510343283332761085762360369898702886194164448429950612028054460786123120582674372778457403623809384817292495772934331194824676276488167059235846860766329485358128855449485089348723039463386602787455953304111215610888978135143838805828569922915891861516798298072181610519293881269459338853791543810296008596694290987848966946154638999888801399534354686692986078895839881666833963321090864793344302910787970724112859403986126577001961018481662228053454065569589668203763346512930020016366601066917500098011370538685475725693172017559704428660557529647063013711030750406452345320541411201615067802987067094157770119905258910471260168290347983107437495554955078103245312842920897020734543040739256399605608263863105536594312056997493343860074808216227355442202191507130279011233521267950808225346711086025446224341286476000096991816572587601047637922905475287593310901151129907390829315695933152104594730761867797881950796899825247697521947606562546438946680308900693824855985100725465458318333296074314703481654348648054986908576089735692488010640686114678269521624030249765021613929651708210030992181488443364994880766362590152261298969763316646032544544966352328656246202953599738803812743775598802325721044460039286161425006523696125013106321141170800944391379861816366249145479305186222056835557636738526342055868152662400558714887309333734182881426900549212620192432444092160426423120668947174409750473640452016107066102379097522603444867495953957320029820994282812773746006387563720759650575717420120723055936727657346288747096547903881556785604585578891809227774968749535054894519538295310747722220549596435325811846326296405785783589886542911822082486475329773541481437826730693278339050146429370353136902747020260515306569138543247961183435846442483843177531235607548383427913885647175812431950910546451521626563189632828166406295176430998718637616094258964377206746669943775951660839165400056413694803780428272053387536509692931681758079573706364281732865748690163061189977855508475350735788328495158210596952654112358785276742042020894056223004459465685603060253826109780547563692113375093326370015795402937011165985200766947113140832261611961606926334830977243133008508691201888546141416276001211040586715422006925552645132878913779838298802787028491718367070948913236845763875010565605951055882368047895121021324832336693034919780459227802444097228310621901647033911865208493599682766083075841339538774832992539162018203580539704268843868235678973528510958412256653311369775342685693156432771124326382188423771995845347217605113280929041978542041325209766064118104643329338226534112851918427049420689606613425238307623844523136588167852573668232990339917045976962801596607804010138947705943402142452730405812910608962910502611483455793543654655964513497493674938849382392261106846543688542176830165728389840609349055286602186636182507975652919475488626007915392737018760804738390543752701755953553388216930119939269213593541724784155044408799977787529418089452299637157006955199947320842034416180056391208599670148733158993375830923631017940743928445008037513974657257631184905876722076994837264358539181819706421127367887398069743359853404014584662265558636471606116094046766220287557147031500485746783358651029400603590662413067340130373760733600647712243658313962842418874286957216387918153603535329223909971651085216855483004817661632373809295203282644805127308886281705466043416438833140243429299193694267909666259041221614176751670463031860462930152176126046469162587295593548346501641212493329821956442543906081408941339249685224128396442844117015787118278021703668940595634468911606643357481124152580060503970392974010335770654813319466136452256849524137079994979610835140337613739486084279840799241539637070020775510894830038087033326028854554442369046754027293653838707568622102011441395205937566039055653406784481581533301730405017876495089258163154517852774836711911500567434346926796700657348385525115834821486062795779676091627963105106350297543441148029590057730329646915716510687426933792753781012725763123777804607759460123256090387027838136525350138031517815598315768703458034824684418973662003029054821487412469522262311498499172563666907940091954782129030449324576850987245340000731470715350571503916765682643449654520235416458501527587341884366130623057450202137756686188564893274522298910439583246783233773600705504293831149354853180934357395626002617825390971206749792106075289474353633545047912608886354391018993862333341705069017411558463273492637556883547587338386445379395580220697617134713236745940783296629210719532352470156661371333383563982097323446978609867649871356701399318342568799712926176606516409509838030622492028326307912177772422158085423972358286561971449567256679704745964589717898525813842025748581297601825400398357393864745854050888583364174241858954303656389333376501449551720931523495029437977737556898779868147521026065404880531124233042096722659183479336561025275709725059117615554455984717393446720294926931688866700241434883819994847946592134703190619632796741543264192128564125361184286967781828436807879205150135745450615091889116154305621037437315935451421427919462102198247118653640366936213118323177854076346631532723812528821617166835779970696627877134605912044740929314880298058182668681598851835679337680713216307486290303421005485377544162765982007908322522815299604925091994165490991671328426251543442110530458193184334753727355992469819544088668619418821889694916365876333534236477702315498813000467854809304298329342148159362971942615007298244461321201918830321920642453969441664999010880354503354460876590609243540243610874699920739580442780562635981044351002738427076126544233422892772488595358318451479326360524285893591641246069433586083552699416205121688014285998301689119135622019117078460204636356457662691969731715841373492819392757192255997211405284066478780815746648291996576702984727446476960059324684192450291792332948119693595443345624982453396361820390161190979382956017456771538729983398648098029407403663418410241268266218424996216212792714295490964563157559763305213689059904245253829304716302516976336904811837854279690541211308921471465207181092688674754942453373747426873541565067058687930762018328979739662507844960940134753807528533223964090440421623364314969255897627236202241977371064666440660020570735664631253168216147106346433038446907262030996646058439893475790816200461840096658415232765562471218983567774250965180627300072367436953281769957715544749265859338521576528140742051732160692584326711469395175725743459266257604803549544927726829504851232685919119382832145717487353891127937437844153885006297931077475760388654803168828622557813171604364797099483497223605017983528787699052130992434257073933203503295397617990631973240443504912023154744071381625189876685766697504730871315878084613034104627974551781442667579620462719100098961388174333078415284443601714843216334171196530585488818983277650589956793673690461795043434941887632380622840400301274282897520048701783728044196213594973509924506571675687266890582483728371881290797581763565664434068103482468379421882234163566731251454935255685424109204320369724520347984902844072083215333951749769891894219836502630767329429372431211538875300843044159935065475447539475423891994247759194834962867377896303589669325255695759016146391468949383751743319610569736621917465729363303464788597859557012059045787619274821744016934466374219722597561479827742393633181537803876387685361651793611149775408599410475878952535580112662197876987243517514003045740853640585376753117721174880762456476540735910243756919177965587780656673772467248171866215644475346724763200124211619421905923986752563101242975212186175895055709796814202408076324633622519591713169027814364029520499587741185457689138829859345989238061669318293090181291451509245111553578793823364203714808716614485624815894604150511315093840257245799917832471418926940720402816125082363306735978177004012919796310264915030126291361685467242250466057395066391127150466962090812678458604606486958870089517595926590865044620881593454261631686777276178762804753684178203075916264294024021467839612234429092522479386064553028223891060198890521894204793414270796901502026621865963982391508133724734083427957575624208693867443594256581116494596878301075969583002870233571184064871114345624285857170199770286889306222586911654968328338761986046954794088458609165882904990281987074267458816849462622022712472906856982039430068016695777603063529190982782750273318646403451339858221188240566898218471007643590769872385374572483800273123484631114751427180810549173851975369953553475657808899525348197862554060164242228132011528746379219034071166975706865164167232540211492303988437170680927370291169727146408345145796728749027913132545306608447477811416250376210208047136356446811491504098147538164389260594618161693640945146792614620486934165489754559383934340344082588830160427041436163849073644389907100160388370384790106962579422223763645096131258575174787720790232391873721192698766764076272462156579923036598870003988456494226761838998512328474871586946515184287557051498299947110131261036130518458760090603623765727245011114041116809156856587488692285292688040601769243113916689174406873340773673185213627699797912191347918868725399122612950197991823345603905352526184822790506155541915877176108936532732696210477010885609154991017094817956895681065185515359624416774212900031058202652064960019372914771918328815196135489623375441669728155885347282687687867346824240379261542728668602080172768207417740330894331897436259444709255849390646603421522663033442777044245298967503462070022248582129377195337416179365854337483215806069326957685981361729353650578083381261198473586328891670158139790941115097678664129008894652024397785342168485376482745433771624730808446694930019558820820320047180454536006139076432317520896611842206790536694871817240157792604080677398471423037906087029583705010157865055324285990895308052939699323508757927351371018163204922347707899344121742288169282926473930174045769902391438458485853306665795283508767620593165269896623294143578330017403152586139315201996506547588553072923473595306496128897448940138705743477906738216623148861805044951022854358740683269631552264948476261418271697464502478237549130741891204471365174921694447635181521067889116919443658099500924045748011153119279972130806505068636366660445558675930400744969703790101586554230601282113968455805496494464520459453914758002355690244994692882655310522701431645993201570977338488925453593512941543591803312707478856502373886856248756173443464104913334034973280934625650135626334241063827629763560167807497036936947601213189877151282498801224616070236846032216437258090286158620168279247852758453417061976994974022623691178310144209862528396822284686667177704838821271328350285790488764041652462444142049060895288964358895191025425872060631686568832901149334301372058533600075283149635705773364509734376876687040855567094648947343945827540937193945439223287252398098605394192386456843740314281271153727790489173868292551552591554299482743399952976592666618783430066458442005370887722823696082862685932433244948392953886280722332415904004476612707083404667411001278711936358701135335514905153654210175617246692682038902467072238314832557488868068376822311154459907610252667016208856630136398768171587019562628048865281800696503963608817264157605754503896326165636370814574629318298043712962351026363962763882960421794749647946143618852366330623574007835438443027571827074140123134558845568947560326632264768907820725756569525271468502887049958051036308103632514554358072336665928877710438568103418388658357522519679879284851970211391015543569701592982293152823049393946157959907336318419354918591842336311577860984427394091362713631725584478627383504631580229671683975422514251789795657013303572297003035425162723354324761500608842826148029934187946656427038827139906352568615478035399591728322999635789175200084139456904339522112822297648288274833938761562472333500005242049476953494046985386185670910589262345986307736422664605675998684971440613457090827168986856229860203014108142131999911858101617689607780766994990684747662631275350779981205996453896881743744079928896689311205675797011741986057416450203514931751727644209729732496059673970233616899761189827178370236457396525943692347672723879921750074177389685145913028776944542147457978145242072595292772073680519675937066917664366817733458115326281235819049151702097011664143070511369532982714030997586789284275037685963955086028627483125373148618741611109931810457051776494803745787118979757395314975944933017426678655591193026781336404910823043680050360762231315401334670504242665290196913490466344384140564868190634701689671840151164034178860147894722836117804704204344342631993579438575332951323493073686678374691392038164922950583951491826585744854885340788308770513958410783292317912434894590317859447067531900916702180914321008727054297930613780199412190264728706068020201070126636315447685844593861545368397068129277393988957408551084954004845417134918877293600129970702885955062019222836260860025017163363683893731295565227568700307304720711305880348393877358141193090141227919361921218778887121782580546493005471797309775081073608307787646952931141652814097803155123993902563376735625277036464131149403349467039840696310974271216686334599311755473764908828660754740094166304661902474348251527402109225377565634523821683111991541046275962688968924434410176860884947971654508291688375050986638320662574032543840456920225499093250970047143872720529105879746910493704555106064446098466825225633165942734009304433458710109412962750968441879487150977637397758641216008312056386253297930082847354584135396491093047174890679713381673258989835922859178437426261076979959667388207298363137486745270145426571805128219579706960725327862093168266838100580439305444008425027789709730162711028138632840471511774579096606724489686733725768435933671500301343091725760708389193312535486621397378362710253286686934793116981161935918124546815321133221293309805869086784078022313759589971525435171439760867454282667481058905916051269282259992705829805747314462847772143689831232604182037302656056954745449465520281631446933193447590725354496753440845481212058008386170488031221800295469272013533314328301982469489537388290934505561172815024608819990785964225895092827349234382494590832040528181952228069472580498085243764179798570593375314882599526508022563892368668765720003987590934802796198142546551417211924018983731144994639558789044282579506781929843026771635286730772850763854017153849946392586799044166540790319578021271642716495020039934135837793986575024529504264701075567080028327588502004155506539837846165236250339742974398659746693878930134129940538517540691578207050360074159739048179017882892182935887875193368972702846972070806608901908507807305284249658545120928050070417034684376949805850736732493120925094092898041496497220094135368019241820791197800650612827178510945062374695652083246560792503044388281793627574552304106147970827657543263563747339856439352921249985211375098370959807267174499392220349944017605619718829930191647921779282835942498552925962434812668730109492213228206727969322618785720100799063922651943334065419790609467242881716166366658497212817210139297586721345540132050683204013413308309841297547769786665525987961398669985565877586960069821498292938535330253445931910747813200241789431007874722924614411711054887979168294767533949906827557423226825804435565392633366329174916448159468143406240723815991850572417324265076844287037523681367217607841861233406899836820135382825362936768911981700701346136120327226593090045282604226881576887140050834217719400708652060088534005029625351570502367684507017807861969306416852189822603067011069647322854096968159894609822871355433396781091366690245211659869189707210485570274471030778658389477393140639109673809218370078449116402084964544249844263762140421413499447727088645426202281273445665827671738549348162625173362841719272380666552915020656896101169275747103740970943144648879480471651581545871366334748542014846099508599551382446597460762375408695878057151649984661696896843439169554254562079186472716606981350118865338680278375318271763375002328720559180251642576022496850854223488749025501773564869505687205963640921275033161261114773939909805024646034494500908834714317488383825758650993309064950173081435980136656289379197257870454450063609139094489600260277451942778171617239580587151708278980270521451065120970883050765666739751869450673837954783873160665255878614421736407511608252298427961420265279168420814843430558091316820533901381567816715472067521738067682186534947419528083653399468982560522722890108767952120736594633643814330602360191277508694758665523102256152043022733437475325010194005525758774145233688587516362170140549942544398742216295380766843128067828925845373697000080591155904210246113412686831726730516439308627860259950023038156670910888499285336660975401817470605593933126782413946473946928951486551132042422928709318342985231211934060444446923592375451987806922879447057165811144174513130133774933472068816657967169920598561764537590135894422297685720188086873963338996305277809620176807769284920000549762039771623979616153804789904626669032633503836546908002885847796530634698056947526933898207936311741029388307547381837674700949509716776602663925065931075773687606989074459258206086820365582365970845178618001920014755866241822839424654970961064933961606817156381509976562731128060012429455335026826445701047584501974404666403836897342795516560956916510466944054969690170035042064241770589497767387855156944054316532252500535145861883424407851346210138951319817784541431906467182321265988598947741506959282985794072243196421181666433516111959494840876276630283215601772151110547992364603062156600605485774248622359432193394661790020367938487688015963715260923910428394391193838124923071064980716445490980882337275247024943532965575997117428533741416607811880837449120046310961693881719233349244783937392445099659194321625281116212324820641390105860758012638481104640303659559774227939695944470547884807851355877042108912418074590078759892257471199928828904112928442145622471905582440564570565831126376494656630276240113287684934526568009217163778260703145958146757969276827522566948459731815078062724827087872088507377537426060889313998405826359789197034547613106940281226655180068439002821931406475368638278861590490161059474539529864797386704926942152171410455502818010199237852471385964849319598562961703609296710280366990675765320585323235670688759391448151440863007924993987052555123820561144395032880271282306617556384331729027951303410264307923086814344918966220363107196746147893047645502622576875192381853298229296684664390015692454835138782679055783374901926934000341944930921231610113701948033961399484898713400056932585019184911325345976832661856685375020208270315614893990287852781081330480152143628786329792728696545745411566235645387688167498324470162349888731748400817241022143249872760296490618066149361055019926369240911494910323114278263779326616259999584768351117080814447054120737242018663721959709292099659600591854152756505370095129706734795715846860349799627745518904937900257817312606180144562218966017497880042518553948601023268805724421577379961100290607557438743684859355893602125569369271337608242570431295290007001092676385751761865650979497624162109985720620467044789810903819235094499159794092987390099047167777115798684130690855902587930184841381630935937599463081829080981841312472890589180072564123963787556534171668252492838858483649384191755586273442532482217095949118927824538863659273875596047487343453325765637534751937699025616427445622947292602562765976624517954166236030422081727380939633432807577393304068611766925038472811746168507377725601875968668213193504746314346545608600339364402814008895714553729241282172620260465883757343148211461696987153564589198949413630717402114535099696940692769291985221733644825802645525889772314908023876885505131218390145506793436389548150264491002466624462299831251240610659877387548075086476752205655933984192414834567071411356541958160462803338493606323312890792520914277133664747334850035773032781603043239773645075561103110854511619786754682773278439786011419199566565709387668783833541381245223113091237728032469641905458703900174536992143389231676633974579848947241751053353054713556650401224628550985086490147100219528546576832046998117834427562501863322956160617776239181651832223065090663770574783702600938919501445325467831624540735003037988137196267053805513495055535832414493608614809574480967292101054708058925023718110436298463631695971983585795678341978924988312379659599572799884710797719419213369625601293964728324195253634141377937081398831673464145111018138893004017458857694642032904568519613977107246742472187062759438352286090115142641558394267064044096528436250380051188446307442231067354396719097763398069901190800094591292471613551869468588002710936852826202354282388455125198813059387341292781903746229800411585563398094633650297270805680886873616388448739749910940696401409701000456412606754199678006594980021680221329109943061424421956505275852493098948680148831602199652801225812840913133841688373048030376972200699489246262700977765656157650798065875638088872344326486246848837618533925938346138365591559707925598253600083404664561821860883704510412577594816744548646821989498404834172612832102649935541578554789516458327806207674898630989649471312740824138631700783178523723350970430975878238988400270786400125039680732163692046272304277809973891110215353032414513906755541635706769636662117033543579248737667942448530986918961336990185341515010397981553226149398773542921872645990677338782533395208930654275719269276457827064901781053549238066252821710342830309553121619829670549288488156321383103857557048587970261103307735127749046064539737217928033943310930884373416855519208919215869365066302762189079463119364874969499561299137303376261987116387643384534521210544760373708147168705313990782427038937959851837991693112736812281746385578455594197577228894604195113143883088796532324401039052283437493284948997432085599321986847420444540534672928332000916784807485435350728461093710603526068471813806365215611654947875017789908530005971396232115943435161636567536155305066849812521650531504779867813978679367208693832190680373648510793112682751935356863793995852335297648887354774461884069742844830785704475217455997602777695790359756893333212683610868001308887791198771359561345521334043424512189235353054191941344388642296298909690850100131670854416673479156426694332743002525471798422880109162541483407029325554190257794854279594332503629314281233273181759776043219590763768454023601408618812679830861613619119440977408382771861850204730070510013789892776891519480721952243664478174969157758248480915405628491124886067652507943917407540037041421530760091512601686439512253312082618253729282931706009792495617528599917539678268542283368921445219872797949973598560326923273376697785932428554912697455883813053939160516404168471589857597105608353193264963674445424695962321921191237938298575934062501883943354966121935857604320813111095573515143826770461010447714498521973300695130691130149872607178837674669735194619858586405195622861707692883661726064526261565218974664349046424500370692588718962198137688950691612650975026128025849561700302504012395138018996869135665485711109789596286009592949564380621665202978851075826774494338636742113376362625193778029570825827815518467962213286770180720183084617227700752031670187578292584704333148755869139385830981848969544769620004898246429694035092051309434492063750112171523969848753775704897571225205834206173538435088505743942793870326566616223995668979164442172830833330451792012235875273190543046573192530641239178746418825268945842390257375912971904458190105857623232587724931575242646733011177964089506907085629960750367479166425720960454581040439070618684575102017419513912315364157674899634043371346825398191164271064151448697330602525703163859618249982191561182041080046041529354591611452621631145328903874246171509512328457345520867415377976813656631503240434043983293317760657348096908875347814561674260152578815064833907981659218678293162416186998207626778148355870908366730041875706702774809913833647628072227218746269973263680226882011948741309452578222233771010061575261003878381697075564766201693699292989337034676929829891942449549699131841020861760181027220342678430057163257929322539509368624885098722820211299917834560331966649236340931350080684971132040529877777654056610234067522224280856366656765616053745817275328349025658160696320516791189604395836420540601778904584682863259077480021755717574674968784111815177526270902623745376860873399892672757328383940186136560148638093425077982186401615968531389697027992734056819508053184083538617976961778438720910488673775879054794839521006718417026637026684584370510839106225425908904394904834375930089080404760743127260474145630632981819166790957425075563789627291539825625206416713339086556035108600788151059244837482589092030459965101811422044589783438120571775059256747728580536645747372216842809907199915174659894942324590586343513093938778736489292029609931103840439360327352573579449783303012738503745255196832107465898167469262164686175508589110511252704175837728585296778334046139336627312344321776773280081673339100172102121764067698927156591873818396590429872558765064545039765666647327817525794004208961277525468531940538359322492828110478639361117288013212963576596989760013026985965171541605950310883411953760037034240344414150727812197442168124412801691955043767499635350070351485510367083572337076007603379243194274363204649000235567251101959844694884819763191453956151070918450003909601624223572022366177779207765737784521868921019873349467665581733877218681077600549672696332930097656811043502791983192825765136695992510076397310430774174279672442997927462188007113860415297997032467634063511518104919644541250832632687066182703144922558732583117535237325557450869525268357167575625035829899558286921775549660356286189714540920208790105000869725758630095355286295786042040117919849121103337192239581748714082267652880584480247269066600837869548424393673617416211113008851908144105559629943507669186589679096181418622610931832461531856665996081809996599155687264416796209293933088219673897367101030350995562549201512891851515736857192346718088184418904607780562235715109669379655013122204178742196732209664747923083052459341508661857820269303607069679316267264607846702979406254321708701134362791795051215146487897042253960743225889773347143930286065243319124590529122492291814566348478188485973490423887243080775085108618071592418710956503809958381846214413557514258509153872192621379248850606203662863406011143064050762893898669427443566182899981817669120920266801002192016577292166797312906126423110454608695711494927552019230526903195805171645128774441266200847637040629317208507808986071651539024309263736257810126339520732685177984330438813930668822867611653191310134435146530444741667248319044174234770587698558213254601964569735682550375129439469512855437788331481928547661395842250965474179424430018817771806023203659033956682305878428724620610337877990416623179746160960337844462737750605184847782825606739430196811914541134361738459577668466974072648338256666749398510030847738162227706485148376150736379649352238473280650111460954944180858470215181498033803945716854428471970016811975453115880910214274051678055291121120004885229870528739093020155681070893799948581640059337669485922796184158151324831090031408285432790251859069723127260225458020121359529686384904736079343749218227963019511544468556150286808976646892068959923122509003242871478656297619452257634124564159666929874930605391728712061359729817770102386426108066653726773268064617457060939727267716673369698595261288677121456534266764426822669337918281343298269343031195734350146629781671701948519916736984684112545666620326236601970625115016091128066559692200129061628573227690917655857450586968909163213300933028101418269309713252289958875294133195320811618188968295988731759279566858186488752925620267132320048846736393173888309824152065527821437514174279762871454924938423553754018114567191947586817962603287472740081420396429605828913851335641372265761205741454840233223529831955484231621248662699773690268861477218225098565612775406916393421546010880494017103969556999055965650951949491903480377302049003278540251942598242859395823965440421165019013532325035496947595649678451608104127966422526384565148384052542936249987817406059537989538476004336913132563158003415933346990220452782111891455063483835194703049785214891812943250025312036445330007882816225321204224927004141482085897913291103634343476419229510105229894842638861587246267005349361470038192014930813559744948826499086979554266237805311729847026252572628661970533312600706841528459035279140283721507265671832891913210979737312620184023316095028732796284438416181796630040700607702546048440448450257859297495830452612761069464527449709485581490055657431623052274054976276248851779762221294885425072871345756524807087318005467047723793720583400638168107035961379966413807808417717751607376894356471346179352857888704158243406376384863137061813978721330529698038741709265955658541575277618514213777408998427630662549396791697643932261853651756997893938561569883458672817328696749500288196587697691617728380396755971512552710164218800216729928569104290072820798348721383436945070430366115188322619120980106013665625402412946221936221574723373196559296050041035840504588874903628712700363586757009450330803839307480310912637425431812472370779936792712899918970358432634104888403100474056331063653035680610083393601515412811478588319372927527730862237551726803680375834411835931795515559605453482935244475786980419388183634035746242110468689663423120877810294526335004751849720314665462985788283066531795813285336849905146898916727571774242130229936987489645008034377184546438868683762328069813723404352960632259984584653915509419989170576151841319724399020632205440685618934220053936778602174664235759744860418742165569717874464646522520262110048737624184458157686251828680420939754164346625225851452739258252004046781061692253512786433529301967313969461729218418691908801677320711738512726937894495868924498618701661616648162974662698852371500198714480206267764358731727992952529979231899150977411505663999864396729545122217441085689962373362353102188362459658085573051581740906755085020450526859172957170499616234711616867587237531841782254645739454636163829001230044656828784972075421657381914604786136069118898490410221966476841158574237402116966005902978623574158123595041362559697283615378346138127898945947416825872353266766258611818118979803748244893225489244234992323648832368245038423090266132616803309001602375869969119757553196580854054730770156661448804974968437037178219008452512125563133571724944821173255155162350532458094119081673742108752746989073070574079786133624907007199739239744254409832472764737086946166137556738125264283695301962497246971049194711641826787695380432014245803123741375350608623029455520490417165889545998093681262089179562477915975406987223229695765370747423606299395639444456221477683230735556960867860941380473901789787013269616966695580950612824772734663574606563210166112753633493102164885809659675780507359129756729356240646789802705807160600240251694737002603877711339653740879004357553711563726357444477122695856176410225059696870860650104243817182101621177935664116024576523070026120455003257322204976892841896521041180498011630773691710743727450301636464484619626240767166698327314198146693374882407688840486132911319865372146199426800882129023625334577335787596027162760161194616815082170786211439243381111291170354629668929108955200893168096699593082930364402563286404153113845735040498118661387092531472996411039210309475623852049731619038899584001486884703813336315960750853662250615595293266155961058710985574223981953966646859655389128606972226727651725711522267650832191542143069227190923448840494311869860114889784844226315354948772973338049356447387860374612626740583230873245945367831186071374120093820692364366551883787094311105039710829841027897280005261420644950936123939394838708144173723514956565233980432514949341846841057348642148495337403428762714975277164989456603723461307951174482699996269863007488817703324973441211220372435755550729304647302090526490347056920408213723601953718684685600439381322718300582845337152155613984850716590029600049255875866574226775157478898037092007539004066126448344432713554440606619439560352224478208192663804619005085516942508437849237916963523875125049089280733067320133986800718324792329386186024436469471346394716187784954852323637881404199396064699504095476172433939684109089793184174315835542068625342670447972511011417987029592978183984864370001937795404213398435264512902493996506221835187679575948552427803661657695535244088929186533692132555024465162337632258969753922238740079267997400681766438697200176791423628555400273991063310992875138526303546475843278550570637466571939266456466931369497537937733669874681016633897331483259849303550104102523550275221459917905688764253676428833618629518082122519211340729630576217270242958525556831164275254211861085875497720589294662181112239303357044797505138074773780759838356179939413618503756047182379911659863693734325159511835614769086325664388374070974279037301209363973016202510175667212217251554802422698989259355625848242414308843718810282647391889140041641278624982931403807779085426681053668134846392594436282250407623137034960763076582536676952953859665192742041883255630194790203067925733460759890965984259504063550971370716943342605011303416383961535711057147634912545992416312086206824453910691069304087274620801046777677877250606675744473946985457422415895440519602428906407864675415123503483096685231921211435388114209617657602813712321130691615856105507994519855094534675191906613091081240691823585423450880959212580755265083686474785698129415365946533339446914085913185871595502868953648238181710912752320009565622516316765819283968497279358816328162155207561412615706963604266631784587400723437177499823914009886782995334971640579266066166504724930847796773856560722724290275686445016413152092425909920097258094609033982893802979390169550642363306071592376545103645412193339221728873962914545290914976178127928187251972985964898428911571567844420661662562400998929499381678951484131765107434416767826036804654542723039895323850473743907093289069364663462781047844923548889592052354737581733047139800590796225517225914121776810939898998427340178063401312059848707713699323674076374392853823673417943776075945436335840188619719979143582807472348467696146453657409069853684965115224211261141466086063246955575986307539200943140960321963951943498758345796302591976084391523656931858030392630588472225566893515532302432713877006595614926713769554890364536920713945922449776333854349971951606421914517320730174922824114132500470052326764207797767556031985476424602772422608370329645115252835714980684897450054656412476833281951639822369940447147424054955089620892237288552350971731075435112172240933432740411831857772500153581613477854879274034135328338280512621152607745354646940189023678688632901853793636259580566277403388834118305426729736795634173712051397994252958176372621461546175366197730315043928366138221456620037447373234557496780966853613188967096720769449157882067420258971254113737293226773503671638979924862575516907909673614536874807413849383620338512171839233896178291879494273322282147946122728962634804635742977167033725553700521544407297305575226356766476399407515807565091023644194559103494953480362774584535461972191609537870016269807839324264048976898397722675601048420902985066352005697073303000691250773752097662939180143795981443171736797960007545689274197588940907645005116662891134470724654729533136625622874202439974642938652160832014296898336687233070460672873306860589230019304614562269359624671813815188426971488923668563464142577520839834383668347621996492031595244165576629847630730347075654489451018295668245682793310886297708622343056943719235442922199400821168321650848005055232748777361424492617481679256314265349699282535260264129277534701524211680083089731387522305343421063006597571112546502940081713715839213035106030020956417822953702347748653739040461395474356555864646055716337145697958245423235956750535400278517506424892678899642021033057841615752431276126117863607399878575621785638135580836269194379311227279915527002006388112120792598907832143155872809570142421366327049105623528153353293938282344112524173897992281202585301863001672643033161779908958025946390180537900890825221533168708287213347544442515578769479694463967927758045354441314560898425421864970288969451455835629130765402229839788912880346733754348368678686777583241533388528211718045910641102628678724250108105810623335487445666646642187285732670564483191210445090564935643813522012277104788702003938503781729731322303667031329765987909326643157248158518784174780253474353337841024092380639589592949123005066036274962509262019650207086181647705291068707405534834818302607857086156253191748415367987066398607767574097556610787721510007217079867920321034107871634623583660674677092018561437292199128624656045495506566373906442631143056562243352155533469249016432650750408538895025863485076223545133321381764209820896802866637354291723620397142637013993514087960650652796410986212074470712030428719651687498866412771946220099875157845488044407400707208880130827315247301986001019978496333253330406952561073538777634233344691171158108681307581122017571022813967058659937155275057355941773995973135447865186286878535768965940403203779627417655024839521320225474876571294697769097604692126390997771175175749274637955163890983369425755154855714502594603359446089225059500772358285529338917445114203077762251668239348555341913851753033555612410733013565913377125245544328727252634557432902306575778009537512983134244397744980679012383187511555322494616988662234545472539473439165231396845276890422494292215603842285687991230062761567948449115811704689516100269129022870587309409296909255959128085909315691725732673902020102214000961060730998621012425975820275847714975486781213089010736084944883326884729941810976203859206478199803565192704900247762378133311012622299880981427070478400304768628052653206707464577940503387042101097709869830739047342272409909391567711578599444591164465698352859718777204314868754579876516781324302214360202937606669362316163656510121900074313391972431304638571773129353534343993886381080927854424627975428210822207627336315675186511939473885862078162073954192802638742766664449011733718215109695185053402522265896801263400198061330401265264366448173231579379134079945558506086222155924841965365343071595359753211524305859275442835529074768407442443208607513875256785687400858442283956177823038745626487965159483119669244207137286238762530752141243413794364152165027629727008469972420553808832872919613561671181949232360881941756163680432196435967711527341905601564855762089313124176908603652630920640099913461428023144313536410282011330978321258600203566345542234399853729415499650090558724204907302742666507049116280256464558655204768544931843766470490454454584243251525781002898423920353291772416318338624433071646637399536509568021260539118420960446606361216746626737092551708080380670836633771624658339660071385464370476059574420624364127942591108602572457493152672019311893182380707625374611140462741042105588926501472843039128075231226576517657375866561680024590310659773029948088532855193992414605580530672500516801919079178221025116804043182641414030559409255435020428905207812815425885813967415782328746695646783529909534990324518941931684667560329434974835867826691637495257309922867808306822443604477643972868619232637604319988584608300871596405534390376595016774514172054347270849615190244148039119672570901632328437960725721972575816757301563422208274283219366466891364618285594207697289063021523461552505065157512396165679397384554329869786740012191878091486975068722564013663662488264849133874778406947295091866024523465213385441511204577374146686512295692917430143939248849650296725537740669906832470376027675717947843020243656970656745630044760296952142994565582677836122481733900466415116899332894213314319742915833808931834329442989640373611470821201316488420397458679802610912799963613292258439534184053584000154144674016086578721449242808317454391292102511803967550028446052179763754731866181803436954830745896831816084014224914863956228302034875137456552110760231408286281546017643196779987421806800705050813811991501978086160944724942641111070289225847216858355842704091727256280550857743638762724197923640440891997296369172564800711455733868478272120653112674017803989918637070028280598678813366845930277550893706045120671131661905284291055102718598346440106333318974241412100155408437846206113866203654328289086100997797216386930396865764781373666020845615600360231550311998586627197572238301795827331800269587662385747333934917688285245528600394959044678735899384590280494966606639807315365978470422243773644327377179936628545825062567943134701662672962475504796286176447412774965942440956185596856944529867963826606512188213505704036954065062130058353093883885453429913183971433161657729555692359519563042636172246382109160365349370558215597822281114821596939547809582547106796688114023987942282850293281575002879125990823920225506826615700873436809755179283561535649476364344876786177968985988092740458716551080868625849468019725826338153644755268191208553839929222367207874163252041491873196400143945942935775539728919357477110998650811216805943158700434261099252567757262826560500811280900672938176254208194469910160503039221270144983388891531751285467927481538096301157084597371157166016247618222431987944503780781534797881596621259797576611576258691356818307076172925221505440734417112067023113644027429425958397233736120131089917863498220957363687119774392765435072288119669119805103347424017737006632272258768430724405851226546164451204827187528303365721579684822871779764081311680207267193845599931631353818194129012355819544004135247959425934754392150417700666805446153811855274358922227574930444513349923549333601966258705779725452530209815759303668265249441988697911020034248765848501532356132498350244049589245331369007192712176370764143351682834121545047421035079846466410941925959501301887662735854732918618996783579375489358155161988672524217618335943102805167742486199676762124306633211180711595056499000822392823084921374074144814418207003320535487414002386590019647290778160588375222019307818081049648404172627136289925344823902137602605025062292277232453965267584708093785809322521092201720227297910232076910258517541207057050963257421782074002003476332670313538787822645518233038682788853577874067300998974121977520199905138345884285853926805404095393594387948340852544614874797980834195976520963908968639663055031529850962875511878764826398387809374610263102075381870084715220262891504918855282826807531121651713363113284776848832805014098931355529305807463001649268036813720005003664858888801493273809088280675921647960802918093675132812569416114746979391126350718334434619092662866373829661708205965881984286561059611772391510510907649300306739018822718681663647868554345529099258841416727175129507712767258259989764082635471603910648841621654568329336548544511134696975165232615502891540153277996662763553724035575573247732439704697254696598937057536672076591126311000301724803357628478577774721675478736029355796505081331121560950904960053515247816320226407055312456242650157444927054238181771780882382539756438064818994516270000174563197039127138505664152933871022432599843299376434860166223724137844743730857757393932021131278210269749293948287927021257811953220974006083991390584238004910924705441478853137518970007740463499522579198046212349645562541581914333980801318245151613010700194823698349719752818738482077870902648506849572671145460080761080263253836608977518916429734297920811491778614065942866912185139584875838923396219769315836882374211128845469094262644402585487317144526944081640229114865168806727347369095497284095059537934075933533722317738525103949840515477250201410712787859079931961767201093597714036411701466905510608895258032445494839606148449467154537924493059320464409275018780631964291053736193167436297576875647414378183603757127171224708049613428081539379138557737972909269391427321402384784145421169928428839098831020274046083346951800115838541313907698348610980163419316972075255324339147519923898564453894449074995423547770829523001116390016834498801890779482904304655702457405594335474801505510987692089304016707003609410314843811947730327188000770322292109795658735949287837022100167095908745176418477031261738605018424359282461830099556464148999122102753272516632887762161102159065298468209909633195507941003666006798141089509862757041799243453575703197964460375240734210696994123917934420575094852132235281135429255679328559463313109366340811591800369721270671574269458679717892788653133866377669250231356717129566929036632475833089395731560840200692917621451341393751264117858145723467641648449349177026603824751268114548652831490666880509741808299030581078801806132946135663309284974915525515211680272254085158660332127513382246639907619179998525603408898536550869048308076977696924247585935042464208489999833030952390655030596148113899125065269004263661886727974125000933387746762994349681954826926492864203123943881191358182054566177125132180008443382857591396482881855003714245982776635367788159807853936688999250221980696539908628968610366975864068520669501246570932056309081597155635283014191724844105280906759675750928142022471234461894955272231939862640105450355165697807844114031768184258678206339419342771134346944763247324192972172572962789306276516909603286182813505290074734777149056088425688702767353661191167662081150679235513490348795775043812359739999647818002055166623596507844471382513506570814156353744266377395556551364269198718972423211859782065435778919159132860033581017568341269823149854875301436275951747902423245401567195002894489752677270886877518428613044044467809046154315824874291198707058683593104830003074481529216968883680080831219468343516666700371841945034228090650830020932406357123838206103147493990582740751976955273661270813005969565362436793040953673775647043695112816157162022433628312446902059770005289720650380271848372956976466099252044241323036669647415387801012428782843372877368422708911373249468287740406221976843758861449270126904065656435782838252589298575915487300781735024809449613210024676199066091842229008837553921877478267311553279170464776817945438723083607932543076784242401533503148168946974538916636008218976104627727586514579799231402653531912648221760712649278233345322778013086645729966408360957867114214846034854676900335252094337002654828467566051896464820502608885063213583049153388473972258638332759518026352625622895268407127461807590194555330619728779157224390904205248116902902032285299017492468326605179721859415198514011877900469279483058170530487688447648531835039391165690632392353727621942243405772268539125236473391394942821037929093929258551654454466823907474491718032109341670900059990877332617910115866009472073656420911646080212883080870563198337247689640456059719457210279203354443742745866505527170832142563616539523771483306611842485229374992197720477407139791171031680535510000460427433099424166470497920126750221045262392510932066226120981735337032869279216742661999357147490635895990153213231017801262687561213982556663381195807950060333272088982640287044142847245205957666954427061903266260360052172369688618993701062467792666425749291401607471943343529287482515296659703119973518302103506161347733334626259502974454763672135482458417164849016186183762210416658220365415725297297992327833641244188038083602883488443966439728607705825994168969114613190834192824153644231899681543717472922872782831866442988195832972889087539969752534384618393083614585401453111559548928237690465655096315334480017965851157375600346887608037151843791480212652140116881229319099193377610416854616090843875615324045146655753993595572276644199745448815275313448090347735750026147909157842120225466757046260834031172665890977361485714434348093605372448740956501800698768727364366308052416219615442318314031053310449666662382789275038789016962984068872656983515348992104121179903747536187990327244306627324127736544862200313098020291198748650850113240645193661639112320880203400386202524089022163452141143239614471548649286837064659382138791219222780388744764530381830878311911820968205925868132620510813223030529637551166835360886447330867253514608827740371158748181341951836194134740183848248665123272265023090087907780255795826497028981418213214873584998261130156951820122561748883085111552551206493227294689378212378154001544773141997446492024069800032482802923747911110698268356706127614801516702510139934554549134177821504655435056994490705474985399584661669252514097585477602285812973229143138208428425567303573239043651484410707571530087232158008638623701540533488799693870325849807935253715290598309680087218814302402400618970762942155960754397681723700523902057534745647579951799769424651293795812806663688633337565229171461592710522651757663637443605741540290481000211259253352906168357105496118716657953642279563973280471352528300015038382133743247698767852591866132462504703681980784720411063856953186940647644937178438939568812939711494047327289012506487293443465450335935283572936927564553597336211377264161977051010647601758197321870949247435830099286320659985316988236458358143697624751747457200102948807146407112877906623772149919657401196208204958134927104532756747451958057574884510655849981198960198403893550465750934629660817174542810523707620601648955651231859670549852136405962008224525930991284765593574390706460200766782167220652014601046179258565208181408244286105280572705372252259594426175232614258717968578775788833749083050541725101724134349424660721892768245971581733104631911723106065896924521570145507435775837429554417262987839642466526777400686856230783666676525149055592492324927906630193938948753629601264927084590633383474496585957200118363498035806144042254591231485013264682833670363578606745384303095528008138029037731333577141286015337163233897371139495810754460690300703538555760070544700854381247039924636096159631909696587329238005608749092328320178250380591885608584370504502444947052237700381267037851107155687161094651159343368851375676060277196085031241705254996120244358533741768468926593482091583346514427892938839798909378461607552320688472910287797436650574628963236321321793951749694386017911747830895231519531744045070826023245357479460161892542278710586519765037070560919563940443435996728141518997591570052175150315383221470652919361724459186933755153353347840158620731412379454943703470788931121856874056593303277599718978607168238330471465623111027952931926588545011930057035541959498740582144821503164864646088601760940267431201779653836664038114215314535598647545206385479427060429903021328999126315003049636307197027624467054474990746397692566224748886692642842788734152549866876424368643566436499340014311302832539879453802036130618163481037382863509421558336266872619352193105951536901608752204473054727613685803572385227705389721588615658448757270786544038963887443258690712574871561773018211728249127198691560389519505796042673419081683936585860619121780196100761692361172232188804317168951732654849879607367964430575581203930931504694712060563671818943168125968941552856481326869663504529824691493575375673703438588434813434438345240888092127881249055098889974465452283179094162087435546682117748904693586624318912359059109282908483793497631441002413921654667262218598489801534430397638932101337707130017896785772932726580462302208973521755026632747326074055889769600554428386832951132160665918019873341436847947696382036093810098610558045938484613166352516901871582330217413849618920909165649807203537791275818022084680632436781296471989557619554692188612436083567390833813652958591421316752728456734037082399055614808468283006327573913343584084597378183500458525105370875669286630461501722042039046253339399759005023174204554580363866679533422416984321787479616303691279138701025581003223394316795456260005680160978452063288078608634865522367758844752410235122996627537412071876974890666472761888908182751539052476113041179268023574704369235926351191746028856001876378536071296060962387424084146220194261894681132113380489889737095565103376728362671677900919355745950559489964998892570518827903870803400106278526540164611287848788209827390391245885966033531104193742664505133056355166187658072066036108653831590624390296386146938647329542262547623208441104607086947898952875467945504524413198642555117993229500639454590927095828479391986131821060580541769252843477943577255895629325532835506029384405753502486339314563783912365818992614357300631307882731556835063946609198285309839308849056421758093810704181996455445948603949704797597322839706502608164223739499914396234496072076725003316159335300563264123040813490766907834024376919352932983442345196443531253698243930620735697792451937824511437475139549520519260350462561362230937147106918322473096192015171621264722883779996930172331812279485240132359311183292868468327065465578496759364174954872451022431682144415666398986953688171271590676440828306590398081581199784594699856661105271022088662978428850592609684305187848069299695114289709024282827382323617578304761507409837911444743621750669171236323303862724581383649740139766036363913718318345064786655898619793464692494799580952256576092798182192050420110669151994675080267680533364431654271681887865120994151457377141889477109931831846468819591414214989853278532474045238104843879025923004991505741151787470477039550360202135184651727152683157275779817813968361359983565519580327068194526485985992537403756436303170530840664406915549697441216194360670248540871645350639706385188376964211674550240766530295871552623826139335295162012275570269110724644119428109199078161749967474319325147266845482993293769296371353427083792555818670596466923444717965785556406760526910214009212711900695445119866694282232429159327731221673345842969781549561729973642939000137708873055895889018607261926723222701899051408216667905540386942606527783191028750063841150866540962337785381852465203942739838201697014183607276941015724196349995178268839562581605048743046805318285104261170418864892089261348403829254906128979461975369791179954875663487399873717783155681799900794112147919355432763780376532892555895396948022043797212748270962470745244868307833674674768981003172354724271694522022046200340639929086678845695073550427933000509867313518545891951419834133904351641938606161248668114008817747530841320166974014248958099654796663975443061600892013517867308378724861211245018885969337772885900689307287897940508879409826916077112641185744122498887823979397358308163752380365340117839935319719010774066657988718921057359399489261378165184399399958674586132592783511527925441639993349831995971572664734257582880135381911955561196476214977952993960006085512179083416324406250096322531824268431790514834671143514442490346790063659785165083673835993237139879743370711095114039393581600818046973599738058238280220918798157841441866200043094052602611709455174945382930010889429200957921032295895678795754741132581113806314853394769347878080858085343518492182544267860037865529070104789676979050349014166427161831719541860740212046469184221201803588567588561704386089073291782682401969655439594861622593480722744818824021940826368052065152438473588464407759416121279071022858213233435355325886711249773506991284860277543969142925882047209414519875055723323747974565212762011947767731929019897946710619943847446647781920237346040019890878844549052637600531930194585304377102263957613444823020148169076079787877562216115690670083548123044055799749716574675050345791294892976392634965926953361493952323844046439012597498584711598132951005377504225872303980972313009214736570692432589601460867178868258523675854295523860464891154588942673357709212292603843483749438819773978247017494640588459356921974983519500082916495428227409242536502138434824198882256509166572259336211673161975642865640126099743620536789168643095457166680791486111579827641187250123130219825196895758314715163736880980151062031434838461392473688026899559296112641892840597038855457581767792756467746579135791069892445560608224310230210909745118693550237841197845307634324583808025079529804691810985548830670580643427442670235797507311989356472951009897828333763225770494005986185685797011489003709795208270051585088812755220959876032429687377799205175365185802794557942768187590779796883609363147255900382305973710676766273820477737628690182338803242595880172636252368322984035070114223430322056606804436268308995264591705102815391726090610684382966884903855437567529395810425949338146956908423355428848359828089340109292501952591989070141740395320533418266875979600851592204571657384535790243583016476967117594746541423884505365951420469930217224456123340469331132551359920564981951676115969911705312633685037488363446416053094267314914061487535155381924111957964558563910583217354737805676901377709960879470022238967455009581144571940754447686446142796508054515850737405174492058694585362209315962838348045538579530472496940467252662185618746386107833979925395960575154865699325927938242401127945298114503949732345336788074878226387306610885940768004112928822792127137000668665982650802760480037987531437901760366589295888740792482877284457943383460941380381246084086135659749393199119516750311613455852215120309282048241752283104735713701973015942160683921880388987877852066754113879700500990401339916743509665159302438575471903613560160142984033038497752123563194513252899834556236425207549458992738803220015127020474981207508144763700118320936568724520637677742074084925060162324595848493089094824050072953650483697553399208112080530364644912675478902400629353392671882689251355011105495672498901938464287396329519876983945184678853526307606410108487519236870954925441345158300229366704900228903438377583936253772839204460170002188320656714838950056653742957194502084278890183685923571206429528227523814586578478373549792403415756119944911628051933740862887117183819970132341083776052699935789696287238244190047282571620984060054010389716313861159162929307447798285453092871872511691286071981035625180415723148949595735163563837479426032196435407606057045214255281378603842432730378113704275964940093990011793650944147908728713793518130066460418235022042382682822146492972634057608558216432839154460411858400492007745622032367303363035999483288470487980573749046524229398176431940625324865897558456567657451543112110160813239888961907534264413186735838042283895050081831814198119697389700969655136198295617032434917242996502945626475923852189987183811332010327418019072041402664499995219526848370919490752214045709827972744640033254714022945911050457685124790916683416109406443101792202520095582383075839662961515553207832431044564681973953069208931006807534809827164697896289884698020392285192126691805148780030812052174867348152502033618776195606308104815157102454411217206306379447537421810212669056419210573163838807330438202344709241557664745086947533791311873125348071277870952295649107725723448494456392711162938061085836272727826493119342500819847974434257079581341368659297233998047836313760641280294134753379300116416795248316449825449495099197618843541771530880721904970672521447777030157188773736829537129745717643255885440833480692508212237970537275433259438271265680299349482708684151540655527315261753331599916574076834381651207218099114356439903447287102797389657011753191048477939639464336301855834959926055084580594930698938336654749207057904746123379670510919044010448876889581548226996442096480650775350953192094535856951797247785544382435988834116140684835381750625437702679676140484458609670730007462757389906528732985663611744299301893395275247408893278236701591646505427703371697032378323308877781636522052564866246999097079959898894764841367384448591119034424505353714706647222442601631029204517297528204339832052141248497533197087634681629347121368139717076153507653479225930053824811749174347806799081311712644448238195315232507054437403287717418632165034712472792610675106411935940412722386825000380865895512821618199846659103315310950370607906443278487873229871392228825430488497375791890330800746713066968030840953119859035639846486124405684468095035406369473535169522014076303837741658077926721853458371089811855577944551300403680388026529232509467313687579328600064141591395811360421219658059115321700428559494920919973926911721120844401030620670111532177902623291698453568427794360763212085694109603037364265544846451136925834124006114823249318254706734458199582163542016434543104662910289592898185706471135930836905536600706967925639829770496335493900773384658068949059642934025945132870909926714466674682636591319102382250008423179104326416365498885965147348564602529878647642139188819798312397471148239087356306933086805964747086397693042369755445655370037283131457157100884279641471546270344773925603737201739780940653993169849926530150456521564771750864978066256773359459698331687544912493971096063167907747797832646809985520257613985355441821717630508931384951092503231934923469791503796697747483506494089999910646357818412517030056000453086671971651242211676099117695282022257506510965707895636924537876370306694224109886837947195329228065972044698236776126629419786748567754736199065170664251492936737737832715745938790044776040516777372703920874765157132307050925854118231707774002857284484913242595139541161213826291235107423757812719258079110757197620598003386783235635039271495716590263237127726942702775513917805762263794397007736130978349939990711251129517628712674158461143259573657290319217071569859393985872190240437731039577588697238861612117850562167593074615758477077339207285128734287230557389646796492231963723664072411163578641387689694930882900409461410876817480904788394510875166036115945493406142417001298860812601225336042767836438441079822366601166814894257142591200155025769207393847242874312723194094557834184344006919375346850794659583584882843078992711670700122839519723129474294692745757499565538448056770335147204172900586372125056243149700476220642427934273114472300513261201245698304831363232245434391756586441308005503451775525436156907406514845499020810262519828582787078831659718090148193578821133420852385282813041049454620246250343175643692828361563972249577089226791665509791448810873606370766414275437807361872161119537140616908086479891260959711578134996925144283385709692341420575398385944165181037204849216141069207175255436531853301410144052855007018716459082888817897973332527119024463602830022315418260889170435652812958914972999681711002519057450840105377216713824854277722739306204024097910477095434004026413021176232328077781810503631668843573819735966237536189840164508153344125031937762673882344584508135733966743770675537465655419936305841564068662017046154299808428779045187865885979248089798011570250055299845199356803013369992557223267921092989457641503792615771185454403597884226828997632566218528116043516239726395425690593915863521807437334917407725273990735438856056645882980360033527467130132901761697705841010338090079737739350688352939628220115658977033354789794308359752488751942749526585211795678483895709151028799318472596151983071782503819866402883103613743317484010313999362694522522701189152565429143556746478648851321717029152686868035521074616455725621505286529875081636444402919372250676393539538878330115808481366796982168294881430537788936092228907453826239813155734754564856485352495073699199115276705633856796775036982013348736988222472201678922097516015655552773062823605431653325963549390257716295910062398294139817382173723080769798722802230780064548745209411041603992614838354747519036600827358331322011743273525261153742488191737728339110927559595271247105625291566390435222335512020034959407294040271587486342080383716230698486594083393462433669621168796104611812049901412607781699536398563196373392030704841900694690809606297617367562308292594793749273401890915385802031463352496011982555167743087826574739988427216051965863339217921405720373491554540003005498458760666937916687534732922353229794338666510372262231529732424005897502334340328098339187041671685720087660728852744634919040262437249166112796635459349254035265895998477344881553264831574677035555227390529957065593780301354284698089372980520075218981350016433654810460762768388600283778827859317327000600343405150332000921293131959037310629022275764766070479941562021177624512843980583917624983690189446266423016932384990989273085070520218960627094201599660803787780161207167284305841339951599765155278552044446483735471414633496536290743966437439021916891848894749393104303853080544956053649146215552406020620483541822141088416382771056372122521894110149152873715795219466146887431045305085721209365201254205390991679521551117699873253177133964596643042349251851358510235067600692456835445445523118411631492472050593869481688446282135870731823033233205599648178626226106826590490730152099429899832938817188678930079567856612491207029387875962845904030813652169473124875851669753919772537627047212268620879276966090210737587127611806102403361511523456610875152718649596567978756252268729140447076153297133452203844452437205773737228093664318435078785609227077548307306760424691216398353422478914040977456287877339073176180199245474526566324584427165436864748988276402513282612399102342409516790034127856267513234800162109028517284732950809980020930850313951494809157286882555930729240307660203094156816886204097819106708334775555829147799380661531625694311866587414949088892368658338810003658003216425037908267324884914898939384417264082625919301681577507753285769095322356120380960734362687248569895714822309007713727624362198034089610112648461604620578550402405677172696381553019710742142896416488104264771445997684203808956112709245780557001618342867722416763345824283935048656249254974722844721580960742558340745717851094288510296380317595413232752739682099937836129268443737291718879922940807781897750454550609954020592542386582973184871964265750898945153271079003939284655019842172724011437283955983089228194162765349390506724369312149035827712213686141827250072618682130143311540466084047931557898252892129633422520824374849778786734094014737793462991012280810440508553939214758159823776760255649811291337653598843024068432521405402559473631119339358526555493684773193685894159520779451297223592366198743433224242109495085666203423132803931291083986767085378777753014172479383179272150162568455489921753358379670363370705099526988252350856988596517222628502448430878821898628739073277780892735511093706968079537764243225433452794861805983619844895504722800168788868935864501031439749999264091943036910550065389489705370092435939472970204164906586603636066426168770279228465127279014581588099906578471146454446378415023779072246425318667543251444575070854469106163758963380425045619695093774333730671559828007497676664959965840507459685218174471578852647446146307737700016974098773513210224414067572136541127017677799811573211491188336730131731840339514029246128831879665930296683462173637567246484797734940278043874463946485420547645547487762679116774698794128240726151591576564080894788112498137345597415307886417322941785479359519394976359265756138130005361991513977482620434801872084550822838401007093307092020556092152381831503552607599708190927133617152202311845257904457143233210608028584666371122433632275300552484192730393960514469434083836972104556189526500813996137728115024274134848654808491354219792153949836419153916265212800850234431347544460964733676448927514639953990637062396133940782383207772387046905656442508709791253086341285031243366272659806699146241196297877239888935579290924535416640938705507014310354586506660262403301613058070929959493308188456542572230356861776151119002796598072888133174117494542070391701147903434167621000794597857377546108640303887428678851865985635836932717689857436789468922434382752279845911537312966350456879584781914979248151662840097484821943858287777548694020933871868002625759490853926396866693839903551799244864115416874329953858852124421709800803222743219243514837055957663163855464191969921141720616704738494760105051420402332748336612072317343747752484945693893232111917308156251630379358389770399596652311452571450260486358207601548730411772987439409292039397132292254087733155733541836403528777368380060388085351042772613868466846724491394429676471527632110435283335263592979253097765564044808969253932204578310178046194195854530887000985421243186686033143740212983811906585446645710049198744631843333571405490743132114635268488445326795381183885952367024199200103374490428598190446263023273307346613559029939270077082001454023871381672329837426767960728245199875365721585847658721829585808357150364623114737195782537232064604970742586743049186125587755424645982126531950141482323177774111577377645846073724277387889338587920250846918248682689394682056583083230371625927959650169685508439578231205295322731411620638251879147390178287679725333419053167639664015831005299763391119454480319398647802021475703599345696128823002378732157681916007546674331072174333602326765663632384506712992667266677835722590489639933901838346084504747791611151923631498146681343216244299454004117508641857757965379935556932917538112035531645010487779550210052735107832660921421858646925869909515215455709004391276639986254727268398833915907596742143665285790600440596150271569637347251650956589464127545115604881825910015656945382215880559992760081093257634852436923497282582626541994255075727976589426500874875150992441105894918420372191335724030208634796422029820226883854609516976194035667980748574561347950981511947822273796601291999508683033258821208084157655078377612596885756345311326566069453202362971429073800465198576616464333309302097458792610737351494227222371599312407499443672592664160149063903470622869340350212000878945843699316455708912832716762799123366256100295227579539815286860630375813013921666177507050994505180807473543409446419347977358442307246508542809558487054552099731451599910111929346053792777214223970979471232622521218639189900072702242419192816841619455435717345780216971961612226005530403329306955310320805593354384329182232760803506915431774545510015605568346431021334605261922666479419346626447977201941617012276457769358699708482320334817286222927619584811213150795962976680365695918186554319623185996004579427563098930177769307955450775904590110810159486410903187614081218721952856649612270664044045216870372551235536945989882414517931567445245664330236496702996051243615063768780671225360450320248720927649554139971833574250769737190091746992079421821162597390184594650682570283859836994251137465569501208375009352323348975482796130655671347953703919132926009868565916040934444524583044167585228844551481865871378208697769960164519339337738083484510950161221745770923969008495844496019823577779555459898665033086025862893813064701299657902426359125248906550168608011661618170103691196232188577979739063586110355304235611288409905879881811271154415479794826419157057727621387080920985035851933031361340815606947496656864840862621010838785564679268050044881162870855896435590476690178119827909411972874530752188417254165251824933504772716838223691233206955863335875555783550547485067919667465930004228138081206682057231739750949929458699111036372920646180507582823964692866799319743558533628214835017971367199656020008438575397088686250890739577671766016868068123378206943572939350909948366735241976648096656069893534617665364857314201048845944430205339378880955151746132130248250205528573932143216520552578226336284773777848682232363958545613931946295874988534686094787979009433914475590657415326319131675299256230514496327614896767830929543043380809194304716175870067157224777936421440620448313284232863225920596097886082652513314150590573634265883730948361792541758325279653988281235523587359570946749432575826855057407435835456244706008291936174269767552316654022403456140796788463065014373672144956781539358775564097502104811410056573507110058893280264001512502545696542106487903069563534263614214189600739975025929771645277324074576496155317925849512931425950946134984189047623096099469647116547524388226300778621578972818528868177264772243987821998764875198523963711107687836684686466824918612093196919475350946862304362619396692751888288998834788333470338973224627880747070849961004743502317128236304119339105061544744221006619179251930129092855048418078817306945541654716055005185799857488019409664572995594551956126388381965110574719712245776005321031623909901264444507004267793851489459038990169395884053460540239835425857781964404578013802939416341433339335558969562573376032168741933678621398338207007083401367559628141436721137480271629902222407228379784348583913961549073272321817588638001005089049879776907151189351963522532618650930562511748943367474747390648347279419795547334672022676279086659781626711889414112066074032040981819764510152141620813653777718016199232028958510655737701764292113701712539546998489679526861270171070719817966473609963709671425426598790774719597013612250847781577240371861549749932800654981230326433870834756523048725583826595021995313888844074713335094429463731057443053823736669366362861784896253815904138100857070809282612409266756274557700967286167709446540440724532268710166722328999326753135088139952056643334517796786191245822930078299063851390073362380666767624505850397752289532088986400142659469329558109141603618812516481711520253788426551674283664558866761562388017084647336676151755746941273919964604266856333973245193679938157874157923925041531255036498452887933462210826224138060040887906253488258218230695548128527537476325518557147367556619599073400436183630825429265333759637929417457097393134311021224385062221479294152903669866364880338745919846908102033309409054620153879124593465119892377832952709464281364586653963995986883782517723860424753754149372141911452959321491870989120602350650348817924692353569622874145283004489777156652738018710181993100350169030449828465078627175324443180635757920385841213788795540600576307282339183810722489812779911557268184749966780721412746472647272169850833296133161408522546396729919121336489115578554141523934517077602187311106537059450825802667543567400704799232699666986060009106310382436945922057903271005384184990111100210002823532142030281978464666348163409128710059297537994826771866220855211492568264296200196602413319209611362006503355710257654891748559894348549924251539777820894278942817233754748083122057937198334142273970536538444010411768788679822337041351104026741969224253336523779824282752379783191593422927936928225862834524507850580399859787341361593118027442290952835101428454114508249026460191580510786244733444950719034096955116250905557365102892014809818189137068756534085074814220120428053578126527935165792621083754608047535287943583299836959807797891130249471417877485959926300168651750460501424643167578122383270059798468933283429024133758885673498851063636163603245820166436747342643611301761513699080425683416274302042174848551656168752314971186577621236512481718012623260543265034029748843023153851014847497524948082985506210415075850609089438612157971880351807979092192047961551160600157409777681905647376820960143746781987586639999828948859923570908726264123529711725130870094316263798391363206955975208324968876884609394318641737068000014047404815676508648778872107429252729977633787521212339321099961379002646763071898351806298352164407931216166924556106880326076425545080808852976248035660919766808670601562092463968344573244671725767818478925210395353758677296897092614144172550546407848752321085805394862819698392121063879783653325354176588597417015163023677745500142194651312225304272824202683781985754200459748685371051524189997305874956700237013871024528876902595921181170844494064941195037699067417914887510939632342286822863737537103268906270620053556256267145761640007055494357501266558816421694298814254168529764600198094792024935510664505638645403161873645355602546809899884678416873583852520255052821631249878450085245231058452217844462476561037672308803598920129831946460410351440690269863438439845447984374766950128598324101601145095947905698149972937876514909956960055815300305127926545117590368329868051488402670699020775295252189943412199166050884774370072161192263920491971475830660043452446242439688143476840492469250812012588382964893525164283518554752753334029971665013263420759366953946374016003472268996962135768461785168662180915847029752796144377708060011883003233579604843459247804575753841665306012736938771155190152265572027342097668815592773027895256094234819633296233109676880104963695834237909384464833247592527546586329602965433125223166239433252263679732876702400998611463992035883963817944437677806757845061780204123591818643336996341920573292881874098693107599189635539740196463160890718643413327677266257542085479738229639661229617431735439867249324368161151814098290002527482370822252001926078635248650803801472318770040882882840199453442175324263342232806551836723360642075273266002788208149242507477684248528299041876883713218146377913097714400720017416372837527826603798777741027956813523430191575755024778617762071287079745246853423054643858886972827143355821578969290522472249443743001924186720013299923028060347824337743160154833847880537033390238808449663301879729304724727455227485171929386035291678943054292403105658670940602249804567417510812785047771180484462274458616042893905949774996976801335341057455064389175227341641296160093965641358494415040171373412503899633594197540406367433329614936859547362649173510001626296536212082118511303686186613246743520880922972863839529253202291600964876273565588279699779309874451565950763499717116407337797410897616889836425371512619048820838776621244026433420263620042011508815337420544068323881450200525130525785701375228912702124690923550383992730561935033905107817093283643397228516090816850708649868353818978489388869828135247963230505036479515047124798844825769875837927036133437513968104102509448988255956377875024570829932265636680602085095847388856837281680105883848978388388488393099089021586502090167634722291734054649504492507982560879991723296791881180870855858746744899756810653545759112828405146938136395975799814810763378457326493788341965086233137757502226019588260829056825689253206436676389747665192653787748162077045351633692822210554403412109280302413335314695099446123397099281500807161576106380540735093434977972515196259185004283337984331036871118581957055291909820708251576623318637001086922314797942914912961181157231250351588149990919771290601770098404383551943756039005111416733359672692500223254259724969402934299627866517546431650408660259718636568170988191638569932039434666256877265921976590821027341686235396881975074344356927183063590092283851828231589124246541314167961042445936734368929681931901625558198410718850063189140435218578139402220441498674107613643188673098847721956339799014266568749859182198614967826907406105861435067625544293240110750929032972951946786573930302153871385584697667955705278453529216806461325488057152601791674920403115834934285856991426529200724256918033540483502117005491129412271630944425361548282929759599094114498240585225150997731207391811709784908278884113679083928154221627711083978229635188928060459169136116542180276043408396670292639174194511514648381680105609819417869425995053911777663405312650073209969008875567217164771709875955290266727282102090662696881273556973634844969604073512197503028967645040699114459635578008492295903494711994214578365363746255275434975569812646324387240389491486476600773505797822742435041282002259026891253532557083474785965208660166784551782321377290275500229096683437729407748329596158197657417784429360099732185178875961749860997633764155773933038958916913355028833398916269706537035122968851108539685650558649877150897418679544674531939595364731778942676325819792584524909075920675446565783649188825669114621246002822968454406495984222709829566785953963688028815093821371984120821233469954880300621617036176056606123222201146394438244880170585067905315032748305230116763395905768906458178380284665498313397819840944593746530933890527264752475428875377065048820988952681249032764063667735787503937634864200538917824317741811010784095067627675119263143516876045401832015753215900436273181838070713600439552213390810244252182323886298448528904118003790662592533831295412550877789273416560040288372566780330716382750596602655556575474253380418533088381878861421698147063412691700856347677754523869918565875633769701302682930424921045711631779351878307627993164239424289456931839284741737978222235109686599687914819050902639321872843225276009775891687317892930381754110014898855538637190734547077584112630775750332043482103361951086436657526765822902310421027820962616025313948835878140954034642364939269387232653730303500361171943895766777091320142281654623952872018308938844862922488358548226448723214538905526726545437978573138249949995152959224069163530488191971362317665338478687056088677320899090311997900537820497768193564597066264527870415730611835927826624712059046625844012112106162731147381312880857603900096324946910139749747722532338357145118530596863627672030318221262684640691494498198765066631183049101278895109613359903445454829171482792590590366566966427751303487283870819752081930559132878365099436286750585873727702109310481038961502643963356937131730537478732280291304631572393207652168531163006092897391365872115025690150923826014091191782418098454868630578231461475894806888449220878665272985068431701308182188568509836355196283805031367369629801755359113117436561161361414653314685289135796565505930070573365000959579402274402366668175055240193124130310280121631629899604091497112554358477879791395817950619559516853289532328760334041125425693497250680232935156825778530665304530848453205904316895690306824016192034286782975320980215060403913287598096673682781223124207001639963480331856100647443028183698614240478654716279354765344727390822758408859384925828177195761955652633261055301710080647858802616179746884975998860034924979023342326785956562250142213081579896952101773783026975250973345884420395913463606684010005137764287560599766144433733038100269357671178949312310077558933742991001827181502822567440010329338503862848138163591162690756621097449631906072386976832408613018839630661345045487158118079085372768670878888388830036184435986795138019145435275108250404356068102432679241846319518891040283140742710654177754304090357724341079091571414266182036177909346667512969728756906143799469131276306289139242838340424397162413078343403037552725686997109027160599829728349767772916091803823726092368955912481283539980618726994138079349113391958948817359546183169697861500524898368038511939186617948461066571245165667855280302719670220301919332211315956655131572465176054991639328631061532661345942511858693858626377062136986781338047070838544633316881180871133796278224124859450631961358583475429066001654059289945502402247073285978560282111984882408098931798200838180485493723778684687235216317408791597180531384967797978268845557275681350575597140247301469609536265308255768042973663139353141003060881730421419885123094343881069215906093719457913414302093463809937510119861145977329701817615919548976300996797147815291168819275099728551798500485160339673899779162583201627144257365347914452102884885992639348054002561278960569036186518812805756975637234043519495796427831563842304200646236421836981701708464805167735790932534347454871098358039888531328047023458749873176176768902076112109314745932062913788004095533169243131107467005128406640749886064958674221532545621677137570208200133651153925169585775558987823221275808520710851352466654293732805811407171555706398735248264688295211873276200003716646307125332967624181507623121160582727493923788513678521970256611570337930468456706170824836271276772675490743835713664868601025717947583392249364527551001941201726662280412109196542799435038074781379822070508009149466587264401283094722323683981390895184525558662435244792691954447854169550494919775096148847751119030255298374471993118861851531032388521979389394656574788221001631777823187058524238556958502697089521377650248698211768252838517178811030100804375854343660174749070462172106847585570416486125054496145788906069588890488368444459633120581665207061754782887364455695561053031120582446614520873926465832332408446464749015458071817802232869517936876050225144695019588595692703594562023323405070102540552507249582430393694069884292481899415582575682878042592670257554680809372955696086036032730760560969510764856338452308276492381842171631843749434658318944209499086128178709011515230984369812529823475470232400151621286158747034462154163714178679678850853852265236925291685085076236403818808082363806385623709017064449800268882499939883280213653386578662888064879717590491028063719176342891898650592825613114939698163147718751407327775842690539597064526156308440237097983804531094010841400106769140411298898305228547505957815662651076093024949881833584804888956592067556644328175547634381116609549928045839587279432653585147287405766225030024400646435820457530205425545785564971692506761014038184003308935271146812634761434925862670554661622304761518070600578119859045501289554665920344723673342987945886080582414274025819805553547785551119447832722363177655676937803869350870215763981474005800683250076370031230567973208865065929659506027647661112331933610133981332166189212887136197045211463817478178506865851452016163077313511649132732857473747373700171325520977009771540414578067387177443418940078438395801383288744214171329892946073332726094006412422514276767711117522748252147911540081042773691075191850196307226154716410433325456694636471823890710994456191325973744318465855544516580952063113400161156582659894409112056212442222873304009766897854935138009128394648742093497921321483336319085467406663617157269650175422974191138235642655170485037900977822925145421635021917905078817525530791828525522565275658340868718757502154875375237640975254224565905897777894535747620285791430365617950148219593256080598709584013900565421876863810273085374632419724409562602947555806239520605696753478809534957113033962170722593753090936700060289090503552577509766717769162206044972761006035701894346611833946524882959848389221753962625949277640216922764932937802361150246941694403586941622157564763484751003327520084750792697853124578323292625034886840168930369285289308003244810723532531098043609064716198215132642504604674487138449402066957682419807019850142525532797625729893977061848122698364075681657204295474057622627691177924330611324209156744976476945971567600638514903271595604142787553666357278788086344605055818277037746841435490190470922486003674287131309225586576455174515268021683953288983410334706636445183334024713336021580451447272736591849055368475042316755946799214754528551517933510985325526699931521191217615032933137112054089071860118640045487385084652432754245068906745084156674135696417471358998657901041074670528463834477800381805754569976832523381434515982335467285300376517224198152959830352036087637331058609042633592299873746385387053287658194429221064162838837686037283450190170929134545990437873239263848827114377178363792221338184441133491876766084457147524234273945523230882377123600079071398009708302962419107028440077887699425994691661462523808698409768682953094289007365732592180002112516533800631712270752833167743326564944695409522972242348486027735165078551757688852620277485511455576727139046879364511187744819883516741847465828671947259783442639271045317085895605705596582716204465778580294696413469289148338101154234645837716959812804443140219957755424207551981918801457389500268801413113520225664843487945024394237202553791626830719667427428154661792345519758728436250038063994220633463797715223393259343045582879468909664778491094895863617892031387588860410176494704500518790026887721257267780987370287735343630849261774447980164895947113786878293552343674930938526767142500660499453775745939767140022384197066504954968593708914238135817366116579199008230409703450009389221034630192630378101318386699877138752616538942103547349653802856252193112282377750012685001467852511129395043895534055027368803615391817532931718792450115440368530620899058230393804619067815756445128699985045400816896939791529856700970429998135283044237384780766303272634226740106482328192682534490638536218615826670369898767831164473617768519800378351486924364222088448592596797280308486521537989277798323370108622350890037045927179878603775079887124541601731539701053965925868586385335907332457954796950012040780455679543623285563383034666294557502393670347620176931341786017345071448989695275974168951508915867232517540666851715795404597651847193088419651040997764213749184427224932417069572344292336664614052413647771938933202271352390592365011208344520015656734733285748712539941911529568231194234735256002996880723083345574231136929713242817353380342769043622063516249493738417756182333977397476602380236884687999929476483136080164330385631913698925443632233322865732630689148240089021222006217140842039596458662078730066835618388221148438040427805599146441653806174273514047695207143602420569069253124830381443426372744927778156176882984206881575177468686175553577327419370496564593754050342544704668217682183043515816899365648308056200846674896983802381542235733459179437777352691440687368833142419343243467928366923957043532472126535248238889412860808277367552915772008156165823102004830841931756902907250805589455709482963572103671260964518252617654517295587704561174252650844773015752157205205213705590794479121428200123521653611059510304831014332040247240023084981158897509826075980775265519847697211981382415173927637804311023046043562347182887826458626411040737094223380063604399928122261575330708251067637525843569965686499382401245069202300009220983738921485595270512618311168012898325951882233172138358573929418683375166230643797880907622404435916242417516891272891221375420716358612808819584227311861008866405976439982080385044259364404912506900158804605450865057008045004646655572489809745541576231315956896883539560077717901039176451163927516380225100539153908741456823697542399469192744436671004213388111617951354085218036658316221206528480782368858910321851999354600114007324488885640030132434655975015600887875898467183531611845371481240461930644938719681386383714475226311414431865529975284711790241668152690848332920728510760239251116813152975322582379375281597407321833639336567821133690579450482989639427818725425262982455736331818324588504106308045738732212466338334353276861304259018338249432827572891335313119623591976725829140128967380113096451398171845123406497751853391538927735365868255728149883533365493395689128430825024498800652113227882001527750106036462001638086079041683598381647487567124639180332732994604350665162170339074939302328359889622949546259590148541088977907698836310711196260895948443646489772860911456630788425928033509640495256195936462585213593481783508266925282121154821194304889865399648607496220056676921956953673544525104898564087833000952787881402214421194761782205664348060250348758442254521052189459317497857828570779975074527183239258100025685106925128413276564657516075901596895950232313524343536168151250389383731703384462865837445730760311236966855069918571749564652627145300337196710981013733414291299884708580053160182070829174061948784380058107401730586736176550042072547054255525945299296085191665969582850690189907541977926233599419964207529880914348077977928927932315177012086270827266138762245302452623620681080259111985204646652756388384197174035846327063727650710385174751380275613126199388053582460060638007148399592773493432204141794555838370617923471563888003444776446701596798857133354907088862718317742167684669569573866032864918476362111465467047117727527533818845867505389814398101493542291992536761981871545938048356308216239852301229570614895339902910563254119114635444090899718402720184615239359656560047562808567151246353869443666825772378528187938958714848012893020712162980693794382379948483625825861108154413618701697039066490279402557349728151676771063736027512451595100772084707368173972781104477670137628525728359088917607267851059541267279239499823347016141143807984499685217382682523846078683494818021002545014830394751730951785881416569188034680170048025688211174434245146780073566882189726433254100406822616574845624579975998153639832358284056297646887195611281269323783756264471488048393422570746116043395880391433882021402536331507508028008262398269912811117149218199525852150403680569195322474070007650772972528371788414820148100551808438204277464678984783739679405737606255101746400817750783375115921121848833207550862123126723454258671979604660790774017106801440234960267739912226257318141918099709969598341343869563646026815960796094107182740012184221184343691304478871675110388190712023446301329663494898953758068210377138235106798193258265177644375324415125923543778270251536706423787257308793028402755012684794350558372219578034674401406881391250512081536152233471289282597335600961416742331421308769240709281134242294652884669721181783463340826758695466953655894702932999240893315020462247308812201009299334162915694471156231389637892260820661082739971554383764083017780700264159613149699929600728506331994643276504385963204827649815945615675596548359037852685887341335936597164791063313564026031966796511318977436527726074453626776815416279452365271070652587612056972390363831295328133550762303238236622415613760446600179205175661093080442168443027677637283929469036592460377539562641999345618245999932872833146015067989224321788777925601873328753242480949564276016186983139709402801792753606165237525896115997384092396225265939862830797445688940995185183842863668024162508845435950034720997866077554965595150585807993197388705108765775509579336800693444462127005247100639526755767842557204439361075034462134088634257370634951212214285129372535035930266603225731868815011342184951284512382751814008679747025501271223223250066413813493319394001163739239615107646594449438014562138140112694606212957240700866116339572585892026409210858116936137099156485636805309019051303494853549138414363343685375481813185503452295171980301694980370628994108869685265791110893531064793218547807306218795133930231333044355051200958142477343617730125854060251174899866152210100795931336710173174370550213679362346978971975492177507991113845852379168893227130476026154957995690490768197401350426412501580506423714087708324297000642772436991257154581741635130556277080497607491112888586268813726318859968082879240149535388634884349536838693528759007181384293874207336824410441144304403205853155181386796376546069863352581459734300074491115071968345451470378606745016579930198311327366056903142449236780261212252395938854548026699110490677071021562561764330194077637096325322327045321070016339983564585649769435715607910539068683209911555130353120187401704208631921908588267801054482589692828765595984499757582619387593219831492313984555297331220724463504879058651141043339318127108954407037487989473603334952730769031389719401328647574650699054913626276924602057902283261273231896583492249178601414135059239534471448433913186107447492140828149383292044873073572563963050534140363761110194232880569460578550293027667385371148968053837378305395537633539076631584957800274768680830799242378316578377534237514063825850329118308805207023515360915947785198858840263527177866475718698418826116657183779682742519046369467549010972811579009326499622772735246049191212656448237433476419854735602531255683860555330804757408766402450292495643345129214120810833870190250911194663225014767970924824161749867102217681863833751863173927346660128233923188762728248842326882938018709352691284999291315425338578253923550407801901438543940846247513265720760438138485632128120028467912654508581426318548915148083037826622661760580378116732529915549944118926102130031686518114260555340497021567713554213180875135178654063476137781491372306350697030459543389471626673281222191993092669984215011849871901817574913844269729524863661762725796046688813799494365237101571205443816491826224558821047859757402407542407823679161662655231867942814805785010946139730246847827416292029093149169118557969465567175225008321057099598564657314436129383688457359929545915035277783652321154596044912060754416932527697269255395295281680485221528895447192968336456146598628635178810304976936733864781160808143878562739599217005743388799948531676730929529367143423172478471843870541660620020282170543796974218858515990350895393174950337888838003150132126741704874619589708273183252300802640706297503244852868303100349580287790292854077903819550684061181459131858186823295187153017253149692903953772890914028217160429736464346803812810868742883928997891135619724328126459641045734379278775258815180690554196443387302005959331207066689559534814051788550806635866770400835260839770492942998498503923867800397515064953549450004236592453973363306035418543683798347917862874353990610598247318518823864536383403837768918323271541778329324274454517957695794753701780453357272246360680168407069073330293633654830262968968900465469503314442103629595071289916839882125745412374851510881065905241716087350539234028909006970568764106074446547973372730856504700697918012964219753386179003540057916747921072768866573667134752842656556223006809440387531208779980762895410861198506884550263747338613756189634215748815728427951109431721821277504424894587873380124612007449368297709617395278820493777008945609144389671362575033198239052893743339729951079875444119979225613242413075097380532011565408404758980702254784488778045179850729574430196131541588194142181058598597854122611831065799497386304065068798751408927560432907458693589463853389892527092015360340459917964193753142635982087802134859538995427890546676178835815484823008883899753724432574396016331646750534847444829652566948602432498067026608387017688854234129964018375326983141612976978933792283402411015068124374216555875045443188881943772918151978259492746081116947789620029728934326213169932622070019732450701360457680953231557821194488573602081641094833925320048092199364715783116070435277307808601487217721874746663846991603258339864008766378744580314846450190918919704989533632657356368415911072686268125114052803972632184188941764401616198113355466962354397464855324785134511349279429055217736263137359127706082947627476343029250848956349037108781902530807876275250332250015574590792826709351635290913959059853904318579097202974445744744175791757961078572930919564720680066640392329152244599366623169588852769704152675632187545579450834414375316901303678862539429053785549343772464834234966480487282560311545523974533219763488690438887836235562173701190220287777620660763200580714422491548088632822704749370049850234340632849163548740195431111223009185709063761548766465276528579400418024309011985786307126236991518332560715889227290682593762157364012878754666371335986567544004267041626221303285069368126485457136423417514200729569986839358514796827472697277934698843083860386135701076023107735451065380155676819437451988314436498336046023022170972367496483105693426482901952926851768264530399241797891602237842887744008985319208332190057672738929529669069585100038805583410307795003929653984454850560014428460219362410533718790620257940423487214859055227812346121015706567429449124060195489507317889904853507648872708270383773149304281114660470745031306856669456943478253311600074875329771467317393285890479135578179574843356464013999409759397392542450817885935778818269857602833692568018181338116241386417298227854939345870380636709298236878177510834292270452377793237034370895765555217123099334089343923945704545316500220462589431089991259847361609667323594737757031942580641114634321742109165407602812333740460524046595561941661583649245189420107475960127267822925289451334517839311258011175895463131185479987759069589185427752919338126659333378377495424977683439587997655113394067482731596062236581973328915662818407015572773007636283330691041774024438346206049723698328183310797154657054747143591205251071693499090855304194318720085506369575630492141168877167067032363414930453910894495552704063190759125478347167765169582000536499001055869837567954218205360317170887433090362176962045501551172149984295278594174231450231605015405008869107183814614912821277067429399821123251055797761781034772207959092294844132722053639382569045530218971191381887741106554226771174734508201194060776878159311265993861892034011406263139598391372297509379168917780624416298636512475316746970495554909398286533282723484769227997482634068325959092527165243031375934552054418994961800879400555164887467763612644928307693721296929325161569445068000311457064482843877093423501756226566048832253139208891197467408851505387845259298063124889017667770152164045287720540383141985479086263270262960721226217861941251472862532143697257244677822350752956393618286849271270749304231571940058755160668096461264306425705154082194327653770072373965307164925874036329224561619403654813144313834521549225731742385282108410765673628529580101826175808188833327087466847382327029354734892804326980031235393663047766007181086317455872635880774342740537064058990052706406297115909264876279387287875903846627382238687020114195478058917621152569025688504104672958435888479692258817839507651939091425664592613939041211085411236547395150148308279487163194932557457877447349107403898552144857400232545581811602699030759730341934722780974969559796602321936714020105896544495983141949617927454103839171722661886322098589349533006870005329339534757104172849027784280127872393515649718169856785901663950129029474049323102147396870689883945311700170592501638134229198995544004215809044395300214308460368418155159593872727702113027341593929735350469156175103934930779570211936824494289907229886715186512453854670781255758036456939183706000929165855858128749873322941313084836692042184409661157697438160715323461440758459555270300193237013619104448699388237680649555128527023032555678208382845808791721274426210339739732415652652147593237244277875310973387244900770297050547273105707372307205436592188216640988878404630058266200674312832444906215160072225095707527262533820677437361956041063337009679619053577746773374301624355733571162923541509286714887423677325532039633577875832503712343044033089910026387490873387375902096220668966179801247665766369377286519183726029359607303542513256906292120475195590174874770356152149022004575348819656270678398675116628581426416389257180912551596278360181665425113598729958026033891018247101845204398099922061833632848665329225116326463744803001940326146195978886140475138568605458801580893788069184000634653646616101100486870642520074013064899559980424765118424045124803142806043660509893689410520586413061470030527379498313835123470542863036775515359326558583448834948285809914232313266814739510643456130022811241810850994923397984757354523062103776502038347471683709958253531516635158010645168705319649531644021262403174503416735736786518384721209543189409272832825276964652958493891635126339758752449422217823377901151616503961667715566512660604232739739805654667570598605059154944796636097617350857338810851396735163778499831747314529858631358716762313956460340570290350242787220966731732115662875531350612629321534256684371695639879142047669953426921654353708194822575678991641728974022349659769497747867688221909463305465210318474003188845689354219921430954037882375485193126468866939732922003751418009802189962460755575584934530366255786161334324778674722743536766740283802602506651864023650130289150725557810818605177590391104506803324398399190632519294445923560365319138623495128631135778994479735222909519917599415639111733580039401324468224682944523319533022556823375300757656498029920106173907057118420914840281231935455835939187745746623299421707449619234805289997201010851034231363722340901815790535347691807840816732687983647988103426500698297334781973047455285842383426056985283558606635113424948352690901453787294015596923378175279592969569344506646226429630762738711581864800987468408565464353784735617976631560876425731569771651411880583116887063088443046110126621971266793172287375025850018761131714359480056919059714615732570774816458929494979594831920485844786751301441538034270505345899221061304699028996389034411207877160201621626866542225544428514070592834915838369742905482408899481912710634144040921564083173505389229430773925971408061580045704505543229084166232510357876686307945315260879145231261798536553757521807213470076779857648690350315361928951327739908600602076244372812821805595052315920177726005420101976762767191832604413318776438591248325563975505557177122942176182423449832897578025076795587681937993703694507756045313576978028843910012882556882268785283896438192526843585301771142164102950043909736337758057065039002506478282993483525878699755641944026181319686054128112573730440770412893542827681212292347972957891643551024043174527467966424611412420815301367239580691999687855335148818367269878898849033484179711597587360354021789918693516119980117455821561536646606232955206579790997671863765154600770561175465852737022247308082085103784275364478712891377424792748312416745748569206905078366289599639948309191499448928468627924414287348161747634123435909528002480002204069212079810979462189191301385770657544437326664082046443384479685805796745615089294564689388450020789227215119361239804467228530807640966197072950669878731461537353279916386185104014361821809377956162790552076291165699954326254257762021722401801677620390796174668729928225767198434629114717573252353916103588868849902147407085381061940878892052757607797773406745207477232497714101573121008688640874648272721584622109183913354490219808764686871405691458137716821417818095114264019472512915796256482590138940467931403916243569096688139457668242854673130830706256950497136323707173043029088985673161670711705113076309720508646037618246181829552836935063865857108538632577950569803845416748407302047869556606571746474658301030436549308796018163292886515744684000608726406889201586154923353780757789159433488528003809927578344869701862514006918880207675745955867918825024734410769064078996217531968969975146178751386063740995957641945111752878878843068540196752203812838925451093832429830505403405176562255472418874812921813101262668758546565743518993638721657425896809202931686433502918658555419710866508472260924019811035879237142769154300044440399067176203090993221926280586388149413776970944192202660451020865985653022423028482470737747018731697215906244762588709428927254455902764350633105267703536778346042187230366683222602545389182150387933675205040722624372253533475445043861380010090622167079412979943992532305523992447202473009426622700489564067007835055363017212272066604893682933162360961593730548488070550912783122174588728678343369081212953576867683398669037315702699749619450186773049719460139160630945282857441979615837600820130026491352752928224739307383012230897643504488621885496387543787313974015023240369146298056170583129801194658656446243443962847685539603743853109436082185638369920764382782715431233900974024872061624795724034098404312202285849615947728842345646392070952197167205247880244881354490047956748403088498656468518677040364519515406006092523082583974572579894996506712715927594977425859495779432833417680685446201443276653104020310266196178390206115181535842754380398630588538480911951778805427896451418028748371742949052542755301477812831306662941393260136866656257242486023734496217186014669482080803708390607742245342585332407139876522420935933873405088353685367849158762716479043657778183974971522758728610182750648748976860106427675606888940554851767634667998752521561024766752911021796889610317539218121098057917216278619567458263831987436971939856841144709185821901641924714690346825357729433337410812483231340877988684030862126344345735393877502911598209077485904003808557761037579458644505607778631504066320660878186435639559197176973934929163852777211263504931189153272863920006366151491373513255583335244466121712561846664870793807482485653709652696960800839178390307607949706119048084090526669952430141308423706689114181437459705028106238970838657355452044523070567790483852414118601056888279416662067501763466059761011968614031404048168392221675841322460677124271934805306400219040376650879718020342319366027436010722218345605709817306436260176976231927361510722584762092733701895159764415854030233061351867327447649089416527687076111085286847197253340463286051520874570043568702719698332748146788631857180575915659905938123173576406332861633986187740782609591020975306065609514203890758497907996234162203083076106515342196472540979528817948526124303608559832205604411192559494771329290486385058021738082274448549891563303692498947394910083321082906693319706904057416127611669104878457432946812341279275801296379953661095646240746825444065487725781120319487802554992202320716950193736452014306660447490865994976256420890829466122704177825083566097527721241867256013343690032784044758404780594693659581425792408574185652181053978497496709573643050145018380537803511646252564683001801924266212415058419773075290723041802903435839206459404964737906387494642207389493047116393765068188047278207937810426255694143871640226557117434085289996636057922280359678503456949486609821104623297110928556238402929003043892719565908090023009075684669986264930698382392353853225285103232090889952738979331264133193073983026697676955207617762336890276350634661077030097416572575691302398181287355936283152128858878356667174738703904554052220856933681805616234858692358268738903245728155435515398549738969783032337972203943193365060950074095585015217352279307957290748446881496299239709866062222212788603819426905161968042354325686398633462552413891288837114348724917405745136733489806363409279800224543586762059593576722902385269984747167782320652059377614388631856589187224139608525222422155942481242535979006553767815283984755978099073065629141214053929543130009901077104088819249256803706792716738505751492807567127407231724924639532180903723929529910701666764025652478383793722363477956920049668145111013411768034562071469490864502316507861806937293801351747014767530639466055857495691641557882902086379245695819777916978513786087802051021071154200518997101045592251532853843940265982970888200704156957680143742995151855222942053743607356147350532319871846832193911052584654537525839241244198786947457002423041539988770354893038092489968924808571955243286680523325221666189940806130261395745531823964097598601945161229581664866935959560031999850640741538715613315989522677684784166770698553652305908518495059980821186046120643973611242047645774805649568978133807653743433688801852493152181201965743782756083729571596131514416317271495628788200432266170593618761591717527839846758319890434793697905642980546868490308948076627964987116034244262599200829412749382873335789029060617993065457651718260472527258868064057140090293671010374959900588558161303356849305980193108129603725576462914846387573013311854320565291065872283269268255336880896062102139853626264574844804289881670864029228185554267865908442154943425869117227655988763637002683022370032176139199929646076522455428237592966154559021791324675569432670755942258373786396398737089586674261349565358726537833596116812555827502667651745722273065007967411491430988497379354794026110646145133655216281662132159766965532171259516277004545794561091289265149913197504749917796800055335828600031626010285943837972825028907199403487334358401483320047162102243065662960410143498052198520097784915891861117950394821932371463831659110581760926981169349168793240702411975476167575435441033350123542299276578685645373832082506781032523199624379116010149026091882476715309086044582959845026057141522586202115032719402684760066331974749933474126640275985937150211020505650357310460715245661345527811259696386083250184417168171450229606533436217383115029665107161020753198718224911876135698364353668577284799333875309437335720233480436711079353811863377454456269490590206652853450607162868381638473404891447410529174727850178303469065635510914795457228465619861892711188503697454594414395881302940853612185712610709052911863550265355374915818534792135719098225334951088173926778037547621970695670905589850375340691948050291872658355906923042494404683593114038744027993305653743070811602361073870373680947469458844589105209783999831167935732156789911087282767515092648940516432981978936264094728802544863347906062326538565058001095381925012823901335512631266785093262501374180640545593080815000510857628367254600036494109883446204831242447604126484649274340363659554462933505540000970113988477059249548995699618087497306198654005189982312202698582962566966269784005484074626095479476156745040360192194945369018013741636746009906789553678513124742688768142932371504214850707857143290540635884774748521377899865319291909082682358577364105618886056874917948496402169263501420810395448613154759813644422103435824355351611851341294588551045699229006111493846742264489170484577087847164044272386035546822088155167354615891477260121694727889703161104195366858775878837578856626958748382634946043410722812753035074089480231412277341607246556675114559040219606443461560766480645253709056313221308004074458511370408788985315516936395008443452185435207445766322284413955462130105944828995184330296370437851504411629352887762701625487455023070622724909625638134950216744232867418303172397247510122063166894097609257556090528191513039902166886206349406469039197121074470921278246404522297960482631999494120746490647077821278780687935203634979414082115060944286538384938820262983703170135098285766067745785944114698370758521367603703211367375786663441415341303663797603726852751474950866802279357939017543414539583706600927620318991619113796051194775842342324373111878240927545832351995440570341501112845116302290458211739441229085264227473530639126554862152555013351393912888602679628109549616573422781409690793946722010392405766593297139516403387564107323752053171671159576557383295176514983278142081518332268058680938634040057141706473583973443578729683119533595163401345823597765602155615270364764308165990012611540073729940482285298737091613551911026125653172868519219309173625414835682603421857905049997492513368753009355342010068454569598251455508164986212658991351095433143650384860663972740132818420049658536471666322995477681438031753149891008590127945364445363677949941036588068790388953883872322123608553069854732852575815687421924392016292086398753228513714995331724844339706994657879831896555381349692787979522898632424389160407933767158228500799482133889531439155422727707258990116978052941025460012495220559233981097123983566068933297474991993420023725680499621470836011176433678978319102113826970443101035189363923413343357738001863501455239145129350344383116811148397922720395148119629322341500771619744716906330421976155952031589099085131430230372741337810693696788199427920798062155363051827133464176841815697476581427575461929954772714150943231149186422438619609640273199463583317923765819633751470219488983016663124829973959822632647404518078386172454856615253683917523271329195654777923357289850503066068921201202581473153829732235308059802549356001982906092717511869170055306322566973542246339120430390305358051923954112820351730436839496727768976598232831791329673465882216629516826872611617829710509536247285618818102280081729660054566113919112109267870330147702776771802428315896436235906897327466489445327428391289054908922974321418674973919046840449533345629228893307330575940859163032289811874153339516114663080966697410590847097647805315737928726520326120106375234201446985744432915863497087476884451254358234605481880200053144972935116151769017188994136046231408783774428505854053423243145566228279336927239335707741510939058052555994792273153672701023831656542763459005538766703013675359536099537212415139767227904351349438325920673652756699410892398120997373505103555084256500823499025939226814542828664028150107090222505277036357605514813971955848748682660401843691311780530053712428522559916962703387978333085100492862014766620341695036968848162909160242409138343764924959993798114232901113008615499404942379636064291643022077975145644994489764693953666314210331919729423644953393248834461937899399451171292354788313876486679094976653842271979176642383009120652426939674374437527800422447128197705491266747615495410979739410892092386281037627597476931272286290909323076323127934599662550186446540092926542254572818377968440545026482947286420427337102568580403422381676764176193624774581428085433688621480247994554087991620652856013400553361135974042574938522895484378268768809762188357379859817342547339421226275650112749042408571278068271006673153545399497210218901862251945996576825203524599396702417082840366690061764231280976064596100124805973591585721926226534587459759912647354102534585072498661061166684957049348364228400649193022018670311764382669668668539702363065905894761029666612149651534151058067610212156607297222253578796367002529859208942322708543737124816380374649959266280419113767915974218490721201807485351240291477780224287664814961050315483884418891521800290372254652029755148754395233171069730263759140381356614524463956404264417390592164235899875579460822252614416792235231175734746378986103623602919598354982211753895349842979741974227126955130773598249849892022682091135236882986721558280983977571627126197922219941040929621711470226499066979088682398244510743532088084736440764419774021335849087024952542065404054552601460443614159144076997538317276597233905649998995736982609788241854360920121037432669697925433964700430805432046486687189322526506032741962865218900867329542324451306582770787705807532427581420707993354616929703678172474139067012149990887411315523239475551097818378821980295802698984633525911818394386807560172306360147777556285339130601203029994228346941436174276024825526081024776713056689251420578711875358947964158943541930123833848658669866132598781917452380669314891048965832226688736426542738403998975751300687446809707045118467808121579157522967183596379547835754451020552459017936594520641646809746015629392448454796590891243840706406440718299032721221956866511193982566138124388331762927368419853577888860826573195074728626058018566234032645977182675755285649292984967114971053945447296929981615996555426956434881986284372508900159083843053258425266435210396397793199069810603138769167238482268709445460061515104328824410952545413448508895864375794758938429700083102826839127456772253135716219084478668328383327647846555189063945383972369952506852960914542343855585920936532113745910492745995887519659586395391515742701750947495033010950219559130649902145690067630510808228880004169199258161767780312654732834364419802345051400887311287420971453191478746575492109693265764873127266649237948973814146847807357754071526341998287712042642658847896340335145557738131203642370431555609576514687506565311498890076490110657517629979399507348790201285137542366620122894444298143186579931034633165750630175412336151160676218375198120170594314937842854579997294821229046001589539876624177072263983300753791323669472061421084766825949084111866065860502011187361347929590749486080125518852483401931131857967403322734128268475114058032512743038474315744016041569421247388354755952774872649731342855224079293421963665834206256764248613386219097416925928417794004482258682722311399341476394161432552389742674582906160009687586376767326680158241931933657935850889301915759018828990907228480628392562912490881722965022200595965981259489722346782974101607260550070948345180310060614188508675867900403884185723924022490913058566339126909603830764122081785687472913825126154859792179186426032306165502773103687663973215467906810114222786229841631415680789412765319440143678770367392666858259121894411561611342240662450495118670524605162285426970321659805966097070150876293690461123535413622925776299190086705737331732616208105661470592523884548242593577904683868901908343300943623273803743420822253122520959158181567878741556461763615016500062503963019532666276533465624546179181947597775849936602449444693576402600792697390072490789563662598532906751732445951041245558962624482633052297232362846477531243906487042210081943638059965051960605837177509365695843387092662517604405965009499381024586285738872898554724973253774717956166404686832765411209464134853945011734813618151851777219552314297932343780951748325191040008745180805160167554045103016061828787203987025100735186755482569929563785551515219439660110765127228379873418165863997067360587056302536383300086797678763624475881927397721927026336902329755832192018505419112740084146842052796846460563039765567840595829542125228855462747829082170116567472220300459039404041772917031473568459075304462537108174352981431521856111087423769520956795234470148067905170682320625093851045222516766202065783085999493011802916661452378814214263646988870729032952641816221149960399830307436839406236769728317830288766675665838421546698073554891842393597142988947213487026855008187265199914494173137468941945797507301965220706526287033155846621215199354366205762508966314066739314578689946742335539063484842052643903596219245130452062147841387288507450110503753212964723061566759185888363290819653458164852713185193144537017469864785499781191294198201647088831171702683861813916193041195956623557477722617859601938488770919189866715638605096544269011688832713189291395049291048072762232805942862230898930357450848041652455812240452754035656351071191200000516061847847161952405183717716053275878776189943160317964922407990460137122872596924758723906364672119084109632323483405888978187230016252129016091474822661286352688922250998089729046265899543600193189866289130845623197645384246447246341751742861471550780438699003083836723016848695857489279390078763090424519585694420942803945635593517040021294053183239111451003985498714532608881089923319481554132815982996611069760932564395168700901983113220741980514627159815547898045434427976625201965629927898744377042912050039203167139626454271442325589757531839245171078062404490702325622794252852253501252397632880324015261504498016867542291723722235285606192600120098900791797048257746083974095892046337269786286152854125648086047947458754514362418894997035893608742365462192719569182559496714159581556534966661931872621178961499035623915701556588154184345806298478589375807741948419786164514589145489902378349436976106248690453587996921509529718875100486018581365867977617344963937796651541969182363743970557187164311925673663919379562356874653157074987516363662268282567148689941889115249933538069646297416819455726931562739926323976562025434581179982978899953129650882152573299800410027757104365531634419781086963797310825554140754281006814802800099344606397359880050543820869502452461907209941596119476556309975076667714313951967472942340003810465248546293846740868821517631011671419522640578303416658108182675048349808040343992848925653047896532714348676123410731619724465129736558834569741805816573926608598025016042487528492163359303401306706082857949073799365895464459839382405444144054848665071417818463265797546082853341775628878112661747297641144173878470537371709408449534372291191543968444974192833197138892522921412740413726666107934205442082339592344047695478517041127136200977041353405979821144399483757625926315098312856580612328455817985949236124481997805498175311493803400727689516045469656735476432249608755238877421368976114969224136654288059913095086517095590374650986411266905566246054139129845601761267383654513809091662904105638293136897093661885434617582947334868314076812012125806446971283825527605444086574381468104876255390109151133406612203784127565715773591558683446423872839136707327308589539148306037508265645470804554529494555569045224432906803807074405253214080468947923183957131986275332318049918563990917219976547397636761001483920746253943069463874147112059040040459485943438979517975201936125537959564807794827534288331956359229263114355224597328314859835146496866116551110661605320240618129750902348078607831456097927115133636731431841967145588161670990163172664739097829364806824865535842536974161814558452676942699994146400882147486846005012567148344628959423267489781720421392052530121792584760966494578250995399608769809713571582487746604238341120578717568124232896456216080261167758782321357905600984322183873963788571277974607561145790694746466898325825903554299105170601373791401163583085291077661534476202678813686578054641114385959924680022141447355845507043097932861012524392179500305655190192621723689427957509838488190801923568145364120662481009272325765368028462710708636205490342043710524889596093053754311775724299384963569653652539891218611589759775633224886857926392053492973224077293314646762110702388362813004806419681065178731034985294688445365609650248123824371295312231164739321741918355708098986678575369824178009458348200296977259624756926332277418840662351954117768787399849186049599089923952199512619146232977421818544302515099481074330710143231248752092407396200864075022036076072307076288503360087263916341356883645600401769633367460504815086822824815476572946260986704820177202587709523736873494762865492935288595277002592764286637155903091198188757539012251997830345121243431948366231421883427147834645024304480023281615741907860051006404297366120770589477093876357132639326649977097878866362470929833298435906428806232615668379738522677300273739317640649052262944821959223385326559076645185446920029416064030914536176467093320192471660679792536046111066799560535461118822313375636957028284169267383103925601078783319897412251051372926507868380773788880534326078515313763225093374842580598793342566705137518448163494898324191828705963535287216678423442715125639597933291976514179230590440197515616386965399769528640559084025423467332800941836311105216855608736152750478762921665775599009278438206565367022261679208466825993404771807078092895165731149110625418782972183194490034505791750006016848382465900973382999920605600056123582765347379778476464429841107025979351009836577633263394297707134768805242516001745811202476205991714799958410958199088806914891914771958802435289550649969273310440747352980526973719327158760424448242435299345676582472311053190371502497556850551950690174184428190910404631469809554876153960377760770530441591850804581094150401102963926871784934937550244403616739478666639254831328347702844269299812759787199311797956799391441183751134841243449938634980691072933349441772824863656282181771936595655599634886911193812067683219064377826557960183182032496972878656230693829419412721839142032569722144700641609480669926066087025696238986101504325588352382946023413336556297117141183229906046982276030239346533411573550432303546404583294597934640912407042586512908343848535822480247340964695765702061864986989634577473320017836880117298486332028927743726179860978705451275757203741060796279357676791003608195136889065081845888913884507303650926568502719629697830506089939020350977016396213450443721303865427868365754037837902803351415932246747571432256976346606062054022494184867877598617203155757056672662477571778616334663951040953652326040946472402525156577130805786950262304663236606239362615853230284426201654123528553328032637932043045748615924400641461680952141465171944875172404686678051875261648387062241492616846129683626662718253703973333481591806574649391734504620817172990088381898551828378404166199695778209975358474702891110721702758277674975762256365594857038087722081301491158319664497440812608839130494763413844974955925987890893443008150771870137680936922161627992140137896639899265026312639972049668050426850031060901683727407059525488138098774192065179997365433846605471701928470388844410577726893150970539131109898119066920538184757181771984743182773021574977546749134986889332315473483012715357121172310676088776486900432609394154069122957569962753047720161838166310150421312352106835914424518537021359309925214283805604524631794920027085017951788739134023249387406793874008882798658505772589316592909273813495831646702297129190471617226544587546460143545913950973987702317818467978313573943677098443664390724040930144890297870418591084504580755280099917014716147179979313218183847291335142782989613504168313710266750567578756087046586624233317115507250698262375181108729526640800115605710301825898635792303026240760145013473340899443973999607464507489145463652616396339063892908778405583391103741825913720653283822043071238720543715595378516734988123983877909765119337286381393132533193295395952082775577919567615714660394692490662137150201872045241608431314376406063177661686505744300155410715435389805186028218096433110672206652743654522952538749821297258517197230401301729722825733526382892803404719400433664090763218930450805711292843784744517963408561900296610502241456151186695911357874723139157377256997593065439164008993089867142312006026833632009333117429664258807709118414501466532305781864136250451586917959138150965099063285384746899927533593688561598741841488101729836287843169704396074582404332114828013911168922373814823401493265128746786915596400418914289349484132342986153352836763499629081012816618690969701424466218080947109110501260660646544657335872906851369906411008280272969131157418283813074975348351940362953520643823952730242526750663186679637469636293951776811957773588451912051424692551169169167819802882341063719698277047567984123995034607759812085629495578344413612514701142576969254096181108268061421285348893056538606925789529196992509174244483653149134314747231709155487503404158904783842542318517074649181505846938836121249307926602572226196882669038146957621514029100799050857268795260823488253309451064348720633846886795729316528768842599792573011236424567068269246484587644274281245117989374693002938915495497881849940240584894936274074537028924996385964813583327372052603626925164110176059253291898865848710576337072265060496025625273923813980565148935812643021515348612896470137857529193216117539918701103352004198724596660515375608387120535908389497927960367374059621473946068261446662000215544264138567337879379852372986650003273213369629061120805309318886992529704859913738777987858494915920755194208189525204606282524212068232862975891059453600721995344943479217793507820572208253802759488503885775980087087057997696956880207121709816575016176114621275252775135172663667593288306945405470583134654827149973089729265893175611503970329564328287695782149530541154355116348988123198399442603148079095901651693197321212084972141014024594492751695015014722340534287851308138813856939718211542771679553752900252124690939994936094277466546178275743520737513341305285320247620438772281390306255396276286439921367316889253105890625910399944244679682487084684256550622740406685149052368416746370553482912071180077787640294704738767315077379773184336641164755934494275149296444758127225059807522810882229427939180751777103821874053941801691910258414280459488618146737449630101249192627790715380564320324416296482656536982535611471620745158227447788344644974018921565974616833708043314900105993583936866595509280135502130001229188861149690535860397200386834678636942644194784301305081977228725509594280252844390040806370535302809938979321198919538500448724800385246591878678676306353246588245518548260411320862657648626723636026452209562162733887301634055898336301742722695413795950268114779113419747610411178368714003185461084439870423364490033354821557502924813663218521275555555725187037003521319222169807592166424936921551985670401542171208514566318540271425210543161045495036974202680114629149992099500963976300661423682275726745870113537659783560282007626343855800937157806966883134453054421866073851894787981034267237857804002257072704521035842451642032207920307382644639171499148973511300712438173236959042835855554871446740432738775247871902351290959925419367244693187543205514494821240348169800695922872652752526580175831162411502147271690851350090374200882680221378039531411202362412208092794895090099339523157834776985983201156243274820688619342064737802758692124943495157697445623907256009071259320079369971278645364203504258262343740584756237799284702782000174353325133440343484714582510690135438948246485523603603855385256573232088427733790785611044499607521883834601511494663868910571159925876390256802858534019022019568764445346077260705383953700901728342045051213473532574522121411131785880850928146795436273958168818799978828617808680489246180287919985383816029756638939475357625461536288427854912236148683234340162927852461505087378884426363634731498166758124327068813995081549190945245301440936999117183057300467218879346678758583948852338675327420559076947130379078676364324955706555923339708788912810238518932574388877071193309502939500435639884960615346826977582707426429968115012783289910409366454704230836792635212765353092964532173444527732487145934143001000171189045548047061561309839068295900388229474919729450659707133658282699339151492402345805493425378346004137209824273314653640270489253451246649404298794727174810961181408660491949530621315585673855543102467051972292970488017754114721782000153532774329615073945511990068988105288305419271167550444752321064860054182419262813969409407977029263408212891948876103146162337676170774632864950828579076014015760925900395171222094623643482689881430636669928018346479364646489669914447175540318076349366903389494794298858293532797279290955696462807828072082981134598102875723776911966734372026810953031365206100679699098092769299069941458651729898228634931304746155127192664102225415143314285182885954908614690140073292593939300564658714898457226783330394422061759478070463883877368407043178461257230961374946260006855546503120209134270004264075789652416388319305951642947070962983257351644332366528375179101282785989859296186285932683096238201034473152866632255137334274655221569805400439385559818423699578169629712376989315339902136690704727610045293077595891050863007703853409955589584108048450018643560599986849517925780472608527632600240020878388419060916936018265306191937645677142170984542029462580554920899383867733730006853172385197821282849467812478346780225598758522552946068044266887884582947616730590002435755619182262042256616844347705250725416658565219544399918500076369953453689171909498695899414324168946211122870520480749189867132742411695983172248460802848769942657540279224805501938469774085717697671234810737119056259027585680669726203703979184062512385094775618904343617921814985085921178545082441360342657966851717262085750543757566472686296214166959156053362973694501867110328486192885050151991642961554266950782049193797258717261468904448024170093771808236286851553713156819719399188751355533393716447781325946058568879408501119773515337398653543088005568532736109228930709470344150575834636265949263262408046203696540671408759473076407365353982984693486368965648076801026446357291968610170047730802163362008527546729764295849129584455692575898933680844507476179540931376650452172003065500945732923183881339726581327060894819553472854333109673185615004602197658082269475592417537608017450444103578543036747456940409618779999874604383751487803439401353901289421423360779306852938995559355663204590091836285932886228667679905410728351940906973978512797020978283893681209589446623120717922729944493483224324648706651185230324317168225508173189615012853020947274972103820985820539108111619683801351370248390063654645475005209493645994558523691074184394091934399549023656639171539808601089359799452542564249877010950746801816697448690025548766072347968731876323667315298234623387357003561079189908358593080586840999553245642729847570758868380537893867765762290010513373286422734298943204012093200524767783293287939495809568964699449559895053815484479324778153372282005947928636751146646564751684437951785772789819421751985250322113446512184288454968999175847015471317788274383226749767149394744227059225460646487814902242169140730162486371259946219469667267537586532470734822282506982422183571398621135373111041212862508420166387468867293150920717295253249325209676354829844348370052856398470895005342291249710879319460907299879403414193036288605573773100752555323757736311891963934089051222866181245599296890921824205416701433839220548575740146943974112911361795652188877852421474463805160307779492060712194761151608760292891680776331348700647874961001814594536833745648881923146595946211811047666057634686929940471762790979730664804958959420863495303555722117304229019218588980353956918975967623201522947420364212707205653190604043210748431622753489698583667785836074157102523613447127240868673422466431909891729344979025962738789053158089173980992529201656548192838178660426970677052011356840884148319058918074809837892171947641043342808160833118793436612131933378922129669567734635726337366699195788755754345476497297093653245511659923896946967270262484521229625027991684486700856150083220063351672205060989131025821136614783154072523433488144503732447867887912257722540098096952455161518761167278298989182563030080255863089460280297642425150779202058997426410006347827295032723322657290190908565395871545979487962932858472774365986179827279324447494605171774522143326915112188323631852189095901876131473483757646727382985702320222403212749114326756738996632403274722331040416374250382478997925698985263953993410877343616651710336423755423674602818937120945168658641946723505562391612582733126439229675477128225701626421868251737665313517972894360089408596663769057613073296735858651908838840641727300497045168416158616668902961297975896564295930334218221027480046319521766546192358481871862164586635809810302066309303247586492755136032576410517465890124356929439887849833160383843333230461833398234331634895927026525741592084301504479945837246768255857591095542287362455874755535408386880773337710082744000652287731962164057758610794416795512154373676802197341954197286920452870327354728935605564802513616967638240215999004722430830493147536019511275789065583311237291567958324751807287560958173082206175569209805642758616697327044284967633861298459726357910246253026987285553177427378308780962764753181462404708940634638146553328714060029928143392297384783743243601900454845042762880266422518610286529497887374385116195015371903508983044754091834299371017910000902306011971671001896589582952922793065973298195394873533624246248801529727040350129114737359213589274637997216023151621442627556076997756283399121887823299127199921155098407028164495259780872009046839129181392455709249076603201546085730238346444207867147946871115229485136632321311638931200938234806087607860248142050232501315510846030943527889143889611012174406660642919614236167557177493864094160554972686367005498901584487623983614466296315221012520025563527000003583801218880839760950148806347641778788910747404399511069619247812814824796319485284949423328113679254764599470267220868937378016906334400526638741854327254564045642415507112178791510048536735703236576063607004122478891312583754321010699649815943979809907854156425549435940674628634978997058611023818955724905811150905047801361112854862895242846603073676860379796472036828443965460396035092723542722286802552897295271877386375351721617926682092500336327919323884791104366689067974494061071643469484315579329686641874239670922014165463854745538646058765687629447938992533016998211409043354987182985244653830216010890833586819094188829213864184291931471566159807627501517238897642317574876554890072486101292232316287996864420197553168461125113489828963262972434885996847803674888894348216515084307409065043230108962628043551287828236442710384564672165426510567902430671294272621614048045107129015653616719156230162797256850271994539280083314119154755249277673971719383720714473362479570669251527032908383657369414129978819992737109791708492935023860350004586171306581936509957873242329771675388059973559931953985251765659700725368804298501631333089039851940394604936524087386169014889038273693590480739074669811667100504264311513978286237990609810995940952411962620255690418495491494612417500151246865430413188117466409561893609936153397218704691556457740665886496060314906015856360163790529235108854973614425828105052365116793815861990507197460814661403559091757571715008210696878704010652365387250588864471814875437042205280845699880264815833889853304376187325856879442049246257342365969932576877664576396819645331017896535992670890529704057441805122761199535164468264582871227195799859320212514504953794312994764503883383414191290663419616554705534696645787460305331982360878236318989754645235427273687237367426003110391635764367130346599692218757865484799921875334102269578552495811583637825352783772676001950073722702696630233109622697384844617328483977518236130735727189931601906806121363408730261228119220264127523769421929382462601209619400242937281271792292802473147335272029836710875209478539275208992219995747421880157530948217556946162355764375637721757947480374506656736077997457428657711157635977183880381955606770959013294390255676231014535423175688726137789314151817713663692084572818317147923928705451468603249395069406782173614701847267649669313365060742704996524013592053842547774868102161427467704190215704535323577595266533134016929031651809155620996200095372567629674394659948391659953314499057225093342421610477051182809900306302640477007247587528141918249524086392487142655345783327301705586547335948607400399850482301920607894782335237307323224130365414155570619538147272445621653391254536406627450820338905038738565203258875641606786732772305424208411598515412220090649324789478276083875616769690872888178686562294163123065200908208216250971952929342866498756779920258243376347383346634306691576034897869350633022855146586784951331777140378003725812439848752281178237109215504962126560283219297748119388810804039802222646311402582565515263304778701220118291354372766283234240179098080123701129516435855460668290498242599636389911109456513200884838668775236765714898989837287177526988161390285020586335695814531823734889615531731381207061119361151724470759878994520479228190333132934815085802138924997783497447372188397606547849397453925536662327427458372875077522370844702431975647865162983749382748440945489543635034637816312134909369728671482944024722713564396817404306795365800961447995844804716864534341531571928451614324975390759097450577871139451274473785504121113037060528782913611983892619179539380107227564822056180683172927455455191649094766374624289434332130323618721911316015695977342134974367659905802120295666673425278103971964138237708008281939204852029563494757420292772939544294142672778787948008089852194003584308070606996086645045841644776969974425996192538709616774622763052326046335395335517770623198322558162453027223990335155030031047460171280880054968259214092250132885747458658724293318439707237198393427099764760661651627844138291560839230250446009777857288334417676115293385650362285515239773857494666858076181496420473749935004567072531464677582932806234405153195224409978024745624910795025957670343859475224596942270982065662930653863848087921176989634384379592099327273609427612101823786526498454545724361128002439562075501280878088789479177988735196673203179470794334777182384571314807853162839645119233820124979846704896937245563193375446727026780795052404797688278214755660428431175646090831879154900440810864695110456975479547268642318596631206061633279019603131438214333448522886664623893580043588221999159059658028318541779593043314357773680414246341281352165375072415596672923289777327920478679720613188696007531962286807290449714707684939060595879918588654321255353071453721955075803596316358841036457866752279064617596806344921847756581640829359950121199246753968626858099331609056368079955482862981611991995951001804330049462513741439022388904200998888478943153400854798087848839464879739043031265903147483279223924880494682290670717846571990444404263215658823193446980851902966728438324246848525978893118940520159839902713101076673161098499325656320820524407373130490024255059732252894758906264146201842353941645158382141522927400147195118428848936824826671795315903128728749760005729049806871080908502528306285254805772918799967749078775799766177757813061203705799633534156527722401986014423358412199079044002646723941525364721521412316026440747844661387620121283150288421691320901485142940744658919034865572145630768555917082050714633717709707786358426496087532385953569230828897770161937453178454011930608999772221256103031348197550072067545094127019665504870853452132222574794007360385654620961049127470084222470649941531152559795622163929787528859648736416614445598531198331889555813039014495377987100065039778152403539944881617256467522314509717321006806055793380363819902094332322710644968339981743992241955446477798530060011583434985193602132957866241598229799874899539050230197683509138774799514171230704545983424946745678804390837743730739961368676982787476255671169149055123262079533495680527666706835896636760897515685971114807648252887366248392220798999333386131697729915523638264714820076517336080716494921688418706609354921722237146205003851679129415316266151915417780732242681118657664884472686522619130456181736162170398965656327460842786191330101955186571328469269205649562832719119159704063137969927189117509060193504212210525038022396989499233590939764881837254637072532350014937420131097984135872208766983300749322810091890622037065355124800459117891199351026863296412589522805372726609426662205143809413454344014284081482696517120257552209363221528332769545148890714436803413982184533341769164706836150931659600334060226498700738980389023039376692795222290389196938227423555634060570064294180444904245776661650573934670573426632278204199613299953792318455751571891952583950763608359683071867177679640705745087990372955299175531615742200665645986260661457681074456078940993205815321638408280171384517035862215256024257885340818663375712559668282265478975102929405959294705825653703230800759654743454362465724431611419378226118923600756049867745852615311607777633592509987324298281966647150649325000842130439809838436556330247802929885641069557566010721179347252367406105884750949073793855347574584568326681140246316671882707229097743502368639632248317411316614723046892226643083503182084932736971281076222545421677814544055613685838683333655572133548530555771382661513120814829301443794472359041582542558625877249107368064671346683780207677550448854309757717525605920159926202805992387450058271629925184545826598384540701609029232336547532272832733625492123265185887197998950761847572862017365737559624655156491610992785826912432408997722590033708050696653801366022578649206415333495772132345688543486288164638842115998651760630528086384451091894308618933470750423579317797001637859020577181586746186481360622457429779716237032072644039601084658716646661326444257350242780705942229703016972111139925872582190964761773593721961069770135938624322581454162344812002953754484595714281628538823288393494088583048445089586095067539619673346880331730748809046140468006294095756554323927101109824758758808278386705610128548209160856052782236645337789073338515596551657234643925798139628497866955274371158660860148741857703629492484859211078189927958263932362909230754002476711832013282812558844853737807205959802627271495826098047671244561743459000730056239536645159914864968857261766272000490786298100959869927678141418292653519179510518867265447139724437698190719280788523599939152269747461427860347533475994928410049855502528465972920026865367287505353798770417174393568784461259433183716555580583553623348164088291196787907439446561992627930929319646274467336666881417749639850849272216826033604292674347710950507107971061453071920323843673422880289079632845159090413368369144098885683531558639558298592540585257515477799821739111226581890057698173930675653298892744503612240263907471155489082996545710027980473257987113901293948663921088358649927783480948236354748476998102232921032462073296289572604084206412064430362150517548119190792465579468072884448392658220525038283225659413447113055139749699357759592571521536319757630624272521264010382019980465911285673631422443368141432010035385459798987814488077905549877903053129146486310441431219142634719595469352051339079104880323895498725436444166480770207716346027544867261736708883845538875745162374333038147133232957069218028408643150664302951644270381579980428162800535887616326699082528661410074007266005913870779044816843868036320724331243470072167670392156122547536718903947334291752077204831956034514681730133454295836417319798668686132951917748878098615387671780780988171712733118740797601975711652073200356744025111022424205622444568785568415491062417472780409311824626923778127272396611802976425381915455605965153718822616863398877842905661921071538067196531316676617691081852966149805120802204444613448732656360425981341383159910151395095457844856662441895579629136348830428733011083649265148522788308343498698658572729904200485212728931603701182037180043463735629212457866640883557351458898221221337025768856854642858418830184164801274634299450382260222789591011103449605612652462097343613312788680192723803631264161286603104446754904999269770408355483880670631428095394339297796345834286384848751883131517076403118866582701624870239520303629978590205670140398469304983080634750045284571929649271946547436324832389457916244947182640126982785427873949347627872180074671795536943974392237094953521134972412727947583328124155493988827807946950831164171345735946417182346679114950890993936133513269899106060152115500716703086765699500460725397460783138106183347847153573851624070429154317863639845252073728894333748232706722367339664251351681265383585066878126311026663830458355087357850341174952486623391189696095194999011966579605237350152592049946935866761569038091217463474127709222841760289976024846799154108261889769174965871827562640790419838845731864734874305236628670085818177746101963571473136703860857270685058418087074525211131052081125951693012737656303809713347685918836837145980465127370778842879208067970046195177091257547156708241428845061261164338403541237427330113355406272475480316865614992974886875177081427799884810878261415532761494614463487952179302355205535936060710842825992744754531884556861717791372722369598011158268073106931776579266054175248842849675141272908003800572031764824478583110480711073117794480686765590484055681010639475222726252375328683483388247717497865378318179925274921585882110686229269091648648584558757673614010917101540626650769628758975850383762514178444224579106689473993699049673294859236685530082473710102757671585980563898451955684813697910710936253486630302403280432045244768745490941138316960621657959084487374508129340854749864063563551669591332950035343678948888345337379914426612766699288000434503482088379409737665311149499050010466326708400720860302584527079402411546487714449912008587839922105615215923643305614033652339839926855946462297800325533385952684149587189338872435521031854366116021603085194502530879121581068431626612362048126586190946602085326260193721239309763235221361916996209711113545829940301210480922856593283484832401256073657061906775361038896036129595685437890637629908013645751780542644410877433062889901829557633360009922658504280817111872178780991627247037596383438358580374064078563157870176270720249656169046815449839203650377651266948152585319245086647772638398968773104333367231735365263527665318478089297525941847640356165029532428213719584508861695913315073513053386461811017821912215187046762298953518898180580897481055017424899613098455706951702761573770141583990998661807919870758595672348071903141199909786359362367926890911356926087249818221222314099596361514404167947679934490111309101950235254055779886190910309746004812355762346122762672596264455442534281809771636700626991274455752016598574016064154625277041042420174337514418759569823716306279434599053251083680752040609790188285761415935909019018455520753450155722221971788855717645851892472772554703342816905930910617458056603716415678064941781239425483064741027368098144103388692733522991707866293528189439219787775947431503042533063718587443982567612960342327770882212743472634142638127892510287891435474909942221012082547285070172482897299543914539917635698455856603544569860689345419340679100536819227643449981301191263344178860286865473588025074863805308141685531947647173723250592866888776625933749764531492863909309881383786545764043805044857106286655443458632463981877131327535529764610816592547802982863907831637451287750438707615489318426618322063257209011739741649751335086893604925470798114883557144116200791089664726709409734010465779410584856006869591210629322184190048948253001755463650276008895040161295405471165756312165384001574466355898686675697526541652639279152612295201328624579223501985153352896055234539280780373827318195153112483242843192332655337819203794323958218249792795536811341370226656406615163170767150848547182730185461422084139812945206521837094209880696629836471619653270965999661698200718416735516999449360645386109801659436315558584497048590993921079811354959624273273562820019034000937592403545829850173888324436094606056187121246035529599255670860357666438536406620023638474311394774074362312558332398297553171866591618819589991323261517005819704107271832969447705978237894676055105204351302744911197102028131201450430671188707399778038116701480863252134155957513525421879981496565907427478663378596432435065307018185206289104722342926952814984139393553491428492467168081357530515699678765405484765954349743622268872579574241789517717976179458768833478252180478938353702066699026806845150304371041554235159979585877687954864556023186263725476785313858148528777915542319989163531939675088247128766966066562863667687862930313776886269187306017999697796600053913148562396476760680653663876730387596629488962655804129466192555162358416961506678195983347181472544421723883459352274229118125829841033562500293817356731929730251151825017678030976552457370468106688871244205245537770688542785602179451871373237541223160438607916661624878440400780312519156472969439114426815899092835509703387395857381287129049875521954520962203322378838443394414738717385526283180200347651465566741265608835286836957807813131970849546390150488012126033775804079926434493086302956420356898197026079231006781878497852842738837897669533677361895072529324557822338571546239168900023589610401030339362100637743326325633186340139690401036500786588951918732097113027879600779190846318122906400442856917547350289974406651591528009095457000893983263454673388471407252854028500843449651379182068743640309787072790196189967790529586082328485107749417322519540915519133419426443810321663102522657248503605438517009159840426363094136232362241566310251230159733988158124124115922411812160017776496647772835922734212124026586245549351951109092034526306288451620335204489091327533161182398866793898430612865169850715898427851182330924788525303808730429830478513898491209041761608618057639466059495482475295905421268784456889679484588522934556240473834085468273893786922766650002199385434933952717908924120364131648318425884909054574326417333449193134740725145414543785404829034925395761383560375832130419197891224181511603399674812431438280692698565860545615394296511195989862404123420245387924970455592628155097492921205685372917318298516874149910479095384755181704448150559421621240895513495959142931928633446036821572310172746701452277624905191879860442480858137135950386637899919693045067650747668017475825957877371336871098796932447308481434854474692317401647744022596711482811177546932630611390078937071776870359155482464017891055496623699209856804541343076010102300776990482526397365305435626200793232694367080106873611659210128055540098429136352041158266124613584637837026866271905663722915049019900947417675097939948392734400290101248957220435848686947448293515942358244841260105993925364286136026726561963228252452850749377286605631659763230619492369848967116759549341712695737897520401373196888861831415228615226950121059646353355063619131928133788522609676006029512790411101757192251736888259083336125147433820492476399392171331810536662527326504178442898347086298918944580298848320776659148215935473545554621201631240871380029419064813033851682110500862913949311079604044527827821161945825962948950923346079635276484042405924729467872151663727800136620646492073280046288322211454318830522826755081103516122111709265743962876285944897728984056148663384652600621179961642927714893042261034348082781120646651496239210910557682282780892233293377151715242867843241567192383682442352849529951789317534003220185767450937065654887716271355055860593795994085762677185932188696414614995544340211102374650466091617344440598590174783500410974515556086812838552017628095354028431555456873340141264748867168362323969957884508019032396298446235557862326301462763114778299704560125718136320536289980464878846803443494089547177654024441484620435519634362158964213688695127789406504498146582081723816162359649005606183628773909298807407483866765733361348644107512530122272386295785736100715269193340991953048387564473114893309327575543872808636264991834313581706608767052384859620731716978123680220039958693798962721801668642651749843085142847441747749762294072927631344745909918910866035948047156014010936143247496396535357307135678832873834464532600812181666443197942397172328439643075400282111366820098656745672778738686341155228271098845872848470302507545432189989034637612639344921626762367588655005851770732790001422921245036994336776732868649646672047347792106624457706497514449379937750093416932660220377803698005109740535714562302469477130689669079431706836108698667318396096571737100161521920341518642959374137355715485659480681846669047574866200031172212990319613017065342116928587132837488179215401780681951366765435415308603128651168369922136402593295752549013544342938189094141132029217407830510405280813447193741677187555058627300372074494671935954382966990151847463154624295183313119724163536391707584577391369921422351702268452621110959803422233460830731212456527254397477043562053161492795175858798593190084713935572119053308817361891647058730687728724776637567135055231692765769048191274267209961679854401684978679415105383686713682756506721977915318381125957928343724807340603158233173381005076609532439656747438220633520542239688891396744380359500389767079965527609062300052685801008080293577793571364144861488972132381896363169519508000409670709366851300753164919516303882420010485756370090937988404558486997442728187499529698894252384054750657171159486017750683784550869041985243924260692428525130965625532059429146121254023723514242012267169735766056820500804330430005534539494568789764874424649212904077276142557173599909773527968404180138944775842718086951260066480141847713097013143789828445196374398137269403827203061514187263562957320661773662636146583446555497562812061180547008554673671072348662325377998990346109951162524007461510396589574916852339318945479859235762185156401286016346865468230900993527872933290155991122686034432088565964594857816475052327108823469052233745814715814253818289504887511965444563590378464641727680525185661844188377898129229203513722595868022861188792556638529546948835011890684783116158619396751759162975023581398608469783944293572281810887747734633299552001489281513327199694638343128018732731361761732498305754327969248876267720690110873682361318664550849454764548732514606662419801660381138412021992829281717741327395343440605703772349030147158863726437895565675088416226871248196348099432571539993489907094790507497080768878850028067035481403173840752190151416799494138983655890597228048191103632437541203096742357010974018412598902791909487006534750680457250016016863835173128293083744124472612761747748446363557135685435728644293723672168504231929269680344793446718120658580800275456159618232465900378579037228984300133657916494691358965134097825654126207324678748499369647328941551703287121365180704984654693428232888606821995016215600269533380014418782760245201285711733501078002654346643677076478216709849950439633340507775655512256870648968996419248513303903728213174175383225558135101816850012905983205812581728146872664469391808517117310813760886323633896539651793023798692600973040219274368782471551768636185790117214658088994877564579719079825695473635188746763229041800079226626856940361297830697257799448981813627934732024624342496525881349509562678367901733738676155928231196334051946027508920917111758487580491354630702687736540046807830857010442022676956176528739102345074181796067757805456127833458881859376646028262559414287082477589854098409165904930549591945336529929342720106093846514720540041377598596454444640568037490326199692361610067731841330302517465699453445374066505252263868196473021137962514369771697257505382981911076138322075975015392139294929050631726945168889613985203560229034338031419013079906702340023760705201272205420021381950664486673401847151944669157278930751286631364002592430357073347989972431503702071154050104186874545892680716882743672506681998987202566617526213815699217901603018749090515279510433605025408857493458000200962728415651287881325822056080443373739030203829036435885957795290812744933272567762349992054458403596915593453311991605623111383400579713978029799943565123428974212540778477369123853877776675059745923814601581884414914154114163544932022937400080993542533025432642749816489988130942871578204832641162106979492317620434614762344481824623575929332573975734065271820538416961151554387415904348710343963588598181457390224672860046940652951297900242269062539500369977836546240211061367271588687024142482625725661774740941991595888042912366432776835116550435690639417952818171516329175215356111551985687616102518377078677867310124980330499693128252372283990970361490328825866695840914400676157560109005179639844458723302083802310475997072861925383592244732652826599087903705137483875852245225423150987301937867469638100675020389190207931655435129512791564163311262803535921649858622001489848173778570696893356296064942147841297561673155890525705832783524000437639971711738315338324080492692337285951901327625581485642226593209291052627348973598576798636046768954222671579965498268116977821408047975985507664150575414811527084202529278440565299698049947776561549142218254173184703583138787986293507761125046440641451583875945531609245135814046078717251225335375296216546232390713443371721438948023378109340215934939181849417157434041887703352842961733305776920311831596544806060163120979844228813958347008757963937444612329456649220681997697348002463985936489867219676296837112496008415140113533991876883433225349160524304133000984853170655661344686278765918450443123895612285721201694029833621961142199689537957304747138750567116094804057499544615963786846394340947807738354742707256370557354340407097803548764707603966491340329284375248001009462157189052052172467169107003557996313013438370751075873079521019124270911283028194898813484641050965293960855390694704135264108078875870870513299162447802666543400561965908532867548221975044799946953548155878516314396680205075265856253653306383325212167872311809883853806449100307015595968570569463860805098674741824711978337496849627980717659289974959347422617836280536889225089955249645892451242227566573222283968292399558300750061879439672058060560874922413810563087359986644700601721388160739968629706916519038081548046998273631621612512609569375712898704636185234627360890423681757621319175626969998803908489333581343799141051376939871287491585045723401444060898140743360576756420852067879467213546905953464969397861512817916766956730969835030800160474472794229811847566410969484856896034896704133606329381343152134648614094025383699059683335185001871555669957903382706260146097783590712843532879879133966836777941763989378944990277529405956413244009699706202366734489802180677740711379304752567361725517707838600186191904339243144712275746516649762441493485773514183438186034807989648254866901505497156370117200120038050835135050061166149192232401197080536083917535688426199978565201308870579931007208426616486502114022762606750788496750442713997030159524355895910670663448538991507425854850981453265627778034929086809506625069186979485076924648585293835377702929585584843928599338912347006177177199861442693457670665909217371497999575998777807802320077556258732755888547007125291120133846067457573000064941999879795801517424791176048041786220183472957473796404049230792454230189012981023601502897774228224560817452517666636049921868477171329241814358811601546264530014927944210146095507940253248394501722558463113551511793601701174237881976113629105890184722277910465233923870213184986254084081931239435415950763456193631646920920519411195929262487549223585490825744470008233759148119077363923271143964313352226655980792012184153521314678368090127503554511897055960622717876393098520186603341347634458065096212554352413497904637350164074523937841911767105041936277699797602556800019711475575166166725747306144748347609798525656598820091529148260584816454046587765691089450956760697467622128424507493502805215905457364118416043961699488464494066649603923290798560942502066084009795285289153345234791061619950049206564692905370661983199476355750113180567326655573927926036343600598551198569380433525751736656137075034553439846923268365390042419918160257550401803751627646532781671518926173804730402040530279912817287369213526190112684024188136075325830874356053462825107040426240044665225135729282219112699235110650230237661329805462105114240283535069134683591357211832500282471140407296224087489490097621230043216175131178351501846652259881686364910589207407487654290968576913372780452758327497617993281336560626663828223974864935438041969877345352796788260143069019152091034282113415560467378044850894281930939985933157171688225932807499328681375693725889854313142325472519518659562800257819955027589868062353712701496097284617013770294072797369184846195928227458884912773461018322525120209785768853050897130276609032235981693117478674622898466226201665229718332508115951436176589393473769058385421657517336113026147357708457732187541444222258299683984572863897053343329660306530280654263707488801766524753689887579861140976545712843729114019952615505200805750345021284127480428585715644554453586983377543366090433800330423451716950864449204198075486079781238089486489213185430380817104506954026370699455882658540614041994125867912421538593254211409345457385067962894750022279343974028041842561553980076395740383821357703405831039670006966892754123607373606050638286560672783345491755004509805936369484947959898791546364175740243504709343362655122908960923957672017381818845852864234520163326154025290676074070815137736165249752130052725090234897898788228427558723568851963451100326974868537937882533351411975355428126416491289855730737108237562010002159365683548322138368668429105419835358591863294794045183067409786586063136634164335948407511048285790423597636029486349395663015139428314413456081306530221488469064974935445162400061289167045775711472919685566486413276694518482379165660595803952198569958955495771704667464668358370712611783324456898796030159321154837951190381119873596745477042056391945457981270799292333709629802401358396201849051808831421131682628956441685356589262800876968574707020297030557004837730396816262659639934390630852604827517725851853541041973789307591394292411253319972430139270586431569430640224230485100194161231793667673818496996143621717776790262725853329554230489118219421411685722079896958763953567541353048670637419261259276973866254235628277442426960518583618775959059182730983297524510568313853680628387788777783609000063125721581655273347098846043934828715969554609485694575421964258228496217111688587310420226166755702548352970963127939707863729293446556769844082024904379020869702363056429272789928676069428629173875212686704737366427954756543494016106823206825386682347166630315996128906188817392868304498539902633834008340230127566331439662556045490850627984718522701541666361858537798628781321591439242749917689082071186339790361989063939251648247993335418663391369183572183155391143554443466090593566606997472600416740333763560556387535518096953535781038220216172034909772131872727376145068589165599124534424094875553077447619400364440937375990486577675976382478938550954721713989256274058114842564934814442255027687322199439768886681333078631774923045363805736146952954256520106119851399500398355321560470784116756195162695777946612719127129516732505135220122604512466662858508767449175103860659180767075899579917082236038224521894502482429763547772840468249706131701793033242661975708368939014666009302238628382673291478895482036414758627401588326763049873444560756363155205279233510074728338637179427879862155662398582177871010222031963506270002298122839188465009541926177130097389288423250066705946737572713757319632048995449355574421444539565826884631905948826067417503857592053352964878271434243503102227623801996973214977394642829404572390790737583269678071357155946217105875091828162831261170929836620248223163582093622936205760095726302513560878397910309697480499526260458960514273908076802672023654550510378665309729588944253377457487652189436294873175096328323031635172921515748069635476673489879682571507389413157172467033273731745102288095532113735239822436750294107799231433905248518459302997925778732031193643479014237830844555872158331721437046375211998824317024784890435958221601860516633134526346589946335728935287844248586142796742685450818857551438693109022623548685076409992144965447011630198252478898861007661813770821089202068903127942091375702706747932739414623480952872017733188350518061819888050161947196559676380616462848702087763263788806331057711562871968676208306540915780522581728101733737650255763131928358849821989286603080607069613115482904409003044781784625686353599312748282254408698136601898290559506166084723957954554299225010035676610934186830660944110073805410325895879438064256338292123711840110265241620078339531604904334259372934830389287623225627967977434827142007199472104394533557254925618728153309067179400479659690886696623505132597207684838970352387277025954355901406811416590302871027074851798734391987607190677335881292298931853411637237705399530869379890392838822310142588789347233910348837824099505823149207988669559192343387220115737156464246418132765519784595893740633101870261806038660662255888014344940411862712853656654358286809051035001028946578587848369604416197850104569113491963719958576904315341036459201082222070090182181695904245930423166405955940884035383830993812698762498503410822685282241105667678723402677020121138224140257908353321320050194975601582236622596544353288232820202372847307811597485320984627314808271642126522733916202756877381476695066626397111096348850320642178606532304877083336281409849441272376291295377220507068858866120475369704968334432257158213997161331378632451197563835495618670743795335247477346117760893508220958683176136254901213188962214118607938507828219225007141676360779799739939265291505564180552800975597950839909129361754709268436036145393810669009677406941150385496406303266890290473313619503788075335173968233608243083465543183338385307928632451887755836251235634281717387557739975596603023985112518230250295246063257202001238430375949190285827706439571247934716986018281553304847723904352712879518630979074787184536673082870850922245083285140474132682531370836488716002615968777110229036697724424387240197121402170624673232256036137140168491534143473208994729742215244291948983302914349981179727782263192942396855098329649421512027816363319866013682500832689916092010589839127601133452866952012168203627600363509314620707856816878185067647386231204229533249206960433980259487737978111558871229656427127772072382389257123537752433521230064889664290783216084213289728801616439104726189535713061504165408288067333711817388908387008474263542320495664793860262923461717310393176403992825113180050268636120992966350136907521854511181706835401997092826747894704863961174314543731402513541603337846804374058812694145952629847289930157616555542663627440241627881300407351478161718330010763444592063712839325537464614687898260752523037725878655260274722999645300501959857258149134940964709418691970621976957710036365567638535456575260536313578467462898996836310721344015107324749900059373167450078259503720705791590309895311433126258894807384615982727815130196332227293817854466451359114738287196290376738079615500057571449978303017000140518814679865136675569247090509834681766394141762120362858123764670263453337493507897728545906708318810458495575795069355390920913486874945513330002518251388643102965980527970267214019387929014228497335441241508848704371031171908624022039329609132394605729619831491613683946615986540327191974287376592631529265389835342172415460117446977535911853488352051344880454380034090997107494099050187066182835613451971923019078378015062878473705661929012819522391540012271059034821820675231673049522196613664021526486623642983920568819702365016121497760762072237954051479909775749300096854093483565080967799326106129872153311927750811423632048113513642501758282652098432916591115785465738307545924390009649745687654223123187899402222522445195498316914915968137506399092146096319961050549256200116179412214661175001707194776440791197980572172101865857517879047122807925724492949289767483424849966926797231241119151042772900709156426878381577812742258896067665277109894248819520219983312081872031856400941924233360203293496095543605837598228550990831793195490032213698488068776170444860123620105623708912569976469789377904257678085190556316518677885253538747551452191911712342662861069355171720476681314419031016831099079031719197367265417122956112749251144961190279312373825664728201604035529001750920056720870038327274046298558237263942157153971608734389328483745896618932909651741942502734170569001792880464593746392180588332372959857648900599511555283736706212017555599779003384900841621330357170845459942002483194193548374592101102030526745659650688387336915465185441290614185657000226164693757247135478675646152563844406816019855705362145898988272085298328430938313958681388323339957082416706445951844282214364957424933664746701891079627615283887333859322456320486314844712808839552889390152880489830620696918944125379581744953325495305342953326138732002577947698451408021795861737180788183027374654306517328249631676307501666147533961768134643639988801306712190690932509242213188163495998777494073362715488008092998932896636185496596179234403508067660861522982859969300490037854708342719800337237294578260666108727452944358718871437299561834253215937398613339765928001242699418438764534929895935383949985539047168870643054634251285592895862246745505956512819832017811611194550535863103054130572818091027838786136140627053708971500344180808589066300478231316167623524089293694511295412785034561102761116152231338300188500415389147485742173628485665411896731458782394896679562228484759605981411260153271046441407091600891978878353996625948412206421394246014734558816405790320240980505870435104988084995925669129145909897148766550431505415587967708812615905964343610366403403711008730469411023468177714840584140217856434830117921238764091537975374361762456601636848682723709488819551751966280603341422514979311743288180594162992361085732399995802723932962772993777502046297932133462751856174783755314980696288483794536732128847551790272283569639742878436379649835548479159163624196090197756660172121330316212170790709924263130192752948894169135922868133498832242393725269576298991084447882606292295596102961062501135873802558728380756853568365493134504149928511467741615942043140391000424464366910898495494935105696570689082356073922810877904065190052672360825224303071599468540730578367768932836389393140420454781649207723675828682917874887419154826521782872027282564868838346246738683307245345493238973192749775227006691438678897626885354899609839888414153796696224450597507843300065870161171475469948334249207385222547903328044380378868136527516375941683434234775133433162491634822073795976653080473575482533660597564637257294565122691827555400960656932862981470377911467744622488062061578405335307674381615515141082026653984892560416288035081840694714280129820734606010691957189539126155717186142720352288980280121059105569597994130440439762691095550802910061705489081909242330299309650253272508021277153468485730944063898748342688358550749847407952902044922905284239911193948775811455328560178844347647402737934486544629174229409338603819140768495055573637538273755995069052301730695688477759219242059514141322348831070310738042594978039210211595993231120476590512333287467859918175250147053983241485468368187203657372213372301430993150454760533502918922151668670158672402512740034837503298263147795949731419376757083238262661292893776225386101998296189914562886768717868971092983713496576815918744231207222451726470870401885212686224885836751710459131197753487056141401569733949946785430626553535651714738635370285583191895390136034901623939155198254187218797503076080681747858000648781218175336580426552264624902111703853670440473818327933491230590492893842862740575452810805958595263457782421098741567365045542929844768472572648935904767335433847125496080456300234551724511580842328085966018992291880133652117896878626712368099384903710996628485413415670549623875750231422570516876598260191080028077400746525612795532344249327990080708003760386383866248781135408217560093476659461154150931990108591585356992314918314882346980742825212562477454095548267763720331153840383655822785135937889130168731226295515814495496691112769027585172458442823171020622493808459324600440729628785760606684097810028929876456481706491343168028390658431070442822896561725461347897121835331841622897625192736462744466361786315270444485362445081339746849345012106080248898179779227354369153207406743986320457106000955001322012393136194141443326267018800075672262080408507461735384762689539003750071062858086236181397812239693694197225920951716190666201470183496580292053649809615058920948335213949494000332807575914354486164504566899101692714522680750438474551747224934652395946082370716253452824458580056316492168436545704485248571794249018047196455694375985079862484127091990251607464178516196738584892299410066401255643596506572359359598488769546137095728764353131909090899695522949091149096086144613249037019815268450324964320356513552282942146940586378317673652603342720776164976488729663642455139410593298671630050109359045004372074311246709838743536870414043189687274894277926352886584716976622009698483257635846126701571962869906607572787544412271989712504878221965591024124020642490447951705094674336176576410630524067881020578882981155108267868382233783584298196685492287380682244282426045978985449388972638149559552268274480523437338993404435305093492465627677190511431134637819714914744827344305966503058212634110826863856312011488820565347792484571923631687360309407599558213822932696914877965289204172724804263632607963210352727341352010609086100467915281591938978351933411320025658124138563189185725134306076888342364500050144267542728348072427880213600656089671376412404640870668156092227224116148494785758260753561622278694719699645601872828799583943519864905676039123815882337644949388326776422683760695437578985405449881419554600289408833662421398652330736560366183286856551977949336011751100665131740304098654189420989361172574706772351078649735240917089005362010941805869048252867428658608851063042927798104568513438166045413963160715744557720256001167337424732116846760122214815478861047622590071714500167506324391989861387379344688558261752550886562341773851545917119501024587253461559984791278234855493566991908028250339719688434554148335228896670292115089423382077867497664945733389178389572655761318583482274521370914289795972709436064739873922107408402238386401071829068204013471840534558352848138947632166790423797695957099824483804537161587920200126522973954329926449165304844488483019020035090028528058039305862682270079608934155134188268978723170646882196082963549447275219513564581429216895682955614381408879785204248991396174024535196014814150539452436455578262234198508443466111301720209421426700188171075020830624422175801196903174021550878486003676680930806120788411301138484539426941193852133661463059300865473662015955707976047492136870689435638475794044947244882244608992374664136039805732428094025564867702393866027378391600664712593462451227009142603341393731655674878530616009567436106690760077376276325902819320588379541691752458302198172751047667082128120644908845790651800277663442246710293390175584318869048983020735979631309081245524110505789198890770062652646991759125501417490939205585843081039890137931061072106550602335981199573803738903225087288435187050430987735517550907301053898295411225351814146447931971517779932102445990603674410878723513687058871845527896261934449297042680706701300647083111318751156845388582910968883563915639727044377798721685520635639544584097352468313082293468868068390133697267717849394899821363202582753401427840948362206706332147714984956147155614453272664125351820456148587426309132426708708104239793594391696613077266033584674061859905409614966970078438249883769364158651014411961580425720665457804136195100124793854879981060259275911852523072837045237432483857916451121564219855122128098574363948113053561292029153311879285697928701955594998638881240916035618986659473767674417261283385005955717715698313527098037279447935681447737145804773954153198487586387522222222838798381688461621464284671388771231895624615878357022579664620850807665309273673574915971305920162413561284000081033729646083743082214561587707914670568948639070186800350552479002068161274988946648133561107798144932933055353617686465460866150789286009980304840799028878467700415944012318971700873492621342822082191091403654347140755724658439551848886229703312217415497047100847819618218938035031512065576548276110594881804644195799547811423233362959097151920335331374563779138918724841327060140406251240701463436471694003151057927981172423497621891883832813079512818647154580609304652029309386788769913990405125794158858570369655271386728270853856116958779402511559013623742421591284610814648026645450242098368452219591681215543302837143073628712807312408530716056441795326258996681123714182581518203147582639308846116940920008551848290793141365305713861540407078429218354324253407456273074504138320770303539069905658360073602169042296385681944924664701398205555202908940373519254353008877572176992176823909458149777911425111378894705501102476832103982386702275579718357643511553978390306801081259617256524678648681223124406735964325473193476559793383522361079398195082586044197188659193809815478167479865403533149176558347726017220953079749945741706849856855764948600553734740864619689873965361795155219571327927676066781994754120331263291831496085699813600196832201442786523987918878664800472213344563632903571662801431041278450285381490234922761147094531570263366211635398131001178121284017239594059860348480889802358823305003335652946137262496261059287841792393016040312099684351296564878025678008047303895215886649698944277566087311963235085740947960773629072498412120134091543926197472767618770732171335735150453511233182646326298186498087199439904973887862143966407433409038344051421309925499381058522874476150868785816132413320122147340676454966787555256714077633398394574543495747828817294353452670155948585532849504443368956448432439737831510682054998141253079401794446436057989932115677717317869257913399111997173718405496462326967930106074238678961731017728412091463283697260360803261755938662345276314938636131183974922915962325582694644248226597640057561704859943371953983886377680778449467814379657644727287953169357668964511597270232310918312672100424986240845869815730135611415959339795188491590556074713489140169973514230210609607296594622952822639591477671522408435184240268975634422862404241368529028424428328885247032215248954994255364534475116559849861399921794430517671752891727699590913899734414386103002492164309059221721897782312952259557513226736687051217791266240194392523685076539821133885246919132666139165725060538104457593334457861310208237847197126284354404914317963130332508766092374747002383156198630765617904272701909226958486803847027602002684296129737023985339200200339601344456231653085727337169131353122845096266999937459189712838618004547790415610967800346336064604998276637602650996603078651507560592771125502818762618478149729637162257335677681651193649814943612381933481207830937480686159500204723117332777966956825886610181326775896458250069135916047322172619413636532141552579451550074744648855248181572021104964119843109577440086298222704505865620617807749359532554464921658549123687450384842865538975455254553716126768706938554340633407370246523852836885908399649355299082932515825383292605548693327072392320713463434436764640910374376580955728270735731067365306174248421061828962525298907070058202930643027293913043111569013912155432194869789858701160644339392790457591305240351248520549032921109240209478563642625669614079697838192375383788976978011370610551281136278072505840041196602664184387835448629799928767317967804543887774478148204151187437230483435431915075389633690082702008670797315950384312649064734000351758840819912458311004753914661468349274964562341097916003804746780579242913413344127357962975657970715186048188802845422815378016442972816188298841244263993265532550359699381447657848578635395658488364999951154330632296375977001790502120067425750636907572459624152167080256424097136351891755019127343518479019481455750678299191287224458784358682861717693385382750627204491820038054155310667501737362004866269110188757885980184261274925506130096948401707025852402578991686722675283317386558491011518575495913651142338272434592489692537572226404862220426732649347333813500347094601668837169091424316357194877596733309690350226939095986887111345242046242448822908774831404465997722598462357506035852345410618731460152351030098540186407052796114273738427611937078404180157091976883764017095183392206055641570269490080686239739063079814069151547442417230145313467949246624835420892360450978739207510992094156659566846928182658851365846738815952788323992239476060649203273734988881681985351547104696021088153734296781895994807262253361021985893111624530298540043478999448642746686178023744749382366423823619868627457008848422497716940032118515045243542023815065670874948175654544419356881351501012172107861432232505136481621174841343971303725057915244821886796199167437384423907345746410514053845708676648201713819337005556600638719138311321763256476598491948635370994657859967020895796360815856506556983074575875884682486252798423912960335118246720934715608011720167466421752353083678544781943578423002821393575210889992052596435378770511246563822219279659906998497963971994547484478756905399142012132903963606165510266878337874437723419296142278624180385135831821901974721505283430430386832971673219216425341359070148381067754617872002537886124175986196810437511142970962260122494880826518666380376674224793176826033186909620527440453745666073237886064360998885090278190446681618451313433225661492921603926612898402447759858681553235326030598623842321688219851192209960065865313676283114924299945429099532759361057534143583332017327505973808010066244946291777382109406298330304529492658992629244523180390753536265399187009979242015985714284900489512320210487799217983916678122378673344273531520102882040198273267613634879354800659937782266353394459955697099521343707741197897176261178009571483052808979896816310758076289869766744761283547388613317895994130437071337622292035375988962854880182760967612529277944081663468621753928195443155849976051774971888806863014777207393379714012187782993940667122111063973844341546355486903009757618897117522365184876373638283210031648002704601635430179727879505006771964493843413957374549217028796466239655444270151268826697787753900021416744819093841246790696861685516464253487414704680970134063381567329766610198186932806463229061132606459403722104017903268084089745682419252356705502702515603007278934290421350794188199923540785230934137389835293352477514121554084124250435936499581897891089803412804692716856275622807941901253464415847294112857949476694036338686153612850489866078004030266034600347123262712136067853939239158804145068575851032469454316587240433825143270874998831232942044383020565340258350877767820826255968875645014385561058722755616362127357640019462598186299725053759713365297382026390511200199107319447698773394598207193999475666717709044553026747620438733025856669277734779789108912647325221165687991909910530327522135295446938773679299061646672460935977000922684406622016470700594190954862025322570669344076960820899604141737151252688929861481257221442053384311626568687158435917554576569142543274571745197735288667006995809932059838194828091951415959122193729355114075083766721842273501284732541575113576763510101453773063443405163031391373185172654062699278625102968619948645493995665941800442101682323476799938837791747995900452580106427826804385902514883279068317566352312767600041934551399025762537857090986335282108852215873843075985672081298031542139088661716396990529821803541148236988522856915479029130523243638268383378476809077614293962107847684615448385837725379871652726232418589803069580443140882470705388863334110560646959957680563376523177248535277988560488347057795524627730557756616513861225862100582840787667552366486961035647037409248017367233394629189051807645445681241405861360250549705535888038104220247442723803570673554312459215456168690305431192143527300738438576867790405486125939131182238025578808112602389285086360029183862535252333711894827466431864397783859696025043362720908273051053429982371711041773035214466335265981481868947572921817036269296286588477022612563075423734106768391137393980636129494603375329631249778073116599151949006097907792048765924473617043669512764956389924034801741671224120244681954638485210900741560660067226965549779970832131807878798625793892841797971120170043083167577086335477526353781774983394974483710463199087149127045452190535493915645951884864108377407922320988305330322960024027978258639071770139721454952992666699523969432761857168199187433932465478546449080787840861059826626511039501068818323096296456797809275481585743140673329059052109389725704391912952531884217132019582504124314659201162644204837229290696650727672682222654383950082744738733340404435701246660252373534113788364745718295452870158953889627683629609764987439136098786657521355993096600232234094322442953468915080889620599166509084857708276426294383501321284323692338823516522519830493227932906412200078804312378856478177736502113641922571534526826886459401450153159591050198500490370951979737942104639361970838981808741145701235894045700946879587430298486907505924499858976902460737440685192131384411045946195981255385372732767175330455285993493218050797311308578984546658825972531064972481338729725433523999384912274095973147234613504892165873513712814354846322592455345336956163387417533143213518051896965725146959324498034052923586566547426503438122282083237942156783384183920137834002306969257900303704509747044100091546124251342489775881211735574448836441863182636285372417759821900115287986950619392954291372651225941084249623873870467608149980679091086899507498151307822356907806677817311564111858964862239577954543337963895472493222394031390547000134975750664519983328588961542445773464381254286153058444029855501048029459030414511769249958860727415919362451292673207589267405885545002356741610441526833006175625891768805655116258385670187038302585051867481810434778128198312537912961257921363658471851781540599490270019376850534718235925801352654269111542345712481751911495997202633889619813518698925439255004872460794982082641220954383011544021549182413221962940161679682124310264809491076474912925699350265103310722012676810169454107985470674422888102982730277951806763229348523342410881165183556587814165497106567406697089122296831838823162029638288486652427725926183385122001550080372052685196864801734975260471144256060606477600799027037011871372681531756552931687818285830938920649886853997379838068249931964113096533344535201046478950451247266817852948329115015395064807151423128055979719770594076665502765534196638542921591443088777609800841845538108110208724689860161800961637653107892738175822825840609574203537139255657286178448865422677527116602866146635111338733285750094299492700911784006276252989293671104453447219130245043924040532381721247877901119860440701494831054492269592148552916478052240771191144082032552164710825165065769295129337072830894145265116485141621526616852228119909420967176327002615788940668514949860772323940511537946165622058298579135793368163142991302234906581574370456821430614748762097581403775984183554647423783050713709605863417166461565842595684601743701844611485055741091249067218125038182378005822762959764480148093420086395348753161080847093406443156631757835237462431338885579241634955430193608546058088840818181648629462543717538243836195266365447777993005729966726553837731336938721318391618145810177328577920401851131690802557250702691193854295682450575820467848294848392706142521133284070094755128948482407715382777916237860289743429546004320770810632439723164594744935437720142987117939013853582349648838746319203663460501194675839363668121771856399961332115425435729410386162548365713505531475108315045626346872412037995623418655019066969373500778058964769782230293828058981583506205734710958379546704568149801093096822107535524254266230983405630424993233232166528271782732919818085495023059136530222007750841953559111389284470682353755452749988682887360220311219219959829846407860289041754633320394024343435239102159973159738244955654666294752011468196505592073120812421797762970644860501206101910944436160412217008613194856262833414865160278045112504153576693069058636098994673411117514884803838456728331206176225537770419823148979389811988707059991016904120117103991168293057628094589861100286871651047977103579109353358573760007331176120318555630141402269557648911252782328298216024645709491511440415522095338064390751649780163041967455774596153380582324393714336097903506846625726898659770027069040837610605910466828852885695703217937482805048340209124468295466437471968888612745219715047657067690623213701557882735928931311059675250802728530396020567397258729322306540857340253836537120041926628734053820236304246487306004713527385357246212275004803530402897372272579488139883983590710568911320835075347241907280021804150907718939291474117087347798197604837303178909599579571684939357921444365411418218213266100150687441799820721958328590522083534657856457267306954265270786204417573712387145223768665332026374419909608172174264914869055511452121880056788412056513224858515866622748507835062747197425379249911655783800807253174415469996798483059851692036075254773225295296596202081619272245722353861644166876887926285702228615184354307317021273146961007480037180491878154969779358945175259923562902941870006136793429648239923857908975398410713489670885394761970638451120598844824050410468516125517938206931173905931224975988961359829589160687442890950087293845231037222975285180416622353779274168726085275728884461946097911352348689200152053841877170729811667873508364979465754459674118919140532449161473923827907087445091990588090854036652692539801006447640380038217561663371511657590099160490022776314148702281188064164086927020703935892739181204279100375651596862360171116285052849725308640815566517648074836549018535128634531458713416278577089696646498931871873252416367494389618135760944038779583110745449256829261513576019486610806692874111713163754096863718120361857203787477123136372560522036659369512376310934878156359495795668111434988059621532953752653279224393045860733749828725751058422439100138162694047649914814478328693041272083155706425836044484087196304922139804801658099819496511337008471487232970050235866958050118149228869282616142203373240093098089661129174772723317639652747217931471728892043104513691449070297644941469438726498008645822022797833719895808265051991296947490045974406852380705964093218924640405822491042178701943468923753632550954206518641308017776303000395934145384731355297567727893902879098106045382084644532788626305493668498391110834072483913832594492099318974633745376892626312788315552360896039250599074967185604401865437721607386788366607690653521402486075269420117126156421732729624748181105253180875523861145385690129374596269152224853095688726527793657430728201255909299027817139324213381800314041530917499886630256088384380217859977748008728270219315462841951802202118614975080524671495550413349298383147317349852877470955747589466476584711985244384921255263347505133102023939249367574749801607378448589717208313433172214776009006990127092872936730236356009547173665057615926328921283223164855187074396247855031360621301706197085293625685276260460693907427148712695729535669649958535230815123696463767631743765337539253681387987759000137863666352742594841308270913768234111102152523400311897526384267756560193058540553038830659520189213467010089394192858660807617357391830784492784850983115349430653810380829716917789541508431508686715520920329881230958079340248966193001572528870563329459893998358983680647537849515206717980249695702533387162792424275999870547711520558794156215509691022648005786633536198535539352952356352998184802947114073252757935263046812651237223707191727866741969493422465505974269859238042098254375705283862593749806304330083978965535659112829424516984459284734294200707463830695757472031468188038146683038163513174525589009760864984111972678943444756771268847642440737417749589877788891611835833061547123620792167818304804346369954414139851161805634880296463736848642436869941688871407028001848600479978954140360437135990848227927513664596196915939208140279047536624756941619049887183912297504306707410381369731376292394720072071366783262921967755335062305919230782115766327508990561058353333431330318793794080323351077210339890965610434958070047079602684284272242496741328061116324775312325555345811390638020249602220157424944681664932447494913709510683847029862297074392816137038787257735614559091553893517636044580875130203057535372653772555450578527105634626456765233738631743353623078649603591077563899386888791924835400217582389165485030310169790015668135846151216260281882554579643213128576722356877688959147793778972417607458092627483673026392676137259710385735471535368151084806299047214962578051220811659801119401722746850396987954895682860248422780324250277621199440456659652114768842092570801127854157535608393126927961103397150399197203738922460515488126925196192327273336379175964705876836709507933398936720233764561830527216317424445448677752330341985320982136307934389502482855645947245523475803441037443967585020396658341868688187999414079836293161765452014108415070279044759684078858957951629018202154574645909355929191730668829928153494832152529985688484276465508576525835069108954936951854421742912346947847985544091408080171672429119113599353576458299742137031366244056055586086850610883686714936845755006055422323522348913152244353685606983383767907562796253142100796245415799054335349813754462398750751264029271593929769750147201240772760325903480788956694689585910718662810782678747870458414728615080412462164920849623751335868631490328747406790488747416924827487649390337521806903189233712059415556908302210015728480984390724015519214289570921587828740073501663064325824913024271581125520177223577662770186378700299828738628047809558129770898134213651729526894943618297471645246760412530335360203113261922838385164938256554933880258302568513990269889727866038036461224988433837734331150006146511949399619604401680538146481684852643594465257344504559499190886302494330558409820125559723704641580359125818211956132667811815899561444542006469993714462228616446943264522295043104818289380212927469025976036629015770717369759376475702662470675914876335683524924838305338868758384033232836969191245901356431480149345148726997170958527246839410919594325264287390509527652235606530198220830924246502487343864383234650891361999482574063208474975995274387036482227203121901266038721981513933560088368010999448082801531381230384811155963190799303053948629180785854072072212997770210937915251522297735707465419649453588568093860738339787937486898983981900736510560962798722685734592514987650559478436457559253694040415243712966117644473954081642276365511762704650053623852156659437801179612140861410410720196892193860106298414550318092932054204083917197612392458133894676847148648430763457786071490492738658215968016327667248788741023370209182126007291535407797367452726154252979339394480732019099010366862970118391767519937175312786136714186527970757331160672399998859672022412406635534763012871844005698666720648791791992569997109551343563838080875504367286551424440926542069258129746698389694429725192983903360940543310500849260119788367466609815868556804783861915047977252406420399751460414735723580432651747392908254361651144354748583125297507140111040321383269141259701022093636590697992620066721085332571410146765315108845957972180276310417394510381735895284241657314349165620557833169191050746241331736052321649322071675952384492914038902962323961680117187534129023899404050833672337079749358477411876813872710397145237503225470256809326692225799894547175956374848736628964325318329442993037993977588831878413811761889339210414387329697019288970955443906979920838956526182091023910590590405621038200189198606566740848947718765070292100355943595589044301031534037523286720592136365980016035676907274098505248287177791049884844529626702198015577082692569593807780073350698550837675962465845296130348046850052370327802197802741914694551191271316539118321455650970609799693356205914766712581684094802016009419184818901868337059751326993993530713436889727766418362104716822326600820644267026643905401057230084015039447295877876393179081394038662383513009073777831040620014138345414654195372611304215634204187721558658501868243940090522227316092740956956714760079265491969975307015230025880087840852083393019421716394752753246249869409035394604845219602217851266616306948148171625054558600231834014794785039683306592713835437755995598785045318995595708312993031909511652143268073891722298332404682939421643777307718627235167397255396947786345858462643977862480164465576024838202070552123119613328749733678004126582157051059244278327993933892193776955278376955762186468410807108022027815179914476400697278504119653198101290350488376202965117880482840464504360924134298501112454589584605706695452348478167386946496516521504730524411025757680434159001439433005887839411459227186569284201408767330651420007959374074971004254025357684702916136261057809958480279285541096835652768560818831701700930903624356809554248872133909294460614835637861561121971304917580494600308256004872636675547743150876402832488874635573708658056713322310107507649251372267802575236947807581455095787621471155550475175976972348100186354704148418294557406125018975977583994210789307358405252305058241141668632310551578223552837025799329008947348367423621517397794999920755114255288541028445141445033314380022997278079832739681258065733006387090770376050565466909739869973011288733269031550783910884162399690015562123884813793113621805016734375917419934273962280353271986067744800799103394588922319848249605234689871162543497581570991731590654233813617261760141364916239757560046451441563671057742647186195898749447574456773436312873806669249771055318811247235578277916416343535917095391023460374283338506341070068122147511829413787207019940579730102515574020804685310315785606173387663547331029223464751274823724546690492101174901432434856561825423324053406646123119121749832806156639639970139729627738256635688191025981633603856734117802534576267865852455796811452115715411721020657545015655378194469833946658917197523130861344176431812986368055385309865141923068327830760142721653736302597883551913074246655582478554498475526223580759441589179714494035373726347832830626707666140077232796361295471155468799939311531176159439131657423037729128120151655887031773786527371185440571760043677521704908703210033248237900200757489587518003700874960785801940859898876680458963505927392056737265540732246316439555446675081927325431030689269870543257719639661621669383093402487532094811851602875696031982313920454097999762257367159237459543602462941454481011513629250291037182953861241868824035188325155990665088563416648250936013901733966289567970250303311412738785182434921794583257878084131396580603139437756903961903969560931898486408630456478618963975802402517593042616268294158123931889831913017637588031325612542556546974772190074408375837868385963816113330710155755634275676299380795196168692474304004860826882287218457112917923747051074109669111167436846963929270292579623149994341395464070596045116412824057659569415103460822687779117853437668705870297614576900240598142687426586302672501577156551447113598860631532141831044882675904327363259216038656953725431324049039895681374447091883118573926374625727194094239961093266266283464408401717837269451382265814323683250579757086332219835464401800103982522250716578451693020054234480764737935164131581013644617194731599453067390064259201778985169118525688437530479272941830143335107955663653105251024927833446590351888688772970626156977546728718213727666799337900484412331823073945578159087678513410537834544533651002249794921064816143952488050706383717426457894536979340173581100579167112251083122163777566770859661057492243524195810857737724123213537886381190521242372912608100343676962841907090002037796377023813844284390640747531276867282233679440460960618539279232689370363196581498120986189898071097416760787471181663733560729442792309754739830272701206244940718776319708937634115386786183309958581086583901273386261978473375495728963283844961668059918691689648391810704284086146102243223115283395426477856613903330066525536739978324909440240996185201640384925704195860178962462895283837565373591857826631681625503675946601403775238799728785337996544024940975393505866894962645490866840814792787828619152889613672861147197430454135517456885293856853425996733275001335378128513087933030696667747890150409053827801628549579794980444642557544537322719052612952960232300922802243135647312081679225861739342987036307815316327400957306074065974792310987156754742432822344179915773810142744926671680491364338344363261916651173228542694051075696853344600850428521169019288010335122177548466542666637305321526220268534862938330470828415597784714269832594981229762009243149508641261236634416584287747451898089612279885570581176897449625075027873899868614307535318828072029271798407015003637653526298403295840528882056004817321465888860402497806785514955074355436558776150036873257828360872247002982523967149923127478759870984659140407655491131334345959554971298494560353544142286994015009607009811742478092203955860678766130044677824166387840304256168549110537106412732255937037076367135783407967523094847139234887885693363708762965164601416557041417198048803624964709850127745586105041677067477436592309854667486473276665131408342389623962642628806287497498679751504495602247035433934700710881817830578639985909849118596251924463752495883742821919065332285336833390015844697827168675412079605845681518712161242186747250468761469218719792256663858778730407916508470483740921618643207918384607793851659619972973004190322809636140395668828237484400882738552214971369002083784531121062563410007922615733182535290064980205922735356288445924222243301577375682334764423713880600770140677908362700301060445163482009772477695151819653214719072689976803325750552999167704636855081398403454707255503316750909034837134688466386468676695768125207490358142442254643145094541944156351539695092427955079244766988976712525646673384617551875129127893602911884917519726449881568110319167811363748958755484789438744515965186813929859596639231326016554090157242773709290827676784219411815347801184003913533456192174187392248187757682760096519922147427440748832712052531416128035409242269418520940460822072150696862886931896852177252996127614199035928562961894515152308980372578447432793913422794053181971810764831943282628150787820869806967460166421857373977996600346431075740228894180667287484155257368169851064923346647333690674504975908324014178339919473274588659520220983550183515937377373395232950755597854277360034140148476510937992667913273534337151956411422840204759622978348066803304049646946932627588878209681592179077599140679063732053818903700362370438405307024314294041395425996943656843282083491489183096743797913468773450211474329206834984626192238828367808378634515531979273842255333197615684211518858078214086800314362253229419559544995215773389738940178600554180998621019886623666224857773041543879513949083864855485729420164826095265894181430165334128834226121140869462897030837973366304222761918065264369734660592449806681551415663750436231901072777845428928677753611042433501570283073478139175095186839911936287356587101713842735605124331371039949808091186859926864723326150921570104947422803541470565046318343385990772585130302709959506847349901066228327268443514788638298377109145959994371198231354866483628564625614789590525553429518927439901711008959517321039656173626786754033273983449513024563427941129787530791156307606094613754413572450753420427691517969841667111386909776857762659205466991422867235522864230483522302123641835538855579963160570426468996532780352464906321206768676989867794184713373092141753313063865475971303310157339243786117831099779340742577936984891074713549925037626433523589879077473430784723409047154885379309794730495033538992815713565534109124761327305710885025192709849463102763054887816577702269564015335923420862364986504640926608617477502074867820821261609701823669888371681587981524397904475707519008786493892893115618688374496461359860012356742784255103750281816377098972416124266961838009974355914967510358825444439891208249622511389069051265815993890994408386782330812474771414634038528386504945059663486139964400219615153509136953259812892801658855743863155620263344847660140778799557888595264086325673645179283211106457444420026676724766976816994893925294771048750244077482331824323646139412290571747933916409156031698554294429427262372017129677764406303574452818656458906115861465936983348108895635486642013916930898803639345067874292604368230623960136095056362098773749565106744659447770761419457986880829711382355757453916095948261640384946246266286994611473392930898996620090725071107908778339718669612173636371209556920219298695212328256050893185096837241694850119876386148997614423361740125918784797508485756565350581590328022785094378041843731162779801807052926756225648484316919152760643512554273384295640041417543661379507731620878313869414488835118753405009930436658989243591798645283717139650239071120556479884628144322315882177050497178566605987195382885012890176886304458843689830118578321057580568033281449416013303804666962723581136569696044691591614942066755254141406584706181662199557035106628309202064450492982269937161108644409169883935096165858286578778349792791388224359313245985159923809498457612567749219942868406683027863296475880853566061724153945967580469936924509256479432092494877664750757466080866457524748060723693626243410816426096784572561288502069171977955941654728451297003496827873108171843625262934154400060601527045594298114412582428808960564969724104712010660945196760238443310993496887906209339514913640772016816351167892506032817907435677863652206504681139030397161145839028074331734451730295425676219640071922618356884917866841412155095509668441317594564713665345313595863922741707473228237129484176480522860332899729628384349600148813425304567633118308324525708758159353414839743495947311648236749892050034223885175722516270501925712957238621082509185371885529409847245885683080863137731957953365145577277657414033204121173206003515787472246405506412927582897338210370986745860718367545501442211043530671348568390065009359845104473963100506634869653205862089115452504186243371708627976498971215049739218424716987575718967585004218915938192753248982891140038079644210397517792383107406407762113254275077468244693141460787805339137004102742636343238049307514021506615773139742589102880603358521917086604424132272429060638397023918544196043123410975555284579843209819201099384763219537929635788176501444530210391950120270548800415061796688954315179149347545511768655258014372653529378761676925044084702106800303850573132502227309877708811490865548310158550466407951473640460014919780850353912822900953548058932307678187209845400345194614783987572340601747863380062997698564641936712413428198929681871965146377985431225243943041615021350510947081634792758174541761017835398949603362991572869868499518461818717700191865592480484308210232451064957473872460805367349430335289770153498352349047455990893273578720980780514798706751664212295824854565728688269591858054565638448256232996687280204423704351353153764696493686120039216514474045542951135382497937813125951675080626566620869897929422993789274102427325582441635080744676157444165935395082054548201779144639843360490885391222741354801807195807503962940975563729561135237017553986155030856873495542452686727675865040786542818139463081313744400082645803384531587380257775224296786998795788105178720209745109364865101878907557633634724420279242867777355486519570950653199114986000778083242167550955915127709711402977334869308446162386668411716322793013217236056739264992665699309076967605128255413955289231318519203891689366284630008490600453062117727335770680747797094600482273014098210866689418494645892961094928032020603245289477310332768968851269309053675815850146397855380477007756011937212569064905197196955506417624745628710145736947978147289431108082444874220734269623839584827157313355813844043332432046959661943811057942505540971666182871513831148849828213742614460653021956791991501452128606990217420102126420458545731333190953662248527321134046895924128161431940823167886169501197781260489117939045558230440049314805916782233954460201405669530606027486976243479414045860760268666912393481800868849888152889511475976018277819525815591055966755970318292031279315182801745681968707929669832221884806556906090297528229691142909098862913659719692850508802462457361399278665456114040620993451485230904885415365891364802523747175593494993933711442049672335279131542714120159093866207214141276402733927708719837020013926762493564694598166998938274727218465478317863241199874284911309938979308131889381984003978706165217377636287602703085503810183453357070544932777687059774257008119389029115641268506333353015259352711165388379368730510147105537198995153082497984798029596210510185392802209189025606835566757657982130254279328397044810521622702298467508718333247385024494363028037224796681520897649858328357026653935332031349405159467492684869129987935763263543706195714896049300374237391752637317647200790935736666385385691979554629655178201861966669566745071657163447550568382656001550734849855318168742621127831941798114612320444008677281863057793098585731953315799150156858975875718972391534254397484186015548122807505254661833470696454417972012213939651937513003694880537516913603485753431276860962044063995579306369171534980749976984033818503584527606608003710329260399587098256172311085853826282185893783669557258064265114852594547132476405574765765310964613802957932193430644484270593460276855429827995458944917329205690728849021510489804658542893502403388308906485598649849437841950442796448682222248876244721146277073764828578777480989820197366534704123279253078909432783697048009089921205156373078099262334577064656130500461240209181455534030577242359058040819013778059323200013131116142536577346142797435677550706686514281387597872023376893187077838350762826781233787883898666212301659068473383589147919554537592138332685542694708328501776082088272570057585516817159241204886509694090769780170133975520499157292794413737056841591372394785469423939847697820168142327469906334411108743268724691415090250693684214092066904683661153528855533213670616849882313683182302929822912209950730411691167385986948040963951141807494893178614038488126025285898097643318124200374986180177280967202555567263104993204157832615192044113733979207095969779846093328696603129121547145648463764665138842746654048459623960447132140863833315470008957186832647376267066957654342532463550872137365263175591659564662735326539390934603684398486274833477551912198073563507033463176649785458795816548280342032736673038518903354808175162544914745780979987582697825662837526262837114143192626050274837127114960854005887875880293658555257952795356082236432727159643338128639922004673247625436316807497667594849559140360088812105174604018770659022363123350506432036485313092026707980917773973899773781774941875563570099032151999480478880525163311181360603271928338479048108340299485013252735807291762358546360961545748768516748635309614092910795127396258457202535102536977892634146343876884678355488214918642971218031487367433523906467466459244976977114818783329888941003886527850081025086691539217010395106319751716802714226145438138278935842222525742232965873503768219530044769911901105789561984953025780649003135204957528007195114288559818833019583289150675216175363336981316155569218008075347689818382360485370560612832177089977444953450669487968288805772710959090073340415566221634850761428375443119540039747540990212289276517147740010421864953115504392761414396405639739556377240289360060305341856793355602639916364518304291129561659239248072708983090812036705864968284193626605407302082711988950146669877560991518284385538910395206925628224862265857885508911684060304770557495584052485157349894324734630111387858827810695723823045196882823632561527979448909114295697654042953338274836736625293963503713265462617861500335480131556313927563142293996442108328145030212186486886257402531271522654271367668061805748996267020077715032684849921839620321118935422661763843705513491784608011918695106292287940647080093139353273572499727983268671453800086525351157822168727615426450250936852603779484910938863741244998215031667504882461185660639383829642608276859378078081887598993152341549249226633631518163914717003421674611522791316883437130001306266067164768408495003355003781961081087416622147716442154642323782142481801124830478079273960201910016139841650550023582088130045216407098861368775624038628039095515064604092922159014545128589162257445611875724655980150311807743301399817574010723602821436364510711945789136223640028967177595721883486368079337486903277252747947422053554186176779381567570764637525400554182710991585644875797878419705339777159001808940905637220964648363075646400919856438431250108370422044175390455271454177834081571558236130114616854722950881017295730560322667851890524288770356465849509589467356327461894066689478080930772677069614505240776361409676063385857709566784541064668956985132061238365973258623886757011458778790878621363772782985669931058743933470197463168386906432713845630427272076780949324358046750008887198511243016080291454522591709394167807638258762006731155624906250583536488622931282663855211485382256326408981592807426278612942868794397474539141925923210803291546544452193407748307555346838814729440574416637198167848846837213286150978325384650565101500126512219148976767691988665640768683876088421526765500607800035701114188100704931254219606055484928393772197469710928910374280006606042288054922034595667808481244381453719850703704341188076284052112440228460897169400817661828333753894460506375639256179591778832616668081047530990443755921729463667297785965163126403877973732710170641727047178524515530539839458877446856736796285755113816100761351712605404638773386375271182165860184386573713648561122731042626325883269309446581516184950485857144263003209626829028125175242512282813334717246818922827155744945397875489517221295849533739491482137039592992222897807813091135381307158566809632401478148827712629885018140180873562137290598316427476290722513913654057917956778044353002297733216614973820319551455343565970546842821392395973850876111769745416883269432805983852334379155930066357512463794000026742604783861870594893518352490862461573084557480587619803478882280291733284486862284461016694563717208144902418964590169670164710658286925936049241636324029975427022076681507548192189567216965050145402039822504974731978550260300713080450141463766023354185857531929698460262178444572613650410245592105081114763211445635214924792035109767100456965242916143048847236266781425371759675001835276682260621723168071189819839265763673231067772858997484763278676932903716647902240849932884070504713369010897451604923283950838365722049709005376668972199819734542953283463933647944587475463029898790305088443811335098217842549397169301695091275844269292238265067793323500432261624742960294451707080989522328772156644950593219171321360242197961140905533818359676682968364701979405444476991456505002351267715284362093504236535845898318812577640879898705600066314104932262967872309106093319665462960299579157402723946669214041151540238905849607779261970402432468148241610807215848572398326322116324833246294169893229682700144688027551739906963152498645592889343352892765233554888181208606228833645245995240221285764377854639355278262619772670440490833637777828295102581208486941761306626108744189199833103663330639716793861105669358144878087120720468915980817653999677085674842866613122169705797439724424350396119210813633943263327367877192147027554947304558547278842471887946346583429755244998385680479552759400649717719795980330216254767838094521321951395103560880254297112867645507051971380704891005454904637944109589389938886173069758765368783634271650971290772987751287543447510490991057646032388717130158229462890258337070777329239741727432132924885180261352493071605280909902556224381604393502410028995612366618664461217621285269710181010030892535847930407724703127105058047299858148839399858406305616107997759765858484634927400448345532857873594998250793021831302534161918822704812821294485437922525904506590337698209572702408880548183309006023523423038880380620823779128127575625943364308185171526474850667661311125828588252059333218023491025330087359704169151994738649617951500569209361171245765750251625576047301008413476708441448844571318034846432930220891997037064874376667153541486936458032211868050566486766243340106090946292162031183452221897205967387654201725139693913330326386176705737482024704542979811880447545398701397438721410243344711306002856389220286354858246133705957763189866430818351767086576029839618828597787312100449084186983735056462905184081915990319271886869116198157391381659860969749108386084448719703914398618206495227132504757003883967307434163621355402698138113098857133272809399961098082718297510126268277335058265653143979075205159343517165757388401055347448303350664342254863272543838199121045770567948793188715534969252855321931011975434582997913246104335758549796602012646497589804037882482966745578843377870364499915172306254764809674516757960933981678227332284900995649138847726629383178661606657754793194740569001606692277810162004251988527930958302358922414455843722067436333159328184973661206171324542731674194504614303246020876157303711256322132017335710380748078132863065028386089767264078989425282143656578925128353643128369726640621007528515976281907690709430542856749651045588067573964597617802336675139293483958367379632429809456788028889695174511852897633312818549330940168638231108779826559262386492284768912497895651441715011526215704112559755344513956101924343563050703586508153081342142643271197191244049695103720108717157379665665903996411615248642817057773058549105439503526161123934308436397650462994934078093400532451034765130258257666467348357250576969829908568951276026029577176572287747614261866665147846421064921718054590314479724124720308618495648146770570467928592128717704893880602128134141438047308066512606814019852331498099790136926816209410815579226477305702095509958751786425923835364375937259880837634873621685399379044424957479688265078876606876868272688708077547972121881755987628909677916805572108283032479445749497246431208731132965074633009843096238852553018471841603008525902978274636176740545540863481906108039965713211979398404257887595679664630581312362075114518486252320758659316873993198099338943796200081081530226264224739986393031406109957798530716965298578991614828497088792562832760653838538841360495710725285634249297566565429965652709646156794977605760947759564895889033080240093172800173861097744681131039825107493320108246566525002848255937783465161873384592463039430088842591641773566465213748320931174902555993930904943388185045802424818054677645119908938010853447480145873757952819309133256795408385504048562240821523076070806338477936561343305071006335029989424262599804006467339077674786370776257490416778024187396208006232043204043176367443667614325258441731037605230570832035988697196007804300013362984727979572028918183777018464745091499116155169271158623934091217187556767687563045317069607738318582831557075372521801868175326016015206116852632958842445636224391139899352080053531406803479639752100315438958185936274555288448967218333614151315688521493590310282740073412101295036287327856559556675911532815183741182977576364818580768347546646255308619851328794670787147057608392613729461493094190327647475384401987278048881837784854415743995841617801637522535338967984149071613653498292941452603669235798658865748811685421579393411257260351329446042221745634958846882866363759580179424489175361642093005068066148028112068083066240188439489313202006425898218386733378940195659825284089836852555205735491645280688393547668440565662377263191752176686763101248909926441399138010293418256943746975159544988101120823966901434000298209924494971766942826903347156874971459009586763477361868962279759774386987847038595160821932816869880069597559414376418544914498874682522894569184896021904366448247579263343731109032213227573529576623916275978032447930424670953116400716540034143811105814908164280027778863786431355482270991261009857555348207710181490969951737708193229731627620578371301967390404792938636629258442222167488479646063070586292934349133872240977445847255833991807720072821098280075942622860181975287229529438514803390799966639335797875663937181089720269555949409298962019766196451921589859298573740602075911744407523155073559658262021455186853570060285491673982044881416843686620522497958197353590026660313899112167418219992949764797993637439485158725237961968772514094334037904771447730810922020898413327851895862439388711818273529248527261955840537645604326349932236955291812114266725358101050587404734739199929582521254773899017132475550076606039169372396324130424539093963711391021400821742321725821821430864294445370306907385525703511085255815738927056203661240258022857076912383103779277416824307528283271227483334750994281673651505809095061436123821862035196972017182843869619468953371057786607023229497771550947805362888346396076001740167460022316980547750878590106152656843568174303605613042806255742093810342222725163752990099894455460633536649856003066115741237936295695304824698122956377986792161688637452429947924287530396712905097176192398941696809185185367729879322898805285280609616475853202505188850049677591330973925951301903246305662370326336719131617434380974647422428105714961000379329912608402058649270868537953585437275170800174615535416823013481087066527443360224935537466668284530305749372365878323434348308731707301812824906487372815750621076136496426059772260924847599030499417854989588421783430032425707657373606305595433470780438958526813333383000325344969892741415236700151313307917825414965802020901787877964489157546089156423358512372136129219805617596711727988161331182301939178845467173819202583978467936769013664635646250772175428284461851342311832095683829326549186919477597428409438302336748081116953060665824013406802923603129413825923711044438340811165302895291219558537563591333628843209147648045535263546071799235386146891514964094412014963436600487434952206023897738091808704287991697726678899235594817476418177035856101709323210275232246560601188473632471940046521022650826483710391875128094341129506158973511046214101122670809851584872725766657041251207467171206398167800950322971498526630762391351983196298379001358182009006171853628385225919302364575829173251705782718529773125092271672470978092036480388833189853224623648740340031332470148215434608683417163219847561600141532846783104922357253080116939841610003821837721581347654907615650068795417264656710990360956502456008780981559781541748007219106684466197195355298428545746116436734298559405893769194245118005708713245400212114493915904620516578812308391683960123376224201177232788601245663424056679553027806059760761901005477392314703940256569822840882658821454523851446617910436647755167970462300417729326785774944106117245667787413150285141570769187101602979037646257656826341460117159235138517786199000698292620554128577893723032545668187301476655668565083008459460904684502975109693937799324315163679194423909608912635206620490683890472508808348273300893698051523453734318030662179660733480060174111301352585952639092536745840160865222606711692958772698527577146022105714159974527678313940570589199953302436882520269923517587429650932642748762918148596002888304939031130123891520926774289108601701604249124645756532005318857825884619389819815762862791502543796982126346954983482644059142593112858475468136711501424796718736464811861626656498942187516085831897129304536197648876696282175145324331490085420864123322747055114408633244668115442327893566996554681538356175510731599120475637837511600563095492309121621060460637417777006824826034657656466572873776763506052750526507631686301640173720075727525098324637286419025521395708919120941023338492638573320825522692396296208949216919840370316662373649450528471893630946467109604701303215639998408122652839805603236131900782883934884341296764317541399707137315237281265176922859318029619633089451161624545485918737873100452835520718098655696965760038267162869895198420666471063788630543524361913003260967271345952573169543060153322726600035587844695912939305283719639750087439093145762235182133760420672178707224004409076361694967607629373275698864987127327065023075159927287936415336151130825538175623714979669679597871072556453112398129754627407796041184597475498448190377673111835378807867540896772280948804195615918311949862591394070423062113061342996820627907264885241161144244123342996440833507129272696260667975587082019948138534746979596382617160360097895573363641425062185278640785015163724631747349160819191860855472816715797902420900778830134486045284461994207408169766567845375165576269690905189851939993028033301308696544632914121661528508539865807548583216682071781078704314080742076967434070708182614755346081273670948271976307179363314214525098965543081632403900235204543462711740970355444925689744425096921503900823149529400495870402038581020696958735611318531384224323681169964110001919713766011642171103813326065557923035851218385488246827887769562473397576151746119464732255995144130512857600239763363780132304408511006966760996315370582761988481707650267714661950691699520327556343656209946637235297107528822449727983263474051806271938892900859178666344254965209228040906901048650064423433945971900637071117921148352370327994939826071026792733651089707846258356303841302682768104074072563388336180682867709411615672513509565570458542647208737769267699458792183765198583827022251105804780643560334831898668833099318252565623635519594987744394085556718393234366051888645638772680213595276412755210843659220406575867777069007784783557267618920445261398482695091153729299996732985565515942950798211230289443337443963110070369513968817353980532857296768265450371725525757612439384756191088153173663708066280075666657441574799621590975974701189331287000145340094271072328378095304901740850401886534944494767037623800480876334237144979772238589206101244103114981832517727415019599447714743267048843688045627293272233094003576874163418219883069369529071306086132507742689144513894171142199665732449366222210343368963522530171635965145442384882934506235630441046442114374383947174142337773623820031644996691081203206981375461009157514400634118738874576825143525681524412369156629520385512612268714869074711287834457083442197054611996335795320791174381276083137838876316491649242537163371070628377143401252607166936183631366864473355038409326019251853796615523838697507950987927734360739593288777666840388515406557460592674387924890679120047278522180343238390209071030740286255327695531806424796309859118955116487158435990720868713459731640945124127432071162109477708288682447938729544037819693040455862792116748370497753362185676087220103580727931123674058380678929867703704542393352671111482288612389119058168173573036213135450177216409214035069912556121108866626424241337270942915177836538734854656199335772724517842083012814865964317914964455348146856302692233173077426988013016136130877826400750098246729320172037014369204771180166646020147984814589420846951383584678828059255268567499683797689970333103251749532723992321015624738201633847769447237176979172546861708716514765016032611092380099110115661686132850885434247578115655609420433840000079047235169687576826037024515407465901440734712930476797672087140622922727747791789583587249143856237956061702978355335434357115956223851576676533634760935761577960721166580167195611225081831448163032687418607559297198039402872614128034287889553386279941505535901492732955605639569304494078460971990895373016003535235518388172002486521709832375624115111305487058144452590191434775123749272152041675916196082279712595950656537891394137470729154325117484550108350827578426821037684641621385273606439552286835092037422915342851822325384558024037763050489283363907355759360022241343583542429721822924193228086955406791200262073313195301326856597622469107175609334360994243632529915940991746630816931619295777842403997462878040988194489446958548375323415091907824792097757586745236624400036155754038930617864943556613398148482336826464474792001555321709707624906067644453670686546621871865741062805606576894163123345027778434487524292691102173361891522906135889431128101360533576442014232530431037055943230974573080132337791392724029995729941306470405205499135854712370147412615962574060674948417671361121071096880296222474609908404430351861049641550046180163126190658326332306796969837177474279680520671456847285548962047739908687059176056621262116301270318153571266808272485902850027768387436065487191186748175898812860411850544551384276459951708333733443281598521927229402925529112180230217410849650986298472790074740819856726991024916215712923045147977960722178108310795522951481615268859790400483148703710165504329802267265612246443756733365037022148366916583692921684584001864305810301234310501185607216290191571082363398164863106949270386374592507149917087782054769692225192082655748720384752359834490500799081187106863652470467471003716396712694045907760634468408634725568120852961034197692729587596972555872818788042559996025563813610653626336128040663909947939355581338532352842904071669552613389868904767973039222484641353203975544503201493187904154840876351402689531925356493764819711698600191621001862433971995546468841944672649415843406987128782112913570151298501595887522654417584575974957899379708997528145063892526357733467912034748949345247244359071215742395207581815940386853458785948808714194317750380039056833823152191728025104697796825947159301771647711122409151952261344567849756345417505691838226950843345499370797852251950752460500629270023426619168159478095458484969245437097744575511931676161273276241514348908896450300223564453104661625852339996672379363847182117203054158302834254375664424630508860305462422327707497837452959609763676440590122972018660807403148457208578150239024233773880382378474740651106298459160354160668478004470021080057572512930269354510423714095568266302973792151296006986695125052989838141409452561725664696312600664418876733774281024515123047370187401138683853038871021260060654983850699442806589328174617184149227041959990733782900591695379167179377089342362776733319759402451882815999670813305324036220091340697241802545277702391611278910866137456454063626156585202920249987919527401339102124415130579111012414680232110848498705596242882880652097351283372256133130808377133588257069427180024185398801966490405424423981947374446875078363100009226788849684313036625943445139530033007844192291067172828515876284348767530575056359055650465937973711968348449117051025953724722225101923621884161266558070973663963418964094586295524532071882102951059194579984157902151210873826579177079324486190455352049496351711110636262167723532410893802633440980100458050453884934419534522729767056618337638047249353015584823376972334618362209143038054065482517939669228378617260492216870383730485995739771930874350055997730575649255071179430792630997419836266437977291751749508828644896210138712698729582307072444069125606531487062827963517216833005070289703937950180370112136575915092175780385749028252266919934957744017321834764628351117697086096379233887453573275854735419225886304220000343848511396099558404193356132552341824121631442491536728616444220629532048914676271674950358878347659396078594505679452689449020051988390066044492203978502119340584715340986919154001015033009205875525720275073324273509034675470496909279789282216657084207435318689232422090343413329428044054271215176690290544392893238133219535053941327512468057638741585592717860775567350890573573601310076545953336282372614096544570886575526248119081709924989812865997558624360099316600249642483977856670532843394056670800897481615239928704974816281256080003935966762511306874391227375702764549892589177029944931620792771002272479930910829862939017729195180596865535226511927291907188817987952906395162612553786113384705744749714096093924803143057229601368802748672682735748687161705638389023944297099199668216875463079658773828541312135289175411790653382295386041318040140678991650968497072729229600750305301850240829112943379112283505133713647211477765726839712682126313877015675650438450995798063589830749549679347728754523973330181180163880137935815498385959840172461525595470375767288127518739709332228814584678876879443533874352317859127645226286971109274806558790092394723763216812617799873763079896812391925751197495958036260966277397378588518167504385351325728200462872068840967141681963203174503750263556957155007826159057448899632614143011183375764705759650066381020016792879846025229795582621298898763347166005491558470769362239325859058921969517131177440222818451461882405635839483893313817370339576853515032675477267489546284827791439858282367404111767479503511539359491659140139614738675483827632835121619623551867197973567278849023513491204698750493004002154329448694824300350449173340152012326318104221888185735409296062819463899666844213813566104868428153040437028190277203381670946162264545531290682760014804423846589542768854942468763257877015778254788938587063621300482179360413669601302567274863289691539196609274045282381980229255225444115351476376189678264337504423096165741771162309973694406081013604954483977336743869560319598333911442206037149753981069128029097239807638439343481465048858594887254907523361722916503616789091166028611914952521136910424556206927336057815474552704453013559313902577014365044688610974043036907942387264685005646278113008246898116226478537987225259487797255730108812576196649867010180339264432193216342364302139680171840039658433690258785902375714254968725544674281642842994696804434276299916098231929497754199357629815469748632306584527488844221435495241477338180324229195099707507269973464184807577694275617165662639477589615394042584999406498882127902966440666503793718396911320481600908726630749168067346550905085301389840665876853524132999807661946978099979105938524639720153757568196879415175213376535339006332911822176109069356978607964322312958957047447261867508836286551432273583406369872051441684918348287512007758607378513207337908105692616065338915645973838313088476821186963276205428564663520146984868446654263439749187329130114697026291452072763848127771705790764197444368783561478248494459519029662237630931559733645893243304007664434880923895458061878779429344132566371774001915009844601298470076033285679583145295419318056642444048370753259907774461616543744420661972524845885183288454643838085077020332113879494560729307915152660494785157798736808422253798796382419986158191310217586715020541682590515798663087025284047610514841242190069223049356835952490955893019037546767746798376857334362446551663177967664073460849156241945746661385852315532077044392440772078343856841725895519926188723917431545937262863625829948312289659650572010753428311390603842396697887265331114921366605103544328436886908561691299661179181631632839290076767801140956872571752009384872889576483461594320868899766443874455234238527632718993208984207551909185024978918366710517802723290220669672536515206169506712253185107320855573750808128127649764552570978404830299774690577055696048648625446733146770683191042705922473030110171729361167464290558424976323588703853692384240890983660853163714895852393062918979403581579236516569882978645884562870945025474880202895941496220831324812098024057972169353263001586963953646094142531339809018364844462659851486059197292698007297128342666254994544292881358094709595632312366852162081176227847540515794210599707058977471739709858986824911221938755448514253338536542882379082851061332990956268786505371243427405836191264033117122700624331351011708453704641579941485663029540435176049218284713589811649052367680800708487351006430113332730085837955250542383118719898660945296581512768307198070563446412813830809307581385467879268400048446631959385700522477256882857661154471380588772975752034032582655969048518334432309614000795059470531939076487172938838645555124911313351517420368241410791218314720289442704587024899648329874075616277309635580987733569806037863826664205125576075233424982557108535125270208995890528250467462173222177741822859350814419481941917127726266716197946554596574261258366790105329467611769390820360460205899911708654800018206488599265167132365650886674317849234203456919282605445931044372483825162258484335069700409715100396808814204890036702878880111215671454155036782620881856817901270924239212176054628758805251415731417690496261867292489185307675823738660657762300816047457691773141544907793319471675292058907102352492042673916210708509598112863510769789389933194552154179393600265183749329545579123091473572054836056133499393496381167133539129434778220721150821315029532902607219943853879723089812339941084958930783125767646053659381744567804105026064375407836765607972945537380974877400370147385505563047828570714176236436016515720436335250969677504349107009665916353618861876700976603316419364815307438266955522340809490760419180170519580428220480667964024954757069189684600702022561904691197205982029027365173313893982389397599817171028875416801655952811483325616366129227848244170362970575284217780467320443303220842564148951138903097335947644832433884180798112349814867930893496222643859294742126852839881413146302418080509025595175919091438200233283949171473576791469487699165008051630243547542871643872152778638538435419313215079672972481680030002391926552236026180511374645475419874282259522824030696216908555369179585916916660438663473571377109636978455942334796717423863007078379816542527343828070241475270227264597791261416567885921309479221848046455773042828298256563488921815481059810786887774843591722904802445603395830677174525385297869461957014898498894136704229165185711443690960425788638691197900963954591129303717464415406067693888507249978158895586546260490555256020461515006934392390042768366148743945174462879573523520597960889907696175045901080721821573751017738972684925531292937074017259376567969802599989209767530907462082965462039169391248210674108664495146397447180376491259485464340243045054043588138833497591162144177650702109256900707639397904629574520860244850940267381164912850891580660381067300537411563073018088604596719334074546999068319245670358267855402733520818783779070813105097247834967060645325034112740781552033420219327468690038829063262489419376033020923245961767807611161855244729694208710916580142068597576909721793683053484431451672523528719736801845869947566061028174797264904556969356153754239841844398523071513148379083669625432276100655093705288369242329937071097845373143817702516332297187958966632640841192873323859886774916751826899911306065035890691233320910650609431249509627263412752118943005115641290800942336162237099848793122201456098615095482729909188023073854778081777907414380216803796658238357523047522423724011386277377976310014301786236488898622569405557211752915323089695068605214809995544379092009232207996399957137116531840871124985257846977441906734524083032830248104664473617381035798022662384555748405342899675489655371831713758014436469136533720200297416904875539937504052181769762153435626243837177907143325685083636097665493622116667333489018945933988166367428646886789336838256321322718326896786973334007883643262087060836184007166231833862768104549056913625970821024985832640503303823921785390748829528570164576172120792456490310923786712261407546758880553815850318921007800980700558994610173921092732716955935001212753623434002742057134865607009429683939743750748440143958501982562711451468328356634311742000701275448222702106000101624194935514555047918576475192378457008646412324866794223503343882539689153803444248413797800314093599859475008787213307004898492699223113639100593147695430402768442199676526492980615326391349922587249247657748143535458585658523874382221475276500460571584623000958929630141741781707363702806853135874857048137025222880939140200721690505262956598452468133059407142059391912904647584694166081457143011573622347707638420863009437429499863382355358405208771661869621323279149174846213271218017988854683991594470094376191352752936484305447870765117475218738583705424920160395064301655143761413853656169187371537714793752863504118885248525151601097183905312352940585876485923506416239781062107100080737379865114819050980312287346675996215607464793360514189819625361912616522040564693501737239097381468517633736123325328874546494070894592413399313459442459992753117037876041614956762646492623373042960761082276848426953274900650403132633587533401008312016272178267971345677478294217398224078913573380448104833628626854766977949425565140753841944383050205858190349940030809101248675161032978174055448970952799211950419905200047052624632953782039039948204261504122480696991876232331858623658302775677151974867213964368245317899559083816065210169922016748875888322457630882761887411943688261877463983049516133402277735178044229809295507633407979522920111092132055692722820149200327396770996261284609739861827742870549407397019300752286107582910771254830170206613675145321207880773783836554509953862264819248321242034904737245628554291908633090423952129052231063414495544106628536454482945421304670762961572948138495699596621671016775602474444504534125277015327066112428507719857286210113395173962678402488865796434202452685981957570685325265868978600878847907960237296178478671105470226171764463183816719031469133160175018414187622591255081716187258583367259200075817637954575966086057510134266362664490642593764136573964567308885456788782708312541489545273834660413945379587625508787789901132208437179533875158744601967074618267064530335949081749882769405206808431410180215651891869454695821437161136964835716324622005878413349229778260723432505697871175966835450360085599574107326706835790959429075115419819856570455621180385637072658167746263930354348657519793290963511755566980512654756409323445385919680437484068052207568078006107257260760402647605304476819409081059308587682568924161322344854461280481712497186828828717086913478266066368719563875249235124513461117669227922052185412084207939377967937049036792628652114525189303528083836538580597141712235965208765593620961174014390468782528418447161740188585003559523297501130348260857316410052542357565427658639742846579518156056738153839567508914066003096921821670151817068740488206829305118125302647832668005044561945318027425842293066445304587192294336149299449095199132317708312108526818842256245358052330045946218213538319754574329194739180941903908980192060878317986323490666580257291696237200903342796418134167749515014911342442449098570640728093900963254591918465181430229046930013440730782052353721787443916250942666174377112703171836569863937618301354901873187793993714754030401185247903688434615309790940507389782588284144059303166951866031639608759605144781599148877469729702947118071466162232272525246870013964663367614503646384453213599630932528665728199213555927253000145685482762352268805469179243804542341803685363047730806704225743364341116387526469213472961586607911316752819862615179863124443249553362398455718407797213062807553007999146112528718518685654054202349279821311815323629606240333471010311679338793518173298761035229664954376330800360356953113925387606036955019991151938054610033940207006445743945752390770024453926076231611471499769158958948929300855641360531382392489775554491478454305277414829030107440445745083500269818188637129926658753338375785819711759662883284811881943869612069287605776350232195306414351127138697229768734516482612243576440452814249437732027720761609268642418440051629843656861980615474554412612992399410059899639959634417475135214717094397181380689174533100866654113804855724389499333812293054633373530821172875699625667260636072779987802792057686106296401407849302159210188514501493499052301535819723678513596432662296156530177624175274406635020364827712888339388190862607175638918124374449052430233528296380816925826710491843266352416356954637722364442589159090690883668616160823343467458458870648722769441006328648731253595066394675978234200034079737226725534776759789781457134450628812877448937076164359859357472209046245778431403324333119431999781334449376768259911139150471140451455790301775701299217083157555209916615194419367006396247031631394230527844088683874418064093864051821716037293793900934684891660646238305786768581607104725043855984726194687554840056315564149894061897139666695673961948124496056292561438529234226877812556375187773228262802022608687689671070627256335837417425208939661888168604616509510781403558027105462565723203583461462044435934924079093572792803106383886165421354488143586080347305131018059539412305534886667631038738577678501307260042129596714742321730332088411360064361912317212896601973659482314587301288965349066015307478929142328150174653508300331670524191051974463363198894357002241957985493068315832100724774866135124379244534887498969785463784057345540943457291581230143559657206998693031839134910898001453407516323090818248767927674220610120841251826725021603071763787050238269817624348466632260540836444388302541249747131000290543542871368732073064092636268456369612470256110266039194554363276536529027255058118376329394061249608469981719634360420967445965852501633643773045150401940914503926965419065096122392713004840182083126597723909184616882083797892334631670461699976008322775110882996212760817824635271174705330942616381105862379879954030139209814577811240749404077884736009562938237550318361141894363885948839614940998025199070608422928193121163417270187149620270066487765284596809789623604923550095262349968861255365364553811183525055552776738010941564122261437217793944817293384088431582851875436823130418550515387554764420646640614089935293262791926663936205623810918318187464772823376844722593423474303421938542314795017615502485961936146018928245029507639341543894132855549630525496920218969036712254763557515411526171507133097896207599668667216025613422562464560718505920745087101371219992312020816529996005336179392727741589424151796183493329737669068437635965154986947910812453806348272663103484711783756375353262298467514203493055560981755268818415627808562438316209091838245538982520271014690360798795639693446426454166723030373487892341309224896088239698714861046863862767056291618043758324986579680399092088367138790792857991328005761027150860194659785181129555145017906837131149793838394044118684221334016755968413221630703326459560673500643608980010923075196414176353823060194201297340481449965764858819355062805178114786617998473784430186244314043561420200666562132216671878981588682024025219360630640140050920706538457468027181704660131290600101032947523435069853676880967852595321909690246120451780928956548738222801507393759270914933659034512056466783433742667332153103473620254626095246438508223399388878218151691987405554709219336523563572893189322097296637297944474450881351571391953326403648761486933264893208544654075825552974896373433292770809882530286181049263152076958818527057875497830177745720169224174784766866104783073832707916119954851067345226634939245558242950627972154811008735575406996884418389769759940283460514422042666980024012245449916889130286438011874740392420833592415047034319108639833247118886508055302978119072947270869613326100760879738483612921146659951449562185934414743381994006859496618044284582747310324843465607376860959277944477256551077535347788341366118274840624702649297843727687340848449394832396489825177300012540792204233319253558063750496202636074046064047596341564620026070282453730956073406879299814603236599303814985525619819195949491240412490136495526495788959719503756106756335665927637607338975942792215341420443278753573177902958519622465350265302065453852464948589446993788592815725120951937595495778767631041302613869503336984216643901143143380212561656604202168039629696185943108347510457166136147314947100506462760653932056809968017537033428220648469415182939114757543899104767114018890299923028906918556568076092564328808319550303577014727180112209037547709910085773751854222146705844381666019108264639341677325527174283887375490891693223122431141805056772046475921041296174174981922735921188823224339462122655996944056932014835399168292069590793177651055597901489022623536322880728158446209669830269923407175817881998486658907414773808414360492401067000525349961967695391112666501773143712083455260627168002944380246549351119837765986047925931896744856531335275935752580037267714514754481674500205260830279549965578874809591528613798472015953919240038106700478172310364749489782209739441496007005306559014743965483005869615473617871468015810648410930344310608371893146914814080118320644856729855255091562293972564406949763373388483974720425799848027323669098699025689326315805705919222759766617050228852278738560632073235839424778831633138186428108755383515531564658212003696096200905119772933066546047866096229180398078698283841200951649550292716802295417004646472031496539668162071942641100493580987864909314525131219024068196644006124724654247679464822767856037917265856868443367425134149052122098777085687492794961420779240263022453163557170991112488541568616198500470423444775059478809664043634840140044664559774515885974132047314068637104286053090783088258831958610615488288434698591409652955075619705604540677757786512075579944120483642298075157337964591475297548159581262277002181947320249631944370985287522270446967201683779465053680450233983215740512395481328463445825317091984867582669824302039944605063038507273041955206491277257056014787785440185575752916627851453396988377979183920382426439383593367784896418990108395919054707442186427460867343544636727521039983707613861442742348755859061947583027017304474195503188486450857851466421224193417391901368111356952477640482210631086487038701624095537409590599121464149643465857851408010003345414066755745230133018416151953799995829999005862690798973167180829244335038973706776426564767420964407640408729551190155189166931855677869158982215791063705400003787173506969586341692690061790087663710346768718136341332452131094202922267105750541553744746777170397968344531339791084071285817444399304144245016685679531228261032887369498101367725536055691830822722459989390708472402249588147113821672432006802045676746876140480155485391108615453828700712736065808810055714163966195091119346466540123818254792203814098793774692928755719141554589653116544781757669602166447991138884379821002909082436500677549597347860765847143901695792777981293419958758444499308245595895908021212295302908821858263949792654211083602006047133212132584453443621207134608783242908100716583984692330389836314695216016231038223672931450066588368820603820223830735532815477079560302414540513156851553760052936207370568690651201540183458125524818090053550861911062474877319013759070335020153028253370049731639872177077452815742641767024189016152093446423021431674316980129518685403267412287374686227686701004769544490332687166525033439412704872985120168150380619769112889313886527770971872523577420019281170850023743731815877246196755871672255687574000870795687445264883003721792868954499115135808003701821805353518952418732001977152235161296727397788309410631843722592324099131593243608987205837273289278449479788547232483233644735874319962560565014055186497854891275793983431952794990930698542772259409856069144237848613635469002346870245206507480106104426462707843589228438614007419323902477917697405076311173913108611616767696048072194024450603973370852831568137682927141992337897083188819670566104254865509422245624245387745118719937525325436947433247756957655967781800261409026713642416209842134854822514601289980960861538581982105197840160238358573466181426049642559206636311433563557590429291828414328086791333549108433143578319470817642341073648782349755795173727472642988328620783550926463040322656910981270472262040608721409389505788871375553503268503516401783061478651009119431762424349530156771408853276630397922377250479131889551150720865824906623072013590623645877551320134803957394942537381409469782017388510398107105361891521439963845819890169059374895288610306913605097633056417555172002772239716111121038808187890857236791294373572365317731705555379870823740735685441204861563783660145760751011242712531629293993799457153922203445336423466505148831076132426204035926014126151267805213784396745226052191251365167800057489020767573310246213908243951425609458106277655803701244228030699959581441804778134700199156893971726751289833641791571129391792343510687564636187108449321230565232429580154266260478103570949711017539966690120969386078254138386004300375086049215358033702312503231613679202123989645607518546426063323862791244931752167643070807764775746923888636082559488666176064352018468443720104967315466821607881832200591814403612315738319482848174009473664192883094710962189305654375273012856615679064053066712832517048173959506063203684999855998097469323669195775778658160720804278621000324441791562602279415439827468715243511335453875191403166408625313188578823706947109201487259031553583185363827663546124062671795331154786810482712517584433312387722380462316823013345657960396939745507330351880846811188611900558867621134341583678549650948229745853566841853707836732072549887418036249689309511020137816049720221428260958018357479357785349461854468269167036116495295706953114040221905792560443152001638921432133449517856765254558503288167702680663610179943719961069612905135216092294651822270549584324303251325331442860821444765894244936779709899213949944274257977352294633018247153632737432574757125425639968197765833977222449105453891898802898845682174802989592036952575133712759180575766146682823833976635304713780445440995538930909661031072695511005419421621371835521308692009470890252645274079380919737325738845504761529173339723783725825075387975025367310550232422223623178675916811733974034687348631795708602857236953946750066666577499183139596149999504400158383942071289075701761193503572806464386648926522902023909686242883169479893739086378014417111152091389589293926189835159716031478937005811548591248600880125334130533885993148924739443804890665625651515925941303215143606325678547055753196100806794283666108233848724089252469181151362662520022205636712207686387757128159296600438673606438114235572321969177255504396655595385437007076193196598756110309525933978411563309072365701908209320785552178765557708974548981801419041756702293884055259358444582198359952275182150351598509067471545407295490791944308645437541612149197916299085841774695070745397347962044846463181283965344438277573661757090747164481382352038148347747697164796656669083826582903494258819921764484146773895486014351852275063725430882683831860153404924333144678599975172345905713746590422121650917448656676747551009398128864639011768345714956043388467406903508240922247078363534564306703643065136238315733933712188315038090817685818059231050205224458469261127706091408640807224886384313050521436771300426105442559956075004319967200522380983411973378642285576017613193110673200826688272876357802611544936029094836912833203194313612629519931074037338911965850294545219839385941679950613818486211233855379096200373926038204181966303009847841611620583832245895011645228947094489761442876220436322380481660314421776029753826125300220883306713500841390813336400616955393475639902000739075198333596168550528912388427812622604370491168348211306543495550374899095858788057574870993326704728239718615806533429050827482449251667853173272089992180605941422261618441734975014242095562266344132481565949108372662629064169893972564897805752537177093629242142343233001239114908585017988876554748043908073869587090504908864955775843415756450010155885570726869559260379840321359663162732986902648548386304670531955629522141507167061858277522474652633605655483072348249908547209817954879238182235882836107864815305995286975996887742166273447882929860010017776941508505571982994382091444193896830381294877798141086999173009076380030280421315476982081900066285610970288057142553964974772791299677699089569650092002161310013467876119673041756995241170198583434355157551735833480626669757373765871154825452225823536978397662734292810695694901324582298188927336973354977295843936064369355176906770421060095580261826145874058025706214831088040212598151906875169020667543332974522376464211838822289524192941598986984047968526877177580537177855793825707515619361525313130976542220321009466888046176726666642992304443042177440319513170018992013038792124265513889919829251804624945864133375724298062272835048281183152956278836238900211677183828420282544371660700986428451671539160678603507780829437534331924565348173142071060362899853677701045741199817728836735975404611287485675115337710517392473793256256786166819626243192425198065333624876022908891772864270222253373945767263130494708249368804904079157838205335905184254456952557460639001493204136253850060799762562046400785065170532545075348843118302787410762239946935360406536277655604030085668483757048016604608430412287940725100162935931548133113503998859431029153479916043157698493254936881560926100922024613798479346018044354808771400170475498638349030812079185452763191094245671695441882174453288664220085677910907013286943665465008409777035236780217249707046930280399645166012040838221333296931093123784231878749294090396356868668591168640635411271570775228261710668708288734188293046063387172902098797781760771413028345441609551168358969795435617655976364758467270317180475951808397973396651931952934739029794517815570755750233783884210744380538408035085558211362315527391109582023579494996636333090033393742942171189665670999642761870702410724769284231893400532504342200817135894470211369703898198427652211995819555644532479251315057537267788207075771005550669686515334643736110674468343236951508963925302733461724235234181351157760637773038607884883054829516163097515055979525549639974239879855850941168536537014551480838657925197435821779617558816281093135324139133525747798816022550693437417975779620334718029989232311601841448564279824996909288434158854835339511901979480425599314229546921069099542830928043594416390469239128827656825432941066576018814987900334173939767848045799798579127661195307139899151463494152610624261262763495610930827840013156491635799814860291321561218261061108625051158764495171132103655129464200512945779273688659572598371123304086949870967924891932579025429847865088035058736717544052251051828875011844496766724885156399733593041527207473612058070713720402208236465088637673565420463903225518100548833560566875339186409800759421161227799553287967715411806046634844188737175757641627360074341991091501699756603576951275679313954627747974675438387169725028793680717421037802638661226646170009604170015880828402675265550616963515025200526768074440475020055356580427963936510606358074392070024488472602590296734056491144847830007465039235284755530886113226814021125166147107994257322158701250602191209931933919436515250888744430990784237733765810801494061583001014687892930138270559241037153652260531753847783597879249826097273390047805922668322490274750938519599369516676536399800108388653552348716086968070502159990809770318507866184330061420680344405478478055834202565200189267157554672549922582703009676326388238799219035942457038899726159750443568571496627407537971674797069646166376489697982510482098516764326885815630293614594589356173518650489813704008657932987554281616954509769328628453146997931102865677558738171951719428146773030004386301889231514908117746939199682316683704723230046253664709768222998704748078480586180143252074598723399302460563216085135352507750667033404401292589652008755241306318698430423309922345502043526779140003584021503562541534054319620315408786689824619901428138341584397939139875739696623817260685193522276573241710860427822123122133479157636986817182984538968978220412584485801595883560358443548000366707312687878215366197876337001218974513044331065875185600700139769929302347616803155610459534435355455148768667629767213140671167760965032069782708636680424879133706818361381423336436224862662112862490899678290480691102140488983222333871455557045249491887607307594330004745778806914683629765203256652733524518258977528589472914767439870478974561926101902322228934689561184865352665651938130031664680186730397836963633360479438862682298349158207011187013787597547359985624042223595029508934413328775495229951849374778272386213078905348840393186223620121839446438277091364435357054458204166124770270502387087018168957338880887335833098628926581808383509837187583755440379264752451095702175948270811259700938557461533301580371238753714759946074200349402206579763779332682106680486548355501708163253466814353161526976788372533643587328300320601236596717141088246864264094452104241936711524892131327944402328802542672586936519965558111192879711454582883687443476658918075165500170795924881260469691583496874226648843811991216307743669555717974018827077793399126028879936731654334706479909335098582160549517031309512654524312118287168210382436559191621581308521233630345303771204266613114483694803157863180604380104013093413870872800923455539268960580078493251042014886213773292276283882633192567357684719322531264727056923807602795404981815596508364344993746653567083135750171032789424288407355295333189923323452366506126027955087655676763459620841935971695024816462896723824569465541574449537787547929851806006613752475401327065319503250477058167417499232288229369673454798029576152900356754962553886325463424294630786232876102288842774033094459209723650816391192189325001647199087581765536276290147898234578460062825561711488559798270232666746776846986409120455706183801271377106028196218706647055487749297465354946256528115363011273178498210354482059017115651531216677389564235615326350945244554271084899540132749956552578745622838160080180347625253140916745534028469447314285803408361712319851942519563104064345621970999492789872257117163688200885805783238998183562742815134090444348924386801902699321152859048998931410095012705573321728188756705996648099872849408374228779535034966809093425493010385789380837909668020680856961112099754743114055619644113779036736564209065723169087322774531179448411133192708715255073824156277812953104918840112060605980387520873710686694223517636719568232434718674431626543086602909523212903134262048540417413599074549210881875959633209425561899948978038653255333555842477350997184186775018636769953381871045423569223342819995044892679701858833223216134479453970597734973078279817699352882857619061902081710790954926334423700404705269390961011891035401715125296708057395669837086070416267524784030938771410417394929182260039957637076572125170632440465530406925740046860634354616798515779389328478782266687426525943708120189088778066423827461360788208436686218602285145867492798604532466249143861539007684101671421045493093365204554425853385868456911465323155871014397578438121317580947579847687108156320389616441870269516743143000071899843055132073780101914991381741027787530979535987279700727720006473646512405808417959874151204543784375971848594035713078744527160609109529438946899760747638622229858618362429724194118956041922849743842862333338656791277056650284748940473738487085742190662166627512020560844063385942121071198677528848886244569114802002959337715009238506550211280949418304264679807876228816903835579258985812944981379460080236216483681350009247341880234240678133719562294696008968641955559195098342305789356318478109696015933214812030659044586584170606041243329416154123470028968880424745257897556422046796764719537650759247752259339962428458041270497585918625369940311520700861895917722390556657171860112883135633175074911640440759961482430387770647215460320092581698218564615271471729764977573407856586920497953157848457813277133527182531890304117424415793008143611626451707162323827955423898711466586069390194679961814551582282126563847144443478068387496217562162301061139590082089140872992696603604618724884138029248046591290550988863125189760045391707999800191213207292255046239650949281791462033826619554849179999403772807718035950691215095629510695392347691447843296892938272353354064788324505776391362692421269541156700232494211327087981959404460619892611762846395578833980492055848853715873241152918534752535014254682548341380232971728841802524133668836605836997825050570575218233037245927560553679385171024642788730190122797206520839576100113397909808887789069529769116492484816839746012508218290623272644280898961325120556911121555835667894407671210633970536313975659642674725875502189277100667249520193899956208314230756863149226599492503070704532598776804504503830742386204160213332168225844903066941780238186297518177845836153572761077633051581005843143362594850059218067706470163178064744575577876468347958566223849317304416788310560890936496974317054510840509647291215819787327623468240490692483083590882777924911820118081062249902482250584553321748188621822844216946133773700336488742041818446914163264515205838372666690198266840858312937129631874751756805861455589656671691365682592622346906017641176366771892567896470460019987950571579102405158032478982046423070403281728229113471895497880259047926223675157938093016189017231327216200285450297949848228345828773099620425406337531927272965877669758385272657178895840615068365599016386370063887330962193181174367021625239897972761013032578416824512733389243984625303720671266626205279301992277358627892831929830433612829151619076533748948775244393185472475678496141358304367992788843737515567339646808482513425032002580460591548929148237669448287292824532191843530919110563664133962051810869711109667466172223037145305758354336233396753570698947428278895256352404318078087689844241070908957552198296085136421684141653049369819684879045101169944956398275772932587488244152700135691412703906837773546458637486670008875323338922472724487076156426893397484697015160955189417125372011430883802886119558119702119838516549471442223323665787516003384832730852507516644354494246770548880931587287390091379475787379937655583768017446760643876951015034741997541877911175633462441354067798593622848047491184104244064172170601206936698776871307363706119879536340794704838976104782582513656919312839585022792523024985121080308046925759901805382314235102350372754513912937632405424715892397041750356989758191027538541805530118576140007554400887471976671424696004434289835418742667617979802905986075340140200789206619465481656780733079334327171222829678064933509105762663067769036416090465101053970928500307072043867555512529244450653403264579085393792740337204412505311740495435634918546486069172611961349677458052338778702448139853364399029107944367771991148141571190268336701773727768614899906153714227704605211578739595259575580110021220265781222228814304943778709145698701527531801855389953217258441677597489324884744583468662067414304391587575296189822963475895700081739182104609685392749173295709172696205028958135752498280542226594904815585062172460192171917838165898289502130513644061912099293724408268464034065554445370675380355817994647188834416810062730951432418910507921610059894715142142012052547267091797808806932163625472133548309385465347954302684913747499074497790213588587843121004284918263168516790032580899464253169122804498389056093843745640931792543752903384662614229812414771134184557593667586310531510206041361986655296627384174988515315728787718148087162252723039783628609314348820064907703225640389410515725169515083871940373489290488077496075104358460086105224202794745904745615708583088219729022714194657916273735724583870047919922812672087823784168373999829913726675740107210147176636248720986753083929158619343008502140349829176645896213199776663132698035062173747541286505442781705799785020573648987283122147017750038681953742189459434681326461039253766185467434394776190913493517542183304407277633178986181940924933515837651030496643729026607903291697807468793864386154478060222858677760829927300923925709469896648094794292876185248730360417364956124362432888888693793204517422570625119531071377700794335024839769797795872977593509165499799424271066012799803247557097207924128580179520786419041193305407307740133790653018093972714038127092199176180167554202283124561511364513158100614970712749421410892432552630671486708165795328181750148280402258821914386175162645593929884464429927852790295632464816891129637256255282237131955305432074598781104279140808945200962337882782757369808234095253752354621683942505971577310073493608583174794566698425141303438405080858668284377273083478352013910046549023682282105707338068231538054850157850788174039525781835912390093868829995742672100433753036245579342411316620174179272358469622792749527473953973033506313122005303821880077806345173978239956461419746140095638875023459669192599015194434332309464982286387998573233078687990341281918186521165684436010489454258616358516338211975162221246507327050510810340274481564644863106678257763936727525161509441613057906439304728854401750576397927133818641676814046776644762592055009068340538680738722785240408307142869253023547214454672498581512950610185008642224604573549551718597593330284579764528903185870894567905500317411894958777699725948793889018562692188075639870921946453240976128630113110609564514198545160188636680472583601740377534660180696411812923421146970891173760970109039840864360960634464487691276021626435979609790417873749516009401315250765917821360481103903836311070962867914899560366523255233751875041176775763780064409791460578664800813534499736605821798642555833688318698656811401141155722307851074746465888907991048752053998357790686909526007804039387552447297001086490128638574157684295113131704197452876061658427501227409568920701044790297851586799604208276571270005430956576402899213118016984227648769832921441883030002542441591447673674938616897715599408382974258700173960099056643179188006173695630310050227354975202556638588884438807342753469936073975263688160090843315657614524077983336272952668211321955048849780275717593847594318564394855056755616001588378250526290420692090503833737614782814932604879095215530812951675874983753990441205301652193475599129996336202591083636420472673330380628662892913783165170266569771016852374004779067388266481065153163393715352280474564554976521569851708531501799698044267584955657668356985804937050174195015839353886656788699265168808435591901051191278476875601482071639134856535418868809541745202927851368196834432264199315735288450263227353235561238391935522397412878031173035893485547248432470366501138559982569364536868422784575037387980183753114899530348330636423194249630178045107147337410446070966953891658103843624082660171894409229243775446159675101978850585004174110402278255342062669933868367670146298837203287345233896136139167431029429010578734061412697656680488786680227287435267049998619178587518723721203307608285327497284522359118835241561793879411230522458820891077416574940952598252254634925976717854842916573538873681605748480384116933455745946287877803841447051495900392339185135488560300217363626181829646227371980795630385757710300043395061267644899361432216713985090965734497048117047138106176964264612277266518073142077138631076599355569914273433493139031042223578353416746230227513924509750200518266419376988502232249430211606525673926777469683551603645979400844200345056156126112918721997687524475952909174685933833366002803478368789662261521371191563473799538607356676106342010012387035499825759240951360032167768825317553731983594880862076415191743177246406302459580102580633169814257447725070284046326374002412961175334020249968056533184645938230113950129433630364478325458759138563436347954971376812785554921718924745668979985312363006157576683367912876982317093098048394427597103033634926849627411039715498421924262229878694256513519378499339368311060889103460683467592672307435305674459000986617101750207418637494922001845485327273917554096329547676543647959054102371585240466077456065820212646184169934383104091753714451179098337790948293473197183210693766691578879972519716526897682114392384045530651973965070390870484063659578360628003253878488164929866502904308525028478995927170112261201283828783131590623338218060913553384651958735366784615018294208771186503308776122679125767637581501253883348686196776480190146728073332952198817212483977922471797493657277231777663320203891398562594350516060325700059822301678601190281735072329944266065117722551635266215319541108372251909511498593053248986418192718785178675211741957324077321202981503725409944300045701548848177606204580478109457426615134820492183634420357410293302268956970090634217427567125280225823809461918190498098906178482121384954335121846594064376918657254934857812049406173289398319038179665825495729491670086709697442702421888910997557079981514228251258060741177915350430429467216709180917466774902114653776287696443730197028894746456774408588997906266897079629238592946945840316028437095428236161933757905782535533525336781867111707824502275514328120467789833528689379118795174091981968876444006320331314584136156705946356863556590911772559083806869197159399762973659411502743832559392060396448992573268335145920468730579839613005117899989796070241418165507746735292989140416433628257114005986053467617206921861105086050924222767920549149931111435883512544722200929283691985367849707390973577869489458199060340718694728479939553796684282386892149507222350301833629422586609640742988943595040012820685693916641265059050354645035721145308345108120092601332351682949798121761983963176714768489474549425702901702535743696514337969078073161106331985216565649210491720794360601535364018952979214904392722342233646057070096694422238609741813601001531550771158169032246304914826630025414357042206119225203351209773541171007967374988047313261490304071690264910308463548512723338739142964892397346087064242549167413538277909314555342603960162024032941121368286782227912788737174769984804481671439372702766020928585500665627007594945453621462407324855922763564407013597567217307992000888147869853414583110037164379805948072432083053284897620354746744521772912236501701257426573388428794255822423804478742468973531059155232547259314394704491212685687541747004391518219082565437238361021450929093985405074611859985629843343588382441718709369735114492118316064121785051802614208643092342441408211324618076120175089407930605993575925459115482124515864509769679925714790743938814054147592289751317857345700327776345477510289301916048572880815036253420836679823165641355452512105122121870959081804001746116089168420543228946969985828445576039575696047675763734103309456845562218265160738530292305906240108906968714438194341689837590091992072355657773040231693962697819991783788235275678129493829004023942117392371207000494293166229496915558914179983869278117479978785499435417630560374098399744151773058303124416490751324652444995095530774558967065765976096883828942236510712155187976399723013601127792311673548770780510248225177860517679711451404834244248124158862504371590907962727084867746442522468443124925220580494081830082034964319514506819369020008879054823146715742254706562773538009817413891747666764850460078871910103000122925570473326796235699880776994760143534709656278287968770578594348730599585854608760835472399272265244783612106994635495718050178789972724738103306793911805565815965691204124824387275050517610296661109564507313379512170026698115124154205762633225241160650707556356225368329525686897507998454784469102907138283456933173245040793941530716645530132684034499322076880915610309744718965044512365196078576356888029403154548979726611287474923898085836938377283109823087741127208237222514255363456662667979407348055679149132310863386288285243676769315152883837766033980287367613505885313494745464103132931615550460488003118016468067913854191923634963445928344322092154538216533821984302492374363923044497225639410188210264061590366437348490529869555357043897525563280007087562556875859535760332517656820030937791060676252817380746844518538078313861598871460861805831595440118601366971185504820910773451565913400086011731018625659170805501913478124755636434943426977229148252409416478417617289239060547178500936491037146144835182135186484460213061681764026356852863900271838976161476144251874065045827194487980595308175787241265656100152033376107189928329834263359587022238350572182123406471611612936130546530497214015399623743817554807542983206679885344772881226220712421468937592486594863437154009225444282775795107774986571981631047777748614077265440919249113415048766956814126487634548512333668635245202168616304699801526840454241377978960775243193874156719713200092900641515442471121213684446479211127945570390577961397812752235495014549248094813053576156586369289151682968955087887923265403307171746349673100178286946394423015616718086935524300529112878723386477614225957126818134830962315372348792927697169193242030539907050328060077283885569694185185022418030918054730988890522713426794713681266722501097508897623776988401672448316562762926881897319670782417533753692325757968900074209289858514159407716948754901140357004111272466143110774432748572314403526148026460456751257459564303419724771279752185569236993918188893905395871883943049252426581555137362748602964620094522482759980623323287018765354307085027422967082275096186039040528157037974029993893072939766965504105182776537124003864695320976812365086702848149955007201486853342373566884860390542958588181907632034670332856564722894464413093534926258155051099704594873636529468286600908213444431954993033957377484445228915294110905028933135993742012560675529378191887323589163631641283335526574814892874484978365735002726041096230661444088960890616983615022577740863413609340439102590012883370747791391177372500716874369462860686382813053028922333445735514219466452252513343038075012698171664879664454043704246110790182587310956660609591104233496941812164907563063684567684053277622831292405276054613044110445544851032954743046986117396876658937910997393150253707491946424933163746592305356089547731441047622824080246464143155235829771449338105608219588723700733762348390829243733747258295793045370589216844681658065219822090260503031618845502142385633854773072724026833869441145993058866147963867654186478544955680272433278282870329336309880293323866419417249554168735047893777166824255131557003537376315662635989542569510133253244185038292240825604464836493695331688409704511832352468899736170040356186691217018766544543068719799504706783512047754933398636795009822795609711879719015736957195879781737550424238057718286780259880369621607814373375598368888412994727623171447815116522331267458056648041349861753023021257736530040184978416923927618773945066263989187550482458420941331080560602331162430507992366411599642666173957866428139916720288304934499437879339991726302914651276899522401193560974089199670415540850756618063433616939725767352698497287927753294081510301409355543402119013450422349379622510986905535138384048179548693287330282403188592894210102047525050851916467920332399865657147004423599736554763833595200229004704981056945121826152105744134531851881767539588689369778468712026621481935644883589546117722592240831601912828052726645575643849932573469005577308752957650895786568436411114037203998820099589416809102881477494106642092928383354298168619560420350920631929417799787736291096069420431691679271311012010983426011804090921911689379200827225341937098781583994976939429857054940688812153245206401559695421471478626858820867716067203761319777422460987534920043308784291936156302519273305453727350577943304603842768687050285753286845405749732452438920740992168211359568871009351758397572204727282815887664379646092352836132491626587209234223207682541696263630239337336854369424621336836881458215594684117919950910762008954020563590043837044726873827932086058030893631316568380286484810587214323758823162504431377497785508677639059070914848608037668000762666928628914754756920070649378695437861907574448577369204458801084980631874681441542889705205046516036132303664666934163987513217256807594119249924950887618066661719507890964344416793738759155812673665447226043860039987250229999201004900351560052297365407633804910977752810723973019876326588844243702705713008810632124006858905753057007767931171346752124816682853349131237747052502935513912438264549838544853439022556156181504132359653839611437426598956577312541609452370054608226135369168881206515855227244493924931057496335879563040404017000382751420311093948241734633559582986499867378877176598031127548055499668811773544078202742782472081511766769805777174786186305153834184836435029829102485303597958487856118574593182542805749373254997852523399095329824580060637752373700236356824706871782105784782792161199423131973673730712754321954533571251801014570769079370367034120859751977590223886490355745442571843896342176868497228996748086742422366821221766084022302104199063140475628863856379952322444576280561324362725905958069091920543614971775923652263723667972701338426204703901586272811879163093987978891898558723891672049035845852986952000376733588361637782426463628010229440394414663149713545322814604353483317460102236250222070564791623446651942422930114292544222468189590143958280342688535628191929119086682617583443894045052326873597838950561732509470609474974315956238439905812902469358109034562223726103035896780547500696494157665277469706567623594422286199059118001396955910473577358791189026543939010742602797395466904647650836589222080608863970691221464322727030567045106828228369226474478976957840746107601560724415046947427826542225016787816396671089692705243990057286374304380530301525794038276159949261785359338369186784222101741110716875703080624510884880236962971324257028973022998623911924346378251827271992108660192765093994160294745518285196965075293600116280330343979548124535970662935464291567042594459147079675406331498914560725412358732501733347824217124292388132651988576263103884206117057683374361300351900961999653232477790378482812540303650980934380362721841541539895013594946554300775009221941624951352078269626412233116093802643064951525019822509646093379736926738368370648026024020729131334048794588646873526551497434289096352111856128123131638231527051582160338675592135419122635562993102412498855675271494184313591834947810165772365962661781677361671513358866695226262909097167873632658192336956927863399576086569230359502499661976129483832145359499618391757228838765985846751150019538855632746834181132817912422853857313335278078085816676037143000618037585180844038625604557853737003705560303838205400853141618834642320160389013023761004528495310115834713896646783926140867676099859697915825140105998008523845257604514009822086010490780725491128017334284365970785347606580747966456132519556415229436748311935173073608087222470241994202920530104577243453251982654338233240906660598619755923619634461582625509102168449305025351138434848480705277526101368624026164750166238969385103831140866713438449317818444130685497919997036783742394309873575137503441176003667900698533328591951098451005697717023595311304666835709208754970215268323960687190294331932088793348181253576571302181202403221719777929533758828573014661047324386209438963180130960874470712780514915081912727649958600309926641157934270035534454963350884137503369082716902544329936147340084588971968047908318339658033063635475775838267350727447272774285560813396886647644832856065056667677704780950860504392370966255826153099644783166242200427136883495733271003507340347471279420102684251839062708941153619470589333505067757431629744664752758580640430154583739635222889408497781078354080511331564619099689400786531994358637573352731546300218804573441025419359861485484361378989303130403064313507425986748760643648555139535257045451728268322024725516857581971779235398183013930587741857333206389519087188881270866832620766653582288792404418950360088305972335208512973800699026016909207846554746149241910171171565603409657551818242428484556660901952877458776654284598499790504929953267933849499996896569581004793830805346404061159537580759155229539289988353227407627180678255745162880824022145191476259889900181896046364825245990059736448701315209243969872344390284517509181416858455056333632616659183083163841174261742452950475894337647307687342255491680779855946781693802971294365672257379578361170858410694635861949920629151824074156453957211224224530545500916913954073201275965241221041258128170317498743738862390073092035489492288406427271659169082164875586414088926483137102336506528098375056158713948592690300086335256260535638930301145109908477771583233014155459984218033990091962133413531497313532727745627088746765553848351693362249249018594027188890887824386488393358516636150649285324583954914778897414969873108545947905231813571835334017892997613566843184257744957883713962262762223574798018510601634361501691855296831979967840821281766189865717195346086643439178787959567794808767948018723148772631125104068534531872372871987010709097301006123802185329208429062414185987141389904358939399568121647062263461634054597294299436604135323025279219506901737266361553726974231095045469143758100930425706621463006712707852499799662153629404129174460568088810036701466696581051629369628425610456400571421533199621919876788054919034837609709014693933361729549964401071854900047183774844786120145073741860388407453747509334519543475126810164614077603007232314105920831846389158087573919405422382277950364884033041379368262074270922776435302760401365994035371925502023334497628894066646503863477859234590177298826599030511309824875005581454250049399303893520012083273150297373229004657956687954815266213529836425413277319381412841815478571437384735976323004481926708315121809314268210827727036635186380682660973222079375376636786436033766606488559463055158806113206535740815470231103364972421447054975597020634553519350262591459400880575989722681164350683929746400181040638684036321309067225369789096063311575642931588358466293556465847415099126438228457666493344719572092147385918446282689065786962149369768487903460914122116838846480967574256668820742606238634979792306619083881510606814231640449829606555843682248394701905895918800341813348428589305824180247312921622134731985979779577455047893854426258808321326805243262643691710465423807119000948071688800342980153437023567643952607536140598896099547827224776747136978969159658626307384604358141888470987277165438017038846243436646189265452547519235000261683286294970996547110572797418275543693537924249940292279785752031520968803822171932006828367598498771326917530379245955039079221981028347378943296207159177023873564419956371507196715040717496354768076788452552410100939608000813737629279657619908189943528956485361963993591392366017518828008867719241728910163517435334874373399921189549476963409783397996056169269432928621424691263270617361853879520360809160099010135072070728692673672763853367161041771089525601530006079772729235939144713632964218805823600980913622156169646776918015407814819371923203460655317201517459161035022535114456858212313795334917469638408094475991777266633470907030409827684041337268154304308756565767956749378988499284583310174277545086942642903995910794243793007602195693156430878013879673054260683295505817603542774853243549840244346001429136569572531922599528738457403122515447309796746316922283470676637627462007570741286507043492302353228572104258870264436789955388913445099772657145755944719169403425754600003516675340435818415332861796986697488756675842034069792919128499530915688778221481316971459537559559072719260330710485280258145608121497954106826261837343343660316681163649541400544763734475293542671340748409804642591367658350221583556011816008626072322441082624905787555392605757393065471824660340590099142170019676190777090784931877413890786102974731415419222131528938880096468286363448156538302989643800079048244723898353178474418575454424774842277943164129451134408098446675213415889296741928502057840742760319433702715415326002331259424680900260129331864410987680658119987211353697781650906517541456225676993176590164521251358352152006732580858806151850731760430022096966734780148661119004751260198077904881344970025150524459688053069807772039302875454605114647320397072599983542325481251113865985443212594773059019158521433324292315596323670705318756021456613507868990349149258786837145377250116478088642243423610297805943808479339297147968349474774650484128978473620955492717816552302569336018301304220731551796279057715611812997109965002019018178452515286276729643786999056956634825389901265388792662317144172172290960401628071893083137001021080534533201240613661740482423969571973381344172683815480258855752760136109575650401695054490303847433472151794051433514393619066788813643165777964602138488790767869467295891353287899274620214000649079454989813481045045752478225593638112475848653291035091626025798174813214800382794621898267518484639420629693034056327404689828362656658857140889191083735530855240499876808193660376725449494214796963353676624678365675553382015507830649352831929631967718197636569936332627338122768590429787577018184982867248151735271817459751795297587766006747469540348388288814475744861039859938417598796093973637152700741505324905426524749324245002351066464830599238962005883263043443723063860351444973251479084147109024851150626981841698318047754114222157693722972735817850181653714443389968721415538290197089050248127150637269578580012949361174187716872700308152300698112054912398212174305260951635137513515045954847734879589437097808092836760034264658038369750097303971357583195145266812214704369845200325935112738534776943241379726615176691870840292374488350065427333676072542886360765410510104849840101861761433462075945830205140643533476345840823630099484633345615842524770755226977974522612726986746655698966818627397621651997928842628164269795292739435279834047526769822553949166817686025330131238022718532715488845040438641137064959323709957324786954525463544721499960437730629235764830546990965942402108552013279342631956421901098348060092710909136680252860539302041003078891644028237388062642356437556440342810273301406080584570165077909892961331405535690764330220928643847658400471040898880363707522208912792247502197778799541038577062581764167688509804961439003378773824179165166404507439750399711688869889132849711711279503393092038556713971875614155320294623529365413155429869808336919167301884928844945589598749504295088850082899133962025282985907192014998312720585581361056193827982467925498728595462912883819924123615575344233739184302949817609654579272560184614849416381625495251361513654440864332762318562346908161332090704825109383564264544641289395097108981545317700779272293364359428978360426855566573593511223158954581795285080659237883491061879742728673842154606801683843889683726867823192369787160054807888990173939200742389026987665960247877081784889763867252696323294823905993969412851972359718944864613132928338681483617991833074784692908944595123351854957247772330257094388077994063042093899364053455104277746862448949487888414267676831167526461222943204424448427004115966149255083992337099369334646662007782389935318435449912067768434874703385271932737894499557722019225271219669132968880501363090505085437334653792332834553628941571363715228338135549174087732610585884167967730901248697019193009419398817614178349853929609097237318360220640849196129688701833201030657526934872025672169120706474917257870132480689510445397664207361588657444113344673306783846112920328358155303955527513325603667127092271447714589608323630313007689140284679210513586315654810055924345085718494966819954385822981190598906541105123196492459188280239233543505375756105248070558886198305693767803090136064502271710823893796075387882447704663974789618405045248615104937174097246133070672151463707354070793142924309012593590739723116919824228086842604861422262927149084246451402578747515024920880285243460583943965974939545464750356838847228357973684715628828401897091449506241814752926568343572155507945446427815864288164335116877411792735530951582417495870275713673341475716713879189454320946835793354052281582531806236161643158971106912954882231499037336811807789570949550607539999090396019129581646004190075311255033851226188026317446820946796962998072877462001246343193266861612814057984741349665941090339241967158128887014650442521049238968577973054771410700222794489545594681268187938616041742354308732125656906326615403396515582762872862040010823922757497952699698147320289013882550858094818990024419943714767605220088833826937952649923256537821168937234597645164193840244571293415270552555021901287239742117190808343837788836151127259859914642743675218675070052089832402395969579997443239143298979986229440670422248264770033958893724786560252783671452325133308306041747816140637002820011069904987338956941103479737198652662821005647165062326617522493197516308476619568031099270826797379271446324849085041646314246171718753350214546201270830685270317715958155460968061822880626490291346062016964932346593772862686871442540508768917342952950145001169194774409951565021295609135558380152543039171254525331245617778915683872421348548360011641083962858309845055063352245119863435856794699946841270274136001357232578316016062329912617548023667945078930531176579208223821344776757031539224159855092097777428806127894186317842161778522359163103105142618340387409045047531493785814518319375373679695992957389608800307079828200920856142275059008672293920492881312421030131635380910700658870741869866324067765296037942605117505818969551417867406469020343250234824829450543559507918745239085981482598137376713135465280718252701097085038622033439166783050923852473124199219518425277847592292000880433114643392614169215141567818113964663454263388424965670291193621387867972644683240273030389776470116832092579081596186163226419911936358998390409095749209151681527306098767812431126273107921563673065360891587979965197030896011970111522763580429878636210636901072395328443905956151264158851095702840044511937514401976872248645143371286470598828552967432636190391294621686691658915638993702882600434893442585998770522458966604280453258540091222527442399514877396511837592618735807825089836730967117962060185758551010828400701472020024452083692806302151489214409331442255216656735875641958565190510106914696703277791871959710910358109441239618205382268209778016373451973084435601165602142208803920717409161232473697745742552730128627671449640749752929445656049005132573571091408424785596939758663712758244235389367570214283919535272913537831573130166258289726319720734475044469542036625683728417250426819897870950329515433996236442420310154586558172921339829123767737588839433764305735556511483317203683004184630296305219027660109945027548523615672820704432685301405221555376492897715319388808829733842998794644762994802902641774369182157816718518577106970444650790139333229881601491613782887591766373987787769191780207349014301116019206441516894034684690969471522132545948980895879248582314689146942371504225595966486774445330369804484674377843189089702134919234491208098892818429020096469411191292892936244212306482657377413303890509630931892584476380116040315912428141638133043388459048155994459960370122019889330503294496017433311190457913308334877042180292745414404943674750160922141575235841561560671147089703151678471520646495888005419693152114240084390664901307192624026917819929602515738998779900597521385463474647134214755789537513872114038322976800294250201959632631532478540451411794685307583244880089431699526239224485295670889103318017626368488940610260082654017488754887263465365159504914974899704646866390366915112356073714293113832745380090277920333378121807437763849632465403922085224924711628385149970727311518831838013383747910559796950045073505593360762399051185006226836157760029339951477935817947701453420027440503298877111252853291255692087859597129080588540017209388580770076375988515875580941238147032114337403187595075080269674744164487475648208427011177697393756296899429977051864340311360246585595160573756969859983956228746982665730327256974871070201395481119711995034932139040078404849157985471068385136931182697140965831532820914321823888283323669014112676693488443059833938084501698365319522869526366804428112249241766888197344404091414318782521787458980913031319881951473370980755363370685034011735540795121378388680431525161755965464464042828510128893204306888496444458572600862337792032610079560346944184163107621893872616462191028109012861283894627414637432799740209689650055328411706138725783192425313260103480851017655431349956935625852326278945954889934323239839445223123014124536876005880409597275995692117595576223909685547656996838564897276147260898742609845995560136285014010583641017776963463874142501322650077301275420621984199208722318852171957484294240049306968671476905428537283138226970782242457819567830067930122236824774453902597200411181200449433281279694757184787451621207619875935081180577379954926240913245861526784627510491472917511893060721060812183034826434501092730167925011770334906049889156702438578543443570110216334581433789567896693557181232308749092286719345225198261656488961905794546020541697329202366883533709759751165649825693090272354096404982538955101206438973773485677310732217561804854214894183794478521709414900959025832102691644066185393755570307525442424533795000166255966621529190136505768805351419448603414295045577759155349426381829703368739403605108737897949364261420837777219734401287846921941773334104894306350830958206944246786121095226396673558768110638981659379114782765045075771127053379451304122136721832918889869081268840137833880424286697130220066774359735932425017110348931921968466938935086980892248330830592065847735398945555274494488173968748754139547844047950872359478069598654421418945200367412945237091372855020557253490072139063304980910120509936133688262556607830859162036689859854365522785849874617242139764302908204364044343986680947812755895996738476272914146370181116674753065865611567260050904426107212307115211260838204595796968983860488058693218185504761761523332440747661239050266679776205800953212499157979203670086542584935471503446080943087158600720333068034774844447216744732396672517381732295307946496817992974151371269222879860818084893703074703044992508702757363276719052234388426619267766870408650954677703414940091234490443063328119877919714092778615520638543706745083026354904426495011338631028161109939611974923322395012049668203703539087755406509961666737236537023253473863251317043708612410759336122318556237586739933215314877897620367926877738142101853265308649884897368455088183333296646967544993054972286271971440160844438550027171430918970325127088576972504746715211517978133735531609907361614883044128221614437528658880876127114067892283113228548553145069360922466981478500736138028495530863577716787226733454474988293528954903506893767611047487009108170537259852387771642190837808415800089816305547603743356764887228641327435490140504732356619595728900323982010485925370631961353462621986165290044884818901074784775205437226004994512310919659855699262357096807238002863660967735010359550262934146470310593039885037175397562201864507104703705068305950366031432457401955840183028142794862306841940603187388230556084010746961812455710151869740371693166858626680392567763223094000273081171662938284925896332700568557073863657388528114649325264697933865105838081060820386719030947006409820388421011969060886047502476689500151351663644266489318371480463414949826374680122507346661684169558599407430346137116696671561545342758771282949719288673745115306040169425251928390275543723568497895131723872641766709575437999850662810035016524686604648615001148704609813412473580013172543878567532522394088077634182141434871804011247122112287855513998047308054394942464772067018053594864592847072445314752302148476787034397737223705299607608072098187171585894564335265419228590845496574377180426886153687084548221241117200875510904785637316947056176068964810260089396277172436157899384786964128553041206982467504103950175267645637218657179992656650659168049474041301075142682029570542032504370168135194564966071234585279360032184003831355386520248571700553770458437916066992507932669240897149492188434887022419774231075093349433396344293081161646777789316291772408589246896594333170575290236051875363461088251252815998074928020670078253947539270538895290518886268469829958453323995723147131155615586489695441234418641743507058350877511419458539521374205292694261833120896675014297064173696856622545658975444069158803763854872539868242452877986236929569077513182585470361676647230599825321489076800553627257703921122605518942382791169653773088327843730957760596055988823014988539601324645179745707602907400812292262945415294341155393108343511718711756588501346735415143875971484277349772749692779841614197966602648590606850202433526803866749716722177761400974444206668311322826496542269148996866011456360485751021677276339198840546450040211299698905240597630893121667436970509226378021156621243596746109919969673144740303513139491072668902549442021201133253167000616590645797700795335949562374371345272560082800004903853112022661563474873621780748610594849331448043758579887697052509051381638417006707462681777205267328340822067629052513134420285639190609873089187106145594101220208890659649572161561393180630677600587826504813234253458499701831919256925578109112423200372414562384083224551969421356870115828500869149147043335612136074776175951420147251404046114656945659548520513876622483015077663751999558555662934069741178900271344880369280944080470201379276357751555403973549329277472719290015443413085486841548983988846039770125695088567890226669531363003756115380239421662271067304765063124763568033079282250716807187203970149265119439362212475044699300497801593905529524211338906262199300339868885183368508092853360660614310538073439539745504787461487888689747451137965051235263346431775027708933348808579181852188910183720032291753597606516916488510386288824531160073221690063818032966086794899028719874464216713117819096433667971822278821080418214843642467659332889002123710558441691228103312684990791555427844174773165299730971928360136685927228637852033124209649860999905108676242789205513498616282163059266533198515458364464527015439861875208491836379626913670424499415649915267415718906822120756575549948806996038735470335692603320563827467700795114122086659407515177523510418934285455735173791514457386070372089305512326241838526593511503995559823032519007376541298356241230300756669451434107808623130117891819533040858200981947081062438329280735007694836496545369097285434174867640355363567275212871861125006436658213359340125648568242226883003324997566018622563269576978249297313906567322801886176216376945385253018042275257820682431561550345313753830606753654138850746211399792832569726358677866849145429964983189193985693935890461060094882648245202368350879378749706887719209716198107593031363485546995292403400176154289456501764995817308987548517414021681826366119468214274306426264141722771503097912687712269071809354219657863596815731887198488089439495256155363263362763895464727451958245921362381581826047959046517798023487171676805939757486026448415593314950773111000186663195271509349336123835221940100574465093846557186030879428369561342158430174555113571294089484597209734233213594979043848289995403424989642979233528625109843732987538906534934988746021570929964703638727290685408150925023909893182181209185454542224749520254261700383751270208150561375981037883181427944695674705299518598830885126841668647034654915963801922798087968811273669054282929079702586774576377485142459690295967604156866353987121614853026426053753799077375308145954902281449384369051608849419273222827927523959985182467085370853160168473592830994762385739633856771069498522894794890838369449521899509337665324130577646080847186624431105942730108514110534966348379180243363698143414977749394796497532975180168218085697174725784323371299356266490927011395657756869056133579294340336951992702696011076625551706009257914738440722973237835792942475262316455774008964249940593753185102315485662822669110500652705417042096644292183109971454513216589568595465274274584032071369182303732271918456230783054197486823864154065019061717064598632602955088618249327546159322783220566625997694766599993332900011577279774263676819115620726884120680413877863964022450278227521278158106853816820448578404654853685824356412444625720303944590378348316367236292262057808027126457186607390723913219415419091401364629238175769818157443067161448396097175903879237565891220015123697193156746132175577257838437789245883081275122612128383815427549983562770628627814849891620559109260528818666334651640593880266297493889645096373679647027205020640827208010348316115957038342342444744048556280578814572450847963500541957159067113542865043906445820477736064138724516865096145459053206862464509870817336366099276412812960631378573677719563267070615138653881010811499421216708303629877044674214006012952111521784517033452466940523104574271659636113704989428828549858073406706119395250671145328091030554749777401435393981566401992596067939688830106874331030617764807101306015503073475661558768514693891233324854997246749014239782942572677238457680542189706441535914646086322664799630211343436203630753780610577423422462506593720175363261951540029120734922118755932966765201461555752615861456777253358690251171463405966015819707721667320138155944890443339015096002015907669344924065150458192434453169615654109074301195154713410106258953111025242619222518232935496230272656847062816207325976247904524950667444529339633797024339588044601046222834493028641732073404186335205360969160611669374227972073318217722848891547248076902229494577605121570691530702088256497920738122932964606647555005093470117978832441583612651577846514887914555627218187767287207670170193907034151985009743521776102551705920127135770113282042518714594614170979150767905021271148964305817849566444841437613274706930558847364052374682544107298353109563507489325057668759423678167546529785539433720569197316396042798984393051771452513935033944008969990690256100574520880850015958399532477419421741450948569164538009029186746422591401300205566232655816160885464937469251733841704132185825564866944834389377751862092584295803675126988405346147149544553781280424279005326559620476284107261535809325711310376382896111809809538718849766633516092124336614632969252739345872549922397773391253715280857915080509482738103428673457037854164169429549927043661522705581652573973170899080558396199498193438543798317922847641998801421831908550240764433959029906463683301447521021254770345762988736955154983752705714032262151539622660898774030439368669932762626657530761832527957423798911667690602050415567966630010152570769580470770919556551225437457130250309240924740486377137001617521838042508583122084620248707141955616205959858080277663858845988188888844034805979065505258629094545018573309996932976877460529139322420798182886781188974074113215067801751217107675567721965605525004947621873259179033639699979571763752343614704601020322840934187777563567257787495993126446066797976782575614919231892369837603315503930514964147359701624535455158579965202344017491936756478880789254291732296654289690086244645458012420817229600798255325482836238780301130330890251316392754459912469208579494934200305507118441535246309547803613552331005482651471045183093830559509918809684626117826221189054195344638958340269046866477089499707732380347831999753421512282245777900936565809747565522750601743459322995583399989483320195705875415428170673560681960516318929324212961326856780883275532072468227861481725492251288840669211413183686556244600449976611094710692840571450226720048490333676498849618334474194838755099357208857612922400342837758071904786306701851352039127752786733234477666044140357535930017664348261198583306530871539656021116620385821177513503222734137215531340248315481069041783245742600539078223967814705749197362291922948774566111384262006720971841706074917189473992047062184898743373941533998831699561349171954401979904994827979317628788075744451950260980741879001273353510310272080139937385246178148534559348804764036303217485099385779231026510761984030831038722567663957802038308121953220128462549114530330618458471593035247054555528277565611212937764573350593703392553650235401428267488064555180972678354863815843996808673706408698093070761681431933107186401724879928057250235334908744937810314523529845345514615016814094293991630166723273841273721135463489383891294511613759923930119858501913562302655595584556278036594211715801268405011963129306508054912954347972341977262709039684553994177937792673446651307027784059366388618498162806865802921795811761317778141991338717259773239699299882590202663811728700287370679634507985373745626554164456882274156266835240891125951835384614196903087066743607195339525079580415182822475435246288385520907910399428647302486961089065201546187498615033732236337425922247289535621059948171428601130330510056242051632742997098270197007867853836744450423996068352227313282309672570912063545373448709759927185054596648329378361249277555879277790326128080360552235080957781672371077953203774189387253226784854418548044237294639410285380650170551962973430854451093483125543972585128252209680089314882733477780840943029263708864649350358663983506772389053598088471365009922771102403022332122377040186292943085497494545173719456574137453400336697553792547933425703146135448795382797606827425639827437204325311309975512909094037994245826406054751876230649474387442621771826342752583372891790807041183553737119202804338560712677924639996532564767630560998937478442306722414779631472106859081572786679616987255476595998826313912615243891056448458169693754637328868967140894552256256946547471474117315735200914749942448705266510593342705002857208651189720300677994178067028957023063768209723790088746167082219706502951674903637337647597499455287009097316194250695005822450593556439538031085284721597796119685656688673921295496477077801312358668010437248368055678185221556401030582948826325794649307013534827485766543543469173702698148188527700922387333048299475020036503104889195435107654533765504849210235681323734018193342884259009203701108735823864110771100722022449899252648656163043513112763332017751129057994393591656882656447481427491134669650852292284931387328770856089919984985460866621127667799545230354282216508176069563670849425532898068368137806737137859415581317519938842016569092623164332356950053510819732891650768329608268393354280167162530988156668361700396513938895974673775999414627005599645944004673804953125069670936978818161045197140396403982134573503624808014205267657892488017605256118565685255305747754249394791877428384825479225624232611004780654801809349244113120293478405137994881660706360053889370325911912830035663314944052726205618689117966117332217290181283763410742215904009140102150254428872180154814955131523371423342538112685610400049956060621515146770054346044603942453338688156142351018372075335427335451746884938151903453988317858701312010335711599130687591762530929176605903296433650075924546772781800161822142785805553782290679018555447638571774804297219668692270956943242884489190616729118724117147802996060952599295160076772345001049835898805756007826664576192660383347697147567812968966919770494861088749057049803693275726226160663139139243514917665304950431512761771013883364636414278509646336562219030715660058372966133096532974570601876283208828931396387000426430177886915371070079322954246746044282739786696749801518711445663010877837878887880262044770819906042277982752801484333798975819971526139431597426397590518906929933142805290756860689201602331486155562793155877053248822874585141907848420801063613154013418927710966711634479904000878513693540238847590122031249170174247919125566673341140311326746175646925839064819213018074966933060084233892366283364927426926661963236719615661086718540794412942061051992736441164554121857666793386145293793838588071529211083039302219397328361912357719409951140335445019800704046717694438903166830274722660301882999849927336709942527907079640932018049873816764217119398860702037836497085363974938406631616383877129033963312871949797369711110085529635830121530942816583130472310360224259893034076923170647173254896312566220239446229610164656574436387701784005480299259817039071455941586082573205880788500417261677595485482404618741313236506652082607532070413688238844761752984682279784656470356922729756872492700905941684322072116961399288502350494787875542604216402917328323590687749007908413567063073328603304727051952047603930917102847502584370057234278708891893976109500363868755506018947039635146695277178566309669419705379281121701525295791321207629217291642947124660596693441158714665264933203735221205587339373587903279548012509056806261468869259937058440122056999814194779743171924655384394184263857872810220525720380352388308774335881573443879729995661603096570106682609882093042783769204881079368801365868370514698605806688933526388234751324343036128891112031028991598119846246436159878380935278432739758291183959131288091613804072954845091563784642059945016059919304665043888892828211630807834869114692182549997483380896899323915029949854603434762521278355549675655934926460783900894895899195035360302356603025695900805242456299550420326860328421759381723346007876035434646180476511710784106364740201063338395619247331626842531654250038251192440612418462249461234325265818809172144002372045401679038337885920472156258161592988704346072283775179633389743674024565707825438084750456743456470800081062474899405848870233129036111147100377918951698340373973210597421730160863906857121698122775648585689183233598242192457939229372481819285077806925607314958088144387276302359389397297523015694985605738624043097118746574941291273717726300214318595571851320989331473319449206724491886088033036994623844776623875832136168700781134927951694928939494664208216678945786487739651816629498036738706904623827649111705397066384091955701296931811481094480334266636017987226283664920755467667823328139490598528460456674770080753220552186079330167575902457521684765359208862519744417462676618159292909244325400300844585248171089286953043077111851363013807102909900124078218562868937903918240984622770775612106388744058475847561003191804631255233822410092518628081755276430831270967657376673572788014282400977066996487623968603437956156889958087195214038892109591667305893666449053558541480940490723640256362547673358316214812777674270618208362996886759421755667052676595768490654224858212583918193125219133085221152065568321118071192605144352279232705789883596729870482172135484971333982931076843950152628681557227802785528938148412222369695438996224314533628776351659010089199621746734145662980484820118633838003404407319321238022945436873610904916300224326742507491206929074306780740323578535391717116353014695381619740501707159520983618591042789236747307716056346932321517015095880875720231031755353983398469963930270238554506692982666356977812202387117943126652185490837344021783166618089406413233376919346155604467159749501764314266841392811863957438125368931770134011500301532117620374799382325694872103858858005164719291947111237621062286288961325756599613649812283894628771957790433695936550296056371250784429615485475935187885777353918602390698640423032473017538541802635354636118244576127451288053652159532782701600038627597851458914365123073567976744812469252404423149373685101945171722438610274469061987159888701656440211066022887345317272148249019824821393880466853197902585319240872307695771430065409487171912647716816838361052423654259772129272550412465826424774652084902868200833492332537535995745049485291034000085583230585414778026517944906403778020663603990673698134970517251531858639290932538288086538971349278113277960554116331664313453336606233924778029437794887252757733228397997203961834303672310452876770027134068270212677899445341641622709884336955856965342722554831890127584931637884804361376627021152267285005478902528248035916054669611350744163072920590375927590770862072783333652790589860550518897020419983409452892988478063190837325683363943814350522554310103735587002387612826099927368000095078099972043643408712614209467365526774467196489540543877890000029861614884850957880383300018538711136872811608242937274164378241881257463195311925526902678660793175418746098877100702847751775129156047228653872785142528220544098017106706457955904361133258075632504332334455533048178480940550388289569774879543233317530518955014285811648877364111037014748439588182722520978366210047318473504635747741781331129737426660219248782937871746262403317883653528059936332333689960884702582794191936606717968924960239149079760599549198091405853644971767925848061757603004852912140144227845814516422288635509609867874206436750842883378393978371462262464931650943219028067882838950537492896822604103000841985598464004081299958402122712252637088614883943309542110116780140779922445483092595632330810942667675111272504751391558471255600723759167151459911549438393270454442097641649925572213130714715234139713867413893646102414584386780990421789076177333347378305846283716408577412832689517120930717132084660012669099845019196066630760185879453623797843550256133577322911681833721225195966073519692759885747732810320222820298212184702114518668359014356144359592071707087726228649981733596097506859934084737439915840437197705807818264764485904427496341715653261592979493571515072290138833695787539141679660174518120113206375204685760552604654451616550796564340394108089449513458570095878521649806358313754824374154469705439826838289688868161701617336817504480093868075320559608235940229688728767589032449184260718911760859754638456623047323604628128528741627281159613600324332951114275092625189779941243560766382539672080382389905614506944367279478092504983173327767198435063092644605249320293304015871678563922867973035733418697364775839639249205497448809012125226537514551017897282552504322222224283987471246098053705311985875890909648474215414253817487921883784613872180910968006559229669061571541238173109544548292636922293907324709191050108115760546272676246436963605057795812236827856343809546906702874091958253532364112740672160260387090619907420557430984224425913840624972990790043038271424927349899664791727898217663045103510512991202020655765865694039068587419293609956679653857267452283278427889167348896929035466401102654448709860219318479778287760588334681355400333396292911800508663661512461939107159322645183057834662982469035674428607868270549069537890937074242371518318968237078185022666118455093003158886253705723153837870827770024063012487320178796394414657231554019441171724726375075395569328141415324493022907080052695057034499573821763792914041877005748687571817336135028243900899318731890073333643274468936391425487038997165172117564058736264850167042121662353404297714889744904667232574036124788762554432136443951927589131092039906214372068373317908530905987780808633752504872118220933136199997033463156360922482210498045080248868263877144758638823036118092069967568021360384070792682331465875272716687216572404934449377927310390299230440769863234441916975213892931820108666487549507883175088336097638412427570489461359782760900988729678686597449474377052728611667247749281640241404146405206016858633821006087166956431821058012184396776657723539219904318259313131219955467115279618417288451821482349068048283733485546879552759886616967670961280228083101933575223707245277251606338673322418359574973919038411041249860239652526357919343216267327717202582428265158026498142865914148276508196803615512024792731778954033793191544702062028834942311776559618185393981165462012105079651837927745483967008308018931599118353554016199892855024991085260073831114767264552261305281871661745672533368904551112298238277953570569919601758617897742191968834004577276500271174943971641920416122148908524835871160518272855859318043744043391980097602193879994749128462339231506362704488285136340921476896588858177318012879223292951287640732287785793619080609443577496859839152522636591032945724512769833964250469792019992842749199580165617686177677847114775837639435857920955887848218420501961776726356270860362951262936249689915230201040139732302579811204223618456360252466998483181252138095100420243219932446209113365048034344134687576852405694801214636236081902446872504968027819117779745558115749174861468306860302566368793362552184156022799214689303971949048487693812363384812275032508375167667933583507361172266922639614937022699490569830283962104727276621935173810570009595942976776858790641779491701530097387740496769758417383702971889540573325359996889123029205374962596324152999854853875546863792042493632731953810082707561748799651469244370037816891319947977392385772724406787910751547582868734686741646052243783437124641653976712218627825312687841460193421322061858916672208421761511220502017907947648837962804529869152923558225002313822564779354360031684309289880828039982141807420035827395316327063649912554817768171421558231458340878233665333661157286385999494090389197947762847813653825316505574811901724606015267477208337421588916754804273679316899317734700080433450792535326486594268704271355168129249700711756929588657507277624471165742986758068046351025122918569523387981862589037602390446654830228928267187277838023339767629240661802606388267314938681774693356234596945943303404972701841631548381379828314147741160808732478587782017607438122603991328596384416337078872997935783639656435133058851155968696363803908947984441463738959399173789269568683593526851269172762525161955409991741062720354978862057261945083761694256585597969850933698963392435630913358700823499113955315274816779603502035195326793688632408882415721612706435364113198478882235518927231889550567534563876395787073873109212271717624783372538885581443675345957831080276424674871512939731216338666459112898502148192490104239848206386516371927288454651652449764226625314711429392829125661167872835490625176774769550251405778524123290752075822103780239128880061187584654064095018611156892798864596053654803281306045131149535983099129129556506823625885748472221057418122901580079803585406763614151096452478895406178391893837718342079679410822824561689678626340351255315085235186760551370889135032478213959123999777822439417482754003329163663448164215098029211043351934854528229585536557873411245803745230453442503341226929940827801381871481235960989117899890361658973300496825237279332481586103457116131771812992461077970671414642482543677012513048115333560562898051281065048825310468571407648739096593523454224555773775731747161221252455718001545064568183259714892407586638236830085390203261987064346734813551127138976030674198947296529580994894103621564849140608880865363940962964171119408013407570456965832443903246699880958729251077242726097376891848605819890935085574042534612181618230019363756408689359419502812009794985433827353584453010538179187676525401185908994229044559786141899841966648098594204840649787924997627616367259471598767441487078928166950087313346888649556818808245377890409515448817876535646633795604716444174011024347084340196733493682125047611534164028514468523956235994007873958076827135415681467745132751238480818744263263140401215087081785227037463901543306733669555290213419209146859038576715164017993294191341739697333146443616214619894395909035766483962176325107286660094464432148448168736992262853443499931429420785321561018097641931909461624058984861979837674669425329920345596754074143934875795204306528315862518262099803731572713014889619301695411773624692910772897893308324254380151466881851536556405684297558465174888362616858679959918193918245724744888812439211865865888610706018497985033717040070001054946846080825177604944548103531856787930347773660295916681611665937353848749832139185407749025450388001672392589999345156308095991880777441638871050465844683928568731659942111603103271439019039999217121780829221453158798964336505410106575346965179616173039892743504053896625378310004367246022101980892023205593127091631594901655410424410504032749497710338832686106458866865533045666138391810137408644418231807008484580988782487217436801915588801443730462346373116894183261040314156804904885434961477062542055478431651416735988886517689062753997200895211669571207995634262510303438429127248456101294295641573350875046401931706580845628394827273578608898332628370543541954426790360985687205339527353181528642221219850791488524444526307348658408477048514004209397494944961433714834153377827219738127330957273502093763039664487882432552068909141045562358825467529078092220226417163212273191891293228765909961125139147740762782000612795090070785893609428408100609931578787887686920248263567079583915791271289239925889065956775263142710802075262771309979200444457249793202961577652572861256693507821923400961075664129221788232768375942898540847708402792690781349206003828155273978412500157322924308329193394249413181407349019354907916306141875102556267478957277898701759436481287186228900899835334128877813436776114268439640336293880550781172712558358512308805371836387751290023811894910735165326908955105475491573473547296752163921289260972413308278156446174625385515041131759537002867824713638687472268304357585012135797533823277808953840872976193443263572763840668055668971775172501336500115756429148306815108774943219641528038466242491200778605799039233898098721401569323167879965158351358915824815487262878696366018097096805412373453020915681600484910656403759936689634050820166555088834087255713901272850099637566359395271258046331262311303802105808320543805933232112111979618616928030515353040556426869564082566855117857122224113974428145567554772202968426531829489709542416153156558587296663037440321296629846778922684215640462484764305281169768553615123790317804449302888819427693811302976303384791253095836039945407689332959886241642061631682366297313927108303546937664339602174848792629304930597280434760154960342325042925435429280485906055299145271338626996070556050330262980294785714806478264162383092049022511986293124079716897031208440134280454531876804083943918632707681481791610765418181095414883171508365938803991168481350057550489235611485672575755771009457334820918143187620710770348041962586296062286454131859025707407354076141328323297263087137407001716513823479495078016169297868657701959597380219081535014128088255013290835683725792423327438232436986025123471612382245402012971643871361582079324005591294774794655798558775023103045499404863784134707011575926595849323137836602278847696329074058287801080046204760648195637027680303494014746654757354979043452963120308242085883010209102935738671448100730883080347581507315293125109462187190793677110921578907875017106500925071470334595693624669859258298118391785998687238974301306960218511079199290285442502194714224589776310265084376619447083245297686339685467237133251135618628536475046967799190261360651639054917812949174392021319925549488428998764329957686210508775369426254196346976301428023958048071440556150691491380080647119303270122475049778743385540533758305268197458449233438242936299746640023336987978182025891551188020599608959370024765973016293109684743213236679877385813422614309835069371354047678206218614029624202776528927948808748134506010872374885057607387145338797274090346627819337101459858881840785256277726395711453684896897548752568705494593566481194594109322945872038963099269893025225934370482635118163230265961576809021715967244660662864034924101401277262364538321919966536689948479105430850547936003699473772967483686202475441842140095584956106221413642095540575386099155663304673320297294437951195020827921138879348097805936707467744725120598108991097954295901057283274764240665044111723703512500973939726212804320092624859110732088336207940900681481457790246621610060906577287511781285969650758622871855605734401566592427579771981327553809725671842536867778681993110965883797946254897956809154533694341497402722377639959878941751030520345394263578539324495489396226521348954579735228283183458275439361036565853498354071353182858979154008699452715955607228982771267236178885450378447400469616427440665173425853533702737157140268160752716917206707100835574922589918313114671708774908990562506242499668174477876415858672534845471898405841570186223250301116640493837038945559260211925509306981392139347947720707694450663849140165098633694977362958656601831999222398118338510324906668157665577535057067406643574173403277849599422983564681628322612937734491157363566701983673315422954672886273969732906714158507847418417692714317026193893414826023404120083066101977344973592567667498884194539348937094329143459107698398201649655826902717424736417188967141663139291866282338788238023546575702012893681254261553386465779971332028034701713638200462306548903966840048399020665441214782116227440481785786440452645578329351107553456554297614992286952534138842870409972799156183989177769815696460944181632931928031763541618586850023292264734984250864713252914048335216132390147810523824892557984446282006690332557936665696982516740055361702953694963445029432427941519486536192962111701362836512896470946798054874959262233722443582981310439163701238274930068382997821101414529864173079258722253350256124815579143623187861948691964159562873145139821531544775366131851952677679416763357260682142425043803374590533583325567135173037619943486304188681286229125020389569508997338087235601711891941840530128191949269233850911529778851791163419175488399439659535384804860974240863622601439764172039908506072056490210102379363248393767038707911396028684596804400341773497257125629432139733754963908624846294278140809520035306074138679206008698623203717536000574424043220062852729621294630498724236347201093685296382161593901551872479610571507936381572455885932472124958287983255055656942126357992749705473731240653788160258900453764181231911500678622733437682429212868206079998392635997700497124792981553258887173930593956771131984114811729756790326976821373648973346865111966138369472953096601863627159040731808102816989155577254604470194173233972962032208417559120331026202795029185808694785038008464949460252615435726707001902926629234031635566431216110390624127685186809252064942359295172566644645656473989487054876670229005169500896370657200308046220066263158366996113052673073231234721284122081100279055501519774737543874714313877704026243458637243469256498329604243583980559436208891342406327176415902800272383615631983471263163997081941241353948053382614619914521127095781091044442995317146381995377002159406091961139787851993967450688228670323296457686845734870981839072139853020975900900162933055603019989825329337048542720194197292263863371049524626599648442753842486012992544682294389723128980557733492329588888416558207518381353369942835586909654690840998696608887765557841605501975891209695847786357136647993619764301777961125697290313256454415840478987415489580693372027862012097697709121887181845773983246054725512060320238088391782967842792522231101220133119684335829816424245623009061582042277296589984321874747154515507546091090032662740241217390422047974140794028138843676096490764769192296898320748814931514886922915418323349751020483859666116933651161670661460194323474245664143004549912587601142892675655617300306075746739076962948734183027731534795474171439827371018753707857427217014239872979211590220929612200551934158090540925899906584493049517559295557561551904833118753113973734125581384936032208026490224520761817824130040739718191622521849072050675638174230672910215195729019175951463232992660779429627987376814985742470699367857654920380460461971555606270942838329698838433835398099477889872991590476046883789107478137297765331768859993986969670437352758444680550904437384014995523413985367924753349264044906870905630490497211004607624581647134660584217912858696121165972920553505735177496151220898950752829750049266085008717828252106650256185746193795742514880184760344038716294247833253922518285972089480044626922752806692832413864880509440312171366844929669922871072752470998590021524090869338795316866903151414826746776002354583393748990221711353766157051508280662089490123307653774178895058978519554797520371823943496280178696382821268480045342521714186270310895881160389467950757078560782870361996959998496950447403017645122289451842470846827908593797237274536595472991151450387839007475830582701946915362276055707836166555172024616969499710728788552033682540410241248945487129227989250729353193944901047498052565161272351614735743853631970781903688160824939412810324485377494129826532265139386956151941215114682067417379769535593120943816281922899138224082547603046319509755225317380145942814319273942255158305683659205603783717322460588446692638621894939013652284402813157974184950929599055208489699682845965926527746224519629536362463788171014339510057262135264033100983920579713095091567401549661026775527278481060051840838625846835141386922294022198246879906865423991126360490004725209632444193639946840881953690445361665578217522914477409938229671184283508275876123630267062385544377596933479144659618314458344614187770439318360304518047783053803550063985354444349041871827721768049950498837103598154890508623622164884713374344769686647881847534805433771817839917281953433812508067417311216709341480654056244898061235465110744204522082462495702583783987907531873818025851064264263806146957541628125541056488338689821222125178119885113531624841903707099827638039586711155307138193048076222727141987336183311636502435566252122182065137348928775260424649513211745182931289572802574091574838523692599713222208189739635608789961962758496554770307622634165490409777045445427971209705712817421472581685265119251338998173564567289438053547553970274086869317435264456328354176917845252873608968150839891572390808970239467165307345502127279803832349324818235769492706257692350368979551387733922819681947122411975732560397341070632556811691834066353449388493953175694402819329857694592110546758200796383647452855857848035893443743137137153849874737744315445766107754982399656508165281342643583078826940841280383724813099516383187375668264401756621368097937352366447146906853469589441861082264752323789333350353421226465707720270027866619349661413864710896929676363462390169528096458941286148433672083786435294656224543706770658982741253558031836912286712573452563370029111188846570121544386977128831859688561664353628998006589169391816790266868097983642506499291756472153564052269805156037408539989859964856642467021314588785530689198851819940806870205657937155925259732485831938474845788660743676939637613517622516720923399677893295938015949008050078567222250491330744995080866873606812833354623392098409322919440915247769806633505164178454646536609875823687019150172552545807269722233272850515806766267454267816620412020885128137763918229947326982262476446475610813817952632831612935510099165202456666227963515442089866322651097270042962545398682759326619926668079543844405358157383203001876347585564664788727189375345283235674852682464841896853264643161691525735416892962335733155982210772259328968757696381414003329088627831294952990329105739268509027548944381022328574018784386511673784305947933246211365753881296094515220888377897980477358135982561730331335928307315222255849449891253066047611166688873980916214667183148474656628676985465478323237341295444177910558225579355635945240801306797403103830230306575968310449592664140423041254911592232717428950767427320702207113034664743439895570688229960239057999357029812994807602263327591729725262281957680856920977315243405104863535420625895258575700856409754717775225030432208733209132991301274143173097099017896393019709075192454993915476816589290973245571595664927993349859230725393959622458110030011286150887786919833322698660471177603813344299400361276512238056429066014722281622821888558613618435488607447515237186849707337956626403664404829091814371999824279510746831508431324621024298083750538099590246543021357467653522895743566437920296501984576303038372174500031777606822434220779128417615493888868313217779643490488645586173052678087461027750394404793154870991779742381259392744253048671919345239640629295759639949935159511602891991554174036436664427823267315332860880591846623590767981819920978194087598637438693449463068586683835566015445600441198479317044709120495063523762141903511426254948701469769947521409248270205221981329445003134903382166524533829720095426772208098978696100733833707606021234836029882063906428618118875140027561568230710212868816025164991820337688957808971486939590689965634094996000927744182306752141824126263995454383749023595955746945144602047732755521942746437324401837545113382275747179564584254252586423589906513327139761940567366120256411832163180853015105411623584525858134176809739678450846010317608751591581119882921556459233650087746279104696625847355550814079633973190798217107945647492257471901955954271773781174545858929543428184118921338561501196217597758784200688652289336589155505413987204975642612720563065029579002933906115520233388186501844853324495949074500212988036376010272187261843981118606420895879222684827489911510809812928850761337351777027168289509274946461384405258967139386121287888519908014232668580124135761854642857888834563143864527974259836554858265415660066068846694838609010387162660383603457195691602481550777594057977999429142437675445394884910966519061685468310930612820731064975013034104888417508577674520077935117950655332168757076868157640087781416124223450717822278273347507878848055986345875222848085367689382701356172310148521000731561846113657594800559752454097345221258737401600150613695142768373055171347660104050869825381540181032131984833593757583966495789462368467953350081241759096390157175331788143133576004912301087367598512817888936177204639591501427735294276109835031064338101923307685439683964169683284692736157605857098262385982022353525632357189017285727939327937800292728678525935583709331332361820552940545587643148296366391293125441754980514022854921611499201282981315545201188466683163179070953129849729533615265526142593245023601609683391883255018603930381393580773734511204596035501455119261558735235091914811029760118431854480021557624400571300724945744560675850372628298765053858779465835913082168831266618185727334912443595552567966890501642758936537448416249015828453763439308034924177398033783366746952178143909597161452974853532962764042251176900449985030440385183185015842420644497244432931224786493970193026653818137787323620337487980132885875302401311438078994772851193152649447679342468444342557181151201203345019440579788995258817649416368045176896388784630607035786337721939511954250964099067388560060250872137575236107001763397162899287770221484849515093004879211833451940718693705603158657121916594059639212030507754448195890650830602034124235281073329168463446520064825111822868273232611141729097528103931026821982064917271579562496446415841344043107754907912399172231342087855023411035514974643548569362985908858368106089822219021773854941705380049498824186116478935450527608355503377625514654153613134771108092228566749602433629421702030117747276520448719722317581195116275555389364755597505296431940421676084032475674453960190453097406315568203646680002407317537972841607985196751540930552852777302640077766518040892448594442554642347862537576479531390560614839048699097079047893622846356242437493358299689509938301003663041027835852180356817990583414654351516268504968948695500235670719598370146251944159098193071802139398605508526010834556331350035224327338573631063535394445265575205206433473831750358146223667819015267328814421952994779859942567660682315238402057726899515812208748244528264222522960888466677236623506178543204306258666291319109401769739945713547250381983072642823967979837152176275680182264884193769920060824744872947056134011014141326695672310342783016808319172103952129855139039808692939272485850184121524026212022202368883278792307349075149855410932692004025725847865527613848191871768019642472497464360381993388073250617841583591787307630634503156904953327796570971569674458549652875609745346441694044262614637134937684975494534710527933154176495037945797081564263794466587658694857215057209633511826238025943752467424163934859393300842175828113842118675476934022806546587904259257353388151604646995613200320991415509159481787424577297708786568928231177741938907908096472012234704746436967934806300339777514990696929101423299251054065670604308574390682246535799710310047995549032496773069111276183322205732954784083978069461053445715838539259231938014583927253915790410328456933545031324782289657288352141484872457232131818697771929306917137148338469997955863609375922339817605976839077221426787403369433280508809364694615574455071005826638194308832985270507293267116706734379940157121513441907476990090617389373055570357815092197473233383602975553223746737206047472309548965749620176510735819856821644177522466669781861766295257185662682089297361256082629378923194268416220223500951502054712458421090456599891926837267860849165146448312379614811686533079375286827627175108307571086504065588222702500454709318301457709739630273700186967215673522094016728075488128366391363722830327384846036880129269784783438714255764418526764512310793163534642497609977874322482948711507292704858148944651102572607470568907095979209207159846403757280693805205679555118078871242791292589423513138654738159600547101420491580051375023191550094506998169238470934920413364697790012269129845807868825481610867405337212311242991144476576613108283870937899443812492785972216615528989298361738916899338579572043778999751691452085031151981549983816402794973872920994997077084995639424438234621082023851902814391275524538677258132599386481708927555438564184049778692088243086710090527874286342303372706350127965776112465332379988984574212305793221027853171251608577774712596975938746866052468347455209020526083276775575944333088166928414886282630068446509285134648387673107802485926872486025970275246936687206802516699078276171324353175932876496488937883029247831522281814926651059045960932924257314491529145484261229898270831048203896921006255683051749242032878235161879725466072942245546351689833945763135563670006738216593613121501814673381666037042477517048060048384967745643403562955703631524739018861422597137565355201494134051921111851456862990013183317808773009962203478411396254673391207185086759405697686599726499479985774064188852316528792787644239576860898614065482014501156737212449478205288708917622491141061085149692696132384851646904214697159545323625905218877898643132931378823475964555761365332827216967467507888042196284060514934148959860335876581910845063090181976721926838725783821243609740251211467069968508743846469686090449257866194767699700895733494873308097539275707439136107286462174348397926072189237783589581026436158649869519221999606074758035837668086898123028659803639317353154565392766992415212773756707842770696944343777374464644442836944853546850756795303097426012750641262745733230088773751861041659610845502541328176354559539428596549521572858191093631902413013275977153774037913580867921646126277420633223954081378943393715365289590042698778834878200932103811606603794098703166797876726221132490225352326321932844094557633003365313321599424940459319581120962107880002459203186673490937887021791541575598361028854588417378972057501857569847859759883424263950865162678924087660262926212084153562734773194605205981808338289594963748781433731651348347131312441997142305207034280563133265724491074252505715100209821815829909911979091022216728450403695350628999778064236188928541479988717432530531537917856699477390913518697729889015323728789073743442682378721367778062346720845634069731588562621212027588405170552693315963897952247831282320147381235412229048669470303729954655249058284809762591692370665290482462244092685084183781425602589127678837554733867885058588016509459420069470310100604161398225817975512570426330749683140632613472415811686003069329981893174852508355444721228719847279034481402946818935987318021169780741598719100832170653674592435751786524091262156826013109107725223287593960098108687663229070703908231928752833780193702729844094364360415646683967750938057704434876290502360714855972354275216719869597270769261260774279246792882956730332540932350674558039888969130139907235925869514202307940030990158107370119268503872842566985654018064510814392207942108009320992136174357238720631221300812494948402883902677310521897600918463164519081572587607378368746232307851284306844108481897165176656110661113589045733791722978154604241167774907661241296593301476842720738679821515423722242344919742618514884070841186523614254840862566690947489885502850661141181200335336570768987472059089377437351170707310190832197122334601032474915295250581558702663003959596100664794375390757487635751184115437085757382315804053524228748944463768725316736041225952399657442324940437418716014878221635006303241788229036698547619556365965698092840531722254597256464214147307471915370429573354977911558804332598651797491653338223841184779155587331646434412278918029369343213109075487252178521339074319736695054983783852326830274479732137030522818947745531419720119038705828136899415694352889997094702660786865655351153335205517765315728295400832636907235204616117049394013264801739064234291268775918576089796016785997333524948248502764840184290172841664702852920513610782378380142484176305483969119128881793318568820475180101629679229670253039993173808120328278060309744184949850099749358059019534094577582376058891232014602438032852999092914261602592468751726717139764369976477199562398708963079694807768958430029470273173466926056919942152596670930539991988431639561422392533275414186735166544066627069378713776053306137889113709023633014532600382448066977859290915499627963184088704307158996137080063109608021969299263010008195142347884004844191799180899894331575248406354194341519895687206457803756962798346077879191916078465482016569402193457227312884900394501545107188401593878480917696318942650511835990494369515849174061248108198761454817342816622228960645865436874355252847315066808993264658390029001875856868689791573460661028471928911284964264485172604707285168164220243517348520195790671432630699581637051099352423954228651243557215420490050978517755461452318247155750342589665363907451182416583546106649527758800459144367651377722960776660467439225926020464974301169216087726049563198730731242932046319818437925269986382123787894209511557664523886825087405358885910201474536602223654337610548441080198472906488132505492629020427399858038405619322063862951578373319052459087361156371189231197426475808060236037407506028892753464020823099170457823732639507299823784179334687739914750145492228610489470457206790320286924232428068828101787695528053284574155731505561840967955076390844299858981189872785405448596755163305431313401267952590220748805527493821358715377229178105257208625965978493946547051783805336604876627299993874022635441628709210405953262218122561761724336725152646158130901660654079360457553348740327901940085837989367434113364014982563514899223168925098407303170566094376025619369714988667771134301156785414689444674909546577583742139237145705467040672296266171851338785420003146532117031632941920721210702656851008753646217835586024672434669091326489454914610939184422717659779710109188330772501532669859257143624018347921915699604261781516822952108702039649118926606436190179503076835707109334658678596751249738361285027314412064661900688129221070707109174234174506603331416319906086277388271055502610130798646333446055541384099391017424140007312011903343407802519665025021825126901504066242226318303905476184278703462673672097461143107681034705600569690573390991183700539326757591581450392125627728608163126028128925102540283659452449638343100130824154235630582561667895729554411007397327087481249580611848622740492191110408195245271017943150206879847312600684353128264875196794919881714846038011044017225973500987289663756118972924045849547307620331846223142902148130823714287239378578012806358655275433812455371342164588536590304975736330818082854846631654937072608976475275773778283398863169248304573709314791709655670079234020512343609769233710885980638617455419243493673548391037951055931131126685040954985041587576334049769445617017008595003453825221811628136396418335097421191691397729582410362148943822880471296989272968265873541919816980363230071332174461738595597604862342758074357308702208075491458736284198709883193583678861579836129849307618499785418020899390594620736585112443079288437210243462340525686080842698799105538156619196067504321730796554852574521002665336136935343037431739163952126224353392434216259671292803036123529374167214613470386683488352261283697645984298827819535635407334036310456112562541786830546452755089269721357233714312857456892597598099634212752804393896481118116920707467986667574711550313634621124920830707558794365120744454549731819553087134005947204551412443473186587930504899433233050574059498396152536169342979689878282423369092359534441830698899496658720728224354031888749504879051112958617520932022939202378564915012718107292858399549455634207476362272952321900073506298174010199700081327411050475804216581941554105349507972142376737569879534300873148831390109512297198511770824233692678097995896570610870748281901747470999011640674121542136330141039457364628757219444324624144152980800888548893065983043588202128892974164692898929105959719521839531019512343531307657658880057956084975306650061232298622096871957732767575859800596928742553776676550506293456005852286716569584388846807051253799931286481385105512334650961248436792760274822823835620736950672624194828581505090253089300503937915768218805600706698456866520235733837468604845894675811895009419353473442528675297491768485864929529599123341870738426676651715767564302463232356314669424680150998982373446385884608079828275988488571578317557517915635437540634904426957762544580743627581930553690387631370798544929899194008590929906961892943811669230623165876932086543032039511330325359280804037372857514568109058044081170703798888330088574918136338878083873353115442193586280255909749752937886669953217664982216409753569518127882567039706222021445207457611701832841273398869733410400945707659075714678290455226080452843205323098036334762288556669337432945380410742987042160469634275504746331327338453716479671464386790856323517849096476775371238150167757968346322445192066857432592001042291795522151945623098054439872217401262036771447343462944308426534639976674337653549725123000196527056452662716022122411188263162498958469117652978405206064835118713666356670098103526477357147400099947245066806368070632981042485858178434398486141622114505916868793955060730778556620830753105369254568380927216409185807997646692244179855547588927161226145158984587141339411122826931938166109950114817462068407398047189324256570682666017870700747110753511354054170107497119718821605405886318769219787843408812965008648964923348431701608324586427223849025457497330959573814932597716730574985705016175201982382058632636412439585711798453274467288905395401134975930807344400627916086771505969808461702578837071378913939476093697671732210946432977878864756938397735127873607242445176035071495368903433073345873018567649129636600177735787266191516504555695413141237267747670192305167823296017696200934837046167356369983078324728432749769956561152323911353963922162522142979990468123040976203699284448397857069203081520435023672919701403201610347562469803869184381496596551727990109401046378319789665085079497781337038030010849650856336216269323515514635696401405092929023082728359101945872414422387749638420000585483155205472074427770886205064863410127152090262327361159846216571188027340503699889364911716908969893077027383576014516029603225700224463175021587226357942730193055064214322400588774983680341302652897646398188255676936096439200587595859064166298570307642735058152793378436998292078040293283625060720797991284254536858037750776655222334259636553781128080845629317551846690672292574853895448555634661271741554590579193680130418487845262591639393319321445176467343150201007103339754911666342265346515656110700144083422766137297994614938374136036192361296514694365856192161927584755913004812945617660906356674013707269897982881093021324484425740217195686814461461329257258161134686068146378113013829302065483279859022160102113084669895963521649644398174953376741199752186865767713499773598562067971346336978512755792440588181731660076171229831572029701964064591802451307259560688132413391072763660188851842367753578454249731924717013655019080058172718092850630971056045715182479480688180316775645230678930521586760049849775741957052432368362373675107195209484968184729123460259487851282644342596647770244181685311760008665002733758431764170081720607411896152856779933248975007076438277764367221775532204010536176605331390597342734621160959148687714732566651684250660010903395609975607153204814290764669457311729095550944714492119944421586064261400528340195003222199579897702344558191534810383600278283608638518418925286000482560516538557817063126715558805061234755843888844069681884998105844204415253081427415762125394470720446511207903038700030436603559635874649669065834396316952391965208039590639379419258984327575363361938816086313224907990020587989930722820705441003624733542416049233140846875136302945823902820112270478019159711889644971356344480501469160017246590480291033877889127737135481560238014411804496999112991608343212402519670422712265151307100911885652193679249456821119752850455371145844646574932899256527673566626488543808060820254487926850552712433556489036701411324686181310071446852488387719344663517138786050226858881785806461121296209032620890802320219558100202051232291753157994841342867951028904141594284798173999859049216006164614192478685770387636407156853990284968426663369492117065042595980347544207973859940110663390361283423950940025026618040907438984041630351203529747790204438177251159547232522931405736853301230034830672766939204745100922369599377396936471295796185654108311658748140471147059973084491682075071541411165593682910530617736994846440104990407373211943049175209712055969001587632912373887363295041680998465524532354368701986578954044972653774929712395834881226362473672876889024213647907423897137428256723748057376633054262688046837610255934079023096538002794944450936495687725311207004561637594099028623065742013394186332982035616658673902316507762122632140916813583300864347561008227334504418667222368226056164134245427638561520837851809596730382427115201155586202344547141545208023577978205371542436061485745629637816652083622383000180915698900566923472075940465712926925227003498711722231650190611814103446535261511764743814080672311589155921540231206431388432065724958826104149000291699955203333333643470722802906985948042000874641828827857418782406471625671102697283549243333474591355979081046476815603905699544850881468237527628275604874189424659439460941945599589277320170007553523556961840624596457882789966931428763765723053472707712012525438477376663808251585101160187177221870513613722684395758240267137984606627224713097165271080920356781604691938872273045626384368306532363020291758832664515591500325549007892540915055099296216822845652299421301066319677754367349321219700184642181865570571109958828736919843848314205024439387458438788659755494781330025285811493988733129045126317232690663700549969765288522097902477484236028842127879963389208801575326789761951799275000324347492525429387158853231625373787487370219226234819897715428953820528040940689854508085637368024719679921601825280493356830255518927009562103885865277211609448243817599533670979254842612454077368563719469954925387924042539146365689317796271416241177382325285750976816231944375391665996997210058968770351721221224727750128600073034124203327407583272326007984763847866290777439985351222769646979321135995617687850784044598969329372617683425089426519411646900220153107166863884291088673816186603041369145306041501864323318079358460822088478690947514719646575230003092598117639236923565885431599522227260008579571276242036711225529174400130615684391303246374765320755583389668712325408043539631338327446395939611819525029460247448552387354553915146304323407741894534775055582979591065265350992643524264480262863850907277095995687083513124066784539215120915126033712321536160189500706468204622959288121673919014037599210718183904827885096512671211779852065865010826058192267737753111948076140063376967815284814231274440062086708149040067243743235975811713867190239325232065865063954208056484848128874821056797416469008541478013633551675230763650566003381907612983256716749672692587074228223617831499975061571098327977023752362559170602703802867199269502397340957260090400325926510290276430794742550521137784237368171302776435229790834698447696386895375170790821051004553322917879120324387258188693298133710846967223554816095526881059646959782447915433572380224133916926694609587681091695778943967508773927496013749210550573292186794942736745010327936659392416375883457273041675765763362845213707046263268708719379356560046911576059111647822426981433410160347740081466048716668811044300196971398769453742915517528494090192420785579157799178675900350583562796146567070690219818817757660631472721905412836394415455926347411902137019370309998764314211345102712734201259608798985117115713620443998302463533440169028487328053982161388344697733332968585235147710930256715172320787308954693705511733360536917082213955224232281505717974422411085791707258459610680737868361275609812857849271884882720921527195635627276582189825822676853761557436443629350418659893489913492231519581032995940826043029050470793100071344259281695571467712770333983058886848452361577687508851307863957701308083677959742547383553576333371101999600480513371580280442826633217900998962140217135458956570912585852470408227310592401763550966545352165414452764350557764075013205240522032703631983002279736249712323497578926602586591714162329851307921628080094543685585748694760121727051058915441983557947491063586024114829498512112101389116979182136844201314417233590338377385175561989592138251099968391366163417445119525801591413376963004022423203275096230840408795390384125129870380553988321218340302008050923489250682909510072713243884998864344109093553191799973532927452172706484741029424368157227654436769509749127331497688277099404516039633315073076107457320121433367012026210640009127068422739456134096014602708237479293488098890787205692241179430848069895373279391903530031896468768098065342149526947768679728691072711021294789659499311454278849544527841485761651461277294202694270520744827285460494957226953912972018463315118298553493802785578236840982248253458006364706938316714139556732145019273564964960691674967143933949577057885018133148603866071117982548580693044276237832012138313715855491885115137771195356240231129627011491472742146335302531935385910390933934769156827409903623998216413061735133707886625794966951815899581651080447683452050503628740718791405530090505719133573420602371939634892967659967578808377396476190407584808320765720164386125710555057866253712958657858472201446815588926980942627693757772569644109691453326524834179932916638498244269310774026170681307390348308626307521939043472770558780686208926365956079709806087522248896039738590822627291318790015295504561730344832544656251436800411753764972136244656476252537987530006715708380707907151340241884497102275396470387201346332447003817946779252054772811396007675613459432721073781739243139633637350656192154917118242301541987447632906547630087356393419429102853886389556190548458792605203198142332570088258713407427612671387744866918187955569347001232116900629077085757612829945219725193486621953008393614462186926638905140767818504482278048873134970759645600760441875186819599536349489623608308431211918776579898065438992215158582205930638146533796002432160882029536303254369739829814942369037338212694774835257065298358646454465016128554552460271464837212124261431967313671732187594344010842241478551893516055121102187933898953890532114846042572607480779149049331699950357994489342509344369305772371609341811380495011790910533509022626055435123261223130469792938676058593466179149597605198118329953394077432246432862555564742530722505620362611592239466222647598287007219744963876451529831039204048849040669900151713329982264916848112825821309278518113175331506582914265195920687919878313619340389975680611565776392811818508809483952377494006298719573781320521149411874276966568422089657900533965331390799020967841040704071195951479802826258444262439401402198209780778403067734532407332436944465429742964913296976097619689765187971970430128363983466773559053112084159882511148463583534737352650267632351728458030076516956536739456912068315553390732095458900673523339731907710198757024403891333716677142182257957036711197527941829600195518772636096205866737651227476667909695670398276121280273886450055103838070235540193661702336211497956118782531934945694752434923169509083181272305739800381953548570872031493450583453003997725483026392054007039861385067133469934730242066843173887168493060770127002516082893307538739492196925387759723815017842414866019835225411167847165952155582111334809184058628480051078688655017071616462859683124843572161164649003589582383816443862805548204172248524805908108532745860402825651230670084082338358083674941881762957028433422818160869511163545770630677919609523204935690791909578853664340072655480259321788902324012644971233934862162634495777809425886919242417249555604310912683393182744806541663677948572374682027603684426711491665321298908214498030894934872590517918286692355990590930811162896799963882589589974139064286212091263133244247249922130913212959933048528016825658631086634041461071543155139613739159102300360736984587808980236314318015545501551096585820396096263649824719800616702513973045232974856571599053904214220575724314856128250002754561146732442764158141624441402295972749605148074041197719219526887571699208977443202340460145079861924439111064193256233998306672104003978367507612534446071343265459634753480758803523018313113853677973599579764661930700467120886033866609645695301471324200328628178022297249131877177759855706093109926008427891429459047108134856883320212528342457784668572466363566952372035921545069595845267664930470005051150066957177519381139008272990679541632058623655386447584129919308546224515565200060580335160751686174570289797273867454780501948354133950871401075655632547185095625202375001833039279784686718287076726251329464336222686994260664334099790918921747940124872256046125397229639139453292044756567587578660711915486353252933833786708836876674549408557868998107886445620630901112722215133009673994775569926755551776214849537267564236084984930503460358015908235019425599797404410146208423387413168071660847866388130499661322570222076728080585766054515131351079701378077395486265069866503260111370263992315253477769235067568152325253003559408145997855587311307925157581112756958578798955248732184827705555477569676083591022321031291218266464084822704191172257773260597813542042350891944824601196629823891819678871553747592873914323831157963349660568186274339732422299772463800715873936149926263170070061796272063836607968620523333477838556328809499359857930964723060652574156563409016010768010271319892926641429013914805354078920328833890379992055358617956752805913164216768151662120851130264631589094241211520502851042193345411404641091696016581704610551054813200452853031269654003068644481391412524810212801570137495826459513620169461929806738798585501041096800220867675736085044420323656651515648554103752240293161209162272272986208873598201698323982830265538723674477068855267101948328714262717183655213402811041950681836200733955922415433356693608514326204240492327980816277044739001970846440430751948501782706299653813300340164924659080278639514160279163665183870717671154441744504916985477526298847669612328674188130671645062149147641566204967242499848845941798556471266164435300149733378961025048793645395810176932947958510586972584131860144708059005672608035428259806710167943908971996512869789787348179903863602278750483571954682047839640897342135936292708617192825578007494840532213953457301833334869920105571850114411806919538000320051523804046092175529301445444342641001228536409939377516148465179589035158906626875533599473709000477176036001335905625397940829115369667193310500172128117601205568434859822508811255188985904336499200827393861949839542742963145987013534610516579369574733091047586995922697062008458731506987144991286120115092676151463301670599386393704854546290620905507651712819119306292337134192150985346672419601573296353915408475218256269038236631091038433276991011200835583438751462497342521642716261935900666077945380796525332822931387109592492353140314332124454076444955535254642806822064964020383619886560134024373916522037530934004588031253803380421187339450440455038622793064951463067128596815091829899965280802516262092211483729262932736697396981932740751561528109392422243111095881601924350488434103924915224999692845993970019366037465103255276793305771468346516834521351577996958303617727665104012563508425647460106183120259593136952620000922389467910743136690631417434982088760177516464229358540004210099431508999931255258343388333854148502170215939694497336618289046565544293161277906180207051394031255466692366406382698961472485755767604850665004596979022856710472211972317157164805523322284799110520319398373903470422378264546419291675728742622848051077321669166208179683295231076097605231383799124358829331108890734875172902349260301621763738921564066146058751504591147279042112484601998712834359735765966021688745471200889301993287774385095865379831487184125734531475950703374892273143400237551880987172939387003326920649624905721338495153635009962751128338182159712952262839433240184094985063668783886567214307804306555194583496114428487207400093852140883145083138596339502721716155194645600011979040177000217826371587932253094321844100437388914011959660101834203474992251959207223033926577993749293487479003861715501638905726299801134781154680830473622944144252621749694950169961216099639495625488756874808259923282695527874024729390680116992899326149256600643853623981424678631387342871610534251010475289818681117104354103611596218620970174901213397368600933067990886061554910532739466566388368371341813568917775806228291645159902844140722239648634017290631283452779764362418834613220753460693282323690431303534302877132519039212564202950864289613805098738650343899383793028702536779296137587488367627439070546286343455194621597366266247135705868891935078782814034355937330289424500519412127653826229957661082584315854449899562710139369737738527429992682207417787931374683392333049789277043282063033801123955711717904475280835708801848372270505262745142058274753175485116954294987539197525561498141753332352562098106133069993231840502481616279921580037927762171880388817483953232222120509436225891200213213282308578422003575108549089723805936511360039231652277750834559871039251027540778956918608417202072333836257579390395278569324538638011035203842249708775150051718177237060156569663372742533243317025772246546461876745650992565622844296761411478081279509488822210228563665030757851940303025954654146501714049102710919478544525168673276906648866606145748249846009497904137582964138576070763608004135271624293267885074148811684737478542879272319652363636689597950734139775937232210920851638842779394879405114112282931879666119866055431987021397587313442855526685393852245570549834585284706815808499632763618377760888575840658268744808109290033437508264243751963968183467023436698817861784065573929028463383082332830011653760547639644096228657615198103631030227758837295714866080208458890522045047107070478898922163231538915958629179121578266092074988068336114726040863698060452247445169307874171510211128939142793332939097480301064542868779673131057610675467939121766712646261432292036419300129335823085875602568120444609189960791630186344791377509005701810790615777025271849794421159474716067909951731417340068356323744492399070736608799156411402460150612534309266129685082228028737221147389784357983049206377121201701242649133530370992830187246903902790083422655579768932890949625845921310503279957396871698412871179722229006771504769387407850767606768183152441495493752703180019432429951646454069602072170940664646186910471929222249145267076425853733032482344286306382314179564107305887156713801879561488681288145408386309442076468231642901008243911041221580651703143875608861622541048674359272823614072281994440471567423366515610507852960352436379125747222261572643526290684790033678802987305322340660160988692978181406580397089797385157061906834270986425440810676962961746679765777003588784104382715953403308922117782047567254837022878035239826533596404693237928458135524934589576039033796333398412888005268200101018837524664298446029851268961139312820431947950697691010533983679949309514675587059410754512526168126679330241267709938035185717105144804519580572428539107245811927020352974560856539299496350834024480002641565201198483756190308737327355661910097589640825724746488789282477114485851218273694945841333082980299718656493158066478040641274388345212050295355267738607974371150599787470232245731991949637945605463116658042300867774296471627893470751735220417171326437994218467423737752519319725749582010323585977710565248375448095051514561869375045481692355755356524404155565348911954857144948574814796755651925399206801413990896632293991568347645796379873867284857361715668130376743427194584312944619234713768188342919440424556884733296535382717840438991369878323834977283476387607570279928104997201377330649600729448980770393725926570541886355644300573486261207774130620166230825909442447059836669110228839701627315233232818088895645845791682861400916770367215893829341338440918613016325844960183545755751413747411521595545907363269378334182803306517627183965346311549470485967229782929360352670248210488342318098470970987914659574462484452715376180114356430080554412969748954476768828042283962667011485717780776964398560513654114209780641752478065589136869672346485367953527227933198361169296319149307591222356327133220314636421984618760180860334494560106650087004247872836058526045593770058066404765596377443412725706753436460375284616997359903262340389202271724219545193557274435883519697893373879699259128586289547812530210828528535620792816473995076189563451387764705359024417454751308631492931776782297523817290582840875463339823697357865478098212243530188760335376795792830123137475784973369576742984721725157339605976941451566620996221458064277385174735329329986362193557150561929841314912938611900879940931219569437473552835575758883230712700418333234144180911964547738470552535971307325139029418339328315308804244761656104726668048062410099352917596616783827586744969265316188769568677524331348956208155808255047696197802526941918199393262587523477528066750788035879757422195848006971142011701902914488774324963066436142421188924791745341321076692344717501185514032800620497570165384472602087615916716948825457790483683608179813699372853106097974681665828134923225532665903129187364014378455273233595551257853300796349828635786891309308377778670860728713213923787558985075189739640895934638521505474433898527929487765291195031654281752188969487945131611603578318137160499943039005904703512901478594276790039881140415175303516761844301982641642715800272055516210497551241900960502356961635431771090305912001018267453328290330064521049552040424237786116567106031404893840433729698189536208861316103458828760126157233924654272057550559948806938228775170183755464737355563286206701239089307148150526230348249525388962630965183912971843461957726768190499400437561165870441821239247974626214211428730037207208782986758353091196482103999340028708683912291222066970999612507273176713693554835120736416300406709464000963571080766801986657634351489329669784048323271216134380195376183744304631609061260166682517444959976961376480575351563433089452974639943816750305406473840604233467737504174666017315920462350081971551339239363257061049084485193953459907318326874317179099212728120206256289482494379992073945946892357954630048564243322828434510994775356323370265113337162686475920551625789140616611372001719751118322672008056865564303047599630694567165764030238348627412808654418574999715469663158280728651193511322690727183773173024975549317993539134526840263642538664368775730324777671245679770688924479571960391213230055328026218544241758452288143791326236792328267297346862253022189168493949528908922013252158086360707626883158533879278363208436467064929728188874277911278029493791352861800574590687029456271779995659667261856597774772439644299689404312766674400198533885773520004104922695099779428971073247889615395355866402674938534728952720487603264131715014787631316987863930895781591721549912786555974438166190579375257346121463403481129763522227377337734607875935234046989628839824277986224074949387385966217207003213878913637593052364728107726277653947498515538099287482226315012085103124029830300647263243426709683645673865472347628730487422297695416036651780338296168067376716655604575683048676275856658298436282790358401582925827292042000947449889472648769574497069042261284150969660295600203788555347721889288267748563653649752732559172487593664085351345459475321676542547417837114820262550029605040637430435969105177825271506804860413959989002124064175504041300085483891218680577585212017186116025194510730780541933551121428192024197821276703512718355963971812292553296133212443572181174165699321435459491063958310548268039370088931058050874751690108089386374582943066470151469542331482145293583488848882186447881832138871168577806243006347371055524981672598937320419617391392773509817986000018409821101331582722243739297988879536697998039609344443783485260175861949837938520475408482464240836040069707243532241104453304591604406532479774573087002959104068097045172611694816618068346979443899750798284514026898061426773361940415064646579604449134513318663234152735170246311754059871266723798267922588775065961873427450599858306436188869003744449728858069062714888503836288129994670081451960774766855375214005773214406775398957450993894827927958985334626379548816586286744807423646627996826537139334922741778825910299816463646476164780633058901439570116920823539703354669387901033398689333114494604883777741390023702933357955028062300165856867380405158506318010327675241481444453129301180264097735592408146815416506140071720113927662343339370377836565897807044121091943796853011343953763689019351361778674500355402925361071282804924287506373989752457181236857326922038244638244512267678702737926190707390537492984703162469690338204819242867928727468101559112634556891123735495979890048513136660896250922680492411871466300390854024846166516783088098220430661734862255925217662092046221844511862214040965026379092222601224831040730522110018802466741631811814381379799358152525541183512515610355592533521076072356395738298436602191404405853392963027189243550546717782682078286179399765251725416722494953992088832230808311649981546867578223096113750939344721808120952446620439214139325343009537480317907723318200789005192378290182801731702756655929674864750991734613769455300000198295780568217951807400631952774869611008415783025991937489640380423032299611465610605535764742289532492694240952935332559739034889711571216195136270932102655634616822794492772723709239529450910395654606969668289188588673229243742190970841069838165936040310207266185168457633850513889460868095825722647228889064669312721237752760802387358008192705931143875331458108137145826706030476347829004706252628274026125054016559580679521988552267734130987030202526827661636274222426670207864380604967847442370133075373126051857013111078109457766301496259542944299187980453634004311205834503457380233488278256819703144046413610443342546970706060110207574069362638761910843315099823919923931829656531582694644761752456439450917367698244348138643533479652329873121867156679326270956830939973005036351232792676921584531646747198306645157450436295342433959781036912616718020146376093709721869847925977556702517349964766952166083814055317107861925699774686429766739308649246140171895908509947005615861007578089240241663212121103818257497013675522752126705663181648601517270182229120574527002171411310856354260952498401976884179515275636751340797272492866850081495915802090316279334436918114162474554381029332925497243443074410662352171867515910787372056904666842125867011330840499828029961590002360625781589361001630323606013956120623131088639325958390362132005290196307035392285502135137454774808532917592352997042516717489711310732208895933040799173917685664016176205255545577184865391456149712151914873234884201556732501234294415605978556605102648547133620736705670827275014911936013979919929002257812050651222657582433027463714242635694151617884706957111892128409505470357314086527659833734945105254028011181683152050260947261007965739488421467094945527571053482072868778823331319527155439999198530957642443934051365375046599876806560185660643957510259969362132145531777681275723946923369959310781685083551702830358707937991896803414521457402533617516790364680168344846369104652999394449439477091200206304963496420725272139390936739323126039907630711708916631343697901006311829132244575096222972715986407688436306567840913516027759807217742310138561914279655670767812705020683469185475763914744232581212055486341807055758076872079379085444229198097325372016473714751573548800038436163505863743910569512534360517565729248878793102925658921830727427319978072244310026187202473621289529052256417750028775064363875107839945564759556216654542009084228906663130479111754908317960632815056639274123083644008788495408734409365608803215142752747337904903961882521421752215777176568604781168757745878309335599125404850355562397213976484341918102443037551264842788436210143122834366355686282591224707433363804892941435504281928679582211449295210146311643920362472190894728265886845623846085799420926358301308190349210207340282320824897038580744673785600983923594488169404486957915113203376587754505204872753318011091393829787041979891221499067989527586601136949079382501662447027097690649344732847925954471215494254646030453567914190462943487736213130652707511601958420762358522082286243888328150414943680247018323111548401157668385218952117839656532127715140527873897534350305216769621349893213811967651079788967965344750726290774281356356600580471669604339439003598307459261905820907176976804121782772646989082791025356282408282870767649912878881286206573961078515235721562566256885699001727665865348150187575427174381040787636250163534688478760810086606543508931090054403343991712965104508465314253405506334116981181738921858922839636624503690670009221738875312935797111320445481090382747435181278348937441793276617954393942035989693666956306420443695461607868906265734978799248749625624550431694479529391557991520898474029834387079212198682921368695272430893252738289246156047070778493100067653395641981586806076828435720489796106365785908486254335560220981426711261903238177927886972640342112991495603053582618932667796906674964957657184866506437692297845380873388488373629134302463328599370088632195228810900239867499747447373200032890958267448568641849439384004830124750029848380160141785378192800867472941943060467519439796890343709317841850142287844894189129403833298031397044312323129998593869332711216949402300426701105170661255017548915698050246270897880511399799425098333988623942523338722761282844668420428590457579327302781460238227296224572484675114979958749496141333505980708638311759270668318700425410277897056166631613564588204338535194097041715180824537751972201380326798515047157080702375854611686897586770748892610130693757292146069853066089630257749193795624124839434055726995668974301929901517601571514998557818168792790152440452131170791758189042616482726814368038582774786743747615382791414382162919377637126996249222343233102143411504555729724265639262512061923651227132291446018722492536852625011799115071651533512172663157681656678136492001653693207451280701419010492558565029184248398132981412814153809755554646942743206814303801290493242499178028378918738468025703586171052674277691012668192033487726602976579450300091304437480146865963164681355792740255781277990896397643822568425884252101698992766206612735338789507602497559514671721072893728613124218821153183471072523052227806894172153589335953201545837745489554622303362388661343511901596437815948946565196277767624333556260978293750819421491008738751918731559882072877213179477435321813049810782388555721680052968376000952387450365177813526037472076740092024658420974209519359820135481659684883908686599200238665257790663050077659012019746751821457362009700960526303418611317606641497314810543175872514786793142772228668543144113184493434891182903222688075791426690549968811954910564301127501603335378759076458859718211861958675619179793627424003967134738001940705333058751561870858117259517397224204722017648995823131212563818623234174482172458470466555276020244686350312706361767696309777925395538827150691151652442339914100583729464339114018473953232366920717598601078193739835833222313971978720286574504492408316877245735055077862616268558368497275237698491749147627949606900954531545667094898566642095245728240264066205510452980315252119025671954255921810463686222721496927259716436908130430509798190413862221338650614172728498827623728393275140663218715693635536639757233066790403524609779236248113179688760219445469392532306421359915608758563302701956177303016191014069482814904707313912588494316049920574645640281769110914308033839316442926752294327441869001369022367971770902594887225413429701958027500627606623508379666302103533552835436721110130367878415098296259824321118585936459372501584756329547527474085860344506470414073074851212427930279156060544708080734895635492800690377390798087650235367550007295365562209884165985024408458095898930910450370387786312379297664468259237422305640166161018202050238536300598955030627347028735476804640235190556588664623377867824322254558769904034243630718518120285650165224693454795907778476239688563230930638946386739172737126381444886527858411366657336780234585401926468646168181978347342665810083743257382480126713872853440318890978271124981084421303973418697240895059565667764213566785027381021987738316610374849238159875689473609373409596657088826231339061804081323180720344279319414227184325644216586227676509026011484991210061430246731556359226352572388220573374639079435093313199071099457522026673091791411042101702551129464869278554879650155911230617646383829598691064567051377398530355815805277664956487009055302397459166748481058924087437940005658467336737220843146738809221112120890745727496548900543309737323692521664077683797159732703952158306462356033712406153239130757796327445019999088364601503409520516213584080323909683238560580282772808909431358507939143527203107524560469464876925240798223091449099621006781138534856098189650506310668325007189347946579738329789572782096141109306787124594744037805598711452496246302571365334764228099368924665352701534783497383115376880341423193538029153504951757405566173158164355813636946159929673153271565411301218813337470555127417387693088961448028984678637946554973083454593929603043617601830758182426022492961551026556322675242933303659148223456136635664591699459003833664097173142711891081581557409648571920405702079356375730709472902133675637924490472886971870618176153799720013522530629865921473235132613914608845185381294158510067575018941581113444514204609706417384467283740387671813499373906863192336327143052624714260671552949842325210650508409134018584730671511679114449840030074824987042381490834080549440095600522217604673551367270294243057337865527460953842658176744626589795294654697978174418521561784437604554115318760766180825200666945980350142812326355534008214353118116379897408457988560773785086579994266962367018115660953494490013606534123034815521934777846082513085240166988186594550604502628771559530547421505816435764296615061206740525459473091409434266753882606649637016624462213068905473914608873144219647688670864885571184631993716319247671783572224549169312552708372737762078120255477710417451078301941593840845492141919806218132866430176499563027847863267336297925790845953114612843913750059168719589087139480851124531080987836099287295941742549267928352878163038239986237785074859745826997567742288050606950074680496042854362011369115377524790785867479894715182785247083698311831437806848374400661200821880519526234620366519094882109878564435296880206910844017889129482383264167939954329629130949232364204973037392740216976518955893167631313307702360759113579068077536421594311539435462643101962457416659470180522747046847806987052497467172942123172352632840198538860545454770146772855895194266705426142154191280240529384313050942172376671047944311434212806602298685031530608341486647124476936758028955549813771638872575171982638866256692233530212816588804101813232186332678829623263886709435110622449136067388918606883132551989375676508882297078207559695709150852324803183030820889219332565247899635425068582936902046372989651487689398996304480904516309996005061374986169602750972083154441972061176581801651066006579300451267846020320469858007415147856934742477915171976517254048044058735012560527045857113552425265352584936472499804392745059604871963844119186172643091516557706224473876072621998359683836174420874690434121370597366469158416647996566152631878200630856268673325430661459471123191135496428355119390684175226188790878753279497104314371454669239167476753768046951418372987617422342134078108735741071699801785494886790389563259056600411205702694899020996931462822526409940648115423593029767895193212831546570549050139557412145391005670791403467341452521645809944857066533497029208664919547350386973340646313944115904893820172230307325463316911197216159915619036012791785569967964792770217220224627525389739628565005396008430408971080961335282503233359368735229017177879226114656739016535562402348005659327898332554325134686423415300524659354025203753367568490998653063127089456991013880845019201744557387045982800656367318081473084767749569820809369761031098360234753877502060098111477516916444624853790179972412424513232803514451684480286795201828606548529395590077937029495850047595267205091290100040797872336265130401138719200593771785879689500197760008685863908954158105547839063922979813741058287131274325787070343997328533351766801372675180981967878358967937285469370543542440116176512181584634216811064393037121523997552894470761035231599156901674998226886537356780945583859841917526148109643310059787413837965373368899670262733831181628921173034465269090849508955471984925624529913942507785347305473020183855504059742710088997432007974567608074129551435143992650097694307070349149433817475712746551163110522701429514711883618073877901396245257048937779936650310657800272139764704956084199516896214502644491674194739525114705907094808772229890151848702806067433331005888826295338322944391946342884780537730275822691797762113609261132335057251916887186202594086277352325293458273992135161584778099721301452680799603019840079569291878423041001761271754885593089275877287014996117274339917604499070990016046213882422269338469742927044627696642118677740247303932575218732407558876825878957143022795462949582175723185610804262568549270027783723105104833840134434859444256734792554313224564329387625840669901841421685658705697805239590658127569855805303400508574910592361018668088270464170113257114387912784881932804615977811170176909213304509008567189383865815025488592104172854861659195116485620677258609010896242494132081645156440333473656209625546513882889282196394341599535862357730764883170791861293083993595800550189295866944699820087862145997496594185248277521505646272888810565981137833844527999880943679270558658868975994719431315639065296953491636344892553624374285655396320844472631212916870122174203953367674558262504539573157756442104578983799030076110983237820423194691806012674570983838865805432206934891417747045825957566849023967658104383346885807062003109758497739099439054625271166263505435164897803299026243142962897443972675269499482971055510827725850156730098705494505659065354692321918971261165508647731971539389409674223635835106789798591424989928752616211512207983300865277075418770040676417039909415591220674077501864539528501283831831804354024476644375821280779290240801402478944816230316688540552986513846656926041227667025775119944726689673330107777593149243206779464051776091233222269119230270218080293751400740409901083680803753946472563954022706119727458733223202266594087166940957897095897825805243834761994634300747163599916593511027378015195177493367191143848502195958212072060977204243248864340342255695019378302857362008874223762934248399769451871897353730261516927919040199437826867601820026663441340802139378515121213146771875342598967079009445637476150901412556250292862082697993565718927421909936933158082590400096571070517674620242451797744276564188475184715391771205836585766230461387026986514729733744616581239402348567438906024233251377318875765884816097877640440889581558866112612555136041748306450968885056503369563535549511029625360225466756326511410367632585050248507917852721336319477965260351949631097056353192125143718627134691719125977571736951574769013554175987078224027577151804550950893269209918061260633637341761900679171115774618643984465848328276903844160246409552295503602865508363434227551038044178892348923155925368302090156766223817269902101114353496608215015717341936467225529696576730262121217261861757081037347287385774522214963577680390604531260350597561056904271500184653125162624544262110034115188760167489109122649305191776110423629151379864561381968648191516678938309989667164137451826163333761262530591236730488278845802631949606739571641357952872588008502894435720691039134003460679246683094723457758406604024142550687090213106082129144711443470770088225715235093337752086748277997559968261714194214383976080084477583701520259838966460758245128558068903359524971932271250403710973998571222895591053644811678035829726904531988685447191843971895761334994589091324525240749913658791659272303284316151379031857142690071459624109034760635177220317058749468416322751113591596757815969226746763484731737025899059304610668673199910888994908852310242372070558902932361406318527474340050054472402571051901797235301055252567284816364191424309756087302039102232127130321018792735393930755669091820344573247509257256435242613701817151881659030433356945011386382105783006250237603980056386949503641269595360498510604763733376143390294909609954447957517535419024326007168438847584476440709830108850377357558118602850808987118247927504906491513749954935971394653855896829251960557868577270811200279856874941643100062446427887654336292218237557638273414495614712660329460296383736946844623898724661957266235626404798700871050206816809551967817390809408191961469991741133223465079332226478004113759212851866156794692215100591559984309916165971597056279841279334085611315746166452959453763685275479837405608771977405503158849334466289008936484213031518527370818756121799873823872131094900255058065031398407883968795780232308042131804430491626656526297272328620953230253469694248101316949324373113893049266120026966770332370081810145742213277792656593791193656523631713550019043233944237702305727106847398774775414691373500399388109840861631053597550013087506672908152918090167327500556610600508539879570283165714563602084342098825101950339852918767321644031124326067488375732417733253514271947369586912498266556776600528431313061488953048764455958168766177111870522007159259756767240964442756480771413938126810144716054824815120039803828877860936768853862237779472931051912447662266076231209971692822672250948217345035063448676379100259496171428640280256000918750292787980458271438641565395301848598471272549701654686435726949575166745780035116233119288935748954693044092479047917352704927604413421800567978606000440368911650816971157784437620967571275555706062394404757620313727203620777039927481385036001340649063561849579984125254044320081560157344610666648271848099868797245859140366170354769038753704344640463826872436395919831009344782418255419891584301813894088270172704820068535361592994268469191343045939349912482690946813373722986644964334916390404512028101167785260793763439601248621836972079287526075169138473994749638894267488442762519973725627131665291466604940905016752477668979006521168136094564220385419252658121671486696327523883133965251987912570973292658129061270735941313443824061122675994050726117218190854989374364776715858436119154978130663320658934081043795906156796371917752166948028531999523091935464098594421408298692982171446517941067046306291970965148428700252363433550509956139648930104889307704707652759729813492198063640621371464560919182375824587355460278762707187650058928826570469642719408794537385862670565994236910037179613106118657942178809526509571920340800473766429324662382903424027409230869915710964596740594759753920712802526824540168569836709170989443323692671638205022838406216351609145255805496780675158954447182567011881751866628748458431360232292551335901689843001726012305158717181108716447397173414722363686800627910594752204950134822806002947634813887382002505620755183105944134100180738102780378669578596505163740825597333001590239409796796731129210391005674196016605668067735010839363593532634094070934065965100532658570630462187927040740500780963996199928799632385128621235773662760728624797871315406436961147630004574586065053487172534789620026138877195184593763539504223852448201453889881978633104193516555247234420431595863169015907789942042520550275137623470245858728645645104024788073122256036049442496916327053642834280442431760173047395708579007204992131863516401469483430535320392982198884632718662939355491260298460222355212137295300239447852452993677484670356319645398879469591114042643584991313504505647905609061561684711803615163535670528850906465626070134906746697466846452623442495930238471988906673329859251020441547077739394577530663100866520071295041154462156572608068131481468073393688864042887578890950890038372673895817063595964978810771544407413451236804281657750697942869731635297114022402376959268981088059773301960829591347703489293521498585722430018922608774219560439134806444493749562997672938243151733537675301307060640047478728562308615762423584356603601897351062713510767537082036240156527222314640744466151879745669245572623161443818938828053297201798188964954050184441815983810197888369723247192829627843408082260699194038294363280551420251987984758487086941893369668160659991224069447744809179694252664711915153202020650392292927220545705571691783736782308845013472902302153989350960634604287553336294495448213498093123546400282913856703344845236404519662645873845584257584089293216204855106644748773362770866106207361548501601417107439107309840164659951683498307750563228666651346444416101518453537520257998141841040470442700900193871839053966696642292547961864352983739132383609999256883462370961262764205282191103207928686616958763586743572311317113901587294026787669394442146273778580039067826166617354937082119342570168921160026361201739016866079881776512837618761421230065524217231820392663974993763485743419189846575012154346522756740095711781586336052832914839232398010342923405033580526422677839942069914984892567875602685863313839785411572180579473042179432711655704733577601302077289049196065290438341912121106049960936256739663201743635256075264527888191920998725027971659478593956617851122426921597280922326616989771019873750281425966836546012433492262990573586935355090057497063712185877333279823634902562344683594998536162639254368331327664720366538724594831732225650263104751353807468390734488296779541025488470827442985444354309620246720580861981805745276418697360466699991179197307742596845167792581958906064388224542851155998970592984078216630554834045071324893989396957399553974449142218697112876325844128995981751722521875336206521911860704156233549084203197686166099873905962640492791496850007043802712726643480339726407731736617338740271936839797768240409362611422202451616316566235603296445147822149093559568019082476750453435397787047476511877481684464630294781337026975856093974565691630632265773956086377749806684618745314166592265405345942067758210483764914906884093216329611668039547959258791571301363772570006536111048924651901073784313097798248195280639833133015023063184867128431240831975251126252929323174213523289293631443835297556300110923059935978553665583959961659925374713968204712468945557611266510714538465236398487997906766378697315777226973610234775926336705076943867285674844913957873482290484552593958405546688665702370689124755527349649243437240881928892092098746200516236061921798776270830942644287462201909584567310678991017363001174498833651897861113666797188498666234993162380586656143108311299857126527487520153288928126313746594358896068372039487735217234514193288409541075059584866364949705075837919789890607029682112170391751752729038288433250265295348929521827144877997469657091122897594856440718751850773489330251795648324785845931026556742917941461078853818332327582031994548274999505922862763092707773254902304648985674723433658982037911386841930683631446695488515183380708159140876131393491709810620572161586507059318995679185412925549688231632942625929548224607611505802835935511397099181615412000297941815837061547119213058519654400664810698750159053560880165972578952801991787582694191224721775846809025025876884677765348618744182016496132327355395638289217900479213320905534362486763854742522617542646497496573240903782456679178476385276024482790723728468535986306264764345352224945315003807690637806773030343102758307182769071594309486273938821831031190005825635378736682277078488184923391603015590814060039509249763838501227916560831425730666339540109219716781969202666458302176781149441223760899215375648930717404854487924561718769240489171853743506078364097724614283015243258638534402746615411749884275706381849779128015210091528751397000179468265171106321181322054644790854748547962301415032686487746418921655482461946654683069295888001573400330538526996687509780488362642893848953605870598514858928324261996229895849900866658200210434488782209148346025878214482694755655402249712866951587022986594895568530432153970959811587258911739673943376700150734424799335569380213229906869199357835883198707334682264159358423814235710374414825631344780693126643398128195464097604378808554788857790594116156808444647991230779095098882029462153512491943753086465999946018365572178147572369532400288626619940827281470681075822317441805945970109857982573710259274911497700428438199227868866629741625461303402743069932526721768077279037794842488745347981047879958487011093921641607316849572634229197493715944325654764466406380633308901559752134449302652321403006561595149401038009328945501921643460316294880226392136935711321034673715772265147903865014471485770790495785453859754466171977432019488393048358988597131343533617133258117853613455710145457839541931701350405672802576219995209020234602120082420675920325640241861852205885426070410065686751289760793584482956050026225079106601548392483862709334725892774435345971098666177872583260111973455742120542457889001289217848925908612571226213713304246981185432242426988981955417193435589167115030091606774984978488088454795088138689040092620800846999412125169921019903567137048912693492753492308536005677167963946250808024548235942950074159456795536612673203944964629244342750321950849380420493423665638002307272584286794119385525746586880670558186795368044252629408899726622752409122546508362951447263121242787320753788193158725008468638088610424881838607907307053311987427497325745620936472020447374735023447504773202547075403189543079761377845757998492559118931091370146187048765101139824164422072316468851508393962842787109955016278145651983518111170826821166804305741109512609787200882988973592329806715263765498529355507196843013422666473538276180087278493661401323125520034131893606917416266959932436201547656291063707690280068893397617050906043880743383055433741983273700677743309602077150097570829933474025031458004462186932789839981837073860479152606482706353295274155618940143136370633736950377932485524599299093539856836801899115418934245033331468488410453522490596588570174507867335342435904446495925359016767034671493838248992101486942685218232065021573362366884884469170865277562192329071327752774406085707798310596304982748309113193310572414930009779691671573791389985050856025900022086125371590252149765497523723979379068650597568300696022164036768993758119212830069532538472999534461051031867202935700416442330823075686014476070969968585117671027767506941495879307328303198830996176589863642187342572865186093537548424625769534643843954708552412640082779518435731691349368502659638436458001266765659071041955921969748798024750138352029754507640090779056632235870559765255733103477617754486262637620746030599122459639802376653934584291024586048496260244464041200834277440212209517404387300949271013558512755195384974302058081860556422658702141299755490040836670054200328035351023773764479835104740758109713850304281826118924800482121566086945988802540065574246152487352848924918472760860498531947854289373234656591419285613809664439008103711479446413837551272858593456777360257889078475952474302896455555617146449722023696514581041038154704087169686542224077985802525488593421220287229321685226441266856161552017865622488806980383450329076848621604939913169036377795849813869586871209451551014070983832784419887756887714694828197041857126046801609222730856684995594071508852210350895594737139425736814077152651188028657092437084254694195021645884203780664489647933096089302674581311437000560947722529347043489027841071386695000536802130862619472682186247267919808025896485580905999657273275400593531845602109041874412537164400527328873230005097953654646613382908328025378315308325811703027827503226600010561527080998140459674394727250735272404737937950587579880539900228633055178956601583110548771879346955386921775446151950529830746923416988027545658512997493930915932637435194125331000371567962370903385633761779040612338705546748070430768744524867955053909795404050878290536339084570514830377501122362494024497703551410940714129985023701151006412069880564706602982803691469246689931712586407900383320291903225979223190120578260517927064248222354701613978998528466649682948551714373484062445732760381341299067255859252799467245454213237508326015874372050621624247241010859149648202198747275401905710272142174151669725148853062654073757463461178077875647111191435316936345484973757226565882647788968266203650116005517466567567322352013058733301277234598569303624349409794721577339064080129554545164785615771489166473564280804149416724310692163801293038943870438512450201742783852924500838840734276304913339991223370994648660771574102825834854996006786849415648816243941825124474739262892095295590685652625788299710207818352095534387752274291856742483737279904190032192027691891700087940118429681638042412293322885166775087421442613673391830201387125403465142677327435629347370833574559724569239940848438246226286744934393120862113773628151917160998877753448460088385352633994497444957220551564597633136136357607856224443997337808384835751002986790222588310669815182813114443499073955837569546302735587552464902690941492711990191900561502526770126685308199656745425410357645954634400928477285399121205199631915294014704435514807868276196944158828715804960683723225121402916929444941871487479071883512707343388174273328650737551294953180459700824838906201347050078542645147939536212602932929408924410893035052744876643320977137668963528985928872030327924326977032012846941896642467307259414922075474774344811569637520507984772121520924551887709143790239863736547694194157878941989746276129193913450041773786907638617916343684819875478502092128575835106418398405668998660141667058861631197930963417866118779436532854862032853643347091888457111402909084987498641147651850695731072209479575632641240207308328640549159497196982104024285174670761523324590748857134366997204847289394734876000305197957681051797947699921011239461203969397851094169713776271490972576014945916191908684400145674700854265100410335374158881090061744845770951051391997691534803343648057704540934445269169023918275244637907442281157846415598454993046823684857599347150277773231902586520579713368506658012352325632303507570545799209714650095164098191840024390918164398599988623399575668859497471456617945277886582668448278768286808140070749606303954515213404723639788656175921351564896108377284636217448315750398646509408391226096285451869294439358318725982172206470613405137140028096810322928499780485969574916687750395217723066865690574833024697812572800301709613891683113009633445486910064690026682284952465766809250348401491753137313422976897849914470736227388744494221832630508756404029409977237466565901971935297258635093781106902677398833525473973628881931420411110151675996306785505797494551888579468792298170405153135071273630166389360876423268253264910047104356285996172217648481214741894235657475387710939640191967668620479100108864300678597015938704782410038648098951444336986074413738396063054040947065503896991655338145166468319618000424598379139466114200483269000410013353784494138552070864013194182932772806724056854569793686312715830567356036342622379692054508147366080186758069020154369664708539543027520271481158816042515912834325705305879924547171386991630200520829251733223925390284564473500189433518292131949307640406463217370842357367821524767683066288143931672202866372511712622243572212251379652687844991211038134867127425888135301156657391118576808469247526456563177711221026588390076969206624746218029858505526886990001331533035378019999876013693206025052802421347077012296051598498492383462781733685998476306809200928744611475577959556373647608698448207896166923419806424214861963710735949770094315362730808997845038369088303632003241490038382979324100043488072205527636808407823222869229686212213757676875679931338453020684624386693068384636510712695613369921645387054978610989884745210973248280176990024166394969441258136038145088630652461873006726308584391471280070645662038689364157356638649389912836980951370067938052274961653115746818293089206783791645068547742393392493945595153534649100701582221958710624786486890001807771207914431656161105528558389565607512230485373580397473385678112847437801933322173192181026418603109340007966067025789065796479918302818440414313465321165365333617288572961819567083516074964839731714454418499527807652699145317260536675838364970601276716066485118170433865750583157955764424473116147464559536452395012953446805481393097492276133994828950784603576273225907829650084313578897715376568261594785936858856218634569470131277034426633901741520273874207193323948796488711773823054414888015996215471675523995424510377628526880156955184004548155099150293309835674743355945126220827304949741624219996041031232940191776142693036818013339418483066242634882542640456224300512184240568859347143735467812006477549967282092132014118073331191239634745764291845131513126700853771882385704738903756261516291578602029215048419663909518695153335427379579307784355621947813300798368286275177155569330012743998377848402371434519822168339617196252417696200148345643056540831330569008727341899740987995020391729103124538169570913927064405239880582561171781457381595279765017399062736021998219131165639788871058596359258593247006455017697994232150752377033627880463574010612117802075497562832893609220347888551228816959577224129437692060010073669329735792865379390713863237756472456330567540378533197937282335636092381044750658690776610527570683211173208981669217464173583516116940035699174301477692612208612910811966396694675858722185005023812905162871676894625379211918133913182302480820288166259186185273498068712443148350866131511759180562410315628400674056543733597831796044410117665623440240360557272252628246435112233932275888488077681964724078865725933200505340323579759537256486173518539429676052988523778022964834986377521202335284751554043776660057041350370607378761772148797536815507554385979663766424797981356477606064440948672694582947149852806953406820443974457196255307902556627664631810116855317340981606996050533949356494756851275149909558083891611925370131847566016336097969045723751469450460269080939595565372318703852404489547008828934307706043080825218077290643713248289663332450297102950053232089126320302578766485471976115329675425619637799236702151638003997303848338772323144403303310102284312551701674751487603414830484071835161585629943239953802793772372531728534582149857616996468900319979957943027702269008763422676298464531195806700439917669158233283037505038891601377483874581776845183433289789019050836251818877168751246058527816331655290291502504512220467485455184708410756048179253057951094296775077250904748598955579134115720148734117932202804514208374766593097695622572958256696190294452399701762166464637524475522203466183464282662742354746220289882211654094977802880872291056460101722518388770018391624695243181273479707803484229056189084823564160283049027936244079815983513345949829126685350291526301740223933991580423991864522432223928362772686146884884009631271837686421077207546887460636978926078147868253798658493248653648648523332458866129740489457152595467561466139667238051709092160746008624718223788807619895528603068130245928975365605277543530818372073904563837092797692012128570936107627056723312054144726905827590729016216059945991943005291959009649908971852401789599135007797578524667949616411950015401530369850664946094892590964952073088402224077529778913169043331854519313016391244262020229753963760581807250386473925013697377601638849901006920377105950978819338823051125591246160384471006726310860414299590257486680852141950077946683307731191228228624967791423939835773143517356774114246220086518653370640756481602059535238759062549152815776414459925897384423120592917026917623346814294914658140031793771253649130514364590442738453497883506086155895738190332740382908113122398201327232764213131947947270215115656590467598195138395901871679115303532472444354685208907032345433671346032598057186892305104536080974715738753863070550969461990596331151097044897349197452791623493188129578430200865684534912245917713589627814385298755972367494752269277780331837049129625624313719030122401771292215793795590038983702040304373082321824080099901221536569756120737270062285218303378498403563696799495720701627262569036089466195156259667105964984099879837433077537114534421325805208023137643801425656445637979856627326827824696336381864088465105356215183833463843362318507184509993275116395375040711782753751800294121655032220604935146857697460265628272220516475128265411147814199495402171182707741043597514581389269653174705098795513211110260116252153237804277524937547144518909595823297224796905402173424864869317026042850541918832792108142737993364991151059456391593017077288398439290784983940725894497772697298058505469108378274271143877212018798684911642788453905676253589158901573125323388295983588768036394771355769152766464901420203824729610578960459412966457092263827453289314346045240779164718931318726315171184424276147498089155339363755797464711768318119913587108957277794087364007906832116725914463856843405696361765496714015233636543502997852897747479470932616341756057259620015265610027419694700713545350785794640212215841496300483052762345939741185489603378260678182638025000418241900758340251376636736298909726902393671585521114505505617416232417419069573316234896873670305191423562167047561591556356955848990522105338028047351268945670050728013654839829094360089423327867666641267133345753121515963505899524672529627424328544625118687350128783048044858155297907669785482195605342675698005227372312069992944848963892028445232966229004101384555318169475968933076119591214395037310661751985299137661833586588608891587507448704071961524204071768658690994236921475146686845739607645796929059501210060265018536229285559670087188121413932900184230459768934514368449481083900534840912799237025091547741175672326269070408929348617309650802397224981340767547558871058086901710357035509006549802094427779586431471538793346759238699467804156972506426244352662824540670956800153039903312964197650509723815175098452738947814645614725451520003268711915927149436861460827356875681261062334377967848108742263608178493548144253691425021939985343786555596072751271386288847420945337243579706107069550462739475402552969153618262778412344507750486573958635113146323756608066914384415439304943716650551215666887324660287904234326765005791201591769199009447272373684775314551985570255835372636470373460855860228309816015227113450462814289841144757419755660359457322604539800717230569382815514711258144827367052954397812946781668844445277852259808306983891994432582320951286596325849039013332474793155314414227795478126309173854205791535686373064174972874322392475241100927855207398908149706051553927245973248304437018939334216452809706586031775454003847557350046303310099656837013710320111063387909610821456828222410273254036286327891090382405002839453568652676777260078936937080436967427042413245443805433878057638405571048751286082523147688616131416035443828070020041417743173788417186497182426862953793904321944420118213476970837391829901491729776746233372950619441381259610174716121091500773616737105035130478892462005493687622659867060816060406752046182577312157456280487004727466713952609840292835129400835841086524572622102121382084309363305749543548948242263582602184860397720486298089333247830777088355589520160920537681104037786195229567624929568099268111481397880508222146589259959747692379672303908835556701034579694456981572674778281875791442997537755034809156613603160317625238933608838450225204677954151793158799837837179893967004785753501180090146025906320776691758576839362281298439300647462140184383186269619227090918245616977770556732856878111915173286189154233417896457643474053630625937500246440836443273147549690879037078828520219523061087254643202476170888638454973110123076579417837191919976710041010223980548516656359926633591982943126299471359153413713275915874491360437900686685372894938799960226842174553005341009563090694056168349926209148082942514842933283994644252987615396292898565162779604196391278228953388963375422729245136294845963572595360151093716202458518348700677408390772062254380868342500135040622046687095461403333696461991573443976238969312640170855250224374499511148688877628072224592438303998764682515941482901260799791577416306846234689753906718038845134002973715819967582777553338727611993769829817091465605357675448640433253704355450158062557928951244273813307737366838899102413510585546333446286357014514976501768625101254251848546685598491438631650870086970378088074104843485691495765967301043249818374836842599987562500138334491934861188168913396562892434681934023521091714195925922521764783015652777900817619221322576165794342580493298122693729868980551994458251609330542229685723964231895702254354713026378106265372573373847134948956785158783389042933660436175940466601719044694466923713720995415037598716903610315554536694045087692426349419639721768334709165761200433614562130337083974099778187645653628409334695288791762481497893118747058315607789404654828588105203198974500011113263478439781966129296655424290107278819229843586302672891079242311762303735705608400090467767981913661006048765960394391755574076839950501844809181813131635043183874196644679651834768964506293013080147086761732639743734167059569167512372605241075174512455194559152347322113298289651483301203668349865976280915545474849231934779812692809197158210901291596542495548641073355498256939059879623069497175875516553759906998571823442772108791269313213851355248281638245621179905646363679291435740141665967836579403551940768283404397481151696565976467039915374007194592036738364050074872771641652814206182252749811176999434312551598055868679977242698458883822855075854655910273659354048414425424330419873768820685324243732831786494463309836110935906804569286984531645359352120977792066849434866523254127855330222554247104345680908053868080626974227957403632948604871033354429329616614998377892610314355959022383746959991599040762836645489811323905010010213234118192823210855415408848036760273130668280991559281909379999281785716316340564109220634613673326470950475322109612711023426110346275411078388599920438507192324893074651325740137670286306721320925835642164182606598495088182747659895973021466954755254219941702586202031129206513167103782629001327957951026658514788326506869638266819663843415647649874598219658600623379626367080575692968693275341614181524989410351972672979905853272538147876907923003591813870296592115619583028869684880208294253011381250562052330819299515637187845545048989508740490424471491354979323500238824367262891324865105746825457214002545503427926789110458722608831190246608689469148240621221160666070361768544736624503999499921171830651803110191009365650218373542509754838515511431568418487765771217211076815657065259237914757737472344481996775670654702378407873126945858834549030685251785513431360918574692886587876161171384844913381250063091983781221129000365002534049427923777800757789605424551204715744358587320841976403033771864023930148543788171618046796079993817774377622002789671609060828697652404643040444243874066163706992250061555728596860620027267910099848717388501902244303244892747413583531153978472100245918444227385748602996574903665483388662118106768447378490068899324998456213967862324680284947112883271730511090789529300964564533367841516060971028251584741702461448066957332809994079415956862218041505525803711955123289655853973742665360783073581994774943323472854523801845220021705298182811460558092353617656271841155107827636639926617442399925377946721451772882962858311376222895324364610910685790024064372898367852044712489657782225083205001651140240666633383233152183670261518053954045107123631018574488482750980781541387372909609580907720960901904483567993797470228231753679718662492340974291361966383228187656317878091494596146853207707626173050482406477709395684019563565467894136007610074273068409031285582884184373664335407096664063690023206101567356636753565110161811707822084217925234463404066398853322372578509214841518534419140588036484820629589854432585167886170521010120647128528832610162796545051052766315713175131004808357102375731379017290263734279970060270163740744065471159939565834995396679401710409736631780166076909669890924812973843563650087871808662435698126856853428095345216638798562872416649855974548314284669731463765148528373505526884413055965302389572683609926178272580748959509848738624047642742733651849267622976550088102133975283331953245337871419099976577315349983288985730430587614020911798203986457749994289097818234032315584355115351738241471266405414065693684219356249420744231603311258998988452877343667595821973661139545912853693921047519609952008836940890620282223914837427947475859639079101316710625839731130855140803629013019474782166120820819559217779008728475542537976144972384871687812018735793325324007712528801135067891589831090588676255100529233427054902228658725421360154416661740876482899628084822357078767211232920058365395172395653169698109083295597016120840361416795357582752777156650944877669879648724660582950980520518905946771320051898037974753556201290059987794101624357057357803953695344334569880039182973861816637186339063661439401767069842266213525989405667544497521303678591923368658951596394641048046333235811171326384225955871243416154694833172827113571040649761214870528912281567016049973734672506929135908775343788920944095238245667928218823986837236205743039509009382108545928703862984124359295922810655374730172611061348501751427328085209174321432358674702040038065935052288055246898026017238919834115860769849702558277297184079719295778950109383697955828938719176680608558469490447117748114986478798813920394581766625574048517351621682920126800156626846118042951304716018235074071848494710739928423908991369442727144843313166203019055667055060420447526739637886516467582422543084954345108418937707421369213551508297963089356777640302116643255252763069586873714202776417541835661866973656573910693776858731546715879273183359216129440938679285609116545399439895927937676977619855155243401705692877570027290546280350321563659452662374922469447949846890029123714956094066612558863839503271319250420447139189791551600391734595900991809496315923418984559987983725281681169110891798360223222935552461971357753838309611100566527244201608092876153453239291021880793297958152185668623273428381926301215057736747634567723431111268981949409669271342085145584539463111738435183244483143081652643240831617428910644221380313249000006294625453231229258527216568970530539257592480817454211396440585356046244839930294028646518087785728804846528383755847233285137455509394136203406427414922089195433632445890145553273753441778838755518533859345225698150895306945404378673736196996245405595832308433391629483510568026855319376977653804228712310629541520765527657463884179223646752668122459992355780955813317955212860279313848603222101981996428005273086689070171578730717417166939968303514687998570154649396264030046952060781501027868251833165448704660747367820544824408709513090637004454153357699205260233698346009967660427833549130114547758675166989074456972796565004219729647486468370242048978063862004851703922919822313508523222803013949203675102152327960883867911113951482916128982522108038320166473056692703371398151383083090599918100107864002164147145470134960720686502743998864429005968248062983112312336822461857661489404733092487396280804342178844819596129429905614764748009979258359719421650130069437750494160044295156360241592840380397103522830827939122088705704268056833833745423893329435032537250901764314048501006610913388383602158810261645855298002541992747589664025315013798816383724668409040810541931688410363407783163483395852033969346184101579976772405878656934481308454931170907020999998163341657709619785643171708735330048151675260117247134144539183099944148881683425130619425834047946431423535648717660365953558266833138792412112932359181963609949096174346458753162951638872599828206762518426637408446282389743461531722018803817110593144932070502539685878374696303899097625603022085585989476986634554174117576763950901281146900214994921642184139620066983288815430653969487857679291596869843149262102114996925424703475637811752372311344749143885074009954325140539466128998358375623796311616522452141612422643527619056399389537202287710348642365214926339215118397682863238112881701556853162383038502651510323564066075086785001116854333542486010771584097133970457336296615020968026368482356740970018326031728507382735725181477256641883385630109170423250088501327416365825092417485168856696320459501100697122442539910858305419456141980262081231251851358096968271324836636504664357251736275176306260108028664977684638668566651306411604473705814238643110434872353530566175948066174260050232037129362913149940122182515811216791507093197693281748700441731416478279878658321273647154365733710192741445392853689284914486740321834342141993880567889913113661049375702595177905456063847835565357848571999205949903504102549184150956311533902235204378022709281255794212771722728166686189255818333600532950505925624311442733651251380720310489506479681539368942235557689519122951345190952027267091007348843215643551468883893827789289228012756309917387082755491949503591962757892046997845223408130447055550189934936611968030991061196247229323103420909549032815863704050449507911645898598764324901978014367607667264900281085659100582357243623155185793875533067076069126262820034872062871418686365803154739063179282346205443291216428641514063007313264824640901504793192994125318555633829131910114751712761755369417045309651863173529693653640179488414467330220864031764402795856397174123631093959020929289050137061400206179820105181041902824541850171320792538241284314018484510583810953890096722874610499739603934916033594450021330505363607539387828734059965733896381205626366912524289180603491298368376381487430685000807246061431431524403704334663494829167510095920613392760986178722694167780593525374467962442308144950402316505704830044290642950401622770968254091416321480766831988072517319988675887350591854770384267921832612439104213195542340096845471934388656103645351847086096967205570260818668511350478098334651440622973201076271758414101045810491841404549065039320949883191085244328002663552552340524826236677902154225659415425282189216926292785796877191148390355595640492912055412695394190002310766573961930180784040598516232549212458174422225566200669648279573798232332537338323669731636751170993469453741572315821155317847570231275979107238891328065678092096882479829772414863051938361525246345826957914058925009482524630963770462247785069629899783310989396040177344382968690893938450296828866453245737448699342083501986116292885275845542735954244705201502018311516052158674373034141387495619841113316108455680616586606323119764053099321474237357504587579535178100423137383398304034000906271086045198596352710584164628245999981847282575770515959956712096945950195716143492161147960065063732363469213879060426851149123819904970337748679108985997121645926791270581850252120679636247119744304058936859729373217849838073745278208266330464293960385961975068432126469328031573236635340553870849922175486608360414133553350139458366534429305341818598052448865297408172546179696887906185867392377322211415696480246245423866810256842304195678950344720552925934054782841128759609876805879824127627065797313207368297011661692932773825884412063168793974828440846491618397712971650008353023245238911956627969446369019772381931949863609234894101503684394323603309925241271886280637040478841770029382374123120955200602401561483677374996880192029625503494227712375248905410130081723636456058742797542901325209608509411631223581278235311437867361316329240972910700918195881944739197138603346732206428410149177093210970240826409757807172865545753500043420241242992077363285262533188365607867619443496277419277149262916854609760845057249607804526267697290636983379118244689934911469807312355963829967598050438269453008846116143748551607922234554079752205791530099286987592533179063632334463852796429542548034563743530364622259116240586956256522521424944941606822966107611617669677495472153665820855844078332756306350483452729419789752731337550506239185777516328054872344293011341885529399362855749346681347334317949700339005987901868003841576923593127657221592657784482905983071168143897523965554484184914949862595233759482071037280432865378533427766916473923434095949939554556500615271705611423120180413007952123919689373774002854508604086037463416801749752596754956380231867019802461274243863908607963498229963844697605321872519192452896783154021119567128986275917260929320475113214566437154197404937060610601258383483764221869660501148254011445818014595655985502879333683669015404480559693531709358598626267658739978143157786417460212796744810031791612170278370669897856053988188159838441050506378124121801081451965267878143186895221452130484994867384247032451207044619503992347381785146683866817022836360283462866667658460600533048208713954303168174610643162442426635757337337791756373406325954714290077564935508171571006187677293337811302517922197816606124912236040023625635845381463042940534072539491939012137553343106727855318098876723356312791607066448551498226650591533713463753189468442981906755408114785730654523678831631647445439281729495224068311580199674270339984165414112008053428103241094716106813231340147532022800649209380516170226210036064133564635236361494238444325410138119250488487533937394994976390510077726829279991300435480938735679634635882227592791107478556937889784579351355752671941655049898011398090967278820785656077818532563129792759753435611740955128433839477920198499233414531885840199717008700594396449591860009170696840000266665718722507274447880250838406563320380961062138002509578660400327219420331828761089109434369502774282316807032067017247773126852774068720882074188085945874244049452217747548127655579294604093807626399269759158840212661006066248826568234658174708560195061848997167501404272594272809233868289052832279986623527629654290123905829861134875032314811353792579348888342972395308221986773391137776084258806326234665571593358410418599285905395855979248896307184654064884524215366878650893307941577610887649698091170646331787875213158587931409057718076109223215683530597529666925632884580713844159510598775195413121711077041325955538533345116646690417042163978762584783685636822116201441566764891313437128858605453768386686839728797820839031440119426722033743463974069508792239449514671975737130076546066488278581087681843491639728285965732120918579165232701336066130339435222655186393161463639322172895939910481297956665713535516446094920866457480195383854230403153119332770483606879548893394572878774416426495645562398133096621728381470525467863793802940181814186863879487775579868043448095833234014153023059551610762010426493277250905316741824193620201260780716994696228870841779246307509344412520172437908230603893819743363410998830210543505923160890255520963106620602389444867503844643833935610446173376731091053242694993760962280586957669111281291049573432350704502481964543965965633868281892992417791258796442927718903408095277928944622501183926979888375558840908994048747588466472662467297985786359547769536924084994417963038574108700930788938652828612928555155405218072059236989375216752865285980978803419183630840270917907209540878442063923969635418528879554903176481466530013240638705508082929476762683084136254921019705769944826113525665728135810902016137347052830836731333708070299505954167123498418166589499064177962626849576034550145138779498782224910338452320685742446847221251693823981986068465635205298081015975552112141651599808752448920583498860597046542199699323017760053886851472543553114486838480483183672675254519542126219613602294435944190740628820235181582707512970787451560646277970153180002181475393713217392323608291192562443169471379483806692322709706191526508624385372740053865305045556849230519587198215167518278297576339659251998800120354127151004005738849119215204023519879294152299042996354260387279566038361539903281739404713681805719861119592686923373902761519255936552902590650650965476910245682942683442851214161101914356038282061143260130374509771455732228232310034359298810499477771429287802243683413134349698807038092974139895465404488712663255799587619147603553029479154946428236244014007795257825376792250585093816206460556242717251814795077800077611606664320095604749343246465348371813565324780989141335785609270499374743273486451911101438623476264089855704692836365892310157371544923976345510683040030971510616469296664567875797473934150715342909779439096969604325811271924614980686975466930411012502561964978988379200112580250158562297782304917711456155070858763983151370809405406146699797461010802249944052742940976507976382741576793720388866595832746598032002930617287734653201972892139530026997477053261962265177379588224640043220515956472614559205497221577477948457342874198970039612139663212254605960479954989097962188051506549424122295401238709168008512648866497120595557210109045275965231200684934015516609484121155711194694591264685990369700340193920380682115784232457363905920724497545115078986351110779886263552908198617887449920242572835836935020101181782753886156007765591383301042972537254660318189194950437415806456516133212607303803299992476406897373254942129964578285797679144239181570899586917349527982275787192243466302503131999652334785154627481015672322363860962985109790755781500931650007493281523941310297222274247079701852304090831588172514202342578653887380973283091414986187987570633009660745629759135144770574293054985008713221672170917319626125442916050986118725707867444742201568133891226672368897656482460846575785501528531566342782407520488972857460603446337285194865941016535883195918300389554845572415938275941533512524001853811997122617485458404335296160396412061748703751884019489985155130320950671287586473507437421891926738505486723574845628032439558309176187784718888834445345028948511308787948813784111720359848952574193119290771811249245182046887574585494943335146097451701210632512701091925150387280549946360499426038271758659692340260467447646906345643727038101298747693057438820068526578477911766929820043353936285374261357034963146534116610534951844763329278233153717493329881093750801120048529055246635147753583030333382657073956121248176914627801245635720948634014995695317866649191541499461705817224685273728136729747210458349460442419296672214852014944349766988216171468102385936324094224994250295591869721808251819209080284154469658617243773071270980776797294429129601595874077156951061137148015551843206990123388059339641353539231947779664295626467436125823681963485821568221285166026599382288788051109497210388222350552754041778852611093349640626898232605636763192983876252680758903731139375352617185272241973675419410511783146434175166977134093888848114047032840595902833132402831984768094252688190548449261163046579136376570729731916820423587314690983263509151852004959841622158439815758664809999457863490746551446398246597460344532313794980791707111584902164247791366281189436865233667110422836545491622352144569023188873081605908876968757914883928624251491229109349108205214893723297609485332376817229666788236080877858905271281063204804075359630808055141837006273947275298215151713286341654976451958652479240807796275746319362951297028717417881008689049290168398425816514735410262869672877139818245872005508462684549812865274221759956617847031238729578875841829075511879995381843936850017716220410924122894001508681592826455724095591511155126564518991269726252896409241081720456914755451825076963457856083636786360102284165003905458582739513233711993117120486864925243565735733697269075170305702227992533325792833361159548040917669844698153088780895999824344625227768121821710888689286564452435120315261797278478919223299715239751882148041026362970929498673698850363051861875700678918533602338199835240389446768138090427951867183726979298249443785474877592883617090397543704556917223317376104778037085966511108899016940833483514084159909806353219404508553959814506270150566752330023227515521868526874464872100492628915713774690515962057119858713139910819469566818052879843212116074440645083716664238610842407453043200520896886269168685500547560448233895268801864458964700381407007698617159342912532199822996982283597110532119802025218557965914361681323304873473148618173285057916984364046407770122387801223626564635425271710330751838234485983317655489446534254010495179725079232742015328134862510179792384713064176611655369895799989617186815305938999190331033916420411257726452073756396885918824521616953129836280989481800499989511974926108153932856030219269546651265082117675850058678511619957013436268266878134060388103198702195060781313514171247994779721169896307333933398542875224092396882476665440578435231369353522593752499495799045084883491075969408066247350377332822160225305660866588023635816729938592915143154467115487799058433927356785917672730554636210247127857963538002853093231197717774867712696468675017788337357056820545590590131869143497506465676387873327021294853136440006244116349897934250943677849668727769292281420446932719478179307672353052714106585272035376999568664863062112380500103940236653624399044498627126026844831790797206773145523029239442539086318220248226314881271239035101449009366379830752249914334590805764899535666193007580736562410134526299475484444989962848847949545614932061341831155149093299613016973786226544735596550154772180029806474900164435401031213072294803072961822216514497674403238115159367473833438616628960364649621241506051625626332862084839044150700546401562621085516947893774276633029660752589021244104489135734020873956822065771933118939522816209784622325633476213333005472764852998984399028884468577864925762401977162931508834353560576031433543451406759485292618023179526861691961151858995981335061575321584207842517184337434317825920695781957442582427401371710305235449962098500009947916874519337543198346582002951020998552502144964091597886466121305771179590103589864928764213356688621849129281764261209954185695027652104777122008893273061483577734790139394689422986718366216927594061820802911034179892667312603338326264204630368647928516430126876581409352914500792186254587216793750316074486590409796547859098185043669542912892146743374397018490990787651286688806061729382257565803142142044110911566594472166750208475274554445220120576858246098117584548272686096103174412014050369796020744315677736105640040544498010683548779683497192102290356285581894926249883282425942620306773546969713771592634205522366889306346660492344268376648600127915213494208820126877673677967567193893292214691716869227027532095965779609836006487400125980923503657167331791634819984161694546615169369317231822929887284949546738450188110615339086332692670026263729540288886630515173448538078798238224897809048978978574525846984046719534709352479354233527771069249398459839931321155662850556394759482173763105087190351870867920159411149798394162503386965577929055200034633540721290895018179425245346166022005816068896540909225534347159624338839746029892616803593481976849764611124350038964831180240437663588193732150465141515653763865106721186046920119546771982155412148748227632920989490984572914644538359177260838613101853501555315819178777468753039049613875762004754511040343731291439535239115597265572822511225145513185692036360716965245321924635515408424620629901984311085285662289497444609456691730776116350917119375240601931551891234543804435068667073363216096329343418385912986832114849816391390687557128371737579161356097904052172302136499791696400175801320563770281760918520030001423011016587391302243727738668787513746943762964581972657461972637213401098949450205709383330291216997594404926387384714128267450776217244109697047450176359209205307616289270844412927272398225809424952072388955546881454233811916111273272381532632793705290123176604529362905594404428544725572970309635538250447751866580455150116568657030783563295189950639034313138248916039962937303675636172864560838701186246935416444530008323832394068195880468416766758883685879388462279363671303247961682112018229926270758711945821131434925084982414751469617523349168337315303572501835939540625263350202933669036587995348821542972507068735934073443539585924141416594985295212030983622250154313646182807481110115366965956075554628586129204890210169948122887178478725615891208215022854688134857347086058607307232567522741672687547781587970167769771279045486885805262670699096750746517077843785440909602338619670245550238111930587551366230647677345032562400823016412046682855452499446505088975794949167536869287514958610706319383153736126042095964725113005984166352399578907845101820761577992752546282545673973308543153182370486529447095496553687824575589856801511814735585242392820784639897687682415819015531369969088712066753958767766058320048202766518598159386187551396506559633994615541039676345669441093864110556518047735017457136389740263447556680430917424918743696617434717457198961991307872266872683053129804075443864864665277675905928604444563462822296840649401633150513468285869818495563543713046952826087074773108685953863681511979556144090650230024548028328909458180603152492517491511097514676541198127424858322224501216239181288394852519727219306425418039368582738101209372554444982692378812893415028966396534304867433945957492100065566241229483432102200130345210986291850141285820847406941378493090806980419116676995724376718669151976002528914789550358198551436322462225860973646044105957213571363961450183275747359057576715213371920734583878927907999534072115432137009640880769133221080381349837741831579586703618858024177268743983160463223792501919391645565018115118393652202312932083652081563894381018879906036430684304711260837997336287226878452100073593764600077454202762855683337854447060702647246918516393531119943451731563990513110987676182982138846692288439658974490877243165557989976459498414868192783912693912994522760690232187505584091130250664167184279334062173226440422767465557365106698337397593054821178060927017832978273030050794613180744117708559745736916081782224780656377068958718202728424127316234770632417811279237688437044533394017937065906305671860030597571511004616059348592165044462618059252001616270714857564851528787837340481814886856668913757775502876921587703690747185833483183282618902124881116118713715598017416605810854103956024925276436360676507074280297402209091572531830678944855760383450179884414569639663794213157533566397428164154567221670833901282866565704765844303224180103445669908415012377763490463347171838248115171695380307127114722871908785288697800381269579398287164267733401191333478993256723806839075201232052056882608264293249988447584051481824736538584818661551120768757340276524285860880824453940018686688715976501846848441222304896176212600395448721143337782303987919610365810593514072133460218980625862033552754438417723264715856917693071942156726504925543230319222279883710230207466557361211125249467527145824030838829537789820925080835880027476948088980447066592278578320609158835308338258805463438057420142498722173667819030403387441839387294601713384367000344242901977913978817646199261975023466959640602868716070952964435522314223772368591954275161151312442426074760737839363556471760636633435406948044006839619667053320902384110174547282114980772663904159283657210195352919180134167294655713034303739102502585570702499680842472426358592104931382100473727315730667300963782790741444964175674175246434499481755453834462547664084480030059237311793554215948452663466753436192411425089278342014795098632902361904763948027456800208736946774833444895462455005521281389742578490207054760411615237605815600046553518228009317593302461279564713194038824142407950007577619902851365488680972027062118626692283093986680639670581897145672730793847873844838596099714103674148403460805538849180012400596797430905941317246265352947056157059807644993719358515823609370796952559098002487137352580029770593058581229270007881638968764014816528528007169186674322203719962608777515294671052459576122986941062530446446020827205238613277646088433170522648915285977048677008387035141138306604454261243601019507414461960005471082553371350359672156648732249650363233551942069717620357303735448916002059543742427642792778698060862646748849216941150277540521096325555834428505415593338114283999795076745177813495202487814688279989076786440142666934936850715915248279014258677015647078424316189340589361410339524575143849084649260059457117499976215153895805942036186766223658846039223574730749051808799668887998345250061734654277475970367103153198418837070275107160860337468257692633378693734061557619824149165906461937647287140891710733880884370731387940925021809608053227357130179536187173470760823413338879317067536243441047718976261644915417818099296039627997259199091264392955084627893175886062394939609560772654050110445966040995875982562412984817462884632561065327454447164001966823487589696749649922289863966896075458086079262716420128431219527690181371426518731877547798862717787063722794716518633056216738601705241747315688993278691190425135955822884023956515333957194006377101164688682371938996234026537099725762433614460458304816376998531418365271555362241180857159673401537268402790181284630022946109013613469881893238444830315827601939978023056192261587981517245998408630286209645280223328277596266326144380686816152258415680301082986307432984371031543144229154587626911655626583172914972513431102908749259157040526098319081256908087889286177152018459311858664439401150330052123570286610514691240400806528360415222891282771912026269179880178758459707054198947845166219509883545460914411500688885885817044604590943581840622585196255575580588086420315750246706401251882975919738359271002769658399429573338785436100788846195568033189537258437523797861756135040793875966321810373396529761874679442402158210601749594365191463635754253394130617024745444192017271121249041971620724127671571088024892000563241573292920581541632419046599942114166613521038988282350881976011189641078450964907121270057762588718739334225959788303036889232057271083176233878067788248786249118659687315374924686962311351561439828377128528338386443373838566625312419673503603366246239227861622698313620916620998055898888451191946815894712783902478978236672258082408906174347009909990126983822130860550538137901716781320349288548706815232221939157904248436159093728665092539534587104420294611530314579519137351866812818720273209619415763994004814392724923798881177512660760566446211727153713802921060892170676501981618285157901957324109209619396481989127480931507039376550576140600491207659559040303173383654241427111213420746728946409952929573080275593186070527081245886130495527450386223416017027573667117058212541462543621772057286731768475832986419353859099795785262159086508175299083726541796265136853123592634750525844665668272681046981451273795390449548443830357702867018825320570166435580162572726934951827718788835533596568567525047361328495210620136009559016295241688135716924174768197743959954331605718430446936703963510564233554099210055943118029981404466499605255835417563791581840281781685063849838558618339006235918149904140622580614315482358338816861965944946188605456365620728249814052133780122887486779930996168105747042283819604903630858541428387934983971853273465709074419331030682907748476597612347403009252675014305872922447045774932990190741584611560628302399657938098661109801244026413104026966746654340437792181821020801705330923818633968283071403809124541488478819508140399335109054237901952164782700078167525381597100400378946794318992232892839275703044624082686106390240388048720321924379272694422821000188385664986751335766212892706615236692759237980881386675115586145435787941318715864445528763839795821763274780104787736007160739137856962644095948385529546185295731762706511597393689206614612574061874643116212607199367463860241172883258142509425883610976460824090471235347717452917164177717993476312029951324846191385638714708391261224139470073521462488729303196880534579575149204401977019162545364828753355485072589553143722779763170256007829939652224192025025524922964769717729840141658252605742877606958230658620877210530789082502288530577541541544881503308996369998062719168723135353183927041240980044520905047217339569480455724199548585331826264415349498040864527495820503965456092615240176554861846903778219370415244102703472726185045414716631771017193739383989124232555625671696502574067253785379205006116490216741355186308580070078495790833149945307003750882400399278212476612329960475243213045198495714884487551997503605379629240464637967666391288234895755910846908037438394115651142487715444134039119660310300364617610395985653711168494463356458420625428469542089648288600486482569773799879589702992643141436710982951880833370044670178476364146566151568962978846525440849692348490484170062913986127822037840690514699899840244555508470211642014911208030568667439950013487910250509857991881046047166712172591958849594195822898514259625890728218065201978647425431019981916367789426107693349471242942574523230762138634385401405362003078914976856033124564331797985962574200988143568792536333109587477760372112659491934379678154643244609148301832298464226496125365516249528774589817346169594879191449516959374473876599708234612022355867557025925513800247592348397720794504663500318923151522967240668816760995549696275729180941936140222674182727193186861266050114219556818219594049020968167867662581755469244704824978024341067190751740162418326720941465263831927108245596240681472815498987071700844467284019058314046921581727788686182261075310204374874650693112759659855404637308362165756964209328740405937961086621349678802218939586769533031501849348469813769689278500781490024411971401636802145496245752053202254171455682084705459411044234753403824724100499229640106360516597936227270302630670412816714849501557285073633717011678823677519448182688703035298110735091578458891208902005934883102847921134564714701600855820013718892543357965898943471203764817319471151650484032241878068686375184114970676944014794960717960868467657692697974902392901518285740781755658664728390231249642731421862266421567280536440309939884893943535520533165696834497957882165811030783982174066526499757242471366729352108552556632534213114702706562420544946098738851504025471364160833810981726581593017106779259777494033378551206525891459359332790425771834932772987295378513210437461714190997184469030742079686020881639585757284154519994531823365738634564727672807309176298763004431665847944168305096307487986183622385914351645726875989171225537791164814646086297661964503059080366441927364117193916913983396253744398069177535112634317802320887185459669901970355431687006071463583482820186434979030883411909952953954624868840426307547816076724945655989768862432445706032345447745440870652619881366255534682216950193548495310530037003020388448886785369458294458905293241184730209389332427433846390016728022098442147994055764886200458502269643469209844508818684371156382305164312156889147867897863283749277750679168827283139985904238911034438245915683306097059993817541036932581671419605356743009789570750556328012969683200779918142746954849930193966836692278205213507744864741811983070466562228954203217310761162535995562541849497222532328697838789065792700436410669281504693943158194335725725463761630059678923717760915447389708432925222176007341448754586257503323253813129173395679513268608029711261828295999137448846573395684798438752914816078694866607411994435188342025437007471010593016054139716962276221828976587342356977879103856036011945657678434624992497668792850405254788171690753444677256154466408529416096725465797273713777580975866189200728382176393585365866717994499694577018609443448931517102464377799137327928680513739851259185625102465610350461719475507910025332878595726042699496925495455774763414847714468195582532173002134628885587703311145220177147375229865369784903388536657883389117515974783533594815441473670351405131974279489513999025026570395127106403211678806864905652732983320274992668984666876505423912605736692366943753380106260984399371739378782517304462710064762663201024886100712459151656060765368926678828931386263105578548227708466307629590653782172871237968023948817727019739596926945243461971522826311982177455569002591635948111720478299264902369588668822663985410747410661935040513561412194930171691184761578366019092857749631150973643761051013253995316554656266408167194285897626990517995794145038468078764807676173711471281493334281419733614481945650226091231280913061236793765653184122877638872415102669899928951034329165351412212457248627191738309855507131348185463655114051504726633607538257478777056163019979438250067650834405854047785294266266478773078040152018533823556948718132815592093887353399538205650033285632132241272113554153686296378980304737082325593881626277475282654060902680128239255251095547650897214252569632603687123180056886548661903013333638043269794121647785959315788448573513993235727217933535286253489722952026941600316032108429198248456928293236182683727814881971151086873767454332009635016202805483971618937512644447107373481759320827352726481892720953282501393423676334207143995563786064545044601612387328736072827845002252505425780853462641282737766787103414565489598269606662444220335984210738850309043826927786704644415759632327072791034579067551706458737274807585067593548701002678692393440651623026995893060010989625274658032592232681166536423019533599264387648765894785893893421909628435149227579183993297220833162099300808278829452442670014195961966287373275045127729142325195378378328584295244328305825567318515534027995707953107216728648716108670536327017517439372986715116911110110371007356385178491608991465791165210241865795076013989885489246240442955460013530275269290274688612717728295944082258077837071688428676118167053040343980926478472494452257088485962801911689000657649253039047186387567293568758825232994941837325716569205157031663289256816677536729315909114422498218018288985067525320134545661686752030788872618098564613539412584219283062298488153087955608839371961638617917753712159409913903569725490404049366375559698890452428836325512879680010435319603923620376581236309511449610053829109065522951818799108619190910769497957821533022614194441527664720308020396593426665754731181099745052791213463038108509756299183870904563643751337021118447440732133427563559244930296514021438364359122653475182377534433752763913161643126142902467515116333146478338851555339171063101821411654328882749565723644860675276311657867195671830844857187226412465317579983753857060639007488981997845409503765546020110648273281786082512713975491768130365803931124862321732548294208510687762881503643298236150471671042898448714678828482747200872353940423681490804313154236619494102334695305421734442410741508197451605229186416611603433812602337400892087009136498406979082520884067124596447202426987152504232923618667350605777415354242610588258850320801015303100654357471508032705825224883892176228784898462126556812776086633357999232525299030879632917906059058940092643042378240782535830416860570749467344075100335937510742463499282936454707402799532439535887977011290769400903222582120119580931758496721060155590424765656475625527501119318199638358228914827314616618907513763125023445329425092465356388187401632331672632764998297946333211443444758590095919852263279035879257899152306013044077495600479822671600826593823792281911754940501139154290095977120572222539455504272502228233317513077706331262176134261260639825190935213928132086731836335923031491724540071133329689884704556819311772210633568426137245516538307538525008907963405593147476859515345052035096994247520367765779758742602706951544249985013674957769254999297715650270480796415884881315754533717359604720002537377661066706097162752397849421173530416403789458432263440582084405224596625428644848516700850681556589126602075736656229335510405658820725348083967273075260577963457995490646778732331994169811291250230475905127713931426593446219414595011860133990289242650512756070504701592762060083499522645002715205894809037305384841341526498481887867682286694861913602928936435915204711747654033462968563063912415030240889712339230222801423302029826329802244011814790843166162111403992611664003960373719752618087147946678019884982356894930306473651552116898899856584308495509645513580454036392028730455829800295666193540764614961405597788543354225173589877976506154611886926060479074214982715586991671899031138147624395470247786105634093123990666730685721075819489366192538425519998127685581647720613209696221827014974656071972673015867059610670781775489042039425771711056034326540912075963507018704410514639810263046177287292575496964106779980360719447205743588110675820752288486929265437370036188377477701402751851592479083295533117510075443418312318058010635738596948766816838553320640726891305610294943225286760267506015165274803158709183498018325590110084575786111017670138693491736059467519504243879954519173742642091898826159761282755416890499181511879536555173071197028359042691346255613001915995639459330863881934682048292410182019874501098933364187124098131929748409506853486944349498436678957234149427174621399091343916069459184257437499958765405801786592016462945545364984170160700853301995570038854485190947872862948170637269768909718631745555661233611464849947796417574243804502178924389554187882267264144992509604160441887261575194655108130631053589473935134638594333912097794762955332338404832123267208549740557312037376691435461308315674662484667953921124521996410910966881550602427311616155101864796626006007707852972294537853230922595229854693462049936725006958757877940217331653393347769464295050413856482843307941465439079163564044129506425055041704792193783358732898217969304870924406300582386542480599315710595788922999810491378375700617929131632098465203224742087235138612148365509346974948960191910374439426319274406794374204551757271770372676394508492605743772330782884145912221072900366745669811128335805130582283148684742461695327491513280295737299325764266888006384297920228766655142680878759475971067117859560501193316974848760645763284098153792679740993096356764684098894293597998138141373242401361330779915371026105551996529311105422470290560682714578570462166074865462266822949674234124500449717870117717157259800210806206504223870986110565996101688484238459976529581265366748484266167355276573595515707077929137594583552515037481226083490530805351769540111245039837329897273413427729711021901188949064389195288491712513773035750518507212698402411225234906647393633722620121554175436733654988674642944809172636069513435327969464244384910401717311124708127564062463749721033305244252184289060580147534054715810543809928025211917292865412608532624765197761283118108373684124747876772491848742003341948175668739498143419297866994099185852387622398366044433173884032640518351533009884876762917028643678566423599091467839100692120506691445381271313406203731661706816868067046700491813892524286826997973342630824381343905213179903996574647850635443082405404692775932673439267985731756203906292848803623208904264765625919707554193842305081992950330924394612394860843726414688538700723239634751053898589321997032440486361637146440765867300721852785757638833765869869909900467507174533176347141037369951343750516241031313699651244287896535570639743638414176914967169917890073317297171137113545828847790504498775623042060512015131479056495795504124418324033903306369516674427562556521478096809915022418555481863849572980181143916840194649078456010552079432628077993092590770233350168668100257541712700398486982255260121871418913873887420497352602351833310024986993004309186639079052882526362914351309458150268573085265124922207610543716194386374988138969231617447673858206501021744708487108437941542423519026121638618194934883745298592554562587455110302360596190827019400759071069465023221714651033660820581504774075526232593244757239372928493299756597942543191059256788379299555286380266068105741045765279865182308634430401448712119115257774043501872344830929907655308926830606845492914070024386791771084334368788657582807323697145572125024059095301487516020776857543667720931346066129688320146225038851324996467745496471594994976119367841610796420200961993728773965917136846618068568579432654108660794159410566126079886225926103284398407249017036295002096738464523598817479572981986468958631299489040248449476492097628653806246494870022482002527737598049372179973725664637900358925345327991846906611338736837060813938080051340674879743043927110903170763120987665169248250783962553831045545287374151851403651644013980538777052011195145846306943263915893718201197905854165471528991485102898855054201424307307515635858956750066029135856928057742908851616248893304744829013533541674866294285101138167956874903177866126799298557159731114245558213852013999017509673860656479519116490476939441056206519290002394181704585266491070981432836335600602889463070286121135060547884888933555330136703068991428438016994186041077594776998585167265624185248855817914422413629110825363659290367356888955054639493257416939644969956193209995415179282007962301297703811098637312982332594519173672270178834861112561900471010620895984345001459511456085425711609008867233953400438300004202451822131923339743235283808461985728330625694766749740577509572466111900230909370742076824176270999105458317739472387120539777526506690440627398753174311850606593194963872648618792622694708804602780216711044685084827104998772084860515794407448029275813101428585621621711210281696144264606257464760077582652673371289055869074127390618158560977785497686405161569708724490160936799756954392120196402607986119065885879594014876476271334769756857983770385517049864388567373233005446658180585639011015269305066004134926502807936201888083222249575655991077626766778741883482995816365238389462699067858763874754085302117532502589770860313965671200997119317105321595816389203971917905623167496026986493526804569198418208710070538453539149439549404746101935602708438972696714560838266548381053893668170190202926036267367170156696942645553332002971235954748723769079771665613081470901513272343757972283211979353069512884423312810372986835499699451310044344435338565633109659041066693145450521682878995238168570186589819697201164289999978140259027656138154384424788999049821034267504262143509661739303670611980698935626328051360454937068410068217906313442166359260266174942537867827234325635226192527880603727817960043332845400273490806343628371014384056458686522636845815959338714929521663755940040861298007200638242303426810631823339909952196915881471871796253191506983309561451173323426686485448476015260075141432309009342024159392206620339762782388993602013701068864809685691449843640541968977705194258212318158597466869265765769047235266000184366085595320244894246501281541263662045959729868068162018155636370094426883599267686452773936002930188853322373885780311852665881388240739267890352512617015924398173190051511240626184897730472120749550653081441423712278600002889000085427261970241020664124303033189710439028186683461784249810063818320704566819069042341993884501804519129470841723676741863303781014405718976788149287295741138534308434562014277273056477076679827256432518686440810858400555348817580182695630763881215685831860523560153687278779460336110113402854835970059147790850346948830668638142840903151709363340541455588996575856741455464459861317550736979856199992943669200062511175073389320760664199521762373410951329863796434656992639135723106518668837268566390950728137594039467967268653007243061650810951584175700625066781078054731987906935341148765609558896986493056895354551126943326453013425685324256337979408395521325411155988009763091917451384653236584252058722814603940666430877011889198294732211357312259382065906354669063797235709237953596948716718177336315717649078139467894935314746348817197362001304464320735926866528288592791783459859744673359895865278578765391530434402678779042072009234114516495589970911704317872708321813816410365002903743086147938977115964786465876844784180476524904515767302474522658816086801615602154569071660164433946740090902157972717200330798114024316132892874216225498199958810157223177350997705056024731895650059352020101556054145287910521838078962805465700378854800495765138115397848378159228486969699998934915708090260202188880439992524737746492941229323266853589541696984903702298761948759700694747504354128053563226150680093852725217120824165227037883447566512441736628047309431005652450318542184246090376886182043736391988698257212041483559737021127498442182155643259520102021809117051408368654188481624999811531385201294631307516286269811840780752211898481871035302709283967367464304558438536780235182454641250845771035207719371949696538479950912495834801430908550655586169600603897856570924290616784676748747347981575139889447885480534347066484427685896092904508935491865865665822181955348447387471296693587866305115408162926164939015037836877534318903894903160854966788176148607398072341395102265424422509538329634263233354088857649434941243975345691338487256638960789592331883325724073695533273505798650196486468469502953937709585623219198191400355941662250226177303622582206387362117180637801436747151880232066493309470415570736382786938647972648756986289151645715651153337335041677852017890665048854279464743548205536963616604288841632034101457279220496009073120017697365294352282565981264463309585878382628289463102409653739693093755491384124768662500193344886761376437607499710468739541138062291842377714320605063087139790408694344157454652913109714800367066806568416550768324418977888107384305232474201066229397716381043515340091130643997116439279527780529505463908448799356134590171182964135803743785794446172862780280683929468132901890692447610198241424270267339029257971106571483563607765093239641949377270616988817581665638948520496488843313855090441060877855434952630152123883568432200973698899580638249600091650486728713486573416434424800481091739192020501509983359531414394926459769449554367147210342720508536308858831278054924654895259102315594377526454792553756821080298855412566161508458801013526702496259182079339181199996883598303120151559963847713994673166253379187434449445120533272149021142620086284252799181822746018125963885206830881848758605847247970669350079119245583616753105850330051604862717240563950119654737808111838616300130014958503835085620579262024027691132409040315259298314935025158999356978996930884694197717549120583247506902194897107808748528717118207170839784182305203531259280256216346810194109622368941740079966167677830101317136237268689100368490143411440594663816530841087563972581901937327029371334682408851763319911696973629756150319006218108440131708643026420667148000629343568283239395156633018986784373382320123259459559634988870333011525828144032129791745470968717657904614329342284604789599053308071181522058443359552922224272565807818889320277027296234447243324937148899589141827063399598562681931909626501725701381158996995899046283862364145156835441851315719596932274274867848565584700478283038658354764607858843129768151121015699342126770896875918157853199293298027786425786746023125601646322571415635985929003470665244255544741986587771961230194636162292263349465019301213173030236917714522505320363428460257958988690854727431684343495443110514243277044980218123161912623719989112252239451139733296723474885300802202847424894051837793798914947915901796720760434966888227269856744844859352611814244739553658312581234444380507107101211764726935323902842817823298256171441766538870217139009492694452117432548444499107435678104747472116853980693344473842522870899726205488980277674109147013891578188203582131843324803234163859011512093585760353669588264252987696159766677519270658918284836068397319331734510749662710923251551132910937989560932084894082219128056647223542059847389766655520050506506310784970330590004485841425240529992095900014857278202036587694891650168241926845766844221790456325747367404762737857870589130478285241299113673125761261606730527119784271246601348886938638305098244095303418151766178673072725969698785237680941083452881086916130042401838963310598738326659206060838585548961500884959682087082617556117470778877343029231014488487852668706695569647487166162322412258820101927030463811363903327423578290806571813331170830062471919557698514137456845721000015845231538353889286352924336351231419629636738995582932111130977919664714681140702028667087312909869755031515350154169448822463962466647631389238194098194773857170081596720837141515622775343958722517967727167539805303346868249709301736722720114007721067711013729540639314294675879656136259346088804912228912723480304793533319271221196694786158170925969278011415917537101690095559496921498078092995787123266826004879916934349209066104804544909655263492585691182614713662999671179629085500029446920190105083649785589820273879805563359024823345460605319800282747104910817727190379819944394367785530607173453696592146619930934151076105593524625358006013570250501214302700905382813020068826750206586803097532227445610216662383629613590563448134884286799774158327679903213539337739296642802409347879245152874158322036490492279097811417947588305965745537332637682484246002617573782054590469079499472890777749489762086457491536711939988225903968213296063336950575583900414174225554094167892341138439554651562348264884033889599244865360369621908585989926663939320916293527841979819520810766268605422162845251817207729733218989013340255683284832218613357367118201789195770136232154958609813450209735328017069505580588312903078920553544320809798841687278206933214387097470920902440532419900117384842042835398803215746978352260939566974942858959441703645582939385900622067645687617944694140128438989337732330083905474159784311997725460147860979573363487124480549298191027968783126482079843052953170413482793419334192602628725527909426619590064630832471777400754184579929007738329977178659451725694416252015563079866294143663868682077337356478088339043186941558520675783469602826136616908194855806146537790291088104503115569297064466079035532375254661399963396915372690378920479795665702753441240643653469008118077809755251600060470951184321555199979156175696879223028721139728469768761410148215350228594404675993398281769333635163614768464737459047605648356522912603376490339702555765482744373628119180834305192894944994303283928405692404419846598860141280170740148806679968890922351158563717114290189398669748591301064722443083184247313754793663082277829815054079478301149390380353163472710795635394661712705737388250347884661108987398159557334424939998949959675205655167034587678942756777592755766445062868276389542738937306845663375565338868603848632525420572206215037226008042958128427793465456328015362289231600622168093542671977191492687559586763506876561989095257043553863268319992642026926014846936387466506774872611362305294204591687166571660592750089963458870404827198458497615148298529126619552607258641487490831584593629165889964382742029679683052498030633659857233853651809047509338499627016669375673498969792613050995792908271929883263143556144724191696387784831927927990763005581059717291311741892153261029981677105498765163667460390612382287571803702299312142535073035062871268498273749012342484896981585533730727113120806416344472951052338250127007542139516415289513645856141835061768656070239422816585982153430971040316567639993804730543863495244300543469998203474122446542776295518951780738979767988488237492177315334906193404949798794120487221856187981397119069780329213940593072588622204384066189906601768569683369389966557309754570722794552916608757610098273057278413678457574208037231258517751655100762901888067418222764485420085953216663423505403966547546322623848854538840100665313332545219056460893147345963271721128326250173069096181069117916801923407324123087681824527435434367274375772071092482192416933100219472806995573143946265263919404692746277403026868353682988396599713801964236661758671168059758994281290176832408479164510931204511642116524629291777548044978707144299938299266654852944771923894922868672255044494255971450260072303837438680295282137560729770616603910487425684244410929831801740173521638022218497645099071703466878082100733240651591572577697869962563752654463852392337226119968429055247895759843641500654836962798675540528205914666789116563555268203923557389900661494747162013168523634155410272220748286303085729053076078739426622025631874349191107621746868211161315878929783053188193771399023833120533016682922933559105346446693971221660382770975348480045135061732858035328479215078017170478942306779738946836063408159376413963203912665153312952423874934534666970561870499452636770854692215578637295659311616358842166373321323287321494779931410785419693624921672725702242177119989596935772019760734377763247555881586978902106108246672464090968391979939918013280170878133894387868359016442541886504945729864973342101933845637637192747157515102470457766210172154289540310675031785732157491903568854709976024885536028277491989547174857631141499621876760462613210108114987223908399417373236625099762095850231598385844142531480148972565714434348683816345481665769781104491659332364540463187539062933790199638313025546490385849601111615546737807616126277977843581899163630486381420459669579374213318647096574133002028705029652838535555209163458982428315227876854737799258273956302914548226186480091868112153318497421179413224146414577335451380549557278900233775038833188096686515791688276132874331727523072796554882288152318131366039695261187850425282771015122958789214129257411191276503001095493093717374804959067976506522598401910022706507703130115600157538422812113105677701470993506295536148381084222299996135134701526232685770576293580700361634212740751990512096259477329573300391823579597905015145502047925249369396815720219270310751234898579672610878783359228243708868254079887959806059298419028991938740472065000202346606447135057971779635904572131400870730715968213250563973367925979376653093100101303534704260237399615886228485138273394264113665421901109416465723207647714824969347074057656103040901289929524018034652671760219988589505464825165896946195605235858537687490088157443834897874112346946813708233124816110365260843648864707055911445199355147859350504520590803653105770701678084899334596759800521202567872318553848425507099527072515265898848124853032400872654391561109924982441569364187558932769954576791480298620949875472433575179713561516022621969426036668874098317076310279050270095675426515507681706097268368210217975425317900948990383440561186301814650357310628990113163968489934653342371540126621677696634906773671119476598368349348639672050750899114219163490539419113647100793884075224334866580849519441465802298072037240432209516532334142913842869656258481349015022163159558182834808486823683336065644635644206670361203583973852126570325878307480000244575044040995943781873424766169370156142824851698026223886942533485244376982389899750175910202331128498473389841183918110127094491028607695899791738559717434681321970507486038443963837755206876704516851337845280106001955712753876163023013622644653959572963223840566631272333353188047031130084054746990405751489673426654664239710408240770419489933373921063407899000162228431367065015679609819034157345907727854276233325143275374696628318561350517015499904635134932034810018402725661569036601237213499317892798112987805235922032432701130539255328414795907719774022280196368887050160854309731884536629118605441576026384494527924884159386960390445488580881935161563886900821770439177659118417608979917453033969107588033949556700128172411143440109745259999209779913657868307146934282099844890734904789665951688131148325059813828848395739490671308608335143079876076757151290424230592386240684772906655134886633121616404394542737897786556470217691688778545470403977498759457386466581555007841744264125234316117365001327003215097222262393907389919570574691554808533464363318308628486975734463208724268388546923526740168970572262421031492083958520156397552109180432278706084944935301688506640150478884436957963354811474713626629549950626221946438921833529931627166171076505519714065512846950875073486373961618862430888996837778700963233469611564847008053318518857178343224376968366343703678861794477856458183364733763379165422059407684014639917446154571183580718154549041668953790698961593011129532123904393151641617858444246286990677068719386181357499579877142052012459333154959585854372564802879350316188242463863555051937608984492933989915374440570165798935239959819492620763958834796434741859723026628857058983026694457596665683706036853936459266788111178055663159752071429114455881487333069359303585653117567738612419516421077800169465329642841560753923647872282177543582017966234667262243240064380857512208151979169909014879316638034052648424833039712662123284330445427459062030863277703560546856952594041369750704004764351203170682647712279786289930051917267362598594904218830628442241393506501238045272812171717590898313474935616100685958495267926867822863723031560877025363976789242106071481308568895283475915029509469859461773435126777659269716350044282428759833705320475057235131113153191103323897821374085430888670626673128093205028097063908891372383443124772447667841946241500073134440123847655370157596374266095390121129087451658556872940862192784531641458571886884822512676163037901108967429526838869743143024518688726833385931414403360231481903327271579537935923801544894609330021423388164056063431973301995326749910092124558702013094774792197139709981725212667773466952569549571558546895744440808857044802678774800760384255058682846812224302180776248091813921661038821683113865682640518763685088837736579667035087202303370431201154774788661146726167809743933376863002083714618780804087983150714337519309924785677871748192185433949482738441265338135550524784542566982186460792686951784256961195550382097064682222473333416998338025684711800945957288567985996113415548627832145210759418132536610509319203708137641559195315094894526405729797196009146742461136782881521481874222186264525462339756665245388715475938087644711458969620627258117150657115729305045634091065608577134141100349146526690580613495013991940376834371715314336292464785122814051883474090954222044194208232418840581041507013166542591995545834343588344303485585091042815897483632357131320722884499627195205456831119894357046820309734311634321898314576137828880322946006691163081383496186010413133464835503530019983195952413945044623214536806239696078389281782409619269674935841819676920681439763206128154745392150416686782700265431685898530955264446895142658546726078931238759876897703507191222105504244611262252215446877777221741509176488932777603859032890326428090374996642044870807565656941663125861110052038339686363943032209702212892766741298417898834100753135161559109498840832416989462087541623300271965850796770368774132779043883355457456089957727195019360994564572688692782534976636462374602166226550088614445912179224360632012985526209943486253304059667851236950053722647382771775087979067076209694030567164907507449458899354290240928880615898451576706958884626203978092930101886718809636318021172547503950629524715027518823000404146921006433355247366549903333331143107104545323199968641834356724690038861829775802743433542683801459898603806337950523005512817652647681417608317547476078244944733588215035071919637886272451607373864163697614146300761914508647672045542082209361570134239947271856143534704802091567799223409991211957586194507663341645643240667017756782270992337754618571549264417886728014334993067467872207550777972600355898095002235403526062623045999879227058782477604133249663570128728116824046388709847365531619047661612270381748357978455724523307417732682823330662777285676577726796462765369762278433964579897821683533494468409489933440321760301944784742858966598487969537052622717193520522095340083485229640755045068821245604730848407399805420026993101089172317274842516483629958201951324154805159344093856020837604803957914318082404440316669842936795964405018084569624441889394652612050307451625906762444147502131229893056901611269824095131250091969386526838212753441888076012390377767890013701559273474334163339546865940743434291543313965642463665821129625504181057116512468771030861561742754575908316028650489563701513439725584439661753456850119306322544622501189669093545590836906758167883844912612991927077348394717184376832156078001665532071408749316509450001075543490750649649500762733638536035360900219711789700790069070033160839391377559060334976343394820610892415495530105680737817322808613033740206152437539942111311887079601371828013919351629812996319861555711455443217803263196900737454977091941696806875759975756440543057080889303840336619409592322327967207707014530231190452820971835766974835109665220302366335737455971205420579426480731084948638242760803749351068829602409256568599627344228571823435555638598196928477197800171704140747578409663006755473809672078801839022982556047508672810258387624195364463806097375278795793846909608176052639578025089652137009250880419838234182360251343348241220128181448350498284578304570223693131980401631416096547252503055280331895889827673749157071535599072238749435050315995235700849525484038364458709300294982293880932716274430829941667320357019005848233058260964973740730729538234880088370909729284044207211093628962256946183041535742544566129222706091416238940429751081766211537691277771855112496418289235423640078557109547157440345443645392265935197022304914052200189471744400258686402598199945097698431064223094707978618933002406329305215564527528432253320953373967421089166513398143760720770654626720583600173051864429970302117978908095926935704474305310511587699366152065697872618212038270417869998768216538466413738451911607419221689630487365107229888594718558282859112910491565117859764303356460480605917955191130110810746672356089036562663571397230961300202466523133455917160468512692977424857500073885776222824915013924382692974380971984148939380017140229299394506694657075133916828496419726162059870396607251608998305148084987801033619507232659881071301620967535464963089963939494377312202109865435687628909910475068032791341099549051519321911199060732339409872137754943624176586409719261887811873453804665137413037713084112658525904899639147921538436123346173800295403915371687014281807945213808908021366571904509956266595767184816038392153796350428559423363793855218689789835172084354140673273472926159864908454488697167621190423904383377809021867848637146522232796691461390511595696666173827701771732568422356267385326252722542850916764893484180188062507718750981196307600630958913346263241621556843251193568113915732712295813694054961432762516290116490902815171408605207553710393493118353809906089441487191651435807487706053903309282824897049764435584753453961876798941744653619711149249169747649926983934345904092008357671860837417086865134988990417923727265368580508946864361414216238122526730699067876487109191318075938237582091154595211075902908686342905117517965050831612542157266250318083284449148222852085892357491799942301064800831424693824408112041019297792734407945137101150672119344365420086406458657147548335686092797924805820384078034355640485892646845897027204855755839035224067548005166799564098563289080016194398693109160940792625978812516193038769797453496350217423155284049565483743321928749084491190911392516221263023715042283609732988922272037099238172897739166838958135361593715773718765633079303398730261717842433084522802656623479202662609663807749108673421718223661742378063040836262987186551147269189633277094485508735043953136361028930124534817619011341694469710296823503578909415611740372964295180284267877567791281264348344763735549162963560453722048111098314842996691171568655147146288716951907591115029649765263510527135408461618027114030888746549757255079302960250712633550751906578475115207825447298901354791551796850632984615094547376961181658370119013177533788528461791102160469102805387455009463038178145295475866214591162671513604379946733141437629980187332986709412623396975468359607281694411902009952047579075687320300605213180511524101352827483133884308228310188364992178171839201843697991240023209392159459141687779773523216187105171329342825071115841411040025909651242381627607134867239284206331433169113574136301624592907577112142705198366356966726203351113066375428726436434522285728343530904954250304938104010208402421312635274727164906597885149103999851447425178880019038930822961902815343654003619921013450575803563024053129742657174386796177752985624571631063174976308161510542493508827165340239903814643551949658275180462642300489728244820762996137083773158131158276653529986569917617624273669916486137714483578454651957127460515019850527317019309690835695010247672867069440424764091729077782553820922796411194275356869650489928003426517626031457133727162446482730662403051308478298654733534488565143833271284617312586880138448045608773661820965824547787025346867927485782937340057488729392318683298217709765828410607954485687285687395915963134372718651715753928474145566864483716316765218727348452121679471704995310356618921610033108001876135557587360149731958767007436295306084845290391979397390813814629390513904761669012273821523406002128725806904612286178983277261145495850972118854252611436340230295020406671570370767173813052064776960713274382102017676560917935892146817226301051580801378642376217444576795662909603945956426508027208437129249955172967660805511052885040106727576619428400506921297586986423675403527902682030911261684672069511361388802466084249734710351045403684261505680312187223196493729934458306086087211832479539665916863224510623154555130917935321490194968128258876640410646245747790407264656975413161005981702083468144030684135140934973759155207604261364989543733596176684695079561007062545067820381987265702929998142724846265734053818398710433894706693644712585885324291252913535651807098589454967555870365622479900981320505552343949200861216146684591864242210264205408204553310101952737558296811181403925439697279067714887167780630187983580989857065341507363103765970848776944942518436209936116937496662808846601070415764981590797092030411417350948081323732204637261628337800470194372847342472184460218757492923267379418106850040037902479070300660677524806826247543461641911849115671411063993891572485377104065023186376617816037834445092590242686378560161504991252148331958614937601273871850822026531836602874362660802921133771909785732761226864739726946486287189380430718370968515985168334501171483516814439057566933481890535785885267128893890170732021954412668963216365666019818555865265109884241680336670726774412685581995793556565619437670558792575240634668683546175306201972601275338137750229980958210352482451179743565902150396091800532203125907785110467133187568814831337587446566237759017088448267415295877386453818849210835356745869783010569350927332615130532524887810129190033320465548926632549779740927874118731677277159347313441239645829490157859699142368122841585425998929738612972560129319069545975063937255755576853262188445288694852639632363961478045860791633951487155711705699313540426721302348241192112822821376486264602943362167879996153360258758204327459278263160161873844148390336281720309159597063436641739654454906157984586956838741396299468724696776444492580322819382965761127781084463017607043023904968411381329372251615307734140620019330904096335532026059541587289118233309914376997870184883393042135632036131785919395453391035436999464057049989750026094056829599379610745176643488369400195424352428029968604367914197902633959999609447542668045259751774499896520534083679256836209952011893702582450368697409312919143630520742941877976691736626486932405032355971495560615136628516435895010095533179796651161946822848302503816838797079650340720547860290438226475869912593463998385774054730172802598938178256837411520475834896893660790395639457484197187374776653360564641001032207228455310413539126923302496436427048363521771408166028673156019382665786767911036786878969499959725095025318419835170406288275240891503090094987451649704369801791040712846186114084377623192896353869395505715578401839707917174954203950402296485203228780225059503931318020546358232742916183608411011037472361865428829715858525166549831762434753031681549024279062825865851614630767367535262601433503567612255476305519780540317418074497042678671374892558636672538167740244462145376315375947242980632877569389492060140632684680486997704461914217763651551730114112493469010763929358816053400727687368252964538631520887025130380725934595390932590566493161279035975431037821548906449747241263063919898146105181399941796804206887828316669911493047127576122208858980329649361404573108697818842906359119332979597195064160434540849191424953051930017124735787308605953822658715227230279539633003331664771663642069929134032796295928424223804166665254764927441756793940340585067030542888621353762506193073305250280063856658336130153475014772890277138099705855836678359573511031989422369154950829667132513917137753214786113673836858005913691435735248857848569852107558657790611734622685440484363101811444708659076568561390379961214253100951090022021740013279254763063506131321201416494687978933672321911361577609610858994663662245592828190350334158452448523898553469135552867029702337520854410158909050097057756954005198376845720901947035594107816760992908991335204171058545687017579018028744559403316451940522014050600874097226518349175939712298882516252640380463410218182413958487647608613678462172106023448459642367206261172479366852136417782569140296290657179051006042512101269912990115225736899490316839421770517189004706789035886863815889119285579163668394282233938610760489674660370642704463458435137950229951253595098326062410042339548390773185233125172130155189955317869968774135214280133914719629881925523422682290380124632839592156320529207103867487070023261649950667514398384602054110155330099432713374783848554924525036633912829193596096867544185838197743196794386967120137402744421944088227399089043406978494202257944746036166162621637313866801469423791637858738780514005360361150230162658391786850063526026555989064007475460918898780395357587176335624522697428444085736020715308314965329416419014604246958034531108881126357101772332630235872059379112819792246432475121914737924260995677706903746659995449866756395707869313726453118083722297945251218726256827898558185518217896143034517885131260255239365756054346026226872192246322857608589383067200716725408319789899228875835904376002154362959771552523985364219118760647714676115561378450864064709956849702486649855727235468916012639112264073093010713945040268395766931710796490836266648245529909696328509623430403820189014270408651106365879609024346918756297106440793867254295452404859729636940107438931683619849123017245524101285393037281244000319081211172894440216865201964723743568559869535193818368615490415879442117115963496182107537225650833254588301280079178731404038736372029959788232768850243104008080656578988651934815425858419334585652277160071974605977222365179030743135473613991392241144693937308439071341290106378077054864789904345348869039770589078893414524518590091818281211875779738149848886429057389648957122493383836910226056623658717277014729974882367399065836966850509881220829387603763104489933465348525008724159409633862440304047933232496119472938456659804838642821050066831846054679426270209215965578315005161320505762478634816405684247469009277655158866147020001805412564443925554027238670718065672508609012155307771533512513083314641504334963245063667152295883689914422532833528108767516849945454109374697650860152927453804730202281573378093186847026288530865957546179091698377522066696161037078236516375458864029794790530227344525052781817094116390354207178883007936149704556514423478453847745192456103600005878988492887635835532810080464048141736490576238568168453237513374276766336393690517012955917400380698761886585089052597718055670395294016352130642651317556269820975078573247157779072870757531944687173072207499580270224692625762507445901174076691515592899535179285061633204942064073016619417807308726368527315637825342299933259479667992874348927833852146022752749545070461662370436425595614733112071479153699667808324638201789289011354554460444538752379678065007299596335341349672430000410328504584080808793803814421155023853764330576458724943601461109453848144505788113653421000340647002895922489506266369044543102995184639033895564042116200780643016930395774642040230986530518451889901041230893347682368165680495795228757712945424486113439660126478657345781940710115642566515764621740130317034572748472994285946795223041368926953630351108190581897951081905676011358926411482011267041385944483475278309561498739232814655129810049622586752445803867143677852277397050415459163212047337933695550797341447148402098695683639693388687959974422161809364965680501537964921793960416875668478371474458464384904970470955974956834176780080624589161331724141382866731365784056405101905111160489513693777596971751052746013132946849795524936974818080641304469306513119571474555275947442498402196383077943572672983884057263936106728050918962874490532199944332609243956379513006218287640025520262757586802581612538108663491897187669784087788743154201813367772042511113111845688180791303298632487671644141572843055144369274615279875878319845066306861470056060171376802594184705266005344116563476459112282502696112347044012039487909296734840854576341892371064711362993062078159287408151098698452103348966812918751210665488285871753245832842122684546137157710306907929528047743863851022285881661986073187195363834205922458564865340808426064687823970586943507750354523652565075681125898585425923263767345600823238166753767003291053103493491626174873204634444963272893085558454550695791813561068056087165731293746118188126310562156951717330724717902383831256887661243798789238988230403959871548794479409115513616170473086353382780857017606179077203796978477668421352236641040993112742293519004161714047491746248221705376977798854984658579372100224207845313169632914510526357245029516945138735601990777447167849926377182082828065755417872376027161201225170249017150706316927061915962670859084882106489987988220343277696995572120376332007427583488953320041663676777119899457155543633279986115390016664574454512737143352850821147523735235230677091310310703761443902193130410190843865276106921839294971827985881252673705561711583871925003887947554873919601226057260107363297799564469929197260911452883439639452540199543206756277558664465233158254369220793833686225384465221975606217048505030269158456703160777858863999706851772229600489450330779526872650116366604886013805592024214381572624102968752662845150417617445427622125627463904817755862849661157276402380361575417675808186641437452064757808354246639707660377986056779020970979922306598208065016970400641479722542872266645206999033310262690895477774988309851464198683030501971761343942911277052840659284927286503384998166051489582278171913931716943225283122380376152548244707402187884478776900384701700019501347715137735151606241325203075840348080427735960077586113344450628172444016335224639469846049136767709306065225106030674359097102786575740275705500217075567782178006271494641526254940307647562555453618206527493003884174338949312452153485596499911085737711434000488121021684505422581695877816072530169081307553309689883694588143491604037621076142737454434113004721771445522106266988560911945083200059626412106819118055500200932429900261225676016313616950819396041115420994569691509451250477128590531482407041342723864690630752164330268939200698463237299936060498164715991585795428150710511716614533855442836422727347804117894707948433607734699039835817666233846029330301429139239032054001131820230838574421007889592120025723097331766379073449002914909291775083303693824973060316176658042054954460038111037230583529132462885693236528615293801644767241858893159424596797157321909797565896264718830695223932805998615508436026433707620440747990743736882250162757193379071863698629718314478515744028668880450554242007077334563073084766738356822731502485277509269568821361254350640165729594868037405672867318727533100257902756587007875351236104353872653995563102462002937378787897264890296465970396176053850278114972400892021181469377741180337381782471353108346976855490729619615787465490685995701603306567625532836267407542518034030393356498464418169003021501095886627639312070886866850446632237450678067051024700794588033218127142361078320369276193167031235045354500243866825228913158700970292102777685842207161072043557203949299372345945783574002497988660867700545043205090367595479035187946137025831101123013390348922914748520561728712390088866380411388468486679265481758735697373141673235814654357610923871887260057606658141248923264995688080357101224545169872007570552338132185056538935829256864092835036783783471863365285365858381729881759875632988488168791062954966282854791623107550490190353542911606732947286384265956559716625063241027256212234022679677522377447856609564079096639556779854228632419505624091606025222418963861163987803275366563875733351723001207198042328046282856226982659771040694086897948604669022681102574716828182452249158675202609780902094100446367209084404113633124059712989408015358479064466431648849067210232238835375719648595730703014056969097005091195146163332141869522322600124967672294986833913263420912819507170818271092102047032862153775964055296849955988872235790207178677804682906025758786746745298677307928499944214068741235292732178299315725809135785069389946445539196364978317809328330561370276444454313322739876553317774665873763141447027640836945573764189379275810918617209593463902362142169553985860996992776196352561467547821542137972365944877981908518857858791644935198653584937338458056952942409529724157689528558518834759289528543864541226738011293361997009533320111303638425160838654662619913897326661474025012972508501981734536397354825453393075333892157193779578086192453133792219301874048767129338668656724889494570945393473062757660957027119334061684211358954229779418162721839481145851135549452067569724660193505232986749573105721247442412196549949870700947127282880450205409209275750012206066700896564466090268320956933109123500425281735422388810614316676608975999705004962758459480090248458296950779472832012413812555024376606370386129538223039800476211168339675735554420443964507378305022973159630222196777215463035890860601801032864410405922003983410772192326856524019853360497645840588520506019806581822451967503287510197086845230915321391884218634091597923412956775521609043138041631533337308625966203057189397492879473791844744383567670678471195339826524113828205879264326388416233873033664555827932581118770457662220700855980864897841289284519822302802329581860072631735753758225886619130585919180283047214594653930906461360356781124587220960765457117897292761222181288492166732627737050395370399139886323348020311871665279293039323828098747963516299835570585762234568029717033123555316288926457562598727427525248850978464330884117057803576564425237219341570598647774810238899370731425985616366423829880827628626001049536224528365278383019676570760834172966043709127719152961969927525387859734306844646630817350748129842235363846429872564318983152120032890301982068662413476319147583285531195353531311359134422324033937625809988569285392809001185704867943633249024927116077430437441941325081005927432985589446886003694118212825213444710651871305637102862915290526143660138467720947673889662323579667276108558661251940184128887873125132351048181176268805044083440211942279955244286043200719041470112720548570220801955812156951450004277771204254324467529457661568132613523271188474547710091928021863601556556722565360615198026357055555237585758191005706220480989005713940000233137425789051072505257594567359035488580214370514681137841586696232288900535406429205419861783886412477295329999964734342756489272303708875166645363985175606064743188780327966440055618394538164855763736297618523451421794293689656675188409449934322748568965992868334011611846610151659642256920392527032933391702068663621718475140317751978181470055769268778516536295226394128565482094658602278744157980230205903928874832853136259909522932809887600809104236062072505508782429078349123649207149870576885759491362502005538251159827103183242915646913353956341145750930305346489627913911246507645677108667259341834858590992861611888373909105726991829643665269491278577989606962829476740539895906914108882440236926169222010875120931693207166711064326911200176582708597134540851573910822307684293619523003911674129188037515632872668116448557294728177034105746177395610889162312024782776867631009492587303997353567119756256118727040804920996244202634740426555139045228919684652192467827625387610648970710378492023710411224192285847987027386545744878268894002877460817760778154722195046568944621987271746480150598050777785873781443000444524958986025997556428785322247473082271068719520023982191175126749456029325291500986064263152111817020158902302302851038378705716535744660733658959974501213477355718391012064960698021164235774594131765931329617527217139038446705626208277064774979480150967375524082334477814008840629710189603656187155719139000118115308462626549956836046649362020038405539531652519435555258373726804429845910221919164410561164827032439033098568016545432778195947998107054128027201651555538612999559220484192187963733608519873452305949052708909736433273044653881235716834219978209403289336398549866056647534142172596836688536941349498033398231498568032846680536717477839000171720743734793802623355070127993581948665962757422402935439515086875785013837407505595840304712612717958048853553928698845599768567492808077751672427516077812817213027387198388460496783525725477770377866283961722188928397499908283074019113485963708022619489793860558202326527985661439840621805729502542139776999900816460722518923856237481645746536382092649049275087633261962079617203364254518210818144465888184232091888344698418326696694725607877179268216714577904979272769938170272636553741567077877328506196044468401583923813731881015571080802389777592381927888906207113273840210071405269183515413003495488550042244556838878422901595311573314086039974816406072488984130150802395620962287401750187049189382256687450220957610960210424938412893406511501052730980350742084123751014016773030792340252752750091592089860970093241163202446086982677325444502845488203458504341232195177111756982502223515907971235210412270381559040204640726406406063230533806075751823942632199256298161286659050149807370999596487515820553106531452105227579485427860356279637978907884475273520174342113395026331278278858931101867046419743613775042450578210423694491992609540144598545208933121058134928080322641493958627925331943963210983002631958095270264655651724665006474922713253458797989383782373317660804669641281367254771889048038285384070948887570086554099425357716482306274951654699161549951271982183172557933473677813372744627917452773977044036292809725430863661762057497928522905728316559991719491090095637144571321160571597494174154761320925189930286680902875319859495252766947121257443667152132138624566807432431479189763086511589221125172114902580296453239429814372799566741924425057514227477366256566912468931037120520035533041340602321473884199145930691479547341608300279930512185059387616485008723196396411184002742386843725034546008798909534251175495603092065192201048904991084331338875470530903033794351942230014562926245756783388130428600059720714937803597980821166638245925424573489373379290868031914927003472554027724697434777833169959958607623440799214796398642158682652687980750329663004083436651758953349167212085271774478036509962651770460273558081587453011960827509416479410967761412758337830304267859541592188278550622890203064013537452381371403412432772731423983285563207727793781443754811645002852625720491424491582575122168861201437823231135844079186139906333301685347341077577970606400008954704920962051688967314122319866343768833412392405791057110272928293510917144647681321784507438809514113685876907446630523940387400548566772447338548190491994532094257030717341937365755607883751451354446895019719023492246297403347017492838682441570324577856944166555830247552762482468245637250997786647996768278463671558509680007736825842982065875438202169633700238749659989832406992620719089862959789998165473116487782310075752672299760100307086238652389947705070664727172426735984574002756271568817454331042271841764848839399224679893675374019665708772378928807633006917675418598147277699176527592234349056619896755825458555971689659534931268099768814421546811327662955466869741224338982482757193063474021633955961408603473358304966432252909534506514186708154320727199615363558932912293963359890523025398694489541479033447018335478525439173398505016047332800332504087429003434239139856180942158799267653943123911931912257923304934605725949092822727067775804863757167101161860767471860524510753358071193626219905015272264937670470748886347663694060167140679372112275917032191693181260710210921604843946533020571448207413007735156119173205741323150092566206703094689189739238230847171485399175303074802562971100852876220209685995613453598091560450658097384009604135773510848096009301220487698854961113730688299110634161537599563815764563023088752349444598601222834441063984128742775817651556491748945953542500590911771174628855075850009646600859084218427199748766376801739272332163389015930499593451558925744017212497030399607149100901588219574921599922277290418680531300825645869110021258999122222578268892358515563485174233163669831662328778955391087902826006219781099870628398323177706414881606862517690683760990152997198748162196733241466513286522538502601428916537461253162817135453609215328257020143545521338358697485877838253095437053826206495152577006192454353068676096929675557309840712348738119090162693740009625777712558036814719282116500389911145966952577146249615327815809595199204845240184291984161354120916479456600709152851999835342664647509287839981502972020298095795752361898133176902024492542496596694328807674560130256460303442219774002857096624773995604352644295111396742982529617584162615386671960809455894428170499209943947516078002935974621358155767960673532367408775846104303530475236406713513016513725750550155534639551075503081938866188866990935362532713043229670674475043889354016986835612064396209464553027703404547151601355881735490341067462033036687959563268310330687792194980982879879285399824998097756340770870476219035961786658015221201311132753491855384101252103853595413655808900134719066626960735756426651991460954479157473985297663604091620008531132716725171141946782728319809603718920228037684395629543684685149214017704469228348355776965064239290869834930666635737426309089193569780461223465088334172663404861217955388915524166902862469498029982665510905452151891171061377588259122709197533331667717619983371704242622842904401350208653406452941558252312377843609290282416267888678006855350096363720102193463092741847823039485143012076001786308573414254551570108143666302984730317518762737630442781946151360523922526974493608721510556272346032857846196732234618423903873822204773820387545077525351230695223256112443541423670487926354587692182418401825759905188359676878711971417507127099978588356286772390802126559236123227807572017453144123515878268538532203376652160794516479306335797894419502271615191768649323174088424957953941466041347974695670470735329865588491044079077860504646966225952068257065384207143825138867127608196356443293398875845731130696167975276077959563579198791511912852475987877692033719738458619461189429704498959851121750822673835261390535488400972667027527271321604367744523991195446088745457448113418885411962152161862958591327078712743879127392615658952482048150317157452953904785927510692221221586968190642468649442080972492167125182260657985272845580193922713961014600497833716089606479104174385332042336529563009023267289844322383737518864642008493574931675708439049975530875504449817228239382548630046948792615544211943416488375838378614191525636225088145872556047029198399266166368504937037248496372341885045256643162259470318275787083562873549078743562395739732434757602480106866564115630480098693032516492616049478639919384763412128758082946149321231889206518632431702584323265081538975686820880361204176581969152116141378871844918847028989321366813930266822020186019461255389296319537526554117637109430304170026881309888980695383651696818390011990213258644157412975546667552729091914604572525230097192333155086675519036445784767336563183168238625884401349096090408665642905377176535809696952675599694361380975005440987122606739242265836029127992249468985441492344147559274905240290860967584607050213319081558804687793241309198890889193484999888068800464750680268870284983368928598179720553451127880410545557006818460865736326169775034296812356466915766675511625733529449102505629351455773115872079304735287611285662111180660173825793084454109593461781292674736541888994832016911709338076348272285346836690351423545950582120047441225328816977231216566002680630834118572321790344369460635224418366527490069409661620879241295386926914099557939575344674781893549390808869889165568921536935390643765529729355905550981758321619969474314835510942171219246622022096627157648726478835884886647561137607823405175825745508136028707580681931303690625905313881161702375140308452705825059092463603004207192833669883944063301343018891052873174389121243196763604479304836370548812369501027913949546265084471317036613945742380058183418127272702436480197506862130260207053064497761856095318274551752249955084157457065754833731964441109044436530789066365329432473365175290172045563689522708375012022066587212659478155959791194466414978377900493488766556941537655084740096464222745837052814613252368377495640269314058027242790527254622006392519147162091989138170239522310075846592404824790631273060663665090211442537502428684317414310207583183330897233203238691635172840967816454156928650110029612944712550952883469625564975481029287801688606683924872392530265542501911226642016885597232019618978043847815164887435084550595469030670096189290296917827996038658856834044196266073055054192591618968235017249598437574545394919237686987994241243801779625939190935303060121080118788729265844865574587068171379852228987687320530836086884479312193020119532895230549272095539705168079060568399627527950645623070272003617899538786535661453587512597248917872153232044836264956684363916282485289327722193721604726489805892558322076385170035966068348778977575911685829982717343111103284482393949875939774501007295679280738800334846608262824044453348938816163607474658076033185908173530369698894551801830125317298442389450788553895368456500312973503507987176788447004615534883259022586573395864670404010768419873210204196005883565090502018749985514091842969282619563309578455860542516615466394941978313673697415079985647990037778881017303271131221632995320916110066020293324064480948982150022926106632949139584244976131693497770232722280163051312522139360042508713316236903499691047958203670393957338231543211709856142043037986622592830281750974750850935178838823241814877394546545863131917394346878783239647988060475528571947534283983824394138842221125094848098649025847474535181087774221333630320070328241004973585761415975409072425140532548652109095887924909163761348722988519510558690016459979893172390739901854416658313803745625669795069782086331269009060551317796896674284049017426376484029216244928959133380174504138323113444516645583982330083706532907178612552777022191730716267038958852260197606784113742744966783918332508311419547091205604138820711004263930989258867651626057536011264300186105182862931644503586273436391112729828878195278821307315420173138145969652379647646869890131651977479528691073893056973881952840806556832681662867343769269375809642015026934311800666350410843352046366369219233028416810666026701823031134109925586295450367541135943970033133338722507496055506593534267923495858525262222817155565432103457353318787944118933008735141599166184655102077957470308077648898564831693623865026314939617728910873108952412562963601389936498381328493092271416406364995826273787279610271660637841578764197186043548690446506709947900642680308470733512293760775634220223001424101348560017728627150760343075866806267766340391643777547911052470582725879958681943584355341909229985526880449232256496542115618658441715251735730451119601067898632757258943054587381429293071796158741160478681712534874127749570670596029866503673498402763915157776065224222151683995993261551027027274381035565363170284276124899676287986381609830574687970829483458636108899069369039172135470106340282538700007408973914243156798715261823014778397554670248017378469322299445868444831694192967022710065749258124694323221961119607673833871705759617363726623140091490933842022545809999535726200423379292113454584463306644750824055137716642932138627264304309439519734789391275331886971568878751713420443854008870310697141952548309647005972096813096554683357150599255942735663297363676567723666630241231304434341035233068912968424980413595340749640903680687743065886517800588493779555831035064837119318810068046702994366791081097662211496569719173431159104510160696639717687483462801016667858415722836000132211318687359677367737327559985686261352310200801402369450835479180244709734565945409400084000590213343910090943888116398653553190681440063729871324873463990531801225183056405253784356825172318340497408135970636500372875180541776639231969770883399409616448257511782593302751969971733578414487958736936650282781893604320332233127083802407504394094334287873550486387210668492618661121871234424174316505514738127360464331593705772314348663123597877412159542539932016460100814614488546240418552471119951185777743690478045833719531876152451570881095132196488136739090954074675328847817827251987366460811653667358388306009258087411826652596826256662847443772876989423255058090786618997378269476037189529847501318232449226784893130453440449352397045222643239782834010040564143899302306385167914620860406132904349703366268235267500366425934212010616625087354613650118705674779399412930033620399634640524691138863145594925656604750718168623737164033833499975464391686863257354526406773047437753683637381412841205522465786844394733384235006115722979712472271767748440031626255003032470766894588276073766176101592781167733571094017161704748092957069254396807362678834646098904201111743911544000797774216746232127874588773391189969888508182896614634103561146304107622771181931687928994148114871913398401999971369385477498750118432084169907526967711643406599479866733989022004056048959347845910550774567699603230320837319596478586067578373076067108483098163349744824688147486867322485465824693908141523105431295325373331308140329128573432761852662502303929704800953248037220136221653793705184386874254805019144963681646690927070230126729494118193028371751477893352300056252869296663757430321611749541835690579718962324315433232215922785698065195399702492614243290258879430657107151365409771405749772607384599294943295296881553605426835218338205333438532236012754700132506711035658761686495240027661078874002887663553424036151699462752144663839960189600793188256887623865920120594245047362647307677116717480771969187135654803554198478375761808865551426189796186139711697112965998543194358188349566960389557298357934512932610786140659014900063861312139687011700782521251644891204650807051942795305405278330735396925162604133498977198529154501472901286631026263079710327606265730421729295338990417295984046607151571374438331867183821141657355089468415060438914903290465384383586797471863264687547430811393077635893911032476562977841755806967034151458501673955648300433946063694212432095346134100962411678804039607878135895118519281456906338464083551664656880570991439770990541006840807142580032114307184324085273032371194720204002600943306494808768877027529667797946299840728826086525500804354202003312842109056845817965438762675068275682782524701058650428392234497917969972816924345613876437287462686348251502869914058221770500696486263595754994923927257998701443022713758627764251054964379127959784219937173696550091791613803073525011158001821758832662026771303096993536648910607570689208559666737816847941890349640809690451925345375327819145142263295495808615989079613703287493127600913301104465528363220906295799478344592965570771833161473145567537697276277274494779169859707276762820093020662991334720614680440738257184747873590610679630796936172319509988462518385171365139745660056132759018281040593848438574889968071920176335262833961659344288628429769327827818667631984344178879627502953758334995700461450984579566184495355346394294839920136020000638484913573791101854053613892508275663253145883560515402089846518225713057344079361178741432610450050260442236389568715762115960728919122659194794734467488563560361891775534665585148036788195437966781783231300259688355566492296875129962715483558490784806537215604260460418365243127118847407747920072847439833159991447861764710696016285914265376153396813543387443958031846058502616199562046629282639508768383906139075463282125319148347383751923531377792704698025559813627275177584138164333804725074848802213842026591406302592991946080676382504686130406062582533999651988756423175649572667638984933607347599464615669900294704457269626181861031530854654577560013706787822090225090450318455518503833285829198239802988267226865511256025829913960415949925664823053538661672335348367496606824536863841323890287025376043992328380913941230641494470229217235132493272499907671504309874017638631018590714979925690626807454304033527251639711284975014624133494807217169401434830536678724570527947411258163522078081000436243727508579787648681434428375459332752290652633957663404927434737016302966630176475280782280039828798032195648763806262696114424473362290514752116893805342885855001042659397600049816935745159366435064650228642194435172123665332179190643144126486143088622787251921088088524351235906020417325813106954066453356567232454909986211238813017135037907549935813817230489147961872704338307570965114843500645430296059720929920653590080937659568405193582128540931868110709513007721521386339354004044912465007851226176705987396239015168320133444618025368169570106536411713298636968477917608884465593133259335718938651172440074413688802808138919592297152905361076676673998108917899741095090791390075339672133535630014308322605346169137976895383005262569263480940346587151625843133808843661056944395642395093120975927358697136935362861211757931727112029917216712869458145166280222086396167094115003292475049114845926751200153178492214316304021208055481020276561969159154191091712616089157261091746527537194590872056463349452725085712096376370540661002507567412227903748732824431829599620212129344796196036596860949768232766829224437372161694289015538670940265801651341385287415221992901881699968997752859470185976385122514486278159339380389543168561528163014253289610094730504151537377859718085267484903504321251363568267348839646862382168865521759666939528195431362877023887180675298962978556737283965475578697656341642403054985213131081816111949102652238498691489065556399307235396099128492813322060049339862230596372429848749885112787454352380613676637397857223299635399253687136055657686375789400437763810337449340444070704225693953142493892984517728575763281812671283435399224595655975478379763058366519834091006385328903912486275004688561067349920178363073934678837434263238761783627559654845330580477061446056715668396296133177192728962940858632247228350488976166200467625619942735751353493194965757498412595071191596654635387512155847451192567558565070578795316122413616396995191706531458369978769931454013428567192408948691389770763417113687704865313692386550902132871659708302315714285509341421092574654346392595587823100027528020078085642646861290996001100703303042013962798699254356341842720017830242392439898146508508887422428904021164569749635683451752583843324482628915704260063686178125975282252060779350876837869673431589720300130082295358100372994813995271924960963130707115875689834968055439312813059806727191104466676304249287914305460237738531092589348433557430429994494244219255569727931916045514114808822669168144198292433190014044855913538442357442884691500194017192957338400690627807580196106868555835929578063016509936420166288190467229543141853289251451964051461788925199314880549547415561201861345678657020504678413144970964096662377393999559254643150246448385984412720354275027063349304162299259882044796595915804004255317764641260829925804990426301523806684858347999574706235045352865071908121047318278220960458409198500950773143303693955550699317770750725310666234363065638472935748879090169744651910501874038092630235048291276685531851137832868459395250216136910493515200511604908037513802047067744773924047955746371338536442839684891933315243784860672972553314023109531449364351921653859796253359634861701508515172754796056835837058853956279991806719312379690541980797286762442037963011712210614298506730661298311972251432057135972268626057993731136633770099846326163923232086155618818365838725849928845659346883693803076821151936369409413602413246404600148453304776487396138449354966492997105890195958125572172224544496504143016237697666015406290016076275172694731458769717332207405642689368061146234810954940293777210646310035777109084931175721947736277386999947466370217571052212985408224639407790814850068407541977087278719604489961111402429885972377276787422387728540087094941534963368543635365920574629972186558093579112212169233163471393054015145227634038768670766764697542240098946295683056952594915080104870399109039938513909563732373572942897728237217767271681595277623730672255244829881361375179687615645735282876036106242284731161356103810401479135069793894860668562061179284606679933164027683926009481770006865124942663190680334421162923209948713313173492664584062365935668776962472390814607511596052554845997255979039204945171105353691024464718547851468228675765427845873866005386595745469809674465753285789353751627955177073441511186592320301948332950360344633807588672836534552140541488436008024573184554991516121205414083662261960508746943696274361644504326405011165895988394695899221235236119364014004057967265974712953174862325576952621884875869744377589095725124586056387580322391207251458621881435387699635362527900312494396897737788679506132699213970956467112256012004402647283592127699114402653021943937217787635426877113510414591859171474950002756775607442673740391548939350473425220150627393164278037621341128938725152914039625309294664028779059305290439724535375742125704998038424121123496508406449540704022271539334015264581120067097056699260091284065397987982875748002264671083596577572215088960691953160595888081622677823405613833765973138839862689947958779622464271221514999848597368156752907345899170981014144619298186105110583881371843331071188636439744573355134181572585433113909094469603156758134877951064572774738420451405760972195609501157254377105094266012097200481395833528943106140067740082752467397527966523672974728245118741166370289519834944240316956646153886006833305903598503499609494993800107401408470230436138933762174135454094350365462910530656206429657096873344254492765841696621099643592705310539142485495445147273499023045325832939447886894376145951549628728588234847532295888320620920129160424662008075597822733584495614265268788641183977421392604890966265973754668183509758245090875960724270498453925304467294344349790141325857863354947545291093178780310403368651535230503420063714956549453861061161419789768502259696001723250377950391274248250410922947961566860480886707345831274438884717938914691288871891871736833402771022117101829943224486797872520387458743514079241100606833338807397602906385041734438574189728765059744635344104669348023482695368066627663911720858604457596667521790890022884494445370022754548929955762374869745351539618332080405269434444249944009601849278585441606198395884640901426339919259367124704958053563305675917185855574277304727139389288517836978422110809093975459918284387306577028412931120958547338824315021752367194145265559571175498646745316812474689383052497697968036673760576815327346976774992039992472867803628520011473969341522592844325134379530061970181451870711323598672134533471492589901296180476737910489677549424196049646224475431301751817260771910406434675043685674133725485190832184987129243376255495801768297019244114317221585620407162473973107131987195316065753898107847919801888577041443082908548680541986703374559625936281158641634734405080877260010583401945103089997745004672177224457803937535949888403822797551997168110948714041375876635248276204179720155864223891801414747380000742407031628049581671708529770749067708507353994040796024400885980307267517923184530225216830544556955434938329051241055348246273703535486530019551508433445592961123600577396373079315526715670171564483553082187687111908109955387721342284902304286839651140784236178102445639212769944707307358540016803109981711052839764769840051397640556083705845518632298029782846476229753374301235912139902131561120007983760340513204025641183948137780627672817945698230437363169923417135431182900703878474986541385529840688584199235042007193875342583453101494884395696415860381490405582732253933513509763073448703510020218909056031925093379799910915673001014918021016695401252121606944584630574517766130920317068531960946859064474204644873212192074412746518765707833318842889223586411123174799779056392527292656433992969386016765491823268806657061651320271144585214918163493825491433272933289193135932734699625835280536797920478857370765229745453654560513690577482386378035084106838628615992130772907688205922169142195958331108344027854516014561220824738966713856748801324693622643776698048587246039318275524157245866848564323876263478105835602124907232745546339696257968618631123161389839117057674430014576759509841319467447385445091215229281991357506018253235688086638609867375095486648866692562830644425441822542255927649616195676552962444486855697702603203466012432517428690419974901652149792703796647783271242452759295907167255365566172418974766044286903369563248545846697901017852323867877510635391739524337049327710242639598417412875813538805154175452593596002436893934645745706734437761300687466807567543671935986588378865462993130072790785652911141036444271691270373894481840757022826217602545565913821371174584151714243290701955909060025216268371253319605114964086164587406940158664589999890622451242369350225980790319014709207333502384249193844331087163964522734954089295784621298144516739776654399261672295522275539618440343911220228882442613415977772947059379740767382525734907539918536784579821958238075791687375533736264429565230733525023397427630945857706213103735985936676595516409628995348036036271981421966234262090176888312722151384823287933061860692004068651277916506175923036797621485603401786369781083465815572191185483905089056113144928480965620674319930601620021351147969349533535838380404897443527813636514776100835147595718495981069531587448777826134609011023592634890630942461195712582369994622997941183528678296346843024460053693269411529904267131403407192243331899348357790640749455629492450284216868685180462479519129238283692281648484677639248825830101973401454766884551440875237344758185792969241559509420601567350922482723660849108743085647508240051390816338974623362141016110680374977561326027592721049189426080607617168905239232181053506046625166158392262098675703132625049420262652233048852008240662311017421320736101437057395302894709346742575582556559077176519507669251343453290968848904764926111607230031203682616157885577944731803939359453594454863505413589001390134513260625776920529955206065766938598259996899385554026970045913188514799548377594697112017537905094711109267107704100805717660691854923716067167763784082627999353580279294558531284587581540061345155481509683277063763750445118489542756395441826306117955246967231767208834404297497122785693282299633013869399117149829625741905093442846854594621449653343515384651219262713273752205710474473523485449801540126166801382192432708681412253340216731137499276839878430525692035435892554433405586812746599383209430098296028756863357003306705514913070028336880424067244268483318424129834007897366936740760783846575322450745984661510318436914705037121479578649800893635755744099993908996377968639528760436350483077513043608201881619251136090693935422171099423926506831511718322860127147951359746856399594168355640353330093515185089588507796730409768003015112664575980330455467861633331911246563026673629353524954685035943233244842371226275470277159925180002130330782949546600917238609955307311233616551463402012171583258569738379442251019167635210220862340818020094581362617998376507631940894794110950010889480469276210140031429763072772088070017573371144342549965971576549211353253617423884875293474516432580691274439859279183234475276807490455355349508034959305237351024386751498617566758822191403407243069491699776405664171071737940431965763216391684856245996895055324192605997464161103145262272707541657471735165983913963656660428147058469353777925534596582925569289225248255834881313219642804843604296153622949230253321469337086971666483316288918156141679003496660356958617818479329861057019960101039705213619798450303941247744081272015043002256486996159271248197258117304684678599636097161301139334796850361380428088721394199769913541665043685646431066518459252614549836824496181809854825994847990393773412215240965244496232393448875606012395522681151170218302225550706520994892162518214152802121038928308328920012864696030604182719281840925432945319378650827790557310718801015260782272836920038032523442716132297542559798355967252544837309547156504740399552762951653124969868645808423118428772312305353188938348558358384272859176052751224133810898063615255156422223973861781100456751238813304253509378493067551587953942675053688769855241424208124985418866064993217012487276174987524777597053000938074167686944099188938728407554664692244891243508200826644027201833976130001815619303964675078649572601513033412928307102773149440954851112051268559464082529888711711789112209547955505972119402288412558577619749591266467954791262581788161523930078909114885085202616819230718351833872638705961227480287505911411523464053391736877157419608923134770070463203512570686356581287101583003706832824248324667611719598523035903786045391397392583004853111047601187448224049938407840841593769810324579883874603973840635822391140320231236458829618755486599227225148026960827405623539692136777560319448420876996125775141652653965369309083061716520778843589868315489376293804016904661120237351239485299612963866808817668209159807816653868279328906006704069784305507174018845737991246640294962898853440139598263806004839596509115004196741171314631630128000253427020395832642223066175059531976431618560897562675557665613833941369473924162409907215215074159469638949106500143836399498047513573644668602013246022887089006280080497151353615580390247359539055580188649405530255297988341547307222743754561060984106116713413594640972722705048496864616722943838216468717517823431382763565980006220912727136934761312904941828468430124887580832143226814299090017120830352353315185447780833188649161086091051837064434949278315889929565031047470712378648099029570477952163756845757232905242606000782928572178726410768672791576394804650490033395350999300787805164621975384130151675890913736774788439886684980731797714910952172470683997389170125158346132827402026816315523268539746535439649119043276854237073806179911131223893444224815290826201541003399467667428836849913784636813125663067597301835713695485353559736638384557729261073558812657488863912291058667649470463962793860265782614911564120701873833475701984683297516866250771425370073701859989557613338194726367221862009455531269166369479487679704999602365147201265136210257348328315875407505755618139220344983465883482130390404548179814032520789718009700047814218230684105090362814645577411806987639286068757306475312638585936950869719449777729674599126355972157280554421584850769092056746321446930509557117475370745799860001051075500862738831260489439353684339834988129327799052369068522726797867934878874298909402793850470185735582863697991039115000552761797868652676837971294253983687505196523499244146764979507168782489378721644928303062516786309422737473017380742961136188154183765317527416826668120346242026361178326719295805494073247158159827205294253243053638848102151815910521790540804468762338035482684639344296694219480888441002433839284475620574937029604515684748367315610721744479866363914099327484511776142759672761725697716483069744477408193118852347002719936923931354159358483634790091959769401765098390861937230144304931653972914970342852738285130237666313952244046668259221390699082379382335578095990633747857700257406496042272797581411622374775274443198274473533370275619778232704951011212130097602238346902162764282479590151122575921353566052942518803309660455806108249759360012005658663464275808698320830320122817084509932441536036576721080806016235207463037091836538847259399458436006131367671410436246215295942418416689116522382928244112393979458856227265950916312664778238035792062220437549835333038201261111253191198086545067710587353859702354949309740887558409846170456686798590044634163773387718908269180210658310675870403427477980540636812023908299421580790442846052138165801989153570026044524844162138628524454674437326566827208994549681120016172069679120673930389263823194645593564094708174851502390544702311254468793836595992884668321130016893599379156890219157916736739198200785964753829414107689633522082097230605831685033503634985655832631137015693286582917494404198098405008275006159982159405784235196779260840995901729117397152469655325787412523290980496808162221342627616913546915043489807444465853993452189343129314822904792597281023876157982390721788682249313683905007066035309469363435309810177931513403453763679960399620459084154318607590923721458575661162652457084101804461525147595482025786711212923113592296041794114687429452393537043027763930768128878893992713060611773992269424945203053378169294787958790473936083521625166489793185035807956544420277074954702870635591233418436327134666710075132790700164218300677113125207739123585132117918982978556222243949979645728540983830978859307874038873196929130102080635450222542942423320814062020546149634376563443476666166487875475822057655641740226720196084520247086087468867576960127882515222036648309031282854579731042853078373726182865446095754827472967827812495485240294311393279435202505824359240115087969817608645247824198107135707614786547870512677287543425611096621487634156896273953240375256957038077796842973864984542287960677398691954562427901753389514491027067592325748396684526918835216599816958469162664466572261169276823329247065225422874704572827581548863305198288484704074764747447277142037575691573082491426989762326090206451014541088667304968166397012380408435856010863487911880395363579650293668945306104269185531109536730436226011602168137080046903853987719748834544638161690657273365389350032490553747621886718045914986577857065181773402947699662765967935133099666461823239866870969250615363066711355527226952829001759772229196770121777855693677133686652108874218055473794559607493045378815440847796056565347598132937943763505047224054892505292963645249041577608093195271988611366851244977158207077582358777521002512790564864826757290383446024437024728664753948739994712680661203885302626140047642625850254146110956376019446106004625236239834537902761430628542797222383709495004469948507424253074592728167950725032907514179826782001617146374933196422256074376595598632345846720045833088650957947739333608578768013117867690304343910017797132925333146922968238467967900078380062945356468900590065953144349443196764289405925143741404267288633117539050669786042864938933902821842005324785397289590103561893461291206444158626222248063061184686503044361501329922869724320710837956138069433732194636222425273861167696676834936435699240421836721456209382730278803808038271180953598356113606172235695800118293869598767763623847119707567498499935339407449377291661772016575362469012867734042211325964307904664591265654645925245498345497209826450013943566254941120912564735764110825425933038442033950507378352186776183918727538009094877910214526974610057637615294833986759666763235750293710131702821393065937187813544423156801389660818890500375870756433209165696457144641478961286252971294724656605894057817090431676507795966437589901614543098672453796099091937755884312047497965271834060979743346173624134866816553672484728589447168275651157085622626322440464856098480633954098657353793843615243269913431729335648380696648589181928448737335574758681522166312954996892383426787726185118116078841100898517675419422201918995033014329737734940267559570770524550480747703027831811509142687762536539030444447525878521371408387985720878447820494602649005767315270063405320346770299280789597410258798246625074840270477927205007815581109539872696208571968255375183259865376664184716327208747010457445033147251545796784528259879888670406666092731713301442838686689150888316028184498917624245162189091129871830173291045258493641886739110581322691924663620645820658001546155657415270082874461400625540782351028468248941313216419371878605689823611764467531206895140202030493627347875519961529340559901080301713074108789361248423499878804434467065635215378991877090649750946525823957815881046999773206834306315530074712993172767681937086532869060209919479725361399148324684429424975779897170061123440674045583874091138866441038089404426978928361427272581187202402734346795729080700905773608617652621888575543518591955813682946509581322109897961065307431400505447136297730425718695556340295669789296740094745689531356542820337627658291969441093869019113925548760627771479042890555670392512205699552115807226521766892272347920150408442388885931210247669913396959680947959180973590235856945184404337145537551558442097925913722952827754001214781183922733706849342954178203174047260299694819774331535360408061486237848399541836994584181839416600933818169212172477292458334314147386014182887362282987235915347307620832613584298107040649896893904968424141703019962681792831638268800499779849084723472615441055128264199157318137030003196892266494701169370521327754821390389893433156220237543936787943491218450264748615955419808482646888855076934524655889309772390641864258485649805539396828572906658401600963031583042121223744056451691291569142530850334875535092176684080878644752123354411481745024166762508953719925812783250107487929882521101034412849335046389802347338312568697385865497316730876265248185070670823041947955133059131218164641865189167540546574101138317234534686457129687765850130365038424772084427593099613096869719918563100898958960261434314472892509717257356757212200458282772235171545568239464066729013583128936621337766547175866448049740064641003273984228773770936550356837265321211480357354798186308798753243956873945167889698650648883256267341179787958600513260685645188281855466028441184466122575144087854329410556043977084998988709168209943690144135218255582570847276753387799110390426110467280241657081183427654930388532855258685915878125446394679936101967582533717206722169614269356049395923520992341306631551385303520175061030490804051863610864298657379634170763700342120303325480245417784042651512942927226968080531056745164461175831001949736665791679780944989504638727603601661954680716428108776291807193977209183111685703607742690710963685437748575481911226322288666283579629084727989727780852275851107186925914141345167193910946050233951543127712166781087598588805519180431980766620240675199159430321845418371948091300859809171977497072664006702705810356090555170547437809343010932200058793291951708070900866310472774885487850413261127041751861746273639703678572492688758726109387005796542349617641322973785468587337201043600659394114394454765318056986269685621996075619311610101000277877689790459864691636872701176470994731508844461260651783050583913792591340956759989249021288968022856758540490301962834182043417201737050331913277212469322011322325942760197272183302033916974691172831007507327158951882424978071741053227942896422473069142478672408357773837396953289972588270220113500600308809285423173100814869199186190397496346172039254498334114468922289782221069047937870038332171397896708972887388240992801749973758645559795050287921748627570588592276793904783647364435107415393143205467799976369148200435034256437876921686627217380775270726511491374350034963584865699737297155352810357169422379746873798819990973083980213529980302022966765851177454080930365498891522669917984522773179059303928464754635072059746181508941751466717162589250996285653970445906646298161254344380619694386178735225847718265544175583531053090495819586310058466944524535870127236280693971340468390152154766722773523533849494383260298825534049511854367313960052258769613494652997683972802685745538274309324453041209049391109370607084097062535553680667612340207764954449596554564760891722891170138403880937873289071754636100160565404872071320505256383134912768587141339842641670007417295363173965471903444295692171148214327256933975369489657292581974845560475111665271388276194015358804591574426116244610514867916304486271247174946290388993151490186225754708921501481293933623072317919772742113872980146298823098349916637419541843509985303352790148904246452113898306587944338634736532866802068566066833643523150952662278274950072004419709441237690919316314626226984416678743426234324741891292671363273257533828142481528502943887829269396776200381579299722724321694831805451724894442084135791386321092662674788536854434349724185793570869767199268807542224922892015284130322190168762467725098258500765275040786730346513335096692562754303652504442915813411211280523184980270730583725662502505912801565205977641232112404532616307806889804558432651337724077253959372885022391535167974513638998816923301643905106941470361508097800431849722182043535833096836635917476057983948649132031124508442690162222078272153759242216877826815370551002544031770981819272590292792425335180526622317369861764685384439670172518535027852280094511537693545050859491837754011476929052915405554483359521872790814696017741276166787125583561947284972604009222483647026398038910104885511522956778937472577848676480903953917397196119853320633799220979642084070627601753393534059611877162755819617495736186840368933519897157778927668333135378952742347736752662283341880735547874459207292513098411919026655027135066257475271837876558399402537213036184666691797178240555634953456348572964371099095814797825865511776748712988715751052311110440896830252573169143522971305068809745370221081205458911997664247777084349941833167314307547469090765040734134223163589469065769800132654156247500561472567796104240720342245092909245458065095283893143957414382633355376121446498983389532461654221175247194854010392360183812245129994085998301942549323233176272960247723821058182814833791084743227448753399741050344996737014625920534035317450682501164938919053179657252159584053202846015469083394964214704601769858541058627335528759892561566089338330527075439983651889899076261532307593153217549184225754273705009529378575284627836248853226288416269042529517247712150442149996582257702250876651048490948754974899218587295534782523603813345439060068233561563878960110138019895499067090629822951434269748902639762350848819652568921654024787461614695110152335236764066429011943641095995452189126035818525426411833636897790716857138486552500267180761233868102811736894088591808696585289199857346098383520761313741517779360027362777029502495670030981089414069708418484558351711708395046790052604780981117045113110504281451330391188009362256271149249233592360721003541331774117441251076633721074933959459807649488789857627096247059014250080752615356294439751826186650474543422415440986706082576809230605550675505054923866697345929563431278331847585927169450523869112890457152697785704019127336605779063493171613742377531600638060685689169212438710164400372762138330591142722739171666121321818861491054017536006312563813276791679028914230453186118790400603539166338113398238753155299989783550749981373370066319948057893728350424422084434280933224317649164560398336439893853108719753235643757147358732598114675203688546604014385749889147766291641892259781456778712710187147628577980776900437501467575090501022844130144637331623679834897126362668578363422284967550234843244301246489993087438434869903781245166500126407415904032538762406720647675966261649896847551170418165291904053842148554766918895722210436050096381826088100270100927569155279437229268780717676015503916648949652271357111617918514060749214398922467646600322092942221548456527006049602741033347432359963395676780815515597597846623906866373544653833960953327933658671276490340249541610037012855854474186460020714007884254200993502075043125607819497392629733336636146240574068185435963230286200768869978460192155394903624599021255319061996132696414182111587531870957060030518421393432299467844789050808981092024011063359543871680550384937179175391414425836445691451071889122970422358173542028369484433166538482962905225670185922869039157444719872682100236470838430117959115036137110933737745949077650722775682459191405330683892511461972950071023678043483840899215211079238945280362219949962027623684181491608016986596413603789517829357230508304777417556827790226218453824398954656330089955040209865328970635279646562820099135818529666668833106181471456447841315975144078041055966022855739577334189305219365794936677265026335720208061797946896910630847432352773656247708630658024426869016651373319587188275694983096066798601213636191634662202185128287893993054007905029648256999289589509144405657092294297662148131524361689447703289461093838788952723225362795114312995118229413067976216243634160340840883593435573221788854511850431987268922788368486442491820540572043041744712097774302689967308286345421509654273091245624580871034794153058846751672643425283745561224021216105310208963150575588845158436747680689612318982999234658239602223098674979588477888282683249648445323028189955819481173305587572388346541989926818652401443483951820563445865582189155471386647669034711551905271841264738846254003220017023262544446654820548423585635414720163597632594704186720745501742575249937374986173063151429246069827871017333556924833021956868107167545007182982462505914307995692266246334863565425068417344682464805881697844894343417623906033576708015798738692444513384945181715428327167757805689997406019991842702489399386284980561344209978543438061794989353181800575021545317107494415025784219632502770207336599376599167563774989291956483191427785479366428680171728774456079627275272969329852558549327628720740539853570786158765075926733388370281969965640455417474830430983461064283372860577822423149224557667615219391283422613521384565091183357541667368584751420113723493121654235275381869660201547026825447218201473783004895113586490189712011806731182524392254491896993114399074955856660593522057598345133761865568147114300699924988097325034625044620184120606349823182073291780269789574700969454012376571792888544217522253007358762019113232323165988189318898278650118862050424950507543014282407675410278742301920504652851913427489441723986334710346853834770404296552106617784625971807763124046951484214867203272718616482055475084423597172255462817790692036606558536557926115503047992901470542239523428766352527798482690580903160717508947056562878235667813455106510319595210609058985086525314178713973208229794746641422283449364251853748264962098923480307850125657338005359701714056111725316294713313506499837375900038081925673771859472610975598067632443842755947612250072206706752987684497945956632768499839410752573188813337959099028008677262570721517484178464952079514833882167025437251099919472175272667077342994393096242284229720134851731855045771032136886716797274764116198396396110291181565664353280751978443615127834680041329613183641019075063638119492835332679673317172963705795076321919270076003981102880167888895856741078457331854880215085708564978703360065900680005838880602863383657410927199817332736588188870203908657580533208195700162722567776500795167615131271631819585047293517972603280374513404935711455037986766243236655472318936159412655421256329709203656281114810057141204258800478838509831448692859562689862131935966772306687832972931986787547368687332889513158164815970508691480886112019339771474888484692312431200678786515165527990941739922959355881517170029687524373001605307511533429030212338382719142018485474655471603372172844049454055171450129149209112993966950531592142581053052898788101337928897467620911101032786971966400033448338918118508121595719422086951264259770224366243192962868636439290607703368335783534509257462541220362210109206856337593259056719517892027327266486062010340720934098244078071971152461618420720964094297135910956199395029836185768035531160305504591350970728092425862293546128645590954033253390040270849776003954718398116142095094585074757958994126204801609791738148950364114963551126789400980806809297625425218482746490775816836902899061390709896323262405560955540811783961228688440074236777855843708264423250947056989911005540466777178824692155012667406434341224688616867644831116546787814321210903955105089388948769019182858825551952758550244530501939273235185933805757380012350897037243817708290335278586123024685836949327555302863754117734657200116003039683444824606259786157852833260113596682829588488446322845534827997431386735852428603869133710976016693731590302376353313012779460797414789591689591151916673385130272506554404052967902498580045861268611295460384312615285940593387437437187716511968746495218155132389800540089868191838491114015615789432188769850099504354395274571600041361771215489821327291468174248984466687475240020621320600345433675932918027657098609947987371159194116423675600130819086534883617152349257176506579703011753451256467694406947183517581782934945485192102546230192712999292081171431117476406316012348848709155257354560614135118210694668599731433465277380484568377253549688954200881198403435905987485484402048295266985198113315729990466026915222987969410459550091988695759949984056201396627322406660145724083562626688493552556370564665608667761851171940642722050168754572329102871643859520990334973573459332221561179000579309289949335983670105191011532594200537333037969074190178106098640419185699670450732200678574134518709046756113236319006360878874810803841585511370570545436168546162154413772420095742433716900075756361994396773060398686326133601764986896407161561353997506955631081718886100469965959482574336162424754499622448044317465185682434323053919249682074301852310944447416703294251501368944274279966347693901140336979659036602941190302724695638033141530763943852255488169441519726266656041002873081514034675388897009764550849852993672155703808464272408381197313636085258135338253669757092139250680965316764212738397025295028509583323839583849979428327794138838520792436690264427326896166470683069264531159202848901174506784070567740389850967381856186263890101441900765934543990825526989038854273909577835230686539271011044790250359402807272743551066257066020924707113845785760544689473172366575474236981228654353343047920307158906997746846320260213488329093130331640583073020617545702369430437062674922813460088592694553017324852288927863205003342798442088675072060768002807735917114063455270554145228596220598402869013180537212214498969760097760644020783031736584494359424217491869888327265318037099781123035248219232367175152075894828197587646338320900437506759978274176860750619867442415015659611676083753615447003427472312215364900451289105084725352993996375281196860676048529666673561595173922000354786952488274102035475380717278423384000279986652638324716478204624234285503013927905346130469466383015264434458090257710666768257620007068037368983646256159842193258800011185955772712086417392182350971929657537196384246076936145390537855214962006007970950604559221221542671479254903725366035236570122757513118189099808590289806731358961024277533548382477529800068835351333449614909559925497384553119589214360116325613427388655633900483603829040449769635920440296791580190385381490319352618765294819246922596177177057016102847764772647515420684746805347175311622962382752892781139343036325566032006102309645270882322466554950948475655290125437788256781318839437827380238816515763587505818696520018817765904262608226896892896937507972466681002047078322180382479475108445395801207894756600964863620035151565223801407001676590465935445624308587539167735959716162282940827470737214259656960300765353178051832807876575456361347008345122677263366459002362280481481354902758658208216661970309172713991533712121590347116160566755754172766344126601967154318165229210683204107645484390363776553020345244162133990104939752275138166165084078031885747653385504585649248975127056342608783583948460063724699023417342933905833417583575580235635335572085186982591120011208736675352689162368208584523319155773258449392863830886710773323719074843429670615868290221605340377037748172109861213838655279839918302582633051160839566042797220732321186507578714838999963049358086670812945256387039472916611064123881670887541380712392680200993456244232697938978845335667859829422698923425328748573892025952357942080593989596868063510767335089484081895808257120012140785238643225801491069272649113004951401353991313161123826171976168496745261922894894207019527272659977976811267634978953857121537817508787937911969480379126068118345087437784209534987396946648305334354872325203535787176320755877820352787070111594162495186265622165891137626864672070407045803411924952164549601332613179619621448372518394411612250883967605586511703019683589622884497520013526683835961826704675454000036732594694721336770507225352110305127779546967675994248193391258241719767131342804328687764527200702276898947423724807233134090198800872100452425477138004460303244065937199687977715886172676198962007871599563548473711523489363544305827455055826091564913694161721470476880592243184967734942715382860994813040455052626814583225579522051975730824984256435353712918455479622736734027046130779509646263175292991868265105992392165612896534655044286623177510347143463143950042416915496322071362929855600657752274436965593703422677460644040233921328247615501694123877912916243607392290425609486625264007750961532793483239635556289630556105690412139451610269073333847583149119703383586517654653381071412550166268029027356621852310804412638172934938542933942611831063006451269724883416025695142833548183778098756043532873464592013048045871951405384834767785762221200159501075510650136482198525085197771365817648290673080182943352801247020375434209665812600539803600669311581087688599026671036303673691837934674299197279357241375073587617237045312096327532952803160431268352321086567378403240711969568938624304632710724659219380634288345160254075627300926983591491437399354689137759280741729543934075229378610736818849089748189381929768830045793173401433231561341959977970424193274939640327897050473737203511046110291595076764135286663779320060184874826239690926758226653625310860006830704447673310934529721365301776322033427045811845803961389784181948906339519782344651059198424664733142061237306016988739477161645615912672168635383106849188137501818847746983425032214951577796946631099516344929371118250782115133968402235410686906893045640845177251445037937837658035938312174548561373838457223301801475843975028714208890980675177588083414393097125482788184983471165576642987388557761677757153802535519589581989493196044524448603964610571207824219795453916771019049780048881836128022941105139810761200737428740291439583641564596015744162952794781770302203481545453385153260324493298370675337245466322757231097435738254345645116721118587875757372962871625308928531817101010120280983589877543454336485103394147392229732537393219141494755541886629273176069575964077371143472891449852349879683346970985272605368024990170004504112883463073731352494069196994324060592394760518924060659004075246047026981060752839078912598072460516640599940181162345389564730319371239704851489293642056764503817741866978553418491685509433999950852130774825612360158027546809951750204613795152277006304348723143183025829248826777193635407713143459137050550709189801203794143663754754819111928107215196812087767206805286435054057480964183896031803525313922437171994828226071635758086852958487822359088482784746174844392243778537444494183690473245779499197571220562160318797750950101827417376130575368767669072513500798354383646859126567354855121840099689763117112949371542579625638024859124629411754151281182215704534560180714531902354302192055547493341207006472403863511079451590455311526102178178377927238709902065582512308396099879835490706123022118925940541266718013388100217495929606551374359111421601992431450409743216155450446272138127359385822309547080062588030641311046652615327333236181884568764079043272730898274276142954935593096771752148135156331893267194189620176682423302809833011037436247765931904742107492183089842561701394228203185496617844086970050789621115616592697754566764015045150159101725411080339108834017623658129479589841783451518054965468358088874936960542350703783262152059269607953711220112600455434970443453684126786629067514167400482841161628875380182099771402375656769610384466612835284603252624747176218238881041599983509514632786147171194696939027183239921331095375709640230445266640590716255856832858576654264459080488041956111860331742103106086217954637253259601841702028444278698158624384945574440434652514211631744863653563834771762596249217736100954611968665651351260583714908893883993097586893316190880674304919236477285186060822003003121918430801243950564456207736038731641257186574811334838997699535338108424502124479010051234400921628458926257192860956635884801610843912062985881470169783104015772636511782804396938891143415788948699063009728676272937191206359829037659826729719053773378066109989574574188946648276120270373552280923795654391368226846481710291879425479223389281226071825555609862250996808421185712075172264243139476735279233563254947686491371480067213286689427579134498781216246115764569066184279173142218119015344843828210855362287082331932989150854106177783582721468802904224267291036168813789700230714142468647886937852916108879706476883550586099540799802567996263046325935686650113586306668081560931848643837162278051335640983461591280808916905291392682027001442252013632869126793962169734583389561700469804386931572178010793334934389622423692493248324906344270329459636919396502398154491763309609821890057732575493471598346562903368048250148601243718795394672401544187816631908537652194662974439829184542798836938237780621894266365214035620516735719863745118605435885250080760065199705316904695186857691858940115639393502441617331416550606959865212990473274095321678135272405113819661938927098924270109795575088651263642358586871883861451673045764589008059625180006402396403835660723207331224012980594777251569822549473484118230948183820266959613470106769384583443440703168215248006461478516683970769670505544141560936342726200356360887679625690873361509056868036324504707100815116141133092853109988637733183681162154594273212556894638467684579288022343109323855896643321173043427002452971028203074062489608489285697301432963404505721217095792614588117305983617066333489629819962441671445810298593932402010232666301830912421971895096533364954556811330657501753236873629715445720569911473053167724702345268982658152664194557376840389446053712460862697613418499305152885382698642194983983209930362985233115440320104115037137120035047023462567332278820347706050605543484231980204856136347042336537397174844210289540167257108453188638310776330960305313572858129451841822329069901016456989292282453711817547377839032421879019938904527944893012050717688056678608668849510571796337217665684439773889127937613717540506692962280307991466271491973730667068341428349869341092394196185363637386994103289477543627426926898879644159030283131517516423518615655668012397879594774805600049246456258334156748589386013843244222728764797584716753152026279110197200392657373482785463484521781287594828345563531163911007772810850854376078532277216828346229650426294517114849879594914891232155457684075222033712222008693504191250749707419960999472536481019682447545863880019594123872229219587029524064309790439688781038608619604817408876121490733788388108059678569751953014618090552476634495309696336814264166881109755337965888797781261616702498927787015474122647612658829269587762297466368236211471516034166843845638904716272154169092315419155971909241926117800446316816935749739058451606551035327982408457632859183827420759938855749598751807513339009794039396635565833874807445913963858029473603936662059714609267463596301285561385117361525442023988872240226734527407921917969473217482482108343526665126246980341656800737172617617919974291290580150056379428086961537641008459365786703651113318413570069269051713975477878380405129403101746648528472984042616659121944325199598887320788394262767041816059691739148523512215919659454714933793207670289730303089039982705537650367769552719258376189388196172607595391878158740861088394165643823783119577522453604843531585287529342330869989636930890446385054640058500774261371995247233223697550204980879986205210042595722429118412048359619525441346003146537615435488739090004512008806635595131770955135314986873114636328903447877848406550000256177297753536655869699133623200430728065346088682979777335247338873914458425210108828282491040053876234767039880909824502502718344670533357407935120026320795426599461709464810192615506079397828768360102785628642999864312960045677814895683176573750473460272502757802641070888248981344596636453979095478929504619151069808611315160288000506818755614451875398602494628989297432359257969569243699820206198056143917027766800824316741514106179084828151501932318818787111173022577691505887055147700453303817543935776526888855462623705659739313425743912323979802071650072973389062734804205214268275039283252715314076606486160509721555800804202503356537249808083278975021953702084375244622765103544576323438613347136732693936284673380960832853235786228106211484916639007970157466872758491701187205074565795626551413339021828447312262937875327533201163284253895342962374593801995134510749259968386379945167709306366235263590930223195155375760043374517822223917519805595856497686876412189990235174497931617844520573158293301304073464646650485507749851070346656720048285332592649209884495365905870078850362758409487369377542449666298545561495274925307833948633962012943136019532951889602098936650018219619857843217745336240957737117801559086969517080214699539022711416766789477886881386939830465695845483820301168545880761203412096106235024479559009846793753156493895194824914512146219687350302065878322934280063801554255799063951178286427955313346950463159151076555674429662912321855385948676844097911571120971768862240244567232688389441876230929369764425525497632058470402067664461577461223500490136143588287546695439510386149660470697730178192199336780433064439947395889957445413198420796900550320679204330638746964465409540761087696792099132964104750777973457117207617054107809562780880683834422392612301068219099842470662155865626286776345051482109563404046890589292548339933882490921702373918044432211125499003932938664107096204589463223751603055330726268740755002826580700075223299991729523778284375530364918135182068221128697312155743771525115431320343044524769062832297667564733115315748881019055955836107861297550062038024814296151201249648305024223519126592144045277348634235338375420272041696371776748135678260531739473181723495033470499976967300385465205221847841575964337708672850253434373069466820260675189185793140642746052781963227442465614697165313172323932390183716165287568641897150665229417054775978988439968882910278631693555350529507170926553119695275721210164892940703401751290329365224970149563940994525527367567667586218684685987246442120826578029751377343774051513748924766573087203911439952446964097308067323940122352632441161068363157202579034192300137773545077867695029602157010080974749708367809210218271516985753385632849901977485192857734463737058048178927061251738232020913029349380854794509463282712081614904507121622263434372427044625480867808835646790181690568179772932301860511598802941646737073360659008331533074491722047388112452030942175310554268057265994002752728451157751075699007373056246524432439676286626459948903822020166495681533414829317655746038937760491017860268307547032868383667251987916767232192977082688665206937090083628727653396684658017672542815209496268208158537529573320825454787116564906873116621346839261402420552008986318243690704796528595488367344182453886070291098379917684228693029307206632488696757274595887924098489579387997208715803792252856515691034972361334068853840634955647146228561651154482095788734632442541475674098438880626625580172627504640465920590188885620159238386828678076247354191551988501510460132475457106338204062892292192221855586002861969911970502827618972832648338152027209578324043537409173904838544680350669861545226537084193758939198456605016250385706327413457139145032692504023175569231285151970796290966033365186749230496756603906121148074507232055592925810505640400033298989610864222786696632165221561741385605395840028028034432423978080409606293013983008626209226180278819007858516717551864201016739370697148241183963172488652714953487194876720478026267427257144110676330328898720268842736626999743035721123341666340446559435281547470313077142872459385634411379710054844030135275993469992910236292722071510052104421696961672490246897491785634454427284799416027976376708527341614163141627754619808441631810466849226146138367069358000538660269476656814470104169418322563413621238987780087054997273438209555762070220608725434739330029039812159864723151488698600268449710869801890751912828009753865648923146616713541838102409809846426089448562176183516405463985900401145835955896565499029209029237838981450804020263779143342033381382192749956331427207601009265713599461867609038741373809482800236638808582000475617797936096787047457166556062071086109027866826609854570250706683215179136871879456409842678956303900259775729388977886074719709322101839920984967456936292461872634843092973603690726977068382779921990998486670506087165218166941244421129049357141363393428479386989524739336750378428155070390151910856241949912032544926266397325016653325535712855339881580587811624507616215936503691398864644781031573626944147408863159027968962143793893435742232622238054959775460566208206331107050038275681220888016148692133424190079625651215528638831958123172929985378512169415877127276753442778813882434185150441460827839716758307132848677112419798783995836913031904825866469623449187319922355205791074215203112601033068245429198656322460979882444965497221650231183515521460410949328468457775778736201245389766033775751218490790241709318152645698319845859606525946347788617659152006512187317088417004428803973227858217256535609175527385903417206030712585642754188039252112455071068818854548963682250148687884142444524507663894778787624346598063122169259038437146353025344942177960331554538190273029853981748885827536811474267010254944376938229075188882088209251123650093957025139978047056586298922093536884468422131189798721354481931673734731896181130420786808903380636471811829648953169572963217781514833519570208493983831097290917042615548237760410434557851191646404804995690111842664329974159352281518362448197352619608087910525884141600643020357338643494299826884174946419341436955392804730461352370548622664936416933275117033311261994026439906412169309294269281647521557123368404473505041632185957331573814290131674455514413617994777485482976622640633541940858421594425357901407737045593226491598130189673915677323123259587249048542398106440358777924935689856714542413836362972043078033397251557792119323797579596538999336536612494148362441784181688289275028333223882256015792082405466847054545086608493430276325197424478508312922245356522135844524670782287847353349800340439216260398958955388557016278073047077814936749789132304445414803728150787299049545651414087599952294613334377926301725886213045148321483352444993656172914982100206908710046939536448635503367049132250109357975777602963997337015022470411284303744407457309215659096106402652258111599555331224323864450750107058826003561701256570632952732318702054705919147161179967513217142307230353833866009909190162348872777881332478592310187327744408421401336455952015957164835129893473890491926689053756749271665940697116354420349258116652341486272481047705062103340610151343299022717952431960284768336449645561148064340907980785401209171336913736794346659032003987241705013295148552223232151937698097604740277628289758535401775300608885418936510886112745175363148661573542235792973815842692508591508286510475263286240636815225054088684611591188682899747842413307552047980172476360480344114411087147204739207774559678851054443942102465685736099349868841898653287520213793294632679155040532660750018738765775153624216599499003123620995645254238882281288555023872815909767588276090049098737949206888778971618568591962728474503846382676770835398978612251145032386167330081734925778601950643947083448843151992144589184955883032528314994722169089295646547060835571096094245551970752897778409177765441444304674475463021260976672813627227946611670845589707759644631899119055523428383699000372912362876297082267263693553780714707207957673558554840352300450264598247430746064653594996625457013263981178801525403900397375055141298685599082769229141582610958062234217227155925278491782427327605811404096969827526280432242706682167172512104917754725315393499584518056410221092542735163918741639011147830364029315790115956216056159564722160064705449970338832369454430855715870934618408724205936874514541138262276237671752557876155378096621127067229969590575365794710284969260200121156797404574446865178936026830545081628375221187094340386309708803236937215200736952893425877237400574664755943975397149630948204353510337708407654862035262020808628902535571248598910478199392163585892352081169082625007259724127403125131292099925785492273344153580088191951019159066682004783647740366525295020985392804357507163414433971543427134443551428187872321087238453126673140769570425995795442842680416055341026729018000302742171465388432315371950219975367216616227844198634760814890754586600089264704583431577305080392371555851552073347189755903315638957055840092983531669254356327951526858667779332884438099365231452356103914169509033941345830447727027769995486932883680629507197447561264701109959891625711837275374163596743990912663055819953778038303828248881164368609406102612100715399025918900916010868569850563380424272167053455793367437128404618570089358908640760270308829652322370124982003275676499415070228806377417820421372830860249744801554476335836819558296571003521116533892212992953854934379610401328174011879500081355346234737066969131212135922960631718772297842802491914620697523339205895110352806548200911052539415121817873397365421236554512270593020324956616928080928162943432423294327510449703113790115407716039297854378048171996560601274608635093131169960926603161929865806415413049746828841677131363525350498378712302153276275115620091161708473858966100967289806565164266806212133391758230102912757852887214225945424579810499335981474147822760143554463057050848482021901367813475131327164604987160343544728965634891666901248144626928412973063434912140829071063918262230288269886442996208972033455029618613685156720222131243072945361902415973376481030328499862318783230808526374587592666037625147653201174396334139787330877942356244462645747636484239587956820681190300547218327088331395389953124429881440717543071389746146935351603585584472626788314862629559033030492897928812027127546236070670973620395178912978179361772149432833039175752556388254593650860067907049905283055624703741774644384351074538786712031389489729772657855649776573143713003786316607195059978835225228439014795820254768223157403530253620697956097160713970561800165669749662062986455688937921755544663362326530437588984983336792948557821880461549119432150426148557302897956670557603561020425938205411636114644012992217205377820689670083859467960177239912586693800320195727003944582861924452595778756226556833769286798267741376394119921870557684170864155341238292240140710436525612497100516440395521241746007783079177616445011119365700102567957895925261958765728150049362381672779348000049989587960621948007368914140040263419955038168082791465807859850045112466815125835395967678046466444095903345330916932904752143721965018446808269550216655878767791407951916938764327328139156503834754804466774888130844300595162421656215096728169507531700810648132932240274684607639229965270789630980030353178111976601189453265672426313257610422110221832916849563362453100447748445347146231139006292823044667576998928123503764790198659693556031234387590938940473682921245088476692580756802786493383237703582246255631467668159222047492254638496582986853806296697429635568543267489636603495154058349027708442342742835461830488594381189005525739075723708661621889569951653592293244812468751170763712316978607165352257108086356849634289005920372333947873415528601198844366685404238322315616445323025026649520903117957257604403577357922943952558095685075832004979045336556198015673139672152503979364435850972512893368640383302146050525786826399747497311191661009078423402797682664402224118850729540564580743744425164462232396098724030885945687912096979392822462383584860938766801568653107069008094918518546947682519046738775729006194323702949879224433916122738668764338550245370749273742355867777583735551216590458208948002197397358207524026991915877433793179899027079826532603708130818153143293484217891695704362156901225020963833063383957102859380827243750908904812559952996023617387992135162631196083612473418671797851674612890821316246874705884489709082368338972004036106104254431597179370933430268372607400065582613410998512460635623937282839608410454286424655938351236428613173713264924335855485781721370592121840937244068020837816182827356696144067445010684879848646788030411469159760339530525175551733299722700793282547108412772806014270189575983114894694899595096728408993218680344400699423484553721082876949011359245614026641090078728089953787840786327491914699835786259929111140254036358743739676731244642230524562818277234216275320365080260158726078414821042056379977805155217410485891493983236408286854964362430092238965323323994803418456499971172178413368456850052263654634498601433020819649631184481077811374070003825363154092684893896493997671472118373066287177410987003559622623660134184682028845969859299996021670359420129564541034500470378440916735025910528063762854965020975365640650838005611534253590129985687900970011953836142727382621599269285673566753812148347825200643825230118288175805328256720775051851417098420652065062881786348234631009850710883817668661526115528326943422396128950792039343681852199526164197835659324188909029443368964355705297092669293806838644365330698983757926941690754332671035820624455126923918771637215888881408235542513758353622560102103042522515535355761622216562712315148641360194181651754441925340408359248813147844657448356266822844519700229436465965733456633794538595242949339840653784986641881355309125940356741404660012973984709632717799247665003784982127181498126166028305671221637138737381260554312693021184326284462415799633478073916765113630501908857168316210286100253887363486865555273543773332787117644456131630537090548619553772414908549038905249710379454222700045673687051451179919259652523511040481407767969356079848101942255191932898409962925628630206097890167892263671292661201926344440558537345575993745716550946080660731711175838952454322833160572120822366242758220598685805223116285203381101862775881593962632438429883166889374905889209987316941248575860686082688426654031527022491089280188605888977319406405830838702806915093597790787053685771066011070359265728913409335148883889235327105006057075010374284898306677953567434245230895265701160889431216567273913565064037420757982842386414166171225779096704571763014833973807555420509025219834343680482621749717207936200971714321564254515641486936792613657259382609311575656885365592716006273440182278885688132456595921373839725543688420997649476693635607383696106074921234399407028437538446000858358127083231370588523965163342825389885984349992024876033306204307346829170974064587851094026475428306680436901700761838693613154994111935995555682790238784464789882652083497574830786791743656742773245154961672291651179643867321044689773468108249376298279562514783614782667416561640520800948114897993034804607315091264666239177998279371190485910292869717896331403177129393903091868353181755951958384559358311710972602527872609656220504819525583346852036508010811353682570432780044022682180012487022574366068330170778245943482590907052866851041635233278504790650437308798450648990471186604802929671378591087020927475654174800227302950783432127511698788854466776493613560129806119537805884851309691989059780109301856091323753798761842795841606763197395066094435001301224067730665084964976020281715383161977082446512435016338331858141200216613818021797638593741995538590333562973346151684748761967206477355072164471077382296215683306048167311465443651177497219438790327776267159213384389869477913351319656556836608346917893216628698688691098781140972171115452857467950035265021854722833687350911834225524056544080135178522186547241517082107421764714801109193790231609541975577340505126768388441520405683073796639108640234660624986555806980681430575024172754305764967229734852394993688848314527819130111548284056576832021098317967696248994922528614510746071963724358423148065269811538340856564275413138524865975842573593482241539986402318347446846915148938781589619245877273559048274207612440441907303186235040380169497779092071051786335723674898744925860524659351726771824194972384929544086490919302965408429131074957928487126979440136175989464705523594953605239453145314571694274052877125904058800232792551007951197908074216769649777397643435147378366510097508796957778147284096199232074398703693169905606260157231920733321828668746426212923960017340231080959554966857531104068073970038012105826831882225040431631485843843865795991209813230069921527706642924666801148822797568781539796219122657591070866366808843013369226262221136331086592055553577044706782735454403619520202709171822412859661073962504360676361511939033651367090340713806583607097983697035097831657698719730715199496671739394769138407507409487601288334591607711750258730161459831601721877667175331697411467692079715931128246071935453004561864264665638936987290028137953547141895876833028405077017193516471005310030492137265953918319710739367988405630739821519406726590792798884719618565655286201549167704765087784392525704318171522275727667507370713944795466538361072243929212981240216808678406990211005443484373754753625024387010717332894397262278419422033955493729676926135166131054352392468925758463195406255305265837466968500143551575054401503182993281326304759055425815332651196742238715574290717028308130640963710142535087473763971360396702995271055241456096950836042870689189338829609750301520830160453404027860441056783166610074716355184721084196226482467943934192497810339212610091257676520130286499630283780702570975468305221337409311733711011132873377764913334279504977701132974651753536245259616651338169577860925000449131691319306701089608853770384704067889526181674759360613660209963712675858266578983733086591464263368073703396485975971769122467541154464496777259922435829240287638146825036388179447671034650703507797547343351446413380503638648239589501868626143836172712568169856661256652702332529479790635557542814835759585409920922684449904870809193589666398299215101661953849430078611141653304145395830501767741250399807657276572791729666635732667879687516713354563502710017211600547528127157373445674739937445127896277528440296193818439227916358214559895219123021575283913788443845792039394652745600999756588705700871429548138194934539725795726554617346660001697251306903419886413260070055700844406290055562891616107097035568221360935558431847462514834348917925060208113938474833160188452426476168896940563321206595943661725089285854874289908710522556792846411208604935726970527301893581359254842859986268858105595364387986078234161546704774367622339174520342829578030069745929777775920812966621531250258275303318141289985271962955398394233361296149302780254887079499719520626644849297342773511399398862850958407383876171963787296321054491479272583425021720586146837220832166086159250551456907520042703947672249893197476225625497276688083970241866342442910711953074507313787487248646439397866587389967199482567532191793308525183091472469995883119296568572569176123994719695091938040423468168909810945363607227678156569096756251632408778145859105841231714376459199290114229219112838206979616297176143114217397468152217894746549277981762192773517957355154142206687072923214893859637344381293548481515120984877110651041644041542473842702894846066738522305393386151110437925952307463152138559982078068612353309959944911443681539712175202446905448504876135837289304773362677358638642634908785094167820275210665415673343089049539620789389879746757791611754779721822102358195234995276220325830551847804352385930641711302023758444316540045177412157518075199835590871808946725616104785872125854480965847661972110404395967632465078459271407452050155294219043987529445834591993365837816018235259452999451392749154908815099058144091809898810293341484691705104976232914323308379502116121336052105350905850982357333130560715785097736544176679588207564009994886875527052284098728640747165510085023709035270185331421694514912412768947219114035559994549535061865489234698921621755782550584164832595343782217756373672733975411169017813272459502253490202037134645594085244839478275022626659925085564133319841393885643215964272737024807589066175596593947253142865215550173488919133957373525439967995039398964944397923731814021610320585634088995504639205264646467439936646882410121013829794788707095518930741118979785122782858289430980299156654354775935192262791460186072881394512074918772587280017561504612780000231629038584564108144806679359640914012695821362910347292124914751431736614950535004173043338509251021606642681457887935865886921517800570810181881374704232566860378227821126045805706598238786143828728336478368869539148141885593577284201415675738991171769109103210771829222926426469159236884287680748614444460086933038473082405166807221752618796004796478095004010902757632329871878690457462931715939551591042168007977248813767842754333878673717137967811097716857126439314227384338574771113677845591051710762160249887801936002304608349753937894344151435049847764332339254350275943181048521863360226458779837870695299952461894565150056119051509591941084797889018708460273456047196119566394394296098646459262419755315134597102918923398604163215479706520268101252326002715577751295802303328660812006579836802511872408792910024542906633230156879676311350821392512443608680072330921485665927983213065956258651070015112367420577131334690149347767854809955991884629903145780247565271234580813633322639320568738534762423328133871279949480270562489456078573798804037167133607151840794498975320380052177599018727286031551558221201214774727091444957446892234323224157557569860415325236138606180458096687720975221539573157504039760847563916958370801360515566332850694629434049787939259624481107851983758119883826769221396250150724470740742512442292288106594476314011933213092599486723112098258766817043979925956111668652439969027871552693949944204348267606857482473970040948777877783770345775455902022345598670805447093458170301703110138863882026881961334946031822770178099083661531305308612903814156484272193477885046037781228437580300474803714645291257994645608062872543140813176450214485360720336407017510961184995274498974484385508648109668246538882796386478639560302248560373953836210259453212813858730107295266968287452927256950410444645095417001198781408815977488465339654104558375324485778093404104573445712550318943283140571194634071533225784696873213453992769938421906731377205481182115345009774357148915696445467561625865042615868550686848509686245510262847793261516618540300626092388908543708790442272721875458754393531745976109233690578760690711539092075415381535475383820031590862726868601429698762200062073576286656338104248470041866663819765284293482838801256216635194006191248881720842030306426892548019057787841152332014327625987643845527938369740015153003992457860769660227787781398241990707529883189631803418298754194181606584129947681763716193733270690568995362443609393614808428102245382784912549016535726948665318399026213294838744327917421129411429991856414039362614225895029414941485961733212426792530970074690740542884992059340294778942689171818283413306117094846956429575197039695167654841058576097154101002166218762958048634505863713243326454563777556937633933563460446985888308142501490718038376277753268418574803319158829354491544736863168986777745393665763653572230399847685278308929077730143627929114480902027705922510169524546065735642614716238952902274393942670417522590377138284633850331852366660696733145927130235464786437952722413552621454630144285121358533526265439690699450594307256009557401945883081872612315966185768433696313558481636966201910577169165685915068728639558490609561080219424097119210845748923269411769704634034467873987135704886063658253022239116224309864467028904225741535558466934777083540512400502616378398675333119310483357392813028642734831236139633571349790305044834487295337272386316278748650144955058803408927507642421509106697541832268805598455060725867386577079894117543090049534644939130795395808341453298503954591556984773683013151135705311843595816656748073209724304619799993498838461903715291852570251770639743281839857467434505554169670702111658266088822250605390628576789645960788832088342789804353851572501144930792319875885884172795999170540611162485390337710034270812336584966738828555647645811789557871357821817667918346049259262736397502393914047663090460836700884289086153247325097192182263069016292935487832159502452736884633162696027563232649626385698491234412223930668900023328037023489014935470424756102950093563197569585831096587785846161402591423062284863899156031111373950758493943037858924584925419840216253752960283040531857293006419339308765488462271635878877848813040592221938325629587032339667429891982417565390457270764435436489700512974639678059307662515187559357649479411863062213498544529818945272793938832696193659378926303609294326338743085979950173992379508744136079148681063300812099488424664139881812744036958654953434339305872391178151318810559751405800861433097529604331521686657796512833201836351655945756388788098167403301420130335773365631832475323959079618677399826825267552571695054095603379222583179443999765781361242841334245528312753718211354122772432672070470881862213147369200636588889183106053673104583422925977935278731282180581853597097077559490953972599343536426332250046102021370750085965623744948406206132031451440243922180835225300963341971175943274921795504917948650722952781120890327639686965355167596853523884300841390480638475247139534610347666000613529177139811327938132789013642719638086687201827275211429635144634754679836618075211550305430991504050147553993607114163117178299247087933513571302205966494963194986868880249899818699385828138215379986095429570536495256179278723175519525512144981062432812381818185833830647700770456890660411291982250224739192270268467835175154279520442128223059355492895970640443825898613456358363073695928759865945571862517560758212039941859332438493085435373554455804647981364904631863213647423753665063961746076160496349133975379390010230984924368186379343794515958016279916063388670201667313763857878141679819554462082012210128693252034488592999799811930675417839228781556283544087187502899684784546695765511698582013952064063981046193591777067165353202357517480392267333577242711279706992923211523522202321863675162612156626766000200056590245848161169060264533653544501929750119529005221282418959468317430548579722082986066389735223744045117632011744805156830812379723498404870737333987620423617631674203721088758808193890690246713264073236760404717613695918810055009379622952013738326780242987626164753732983892725782551640770173427043237516809190032634636535757096126294032589647036426855353650409911889163200029197282446760790392095670620157180349129976751770611697393144713869726017204418451399973551648532506702551417078163551306628085274822884998923936933157031591814545155013007605306491206840236157595312392099239895312858258978109499976053753236754358343338622630946381328436147682703883429717472348369722593092214478568016658625306023125506755852576204056213324324078255113209892604748102826889791200938369271137700961700683339176552990669460657496610453850320465161540459032775032119693729440064038056517925752255116776142161296515448391802691056466759335639322075628627963983191190125901657268875806891630959335390413712236455263458039928561155167218362162950585989265065327382642217231802042793872057518723489722439170811883576812483313676300778906295066570728552964451634805013116428104543282943243957655346122947252914396151341547258562285658738574382921405398813355997303905765733568194710291297134174730818421451391170044276056025213072083108368971840597738961623851513677809770570573807874582061912938052667825967526726687013932871398312509330417536110332150706386954564810934320110757830216367214284802299098568272647177736025262992910994229490902664758575984281131796378105866217586816004611543043467571302662052181286860841556624959646003642219958871386939013408441562638631232334021014217421663395776173727818323674674769253034109892537795050843826501951448835494951596773695099873122906981424463222472409054451485165758621533625780009009975467274556773554405108165408757155188589238272367508923404776439199119487028919256390079388994319096032194652636023309521118496246523040465386810423285400631900415321678449094476986164729521772365840772614804457997205300936087919630044049790803936207401022348558508355590340241021585667650480672163643906453209617728035241403152213540092420555325430048268381200568577480493376657580161865105652201989226491869747749306879145878952538032339132399612170236700167565116036637889276450384723717855844459184421920128609242087509776219789454765577000280842135569423583225747786196629693128901693093761276325272099979700599138509214824275480266361773587845861837384116674771747719750656430928823284770953276275599700895024824485913543967555485702475832015133337699839481637409732569837181173273993733214730210861989670851383357634930745360800504260648061888757767581692488107805844613869355774244219984691083025351722559267362355831632010141988837285672480927814504522376948427330288721702917872702272829976551625435019722989028686914053799296968435618170424219891203128479855924968386542351451365445490765732595991380867882336970760363819760689741106267159417896503992659896973189169271793117254280846898120186540558252792838276450421944375008505631813908196126178842153519550229006087013598150610298846161234519160335943296268645226404172142963502369837569365791586162481935798752938501527722258045606689144911038404434775058277989553132330836780196017000140212418518901150515722563902834545548129830097923115432617436821516923663308816789500169582491838969832738399700646041761916097919675664228233795345815286264252189618029763402441895287317836238963088213359031813731653989597909046344692773262514058035049625221052503101718696877620616743155267346273936594385876516520053797978535183848481169910535363283445094933149388916592303315477475656850328270205458218926331735990595714081780777826989366901297434546372035272710818319884552922652067425173755782428003643215832380237901194166276040784504747263123926868029992698235629968518584899591080743356028806182978823352190422638658625811328328608408467506225534375675842199956693511445455808366376279462885441872914570878640824975321179132728979233830587775478103122998078574090353317962319895654756064887739745606075178478239099277782597119671034127847702339489669795777920143493555430310780709251735554090551122813955476287020993594640708815998871728028475749880904396667227922272708760176646671131422159873331225046290750609220236032967122562524133313390007849186068718485874231303330541095547854406332995800303622541658181904935452474848065395549812339679195452313121906912756322611055016816110319609381774055700085282101390940064549265515017496303248835791497473475392164868626202149198231878401687048280477843171628964350137133891421557927450669997679467852982117489273423861137893122549769278306350256606798201810121462610494301203029754556174416714415481491696316507750078048124745427544743670860926628271025193424890719635489365297743576579523270499146321144391085397609522087052222219880701037137881138020942070563224790794258945907033754623703156740851749272024483908321542439391166518791401621216081716386524236463516578800778333868163571765148831343153612780998634052650436502337372618395313656893369689184551101767140623477767177763295609920723040990792607070978598618046155094005299591471402252929746095885224620190214511642897038197920816083462430910680192282050872307454640405450369870711402211456577176390671158021285150847619915128822484190669327872735391165838155169119845845355061834161453196962714549766244000002566247014635311353891780568282532972256154258699723980494168606979653221102062557305640724338511858030206734490628982683558823511828166413517522974573717334513619769149861662718108472711062563908058811427131620400590268250709797285432166446227905265004772141767866447905305378407192760782309829883251762354664152635798951612007434119023185932764653098217326893078741142074194005070542018102794603118406152209138303712652416907359385565807555177382024689830213491711658421500797863346856546403008921003131681678347698995613698176584255994686224634966291100075098001089955441627718434671296064863778616590990060751325848011503066253886087305094563130321967225705128272988316195630076441593308686906884971833663143711956798636283162992061242367452821993662831538010116941328302524980812989226916352352449416850829440206045268358958981054741971560858110991216744509842339184136921656677586924375981875705263010670472169030904759868686221427865299765401755970750804229174064160078930149935523491051989134419696222576660167201973130139956736416863108307986285912241547240925151242354882857034486202069511561504551441890845416818911194913171719446862728635953648022422479363460357125685343738409476057852027606691396495675458092317664472152726208932835888518738502433492504481135176965300223817158902329762897777904288215550692281213167795360078604368602844094150270737462313681860158598908965060699189838358144688022544725987106566303812086533336936342444128291806206794219139876079401790319821308676767903453583673210996435400002768781817720673005321791804137759645679758072711997033324291063180797462582142297706321500482567983135879119876461029029454427918386838392428992230143678956910311598059395375439919934342141450481776764020891477130627269982377557823865738972128150736962006111675647993800588316828651281533800830018527153182362157854294959004583399436720589687515114272662059722667676238377553689132240904165727598978579933259770400664181267324216167686121198278497480664842940051218642263087347575445843183789647171318089882254985567176194247524800572496900401113193171294781974049588191091325492880095645635572421028526774283305873892938951193928780625311373809748517148558389510134637369924912479175639127529919083387643883811780031744318037181251982016907091607724003926114890301256940210787506378671822574230760657698774853811634577097016334528343265161145786680906259980790804118718215000190019294795748606661096680646174396253670735543737237208622032596035828205197098025057784430019113413296396381974875056120350021234267345324739109493952288968128303813368318027411632857801050445498373894884628002526798834926539033433275310392173944813755071763968736768215814101376306036863685000527931192885934869986438003085738776622232128510208454762804861097708092183301352917939655789478902275599411191781770577339047037440317601223259231380611170904318183507615098536784499093929092929662126000623507435301842403843605321854506442217477947257011608084505588226227464893127191661653128345524942998983421028412552257420817043894558459896139570536704221076796701866252166948829835107309580266524225810440565971885337213857560315301494370075794308259744573524583443201703211608837086835228236707434065641354655336437117404607772307456344889514497270620483852562909662035662084816163642655625152186796178708042956120727702816912397729742700720630341202997630743064018716474671600662658413299340910038424388615111949161988450114814428788624536244061912208314231793358582591108548672179844950052927651959495745104860713989967812519535720362169153943599647589579745577695815839813498039909655315559516931244735993155951750582564881081239674796851796378714051162156405936302518820912219646205653518624751523255912035266050135171686305072945949082934603809460343659293248381865763600649875118950216167088782148269580145355466995031654789472241778835458464574586186822575998872907133630517889347139826060440923620801110691072563022303501555745546553665166952125386856599800019536004612975746616726194104632841717015859966000389983618814792989276039211068211317243722584439960408779487496439722829005405062399816092361226353486360433979032991725947491626864868342534992658046587356321167252418031176699051185595798473335872015657180952754244714864347343234807867427236984535953402535931184931541529321694926835245256370974025043222485643249270467209181973005046222087889406895816073442130431507703401318467041557477810994122579360581849238907390702473468332505254911525112370081569485739120140708819315071765461156601421453633241955791904867336880435163495686821261507952970546923797878592508705971931796494976575754103615833327495611675386257916358614632138058679177952671317124010065924038928156893266870539263729193131989260836659671905621445106117839156208539300620443108665188641097573032412995774347503743683843177472013350222364817736742916447527144025599403902470095475232787591768166225606074314309893161714661551635601050797330864649242256541503613125579693912317816983289248558201809005449278137043708882574173162401877046962452351281312341902602584542909247829930204159932164782817440156012065035867557663475151876915373384560165890383982588619141428621602504517326202680723762002704728657861906194516379746613684452401705970489915594234431634735536519230976887512166129776034874246965707403470634060250822998185226047903534478830491347542040461654927953377201509237553045167768020686629557146782856827431226347087264692241291898241382204049423295340929292335506858740717093966456605774732012030547031172327942103711323086632890133335035957815738851452497132434398389132261463001058775003547523548689086092259107899599214364077113070799688004946262547600426066952212653505120942525603979150653731599854970494304397542935312432290252777059050088006239109224437546167990210324548962396701929285045685570425631579931732095223021948129365818092422368037218910530203858246321251229655713282815249816705987605553071276308394611127902612447554420393047186524802736998881579756580105121645555213801935791736646220316788271276099870343219630896850031623217462138191515234710082443234790720551061928615864846334969202292988950201393164729018000051557691925609601230818865831443162423053850409900474705511812913806157674820152989334401907338848451489898643497051934260095406445187183546585841119154920043653302745278110458391911858347555759711505777044233961602401422050962770461631276381614006507488754486789937403038580987613326326281691963311730965499578907010332184919642933562105052124749513441144858598449926164003163357581837357998533300074934668435492513101279771459825555373019094693041581082745493390066672994270572320966961677145091164085535908010865095076196280177232416430636799477693937534992329528652763634816157012718961376837987901315724048585946113716407332106802747942257360466935466601548009032017588735481987020319629863873864995135404485111392884986975906723903222925800815237468404843204635591144642952551444239386690918173209999929021221125786435818566580694151118573052336620003449291222496635301554323330869900415573700907619876252871975677594486574486147474871485110485102138829965192685869299548399951501743421074779262483007032945145702954584913064437577816030806333090771783163369654288578327834733965339650080111309935104657896921906110577023698981938132438095369322253789156180237242037033778434745110274461212727455846932226309060568740039649198872300416824715497506823516138945652167575059627645025736171849522789080863538113993440662737884569419051754453940077273795095763933522306467513462515070445508568843024898467544239471766337772185504808859780075929316485694902110754139636473527345134847466961451796976457532203806663621085451043013702532335294501304830571251019467795075585364664725042250657713640050973786470840681957463363207884218087763938325914401711697849315985706920146713420226544361128039255796017943812911526720261161823281853194272872532306908399373949245613055146195564014187502047113624480777821026363465341343089625258437885570204326265951552830570736506505362847406168861684485094285120630415976458233937957991109615613977936201590645411832095204975791483953821593782740564160437774083146077952757730023028023760340700796754100027706380086015744106675057482291213877327751885123929726365331390011899548844834801252039877546075216992729980784030653774112431583727245382667683777578718190142829577464239165927569189730368715999862479184515346635640855698361462749941683804440710194817874702992904829155609290610609471859506408453550227573789550934278987773707847835944802082159696800873039073953888727471212975294802253431180676786374228728650759026235842702384430342044749686191180500030575685749634222482024150992555817931348933410566439264134979227267533442823081899378988806053675991164762336592480018143480506489165105177103343039646067642878552245300442840002803964351355281903797437442724846518049543004952885583506461630934862461379576572275108211528754506560222709959460373771514639461733796618301281313957065264799581493902115499370053497166212358475851972211407279697135879556153041852272179573210731358696078220986992144949660384789183639653398155090738786535817993811829420332293591414807720354686326076510045023163376135020635432958665669920471097310294431307667403618871901872375358607709498804524219619146491329849417204229365876687883945184146592558477477582982641349506493085996954287863326394781258069246818340618074147634902327499367422854946837685157508276450266166066769993122350471200671620512963956297335621442752011297688919153917113449096045658838813754981862159022876136322950214079851033340083800128336597447008462064556171372360319937883805041539993733460661516707824753430713409428833197026784685163239813097749895385723881936707141654185486784631847682329687310761200405956110007804966785289647363512798461766448932451929453564286494850291951843989571784091176248738223552366585909326382711657954737916800542152983743180418120540168793665726681773200859001788497622146737976463126848021449729844240840830208740669242415236637377628532575474269533028568355092091799106893758089695112856521174638740513997688338665268015056568534794581352911557035153924001779419299509345414031422835409359177265045147416146364379905034141847395038244118174315095415328393439918754332092168074274652487288901079050285622051895640706406126422155197747348447654510850045840545018298827639129153641192845490288666936681975367400353696564674568661061078361672880523860385517030281848208150350379898936053919380315207385307765047252078177360146497891884308414087972265484938897026756725034732007523172207178239002451740057118068889996183425288970431086051376841326616281067151080854633512215931884380396423061691145671425629043957209286551303125875136495463495395942213208531964133453563234291120627504990886429037754773562942871361857836997186685144531992962067164495525653040806349232606155183021797197004240074871397681410120473571147615756132151114034236720389409101954381965563450338344712115481458296460321200099020660248768527130357386440698993650173819050473426682276543136078400415461568989602862320131037439169172977352821026634190732078076310613134325837730755720460398487582535439937173957835336882278257014846355984827255931978842655876368174321383997824480404230961327667773869021227824006162346665643495086042109343123210718130877654223656191914696865527599793584416028175829856197582145410996279323344224428593373765701502261671010359926802626785866747701006834516542947959190460666689700187397595089934336205397619544904141419750687843115124553030270623381744550356996202500699394859722092223359811225447211921042360620388452067477242372006872567963920058591682958529089993917823461221015365945951779772556939314537215668438915579623895586625247832310711393858991728710336143150037533204782715228921101672591910571227012054194558765469066062275641930273449641784237634031164827366273412894138971153131765408903144710319966865018758978857441395813747319666840161862959059261556496851249353938658956996507159230912604960617324802010393058367926662859674709229204087624827271406488852396873639347423254353592154478478045316763478755116696806304149767811838422510738021156554575683295159896553511601715003716597311318855747264496598351314150030191322461421701989409201756232251589239672663214676728485606330099437326761454338788865404947986348436735156947877366774353630535194989436446255806135362980134586423833484349956904702001559488557483253320819710350205362118751385751781564408845686358260356089532826640066974681024054134032318543230973364671868403937078197095607746761627432172854427375394582197103583083063908797513834950785576627871677539382164547020453828425030744946673264911700806537487060989948010723954752875930214574258499539334104191520918585502100176800438381021036829194415808545659779148681118425699309453248848705509557371872108307992428588958133461312414834114901408750104056721535855048636942555595792546103350806014912313998162963387327114385478434305707189412005006231417805315290507168229970815406632921456036990450826210543071436246056339696069644211465125665708510374195419421151972610745462768965496073714004305485531884655436332177208929961325319650746358520036433290689363763018098428173677216108095773863099277300605698404362809817647961535905483819689238802100978616405835308585056921364295701433149467422195146498044435645643506406930712254460050086157959304587177914448373110511064959058166918899698670645379123699095578447128096057947406339983490170712512844176017140575418731454791027282181246387729973083898129016406986437500830047446081126177460838734156549081300546417113880525392335728553926867377382280267875188803809607429689463295431195382885420952322719379761447736708586722873211382663561779790139559784141237632074022383239494106209532915689788225543914649737171665670409998223920653107805137274765842921359211527851132814891993595041129012287088840948504782060749023208561814088751369637673811864788197669608275240286452020047972209140707512244184515434106731740596763844893161230644170932214251654617717395090492448748431738063364173386007702891592713082830027183141279331848661749387032481677544058397773733334496177746284313832760740516892591438054113274481331526531523251391011961021244451654444090764645899674900540826282666035870054495794618539646513709435887118053679584603398100394641465020362132354479015612752795266669651201731549569875985904707383448264576019216037564897419270628852476857908164846312213050123117834793029212778312013428558754822593484672664932456715666369484604516281617770246172765628477239436154658402240200024547038656670293936731095829484393405605559796756465327071725683522071062001129340461349720261552106128775480190617033862225138293548233093538091038082356122425218204502496026153611831712438724849399681787857065664639272436862868099097419031998756973904638958388076140871351153985808597567605535650728694929353557940993603490839706421768927179680878658059317148938091423198867913018303040192829900801717331113936738951136453332601599907824319637297366836466396097671997710516024623278662302182145844833945037293053070563225088117399196071063373230484950479032467492859438454882915391672795820831152222033547533551898605143910283837595636718162377800714026798048685558891650446331184685697465957112216229130834030730651309064660722373711781423285187062286212713352008042843248063814142937452130775864343711013784205315689498806537555299584085532027236210804155791034695601224753011107998679293835954319416812869118214530199004566403964685735580642954089428135313203260325473001004647072161338903625404190549991417225404150554366359128469479945190059664056307270987539786809230404015441829802615469219312433587338905871702953440003806471213116023491718976953672356152181641346585351691091166369629839984260139907314236725758590437714412708377315849930494251109222361560985720548472713797972987341554698267291928170159279215793081867326148280778200138183787887452487817960822799672103882182399840308900587688989816106210893957470841669633999908780629495413879309853539908661332275673615426395940283781707848642805187586037796533693398595870541215668405859063232197451416757733709662281606595876942180944815061463324503963925636888657694697787957679477884172321371251542723137154630850147800569983856450123208739928185498859903190207826876650389702502723142101494573617011468634923606579787763650256276008422444134868322118948529812339650783671241801411589675929498253620888926665986118152456713598975221025066211412766523262744028714725311822635159317229719528786933948813659980880595722000907868438629241010860860350470802012818986060088325157890159180083168608811558170041092695720374529560640825430680742817771040700000591106395965007928013958628974172634608764661075656923794718560359042089292150274997732567651583761090643656564744667541108238320468780385783590578617280128401005246575209378932441218071591510319713640581239251217877605615713539290871148065111998816674557101763572163699303289009736655093559667110338792086551010420143515529864140861886113891780062873241838932893560354372860808042605591890355548442095230188056742615211500718141977875057817281129358421854932794429497393335639980058412558948369551525014914984576648872755106923449000959354643865369058881881412321731265012031103981225756636671292062172425344487148577560239722022868911989234773112893215238539209124151779235874452225867974435420738030402176410390399630471604602601006056618544202041314726545542803168533631874073543112038459831782803041489818906578199656393628044295424534902319807650337389973937064853370564085700741960594498942292821311078276172100243557317911532514985689958590870885991824610827659854015469552315501474100543462362617473719533093359035111926522296384975649732733473682829164940177216979449472454546158946725166803341461848982316502777244789715905555423046155001096523302598247378265205705874086152817071285518670908400396023019613161854086695836059110751258818268514930631453688560759551448499113799883996332806060747171304071000268952245346987260566453560032681150136499018492635593664774350349887109797630848246201373177600072736598666264632755348573778973538736150728373249477822370630911161349184699809291547863771817269159084957473320964968649666094507322653391927826851977898758261813817475535225934726009235532903586249642101976712968036692262739534670387632869846798453457414450667260727522703606016141642417175036932344296419488348754264790783232319884280127090663088083862118290729692861799716760988839244381638784417430185795301709764716819349243490803298601361990570593274291468459145442155166992415828064796503527539472215426266525186279898945966888634439561915171930749132533016714985821346697390292278258341944583482494247525505894129475854241091788680829048650728928549378581725717153250680353975085985450368874693882279229195985413690584574095549117904912857855330764680980924486077667190479978944353658556420293344890694562813612439155325151964730175256232962828836981217855765476030028097625809668320120857913051072462607127135685852158661127569320478923897082489746813313961586053848582508409615970534532075813032345023227706704538802519943748350034003382660085482079445310741742338456667338026408941913397195755909243736635428047151928783277119721553178736674277908770285042981153056894426479867160335128573877284241313051235816465946144592501139015224136084703604950051571089903889378977090939367257229868744135304238814625054573958533255394701701380777916001266245985872396390255464248487000855885453586270452358178097346053210221213664711896976438932026005450137703951973539644250896013352392169918020994393600264190603220295704895463832988410974149621247064216561045568721469569568139486771589669326012433981329038877849066111416303166617933617824643529267866223490911015307821223724860625651141096042858522099188844502736263637983269484612607139162428741095503310482499407111053212289332278137939022672921707715570238336670351374497327251002991184540741570787551607372481402231380366727083449279375008158043122050605283443846949411439849112790098359730780890383772950007482364442125278084786036117062602568674256625811995519103947977294713531495015267500954851592667069136253842260295306806026585160651283450225154841808943618952847881026841668116993751932110773908097172560248535650159313396413267956861193171919077641079831738018326251349713922448809560427184003498293094237982984653526267800513071666931250824139091439482684890469094018289320160139873097605063040777954426932353535376779746132376958448674742787274925730708283936884027889076528599395996926729807467125321373807298458184924333591466059030350736472510845197482626148289893403786861332445307626178174290858688205786022788493639442900928340112300101004578994555179249745685580512261825091637075047783025436681265623370457988391017102793584224836844859990829862726549756932368780830621670334392167576043855773223948554678762496985485795509632837228393946379540272411130816497367742755805908631950427711281264104587299345427835061320595718462263349112725154200441957000678951233952388820182870256946618159014289996726315978650306991508232187580758223377970979231238133333115426419173115681847674788029291859868240236564610647224221104987695408595961057500625737114991767841412986938184055095970654342599247442136232089199708869910988476521647160267457830211151235603661369200677738186093406486019280634117733332013088178412173343259490147654847371702863221187279172124002373929856868797576840665654895997298102947554091265194479000763650832184120199679244211430204357723322658427044575853718746910181904293567613959736217314294618921923136688583853847121365823556434538402853109588740940514458095304101253630280647364912353439554980220885872525696194052298884892287371589206638120322368707646535686734489777149666281221829223934092891084106886489096165168907238857179957158310944965257033933492237408515331012107180090394159427523246115081838957594354601533370249738955825983844603337284747027164289720099922248524959583713385269535427443305069571067754281692891438646842557124538199158438522718046908050524890055401006502593225340583119805554666804667694656939498893407014031090460597560976532490099146924939905411516610171856761327762211206749407175217335729943226750315790607420296575696565135159777170763660205447204177026248315755174193584131773716043003301905331920334512725417581347799309151192161797640301669422414119795921293320516301473140871557646262042578668607560387458757318380165202535755513904534873698528478191306110101088040883643167112899487165138167057330911351330252946195767852235471198269554359884642205176829036777269478844383619756495941087784121105792844579841736038163120906807198002291374555132225825521791064146736268281682076421021363124983367913278522775067185095488022608535432424431048205791944751578067950737872816109088513886305558996673650363968229534718723199815939150387295180730416114486167297056473268306065296014304128753908060992258545515704985064511188987549381319715760962178170819187854624544560405781362502571110327193993768297409528792272453939150633951087877323523315166607335571114746997227210021501841534962102533325375264236299508705960832373546529370228532623214450986192722763946372850413757521986701332427597259535633490806394566634742175523197100774569223949392905810731399283333178509545461159011942553922932666697984250734085168612653998301081228559642285978241611322127019948389382492277637964251052377763350128772671023741394359209292592889304411863237799005751375845008789259241409887417692286258688152648094724608937087819297399260791271430195792520753729681113948328437829326116694149222946443745882841339314221676897624935151647252414188486991587872724253611458669086243472373915692820399901274619581368710506579496645665852094733183868543959695812076298451550044903513362570793009856246578653219978912011818339915038793614456208981921654940930376292380124061072711045149501575639637261272273017837828795577238198350449380249058808410324928537084792773715950372770771146677505126926337731403388881025885773817559368459807936989313041523514148604640793729154737424220293493893905269290019697309885880093473928907799599136395855940817907717124225881236559805070726395730481344238074436522648280879556671651619058501610142560328728088006321468102420000616863690695996867575021541402414522988744503896467688619035878260610504413093550455680396224139406227932954247334359175876752635728486340583690144772441334494483233123426791899024866511211549073123085175079852805821138855235953921037792801683957121795806907011029199240693978344048866245573745561652698369400333468886333842742059070391681900055126349457676937557872526962208089249012961560770843906269662192006818856796440186893497876845542263769460406977833469221990647170431643587575805226587262681150552465980009742754459261350734224391289978457675225276054430031134050666280776497385400883269665405701927348280536631475854165400634782320492672935610958581059074359254224512689391186534164742701964361934148841892354678070833085413535492145394388356060267825324431058203457900357852592436056873008746746979645922888647112128741028860626098829460433192649958821559511805141010665550484631238115976528898070112509413334429690436767833789899687625181630881815915683729331036214952537185842914259108986915299211739282537511083827019697621926647204577277028415958918391197542002058211336505320443657744980521757587322663895420380959452286662224959205268669992417576611802796820919137669146253884711455372068809680853340975958814765594885256929476051628702154017199007294023894765931275403787011929720054122815155746748676962236718762645049817318044740388242255471957547757385231003848715563423382605138779734080392754829305946113913308233251050663220001323902516230057838584284997378139717456211340908163050790003204421150239311774478678559037845572014614181138485418441628838336079006423246760736067314086825325211485658238764009651732015031907717223101494533009399181156042812869368890002916246100577645129662327922604528899081990442694649665469516800344905668016981716499258966216613834408028367649963609741252236119655699668031126030708711204082193509627063007671637893964369195970171310395958000697066635698790374353390447695068420565475579777142494689070914735804204086321149048951801951550410854801566866140610364295433658786003311043235295594126610209922525331688151904139381485519979138732093839361903579320270298731388598599103318332857818764215907751087039564455124592349093420003509128145949474170007159201736409372157402089603184065368371138562882227392717156083337765104910468586159112618016484420972074127157198859156621033344576145254775981297670026558520916798299821324582637498195676765855130941539547917857989454458517609163587356781179342487682971061237121901990164254240297707646401209701583606783237024998741728144549037602443534434989560439744501542442349912625793566766933588915442186345469796725528286296749698922673098761680665355516783899424398912676657119961190394293319983796988342823908345919122279161610467156233633852349066950253642148788770977102407035710758490510284635693663842914168103776915794714061510574459727706361261664281097260344135965840494013402635666811707431219157010826669609838954834011538387572452453770423580217806680466469745975917132818750857688398187669646287672840972435613383006275024981180284246501263438872619676341837959224443429132434418242313589241327596565552720186463217768569092020287122514524890334907443435029997458733443588473186141213894414687828059413585300225205860059972793034770171187911647458797002996769505319436820838655471256941300322755878983411657234430029531207212979645749218644600100198008553277346298378686780517476425341760252004204584873729252521575302756380219190651168997144144306530134390844152912615751032764392416151041653731774335231801487058073634216864482285626084078512112943083614638400520193173637613625459104427605248145499920008366416926344164041547525473546592518441027596698004272389022118525050619230557821540760945144517021256992690084552489486844260965633344712731460710732587035760152418416867453708613287155730107895924404344415293870847576724952458402088751829441365777375626388183455745295191296848229620829126306169013096912410865622360801770992686496367060099072265370586129160788511479771789808954119180044964640267879134489962362204750025195236478079570271100217498259044510297781683225875222319304158393764953612324666415671769815129759030912544874008212143472110395322897738581778158590511459150258562650484361907344126299414396443024696298696549481718062847949808515485517161512301403090459861067403884062968704288601588916503207658174073980743235877021503109645143354103139551219225555026440495221568557857225405866670974419338512523156023522371599200188258372394929435104976819948537172554625207577960395081021510033064228678451363600228331318132010516794479898833304553897157751946411508788712248007125315946286779929172736891335388125988361757188735684879856994760103764873700863980446317206006259572793369335072581717912574233986648100547831156192776860765007924019076384856097827138299346064286607029132097723697855731788590156558268410160596884224619204605002425696310095528627628005012564303772947362377776240639475183637657031522374719972179100261693026994468188979283879490299013799484400389008501497310019711778437030165336238559543226822908230172729940290484227185671601058751877221409692193077925757138119744234003684766363290128654360617910803385159045134216224429323605310948311334494883909194240531120282537694614409720854264165027123338236368891287400511255738303524694532333182066023315145795053755377798689127176536834311989310160598106035789639347498833182080024880039872452751701687970587090956216097669545056307450172593669245067444065782894997157591382886770507198621673752155922781200705657328273994918043281868355584727871076892076523981978552739642271308949584767250800044905987518853546257156273504823071099016975667167358361085255236061841565796690716165052634828932182670682036037556401104539145293400048249563625028713325843949486567887918782424873065203287764940368675413347449956626779520664910054282261441709521212837297576667044742759635723694111721450969544825387598656049492698132328725010034370326218376625494142607537550526924011254635432803968124865673400278267383114046931200345609796212484622119626789981662541928414003456254172122486105044430225642466436494348505589613868828507174322487061737959190000953772667765392211653960506317963651649589524148239509587471881251920089338514510264958971033415731723171707534669192017231992019143327287227360225089314958217738619839115231809456338372193275209711320227474790758337542413186030916097441159774597885210975217030914261315489322608959249627317160782987991056804946546930892167604310064516537875398526213314459899268802268886002863511470685392224644854458732880009181661952124572839726199457584151462719423465331800495769654853590922110814503390240130490589550804180823661015014284320262198395951693856005440943668382486923557995696798264865288913952096455214139168670503616291562923754859924367975651318754739704815561100216790541029025965570845202577496189625842673462393106743517498295806429364049014464853039813486617272466265090705011493363984424300447672706905717672282123063885008707558024443059425131749803937316631071653870665501562268710448926384583892624733657886634794321367797143648581848390136269648822199468702360276109889923806215186312884872635452917776032430809184528191278452348935019077851004030682537023725485309226292631827122565255230772835340161243501697403843210037982479476753383491273417487697155059505156744835631427012564841579847593215700589451974298650358933113746303735828665390616894876000425411834375067995346272463064425318526465204628050070639724102158926644706746182902501996897183767174923966052436994608385123500918864334223258346916486909582998213964269273631835607161102977769269954467791739738836930087655860954900978917119233410373452151998732976698462365297247108486839290989721934329296496064956446255793057366662539467778024937730425600433392368913971142247529563846954774132007573507013597194482391112191201145838972179882533059464542603879942912747102635077059449924337113780730584656939714046353886614246567488602269772497487406997042004538394211547602743384569262727736704176107997384124932579771670322452097817214586213463544888150068040725805411831743238250051547622590916268132178539312468757424443392240898889435804200349384817602600601021420608656616967313033743538724507685095793666119820237081477732844600208932285647741817163938879785799816525592360383065562919679778740460919626991234585607493969376155780710403403956777575547803409942326076544346057844004105801507655380502831794103514532004436507296185305087064392276296231451868925362623971120527724274094831025711920713087221220910662456532173467674662807512960066744627982620138707445154302504619148021794787767086311258649655548175580995417977598375699931304858728997672104285709959219702495614004988027515894239621220426515822048230111672478281023955672104245725493194229820615882561257371524638573454289745100678629129904046411437154144315064777584218595514351710421497173821645193081418423425449981228678862679390882543695422820926683344711538148896954335021038538669698969403545446835802616321221997371269799536984165178705219086491369619850272965063906519254092886984203767275638977012105355008356139297172886796005289569882227638603517584990414767130047479423695941408623998283452214850398915716370167500069897995962015477755038617376421623715392228619325870750391141119690102088072016547296793869835179712264933247973485443235569838063880808594965107629563224216180236324203528392554502594298204104863490685894910262844610828889925067219151569190764407365245109521036041577319496060383303244747555498127630846686207815149196163165124878309222475328888735248400492000639234486143151613687764662153571905941072034074092115553055792772089794962027033438529153722838434113906254170293888145198956467189472943953796729362706991999052802576492835727471001934369655246836081151795619807258956494748148090829010495995859104518150808189700166437960091371558593261689784381802105596379297894236782391525651229722265616901452511495081863325007288633914542824680230534228360843698798432817712926828099257590593132545702696174367847264170440365404424824376215754565296673115748539201042422079696508469745452743269620867000837668260561012275107867074351532385537733043758150985320173514244650156235408290866423648960364614118233993484858943585902542772047658369510752343967242238536833981691128013727644521204796096530506012101375230609680818449164945885694607623951300620827978301173121248084634523492881087644944595060683189890011620938067692050453523754518908767128433250167581851275133387366917095272783472057927691823065706157189618551754845045301076390913704314586380065056796388842635006549732444845983410648672675811550923577633868546359601455762352117498564640295272744986799482080775294600149991509544264744190161416609607303926337888691000391465743736591361842664287262246091961593198339998969631445135296840330134383891754545841092376877780064181614908186667611034139829319350422238747344230368338025300997345959625690914715137053332187528548674920479412054826743559852900580871207783206954768496401758171028294293923188234522975899807464310650899154768816896913542362589540525912798975011150370447230925064279905211873376674714780784257326959388103359093157483282296945708082361662596775635085425917479250367669031797556686915676426150257218292389535384970312145265691414516246218528724228874108913259908180474248340012685251373621530757235911279324536828360580436906875342208725556779277595186460178664909132080149423801952358131808001158303412246243459431516068848302800826995004183810534161080914086589907263794690115812572585087911286582819110971542379300176902100015248319985697844598994035389571433384839627607165577826135612823636562127889033741040140152847483645346341947798271508488474800007081060341312584849540441523558068823999431580871186113117598235819410202945572045025786929628902244575753763280944740556180866566443715417841678269736426817361399667645387982219239295215031562682265534726016862906914468199813305042943483215643050565779073335598419674550791944415464026445168607723197042153526530650884798878779858733846665233502676317833940402024598079082594445387269022995794752687237795032018948983774248705743172588361646271664831927751798801324498469540781667558350523648177274029685301109822499488626623897111068613184528610771401976522132259844657736404848607068564383533581860749991493202182436410248044090554913355258933848676737875656592022265984645387644070262713564555933218265613920104180446125887706437122129729554559655235297245746537315024666910222877831788053204105359946192511111480060462648481780228219776300462961251005739020992487234570593463271856323122552214243519901447159223634107625666086963969292305677218250288353684087880418258623132645050053433963767980668859955718083325893705878154638934810984430502550838558170305398850300670420538791150758728607131471883595588202122705876694515491330582048696303733100741826566219923914859645474471022614808411705145907073989438052665027205661606166715022285387756711123026117315963485751998558693780304000688161599006399451273593263747091013339451297528481139483989365057509416211700294654986954703530876216946326357645605278735193725748023483357409665609708651561469707306224497908657241003757086016974781967458057848493011315631365729312331497489641364730475075958361673380620881660200000175670375167406203271976330495936005023982861749331339900838474690325449364403195022658851898164548093974060732118103055011640391876378478923475321753927506189053563418119368171975073890529025000308972046300439277698707156068287438138875861812136296951197851243200932713806326943210786413834026901024361363300761501026506509256469539401889556368933293228603806035346714425599226529095107944590684686952064266841809051438410343249133949755921037403454038479529452696551560662342475604793847402577983725238474806324630794673194028340786229316314915762593818125412126793751975841766758041092440052358236384838605570670084522546392055881344690905941418178379797126569339325032583202060523886142945674959532770031500876403687115692604562718411782270949486740415549830261253566997714853008806568139579936909020278462268216356436018936825220229203153653080649272647318361886459347384132240370868584374943369963153660265767920087040886067868442846627312928009357186101503616498075442125277167872246690177351907526344854106648177542915393586455617486220487360335819700958447070245981517713900433909407886367193902786333276211979057273000219160255132246370627670015348820638200381024820659551466268429041521646136101329511399441686120017353901987189303657509271584227167908706585880794664536124190160031463743409259505192826506255476873241336572975544517003694400581602535923764152093104898945622031866293001140828244358128619711925113615340433313539544914763141251905292949740122480663270128373040516922508019776018893164898979803047150023061879210380489979345005534791662930320954963104288069276838353720505800060690770522961946052915434383167410732219059012556514200199882449396423082972801930305296299737025269170271875862164366411093849648851480152664631610759279174895376913918123658864904057281996388096829573460546403613385257851714815941453471009314094335958509651244582870578898576247403477948827748369251149561861674090717098658428538045315851586995587340695148589147713407804453305719983712881151185678962861859377773510835762094620284348025583834174511008421230074889914352529345589294329766457614738005630424474994671983657988730806434519974351028963764720064316905820353190541969422387333011032614452700030301340860865430783715430184116864192891309301349396638158033823544953036781618692652381614343989824553658551213707913811391377221399349608628968858259643331706560872963461698823305652486678752120028952323013408117992093307145034217280860592220194978017203524221052996088191443800239396921660660810572535327584975795156564935447015346514745389822620735673690900517930748899164091608183138705925276825032082309788542685716284270988695701173822649440475552528524241749105969480211593615726760861740835508779023967959434089525856050408694431771663803955301035465679170092864154435237708060227974109154315389500567002483341465866445060334671255803162502295264173854473140911503980543007341634545225504390630571061336023850393806328355883019131424098763118297428158732951043465017872416605787827542709989945628306356549146401660009242477689175193869108820897298942096954253069900750215775502520911230642141254265036860147000803902608053955074446052859380127863839291016644711701025764979246873457775518648807747516925476755090767239599881156084423135450010455953399587633815359724591575588092424372403169863817852549314745640019240471007669658743499001933620293242536635344414831491101378578988362875586518454641790146363442079262424182739523544010486007752915118288113624703657939647720198943221628348685072501205714841571204865248477091216174605059153649873947428897054077643312839649253491034763914312907517017624832265127812801352871054444863355496245477205350987965008036767645101133271771206430350792426152443042589639846963971143612872460108938422960009554936910352746008440330744748727749195632400392001829733837530181391562378682434415762863216196009173266446903607659486528523703361430934911474812178897642561569077000323727177495638715839598601260817256222224513665684805331293792684631595453993387888123670619629596712002095253122592458540195722085260227676710458679137663075158356950223309843010788346106885808429166022683168545556110815240024508232011887842793086998689727171017870176695396826143088693095583746389846142894500219814073343850366230533870475587575396859928334146207700387705098208815774927737757142187765530248220692172015046483745329184686531473663462946795878281057010827452313387454915811717845587735874492391239464923881388775933021104085472187882043754944587112431114156156061718046113772790290622247391269271829307354731915105058797866220509203179562653665290229287943197989242214309567800971322631935511607339177364560356977368518252409573006226668298416624311983465242267998229816170835207828897540877351437897251865755474585474594904100066417642842960428544233233531280338369292340871644577659520596347858202184637380320212299743209538915134378044094111775758352322155177742182029591298925301576919489624080013112419001843711197936091089320175883101204266539042320473635970597409694183983260924990982018495473131835485160995995044761957342842355233539241286168150184330162285123608087409074755061921819684613248675705922415852517304823737970488249750077702363564658763840194712307391515270841222610419856106927542628050738722920669078885080500872321861153429736911039135557488267596284825783811457372113294506923396399415664232056994770920341641130879650544358196046193838726270747294870893100522650074418707716136749546585574557059313996242731432764759150350322113553145184703302543852220549115929715660900585801018158640351210668759364863982878265837259183449424008939982215284442934460402908735676290773752343065816370917728835455347543214678724184860624961639437730813152465128675562272402638972902027980075566927660696550871620226000259767308238585506372663053717997433287168387144388451178631514787266120199565520403602732534664631629392594034230580479410678477914513375831325653799340345411053377050654661157576516295698464593581908280232741107981062586125674995472619092333409066324395706944115448950927566758462375052304120515086573481321507609977625732639374752318641554944810536278980462930825605472424908673200848229281312620564116159264365332233357154068190673786477048119814753748001774100523188961891822514052876168891273324543674704755607694302729936777870889681703462018506332969137614558244389508279115007044097832530270058238439056135399010283095879188303312590429217463642385060677629935753814374010999132742859493449340129171684755128648516486029915950623231666108840734744757052956295113409403281972808551730431381636684388971659209055168790904597193393355090578012221892269733842247109418706134774319422748856636488087953386102473524356726038741991196443932356917283394253058409949528885145858420355414818924786058335626403886698168588423530924529023816147272489855197943438289427704451746957823622830687105376113450521280246903966935500185190376489679112678014307486950012103267978843663910278550768002632416363830633755332788872604570083716566553460619378996295977814686585221006854481525413981827020832122076134858203724906117828512348421818154909643545602532641318280620219935179627367646384762731450221339902753280874801206106427291691294645156570151348484093707689780855069303585389537441790985936990382731336585525544030105561819265089487542161748742303623653097776027026943710113810955238682712999386159699844350839859202433470356297703925978451793059631620302062500872396521428738118287053603786326391435453832544104074080707572432895531177453778745403693544224266470816789562783089878038080550475959143485700389750565792951916572943448233168115065049190283368980435037611688415610668842426149082841365070512864296309342698441223322756857223410472630438210919284136090785368902213079255605681103123137469415818111398388984220349873459650278197739138815739847160500564959028204245452290125075754878964268592004103293517170106685038975007018665877481032935263193350973972083612722496802208093171704076977272509795633613002334881875561566495389522790220682188544271561995365303267617260120270801022156718582015584082630635727335132572797186563007884032283785761353196074712146340917751755428959320555877647743814428612568046968795666238143995246101815252663733627336969324827084720741150598187486085256764571116091767532853620831868730966954576556249624104569140624212337481228541986871720760063709145763998110623826472335735365500528805822294407108871143356435041636047696508478767699621234856023661725941095611467847495019912206772493632989255686688335907248631994597358914865997745533083961766911835625851862529167404295916700490457721644132432003007977516005314345250806792970786100076029603508447011007195971753609385073179486397761296648473410806983943572259822999389541479500721019077230869321561411304579560052937590467267559238461375526828827162054254452514107470734304869929554682359580821802626198080031828104308275626240690096079632309339021737131175186863348320976288268621072246414867639542981809337137815735303616953881843571930767083724299631322839558804236098448928802193508336510972007769689682114047376434104137068044585450389407782041830522578212480817901733282271729563502146429181997761091990480470543343706524750143693963270198623565699334000633752201843510272843670158037972828242739826165513221829934108663050243743716513441158215025672689163434074944095772072340735379514052018445030246831165856910737938887314780370054089621860406481954701572409137317198955996156171780095421485221103913919124817848614532926802363434858155778463157336462340438997975357564677040625407358083353544412676967845989826674556722300636726354923970280998288148116930164529440147305483032810449330508348729592462443269496206725162004867291252500363047921229268658967095850245315458543606253220073371838412585566316432253170907026198382866966401192574089511826237058682028370591092007667195585105639709837212366157400687032252587941310498653058071422571419285166442368410409931105049581847143744109536346876342805983573108752931026057452736406932845158231218282416194046195104221568658131931405514872936137063508778654751103033290525572392445901482146249189639483436304866142116173013050284699906465739885202539241841375022873364675043169083244766325965443089081924922386931548923262851055530649454335060904055839295824666815953733381898082252518718516727159652902850281522458037265642505409988611981526882129026697321152759199084350883031535555322547121975757238644303716502823267629099129427553487199605401321760983518475609131997910024721494190714828989323465749462187833611534219320553927593148366880199878191601980404026267185650840748128185416955536015415591145864031626342358035397285364106110060277597268031074016041231101691975314121371496405251994860696673548919626655119710747492048106826197458830632533121778023112182696762183983872371002857364840763715727326673551571176009981404425145828616250966145918363815481701362576829244680459528953705159833710129095243045319651530008090892132711634632446815576603751200871902223696701768312306367316445501606314555586324234825668344149157953210992019274136360231223856257499560529159628563897235741219928637556459749557569483569699895299046829445774371827954140065656566757529358104811133940594504864417988385033799985071183929255281805669595810394525964025218493687626997991412214748072352946417756455597082694843701518093430154381562422271195899522904688823451942631728751115864126253921043993981914202567018297129685957649651131211449700034007553375061468311237884587118638105318729303265803080548219315088148902539022433019326245484206897887862195555272077107527759170541271168995345202945921670251103925698058560371499545599120171556433168536896937620550850403115219954142174155839110757638266881351041613944141971737583724250105561225749534044890276872496316559341052905776838628828410463312669097651624222725887411835798844848688249819728407735212089631055642474003024486205703501414785544748587832213658908640443401660978108019301967612093437364077172900996188602811390793286430005470013446784659047213910364923990711233060796459487359469704124122184228466629519407968082640535241104454862725554752879062066840581427360192684503958510505880736305528556160198524065688831976202138576866347143885770862341960905410086835090787550707146977215396632824210439225115710067026404637437072925235922072711543001086257996987497903968526077392577130885264557588646114534207117575303634223120375733853978045029977794627948484977624198622851058944983226472162775952653855330906638189910500623670485523234801651981573898013107393162877759046976180706557190584525631360487214462161392462760950467884933577320743655440153781717932447953968886299858762511103552683923234196120841520955648194762687860486463741762503202826830694919075027966725597834518956853021401548342600687174434868355110911940242112709022975270943382669888427348830981735497285239984287207258114842974533956791428658271143076892478746949002901932106796979192501209884155423930387640161613212275311307838306386578419917192940281926505068739460344971400391660924436300484599135398958525243393388252028191826979918801727709223037713530500515162082532948832271262193947514864287232799414518282680350310476805414123937728974120859468055692441590965871024282236701553579072998838615673247742820244479413201455645902230389301240134451805822587710283203509097853195264103925136142687786744293903143207050777272757659913545321155829599518549921310956178132156485318189598211758618333890456058515122242189011866051436196361316374779918092139467994126773877796904660748206946576560196038719843152043448928929213433336499368401134126109315795899917369498374841202208260112634367731041738113346831851429517960348193432423618790379123923465144658506506503369134346601043746049728838394252168880962336982215115274516909364236887359839626232338694567383731715619547287516576695945149601619179554729774888922341993173333918288453766075715787911634728275914483140851389557981712571704344335540058743428970114813535836516576245232403545643392401369886647263542338205824515691086682998114404443911115207883288157053755195893070840244455121457736969918839820196750701016493365131748449534096992217763068206630223462374280288457760548623431895838821719565386153967824030213278952033539773071004175609195854725877488213156960548480986244038766429535604691487010104820132507155726931818673012364756768250843742087010931397170981059256161284651414377595274818966370037580484313808417588019600498944259370304156378318683658753922791352409792060109446287425431603929454413780515655344009258452362078835090967966225790826695297620840181261768852373008059067394423624491537677910945826751559572705597714151648606962626480721029395912051589290991526481128169605570336533927305943376754891853339391690552616776276436423240224441292741525549650325275599766012294836805172238882341730484766692431837714016651274853512440598736543935038787158138007777866031365360692479195888604643733851732285681757291372294264003252922365694631905874252311456012019287649244508289255014251225082743521959071837786380453996147834581089711385613196879448573122603026383184350914854436969308934568172115654202564110072399511939196574895557133409740846814017110924142849909601342978701854494638947818892857771010328472188749242077812962306557034743269443470258575938753075012153614005300896701441279149584824945797705950898612934620293001161314306461869012820474002824767809700988595407533934120091505311338005093648345097962596475818600520717831413975840940440915754651825094679853905831569186763655014243984885466090138452948586597762615426071927174278570761084554528578977324169803192013584701533543744495575616418946619647473442994034480180559592623049404789070020925061921507034089812374710279319679031479634552349303530134648552868424701792259020522293418891218798433150088539009920775059056746116701329479234375528967555469328361712900856270712407277329005360610474488213184299670644355206757021319816220788764873464876258273191464900622960260027388642935478024187650162791985887770877547864556026516393902030915406904505680479549930850055266948650062929127300834524645264220876349598502997898666802779727408890857112235325844670437644218877432026584481805687381368269212701976061046315860795152476743869244803070443804448358453045793569741530840407571006110865837205588691517867657840051846524293431946027203970466558575671897004034137231188044702605948448539144644107100703519732878113925125086015361722666367127879281103145794331693160523648008706927275565920702888517578487665397561567326375425596451835118324421963262902667043475720302251748363565507266567604865304687245886024097509920907866750165799111539013124170159044598496519054771575266526039770389649590851048721328305388722606097847667575962722016993402817008644750296262151629397339831239404057871392894626964232738022971497693197666436780650808804887532275640017953982915986616358475954511304603832929733316116257856534941024293321354705110625921357396059247783721687741129568343550736434433030464126695615048097854070962982317530828622566198082869913245261800554480668246586005333748895416681861592965927960649221378195060183438599839735043287988593301550399180388978366328128005617393316463356853300682528391634356583715240659782140475013895621838247721519952173663193117657063259683896305943288034408941003616286712322889306874183558112184053083477551061340165512341969533860402071255510826378363875523413392050169805355750866693303137222904945406094366443229323595555909590486674687147464942287562987299246892391755870099929254402805020821028587722567761357063966419070367160108560532537351976359628248063016498830946076472029562854865769909658574233662436052203940023549616766268075805952358807869878960781381007953469565075302625964039082649618921386873252525173431224500894418253410117685687932768957331959411018440990324486989429769923088454140446721501244636270982606484197960920441301909896760610955210535579731746883496353628471511619016167941109552310599860270122244676726364869990313294135988736395508575907915517014335160151427587300306013145496508722091176903632745154097110425302127181170852179598358694037084485576097221851967133621701389536413947369040069252771833133718490351413914137222743549068079488661625941738593473982004394025819245587273806563952818423886146433840764275397300821318202892712033271882812150921827496153750898594138125673040817012680149492614567435959000794099821813242074168625549104226203152648024154364564052753772400680186920381360730927123543273343343920797309382682261620851341017580970655736168844508100428286337183881740804699957489313248084174363756604523684974464605144025663753114247123034441506350959982121547186184047821340451667090995730723424507713599063076998177993328396121941497697909292297255992807062259360232195018238412247747563325167496112489725511417698099547178064620845874908702470884733371521706750932222583107356643526758780251971042272562937581991199025253504530214082369314877840170376279322134886591852517818535287644210335158754356655457334780323834263533867004764060692764857908250965418033697814275870948746514778399561369541608906192969662093074796535277508061932216439254816586285121062502243101184291370464551901848445600129112389126109724841066520486075636119999993009857855568960434148152610738742261400439654834756344395894294320403470314684891575044477499062054615492172170642767767562835656830606588331953204665867919049823895761128734208217709252710044247388697045248746042035952211691398832049094390868974029325450840215764517942233258399637374890326623085280411792599527471377814902102854404319220933049184871521815272403413630823475052353053609596977192837200444681778815428681365065125946737821343694971152402771532751283829860928841494386426655226781266086811077502900177504279348082782745593130126997693374840923751920292652570160412494973764025225649238313717148850116016121665201397921578842979162936172630575008073082432819448189030685895485892316532394403221286886302401517161618338852361624334666197981132762417026596973008425623170869974136823477966567555076134149554131537318073353010428451309565296600226753888369215242905392579890068148888734082214036230733147239391934366042196776974172667555961298192880917544931971462846914043590172310339929622165095662138401637538025666099323024442297550632256002330101006948199400453987649582296919977377441911795730291630325413546562347878419933836499133221308912998405539614201863127757979396416232519348912723860137383661407527832961753382685536035224553485240163371837688224214197176810100065828714401426060801936113603915432301043989050907096135734417399146029055204216659479061103595297927130936633129599249138418013812917926208767842652157772928851628598244856599383999053565270080577600936880459140931217401122471202381533641489540595594605075504560715724681368857857452306187423286323447336422105855361490659070529117634387088522947642307191586538767329693615550901609178891796086765931641409975121503946951386034566636294270633145983362411317465886816113792737669566631204088370050424595202197395801247514055604387312444727995522004498886624186085663639261188805249820612850032274769300363001000013968041107240358792375610602352954767517828677528830740532481211739149972309167135531000523937939674512412229675211934649136994770448206188171547921107315722350016171732610516698858586432452294421496783383879938446862061481749096047035726788760897464156287554518145814769605758167846724121957955547236486949166349684145862590146223400365461621019652660475270732256918189572244528978056843194368434992301859662474690183527324437355231247222128836728181088954940937028603227913544124264932854617624988766368903411006013090905001982548002779874912172456686256589491836864347059502499131077685277660162702836714048934099796608927324920931416108927571425996512478480664562621352644363023428331975951388470399814830620516017065960054536936344211688115441670766749602870422474419157675651794987681167906945929464874830931312861280523559811370884854540453522316781516401126292611820027887709243129754133089391486669909320896470010739856651476831173779502382204493234503582282518342028916621124332758622315400652015157401935303458265384270971561558761719675797582191786006031107999957788042723551217706125974149087685554866499882321544871384496795351561861314123778733966818241742395592206564479677569168554172365958735990690496980158024051723557246034731359685715772097733775578652481106194997801438235281042115921161629343082863310782791206544856752674521558388289672620607638390730159632793811065216471410762570310557212129806927727918469251332175800411056978394914953054692969532665401041317805414878860177976655577281171452654858458677848261359894798153112454412755949552096643237866175029322148375201593339283646414207541290605065410298020737376492296709133753505889533583592108623020827648542683029150723341968448385237125156162034792272229787326225241679900461826930717556511883892815150093559476055643494919950695524995439911705830792287614217721468638715260554669497028933869652468501878663261108092496051298534211156935184988825311333934288217108338831377214709409764830603019388319906276084668156188714562959086171152367647042613696216864665529097201465286255559369767530742999445386929613580908000594080545820523470969433390475337628672784622269471090186760582104522831987538727958128380232136952615655488246379750121066649908548095656868614284302658587335299791032655926096271063772915239388052122736911288623844617104198330892432887926724424031812764849905488220325265643843586265905798203768921287747934910106379014011069334742089199237531014814509906018486524468406593048206500474148404308137880883153048367106597261508034358655707348702245752657795849105648714708498318172548492993302964621208482430235201740202449714790444407377434994633036468361487189992710730113018790916911692331920386198374981254647970606879575999250307784254857858638012348534910440688873147954436577865550071133383238676818597695808222491285366414357684296114208100329994499508801821473367193583086651577923489716080428261129607848828118125766302863669354081444927223639381145507462368743572253370264986603717557120054343884343378298025769668949487143513383301349832290159458861327642940307900067264550441023483748824376730375497048352537856096052533662968477005467531887050822047071907441781354184360672152398619887947449950932394704329302497359218021745519325755929816525992706672125218544376819469094635723270355519859325929555013983457552677063065393933948887472262462001433176029186210369477590923377905344425478110480720285458533551923036667650239176609160502212511489331705818044200187993462255221251030717291333559496229856249884289138653359976745913067827117493962476909836260507829049128547296281518076939126883247763205641688674442485860984113078441548350522250890069107667848789349887732599710010218762899908779303525996712194281823991506743650101691535401520522607342217821781456767885105179055248776468130522010053272046589033816484492738244057615502580834325082972811281233804904442863005106697719799381152093588549397451524702646899125377865883618001460071644969231662501592150966386231476303719694632551583808166572865640720466284412502603428060672626020190057474830391541325302980713191183937673577764995783617846283021768184362914706802792876659175897596798253620928177005079042269702308142669578641593926110023573742743578008530627883974844446572080909466393202320059950222397280451707871806929036968558104078988494168680366100832249083662958250227265676284070510547028170128303658698568991662519680258617809939278545879018158592181828480903343864001148674169023282812998203314739186244862741515850280408297832777218745286189693688709690653648911994962470677464934285776047304743571016199086101658526179557430060051988552960600816295644378511958851571051467085437771005404554722647775394125811146510182527299907245495733960410417615658948038405420566694182360026063293370764595395422764382829867367833010564391582577664305237313128563055039744947807751806703068121239202981759812309713020383008137857415829697584240669290382372362096463030557016385140162633962479811904607255469192294417252406908003551771795000083677250108698484929143399220174837036540909389753709979942287072705576408426649271175281892293415254108969839666853673526382378149207064840020498759740327141307548048134738856596423956859259787356972564767237610660983554087453862923609449916725621802187668233097804061417484459807354661120550473344368391477622177596738884055754012532916429667643793494749434294210034967526263205069938572959271830197198154292323193870175238426579931549291742641333728320027274584208807181656569181444460726843218032702191536119412760222283521662292626375127270709675379467332782887941616261566662922310725509117767575552549634910008033048683563711544068950007055886963525588177405451418248734952579689517798768605851912516879265780169028333447660258971387921253904659098228520733223835915237114201941671433281168867127156668858638644111100375525155659176830440555398405245077817072256330018128812913390850882222979509593858680156765844883775799109013430510376528158937425876843175590414553109865844787185959951121842665750770117352819732452613624530086365221261172700117147512338313758686931050998690993767851815705479750031345733489604485621441396408067066048285141101353113093774899084379921236536489162019856831373145901568544204053370093999420894284471213418166673832798321259440211906244747910420387740321089894710628118632242109598386325502600665578279392216937238723567166257688840947204828002554766540525341124590538496022274375793043216552174532058860468267390992307871472579493534386571158907152498053052328210421111176902247339570342608443402020055123811022964310377965765551693812011656684656488032620168517994099769796953180748394902203117929887144263373770794935609863097683442023019842394646805878244241726874548615102733041084014066346301354426738281541117287794644963611416145425104370226919641781692855876895086878136633911788672140892174029707202149046310273402181593798403581145872972962033006979739379380536858642481468601517847984505974996971885957670466815347090453672188766097573598609483234339471407570740446626146526353550045178314083121837898596830569524156538392611953185978325037670695874914887287896625402450191538014397061779878853947171570667449010337671799293524997201404783600606753877417998075172118631758621107815401976595333873222099421573817291739371226046600716293695492489182036970283949696003194712095869719245968041384921392259891134792297875658401817586728478466392170065494671739434762810983278651308024758545706331665651896518883221767675655829177819595545814279890878741322833014875694448083522486265798598451239143744925385758103311274578501541929186421506783238162219961821495576033130842814230838528989612227355730234035982148492793750724466386563056987796882546686598968040631488064378409807831806428396921486256139756476598804992574150878612743105995410577402565532481120171778738919511162110460439432638999158095810683614915056376273349615293869508872289312035860303550160902637944473739930175171750323484981412120504738365541454874762161729302553417250200156594397351063967737475275492366458781178276859856015435658880217451745823409481111681179570620876990410556543247876822088233179389215872103024841360254180819973195221710117419902618316699920145232025696048013209305952688251077828585412507388583867478671126578464255559723701049998532913282379930240502395281182978606874046141790356069324034380715749391582392144241723584175432699867545957786802753506511543512142765069415791737215391716462798461793827373727904225244947737967897894796278174429494214317149953869776981676998569994805748364149708653837952286238078590104083242291138315919087861151552297040083033414068140793396306891810651593076015796686213030724541135722285908965195749402378147135941017276422711598797162603248083639597752017003633045326953061239368583846644219643879646042685179895923966606721233233545467279810749695059175789922252475993044022445208579192936446410806928174662026106459939520711827607744301140382240389482495801562419430407594720044980225704627226514082113289763957534799983430553431863037938137135976043306328582975738714202385417509912681070065725504854229304918463900774224520142177618106366474934253074433235101505536975388121627194861115817959959933759562979946755515255342372390249332988882909168567341198495091644385489201421567655121635374924523296589162869291622297816347633438118782547926531251786250954758068098383470529251330291010548266780842208697127426057889689567506727806674804110956824113320059521697203544309497476297666903088240949249951862747988678834614053681092422238779925295479986817749809223324386762301088597294674241472681712511765154896014364728877217065037808619763369970734271233948371009128099440033264846414265623812312959372943577426747522403051269686344961040066804033052454372326532791034214634930525311797364116006169155995070599128057919438569524978082571261830446732680610098895100252200470267380411556513538721182704656323573056027750667326697533376567313755527248015314125875177863836555922308187047791651679857728561183443007760877496416221457714342128979067793847140262300954241643492523125544148613353332633296972464422626363485960561149782062391275603744212346726213819432078864896320827993478762434813456559667662828215048227937572005003646877233179236386417311691561021725218662745085997055650320731987421847746540848667551260154280340079615887299291879762546084882980123812387360960535440639621092143365366114533098223933863640841065339975864710566802450727381252443612667671377441133954910679667404596187888784664347216565465305255216434692604290861397077111999522574836078713288867418717837434947024311015619631798863289422877361624477273997701613625934619016089425401428171725287805029773420383186426653201398580847311100995021037116322764881074948815174145932712060915969878418249658630719988313714621134090118148300060611209815253922387313465991269380636435636926214884728267651192788904658817080020029281287347625079919257559370271433804607341925691720922987186727167944967753723636613655476596481815930069341451066233516765581367016471241783414937920642430882600374977806236782533775355062894689187548105894190813380820869615949007227111307265142045919703722101727863919919284379600657604027076106177107899929084245416031709009398653573939580117110959133307217493108379685612557891854364826709686519759337674175152137196200936701545590852506461117761942120772567291682951160615450738583887011019933552690757558316624411184030968683871462364832845544920610161159965782077503988859576275336202905652719147645827697808038369179626678555529140352097786464124206799271189991571954112150935395168318796654525876796363416289032004697316613719475964774615037048771367173281282590893006335754978662772202306765404977021635930706017553699392020258212462857750684603278600281155427205446798791283897033660320583869991174421831907615722896884138564037268016305211664749335437511062100253477489945663718630012843361781331616391599336146377632868450614521459851664214579604717399454696006582057345682912525837981944570019428871320617616990975660565867398228314701089839711409773530368373671671099513882385451126564340509988212277828272338872841241496217334684923976560189681055777998787377686240323292774643167626300398338379158538242379255053644773101213968860888570739465192732283269451452262482329708019552082647568455764260018974925982727747568680113829320799938078107110498224717544900805705215897338518249309660586443164656144692189146991751633532023842783046709724320018038072500495225106477792694107648611505929388301625898027581884316797784002605772326112524744947143682667094081126882144679210777727194758933241753087083248665101793836723356433694231108546206384058089699181622167809729144208146375430905966506408217462176903858221134049074559998584198823376121451169821370024369339035894495457253533434203134097170221856886378995328396341870288147989240086724913916678094850844912406462286989040761281464012785506195508461836485085039093292821319411985869584306185598274285482637816104787042749139533538976165672789953711663803423703171407634395222707196875080092025232971913658668571105812310499207798925274520436888409639752183995621371933457658233700372536021722206088650313968136331617652453476276759319403458046917604526256377568226490921830378279472920384845843448392494225380558165903502394015650258501693333510501662360492934215744255187427789562799918409724064826917827397288294000409273102739409588736138201108947429640148532281523002024149370798826948113160810056642144631253370454518921972273448568831772300703658720920496638915249906351626966508376904088796050284690106657837958590980342129847062663074646462529697281498183180597745054752641508303458094706158150136623524624416553423192991173713718869150744082139422933342485245413827079615412633296929668778260726298430225463750918418628177263659290616924048992068703483507925479398028726903141287556333490191502266093166370589274453365000638947861879933124871133486178986734802113362909852344922084849003965391895553450749136954786936019117115236480308882006712439237700119172124070542786061451444961137953942601270855677693740501140963259647486966972409878144643820782509051924096834223588147225593892914110941313072512863616571477401921767279254139593139306975605376854999695015579705782936384741465115789313684921241318047241468656730066749903586989910024748392978458294118334339040886786574858548777107126305808675166623272716931535223486559968917745179284942803171182278564039908680866618199613747036270449944968532737631864440480236654921207048771805219883958749948066329399707264913884953676133600377521690334271442814007954783408628729666811671186235198794786679320845971406677263858804104287489729452814256377095067487014024301746974426583355705814593061324283725541957548267737017704428088546086908600049747844901748603189263837863091033413973653260354964126541945953474517949131401172509760726341593829932487843320467273683364651201982052584054058958759883936314497520457929959211360311462829938385237992343900729458603903697765630111405256346417972918547256521042752740148646895292051290537044932143159653904469660165241260478264809292562700231826780630511177305647642624475097469084594435168423348323942524826807942495879929349550899788576173747517542919154666188077305417740774818259758906525111383266069248813264459198623660148835003178213592557076972987923275907063571117243969486096906528761722007814221920892837514509321628216353992551143737492579302384572754756819277955423852507720895968036042451432169310242631542051316248665056295087064119301384373513848956797828064863546095311522746052231562452642339620760095655276433745794552296849831222939634942747803616012514544907735505099240667880211845437397941907742347282487728077443421119418622501140171756447569909174813830865915207748816996013026803880343169219655837606938641813846781803037866200926468799748297878080880782387971448298222900407725352197476889022805867037540423552612869952933793746648099707055313291848430261090714073880381905775154947411335512938891875853877367666947390567413391650960100780622424844223845095527706908004163902858615085900362550499377817426944065230129301811820532325593393773551236211131221107097310001517710376323982098940878941895234401373883766172680258944124907225652676454789881567529988058567350797039707473626121098553995276368446686849139742475523698144025869026546567673924921773335272716241803386371300794292394633064292627741109281342580881494026663012424871678615579172889323916684537738804990970139974970936442866927071778679826886098544498094865647588201246159857044893833771718281054739206519128644017167735820800953731037002564830076723628863717320876168916690531226391282810885248047079859972078458523924798095632926819144590977873289528257855804042155347420597750475314589175436720932353668948966742228066717142793319850758167458537806006177853114980639146710673116801046417165382887898740407194558565140478974812083994129025173398359840935203833063329449260347561521269644494313866457765708378591745961602980581856258639781908770562035911404136763582207256961796392364166422446152769553266006985872276963764204695149329398762718935686991932358809688958137877640151900620817197101921615428853873295365327891031600433179223068927976284153098852414863619381206530632504431337163247074816975136545978162311029590488319524575366701632048376119480376033013904838102298947196871109716905564123822472885328193472406287150869009561458271167834845436209666443559957404658820148039108386843643177937045964638587859450345090198151501814346579209231953939062317220505800971099424287405892588656103831232049286304781868825778558029496024476313059424762081094359899088963678595183015784595993061233828265723612179377446854061100240983252339055740588502411288276888057340922081099082314452534168671790676312166613170454787191291253431997199342087922598701410980793231852518064544027462382590014027168964894888625738045377469844138276424369923796961427037446574757456389343883862133434573242166353736578031213575866448699212805261467569931094204846911020767945359403784854351006545178848071997416557511136885721864641591165014094592515507438005035345741008294137221069573327100447275513830775194220552480391868837284916554391105133842117231884487139739438665949252574275764551054496244024478628510725615746354442177155045541324521411890550994668244003750820098355711164751646872395876628659379047266248093008630844431525446878627733487026270739038867659264825291493053334015194162918972112559148868825442339898905515582567506944346148559490475342072836181672509923927906559611394423099515773613504212940336165882921681380797929985477917829875292821535996893807463446791321880527213309183202004703939673351665055651815864372951192040197533884895882011043271886854324167345291826271314673803009249737317361909273101979688722080654587301153158885067788471694478961328674897823662421912022826775130612260365773137598498796230967471839816963107650812414529263989075309870109173913017578088781085500582509669753521908521042112568038555347944699736138550851341471236199309608596233156713746391007026980086272303421760017078605934311623934497050565437070704874969911018933430466321710869565273726642213586527278584769693698293165557180408635369860470303923702301369980874783517494720611954755869298561104155783618345103079855777704878562095429018464139649669894366818696241688803346190933247416711259179373525947927060592900524035466568122137876900079788918037302171353110304991687969156635570925796834279180396698491060697117799149000659129599788250636509657161964659504314660697485147194806076322996768859392886009490173798329373678975025821685492870603686135771030536429834377996305644018226779689323366825417134832133906101046324450288525736552917270045752674421342929910743583023695110147206717410027136501478788592844385920077473534678445444772162735260001637525304892725648266096712407106307052635720963196102453883034037075919835077790324597844180246070061168058487270783567374792370346053835758075756514733274906712988346813604941147515808076079580245679784449167468690505281419977696559487046359943497466198096372726922090002309961956010547661409634220066073281960244000111820151577219006084328518053360569903526817527232760130623472299430393650502345504007721094575655403808121136201566947955586534312580932202682811041752342671984264507137401527272414774633377873167917309391033182982535164169445528838117881808413419754154760629776659013036004244981393676719096371070356129968125484457720913282216463457552523099985050307320248042343430326581702556339406787332232522047004710752705208258860423416994912733824504758877786543920011364555412217978002417064517150304327375923316517774179932229841446523275707411837516540296389744518692733776286640443343589484205773399587864231086910959531027885088319486361849099465447252427247980243732103490024296016272820790472985209735539302272352559322163035581747556659866988642994909485405251550788848479194702097138339647165001408395779669396653718720810220832900069142406524040944652710338512580748708502375179818512312203053937251294841186731006383200709650940138486326857380613994642042471232210435925866518037880027305717409080376852831225094851787982043903649201268989431858247122835029903730385841545672017263529552682369157005579314738768662372724666338573687260787989035843667228458406928744455867329865520034942236124846896532914890893427822678293310477851751489147472556960452433170892335280550542306393380458307786519456182030910566061344468703830728462906125286369399462583019125189507772632326556288180974685983800080797952830664941901765156182125917029576108695577020921940409979446921859937756356148446311717303426241272849971753976776901374001094668995414543016929785141552319887926235590174698399708952904731355300695729506717442014394537739891382612829589463414999531039727631660914905096637105849195322013836363067853460772657548060817643467576425862061807642267248530720699641730253131996473014967108753095539029772211893959610132877877488377798327300314090961545858886933099875806356893256154976230583498629514613257417048876381354876365077515239339691600058143263433972222123639516839328884243613957437029527625717580324855042669756264352212735649678700886163659949571240908654970085966166741016785198307802424753801955867358113517514274962773670142165617555099823807131284897554127739988883328918358051671608554358097679937295052423153479532626277895429339072793973885275706642975316573778395838296670759793850662155915502012687631300670535363367079343145850991065524375311671301693471988916602731964955061294901180313229102210729138652326608570045445336057326593746999697014550990188405510691755494011761376472150756908759268306836473570969642662972305395156659470528443923641526584221347956346469795722300766321684430251522926849896413997175626260791112881440340800185303784041837137954375692928516813493706507598702377925768025819966048424222271576832329013283481557550928960453024790959359384403207782579723989543040504269196876224156987109344680533971310017547238518801080369833556691116657233676463724763171227842687710041434803087666453124316505952653618305839266915644591128628717755581948073370428056896484195794789808029703239186048051817630027271465923258931680437871256703563277425899706194430524327330715351134567344180860391928788204693008398783422278455225164270459755768412927569963396278941176600071521161065736586447155715064297790554136810950964807297966995404545996213628716400539305978482883339934874520501387902847879925848048512123888228668390651882133779086019768930368704624754207166747416298096806936213266654589467998362670149261569086956971689973847746116337465508185593696419672281073758346614312398662006413350913059080287151777792827068916484667579437868383613768629713884965024898968602571928375768726816019133413601085570487799337585772210860123840205862203326165097174022172520443322528343254593468536091602225986878976608978787576980993116778179730144501966170238187770237298415175832507673020675297232264805992609600088238041575749111565656200060472307394613737302860592388285558213432555567312417392902841936952788662370111854565938410622549536144892881782593184111843904851218595772886680419423833551595616639677260284789092743171816424840013009944171669190162698109345918554134031905881885444566384309622895665453534466871986607264843665650281873557789791519311230302150183117445637354957786251705959988477584933138048957258726206411851817891430538539055443836007888595451215535711095532327749807977639378731877628584138008781617983509507246193944576246744000622556228489695289168320940157842612319017078437626228108417788651903477230679382636786563787324741212383498827496398659065091241893792593368095901420530141938274298854720538541699053900447963769505305881796603184321970597862744632877945433872941732125833320135981020713027520856601258365806057339173814410455600772464328642096582359002671757968119271335822435633287749210920829607616448094567688371605916417346662680778664657109071012113376133183053467160377158152044784787524024895701637193907318424974350928431848285143287477894242837781564215211077967383781438150233776091762845197555466394925221139705720782566507707496698199307946999873966763608188113739713234026085146760984971642115709257788527370678779156169609524062900287807572351237217542295358782085985048805395750349595754361427677987236346559466503719119814996996723151614837775808788564817684565834126985937793674605489550178899311831088978846565175153090933163145795537793712049217525582644895134946714976184997054573226659252991784554217752097775952230273232191324319332305042625230262617881846230284280014733158243912458753367438884562253981522361054600566459825894023911190203391597499414177392100916971399799558753906672376530081316739122561075910742374979098890235601521034587971535666660837801281786863734586225674910704711362944276649918613296080564715507310919109726004988626640684521883141759683467687083783953997510043099360227229763724374616855193885990086488547882788391100651383687094556052036845191486155390880817972590494473991519279589696347183011056646880020563429774834985939119135401908461186973094105639403274565804083883349273594693489433841849043815308734047582180503950730551703776583394909839030346673873822161918279924870346577649192787532130849900478522319205796049731763547628706433078384394321272171047619429152135379303126638404361859790800055009215256558520023803088544816193261036196116165232008690234887048936251612107410296731699941504217676917393063118841061897450840651242156711695766450593322631625524078810245597216838838029790616092266824273065278408979384984887300177624485128569590655526778795273506538566499979339214971854101742030129800995784432703851324265515653427670277042590715122196849088781377655225400041776170984348738836882915156323955417020190852148317329165757932192197931033346830457641799581856221905011257258741375881192661557551187136664946639642841315542101757585510878734780077566519200017971628458573737110693825665851063210081552038389701732216209705446133996070800164598231314186533093403670601141360313883720894027069795162263451211615937545084993295068199229762423819901133104212659108570244477932262106797974625659823234208034612706428005864391691327086744730224635483150555213955756865018665439212949300266357699381325535270512847253280703429225534409419442867173660518716708618635380866928289887212688795854944479164411760860301913559214133221484505605867010999824808810958511644428262618941436327589870606717754626818161699898125169586956376722135522279456707156884954835840555377598597699775781835201495036190944939005915303373702664190746461155451855768824374539334173073465841992302817867241462010157594906457882856540467640528931607547682849100392507994246598086601640038399287930325326474085052501924378232518609228591055214427067337201607480925717107742806529512407166334443916773813574394185027105790064082328660255027498977953281247594228953168617817576048001765726694379802104298366991148341117075473441409491542362170919017308450047517477944877466949209798402583251508287273875469901333845577194238734897558184634086206428301425289375747208053527820412581926458872398118320576256147734090016216419745011390312655295738455434273269475736918862209875111121510790647467460060351926799957748737950675310044496946261870143928056619418771047539145055788446597162158387221769464177166074637844738450651337472864514295279886659382658203565867207645028962876709801013950375984337761739680710611684979232223218729275325604353344566660156016718557265968682625484237735611723901269636676184327643119649092390449558687776755585970954892594206503795005463708989171119467583489419599990303926903511056084217298469546447473040964373673928644193294007114473096998705384764440963458630346424601347259050504735335919767951345885156191846841753484955997200957289719983567313938256484470834292949238259976345588575249919382505437587654666615679226716440769820402605118641607744911564417204127429530393643382683844986421066243510021903875147779969908822022189280385036924348974049276528648663475554495223526987067170686012991748201881908516240589116009740430476495133170164467362275089077142763118285420291778356705857229850302863986225281417370092677438060627294430352516608855821451745607573317533502012282241109415045650421772424663002019911240374177786744270074175779395152799088682281470831958066996002665390302715219287940997282803965443200662352038732926319402896505396653266245990869386811695621146486087510929250519915248696911805805784254223640837837556447533551211827086714598403366320003146383097320654394915795204708466609015502014669179065739071779469588278375794749466555443689916866621023303489508938135700171575185842951195017109609890306630242970790810715143294341129155414695198112872815297057096083479287492146505065785222220058835741327443828967139839690724506770933580413375316878975834107157922964135064621809478374991530821955826955743790831198975059199049425766573087953036636977689681539281995435872283036536615101740506541342141465201829679418303327202914415994140428825142870074065297182564924676713077371128684656419091275112296155284441386335301669750944981145280163920140514385677986759802065213425241847102625658579393526168544969940571818590161165051530900151043543767140119913648408203673310019057950503902267679423737719785987747932051341454168597691397387141921478967839867984345997307093326593495538280527351598621135704437898300392181123733960246221247173080295147189649775398181939408608329699751175871222509473366421633442549562671161703548884539734318933072488747152789954506907920629495877013332325957566372498458253671326157188595445709121052503904827096794054071028038705683448809746153052411406981255002385615118018327706839370438002436049110992423409048300520931864938242335064815374836927996321203349054701136851605945917248640132366818134161718599636072483209168229330495027263486668415778077721543577884020080724938326262980222394138307714135916300697890294240448067888091093076322062388026805633718179106225221074661963515625547617598330125688536238532869997883808925737174799993317469225654120497334286568065906899599613417782319583985988958902351610153675723802620889881380559058772881182528738693826324343384482991176438843331725454015411051167674287874650235306680981762467579000827807113898118119917061349786137455997579374953177797722150752838088343671067149718937941766288249571183910739535277301150166930167768560668349159774740870355289441876849428940201551229096169671551777375559841079796584590728148544407056840089319110594707609090441380001398003573647873892526631718519548787631459589578448219845326647551057888647891128679790454525966611108670022992080172342463014163583907760905422635753652343317864405278172463983958869736019298570185960461364696751359373475316774764976473617050335822355649090805112595223896048320145663393305073566061772422432072976457323527547303445971537313168197857419400258290749744915585851998797914315363995366670751040910740267167425927289616049501756680853882092770509244119523817895528750550313885936086871665326253497312932137120674306720592023054858582365200233969117478585635977781635660964011769539632068085998176959250571895983594916384285471557619151281372456234812515066678071894349387927151390968366814511643834933784029081456312224025274704774872922750943101923537711689758725105512469904244876423549742175930082888789091359832391286877141481470642857115960701185184689645786179574768086547052324749579400768157398533369179817027357980875599101975552216938957662480632459353832756004582046660497675307824852621263245609734862738366790238289015922028248749635572755959267424359422270494518440960657628802635317673669412378181631695021100849843698343319402650205305425933812178061486232707537976025729276868025267924846315550320289571724630998294471930181165500102618654492858764989093136581986459116212634323234638472235756941084524514026121363222818433990318583865831761992311463100624214460270667517669508053896368611092560613848442921044134852516601269654638974602740867561898278548252312633980152763569304313901466695995301562097694052257673595511077161580566993072269965561939707500708973470739250077450605803734828371091608138022155266075215574867044764128542768503853931059732379046371627198332267114997015605322546230965248242302874010403456902592491033450854785399756339639759919701183573655876946290562510803499137516244680787999605864707036867410434287798240774356317729138401636110800634537736600458439172238603269228684711864068949966747302645094827987597493440542348289628974708050850667908489771073635440385636849230334038010421977126867201966528684844649798608176278208194965482719471653702395557867740418600183430752115324756710311104417590273363613316984550868476183064523945521838048818636477942337109196386991739673016254611717486783707184159640582971456102215776936832118481577422549889841515692996756422585050399944133369763091146995736843065535048705039619017768734855794976696707229300254593155630610718982603902971345434919841649264139146196758955431489440245280050294031900971665623827178218674534655738979732683647358526206783864396570594203962545202059766907673291008952509958730560449717608141816802670502066253451665514788403251214910837341086278683955906832167803825721695800132163203375101911623308898705044515779386438498589979454814923431091709363219515499179210403492339950515763573879120983164915779308943004266633256326149934025164182928270438252610112127825463195347463892986074244119253945462311746414569734771699513102460522729000911920617843622274274458865141688648677884706288329440752421027546646655153086135409266321688032766788250779596908726086676484460425382597089883265470309519320313249457311501305004641803983946124141325488387631960642993134768049438515554847361842494997765523056722619313799338043764404277971873996407377561360645095620964646834032997058843544186328959603131928609813815528721798672161842570878717336188415275567754404399560711956622440302695194952539282716813598549855739239740311028456702344523453071249637965226440586548942243776977339188602786609529228267611068446330099425293637726130411993986991155205199897277623408893877650698328231423482047929574617512166019409578324574774349789961423639137059374757428786689602537047745884203286133987951590130245491741335782965465487094759410923888553237345538629992645410365037720463102845878111574275708084462561133305809987634599140947650402709639193234337909207799426362252643486849044691939220339226182616558448447207007858570290168891841164115831044416686710638453621101482218173104402278163488828225719633039012590330693374229437374885376719382649382692253400835321529243501726999921274924150920507542170566965978573646173981247389767343079642418133956807959991583860479504911347920724544453890324263802704015464689596451946609245173298779322907862490846568686421883149098726324763075946132772166317774442383140347773491670476572820145429013632404025637716284293486128572743742368625771349684857218427723141402632822534368362840401660159984862602145047977895311212032784648242372448464196494255659415287805058745264554277177744699975724622239843882550786774433158589750085816170494206728970944046281396741084385734554825188529286671112743390665643789949824180660749638157708230325769642435975584777013961278106863948038453574175865850840414990383324007313961544989771085857434908957975175726192465432170981997598730307272922955608484536163244374918708656242020602684700581804811679461710126876025138916916135796236744710985292302792685513604760857889574728834842954885884228182302867974155275887620458664852915621546039917572934907113903925269280014151116544585120389374939554024648354322120071962299052375435927898945584296082758193373274377609012178755425408515081531539598249118764136492719748512211155762731147143528833326295533497622555495622147960197130099550773620296896283895044123752410997413549619646257897756375504495333986425738205700060218777649698814136901180630715849182800684938713004349933530685047356625290159426955423019003203055808291533385490305809839705906004667922945638871939106169166328822889781053695088513020307882667652404068832268455776235444752171455815956461051653425102315804389391102015590947366278418347197038242161940207777172480748023420101868923436088584896204695424006022479476793304893594526802528704766586395299938149910260457826527201574511844284090221447879179953822256001196619144369603360549792085178480417466923710408083863659780173421574281815722135943287402453076310431993570320379206608810683747193894077518641491741081265342967627013281766421904613836071949061897485242408409829498281747626295378480182571916425834662133360726450526651532922679978146231440280424788215774064798607540018788264022195864910112485273031038497158423948187883560686246971521602197267722488355129415235256326905306735842247798808380272841294154935839286462973212218877592350266368657728074010941100118801506233321397115998232490796321820263747072978244987001305962622434437978040583852286291715227296854434411012712227987095994404752239469883404125742206718462888644890288472233476602513251943922744031612981440101724830595631724919976774736301803308434036976090196677383515923014926872874455057592668603842883705650680483324126723085681426372729195630173663131954315975598103250484186078341727728805990794517260846708471085052957659640988086487285380579691884751433557790906697955427457839411455014165317972431651548654008520484190653968093824626588930928817831752432093054919742346549018176483302318593378534252797881708035471025957100534046035921714300457745886403994192015790140258309665068730079798583950648840463091222412799420040739571715425319604624584448768370764999392332582022203309987333684737221329811560875540202260336429134443027729804898014280337936452640141587394313819639287928424035909134183101338297197352679911243469024824122301869854354781283375869775935951355222426611713132724560561044743857242137464347492986274106360476710710376801709167240256889707627459425658523348916212758969512862580269753023474117162566349778571697297511481587964908903527654767770555051153843802823438721142109874030049538764918575369489284848878157148786342352430059762031317056298906766631087959240311617827846208039412119124086354746104531362971929210139600260125716921444070759207710165719317349901549208048484361108477492575023418394454970170177842579394748090454036520709029374740698780449027004778281630635549386728890741623590344530504551491264927589128075966693720238099807461780305487937622639115942539507190157987129413325333192477437524435476271883612123684991926946843324456722842383690024567444232175081817639556978977645313572305394793009514211591837526463191942262855973252296031199265265510737316449013794268059057336451026931524762218784244463051621627446650188227593816623398215859537473569469856856807206134297797634942004212090799489606717072856717422572388986261705822137470054424891527894538072469699919787916904596923495140858394292376837318742205078150693939018366537555075399465895665270525991453456317029169655981694868240752336705334403198039926833202420427802267660309574470492020455309848409597100410807584883741858723858296553735828726684027402982459892460430905258076625118285942786337223316056876634209190201060342079572399505344224787435903414696666236163488300844826502951094263333610004883831171455619779804557712221861695752008337337282146054195922324374303311663465976967745369850516190515009929417600973090173649950309645561982648343579204249245723112772017326125391812361201185355973902284223305429810974610456501527545978515003876703045402767476645689915420221634201584749106205864297916017246919359986506414885813362775887871000124540210635134307406687171155134765133804927676820736264630035413923884813560058898362874558442892515190567148843035245700983857299357008821186307457186955171095334371757667673806065125302880728816025589563097358421164863912661647312138740941175719884629038561643205894488617475302809977571346289976963132828900873241001236938364782819304522452601055803489554261360355209856331450535984080230046980005162551003494444517443186008066277004455932796796146384545431866682183772741138734382713918522597214512431081371726496173840282946275065023054594412898308056162101807011423357946947611947461488164453966577358724898118982991374961555395208129653291804136374125864859411039500597518631791497703751851124775693596390944770209895912101695952510645118146341061352582922660755454931705706055042928319917981335788936210138468759814344588773054597194424010933929676700931206965430225424360713526746962239983505485419578398452137158180968057949151182918140405668545677605105958477668231989482271798320623213307061101311570680426226171903630716637980310883260053066506514241730872593814564920586925934985149414523422488420595185675469765328905484937293269123706336166918781499158729530023789807057713280421442175937126959661754975392654222644359484856396243108249047455538840252794330740717364766655257399227216121490943774781690833820212631438823885332835325341393699985557021557788605970235478879478947489247740187683720409630247194516161389068341667529191592181701429213881784381945138610729817419525557246398220279817180755878018220518945872062203333918980949201802642512738243924745041541476888101781253129039882131617744508846994818472316007559177363804905642537886583775313033069299110900966141613299012677229212108580412486373501526268269495089341976869559711792355361155586446988600798960376869087984336631072839555646240787046328026828160945102731674947123086407138902629904183627427005310227879814263183635268030554777489498477805456570860560771439854736876219671406599777999499359288916682324931037518398545884693133403884499215870818869826029527741894250910305851867895787008688644649842957900804694197232323645655991507045525627426217421917843936118979454828829570192766553662857590122174710567347996573504054495960847618270102591887256653378097729123137856233067557695223983418390293740117718870255934616190303541285334682680357747375809928612000761239667208383848315963013729329175980092641854185617313001772551725280131551634656982583910818955950451269115579486773201456104130092049514778230654329491121640550619487448549558693908722143102492361914591157293989957995459924978831202036382452026375341675703327690843644800547428707434566817768701030475084493584571365998451643489368593137042829781678766885471566029736812454176328670969896721939573064269559442350979698335700414505291896517628397516186007671392535472673964388698779937438045481749695067019375336196027362690920452470917779235337257237831512420802032791976914019538416761050800103339736955895952150907895755019866225925325935972691733669021135943804612285693459237507890529714459216937369659619615791265772840988540359421908325119767873632196874908984497605160442867248732234214214325049144870894036990046435301883790590060670218839012995765194129887032034955098805920714595491843129234192740724522143148733339016319636695336380461759562934024131602308730212704702003352554564728084349645290186426042701272493717725683425927044956648401292081804408289081958855819398844098751169094578221496682392096179998625304498018362297646355615834632775197390199030785381226438907634020641390677408378965356816546761083489021803134649338901801289099988774853373920418338421110617177037542354006637197446017188924042286318640962488293140881098311492122302984920101860485325788124073368316906223142732770042464492957537186586640940177950738487077229232333985928047115310161701409102373113725830216801496737315864336510083143527368023028193064673152122513890859220562030794005670780694055850537800241929049759975143667559768485469366389815046159209237346994238516959333352641172100569118048385662477889420449623775621120938816554817217683904663116600893472924642873060369980014884507471313689942157560524541495271640662995435800344429730497273752880796143147443124461897972915587549558473811466474576185676362420803396948676918970968101591581313881299656049256983980615974642648999618121883630843987617450621049240479820821601493835916119690776116857260681114951897360326820207117643817539867443015676154818446872896378869876446519829664573044871338511818760361200552895256879188145760591590595983721455015693210334717138649563367843688082833901193771043427351292086726289027614414205897443215259284233138072446103396382482832929541205436658779162469794073577544162434008931874630592289196782949589742381428866415050328823684409519322277142914903884759101170732798510922986313195089977838022454308396877546960414700950459330871729771918347827819829195282491464597841403100716899678179819578047215706208397197778275828674609289427234791268713435135743814320040553673732963096792811212377365005900943987794406365889614761423955931809155176747327626144096562881592326591986369152924556254551624669952892184068535834366239525365170579489171109954079964275984110379736275896742678159425265890466682523058843274536832522150386990484948428258752545978594599375166460913427872804915816590045601611460983834983996070356832368346241959068936944143553331113651680484643688687144233470416634480313362633059306802775046332221871745468060240573334022103397652197994389001818962077439615234260952821290065737030705005450170797135374598677953830414828702983865204930518351106710765275136673774762069425982923766105107535479117886395821728470778076071919598929924350988084829282544012382632127478186718949828873476005257055166554367959359323617231311401092617522027338899174845198164186391101807328430456991163826163803481535222436589062187860353915948838104631586991566031659049129149225302151901688521659398448354063167577732052316568919828103152378254431682835791856113386038493255193170171717092461224577646839099366969466227083045038845318533599100932703876781187226618329036224313579474463781520239390416935820767418306542391481616968522703758050641023205375995583566007233729150925782171622414816913366827200767285651214078389317860039575666024662083555120699827463668599074950747922529761922666510616517737320689917378661023730827814196817633906990032655920214488160056065993003913201166069575496562257804492160334290553717830173158364108318867848963653037537029822572900505016766722076343769772454829992679602744018362937008116499595185220690063217981672873372462352946175781844510159630983036340839751884611422712360384004967974768210983543783172108200282989603924990510901388741152603606155098783345821045755618955689371664976472151057644632014022075949493424474147046904464666306246983060474717666138070188392895223618371624027077459492088856969387364558164316823317787303447189916102501303537440885767413473436139764990716529699982539868488046134576980792713208642887802861678950365109758938534450781067737179732116341606713320888376126324837199220137972227971425478981402356923631674363750286317494969251974106943419396638271364375283294624881886516478760159015050422763924610396227147695071701165046650037735979060050254485542865340751146030944943849180927268593731816794647349971598066825848231476438424986213359773313778766163422813535756489553685473479952505373169125735316330584860578170367216274166252743586779207898660109274199733085964433049837554619835327733405047070678359899415464196018699946791893798419688981478560067649853257927289626915541549721598158589467283030994470872150697373587344627213634844655838072059209427130304351044504886566258774157012198186349706521196125105831444858305483149610426552878685071673133091007337945970622803752079980892244230626923086085982518920549937004917818479065518005026979903053924495118873677035000238502900149008364172514613993285501639977835242840392454373737246872540494024467326628625905279843139578129672999004885542432553669431431635713862136620709685061056031881545349428028060345607030481960493244211946802519585517368345513631863263953676808402691423041471533763029856730697619023204436787710717447299829192897986061930639068313041087780931749268873623536882244942399882720591575028055448449561679885194711830520380417239787751795723014306967225404948051331479970984179320006081516724322055800819203266125519144843011952087745646260444255753259086064140576264209571910961438842399465965066868591926409542591436507645024731017306917755194071104656468533155154445465319218634854565289067412808979253553270923255183171058912346020272654274286568687012152654959887931843274841872917610593337558312380616574346076206536742698265657114489565877998511653453704735839887631888059649800329801980898128754453367695638056523275389322496525890280176191650670930842801983456927702600448845742547654213752970079460782349122466726057829009776031174490305131233251960268554655449237502871519916258773101049494515292576502611124725166329957187460271708443429079789341549433234969374813049774705169431158884594522310275382315343206729676864454139996688589160734412204921002183341384503334139974614897740366208721478623459744764279565885599010538088582176244037382055679891234955661147821850147346940465764592999965155558265295107678987630662107577851116219015569503191021722107845711893475434616213445228012733301612898177084723076619926498435999091882757515931871489453469805039101174737997074764075638041939391875539168854928032937260138365782882872378405164562719423337557551963926459719958734032413519345370308723588093564340070126883430394497535107277138034464806235735521200649648704310606994356131019162974764496079525393293194263109126452182335922772403163762197465860144634802968996513384823441504596867296479677706199053293609935748788798006220058773681553051047956632866120330539061805243264517909261755765332682368116346876701449227958527086798697409121184142325636812267130546969905322543759420489901817164633613650452530906172412462326133855815145337092435814872053298727876453114289374043520738639999329657538332682065585574926820068207321238820900973475988141345297174293346102499106221391913362277529366000761267390600268455822127197213881803961643146165243301187670711536391529235186142175269664263412819084285523481798584604982540672805532310461031613728746636875627177819754088063444709904076034878802360928612755376479230874054016266656117922240971914971544257337506229558795807277231890402341383486769587047390142243137952255773120533374403990054496862934768341180095923378259687554139709233186880315304490102226462585582700617609948027657888494622060864535486323273210005431877048637143673823671669617128923302951114226607693986689453179615182749911190537430888414137129578583116092181925111958768336970013053150874274864237931030547092573751519990457470713198680364618299685117850405176295323801641932790973043775955000557298925092045872367871815466760512382541713817827367903680603220872430405339842091957049204020152524395081647918930995018916554114496949631333425699587086155440718077461917085227388976288898255607794917713322953789749545193858380653615609546188221541338914864694028367079938314453662781904839298032348695446974673567006596172455724148285755392529430816088005175497923186646051773496073955604266163927971154501930783187616405142680832523476609692587437165827360711595362276916680187263877852056553606965354361483811714127433259878607750510958684700562323095923415339601866896330144843128879293385040431315574123026830776083654000567883118964963062571169418864762733139945548765876227738339116745983961766369954908051724907880154596234683149401795441796463853437903880012944787279619698319594962721549647936019485615370002449692033682353596860131428850098751019968381204913974454517259332478765590348833633449265789251258205311209115077155415374306085849208466527930375077951814868450607225868128305480385185535999705259158645824265424433021145524499648964968520286180463335852634157194514741537214373117715567510069554024423110599123568767106549376086473749794356411086620946888415718185879460082177501758439160884191840970872688496820321700894334005719103764425701083174622140186968272996844636744077273832307262163900769617853273382939466421450528172730725820495854384642273310463094029735912285522862801484644625595159638323190235430327929577377791172906953083753511687814507302136790690158471455006662443447653536192821609000427814113865215243615894278220794942826728394478605912946536201016067123858745582538702112183456466932540510233808244745546773551005946050071817583107731214503040066891305394382398804174751500297977646690248595933181377312339629918131063475789798156132491676037923280171231829002645437086121983393692977145405772693111692025573233288797416763872795186285154747476410155862647478278952995161286880583257825635251459246376084876877896713361320594323112907472142286860883510444796570330760305069369353590976065878829383946014383281433459027063718100303778824811592010985818364961376166204299391905295015953842114289313336938131747758898867915701257113041970941517864373282142739154718758902452290827062593383163981782592900271598881702372327894987861625554616056839980903230495372842238631494748514122663854570892663844324999000453456163164453228678115467530119987777421951172172897589493987150943791344674709958539420988821244115770093844661190869186045996854236186210870984193661104667705557451422082829073165966758071967957178706753980001480909686342453828915948086320047688391148779669976786055249172025714440405635294125893630043119107294881118780984507842088991649611852755797244252589766918264646195992858076900904208648017837709786620537695869016224830244311359272769585995818947596362412118127242907936284971716382134313172971891170361531244689842237129697057143901164064619840513591796054138722107564596135430762037748775419264886145604330157336421343857554335193876707605722048020322274167668321252034289955852713249462533171978868784262696572044059920487756584458091286479555927757456667160502073483594752390000189576835144738317445460429104752058079428269523059353279916944104447151496548540862765358115267133742269988040311055805511663280137629666420909057141248851856094259696626322422232206095811396694445886913241411647728644288265719652943024252809360205342742099373625594588860147162687795902056784946295171095544122963086990605571429977301198131403011490028076732844239544021847790857184913449408195442621954582458719054395403284876945118525155356038575979199341472956933296106253901549677213436846611164495017643964473437808643303119724421807954969512071142354349582539664831046445450500244496998024771131874634492940933113822657886292820479369908502827110746805084079238272686755214913194535856839338198136126934884493361092562541407098012593167176948368877512432969432037787205429940160112722888407011451366223744095321474313430253250704147252227613124550637532319221330372130258617734658908254686391309538280567376779865031190162672290615158703913134155389240030216090539331208003149661661230979785096553660671158178502570915849753784003475381400302886399181527234462724294149587988419060151098777072187991366383054969948202318063018804228966140575199515815059438256667580604864289722368335945665749616139093002896478948541923705115852527308547745430873788505833009818392014070258251191410262927591577303050000311134696446174659504939569126307143477005680404408546834210980245369845919674915428401555193350698401280769993056830058710991924456262517208956628092417573536740791202242311829051051575368148574382225286698112389923425469654380945292423174433202030707741298224708155516905220299716701451122122175323461524675357319330983715014974285164258453501106850711194639119525811227174033230236950474882347361535388987650020719022344673094270354563503185028966479483492658970468987703435086612652469585185143277694011370759244122613379154640789775695042785109257099204167297706907327594617778528119828695712466524003777333388175355330967212804047489856076940571839279925447657921705372721391787181969229103747438381148817454268556687339168759426922004228700375591145461739477968653775902898637311034442968349926227501998665599873127948979257920038639336607953863547595176289673109887307855243534570027064915895527696267484202583281097810764759441895010741371986195521896584322477521534457557775776654048933298915144046177575021681897327876791165245216079873396863860375876166926271121841277676046001010365010750134936281130035521022875333123609470193228381273945906614552829891688993282942821699728373584186820095104827186969327185020865206314380269049129676082100929786345562523388961753873936206634903532644700199247579904741694201547577547688533876542174259890169495764131889573127884260177495414599878243506649058718057468670944044980123682632032141914744947737404005763077179508344586961289894813582932714346716510505851166057798178310741803936504143456444049336510239561240525435984612366540305728025060074754328462651475372926729450762812355537022405556441601592500121351640839405153077167733757502401597726472958838775729866990531974076843305992136897117667897417120435916402952415501138507266794825606272301132196944783825047815560169733894136529142648952211250696781863178635670170002063672492400910889858336391135538744183648913924521062473960174188492812217827153671654167598312800474047494323779397758339902559321692072396338260870746660195805974243285172461810357211031819239024438509325685511730659040989278826606882782264917588171648667145072587472081745418585426297973530749451019037990088994031491992228116763495163971573413518266882814612907885774628271885838346435600407321054451117349874349057939721580631336862999762993477166389022920730207881647601998506190774908175058600945910529849708789486562105220316594913874996404820372770886766613668874006958082402817664557413338333227800981462999186644789273550991431415126421617381244488936177761449066118073431481275174984640721242954339027056340412316165299534260965844134105289307329259904734355230004503430851716934007983701122293131890908823585867100088715191766150153429946875808243163943537047847849814645446276062631664704156840166573674839709453072806277665993840460993969352637830593884393329655902140643876774345796994968178653073543757534113519915101288158070551008526799132135288011388528775865966111378521880787105232501496219033933207881983782044962589005246075918889657809441993190102177426617554544638977059173029385744784750134967973074177793504183951408423365471461398075812587464571596788885039688022450390411340811141779331140340383351008399135374311196793699626455833219563959569961902136091495545766288700886066516792116609025219770915825240691893227782979500206539455257177041042376027901265562953920741284322067627155696326089486684101071755459008560235767995851329569345415966083028033869118289905868471844021810145004043670177003031531897098963699119065924042627991897449226207049329162011981865624879398344749649178883364396839852316056761543346545422908011972996075940751047407792598777594170109133975533785916845504637327928084622726700525602801402169872690105566428821395078917523351675383177570720783482731369284617380319955006882583263954258611859063151457164096953974922308700868565410907391759762094154715005035795708589494214461708582117894040145482763874591600817285996451082540853776062337121967445120416550711076889602204293306172148080730582811487745781617885822236173004153510051933459556846583420150139789626506203592025727296104599196157525787943061222300858992038235986212985748795095749912837733713634913293494211709322720589991598711637765558471473844613655773566288006698702033712594403389300816456436538945220845890914216920082694810205143397619500446538875601131678810495527230062143381224263466335997986364537561543789237891114715218818952958407740260600615039942150788519432708777350318070687786930261470483450706807844423508354584204631172639449691171805882782553537484977718998705999673518763892593145179591670080473248770278916666622972262779894226007050775015026504772582804561252248072304748750530514597628583164565100289770531050064992574190579136203305757252341623361187907895091010276089557152954539932793447692062952374045469268044203538242476093187365032816426158468691237553112098202137810982959780988810320643676804788277231848445189773828080888451335549290383548203281881890534204320558097134162334305531387065912725741579592473540499573459445883375965787386938521710627949005735507823681770344434970225484846377232041864813804787985262029474353809385632000334613242944298697551406752050236134442973654142346442289834765284116102266516290941131969729368002625337127470994110240526717629111552187397005977808221845704563242807789984114294334773211282121198003979995663083704032567771171125294689233253606529412434892612535734824295764840057463032832195230088132248893190498883503701763264687127780539032599657551085218127259792844251048262603102879223031505309593483471063940328363417594812252098893239897151518286353109555098264431550660202339386295630040329761717244857039988251713678582243133729474922020685999049602400325708905238447874423133495928111232956355320224062887590322923840059793670323521454399245987715950467141573990342422841800466133692059400622983127299727366412579984685763595662337977222752638502435204857971974354959556942878550072156502853848844898363283809538294635252773961071635441472860651746170983049044456179947387277278377870497494051388695929747062463459693381747770998508978259050807342850104435558881317180459051461369728350449034221843527897875332889305656572319515574102249537543691544991934448871354948949494018722516648605017201154293516310599081120482747153488021399388383425296151936125955099442115993631022810918964383664351659115032165716402623915492414845284614311108250340708493597071684139826561160543271741239835029482080933240197955723339032437507504747243374334906397178187900044333147529716209232253506264660080379894827907882961606820536902774351565011711957641672504614680992490940912789576807334227841741414260111097318106906623171648921351840854874935351713885968870186435880914270293284536685936107955416706483241644877606172683026101406663779529006560793701279629190898776974205046887191061675824647472724100965854982726671759497615137956842401700665665328133240413403454119336681420607728279478970549176007707606958373448236010968646491079644404977629245507677098396202121218938239331227894608868234210954673259648269207399411191065754932330055532126314930885823991763379881832657807968837900202350979740171473211786212528978719672331087893320649317418725605294138537812772400902443138206668234316386588921873313747087354805714544168084886532918306127945388693968503061215268792508235230294339872573428908812851310079828288160152996356751735888425152775904032105804668590416295345246147641527148215533202302158796118102255795975483848979069028947194023822082381882017755962575384226549608458669885454321899535397407705249704530098816903603532714395433173552513629025847035299924676078374460654178628247538841403694268505135835916184276812302701778140434214845173493175028022653630870937185280062171327012067466165052561994690953476043272281454994579945419094898042889052883422337873470044369188088332602064517905225651466140655895283552800704526221611340900324787514514652226085698834778158845109447287879078116655730302938948683695343375186025595808606316742334328403648250017902077302268241778851705592258098193092000469185082733090479654691734139224024670164546726309787641999266371252885588025688025075922957892019093102287980695969274397309066425415341307059550340649531069562870859308063942136913954919753399027307182541130451093602918636204390878021207626464860270849598348574506945669474449040080357578939884501543009347768350215338302495968949199958343220410934021033866859369585443771122571654479068143551710845162933647810381763482542752529611366972807469598948586141180165338813400360199758281197554303471787775660955431322142898989603636764168701008096642785964050029499149121095275190421444887099888285004188300192536216556812774640004760682083858210998938776350455851952809975968869365900688418417737525666774419932709328471887735017244402944893992380189632678368859832985910938963434858772277135280076509367782289479374731156175436238357366676708222041514120246356429827603847383785144265505325797523431461730024529940097810695799537933831036905253505848721733035788389772679435592600798505332869107735115511606672239216344567033668657442673517785616451616284195474353986068075117327404939788666273520149503590030174789440963776855774581413221469948650973126380817703666586594671492032739207699822828501215600328969822065714784808291461858020362534818821096243682379173103684089638698830861626301537720216042864039413713586673805096689482125773923849243276320460394990027890168387582289611760230634735592568692447438641903571094695651788628284716145196135764159617667696173038349654152669841002563266498514023992092624907896967208513640945188765044770609427816566364910618866046577723437265981879214980097494848796258921552526897274551212646393282303087166578770220634680161331964067382313568755602822953357755747543241170081350235098677950358563115455537389749036281147097130306910907426389780742449527303420657356122962313684123483765768222468378905048246138532906696571338762125532082195267305066104577816336475455216619915335128421663161269025184221662614989005849645334678544468182715989813951830980115997320678493081851793263846768315970112077508996070853781696769470977393854671862254684318224003814877981373670470616170449139276123873728372420109415857135560844931036589316150399580070428459661443205812888905766004787460331834379618962427444379153973840163714189303738633424634415334874625582760710466288141732755499571861896458453740839065118797967514384774564401973278597862627137437239576001704471393725425933898542195767533463467754690883496720724923900491969938241537041242514644865113524527061603257809055405910281920427784944187622226823272682829116341406580916392256554065826729173483533237196176084077587442457789371594865058175225317038831160570875735837089220012586200029675351698485678099175597273677596299101246671742907434383244438768771173460786082327240330286788404941926737915540300142631534022707894300100270475999088674752067639763159858354541922041972377447194339536169172716845741682140883457215117649327021030607345613897495057432555882905038536785808033713641646742477421487396993091015618232509914565961147180775808158737701152403606436933016136156579577643240661089551698431633574830322674660312458606036622737220760461557744151212729924868204931352971407443393455610208637762104904562464888327605168698135333365077934943429698539826241265689383837732925052748484849128479337871658185381197402432221122873617963215153531354322041133052328334704184761035125088369492396533550153233281065534041411408840495089159999568410198102010031109241785918061668554952117548280871798261675284403556568196034557848012102524500678836176722734251608703944611327279757201884491674340074607661719338969642701082853316649743953678021262094936955730709561882342053524250883866976034601808260938226807330182064786172031926184438687773137211495016177421187253147274458125359640893662983325365835446852985843678954680799024637948999984882256485310843512886280089923873168680253933932913953213158501528381336152972083487167505193805389029843775941013711136862908770784471836874269939948005711809244448185693632951528228258636470260000019181443919451671115040410910562583811808978669129930563863252170616782669263271802782904471569225537148713833125611118994245782739827836336530545277616926203544672896653075681128525747627124832767714139187894135070206499178933829055406209184441087958677107557442357239308037183538903446273432227569850472912504996542894816436120144312530603479068050782950162122103641877874151576363624335521910372616659190945099285702361141912512249430820615759494973535609137386811165853531423440543736176130533928882855949322096142701495834602908266104470361654164629769430796853717286307716065093173035227840797209323768964141699052922918626361762704820500378239126852469452600392051834912988405233228630149992806371374347978964217683541584523133309091215123925181339348842239376535519288516308167809538855318656217436339405031766350857044092635988220556819752617255158487840290499846434156189284982251985944394098352246733167708428331421223123293505241769618866621665481731503084410153314953724498439847723756466786912374638826837789219210097727498667175912722734780489541540732341152124992739789157254533518273232875608824987644520941522061155845314024344957389306809976707073985052877077691004750601894998275659774147276115707740932428247011326388161053303480463260797711639074991883564407551693344151039028409402720955931282080695722894841807359294385134755839285158658839919746046574467382602361875994229957585605468871511656065150617006102424574475096948925842495046101413411689458351360868107541669248522837174188381432553714106094187306411675228933474746776254316899194959353166616600844872498777862608441785759331225400227613721213525880194290420629691285676987311809221975088663260164955840079178400365000853541060592373563513432765481485182672909939006956759839217682274212104380353277134390233881838273184449611182459612718316330762105069581211732693984080774419344945510692277564289219327667653498065111154693166273928236489468061185679681544200228720749268098179120755455712952990859093387267159201817350180307017373331799804092616059360585263218164893266727033258423374060101345134234480110521341906773202795703365047403884118372604380019286216404804006642617447624896031128256133345359078073370580493018489995933634606310407474585862693816459260946290427152827211384729096590820317316070443890183318762015072916202639334545023575253858999882322934870478891748546114214815306301935362250423141963489426158717299321982646657030088872682285738947870585080958550638849060865195320438944514131248955753850085198034876274055788537633882827462465816797128591581702761947773000169654449469694491267047553674073768576910479158180347052803183659239566159990769967169632112883224340106895871911800048967728989970637919749287758927280912720066434887718056741218341882416315826015440700329610703301731046055209657291855687655583082250786570537981862537813497791452980761812480799872834053176093418725890346091180156119622851793016862225892686485849986409134848584672065053907412643030618616103911698618046531960848522621388503840603696969441617980483482084894639378026875281495187203160371322867715239566979422450746285989054087916398599530322367655771752330588472128468300676798688173014356359355959311667460092808212143107331804285336249958775455834598785578945048293449998948860319211057057800703679376896336009488423305659488129210340526387771582043446327980813772180035012399598067734435930206787302511363376182902784525383936856440934101415872347149962163414808170574255157567212725487143051274703654934643197288267473471467944966003679877362949473118714777414627585319944567041866631245821178689777041855623152950923123241963585658157589776020276740588488117521467998180522862956035365762719810018125938022448661799185175906620525178200417364043889092462763616778317947847692084137523872296213168208515996662849681573017561019429361862413973332001798392662606689184449749124695418571919750230303783926518451403171331573587895299986298440015263848758005763947782956257792112673207756614024250542638440681060963900537371768827135705018846222694339817416404670229312167096804985454740260627290642246082292160686429726285702254705180192054785522826388797361365557542875120618071995653973552495008344077107650570753259355491814831390419970593152448189293542591818593217438530889102249502237345292326451070747381671929618774823633730516246831543670094477173222694601351974179931748874756682028832064879945300536672767152327807093809397884450888765038957829551760537506074093213654032174521229497181953792943805283506813887899326005161336125094911328881546138810091653306452377095884317291488647719833269780819298695886526526129829218224104182858026726539856987834663297491878376126308928151511659969087467345278968708645035826937444228426133394184484965917268876257611229811969494254670409237709384848945093054885993391968920178928445025590024076650611256232185795952169781939830064243532476749929370039442087903983015305759973576046476975647660587717624366768241202723530217659757426620633583125768170563080560886305247339406537954909182452306808062298208605070304038964135122990386465771252869437217128850851220723241018102640042517362812103065888181638336585138031603372393713309208348488880723657983134777978246172176753665501312860046302397951729075585674964663667802374365902576696159097082652828917301939647791644263993477947312267892013626515339096166773005870366691393741990483842460227493917120748916489518988200283415551710207624022202982804998736201133651017219952953430427061662501019783327455987125837506558985133392119745227974993723737982117413605674749454708832450929329948772042297736459863896109907322905556087374625267083566074810863946169969682341611963216583641702003996432848969258888220979180677108491274458909439771625100420892710332185645591871291589883640080857087942387599540140471294461146345702348533429124973888555397558299152562235193173447633755509144373887373491068509005657920546415664672056222244940695404132145805596373804083748102982169951164557857555125128211020591016833107967841701156464161545793206848782606246711289664811735003289452768532095911800260042144914493653204279461862182456745298857534759477872643160923083174996845730363374035892941950526355089919819065521913728412221865592265502205045529987674456411549595697129787104315505420155380622197173749684058603530031934322026243593959388024247167135552518893789654283190264316860448264442509769610270927986367576918828946167853857683045635147657336106185081455410378249815454092304928080026696025835203432301232997986086038236153886318681989575547048670834582201283822011704028274703389775494626685894904085630918121980718301837494715808793182408577129451327068769424884784050229082396302485799821215446392591967419645462692065287420948509829716504796330436888793764030604326190501323945277134990600238549588606136150889539483395258326247479725644139918201829121120107095326672049024745153233953724927595291804089100548126220659685024432782984353750995772679890280692269050931634995930942720773595552354141963162806502310443429074798835289867534631889318818567426153715238231431517157790484800421927107678522600168600587910814577647312366867411795124232349151982885168873939341284132195508531537332686768726776127649893834341217726191196012432569831360542465372136622312295339628891892990450276860528020316548238199434468495110578923826470510691507004772722406343903516230460197190568206256521482622289699512036595304292590662845887380867116540549370807167968566902438711129428026900098090685089395156882515550072292591420356988298987281769135102447172437110611859060222706561456834550285518669005102235418276831590617474618966922199364692089786713843598260723420670718000420773482579039372876298893326599032287392656024728461365188346508026281679152016117370700055420546104378495209767522674600677357438363064271794754996654510466309369266289754996732655197110678282707506218507275869930121046640172956799423191820122098723230335726926749332819160525895804320214873437850006955569283736745140897848805960783406055599362901119598343929995522679457330526189117796453126819383951596571815667095370428021935160939361057108115424083011787673328101618840117270252912248695127149650435717120939560343386965178622742178317699350816119162261418875155556328164148321122250587334688672800508886178151849052348403804116322908855056719625672789760229169666117650035153389957462343640581201967339509733829557764785436455303141794033488961930741951360619705162475619943968676307176573293592801763820163809571116001569125585945912119917438389102709412511581274033671549329123201713503666120096696296287989862115227938572893058157804370817712556759432119459214291353360073838052661822985203344827904782472783286307636578683110364585600706578957978369231834688472468524198662098868449214908868823544709959865999315289519612799933461879113049548653901077268521478957308370639274527318298599320538508121420396008851028240478937852035961222216767401512180670768222734571725950446843689659310457089380666823583746516313836309835919739712752200581698060036668310348487240831829096921821807423926832175204906493705364403198635962785481874353194424128254506830947474410667838234157225243364507697332790156497480436196894493967070241109573705638864228387616092685810276538732995239566512234522926453916560090184334948215582139840064031290456687504726191622219971940535539435602436440085502925094303590975670609695709351701530798619106018857696867822299809346096152873400842258457646932282952280732664695325966777818344061895216321321849878461948916802477014707298669931655500058057671605968064806711519593584178236548047860266083109062889813866376878032618820340121804273197727464276333863020388171516812628127012345672380076964738360940005622566152073347296677192908372653042661178641949355439945651664608933423846512007805962101851818584900525961110385716061166317500009683317677247245605307644337347355371917571207846588126550450563187758227212345389593613828936207490865545634865698725407197924993916750486866486056549804911070544525681764254464387028074067097922096323563003198535463065025876627455062826192828896564691599416671424889859922842595261255071729800931015884339039526818542796097589750149656361491331521444688425649983966170094963469418819383372134201017387655035974941612825804251984571674534427755642132949992171754729466828577784046935053646333662572814930466684781841264505576353659347109651209836892116623184010195221351823258875288220678083090893802781229155170435941024599680458739797647939958533133880490874390371853839074354441005250134746283811675523986243342248322976742357513730002775472178576060053942989007528851689076071332194980134028660544230035462603659031486131965761221080663534716666808780992120192593065450081769322233846851047166900623519430234621187570197504442303237189971403048406691396837689126667931284693687882401585406461710421614125362888470969820087705120521953920763621769624672220312136479812893453941286071500955740605279766366650904622201470281655879631831827039889437171716511557308917124229714962494431310790794097173168904490319152520312679746993712792492361522123400000195657184334493781498511489104196723254302754165689479360294905825326038679890616515708798970972426513607845842403261520028558992529100009405417123744900159008370704504906809243548048554695042946704822549820992309090596108838207236708241784647408728034836326223265973394091485510413619311981196056939220078338872238973764495892275542831996349126811716006993331994696070061927090056908154129976214106206777929395942275332871150218733815108348828256021586598904236396955151012984928933731729225225017874602192214175537810888304861051900460240772713495482020135453526301007365629712298579990636231605585092156475390742279029825440616112853840070096088557221662474866866586048015971919651415977023460590029748965073071686065191411316023688604347694186347097803603871807608272923976383449159318777442852084661481578652603754359679929468208932871070336149476185075707230189059333781070596389534074328299164628721005708817798049894380887098674434057858480704349431048562218731144891152055183545747735153431165575017276034568331366002479218003872894239255690493884059959375895254366129373627631730044768967083867357484860165134732833736581947907883279623641280202716035761543304740119940221883131584194620609867195764183565884349373095394583148604024429432656964745330147243253678837544591935840704828984843796709694122692263677087220454141314403722889824803131611108413434700011471243213847458649022856938575050801739959884674641525412505291430244846976146398262065846630315746818629068423843712171109628960976067145106430080125283006812342041082637973991192978371714563863270718249720082117941171221396917848180671751443018232168308857088249847788980221526307370542079632315388510037859657296021467998522498302890176494399000524503320798940125667387057295509377377307754426764126156540930318025684228550069389680846610156329302589936995710992263540601879327361441669508306492284703633261752297812952509569908191138059441163715795966194991995824319553651885319059026398832548390821424906080067580098221850264701496552702417375182770890008763119363785328091467891382076851321176133660562170796508496611492383634675133230366660088139471483011337328162290873830031384300618842207650776178499169491932954949670459796505889215815730775718934458517867865186489205513248690681444911391463944693952484963957641719921121149529817467815902976420188499536661522847097570757953124998470108033866477363096379930051755015321820464937394151975570642548843873702098355651688765688114012422304626905115151878549027772303851040617724867797564609885158431411248897115200781576674472358417268286502955844383489377886707096187196004940288480851728774620167928404552052096817159223832765991800642555443845914679967566485253491542162052759949784811437167442082020314367112505836322658368809291574590740303347064470771484751088368975451438477475398725750583248141948053221720137993626755706718226207649715610786488773068025798007816357986854229338475729355091678118857058604418365859148018873768751701957474769437004823736931750542012787343359311244963817499596379756887744879600309229422645592424655924267657634887270344183080525168805659767442506805162265642988360075117871675278860767065451746295075792703648817813699812657072735868738607750458226887701397443404866509693943917733720069347188625305129550474358969778660088688506978242802760990730875975291891325386494442622842917177822424619414062995369396111367437924586949579386305882429805056316382486554717240397566477835928587721020631343879995284618723157664986388450086402801515938896308863325710302992771419052861115000053091635028006398731023120708231165345423241605025652570742774327505956899544934476938436212655500761707138478020529736156610571428493092027884423094805476266901727737373255409989048433865428877213578901213952001171920190757801567920097796613374583373975582044053336860796754256303802263259257399462812633764824100550991946575772729651055709546066935292918415504207233332031196937094829141335864021964082424401207226736628310635997147306541692810815451007219337084252102809754590293963168144005436511441638710040695077683143721092831056304584708463954688008273128490455900259492415630129036682333770158262688641034820223395306075478695195904042605056331019615348806532355888045566277124893288579442532600117543904749820152650382616936164991033171901692177987480161207489591884818684983708061293279349590463692400312359146095200584451348592257602895572608931752192710349026873423622819990263042175451910319240904079319008146351926232244907612007486118346640108536766036336862773262434668789297611841866447662379908197475627669339894642257033690792226299827052396639915520497372303259904484548543085375817115478323382705482033080422643804413650728132224062194964936937046718073661787570317961357865319159429083514076805938873720839324082472637912598565313178159456175169306527369019119270502474769957950907962276468252806070676877435882664080891164724903312160552610829198022902946675495374472353132051884537010538457996170830427430137598560193783818549924939629886856513378802601953699846558146412558385249188661288536052362672247998264698561202731833963723159495515151631310420312097184388853107776785000016339616399464526110154341913768541492257273682913058302140801961872977825437509359375903467834302283568445232412621990587027537771285405904321932055698706868003770681686565754244741404450568523288589874311713415864875865384815004378556789767280923298829579207445475513025507227900739383161104111446124107163520579692250563497578896186675490922590373421786255625854589576412417121676536412177118649175338439714639429965863647169050882453936333184096576208298214356267904265968932428139629046768462110662536830663384479311937204419530947731109900509995284170584334064331750043764502353682289574163346132143506708231321063115298857262681347958109117786505873094147220837208955102524903971304426609597832142612241281044068781003193156256953253997824436503400303533347090653188687844656916927771195829435016591649556732175951475789337037609789273244721314201311477168454085887648810114073224898802970744314803285325086412827158551327192682820100102644217514150271289383615224487768833064740275845063286271636318263570570893497755590373943270331044588823825326950821343504977756065542205671933821545164093826781456942280548135730438088854300487284914712308181766675966544814762589099339359111828415957808999438782778767909227870411790038151990262862622164921455035517722802761601689899924823089937858240376691670389713844195762356381626069480361068499963664566597094620335320387910929959968022305766780214770817379134484533754704148485816978961287113315888190856457313444293583555212083230785875028550141561986942980552681548889087447181257084821157183203798431463418453750094350686485721889809863788681009675416810249986661933133663633983376273369492585709797664260503119066996291389277783159730149100043200878575471066103234614714626651987887958713307580911204705077140692096186218933669497546151104767747357187536097721992741210693468246018571794910012159354563752589782304366056702990298889222235154045467935507186214445625159458071023793493234717279307857714926492924609482975473771444345248735737935083732881883094108143122806077511185834738608496596577880158426173732113964442389968673606189990619006432809271306246733215822275406267198192805712349082212373953153046101060541048128413545009953568744158937607840900105779469501242466026554153948150295283645238204297433668830705797183242791513970006936636421921553117212871476586245175758936939451298605876669474439081557290713643789027625550181018536581828114640814394355941727532494299891287214160496188985364298812460485728197125682441239241154689599086067767097030456154901707224942996186631175429074748367757023354896375549488795608513883649199014504298500790046123234510698777692881430127412728874423104037774835888556473087862786209036976046277623533135405695118455944322257490239424813007854081476748400659015148066858487203051279241065502725961134311812484836827854038764323027580021727809708910622102460123151225564602002774989299713060763896389256634967335261982830288556672356834940498542111025640841475445249289702858584866180351909901204837754763970893937021886476540772197996412659436225598801364167608489638562383955872055187854997020814659956383468520965653442059805391562939231047949822008579014016766996608334924110587244476278545639277181991972198593172553457914956210070964687932111058824837392039484039657630735610387616664240081308500369825525239529015884802766416723625849595326586616100796744375873697550080604198497455137316877588169177526706468729308887757134673703174035455786923444897216457410410849940534534837781216855056000798225646969035440662279933221563757186783159553960204279825597237278517867661073702062976487311447105300952163323725749724322908976907263953197186856088965450600764058062954781332783851413434310949825581184289616433660065642303276591901175064346538642658847129841285541611360263264365333386353317942910795990766106585403668458683396865209491963799628879021559739418275518777858158586920118942471484165362548922620777569787597014994479537945314966301392949119841601629958868830856671770472985322673592242247769573710300457958877329501489824701351468823138764395478329455417807518241587118914283421263861171515237426394156695392781471829500887751748380586909020392084802081571899350122937432751949555936313911896182833360578542030796360399054685579966604735628993203669073729399999203134433640614531931213647959920853853253055164826901689199856448239015182951300365026679542528997954852895743837028050395455190144344115397645479219668382619572793377577384586156761973018790609118326128581969713572699664623515353820187476679907205617402877503337255516614877402015410235873551370360249573866267056748433543226837846335526411252809089973663908347686551698467829861119282454521107347897602683672082031788276915949266797563245231461992996796488303386100650948361570848748587176560992576220355355242935076347430675623128799232843478952283022677487681732417466607538025470157626232343635265304249357640523927084297220400034239565252748476444678201317442500385475924043826196503767051151971445519795514273248197879944532506308431469154482510919755073820712268196851392169994904342299007766203163576739858983165549867180715292321809907809764097560535376796512839432695003329358740956574036156363122186704673787728955969751613365721719981989427789781390551417091903155364033889891470984526501392773552095853246421154776821941650941212493116468872400213679306719049987658432541879216568761581859014875952869819604465044393162504507623489070122234831149940070387992911404922672131609801029009031990564681301576886570819649405369084910980145012499738825321386886434520599847420683594503111176123667035345773603717049473381268968456900957934778162613030759298413772309050766021529108024118404359087099192138635678652354757827656879246282710606996074216069904206921390584684245529857314592014088938269851605307144587821365018143885860414553380288872358369530706876856888060190773186012038418151196736586910221677114543029752855272163828570648939134286533445600991098099154043635559058149416062045882984822350273888989167612291305876012897979067084542614337896891022062122506391117451214191682357887482293253097258481187485844193180854448876766480489744996962314566492342339381764506039636814062554002498587862482712012476877829857885659235347749069857952769408932324353746951366472734170167444490124111931929010801466554648449552353669858929969311435722100000995330830247994539539726538259338033086314446480037266715454957845023737809695171661658228457691379891808408444138255864697924549659179741686614559754889841243272686719995540283335524569196134860932941558158159570699826395265681185933188441354195125924092029662195956922411707639197421854674328168308144041179320956293871521386716601340114147465422499400197206531345452094972632168278069651036486000944997629868959614373042738910232122253548288395888891068653891968619878806028982730801735163183727491461712153795412462906598587092593701731230920524183135117540473517861417288461922593810388169011743410721869349779897018378492249110434165298126408195460787894323063504715373162743316953325455262041873129234417849376779121712539333610931438445309175797155670786937482562811627283041910747925660305654958590962842743919020131054307310082509387651020313980168616925725349574490550236237867393091810027822763890027164655372492271370546109231504795781845010057455546722311235085089385820974406588864026543307674447017071325223309133096864686025962670168492065886465201824036423105339108951298932179063803462644249194443501474365209245452718903561248547762598836674638339710297759090549510660395230550179443046393056212912381862133400184250427520383165778960267413086667375481837241482157134815562014638625631600217106535355655641927097078167677844927864163681519412243233001909360007971766727240772584833119751611289497400119650353748732443352180572812933656984261356108770665980919882333915383010804525511479611654268227694174286550263414764887085195468088179315905175014707690353909779600806374799461013336348187362612312111732334881305367392176022575865133584018438379240697997411121861790813763533590459705596761946432761199618230804376035434868009356410810315970549095594023992059569285304818694420921979782219675274460440943467559102218782728014645463827673070083609954772799198298198276252214278698700349948064082233054428354607389776077992383792495038483582867232490901067045432805412128871310535192522860789781064426025384169459463062024458426244780939773282432611594718258971857672238323225560770391840817749129605672227360291985710421017978084191089983571326900377998675398008288473042845966851122770324567791263858327020736845283110695550509024053849437469192033844969730715676920816287518613758008919438381290908287423939793856415796238513585806257807884983145891257751387910062444062986222616803263202112171221534997368159211518290320579826115671504793152251824240287405087878247116722145347685016522630804398731023303630710789998812048296758480719300098816171827357766582962150808959762489826348110989368120436791697032012042105947611613137614505612823133347375590029770179566618880579984597097045945049719460127519945418152988963270814766074397962357615748944406486351932983483435857221441753268159610718248504997761429832298695501972339017580388252052960233552705240394531338924446535292691175789831603129935838541183189206788605406062672489557157209952627153015743423045170765061861634524764128586754029718049512758918556632138977683150465459275275538245079880575405304634106049713385980483103875758358901635864250824872265437187804545237336917773114780571591459870861990466597690665538196796938539389322292782268556181266769350990394779926824345967697784448169515379258702346940898647029569482146799726527264492185814618289550698241055473357276481096476220486342688765178569700409651454884266136329660610938351295796651348559488035459941778492739041861904000111381033263789550038559665680476556999762589192085716975004673070131152421443754485445904976456022946550549956479173384890235117718522673227199224797461297359106857805093518628467452839201074906138912152867702393220668524417902538581740006182299421881591365875591302011166844908949592924868369790055868873349636472617690900131394773652809989796258837580410876104406657900071364083939919139434372812653176917613042017588207337721829980664379452267047728191606386147457366475756667626060691511070686146969921974284881633283707658921851940425070060945573963290331437240642695374535773606784278863318162619381686784329049682915168878396890583301692179196760719042084521310023249126883778774897241216493573865272025328695757842703940812182790914300992148693803843347218192263406985784195333416601006018584139813422288757336023762997095106117161269765962781187487589505949800646332434064104311838712614665694118754279732191297505246126969290909909597648272588596080000983162937436842785185407162824463915621617143612480082811074373131456306316943278449615532124041562981750822676723443290108997175292718108903024518684114348180238261007186594283938114570644143387238377094165080741481017658554876866605231856470215837798695330219743663439497145753695441397570225960500470502949568526404621700739873027248508732754517753682513601314590132749285554573318652512105934950582903257402483876145460159637881842717611145250125576028186677226482072172296886671576135090862066438343840092895050431108155685954768092192149790916122702978326568115935109704602776150534117122349139796963424228611855029474412010038514178838844509281610988852686634552471122614769795117546066723382245610651146312431262802136749299092942324953027080556030333540493615987980973550604685825120638961891658768606412147292915221846132978482540899502531377676108903131743987459127541825797120235084645704283344937850954303835115200691646553762227027011660404759905727363897889766418547314318915650177635729831592458918073498970570257948718634321853035349703664447699768688085231747769039463135712641653958754594704971156810911081649937079257441269651706879215714745354111551574537332866151771985285803557449653977652033947534946026893644496373977798502794080704818282596255046246207416791948514345295714984458158814388912409330243796214366716937845418101291024119073925586595385808913125794877973840629166724466932393180457655534511883237674859910906510516793399531224911980703378183437851976263505845489264154955401855648011853831283472551462801771531871500182895115939650430093382181716914454680586582135095949691098507612866890756243478695335923419671109029241883799807862567696255674469843396579116227856419647469371006906124103780597371083764750123234849334854989326304677720402131029477620842352204220888338965653421773950564063475160821940083393767342674426024515803639731347326335044930052131366284321969374093791931832852543960766614259037577516282413708006500278840181903743587165124031427062512439727962008885269695718942242796487714566561928342592969078681235022049955679917217894515248764611262321916295470932464516600283993599647468323869130659807824049859621671994257358292632380998312766254097549627817734432220866557453816803262076745071449083972299334200966082792789280128141909384712689048112102957342710775316728532841086457510448858273112511064929688130782414043740284206906811683700788593144032401381462368407080493786715040424886334760562680805390946427743123625577594890652552601182175113405318841276818859484436023098383206391747458367760350660609931186353382816883806565492292445077630467434684214772680771304285349259237534931706699064124141803912565592800087741808367610556549848430975067321313961262226978090532516600068000805474441164198572479350713021916003888073212042029483356873051245937826783952404644948966787305662349272734941311533027080235164933529722316828275203462168079947431136568514114302070697307099679765409946634568158572459734091195446660340771930832144569612549260427146773360777249013416649087356577580093955862666765798525527475793689793608922015865679745083841315782024553806923725585417495697213399859325121293386775395513345528236210154797520371981422537212368522716811338579150172389364137749725666094348741447276634569047093258379003941679597987341423691833419950336218288121823756349965068342928324123117173455686893692275657636171975017342803920371346112337937627164562901515939259828201725582036928167801809998483347280129929915571735056196133537840921195196956505099601953595697421236041507200250560644741023539048530160880428164719248086584329321985633860127422108660323227538514913262856734375353456547744052938039559723303655091166045154975976947923045180119747791529450283015200121331700348524302337693229918823103205801549227634370152302781449619153162796888858687697272245567975299424954264774199987707170328352263517169173283374819149862658687630860327483222783301648983486485109706257766772572726708999564269473668890607979659653189225122529000836934884827929052831450526411358398049938792305592110856067731413953079797497400931410933792725359586181330381939348100590205532813220947565861999814869521155917642657634040183713620150045665023961808219988910959541531974171013555366735243239056132505106093199770281415415628784273316099019829606379511617503504182743815674378795107847313677015700655491540383814377620366684642984466340764375251140590485952637092131653182950016768077670925491362415981769008232005921955735193512289286298619790380646354545833868840183990021455781453814555503880312417428522383582223346514112335789078041243235439463501544606954843653556588134531649415905166162174769231848805822400439661544167199228590957329933337859613336975335245531942806131576034805180011966150843883130560089841201681088923146402038761232539351964864016871820129247448472733938606349253958494457602423460899017336529483467874126000239433694440926395230541690332377102961975013614707052339497269940716560859189934631851515928879166038842715063666686261035781872024835502226564595461511986592917156516941869886353022941676219275432834603713946207800572827323636902954433525112411136525320933045285750329851616678200416424442288876435898844615748506564672636868071402298752068641750279455071648532091476783258599378071973577826815581194725954011111113858899055244346309832684861313037849773354244858860253358878380878310149180879473142923498332041998122594570821016532207471108452099803308140731815916811619882564741752992366547768492693764618010807185985070974369178562344357662762417005417422345073530580580480492317275620543488590161524917923592236350979046808472076037532059394727048748982120789264929359736167611375003573420618661915512676551514503285026974050325460622526979218407164535368555842129434672675797972692564309904803295903837943858272159888735319542638614956540844692019779561816594769409279422365815321311609567896382021953699664374932422468933703320812387337225576213705359368353588111485665155942195728813373886521552162305486879282679414549399280717304403439786336558855520930856282820336520211478406610417413718246241635964744436468722154564817834440516245555752256139768881407504877416662719454307000153359615616271764978412426884873554308026063606005239046114661166808728295218485706247210612945864754765948161439174751723894944447503730047743420670498435269558051365989747468759236482400750219295332930725986750289116268207438779147379357310179055619636688840274111959214993144377463619613271024674642385125246399411720942169348599492202910913519697363359258554425550220206720406784927847098696462206233701827719463630989151903262494662178655670853524691068973224188196274354993903691567618043269344434201731853667921424912086628153214581982767613970871622350341523977316685744567288585386340541180291283801657219751330131758491166991127658896683477122846647215900471144123775107633380421008336503931506701105190302081950342145020244059364546614562626224235535060826926523360032408738021009403189158372875439244835043044585667182706696736860524015559189417172805679905151680419518357258270680185355104750597826901379682520068481360560837879086360899399305962996173649681110717306488826122318607998016531704239030673182240474478911910837589906754224811056388162635640134166858766055199368170826661992997256882330553961893898097693421746011835822526919891828602057723264242665558356806019236739171122367768044345263438419274806784485152428605337077455748919325913643120585721409170272085262426943654923950608942017140604672482280541443530964831017725013704712145227886106581736274037411688916821779700666715133585349726606736919682467398651011563791955883744990166034159758035932509164374884777600811779295536147762233225098580355658906300621795800084541508000407805045049085617029423176554309189478603872701159993279277223563094351925747124227726985494579632901770779456905220213134320804983165642981738768145899360574418000191145622504338795143483996992359147207139845037874978085723869396419294885127206453511984772699486990762247502333284967902261673725083241207746680475986400265505661712553769727697243983468292913174966013025084576548187450271149269254877252371707605044759284074701411541909722359139698491487588985103319329040248196235105310538795559861919216133306843695167750278497693926024774154437461071172429690083507361112163619784501575243583228854538520229757778232491841489987561457598621091127035846728050131896411411154566493430638524307244760261434471704403562152664505706194834553480060398560204103743411451040632323740127544716751684870182766104461106827706159627433216348477329466627350395558642395932584317700824245947244448165631789638770218110165443207858388719754298843801797241782883791944428464158920863885699015319275116064021977429645716352270586514252452821039163488584410167435230820630464394278159592713828484786697624712714790478259614554888909304869674588374406521459907754973280923793121439507345127843461395189237521389724028692572136873221786422464962706891019538633330410111242696990880147630747992174903561476671045204610783136516096501218681836342156544454765093253357638546569932239466882787916449196280255426505283407951161927438053545990683855997786835354545447267005337867014078411313568355875604474854486678913140232735838096413432840310093436278508483599774403991076421029417937344843357543459574497051948849343743271122387121575380878057180959322608490326535975712014440540859195585000955178463383087982638167744034708594399211997380494023764203745057736927381649250548447947709362449661881263469457713622093841190364334724663340300438208115518800100116783935084276900498666764788311904296481740589379188484589295786356013330619740971024169841718483196356298793096412489133675936472022298591412118780409147354767590823510043447695171808926779757847597288551917913986523572573341475370268546179408968914930884256881383600193982306371230270348141780440745388886254243911742482114086163093819525005332972611676030388495024056528737587816016693874859613327260822414463988912795774391743480361430080953250628042422778872417677735005739676457448310462540239745814476337248152769371104194521772388730900994686119539903061026206065730345076108007760820746618868193924595509065706942095601223765796150550928295283168585728964127875190194643015052285523424224820938684031421226975138234550434162277843105939750098865309802006012831112596472894086139470290732146683761230062519463254224343372327186784828453487956235106476649047152684270793466209314825977739004614738771269926880741215117125560919324675410492178425932592265825997294396348313503997918519204276503387835443344134101387047926870426122594764726443288710652725826954115466365326849662823417111218131434669384853853829057611793035476505397651316191740473547986710441629528264748246370389524394569274505121915825374204162492944725316244879297977990015345787963445397572637417069381749751031401410980925667959406230644387237240584652652431099304901030873749079429270644913833674289467626449486094851996391665026124965254435443337413205762762517053105107284782595443284542859871847498393675138538340847725586022001706819849130460426433611151914041925275003805031969764936383421609039240153771954149102640280486967168558352605113742577334524144012078815733732286566570235061797781426695372652662919724384224901194593327189014430822956375303736831724586796245518228096671844757504192157356894442356143755260489256192023625659580255187587525409219092121317791357194069065478776746330045832844807212311199632247796871220286417271289731351614301512150003765166183770302461831883899828133559272086805262015370444367920286968848367028785657775031084762258247775550606247456366577825953382706323098818684827011837231256620229440125311842258663753515254505944747438700045937943158282953918762074188991527608696297367056360539652426499683733279124299878206055092612777229499197079592852516096936309988175742192679215030313606400334736936924311665105550404801525289464419014643553321893925672182896796982823796454587767369570239367295308214785825999372041130052582818682730662635242556044048027616981104815835330984702845612871168106825643789703786853046573300915230568458399507950773499484912426705420054283566091485970571602710386412242967377254104588692017784165985643411377642643765761784766973016848078050604750369445859613741407705066181107829727608942850190048926756942299184637156684734142685986430403531568365357045358978402004402987574162739479713493988416644499645201742600484326025202802343590418158477305324798144766935557807116017574773008795355535358079180704502556096352468486520689096233933261228768465601081033994542361169348875659433381210896346999209829921866324353899044014836580148274186103986076765929827020721816363941590513776319763365959954079296700934009769808521883908227308074167081693591022525790546109431509822908450388986458035389202074748700200054623920247749494305818936714412254646968838844137651796669513084823228234054479602249227397731656211777895006269342721001459486559688485457793943485372722466958706789427643989150296507865683053290356856547893189479899950968464047130748747818933189997390976926444546124843934956624965685260030633903368620881845811546843244803051548110724914364055642959689388315582930056768528823744388200581450589948816892978495942640283654242868051200503268506608316443275589630979474524449819809743853204363031898600898672076060498267785090490139903633242646068165309821977178209850100294372573522763902804014695001370384956762452748533670640406487865116922916482381657009186158644016395177201372001392954031963127680506562660602770993591454079010129616521292306303984119076933903281310679473374805375044178128099509164903501169779914997966575507566716126453123665381375977031442547947709168192969707207606085043887145562760507130645542481996333239236581536161967467963919160624261143969759816419534030094501912546415554046090462898192734447708330954105692045551194185336011305100777802966347389315285749538047103348337748540653241585210321840650809645095433081716516779532079787048136200274075605738409734055534641346189718972901178728864223178589939033119879503672758575859419334969448769755533700166056731009261334546657528798163402917678673465907904860091243725226933077343236287196760845884030287359799202065905262979830154435925245511824251264719477086839781762757671680891566614009181767368912518215270229916991996094962582862384126583003958284030949430343937051135715511340094434955464536408329336474946349144490626099205301230908947444652593214629866070788550000005020082349129606150863052894939785098966393438760286833639562238595545919359810944371081959992560986747141865974496052220339575358344951303957566933147102335937672606523483705897361582156816825816100339036329199352647654849434010035575889490229626293376851046938849913101927196402292344654461739331199377039108804541653122915344196438069289495194762035878976432167861645948156501592342612549033567947748401056517337927398971040145128881446007314258295647814461414544091572848011533432155664575628973508391220497171985570285376239832348997395593852552940347243699654589292055044775747988000141950089451510592320166957448363538176540346133426050588207117997658018979003287436732286556389723184907082223922143491780534065452243178290548405590814092643932371369341592972563869258602638992574498659250805048079258355839286929910786898845970439060586781464851024639277243149184709548054202010766462639607606404501406672586933553860181709820849555164193926359834603173614620423839155697443501414673039854228670195113022954363166862897057186706210811208187665373777993926721961860756955976550850312362768304634211937360301127709872007912449021144774881155160674400683286034221825035605442960789937174653999825087725027022755067289806917689373047568972703096945455623342375490637293885285708377988880213193627178960693932847375718420394702823728085953387004523716644657092373435155737473966751845713881490814010333401317280430361604708090909300908110293184791228746581138659874353518918886203637490812727832234344011479844755146119059025611049740064713765948287800848866772029460152535295280885495509502930768405707216140879133780385557600131622960684496226641299819058726398452120047793903036453939797510013681273839961808427461760414220915366818355298662345808532694741345055115217907894431504736101931499578601085177643402173982818829611026052712018372749878213034794289253941464985009393050120625293138310330046603330727681861869066649844395344940964729053056941468996036019525923513449449586165402455662846124254758409099387067898350160779360525235848298255730224771199997923733864767669016011462549707838987658666399473274903095341788863625914790153999858109272049439313837639763373036013744328247724725871855652812093759543714431443092548037348766123973188748117852236487767821555232245149957834328469980287885550093649775601176874027488868839337596000206312407214856990160933161374574537803210063881350312567960458624250776845501414488397630673241357963859732285889484690642011793562006131216188472023370785829857339597507600021853427111450659359190460858660359843307446925851541557153852860867752063270702110333405793263357088083445990113113290087713935512157813664262228253431862875522771720699344359183949977016608722829061215130785222450362344881909411795879632577870135083688121374546031548922776676442140209886082351327508862217238180479410251506813918812332624750976817078032325025994564428338696946278808363239812714237260703479653826106179599902806410615282608245928795556862883194620350367846172267968080607391351324110977564547998214283348679379202389863232329402088113288039859283781918509526479109861695496617592265768710565699832309347960134225640829879374337570154481294102078303173000329462647574029004305722433613714717060713196326448776539177039329071194839615772701955780121701299385339355044908487960077348441094319350144348997146122938137123254644317805194602341832220610759670392455490120076968759476655465281404220073134005127767053640056914489299879958278783829481763068322594573230605258586356037184059676437190596835896130218671507766469420939795315883201990991203508551389263870046023816865977113385549533582722666848116882907083606114579367130672186472389858742232305197467848709274405451501140083375889291487037501515442273804678081407792886979062420029879098728061319263029890764274603622393261982290292099295007933085261972943603315565598261973046618521209756573429517390072367500425603185681047175667128015844811966348792212699750331831969370486622905420650822499848542352773341300279521277500397941122695764693622552462696560335847213102858145803923800691854022839334984090196476441793000669072114299522609114042576502310571006792720409135145179444539672425061242065473158227563013729253045424834357803699881029365280680789385748706218957767711251253290431567640591676525804889066966065904343495469995422798293952670293672844938617800979252939703972986684028846288205560881624605922758784929458851413346205423904007290297261690062390454130751701078433040808959196518496741855652262241414929024635325962657261125434789179392787808344385301610865711885587321558241244782794357061675812865241647242516030358384966427161086559476166069430239634691412639458546512608448719297037745425813907966354517675440267633474528270931288650004288924672260487276563452883547155892970690947148888287850508699429392182643578733606754077177626655600647691007963460676761320812245289786205921009816078236894566637834615595075090116668007857927426182631034665020273911021100563425981829702689866625884073154834116876317429348140322410143896385161793340667735188450015878365568215751699527101764419331466653460795755931165692288865912974620666233248060472075392823100603844009573540473237931155671771195920712690954525554140978902718603018485086262923668567466187834303080616884444126121409983995997539578979864817656809612334242313542399144351090756074925834959108156540761326021975507941286400695993417851004477959392041602500372217623881153458527836117436563386231970527132167600248052336551535120859070908383068698787811757178403042778140160764348324989963979007428901198121912487425182396275915946530387715001688908221860276223887704823350160517753236739655491074575819498883317664400868837286006876638749693794745560078425685288489280136400598288818772917688075600886384940821066603755351667925366066173834266512729182770045908182091518620749667815048137808914449554790735665817526381637330280924214027699103378724727151022085244213880287511872625069842712335632738785711406807116262441090048696838210051649494510926260679763189325249780065514821126438631132907409451954242361030392601219686676470972168251912060843764721992948113779544755954018063899263248481667106725945176453555817162134359881331622260597053240405135354254842357483612551389607032542838599064399236459363772393930035959935661709480472306079362850713749964056755558824524163470058948354647136129836751599100774798928591005871533885555855912064763921701143856467661157505825770327417950192539017316663398619910215219489190793823279168714894794063354541376636333078197032353926423608183479259071141314977419638146403343832360969668107931438078840601348318506950062394657035967415452025035939970093142416153394779392205093890401356462913331536461807158993374404825102109761758107098404231980169371296106831644562934796669005042675397690808993263931000392837740753952541766123933073330269459076109103298411853911474760277495589831759408074861831736033618567269256137517160746230648690776386080040199367869104956325841269121508709637175856078102749731498767697942575872153971563629537335293702973457169212586785238578173403317105449945348358760856849994665457326740734076914164159709136531875628583122421136901102147624780659664108147823455408286675345410976280865363260365558509404010725235650434684551328754854282804044062497749532749412613569511478034329722852895313526899834355154303424078986918394979307872833692319740771795271234224129795033697104489714329697062975169124118038500124982799751795274797265784074795282551162681544585448859864111180671123085512221506994573468973357587349094566069277277625717621144517889583014082534330283767052252753666861793943995990619748908098065471331624459253373164337950847608260096258609807678609414707280645745237391892506123086287596079095096723046861462246232974665798603606937116807293226529704620172745473295742067409514553262158667101541540366280392817910134433800873825348847641461337932418407565905845956455687086308817454886587215580598024261743364189282699921913950360895851848466201782861797453604305796799987959201962277097269577100784591007403523520522445411305284743893407704348829009132538617697823662339437677348045360545278744358987840436894205293481955542425417449562404444104108231255507988028057931206804753613117931391683897563218529795771293485012978387112046767083350817973597635763239545769707106134316999359482932975074686997190326063870784371310824839117720621650240116278851449158112126331378889942024146609444646449639874366113530762029379208514849948598690896264211777681954803420086939810185395983192230140070672317487146661897816457721484328758213171703510056504500704386104281199667658399342126731928275198982416373815660173843135941139099879899284781952793827465647659880149444504555114123781605353165902023068725434786332088685584397298744869847901297125821561844343846878177572682023252243662913119112722462533736039096602823460032079195770656782851167092061221755920576252718070189529815526625016655201032397831776518011307770293496664364724878510795368795120218097465574304363458903643566627381388287169727546208593309290755219324249319759260693967577676577515914942296948859314124413822943041802909308282028239390654576330931154220050628746151220886478741373095287896461447108958086774702115954394190912808862355226103334448809315421082650366743286551959418330281670854132821789269160696689447704936681793303374284975286404592573325279668995561944278071239956614466329979242589586967776135047261962228698551388724539667724119578959643978674840072891493176251904986977935266840835190153948106934744626212422679748640062673738694326758867130651287790985690206518017683133573279465505181574897119536686146136971163754751821594902440842755297023640856598148030383257905196837133972186735907489818141014291178261198869670344667061626960550481733902369365427509829750978051704419568343400252830192638401154089200613855081361041115730658112417979099377816524066564254242112213513194902162900150222066810268304810468920864502912675469434672754109945155156066317922794097070678870787272216642632316266364588575254878133391873143385854482353268012199010159995040119036177669579324548396477688824382103212374706146878214201488755501788339611276458743853171763664678943655074034777016748649970727141115080085709213199712071890267897321428951514648097410582599175073696076331763565303324096591122229005105722111409237922291797320239376237079415571014439303638381528514198336363185072504360797585567983181012153759455717198316786473929621242440815924184154541620650897493656805761858913197626931664048470592669553547763631599577314070541038550594590722687496930063523883847002010386833682648160392092234036220759797447776377833505632142562417021715029545482992952277312438685653265477627719810389196988786117325912065058313205010294374116269324629581240813627112615187428386380988904231522302225210103429711938848907146105952833339735728122448189587281060464324727706300389235264270710390413554255968003641470241026027466220382024586567864888786365516371280709267347978789142053459884662585321811542225353518484121654748452922741131238092120128651615463401515547679296402267310429186607189670558071420786093942782395272046469083151394949595744997097609993752983270248878075669806933365597178853175921349094876268098420587503678434173788654698790812523347282414770898267919536328202395799809958873371802222522360322742587651080714253826532164828305262275016080844075631183885327860873622639930811146058164669804610594080106469028823557399415164841399294987616623831035405103165334569932310826093859700195309408295046803792380217282032554320617919564451489888161025200261237658219569061261504868682571728599255709309440620204159416120691142361867842507180894810054112745491350594888091627006045773422444127214961366381326113763358645629892609650166218740232957197592167183973137122746410659912540353272309660632458059464390809538475420639678672916169051964806981534621278843574573005315095132212805762240500679411548722321582233305158227615074206409837393374620695505203163737656298737748862557062611876969452707492603040510287392549632582626449726876454538071233555583183630836579680345154073514958337780236643410948913555863421233740809386833946968742405625814583542421300120271169286635368855533379556470373132375903991019034620082717516012265048498283128635482194222993461018033699845713639680819160203429007415009418528413348030737357106782646653242919695438029459636261240259659469126528410604350925791224463265369646775791820822387826786220970510988822851041293008425564888883972121607298953651384519294282034971490418564560370485202164410826094182587576403293901174847966618858318119980195325869301905118624873956808209495534783576374186410287660505110592965211026063286747198236800933795379536933039579113910073820709083229242445150199123051551497220596372253955606218293136535914625525481161607606054675900938914982639246324149494090166627914811851891827438706519352163861245489190873266366990133322235263726025408350346832584232833410891320411844442684849522333410388738635665600144747764293172218460068177909062599554326842082053577807836355200792626021956316990605849134619241840672159135518114637727434512621185807882381753994984650313671458045282961566589146839789835603511328655463042718978036235001691105486439275012988156639659317732739376429451425434580943182687640959127129270222221400848292664536649459448459980564484343970379756595567558798002174110783479299407586724387496923705909606339355170856211057201334056727990389135154588172013606297371376907343427174658323316103687147454237693808880327905482575456205288866733734121865630985765300002770284924760062302976460476584965560819726195652428218819925844011607655670934674364314413247799894558920438851169118232211602384933610660828109814394823942962867983028671064148229725588164479811987444381334348678489588031152179136996221737358840673624584454433837293790816240951439613144215033057137165537927754404358213745972257175419198203834328459892937303260641113530007504099127144273331786809290759696817850815319279511300953044726893550601614988222652160596932713097416408729755482347576271711868863035172665848243068925236845152210898048613380553392305475592872653015530654538410687145422854899784909614320237971491932185029502591891365382302985858692263899916182064984725689956121926974234560306522652929069451887642527321004397843648004842872328058078212594323977498327774836651751616723899515370076861874034918981337322233776523144002877577197129033688404964841291662848993950463138252540061925504410759102303197144349744149781614978649648319960251712869173063536683134121355047934818613777897316081938278413554477448993560897525372574609518258300761383204528338823784115482420346220558667950371743331034195460514476901315357888974882373860444482815111994459692293658363260012663334398823972562892099919662425604513394055781599597306908145023898365930891406945228880581331737325751139009980055920434559579116110019325679306547657157447616077888251456574702737426516273966870681789799258726527080151603797352603777397007126483950233217788460494421007083736855261925878928008727715874457823509505664422891645726884447818332585740408633705524959114326016235689472813213357670379040800755871149644759930287740455194086991299065449684594474847425901588070382994982406566581111035240060525877650762437501073145022858479346475342104148256939570975321002164858071424656852179257352797849832301065807258151086480505124596919371683610150856743248222053365319388404139540623448395425632124453325086339346084519268644248388680415300663593152212996191386484655164893644127986674255165836638973752351057779414757156053546579616318004576910558452618772335527304531507974759365930747112925083007433802581063379554545958012683100484940232450152063048104763003381430851668112826238455517807244314195837398848260613463525008261413794451196007911096518245250440927584280422004887496471319900738187361765756049201954534026876855730696887413887002920922921407872148438048413542048004959902579422983058556405618376120389949597313959093569463463869757164849347232102462122072511124612405061624719470611833881361065027556471890472259184650913311430811670106684755995252539445561493040006686434430427894596359354092799577212005236944872580018667490296921678109420979090827221983985131429357472617736712075285027284814820801866720495734699894994920518370397913170491853449142597795890160078799839907851532852883489591792189106679280009923463711386093826874763636789535258141843257398481854246880114647817767885168480331762538308218610962786614801355703270489637636522447115212752710936130200319488147577395419240343829000137096928556036152167916145528187753882116212479668625121681707244960350434248347470582932553486761510789826789247314862527838984731753541215438408227617620714525790310643268328448550136670475543630032564001872868048536582822613556443569063489416487362058278360350475594473713483271032328432671700072585594727279724473353275315143137869276837409314696412024318508022148960519050385435052460880997808625456588285050985039271488176644520576931746964922179413266075548717146747623783437605848510265842514164863488447373041600157992228595365439582266387851275035942477329751784775757253619437621760799764110153818271465449852010851029323493072019097661363340110457576584952583697451880998905347485530591698877223917300932812367227550543700906485595349697708283472073895084812627719487885787169856630130799409619969295653482401441264788479167371698832169958665080609326563533959248303759174112933646269898678774372252380122609902958445247579240214952232086912416653733494426452379514608406794098444366347932318637658122523260389949531062902586582197665733644941380930087954719001655209054731969080186451455901027530726317878871056362430509594383156933524394774821245753405166496574789130911867900276012113026823605205534514159964742333045580091343744944909547028984958749382931536985996977959177076863835231130061468587649411010153016273917721027498303783960770764085162768627774694069459123708419102169866673618027975708414328740776354228393743809664709961507788317915438945757673173177339093717095509932682746613591418732575752159041220782609296357290825330423566234081463365391740431962193942530339340484010453192041538620081040361643935256511251518230306245200272434214309532959749613192745943230700182718499499278451734770431057213511747669286148668632990708467207812208200405238370349701798969059573223096944536854583352023909473536406282033170264261385736328210269895532389508274862832332167960526107008624618721781912260179524298473654367612660894213516230035627170850234855323151329888509881597354456601306804177835056438723342780157327298168651369218457085899223706545647910811968119124685124602197206790955886917870353726779887087375471884349334994554192356955215129010890268014891688069589916068540603367933004590466754098682708327534950915753049487853813730615031446469150856992486768195342390738012193132947825206962237841275291155686720635365352348315978271398393656963188158386236162089514230652900562139050771433333330191047477874280450330170994657531347470706463711391311550254935260615640635097031945598721964900660894796913028824296566017958894922716505075046975928766324204406949530893816195768572742584315052556079460418639392045951435504842363969607937193614628168462754259448785135077828632635595516156537848817831399448895100282187178085971639016193711977966738248861823973429319529001314067404224620223774464781500667110150101388199134594798615823486446823043672474332919957726057448698974168364482322895049077670099875102651737853616871804366007511006588466354699935521050552872947618569757172456766405982159263063580600538242925023169411763471540761171064772421891521345072432721380917377036346397457205793762306980050371178526202095934015614110253055764499240430368329310153355692880704761887216860296079432776251809170387700593472083316667348912077546096715767510137274704203510612383550996565518859406373010960622448484507615483918496992487466281038296268512016520364099587151948665156184109353309135072793705554703171718714248136633292226566395373039477597251045839528330507061075640513106140837425900449092289893693357047472984788035039191545556985948067658947673848086113482284827661225566112048310202467532083382157992691265616054582298172067825076351329365171863360125193465964527043718371100820279128964007609680787696253837080914662110663821510405077608629251767566046566146347839116502691246711614008237102308027324956404333729882315121988572080228632260864151593669102491527651885301773563016951810545316703395703591430129533205943947643556756870928001274996417767467188861465935915722596293199552155756650799450674923952757188996804052906139203057542383334182262768674181527528301958831556431888403368428485115782555588630000474776179641615719733639963446237496967003923927624854300572527430189973061993990829545676632990278577768569435086729546896838321480766633847255530175150862002875639380279725340159763699721175288965910979501166560151558841927613228144241021161187582363852823422276820014776613163107270297164975953133886876739567006765071132081114735513074075790595225433965207297784841872247559121552883925633331283109897094405467092016479912313243118714942186305160932732909505843530473809712608108930608577367668622044464182005739189387178085315549853810166765510773052483549563092657827771213257212870155587505975252620745272858533081768196694176390620777826027427745403742236869000241509553943561591699621787675457439488788754108977858203405485014214221066341107052154250915842357324624596749815888046257498663328615151133028032630284900744880245711722050894123591856420219175655841286382157721123435236089291238477830643340303562133193123098662475120818841762959920848384556148048219078548704994667730604699767317043628953604436256812669848991520159462402099101249587524878026978518940987048437699425029635888373387305923608990425692084873040447521108726200405323273601411482924856426753530993988049270454414095023777886226564485524844581743742601339235259936950598727400157522388561272037764254778558925147091631018732559606228226043007792759537613081340675787634395826049528808622946504990775628377398756522978385233241093074211638194761581722189293253382844635364900166039119168428624615219263761250930374217718937892324196331319605456234735035324002778072350168103381966892350893461989090431426851326166603777006801438347956196134126052591819835292096724419188745443980317186635785267665339701354615549912438711840837732073936029643588912285963031573779685731807410606244527199722565862223082474431018721990214951566615736541567739501300742427231430034164623435219793656051526077686914325425320902972889553243935208779643013603137014288642383831188599817920573110084946802664084612588202257535975593068367996889464316416666657615886949351411084513541046545847593919618062683701385976621826886310846731772622132133350412359789804307038008783969754350293633495781531069690888195525945258879425229671764677766737248915778599729430511062854873654925318222213520725741250179216730992304545192370124124699016153253928733401414561914587808066150855212708610174463213384829463669349758472560174696466631521998954468608453703253142885495475340453253940740368163515862027405419846550036481617111498574103528421472359707896307433975841551781728414470397792651826459575419418455506300493800230403125665917756733183533037392612829651525922770636780725121328196197253304998645875215947745259983770022158941765562619610307253272901682487704272709511499190180277053416528663320245673316819287456209886659441778485240930036546434151730039954258617005231242621226324167464106154961057808359449012600419286592143686897450051153951899738792977631569642477444018361296140625753718367218018986305557376421804066883766619314738715043074443057346822623686881951979955137933061892916865361078684821530578363997929680986616730185076998645808330136370119931700037512664227046458483892075362392232630756155242325558841240096043559418623382215844277441834483746537713430733093739938970385054150739538475280218614935092156842041901638151741770272230138937382499041147401686979655662387509224739223482486489181659725620530086054456759746270490731426011699776003859305824749406336926918433772588986566574220178404219006743389279018375735985158382712358783068812219111669392611328723849803799678804000602357966739755037369182042025620645243933086727658142799358676249520933055433686959203826271587905566229738234603588081946337939522286354490756797568246273950336525544159330954838155543957936735540088271787716517115318641284536032600267161174375874197527115984131506839375799754608919568442556170969007892776428393426806891157518703366519403174872665377309519129378350492769571406285414016890543706325599201693432934259324964359684936785065957421372125726446624220829317294001523102839647015478719420568447006679284352178775290651967771546357618030145668310590023027651893421687594410371044677344042624986356876527147251685825111054514191314195786842058114021300315657227069951235044629294052177937902374945260853414100862932508277870733151012087655606736767058822870548243687874303007602915887952449448674500001662955090457374486200935717223368237584761747859101389003862222622734767907736777346869515769985223976931384171881089720450912770592135192807926363539188647843833006500377425268040968003400808612839221933038920672278132495946690778929572383630915289037087734737124692678006158198091627868092387482919410939500538514653714746627174909535277949185615667710643163769982681264566480998246045565453541482514394974233128131116989380403525462888912753064182450276650748026048135424779547444577843528275902392162461608581026583589279147745988515018973250069777860982027537891003081613061748844587076705000211728749162100946683366683672371889406425534368128088454047010378102629210763031429374071662075556178448798484224938091118795099767568140306220062407633054887508894165894865429148528054615668086388367497727350202322807094743188989924369772221952348944594903775559188889304804751290260391735855954028830831957000590353808440431647432259757822589977272889629482741579561866087790955269318027960383590429905788604320821471836162456542056448320237674745966453570353177123138183607792055099029053801589853155481171643056885787337000949921142161656736196039860405065474153771069012782230668620898908380698402606062904533972797705164631101883842804774609520264830889742230254183080258782490680692760208910274000656616735932768085295623807388857909449202227090229220996110424995106638067495264518928049253847160548346922947743350889343348869607393985008863217237060309494093034417689902341397047216240363542278678106343349544845211814624540292310799820194343718034488016726008217347497658169931029121371612807096227754654251223131854105698546988828874444764363770336340426395270515386250936547022653220520884313509552862454624035035792901663040578395275119174107505148580532113868020992733565419481259337448421489754924885541791607795844526793017182786797586730204487416447424279482106333068478618253549023618475209043234188901971834586734980350358687754246360885683707470170333536657289927965328716906220429968356082302573977378907563047178695323064587592532690855164939576002265263793312335426143804119717951387227945934744130153971698621789235851119742217919451200136762477812224514318725085538201823630402751792002021358547620515387119698746285015314428720686291376216099156375178974524975990200746820968009772452018238948386283713669704354701537495308973668324231014894598037144122693454687404981203991847902220458321111266673793247995560940668716322970064397308761345678798166523861721715452640966930263134317736954788626704102371606562154747342065641430492285229592786615169380664162608699856890698449962703500803537781214683968403159535266459057527829344003469057659762632039753712095689336262988810441133332564302314803811171564925142818960252578924582550737835991897468919361987949649549298757765438666141391044913756044723030937423155244234406893278819679645434245776815909030689074321643373598374392112173020921445137042892581694673090236553169167689746648474964353793267230144753540120449267400744801475039953995593379607755428681468304254025677578769747414070349156437599594420071186650322504910800388194365745526845646817195295729306073916849087176619885545359193212103857616456169000790799701537085280844860456922889851463804173092134575207565555995775258128784631183063737753933472399370969325440416933338071696079079543521051012537780780210666731418584440402065632769895711895425994385778686078763183493375618202150511284040130051414494407573933131887822064441428734106641706734789563268362131084118237538533695289345063129270897252560539823657572490705796309320210750201708524723983418338850817153466808000206344413094583935679830212273928937649115049572286550260881153411660455811514881896883976324626734857335043278425471603662415395347787752084653624669561273042274712448942256689046809890028634879113261345249977573945165697373628352254490778853778049998175658443569557552592541163067591515856092681575246297323055707598020766271108503561928822695561597439326586205835800915076033802599470037387583106980829553300503520861150992916000506702875382311472814860676242157352528604854823755089112735881574367163013398598016406147510718361258973952365210811785407629851276827046535223475908046941543352359127119445186038558611355776197126408647544419048686977167360547526086206497024060938074499544575395407079132802332361514263537675894562957078185763333220363944498772994670090443840282581098436542307609262474067277914093664314364119971455348069015801666780934033856333196201947120259626646220469334791371468942785657001033570255557105517805401450798575384568425033049239772437089539021293937327314425632947022873171732873409220134792642843296230581723640290840771635191989848091528308911649270679468661096210724451753708531502481851542807081394089811511254287246658048546198112836677220709455548386514573910818199086283221638173137503837907616515819701572500436127208558997876825800924393542506807175199074227292963388891963681711459508803675650374739399849660018073892217878053299153364156324914440345152048243150179290930077807339645299336931475736274532263249322537932853305837562315542422936500949556846062181592550985390267981964603766982700560750764282880029551249322938339655109900851450220611972059179933009800975972200371897406024704548762706158882708048831031802213951129917341244275897407578248466269753228883391890279659071222865380572960128669580065880898553285929209270336684034287904785637569377490575530520958587151235932934806676802928167050949132457334099750570337159943365749657097738322134378335760488769793478231344936271266468535362668640367906696039001607858355368674429682746258491892705201210587732707304914836403274433782605118437826811189947549837259761998295586150233827319442290506396190948313654250532297347354203365591803661392129323257262871064402115296192249036175929292413561042867621160043849267711838041614801924328365299703190202654965005313394240939869747319533952041940236763798298510448213432374321343877723253597239070242819136388977768337389650861815359758770074609801680037651116859402969025223732038227213423748864698698693479584673638841102879629669363320973990237099388149012775082329302260434478411984528043634105346403313118468531228309249845720302031417464397689466882282742952835036086521849817132254144025021011388193538493577518058420174721603858497657683299571307277468143833215978898018603378940656562935810825308078487434402222558013670317249293530709887851008077561306312451596431039277666120437414700046335068602066712946775571056891225628989252897972112180104286686271798066657510567219994893815922051746223169851016450018097611195586008945098906334470639510215254499345798793277831421087541606942287929876718781374174564800974072113402388445690353869582073083368304923664144342012825431951014039593297245882163012124330494138020018827297299108421857523989942037776258806998271380003946545498927724195959414591750745702748966982329546970727050822176061197848134206297288554910789261627475790935827536100547077380974485909680978470708539489897946639583036625669935476946031062367142907602528005927448852988221472741458289856060253629937257350862380405700959190751262882301418784668095255842021155363437791240300264570929206444424913121777223907457403871788392780467327453324436275151746683041326189047208219709742218941952351004570360850312447964604758081985534092513305440884440813019105950532946580016123287566014145956350414926788439797319405946376771920868040709189018974872098864307936615503502970969291498946552019122013838406648838143114989843074574818558431837450164286123800991816021424418271899047952762117123883495842454869835723647954810965718920798770085320514059175714039888848701544673618635582419259673491423484117794254989423608546720230994882268973738939109425153589555571271542721564274836385207802584839517459265808691140431387024155787986148758485729553863286749701113867101183743466749868819287818728258987884436874222177841849972086019332481037022720539014004179764131477546918778986833873596757700466361363378045362712635104578863139432190202005654485175853063039223347562690979457495613163823226653552184029221297568680629269595950968673068722186243870309429935054530089740958363110022606568525843913353245779210168060842826660089275107905852115446947878189014865816285270061980475946878579949939313010381502958688950283901015994729479509484187100495085868745859728645895135808532539047833266360577415068332897021642341499206050726672242576241632277424130034613633351821426120996601191169908175307431530155580650241330266241328799112525875862931699656893622164974067706918120132576105634926390630082764872837282266411558475258935086972273842009852455238777392617461805679954528808163081359459935568892128316597569730668587243699486508659124323534324927263354942975080965809768104360099981671683800219510351401005885423782487675635043340812565949545395663441678442879652024664073680062704970810120712167122045137782170780029583779850273225937182307523672329167161422182375661010352940088288300529014776718161322876165328153465468995977529251436971283535976085562318732173101780673807254509346588918802344965001107929170393120426704794875824841055988696453464022379037727671803571212852312062425296675898099012892254435299891494738978644347105310258431765388699830206639266495730859738941180898951239110945725444528184112185408232098518982607235643937794079364587030477328475291564147399844196411681031653266818566537584676308195606583533472442511466407842103213710204901118840002974945483295262767201981685576708787773115339122671776332952483422145305067274034315629844980344787095641408867590110603417128884311775186725518966981550786641090989888845512759206564853868712395266121078694224026912033646106791773054230699120791164807433721663808250196834591497148533390757778512501112764508835498365896194103430943668822895648155382278288318610338195868957847016420005323918398988593164374037953166721139481077569390078045577038460709862104209064679615073208550466995115499288264250390596822376116737716549909273912358096472277791943477353716667002065206690462177343768429091779706447844811512023022031307243923472884293218375819594049417644767787777049511307175195055989423003627899388732867640313953612282186361930217892782372753625987078003035017383844529689667026610743117849607541341333803868663178023875187173044260140441350166929977231021810053654622539360304860928977094013513225452330494629637458419011493538342176909725080293167415725475170855192366604710802860693704885248708730364636644176432706278172913208298684661241683066644212842357720519308847421127911441003869622356895006191749422883237832219974383114128983094128859996966505973124220132011048238071021468022565409365044295374287834304691441863685969747109937875438654978493700917061132445205006886608906857750665258297194399330787875955160222387328344060516455565586057569043772329054188987419574115377130976089302441405390019688746626247850212870449137881311106765911848168519650960817273937878844026310259985644459847485308270271244062964476147448274079879332345494973786565775600490708502743753931697552723435491289602516988628693987859051883258444478820976804125778831129351239155693733141447015295452523736770627573645378300384570646641189494791626178261736138237442804704915376535711752863209694904076323541400396032683129922278293433234207872380570185713472035678574235972473478617948099376551349931179432690740619073334515738318740867726452867041318174508593727271816100334336687831842171208587003971773848586742818852594030589677404371993208339615085598199900832237223450728095592929716606053730417358703575929111467205851112876963695854753137217748359060124928914137334156324200485692406898560469098674744995982499039917806105302069759665275192372192802829574481694831953693861346329288741746049579835621951279745963805471985536023947048145868928088249602362362472079242284600597972390354460455238714313092367392148145733209981387377651122825223295916906196950287481456545594753566420004684786774508015437369346165026142720598975782241515837340972696885731127984530596233498265273916443399665403776161867909948737923072571811874857836607231451050247867741330599831760416888654500356317289414424201060251863474266715006414396763303428573320176970241378076295891312303286107302475693970506484836425396660222752651653654721039207249903003915327227473656816129695364318254704965256573297921896464842196091373941674308287516096239423671603439467914761670491345907410739544045645958833835001490238530283832098218627531338024344394695358294774229161853952759377213667044158053059994809665383915730284803151233036622798683821318444424576213451160924919997991103532158839523448797673761786993913786530852784007598448988956633991995488418204032947443169511738998637484790935968469252763718389640975038916588878092794797473563719777773952044254372990774473710018678215164699472227218049164950209114252946777426504868213970810444820591618361982060034974461307672793244297514021421896363816591612629012038227741274915757470719643877474990673132485605362873445473175812402085817218695098223565604175534131973520826881073245488801571431484072518038492863793975873757308163900482785993096921565233522561436647131611433436950241443165620367052926180720423896909216440908797799311343216974070015089114049808294577190474921016946271802258336285076716302173992215147136967437375792047312737073761941230870109683301442529032901545497943480638352620076552154338932032966624738483969240856892152420611817904571926973997810651458737358434607512743390755226231554563467606098567043550611760999486200965059191755710278200100857300505573583604842668306768926473761758963221293232124146268592669390162933304574817680363264597393231413662619263477894686571905169968434682372423054865019510485097720278533380233340797105363219021411058690144068821737933114970338060398785772939887285333750130808955452828346208193731044616815074920070511431130537683382648670465682523665294909772327110062882661036567959645650739650030035547818955658140078732388872438382935976774201082246693968306199335819823194823096447815963881428407382125546471852527422124183877275663749963152919758582303114579535195113448050269949120210061279346457135935798228695194212588280128087756445291288335420136730505793034258544698305961655337275608460096523881251793344612126625651811275897898927994012232586952337762557253431300543859733580200087928918380642597838998827180801506441025110361344287189533110944144595170426865777604632403741330047339106049526460869926569408671835525405217372839305676565528395043378905501803206449219399528726788650166043526213781995640903165504720194443104056769464575005026644724673038805561879107137143729842903925690798798678555986052106124693671098763476379546477810143122693967335428717354747071779683138330759293355040719619902532814116643888732466227565693622777246016302303477834826382589914170048767903272096364606582966389157828046091762675043018630680160643740812147677626984642033390565895745961989104618669043125805030073648990226918084647059041613400751367637751302776723418287642473309323419162639366627377210900641943138263623048101999376113578117533481657942305774207140643972596200894119071125772873823007051767199578896143889841729773956141044940785508300325910572909104388260655141138099939769174343682016783012102871399698460633971459726029828159838293121964865855475946825760059110603848791995298827686137811736227302717416149657415893823550199663728504383465198550212667990187079301190931580424827991713155506248555468969382418366003157539889567448104912649172556910217340646650189410305151383354698475537060366614089740120929368275731565045534697485850804779531236643562084089289563203988176563738822367549355373915138792756630521285437695246880911387344035042943616688302008928083240217662760883170262780017870414446884691207699739678254129008191794549624535145426005177639701276074243052230996109604155881404916286488810524131417796024178719494367086499783573609080264212424370149674713212504854999114290096021473537766482020612945394388854681270508486000169813385364810797449730015181361415283705853859140589039439791753393610744392749637134660073913505972739837495000909846801639599916232709916445003017558004658573551631300913217148889125613416178282355520529663830449772842086080666324470472016127971011176730900800032951819178599018364344399517128068853367067652064240778592656372827346583812997888621652977031961261539176578528424680589154569745753116131404167825517431760821351846112661434680369222781854023184912480189161761912027591620441606801399819959548612102191588749893767098028882196103362508323243549069955048133739308748995092071911471393726181665323218584325341739838854820452948462816952366769415697806905636724760068063230508685760608374309894554855472068404424828331714528159123084809243459472074404944224768136834601809603914501412176377673270299298859635002759249976540230422794156219324974480385726119627748532340424230057462402637494195810479985144808311135948568409435740720780733457044313152045017067783249666068622865930995981332516067894927351058060636491678502434170856434347281482113656970483475250515065500540755282875319979581117191032114632447990346424877896114470954460046660561267674614519928751843792498780812455686968942216766076990931750964219960321425323801560633858067002509159390855888069689565835257349069614784048431834950795252886992220422507492515960552664282632794431735676923020464206125842474681407006514138785629346744686760612772277201058073447106580512810637447991282008172887941971637228397003766605124841128898105944043024831541589856461913904890484318482582124643621469585588792065203641728306513205251923176127965631507806400698871585697666886046943001185053698017793264538685412718517175782427743887402238237214715982631903214219774481970180060068891528582320388702513235732206064834032082980459987686210044835630316403865287566338496953628675921971667938833838978915396852924346105014786756992849870946493381318016323389734332241506274680936832226018472712563075584200262595018113803382643804343958089421391142399014857452036696400323796941349027485129706308372122837282145983746379558024723607857604885938713822654996267457821639960647897562690872640738047249934048526795848047444579333786050929374919664060269879004264785967488257619698109651193855914153930303732682590018531676769886010353297666468673646599419764372405317876520828129015701128903253449372809488025626510126385173799876702669917050827132344170784581608729342761906124376232878324114563163376361563935883191844845850405485307543201278457069027930250717674724722969942910636892689300257512613153268876459004984165981715682238822228341848683109247607278800746008040412213126121319771389532521932231465363563790176350578890836283318822147167557782574477873809869071041795996554834891814691140733226954400740861970540571356566817135854292698196653350605408296933462228234537151113225968844192203478540122764694348882368504713650116737883273465697928003510099352221758000293366864384973384273615047077173028833466944355780900834330183811131274090528940449017495424310798224536537198274561179248757221304987134702207139049762499733807711549176887782991465554228268662556561599457066828160790139351079630679023062959148449494054370497386095654618483160724414646172266749379680464763861865375315096117075006738861588704420051795176481191938811053589788299945089856943381540029665751715879176420533069396105565236843434812031597259091333342098906612751155779762779568253531220179570855376603371610024480799534748104508830058525942076286689941072083996846796835404298959860142706175288832953930557920002428819357730115678797434537230739628740581038775167910566559128418817974943212926657818762623680572764751671763422131262118490101962542138046388546427571702745727783925142341713587792233253736351943898134511537592419883761536209121861682891639267687775498287987687000365540241425145988854587615843236891848984313018753049815727911916701850325199450132088419351080176675883348956709435086440045518214353226162812145296746185740315126970580823026804795821048967582025097524134630365356035996425079407752902292158220610330031264681717238236863079034460403083361321661991615335133270791735923461281671558780997465377006404332268143749554968970443165340511022857106926398961884589684906231127774570071880313781449131559444961768677459288304136022007785278686906302988819426936462843607124546706123969220202755451537360356383868996384638299738156044851348709722205565547471604103443730112719363790460532911995075878633712258080784120800291486276309878894126655972767544974901128300465126270154210020259748369785207996352111657277189715873527311634584503602180706315621894804859531169695021318992916536186340199862123073137525580786182259275946457673049396099200746330159604147469689875304860696768908734102278218893609913935319130034399527596652562964916219063894562971322108596634928945967260155854707463145113829520133578141236758897455640309589916093148448806682567670040510125423281237759249867685091823551776037948439394630587086388824068202878426766557173268501844828873683365392706934872462685570763906293695284833661936032368220189171447467404745361837206985152542473378919107516769420038878408450804432180907612300376289937581153675486946860407175165206984986169245959114384916145317565312978385013969279059084968796387958532215003905227103523906550347311814622101544559340124485069231298861474674734708802149062668993671559536165243181899105190494020983505285141568370985765103253060058346606582590972522622520871551233022815559853772542838450171056092223496241575868078261550133396775217270777312665317014867383543175141291414059445450746114706547229286579594483621191905170175891305625048845423891767871483841565497325949711863729477434057503787171601234386157906567644679411229243656885371910980269053564391158121211788272163168536140893325346428458455950136751239187995502883816572474823865992159242249601917748446041024749238728319802785446457735204911910215108221764691265159060719939741301958493678641278018009205998056249031498681763914977823611580380252919888758155904324007868150951549456275268311732662696501404352798255176723454154745123479987427408832490384459282682216572614341919990394781004560371234533903644368558822232454698354759610751473175833947918473624009123843919817720196875046063732755714333383511853980788242493004220227265772147890088834827581980178087170313551844571322100108005608953292917225960969096311813708365153324293954813508057161271314926798845125584290127351158944198896833447914666944438349917240586721612643658222361578903721317699002520628344638979849827434653851764655979641310748160403569501150762589050116027877364163385121510184181661818082743547949748321446845853049648604039544534267178754605322991650950390393464563243332865113602636514496169129010472952287634112994284361550123019954388531524218552131533177584235911469613162258388616614800898929109424979720490265358923231873514526336290348775426588016615467961673439062542881691043560703656650518569059979122843950954096757907731973784904544126566451372127432287844601844359128025713567072462221531652384782910929714590540842478213752760228320469776107412535073812218701564163201331538994488848364700623260104286921140856238881175371544554463029366831998075741453314235043551241106079636991832559939215336956143601197318800492387998110431469854071004035958308220165632264313216984446301385394347481812752330215370786111317422804543968187663188159723136731232912687993112906251038436500773901185831202392516781849974704331116179187310267985268307500626218989842366103398682211104126601047897988610158949438793961060090530070159881912845765328942336178545223400069610367088582040156215444344248818044573312618393170004236936043216575420963893726768691914432406978800497244993435966326320101811490651067089682771974479233131651257029653479283112907593766364873348072878441506382808841696026903298581477117165270524740316942636461246688120447490860184148492789072292850951620269980783811775227932956694631654010326783705198190780429298446739398396911068190932589933836306183729921476880960232475406739855764299544753596937356666502027758320351279612031049308036796051252723144049193320949304260360394915297998798478979923028979070653507615732148846059811145338248333787645399960379805682728301579362180888414776774725265614942590400319480500552864085188454996449329267649533980829131495920352176179354862776078194054460252920736561833826840022435846200103666125417893172612131306068962172926783025239817600876569511745004969731694198289896148615428167218447318381183553882396875673134538280139803802873770402941027234516434276223547901134779092009910153143861183040124033790691530168181794371548957257741127101564269001832179990671021260056390007132419253824386971473663978523733280155947611093385738439264723484197908262382508454179413048390784712096405763458061466883135059356817690250151313473604759627398006344547833371802089552444645080120705126420734990710825583869870804947808446163131307459906503458674563879237182098816311867961248751825959729397888304116942109159286490822609839946932315941516806810038467916982785383659592161862418522630294250816902423274562024606835323191519116798108680655555363871067240917434916477660072390561078297132579404338833815348294627304329745711203412860986742604536883467388186579568647855785316756901424988498616241505019059888769452630610397751542606127810069638436743476121046085094519915440080564814447194414698086898816701070145673920735343239105576059131157306529422567231211231869847961931856715378500984401157124845701037044947670711328935816668641733033742365088517328785350858307034048369095056046909252997993386687576767619502141543416398204188018695738141355908830951523183783888393026683611357983545348644932214404390344746764680741684925612510404103501456926291555878360950683974631827317589006669790161982642313936839545408854510753079956181114554814737662758244408266685335790508840262361162845758575262074151852866253547267758776978929339589984486894367619139115971724992842776368887152633703254410302061163350002982789521471343947448385710396871973657011125866911586283194110340868558142647758708529017841260054012738835030500342293615442604719599663629823620484604002819493627590777713819911363083661539851433472522883067495009519968951162908041665227162378092786832889652504273917997500074728922697971063964276127364117064867672130198144753728336973796401789791150265053790701859457026525598047792994667535021212649869666623950254498438535119623206744999226167462971279632038184706207036789015949449501216967761706822677216281362683155449654683166075718969374412481091237066557092254366658840313211328667805198368971298100111214167481932106938342968874720847941132625145673274602993544007545700208932056015851603397539912179092827984426936275834234034939444641475338121276189980656791507636416500948190346162117682143655164500519581031592951604799293744384772867451891609829842605571230013296311623889051727065371440280235513184551126294519406510014575653148991625673431239156939606282525420948651005574392245325949037298104994007646766392864374775296024181357164538358787964486183388797874016911186781842063027365532144320874969210606061261584055283376966262234608296924989700534925479532719764069523214580839496956101209324238370246892328946042472226901304564861980667743424198692219515033550700642935309232654670015976467942921708160161713625773845595970394913669497220581575615775862470082707380726507960442062173936561385790893717307464338810231671898732683704096402660445386129749133158076909428184122502052115235428719594124789379417648370464026993920047408183533247629712627159774410816052446183171897076147166684796806917773547304597721910998840950887535258366931738203835348435852319105088810610885063886465444534123400656467971365427121904518805184349422996933581566170239225553135778254165463851189020487339167957925038754264937926045470759005059086822810241098893873911337795251050720653079546501027690743944601873754648352275118574006733627780376365838452154812795372412504457843262467533289125111504349546014796979609779641766282692420502074025633704057956775413561616427004550315874305959519556002562074014635870610720923145346135790470422503856471113369022519369043335513861364037436165440575946095435904390126910349087325271162232030099951809130278631160266861213355375471582981706104596180352666191751452392875295948065878411964243117358273014721937950450509130729075698650383170789532717098971845874701298065515607487543123950231445077089439043118793977589536378586974028372893529902087115875600774887863658229643119565557808558896281684169147811277328287502811877242105397761996035728254124103259477118058198232767229184896223546506741765680319232505058359749730524112708130117640713776987371822937547944846983509630114983636771043338280798344143224569020779624875680623149655026225504353751971373450963495385231650716343039391076741371437344391285111211579516533022441437142790933205308034441844408091520767204571676460308473487892326586521148777775399939497188084908879848856303360732400618600114451977222120437825013185870148553838292487249490321886345755082406157347126779850658141860797653228423443134693353596409896166237985561848321253174580854081297303299034696508183234807863873815849319688841865223163551960242154390550511364327004931026250330144946305212133427341829378629932537654687485567403246821692095373485647980485240707152875337548775636583958246868382641824101393385688626538448994690642581017424941000752390094308357189712304586053476168112372624474170514992022919580373872663640838700024696954976878525347516738451135284675005992506623005625674204833022209627291862637409174682978604894431343987498501500194951161316700572318235479193398914563638678004680401036467530717113156649257365845961677548653833365263648994345843652423923345014989492412274864665140452025464485863239810030186974559897559370530190586657524603017525687597686095473279402272597013561432856658637572466306691066592326788848957768484467089574441715171121476007371541197283721169990614741023976283005408815245187777696897789128234921255246977040055471125853199008485072280244775557864229609983607406317019150442247899708550812592247198424659648525029250451999353676561488069364045925323598282707922256114715555399088055407796982845470952150099626923265566560173884864738997020637361727634850839692150951710818369633646829031933606548763128666902358398987493797159531758201556427447239669255814224795714433158016808291481512609851306579903414375212331898579434938435917697889304703096925833843682067259061690356025359619235708292004526365492091454798154646064536885236798406748364183106176711853805576100214944963329249198816650620739971653327949850255343721372937657142767869440212496285679766811942115355585135411689352551782209517124101882283223600141480893350028162012511309375814401997031743780208976383116529203038318187473559675425347212255216107261327766908143887309137017947689897402521363989562635995965566901645885657115871290563381265876545356422554286644260448163101230021700158576967449288703857071585913741591540956489552194002493886466105189737092946609613785940613901225256452833986153941962740614543301061159822132294267381626169836145926891854244874891522775475945710547039987218632559162117322509779108247572481524010987588103356418411294103915369994083520257162587211327534646325223531742944663638629145774516547193185166641223393555374509733170680260764448060634631266327356210158433396976464836431025910065562586033083419739185549475701118995540066957837210766884649289822839490936852437951143958483980984535280017749388376461784543434007587031820671941377557703383294625034419710839414624897426444532135205734885520804521606630041206043903994586430864100627914237119855427024178979049269632924359780416123512029049944846588286415437745485452533895199822333017732100918168647934727370826027618870918257472715775328457209612226749376553674966035890442242346945872402228856179953497621240962509220070099511762537741385990291682094006706282771886682649651841163126714657108407879207605937917401303534611879549783236715562026855251170294604327230843512173616001068354003838349772814202661123106692273643218627589359620774628636268149746622704128210967702095539825094946119344182671317541564642712605200723681088434058357025902683406445008668478292797021563360893872143370191277681110428030696600173405566057573386985652949392998685387393286687503618621037362536508951007448820935333802934944748959838857319984869667831923183022353439985761138269777868211646062697512858398741503281495261022640083505170064216775393587249827208919850692853499577892376737357107854516959927090358979052056498884695654880244914463149421711208677978346045049903934504352696728257018680569341508548251478274760675572935773825911239299841992807973362843799881115812795021904567266039239584569751379372464871084429356577604492983668564845747294266572935431424720458502298072089325519059836593533790367334858775815922038440325615518227642309859464202878822367871571068669466870489330385301220368153392773345620010890157582549357690223047912926315180269202347810136933393636673003106895325263144135747944551667951764559292528961343473330238613483997529279398873738814024292427884227784252146092976232894522481243012663796197647860726478498992149122316220967210820090387440581968003415930215675851794726228919537419406354005442334371056761970322174099544932533552486274184636970351292348845883349067897928385001972671872259861496072149835837725107984371421616774073652289756456312821226440868582581184149429567341602896064834696418137623684548755628025812854071861481948761918916625292753744249014472565494257398681702379891116770898246275767520470145750862334504641554386016279665614275759725442532257305492723735563376504534075774970812524110901402827411005597847086637349163748428725236563917872438845895603914010571370355256915128582116510005353207225529983902846730510657494385178895863159585106880075150867297871219835288635959797862830385863024096109812724797434745887515819723946585779828716939566162179912842930708797217066022387494050499771405166964113081560670495463617482359123485998136751819209789503101328736137207348701442185463036739101648046852371354692533493347242307799501283723950528157925965546770089701449667140844797509701867098228403102954314444887990142522032395056066865243202690805721851549221332286462063565489893237382715755229662303319412589305395333092292709048169141519223684868817713858725282514178548964462258479704682435106859949918275313060162917547402121327916389022527794645564677213788199183390328810124063521334734659554903739651388744405066935891616683468970042874401185150487974832350131253258188694052630140113372524559977261799038664931607495586962195683977167155050100753563535313369912984886403908872109844727725499949232743425240162054879059703650163701231340930606906908842131727912726938497661524189076891428694757867314031973975727041616619512492043891740767607535779786146503534678168394910636591979956466531990661296283389345355278277980257530175525290523474999944078715723592297642699664276608300680251122880967308210548087472824445484139092788062294939744027359447162106211783874259964036329913914182097443753058204698516411843249604004413713371381704469514194564625952888252928610326981816321975748730777277634655547433143924529432257732822729718338270495530028887298166422466446640362997706276160104679883867906750555796688204641878401341912620737398195638769026163189999215975372390855338268600690158659690526814095510421402230451177749649695952514055454101021361008416145499177410113778644040432128824507154631621665923727458100299543723354544149743841675915431194197953172680361575090735959884903650421702747796328405779220269157362992715661406520913097555094693978500131384582149656812011834068047660451767919709546808649957787802589386975958878073410368581370733017361948010529951103557330516838532447318617184226649564248794726334488579151412281367498616418560275646700790055539657868600966117095205359223488620461540559875788006910948297918970660837835541175611089503579611255920785360788721359545996455411162871853990718676287747833704531844119376168511154506323053220583954716358346208737168987907642763238036058503083588901791385302609545591317920568582963976510599534712931705296401398999501202940148658074776267516999537154270965837414506953404626264742271550404214778953945542833788684095591250273954603799408332460880875042108409801839695587962798606238035890707459569343075626160901459391830170361456180343708385096532177707124762439773226064627990266461942103513083238122920327494604696634305092560705800523790907066389035561972853841792088291788024317156790073727029382875839735351663214871696848928382838302495205650399071861451931525532631084265808487061148507036186646464662051704982088074724396119639687999274403372198346029915215896633513231581126619257376632367413760746090261851318075216774943699276877944419046151857282713608039501560576102993503828541346679656837693123793801327460624176417110809511841095376918793075997775633383150057908594464180295654900586014678072181067510689429979711275735097445180529192767482831339905557862886754186572412171806781034959181606712172229811475718525736550797718874341499664167604567805715243273860620039326106582760540308429089064825862797454742803900226904116067623151121922920096054539569073772314763627871450566243923394800641447700702745272009664608408727948600901752940693816753987206012867027730727550100230244410833266164236897514352565088863589877755423607431736918870704395144745990320173613484144904914305908664389448168889580432489426085633652138592214304321324749113818551995257560357044495456424676439414257115889146335934519456999522442057415285565085441690538223794639659245819640818682451863782694702748169416132197531757017940963746180451476569827622500730794557057783052901696053106225612709495687027543055051979928895369953402440735244498744910149501263681202996740735716104875648096481545515223631013347146748346447431891562917494878451260502690327304463674338089574817174864784144214817099205274132555702124922991060527766603487979928373100246551215694740844367051048381586180017317875595086164465949360259111178673713071361298292868718101436855845329381422878820246979526121096588198120238405392880273809922232489133706287368643348031092079572936812475137681602772747179044525679387567561809129609116489062792167236140958036734518707255743785814605362871266226745586626580243673979321259609538074881701475903237832615616248522262014435448746911921542796908457907825572146915931783944919449829965572098503684682766977553557758016450604787871369623010465739503774469123682551947370249159828484751186224512421457744086645710779766801254728221448888127741912595472566737785406501917202479106591275259804815097230341130119417639904557544775889201451853931054175997967117004800059048192972176288491646606552501363200401307308298911605219331248738090477139188261180810066782425236906844184225786673412841184428661712731557596520794705895144334062033844435284102386809454745249096056213188613464336471542357180886257537141835630823345550153565611349587354151974936129110165664268554296946890770784761200665050703824740982012244306752168996819130489626574109092133132509700212219323987277047809392207813973081124564308456231876939837414267394211413034806560800712885612394088178073685794691578224890078375070363189641342268373846528087821083943090163846275417541676263987615083780589235960850035202310118410388212331344230786200885402470777460979290568978084516221922668021280831773147487831761689917785624127957344040729505862331025029181585770141442665081010258379251706021970352412369651448195410322536678775496495424767459764268411468715073313161010439309754077721036526305164448972971567268577315931842601144636761624600019638526499832811813695180172058933830214497548029035374714261443525224199962607929979849052283396102206019615867064361217673636766879482775543520180653983530378458061444237879046707025529831669503164552359307563429298148980398743613090985674773448919669852866474166753013777882016900364849203429568365542932413959846345663008091405548322385078654418009600337025099274226014696238724528041246409271791500702621318582201223416767948225987172431807386181756461235458780376818974363540096356134720019235061367290458370218862802884081084286053806958767720421472473833704505613014798764622074930061812818713751048187698628860555177917783428697888749160977540672033189406181483275572233604020735464396397338663379985090190120778739526477294144355665632064905420169615077017963894209835912174155364767201016473993466376460682650114828502366324117924328435055041860404505205915391664607585709267849644869806474119374346511292275413494857492536741346774977892546831261568012304132559000473657421233589169764176684289837641868080745661432159367443420806955739504407921788192959492883544927995794609867215703763139559060688077387082772533738797963495784427731050991919125474690262370192531449601496702554390089480620121167982015495359928836494309016664537056684617356853760452787421357332393389220437318516647868693506971095980245466447493537723825763515035090992433485174719241732208619080631049148734366676273785499083922453613181996215382399139224903850542098292799993884406626599339558129969218172100071214733492355952548124410737968804396726600564756538449647282517301919307821637978559137706192028157884744235925991133684567723401881850011903524073510973104229859049273766994549615694565145342295945961832682628185190355097153335665260106536698061016515681410572703743861774012705218249705864449591670023558384414821773382464484958424115863797870098952591314607662449444474894991029497977573725787152218714430107705250067964090172098977473411493786758665434960858866468470495845425813146700726538728541867910393869663968570895493698512749646854408110650939105105281736501849043152462980358535412217155308250338608656761892113886753137429031024740030992634844974041492126846952652410479542847703116759906290783888741532840464765817102279048723660020317520898653664681077000777156538204213539210649182044034345178462361729482380176018001898560246581328490394748346445753357343530369395922466498525685985739279336362889543159842306517160562377218619164617026258351362614918479583187451934983744797954107307225813065698064119588687379933059608797236570155460739862152372722056672902641020206669259688178742113406167414213643786189106261219744664581891979953758792159147069670042937485937812247107025182029624083696247624316860955170674552728934922370608165858893324861615703342660185483027745241232629704403147230716181224609105426034405782223720008390793323565574712542857204178663151003104326779543241223553477070010278728762803021097501480071180666830338581794380474994820276103327444716566835937770148293374777958896603307199038683678961026172026974734593412965517784825130288402064898387632441123340597977861093732226137313794161213000113827516891780215095743086481234685442225354663265829716800759514520632337451468140115272286293256973687145605305636269972010376178977412859077724868971959253505373951797097871756427538924161440958902183768340840421742366590002295065870576638349087128860033011482998741426396248075266060263667297869951727787355075729841326083910083486264076462549847178759834790472726975465221936760345420317138787018059913599665346210327851659127552431531675482047877224214906513165455323848994058754014657660230839200051903421530989379594234187949217462658052686156234491759891431979357382010820389861989041795602747158597650901258218547050596638020406350385337437722156910662909790649668623393114981465465116551525738785235389986384544060139093483608154874900238964786252396047002205338625945724418878185526926415702616904703641662630713075378234823557491163967511327816833587948109535176221936528859338222667807995485699899369121343668594980487580293655014099702956333765173016716250195755995287644240190939042254202608943839920529524964689168338240749180240604346927804328250432217853042056162076991987598451756775752905331640110832015564354015396140467272082483715970124882212946848581383436227350579699030706708554706655138016997306825596652451439393056816178675575927422071151555433980135505644220410172460058394186666995188028416903472036565291616536279316811525199382107386944786165675967155400137060164859589309616681879647337660057094808322574016106371371122165032678347218386664746861255954282752439407920513413532821097181770612394876483580699423667555949315596772548722491082642197771810052136886123392936642535793250645049228178364307233744453200015384334007868557978280520329707870738427631325836969479342899119996838959816670488656271307508702131130572776990247036902315510467957502468689308102303773453572678520051742032360427121897436089204159653144216510494412259197428106813412345117499373329512964907067974772193579089793375958825052394013980475221136777361517394334019875338869458801588226501058018182422097938658099494400884267926226550946561852607111456995904186860821377418228000907273724807368018624137575417758374401473950983725849410318687341651251095949651144162481892470115732685623720130171707242938016692973171449146876259077134088238281156441074945734727426804728705434472713777520821027156026235410926030986316733212879705190597060911036512712551745696430264113185631368062032279700590039778795074270493446805943072338499508577141262930558301153300884198855568896112055935508973338409695251501800149142604178273680924161343409087103088543148705527809812644208928381951744941767839747329726385406867092516116495713860324300393975062353985347878060153150087315410639769721047967044853163989028816378043955060562881808647178863060993151902423490609185203484477694227164872648670004726188725519300734622269021369364409102490702236375669184827698750533680982824263739729043376883870482276581334634398569205339324517793067564551499431033834077266233835160407139017577028301913258855579205142036664986460829566824044465558219287202462790728423190308963232969977921486713696227780570809838405103112675888621120640272133013276332266664852377076451278766302814699413067589913274573245020186965665474539775059379697058357615121820625816079431146644117995942424413549684002736984064906243138901451139478007740213353172541341501822457838141698201954015620871785534582323132349717867904942193551666751108126438347868513393210642473822838807560149016140461578137039883775416600917025369084968085640649139125208275398128832475779925935375638605966213984023353731640017448492855925054176401821893221797345370364780050422028070558892366186031456557405979129202532031190009057644124238307670649897174441448440026057224966203161533017559530818418880809839249480927941504374571257338508823014272561149386407005482197338834281307217125712143190013545090063769389482231596358193443643488969262963878281512651629024099587471580708562009706552726803223827254040293779266202302594220204044572363610319540443696017502781795240120687391361509253154078428006177107513525231667024702651099117043028506103137377313126232175187001310212695129897886621894236878432052074925775599180345000908748694188204546489175581593179452280796661928425871027487469503130959229062024905649873962273241732105772211402358785261370787404167364066683275789973198214503100751408128824261730789264235336565010572076692386613920847079609978576165402106678340039592975303816977514125659828927226076116688860181124766140614077387837095632291285481391371104889925693941061585994694021057192661866186441945268590208831799729214004987052467348641633362426862288329744884752828675330257232132617384887413141180359791536122815719879513555658654072126562367656311235000129396344325602925966452911057490387572329724117489245977250744573025447888051651370070878765609315133282818611345518855970741481485490817288906535387089883250931527208258903200258444637266671386774944518812645694567199492980941543186299193170416507679184683195330620612457152906012388819906780797625898548524824867613278985871208724886164029039588960804298919300644734452899220322805497988611734058158387970678935439436353666649556456957752751595321467012925292452197237219849781154772412096755239723807393867124220791970732946263854419841674441829617792600924967006891372458544198295690114355192165103029726062250435463165177184556262849290053658674890950975810430981271233514626064495199408763313870801422260739372932637719990368284406055993737174027071259244655647591900980646084098721292591437617819314110702093220089541272158204490635229301619237304297717787620325222307321429591373115372055996981453932413541314089656604052577710308998613033165318334951439485666645598330616294743769525635762579373153822547760987812955916748100906604346505866284310338260275864262312932462872358443236696413930816355786542907177957680520953884551803681151754029837407301318629314313795363393421886508732443574038470233533488609420522625002581302679006629710172651589543001120319107087781651758845002133720420850190479753036561632328776385504942977510338361544567523571162503486220906801339179745689703388962386147480223777570938017862169416197450021273399192695489179350250782200334627733204865536611841390367802989410088724982506220667336286942396189304487041672158295429309445851696233933977209663307712069305768603993524146497561878224616708109213294012735033926412170214614147369349080184737254413052721394135075929647707429354306804240568264166458054841604980703323567355782647973103835422220184666961538846196165012421998030243767379049408015859826829506399885563660933732698511939502797069877443416984928161105863882204080548773587488100616133650657082531437949613796496515856556722115919821993644390436901101071200471027775263111573851117469334895974931496856654761944423712079823165065645110229073094430395545923915870998415904244711293729039778211804098901481677717669965824909093252429687208911851289300192495188557919936859260854747947333572251479548582417843394159796587054359676383558729288013887907929262000396866288641235107440627697194928592707663801723310846113625474699456258402933086113646840679873485710092066254225357292961739584344250755131495386127279438677685143274906759555526548497277747356091893408204563720052327811031965146075900238960594004831461967464592518243805225586938320667790814974586183222263968119527651747792290082126127083495545024892895587833693281070737928952751332412584891814947247392360717062893315653111360826428813642605697174302868540363463626433754854037945454446385607455195252007777615353182755083289832299407903213675712681540437946573096230486783712952525828527633495365167505295887902749845923615426275981606185211564877959088703349914055476269197193202274050728687383059693946781692068977843275768550414184113433119457752097875129846465691833419670178387754075002896236064957483019047497861396449600852993217475809597352850671056179414225340405719202365379769572488328889206329348198755416515675420580883758457615724215059455843709503675925792397803344512754094541704002060789744909819670713923771615894162262707435626229773600340404682960257568210141740994123458830592261770326222100307238469400896555769636889877360397169664109443701613601227938946851032314615067475611456830419318248515889240445321414915446076810817985754117625979569029193028825784490679054965850483493538795288029882857250690350123480221142862167341009078804013311966465931542561236551086503421870552749288033439277160555866917627610011736016273194049687872529248261479574858242436929863773850933076197653385596197693387902487110789451127186431205729190300506462933231696393645726633612830292108992568197908812580704205113903354822819182565833639055525015743768620867315584412854615749173907648486327064976367579274457544407670865681178059200644038867066556669667851289631048546962417753187423679384644790013985411900020695958735717780157682334557387521577188627042744090072578644996706958664340678080616990649487967031191568537411617898885573256134260848823468714554004008121857934635397644980168075146424108170747033139156731397563881895229775342416493711035525176204672079406847925042022124836318484169147766155491949347135303742152634382773869812696429500787167244018271977934118445935524736263803413644988890514369089243741951068426827768302080076793567322441349247125579111849322456400889262985867910846781843342746230658383212724851143194060253984763120250331685618502327692962325069690422012409351863963893119735608502684270322207229129598452333322380197055381947444148525306057791184066536727976163222137391742779559428254093962758260161525661239151853375028474743274850194909416073664529134365442831831924560266451719724145677976988161708914423560850922934515673909858895360497142760053580741548407590318406748095103304337781969156242039571170468488559818401487723683825502348707461602889554237683777882027246637523114631528036397995321976617922330501639097923023344099700976924914540124698488852817174649126826127019500146626878925290979985457432803113877462758322258493571203900770328874979891348754349672490908144799151243679111262280980638841258011898655048672523400301954740525289272608560214077592844096348783113396906140625460964440876708683634232820153738733857998411042276133337679395994004619858293797917449440661489574877912695001702953749280247169225150489333938648955653093900694512492977234270379498965901970014609290242897788630211744148255615480929769943108528652163007147183789800057203964370602330933806750670837523161114397999951734372654243901062553144196940194393676658235462373838674493813821874574795692084762283188898240976125272917158871359983491006154318783179579367562003037567727076050112028344819647124559834550502469747341659688540846406944184800000800710596523792247885009977437215804257966458295749879217436570391407752023119945987768843069088763386066509790389762879250557295536282142892253925970162464833841666110433406564566855978064652545440519105159686144561423079816538461360070854752164988867053498774636375125513664006088297734433123160665519122333893685063724639516360716318832458243277097806994458842067470635760006604512233536495694854840444445402271954337272238301144223579614730494302476157609452856654851516358595155404225788554142038070253172726489243210462851337919398781812718138674912664377765127091032817321631695660087944210616328283980466195275162077738208139131849664489866233733050360121889838855571318869054725868791182156510872230260625230196312518259724065618623040170880676914789594520754707343854163945567327191952456784880166518237864406795244834444125954283723898922086436350786224912256571434446621043964331059763674783359535743175527484037217866258441505562482945252368357878268550327550982514025544166843659675036410882736864669569449556408626090632783950566269258388335846353580715522372854371829487929538333471144419606749574717629062977262513394546714769321848640633792569712333261815980255523336676043229153662949021871632799145508183406367855144253266440083697143443436695591466637278373524468834496175489433913506758510701907286723192611924013365018969765545781710749008021367134709691484844544040878397342174889003506974486546764161213115880068517387607766741641327868886696685770211801884575148943906648743698352728961995372016212216533632306991133949465571676805980284328692452506331842440189868914610411555031752831095880626369300934510749506242571898789816352538067958965797968956690077632702241266177093456040876431514953686133876675384451642777871917348822029561273178568338097926698466315848347993093450928562456421584331583974822902347863876281577689510053305479956328344237944492396397034937796271959850257188755603344521712933692768082735423319698578788761832493642020574436722171248384886980226508297465675477356747147988686218843405726246302567988671039161714164095312019784027489268677893785491399448954722831471261723646430041395916136111743700905540810829797325895367098140587229827728108998945420789218658293636216222575568463594925404132632187818122918826518749031371936781673316916137127237753142651814981447622782788331877929169369214459601608989508201121742870209763522493281986455287360768361450446887765688828496945959340255019221998990792708529073626019245300912746752089239321032800945139880052089913660334761976506579196249890976223259125319383892541454239005621994737938208132060074989532579547443124561221039921532664534662011469758758233214650466074603004608748899403856654388695031456036355484766929225505729147665870154140422542796156143473707516361766528814609015058461259353492587901401067839011009296833049679245055331086412081470053043125450447177011507093429579197501969521181351217205007918875262354869692771735721930571186084623817036220812737734644405996982338686704280089951579805826445918568975165946452333757312350572525511956715421428365783982912458382499373598815263035311740292475804949533202409550873593031716384102951877448428576556731891736182521958895746921286421589650036289565424425171401715544718064045424070996235828977258863908017294663170231801731316831425709066007268603201293292231474782469680916249966833283416586295790187688555189356565318711507445742941821593615981213296423002147512315138792831876497796381552450721117724844504000997457299040753558465517577476385152786433958941842043715834371633542900632344590398194045821943803210992658957821861797616762437721340770541431640735015762482102192124961846162551084172161923013290764289615498120794444747066398378735261659294245016121429475397589458436642430745446801040479156734295067205468060664786453584055567092110289246960525071917808107916456308504797993751186533255825465926563726542066466416026217186159619902477988211548117564787150131696129866407203474296536390635855753601963768969263430677397028100690480395761680333319053205230547846070481454881527093198179574808324855811887829610601507576851769079931301158680853058099964148474176558793928762484263592606246224972856677383581860060573470737515724030497710607382185458840951693413681051408836588922031818327231484836864774408814876769370187105323275693710272765964670670052550617549198333406286227361885713381445364763347802051994360598927436259850637896228493676766896462209704830289115575744110669393221725005573556109020276878808633859444980496240984734962561878331752278358729261409027087644346150206193828264994455791792335438664782834590620842570911260939431639906290452383225933266996115275576084731027162030209730370382508092879557637052809853393786350191180404656987634974628123186900445696515159036739059257511676045445318825106267992507686891394958752440043019419344225602798164089503683375771648215651288130094449730390949680425349177032067973879574376170794562479332379659690234561358065306800765725976172454821091142727831427143884134495245069399548698069040371412041261946501205671539092859818700038576686563369068161168938890042817178577590082107691068017527738598607639931626560822485118244186489276584546869814423541937608783903328662661494864658612825986992932100083516244736457302473015751618865053466863546827295586108448920811984401932641879340145848370796718711016635760139375086573051890932719171554307720042611057804989955025940854429107191399117752304011757971869394396236889357245242463291320384588344411717919374823997614691564063154024120175764899440552196206546899525851010370877758777792531215558366160580575544689437221708350008879332677311558037420409341830468161676154210313980167096372079280575986935738069406021705676054106476309831583607245097719279458352498804610476477562680071155584091484782510540320838789615118805805567132936345570944659634571765084694561300339946882764460108122140562822322494133612344323294327226488679736481003065349797347297452091393351508906263118315592502286635464424915216808408282849148835825569321487606711991926415104903707185580865269974886072158816469229729371203143936875431592592238251254235479256675446603462130161760580144795479851584441944173286611854211362482747138117274624959164559247899714152899976581706510677152876744300090011354171883775122780010079946824259925878470936143752370788108435213410754617837646310336421165097441336970426428205718697497140110832728007036229158076279192698325351480855850737220765825994245213968595292412739169177282057113487965090351167868717000236814738927794560963928868681057949928274109992799014628781391428878293852946978265212519527299397027763459122928209620962772149803493763030711538120944809074893886777934127519245962926025036074275633448787928056749810382231374396528054396641799297841733142692832723582278632179548368790060182845422253094091477791285446175135895931134568295223013791908393813465984401276698717873500579439331160748372776721995901198579428719773904614352040612746911806155309873843702617431406059556995679752004712679636475991544314486436522702467207399037820852106009203989755614554445919820795117275935675681384379833561915916385678865827589478978200546155843966775211714683979283707627181545518039215340907927128014580544416689064621972453577146543497047783633276708587049782951201087181070071752092576268137467621545572706907600830684500882538999739289108315760040629458330128128217650627245553509101370420860622289082377972684463347329855903010897990822868099279240606908066490767306629375649746374263130104865296774065920768709226335138545229995073043732718272895341399842151780252510210484226751912699258939545224320138572062712682766620231278292581870362976726463395894002789749995054344476710473792468993180115422959205192421938639938101546235645648176635402627447190724772842007715086605809189956350116169909664841388963022962546551429424420166282456508787156797096548758854560173703263602045976608359087247557747322467982769761450447556174826944516790357570184247611767698351730870187553171851371841302711022517703658219329801133372661924157591491673514717230072580372029766671221472681474505962336973952359367361718887136137893084297374906798224701148782643166828547742878130653028253966070633492928581966547134056449975005971909408016197465974919649041674500696497616217310483167952042990399056998784014055277636477369924292679503560541425067021099409791021094994125839368695281513413183861124274395671157606273674224989203306778246775148408264992743094622535066780448422925926193884366413940912649718851015558673646256572238867073802891060193357920195162369306784517500300660824354334388730094460074905322155884219422215189822476654802205939259067840429073990736605195234273136811353187543658264719138835652455964876025422246711096883260122235085650546216925487654986947913464919377760704885757100366026165606999453487588815784436863052217680901759452483090478431745545913853831792321247513106464500134873922042540568349636315257227600264402093563051312007995040363194460195844367902706619454770995422256874794391943633666201974320946108350310044428008429320714486865017779333479617250169809179244943336208949742844166695513635448640640425079322680952441466504335894427559911738450062886475920880712438332841691823793268145736769626628157495785437850315552899474093839237762295650869607997009307602529984612644880726779877285937443191703007933142383843015251873286301258778628235673172937107675207818503053829354080615136531420573333366230446721072315353144568018120225824260914885096029986002268632349036907789190135103378441009174634241552218773511570218692704543971020769579614629799805555157866461010178070929295689758347283050347364762686468007061992730400528231023957604405733840433993424123903119860083247864008034574364253333435030876855195243963435783280525095170869090913669963996653802226042613893805057956638546003130299167029776115641537390554274585201355785865823109757519244947604758992166706630244474385890363186605173277678998412102328202403391296098691911861021375361386621030365822720372126486311229435021693561764910311645157548864143649086194905810796861157889641477598988208360305982302395344849394379434491877548856788769247859645064346064478174114207440602776550040308171912426097554496918710026535728631564808726797501948823247455774812398386563278117191279164737889521393225229405581392610414908772856892481375323939560599749632922531804754945061854577048324400646223732862385158803507098412952881497202772013101545764094942693304534840671505589498157210805151916582179135816452349402244829718435533428469249312735949959903958817067434258254099028903499874799243894391659795432980879932187814860674213926020490356538538145259941441231933251868673241873234819166517543344862549793185403138260910823721773700190932388821571690953777569031435285981161808609715292940953881289891158278319747329759045571929706368000430095410037350776378515063347284318613121633268700246971345585840500937955064454128556184839257897279733144853298050524208087593782070425903444640348179041502503629361312070841769127978587972552790313822920487979616378233454575349547735063603629294858200271724049086059757333680387625357331385176811259357533871001688435288444242831813764430696633756018276330167028934955525662214963482411387420675194124656192103046586982031676515048063621574514538126635423273396437723039334190472222964262707454080986896650207600447753217333138383677223327520192039447639610273535532112483820280206415799583782655749152710364291719242963815567807676540353209225890204994673963045551737048798574194801363755610059748392737730129277751802666771113019285577375297011354650792650901228471745411860843989626123557597140942746925424299877227996419375990052073682389436491954929017084700793914079513959225017381388783397916563218140121284764014006159818199884962653693839694240035995249149198364140236614570875063265483109460926652592842287467252065684766589291096184250260353338825482861810463769306153385054714887161324865059342130293605873661738221143193449268096628204357451268398566828181913948652765124409950536893373665050775319941344638834363930201638908851531375827919503322202390108274588702183172800968542551284443434152809994924125722973728294410286393172982627368942475416059598409936246933809651794636572041848943125052327213842061222022002189585561030950587115491082858446316045979076450992457621768105908094118994798804004147647865296989363339723645379610501335036681136202546518079137620867685071013908311623430915291680882326596117301250080607258766577258079083404687850255664054701720257321187079757571770728328119314453026971285583300396848655382213035859271876765858926600962999768830137389743179025219738414203373376323292940409901997062998362146781676611720717762629377228545429301343077781030099401579176220961879692909520033814749834993248398059101975189226558912565616331555914573718827352380636713233629843217216335120997861603111799496333551983469820138707326398430612295959902444419082933731678796500171778903958653831861514711326897609532328997569838750475240835191442457039359281843830814554145200224701724558503353653356038964740659638419090850800237446420227892930006518641729468101018366706810103569560332809419996083610683381253670262019270369971505250407120691580902964333728483816843831615683494237166683953215152861671994157357384140072193370724531592889774187535093809483371463881939604264595925152307985407289184013334476839352486275426280890227929741488762827489276045074487747957431522238752122797783339054690129277502537632112159800302025389916405769761181503397759951773344234308706404003220771176378332767244247845453107653066069684750415569483824948557435848370384707843296993167539452570201229106325656881606918434454495885512800513942295934559814020976620281424195996059531212948055863022116052633982986057845031569175255688507310971831414571909117301332497891813524927489342643125664649377288436536244382314687475609982199494628571189178177413923843890647581843358825659769606916058464973921783052374297962997309312062739006069934147155859592848541282478086565262214449214882610927254561036403698929156300864997192030651978631271722767204366651109279049217614733747970351550804585627579689447473330348572664514740500388006508777391296663699516525005521857578829731834085085384833651917542998108974698390500579502622331102640109487615847258679520735772552952874065578113898412134335241056874632639133243465377583697454542958506246101426012894298030052531943979187563505978914861230295472716587088376314957193558484460194557525816825697896463570265035541832123851812806461834446283754696573443596509767250359615270737299053716622667990897817775754170380585751379206245424916362006145995478148870150465846966700334408886773430405082748534541038870676295400652316438453410612185827285265044299127276211872942910730927456081838036063900468087364044775033608971146940761969522518854754872029896921210435437450831030924511993102961123618587829387084142897097482048844441421771055031193012572380381237424263689180060005226078308603616295651115246404574068445999408851945710186238238894665471702553969689823544427710947253355710474404803609395983003727724125592524821235917799004896980388366787837785290052209146475685054570955075536730295385843495848834254778873314990475024787109104442416007413680234192953784056093493655546266471078466733856352506786947325163799249497263183731593870552323966867910736204828988748216534504582917041581874539781025124179499691304959691681882525186535063752292825623347927602799015070686349556972520344857391009489749513531266527778446878018623706711509647992081599368161982180943975946699362269402563827232247193034448642021758403498507688938991534103786636460214076527361536624340104353863851682665829111603730977086132881906213614184727580108598256868808803195686187519288076963276606063839497165775791839366969799119235061815111617520264067377114009741322195789379319378582829465497727102649467429645245168509845255228787542655206697906089988301637543438541086629169039771295945878251331535759444491496381718817564387088795052083226099305634856137977381218527937126805943950901511930394075895911974725388327015685118183178065279305448903458054349361143761698125499509231028573078197287980126534665941606705693148327661060587948955324481044126456758192685258262536263716523017910090775618926996232731023966329056076672322692739275478262349383954175186273935418998898261511037604238097580123892574732121868944279645853421959096775280778702666878182570702495865266340564096373911236490465940052259807067037114087802908955657620251148490738971561170315336331633283708571518704177659666677776312123637030143872818871124912508214772218191004956146642303999044808237214672595228377890742900235321213997481747627491278401173460881990647798771493533307701419707075142768227510080452619909401001881225195531132461713887973866135416624631724876465183756518233414076901013619213142593136303462278090479660061754265058620189692174623648724499752031640129615515330671999865154356714988254250768085094989565316856379342542810198034574902719541391510446329061996297020360186375254315412374873367458762564327308374899120327898701154661018740598724939293315951538434237079041490024786091038111396570150250157451274502615961015426451576542210184137084694494958425128838761427337894725877350946847241999022575178677282815711441859481416080784356722620349755954150164216061093446464550728633844243924818284124569937486110649710965819607403324761226451920796966572625806253481799009430865609929073227971955905778335179964354466414988395537002468493111997482257219923188348985718364789512260690124429043813382589489963726589038736946923836272920232731988026975053681957593633912645901468828651130295625704976852431369913771769067339826012035024857826468226840514407922163239135152371868823278427578677092350639628582979730773326936187733371405044283971324440295983542837303295251385023662850719705734078840177254832868338834309180312276036986431907430917478732524022710551713656020509843983659835338462763635259855711149116110294059843672440510394792743820488251859287156288708420659885898537460222084415010604803698177742264919971924779135044072551107506830949257259579520122942171211423326692001724095144337642176173462704251830226546264855330519496133280968388349217985056988271846816735884982353501142585212764558182313137772723168986413555908163160866149783969797709029564169223209914116370806552945806852723408425106118361525654572431364922938478819086891322141060093223114154426933725457274350614679578313896556846705657459749413521286258033468202522722814145418272313110401354794267059917952370093873360722132037097011684743648470735701107214598440868864628473899600612945364692018995845503218321362667665125315663382332000493375762346000022131106855465830782099192807990368014255997104097846443007232708562407738900826095788128069656886165104667167452532603187313149038276113263073714044640659260835225504460840243235221229649424596029757912536722747462531894125210204480804930197708244721380905416730152494427736703149125838576692597705903072499281920501687474870832598850813355584778393211948821058422033672684090707972904541675213465110240978649024621806692724835652318797631744709846768583912021097440257232160828080768810615312311249217250942671884758571928140349102516882938729166973270002110668962690102054573238478882121185519984553296662748921051585754860785326843721805096926382501522518261786056690360412778529803316716902150152416607312740994868813885535736083294727512964226502589351483741023538752080364998768443379478415281299506124672597291163245060750995182601780158214384835255395600324824836234648164042241264447356598306797444308607726625672652916058815284355153529370797854752051517880813293223245310346489633281816410933296182428410271610163458517248282803748170808077767547818257640035562277595863838401775020034619711462697544564434277695052266824278323857254402490229883569439227503633921327860009500339220969966712104432567550167289945362855414874123815830948973285903228152619172063559900055804343096083089867066031436075367300881201433788820094141513682456006977675325244269074462559445134827142903043150470968310941100436879630517814131018438146095871189594776537411905159105663047688608535173138735226078159141462440268479319871154606555789930007233177370926931009160754792315507280226036952573000471932410993095681868218035090564036513616384342935068527002712128721017491950729116951727397777773552800299764264059063229911187098152926598724888053328871638499989316937938440824534568364734537175517775164923240839060865223478131787010890335532524000374717862722779195092830068203234372998027063888002335935332987911610330244958435367638366589546089196788350403922248038793797254326378760749597077734547111655703254774378886393163394763398808425740116291754670887710456357973502177977129182923539619460678947648140780337808999989912028094810316503962397213801310298352775478109226682373773657639259802859168592336111824566320437228949539154578378013423059186059591899078018033031570654105261195144510538650442539219860339118111870621565915719248549826886406646539016038488149872480209518883095242020962643425848781190387536804101196528955550292164874864701367709612540241221294553569456366181182154438684285520544743347483331746138064604215905620201462587798625061848060051718171069300240074364655926227334574244985395206699572927830774969179197876413340543054900388599936713648884499138727558256646991365848179628932023076030318141194924364930948852121980432184251840977815491794864230691765802717280181987657187070148634964126222407514177892062822717167687103532486472798811996952201874273173904783865839036784649858943709658682293917239433638825781963116184355079245963075516576089463830953011674138669352049031244684558577560036471867748167354640480388128986643218414616907664581591049171016686338346572108085825255599644435491089732718193538331437126288967679610411384651514691910146212501839500480681464789548471966846271427461106945397710382432325770950577684503812468091847193640759581877559964773695971747351046726703583826031371794060665819660874846613374202768993676010700014430180347341400697330238145050074264268281239853735391262659238521938876793910799034056996806712064190315350877100055718280778789421596498823181890843798463621862691046557281405309542526482959977767188603814739345212907634365717133208658260314413849324350708642383366353298697940510951777029027967249275784908854091939648720180366622077508615968954976279015690083236442031153875293408956847488419912224173945992169091126476261903283593802669335760023007102982724188727162074148592132446347567866085116620197799012815922351149937384398096625065636644178736368439405689041426475425006800920241002244658529176399258465261618272351197438746580611511549059733512480660628192026113661612956242685653492937576297700469675950691966384371288238654975775852279192275527256856151790062808896797515146986858327961786566952888328050763952311955902284477232624206456161946445968417282745936926670464190147553965835934705684713079328150464352869629898706951208495825093415548986319953765315973456760053123844166354727825022647412531849118496461873175643677731282686178005088042465834901287254280792923038134516299829176896811956429536235960624734238252339816854906607474989631503550414984583775819601123024382751281109999102863052343364549418521848442466875687658271084712781744981046576630227113376495672436489438428761202178556938430708093759435915131484233726690537471799009192324879858249326769400463613775323666326033408748654324516594503017100213325060674569855938679612480980172066736280079185849303017490234362373522067162969365134982056215890487065595657342768233727618173816576611834610211383562588547606311650609650046439098871435465560609913897262249012733934639094554087820456595356474384320700736336633200087231214544376429408392932730847960083613162843916793221610336695053629539723729469704525818794589276869745263089105015168008279426298585553955457333718935117268929686679649117430484548788596114433334157441069083723249526219611693814440418952437525987749561006749225169226783055071930638832973325293209836544623398491826938580014987373264882542902606714613154834186023972925558548824931598288022608163023935502032594065294640761963650652717999234501786785204027185258861511095950217356195580658038437972606233958895677932972317887045560624483659890653725262055145875510706490885735924970279753150016952863395838516062230290932283455483744425505843409515801387707751936971144748830627760821944480168561034887618623147767232376136134061106229570086097094416874738122173930928128204646105967533501530899430136866860801662031406498228555988647169393577420775265455969914612663626702424037878201904050851947702536757638056463907698294891504454811609806682187485336853072488797885751966362634595746229404143981406953007151966328580098914495792114969280301578876710856477655295940797264886505164773029037747960850920078242586805987091919090618963803416830873562581883517611807329924426682047145141598010940863730968307665670054440846046229541491613495988113245901954342793533319853772638316341404381221966423335074566345391526487376316790101576619048197356828471645430244414925500263724807628690006881669848530108921949907775518010597463889930353079554822493318811980006338325215561752171588244617460888240370492199127792733262536063798366342651835901169651078308560287230105631977951907974033803080315093619599608757329179077871541393460864614750498506974576532043216942420798091389545165351691721869683108572808442079277480676714901016507332991923633605836818011930330888247061108575043227082929020281364760297748960347631730445731060161573023415115864453182934403368819598819741903052940144278616805053596810512937123471885592462698233449804966676608000768287431378672450718318286714353731529764091116765440901732306060986966334028060071586830058069453117107447451310030556773573746418449822307653652906863889793493671585739799968592460395006750205407354253231993454665467408673593735234777059130315624153252518423248435998701645328365042147671823078441650811746093361828988828975152967647465275999593970793767107853391597094453918507525885647819603924375146628306682727418406312513196192630565100468898253647953987542616403060839585527381178610014303510711566946807102699009980651493049349311858470422339367683440174131753924287931951957784977834735035285351333777642507044036159346600523382686307484455389454943978059078191918453780395770640814303285059311460053594341260451884963513241244530641142906002623682596225896322086644063546964062044437730138995623747247405559355251221972319255514083163358644007136919331001342369346910124742171907708632573002062821887686909514889321405220858920554981639198517693321310143106433589628620341924774724083761584928045318707594506242387380539577061368538764358398400517361661454853598358296837141559044140297558897576998392025758741824080395772634155873914260112914533369598406570414488613502440474215725096281218718233775161885705187715416407746873321313427706420723620456202538960211243405696623211699413055068695157247091690428271398706624353466562442241547006449495366269791934299303252937427816234833423543547878651796840437356994607419130366881159325445051792998429333549806741727363643735730335403094356121118432049177281339109818595830213962480864091428574227063454631779543939456971152290038142602533085407394011265977649500246108385467156272465187734965373621945985196783696364360937761740525440591753674465559133012536836510298027703768929446933371303616398203885672801605688878070440765965351188147689384307052639911806452446624210316505946135871239151544456694408789424922602067787042907100474122454881059004066027822134779417568511273975252042443492698184820099402814751227654206542798441465369570783406705606448429123867728296958798056817622621190354177522835063163138815792217309238805698569541615364541680845206664771755466584099090972792697206660217752457872777023487306707355449100405398372640956071281809842928220381796100215680353240979312155746669534016993163466997314120195747358942062513887019257788408676904375938652782230317220451999351590633529810264118885213747502475392578568219574492636655229316884605541939803145276762740052584799499951896705745443322823457443107855814643957225873412216629477893510487409523629308795976032587108445022165419629670141026755607857937141903731750591927277263790279881061555940108171826297793717691746185702783183109779654247564352672077267398480181601140699382743202298776166888394757320248671966475307808338706713121373780647876301722776797608414150693218594728646698199261555444520988700942579532649224711625143992866091255970492472700524547283496028315079384498529197843979404515499463659866098561053166223047061099327546893651788748983478375160934709006654885128498905761643158734419274981876497548594290160248571909416648279351311016356504973252089847856324538709620085241046215933125613536417479803539805105031848756416416540184728240107186771997370567583668858345555861063999462817478095163624398227894022236659713919199955919539586757129334732708099395698621754616981428980654074335969261652026269915428641974103550081529714428356481916478276617324936907381483672820765865975946965894620804592134548635849801338649899170725609522766000541151642591132807545770922266130595910029353505055630496597840819369396034722856996511546093281166238467499862111713940663447739813746699140764654290457897503503840905173028205884245548644806891608021391099814228388999517093701651928346077606007145766298004199928858723599884201672548646938666097188678475134176116633035829464145197187864656514562042314058124459657424119724796309636180572162468933347555287546087832902532681796602766034925113814190756368143608063101276929158379946482160006043168886326852124776430973899958315048711132437290051478732201835083616621794296316728073037431350829760812586892138895169929704282719133470978594933828211195234324737277964533576506996587906465002482280811813788230763057929821735811090354654911514816703587088533171373344991006203473640393905133743726662898478060830622344860101907990130815780283377566949539714243119234256393860405126310628861779892499698227602607552611902980410815059325906642721138474774861075398845163786850514616868812661110457663708335000990312356748346606859774606226670138985365813180082960586791184617728377180557609632646996350380295736636161713935837787438123704770771605426897147031159476303945938581214559318695534401558385960979582985111757659703520237650892151688298697786533250394517094874971912144229255014473524842391880999329834459138264821664723700858924812203512375208407973883857199523597929910626425739489447685239661227566650043921261841683316532191434087098509278700083020959419705178965798553664133945395942967321270928203374134805801751936097653623775939969744821709486411642425077308138738514693052102601380538045068711512355628484217145316914090904031015764046406016167082989020686004371652956927188149289224266296192860573168648298746180786871727409081232804825717352988708597002796172007730073125786772198030266709174285689407612776560812402905723770002295793318133159244928127036346000268752467065362547824570377932788431542191716660048963733592057780990276680446304603482189132049515033096205002288070426625558744204508759727527186642075649210062841551331591000922349735716422505807499704777081340682680667852437358305702391623000902011696819074129555766858468074459357113376923585688681215340232946782970454649825740195399277317959584214467679966875814135187912570592288548334309973836819086235062933748409396174357594520706489728353581339601567606034486239249531921638750380948964780824470155291340757599564452719446172267836424603488726058114895035595048339930644323878590385620476237016433940149264569568232856972672842768452385362761320259417369292171744143576627912037694666180848008358405771670132735163924084950602409662038498588114736107543705623792884109424386064832577591933558329043094604678048256896777942154588580198194828498670369494202257894930099109954524196544156985117399500336579651837319505951977732413410282095191058020710853123398101957152823586120788002293760903877330932876307197489652071916272051348371020394714444084172625012639583311240350679467294984535500439554026419192927290259271175892572241999095034789281385737950250396891144126957196557843449915328539027391720376077169040492242478891051987164646211312907658460714129587528201935432436040624240257696864683423269737491539579609475158130654082794481183202012231589899237615283564067948160121804738643414834784349760150501186738999430916944569593406471425949739122757378534581886489760940121163794762983553737981955027510757614566506824916661764338672648885972183489617602299047638303534102457323757905508841542704932879826192990428048895551091804103128456011386176283192681844534891937937216419709750063507248390200177524971130237959749672723102253963974765277016097468393633444250653249302092211687890732814267643802514063568173337210382253032571861629102225072407678828957726959238802728170834407967085340080848101636974600677806779515165092365204003038514205567729193613997390063645604827424233611724460136393273942101448339869303586987178831553944115143309837406213322410374989822573876277196553552304678502251208476006905660151121126093158247746923060602105841807466693668591494163810287333741999482706446087349780656560474356179609812187788342604003116461322982816406125084929725899200337320138852914556177534714508334986700103321969084965954378263691638784603808181546112632117709235835605395648719400446231269651290501969219882108295023559064620918092681802035342534968070081011684719485220287980045392098425729084857171035489927106868106714928424719413706767212092580793172563209345614591733270880523941238897346198463448837971193308726659258071557030255165389141168947671228800316497968021485583785476974714790021385169754959989597651229636115902585266516395555153748771828760549261703211233876322890973240696103022710237529438557706212311853840903418647646273281760760774501283072500765504345870200139930833225952386444867574251540901543935924425245203728334662999895684467898271084161431202892476877027529608816975929256725723419287173032386779976209831641145284601340817188672359163849292421904747902675267585615290775369128500301983535481542010555407544483370777937585149709522042658287297796038772568226360890694652146377808332075008435833052934037228449438106983030701569365708193552623643621784503055790765467986074989686958448849390243423530820811162677238096076497618932151926583059163631371099453624621414919818469890984478109160503733312818574181793520365698571496137967975691668750083154506168883847928636322166368380975179845927902234276856733218093447836330146735512852290133512758542341305752733032447705559276148317039700641187790366161965680387310597622799032725310156517006899088432346978155960647432752483232109152788377855234277909989078996588720168113333453178662103478193119600202004823448997088396412057301563623780271162989991237103522151314440653606638608253663825179774131270088649088915509535787734866805687455223885789850522081267188802162337096968639128509643980420309558837463911851300126526156993109090688722703178609767540169199144558680414337118139569573586866981304381849089977069042741273707525773177378055311649888096322354314456209521399903420515879033433137782712063553941024202039565360980856371380040033376867956083846153115219059823094854757208890123941912658833173490025433933697750526491877321489558557982492414166860613417601010876270090290659391917629039312435185581247333918155528309061279717504519953378430585296315739190032848636506345185223459928737292996937020548715614716465639619328759992567383019075019235031694419768998195670125140984749024958922620587197977900271486647059156239412343445327516776474099373492811973224687215893607136817550345755296535797267454685293665215139567088329856381707148407138951574415589722423417793467925111942834963204821010395694660872183719945186824066593679393285698160876306518068662695145390267140230031437391997095891377810111753382006336106920851862020603295532304375960344697952282788229191545984978943426633577395274779736533448476470236732205439267483517364110545975234387696643928358247480052503512320496164409041707954415604871821144379685477336088742027377509066244338191325936826487279668811902559886878448286308936639450714764396400952441195797874560636756294581848379625586569148033536366765230977661532076489857441418158778115494062310781794363752122265295273009888616525418537095051942483356319445691178665559415363569921974289599052001762944608504597955925151493921893489779435807897794069970931056596274788576991536468773438963601301964483825967681381204656339937476222610428438306571886689229266026364580256654496967279328814058491586747411287584905731616389988948253094450464073999652063492214748439941924288969677060938513573273798052650501402194410297560957360582809431356603901230678387782526553949390700657483577964256048701920040974381535050157644459875898782416168170853283765357416976436880912216536329646912856812669154768133932436414607517132476802406682200047881005813881832716847608328904185218863844196376307415457077104341309198462471138939639641221696299634325226896438592452867949027277752780307499889068773140277987006332197542636548175878410098815534988431884141802831131445798604394845223585419753541369034207632677109933757532408126786487718782403411958401306721488310961803617821786756712115176966304727057537410314659879137626648132863258339865331525411555489715877458327028759708474599105041608819932952895854104185033129561661965989854495291583534516414909083204940273169605782777009142110811023818879758522210012254955851421337710312678928054804682133634838722504314237188979921779929830721322096384734946684766837744563080917597742291722742402939153506213826353398311861899157004814393748771200027902928073248146308435303253248012287948523382821603911591419945615079329893979521627236425061416736109273589015534692434228653515621434912178326476823062991405671180949113028641528915125234915926481874481634284584612525705293318800018734274705099085737443746250820678122329009118871002221968075174047936122516793283791407293595897292410148375350296146129081952529932077055256790234138220698501300785720057924369692810584462475443974958740516279543555273565931524096290599746860573423729428940826818736163444915818025638224325314439178582711577826560543514422668269913656431758037505538783736513366647279415080713662990842901824940788253920835483659111021772172606026605653117899928330485660500767987842851186648454656185160730236335883417093591261738998649950135680025236291934518609028213764586555082503636062127474905903836355859778408831926113098638131793576869221033602373437580726494827423110365599826611628409399019246346517537877240947991246859675773352827349097774794170709827776662241503186591905693051675000023619263146370533265351939294737372878702834546565073002422285277878544186167370415759923348897629304168063748169533523749288202908708109853256759911774427585819846892827449160409467235809743084502151653025734710036146256913210600142065378487006997963486456600924176667417766172521493926146013602662527826889269443076186196837995172493766751487350166338234342950239403199443460085570654139762405120720087833873181169184649806755486881440862425698164572930902535945491859675660442955821194456797526561563402449984148744651389358819550439378491659352957792843227484618294121186831741262469294264483603942046404159114659404281045708697056630723589164930116513265281291909492831074594645140404441624335976606606600351138623995751423236524537645974861664815669572557297286935638493696038029017774610567633797497285643398325399271520406356058758348537012296812414054678078946577746906851652805019994295077349091055598270952683842710942234054716262697172492035173527563861348397015173314525197222844450152489507739269105032993244572181072937321393601936510202172285837008528118966101200886003336186439204169573834990785455339817355770872142564998894186704721398294623380364565904447365478849478414702213214321731936278610789465126422393006033747332818200322524154035809647530730222171129517481817790135084734658831693105190907677852097534900516184677309782337216895625925543939164319125579771508309784872598095690290168546061976469269569829230348298778149186192991269660742734579238468782907641628860289294922015970468241887986571398545496550792428342343879541749179389360940051212853436961592083414487614469557302886129662478662160174909576588379063418722591358646778365155049777782538647237312803586986803199832965487674671137968738148473675640891275811759249380046172089542780816244987636136152914701329974815915129089850575441306102061552972137423358076593908090867832812028064597938993031298694888337734168774194347701180289306515417030580486902704333605593123839494999646804177752372208640256760735312810352910490979024520110494252930866247763770978786620552993272166877750472598280370539647116760244127145210445404141165794131815470485869140455485881665438579087219244706627137116033929251079473984524744106205760157773201774887713605213672053553943150608909697756389829066673492174238158781588503946987002171677349561872678038553075406555758394033104956017761773973934463227888035496996093106304311964547027149583714949171617738390718915921868712252611721436960014104822170829612368694996620920707842882916939605629815868847205285671327637002622134945539265412686947930211850932789232476239054301319366027736379331343137177175132107951373702916343419294828927488054827823221522992561764341344506737619416577353911115969784181915628978773775738800505760987765871756291813490284794349493660188292124978882430969452236074709170841923869270191386185853057934845828321199283078034470513639012382178362043762855714251487661713158432634759363772808412960863836737981991678378334253649040213653709125085792443005160893997467037056699169827153349712005650232744550087125268674543416410109172706100656319467590109666122946009176425176624766175117962608882493698292998063613429652881246865325109416648837945672603577955562604322891780036348208157557074605382293698422452920353533783299398533646716196457621870227475069054636229413856901821093878405376313577139108446411253380815008573142974837697919621040397201670690386559379226469032867890400476793653724134548113911983281488162312077011489518812110725975783814632818863470984169090111956181982385584550014930491618152430587559519511898636914715273959022143258274300489225205744700750320871091700179677967183023528505776278285169488083483064740960315258279060987272273919369774136900937491941677865614939761657949808002961015827396061333058205132143004625009051693944541461266391039506880737002964291115174348428815448707881766333325927198727400167457651179883390596666915557020545784679579288163698597883758535501840469316324059996755478185015177873339050782889946115581277290220512156120385034291697118632587061236998713557848557255904918881128728539307311193184171484648234932781771673602443334451196964375966769161458425456488333935635272042695893786006054014605608202282239361267537231095448214210611675874931276292831033006650628312136922183070826587930390253995655761058987535536595429661545940436782759667739601261068085104010078032684132523969965776783217831677995644292079045689477383479907652185783743412319654537421053190028292971942406640131655037039711900715210096516206960116625488428506766855383402233465129241511540031203412311211243910469225398331278288187489649924946344074294004522230165814171133899627080974948075463586745122327630172622761749285028428380620961061599117240998549646410699918105793597547785650802698401429869428256993282438757256410592113356992834411864683580264154800274604576255369038118747811226319461098357423479637473985283502555446116305146478998076818368375534459650888558312938710647206215298541257957472976566353472867136381827003717374579086487225759692495166136581437667260024992646950778088239674476024297117067218769467722612793553554977264719980178735107848384828118271535467992160838935067495099408394254063240008997462404642223505915181419971013891009797675138788166980254777692074289617488274742787580215789340935987096114160334291587908273121110017571726176065923813188170152698068519395697988334248927546420835649879217068922208275245856481886894768316095689180178405148691821701939484405917291587497798146668872408667308137142446520608164985693214970232787619859021225673021073279698958900667047265088692568632131661559842344927895761747216616975848296257685428819429468674644172261452429746077676596763212288958010826336042152528012170285735022203343728478617154751314986916450112946645221808643354434857850609128166306206994873496550864664145743785241897615585633055305341728612005602068992601571693984599882027751334209765131651531989709651043778632027832747736387068836801662179244879049186204393767377798897790526186449969249827624762712463370182752742007877285616294993004539127597182374587278274651790485404765467857501076148346349061230601074207288777711717425646489648969759810042708673142162799433950257727191255769318980071458785266109655865270273285919718814525669393024663729063748985949930195954810443658256005396817523288231719551017648211645671236751193165866897339939975380282653580012760663092003981247663748776121484196182588232034288412109990678361298645183903282591536874533143769610534563465165103235619808620679420584102782496468720577354998389787482044054192743092350764263244970300504200260176934698437723544074915423528082406987659892430249098364327257303941513723836407361850963639958680868323531876438044493017669705500926012535135054163333050228757801222480418325916568401637074827679653099005687598327339512747901328907182895384972703494457904702825525513655608054511780172017705708915048038926425347585202253718425333631548424290665563800050419045844401191986174462606173414874444279241834879090360731162051505324065481528112799158525462637564203739840943848662775250279624728809725868084289641764392331437722050370404236237403730858039436252802145539738579859483445596670239616276200076401640178110368831648491209807017515235564120485804078822763516094930302924445825980071300115166094597807261085141886376913932639430683771108544727831855443224813484590126693324923466012109301185415350602213436646246225395928784548434710382275676757823427489582804501701124129704041270507679115374798227456536828501378173125413370345901384323841713224520448335357620778417395861635507493694392624859877530967286148707367128654329470103419947158030810704200648533651217153290471245340076298887939059263427175442079211833012565177088320473865977273479627354983392854723492584682429854487852846389523110095324130091869520465431294895189840611826589586610828826899637561022995516077385248165135353070162747428477004978308783924000016203499762336082351110750157852131158939029350968318918450992115577609120633457274238042795172069204579728817275166545068415152556207307940189214537570514608235401670905134315544188658978766587509533028528297373952451407730264284937253074320327889748196397601293486997882706713187022219243073894701184072477725845492254283670055595518101357169860359003949903090818830834290465868145445439336944919414001651323975562033286490286382283766582474598469604551094024910793185240498968193187644455881979569771699895003577761081017602992133063295206735638141066475051721280686761065395436816616143754586879885584844932854506149157727373663437893924705621736306153650965723316101118948011676143554055418370102354868512629889949881615191953311378583883706344065676341904345575878194994257307087241852933956055978864876107375543988040360765125405237276444186128846462776777741865399350784006228512913607023909189705627315723052925085433180227135562371093576260670384921322699312907465851959603149549339069282282944712549466887475360113902769797026218285138969027473099478860248115581607223979874625164220807950026409648711913996418598942509205320598189202990315517527304610070577484202912972745766516144716480911563664652621336275065022555660022860618079575010755450073668110134635578893999988161869744564072505219234202990856575602675769289194425989132519255098007353015893014611762384347522145029663051887066694546224807794934213527232145402286829080796250289311354799794368268941543563943535753383815288175878429547923592724318196750568089233856832430241930430177133600143375889631893997296619076310434171235992762423718549049803375372530373407839004581748933457615863595228849733833618830706760948037670491463766409290226446847022236141195470186589753393565518164769964661454952800210077444020853018590070890732380799700930516418032415538897987017014487911464166051125576939354178112493023809422708020429335043998174392483004958028896625417668357195959555159683103918108221922692335762118700139960108518301564202403237318068946373363108053953337114000386179669356617854613944282439415030198262032380180985934115599005967031592845896481296757550035716158171397490955722332974836824066004289260667326580892993639228740996033441744724604115039268969112758188412971415317156707964646071905430918048585621825751005669854991018557131066981667180783290789809146561452289428689455234853563098975469338324450689128009141949085298370056387012715556225675342149941001634220711312924202432981427366159992908275723573267108750755994822056930934569184488219558920024971493252695638585437077809141503126833457392060649638825496888737197816271073001497623802582125288035288802794401700736957451486205224962570762686488898506269588080009552630167506310584987915723152866756789801999832065633007088091513391347068491842295543699412033092964102563615471400006364526033401673531373546999871083734543975901130466331410081282874070336818376228442976096557168620589166768458577234378691475963173356181566701052723454009879232046388207236727325370931132710762702920367550706567247732563306612755161129741203335661749983052307909643555487823119514275231301768216383049988922699117961004150301900922210972279812294619987672713472975505568624705467684690533002786954460183890346977277397119057172844062894318299991748085297593067524570593210874406022447859217218445083331401978601104205734596245688007344382971038941350131268400824198862686064625966883167631032029718068631519245565510484916562946762906070757320033904408064878436084818312083909467680307423260083037531089436509376419663950439552440194063777845780546075294141792651489609029578844027657245869013457993307711996815068567044268120470813934731254524380537717439335414559174293408880323466457142722162903682359991991667093917220737490868010408101538823173955113540353456159247211250188215602578115603361531592513741459517393319844393116939237414097861277040563088319665989284421302426716717092505150900296999913956266529781986698402717276065307916509556688228275001508369576975796316243428233981361445061734434030122730170005304401616547146863105332256258647604975486889364474335327802533615885730267883016486388106880774143272621177174319221659136657122420272566210249219703344146544643650769519969459236171321503493767970180423449308580653765039889483699854346954077919883479342343267546699380588316122193713501051931246056392634796964111342618044868669738567106601257255831351318379689376656520559473007895368930708405258624998303717497796513021741707526164398043762720712605261160567985749408911538841284443660865379521190053747324571420714431393458334276308940981237810400697607704828883148873328756075713027714602360345021338031549073982423544619701383472068314235078265333495134590161623749980041122605604294856353867770349189163748417396222595318532473452673110182360093717451460786148609367682010917612649694173848535046848175141304130710770193905487265178365276908217703626829526657668224519507874485729511667994687605386077491064312918031010942220896508926713120423065273782166409193520652824275700436629751016858574473088072073641849254009258209808950490766405558593776349685336925514677656055222496922565115120358862306820144545658285643712102678010016765698953044016003247500625400502251637969729107805014099469074567320630175103268484593437213711817552036590522751201192839465007783257399062098054451556278481528146415939913057971170727025474259347297779671558847890304243617105892778807900809413696923302898558075491699759408593065303579722284074067029353564327315720958234816161075463994774428474144387589623152431807152373552347707437736763546249971821925638845517222519156022076528060872849415127103448361535287888321913707635074911111804513551474969707749865410409274118120051073543684403477172647420726162670470578668179458299426867803918869082946691087859452522288751078322611626896483257767985623481400693248347640391857291959440922557488052956663056073066705761632394096723696170277892805627979922747342388595055070406957356766428901788813232718479372923218332564676459991416785578245724083487559442572597847173428017401056362454292320185738231228648531206648880941549952113018289739119574647937635291738110320537396055536445206349041697345855439265498289160641116701619312307901129788200302027676308011435545482288666039171763892709045327161051289024814927017810017107565285375065370895197647118320542860611267289045041374223229027546267760164437342468668594380596205505254881288528274529525488070170965984626386651625513366957726640796213773206855564480442201166822874435696283576463419029765749563067947993944940614392533126807939420560871262566161189345827832239963106852845102718457803954778046853744353350459796645734905756642771380875705682658314081394166100722470714873798987957225788945417532793668349850546801672894632176097981155597008823497303165901832058060745068378257764136432324395407678098927948388498878102719345778937647104754315828099915953410460877957438867071483164781840126146415177023476771938528458739053354592865888701804279434965652661952183139755651032185241110587827867209716379943418125787246071004410178456069691318116489997652557139642722990049063564106450714317924297283200618545305590275735486350167779244187950951132796906209447218783808347927252445495060080654404659039007907933693032726117520551121835992821406491873485784916530339166409779597832132750469329810190644841591575250677780241721086579837640229087493683217564083889383313211392701921179488304277455298489000456017802939746260895774704810691319093713244319099183489842571509509579952306628059271371221935476353875127392197480593871266560686146604281553505260069526502571840007896555836232882833725087045891520946378406239999418774172184316595727382675256990690939893993981710625221336213711386473815269040960412998793720439390466145715356790305229662776522862198383019146801581898966233552441562447748307302799763234479539841248253432862313059639297315531990665311683538118612118017887032318492763040354622468476203600342225626723210938060633053491555628129822517766847999281026827193744522285829463465062168406677195684819432712858171884500096584907681704728438233764408437640074077374887654570830052554173287441390352520395986772747997935069514294300380031323331373205997199486820090095640738860697014207747820241379301537013377794255223490878665143120048983578816470702457446325994465611040381237152557748136190960353931463259856322036371080311804371811043764769707679714076485231988431906602607405395290791589134764087342434556236962937440170451504173940853721930909273081691726102964474029512433005988922922815270889485449533933369802885098753317639550124099846099438379857153758917248127612097791903218578714558005052330790926621794451457696145544260382460748184868087277962577434785371639532211645072456725093235483076774923020351449440718469726341575133106896788494731584575758556583478927428655843370333782261112565052741183454601319959288779297838336766890387352201493649552341427438126702653524278413874112494954682318831519887316095202767552526321013168480341278222425922777335780050966156483340468375101788805532432733619824359680127048702521249080482196611836781934873800789902791287899609731982669721054055558596262865322122310809648380417105503066279399216061673948523571068240500222865080805707455052528370049660675260127085344435509539977137145905704264875372194664851862742242265353557853472191889208586883289658267123132528496030846312548232527423274783797841540690591227965635246599118311068637894375917525274992467041979354151746276980808097103506796121004718236204881965817992784569674547240164553836881323043798708361290666430236475624775673513125176323783632749489021490987800888350419961913287009875230050336749324566463351973616599433324675260810005612165583182825079667942966159449585957880020071887295621647178603520157649720311959120595719251379277254536237614897320640915513108814094001693565001550274723847915365904206120175093807733599270294557623071087561714992174700350480670700839332765096030075569187516895929187523708137513510127800266534198932314165159113544014877920332564512690392581447457328628793731126330274837814549725437070906258603920246457557326936669499523884066407993615557832400015555500824353706345365643123372918826500888852189965455441771360350585517268882729877407967428967486746145178525422879092221193495786795600913620424082866248327377935795193011347280656641925321467163182188258210551686402557434329048204164295659882923514963684051882266782933928717278110589789331281625576633955018533497448774495758956116672612021567386085765999613194324801773052408833765551483049147862100572940138316480747623802230729351686770203471985300351184960955243377732784442200299535088073989167227215939663863482845217444275914810078374009130675981156127084456867419913171337559831417215282319573280958480327153567919242390408885472674255292019831490757370521496930266890758992293649218540733927155943949168952321110386350322312474465231744534508957167154692604234771694929434579663479605637446130164094046854651859821608766390228835870292466450482803664968376459347339788132086094274047762846917236356697518905220517363472843176179582962957362782132247564620554985233316162163250001666049695877327207000368758637783990254426529308736392071228926564421903935900075385554826294277025018013266197777800881530935768552891901404106834463195951838005975091760981448643207416304200013310213357651739787644607570517930158850208693811437112026746562236675895832955768481023482680440726519821860747643910371681299876323637784650843367844819419820587069653350412569147682157212190755147686883631073534888711695360877262013167154903887143433216094934605843803660214382976241081036597272460713661529283309393592617648645088916069089246700677594087892405099978532533299939883181322752684152239411705589487933599968966768329771498503832262213794789459618648294037481876536864185265525080470770248909657644186765090770011053626885181803073421158041998262241485122787935835818969535209793932540308303130560850655886371987374776000255780888073985056540962582309914562670528308801062507242872139477518112414391103722611234127907783174353653630174423372294028752438334642714393558258427884750531059856868146579861031704484396819547127745906605989095217052033341042217137152960239319531489079384536579624595990464233558749694450599138336740446278086458574581775766035693244256000709662399740076483303938910080750409918971572406059064853008839414109316173151641536612050570721789006824289377920710569718281951724066792029121203983632065742983063610931846087730772662971826292977547075018060982114622170506396222562279506813567382773605277457894277088760604170850244025510010314456808455618917726470917706992671433416215188862479475928534972431760366842168173186855531569272961909486884867931974769393460442161054468986242020628900482362042604817139775841100816800432374391110598523527278182977412969662481599576764368350493852662246239311402322096423130456254057766842686630625232889967232220611012283578535905392552642282817480044021792157036873700172248064674728714289313140397478412271428726260897212825391318602095115156472588763856677527890579435853843266316900139794742907237894518326421124485311382138495821121569683300741368141167162633168679275558749914728287741493555381448458587176826934135501061203682012819103398414338783277687942076476727121713078706204861751588583310128659392728908004792855653889386538092845949779446795810457899894717398435468428381134700724206611470420154805179502742402915577228017667836541197925208703383665967843359940241683033629324458256874134411733004004926490015695007159012279763469295254447536696733068025391244782481533480184602719308311489618188230064095937408148407429891366461337299439359659879215675884687954914771799163252719261180212043512270306540736816226779199137003745375941386737378354063134464724120862841055185588347355637652675865305621745918803137267869987427771705301523531730989969693425999930109262250254513558515858210982200625767006460662354763658612161383983326891274235503187441549457838654488165495866259465807170356181391540285217442085446890617521103658172821926219003191848059023248396449389270598703735313393282718774435324521192688761015714542895492923924073332678112819934344829030079950919472732879538486920589395619682569024956002260377958158909851477041384097318701988913747516168813176959299618424328433591820179763498793573225915574551850395102488863271982977386871309613343196974144179301575770639597431779717854814726062574928397490277750049128756303332051019978721755171126829221858378889894927454162425412214333857164310829766468427625630666728089588806947634681482144137316963731961679094462438575145020863110589710732561378946201973811885820484661672842748228597637158806265531465839448233286965538699862315383640199277616984578398460536805668365424340031828332291225753934027054602897665449688891735981003002075222596917967006533015728160117696600893161345466432009529100645933672587636267480964645261673364685342407642971344454525529367003272538078811875845904849436979604655469621931319959147662778032325210008882774878444340846877258181085478635958256027290891995453635941257474267801210606336835626183172409692367233749687200855608557593285999013438465677090822928721940360936389161543108319073672383693800362835165516928772661308317675392761707027400568521588319326259391241370782569695359737336984398670819401612773669701056176738290459990216089721611272172911997789017710320761996898518656504996364851237365216375501926299103671958659170614873049258385338964052523682480128841868484511854126343517303114137789114003199250508760657597770020394251075555372863718833262920360608005731134690127988985217665840199016264459532533957891653118492598738962481259666400372889889287842707050044200153561117320274810074500224671870173138582499646586635224649316557039300630129357432182397870807838570021060604585676682260798252874761431353276685913214936380663878736203059722635241782750253685110073788088036619328966290708787266918870228853640535710145924260528647687834176642944148612248612319340141262506575222453288219489426952835569615193628655454034945558505133884895726928402020472344263837146110322594875977088922147909067595403272840800362736802184979072707014096126356274786703262524152900711830121042769007830741023780985119018448475384960251131587972812558540188755321559144483373188664101331029299294461956336747350523790828269784429253310682140720983353533779713931769442134373801919539827651454900941253398609612860080890850053217989898435341001971094592244404303792625857584896946884957813339219360955042449190660990863793433019792462856353017142552019658889452104167730796556936586763498562141378428855042545192977902350965002396245184918574563331510226614392231205659345704461902899443995003618614504053866239689040296138481662605276862101565084569834921830172311632706366776613121851199334420044349318090864624993911264502187068775015516630312098577948142559246662969868323387835919790843003587371147627148129936646615137463724509199969503012743014437118808711984963722020430100756029357188443629238976275307860813329981303970261640514376737009551261764481880353836254863140020064066681365267686789269268746943541041332543576996554701077058326659683289862369551222882551996035882324800110009674095996800371600192349902947439665942982232694111557141156355691366303037904409851177635352802190336239868846294072405766144586668237103284458529350721322122002588327122543435404081481361176161601353299495934458667256875542478632922553432439068309505087325454745974361441727448027486292671146004574487283629635889840567323379761684127025897703826747189421814417383621569120016853729443186468127004617069893846740997722820945987619824848835036155811471800092188726228312340888366037573611783298504173522770572315007078555500480780094204910293186535809998912809914523328228680262679492546718555356532920831761856736578065220672803615784643609627657345176628015095954811379998991446187344182710142311667278053435762298625945522160226093331438047391537551127039808411350112840461766859385734087342153895290746267757453944393208276143849729303941951270884992293439627685094685931101671189330639512656262308714982717992922253688924256785499881856131169429099928844470766059274099116872492403168660612697985850043013938933436797178531098208795132234014043446748097953673173761922728612428377709305673541132092007639143364111055719812136815619989111710049224362557930028716877439812722408102105969858392300331971656113808023233595525575154566167435660073689791848794024211283221062699900313916679335351013581549221557977632661943945551666573336916348212483883788157131058572935440326875949913377123602795603618115125348794079425328007272579158311683096611527963214831636445297870072110799381316633565988089306563436636067540318725089618876358880877575843406685986769215179327930966078587669203191376396735673246814640192964229991048432970724383106189710396455097159273623187298148134481266829290967289650416963749041708710839152671016994391885479940534820977785261137792275895498804616203838225506460404065162274697143233141331709138144929463298955165622833797315958532305715285981013713278155562157160036808454738386567330695812007367504213416465246567583725295602073148899033369171881164814077317100770536854042136137420656031806330685853392501271623629080653026716066303740937769106941505109388156871892125282898180353132060545674588661435369876207601995371460297288010569238895343786803849559123838191392692973237158167448061253502022379871350664494476596670992974860786316370443846940626839474785465227887601965699913620852780835880133000320912830588470508511861505501525114684458086550560970256181750248973476637803783443602389267517870071312024812230574319820893290191732365536474634105634151842882416279012294475623538610339985723963475536761341651957517333758088848105431560083563582075641501318293970140727140013849157272493607921771049209575269548271111976221778819455052074752831376217771611349222949986877251089889993338738717195963120190256762926668655785801924576094060306762962620303975177119476939148289700852367156440651563712535219040902094226309470093986275952696523931378697656494605318685667134297944556745322463112724205598436769067447198220687910589773220977948421466113812977406606184680627540241616564641914592017600764920786412042575708629060733137502334207843068839543258324877486576366450767337319415103158137296356779428350096357375011098616631755103941669110931966351215797124314429298896846810950020567477593961568158319433887130378893148868596628938988155671494252152950470057766753690479774421458871594652563546888192389002126650601934445329512593380486614969594998496412660628728730431855820594032412299514565487942477713838188632217361174426934223850117296526371746014714763455074575386818005269508638451829141691353097235875614000148082850274275764653994785508198414019151589381851120760696076564863539815677235391845080399585651273928855901516472318448755485525856810200558347390951440716310853097525073228432708148663417449281118816949001879336285601244123087770594408207115131289814031336565335697130646347969371464910897809019148439761709137940897077598547553087800338997545886309832185460296036755043758175572572097601177715274046122786949027478138449869824025816909325251514398274618533306011166724781004666182059879898033292352524669665591532480803371868545377382625460436937684724993608066769833884004280963896452084057504115265105349967810829110421945798501541522045132084155704089527231508677470347967312869271895221621488094788138478460973956200898191697940647612799230279785494253633883911240577038995342786714162555272043576914967216307822652704026182308501575246710397594559589344128625455927017039474878636256086387537625604137732791896672956990696204210067917555438962089846822087113613967358658123392477371279512243275692790706376995432036129309002759252027769262805101687824510069425981929320049527726291616642856140271667060727069289897712656196620417146281949879583312420599600246381210586362962016538223023638608037850759041426767582403903500088703496627825114550744417759923393403546909640438222751429308487436328552900239377903761443216940722431924647169829530114725268305956175219416877538959728541499684530376294647850899965935153161682587264417853186479594674652480012050228338741396001264842883476079631868678020954098998451350963676165380502192673903507533225967452238266929925082064716523427303696459285057809109772011508080289191339998200174163263802136452334360092340208556039680910401589309236019583996050180583026236884429257676028251876343537163819975589641699803369031439446277683094441161432599409317894534866286650057241254263763052266081107321756947620047232970485154088026003475190621823803606884509576115972420149658851549943985191426043888936300175625357494087232685442531489318541632699497014206336386465524548186825749212282497630311097895542038813413752357878424954237812698177880154328129159291502382159852111177006745926584048768316267487854511218384237312954615824993308697194646134265622878585228737178139254272038382664039592740942596141033936579455228378327340565746604535959888869958779013757341429969632040755503895277872023132371665313098732434697556779851245537783243503479866819295880825786969580652631990639466131099508252526796127538501168448636765941014795224906172285703857813941263794466647376195105371135739099129518965149084207195941158614215229669698870429463258225433641806040468063366229380865057602265772069645683990515201186179638353229102275669731590576971176686485371759921987786391132758481637633150851495760828553388660055955350209316076537069434357143025068622514064730930772220256356693750352598527391851058321505960893902935150164452377169822564746887418214256283415940829186742869636953398360919963759050796640407596421157892964385399434995772737101891645478540844849884528367695484922990233067067014324850285993961559038654375205073485493793628910663199492307123074846846776796940407295954964468335522159229115851095268345712200630423402334384250363300580399116010137260045686853211619637961026784059206823454433564898728978390178188518831465537252888042921714260915382435188980725444851651642621069355335869331154903908754034555368373638746288620767977743008542296055298947804248021386202265025407614948159875024034914696239945815363402134075953656261672446370220374641209874449969450547889012746785825813522445501876515184283904518661870782563550111906126265149394186974580746127746181931189849079601005674367225852162793849861124016932618368670545307939863071411035763938058753463110657674330876682093865759530164252691180968345468154503584207929189099319441172094251031909763326742819107152194997057252085554331425477513428311609571611827984981180077805103857590906387920977367860852153124422014476938271129286448697085372895148471458663287510999742329690715692901445022465712377796229694978199644956094439381881141644060445149736337575064378028350923231395568124665702529029392238400372648355816047258169614703740422975572559591065620662233355641497190316179684901826407473832732765756485307286394397763956963160175829879068166410662777828176606587746636861592819875830214866178743175022181032104011680366714230041288039028145892186839142354733451738291075732798416715400363374955108970981805854057034241983618824933100265253663493431085332512706070812311491671711598564603106578683324562074208608200367368190637569635761225393298947654098708275181593700277917631936754356785707618459919909994163505315480342568978135900886602935994689275180788746486042514168985956492870323223101567248774549322620826063197627276645682255299334539348143632220407643678981827081328573759285091921678778401295657935200500576609756612361402429971135617768465195906371488537745956576988397536734604640871168704916752709962439912518266904976107137092736177187155295030108374635725015770346306709544774520639359457433755338629990836968826082884013249601037922207707859175601873852842582296397186877643197475719795713619209540161679181845888385645703901244549927078214274585570564072663606504043538168784270105284904634518625662722048676848887659571203960574635878151326320862920936860246566502379062313919539522041137442214009100888817159022643221741876182066821692627715492197090109881115148629716064102442437363659716911213744616460583895807727680222097774006622123416119305634544174038797675609672057159608921786369517122581986111824946715971221434753797310917767858941081266714870258154027921553365791730907483283863144099416670309225872115050665978561926087406816413233894184965683998609841560154345806117329231403308157034219857434669772530107849975680954095382117383424603432403943211666463764357221574604358053149613231412399072810866356175351851206728400116380723245945942810090215292083590420941559979403226569056198761073790969518879912451164946653836537035930968464874034582129012169987849585644991332802978155960931951993818082483012565999876677662393089042055170276385362939427958014206690390831863528756470164690279619639588346083718164339969864196427025332319194396908888577985282254991314929826143587692172073171205576672023308728560549798893352193850262929547017410140981821280474102855797509671101251031610730515172817109198947459057004220321905285449401210988105188895183511077743413158223560317218363623320448986614629541699067692709797474933966627158419552503532572293767405544525217757667137668772992358782157567662926532642150102437476211400285354153878674225282263743777951979852340058074160783316101942749296834819581761830176300356281419763422718876781498612955676481390736511963800913792920373066170350814959103140333781965530094779990116202196708299849336880448172845805120605164427466948123642309414604246579642566857579720994801864504853805560641168793995723272150520563967888885694293991810009058507470416332337420101152311489861686233355656364020491933301124303515606122583755750139284700485461400866382033342028457152196063197700541856907675130410170319891108243553429411744963011509938064023311583915507489421585154330258012262104627793002133311238545224529761534703864271023266742003167928975349065312307627464444753867735631971971873909059223902365361136914438557436995159002428451265242207690103341124862386289742823343672274049607075271350164255201783248780218984195022247545842116928206379739062338735815189978063357611895596350566330053103027730392372276940540958436366248066306830817179741623247087381103467263511796865271356729358130952934272489459550503042426916573068535313409252348009267448365511657249378377242022293886373091406247607566494819929235050265132280097684389945030068203523373842252909173621730653686320859652114410808689653663536590089000578677642007352877686458385087965313940043205474386090142276888127411078360555009126194076530953448754321429778388594789803744246792736958222426813093402039168446992594943269295048214873322543662533862939573714016274389396598277165885137356392404854630179313028143684435782507621399217243821765350800997171828434614019951295009216013675552898654123474027192247338064420196204665510424976303046287242124667983271337956399685491442951484431632349685967705988610693701667605900758157919013747785079655702839452856965152404230065944648452617901487203546373239663155467978259510684030402422738066083361727934854922997413395597322533013222914280137867764909505247110608876819505736995883787141949078135740511919708765221019857249261986720854374305985821419569158969634972187612947726326075709179396713675828174686565285584095959625095318560880042296113582185069748489563768938167133151951564055382316735126164877164489693262289565630404179056215460326298648322864836056159836315179327528633484674693127452014049194582402111806068535334718078893739162536129119172499920700815723948522859262854885081871036163468756054512927440198133243792139847696844914926358214481643678975531006963851248183129892981278222259431118249374517514593301872255790955647965193369717989563013914248128885615469548245385997740152865227176821106235125728786698512867222993353065622056414496948150029760404741970166257425473608235131895833614885445617162748578488969573948989829511291807828479724355958076150693405957588380724256353196911633200281347376235868861762069738538846648587471175740658112384578203700289821599524072889147223360040341064160795903705460076641736050640966294118837048752451596128928039174180860971978080003816064670887944494013061239933489439574295738527850616112558781820143565738462303418521914737656764241756440851904276922219597103015258428531796225242950612205006584367914864795090823578359543333729934580328116618714890505529538169620142289964178341105035508720542220495977904659844243986136886356413391492960167257319487188139710752405896831038953158491539406864744910942890284029619215957675711781396274622224666654689203934831453134957789679373545767857759203691769602649256505850123742800052109771381781184392739142985383922106226998612769845203926009010846364769255097272941922248035736192107869708349611197752002753948270906880063260340564555300507209734420987904391649137763217083602718923937627400486856957443167774648481685709325829474238084713342642469221131165049611045063957690959675413006400258182389140183558444269506117598419081376272395562990439585606929765167670740570967189523552549272754956292817251987555286888581771116211434572157591077943989530358541184459797067800508438981063858394357646208699055536753564329953736529965015765669479123988521224149785262401500470155282967526447957255744070545498661858205385777710090278121468977300168888684795571921500521198637682083704573931832308652524235686654685140833369961728011446839360428637060825325985270974238057387068010726745310978677097984949151666709305038058792936554893079045385469973617785714655889884702485241632711896170025583212563901048066953702299814110803709360938674268680476079326436031492893901483785283352477846952520472330038998989972800886721633357943151521661676327121666565917551405933179149567624045814059780350104306094214982027218457238845737380996019568061238219746211960534344498628857681408474054753086361021169997598840906947185978033186710308628842553891639732736877071024143615792462715106859982482119913010483727754760986111423491271316123959392399187113221185908739868660293989103382866427506089287224670871316966202238401524835938236138180540178311430922742408535752031032384399821248407300320935015665128891576643811796213335273952155869479329974804723982754228405903745680108155807236104506431845718662113535806198704671427282626035303591252234021350904211420732109388488855739135699121556678666074890093951219567115322177658302457314156855757810661918890441840243025819962091594029111361721148378132098719618772417679180919579883588293779640740594767842198317809057060097481633980543162962541418349747466444204885600839576685084812607800714863477847715653820333391919672955072575369692914406010049157051522782205872916718264479678080079725733070335008240277164698612049107422508561333777562159941414135097085149369461080449018559095570786956315775125202217341322761562919171818802028509612486750508811835964080433343963108963001789732159177443305284316410251969223202354899181697743098259108533921610793312263336381177289955183188924182323336509179650344750721478664755217946779427033551282026588540723883357149034802131568681276254336475127237619575773833551632638998163958817324464139268073864591934497637041530569890179485419866413388940248181079304420835963494332064699634559568474021228019817718718668530673977756442649516203376213496352891483090556203384955126305927268941966865326107809690201782346229390298577603487213949279088585220613130910778088962685560655102137737909595934591516470665685200684884701110235321584499754755408308061532347163761332086012500631365644351397004238622333713553699048432100094567880266782610650823422901912327401388017380079426031432900445793567014708043718640518653956652155999642300055965248480418834824838149325230831824629656052537995280114303006416085408425218195159058885966109201780186358533071336647625227354457024904140248130923530372775634185253623389911877818349927263586510419799615625171852098408227998190363042238731626864642712430109189884604314336011158113414931982417709552229441527180460839863054700235094155679898114839449384632967413430883992768190413865523123089044582199572934026937075477195932264080463617005667024595149434223449769076013526489902195401685225586467348483484325569010811714042751113341364891842313551780720098403177608686561843859142649528386807646963927113857122535886767234210503420959538569303305836961189257124165305215707212506360946620532991897530166536764115896480900426346278690468664962755415616244619100076976537872603120203585760234209687961871185415065748421532908576228009158886502487525458459697789312925869528410840768375869134278771264812426271404078791046888718057323373217723529413937149434965289892322583627008816646819617054756102502482961746686842776716329335305686848899713945302955368668056042032162209297868872274274630955005463607087294006709552621383822140951063161873685980723025861032744505268403492384206993302921748448749373305338182200098580699628387360781997071734605103688498553766663540197716367102509149225221174262275282243873042394474680297247324903385361547505874921917270225876289386936048066715882826128248629820437385619677416740676908052379992391045222788435951048910176793444117251045697879452360987685427404974573081955757577060495315986724484305311957828137877560970748920158373043722440890991576777523434944667866827589058806670147707466117890979251615750068711588956501884752736573793782741030425367068988407160969892475052429006853667004594737501843016043731384485592332948328391133446549698502695986456429117501858128025235581618955628837839385964182352370178578534021884642138300433572680950822957464373713498124641847331083768158474175145810835583002354735712831471451422818679211745425717063449107830300386279427366496199092296026202659583043734429936854099798586181210807738358680781070012602438350546733068914614345281272876915736901696835190019057743681508834432644787448576457080451120733265075064261880660494348791671775832058158593625239616729240749782843520473556268852960816057042326141916040215245803176308873468802381955493955754175382486715842608984152611010328241096900712773091714275034182478267568614485596739543076991636216742634226045081671052920545700522685169599103183900052303094431345873208401506290128637577322554296023237336780443252071979901723712304997711107070866652059922823284154415708736999653919814275362031121992029988932207403984677149421140177463299760086726729612166738364397174384085084258317460951444138157170835032238595274496795230382382692351047736887295105893820776100534764486532472943186109691949676536367101380565359765954234331017952923711133181631860114563183079133326185227367736490652117739391725905705142445409910110970701531873412158977721039438366096846149451395076460988259000516016388187533081194292127233767861966618445841658227110181010491698293425143664854530156845908396446047925728648113127084896883983091025501360700416029370379339623094569975682921371727133953301204561288295652804946561194291332814565599419165100558225030910569672601118659436711159486821789561905524889507504961073523302549193337332387404263449249181228429712016313923335842016544077902972937596863865160836842001252246892440505638600205641468257689222640691612424572925322241121326282508692992566793069480828114805887622680424784470507377521679620626211355677783897644145856897040707541731255558319732192780265670672102013969871876872136848277129381461655491500248534845272722192596537855923645479006941203390450141386290778214812744919936059079348805830710668095377809799958951099269843375244644654667093252114989104572300613213122524355234267648720018079774131653066085149051545225590434326330113042863401331261198482788267681771858325113831761185834720073017590882586383854486772935233746917967256432146147784731392772645120644716712453050517007136473084354985436135775031556825476272915106317460815804721539121349176536952212397004420352191541008507774484342520281424524779964139787816164401447369888063167228852859453185665731644415560406648932779295791812439991500710842685417115761038266439255756041291306410610482235954239891334135495254835553338735944072103245567468744019889743849784381802357922162642049225236903070126947709047561432260851755489371151757346208883071124830040367142114463601798517612757768756714668024229659542346262095663099895152843173977322937157524160580978979684941749673458294274811841425062452970364231133032225516630147544945110382010101757512562266973678810538549232239107245613647459231390995760717004116888101856130497785822191780729490383456268510642848414869556179089589423132149673968305881604566240285145932860051043471061905077693103824842990423295245062986798817410260766848400584795409033420431983308865050190003282621644150589861003964399580481286851869006456217162845513985107730751864098755039740175883865472450835796467435500575861430629311506750732473459385023813417232134912279977126014403838186025786987740753852337339924192846664890798278198299858442961162757097002434703424384161822109934525666818580318969091296398090808951268024638862901123078907023221539756936844674510302867875481175500785810320888568510771911074243911888670600546371428671026429081860471467042938712612203362431272174579551504288012719341342721536354338243935857085696100616553008127178613669537145708589412956554419086771442966645777323371668788943251032290636068561954951333965609687018190736680331291614668658939103288374310982810036771386115136238391601194362562716544255539745483222177688190844538166045258710720230842343833934279961321817260738915192247191007552042499216875937787845646071153264170148190286112980365282641793997078316010277503642829245017192999304235429650712879546623238412585348421363723531502529244120752100421524940757029834699027347930249517534949901704269857659326054622185626244708453176040129504500721856175232742900748216427446330691398341974079337777442157067585383571933458329863322176647980261120264985739254519674871879615197934320343210973175991359204453896623550655920928115444823305703241220840672189175003702313352356383151353184704441534893825907795644032411470408867588796026101391925050407780717293219210377586084192775183468392261760057164600262958023478523251572788221778776290154667360432539882560841996638957611781560233415287601436258517709503360738064343217123562012415530018322366447457191752171247945873188529779553972056717555378140093438606391357319542616632034225307776794115654238254918699673948641147981400520565172341246942504026024849799023012397897389114492045067768123655130414303863485701306186109536345217711617875589030249793768190125075536512417545905181865581652091828511316991527892217383640578650041070801414430646829886309630954199258531929871267097343593219853164820988824385434878364592917858126270215783664612429755462766206305909883484262271603564465301852107790404749957255018621090364669729547394302825083359194430418120888382465216496237995862887124458786779863183125609699294472340914901858630591890713783149255668596126860560735516718951960717240441275513046560701506471593878573289144503324219205838487633851510728633552449147659131466755383345942170252260714548229252221002255153322591642762427504772624458622478107651592558653837094671495209293264551346907196367054394849245751508217237786678671552853966056106185577942447350688764715764834857749990872201174997458143252390751351280357163119759431773662773218522901236895891592196284301386691875593360552135433316743672798204131774480838372907048406660659778151773050582847954343633999467564826210366633115409023974055682260636038080970662335838681116954540649838052290851319895469055516740989992946747567025085439603583075671218297842707358247265923664890436123458747410572299203612576968641527853221583746009516321047555722979434839887510004248015205887138831089172646475877358690449815559436247704688003795839063237419096631653556735238383073065883637896806132500557166909322034484109678883660341907304608971704238547415056558837331137885749203644790624658905823701134895501965639609412860617519590553806162510808588486180474561742111985683484752694087204424039819249891301018448292830092302034120151366669603563768493231275695214675589170200794043558302543025714414870344521598409549104140832515848629015869401207951065226137139599067955421308446263714770322346807121092942063331822961055812274915463192429487876602547618273636838049636539058671523323508526004907201393430292943073763868822765082210238103549944380527731746107237671145398727994890131006391356752695192277279407304607874183641820094895193786255296070297342474693379511990396661495721417620729716576047225389767604896947566603689131956963988832229684086509338823499177388774289892134638038452613760322169666360490135923537167715799090291615864904918406629630159222760664291148562648831738755571120770973619109683345509936423314218003485932781696356638687179642044925289758802664255567484556861519035836840569897146516465551144381668603143853499374878342696192269107863923478936681422841227147575767279071188606345720098785663057539150394100146020937208774659507060984924998154795319308055397564287418515695776178206306956600909155911289736480479069755860938274404548628285947963087351624754103832169131062486024836612604431863125747066105347375619873715320291282293552797360592724432392998062501454006408511628465620215166423329515680229564093398928233371013161780083151737510782850947626674049981781415617819481905075640838247767831158893326374111254025110247578324811148109055747267944961750142173767078174975692107790590567873368715897465322132875409890432929670666215792258965821962243849053746788356758200887889066029332548653990904557940440081639775259659472812350688588246434520358635606599654963833266901316393894796209665292589214762760749808628919034313605053314260953348237375546016996501875768857523874410226469794945071893421322857987995617353889399985895317611150758862023144137789325061298290707452236044173511374375740955891545692675306236327581033818293914781091499432294482453994820160256229891756434978262637162599688594211286872390747717234169382654186953795403403693466821981287200301201544585503000867874675832511541773951235289275178928285286619669832431775951007377659784292351879178197621387528856410926554908381692151561998227061085089218695513338710280199316675408986752270800939319729369834212310387458022266604347286207446958017999138938129893595262140325488869473503690639852833680834684726486375905467534277189215008293078517561878263258191066548222225059370198745350812450022358383817875664940641937489119766182545096993261716515578138007207656713465280051613288344261164526716915621209889164611122568053600263183932595464925836265831529265384378545176643434831965049112207618084916935769087670773970674883966073497582123978930018485668083876884646925750057948000908775332944378458618852017917576167335734978502556376730241588985653107388456542364529820839897802456790829819247510035990166815139018396571506399338965307392529926619749100162017779594771463844000905746098944812244931612990088264198007215230982058578254394849822746693509708961617580533128952191467100576437586837162089736713402237107713147245488241216379076037575151982751226930693457916777840726595752236708861079007307170162924876264940891835112940899945784537543489249767270139043054142384722496383631373265723664312136652589835250704432386080880701388518006675271946086097216775255298697126123343303193614327721435835478839812403750915767412534850571954510641867022102534303712568830732581761825897401515562947898644611572007700797147626453401048483774708824004170082240895366536707961263966161018417089008625206307839611086502620909257538509630694746093957327684858549453586858908161018219989789023539358379600428715432275089247068733143249145722449700711774350783742641972624724014530427037771252122378402023799458010904152753541973897422325500484508755520218415932877971249498563623480739064608614774487811883626028529882643789960740943963747342466944174807265466710995111578745081216819278269317444853669237970403563109239776232066232153800100333933233334585637778134885239168063356108069939074024570142604661940620483967140284178063552498028144516416678033039441680695503360337144311250277588590201856026937245816360115527599548693118207120313870973333696939953279900255187217111552001630710544374375061068331219850565312377857562161703668095685860625084060979014127909137397660746218350263874380544177622716188015239653255928140835941834622395017646537174043200316289197075201633959626600256845721104911464475731746582747018395498510729864215122508503573838220480492278932343320424485330266240944607729929174413980810234159838198462682553931381373675958643985899438594659727208215741179049866453309909706574921012615735529798165214137086783252073112243453335318750843340229988037310689868308406093252587265029417945233177678731634886777838058695816171416377865054159961400915025296624406915578729182019437863664165047721856855026335771810296823476740748717552145423680614907553278530247590712660284104298314627668108669034844207746213370986244294951193559697346390693384173463127145139937935284951650466283734036458155876050226121337095962232662219186575316446456444978002263162143201188060558458823279732956648113293389725787463467225625422784147971621935652031229431961527398034657773487630787630395531087608472472418687133107472427949580563413771601090107751325775106770378295434359851585971913624425207004809475188863026413802651971899931169372191565104728104194307923718786488049029953862636287506050179207167285187319680242270231908194441139928739220122337647671414785897755025341066855796871551498552684518827686678820058838353899725494284763200826945002025788954689414252812119358999227101816024186540874951929225234936810480054226418894459828863642682491885110891051655039662981296056139783521798368918366235985630535138568789323342508105405785333238915784215704814435223810298202571049554041635052497738256469987593808662268008440510219458921327308585199242870681277669097401343515009521198844929009466725517731292054148357508195332578497576587306555328017493415306215605421452812998174697929568357144825028877475343175971954903516524023020351174164892590330795564631274094399077909046942439224903543855918338809961630991333117741303842075062218535818412095069642973602202323953904967933585335176987330522429168106016745711236774847521802835693634576143741648615548717219628334864880162174161478582974360067962504933611354454445360598597936747304625350596404643285195376119864514735553676824587073302995747234287219307687318973474100254973602207042458787867224055860983269486637006660280180855526539479114906838375952725992773397057011923944671666972072552534608578584809871360754190497994573433049988725113878972898677648502361335570926332456109779205178718072736161891096758609564411471960914353249458430434840615709675126071703856220064141347499680720212620418937934678998677481654995719954420511575086145459412364095925988429505809071092761795149470274184049785203720757812054756476693023714948473723831216216477084744134288228157821604541154643290398192047427780153615569638282320444581284899345317447403857260729242433219151448299067733091308681225534530130249299466115276420875225331818471020836564486184430967358899002273101417517290416335857383390486380307726725654524365299917994619130496356869897520864150689281790817352717581915244367712062946794233147956491568079305817016133725135075095089461747338898408880306961738763197577262570985202467016466575479837797699485467026272613032850425613143804775043386562438820785121849784764162103870839923002957619848378286736812578076018413922989540612489242263271426122170085734736505704738586661279566411172676995792405757409811696812303312916921392822182866894437768284800066564668946501401679873669595038095381189547995901491727357269452049584117820655065495251279864432596733973945732536531920701509776720918285708686185249691556793144716736654206924936420638850729327613233268648290237995850906375440310431390658320287686648530928833252862009790049767566710139683558033235102699190967423728063773968058261009044312267304914350003637342420080012870256721717662241949487070678343898633330826368964891616612604834674095919004530776539302848648131741170956210691905885893563206852211103569408463955980629222461947535456199878151294590268929785256409004840386611674386905691264931566994080583779650459746807152417045518090438925971686428836198684962427154055655332612486997606376540408910301877810400025359457850427728797620054502271880550794856653465190141023713524059015462374736325340254641285563350181842848576471716163324610071868818614689829188277826441813633104090824560226420627663883706779601855341877276648499079440287869127564269996794197138000670540349638738027669823947926178776891459521502770323847570073293977469460339024460491538512805649799453043174342899203325535380746774465029195547894385210007275057550901049096075064358709654102566341044043454609528781313405362164951178103770411435022700412257450283071180241068557353876692063932649240958555475811386973388933113308896372821040970305873474064332953825309758113397798785561457090642772573716593057669390533824538951465025389955862108796186089106912205637941416757104384255764078029963299508313895145024027999099347870744647528484709223795583786069132830502647475589494309012869529534147670817435332407779896471316850759513970459743957869636710443121274499046930491011959277174147451266909462659715992581016013630896853482362980961596667187569395419575686633237419353872330564041387209577489861435808004281901803891210578822492033844589341247016197187394398983134035401176677834638500896542236591549998510031562168163001847864754785364960449735685941848410086275008660877858216427767311690167404358259704661307141642101400141088364333166216405136089628134713866015831633483928212847222749609502910651557138532232669909957349374150202405092544332724400605821969163993083499460816243529022392989718212276407780651648642147240401353814520088711429709468965071342397084790732763141840309064912629702415825484207630240792232734820275848890017531723976104728009935496676858002272920408981089720665310171730074869559361960673168784807691854705346532659351692057353447283948514063989358634492446875552345462406319532870888137133169971720005574971500144207125043152610558060333625288635123095109691909109543264567808119304444200325896614172757179133808026322367245628021837685135790680830141864607233004019380093454808761507577221593962420200376372612926174381189408676326299030064216181881556712237069877012270133001931542101414300552846283865434882673427032295327325699354707794388799707046480110159206031384565883250396708165400614171873569766273503071682330982581484361422814387686976818261216048465211473370397346916302107189153408432160082969041701319821173324195780465515429741760712300577260136767429232752914897610646568841826749148219549356090659755713488958142450221120243950480808343891873793437823164574024050958136934718802959191499037343412000899618840470906351979276381976464634284521739497862549582547987242652060363850587731365662809847094700277047248520517006981131444354112741040712515136941792909119930635286062689651611533658375200328002913860354571082354448605198562580247702431728963433239746338625106075875160323497976288511591366218527338437642122934109053849436910636250802402112472782484921541898513639289586674621777540497155890724295139743408884260415808490039093997948855810271376077155300940116583956339586429554157258632628408250433669352295799345665231085864239202904945368588120200641652967070849118328167156862279662483156244321227777005567208467742889212253512900766428400282874006568662152938107894815134612509652074869260855193655553933381560362585047236194942419309959215557255258451048245793256712189377093810509846861173463326340114731257236737839096604785710955623531244581650752328574789802038332456981090542422132999739759296347090002344221723696923132577082558634824703902386807118418621246252481114607758713472553812788612597048092148372084412312702011892179194220663809615100160014502140368443482020804106353789904655749881342052935858781490969659495728315541066635647036736826867203394571330439005853631644743624380051655419090974421355493867138441347843728197950927600545784533782219362069720017266628849859883459185771550863400920738674038388356364394329226613376684699227516391245602461973258735234707230522848044104605386151353254226574153385821328361180140195143357152405625337410157024824304656405877068653865995977391762440309435623092601860743624501974934211156483968108050764099930210893104625484847230921003511903160897843363004177997097505667273496328719250536143783539018172028136640582149634379615869476245876393342566301121938518217878634567751231268605961441158517234702612724217947900219915839051175292075871159366842104141530947680624922693272509142991381237570513127816097107114948569607644443207441471719093002778648208652984137918940081723881460330629103555362596062098408930508302957321479319518963500492466111867601360892551902432678394532196715886870239050702248255460009130210967934798755103641659031895450953045106915134112928436834156131562496917255590349169146556156840892087205873094956348574682630632476702008305816602082499732244626954658779123212444077938214447687930072676723246030938779175935057700971441597954001187395647367365961602038523319952475829934334894149187079921652838510975449257260617029346979881297747161245170702512541178806662651570483808451965791576295910092296779680273714698103392718336114247213969222988593631792748477675255972756237860553231651488012167813054040836067109220702920432642335387191479298528487510161167960466665907410087600487985334682725026248232630679687672824693079395618576881192984698059937514651241353341050769340742974188988146594989455769515548818997597009535547346849718049881491226108967067863422866143101732546920483417493702351383732670340051647294960131901214858733134197640146102463596813897425177681535612269864004447234807521970055064539480013439923158188778347146233860274692254415657039876459595018563926624038647857771770098350680236194719317400038002433880467631344699029070269584793542222326293340303770794292291546921278678978653433365223447706623682909409071107669743216547070737796451862193803283723778979167970501978490385816129087988489258147878897838667634958636977619095261814850268302576556495907891870182377302746212673717701005100573694257951747115112433586803191946932557821257678284252359132432379114532636928955902875392637380190930437647853221581802222415459864620012699474380984869576444192404817559615960304920415477751006145916013806798135397893499050008751203757633488425491916059664246280571154033786011637390018218032911973422592237866234755956099709721371846039714845125034641279754697093798354390349845828924389303805472429873900632752536126915950125572635227319464902255097356637265364736910989125306624646571137641163511436413132295822622934833480898327488034941347871728067939286414392850326370376633290695552767067286368395379362471916580494846018612695940921716793274430424230059757100390259528878282173053736971190157493200103691121454522943448992188628790737328215035029743091943605126184427641937092581855563075001604772226167169852312799404060570671940947946834434275118953482871166131377064413245277100943537967123825076715193022277040113136866943567574391287027577505835982025481332623894256532193576631713050064856320222004905901256526051813147386614728612112184665220263242474931675222115854356284404737226766744566195555453393233460969032110276167664939503980156512220508240697117927978572246732534401276780684516934358965467971292507523044783671662447997596801256018292509907824665809540431153573363987212798877054343087569859083564666743557887616128191760681545614245091231395039134206373213276444300574703105123666323958832278594992460711215003318224013557472833605779661947977323654291039186797970940657747442013363069801015405642436208636137611500793955583407579665851328839045000713570637792595241054942912821459890643972507335950599920339092117817611842689328827488028147818708763902135693845387006725021667117281604605880389947178476758773135781427106010172297696996129802246611523960906359177077139692717905827209725671551090579704427699142549778704291811436020029784698280381569812278909657333324921528183000480551309661744309394710950910060882029710770602006074283925142003979947580245646045729231404082292229860935184494394519440913848088524041743540323941576309807042431454540661968788528594054568243360193008150178506293698813724363825665599274127517903404086831549142670933138226624688281237117954475998288548401874940787935901588611998534421892849658386172502736144855524952274246546606545191604815250377381890369683468746558557137809793916020873858165449514056269631153128698392996881862898522462635280487942723114044715045582022146436713545129198682367719147711264589922005623928329537975428864880993535365600185035175804870260906597369302556154086013673130046067225358533711198108464679243898648795511499822600281999878603474592570592387067684006629049324372099604707292438369358188312531286936018897245154676330473311079871260763890076285644140989016742314674656489721808306573563064160427363224282482257169176332452245206991345828269603573246014473299697130131276372151857416241840779209981011597653595892732746201251209796529763532647342147878576535949615504950659643952007925691223642916846853520647376205128593375315764277901710770952805419227701615252051029858704625178023875928172798439703070673271143841382613857669142331719694635050820377847721139418907746193561371538585520464856640802335584594733395149770291322819406188378224008784387744539652742254584840713743703097332990889371393006241852890109636699132069993063344615859237217331039527558768969999323335814039074400027458875583511696463140432159618424856908036439190816994130042948360141151352740454683284998064460833118380301501919528047175956414988862007972427564577681293860359513737666244557368444613020384600005488327853893043961478950718328002104772775319139227518596584983662677121745843813821858731497607663170566835062375380207758546079817977116089737775360417504531566598381027542753418598928884345349622553552509239186060672390856413889498594307880357234841700428758878322871539847790532462346634593053166463459195481230147903057035360655007127031867633102218240437657418913669379667489587113391047916675743609095612282430297700678460304479541675707521878763784020819501178825182697304210563661729417038987614482604061570488108957394183966849270565123077881771647928650041476858816847140619320332664234272280902928529854122665064915359734611633268530477185799476717786268125771112559354931201407380608328144152468096726004209402208690276836907104271940584622141530381828770235108098643260809880308929278115472867624458644640878923309418617807809296103079603887947492344336915814312701264123656440193501374004721537443111297559121857449563615827924722564053848588268026337422484348825225414957865928991470766494941948401566290736640176061432798134943859077690157198509469521085451015602278660622948835706594622522736961192274891646369874095011671538823927834331702119176303567715521426982759268547819906505082594541609516943959490384649598121215626967786933841097729098231380525519227036813236864538101876269580105962841703102065769381496208471105494914911663211366721923222467159180563653965709614334683449863004264843034230413810596333635256057421112121054255585681137343022802894756539710214865936488032565306471239773733467854687000895646860992503017007170605825157395002219052777210932858364960305043984623224887343050904811047981654496921184833197243642977074115117300826715229498723961319648626575934349997933372830997656472088789606220396113253175211701094958419503398538545078930686930085067723627686122843043195577390523319988160951566902289857286251085618205995481513969443155887226130909377301546455129693233571684006707240008700814223737103093036096774263886562544545451736692360830926162025851809279113673528490154419448894819969873216981198884191942244778939027491720237086580564865858579904821600735082199445637700418863610940958130570158789779488380628173776766141399756264752638191775563299431037819686869520554411157006837989638436454655850564227535836775560607638112112162774968985665893880852539269872217390699672943142117057421586408340450334504282905271012504515890174349465451584569535461370951371427031786008553955588301627816256872966973525844485682191671012757989551977340850322633989946889821467388315477199477228375540750962176307261173833906731131995348217317853889648859760081997066679454742811393874292198104968090769344514773090064262348797173030909690029724562079686546109651248589276704412382167558268481178587812252794987469365454441755715822063039226784972095808993220467978500869867112611281036060345721310734227407272653368160906302783079469998958754837229410927000983796910380150778314589361116964722530964219010772823094255929801198138303289551299735977409069841833118549084227373025150489978440640630484361449643153924783114554812271630103383123533773221597753296547033341351924781987287245670647416128764416851249104708987969398431333160029311670801132732366278578443471653590647652150505679214948890113109083540082150523195238967287514108936386190553328141581751452048214202825636465276158919366387662342510862250773943667891316103659191222247986919936780382276009483684019778224602517925000567957643350118667955883264125169882005789544817689068291664249022901269487238510280679996575238890313496153489525546326478156588533905003002068570812134915044268843907971753529812995048536337181238984167673977422327905724634379337474058469289564134511995476069472907888529194126909687286540695414005827342133878827689124309130677482311965200691446709013145340084063972276114974765256319538718533137648509184766292197878266521981414714472811783112360898818607126883674777875353935049615719188471061452848048678549784260126055008817123107913292964957095407543223654729681590842476651758570630910627161963173571533660365341300009698091431292776128324757628008084153484613663981428353000125993503611613883875524334499865650152572577026219260938288981697546512679657772275079484775337769021982833245478203645681605364967731431637566256667899752518097846250518531109163890143010881615482290062935522965924495272400685873274361252565615783658879357467612823512543314468772245020479447807800999382761166108739394792608723152095521992973607515240491801066441422199667564008282448867858671796422244694327454980531067013422841187456603402692870026650016331271840958104933925063868616818587120810391335602224646014506498044099969868916504270059622183294509314973176847925595992156590543597056830215577690727650325638082057699909877547875588578073173934325879026448569142998147200088961766988317434462510041142165873161110659106058992451411964908654605374235963697870851820638441873324896971314549905258240843772619749743894142104876197917196314872442902573988439475424739534667483019016874429443076009030424716691593650796249072939677036743456858660739605528149871150828854619456164341131631744828687314119426041838604656647231671336106311797679995791294927119231781033644462293127537509341031235585745094775306315752492846546382830077877811445466668443991611395007417260907814796474093823245307922740424872509759560275820659493510101915934309094393277250042455917232681327500626743238877053799390154332060638822105609308042048940894235377128224156952288981948476004794416767585973829074990400749610685196315536441985207171005558121322657872527324881534477418686136094749671523524815777337705744246931243446840431847748652052751391055838636354372115598996273596488690280196072651280571068382691221509287345895434731817042445920508693903493657274396720490104668586808551228467135069437831407653827223643742937143950752079130136284914351240440954446329635544774435200920188831324982187379878021503825877137120947930076009339637186015046663206479927981119341413180838394414474505676864618125553049886004799032159213381615616794181635739462522957010773323667571379889729466506372477693022228442473667701981856709973695135710601507657512740935153706665276431606432259469760379197023310595440666374924745542015547248684463429696527247067442027432131362960644829305670059529728382299487984060214373186990505033738073406463961629651422151744050989668370992952626941128970000702993254807033173803625847601027658297716873056973588006586041718993314000131558312763099727828574657640363365023127102466684145469165189522587753787178195305689870285469616534829442969168302120264702341996558953333471906086748569281696251269103134791472969934779115254525235052487347589048693518216852918472653093575373693717312475233271615743804801791931332629677355327773567304545621876667437535686038205051563362375357325850791392157788059976193507207647189902872151440965276844712030292220394423711356267748305469080804253647627569521723799087535043068094947409625676737036273975687816371365240304387188418158318258993549400993026021442761646938906090924902186092670469823432036604821157606397327723566196344422213571699011622305802722188746673851015980081249575132255678616099819320531662325202580121347004782416539649733562621504373172880831025021507959511018733404758248623659318405620611413994743913296867895799540810579533180532871333469617727349421356887656563327521299714846111056325672282169622152034293613272249287921751336427630457056128883678503009922480786061051766429758709159923601565257006417171994562383782364479601701108677865113450757416421361446378464143835885422872144104137716676160083083301487224189242502800172477641517335320702790408047787869516686874486431879911603521079269985201921400866770395106040562540175969811635974018095296397134965786628282226827685188760056129359440854137491143607482656221522769247959166244453819718460856954320077285562835874440615058345905105396560474251898201382689400535342636331303759750500766959423020093719379205769810561406909153949995809223921188345390432395336213881049309569215974643846619179982367552094470587706079950948973863306999294893166051860033577940141262736359858497220481743471715277132157067274936346638611658246264886661967974562181804369288355890312210297280383340871938147709012329306403733494141193472862086012047666893142782143843528234109933765147403476006528690942443481583199742020406788454018293526107855184411995419028810697738906300831125248285605661890945512511920046410791328070142456338456598619037225673029180164772651358125064142934263808942106312148592125904509753193673046559893131952622270771421729068790664154790766614765550508050952199310286831776169359705757443977109450584253970808691902902875994424831075696992897285595501000871083318748580901666449920812648523224270223254875875304950962418561970644842284062889650594314194110601582243198354187189727790765339997371041350609961508451127048292952970553550620747096707217844849914520061365031523715020777147641704535137991201679895179870069579652483540811357049005903694409187549896607597483694742837671579606668049664873192256510586008623093083069397693464438537988420028546589367009689291132799918400752736185334009617935672069836161225333267345264305785075345386958904825117557014008442651666174571614046900258120003782987821471258809688368350780007909339811791382079036028211733561823606772595314406461494391088096982525390988588529260042896015106584587941432873659047468044439433864378350649737224770592427806046577594578581561352786676389486616303941656004423130511209722571368050428452139764898017285385576045095453026258516652888178176766787058881258452203181611264439764549092716482779157830616890764277691930451057675675046886446219820864988042688945904930987975078988503679255050710926410775805886316981720054998478676354047048608157160356634052742608916505665972260916173295009289664935863160364264798978753140934964706034380346893457343733331731001076095177534361805115513251770854860477467759682404163224032095504836798184237645900403446622762222134218410560369491940063427443379785188694051142819382114038347165471745086897694923592730969233172149575743239346860045948802698409673988844591155486188560317015585811680120986478192756166612605420792939147526523424799384562677291019986681144984889056442612041345329613353989918118716769151679893514961214231349601723126436697379925251312230059177356661244075046135139781671363116533475373804626060752850985425355499314915695953260259552182819334901670166308123002534791873600563938765099374272910013936459568132098952140411212048900202290361221139633230419228887137541055142304211717175825803242240497582739159112577586438994371528189572008077603629154113366255381448992880724369927050046965069459692098911579661677343622903047054841064957844161861793919454057109029930986395322184969765865562241468241614529282973818396660158478590903291365763410826606619594637857075121009516362765787206794832315821516546088675894089242253416959359109954982342741570510776431021601659234227106954537545239140847043421149844057150785047594919903212144812036296915584545537701852787896907315458489241426648326390261851475524254783224313847144974668140404519431055923213257695172265569690798684302891147774025379951956115236458569592866321259542506372048487786669680981608811168178022521921654742665204715682077742422626844586499208815324665125611529290786483339092524939444786148967865906502683968490272968265945909878619616729226944803420042307629678878384674221502016414465327752175370750302693815983078488553842676618412090085788583885733399018663500840062095009866149914526407303581566510997571412164482054678497157196975132320427199908284503444527694290845781299377193835070341831847811654308463696329690208662224919242146391553820265396758855871693788847225172256887525395775642686632238836981633758768693490939170122771905409240271383129326182771448067450398211505982158016117767932638440274393718152497269923556299816920326027691965987965866057150263135392544518727339155411612031133195020916088551075737947827375992407947735703554417233550176638915160214296342974459537511691659377917712296701155850746582620849967642326337900359534753945373148518018557661690504870979529757163028768090205691139375991477027019484481325386503564776512816829804075673060505703168222716827045122115788133801376603910868400699838265160099551839874951222782418226662893282721670845909771279221852353364888791424247256586167409622500250845071837858109669307252659516680638619317200022278528511719131063240754977518974557587927002583329944798565151781787676591845927530845754944819618684811750243085134606423455226979956395182431133755796523147306512423346669085065839128591087147339030638642147947856002002011411020262715474993558629839137929539476775569035822031064894218410995460688422788527835250219823306542594590091125253757835803117525452375508019417504376366890670331806247027805257398703655069971023875897231269999939007827328563720264346735391739140253512114965976283136445056521670615402412890382829572562231226248509547002228364515545240708538925917064093255012475603420169914067139664143826337107885579640395276920323303325123871171723641866363913153870023030113753852191243637985754317614972885575626167458016590767487470422663881525330616797920794491705519424849481856133091154809239170132194447402365746401061673443758933919101879977710622578328895390943140747590353410348185322010933904683316849462969296287976530972399280562556476699879264243556880213587556087644691501829789428433910271937585562797181169083867609682336696666338403832952666051276148626272502801226886379015051412094418788991522986002635159185551501559386471524402679086471996152902743181820463079075883756912210560836238731567869211680201311182472777448320550098637854834110385030016759194412094071479121387017702956302560211771216505636842324406384241074070370452701212693130738998469016974537735479225201242951750743134354598402880749417607175891543778036601576472970697679942121547190700284908257909282286607808989630971489027381741682346616371759347382114946898515984825524677397530106890300980794487282550463252789027918222251062204989244264418828257423938596423150036499740215345795712818742757993392793735237161269885053006541731290948324311554313133097686786697916512051427438650584409476784698458616583096720117596575010254899487557245649900772766033409971042570055491767632334743687004849947942818187866442371530696139864183077836675148837193251339275995119167423286040008163960247950184377712358830718168776079940653539695245798963038104051755708559227833366661077284422376867960256564015173674955285032631524774265253598382510210451172101846552253599455819299015021729287734069016816801256050557955324833672873181931354834809551041737987601903047895550140731520312309091109949379189040724292657691458884641473885658802618730839218440928975997596296494251134926795121938930355749588061392281983081673036191045884834490067372741078390063608331085166337336220815732190559877700190716254153849034560734950592846892417949591551252585317779687950478983465719681183721057340826440637184076482683978079999645219686546922899125565232294579468751687635954629266353572071328082141465124533859714219995463962708769403769392549512284734024637585530579068827358582673748408854501925814970771069399864758935847509904374748407314733297621131046689588440405581437975984938826942485222830395464166195692844503275525934393756801731588510794354543498318282200100225948196204876756900663251711854081654403295047137053308839426716751004971588515790078395070345746083188545056222965178046257987550665218258166086930668991588931430447584489172620207914406196857359588226863918483192666316001222993813099373986184891755641918162200465111442469673774356451445466218977779033959255950911341243624053844730308889736854990667362003462731898567689982588214365522500940636900169243088241125181981027855558461898163821644434660759608448095754260133881759473394838655761444115178121814680589508605619232231117377756059765093647172000726016503261146075136872150310617094282871086272827975720809445199562748202482710299334130581586987337497104934642359733779092273249276489621035078542276238591716424694977902224434099468283257284609797108197979026849430828461817268040603339793399177544452625766590859224518028966525002707302080686303720200250603267797281551402382025326391487386824511556054150884528138495746594793600935748032662995062901900012159858451406122608414885685363529964489105210026395641421107720865551567841208431433363296585457278531675329632275357867166193000293075324248354358412051779188106850099039720522849604836787239563773020978725885617410064591266990117601058535851274016241811203254853310633978028055298242961105651542114262473496031565006701351690582732771878987461060077024309919157246624354840800910733527101737458401771544929649399431008598504326516045661623579109777594677513747352305917526768698514649421612937474811603252336467019524660705931904666807590986800278994576766537313816868912546251227186172833472886380849061572440274256902478277789060250416345464758487729600062489279007478904127256688176652129682585330872197534486373947912701156286921348104544806828974589283832971804399510683219928150112182020541692869533357853879893228296826405785404640812301465393586883910089981388410722314451290335605906633673447833448855043600524016012627327192349157125327412184960224537127930866908273807895823604378829324678077710502892870162366728740813264639533073378113967667488991414658730342106766218970337667095680155194142150170587175919725102105716388471262400288364169086749442617558982885915595163292972275094506007018086419887579743354713419214408213580352601569105675627436384075989301902123229911547301354615900984758243130266649779717471504066122223502833584097083206795261651325276757204087685982946281891023002282955047555377925778295353733938361827686658736257699718916513224461081933531745863146542564082660510505784310319948715333654023312363313841159262761881083061200006363470036346136430653406763246422171144741251107474929906702199337443285815453103779443626071399106881316678019266487705542562863155738527525638422879971107120233904101519658488645247322288134401544030100192920776573637283543706266824410353581282135826812191241986438205987526254550902893557653918062812758266651649148952047096803325311383867225509714392974277480701853770672530710153516442824531555358415709440552892863783240123055167728006284946066414984103821870346765401043450172528425368250575677678708780325170680454534595736580329022759265278398889883889783815028666594155490062475731335882595227412262241734942930441011535278090517261123386995888693234259218337156137774262880532797563681132660183327064359567909618503948492263593394863602861133645793176905712888521244460379554266364949691728301550202551937786001079020621081227624154188087267933995416192203339537383826288746310711735459140703676345654060872626580716578909983800894113779133489795164712466075806939892516169003231104285701142069380314900504207778457461898268334001049086312133782438179043270531621145322935937093831477221112463754929290223057045945401864458948328987081462331078911575611660251288037148357895453668316178941945992405891802713633561018330044192346674520184234213990476761895889655194744933185740759932771603573607716436034231179961900900234100118605461615640165995492286215630577590608733079568291943468264472120744986487979137680420787898620113837377414071210399949298223498706022082146416060564594924050411063136498555884394059785826836591546778608983702304279510446199227851410545417331780277094796318354423541033946010516783873286345966433588818369576786982674566325137239740621778403817056714506555778336701529607076891571668234200679333777410553787091217471399456445801554443465966458497372766608861112659945075911509143244810040908696302707841640669977797568969993463444769834029151044945492396005283059032234244942507630395913505631960298526615847230145041772070162146253824695698595298106079159981768325854025344120019892645935987170538612372800654092109198321206721922640124876129825458976817008520934831195469630341464574998085737732955389003696514489224835342581197869501669942211643016807832910235413314936848279927330734319539772919831863683265252187914555430181988483678586958314320062292549028331629459190383353842738892693887247928143928014985237076561375728494191926600421872433874690273606041842054505289673377267745326405834775195828991015277894257717374458899098698884398971043597019262594594181279374069156629173790701908752274361763294896349797874655195752066763248150859229797109241825648663626477433625530865091102784417893140042737181917278206964815565307942035218099436531270458584316550311987830198716808277201420330089030423350325005044111532675856176167233084165552155454429379361701748234168867759073531270313389333238708469601332420439994571565129633896658701878583316368681268503130774400717543832925423202033037748572291242341178998998846573057287060134748396398101041610965942937642665320029111956998193013273894444821342393846678537702119827541162912540779999436362266846608180231771739370534293310742859278538229074858570503177757422147557912157064943597277917607900952372473663593557980285312462486330203979487115628813478547292069926382260049259027544906107847430047552800267549095391429618115575580657885873931217238039811891243771526565312757128872426276488042144190399090496620791345291171838343619905738558960899988260416332321189094103837501633590400461223045995874114553246108735098994400870931504712849091899070656030107703472641013138088435302712716731819409039997824545980639836766152599557339489853496953431163502372707495157332137800652583622615112733305754699181871975226152332636618439214658182018267322795906621901781925592261195668414228432656988266526246886897039990681317989980368044860144151724679882122960854950699143390525683232978429645589110706134030485481809388432083410020097606615093917385156551555617944938870317576537483831938172833626697398705234953183722228896951866782106220711649476901860602093728486988499631671987856199835760554259204903585004838647855248093234429237089764505699520013842181923479433791805657068966022860324993675610303195968198616005555851705619868177032593139051518331759494721081868627405150807000391455475994574812558456226279449279926077040188715438279424592551038847455330007303776918022412953828915263070697304685415560108256480548938745082547455035281624054113640874610561892938686657599529719937041132524721731108015828865620716741466269404237145299220812636690795061118984934089492227169813702802900973884399576866363703020801069306141578053744518675040182431311881993056942137165660883758505287561787211822351369900158981106223699886301284174699868515781241561014253683252051166770098580949898384604668101951187430113535741164796141157539949187761511283479453404654322093640353538255981631652466028879384950284851446117398459859851854931011987038553687786445484073822952310610728846886379332329352199221102689466805640288597811800643801557889003302358210832471254201959928549133366568686648638059411891705942579508469231577216019779336944827808157704021725592777410405028119223597813848932338970968627722013035601545324639885127961712468534392668750610796042447929620361943410751264999048810575242514854899103233566004997877231221159207171815736121952076220052029951409069093770644342475819095324467080122959621692398281989384312294397994246555097401149172291633283020349136562634506725941684286254561553022617810941058602807013700962915279026958007153283844743829039669141484792132450599993182427187706083203316670421378108681099560157440793762640123083731201816099955445294159970937111944322736172314173960382122006721981740866447111778677570119638295423662528361548569163715349434861103986600934732678323765003831954552381576545568185283986960534376116621738064339899064311090946529995358087983501755651009620410478654981621040152778873739742884676779773884561227478916867573330008269542882692341249466521624569958194471744338807641703497955639224806122272057438834208171548598129522242795813857022779245994092132091739694125464793833887568237901936772833883676925320901843981770198650357971751187933459107725626238117834585703431622460832703890293723208198849595493004472526424288342487309850897916358915656448112587054571918187574817927548136888001241506693816759995810320044991845181008473804678380388155190602832225756929529789599851947170678139204399102660575833874992707380636211707822067057053291358179422583121678690566064554656198991151538449300990029337563255432477078779526820374367539942024603062384843147463957698627638699871327840245841873947013480225067852725470975223126084200327641802473769901684310932479387250365399287454385037064403857604299975586453853541720114986503312173767685481209388889014304694354185893897480713494862277222247304471458969496920531178345727970741999224012514926455546113113650252190633837678416255187495317584778985570160529589150073852289287935498427510606723061523416888115761845028347226146099559766924743334279445537348156311554823282503524468372868401436356821306776135969995417732387068808094086808240586732513651450172306261575459351112138531676030179533239761601926511450301899005085463663427775569886744899770230813001989889666919216719682520654791709669504412371980126336532657258457816394593869964011534464924541667527590234510773584595652148180328780251264727994685426432760790537563443444539240711860978156083518098107517488096104056646623882221676474519989722415922726963658950395945017830731121555967343627177908769627474350669410347230080090897953612545944119448120522825911349327369625258132002370988948924823936046777007608328368019361657530660280974221963006065433683402783295981929978522120081498456226356328301707092413569029336635781069710710388940890508366613964848011820540995267570455281450705128112844737963637629220204889871547280026768631226555548008426227331452618096300783033207171788069212977092444254679052293633669620161332262354519419102608995356670622801947214945792510125238283807841910933653745750276556011885395162894239765452653317352242040430721273293327070219389993082859329401047984410117604516445318415626623570365416529115802497435724980852117853750712317315946303504429217263363471770995566798747558091158940054523544880956678128429606365019352483237668515114365468958021345343608657803295131607678048181833677289584826125317442555838743601943602066826431675082172241017793947229769203616079860673718779092150477652642015780890014042679832380365302687852872408217527937388113379635502848012848639628792755797371985693651445539955378229610003334344888470719790480789437052737082271884647962159974337206712236212852679306728404590919096990876100136305700957582193849770274119758822320875820919337425898488401479626929468991099594949955964455563888785726378935184834535894451362313322427358103179141059243270769992410949208621226858743002150616814776645656308657967120311743291416021314238062853935211648003282173674517385217908522069807319715111256280267700806276956138157237449691822138566865753844796948186900476120511282224599251572153944293129796149200440514609156319723996105778571978243086447647312958263741766921897338873840661561242260171916963176978667287481396049908105175199606882905943795933117554144039706337454608421959178187408698391722824494075171753472300009978951279155263498868504118283864497725500768173780216231180380746160536694528213512706123210299492171234995431526190025535663969990526019567071925799981739684825803050520672812390633306051192775838724339806684805184843796252474068980903313603113261219153511555019052602834896557569049613806150330025323879089474854862028919693718345221387333934693832407143614600256472590496020859584697947367289065490476200970494419813576276160501017933522000121137716564493352536250355114512166430424260738726478229079574135063912545454392757662447540292265321745115607673546495188599522103543028139920325806946993417410361705263318101863915735698949253251746088527265437223974512839510412142853664129317045698610413695241243404255633067574185363170451458922243622528892674847266863783362075303330363959862936136074295565133805661437770234786709285892058695384975540098990520195140626268798471395042691353204144414334056021210893656948114861943499494906328035238071731721585487420161588698320055295649408363214912152564236998761973804887259063001117972881452785835322921618022191182326458368331177076744182106070101316211010289959342009428123925327718405378254629788811919529729027748297892918355882272951340007381899735209883803503742273337564109671848738291557007635231658291641523779570285302448822220373130329711875525229384184092614311444773990175796378198180356595710250650165784818980746270378597348992083087308611724715335096569117379015464932633710289421445142486556194378349136030701287214233225523446830997224560329448299530333630418578587530526488532073358050018540393177991027237269093398755193421223580694104568049583031385392031182182916197186607221092850666678866744954021179923523858630291297658960855156118072129937669347496140502203738126616578150248477156820488475005658294668596526003850232739923309076016515178193880974902416865984573250289785715345408421129085566745072873915249379990245358490265170277650703923906155512848096350708698003136679244962640887931730094717342318371591464917760448657808553638459404251206791361620428795902363190357333746447276539900340452292420360012569872760153233662736332430745717458280688786560715169542924722361874001585751060047680999450248407716759339856308789661418985261257647254655007010198895572250286921942328472462198176760801664845615773951335430464686234258531438246662489547742847158048439614817073056608501621370008829160818996112257790057261182501768311037553986616248526213918598936222943177355302747127994843063619434933399781153961252696309512694471925934587652367358331561284489386947251244904017714098074063804681336810058040748861255448377723033872308828244268528156022157801865014511851736473074348709798104299287658128915591124786399187234946302460498895821092732280802433185771993874708042317204486354824256117396691354366272241741826490922836535088553789795246463123002204367779233695468381742909333297347517853036178273127844236354028775939780153206326306069254267075763676848730411930238938266315696822684957761465340871215770576250525140654812162602752408306650327083311425999709950562220904439814433288465713359472211656182312919912636849226719863466627676945683186060369694243400300680332668520250720263520150799624000346655609027774049928646793978705016400612512189037154037063045081200643248678222312849702276494819647876352364541836329184264764524051478674588415689763144481083747839886578653490517877605148791820530063800131549605980931910044050908639275121820878985177536819102487927932089225491200880414188370090299521294553502763457257498146126289320760506480107726612464862019966810953423758292128052808591000801766545488420610855069975187773988556521266469643394042087937634322956795429903679298845392413129315024477238122134177880151141835868928393840204209253538181544819816112140569958379231083563868993841607436168285151095202547783648438926943283388752921084567480151025313376810153041040735115455459541412919091554553025798062189567591561825056057636027534458352409208803549952971766286696485533993206139437842172233656477227423739650698790185174928647427514258983427294020485529579021636675568661624590791468924755366317635283512323713699902163011494633209748140499331586183019028524518200575791158503725188490007381318625721768679790120829731120966000658545488146233954294187936543650946797634848469204255288857825057905431745496838137419521461753223166981665946248760493742261498114441765031395628645331898206622390853502443148298345159558371288115659079977284149791186690699412279875283002948529395035856205983313872421044906974188451364510882046341521898555387245707646603445829832869516451618557342974894779178575480058357272727605109405084312192368413273693636276230988209989271885491119033439773455326096463576871341363714788617762040944278461638855489909023932028153402810180549534116607034378134813253952626259174602897688912403223304337806930680666659714561455823529149288701857228949612380540294368847127979713729864359275837172500111788962688478597597388011683521880817533594806849084977915065530049585328733910529775212621400777539183000045462340673339439974163442838111405377662040137265085128727059687311773548197056456161544726099473830499240755678012503847155894645020009284263917721155973280858202516530727227650569232959174096045041274059876795898484678591579128674669670401273559652777271994589837566743366499728303302719357738593170015184487380121546432231311493519164889106506599821551718868939037378859641864260682806735660974711027074126273702810341612054628816238163096256733300505534106443562919806741180173316916946678812140178135313679952514875056504290067832634402608584534339934808036474230830613692114321733339335670437785582907700976460345443685938714915221169320262849880393893885564392420507259456660249833141986561131936985385935588400077441050886566143663514398770410122007085902663796318961128420163899229170922517947269140506145303476097954613957796893031527306794827317299663733173167904747561705199360040897582138241195732038376958104484518929037545336643896836519491897610846741782179648718823555647757027143851637439247271977208392151311776381596207797485577928801197330323901238069752268861842764800172851776983299715214180004625831314447710497531760685731168667817880244336778955146138920455750970770092487584708340673741839063939440722915577525390061618962568234644631951983791148766175870169612248810461740804213461540045616772205450678586110571970413650693894086243417531464047635204672650285991549350039529420168508113122775950567530896648365042930877319678401435338055648469543058191312893234001146727859938848786833569495343435587942788278227094675590317656643089448180493321680236017618164465272799820399527811454082222739312830090369541963844706578062479110497131797144685119844246812187426410225731559667280527614793293256147924935306345447493685273809275149057760696553069650374031630809761245216857419137432369650627516452643953003284086068469108437600891191880251251291309013130931695788532672940865006861810191508843275182079158192701549267369594762335220505699948258751276035791567131260488166947216259109760703676651002923438401859536603850817223282840272712410123189832224030418384190220581899992758679869774245476317168156015628283810174349470879454604680743938534888447787851205574712213509414646826272428889346217233858846352020079892187794460581144904046611972512009996656924122452541106784943999713820394221161904184232427932040780403393382595685770709902804769902385125387455622036729460804848981870787868388547723801523816785131218549023862072228345257720841618881364126556260068824946381149578987820454887933840460308626484894624823507609201191505706591740532128771150483768175919336028386900083084681871187664642656190169476869390813238620744510890336933204431532502632080375760762999322293960027619292923253223281192982937531492168651713908415062333639266817743379586405082947852711030341971679465564613625977423676563280475279058183778589567962300447804950112802849137188618512638697996305834697163481733719447025315986964253674306540620617944176754696341088691515496250165363145448281896898288922775838949077202544817362533164842451537685764071338613227915073960655626492807449022164767957677991484018093027871712959429148757288427701392958690891157714196718068938760071970286391312487366903532327030442968319234592510338726208262515560676735500348105157951034466989258485283226443661107257040399585387220453536587401269327846111785154450904157915242253096839002466404419591517886802554741434396942191433267116327038268020404965557692412627686755914163046273383370142831408101807296398561502150780320609181377493227845712341082785526546981277857968635790023473344823305298902333276617300144080669285399329969506985424232140308549273165665324999170860982376962339358477434600915361203059143603689778112976430184805398980936645803774267989208829795961363357215529371298823532898961969153086611242188950746423199335700426307467503386861435912558564511953452385759620556277024951957612681520305380848427192258836049047738733000756024326393733776177473290631918425493755270154652512685904600275306748252331150237284262776493240880100645084119268094872302877945044244243092920295460252403428892192836425882322639524328405542268614289793629828535127659863248227665466559989354859140346149171876837047213838730573277260655742050189355140600505940793821468264181042924778752328476278605960751110759386440229062950709978883862796261631338786748352443544203038876807259039519108966384405020258548260328539059866079786765989815533154930737388278965618244575540713297925033219146420839115152967726622647318508387625368505255231558307186528753545711598035281068385736422409686741536410190612492289933579222518705275707662104063696848481295760201525512448237024744870726429674192846308518970869578374977041336904934606492066275583300059546819020539323210016296373934650851151630614009468323709461777670156886176486835812593654949820753329270187092306457568942945055750594231824707110326880035591127273110205465449294925792789802601758537163134504376065853570538958395479577132983779421339158076389379694239990728857625414082355894847806145129984785611865172274494428798230185403043619352590798017409120472016672130615786390553984228007308160723490842531848905485943936801476055484437642698483771243922644656664375797110846547960664042835877730178413775122120995601911550825308806057828795345524733382949145845179644625445375004678715540048864973244538787592750245493715821104173946564797793179542652611236513608925107711593237746998050636881190151330453412469664884207378207291688180396605503653238544487325734460018516008675965315331314293116791685651570314058523643753917921164908475679308934599560219769270982473625459931158609585113381528029202231153444134321910541899560689560368796935986014793190100438727614695374256318347077030866632074301322351189885125985244931396888795069164070752374443050354953339893789569677267781757412427538041832586626979761912500518879990498190135438002136745121856912213178616867555010141789405331971159473642095107876210978496843867733470380764708306264762887132837451767560573065022519650831959998171106033720710248386796041192510342107986038645939766206104293814075774266324550552119766174745481132716929572259276591272499057486127244280796975663111063078646751214530173892626064452866051354275894525601089565165842928130629383498010152662657135599953058969186911451512540020720710870015664862432036958095657137162149641655237227366874387984385617782566909924828808798015285788460188479256382914137915902861342422314822210789363144264727381365479411347374265564990930877420929828200115581422192255400022210583416740383177434008905572292139966315061193474825984403892872675011332382234971017792202876112676024156637173207299885542082007108297385460207811536502467488007508071539718090304254653709729367673046545178784899592307053573174188283285238255825929734300606523742120228736757879747088340466018829134634009407290168683510374821298395663373304697539469562757655664236469798318891489497240863130710070860306882255327171947338681304395259295484860966587524814444203797386638257371897720936952240318465016088418499805709149306318763003342362210397083562644743857261425209768293829971240934661399030057581406202619465210331801791384378830918181947760530256094527884347376423374674406554914987003473072143346020002231323751907033811795256977262685051372747727218053016750911202041755143599465722533776814963044871945934619648968491800134090262001757260577694730923260777295106729500505660990613699992053511703404944229828719967254667292659717902221059173022113144299290078781926620016101517421483122898285896572497356738434655306649900085838327208831279294525974949163333183986265160561226403971223889611516551700599456382047304445208112770631591944091147176851496923143507413088521578294393799548219079073650347083478409676446869611080647308925579581330679148453426029509599752772006403029064460146904766067498568265629064478279609263440228574519290759577182863337655315655354538994755058595181586594822416747267678690820183722739199370480367095245938602580410785887351200734654009424223379119214251242143702671005493974511837709486706132735078022633829834111345331013461434593457904322739495251295412119364157562228657307181948028400060785269659184135945710128134854519449023127012942074328041317553701366756206102328770384657449517457992869293478522176781205754663098592261788569535418885377698420837913018065290129828663171684266955207464445304530292155302056538894843904463439372121194457386329620840312422369641992918015798187964891317899137807002234645646904193977246887351854225979112308119320331992385615884577918690505219363194341299521895237991112222523206311532405125031395192899239716150683307434076404994254152934627853228428120842212530621708930606616379823985097231233485280000920637938448327487866957178893018927970498380493719806964179327028266788140259905134914617909122474098981188737220018965807335698848911603656357897205181699740667778136461532802690016289604474562424297585343384850635589225382642085060887583163021809709439478124930382401886990028663217851147118375706189892113674414840621811815420580327786045472190138904360494642774589585676015768908082789033138866561196631304712905949520595669202636945311521386407846330480508052150152445548665957387289850977175718133386436751249500391415911090065071800050250784824559663348405848079162705352655874998933070367634773727676219749961413178172427896961326598896747811675175192770331213250205574466091190825527501380846694419895970676274739387802961038165285634708522050357965539953486362601179371423432136041672378779988197680708268235542904695884521043883272254372056886812097185179587671533475331514547936770287899832953179798608592777288509254072164357027027156219767253446088184404563262576661969079307862934937245769545883703036486842500444310002683766587632202956231896887462828070434593686521075311719505124343296061341067819744584891480613660249569429360234358501809839844677591220170341007406884219487758176971397980866825609599560721195264791089577323952923508319630420168032920658145174673015578541017188850187438651358720438275679219220178392915996046643740919538563907945235660969513618735955308079439273892815492974784344843636266036744646531799574331207550185088661474105230021506039912521880236077238404743244951378335903057416565598953197178104376341826604275105438728849585607539389641661180305537498954216512612519267103448380529613530553606373700051298139518398774292804976458981455743963732034597412171821085346569842979419068497946821230509065148252234502775573617397247173881764969861527947027095612054438385524645481177021404073142304871671950675147713531089361597429645291654570294716152628672722158055323948320636400852676759132227256883063405931348140452836788220485012583848329399286312912165696629661727013122742628058728055599243716795204312571051495470907854457610714901074738252580012910606597872938801319556905931538259440788543366164134553160045047168639665938750820685880580109229032143799547151765013841468067101536916003419987140463124199968074281026805870189168540625133181538060747151634045811636126231604131167004249362933691610662780674581023303965614375703730080770751022043152027278940410659263018007197276615274822005553416858888301721692753954870020408121685225289262810319422385064398034994104683398292794607697161596528462163612774643759876681639766945091799372245449321788218839364525693912483888874347491315999659038243675694068186076438156489842629738269981501196334874340584262749191745677309237567660676937722881682659960109747291414922220771399629350392766392148015127709375610930086099975810144228069882933704651256594793889239450235982614087223499450772283654624349288222637923539259149794584766867222367354886949275791506158220644837446615535710758519498236919203006282586669605866913463848103224996076181346649846382927507245435185930455091421488781205295927442994868820458050218784209819035962399935742455692745534831791274113165943163267793099964841046682030453122580282719719987104715363156323403674637080886108514002749542783279106916881082362708654411809716128661290730423715562307616733212022116286919310962057653576290871767053869271191696054564805376867673950720991395041035757189450133373245507005259205262585175037076345582776002276194083231721757316913785657763137181186971281900424971873701046689542093711928659126290282772233130965868520367114750876101732651264735219569560342618441507721027609019407697431015958673557862293034984595259264687879266113501462288779556431741529039547550273379383994280208089075352330113797321605156720167916205657910366879315622807744277059092735428829926431203374699441765389101446149274945838731500590172912885716369576121582193964201809918554760719995500942812282370611350544460764569305026193688467350893881790599235081699109242190786251628282733689958408757862824472605585388875725056335643086435556062807381630999965212329540876812324293851340491525708822071543827030414654366052626893292840361438765081556470452178370689832197164138323755358459572439939642591332916388950315500307798219106800327916764183160905952224353113118760761303755150279618539188150444290026019753636179048260913708875099091445858972631140358755214679642875548830884342560422150033138611545671555980390517291466786354279312769578470707682179538469438282881668047332578244338143840952758336214411781453865218224677085283760526784524429947639628757589200878304231193558140301116064249324083736879841767167853155674677589902542186975308551872682788631532354832987113555263403266390499185636830752214033271299079022583540370226278137099292189379701600408804665751518570967863969233282739914250971273419670665606754083116925123337302465597839132060166414101273152929043623380552958004180848741382974164091496801189819807916719890097216825958800257787944460520826860960328049255871402921337850192722110687445571651964798349618003083706763523269931755468379113768407135391235033478028313365071976084147905469622867681760796873084466390565184592303154555818064134551060810206236956089104634052547885641225810042022961976399611633251612521049032968748451823472956644510608227143431907111179980241157094347428837065068703460648932628878003293022500689948793744187968117259767467594153428764981534677480023852702067175451951380088941052539709958916748403226032487197547586114064002531552527023327453289446571210692123516025033878035276518402393243946708640525758736760471656493836815643965001483919761066942304673048160732599795142423373412337989130196475726386773475368393960075816732992830904529925681415266862704556461446095645050977665218260266543539018990297830862867833873145210246000538296428964382334081336268487352408942513094576574240663500054258434198219054504729081685481766969201000823642707170457444496348002812598605293840465175055849229851922436433897250077040390333774979301212658591156881637728188575901811110586973506610984080242331933413606799817989378464910929084099049774516631766095359034998104393481090946355113075698285793970230831156555609345132641733301216799465000773351066084667945996340079969450968132033438179994427815792724645868972508995323147510521034311747583733453405607076786918356028878250759109982064996293151925503500685272172310223063810846859477420896677059852931041051944166664953945758565824778299749980615627191189004688798964090848773770506449674314977375657872064294446066790053290588167455039482450744249775289817761250779316745473293349185519301927676922590329366343873792660412170745675195104517645482334330312518769944546745932803232377369881040348991491229881795941812265787534061239560270026982709002815164651712154870324795612315998248425801725227443838215471411040197134932602186998041890190341130607325003069419732678366938615747774352798290712706809107514583304509847524267484124575907302667551327647240173532708036958534056319156671732219621963084377016459675109741540954531180203980841223114109670990691803661083652529088061866706442508965223523910032462494561894023392644784090269856084547101072969124064893882250176617079426626376967377792815139056342170590107968013279683470720685398056375256262751882479800867231937131596730583260233521580245893463684647979948845142304045675667312160832220202210124999333158243543293144637667823927865587758007253787105815870371682912888169947744928342495020340593474673870240932168088507419270965740304448298021303550515429230316959436531850965003798454849943606836061644958127707677410677702403982377464518630021114960793267047482994514187511832500798955734912517991369719661521817040141814889108291040745608463892616920767808168554377669904433924504680958535928114835863430333462702822575024748280133915833232317762192900983204905325710515269372340313547594096876124103647429450947705031806669429127607505547042189765726437669751596932562377044634123824860375468658645779401789004928408894235346213592969941983471975432843393291538849953541736064975895232064887516890106701538428996920831654249714698019395785688293730360511398263853036318445207207176215744992365702961072662431426992538089660469431576633865732649455162069331465106584295753526054879746553641558033237748846024393014160667381069826882432778517935930072824412679463524621743058673318905311616850358507996990534280883379540008182138330599819869279616957328183705675013471922333377687137235976108369040004362450362577365084604272731986454225038269004118915318180687151071555247773919769017252426218868770242863190570973651906609524610270109509102944960420926074540308761103895838060255648125532094043787963032547951093871132561599769937705450127821708734408394591649177740371413062768635937343728538218975199922344541185722104101098465637235179015823553733529318765309775686112189239175703535100972802352288245486832907234268533177553583548721196994894851903508887911929325446320617649127648625412937155268222996107874665944498528159487460245515242168899335636209067398212137341882622568820635225312135477543900677123283174073024316352878530645332910488159342929862399442381489294049249193557557608378290337569191264199577237954764874850410271985434002254603559018928049780634225602340153232975239852352946878048084341099787056354751310387217150835518916988198924010643016295338637527683266175527100893904467583207505413527449085343630114594337625049064497707052876279357886306240078652313736238394109541843977360496454341099758299616560800311395956431720062655844752190029553067884423670385989338117945420396844739962976995913349624467038118842717669150664157469599692378153342253938681523796727034568776119838002628050957633383806167910687597209294556367443424740442294870381408637313208318890057371001027228928490430355151853227726603596420263460360493223504527590267129283836582948198292201652354643312393808087795004642155272105730402562941136297362414864870443244267984331527046436242062811802583075300955293243195494061116755623975905686862578053027611486380958041968933834143189338006581364644017059392068374671431671975758312607277364363729032566794494106342325653938500443827478291493403782435861345433781988906464109731551926510689908774909860222069478909233912307382255011127209353714400885064221989871217111413549386488631035463420572259003598962574573641734888661694407397157263429683831162255589615369165646126240240180890287192694584523531122170293113940655892621984195166219995556592984251740815862274760434745016211301437027279343361956597606333209754734838247950080837933024407376527124278934002651761944473671678900196736641961440746222927411741154513492879589928853344751183765839035324920408201821551605537556417152132738047570861659156810042658401096313081093841205012075091779954165094809046240629694029948260778649654508069200971102162681951762757412517400414140694755691664719683013601525997044323666029703592595321325559504716107994152725594487795523809478291530008529020507259229545823969366021821805663888180408683968040235816600781132579746302139646591530594265182707286657414290662042620128222516741913537495054723734308742193701441374016897831628947843773767247633056032463554468221309673601845293123714493723062448065217154516494402003176562207036442518461133518866898393211255538985799540576458811575866233926773740873569259707422079341243309525760990814043025350425782696248284794507155995996603214226500258152312541179650251817874576701007001817216557228091391907653157295894219155064237097500226721329649474919570977035210015958148725224928625442371859811739215218905768100113347950374925221861306217109747138947135529775042624014025513373502020238712813653707283626757660517930712263573859781874165159931488079916993522081495531643940881279781840254128190321728560231387468325394973806370379058033527468632632076858060927636475654627032035647495989259381724123903126401438463831881296945851641604598959352966324371752965712330117576072059794907775323180635273654375901304171548702968406590217144666991866555677758812527233794745747467168244798113901932917383156944618079121528826353210239764728221040866749554427743617778923208604187855530549025722816160196143635380560900157025886792852845576264303283113182754158858203313803670688629627405232937003408251618748765469709266581510452042953562080916643039239301614508747383148408572319979128762199316344361728499187763729359345737740327914148185211119089111393453720772503159023401252183644617484591580679422365275820539846429491725372839688952880900943159610775416781708762337359284254763667639898853697436969343390854673303879606734822632164547052417890132873347853866197094432683288242152022786347100361005720878079565909710971453912485063034706751500018735231862733147604332799011622286144850203495862314420770692951808955094929012475466355167451363655088094120593791724473150713869442274079333201238300013342155998667547544779806907203955475250273514883619379728093159503025895290792806201141692552176970317646427744032491877504623128338242904599797496956432470832650580193623615774858400543233193667074695293589568882747709093452414792573649607288078703487148687441184513321531137782894784378400541454139664664184543163817981805068950665178657239565185224681791203202371738685563178016750943305121759849032101568191769757409043490277806962849007787337383712706905846242101597532265649819467618176035760235640464755358585710871630386148301992869245750711576922197546671885530604182201728776639353812171043187014506942125476790087076322549263185165669584032939109774208829102039625659594241321784056974581746922567965130686352687811441573979151056917642165772756776827725740679874638265545984669692916628528640184594103610454786515655395727255757415149609087332382499735035467138884696651929656370453357625865896817682359535611467757401646157675629079143778363832825190570282494299211502514504834720958425568581110968369882864707444473998642573654246313526131506556171417819307025358519460575519738684256134967445408294914626563474952827025808479581316145012339058839075473943722204148626020623061069149889438386200407843060639856746678347663817820596888614048192905951810236173652329252000848137289897400314957955126045996739770784805213399544677882056122885383302740343283179848412639435126716435982649032335766869149150659453064040350531370196651564337939774900256032180237181170966610748150095382412163412694674864137712275772441753033746250483983837722869874997259028328134309818335607994408748767209228897948079666325477801085162363373194922222886230805827294985465594827515740776655756931867273730478427774394876333212491263565414859640628487334143767279720177197592462633244739659648680568606923932668965012803324802332686393366430708274725318031693213451890319644297282636598248841538559047179199516688838604483764166250014791642127813978401486782541374879508934282372091751833565496830472250868556112395941883938302152657903289949658606569764996114811670643269992706658539476595936839052448456706491158680566754587546004764992392304789150840197906687618856421711627252518564865096437374518316793147422501036291609196750582416385344936705791603938164497528733098677173567317734259670210589415557532310446705335201601925341142603817694173387829282494362353403890025145451328537090596929789885643093948208347976621424164934194766660870565423232536017288006982249328452318201707884900796019447613696430639929614880134313410033129479623512001773152134754291207590792625111420166695182571081196682697788386525744935186709925115910848653654249694060394077033696024969586911004779757732984792114353010860888308689049207383612024769116243710252437486219281384015989760606888830698857479681648395977758614786086909583910404419481052232137873104420097633702376062080002970557807031873595807101826766528385207980072674569367864859179263673229203076255223097826693816972366937253491759279189642448537296532538937933723854939580834202266117707993268470386694280011955294200570682487071635690826903280551792126846041853974106899287540421526352980077738519884590738545818373189670317300540573015763706357132614095607369383177257162909316488158047197668249160354661736101651838437511376812700989434117551316604355801035838101857597949345164671459435474369173101112084293085891945134347512996757978577780703206645292202454574964293421081104399509314081010745184783554978349727813706608917760881962784249279195206104855473221218988306487830196605576559936715287554500457753413200432458133758572291497649315066024572292749800807145728383708176474703228049417196007956084206290485904267390117691189351332687899475077121175490258288940714129990638130408756325510301172610411299625946529292458201586550561246309404234154617093447970146117202001599303662687444323511022791085734770015119430475693104678364352029679349274997419612935471399150651540659050950305026674277944451897939979514701603355725029071937445344487793684451907955093814127537646813227248963532706145122240576669868968178641337482574942207406677490451124965285907241495773539831873614133617168331234462685316054784216723262980099004772187500192630586817502271649629353770163737834329825726727273591931559615885943723099860333817321849150191247301883850900142597887801246653389248334389492954522428317688397653251719857441461584114996046084734767965406539513467937792725139796671334026744793714244477350424519484160231422730354417618804864229462866492983707883315977147730363699561600334131708484012193786924654878693157677105639655562411861644438829128896332262845069470079395353729548594607451812399504059412355372980678276147651681017118380442594398169539816994255580575205505438027140570774847149395519147983806368606441667417625591068873201145443936443210736769943153518525194441567441006565504819373782284631022936840439910274608277664020454976598732268970234996531093761524022925157159678116153133694721714795691180865290456942392139005601553778329043535661649666282260983765419841299237932863799875504353590148865231003065887050587718550638513141326702861163473574813396698001302147367902589549030469201116856023851487620303833021402535222811057637674810759573597027482328454729964406058708498933240419650158523932476337055216957981586960915269502464395790702323106280040472696047856076128171559361063446561510951036221967382051498423882486635797676222544670710762884642655146829169769390168198810094118658690736937739966237163974183678508030304850825145013390844882995573987069521511226089923719620759567296192786645459518678775107722700795148326794883522212452237592608160344213455459897305854293841080327121073307925557612715947268679711970175088711667920402210831511299351793038391251405311427024563131460164787266961055071549247190144222955566843554822209038015590576133022347163708732782664684002518135348615714981604534024236842900759955640708539002013123658023999652912502599514595619470642472776080675809728995512610634833404748985367770938624231382255884651379972533400410177139116652248469649502233998705204174573897185520208909953708577530856299226760708894588700476969983881486597990362865026495312823670433770034590947699636542142977704553895825706367178253667652687316408118353624070232903793533196838966481735788932738950516860116888499056944708685768314919804340035564309133745453497819449595119965949339632906219291254049748598695339076651132998295819316504898731047041937908420972897411036362315679594503173462213765768838459226031010078226672584606753113046549896059647535484191170876239504471160419146865964115664865759606183233309399040002681837466023736363777321618681012134944120164050481343094608885902085935834420489087535021075474248466424487075074685716310238011998104327598472051198635116473833602265464521857866507822869649110047455993291119301908401105187585648067441520010794808667084924935223273417030414885640145666236336040123925025409618521055315633559183570341741425908990397717120155399090821713754312606273072941505819165897915018074040666404558754808594328642771318328474898837710891142034775837341973452325871204225643293809380071009514617833045713657344136433538220604185134757373807188750528551268649494139186120477189128736204530302300847135997434666552881180987914219549732579128084835119897189778215726782600009685834048996623098625994842643906605389171236645284348818033681039636927764586261921586389844720411769124026153537255760368433501890508743710959403477996030668710109362681460986149317032361501741154107649476308013429889895035330308133596108418395242981745027253353914288186384005988532492057379953150811425598423616245646013301854146122345597683812439945177756310404149503387197079163492528588464056425210642560819906075323503597852557774657223389802840114927204335501816287951192605020806003597134569665222018682461750303534697711109298731600046296328257344769355320925289674597600876342585875241378528045268945600256697168480982227700850394951929353637009067095618639399186288104021426394104396294626941307495208969569662111760225298165291081443291144872077841359910676947826434439899718373253500941141307432001203747943578947488570893292149821866611312057798783200536152966024212675002898308994621114474392041628956082797712785571118982091952330284995173382106766396504845906640395697200690936580922807740581079785936691755375494921473640551988605589952232566011617018850359681481315743108991164850948275089221959558030166925836168449095871309258742231008598248464776392546661019746760543640846305420745839292638453881585547233703060629582894608407012997905880443422006492156327622205356785588454799925567860182279128241038053896515613013548550748043766247251236884867407155352771453342812235231338549581558159476361412663967102766614229183415286258548289371338964311313066166560371830077518410089410613785800733448137717142120908976256727464664180608531645289939975308766855528348040964745471014868270086259286215012508581185859594663406037081616112592628733945369200394054491673718436772233164570811955476026125848470290212703365797406622155616085254133970852964337427625086082874815908395470396225443139284199991014323051802712447994811785166499283673531087919382016323880166639333077782584854802138141511615035354472080188520920548241725143177263786556170532321363065735351776039501689079076600898635192647414108456433768738005474063070761375326141207273747488419445886322237932785458225584796138145780524088420057563571328427694390324171585252976792898470807441289218561552959452090602144305038230706491208199515344341708860690631872668087751399926701630508367215566508224322430765714349557945740824296572023715487054532713785226421877346880482784606791188452691068350550884076621063197776245161016321006913396488260777382315245795269647234618200615979557630794900287854815625118627145770958081925530229653528373227537560615612658403333471297991157711157847603351347215348830224809614006822103641324639828540569124989760096547318119725423587914560213114394024503048772214364003142865640123158296635667532968892540905211624972234933026590072492022383670587451132988172039140983236167804888094322051036339393872560628115990178346428326995717761074295229317606214818201738673034701084966774850304114805005077049540730164214193710330325563235342060394145711906916266707580478827970266318706268043957839955246624101198562376959313560393309070145393530258893245721273465700647666431357308954862755233099606845772043593819738986930578259575311106115075566826536323853571010378483862821984354769542421251089036065790881118978319314139302080780608221459533147256525460094467199622127714573250677098660389433841296463163578423749724716892821824935444240370623004987262764670395977210759575567431866304250565375255650564137094863873715842346452318942314948497858039300267448040385024157529696802236636079075771908908672036091168421021141353936727719708031810833430284860519789377204253582752335037981826973797930969842913315645916217909253050961345833925003873729473748704067982502626222045421119530941240310775574453134516134951475897617228960318987332714376920331803304879559849767928209900016638658534523963947077078119954973166408272224254792442317621475608651075369869789575045478954159125570043583701147038324585866590165521369115302952174167634391635261326915001918214706675887411654153279658392399843865693096444754425903833437095377767353198046932310501647606405595622841241366129971184704762256434154485531021092120795651925457630459545449645919669355053423417200438522973898105156087221796549185644699154605768823131546551931119241441902637501595591375171256822326224001443619737036020793430993044572344000653235633945768144429916126884754808986607862917390262146897702259850947540606283409004579121802398304004911890224885988803252333450364095082813575853520330715071973987630682632555494945764150703420754137341127367973190906126710985400180165772830528587958361163363923658865763970122929462968833114287937122796678162879155174791685308182338159121421939830137835691768006283177162805409358373917695980428395072979833043429987106113942080667390903365241399642976442934375551255253519092416853775473658948980854602156099650694723410680649709039805436614304913649009549614452153846916833575630794666704513513774555192591196980128242207349317589989024537071003880326688732907154093506730497235801994268651752840623460735502894485689987126435104343917990444772266672501259978158235186620681919321588178992676249829180373449680158259962108906103402764516691720078814420685134965400065979976812960170177127973415041307907100376924971433383605605236766123721644114826231916204108477543275213473308397105660425548161793034291266650769655454454595933791040624209955418470132264658864864637202473610729925961519504251759624133115177350854369596380892449141786274847415174385146803526420340808467153218943314531274600034206496606221702961630160859315162215957274828248058568521475304393275491319508637510490249985855930567411661786738638931335349594089474503701725567042584829409058813519181098326064547852143782487576127811231214232251322558343273755547581218516458885039456451851535341673669932256102037193741328227761034543884286601448872096596451134952200655880707308221252291248068954403539593209669730522907572297924146036619443563414639175538850998319242861033564476832501964514205248755002362277633263446779147689826307004367219435054851666291631264218999766582152932790132257830386776292090465384072424069992801847371813707262621311540023111558094503950931247031298290129228397568829429417688568078243802615441171824856797432007572661037738678783187108897834236233014610831883232416287148974916534206269491748065131653441589763719449061590334239278338014359323809188132307856615888229563150089068850152437703291904809628779013516213598619133384073807966545672853688130531142859903819023752965677742899726238593507846997692012385906407048552490626782141253866760535476874441837568264773880022564720779752689113555349520879357652805606284984636253492833144290125646236943409815909631022921922704503502311214245301261364565579495159265486650689854980233439753816694550692403642032545241655676429857878457628424852405695741166439569485697260204491389534171695938118461465854608429836971078928751690376943992966287701020018646504733172191362290154539010371870446571471616891329792115379843966486338710996512149382087377003005397731202184028797182321149782935211019646147169037156262485200901179230429387906285306575913729840729933462362076678554800575955784009827702893508349809951432361540200303510266630151317813073334468099510826607446065274554061232761350152224631866315335971785609843877584040115429190578906747631228760081220505515838519586438912806698468422539761205514911436034247461084492838434499156476750107285400803094301861098028156534152552027245818284904215662680517753774756021371802253075424832126977329309787896569396412138385063970245725102516506860795755508084363861876173071695092398714586243269139967849421545341725555940072865438974299619401209003779524033579810572557868252471378630747317230033476413731908478732337479844754540974850395115334574839893988217098621671762957691781951050022250818331067786599933501531705251384727292472275765285609826071966625502319685781450310384434223630846693101918822388497524133654909022956274897949524549576153075968734205290641535562512491802006709317645137510916112301284470566968279424630008777738237198888704904309449248482512048362148760932006476087285063918392805338427280601680232972391541683535355269883731134683175048271149780155215970574470506802272341589628700224189860004313277121672684076231215858444879373975341662551297002456688059908324727896777515622626424248986283044343404525792791500148279988861037088536300969981527554600563603609100033891832462507074040525684471317468786751572428139964657905743468095660610698689463535745723647050864492713401907042866849918980149105314573035967964983815733274397482304958928130313112799667518808266334033573420447439245092761192305225233339868538919583729526996062312947109793038358674798659073271598073795541374745463835425636380993416125734873305746597618416749620862042626337624082492281523261530314365333501342340848053417541253529502138240645346425432345707192455869678194727841588680382959186743270071882650784099808606666259226383482039824077192796133581026568776721694003714503512010475541058619111806396861142048926978574488233302333525705551444258582873838217054817878143954169457146951773080554980572201229780428354446317739217245280834372696468384593456134557402844097435128033088780971595328312146905664176295136796438468167385763194212188974087105993482610897079007877322361341963137822689527867044706329246202238770928730182765311744326324427922162724931332456843412932390171958348957809121293408117444734658234192033261523703370784750972239242267843508682368578023844185032294865463774781353427038490831454881631088235092129534556752166685333639307776327132781568049355980626788188071881225872781024506208411875522818343429233832842416535398293197977273447294458763273679753264633836516094263457357756373605730854867397666451226428476210399262538889089826876378155220064912915141796815469575296611891676834184379248311614680439528808540962596042899167895492287151160342117965793923167132636460411945998198210740105447087656696708910363921935626228848078585855446219031317818503542080545813383517060316773034703773220366168615976872566532349820364298322458861675313897009777830086172762617651523079481529341198396388552308804986700539832170059612429124475805196002363071214093494089865912825832449441158208851479473603282762205597480011860059479232352346816153752744863878327602061121760025081014025380070472614178090741719932797254754980724041394987870814928816699243734750721751735302061872006006416078451368282642993743570065409993409346488239167848179223440373545070659034790206219416911618138735024711934782669890903153780839382664938406858415689454218333714052650277176437159565123564315496659439889797081263085933541193307948813633872650520099608791556759929332447996667820975179690653886090046921511865237200197535793646319542973466595052500710873774858095329872690279058667608182741117818865808932536192202917548904219170304704260084420756567174859677004788805558186421402151748711485239044352670480413147807364183940935904609424849034733638046834610265749786828822798282871919703403197267322047572966811821510995271860269692355240696313936033446519009141555532444345849509997582422996461577380129020787401204592473377057794176730411361277555124754125126290849395186660372758363776014495615449360387566522572531843017812194704986275392099913276570621718585566031182964478846944914888341706667036742024236145379685630613983598580416667061475879807306498101813217233275272193966197141996324921613787150239566490116487604133582585832451526231847744715907337747723964555576291546472216148322875791277986376630540084752592176614827002303222689435919304125722096915889627257933741534547861595859547836362394296545850606674484426884166686982532039431650504806327872018669855406160141418481760748828051261432574540394390569880532184020735051162294027571719997462828222751309062281128282317090330829016790837378443109518565683508001536461666785449115555847798795297058082425451859773114197041921656466091037657285534356249205558195474428144062457131902373082236089664333861283303782554760345651737488220965394274860323797893994839300288258260273343569530888514756640388163043724764097060759237494705455251166609285522781366711343850176828949454270034645626576713085691159648697205479062276281179599361179094633680591475507934402794123079763123486322289752600066733670354103152669541574674754966842963236203813917691680981787431885785997854908515343620572338806263320891567910454404302200550735326156495859485166105476284417596398899108364145751499898613757918951607016342960228096270338905364844216599407075221993625026381258906903658884430921489680858771905958251357411500873965074318389317732584891333570479814997788278742342254368534471378144132784690610411220760131392987833163452242988154513040656551595835347652571441929624468345108968358039262136638166233785500527319466150445151054170888890872789707776432125907013105617950300624225255655378026294560487022307994901070502567500940988741100517934229684311843034261768002543242207665156780013547613365769188341348556877535571801850757313437543767177065136669914899447840039013702057343562065867428080047843707004385112452513361740154172780091607620826617196791981898914018474795208746407770192791996236377611838909697070271902195590577611027287478270288997456544645035155299139691496893967512673924960794925973701695067019159904487165078943705340851126886296501693614344327083654191451547468041663293231044894090007228390166510554310496665169931923508322697857646344184673002730751022853242185734683193023486646731228572586695004796322966302378939070168579632124218186080480789229188566378035252129944876986503448489106682905515252314663380258090664904258738030245452972562198402216349321335475009868769078263807737185723478248178757858618534299200686026028213239554608631626297201082025998885449849100693342168957417928923245138088350537637930975540969257882790660374321662588387928082920318583079449797667933952166786626909077832021072881840521234606899924455920627253933176934341244930235482561500741230415587614629028208693893774157382675383137157891360119183344667191761271728461951075502000394871320125714652094850374629649182470075532191574802754585381819749076313797471272182502588100949215704238455044946572535073072406597024701971000490924856150776266408649035343830578075377036988628823598993867940607790851481106947037618244147348173384338909143644330725256572443814093167363007285204550395707544806542416782967692780863659997896897017793524612932428341617647224701474160263921367279970373122521452292609311200842066207686000182253881589529243687178175970574864921255805308865168710788628216011957265082101010292039487781825510325774540182673865389376428880758798644004060168733196959592365023889944989935060586437989028808276927721571960977070827666529562892762521423319205468029116631149634613040898889932525202345541161950589033572787462763492978154398428369571785873469899998226734719223081350797357038323262122958712212831710939017809540522373612070650239246466456134395362123228601277032796120473014883586730550399829233856310686017410064372227198442089165204772536096749203748891216438988257144909498604831518375407634962526414193525676410328092046964538436684794927334644825158658761154304786512094503556655570687471120106645009840286842660296172478736052563644267585296701207160740925207463148196991802606885344983911938997666278799614035006283412053004219832754120729510336611521947088140602880009386317254747567712684240192069486739395213198776614001145493954396259712850935961202059606514691072357642787246635237838881517472813179351415163508724847485472482633001902102907992954992720490439225478385086337863638522101406385823071566863497288229310678811231512301011342548156883255527102296177988231110595962738681887671320284188019738130488242465377084334062149957125613506803966311594684474816757835204521381443355286396532562177643216377675149239533587056020523094666332173785882897315499254542913565881248361162352846117522527143213795991524120837727223840895289791335790081859013659858652553177586593469244880924300646038914062346473191376243810792061962310838932878509209767358078775991904148098641958453122831067388822905403414039441165600186602139060126340783079685193719175225844353016808277757204408452825608384815502099354181157333927266901843609045751773335358319985853715054768421785271245836118377045382968515255412332766489737756908072457251329311000009453167317427272241586318673335281328307472427458685382972594348181597289305750557329618500390666027489337972709419885673728228536679451782799901291512472734306077499597586622888176346584856816344189339035341904868028660976684996799904658038190853336984019590688740559225124403876044291270082584278320828299625599285578466237632570584977824711585050690084627379776373408656681143095714490334007787883524628037322226893544036196307049232629449987880541880709753571265216013029271465134786353138523156833049983709180270473586536877340548804471991911995880083641292269038061325573242443885873560140425009606462196113646499060468179348426672261543192818661423718354752492856098191757500231650372688101498923756603467864214766364320670639714509405100530781255624245923609740741410519790005191834858801264819382455375699085451296701885025348942490044165322069826889916135259356393885876278251355985040159924779583643806897532829570394782945833957327665173278649630204901149659413018097011717349559836925689242114809443539206579635219458159108415217891821228029168745193388532410487325607352680662486234186830558681276168687991736758349495154912702313289407354465149453181890848586270445238047508927856295897183538539054569584330227700421428776050069858969988558345518347496292727928687858793090392511652279102982910541056066703947920949162959943196058694121572792238132611101678301850273612791505354606498376826619598677495125430682433411077144962610286759115803799833943517048680531655313037223734043002093685680015205243627692209164599210156403036097157126932720267232459657970244913486491759289714455710112027951731961273843789191700217479271325454264236678289684267688401999449604745843290995003661375345257029742784027779098956493581001931085305322276637404065656568397312244916891171283964979103345365316348927227821297675117993946335706196529007314955845691442062996542876526999673146627772282851160008428871226379025234120796127812150764016568164266243029284237389620244029748474429205414591015481753143339365221212875144276679080537841220036771058733244475703487559140671146495309377772052030394632586447183321052379216607552835941159221201475790950447753748514273376969806992144462024869293700895913093356257192710341365156316295431096208645579949983948949463184254051708242185395919160558577890738714667732067673878212360954066287520487635036162646228459031385311127216498730495223552733892194270954823436134773779457214933248207209718864250613633164758445243298290048904331004593773267342067192771242553143788395171573810618885935224119166637981218262037862947014166866142711996056822552221331007971296393824666259696432582605320164804057149726205396883858386835419975208668574895743727164884740278393516505419852631046085396256407890961879206671853627231637809151881710837733919047409514735199613293353765490988763431656410112309831186860500806746143902385428951833901927260526907550802681444754532778216213270824002023287098100907814528018642957465568319864949417182896767530722338381938732155651137890677565358375878173730451290583657833337843247349547576046853063966532635958352627200816274182082081937750906735070490332998115956377903897970694911364580736681512262257472272936969343560457915088481403574116407107312523217869863724744283930377495107108637710594568872750681229328531218817999074345665414811698149627130283739041641512106433919788228730788442914381857548835004234113495090969827199245777129242944268553074078966239149662277701281016907861749445980210894700802873367412721219887396045270186342348422525999973146966944361847359100194463833262178188222114471795934814063902713652304392093974213607858031607704046589976635809964230497227972897398164235496198199202616525157030086974328991073510084922590452005253868523957836556808354980860522890954494420571269906592689873885547827554551284322065058232322586165793904099633818022439701462400135411343550721025253208770062906321045158535021167836290410605240322036861074614037184232637946716934426376449552741458131504384260689773038511101939969055268094167449487774193484029090806004410179663001431563827195056340090474887630376424840127790397554527495403718660776449229295339496459564316479557327888316551525737356983503708027383706593781043174254066184689711907319708992885957014108498839054577207385147586696975792152035940179419907018689335367387093975347148745074406849190487515132667919069086036784515323490752201986523395913091803791679882611439893894282394063260174437189068481223750329682008033861020291198129475852046747980869796642177735829800298328251917015295408326775191997409777143555655225716429214785295121214734749606343434219945707144144709818848538127817541136920976297285552297616532225846871293867034905153837916867582191226634178857548655131304215413179737930002495537361600079230992105641716018364927091542333138193768238525715937464823315471962335396372903975611793510996529702968202914399137110651031703924132347068912477208226715370752609825604621243667252268074296408929480648453460856810990517940650853019964013442957371001474915858715089642950557088488956640409969164207150548628396165612484257504903579959513570749144080576245315934776671760436153781078067046241109827557909550573339943175572526744035500159485160571876095596933984508044178808131042991731804505514927601722469228389678862820017558450685209045371614517493927272465753720048194761811923554692614284558955317831576721878044060466127908567483529346789420853956752223448070095203602209813367433570951053193146475856502892093027634699369186981622476613654297886489060690198853273291076406866627111228874366726549673273646167372647267639367005510156429777500428164500822817569065526050111039152860911807807097553340442672243282985656618281850068274821081333008013429356463337054499317122728788962489712109723895255328250479587774625057254362288276088516804443832822259345782696605775097788508636687103719801535148749998464589358088403938998435359787360091344995624743073554171462156786278651121690791496900540805267382443008346055710236195199172964054778830655768603175917078571205085524622828052229750613783719585846238786580879512636957915115420967438525794749771586680114961992982872262835229788009586249592055333319240722139328823242980872831387318356341188235694569580141683314311674239978123905482711451646626011213132165957055084802464777307640627411672726642230524734550269204006005929806574478082182747905026798420564098228177745166136861560394650519716083378289506073926262803541895510150938339536561844269905150461967679676542479447558151574658880977008971988558225643229049653283763628137080708393293923878808747130145938765836944890003810839724735142467877466979006977798671467667983749097767933643397540411109192361534109636274685919143343144054512362043412682055647405274290009570210418308398465964100073047328696317188280937446643448740126551151060439526805580547468244612667895366751536017255878743870356604361706246238748159962373572150268453695599381461410730975595540450975298704208034785432488473993900883086641958582791798764515353874687738300402410193970644979150967331001366806101750156746072274453329136012899055069531747034820373143479416759474873118886169901320502581223352390508588230204059314255345921978232312746819246257332713471703110319032905245333157435703812876273819861819558294303780175018565896053666134980491568621701885756995128505250357696820350424983826979910131206834289827321441805079700798776580662692726758824137366842961188859923985795910571397445910363909138703482043778464455122015426323153697856552294416562336998238100392419363115109696100783653996564682929807844209284164146664131421585679254203409118845995970475053785564240683592635590719645055919854415483213435499731513797419596530003176206919924470118268303473155618914873227940374296885599897895258911952618498239249231469194542471429684618378166563450325311199659001272824425871598508898099383171857201338564698725651203694169087697929454126823790895114355555239757695561770971875834058116339164958761357530262145505514487947334478795683647454206675913077511270163681226791506164660875192521023973418755328730925348171735087570798508400259097982083407748827399693516735671621555335009004833233126295690808695439281144847802848790915303236257215595866619396229891962874853934661606340553782442346434307467282986889491143793629646544215800848410926524704452923954179821052235079430868458751426145830738154858582954394817349069909936299187979863486159345150850658669012478795767429138885104664661053397587185801269074060294504749220466901488823553131172427270240545607597748280172205504758418623953463487590829561593265079997328107895969287454122543703834994126099696114000252005820959657949887651448752100839135224410216659554686126158759381315385399629370126353895714033215581290216147078124638736942824692051109240004428377995942858801765530218665734284493617830588584643705478387278794178477394916531222506210126021754401753139316378259080551699676976342781797642922810647763431517590044881723448507026465234447964267029100974427410601977238860050813707586000713924019818037802828208479626021489268763965562570699989184122059411738005152402794129254476573640383673507795267420851281953835123427152246202600087439438951031017229780093376188792323209459858183355973537847031842923721979865426685043971870812989507123923260753018338302255111738009584727629327812683198054517949820103794226824310008047849830359225985464366752715359660879634172609807345717363448680568034318930307662754507032148847091381033095984180971161800248066242736802921817940028139415858519540579086749848151148298234786328177244756592518859654849400555429139198290147458445350137531664669408244811230080823599005940635755952589400601757272033120556129149586718002126241457576413785505716985297551201380471305934324832800939837536919846835041176596691791796755851714960926670560307627697636662248362375566075048346303878736834418309533134259725881455728523312312462992561685837123058279286035825370195644469341756652765402796846380707979783523462154491013103351358374801006901619781047863644545819394260728855755198903098317419555635141903447642094679085517449502831116339964186272568969007164462949136080932224238050344317623088830092813850018961790257515631898422127805823799888161561945846162089831467950504126963966876535400950934454444315690138511817877221369097907200675458784814861391604638459489864154943431004048331802344514325405147619351658515770524118190653190186195730838321777750832325535033816451062214049787878489527781216947818468402150922916138408453919256610643621124073237640362295504657736623598283120766270216559068056388257978020112294684704158016276642052945036573519061611930539520683565858095270264010288322433929710878242406585628544474194781834177929742826881012047971790611661564155243932980419913951129158854934257377693022942009628364132720400936079551748657404166842746307659077274021989884759637564066137066734316040341815491293790653501832555913234094793705355451242256719971773761691386181681673050717583920932719033831358183987890407861187604136410076928465740275423113881624598325405161930691487716841486977104930450959638531843828143650831050766200742720005865150871223440639704890574558110070188615625523817862173826682957224137686519712575383277977285451077078119850486196428153371541719606159518376302490622492391338222784064059306568628380641720775890654905462829934820308226332001463161550727583015460339213977275615987111546874231066075578456565923851211989798142651952948690677951884164823841336359399149191903201500049348419524826621185271912133217696560909961995956102696910762102041802614789065051708766958128661700777123785621740206477433908882841998423437589795920051949169028544118457017735594049673134127895724890940713509517408431095829773703704847468927534835883182321962949314377804665951425179880677329813824984389759974661912565685018032647972117989897101792520212766016349355683138326294557958672633692149615357675531001586492074489238915099296719600466914467508585836980192934847597855325745708870621254323629069203741738535847910910355122785801556910210264869345866842181599882205882604177981399253803942620872143232842945627996284742057177988835524127231525817052119252219062233343820791993369612111055719911464655552530072938003527453969119093451620696558196083863547716388980513430921028221974841061133290378951544358261400274421309178974687756554405612392274914866624846930933207777378990423144812629963837466482716532275771520358477058189203914274395470698705673513438298843771134060859232682307070192601469431538263393085042969147749953333335255717318298461813708362616246115616276634033418311632257060258197727909247531958362687100340626819079377933218590266013293055446526517799157736604653985378381179361303007873469477322154888966664703687847504468397217991961205828760778134705956268650072632930370841657316927540853773901562071972893289626202621343570451416821736045426107453447387438642910425576129321424986058950233169521874051469924394923443518996274627452550232053884715689123036034040207883328190868403006118770515143851561461444022978044508271162487410612160809497500313452595642186647770204250053971782205497856004127843961869522520350897160200021815387575747290311640039665398107453483955928683073769062179873969865021874838267087948702082449337090781659107825127277351099799967863023078496178223665760627825547334825987783224198988564681723421800216875815792947586504451074618460913301826944955336616664938270227674496736959515726835956753847229639815605247805985812584926788031944814359610650882663292286620632153573645279218661508987138372090963851404749034430397339003010459444149888401411400488798417971064904623204587869715437476928493668361107839518613647691824105117406064071235318198308570619076465917788263930559995782566865389148833051770168220159433833988428593762642979357161091751062135356850344686224915818211072106549603548720171777628365179953488574195563033583439241328996000874601609115539055654483900052081759352618496389812871925075935387953939991490573149745925952514800754011768288006969419071595944889369242103257587017609099419991541553767819051919143749830584299764652881005618506940163989168425486149395164069592033305771231228240443886252316271936828617867718459299528051370264593076033191725571742815688251874731796663059208722214608899231065220911304581153914125685354615063429609483011045754114848904612720200247541522772372003276543233164073167452882496978415490835950749801794300510915631575799516406097859453830946535623102485621876172922156452462732792083252209072324944154081781785099903393058286515119856864732399782096427957036482804618514035915748919473690057205431559141164378556795577111505155176134790893162686783212538667965243911076343713601480079086488012559011502674244009601172848899219370380551781871322459242887875227583892488375763764748816617385917523312684131985082992566779674619900593002566239560192230424533553041539844889854168731924986877602980131705788665936866264155444992371555558627766589380574223487994406412183932473945299136263536611143386805495477193965032776738864921518185200931400419785056169344031752979348830120751199808506556608428704067269926662528249551007985919924504796332594495136161917005542087035614951582496169651176270349812640720492922050273297746857350616565841141167825580432137183287859332170447822397861966040556715231116648492763867284125792627606649685477915799000038097487244884469458153405421804787154754154140384712737460578042809425717170417205076644146433197699954912863865291555213339431765713792022812607321018263329538831244871929490860325242501201417483855143147299082427026720370923893525743459458241905405082798908288506271394606392836743983728284818227011749871615965472563119313392649760984729457911419415905619577340080877065759418521778649869974288996153061850197257263264936183189991359345382882268107064052145294029310332330557885100486606922788217084249840481642633768581319267148510241641782251914735470696063236302536628795000429262800747593575544552384342895481584509600969616702108900238542669697114664226280491614979633477214930401519459285632890039487549343222231170735190715221252318005879613532767688624524630053695924247714189056543788707616016014337033888931384040626503695286458903305953157902288291023899632561197452359158198023169174925207183823682413144820114255122839021178827312665216669609266636148382810430265470924888817108056373419035970010855815721830491995797712497594177369398446625407180597774656257599503161726711199266737254021277768293866868784046656631853510498131889248962213961650215245921987083714585639514344207510847970595781900002605811630048332131312571226309561574639501502132365897033131850215971278074561377890978592804798886036727729452244991268711201870297914351794927434036193309960315482701786718800979373663053666843803652941218342911607511175852441965252041071612211272311565239299401445985208692347416821867656821949534416866698451064469513434107296887955640907974770847994546109583327675863903695382171243192419058648691469786860235940293534688687153574162606201210849248887642190190772629708972735804450017336101301404689787283681748308297279537824318412784658918991358865006348968468651333522382552050857689680728358859955559660832143697723476254230752746948889709302338019615355869285988101126936892794373790087273744971567513900571777288674657139651899636308523045676865504962899403987164359084796794128151552441782150361604285578199871293857736669516326687360630343844760962719644104770023084348002047884529037318288473106146412955389273792821341231725381735393207955435171873269244133440440690515463505775104109701354290637852111755371464793072741148579692951170872122487988550939030372037311573886610969121787251442317032474998937181856405800040093665905282853550557135578093341575062480622939719309310241407977663594574981618578771821516355222231157715720479067075006665194960139996032366750172539974481907799311878377820171798811871497583488704337852135796554186079080893865570984260422193842545827909280932694650320416157760587035291943467228768264425846491317611827080783703321997450866798346673836899376914479630211806283493698336854301875366349582482468980894322154789243504592149161208337310544089143168981838544127909871744439890756030430133032938755156331762538314831801549916708851163235557364096983093472157846719028452529205609813559887957482952749263309812364272880483784652200949559731441450502159601576964002494599473160423961239431339234554079013833906569313584563729694354090726820130818718727112000859600236749098446935610933232936968075778966398833679465053769158199731511033505536929657883281614260229021137758339661104857431763272979572610083797454792532575965197486894685131491257891454135893544153726197662034533489900551459046884740020857492173243783198460206759408371708506535183899320212598943668627871122054709119232680042375544147890616850254430929589995987079907124173936331681525917644490195046464300880900259280999063470938856842508010462769218541583074599199250368946541425516901931203669532200546980178860230159384138862681696525686905902031232131092761302425454922102575502635037234040742758247065605728805757131940166382294623664476215538068571939487884874133301025628178314223043021326672844287253251255990301130368853742167920228047106821303884313059940234424096971784290148223495442690880193325733038114992360438230137547162787227146460092448478155681688956757676818859322085943426895360191377387713434383048682977878232813805258648112579735224370923867714646752676719395784745835502599918982502791772101724835032769444476373152161476886057675632213324168830746868334494531639112075568966219074021291617157600987749063963010686446486222119627497279171324932878119520589697219691578321381993787938077806337119324639041086122707621209134217573963748063809336349770203968966152354240613102730677674127575632740825489713627306145128301311751337665374928450881876718001208578068226936839329447855129027297086630167527839761565582995285141229334332418831143694259786688127955044733202933828834780390799151024861987640937615168782830484876437855031462638126479266550394394516579966556405404486042400358464738129292708955982257164285343775929907691838582322910455556222871300231848888560383608057609492606640585657409018160569278602208656337967041881147627022154941166476696840373349624028455199868365735084808370714383344933307726937921318102520124220826039870858960145858849137814933943056947925464643935309065378333123426832774077027691823278210522917761809046162923754883380666822024035278688789304501570360445338172797270924044708149045771029955045793289451235278668815774964440831634641372042996304539788051351224113089506753443128579057688660613257468793889252751956780837547850409407804174819563595726853325669385830454023703063459332836136839194762791762134842183341308331150910744377846081641362691671211630497021711655553971888562150512588762007360740928973889692346835483668356507145453789357501550238250977368980238748598172799073611536512709576542577070588855968058811601950623375722129219545267118095533336014301096415553435242150985675797207615611637577536686195741508094406989717205884199186972389547969997332702454215700902113860355802176688511125014138438133074540747352975000382604096437655378314042395552447037210647100351846474786288579340660488230727051581920433699580515376068436160258802719887671724554156653573575270551423729346592512451176373068983716548385545736336339868274469846779595743678261513387324406289461031671084066843532240731539207344169361113292911964352466217103872752316100833045619456997199224074261947502850106604439501611898371962523422096617999214702075461564151610448501736756557760627015178170302424567750252449155447876771938166937541977384170615148951698215752420063654135244973646739645342096260119608674485808440339577238293892616577178376455758239461286719024988239793266481607240912686060689684132081197193854268743970920030986520463375669424379247786334835404172432945993835364064684133613062037362209373671776062823428786819134469134817414990659247028804528964476645624634343578834827389254991443647857564906649692321599188091791879004630379635264404930674383640769326267384322049445626770517298349418663082531818874444491265113365598205013665079063015866504795868950177169178366945557539594839994629484504855258483994782177438797494670023675925685049451773938218480827950382701255804873158754370366204919377145224194455817830937011134128211537579584525830182685445053776328520330406455442300950086369669452220050117928086917362983385283118139693011885950622908654920322905652047657024629544615479103022297349986068847293196485854257448504484928569159779954484029673826063209397219146140956332010970931990083516366313364895288976867530775732473545358412702782880668226830335022097416736983178137117194459582831269647894054661606968089323682727198022316618609777174035714679806741372712505580622966565466560909191514089914868309815099618168649023136878086842816329670339896414998166655157256921885443225598071286474281605768940561139344607271263820742796224338177692008493606539322611016008793641409356362967606389073085168697230814491859405898995283341503532868143882316317017665159366381444433573182677814431516741539195407229168062286899728975932576638520002358842394587947642371048950416922952179347968098362639554362298920604954032660617113206040732472652109044401377040487595552143052132328672792201627219562241989512342777288296608366041112022370225583208810615155520085521044116868798854305116369161288718171273019393265217528907547036132229457286269747893497420234200128636471377854658435737249739535810911753034849368935333555818470278626307986923276747729129902508375119848026344504749502275001429224424095813635771810759327685199072768287083514880174177419807158697515041421364067972556378416624662379101722323960162190906263034060576699894472441072398714831434998161735372623648660429363444761549230435108691946252214507712723739185637624195953166090702263033725694278301527876199712889359901792716411244461021181534315705658008513741664647133146607185820685354502535757655526436084368208114874993715575495966452530021903269136799778612840892525144512491401412252259883493826252134580639923838161248694334450798576296387604122778147305334204012566680783693454728869410625902549701818067674501551983748593953885629256051444739022877449741952385570656389946305297217314275786786202560359262344461575436567435807818159686513265390297004618426027236598188389334642727937239823538074826509818355726712403895866133987941337819309040417965369842760948763380492087522754815528006846937441422782582359655366429310348883437410437888853258309288282938299750979007724543649426482474938146513986363011815391147037402813240115824429724689639227633736119788861257762763443572407147519935433773188376168653555334758513965059588383342985705242552464053610210230414946726248677343627921072868836424320973206349908496025366014028666884249488132444299763165753025826695155770007695290326428832184700299321064343735310505881955308632781481753434479584417051987671141135407250355022152645328775247550990494297787572591766154181082977135972898079445409816388511400647470007196102204869348332225528358328478151151274438723122796770274776996016773362722516733768677419236403924893600155197427717616252185282581753034170298927376382444108710656404012491192840791717239418777994483932284639312596004514380330628972895162455344278378559418407594925017062201931109423225193077269754705373948503669860930110073289704043685689494058838096513116984838172973288306950527712718119921274709920207897943103822408334651385495101061387957669095279426486667824939623272245726425575542503165764435088795836903960913281859945322534328225787333467068649625645086159370012327252558721840437458771649620515194981341237823627367903086791072595049198874303514405755504900699899727742216947410102091540063360269675152402128998429138855848837355624684724793918894042218020341180152635240223301707902471603966937842420055626984436925726670105784169791325021506983518284237307965874803430465535003920146413088510130166387689292728217402315043068984646194034612578062914917211681656208791042469306544236959555478833130505441838679859666991983135903802253263507445995972774063241477452605293099386953071403274903368996301143782125460554362636804594509843842398243967119132823010006224619507426743108024032592404945588222442236441621749093407017729902357882344888154899856862341821029632762522999299673433690432965033836822806423641981576084716798659104373007781519626954275777843628806441913429171732780022860301265096255359048508269526570670690358589981810141166605713597126938370692280711079875623855103801289514446485088088005682747850142806312111847996770134678883800239728594984439266755219918301902779132674510595072057753635093109385825634603917689798386732298838369114169242563659193878181760095184054550406122953862104674987315858667645148370256918426594152561763299852437651874673680252436704764377221425456991571865673918241931828472734426903072122748852808370433371183948616525723121244170353173147212870712937748890844719907224780836073714117505061813903413933320526968497925393890121575594348419056157346803449815756637545537142215741535479492166687042425212157826785109658487093500045829275970823574311348902564089504966362452568637247232211196991976366353767625702550314407299915195741089141213507601115975879104943575690808320446465596130357797112523974761009458621477338235217543139415750691554890688357779560133573615806229256583043287490037088853908061592013801511810054948187927889583136808238627285007024660309216552301135817572000191085084312292797840366449642098805793596962665671515679581391075586808026449173452459305047197191999524613725174609231465388023848833024270943807186947873806308107133532504955518996221559365721403042899128392929735212886778856219920271135495526554102628872901640851495732000614985824824944404409603942319151700680658108683241968470306156298629648831045360275864207650521763607082516805021923440138922241488505774915388248147339138497703169386937539865505603083657417638111804054589476603710207564841813668306392266658627736705134945218164922753908510063038437808005698555057809320223200135211174321522798993358376821932502026413238699797210038093722235766598083929590634998524461750089376082882106464416571184210744425051013558499084937111302109663309495429756175704137365875247999606315679364631982202666527660770255564199016000751022238726185751442955410539158290837655311629154320088145209353447319609171254662118263637484758034485467681366349243431340606181070142583463516017811156392565154462113453152922446696654349918863354972688597670798295917665095839741672110253932183402560188567326036897952155696679874443150058378417915984438230519043329458303209432031947332434369552075976641994903404951670040944922522725975524919368236581806521307158626878894371711567104836430054819496967547852934553113664824292878400117383258111900977850196712247109775857941669419979972806652342688765566030272537650011761552817739005904314528830689720388038058313335767340096915742783871599767108317713299792006579018248386313058172826396681854813100602238561107806619489658971795751588338625169952739981342842070943410354391021265556055352215274450590317499923467271901991556224471246851524549434374377566811388878864194305091782312503382095179168488888283545515017094049201086261985722550407009626955325718634760542898625259067557189542754204459254412788808645087317041895118029711506158860613911469090037722727126814843112189018232368025990410206568329647209464215314006249013286077305673526249011604872047641193805366823724955220057798361911243634241833272694636655421697964920844800076681005148607334946341766159055263432596641243656075284479586689053663101509643420971975080145771544415376203811289740463813892372350101274385324283257709451920519595613028738322697535620072704939400082877153838995987642264028408604903316328655266694272057034380935192687009597124115234821226183153325257431275880763679269055710067113187335535750511008668483466194653842899875031693367153618605333320633360031638912119276558946505444607515790713921932459187236936007837047509366262909382685550398646623954983759717498477533424558525873371438935091960281145322657429162472364340567036210521056781717066002419729705880363752962342273316162840867496145222006610128457383976891476601773787173152750351970865051824950235672091803846465319073023072913200785735296965472706189851312160432248317838282706956866876433168828245417901726269328546350398730111873248536698479936395472022780412515801486812026928817215791530736541131700115333687005018658076755896544476221296797420096569208395865829629028643897504284932678121253607031898553698512736743506057760651593682676285821380206405963001819753086158890565604398610027673481803381417629858515793513522863859873570127018855662921242148236525138489222965816675040994451356262431825142209095667256608504394008223670215970623639656696169706417864874689314919980601406032898526476176736879196814966395400513717426550593628669088563166904616370415804253657939463920683064472859044635915363565749830638010027928858868731161913141664873514992926118966836804713181526653706820136697308178283655056646959241825236685617371566571355701813058683088848549261990091413107271074259663911059381391902145393617407233672014288923638068572225359327136489088073069304094812540003152958617482582438316333428994608560565126030735326995515222616178139525716474073754021700083714908478472032785278141693633157485302806745231157544837638603724776570392689097650300546765527138416956011784072133463201309476257368715444956310471115234787762322537280911777280705485689056966795333703946084453113555025472530814300091137257461103452340500952959107153918213447426051334358918395409674653569372732377652976512234126744654615307206195424967025820737914992082328697651980291843132652903892241757653360847419216057408030778691790563439746811122029435297234426064521766782988664992163320556476035190553059538318965217234741896867836883422776055662084008447315596754076683812265740667881268606055226320670178527320143257682451948196847941485818220548034429622078878000203146853746620120461525857865833271976181972585335654966982703820960606295893716572375867598554461282615851330466916313577434702065588704075014463111737326233148961480486414275987635768581125945634805418423637843068067735620178627866651343912733683711704524941611553815571718774187288667701937034199400168119051808984400933344870762856571992648900307527716992365781802761126134974442441344497595271509371024926132829441383096483088107353236885211651279451390023965976740231322195621370020715604925946900063678943928065823423063193669608787165945500809952498375796067602413382509350106094531525282099798315696916207015626092756922409030486283735673190045840138197543004625770411962602944965451889076227528987081028700750422211254200505523449312436596357314876778608197879200407847945851143409328484551190535676236087056369937875490341371843490600873595251324298746282503508733315658241163189638078295946414681091029665143940651145397323140744260775275803244940536817035772064349695517438637432310041568308503174859179101355894230105406723687237539704618832089421322527681770796380450208976983629623039997319895347821014139260256636138913307104051500892471859778466841827487045984950040387358818673377257797560967005993643230712305839403081828897908932122704041289673509841848572846184863876615284061592588410570811281885129834544039444140162787679617557143357427164490999243162409818678029106851531510705806288999520233971248529020759703387812068668878984046963214452539567205107813120633617207015326764523545139650092791795443424610907038295000485447319794916471204525005369253563171454493264687980321680683693426866484109905429751289448118769969967942191186006650452399262997538503974220805126460613357113817185896821985943283358387146233685470661550786842815753511046199667252812492133488918134808282535349704187009572580590593321157889222474785114307688307897277784415883483622679621387283503529621303848611124830108802782703882205339749280539964866228828011588519414512814519753172532606302637100514843866377474776931173385597456783302191225338119314445209863226453062403442707886890113205202623926196927193840293625088177138859005693047012390502847611329062428915398044766664670893948702366814259054600435632624442089598277581783045269599125238134475857414222422874706779177453595193208365539010586626723213297153999420919938306515746548812928022310708838916651508685657933238627873943684635376639710899740700609796029359269263035130416973401676624596854819701460363083984916469167884510027594092270876076131482933736592387024798458410213350217473630749414454631598069410341960759528495664814360837771749360087439409238547913063337407388313847473883107051598154136338242812406978739520586050762088922759727103679775906033407642161540659438640513273731003243309012189622338253134461032293983342084448129869290228147226669670988493995337312312044022674268443846687614161254814620219763283686946589874568853790572969720387962817162180367316280572490380134731809077487136399090024140943156491860563601947017671663628226924061763134866729022580758957019232675231060451842492829607868484399648984276915407764454136726360354981408906707728502834003203626112859058438463859399909515711613446097579261845836749901553359464284170788640447410835318670620092653328774628998126285687162542509793147149853973248520501120013104831202140318046364215469137299112708603875236587963267541143140440154989717986382230682085159251868023652530035707873867863386429200649082028211738407583716422303600016102462337507753197400968095719386758579532049178901492361467409143013465340376548821524928338410506503458749430724823152878165499450336755181752567564266868365687065690516673461191769734074578272544619189222875883958776416131394142905566383063137446231528178548652425708367891434987692061691655673293398574652733494836673318109200148807063247465752832853357128398590344581750971937504138174761395972911898889290922601844505710945297263996590772881135112010870738253434895400730431881887196700299852127432254941758152136640320209502339356302217444289320017965200567548568122417864685752531638228520061144406715476672295400531144086765890483954157441301596224956726978946849783046596582055298366231428443086926286042742926621931873388686529454602919514665906449071130518785514133831627854890438328312629469781783051267914922732042059022224764048955824771917234795740559380976318195668702563971353563160492507840590542912527857243218018130623927759278233276872191627402513609941920143906463025386726380099505731408697183473079569336293260583881626130264752445468416878960549076592348187540360613419230017508939617463996223066548009151031028071251791999984094137484661049330976181055540299126166201666922704061022199069957982795581043933541430390371223756543456039481299866965486521144145783264661525215331033057975115251785306977776470353849635345235076818912161525801176540578792845621499702711129901240905413332550739525866756199951545096932033770954127777256783386653006942878794811074831053569030951130013721930979185280164983003445518879800867519374721199762402292244864236324747200414909859867073443187325512501839961815251642387412015896927506076662354229477969533817409155748222854069748213665506357340705062009647031352757481691159958633936222051810238152468741998139772341661841096351039056268359523756176743852416136957240361308763472456300484214377957285260898651470876119479173395030738799380765897839749678644095754321408161928346739744250306589872596742287723686211475504612977456540423305002739672121164859721853557893360605801452922165617886891694562579143675849225116835575976661179136120809233506981814974561155922390960668646198819000308623357121406606577797681568471681636432699231070215570182231460984191937524717068350169840892629454689284326454708017004836384501790080860114281903983104646475311643437319671975282594960688099068929198479535776376731027985814708634306217868279752493855433153247853382521024850191900722537668757678644961606633045924253607457240873145493760966212516609413723603789154289032505376555330563489383646665353850453702123907888078135983679264890390869589987771108557877749541758259829298617995618423147862884503169628857211798470386748350474190172757010439560994126270536264465758897296398790891204919914837125095088158553066222133211867842166234317578032529320189301929668486305612267060791244398672917638199710531545802828458287660121638535164524297484063204800314683670161619329931848274991532823600370510068213255171605562294912187129966660543273084417806934155011497760423982315556316465550414716957104747264718134689996935305015034885315886186689639999977813292606501228308958640245837644384252018697684753075050976148552539721014905226763239877999330070941046438945247355936009006558837479171616141342577522647589767933117984386793227538646690985711370329522508441436487348550915836761496367779318754216890468980109643188631406429973483102436411739684647570583763188438327807601548792945990987753599464672923495767232787068179093116098537510239410825067297049470453613706877673738825220952770596140969607897046303886999786468485122956345501479976029140253204464290988042802805597917088656876601712926498435154363368358220504916607199172315044061422023678656170816741607573479344032929800906224046858108519063013498582687174453065475324564705857406243307891292588698913338753230815560048231565789433161550730707128963586881019413213850837699920360145363389589042739320097232377999641907197283240438831661550458883700741192138447920386798970805591199370228381960013033864432927800030773173203801697817789635195275775300418071670589842408868019283238908888734922927054276153193202547076252845679593930261428373848810217687865551641022294798561069764743851145489764229350646321851397516137863013662551395860191381754285009430019455859612922993852751586857169688039135748338478239226726208245950716547403105666003396403729945690841405621585442643612043341430936724685400956374922862075280834477597386191756410324791656091870664514692929848217909776284176439344097007598585227413287801478586995921175977948545822319939503918532435499300490516154437504534992510726743482348616050435518219138456529739324345636332366268415996803597894847424190484621188193598980435438595919758153893891926257738838689948634114230750344275638396804932828099574848460108543310363235919757733712807711575623013817056704566736857366594165287843101473167197014039644797686053309598487079915698485034654486123517944696355311968836335506291779994806909065372653138200040189414606204503730410215577829071775394524041602025437004638709377443897580576538312125417527210097772635077678881110950592819865533774947087503261284032932241116322421798235148936259419212199426250061667073074724473708842294989275497604024140765258594326120035610837532104375729138448100416767900666368743080379146959055759220311622124646403793979497823572114274892195293270525296623804027190140692401139315400935455633545753532685672790186512767415412536447532621320270035397033204958189050975563747525490380712810984343074183248373458366470562084644909099955715632560529631561286980761892329920711772319939344170315515050503807372841700991187591567408073267907841549406612213129048294518253092365777373704685018074336749617430208690604761919522823797238894433647803202809260522057512190962211154970272520215609963381062318010071207185442598421367874336604835464405406972291425900273368724656093951419788689796763469813106427016448616175493485895832902099268209705785220232216625069583467410354325777664144923224737631687690460194613549915558463147471514794100842822586296866763899887971993389685733001705113057692717793533915815440743358699385087590574398348742528899544545950118755470799262401445993000409397668882312668358446384730629405784689283338282074387743164852597090106889224793129148833922082775718155045714863998173288189163621543787753352765834280424502433096354347428340549838971262069963714241779500469521208938831957413666077905771595823561403305878223130387629769116253102370767862248190197037705984428742546041439859154204465720432689711692289241053521525794195734528074611159949146554612486418670191125626774168112203431224028091308803280061000228930987249732226685059016685530250960772218697083923036274265716725498226546131283547302966598410200391768432075686325522455219657636763632682607755385593254827524024427859561682091854759044714796327599938661649855138772670744579298347876314643032752615461490833282716056332096820555063717075968279083893154989458266288867320565198862250892876054392355284745632232429940434685656310121898724688466045356166768539031536554795139079434895977930930838671357208890890899930901194114591960919681839286290913092650060178359562325187079739061992852108863045099799577720345106483922237856916680446459443011789640421705709424052831246479287730546206021182904689087002435927377578805140502903314769773726206337545481737102522181161838251927004285520543801472557711140721810133527432365235584727482139938162655090115370759492633326464505574065088064210206639464014377879977995468290895103920240846519258856084734976304860636746017778700899382566322253355401845510746801138927858223751551200180598288257996783048261555503048425236881355669414203568392876961251462031742646121115058519714420328595076508524073952904242109315658485048685814143594860503035590439917094375705070894363948066457823880665373476601054410170246672468978308092067329287519824739465425701984702025898074708608367318661228016925938790333651088060578346978820978501727678025278605702737322525170756750932132680045012070046582431119054423684236517496807489146543717360699085905135983599253173057042328855059424973089573055602098559471730722454345250879119885154025005794256246913118744791301237794029315107929715716949233142124079509154638885072267298248776925469037959273972441815418476979454856267922970673631321630045801861440241820089158728617542313018717676641965798622677451262940025324922728647942446870201246732775873384374102265048695021625096590462972342404431549365162000244502328802833974858329852969967122166599043974083178011920670113887476532629515419844098682067025324948932813279080023266217647948862105850492796615296976983047550539310216034286608594366031894052045711212759294750213789801435803208486192959388638186564646788008109664297380744637716122544144896511762527320852521712611014829303879663137930746787412949898830688739326205622322314285945065796210765885991520621999771310802503584549581073628180179800915555106595215911865778184178675832016103471239051344272410763115485314398734574044779401845975497355484060442935422448918575564527919083958784220894186050396957021600363420119963076372767568098819929660728806029136904030175483492152411542349924421205816818290767081885674046789429378277495928976808867895820325799998468764677828876965547024413566592209776730877054623070012362164601797334901284699376463506193968791465825711667533941314256966419114031161025911980737339858120165652868345644689140332309673600887875803869489176835780113192961537290004134326169243714376693788024078934614095185127253505571144826123637829953717987500462930034133029382582979519848727167044650925137656879448791058757835800416608958275789719688678952746099263539663866576252126766265112566898646901396972624758842679928832794266021035473915473372290746332175581312208544639935174654169770383083959728435163824547158672825833130932950048141296609093882688236366748603235335886640970802275794640589674969404551575538228049882407828657105229622888819174291375840455267876403827004307718011940410170659736278531579806795688912167577224188857137926004353236827291633510701301061324525112176968859871856334884003351609113873237212905966834777138149719643123103280529634207910479635802976645651910688904051266636538419042192744616792613667307292596905369143992727472684436662869966159505432596713532352145958910167406722161991952718865277192713336971887045960937258434053473460533701626382040175485946357827497542670549126972310464097725292633583462273378649423921089186619143152171347545638474244322190004916555022622699439149636878869263334059624617546686612218121049449367713283929358569957290122292026127401489816968037306391575355369409279342181146295755278513749882868831167703576079956252169036587710223420722090886291960775628922471656461285044108078145756676316876225605208901401594238863597025151793283783666059046043127613377542313219962876209839755748006565151868269774520202968290155210636921885888603197508561622846977716696060501316514823026223944296509396205988640205656708401445450840300082126935422839669015803635294803519061054233275694761832073704077777500415123208119255427344154668358345244444997414665857370771664089672815115786536454980305819009279891761261875627453019949322873958622993134505244053336786812451399717640086257144555113965043805243400160994297854693630935562297770063517071199050473618098819214355707576943254715185892059459645373268884380190801320619100228569349183893420980992277407086624172291018074913752400812967599466050224453623312056391245991849090055453017096891704719744201223450731998818189067985630192333750369638214225879067905676038983846681924448617233706509323487619268481665273745762489091869427545246041793446904277795271763590212049660603358864910259142501193362419280426398251865218083403518089482016213584497412265627011887946992511338626875322913224730161783403987767563653853645938445763368347100297420674398979882277724427038882881945706195936273374431415298980903290728518574788455764262430666052268824969527695312709728829322994549269913304003467496185222706680237200276008457803213768173555638699547034802985850833138828970967776098856076291614680733447779305914478300658311025295166546178687330634165593613475935337241895138413140803325377635822280784118348590247595899433413434705464504533658003820063037618263312901051266151860558096024939552541298346779806421313000144904860068223751471167191885317232857986139560380178910061188559726155130394697973618573615838957390857797185784850628575430128460078147532160424128024069851707381842223303848853207440949214465233297718815881952362726554651440168149321644689557660639883790927747391395339748635132581757522931391547530253108471519132337148797588999383476084601619775222783834818369093457286661152712312210514641135379575491841903300090769710674662098778277461401190243223214348693782598625736513241062243848532307342726338607573917011985049796337909165799736415255546608771175693128475132527428756797544499142615074234913461627502932448055998631468455139829554006549858163675501931717857363779372691537615846240631352501708001567464578813692636977672123788259754494674924983133973140864884947360781241749703895037072324103888660784999418390649092144304391086514072630525640990834216794337888994099080700212445686034090413433358273920571308838905561837214655110600734343310337696648706203003021373334799022382741441625531787526158319144700346947685372007962284084811701089766235742954856897004855284374124643954625043242242450280235234039144892333468124351874431239705145610600463022649890894736046243143552744787911860088215912849214911672663249765103285658872807365572834943931794101936372872281897463274671591298692908095821832226004482608155497704608219243208561611894604587501542817664493551310634886821847654417570753023559877530584508979505226121805087753728624455882087305476532136653205888245096277273551227034996880953658551652623811870952611111919819877882820294376604241411481211993866995947249848955237014059385350328514856418483136754972547820855003437238473580932715166243889434123560893940785000609709804367013186173106004168331915719830366525497384088044212515581320290796924519398024867890942420318711670365704585380277716842899342167578449494705843543337139461363561593829100662819071247409824416120565748396026301046988761282934354743698937520217308281610526535925491486335233635817766448046780951073117230290756754335978915641113991265346303289957652160968398590132863995373044729060121905212425908634781203692195333225355921365858379453631486953999859328817311015533250615338751772269295966885718973515295165639071457422022251495400761580361222312138247272505353604444504762769597677743375811462759999488214695413652214266285134470424008065671730824940494538416842652761173759510469916270567671633335014132596013171207198241558436226000236035657666106660051642289352685923290218069439751502638173941710116418293060693238127005443296355157953512341764167103060576002077876668540762451053115149203899727931708896686860497709825827320551530717620138091710603680714083497487910952954638555904717962668235450449549092561509740977200420443340832453440705753963764483760280491325189480737752670309752104388793800620791526181432437976974037850134420482977455964514651562996699572086849510272439369813469317243156377616536458704511701858397396632986445023795374657524894334122297311336911318703580429220674574507923724964533167077078821820493345734568062726127844417050846545264720164510616651536322523622619695350568008324118425225992948254144087694294945091061501778334059094530664022904841005112248008488592829552191771318780853644072434272224187314951387145076412513961827004580344769543192352317650758511902500439082817511813036841690925041312984191148650401552294251483564254712243769061194336191838891406140521859392957911451883092040370289727204612676599335951159841423020434256140032701105675111204978829333576191606577694206431359989597992807563815731031834375940783255744898118358143222021114221898974413547841742119537003977126380346197397189222787434668833658161549293262963431388778279669998939921751713906139976657342625774678602623980890581764678053097164393464878904791278750114310820248502455809745897498991824463460937244032944355784933592790738032167624198710188413930765544531802192152803472794711229625783546276454810750416432475254946261719728581301533920860729662912027373439038535293148550882756345381574839200312591276428238879771502921276040290995921197094382775390119078762624402207794352482676794570548851916795118609166911166859093354903766816099091180317115812035593245531526548408834635128303140234083923324116815264040742184382637294010640875575465113330609827823263969258295701167909361939461603786652084014372951587829585312798443946182452428045214435048467521015633260235409018742747036636621001136780164871522081093526167064334200355458577084403919038111420612555957719958080898323577279827655009941436568242657669853876462744916189429253375045054685860210645275459514094194830018901705096746368447325416142675430393880615458900906799344625052183000354122679852276876274501119656150847045077311890520799607361137711142919667603985708779450317379367101015902974094772236271422467481343534087262215469363554711345214379905265837465955343882788418459705283347594091499317174554003610613056842302220175965816826192805580271448715088751244612492827294703526710470445966412494343674143208907750719094057755053155091508408841566137997891310638841985175816052214730801778741771810129301092479214752502930476328019509626488024117736967823029202672076122566133905878176485957067114620659380709914654556295503575835679812942570447497014331978975851951737247174663743719337175275163610621641904260164197149967745408445527036408975336120927033997773981948715733880925503520211470538316143048870159424464099821535998666131859395437679713856134064032859918960703459536774928793979641935050901515573779858819055537048193348999456059445836003010210180538802790998182831794468868829427610030924572926683311997076985909373880597412197807093939691775852286366526009998880054213642581891761843531838131044221712345465214946678234373477630342887379395559246001686312635408185518855793022806222134481193384642094379538021201238551760339752784312458638258794236568617631081630504967763479494373474369927163781808147117355569902852541459845096611966435663787698373129526669650267682314915143999978265478310948580827312247137967321900608454654826127388999322470676189988930790837172287347023648917879746341794897619682431599314871826999442636666179553104528843303541108149744310589899704002232804161670581986225041889917143527515474668864281440266087885049308809714721509101606815285970807618931843390174026752308384786329607161961888637446445564472697918640730242316963228157723809102111269878128089969702554070348549281752571638589780748512305296198648771413337621773742630356794934408453807432648092482228671904988818689318198172111327815684933676935835797839985865992767402058521727516198500512607550331045410629465455625698691061275652056921537481769819858160038313924642773443407970253171793149562831087545912747888496346242193563091567553924114171233486226375989342303655091577743113722321597770008963001453015888234333403810630288675599946538103510846026661186598152030279469176974871800152340545976100136740315980173278427990280190246233117494812890564071068416914359120753941336889404927165937397478711518142098480802369608287030974505998471490899667205221518292652376679360823904697592780760065185233847399002508744400212814831281269050603409820884366062504112610901377168506533403466253179378659170496719007804991927721917133909101555791545447924034152114740609212277142481295005380380123393173667479424756383085182361831430104061277786101062862256077272491423579807500528379239411201794963133021635202603400749053771318145420919676571413197268903656951755173666659735850701142809296211805585169189228310360053917095481566994642242811850065506250691898805688861971596516450698528898778523244720845350369349510259222648265179431577212098376488016450220882976412578130565641576018906419811600772612965900798698309650647202580694877952943286862351671606702870759075063880541649742725208099275978884211363173947076475477436815133263219467813370289805938695201120830596463761728350450965515258877380073625144668337886754153731505864859225789901335156280256654069170023462954409235370471911730625836538203241456615644673681973600794453729676960784047290640897861297719697544984505248101791781688798688182953410032279316377160061829174589931037198388498974813483241547837692462652365258178805949776409045009319438813364717772505674060019255753256406910675777213794578615139970478089032779212503082440234849783669533164185050079110030267910418641435442595686050250995584388099608902390664359092006457363891150820083973093597533257076073622181346223235530452332841949121358278815070052279579214677679191211974072164507396560353522142407600761281750498584912947627990137171967244316848546167799822411520720616744781476213534785070871602051488643363030833954791469042293230530393274202547559661147248677095760727756730076318409130339562944776549173971795295057270525378457068400432458580950390633522339954957869151628182082156466610580626130659772926003387635298147822281020788975767657235780960652115120529227802949442007130701268812049789028176577869296031857904218289354236742585900089415621078872694694048996388911926110792556002740941605941931219837780203881627510753417642414902195629254082371443065172511695352155289656412955128666467166412431175264541505971120927502799735855658670328037753614282361743841289080084711241869092641028198876044929453609214789576557125404500109662448099539480766010266148040103971381769311599624926829941538993994893170945831606596663591915379499905508662130895976005631447080900065211460355255155951322385440288222356825459526797803366878081994855830392240104545979127050995731559517852931640351607583882384575870817555816675005422085625718223352940396668960680315903106715246415360766031155678357359167012609809559765075648513400681370338178056628322904975908255831810672897777919164330608635651333577956975185633211462035691873131594725832359622787876183525687453550777648014908405217624714404630017899920209166384528887825162952646274729683109406255538056017699062973528077615220112232148579634303295622376484771305851502194961303998427351066350520736654211502859665418719621248485764011176544701875378071628622316461083534099579891152009973346345155583676971053030239249549472638358262543167199430257768575552996060951922821734707558378065174090619745308791233507886187127814324885077179207767039936419433791208253533987838640805885811492778103108524345681688596480946787191390676230813109068769762432634650515572223387494352722767698516711941186723807754992762955315674520732803175276159902273394361414994237372560821042999100826581021563386238361932977508858816169078282459418874432246032334220065335896483377004825547518829711449317664972509977000659372509788509105054135573359885607919759327407462596563538084005816925037690135241598735997984336731146730577550691841080300834057699705907920649089982149528102546293961234940506782136002067159517219220293236762206598434337166293506714976827376947864156737487248282154068276310963690104206627250458699274192306774038923002286261491317626445666210604735646899475501549717250006232863395898915619443522962352920125036995808451565998377611201599143313793385825927721818293806463153627751617726108402510450262845975460458567050292025464434257922055215649343071929674475030519558141802516282423280621473641130322376816807556212538572301885325110236910936941852630256221156895267406196820070250936214335930587307390784943954607368156470955733359485775102207468186549854117594152363471265186289773295765374363418417492187711485076224936862196232197323999000156715268815843703623871516860980540438035535801145384621217967670988090782440787909027213526824046689523548312507844527880299256145225327348208111549613461521405293475790214322905449040210493796041553242779688426415385594521878538700870177120868936555348215082292770375544053256071244324202161658520628469608088548096245131369424168992267326989836371246638024282355664262031964337788060500254532879263580520010034081116035516288903532527584843028029007605236022895031175637802035570300935970568685179581105522072089800819724494674584214873409995016986234228320980980652810483294013967807839583410047764452559124171466902309306243022158079682815087162931726464341721890319748414363805196052640179264210135476525448388218889321161969680489278644155843343156896219941771312810228605249192844546832218142642185788853082524006586154165932542946718181838749040623891779572367579098529847362386351556895694264105306275242481786754226899656160384788599852757836745953949497277661364820688221134087344788743147989773388727478137663227977655355883149499229017245688447982402783529457776462733881303541985898621240547016474726986499634004638858684371215866606062375772446596232973442320828035330595867982599440874517301663569729016207579133630337329922426252209971345429695297959585558426758932777044308814730860898106273135453152312006352461494589517996872021308574658243054657962936357504138921086139525118284867301904237611322744806487011297941214836067404863873682634992153416736602153231907369271098054766861628304108224656618904435998152157763760233809616874943970211937884621288315682798708408419161940145280061822924758180440199181620129206315656899375724905308011769599965982761795199070977686471267866833486796083777643416790941955464067676787167248493049793649298243802544572722915064547824563147774110762263622486749136231035129086436557915334175699331312406225566818072652566307837022723667913639239111226269132743590828946815794619169590288337902619704626271472829811215450132217181893014670728445644213385716112292392223271734971758003861196259898193454240023188674229360839290910256866959005350662787091505926290177454959934986115675065607595190498743617862422533250970317040040294924206604339702246483880744026997182588775480489594287237193327734739440865163828688423884725857092411164994627614643636707269035899615759326801738664987492410945045121499858304796946741898656971147679503658365823177187416826353226550543676742689636028897496626172039379487120390976541852210457165403733802604022924786806733355964274442850811958433067320195098860757972229945357129887795905163517342241770807469185437385188584340533515838281905973192674142517320264563744947816824867237235173236976686931176630886318113773966542062553875058293624494811129430448463252733560915004888421578112209309459621626656520529266544813497764954970627298819063950636657141031103229674152515929717142062591358864408853847152006974636133251808958201876919509620208821163916266805893879388681272387326267216155567715831771808842715515884624023106142498005595113009524856535316793539736333763719243895091507174805711312033028586680936163986872769033118902200403017164534138907416562573627940245072045613728030825829596314956702035146765716260019990369291685169830214718068337554778005412357888260358254228576087653599888971361432426030156079110097394221199487173341098991703534063191073529725097060819387561772746661087116675813226690461655294368049396531903852271635688271870950792046067866864034748424820574028135461649833802337463552694516904493864374288931573801656193207112017075765384851159332782582623414792138660118860021244545148509435126689370428640187945094310791966361148300152624333827105425463729324634694457293822180726772534171636729172474144365829287221564862451719248787724047397257435977292708027043547475642102718897238331287987258422994701904182667003961039946252453605378250642526928965572394740706805112051187475236567602990154525026696418694202116471711813243874285322071366006746291122674572863746765709446212857123351208064831185629007503649976868257423574385163458002138944573593043362222550579898637275604997533383397148630429079029175227660274784844146945482251996352527379355532271109702306027932629118701372181577684435623120656835925963603126323219840538539170609410999077227745486013628164290882148529484201668556627029865685852754316715291369242276861119044265492335431749243641959293953229286432501270035668997822696866112453990409598328728267529964198346130011233807284002012124611743902582458565354033696580887970090315951079789598857548969071207557412710746195088812983217283252694168001919840074772749230599880357356971392227989303540649914968365990311626664384167921612592778235743977412545191981557406251272547454972572024470315725477476702163161555291344024629007069733435673704831503887653123559685317723880457060232776263151786388186433454753690386211267916651372997399172290445865818485179328424782469483389581529018657471209784328790432534440234974812847526915617540950582102799673761182527825819922634152336362113561595799159552014107057150079952036651799695552314073085753533240187822399263121748997260124897719203329696263159342801334696040133221696791860447801235539792714193465284169340844984662989162671864193844392577892017587909062956549165505950882215555778728737445441896293153229770060335741596426637756216086397268658237541623234409770777190161229437770811659996771462670187214566699473112324506129653861168649566472108064452321890369778159586072396179919961609715604626351809250825600962342059514781831661480921177214702910581836476415057817732725683559663493234193753179338514770864023216828031542312344437950173441091412339840181852215303520158747647799273882760286866422451131134121159092968084242033026939615808545419663829490273874268787027962969438743926133327677023258867722048217403762930934924308636413548530510835858883398495909266920274370062994057622862059219248494254788437157257347409845440194649300531262559332934999651585295246106197022249916478171823332881051865917209038891606489176963526134599423851637288485779832039511541182574406769744333145648244281796920374366988730831908855059420047338658503171477019107181713553366350763704244541850824565285433397462068284344292103613765604817419964359164078768494720837227364213010136878237090813982786187890334413487553651641900780598102317067386116886159450793502666750851702601708916783247709013908014263655663601474848004389563254445838594670468353716722645974271652062929754011754309054128471356451976761344066188314233000019950202941386643885703969736320464343741198070768940397812123281433816536631806503020984615621740834107067994197655506383557569591391563914556870419328496944421114771947920536952959678266803198929167248368759930553012175893622334682943567519228576963228440843169530085868698145994424694704948909824091228422958820213091405819281850501082616344955626318844918603392421593484649907784469725167893778711840757153829496590758596131037683308918309479522675091598397085840957814742707992089868835774518281989471613491869044849954994148675903685969598606723787004619401648086185700848657979632839887113971009717885481430092230740414177420773856696553212996132276859496315173440609650798724921080271686219894716683233012877966073621693225955258223810903305366511229349555725609978350452567552431079138784522856302783288901920683445566601043989581417417226657890133173985065089102649775371723352528460895531947435704832137173766193151353030708836168318413669196575786803235884785853364927915027854199242343580859606410510538775356053253482853529423836501285920274854211725529441215136772487627970496378233280600664957859766347424035406558532193387123233290777583980132811294077912012607310895953296886147600606668456555420671171209235506618871522560366423511936919636801345209239383071306926228754488922945074610379610540750746502978914200448019124427074032611507847752067681342226742621639518488360958552528424652173771642871967851330568512476023559229604092353715044532207805755275104307439067281413028760478755792329736421151600163590549885310487157548001579165796451700969385053807864262064934663679956985399146084480914952417969378332807380626013544805363095215737665168193604135705343087063662596569309193084367323233727338652895938691842304399396588720139569493242261491393475511125687730503194963535731818781035562288508137468308634340271570156664898228488946047596428334186279896072427249969587705231467987372616383607117635197210372535334198938875194265270624531254482126727039799496939625409439801045503760792099044758204999540644387732586173850986644670841805883745667654458675107090528059302657455907032502962823969291635826992302551481927185968248769130654393200226597318860956800540105024388361341026015257976859283084634591119579862466120758218112584952148237278327730777999064737404678437926310974356149354816867811887074359888960509893020899964180177084316796964963601053211350514468639377492294831731183326688042080873463617237813023486645676494538700615818147017730669873125996539443595924486429985412562988965759352146286029468036241692820052197645008618702534295897881097223107671485210014475879755545425659104381943670665937469765446825923485368163677568239852023582531986151606662388033484038935244765942658321705493741166804833511653097268836273166588369533325624511641366957636421829264005059529779564748796844276022310869320856337023857746559509312836401395875421328128427673449242569395282714306590060415706135825643286056116150973047892687153401875808462707586354935309390309732311344936856658468343498078812486054317646391535530292044055782315187829710527254397070070482325619772348526283787199661700525984370708013845985699168231126310155653738560837349647400876211235151063473608549190106493096453456837015945710725988419727341935435347841604578508297097672074087131243552159558460396602160751297579039088100355855655059968777347205670339577421970307721421762608376780043042266321031553583481397620784945823880181831727367211668185117843469099665075097123256239514140453202740591678712237665408528610511534565114052606248906193228142552683983702301248586434355692571577243219053178394638836808466547906596271712497385175609601703186657079969704939659615987469466092382512430190504437145951270557250785842485157033777477153980450709599323534697268962441628810473680749467233013970496696026318851291552842166286860083202610788010483809993382226370757594249863542057432506120156917754174882547993801591627255985966763438733379688441094165464830635853653005329984184253320391099761663867466398089097041933335932759774970822673495152401152910445699103967361236321591842518778052920010767682729221188772266981020293897995432994303136332369328581514807163866631495045370667824962921662605185965840879177605498889574559188512272647406467379008804563884408893832944465098306821564470387789437751338973594144468907831656814446418420859357439705078754805347273415555482969661439509924213287383795938834948297125326740973481749067697985574696189953855963632631966942382702896223527970915934346554316895195369009845736436615993722332371815706602538500119763694537903346120619519005754290042836397121967654647085302153619963070198486117878507156064523601261864584039463327599834678240306307621391996105983891895849100897682282829691035339443167806555958281118848701876927025037199003613689649671317382016287004762918888163070861275357850892367252125195118541185260057589078124824055117510096050896834372713190592522779803878402037133859941436733158421941344801991835899336939770913246614420345588632198804056852506610071547336627676118909000759995060946582669812020093751828560260810253157865025881175766817861673811190089594896121874752417011124195855911830612410074165084291101689954193670427710467817363546463572944932124945024066155377589437037551689757679001244624127805899320402041690228618602404188980892828541890290349161864389418180024214517609029777023623274368271312791889567117789506927534601295824816890606130022052252828604136876233940366652305211187704246809279096814203386043871274825143860121472151438482118190386856701353453173149641828334346519252972860986328983894720629081131484119200697942089073511929457232572342544204628988955800702896285439791592322386099208381035017729463952250469052357033739002627220172368608141900130607084000169814711996874079123653410737086856848019639982131108950574674376336288796552955611752418000779169303521798681955206011413188215953998789806971729555971250695203742818165789199359328684612930773781031471690426732640311084747836518597925075840735018782139821004391666631476197527769314601463536066747365781931882505193155955868517327581813046008686317958882140378689455067326854289670915352094426104745833306446691063142018174726989590275436771021269851165634621366245867178942326145568548350248165739940357751952360539490933613813206347704831538057544960839620730630188295639351716821774179633888156124499473268036868483224233412847776571285179781983137865086272655488544675440399932657872092137781424589574338676030432315679722517009171272646634079203395245818074017313801432346710944088105678480602230994017153175870067964614256724712989205430278878597040769963535510093533372910712596052319122735564758182011669800936266800357426914022341686543905492813108547215998534228830428843993747301611599764492553503456915208433460486010677679987938392633839139121022905659098331520654035518240923489546726024697377564201187778801813854240461671287039126297179027094061794361631285082782300658775495863369195599656007425116959717019745508710733749070350633968386438813195637962297699735080339652511504675004215846260587284069472909951531999041163506235946944586782827445014042480091589910300633034421218349451094470139912391623593481907218114304089935253136030805513839816231838389123294791463257720958693440021808230468322905124395042188531015456842791263247851791219308343565136486534378367824894265526399718547635485444095509598945579519609457710816267653776534081539087450322301796731600115669921059303869027163939477271265956395492391703830377952118633867965110839472015570728767529723856039368467698378611584242530033605887888013857835085589506226399708852935623740248951937490513319952506014045365173253561393490240943663923919656621321575984560891045755445230099481615803402843294392988375273092822316408942461903219505685915833237741073051417104046671577015468828917792706580363241626156865067546242534009308745279774598695861092235967178160626532073162193855440051486727818067210142350125313176374704350754433614221039089038169763214816408472729385447262412157552349893853047597049823806435943287273381837619846453948755465997661802656535470225059270989585747457993928228646934206798578516600594203393124445982655803425915282233451054677126574054751160868963067724201744007766025443127642746509011039824894499163461270525366247543230047502454012987253106316126840091527214696506630059712351946206759958697549133135973210021592137412635528696138931455992123484902359490855691877948899225846011124213938941624725167647863129589319949560247758795578934173515381472225016508849771881091967840243176629754121131155711139061768868477615416715792797627510642204917979443579059231510200407097481865187326884650738014235503847792042594519216723762210496069103002133272819496919650953222653806927321562655392937502572895100434349869660000366936521371831888630128348181949946993879668228568180213923070937626470414818578938336082322289601840837859253965285187558677656934264874321923392328271439522899116061784741688651713484117514816704188937855188589803268318391186180862473805342172064794664985491728150007743412969445702611106439293778899076908765951521943950164362961353888155528752260707228231287559623124537463600939506062641314097731346552299475165873974694910267286084809838102325918001691266635422292769783649871171902249763775433044959804555523462833672950552124211819064300545455403808001754359867007757669377719406095550127194470478032303279885568495925113482626674874495505491035165408490595038021484544044878918715505512668523803157183035308374530619507323426295517082875393606378058650162541296534088886412163315285021671087474797869406477978718323388881794899050222778208186821278721849733279131078097699796077808115688956543008343115194813907331646602454121167588802414829757846107328060200371590714660693054937809205764625787723558948028237779486682063407283503104150708747801100546463147343103834709379200336954796869980782340229410085743672771530107305711985769395927982365298723445168265490109668694205134619472307773486178022243332120843088695228731193376427960624395703258277905735832852562075420689073290643341669598032768017306279383729770442794446526507422236378920224405147784013733814856804061823950169265270906326973271750608401064720505999812602936382894737169068822347406156062400678131041069014372372041047605277177036075392040631717818650376139784473419847761292008259486889075735279957185227134644486440310775982468268387919178293477850313251414622599943125315699958957079294459388421779139876479705290518103831047224838510125429501680805873423006676815279029386498369352224754273624512036545640114016225294511918107432219777116177646548842512609765129648617926543639891065202030596074581869920439754874034900009032495507069458526859464527743887914450271650958936939669215437525820055166329330505530743827721303390760860831876896579814390301568242405191962847951589831656773515781877232829927403448865391122387699223371438773526507734451853037245711340844718076558371680711019853146061544845689992698360002850824867999503031768863669710488750763413202821850820822969127504266447765173234228170553890824103735154530562020443603708865244591633963244085320375911737954348817212619401296357919180317146526051023188707064384337184120453521189086792969439847355521397779798827122083789039400201791965212916318986874403736608755219349625092910114906424568686638848433768960246445601995265147939087690086730408780671914434688394448644314384018074978333898129471766414972584106397432492618314106541860500082891536474470199893812957963392294062514158434834620364384541008491389550857621393387176812691486210366336015947300040643314536833838936778882762563809087964889056858851243010150126233483661233457245329094199722334613925317660523264853907838506502645477628278857959237708345112605652814353692509202645458934063747664450963682389755757771727419457403437491772547973833824163686816672669191610972312525151932168981657927782144879823360270012302174547540453863688979568905404765200863621230592950758753973586541626546791308777335898935057220240037618086203094452603574164038575321134877434271442937492567020286592478249468883523230807388166675982540781717671552387618867562330092068455595893636167514692563248883387802488977558421819130162093018600861722726769829038236226949445815817852103178547528907298058338844975528379959112418138225455331156568965942029746744447857502134369447673157044945295153305617136907661153469360486770229758855629228704631844153913436330191199133396912297754422992215847762454908683139447854429091595064424042876291836551781223171252297337011058145451995208647869836293169670025825300590610689063326368124952926710995781106430776583199550672474995847057069699580928950187021011329794526076670136960086456995221016047285286985781313404394004647664484552469177819111808061701488678897851704367904499375447921835623795310904898534533929364975353853316222835048052467928363007210045273349410895848908431407044382944305851255328759054341033956811634529077139867109455175226469607517831850448338914510234965329854902358715127178926625269250316454885330225832303811752406584713015355596852448815612959879859050774755448350259726478048271653334048394394267362011588257686613760237727335059671143130521920835146414706758360526412523690758119663916962862246922594756455483722991352982193731214241997776915109278134420889441170172209976044791650695187783631778951262114115272532978308512728305198883139724983574609056567591105262526286305309009078951048956692268347338524001580593555229631580126970323103357790805040903507944421868077106864988926868938912364345776653485539445429303442654780616710945678014235727698773712166129208691573897727098377794068572395001026163672847489482200498069978888102260840644106303905188159403001709915212825051058503227393088359317917032757491516265758902838517836618100710117945384362408947667401766666965459318858082687305788410690154797299580552552315951809702527632687238275632307419022007691948238957287186405714133919448313563492009158461235792922852378856473934317073819581562944450602334779716328359524458115274721639559616789847327019157170069276307577899254973776641000130636880067922188829903646048651117147819996031708399144157329034767975326003876566718651544832914168164173316336734514334659771293596769498931567808329821753920940693216924563358158404174219439361811384866089209581447352837322451196525251569609652651376327339016442965190429333731270259212098793415423536288264582954273237282825480054604328012493222581471004578114923133592872189627016759212546472576155630137952457917800539954110022551182172285633929256069036578838306776831346928880995177149588655248794238877511181964667958891472436611459198348980738887718721695104241390488705925409565956428937817033964806642631417443717497891818237795837865304873839812486329149659895527946379159509469317881876198351652828375047036555130217833842694628851587488505817363227702662222350001166884144816073681706741068355520753299707542425865887558159196572839309765784934556127883968531091215167130516906789102046193728041184239767797803514183348144752066791780686706716111568053399773379266847329209351053041880903595941264439317717403594975017498547390505832598652077738015893731065170875365845228652166511657367357031625387464734059055267268992374403619621191473405179085297409258716664382864001221335513607697311752694477845593402500920866719392112445310929430436736645908968248076017869138566732585152431659393891390365263123769849187255916167884768812245949899008355473275010693523165600792727340066285828399669080503001166724712676120042669843843202300371902371904960485081814247580589041961979809505119155261287570522616671008434558313648108974823395586611797260649644161552508392778585210420907885329045703144527685839298109469734679170645928727398023844651377823247103055945523524452001175222428950550033115017117768695309964060363730621412632322417111771854008630586564538212090449921543404735541976173894596637462565438556442918925754777336627054724955715446094165562006452784686855286448788400555383095658343479259813854529279595724529404124230401646286865985116021277048663130000111261927594786464580534081399213805482182108523439884876769617411219856320397530644911240811316030408279682294729249096298729780844519909013335517140082106721523954126999992453346574808307096079166143791244220970486085663203997478400631695970429342959879418124636221443566867501015362494830768840346570995715062223813646663222352664788575086748766320128428714743036624837070668414406734413539448615266805429507724653208480449495839154760808552821191163829159124743426655192307260281136669449252413796415953249824993503566216978333732061271995660119653103835156496038762326796968363172255263732966863939596750432279664349673998344379109119722518203185166330188568736997096258520990376215516635826550292568210525582049170990262887023219161533939284428248784221080531068832926206829112655275735645258396361402458167884205583377143863978856458046377437115692264169770491636989995405249171244182006525748825908230103468829375388332194219154115473327270302292189407049019599587223460383790725746895018398100577215678468606028931562706071213946854960859920192458322569498894013539886864561927887327865162051455142213635584421224025100511791599530610571557855928965354233523874333341754841720571561613339209276350364748074061381862394390247809867702972977757226007417465819947168123983074277743044503798839357641167189761960493363570631022493237870780812136701862795869053186409806506280316510909113161802320700336089917073401794330062073891217218080944916113068192327216756674863866888541436608427059436374346614950877241079545449234101672083921171428118751387542569488527315494782758327898207640148520425810614653356050221380146881566497354225140478262045341809797490549599612615026543862285152094665706009246132389371789131377851358849794895809767632136725147090129936532345501865740849934142487213565027502994969206221645435143023967729618063415288977886571861258529918228175865369718248381264728137164099310410995892791839436640235893410950816005046546682084374545874742238105107240541238050885208400260278092284592843519939156130901242286104404710512856400549141018632156174120439867953168320715357159984919665740256164259692636115387139804295405408499826427428112899829589046631045164254630805486379865405304522716226716632428922184679992560558219685813706144945383795217453164281932467949774879203110183156822512534076358129759470278063423255308815948329899288014123670955064740305404780840515734413488066711323159938367067573979495585165806480883675127701237725917966467651058275582976230114360859636979349567385402297380901858521037627752800609055694272600153253630554900134188709797667545037263326604603080676320263200016066715380251436467986557334675738198962522670243022649341429475701911491299468216765345636762792999373396885542344006258172546123632240912840520065265332683629480791500845548723822283500046176578881646477888545566069976662448999413995012693039733908050715070594355712244881085338251399090031719652363742319458851639891738913500261224787862417983344064657322111216052820637384109233198982165053043772998643562701774043842650388361720784404878916637717684064466819963877143109029193662634031438788855650884095068095529239629507640437715153584974156500953514945594454732687281595674470369349662561104359046208224636010940048683773819706201463850873139770037507429715853269097855801643233315289622522795195360621277217723351639447713109836581143902775943497120300491781351530215436600385596283251480673919981346317103320540641857399033171985520807846674522885933781882864285104464446000094380313128697662206085270477618395443235113903300541547718554196986423759597457147094470878031909035037194272751984793658237435965784183340119315356747595457102371784270049074823564393947139304340944627320148557586771868029285105728511834684081030577211788361581056222113186408701250083297396825360773440708936447898692314722297006022980424711512972610130783591289026199290141410319057893517003051240693519076319269382403488634368906408053428612770323285562599329661194898057029498030770600888644301635726166602723080848296980810316831938464927775405561184110271513328249165086314213569381614687782719392176912245495939823317442463323355122166398402068351680195318378192699447880453588019834934331493334153266108145315366011261648324044831750952878376717154877881296877718124519169943118590583208394642992207281598106642241229182601498609313940205284770569632884409741491869387518608578968328167395878287959403356499794639013901619451649548599653163912187064142110402572455246661890100725653838614480481534773693260244902507169818248508043899225055884743350423206264483760639472912173561789654274640324257399874775149310881255050180285320193917361651255702341722483150333616774410849419359315687410337609199614387576440308414665073118387318473580486453323376807951704228644974029102190871825455539021848483260454976469451558660533477489466762245107101344363136355163057558439933646765783606999129251415115784377746014752700106350208565028032340841926478952226574834578350416582933022733585568178219762199351088321560459237590346942832809603808610368255705103053064508479050270083539134823080346124497967543733336576338531963881124201576718847115681681262332114222041016897273346594829213082931715312745868567691104609245122074066280361146526937451358994558091168231562667022278668983346484516187604568360944624081070349780668192328395061036622898169105036849578579597856596371601064773523682298072000546514205126559467131979304866376175055624082326743279206524374557445849616551062606651481145669033260468205583412256178502228370417503349754100156832916889550486458169352095112576478904413713387432484289580066224706058099123046787229840534224606223349146031694278745084247093609244009298182911513243735020905957720392125234826141304263149133672623524908472108290747412020811564484574259605527911091663318104047106042315954849258102220294021094886222809115891117526419816704281740184109338895819947202113325663466327600094040879996258110148985910388235577298394163398452368413200289038106863825177375395977702557287046322996652309520002737090546374449209147452523784103006149083245613124573857533455208679244716455694505782915515106254899558409271438965073140750706404564088644946278958990631650597590267748992559306175341386061015015275608782060248538363968290398292822481461979481731675681662006676556668340035337940528563970525284308905650927538180949732452856809545839095948984409133338460927607170735380569823903753887330625777232092795423211686745833843489629746740742174448652012535702678829747649478957683510832477463218015968488281923820096680672314475852238836577627593740228478190628635625469446524337542042739902274785896845332157072726011017145766582145823449095924807894911043363086597252767592315227328451655891125501498637089674453178152007832419681077804359532808719195200324206740975945524410617099970144985512845444489700008806611834115237581925975851065373570081042764969163731771789091236152746638333507615672127427588382366860623899761498551730903130712821373187348866391422848686150558602014937670690642930968031476939405857373534479483428866793814013192435225637142420261979997376986594277906290428290146242403619153579681584644296577532107904896316202626375618401250182106112525402482943168255199038019542921878058805989005453736226127258059903589852669550293920014035744613935995540302360861076340678589803929535981352217424088232343217780586842052255173343464167400867079925781423065169366990765992757178132946014156373080356810183401102248306934379853491381494924584439896832354599608795459474750710578475658831236533808964309016607197058134660246061083188117590367376645096726392515698344535150092864793955949391091694438985785568579180309714222321482462006722207229120938884073365116687799635874897496127022711140388355747158091743759914391129651136541079328779609372611173677167245140058330536576889286058347587236239117649613162019540505955908295486879520119939788668069801213172823659251134321412406992346573270836374007187692832240756773797770415831048005802939683222383507358189111900498277325616957791785730547087260238029306379652389515566232051590668321980342334113240555728720327606874000969153293082733747245954791721562047788878997916883944586921461981711812134658675997892685361579855872906134960344129270900818304834428793864435601664908060700352839251321355454307852244330158697687970263905903099789056624643732089426014829209368881235198452291977016041367823244789062121947313033763616320958727468401884880994362746985375334290883120947661819665766937623122914600372638929092631411872417400388617710204314372873940317776785058023636173963488737865643561992923167904732139285401097297894734736578142385353378676711775885342205566687275600547857802061631503354063789589860334088144583431470691028764508239264681768439213993788609349868469143907758019174439703494704891194217830800306925531382512767678224113262201047242388801988840197242430187219817323904535872803824307440263743523052582591397482649298172150957464273012545847766658276581180989023445684974312289840539451170613667423197215999714711196595796353919685126386484964361015162149315208053172941186696035537718343665392089676110378114048026133418863021745223916271663298782816528697789204663481816385067879276781059890778221648257745630906941192757283246729528804320260098838003569720279463438033180661270561009194572374869519269601467645958292073515593807477468660100510886898934578122914739653760828174589001773050931464377539155230181300824923504793443945443131107490529249788607366248446760326867593907645199228087579519304371838770997403182233878453545962982562287022812106180617010546158810998251373882359652895563953314551731908735333070757094465481008050699294206152243003939166672810176839085486720754656504627696812562216154396592311819219627696177865520776603640503886387443360282679651676641152805227912861559578349846092907685975030323688418604052365578059680390676256460913817741390428772227626715327204587093240541463230976787477621947782347268778351224510793825270690310485845586960604608931753934626473617544880406043584490685859692348143933672673575934965624393166259235262637979042319126893595725795712361238845842553043751498232945932903044747995282954651815622024593956423127940901715391667986744035224223248190154874503278236633016636336831098447756461830750391322013562010200982656970472518581026419258949828536836809682985897108401991739818740254482226703057079407505092423363663684925570579649039505184172455462031321060420904890131826997887451283704944969555010319061600871933009261492995050697142772228813151046091247291065889883823248273416070809483181967493988171278796553425439946499596477569716912039403065109559975012379491740187825189735842306685182234948032470331084814079384530764612679927134962222209418164938106987207841515250198635070242636370323135978851603504122375084090239774809029931411171115611633241075464159173657579783440775930283723487683693148630473958474540685192994291328879744268596682974213689789685635528938500538365023175563225499573031854097723290153046273884295443281049436258817436416224931765044889882781940080028582232229683432355312331224064715423396597952759154873570258257404426971783458150482617275938749138697586461705455249327733709129856589178648255093697294625262706624811767571263327554534750868304939953388305216604195906546363119765602557908750363444850438376795258660721878185417784304504225952808111716442638565204820722441161914923908959908291545557096965274316067350962189053506724505447747713440848853427659302227393592675767834904190653223784715406320986945961587879216147883465521772335288853614857948035133377583075925488338199178112782449902956501177620374393879620971903859202815419137757386874642810588176325262315651829528017506468904340753140254569173992665991604739371940046352269876649561034219337779834323095152941291183602063273246584986245705725667002909027190696452416714467511258781687450624650520607142801473662775376183220454693827967820623211640548863649826051463657464928456406109684277950409121005276725757396239916406132209380783346134430944358328886623210314675158123676515471073373428566389577431018977355014120394436704745721996283265547578231897735020600516473312845274651976777311826508392949856193846760807603721264257272493420125421860050929970286798009057239419879349126446258603262624315436981612392576267614501422248453394751729136817626551512525730015628521147294528913299288336149516701550174870490292766450769652824276998128519620519716468618094326455727421216499963496281765129946731199691949123652696086825711148388988087932631318136134188906917084599122964598193576212384185559069910971204321302556715304658709518957420425408751186842097138957907971744439584655793445177222821267043953420294653128144301775493099057732406454106835981067188940333218661281973436077328846703970401806183241562404007984800684374080562172994263912224846208979250452694660240770602242846740606671454856004544506498683464273318456012937302731361129429964106915698317241855530512891284765590936322535617220578659628138036342161961799500047955553037340330226961062807588258168186094391197870310202663481007694917158819065368871212112720911048699918128882313140765239829434096371487356541360139521717732453642411803898534822983492736141802435753586961567915605338093281054708859767018843866200267283639476653802440389029178115687281438285321066862210190953092149432768121605668365220115908681152073431738559085568506816719787499767817612896779015644283492742097124768739478977144256280373007438478093476568070336006628904771477007970029152950118137603448405958941465937171929094343665733643051552365742545663005053407744735080094479069218770715048868571644139027579663724612391873143360588817743711803359881564661552427568489343904390944981246496943442969000965717871985201729916265112129130038246455469091188777732672916620492572869910563331433825165815794782934616004353737883442415805607936590124480261904300530942840675951839539262298551430517901985831623958722544716969214426021595908895875682784852124749928994036550122584736032268761983048716867590526534487344740933827079847860362834756336718331970348962136070257587456853474291967634758217797477207090502928765185838022017405827349827620939736022958965700040430424007674855242335634641952078030430110850877529020733846254436640860667147029959754092683554141336126190939617562239337897409818255123502268535170809263788841562529390604080546523979514904042735876225155641489958840535153591870006464125160831190201999355075134919861616175460379700593885270866144442427813686398593242121624421854423192076967553061028369928201943066685997113168303368582685290152934768913588296629543884282118246528385356412692208268382278514412704130215616857296737232576942005943918245677077783439859235287238966186862054915006817613446407347639646259626083766724620051276298516758160399994135120969282045919043443916160574320402194046173925829018118683738432079438760321297099078074425140507658074555312413939502230703361581300386536940717824182644223937116171550901268139045440921849616946903679486829943549688731859938878227497625937743420840238401102562063207742513376833859745210771651474370496245701446885590419365610369595117146930192905121893498004466365926313414127800858542635736535328339869730641169014577910678345618263817149925931543856120603229151242317654584744213887985339618649500073140198807662764916265520273879793238971227728769595531258943930071451924171395056897471889305556407381215128927446846944237581415025708066500809770020015579003595119795926928716496292830273014930973232238562333669631419332132904322705328687274039822945028885938235648316259227331799756588924548201174169145353205795859090323131769522210813352950586395782489313341111486195776917862612245197467063980612836800648705515394640819439231462092558050235235914869580424710962539555766624647965223981918992317930530117059729091374809458621101875412898564150006517871990053655578158925491053826223274821002282405533624193737761456283697732688170866094636117091758595211270355231349538567455176894375262576360732029272514494035083275183695996003796639614031301857358086444792749623355932146861590840208938243387435605493791764940208739925561857103231200943625917465446929126104896414496185782257151790152966061645536236663630811810360990549757078913747120437153354029996889709932632035118163764060506345755954689408587115796541774848120229190992774107207967382418271279098152098094288153317509520207673141846904913479479411398148472696904315879036646517269859001554243346006529686126995967849547093875831964373337764459916855255165987522603901075534910251870016778743998554932101384915356434553282267524798695708971324354723011765263486134436723999964551273720924613283815593449886046350716996059979031139757541590569967610020898236979736318780557796824273861217577650877999995021358732344563966071339664835994968297427114204189022320932573970116324945802917283964997661813902367415342435879147809055233936732257707887621777659383867004065020314773808512862428358223574169606738067255922438263413105566236930324559959037758049618790095691772694152554499302361081926979751272588531867276366723043155117033000162131035465519744652766914253126187931938408363370379991356562913081555611588819054457896459837510487823399155561227236410183526388906313519696927005346277174080715622013889183478697728738603850957839324798718234274688790134027229925030582305947984691207473123588126905032326816670471728117641468142166092702296848339130669742647634020561517839813203409672212664694577999083710053803327416398157486693995306413973162401364373714903755509851247735093702415973816201395858026536442844302262971070060722468028556055405769283294826462564567207893072217872341562679010200958952263242746708222171988342070675279633483917037112009917106139662938541573266738516254619701153131944051568680621107706010563976029960833146202766406297158466903589249112141492022637014921709745615365404344868641606633787513808898732595849881249414194815101167365687489718175015766907018631699582997746166407371986369028136024939406633276054717162452692869041536134172889296564914998058679887179061725555817391293378897801806788498281641272504220934087228786295068935287241502567884533160714444628925754743456612109741310286083243577238288869283573907988876512574415079905486234788797066225575903196617201334687133236636813633285479224960061584883203364763555900212392480065961338158127769103411902550096277542617821009400956942975709517532149123049761142403419479762433010214638421671707696546302020575990503958023506354135018115189005384811967542506533161681414494104365863709030766529570375497121219121925781771142256134712885073885007017163274636199674710786116845434263703428317226433631036657848296946907600807096700058431757112802561832038445698751183146745640025326851166636188060195840014403776835151661351629895179641077115844340642360603903384585650720683386151228815473283616838744594257208271567414992053865429799878956335973073067752149371666728950908343894275194944065937170454229624159186337631517643942846345078068436010352194687979738647487656903418628404169082708812301288188007108644081747911096788461317521538216360251684838259806181624320088427309442667081153975374211474211453600088255921368255305090476391007941183037492431808835346044312790952165042061816074114070439280618748834481856652419370697258074751216481138514072284333142806395322898469045189122321110714672189828037185510284133961405945727577547001605948657701007638941818413661845250130152801369062171031726781030794330833279630805560989768603913912195645854974424844963142540151693571454358411175231826960402306181569876962832861977593973542061566112962533116694559917312820421790989090542657244699804385325181660820248095196577669841327934002104711115188079332950914510013857027463624363715495267155616107671379125669573284124897931161793717069808466819601576268568108191208320595136921074645731690232434804108843889478681473085802629552802991742312509153783280347557030598091213919157504392567261108445546255019423227429429751880488171252531514408916300158038970992690509173065619683282903607804078955062618667159154242391545914198935638213095327360166248688650503075445601368234916502146691466504487875461820564313459044372478541154820851549208435568599060964898055380689747917604470690921533782964975326515989781824556139970243758092059355332857274409199913090435481001453938223727382118027182444713651075980874455286333889924047902909275130800157341498656031344459735818967694629233400051677635003575063956906499448851034021188248722593320622055383871137567273624702151726261428218007875734143779503371442854145392206901284687065289029116845770768824201558964836521265102695950111027526870066322459949380963057669403793459258872963547646414850881376685972834375354752235719230208305585968528030482656944448511998239501437137102302969830640545868382866618462490569323077421581853259692498243798469493864347729887624551530496475875731368501689009264017509113396381718267330042760866132479700065530273072481436717842272829419252148964242387428805842781325539771223739298166461486690970903798222756811338326551215254986383045350583413713571337427705879702860941006091756585317205769652492230936637441671984492579031860238083995391641058259794964084759278987627725120316117286960643211271407163763558580749582107798729853280770697466233305723798715254985684264305350349679284340529167662797604767122016251881988143093675433392345154814614044804943423101050147581095722865523762584623893908133780710224065618519322004897164711367772401699524852108859398324697966248184760716197611238767472222367036794495006368168197846989518352281453130656551193489420641946382170002566102085172441097383969657723960254461846958014499937592939476570755676350703704722369960451866906279440282231049342719505509970484070071237020166882007038705388014432096144792246303376378720587580021640728861062589508846248792812050794074748125310878566586312582468511985798637763328835351686367790711941239468874608101731721745854336973623979287379034059675190802505691383713288462326818160074773321422631546283893490734510532196253359579733361762576081711311416063718012355140514563872191571983483577485935392973960653605170516038555293049098280786642792210054117502316678951863124295158928771515346276178218907068895965114159039315404471530105374783428665215728213757577610191286321865429136540970155004828654165826337855514296135534531241915592276671857428578917977634617481319529493273540917254969096052848498648504944043753514819961938203307366303888467058600851140944827243405040081611065045792789455830773472671790254576240860140043135855212711086082128064181404562345529928938176849820265976005526924787634472470210147704289738936961172622487853435094722706325683450846996729234946843279641760109584779042273718779140387998163833462832485058654793396823133495181790638392546245836043537186856606627355503628676875814931194318936181154282424804855428741733175254476326811569012687391584180410455405472436359811575378379164296023974284589090552322196898898282875981551959426886015559924275550521306562323650078900918315019083558263061341929834611120078900428717314578181549819619344516290677346340900670935013198100183071078528805636408070009713890573439164208773733186265531167197010164170620032778879935169436727955671042466324036903342413141211583061248888400176329487012190817370959001229808807457218929094797904225387822744155778039433133356106100580904672250482942423504492726367335447590308997821596933351942816764331871872853618643929761795082948751806270462896130306324572070657982020450162485333505441849463388649850760826310407896678425632278028286769508298508825187669374685274564182891830692839427326000423206157600066338981067201804293031918051114205373244989723268767165969541344817843149769246210340903736526727989452753291816398998869932715490857256795095212867882193601186863649597599847620611623527958312428409447592430074589537703082219825344126412825420174393147571650254359552906748337725686709817774049159510986798226917030376094520672578881040128490119085914627483780266559083752137371711339246201535151318908877683962815808907132597157887148146687396783102746384247183439139482884679681921687848672056020398027535561621152387442828524760643833792103900042044933442220583812319665049445953256272272817101354615862106599092682534303238160333153766944363303740888245751367778945862078926135142909822986963564885592137025526731576217989728302776996889554804717639611635022726694182396974830109349125914174907779251702152321936053041893131925238067688153002930696358352128277321653170601633026263005250356157892096119730983042170180893884025720579232690614302387410228181570332744397808488084317073290980093751607429391562067646413964898554282312890862503046680033924618292142805848174998416099483470865332143068075658716187747364037210307550004096581628160322106640661090469466675064641985640105511248541750049043800116769216170851634642485622718422199577349760385405470508253262475587280869220605246606172143123878308301879855132643446622117373572476844324308205326197406667174503610381424282911385927312525763461451346045301944604023842515581030090642060825558122251589545230995013805296685211874506839533128344951540024139274074572893460735090543939912120007153184370677120203811740663173456060523530767073926282035110200282138201791635832082594256422975040397376817011877375875525647606326279502773987559819217661288460762845044948061495314650662671228438862626753781896975455100407415286948709817405536457024643676748784754576522257595313613520206981716690900195565542529031157575385061454311568455937048692226660944770741396574043022125133413899138958066360791521113278428427404753064316193809242688658016227772976448988287352551230813434426976459570291623342721412950717506271717065786201301379715003156992579250035145079720371248502358154301049378756303942732171159820179846374172778439971760098736925112446425329280966372272276076634691560181433504181096637132105567253223612417718893022189297559942118658306848738317545647041642171779052646312476951033853397623965341618708834339215206087458729952908993781245538333847726952932203431745174667911623484337239967949533769117953451323875989810456618984748467716642431612626202983174146775000020113562275467598084140186114084605367587983620465779371591096243415456193764658477737653033117506292364387574432030939895028852296718902808382566648169822000803012973434833544641015575691365189753510306145181587695096534039593398388516418943400275087914057389909719885950399733481134605144181900465337051385050609226445740762652599455441678286110507299331197081178767593145494756532052895282086905945005085423033216488402933132791113234819537224698448834018222495390996008408200292273824481300259274348986420324414068867856151613930819097589037734685283841295515755293971670790854928657666855025758172989193566886094620284316949612782867238413454855199148178087380718896032581383913331839692965112868849466372069727900850444036548847093921663212404576757558652418922212711445693056418456850433079048296456045393922397246903155060468641959748457358735693033314298922540776763598029768161996411744668138678377480112618483083468407917422757417874913864662884977940084187879877691488025046026889570409784205869266425800367965309837903242925747503613484278666638593090063675037402974324978509993738972388888891519924088262889581666840605458428327640971457070357090290751510328392443807283681042661662507071726692781638649834838694883857157193758216742218420118321543952441128206028454643674791176732443039574231182078664145442381099345890992228650929794285851148588897479749391573447957361901313826326986698566231928426600613817054052568921249936304343886998158931380563935823349394922225008221894192753472243798875687926581251725881452466896256140519686927029176294525508696811439412245610708011575250225760984041476477750870617963345004720126757086296375465521843959144251500258353866024170982848758405887587754812670329225989255715458767017457321521735648061336746483428780412930614279341599421071920039285720513843183518144050959594811242767485303001608692424626076151980339342298376216548738316118817575408034310194386351440046494608381809361197074120389872025003737236810233409742617427842098174685141873878439929942938774106846433361325821966180175406886557117232017705948168598887148054874608619919663818777868442798922543483197511718066597308299252166152828100131315975435361357678127768768625598720854121341897081361911160089960129944807233196031567904384068239662411969252832069792705601592517381836709989613624038563884997526080735027033979584380169345333706223215525979968989905219495266690715253303572418537969509585969478195997785896839285083549933604106609066187257780512057851996840359387585037186139978014285864319847097001119182637356499792543722665228690098439213648661920080326666974897073371229447858814461257110616729029839818370201385945053304468620844410720866863524928151984413042928341051028265883024803668120061614749179833141251700815773123692862157094834498230544956023697232244856944119330434292494565921900264020564791395417286880693086360154627533437368048159961023514082534045522232388349844381789632819606755422403655894757746602466229166076876035043026133820815167796011086992525997364648486686018772450234856264287511618077469613840961153753614016380397709191686578915643662563271967783945331782326941068083319955790388905440040159340175357263353627445587885966254462337616276440235173103564473861009684228044177295151319128414501982219460333946787230441997076440693719408995478063340063381522090581112951914302523618057184181635812587120159005818136565715881424541776734487579839920741868954352814954436048765136080308303191548798867836159004497746891856247827165466952810605046258313149789376517506143233797037737488632810060015031356160528360145507553392340464413498639545947995108115602692328025624313933500734289043988780238221746863613443632930872897696294441934289888551489295000722519190802912818052350483621646126345935366126379802868936588382083519271322677601584203469295089745449987117264701369062453940376793102233063814705280218881061144231213902798813826819357142940453352540641832419796541721173660643253956260165721569398124580944874010502826369470272800795514301226199611850149377810997849672600013761157321383408304673524832563235199835857116585080897784790814177078962307473834575281338409112480887942117328837896768145062827733110620933127088043069758686141413319718838251799535981940324436606700278469534635624595019508805540391296520141711563009242885908865663195988159273108359813790540926062908637458684996226878098051516833464444208867160850565073818023505027023218559679536174798528221717541620535589701495588673355933349742548654967036200474691012403844237695528397965521177541744379167597770238046777547270807779927149794435053706059074097167245499104211388184970537404585473142417974877062242211486809401332978514237222756267318513113993450974388218319164485407481925556895352019019766657106157288816830806984857589982224461921018810038355878587593043800724863260452219128933217278154040691567789756135905304725687214656005234737840360271832749675172086521486791993769989340204436745430910594271625253442960472006393829662165860606357535283389130289461864224118154508740732118427437043611273579717291843921697745973859087320484322397306870114334278769223116681991208984377181389422704764418059470623379159703086799030204889910943020509887754404602828743812870217496337596944479591232609044901406870157308117373448607101194832361864053817654111493276476280846764030870314207156489054737703614829588387990390755271851837024900018691352678495500588482327479335782091778479642950610053354495668483291584038003907927478155190791905649085320006871195190222703617553995456179559184715605195881366245128009933141434635995873219920441109832873133192079696436240774842671599166416266459910141896439283372385100762037571672080900079470613560458378365858477057332870529026508418567913598345036753739487029285025661317684727496955328373648425183429844819220834750133837939174792594048826287197444254440270260392280675162364386095942304594185743274999723393094527344623845998914210838599181718556886813126840458322379991344465626643264762105736884608583077274707898951328471398334228836830020188391952914659252104032422973920711863827060654692631038093015400605051120255869411750979449323495425706055702756845274205727834109600367860603680045584561870972593980322144552636293951012020335442822546176772719247836119106107786652272822666172814022370222630423866302719423365072207414969735965876033228304595046493487910578929070914606272577085615201416449653778969376392944187023692114478465364156368862191672057008261282774885970006283366324352507815666342395174672978583859823722917217002546083307939061625785663176427048598783961313969455347853822089271457223381499799232437750792467831899764527147643849685472046256317405296763555108638547034524474659762524879042938756526408230871772066235696495123682990433553374829168779046603067768890571269070524446266020226552803121784395984638407733379228862637259820837127027361931125554076217331553436794673101148042854703334057890570169886272001736695130743134660211168974778785509311659306100215744024528605652544197232891156236243677555455123632116581752527740597618641688806476012370144906382940242680378210302272823354710760951151588267448740873240709484920873580706454510829075903617756442542814294418363911729411859910646252549503249774187030463082357107503183373414796356244577191787740141996674447492254569281593374356068849716268944943226276418626101867162302728484951332669503184699202409829206224139820280819678516243143814872038311475005096657485200705608094836946572997090135698739294452735821361184818805440413276868157814692598460773856995741845536495515074939010160533193345319565230214291321645681382941289812646294338803165967960218753222898282310394648929448442262852728869067757624546428341158772796757988872573230302147334298224510458262406569731659945876703064707459996185710890124677071342744823684361249600571295016678665256131082186200141358238891004881285396546652527085215688799950975585266420979344991138932258874373978252219440146960684875676102187683794798919955596853321378866686661394128352359308787200278408130811745680586554235483829269593276225367411890193310636373284680408043401712287134105395994852546259219485585403130090670595020080559620876847218554903522816972169660014698032944801713323107060911889815604840135746970256064577132164368328688203654592556649466267547143633919222537761811983196563517760783745384863376380485402629502332147603738107668713231497551200515892708853967762213029370526212387598720498125923868874090756046819929502833885794450449820316601336085190706150057018504322095854353014852399758957780590926282632817498973077088909140265761484336703658041231069388849529034053855554400799861486762070907883890313367776040980070813442212476451699774042369999302118477008737909348591091225924276037660259952951626726857071521981586008040106782306802034572076033324811498560781122652743439447353297359453731351615666205374754453438802546536389707387068932923127787009079894081427018665921945004250292668767963365279795792259050330289817530461141873430638850982001601476835278130473609930943537080619305453830967782286454397196883480894836425550922185799452595688975532143259140143916928446020768302698286203004536724123162643046249012261689134662119460789276420563630400839427314209377325532408135274194769253518071521148320623241783307966847740020825762716196700056108608257100624067660047794652641355912935471339693409950862667239594330809688320469394503429234059778791419585697800002533004281731190415930507359918983395837695177059893082559998718064886390790482145637711188870362295612669338445904232707225794904900569354548231663435503354101720353328205754939162744440568368665365429429646681160922080195667812495343328322381994355651719651640831903462875536977506467459600457699239110670877543280121701868778923195660699609701313428981799380681044065900872174013855284881124577278388716257518815845621170958099460736455865550927345808449539536257491798441905923003958828688498721085380198146090785187660036270971435457702786869811526803478873308391929782728295924665332178039677763392544432402869586907031644780172346277511052527890432800052006435665548667633329374157414229588108390518885908016550557350918387847403538216639021978188268506114830209872753655000602594617103001507404528941242947049402279563788140282732201661921163640110483836093556583207877911326147584105723414207740054852101570814394756114769505959688743761708318622009225203851137969607378203804716648567197866591050502979825925189223068670544053021896800781468370077210510861615434846041280589994088661597616996797611292813559323074911347690318967271785849869138256831647696415503166166448961945640188432888756258402127570511593036499235804133505817736606309036110146924653209548239125745752271080942606696907771582371719488099041012552909319842524871771825546498438517376648198944487029121694039550189859347440916534478299877170393165531556305587282825260328314803234800711242056578475099501168463826267199704036911063555501500509913520242245982206194980097034844730964354443253030990908868909884963685638738281534736750225916942581972425875799628763440457702983720122509936389152973927797678559546072223005416372048519565864498925991864539598864128169347519387862381758675071918636162175733093833249287388330535875750731215937120025289652991442529650860357444642262340855042536978767830903960752979960127639538568617273146507038152452209695952388340217063350186741284587016718019102317800113194895425970233469181742167230270880106610925545052895241666090288122363912766265101381933260621015211816249472216850103147878146826143353203387583706059386135373796459791593767380750781249270099503523437115543543565757365253582700049134336015831332966308738076048351175982295366997021813609773381440447349285854918299961104194816051250153020610864667855374128216325478822194585029103200745490916228354879884353730236758599818547974489737304148710209961187526148064289958839423264231821688461530611866255105621660075912940345046702227007149213726135802404878876806007823485359863620933906883058180968352260800623122503259543943325833784960745211400431982814322162946684531821442303273171105481460607130741539445062207699995289801588235081691353465975496687073927138793675127258934733629703264263604330997274406134160977648709964196305121895364336747835432804173803901727621774144845522535513220377420667049186982635370993948295774191765531850262114944288330692262531028882353518739283641679657080412273347010412369244369425594771810022976725290323449080839438797264265967225927054600332586623776916743842015977010038586627073408971086869038925717258061080345171595516861047203354997773525802733871834834369905617211752428327189217154630503606785369737363914124898824595913323961839986215425123171913058738411092354739000067729817907774239065772816564628973183708953929522702183823139072425496949324420119940490233365900013027235246451952942439118993818725539721274582822523614905061165297656419237332409804991447542345294409887193067760085978548177346201001164617143248290163032500627893109243295233142633306320893207351058032563574927605470743661428941225840690728401468195433033266442943942051529932181392547373710051194730346334793685630647180175592085506563304931109598823425897674552820815798062571423736025982658481235565978929569494097032892537282639368401873904870417066421666586422616158980919429213845019578147526585523163987311393958472947686245924314602258864434706148722550981727001564991594968950172665596183819841586430063025769805489572981685813498224856845723266895804438557952850371875882389855208091815432855850295674993147260774008630473897883802457719167407707108062049622376168824161932207474056994515081554733724779912349447937243203971522690440508856225609284908162218969866809331170333132068297678280582530738157171536896438017166106854718217799301985662460105132354613140250253371737681332756372768541994132795353857609451409887765815417873727060343888555897367349999582270467112942372079682407814501759210568655721232230291016302166655223045626937750759821497492892185541948633866838428559461252723106527209925984330962951751235312362168224335335623901185755574153761836363883154301091822686342241713477710352456007896633711413015863852574482151419604059516773942747200339793823903704644587804268424861742176284528157356872916503558036444910386359933520993072912060757174196343907526567441080834980365246244545499066804785842956734628884073536494800048927338752646433615622348784761974386217852033460835610363183541427450516979275460207568951861156212713860145293909550238581183064006546479976817789434316716200473637592314410893938350699219246496779937945488223437692521375520545988258004651524597880300497404688447157873929482007193196717815447574518567889120791774846264649325848766184760853258821620805897276209547361391941017665879464320462046092717888118837706229378171519690995635065929767185246620288342554297190416839149385140104261513773033939286478175702737989825278443810163873669015434111953272695343029855954081733676646775199116749119328704796040772823941269589279368340997407778651969901981022688104583837761208005308068279192461321967656335482375783745411846191956973626937519858189138201985778381513183224551549559462483970843675900304838857212901768960181605271305375593701277365416438643070539885313383813760352044956079225004624514105573934109323223223969267328378347425033285424341207863929149441064839976484770680425422351189656630776432471062298108606256823911196379389678930577307347144109482847155076008574172260612462074878156934879645429513111120474495337433205323302480062682258990223707066519018249390426647192634692543667576223155319780387253143043331290702076455868788503453695740201884909101549185858059906398768411853005858111264082008989945827499273580441607151638146659198237918568945705919774593489986982378324254183624177190832741136239042871363381912317847682332565987092321333357196456158648083805622427853641824206994483879244276755401767348769902121896651189402902044623183690072469737906978882040774515587773641363875796629142211628681021460643775151509142443846611617214461904014937837357015659978166248449803713119413704976157612204336169378883430230761855181935914997094945973507099456958942602501719259276943226622621745541451474837417225859121259292839614911087287621653088810539768127429580875366235258521025193898514015558480291385166920366178344082781823104638795933710192145472748039983076812985614733759157159714282306663724853116259203263243217283581997543066621361021486156001232914713483069582889849212129469482029282728955623419723108047629513984443304527115935870533959716397680641074960201155045023189940258287376623443588964148958471391370977937333941540666333102835325229993357280676621243282095374582802911276467169998430181508403660500754102774578173124397996601492557654597659958317853089229751980875329618617413045119741081144469827679291859842000946200173424073557670449576492823358040550507307064721494734028709867957216133875736761015502471844412869576004102485675479279295925929994564938883527289327756033570991965894782262060726136318126694031433396773100661715981060849510840109551014913934991889455226316570461415301553441866109296068419866732305422137507456501134721553739980638720024020367538675000766115343442454187065786976330194347495403800153146301347616423662518631040000753331959170425557228527137622652200018222570674834741446416626083440105641180485546562121660352033990115315588655150559413528913411092211198476207040617974269951409299885396800379128120317529082813631099802683121994286941342385373386186943676055970335986090941101365872139614598294766638172669623608694306878801055306142447225673941936661557624453569057762593109201534411963729639411437598381636422187054854292738747996700704670082480883332458444971735134201036508158847104191415666219503305161518987776204630918583009902877073009265631191189797276332183326530791338144413788631682444363194849000589310021096720102921803929775732456437990715419179131445008702274563720814722515195581708269661121872931761895891548638084117475519431481984269128304422228507244168546323617624173344553186623868697887731302787077586634532022456810488322700137358318354727897527605000932560049260321606001365370394239938704751746577468716553460044800601663370446261182301702354113673294385336285802661465644759676743715495653458045602169478891383156983860555146231017319169451965438477994773313085882817608257277677031747252913179218821416611907891551865550023774236547487306691364139643718080596596080753693671895176902823130193414426756524834951276850158203951506484245558121968160967801567119752937555200530881404075186488626748120564341072026637451725544166245041476266648675566831867038043173569254271560287643599622792303107744462088191991184811469533087583203410462118090878949645250469560155560383657197428848929964421336976394008269524617909063333782325423844467980382884540252119090702182143727264600162761724793756450696808752855483327410178085836614344884251067424976222161370706194266839273685316161521636114900862662566227017813020544233839411979449892184415266055562172649322323272010913007105153218785802351844712314512415885876210694534338062531074400272923038461678880102455786458653703861043871401341630370741619048935389205051297794025713412793915609216857796576199871042779249973407650268107491859165536183870592547059637175628033011945238367164937426732610020356779620403337879734305023547544657702377687755210078814211170359208363537800081268247211935955285524156060202936079771726765912987286803482400111347504771965598233760484258136044604915081639711198664529953748857325408811543021217830979482817888033142200710727894320613592017364154080338637070287403784259861475062429041200853604610178486512365131825201060110177956200037440217617443082775227215084863457389560931676599546296093223230932887172417717472393336937485473935319047466871585904929662423599631385382687980369489052810081718325218078974484590081842819274706084052287586531883260454263418105447792292445081793919739226067887209811354711967337460316439669440369246576447917160124601951439923503299372726673570850689247457573605854447901153883494309895825551487489324409928490633300018188073724592985934615886747787966093518182892614285390645994941997271036791372521228277941605629428127862398800596642783693686752026122481209586474315273565712596255185901755654529067226697850696774000424034937369483147947624797553119965561686186925952965541755570539195395071170503626738403236061044991661347347461929549235946844773959783715229405819727495523598968014690000562984713644223241577005286348083778267538419576764608634066468952199979465117473301864950969641827008529593235791551221087220328625381265456877260774630276283034877614807073815424191568434525819849148516783907838311323105098016736113824548983017677940787835905418010321775350505431988854221582014436078376347729481986074638662075091441470948826682468739421458802515392021634876487218744729634256129319552383460257463755573699953614888639848268230196135678705907211662045167887354894774217916600647507715809291356050225008177701167679708780108857842070132119027469947259398566053777794188743772210014052663112875855565204519919668802610691078291052261370964742047330312727224270264031548879433208093333065772853823187142255738269861627988930694571072255078641297682901175953694419071798471248047153089452727762982762047457354521897630321700250535174621959677741506138090282558578349135872502881904101164283405526853192451880336252989764761634647193958458936559239713999350583676503441395618871362493819514321917259417681810461563884863880137767511637680177209013952431455672314382846882493180799162107151037102427473131292079153278599756430806005167671178654063689847548219066330968195064146258784827479755952891060952622311449627525410764178641378478853591908747165497066270751219586884463243739980077103985075712084226715521735516536713276474812040298473900283467902081015214212792590838658892357780073972304418973644723502434418963603709097027518985098418193230036599329323772839502042106950148777159560453293410836743428058815677395777370147865254730790536711467217902514147892323450269728686238919211961759539788651287917936660585516631075246075847927577540476858529169571526112781452072342538535932541506673395045870340088402569451821914196030288096494045261329122396911327841933180074980332057541043633507949587521982504213233682128964797908861244435049474119499450462285154830089477994852256492626273790308001915877926662654554909431474929281918833358409517178256352827987749036674326873530087151258702577587379032566875304442557504981004271365892767515670841193059894745483642683023556792328160039305435222857802106268246349598639720311127220588637785158770416728639012274651433933621327992486886728484479919305715800227250442277555087468459220281485056731351799403175777286550435073386963685407285976701632257396603107809078850358787046240015419508656320479263246128270224685917905544165849119205657037592321733765070932047741630756786079706326024382455057722440468047256774949387268769319775126779015234633430070578258691028471836218534833134159133001825545994029408591467338178495315748845637446339745315846609411122222539549389335068962984408470200124482569286676016908644705854658235423815489636532118794426095521783747504058932727078073600573423509197714927556275903471902707274164199121625417632443690402566708360569363557118793601506282556770498481142515019319344557087994311427624747907520146227667426704464032217835762488574193797586133717285740287271126855560543246611798810314842952238914036264500713295804448440917826675222436065618961716542181405108979073170206852966981723456568108518418213610198544173346474983539176626052393451512436497945273759447113841046428912748595355212613144918103335072159579273765975339298978219942220371590929184545100038195099427133261871804641066536308682806046222792068597272772724652745470541947474982027423017096271179662534179737101120412532938579746272457500452587995369291259095119247198489468913157061533360001929961778144754414111490482440785842001430270825447846351057207370183228161345709963807418890914152530190951761806514308713413470935134688669513491506025579088886257520824310810576123648996942030911802214441342129353556867360294529268031005082170536528537323175983311973125873561886601738822447965766855834821996624030646022490937718870321114264483260955282924854775238294581363581722845571643039416746173544992913179188889560871979351919457855607591018235342540095610705854072181686085989389806591890965753461351993730766942738403328384076475482763010466792464468701985484233156066895877177526212558708083389327636987126313734141093395529237332045649727772753229722378483873265416887964139089767053027268602195396681058071494378703718805662897698536611962045294262443412716980794177597335094116512958591410485582479458955392567411209982478219185790261708448181738531792710092809986187821271943887987872895506843649081015878833222913033583536263808312937744692870154786152963638942892849060329464436242280382160111676177509164319575562324227303338305283443770744272644116228863626210165240218400945924023576783317989083789140777442485327746956605793958377517174386140943730157115849937357926719036484832026976741973626435934927318980822089428921465678111920965913655104611154728908496884361069692999042959520470367894180578826206895799665961316549900729974788858377059286737582983554467428902085747602530849816966601846830471817818196626856650293280006325987508239647198809143582067597721752746432541348407011523084303955382083976600781076693063023138103137829051597849535545763860453145358669374140579626919332733569153687096386134912302024741184667383146091703433740634503022746875659851789748284822319726286600189014204840306046677444571915552372109004331276507138158540988043058347354362344171133141485939851476720902346404394587382779978859096447766135285706890715684458481847555006447078903074800626350473036028311999063880053820432029348212814537941783851205041564906630659070982115476046090265083226631069015390176004391338924669515334637707159336096213908225063060751278394191978032791731463315338008448281525130194676744471350642516300170962599236625752812459420377342050514654949786715898535959095016499432100782775461133421355409127731913559848763061057931258902183774097525631601858708033813168432587115228731355978689223783319272999304951548058304521583450963739183830783870598567026182547304225942634201079808284493313594204270858597080619522201486031409750820833476679099000898007806226182212259387285621140797510565342388661188330639079816979601093179861340507338634580676219123160858310324905242660213364631875743131284190344153626914070518385029553216981385061467238954084107027448467641399016196461927844038988532153732546180267966795675974320098145622482381015833758752182842659046709450598450188309143310760780519318418562036790416900265282022467211010953505239031485674084025196946543526348793982332590894013732181351026783268657512190560139574490403576627522708638931312899412483375083684394274987483598025980438820170810310833960446651652902897001737074549846359816213272758074460609794764695394792565916089853088248469705701147784419509984186420103255708743830842626492386721996272612586215964041796422388612451001003649874639836821481906502180391393247698394832838319848271424668237280666450231213071285527548761043093861782347426570925863327523980616417512664704297804759704283209974861885803905169609515134660874245803374954027963447825647239265208211698415527490418167110074789062091505555067276445259651019978298151432856778030574983085727277466946085672295137886581860748242031093593771387843409336776163972224883522219928777571135604924165582662146464455725012213460863060989463034828721523123063346304166820643204457733460541615766060597846691359648833938511013597754098973500071247504013652831821729183887075464997182337720798761607509252236814217379710798441899270451127747378374966841930359930011510036794848379054200119691911330406422381812378472778248404498638000452558994111206827054463394103790195172358436844095626524904775911239031806927210098810207016941924713945907607762546428341705576179982447171268534641761337689061236272995364319608514890633033970603572754683157437813673785488107102024062230561395460446341217712647189802674300719941897855087733192972737275044913647152607285183975119021003353317118068162268286192334812499633716050986942942681852210832058605793766101472483243356837203355764603570562546202849040271344811570168664028616132392381659406496584175440852908517827354641637808583623894988741495873890014722448731513609366999862761807397747105255113327788465525263315096389320521560664903955227593803650065103253761143550926941126042697378280808979571616370775347072097691722654731470535407600140441279379692800181609321955755050871093138391165906908863721036603613970950973971679162656211336309081139281205305092847672618008331442778480958080640080741720349067834559893866436842910796417758368210163418598854386164546251567670563811326807961100736556443060626715706257543517198423752999996393665224941757679919111198210600938516242589842645250472300694000397696946321002177728939299283562299422201100200214112568485333770423160923893029247429625635705656320021665393349577577280167283621534743674672538262425699591616993371308496227970675170624017001682160222474194847260631501644256292251840316701711235150519707160171987335208680052214848085823829590161086925640785539083236700071749358120534757838979164348055855154032489397152142140235425669031057119391065553300773539156758047698696001814927302293643459762266170680636076695578010540669880796227490939245174552982835513207539094171143723667994541774654679972795280720960520013692186810154394763426603031100751490404654086190220835332612376008954810147948958439803836676595493609587025818672543593665702880549688472213103650017276873083780865196563613829828067134493213571339909061742284236115584725812606068241773200263364400296213147483395936374071516176283246757390117448294323323843176160316252684730558107463779465728944209162046205846092793209934471103013906858464207399388467374285626803311450679553572320610223620757494946744371820583204066931416043637616321758497098760659457991233110330407325288727022421353401476676364586961668710984514693253221758219009288737913518657583176715856288015682847471330861130698704822431900283777121918046275347282246602867540417478099228845414773612977035834749322097125351613283960895518761091896909895386801954720992742147974140382481634983603401174983988745719873958279217251065408053594737292413058502576821273644671763122153022951139247442740330180569624645528061827206623846088570256491504690404594579568736384359475508898551148313560070281096968640628279802131494286037740608895474060012446832175152306444392291462651406593821445867942342092662601823705324725103943463786740125696112862319716652946546486593084705874936561995295047754633463679119710800353339345190006255936585236123113634138805711262199939220808526181978342132753698479086362292174319464455742604180811353397477932802429403228152309336690051472529665957627773077490000155330586811298822377435152654400489906703687058562533265505832771361801335223670505415345153706460611317962679744794410745511299278541865157954008040647248763774552204460142667743981207490102750088576131951312575131390151975046077250269969954104169020509962853908666782156149599846085613836311122488124644528619675119309512092742412285847010394619241941067951500218273054841625662102578672461007359575401048797502785742680626527001852674129062527500167020472973401558726377289779995744282337890408976157749333409860441767524878109367478590539474668853764771173953667470957528158803769316412246718032453353999928409704517784220162811869424453228465232979981778328501923778724599629685558304456057474607695506264213257352696412274503902502596747642067901641872805837294357218993879997345634685824379904718356050947038633374393671554764316356221210019965133573732398106475344025859553541139936134627784562480300932037387847984709464901875459611162210263349139717268404193315098915581111272491246634464544974943982861823159768995062902880500806301301634804355353869365622176578647011103746784020942172411680280512884856511267112989177984524492513481687228139730955599753368515710563422666898188794448033698356191184722907156767182829008625034343813371557887769489597291446114573069255036901493968189288817648313497266996451951046081468546078540248208541792380459397517120472576741425759718466489886643232854531191720595602775879550162306984297883884127114730676354396439923288588973373172072163849440786791945463830557013705727249519869511072454642014192965007892966595555409683021636005127660664535742547603484483292791532020503429917280033261305893704153223476123156229826373253619856319175814333113284945289003675454132756919652857074637100217316151304531271201217269333651431058704983298059227090708690951483642958303093799273222782976832322262549773634988483354265796060529030423173446008358701406601895269474879810879715202662024687193995022549243084110569396138279002724913673077656398804043521052134255731063156553774351146524839554018143117022274368356030025454340439063625980298328451944996435798013690934119913827215421493563855139589843577315792591070734618783573998510653735434034027090668581250808580384096801576380710889173799820655789131651382326149446338105866276798892469436415062351545409318626740303016332175255918252774284793835406454322669905691887176963337737960935127567970548545317377434103279927136002313590994180629055124085868877544643380782701202285230802528222680903045794509403216495596385014776871009407896493181334932462683844358869372502161651488802787360890395848685007376015571738257600731117579818693505395801786160400996545023408618946293287414298143148191589645465389528605861835893057959789883094055670710979933812909850922664539583575383007413398362836577994178467541720062933773737839563205571978392313528784125325457829482776345564926838355460494586211687892506429243948026801695942466699560315058805113006738481378784781585556445628106155997009842091798480120595927406200945562830458302712849837593960733437308743100813350477500848840341935156889449980691354123887886009736488835874796921590263297050355825765894745926068802393666034328986887427612987440407779009575952542133342430453995564757170792249261435234086808123713276944564713108877054342018588606212978109266894087311131587605957501421911494643316933174611827786524357863941664940349178323230104252556783863987155411898513809268801880211993512900607340781977768637250748039552479290604895393207448354689327296821748390381217778769133294246919714207986279504851230497486180924072358721507147106930437370507263685557373663206916280515060086796067173315495567965229946960509248016924497953553226963723835461690742895853574158335793508131321102149775436176159694007445181599368736944826624872808116200041904626264932303218230640938690875837053594530761857140647091127161409938382918363391157206632562332211605318108426213463062598144124931403360841769197362396450028703285076302455475461450660826805783358072229272492675720687460139169898692648794509877369680154591701856989077187172611669479875625547791208876010680665192997326196490482254255397040667454925195682096064901923244381927735519658714298736443847560620024430851956472347490953158243318370390041958639189657636172263558350811272110167908375560500811400058127802314204595779273891013888625714043383744866325302374825653012171071138616007392140991680088947290435799005250446110142049907612471634671010486550007493204209821667851327644400330669049870242365482548852430562575387283046246007781256020729070293239416323269351171157942853096871282260033618222094073304336398740807838645084931197897919296592032416927772422077345647662629389691189733556542107285577275443970841389115471286623036913279143212896684600549157018934509607816709847742639980792793236055529944119043235795745393672195214160637119130413263130741745412607401089194044364727731510382061884570929415870656154053245174176736955527221821692261118684973107511267172215807748940356021908030661591842329611627313741026201402842411836279863573963319738584509298674343458308703830640070896583365670660080772672675685976432157850671591347700335848983735034391836612190863914506077997137211839556309452465577651532048692788432929779028914002851232397557942732028250203703191931648175412724471819360634333624779467669072426255054566832951126147747479413832258354102434651589860562621533673055496629301922272952363291548256501521661313751897826843523136033076464632356997962517947512519664479284985343965206374719374235234279815072478145716231983681752356497458713133753711470805341664787428569471957272455463128600545487952800702047124629339041426847378050328841422451840748589485773622255355341490710915613127285847346332257430464665964161461734700101028812699494522709446800010002185626270576301145115450810463874349402255662691128246501776883153947700113381476205811578169020185208459092920175888227497825561778260412574924033166736767705903663140349644411175401585334947413983780425912036494098760499666147128289845663054646798926124512719176410809052707769161857849893397856134599497596774387786454604918651144677653307064771884454726125215899044568497427084811815167355835596732197504147330632273728849412125504776298079604024626712972545451811911399313776732150724361183170876124350552559237034766987798984743735865467854002317444919365666698368970910685548133315355009818410139212861266922279550424175140316134354024489986631644958072524756126927137474907942907545659105534857091534273063357763409123373234414371546023057837920653648228673514240038320359602225545721686062171979929810600075655587778437602607538711400151396603927501077720063199170074406722889001332349357253487772455981052275599021160223613198642956092009109001230388268666051254825151007642354483251564291863589095235121828722924656032156834867241286889211426786130747616362720023279595495703747774366762881113700752527691796619390376977021752140394337037458849550791298664014981202977628473255975004026659056198849682419573677257178200914293798156773389591758132929609046416486207986831645007674983868958018675680750842183180342540010361090248802777194775889990048016585050250101759820621686122528669617803648512799363729227794347225470193777474823668576380192293279220304076813510180496904227849590549762116399533804689541441802480018734118662728018012955036461497211185470054174763209862794445192008983872896387386136789826859972586000252158543437681281285292985081762966248562350088803297970231047557214215738150964839089729274281340604134786333050338250684845264076133304409801619460371248690234049370287071982594988555151371463050695711458130081414863627245321834106776870811569868102968147162846584390763041189352452664461676816646234849144849414535150375416812367916158689558405033229920684588453701282719012589649198790472118096762406412190087422847387455836769435400846646229594737249388062979944405400516955914919607084203913696045437628392458005364866304127972055543772167268279253972438146437169799646466108240938059510019982392746616808206002385704261916584294921757547674294846504932335878511917325071614439649836977134604745771686850479501681815879478927298133445176633863734987905565870640932867225260597208619059926363893820271592847792721322530976558711122051907773776882590961292113915622892088898728532384864536193691005137072025740704344338985435376854083136826260105179051942059524671728807092448270705276072992755581228709881921409921068129855111150839157614009070316616137836297040178241386371444588689851797782975789882211478489305806021515484377224628166220422858424439182658258504645082654837060292752174099852532578496775410447097001647594241148841506280760260408047704480944475369765976236372289676465393662125201531122375276767800770956904671900959327630129891113163970724871575411037499417115714491671132710387154637467606583901324624647778005112724797336863174261044216559312818166208239928986442841602628836535466590081440915715031947864709640083610966532001863775988114148365865907215144771539187034683392550137811192291395230059284133152551674138556348290495342047558128805606081553242519373040621638937324236565659439477972373809895868652971848336450628916477062917597188348196764426178796724923098352059607535051632352927651686482069277169546758177314759179953991139729374371322231580826792544621517985366654079623728544535635635712921547304227801799610017047385622972851989245495552496547653980694767785610573430992844206367250571852354220858259673603023415914467976446400241993560155853168529080846766172376972259290115948179988462324823724811134579617400886421266625989846123920276676647223184741568531998335967058780066709911061485821326050653678541880718849554697939196377148389379799252470997541615496996215980126924916996554090466994547884287062229072776128148545058471599168447109472743207571648502922939677408122045070388602103427447837458452142187871753166236339381750679196576410014180459761894542674762897944883428026241747519418938789717831722533982729872018835115474198074720073621111230107018047236043472253885871122441920653069986628082584301502440394055420734698394512036154239510082124770227586994396169695170420879458538112018963725359737846213709192701302926910902277910086759552084936543598548682685156502832058775707905747320032288663906846541026508055908691785586299923559506416026168073972699555564796664094569476029205745674041627893770813047487456361574389992030570563355756971264197122140857588750332721187515022530584505312661116675815373017074636756841302689102695361196997964272455725942379909173297692420946114099466079497769942792458643324794075644727477961897980401383807135335932982218269353327091770588658683562923832535024430908074018164266953050165284062510901255266681228821807478903407906677978771602906036331574016488999308602249204444382307287624207081406825282601410999858530428241271978060214019953019719263278429399994013000478506528389697753944913373318798185794474905334877511761825572542970997469523148541216618924123984628248812328182343444665999219087468614941611228518890775981939123888791605607158330753033759616138830393002108305703143132287261329868945148506561144074223746691805150439734180901773179450004872261606766766562106701692379311283319461432913745771276626931856247490332310814660190970699572525902580720558336219635541773784412789636643773688584437499460594372353969487314533156176022859954222175398409976906819502609164379326108529848353009521596888812376021352799508453189809137065508819428845413366640890487586990828695363090899859381542704702999254912400628419033539062733461497800234605835985234955503336366767362810637104217145525611984028462882535574407214345795554167849028274287707229517040486547393168547764270409074678030576700963580897262384046527169767577756150334272349591598307506145979073940542758489083936697189563559211382517253563327862822235359959676008546318372565599756072614237555036113582057192753030632311071334714729983030891179198099183552622390372157821854784704006993453414573360171209252944639225858273705545075658071778677488400767116460262585907629546759882281791558734379850625448132997283783015514510877007462311288687577645169706761666340085809855367891875297458559405243558294978778014587707809905570200682289648737578870831189873237012454016893820232897055445661488901307213189364290458711096077659989152523058042693777642341850244961982051207315141916012299171890371101949293773210016979228143091973829229133116081305052320881761010211690782360884310519607634627426153885665109367474796731440057698898373749116307153964547049855981967885962350195319021363298829280152944598123799554109540952170784904039419630277389059136161570217436747841608563486748662085567959938467754160894676664457215320155474239124216884050741215652433253835327642983243283418738513260027243828110801041409289544725447773367839282160576919384223862588866678748953081038492819355135186465850108502548101065680304195631336510544168674259258655548902494898877920110356364975461764125555467541639231232980584505408596850362629106420907119892776915459357990453282438507070770056488974182023806331126564271751383004426258274187698621272951608910892166658764033261601684172726435747865633776884484680616884331249931589879496539851674641636518614857296940179681351928210770537423830374560463351599651342569936094872714726564585122713275959187662085717525059657684273297880434736915789702055205581322234419146973415594636263546910375801350970055521304646972208992178625677524692635322787319229514493961580550373339554543676142923920771047990444307231155993062643389539180960018273023963597324260556081354759989827016155324367950272352927041846417679500859484153722121662597229848957274034510542475210600116724420872382615115105625972269519605813243608255545531934233538227672764653572583357554117040429615102521013294998060322145393626475394653188216106400718809377886078479657187674980533463246850476706373729871437720989450062735782696272197637396823245032909094054136855688917504379364977690904520648830378493492022658847345966320890119449538324609173931035222746868172411156467144038224424843773026178969044355430917414650427546578855527238253521776686972784458318050080790276760911387950532644157531090724362909887550913732275636285522039719645335835672466020073304924960583332169611467133878929168848078767824894856180060073102892603225682739163853799918382456519324873574602456669341253416441552877564830062794918641396632108859308075432810724735375507200460388735852167907751982119972290245508767986605583252249529501492800740658762312437041534747033076158094395967906332104403780560893618600756066325824149066988280213237471463767818967284781791496548375523043465689367460789663608787631074726859125189174098144351859144841444437157168778859440829472433343717559614754533193419144730138425952025479147177314461758470839350709411440207895643933164252679679710212831810828619162491852540737436229712354180437196886598565129036982308847095352347995602248177498217545670982486915650830278040600747456564109871402189186442662636809911109509922356222052610398445098353075579235424592811446035700857820895739087867449762995188054793697181845491158140387544451200094571310418584891702268010732094657893084384736996882149894284286289652833792282077106697473656574693685211630150087773191221046919102638677952026502189214883535285335049922046153002312142167133759108034687182356618593468669081488669284394504967686314034942244872506476986978970028802276089685356041201363025672283150667907582971319381364130971348891819582588172011606406607791041631775384090612064538425700376577183314967087293557745966296587622787153242359446493330437148967356550235723293478447824465393558107131521896111844957785359351670611505686935701825465517481987402324337805883745804050840648942426065043793795829936132908820334969429127187222107651417665288292303202754554022488380266166651736538484795726715973756044436222478148356237245227064125199797941132932448384197133953576324730196112640520736971461085569570751277329266328973555745665324937876737293119742095108099098121346742562061165056523451775193870160859936520378892411937500323973884829484541795000418601934096595880540695604508973422954743220236375930878446642390914678451073699040778097069370525528350707895319856368716464942130969087695843912799517678434338715199861961655250427326325556698424071929496173724747424028780880945982034913803956842780174466539753776631379172796564619697537203560302672084858654662409426317054059695049943938461118826187020419937359717191641493043937208137512201455776032706720394792349150707105763335840902817479663053619396577564131319441726180954921374605301123744352761655147415731590881913980873512178433618105524083763259303028568238278009594131193877824497149253506324679006699031021894929511983388629106455622475647500536801028167530684336388373001047189350392003781305417141575662674644435178574868640687079691702174304386774604935113087401206655260668779540176252657136982350015478176516228301111747598827301780402705394957382462448536476332083030802589673436457078575711268837965318119043072396413296840008022772262017816076463508476895157701270650268969000118252533084882947675085669896017436606388905742142127091285108420854069998549095477544160315183705056013728393987041907964489528722781214211499062578303215436349599078689698976137039505561013636607064988388148111147106503711680956382938679516911725944012381231653713416067408133088986097022609029752326464998946726058578149853456522793041013164740145487728590809470940747209031622396136622041179252695903052116996223185715457551532381213996014471370754922873808028298394349395822066749831423102507124788008468301943189636620115084740042771608919248029020996499328277221251073801261354794467882100518735027768131750834650659444303081449240482455868648118361452952637014018634773297486741571244552859160005910720968107145179160920255246062397104258261983042540055586182395931543856914421199199599038931886936566840706770038825214595653966821930848117770212185030432403780899120970133416984071232265376246281554754657296537890921008961570331442375598574317012845517548478284899323394330863349119224734612516253320834993118113932790731619921356479581084847321930590702286624558526161424073644786622924485042737291188754535344378311419736031426622970309759429189542004357302819540286991537982843137802552528802363984198112365043245186633527219210044546864379593686672491957865815500423851256861830708587906844909296457164449783718620463880341056203348972239073653498440343293767506178407620133651828553212897890551832947887519264970124470032194729243601979141433806386933175427510419382353676568014217393990704417829374195909231186239217133403209412403018778487967142339820570187839059015237334568324830293603982772436633126975530080119910068726627255402715720356974574143835343296458595569698036817492704683026878300167108233461400672341152457630023666600931111789955805307396678089473591067790986142092405955355527888661767085752827603701299041354522242146138046674531622986874775752515586742208755705106745178291912623821952772914754247749657374079359134908323301397224177253027600263131176518908622932994599588103635248720664213468652344817373271138098139249498636393757502022911352213302014922275002105998264843603116706103839484666362178693707635916551715045536841417824886164732362592663211539919060502888380697332421131887003645001220121163761823240396862973416242121131948300884503013510286886304313881952268691190699522693604214100091050919779645403245958757812419599681251558554201005409958885352137116855807887483316693338580126915126289515603178478158324575259050673670176156333542172019161373538692962301255288226004086287803531870432005799540251295449511580418201734177746444939904796578123439935074871278558912849925287283438247323578002606579612516797419554082727539393134756393103979983604634856550867678935150682778851016734732445218102635653648823415606708097006740250908801632987651344079307000537960007118132448448961274613884038290687212978064063150430684380673506258534947573656146574040993166524763218045836062787303929437944073734917921842692515557900697467356302856403288196720043532865852088036604492323626224794261742860062984244520027704323880609436011216794746426759176094403158396005611906541792162977617764955564809588530424572341470420838376054775493291239727999018564375059971988833997012973356196257466785785206192445141739559680558486470196012434655812708483411467006782147506446110871713370745478342492825963220301929410036588644672894199709643905600396311760111968240083403052990713820208635496098872973324682614088602953784224614574268815430295312635480704235713386136749581275885568673207294196320745228419219142138598900374831328850838363372287124599513489405582972327607997391123953009191413453764759270565793433606661114269071170283712356756381762770862456808115129449869030034460028609437796935668864416655847633552952927437604679636948567552832339243457289009253197851719502059313821369557192423548899524437473907106952148435442496357090645434150707709176164631300346128496052406181157360055717931385267215264582337580973785313021352740760600321539555043837129352840913226016906201900841190753275366558701306765518530177562303614677045368346673180446054499624984480172266760628182307306204994436097547704726265471604596584632664106398276351023546176712745733311814794571305161870102137198823928408013630992918500962120525340934021576056897440061246160591944021267896792584800623942118578647045625875274657627694038726360825095037350452074772089073233410368922905868678174376361772116382955219807109907516780041419583921161210322932612641812696050152432121205804925880201177992762652187485382653087402680271173607085427328792379176781950653156600765800572213264343641131184605585380289642294577719912298195500021329126144498596231918538906726373201188816150006026857822559411388116962863330931020200188747223438171117206401087917484736236522519847745442963858513831592062598254426035287009394341269098014810760461885074412100983565760956465556166899722171295100249643991955000890317604982528077808604628394036269792441068179351277465782177276532634034848255425473988794423339686614347056117311087970785026426631555364231958614674247683576749066243878442860556828297768929966814980940926427105860867849717265331326612085386436744753217269432527662545278106081817444703562631170984006045732903604728503594772974877049277513151396542469198702661392772582693731849468687454455639011989208239816581632084522151103547316685457772785487945141212836692207358241725553255512147604146390474961319210198756340533442253633737461985642894352882490398784949197543964407960597427723574250206605014450690241437603170451423125775822395832829598605873538379382804258466234723076014178967963323209541521988268525483244820200746482561210030210460555802153994701169601341588107678003059402544787802639974296933277585467618536067786877310260352457013687807255241812105253370218169388724255607035393454208395387182975317623131562238888033743415200100684249906237023259295732956835159005986753838369221211710854192141165175464591725495294108451375099888218160749533480515468232273719042783807877644716318998865437166705123456591124239791762467505875661885460000124616526165234808059775565611237699362278222073404777809721152357838214786598879490716679461499158248309924926552677084555474860212535144624034876930611271109324997862926582210523990091715088686589676764935388627226934068208338423965075245746318819270551646684061725684016496539460910258662716939178723236850222203859542565595655986315341967736285818923602074189178472053353346466411290199627884625268956838827495929597878244442264789476843725555017094762298140917606599230053672662554257578815649565928655858274810374913076305426924392009553206807853145725072713766888626853238192434798078749680063442583395246210655523613629207226659386345693341680444824673714237522487893760495112415776191441386631506178266638825835647263113987283057402611172628954646870012279735101674175104659399308881554143483433521652159751470653972271028027815597042872128972793024035119878629298408529504341250797543139498401147008441905530982879937401541880269679914056435670997488375390327357294555857759394967862819165464671474061866241770261807775218041687476921296233582985519080779052123218336318511121690102875062784822348339006182840860235720945460421949606026014257219611238046775527964306077554882222781034347533263376645049580573911047021300139043914577529787737795180678097706763183895705337147934484150383052422605975841713097131990621793824758595150900513205450099954655800665653565711746212222299091657462682911941504961291011982071346857567070733791847509665111329100629818523572282451668646969506415583912651467415516941036205640867670454503540169167089539792153557760661892056018328993323539428713495277966123372155158721389357667348301408175079336706583411716399233917791199319227770731246245231373222290048726746927096124654546792676387519758769578179262005195943642016167456492905484374417653631537491939240737311591861301480464365400486017538629356675430681457988685049484415366010148228634861181901615250171716119679199207863103453402359572056412289942067867713716016811246348328699832639528386280926572965114140170151504961134934724979730299134215886571155428619672012514896879903544241237454794236659560647765518019730054166207223759124248747898267990137462100622204843217613733877184904947743070363008564985721635731890051303783951947970782521611720434320861101884708975376995480282705150188181074388452584806471786468791826031619381910550099078858757726921021423074115102863098376491488209115756461018677396916806505739198377139647664076464288154157244358801111394568317395823636227435934659413780216566321807758248127187546353754539339452565293646935835945016236327404241789339221386148279296574829023509402116568477648584471685633999313115125798809020841777186336613929912808215010718857602316852155348282367314892429902373778142876117178715941746554785090739513200283287023732828810544707551107407430214154778814588451595601554595816101711083164163419341304980909492678245413859796096412006496265350781272091965734539480060205753431692821074474649291081659823482760896588918765788966489236530562821451093271823811539746342508979714247093437833446426852215244966197383266303953713140559898111431202130264223363964235785849826088931116974832004124604746669660183077723197010930613031685768790151538078106482169655878324507337415977179335263255324606697083933866489814472627391158781142106761389621459402261540291427777945631945992356906037006003495001925749877303190011300869350594527385653082280023128355398212807050367969073439229753268016744937261452535225752685154068662593234283580529141191644630147851897141369475935848527977443085797844150740911905242850580975207418603887591970437191198510462218568082969928322855131770597667213046718004889069731367810413144855077981570309597663088820793223107168051430945875516408043240365711692321392780788631787677886705558453142989713302931107167780630220341644538449030592364237828826982649601945586947214023712617448100398277268278838909638364120899551160800034233592117243307638876801255258762183666040577834251257201565541629840489862164062594784233777044275639244857706996938643011741874513046313413968182851205243554870975118617656033429505288877864574353800717681136340651127168604266308762830755370428029186987974792433161633564000980295010813689285665824481489423060204406690181125491619370591142187601109734607925716205554517635370023639967430442364201974933257054407461702716020902836197216116012728734966485627780067143573029317994992728880683237910197240936775884898820115024301748137371803677682099741434654020757749077047881181662742173700964909837131444802298962178495892807266467549512166684554430318694375769448183241536787207453453032988451708182407938080917855995462323410537957247191480306950834501898091857907162435266272272297704037763011217603733047944527960282269540311506154506646024055360934926508677840189455134145870447258869671394405851492400915789482832971173145655792363835468322574606678808261898921015584064169669308409776659937228711885531837181401684211245261402361192058655876183430568986422002631580275495871096320248566545523573379308136763230820308676891138472498188615942769167305158713992881052404524765735328011576254807143162032912584267304915075521928193600639412366102146159966280918686354890249699949223922748065965537593832675012501025387414037572026596069493611400680771763292576945306609007993192482928673292231757148285608334352123838456413880900814110620194251876627663164233329267559455793548688552123106228082226189274621106129451716613936442498920200505478229658073794257456311051962516412970809028515291563875009388798492317228249469152143389455050710684689690171517476565395873846496870977584377679189665302938088021683182020535272820004649116466686893061305117599457355048820527736824937917437669011487728862697414024513058668247808229660417136354882990535992576201506789579136222178521259402582971870395564285931531913486385860174132315059004102339103870656705014176514033074170767242560935768192048474550721526471336646244597487802133237932970629210939762092417465166164572454818194058622735129459136976625931850762115915539707924524636053798618349870091460116457864760215734580967355341492549450111485935994026110970908472278524008162132339239260995049806724969227515754191684779078772128257298302397543935123313776982642557384235204220595344702611652670542031068051910291354651285552888390038236672156227963019016773398004243229314487656088184651198270938408526453163216148430981473081430624792934270341730827163986465672342168248119619741862677477236915233767998002206065331951480111877446596754611578163697327162927817020278716937384392383474572137800165269033915418847033767281948287813868054511723383529515978372531384399127622437905411208420671700376886129630979732696443643024558152638920942225628223050365115974261021372408319639450504330236472742343161665405442738223589988021056196307510504742225070017784981379595293468503263018394050936634663274579348525947222844695058938935865837565605114359831661851480101784731558312085691134281354164098166787218581877435685664531434709089007501073770843892755646779605959604479519643935051821100093404695850501092678951747150727239135010511938973336769654579798295480701760178905734255653589530268881755015157985589626939536778827543664764698013762029327377625721849806564722530848417311287144567735953400681171724513430391688155462034184675918895763493966074952497337998768001310484295605389088898369230693424649162624124342899557276087988802068212404133544892635767282779073389254007498320967586259777239628571821388210837132858087121888835731596062512537239308569701893827908546217376437341944382863923721426667231088253530749478047437611182370148732885236986385213842257403774587609344946020320039997320322336837225577697797927169241165692154480876075682944838941865617282059193747784749304024441754877843954056114385266773662743864902985880934670609900096892340798210341668159980680356769092551277920225138720754484563930857808188536258101403707876780033947484396513391436544220803065824331066132613977665103236957375100705741523414612353805527788719866514429522680497793803938976129316145589436775416078024566942325720698443236520326851490243351868935346899503938908735184177635822772783199983430409912495838735877381135734509507126406293435562484629923578637066239883788483211273299582310133223886672266020219466133710336754716019492857601932727047140751706966899720329101036098458438254709367025201413948481484062983438462908928957961167647073994601850328291985457555229234426669517683880542506071063723126981017032220765565224773675029476912251637903293525870905375243754761170791644733494366435692822544811461546910986510141839626448611487937200038756569005306425021658882417469327264364767211359546680509429524882714714531549711563659045406844858524447686287019859493132104974114327354531780859428532456559071652637935879886583256879151203303953388237468375786151834766566771126201547629554438110189233092663225328266787083026783283216451767232754053146986753876336845080788334813348349502163164362445282064066994254283462293499864954938740796346053965467817543207691432537200120455091580619827442966030992777676184100282594796830237711380070068081195257156708889319020950986112878125756490055111167187647802030748655778431021617891523578836652566539532613108412521329141784904942207004428223222722956274080994650509600985228662672072075976946947750663022988186418576225713799785042974925276702723306582042305971047469536332818026036809711739108520272806144648518773923404012585078381662861351691077929922486832063878281610649186236542951045381847130209441580532398718438648853396085722543735377784395300743761293993977720600010322947343355979003311365559006906626646327293866480362574032832559318542495626373034782826398196122730810908839731500900885063860374070565239576731289928454589561006231019217789373860567603360550795711615690620839545665696383763591960222540498528719646633007443737168555040631147518985480741301294678573630780068295649633924310729473817268084031194088771118877113954401382304033716160707118847567306530236882552883749373616243047001560085866242860100750475276058303657567668712315905241210868826184944600728114653585294717699574906306328782347253775840124065584167681594353440243240787589327329444583518960281700032294904429953337221924301008490738853957027198505440880916098015329401858839172517001054631373592277285243025271994742508844203231751388359590628950004167027135293129922760908210409500849591811612583881499273420888647290489920757733188622835051886217576774957925017030873433306237533637901954007482264065239623417237514256605922806097193812049758498799335818974928736467558042161245475810340741705179886542975421999651689567698793014435436486877844973358668616440995900633432836907667606489790113264724127587620303744853474875836373183760807578443932554121646591455745277953700924859642765470107291209856039697799157963249310802583056120217637245607996642716635115209694025334678364536781156330603548038289174782787629144234755771040503655407788362025521373846023541614650296034662555576855906631158279942259281711773932145730637027472680177248913980740302205716412649894408549467825110582413128645398722409302320812753872306423721696015783957691638652794354188664101205982200275300751956439444968959374583563462343095994533758857032595544489716184331969166226056459666384084926795300689120256733932539052165073361655043316530388749680641135862281023289360789583323122149699243711085042954056750419772075585839477040335438780296282074595269625432068492225266306047628356235128371974775127538880818491503020821009402301073737493630491207076966739801678203595914648561996512428896233155875933621102688305651791897888678204192341324852488189379447510408948711715750988716665741494271352317683555209368266406632819228215803378305544336851807736000615683933894705199296143188791364832233879655151474395232013361623596248613447354365102243241965950097358422919283040887449362778992309689643676221685189519164637153954838266345608006150130469885656324252900015400260836094238076777375435343603608300324252731699448030767890377171897749186659182466182169666985894714235221157673270344562719104307842478857075734531259911081929964750124986900035213399481671930921196814750259121783223065160219353760264241041926050558767761712087321847452830238145049698769398540587620688946793422763936558688562033740391407050104778339920496799275197136255217147100680217824331383678479170681661434035764316081883945381916692336663055153975878635132126074962195914543873184789573377239650797269455790795783828970971760999890782632815262827461999591801230499164853905190494929140083515083645000668744794966037025498717032167314887063234966622828582809439869712960583771959653204068522004679986379296242053743400306751984108574370537661188015760952082307407385099250606953842040688438462811885305733241002109235021548527549248362325623854595832471748174680725650579417673172717879093815295265660859544717216489620354939097163978589616236711553604834449379572984534725253772125436011232275077274259721420078663023059053948361908776952055414423984127625056557922473991377224266166554649506416662564353279739394358655774631710817774283420514619977279099310117400749134164449301544206673329301026620737161968293447223482423538713675110056594291011820092796514217323323008851438126305743280692072637411164677170377272789729191082863594811570395822599369520981260475902968390695098062426407037951089544633037967704964727256122925969258223344969244366578745452960160512819762149662720153998642504218804746704226937990316354456048607739172760598219356836704547377085777266179997700244264000499302904092472414155411171805103209787005431332730725664505809897742783427853078954360310448615780520046321387964221939953715793162109605791935844271182762939251518804667546404530867196955284704311916414885946128433222034063808417377543164868485417109096128628294386414199169938955171499264838319217568806561016020752093540888751740510726377314719966366978013747248741556029357481694988943609950249765177331035069754221757674614292432786490145718763269171587391750983234733383026398944760920019995355227257986122405485299535133912043018407739894771189531734335856775149393642350642030916017412591610589064303999151041884622875280378953110720868510026819915611150749902125104462806225941671142552225871437111571685862042582272303815516373505384425424340189684432394658200256377644764855398627899655006476222179687231125124603121428009387407298474949055160489243391176997528470216434046750495430415793833879601548008407727706074514675930790380665168300534401081646997197261782544899574044789495586422926870545983010137535174781595771153044165470970267725990750116109692886692229149193135566409888638529296608113686883968577677157991764921139318628360380687802813213733067254284251795640719162569976828896749101897322262883930211432613099042783819670764947676451432254036037371473289947640189823207434943861615340038227409227403999385320193913194032032184982634218900044798338256669163272702389574984147562205919101945806595117766409547791994694665361165203809379023861050148651334310207068317135098030574216699150096182393262639346343280202276852249380688666601730048808264007468354165940694668003283226122659087872061982157923815391350366287746439810978034957780801965538464918843948506687503207348828823613577573413524846937348718628575590981176218764340305638486283373178155448244765692826411826115429019324922434628470120583205900425661636277585867688647956643523101241570908873143739345000966495947432769306694186941504770747146055723350583363109722366596536539320583082740910465066703254921897950133921998040488488270719895059221244109511779393320736483404902421814627637176376905507779659386216768324616752093376348557895440010405965055549687770755555038752008781327189557353982142551426826409972379402592430269088757001336397427914308796232440291224624813651445125522870977984731615757989305666822030261771949024710259832304717549264127837363228947269282060384870746720171214175447710847487263503264658830842465874986648870578807794155940984981817748627254629648853127139863766464334929444143948238060601673888591559692436466393960212796847240343409173995947030292768730425759165102409238502839117997733602777601482415236699305135106671987106965225939917755910183436018828086090656038802569244245975943755521958546436706529743387725844333330465292409721483022530421921591236289508471458884504758603651423557337198581551837820691493315965657131949911958311610917290112665715821032643230283832869835391096405094368720331787524960128073738945748512663320990151913934512499285730095362933052529436081168411917134587566519306130494999417558582538980711414582701299363232643439063521728385505223631121000782229488036799935211483741480575167538674493151260775202739693815314300657768582785504613648532979829680115301512478253262517848445503296260724626209665095286416066782606847939139272507819320191937429974384341430149908314939356900993800206156804070384196153297654660318966550682747673734344130242115439238605277203383700899650630019372290547634438068501392572000407066114169193660837642350486355772033101292560401370031508589758323552218515399119550994031064233531658436561362045854627941900916396452463735741847522205880531298153822840863678362477449691441921445255518720169331395211284170382430011520788676703569030030951556254532745440988771052853595532969651273624140158616554894589554945265978668966469597183332167410775358076377135604923086426364773990784942499328588076915864095637133071627228307493086634594073758289939222388211316769063317495268531827646218745072897556926896114733927224501804320399876390668300184444288412790120068419241451389883968354136512050955525175497119374659866743301440480450234866375352418876142979462548806976879439389201613312256901240326276683912057082625738085760895326509717033863213124302265628974591460195301386558721043257198023850579169323639968752021092946076235713667905442830660363169718454106103587326432374576168877415949247151623041063433339134256278536143855567721451250036233182304120240812738276730475872040859598609545855739089586366076977600666738626256863204253718793071253026541869010751306555913146156537836873658889141715455792124921851833888460731617572551724305840318397534259984624516538133684634188535621609619089285953416519232152217382160980636354996295912104710169391453782826495894589783037907642903192767482567839360213494510548980921635959065210918897987242035857546763745429889209929831261834874271227712875102239887874188126600655971596554553321734804972864880600471809721512276281675329904170334896819579786383840252050918256084828392783419125259035164306328162066765702076706766171086798500016054957806214145668723920358675834494467038445995800570397474413225352572573315536570269171908167137098619527730825754934630500284468192189966771617910502927968107979101824906644058686331501732355844909018332775976209888918612480645175427621557512634661159992929259939640835642661842362140586041837434640112387642379899418399189398971420919177374018683796364772671500710247766732055581892277557617779531374498236189956436289496555905148076357151513754391920088138298180093383777879088959152858347982017269886736590811641922265519394309284511553886253734010173434337157770093104600074671895348747569720109862285440736043133138886994770586557950721113993041144747085272346143311816548831768261192119463791479775661566249513035484608362133089614298884914350478804258384272253497620081462203119392800536647890381037902523343631153072889665187769172717088386010757522718813436074865208868322502394639314696230199740271000963319451568717885225356220859098508165483778718460427917035422932818566732810479061922997110672942883134598171245948340293925103930026723945961803014839331426434929770067314741423204883117927422633200075234176607883507141443192177221556469470659982711733862251875640967590205955724213215135157810401654838537365327452300270772906681846697809411766616203594204571090276857791245655829176066780405765544594593208004408736785848705209653572415836614133615159921912410394989669769296312552400682019969923295986214388300216721252807149012622293841720397380341498338076222942331063205093554117476526180440893412568433738004289587603604800876247906571956630763915928972119931139661745833005047560695535486696981907852743797267320684534459470200447518270658766850193657597295735210728902075553169902778043839251456380866125749130405178026124030097700918004871736409772549649694780028337049428987354775821110003054285195980531071997820990681576200701579217532155478577202278452937991775994474200363012207042710545997487282961403105975365745377825397164108906614699394501914365740156078779950800881323338152598532455036026753018325682085196929715839816409299669474920135789516406592150890621758237507972601642267688336583938706978679255277200188988208954951207059788258117836606796857267902274248174346601820596902645149783186192361132286422005584354653819974353151744624143074255620458513065606202748313243893416487143546358389575226622460766513380391857703771517444179585080689245929562525614364294361850560067024729613857436161632742390705971813414668073691442126173083941143651493525459937223321759710102985367690602285722701654577659517855456553486659971493619484853885995476176673161033943032679604118507926301060369189329125091141918379234758508374724184485786184070926237058786489447179292377511105494598085729269269232385856592583466650723432723104124817392704944269479953373646863778659326352473896640935320620508337802360004091900291248885260712281406277332198526180258586265775433511413260365762738068372289093025946933082979796231327436523413296138351167725793818039906141261349918569283814935754887610813488157147130769303985903076053737895107097174143209523905127755219077042051990306828181168290720766775903982778438012986901143026004835284642609207806177556877815881707803326666887163958189741471019196841988490440242205425521359831791828931377999297493620398280096065324403451935672604334278026186720964669996714329463575401196486457199567097957269979139232860206000337201769968126213127427401446452597613058491558974919006290668114370784048453615680769995702307641746567986476259822623113479613383341050983744129085939121158633170555580771427307018483383192079660255687249700778927572101855954136628632957097908729780214624031973340480023694931678818330923479477601368234415868196082477137394066745077679224373602348709483971833466320403119675427406250825965968609451180406642864915138306717593694981508960043931024967320765734940389059722344110559314796157468577444117792699425619060579513624725059149055103377814463392866183977602931292770933718669210735321133685848647038725043283634887357330821906996811129455271412115768291521683248616162503315624071411758499321470670491455858405384607837280321918776507942384847150546527126926190395489379364312676042427632870926136656586579211032876378762536985721098777624793596497808502051463441750430412925415883048302161109779086224942262005221501074114261913182424675640424289501939974345396567036764929777977396454568917191227049455204109437661102021130194624332642332996230564693588797576927575786068808816146010385119254592939508098614314165445326041777253199812352081478783460097368189327495232611982333943675634439806945436867136853210569411742252743441257050664614898304601280010666748815861824812362547737351436441155715781391258056852440176782119473042449774711454473728389717480868776921385302057790248362161458029778140121695357360151985493945983456376006173022335111598667335520267787826272455311279025009254890691664343578825173432439681381521959309721656851413721532356143960198502964332812379099461835022706290822952661884442486083522136431973657502190013801951565040677391018140815860838454990539690119267499467634676637246232121188324196794254992738462160035018046260357867191745535383056543810671497652861377871377187226541666418443553334581657324839961782621948889332567657544486539882919509229868440370280012747850503714110917729424004516282203658293983029029908380314720738276579714581769234932745720568807644665286285699909744550962020199468959055409651160173374767827361115651985460791748715569211182533631661203332727043028816175963242287425350684667599947182083695750939859143808591527323651955251642096277366125642353299778518137950852203640919812414245754458649002576175644537932337897967863318511696908043497884737690089815501306385011325563229086862505598760663797159912994604841771333340966714069565678986214885745617979357343171029308416824246855808464080254064318753332703009361956708098131401297235573458584523451150081036272949279994437945492705142688845110285197442269815823374716970664981193183608399590232719327562941423688713213129832463691793310452163950547746531868411148300714225783704005544241838835025367052008620266033440858282869654192561461312236953355538152544301619860596071039036988694191233001585542786419507368134294355024723092988663173830069590186101368447733372273531006719220315482242834962883163665943788729278561070045959172898922926812161067072046839977240512196735517979791641591644547997749414137967017816459349543481862010433518521609156316780949733016827441020797718656906183597906171226843280144572708378319739363084394748844010369703578941164833547999546729938382772789213609278938681829925400136443888574009428349885536604255872266778115498395894160432876647439467164553836824921791710499152713868762387564683812742811351477293781157756683804007786055574585361187573538438072407787845646883416211779698320868096053623369879365484659680260402966296386862478886412091737456908103864273098894955819461421675628268157493124649021906652209333559400304269594657964375965120195465883614939895076413347005102706803247456826133616993150608099474872388372840538034469657428708794316702991790103186707695983932310430993108663026000002700142952010281981287995063879068846947682995956060403529775481419334507460280652815552313246614868889361569115263903677712238378205335061212997305175572062555448793674639725438480756499167560833167792824227608014393127942462236459471225559888596829816008505842041537634731018628263299101921198266746087532463852206428253040396829047651414738206666748496114579052202227280241633076130181735935231637726097683640026857090857063746866806968382987562897357942896473204922956459612821441720227046992172526223945547654382535167510047866240107670207499328326386510809401790805835009058919628393064707040991139898607086285910439370221945464144559771474911053241636957735479243446309565886902640995586856661997416408791230762460840153395576542134027192195031693617101704838645602605782159484438739966078398892790114214971857843946950257897930562676917579785965363903012231954946922882221129476383506330467911420321408513690075118978089162585425333869518356587836670633599038859588454342580800197086591561152934765698043409221755010571703695722077609532139691288846566640493626463641284549149315836310003649559492964644756019309249887227895984429516686514662197947698193780107358638989003429297612119693109185343605730889576812055610347050233285209087626038743927669849770423870186463614906532159357147744679119230190350713529930246039942198778929056184932364058592919729015621985582555715881082415161277580073522882564700422071805628854212788812015200438105222813346695042256392474144641129014143519113233196554398709612554088003267089916263781476618650452925961635616186891002685678267875057023246304568730329813171538051942549953821296491468920972349513849172062871793344590928659148435040635389549378529238636793569971545360919620558909447868891948237366072552585983224278622142430569772750129203519858594726442477917927534969250561315635952261798711683548506436617315859233583167744613949901026072212455588041337944454483256354048129186511465456476730650244687490223562286062243122743831124141764860183547237806201761617669050731681636876790342715282499209295956523049797351708554143795286328190529949154044222174959289708061648380580939114689338712786221038873110851145949235311437795824409771094664243027236479352369423510060328687967575004968731706820509066281674767614599465472473602277515493984257788801374306124591452327271767924726340316219164668351017107806909403821314646804226947686631482488960667173754415256229343455088555460619220080957976464124342346009947829254655132657367748480947554697383789715393309106984069357730041192032644262750150859272386197043822665018825176697792605276373285664449797226929675525740985010305551639458606973352612352982638789155556578503977022354535619227142031451524165154247182799017453989556032607263087068118645955148165564313364053125513414683809251641345707817189515257660750157787670699226119047572944960692114065238109832859541049331907519328549766962867149931281790455785398401080937137612603166707625935384136385961920186495620356236174292249616986983955258363007683370007848075911928545352651368053765468190970721583758666890177933565312802245267671042508115041133314277890556264656944421284712993749093722232754389004252848517817866052930535222005826752081294697593117017504899820132426155895587485924569262836912936123855197311249925191104740583367284408409890192522769479635307366998306337881135892214191366810932490121660934527581509365313124301893189915361213446502097170196578959019880855668708772708352216656914674917172722958133969748954510375398864796654782580407860616804602287065686958171320336717473541941911764556941296400027894294835309670113047954643885954332916047449889445054077166598880919903463844978892758800649721775747965560240758382655416654317005002932992355660377083562122340876217327372757504091044726159645367601865362293633317447917884939602295644975692248064533521059386294124389816493168125924824170242708824292587921590468644205949935359768835286576633549066324931219418807142049079579725070991850569504531208983181566878950725130014674740145801372263294628572805977630950885890876475702661808782992685020984167357479503908170367693406561649012760393519717034325438422472971599092215397635611416559305942711380453908785710980463543980423798264550347458324359586405950479033266976132433326215593058887995371930698051130900340575600679366573810275231703253688209963180044752610446084571800944670109779911080350842315223714061130665584439094555281098785730741925730655022407456117886981179574972440817422740943847352888747649322800003825594448960762755266536912796926753779848520842091351743124055413631403527602566608851644103675295517702439322988241974302850947099623477455991848981317481692277111007559641963001534320398791028629058477426774761812775786473463966683495838013814979788887718451459056387094873707114002871675407410252502885785318142714722879285762472942280111222461076646200829456422093393192773119827907938020324735602211962299570432662427776236025071428363325179548826325171673123337656024328947318353397749581100255503714004796336784896326091975515101555207099717493821653421307235002494764097934828627070267005840239288939016104206101544326446490751996427040271785155652750726351509718889299426463112385193077688484915145013163926314971239986684808140038236378995306758153037830331169728394705822227374837550657044321017300057090897942658256909296316690982008609487691077681497742701209362878056607080070114095981089869108319147442740652114790092604980195099820733330090650628116223399579710564665871149319826688993968041243049514436711019584803582900273557740987794213496264846593366886521598132142933463753431351526053657158722668693104317589793940887809706260621717205416632490510036806746130901669692640497938049453423452256729254375377232192619035854663453539741271974608364905671083638638772684662376167304769362644231371038646304791920501395679476038059831398372244347867654417842239717778726870675127334372568570550732399001612463010231400999977989548962959569640895249403750465103131516574499117859877354108882353295556222478951261031774785224116023003834065198061423536517719074961271698129530752359458667014581362368769155379728736511280910805934529607716994187206732536746075269889561691868455683487860085759127875946562444117079121406193054602373605259636111766335923637034786420755220454512353078792275245437659210306686779328603282443526536187641783020155709687091645659824711760895895373695536235100616764407897942610694674557712709145011822556392145113614976135267808017999192936589043503325526867574035301154949906094724078114869372113738644930901234927511149889562995938183879612004559263721964936367128263946355167577934023313471285278580793949567573369576793167164749646314285057739189997050122598885580987186304682277610687909081365831744919007551615927603545373648042363480569875648551583516037555038499528874618118217923509772011283875772682922527349303729786012888133104381461779732081661386315909119184690906324824112225068069449048814678100280046378941155813693074956446785184329272418961669263049677855956567193567028023614256771764144015305825392497765152163498520797012606211406065161717805348803255212895613345881293398480140262475913704540551323000356550623818529164662887367771750334518414284482758169388020688361334432906015662118217172209687819702036450424305187428111486770594303087376065997759835717694830341673159592441000101179229092258948305770826418050405522891206721422470085599415780692346207010501924360886944638758684125193728144105263624728833728420335616736392200694133369343263431775211922686185254941731548726740003883425351456395275128772003333789993778717207521077670906964134390499089243810109039178652941398057421475264855423618883747703417094275682852869293151086503361576330555106961043849443115295398412284319051078975257243680978467852694351837988377274478807224488180419749016282662196872805036676212415235350712068566161900585637340595934215148181358968214447607799648631302356766568521453008684553263332004447142406374257395211554826936070187525811055209423692574625220025613676480266793356972268548392683950244248387740143369008747213357750537607108201004291644622988525515561622443915223988861303584014711533540926298846864584496044208465502259957393282849130981627307410002349468621947729452424264134176382239795393438405531930082857766736123228384941552539140524301379718720429428945580212806327463028763205483220520672409883744373974824620018356838669948307924039142698469455249823594161145056124876406866854426443115129993001279346202470482062523089307144516797170160766154173853175792662909834427647193883201754398393099433879293343430000048355195593458403933518212118530595256307061640945313231699860695199388779006247406287692919074276054913066813378661047569680327115157569376090524764440256885421732278401738308837008458677108705837360099589486443700967882661402254375390256573708671877510847249362362391781657417329120121588814245907573248354862462511614102242299233257509240188592436858292767116623253155157439621268678182111942929854601685651716200234066381260659137380688393708055474365165589559929851326184938034743079472449446167986691957582437920053537529345026327957007778666872660717277588275343030014599030323121439426343292284740374230733122598641034152761172899528137889734730883739900558752708160314649297494538850156119136958193497980419524710970514251478906201820372790438814675945482403962936487215483879641300999391735035531489243265130253597549704417894099165908369092489431455352468726300650119241626051219515996428309750793700633094509489739980573067997267593904927867720933360802773069610568645628460324439557747835476211483045475865239410509083932891778907092877015471894501028113739547277603921854318734076809376165457372632674003959609772815209197125613252503082529683023759786436411965853256026099805173710553523955638019958914372569364427254348483227543731404904912653171884513760623150771852259198461529217749640444125269671690558076512604864601661847614909394654958099177168855457384341095821501238832026419768944375125008101989443565135774011180903241330698083157381625148908089746260155343627308952977791966530397562886074422719516253314984914705158561921386516482215186080681696079058319834899144638077914729546280199952685215027118924210290924894287473099522557076901672298923195040345816074561824077334881473802707868499121341648745181787782333353762829146897969538252552459567611139536847456358013858289925490573247371633708209046185180946775374427330670991438922783114252113486699653673268120736369576694137821994416282339638217561611333555350450515521754381745344778965752810600832661838293605145819731957791307083756201023478133121437543146598368733918323915114925847558384773140749333701402683020370213653956793386274858756723746651948751363859442151100158083925157749775486421703918523174792301885685395647805676101176279245713155093288705809754129735450586652456939033402703801931126223938705041274124107913001525276220353632358110832628545169509760718547409807311558020038486356572476971806332882534070831462126263065975070523616011418932687586706144605382063617331729294650830129451837574565052621108669812840654139805948817378338995867526582745831188597174309117669772186290941611197011114499595051695308263335014692081598401915194560659910631277938007144632002780299480943419444387047971940848387429212667480889024568579493786165566079120915218264501635661602630462362002060650725297494409281929429684183051818782311188662782551432302129016947006266630963107755084219246679160364080511445698994061796858589745051872016247238997789078055435213712153328884340801171984784737148710077885465153357385791048833085991990998767474321013222975474252930432045070357671237273325568340069646893935636004398131404888211226519366720670244988902966046977982935523892691954227012928340361252818360197531611075063428406767240621555331613244897084146021604196010047532897671032723700695024142164434905465529686318689694688796832507686603462832847000082105413157218817901161376023741933671550047194212887729518881156024620706863669787737385760827698923418362472764568174134902804118309442217751845721005492109790334438919140729655305907143401383432589036873180432841380881314995051686004995645682096348134514271151333932118998628404244551884359178457945896544436431961635083900263838512120487202916761819650400427277827954901927761549935300969289385703294345941922995280459147304908327289659642493460470482809294518845545908809837634893736362917571053001949196419550310829504050111112274777540718941499878268999874082910530415175806251806885235560758658545943693209182776159909652393804381594672221307946141911262553436462790176149552166115935165795990224761572182998762113318999632591539506046716974140426247711438169525643348948311254977450728007618827863678944492561925471911961381632766221153284715246728679044399275994101516491105478116604979569022628815143589023879806809139258133942571126232015159633044209399366166182426081310712453080437052879596865831529131323713862706475479464915433259763818847311058605014654458003030217293579110479688579641973306720158843982521419546276728469834918379904183806326177161507990840063999606906269900744101848462971150375978725735420625138251498524606655288726475543078024288484117657834670617290359149581757034920670983389553023815777882457168125343796540940076685725659432352653825700531209399807082008469685204141739310947209742882620976440776631952023730163392928395817437193920981692406048659741803872841496642932398890335867297221468789778451298303612697925843212939940007141800081932283560572958919131478268708725017735839719989507482067263250299790929991233614039980393233221837700217333158837006504409946933912274120356767462935206334647945344890650349377001838260378436687295257905699260230858047638907751963336629958434831683321949265625163094698392696032288121602950009696682597058333343340547241994774365454595263006553257329806032405922065583953108632692421628352474846169688161990333942802450475276840928409327070239609163828638573209888270317048527571797280723160740014094601518637211871100472109144980718863045271478824141265669637401130192146719300918545830051571695330195971830992147564389510102324059344105446764959050497018252674604871523361698207145315012772944912876541196909089302264401265761731113651289760631549086857157845364512507112230321833334755124992465404657966199984208699599543120653651919066842302574588599986935113153298286399506600065124663606873863855200672258466536339018998251541100958244922275862807039615746477675559814441220299647195721686035700365603072339606111149192908613329036068019799234274507706932627225027245876304753567228066100338195824280878891580504403568848735069794282846980780055343316667110739825691507974180667442401418060158616545401310338597651331504827534709319961430901425546170362045583904375687866420391353819032158793432680563883589873737956279524902820445428382883996570817144672398109132702081729862034030582960001423259013363019721683070691744933299977825373635414399609410693687096730532566500861757343381112967540342290020573197862997942224465420636142909386971364759534191447175360614337903956303676104928333442955779119829301385307180102609758037772368742499501498926706644642400023951130865759833734533913200159229484700902772296542199293176762689578153593729311975814594219578986996661445647569567501668651681670564576871452261622064278539431048183040368489033264170685993052790131593566033678893335440905069720402639703444599499308568532684650800350835512496377307483955057617983732597590860697246251545296204252550528430147446850248703512621054880461078391865019404116378239633149265991287538916855235238735862841736072250236533358056215308592744352211251778030474951895121541803324093762969074742737946113670386434402352275039225688588879057512165744426951348344396693052977971730052155000649112898565899416302346450468343109551689422129267225256121644637218401769139881160477842507225793992204658445715976621998773632519918896845829164414048830041504493188480391177578088565180730253132239522684984407335244431270397001109897074911008917527572150832346670521346270583746583529986871448492381583900875917974823311825230813291156436475844572707356216450116525543890069176104341107214342410581595696492567971633611911354516771336602167337974267024577440192871427908481493140836378588025944440598911613557359842355061685570341871155231158136439041763630423518112014862173191387947711660797066502086965604297567805100371927868672610094834591996094450204140822266355876325168340574597207605124729057215528366622022995898203352878070233060284675297331725308630332519205787898140224692094210000329562029977482949329450437335231680113827389378932967871855289398333650433913545569488584478875971988219143959921251789240185117362543527287657245554371141500491690356822726350069530014628840799756398125335619650049285597762491593179522455582073053681892121507817343808221472836346592222874695730270170721116279333344429704232611561588484626842378008438363667627689441502501622814572227831319571349806282947819685935504703760904291472855440865128616742834327019434952448435995379293065386193395157174358420803522608971802309542592795818251228487066520953513406718069944309350032507325128236999305750275076222013465758856921330252708753862036216787723097629685000484901492337518596136165106424579994706359948352244514387667162337527402763126541879201170363344938048592477068555268393141820242564920094186263477749069858831300178550910585793915004872741885670236452070837696275142272110434025366649165085816338466149687420847922408850527200720096549442872730488466636100419114500257137227460342622109942497157551816170679528317963686973812704896036866900737956149743746622029086414298529642096737916805113795247930704035400588938473681838313528613496618976258210748346760220688393937888216767523522262696312949198785291983014741249060314645163186584705092822599051680590525101532062711856520905955185223675308429824259208680315769436402238830927054407375285862243987971031834545500991633062132272438660083401665448987071010620401638927776871169742897991524747039647038358532154819987989922536874009443535061229089792264336624515872834812341133474987251851040291987718994133696938546490929619381502956265336368950998331362707103305786462505013969038883027960705244585869441199047204187813306173134949807465748091559319328679440729568571741046186227703067133868189806970101089195336099505905410686629707300782444140188952207763685743157775881601244200818525602687278541427266658734057576933185949411203106084961329701783196210665085750066856529035222688690204318497288559083885304317951520854856717570118856869181394378671063196867591376961840520049571184764705697474180594850806562257897685176755098475621961757145239522842311312721470528680499558358236226155899784593064090058632212477688081711658370449447853137906641026868307038121602235482995845594126602264093824984708554917327825013985115050737956364059955071142035704338928284821208323731658173157914890616242687707722126075665182139200833442055616018801009687610115187762337224680837680658486264480223178391991739701298268621782175454635692987821220658749976821949459156896813346377034943598472655737852404773692539802675845817658054371933143781023998078603245819162466653741358112578674142621182079355821119941048860309646644323507851160275763729410335884642997220351477724278869784128666262869733466238052972942202282030948894457492712173943449834970108306616164515785072999105693332229935506397660464441033461354599118684444715597866125253675547653771857771882255343807440569911082654995191276257540051479829244865877809188483881889157696672568929827943778358535166126382398236840827598890114440148128554293486703025623240258042764541954482497727513554724397031932284787927889616407759606277321267250788036071521781984490660819644440602901946837017972665718516299636887072670104912905615133501629700921948944525006305917827048460584896625329636968860002637407047079376771348888656537168841979305892516961014756666037035936230077816150802107249199984622535454518918733269007555033916056409266924147107996522747384051189338272455163833311037083121024279031101317070822503107464496761219887548723267032822725958734052642199760818117450259119237122867942234621730123951320221166021689143130964705639660700919131785684704403282024383330307576472135329344283314944220430268941820838235846682425237811866731462714163780422130661514977501868438559192259734090382398451490560809285339478228045903333042731272611105130488877552805190363555577906029996628532323414833639241910257856161968528246674598794511008105948248905700563949536864706969337935479650964625855477196105559957669990502469164125147004564212574920465115484171205832844108111414070735210354990996164281277287200305510344926366733578001656499567430274363626292166504720337735876450038288889339942937197660369810411079120778422600432860413397944898458003717959634837496117381116469159601302402790352935490790280588015991108221437982758158005471317728459650471080572445299253674586217169952114201302464173167141805564940160584383897870337400441694145943820483891346050197273580940923051305532027747709895501457446637716557567839897657412789076138298422880384571789732075942401400966924400431938269829982382485417534888775600393426768128571299018362538983354498470378732412947279947185913656862601699433388241704153830321771471374892052121141421927993485306442546977290687361025575861153346347452562344877982306083364432304818217691068730094565584703442600537390279323779973798837177413245559892623230982166690040120317095092052507473435092689041172640094403167623997597360625716683437466387491836210697993662628337485859080357421562135221559326496247730013644485289757319160442145988381265804594166623153773184631654244844706150273876904956638936420639397020136411602053175143599868947308933513641261988573201521774752117953040498593558253815952563652558291646496812729004909080954100208538549107894599264998245144848929981285925810412480940877606264258302081309660723871454958097842241799283713509880951730480518001225167472712814065942345513801525772879753286978512252457057398274083731480696697972234236901260104704380842108059907614537882042657858495499681526481284697898954712138800349271874972668044767488777759117549441844153968279551163274618303195427140332815035831101793340949565873628492547434623859063370644841107385670045481272057443395703791176872804051411812571822545377082317979782006400045054389838943592050535240480933610196895517698159406551768034811870544858780700827082080003314491590661165718921743272558968144509952958081618818301473055832257125545690292693794966947693733164311805569948584203454666965961450156791407812821207187131280757748972407040022079439405709742644590822732365417439744608305813127834384593500379932241375020869792152931367978522126603827552175208271100987200628754001315769509817153763113764878937407203725809969405484460452342886009597541781708624196740630501486588449871036919084286231158739078459466883008275469673341921762294990561497209967886142346753922232265577639940540007790941784858575123298911025803483483014698946919220277047458411719007467708256870247080577251310945337333974827917148526293176866794547125780707128640344897878949037585874302834331908330763489583622210582816402301435878035466636900435842632987563310840461564199228112721847265979590498955183009374134461468535502188544819185042676608102879150766832889069345044873876141580016893791644253726888880884408632135639941073530356745199260583863016909497343081254912483029191725046817197766319867895003216317712817742829158429807073343566786314948395560396052326651855958844562974374484968707558052380934369563149162100979846078568174927263857821871398505454745722513381672065494330919901371250931191246339741454471687397679763212801775451057629205796963786184563952527322035038582408971740003854013723146148442809255844401643680070907750019578460043859413797728298901152852085960779087355583904178078473166303272923741725520351899595799057073472412878021040686587052755204930244257849814048347826969920189025295039199069738220055640345246890293593657545311096186314265409424288500526032568933400362491134830691328234215983635817053397743442241905177241416621160351327552213649866271365421202864608053517177853346254998246836431743412156010056110005876331687158839380610146239879904572817543635517304390450539818056296792050944846026162300882353371539715690186539503945579610748512404079095260186068332309179386536781841047653854283325378002802428289431971210200519460806928275186511758219608426749057425318840605103888243921296537847191696050472346204573142573473283556558022624589813920776985742158512318059323186080411968521286918566948958255662630023985446420189832190405055849491237600070767472484969924278152005305783815366919213921468973591916142721005296096945781200909922025755572712229653881918421394864948642755458878634026453090386897715230977068388576972355928863200165479956766847261588470232249411067531779318353952852803318704775033309136502439167237213156624633208112152283669496811223721386905673176226285384889958920356716035568122632975309202203606948099786785157244570717672999567026969975152834070868185700015795323746660351394841050177221683804048866393690705444719845452064032673909533305729637793959885259369214924177054406900204262732586032514783463728372596307679686391535772290427739961768701369313065257854523841451130146975573971803553923163851645192885426521984112331489981840153930032120466219303201863941686773471195740108208715555041869818981090592119749481213484547567256102544064065276884439834810051375636614701155540817736838834020563786440397775419826753818654263291727733374686553013514142737866855597559509270974208565330437744516095128499849468195115991438294776912556431248400758790422899912019108933825427195625254228420451048360122752649774165127685936185842671380103498831143617179516125313911192923749526576715850799501470459004763472208540917431922983361504641804461848723871464544381559620955269497050131004849072834766989436915343934411007174962657485080872348291654007530367503968668623744789883051605125020526868254387299793493623991204888178702248688505867024230340393139987095511977349053018566037503856990686460527915421453450845419784550873429618725743412585244686267790083681566896687197284667948944723251612861920928314535016285135060488472572332716622651586738643953519898649784090755406078297260429730565619046727683717858990961310727330933047914898930201581020939140118800368698635770104810998271352430943282012741627620855986628213216132908873873855381104141734802588527368633178928984615020912634813891072813889322457681458812639598340278854639091442466469093811274863011736973184881191036922959675656334329886344176825232333401251621831720508522064517681202669040428007014522784294909938708553325269851081997285644245466676533475858281523690115119212116197764919609962587114729873548489367227789090490690232348866404944442835649362744268226859126643617682215276111682267278798523972551842036857342809426946357023327908718646537091980513980437743721123992359041595573875779768887260621223694682103715369100587801043184397663749523045658806135554471358200339482289854562823359280076563352138813474049572410789089832621537497077851913635360879437564762215227939538864355694641512049315682303925355510260751958220110238127052906539779370028566298264738016894328722679683352461026610727736744145353281755739691203720598176698728075760903885407214195401560084856182653394988406682198354794262039146696923767779166067646903032880973663606127170545560371802989120422194620083810469030274893979974464052264540053503410696614813322766263679729097147286710106745014075195840478802086074981598285695655931168815768684208276863070381170272896917604813795987802582992481569750888422528202554195737732207073148852012069725568251009177640927246278436354845369116944624984462730536348980432368849515808885848517269582174563745226261486125563977529955037536385245836456096436212204652607620740924268417287458112970840053865898417648859625952265611387872148254599274492465819631995724734963470732254954722608897342816803606816172222429090962823382718025403526388804501205133866794805392065168377582623844170830153899650347394801203433034622736258214696423663136409178769653418868405521274729904084718411681222349805957742746909431358433451056271954613417826715211722402272995801416395254032509124163922284442870275149945260907284606389879996340424749728457700262748133092131918683798308701988718469092638895439496258524779764678344188475369756672941843188583425637962460836831736044320360396941587727768179716705192506757645292178193218875427031777432697753077834877298364559054528365281611578991059409723573835844495949532560846376454109135142817426605351755929014449932408829545026241579987022553293202507101432857025353461053930624802762030166817722559770276010106522837989658256762886638271013829728673549339639420695914307117083705577961783007610232944503332786173865952748188389184289118063550438406874010215535730817025251645420691099030038517302004242238941651423609025269952581987528719525564920705303869946981817120776982979228178484159045188629135544972966447822080847120289183539254401570021686634456847858033756548130443993423227281759869982145212789250430593897211484203030423363298831548507983123656541417869708373861274942278010374130888203227935517909490726702790613409334507258346412293702148008173827303308136315518606896605164821224283439755805910184108341566693236275372361188416752513339246573048024074223069728782146843215385455505413343756351435578236609142893899824789271503146606060287977754394857797768017775763518679012052329951559789860302971627712126326880746732393156990174343764835762253563137356598616003839496752090746750319959461079446951861002628060253476721813607794915346554650103914615570657037400096655746358259706371837003300445936284869358723439386842404052794344172321084271207947918363889008725484267939714219256350006099444974566251267606390577715443873258562534725716120421810972360880680010494296805925716823546524259070001211167903808391785368816141053909543641595053405755878619404366085684248374416532911492543969025438176351715361707278445709336437796375129060247653664421335783302472895695409795230536938375600509910903147473417494800765301704078421448438097914836669639589631283380330828206323833466902540516572370220474343403104564568934064251653389091999702936151295407359263156741851543346183794117658044589625912215113247930520161149269897932270952636513421218420534165219294873703580816034874504726889656008401436577756472273896064380819755826048768423236603508646846662017532309391864163653386745717529729679026128075882671017354103077317925685044090497478389852296387523541737216260318277318880632597937155068117444468215848392670150619479424988441502158093060922177062926654928325436156739628125983896074474302236649692424181432915300150022177856605508500619767773015006612609153211943544415182213504160622699701671991025188708709254222126410145957682467164840023368993451067876374505717056909310362819448976847117059322811469380888307357305712763605945321041569729731209743839691229946619678111400951453241291452161666971476382861558333554765067120603191212210920252929677182965851705756554457265917600731783128589666209477652016639317322640988584000083289993979857774976868212176016845466366114974961580694026914064377682968753665675582553713722122726839458607917675309493936921229581153204665222530892653772905155818860838923006612176498060546767847040496455419713695301806656117288610198455558924914433593927795434129536781703804405923001244263546023377871346690513881826883622380524550100296287208476966398266764245614938862695929018981963493107777997629990151883933624341987106681455379550856136525108758989554050750268499003570233944022606573551448954571379283121358081332108759025000287513748864327030486227726980083292279303471182059089684911221355408615453557722226994976288310958247858383423261765009081419792408341881539793067478243095985790644125418663089293086795220318243571293042825887374059761922929019696845616989610821933219286016668444673487120483814563115836093201398023516002544013520501530916734222046326628002418723658926716516940510077524785691597171978232867757295950836310556401219817799227478398371075704747232125789190253927326538549372572646147711478664520967195630267908253057428391570377246979493780186413403573423581955250770288197844879396178581848269257110296897160137194413998172344606318883410885628220375569229252980321156185023717831844171345987429140970006665213295456891292996480440146060214420866265342065474695916273591670037850884533773174962401424741437859288756606399191740536304685760035649251334580157535504344465052016171603387915899779253302439538002344174044848395992578585983556431458796877874392259739127438563906126384133195889992413327523059209209603518490052537483131876773156718330636014345080238653389988103767205223291353197829228743732623355034511293087457587984363771175754542348376548335310834036952386803980331261628686770458157866894751294259359959002044562905301106683163636597372360348377676853407593536141673419494072876144435504530770255326337648311479656298888224064637245968918696271698790856513613589714492791853572063492004640688956156773217546427387470050079819271826465349712592333003116363239374671031200464324327665387281330017614762071887980273454276393307263761175036303854384257969910860854004769376356034622990669264512172933347125063479953932405516876700974285249303104459733178584137109033206457191996225745816915164009522775558724019897933151669850750420930391131343095997413483564321221573213525166136547121955095202756973843400717884843429166698729001679686323480841399048607006633860205619319117785277802763940105157383538705124129812058974850708539793764813757361627431794245026907565265894370058379045918209173739717677506785975479022824469103527872186358612161460510847244237734297700466929679116083250834312956999363983866180802380389206873181299574196845339140815495500077883482415161339390928018727211106005969125291630805281146565982139106488327204485997381509879421483005609464115528167140123366509928907621178503118281452505039716572475103623716843778680887850935636246163633283143299935209009463438044541247135911815532447576810913954284705777191031501179057919516200300885979292042056062546696907105692237472394219104295150421748660986500809354103373804108107940660656057444138864858964527904968217156237291605238939125467688602857403968352118082907397516497456666497733666204057325374331337738872907481395920151037350441009189673309496289165809302562684884126809399610319524560447021480226449694204639196538788485556570893852998927863904971368560288980414079709428698676269270127729094171251199022801797264006979494986738553724506181195647592581551853286059996068569976700598648943667562808422285947020621560051260605359519965100333626116577657329478637448283332095786006605440021226418915763573207632509625187252010794522779718291002405869534010153358514426183127078084038805782329236742337153987718438613685377899350288749241459724638206560161883808380173314197559327749152407542360218072512934856022207007694367885965782515830004245652835874321962016906162915877567711301647313463219057379692474809590019485725603901366706035951853348847531436477756480805061716634460282251528004059035539353265817394932533373040193309291190134688059950785714865301380954958564261350640777724412846947286661352914594799971381387600659174074455112490215128948729101289475202180735152556415248798223611449482989185929368217910723463002264935576233999438191990568942585168992031575823369085227722149737134929354888186515107922640473040260976477130923778729232595565900923190009456225024778636197540767396900552227637955441832332320531966743538437840790153623835517771152973862761219961851284983730034139231172565020313809498333177941798064444350245320515363402029290639763318016809164453823001576968746984423142803602222341807019234116560190486437815165946403207968743705651894016852077865011073913077586651511947239965868361748920852611790889831495712241806974221336408938975437450285106649382579926731450780570544315287010815981971440722328672662665976788942043688783490198483862521555786889437466674973609982404026815070019721394550892927786219079229917596456578430441628902660781591491290531053971060790546220441447502825078896611248054192481593928061075672561459368352992499875826851706130740002502083563401694884682411571274206111068200001365330110499548700399093850698905576311743591169912301435752687420716203444130311714860991387429747044066904812618048170377019498224455569668868123729329937148017031911473419793497145325103762459869316927711749152028062233480067905471384378983877791042912000506752392084858004333259609169146809328989026930301343493489961250196756372146751379829655980670179645116446106234205622093833221996137584842460035626355779735707597716392625239500453936431327114611935694168678199230960188488226029619392740784891257114691513938951737127852475118988238483800327191954504160531091490012816880529516575275548470620555560611022638069961761762047059621782481056033618897062266788163496487390735729366725903955388175418579570643669358614979416404743490510117220138300047324944128306359153396598660865091597779444292133416873805691383869983652176618042738565567540760071302100939088315246572012420116919052023466962852180314881995800418504924948413937497133206733115083594440727016347147276599785633283771872549402893294336352631617017159031295810477904885492992217451451819683374054092293473797021301666810306193343829789863290906802213436045009801390735789123828144870387128393531736902062102912733627782245214191123498568461378792132524030274051341827490113712553545643299984282964833618590165343011058255803152392799262922228656863466449643184099375093961201115324923280923578816704547000283539806775670191341113648058889586063899934273800625321741045056857926744557179736908136285589882082918714866913478065080916959569203604471227098798159981338170734272384996530922373983634305041149365475715141188756596385251580261609991563337923180015961028391183484290782094458120819829933841816849527771016848475742144100312004474135550168673516844655412229653361360414710773197459004720062723495641034376526933028291487841750047034345924188698600391762492065977355174965573308776846618264052580383521489695262251629065108343963875659756234457708542085112547672576775465263817177809452604105467322690112582147423600701483615209055746543017493862636970265257003365912263347707983060503451760687562023092663347652728405892643842952076573333015670738649162533101906211707538228656482867288947015103723991812998357972937142357050118565943200972448456540098661473556858590833026292243847576106846943892864176949308747945540466174342780473381617564382727410047263011990316519710065975625398260889041933342608993579025878201605160529509973396016178603863392690681387942847794854687231368985113988316577819890071508812138347157062536144303571748864372669162712123144961429582430658972862583279802144783805637775715132773504047894179816946635538282894070544952050470566065517554072748759848433304548880729269455266255160546591871569640578527353375114805830190130178010773593394348283263722022195372031424330259489894628215877835681226026136346452527038849099968928122593422829966364148992068787347921122886321264605322499559868543512207433406371690771339246735354511892945606674598747300420459007676696079680693263801081008171051896377420882766165520510957782152829637324369022909921071686089207593818075520997043722581607504101831363770697375960875784682285130995161893897115985202994433390673292029399681924393583096968398578954868114886372648572477270024811984143801039440783390098312474222770575542595463458060538580563274508033398565543869622332399314779027932622597266188208623751323734181154599531921109625144904938087296375164185550751697013372666533973566307077178116218318348572282650048751016267625995106150796541442384866979100147991443404008908430250810069841803746023275270254097517138749045747259504259073260661761501645671172254032673069629057351712534988983031889785524538161876642719765215784483078777357141653810084296066432116086105176368671092888711961611041760286013966742782559335496420106605965131258831294873835961083102334176153144385805335703908279614791615086313029993821761272670020856373913697824101339297720388277258652043490616440337817717541277588063125386764110140674005545467445222796948863951528717172200293879763762804756081220618850599039159516945709486364780905485346056872071595015613045532254484714584854883963749539454962510817794989586708742893276674683105414814686914480944340875111353483872481517407840628522536006696726348435424005652445222366720769143394116907031732289447917517045922253041743022621893458639288664197456734479092948334913549069004197258560997838315857208996406623841120397942793454639260304170513533309975830972526786343458013935047319778033750367043765440187686782547148226599630473106715066316589560926479647429062463497129851848901032445987339969361720911695450265873599277581529422685184460326534978346838693257850226748421816938786503896891704546237025859716555248152436364434131796021754634077779870228115896048613992983266762674979244791259668110705735824417016472832985642511040633839850218868710846381686950342360358973384104755534710833652764416620990458631708279492722683049822019602096606020160520788374518061294445656647727397591181682537364729811783643041205606121238405715563119786675542130336304019665358089230446940937418022154270051285968923715901083845376160731321308673503934607055092830859646640754262398111361778412078966470164188882726984820050998686722749845069684524686904734512393818108076140493602888374369809541850468424654291325360141720108785914076885574716763150773381964521150262365152229360616044784746595452877504192367405249454537290411193323890538926060863073962208241565150380249910055231109230707417345794953954866082714551479315716135158312272727484899721812906489656759548240112085595204441490174530171654683310613208406659505052763472710226987781557097948742869034458613472704656981601476862846111123863533702285195653217774643059515768569920384691837359147400620889084205289186607010456680623798393029879984618910929839449946681826370945446891274926536964819522645675411438558353913711271979937812313520158903310570502735387413724276529731232399105193597378939765466885434551664528858474940180000720706038040185672230093156132122089800435262613459172920123420095568063746279272190166420437758693448288109904426322128166359475362475082043593771805482210883488820160098064669092603413344199600228825062749354011574232994134948578235296767834006129630498517810050539275079467908709816054296299006126059499154689918759051347858658449553471266240091044056270102977819437199994352226023268599283505030342794180532772234171919052075087229155920599217311898877438152417923363572254112947959352349941997385768404075897123581626837209351122691691813680853766603830786841514207403948151522026228722744893430125471264321408986877866248564498044165910877583930231123216205438246732630916395218393078101145148860982590157333542415837210063119353782173842007583323544616776998239529098855565312964240938663134329288775301370722198829818955204181751200670226629493613717916792293351026681946731976363088987139120736712183582890338645906088626434656456547405847800098127216810062662107834699009774553086871880272924028977171304288349830686474712325827248746636584829205260341999737963315516462533071439764583353401580199101082603935513944640011166375496194693844129130290034434297988626133381623415117138186566653963100790225429910639421180910346076810700943272212248063785509337288958186262174655475704620635885498435762034375466735444038988688650942450381293112545332616723095728731929517297662544062221025001105634656424352194629010981604324824055011739769775058999202167404435349453384973689383178303235869675568119046657115917138903094248639977104816497837416251167676581616469868526631857167539265766013721710301747516917564762501045834427452865424664543146277560936054805092152970648567638145519664414921254882161314312260191717965457218522087713944891790764212845967222794447354536975683865946389808247837153192387015439289112008758505093589750383412502806647705015100250274777830081644747352053433726787891647081747257898208362159107386391471808478724073976584666851472099321833716257898201945139760076430229814666039522994124854406438084749476188889246991238823775312207200960156951350638683322797728074760915118938013671534952539800402375442468419769259584073497814731601487087754952847286547869350187313679172616512565139261711199433760463646787344727181137765401806081016517402656632988552028908311489961941563971488636729586167444126160386389309906428659012227543793355951926771109637224096964181738555560636439467488372903358192662407384572156377562405081831879031446302089125329647810828003862489797231429838930921570594995686267479818222493464096708366108260300786606077666017435668629730594382929241398378378897789376422048022286919753055654593574915190382498087321075339015035560964659383796050969702303040734453462519956154045594025968356128494207979087430887626024740211176112608282877082785591784275005719464489119053576486410978325957273620653053326978028790193586939373976627866582465487378703730319477356491496190009254837102068092193323747825097901688603325067292267288179825986400706567738431151218377890864481635243541192576594468997500135792254036556819197299553715067838720688405262756837895668355511131588115466892397079980664837643335821113865840638137339708879812617055910820914394774935010055575912597175944636043514166478934539754246165084059875760730189028641060867798610218499800702283926023866437007180311664471353813986393330633877613443254051646255826450438682522625058160909650790559956931919189229373928623680681810397459343437877987764119838015419455593769090805712495374637663741629183132969992933368135437798704356374001520160066383393212162240698896922416873919945689962126838544561418503063615679112281480894412939473921916769362346240831612971668457751545164884817094298658210774171563328961364956014749200847258934104159546126999968509543819063318465077413456807031460892886749774824737809292394908772752995305694169437782356999452363466367907641636140815134438968935687276799413086190469286825318207348003916866139540346090173181976598958557379732573352318473459281577477212344726596805071838217723677995362498093851080385094539206641597198189716025034661989653174760594422269712788107754891871655484680224244149063078555779186548358911634802358088776936322052462460505608421789508718640157656316863833788499003334683100346255283989984317060544709529438084613046952425420401835753901210264472548601207191596896565765831200419902222488863959455502587651461533644843319598376186971467924737375488965192254714490010541930406586393676915871752088813812095408053993109917280644238139873901574245036533471376471102623343207285496257030864955792503313855159500221244198582806267217324670765689985001591227881352519598824180099893928122809974341081656136462610760377944996057562010739523931316127105022934904094769288621205243261089934852048901763699959515328175519710259918945990360521819517983127027932760603609847855077832793609976562113292441630222734636541746326547151205007374634398942177439834678256727369300573990073644165151651294459158152356913614328168723570049245259583720240785969453122787350771618131090420360097950988142273108299784564176022436383053280085842425898588811094655984991029310184835079428635665953422669399564043826180556647356564987508061296508926402288638535947811940916495974666695731132710584515894466288273157342972944034383222492759699350036913410481461033034870129418106687293714579423964373920814825866287467233446334508806340135653863227123052635942466694294687968455250898572759560886633120654231572645806719208460604392984475835402322356985605117368807182846117740812216208299566106660254679490179851962806627234769029990775351682156497616245145901639264308517471842403112460020374109340604658152464512858810744012580372070150457670319610246285028803926718768601660987273160943075374912348356026317786431681265442778469680191172266869957932572019575562934946826742691139055178493171388531490616901111019143430172481691170334756788531081984800865838416969040369070892752518387206725000184338259505965514126907089244546822457839184620640433373735338754112658535952172480561779450961886599236683625196701751899337168760570036643379444026970861693725071416890950654975118364967526583459452017222284539563740550942251911363648915493106658970120377842768558181862299487134293944561037823545345075682239321447720050352465364754073510290922133736747786025813382117519560202798796859395545092900240662899027658848386727795873448534793904131167971911250305499565455211702004175008855359038631551477921969520639234398220264485843187646248398164927906159646598397607486749104054402501229710551975167716467207935725883020931193000605098548000512779020159204571424740447475444837639206239394685053486930854104046263178103449676354790544243931232681171647250204666536265912281537554185510224316917181260115831402160735461828508183589515629534933742532927467259802103498598744946766542146056522374444088303020638323910293845723759437647670256102331532998203164042423260269996949692220168451690073283990100882849019461711116084698547152283437216919178173473222457965461648984683151824819368330031571981314085204577257256074698620912396391239682969063070605954828001032821921062264607899059005460369712586757254484886956121230669791394058773832773843662850920380371754765372659408442993946036845036476998429783975130908154537173609869598820696887014598760939150312215767739191726250348833847267852277040900879592790290947962102165650558954798775537150297181617038215974321429899912889629284826473345139956482537069531017638812591294989971607818781042538306149104780687109388067745475915334496150302195932322605676661471317737288769541125365040151238877080479366990533737905299247789169813527511423840988497919500097670920311396503654553696068782997971865408961259685783721301931960657892404232739840322176210831225170489204077840754688711321254729059902385738101061896959485040841111728290058362570136321778266531946298261685191384966286215709073157917852906563580851029132264904966895938569620700749231837916446746338873297300910155959629183525639929495429724329537406742346652668711264505820298824401004328548393797921443845352593980685674615739587723498311960024755689316071081363689678734658591973486858354229105766768600254160013581884284330097864654203590229333653859221129793834595462472361706382117089022529863833993287316741688934577130021731432546526835047012789054270254257611904355975726312524686634336168850140458668882966682045727739353401753197100338464939209635166025054676168415738358782868775143227110282977592857748955174668183094327208818760253236457424923973744737073852312007665179569215190430633192693973144768615902027996555351346997154953931153765717877002663093090359039351678577268371150494332199499071830889971345026279624758533548346656590974619421378661087528642998619363495539265033799482219930274506131273189043970310667512579748091575194452232799654038753027272668700882770779044861112316999663276213068879987288482599421059534166478885532080403489817937136448014913516764124399164371160614496165455494172317054643595210079079227708188726131498229958417437559908406477036619072913547699905154498813559765917954106490550109829534656733001529229848352566650819273355958537553300345171873449435596964619324261346329786921356021853498028016993521040752281979623721227035015138125990463405194530448218189851863196763730990240229159739372096620338548522423638056104307827201839785791102163442531739674520363572238581242587907504373817898887906126730582577425769798779235790665813941742969974320312213586469364453674349263025918137489016286812336314413942195534480675196855684651230040826054879303611029888723419504724582067546679826196526538952969790018169860678783224098247734198305932282728043271083094365459854881779756489853106237955915300739170045285975947103945658226546942182739691867760724622131656566702483895274800022139755193926149614876170250580601979561920738579489743602561305212024913661955929515670671343836125223292227533611143483826347811438667852584480683797549482797011153877180355377192056934043588338381618161616584532437410812562481899932723165383535935863722572385357541365548256099119083496234029090438003245758974753158282181568262542927380236468880020603608226861086895643395951155048588791486270306247560262453251742213906048809953611827850975819283008664756430177603493524037277492417860964461088900676364487279910815567380518235575661274266718387089203446120228315523211512583936572406152575765525143247376150520714300982691469848621608625547118201906428286390378951212264076690321844918843353172805460082767860578740099787925215174235121345348648226077415136727660990798249376307155353234344131605985048630968848643581005564845371243989209490571872711631794257352418566261779735250589428598956406404838274259294708734872755926888013276583750202060414373262693329253883664246200045635970239016768211703734984323579097673040897662414644035500354829225691640848048927590685562416782332569974454925005861433422360337676649170724443818922245823327991007200547695274300603962098822041284683414456106268110382056338802296861368027590177483891092045498319542347440458417019431944928503203752233870765050165665815643191503353042032379253720983659032150364641882384301288533909624676199736292406581900955621668484855171162609746181917047536875854522320276877857195223421735019286133916026848860962161216086533678335451392752347298155802198834760974576294477850255050233726098858293399355241606327499888610673353373444650598770058351255242257730560144245436720782556445834824283962099601769064338564532650947275259488399571653443281757578456275024011260707388627491173558015992358573906282045916096290371905393599869137560443119585435725922894897614978387015166493914427961413797258834536832987353384436890442557238568616265100931356000475803946089402353289412927596158985319306220977689599574039128774493290272975039666889499396088842179595260330316516687603229028777161608938366526782766325923513972908065329260325611512373853970450975041367864777175870927536904834189573310598768508287437643185154581856108103932784749618048227601784204453883723273443913041547687227065934901044427835407053432910491454441238348432383299832484722290328315832782469467576031821754705987579299823943892570553597218547780939233937369984495139234303797307221051525170779946392564120491560493665136107693748423754175204046928197738386038884310458385228081154683779260398678989126697740297875689962704010771441050153293297574301402576320275479991698897239302546486368777915979449281738230270667444262733219084596948483546784523822796111337507753175375359211885187038331791028994942698348530461364713047094545630307081350044059937608610874507619471691419441408834150601247333534672321326521248640849156656586180288270709148628009685982183757368114651379229284987074581724316776096916466870232127993366943428660941712834542602998435123831855229538113405030075455629302828754461462630825312922123858871957926948573980227994116900784056759559270675308914748007088903689360871449367594139648017809233493770317003159794376924616558154960330111385984161883654896345031744430541323344268282159842394359996982405612982550363661522597834232869324039578947415496198354114113819395824521865523771151155973293243096361243727777519042848004264252840442078790272268663972883253028625921609173360503991593555583183443406295361337206193428603621720586040181882483682178033122054921642920919722621408103320627308676580414140442655985989672446853872383339199974276688167265656113146202103743387634267470123807867451149086646021076836783586581788657397503110778949678839811850837394940359033498244618529676133511345454616960523359183486243968228219315486217174196608934466303201470098651000168706778314083877836383070952716583218887348221674481870803046984817955014057437759154234148333808886729157659871169877782359026513908295090763641137850528087010860617249075682393293480259244341458964196043323217621082720436283390331411616622193675835209235209083569296235903504998807428505655811219562608675106312585370834306357971346219930666380331840880389671140101327067800456201622959318966895323971737980179803042520710508027336291554365131561113421521351183173680337645248934650978447460742765282780087383041149105841562915985564412461905690754857248944606886169462831294539410788809357992764691683679095685896943545725812756906769465867342989111762138756016468504472858905012267907989747407344570918587360014951137907237142809582861849092151263956910786089885801948022053391999956781379076636134175756476327243793580439902372950326772095283327911358847209350781618378818320342013504614086913540617425778807334755182284918824515990659538249856014742994695663812706844253828370043872725640010945172391731517226284107703643329575092175710076989634668199785294289521901804395515484804444505965983568845788371043026186357735378740200307058659256541003637794549665483088139066002072031453218056679210846099594743772315598565720292349015200593296172053056212373633683628170952080402865858509242126805026676569490272938921442539942698193111575937853034528196652583028203646447094272867424541671330021206094801491374525669450548608029133357438283000901613946614563748136155372415124818821735226970491593850675197151698789215128272881437334115692910477979522998364844196895860872808138232491883721849133450131847669329221683414590165246705215958396445171545334680859723194829882878539689505922730824273222166589073320304092823623677554267819731413480879418498103715797178705892750819682259986200879802545271080565881048801206638636716348821754620501073686689459367546488179197334503202333920033151461660692858721583435720871293656999096039542725767225978116559251748719649148405473188137402445438670567934211401175417985870450791832613671996026973297183307837643425820908601715330184950018817477996238272384474663265926102640703475974549660303231098701268554359389500514751434822905897052028726940884150090630315818243543828074308630318526546648085581906275439448150305606489946664472703130781414203583204574969388499107401217515877643653040299480071658137088070814974413716760482778397877618729947652859619148616849913651972177947187588644811133700715561486515512035427844614517456095345672406337940603615350763904124887781688793205555506574785822681344892418861698019025429428160158837525933133444427010360507502046806889776635660554214001904697037203771656399174475913306897935462260598474382894206420068390665566148830436192778882866351531324798191546466640085667517662231997112318202023160242403134148127101045217216665216726444753452046717609855574003880585948841793856705949441406350181346808352103410124633760238314809287295721530478256815265515091824962840812895508150754979046044254567102378148593502395475982721091771593091739226968658497040916022295522672432201233760594484779130685702508732567642352889143991629509420951105126445965512011342397188796321527042633917885558483080237787345452342378237201301861172407139143839352632982683974018942305359008860871078627327828737177871185247776779650698599041126760308706717524633618347511743736030046367217916548588461636140966927925352512169428153550369614865226336887422067813321517030338637622091284424090821758242404639742736160264684636346472133486049290882913955076758229436080271181486924117484114863896628408303230651290593723320810479378801765075162281892989870397532913109517700738126108552258061715815946230049646407907412572896969372026549127638479429336238009688754026268498649676580826635143266863955754987130087398006642334785530421491795958719092999627781560016356007255046035263049424463578701997142165137775791354397198443388377597881568703987413326504308410878795575904414916311202030433655230345959219490895650269121594619417700455022743937601870377610073164236283448102619639399917047005454325460239808419810689619982724371430436758641133278349507672811843483762778467195273667972202651358347161758571881296796959795668621409633555844405901119565122288543310846875523383058863830331457863035762353619573626359754314260851264643646497921780616347787279486248608463690081346866159595164571435638865564488542994760115960007509144216710935895508135529786798005374454269020270518921814093247042123903812414503264103302230878781257355239139834147652305835814730727105379525840608707923787536154193208407654947662193491869626258074582842027131439079538799520307402706115166394850960145998783944651725826517006639115354382683022346818227845357546050423624968034923740213532735053886897006421987776302058746331806523644264974094754277704117385766016988908634848103077075211655285156935887352038358030740707391459409796182943692545885565441468066469685198523415471440727900176108560005477666100195795967955395992872551360561170986232645043276222266420517667449846837157466113262119073309761845144801082086099279205323117183590055410065469203490020499505271784098425864651112053896130539406227113043311926243826540487316763438200728838094475760207732781615950347699827417875578994577452692160392314171240034239691826693890504878756709033107941580358887937659720272085545557521820703778760237268980878030461955245319718309379717602560265197957093179262554062487646068255801557969549101857937271718219835096545751413522366702555733889182514924169254827460467358105520355988382655740323340068505554404515958532208386645409595311154409496486185930940719352529417020461589538418896441590824497434456786991322751255669657106040551711679825798671458079284414780678765250749496965451997369172594084928534683287403006207747392206570878977424388853924431925023277366482425319908960019770577818751831239830967950930779275408104671857650182319318186229697229982737212979451284664877256504363921055979289278094177462179279674229618866553814620725891076011487725321805400546733626847617618997309129803363953963119014740910631878432260455084990119555415095651722007921905101406033164534457807082866225877254129516739302730518209177397293643027349379674470150798620149135251556784795127788418005143272118468648140895966269145961551307514721300672380615807492671983721811655989274913100658479204175750847448933967730132624601343063585619331769667241589557217205977478782495010126584995343856269163309175315499402928645765918243988812173565598486422832019434431625570262870923522717367195794081495960662010916221756319030368826260824226437385356600526588286545381920771382855174220181552781679345465108456170413436689910364555616011548656512267066186106193676162270499897548037392592584661069490190223987609918043744936928192471168345148218639368116817106771440547074017574351034245369586543690579710219025367177719472688802627782387876359970694415536478307737063246424003275792760869038097864980753347720566562772369665538500840368051338123122861772830286301305067769942102861062049194009230060306166091696800781489515837229668902239139319545628731172844955842138058316315550569589371700398472156477917747832886891404118221312131814984027546022030095409812554006781958253969886731836419941191010141280513836041105649824884647842094428262670418236488712172353711845123588744417828707737948514869588727437061955327991847969219762833436269092241727814801482534616256664204514095958818787146512549994549150779443816850151259356573552928462841605537156195247750470395599879753450566025182030789198389229621248184189712519545332983461866278550227271173906293153002750104696401453653167405294705262218493419899792520353017225030770132268669592384330026242804259229004100430274643072001985671726279486061501451787351992780347439104431257875828838591182303058738998503370667269126352339540726170615651025225529137246546241570445004758427454724063351814458493278364202424381775621508051120156960817448740374328736712567149134832857639224387853106635410727848789477685573223329217485115869958085284677329879979457008501213902808922416843551813918569922271069731876378144121097073546793794527299950758503514153333323631759707814436771519736619111405689645220303317826074040156501434263416277340516773238191261322413485333745373614541391074950829051328066535504997289147069569162606348541375374937715165812038355791266571398481620224164363941615922603632977200527454174319397117274058447979094822733863981367117742883665688016985106309436454204164610542181182242701204124870868675304410037667250448200796090339385797633002305234329784960945487921778735858828574156532466608257573958552811392755679400343169221769827900640833171974441862363052410318116065232246263747626936530710129260089424766895224455859521026803494672014934522555727659365662295523314723342840328233544965131514383411584626915691724006009243123993598880330178369897443911698775010184580425860703770120983699316260556134631795294480574677838518875194075723670782435568508507371903065970909298677467188876282223402962601719802380026781948300162373218557127697096495922506673852382970381304001869346836266905056884531329923844210264925088404317000794953531705848162995081971264822521425455824225075378136260009721251898901038624111474334223447185555246392279410433001810476546866218472814142316154588275591192495444920185786553300535692372775507867855121232654128763780865686897398519679131535401353451882809578266520105038714862710680738697848693405867079291179647145719676543298615560137011742848105156519044453249175029770322726207899829072119356258058526953075617856820119120010981019027200135734153947538042431706593455293948270212026973114940093715295511728257041504232529305807637241628515793616885294773763516604071730761546727953454098463158527784299273404873231058290805687687778336197494282677094818413431327303194835959305621355786349429158930581644849702260015558838523839884656644740343648898225694147808126158809167955061129034741536383610611289765736295983402867389324217419608383541766790573937953093584467520839955037622418983190966039558197255371974253589920999607958947463848974185336134778290580342090827756442522192370533678302268096301521559213768856604262722386064033317023239555481233471857695238561059152666554173835230774669252066943003632922399891461951354378057650412768539218837190693197239839785565345044531105075289646805016362704521640506980720382138022519642156841761179843298642558381113861028791556017700523825102373278805496548010950512382713028912336706077248650405586931811783713522943343363241984478091243773145729151002191872665060003357494363156397007944976256165814914904531574398563695904619860581611225729670521164818706804576147918068678796823540839533103884610329558842968575161519297699532540150360515329956853385106142327341440492915150363855494402098775121796983346759335696654138541558383277223357899666378554956887343869350538813110896937990460515875695181876961931646971448308956224528631739512451737127110677041080782384156041984990119936648852672328971577617592448462600589319046480369839719964384727747605867454742783506066584517606831277021068244230439034175483237278650346766149417092580718835214706127435249700535550960078516696627291710731369843070074122950874495873551525306431961775163401467713218413433526523796926741290768833833419539670528332379242421559639084737169875416907108100652075931534549430101055083491303489664009888453482472783644303059914647488729473490132705541273435859115034225866422109278321523725327773925490925080072629328919276219309907014301603670943399847404963454841582954865492402023437493870536785605494053523896073770354883535374873898219679258228922012014679816648489305362879418114060784177487773709080423338816710705965977586564010187902723303880909431059081389522272968704167643884245602220644818457916387430884741761374701966155031093471654674874155381512674429062575913105084923427804942754749024610203186632047494258922878622840542446348337652978844900937395422699194568035805401363219828352191238649686997017669786592995125989181418994250185561812779511153541090511063179085350654988758205375041480553905528424594934311288743814233604714271282083003348713543248807333059390246848174047236010264588888426981792178046824363097000149485258045786573614587939135420431328226391257216942655186857383466429674909689033856472709725010499556106067603101706164973264411357999349948869485135916071054089254405817878247738663352549909377153953138611826895425169898628772342393300906696454566667527193068802431283639353409084990984623151912981200622371572506211545762817565712638672157086534526421678380112070104261206453823068893146431257863255601025432353142283792835560141255135017648457710175454395598230070486523797438837732165565022208197074474903376804340355206790903444206507058258328996663341589414451117555961141672104530412297583832309499970985215567352816309456373583025668274063211375674073209258684930902422565550315829869171503392664219276976138565159448421156883835844237984570121611000294765544923354707879384286958917749257581916475257565847243467357821009084086494498502152152981858386833628542636188418075374624989032029472127450252056292175592229042598038720960822783770334711736497895466244496604801675803846429908815432776809494986941313987290416741555227881819134248188413521195832417591239130358566029645617112831966661335532992594224474543653415614735708242994291086410828333989447507297363607344218965308474746151493141269764587120757869392686561910992185565680550229951329812215258443571361341218274763218014409254240657193775868012593561220302542104306567136417436384468610145018125060731078626062364731935466020640700564675263360858658953945031506569000237157380917879343937955310778869955892547733655884166227523212481803129778802556548942676204101529567210612251428313257535139896836396170145625036576471160966766352901449982500637512353386528903681427948147290766653547286237230603793297183433296744262552394085163280047761149476339063772336245396979736988800352911419973371435953639359789865310999175751965671370190325514435071234688327034063304949599338745147184938077929846182671858743780254113457374809320564008324228530213105670121181726263786759967007517248559395418795101869065702225011246198834103454776457596163298135762374559362062837788866927210532380708980788964083579340913876629874490924852498621284349482575916326543715899082183819370275965708809815373748258477202356250110613278077285271730483201754538707983750857010476374116351827191777077052372322671221542178204836931643425393916460464713782640817161356198401463495779700089874292955994115172772241606439154114540520573071608928271418514254241363378232061843412457264075708981887064000550385416238742012195065803340112113769336095919001378853266485441135057835115639976449513248149764472969906062151759106827630566020822814253727909496308029055252139458364091280540915283196794087882172811481394776653175030164156184891644629073510028129532553852944150426333228226872999984765903375193386350605453879293687572342487066845367472634870093949236910150542543295375541766804367612438629762106342723442636024171171367655024979199965032955760990910361136425313549141177145646779082199859513802947331002739366985450885362913190001601671209355419577650671830414274150576614067884962459843326706964697072563943339046800677429222178517581018994253175604670031933660284509705010387351700452811002815001344581812504955847787156167815567293339819158371502288757941950913069869344262571597269489665505804233786848623326056013121685116805422321777885687153380063596829294368265116835001785216432973893592180191637310810019582141439446024828492516731160112813669321036232410649590177848574104935791586999861211924269362965324898842911711652315252991989952528511303235104206617507439825455230201181567452491303902732472526550535203743806579219222460807599222075641200436036256961062220040586235223180666699703224358200724118891091167777397356448384190783911530834268805648015292473358776697565451081774245689556881837389637726604013586872424775689156792077022171391726897093073141773076465211322313715724486582655722254072013401303420830984525996397070263369224703117077682195393810856294541667180430211286024095777635754900258386971338563355404423474317098558829924888751035340861934042198165594982552915844515363203000087391170934756831607999011965180406460248399197180912887317391049594663116080620595329509060610450871953639976030785243041563449030819598025385418550160150191564561344006685505229650388779346318270324949364081913786967177286550370008447544681472167627520507255441036114473808499958153732480588352817373285910306613788942989802182316528126357850886188338112814385219863550410382280562129973723802987361364946130888074740117506744675639458574942757911888609997325066706590257842158822519929961791085635767556894769414283878653249333540601921114086655256204291730713888230101299212217608532002078691787017511050638018646001201899447731549139996541918449842640235196629828605313773968558448443396393358787774728719989086105825671668244584966876955355751000993252154875584361943414957615922952511595720921692963243994926396839670647205783400189753237103193418769190367078872378103306020125892299217353539551603010284064181929553415567776664667386615673199212218713124683301993883225410305981916659956438487217609820119842769641935543085592265957323085060673230061648150488375335996215905452899290685688260139525940158638978058901234429362926322165567194518599974789251120844136231129767547597172020918994043592007691547134889562056113088251884590803108119080439054577723223307409665608683901597409371870172946025788573076797795110037927493636752897466356339499838108079301896168269728149218153452305629542311872654404360419287422714684342408483527208265716831179236679194949990825600442699430766095783446477585510230444674835083509842391839620090745457852543913718346296005495611473085862768494518662263228304459883540812725734653710356457424685789082877559936164413797817856992691087613093235364728779827012984898632113727146141215844396249710598391873464228786531864284033471910811903333425398900590538340698001213785016412847146185136622697289700592802043143314776520482405307666691792374908167063678351097702155561620660615948899824585484949417764109675177878022683906816521692858803133240667912101144591600283943958352963792643848446606093638616006332260956987394496731962522550119695142637369453304257583092098568758965616191370251058283774290066937066108831588593752533148912267545327357147735304517229502114774398179644534879015584446008125485711309348581959388552999504762826446102571382178230195313813766528624428641039898764559741953257276118974543113895088103284450619744555314237604144841766643607675338238118390046240337963212827703570396018684604336829097335425874460625517605460327510205642492744937089462301614486680916844714930890176131862043102632049796473300488987668675173558536702965935849599741751609445469390235581449660924696274462493914146643166842079850064048059057035764336174531632000412195560342109324370695211064088707942259154525696515078248672905027086186411856466819276385372939054405902662092248277684593166927039417599120838844330161344892325072416128346009406061291352241229274598570862043021260251493062951636830304346228061782764592041487575793460689544987332550345026064960018182677219210743900241231554518143945794988750505092461229262827119833489379694359972194182309380745191841755455129503990346878785579771413868628699171318118348902547971245506912624095640366409845046830929314288408810023008925020137349803891565288690285827674522940671506767856702180023583320441315664416425850998181476745705865934730700399228449813755221837738961281606958044088958236045990402960955619216612533918911542989734772881286056689278892041443302157635295658231658511735814322796249389288250690464292646033644619156151680002590044461595989862392027081176329869568124959814760658967725477751220234008083503294322855667695197128817159055243508348526733395172435873481881482283571951457418717283275430281919768571224468982833861031924373928396186934568827263131602370070875028798718050088123623460012964412532349943361402627373009376478321936078687318728668425480608363694831386764195564689631627937333377138772884246376990476603492814376303822816896853179732665397216746297170529878086347795647255103331207206693249721661978273374319322060442393686085951817380963487159441964207425554568604143411346434649341331729471544404464351055590333476351929018254076089958508920605071961647819864280227638370993625432949292069236732142407343534115198315661061614391583713794126353985511071976139187587793038011603048637397889739353082584980645424498373312754176518143891507538977278314698418338022751037800241270384686108183497004909048323951827047361868735666332394114193405779302527009923960508393110702674820319175025313120203027796257486029268622769695250995645888479738109322633948160791319594180856473829946921658807726606837856331767509964573832236049671032954374954598441022204148488271083476500528243831157331093978264740278625986227583338871760713479061496956227376050587863908249643276571636829559627779062402817939881966835919296288647901464837103298917012273035179149447080191101279434491684531086692013392985199681111260374238751907187489326098759185183955423151953916543143969651628306403882542606670750430450937053081290270679217748205532000587739447184696906699063648639262267971953354186003399838971518030454936234497909700398921071019623954894460591549782358343871292757025723476293457694119321434842703862340669016445623941308338082702677043847342232875808444742839369970501269460956440062255934453104987330861174402691841334081264678175843567759578568282467215336052329451655189018584187950711406027901791576195554204191836946509051022787651945580770218917176986102044690858981948441538313592151612257352785000615691235482835771973683837537457151359144040103886849742772117383293182045019241384485162336844033237767515879740806773591859144575719925638200350489469071757248954972069371433939342141864844416595610722514725219923383494356240250599581091499296951706614963724149362776377419999212729829817347339611733786420991810461725148998841887346849943706169811987570069808102026487132140483912629481612800472185778684502535549227250954364228055063900133214421020207081375103300833645177518732632637633353853313260425838483478809814791759669453774142798171083728230071325746172973902673327699246455039630511864773197789137553046092534371767757383347692812109086338910383622874800021313626700274377860933478931892577292138955351632966874455480429069236303505108272044822414224912593494911398578818673678792078390513892245353841032354100206178849070440201963558534497634730749347077007820008579197637261918851816608487885179684915002911778432991453987116368271392559003470113993936935798388144385893903919208808233103969521546089708357261984773074797064635769857048421364602561354107292735042706727053611928380022832764004451391973047898184537435672248598995958357559346512062219504361990694336485829468162921568809801881236058784141351008875269150409328692091694527424031089310839682742258988515017088959309300227847048538044297799785039531917929184811066714202071475198109838858092277675421198170127020796471752310746275669000702268737989024028043187388898422993343859556068250243238395887027622926900702896017966322273145044240597259177943268598809589080863914056790932070085622751532394028214399307373969399033038509922413992476112916291568440138772038615615634645141405046923629659890185968475174394800693759292597417772915619229222152737628995857512753113423826306328341121655458889241539106871515588944326958125889077510630515687009527611919207160490038309574284983406118717218063519212468949626990205319079191924987805614773664299077428347554067454306003630413904735219112095882666260266894317524956348584954430153791990619803252789772626387886573144775676899332442017146589339332649122597265103064570769672658389258512040252627830263562346533330309678951990664283914035160292927663198139130898132254710660460516232573376262740698330514998580551317246058449047870870921427876617398130367641010079055096352809388584690813914499841315380782506982603138209455255996374619370004001330300123234773998760623988082946533099917356562074506249720245280827814149983047468681407455669895479277056498588215836236680383760898590203330803000386159827479656583883570203004763901780108849160917505583423728539328273034569852640938928117669263125567336439324298824928233707226144808100926197763300237452191540290982028109237724509769353249152177622744413382297253676221140693866196471249461510267959642430780895848999359925105433339761674880980288477494206278299403635811238010582108870953548093578986283867713187129400353955787660687435449358315685191829851726474295245518313744001665649631436318160612625497621150314367790252911936677524926576374364246169554669620221593342813719216213423701224709078552037788250129027519742807667269902223287617493121309810791193186504432799897998779784197182589968559456183598225576030271280898852616719694001572159849348543879757353649338639919675016624805066420440833357880564759035072033596481287165687431765806180711203058331825326616952531648275229691165930206793358918354314948801425754838939631500876389033534385236358832281932200310715073688181826560859365632848686920046749355024129381685797192788606733451762882987380829937275360211586660275669343622268403763657749288290264620565929255033799385763061214716734989905987660435674479416944441169651103519377085084235077005872483590915169490489823380348199365181337275216735468169945579078497046025291250615632079283768026466011819176779324206671912205672847203204562302277172633647510529995329346313335960832658025528366421773803463150693424948577375585775797800400321900269997003437134626956861048752183928619533000132784800648181049639998491427858306799861754125645874290378174814208387709950724018525176826157786357142176173036210121422205557098867258889004618757526611139209924537563495273327754594762753710966569465249194869223968411154358232063285762617760824294767411228577009121288807173830728211207480446393440214777990517935925641384754204197637942572838053351439483905668994781583450472909416456640653522822083724338747247806307458985886993810020079750778802685844606833934756942079944463964178609858150885035816410940993635573340133404708159725409172589219169565303593095587269262245427234443162800148180277322571174767558332882173201350205003563414854856540552386928631570738235347281846767244198942901326479737508272658983201982762834166869451685624563765242280305019840546941624233887981177465120051872574025725409399062475439263351407237474001409043570632956118325245924102101852262218215223508359223424112965846141767886245130660425396907922760931325232181102200653670184454602294812075382566784413790664460373953938765345130619558430085375227438980115515813235826608132107166489391533537083725850877397458705478127810739171818091839937999888332008378665050939170829024480521132720805067507804879464948634038049158636851909896072219260289016043013617957619524833439225024901358478073626914743033832582754476665030843688761059845575524353330087675160121362562727899845866368388007832834264600239024083189440056044354329935220437889389916385535359520065081887526335243036003785531633289360449743454767987218447571041841386678346714199951668443901650812121594800980579309756350371354905765802433661914194071296774596230984701950403669112077959176596187491594220916583731799713342706203067644992519480471966378218560151345206652335499999583145963527668826835918021168138412207970370955298600940628792391922365401820553729268283592849599670233347561373556699619407126607772775589822248769802281043761253268179915397668423992157312346147880500995511958343024624973516991315099550270506691563337291183995804141052701365378229338261505147904292899510006511533491193853488077937076788046483623318100782664786938854899115626053103803587252066537933659841071024137433859717799509173065465385379631171793041373924403096718476541240777211889759939659187387282386452425324792993822874364580838658708795859796685888030367838686999645864644357871156147121404873219792215391487324982772963420163606096558556898450588674639169974093458442052614962472247602606753549358615875544824606679604951135513316619822828608415040246445217393528368710301235023752339939991175290238496814520704307023914143573940816922061773606155814526237132277587999033904577196136058437031225472435366347446215325257485240080568524932400907539132602889187709454998190344061795291385461258095263485922903184077679646219749137684658390228904245487996260818065389795901580265706672230001843758043848859867173195732333995752925180429202010423766492641610930811749590753019264069817916681784769201545016884936250066721762477972189331520177940194970186735807154566669610625105486809295491713495601520728777804637841881090880807943488198022022698915244616139863362989224724097171282908986466614781634969939410740785470817894366714651620347614186682590945864327831367859177377050871461649622043857562753133354793004241261656508653874103405040806921922259477491582567342746152253081435236596154130568600730326204336247794645923094159791483790759098715890514268728904860130328209788353267683367400982672069197337618161941421915866143854021024400721950858369120680654054200172959833201342276290444196240999845713008777807376236347290551127001944906809608823214273337906420853440792662845512790271943422332765382073485304996100088229990305743262089121383217826979244318026415349107262607280907920538594336199398545752713998789695487668595183592595800166213980100102289716842344520844674007049929582533654425798355439641422939117273080811316112739143041867664156898309993203851681749094990148548479436832000487885258216378821834935021451009067881801608192038187125721834914596978078363863924540266176558732544002538482681482110226052013461832702034559352879866908949406757076440331529495860015440736378287028702964194128952686942204437375197277138573574218981567481713728934724858245630613363525870925853971904375796190058780173305652266700031231411350196855690566885093093654830541856494111797963111823933345173153336642353330599741645356157540949440627333862425322159027645733034341398410109662407333759205515901466205755016766977956457582962129430665035450857028037351411988844850355076209589051973763302101959485937889261957278551272068530767184314901494023433723861563146836489268365107956071120434538658334649861124341318018791293458601513992674929144055892484516689858264778930641875552512386295665992975858415426562879210260104682020884380489312560578639080815168203413521490880371304817728105886727851771565138553459659264222733560260629110728475796421946404146133540639942306370975865364913607298697139419071293337741958457338069725934635070171599198764744897986454994863544299491275640407997141570305668466471445311268334765185054408454035474691641957501039442799918723234297171598057963013761073951591783557797709689889783672895125011531807114134422633905045077678967853686146807569918072105282501934358398649540452499262811451184525433571375493649142001958935957647203004490331382092086999675118917877459284943608927981605413190371504930044108073747416632393134119065183925998865313434378045894926373360271086590777856120979619407007536929079638101812739083102887775266627020319018172976357744671048488397965578017793740167639534585898575265381335167208663715989834269574401119044785187341537723075608419745133448821884954796669023546594832118289387187111733501463719490005340282977431041506197156302595302870611473401157340608811543577619591147778905449053709360316237716962107153756823590290885658029223212332232101927288308061310381130781749355707422160103254396553865598543464154809831520648577140875499444835383102608123435701576138177228588538321443249236707219250402472201193930714232118703661964479114830250808869851532231357963635581110633932711957538063226677132243896254346455583256228611131688059820041342215905853722479603304411122752548568464601204542265934196005041577885588354870287597124884532010284746350044659718258317246753093077732325689418407904920289143429350005545521369426691625318463913689374437509376382141757842783784315386248810279256514864827014251928766874282431587229155830374602391933955326450593371451799351273426493656954723862726628991177353978023362149798454638487718921928563263688890269129389335364411776794468970429887089354552301720138135510361065168812874771291127571171430814221458451650683459118962530218317107741036548549243460868812675869574455055103513226065120159023155128274860519735490192786721643307279585915273714311573928303317514266912715589336629157796643573902788040971222496122964840575253492522161893883182010212303333159618961416742709729918277361980941174740386666605828492713058256336960586490919629485626637080641072493850766008379866129045086569048087158644736902420988929142106344656694379907385935869231394380097575319842211558513603279560749856329493636430695521770845024113687282630505895589438229300919341993465328074286186477783186878563427736673508403215712265965032970758158105775824224506704062617186816157619071964442546980784598525851959933997680511897245750724177089366919932248862347299463642104272616620035101357410094148193008487139077226365994901042280776896802188611412655562411815429842186934258993529245449870533736286445740686439911903743717250748462018026260246824462532312399783558882332929141143955284545422928015586617037886205232139376422435798393015638899082327949268058647640950647565101407619718871515816291084238118839172239169435956344798068442528401635664254392788267656798072475469034745918150040803636177594798185669953140352042630287817245565145735124073266553884177119800502610594423546573390511608675424458976565084063664342941309729059288721713277023482072004718601903951107810619473536875814932215937410285650767555892081001927677157409463185084189857021948772397389887526570739183551031470302419152469694049959808923074675767407550449927856211673607342162712858022776272329900538462231400971316807332907570123805477565477014914944644255484752751726365549136559082850009386132836677393126335307608199172985676103956942669849258798361086718948268153020337947839614582881312552495674179532194427811353614450772074609980008971523314330442360956075837366344485336288303580504753904796607501884767182235941751348027688379954868302039266046940708581247448578389963033849638991541655869769480549140540693420449066769639328067703777825722994977525984673698168294226201530187439772206761286764097787828871240761865588223060565054594725155469191211366389105662966144201106351523612646586224330646695024482605110289113457606990496872949402285792671507427584984932651392851134194778677801729378483012534849444455949842040262488904993060537032836298784232767853675289622302509632259046180381158825710727564099794274145390281568280692143276334669442728468176336728135103495039176562868082587664115281232538019953864274987195397829050365751995745275299263488378555858299832353622541132018408073753905632970903288841076707878157069308894828324807771468303401059527775295738778777659641679015536531279591282636422872229912175253476059015471943052454394083425085690479368142957576754996706072978066410571824017449839028444275981973055634031074127583182112933700075034129349762131533679498928845468107793874095388570041061519888376790453777714785307614037148606599068864702516771873325587823337833820573939178006227435481141445903775370249692144244202477312501951479946697536224413969334960041915135978882203825262937005561598974833757663115503388115986015057813228488877743778115596267440036900326769977555177563143283293987336421215349797166443363190114399653114314500151349612724025116614829212696560154498077517408955357030805762119062566735191638153711096216568535404847877268051396159131686333713630944273906306608004076944448633769091493157012097027238454423034181667741301800153806386189582345565150196392405658409630048820632434483908988929369263868686230345863559306386433718678394913421884372989137628739452666497375349559161051298407086470584785356936624393004836798228959272707839208491798072380819669947288960797445991332790408823707186914995804945691905244375814582188209528506900952845163213264855807402095036975189544687503342490455887236505966612954376591901058973707442671089555764963460111461602766002507754200181114572051194582607339700182448271397437599968731483957471141472979355717030166494864109166732000798145104365652208032207682229266865682886021414851779490831139975267951539038064464176083240422300004275445609088814471453738574869464592711977879192692588669978753326682707882987337502635249679860948378425183694271965513310216260284105392700652729017668448791853195307488879379983303015904942275278102678973587065680095393900382911964519225499969461241183218086700234582298501425620050942127478703470561984696377784201886708789500001353543235997864952267663051641337012515247815253432740023432162877508190687349599032563379400846912612578058930067183388003089305960207769767090090866005459131099892912666851696456047725241355446959653879431869831081422857769616401045295284642895542683490915441123806761304049789809034736431689103529482725489033007416600827100996501012438632601700551667854881289536556063249353400931102593223110525277543568864007660038365433263799955357418204545215192590379310126589070745298092699528605980691971690893041972618545088273029894018815512243186454692533562181981881923226573006722276049173017734269272509101932927757882767806202684863363883256976708979770869566581638408165405181362208772296143394065458312533421770886487125297199801051252655792875325337081366895015273840285719529754143170966964488046146539145855681983981413799199736879887259707131683204166461744639450236982282014596417156474698799918665505026262201600637579732748765975895925455272253684250312853784722228253788878734830315087068923205135862992593751209126658861798407894554124906355803930549612414307538708693679082925282352244849968838247082938419408594816897458053590468563036745969652952146323371548351077215205502618262889901747999992472172047983561419649815025528909300176491667145937767382063150971590995506844310785642514617929018242458412774180974262166420139085025686532476836392772392955295428417486439248287892449901636817549450294364219702758012983898765456953335531885392877112470641182915792490451815763601618848293026783283545564155829404766741023748530933142471927172010901108790275347116178789616848727012158877776231009781474601720937433617101457047416904749301394177365505714485474940123172651139855401565487716068953562696216278899035075604616649807724025377500020028086317853261519921832408827344246085076901942020870130419721074102631527424869152975512079330418236969586508178184104984299524655093007955960116901223671365379997214673851663392161990535261306648476922647786770905681624525309614351136089587469628391300628265369810685469206704961277881322696709868070549294856864395024692346751518927199058691089083009248287953858419362588469366345398753756352463884581992505421259222723925039230158113974150803471953420019284653760308502568731519816039047587212032811801279109850117793869996287736089825214795799358306519986917912488209916337573334540594667621491729142405479432608794742250545815910331428550308089791516763160627207882353731672753781687280658388963533034705507138436221838618070573352290819513786060612130280294268601072339645190599610890512573258005120256048686593476437401712024786505099522056515508111098580313059497346668250651354365400679411672524880267410622920944784757312102636185740557084837999084570740553245796197981677842087127955487814745448786533982056247877429833735731466425983383521934741530352850958604970392933517715173983126493732711248879538960610376396273640873451089728321539612881537125307095163263588858403654561136401643818958377555426262595747263680259991608316717717663422506227927244312798542831543386282406602543741010770136040620062938248829350422673929082621618719523348041757636097930094108873704542157093421387172663118468999160389295012555097948460617515346701140002341308799183498923667454468359414000936508700372572742399794093999653756524996048287647772986325989548419160197579316693607696762670351958341023172644646009599729620335749664997009153423054707436561507887616533437862762997658045523471939074273781259619813158040870820770244098668222518259787502215635661439448514414805512479019784393441361134203030447252515908852226039664847559928161744988986927974143650564988098011455451386175198413656633977266334916764610346870749360918469137067230909293178081402471585301142690627948730877726844535826032034024007949734037067813649961230125748792834928017248559196260340502422256499619467631527436054724740502468210662392077571404290128448094206091039445338360996105922842315679542469404531982803482488893374380080963288098442621731539499500275334038815472911498886163772811418345666784726058406203953543381072304995626088455449776938857850298460978938575380353033710898141742101676420583617502081621660585538898730072222718497048287347391869786503656559094067543912028386969398763911927083324528388340735852000009484396479269608934402108894672077357499133300946211323699918337565898344152239456988064845872434219824646849306718279656995271685647955710455377161018231101979755017832282271457235720812420904994022569912153601488701097029697008024854585425011544557528639518485488279698320074561025104321304507492497031727922557913359262285503585282574400091205657256699074916379739152177852018404250988393252175018734413200561236968525720768619881206615321212342221892121268645571959598315850802419810889342865553891076756290768499386760694325854400339071782045105843887272715430387941584238613203173791641589775762947360013281547138416787567357255454091679548197333395983923847691454342877460895887434005558399455825999999354159823278354722412088187417084602719397625863674429715841693234139891717725528492772157175073739098400652229992550629217088158500438701316516745195537619852778644163274001673233668004564354555780204845281661252049461684860969293552447791494845144392589043466756058497131989872403907679664300880924170961403644038349202106381964586469056088409626032581718604247219115400086481092868092629872779808774050688781615652269579168336410812334700073246238090974708259580301943525446368668598070976783211021816857081137201535412372113164725833799147991162696406009929638411642441635601570625041474066656156156295647828183548374161287868904960788198401905587859885007687867826534603224500797866428061862165742337921241847459699192228442659142385643295420319925940745883212346822409959355286762616495913348233329902640342402368685385584695985360835574282480103128110436535442995082629627118164107526309127042730578770198205407017262434122752626092444024569945658082661146551325334617964570274044441060188393906756283417674690379849232211358601464990168086412398687857624075779087103707814267240792636004311421107821329531360658699177834893375926977149664089532870136406321986515200384217549252651874569255668059925491902312585326369420829377968390549178548490419288582681947709258172779069141153106425154088450102218804822403101595371207037959365058034905336156493117158023400645472987317310942133926012042756858922755037534289597840435312361216486187944905761943223922666031868751821485867635697508206224471575280202505949856717608914987619650366210545127831763724015626923426878890569220378657030992527409374796743807010594977347421176517920209066214415580693724978986714442124599507614140761243772084545599671129661990233587373253554683258280848451296763139384250466332780321863558963818222033028646194365212954506066777109528808096750979683378872014428602972835145100901966980539831048434082192639077650504842501387662824069161456448951643534279833457889151819240082528599664579393904036541619590751694631603140370143030290912354794247524056761871580506964915667196536963075830732923318085142662799626146131213762639017994025466157151460635335409297707535306074183687398408969579403121671975882604593970447657508400968146956435671525876854686504595201768106895024049077455255870925593318878376697688217036076679715917268763612057294205574494255679185818097801423064607068362713180675825525422322782494419391724526706322648833632394570366820143223758160408110871846376018003993357217300334222481284666407994150301170847050884765632919525549517731986028989350227728889077164420351435778244880157381367010535739079195830672962802620762931803059432798614061358021707886239349902825748024623010912300786001777542522513709783905047437784531083725439286665801119432457423271526686887047572697851418281594368962789526291133491112789015844214758308750685973431395413679156241607932920544101438194731722103479289105847736545135737854556908578258388679263862143747694003096769525587766754650732183162155636965661775310738887666739233644212458013469070905912127162721542356591923630405225753862055081009091094211899770037911433254959373938925007321676380514307094487909595395509113916345788864934976454072887788975534738815801559195628438455414688170723173053041172914632966994996580521131782848321784548745658449207538431469364342395792136041479201734341478555819275554959944402455233985591273407793535564925062410189471400832834737650131175630510578009349550606208219986589964426224916790399731211195587176316786277919364308117618774439168733844659847256874667057644305279061531808098522432542230410853440053898182769586434980843888063633360532483801234277816703851542425771598043994035659757307039470480760522543625738589393648603002579646342883693913246280493491840682834917242976129811085874454669843145717803282829331916536164239911264859216924356766356657205166995281129190756813982882372066716751910275776984108458187196491467578757625882819971058661921589764516743894653256330772303014688992536404272428408171286507190568567319941023501810516611879050297821004781437404375381275248986410534513809674324147210664223791292049709882388480891157508119233658820545431458280277122519282699610541682243129073042263736215710222674897280636868791862107216882812742765122877878325463062414205651134589212344979201548681844334709231449467008515914553290442804361366720779125079502933910431426636623557895621923204525606904929660297469399482668924828844869183937780790437036436173452597437998364703430078749408369437163973569340053282764793524154393127514243970597990711476689470055901793014710151364392662793191248045739265155404791079325448457308374646118068262354902828265017899702891295239159354285290243705443914177901184348193177827269407162446940908330368357061400936669702901498784390264289141437503356632538984546777854427910047007145980780100269775206042602376409899875844152174193162586800582481774095854952267833196507916222309208074297511582546824901728374874503209638497084767332599782986925026925907541733623428531604570734392940607153075156039513336557725491387210896113426027611962248323605560238203271619233863856494244224062642430078403880501527281044818370874995431353910860560840127705711367911916077426530707212473778973041873185897463084582390909027658517671632342570306499340906306764514139681493100558173106681583514609845834269812497218992544924632260500160045143305584475920802553332653220182468988889688881301555999147789211538311910122414799513519610987082560096945815302002979754687299332029198290643512737632723985483650859020278206543419486478709137118927576260550543359455579864180217405765234231192944049320547308821420525793277995493038599889384507940956403734406721424187943398153047973432922919025384626438581636461766167258468173388519201220132574809454712318707186488854269990038333202073842162837613790374190060275454154668906158085789745555069743399384423432656708655928271357705167500291564042030543346375864654466100726306512487239142417383768960489507796111370779221216772784732218430680223587915050774400152049537492486630735698133066031239988846138622932733285191711829271599635297469884968166319153245654514450395978558633918875870150723675674541501098794520378419474612176613872032367062057573617249142963994493940351788748222893444228183879750218920197707892092485861027151556469966402125045040384835708071536446432644355154985405124215386003249263957436067602961954057824663872949947000422115088267599974744684519936321451536564276808812973580681262849939493047014232760671933216744963102918284859521582786891114769951185294662684084098309331527200302286077951517730914473264156913059637977224485633719005514917555298593101833150032130498461861854554746265382442266953543582498089320981895591089319563552540249688055416339606816706250482449924830981000128104041354170616796750810715406021840914850437875079698420439018360754096299194215448057878772651683763209694805952555472427245371038603716142789318174850693246120043609277769268707795166827868579023667859957958338957028248207860127941342346760454559708405857384146606128703373725490683866719987332518422328151168074889869554196893317032892401837938857848864787025149373609118843166062764729346146616958572011253989331090984718124641771191297726509863717048322064753041509761853289167986864613971323473348060743883832582381012182659375413151876016258127590301480447435558989204236599682573871180630616482257606598694409754985397134744506797365824586654646291329770712556505897407848889522033587145101922460742666996409477650342998867022937776264153399539638107204755135686442420270110694190572967518373646835393182917932975877950850484572100944988739108885679478775956487145612357711098982169285818004333565123219890719628823192349985920397668564128132106116087282168295359831331886771637959683481793234709643494166921741657684119484500010396023850855626699222963157375113049849037641038436767345814058543961894635287676639718062129572564445191531583214860989771986148070042922285624899966641412910385941705830049539254569001253249334108696932804400298103215023869389659027975108331987581870896635988763548054570596045345304975161248757703543416427607479483724712136810813933389645456725739563835358718579840771710439766036564023694610109997639149358990329707519310349548655588276680604837792055853404040724369930676025626099786690220160254150273028884051507549523657452960932474875864668795592145147350228648475763479428159861630619568627204142449021365576565150416649107127656303380914807470234480054005018667836288182703047641064540188315659899093336219990855173581173627656085555858617076975108933564306750915252440498247566659872818797507838049918574428664504375911907541545660151805929299560119058695952739471543309355994608903706162675815900345417348424810050621751661977864339916871021352788235447554691973953573506377147484366541311845569556557513112651912201612624147760050247074226185938107212047922726861997862490932357751017240286502492701190140204677774154091663639878754474419694239972540219108874323803088964493577964017839368281987862378289588120539184023623908643624412399550908673046602372185812054567651952930953821819068715607804464309215788920535633895349837863530716782502145823916711640316384059086149259695334554595577429457527007857938840520899195322780858544906348290763270917245869361543561469176045415404225043082570570660572222994546819011124932546404881272925657794634591379063561395247457521823178108673391204553713532921615321974648287666838187968730207253795371880359700232464410912197683981166129288055179357762723934245087372757273174960703292311833550081166272701223068694673984035375910191541803863693438238825282425889175907337472488224126748555891077467360966852823741530584935574968436338813812780658006834210136087469613431197425565789440589508662849616385170531652203712945171685741675023031037247236236375769108872852602789487404224885026264461319082646859459444936435089090782598949894697698198847246614975470684731081404988963646609969012300676683892403678756496115390108607286115340903058682099576479061355350440252468605382216201452299993489963766697883505597336653537176500866236954277146261725146694369248590164563436439016846422570655012035842761429097036284791142904305501180819013303293836785596135011209232821492284167522890063934494123701068706156112413514681487343822692524464713945565966230408121558488726970845183960381896144660540034972254799781120138583384155883484617960621022518929260482694459106567186183920902206324707643790319589970335263010991070222205568825370052266272635931657851815634294513152526799649629797503356649472809111388527643195429627093957167110783968749930124088202231281054311256474316441733054745568435781673094957987958348937689558917066821831722261269905045455536357536709039126233578462860461241312907233491570719979005688084594447770267514989520492123641472124723009217448532597289710926214645945312669627463038303572943452608751042192348653084291722546847167676310059684224633753106335073453562841498057165886849035189211339977508337634031082436272479104259406287172567063163102300748034971915459339716404607841201233545734929895410981534567112263610499393760917890151312018313805222435739349906613947746116872161290826041287824369377299938559453302919110905594463707384247519053380550805420959297067127706754774077458483450224270959294436152481017808792197581393062746492497916245360768534433681330539723505801765410896820624632014485334198616981064397762229262629277981896830060713556522273501781299291512800587412471605029159153363190156802661269898511228861434817327392897846233959301582097129029099762221472902656503179923253267883483614567802307854990471287649273355356173722642523048823127174183066708895864067435381129659877866318581252584004903065464755601507876562539781230582377165251325110959273581316861029613786071175857833396711264840143104753308304175886474665155609053751929244152580047481865230851129935722151322279640970453627751839170063650469361543206899438443137145282068347706674219241814792276172107045556990640627377688654416913487798249118689610651984178943705774078443809711541823873130885049146179482189609712385089334217221716047226409239582168301808944578409156004323169781749328303154025733254155125161606152001486280277026405290915668598679029263880161310271052861449989916669329295623790814592001486981911591041756933637328777881203853583429792934880217182494230776775870512090108753472092889241837464582231688390745581991135700000083739339485617045415201171879671642765131372350259789402902695982505702429556144629926498941724973552681205553379308626146440323637135217177621638159277693541155189428855861776041377359500111454788546828516692186017623352028062787589759439011611342620534635187414011096312218654733926826257061760803990943473032121927944241632066961658688938793672720233612472661261681366607828994390295416062128230228144859669530757942123782218113264091146646827957528667038641966007453489085934151163538587588795253452210363570250354685141200249350839642275599044129707991341119953219177494543118700495781548718365528250810047944964190515669537748027958424131529202025750247623833121870006967230235142988216019750253735595952782893073017242706857510498582650151466203753485448693574978975565637864427342326956062030980456104287665129015624837653840366419545881286548180844060716322309913524720346335967495926848497442391042081048619771511167817436829899218858603109485580573378997133561328596067261070477303219430121223162803507498618081978247421455361391835183831180781384200470362080534255557425909768240789680238536311034238458751880309374894914409150671811218091347094320706279384719072610676288162812445414618656697508722896725925319617480469212533884644987991734570643731792264472251152947440103508191968167314386379918370815341052265833414787268547604135454222088509559517999400779530656610373434861147318860826406900726949430559686475902878460081021284190077696115091836542969439517142680055058624276299842468420822542802026988197620832029211786944441822658883348832786280640594802135692804380142686774094835392247355032125258699712604359694708814836421005598628044919537849296215776306897653011925434408201052662300848229288381558863441126247443739258505404011367316193960636814358348728038813504229114143069034441169364906326112501860797923323076309401931967978902702393735988002037563632440408447346124684556857691987546459863265262202731680439792621981590086349526091239312164111475504169112301039227652968816763987627313521023225149031057017621065713832961316481132261677352949739255919755966613681338926630500060684859801971952122084332012018008330038920198017638070924288570147223843304372774006914726234342991339679319727543599489181571728957359980480130686569925954760635573190006570735271707934054925419037222844202205295843258409264954908879312894981733515941768181258287214819397682691745459495372968647116163132425191823835903819684907190252149759278389354300291473999757181208424990395767265289501972622624439434391953452357840920832972176400264696178361440088388057304006083522997064463362169560927645269625852949669235390552022343658190848756177888634457726834361727742125550796675293045431882429866593044850289225519255899741229662660015941569350659788736213656512912639140557379663451848196334986470180186350903982333747375371200504086174459316491364425150333414631980063226915482673955383111713782525849770718614441226354623303328078965843583950130905822853074415728743291229760928189829132258930984571389907066531887521945437333102269865310622080690405939902911947774222487950882418572008054025749323367229031932519407371522298493071145605180815824662874029648712170507569247538596165124102476401456232889013377703128836879402582831829366355830216303865091134622367385242590113813985676977820698773210446455683613234453497682498674784128618064860697794266732253171806893744990501821566149194852059955360973914295338418100043410846124116115409077499503201828451697545796450662822219216263924951970658043519866396993777293936952947716204679346062184844102465826611205184694723626707301137916917458261082379931975458556792159107109036054867928121360705714032442928912796720938073854389431417973597187482549335663024340013467875036577569205203729565798604432792937720629837902839867762893211545845739639636233335829036936341937228174378866550804387124943120367747904351565036643936333203463638471222894655850024992877872843175152463545669545169793430650060833973912045147397897523674381327431426127057295638722283974645663516287647342676876010751397254292656434427944896401153590954165940903413643032558511972980817913151544783932131489635149074198057742253764592413360902236148710548427031709256447660229439809032203964368262450839083422431511227934207065527925620922847473372653030182402238138701245613060354444647489796869578620683193871099955591569350574958620155985130202297904162258456197074143376870817283202745648933248286442590138298905295170442120346186167827748905748717489964002472639651309845685441807419119446312845593061956821861211131659383111006957480683823997986592115001724886859184785345569121638753801053037256517972933646200016526344528650532317599515812097977500384869674662037575992299901607971842050895089098125110616748096042439230808632417087007820428567112754812061360107827245648714242009237174132386995352290980210488236070894685475252624414371528859430897596383860657708288665840643959801759517786788989166530809585950231664707511893594106798250868244836340635009889559549383800015426982096365038367233874258708073075805342493364929700996800935772171957358345276607285410864919051134935328688563290999933674213626429544759263018052251748186804593385199426813373293415935952184526133739653592818004720018309433245699169181285692574358939270256019705620345531461514893115787711424293393537692978338642368242993822215057283342254474985417297803511361010927740594104984254784778659168427168289227790279789003750133559942331894292574151464763741900525632789332997455936089468814304952773073726243116270250151723846710397762092332318901594861206366175560545474089567698776342145139554566784561685513290664859696549969633466508835389991710627914403261697125235390553528628935037675721934788561449165842028284962043038500934904655529031147287102668890488586452843908797240045233595460293887493560207842900233611728368015881310446612011114551497099659015045744056015322374147961175961579600301464730760956649179389578126298950652194353829979522722003720031718918414597960888621694310487265399218081289541704493206716045005082055834320374676414620898924045622926517231443645741693758552568639208938958636841092296124293478764415438283983220641480858222972015669617760569273787530208025607314717613170526496874613026834012916913286537141898979264259526066022186991498321177346094748425754922913481268462627396293137597628824903478405388716787737968928933793588907481088695939993711750880548305562927794959410043036585511361808101910466843819365929364953271998819430913394501399794303434365294903976566833186450577338599256983030611078414694368199558527690014557889291711196394304847932789755714582028892200396364560476025486947170715695418104877712762778849595002352610238290017237934458892279336577638482435033964547313349596231865620000369381036570763059369664555099100562066415193880957734201265872598361494993803325384263779873830573867174696189441618598247373692385832150198747533658314209174377050187220388014286442928046287973176724977509204320889105236433090235326801617353819415643411055754909518175932139307732335344760053361287697567089198117138930041362764739031824284886600527350389196023870055480973920798204309841892826175656425404722557337615000218452918435943997017933718499140926484950201801653327808533097391130975992999915881217753240508700202612112975049437488212333791509229041973052720145443293515048714174752208621462005403865923816740439184492326243941476320685071170381937953523186563523205690182171163353568076472761118697738410411952212023036079755155742997975120570916873027607629953799573679345020960721671892008783003437378292285393653968541270577474185763460628160249693461793752003708997758309202539446242293246689975862246074887287491130502857455488247066069747445554883869206177841748718306039906683979636387669295836601590795145994135360627777392859628642021557520564011649154318993311633220202507102819220136791354061793855831752504751555348880113414684743281963166586894522831217352640463549501734512892222520070680457696491903907223152359184641417919382588759666058753250196432935783427443048423263131441223749276251235137588213909062885854152654193409573702997940746627233357813524718205761059842635598240699561025086004842975479369142425268269254956187641479124419971807318736740952259162995863384235056018557397040628524599851337316581163087082908626946186513502854805987247880763039924608338321865956704567924289305068642448448298316370757063755633378341664580366815287796683266080700065450267845047773775026382631664112810990392547808581319605105028616406872362249692804058704311971411607527510543254534296689289550315241579911059327855142337911605855998013813723305687857196481130704469514430908294164882840858662328958124587774104800939492250249767172755072834819331471381641745984852275324515808520343778592632624645284139765520141839452748840537467883161005091670192333472334505781615991218362243040478597784996967954980026832403431027228760132563926234582280369097848698850566621774127685112867681003956299667930633469167738752134373801661048138155507261223133550991220046343408485851509154948232692025005376230873181302404933679012693420817670367103775705333988843799994997564002067160823909067409958612815195707752239117197198271028762135150116071495432217672601883621934695163002802789676683354070955673392515189020100539517216549774735833857695689840944766427503110362876575404623364830308542812246035701672331025000299126076820154395618857246237798564627789551303987932687049796041442927773836540267222127496253846572011893464148660093507799320178140827188396237643346828153197358440082036084922687924651931094287667832949072469615205588778504936530778668042586717762731294499490048595146433846180175797296865528119358547436440534849412138601676437886724863684248282589679504781245821043220759608042502089069138822358823422884642408976261236321309251804622885719508793676999056976828860989510175333424942789776663116758123689458347441468641792523544532737648368779513597862235593165253213875702062484925998082999001630298366254275515914711277359480506031202410357921165546396906674738538974063087940375253054235004071065760592427694197401784942457440765187921638407837606473073116266739335899964800819075112277166980323940749159891114818094342273379649406713521342711486917263725408780714851948755385039335965746428796214906994290738905693584725882236671790372729939607126046676966586011140440894482683569194546759617373236633119009171300274981728216421720360425492088834131806051980895988606157568117228216906192395849178331752155156820557657816954576127296853391744867147060954352960533763910434429147382746084264928812220201665102930000067260080647391968377787070590203669179869846384138952638240348481847094400816206212658453200242188106191806307353184555909659221071772063319786700433756776706915550350414660030001454386489787689341276669370710552188742220277724784137813253209518556119658997366753224966884220985645387540863020082225310601383700860665445455566894867801558040613654749921428753183160516659625847464866080361877867148572528235447159752202332608396171744790566512319316786215685823905509394352471261664852059570935156831363411239561121892792807813740834414901969580272734842209232831830699816692838798196296265530300417747863963155838710252356349023462685815945610570440177151308386149924047612977801113498504949589409343420300125830083432065623249656214093215606015081744970409470227964406099410724187602657200112714649597294290625429240737527478127661189960255735967315671146252017069699055902888401271543538428086800229585080757563753896689472509109941105091857958555875809239682455578185927383156229798910718913128143289553991764511232876783061956966607401158536485809552911878704087344641871103282777060108198347396681283452780619717970163573525842069239699604211299139154190396702120748028865807171690861272009267917796922354586821931230810896449904565362112904694122488118446577557272123953753448085946632222832977552677840708010407610355402871898524681741675886710102765363418285006154947429920114342120157409138866042990877048122863257255818859905741399554700185713892751659825943972450941343501250284900821045076401548170548627394905252516192744440041593029545629753861967539338231820488712409241275300298607699540699739426166790449959957956889673662243198925694686492328118609988194283409679363160319195787236313176450193412276704842553080431469980131406002706964169896712462572378181754891382246845123036474162326594768706955953800927413116423742153795856148202059551840088967778252977492583333944037806881388652431290914216171268009110761546678702136246497949098056810578448514436331425275236057366291659646330934044983349888869564510643824861281121842402048043235084190775426274190993777420553571583225017429532877999399897078845440887654778005168607511014146092704602728242065716597011297265487952148739717257403380282072478990935726216436597998018410196494698311410277311843722186928289921703473223573293354927728283595577063865101858214605083639555830346531517468118560333389850421776291239865486728621118050316803641348724616946674631126889764013052409503821914516423677575722231401108568989880324361851215954910919161185728525068612809309665716820094674604062339480160613084866604975595086252476360216236099004292823902516519202289028351664192912759297885333043710783299577412746629467412283987124156657980501265512555806887037731273317674445313926597494263140207334758865735707462979126283739507117831804110496825439592742718443578161467439486033306363536250199669889914863081769136856880872305501042191325541067745489962435817308483367349641469515623516375690512564770204748362547546176839948727156660075274823056261448542028052970128703438406073849455297112267989885942089189187327861317497512998347174841369500721627179782068591189796421689359209364298547734976421290647160589278548866866040523439456474239649203296611708768844729739247317168983515313570396287590152123878143804393968932471634615155133771441157039982195164354985490685718399865529451024237335143891054894860448758027212738193716917442071143312718613474742955413125614804548269884674379721632850661449878424878861927676171026554033216866153940293639279161485116247559284823070201657170487471190627156273986976956783827493182488786672939634444651774953884617491344502652409367582709649900208090157641839477555841535463738629608201246114114177738608558256239129568332711109611281823125089963089743453489930313484241969112590611944060526810700691729348710440752930733453364670668008440692450805205680151274967760094887221956082201151899476315774691149407325806436537946998242336525016633146200839225231547498259801824908294085190789513752158093497521368270554113706628539016171159657731098479962514966782736056716204547459184387365341029058722430666964895012252943854804653990530063709756465809983450424717395220874552202547472969149875510074217387758774159332364131414277836229103591161110005918444569158089247647108416123854859431678983951067065063438640114762607012505415281167920548158855256632236665548761682002463157013847583282934597336170633963062352574037978494574095588436384660990809083869277387532781908176635259231786757165239330609251239155196999339156736206493264511056062157784114864249102232204836204137745954243496580866094780695191095917175865859209279560411651137593118004476412662610335969672150681696180890521635679916726830612667059142945991833781470430937108826934406146745351216616737747279209117816089743302726139788765285132883973047480799036250208873802566007182854111118943724973670039013659042627510117312930249822840542364994723393296549098511174622940959009873818657984824428926939808065166313999215474501460376744681527204287141627896080780245574804651156705982492015726095404136437074423001198106415321835441991597371228287914278446423021631481555942599995453067531308728123291067359303146268581165484133267172899873836027280214382405715631187702607273083751268686111640001654896099836675102238627587187853467871555733912706923930225349399034930239594155900839449917536510528574684989653214093304815631960263029138898793859483724028900061111025690134179943573513115789990832518313781213106068564638443573447146745827871911056771547607443251532125138951878697919141776388454474472568078378648884652671969712453530476596683754585603381149734343267130196331158229869769269351596544296365122162248285235855491526108813542897841062117289204780404997681281236396166821284295519926285477120854987789705492947743913607423412918345448651386870607531939844940215201813231512312300375439093165088415558788082391870101981849875136733934653825656145288093429063791247996013857556194739228815631127149597675192865257135259277330638614005544141475801987591051703908619870456010608372856426647036554276510052308442173940041369723956814119201314515825479862471356079189426922882624686060057173758814385287506487194050075725154220646213434391717398151005361135427729960448701147049712807788365419065904277584059389385187958086737785023317906660387514146601555666791218470348132974589261023306683061920036073142046038826564998896187247174508631180738357118066002160586384694797843021659267148825419958665624678327138506162008727989429065765129533040428199789734512969574002804510216375521606153856589366917500392719409448989697022660729329437755887045806307669386249217844775196864969924061693859095153314049444784337846366628822925024561994025017814405083509202729667624238754553810883553159664648540651270531007135661037458296077585610369546372707958879386974030650017590572823659578775621441798370297153218841999606251601207659774980339127352395773633462035720404250921657255402676850339777240463527395952884590325107220636136788505612531498666133997146152490629736039108570523783973960753067782914357488503517539375631822332819434519680154481890090771326668578954507230766055599278530839449626937375175940695505802849811729160136816791595401634799984493182385332965342483151350748913952051511289289932506829845801986923232550115502791321732365663341299681098088899628951516642338483390831289969926680557707148708316155277749432627105900894977396983852015707694942085977139125551779768229101046655458249823748232797004329067953388331066645026476218113455868587445406484921842026744048163227324094421353912852815877680532515806910142842053418232006704766410857525764675325460546867766829528148070022045357154409042985362945242483442706795133215860443315869733750019153430833190637610610278514533848884556713552814192273016870094274446854343754590430863320349575397878967649181132789211684425216483093823596817612119891816483398056344093072711841397940250714060093591064737777258752143142878721146433363329359664247859237394928239319559842837090691614051406800062540258581679932329838945871911385156264924467177548953514034063872531969077036210050032450454258719684213678388052102685425759882687127810105540117010924614449987960767419660376989037432622870518934397821118372442954286353866932513078201049411402145807451340709543893777769722738980075178812260786356152011405637112403822681334584513539739001944317323768556838044596218349285515274039641076151718704019516553003366529009233220701682686910093703852679888686893387337483903601317358779645936610139589087760097624994885057700395645407894332074491956083311384488535078606846312655555959580461602362586843442584902386347564380280475172171933103567252626188385092302885742878817494654948795048647202126901583957266227804265537371283086846341778506914171714762719484216223075103847467748128165150922183858084329071663840972338739572779467034044973117861891299039823656375659728172191179867012978433909231272799521450966114974207127777083111646678150607852219905264993038833434282900521821444920831011095193857327697973140386141050608310991146715774835632098132232957035966210496081703454738340358546140776400274038842543212290119336170601147719436661855853661585044096074812647524011732547758890057399360339982752743205935596755608596195210337088136152929424022271189436212319076313783753478854906797063948197355020040340381950043015486914755112512453101082392723178937754409332245148815116854532514798727477758626936498187471223583270533417950755345154833670458665832561730778722203962704349787027818036795455687484171275570860146063117978320512923672854311759274626314273033167050379586073221052332747054240968003943985648186220015543746327956958843465792684581097117666931893921748825869566896391392554033235219137868005946450922679601358929388242490798214388330648604313322386650536129682906820203972845643783504146239444239556770982436303983703185249871248217321001142660178863879374396902215122766421668382929625691159882978218121275159098442709825102069798053019989758076137810633956987279322531110128939202676402478796277843189486353456389874935447137668505884998254975597087368446767874626527646672882781238622705202188047753622665636185555026098558504572284967702394271093650170339478953729472409225510307421097848008008713762095937275614996999240084757188290521990333345055093442145858655668879483049099746750087852786952222288338067982673328890555911251301142303191474195052540265353581424824372114201709895111790701347177428239487580959295957377954846703584289302956520078641192614105768989370961590458059011088713405816649122599823177611325916373547401944887080405831276062822556036354007044749257551014090733744165443554094996277057355222788944836578572398031250733651992453065467626082648098600524441181345412504026197550467780325464454929748275570994342606566466980145529124902591177048576933949095623758040782101314175449704735069404861341585726759956678521514379756664354981272170120744785887730693708400130559742200756147271964750721983148007020013753653807672723411132204870721910137236185533811993609696578372047443089300184947568131428890797415234463020207796713946549110291304671035376637586634241362391582348732247551243497917442083067244598707727510628205885717625082688659753821386732116010366511767081361911915063351015574747244291592976697333991971705076891280307703286496738825688972024774435876619319926728084774620603967343969711735711096562776370463434238861197015679012019094437814366998322412226849569602302679142385257501011048667361473169238932700642830039226699330596284063366564380789279110491462636785215119401166789754438458496509943929148533780561548056443727404626831304368820679290631885111580194084985723491366498795682839122295523874958600412157316689921678758807234395763454192332803117810536808144584551790212218847470928176894354747109415272302393288167059697534119535163675935147890983394431995476630594427631115890775292976412197411319935938217633182147969688641738057023857903642428354084668653468607941204007659480563227255628200105965946913065495005256233803884364206775083003171637449360234157757098625447761333570756833541312100139361947039605815786752073429108662791691400693240146014508967375098402055596196457633801056353028084201521509081641615789853193433882504831849816983593717710080239101211711187492408581727716491409367804503414430077497692074729619064961434660407923739660548293920616496283289683712149825651262705576129342085775361160692959296805458857806494465652009251149888104373204344565282650243354133908912625222763900663082501926620911070734680377242875295888984218386640665260375289134486643256803020669278361910597377856212776468643429334009412688678614441894068326395143395034941998136463322758249240186065007558079174717363615975499469294090026608842359614456943627105816068385454094248025381908764204082571284563312651164278762130176354852387185699893475614107018959027695352188665862893864270266802357127525202378534791605663630921307505550519432590453593511661601697370239593111923744618632928397211104328803910067720447256479231299398958114165801548121879714538213621461655297660989207916141646028441110264028214677545536827767136976356361299275316850627179634853808616331149797478467211538407928776784506126130410586740286827272609981836917304368899113776010094728792487202078706843488115564592979242725948049778849279626618030427047613211101238720829169419261253323311154801061146554374545326049782201806461989762426712003561391507516703918958840588736385940811335749798038117946575807403296159224539011188271836254685734540313103917124206244660142285521385699363739990532553072219562273184098111537632550758094792177010051088646416400271849833138842446847000211091528761790153244266109836684356855312204638287084144592185971760856388021277573592919741759827033174464809737289496788478311361233822728124327771493682632268455762137550261292400185924351915750446248336103376587780654324478036115677572484738349964642109691202344715351621072797903127319976266021572580569788445020716044294109182688059214707352838826536489453765153295119093281356706758938281046302993167918310956313608429299645852199717581511467243653280995587885114649023281231035705957024751249933472321622342684006303408561377729973366358587263024562973331183713483681886520045028754032380231478008014751878020227957351838902116060752796977882601722573456496989970272280392757357009088724086035662152535085019732020212910527366582822356363221593487195880051323436665764778685422723061761580988664086745978487319257598409299290542905997065824996025266044992579414822232052396234768223572855742098677203085499049495985159891323281570722601040677276067154134241930203462199835796822479999093186885593100396508444055413421148975972617916664532029795786470095853503789039878575740634334316558253457301891800880489827180972544563437376278926987139911746044530700189636752723760751925921651848024712343464655631910538771352611709118323185120609774733932136503078605907413231285146179372684214472572616368902715280161574868478585763567575643213613297684974686193304722509484139220228551559412504955199191585451615919874254069116810530359624850940191609833152733773589420520225519413454148141928151696960379453948334038032353205596564287073310527923818801993678675287339466072791191562632262330083958872628875986891216647899803650370973360810948340294215355694163130971451236652677439031159845242626457001074034369797976194472642271083172753121895273582993408747406653893086231454723903122710450157964573254317808909535437822339905606492463310261067807776631156824103985999302668032008134947776619475444978853159545943249792154954608534276399617499191870099010462422023509159036171021546058473128237929350443173568475408621750135958607321258105908942831557297127424568637400661626957057365383032403605354702152943766438031295115420343373887989072010523486216534693643802591673380912275957449886429282043575010150198698091972727048774925268292514101555623874694087945920647319566448941903395717949130343907261279414375644844184956194079782736166331582756394893525008190109092757588727949840280569170452088216541225968551352632482066700578706807258711327797779888133580328040402110629925325725534729531186652628978656580170899682408148762007545255397692410840016794965465484589454999963041312495054705303288214365238011194075886947502804982079311710316006263886639442601549856016556784273826396792533266234992268352546822097061243045347004815869983616964001831476699374232451013340739172568993484219257179117596927718880316813773046493279977525584417232302714067664480643395725492674953259783045625911895703905637363612787721802736557703658515725450550491416687855991342027457471539118405403346352488749145907370983624485960154662013542676167646368346032540838273904015921602153665288515978390402156486769335512342623476429621416964609681585343010111812377837468064077807346948330911956171673896385207954130215066805461387423444242729790654487220912768906857340884734403683617192939216383642676097040417263145849331960229403618493879576702643522137535521444386190949736093945135299899145698520338749839769868268414060026087963025985763592180451308743563356567862592551777347927650346662346247308573746137307581385635094111744510742167740569043206167488604505674062495594897116784118028826257889980799479878326931450817989308791323874579911055029241195420064611933150584669634831734648173344025451971585594938056966852349729724121701525788522395989651861052983664828899185750544443555881199619124389167736805993127635335318265316881535017177089036052589814802741828850029446643008704262756921312856407040809891883472824807845301852612531725046422725282828841367049251154445284742262382111387920015032554677365163154418713851643952067503231092479601312812161628242340921409422572838627839953513819734862209650947686750625928956235449468268185662687653887762863193922114169056817559473590584423231982203045275514440690025645693714184683976826869264871952796564386497337865385035885558193467962525953514515540226856931925012663349659296417859224504568682756343897523174928358238368924325137519784462527880014636248983379492289686264029344246079139700140500789187499009489573493114538758262488703176620059523725335319307888930615600291515710043099401892415088550244680106687109750221940098125038583032340747325492031294683871944636013193884771633937564386588631728556110208464519499213466718756043755794221995374825246477701463602772355846994189683931734009900968819771739434483588595195861172954695733208630393076280893780812808566512074190096297271584656770279035333534787410346206223267365052336953454348346917163891119316155305887692413362019070095964559729809069731963330294583032640001478804209597456480201890914508500379731687671936344271131414348047703334367326877483169540933134490679394146040193386712868783334843631488765979395669825713017381936514937465230894666960092045428168495472600835319852217345546665218659970684087186139848372871961274173222121168409540839828952465891587107845499134939424464277930427330478456311938018970592622332575689146443500101289953038998420665667340428051444266609453144307901284877344124336061097534732274697493221302340491504008273226608227842477881280242192577118274583073495643786743986187574665163341264703558358729029910139748569327342590741236398395085161529257044655114695881836530925065174385507569621633756664548808239743627076777004097049870914931259440956967878576666112363081876736097153632384134198367652296609356553664103934405344234324062324319251855890175530002677948544815442036682886985140538578356681260503190700656716015428569699006721959233367123485031279228660313427633242674371270891146770603506990736079656557831238604041440475014762543696883973542763446651414790206415472511745873461583110091327774710611482961115125162534741684381713393152496726442735170926583156946863160748785629598845617187607878092586521609596083470252083270294296676331487271308222279313500512617018558789854208156653704997771347418546488989431237903055352165093610071735633491759204786838026032671906936727785552922727410975506600537790803100027926443919177798937604600956619001231681853544466238095198165387156193767561255726816975191731366467476372335381996272012088892057299637112105800869427289145233134870764160448857319830319269429106586732822797430691589849128477787684071380313570007553429878578636178650577258681351863111697097348557441522865358778649863345385487587825844492746746057980670166340000140914588862082848186483133594463935740579347631304924251281788388062931259409863374087777898541576810851797926373235691071066760849939735658427100378095646438282302799697015215114567600301186380731766309612893945799117399039188065722698103950390113863984079873029489651195934013527177415778663135221730705840501392387881202003560896107842185595188591632858560630433864617881968713474628567440345642426469009382449783133780346679628335236074920542926924802112661300269728867448658291598933357786048540221964121293892604118580805568877343701469755786765757574602652600030480633785350182317500047846665290595723816621935380821842360795359109202366309245417979845263205929270137298446065325576087346028230991663080392945860362712104540756413320021039363960537537539779268763541505931880110164724055259865650392828638878718825956597960994360993738662803407279185842670860580699637631978289068051074438115690502701216064884241491224046181827060975095559811093396614640791320255693681182935579435994859770629144214538141669117527165404143307615089492770109445314468593104987012039587233673744540708999837145676709170247686503501131613554056173805896681883035107701550217185923402769388560432666582603353381009895272661095463160591685232689609205231501645795815873108222893906371911995232109596623561133656951764127078522433214318634466971329603595646598301045718487869838151321399112307101095980895564116454223934802612144043728386837506552836034133543862970057703308608776850966598363312030494776482316888188604116093405659821489248757657330531232316090145940796006668292838948942129568687576297308382008001604416948643835134707199775490756767593486494101853434189739898286082708048971289714637464945333450941272334958694224313234495600585497920628199996013659809864932780016954371149802871264724688490463437843891957896170914636263245226479042546103224595413104388649171075244384986521767659733110544792703665218092251062073916521792929862795520921133395915473327460144780228001306578356721745698506109795358931462200793273103257615916885340601370857129632683785921185274827234223603473459947963221374176513662847607358395770153859220779916095315913669762480186293936923565736996812931944259736693336285776418217633307043618364771034992704067403542067840831564796577386191089381316566268460859809691175779113497477102110523073623186788481781579593139995330201599407155055303365170882947918237967711419253956119705895950316768820954088874285811376981909792952591532073015838770746737046208078933437845989427582391356579728909927713180978320975975234168380086859803036447455713876663631613529061593791233124081440585430588401101151907081682362965245696180290052541544929009269986647022787786884031492741196156587369424902823995048964985761224106939561829676960233147459138015792426616787444510271978763308776406028673106389329085897631511519544266354359473749672933600979757058521095092261569822877712282333151473435699935087423030513932299967653130005858284231789955899395842900087879827484758616198215735737605217722832453999783490477489538190918438113086577164710346727127159179389081533758706869265029857658557101909526796929505280114860918123193190200203287721719610470691517498977931373395019485308398324168409293611351527522056722002753253028957297257346948719098822628488472299103920143131198729466236417958540666286122412738375336062799991789003979633234167157814384233326830906507872026508255011810104559090448687191074095816064797318044550540645133333043460304971525040262669662927351523771547768515494319564877027009553957001073203738144752288781133873037614594005179320181427238345645411092779560949944461719588438124131030544706995992129255786483502205916541909537639444033957793367007877893754206716075300307213509028108806113751927100625705562797393817546523239070629967717047444532997642101019666972933015610475463807928775202094767552143129149925528237140285895868784254663722807805561744968749471403533161638970332877918005945159158393803929533314069191445553038104646834173105215187520978513371893882712301034636169366995341829828496350815352494693066658134039861982575862666974287327258993628909843204549613145082355250078318446529076071277704530767978508212130049225846472999359238423187074345406114114227619393490406875724264696549235574729418008784039147636577292035702928696784435950905583633935756332458688829329219410571207763925714131765440597972921074668291714669483393371429942934695289923641856377289472053508123760688737337057554749767071326577535921215987853262954919654301413460805531583729160462958667891593426061059783379014652338621840831214589475829912033520427356304504441198518089848276830962789779052829924688271834759153099136002609851143851322874203472373066335144069000089603561784213244393783255871010406078756036534675025190135875981651269082963139194228016039946151237930167766844913174709120773364727721135325710871813533303948151228765447075333932349620965672840801070855286122648691286124244062914924154024512592599061235318294533677771359011683971931386815326004429132398895909152269577394922047367943499731161716912056785535127715448778179016555918034005985411364125790978549050423608917290329835093203281590037976420262079898571504988473649176738111692743070377751494062913169176415153172642357169304904043860991492045143620311997854024153001763173308412274720452812832275597467725238855814939480426269875206444006725852430912887366693631282653092287038084464029896724045992407914676497265061372132893303727782237467394971828376130899694187360921352912015019401359158054241332525218620395326080387418187881556161182787008910991769048618518661016824856727012147911134811093251715309632953190123978277950802287996440897354710127955875210690794262968839214167064524152698184376359509107026353485448522417492758524493524924830821725326858037105434122901345762360116266914537431688473638494398694422631145971755067809827688566340401532442092277783100323196666764440420778885314126241513002491843403102998763001660190925613893624201496027895433251716324370800230122629872583954708735804112243914076841190969410092253370723031544084650081632140178032772931455686377467192623256594189628402611136207060559673312143456203578273357924319927876051754336950076358752389779639091476267383257862252915017338781586288872576593081963326259007171229368869895096376493500641308266227815253985572702357626181855055978482009297523657908708181363285971822415681801918451088063063908651262426897024942938477342528150911496989718058833402155483847566261696879754640491253737297281754751803349197258523425841001973118831534512970745454070043077132658558025069959759549875269870364325454216238048677898643041775374362985456675890203926889804732675448635097786563912459996316434445837699194514094890377902944474118579984670223194837092633536493876233356360315642348468703367844478289834509309270994623436147072570912723079377978636813490601456947481793678221424593213707321607781607095152598279785583015234112231447058376558001996604731414954154353078691142643588046294874086058458750585469533161600871438944570058587035280456215243898076397276867427293847218700098835303375424208811015044829237173851194191158690340399434222308980364659630659521884753908567920663491872692472705581542659211267174877235265626476585990781550778978623488414847972655970807229690434623401406519454899874972454297665520714453591910433286043487893353244257771233882868580976000563859254843341639737304856047733643100122189072632184241828500084059190003095922161333185901901662097015025934001126216871782154897057631335565702724073695953122825305661679822836569354986833585761683962174032072323221473784069914299577571603239140211216868293274989280661522428449728242690991275194979780485384778761656582115698939608034882386765977330386579117010365682695067866170928612680331209147168223151673311588118948250865774686431322490171883528040423495319692128042801862753335442638852546813225384354168522429765796950485142501301165184428091242031172590498304678744194150973443724253306050417663402193443788740890752008970094094065602034256328066240483066891466562505318892178956261711691493920136487880847836402552625075228745745794841538474621310083564960577368243796257524324174913494309023677556958872959569668140720755124671005304134645145007760770821641484737312166391209574288665657808343718301188799164097369382545351357884936313982440747795705347193878027443499861621627670271767332636244346028386506477627705355280111951149185379614695203795336871018221850390420518353010513144122302177719091503828918173181672850173529119082781924258800032963716523863857890614307819908211624242131331100554670474485160388530527154713184861613230507320616323186071370434500155093997410046928035252602127035050694979336253286351979901547796360958601887046148576272908817567871034895509098553416843273566055426989658985159244961720150423591763179134722607287790324010361653809449079822001912378877094853454013049553062910150363944677834236238641524501420827545890829252043371511452916020343072968502529414516702911266176774996607943189196322569783333864585728927812553265584433105781223801164658617232785953903487446681401204823009005964241601796946747042275764096202437350196076801922157392563732119931133293241479767962936708190615351682523230998154235478088467860224580954750789689306699272525290415090727401086991282912883378850216231224936942494068962499983828386906025755944002959884024687812744901846589950227656316525055250878178162988419586235697809621397550886300705501604226670890720316551792712498261370844465489731764043788591837539807485619751410021998589568161265239095752030442385537675945179117339788842043953735893772286620878162096076882209612765794268642453991780060456977585083622601567283009228792051228321817365060432887722427078360332613818062497525457843294394710125008860215293493130542265989319970772542617921310948110382795165065063415684010173657315394521687743054456754668212966214410026464444878176918885717188305498476245134270545950625125027105703036676276718599264426833579794191815372888712402924158219473891067196756417304787985890584753923171885763796674938749553990447729936708908151379862331828217388875807587106000055478330739563287152499998110849094536543338338391711522979922602992854805873876104073122504701799165143508281702488202527997869122704222445777731779708357335049027938110829977695741120348840907330190018033084740384279181872468921733217620099932647685969995846677199769810239911338889994165656964175224158736467849723890511263414246211024426193491589415485609475880953387194577704739440482727396136474406813901159605548259559751070917735995467474009775086715399978244242776974368152694073159310690341248629009220699585720087017748232567999642374257232482340757972816533226262876064637256550008217651934073816495212282880480714684792010930128683062675861559493885049547203441799797492090640647503798048879664997065104584594493075498991566920207803399131046254601937733147398702284326418238927929889291860883541511341042106209822159901537253983364504507042989949693250975255513792909666820251200405610600079758745904342637725981538721605451013029194532407661284512550646341324937052128037656938997934021434874467786291043983759831843421523282177885578488746977611167758203259634126361480579836330603129921782833828624290463988896664282249918043635645884766860615947147875000964321238728569366235560334544652070420810145165287133620198599679660582826980575868394110690383549689697961187543052725079090028590964093635630611991522837528833824740636050974378586864385778621867367787786458259472781293380741586072067608051384475665320803329507681393597043444897079719935947242514705071684058080736096229514641653849745523411695764743482966658969363913943309109081776612000336236989809765201319792203498461691884929411496176099025530729237479257567274826728678599042128532806366310608649082637613500893558268048293690644804639561565370905813578832111184487317869290564452741804697272126679611358553943809910274619549671925998030343131252742294526870334003371453170853023680296279117087463706199075288587788785546443819127015232811034386920829764901907271497658434245465386154683586826923056407006172830410281801035377013452432780402571355846709281455025195924234837869134231068981871698473181356344187747335959102701399637353307312496087433493980725784480642883565280101348574296558699598685292443008418274079764450740579001739752993785207412801982607195452038635359987960584228255014840231402011065320506381330074736686617356166918901846876887326878281583765475006424013964525239087610170706404327773367777832240959631308657966734203404152855145168437478753385853144960205367336155270298990781981413961910094169412896467550447504949885497277326543087770551603463787809599080710464181221972995309712560285891609195065349908375501416365700337750028245923525688954185069925034088007044039872394890170328254956444221354416554926648251044885115851291943631985883441929563356712544706842312836764331741224704117371625349447205432462573470938735874125079774084141530691792454153723348290732720222638673937852611579721706582210274943196871872226132956554067692790182969573686083660246911966322870266210548839275875251189627488187450202095053259746021260097667470194199570902542695259402355019272979939284201821404812667287469454546502862372844311016743876990925227175211977874184248048184111661008894622836075328989321947412229381978549736504252377365942463106516678228318865874056818134792413204059137673622203232114536184660383608145084923565832264466174910656166913901437556988039361307709641211550397042269052581349074504555707767464038322163728871149673557415296857106093561013159142495756844715430016346682437352027018222002564151523754466338213814729110309948631039034027694651370764300885144176942807776724049127825982111088518314928485538673281544857460065562070016258521397886803620573372094282227691484742840801609288442846455495569326499786093765938417246828958961668318396665542599940582914945224657319619915537414669723841972447101294741682267553882899438912165350383688038805824754431276067955420131842811918117660270080460018546105952373962136281179999274969617675909668501776456701780229621202510043558966110697906293150392446667189303986890385465615219240206709320353931289679451816108016184735503032224192341646290388544259294861531658748875170124684218071662154519544835158040349280607018241613443284983230946082017294476367191834694703918742973011750602404287922237234173457792265696509692208300143646352013009967314309816236411412769894172032766227261574686771542734318034307803446033069088474550936813554427531000142592151287753071830464122681008502706553014320946959412878032875462839216508059494513644119484475667617039018221697679998244168885716067245705852822645394979443653165558577988124351279003675098159567692644648417391586189618532866269133691371334448860245041854943070397190689145826224130370787786123306327987736720729319658423432040622870880328396854833512870895156403459772992810486682417439458720154051315656412585900157966837185105030882951241194733748160380660552021282884380751251719075380151502422935481668770739724462029077120413714064927808272090824637018515963096294877272392534136943575726950677935776893475012893157588739640190048219065173760039276857853153710721282450635222851383729836948439274666764210342921327533252247105185803551872197720174191146701646435273919289462900417821234895463572497517593557071831225615670571399951691103992486584982055801650403688278667831523888299444889833168401527894508130819936434057418629913336454290567085922068220120464338870607001414697292541922791894283926905317255295438951514240933639216860346619181668150279456535915081887641515503912049035590545966010683159311110836096115393531353179053536990216855371360517281038047671332512741898710954626221005720831547705606058278914037098574724370394352340460565746144266417687624125459848185164238113885516632659475461608548778004323713139305403089441948270760220352220031674662367644127381939414276208094892604828791167721532016608246252257812062880785219265319172446359851288927557031402277342242736342891940275061534365838921834472862871905039616154367707775346034986827781062308668315075293953789754354777400470730897827401154359472554713285023232809275027108101543623887512369297232100870555938863735398053229127989498148537409099847083219612359529059764057053058946900867349259217368637541095821018456008532367048508133431221568003497717332364107773487211190753527972742139770453401438224358171223539013552255573736243798078001636041363170569706598130629139954023140783472462229530687668622388213195190932456875713120211756644839143945041836740764806555230759565791754918220183297809317468054532242833952804582758595507445094873854913268635201950821478986818753412059437621065725063782680488535660578782690568529724954224579189647429132217394404235525013218500066616098773139016915437305290751831087786972419182923530551483367600447972143724545754755655417925452193880407825164777582739707751006943031371065224875130038310037095496787934045928114490695692799391017176629951711659835634891501931403331586144273193189600172225806632155068277217960306516531926754235870395510768352811042856286504871564460515882006894464841078183968432391928023212385855132766572119582381928232687076544225161819716822469720142817499203050657587624655313393270291446455066743867326147398826953965624600156390510640234876724914088949569771053685940679952410910266152803543807813829802780960824010957443830911207241825241223154501523040367099015830239740964085559137873636430358938296056352020799652528020182091619032060657604110735361735702880146604221724340470728774714924466476438551835940471198355584850232976567265930786789390516783810246902685375067873504158205733824768553001663477398325642313787890108123301498108244827071847639216475282045596567296746188271545457433018490620601660208449434602667500186985350367776951112682264779559517127763722839619529829417187877971434359951356848882305844035616601319980972423299792041087123506159224390221426144014909360103790861543581893884153565518728971550975302279562757796379009039330897328793660033151861056984966675400632454605024870627558883281230008783352138186516382000155489163927730425984049023133738721171277590931121623598864810313916206519449457255904532446654874426512989857987777686719042166684459676049551652737698212145005385010713022435746856376725124342969580520519788541991015286376609060040048921275052943587317250772171545987417741852908416175269479224548945498278208932710556717434142824667908898067872837179705137940791324132029299237121485590365495411041679463353554001014317768868405599988337176889358256355064896480080522297694631269397832379603193411756331836115962426875980611711526654559545407608365695617317628744022302706640895004292059211794868196639274635394091108496122554503351535896600006782782437852524277367501291705379399838902499737142710926021379843194783786417521153684395491650665970638772237232827860513643510668951752025167457879777603333719866879617857050358400306293954402971178313755900460876090074337518788611406259041166566973268716057035830454262780979567725453959521007472036677992260443516626739398080791626620935493162237588459838294256762215200861083093492291385551150750795685979536606587965056253197168763050099538017742701745302712173792590882248838811993257221478490584010006919923448986064355126262534840004540140385672301687488853033780294714442150217067000840620106902335043586286735862359612127511363787625700949038149195414576145129771397788609452781594502042999447180637072205511388648638422522200520521475943366373956978738026296044081264606082304416165234726252912090050001311183252455615984999748103059703376737603417583370946117693323418711866389557607009477234894849445314447274608662904801053274683790248961706728811143132592992969687021618717114259786018617935102340151674807674809571495231474720278347388321336295935280834000999980749991981223627117468982635565650798815843239996944588209622854026577923835893202385379892648947269920143052318099655615435002698887020296197323712247832627434142803641274114110245818583685081307396424454713715417842484124224977706755776228124335927052959256826656881953566558979808552363687567348168161849603284692055917699330868186067234714771256912065702792656514913427959710075702753962784719250984868504400404020165437765490300765505615183473253483035366815755872087154966371890908908606556805824163490018765043138352129848339815807128228702911541572311860637239007118146657835365509132958362153588204273332254991805246090395227242747840452874414671617347807103851284113890506325331408274291324817887015193625190164208999807285947633212542237790106861213124135350626331024387842959123551534876973961890986985064483419788101369453513486231941267443357480559039564856280841094045333422213550542432547198224868248945036867892255257354941052366321249579066428563622178201045783241727402795186993368190476782270454948563593857287709753838071406829949213615954439839940783485554872650204638277973616385927064012417451264740535460520874472438188785776688797467060034879633598312113871059426089907709215346496563127483692818402843672469138753710924397768051688425601293965191140956930830039560536370364185726193556997829452337297723334636358935911716745895175544933701426409692110284917935877836014843197214645417155462787590168694072429969425620045268377283498022597809117984449330967121981016325892035600518853528956809920079545872801855528534063939540410009150145241517876466563949451802625751324075753405133933175111507005341111289601459244426782935873112448355893746592413011291611006095188756647029740059581789096151646596590530985628058747390188753802034128646892054095135681722397191178095382305613944734747777200994289069698755683222877628187262316794883286469640949813277782195618324320661989853411341203551378217610828813713395176915820302129765125132283911718944271515311636661976826062701000345669680256660001281195863228593204330892248460494714677911403423914310412085053791891880251424479793946120204910923912742627938581695227107725408960254794775726245593570266519189354174131260844547062209350247708287890731467198425491250659543283644140349524145801542790402808001957072442711038292183102270868186513940584009091769914490759424817800152811151612608522861418131271256755183900678432969199069246339696782407978873814309404470706351146759412950046696869148501898281688921225127910069010764908532824659842710346791200344406436027243206625625139799555470427070536775021465811101926189450011821356892774688689250910730037192464049396059460617719572735785587959810709537852492218877548013817847744163852992642180855842499040556518095944691388577822026003028482738390083404838125401567341375792078555161069540363430951702542200633458013451278141755800439757779245569363847924785837542492702739844337495763078600483746857444863696115352629960248890213762033439199707430347076582595011517954317855271449430538126145500385926457608030637006037373080576634506002976967956192010871694921084663343421396735463486865270053235162512323108561745065689255077901944224332081745757369971315017530086295854557644564690440405667449466621814486848522141378753294537274878054717403978100665698305926488027999730687908423666624503984937636982811159744496930803074418725470266909408223662049322993554568928763603527016249522684476083647611847390174980638514970911949847392619682682788658035599921573803897964419437295362654589548958078353478249096284433277215089861223268460652126702428544454242146718201714894436289093062890051106074704317002434045926460697015015516845253058671424773625006946221519775705469564187328639663442879249040114823907139832360033412607758790602176308694306057070155573090719000655760889587963170282867238488249314843763442262899772454641900143502633876082713915839510555952470511395335945195422262914915243155045543795406879144601175610684470089019188631731281525870410092234757991189939791470070217543304885241927172350097109398482134702175413603086059698437129613255804871515064076358745948068811111728709880613746559898591781465628523027242152934907387049792992262248391252111104278373607478017701083705465241642857535351290105823314061667419443140598703168971561092417276683266030020052508982641440434442589972660943306606548300114023564036958713483016881385307309575774509465024753204858226444432707083189273929977483739710520705225733219710019920352206504437197457007788942890776735275806401179596500363846017634898449437192571827287181879638977258090909102927459860630328226002677574236803268344652339985362713919965837194907956485328200157819098223532886697336299039116875840316148643353791197249651615336008256166775054882976592807915003982606817673089283186302754841916026240864402823563094722099612601460772507084610142969392635892203272966404858804319817935442366119249636193189532527063421035080455795643601671772501190036935672470492536817906647289554871125180872135030709047978156483713547794445829022924141702528708586053796604108022475107071172205643477361401096921576746490277497544086278295295679471917246449436360939087355343213388368491360563954241965794117586812396692043764725983933131869385269592330927780512808425296262959182732340118891267217443128459227769393254743390005992977695887161477396832492530956215589982798461195444637868796632074497051785017074401789378188784924214909737798689361405620685133588471365772565193984172254531155012183664957561760860016362261309034103696520236428112189442626963095392181498760141263761445950543464348181833143192139535029280366268470270642344672613410114236244448474902153434540117422757194458317110537378467478503372268461480183722739003975777671731761796831462880049268047478580764042570482329115953628238900325893996703587266538421411884385810943309765724570394630758651934996269268139223503054301056451009007463086796973009079010713132057780698336887598138295197751531949739142317254864108184191096648862869461616169760916190148614862075028954207751026062798563280656338355776703972106132956464046253219474748982604090604099941960793455935416940069883070004673735609130473361358178896782834033637635769146792653669515524624667031852959545394115102100518478903418074347693021291847975969203815041925374688907839465362315662464064228490260002812787787737361960878245387401358672527453326850816762151860564719854956947982959080764230674751204146053095110202709792291174489156049714333088921139748698666568268581963488989317701300736241052781538737224322519175884308862421130324106061464063417219586661701993289204619934705704515240128719082206479501247522338428896083986681576102816762644981132712149112831159731766862700840571120496763403824115722080712767699496435682396383788565245453474998291510475830232785601765147384492508903988070892307483366810284478542868075703875554558468273348849387002105699746427087213036145227326378639121959042140911786830357450133076933544414340938784313095618005573428362062034840483090258906455553653789892447253502273950148828629672744825821729419121728458282580612100880511193740251130935129984359879987911780797633401909795115630150445207582248005820609732976718943906361015242280328196777368781974469637626789004356335963748423654277086962255041314080976872966155310107364887305265933250978144824609085425321681935427081828611519502417013052337967497345231863981582377741427677785562509965870065718334167361775932768333137015795268117821719695276346555533973938799816119833483983374871365592887330098566052563195446506979908234415877230253065800404669242782001414091242094650716996060978559358323148556022309845337993690430590261431638631585614788725624376014915272041749198931361474959179416986900248932277757379819214453459887537432569776734564227826583397558204055588353896390053736883046098814867784197352458900828560794986011282901701715415220600518952132884680044425521083171266333928133362704813150217085213221839989267366370726275269168219036019799251354925953573590881008080124176369620940467898541323493857850965520706024126332340071864955877639181208536569740844237819038656783409456523006127142555216416410825675421432190865532701316805397628834831051994727633602980544884219308060081395689642038612150601834150483761829379857625921847425472528001212990711414821966016899933756053437373921121655868980928084202381857887140756457007884892296819510217013864538574617325699408488400688065957913688812356932127943159254673690571112520673578975716936272667204579389263966953702652979574306975611174759694873091093348098698893415175494841712901071594708960073361740006019823909007154148543202793005146693100406541724600926516024553825203813574804849164351046158893710533156154963795014423997727131235383508484711655545995281381207966787184135002522528258381192248921409701733404214167185433445210790767309175227722373376738754588863553565838202098017466643685479619474902977878291255037619359056026196620527880288321679054523518958277361791265688948932585778732876418071883844175677894624062624668649960317892014971410202425422295109518599497913660785846673277535905060684903652191978725908335019249277805814327733794603588388682669756459377958690531718283842680724443745102308448603036333348920604221998925738175766940571606624770915467429260411010938967989099700006578088823773210689115194492148038083581200257501487186938663900023351116639615060356817734200027563068239896151872323100540664647920494171728352423486843848546246783991412549919106394372939520311257405537420276814311811324089614729845674647368008108096877874916585949102258909128235336281471004851624027171254282554424444551746913732458151253026178172515883347447673369470462237231022053697687096235054991053271507993225845169648948668059832026765755265963420648183428028837158195362759302719185797788121892192853307095495627495542353856457850631502247132536776872108242190975133873887734824527385810447234005519534910137637482673037252898332800946722596377522114020840559165979608443949964358655004141400860690212815042773597091189301595087283960540456441246480423470708019851455993156280017072743127988615186068038108552826278999696833310824721600355241073782695040603508712173479729273418832003553940067176798362368542013540141234745941311872499461663477236658553614639958520471258639931291793410051458505971043298703381526939656785569567266554735562534434880550422068693385919903047997855476649003943066272505536399382388044140871938287507327105381683304328860131837497309799418680277894095907950452154605973127955117240132202687070596261346964883917189226377407484528201008415530187422206501304389860322178533689720353080421396386802342425043467122143807259938962398284519931902572167113360715416910188950452315086818517522180390413866819139365964798325694182309646223511838098817026981362160347264272404352592513329903766571601682132503586421602340081042567143554698518447592358216526556604093127837878342978308462980842493120257588105395500621281906610976580058827492362449639208310149051917946486103521052044060705219137429643268383735898303673881076056034904309691531554821813251091456512560551021295502267669718098129749733519385009440482677660781407562167558289487120004475750150854245776382391254713270405841537131456912422514096873045991314457474833860954082654171398799038145310333420921827204070884292159838719389239392481429908136948870063815894200430502392789031961433555777480665028638277027955727495143681664992098239170074418947262433056648705926488978305751975917472277498690376154066054889757143160959945796643794431115173485100752804651199882086375459710205605799933513410469280877505467735426534388637235034049654642189515583819208171224864861625982406001440300365225408572159404149462166244868203575443953799787297433402184796839354545924227626119042189706491135072599084212423128351746301988185072837588769363289878783966097528146612143519658655738706696484436455988827825064317769755799532674689807374579211070846013062346544060548397757274581923629909595299943555734144088523866870392928284049906277813548224344988824112967238271150045367223297336803234556932168241993124084336277352344777884343055318199952576679841896616961250174289262222893282895139224824090438473327975128125394064128474599766508926458989435054662904676174233510085116792323531502743810789376526814377407932388585566974081679359591378523712296138721189405973260326964011872013683692530294247006698678003629834223193815813465052739193787884802550662892130571281560216222766410882599714551467887700607101161124741883629360119087756480761965934090321834697082770549696355939317331744957974842603542710447331380588985542998671050430641895359757487064514594888002987465148799314893496138077042223450579690969690101329297226345531556751805874436609020781667739964723557729175553689689524855194287291449050731538107495235419675634979930686204656188072366454916783237847586370258326146758028442251324388187148916776430956763662888867327869282834662327607803970952461537184960371890844227815793614211399476699522999178722435650152912677707548421907671753464741600570267571289756893127607922214649611152759842216175273288237008389169437919092573379910221671941534781488011075045386509344546996664894666927897348880389175685227747256658689328311707807806162632293900645920699083271123558022831655402610711256927657255820707105574925891900406967296788548639942157759248099128666790389239763854063653413367122387870762096575954652956449745008934788918356851356344262588274666462352882384509153538079343313562477903298356458852862804512201700712350333357012284507900502931133125678650982179490844662264655858520558909849815450893886016647942484946257216445116127864748755892159637013985693757597058969675274551956796813404746970451933258893025666333782538025028041292039123151747083850422538242305845616505917699280708738584592766881009864412911984230747284111029577812834849812167111268679390603940646163166888104563667036848614862969314157344936904740190542041295129182527924342028900047058440222783480599441638623715232501599511159744801333137076561018665620679043066719924162539003852950080946940944114852380631165964965834680244512985198803375763119552004374163868149795411134337846056009061978782871538624592733933714449536569484583865296483928850853730541889123579914394900590414448351761246787466177921377558661962748006343085178842098487016822492131910153002462880108268992105640346989495081095389033462059145799571442764913272757232729817815998227383223385039070190777026697437927399834265525197046180514526031957170592280875187684982782043020801134275042276734090561355199810386808581370764199384305922200853430973147023746351657197063228220522082116512758083348111026876511714848656315946741256947586502487777127421895251100499589491974038804435028101001794338708978933941958064391425504625551250334894948491256916929006574232742261018194377495571920341530599640030942884510102651559969343035489565908137457110131184134313397280334021523651549914904798848171435841091943981610100369970606647043136677692596862807153697462897004415529460775770111569922813067847041879798024870115597736276380644667819130054411723101799190684553199890733204740338800381715149380331121167823905725627057185312019633070776983516374286544693771983693785775391412023640280576192556982503935244223267518471262414678744077468338341626646255756395469520586435537082757723430286896477403320106086303803184032608893385059986868138836216807035605776222179204947253506542096475704387409714362553788625434342225118470385834142316415899177977818134791838220308659959756111443505225600156014283786517170416684248459924682743549686268499376101325760246198069669759393930799685190346027340371252454589252518045349949500157592386904214306200770201944060534207157502464297037411782148954795802863253870271331019305055475342555109947156813648106437163006535741408173567061271013362179366022882138382211297294641372883275421680541901607962077706277718557001394882719616840245157978627193263256303523268114998815494604153626734439208047580918935684943223732964194152627044663625455586133534064988794870911947157110224771806889988831680601005199839542743512020916359350993605587345942628090359120848859345207927205787955174844569667277374611262436085292091694308638067695187646499314883419520945542970068211970163055806945496949669545057964102409471198804757136597761482339649601902034013500766087707228168323361485235393979586778694643304353539719034988417662690243882442439405964166769144948586122480493180586081134413305482532819864632923976499632383361479773650926744433405289179097952045292722636116508545264488497616724769436837940602830722476273142298759613141358591937138987069264843640222731747655780634008353136707069955178210733490425653744450604418012378737224076532798997796207036036378583476383119886786902988460679413633574274107397031949972131397282749349566779456864548107492543107242209334554591086802585609762236976376634058917679361539398752389521696111415528359370251357742920901014883388057671957403489509481452847293721837457075188966564777379189416023061123988515698767900453325694110009220635067681015724933024696988461053255673223280345832581137647002061363765459066646141831319736223403875528463115075272641421375624552393737383987558530549237661583257423463244968251298887066473158884818730355740658596550285552577068859415479472260265968220369560521130667485958377676237509518732908295970947899414569164643475255818517145744041987587612002184496289617514015100017631163161195878230302900667729461994600581713293155073538496180294670630594215249978515572511285900862756922733582566689374813119842026053212438097987008605700100829615495996651309178803694340247109200504476619942853691934572275734570246276726425241881079649779724357133815757149367259864325350256989483626579501306703883524262800363244262223806321532883337667914980156465178343832076303216208119038614193059634498338972023506827836826537965316242844941336075735745772550965368894878455472895775414705048885297520531105351629234388668061752370548326223470473279049160339490395874861025162814904201566769258395216239890555807547091937539668773295344069714215617836299130273495091269261158704281537036276154769079502258727818251009034686417622943182431769396833743270559176773314681664542107442148220341205292009951365652252976122272919427147814938006293563727582912327974533573613524369020315613218673543346198391216798108986515458480071408852721779579361667773501588717789940087811165730192148264924185722177209350409746976724732370653139226792916759577508898478911671976464002199589462272984465283946921256655420211549481158269194342096575533103960856538824114034411506189544137356901460895414447189548746456495746858626263006578525000773013460059823971258655119410813722552892667823770270123013982578513775226859672138392215372705252623179228278660196811221823796453772595786077584616502518677538014313279441438624083277194947599145116177457515117711128183190535230159089590501851380382439703677533559123993107310590247802571663914803358842517896979701057954534610037766590066159147128709910450141019354075404488068857765710132987820855949752720728902229119261606539429052169173689091461528767862637341724929222133466061328624539988116120819603790513718498614494394610429850735629024364676390823548193030851228328188722145832004409981582316268536600330533013280720619121777942985352970530074315046273019065811684617195346073856617369668110917897090008316694532011299361130752645638996514551406488474563901077710450069157881966144057802443439883969069523016117502636105302570875190784892447250135095239458240036624859594515931141927063506515415964245607589185232102352535430701258309614085180940429129602864479902234978630000342218547729002396862993369573672573588680928495740526782218908004325466074635599229082035733407365536525367514098717435211037062168222028632962166728621933857711896722734447422896369841531669795327065662370160232765483193841927920516966865908417810791410407477595751900626677440871032390687086549648750524587201051147505793976801330739982730747849649360041452530586925574280344007722528192423924318202800750737933597138317951830416149826762202922602603639831011936333563372076464451433677730735414375661739165192482175569978024508833025756251103689197800539859995181321095052395393529671673349322662993349307558950850619930808052730079104694775232848691925412536390687729036298285425161019315094097124167624700758477045271567730155488917353035605385427816346036431968222338036572575550072762727635961349639919025949903038123604064766696575061850045391306892904692875842380457693230053203487947886387034414425688693934706089230981895019910877930639442935303085917154407601556318283398440382980500511381185808270018737449009307278036905782082690554158816533266744900264226165226955729874851748869352286323460657045702849333006721316374410155412935559230523195853626458784518617768645832904207594091440506582962493072185017768799856128012285604667302451178680392451761063909576588141259578096123312695838098939864312606829001407051307268821436409076948510949666276721895732337146120518696302954820532930761935010909426545621524189289864127237038752508340895970345033505972859324510427451404073710710726916090644843208718672679466433141601572595932706457009980557090439022237516655083308164178983592276569536026074179147030412910818088372873686726967622414361981840221827315400451800121735276251643427692977065634566293282400463680663113919561345092933333586208236498634195782136832816763115177701215278658176409276917813577087379900917922759957467253151352022468804665463491687384077408542652418752883614434984506273990612726742170301289727925424722811441690906366816167048751177822958271070193099912149046821270033994409444808825466047579459402661121970737449505313969297797550629346397980087245857708742956725938806408227877280179012910822122938400103564284022451511892229964687933251692622049416738459437959598197527476823635866556615151982151023989036607606763674941047025473837633968854038464339754209938272241782624750570810188774809936610531955697091161767521713076484965240615832747126632868387480660921802627198720411426729318258153337750173383890699885252366287243453129548434533340005624952082157409535006556458030054974062898068485013981635077082645253557004013610033155725313148467162453853138991599856822235592150213893371082564594998354407248309828469360868256291275352990682981691350101369301954757505853469662605552722079983756760002235180757154906345799872232650066120113524099900154920285492054716744381382843100255498087266690010320465718265149747991632397595528946533330182763989070560494955781438106411759315991425667442505810344438140302561664704243199991674853138934425838848623344835649821667193464589477102726519973925103668190823565445843512921865590121975438094966059707348239761220042103422898984208357369433970232342292990690694478879013705060801150919066389357123912319596350261685928572321357914759284086544183219855196477528426943831529536978398331265391595370474167083321603360983107511264105613955899692888196883595756109574084410966126786463802025975340380854771676643896857289523482471235690735543243506804379836953448739601703287596999739088663303118574655053462248779902086869831137276987358834339074913386594739732337677934487710733707937391216915739244534749440354289408737223750751069543341068599535239613076989554033938482330323932887908725655360593936689611188530084328549283518222873810245164601667159906150820820394365795596830578971923941748888847217978140075001030767106509132228474535943585334806729281454711236634831122772253233221511070640719101830075958537085678264062136624722351901347236146923605577183008505120201279541419344307672447352276191606867032433041985750326659093104390880723171295916273511377686733411147475980206830271033827687254661976552901753292569821304783254111686754901576151739424682536117751579713354084812429403291473771340685004851311047493266676251707647030476848485287632350055114784023127123975648904180279641649852442174271383479856783215834089074221372900716031240861443758397608704305807656618559972263813806926392011916107255090829060124080374034301681687542054444332920635869040336934522228400447152141751724353111022984246607285597611607626450646289282183060793535553315024443767490395153784046892643098254207187045281069517739290968822374212977893023252844733060138802805718124722535469399778777970702720527133547442103594398167100843296336873144519920792760227583459047418343678389192741064579706366214990664440968337332406398394226064768620098639709038022419711109837273855299090636105065976358200197712017996561566378690303691864880821573363905008388428870595269889168794341302172658781738825247524259292541945244332608784350083501401194916795784572500754731980950209577911513469776636693528741244507374863644903011173659742024382102879593077051795446487938191614085225822459418067723824560716433438631022166317912505165088806196448159983155403361002965202489079570615305325958287225752521923155088126312040403148405328722163434291717027085974187658134582331305278099489021899869314470215003120034766384273067428764148234117622855128551324766659206905888640225976726420827284178388839904012183556799263995957417652953554650676901785137121120965660177922318375222797842578689002370481311335360446835699627989817893267069000618859957090410110643553941731735133586744936337588452673726135666187671266978212075410563336960294487897017405740637152794486223952503213983270273091858297025706442309202498405495681020988734704359136532392318753225330625703885954045462731244733658522974670873826711284819268246070279309589067682138844300668066396332741743725446659696731052168545566814990480058966903077209993415478675264922127632139908079257954674481503184021688613394751761466320549068994741902640389611951218699977082832010869641494250236551803175603213160434036716379684563354154489539438438762559330986224924134124942327638453718229704987770513091048885439137741347285698312846401532490003970441218390598777478199096540185324868763177738580181487223103261512158676865305976226565339384221879675420105296291970518797424585784041271946957886052152074350307394774216166866682877331583177918721935219983680973761786978214245777020135739825949391258467382418749103247885258597523361028119015078496424648141468299567474606009761211126901680497407853558258729481214890489404586500759311424465054241180550596778654068999509507409202330870948825739980078931277477737198515566320655038104423995848200889799484342893493815352484371291792315374707932193771435700302630214313352488663809358661978946535731353760527420138106332572606495226533137042399673123172095171701776476400121745485698466213001875821562506169816912065225621027702305177652223581652535409769911754684913818006780602727341923412555893331335836634831085855012244709206098637685762997528124944899041706684236247738808176849156733548706307659918981235798305557309746612142961551120080955343797247564736021968646746318353436589258737843886776180861082928607431900300547745130448369950424085247111658923787696253089141172408570313592130492260400636072953196301923293847887854541689082993806377111661644116149330041742442990940801144461056508818118032406859567599272196848469975139402390891618677952261390076716863755341672165924107313261552468630484969393637803704714395862788051811205490124308268213441784430781593808233149175146650602437293333035999077324161281833683566460509061438998741529900178424302668236407040723896715033033308558069979029452583434835417777923593702677208770037919505845679685963197877133237637147423844717833570261947102650079887166613977613648010772667183205736251574906342247002968709853184865411989490669245000745756253006320598932694015553419398981720578130287904485000417364339633257038605056668613431288347638922058255750318048446144587160312549402077948825882008638726737441914082401424114483302001724358023218843748104719457439684630461734919034404007187645879547262960923972090527342639412297149153901241429158098477724961321270717425365095903510395455756025882076507033944121217683693979794530265900184665743158689500040834264500135922801625430701008522520138682689549294346217309256048590932273235337946091928670044301223871787317505985500234073242088784983870168326563749971711598255848047735620008476629665842335016385122944595860387257579970193048849221296782946072442396370287940274085104280861744199383554046928833972775067331325034172862743326696820217216936101880451021012565864112196189042030854751522078912170876203582479328707001409885454727769271241023154681355890708468184733272676447778089565775295770786810914532533805346103685363987462280551365931793144265031485725903069303632892941927781652082295594584238284094832950255206845793729447616892176232544330500693700694290722206600822040220788460214835437530952598379420962475083129721089104737388937107216190767342055872311291513987144407781593764646159184788365335051202801294875365621163331661929930598297682355684628353929667430235061188822856349904975999000756211117935898001331787031033662887403784672855306077474723926696241595472244525483889665210915307589172667677690211869608124365320770470996811016411694107787253883477382242896727405637836645526023292975035124773597257322673752946646813280042378400275505531528437917575345441672517809712025002846667943796984830383508217874704452261434445648866181714839574458296499558184424747057226799919066495618603303154289567656370011378474757117187053276465664171251497977598132234507471529386742601327344334579743983500508650911088337453226346234984363851810457998768394893976847977037928795219692108321281551050511358499146498572879447287110359005265314951186294294633785384463068473621148095778538538240514637230104209545171186094294245033629365483447567446871896583297494883463934689579484794618063197481499727201609751130960242659509448555758487503509473546638792060387191606999820058372978202971389023892304628416338787625346143519170430570192549905531831756040331260651911289382367301060719233969453965286320959760167506626858870809898099438298483453142813970984849213423192399781903342881918581730058757347437849954793329726906812782047505904761662353594767353264512497830554821686297997118111646264392169922918594527021267486782971889392178902879440172490596151868288883722368783039215051768436820074374287780052497852047807022146599955939437924587003735045831811292767376076999904236627434766268754473740370599793126435416045183228927504279004636133605636108346474601291393229342061173596486824164576536962905432932495651439570487079259086965125753499796926755782941532037232395697074064986643376200307561395825579347946922814377403948567968645350236016926717984548001971145493724382551422216504813797713647677072101991382850851394631389667117038736227317951100283000118739562892098144332864685740802821894414920475409376663179933748268430775158879878887409813081504537663115083509861212647084935342397805314141288155249903441869684953817433898793463415386076520730862314996886554970804733597449853275096989106670869011483368007596931858864728097403875872164672917977198798280456425597710357380271824569439631582110596899431150277069497217899952245710222896532789542250796440912379421014448386815628444815367031345650159727574648748609109649535252064963731443787529423770257183931768825769366108745231337062748617491568434269428173626036144831968973879599407534248538974326081420618158239955205007496154290511748823276437111205785539258363754475143890976559732119631561633617780416543312130525445557117019387301956543502233808097771079924376441257793413369218535281066183363336607625471803791753584851844399131569214348302633530614840065597192382240311249007933960699037753963042408691278269523134500616392005208193776629351302902679236672381518443475479821115939647458045218571781412183961739972891622766329946244699060479149379808049453945974476968368098983879581655816602473433172350405988336537549963006007759852484244461735559266213312824349400121228091920509263773492764828458790667639306638865214244919604089208695373183044772960122955220209801892969603870909218346774600993729325627666116302584951163052539590566606556153461145668436360739568887914746545956285989494479117370377657689736312813940953245231164627845095035609154518830652401417947212109750841478923068025007682785769352627178055368478884646298784887869522111041028357117553826414409029525366548250710486089658308102101610912620668609903185266697014715075991481383986949921707485083259125086825666272294597441209893521556943749002039680416243023330929270145427085437602827779869530381066860496376242053875317758476177587725209679371196407226121687596060609094593550543985870009969393572893889888194034754344950609944487685288074595907000164465740236430898221016291539221633757969590107910275362530757813927302846216917906918261426046655173639251680406036055077699791931497923014646859630989486596152337613672123057699110749724583879821287880439999141065547016052541841918638516501717841090185827237990813177090472367702648414962845908521851150196707434304700933215212519545501392396884385623738810457663476513231260011035629671034977771336824847008859353139277449534403825218451098136611859975803606235437083664798404689433509098915920962761713863888676248819925109305864235990615245003300678862652553578022207127003850549074018050740479443013745941594488333104528235690845538106094331049541913244174655340890716526307443268824794453257430486805564761139375853227906186208953548541057884987773702909315806751588346676315564644371371798895458780267265963212919990361931267503223889535798040311142553091195081607793998439486147562741899418515357556042006285167629312671487492335037659138481127360158968302017512348143827315883395431018429635091570079459579871724494832172037552139956185327586011467037243595559018292905235305369199713653581606149151409408318550386902614412775516603481768969956808889014893880802157009066686347272533367137051979502086480403086651024023531421070646678815130021283823772930576955166950515526534808760555330862038811785230176101178192659859758145734694359138090024547889522552897292274807647512713975947093204778915890772617230446236047879168365725431708309961897894848391060207648811822555010862242960512953515551686024267541224496374416333614109036581229165124532245184829050973741089168983736453935290555095663345512390909679391966506676552940998021785690518946023951113916861492650183785176648551589963290581296045522183948728473178960802491770043880136975404643410208159604162336727382426390468395688493177846808605010902394040831602259155581522459719478384118652330555653797082735775916029922784831001578181838556782114626539275991336025834664175257720468981522051260967370779909912046511042775918883691051988070733953778326205938934710661858658984751495255952595273431565756712947590948481376482928725831031259489810534870768814766073692414950180083518174141919302381815337974807045586981671716902308094586070823224858535184803019132605567038749921309437221657172249199234024251530516137692360252636523930385178750773090509402887618522862872488567028985872710458659476241531560274414082042512979457899467149368455476069365731393373625841279659909334648422372195395011795879651173134834977107403436691154599129330993046870981651210146061582237345282569871859510604784893353249871293177833522088092322062375508899387697265000992904021034385021694549157441359418105988643652837499726023530395467588335938577484551342285975446181780499850810469763938059693300994758175853038725367249650945823739503359960790612243714829299920170338133069071469197847015748611698357720513382275986102937785187642674102826982941821914278830599076798286799096711470661956803417209925899229177660385297723336305714376867660125647688002989441071996661288735235821159753028814063060571461118955013411946171224972222476548829965445501398640850099965309310781470409090525021455309781649919682280338376290777515324002983422317753832230035023500445529186129546003544183810202325530601483937111114981933129185098759123207470349207729331748613236049323712504700288412724648185990932028702109054737294170525172738254862889556147477027929350167246008878399500049317489230444229464338735021119610060606251189232057151692003999144661471910473333442050154259924857856711577037860450939806958204206610509735685468285557245202667545723591579628186370990069018030248844923550420264891672962656677160537394978718912361656041860826271429124214898955385135605822595077064868484198433994192795951151484297489078862751504354930140218710041391461109474520248479240421070268785652701421407781143453904975752735076138614346677516909800672775359514362664088591228749795491839727612747307844736870629521262215980313418653134037832422167179365911156299045676733457274661114306666847757300483138628509953146295095395613224827456779961999964889051326998124043845519986267459416140276152470268485400452374286860483792677005455820352860442908008308440741493398203314795159784468042558845460149232389765286474692810953136330469272834208746984459739934310725439828878288024025969156093668578538325192435135928870126037106831317402902944696540344361378479338602746936747770324586209861550587224386962186060655058194641555965237972666626774839462332913494582028987140013796020246355444638034665238548969446355970536028009611083350268666700878348927852921652016981756206653207096320160504889234143520604884014558156255731582261716842056560751597764868377013838164919135640995908845263134390973329867772242289514579359575395300655301267642751685483587702200863748120759318741652614493532853427705918759613952666961495048526686092216591355347847927312257854707121345728802447647103274614336039859135814120719492830413936968376246928467166394696579213223037327624111251019582213116634651145126497195309237897226116249970985247584906360659286576125127107146393705737825694357457762611153285190686080189246542215080681752863252124962456181250320201644522961949096820170962637378833079887325483420389975845288479264943083313281956736916937397109495651591660124299122500823105413957649692169440523868785878535776595245432370998076967176107270709337718737441972676515791985300954052206383570287306303217657477000407859808242473454800493657121793905862202262383269183947982333223176038041487086209512199979063859906632804472879638660587053448323090925053428933392594731078152851434512023319187638868246195421433809832514476899949816056473187985212030989160952446923153032177778190159306466209829399554085824798028406415846620432238518307565959333698323055064144875066118857936211285634682157204477852387159407661829294830674394017647735170901933893771203085523791764741527988368733828953384999135955879551513820730208371344152180334115287334016340556382939690670187636645275008141357205606901563906922852031483726503059723347371927413476114839428747464137626509548352187639853393151729632381965651741994652427452430650424732165302244724184974428834974142673385059175879875134629267226305318096780042002963592844994382250719170665723769004271849030721271925111442911526417628398134084938035623837757688992216665494569949879442558665732237186952226838017516073027141606080248400762152639316122810946819038431921317662509883253964134487060417933782787965175422850440139539331294338726536814245109749244338354984888321353194863612894529745098701422983477460515462963070594441707299534902885057792443001550777501516547598612116854472454419648734159718368584839658682608061595570580320534061789152644628487210946580178344102733136760503939494019293715454494732987760809297558757902257092400508559069834495488019763788581753969589712404462041618699037240713252330230927148972180751933408858196709490264533495802952980446836824145542896897917780980839834633177685276486368568727982412364800213227733224425159346897761281836564293277146498440016340971764347730945619569820056339076107300629018882002604590798236460148747892151610554582701622271154262962731446783385535115077263290489485614401906658424345548455765768715941939931897948565766336734181048199657618545346897360486887949822058984373842766393019295057378812020900071246454825740679828485250774966285521590966797004862905734445261845051456187328379153894408523846976934415915976810298927379632136935610596791978845988401336450812930656868245312900090892567266237740360049117758705997090138255340533219302583016109189619803547929911048425175668732856342413239724793308496718516210339296387377042125759382859568232273425644251176988860089546662150735683330440742417905236986948649721010332448987524653496739661049713640903889902933747862918320227494548412131167349176998289750909480350387795201647620099633981295900345458996932259702627125126576260663821259934341773276413452178767736907387448171332109043444218958084984809921301401620556242912994057236411289952879912170323829702597955666639523790936967070112802946767750496601307731803125819994714659161328328339456075608133606341560127057073976730070957709826513460304909814004254331915098625299209954765379726265880922555042447751581992022381080291140700931195126790339350066550677485727391970854728057075197730841895445771975453822092804242407356460664282016444458461976845587768051393487526096646560535752997452972428129204416698322600594191790845920043564134118192903290352825092586595017326698825270762233801752431872808554913387769516029310912295161884983620149147017651636813536443822867506905132524565593698091214270606679428590819891352732601374072403312126394822656591736793744947338617057135021656581355934714274586361073733136137593481969784402953879768716432484617235451518848366226435375337505642692549887779629016676510931434440195487889728976222081802826828369211388100016200231755207492356810089148953028742413947894328669255348824525052528540970420221956346417988900204850946931294713246541293606378549123806410130229633623972562303223852340773391981795920994822176802883648819110568857307162363683891362072959959519139048006692484581666876927527429394324000952623290558627486892055229994070195294971953572854317731720549755294566718075175523502679001036779335489654521497367671299177896129079677361142681577815148375307893380092251987456746411761075847281523391149225392060679429694982148523205232187844505982774003816517949785801265354183720049988919195156805524833536645735152947843546949669805297249911619160276609102377673235474984289688753957803231135059566744703864686397057843796368258426353436963458887515402006667990332888867554335668369323282451740214294182929439713921937124232384161493273910396923569155818181505105161412353671312469010287277955481894911984732721068247393397686020003806322977023149455789741200940255830245164665849212064437225835327678206015898787719933586142030294545745870099486608374116370072618246650519918924342162939344301506534847467858440893776053103003226636848457555165429630401656492865828645986436979863205687828199959736433359057590886315160657151783573165968006695319510102128779880678306257285455849865774940277633232595276521818749310546309082399963086423698588335521988012489602032591946789909355314591160276963084064613967777939802438031075462630440853981372430068494394074191485113835250048121160965207109609754297686769890854897438131590962896267756442562718213612162532711269726064788586322764546918268244458808301627518086533803879804013202993878654201747437482840802796700490583167836760662054708949715426728790953746911871566505097619730179937165320713903469016553332280115440486157814804365631324877373341049362427567741128736543712750723491241989329170689467695054662552514230952722091350112767593595542909315266727105307151846577470161989218643833213461270737111037950531900189857428974091512488213093278575399029625984073915533401753420055135935441565858323258433968359858792653610048137837505508076163680648294941052329411454858257467745175163002236476427322296273622628537080196424632416335489713782447824434045555281863186564884761290714376811948532863651887938260909283348414472814847018706863464093406037721972671203823928007395697479813648840572780339267537442529184336622184772372307999031603455681766981680218047382620198766278742335740209823058219215694781306295494155368639425907793942810058480866520591038452116886920535303710280805338445735266942992140677522653993214206431362794824031764736406256324622515101877133444955316434497344807256190095863969225902525258355860512506316415869164028235115945259519111683888972754171717632516802360427264682623556582885777692539651922156158236448169581215481082394176508858254256679725286160752722413283293088217468584468535871328192295655334781471720495210928085696242250397801809542125745214293517586193912863112469847366601286562860987291583439402823565617291056430980205447928456118943956413609559899825668627548787369588513344908181459089159363661057921778192759214867806487220937810922736650431135246595720882195849051422154479669457852758441529444054988586848055450778713905061565969008897271027007011750214313724790841939871507433801558194363720461542933769065492993929807405104647298078143200337057521605279346441988658023907011593278314061220726625981467464092669799940545081179782001483639753058636816829943206094169021830296784264301991982489136631569939383886072547145413915218730395026939846936094642242927001063077231149620089664389651184129803780237480842445985547658232692835253833405943299059944917371249981221163067822500717238125197509542246414772091694059601872640676081787180261847694294278985212249794141045652603603700674474749149755529307867680693959538183847574093890259553512924442584676099730825460380237044455978565062424705707151289081341052014928600041116284669734762516485541592142713202752517131556194253715409317615117515138066523623014722705107117619427653740311756504749047708825589729414377336602624292863687637921099479597647629130039681218580106903225083572529586403400285405964467481553918498502594947745304467635236929716650188486254028015407233502019756346309189601190189703642403495809295776143564019963906846787147590734842838350177849641452466400661135845446529862699777717749240823238225626774764841127056420547684158966026472867924187260376509947127192641623445541063866561913546047625177969891829863239318938294170024900256211922561137859981464679158976993513101835390918091695998221524383259658852765001735084666344842064931252257469674523225831553955895666943590402199082534996568969859226242548170944674700964435077391018002737075328371215219509931299936525938199303355105879124465263600215640417338785296451526253922632411966472399674728080736293206574799306133469675208126847564830971286352213312653600087904691183641049053408693941448951730254239234838677074789480391161406004638999884839993700633258896974836076034125539573132616562353047078221255088607283836460273813731618667005047628509561924288551054071911854740445005489754771869225112867244357187836386841223082422302936879627397610276819094333008399781382004535185648037372161847225128645421984523709866043081924908325623715674219051565809286007150669882478486361185250562329989618243995084289150556013549195027077714292553304653039341381105110235262760827053585840173385026385971347310053477384776971563394972138842842760996554830044121843363163886162146538651760023412417816075918332525046903454008070018788438760696729522309035185810737153329737277077658313268043333150941698554058807869020414124439210550471828480540539261288255792917158282824971293648034749161615886870849874954713196788600136025159532618129680885625862047058144822474220241836735227623582309966917078401335075725859964667835707032803679328452868440614628655602571532759282708153736934063946060616398876193905551237661821977936436607653117288428795757872308923868918905253796298160368538663155430467928498797269497728570687052221975465825528366131919633187782475359879762115079329235568126180547892318380803779669755155732387702258391488585194628648541036027066859842766973047965081066885899235489579732863152753094311044220995952874346122796604241140888390724403938676266440328953965243423183967151146574931713160043201166454658973364545515119105045654343402234334957265999075306300660712886473325045931054800872078888808972656442410239495435320533399268677781973051490228046681159616637415875055432432199599290125541157644820426449066129998946945420539340496138702385299309358103258533003001968089130468543020643611194922575872850531437480037647146307088730672345211814075647937630437485405134713745679607156971965702398302138562596177557393217611207536147633547240405345391780232174799133411512923046276335040050732003537069182855691866123326552844349551392241467434700824170963669029082201450874018800666594563569074630989550669529334662416956381767321352414236904871041236749624791141693709154880377061685756075034589594128969420752106625986498139378472703116388539309868942525456954834341360772445795610607761831626933694755467113704165439294343559881970210405731783088744650364028499090684860037572255227877423474325927841762774686769112050069751347283373997443313812448327640776550665227762334672917029583516471772083535744645713860250933544791513083544867780090425670731204575105167845799796842789835272242748937603663345732407702417101482185246147735466551241230954389444356894607836474183128264737068478740055873267597205952303727123482147552251274037001965990937521042705036822606766619801798648028308083750153490962908661030322172411687241745473610259341176549363560740196003981497825843450238288427693740988194935268232539877331174530647057366661747861948657536014760169359361218257343139707342951659287298813876695006147605115782241714975620726830701792434289671939245080860921127766364474708869756140733764881952524188168819936807010057620236508228533499259555410265165405975960255589634488649553484283791245947821725528931831484843561774585485429699991267532943092844403143485103763577177484833073514826771939297959236303550277016922571602518081553779408416880046803108849371906188506930426228307397951201192723408748160309524114142795948764920032201616830437988573695144753604182346705946689554300433090271974850105710076907512805042640061851456262419122707117467254262522875135545450530757810309034878418441049468009408693490317710420268328800723893535597560463677998932571103400311787260571239564061848728713124649481107986977317943330342020547057877429189712467097235675795004202113763777486729952838742414279843440191770100278383830832783933267739967360280700680689554905458683007128799918819607328874889205763025202020181555059085825572373257518448132042174140348664351767611294747430519083571246612366894198791164599944684746948534629759742386882257477685629779090374563795591731133987102176203987300759399997330199809086405537799315036672974424645263527261658143383166168025380381763356426011172437766860287347941840912389915709171893582358125318942139981284677286064421220496436568286110049354081415986752131508470114646063578872709759171267437817787692556002751038639089075025614353628410130320235915077859299097339732666359328584153235385848249966128934842263265461683689006636866907312257393675878846140373610532399303091256487405115143590578486045656660343027708151065859119762431417319875657654253402876167865292971138826836639531043929444325308323385672542861840657417355966751218988430597036327553947041594863812509310123975532549459541711771695433046280766564965680427954123088009499120072108567299946700329390596986701317355099765770942106668590786661470251080919261171101576117519115598518309018590623376924864963486313380041951991243094713659927523779913219481603853492097809812003749571360680439190798688798059056437306101250258680196367736666677179483004227846055913294891398311215439550130809142823381767238620728434066165471828233585786264902404220612886681107874573018668977056639792454865365046722035550102547478914883749709078033635521033428455035579858593635954039942137058150868191966330005260754757254196491583852934310800670077780659249657076246709442722986724967143538541460618395922485490317007534674347763591639560666098770197374303351006589157691908432092625844986672494842313443762242930370725975049798022777698508705142205818713177966139279769177486667497917872752521004996853048540773804114898013909874120254133164780843582092475054147309572695571464368257508047331496656530990374654048602773651370615441403811464405600175024460890422013478563781005332421755726235262178780103983484375648430324228703434990702414581706604018811945751785238502343485934158131900100306248839749447330644875191774357122370790865154432686363268930869069467581888312602345395056537943518536902056573084004600014337955258576653500359457605740898666102693605305412850705812382375825081574289238379475745205327279941504515357044757096293710951157912463233823078657597355630503969913209038862148186320504413670758155108144353693023137842756383268769059781221864058995769600935998855112497392087641313242576468042871318176746365001069133836582251195441542195854479090350387115888573843488864262185296778891783388479509937655495633354733355066545637704866246575316444775101395412867826822684945950952307535126269333043173357053460806822162182227910651545204634769771481381794830946148216135409850653988006119230099191635889199215651221831656052643404927540182419333606212594053219788408661905877383786760216534712441809313836094067228573888343292493945941973362205300671393549836963609459295239399874471671851379305489527349763249733378808184386284581226301057083917454328312214889010904312700614814110007855229478400722699281857790134798078668052752770777483679329249319818717687193014346898323923624165096467114215891008924812978897435142678783547242643367391679203140654765328877005962799016563448753548636439412643433517980157283610032333409430374835239331810285622044702373560941439783065449787126686695564205141933086736767430977696518053337744140973070407290210755209546777230084546627300600594517196144361186873812284964553868381427246621598307198994820368265698965273213614648013152785834272361777374975410511555481114103475298924965635612632020805789967237343175234292210417805969550307563676113293214057082522144235427750896213351784317567903386808891228124025310455603093247795315195639005279525412917227269941900055090853022481280321355045843956433002608630669565810684245012269246630270411486873935669580084421661297158257637096683340481968543724170564507302046736278946404730571658623458252133351591408264197617889568542723776470020392860343809274059852747884968956209323565329297698504699476019783772932561332157197818324205358667669603494996181555732119835758997711647914416639522423538557454889035957279615009393206064760222969757033780892115957914902693967387499462606750876211673032008635778910044754791470568822926381674341611110551469624443110986894030846060613475736968349682860690742421466403175646932373638643778352735862396097781978920564459029364736806865662424616619678621050683941996472062519168072654965215857075411500631086641701933969899549549016950398172885121898599326082230955938043438971621435243202457385696558802942536578253402985161057542316621461634559570145101659929377618753466430947869203109592797914468975804714663945567862599592715821975233071984103237787922441896861656500858666917431234099439575594174811437139558062771641148766310238658710043926504020112713110756815751743373206475374928208979016737001536207757983396199340093618356644832894634984282963161778077930028651241844154653306557243681781784760907957365256581036981170121943352100093175858934995834201101384615038327713139238646343366697104675997878275729417819343847164903042221509479647000743981085686783310159303439942827618075494460240792921227715321204229762349117085694579542696742111289531518139764756918444866950702093692914747762364115749301842809197687780798080290625188589923942538887508382093528793918213918655705755382362849739421491420037896564062749738764429111545455961478205796762985392587342265018457945192047347339062747345569235898309542405302924909356718572595793527974626207780860220809547625145582325099924418651502212348150750872368208420730788653031363249912396484573681890156008976927609221705092029069291234425414795621901859267406740560879781397214100752845870601373582046081717769779317051071466901351487787881813648244297311984204484308285790353728981752425909683623250804562986978111858751280528725565992117100312757467937354589436635500785465831722814358646259789344748917642103471967778173113792096524954035064894070269674081670691349398598223971170480320146077092575990488556850469177743908610834833458970410384658507313193452457001522896056525374503040029904236688092953634526487671400568689423616868417915976724696503083971287199306681038556410013632015627034970134939477512682829785674412817957703225567783833186095430894484893059827529574469275367234953433842337038021611417418413829145063303683607399578495548692210574675460887847314819858120358416386910963806362034459513519291048838280905110328085982515248251101131461949556916118604542454252902219899640171722598889810781683045141766344461241705552622480742387467973393880902939060117783515972403830222589535644272506129858745792359236760100537120583397234839971704558466339473779532386913502448871509422371842941209823158048436835041867279830069224344146287153750052693799541532940985683713961047251538584321403180435060660618489991207869765782797761688565007776325468996115503190049193089125492800906602630695661978094390598432165641314492209354939607022084149012863931967591633137883032875655331960959308815974509937171006740638311464530354437093233433003108370379732414198936600081382573874416350834530093939125502888365810573324116981649344900248732871271260396556788833140465336419409541778142889221000945303461976031514333543921082710336991977426029548224061511323210641394646283757374073156584678520048727481651028377266176868576791684667103741717442300808177961775203581481171274717865430363596835832363116590782984654370289168762470795029719740417861181802756199079681322700307490595720784440132298981503195480485790447902367731140728908116581726214538205327180460013458077751102993091501734750313286778942528062673055939677500715203555462820704418091869878088065184319691299591524931490478515908325317482372186396621133679761285537822622967501480198812964574556830880114554446659318586632211702543835761430571723772037395086146947194789238244439968339968560172655673111206036842416128268807161945143247349709245521902123216422626831225561980018556764436166811596428277340111495751458449498993995835156286539850647986303473936131759249600088528811360641933158662498104193798445044321608512269442815330428663214636259471145393127093818139843181717573199280027518963033751409669362811670496285751000026783814914246855136605299116848456140410731714299119121082537468997927570790696172429328241841828676439739296664568074099521188447684848255093079592379893221629355544644113035983424707851311883629628773787414447470112513828495266749190886372230436124541284368443871198975255171678821081651891225738479102912855052592836021215812122791284524250511011871166600488497956459687463219326126303747843079498963676903880116549711610624911736030908779326229615971565010780281964887259459291230165407602827553160172028609690418783894293168292921390083758422766845213791620267556146319125397867814340620415266688202795282410501816554517286701930446730600064794034429530602592900091879271879073304775787108988654029771814631025989968842308181549062991399422503576539751937401849308523778337036625265148368114188449395369397178548209364192185026422026412824536532960707465557127374663300686160027606153264616966628664818641720063998743332681822287249577535348583201004331249279597239997977440787651006589597252421891396966472594250238502929296631290517190495447024913857996396153288527770436603667462147759350212959345385941154940267604731826744090106953304282802402629619730187348120711061320140437494041158400133807040091723662718354554504584839447350029737130266976521295638314267009115630652070327271039960118100526460429269613432707163790974382251125674014455381034325364602662570325372360312078017387482463330608047571905773360552126575854663880575935826088635524094845132273164417619864749050349865653392097902574635727043801003377806983319767043868228670133134765151353706886801233909310843731505864056550475470197192436414891963437373255625690214186350851536419009858593849402866584923263892119578120415412524007514218887698638917184191713634724483691859288758675090792161633429832653263283729798523364932596704756661270435842214619638546902476829721387395195018768735784823313273464231102370967541209491397675263624419979995385305154058892766246070989017610780090400147759007929033159918650527768337620127783031802182803004873935745888566299188250115548181749149345035911395940403578257765613770340196746821969130132611205859910026327596984141823595061752902650793093605966490136646301122688322965029581987168042245169855349428500759017594282015053757073336486755408961496547063105182640680912214580817190471375609428694356202525048083455157888898620465195044850192855322397974901636136719262081560628332132864480706710536259595061368116352577668519429006271760232520862311999672196319503948502629908592064520681344713655487604951760021598377528140642396132277167611977591093295746688973166777136860266364970171565821970836188352522025301602595325790463409241344633991011781741849380543535969460720789638987706032981357042707028376519702880264391578209053573610144404803348105905519719707219375459865810765794226750579426742172417095008187305413222978683373171249888150935273753657589346493243138641175139068587312126459604046324391438262326059535840561483247918542201927711235241033708475429756789719623876930520659358047735743279386057517136735993673783402038898905814052713533778614032767951963073078111593778101008984503841958883655681555670013828745090816056746994026725872266090137210713742342005269560262573676353641203648338681579503443083638315683922494228479494628980370201929552420029283110626613713526095951329622501938193047924417384984098163686479886946535690496406972622546718595963614805793487781373614061546912146435524526315366853044253958172133964978403536937087089377374425995462791043738231168480171945467056308296912902392633660682606431809575943158171649094254761248889924392508022012254737077454579466338501597943650261022481367821697776671253880554255670711583655489186333729997081485770407037417753672200015557926575684720321634627594535073811330327718210261344867926038143693606521484322411245502719849214852130711690361352119960184316430833391201463526690172257299255382590720736708411354848609292966866321499427903817273259909373449202906295450916573515335681071562482284439838649193817065130753979046578728435727122255470465350583044389564677441736701784670126346825253586534894312226897167079956498865642198735915410911777802883568662255944657396453657488929747313724570123579747965301873668586992230908694674652917427211105322281750495216335988097179779026334025839512327591716727088551340973567495509056752519143768285399197743220445047779235373449592609526437035976863758711855735769814394247041069325550097112567065044062583573952435426364322216780835935030723696271051423978467076676472502583993184304706506303791152151930210869351677401432229453761764147309832360865603630479072407807129571753897200853932860960970410310371607356835303216456586733583891575302585791716532841260690582592562872957278237888841664405482779223465118574168558111242203636235904648908660151234658925123870546972983797863840656564642112846534223383434592087595708639140902060494579380629036750144996339687940020225457839367936717053273698510942660413940827405732398642622014200100046560478632316598242660443729759226983694779967156384130420899907728233151531038026883300241668107261945259878512779098918202341426960274881026738817214507736762916816463055602764493385617666637266667813212462670578537130275767761058913397221869954883790208777152198610967758672015790352393869968696994957148614792559983726882767654532385187941341865993890924960705608188975202313227945679573251677078496032148983150764800368873760549097004208220871811758632678330744995799011689834119703138824494429099902583700521422833301063198445381575370364249925967086205271247222559268464314060437516125628362578994672343325480372206816680173338762962780307237454627678494389720074323090284900843557341150809413568213508693901168077982767682181381872864721836391126000425799670494715416662196322098856437487445668998318825460169217533762564621947899746475151376804872812848137848469315831152557038466989758723665012523801133992497129619156668496717294966730610720965882698239260775729337138661792950135145630590093195536241259852150426031444664740742255274289051646044437180845595644112667209412022575712739651538117519855278252947982895261696036909958059496035008959727722083205601238897346227291975523435916119049444664710448679876794103945456969734678397429267878337383819464523374401003251949616347611176657712895200318125751301646063577573030913126016198786933135740525071069586461729898245699694258893162679655206850714266013621440326115946833926865187256360718199420290416120012514148966090094505400089284788504377293549482366237409881011390060984639759998393394888343109752762532120980081835914656612359425661493148545481020360776314324229862732661558505828555462915859023718996761147473593794832177793064320571410681262275746510623106164412360447866338928332405724892965455887397086239154449177866683114710953402543311496340137770528495200934693948183054519935726885460284222812588631694151849592873425785025789910585046668572565319288362582110654203833503129224118416761719503195964323177327921294608616860037805259822815352605809190582003350807420645264257266873408772565030264776268139394007253543330160758324022499497326999432556421257657772852804210626312498782062948737231208390271855186513825228443495172781799946658419016038034680136419940138719494635356735205518594391255971510439027665962998618372559454241619998573862000119622198464590959299443294728166788919149322247258192475866159350957596785806972482456348730855466122274802375980989772042037805508285227906635375659220586556551605194083938248925508165078879950887990566559010009419442434787921322921216482334913741484482774708179187845011668144893708620795860189260161565070848135478321841675305985897599934163900910125664801210253517320166113780749500245483229298870019489718692791973654129772924530168582483200980987264201168969241987363146579440360957514203034085270938136245854770306587551122973595384566249629912649195845756424712954419419084339689243235746438970306049861381386135834921935739784195682978229564234953733346003320141030082174760217140738323743520659769328854269353734165461250608885293622865922978212071492603422364054167211459592191624082494243172933611198679385918705771576422575780390230391802610667678544295031773029572199092281129637638904451065489208729023880246031652977772057084263856116655674542011921839333317007335572402168938857899293376585905780507959291177524516417142325721910922188286190019723403530926364093075661755990415723122030262123105852497665623819267807389407303318183341800085765132421601914094481499087083962576754182812053901574722299633779479640108024810336643341815441283716002624171163624538061847574714825318368413777108312271685346474842890789633996244176881770870317307394126526933903034443582155617482920411811368633952032929745557171838647058575128608778348619547751371838447113116445353963421790223962191451610324542296783239914276059811412092971374122349384191193893851803090467774875110240799451134235706098027173548839215863116331659072448332923947431396240134441580413630037090125670673819270701195330877270728470960147809361346502906448858575088336442759043618041533633329317805397964734083888135630647492610461255254672978457357017380116385693069964425999308074975632397171735395132057166083118067194327843479557057572239061036258828517488121279695256615269528364678032293744117139936247063260648689937572812895119853857128135805526870865964235253707616392493636984540552815985868258744712841377951580779997949352730401195853922210007125355294410944616005473834475805694824960384516777144880640374988083179093327303331309906363994865617409480259359320533894627427501517346858016794983085536576824301842849955227373819245150252468147973188017639489268168956985001685204804503378167577705591930567236378354403115316378220073507257641992582601031688819007608041804159984985548721814801608049949294022736332498932681773363306420126873720236300737294442522210390257741375378093664669669921171694622164723264109100427913699136196349342002619519447668147103031151598301634156722060057967628269721038930051813311661104886149199580810997441711535226338796621619980671128453652421102082593538226829490601956736741127806458579291068541664800696529230284682708208069836639514454618785822358193712172919417511396732915478025767533112073240973937855512954340249209813086450677369001389941566196795248741624047093662117635740565772664219896010484765191739745102051342778110202136280413346732868763396828847977517882669157432246337377276612222336297854631190931789670652448357498543942000880398721659820054111649715989569203943726940466048212616242195049564265950676960229714531654229397121603588338454539380905160455790764455143313064351376124440208977629565409022880793457218837362138776417335180154004742474856598443891697067666981837767999398476981521692240090351490365935009495471958387008214977171141281221536978904900627904928266384488196291529967087820581508243650663499726517536536153205009867555788616580514811398811177315765756160390654015518075644349580750001653943529023933925279171964846316749723625092410343112280436116455104208949008109359888814194789769594110661715405269409624464794733199871299012969203722888075535404679923004075669004342155772979493532386048327729748462169806676596291527656146423936786413092427964299804590207372195503193040721566673097762673284600093906580876426260482623669434878300907422177097852545068839018398467793619808113174180989434656170215879439250043084342466246293159508645831466996112700151518366729544354430600152736700663519831060405940870516512694777438557870340271471913166028808621116435877658111840615815161913768823313882634722637624335425138593150035558147083765979943976264324140589906039957979623872099835145583018633810300861728541364799994305371596329688505217058898422913921379485887893171011563570286525808401048955959855459685795313292736226758370582698887270390391677682951888086403089159838274443766141805258122423349883110842847996125068293225996855462082257229497988275525193573501026453058271124563112861722727531902994804715852811630857860051843831980312539401992371267265965328637778473619240196240305623451541754883963100791770477170058178455413553808696863595070257265449709574361297100087553049784507393400148558170712949681392140258989415110710538039460426936135578424064870302726861902269762503661889273185306846024310931780890963585579370723622542214003693847006184669818310325548036029843173669331889142682692586547684149738449584368704307478427318018940725441316860250263401007431533014750209989939304701137919408207984327832774388920253923498230811754770054596716602495709382620325184864864551752079471484342000416897752647490010175366047800612435565994433070854218248129890164574052435762615180965471428045874006706494401320396637184215266307350809300243805724691276297587513882068906806236354476276489028682017871609970054543056537987758380659581744663607250191379654537523059100908504369548673833947634616007261009463203865975419302616343153624008038893373783729039275213915654736642792869242840561443211301356397119955800394583561423902430305478845140676284017587911802301013250374117324239406808983196455596777581357956748091716689679477142438256312632150551992860964677817971284144978953049966024498736260455113070482160118244088461120169749054072422263073368917700264955461801171570226811941077901547413628102932809559793959444852949136256619676182620704636777325037231005490471982753556143204015424698952042972535556597697772386727747924691157241416123386615255211108877962660017446994500261869724602143881985642111837430466647518102518665674109361952997526337172647356827930574130641418853088138672755593782342249013325288595878652896317239814748553596477601207850664396084755965878127616002513141610804920349512521906258276275712004780087477361457510945053323287849940447870648882291396897990165038555872789342468924871468047294193199769026815557958714072973932641281532295238332837681286600118423349615338360560702531438569763955272122312708328609510065943067881186652682604971477311010357262451331688674246483345213335686262693004588842403659799870907157032853232159256605802063524533191959895837984851895021868777507848041614858951714812586480339114940641924621996361834488603231426658864196461725969259281187041574536078742036252275087978309336193262333191353121538289210768351979435240517740334022842426491315420488803030648108742840929820629460597764052746303606851421851078473950478625703204596400239383566784598174188081583878174013108936616509760653363816274025263987129709063711879638685156404471343683839757919101392572987565103073229116900091666745519814475393228275615336506283014277038410209639520126776455252128208791458640526480386679163087910157521470400264043483709491635052138604532185594724764374146179976747460023484111640032336272693491000632733752657610913576235810279694876207442297891121882052825888080529129217271834602106250152334487059876799339530294647845891373961763933642068146917826172760398646674307255292313008330384536900911728586293437171534962433647275374925302858561414935510678968434715453488731738430453942593167498827151405413397087284231541113906835538574994600553211742160345251656594952297908459618691792968988782298385590373007504275977637672529694200521921960402488706251878524564393916410650783313049500976473358460072603807032208038734166747478710795001329850888987373347069409820738910785242489855411976354287391984625739721249027412407601615650595292473193631906516265990460357226443801509498397884546084579463603737008973441935774158949400912076065294174958381963469078209720345716040086520371031674954018136418708293440311909850595829438570321509019205789453331525398075821897956213546021816321053691807562917106946890384114173923270286246066032120315924695153193358161021221965686351552442022565424912922819264949386387035349411464435772865539212887490722574565904411936266959246734980688947266648514611208442713812552119862488143109249512462245308085483013857694031087101339263224228438569649686183807172806891547060994325081849072554337492997587741314350491920197149635991981383467743164913377058447599932700271942652120739699898241139130072069804300340358288684861699366145705838271303898775379881657485265561206693411255664514457473877495527649674547946012377515068965131803895543124124225310003194887839131760693608851516136424646363489841049476452658412430149135582744425564199727714695746152901400617898460463094248367294013420633154041773268383018782607491185067206883996256457637010764786150441843909246757055293575319459499074374792480500994141591521898651669143183682748431962679996765233920201821643367998345676334814518673386968327722564067010735928763332259343774351102002583686325048873041380916984191222944285082828596070901513427744084246264027187307308105076101478138021055658437809585272540972225460274039921164559809168543592843418698578135581339000244632059765337252858602411379958646466204960008018474110541807223979101089164733420880890852785434309158691265647104552835376292547816332528498509774035184518654960724763461948749365844196795993195153943160843357089579990967218757206654581059728139382119723178158170664728084543144146812369962538282829680929009627907599144530018743176663952986187841449438903579708520317393284877033530161382459448413964922680623145089344034802895513422047221680426722021147297546515511981938360433423478672800101806738004341712180400431765534274405330116690430249211991750387984122801767053227416370209581552333435704011383698152299306541519983244578685912481145898010081513949851373537291060001764286370204833742444027337459061025557703222277500213081801551539629663201910502836032902691193640395327358199230931307222028373196529278708661765727710009570272763392655145992037916594379956551860322321837685933185175525832216831885573170228005859648156291813271175762997901600680055046377470776114470540203962782722538338769619965846404293955432699282813277728917730755332114322377628131885925938477560524093712630841491701409734926471774365952860675620294949811609394777945280468301810490329489971469093884435145742935691057271795751313918520396791579551674337526469967557158853709508700206024067362442921282126462944825774880708182848052529087850261868100244108316944928668675316550019757349232264649995785875430570242690388882282300446560341472156695235724556717763392274442681735626632109383018559610166760818829691692256585258687868469878808137129652917701146385431634744947416822312552389070719653330715430915585483853360353187264762357493187998917546131698797904376034369683765750523808552913401073549103759984700805146985439176793244833208984092612220409329814543508020923890267526341828092627853771822133008652622454312546541362899843959919036212417325746762713262039554063030918958713752769307491504819988529833414211914778440919837970951406388127632777386376552374732871739911095444111513440074121320271032042489534120089447587088773490870477828129898787534823273838263263032407753682389563028572735677751064566753404755571780989653800345049342554883884246892453795105343636272738784108861118771887893548440269092703970978786891122676488611477817008939031156365500245178127449959899299820162280184376158164691662685588952440503546152382317698508974781882245181741935398927875045980770974570072136330080290630954654774328420356533687652382611771430234095605224115663557971684522958254988843211254775242003394537046302270961424770528290294573593067401999565554219714864303277495389909984592988996414525677524091852912496134956330454540952860154084163308560090309525595083513259958772312864751864536226515512876092577039482005877165054270816168533280317059123530265887841326731455670948622506537271579173861121898412025819170503807405229409537076873429866312174608944875115711827501977949753512847483538826060108077809392708243407205116588250154963863230394753343716656102758826968724296646300501609020936869248643622229337656034919770358516320107316925795090287818461065057262557213181792563990285277921086123286280323658646232444848317817156558385411984636004557243572970174563455726588638074674079085392050818304324123540971235314255825102975189261419500969806765042148838774247523906868971264430157943787918037976440598276958541851405851317506396958628406170694842650704317956431904173685606679558770085525640959558075611534557652111751272999113218265225227693517585271878873486950246775484892885283879564287752708982886039089985276879325241915798975105396440718480283851985967761287850349316204923920342263653287252151846439356135396585710515579837952116520560145359370230757574053512908609289522871022545095566414722355018892783549214926110497013910173240471170440752153348453414954051428277799334403995800855182536138898770766059686570044976791228019528094814230442976904093253966007199479563117769079820539498080462967975893561460924765328724048808526715511541638143361723717596882807347505716350340185211083472038395057119926384893393592420480130675641474975013582450195046716828583047141613575383979329258599100398692796335286414036786154306426880400069622096917480958655854953718476767266518312974429879952888553544681102635404699172549746219751889855352019284690519613459217437778554470631068843271202978523584069969915841713687632506570364226879357192009036779117456340788865529521910749190847686424821774295068658496150761176359748715294524609902620556800892305563189047993967483533880189324216585817267167488404719706577113512924565990901420639213142227754671224287151555183257646100143234225932712247995289821648105233043334164617313321320189221410761417426159722028946961315369313470773040577736938357614096616436653446527061841714503226910605598178921393225938831951952335495024841492342134551256217711722332089559004552008833459904588093013349952082677198755293805260300771270700985077137974649884418420275735776287464673453321204499929951031185081895017422210952545526083032563060626636921788439292505041300073965940148840170345881565694882692253142186484915368468330566104582701226933310859370768164539209391381489684623806088383148257982041252789281425145267318675471091793888241589078313467287568312848967359691311441098342201934178738397531419521088018948167806370083642242489238329351893545753135984180218808251094145784740660431888463843363150674828766541293436861315346796901151956189284079778630811774577122930704473755877918562807114773289448029060378373399422812334278751750525984922103478893318514888755756582188278755268856141408855860405637085827174665982446277783030782577436414031735169400320919620626907531148769649824419442895390071445855339976455233334534002509778259623059444282376175130171021269939789473425384517266774543457539998247891955019267286671859684917239012008296130360977707968312362001205672212501786192214385291667261335744299744020167513934564383810875977834620818925994072323434854092473870009680077824365495030533214439257898565339219978099448540680500018393691983586595181452646382510413862502943733940068031808324289088866589548824919731066312215622107780755467512153571732092997591966459355176891119166024660060287968506496369591112606903001326389085353668898737079472565175371159228539831168153354263445209323352444496606801606976523267060767857783673375806439668965545739131441109842694818913002959417931082285296973095307957540649447729367392562244147084353056833227497996300012755955416146581236948619599681959251090317167437005221097325145172554678486708331798723529643596357927780038630847569412357059129013414638663043177395318040363871454558760036130062056479122602094103919707020235166324233243785023740359648251363231731572433240671604018701267713448923623853802437835064915220780666361075602060355092088633537574277025083682409385210878034515892071038874857434361744064652267077347258651551392770437636960332302337425420226139380551193311334843978662685780881346362015682824062444645934982850028972339671187594300066042462881128827106156182164273504961455106680696777042158860754940689706623066897919374954389822029711964883173015125767559182713802855338199841804722808300804809750929966121188270431230009157944861123630465355342637656358384614583214748585922985161629564507998657756016080367817782108960364232319131123794295054602483417013344805309842141286231736705086836505067332363585332129320673877591064031624637708924310561243805408382222375967313678898182067848797146474091137667315061791636638754626940980691743102209735036890872630787133391468920129285884744876488897321378294869668593093861808762363282356061994054390588201187506323522941729122375892907516400346232817194984912935921416956541840768206769183100816636040158100545273828559003708518243857264839973913093298228311428252027892260351590957015494552298784743591732271308695610675032924783061496812256700671424827531287829134433204694891941027434752485470699924695810760953826417221919601362175157402169925501909319424108417521211720801146131344406827116928905441593681477934742924005411284639180653603381052709215926039528947789733013708134316426561322486335385402930265654191243883536019929667759277590978677951666861766648989760561708028837126056006734889240075930866769119596504186791388807479756060574245284203441625984215989196501945276802095075852450704442101988109962957899357696043879742200680772308759947995006491542857053772782942813813924587414561473855497520088915651839434618256690729678076053649674739785156548333002840021700899933235314327475207416907475620390789281460491259309142338378485901590988951409212063534331755115105447261832047814278239229697529216248868871130541977470027674158304575976591985137668718966242931220481244308141056740539539904567527173985786483883750504898995813655388046439465846601175154566910461134397247461257207618648403025860305123926777917237397988426934621957711657070578693544556983814912780713276569493482599506016118079293381622108067770060260285355140390466254709113040972866185093813735830987551988635428973204774475391762123960265912134287123880496954420641692362418184575253450437092169902874631424446354364248843930841411469430343103490291853368103962520866561632070119091521979436705778008210199005419166783440617152657946848346991597168616913775312515563992643258001458361990381378949420217065303281339486166007804461475393701885814992072090366888547620558726979748066893579051197137581390716937562657713449383400047720476619531542905627593210289209523069815221575807083882640076142666034103670563596860528593335221748157152074445368164900338076976160709151095429969815705517115278467032195391486018060116881449378654678550415759141151953408578096379492453336699249610610739475924431101353846296105068473466001383514981419875590468860834268806581288903991456222134920824940023466106863588022049469162591510426366955280208904696401663762275962283230410801445101957986596481346523699967565625571624130202015399464181284434633682195895447820664930491225917732706510135128080804501593784577237756276145709054166546394484845428845744926664708054873210633102002355461910656763532075046669039389562879745910959045380523259894537313968867178348075383003765442683003804995859555152131334516882914919781795341783781819797934428897786975161445711703397061580720687784726370728240356929267504052399109447306216564959257286022201686836150303189617807915626561860228677943026771250186328130815021526534607155491865638429875555127212098294929100222672664115177437991203977226873258492084515981237828990104833904061871813876329953539680538511265589344370944959235467769505924085023045470075336886761400857107049758131668874264932381732883837582306424820622443589034489815020100725968706282951458413139744768517396317240757042893225339716739240331446385253528373668368668540139375507274604646465377489417993097932242883064812102353137916204211731293295123443092263988682682831620936718799496695979464121189179251866839131872010875219440320335465573007500339790122289442590196338710152770706984398284890558185517527414921642848857954752629960694660399064626912126149888907756620032208389391223210924184719634159605154587521318598487007668238414689817930391873956103618775353521917273724736792162990461864211526884967638247068628754952224792337911623640113956862801744401886784936183950814444811531750386145678253857755501116469797655263189980514897550156165058365811509722762677506631449458988067876527569722932031071437903891299266273932527921930169692754321263390308094464220010665575985639865933497435269473931900372791919188479959233781787036310688347010189090982808664649560288722149345602938144236943046964673475154689093853547288554794496152367648359733026898492391195624315934855092807607884567529051547097697524430054026236398111788768637763595287190826801619344437362171666160614990413626920546336323604024177423760167537069975884968681927040873408101142754306472278307906923569481400940851633962079669764905076187332475706905191773620559560210421649235220409202327227739359314971582782568016399765770620623380005755560244070559344755620391885325066908124270073791987652291400101124514261915796151847024351408130224799534589021325925671574330678103694228716626688919161717175878130716091588725004262198585679866104836709122010011193739748182059963978607722579045254272013305890259675664700002584676290527571566485944087813242398194935009678529945023452273707601485188924895298831285756413615015487523591545914188601052687392667094410854450363184071547923123100862725422662813340108996318890814580046972064565302225991605250872439930087204620621995869270152035519844747627935550923635837820465019002299187357855309625365090310135450725409771741055069559949718898549298755854153105029189972346320875084088993559706519781089908778468310581528638328998477689283639372436328246741430778416833631391487943330868354463907701568047747497601031418201578234556348304437006045262262775857066948191467410094910699857538491626719916426524469610074365496680517745848930741432346839869387673285773921841603980707568569032639780094999091428555411295695431050405699976145873252469758949394832411586564752336541789820137361117009544347172158564431832959510161114339300125157885283032283902314093594236003037632591247163514061293688437976245251840828752886342046806647670864515630116104688589920049582655125501307564343934806748301193224437900367115555677507712248443008048263903161503931432898795470597689899554860520089667942850594101938576701958549454059702285357021612386424484353831917325012119764756401602503962679948179242893563034977941924896024307807093857703270774415009051185726281694876665315704600427496030859203494808702560958019447319643678207492330653892488381473880206044939239377880138850009155036763418119410616851272164045330463329218282917932213124226916604889519199723051665986679107477299538675623713032340845403712662832108391263579083066932897394813040160720674654059854311866134427138896845154154585733517285727689823705173018593855957699630731306605811335503053430252499461604997709151787003602076727061141294054746622719639214342477978537815198660768586543486228256405394780658326454316632683555765504353550577673387858118231805362278824855215061327874241197378723412757991796350634124453103187160243277627937110228159319587415871464280061833795870200468137601605585975911210443270129202423285890421866545832069664741755880781955144858285058401889979631500431860032725860225962287566185291107587002737135896188543240830653158335422792942309033681079305444875660982117021203562696666316054465171267425694940967770888737460123246641172818350172493030947937197953142089778353690760200621010785943576388400159306571374942373041705591525618716048449829849689723515082092597530820487946269543075642447222604962260809594151769958344614104225757944049910596442197996400596743973408770441135509083839062527346593137756047278869226643917206330847606928216412849218650361275147349971649112252980011127570264864545708290915162199506222192329142417988073200050505869093184083800080858978221995075014876598398791344390045066587209932947878731806443241072933179519007711086793857637425212884978281307359862281759421233739397143414270711352892039004931450476660973456593754147858042358218152801032778612700084365763145977004003379869615062836213325118167524080822239186738531722649717182040106781229599313332268061886085227343577735491645034115387677805559313541633352396131251494837081741891736240408943128076633538611583662372904555598702299927331928117950350548322630600140444436608847727166539030229956011976679923991827566962888565655431977361521128175095298796950665540312127207751580729506823285965372422600557237782154631831033910127372179677485116944804828418666942992609046175020067143752953011237555332603612745738081097483022806939067796395237250044835863972636317018334333996025403704908075612762574878989638957406574308065293979535029637772452599470318356434227908638852039783590623404980817020374397381649318051571499287079797626262926213198665407658028882212721758892846162909326497327638836025895350485832005182908051422672880885243130775614850603099857442802216451309785257115328806391870819863631575867493741388469236948285590994254911570818144789493813595627065167218818949451726626233333571042684219895069669546240705639156982821580556250651691062206639501739373104475980807729957304133699581274431038019726655028736248067276698831789938334935032544339456883987609305954416358771842625034233572168048664257674203591663357502037007193625980610114613186937339724028145086421220873195148293854873472256581390819041470643918610822621529802410692376595644704144064658335424077007293667502751715172803850792756289655063599496872372933383359077112606106838848036798597974040665738110864990659674221877222211233606761336072090701587995290799207286044623565002502499298653705037255307437453204638843192552827652577534975788752303721016657363583677538705847744528876594541967356113775777294931381829375656137893384763770739079761181007188886231406031873509283996811211023412890222978437004002941268549611519677161899484512247634881945173813128985605114997923541871822559320013988799818572610310568836195021281137274612568714963517784784260277204030265104549589300482945645022417033891981061486212228172574672339494308774726029142951841855770996416607662671148912653442337818753862580791915719923146691827174787183875953658318461115557828858431956772378733917981430859620100360189134412879036486718592302033418706964747069646542786975615608167057605939362441993907712135291273837681404016029813145226509355798228668550086380079755606059043591975223925756117518072262123302929632194956055696771596244769724358580901840609824185632218935119723550392379048076737636375838890599646440811141204457393175628948539322897032430782411389453385022474400072257401139411304453602915638029201490571154652354724205595366505578479423639836388788275266874472430166872918871655721086459749138338516251200607147377437967422796514477339395185684144034276476029621094907900529126925794177074985507361062652244562470811254496503434735760319572178060820220366847397975469094347090939515404075937463613687752181174169166847493698550630812003145479273815885456207462063332048168119174625354460837702598499912933442208094042474799162960290849586501016820149838427501925193822702797446296010594617394310868938824665022764524261313087134819798350070767435405525589844096299532492665503534667549317804020539332822390996953069900176387256190482482536977052420846416682672544645584987875801526883263587522996772418333192854285756947371743511860274585967887238773561860442623377602448183077235297628321259087969411092074573832529027772055043518660616386319991470625143367619026543739499189932577604037146461083641858699125562411358620051123075747420951678834813009727073781713132938244884761452288304752335710634958815134268235182113748793734366646400659669660312339712777350917606468387817994619406391569017596831466543901530814609881850785008032951264144495484693952598716063588294721366309252667979389928026357832996846794025673194463043464723758799382062877408012900971038500892134896225545594961574390060774477808814598320818459665881505189370052905741151246866024786119087534138522305136819463366921096933880124727532195468297170656447292557576831675681962832861171058022190102702959073092274971220621988973650155084358472971705946221022367058914811944329693914067689922667149502934984728607161228828830008326095888802829584234976366168897235111546047302087786256442551160449863050027747379219708525311729159971998475209642943602013692648842260011635582224411940004835509127341970966818567394544530939629111639144445898322973063658957411651266180406042915306075675503195432091736586820182376240290518011978228295365924767193837596389467334934315350943428965643579268710176655887149002168759919414323176872641060988004526453752221587646551693573161550362022153008287086546202636603854998677083482531756347111151004664953556548721015501851389937237412213551495552733460829430751687556126350961523447966531590515080362380101243710832458074553712849925146246349257974666975026153153236627513597378889254515441194536893968300618269172565628067035261796616972893866332067390039589817982637401400438578367918043359254554095595765381120791119817915586070066543712834258623295354755176434567336188162219912174953559117676368150949716021868089954131605028261580331814559242528511014334366643574177284832739473933145695303763295852368160944096068639325440018612291229767619389763136248256896148744558594707076899156772113489563184093132843508440057839580815012673796137400334671747096097034281619356520342578643965541432022992787686835909198428203873634130069223595169704227978599719140165381091810026059217157591222143147060284345989885258429249751710867978506163437248618198748213706770761857058709865309734668048012956280423151983414633969295862535629971993175996749512001888042009770349754317295286390324349950365235731702155913891991652372268558288446440040274456174581956286238804827635702883715450239969084994373923165986742191467209374072913637133652402722854075715507493114138931796695326156093553035612548642406323561768648110760269532292212771042372733206367892456775700699499553519051554013634216797132825017907221184249601402280770409481181546085097799095660136409026118824897101327561883479092102664144315228255637082139629608925663951848171694694115168752143083443474689026713653462412509008328920169822318927877058373270851570117561070977122569526606633159116325499590206027107841150353083413738530559121975194849973981919774755806349650583565439802462178273708338778812880752979908688778163870434123263146167998297165324932441602127631087217354565630723570253722022832931804876491230561645352290316312186651909653073399640388004200304576739537287595849855955745611699067385914218210596211502125454469071605904029499080999741853442838246789752255103921674971762493512942735123855704186199113235588654163863836702246675070690978591122452029875071438110850922620147393558828935610258187673245322490947666145466720314332818130980804508479079400895754109010413078413320627058459412957278595658248461580531951301111144751112162594902149211788460366042521450362073924083097242918131732360903012463799015058577707165554663501397849060633711523067569276318202207963271165575015664164038720534294447862648220840959855756246925456070011863041672630004857747568770949276007966661876173585890144789848043082215062199982257209779016960231003830782945220643526833996580558955372655903746082475810604682858724953933530035285450835039411017499863062314237995558668373874851694911550570697420361020887945496004428429304319969820937078879011291748224583520152194551972027623268564979229591415760180315889223661454017023280758004667617756728291413376176784143469924838560311130676422538293359175002984181493263081060927782079924338324574542703712857199740022618895510983722618905465581264310203999338759162295838467618328715886504848196538169184008692232209118063521841914645085278320959775099935136722139075101184642928132865336516732773199937655297570574268618380713346122879128614011780540380023720358150585937129667244757435629494393712738509319109471216288389630832917819010505475549936603095611244191642978503021589631771571177456144473730378415048462781974258447943346549135792734773226782055492540186838270432517186044696378115815713506552049710682254429615099218631687481946041833787544683883725843972873169930303573227734882119955789212749440039832610139612958585773346300392949819282671600109254788871265850949797289612673766005809176032222337907713429760738216157380705087721730799418478682671589861006821624716884455514724180112548657467486211883836746197819790432656965037432013331792806725654636783357476760235292994667855949747909273967550229034650597052994376907513517230534708313972100861690160982051518763716018830419562097216195517185147474797035671448432462496059205524005820664490177649955783387861236713875056597910263226576520676533712904398621975231878930299591616672565211790789835596703718887754909597545754908435593511320645582441422417075174425514288185089766142567423098555750010381127294214570939673862024054874593808271187412104467954782855337976783467990455130108236592118484213538067105863922138524599642296885578299078528190496430100227206604036099058290587603663966762119935913434114529520232591575496669647237412322784188442664778962840021541087044413300707245056655151028288491116637807587209713802483541744052464152303562145643176861389676285126519254193477102364999424584445645045168618496973054704276289224462954825683056329142991396936232572979245593399608760107699991542147455195416514134522421896362605431922779932568874463242237947394711129025286293474732695903132680538394601537934389243849268287793740791476606098371739324069072790944015679098140450948107240890586822942965020284687001496050565051731671149815530649151893273202195491964643996758393086188828169680760732832528800418745814754196875411354074406135948999345581879216740937484859093449893045199791059672094665148112941196869004700499660232476440503454624849996685857792562800063219807529647091560584409877783230281097747736270319168580991298917050319957504984281070739121741829107471951105933502170313150945232890496047963689288562414620772281562524210612388337562705758848162104757128791257966931560456200396353644660655225323950295221654808878446519217040725249291353082177509370536562994204974845869300235331001452929454128631958351780535518059595573622907996938324999294598382571293891941798484072264039501309098461142762785204117505095378630905998655909877236639568603191853214819961003751678363241908395208862896871527936042246297128455641681699645322808878967600389164974247676697107455747303167101349778989510805969530012460851437322039853621569156596880911900823118771437505497899389788727488463692197620424907451996138507382799338171049649380622662227787239149211859508775258090110972164565873631741391120301078014174960714752494595584753390130011757332605932090307507438530187513688418793796793422714101235883158419535854219600826189128250419536548296946065203612318391015540007633920670580988712063897750298083311550907091987590383613621282319000837772333303659679292085255168989750549313684823298050384439573509760799773334342086039402303840759505144892326567476944803240713139457913355292550399100778372425753669204116668976771043743576360624631303576348664206252196656849882413009139061291122997930841527458714671024830508256086855181014739605513317564076602745893906964833215893961556492600804061675136880839709268015615479925297079877750697884652282484910741909064029022627687446368073440500999398095740299184739930004961288052264308815934111305066917682478933413125508747039222557387197404801222084130527352215825705980152455605234407983437180713509871596732408486444230017419346303685178259193361613527363890728494634023487795104733337583044555615020789955596441705830472458502444498086836559354706516840396712190818325305459391807111861036454620947227460649534132099968381399761209546430681187102231826035181077908196217744996774927916337590574090534160580232133903304827613342931633373405992121079921448124972915384260130648157827085322703782660895965000606194526678111117114566022228799699742778046584947129211651875567243883323307602295787895774694445873856118171864067717230775137654035203328861448813315093271743844368548484299753093323729062099146345652279761839689456098235145414578148188124826651616480816033865596578149889035340153948731486971293764406111400889309654012652656387829044542367622411389746306330483593134429122597900309668821638570139997183185253285787780732808047314441959448610931847336801473890253836510521422757627885760210909370237319723146484314321538742050027329842275067378718284173079542123045759062850199179481113554596879766572877208617768842785875668613966427764720631078138725918415486748768139221307193536433526579341513016040457204942323490099304665824550717840814128894582711851434404532038336087588856380579098276555310640724578618008940956955162073558730482328978839456486850038912185805297565574139531862568629466567246809431981164635161982986011964390460701368880090721068096335919111634092261648759367831100189347264451238512129129242352480530076355744935925401389591952809437239106274728768839538750554472489345838351235922903838498989057546941399211039813848099869219278385856790632690523685750600161002448008255572625749758185820022872083286614256900608149236536765381212658067264306748814431747502633390229373163480080151545717360681793872889809251043614300065030220345097684227185840682338595184772869471233634054710998378469336115989984691816032721856776109406846825370883555163793054379999666878390727613663704438966577400478192806019646501653828432714344803496504859457896806433636084555851458087821384809382413585610131670241052679669824679771516904795791116571314338714273237274615586274532486716497499939628255058591434680576906446930321246347346254070889470910888685885583927958638255602271983490976724355860660913017143903036592178976368680248028292992398515335668877158293061475824332745222796917190137661314373591980115188892059757156522510934070463741523673883530124157553719180309290126006303597135740434634706317470719572858504430225259935287854936996021099689964366497568701379270371250751362385278366975809178595042946364259569090317358263514907399469668247412457712754137274394203367579784368124875037383287048522527821679982553966677235098355921763188746352403938000878192787242760966040941506342864828411116883597910925984334646619058951773152250335379180493236712001012723298358244549797719404895922993878679827941638860577415182233004434498771439088032748742657311717961435640785187299757768684774641391096032498729507295874760050745375115223974095827234161287161043551465724763600444405506469027238590666685069816080828978718960577423479418287802416860831733471598555957357293683339477527115223427170467906040976546396193429565525384689713551565133064893969251167547664149267578083530122629200001564749851031530861272331551230311780039497400704537289013535341997698222520627531998654237362138521402100164784994206127971604178071351953715427082735640128028159455237111523349758251284185148746311742725116136266839658246471938158947511496767031732065603915086633562182276636040860075448777869960698777704207211824586334376399518782613363121057255055574620932330481797041212677614225956218712640040059947936896645108836157405609005274917078613469786930792558090956059114409438370794330207540793627304043807122381498773957550957753217628525445511650882159236637026926232566653407379620975858268048743539191262844865214048106241445545602652224652260568676023728763524852830931438722008503001878393196213100528940610133541364541358950383076242159388166835223272617956618312181954092596939741196737407222684242262553366614143725676973125154052252937193955262216033585478864879632066190906771301765101483163329006819861148601880810766088578359600907217217161861834256462908281416423980926609452847947268214265773433019611650115797966648035273711921788091641156755115640972575444517080379658271540001429280500805817435311473087994363851693414251595286209064495719965660696597748804688326288074345523704970737664763136888879584771237834175527831884721827969826885764020275643800119249913496644400306352483118833333030847255272071122972680601594094487057000337378583389635013150810326311952558039687059572302368788343600892791744198207113905947717493491625917234707207739300004775055530931270984915587223728542669441867781593663260987923690443306972484603845781921551328085553406505320049893970556290097387163100820460942525561024722716235239056846795265927218519547701410609858137141801521221650164735063020290711366194413613814041600701417981531479230023408464878403045546629316587026901771497352282252498806547722655436591074949041175706001288539858472312267953013548074640999010089873526162028619094471675772940745137660571072819395218119596805879792571175170388704037068381014374721572603716212686939516310275753397814232706716125774213926640896587559157019605533234293495355832601803106503504707767853501484686699957649006808469592567623404098933457475005764665561100302322197322505371675077071473814461789701555521108788578053697819555106737477489453235906037524343355067121295603778477572382495674030696949422106623812889031517744140130538098507703668833877422482760728218658574735734979258097179590778509711233872519605129274060902125920068409545625440229732729545342708138640050726749803310617178369202693587258980904005229574387810207644312350950349643559168285240593474337505963213563524852982533108913349715859025369999587344015633346429788127504038588270287483097319671622746311925490662517575615226454097283480147808966121079821039533075974634914310056882709345001378989993213312378378960107077353440166021585507341234961929249585512413605169553132611733589752108920268242099316658980161442188889056890364316036428610782515862809072001468233757306093887449389675432367307551220402281854550850347336316405796433319501861977937189304245192598768657446027333477217151144865562631708436418236085869056417799906690453014304591230355274807767014900301162460065956911112699320221743988295969016280189929279763814215923269743276780066159326962597726727106004306811268696573052243869030783976179264825137108931423824517376416179172085884504252477945253472664358085247209564951142103327645011568948287995416073571015279114935748425660308943979003794668508925715866130052826997114055436384405561899840325176781806851663878925458634264481249547435166204754654839196384636916935833630715773488397016849666583795962971881267635961095793494517473137537648675931169103757833248709116162686601131663564439855637498726143555010781349584302415008801242615052924762299019020311290477419416255583502511449143861211704956181408838692117423629182236749704174457459556527713450119508327131112783246013321160249213240377684044675579119343650230546797591523563215790663149237805332811160228928140301730703761358432303264193009206776245349957447434800655290505761378522918730970409219686387439694292954459068321734349841616104104210990135326812185483275014405586004252815894085772578126436038899491180129292631180908943711724059152494101230932025123715758848001064493848386657701724979521560065806018028095699463813018328199109045269201764761831346393659067730619840230726289291954829442051341972146746499151507088281413898291629339560945162326543273974875726399883692482232507230392244048887296106077139772163802356343948006541728348130388501871565628410239430253457715640682496215259794338399599928210159427146559062858603656617545556847232190341213408984966079743847432045283550715500324910490268376117402995888824979110638763516152209606487289618577602033699700238514570222289540953628368937588322877384248504609794915160507608998200215378675081916746689486832691440514789751679986058469538665048466199922581777218683827065188252518940143332264785174744521998881129970982615298506535528952330848279025249118481154361233940123241141547350578908407155328611443235493615105433687029465451523250510268707755910016806521343733808176645086169329373911521606443930149708152783286321837823456856277716974619626099928066186354102824021410417862809147793314163950674164385288201139561878091188254862601636164360420182383957794039869736353751431559832302980297897737466772467244446655781571210535676068872376452438658678905285462211102386178033729372203139803948632249809470104710314022356018042424784721172771877855656935723732916138469620448954097879275131503301151936926782568986696970945954444827284794128417948559424628984403213973417092037463676300632794093199814971943410156586705366751457359719149598489537989600754257308161689535136471068035749267725649251026414999515328735964500952985453133625592978476765149561426706728063469609060530800538289168989546415704668113323195960861350621195288005974643618785336064055209762395601739402115856407033198821178890972868770806282098343631209898655849197893268531567193265341696575258441104941848410748697026914565147987099445450797942749503014065051275155946316361994650343884663905358265219852853109976676360365992112487519577874600171046731658536001266727168287162848532826366897515839800349701899902958803800065678776013928531344151217504682517126737897497509348791430061983363208224401226568195184352522840806771999312024587301317747362011534473248452361242155361299571630151420455047596675364804931092224445081549916106390783733672031841729022563464505186552644217525874650758158593139477717943447070312330519193002710086627943754623471001864826191779941524829513969150751933710754585464499407917596949991694298863023762641631791622684676506162358004554884770760409264965428313505654175383998123287465649855401896039538911225338155617694618801206856061690834093808830141533259278453329653312776335567488545765019252390276566569980562873495323482822077300268367942994090443104337128750404044226737308286964046601230799534084658583823173922712752324714200202495078981515524384740728231107979413403385592881960851995464401988553370245048374699247058152305660509506051619995132168377610759208494361315548995971800373241597085146476272228766064745774166983506938466744573606312147164704322458913239242474509418539376450021994258460485856144962721492925643891942380907472859838288022671358806526810655454624962139423234068244941424820218455709927630806617898789900524827522045123052207497759841014323460081072092021051743768245434442371889594075476338412704808840610445394116756542580420441383961056831227709150623279885049178615984838248625140675030189607203088007343170485016784535846146765788748792491931282450016470366177173856615998541470625608428033703117039188889015416981899762733025577408871335562610162869423624934900855920180720705901117018912476335723377817083444546939392715483034475837047230626757859473748268224086799338741502192432645218567832820412104723649247422215506861103621577069442489439094435009422808214734748515449578401642803898393757088590868807786035049287768055003000362761774722859038317617535039940580152893861180951585012893046221962819320604952448165074705820078474436464373769966251587320202848266958908043014427655450189863465960378306582704511457799488228798972083603069299575689093753504620423375398367453775158460647566700775952510157204437025867836061586967646268564191749047803570504855522893354335794016891867946576162838213687331754728648929140307655866338434465278627244219826278113673708588655762224963512802587215700806443597617003600049807000638380632318608740792615438163605057742892415261606152459190819883849189860491873620825490904146655443703785419248917369735934233770624061457338830510686856902294061185659156963037401624591197923526750969710751419251949425531325283903714170787848904206553889827615199229839314424327576969711248112046342470081198201223885723636196195708664100763328575441995887062234279040754461001018629862652309711509543977308844998151058379059587697860998834309677706442578035703603970657523425029205105747025494635436498714015952620566372050292927703726340401416239743453609341890871059063182540570478682579291212795512724120208931401784442666007171899549979396194464940308772418482850305811802182861672041569018607663589259036298999821260416284881344475450578222542532314878285103317041768660512118124667035635274890576352647362154920360348973613565554605998643346971138375865932304520710075763946554535129838593118793822770858332087549809705635721756251489079594262019439265391900507596985195164407528694089721353725331329955589797093977590555964169168394179047137432034857377577010575916240983122112218310521349261028484069805896652898078105833321158680884005681802526061482939821620515719321881198443964923972256272883400351140855586813563799940978439493356948041803517168095996771910176437279136636171042577320870368095839834496869981746325823271197236203120928115118633757994700234442316975640446408638427787308048359185145641368287976944790061279597366992512269922578238132859712528706961189875674937743576296711124571750282749119838034161333122324709641402431565555743618477779446903954014017252773374976308027748941918453157292204197039350107745136154585606594720280227912651300612387616258903399122521773576132127086063619490432013989797596138922900956814341760940040674547310562429601528696584788375401257060621639154621406832230940502496056875850101495480606355655109593968921120320065052998078391534961053482723173686743268017200562496396457860117917622714364692721275979113100010930227386507490967057257196191822146147254242334550780172686642492337839496828809489213353160098526787134953691402249864744926183715128099896917739068784692755855705881837151070818730382268084985427448538717058195861207101406303075234973550779840986093750909138708510739169483397070635328216435424747677832349552212615418745184210042593075512975932249598908943422626731871187226442722679713712738305936298727614012744164654241169599304573020655139383913640276156868156460924954734422901379554483815615696708903892048354802397815089483875834119776245864122970431198856658124027373613038583390041441795538458069769716134011223906333391439496845336594250545533639130182981112179912522627153490727402666805922910498498015399873831317073842737449828921509705056829927749072324067761022479225393297607522006361798133183764422611524556975005926069430555172927573970442580324359097785636385457156097281173245378618340973868719684683828703106342851196784195176067018768741041220264105557826252701515612366442023758501755081447029104195913908971302642072954450516447408846923090458429631977184665534880776769437533187700874779928960610259481645418723480053354843814352944659182759719724399362141271204534510868710455201072381278925045262036639217008730648421557158282182623736226227565569838872581359502498906005313206146336485265532250212052985736757554834659219179453490022258655686450140857896942390674419566564783422317132296559655239059663690601788561464417610397140302650111795463567548162620320098885459814793253424384789036339991626298658857323614247626188250131085346531297716425972661823515068331887625537402997106076927535193058266820984737075615226669355764903721614649273223428818754335536456298418592517730177500088855725019561977466058616513578809962216037935408655469422160619643438088109152954302171054554954406102898457851796343823844453637221706369606032419267192773757196560279708309503424585625688028736909401856350015897418923863887215631843051678111428887130456060687312953673654655507403802676172466171202201020175579016920923932576430129561253801433175608911803880469026458752581571240870744435240986969732537075661105082521682045989425158924232819445973618232418812222055311009488256541333028236351267371846566354528392540758601859619761252739481450115752080947412451833322002724905361099683412412924247073053341021492626382314715429396581081375969667316292196179621494470776718498088978541798331161752975593064425497790595876531982559009362729200900599085606475460444681151381263169573397495925678127200181240476959923139950877261343647647855834331003152149528048791115616127099569657310177014630526613014952588694612233406130844427231222168314080943387524035057853009580967238596383088920866725678683335221385953060533812469655391008590407336775799876308095710817404705303891041871942135637522054048824966073230486016166503192033453836920877525956435836975529366282172323850672574272053485177398681072604592349686568429075422120467016286448450503321378877454431376958633719553948285294758543871427744474655963873263565973310823002054097387064179314728420883109557884974707438383255208224136651669094950770876663725829767491871906923961372076760612800008260230145747374052906704505183086702766590929606113047542893040945739869489692311978460653026752469467516941782784829297051617071422850546146177388185390111090058730738898673038459431520865966461508238343974213173129161413464305261326852968918643074847093445300309597924770062451669208279422729206457985302662269680759272799951439057446936729196016913926412823875840505356208514446622262096865498249958124408317281029199293470767690648673221200016172962972926960983212703280022487149175777674206003342094006215644318207506810504832231261389513586128464512352513038579644246793929630895627566354991539047040429053749275379360506325853761442418429323508618245338607917618469924875424908197005875308071539370732009750061753671810983689254929232635987657677609361746921617422448553029224974555856972055886047789377190780607498145528585534654327642096627530716807352010442027488732565843636319165802012806334084552573526107673852790607134416293792265626806538333191834232711700276671906463052936955371020928426601468009944426105709212802734674996997107443930078392753982965453367534003213892555326003134750160037783350744006144348948707846362925669251846735396171588036828967359716222134413971606904080597952198751682947331354607169517267495834161263307136692514227799502726821683467908951025529096371154208853211244197614676254631008716868394683110944362680684750255541660644341931511673698675796278099577508026189348617561864191671712849738019954784780813438509261672709946764679701888920637205226457942417477759552277530466760275169943937223302700342030463190885285732090204139905018498502953036250756265197572173530326801873965001223831273395147764360397348526668712083051475345206281070289186692882759515537197192081767018042368957373275270889668079414430940911987164105629241423511159292021368777413385537178399319040186252954992139652728438938580526558565528309361804537326831083728503543880926966887907143093968922347994143304579151927842762699611810678749787005251213093368359116885445990033774917566063096853438180660840223515039255641370785377371861678431440178224304710207134251435317287745694138548742933520463293438876769811219889245105623589939024526458585655099894628266847950269476833837206224346933580695143751535805039867082519785502222720450599914068725371833127759744536890875662829779839148274605773628471013170316283215900477089310437119961953133862141082699732294754659558751915642438081686547441586749163486903287644926384589080227810097979213059030949543859026258120508947054508636006999394609840809640294907537239495298048703542713898568887056851922060556626643058646640406312939195042003267020498222447239194362617602199767693847248515509542930649705369820087563308153468383993519333251894510936367006728531761111785674385756179465523860114723578136995774941913031067704753148094796738593698919746922376912250543253412945596807603530305953133334002002664286843582060899945366843986898142042759593013772338677292417381783111213699136693638508072359090223414718925277176015127333632912074189363523194039935529448984245404142277616373272291034099187940574991701645974006170528763022324642500412599654892239574334449849764958668716897888023979567804225844938475578905324146250705014687604345397052799943666020298881693222924990344381253256058780517886769661315537066549675758067408033817070815790422076556016682789638882379637065761757036901299520625409863105489437230227413014301153011769054907258135161097023195903313007350612447449308126171911095937868131825228494297234070625181968002403452675394855182068509516024881004494023932115710083321466885490236051555101877660965015770365414468087072492951550950649320585105458400445701804541562127818283596345235789113247394227744096421670024124604369676290523752027116580878088492389086541012833865850338441823853524968597661473294278462166374306444985597242280718052028009031761309188485183220181764042981979502541115765298579853830079936452159863977552737281336685240156175138419739897398788158886884949000298866292563248039775177511470352722858730076527513280031780596244412174138527214201764669109544983884058897812299122885412286410899520667893701330698332443716166472627248043094160211562070425538511167180995542273938537225017211810966462837715943261043731081243440369371325928751757122100308198213733937644323159529206800684967365610127981425835747604211845546303450523982178877884201454851097328832502089920895978015958052692139778375700503784066247848013781754583939042669196279406473694162716616230236892791956725666388922286572332281368789761769827310312164305277054691138730508704214131128260307216619308167428863975625436414445183638591957956086769214064783933475245598615297896627609036240852629992791083288541397837993124339523500217376334996924879022320007637975936565645181046431672651976777398566376929638317117258990362828638341005494737843235925811701518835686333731794094842637448532721650344096646523146187140601572018139580980671819198259958609984090851514793190846848247622767717448798132066762218464450625356750853479275535662840078670685256435860202273090360946776956893098528733076011472440985104955425844197707564541903829203150908192291555671931881614900451094714774305381035563040441232559755434308693920463483915352790018078724579715320324824100910425699589955375512273121587646329507759503340039926703474758716691571521209146329204528353772762310190613689414114211911102490988524716763062538762925761492264643786259973831340270386861804904566284691324020979935777886433371824511124465523131577499070287541108654293544011542896921903743507046557902603105832907837089384009709683437930809538619118228182760071979145876631628936358990323983296422756922804267044094452101047030173472061790736130372136440485074203211490305130658090306094189327746228834432048225374059548959574907466875488196101198661398939494027822423039490148766039368503338092249637493756716640490112013634386473716483914841796030310651930080852438675758246260798766667533093389258689735179861090469145068127723303695289237242100295508467620292015869789165389805355787891638687785073329866608468520107905582474849608488009642203859461112452847368259295407565759261341678058443038052090246425397370033417162922164374391354945918705969619255367677484293818010697034533583047147859253490714871638657243212471432720597845255920189721648551574370748220451183951487976310195758867627789418405932526146973025823463496576412417063835476205926147830071379526303558209589910630755726972503196087503146105954287017202729055156425357796843697372828901580590798186917169382686553043176197062194627311846426747945388057336425797960311633695955864455878039237743736801797722588125628853618706588679502073839320631938265709472171018527707524726363729295256932253977070855465244806607218822884069144019395549060439548056149725771666050407302161150027601411584339060088221130606930564642969730887185842537612436774141684870876833331075629548167796050283358811010401337958077177081855697760718621601823986164976018709570213015145895110750011981031312041672996757282490664373886419509552509914216470203573711326762598803641537674263894123683823817615777051712985976118377853464098681557400263860039079339476772351939520141347789755246394990749906408519030138151026668522735395058575158078493184618896050847621538533418528676501219104199596063328193225115799740257634468241172518505411796908950667103567492321739694834091900395706060695617594632160885293067062111175473827396351250463918635739125414817743587125340843783489912076643704969783534135909814174203103561475253019436067470373219582885433356264290359395716530864274528650649342658277677665767907463748972754107507068848453881074074728048465844504002327506292857021433561120494607002292610259743619609196860555964266625659200607849320319588286438407444718477872227684020104348226281689071038676499929885549650033215240426931466276615734608684830217337065327234096639841533851600909214852086153761978510704714108900264699475497131102280721624199048744584657312938642766034659475692482868512222971321321490916651657957381665677706118647709602221127866765039132161239392924889641838999163038098953836088943874954814052817409176679333524976705736148332857147863744649779294077010710770407543631172022562969892206186833093635396535368366825296093678061142725487622443600788138677049936778995981496785386034221361622848422429575125695482224615131417935498452491442701105178260963138836832855736303654889333256239833048217007707272233170217640979644157199645013559076770966087689436519149557090354751895520568142883195552328792620225830388497522479114710936502608295586406508534893117788787966073618821477406883368442085762279039112340721625103130865244790249362349718067887563436688711300516431685639524601035548167096654323994233967409131245757770125491561753091916774517398310336168433372639880412245528288454024052051152988385017050999659355396572703156084306097619532734352261839794575329714785449210652751849178727158394333996216721575626138537380729337549557018149967570754884452554782423873407772902179656271269245859418734224584301861898437452592442924271100545133911495478341806180344886924307277183808030230265598904993727872374103570227142450691550766831320655085995825089023263440221994286829887554650159606069670744018363234117618251917081990455860195983819765003005157486265354290324554119560539976793611877575530368264415915631426037932731150864107277048506683564755730148224485343153638801604687193206825451908727746248401392198184299306081802117429360903829132014311605732050285722793256245885699777240648652504825344151734651190484799675293151910955797159971084594619599325081260389421591855627762421209302711231723538539420150712745147292721522543536295151640350310549868271532558718552001365415243013033798561240001220053872330373875959696019232015768724007619433483097129904134979424692306834697366319841487013040530010282677550103496361472785208800679569284706910665486789152189759973677330386765738947306270175535358712376643528553833481238472160244211410723940294732036085625539585134116076266354989899746428482142646234779167811592146495847378528296556013425826751747406833790575976839000840661275147741056724246904517561943110347771717377829067870847088222086686965842522572907484521444386295678218786234573914493511767394863160760740486714896644850374707737884527251197488393813222125397174414722631621063119540471349995051105071631296916342022927021070792497549287132852299081814033981926298468677734127334161153267880180763727507145771151856490125149352285660295599089907340343740879384999590984359043892605790737335589967219443008852966680005891290228017802982583715066870898064606695784402679703181349265024596426626215634123065091288649581220457489805345282119978907077343464096534913755716683213817227538139420897923794805633292766794187769073971635714313684343869555279044242167376159057612771222220296005176773672557895674732407546193944244555405983735082921115844935296600395329071498413530992517516178162626796081034417088834965609474736155148974914264572495568395276551907957460629635804808800284300516085422302412753907015000145398647452712054748342073869554864202549946205426857726437386741391612091534262527175580729208760939864863967218319780015435676988528584770697606197598401428005711916836855018474525664862306888949473252503343885260584761038958616036602445121354641348586192319375407644400183659056347586048046065486300940056017422773001835375727981901718389162761958900615940173121466972301243959352641179132742084230067254048206378607577950232195664396553056589372218481311350599213623020848731260657410249119599577822439232822962006017301671238530609746333280590489737617282065518594410127444989628315159296361409172800989045315733951808996527133996639368882561129908030829060616985785756700825386844978773845605558345031831914136535361522692843202499858637480744477315271968016302029428398067025918124015011477162035704041779640720580124441698903820689688029526157348621583420930795426665163495053371933206073283920823199794215827742195684676275682614217270502712602914000985733195357188681057647540914695440356867218704205704141486212542807779355938844551493403827511999841717325220740743086597432700755349368376970193867473689113998239601716950254006699791681896296508648877103489423468328021833906207797423823075221997307008547410565173573081287340297413382952327411689641587704254841171487124875382990638475596618902410214946918323213181509931390631683057274320477061750414424863929470884630941420317985443093807242604576121282379632790320219298128956694282081715965231725357281058945865913131996339143836727210472200049772842939295926602888539437122609361794381175058732484633708820425775135087496487136787904585203614100868735116575994282758056897243745497303649924454745868553309422459632275894425419969183800369708051716612076388568201587957893211845600558481481276537047767764295622283640469734126515690090478938992301515453034114983638031552902226346796420434606397833755785742775222521436078276429951587383204752893382446547102973316234491105752170985425212965333565742922892319263236998557162407047211233097361390935210388398995687135423263849852608610425470693617058925076490289782019259913516888133668445669683508228245339313538700792522227493619464766906584481151924960331996760504508058560547701030279659224308353362206434904681297670100320857721991116487513937497477601382341820670708811371803746181304878224590813209207234094298156620977677590594998796813518011857627026467976067973037846851302548243552120807255989940401661477239557408191625806072299703349642204246755270002899821047880097713614198011088530019635407756907361024733182243495104815261066667012961712048826598162467863636721626579295757775847938003073558648869033087747096771259480826951153784133123155209916167514330537344800616530025338352139366089438476198287256942654731896654880312109056921995656971340250696716046965955790472103658677620469270959241216561329836038895858868959620604886583258616769394145707427302469256770910625633525585505848628582669311238252103710287013537428301760387988711585752315091764799621046211359466336465054058071524066280915826689197181356959413902843403253420105083118311293663581052990701040741973576085262436237215172097585362601744264734617678546456982775666446446916205217617888021420900241570408141015180048663574351441647129057499800788559928546705728260184036284210512874205042791286783108374521672971726041506592005096509899884083847231463029867789247409139948307067516464554131750328337577808927354451203330719047304869906648885865359272012997184886647579987668136235010488790953490755927665567601474797924003628496714926728882837249611603561596211283256804602173153229194813962875252065401519808667622502948134400609955285733799917789239469454573301319196585156862260269885996415043914813112177683525765882248513520203825451961545239909918870582859403612996061030015759613441368648672140417601872738644521724915948050940994316429423414303738301109142383085421320712194527226737502602477280762608887124418736999685548776121414599296662454887825866389182889815850398087833778688325671094557612813546346879552982943410046947696149612704618881369374676857876234507220171669386313081874073009389240971966060352337434143251709693186930970772045523289995778891149130092372179370973357152144584426820946353281673072606784641923314483177071605761425569916071524719841278144573437021194949351225945426656978788457751253989905135083153730878579516424402554556358597471410116464449765640942081453707629961373086488036742700152050754578880822387069126732373425329577845477165489776098301702147576303904763504783642173677789047059837303440123674834550347462670155851470904244043432344356145149447979703541206270113584554111167123117901441848641579132909500919580691517079423353388492717339595831246383885842541050990386300571022708277552076111794134730422297824647952064127449365735749868707044416117984016432162924841702972808925544635316335396523865846445298275367576521797626781454237543088180478389924421638830651154464603483801912586486105960966444588724497297412623292783354386406022950099770207424355093946588087417112597113059034086065905557331557724015427859326938975822227299074385517051916823304761930599679315365022304376697575112762936468644858312744989174099222963140118450625181761945896073845322219585754182959672943977778923092165726388941719414850294276595517738316238117280169800830110508602763748230108113546924766731399709375895133989690231902550312973549673364205063885612126218892775372022990464020618403707453240008710137898125005016051765599983467522214122971977838710046265462041328468463556668047407243054760836060371312649175769493126366971801512770669784039817296801623922111297614452897443162946892075917931216700864645851775096741390518949131823429166062016179728056768696072219675250312995414357327683298902240513925729064939717536303570106244856941399761205475539269211634253415492942976217903218131929087220137439993941672842514995996497474754369942194943011776402628695966343983177542530751882296543745103991329040335539293914127313855042688634544849152304429511507419258794994343916742820210037487291210877969316701760903347394848922788801781109870904470601220110870322928182937179844228839415502692704262479035588268319231179949538409841855929998933308742807161603948455766815147338267374982145243693685558666036529467808952641742015531095978943167283851708543248969803856527750087963206739225426715710730300543232922204968116082459024499803188809254488676649571899346143449964048060987574404499229669614798238199439075432093593716624996120602781684623421298572197401255830547783973292093025038732979481115926326030909677667187993364603435307836728127248632698718595998606326300673784961502859922991979904177172308516118129221285412685727367421990892294027856390153763948322403911556619169786552548379753984562331046510498898339556203624057079441965555896597383802390065047599169670974868705839389906922284178855866368632712585644785163772163808412302009209859139563006059240932924394148844028501136507754569876022156877413145464342650909896908329924615411230946645605617228482145083597570965528734332584681806983159535380686434512522034159856872075739486524765858395961316148505534409484852414327453871137138536724270865841356327881875814148134931308883349339610880529126290130543213886980660621280153290189867934179537808207076487520264065833843164052935358030216511970107239307183675867342882646255356075178370641226994608232938170962489526010888708936764586018663379649790182791435991935380244699196037673956068891178166852981711967414573453985781630984794377648723882293216027321759408672169265397563688027065285473940279390182784722148224111883004292856525751635121308298642372408287343706074527966522371205902961622316188767764196841734536049183929381092189114554072426829397010693804725179694492615753709061288166792267865022182245732251886492063225781040112656808333167609429099310315806999273450285613790665576059634010489414173318682868212055174613915651495862512897355484356728744413589287633982391834831316858230792262790146622569533512260279947259573218929804088350804104039275195335022596674418051453285826602636683557407377207022711736395047996511439950534263717747863941600652847964166702924368494328669098833486450273469326006088723554214963066198867250577808652691676442963539556381250550035627036312857394374755374515067136006337760836804145704983261139719525554276681938576125093134293869000697442058585345287121345796178470000412409454299121909972875436841721543135598111435656193884708071755299716721693420580099533297793489159745430103946351390673384006077405665301025734139579818000610654937219601956008140509825186297298915828427222494165524424237406022922972275977027341739620431403457594405432030082721574682695128010886865948310628341140688013168702147110677709225621014574012201752868268059969934613674003552172769172456306972757621961555452040756733414100755215691699265238589489851600417143955434379418927107132123374214563459758406011714901475916598205908879006784431525825640227880543402551865751554333593846922093479365802490258233885891665670118854473857879462153645145139594344072097024762237756441094985014539152653360465004457306159107623437644991714318884233373990277965868069446528616007508741781172609755454788285923470333069410538240645472068150496217635473458571710269197399070413520567652239107331652586165793436369047912632205802815293386414458766778402998639713155228619328143437838588966952048412756139296538940527570239207837008887835495554451907132693059222779807908943474286967837749694737785597475703487484580802380629829106118012154155175153137293001998864527925003808980511520797732055573913608768486797698596612402494439457261909635757129893919488386275534835037405973224784921603202920219982411809947053451905367011345533651064385844558576270335342743189653873015017413086046189190568203801001529159793800923866562836039335227037346509557365068364500399506850014253569090222450346047957584748801110340927213452029638940154628802457592660243363235210515313401290686996804495119006466268715015756813747677482569521235432131622902342222318462262785173726986657590420559096434624832377362208417857060836920211985892754281179252123583337972963903687183366432538937806510815276435339223771323636269008858237284069418531772979564815946005321007746397226666197675509918720657887943397915065056154172535818674505419819515464871570564804003350704732128618842875796465185937480368010931756408172983177503367627303625154302240512928689323347425146266200333202807527085741438794910545012850867372840724878734813881833340777999040615807711163802345862020746777952891216727137588063513250853034946226543064639337471770281493019224004264731888420957484585306553310203936446100019340646349677398101977580909933603608368079666233414210477729884747021594550783925960502499272025710906485516795234253318949332676399466723292860213038423405231714676638677611335957111283140742465904312974077120566138182997425490938040000943124547240951255252277566384194847108782310140797599928876288537888438633793144008372991545920707803685061470952069831530522328521796961162519577328517396688503224065052332309634979734211993068922103864437729702402618396016545436490735663663637660101446212659670870670672332750798072390311520531278211935656168173372124555407751701887554854637221872283715691050631746752369706263753282860049621284448506457085470665143021283811016491112452567413889534909554172596611823987573218234413657017971963912897190479447124803823602180511516781331711067444757323986171534528015575426439528412502130270394352760476517203091817271578374373793377970332956109409169556317093084596233182114767178733785552968604375813645465969707805563744638477205912988369302898473197620933079163271227917297232751458849566694963252618025275633689309828783308734043210541149478508689843848647221570644771156513904948124578824320912131345253615659881295640586290560640575920622133776048202263783530036198068569717532992943569039274106973372250926528963339866013524008936384545670516550144824150587290041064846235081921165588047080075800765104368667359426697436631558267901206665044758565952996546823114199723729791556088932503944416951725363470706717156919106773006945950311403205071332539595894619154662801335706775552912285377672973739447117084826259728794989536111910919882754903927095397298730583397934057583473992642656833086489508486502809563249146574860945828988263851848829973392867896061874974841020418878518244837577936052097730999063012431222587349298554588617185229323482901306298763878644529088891331174568649731549402561339136815546766976084826932597603200984070878006045336076713559694858756804005530169238329683197001127432850593844166887669470727868477885000130847475025882915678008543435551426290497667948096939643804921997793992607892330828224841896794266918508857207041514798446527316206008642780863839536970660839407147918037085835291831863385816160549055891279564842161283904726226070939117322761069587246979451622502127971146695450513053042270951537711100404820804073378414918947474685283638166737398663724506967551602608079519138262139707331029735871722520664458937794306021116155993623377989401167913090870639433357798935337390948023955094367902927072279072254017237664562581148251693196262329208673329404634912314722056094008936498788429690676683982200807639549276220666429889091453164315035708987544273284468980780611867712991535422515741746683099774098438559461679455830340190092447683994279837343828370771570379716826924231021808520300869568196055983988416863757901250000579978751097585053783645056060797542430519405748811467690293784094703991758743132680437072711394937242380620515653797899692320499962426987274788507801707247374098653584655801370980861594486051609803130466322121303360308853219464521294543115091723922573462158048867874830249683601850613036335696404988909755594933653200384837313688432362008707264550753300379049370058526090117793450100605935825994451268368118161522288594744051479154543219868407374862337724035645904574753370834434750595382796858150212042412182835747362849657659102434822372395978173769385027436012400333037698071288138038198596960700622776590097838623722294781960186792470228451367593832555193973453956020269162206240947443364553901104483566528886123348404695535591371185509179486467053475400195250533164659518465598297812871626947860949902072962879538519813924218034561285924493590671552570609459432676595393089773391807305200418181952892531349293586095927473080739583203214420145210445491609990125245241113658339858535357970462975683264595760684778626469780585072015977673745256269309912724901875945610718118294752426020398109632948998804125843315169558501083445491088428503711722678551058902719233185238261119168550449126136470984877473425185993100727261170002920474351028750018969015456797177921083645946797404948760158209334870539659623758752070006900528892486990616768959513271088384100241296775213546625292052525285180282153620744218793197121527380733993889264161418009767123059746374477551203934131488268918289879948551669407852151092068907243020026429357824125249155410995386844113370875239854249332533917711182241657958944189751956003805332125792976342297202460908731145427364860519788281137038183024510685883305789634987486850533601145633126486950303018629662857248828383496317414874576882952067832459233188494951845523975565432137253938336849269786546250509592761857121257184486527889316515448621135462966774395853140675696747733305412729204756212141368355072637753463715004622376118345144837496261125645315516287937863728678958119209633114873653360390798270915518942973524941158475534025566918303266572582529267306802414953018985812986863254771434688950984110672628812489892450615008960428945926384067735748616174388630124503967422704403901512940055511898499640448238530417249000484446128598679708352233129520850098611186050092487199333179169908750296268639713478670512298952379846659664696931962268817224769787181038056739500852399986010395459886760180130784516124644339999131760343374501712221537923485875639846938737840480596349152352896517863244479009166971047316028207491516803187569427847283875840036210053218272299171124781262639945867996958289737137440814537316096090025569932403599989189200745467662725435730667367368267815540593437364884142351379178704532128515534713811496787511073010087945990879968786238884630412701213560309974468300335770368870911257720287806850576890617735234966343569048988304177325497705516721304102924745339082889286455279827694598838817300962690689531321373568011880073164803932086460275036528425459838390643468235319466403981092326527226630170041279488838206445882168446883551215473505646396409553224489021524213497985926479701964569617447812561744364334816685639690308280632999981777358695970848381245196885108473900823123445121193911682831058513007903468268669676995452257746444302422776418685982217013034346279081507946513868000366706364296778565289536958088309428419146398437525878912530935798065022101288184070613686845167191630407798089611366538352552997546651402148234900159607063600930980353475765979881528291673868979583173359885036920062382078964310306670394358762567907212757365633026002836191554850521435497400692772553428020170728614898621174155583566524451185623404986016305200080999540082744454893673725314081636170486744317485048863477084347783015523553879170618813653517008800465383858908674068982216690277846454879745851343299822136136308222283181897105580274489362721577464469468344036656830225807192065421202462215282901753340098472397606799933049462694123099217865916872942752022512793033603877016249205393830231914952586324476250918034577825082580649841831734848683289890832030898389980107621440833823515661040992436547235170091414744074849691093054325992902513437807230617484946887651356743956526261121893141028841873198798170301898410837014404074069321026641755042651832630720782874661177153428233025591579492318349600040394693920109774544056809484269407622611633311041495258779334800033624296399611921544499693242444868366955984227281324742150400487834276380556096651206011233586904400397385399404399398989748109659481880744053376869031132583581403261464093424852013643144545194213462049484696014673934622177498644489338822464794868145731874353746675764524776392634723379308604132770283098302856589519867798561040399925994046092315360744212500402786865099445949596468404159910144427482317065641468806449090744671764197420286680982622576923769111082581025012406015173246616197821750131455724272919478923300305216374452874000310881481904947401896396218859628114198108852538014575964041637022163249255449050788372537529981658413922286388260105318415235156012384625272766561265814000249210508190691519926297195943516814644821440373702316687034821200704609451053619326342435596770265233350609431301347203520127969996907735209802884773346336676407052465829517477714924533563131649473222924003318670208338384782159448024311379139654796136521411979339580899263135039440643678710388712616573656798446884465416868197284123399501986452192640958353287999614567786713739363721736367221080564976417289496905938591925974538023187697559523265905232644212645968925470111612698438997045556007965047724516562701254772316048799085566173299228180349711521469779043028047132292025663848571295759194479291887909409030822038902826618625853216038829346634133356378398229678779337055475741241650433839703017611198442652837486954015020867221894203560906079164387316865611359051747764370473317325807727503735322541838059515206097830937780001682328485951190437989389139650409591942198088803887982967872767843535142800515684090846429880276019839689149309259342091287958593947952294419742666670347513991786618428602673063651490805787056934594584949918489207212034451783384749040759327495671902899276477284845018384817837191285778820817795507180781730713696817494557890830294174114837717809274115427757179696754921326743211843915795294367048447470847852055884020162181288158924471105701436550911602603855444407946106315425931246676079390296558881047559864608836944654960586494254966235137893728117575160975503513915796284617497598081413613916682804271164038989546616685796790997829043456701420327675804359681678460474084407713973132279213434075971222847287539960891356203492210131159745099201630571079703812257311764205121313391614585682245158029362243781182769079665945069382475910697315125595620377252070430924430962218529721656722053281819053127092469360968665880559171039179223745893792998357657500400231721241646700139012389363255910772914718883820390708384234825157405561796016587131548769513196020765339413265090985625154199586597063944004286104208762490189863151573159294181658057548756189464608970325032180996081414200355804281174794141844628460243323957113433008739920140922334060471685336674839806629226043982222760880806708059828207085305519356179967711384031328742970943674355361201739917993251331289475677676426806841558048688508288111169010947798612439053796589549696963438794974498427029485270463870750278921072782530776998454847278784231114533818570329530123584513671537699678070639702652364548480044459367839414304886538058086933368026353094370434417784517226663037382510990733006275303778760718045608456319672558873044897409266580696405128070459468791343530816475342146739682141225058234281071490218082212318801879876746095957386420906249648745647935306748290320214524495365645780072715414623621521752723247742861792759090932851243908388748789895967655949476990123817178191094001549137830895248249873351653645252367750692455985247961686819985233411110971333235908748843177077878227947032550174144362096150658280606188404292007542101592586935852518204972427042349417922977363669386744021673138802197405566920091731533596936999127825677286481690874536663891078606478613716405940859623882940927873714359131468907811252503008412073172369018952972521333477908811696096838619941688504072506630851919384557963530568869517490382102827374042433855657523139693178086273400595104678843048259900313985068791122447438811263140273034852525423845544508015249938984632248252299014448684121620611589205443848955308019516174991310708430895168616306027154591600656321908627356700104268692950036983046941905424228905366550013392634600481774263344526149286207972403059189391794697005948209734714563255509210613278808914950377712285763778456079139060227572847976741321516006650389045316909978944992916224392918878133553969106773695669342214081391733096982543347660476109129337769143234296722383401710666245825901004511785248006417404718865126325093537331378811475715027465906515683897427672383945093442064737418281439351694777002234159429241712971737085944201073155148654808028312852027175287594827153412236661478540067487819498984634022861842701232925106557450333298522005611880550241947367246737710627396157673062599216528951315659965459584206698817420849741198683888363578695993901029873872887077405418386028272633004636670109993302701918650768687968867335003706303642967852214936052547962068289457795242287800655815202187653717382898444926829502465923770783951878299556366035151928505684895514127459367933263567569052822674501053989568322591094182198916877683042598183690945945391954662736911100426612805663828871150440392120693386284820614505555308135088205084556695722609920169430637927202610629376775950409524708989167441754659780672946849710285217289054989761473843401804962088420767465460085019299530795115264937939753460203211941469990239294636888236713888981603050774950883353072206131430807632762766558252695548312081575769070081130285211331643330906642223132007759569226526923900728539113607672135578696813900170871997908333321901069273883658593304242363425398675397289205863350701005545855321368882126929356352019314082470116874681118096348303824270750817952144950150925024537607495077953131113913788665369423817943261606409825824092287883333441804342235469081717004926513703847914212702968798041906922618828289969284515045343820760026306679116298974774907150684584376258554209238911544058892934963688677090505346273837262094272172692124046155976137266753052028575855096250361682422849485292824651848416552709479164942260072506687874485688329432461077262698797360407206951253044274233101197540931380119411742706179826704614150685487738710369623024024545045162183701510747219370729151792487935483319293310761981031635305655866234085299375976291340857316230632294430709773796198450422586531687851526144502186738708635356458646852855076408628222544203888944556699341543484260676930487113901957849116720531974539025752698991293656806102520354794517360587993100413852352901229079686805632346673064682293197338915793344044800101701035993548725391216935986463962194596044233666862995423525625794860783358595896203573105857695420437325280517210183556682539038314105266823110552537064679863211403811448846764395332967804744577887013772280674658883683908663293643791534071368840616891861892547347310891077470513276275667571239785088715397892541180562343788900206716360372705003824338513398986642823066823978497577768512267876965909125381491664198266835080770110319881835488127827941833850940658593215227330687713884739671301807978988194140544597425059460505258776613951485777394528472451527610201378784010948944950136333878213287039809323781940163792726817730914198559882748563374860090028718910586424077623160304778648167427173005094274802982064706322689035549348673821756923623487310589839090308382428655452188847982839054500372367211607718522044928894489375228562004402067607330330891800137416513748671596243729149405989913643124650462929246326814281541730437396775933668428028468684146575322265442301809387685231442286875891428043066965323087556763717649376921791865739444841021468357445164216313662624501284209804226679486555283005560158504712133839543213719363569457621419101536162943117121930258475877648187021228879454213855387389149183967064878327368352043945926100711769403388638150840618729895376560710364431066161578925079669280919753813822649684335824742753926302829529049844682989466560527563981324440928029162707387176568808524936153782605039536817533847225442437390736125163067966024347527846510132252888243955726932366480238619839149966279091246448185637571181110962987317509788067335602493851510391365915477089790567656878550796722596604149339010120992769131087322787007738712377553718318259414852335659421497343993262781908960143246925588401714319457072589465654675223110740372406301414973342063650514629038448925179015181074955578778425650582285318776313495594185276547455340538695379656131176959638259146521295414811018637072452528157459037567810722051397505750375078656244308099063827559071739969306587275374492522198615178632091233601199342341794007751460879949755055770457315349392977723126101558222287428121915794311914966309372846812887078406109370234914657953778259503251060573194213453336108845963913867983088736652201837847741279694729479944694173189613727196943885856275242844587261517371515389404832523063243070710246340786444282678730315339040034055482856040217927138169096368614478952997864195695981092991523224869147232382744315139457540032471310536511519003419329239302911031023369424679725706787156078443486865341348255214386781549905646126126613777942170763774902068252288371221959212910550810718739447076075175171325048061365083567593721630401292732008823386295895108961839703221025185870850839188783566846609963173465296910462539657347032215685098157985481247716568310448528399958407348998293469794161749395383508350974891520554776665215117188681314621694749541393791338482180731413621845922899056419865074382741648726281256702166977286213057525373218970731133401873196531002235318626813112734382456275703135110756839585170590363136904079766098761222498447402202983425690291718626518160060615436482700918977523187800409311100537587951940257649548630698134492308779122063603467021700623778203413897404069123809362784177155216345224803563959299669637355496514271934812240755863972116026473296022245044639603574074664795938466109676994158364925140359750893264571822220202983132904052362480834884035795261828875539409626061502356771070673742572541382449044790179612986190466361810098611146293434186220287960842695204545690016922538612469490059957162594957781689347729759360320858187552747540789182961808230066496941386526110722433673784790837722610017273075154756191665115451738930293248255819910067370883976694841906749148181125831998647794690068390219492604912413516910133186474015460114467908804856173018363008023961165869710129806987278814581796897864194107303267741042540126221877438061461174481847864723616126913442094418552670992865118417770839462418774685817867958958777799983815023524567170734713628322237186088459891640987672668920536445755263112165414498155733940701502028524679232494950979030603981664384987672274797248320918345137667366495432978754094729615147942406031516789370647178182355215765623473678530856841667793869469757287125823596707904267856579215797359569115974389692600250373473923140833234786042468820661844260446629818471167110706379866498285605762214026060599670659991206632062047002738618113873922055077322103329963671845748998439604649576237147572972590300157030518587652842765817776789598121010546730440438058773615558649696515059474794155165753156490032401213915176158845438593213604259211875446225827016342178871980883049792904069530218255977000675764449158986001748817776692262862866131308681478260090174135727903457199848443990012877102683838508191901601678911241078281119944401063381441113155027817717302653535120408639376679654090743657164771980319309149206807645730141640673555779028199795421783420262197383259113098022653182980309745346107004002527928369898956688356503684680194098259388509015963687486192737803753334603907553720426183708218036308025781877091434117133646198590810642962874503417708268865708181883977511758325885997546547345756271987655417293620626035615503693991294357998513702089883959723640637944146862328701579705741221293137143022870250424865089887536972180842215274032734198610273834559199967248381970451490226000438504164823171876446923909789466955977200196008482478193416001616020494983228642578620836996721943938427896535846101026329517038774668469422816062057240980184954668049636673609201742073454608950297228165060188824273715465884056138473121851566032538215317764171945545186313603030339380638617635099239993533259488494420154436569926942313496810125353279038705158072226055173591716208565077591586725828264228834203225636061680806794053305382723917055052813552483085829063284220583351799986308770099499889426939126235159628377077131910890206233152294832653448259316167675043807819627887357864131766582365128765268405149804702326884037656768622668557881367549540939096269408370681249829194590509353865427859386899050939659904134826841982396479797707583433404369253248524493794586675058735561039951345658729696076787699458784659148318371930086878854498293934772266438217486881680796137907265805410500450621133206117735666390200960914908222789327540098222961169589012687638219454129452118498020258522842884064455163281881348605776749899163367891253448195472480715154939045187590551970824337461764372883113271763699540844879836761866331663208844016620393555308473111224281199358738445448012684271155791700464168180886805949707560183149791850456462117202604520426826803822903850181370855234691373650892617071473050122657372811416461288082889809941485324948463043512186382450688693637424464312819921807017832124803765065962560525028294637629392353397750301431898798578963525521188200178824936845488006643004047072924902428551901131086001093287968818252515071849572736232287978005856180193274991803649496826697733795225396353937621657125340116152123562372111808411167273852432111028319155763065773499895996455420661635557016484861585128744746129239125679972837100826632082422126066256038232600848923199498357554558357525123563281609115541711036196577632508210185640227895086606508964012491442864458822298095545814912969228369285021946949015919248722763915905148224864905305957306672096307930011606302338775733274042233741714772491482867057526184158719543372690557640733695799346230219669686988530273971871870747086200200961190906425171194182585727603063466383183012523208242331448832286452714426185732075592682836625272455439983429811673006059609058144360324261005066814325312911126086236936230602048247357801355858694766412123820946403985499875043267112075862100073701784312495259253406852770380934543863642779949621140601717581779319473052092152094306690214840399376881422203764285040335534227526517886699486675820494459500999248255122603341225185799999058284088284446715271447840752946310009965107383073296807116697485121851846280255311751496804442433411849128415246825596533313216529941501291867631303646766386927547841410488596435979680903533728398691930113248986202353378503409308926520512585425046285669544831727082695252762417849986333322296202818755081012810413911821533724257745135155988142935741130714014169613532528154386926478831504145474776782545717761099785491248232932294545456253967309925234871776378039889069797589023223760272364401394376473134441318971275608359241691276116447135368654895571394291861083663506119220922317543471089384119414573417246594305137283587602563047523016698814292281479230988511855363743584938115992713723066774525976032829491215510965832548179689664044344287265016476169789130220896775167139704903537194977759416971327519503313077392414427924281816854669109776945831805586327194003472341068677492704659169750829529538240189390069796816092870538897180829627450100359061781452687429425151728289367653766801090185465020737315198177915746706612344837786519501031360543566271377833445259981094321662908821616178806613161350538728068162476947787786628392867000209681163092172413159337503075956357309681649095956034953052130655237518211198896940707966762152030531779574677589133559773354054945841191810153508242865287774688928416449430428599724959312397795007761556286961116858823036622911727719760572607592581515725308128411208975183785237452973983708719855930384980344600690337438113828649967507959324582929868341233585868749812003060009337801243972923034491088952324245243931543810195894515659327791829096463155752311083573283293434878272663439052583032068767125767155419046997466773101095593057102419662652547943736815009205401014900749538315679863893649887944369447182294415676439697917651078048126818469071328824873404308892430537799500552245205417025382662657049754059014357585576272042804521600021533308584444310647215160657109607631826880444467752656337643228289236771332358073146137918850188390896860205387014426661884092072038133335809769067104221183417304376938310285062649717705607443214235951800429109064847004776051808209384519162855107475790255280169326082559634510084891475685739980928477123123916294590040937999009432302244653320717917725901493428252794624303393832724967085046817267032965357555079465962143208610888717303201877191889039154998365952073295687077877083410232513604647394078551571342873097691411423417443727236082088207340816815860977336419946680032606547842776004921880301950523761451123283042016687066243269429213693646696128304245772061430849664373725962558001520668011318124964120433046186761565091068229490030652452796464510854040772963182177092559149464575965487246503810510391112480090395531038631875829813775649767761116020047622153016262663351332776019875241227554484347216958786821633232747263890095736573902904135024122943614616964485571668421073475971905624325521578072062077667841107863121417046572089096769569505097255760123543011622609989970609816602541975414103160805658545554001385117511085788983473496043815469190232286493609132099336861372762828832894468853130551387227257953938082939375217115325708107327586967893884770750644420367467472033381158166914375541935612384810835388557849230404388094794479391103345969920463371813252519649545380905556268597739930641220210964996880500108464454459760900292081909695440198907026346199460683384550412884741691606684538607088995554285368427530798234479823769325092364223427134181182170065210250184282549783944726892882521258302827696408895704662081810266571295933706042641701461550697782346980161098298071197416077423921677233046968022311870726936045161889436549320330068969406220969779119980462314171468090048306030773084679053220995045515035785773284844192941816998545446809297331711393038899204444701039725060986063893562841775985995577521114979867959420652848659405778680984540725184544578640559142287534033530661032321823558218694997495317220530583332532280608333063159909117654540667330612417305172267100258625694353874796457909043765208306291047102180060804957797926137742710152701811594442273293839006244876664243372093146267847860355431840186324807052908868214608870863314889014981610170393736985886828741700919458306664031186015472332318880444120344383985141185826755624493774784659355370390635847693871638675185182221827370379233251992480163948117686053420913564677951003929381933680489631983030933247909482999505975145771581524786257986625750340421416491323928666847756945273584338092750335087461935053923639058047017229622731535635355679231486393683449970180976568745600208331783765611474266641267004496829957693718980124092832399591540239287477112871365346145160638513775194925857269500567598063546174687311283326456568326947184015272756424684197880906522305569678374157408490212352014543065914427575904566279575319620934047588607717600137041045098914647100114921848752561887368344458043716947254571275322897873609194686668323289550958458015450411721259585846292260096074691553585579246540110453259184580356033284402383251094906959144856358725552160160496502582242479152446908607988945161588929717377837666348553385161722246668151044677480112081921409586034290123542853384041807856857399324205786344111201340094933780989079595231633681400903327149410548115693963121808072200926661277144493999261233797600601012618162532473479702711062552435016527833087854693806071970869198341728318993493019118240177522315220494436785535189242750146030341369030827876630369862639071277143416177782807316899163320562499110902771656964526798824583979365430553012016254782949969976615202458243676649143760770281001850738637465630338945993424808300934500230265574380276925078443182641289017359381358763429500212121410762366042297507045073677940385296557216122870534245810425095707951111135155229829493912711743410294929844742095703239176224648175078723686618016489547569897549908503663465751718446225774494108445299976544911063388694157145496912965580878647906212079899576595623837786958205939633872785617386150133735159049510896228023775484294002864074000874484959374591202924864063593031144938653804115175687718101160557052998016648862428564133009699366005976948026373810528482727253055857577849500512196012390235027547395632057881342418867717579940451342950923801153094361722784924287470781355972335501962099471358737714591457063651446564728592153168656014775650069610590678980322418872560682130649105533204329808325568366585795411880044234939928066662011503180401070050892581568328978041118773883777755968944821828750142534327572413754279928733098475515221654473214097823405669152744702994993376010733425488247970853526154809482375961674902483440259643474465785896395270248551024263582052216761334925312358037943918074231079663473785416944584943551758471835417998525049902777607652290843040548180080356563389696411153299811705234465159307748701168370879389256615792729930360084753176982797756029947043889974327882697986429528501017541555445927833933184354529006740786115168166833248205886615574519411121688396583199549089645672071372746780763594797831563199344398977964278390964874582458308040283433787629672815318797422101380857504581274578398692180644319260419911125989039143384712978282540606753942468696117681137940772473085989794720102803151545111192677930007577620222279268644362979721092500983745283085068356661617745022435108313720208061725261598047739499652473995254467350404947813009898100711341305219752683721412860946471335553956375856426520563989226747330726577394938842481179812574584343474138058192482326568743279534158399311130317304956589729110701016039979219137343982258381063387629393738412117926455750915378069440431835966184941178984203410837492827833493578449758431588862062352034187379685226353369639945895076491426616408133322809360335357827520726012959790846692956642071250580095048453678468214757010015160023709928450879162172281157282827316331484215478115214183955660014398404485333301599565347444345072563753894922544312689770901711018630604405190997415958398831011876023990006615505959840785778156447058254204491350424159676962616118058786990053026496751271338562129010856963202990288094340385433731651905611726232803482048650535072322649746924170014314541625313353638124197624985679873329344608187123211046648909684963060125494471321079070387987881951097070705864183998036606430367343684481203667851511090961579565606281000759462924728165297222753845919632889064835257777907570838995168784546293874074235101069141060760930644503179096150498342422503602446099782931124955545358452880566723490864930851337492690285329694460041975867024168405159865600441198786216895890269886109884971549733115079337119610194121649373337873894169381793936873485327530826380297619929079752002063253488971565086548809346694522307755932702652493221538328019510957489343928094669565112775255023142736201681124326712992778221821603201618052566964748598998790994184629012762815637467766494804018025020763731039482101125499230180705958245121432206911577331112196078267893360607742602198005725388975488854048494208594857089853370152206243659375623490197532003178038298042035518343958460816238302119520062432513515602838391712900276322542847601085716580134839595748451523799135305726308592032648185957785468339336506514447463082706724879493413262608618009826020536135480043939164928985205787777639939740021233084889947349665258611687312446462092372009299414812921766853830260380380470978660786169055320178569825327602027575596753742645388575616148447942181906436571695874504537497169900856291652247701334522343370133167640881790192185220457149683677362579908601745586040659061198592661936884199144739995936642728335411497233065223588868770071900151304977586617320773469736103619085261362131435438879588348523800378183154486118014760748312493648582003448886257260422896414886926335579556878327466545336604186174525413083589589971632439512216081165555218453781596432820973361652454869796977587117286632876941816346553067218558760913964262288035120646515554901352803550100731176742290570735321837851398120630588304804975723730179840336348658154544267014469518206424623476497492899502608284080805811606980412464273411362918025393905263400612766641809574066300955673171073055810029974486135757247382831122200281810364372021256266162937817726752507402763266827970972933721101263543350561624700299721069815536358673620130049470868693759846608270882261362761803964124608041669406958008166427625690636462404171058220482095219448317607478528381758452423674489664846216332459321621871309498575595190447208187919920158202438533668686321494950271547330736433684702744823890797109460371378888116481347403044592419031067330518424439227703106670846557160682530826108129334337644108164221498492527633045468937561365462268265857517164648305841192296601177803505521745748683363966914196014311865689416255352135784016784967735743598164197798113696179800384956249299241654847119194487531256526066558960928244871598016402639601925497378053804286114331722584064438373493045420302206080228852597140962927719989443672918874980325004945666119260650601180725854053332132730532532304001664603071492231873933150954843046935461103825955017671565685686530284908310757383781341774302212529983620050759648568255983742611601478914732017767108146551258595424683053920057913262709467736007020293038791113308067533214990390284220086570101457875056010298760877129734532336532074022198894748949473301651073837551762478413540346080680335032761542280425213029899677628473664770351146931550070977890163660930171206130980534994139052644472741438288840579530756947919645636378603391629460222329920594180706269208342864223622133257668677681591689133363296989909243180445709372885768753052908503474370608616710479403733439980116046011484218007139847607433050121291871022089476524369179111778512722871574983314244202527845196365845902530789147261421335833903790267922251552686869852354066617998618877810902644681654861101595110947825840774528766954707944228968114060299788915630875177491734603925029743942636500496676209337921820565158182855744823536769422634112166239374855262386818383745650096913023140222098714746686560174435055451853786601352869348481638039593255816551552396857446496383743882842339459555228957899695740673308569040890311125418601884911028301962411743169169523256626272862128607816837974047600289891301217376109320108332844397421602705861095037521689976146822568335376870584764657563838948593474247665488542947304829948169459249941498903450732041396510488195684603365112544859141499168542300294651907545501922150514075786316685770862844939691930746816260619745536041648965172129753353826469395914353930287019706981820580805988909493318693773442589271803561880760498499960521994672371505893337179350596702184026753245467715976262951528920782273164485934584719169913946687036606156792126703529005441172893312988012740675360531707797811681173177121374718055335929678321280454293586609908716460017410653112590119384631599928795853701084344996194642283444039574955372671627467676180544310325087304669713526858828498918975731731075273885281067181085853195362440554026637889282803511072410842447733080555755407254030277936762468904436774332552424590960279470736280959571520070141753051122985164430495048425420214919239121420618689545268194345976718968652716315411694088025559779104922620388747465794519955301297824047696463815245574141658919075838548589467104303287951221341578206278892946281415117175579955784994952476947090670687989157911994737280003549541953219701419710176377206972267064777784924509747628761825698035566063803436942789321695438246226359327324788339963450510585670858149665206983236187313758548893847419172822691226415182787151995069697910523020005051757976240163306546119945298347224004310884754512441411916223437916591286661019377308922415764511448803866949329695798632971407836631276588773908794869357934206476157076853704800828099151279661087620745261963405941556093939549834143693708622501358705396352281492315020483855855315759391793210446572838448256111584710619690900830051318292916954175662324828776595062069482534452346718224481669654680790116557572505969731176543297785563002439088670422086621678370486676121215917345298489828170269582631964820320006834838423736370606311030725761780917401605346811811836621490208488833407147141007901146773280335009504381312011647730537102515025666820223650011037708680568518786879634850776288288399153378636078061082871742482139019920998295213100132374276829014030490448871174477654577399564587835173102313467477292612357814079403140410834412616495190301387552212998896031117052816323374946166327410042380889311498458849922949459203111500840665894687689960615642827998361993896532072779363687086111643756883790682625017099460299860376122969131224240147209485514099949962875615208565644194870323766960364618957416573224194791427841044505922872042632433506617692802477281439946588386249609062240905986246460150579312357722693199085117302535246199411813649181689454717274559969306276394674624483371143748242874674339389456320000061613492847626947716106513904026084724121877215276412672412317801939407554956342454639238110584351080143391977526889992768908132883935174002893760032379181516386084413433042985997982244064536856027917884265543134358149290539937829328526475358387185483589276289797044272602322676558026251026941605227841373819979442437280794282152647073778772773180383285627344003743950842349448125803727566302088182462255212060480332173724280220627753420750097759485381807790420111397022481567796884937340975084590914472435308471560460913041511569774674976086895490570224972075238647811696080352916001501511630747188474747530084958123567041003071631419138176693103812032165957040419017940709971389378427206186830696483832153679690268650139406414887434789623643338032201153465079774606515717955790451889390040439132692489232247066556930499007760017893471936474916064644320010372109754832104132443589996852686528528368436737833730526646881271680113166347762806132305883185710374051557997028238600197903805920173074317861592408518715647890265921822295529899193012828348890599966836477131859781727999080726678128777607428415260433056068725372155930675916520936150288113130456686081748928740776421766096647683884731003433775387422148890008923232096667819265008685233192236338368150527786456227263418041603095901125914311836116585217938666533079567653433160972137155721038618057673575035794089025414277161458045046984455783335691424640105377016567871218750391124999527339245086994793620237096532646482979927881023107579941348581992648136785039402878007061091156359739811886700411617847042013254075650926218217553844939892216945204567714367692065542738085065652549890805216167008053491601383758573979166573473122919704131763350522378063077299393468109261314383031686051168326321986593613554804346069616578958558107399415160696907420204112473039405293867561281152004967870979162248040603133852494712913323288130365659489319347219363371219583442428476764372987438151606346702652316466735695668872031892015156754592169855486039306880259905598763960399785589137023216090050240093557459668447982613972323520168299769007645657238264978461494355923828558004854991765905096349988889475253400589399703585920937071430831202626880885820319805612424076166551963001740849456156154289785824555369249291490459841102187580038993344324818452968621968370528733410260486335972491607698917764903502108103916659739004768952370962226461643529471572775068007669086968197502330296662001708507785809496645945370975136163515366432046631774941084965618315173031515726231570717902439954983308558038142554715206373542235001712272653096538248902152968700069825869962886271679322057953782175576204585114542786768160432646416674604587009810485613583541937029629429192156026058293492649810105776028578207507803293149385278783415643919441399138480887387325909713073796211784314535519087042831503244867785092900642816172854000799540650052989815676318205617169212150276069241879635200127648598928178250647366440665709161840950983953070489820392593779914930458444735983702967161213842951056055059998742285838098135473240672647643020374489487981398434655017017899599128684119572663806759864713375852773149610888192104498157918731556288813412056657124602737438981382930470408631734849043796260112009198986954489666611055629863172013602803653791109137227069033453294269495546761124154793254105468919802505014003036944619745649212093275975102807469337720143217328602705623394979059772201970679734294865237022491989256682423474840546874375619155455460754986575038304124154356514057469980919962576629237094146240578490654258462875679364429523310601780957788857722756768390754535635786292109706151808777224977197973056110165792941669787241692389961255539352884024804970479719045150569586528543619919573362733582431339356659731742976596407811964832495587766470752213788913957167974123217255591113141630709663181419196689504063739569700751222439883724474210592514555197722728196182186691047865295380639677162292271098469842759767858392074995764004081849609110642144681227959411257378559248504134927483453530494167489802586549606041603873320431361351242992769521887903115368339105005138108768044617567479538328405238114589050312877092136534675198305132285233352743384418061269113017175898059997326157964835241036858390587080369510395276626774618986997295687299168247576031138058297951560070410593043805951812049348094698964389790791415909556191573424081117357940995580047266183629763724829758719157032708186251893070206806178607459605364469665027509952834796957905045584290311070998702442033490087203866480256262989232921535957564009337261754722837037640314442141413143830176057614546463793790959862759918014913393161321599980580316220950669296413387367338264454157435522731165779974278170201516575783882962973083978874911125075592007996648622618165882392958297454733370846126776509511163547546663878947854540201092539285378520010271042245177747851400075469562273764430378514897998706794738542456469083139813769036797176120185426322968715851200400347366248318359161578187591571011957305183044796898019440917555342787822360680422902927425827928647246248456730309780684066745980298179289312702423623054620336050374891569018330020888846062915707539052181193900046687275729172583262285806899353298387371189010209741720555183892651393761400071377574147718224735602580336029065962275376544093431954989118294651895286085626005155975184047241629310921800920509403971944645253689845210748993900733773621578098884190599600512195634229770083559868476410481270095981776685484380242145356858161148621262430614552833260075940758823991468881591226767393767619915799663924173853769687531274970247777200740054442933668388889777897448039845323446437383697764742275838370573191906443534620668215973801016161746294620461606111109873415637787341237078338239507636171381647408520780131454604402768164656034038727641443653077357682782513038531547977094576230896697398043608881567325387225984220283216882485925264687792567993388950353641525752213038443281125390642168478736004105412297355193472119127835224409558596421720648917026361746453297532872458884393328829437480171471985556772610409520468448476255853332412926839316268469881980497192222456861562964302595872341148518853662525793197937138205259331931577583217537105275682974864073874425002851260742493595165905149161052278694724828411363792943220562241878590786703894925816074655983218430085351509530785445643566915942578982422248738276845646256040387082789247520126732054552121024064046254346402518111371380921545909821606090171018127411063481955701871345745890180777701904832842748092332986739612053435976715952628273209508761957420650688741784361586652065388723602982266537358122191876087833679668822405239028557606145418630888017182147231708484028035302462711531506372828225669662237435193591926396982243735249730362273868923214156603322983520639490079741883194180590551342848500254593712096803547218284196847918231906424431260202502035574271009711820467047711311187395681402779054344379633653119221827013003263167981811937031208517867838627041487631126853786233946270374786924481337962166003025312196714211239605331614970300054460604822904117696921464826980149292764839064274194729434203057723902724834291400887965924740227724732280933811315383630396160453172950548733100303092181769111760582401919223923536984094236517934166554130991468279451079426522674381149626902447107548005046245504225460171100634373244137443353835026883435776119124195061893612853736495776881458144929830486467102100319701255020863088754030075624734291078711264394723012486426261100107257882002334296446870944382076919183182483079965702351650198403870773105648072772911686375842026782076073125391304679315940973633701613768432720944496471656837214553800857293806642290155989709272109660135013450132086688697828988643793377377094486282654055644981213743455818773192147415224755199109477321589397045241433890361920959035566125182571798234965099005839985993414312793442675384723737109836100743293108734349463036874118575708059356959863528290758860623380548031697613177416330151032478497789247520185603462467882633291558106401627353167803111365021789722293080159615199782056909892231881195513466825290860829627868162003196319246812089612497568769141806537989938870273859189118819156041390001548220550932736828377759961159822295048165107308315151475350547676356323453735284012001240753424887088088358550795636454878290601336690605237683834456867215434562448796572496989143031452066526270023555455817075256734767686168283167716433734021735997999136325416334628457163507866999612794912429319684513690479382012535338781545969675587066457688829684800361600373670033285931765229677462438150629226640596201944020808881155985613225133613164712582686963111702772511125908936779961175313847224305452860044376416780899996381129984729225840269761918627475006486600306178960473559143154746206154181708004028316281593994068926537222359602494184068281865523643447275260819152111427945551771911211277052786441155430817806114610211302630544705932041045228511836680465227591354019855098735928152634361136024179670229109260839785189752465428395502440058854535410078626137709498195915505345007989110946576805907822133168462336645374390877520360086720518784296518092344113158020494100363747001762785286025341506749068795690161270361116068675227998936623444070617341001574323195621668048125373850874697863621768728601106435492391335695898164827104725871761163975167635996521354176303843929210660780013466061390130976140642381540561583011042939086754484797975247278607496299695987145722887025934493671067186210441462856360714535785169179779087455656735914086388936318895064104187385027402684031262898165434550690652535045312613073013006198040868216967596846327663290325588471328562049955747418476313473237335264264211199811722938708203379382714367239647074465538288776337633112738410161386347713490477369519846747833347360906443772585149115471523098021776036032476387153158354593765964794875670994114119509281196658187059777009499957001111052096351209425608946316700150872555945171197866445028398157251462889350643101912376135416197451840118249341553505692318134330563082344686635783254607683973331469818549398421616462788956417311183780334643565955986306231638374561328488861764701420945329868295807035011848072058287724262791837869085477484760041129719501658355572776414488050349528768342514077987634850137705520359782444118487378438115365566606580399190498715535679301101151968033757205537797860768458453157136653409341289294990674179636366421249373227149154856542491435102044596457023609037775625098326130499716765501542602099021602743277973135590427686376523252159407824191291200268271384620817469652535930228831746264529972112613096746522767828885794630041909988567043211184006861750437175362099346897239155834947714725813516781887946917656952044164270888316640544614716832748909191367858319490730311073690271024133463381037611278197121917135944960183059197097804975644740516402747509485481252979539331648860005750403852902162252055500606048683634551266697873916402350773883695074578353293001906133102865734965835341409443834099915297768086218906423727970737287131107156838133854856650252900382144732155415988946746083474901739115497264691403636556832872018201328981572916944687658859783762463342470315513735701454833789169866970696913732722061133329452439583338612782866604429341563993166698210942217830333637021287518352445770005731703877506952196864569604296010718894451984884266379992521624928067613015827405428905693939550360053850963159784554574238767311817863787894585191836227793579134038443182790414652953236500023038968400749202105260376186843364031751734713211775312858952204262124269278716997455410254642542939843517859705704011096185817675183943443669220413028599238931858547011638157330864160103571990259337032672227198494714622909160375523960784291967571938405834412122698586728232608986935002840573207901860708078937844805273533455560164411909866437996572999054854613151720067718028445191001681975191925444836030377535163121012139649467172352331624444511715723973606618618686591881318180689999600562299762381974084796219452446735317766008799119567337104094025355919996291739408494136914618623366953549854758350718800471103032836984958377841397115366932549470821785095530379838326130520074707376713988651333466842209118992666039082458042606471959127764749877201802078259034485355400835229295563291907702421587067453419861735935030781051769629611637117541584754764538393084928924093168154198189303921456894762364371645966440274082393583383861530802567670885817507186605952854800661321551167186477467426230777718324360505037312733882301713515312030939417056940841023565139434555822378337070371914532602270343333039870270268017326088389800196804956133709169942032491284145004827301066950306397620903307428611421380176039434702108573341782502074345344861426824031897917928616948668881787570988253777435446489541768859437734103448376487022711617755581537631201101394187954936846908073274419325420425320627140435844781473283231829950373026848734780199003019245959919016329775916044016470752264168866156460692834577182521751449086487326393796917157388051988999466826177876030580890521857767314784394252291959498792831353450863081083703820721895158479910257347737237440321263319457856557702502146536846354540198503739271267925244020211370032855443051448672341472372894508177327285233099776257660704110809356638102385772853177580324418474512092848575864685192813321513219179225472763238687485597655855203925781394692219850014051891371872963471310854037377999193443961305545784968783903950157806400309294373207205625650146562204349681873630335453120070493601650340589098335611761982622116334597294529920784087937657844547930536804940939827678611895654580231111139970633038827745839258646148956833547842783214922861882949309376998963315001604200196599389153459847736463225934547103585416380084792232317903866975423394861819789849912851530969229205998335114741343313439681262444352554791533462498255250348085706185097388940773540070078757299716230467968617284154813388644156294315309652822328678460887357051920635892903719143663329444948431612980313690746412200264735662107740530347552013046527196551273026085568289679015948077837667556300822847616816047754198588535101191436516002302995177328158774268753025259590595844838744674022712216888708851681459493788923278569147448679156504849038952863507796415368574765930450055823209985201783068024856676078462871154539748092522232521344074476981702763517811376145045832694878213123537434964264345273453828629903701572033484336171829999038502057081392825146154012292722775543051172874729474790748314054684218334931771060098011057986701359059347101103648514302556631106359648945379228606706444726090607926205676579254124167438021879743419553852335259629465227578979492953028802176555656945965172660507343137819671566649998899751740525180738589859054734296794401762585226358969551797851044629574596771671364813312976553089395158070474111138049823344034128736527396266697739629745933882993825139341909540124257222262128425329069644498272721121548759267186511790560206050043919724441110934677204392186917226779074217789912981079313772503128122574739087429792244646872616960738188159422676277195477376262307053064176605267252558388244621777796238774519940944630998913528428996562945766154866416102050177344334870844393242855490806864998824034142042704843659051584732403287017633541880629402361508316602783289082982321480684701422821944560887606575694042583557970059342863131277569065608072421108194742308209256018990054401032911703285743809446275424133476074345182053495700824371960169318327561698086419902820245103987490178440414999979708835960851195272682856095978670453933740787168404683454143739205222136606970270264769113281562450849056322903460252873565203308119209959885333788480489584634739290654592401160484565499203128308883834469996754238573480399583116888505874568037344023935626429327308708731666098905772855297390253083978893157039320935763717174874790526460825737966014157470618179332700989108224132754633138619512339367602330303796940438092812920845595861556910989165707324343984602248470339215540132294558319101104223594257024967501343778158756381409715461226015412643421116136110709172149704720759865328930687145817278855089762870362117644083034742658052719015806133154327773389341232069888029474054588282038834767980299016164064280543350490321533331778937598646915476471974444388160910344114218148442909651563494116688785545756228602373545713868817620421886916134691419266642096680859537697664001293448736045773213096716168519746533638287375099390566481242193718983005343549675835707569144510105704186626910495610408823560311035408517822875060212188229118567975538169626411209793188130884009656046299559238644132233748439239100265880030488942723080733608497812571862883981916937607277433255270856348624971289128435840280376864027549312783947910182363469293479293857784957953142104752888245217671150598633313599423214730360791189715866790425178509315487186789765193060473058450339080709229882993113070631751956112021908464239523957599240435080391736343671255113508298526331414520907057724453758859424837260311069848396189408283925910607185388650493118922295706274438286663230885491237101469828390052708012196790374181023405076223623978209491846073301543584693893601336327711381889250579921965130042661181644234122443155967755465961461684440873836494707118930612577457025887180596182801781109083043858779483844948078247324648531336744262814218022458122039517363656788579118110511913014461624492411855930734905540533471552486979542901616325801677735338139066072385617831383511672149837698715447331230366190116721690097352603310515946347744313734240493461712114973688884484584097217295689014845063418586827688357898512871633181119223890519723231380471390704921031472248489624013168907638908485292045034169147227234858075951475334679964601138700215894217608570037740088908753275290384227431315181453897155539223671300967730153524953934985874164255340760540335623174077184736849425242825201835075381847250479068874175261097309513862487930591407868334485051900215418859456718160956269679588556983225887167925667362969889565855100346220756278755857610738425457903796897988512430685291008110999423468865138764570139888171097180083202407428027321245497120300073454519345782611701496825507582777883160980034845186389486499665101250724454076376711395980040434457880894575931571807423238393531998179860686109141828285151717978884117513542457219408334011581968164421966350008697396125220347831004067646327394712442587741231902348489490631147570072457094609855313876561568766903031074478643942995721466895439702115423513808505785365534575530184185090390872466557611344914287657784961564121542243919809243052709721324075908192415622826778585164291672033858386628101617197153046960064855079783105076974973682546747279427230392666689446580185780323557654616487797253257444471788513779625800863505391325792730374415011863483407797057413333775284803826240018177285365269530114783344452266341425539756106259014351390882223448377156766817378302504942993755714464058503625332197590589296826106556060203146335154605250672197503590346104965861666289894998913196650411191528475134867962780901343835320028193253428879565431855516147806196741209882082261631185345771420898434821489537013458643873755727994815620128831434114617991996701862995565647361948623422519138604356539735828075077295452045668696899752146701374953302939172721391033464585067631925038332713684642927998212983233187121893969911976207071199443847176388314231624816622682755317853409219147987691111766493295450777772111285988201607405984867319847810042302911978123511873971772078092231208493450347961967888101707915252057864858817487293038946703722328507694675486403491950444755510787825369046490191719375627576801968088934036251763065205445482506601631714394025599793927942598737683156822431108354914382690846327765252509705590284366008645565752544233185515766589641556772417146539802351355846395657606699736194147329424982787017221443392546276708232453288335361460511975434620156967814816422104835300348124716212576608174260167337834535132684967382906749668450901948534541167321822812673393338340643386226094070007476792856139046081256422682701476789272191040958031762050751394200565992094761114958463423809036645656052055613452762839428860062328164642805248160732398471602932497212701344790693055460769165354899679641372829210422431874766687737593886595051551266443989712695007216682263986864002296384200279834073131377505963794115228841300027613788411267046350351781375482866858655618660511157852837700859951076850912801621364474993914081706821510608496874188309752427606156652808222585143922975192823746268176239246914841830225814780541924297697466013737593647212736178880468861209769323288459729842025216649841819059689556456845461624931255265352798056193845837365593944937158591629323891589131651259699875051151399959736537424142485415270180996541589119329510780661577573543463971712631234405021621412822292804822688563163869185033776723294320042524830104021737238936731112629163311686761814325146541501727930046393483521323361738261596191840809638281117166750020168778623276688566025333218194286629605474851602037154766459756826153932174240026783083844098616472782520842999629011257348761140691390820976940641514133257624918365891754543049365987775960175474520482847046979008894306628526768030553528993663795989370845181940688744058285648025827170318294978988265888132780752204669882410048293188381007107285925403814408785826757585255726306767645935741567008446678401633736425237654382777299149615264022525474734171725564946150925988640604152314394468583690526482521055234337671606382857374849498703778126998416106783314761820499514808790724543316329173211660752745886500186908790647405846267433934821733917020175591528452863654163754223179970034428145472508801638824793353608246459857295395237880298747963940860460538991720773432490409346207079696288659285138126845092855444788555604867618665383387083510445307553608254003484820810092660555091240487251157737788657749249873006218236985189025302050798355237905640745444971721328382507342552571993426722439648631041985476811366532343727143392491010227134847062912878156629804140623724686522434060426707685836772209055287541965874986613436748013815785653971384109458489758377120787642835782045033016946195541192296522312304165775083294681432035011592767471417492721506542311138258484975560182321185821210440293091455264148046555578298202390030148621309449769925968887680195799056168813024894862859645973116454817604639320195132844295525228379462590681931527653328568029831429850254511142975340621797318901629272487710156490370946605176132171871040646617330650886076904693826256283884547295271478082125008028596931451443597086434975062306925071923872741872116221582988991365823211921132699780120993918749042552947963235433628924220276336535244071765100892807621775384325536029614321880970330425456306725226005797401625150432466265833212343307757098795549345301426042106782977395454777194238443650120099629111134375085765426955516092562657912654175225242105704475032309139862005858529175404727424817672728595475127795438772087879551249344647988013357175513858563097595656749732600308394130420027573945832185148812410687939789706938466824487359188897258161517697529131982327875093460856587183323771719157497763990918309754631085849899254544172331075933312020802342509321601110322500026958374234168905758734589751949065738988498100153378498821093244113968107590331303593192349543006518799194237959849996167055936162751674251799561349075275725659308055507093757110951959727565034228082062550255572240296473336866381583969931089076875494368261069867679072647476724301825196681643291369896169439346441697220661081674591511039681137029764899456786502633177487549524907857854534649957148250031270768872055052536080270550452980074294922834401297399709168726473210413654439966014747863562511292899375308216336467137927638946804077672586420437029270910062059893673886337295816575628809032666641886914298997116945702875400679125960133947261101332315107835637320977962135046762501155838432225761255961690575732140342747101885186189411910959968608661558036573655597359899111948044315410030841306230021835933820407231342068447257552311828885826167989692515452164215613993038648474868827488641219067754918186454188930096119851608102213007814630868568490068803596075038197952638193373101368306383219003796809212127480322573310651153836741582797117094384319409423277003091201630664580404351793512151867616555975089621676728412825405450564850571772872520425123474369957044506487968508818968306540769593650242377873183114497264273290459545700638390556079097947655874420758236280573926293360307605165046676547698329657666943766067020838059682659737250022948845175616104914060033258349474178273398442562099232573621389239396295791946901123989781183878299274203333191024356558991690817397202055676257806226829552170647985097997867459560852425560609987124388284332858439641473507221269767449195237213193980585785099191386258531076842041872149879163782542652096824177727280318818072518359396080467742708852236639158562792253418414781617534201875103329416168473481303304630222990258558286136443880235798159153942831980884292434793270925560844051684784149409075957839887881497172291358178910465738409145998388895721645681608229140966387481640631314327665380065078475716356222522331671482704746084404470520905247627168451720739274106905239579619746320609717383525189538257056706813290133878832435618464416710276651689165131677853511808168950269063241075102690149589177736067681026503998053018231120255943095827701060504819857493479975525018755549256306029644521168315850714812483229359424500159564082052947448969765160689218341376535965528999800133432985686161312836786150776513439656475187904703224203248625955836819309349062186040355373341782373991084844154805672590518457005121088013487726375705191200350387204683493354753655349589698068930120346254584547189340794299692278256828751594164097898135285865958163524433256897621187533649460474363073246053142502415554875713384276985028446910335722103269399096071810095650371798143918070610578206855874166755836097680033239288642031833474568880021248081953028716401756321105191913717008209299733064336466227618686415633054501753295980599719178206279654834467087013644257233196986367632327343533327707041415952190690255795336638488123120169627086689080080564081378670053361935092157777692921773436256496739530826053339646087499782354208335713221744395564832499476294108767299990746389986970289901288119421033105601508421497641868975120423965175907162226856418091750197483767697742824600781000578649511537779110999148115357173590443684188966080786399022973119647585891806285066975525664215904753404626911355155963999564747584693175495974645677346057796549598657379085806896048765054924231746157487537259998179205818486035938663796912137454549631289212838238034691130553618855662263319705288246571256728404498902445448485147593098145960397088675996909164372800412170987567834485208191455602370589593999097340107612256331136554048731478505346739627659304117774827615475987645343095130058564648820510366437380226591458696332842653591538062367019133730931752070735007665709584438745791228253339891673904533444673085214081199965690303414322120207203224571467816498970487124521595392956799772429294685361729695805302893940225830629780338610259196122374845588989221161855278795313933893348679819650763841613022683000240585731206968574020411457335613954306812626593416531851124719787755007454239610415589689318794558363738914422174672389380770983536380441475778266918778200614470398827511337897321050929790064707066658453344082346075669672085949272517819727683532806596027301381042762183776313656405436997308004648214558334537174882852029776497437482636449683115557242894896535366561181150466260285104916831443884919127889510789716687594105609299378069939251761054440840604834747881726497983580374224902482545781267178684168614994021080062775764797533133472139966527739477549097534664994586865778210386174869982867463507206221914995563741546626756980467821475617217762800460206718741477458888400584519945598934145438347493444638390831188772052961446142309703306987907285741022234823382742346484221189334606447542452742841938103396627415305228680120288465054792958207495173455623810041487077443943689412639797297427491781772272414807966021291772304538640346051052274141712050992899684126297145712421446506663290873897301625046244197343119069850204800374096654701742380187000986132255938663148096967855741613674071696284659552106486645283175277522080079029398205993750569676306415268848005308455156714404476843350456777014395923695707670986970262178453983581152717924750526767114750318412707253256520861362559299687418816318683778919525349261028198277047499991505290436304467168011406023947964417261881820224724286379632554369354544972724704720468415711008084467020484005194437119919445727987078456857816760865093933866712301448870451397950945898789614172722155835436824551048104557261983544251320007390437514448656816147922733419475820805311308451526522715286937492096619936444299426446992779318387839123800557851991190913175404683122614633296518624708852630462732523827078697332805349523859298260064129545016985937266922445723080862235689488411248881986804536457091396253661088593676331569700237139979028810994369314763856983427404198788911054042691993398298873620584241696000586939341216462037782168127624734464445645916507099334013919785633699905477444663062391843029454485138549801949840637920773251057286216477294260519383771791073015892203338738588394029529561252534583113254048859647994500346469325774623128916817302919253329381453321962657800773618300593288634427807365584682471547813294582184796373617065556935781519014140486882722999456716305467525300749790131597424336725384675821044363217519203027981767450360592513649281000629339961217583381373679902316585233834552907349064042460352682233168759741449401176214634743915346042505591893511206993101778997235892643316561250380385569315529292626031896563731298684873399328778016498442229910312665074211937465049338432495625166293945308029987729022397192877057919925396441040846274461939103929304811526285425953745099924844848362874945623110886517817177621043135196506948687538877113624981315497738892372888369229269057069747401878256216151796912082714866831970399365276661408431816870002863790052984651297032942536687968722657189691916861843737485620252141003195548824414406027909210231988173045275655395573127475985331001625012792011191523908252620026421617079156500312453863805641917900057083969400916286667488536124381233397808049476248914328202764890519526978437461057263245198792261289262244040070627566084477428581585590297291649241761770019868248675988353375852741730853144451604586526724539352412164775591004464984645817945745956110742552194507496207002219729259395758085819431697907560726543936270054686402109832886092741343617966541842246548564402673425145449554516831245230349477298497025379826883744943566985357765564802386426530585252469775962118381815018884190896937595353337400807285728751339082115064753674336195077308451771654234674276647861863792308448390526858194044364288685416345059102979941514743226695843391607360989776923050598578070398344955357649519417185861798716466161504796819214007079018158480455601428330910865097419494848334330877945222339321209116723964592559045192506305802793802914223535938887786936748295432084817238028928583979925184798938853863788623900625846589804350119092078762961438126758127211959373606345265157768689301788091291210568331901340639348084956569211600348090850357326743178517873580931834316889691667957934691388538363149939300282529110861106748503191574615497195116164600832626411522284394803638671221597808651539580797284736802189320803453883062081649669167316032384837743498597169121104795266281956116832654145011707948935236874663611277276235901907810285851893601647664301992320122623133789845092097370800089280972093130497143880028938902934944129645753501568134440077763454941070010074540204279532717513535617939504884036711123997110902591348255724634527731393593675241669837212673644214207867045102487155382235389028514239827525924778392219347028031195065290693954435198180095534253881332403430119742920948969663110243761689325262774652229830170902322679498588505342160262694372291394732630178418278349701832357716960197481842390796998984852803388978960998141625623966391627291291586418432593363581720231799469574289401563667868002932075612526988342033330568588683235831512034709728109162050587801353892888287202674065490372833335743010989815954401417625061533232206867654587255108849445957288105590035412945680432835385873850919446534567231403891268844731481014246744586472040475913814705926691031306318801022649887467486214168046738751095955431528418310879016207487397068880025085781246938636438641683775630619630204568962766420013669189503009667843118069978556030853466970751351046360813810019253578218990445651625756903406904757065711509582523843802592427860744429645127197632988570046486339308494322873058411466170500172295960268173101202647016734555084047795452139101296833273953359902356581411509873161548291576126762063738018609845453239151144058036668715924351463523684772355227768969917000799403374070073224343991823877589831822507628050058231112752786898441125158826671025271709304824701403934918445610562132362699355006216662139729683436529433232036552903963971215771137344640582237264725910413707089074896065395995352303829502694312055182035732998483029816732089405931469271258948667401227420535988791874545792229980000630952672632616968945980596947846099362296695349864713066129169917284905911320529162072941773741704334272115402954902027769754633374722115262916814420932502033948646376499062533025018016001581137955523298210061333080657424099516939291997918556568710633111303486302008551373755926129710770832077341338202156546482256035918752316505018147045818686534546454968167035461526930033850948868037565027586035745177302178172527151100257348637200222388447200045997867228986492912599955313143164437125916241323775439709380559588789267812826199883405686802521286395163949185950507625573437805047971648037116309715363865597959514050423010055045417196240563537748866199409040451798587944937769962002848978726745062967945587094406286847020728520755007586169870556663051415455654830191977867036138661229650159532729424974186978363370123714954815202667251543677412546044297570671504664224758463565592379841463776635092384196915758769471927513744109029781879656878246205214772487803801960250323428962275414728689767964638104543253018170795754617285587912684732792704251701587751359056837355879370345624767343839772530750134374104390866548567453411255403127218479478236654113275020698990588212257287367773098089862980610848354123144203668785468909656083819579345922006976840975487423691694109887472324347664702189550106553521956777830040449347485458571248476667933213608174756057814957473147702440499430495119434881960149640142025911442966854024898793138924185696405013488746662106213853295781323122965721812864727130731362538662422984042718375331725234853631226195999152195793615894978876423164207164563809667611451896777746546646597394677514996487111930042690125217218116881951307949371401218813467384270874092743321183589723737131378628134467457838836073723746692616720170387204061755682212011310528204907344165894086969885202773384229702580828062706229161362034315152534093218406696103959626684021322763316236599327567778585798333264622059273987730111586840820800486534224448235183128466375434087452165164265942536013259948029111570795867017547156801420786983321124237024855795794177064604946565719710046128708938160179753390137463166383593420295814613172928134676855115563514075821253105034024141758970138527604136205821615452532572472254611015147052752542338830821561646302592639391250548725817715938034256803510268372595990157808788242649310638583210967735836379069750902802750290373727689770016910749162240251369498573278454700902253059250332714035857338708598104163271276681320064117547574921195644649665498286830995942610941072771467084676199716609137727521876163619962908949159779599744513013214621144635025509216165036388161567012327756085204764707648904589786378550854583193481163736809217120896069042805555365384587282643980551861654888219953825847763182131465735373041722990854437279300564865503935379263931331174459462863766884457284574944559192708802250059132250492973365619647504738728042008135190106187367233903192899951549173887316439410024594207359999126909489120591451493525541254046197129813360971220390167696033767358273906153014302491645254784284499054798481641234554270836378567400031680923437055828125483716404660760423467287017626264978936827738727421560559395580757476496994154310892363930959174164120907674197292303150610734987282074194674664312863041311587381251348035175542901951487126223759870518279000418129593316221337490898490764049248156906649213728838694961573714238256820601703553738829456085917922253519545170389913034270102569682486826480204375001532345043051437939454690091743506595834042563309618655716375775702949312749012107586512775494490984209683481749050126425877181611317313754221646670031385874892103682720968807253648106898090505053247305805483143756281870784984706799688517002361201253131604830444998279173635435422538954591265020910300515197573080298165328876380825892482757672538684083216963384174811513666259045529949626307548588815889474708748077495829979452656153856262690088783654369954436910406956465364951022250080011326773839142105183100533881617066243796746041791957830365644298887530437405367082897687718164208132885227068401495133494531175185663874891976633498432743674171494088388945885314294228038933083267039852038786450623763068258492438817326375698601572576762031312633711843490922186892835795030800474772458134683399472397421912538454968929218440250223359497550030797169994318407117060097660275993409658594933156317620260693093911523069956092563349999821352145657210891127353516708213126013295370022747822998922996556036439787929034317283506491383464373596526840567790572361356538306893349940973973772664452851895920057111373249003197574587567437052124875399198987172718882262794015411557585890058965747107101848688750525355458315340609768109497307553899114820719093258679345192043406233452596456273981430190638956631954171071461085020478276859060437532697831160823112374552454734905840955207615698445222545643136076185491174984332645697546906079803501494229649748625793688955222289311773303306703790376490332135061008847143014329886379972424558312572047568529918645405545663752457065308859172263325861340567748128483283367847288437294063364773029934065934549299096540149489931262921251258362708248632161239539015001035620136216793636692014877039061425836401984025611976273176999796875172059717165191793359233933699732208211033454645887519314968363502120191073851514852531604575025316242690704124839960396235273009268605353941648931712379607937240227033243995450145983284476790329848799670984288646527755729327723623195265680808732010796017885570205584911287663035144990804621616114812515475663511471080434519225451687149116127292355461601844489510714768262033050331414490478517492559124144478686855385154616892606468345553799646375050061045945165680294564305756268157558113764319513624450296915212014908257547134598069040229951228568520514217479873700260700666877833973283041920118026741558556589404232278033956755943099372739829067487526311201652806317252201934003519646180054878418824762404923470434280468554307124839614924626448100246971777909745814314509152450322945772251276753238936331797612498615092123922455057267255264487230117638933727292665132281020012059953951741382148761798487435442804533042375116830640202586431974485292610204696610767289412439256996032627851121225414888346859856749591175232052962580163823867711675776389217203075569304213685584466131237980891458680538001253411426681202215658556376141548177290229406826904281998120835561085316902397736665137962124990334891616303070989177686275816840799249982667897359763252777349155226894028664667435735990022632093958346118576220972787948595146184499806000199244581029556681840323355005827638389865748512910691079088091382440190792247983723681681662205840121283622688493921379957373633199475831359700954649020448937635000220218742376115097220170822429627074170088527401595096929859227321827224223547223279607016607653781079391669684689500666036587995274937716477792010573429217342535635673124500881501147310095098615912020914387042935138489483544045526894698439531331162198487464455963699793911338855624629200207739228522974486708317247211010671509423808920255485096826578840076990313105276050321307204715244637700120200135427219575773482664527888694291923902712958052333421301880444521716215925105389522557073322769190840985072169449015900697140043047387936528644889266645617913132452767184708420189764373496376551353385011583269128511036660710251747580859433471536693712536020505675843298308403116594396827503149206062485809064641519508399744091334939499208170363183938713580325535905201602020775434372207224088404647036645146965314045947484881140816160256957128155012844797689066819565590232743266994524669010423953902241145456066542055076721296446333183047680855485608924472138815012871454575791372636547612617755035599145394921089520557501260192839412092345988047170426861225505105358338127856048658783969278785227194728912790334701561935295924876648088773377150036913243905209630002838917712641326996294042592114279617304411967392648330905502452152769536588771718130374080952019527899601402767592302869745169167437934650069191819832355313844177241179477674048979061294967919712067829298691234498419679585296606542746490879549213506154899668161197701543972811752965928215721308513907500829715725358992052328847625491572190539730065477384552009809341798647246647551480160389082664172785876890375941296454073671905367138149349743063387369114765193526122325077126720361702109417375098029953036628103404691540294230028794611575295853981156261500105631117802246848201844616484978710601613391474665184045419789272174912872921073455791758572645471759485483518094696328657712446932794465112165601790335152349533582006050755906746029871272265655121470607356389493842119677396543628513309900639261168948923150488252207533789327051011680830552942244974381185935553252203892744895025911500922015454254876975366701239189542094720246484536512667622528194949712434027233151367047470958466416024403840696196284435286903379165554369740916951610294728017206813928383617485958755456852911392734418174245682740014311735744802933908779041766989919662235220013616262107078910983710202279198748456250725653092907077473193317075751889351976820261599946465665432049728630297467563802299988721698215002107201226019171574250415797244881235219931853410227212722402440551790129239365769281777764764448614023329987099137555255152861476466622869344695161353586343957972462333134196119264263838443809731573877132343257953665203251209582591376353048049600413812568943797534349207437142580369193423414916262717305115078901439947040153623544408793599540569935650267965737410175224258477696947480399066023834065592954397873956018624909542334803666138496877984504494553091747782112688985929097913071554429654010064519600435147516701674925924486874286051765592132034247976622462788913785912829310945307231943489723561686324892969890032379284848770803412765667165797846764946628033673333167328277118831878487535657005406893119252075802895089275347639196803315187016094147809278787720136637627797690620497527692888999249484170823919031293353747528548410821480123120068802051284043205805256435222301261742502357439103947697714481274419208076971660203929836220851231564984561343746444753482064656297982684672450317241754724945177277585609524841619891838341879807609000638315111859832251298740750950685999067595766296091852861554982770570204082775553172898297535580544203880414561500404270510607207435889992319501072871176316497274139756477415066057999246596914679419314208609908734410272128608057259963997439753512056624909813776489666540201518420163886182736392327831507082724819127180250139285915055434781313779108845864824543496532828514075351303094451504487009385762233400571550734556086144560397593619383079861902048933947281693656035603697327440285344769962313782167747795980681683810246572047352411500416569242784843371041450153181924891515373729649009716303917925122465085232551175253614781561942236342467580093804519628521353357746630545981122172865391189612865747179799562139554096848970703073905908695485898611066464145887202886095103796298164450654797604750032826963692708914845881848373666641961127255675917916850171257945289761882550005433288752962991196816613245256740095075783286436922722147335655413897783470411104451685244402460994789493422416914194244944975038680692893518986961205823759998190782572526633752783955849722123877269868465792713417493860098752952919145492425096130485112830478131666384197147187178237655751510598274050635271967811199095912322756194792825006980362306193129604079722646335149313644587329707174872363641667642841868103930913403828567526160496432175874592436321060812259304501738764208394804040905921685456370034701431656103608583088886356989766385375335118679138373297596068122757157163550685298512302677235120276973939675404710846789460584161350491131240076389333776429264607856810399135554199720943604746769395047031545741450596980852298755247358207801342290500729170648316228258369033299451326744355747708052521425258314840923480654447145328547916649378597261111459674812604637507265438889227606244814390957036199521574925842366502467054903332133549449793099488885717632953706929206495989807285805133355759318434976799832931893726704878000206400401416176495649918789359508285968127659064596057057474897395885910882779574863728296114330702045850083352212576093272142154916250487204856821029980440335569148774271584438942924173100744914661192077340419014571648768878564139367867128118875532673179030408620266604683273567424182242866187232142988894462313357279441230947609618471434303054893434100165384299809715954694071950929567783863486165677481369381997397000357844696559764013331986493657096788305156991228533974469216249402348696663757802984956714917824503502453785603538593474880952753949886453724675706806897426241202566146266803920456179818476072664678540036484080417711824898868497497308581249359765681971639259399951625363495121895531930696041111686901624554186250898215453483934770033244091513266664081679171801710060197199886108709380994385402149198622753607763842963865618642546978374773642822812742889642871254373403142419666763767937444430259835673099187001157625055421437924489039213308192089366685664037881421958489949896541455575558562356009386607833391054158327288998556927885130153348701637273509314650833826326531008952523216333100833143931288627242402131635962216039773069746624671588405766624354676923997518030205959422480860341753400042796076377621884268441028946162626854417173015056952241558441932430841282830443249410613440752925584803514702663844988002138009245876221998449272840604710602181662534529928752111513770706152237599015943511917165981301483345946556124793888164960705014111589486132009183903054449595488414846109673836321366850956446475027959265431702290035545853660636863709643640162080658669083662966415763502087811623717630976500621920073706112082646583008364185631110906440085217004023606611733394593375933519168882198467102365734231316914548813113618100569689356742507219169699702703692615795046817003291070132585508774754725465229329782009788830093521547280803429327107015062948031023126044819417049463013777036154771502442980815090319072365252733906732826452567603489403234878759494961076916348513462061600810296461632865801958047700769851756578952103661970415441222921099160228098735337068377502671109816090684531459607624920501101411536311837808071129739434943114309680906117436043266371510067592171719710486602073987858525083711418083902957917442096621876739732101020498106856082203576458780180658953386073964218243453140910553211094921789533778611343216620174254620066865872508308474587396167444664837021536664185121634172865643174518608516398633882664836293789040368335967098577302616424921890291457475088957321479233176088398997052655159956649626649316138107178407603151112412587216542143496713502479688230912355826577957656333852657483739999517117658577576638410323969952953795400423189301491529556747189924564502427154267267408300473579450008571407345162115628439211665258627601552488664401787396260470569207613737578162224103625910594531695539785894940710975706802301577803620636414517232624616504071655917412961710667901104048020705969915122215944436478882973835861569381190930728166290307728459331579245800256058968558347756459817859051819597327835072791203088723209154222450509300040912877060946971843145972322773361320408755233161846468769989101605134624561883693956700371448366933487977001286563615052608982184192073974798670486295314614364380792713414402876944684921467793736702912908062703669578931495976875526149266528663740877109801135306399329425890727872901288830747461092138847048822989131142561846781841319732582556109277422708079705245158622377157267378408307070155740357537646443834336123857756106016762589644879618648860266507393526717756467254099917831131216526436437635957473223930254845201944919411601722807697256485384070301462207001497885283105138895107806245937600624109983211953537982319532016575849328769312145450924970719546000596415938319154526471515938854244601561779597705219972459236045777489497086342408563034072576235518871968546341012501594585007909106806685872427402043558858043879127301379115741617580092939049715719074919039784944487097556438744126893750584420207488631783190702971087688361204269759728217449425286029020887296232937944287720398324425841313263947391583117878108922326233898516521301563335327136584735299346137935657216872849559132674724300929986022598315247671803957356525121444344341622055641321429078194677853390485553534130629553819208648082351699912089263136868543294559256883126202172303295301763720964327359486954292065186262627743186571669367179117789200718151453613486590708907840360740150210928553080048579030495651834618798083405306873900140776985524826486145263021325961922538839316422741219787170980770292834156656823454122534267989395682291509101050750120957608409312370300212369687954548091026220380859647324383102343290642167919537579416817880605553159034040788078782698035850489952644412546964447925010740807695731652509486985962568687489242915332199817083820123405270087107995063671839238287689283462657306587584078210876151948845097372912142673151406148082325815415386473569470873089652297278777000192442552606246980602429943789008027024274700328124999062420779568568378223181107945544559447248563394968337490522272741781823077497596794876988247253735689234634761968259114647101091692879187845852485017037612486462760300121439705920304457919853015555534255968432048564366469976980038743605554835171490809495193457168047382879121602926594696785203513817145202096116476284775625418353261378345408751287106408632114181484438533463757783246970859079400657134782574380088311710253534266539985069735852860803060295905152312234108672337352453994813441434649089723121976297181984186908906181711638863025667489218116048919180594542614019666829141347149627157416232688154980476545366637853334329672703609354257864066103143464222043836165145319104197436607432084919384344946796309044085647401029448098632102446845667447853893152306754968010354305660644946103265385913834771611752791437687083186073340311128545475813647300926568665797130714848606288993174783499183092028252400790515410041693280428644735278852071055859369175529929864746935900213623814052698446669417501664182773528491175219469082449712135909125085120056058947697216685597448253834951965179978219631587843303540028106847603145135193167276567860439912940860941951245263136663127892863942325040756686783567977727730084528063395358714702475552405050596874630598418230629082213869512139862466296140916486025874746177951959509819069211934597702263796472300192659194461519925824016357048370491829753664039411557052139259978550227683713303154741953620247120280593006617792283722804147390317411967445598288365697313731745028271981672152604400624321957280617663592066653889366384990465223731806089114639391498311963029316524798551237642574427543241574646801981312042304673955104396350420782335159941803490794926507457562341013848230501108331628288445069533552318585476550489937208090358794499566107579224871802604843807101362193441784500014057603320300329602005586339892948794275519998143477456204680109934383705655399724920293786463165712074063608952411214782221190063372399312902767285715311623750604174459015113699628517147634873990705176616924583582862265108112100499472156589868134391037252814906516834727311255836087904885589908520761359826570509289543268575278800643403050437957109869489025816045369594078809814626198953157129169280227013836172040940648694688437019496020900962484117861301398957150008781433274115584626664924464546433389025163393844008589139562211231625027700347200149224204630224117573378041845614481860351750258701723682032818729200847439833395652629869062595829789264969017400901665198293693638788028143607637389578682943329993990016128724754044447102437284200331071970960168652318594639888139902058750631318673558269606072353924216176086504087606461560080046422361144442893152716800804520840852148387618904057502904565157286034054429458243273287173761370172251878530729546154795421406024351343710792866350805249505599667655154972851552634632728737406737200130164575921168038171516220886532332363814264649397788643717947504771314831693289525667620405667459065326019270714009651346386209752101946359190875517242517625657115218831092692340244038130892405791831070005220194454088935103586256694231427905184376422523284044312619553098782256128465918420330000393506316794248311864731605379121077573827643125272262835283157921834818806952762722922947748606903274485234267447532128912722839419595649840958972636512920728547695881738163868787283595704525625957494318860416638420792011999698235942043429883654489617489540048997212070947023035832395735793876753821632153598743074177591254033533637184560746632828573459023259745431809319806686195792412672092116516383929717777830498404096320323699668919545852294007322671813124996169912577752424421926873429767038893157735967850975816167746016487352214032827990786441713577818815948595976229966925341674689986473378869195283473965467001092107340037085366504728473073445008298995139497907311691702828387092414300671054203760142685629927296924774720214007376648954494852869961276157802587735423144642859064770605914979678984286675447575632654391425236378450132048808588856379145321062112816687470748397504993997316302431645580900802648583777430765357280675160479789743526343785050157399506047172037538929554860524518025691316525222495485539955675905480876178900806039209059847785673391390605551118753213088973881151281185426468246067310748875901947937769783585950572447682745591536965915159350618584209224853073255080628367922510034235130576753714338763343472440469974356634301564094678208112218255535888311305432300530548799194666786513124587527041477876116180055245446882882528733924069639016078518043003891082440795151522550450470640245932236206454905377304546275356513005113295298213669483830052908635780235779056184585234116262738813482661886602063340851839408422763287200846672198270363334796938948574947695843795504376456629953364350725608941987599741267240807087795907883976299614316724633662243552131167335414201317923442670141311393196722771225500660824255122611509581890547282657979645360585650967867704623970772913587273812351143816360544523588760221797637396598694614658635314046032963719302864503333658710213529000696048856824268042368837964445961071967876483521450796032036657505044336524283610479978720000824949839486466444854205053605658617977639268218656178813894253975248260932463533689135088417745127295100566896760218118296847626697106607120821704222014923622869963038959207042587583077787459729749266968276314593493889989764982479304407557155750831743029124722889686320443701533282645373118322410425294444224708657610674171464139471846741910334793071254667890158323754500817172709878652176760108991694995054570506543555207114373073278507400290268322855535001566809182209064760912953895415274841216522423526959895635663497815421476796715668889221677252917187601286145296233548394327045700855994130146900361163409683969184991123014775850390911980405210322553258293801806165367035897844065770307940880379160010898815780915920072725906072117891545168748645309988536974268450158842116190864506202316900464732239195041663523560827219883717454886799986197439519978237331918346986899673742918011355552348665834806031342802419520940864426803404057817911825448463261135765447474125820909958325287393305915972365296069490881359685911481184750158808343340297408637027964538648937995909146693227348800197136349350386780820788194573559336097505940516020619538992404191974673591471837520765580673965451500854986032898145011380349106921425228454504315015221848034151160045317474386850716562383592899197496370370365243149289010623106939720660994612237152439881304747342020592284232149570329522516814394059716524604115332899548994164337650143569743001649966569476451069117061043822421423149118978148442974262995210707502004857836574702739228626029371517939948929381104696246181308250204718653729460706475365267737237400579215470592495125987347716009978477880532260218043884007796852645909182109615482916511036706620287812071504380517980339884031768795904770875851810227551050580334369253605449466328964882232282319294717955327484289874434706164363533641938857211605924428776580463201750263127820836146122400212175790360114752914909880119112517433824396016268078189077783242840515207044380320501808166362974704712921072882939970505663310156418424587564379871432024225585073994018979811086076470481191085147978992908892766858241525786839479701691377009746438789256154593071184906892427153322585688627542925461147928835082081853732726429281708012427553015124320053349615673021259165209376757727690388427403706295722452199660804324213850667755612104532680231031216902246764773059837198488904212029760020445210190400074635890935465849314923740478967236988757377040007928548037390541894691617937722026680601509682919192527569478654299863186047823527640294625145639296702988032470899510868183485375172880177401093464539925555337413177220245822564558927466940866814839616622908962642465408579652975275748337114744463970205786421217667473054509950139812713959097916837109633473825495980416383366188811207178477134612075655176965451351826371569592981196000305714188399171224617491210650142562140112716689456624904211952621078764990098189324764607814490585110572408834450191831016264375310886047877382434096228972768529514584641056023010006215510275706767658175885012885497842364242864495925950202548670379643946765859654708586501606100609891407453197830545064485979112043236815379050507305187495526444700188132305015796792855675227359646411874145647660696152207106058091753629837095008354152257188130924972161359019515058993228108980518759122679159077322288707694703563801479166691676467451379991433325285576802650310699022688980347599641136491413371991108136277920909113198885725639247723007781452341982407998288977570014202440482811786019224980069216528171918776981491560040741594841561540528437251307538021112610417072527245234548906452807594792247666791225608468938244953457507098844533720458530463567805964909390223752960264626448987955146085202436304901730818827564545700421040708107167292721654681977345118684475194349179443167956016154976317573500137392026565645799693556116548580639819779679010140688361530928687013757794781716936936547117312211002879196311243875604679974341383399933439305550438335686692157797130652016404253774897331700859062221800447007725880822302098729407554368883569324685473425515502064445835848119605099100482943183227614464424597756138480816935186317703653298404615875295854762168603328503706460455040116271417802512651699411119480013645412585225951490551306301486735760790164455901807427460599890478053803540748801590642885006886776097094283964443334029371671644936774881859393667153566447759322514059390671300297061058337626712765564912930361394077630110455167130654628581237233574406882219577092082774287276592464689101736314795542427514916028585324085996014335868629211681456168859688460507064432734465240405273256566644120650634056371988533200619985827133771041831035893274576728672188081236287943494497397614791040098627910613149853917070883338070109752924917459359720340816421609597822515783253582788165868890048872948497128285920638408214146895845984427913483914028384873322639772517444354711484002237938133850062576602301869725939203767344599409807858958931371942554043392126408912908187433700748991473518363516242895498170838076060773831880025313612034897531515719831762560233586714568678393278237637489353676121374603455212694628901618748576678889330921245084687108681946050155788455129059347775061135034101040548237555298245414850820037299087489508013954695864331898448789688284826425919402682936340792610896930663943021650514206494221499325764302295379587636655520278494888275542786202253499416431356091324603405341193067615437880282420801530541768229436063023813989856292961846885269001900118415610332692813162808020127739730419215219953319677347402933438613453687994589585151958190077660356587907567082252772085393352825211781014343643990462065395169044149852208701979966112567236425086839694729004122405249542815727207240774363128745409361943901872661506284936660407497650455144318769217591065160838456602173516378847700954565669299550950014919688897100816043657677935089557583465036256620618309383406103868903955294885733248458326065807936334496951993538074641488221598748243870047259688192361979073112482299232177149720207179339568388379954395610243928815326425239605902130488801496563518646060810990755385645446174758450152894698961691842866293459142760932770031369576579145478757118340036677468342448533637561598102059384240864404061735473095887536152402967672795641043271404834640611847803598015489431530232425205762109490808872192573141136888648101257401353914560869761025151861627948868314303975986985947125677929299216145947665544920597295185787621932799741979824656480574321425464087555671283759079232149400441404665579876749457093905521746144520604830720732710395443471334180425058247671436820069511420461520354397890256380837576402885137591325955775396917529005216249339491465733541776641440203597517014790266450845536302581255361965190435867305904133426008442031577479361425741151778771263736066956579655640620336922832641440905884078316078611303211307908725000465933705100297123316948200717615230969263210768445083032949096441986539162867055418282825058211832362672516614017716673756964564512249702407640677233462576380004931229112858505888377205565836969662097013671240804938555218334181695220324095753971656964305219217574771184805798504072659995752392331735716005294880015083361629827447638429114165691920599406369060934342976902441489625564813016707190969813513015908252252115370348556872321962271399341834193486776060538211343819199580214152684730059295783148005075291519494893668947339782777136232275172607418638149392756177053822193177362870885083972534361648757571728242215196460215707198574895147211239077230991097099483099185462643313270340924888768706548134404818037683839648027488811885380179647380903939796380756923970280033864164485179187136635296401850140537033403064709417431465848535488510205675468157054735587810565182078818245536929470959719122697335309475463509249456146234937945254470597425911255897385871187523352582726128434152146440675840780585759517893665375590779802540363551939611601052966443552289652277789730845140639723707130297925231905022690113443019698762308384312213662582897189219491916021532305101874254988853685564279075853576266066187690359501705502322640423483678363283922878084637748411997818694747319463845117658828849174940032750662557811166341740134655621108161680405899589341199194897790980763546205800530347928127426398715847087440900541915836951688193021519366023197485573232900723976080198451592280104940375149427080241393374559735137867912338457333987323651908811887770655542187819610894551004243530847795236204618124756171822705228683801913006059094418252415684613771129820111882079444480094255104289790003376764720639203023539173827643557196416609637282551906904912826832333560664066900047708640865352583300995120825745106160627259408239538543108074162524662066316713945982469261463529360693583334045936897857604667060658887225469446025810771471259038029506662135847579456945768331863702224946987114269242678182220869626889425916361322772344302868749205408957666928199820323152153089096851670204424858707758848180162448265258550575464587081104082797214551552970575486590723728589199173037926283468208168297618812150437594477667083942213557846742705324051865327982131607753873252841693774943669080214410629322573130741008854762741805823438252708286190788615775936537305326194892349823614237285712513275951638897570194032656275329705654121304730605291187911937849702744530589503817393478110277193070242363898155734126954531740938440487606327779380151624530795827737428748584016765966428588524645229924421149834309512490029319122170548384575894910937195436014559622283847572695051909422115938030728845554755665268740895837222243519541739292463956007424609802912654066223290664037226694601620580516995914874441723861400453515520700094196380996276355295031065905516582226614190687525846909930751791205205043251264093135469173095406297428903720122310014763374362051590094511721499281478675468437643903011606248528341829041898109212162567516975955785513993394422940788483228504399652190115252492729239770799245998109370354025541245495235305032409227259288950744396718621328442634800624960561702746397094153539582292541035684318262314348530357675723043550677236123098578526296135431153784127115403162208471823233733297263781517810260725162971497871661883405377418526442392440435714421918500283314203828197557758517838269144482483174464887631055648803992732955648884562590265717774429076455816405841022006753961732443385305009152001414451641413640984221021285824605367377599616447349222406462158337010494043183115646672107986489677654570792722625395633935530804319978772583566551247886963837165302965945153635918979807867919800774670771866235018690659213411004006019288767040464859342099604757393915600134821670327339244646187957291401162964772349045615748940482246103975886247657747653949958200824882126264189039241269510334920315351838640602028732224089128690975827447069846654990308923340650480333238450565161412912915379749456363147465401349977255697795231237335886994979890829168738319167255222639144195512727668807270406883101183491414206820078591544566203063225226138367405519203953036192239511904862458338850966299086178900724254405312404827042552439278027504261108106806752666458756001303075106063820224420784403002094012123985691664280708631639545720442695844749783337257498126267005650272389418193297518668037296469222743395799748134116555111946796034024197935992435969162209467991030853341427662699151977214517825133337376906884282298006920685232122317979487473869983274934296715620791486938592222767347568629838064068160609731895731603692773520413917682567075249529159364778079916533952571504526384471678827274372430813814052530840965996224826632607483231889625537445281608259028095753419859132820719860999836118643498706365270071266901814811052257476065609662228159806953588667582723673907911750782838852983991071594958397344186471203459504318763801235502410212170665366042176593723159727675057557624463259541388496031751233670084139887441973952662281130915865997734238372855237031502021350576600927124935810771104319269696683346017924586006413535790393170577053700010083189097662230240915065750260648054960968145499289446572235731924688162401490025771043274889048483035210839822316594900898104720779499601541527649398643412033471339334587948733012440944586273576724686592819514446424364653370068106461674276478428827952678972391581942163812502131915190923435990034958603836553160375656632146168970895552060372508496603272166583792014104494564988681868738797231938380867895729249313372233343079408974033304096178536292625944879216448267604912341032943802647573810044665624584668403405186176881449065736787591900730330048605218707373317831038673694361458274866245525861006427223517671676919235568836677784616792457598826986128964009453946214861090849433604395579150268151405945780531538276056010668479089522702829178265632381822474216827949108055003887922405579032436160155428370517820553434930732736866638907336283565828983537523813392580269090625266300135086278316172231357212978841158348845048930154943522942230689040922259046893153409866959123882711662861149610586804730849134907984775742926299483169751152077671446854468597924940879819113692477485895189042490846777791105207933130542059285476443562890896568343947839178065421518903100663419221240302334764406488083308055403790055896994584650824533246488400838057447857520385848629310000184735836434776907677864278132889819211834565741438605963657334382202686476454252434137223978719591020762179334549065706102601688984956368389122521549955700900401794358774028381121271096644737004224352928232173782286365957877880938446481629750084111249644694608205363232170317680831760309572336003752954770865999677149761319338329227941473423950095988049364450943384160928773196012536552356781552387469104551948381679089163488308298416524636572070080468423479685719473578702526752113948394759833264830819395817181290303008826718486131851509754359328209006431624540700678730837624018252958691543119440669062570990605970536865738645731209369031245943816869745549289677302811888768887974280502954304387261908479042210384792653257014367039496680684596799017845948222948754624539750777991420588354918855600902732104807938604956650467837523675876193514135785705404768379137007969683075032195726617111262444322653497555313600444199474852426919834934922905620594938238265551177942521441696846927141620320655555173945246422587047396359996061576829514358682009641073957794596065088444390301076843605650763961802249365104262541365629609080805814318705957969791618486834313023529197136765665433288473042119182992460542601974120369978539813463366622841991229862256639985630570918206172353102077507677009112337844092342562380902679986703560919198957775479279802786244440871569811503509506624262507973691966910237355823299958660128927485568596897990707554809883895679645045428654554506967340006713880951196679663250528448137147005490809192431156581965436962996635576782471555682213669875257211537206570939627771660935568248794905933738626595975267881655494429146023557030344236813253583415052484912532798216279655153532468375868453673518690112423995569155716343506479796460517396461046299487242864766005714271221817884824065347751117456166637741050244013820587023217547689409374409317989467538324259459548057130429118417538014504774094195581162368128918125809387489866587999635951917770956177147016708962357979227321605184425246391341199668188176581249685612150278914519282308294630454715565963248973443346041578192201508080244322682113493383033049927917512129175401415000876828340403880550107321057262880625110195543574463438281906124983993127435309119134050544806693031406767068027376163560405625101947301918337118367930127360054397566656328787185933772645425081948334725171804646021617993391539142720466607559008496103251334988079244573589724087899218630297415739304062436756499879013755532944656174443830336321028262032417786284671552337435148551511222473910909593994517195402272379817337202226734726601409389506476775030013324054294615299212277306298604056801433566658457212708405199526796682851021293970590490041308919622457988097792765474165131817640114683151203687712255496470846707564468948016216995253150803190680926750374723085659484263287510835671507425478265617793324075455456064903608344044945345468610783091960085396370508445499678403136032828164668536264074334469506772669273349360846358559378069215339805149851681853302344920908884346467778906794912017427824280284167985828583574293823922452391606460722482018607073354193493989949672701967475475184669521194309665180941177173879243747463303119621377080375693233743776285128754604946386450789833329275934117827054491937012789664363517056674149637853417125586679554403157687214860342217680663085997456197098366879096749285273088509550411678699710260280843318706032134808073178126956853927385323132550253592842500198012219590318519293644919744928789358623281016188722543861748712168356815174718452005463856813449502437528122571323010198548044815916059827074445466832160896076028450250672253622413030478782015089003553162462387370674907015174065867044364745106161025852388608625476621550693930154142821836103358807332834790395584490912589112572970929014903980589472447809189680995141133086162542193625054255342424190143869580800984399422673498475091161727612808571342526951740001195517938686164959446037549622288650405271491264398092782015889988914726933616566172449621545170369828449834740678731814486764315653015638386020202281091604076950275939533583432023199100699771379451086784812877743105936150705024693339221654491301547630467738763713032421417812797973121210991232719267893849403435428555147954281286091507902272050369474645434409613322826385282597316829986967813713905344665332791479173824914378035337411881355603680985985762555217321719757498170944024289183029757512417308334783858227533429482983365670278549221279376011350160364545744653556480603975406003015132610216450254203866875603728319734899098172266806705759471339065905991895153795376569282734312670503723283779135916739310728449393983963697427558727047283560874216483146253073805270747493257099604331593275826591205817056293000512548109510781565972999166633861510035736631087036399580867105324997116750100634857090752581829131660800563947019711257400578868591816488248011951255016481704123803149406925053756348098562729231200283394924836191595087526069431482979144460976068126578381609964279349874519158778325990114165850090699807874537227019975690430064659789104118147698244847516516245927721324437085528894506197247803502187464586388171701975758451087654555521014699877524671585016393723857782735644553434318803721580795944541101456139181291843454094623967739579922933995468120937905981188055853370356328137685423894403477260163650259185852593544476099450732995422042439002032885646308469697664617244946659435204728048583211499718966871059124238645237336789168393775414499917679317767940173080222128212102729011292004170080108337232135501013707200515565595430781759296917655402143767706200983086328645659335901168708698969235383489122949125209006593932917461126917675421390490323954651355668950562405033865176134951810392342885841507989108529741650260536562149208564013376465091032846699790560216492073599955104621700754176274343081764483202034309802645977557054103100342452420424080748802115686781523321196644002922827426563844756230632317645881114740959804050995174363711590852030007621095914558748580297779742346687823662619042409931925230462918965255348354514496054773893862048294971157449016651540490254408836830348617229396046996655814969524467233801656756815418890293649706836905115702896207748008777070432589505900593615499833588267034241495493370372699308822033445576055229556625440064052101838012146396371482511680721437151208725770532597500638725439082361388336820225331629505630810665129763562117362998090175810952740329628295254573516063946510414216968981584355116048640983000153213343728976884991787866970750043779491296273126384854336088302729575246807840823355103665111383010749368555629115239778902451332458175272700060500273774289274598807567486863860182451889671234654703633406284109424846280475102726898741621706190964965694794891340249049542101281620417036596514825345483514210790123725075141078964020813416307036613249934651242908917782481915929541272654609263001105031808045942743392950743913843126276592777355049120578040279581333007706847659455707781499585639552370526788878860010736580472021342792463027358759716298948120811254222618712114536113303984342551551580372794580786972198729005479828478027929076795253692500508505939285007553064545525300833133457797686255509786116318576767212148237083522989182243151950339859988504357136674946187300326703215249403776336871782845150051033797940489889857600853145901696822959572407129877015877960540968686573656195080662616867922486444753549767870438090380469921987095660944879364051974390704338620132781015185872697707751359244474715725125346545662455441441427103234790257113600923662635610768055721125542126332661592047680245382966902307509397248412522660919502794515169385035374738824663213261034308112918029632876631674139246533462391982568544824064651210289108851268542186610243278082020967580130970284831072576920425486653770251237245389955875335254330153024881404259158667830868979869192597522129154020571751579638675309267624603096532324064098175713367881953422074542333460014879387422441413373721788354698675392770496743219427803835078574261449115416603616729356809202088144076376528759356416672843301083259362178237210714022739753749078670808650726444414102264428460485347182542479509198759634769688027594306052446495895075312410315931472164926359877514583140741427992572225258476134469527465705894369278319963370348623094346060231557805120810157647172947280808319299715870285471857499416432399614603080713994391678474932841540034802056161064327034320832218389058109166085350183091675551381281078866412580275402387729013406876766869333037963019741262165093737415822329566030625401995591063955746692669699750165298786378249920131364452289496535406468409800997107667193176661245199727265709202500233237497333290284492508941008157818570268342755172149367151417132713224662050741819632526973991193722586560185454760517538738064084234064938081193552945299526765890632467878577633816443321712012890024984729581314325403065284418983906664408544944635070200720011847657741893463531257831200902757738613522870094983719322876341785028804096420727871476500580675564989528311683334830991195149054834607439434641886981147754050528308933280642108006847801124939849350314710100111161872986783911015184079953903352089582866183331142457842576221293838684340471683944216882241163749812816499091433587117151933635643290349754868663664057208377120170432839718204394672263566272610440160224740726969700176077359097271235618648097667007999900151191571062016069275376382135213747267264837506810396281946553072619228452605485384731832568019494602929485298471397145207859885135039829805965565773832314794072144547444848822379558793654101271647195109546181348340347605315949473037939659027335946578115095220404096432090089117424157369112138442636639044833192778842348349084817702866364976082431513418714189835038627963987824128810198786837195802828282859685795411578403628172080773122719176764270789359579105539033305325059723616329767708841850003061168079846312493527053980095292519378461787819365480050365155638164722622857606364116227301477698147852551717840557697394814313584895361404706029386984178969926978373968613727594876899534486004289652278594933925020902841947351259873197465592519803933903159973992918568225958934716257956918041459973683107752998623232259475172792029324590157502547634205502297802157396400505636038050212779527257586960168814720467207714139010581085123225766555330120799074518491676644654425291891265538510464035785301801876282522274643782863649946342752618545617630321489742537140711734303590762491835988813309898837216578943888855624755778109773250889981610916010576044126085933155480223426748582304400189926035082779859673321503976453185686895973232323593405223879430422819717885415993897916483905806451664203959072316269585219443846929132549768095945077438406809590822570654705585951236399876663160098693981628429466629299856574080506115565721804535535894926992875536744774265951065194378028696446768028174835307844300587195615390147525025838070509483422108399527085360273796592388970186072601117712730356811827336846377949536698112562423931005599442619239874294035150521472215976978086635205377867611813373358378661002780225322630462531118461000299784102745149437485091546946494343442736888323736128655884547119112679722242812546404748722628905951130988961483780493920398114854070957522571933665792560914707529884219543543091442878470249299103934217539156472109230851970305874247672641793415967418935666889005059286239169188775200406725286702941003267507463876434951624768276641118818654017610352216584059650141439242971956014672253297203638460162268339658453820313175841237670860107660525733942793571383200713827762260326532048896233960898264144106250039571836440761543503470960743821598772667372867004260892170119062746061098131565076392897004692962720998662445501574911795984953108934030881304334397815378642426639293170780406147953740783014099448739724688866078875049638292817447059822509511738991400059371480438613750543772505177356076894785349417674106964217833406801117027406745920992573506189387035970795651935798910427526517589054352984072840601036153915236996693132171631943005031604140764474215506172147150316638010586568223659648439030591297131152718426628699273075609329914869983823264114893423253231624542026330723887265543376516821421550717433528210597355445940987122567901995199209289839180424725431791319454065008997347460697595124375039402641503041286485862303766873361837773710658149342489266714556069972422027010608880271410965533267175260308732558695130648457064518249363729697884031393096350115748239024154334247512922576495911902664373465350982467878415418855045328536072751829262927804395737180305203174749549301381170839393990016533876902640194988750344656033236195658010975855005320331692025200936695256701241749263284161684056570213737564707078468930507252978150797975934892538729852497261034489801310269457722715889764514627921893618883701262371574522440869155227859041960175135780174192550711216309464158580916427642944762402796437434324729188243455379134460607936860538426795722478366751573983278275349201516530858912416745769434286342144851740463504450599892114351830951433864172113161030797497814330505453509521232092686139911211912944985927160639760980604650574274799237831358258626199252269349997766283462337454145125283859131296269952627130672281306038847873350958559844299276054626002943820763660866013140866277537913101580397279979488487851554153309583412991657282056801702644341132460595115748928837493147104111044606393421193473887704921421726232700168374687087879689110416585273889559603054526870068482199167394803465189721554273410083964721645053998949555676404225584869847604827769170813490895747867925965190234043535217100945077119194421019938269099899956999847635730043378710447201639216509816250771431440761467715105524725636607558018384098375109150975804078659720247351553095526395059974818652084780092687200039292252446834511716274414236285212664088999153261207365802297582957547456837442195179750525324645603370432621392444102436699476870402031232885956816219884200657509716587457594222654601277831743157458780209576306606754252323563526322229670887115197844683640913918269787562963356162161763497388275857970570054223026703950570342863330009600301299098704490355533416044580072729152382020734268572219720592776586606893981200864999292229560433987230625051248395702514090548069763549639710764039599695255050669912442570351885543579420426639678524380552682000918630631035842206072856599374405055708805598615114219075208673278574038811550116524062809038140824765294206882308458238510974618458882409212109061431155963442939273385484710459436283677548730454846923364805102026768916084838071499696182223311643504228832546148822148659532469120412773421499150028241398833380558246218726785266534299359797027994030359368046029396857390991261730882772625524108375833087861318189926175653120558404784192836796339729984052911334014462562129446186152656883221793074625684017365290335220727758247569674860940129250652346220733335551259790418047709294557135360545586710150550619108732790321299608549799643518561597511792397760609144280769103635514095670592702347398520264079742090466451471034016903180088497177332990459515604970964375629218325995055603679846433626613542736840415999643869164956077930813910224768290437544071415784521831082936147717478185512529519954980815354691732763015929970528983598042547142810861084162434822461631644428636851241274898851941629428768349294739238731505119827826394245688195507627792696404255284197153966433980493695493950938043872260013056092421462870251939239594624265602044708843719760165391964865372609990255695285452655130680238602671131697858963385658915218721975474931078081892027439946513646983527004057431929186010100995852178029696335729230502545291921058775628360793763992592288406864979096638982616814333928251270457393453723353698197041846765718669105391820638114510981227844526198785994389301166927226312739318453258175934483175787583968204104346558617922850460805768460727488648467833115655390175297995540331942462096689253220829673000884444130078194668764030286038574342794253243280528168138279341300206433081026505419530485284447667065069639181619759488076515535289357903518537584425077061564031469690449602833132430860293914540620620894024912009809596529270750461873367200178631568654527651929850354685903852734847612293731257004623534393163206976689895219668537105425277813262610390016657488528594501152760587967032069876017126815168209056567633506200509166977069769710314205714569600315796348893491829091750857256836350800485986168777318315002908156798670083298975720187070716349126733017377742546172291247791310515904542928103129700716571436743970271449571426818821001707009660234392730722108514160470259067169738210144419128335707257529013828598620572436427855383724677065064224714384713311232142525264125171054346151967814766111573123277175691552550858035239800405949807328331173749228899098763389219469790712192102994348253376338640910530087785458102926211583188591333147609830588290922943673341404864681933580117634858556523704917032370303119870463435266703728507529142633232444379671833896561912307236159003254264977819076244158115560342077112232838417323192303669575981588446934201383403046470600029111867510280711691954944055756086915023467188464883854330597868542718716270215936820248740503493821040483583899027858279010437668291699685651994764668211700763724395892922082461203748323805017439835059746115602924404214965815567004207209818884907953277720549833634345494013481632904984642990311405357651385345335682897660523897654451374638306102538128639974149807956190989772060729565390156717477221137557140133078122406638948158945447838662573565809348913138710235301042498786033200257824142933034746740783815184356044985755474895309940757140012150315296915646763717651936810091392281527139054721358375587299233763473826619631920812501984862221730877497357222884730364474426791895702415059270807255595784136473947403627321915265833336073621748122840724144744032607729397258408432418391370074954605910827959748593359482561016435280834309211689169837289557842561034457252100547237932522325744067003967251166505180766902120710857986018091553617889055858300347147149082981710232664317569885998498982288631132202764512226069377665901162605995731857286483355092421163648509315578113492531739666773406538498607559256691424873486252205821654178318559916269285118079567973533612135550103198344601197778274881621098499662781979954043540477879395382666529870089350604333737780406597022426964691281128215496689977651902318537790848513610051744539445743973885062929429916165663353576007917699449864589438327069027775146070938861302084999985367549047905343673655238965784182434033283517522770402323875609668580602166164174017206035896216540328203805931225051078111139326198542884309812124423662163727078023604503889952940961632140376188908578244904309516368648701553553966477936091679993928970407777075409055449660569336616718401121305450044404026389069801882110777805988885422008447789692962671433487906262380997754792451359998402952977504902595863478145492951389792656964990777695916862091457237561044301034596273459637048432017922563145395478934304110988718443627578171288672180834264257452110329978727728638943279534540964474054648836681973314056167341763718314022432442672736798216389260111264225626776362002062834071483381245265089061023376879371832992078559497916729060212619540832401473701568597687570508326678837520995109455093146285316813124627652002927936295648466084069036907894996091854265000824076497187047828839976964713104132181967998630122173681875753035515636182230047181907630520226350743918089970094218669960264297418628978004211995994417303876492633784102621837372935652053261155762395322782307571404233654215165593539084318709285740167381558669281305713175267630548563637466772195161735661076619307163491010352777603969908149014604271837668317913066409534873001502733909777391572743714542325857635173364239321413635433004616820887116343854931099736673731811157270351518291047399778157947651051299461207109456651039572048053239512881378417965453828236783731726071438072501538316684186664473299082498532181327403824013266394035286286061150617580780465867727360491695859014759818125014861371425240127099024016939397342220363257986527892376026814088940318111291529164287816692067793730990464335973245565146496731685858649154168124956740186644008622814580473372393753792072677421184251079714270319948931046469363539812004567744397854259220722525958776696965559648855962497338135170517210366522320089215248616760032968719258312532958718373592390279148072341350800247142169230345107036567319788731508495560002242129955877724616164326080361008627635058932957266510456229754689356783278208774284242945386257622060236505797821255087899154433912569257263804161682438103706953276635311957486344201953835330458692041617594430964244710475337479384995034321946348839580413411878433349682911937365971276864466439875040470467443436531874263369947369921144561302360999385402634687311276618889805639259236754506122503938361314592951418866761799224397362026940269315892920203058085747910813793826943025663175100365670164335507286537027068740469486889474871226035795757432973358500725953055866359914019636933658651424302650989224841307939103110078974580945081709854479276515736077656150406443143499321417811533976202702824439162652559706530464399413545072187668303610156054901861895919804898162832722828226431190786474341630086195431107528286925716594266604820496633646021131069923210672783506820403775327487869527257698905188290090264385891837438803561039137658938221502461754685951733496798618271860332690363778493133189282172038972210392602529685657120536748068740233681027688986221663297026176959890908628515072970324913151883258659873635350253132328667824451595083441137028620611426950854944237902312553557769524910640852259258832999337748692947881798856790434684495935717532862585840719678515701893188119483793814839682949133375328000400968846222182705370211651485878519581308753478279023954820558428064997079146541844869457272367331765267105968671488827751457695390872746491282980041720802434680686152544380915400260188785004286877387792569338816918749898706919844641075131784636446090558053391066979944767841021411325236716590857088637377316163478739133900461163064870205375586866693099676384910140839714176819279054293664659018714227334250407792576242608427794781576235559993283850461713351898361306002634097897170083017310887314205159112974534899402320514425428199543635844446485136138313061089400604422888524178082858904806930237777588128359979667305498626100532785603671434539789844004806293001106603704058892129106330524757413923575459326726687849524963591575790579352936347347851479117266941150238957355482825411267136514194853023897570916683392141542362484039983607535480032124840494520124965197087738284856697578334126506157520214679014884160880659087041333766349901814258291243467293151113397723100198919990879888975544419028066023725471594406858109285194414514145964761541771120519338579072115112547357458344672556250649136039887295207950646590739200056499519756596612592141078896563823842035078405973995369608371652803949698571808319082488023351298195186730326344582649927443664646225762137564237966601524566460878737858318014973943858622254286886818693254467934705453501183289841061615631236128186260109030178185791230624890742823130687285377941437897076594771982815274385499225476594780811672712050353296209202320664788049440711873005525897513250145391231405013792923820858415326140838129042563491004330289285126540247152566498627783395871167599987340169467347897717977843255716319814540612394101779394053506104797895559925259429903606948817279539988738056130477138172914811390282972076532447942260221676287530482045437199480118203667206184936035771849809118117941226024974389094846456572123855440206161322093223767992560608928544775144216597573120515471019339424835156022850712945600293768393082414345814089072396911782343432995444127889237273520000175665406015443373018345948654228365828805772077455424321751295800675558617287712263274612292685183977772063356332759169939605550356165948558005990350748886348737492841910307117213969832525572973600708342229450846480585084287876368654893311435836195308295317764149869221203009694376950562469137459309929355652655309164192222269540284141998641989706079439451072865207438347061132371793502162348779227105100167894570596383899775374707872695772833853343284176375980530997000104115547850923481735270189197931355838869179299507850213162453386288119438509287109283366407560854946369263348115826055916518687298864217699965929592296345161015522761457199533829618646144390428750579910100002625978364396746224010789283093921133155786921136418656884570174313696900606949917341336845656185160647636210157666134659685347810341912043476049433748614328016873544986877879805318868177218334307892674126412436695351792198721460494720098249616584509845795971600160309487206531111833551878710413206092310185662104128378776484356327737937147624422199617901990813478436752044602932367747292619000010082211747376807822651927634595099232664035946651544975981486546445159610160058577022074513173807899558083422618474774978538223679498310046191068083187969764845335683891970964916209263680205737047891790819822761067452235059584940639872361081621026568231363500167974685489914847126407678502153528080185992316262831905925764215129374722105960160904764288251610524451056291469280849751291587700542599882168273922466886080291291738387367498116411665225673042929901180642478764735137629314408153767598314973422618283906024412219512725557499267778624850479846070849347118280797080416339467818259197718924290384022978869257583798642989837369431757761393400005101938928689307350144185015542182523186800238034617250030008226646378719694046697840615955478215450651796856010937926977758632872451902543322233642544675000781914658481066328560010650164610221867443506930753755197003230947094422756871167150359505806003455792036094120679411280411340444208827559914267353020762668346122989693882440359849061056628314795889441367326179563432394094351615369811669097733375156886893351124589324574799116243398915261638165788412529516282695858132089352231682020293902433621175861144422496349093983231180528516398017408974538216099622846978722307797212423360579634713746139681645966487380800723640205051706114569243698137566875184811556361816366699127564260538141235476269649341230531012263564556916646401466933979152977485799894240041261131414702263464519389812289537120320924485977438238172854752425711587403918683374434386935973941216920903946991075305659107833131335772352867916152326023739659639369536452793122909906325928577740598475020107682455491097078255169158064274080573630683616053881052855959950400888315672039856360036077057019824889769253779938477822545268307780439914120261330907148578236271423339614063597722429515765161902473819157556716398252095565752487712053960320752480412663242669227302323190495829312430924839278418481821118337099886582995198247380442096780793675031931314949160472532782059485525643406237465877845531130821157504978864767335880089657556432414478749729331192040455846225916133388418617396225338725766438037354286393774791923017615890204275028015152524420682095649716671095109872079136897325097199695948273625397715862541399049540982134182617814422148847720930134240240837956391778638911748318899003369467164342890587724140286930205677663704714390633590910427955372425053581952463062771929858256925988708267173980028248311178405467011982392707008705017984627688498744455271957968588325628809447314348413577346376961267581073100028624663586115862512456116932639407282556390530254538387696445057144017870418414029130579695529500246935869590728168965321046633499044352951940247687435871978956493968548420099436359128533413432953619412858547523069015541447091483195542912630831308655046181520329713493467006941530649954837048999076667665420879998813231721836559500117859047847295356541884159157143190580904482774145269826211321539371183540769034860485111159522391961518153343881248868681073700926341085380131969170597186647815249529650136588566759424761445871791533000071975052514014787458458834786578563144755556806009891925615381378649721943329751088811096604596889498420914355931664380665794900643170211677502574871167632848980105372238768316543111680170093179064901780317705427463530558289556918290233044107118447088448917699985654537881883495642597738148511899770083271181391248495242013876455183635291924977765275778249622706026661922630811951704360676999650831516712882528649351115894574443333319572154703898735166723306401423135037387802789275596461256197981560316886359270399309087005166658333286460966161040280759071410404198009992766856518063521890723607369564709827892441804345956526311520736972777100640376561471678264810471144974039079921690608110607773826697811154225767062563891991051310120488786007084659636588387986326911989125761705032561353717060815157801353885585009163037068826212736639467138991613333854411118184626687224307343544228100755859589173472051703497831048616411814500023484044055485445581288427009876152407010070746346560403151839869568704615856081712704613153094792887010625416602453786401355724865182293623093600456778056530355317143301655611241472068796093264905873242094585514973763954717140515881668384147428552280139140980171448500463613230054963791261920587330453779658478517681953351796605478919394240138631411851643505741223474831566217914769431528081238526868992137558398204229727387389348225994225695142641566541417896299469862619117823607143702292380963666199035276854676025630647649883241540215092142593899645834071647603910255947137637425112414927721892373678766843212505604731748682322259328078429823806729032508570252540926977077611644611386844781415995499920239262185094588094484956443705208171370621270714611563263374852547921699380022115235642405936236021959078518579608089574189713934282420640637233621327599693175012071053049015592916840036586089510235889325884219264807289396844991767849508784722233205555727922946996046973670010728156542911911362137326664809246296636741852553715826696019032133828034598787883348840233597232973704408707866671358093675960386466175972960842647032801760357321508590381132777216352428659063248843299068362061484215681513119010639739888074623608984469463464244439477089538174498139668012232110194007459760137336088768511165407276717136735701174168954317375928842865828896886156714972907053994810069555086180232347116955160743656138467769428411018152513342703658647973436926962654163291102557189316657963369250937332378510146215663831150505954067587554052160301464732487738630112302361277471452556967707734921793657003419019535538546998651980673545770511537806361367763189297803791032428815490942892190630674662651585676551010731143389319408340804515974149734202959473539561647420064582241242807044146016157434857901492819391112699358691257527852820250886574802508863863925105702291909049110191416021957900458576465575455849439755611123279950319442405653979948892690101180835285411575939640862085063186949282642498989125195158191229621150967934874385446054159666957252856659298746747342824877110209576892653543270024384764184436023645026229309026412345873556182554509577337040062087932038732863330153118235744102940481914192302873502346892031474832632902175139136947067189480558501031553731074680879320687678721308826188448970160145730391350242384983232231595821853820301693499809715806321454871151464973406646401107094425694625023253164250854759176338415313905016381292110688286687454256966809400570028313111124638680062819749124523104261749312657633023625174559377331496919298292699563224295330617186142555327712629619609814673495029583001725762542089586582165540961188860484320261581490574481931465238501233037954986630575628205809643892043359247123782762166685015936111576150518953553266621089118631653081593899723839191439234311610692798743059020185571611168432949727186664802734916698651210587492706008688625389090956936709036709534565844367228964586157804658321225733760418238605913734754054856983664944250981469221044582298186569155524076994927313554915790970708919168819009664487196437312055962297616236210322642109633761149960331648854682671408639438887018302815576635700684781636694830522546848448001475600330225586379962211225652410862547862897090473933728698977839177044489035604730093526693770565794822233376405301086199713358631758867876877905550049093205867548137500400828234159409490313994816705443315134038889102383022513368915694103569626822368720270297106712848616373501109959765553609158834141138631688619324592697824744593837327666113937683396448506555746893530888119195718329564813169917979263070644069357775130048149524447448337135080240137752251109570576860261210473847403286454745118754781595254830207702231947358975666734576757442071492046044991113743634566833106218605169752084391262568419035013707110352363952240110956215419885933873893626308649016082859992573751244541346948390659394483852576773657290342354141887690994475753281967559939301256002909629987119438495380378916696772511334712684645518676876169293050056790723904801861417342328346036613903850803927440015796498758167695939042132510912478075572935467750484011041030518080227850904387259733237542971335811009161132423716919811637755382071207183309375564402869485423359315763677754804204601947199706988690159310281732520018074255635421311544274005411000422872534990908166276023786579150552595660365786205761209596369108320340177755157589393770413221152422124540460899878521495510189701116867558902013010072160182617344538352962543862150679109896756342235326041380078073763734986875058870304345875214035719669187522789136280125590104464561596152693528947098448477853375259886852878854488863205113585273795526286001588014368760896666144225425408587357613294419009095071051962773457690168149673806099435250585694073901581600986733776294007706230706379710043552023054001508411116978513461494473023211289030722606729641140082971178501492399415822482682043382605183400596599136136117544197152319029804648139477243233559171798382924006981511527084179885807198437825572138367056461684522611917321012103200449802478143668974602448237748144320093643179881908817695971904087155147926559710566497870425379602400559552817583465151053880208574434333633016171620980237636318846605393251423108328529471294159919499356233374702134899103140947702247794299908890864935832127497737180864119570189273476929660479373373288173517596581950884727432999540210110007831348005894608666313836951029498283909173461007819303791837092240925462180429572254526006809768987660263312712944723936445002686014854472767420348686363816699284575402379489289633203075411797845135624239855017588049621657928572727841429425986043331088397912857197811317938374386944606134840316692603503286342514464441466316043856283989120159884951317037788816694450868261788886697480595809952719856683853794874763883968922113335173633214162840895027158251452920894956458060443091767355633775417902571530054307242931408853991433323869057405207705177912180091083217330550667848257512023414203224208084209632958050056360093473240763192866393194348274762347442724320160595133122252587215348604541286517790444046201108801044290076004977693738217460242664712734473426532628107889096430616665285777115686326092790991707746992543634648771009680647507878402151574092711153115611921494452047620324933552477239783531119414062599748045196654517199890253278584532341119856030694817623510084810241446719973964655291893935014986750439511541499770322503188229377341704971849801222349572500924499464758345288885186283879052890322146301066464823509459037719441797325531076310681988539880137603221922909054085342311389170180530508304549299038354366154481667360727742158094565436306329897726959677389318971081153610492834642693463240562873267189003865422092787173159924760500737935531244910307766645744300359009027428997909411671367159236508858435333751440841543726632110897074660715766011251338810801974140184832271665468849030218832904276762937672998311766134828632677329181497465940000910402442780524939458580165894505571971384518322870997883849572537189977571923458240089117977838388784457668193955194110359942999418746547970096017749082165526912723421458324164207655969951091946377455265300298261878668091651281392343770332501844265485444472614007862825323893768041231118102143320307789748619507314181160089399019076567793521823003929931622516932246049511263675989462058384386911874473492612436838738518485075778403558092198934691466620887585791777490767251000407958535893764051659095681437713529070224718485302009987816042734746271658147193690611199984347956562138966965393139440405706296456249727475616193975142242578496045964746185218679127278504586192481933520221795976419220264883229028428197984909646339796475990427826671934468695222850245950267746749504041585646424882932838085929091999662156460633582703886100226571457785659296613433128834489064945919669643071780044118986280048426575061824860351702796234788360519631947752941115938138522617539863936891696653833000976332353583782333171863152117598549463067003201773638922343830873184080090984367379225474538413074744886805047289623750529379769999553467759143190787158915336171393280129027105395670903767986908967794083511985396813050431561795185797273124338827199236903490578726173605815035298027086337897539753026625585493367183271794189999983049856114069772163344149365611011201943721042864438872390333815521230655522283341903506402757243201963043562254582157534709046881449087449629275832936006534709600020210617926965729555450726611595870033774693180633682693804704041536679748949935965330451316500158248723794889919118148588832196717943468131517569365366732290484501388266942404638467763760842388246917406764034163957432072355681312873299846397869013438826931544214127401324251488973850024163931808810416814034944797440618988295009135371543679407591271250725383653033938659206311916149348489780507253166667440001375821697570335954650298559377077878435171547737601712418125050071900945259407782443772724151317455069861216479880686927538684213689293480525568997594799460792805847729541132506135060605806555509455343105141797548593058035071562899524121091210609301216441219831636893923710747428701256907487205837915184653805206654974915111146162120673265264145173314251673985382572004870674927477890784691541726341437912105564077589387925767214377137156098661920229360713370231492967872806283675483595096468731287476273139139102063865755043315966789726765292126253370402594828994510570709324460772757382695363570006299623557576966564325247768284276015737452913746080244646638520765844167476915498068140807455920415714462226778542148851073372482590702268815518793150174679548379496577951242689162266078943234055158477770971380836150638196087648410988719709087995150989857228886172705414423803264899966173878686351165913753031409655843762393061846566669116717633599158240599182274395741833030595231808905650806651122522562221054488581437481652341324951199845381991601777469167710665254957490527032270375234946347140369204325027511370385175377878176050308418910416490532301759943560126225910350090710639520520243060134942273466548159747557728627402991422162320582435104322320537018187612241421478909875758459753864817530256307940372049033431580361158755184436268210181629218180380629083570674076526483632112429208339696754088356795496640348858603901393234610496215030350349284698232774908506076294311829113822604355181488820109196871857421346105936746411341840213911084028741587244275093001973182680583052282240620078596635673925540760961576588816107108346433051844861997685726626142620621240466292786144222707140385216955452771729731691398534505107840624295026468167902071360503971082466718434506652566334302273990491945350084046900020378306349574715048353023792880309565979771492313968569342389272969994222830264331392019535649986403753884959012435101650849073300145167046224760103202717094101523827436871930967679946935825933614461349336291798329107711534939221769685516339163676199412950530117438741700813019050612363031626528547280981588102684228004065205850551477222378614551264980591413373074007216899449036700330219166068068552579533813181659923570093719260517451867131446384532715799014518951515463947939228590806485082818465919576775669168296006077584217139946425471047212684713151281737796289349289203107062588700754160372734389708850071660008576947791541655414851893972539840571673625054586915805747705751186779632583219814072270399608208357609237532314655399172523256006790467035875372411315230029826007421777088613642970849584778748750751732085921022086148312292668265824781098034433203716726412127838551804018928012884652353068090085056207424615353485804316511836943217634279528476248391409029500672265957907452367789459121469262883074438150540376187679113782103273111975562388882517857247316600092908771261708003574415870172512617595041364957862461447112120125145473066183929665702462448259229327636144671899020904644286565872702224521649929031266194032453053401962749273402367479849226251451079602364316777736852644851270119038560445272434884401195574372357370344598255624218553988702498266123968478112178233015749855029540845947073922473104985492479166492051246437874012394767830899231170485049844798665861564445617174471189112265346885010725402622230277193345769366829996447424377343722869216998178202279537584111026881281658170589157112222118109275306828869198068154742301286050398318167721058257352350209271128446651448807348767597522717208381746714601306711214391509926015470949051371373666413717761273907659351128145589533765721494075026156982470951070544485606893757960483159302410785435242482751668218638536613934509829912651939038917457185076961228306074445781618570390578931885126610880485737415049904799727330576817460454232936424565516505712894905829776651575806069536621736800456991618092352178958087330076795619013801235175233484398537147463138346023770473875023681547769358249801855056599062409793365483306818199552972226876371625424798013936264763080058182714890347849097201959652071543750402584435288565160979972006336541175169162216763244328424367145058494117577670518002662271020745814152217386907333142778880303680471803718094055443235858181747465342288280209507387671711471556576806728067044138927214124226271202022462640845537573657025662309997996526434182370886231504192309154939256320735804220737417318800475291207403026753743497293904452325497336313114303149330334990094498507429908362368844435860346961834046205901441426682935312431089435133414212410162336949062363216329680281633449785179019950723087432552129779367462360054444425057335766347736598039526618613338440289105763797727361435507107301996750517954543357084261573627232041392016990203997021514692371486187384161187111635259289448684138874616566164408003306784497441403265010299471967977251691565525093394309217215587761410259023560844049114803105644362431967404766264815975282391055627096936130777027867969267294626174504881788958878343532107460730076657797474946351341817002454782423360466595682278436077349646811039424552709263769665287896710777551138502991872575308765217960980688776799670986359994332810633931851230569364007831406296211921328133829062435020091971317101520042435865087608256586150349107545449079005063667965707896756309567276613881864065696855129463789686321540476066792707813179789262227671262038042625641730129610039458196326185869038227853237884066699810110247941287019575129540530876748125389166880640266424982916351786905188091080981514309798572267464179844763618929066038502929486206324832677635584293564863523153110411852085998287964356883010754788157076359841340359160647339422006450117966299844214823738507953930320718174588289995564822951513126649157680235445392952497010602020363670196698154125196325041126217843154700273500939889427702048673190381194834630850375067688381798329635913010853297227314542756632585705048351862027190403111097830747251019270937231780607512886666549315733039736895117696234426643360433095271631374493457990467828990091723422677661401944400446946824772532642490495079042948958432700375671999337721238798670947106900609374486450283754832189660711380998429154298719025757550243528734444266631222134320768713403908495901911002382271150985558463143217192077982870216122941296825189090337761018530231185663123724187496397755453655921667487649463461473836911350430288038470687296501936411298024849334288555532045320780137880528297250084824335588617130334954631469898005503307556273355857707142132336698752958716658146714750332197235320944500013955770720288408995177434279999048425679692820036363518872639120035165515772198796009421659137966046320662875550531614474923766524280837923493548347126542964288224056349015062774943710828178976456055111023527375151388232523711611687379726037275917621598938181866675389125021514095381653058538345139873880024808883741418079841002603593192551707217066816675067058714257056992996323306971191640881583817935733317695955480999899261351960205731574704670664427657683981427447844416606775561672293453605847735265934784617743487557892169655796432904959349705788769691853917846144082089320946223531562180657744754118419286780748727963164310110500885478343051751466592682517383199081889289914504088845591091408810801323554937346386359490606667140505619224817593141482876167127785061804992065590069726509337102796967347337996114732546256920364647762863631639832775407177848799474520834131694932773555267187375968426608650696019401448759108697302182260747921099717836708473985858311805366729544811463023117714739982482438612261928177501808873090751857544754977692848453249307838548675441371927613486225118636254965287910316820867081271406241146769085831062847430579033847553656215603725512141815018597758559180090533633338220500539134348155741580584018880750642825555480580229729837628278369646983866785697982934655257890438093900570293862590001781441159494902205482060406633480037657427422544103347837672638700786029906232850052234888685367598677888855352998110782872044120223801237708021206449950719721397779539844590485268798343233917934407217436574351548550299191153887180169661269375407210419180750236336190003850734600394728790335438332431387757990047659079780938207459682234268817259892811238896330302100574531877581683594635160248285557871580265153466949564102069970341908824840757745204720014236184686567211597480172421232095628298412123627442783189167200031565605708279748537152779245123268016979404916292443497206674310800885824455151594491568639206344692858236735846200170188423773289625093687422172560013673439179055075714187862261459690266431407717501219831181323884947083814426699434297972100035189760608702751060128611839373594494714539942740781805815350000319041746368571563823008933348388280911463152110754643381405467861495531414975052456024764818626695309982092319410158636464333044542350318832031766777457583973950001886621462449088535171598964249654106174627685741563182197927521162489448881719252216825861935783346143610285237505702645373573861286673173695184797840419988277986023496781315666836930444803817394141163330772644642447046727868977273725736184930548134762788395137086985854873799136395110939885904332597160002453156645882625097651131073885596957193505632463769798033239277650878800303099324114569677318367770598862061087471157296293444740091260831613369322018518778820639726934063311807247386671997494650973674894545931786357769964580338081082057560217564725755907047121161275529755086094587745894241133907918264206700285091681787866807279410796328194059832389192751703433828843767235186025850043771985000797365208530969307438946904140514692798052663478697185142357097443479375361337752537250704019135512045259929690811500696834495292377383750615668051217643043595166356868233361515692016000760777694465900652063829079518427682939825057621213961104506557348674854004642416517630986195121232575389796817166540748719097938127071476661470917086784143309088868766260147668390520940995093351924303365384992074524603945506968977945550348999131227544615081445944847494201613904565983072395844137343606310328373402032739418724054653353920403162655839779397007105296621007220706574963057473663513320195204639318856814677405512703782763199223315346148718097681234126582411378905556064367761892047473489493620153174861471526020899981120298605392647705724767876233684945470975781732917390526378510399009547504499223115235312837159662383552473841661873437508553340116694676305043051186179684430899803377481503183023873790452761175086967561325210337250505900046840197739268791276774246513514873780906425243405057317114514116606695028163684608665052400236690382733069894822429855987986234986297949264198933329941085616799533190493311547276485102971320280669629215912795909631132147524627801864016309476106575131929157410886079722439892433237286453549361908473411904093594963594458651574264552321649036573991623304635482912870040897642952848745647435134440519632323720248905521762397674475917904751144924242907699507503269748688873170554153543284748615298085278727386636149441603576401602583097120071283979323843929619770976217284186837636938843402972141517452412019049267221727759122208235807614973865265037702754395557197916485407056963528426877008897687567417131339384219006638624765807809628359350028761789964842821585553088086114300286881898801724199630711866063517753673806110542976350543299281100294233415731405003153560158749121446895118944732567766527969036270380090815406831240825784940131298907533001387188232792112242911177716866718964484814609004497477337557643810814794472560038187157054893092621583503346857017306874572592028661191885218012077142994468489764181428305947420652701485578584239831257258625905540562912415703604669637640938216326930784287316726173625872179572464845108796682178659984804304286795446597965396713519541785898386224664109193697597382326435826524324213386690283643472764472030192329909944481930967977891140309901556933052974906684364961591045841453031200203975759546833239392171624916464006977845529605124004919177934404764994051449314339074760864233184565909448636149586720096780542066654615195105439917278583078117253466819654851934070132136018014483084545647225405189369633940392277412867318561883389302932215569560589271392328167354986221063642508650851507452966591532004985667111038218851234748341619506993366330027081697730906068212810666298240018765288280685159376854087217047995116310130520690357470783687676209759437572369748505083227224036154206859606840716300890592975961466229239161399128572946284825808471684267253183367779326804707351436379455969883342343133506824673898694159950364859553063024819685510927970010789159952626005393989391027383431552649093329213925769209736678094034188456579066420031702935263237942121057672826513914102250545514708454508129141449998569954788621354236148262776528946171057551120638604014033902726478405444762415558707773734351255277118430442606072035700358190395509859201709684035600953719041818251468096025646570028945586183021267998145885506874078766193276679165451607224872702738059550337241541792772394782111769846132069874598707006351203601788037681685291431135675337178384667579066783985278426677681800585745692495924184816198532656364654330991555184268560732945194463058860581127644849256256109535755216827512821075029742862882003892700564099362352778203731601165099544269767517718258952107597533323381606362417101310234336910275218063077198077118465514917619743392836270359778664693146673316742192604524028161440028546836610188316762601090003794085295313357346865955246470862985240228119538528470687731035756270885532746201506106186199435159854567031381222838865771345757410446987565346865466668608536843865790136982791829282756158019564467025086126025844506836404699814980095137042159665451845743174176157363550143746404236034868695153059864481601580771882453477484498947096510919814288587530564266630472712560702335225597632885006796944006432608121532784338009076312696590386463923182092302125087706425798810564630558636253896849201487192778808447016801318650452579828522418969411405633100848162842424903960767492944683515199954730043352151141682706939564613068155410911816239888901448729224516796847743791590291945122587205545862505703071184444188669633409852287296470642805961168282862953116975790033555264651496791438263456218412644596333937570009795690310967196782836229171335835567836264839923164665788270304912023521527322265721515380257261122661755697175839483580257392616091908971900357956802070727700658810213675774177793633631235996383271018806465221152028308114627079334944128956737205152966328107898191796118089937462700626032575609359806746679734673880806043373371423541842258168063691945973193191785855565495663256174676732867719719433069806920241169180967161675220981379649279201799542300347774954352347271895715408555473412998098588803706502754248647360234036046493642504318356538711426802795659146386379540080614482181987280010173838202005922351313210779419269887660634150474302496458184095481813376363195347889396160507456629563183858436513192303284403388802387243075841813675858912484255726116068645261214404405582116535544856828601615797852965929468918145728575280963384426537504411659703332554053383432043674330978513791244588590547028494739849697139492003220210630514979444014771008826545757922936910319411865586702861183180006926567198567988233177110254198744014888112180575813540699511799710169640722284861576133226304257871338620880982699211022877551184414999049151306147234377690717531216821613727970894394019167644747554439463459782716563569574305694288025303557280393100743702465191393847932322996596640818683895765055304020728563445001106320901139128877623657409737025821853903968487631793460005295246721372033905580305127716952308211467382777784202095796201971248763144409732836818112188670652753824674550188191459804612729637461693751959497974307636659935264672739304459991597428847519295332705902448401931074888766062508477047929725267600594264283862379932332017901028317489742802779618817703546899802730367764468256701808951329739621825322237068523898359686526950687025214732769425762953697986467701306874322433123368217476940968766320145974296679306289638787000945610556011527371847186978936241491072209730565272966917779283292800744456748607702598104408239793732851336807911780480405203548635546176045122687697607215287007750088856698100332895585153481715479620454467120040818289713991568130376319780330739123211966258166652251181946081319910350249779866391915072015617639206692286994818188961205826209176538803429197268058653068906840814480766221991035818528099285797514966026161643902450859571192425185351642607601127422548356034666681262323082849148297328101869414092670109019034736798914612206711275929300671257224170111086976747190020064708443938178129647696946587367433936057307995890905770065414689359410912150408901518344172159064025793364006843122718013959073931215540164762681724183726612399425724720581506465359808549711363249320177052302075079638669743296515370291356503493684805696043212031016789723671288275525301692595027313817113665155121618106991354373797458303289665311657342361867288537924599125019491052838730543479453821250255106943018681913765060662206173217676265648972595612872896455557177534226225702241576048769947661009962494425460078872492796688481085899053949511536259801359683641867475980332437319283273508238872440185667156155457065194392925800815230688662427196512278501474837982537765558597538405808350892381542696860754793219126075530516809881334035581034818515277232728717173883801746605154278135698205704389542423694615878580156893055588822301861905562233342739202007162042356307554215006750793727298981938045030362307511729567413186136145268623008028665166357878915066658418149766308514031449799679619809141442701423987469770595591427479794296871914064705906589136581478112501472644055422811079939589365493561290268289705789694319203579659273974945215094033295402495496135448303561988030077247868761490724574980546102079973579459428416409193571416725584648103746957849344194051651721342574121904160112632469220264913732940297357166327969559834761938873989961759840684794102798768799439625637880050864921109182862879867622403445755522037970770187238244317461641332791021234244267458208619003081140263730914466481968271681473615365956340400289354780945279701793171198667121847045127663662724890201862595011055150563534938127243710627692449091462881069191143781869944254982716773943657514566825912726083222376322354289856809359725802066327638705754989980438830301455010315758011166973549822897624843410276621816079071412117028183827303261781128056214495356846620768367866811851834392457105734568500457810375206286366595224700275423696374365778438641984365536160726164860551868381599173373704196698085607332213045537018163987767617492975616413053427858900251017183131735154668220765740735959816782197024248196677706580094338375358286480249303046927217163245971037829414679570349911259592329935224836441423208606913373422767776835403170495031256941114873753958149132857432256649922275537394241925677423392817959724990339539944985906679159213968363293853430026391013354391530239203354988385495829930047985105385289655350318789862271361267721942131438407785134343198469699083477937722609164003048880874706970581998516649356546429592877490756133908634817892216463670072117781504030132634174816651763557307216882013660278928910893408524369453141644530732791471723653495704104311252817027488795549153422602162818794030213000645149479602065096049840968320071662397347607240817031245073080303878685715578668746497810543512984949207409600030825506403753252361794869358965952939227330797454375577382079034633935093435643538579616682715557015919734182483318770220264940197832589640657445130979184082629047554074630523314131873897988013184644385304646366484591438639151298237239709629077092213378247762479693402883694262020612371395364660629687625224213723651304078907034295747565415439277794412540161417412586722863705006518407507377785464311980664881208445066566212921499419567830788769694995540192980658386862525008938789710822893811101624126268766373392028923371122845887962586940135157990314927707396909072933735151489311952581892843569444396545323204079813510024026060346645307236863705792680091024657996461876889006155850352330881730656457778902275669615569204519956352126072327992363282175973032706659368856793063861298551483615358770165477093697383210285532976396941464209035086695470995022434269454290202922887025685373779771113019616899274054966014882782563174168506474198124394163428206533269245831303244766669445411837973222700587611005777775654164747915052052239197615038006704145669737719733480622391713845105586653586928322662951334829532869078256487621046679950497396482940559187352683577130404640693264240551057253535203427514326950088795599732944682979376751184306017178064940992691953896340760879139519826419800577952461840083944575841205992688187442018591214702455344005618426890694518919829285132505223624413746433312967388328871483403605672736431761498949575232144788760518479926319620818363412029608643787463130670808956067592659424074640802711232479139510561483769819211619318087572065344599519456859791024560711746793829502671948307009181188123998532484465874706451472460003747942220506058894522752243733797241316121260706980769315852629355937446170231242341713281942311747607392554671747348513781865785643533910498548453935223124917550197982710206647098142175548975453488595916617282043427713166200418909743278218170475738096708104719379611001356405890209290560026566866941760681679366905490802341298105075196643731854511128305687145887519912765389048989625422575274754491905260284252645807124120376744944682538172274653654701133431013300448540858148024952191302013417977925052865126787366561384251662193988130761424188572391146232647976044745475536560163746678492253064122277804679256932089226578238134775841843432985579295270381535447573561365713423073366851318779244424991870301256540264982519326227780547242806740456962111380289176294070423466456441584272814372961604866060477766748746928129175919262481898912841212604005363206982745460354294056256790543777511494042618893058553295510451820770148235474659688430333429296852671921976037167515187310616306123200783031088586900765086375594954247881583272459939524965136068600365505739505119857543206324683854342571077679797801213259728081375034514198500596220777622555624980356303115361910135176489907938431836985435038426910026801460038383273526546440189364143418851376795257266237253513540111509125871508130386022924451330937336870414654774347765521572053534043432408874390558386620814489053598708875780542160118374639479246722913968008265308251145433119098812431819155833968372827528954428919528453350011232225913845429879151828495680166288262053779507860375263278161831081523741433729030112440846598539732896478157733583986355119452942757901927056100548423225522307316776199660313871171716756158096018380503600944928645292248842584078973709797755870569508954885538396688562655825452196647466921274796549960786383886732322440559163318702234427339183652615532585853070674340552804898950772151780587529864063912411705616378811130686678122903683224905549438586856602592957622911102164011722094768258340569777073411136834160663427014570876924731059672814185561382372406239720134653023381269030222244937810739366877954586687249379104452537293201023703265402859326839609710209412379250922493470218652150033785445061079050773864854667124479350835954145681826156583797877254638035239967116255207015152325428908603957427879255797979952565301252191654033412563715424110349152209495449456669517446462999136323270439244934813884161099507701255494683583286900392033553782285765316100693429415096536023068187903400740267796879258872850617346832274993827000628357805113372761585101652300552709958448841898818378800975304943757025144942781260050195400664913246568690571587944911375033762883799174260523120862090448462168956455563383153652823233457139999492395710288273748985886464821482235805246692716483664911966324241309050345729389015027541171640721459327453460916537026192690088454305807677654483538526182510381758188329783740366056163057172405986170933345469540693624647334000593296532190194512476124815722986379343947342609966279534989460934616081321343358598816964053674138121134607898281816321843586935494539438394437048954326250386940496108336977271006226730693103451838495417414968029625086137421603861053698112140689338052751947551696395315459324466987332578171909520262436871483613347196845211559459521809582987066993028397008899289209461705981590841511749672208764514303262055951368024121889985123469528656764817499078159478618002002996654580260052457849668581858555201834604131063767977123619055958697146048081729043011800070385658286589884254929592952678305397698756000090292296417691003782945083173511748432444418998770019181587022285945942633365554815279155719368293705353570823905502363387803110798080386898989016969764005205058375071007199701067851824045929594387012574521886472963242880795419688433539811540818539109461617054984293310455349884256124128910652070062246517784849656068663354274808274537403591822548162476908302380185341395789464844697809466910301806789831993893984678382261338514243845252009427644170413685490325010500258565092722124733551618490288002509814108657976619507880771768406987837424121055223810784182939795506215003352579303633598463729660339634654576521826631563032859060054778209968323944862016719253215955874007065273876570672484615656031905135053855769800428207810664891572830908434994369963092435993119571826780596979024134391131598044501697001373278744602622789405711547029773410071720813647762471463461466768455873785544467845644812705658554962677828690082899029111570640629252255639577583830240507143510369780401218465482675498695183087011929256959716997233850222347583062252342148825090407717773723057050527468091617222664254433435539812901431136440256708227466449852528699846651360004400587145219725585817291477140206265356270449466318012854839090849256313288077210439104304851276331581671911723629671078871324218677244612009996873936128965293201353161618774686337216947007362084277800936307838235365064556983003678130973135920736737930387119338317160243270761841261534923925726545166162006511838545461450722578909153658378828981984342646344225563876771984143366079866708890885780956582039088281595642367716597785191182875468253464959151698838371909166568533476476973491427301784097018034689140046966517973984031040394970666745372520930211682409040496394588775053127408295686713515039316032770300215691626893399660432512493025621097553756722522017749989310863757620354707079117022268755962211631174464726893926210073594037220719194629676321518393945222159094738491588522935190104874841826429885441939903997550905297150007502571676417472871446921601814627890093803327547711317225062304188973268353212374333899418930839172757322130399537637462024056279129451127756957158574913541085076038193699639216245473819290500859015026095971044620206847931040031829531680898700033383729761251907628766330015317617412062468129812273584027767986894002181697726755339783239990097210625179548543457601378627859097409411805059312345154686673453055972275807042075450731504772519990115784056863383887834791218083325392456071696989664589626233877468211614479924904915888720892697923716948421335259216106854747303776594656303679733994066460185371717871067986660376763648708776384086467342731832995493148202432548219806417781019081267174397733563314977359254117041823024254788120928599838259641305604619449560308322993312617592819459339088555460959105913264678842107613046529820468313076489147314921506034689197873979795428541704351395652475232935232636191143728721047848115351535637242158211049084008271280311063036906888818249429162757019770372079778153557199728119211374634734270833269040548177908373512982535316757345595005887799836358130210749169145147233914352290389312489645673814861501938168693102211384831571046463760922835480709861759264889067864681930785195398116890873726234175801598305625469420089995709765993029305719660336013537513961259702618470217190306026535891173343278855325947193006841108782990172880376016814773593241793714968485287536619587307622067393687529736349423860128500906233658715368945600486354599035103830340563373696149189967817870556422044004775429418225152572085839871221577460092236270044411536078027389161627000891050578705566849428346375770999415951576382489775098099541760676627447791154134050568985766280017818421296298068356561674688762703101480233758907846698537017326893988425640417577640871185650412669453772033415054723129536514733047150727920503506304162025011457347231373971212474442463975134169497091748799934211418706051483037568563964227350383334870792238186137278692542164643367617130876096364623416644794008800292588028045860586916809110060322226818852954266294278351719839237161133900928894689137884244531431825377019429877586542279970181001677174991621106836818243580581248097441357699658148132358423954439346245099504978827335629867783935198672624854230749600867358939322213188692247579242683632726007391770941218464112561749454827435559812770476408943719205662451017107981377313240364952678595049111711550502992090358071907342136768705066578610651988414513813632057899348013527560940569165393412256961431145560348170178349599505695487378787381629790235233055245808349866656523690629798232987548634892861931359794781191365360530066630299471346898916173611851467516739981478542941598332013310986601097066107340349072684745360552244488137226022961470579454362834773241397359036494610522289041939008121768917309357340732103259299932970691319102212000643787344254558593994013945389791171889482808030312836589145612958205499832255075994603225964494625796845068018505848573577607368504659636394350192302770891548797928463489359067811132955818066149048976726598515426472114007539191877116078018131649741594762465232658953341202453609149779133639820542611885342145065705824584362606424630261163084058510598963987103417014935546645206521811855293857530621000075614595818643730120539289801518536261070333434354105872652565158240809780491254654629316127428265196330464957150996599768856148079971358077618766178686130393465424477840748605355328630793980767525972974113099491438296057481623163960829682222816156748503533766312975806613138457911082214646504178823223125945465237759502463880657491156728506973015271054144680271843448799852642170432896512520050189672590760180591981988463791613816310918597680749402982567543747274856632163121653401884411735821969829930523300319029593324927579414002146674717373886211700122403428058556291745487448158550432247131410280146651082506897579059580642281725669551262323296330602416751885441776316462875132433280402466633420331784071236242025314605379163994707500767128706653289568483931142865086950298619918024607607569537237887103478255669835083474210380251325658668907369037862512401208739077308078808593738624906963507347604827891714097069710267765930519910742351196024828475378337931059884872231017347896412704550803240003979298967099111279744024402432095005621731282196197484096683676512107504718194878674373812830078918262984126043733985556861206891596572442651684731844437938717164394834801874851046239891469296503380070903922853657973942087383579012109739337135696768838255390747237891002764812429742893663246777123610384079092144820374390846704250207236957738396329029630167691971095081416509638476420658379803797476828364349613884785037526592112263783778669455799969362541283293295586149382220623110805156729815449417560931478028978043943497823740212843171015865177590178764660022808964291421623992381360022591302800072137144347858170747737252850194008467456365685205923989695110776775063822984135210092155234629296586056236376380472026071367530617941279965298372910302097402469926063499520485396774840380868891896457793520514733018794657879216279332209977815260610649230428978149470407719991136100384231541998239434579175716068577661888600438708444190871685888889073666780444219720064319852986279428046424459280091103979149977819425230327844671754265889351900695400093978893287345254538271655386565187509282564980955946127643871406963461649822045669030191683161715561310397815206722776440988500494745250369645960729698759236656401644575491392702581811670868076930500249140696044247220263453272424895531288740723340752526593801283591306955453806293430660010871676247747191820000466319427761859077683283314362375163901590636168822318607438190786642497429957268029114741916545197031719414971937355343033182956496438947905305648608243044153867696532526610338911716923610030096389533027140443259776045985387852439282371384885198708536022974660815278204910217912948054679600859676309468824448200507255749672490886563002046579152777221034220047305844562665519480525236103562341146721072445558154758289265987008550709361380272956748991489417673826676470507694583642698821431815035745243339316011187629071123239216096941555156587532829963265468802009029270866536086323652310572518232152642820742200440175674456288319746688086916083940896136182607771008514121160510442045506381744907273184274710175506579801370658620706305425833615182529545898315926695471631195031463488902676488450896373446415460283132588711369046929294133947545913429851538170561664548905370943715827839083811062124576462584775330996343998610475178482007316968899141419992536843728928585930731541403784988269512762727556343710436080707810661413747511054518358377481106161671920406125763556193157030958043598316376939766358464507068997919037569962251216265255987952386673401743126283055124202044925861162546339269070490325242306269638545974065659027661358336436151003983839120926781068559437586992973406764293020562817336475886644131877572900376835130386782224037060810429330395797721023296974026554665892526491542634507626630093559991509537660011060002568852406388542005350653172299761400184327191953900041210731533215050757127732214581775120052646409356623521599618271764156497375002576192221653073355243499442408266043344963350706980260700076152377642198388676699001817459325409683778028157096228740505103016820009777293173766970944617415480198888153335503874494793793633696241477184107298464080338552660185347702486478203625019763467849125226179957143832269732488679466121033915210056756589682996675316407671853911796232803740792557866839308732083588439086261431269111576613518981653421247599898436568350980748853814580993852606594359360431913108775494177200286347342635352557234139159858534671291793356402574012360502482383079408966585572018867574404071526647555515035118538651230314596579859934728223610183827539949075840280967799376414165712612009460106971106234639078368173232149925980694423222712862378285973559229317522016293424461214049317025187318894965461211017715651842942536985509879904579223441851466476346093067515892752527075373580092762632562703662610959363688792439746586044713096568646888547210584257054158413079225734018645695769849740067086573448764516173264037456027276290883079804668882277621406722500524657618727673304180593149996015564996786721412107173342682587661206158471540200634021002816040307932287876632388467137901747808449752630144891139264569569303749693625144452304088560741921757577983609903190403769051665662329501372280004953747684563227218382420692612985706164955781419936267131623024425932347121503220389987047603971884007827458043449317386430513500021132602181611488692277929337024790890458640542172461462015555920620897272348185649570968936844754672943187855877074554759098880723202432944225382050707043844971207865439147644494081107474611625460789437689069192555861882598711855864689737162571011320981029652642359131577820958777302263420689693907668567010824184094058399066423158363797060196239618174489481211078356929478449391426059484817340483294123333026441164253469974290407155995384031008393967047786658429235541759197069813156495784714208668785517578769859633020280905446358615507899321126231241163984017166955631550259799577045694777526637314733711018376480165985914834814700748006827219207391660829432085871270882782150504111775040428120803865855826893290861486174907510306064723743203382931221202924030722545933874776476204919785159808234291840675556974454462298006026524248850324131909670629295051292853233800843368391270309469547394539830856050505125661944312936505960484780917152104997165580461518002033556325088003085220171291118599958693453548382339450550650100222661867763979104675856558807309702821298350644669650197970157133544986282123967937590912320571286284299908324903641560471660201308495746567887251381165812278945325453094700148822457151101871207041001864895126298420033198373257621160524218554949588185658466736938010613148247016967900846243149276825220721848144794656345263802602110432163647986224364438466265260397996137563650367409342514129457635526977506050118806600484264486213386560458916988285273840038211493716848547884374911977931538064133183437957908012880887301263548526624039868688204575254418570681016987241186653316975790211204259814381575676182837790523759076811835790992147902986032087159330087074967828654302366889227708760695368053003725514458214659165346325460345307759482104053126407988389744450763750014339782729148257551112390001075143532716923563476115570012285407428924201772304593014522058113024729188747121081088059563280786140399986645497654340868772408926821926941976900662867576605414002170495535563578902875085074309599520047659109482378227593032876544356492584933406408747421862172009386384890913350293637408575867408627559027335232537075521924413774101547926364099619513291194006160391515441101303887877994673739274867909991071245160350041542643235143271379757770143885672726428578637119794545407945126916802552297363375595408540925739232538559250383384127250446136954982878824700177854231147728875477029919933660793795747592114477357008572216731813828958977273736052608792031913718537113828380320121806765486054641529798029935341363142929114331256845658866744167433405472662231046801575902191841962857485242608054178077999029534086113381337176669037479198130188209427453147713541348638689838974821013468246598777481328329391649357911581499777625534032958690450589091071499767715504913849014513703003488374863860151433644269142254796124219049664045006709534340563214875460864050226365296594464576271981479061705740295316878687590367352292532965015733197912615711277599933121852426663520427407987045422693010693615513735411049670068497158262344542593095420439824794482347478309677753417350104514650925588005239991585925358877395349263998122527613753292243191987752232411978951660925288533400556294147598096679416896406367502383618572563449678884105935882310606417312521687946621743269317443385312113750326795131928354923687559367062835500726908189732291252443451034056118873686639402547190070903094633219491842687060986788962100388874892344618802590761854325645002247623531157260612803316831197486745013724700289693564429948273937378614202168118971119091304685212071678926628722114303911320425253422317992621430127458805687751227628297364173413419008252219020229745730945987095581609867735051156919941123745760651782577114628082447402511845863233159033168997470162431845274541367461932027714597214895362690981496589807631136677665585111307391328983083853983983826739908828666790854965453529165903707057205121762619036485880666140376088613139014296204961434969512071303409124268522497460341359211861304756719334760173023658315407981780029296612264525841642959936358795650275902621224527092681633971490452513424396366430931747041646412935485135692580086609809297195803304792601815281436991777395295758165375179084721984507248839111342971934782138285548451594441446249447553693459523535611332512794253388330541651344051084569006347027299495108742582959966427949566642079719519897586881646137959925748878799305384099765336407106888523695844535447977253637253097466074001951366227032335529231079609931387143769133344149350989999611950329164543881899593443319805903055568364646470857818278942131420453775941507810156296997067906976562240413306402583906237178655198553484243998337116260293801144745378615088040437851299613794506736322123089399571030036574968340575488793409826576432755651679276026634662357065689236352125468524596670810276439277216215812831232157919024595969548656792311360352338923842120685906110981985305730988795463002884223338241111618318345500080436056483830317944919613515322528641127014374462778278813108660933164160865482165412752478646252435813713418724260027544715658696648747082713344388965104300253035536709373014067223671369877770474763668640987236974882170959727777861619996814684807964592413334438422164776261115124922725167570916320976904692316602686127547410812569412708478868143652161265685562048025238013311315153407276217268431246381672258054604364447005314653812913412702840269215964830018793443468345744765894207420807096137555489592654041116313255968971926604615529169993359341593051036707706349210166659641249447328651260778674847874769889518031084838849425847399676314040872632288068161874668331511098409611660910362442334116822175350327732225466035277170293378128107005083950378638253273190529201557877866360703169636150295609254692633100620885453293543876217944996760673357539142361984600131184518425551275684900928221393293846979980867826387252916159348999417950066258888110084797861724440050588516394857880161911813889331208127444797300630617576739824782400524989638892592376502769930480124292179649220722661018444986513020662030365494046849646997067486626589529390197029826895341046306509157516607799420442494604834877148822581442632792418750697679749461460719844409658522549250772880308240907564236685605379147759674263375556704428938896018720738407778460029549318328192394415203195863400149207413306634378911490367727801431159438064515604659438002277993375583726596772987903122792678014126103599133253406278645623626779350627036054237717976176564699012248522269087427121813862125376870243845380081860823067383917937483791063890811808945478812027568331980173839292421190477136570224050100195328076884610463235124986945738878218646814054146937648015025051239681223405434254432916621894359917124222438563244031239696780094474147232565643481913994030690352801976163370453370032025658169984647497459248241626843668642056953633209610484335004781131851436341764055921782710650577781270239663127914511154326799980896187746573223889912120435141753871333031975444615298254187492879740029722761338506886351540980639115194700760868759146888368793430860864200269707023128856186917148922158142559061942784022691712091664106544448752395245606333973092611134091457378394413178386837872105960819125619606871369877294275418614918747209116474527232778369324663358043569030825866179605627948884084461880564147809457527774815651038896414951232047045603931783623723230964549892323652881773249348109974418949176151775813120171430107308669354742178673964497342895285805582877180800216511789923883278515342575587456656782149698471160762465925700566341246802380168356033110154353612387957901576021245918495218224059270438662567049431752208402795805294500499600290406943721425664277501366144307398710469526164911884880006480541891219318885813190448025482073760609744365179031695666898713750932082962217998681855926219570493240550903359908807853229753691214837017857689680532341184475018178716530911118623286328913259791506398696477270488667813710328653839006675172353868749266050364357358069491842410891644616238199722597781225214407744580947227078934714921383119235945888752747290833096560381339802395604671838262896036739900187034176883981403713062637235229784400539721411231183566272911651768725265410996847824478284880660773084352627120143014623812038575354960860020014934437263386123794357170336241018223346539841284181194069117748523241501665756983264410486273045514659886557455118798637058242809619170941086890467798196866597503342965673560243125789714849021163115472332526945198340339320542169137558723796269897258696153931051592542930505147842947563055462680607395373634580106940094124340060103839661547600791071094469639107141601417746827561297587025021902229505164744048686703675458643504866138969003956835418335961719103601860623760242713078083088578565662163247819959615446218085562499401009905440341972694407513863631980713236958670682027344253677494368531514455741242335088225454450681813618011312993741905328622677767969868002975421167657035445925561477031636436434469201807161260519190421299577888314667611610729303213234203809329731506272989344520631814871433183709285368792970294819334184254218931200453494656871221411171492586655584053272482572884980807680465451855240637100139341468865792731065381842334591246990951708622651138964296711775377955377137597080300784627037094013356247559140752876505402381264333593173965745141945200014485873724039946281890760571098389443756375214104102511765191622793199971471309576140172867039468364936600858207846798810362353811894344859025305911075441048503556910251802033938142739042407549985290501206604432193436045989900570018863096943117022452464379005767238992761724795050624168480203485199411787870803926339435817527915609962940292568612469205925251543568696857189368611082854129901029557153594974204772076761346680489045243997114120509711322288674283742080034302206362106177282950891672923943904407229680527934764429626339692672033021177374274841858445294167377484834229039312958961804191079652036808788533046449599262589356730158196118563336701643917588496356207945403433739242135817102212250066905301447338916293289511289464490036571199522671688307054158674554634741442624263435889767112214745393236848299707533493898002446497034048993021560639610159850175455375311568227476794257715970418045449818379944013048005219478030145991227597628912185612820765929026133446398739640577263483153935993055277170105937777873918398992290353729696488934593222441636000758086245676536793863740088692991943898012132683857496776669829131713138692072665367436181037551308474055685215777285984313434887736967318348100826040482367169825681464347747602524660402620860616198923036047159820606450724448140496974146787456093398098312096113782040175211888243641835116274695897258871462942841014516911779336204470417867410375895625568841386122536414096395420352873443235801289338555487263179778690737273009732172860789705001163461514536714933503271623661772194972957834357955142411726024788181870533920711437093549798127875194287560110403408613764466447800852062247319715815507177686604611772108617275259878450646193635064085829417026154605077855735494152808550329272524017347958598087751415396908339409068773381678162595681692920285110112332983843311729927966701179052850328284296744857141295811111130272429825422451673790125995712832493702216465485565341507783782115561408902760472139764956720602682915604838011659431953409146769997425303907434462996963242552846063015385935450958345675651755056798956858166029397161252061967316341254644773979420093593984439768932630558591588463327877546784769433967133205385628416964317759226395633012383088608678918693665343464171940926056821727232371678515907962654174221226281158591974689264031554626672992288566109547746782493576149271519032358683161388994221855027066519474269946062872530731597917786050259371418658573306175759046201308856442393263733644920932643784815922879982888807117073799262157659095734629039851289928989692865671651535579084000852244400408376523711714474423196226343512770136932018989534664985868439248858916824048727238553721851107440517198234047790033616470654280380902574183035551067417334867223882449768142878361345891922885206339139939680477587691289878794320984658470292072446874221107479536200001202065743334803631383577822884034099814427837723300716020442962766764912008429530476996403779833710939246247264190807752466411150634722857685481952345921433428403978896197694491929695188772438637495401713254246763264635498184392039460480336962375745704353063388597366029017662872456183099692882401144269487503305568689073958662756701752686317726823657016637080554870066006661259484658228457074630667475309555312052302599472305148043075612637013235713797927543831179189829521416110092275048970695204448834396637923387658769457995632202151860636943991964870873048913295944069945053090619128575377158654737993189185190984017881520319177548846444245654970979935340977432819655888373810903855248492196648683595855993040969357955265097576931415508337327810840978200557987077168354645383864498522307597474911788489160127019560210315397820964089450894885882551591855582751610617824204405920710428878064716836931589499906162332496423221573093420976262463582122187019264212163214763010451956699085511714103978909796783702192788339304475301806801869582448039159980417401721124849181458037864765156099261413234826374820915058095424299458596811446326815288965145049918760938556195470300406727602243808998357025581249881591522913288667356455447470463759575117757114895130359756145003505665262265956691669118391711593939708656712071322328629099583896152911378546334496025188826346971042750898015762778370518455927666553230037636827882979435603355321736365641814944809678924331607971169416979819594521867460019821144542010576470939897070564657124713225197886865539217395992343146209171836496433455946643637109451395650152256244655940540599226105105737125530857890415930743774635507491654640426984593501797160871153613874715127070291625792311900374311277286099751230693563438389574707733823261881467401113270468193576880211849666705431395395253122541997606354352667659827908061045746445456096344428390426227257717785588767284394552291817160747399866237936467195119707733103612442257034362904025306725916070390183190746647555700017164802138850911570630991680144227241761306289338058859767681683532765227526160198658684178358040794120483927996620656301937868752277388826877787392974621679858925923369063924341145151561266845662690080350181727180494090362125327424999402291779045858562702773981892739804940839809225506051632206450786280869979400127075206134602948259634769336678147765486121737380729906891463554043989973062988752522318708609076572022380281914089121202843165561184698813352667620880374673489234370044403092927678955313483242058069675560485118983081252959938201328003779490593251446364794099938938050061931034088926951192177945283082766493456568723278225460853804523952429380313735000524806743030112198019406915880904095753919312685943219616982444423081998466000937473543249344433007237847862887619970899288462845911969771584480726904954251416155086005378612907709393911305402968329244787207951340481327669769542453979146760158029807303125634928899602186410829643600486531193667870161545822540974588069867509819429643470919296337637040927411095709392223550470855152467656791474663650006666564967858225206834423042775856114221590534231635687322942481209853400129316106634142681734336945511825795822773597414389250033251214074545811922180944148268636608479398126262702503208704166304147880613477666851166663775883936451783323994067613908922463770527453334908325044346926766264717801085000112111738202239074680205568915100407715416939905207511934587013890192041680680750266141271402961125105612709929869110055608596111817586191859596701796504091220393675157625184402242233826241875275932928099057828765847873145932595131117154215411470512465188811737478978543703172714855304522212729729537274327643388898896390757505843189233829946879659433852759378438511050559027347968520690524094798564594970176453582182488511855583514044134046749956970624580463117334933144821518587008754782630285600261134356868086640865227469266223341114437059267291482234736080633410591276834473116682529001079798730506405394367754467169734006346908256311091299762057508865209960664938818366351283932137051456728245468330328917017265518827038838674857127505826679954267489919634849047533161609152771976019762814610454265150210354089995020758477297805815419416285233216507370590581085603218940253253947864099908539232341330248751703765070234771711356267708424591254965070435679723309913455018608338570670871336466103073564823686085597418862396968842145469293942216329366459942293259893471250832655426241029580829162093231291294902380227803435904525682876455697402530695788966358991627059743779722406107970036880486389051959872074396341164303816686983271792392619216091040559678783516726374394713100340600454817192146814413633353705099028046240175248756193667486087030582269129756266734422149423339620037523356417034133033944960903844913477117622417604916294441196321977901833650982917669419973292843071634452698493344634803993408661493648216913409264667424997731837781266745832550391678961582947879043275835363618094340028570330475103174377770442238939588074901970719425386578015069707717004822427523046331165763077850490221144007431084000899308409478644427390422356267333067421025262602799297018965037411375518734496661314105095618554832586876258462931691250188038656370990503627340643949411601848435883954013096296551959996606660467162909953686990523545984870603571816133903433485079876620763031742338818465700518527144264818625040648952264902036902391391624808939542742018047973039929824855113324584482340140783035565539024421257402615897131735941797063853563742745908912756860559430678920072991925385257313277442183257965428352421062064180190445859973585736116076618743778879740297223805873324597371397750453656315438706254199011463020175201447405445560350802689105014863345908583602929251718937878779195710765849246775801416069627293488689226776750963080791463933681880802987310482385429708544982606195247967823944882248186450538452083061523656135413701822117925501625514604298976988007604075184511897300165682475480216357799665392548310012715070068551277898738257694944322283404030548019892760471147770156980240052104248563322417567728274705479684830613746593809434568094556390524138861983421777839447529528226514255899325328102626457783761328289130594376453059918526060728428512073635847625942534472434444256781104908197747281394466875424743160691850704403562986941623774874880311854040527710125197847148053083683836457253404627448354639825679164006331971561848346825779975570865437030871692539102686469030067549625803477224486941441881003180543589666667039820249215215986281025812244698360432185145193831636359156803949227474619796576330660998719438276414975106281091894902598139624467359294434502691938109254666134440199229839777782069475138159899506762915509682407986890291439297608548874184898975533294695292220869143748306253154786577812038962846367093978109089124948634337972921470172317947705411744094161996322520659117586513954160491235915925974344573245039361454698998438945117444329807458055965330293639775374325484500727133923141140888422673252984025497079144630262110959582893039651202047926564317436980756663121671640526851015310636244976452176943665541544430617219623876327376481727585341372468955483422302142781264667546143032801226146444228015767703076708416861311555708862952211537903277078868046908379672265925229037471661324146476161933563360272089443917761285095085519673913926487174218736647349554874786876045250300114326857034648157474206486117511719606616206772732448967706437709794330539276319276572894967931491949744099830642573144213849496092637353822112679479248914194351729782423377488325136589839638297051499833715245037520019386510041364253084516834631380830728150728128826976780884056002242371938475198773927519401509927873975925597065365073527321652456100813023737329978048135738037926849771403667980534716402982794273808215992447819984580784964058026052572945578838749761812042192481681864577770400537622462009243745583747498695884848529809676747420715649102690917265431840045126437875112649798689345006437374411700683661208822172014987038557871394283261746239621932374312708888771269248289610076471299669123545528275353088078812119889294655430529881815948772479156409977251616940499696659523516218235352296877112100452241566813461953734937185390161256803856073936664004243377973144979570579941567319992793620616998948076380507957796665419844253860761232433972632113710922136228551759246108640125180383775574238722529547509859848332440880738883753752722869598258518278727618325088261164515544852653869709984791148667788037033728342348541649859560295945861076025958904518812408426282757628110278353002003705842668615196957074936407575562921589575787319580922285898829936385220208845923459924894643676570904931030137359566572893040274345505257409262540836856064860201933092924298769743253840274752454552164208051137328492048745526472455055263614862065785113282807397072432680874009418360658895092794795037225907172950791670748911767971554324027960657393625351130699501066784684699538978151658269330959251021027852966581943697461560142809467624657074622843362240498226958834809392765779654740582929865699496509998708944089861630568943041378692951179675361529906757039554986594172290714448235344105651967724180773269144179176218529160841775859369445199126928072510329880448614413722038647506847147002563735796359897876411948682730305769343441352121965280524844907929826394496870643076230332501346736053645193583788065282724240194770130114576590701179023793932761631690640852836202671521695965986438290280165405903115590601206652918413441877734967989769987759885243096298920106631733470929866364617622561060091367479783812783737037512830184494495754769120648941198712612420159295751642452504736781739100748353327428047467329774051419070932195260960665485806675127437055409567796130940387293874386580799336639807993991043751615783813528710207406135766853705516206822713750609105452784876301250192609203505468645688420212533798169749628030768531167022517862376469624664642425847674560909842920451076994669858724619265965782848260178357209399555941502137842719017339927101999440237000101731301175363460298012468672785050821971197766656200055282667253729389337995654076687577954606211139368924818194521663512973085910339313012428616988919064977369662335655121543070555988934515567507798740395102895214714138938133860448490592330066492829996698239686348077188467452374177407485325281755910761842860630697499014141580206514063297167086431926619082703383224418848244644546262074217630352057703811212138243495659445115875436110788021001294285177468303234486963232106697994820639545491642067561657924042684532298425186116891814054740948694258477795288184465102893930348478316102022229924571471274377497581198614972909297705365932323848921555027441816330324387613428707383700868040303144023881906808538031674839361585619675873327608959678521430817019728476341843896990036117616024426303572378469269715657654922941414694737661938520766546249547038510179705093616535552352544918390087856773887203498182784625015006322783756566492933395984760006121063772491844511673352256580967162658142850294388291558821240125146781428697455036590987556740793473922257591830035458654624427659552745629828971622694920746566317555281962637349232465935974139910247886354691420995405243151790876596740700053155507876991716921385980450364511857510428102635285345959166844390163947493738753186927867126395887126202611789264799957324009970932125359229566912482927935776423111513388223359359520830501180846759292249213599183818017418098993068486324026039536882467908646733109277057762324843558465611298496589841001843020031445888172610438030842206145503133973398433476519170139484108435727667021456031349726234503328994961475196938038843407274835728358446161840003861987769096840854042653591955262121683923951988708490974244679036734419592261925471109259061018720724314297849005047357016106162810293321900065321668876109150871684437623068294657702487576505204757479022474841012730482031612152239591630720900087342464898766926058016328246439666033341239741010981890496974548753586164882189129848927283420249834284988878748811637781490868030002896671736657835992501506184508854196146029274008957174263186556255297414668145744462663050493591106233668993018555208488813326577043505733867774693078467323139452649428206997749326247241850317652569635301773688341316243905525178831074677940167703470530266009302296470196933826419866594334349045047678396643012072061356720855262728676148857994941907454176757764463889172246106511804756993617560521380065411855831465580722151993295107974782089610869062978713864219726560720907319873587726183067868662316358957618671680511442036880607633506537891123877153435467034847792294741893804196224595334401074308469048559535610472780324220950933171334793339130615443737164539126514915109878578136986121221101269854375567799474259122842414337372451837537700511145737237683603570838143442992302617320846283304320760199661597410837771504421901848148764146167770031167704041901940362684438027813938283111020219239604052987246082318854909764624815886142764077475232036668247024433803569694627137093164088157771764104086049195865534337400008165917247412418784602563716411172817932853743055270719474508650017289453542855682390595379491185197234898424974860074246440543634763754681904591811088543944889727837869515622204642298376162461986851329814054771654826202435648960073503415305845805972514746038982127649678189258040263500251818767400157886149734442344239256916212121914076921785488514465026370094465704831000172032025140369706182043060547057179207207325930119483017308194428380342054125760477760520382394429279233473518178025126251503661027880571859145182422028675977333056547006824937989194547921520067069146301536707451273615127981085785695445880409436373292262241082886709635283548303973307088302407596004686095243252901108155377109843392081957659620657465866325567032976075104207805895691383764093873819449702510128148239658441682997411387089555984286269100047964905544723804376285867771427689472843515811549500571422349348909469605813301558401485531743305074560929289851911051680090852419064709999968987491184812935953510855426490118993291781997188471527209408386576488971433774126967901709766358965919823776255469425614528619586755721504828125961242268987748546051086804450218019261743029343232799373814339038239955616779093434027534706940734178239588044450152786309672325247229741860487174155287884451245335386969752158227975779713416754981866230890747388583919237366628452511534230671257443561093311952008273328264102453208640095501649008024022852776364981046496552480623302257799924362795324729083124642371410863293824127985929862582719478518549756473858314834060989423686672820023383689468709417791239052622571099550987863626918508257472472884108711266467220137644841783055168466630724555491287114049505105294260687218648035358483093262831622809113087780024412311938057292510535292402828012215447027643750873225790929665069296107017664593477219519393680632443920695221066850059042313097883294538203917206821861576101408380359687527855871310480248799263198118247001580490840142720464874984727533431813919776788475975877167420515522751699210041662368249240747501936605917050772338005259587490985593706344420744356002917208246289470186975366578276892150515252762908883125118203796283473459867955385123036870445153054564578325402946325192145040049546641521764487512334289856328439471075102906085396586791050405374628395325045913892683609837169526082153865114618558582029270947380457975550329474566141704414055283785609557094540805936323012191951765302439815786943499531138840360420289939430699078352798482103790134588641114571479974737959402418161580258601611010830696250177603724043638100618730394065839476080813914158789633595795478190797587730905063837012270523188575083933378918003266568171949419274902593380996400021019647497796053494285301937929813150906675447887431602851075314249417260178411470033862248563063578171072294276649846859275742159490699372787374188188987538948244520667333523327334854367191391359746263726637633185067699529904277003044555239835546411025208213711796923501329898885206663253383522267376342257458021291992647527114637138751876292174955445927624374176423954289625264385839398705986325564357311097394844783087852388594098479535670255085145687414912761442521482998789096246285422968015612827296727773713215694935102178198218046525558190724139830709206501883525389225718525698227946262747305244396485141486561012341127082435461148732154742565274677827604530768461025441968900390310618959692709999199751057073179110885144001427725008047969871565995337658359105281722896483342271243931046210099142879484449903245441724244608423094403159015357994557871821765363792075607629920899844911011589047703279481453679388635254309863338660097654671535772709472575916884333637249081804771307058123745296910372004163477088423971026194488273136279307107368175183086877612321738663044414561179168477444882799166787071251460461328174229904438150301538571669766264620851210748967378457271782137623194748871429730918113625838644052567161738371149605199982283035063426225189441745735591075532269546765299125683292556077891676386030108304125295009138133045325018897406019440126508810903165279251544258498374630636248592750586013393635535243763739310799324407022071496498142074505931130782846530591564040453503499507526328616672926507408133745911585255628053207059757216682984621931432115564784180375307548962456676382325073351492293190880541163386525404461529615233108751880143653760919034477988690843809977291191746697534400588194728289713058384427348130462330778227942820223315861350886558248663236525181300160245661992048039691120825311590461486784943798394415725544522122688896195803040121449958741739826186667354349163599867321975045847437774869631342964395198945444384206832455839213608048794484030719894814664210538868636065244254020206693775829709394128633770413436730966649053845303996647967919194151058503516149249130771549726846296268693630330111412663879187033034192232733628833036816719865399564537362295665125506745962183395983079510132428132574515912383790915398759007465246084383254286140927856282881457640716576622630245543553696694953743698968953449384652344140127416096646094749094072656883565080097003492326705550146495496789581080265234653146068312973221139380945111801383066368750028137034526669755769053887329105035684872325477696383971528506274838135242984095145060689091046352258198520215553176810603941818019466462914360411632304600756045117968588357320365614045985840128471442460399585576584821004169346405475412570983469196976087815873739071003993147508298818876645267169171768024032774861624204903549418378261105506213460694606572252676075430050978538976551976864724117993046897217528352299858108802376212434053897008388423425761304780682352939871432450207636166775187394310771505042775141695935794132671138762004162458279027916170363694385045434141470099872962458360087672701675455206169944054587907643045960190785050106978069999236129790288658491633249391037481765871659951605795192507249056413310105034671490457545077122588247035014970574959113091572772637137459740641856997241541899973464498592694981096050179061341375839093743470909798454420560584408904222941537194879267720242092643606383173960412156770360353474163736837150221302237127792516074864259784435244311385108275895871945348093170283857994348449153162323962504916126584585005322061487986521112250971048994214987003625665867057559069907948102366642062622862891161340078272402879047782951342543703697563541323409498192398683518493668471625703321961063153652392879835746281345379573723114997651775303868960742713895278293139445676176856251865333171149847404677026055239887254088875425614796417739061775981944388647034031822933631315013186554673173410764320625301391830027834682986781247179694610761328404020233751119502678653987442151604465789971973498776926091978123312320147799579208068487862726254042275175013815057647596948672274296773849892923476296966471959326683663152526802479545561922445103637911228680586479375907614919556542331636578372634188726192335151858229246260359437797716752050623991207560602899715267883395195778405150018243494171892994537822797757023316526494864009775759317071293502942790991005646226213549532612427658226713449065686030685499180160995526272170124882627028440519530481179295437086374516972799040327356374076290783418240998903379082531628748962984576370399578675826814906811668239978910762415634292126477596908003075644996946078103114292355067970409670073124179530784392634403341133835120215217610876672120594789234920750890079791679809400418259365859420351753026730450413168415245652921535183524624638171320703760499791938643051586156663553120658992281593533930279390292847622112786918371560295708278515229233143244283521708801557706800614578026634264969110492394320611925721602622329494579840871793388275344476933676853652338614838618309181221807322121475066801836475967801118275421580445713120952820172831701458316015659805261360288239537493228098779328435600396414294562141424106581727447307708393685704903638315303603505690355160373023479200308018233796526840119434149117965803956736294684711575610048090744699061451672288117034885160271892503087396592140326899154641204791714178679341207964786104732663337681892770497897514609489993784963320821418239426554041510785194732015877737915009243042769431049223447432257648378497730656363432299619189015912435111763291239378598393657729842427081391536582712855270942101619223809855675892634283109004813752640139973869312761247134588208993986281931054401447570107521904678915604958837128588948638871906866685394336678542235888375629119351925342329204269495562736680014876399746140857949421894586999476945289822659207973529403031056842295378902165259657967982945986673724499058638302202371698446761718007215368431846460844458563203034696599661555924675658125380336873060007015989199363435531386891128080628311714157136263804163552635268017616096994276302738406220107712862343459838299144525896755802282318373138004682611901792653079065465123991618219312576652092959419759335047052027438391771636291563868390240846123814275817208513112947715748784662885115280534543526859324462586637504312812014222901016265481981453881911786874412336089960945836055261390325836739294960331880625780455319014970909988190419524559862066223934478123306625980396228192115185081232892557323924733736007150414665945901940310316768429158409098442354862380725827197340986944107729243286140870577603347480493556602086027777786565358307503331556244096527676767328507306239806234602072513842847488897278623342360822527367898195053303533008410887997028946123138966872954859197837622977607630408379203411970276361914121920571865456505914679133293722516209227347339338092673279718077553572022569329982101297985374846127280861039282892641609425414881616940091143788144195004555809649122258609588441808079730783907501268448889411654842138139604268152649305856880717552554523747647584285553934062615876980264581506020293273569090421112036558250155638663673432721250408321184718699794533014849426504550241057309929168676234441502874906965610569905760414959740778694599020949414914031307129352251778953971875852738398219161732946046156705059986141005242327583274043621254554318897770276154623253711223559480320258971924908072561862249019035011117187360974524777047446651770748193824490024053161973457700688473914597562738665383535485557485135853640929682591212630117955295730654098841776428635530204276826559840271577837682836377157209041253943577406979510028628283132438818049386594990549701754466719207282037645236054761134360415119739769707729315052851061931807397502885302028387334270896974874054342977454891620558050490902525247833449755963077248732216897421429382172553213956513410664088250764131969272432800390826996075815537175419799309355058187103275177958604443705074435046605707767160170150521330845243413267746614009943937575405496624721332728629351646071199855475159898265884847890912761586234153257237880639254359435843018186498937254847371897152053050723765778535962608075729177407699258619540409964304607552147515113175837494444448910837757781750539042530764359265719626699775957806646103469407542605151275949423101288557241267996007829160664698856893915093964538788560416331244942215656682519525331471580865311348247303332767903324807426523021353984328808845144122377781073363017592295281971330532672554115085767830345009123076325360846555340003627395169938655520223598248962255272015988103532745826105790997622683740062006860793282046410997481870212463151985995935091900488617500908986639781713537148335978356021326900311548903002677728818660626279233673086093646704750739456894380643340592514980730436234481504359495379322936491767334848086172502960460361833421918400304584196530256882137232930931500769892491284959844309891632403111972742370310743661641004242083746237780152380666609035429593949564846191789398576463308313871118275930472064292781069963753577025371122099964155043905384340381711543664764349555150839487998847754698376152858151114014561761557151441612220377847348428267479541828829700055596317817427225964024293097703874567952925480210419296001814457078888402792857435327412337668180580351839673934581623255759909620520556363918482904045775977616237516326863274000503199545677914950386625879349449478476643391531581965519620836863226153574769960627421817149158661349368768276114077038892409677126710753110949291034144570255093655309153901981889800230910174407220423103466420601481680403562180302365841005604119925877845829453054168420974522874601834275548131264955094205619036031076472927455605875983988328244411961730009661061410178273099625137935453414360764752480914507033285134662917667902430611010322981018840768214243710054426666859622545078440752307868202535974553393060803508298509512396419235031523648501922754956218312351450408619133658944242819436003414755483424276533268726765769613803798378219500109644018535036235580160955504007091012219285379922699118589878263325474461664345514381156352964731993245839396135024217639067061947969889918690732100306365158721553957596520970613428188033284932588202514482388693247364558667096163532329474112796266692835037845913050549625718091857784733553109239901167210759878119909707255772003891534007894646341506587192944506521581176931843420275685501308254732017464803309746915948395868048784678625957808227032900399391301183272797453985632168165796341129030431182303391550315967186550921618588305291866293744818464562184120034170321119414397788168897725059097858086698547924432518784046236444576573755592524883018428676539161774356724363880512210433753343410343054505147353106758715728815669279414171647547872102562194365270760255537884724658883902725178013300637237673670285382921792833782021473910423785687644988279820234996911240409035071189341519428845193659658709539211983294894173420677430723025584815928541084211250013038049091503757200182757827268838375197784714643861926137482155197820979451406301971101022697432702847424309334679919028153293017933710048672629943168143693686656010482088087662175336575008019311949221312606818866460496955840187526195662728577479358505729191927563974640929179336209667451761258227961539067757070598042884517883170371558136166292335224120236528256453646053767528361222268516499830707854708935326880310135200173178521822462074824814859628161287967930136761600821875366675997112259843065677171463977833323357042374924712113036106886237175795895491857741019023789037001331492023941952466025883117892472888587240279613909497785755699274412448786678521112187132800063527684630462281530738030123554191471119237534637513197575934158653889728200490620036280977276344133681193630041338809887133125204779249692999366751886258751640795263925883925044189659577844256286797751301670906844786177513012408980772437586070201280412422793766111169550082578146757675930222659171270932390537757411441661232086301901359754853123787351017417020786474584453029523065760311768567281666586404141131400947119316412975006017287328798173252789688597676217873398636568384398826141749862115179466338068653955514294574851442066426966984621600636315120630561160880483029519197775303732598593960264212359379454932570491480807320507899593639694266341007988016439451295883444234085711545778580041146721572904026090197609118487080588133585730930985772122582499673738165399934950877218665191575837067629553820396268558111052729987162901264271366820150643708485819883973668376934106959466537676263003054392220736623819856125941643695955900197704708918405038660507230005357432531156479807255474951889674408637618546714525332593576897707857742712320646851844525402496070679604389196400513541616730483306944087505714385172341452270459027748755350021140981773297279633086893918425989425386872224150400892896752090216977505109945293746832625782707108859283649890980518989596944388438243625661680706603422997369142166679117010039952341769848845557333398770517823876451469994515176383462293905020767836890433381691936205901175908534008773291749948609909936588385607661139769915033662123341971633507607788637077140893279064523595580107353328937758324076280435715536535127639422885205209682295073677181045525984979453686020265513727633848219981161784077936789443861725251080094524821087357143048361462306428211893804378755266347512347585291522703872053522617788185835585234665241692510512530241872024615445450074336366435953410103685803649475513973057985069510002726766448334946075686574635408796294088184730033583581141750388351548616063341597024717662947099789760548301436833508345791890998378963399706657477783414542690815872727411303074804270233418741006407493307696503392852404082877171827135780178261876674162608074604522046592326958611862104582296204442194016041245711996539245311130732825939975978175223722980240701299823985117383159292995278185002461068233517301141178826997969481287962509779693394488649952735819769955239228985043169086659410501150694560360309099655663325078663811446733960487222708727585635952736443787757646150373800556410246500784131533477608099915476513535260660830966052403131716929669869670533410608751944320409232462963621345341270633727516797692467722940891677870909040756825784822175160105358922158605671385653204138834505272953795024515868735457814184053864733290132088766495577040903934288032900261100013504676935187673789810193395606061089753720512045607130974403327855321467793856741996347903680819424255942360524513861551106469544129254288538869205176142366700891714856884179621411553881246147574963079178741237364811303254631313187144455152278626050264107428124878802219983079765559677302605447076159665809785393745673284533804333107446326286027616948737222216761493971310363968596472093018717297011019940597920762864111549186222120277861247522529321479997564329800991900362820474133079103552637255444151142924273713423856550000416609494740253065408936940074787126901626999040034530683855228885566288078491748581169511209462580475786783576915941403477069896409994090755337866900823130684838075436929158365890621654262940178275136602949696182618298492929202237663256903792569658545473584045992857123680195654698142184265513547783714826299581706590575928974126342131848942693376174192705055487385229021812825259436165223960911433658025866885461429731352990831199316297924720841737053686723692534564557034091740561422583861870332849580462011335966930046843021832042514287400479962859272657961748098074652184486990119200514926654962929910180686892631617144608047454029260521450439419689769224388771654495719690340253703509500535267423775289190350121034967486829421531904920291442369545356013572148489476630234394924614197221545589151406379340915806408032711778999718031378381825779310123225794941478592370489549895499742615916914537683200494899738586627262307044289638929209057021343363130262423541388612159293184351315152860745683358626403877803918859191141589982973474100580960548079349934873558613586213194294607131140705447341816573946692996438492010285091574710788293581649521808379277609009812521568959571283261619892019912694617255603365683403688295328709237897802860492765165959044795489421383832123130332268549671048823157181268771004517332405987144284178775474234726247805355527837844459318761060259056228960015973009055352829019229449955999696469141427613758091027468510333892037196912712845708137863861819519110721941461629648506682692344570569314914113770668321289759288149151884185537480310937478327694712667132759407847887866912100424428907591922023768675489544775884265319480456961978545390637881685860550266185425462712444701073281826740940990882907935643082921979963280082598043702672877515143792342060774083670310903308869216338575136918939525384528857521878745716310523827323683473667473392137668278683509453927667203171251433343428517071772201693831832018831896175824560351958116303417206475902355582675076448602827964106496239222441497887434986282045929434543255713205519468371065771458083277361790662057583263012887083136498486982130247041295726528444014599739394050018858805793284441592921517409093627103498211195726324779686133216550685988046312637516878006122734025161349029112432562627857839931010887384241917519835816572543061228563483878913762523064618998555944006500770172278571842404320274942889583686223130510739814552625442561828224305690121840660668390991084148518646139447337338440768387492513446875800531931016243227562178561603962347124630697210665810662042848892229268783862788157234952447475184676171423014647324702366614701344828528267827105235583147316383891823734274463584690180683176530674363341716945299742640551739556420339205866083505159445486462967252047265885223400216256339191936062479474877055098781590319661291012881646229502074258797047973245663309409913268090288878699374301788692451603038995353299257936790084155505097144901960212283778238848742825210153486832368581063136881962985847121808187077908034339941465841724406544799021730015380410143854338518322976620550453620420459732453485471277029482695767235367544411384533872146849092574263102237285554522943946311117860022099266432777885837445149596589085383301599767582454280315268805195154878334617927698331722242607480521384558250903550534796561094355137510572211514265657466580444865431612136523932671612732842855687784945288002869446267802087120322268860946005175790773053764386862592469700621275861653106165441551923418223868646088599465691385955381736369883411017046020773367599351106129266475149907280647647562172618724943107880542085347127252488748083251944956312988217538290958068068764802480395818028691261961831688493557307581141582556813747604767895925145767476829420344403138302163159051511491592867640979323202096265787640912879084094799517519007348383012807173484223516530921065544056800708171177358763383207956037598830125054681733511508983113573304707813721010734782013152090276000871027604239083470504281775761802604074772961015038068055180957285427831492937039256180155488238978261038899385151646394896133692885585620005810704237120371444641115868288597141000799221988193469104970248074302150386184689538032035745442361330678487209887367658791205152270126193270504707084777789470229495807512936171572731913897832712643173749798110131875017776457895425718765797795216457246837909325914916799161647248762775788568504222905866082583711818984988748899585065961423003266845001452510234375792527585616480253680466049553393489411962792052266233182550151442987643131580308494074696561073858340910677047152596105950783638603368278919350780290112501115987009571408566441396286567937910318459864576258335502382048915153418685643014798306579693013052703931524942973935772449629831140664802422662445475774924735459539707333850447671557659935874449091199501265296687830767024061188854999409014697446936355099909078666612053719509502877551842004209694072359134492664836813831769560947239240033213191932009496907661577853271841086952011455072462850167755094029013813291667545995839570336773401488807189291696965082693313185395894337239355428182045410394026997842459913684248832879970012766377620248127479853035433266444481595512439279276434047320322796701351078201378994504213032816128505366278138810432029342177388663568039035848678410749869827090728465866258509189958307459679931451878436283710650328002238580309909323625863287110385778483846654640618922596304699178111281373235054780125482844778264426102324602707153809335947116367252303690283336491146391954271134356646036572635261599214389271166036233111477130214786342706902682945155774171151220534665799782097537862080570113797705663470567846906165415336114766252499675280758489979913895922519783366997435296647741648435604314354462062285223058284186916870401666365037633528043243242026257396003958485760805164700912780521641931837877371513579563525486168815279145595054994111765785510976393725223989772682460720982406272713684147963160648692602156088492712970516907680364072443221486726570579360715735612458128456555043158446642537214542432731295919482335098433079493670250547539915010365812069676220678551731448572238344981468676691546750954754011238905723738361494108300406632616048006469552289117396567212701073485112787289044756241565291845282496381020433245770221790958154903136347852302288837324827865588893244647907604991832812830900152784506513283034739924587756520435974773383632279218533395806700469491605617149437614663676017156539887404391493738592740887960449413525025370989480706592009658406953907481585122184717893204952713066306242517377563306043943176803412210036881942621440844837343166267338920237657392173191583780064234591184467393213012559479666631075189633833206845837176959796057755826426582284935580174294999183456207505383776365983884422508237914028033024235405846449592161433772385184804351165673405666995798266321717965120420883514142569035125757479178943311256562574115607997705687536007184981833818793620684576467670414486371117409597197307072535486903247828115988442263774880981259394906073175469517740416147628544417256890303694372166673122526226126918937014589482895350698803075849219744174655064402778608398561186331362569346696671856217433137667450665814453902828966751036170894744147505083296460255600470639585610757848325465392383852948137685804684630738480479152170644157856634544548617552910472233908927901308159800163001603732616787522338621875582680444041704755396495836126672594158948662285836946053881593043792441855791759572044473226729899392933627461941758183057741471747454099282681032190016427841531304650651960648725818750724881875680694893438872545280496727572647123379053449034975467044088022160696768847301438577254357252662797509668573587836897572780931919766748084127833562080963980178980668792365981647414641896304266760945011167900224055114531737574325299446896613097506601698378377519608132309447130744493965253063968364913519538889187543659802201797798932651856329162347021955385173357304236482543934689207324882376756377959394703113534146589717278612327429361401263271855421576348460813184579368817432738105784443766413053688452033346046441160993220657848495672748093565652392611646385876587921739995676233187216727074037162739397151108133602608012893167635080636534366330324929956545937811744301747950942527189406059704629202426868435242913948170676320684246004806570590559671807499538468356633780217555333285824613620995186604620008965107829517747643795592722660553893323691372894888302075924310630221158615991046257231571837686498030096583033482159702232890718629684904804676927360973992714350676949942586795016955011951314235220332758212998317414063810655738989155534478655872401916669469525307078187576672872522780497652767445573895867603913180385456181855902983877049650915393473283200169795200008929723592678174794429234216141271005056435021696748330708491773734587766972792063831898932641247696626414413733761950320891480968382886337256355681814094255221671248404141308178683628987683230825803278143760907382929379719402830652979980707122050025800138094802597698545125166006719477585129723330833102739417033427709787024773272363843723572001696509196610220910805767375508413084418551995203224344075425993743620736036785420175285976855616301941015406344597252625817111045438959453537691124575258453238510674219999310593611807603196834094849827275482908180632987017252207897569759979573155399379921312062494025009921349493504589040767735378600366225388431812376860957257237525957374144178221841200860907817345250684727836531778102678203144243224678409901626337520117325641937434806766232160391525390643140152195700586702274404676932459486093714092654451740622788743682112490484717220262198366447210984743754678514853408049825954397213545331875842306672276990038176533099553298693404144768474090840657429179501987606812113201706129013449407468379336210149606007761326507227351281585616791794408325310641818835532809438154221599350059714738623322543705678386514219291014241692327918301515756392131840409421771205434652766842382954470022533371083893696981928267583212413233536105432852608214207063528775220724916202451187817307781047406464114122001275917950284754996296970039490076183271839302764854610190337714274484447628365630967025812239285657723152635101153261049060332146140566709757906678816510769168280014489745190341308495240019694049604911058038619641498920176338214298740248925147904130309534459670267516299737875872790072151720700747268632612292424826940924520325507402062794298357205254772571095696148076498324632508630796167138531948451779908527232675767654632899553124777732951232550452092124141947893493825825508703770683627616393391226884828063822425699819557726748759023264338516993795896093304332414391754815566864586889307348950113234575750049352259565662457747709521556519650816229540162360376442568091121432633521106298886898634046007133470053788114244980049648370242381138611732316415245407537342969898503175770689118102843219283020885349494085313773197430423863896496368424004888296283455869778062448361794620479233205980400853373765115765745390631597186027083654252944583925296557239460907486197965347962364677282320475217128090184963965372768417875297693543817381778788591456543047568491702698876315551721535051581499020143926346493026588623677701435857110318350650421992713067914191426686661444647548020433024545068675395780645582874180974477528429930745244813243402040340208848619782061397059135330150174055067848653770101203745446950589480852289883128619118996943592135434935543677284941249108286459453500736760815580729635097913176361937172310724300146311830897381578812877216311242599282326677848675208259662790272358107302553576711434651147021141879313069511007529608131977786660092122934164049186320577929725597988081394482041316252264167913710131075451625638471312866226962466344273006513476145532956688098087569645166737245075221296587523584258407531224836918721143104173247582768854824614380667162684514756754636998328560949014429537920340621662709717136071806075390939250681387628441528612136662584381440536837724000758474930417291872234497581636919125385165447686786916958760312996211344637275602324058625632627851719448397410538046988155336254013086950285686367462241271597643984507144049141946354771179250799698167251899844409138167503262626021697200150045517125493013950572030175778116227746483986818988719983461789735482752718962042086249243740626160869871114166076531898124214771692682029358316472622327925008674572699423533422090304251772942399271618414162900546908864228525423122916933520322867281642112808919166726373535460874683175217386555879987163106856745872606935140278338384280787610252477737862262221123405679392329308366753783907652037881501426595605613171284227333032220043887710963100226086951730133018000731514231919584248355796941399166436895825869001138988975387125123734025693147469348815350447625624563992897671521048298139824788413037678973125318794087692696405958915173820701973125837611144093050960730051502597716439336951230861112148553382194433740536683090098575778859935697502350063797525657566013305683853085721749631463305066454309623107364941459799374028490022243580746016807480132610318412599173739529598645294828035208106811972480786783602914458849004062940692094116864861093953236889024001401231579380315713324069946186323192372421791279293278318423046007180531764079332010665134340035832629191115279223467784869263767305093336219328666060000794004731779589376637835724023763257078860395620098953599044380789932473897759189213507698994173373072201272647867236102482939183465587602264261493643985522071002809303736014840989831703578384926360223812033131927334713643336611177926876409531211662677902818383226643735105562074642615470796497965542400715332450468827307688884038851316411055640804121393875775011114201156904367003136593231391398773601861227652215847374421934191461022569111064903800063029686358053194453938835429021386746711837802989307749389480730587533653656569076709244713429255963507302183072251149738356345055009660095250768563219106302501900625787963862274085665950436595201460486408740227482678286330828738867210931526099686726663943114267889627468858823880242949474724648272940641465996729882522621764613774574316694487938696639292637856474160334729795051342620910215439449959232280716887073321669329263185231342923140768491492170249592592900480758659900276187108987731745534514037595848213761578158171641821413690465308873734768024112937520608792468492965125147251420313467032029935306228410821812756349650700887375365727515744113728782307963888794143811465938519592296810433895562213270445292243648886697643606888862488959565857747368173152077631788635207737144656498414801316116872433121497850352047070488387459123281127451948835301834378688873494700316445429813161010575977676869976884690863944815713935231891383506871172624874395850448804292111602469165494579911190745052529299063127532206414482502629639924765805755338591254839436677281467752087568336145744562187101169437109227246493353835426489836049831072513400308393986467817222641420136671639796866619030380043987089704813684225485156697544881770989520099850378635736058062193856464072089529151396256670708353469167720174512787425409915739952569738110320136077700628560022578028963177561455861972203153711656223667523976532113841156509170199417059464917956504846532778159438736507245097498424710836994151049125825983073173727459988913542984392233993778098947123936295698635151790406626355684777066608411885790033556014697118796839110344543040650566015403523443665539647510706471357375421440008881710221226424863037619615932310848204882300546824001833140258736619753396718837706239921576868663031585673893828956778490293394153401663224521949022480337656901164764938616164408646704666562481029679715257961584841070770434603169602523497315141931816212645572568630732269969640073411209647503096217903827987035980440242668424995203634772977216737459035191707068795188605567931249560177527607883357384596732664917333685134819530690272122267239669912261938764063136918663373337697973183280434463921490858583772370227303985642196910766615166861607525260000553936263842555938815888358266475658017790496448631301545203240977545622938613412985489627165784113103863238057057446533057553096351089606756212850095115442336027545578534930577545511883287703949292614941206983790578463969887941068144052360026649085263416173237212134679577771411570232650345400237673797034378149398877087876787741494140729821961821375671830004089375066769882851541823446027773544169316974547238659665195784412345657569942532377674027282361203945529072296228729413202257584454285292779086250951621356715794242247832192615752354610442387085193777894041004749265415211917130215614460686667891303116607540209815431060281775150667912824041675857189241566177841776008323918448360010751003090757596759598715161497776989223596403103162439701080871206230526082189829706178013579076115103032855747205665803406908852102091284694023406481086115456697650399952707715990458241582160158869410327799463302146555827270330868371866396399320946310760045841805016320188498626622439435126276703778571932588027088891628464609524604961790894347103866756886107781584488087041201946590304949504033012459507931194635064364756233313289664233963527045317200091477837974417604158256158816636041859001768891214200867202335235308506240641973951384262435453564552108785180185043325832852766937854838763203596874319695748931912012922053700286222581274911329408159115599499931705975117898590102735304355276031361841146539634180038329035781029591905328979984406368180550115036089540594120832938198349286601498843386100055529738971001511603455823408838326024642073567952326893520038971740940798882841694266780041167036328397386570782986980971495505476799484396459224600103616001669904296659995422065441474015024409572644291660641812093507909378685291885188619096708678777493222158655959376172543398309208040670133279742338431682393522391075943323689391046360059835625383977551759427817529942099316045976225973191318333536543396610259331420361950153983735421741954380761011328929548202405686738122936238155139088737823488739236600194338507016607902674498821367972081370323166750317262564443797702655746071507765942836691205473127704337549243163743367009201808139432119974677066274125192111405376737370809794740095783123226287951526042004725068270066046710165282400098531006257007761979182213254427947502418337096803545711889827335709478030248939267924512879218110083214782706657777985514134768302853040953301412212523823240722100382407128254489678734167789006271632871311782660511893039068507442535384616300300302901903442408595589808472688821368952279656661450139331536738094660987415143378849800342326647896651366798856083596825915868467322437671832379016436905099590043707895371505082160505938310008933537282248795002038737132189768921918848758138964468715985353557429915023453950334028449799488961473211009255065387858151638424053950503878693891757178140164013523215345930849257203643902328353791228468549181152377655922052271202942952515101020150882876756089911460803874014459036838890763337742540062809184601601935144495811384252845092636449550285503084453393128722203805829961018529409945508103373102564610282562725979278886211054363572370887479208285372531637485169902264099058308065384901113594510850650989524026390094648074159799265788192269047476130105605024971156548982583089015536184400798608114395143091812957383451341895568648550913112425723350284983638581745817006025090190762850934319374447762455993930701942232540766132057010567287026611866517271065732689251012679089646810795115899219044996975336784161055534337651085923534454962471644853365760121486778254164120210615543707698861309149881097297332027874938010018898450280486192502683753837473131054346694128119209993682027379029187801683507958033986895747796483992820122032768787154786070304593167197262588422251151403808020633152698179396054607451942350239635439793132021711418972568467105362074240605667244519271743290900772812248818687877257473929687486029445722638355801180556744304502953439605459422697410629494194592395866306010801757097259292939742119281210438556588182285364623430340362946451731152755740115529439431576397039305903659847644547748069964890596747210387174509672302997709727191610168270004523063848847293474645246772481705694678054969911051693425902371866844468176860309884754426700513222877246413787373772015136098727537878538104139760669205923744490982313252613653617812928430868022796949070143282463856061059932827339492301407673991044875485920917636631574148807761233302151046789760397819862614358111537861777886136742486409021444707185432033917321133065408484673227572079704820622300481118303759222017058659455637742647988456669055713897952650295567925953950331627583295576908039045276363839733499503769340513290534972694549870358531378027329525928029452080930894766206198459615108758465940033802911781567615372094535407093383836329995675763015926134977036959778649570588092555959548214308759900830762746650735933385286791226000051416700211410730102974374589599263406955178097675875568504086119798558768482652899301798258737125047824289643412439053659171082903035954725962836947918557184389088126522654706265918352146202081972899742182536761557157985911104757591609549606837763510050347677076006272593630893109367316766276276064386677155621304908135565346807205706251314189894104162215380287892300668224266927705690161939874687232194381243134724555602542975229911888797838831077081275504987538911387570955480346423687080730909740062574414936526795736340917633799174720651512160353894869748269799614942116125749046001008801667438593129763194113369605815812677351601755778363696593871251859474077821548122698422300932877158428129556449348287652922564227260215988381129779032581629801011674736635068095954180790789475318290407516007191977172172863766759193101405102691827467275147002770050707522458212724773274549500436069787506435941487521873945468296213050788351406407321544432562425941522930974676334363064885397648474508776424547228239883680751693924132985780632493770360308296575060469560906608860659467763077924821253617482035270038611558707898134758571500776950463450765987573324083170333533835174245409681587836164311532444773741351790251766847401346043560192406907145226308212416218887076294507741502423741591480621805184018810969556254538224683344936232956758945633715474394071820561291111994326765739482480012121135683745572525855650269027881425247686071701195963284653956346316522832430745856502006357138403916635183168754178834848645570785483574180192173640480486829921585213622157378617957484924095675958433131300981407215917104950371930260098080995535689582917529376592554233943576178129658933846669796172092383935786433547520535205452516783325325442875205074217438175756833056968808790964541779917718796502650086952714480505067998755023463952633245514378309936975607864401638697991212489222076584000615428778839704765056052235282458884158782439484191110627399651654413501678687646772218048682035719219126618477118539794105046248221145685732795386375149224671731668114638830916421367269687825628758766563288590240608613077001571138658649656168468607475653088964775202836381773106864252567193562260159342352763583688568686458531797631688193234929574645790697965638589660629837764606795836884816055639603567208558151314346882373751687989548764399710181092905371177295476197647339283032493929911868358368613220036843785110516193311113692496331892046086589016887115469512393931585027502023099709231739316374131286374887699752849749660333418785210083228923660688942580045326329854518930258452121339037907443806455025466772451014568051431050241197625397840062299128066298563143895064301310617243052987268368792777372143725170232881856806028640142972785162371027024976786138797260572238992956149766939669389684447065413219103492772082531165170569049802383392359535144022048501240334731224013590674511376967489956745812083471211062621642915285882431575994320381322566831575407997267764975394871815298742834407506907934856619715485124414718243100916843948977493321180108653324674256553293311407802823511519441346572954211044008929991025073637795184398752343436555661047064307344625714569041378406752058228859278025801101176206997482928333813213212616993033376639142737831619885829262169366510353196287550887465816787087090199394519835219633899977523662076190131375279888815157782025057339881154377969815956982458597207144526588545899569050776713112768732400049971160179781022657578147065249347751190143688865090014695629065819068965311719157489146594222139550544865585703333507271264728410941877436346226107715001151908039289640736701413044989974986101246622070701535207998327938096687887623888025767768039064426670613297145113463751537583103554432286697688950463690964635040186258942397544431122260384469796838748886681020023634955926727689587914689332014036510203887680183116550742591968481166621380071840585129695827296384732769574647350922745510464090712593027342092585165649244734884742567502785145224387372819902647532348745659513586406362383388171715245734767461067746978675057116411549496323284129851654319622121100995679778065094358727974751136899212937867767303339158390878680191823610331599432163607790398350384487957992381705134408382605990273372179340147568152922644435004204310831466583574564063335283442824558957517497620968793487131651104553616598475146413280642690556111093391731109114282288785051380339835971200275535433898344985913387599064130906445406922906434344190469366989907573796995075293280165816943705505027481253963140113254164074785631738991706353455811070157303984250738898025809314466509329350704120633388470142669357999790636279262265346421273014482629575644895423107180808508245165892879024921793030039983255646624368361777385984486034946362735786147108573836025335461170087627970884778146495580693039255985082483922727723212534305817993679602509348166547771068394763317387200866175849681958801931445482222513946166361608888640607095621721837917814075720495818700060515735817231407653331489608203655859723794614549384272057008794408759363191988249658800164324891332125604536509899345462264921941248369780873737521566109886448440771345362834427452019871477677107470595853332197432754143391316991398333525589082120465851395809730919137368155406008672092018374904673941641029717651653269806105761667467319906128040665770163388079529220857238347295938792767472059989518984902385120449069672953388689429441925372488533917417387840843708008001209004253449932847434611486354248864556233850487418948596439464914220789492063654530489169747682931848811350406447597549648305793087871149403385583197784014311327416893920524635322055854960999184032429537821580359284355440113524605659616485115410291868456693368385184224454910901286269802709707539565673666418379661672052639403790612295377734293046802369845857320630722077274135208191367077537959461165616732013839432177112731775572317675699400249964529907410760240002010958269099330512538724791864003871688503555708439171208481769890071653867471635466446367827867968146535906916521804189357387833932874076177424334373691920035532162895106757819595303638697625901296683489183323499508894659841550526736684127070195368754297134436176921398491448640545373639091599416764994022758352173463134729777397538633319236814886651780148565494925060004711052713666871730709887605619741271408900685801703395432978686125357190224828060147287966638539143410094464807354733732836060204830690040913526749247748418946996193324381063510440207261393568423877148477946171207783416313815230707733814336575714177382727815329697157962615631996210479695298553466391231998321062116628465896803934867128382168500220583766087783808328839784216594520781661024480873541849376635540981221268885542676634977538853809634483567105570134875927525480940767967920179411072776512366052350081845905854880691983842075807884264862766735707159522951167826749640975632500395488839384752801656597905563156294790936967373535341213796898101726614211988967278322666477803642696969080819927655164533592537191020460651817400977140594419882695184406770875626491185789408016566897285899247946733611731396817528589322132257635760567598799015089699447666745553836162968228019562761508327597074595017102024258457868537179817752443555758765602345489531347224713791088552495761778376409674057461199454884311861855137557734127967887338820646977621590049720235325959305496182758380902304920448010592331340583670978451648595594769457400410573351524902516642479805026847677721895157117562211632926940535183697827394115623399013564264590788669155236428422275653598725519848889052830576852069764093586788798040127582533087966027312607616887139819782418450149500218279231882810785737471702508005284154962099143278021782469112025050419133823446386374193302495833969009422671408700232623969955580156313931035524200304418159411926112313709549349108278730227317576381043657435069123808049706087619844150877719740017833651950791777548753501848952647642714653713294539673742138697974036284728192047738221052311256912024891818497326458587585372024529187363937958725192712610709531627750881018749550673816176916073727874740800670164955870919349352528999705367982645199108945215248226985453082381982388919512648556447861506345160724694805043660429517096444766835931003596262987889043064891086647321462028880975656651304296958334159270888176003670759823274271616419286179959401087180386575148916488428830500539595434977268009231470082933094856903476788151140579360760131051690215175079307196069766110621534744623427774799906831377183038162884876114094042812827465508281660492875153426043747570637966652703134729978578371491153757753685570277233678416993303225136549752570718318043705603243411373406234828419895097478736233379244964278714362310687347519480757265117735429202798673483872318780178910520379684987374552195596901525916404519008843908015865068235547721476727213887468994368983568326913561742857745662367769183179230134325837110728037129007551773467860337919040150220332001573379423008192733008844468550186879307840747367357643145656756656029551462686634603014694744898131941783285324916683281514511603586803831964852653078653334048019170274381839136168865486255556306376977534008356533348358919996801928530017469789990445497358940619953630094314813912424330561458143759557095077945166502823127808575827836385661653246937385359124615112033341115001121335111863933809178476921974566427511467177953388474140538680098849705718318299693164271797224035652187686619800812142740928192494405347596175346252865250332933651637307526607408542216093982204308438999769263559476793462540787847383271535520484903928503746357035811822663887181296078277271023933032878398298473291953626166755897577101363635683720931598627741013001508025688671051891871586154013314123277330922866042888095344275975232022610138735613441772177879099663820643421512516813908497965366732704126573945757575190250616528065595679829355240801566180753958544629373717316701097068015410680875739594489953245777565601953990242174864475846412329761681635924273243624703695832975645301830763182282821246223313759308563368471042531233234987776048886915588895150361192849274936009588106994971442787025349721795307142519404392618576211189522234325584062649509639548638280848820276403191768524189153591957331162875116278088239659059219760979039567499071326476684569768211844571444398995063965396016212464739249800802028726904481898508477532758432336657418345871244770816055064101595133165235951623336072749683030862667356233960720847472087831419575562862042421127558295584817605232180085236267549496692845593632954446799645417547818385126137435761036061436076108442893596165707735911996604385003543418949479143462870407122672770183429674275558983822310440808206320146267962620104745866908049717535057473352024815561928393465829432578474751734653915144844820896005903123615911860313499463530374270047163566985642253943164099961913669955866655813240926880773741942765962594356557530618998117861043409336963175681710214300424317145929033255858504677037587771938049221022870861629473348301275722827670804268778311499264202152131026580067756732528813530945064759980343114198525948010039577817920506488171707660486330374652629619162219127471694240296371312702650040409458514693880180354051495438487800941073564992893319165466395303490712171969878965796795985466552344737177855527836535912621194781260476626779480249887978105885915208057752245782267793395721462310936018203629589813409115759575840491773654000609295949479850768726644895647445157465201054007203466554137739854806751036087200989307375779146464730276503181286574379544566655906630546730177903966611100744652877467330689388166293428712783397413923947084569339124011051439510591116124242260513917557987722236048958731868034348408070257500366349693897775522546376188704611793529701341917598438007754442093300046617996589908454213581389933385880349309391300873251807593762126336208791202238309080520195352872835760334360049355858134007980951402417667188447680478089399364927427671682559894916797287858919459973040425191312749520522472802063152979179640897512058292694776317836080344338452146569576668290292360642698428901258531939312889881032218860536913189239961743143589260993687182120974810288877774421485943248653222993556432669594807257220290617029011442929097828839552695923987851304853709481375017505220157345595454507728304761512747337917996264382297915813627226270796977482257522570623827674371218957359918080770284705902959304171930803619087408381162881155483780172225035020670495772923355278407855969949041069561090643586278999535002839377010248125197841868857768764372263447866326673038910677480348188355678291507605434730017732816200813441640814835685342423524042695986498898980694180004791358982112572166179144734386845573989203265439224562181622379435586503505321078962886948583824079109686675701161417343011781694884978702672871412733397207929081084655580673170492511919621989664199264152443276318622636182529764462563055898794701647365153657908502615530427550912375679647129568201925727462199817761640145052862789918853066383633284522808043575089087738277755321310050178735604308513855108645566278014200261930196614973111997421601825734823601875589911127673208652703244639447451948939413401073291762961299820433610811384950940250454345792950459077542727524180944460842709537517429288199771625759867774610860905856217426725825670276144021997902870442676036077778239893591064745231687436578361580580809820399245882272246742520530888624496516571422606833597737594553976717240033440140546688906554475652345338595770294584603888486516184028509461440093160726850100502955476303670619453882593634090929386348463675901174472320093241654596673449560323010583061885267704261911543517145659865711321701904144741597787558851145116650954772952077229998049464115424186108528685364666025431440682503255987221552937575947941387759085599055879750775412758329495158913012063594358580103692652486960330958532250547104027775517817864096014297511219142037649638662423978217787524463134340385380938808766928426176084937210046146655592154350568742329961092618692989202296099222821945093906343611097943406863817499256760259120463350802581879460662087052088991242663470029912389089663308976173894817320573992903587064478387909273024447070962373220550501763696227033848494315083117257260059241510415666966535146081760196808782191517744868459119269704454478981183107318915137792583900999041924724380468824375983159865860978409463354047685805834045127336539747714706144585657879136861811371858226505157386899208798192870750559326266789837762251841419044202439377154738668223972792193639917772358441478959592974888456309816693787020386967510529599823241546978819284059298264915597492814377000516936494418290324651675521553091336821487236952225634419827126369104909334290465979361794190705874927535505172087633834904954273528722683720911733802822149360917993375097479258820720871352516567777224012138814156399055448146690126630063299154128347219671359191171181518381641287983982932729476274615444773072627240650317568506871497163800064945848766382621826210653509775258231395140639960325608584248803283734921056925099749147975761107262513032439272737421659556396549260319882402169536033978279462544623810995553792020698371829313925452378138481087455741806192861387630530502420093826653475612172227184306944519723071150621732038063629276221890768927587128288786606583657894399463769269669412926659841848999700648250309094168173980501004244103435978392040351751521130917450864287276458303372447536649108031023623680947482201191674725407785477772218358266508396728787932925110734827733994225586990650734688883501518309153047774850887950304698933347837481421439488782062430457926894361669632084329063050954450860885560082928539371523965972008175639648357577614111761193305021548057337506783345516919089229191575041219726808311173510925562038530338053930927339155999584342255175248840299765748859179661185121177592474808940439874760307644533740942760345499860602389758516695479206029983859734252573362216075978502076566680072344118395469717605183265619395557003153107792131086684908119279697979790972045263430825312627291958160239336874962942406552526207308416758673556122804507740627352466409353482903501828711132265718815613810019629629332786521943071865624570010059777289940423520787480454374318238532289291300558635402369145400822062792356879778714398207801819673361912645578736933938409903326849592336849151906723179493373366046005930820130220456797957719117049878566546003666165985248235315444351558337154065283197471296643019362432632714579501913165410688109227687303564562146624886497497676188380221756668139361091688027297964814797568216290587307896045439818319550153458018429179102745009012523783721445581037927055858124591828373822346702333636918408464592057995049863032481073041856167800658976974649344804763742972528832698461725188946446873978659461082386404742382651404716647411026774485407808834242433880665552846172221546218766648030535037435980188730012484487999655537011888314359180592638559588747547940087327059523851934588200921280490220458038890787368255428412514248296612467999502119322983704795687624326992369570374717310674916806860916545803658557182640350134178831742559672388792490139649824427110182290666875189257800474708279500065039808206190785700155978631850795782579015246096364995575178177921929260594911357355434032650940526387733552781315347986579707007874268164573152507895936322696948528479932178775003480491379581224042731475218455912728003799484414252479882415470161603202727628720962035046459180785309797883209545829852325907964088572821921251270712106750607440697146910315301167697619043227667474155736535441712560584930058541590932883660707196094030515677899315139079379728857108006512461987953513475197663701113143758825003520620220098445235728539062795048984536706585979032871308818041444594666909520373610997556954027748508100746966778553943696719039939983832580507468328663749500046729436412615573780985169078424702509769976717152312641899643715766177437089947424705267987376375323149464817154476086916344493137912203363154245446823388390434994669629550062966091333878714367181666975824982638905793876432065245337704672430353770622400246089318352591884327538340487067940197951655197832262335725653861483389849887612199507090775529799041975342112196658082188514603695277409015668147531800673432525934514001930907443951997689056012099240708628498823184150181116234165905506419288516741288199708782888244248339096167132789877227828957607971715336271511432015086655268479873118479072966669771123915352457866440433733589117561646074847210036307238386087187655483886080575781476250110535932669139946258768583858511905833392144016526367444671442074453216390066632087101751751735831427743528082155924152132197531773241204878081515256517070405709165478968568376597038986653577337377048763839012501133685353171575528575560427237062010232733323224826404532676172812189834113321963011083807766891788887572179452067002208764265847741178989739062823502799751554590018767173628130567763248967376456341744473534401902983601783007435416193921690948140409087113800770941886954909938097445331251615830006385051244881184322546020857264593464854333035451577592140696159729356644837193415697661413815882223317369786512701959499061727951949934846436444649729880766383408654163897241287949588300913375322697895504804494366874115843068252195377063398754793938783157515188390104218454506117274374759510107574690930882746547857075513713005726479542230031000222920241653189934919724540314847976087944860462646930105144212535304626925139485028827091901427760034267633445340315977237414966812856206736530924311527231799095707033681243856880620604188061125234313106081869502447625587390379294208901642519043302319425910032801056631283394637176959309732934507737843494397473612213079902642219094965602472764082354969959000042795831444224900767105686481520530265823425087026567840583001673053352699776284351281646167156417270294584827683501592046656977282062020069242406904636430505848948424979022769233836794069564796862497578832809904035550611700555789354440434293125296788002189534120619699199689669982817115296594413444948332636590885263080990551738373952869431400476321079184421403596874272743089958040127803564765727580413031470894665797086520059777825584703230390602135065962379721491352165564006509886594280124848837401956254936768260933199683006397780620076395847635601221082718049290956615745908093518483233082210643920146826643703003656667549971645785454235411981570512086952737072684411548335374635158673100128444444857051581072371767902325297932991680601779297444577737764647082666588235392331238581136117583630559119859986101158679864953475105666841386642772594381710667108823944697661026228134858215087251512244637552101681390572814494121341706501039182272263726329265374106623464269634067522922413907103625761583871773758954214009824547321060772534088126220813817343568670300999189130015337630593159359673035209859335940076660311685921048982179123221505213232999310966059363346933362499739767697709553996004484157641988843637864667152596491106845229145779656535594955967899221592989022589959436654521995887780329049860252115415380572035214104444033655356836825543219704247990798968971929179737429156706589065759558275724438449263280141443377767351042402947487417507501277220384970304085225479452268885466556528787397449037488333675190323777176371722538719604464664643286697457737192170950215235244466669153566371228996700635167439010683147594780825218590321130120813443330337024868621294604047974896771379802559412761023414539487297577059147587333733047347947088160964618428105336397724102482716904295974948584282591592302414963921132376889035320607831161052966593203806033532099071170742252196503446839841630747278394557312379464959523434725681017945257987771584737565422560353654576954337104954913631428854081696512617654572488618735228352912979187799364529864045388843214030736429562098063527366179984439752750766834287403473133485743377494726759196138017989841119289148998673368599864939549626356097713111661422672184708446105738389367807685505699567741434249223922438697402553309758980966757003906281057958854102687046740514888154695305049046874339733758153925748875573238014595136042172757230407830915648886349191734407584330990853954324935387104497424221902632555540360318594794641087348030682783167182145190318180936121804932546922114477459590829075406495624195775592121813747477776887362104826908099769106078265829219593066105361486267964631092434125002202174304535914265427943165719870276039028115380943675037445926929286867080896579729407420720772267155170323532576517104709633015624501909332476153940405531791641448273199940303808913065453641151622668098106921825443109921844413935389481615400935881656086491633123997177893311093686472351188842880648299936227602247723333318418889730221609613519326394287885701813191671298650502493032287780762113157113298434959658487846842924845912907283381664510393804395974948011130174599706707136615114692082141230751598985025490550173361581707375764246141183001417030292378811953402969300201419872991767245584895092694933383248461997812778939737370263433720692259594946059180490051057670810124043150835398434269421484738589857812874767286185987747316392182282591571493241779298898725988980220272426813355525605435036000649469186799368059697598464064885949110040275859794017827327765638364983491323226594696722317382554936711642653117053988112880804572363443820395457312363422089970488837695390929061835076804310455665801623363547981442336130747255081708778997581703617300192498796599918649078744276872063068466901512582722333651879848500250700558308322223291176193261101698767805120919698386823188563881031022606915508330412067327079117146553713919996863407704908520996573015477073893881109614456004002031721954117141622735750138684181770381996069099571898208721516898944215455950219301929787059588118721450566028903251118963449185730739217218391673950754515924660331699324887045128327983414320787029788057304660917624545340778443808361842225729139231158150510763049026290375972343857376526424203520117768518747358707075022029780358221120801538944143971158268903321927641894972066156945275971100768882073853256050515922991993576073382283170622401416416036580691846638445950423587317718066389272216546477423683139773010900811553159597716674950750757592704521429666134682575806244373130859473061586863413076034152755511706842224198104007860893962564614342347943113849120014393496272535930744960312520391108702460918599214281205632999398415819248452923559380630782356028092556721222444147321033781688364720430021546430228703048886336215324071417489178092647309355448940311649186497671284053624130139607044132768713683673298068325182814711700480121533806776263568695698477248314346591281379250255498639781697643372615114907389915220075638142655479147290244823828782474603126650346116318554824838018617565814437661446172741368627107110176754092504858252467503070078955814747618803368201908961648673536719028798911355899438934657260370408480990643547633609982912304427847677097107407866419291478165169081688646535212252099449348678171382747913233508240493650793888711917238049845595423336163127701147169074136547171142301492729337224173204931659254996268580328559936845377184608727693130551759671810542945795338656484138445871064841228169481079698823579996886312640883295714101899377652785239798527521602513062994071732146204493291222379015162736856215375353022823129089149247158257061490186290085931101233576959780731768626300490708212874458605357028154914860583211038204958625072903738429312233420738466778920845084551329148530394350652686818014829383769642154919859508298910056818211252346938971824086528606314647295724464400459760619443117885764853492004831581430628861220408147846816642537844385048086579036560546943156514042365440180558233742961018859395247473009103108749746344468172063664601193500647032577345887903541923285938940957067386898684592582262257646446638147324022683500942850242051712180655354771997670034376269925141260279198652982331976466706232495609670532071496859462299005715648173817452913683890724884628333752974024300328751266008958786005244611351470132117724584388057365396173164922811080913041020876892412808573371457860187350841415618272113107124332649833030406787467476252318025717672699447241658023279486451398336394176734444657768965332818628797173807295830547696629950886994319229112499220284425172537018214558462390139547800940312259249817542057096372909340758376632569607107967467748979236361472208641126190978628545432629408519421534995570551885150338194996414229425554519703783981863018373271892459156608796635221722769021734531484568457552364793947622077219367862393529998474240015425621463476489762345356455852141889067626575626070456624550110480473977271251594443613762864814904482493021301064390426633127674054543501471562467351029538136159154858772746976811226545293592575184494705088701542603200984360643636330939144674240840315879865286709041777293690515040171908853576930581823233016266485118790957670378718688320096100955178325513403682101643658851604403949846410501186844208720910869497680262323077602304372731873377728141444210719548861401664927705897602352603054036893445938082320387712237727958547876527529881095538776823750352323208189089657069617587544216181178253693789304328509465103567083578518408956853972753412368126940228629491106442088515345159026021663569908431065052374165098454247512918135405703392204572395163738008843092797704131016179200886012528350674183760082053297992079816964644187736566301326748821159151071058739476797747355117311982846514967779526689455386368215400772305514648266808490064646652982514177620401353384197757939495491981296200470253444626757779206304722900814605704874998917334845759211251450988487482228667983781824962040127156188689528567209349733786766156392366281564718812234800979707778769225102161398034060566461562280387362080873053261443938809658770687179363511212643499323008920481055323216558995134332419212138334864377500440331450477648395543069411254650456995441563806136753419268235655089914243190761229751606022333059012205900679336304261346592519726483598706856654970096776328075920421336866529546180458864262942311462095050033632522026179857384440365840333475494061934221841410689564062007555549127463968071488351404040935024792001560977664608332454494923130918870659834154969182555635589738701380723832188909499518376795303679860882656375734455428476461430992970835278118777445986651245746535917668127684902014530436073094057993401174688637778144006592414319502588785853168184086415843035259720853999989760666718819824257790619689357855611385024397628656926337160025531745929440572054920560210927923341129416276127431680576029513029324580506803106239267262211663102224198016605705352221456100943806928666702637188013089613338620685561526895048216632382747651753979001599916135811305149954527372670137858687511268875672336033498447953047488093028501150888453292420306803211312136311221377982486935119996998369433423479682981688716079150611769167682507450032396030369518963093950358441757769467139820135262908064056618378244430408830793188533882403586824804453709525734510270291118708932748919312543600595948815479991863195858532786830975408204961682422092706912889014029174626590925399443270353508212926654515160230283994446339496241455374483012773436341438139934273612870024817920914502581242368715481039357947447938570621806230244685152718083454644606857533034786208713339731234422644849058355393724968805508877395068295606469543250532642414607340290209096887940088525770084939573371454054983794531468224934866269672474362195852580014307200993289098489398894259028173177646118566045174252898058636605675787874114725637549485832004368922517411829567721151784836843383077067273923405617275150483274023846489495748448227883739247028584484495356488431241063573412883679826019151364770063515099171959508023403652377614244076162832721735789976976804839126739233702204676216472656624931519723438515245644269762504457496475070428268720105905363724879620900946599025697660936892184015707474070011118859315873260759312718537647439000926746838081392258835721385276910609573359811669153343905164827946592366761132917526070835313215851465717731397299681105332045593977202621798273176161897099711991163887137661073033542118153216925335431545340296398044200047316678809676338229699339125854749889069229376675409699161373849834211177260294399129823944308391690377836750979915628650692388665717496597320980658759748996114125794093005624532570021284296896488139010125117196633619366424863568585086750858767350748605754283813608121000476951430789792293059549730924247918509735278913599936598436839007710733114512934681261077240404199767125074196455890998289556990564470042072858128080355883613684707952931500247031127582112859256244394620232381154760244086399940086516876435747743344734399063046617462120651503929189485494921925805322313734509012632193926735604973682820656180331138122201084659392761163062233226689834801054694491489274217508288653560270951102764240354871015753332080423282176783011765943614516474865026109662869980862776888739547716725214030703647388697940558460236577280587862819604909391014126728535056718382346336303750696907433645985640691054427393124109323050116250051787830549066503283697438278142187197027160819846814892768729196312781318924541808474258263949608773437740892807581321932761457727156319731955469829139958079234946765978115943318259306078438431231225325887382425554292835854507233692127374111620611426042818972966864057039547825363373478546335397153050642141407094135449499459442291373865140266620522000102950945446418036993756015078432685611865016742506792999814401404068328301221466295827685735762489967908529026730293465618094695951706837034551368148097463106040497034722459500919108244294600500268632219187924697730590706282911578046970350081365558119396413150104726413301147021699774571352825419022027344441868109565267995863833656702669696533252747005607208534726855646727752230406988588426188174010453916020267473293604141805333229586002849653625750810179695903521321897332173193018281619180521517766879303044512651374209937982537271784119456218093122515069601032906441819446127430718666585696220831686570146488505241019234019411545327582724391676589289468114372168494482853668921367517715629899311755849144282521340666090915407174404135714336759813998587092614601909832574325813523095833112933768946649941827639507381419389874968112248552899257505381504052685341105367796061238505432929825539022352298795224594272609564955080471540730367148664224864403804741143300032262588733470981555502095731430047371663114577240193795399771522907449787997268808252203189016120286208633834335238632626084982901856706584186860757783428407729419353603832964204035782204975961420643501082358625366471512457230259775078206679101594112598817389747030420308696128331705362769765357855020285218977165511850926448762218141631395905193645071018725767274463963641740549359414250757221233205119055150536734699767347330843198954838054439185817805432172716572248445363329713960695551949590044550273342626422035783499143446441623711019112910694252527147453008972848399830435677013345172062683900282286150425007727812758897224891850504005598301478352928185703093170341941572336219819282944892841070835767448744029891894747068495025399952080537737465645433503781696024988765918581620317834208446423610307764914847539551773610159500418298366957740268767479163095290226923912942514267075776553619854443139213051693382970452977889490193123040989359528433559448882057420326673839307654557656326277159382046918819783713287470453220307617711825181363528621013769412476271843700001729735413376819644445876128571011181274060433220738063677750725668121975787921030389095456436663302852849798181170692613200130704086694115667270490210339319776367010015570540171074677669928008124724337995438893274154153145778988727215847423603598882014895155101170102178229630409508369385611710009797237126703345787058029468220536704033883887797781300919328708344237633433176403763448533460161389367533837671599656972675565547271232501010223444227698497494177794521433133186482237968523440610983036911022598223844490403605128414224698181914292132442459969050885064802557127901281946335790114332907940249115114131706446861235501336614770647186250460918104859925415174665005641475543476942501140426113589961833199053958783206500848881376406352612383293570616189297060986290678324947119147084706534895473182552334425334097786455974645471587811637365535391247182178532645121620696242259723122410736533344600625567136547705219651357283014824530465286338524603828786768943998955651775918071273102154491851105632332702003483489790242829914865559961165194926446401280764873072096192898985830149288266323805780808665700080704762362711232975353585050803590973276828761358969435083411447543483278409563569629364108431709600091176271886413355232287396986920052194538781460546846503326648849614617782239045091623070514499559775588826784999797221425805716318453696610177120274145540168844528778885838686494678735218358694771814294921572093296598501521556449481183148502579626334073799244868727988158664091206838448682428753295680019881007193813773011924528640830249637506696697022186167483856446942316269626764910605065738843842767631203778711210538760952130706473818446931215682477750881847072430864470242383480493257778407497328294683104440054503713709333406440542464601644334288362306010612822521345715415112755881456783764995173095142071800482152111987938915918757808387837462119810135621365369620193545369319802402969929886196682042500734787759007950158766883004403980871551097805048806822574048535237061452605034491607730174002752310518939141249754730965109039722032152887614875621120969143958922628853603441625744537123953971413850935808220164746026871679115286136875145822739828567078203188967321079524234766900316755062339781896576056491274504647684887316151511057371863262305265973448415247164503477161952459143872782091157311746474181924968062372442035239945365022742542756307025854033316761922051250990570579092214112622169616963740078943265578435908173460166242952950474739839176945692991764954550096469448546414708867372693507774905852926909948404170967017290550141085820655411024599356004901130164596159447868497545120423481023944787389587726651963926351122408723081135423798310878982271297721149462273728287392956696145148694882897228258495122596301624948952924683655794050068825135354016764902097111680484268663996520079438076838081347691987504009701789723556653203401667625956685634763237203240282814121173136413725214643158630135800536645082485555260519462319672060587893077722613364834008263688033927066676071002127787930152387421251720554918509136816122968654803700935149103670463514333833334747190079894616739073937079274703374693027815362105252372699862016360121141227302694237370872740709068011202937152931424323918773530554151407909027964862900479190848530810575331020319311687089275940641928388068055940856973325154159111191113242005880229608078928952874956838895271530311296224766813211245911685971184012404494547534287672190124382847704296465265096788355244906937710188400526352281116933336498852229803853431154039386785153540386684655734036946627947068045963063915161779477759420870713319923735775344264809975897953739077435984245565506421899212196602493795039360660425708963562114916883826937211880917335094833880414504648045855273828152465286092943408424200905074624529776227657006049376138992678718721907568563045164868140321127683349361940848061122127388248476615581165745999108005905750639814011873469547709119481681943360059102068426178644652079504178802790312373804692697614704681616156964069562400395728150465334364455510117804311071604286566464843493617970401184999946322323416057503682149384876943108906605895273591457230429475243321649896895395171414997851905159951171445506360808386011182342247001315220994935527877831853774254534316010813213722153849092057621373308166354912969785129328474820806935452908292182354563570339060478160668334102344266783230255885250830738876086718536985424448893831890350584476033842766837080564874003108933092237651606245181961229291874938513596065592173751406006032445604435764060776262692180949443855925919327739513074187189238829376623955909620382662962606909918031358968041093462564201570067787739733024259046598169727246856202226848599692133108291471773169219938620099336322639581416229498469482036419187362150777758221768402321520218687490251303383645375525367501510269124195081591320249216384580152929490715634037192029025994553361674866223866982200973816485943755695500677848865393242909165770850090372495904558513139108069251203566998995198707454410900296909389882414461915257061926950916161911181521652020603877857415987289689334765907001274209694839090486032482584518944743882342293393231396281417453016260154610047751632182916025812806091786866362147703807065016353094740722044875419283420777988583582010833476327310684289776972834980362578884427768772384406972928590929849095906135381725929312664048486588289517169890757431950903915494838299229053029860339432394322230002676867322523617792477417254504995645240462506325708985912878213726191395256635641434518544742770742004721104481499677033002345971672362608173669191291655982585220421637981960831293582604123367504558664726571791684020604227747973500160886697619966874464766324206179449551851129700164874053707076313646291434634229564426812764740932340517189683997452270029065342610153950575678538675329509697705093388766041037492317427522942648083230407579256853477697810488779077701428110022563685406539190938507229368647774857590750951193409509027355808358116535205140571589422858908254103243785823622321267366140773979866027050312284679401245229091977862360734417454897413724913187844147906859485022493785365842920088142892534611635750161303226429011084221756639029068734043279818436287057458032161820022972456482521894852637932310283169704582201100159149164395454999658654822686308452056483853447606541980462721360610761871903927322911316819684219061634491642070352488190102745688897849523539816269207749738019416750961625546354387534830781613919596595810532490867401003906030234351553315201235437171554035162654218215861308776418559365087682965118558028780671373985241677209128291962388537864228361946588598942441427712308780890458012076690305558936745483574715556191271178194023800404890419887915021785994758726414273871246874166305212068319745720216271638827610915388303137744411295827111594408140609259182000006587362798415528555292722333260239088290707525973947985346884289643626188689141397827811586218375000717977876625877285040068947418969328863269894387207979051460696049770546173216784754448130334800396449756378437482325335695241944383644441891318528281462772806062248583763331732348936695263060128003514813111825567104293435737088833495482567127040803774765474245247841821295435095668978057768007178246145450333686569428606476105619979085199022518999875744117635323633794166748226869826368136377353418168872429682349074637451952525102300250768099491439321582254457383546671207664317408950878770721377662386072906506018197842382626962349055613323879262690337932262008159846272498678863002710917564560428681080519723814350714587928557475789605548057990449497786613845139666007609043944106628484240877279935001528642582041883168176899654526903968304499555896737220447287842190992730851165959059623627499645230933725383081580179902887238619835305457492560174329891302363905698751212840072995040743019241699045878618903620653494432278351371736116096273232255295759774399393037813632311289704334951574217305624544098096429798799558394152928705331056309776315295691192443825467908829194986361021231609524591031015330715039881710732810313353061069288838132208518201545321248454767901427459639396512771852468352719493102710558976767995466345844598747158079741735760286852068593145906371780238163120165901851079331296584795761420998967741849223948766452765248897437776346544909766835068567441339150396735794343298113712767380626489486555122719530387118298966396351220738280640732923071052760144789915329548598797414747471306345314840086265717820230943341052335344644091767471647974131225947604186654819547646908909631291861184511589031646586025533451991785909393871809652424089534968607759011383798933717624345595541929885652776517299256664222795922750685919243891856529221088811949846663314295881077402952924250026269303020574790909049740375935711446683653802174715386116613971782283928531778197345840741576896085760368557131209229814170356915411260936884695313758366952858360832307680527316288179841382727447811202043871313333825671837472151513118727737942640419634292022931307588532600100851058311380323297558847462928150807944677138491859220287484088628367660392780089070863766626309103466004269719596172892054593352806700490442701030405187404679799944696370752683230329860567452328498903373787579161375402968415379325751079283889145324497705079459245643045261200614280681286186347438185392883019463800083333123026789579257425129830044217514192179823342691197995834649639004943058124293567062521851964360053321520001537875215742184101387993302604867298255352002965140368675553387367268856188878597570355864330818315896928843603440236053503576019924189084099845568305286696861820763809158126460371638470418630700632595530863127974643606303981938288686823342255890850241059396688180436124006965371893959772838416985514959373332904068714961441499639784477569736014337448104378468372176520967527867982319981511253465492134774636359882940662398029667070369389260063791821294938687871067249176411454266279135573057624186067395467694376422746824009471996613957095880598692536829205272752537857620580059250235729619198051049104250322989282292976904052283859646116123545045463130965602418018933612979916447982995863069473227128317820727515899821565324185595757327006201554407951391146314425556864017180314514533635808016475230603642508114399667399435208457756220740892119027693417088917416884140173940260310170557529255780512545000068067954099497894581760134223518677136651493482618837450796940149486970559161733795629401928287580783621579837684593503872004616800296013338434673259606310926642955495218364047327623606392147200808884869799482156058879453169949902188563979814372343002862462796715197686672212850723235771490811751171896116242827585588923661544138201524045419763561872853762879915192436808724684594666419324456579192415850424852081216274372893263995093655065447297319045085722015253278745510732035101602788690363484223306882526457457621442192075581815103456461324288603867540290355521789774329931286548653722948966091847463358980383096877402640387938240904349964640346565501287488755581749494272999517035425802048809144898701378754523174362914601186157503209480841881169233666854894736550156351162421397312270466353549837779138586551019700706748724046411601997797910454971835175584901315755561162073881513749874837940128964047126287919870980807497309471205450010623113862629699291365912356888638002508172892520598978845441008044681854163652948920581669651074743298112253085924766843449373037218775507974848040517065273747922399180307925027154111397401568240503199684442326196646006199771218585752331092902573057818626954785754571863750716765344613974858890534982095823148909124264110021716500115153288670675270070527604585462511731098507737539418627164954290614653969446733023088634118963217403062070327580078482099684330330851016673932288823249811504513377649606065333823115313452192558566727523789160379101083932808796610011430818996520310686272705954137146369039961239103097707773914119466859212152566900776494831674495776753124413062617266706929318788123105896874233308406487708512892608788351354049172093671171336071192457590060312480715274176778128937508392598145253124770794375660011429398883843751211982031170049486475618070701681931357059668327308691662880515197117666047154663600648690358556276339377606421345618290649358689256065612986295926656171163457513817550217723959357549992952990001581723128724168393125314999040887734315466068520564432588632259791808416509708832678754815458520083039413371398321405417192920816837427539471525585039548654118383029862346621073167086014928625992148401883548700224036999635586768465530286304745293229388076395272366815719298948158786022660265682286091569717560793492129149374081901878005080182049204360754355233229760553148195931377428228058636051069610371495545428835660189300698525462690789468016202359282676331425155686873472097206467118333094771710503872833797696276284380595513128453988773057847436293678448474915412542299249969293695799423495328530230804646528273403890418836541237470893028133303439632473194458811954094097679500377273391596536394698894392826966846156210008315294496221783203756832894532165335736216440100847888854660064831469282846138418540767678406535473650634639224624231731445697152506427482438640163827583770929052073636778901979102339918500332034055554665135548152026513806863949659444607544274109538391017367014923139558333641421602689588380689788055191278662263300857768922633645855260209379454095455159241320952993590527738241485530596425179940990697154509564234146241184202786007412337985979429159602418510550152957534492828773913729592704142313632168836550339645049839762745685682534556403178596194898454113654268460976344798607549217522577652636950033476529022534827378169915461581107282609736805290259614570746368081178367444275009458214285628140046105979688113131480440562525682719534300526800736933483500894882913344602246375916658559577764525828410444861149873103420343988388449231784720824311459254061568133221345106705403247685443849749397319974750492508885162416861379855863271222874488198894673036701426979376361630269118117877114249631121763369890551929633277363843088663157656090649029833259640092019643094521002662427381939488343334208402987853274118973741206471576927271311899401986345541748722381224634238309381199477098686390470322689339076638354887284165317895656956318178268938309801058319989225740974675748860644255427676772002056417899952601844409788798716297161678416126888071718830819585981126900893525501243155565560146806349164665968384204222123815076071521884424454805629485118187671358765078632610847452987037958087152775581393426729312711262938801576200866056003394007059323758869747408557688017969569757702788967797215574557636588147251457414451072098562872394307549584816350966829462693005656514311469384388389191477016603524022433922452251666463184750798060220136658770833772727216746838068374434786594215128538684702713835217597996205679328839174327626170932025869052998246671749442788230898803582294110859987045797257046554087976784845976833131991443455900616028550270328443775321571417319041588998863485254873490149361675542533658957262366131478406190400410105532469668031936865619994797426602825195199477121459499238516542460372788964651340284608470644842601207702439817727351288284793680916653493021368342244509924050542294001013287297146181305447065357210267789930431232951440844808920707282579637055285718866281374057906378108067147426714510911259678256405996544170420398268075203352257326602231570543931283644413391933862363946511700576240322454949226473519583581101771830055918099561076624463455679693261918824916866773116425172414837077976934336411354533206227411745442827643996040686290977885193433966232707739409986800408699835463554942686636299895209075592012444731116347121341792855090974210647657255933569507423771897254791476169445521700968855516335543394856625266454465395862621118175446304598770456498336504840743594794850761097817261212485833742361116783071202847592593245848949598066960171199926376386952873770628253265721055565302906782611787257372392038706253717749407476938420685774320247959907720729070805594933315902694053363355411004667578898356783020153615066737858264339764023422732238132998868793675532080687615338679623214721433786532320104342320757372113653984990184809304274665517584709746396705672107397238136302978972021524150310159817305257361147560443384251232685262464996280119164338367779445801735170265404928846107837731987711762948498553086500776276114075168840307566346001638178508286787656702410201137697429014909317800328534321500447248775901994250787662496209617920143452594591283423479369267376300116630619902160647034301913909891911680549481411073140083175052507473720293974223362612429129553487143485608206954035833458139019240223386919162541691945199760669278966641930926090236253023473686082532452383013927571616383201170874271507248594386909383166352493678295203847610445224773327807744086588942696666722174654932514193509622609127475545220942720343705423852080944945258245221542684372884240382718808815836138719795566556280249801249408470069008002685892097164173010396157959051442270883339658932941243045122007609473223069782727792680500765523348222866202601547931832280763025359011616183694189511784882852298916210513225446024342474047838332479920127240994441339129090111216245329724858220607402135380601772247925884932829191774257168545417854703479635672916264098290616588810512032849713281392118811116028693268321601560342754881515521918401472895058775305505675141696424928858984030698740663276097761527998008067580962146773475303278142289960153914716851103628764328383297162200528335718150063098160433171702753050744400747493404399146044027220829264050171942057710253512845695800115459105080827104967704644595179328070153709096725856810480151528715095212905549142391971956061229190660695065511718234013744871711944225701185189080128525679715816747213381244905472522269901122002537114837821363659896130333761864535761328604133813588504777065940116158068516069792943272508656691672233745967825371172440379405420622551793520361621359398346107726305350853705670896241307401256252311955318335164510609869636214894355166496735933083652303141043022048966751304149860168881845883683901340870384093785823593079336435399315309364498857989890632662752453765146506075091646618783242529778435345147328693400528634515924180918161187858748365492222074122758468462463511483150255909076783351018881004004775481017401026401661137409401350502294113667048411456037846313297162005722530015088299778225274976971383680140189437380754390474183149953708066945083524148319620413836407407120172097675972017508958181177416635543047707914126743523746955434493391830523894292355154718690904741317691628215390845503350758833305561330006617768150509051085219563949511760592300248129201482619979024500821115517927764159005970748570335609184122756335056084299010391137565005133333851598437902536660368467750126714121414734032302300780723572193891862613576372913649746590640808146370768905328388537072265146684562387154554236549703756386602189028334131360499342143402217258590458509397248601797359785801001901831487544201143803704374068355149804172890676601175525733384061239270083006338791269015221065912377998962175389615674316353943739645508983333684176653164522848577699682743534413301854222053949682860834202605265484839749672426450690828443350163058294214159208187168701085264345117281530727150475275404790806401464201957115573760848011141853862677849518232810413589168720950089496914861536226889796407093523337892539356691386206524637860623593703135951446819171526896754878906086773187920572931110619384427494647099207380647764139072191073557672474818501412406291311246794408023895962765067704050797891132459261035890399169497366113471449997363723728473733487945356806371167348849068269564947636410258526218572334293426804750205148223385465668205159202246679404160713751089780275110500139512850101818124754865860936747413901708685324071636858897866883619345668095870964558449419694564140409950870265834234998616028812543078572352055248882364708957617733692899894600662664767035791015557339742805974511442308052098670779444673985678702368760521251653357223420111208412727415031873868633604208389327457686124867450063719148395176735892636122450130961220665640131175995048278116994704982852379481996832673762044194760564820586173474511128469251515231351215700312063027282050755418032674713307045486724111533183281168948904874540280638232246522773040425020836891423177543359255394240603458584930096269667118863742099075313002233001750736429888002263863110552528070093223994098923299246200941801020609254325049846255525140328163929879634198122919126700084076071863736130028514885085698086656873349896836046784835681753129242377893069844239479013814653352582450095662702511220030522296148879168613848187158641603773042276084918101438017865250032570386579813070475982436378717226483106610269601334665447320027816645120940442984232067149217146265518881950821285995529615793110625683117381875600482045051602173473695760097644955902002036695160405358611654325701338380693248789464502038487115207927597128165472485773719009767268541108607248640418049456034590020960133372669700363358642451995412636172317318188700172198220246961436703971407245824454565180017801053423645901057617850844102088049439641962431375273929096239217970308035448656099924339177055075128996176250436819590276975699532834906151359144310964238307528839664696860540114559396990681257018572858699763401745133974985822122792468291018372430148667470630224477377177211314615084249050199857477962993732132300291083620789426490170563228131614100951420176089168647841526785205922143589479840334075342242589930623347373045789898970485500849874754539148225152281900528189025979281226709131759031019572067294146607919047481670550257551361584003170160774287233634371509769538907603453276781019826803147778714791877921244957180533276963733972034805421123161090739639862225874726551912220477289036760286365362650692594008473532410083435927104009517571128761584942807499904879647114081347740618897276753909275116590401989849367475849167745462923169265375941307945279234904798114978119321693960022811979926794675422122958918568514215549814886677371883812285075535907737870741238609300421522174522231328494916541417458086848652392526888418797940325669510685672585312488870396435315519033211681539015005807460695937977545859955590006667464311466251545134635603503412105506632643477884878106339564315708910326292225098947803628154238807147108893396212989890639808101286192956669524976543415074432411524171161830572128910350750313018966403263732831691207767923039034899456550051265696231051295287474768713729548396232795125750561509593925805413537156287192135878482986845531054440302648439283795521344386882615111741617288684483315883320184556813787395521579239804232416245605065682701547880021143096811452980842812081646034529954718953192792590732297159400952531241767150168552394144577186345443470977876239628316659127825716732418486092552390717225840168413036229004418026694986631915569885529922805383812100861909681361148624702329377348909241470867942278338141629022860220428428027555492819358729290416879464022380985613205538250901827386032369750389068504199741378842044905655982927016339236873891121099428143047682645351815819024958836026051373408055198723270440655215086716875678511939747536926796931477101470183085035919380794390660973638534774362414188354706747246567782291737972329186380897996131711890148431539056802328805619778387556294582182282048468703110222154563338662537658410724758569655118238703203871631395587152677170985981003647631251156016112041225869497619768907267060612381898150564670567134645792295486936596537805582671949465318260968146404982170849535911444858409828602674723616289061280436147667158753508588515032147576566372547222097316989012751732281017325669351930412327451778208575445413375359029295463512988621539285612362907951511873375302730295447231875146750739913445300366317930791030901405329466785306989515633191612288480805589852020334500009110748883081995959243177974618247704443443160856884929588612700107046871502019943281361416164925305493393469326394827565743935053669640679551031655669408480478718399787350164818775221673104002588228346459121267694891428391957721226322457003641536967815517073306333625081496620586627756667108154319954730162991341734478854985990855221474078344309074126357456350770868621212954767547949384082519785286266665318730059297081708336372278555994847391558410550951726283840375105779117987601036944881364748161585660965552160463464565560357129696932775858131023817228408674581051505207744864996121067233071516193954691764712308220363406680323777014137793021595389283330833945186709037543039070076214358819045117588283382087298040268385274728865147166980614715400899445148579198260853738619044784030254627714811867849783754867911789731978849983059567828702598932198939738098070003133857449327786860501892129664828961798922061148813521761513436000882638210240337425337026728880904057917409576187962114754277737191382765290329025155711666037006629840732660607142144512262916065789950914850436739582149791965625293462822219156213020502002783066442668619671884608545201319313098268319078446231816355187501924957573077370744259784536721090317228573795080305339918265516969384303192578868088650110364379488907763327582366255854980766048332097864684267879758049937650319223959383499155661806320123299808089251351527707990735755346959461843748792904630460855280931651433693469600322321961902038629080508378216687159356584531093006862276918169142744921228551133385864005365243248153425208615512709455848152114309547633599778183090180880029398129834315569855475603025010891280113601876784313753889474869116719284247207627085795198907034509446326090073050801684084345620575246102361632787922344792697989038104182787809229232763794578020145475808770911797817247070272379727619949541156167907748869481799477270309855249873504082962731323442580010275670968307208924728833007820284659554838599470649298686935180606644129446597914188014130218210843977343706455529210426188222447795825797905590614903373594192832571350079351098355558833779689935643755819916699431791130165061988540613688960150281174632332616315153479071292452506878157026673138749302041208091375709355525019498445305736484945470889766918179034084571967513330961310827639488493646040587748993673567874909116029128454176464831449178126211896419794585138278700828501297337690637669324707482575914499855082443269625357100114160526905546896265226096012184917846283364264222044870701300590565301098556641368747036794027288101815738161453879900324862835655234591011842217850154611304009333693199936541045557427141616822267734707192724610478711975801691209128521105063245115863764650272947113638663197059912760268146946929649538025487490156962692734357331487441737245248517818383823990436658736619381432179237089233147639288582727936497550009345016008001651004361896231473312878760884970822699198744222965828110234388837531785379763708763511218427375719559368207610590299754356203538526753107189583007398798711834662051238383780262130390664153159793724273057210203040161833113461656317531048664273785147773852474242445488604798479686015231139593595217277102572322002393171940730553020383622246884907744467404600204967907132521113199538033589197645798517627863707769811694555305737224752870620781392191903254953856757595932181610145596990669305787256395570141545317270210002175735788697585466550651199333952788104204033374523882774821683314597526217619821695192110372823901942896857954459709358723922868057859418745434969950503344890076041501283629762504701906027925666561772939121337240460885593006712990576733814300090945606325145781291569960835443201696487159340473187593171900328953048798588778431302521916532242794125180478039508235079900616405926864562509197993571236190245496750632374753176696547822662114525572954970851542147287923205681380592680518302065614069790927445487535788744693649035659187141048381184880269360103613526726737403339150127759404767921887028254852985682775619113013482759565193789510616530915780112792447822467714164521660068284044163116233283330618487098335963300333208130018676110308834009692369566202603424329137602439206911743168625124848446930332102784358012627936495202393248292481100325972327135170988246286519923262789704327120880607254931099871585212324992930183899009817744891905008679356612265185479098818082206628378414054835500141761298619109111070153035778089781847315554994096065116045629903961681021843617989557370171983616912468428526107695416993988446901045310605908952118918674317952142521875316713919287948840645539838039575878818206467820569584261744518813984980924365457280467305524219250937492138212422085995369088015946227691374947453719784274238062713282077888927709870264700737157738109873674879917280601693312103783649335492403915660191898595372710115015744791381311120421980286351790128949485746986931583240352887274376952768637799307443267879682487034034736645955949147967264832689418794217534706416674149453181357542289087736978625155388970931985879093541915461621023298927296907953852632597972863013229581579982781189765411637021276444866382043942395133186149490931767485298595277350860497290728950189191462754174450414127752410585643408796331411483354035036009504109058093515718659873652529816757270029733945014893751356108871418077879474712432511201847427787642637018702517440060590738800321840470006755468896775574826175792432000614535044609492777291530216433284238424298499087720449249585443695616181181228673918938338561696170472228319460948369344795991320405534051924284270057552715236013983221041987667247915769210674135822878541617778753801399736476948948581256678832311110468660067650101112199884059937933903564435027795176635238658988489991885477392943614695502707843544300625234563593533466061985260685253043932256370571648272184235230464238877092568676460478113544289651879847815909568132762253569783653479291356671785734733378502765183299992047528543859249743961812983663929390034605993544204658852945062169457895086899411684806171378760948373899279296014597348544787353907616086464472981897192712223814905692488804518817934628683868721954964916808250381693966334166374888965103943183488816696200830133143374301798712447903356614949467578500024464699645687278049309877862073922358718724980932178598345669893029629713026097039404293639212247323660142564975201405992388544840391280392169237485481581154440976954170622129833580108041699632437542446938323476357524837959733046099373233995138826478602666405992714294456621978427140350873046565451109722039183767952454845012239889434751032371243365079322370046719764443319792947341164565564071251875208548573716194911113115171758322558602858783300486596622134825239165109500078795052932283490702094212465655179176402100540941365076346564705124221425492937413039780521893399209062887637586724133398005983465863235236651276744104091090264232802267768872526778957036274792015882129090032755731176646014175988976235339526820419514785482923973363934688134572730230803625288066446283890512664585631827704951128485303128532886445451887194118650295485515071924833465615373846443108025246446749439850558467229307371134435706331826904912775515262118214181238830696779175367203296223315342712386577748056801933886864946018023230978744427612193238101189157998315701058635334644941469218216826334232498586918817529908509451038472738791202216087283290046254249484276997826251365899693013210566022286157796752991502474392073905669811851280197541713395745648204754338520919817426802621857747921103108809471144429850305712632813155864058783506563896620199217753308915903204179646738038852026896356726607442768975058086807124388195966760546984036861855517658420802671954908854933685924973516704904800356920355350060104936309733115660682911741471282825756861121704643787115077338368406292355710188893378223994222459819797092126469874206975344313510315106336170409696850378598736176329019067315242361186509762133291357015920818210194091475637555142311022661307304161036373169084007827373645513856238716258626826893041528978286487136121220847210675377973175399556710104436709775789349943784103918282534203444930536722839148178971962869286124292648778832846006125151238654141895797536337515263873892973750488095595917631863688889904858103573158634472187502592821301335924624007355486625662789455383802549201040036454603650875990015362649359768584818980384866516268564533516294775267589846673394398809880493860304559860058166892685720366289182043480961762659974233390157155842505701217196779087165910782832637435769250044609497242127232529028108979637321530292465737607339556541793174782300985107595095855595163722597771471834115268729607859462520370570117611080599638707756525197595067542825362272852351170868092541109279382746429044558233135388978138591651241110045167921677969111981609377223946377653327708013169939123882360366528598870610149712888041435654907541887954314321954008310791007305228330630711536605925793472203401996411105526838222835694721880416747821457554148703865468376861285728661844500915554167322252819275380747535856530415409996728322906901366289862905625310057599057175091550597110959036155422044086071549873334535510028370139452522147156670493263189204499597674539786622427576380329107771861187996713455959442935609454320806053646735231767673661525267478462851525278847994756689029985749257119418140199133828060427260191042279468975684391242200030238144113104768561990052709129146057091507372818399975672294538283596935230568146927722879998893194010518157543287857056846652042665131534778438683069062101647135214865939907354671871245066367494713750600893414423126162292249712967960096522656389012672120682115847571743529236437071042870877998572866983448729711680808874128446018391425371738310110042343867974388344945917332110939224015883417215193870825642007484025205872404072430741167524967456247468627402417345170084258954768054413837372967606728562792874235132977439394774202274410917205307634806162405439297540342435318508201798632886466014435080460750938756469043530488998066097444625170398076406964228361830805532266983993252242700525273160990185041098907627110693680409966382458374026363031945168074350254918836205701168729053487185122542226435369710156110210316070314573230978806816101722921024313277864360053623469124672610323559657081711241725415239252348788308362703876620733568662845759875132075246235295100116157013302968300840318549364317744140277928524784547439163093715575547515423799344024338901018980864351263947788397741061304934250121304092060854716720107123364622754023359305787092766759036393447387329988011348033873634486089222062748497990726830324615628132961797272325641813499919877748597926466940828970188595980264065380280939447581067694356502386339321747622780979330927577535346884601918399176958954473578257418377432668228919960322355827075096058505769092531646270829227069073374374206597634395924814780786482325921073354173166958015004548424924465063696270812216481000431788524597430817684732746430620275115992360284139970040836782468563083974709764975950268789457395986462203483123295946883301095185525617552043086110261293555696035580081162972227454420187462694531250405553421712068051647516924189899931793615076193355102294118268171831442142585520147342186221578896052646617141339840101238716417766665582553254355686319579136646547511851680946169412196229503452336324035658651974933455888647869535923099388149696407744654379487078379254562613796237468959414157181970993072566357301992302897371422407060788350761844758906543297900638543632425080586163218225206296962476908806403757732478190118678892641721800277741618536958212551945382827562697303812793124608539728262852511619688012876729039340468391427052417633292422259368468368531415618905546040380507109026204067153773253077214811432698495286264819869750129616031772712579100809395009038511683429578659561607516891574338453291563886402888671876376785704157964243958872107197991950687229751130231984310162969003049687408719117873683416184826446419913595569880278075706360214357388267589903087341339641574385806730150613591542885393562915292205127632522080854941885614478177610568536312749753979840762102982195657515282733546025473661129664304949556705579471724709843368714774467545177044194223706433852439379376444771246635735507443057096531287400330313019192408954299392795123287325262008579484897344126561305360630957079615512903299135026313440763324865869662593676593994923520104057834069525998080049875781694860819951327673134862433959501547871616025067930455175134742218031421092948960893871315750269489383757087092351224226319031614400519620961901236840890281465111285907467065393513687405859821463685558634669133655470531623952639790758740146447357413283443853705678844285721430253109115775661816628715744654050335214946503199211619802034767884210080647823854251371467593688547810156932095177314488692398376537194778317512180257014533928892031505057539974172194669763196219004803358124241260847518592005975372315048675100538180163034037714568254750186661132922052500550656810124605430449386102480351439036138944232531712613317577487200960487855665837466544997274327321796668828799780848267005301048312894678219300419086080306166169118694986931794996364353003872744374387556009800615947705849088757692642210701286179194858572195170908409048206337761289002545921800586918878803398979296541300344168986587178554222573649698678764639188160318712822720120609186012383778337238304139898388828347225514475356008284856444583350328890230131464023744183304984911406734631467924034258748443285464939434685678782791579175016016926358234821717061196886627728191368399239835043928633496013155191482323896059694386816135479629490180052385568919329133802734736563791812552276718466943598880918138185239616155196042882286324798241011434771436086874032909894058376242269031043836203864460527757701683786385729621648381084311166656910996315768921298337238826087994349047758630218213129183976199473566600438145025681883733745620364262232003188740863998625483007895160492455906901015411280207879512987955856445812749664670196902066513880007963994178012411909674908383423460454431120176612123414961368671932796274281004515634783265305392787071972565084903721672695933239388184064006543153830425406691807711566485948115634201932413038081455783965526842498332727169954154151259364733347722805196237144622242764268135943611292390066599581585129331334955131846475170086410926006514732220349035651120706614279071757077192144493654490905471262279141410499163512536507228564440567981102135065043109494293374872009289110023200038535819156388926934770543825368353496387544235145123605423684593706133480875364981819059561023952800648997044729058876568483615313788748046498994256508544190704280530856750320025319355908002008354374739756662488783124153866103167206003716465152489521956186161227219861657959354882567949218630673235792527275295436810253220819477040540543256286540412185615111100462370644667010091210814012074937925442545845308367911009335161017100424812578330696467081932612679293103641668621925111616545594206100113374622481119914762214319728562481848262929277881831270244450847938782629100177630736738637048684643967369696094940834121336930702962064046380971904725367217042215840157229684176783535739002188550029795405876424970116823546382882025771245560449582392783506622330696653361433960204461758544830596179867157888854832862691576102564262360607488439352012299544232929247396099177708870192336620072707439378166387717614322451864915884498161315008669884787867297119133163970343994507721337415046604917560433929188198446193422483419089271434484831847206119995504557963731099047175988615014723445326289037363284789595808076979473261657652040443256275537418755484330808767054290828653573655117998628506998299775072501692770690397540449038197611439689586457383548411920740202986987514747567202961879437565408748439688521202932926137286205476158988545485334499269172360017509521068847359110903850701964808180289784393955292313767770259417951118658416529970747021783638278922954724285649248820410270141062677523878762058813438912261851094854261611051678412917703364628967776878063345823532364446592537740500664253409493544330417768974506462329828762057098587968859151855887853537272022819398824526802870106472685281756346186854853231132499138557775853228770451596399684508717301779334452832582406407825689692026724242440428258184585779737794457434813157396519342156679505832203154097251244657017281231380041400307728415874308364995539668745569994866534786385413381501334365450663693965902483872640125587728615341797485253468758897875850599872687269291169403605898849442768470956562586704945680842488877206100088924845733279439103026903485255247301494165566207445710092481787481345268935679937326053026159437091596771477312044268631318727214129234308772017098904370615922094769156737216020199178445967878778325499796105709240959897100980844447408149690582983966639654738045642971059109524472068209788862581754413175646734030795627552826544195784692108308520789002761451988567591930227661159708579574465688666383315770331919311232530534534189560532383425041311055716938927852995812991879173832962132557959060300347029335179746656046790365553740650267213888522860260272907602855982517683210484961311333474639177492819744322270278290853670444216154743337126808095228961419690262417850194002705473465631483664467747341621585066297672384525441925209169006359684981525668324522421156432675734050178256888108313799136950282048041413207982016823481018665714533744497846996973767467022311288171131463459519799924242027656483164996106711954295042383631289362759600619241352271249947753047098628380632083640361705037234262205170578757621826220111977771475009812026376804845758735018874250778936013452978473475981012881629726020646302864496319830197829942421197386649535036582363045173302747103914050537111030351220515898469887125891344113062310994101013152819408232354933273288319929044518630623482715118974340821592797719532815590371667252125733649192501688618732821537256235467038092959393573931183150708142319339042076671450309094242192831008893564486339458803177205371600854391729646273340732462598939969888312110586181467276464834441502697971014534904165364327044444523608020603618537545763359928287147881141881295656899352504394416644613220099688200031224237720408473290256136172756524988285080021138186983348268694839206706227980160054485095923524058407031535395382231390814310913338626071849050196365992496947580683438634106694510827480229840145900766913384952860636154627446153663155251328380329436689538601741548199742319917654603499163037511789626959136617959377488893348345941158357001981016398127619845259324352935903438797130978031689073308923203447198628293393961984994327618940605950125566629770161405988698166101448571740702980749003378109323821757928456356901644403680029934273947066444002780493030803407347695501558359255686327181020284100353520768640306013875741096159515935712139125432793683457034011015422468330344966642190526672228410369805813048109956781124285290558114639322735007451196713801905837583954463482879691538268184869114323673350323235087253168975761550636958120449775058179567067851377278148583742616923579048528238552348707317953796939073296317936257920920014484505573140634328525101786080228506645182731417581979039144503153184771160988917934322367265416145579426432796306676117526706318727488825760386651958576397093802168023425895004065587997538325329498338558248966687580794523562100357390244329698828910709403320690859609782432617151707154344297462385906525053932853300468113273452135731843306417270463308160459999840629344680270249100812087914879622334423659067225179608463148911256599196055510959848878436857343853836621784749415905319842182466254583213565359916257899602069195948220339502008222421358582229925703975102865816094504204325353201206302869154443256571319766696617439251642637458889440249654955140156203202175242115038496450251741278593494726942944438278647596614682555576729117647250602169520348243767899253837361348913959454019532450016676770967514864472065707032923442144830685316078559356940850453900079509214985259071005867975609701614799292266710762420839202976114033318615187012286087271976616461497136656647872082254128706570553179652176048873322562984872134925444269461983104905305318436634553597932553491859374607432377232092575622196249944725944870772491537896979996516495370232596087410302698548634393612186333803513831508012308200361792649560529946091287748743984518792720558868596799464840357954636697394467343142374152686346543810087634918465339551526129493291182537480711740286956785516170752078732886350287621148021116406210883859172941955577115401582345169730181831348657035835500129425992500602655394881860819951479583395639753386573374454944248604832160766288567864220887329358235817054425077175465559611552133096984535430046492274569187114873049769208476082340839063126431670685643211015747047103732114697041563710854488175580819520468099486555906248698776278647449882157094193796018840873615584290908259515567516396109640121099279800069451866730018736730486398416633974891521190398129781061085771699789689580163193498188725587719002073667526802971609952925773360043827884380532608820232764600178158550479498174682064043148478233991003177960010460580221995418498371969094893014347014729522576079077542916256230510911445442673865880758966447988114369870163411077177396814015133278314474635431518079985115541043193573986918828170836160915191958397021865585038971665742176176456103268566030337706010127599396942999768765719756560950860960340642119150645768516703995622431622104129276087219660156758051367923931759997576353090743638084594336715041239025870833465801378915263473977036362482626379654890492418406536368959371186568456694879545345830415966495872734477060373345968662757098989470113263781537727651782692353639206901610566972873682900953909609111760145429299480216957448808341035040982167778243029033632396458730054791851766493314871796473760929238979923530068325662375467842930414876056396525004389458050959169747571069761172316624662430380867368318651438318020836690412810576365210147876307941051158752043998730260412097306399482936380285100089716053566820482083604559716480813564551730837151693345353761520945707424533932063414102414859344158711481041210238318324333479499332426050603457878091655194080322832135023020350967060731749866017900375682564925604022499961395410053464355551628476322158668995310850575175442771208273471275032072141930379781952309842307032290602350587066926333007451719452912399684491199063259007030245364920530014003631235538765216160198305190893375305678620614011972953950406687132212805793097795648802415736499431327249070080700546233441345761048820750227528759544946462563012156690719898813960614387912291748233830603219192919485634683445971227054785716555935104493893919253358818709906420709822423212398340953755895141696391400020692472646412033099344224237033312337462302442753804181616332775305385781562615175004687282541325719370762887698573484360361588479178483487460922927172598455348610931217211493149707878476686273072918356103623130032200511608285802907127176328316536264069568768684046388525323405298429503282816094917989873269916036670032746009049637866472846736567889002955300034160327832921913680495389743087839619859653269751569768358061144967954284361855450744175643536025007659733170853745791437222593102262477134401050560099475682803186309950181551510557311286479998091486028013677926960606558882599429059734320389338387491379866207994704708698395401784183725815565523281560584957645956098211094142703056370587234542850232685974159841346081796633258009095614269259497654560403098624544626908866345837464536183772845557158632443435816905471843505270880468905854442382317718320453474945238337917316721731506578315856351165173616834694731853794977520909361933050330233398428933123122283788442133103354995796219223290788658071019071943988743927678696524600189333960760404792915931078317654044495112401884450598795765027531986129816421141108594962057358165546743792605285069963927479263637111328769587123256915391589519974658846424470649345412765903030313282916627381024446207103466597834889425643314275897623382922765652377865157483186765844090690268745911102774024609228907185250284259797730867404164058495213849831772858769728382357127842174556522253849034422810764537463009585757639563162727992167252242699756410803785283776267133283519956105344163483338614394405628319183998906486538004287171733229375313104460318131731839346107464556869739019533634278249627761683554083739107848713284374450199531801325082984827720551172499955496679254125577724591528169415237010750780758641373989399151386276535885739875632271791565969396169535281592144956227371009243892110509437739740080505769157870194348979209535938279205751522195732706136875779800722357875386738142781623160077880552127197622857142078926229481612283156829839004960152298951015794026060700888486857075494168052874725579392047290982581424489499735021252679650936865445203720236937607834518510119276914870898617787654092042097204249425065943876769413031187913389866131141641529361594147076460749480757395103956345456031663273200677179177900137605528393057887634123948056406583713458851814860197411055473328572371650452970737151665387376890217242961502863859537732932337313178545599819232943946055358306968588827143313519885407111454511636985279418959963661932253345828655431169877319688753871702359733185634883499178380152789100439227614869024300181705738629295766085162846946480819334267238971196281836833218985401693926875292448125826598200061598763311748490345289832747831420325190602871209438991783537194631253693011708656457439676179163837046293311797371911310486035022943168128968249911350081339351071655721916540895588661202751828869379857005795684269111375136061928370663334806143254988512610384582595906364487858737591673997160530833269096659919689767782645341708823287507154794310848173679116332291342737797666128672792803050025844608800460301267256845770532829521455396191886376788183906137315157982579675366570193778938529590310061831234877261095648360773179844531743025708712726811859343735273560015165075301635765022521472673352480527772019716463293327388985531671297539733548635898093670933935417353873504717150061357508954679030029631246060373965818741309376531693613945320621184429117505169414676693463366674927442038191873090701905881369746664267296328409842408566703075560295036493961021611340720048353535257199256081260936056466528611320724733786563919168735829082535372717416756553450797791420284972205991970417085179516867796233299267609571560179074664640780878225019139925985706019727915237236243236467351768531724766402604538081968633863148773388328947388511861746845932587963709230800639726660279482184658932913276253018007584232856568214302060200611491893937706286277164283912846999295217803569367761498182541341393896402689148506031219817210704437937638252665785016699080935479607528289002723062836416224430074286461193785013912698323341527364912173804175137939212107709483868583346561645736794385825152233836541951928336497677130762861491324643882768458400122536211016887122682339965826897506661022283737150802986158183778468803044791171538862578698237983749574500812395837056394117215130775864649685136612169118881984366890252469640834407775619201849408969516039646905202079355158619083712930987225462486246734002063223486865829009829990542586460745450071405943318400463484483747277389353402620909268540193969863044058782706349571620173388120364823579835858576981235557329870239235098284456314409305589336694854645510900823889798867119998855911782457844488034303446148873645562512312654112052163427906783281731386353298756680898310118276670879096448565824954844711474523177306344820435001312396514849913221872505712574161381994790438520007372949745653415462314574024334264424065680478136769688535051115079747951846770951278257692093382091230325947691790987881351705263065644810522314281541309107744200877572553975815961073645970719557056646081129809765968502324781636445520065251276883629008548425001905017577093984367720899352796679781181573004796392432345602955213325376517796316679526357895518937100100084466409292524356649204393556638791185132154028158436079769336263167146816146019717389108236773790271507493805446602674616482498924238056946353284779021776970464791167670106546323119786358380767490866480250139532638982993568835210522790986504647659482468470948738577564121900496939383594924274966662857301060916382290654433437442298774243813897925359798366194345636717970017449739821549411278112646814420661048979408254584329508288134175785465904056411296630741915936126143468952477276190538828493906373433985824207612838557808731461171958757903570691992928442685763962170188850314628428072043135629290090490387490693879138308362399251388932219989910645223091329221505881065734113003989887295058486122679053301006209957889587988694402441701043587105388712604052306567994165998847156184762755592301493861672984095936536764268230377683020206282299275021151038499274117032974935780026471980437178772373999736187005830642664122252856261211866965141173389834503723679489069732795189866212593778079144831753514039270483373819896284418181821289231093753898159394120196573804863388767689032909625570957768964342424847697958021606355290304910278157104226136181801731716217184765878120879306878933116317018314575500410082456483157513853755118804586114499120941264882997029391404989623943225377079886029515201912935013444905465457335369491212241238496632052065504443362764788180171878413820588664159997060638940975184473611807541718922897688523719099166793334958756075569606932318148417846990545131891787359927239896335145778399246881969732524701809852857622641652091134450714430602183614559144313142694869105728751604017894841977313365342647512539847913732220330571001509641629697385131138578338489680400385465146046005629538382219055413382628008756744891882570961901137854626232877384687877480726747866316506097724283323898962850774884467508313830697937300069757765744168630902685692425947369257071592549467443375310261580592839299850674206538826149448851615059122506464625594763248385628333786074671537169498094501810158295855846250411184571883794804161415590825901357019778664185443621442550894576367906588100834850385872894173403039079001398477638668034308425314797123671529432805361812077659711030619452043800104720719552067264604044749024669388147279822122089639399388956082932329534249676752801263080655442594737575847958670852678097500242783165769844371272007326879974625768696775206021937964427653808664921164754319834519692362766534120269666298808749370742723176832080635559569197384697616090899863077879703658561093058886673567813229224678932769297800455602872063404999272680610582754646569462659358876333730452187451107402533366843341796485865606691543583505825791610742631597422784142827158580825437513942336910190678240413032132338096243330287303706367787092972734408318083780555939846034739803592670004016744968842467425965837829004024044629561371531462536767350637337741871930842576300918224422939690349561788557050573422115710373680536280635179081337669445379351912054669335303898596390426353791197925516738319742279844308841259572087711537774325420141457684506808216217887683837805349829989982711502219428511524507134573215075209854470260998613588183185235404960938986182490882787928429805939712738734637909369642968991781296764153806464669154815079650604676393312825114282161392233305109380543611331779546519117078598017602411967913410210672264544508105451187098181268512196204354227213293237428069673571224115930985760395243445105909874221579536219907483392812094397531354154187160361641028586042462949102658430594167625032983896244979562828321696100666807824750007311392439471437402191594136097833674072473057046609298193965247819605908616118228953893455005617617706208457303545804439041187264872526160964663225884392061927974618900005423864616557634852986300597225647907489260836406491215349800001091867689376938154340584806815605107890780437808851977606103632069590268229775285629031091087340981955624282482862469163219658166938806496843077004260557802566427425646072974032437275117032681132713344236436064012690828338604583171327156322097829793349206083916884758139473234853743119284827498233223808655039668681111581067028730443876030426623760342687464116844395722630005004737342293288865802069584812863577588803116550814076473667333461171140672990247126795023781763913008770215448890983851282590414883558625998350611229853892295441412325301236272861292201742494418308394097857955807594157438359904524367256191560832074168264885018282130431414916823717488416320539059103982945597711885087547603179572401179893022789913080140286412542744376712845903682630330456446568839864126843926659586477397002006293516764885058759261571151145598575662302099506210829701235248646377940057591448623501700323844250671082806266241845427126983631434797527815088107830397060284707271395632372756754082086981848194647744828387311772571074578804687905950400703919799862475606056749849330924652236185947412612972291692148667880495368711360061655374993506226908619828742418207794117482312315017022933841767379386819874287761176807886143198924532131735619678196252769644647229083779809310352138283674890987696137027919069792936295080828863985841852223612110050630496117680861873120733304447288751424281846943626904542166604063466052768779318252499480598692365311954267112114019632545062328173821053266890358166685176357166476774969265750198443055314730907741992618861288919993790875695289380817304844384421227867171710668423836931592106884069693020790141489280521500389781670012702488455023606245379680191208522547270244192958981048438243683918177443002733467727661650728851708716855278693212916834643744855841303882321693899028116901236960600899444254605569502506065807576644899075148753033469452082099068649946047824451264976294217493313469513249847876471863536413731967383181841785119932920616109164159788186344201772045319969353324046465470624652398012342629817450100717161423646197559039490207629798011006494780152180014004157556721409839416097814275422041489652421764889016085753443076916985733414618495438005692703223021813140534546293753550307727886862845133841517271479565916069284945748513666796099010732192953485170043246564147180880988291093204797086287482915453865107010959173085300075865080489369540142115846792694896748358651597705426641121698297489741624296902087453720046517419806001683687017534334350351809051429963467579074160535334713280769215582026849496459060064539293599005859493311179850807522019363606749367337968965155075643937926186101856337240781004689357419527008786286053312627138271052188412802594935301185745816509496124033009450171748324036076223762975166977459537535374754818287962999873039868795910401625256823311138412600327544736238610241877521107885978476875509844692387557845024797720218798724607099619048724698423000139391809747708184619231545734956950782592004114856888750685692188345745156559588503924152345620494720065960988600307448571908904533946256380939279091781937715731625386371201198848685186309590898027919388654693377599767977435266522673855054112191313205803538652786331969366852812730876705461897282586854344357574768316239906573160269943848940992716112441503751785027875219298752621589192177596675713260949777943792153402917071154828666363948320308261362877651195985234584011146003302271900395232837724867757613025378391958483064356215979329296726295170397597073544773303673594505725300270313291067334543737086489415906211976648712802590623809536247062212390680264094964215749498539803031195134511925251637911646361707048548189329807960549202312175096421119721872325932498425453494259025917034312266314271575910420593018977167389764634657497323212626531557884177292529524346912661889779596436827410678879160680040649081683377139639024818318880404604293253450936385189038892804128710863923745637844080265251990374883040928279783309682324636265002565701725856013582745756700245248101567252778670921480749044336537286719257858463790759746290197397351210154601302481344655559115658585867830938728427884453717216973910279839240749621246633851845893115962594762339981156134755890302778214215538329644267761482026377670339898430244553913745383267310671839659705677299752034771775553758666167339210146244360237566836777583763141834760200418776893361871294705562018443516961775612953328189168610014528213329895018042082504294534167173947280843433977644765741529032281123532903616718981690356403931729614408676345910817371253085882708011893336335560380169912407036155211404076796625011619850685080155942855363290017751049329884725277776460369901146660726806150379797352830894276961545471501749686305742727458172998606725864016843293975963723697029884195152187354212586774532225580731788228714529787927225246707431192528558223425564469301743773240925279331227919366978202964376651484166004403716082456066849434923879131438601085225899020502237569592538186681116395189888951333261835460381001251334806443581850420960196857125163163777147640064439584989298276621324083514159394591775265959397147990940668580381020015224502331021303582647489540266874482739139982913398702032274783935244937849334477693200305073354908025302536223114788923511937899177481794507398059909709891392442779376683112590330413456311218963015346286710971471411868506953263528588723570528102974562772392496136484145226950062158172705090540523717598872515622812521431628689629234819833270943802637247514679093932785452927238257128941772217051257680159395266969617841579175862461395714076820683138274253979667476086476262450248579534785480646473772658333799533374523761556834197464527546709867133593229137796510526572326536867018135910996300441171920791727602459262649964735023337272843057747370903536578408850625057579888068177823372957811186396800593079704514390470817838263925028321589825211233476990936496203925750247778796722095117549286728289352365586352765717175858315585106739887367170535202352091395290373222885708924014445169589085419627988723693676923747508117898686746026091216692531543123842318174742731769817625469179471093251805389169561572030378661680744980516622208834699466654171138228850858880329815389649218705386706799540986288511847332942453243344289937179138435327566628356983498191858920482896076118629007307380097862681796498853249897227807668181676327220021354310205955212221188883510766804003389757783140662811456113160244448336271899101972226209439434427892932717300579124823849966880729913602575092609552417752811021846243355027157375886244018749519672527344820947767779794677473153978980407598696980883562969600328362519798800938629177879043042018983033147767069300874597053055412264108698719356146728978411575984750254424948572728467758763199396752653783091300970082765295458081659191572751400460683308100131819004767305707426285301262086080989358552019605355382364525257964013635286899301053100555484247499640674331419501737499404171715621636563004822090068860127609129310917693128107183156161116113201024092048689120078015679996611240648677439490669715083971074621354264637649168545284028176007423583113133371852282123351618500459975411939677749752655479572590918702546656966031393170288103901959557497191817695359733962033095131755425363853612912045883885927771165457965227995784854591934309535413338400636262772270237881508768730995194291122939359129634914179398402932092903643493810203030834206730343442825477672355913761806086195598020299103161745764921790699934017015679196789741933555336636746830460550455955168153150434379578600741338587970508575156008606429376120055476574977331940842055374397680838203463636092160080219726196014274577640729941439938086134453673301290703786430505844822870496934082553074890921322089243885359772148873929878650488563567403693292454744903963303324140795730654543568264985213011596605900575752385924215862518429392747988201565933712053994744234185154849338294058269917113596180438060171033949471255668215142064502182622785002254572851381185868446733945846030161913211697692887856813374790895564470335611119165197278873965854232352043496751094028011098315628757590810968521835287165347772135746569193511700564214389822198812668577528455315586411402666540998627493492350446987515236372882292146845415034508809834757898490911256868417252188368690906475788490404719984485519580630605886934684593196579279196095725421718354165838378892226321103359568271498575801838830552060054616235269721299589349317046250483982404616146584168876362657178687446011181778325533078898320175916205496488994371852333382289203800343590956078143618230373871254891605163721774430303426066843321641193187210350043565411386845536535790343090438586315234125164913628626573163282451872734740872917398905227797952539229154217669279467543472393953796306088764029801319523245021202678509276209914860142945203196053345722569551620272858262744296077275727887597647703264415670504953330096815488974729595121610747120450692592940285360030654718908928850757431454567819432266016869655218935400964390147865954831269743720048275672855659425546661778646356829173291356881520373187322789872867479685482287932472288164707554495661526159136201458876822577476784236076703529789839453083346753375684656432138008251885342173242081144392992146257270814596978822788066123633332591088273774420666538978095112565410618239077102496165990485041875848700827618070014989758292703038353039435497610798152759807849313238412764839704728296081152396652052872149442211586443874825018215691558394971542553203062135025162697525420206455375348066274297336613931130172629138107494032769577203419019409603264928840049252102959183097198177050787817131953627206829600044658680493946387084549060670351186178304194057661795475217507806510006212872745283529411578995894312171592449564664030211757069069263325596727987217126945532362747301463990799100744444013728495142398615648681770723217357745889820504875174507072315843627784682489312406065730459899716589476068855324938775497884870964412322475621731878923541977608909702151768933800343706566884513062006820287781885665213199149544265001543925591827062915062843995214111033049016519664253696730785315169005300004281737341418223557468099661374110161568371987934909973525519978014777109522959582707440445240814509221990000329806323876059772685104964646995077205139211630256036572549243475934357748286243611752875705896261536019407063667750605929693413812523954989197385167284884695271389805934101839620933827668434125947114645596169374735574233140837988289967389254864540362738650485062885029072347998809260231247284678684847677034109873677557491108969538904478043155627642379774421613032381855214904783317864375676849940788951133377008742953795567848896123857524263754837654954384319312188005850194843588341183247445144056778008673884053461612627155405624552214403871877000763998409563323926552039212857551760052659269751637938564788832397470554470761524170965057985670408005172106526283252584878689170121351958808055259218867226166604391669688113073008788139140594860452394526729257920519821414432007208469002065349327919585952466204657144570104895973687480888515680856622063964443021573516832772836553200282305539061788949447406268843243118258462449834824228573953111860092166554766208063840235270374041032470959452844890792672697724590098550612976074878752607934893154503321130414007499335317438327158482795250917251653054625235107017660562467646425811816610500515327248518695831601822851503331569206201534026462081668641936933015973132152275411914917478486543660415190401758030204008138259968107190643042590216697675719579856451972876222435830159030711893694220719285458798473321269993466628789923795508354793630261534150882346851509222967699011478380732178972068561349221792639421902742471401149814298749391661540883671029884746528664968687757701191513331360440812074585294484860944929853787635555635789160146045453546298097764429243076097015861065480201609812674384596617947425275853596116301598534922736469958014016976823455990895846907256062568872226901256558031062166388840256789217255614692450227980383159027412543119389924490917198704791007998372458426255470490655888339376479861008020058214304699196563286863356326141652360894824364079746352541481604638832698771826827146486186245800631598884334386509693604227704049749793326273666287854527191905337451189785067981373076666301746771161943702976996231276575640362082909713439456930933450159778776364409240244622592671800825961742414625835338174218160250351447178506448037348423397816006198282278362232046571324187613395837143483553060533797041897101367342693920735579578705358121540747837987311020655447919236510679242458514906591913279311780195217194683372791247594320583661697872297553120107097440401886111427887296736611724129199577521880946857684823044087966591240366008135543996306925009873477551462982096412860500706712489061154775753375393710165886427348039026211402193212691494121699770298751736691985846611033346294646150851410124734464209311175093870340733833088964486416411785709645929886411347071911402826963300308320164314958478806140363382519236730165805939017235573676294625492241388914585885782179470084387597536867003362187484653500318378781544557123123945536487055079891070328088400299399173572522486092343469047364385885034385673451059277027335238632818713258277366683632010219178582203430872620921447960249475916568692989374847067381499780287873211393443571849250904009481097991520948716785619332234784183924758676099958823853286689112709779456551160787492601488169756813826820795014165354619510012580741892133665823324969619057091094076198462270584731053102830262224425138652055505479389763187975552199760662315224180236572939693475190684169649366940735586803932509517774063750473507420413625989926253412728794401536373131152688864378723923216056265702366075004246252205797712627517970934472601866745279565703866692480177829880204667170185477055559428712188663991269172902604613988602040955848352543705794830603769371058050426486879092845064131538316560424113973054463017974464593737606312727872114021152454596594841313663934569332498302395386730268565990986684687578220516889107512080543296379302805742591999047892888946652280328682679644146699247121699403912003630040180710023755229934013541267520749048245717036318764700155252673783651432678058765533251459726898050287414790656516061318393220716121025959913449661739424858360131623589708055413548720891204208135722744856097755091188399697097123968146979740329903617189707538615393117483072485935074553670198506777934784344542373804914088529754099770005169220911568056008899286580454099232073072634322832779440649991074096325152026300958107166417794903013155478023589596648659726961146318005090202520535752317433389126907066723097348771725197538737496479546954047793766969878594556917733947658156370442892971421691524015622042380941362883993880660232195989866960063316117447899856034231143704819606226265723039350492162298210811684077235277286971050432574112325663758314587488943331800937166333363055982034548543282308575018996544035101621981922592276211457229119772761535694377151359231293023508069704352928346674435272745164288566124597611707920902876652194561035452537442044138276113644725780404193946068239178728374965543482298739528326212851743060215187587066097147183445988046867555279652151577537500577951267174268822203707654880776537884561574234867267769122191751699925435993325338171023051288513687772265179033373992656830080146726175026674388166286336512713547281813142226781752472538028312104856920015451315745377713220249327361642448885688960263361989974550256991984759342596957592198477388058330428721494969603709876173574869410910927614021084287264237086432117185976108175321770368532843061634994375736239605083458715913354342435433120439922808483750288821350784951329076587175463985526082131689500231674694189629541171802883518309733486283468087210745776134996065688643669560571916988036281355837444682478599890691832372539589756282772894623872734621150130906277642864524797072899281326674537943236842388303559912483851799838936062204926734930823249161801069572119173272881331894903389104810518664743900021100520560209325401743679203250237369591167751247388691614147214749768819788362107553184054315570965831017192595982963528835149953150071911986463204876706848728131936268772271011211926846868753283854729401282067766846953072163089741722605198824627704462140189303128057427874525868258276719604052532255715533474515404755985328570821185566096348837448709682058592433033374107246423160942662350173026444290210195435973748269612200474130594035939648988373523804877824058591708897849924087452413066250804443316703608205880150964742922071639240096749835272320275796286863152654192879035406374563158313387362694523681589349514929275956901104044399614959306806780539496580912172619948564111221171886633886625482848739014669504639239595681818554646263542019255712994157161363208029942196261482395664303610245536322195506892980634685716565747559035603558867521073401286413441876743845425887122717410380602040240158799160420840074542138716448260722987274286585222184323084047211841166811545370822214616302718349706464023381323737979496240052063536560021618514251080909383865354403972465148142579358860161912666314123547290258681985157514136517023181789210758604927930941291539761345142471933108078206049430113316046584935790818585625380219878323656280155071047686592404488540681303518763952774209171162344386491007789903909924213296894708027565897488570083334020678990383515246057461033847005746280877346291800842055251102684243960068631627007903625330936812408510082239640725460897529390300284726459834943262503812310416078552127076166437551282109990379148553768956168657429440719688618711287331721449592341770834514638799026855470467792305336125448385520255964363565137030177056703059318361295979218667307357477793465361448967058090293136237853793610226265418080289148256301498839004513169738380287169635212825669460901865298292316205242672322133234134551248450780279734477888330071980983733119133493534228168315533724787857939747540877046270057275554957338348006850908291353082666766331522792190878299561638863688778818420353266608372738321087794940376624320828919633684967571648045462488796731277323163810137407373657627842333641266995927426160889708848151889061998176013113973494049738031569083059948630529677072000023442346314014991771217527152325560392558876876476189607693538620101703471031514978485098109614752377181558632117072786838941466030571035294096404244691813181815297496190457936984661938630946828371900121713433565362509551408010811196520355005972593133837217816332964884274687885224392947895873884813975328615262714003377599594146420241986762269053765173285427843794466789962426109277930500029627281872848066487014603217077824609739671186741277741073396534874156120403266926059146011143007585920253472813872839858907717659327731895825217220531822816826206315657973130889735051025994805127195590669925632417436601963123552219423320982975856446418220529588379515303053550994647140226550943091136677718196297131586494862665477590695671396277763185819115874999471160221245084742668013736092294431037392285559068354913128686148567703674920879978562018678378756000288758809033631770360522082296651188675105237276938412067622898451971999310811532644312945388516352513589281987354239504215807196380516168804556666168415291709084090344630901796956915786208549974643243734684600218714774182554245505605915261312828465204124178589654357842419490342517679445167571191704662601221912457329043272241604480863906249995968980146236612206105985074842746359234701671504082036309149980439938899063322432014976455418473919303136825908095497979537967670550052913662879241441787704097314983057795605885865646938502252145769177145529179738939787408296995845535449085442927841248740148733436164525804094196133968516345646334880883001379984825125330088426438458053756690732614330861027752394765407201020402022703124123766827125147046801759092974714977049372450089429521732319610464631558201069060665193898451768071485561222846259718127830921011394959550926025129917347130207285391256325463268724647669414998704168138947432312347248986380640018767925893917683961278911219119958697547703868359316653558063867382741136417210949780038900443929861294398901017977478997324993319905673018993364082809968018188925257471605565570884234986578417830452174773997120141608812355313809245295291519160864465774424056732978802213066454926943924317226077116774644533543554344086326737571652782293007524457093525409048648340203903855457668979254233342274522005541317815294988278174864938219001813607754404983881278862330919711670345469509332023273695443016828279675427078908537274943379303493800991442363072460578096377823772465026163050744114101830111412548767565197868240279156747899091392314878624944926846890681767419094528552827804319586002901658501678939772665158457947949513693305715891069521905109479323325700681260277756851860601986188150402069500358138192577010873562226985456375544774524426787474504145758357804386570087420158842374628101185385162731641095220055895978472823925841018528756574063147392357226126584925168428473279851699246438302123278711932460096772572077013797494280994566010828851389709895298212362510733064709902390927492958383009122281619044885972400958816167276632594342319733153732046942167380451321055358900489858231685117288347630303270956276618021573780791179819108564311329882600942165372689210804353216569439143069443679689020746698623669261740699570104670577614137272390662962230399716127995129828187754933309641631169647369563145873093962766586732909319285204842869489377581429810033740144315205335229077814180425843239227909265275521932009194609993439643993840416177709270904770540287639079251880846198744018690256480017893834203054224009549426584291181876614470675535377161389261296036560316973005349547025675983360400495381423558359380791104134141719475062138075271190098744540143906558218644631226420025698477697681995187598616875622100568446220675733669778392762282137086708565840982893498910293834308639024700452014565725618795563636085648119682186795100160634756810417050244908098018565985090856904823898171249166080911187332740148580563487434428711247680019476932985119488734020958629343869216753464034804067081582370812504932903184689040214437686315178047381068819388212954308881315553542087161684019316063912575357404526470577682688324135781527352964354540667547233124495424398393066849173357791415161378522613556733401388354308672711653221672388977602083073592304725707675287414262767784654684240131240744934718122328566380236307485389928590961714442422120683818811711577987788957105172416234772352039557073457366987543504853642564451743292277829718277032686160084653509959787178668450020372358574423896467084596448930778938585380080885982660386903890628423086531990881898828191737803469153588814887286988067417983232147286779729582260423115685063577707323484479074231143615446418828748324311405520114649797918312156942261028483761417602552816646335799885166355910384991150861709475796272080069756144924098654053352815598164915125325274746344351371480489783272663357999375241894319009402638923095513460938779586483046758693648744571503472440998928421222199790363595085407740701608194020203614834885716866268433388393746604890286442634625712932048367557105914925890204849344100045101869900829226800852865310511440550141824826082999550557655351241606460166830024940829862129306989494041388410606534316441076716767578129864435100374541697283733978852387971731704075616847477307447213638754606530628245050227437124652171820967939484110753437086700443553954510239257916268073598247387743784005390644138979706327444388061482828752033198299152647785877916742720123346310628360927524491492765121482968742245184932966155472652277623735132640529313749765803977710683893199153732543979969372913080407034088375980280442584807616620088153565497806112091828272969843535002228943046149271566074217783755029415022516384497328918949555879601850553495323546494152852103916349244042933146466410239332066330987580576278671695587713311485198866368791310743055892208675053799206388207034341974462795133750701895784615421410516020084853209499364345246137122546023249628767593444070433826169065539967923864761498157514032002350178327588827402722841510723097266250001826304733206418364306691309182642670343964948622150713521299655605267613929783158651143029148531163761338545561726536761961543356061155869782898880491071913268652045302350886100044358513883868120527575563404509546598698554133276613628208431061704758945710618486323564245271452303274048299162956157881917537669820659766053392640455868142153933862887716600845282374259117578936777557287519534955313750820762189295676065622476170302953100747084103473406010176394124213530227226942836258910150476035952141391419342961747524737732035766421511811993467428378360951090178676706318262691180497995879859180133099750405141304204277423070782202903251813489263063784107745147163014364135531915380921449701712204150250191998266221341287303713685507351703376620025931046146526871887122173706641099682860561852492689324829551584142057425272801605837300844314879717235774473681123692937084618886876039697672707173109530732197389602886522154855846547248603366576048871138273140683485234747396547165127502504100727337005394087309796263607570736275764640702953592922120081539202002224533722701505965634955057644594569335833696405691695524672474919751800359290367562336231633883528866331592833159516999561039470105034454580291000599914914780600633388253985109983208033017657063517259157673161826867223833199491816562497743193737517126838684776994293828537768570293419233953944321345215042404790074220300971178599293778073448719381733986088857450753472419461956192907404918735207035659325717731423048991156611038592866343638855321739134871577970989816325496205667411322021669299911834388472571402928190106970080969978142072908603185552731780327640080275135346686708820499051713993847053412553142119191077678113826413856008534041731725999290533221675984726394859902818843810246433779620186370141201936130447186869201435112760617133594060500036158167894396694486421140468173740113251502482720007543225008431181175383458020834366339318949376314978544767898578826788549147763254044142610546521552307377404137515419968619317933146894854792814807106005422669586615994571519520696906068927740190754508583988798985146171505965700581552712925332693302899861673116325386820507884042302461948433129608730525544974215160203852512352424135305650587381482724204853570887745124405948862371983164903747099022314137734449898981128817052480823069686039130199613200484264136549937496356740091405852544123371317348420639986940918241954730577733280662573195666068019752249193324423485064166732321282517401181888958433807367656439292692477718371745869912033928624504351125845083194531767445077745295851760714445956343202544520490705904156752997096197068558279006946807332049965702412759865155280802693912103586965258949545411779035897620236008515915294724624510981078347843636902808695813830062248031372905636189642594376147904579192610622254757092255062292648786669079409700314895427805354919302603689728439675991225786117850885109942241367549152679492511726667261140161096520054556194220001358468012579602574717989551146438901845701168014763991430159999648587839083057745915351405560502828138155981728692509384339551418148915117011455021140948966165257247799713015583675068274701835187230427468288619732583728551508410009230069886057718692179248889500932773141313947087651808722347299621054690870797129325165671341604706388547954542524370569303713485010593266199688514531386396600856269412123251646377174180727060160596716280818348741663806747366261294514010088281452169152494641660596812037602618548623020192009697025861698957529151571587303792593577486837731304785773180023019843529528689813242060811593012000637093582263534202034936366645541573174034702426417380949384926839603591890167884398099965979299158895226230534194500198877790512115557500814624859435171094036164717326796651071077515712057757449204931195559248715997389074981727919842824833260887354383937040761179063558418027225090684118959562338185060881501844953045913613135679635303965911074083840075526353349670893294452471838222085361109092323045337583279685467209093764502278807865114254929077239523718379999911062445344611289503657056824272813565525320779140119216656897946832632197010289344032797983379809881389757881849035370866382351726764092860383598264880547456659728580141685928326539256451912274263509587868892511182904968824355416373159616538102353829636105629835476403529036113695141877766832487617981844049042429350876464370227373747056890366270201958613782763200092060239581930123761786368439354063945174159402681326080087011591688799895045703128782216423342207251606705373023796408242024919142988601643039407108740735381998980492198256062194596047530766051901465406562799171335710038987750756210585862550774673689700591557761909701717362572951837804525952843893513884767571322803786269947693636239904624888131050599911725927681960184346798949873688893293360198111439482168995689558404426632341477032182825048277206865909249396139897695634043790279206514289198172948912241049087925105585242557713411980228778221437259804501346655014155088957749597606650584103367638009601469339008354315293480318996358538607528085817522247824724823890193331246144685365326375024117029306259525044096256221863249101083341201878109700102170914664033591228184664077590973683546081800972649829339418765898244888990991950895961803861450747199581891571051990977229791985052153331796950971699729332852220216291008223322303164261049143031164106026751527887825135309570106956677276007104060882995475001008780473948523436655882144095851283077441372307521995440909051129589832028407832292946264515371098942636579826731290543981118039101702825019466076309435176489784319904389664052283441669230819097950553713337616245950530530951843146601043928994271529636429686839340418698518154068262793389660203814891946684801447930525114564859890912778546337015775563360239945486398325558199218423666246422875543186533035956856466693664163012539294279962848205516908137735072299489965193586379609255363332694582394399719975584871087957880029442186331055870254795736890374754780234218909317522653422964769967735009287072349996740708459526519372490220654654354089378740370566038003991983632403564349217500990068917252309880431651502950189098421456977121371135167864222901683750478347389602451802463824178538261432703400292657537152092115601295559105851127775415745357360119268636168635076603623372301388856766439726824817261993153580381845665861447120497886032514995627454304162410782663577590777391003073967692704484712971403458171579174520814621282340705007791908735535963967673903028658211194905303521766982604636761414845706874787294534081364041639165664366649217832252969254720230292423156407849577029352284818638319855283448799086009905815549486912303954504797109294737066571896753131006391884785502427149181807106540632550072018211854997100613298648679730159753183623001256893126375627680949894543518581772060036829970073139717626625588012407819186003981985535513236800742855074361107154627700254090677751565962319361951673376157590407731183687666965486133121032238140221203085638424357842037643872888939070398742981517625222093693235374630088877708071459200386547673463171598396064958617400896234315004262780199920634726350111839452540715617669542299791117724722678314993973629004130943580386413918844509775753620529541547141985803358152651434230221648497781480758952669238335342579712059104859040983980422805439607734384577800734237418956514851204873335452215928049995995692517458594443360213666822168179913920996652903123323468578686153755905305166063534254967762075854561290248394416923763939054798915599689192255524824030559503507046666615983244593504429344118588410279867996679337905698707055747901513726414253118339970616355777955106771371466340538806521414568130204658645108251255946155796148418868392981315036352983892152322673852908367258903235606300859829663755618935915792903675863517749526675530064171049976284755231505433606159372022919734064456519901097007029571356169771274633699722514712982627566153329218089307851627336384350483735060213624560162442003198755376815535450219575644461190997970400139640018458882923865200178022618487999122140941878785732531524216045557066620690972414008771142172686107346462191934027896353399829238018162601048266252312267257863167880771565993069610458227242057123824241829251267557143558986848156787859514563266437147164384469875629562058999461500503115262334147983274866558953098091706225469923211971216732229359226216346532104171420592574346106520245970529935582214073500036255681270434932179121343118970971964862059370652189492825550741385586348818977045931139517986579957495979737809837817008028003148001910777883128639156453196118463851296581462105306037122892427941715628835950564576959719906800132896903089488114252103980007278047836316085658483341781750078494453564721017200639614640487310900219201750145716485764655220404344956442014610266905346830403641693126681728107049917418886365841089597596536303543296441355985349264953150260234231976321956209325718895581602264146630299078434515307463411462974975008599806340410927331518529833407589099349573643155505031866693376041822806778759236735255552473363761346473810250335933602633103937795677139467610069381257180223962000013233238462820622241087567477320152555038412893087746438191386835428128314127327126620346344994931404660330044405573477163468638406516603868362467472819445305879551994722043307394802349210360314075725539617350723079180737236407612186328424938839548836757860012581399499254766529453332454742203296738925860694741574723139013529551623110326460889305751843929301416008484721593845707563215263552952682784651694971209581290791016327812546261084359763535766059779567496617230245534821995937326085481508445193105396145762330115767336603188602615946167762245527383439192724385534069135022642210934055046425096900707094990713813932530391037068124289804311999111335313365117019115685163563036939232813490810538908189353149794695589040909508219760329922633893229599850382898945591362139378829765859774407259948149599072743938706364628491173801056405207006895191723629735328128112022822051188368181969221451921102537519270025008572563803709759253370214968149371946648295659033941845671769241613982997150207193295424908647193880734160922294642211330218888374175416958260601611269192420939151427732047733784694810216297138460927438251218451871833238935832173419759197454626562132905115711317084919945756460981278229170256964837114447329138719384303227458958939992729586170349043114761815672234791957336464174404744490260458033287725610909879903197630691377759253469300678628312668851916243312434141796178265718023197411910835273725982943808453714391546418716508503648186933942323280265386086921738437208785747856915389368745185788204312122291124705191285214891767962753982832868985423803538306318691723061980487191213484452304655564558642705350344508835452506208786484226374093399958897888437791196121818216867325446302614828936301797309852124797739182074619059587443032492321931569666040767725504841884146505444668724753804115994485072593668986806444739847963005206711628141244196537223397060484055532509890235994184001053698724566997409588819623296991373720245982619474895366220845526504663904432767397149900952890607215239200488179610628919056283420516172796897720233383511708664945770101687755121848706094596074490338205593372237739727101049990846606207567087953914218589053903494088415164595128339195673999931051110753248499590615971626046113205554860865929401686119010190077582257701216737019047021541856336592047599900491594430813869814074279902807506438534823538574501063550338011643150938229235000554305371122631686083120101182083057852921321633722901434375142725227957452373192209011208223157145140906705768672057405591654025812724952782519961550983627898810080025232324287728802027000924323293125260739275870952052943035234066022658653708267354837754143308024838192026800034123321966967335594277673211289753172625167185997183535141271732679128734178212314617790846887246124290247524483462695901009491883103946450446903197095240341122223605213292334773417709218461240283658090797905898975381224996951527742793079991390889513753520452317262351773202507969979528420092415892776979249006958960813254751573893838441249175145787022183962716974880258912491003179999405735277692111619067357925003720078044602829254754154398530374558325163601478400175229707701312925361990308628208898460642488389225140332632704293458142922226181384969590827110557956398299649007186611043767409633303687315414650409106118128281631415220068765121892264783025991013139572507827396899513900994204947167702258210417461022822945109115907389808302144513390492771690599335298291562714834547663159245257279093988365245171989525260601552195122871820662871377995273162778792192017525311375311566599626625076054445589625459840622345781422759634061502192010972471120768050668522190003595781368620637811546340508953030967217547863314657364815511073760564890525139790689492890828378777771225446054797333284056806832084416094370417122952277932286960491630819272300139945651218339932379680390877615741886632480085718063597654688944380031147497172079270418429205002357073183996133718041760364349237530957464502885543006110916513215465836188642196622490916855733166815404131263804739728256554799627329954348672732352524614267177986501611030508401544516359239361834242537360163687590490033836910459531297057854546742898729678068878839453764937627500487308786532709238169696086828276214613246362195514236494622803094835688165875499958523754466729117038106420220796048603571052103473073999970537633343771781478425524958156997604546939878791203141994159382226022981143464294883625651353610814153241595601767090047088551161112892254326400049507340004125814672042654300148947697799632237796217861104863177974437916288697971292288602151562390554990184519689036128895343689354742132434878335320980629113477293631982094602113788483914534789002186251994906795302980153610315869859602802607811863546067748114914910155932188825766203087908908216222860178563107953032559199370732952115451324428932833311732289984423841269236024875485115909409832162849123364045336364068127334183136259882276689627446526903498443700389194540409151493393222774066247744929373505433718132965518005613524098615023794455792681670678795668777284017021230932268006918208130895294922840009327106295049134519054456670111039129588502354515839922696907317640594489778258662296665444622061776266614107382602005947302848382753489333427471336875042260494667809860343148016790762105877433187720882166757571558740631035976122580071077370605532470189939107464691715388443848729315657696995772896222990974718620632092307563349629289041379126030818737080607137889693318014829615199095604596401487181644343451757828278726940727677276328952589208147911514600800935336482588381894435661798309772167692637567526478503519191510604376880165324096200663652340910334008012319028972382636463249279834856632848780384853951793992200582878501139671316530374982831170575503075401644602890084511704027602446707908907577701462375555192827197270392959050011328828512935005291832913223896005304939877868529376777872939552838852611186771049974799225668568991314545648833714238662983953465407427320778268202286328024892541169213841196946621103686675592131449253424089272806846894639622978844980176778027869625182031301518796721899830276459049623884822139143167966912043313072787635157409725970399052924783103340774598480298016610361169574196449255855746595539516072559017489554531698973458290764536727355942585450587837495514634770312218580528462380201554723261566722549243135400084304218815425863663899120051366278085951389117474574392568469637904968743219695915970855498788352705144590360698624292847187653968901843112891277260016852920162867162149240207999938525958886006522619116983277998123290337700338227688347701550306251090010277383388556154026283307757352689283612804238984817870050507247878228999361991906968789380432043247771512131965389306026628478449121116444730068452481992288060337836730278085784635965528327341567674893457365857314331908975849125667965365541333618482655038993202950301160843547289880647401843463537785824255743983126281658913433284786220565928706619191531581580213680076490407219022305812496556414030400848448842511098263852905780381293303804973339510113753881055567443428970479997501080977304845354538480363073328908536905989023498694755028433189073382573930987323615686962838501518509598964556584549348737446925810663020401949654882935755439964201054718713595030704718507635212034351524522173761965856671604045597379331147632955683683572050943648708430722251499667600491785754919154739679984053219751261534169518774628201647141217489847003830459306627209096060372820688608176913813339383972820648977839175804529359182774828868626030186273000225210191509275091559271945556841453649075106060423228496310555576566779226241449784484171919528675021210369658931620732415103957026852329947632913582323704603879502811054196140447268793132378121529155359444514399489372099758434915692708548515301462251325453772138909125009361850457932362006884463253826313572320419998888887112700483756705360290641853044560812454511231662745849153367075387095742769875165147341659978646646502561279507328450080468476141347626561412779393914342472316387369357197551370303224165064906058919328321621880990884254671355902807032767841540591683997151742620220157745283948437594356091502467396623392684653380919579455150693471025199118312169684947697091833002873785158791886959245519937221479381138464204328615782673663092928283303941892069825007679156044399030034287041391122040057085734069022553758143424197233225138446918525159510173248815115053678863941326797215338265214171309619041492193669250304802741280841286115714259151034050778031098409467834864046113077932423089963293334991023085487929618093233705077819227132996514228497258391136010193956436072714935399954633510749681557387691311749606202481676691355843069589720284000423434246719778052862065577322882964878504806922595836192857450657728089485150833043265886294710371847586289509281961253496649642147659944260419404510004090598909653917317584080859223678100845151355975170542070718718761315723433442627036131848119503530829101921307577838983782650092903234861666675640753992942063468760082000176792842664594170264153570055100433200308694984132838481813089362031575940841057526069211289594077416712337520644179073529812788752029110294613778684362549111650137015456640849118722398822968726342559248903739880554589973009191882141409082783626929202304289947372626053654207570822744202242073091453860790051567812459347631961221911000960991506011525785017837997684219878755902794717991068417288676682689198954303640327919402880799434601011592718283435217720323450524646536301396251317308386381165279429226714313154097004130780830330694379300967644281668792610162550383049170212483024979248793843417473345158435298005359693321460855244830760831015218314199687696883669772639736862006167708681281125379585679604783047427754841164419125435426960750362454912588790072404647872820563636563165469020510419442575865658710908847371726492401110226848198338088359161405950656617830858065944451898922860113525167906121267549432670839421565512132475613899279556000143654553414164405530330162834551481621641956463804415598874862662179370128305310076114387427743666486443292535801356642878429389765022530215597329591116415746144427286455229059745385835199962317273425418028580580648740982287638619057194624452135768601612743246604518787894308101478135142248405623986890393767478170258496471870876531740842192434610911691181352566864551052130044333054804029567023615646329049263631128826990831049024943445263398081411560201498397557919012173748067920201245246813214954939851574542820417985126124365687278526309234042435965575923187498602454092822427768240444927833136437788334431877163187553339626134068497381826942918356122320326389842234530116361492779181788836616226669055430739877058392212505489546666814325545376736471277619374357284713896652274063793017396488023165877643734567129725997463544653828965403428109443949090098560547859587379279194609243089557905490050022066857257067611775443853104848292153111200385695894494058119017028926030190472470035448894042698201306987787850174405673673352046247585352316704150494346000817270175193576709412677525709952102346219530789982083569181037605013654665147096243818694585354734182971735778043434318692685829128356179989426843405780336570537839402206301224735644934178624321621173410825742971286664710674523401968049447199573393445750978430182498537204761180965199488158681148398900344909943904370865029017127012518602032514172367212623814331695391859252990343057194353361254914346879884796470082019710861581188147879806928982393407633989409109087696341775281370675549288873715417571267683393317616095618100888598929777980646713153992787878128386701549723020085100904101260043758754152329947157671742145996036335512238771619976212577322937319461198181028714415291325188566805720803383379319748183578853525058050927880974140503040802789947872567768539127509781923165279563836510282781229063817572774008677632223025081795624004927313182970763699168044354161727469820168726177776176677109054418059781896972385771504973516494650443336278758378004987896187132933588471369681150697550824505859174243305684332218768417241501430103710152013679757800582745917073701668194799073066656161162054097611228800707456553143077623534321332424969529369362615960955510035231559690357695147472913667540707745558062638718326921354967146223873606503149703578287893428966499852586925430781514445758995251618246711110378408260367132244543042296434506064786288242675842042197860726413291240239825311738066228888504158886956451443048580664607095853439510987576906580043051391519203916795331440537221351654251560161958111180015209234773858828195254233495194601428513526512522960273057527992261896516584149655901750026585641027092073844332403647831158499623349733616729479554411758645899958303450730581800962295436332854650851522841891435179955710248267673337129780497960321958841034389795208969607906440822722020466105774638237955533950937956022740992071515649326891622639336009098620515302734434109510229040240466733008938721880592306630776984980424013915366601474231993027417524668146431386053309622563587837296512562134915792497294717965110974266627956938683612947008429508844051252623681913107047403139948078827683844514531894255265996932185328602410074699282506637069958404496146658712000909661975044070809131261790754388035732174236016355040214697285319880930293351027631363530239014378254618237969575189665484541781425858170157535655717866153327970273505163648899423532629231075582432310393961507012267242967630814584344648525360244013536163608112373777312187896723183350396476319161723855688015125582474843601536808754943719461891065748169249361314810854811465691560837738566198552519254675855022034661197532978905328194193039841445461465484302512417420486599137402229425390091129798598567514641617590708692109605746996954725395000955556772600545828945340622690472859595169199264832988763002704255855550059947031889679054308344525269843716506940743620392468402817869575061383512861682184339524669180207759299212620932560573585071995096565597389159073477442758033762327517710703887029471415032563270645892553700976663052950629725477812793806356785584218941047778609040327731703112229277949552489706050857079864587710782388931997421658301344662157154898504059030773081419951308211593173872860389721790441322291035463468428731614373421266359080011930190168682675213980784116141933472290180064364031440970570191881250555178148574569491024060650728203338193052813187694098667917824121968181082523408632233011630889130453162422596499351096923998917650197389919458154697156046205326709899021571545898969971693691923576822560860775888744978801131583619907330207055184365929438988727208911316520808467475861740082797845580691451449062834057446837752479181865147941537283331883474196294339064760169969628848522886025064876762404890485610478471836735873552974418495020440375617778538964373715704610419184184555180864503677963457859054464207775841289779642620539200056147314469495369391968181464572185951063116608115243233508569939975275840761995912666664785940810214416768555405164874142791866989194874425600981311706141016479868789690961447390144766013584396704836875160158189916145084840232108611564719452035689285505225567372220286700088168154507659006210544147156039508860858432334521602609644903734433619220930290040578271253555528707899457098948582074534505145486581360406176893967967901333224484357690733566204904353638512513461560576379371027433718357855772829055553320374168308900631995631190114319465494725174998785948187113651191873278899285094208718044793101130824022976982878064258268382060757842040321639092628920694664543632076563528496417495883328625341440600893557251931644041281445537943286411477633122282805669133469341367552458461415964832143088555137682787444516165066661985205156144176713407331695852722597581231581069053284891007291269345058302822081724488657213539352820925350897034155036608443137240866087152037841827258148288596278721472228981568175735050840674007810487846392769955341052993194576541951394087655247101627747671535826027278459249522930365905894727004922122024680048867935373318589545605670227300282268978132235669343778808917135469022267667059836972434577044792433607928738128146956546888338887108953010779679629398648733303754861107290090250178208807467109065183459801720476024168738484651772575755363122827870626934472911794756982905602954907686135445382856162960065289397625640704516995584985975089888482551844118207860609159673300094940762485858483296781825436989090434896185418538630456750881796311679727212445603360888161724173214167017028195059026544369375906254792888802345277524943547900529464680878518799512765573779460082971452525701900153672308460978662717168394218094130282232011774054538194398839248452583892848678470581129106551613547526891389853550196408229475822253436133266520133366243948683375567651066367735520049848473144150068566739499618049210409236359638305050921448932791068165632108377030450115663533620719794351018035385395010257647365763273298696214109594726041068609637178681573509221493306675787910354802819722929040370776782504211432372581863567722133632511427446967048268848705207332914588426151515689637386665277606292693569217889777703049585408601959763474576143692711192291412457292893578232093198333690754823254712987264837074787022792073672850689660171096938156901853581690510769177747562161343340826045343315319061024603757773225794063595392714332845200315606311070347188647035697772587322238677717274261592688663336764735953021630261228357691209034410013705392794571264865632658162502603687449817708631091061574713987787192381064294932048761013028937457208037457408289597570504937186085466052271105223477378276561351502287360896179199328079161660839640254182584419938128506437625220316266444037543642397067007008046613602049012408637749785675031728248481919707622061597159488222995683759561085569171750263833986637207750942997566424400423324045771666237377887492030277499497800799691501120869102399535788466373703135156039837648958414558941262343975648162363649180515191869420987871467914481977348501207418446413838858654333044996170327787440218960296683359439114073197438988681851981658415581837221930483796755868915101611378185655359918903723249474662594001824636162234357110901444096154774246742395201901727647554050015800907737693016813674307552167208940306417871108914160470698128984783959313936023867419144052328569886998503201024146092988085204174998648813387907669858708897403190779565106496336839118218041337460918895189895301691159465006967517627158060214894058568502634529338366530357409355562592129336094797584120497436087948517231377655167376070020785988876359877602744127617215886077794953307085961667746836952409736552150386670897340147074287534654999170187079082630826923943450789625756302558378849677893445256329448916291578921962430090741180703733314644037023342417400610607403616376171462453135053062029668433456238406709000404297471037174147260300137295093546496783280121270833313643493239376480560130280244574977442533930129465684233346778254308026786871409320221517740514299533563744637966550610495870257835697632029803618842949909712161480687996345735276854925491468123187529104103298540051709575751874991522488848394695290985189996296971908533841739965445296087646445671286401284366550066174235574814419804260174020103833311435015020688046486739805950039599873514604083027225099121218218700822157290149547374604513594895358308869870130460636600524193745053014725714503730581763386221795503881973820280656607163391094685008165468066786941659203533274100623985294923695388527581140702343740606565846637497070709670842259285576929370426529013674125307987792729460784960127953749118157423363107548848325755959014344530024258640002212543279631619314013192623110296939892976008949693010015376082051103668987991714563195563095626485973171396043857655114016579680898204995166098407375084986366938599449600876466118077895894830638377739193264356288494486939206092745691456007811343772847777649925519050266073553014808567229503329283811123542294605545378508307013758597460245267215029318914092761361441592390842030437997898215601923419560548971339144814946132896711863352904041472657368155799096747182090560443768619839552030341810728595123597351406748249715012794445160915627872328161360128107280826108276179893767381807250787086731135641171333717073255507341074575827137790470679727876451730454289482179015649805976926093732946946946998388988703489127243928010036163538608050744091353243027588113620940473837415143145538227153389629600029090071897243451116118806483339361583745321879602595231399378067927325178819680556119258096940781298291297388511188707982298099747906074677869281146947060567352067742079902371034777465391479125933211778599789235324168163158175251129295476167391815068718045138908705559253665003566888541433417963029266043394592653956817065855689881189130482934080340080094533639395148622587640075575213379428683325728017444227478241456009392100663528708522683429023765836157167796276977398785461713966843852975478901487260400609320254832493086108438789156703525371080649664846648537475683755341086995183807908151322781127060547204034969246826914507303712830350227016314809718327948932823243867662956724694890713780987361143300569682940229691665900037324139540703501749368776273728334894616400618419291488813944508044455971011897942261757109991514034726986882179370657961600768146555683679145258058522337257188919689978645467858602802645134611738945594916267288668163585051243800214428479358758307208378594213535832056305921944555019780238612116326905695277421632873478878935086323276007903460916118560222000533896892911257589131125544553759152527712188919935039571358352497017968694499358748854011463200619529246800535423377741448782336331346787108764493617506451815395850880771082566805967742827834774959733042127752837715118639993337793443133867203700451238941234915186875221107645454089182650400539359822950541815651316878578391033167558665244837983586318379026435578411124952132348259484002700611454830212574708268243208719725779319934526599602417984658608198314133262295072694044991824468809924163724048184297923376511014258043956629207988869334317457143054592116234249989090440517968555587699449626482765375679737620082247908257934992777123010058468412919144837300616860465759263669102703631483225310235193134321095863083700194217738207859606334016940017445526328707408257223137973084235799774165096659362829562299286938599605371519440403478611622312884053102161940024158846731223514544026688438123600874277468308510720011908512518313199833550305440817615114811489329885471582210967897993686483828846125562034179566956854067012489663094560533671320528050416914637521064229085979734233172452514733948832955322280796340071175151587419042948114871145021206857401802647511537029617743222080256639336046066647442371498946977527351819960882826630594123007494176027325846006189584977728395340137235134113731476215857921469254831265564395444867669259136774507006845106099775322094229830062115133635285363687320880403910365622458672592194270069523058278176287441418174339343176186369545714508002230690305618951919668892955540926528383361230213241317389483613520516784369614362168989875698190624891170052809816700393819765164029872851121988314123533875235964564069282247159153496210058724148691441223968421158453592781079651737734243901876607366648853107588183283038600453107480529109236694099977382520633220043442730311426451038400675246348254980953752425545994007521136873688638884641778902999438088847233244073623777671693088993256516554434712237834095262787571919637586088919275615901277992021008978304208325659499766624654899220136863276390845233824281331061500957136633975216311250375116990870722697417867731095153656445701742283451528541301256706685998231240183023210254139334045171774299099864006074387247158543459037332221915741959916704696079807038604544838273318959542492365947404221585048214781479311628084443956210394269682875573721339722218558474377944131246557168837332158387245239119330551000978916587898942575315739829876396856341320698952761722478964082928315159231239153178733659725109379752730486140191014815259149785251058556498572690820365808400697459563202866825089249286195923269718148040638476860560973439570195706253765155555049387869579807644287949107413903616327661030163481030763244370266751358680174030693386264699581261269035463482536591486130404641816944609542160189772428127294897744934215141851521852254557736297463104688521568285026425822217208755611447981775860883217566674701367875596280318323765007909933163277339827375665905868397410578394187337327635410614173117902736946309195257065967060081288546517595951666490373345851031542371070191984856716860744104439156925418066703957465236613317622271138733890243729744673081530816792541903999817073525012482281043858316658793392801491776921406501023757300564876185086772980589748154256636901679020700166771461469578252342153866105073050381830706758622479782363169508685892487073012935182378539945945506558530792441719723178215717314280064196104322595119840742925666405818894418344740975968697179844597781190892851760246220064623501363409877013358673161173560939154452669235115016195086373349808063269366247560271289820809875672563431453065713640395195625964772848377880942156319593032359809405074954787089194756828666755516677412514496557534326333389279114211457911777481835138072382571370642793454666848916867837550593374505210824579724037473400740399162095003262396458327275610353095986513265218541384831422549042684713219660555057489750031408787095203933415470617401800637826590699030844093570529127608699317593515383622591781928169112833919449341391876435496172922263950575060900171729489010338031001424354679978184093059696953894214522857459124749053332375837665695292643515865253509858088296183052445846019610877056744627686332011242685007095922919528237751135719577255974525426211606602101241117716916538473557329308583235743509313579523932332046993763089776465277961914195509281929467916786479804898400045091000254022642338112087203725945816685056278795002599438934296278239807113496086506673363381277476440154941926661659308393165031638758516245333806664949393964679650573954195722127776716706083614502334970815043504089210177526489002133863249327110142280662628801854088874981997182533261301791572527713151454189726748224558079249290758582432992236085633533802901500911330834442701093442609926803165866903231202884629402794125498026471342862024718176074052373610342619165911393289900271731140561019308305800797203108365267163655134066286961397890164787892033795485230053021993610302644745849764746076094975195336117111595164102401136602391745263813503660268838755598475287563490287665901969025170989236596604555015810220344360439109483533847721113308425021845304689157108192515852029839119589608609965368794055709860979877701652249815471401185379135825836181573761717645381636823621719845027341875257691440750142396014714403039570911103287904280737795360007000841776112231345371002680095457139985178681654886152272106111291389188644881738577923744941684059936520951284945148290487764099971542446448622936789848199218184758995564588797395975987990165079625270778686519228608774667580692783964672281465628233695708286150254311467584888991747224074746579851803505631130194530146553837097163631450058353976706871877142833349559200048714747253186630706231300593643630967845199520792153865392698741741000984254248347055346947530091273657320811066240938841986581873344877550927499997867179137981359686307995652255866073193326693116167332193514007408430773587471132030188156227761009671931009790202548058154069641047312007321793721751604214819707775395601762221463398917609161639504120538025032198050952472945065195407066521817847342279753806416962115605065368036184703230637049232358942597762240479740413098525006063273088181089396055859749436446008932195204758146461760953619865849289121441854668665510532207488040580131712813818780271175068445061408988771123651736711432388254133072331961941501114904366858391345768291736043147596885264707468872010665261178773718540990845413940547731162895713476048161445513258768639822015213828924526660823223301689311550714593106973881826523933154248552686337418735773067361429604412525653390138126796209595650568757869941137595151530199296602323774011947311549818462270624310160874830171391545099292910556128615443832090969546180470007136061600649525364851049080722825163743026346460930274802126475271883677158928269641374840359138963524822718967177802621288922640546849676941031432320034670032027496720705881668032572305899432866904868217340987647335201623697829490131377341649210159215186523090420738479544855788357940128057676769842379166830566743405792853717265106298288170506389497213611334314455114734586781454006964904276847420571221297286172831083800724018893181995141009646970768537385577345187571115760850940213783491601449747121004033643500676749209520268499684230259990309150108698962800653030431309816181532606662565974784043821520814762405463369141170314613402171406041764119686134091186725768084110774339416704681815248185326068204543061767279089278110011785069561780243211631551410615805789959009580207262227698140774571626189478244951778010321053035688888616441665768652506387570500840890834196268676506047603606515750218247407628832801327197408454078332194793185426812714614515729356108353821485823136729916374015438045884357640115436511342657829062044386041943585699490634907813096948829307628661850629505466691657564770898607911167451649411519838803867999958273736768235247023696372015696178794087471331287288662622147881493242604171546426478090800708958246391989399219089409736043368571981885964168244707097738768198258477717308016465067398929742168934817327148720083277381434468337890574913681803951249543413715794756088244780593973456645111588930965534421314535383973191436443279993860819520821312724408012615267434633553809512251184562686691220648302397205744546788359803088862255835627129179101227360618028062153799464085696076561893119609777677901143169093088026711153955367093620451306101320198867751183237011171226385878781331895905573442657967044973138336961456363817432975298662841526283440115639884553427760016240143280395223370307996128771267480214033808850371716498579393495148419782416571752302170139174486757663373080517649336480434224125675088971649319807892296812610652425142823993478086779328384121830490187968396527802334470291678769616172535335692184171078504111812239605669793809524492258778317398545842744816686302872529102532209248932575217558005937592971405342882856361155441767279637317945132689642562874333039104803334839820989347446347219585187412522207275399780287290238306999100469765465367604839864730216727242084687648980122406524089047935155586078330514946194304204501283013759685110346500499432485633680868361784180196483278789274277831487824480032105414497320778192453000985200903093032423603997982919752735088435500475987736469454241464959232872428017191386109352074820984416669089528333281042453049592136781166271475616662981357189794585149405523113787637908176781216951147438809907246757416405556512531376590743632489525213006206312239670770832005101635255905156404484342714204713497087824120243272365231545736318249642911243232770685932969947979077534363908988942522704194222193322246177967654732263046026066426626275144727707082903407634074849025449309254373136851269777998729660292582834224959749731446075286412780737568690034795615405496262244757114905438960800142281867624396864334185071309114545534297470035602693064405034459389211661480278884235114791541614648040951745319967028033051617672850614374287461693523285537471705560390824898327581629833321734345282980126975237909353265134704724648883795178133156436147875534422740438796809026105682237707001293385357248690022248134112114591858059834448026278012529134439123070596591912034016370288791275211840460768266423033503542198843493631655309609090626319583151667638445827351982982672776885022786651574941935320096622993319461260184103632392069161654645360615943947134845477077272910000359557018501281202962078498840869008596627713115558721538184801412988295193821444565968695575027241610282969292776457782821147422764995930008223667828871307256718074109766774666330571529321710390853939530331683246834810681953593498552927447031482176071008636812558522899041933290323050428397402328627950990154592140844717676185116042933217939601499000415739638587072024288812523771069791724656678049074862859575905130660301588204028211789574040583594723504879836167401535490527591533705949750580818203515898401289547657585398702165338596052719516061652395966440198676919137865303773661529874689495776853319477822428223383154443928197334613102753724108323869644035145858750157170823558968644414881515659987951963803113024206672743268586998992752192905571569969527940050891689955877704920752459028733532721995029604572773445199289567903748697969988768986992965482197419352994241313333546860694847788602931378295795256817256242064787086103029687492368771669113563408102594735448636061380133551969714646416658009488936122647402225365185203290581117943938682397207113095536536245703782744701388849408777730742919779618960596639942563616598441607679997284987322981351956027036239758383763180630924531701321742513916148704253003450487860182584485241549690051342684265187373112444543805444135450136881251442394376474757913249361537716907691458121336848147051396881344172061094478929135084864740668920182290327267300137404149797912859491354497954813995758184539870704116466200100936379273470213564087659793723379635181356449646615194167980348754238434924026893420897795349087186053419939855123193260825274548175441235914463226010376956908569206012596359455180088060828860557286490820480469623932384424407917869672178499932650451573254193299473120583508037129411578160843181862074254431563931344564684129251862646090960372650773176085533825718965854788423065533886404707171894770377763577168434294489800667786961989005399793476910118585602928983227820017248941413896340638572771205896977129129557740345516644541861190613221360150859577610932288345909969639244187621420966898487391182152931647094824754395880081236907623408479341854357214125010073449612194682242100840628355618949143915194006794428973990293119486853090529150158016725729556271065642233127319093429689203866026447022131010104020787846813550579787396893725936043559496931723223438977929797602103089851319764565445121497486399844332297725598580234807699141261754340616215533982060630864049020528311643127737601128550197237108391973092069078599368435552511207771433608424552411371382324763890982725300643528369731545612745339766192873504568705034047624572461801175605937328163745239679854722371797334302909413969875803831067702042773661115094501032394347621728317900409313327614562132219906013259364678376615851701815789776652536584921841793707035372550505295519668834352583607543101498780007857117814349565755510830703030172964239094140918516909793406543206989327450867909341410696276673601570138571859867140673247751846108294083684235104315184623985499998950134937416094520514183552890976576775258288011812994789930965796313050743053458312849871630729208860288770928583237341184417165588477925205258626955893751124650068813041456617800212853341059734424946670481145589352842823991660603166879637086425804407658572658067004023697233043392715026433748996828045503250248030308013212728336736125627392614508436909115340544304526787091505156624496713914905805504234161043306260070651052062340265745234077854361712648358306898897874492028934560611893392346001148258228063097437416221211004404043166330190866533443322553193199347662213001176097686169881635948207735726045766228384690028456163624388197658896976420759006183846537040659894691263155000345123394869508964891605303095948377035010246989256229607277702203036778364902291259705721571372682746909411806777216756918563194857339751875960309971744977176028740505735322501836738569081974540717772040461603022094097256186038644224957947192296969418412694525103305683986417184582363007806424723422306399273692300960833270406005585114300068808551962745130294502196103268409991430697382971212029496948890008706686392424931515023137641423706515103098043311973390763075272425291501664655652817271661303725207813632868399554225385384223279513155429563194555249276266464050516993761314382099433484510423672116478622804114089904550850679198973284053092024637033289388624620574742654888816579687670352338812663961922410138497509151113039929073710190354593668141453717321867885446096029458226028907392941319894327998777104430697058961240969532381958811892543251370528445037792743267949823057164365005761009056601443429581446779968718034207639826033830776392274477189631751765475204353822623336669646502225431583776171060729828071020727946966414951344719595056812286226842902854104178391113878792307832860912566300828274442173943446329568184270807548925868612736280240857868049658060779374674627696906694897411846092959108798847759447661055027417855503406515997463095746396046164779169827379157989058776650947815743028898771101251582049834167198382285604552511620871505612835472704084689137558931841419740250290003737851270363562737105445003611007209235200113101195617161048982729166172012668470190361215024520235528233871079186656970232766549653155636658661160484526376128031967555415028975502771049779496533668217999453017025466434463889267415765829078217045327949232957744758229240246229695404448460740208684518459620020164371883939065902912688740501651151060546180639341029810018942549812306836009610309459131442355100876100372180227314253015341784434425827301239162862050770102813700114087756837148722406529914403399085826380819061842768034760468240350382663681793499673813276278108199411022212624873421545546767418220621174863559537286035012663556440570653660498786146429627932534666367063236177470950059887053712066805576135463198816521798497081114621236136693375033629919504199625829326652190326167777625211986784328255337704832826020331223307006302292692300653779490951036852692517517252186564119430661439165007290118664970086445679295853477796714870115511573205244080277638736938506300745371110743846877603818965455673561454184958492625690450814569272083135996067297594299053602453339849623872837556059031556935565083280826460073044620646416371104945918414872230887507548591223898577480670028546054836367626255918547398167890104992698985556151507752155506912855366558844487257388702084008794403395789806690585309950591266111635522399617277347960341352657206848981275264384613008658156597882343618148499069313235409681179107565756124186836163204691704333002676444716295727519646064002897678458415902054910958286295392679035168766093731889651360821453258378043475148138120468477538569832122798976511179738693093516200084350076626561788192933778415990715792637494114087617183525482814839479759622764100338936478654350541567557611836637696552181429431241869110894918380153272130271855822175330318737824171634582956826718569662536052550828706398147303269304064920820457824176249964249238576798756174522192001828387377950501851176557882473248738495209856662914163420453142890059371516645562810070331667950203048657627013510643876022749501159164135650832873200321131823285981659472837241808389723361955172918410831969181789164769288005870554012610826683232905395467781112695909412450367912913231540065116491003209790783109545349079847443530745869076240025090144688673509027765903407770615895298533447996942632019319723268186964317358212388192051376578749922371308583561864934346810576232787880975513548664708360984600526610263144203658480909771343698328482923256975931569992381518742569971196590430800059116262345651579839672853986940138558091132295057739880301694028631128632759253712040720628484124206280763158977785845674782345320050200181575963654035692182567623985066692459012580782583508773025128980912322814944345588052974608134482724266511263840694269379050448222721022799800923756353296417252561466769964538202134598876696291297256147971441277048492861796060418573566603408881183342232149905622132275665599432034320683252238522491758549074923843052296264796496349482321439046177549933635179595175247560940603081843206352554669397641284644110000597195397443493322300440420210505888578271736113905512722040035222837550276314609159493737062474505472203001477735866462772391706352786139935678633552708538233934622500534876429853706162009921079208297285618525476555852887240809252083175706472405822350054779794949926532176304708551736107827028745225422238436867120744797748049751197124142314361059200177194456369323916720233419840749211037640320553357091519269940709466588460677273382797500124009843265676437050059793742327091593771359023287736712655409783918273465271974037240612439879016274485387252244531289169297484781612845959574587707065244160203259482069380202511940002670097533580526500063348065311132916772646108870635327217777410207887505147082285723610791255442272893436421605557753394080313983166772459744944765202631905547817638606418168291186875058553471458074997459208520518759683810341664672875331401958241669353546919311072945436682112782708585822239704976071349341320973772988575631338892376363757349128372028804946110100387610360255147975482170599186027219103136896881185118751273948222166918875476533016585650334391597796893026510540621531863016028744511910540335284565303739021913177218955600429479389337978464608084875533021836143356879462177710226750106139779294380592227835879546468292483480251499275497718476936174994967958964317390666971275118528378033075530725665700894803130784785338522138406940453064044501089598335371397628711525491199176106819594462034294089516666870334937342436275335578471439987678228855577213039975386748622858711150530893874439086567411925962669923313753072768849916814029263029541379738682047246070908988760119577206289116276581288306775966927725266447503836395485941635529039264284497460155700776614617078979655156873911003467187353474430149590644394207649592472735033980565870096558633982871371497045699096465983255663572572754499552894433848819052965827637511655666710280436845698486229272372819290811842807494281901032404312635352107046356690761875251675882385151164370951340521282622646913277196270930470289679184954420331725933603264804979328904378300613534676607748260650970533469947661464124158914771718874647987856370332619396715796227532424862722398119396191991048128554761214785154064722157590913246466218424764994617864014306904193148563367516529052362570709311034770789790988495528899727578244269529691143390162583612523943352389205525290763514973207378888221663098483326963600736372994028123903326504449708666273775337936173306941391288604099636781397314239539959697274983586968306605072502793688997446672813379236164071953178645785259441848327359693522752843958853277995007894948389060583990779740319974735099975721945568902992925820507658323828764280903062747238558698263870099159308576890793776539150512329228823436994001804767239098873146814678290331971414500599257725437614030126141744105554425046842724812295502838345815880780513580615808765784701535110343691415795785090243188561972007416333123603896916062811085185999881914838340470307129227199999634211787590232368004693109846110071761415722078633410150873897752740235438389869451280923608492692596431238070840446528383808648398513637658323592978617522787872772739025378580278167596181264685018698134691970455889060011495181310126755160832946389490851515091295355946090405827683003375106004488440898356695049597616556790167125401515407861353090683018417239044459045327881966736157745623720129978197214326093266757174992197587332840046580064526844904730758746565591545434226517643318614926609245301813234670570962155340754468987094500646041264356594031463082122065638665728163639170952113422974236543589902740343568975946470747977392769184100445917220353262954588500374005618947170820398771161817355675536044334673118172159125606298259059661370829529074898103792363317324993455071939975169469139453473537821712699994407544988299213571560477896030456757061829368028467493089149184581253188920241307778670968409300928052441956682557620806771971518637869662981464675057914374574335773027015112287347659146987795676243426000961685121192386361290016130344794356036782144971433235376595359468224325073825153846125749153432255899130579528352971895583291701289525479124897060740475944709248601362894753572405543328888805925253116880136298663176109358233282945048239247350816272880341842930337643314377782153042017042092058873304318093860907993496589402115176384276095240606052527449233517703454868652135595791070351894700564314408155776720670485412071679359140360352056523738784638899298594782633925223156894760595370021747107348725970867885010831818973263930203594251558740742852622978444105045694268708909157051782645020322538473251759975524309362201585823648068355008473466549581706890681432908377614780302695494673446717113771143246932933330086450727709926030612073248335948048025455300971464700720139251198288422967727188082387477786495047903373285810967956142390833006399258751901929053956660472164702359484093923924564634326408630203202440691392136250793202366166707059619838306364635797818870690037054803549928201371429939105311064190081825981865778317751086009469029847504853983776103721913850745872251642492737660734235983657021019448280569352469832592794198747624596315566027403146124848220320082747150225281027043450053413620572413586284044481245702062325441898896341061955702327338497920318182863309923364815678568631276887433447685281671405370754622667428680294131130282956452790994754956801946248986011934636819187656643913699110174001171088843865735158619187991338420779956266672411166573964000305281785381890167573851919834879831457073029178433672322808299447358313652223794365605567135600859235548932456640243341900922892394686671314334901382286156077660162020690847614527891962010141114016989882744272453982385292207705368461495650000918146852501266274901295285864202769144926121055964546781404896756492443029053811932188253473711095132782835526259024718226948466503689336268775499272126487057493595651287031445288336698114085987101874512297167614162216928068056427426478297124595277963395188120536203519552613067655363259372329562364889479319964873149902557039897083895543501327976440005093576406176676187045770064068617347374343425323390712365413649735780215060479352445040493040812623100416774771184854894371670469719178701478810780820243087639686618484954539983534785405691899551288673379632792807615296827712125963594116786263568118511844778756165298042803312465803773590962298176268064956759496681457325913003092745926854981017885737884865248173159839380020519686193973237136963408859305970050455645702135798445825360602819958916294513441942475355544752737363409556375041783380368687732816935231403248293661793824263453965961828285530053120390347929137772745009483102115653726624495596218177759807112049839827093860245154361929089445966828679183944386018043197594897705437408308316891549111239778629068843965158388789980597309689503682613893091133704988485464194769047176381885237667439341795678073717590738108021382511881956058637510903477619084249563238166273870395091317099405604330019285293787762139974362017809953054475673963979626305028572564976447344877954899698333312722161911340316182511199062861710590001102422863726966549850600063820845791848055224969416166509152405793771127651221497408081129552119395915710142931113759840796512282133230145453302972919653087142219982359692556456255930848905822302334775121202457638145770390544785111203605814370187329060256504647027533989040965223722951288871041754940849639634989626115096641099080805075366946351454857534099612139444973177955728962631114961527439739214294799388171755415633613943231061314318085797311551828715685295538395699019238515728709575625936681032224468892975140444863089875588640204610417914135174610538949108364794867262884848735522250091658562407578321368845488306101164922406429741711999538167707731157361210246571396062195008329214904624117137922688166744780597338144775818667047132076892225045600248931085937541777976065708128685366737731415363001627668963947247337141779163874075116827614800114444331143950583821499362740474185545226720186381815320430355265667379659129521927156304800493484147740254670404350631561768196942922014105609742715613008913660121501694756389039678810446944436664974576327042557123367160579188106983629924318246971434071639874076531781879556676252091196810806481775888579271277800129064054636304191854726065079771402339897611295350453126606419130237259139952329412178309160365624077310794202827262258959677044579567205796050133048047697791154243235037405894942656553047184717814948780669608836342223147670701100807432045373291514899395228853948701171859797170523962920807843034847919352681341371565116772678942004888856039740355200347605217037253852242417357610117259504213979225884079208495814095422309061248841231657723489851050481481745932939780787742569023053411371165612456002713727323817747635312991015567031480622068329231520148604642373733310656294872776372999899738736145494774705787854740658563518673589543560647133965203469027984608999107759564313336305771308948116694823038071737377977819617384411577763740790291228926002765608889682310329721242984967879157581200591691089815350130297212972589239258198436374177217733567575508103889754786965985543181180539459575730232937691767638650116252925294725489043918197985945633523984924694804745559587936029422221260728880062540918622569762921255108741245030309058229242685132273049082971210813629481692819095469213214129819700700683871753866704936144683560294769024952500886914037318361442360482078054385478316814497540930880267642365592671678903463312816809684271282858980601890808713220101914996259257159186158722728639872702779540987829597536846291385427265984908726218362340003828898299719352116100476384024318940602085758634983988206494424937005343101347161541197772077374902878794890325027898698869838492686204585991230702191616495845508441438181270175179308425705828177276972082836742388853587864644369446347452694661229038869531021444543536600570772878800032355814669265471698765856816662829995657645544878225023929965007827519079168977078063884662437170559041841061962121248707337412755783688814648831735673037873372915651863869548241153024681420660863965010411767486069942748132082074049322966355623023815158601368867518687278183231660131449994279497771617211668116497110361135147105838027649240488083834390304025755636695637547650658714824860888060745512914730195286522677492707747550812802358286374014932401675312827397524605434430488861646939142968697771939355672854134855490131411780452720450839530297545806008852116326060047359208452501244399450082206898230682075654049371981624326294122379001551215535852442640081477233608445235142615056673034505332821052934259953031822344352975491488802602340282194993750503354453880504096609774830022534667282092225657958228374290807960389843795231857613726457574793984595066088159661176668900068761496590527111922680825940769442389126014807129639802512139519737004022681485540504730726174992388634987597930123094669719251901429786469462688944212926621650519607904178413700773670481285777069572636846546958338370864002014775539860256704448842887648673323333319579855400478752886698588042171082302131727523470227827939520263319624503434491299301982831321011824610932008777220762611017477834253059198489132608807984145519262260289653005864587909406287048225203880553526242102798350472514105811125862003629272227293548837562737881761338212089103696953109898516796636468396582552010173430693033805056770311156333243899441554306556792534916320319634781796698109708807814842972320495730134090448758553533133689934228288384590458758609377504350328221327287879816293948475429427983821506765101898888081831299273409114061024530308056891225576496382029641709995021545713157213668175077384500352394421380928723439093868921068298296722700960741929258126490000991168101347568070904422874018291101667341037408323445295881786734986831199332921588329038618703038390655824527508667315812345639599137122916054543986152815828420235161452370941539708590032227900751622907997179597885384732692453297292564037930103012728850996618743763857985840674957588078609866757970629436877540436105591185395809545542438924536319815873351409078201636681864208074282262330038944968334907340319180782263283475940237323988745259149534165614204199848319592196577003509470270199851375761073472972154984886447426752959155534161588545796343339198277063308776677982300613590797763214827007024167186336989799572178096275120204103698117565196390842532343411213835895475255520775051006830929756639810101791355203990242854960174425173800735833468170774823336523393097103971051486751534197473999779345300087246981695207746012066463428659952049050654823705485260904786426539923805659920549452341613217436394262446507868635112497372509999467607988524683213628646839582476212528884619975093283747779517542953018509382625687711734473236706589332211405674814348176482262376912467005592114892602482160562795917675531758154518681377781425974361158732983403176587150478367799432858236264315274626610044576816494842797336147963015288256941730038623700619376387784758442363126229456832909596095955964267963120306832411960090228219497595986129848456134301050103956838105150648611425591523591756956432495597954527202041156280216487119951101491344033769196507111153028348570098397655872651615433542613348814130281735230990128370135828160366356806422021456328317356828177149499161548578452053045181223810717195727915339678033938120427438488308670516106680909482952085735591579634663550417837303782370784286825169523848671492560082574110010948733577235094312291253396656652287001983146971541386976592406260365566275299719509794860684997965459052144349647242161529414480457406434429278214236980408164845448340949211768269828626485750255119511479469088875435995527580714386578056886615319277612595797866546988687716570715571927593026851683599785376033101951210100359218657374663199673264125331635617455317131944587346116818084741368755160059852766555914986884219517183770381805344476031293775532038039638237784713055353333089667360209768979322171061505860220442542033522418276051186487737491055626204959542691955585725034885097075040267402042702316718970333218597095786845520899480424082189800690806884701888758906538553959491569595053762758908480019772785334350309435118191231184466558953227209906801040790549656391030657749494277925355034976492413640481499903203469979372288076552195138421670635454853043789479091176995859745548068741958087643656393117038857202500633748729966397362682278072989925767914196092577546899539845806088075751266703112185680118467090444551154733919792769329316985834081209781532958005157593290304174774609686763752848408749530875708494491041973715188434382038436455763332540939591647843448092086470004994855548746800010891942692005738554647773599531440133910679098314263443241338676320709972122959490708993427254130100439833939819309272757595057029768842298172792270801486104015306407567100450324644469728210313169487962905801850281007551487730571932635569535870959293652858777057852281291959811878456312478345120074043913662612033778732671824887090122510839359512409243406098629990763729122737030073281942316663154765438965805593073990604352447645374148865008867176358476623052085598527575491927536451078443357741345742199261641490933226191668211267681728638329839489076826308142261272267985219625564048374572915153246833468150312127714720427002618540567087799724254314269463641125349687509360690642730758656578470857431565022782713482653279356313068191632096437447809280346629211490659032687231092095620448681849686045357840757159041458831621154646924613375568219785841897073277956230292427952024290349113242323459551543907518252370880752035427996467464875877985743535332665259175938604909347061162728419019531757985950574623617006383361941899442879580762636311577210692008512389260502860658090704987543512772125461831475342050373867631366124680685550390275856522933171343928282005053279305709596278867856522373802987349727535877166151446813679862445695386687418084169981615874697802381811735683281155447800672028236157809872216346922612619666691018655957706698376450223841946935944935487397501811381819913548710997278493862231032810281722209622171753048038362881883397155181705869018078579766030424215042595247910959758002964295331256478091732196604692858069682594319934901286322086766853119459850869387014270009533132772557117981942414790492359582135696810496595751915018742450232625922568269276137799504063603711640009095332937288005677625148015706347859080180942597528298581635273053004403968572857791126390722913682154424070081711347934972434436697122251561379804761514397832860563943554064043126859566468618414214584060119314861401809772479329337380163800379033717167673618441748993122225197642870704117181259520676964760189912827405301620331461482992052169148104703456455480222275153254880230945852726595422895763324003175383929782126848524207476772863190758876515495315063205868519439440370191444711331305239499708353067062253859969881240841617469956787434016736761670774091043512358845549089370004478930582485877943285489078373729518340933917198788483973780103773980804614066273965784354394197468836682376950144243851938284061227678971765085834577884403330721990296973181361842945839168550183205913774952273860889029479919285426951929554357771721008134522303456621766489750725907642339802598045080766684293334508688373827032722180296062281383144563024987523585320199009072187593395256434863885707488681279076801936465735849726467578470572701675296100011178056392883872329517566154579624217864594976023961371476240747749396881439562499662590040820488629791738533280500510977369851461452800597590876519600327666848940729630792128577998987302556696851030442378574911449624575119525872792527568962877078728389808378991789117362731612418275398071097487485883853301194305648275698261574607448732265859012393975162963686728234356894778933798945357498604998064139189670158252170559795019464571513757429034596213410601629987659655249819920826318801897342842577029216016724735019375014494035461314794591002540831946719417700585541453884312322516248912220040071988455245316417341944243002990967419768794395415448076430213630765635201062097540445549910753623556386124509607632005220196595956039131154687799626317935376569350311553534457397722548748417574061241078122216136199792426495338115646434495308806756465669396913905206397770707477079987556144842767666390662697235010353027329831724720548705113786299475282522739119400368678041695305842447437142115285525827260604499108526044520435919445791068514351910458189217143036889758477421249773873169251328421432804611132025726111810991976166719446393531694125232108680955768887912884902985596674017707614971230957904757711991804370529331375546496937587655871277135854582957293918501670396429012047210152654095028110250637654702110856699728668771916906957675934067814931870310870815664657243676714981145404137752730629541318215767813035153648804299972320105193268820874182378060393805815071478447750571928916636152601381189972502144095378226343703762394990845977799918023230678350221341302021129225485741996726959836165810177749153585676135858277367450364498789142935282434626052896567529201755724771094176696471665933162529696012955152945940835337177754176479430972634958160553955472989833471302675754877875579876222854781582739510701672853615702126103756209090897050913861214421038892036881056485395271329746678780497530129835189844276860912961628720324233156559928997699878180817203684942145882227649704903054041913391951999894043296377481425602989989554655755874912461051036131748633152564842765305386621778605574695580201871964809815909050434047845034391165930153523476608001352959313037143386414746160079235812966561555866674910431472475477124674089821750636923973164348281774193419506137690353372494050504809804390709293785477793007386717931284764669181234164084107243525091145357761264672088678853695304248261821919936434890127644880022125959361605042452254564096395158584953528223597810899005426370475509973504174617294471348511323671879567745551527478453861641031488876171447942154158180555822405116149422366009240970694030472635029241493140626714194885422695996621208733091544519255950286248810520812528723136025355166649017799348511264378587629968396070192145983505562566789337951507645140968880789446326243154123740464104631369297863656944864288405423929961679952255658159754763878969739526888455302493622885579001046992413113464552524710457089013916680188922593902794214172432199089690661886166835125162946434686908440983493000980101930377621982213158504952734826902616291448945695697708547637209646479217622726352662182442977065892964998655679074375252920905887409449167367022227073865902181110466766368927527940464694040637777920509860441163229833466726785747932501688327212092108703596761330325857990189170401926796702681642321950946510034737258285157921863452791682936539062592941443709601306639343944174818838207031504481615320193554368263391720772506223158156334199433615669821882331212930050233625298356814234469277829856113452919468292187753626236904881519317465306734412278973016790005783128257515757141412560212472479427505330349592992231801875954950958560278982905028810747130483892322312275007167399057250144774657674522302536296578544420049910662289163784817356678601781461208239457792710012390362324050954149815811230554103394880775702851579451837082125365440863218806935194085762765235088105778087500457868064458443770155633896867291938399417826294446781482016092526085761065955932856268201532835199314371823314972496215871416758717088003418428488073684481160204267058927630432680339616423338576063766312907250444387304776002468209762650479499477362868094830376337939498287560328356476747567177714559831087881270124502643155306158435260441394911258663092100873567066946725852241119876194936181934592522096558056567938560178371084320480784066510725331388014401631204468155565713556325263877165940227231058891668686059826658203103323952101627852342241851556479871065943329005635913131278793868814680072765732317191943190616667313393705556183117136816873886735529179321870425847263816982030845756963333646051463865091134726328362668146335246680866238339187984243603438031041836024506833909556135030324120848889633112008260531228244970632129260730439344970256473161345299274391060683125426286784015283805775654987093609795339055126670696638125112862322288039704330526552832919483172274418309319175036919234961281784606413177785369813581876154702304401664732112113796186935159286789865763288557679329752123031938519494248097029226072411727435427720039141123882217434470079716467183859482103401301732800942618676493665492197994846055842530965260345577727458822591608319826931751588591483359328863322009882152602432440829134849812883212226750758944373895924969160235173328360571382686838973458324804673203185375572960840627338631478824194972892260991345800945610993334848434341679353278059223243525228019645302106279472949621017439018597980259306616548651170569579739952729968334781223186530685852739802199420195765564949411778300391373387014810242767721741038881753374005942624588394392442027186118698417123821195307776509956172181436415348166452473300347847207176270774878446372933216746985186342487724526495727870489471231344108863828322224733253837856377169607587763972677155668126559766635760982698437028205460481202922867595094067454745303520890113969132710146207914482938817712035919874069096736307656550889226520571082294866417328891755500892444894500576421421111726164073761999416077122959143569102699030810282345184590877389947699689493985814641177612354922326525750794905995971231735884037540563566283460716580783139658647065840744786537266538262536388630118572553400828372952501865181582479843276389869538695441286340506446037824676860660176331381504080058268892111535336570532311161860791431665402814347090635866393193579980217444558533490491313916149143328543144819930416145524461928004470579181924137325361898099772284874568555307333799801126025452200380853915107353989890200393192901982802140736230355446885390262430238097518382386048822625595747866270195603689464877747051785595455638354619336932622262543713392585099325303617342415184146133929203795460351975398221374059880391975492980178646608236535384017991280618073888810966555388669181840189505739726871066930071842718592655837780105940104893099766946451455514068153454949992187200515664157456670805231633661969436441030153746488417687598719570062706078662082359257665250253253380924695011296871050722172914000915554965085345596933335098697726400354165000708177301787089777818387804743992896887515544576984798892615559702594928532760206765302715269919351591994204129425847701675620390040305920078289514475889470328550788922626859964315569618264249789001104274219243800052277825386187089240616693062873221666475038913068148632061746522863831304192857084801390542044661313191423638091403774738127256214249473013609635219502693335579337257543864899900365493418579182167770573724134744251335601144232183292545184019487011762473297731535224085061223357085045823514177578847233567302811212191822496324247993157411699155914679273043258572097512476620659958439026456352746782696156185597703778598217380067138149928688223175675394953331185363300001337251441870139646824267670948037714790059297271149481926116065825773066416266708009352369059537396963463787130680747236805908815393394184624000616123989944929957888653494192195470131533820152674001519774901779036559357081250187291883880325195151006246435607496871537140344998235996000946670420611476788440766266083187532881768653883585561112443922865520988611696676957452418802673194425544569379698350537601808420566348657929513179553750966475287648457967065668209032838501417047728716272891350015991454488584921917369102195324688976912080858706034716685478147838892813185756365749881144695222821980301521285853137615539686109778952217124022957794705924635668212149998821009761521045495722987548895905124758715007414632622852802066810366512894206931113718040657916270209654531874543307569801450698658165232441044723003919871534394209527354158866436741824527129329663976926266085676028877142551730923968080102196449507795405365579371764416458376980207912042256354618701162209932556237835285961237106329282401806207505446215271622378619848914879791426211556911150390004257065842606494325108136158532376857479364613482523228803501100413797896283241250164466575025027184410593686343846423873802880011532960831278318461253952859943551311778506346392402515861977243007128088554743165691330905586251709455415152523944200846580033291392152737107042828379274139333335974726838664192707066723294489310520940065240625165529223627741818706355217287353431352160550062594689054230744097595634015412352347280664126426457231319862941041471382017979095352414878760673084182764945039717034639089557548906432331472912519952368465992302813879525243184390291093140426404202187511487298468147956199425692743965492320670276123133284151010079881378872144891004587913351215403174989901018245753714875064116220896867047308242070537140180994340372125597835162309083521293571053081649194991855733305394821093427801301087834479378202513789588896399897154876281001968841806372869580881440909354895875629163316967073353342270568647857126103857015261298073563713811297503035235934214529404017935817082867927976705206194464947062684595240150526990882096134955872778882453492576769148010842450678439752563068216929269323968624783507315694927478967677219924371400036438008240413440979585274747254623393324132927319422382334543199495299616201212850036389481241274994665389334202369485279713545091212666277244454004770058934416780602185046607811251426749692067626924141601182343034498549739357006695561183884692247900291957722548562965228423855139384587745810825039850487651553828207934041282720113433734436466327714539660521295285540699990090154618454324450034434354065097299241699007606460244929877726978111210015678715050323113101736719592752648969538437939900285696713121422689750154394526275228393652651345932438758728203863770573327236637777136563827825738020993319608259714547451914938011503239434049374200926125724384307898259736298544049606129135661372764113994589339212113343633890106742707968025412408274508393982378092564696692225153263596021563371764272005371825016260162829073776993048886888888854193104143800187579173704251492872272191904560325087835511865351964261224780521418193179281915187510260091932042195132423414186433169073010993273206122186593793590468734447647261963436539184157624055039748882648969894163918228348554782139687080857133986932115061790070907763482789589670275394128883404700928735330009635194656572296902308928822489970364940544678177028032679747723699554144466671833932648425655123057463444377226339592218647699961761064510248075577144262311459785965967928933069313444112123527742761028245174754632232126289841357681572780667213293547354811978849330867724552224306574757352557281906626595445246460071985799320270126790675957965711955938634580956571232980683856991128609103665373448927351465336951598596157154698630301914730877127499640055979557554069304105036476250917703936635680016536134229378690298774400748342604240881317733660563444832617188360672555113430114914566492837137765888779167895213719220612938997796942965222000593335028831806922193930738176978059968132726140762235897315038187324970378753043762015616872077013713277873166458135152738982397925757901682219556619610134187720827627819468659958583475849888667613231331179322265555896685887683799562932161788100708658989222513038080396792912937594088094232186848098594191275570914853558660521572233023156971086105230457281226104073086998706973697797842637241796214730497048991428436968561993049732665975891901402366176994039002532216256942576335029749700300659815920843040774744965975510485948643809692678080060144780890255779387087832741655089829437596434408302975508228524804011306312612279728534747348854187406809479402233808985496788652017605134262027686494779928532762018107314821923912231957503595299014267103241079034949848797313150044873052970947654819033203065816441650971752306538847082247988615342630363021292223325829725736271088530745083926416741563497164706038521337017067381037178413469043713994668024911955602864291272679373959069973179341839933144283619194199518691516162910577962864031599036778948826297995965952019261011637339730254484261661785610699322171346469673371474826176037515070577500258013259465859592735814950259628261445259778246553712310678657951322196150029870145790163352047796005049623738609390043813290065705113664165361064179314050301138594609630928833920460756941077278132356670463308813805024375254107501389845296701273032005981235368886513498350577209363029781929323406587105009280119256408986347719746868990832952650376622116996789849464705621305384699306987450528240667242177110022651469496579194434436997724230189012784570730318908565973974720584634410529378742624448920520575290084040545504158754550741748591690656947575469158108158422243799591182505875385125670119945035086444822760460236202346992597421206232488832476243474352829816796891216975263465419876147437790819032651474823140532668416325825147304684905834506808284941375237920220272708517133801750525081245804099767042177972947802792344561784687573765645226030003888726859141055353933735468602445106757266887056240198045649356849933273603247435325781613854104315419997563881316362754752938889767681949205253576194701270118963301953147817001771918188137965223741173134034632272856855704671603420636280551291637905891188685615658396030136330955700174379501303775704830278154295690328163345745652893157765886134607941547777944348531165840654203803822653067439179586283312911764179759266957678034014512387755731822206456688985322785328917041864303184357230274074703487902502787068938074878032399958484308888916886209793692772782870833631304028322616780002041679224148879558445970329709008752493390818825428027536020855413851182450574493187139192794166626114700619946679067584666633561972608501242414786486404040519407445275349564131759323959092235989403470951610765448936854892556458439744068266895863896209060460177883593567166656837354638128686928923947508255623184258431276623794116416058396531077557246562856258983914558724577680936852841309062535261035344171629476149392371348391197986208801845831724825717855082058771784263475314082237381473344304455763619733182686432724864216206842411216315175972739811169684863911069087048669172555923818798787639511137607561706599619558111072652630252544913576365168510847467540341760075735667429809699896346257492219815283950953943958674923426621772648797759098034507658643263749690956089196686637549002702491904211538322297049186824742643248864440887362576957397455682857435207756183121306987627243694426420070659070195720689373822751533083918684804206358538269546685134695973971504135712377764370094820854401515667961843952858850837507693644589822346594486606458748548698098258152674058710910535513767507387680157950469588195982926442767442682286621708134785839727233098384599208762707921967938658201024947658420226045116750520492330029512953062599111086514140111423240463936630048232161175159069760958265496512456508899217652855673007043602831193933325718682518381269528246742487419650055772927876836864448799995762177157793443029562193819834416646859145790074320129366551427770735693061285823727367076529381515983929954671980633453383920275998032955720272246480419726709204533460616616313150559113368897915344669904897543930892102401660941796376849984732922505662562465972498060623636078242327760246348293313744546714946993767938738234997817566610148380037639784381019456380338413366435865169635478139544754361671209275145660534770035859381682162796829699815943031410440031033060336240935391725077823795979277319412203372214376658189878452775305296135067725567453766129801212637307142871781938065522675979551750053306031962940182666985621067365097747492115386612052633600293202920482538683680288061950746231116474993104690616033591715400572469011016612679849971431970046758639748827855425689779527010118384992600597487103196533629523290838179734586278004402552849754082760591948343326125726813986002316191797874154025621927682209025058763899856677213951658074797131037738104448037100327965918292184489488963794322649050563404817498807196632307070436940468702037595656504955865533142535465586423319543319788150674473592767596119819744973027276001943473739674739035286996110497147099096210529838697249103621123343531825093680173283117099473799861146280652247478263009088476735603865253098803709969279226064965742556713623234886784506237492856104486906467258671110210481662431531700893492865182531419909728395976583582823851503089425685224583235423684236150677360375844183959991641723590244485396968200393478099246790587595197367616954421238690382185461595489913493540376924240396591476802290466996179722397925010304930879650842234957336108363449049535601022572671537447017494070324280648028934522846637839132260254705471817755192447084132997071291489303757854591197515599803076174886853512367905719268606867010633154107911577351021234809289224253074031480243821027461720742448825138933695475331897841244096171793818511832804490707596092902157827937497041832726100174427706479195241551267999570089404314027014139193423547457193495738415400446384484332293523955435072782999744179412189738608900006609456094500351989357074644321608829081034786354955037515753688629702635244688693089437654590773615172067652376576873860992046440603433950771091198758606359588810726479749727519818301526241289593103108447533233560661370958045891608431568982318645592477024442646750000038561324940842959285643248951457256706010577262108534426683650010325165639812481870266992348271765810356605370886648490104112622122811540078475546411920511642029483771944875437776957924720553285102106504056518651136088266225844446418794908072112760118890688665118716925266627521437279630776817580376692250587325072507225614074305248022256529264391624838871928844989636597719686147130958329656030574053821095617252152814686896497807631368401647310700710515757215037714505904785285175946629476651451116325328654370253151202795009605806026373120081523962507589632504882878007588240434138354162273901708947054283504047538474422249018970015377914141137746127088660038033650259390479526724497484504466602451948622905557222939967922819173248780932320582355329854066933520317273551825101510053313821078914862225486117850266308966306608272369791359603012943790846608283014825569951135397864804328494515060732354744144490805165640507474728941181677743106677172927286860658796442128759247635993479072181515767572275289847432937762997968467939106929520269271844791849799065637115302166488388170939092510533058475082772268244627700367687191283590918898968145858545109902974415301376187999387957133921895061813324852694811880445643317323958732348004211788835687487537123371434747173624326062402585918075998207714396465035901721977838784858372796170920933941766259112033556807639601657662436969309727908632210588542371069727592456304665048499871199536618210951087338900803501255570770601377031014219840398800595336954867317303690750165978078367911786601671564877779623833561493613633692770708760729068519996931109019157173319672391169235146761731331010325616354248430245885229193323940723062447389298490841753088303548334288830442845998623401963925372398384812669424500469439830988535200751936578148430599518544583188155258189998918467775140224200398813599766413246515740983648791170644955290733914045095272711603502539769772926754365268648673828926112671731014554941577359984351934764248092241205038941433549907821187281374779724454196031905306771063897161108759570831788309975012971485577548390344322970659379526266027881692284499629631116878324006201382298345482395016303416975923500502194627430018251166638386984561295371260309280139271597612347624921557095722736521487301547008773529958538377960992647595164120978852400975782806533176885153339727553737929462262447985618218384911289834312145406541099356323298454373211025901140367102666346363599898427173688406258930677737713047848963197903047959672004396773364203914598831885289072526676517508652132763130631402947612220288923362378580755291499210669467608283709078195425289771125280437795567287634523092733451241753827279845292800727783551545241414400880921372217927011564679097579564788400723306133912763977203717071144472831569817768877205240940288923979101429629764470457931113122578317012466081322299252500856908186544281431921888006853961001508882822886231158962632961388880290545838648107485320211390262854134168700528513150849111477025428215618704495749420526758262432240112979209854182685533004505482673670745083632344401416162131808962268865634763802142546249452211862167597075994676877122193928872889139996996171754082232582261688285181488047094193704527975029359444756068274035533697297315067433115933515435913107691289696988730020664225025129677443243299816405819362149521604841202015489380102806777391384845838892564568016918960725514540970667729029777340322059633518515057117121181666037105371036884129659140651375320815341029353634034835859012117514067454450185461110365932294407863550475348355036524798416140369274871614611740800605137088577868782385404974330617365681010380038566691266118284289058703081749984206832107604705409349029033255400289369115558658270456761708943431997325135420557433623581097885577102789836097738283720322952307472777283265170269965041915679370444213673775024683307185269677442331338099695056419556506951856656165074749237882224127385122573538798593590586602731098398085202382218436438787728493047960210734513253666604596684816440578285106374328690504347073959669609944209543575989902287798902110121238247643016197703416926655676070867013435271933998867206476550595207218776428990917489567960859395530092291438573139511236427687294154198726575981131572043971752829465307100764421276900911750163215221313848470137937550599916352656864640414461560168429275489255139882558670589014560113017582202888783465701078689291296330119768743853592683175826739225911115406586899255590983438746446716095331129946934497095355777082429886036632251627553693375265556904864314525563092965365398468508132119676776713587410456585588511364024246297766244859772132255358845443471789531967808981619625597011333286616875248597678351156258057790335829576942976082546103144373304573014717073146443426763893532493042908046513742538813300512817238501714377246017435286967821990237323395505913837160534088415818852091489157711830870132359219635142117252481034569966355054120440473817787897872665609437463928438253525532266724042499787283137958077479860950118277897629340879216304655648260525326297479468056634401974085767647209490423110767959161488881509953858046108793294574511968447008210421231847396428687204648993845123407632301781993373064750846146701660199209105140451858656498066478175311732021855712540144634439830753496542589771419157984563504974389146873516857193945776740224896611739812600094410372534275655049993622346657460516306721288939559903049349962013027349583374153137718970773445780545605300362022923317503148407077259263621978874651416928652535672928251825168173532334076376419719227203656875563048837883623126286565904722229024381116051466111932948651604741389400298333640929754721439201630060250357032256959153805542940743724066897206555433251521843875073657100330162717225646428451213069573464441776708191783045048972753933262635744373181444604979144540701377258886228556277003927307579747243389598678816084182104294570464825791195851833225891639117753755609452718078720395202742354672317479651001528849521324705552113717983615300913412172333614012798636389358947611328082999962458402480829123637216707188282627689158843941811760582876609383630483328443871009060392267930539792655446021053084383124290118768668119945167919220402239938401188124847032777570626618725541597223750753372720463379399215334247716956791909724589802527694856460886740574844814598799809337144718759800610468176806398993731638550720677644969823501888736081435715001521291392879409844067377470955114547043811938958662597940872126320481977914832933316830636024773184444905707780173055301054145145760387498677161830061787113233500425857712187679160137217868975541503271644183083350739696944724927639339256683297735003069763181263660264308287950373591358432270753675858508470190970015094540282187157539792072952877514305858169104534459064022536066288387865570193177694250765619868249282723308785735348144225536102218215922704493953737418804963478963532725989497411905503025022648675861358068309034934767656319181265157982249364450921489348445080187133399939187908242302390762793695135335606251562781395353551502255954587819511796589553004906209791925524100331984847386597035807052723842733048646934396505431025053814227562634675280922105581574034744407220201104485730823411888293960911894620194629756118428758144412077151570863916900667297454197177989506984453282668344613369582272669925764026968113471092123319559522759017837912958468484018502304460857707348605734738775090871610003500724491964392576780123940640831687962289936415845616958295371503338980161647641330724763220626105527716846102294909640873835086312459843364285623689961205289631159719067588190810171503920476207096577452023257798459048102853436372416172768944064921340896699699639508664489691757013170950397503802045107615535052330309997917699228889493698832082156951569652626187947583034274486474376286505696783566295755778846723050709198089533778089267212620861063469581294282953337986401103868952818494141883458766673816305434682372312816191289348091940646199179606340038695640484977199340595177038048089697244171074100566568394437330051564050258192123732647259171646195909582245846678390378056094786045972593821280957721502783008086473580960297056083292013405681557985944082376805180030732356574329209127380841947525390908925496739127759740216982446810367546030217393114584088062052595499799626189706336781907363736566619385185338006105560294528721404228140944471825367235859918269266319873146288510927995621947908350705944151199006000743378178204636427079914047861960017550427201361124503606545462253158794394885762316463927187622479225347977627860458913503313299527388197804215205453509914469883370382717355518609218053212580909806387525661326809715715354760344629904110507185870422982840454427621793648787129866271388671324714910167704886865473821628145689374894520668339895730544815770736066980850588510081379147719382125399117287552229719313799218151754745709177980472797378110554084754580247657555176233333572403106571993623128146314732170487408683105974267003101917593151862125912511249839995056219941856064378653636184098498015091558376701106435815275152808562563730487618132305801710473790918494172517827984973317722887291657380958861709715874290908878070446480039193713921454175212703166352966573679221573313339887704254117506538723206378391509001744472847520691324690675909655415513967990870405960033724436155360048076681221498891108633615799192929221241643567390052471009646658488286740615747832781896872405898170061033810352643031136991745870111932542007358562106460709263239622913010318440294481809851141520633475239558409175437988557003099781582691158487094916368369742081081193126576405571413979131427069575929655220657502917242279160694045400406612730368253128703115765482109475851080298736629634691745205107460270486388331523638501719585304844335691378113070970153711883942872965952632353886546606606626235555876836606715307976182955012758243417747662356745965806317700917299065477689686988673284805653741099580178814630235887660661269721332484076801675229170959305017482005108945844264756270266870564571268867216436628718786971663333656460883337959597826592585763558236096945621277841592621706933949969069903697203495199924893681286104948337863309047246844472149323140745450250896255179302308866202382336863589768032037719286207040528687412587295085840707522688472255855847214998564588389233435133636416044510607536750463746407787750180561345661156406044764385782477054646344996969353383786548691595279121932234570781554796392086738580298516597366701587895040106435377086728174617471393290574816989940114209343670541493147140925754015284480014776691808672655614321820165097156708194125822267227513059352944837789358027560484037976996604905712088192573037933873117718248048114308414802456569905005504896382133301685112024164320572195306302523971209309793805072849703248261437276197767572790486209196651035152970894361632238973195229603218612264462645835145787873977705016679310670874832584795269442698497765641872082907870720167807511140229522348380773416036664771856793784601867116045904263961367248033087527888610228515541429280303125340601032779337294545261869292821911253143262203097386870435959112690602558231665400830804481398594352222932616644942081361203446794463497626917437552017051238628028632074450136954356702688979732277210645607381675535768121266662820873822754810490099755450337626580105774304458452644778716885496416663441841213805135015118579678759487750881260487547280765825354102085071933020043162155894215601247659128069133349761363485187558656154784706768940851238484632243128959199960871061922956102327045554179721698350045357517950855382685907502564386428211425426841337646858220562018156727545833116420719645486084250900909414949557932869520281279979241728856411826748320841779340842207883205150018944765040732773157781279455219681471927382508700088323856806220995657359710365206174295658174194365090943036899155409534912327319062536678565288521626056373993010323989904160942737094870588945281373106819028965104178359786518744150302452995844382162424197910415076044170649082833622148362938858630615604278582154996528954862537301085780944797880793147860538204629163168635449721943604004806601867567386395597529984359578121667848679793258547722514239665592626239863907823369825896565626129078973119191343297636893690105241206607185466681550660791076386349515314295729307850569524432717640899913900080998225879361022699254303251843656896122658688535023193280334573014503076703779977180224762553417403740741397186990136908473593693349727905029150623148364755586022723924826443372476358078258593073612146217026337971279721812323341442707055129038291794503299597911191646556422277208795288878789558712527754832219651819530476474666197443713186653660678984564220332558522726128974862891331784555892402449979088121990158914742959964003212568242231503100142802323620386384418983977596955035226446658393686562943497337125489246169601431006770989757071546620039530102313116981525203833695622850410484712009568454580525661393218419513038832073347608410741661109362880311717697519825786101082676534282993608165463818554694435840661718900936789230308671385508548821866194460189749423625134881943660944536315558229210257861450987265924717753489016135094194559730272409321300369975591904886482045460289595484234422121592645061452039497598914368112305176266877506041825030458322741299885078767180458277404007887310671160269238653055564518725388978318770318692095792131211221727668206722298875651762810406680591414341306331701518061281008390126162646085676229241133754732184897895271544039507355095715488225489657223998161206860931593679147122110821433139488595276219987516054539945098136685358376013269699683820881723813806683258188683175834583309847461654109432715943734210530832648167392620395961435940116243840928600638708579616616548876870714025706399880110447714552886260679957511766046801588110440235488866510742047108987610007501172855467178217166535179106504965452706806452553111875731973013820392208746953193864530007057660420233606803966713153434566943669198696935576916035699499392000308940307468374839949190860011254472215765955236818962096538625960660499496123566282862008315550426677423454635017810661283641508522298311494060588347443371987137918583791893502591344554316874175265220267982535033371432539504588299331325977977234166866018425314508493314477251998734531344487153320527298146588131087507124394450543258424645755405135368024398331632624310547588609834651081213283347936308566865626913337477135594950714968928496002657570735650100391086939844742270482749548464217895384225989694916085127309700520280062600489692462880762397454623105138270200160422207556627216154299721108260069325546180006620872130815177587609979698195295688250195543059810028048952573248888849020815101786072263445653323847973578069013571348891508605289311567705338572488539648428710305064773646431795335168274312972622196569079578999337658740036454186960175812696491201777772088026343941095839230089143080114286483963026342091689292623613633088034684024357040529283148597863659198185006121457290467338001798605726097701120095826104096571380691820480993134385342757591590156467447745335741512569831452777619210083194357544752160591759358916848929624951227259011704882369438341935629980838788088735900135134273643874176170077474123494479866991215843346481646112130350896843305520793040173096137397316127205222171066132533674330990731303935503661810682927535809759166505817166153463073849951590015807589746091412238071566371015866674047435142407671650668257087390091403437494666866317496512759193371209297330949717520353627115564999703242111501037220492658265079388792958990693138084577433414278983242241043086370846417119039222075914034861356084721007554288833177655178919284903113579181038316109506024717960620239200260590407280486645129263115908307089400774349208258811991574154146628065649569625717956983735072702249238675469961581782253353172447236153200381549431611217105955451290477085722981904769369277984841217321047450390722604640490619888421376843994372138701801506192770574129169925210454582907515516167412126052953502437712765473410243930351247727828317315992593312168823200167928928274943168441881089437796209260895268078189297868798519772105005839708051352595975611463881381363355256182635160852520470640213399415426479328662113254017427210378027355804490395833465204604245021914562510667978866514971028893334009715859761565597114652099424543387152456840698137693028365845475253155770655585740273334722772009621623082133879211339851973338706760097869761748079758678006928764197871411007643268321017369708684883131835904657832135674477310680269532601434812791852046559204950124008489191611046961116907882361212230121459891645331902770383119457597408586983947386461128618312270164519865137043626000746637443723364163679848618924955851486647126413180605738023214839357415176314162449353376544605343408061660317971689051630847876551075274911501730694249105268681850604770090290365015859920827598363608727624295291933531212229770903459919979971065291304463486499112394680719085830497346600171173764729326979671734431190201229087495456806930247572079402110051408589621139988025753569224852853580416374127984540857227249238086949700806956979789296239084674476072875047771108762524183403707069010528474411305675938113764104157584098158014204680252191956528074150083833074859219302455889683355516344547557963607967271336445022352392907699023453990242094709355083701643718620964919700281390048540976360725221172890154395856437129469490202932407257770177592761921278102087637527180264175714906356319009219654370661576575374732026881237454958420177390583485912420069450637170845925225620941687044218112297631106417992640792329381891499848391155989197419393775233212190910576195522415542789293463907175738335764029551015965163413118804298965868740727524771507586439725085499095365629639514142293592666597807465666702824733129035115989669084767699883556048088474171116034780988888800966753959862193341560345164907338458297759168848127819290741070429720817630304855293970199180404891908735012670701681406611933830060765806257508719220370608980374404106457233019388648551618441972442274834550634012426360688288206168822457416589742089319486556680921695013851381698921431225033345127262228861646084465929563504797973549639430646060268594834232925432475409160371998284912782554727531578910314637616951126581971016471542915577140671097488092026365752722007388297523436536540092945878516568166446970105222663014618083006756691378012037668293260810940090408906052038734599429147544664167063359692966151910331763432831941332695452100954657930203440092821998419847675733810572347577641038880037810879516590715126087148771714396645827023975162229294593369893946312953507914300288402097385515352567533747801804297929525461042224972795955287345818837899038794201828284893380525263416843710782832346276428023212177547709957905255737677825596658013678554045673894870193069030065535528769976273336169764199845683447748797171217329342624749075460517468353450674476180059576488660353835743599474123762153898065528542231178218413667720717611755497229576208211706975191892032689850141778238223628921628036064575735880415042602604919656761239603827995023128221584702470027985074798542038997468269551181882795784885539735386146178831454069730144640687332078521039665563755825521579022270488880185067519402731966550476475706225383070407296489437842372907743335118386134221329707949633864832892296619835020475355092541427230688847272444866651858482762764111905404212772019453135405590103703261811682583094117761439118673366971643314522935229553655814266359468023475032093002577201703093038524249436866975265815843588908381192569931163707739471553994594502910768973719315986241658640846665444449601070590548729161379948968546683176753941176556257497953701979790287889530627057289710893570221384162170214868169607578742725110430854142589154528814170339897188226939979451588312352433336730156074275246820903379372810897758898142098867517201918748944961772054502667624496281710559224550253526844979985040157312828998704715641374582752856602190477593410794474197914547704267364445211610175379041185699978914309768101058847632621782810908601138542425961510325585335693534398461346686161975565496722168167039543027487482797470065745507006570205288351424565819247097842079588607932430140436935119098214080687665794678346827849718747340858162774174653394434973013867623537705834626457629941880761378968513240845699474270551704628082748797663202150684247874592322867401687842547901698278813536933551383303427216103763833920704902665720701169443150326072013483655592631285280187919537730106107167312202229627348972526178294894544726620267926148257084897779118793561910381708427742751636152443195950285667766220382926611130659000596882089894039538908022404649199837132462029218457163615544401945831101634925795538366730349030499438353663382223302818503048024644162841357451530662853716187022177447630690175907490476199617292340941968762787399599992921811933170345126798250428659625421390460021929345889339143848319526161974490265876327666915666641514768495393399193296618613260104599902928539885901177905288621891903959799881114964915614003077556826617390025934636135322700964138394085588975937576377911714395687844728314835061860536925131451211544700850942919465607592871928444286964989318031540707299545586198315080909511826374472459018254402671642791905971874932764365428466275859683386988594120630176129569380165322252481329171795414439193286284076740161786125633915696081786903689699805732479897973886200975936727776696444976173156881980432756472914454941926690591750042120646235634460191059117320520110750771556580233602711806258927193572293721231331654831084537736665816698336088145557891103360612871384504511199456159597833324355806023690218415759655249213150385902895065140923049757908710266259211166503781206184232865707238596551564061526270679200765638543692058021182139918034771635938351103169597861562771202857293508204289117117664144531402921471257270558373291797600075891086190036912318105441141387280362339219977179669794375881960312821127105784980871588350468118990358168661313969632944715594627966589630344648511475116066990943840825057273255970398666261645340208679271546476058993773031058945290412357375329625825613824386071648077459341207725174115676577761658168326312526590628487272157799037449918094544627910852017964420924502552384141986766893482143000909777588681781925343594842534639094680595473638460791098257420362618685006605637445606818625145841989562462903472111817298753925888362364084322749340191966268891277752701999679455281687935009580363018853269429333402188363292842290770628013681119768864438467044178960280862513923179888384707800314876487842823454874986736747048423902718674324226596360214190425262547968080991563830880766476840632534564265418582985935839447910852498124349022265689679974283937220727788189925523573395561043793443464585189718706208686582288526268095094098514421212171732666328855279173988506548325331896045588276621280739233643341982703036213155892178229938564568177331597451556903957992450383655216721740755869517524682539909781355516289775615646675536898737080304745316642226737202855586514416792923355283146068135544787716783107437183945384480661269621259858369950249333814850308696584801091231415576291998281990546469812083312487954912755556165011773289433266832462021391360516378716974692059364125732584826857442704297915408242290061353113493115050250735025478379121318774292235559313894371678095812526644606408807629627383833859249118200462073558577712023060108175267409158121007233758195525124136085950051441477560822715937938195425142200647191195363878186746199644075202315710971725556087905959711104773374887117756585766975055092117145195225613652748039652153160795385378715365433196065197364504887179460521551278959965305145081692530972338732778487045772081313363731286376390021564981831227313738472647402798891227170110516464279982992786868701202596248095613140645956888210087357054242364623459399023870895590349341215643153980656009171243493364469339757295076651393721222670886345930409866888986959876286462874105865701252305821922791116951871212229871397349475215133183794928638093775770966435219528475640868864429553446374875306630750796342161686737822114192933713838093628990566996358647173492147289872723735335191009138362371330580693809288613050323788265250653237742519690277118441691933850818967106970810952533770909215377113147865257557103126088009947362739659214551480538846024374355403671739315941665834462738579128376835827892994116060155007218935717556617174543356238863566086683908243306019162498265606510598932902235772321570382597127934745424803991782987659885216065741143796768132278620070753256418696360674543766482821651783612231912280210645993041736646073365930601465488851251054535693160241018985726851695481600244736183828902894129921525316683721317926124863645710993638647951769773515438363010573325847447421676538298326236765862472628618624006978496084684339457809797563387824841603213585727250991992759864628802343080924783621876344084526777630846421568139447460767442888838418029136419594606345583020889401850846243650512903161154757181690123926934788985606164215749039205099928476669531990955709796222074284854754231987064086600666379343028800601610183482062584516259749888930533999013472470948101127554607202236122177098920250037872501402464164598273099788666592207222901561226928044333145658442705740820559609260297578913181126563000708578679260792800077073419612605579984296937702103292305462450696467990647212069917157000250547458637491873870746443978876145085454818755803807623187388264944764211461923834875868967831066594012581175573719453666375351886269961544745454952615390725694214264608850971054279130554449084729211593756447435756938654187232078114685650241324064929083903597675875678798022099959797581216002570011316440227684443715333576325171440472714401803959686890164385355360959153985437014429506980994822237193850638675527099850575842080696126049357152167650981454501350040923181948301642132642765898821511746578290806631420461309747672594169421671919253695114731653245934717571683476553460284313064374878318024916818935664182588811477001749864759658961435599586336330521959638696053583943896028327290863600389909281222578422567690407518111003000399166492996134257795393307874890458145187652232053674694727573483225772873041189286042900451678954030927761158216595573610284561707411021386550757755036850347539589365107311630016220815866637667329905226566421943348623441593480201613315501802361650599000675293117695492774502074598053791420834491368512144194119660170471561786590646079033127601322833011703774111574652906569946081592295009990237720070712021121506178534990721955811199470659981678267957557820158508030430932724277959333704328000227494059276829489123593304440728150900242108554385715423704603781448134112251171494257636413624776109957745252685955202956055545902551844724307337155106303936450992271904896464339660383328335526059660459385321294649647314302015205500560506425502643917473695075129596527932222794400484584888514458076886738391360495797555798809062132800704058825648971557087054729792617030237951078434915689399197985084173610403408004491956247284344409624726398475250940681023298550853815394999146603256813981520334674702242514339097823294256044928593934614419068039708535692716216026125074292477846890173554681033502369210572833111694838063527177535030012012411117929453418078418282327064301227553168545416102289766456077978607969001392072016870668399632955317845584606555096393176013686331637602108022952429266642367605550779386549207256330983696568960403777188901012838884440863613190739481151505649983290213442684191417403545356521857368143017184119903416213180962995223820583775100721504382984323931663570795985863677305528821596450005109058050948320472937163207888566050148521480534880117720030816701356936728928511175396804526137947924243625257208665798668412713805840162527468336478101296653216611065521523573731860966553734401882552485113438589499890828936712268851970385842537432510898870594997518297058349892258797342574271020396099066538886710495170652218146982782817588730880871153637291375337729077009686300391023701593743819689219643859130413478522139953290337951068434003456795168069199888020110223502300844860167770347128511480172156216904255096450986279161582187343540694693638362371437427188335588783784928982946536261698817383776251937054139128281035863856385567137241927071170925770553670889243340875269487770186193691023028191267760245303180087675424428211323220197775169064905084276614423325601815143731686887677156904863994510783727176369758169121605764345771460388670261965410578310894621578864567320932889409160716816119432277305880176392129830236180470281236700152567364590449783832737331463918036285207871010056933503820818273837498667728805726873204509373869125901339681944625738580045658795851394747162123559617352906589276307366588292372344206398294531917090661015135297910657452799497652729874029495225799857841579504988115564377757349200981820710874992669754124906347600410731027738607135287044647654906842839535785790399401741353079474172550305104584638606600349399195486895869969569925095678638860053550539959471607166248539240645367548151715592299509776584683100846412839910149075936856016817823276460480693984804658933897642965963411216914311548129238028048870671673680191920861564304311921841883604803154466928254600005213818509599326620149050717194479772359346025850104680826924036633341029677748641205312779195096147742090499406926018903396921176963596516994786259255785152680769468535926934400443215370328980469159607672860872139740395930310985424617613875050010518215968739812843050978568804116819187405004692950416142534901327940110645479933285530205305915021061853772507223785920554103080511204800993518669196575008557524621076059546064426404668429278614747035329529849650433836633344688415096004236353106246348442712283512223887237475391423614309265202003116868578014304272354308789035160830753222976499010452977398317825341575004656424580141218207312667564456492303446605077694671411204906521253983524773539203374766088214561220607726623134876905936596987850126548272247625837924743922141021431999411263930353484009992121561861283825837469279499046806815669971527603602743766703555139395785606160716424654420482453022007991365623589649507851346837755823580131840687396899323479005808258737959980604994437464812147005221570680043442386772558221223464193825364598858359415719271269890919000176286011230296922956446499868730895304948633221287735861799648695294856421416852790433251829652608418330461800922750531784226636176860904269258379302921256867594079244940190863729882593482479639555471857090071807205177012330126589819044630057082633854881215417869989411350574468121123573593171010626206861142882092092716817006475858703841414263110244450407289247302082703578034177057675407116986606398341720326032540521653445840858048455335165243829402990866017213483822638699100253033566502871514746327724753072230085173407803478118388249703189612525160256169903043158551039309029573883609465453745887500222173106452066446840041633874300046659842169939289502858581355415808669747381573735502927067296391959346635968754053248107204083662902346182022992376257059784889215315457865115147153150857627398986905100322040725862416327446525194990452952948287202103074747041943644358817845506666695501481898250133666252907968746112349637352125422442357106065916867286738547469089258352263201261638255039840572471678340946909729831229132267458972455780371746628960450776567025145739969313247392427348012024042573515160143586818544657149268177008415283649228741495379853896673977311911640330229975678979712687400455241679188656661520636206968813166872234786254815522589169608356398933811711217728111978800993758961088151977778676974399022743142707287415125502691514273961087825586073734435096813954762705502040900886653453515226546313167347401717007200844538284277030208642101585717225677390361101372379215600645792856260178495458915289261541901108879270947894543463469374952371312599941157934489203634757988800503529045625279924054617939458834534969059518415213987627714475209450632609621579720051441597403922518030307412410655757194142020663794091424203160651872384841042886457014111087852840104497212380103298199746560005033609337235700074618535700658874102522428872526338259566914756891762759520550542552292122870556759309286299468252386763218952726008846153963279269081694612512777221324410238794570128652369088367035738082506453954715881502517751211071893668450406785530315075445398178733771810700374120652608709606236203530826704297944601234118446910010178214205800881651231042196460498592249060474390489361707903200444276167511710590637236717142720374326107367996731577591919461315445860843560097286035707764949461691563111824684565126943913619708020933595483036054915659649415223325072882689771044479113433082162847197170574139403904639309122819047599526860783381368927545126015535647192404731842520622231859871396856089276355783317564968575125907892631928627529992397121728775888266194420890753656492949903705704980456264561460387509725420522865057843765113944634918322307132808648606123999870103141934667664649989438291175983910578205063513776682542344563638302252686220116110713328014293629455269384050475172355934676998358703670760639244722054837379837239358921818503797827561917554429160916036645493099797379832331367830768582090323608142280237414393966533950602810554893382196615230080906114918924501249153458584998170112901726766562802507762478467587555887364324795331812834916077590198998393484327449481068508476955325567514841645327145672009040674705130078482113461624203170940569051619286262241571506174119872253719668698355549735208930272824935013075944451404236510485569834105653586982878902824223680940243814331959724986945471332062507760279530840871686514573395876163241211061943376582951445505287516684575454282948029716034247654366558963172548633826361545650259471269672304807757299058716835953399861228310780984782647506349836385757551557722636522750846543461060729808157890418655275637511161037799247785008327043558111256729920648531606675262034428657252751023581366317059546360471504261315608410403924275185841932914527750450779392975614330525628750560888668414549535935863350794023906629502581382899795228563805717986605039407640495494199832875113898108857978838842619088843841084648691150030102791407025786383258276460228511558760166885688685041477818901748538983585290211552457992935056351890601549777183064983191163859620264196349077397544274761688237256405756002726351320901267000143691846496964872897648083657311413252332408472725550104202798110595802163273757650089823857227115756447913485287397456634791060748574370527600061075894496223518817375880721016939926445390727752695619621325665187893564449994128535518946477228898648225955356687048918037401229507524002667785380548314110534867603917153361055915285469905684234054858771421723264488803666409807152219156720184189795530437079480014986322830453929784821237138396407445267494530342678783319999637699525626311732701345797902190022991685214375784532404099168246116875753691038846747162870271774342723686336756504756498852067223499738672410350447552303452597759377470107975739787856962647960389815834452062800157016103346932616140865932910179821472414085726943748607966180245745837201245196016389214020352123234737724533548114396651413035269932891226883088922375550340266947825451545183871754979355546506960219890909109092348242734344560066304674376719020417015929026224251500564173113823430380662949785899626774146859854758466417482422516027133099853038780123473881768981664154283478821722764395432907702001989849654497800473717397208848219271237726005326979806217777772819516140705718927305121655757709155521930185700299453467119665256271767893856134408837974324609045369817853879438395845807731086268118771717003879500597688385482507975909277432549299316207261852454488464363166754802989398618770853432877487550119244307944149381515797762934206497390746202875240995687552881673240076912809079409455963033888233088432481945955024901289037270648785803076122586625825908677326569205951123080242890649525759330837438842091071873254020212003103233784153122481535672628587103236947326296713457163283407170723464354509693620005253567933571146572430361357712066643701893692258787772666714015935790704207316213462920356332515017358515599796957088300295313780995012450032495779389606021230654929782545254829400794293559642960308096676976001380052075494212168844393962217451028616395863939583363873334676779224838204392732264573106107312821226327927656040496152513955991893497464532794199887360424065384454174642105685172643571227384442116993878699370629958555205816310959668278869112391354117987747162204675299897240203664741568589384494357476348110631574034516938352029348882582244239505736456790702642374318487784841813761385288584966989157162197554818665514131170712504352350261167728039539083145194308116627983196681036714707137501649274704915583391396844608203046084489013190715217872609916546055375844977065732943729463130333814213723655911625062199523783137897543707202352558474624614660044856899144787990836603553486091216845312084483304401834978418734561918849462446489045942151980612144557773696403029411759698601290119482128161380505640894612565955735553624002049429294813436320276654770744620614813390926580206016668393084887567863748185376493904248574834379008516974934123494507540495376056611387020512669286593620774271901528756058222061525451945336723938884071797475308444367244268788255035289025608115802577670134169348832677415960998802740257721215959918927025929333128073540876113517291438944732599313811409760438954533227456601492153639277729682196665317147031207983505531678806322353123854804114173722426489975611738113757647282828567525564916161066890021688787850020416042214779499230127966075845699060533274669324044794605794631428943921412927449846482507630521541422277173076084319593904919647594935811970079552674507010661864584557259305583455001301872871936923106627709551222051353102762904702219418491838931813013628060342811810864277912278304362106503963800685532346752308782357988278727072488395025308626556226929181857148733170300377341956589891069993235317249704531296635830467602227352363491414294467298710179110865911241022015816220984485801992164279165198887024036280482201761521695219794332026374566472043396305994609277778432348640892918008445325097116172049456046757818000219520093315844635435613481978828608282858917593806548254464637844973680314427759963850750050375948342318793807674442207704890650929337206477566328268288484539341637422221254597063722573273879079955612873103750198138452971103610792025667588120856773102343744394535858308900489760700262232591757740689119356062752972406118644393916959405814961996101868164464877487863833367689463841457061104358266750330609150595098824483513399895300924697940288965061860104183251421179111114833685990283362867232593298676748940662053324667111733670312612144737239897490994686371294766438918926024878433511793401397066776925380106092869756181184956982713305806724744501503490219023031374930952011517266795434304013033527175354456365187316184772804742108043906386651676670123535596548250309480603707890659097821391760072791613771439340697743871461164938327571304332384642281241235303726481425439757899952436856297245538561545677420120990700526814010290215789933854583947886443744594838734792309566336822291152397716003630684943537847281134552601004687082144871166670772117334975366507905556399247735181621770597501181935605499019693899860302212104225156460112007088451179066948724275729753519242854288864096063677542272113840697163634100316039520237245160387411317186109465387296055562507483792217146341802571683604698698563932021271563891497480104607742288078622840563609837911092861505423197848918720038839724350619820212273603168972324489698043825868464235618290527376339164614831042486756268202397445654971132829392265760398278503112146051256004153065406553009726478596908657349151330895526714663545059290226469181249258069023266951696233801590763117267373308149200627771562069963612097415752659725259165846722385987441459032331091603914449570441390970342179324488743533258092641496477388424783930236903859550572926717535712916935813304693458955771051934604274553723438923642677047151478532620034684409780472967023832307007923468689684568329175947676013043069654605455047707941954535406594815203218944420933617497237492351555643463228078870410769135911498843842770381575698000847865071545465056916678018563026143850166357414026751381907068625318858100635016091637196106302790348507993114875082386289978766395963007172156623492777764185767249632058061589021797905877817742347128386841267359916876349790604147631200093331256355159709026199308127612054056804083525602949614508115703733648330793814610802162794484677667575865884886431655580968562534747840590904001846676135404221679659369116763560198153231171260383205773696431387412688443284979096334916926325765209098334118039455902011455712410594198863150107603893162710875373249287506209881695876693003970326434239603218803494894586292049546739157386581085681018035212719584544505152182174738272061863378221654350747126602842087429437649279916046038834942207575141744234885542837594664212389494275630251076881528065799590164304087029323501282545798700965989192739216541720564652743068882740758939615817428711526377083395887346632097797680744120267415067831040450296473531274302498289466145655935708407428442696627675423448073409366408206595814740290528160495503195312665930623923279093672214382811834950050022277890735813900202112028261297227025058351594018896110057432796525636856671680960733711884884334059517093554583369680312547533670234510571233754842997114800380646124417148077124164993469961748514190191343406326844543420791051463794170765489159199286160177914209932008523916302248626590032896202800993650079950208527018502738616630107735467909291681429030856964167208274764412452444325858202373385198252180332075370961744062998170569657130729292260723812352085772320075857641399431124231894572752692839215593986176943872176124430344432573388689156961103329137576237262930359533341645243150453658862654232039193210190441287524033493814706830485117727327716909142086221343096574938684151558532301529138364175447276474934256519175606270742975219156391706845220695830934759561769278267003379051547904098664006766652465445346848260542846084654592323601505118726808097604639785359237308330494605217062469794015386461746978978414813065097260485204078017491103713441623667629942289599748460500074661471271447960959546572815227970284996190175016609463195406636388967745241090806716503741793503890969525335155643741840114088303788243528328982621336838588696343668744365500038820420840117641348017040871725650715859496792130794467762148293904223156885124433241404612970609387954431930282688391854500448645481593199330646821268342789892051309662562278723609207290374672460940022719699796116392617014634487501400456563316337016531301807610876016660271218621128038445936595720327684011069677414693414040173314656762817219267798123320418562884846143946973662435086246911262756288202200271020169247181469731234363399317428657992690492652903750560662945143653532854596437731866879344698404182367928940026101234630484968578939293779431336941858380445638942979671513467474675537948279987866014955285519347668458904599126040980959800311655273116529797270979643283933178999704222933345073726694172720336674108271207055402632934279044246878379228993976080942507753506537035769189852050036170495110125441600138766901359990546799888920413706257177368170107459200488046159600104131051399852373236151469585886906724277174203741616870867929526224602284026067053515289935122739672614526456694061771400432005778891108413653777868095764770302261286313182074047969603026302374776959655324164332927575217566098927232925525021989849524624030340088826059630612573310489829741632695101764787798742126399470160502537787665289586072090485339052240506154741528927541541415814047882825916569400039868469964137828613574730760103103141516077259155545232908435540424880930488138029003391508181768066336369837155575629529232817879441320284886813615042180356004783907633920015629339124293012493952006299607877548052843493748282873547110116936027180744243500324068697469452790128525195809930215371237456252737036035323636029975582883734638469912596391003701564836031582350944723780623777889761366884118171416356125137572165514857836038900156734849471773716155726455086337965544761086684464888293734103602843376579024769867607126530089891963251807406806047890990949582864086076605764780630534137808719283935642370076313293282826785577912798488449877840373014964932126712449976524516325875558248186058081068839044499406568927360964944456550188251846649441768584762222204422590325300459909112564344000755372460611230715763378812049339992031598479541740497789995047078011956423108376024293636774493386528568222517916384966405091055761119680478699993417746011329629269795125146636284509971098088109767206464473940001867575976452548371095942759289483035022160143693914650779347660595065041953222784268616852706870921836883702115679157496403162018863555658399435869105118850038823767704990006252693550727441616217703247742637698180100388316636419068670183677020802290807227486426814960323298946488540871389345636072504720429503808376364543999570169482950460507764570750656785882641359343201892744874600671356053166432073943402737264996651485260912058039143364957690168935399709769244950309365628012673780702482901052403755453022091043463119035093811688837587853523581095529044140677035313546719427427573875413400797950995601143624544953302673082959020201138454318654040730221526573493840604639395502915823732592197229214171974784519559884683675083599770837794698876825808583276938821943543201371246955561113760431210894369223279935582252922853656587185403750584679314628262033273117257052401777843133034494566190667228213018428845313642041825159441132730021377939410084053937141224137021010282753722488504317089654840273814584913482410357547387453364714229951753957704906637805766222859010583246127648000489319751591534955436462149145413607069206351677755775603471400449455545319741044034669969555203490953320265936073148733052716139873037947929039426563670193157864982628075737191272709362382914464474039422914105257425418494039231684277058159364594320172150827656072735834859714234631696457714293559384014245957604174222186056615746937960471780416658475305050636226752889393449379061947131820852211002512315892521933394709010448644838051045606355077419474215285257844147416902460566713202830510503665915017191015452398975072356102108813369289026997609652884284244536714438563697909543170140063791857702053547193513828185759495356177287233595571635566822535047694172913440473253499149995265008253360573863515439039088138900077110253313320944204330397020646653723252693314032623221674753058658265510624671449329364117074785946692288898521550123195695265906910250680969658831369206629045368368591038954713609892964668259932682438198093384629634663433328733873909150209564762790465398365677904112289055278260940519720974415771237696698405937125143289424596010527584421152312633467827705747508302114275739397458224175009108686229070390277201817892040049933688230688310640633068935432391452245809300077520021900981881107159521189407033382156042490482782104302656901722525867446918299414480158272643588782211571849644258972444072022244135612559920096721315754377162779409539035493379060845448627512694315405098772124634894813506577017779541657043452789304355467433603268063950559681429146145089265747364583980443108007405882309038632412705646142303166832307379880219777542827050967005852884869238950561164611662221115881190191752935427177426436775661195063233950802155635020668150967754594585459949768019139069670193809909877022238879291130071630930472872925503660643235530763370881382298266755979408733215466399850274206333362201107164508522703930773169529416743539012731957160071754110413696492898411943110928267002367586841747136574198015117690402099138063299788379857284437709752760210185110634389156028691273236036955358525087974787123972109606258512084457020149567959734955367536485057258981084790866328804324342714947346616147958310712581519622917832701831562814247792022703127377048873694424218692099380301495340018382930913420314264937951960504715772962628419639220691385251806660452660639366828277502813661345341749573766954816124557417339569545292919028578743033267337234770823718598382839594373012282082247520662260766755359358056810812165825490386589393827904500848771318071765997361479753349268731813075013444008759566179933648126566688318381397972256610625966098328859204294745671364963392493726042113190507891678801660671454142099214943330492490332645651624307272374795756558350247916411105792337029853741066547422907510012263390746180485613065027496017192436828314078042703778609386064539525134432391091222400245834381500753400782374670919285861409402822542126718291760001998099051022354062833794682788278770626500862971704030120646648827278505068485655689889924433794627331910520868571784364235213852401373777071563401073107332958237023938469481356697460657160293690830524081018256224427855121680926836815048418202013537845409484481329579964237985879348772771301588945328463577155828069621382069551642401462503740781539609762511622695694348362441256128450411046144156309954164484446959573315536712151014909153023092924674551546153643976211766551514544647496210753561744524440340752273883802105263951281384129156729830383274066302645332200629762310318716964673733913645742718801127656129317722167504745674860006059769829927508885187942710377244280506187056721364747164767216228525647548585703207048476345852882279762595764976295700020112294249947457914925589607833931288158907851771877807653120735730872520309170578804436656143624548412006525096745475731305333326530563888211818810585851160555513501031831908314707812640123158764225020811295186664047638944401365813460099437809790974531916030809205281726396337449027652414886731248090890338035567881301302803484073210697654571521684119170146829589134512992356969486883096583406661728818202919691199350403730958064238833493562985823096947069436482273813762690650937810772706887044122394541255811964617967621482397183476941151229133022226405248999284059141874498854130885217338917348937223330898700898297481617157013975471900708890523820130163228090016814636526572099553366848561040003984316914754484330736484035365950810473163965039222705459874588198935509309252871431546326024843277526175083867103122583797792659538496135345018959683797824955174927677544859545169353395227151913615234671982718324777769031915159514581706401809536417885292330104867610421495999783003305808661240654260158690336370208825012270342689131190835504609690319218691682138407939332444771482228340689736620791046569007384866096428308211693355516113452295425512901381357340289524995230583406401885323399933267592065735641058308346133659660813433032772219042324306817957571970980697412814873858943515730329140260918377141700627392424127080832469399510754962098893410342183871932504930453202993284263532100770942558608369460404854702627933606208811657447190118241601664173221059762669695071404403982727046584877023401656058169809788993110940074346110074234281928999002897320712777236140387447888384212322316426344041172324756388275610866953139454025660106735713128709429011022799704840135441974275442053694529957121384553765782380237217033386201677307559698823896046338779468255887499603850220469059853315662850166702135158423869918830432612310170472678746003462182242677086585823809934996031958572576415853537456498419695643423233505348185212849909880876864746304054128734283146352602913602979464880817729837912164745902381518276155754361832294416019196099387508571716618662532843674680626741940608318346119101143617696871508269635896954511960594260092485527046429553070798324804761581490765325292958534470193149388633706815303996371332591928830755070823562660623413352282285850468772049582300443767610630854547760489847446918648820532978863138094230946285719694772898251912518376980061356352242268689904654956990695057276849412360086107573215666106170370539805943423578479672318955507291804608405427653682846751347202938172237099425116026084778142888616564650651174033087488364099931536927968526670492367792065226877200964042679590510179905498040169243402312984466935902391160722394798627802801226609748103785059268065200293731443750042521462158521008931011770736250747330683119190460274530959123275581814882104219948621493777417444337439549746376283564298936639574783931945887615667320739461487080488834406355132423360088252048158029256532533016795995665489352428591963018145793071919205688862937837093938926171634100548963730601572066442453640256635620671625404201797666741572540625780894920973981049514634983606553888439382737022907393926428039039594602742679358257640934474308850493230582835447364595657879612226307795986300672154906235257048305133489914440405619711621382544093953735075087991031495865853018514084032367000881322428826839438505149358368662335229163803350538973499304692247954514499271737831795436257728756754432529944112722093536767445589506845782866904974785447221712951198020625018768074165124727738219474571781255746784058583907170756019963801538989110684966377700704795845095738735891456381049389299054467246082553587148792487528279206638555020583283105505092876702517798989804414367208716886468678075884337899670994139627381116051139315720622484184873482286901334169178297940170364001449327373080055262724225182052036340172880661421862179593564444734352116227266630442168999888796677619185861117129879562095382950495470257544248921790551775880009852545858521530752903741591985282694110866807451144333355103869511711133805047380506629262338770506584694758669543465882316231081884778010206636150533311524258900022206628210909075300524617260434269739143964140163728960337836225621205082363123154991822435066370410067714559736751546450397053528700464621014979669369471415272778156571938595652679976307351012179812883011949060914333292902880977917444636053819236843128336922123900689333393712955805920865125253597071256715681493695785938813005352683327807966553937651710186529135269674272797216022591291718979444951221899074645646141318275407770653285398441251630445842630725768937514121887229032536045447401164676478590028975465620549499510820553109007425750344552441004741228109774107621542690471684229651867041314589531020597720929750907523897080480810985704167623437222960536034171966133870266603144981073598060192798090069311827710263747889028166713475653991567116071772914795736976180728814470620562752468570052795835878723813979806860138720957188581806294709954954200255513661013799367672032344589093843001367588160439798886081098979277369182874423226513619757169693902207771999012855228838251898263358592876290872612316323702705889066298755112673726680021768798254541060160958931615213701292371426798785361567346133580931415132523100324551159487857215544486782714731698262628743700717265027516346916181078232850755902451910932827885827071560428257113259467386597299650826875220449044643623225265247994840193255877561368117707340889875806509874832981695742888659987070128213384180076252341870627682780888027291846461713130042247803944869567471421282100193379996620542755106621929685331992716121109964643645667350809578808398022231316628811117374053750455639433151083104802169057268789525405298210572604458671411114683221535285888913935075399908712381341230953834937143266258369435004407807196214228619644730142430026603284859088325753269655873017003527106110508783323324988221980551495843544680551369556805836569374054840921919548752327610288681910540910114395096588633030915350396852615352181213846367532639430615425895815381816740115936475125098416634988573776613492344631785508222716365077494685362024581347406555196461707401802534835807076019282407415298801599773491467760530109716549901348666630012006715523579117157131463860552361638190268034142088970727916069470526682936300920867744265757865720023361671846095612017012232339240740301377671408075137047904789360717045007925468044252942192296692457342054613042673371199037900568133835103941496934125923057404914242093496520786644605957014029403369749775250736319980815074131364033831899590794956458535150900906814773510422631523492879529861671060012041915787785542749938016445192955082310197627991937258364606608397329048194200585842890867601715435633050302481627760261719264537149443417683986037074107099080211274487771914762190701711947444847710478725499237152974705660095880843040764442929535422221201073760284657997441705224275809113756521647506366300983323865884106381071279032637868365812797584949284198425937970454787934581742528835615291703635506185648585582000909130169032699230847097372012009882911498131316723223082082594749447664490204412120236032420737661026910904395059831856596626956917148597321170719576145924699361460941376756166725957989465490927663118339219783590534198598667022535491680607348878636665083364141545854692734386104575848064911795983204565966204978725628612476004859086306488476056327822548722788186219109374482888510743103668718883847197528764845806210190031178375503873327408552344042291167955237910188957056651161321352571746516502592471822006886955395001087243621935832556871880902711947275572979769975403108945781146257101394719717357750359234101860393192173825509145267188846903497342973342854073665729009010124834539834119252784950234151692407898237149556266312989384721839839759943018142136334241018793667692235110658567266491261588875359242797752014810862860954994976199527982869338051869420730666569215772914149579313269412400342795683356289407947135635384424013798044862018800030181093393728765951807818903021643124144035463582285621302227350917537447684906228246080073467967347362247066878486680237223209109291062064060852666170501850815048851184419525133145773652694569586402462967696102590533589141811581853291401165112659140679960055733952610669569323142237860375101550995200034540273051293568495262042367395090054283252213446443534832944407528322573797427421329520421390328413306627724461460070567290568039391943957762986462574196752937008949133464664145286877971917126007409530355521493699542286261391735846068921769029221008086441563990100325370010795826263040050829092133277540946981329875318215524803618043579072597596594189955922516921801986689718319261640922744712231603216515759045651190998659807668995264357825031287450223427323060561423980215342485961228302847506840332642924722701007812445237599628829196560669957085571559191052624696938984841594573773076507542624787474275335877873124641032331080820622639428987494511680853483870551819372337474201128084711943224847605207764392651483014805635865882711619108729600662771500348569359610218960704234345807002858133800854986688414434234665286887237635962280797479421084154594898850994171420715378584547783350522736030584223886067893217351165196926343243608877679340424657002935581258108924512370291034772029375571939143488143442772020632505991263669077014638592384802795191600870547624502652333154753966559968210060292952358607909378140676359594866381436132559104171825393385323225460675179977175250627308638816728486771892905049059045321609756990702151024806823324507201400658018847753485051347211332711641577373289281740300309644682958329566349151268496297672517422618876012958163131387402026702680517680538283589929769899467172299613973697118385811766329476869183859918532621057634428555043669059425614336587918147702620266404030353963388271036386216048143056829983592765130527273687174840990047318479644539307545250282594802673139962877573041863365232509557517491448901901307081765658650314373048523164230192501664229916073468585972238957411453731213431750591158804978375802905820092526128141823989543803917530963214030142751372414908323326044648356603361075768874109931396119906364455290035235286072124450907904974332837975612948348748631522144141927527938069021928562896468072535925378354444611732992935904812133044177726235523509962008691996336926812410209912769711292152049121887187861761002061031729816968705660530359533802599796515323174750610418747653651622583878208534281104969898764586889795779928488195603945005383440192616657036568103084778916181100844373482163132907956685214013078227172737604911799267036522613540144363724225859584861022599816037105556618314350519318192187821671640454130813613674111179805486791352335406380764981855882107190799208824003319222148031721919620084285358247605666854228667723697966021531224020765655606811427359639268606968089586975278897977242532328934598253965907359403319038743097421533723174920619972254154801274603428851513946446065700210060699320698450722617684903609306454137131588931464506587424605742340816909333230766407082555187052953094085668727607911174862918565191498304480097716284568017458110981023841508824777080725545811245267934512422922357124671327961273026723555199617835130765384821913605977642881411476927438950391630521396685257398663170611290047694339455837769976258969965967864560237202153826939121219510806579435050837737956792824977898065641739542903646154474566482937490510154992202826296458877723601938834345965504347623992217568859097099295151530946827411181059955394754488601388280916734427009714505927541294157959427471819928224388780220930964174541422977899646442359782342547514608387005635850009417094065211881781202341100809277739534625113819053795454707532443319998971930868172176096645755390225928687118428504145313992461465754815266061488837720815616738013824286115470996262628553744385073915363669064898750692137688487985555181068238297536471094386775669299354913812044943985418016154810345692247152205046568037695721880126196563273954512299282295010089307465595947911738478466293007328503927243288823171764574016143567829920711795446025080079359634890012722761077561083830494948149409970337502340754232372625200901269180012542768601413376540062710483613433357546882187497837845012599097054150139780238086537964086449241348174084819528736077280671718072188930846875435485424815925027628630495018260509785233217298467181195999424731642907455766122477669500129774728291220143591980735921390641767475268801945352825287275435058523859943644069460325180299724630825841213299921951416960707530569746297733308466997977631597453125676008142776604937805940651685883619749319171173240468044196479750919067867164654147557763079635525492641697596037647375806085275430815479507211063121897849309056486916434738191324672205476843032533426245752089711854007942792605512671478178538260235004254551404948949980912109602822061039853214347762147340216251541931664375433529837342906924269033679939734323629640372564872759756310761451895502755805308676674422740490207596002184680218561340645045253487296258195055557716064818477166711275015998205951971977746767180020380441616355619630049217648857419170926281902693869201599415211844472222882335158771474422819343688858438520561003508728880133696324131573068574456651754050776765453143754232448105535089796840957688044517291923422882990464646236099653412995821858060982994558447044174292146641586031420986176996242745316310857082773487368155451119183989598547760780466572037210039472262593463275966037662933141829607083444991878915166491299691424556050966955731536087736468220275612194363751797540929196272767470157321915661040660752059856558764317021411192688264982706515747265343828811404380074761357743189858804472423274688353940397959934581174780909133922316773921368823269744950243607769421902447322934975649673771277514332864855318118103184285854648131183201209481624913452869084659007198714094112042963811235917299386214152246718925781930114496792666958244700799868919377269561908125837786409116375790804219189825815358797000413157344752870232283176053214466630864608085776299658148398302895337137332009822109458984125607230300357507477705894379708017244603348125271610356339369194374942110408500121877535165997146518001399031239349062163677684912579467755345017295838274320024613586427703500000361231252838526040746897901046805544717275978394632480487651751287501482735636893913528415660329150080019213771808896388395075085035751578892296696649858544364100867987900406664197069356637165386817881937270659860549086631040278036721582946479586628670987618265129950459849363217328952352033776584511829747461714815808742573845552328960570575719169629367071599890167024299814059129967332389177485642585114030947449977730815250181958535875738926022370935506529767814105807734293635262070869005872452461462282927613409902234513905638470040407522353936259901554700610229836502060716276234832287001938324326659651347144623190473650433844463466066607391823704626296287270324885300024616219270434759925884583183411567522442995788474523159063457164270527810007838849776768564387111079679008927605306643382904201404901431658560385795342592851700966310611205059897113147259003501419173719366682266764680925306014014077206468728343947642904671028686506699478059978505936155296493543773803565926363272597486695759115855917697829749425377668477108845054799285230391089915028441841612374693189272940424841709792306272724714900411228061477571617129560422106713349724636380684984917717785910512092509717923204991351827673012397756221215728722015930169075432784173410420658568271868868205077219952943046326629346061510757494189710868141352501437696634662180503162360477529584884839289852034526157496025875762428056809879046880291035282649520231414547412892587338798358162088239068504105406175142562726686268112619189163167075524946690915577533647221393129430954436969295913969973886262497006128161993228280073185486581585666936181955368791527609871823343922017689685520373777618775328521545872943496060980650810056648493764105049708864617708502088749065431362532754043061920195259821683240962886570767933771335007664734064884235913306811501695123670181978674661014182522356241095022731211130437060507460204511857569027378728011539648219796770273006349289043797707667082398776927593336539682962503856846344221887661717361917581258475500132685190385741771918619897350239318316655484056492656960947580653917203135560209456031513176875940458790275856454326939077209982217357106229081411411693233066056656044436065890251373124160796486383517727022950846382616462846903235810019316813304080839090436427932812313703955183413608674298426704050209965681299538169804618599756653256224730362123027697210968844724037233123527032063663680209018433855516851954575905648516369453532440421589773398490715390039543210310120889833231800594895108989770703064904185218598446115530962161078348354840737996518491780683743746589684721865904649095449462268325302730708828148160302590226619739025651223904364787290419969418634352753517071982907695989293163314663255608661843630636266145903162364634823562238087253338650234429338241465105771048648020246112830046956065489971509701732091531125069097899927602984338263920888982274093284358689754533760405648467500036131155196641752158012695414688597900245041282632469262387600010267847611527093325453717362194460842966631968216091622886751491287075266657589992847960665682988393788087490074638009885678127592830776850869056508908270516378699490575063310245081818712153822469230765970054002735755620844074966065223495348895884162549177701012241267377521964569496790359579940162308899074302747116644851771165164646816441087181055897935472659736336965271954832377938662455962399213918022759625820349407843214887974991688410240420199861907448485464192546764005510974650276119368880091313693560791624420869746822877548635000627489995294783954393617159783634348573931003539540426221504146032057572436006484432997207953569528787364106500913910144210734996167255826278160227816069222229951000048438742514002464182196418731254380262793063612507861362058779031798618296559570098077825988480955327650847753366392858284730864908984315438553119937528902632118177091432920677706164874976386663913125695949755484521182068726967677772271137009068344874878186443502920396416518466201719519813384242929435741908367917674766105555079710124316974121442977601058325919171812575128656510083777260812144713021421198307979115020200165797176952328567372037184844099540782881255275170890854050046797239756016576991472429787204446095506446525527384448696200538711448231411263353566890928574764966979507670034189459011384219548651495925887154652157358509769195699816165342430420339610351292876827457375246424986738967053178859773244928864774173219951809571519670961860642702483926037783483077265344104544434255047480383813518361010824548801075087993986529990074892843956105487796232671442288450987417061586144620217961785983509032492430003795863018032250811619686249506487224419988393890844317473127073500518492544830933363263743230207907823764505679123986426915028075568311135658252715389187956800454093785386817986923897102321756783887895476359924234233313778230952386925585777764694577109240474164312790572733962079592226643288522566519593993415235511309361917256330213169795167057730427976516836150102000429576826011259159030812870047899791764127951461911237776660437361728085415913273162986669991699113300852686817628868692933146033527095852403105801983428284215063481316438961826924229199903940518775498371735202785275605337354790446379689442630670858621056089597480215535535559161025546110351027221323964359667199688302720143035441514416405208261852320082641458516318240369418298384998412103806282668868489452670594550805594013724775486201835840290545280172372422856722902439735610551081336459469563627604556950688899889747997876546022057805540212374789264393330420470053250975745525787839843743155704152540049072204344780826294419788152570931199153450272647898010132864023647844128137739255870165068993249241449304095971729792879844983667938344419270045797804260553825504185680295465211774524689600921177040191007764568203066829066021851490640161962589231321434698150530247337165540677013041210239235352359142974226301162144165659934956898615067668296636866908453717873398650045582910561680805054447956187220899808063568323763131520572150313017682699146971279204855438445172341910091045124049429394237368681142813255657495078039536624211632934419425718295534113736619294630746637444978101065551357912859442730395965065236747038682764757746780209750718725805583762778312982573378276028675996324415973617318763912820010618904554097550640580832698974410916373941288719286100640241343426040720400423754770491396839569848671164473419421598970422190182216821126630218552391015133392356446815546061088828387355647733298594514752139067729408614729669734104591709746054176866890920817363411403966813141721400979868076482149673036981175411566611610767413279570088397983016115636385167740126159581366341956001248126432719676643226588487620626520451435251462322443266158795297917799188304420534616938316570571259813027224635743751810272321110086722848244357044485477495644811923472435802415443653557148039516163461339494064768952053324815741470597091482293777149992113917949157241077143240592486060310180858511729827306051829424151975900092253017848356669067004409342252285561148370399596506186990555527247472969705649707232149160789915311357521058144122911175871514935875835606652978927998450667291070863241849144462731768231335425739814409633476356974887886443508074102750200952889748936307294234446594176914435407795014714888109839991610216439612490730300608625505261431707544083053981658342737046514138136040115040920024336258560970486042912578977225549067238299997246799822121601194948728328027283089955367600879739326852232958905829749535906603376072041722282390558414538080284475072102788226411116260326995382934017773621133395029327825578556512736062455010764478014584963243082933345744628028772964751165908691682960564483383447708204704047797496041429128624739845120268237783014756055515291158317248151213131380282456176446858655784411285929765455879954903954701114990467065943161023167519257438053250449371109202541542405575801950202193574817035541589405851675622439596181756456236912036928723875395686800704087888762162292245620538348316101777007774539926231419420454410131499366060244701716111303096032093991070380374324377439370362003348632799603619239174148861597793210813034207358570237442671644611750297984524073278177377523332183849459031945098362033687703828797544264424653761612662688775759406277715577882679356516699671266804890499624605412402201610162914707607240096988224299590628894293509419585373305922571658783511953995853193222109260311369308779739859804671481669443511492786917834068365582136741605601732446649778787647982960792432706840643211133396507397945246925332285855483109422468775315051214195256230952635794530016993079258034226826282737728959962362666227617703763785547906315356725721456699773924335588673445354079799313295293053809097939732673365346374071163188470882869288467470390600242193365186943705069893006681998829351841017757877994744790165969805246625293675295533881489977862612528558199913681790072637020439082431084611582975416673353623260265086549547410102400482529672823424616714692627403521509180973655040825936367749373737298099268500985965916912191329089824143349454680907721272712848200247897882781724637779315097523707632879511535892416831748384415454094028260839429590308908636699098705715506302433831846022579242929116101722722168704846124382847042649643213515388325475600268375731073131090562770797302478898839937712438773202632915570559862958805212178083532012369163368744553814296412172450494724273152408430866296929159789810576487670910456590506664319866108515290084154131731757297099904515955336946976493461669959604303193648025196755023007947809902700471908241687743419158890984685547847238403049643397987255239615953940471305399791790368271986644947829113712784197441465552549280886478824865725478452989767277741753035562267119167039860551509866757843545011448083378308075674240498352079634945426380456205430204722377556497549867243179095752794004024627179897233321876457198340604220070682279711443732342451921948600682269456773841409527905460977110740413547504819704557868926913055802105162891799227541313423806541997882208582807258305801087698816435943886751768542307477518948178446198616504093391997667814093616279229714600167616773074302279136503954885674950628889394092570321062300566048729210691037377736399923593295976256549913397065345968099264367873640967500545000739603571635379550085227094267065227269975347648631218159965626349208555793693329146791646070327669015129323942008189330081700799736177582942955388257604800516827183106124219700433332040650434486122871678325235894749146464595501260051507837799432548525692581494750256136238925281560919232831781315554504669046763066107527666012652594466925592480708413287669571022010986726217461683580851849794660741839931187704573579479592916646097253820028644757608863749976318493234134461178804793635942834230836048697578961054619813555229338254664018250151339064031806627423848717122484464722969956051127898328589507392808579850014428485999887748376556316656912329059394183677494392994114732838507415462426587298609418381315352488405903533691414682749177306211617785823632487063596197556593898347985926157650726370214305831327420112797818654458503693238374610179446916826743824487462347472053905037242966549658961122482320762107787345738242411921458093873426898490591867183694654132444216507205143441679647505367782585043404745351038305426040271757236458830833148768873105097172091271298150223517262757127411535888100238454270320702619362276342337972731775072948846112102847755566719696692451644904794048740011877782115658767275334901977891876983305499695708080329981440695109643857469420279714641492555034781514870897520264338129977825432072390744913185079692290488703905926112115926356619309347090418864579355460428030870789925156282076877561787835101594876231221709520022422318933716989313503897885581240528472248628690319664410967493468769014210630448649457857618089507019278164731559647393954905830651898988669075274843922525750272858591965049013704346800157000477598399609449940287599008157383663848593328771281090552389856792744935418646852326283514333737424045852426643920602591473166755106539073827265635720483977976443575447549700058682101780053978510671545712123000454521168955334246851448184952374658452340500058526217328243171563205981260927560313793574763118145297016427261630013959966478707725697916356417335619173633051533055198635022313431512367504670194929839803094777280048533006247597015780346402889645874391164835121008149858319777281524277059770574966789937657868664675549738782141103353041326093068612451568704589409119300983581221223182769712416497616430592639928677247316013188989488223317681090111261309497011932138044917269972348459729544428847552276344137751155046192103191200255703712561732794564826647351298546739081587741824500414448886230222198142454769509642062198468410949214638092083875507785922415617668661682537678105307243719493217388727848726878020984758886390404204834419598875747887702788844807030771711046241905404478087027790921306219324826840240428532580323026302536135839702559539213565401098919638113798482749728320206449367655017758614692417454802297153295675062231113232502463045778352837513413007340534783352822195957801713324941771860782718206882118211661592542957659119373242429065054599430864980046882251751046778860658547777277714920889330314200988968334303354592491004844517064099638084327604734663189126961909686362062608828681998260363002658195932648054438758843549074828701603495059504265985734768287127964814041971452865250178323616370052075752109629182083614439837318148026611885718584631339354022314784256358603789360462734406876124813004216741944650741517173719122328103130144479513183057671546218760897501479093945421026911425934632148420447358603245815267766111191765198427938627091728385158379119691819594241864806665351895130908403737648500314207145195105129986822097213924296637431368750553007518736273684812295708876668770760818364606449371763108122120350794223234625233244026201192696004511522864412603556673706160418802110991538553586184546453247786238168113777507025803574123091903433644923253005864801263420295350756943006863079055253745067013850529238572885454456768750855901790256622689442283349137394900924990809211782262476013715141637749754386425662298229422911452079431914444972695070904419228141761249732536804115154082107169772607067647984682045464886556759901296737974260282286205623176472794235681036346120178072942276909536376656293988168609436898243717833947607111231129727317470458156204264947117150278039007919022910720729982006314884122363435180608015442607405953356383933691849668347281751137130513445590464342316317237760784549355842313083230930575433402261868827514212463725805846918194285250094900717423940023896313761193206959660695057274756642770976998581270318981961147000925571910593022305445425293509823823483240892849410476054520544329523722981355666012919651517976981166479604701494768478502499965492251165896148093463578655984770975715354219301234646185442431373543447830550014058919176991098130086807480140716969431402484124233250776155147597445385603709592764374300043898286090934224899698044319147309440321670756135057807867731835524544094649046879165517499770285422103307071328696458175704008365941523118571608191573895495709194326079632995896892145863839537842197838901747225681690980335384606427962731407375333039196639305747683323806535278420881307853467152226279346858540063585764051532666506293033480433159704057975155460723938073811080049125528632669930314488548411062610383015903622474745287439037423403219841333040695897134902681750040625933886849025515432748483309029578249945238636710202401459553795331696960068026440144366516852438760397631527226256287766142947512056920362962330224807776570407363707924859743601645464231979826388241085585984157627159807466364828078805041495962359808583132840923712867602779482911857512081560292245194671163446312204262440205961817128989025613475721317595235191373860735168440665482829091298291377474311918531196596543616090235109090091762214481127930468292283917309265747826490802247917558302408601305989783104342396942335557729956125849305079030153572766455222176883019379020960141378185439830013382386313574148214854698543276468733961787067777344032967573259031050693788071958222001351897804723806869097700075772419373283924568757351016374261695519951537034133057210615378772836598381934874201034931748140747120851917701813193833340570580631770675723913108419469425749166187406677179492067015083832567644933734675090589907334772402651205440847697561381867244456349335818683168392927649468423135321095100582442131395156572153094545545365263561366572307964723915446717330512454168358209463863846469829543592037396036299206504825364781194825949716520209086154079342872686512251281560169301777752971591825566097768062544227783090967594147786123606886599583580593861145457431954123953032171872997061193771854722390515020498203304119171097495290430828031654280158417224632233718365989914096374508593624150456072901045980425844521461694772354069685123975834176806468962156430938240729834608192303116569853971781495717325731166584090877904329468306142507277092799620648424286107096887361548912407315983638571784435980323999464951686329369309347315527158649009814087770060516066146448878989806485694892566721405929117748100160798636666289908982716194280141324754292318917410399838653731695396514850392641353368070525300749191745394281770025328273977314941652524319195070440200236671318437607898992523449136134957615299868459548781858058385412938053855595807941604341653482312657151234559509608798108928900713541688363064243544047814352763222847154652393360932897317220297242549804427341647536768263958171904005044078726858951205531877424874571604064507069259322022910385892862827238731291790791755916523851430179865410447271286946483174235889097407275894290996563989442208821811162668546543620246302554781711557479036316471388842846865350461390126594563631984301947573876121794801830948356814434340680328437448698540990083524275706353285352126662986619847073324425528421793096814872091379610395814676799762414258561535305356995561934182499636747784738490285052160518606359216202430073011884862251012932328638236611798028196306054130488861896752742317181643209765907884656017325141592147930219886501209464422009125870770415463834910405968017481699736647249846516130577544429332907763283839354079740521715927087164121276239173271318324738260069499424367723786306378907446780719560230874947755848176567178632294181242186077174769743696901966751758131996517429615549343612582362129156925326438625417264485274410420982724441703053378205202686705770168008906228314293630596682414282188755729298101592411228141339023626298510268992394812887747086378996519456420904594566321672552304420774041123515869124133282267565886838808925051288928524412751072879207474996614427708643159312595339321388152496085642284015845417872127910501849179180004673624990981129919833122386167227151364108038807162608630970660291925143860844778695573678751092276584804165827786730182435825476564408458452425174871543211053844915891388874971538085980263553254358014715962445783685196481837928007439571121583285983123148015177624768886749239527629231221383458378703054735076217369866340704999470362586489892695199649754125851959280708733407717748072805133007679980004259163700304503293439486671691204053759871199237018246727221034445684153112795996213466191832825158439693962197461047060561548731194979542668037086391137499466525395299303037653750553379180577418516713409249951444792109387493734603403373172724901584395251303934215291000575528089311489243458487201390388298500726041503731162592886356157593895595925012030413476152708178344904032153242830433357671803664732578168516239750531252925588374226218058294807687281062566469349080175139883228483760939453450472195311316711465604561649374261523951261363949063437290305640154542153711587720652540854369482392071811490624072580891616071564522586726370508890024121145833284708311614012592704022856947654823766739423262693582982081160007323050715479144216394354541073648126624806296701900757969771304147317244825850913998006874869187975504618595411935606167150302122126338668370440543513702259449834914384804820022416903485671894563499401992865312402841943098775734461256956429186139886784547261800576043871896172448435714742196710704345501803124295279524064692535548769769808760813879694549460643925371791475723825386927324659793062194452141054836379005939285312510004816499251946079773296383598976462265312218733177193088748971415582536128435608436101242433558405842426324116169941821125478395504771287281646158238943915381571960667561001510148451513742011563056555965592325074146302594961216524307764037313176241236930660726197940348693614239777954887584053079566148649629583096465749632114948580902826754213433537833168650277320748249132549200115917838487974536342112457085515399381308386518337664879718413961884764012479475436422519534607108883478031614686126008556173178563214183475038980304610105038410043532148345040886317594062540606305406776902690925605386885742077342197325327433365011340100924425492441103889686374219683689769874072915950209413692279018323607807687813050093327527460092031994333690500958383754898083522868173223779012383544961714321081342389901747738775480562068144667771797254968456972473009058417812022038496613482204400970078922681660000230143976923124161772565858743198580078739789457497797324016460846638021672253985713671822161822600015530896094749494956488087054327693022793366544110725390820524558714027737204465387988474990725814917891513891819975548311912888101565170551151960871581707999809792721305918780014223438922751741097505361464805648672683059237867328633804214610687958579106576660384513439919953149116569120210824575792886481551671988603683763616808600689277499782918805062532239932994589116680973535783643484253835776420475447113823410980417445385800498959581827243049537353094290627213956116319844569565150915577911162151370148513556362795350414245538587449573588682899000805394178718369724217822505126041503671287726439256558318741445586791280859923910676449202985981531242215962767794417939664058542943845643567683438321169020377926616030305081958555947239093025121657724653668976997793237617145003375741290939662362686705342240580377537399317299164093477673843102516426783083536367137662232228723396285939497181933854057729517361100713980168956304690629758134675034775025919730905205774564412623924451115596676551773579625954958077202614754704142313085592847493653994189892972300859125019871408919655391021226142008714367378557934006533200136613249333103877299616187461372630339497299350469348897182748725652471671520724234700395498353992239680175797328003952851357664575197669495352306964635694238525260226245095459825800436383329950581370392566237061833990582866951450089988178107340730030553255035194163370273143313307914200517294922547017578544257668367261663932404932889668021075137283535299247046831886261002267746308512879080332086827826605945587960203280581863106565058087430107436270803370297235585610078552903735268416472377497652158490022939508818062420688328878199648256108141796738857720656122558170967553959001437866063697435780553864818734643922346196203769308523883611977083723244283272172180145539216436325979658550434994606851990764763603122133036705277615163613181337619393955223679459794550395389574459940941415076955460203124813316407735591949110293979376249040077556401006233789954067696101004460005964989841196375742578656332464131956334720766481717380057578711791396812089875220921245616645848845536391912031229007965432718127175897308459578466288878114835419611372952976653412798182771171305309819824402001817470137678634790184593500779600332068207530823542848323864070117390669800218045780814434243746560590413920053625971429925608552759724237193502752388672064725164387544036896153600571502373798393898870256810213347623975770176896577007914182103420004324975744025529416404056257836148921043879360514908381395184419021200501202017590574256571009108264093651862394976964958440268363207191945422479001366878169020840597106163340745509618086727683970605291745076073603446115643419260000497933736891685054135919565227104393249475381210532258651469654030146974109845969219552926667716030445805194548071730043008738187725603373657044600178253465765891162158688296195553909583269426893137403002512094049475053634362999628898540024904303027556072676319414608854587971020132533315577487775590702846716114646090239641929491290895148965611027633826669238604163025674887212168895875798011235596258302227232114741849213113260612347966487322358825496821205401205614892944000297196667579691964969243936162004980244140077192672677586122667243891191965860794240053930857927717522395111248043169221553135638327039373942577833750683928055294314382777351724219272988054053839699363437220950540763515397836385716481176077246853892751013191128235540771118256757336539685714925466307339021194044536048844048854400732734761980489945222762454851627949768259571528968807032288080849714737479509890808753939097048501878855450767288541228639192536463314396354467706499499661576040662010015843666896239297528257595869431875191546335990233494965804565792414458719724901295872679263327329814225960105993874676619934595744500621647747908244301821052211687458996992445296898052093283944152249016584988714793461768930227511925000310176891251038996877474132424958517930902473040088714969303716599282730576298699760518785784440329287806930007896480473749045146067549371457687870236308633741425495154069016079071668192728234867675551159407499527978145108598836353859900037724704850520059044770838208779000645366739485535339098686716285659645748478365238745114890346571727951142412346484685502583334703482746572722694089799498035568278834798752309898038148867342216975965978193295776334307722790848468485067248806653599658884520498634209154474438743126641547728197108952711096710270741709170846037383106004017129128642412720726757199955899189457287023216255728160995749140058918087649137845532309820035503235081334269932111555966154398800791057046368560047551105233997364386717504956573967333834676088494260939652985586129160881522616280486824344657131385824602562141075300180545940563029368942454036073053165314430547732201293347341588521827642758303841625255845108346481578516282200708621807224666094305188423678118266666519175589855742155999905875993011915327372027553654329786105970867524148761475944654283663596123415922643459364226995539821778229288194308080260780621111920727967782776083871608537518278975490945155798270372725310768758370400940419071111897067409344553127506185604800128352523792212902539517474594211461800121809763186701381487195226657182116442481437464302950738585377468983055477724071124361941250982305791042757500429022790069544993259215189446356233207288352203603408829475772311490951570942550792864433546903645495101878786992065393298959627036498356385993327601011047609115397110051766234952703690764106025639758600130664935798470246898826940904014124491819805798506720909627938956775183324641766634715581226571265097753023829617825178051251564483171737208479307359850946206061149056102986455201459254829404437717261737506047968833956389125703424177733092530992752045273565837924669085282527881587786432347398535914968400685533079205554521859285548631004425490269928918344784732805362458586497373816550109748220918666716283590200043034529459572572855734594856130773577796925099911216525860475088300180789815368267115761054334560551012850403530892236824708565700488285827043959224442492176737515142955460913800244409765299116270884628572054715074771402066243019906182237583359343943632165257852447321003244084348874574097391278545972287309195330835442979486559944243689916704462884150121688342801354275986014996667918015963055467501406388037625573272862291878671955349596445135633729597788498393138258370371912413396905923964438685651327201749275535107751521278935046524729019890991762805506560794096723295473702987568985654886351855233822226663808307654282809288751582713259575927039046645313332487782166564656652022727298416599743418421527713505951821803397519636815012516542890264699617549680325400103608289198464192364613666680748679190910474626937671376915692141308287314643198553190727523275339173316638332236151950741490296257388754194166972281743941204523100238843847908705629131132023682727019233949855835260215440293484690668755089673941077179956839738176184197649441984283822357516141279744830771717756860037703089433016227820612323863710056235415049082175695377735419887595133301000075482089408850212229562552601646284319412771572166347016836293764476613844268597983447850531251193514135898727081453611009457965631367876796200707038073213807161631738437965803246607103428153625314438459624551001673784046847082576786403388843608569217225275008760841855647238764693518474031793274910967853865500383801956315216932644467490242574965407693395327085363465883737753828592137411416354203839532271967270512926087430241164882262471238408617812970776837148577374807917107682628458876443745294072203373216620309984069105944556172023304243369985711466003154369733094894269372129063638524857214519942095723309122486844936313735182924245217784209193688820385184694535323312749279674898026785836037914413323356649024672975128881202299118735206898786849021777664954741675874309808056847951593246026570258163498978259278122911760441069036077182430482701719517482712127082098938271102937810466100277323854893960357276778491787579185889163707383292650801610035687560084073582870888765000603637011888554497830302892485655225276065473397325833813222616804029086360951568714638490636624792920248292631555288576943536169217601290117082175830526302114952645872550576511269928976593687434660927602094038346586740787340820168105373475137546691953860114798545276670693230921645679316465911680205928884508696362183722084252229490151212984960997296432349966726049290470306870787067800140153070815109026322517633190120508799014118650358612894065309329621265564483455431529877589355468914156946870584586669276730322376444914059970392339998881068032857978647437484144240932521907499887982453667879603301736888952634610866867670050039172228435228504703316678922376736828674869635747452428040905263338598393651837106037194423362121611138720364996507694239927109836705040838014352940056806259707587535833165459835092024121379903601609135050072767066798621423438254017820979631005555397960702205306071327235077844720494238961884159106796143415234528446507916332455122164803797754880932708272055839912070758815005339632228795512813030734088049980660565973986128585466662932723023370542876967616347635466732751474620240603485550150342538388445387810289474863211897739560098397309675688982268567797753897671575776820351675038911754712820392596431084883130363454431040226329650861256636555066500632614056281957320976685749640471436791276638019200278624663345853881218268964387960115694931786685756263835329818024487717719322077467533312102491670691991243911672645840002248900605019141411431105562696220039807475236500273679809380730660725919089923466543274853962170605781121934787635322889139978270223468233131634173161140262402232555207495277701471633954829304964364775745257539595602234975979579057320262738048766764156372974850138932056424143278469961593154975908359924283223588393468574636532944697142003366998353602628061754684165390291699979055975692543367892160164180515949329141127655377585303547759047152512315427001097617383537906549714396364163681661667778856177842740750469926520835852024757387350306492408204107766657271183066642734859304641809638544411775380460866361643547597025373098437626259893231299787852605966348632673873489744742428971425722063962788950222945008278168454279387483151768508466763242650238011707754155240660888506744951789135232804294114056808399619363620169022370240533784938171323750067488079167969890376789304798664489381639539306071903118775453363214067414903948663478064878965141769578433088908433494789451940369381188011505972070102108611047020130793133560205080096091558022061768234501652646961319728528135391346740853718338300067816442578850093595568370562169196265772734967497427032965700763549693543110363092503218274886508881990667204345470999776417409755759196803246330943115020713076878917194806819470970766836044580947482801680064989548312178474539038206438757476680647851626111275126847998771603236826911208468642376051347624776173845147842899817486680326170933173081444157355692928345569104168718618356885275040612415258996442004703641104244359794925433264233582565921917994947581295190793341863557840690492182176151161541060017798257595898162430859385058044659856653842344805770382274809484009292267098208646427764892699456807845931069694881175816435527271410778692136218698135706617663196769009898712475760878130419972870878321479189104780472247485459230794974122322169344005281916176500547391240892765668112967460408300675770378624744033367995994729517972511780342756541250215101646960606959961946819097817646836439425362561822287821428088506254768426113812649525179333574878463307674221379466828454625334062025690934783239579468157512407467864426442611686463445019367063271098821836213749318242700813408512381858491865746281000334855427301030413943486816609050842728797678014542964520926701310430820637623572384069757676003614412615223195691243908349970514963391011017403275922489553178442548783074407909287757297224016946908587865285237177933315884033735637614715726711264032816638082132960332284829565016199518348404224597041966310191579533822117518495398326588578653563286384769227456983809379454214926982553453703315153722787842367437335943036242456513560868822131665893181966249023205037957676348736670201409235614175391325134355410237969815219291744391332198868492107613156610799137858592967226879875199181894289524870288104014985402179104784465874176346846842035442448844712951406362595875995466526424676626943883577247614977730090105299537429596275020736835860073544073311340501963755612278085586058405058700482515941478754261462086059260025131677981291553839811739221898197429867095947661023489517930653621309801744346633461246172351265876726012281520598722313332024008139877134221426476464078114463969569258905462105282876846940679895010920177331928396424169434412053798839430431204424167875858316295658473248958207955744540336006563694073855183017009353512750362308482561924876745300622847346375333628292537273706472742467342551259064238609784542162822893927836356878978264938261451787301240507703264727170056077609529561747391862621875570324071641975741435890687711877925059178230564170935384396833250839966148579800913446452214858983467467520360611169156002136965582281743786747285918978201271934005740285627435461695083251426924227270315131556868237305219960889380165403182420063067459669424992311700771493735580416432769841238695027513429630082623075337900480325377221295244123317986624254246177868841754356498557575071966760448295275619476642528822596027823987524827565033711973652849675401996317299151290733913149892463183503751592680030160021168672831976863619118370551511014208900945826824417385101433765431730844038642957464619226189311948479314417788153639170984214076747089046674092734822306869980285403524029492131443840253321463305127224816943539715458151193146771536028214459964120929477079189231312669705616814354653558044065596787882998041774460590101731202941429899358715580038290749030100622341541518926699350760162865699874809647484134335711190554954256936180240398591134809358143775081342392832161972450247770264925276982538921924980571116439530063475216472109914109077593829095570321232311370671629965293854262269996120731157909544981969848093444813356583531782353052420034030414030617943408039416795235105460496846676261696713071685627508618514747583652676431042247123940120954383753783914476781390383836285182698381802399426835102977861487270320704957758175981238038828848437637603778002737597827277900253755288819294897402498951334815325139908721857307712147037429599692694644554693533492103705221849477010149020162138977997514166117480205533540381474148734800741582891302418592746787901623080994669128281013276395885610566405726582828735323596755820511185933655258559475893037070515114044433677510183525472963226030690333518130829807240078868188731138566383645899612142349655332933992819699691132873133026271812320767588248725279325111090479134815912722670917346361717810582560160015770317631036105974715891751865018541708526324666737044243347158373294066357157983918421279129530558698044764893178583810445893778049623084928708145550624131521135867965643543223586065202435940018398365072683320953116631609690257607460530079110284555649396800234138391479522661493093829278886103249066393026672011725756466551321957235627602477717272029930756200088260826555599679692226881840010142301273468904284897478477040768564992199940642724985627493550300345770685365809039513832760541312594789914159243559464175781734532780384770315423832798347499030963977989554316028381437475752404898585575446696234242684486307372617091919655857269205642069291573636368304915781454513125241552707662801580054741757825985856161116512461233707558731882214245414471190408979093583123494683582159819280155425369710045440571877895438892792315532409501429077396263409448863731599858837930199520147056159781597996385190492509588661537633573383527833380094674381875126338174656850408842228295624629629487208590203912177915582310190241222026300447812973780315979026271069907460693305329023283542597564977196057348648432033255750525412099248419481444803469595077503737768952199877179700325746770671720797773492740997773974872280203568542207029508169639340093488306936121021125298827854979792231894883832016457667887061800600535263984852265154154382682433151316682448201159675107067049361511213636541909080807346364218178916153757412242160718672875720909593506385266424858005300828756885612550884812971718586293551696623693019934824236787033550918250533211526175978592367930982932393078307266270581878092827597284124107404919232839573908695000452412195850125195741248628483333918693755123997257885285926646577920878310780176099034670289416581535888561007589055421690916525002240901364006888163701938240530833448246908132664018904929490872397770752785260179312987965263956062867342084594523864490023522203254686631411952936930649869911022814739385513614766018839887707037791845468802201098454729200113496308792031876673763735843037949820251434229581678349514176991988531255899444752108825635194821004123340738703226357170943674400479851050436449374259525765181468917326557080038461551166790952160136346225817978096701481920366761090815537744955734305892717660367719168794263438101859389682970153631943549636842075409496433375701339252264745202343788549860147702610598729386557652293622420400211759946451940493918411232968411851514121557119125931160062927723497081035351223650108412682439213955838998554381285364136564341341392209873079069399561344841163434730986529600499954742673140288858601746586754847940424938184530258962580644586531532425119296151872396047511610430263917941358231772753654443830202253204354198242577423606306258665358801601295897364961435701396160588475008140996434748905068100167270034932687023521391517870204090212786578360510599318572480840647709082508179948195566536275554890027270999148394603634526114724287836257028964499402125583119896785974003108464424466557484389277896811978973554281771484721660763506958716494293560319157484302834155663501027945657020853220797847150429113786949984158099831110729953531577001030229620062665199736681468990272625721783251361129980856660377931459288461076697651832782783645949596313181665443392604597890945881919627481416813093808850387359048298335853086781316581450617390956169095671461008820632639915995057483462223334622185500780986136699964419105194934299742862700277542429972930523685225151843713634101078706563175350758541269181323832491872767581837031391408443531345099643780696306945657426452886121647053865701482015851636298078891947734304886002852310784962176749833927006000805734117710754052289044219395763246584985456877930112575234302257454431693078561708537932223396955637209267103617764569813954017678084658152370806103299681094314563320074477095587293996350688805502728960519705509013081392963659769756632580740967141036648440931387817974470949512521879438943691715369194887379362287974148447321386550761850096766870389946180522923093437696126786803259284820999387192459449893892624071818640433181228620732683459278573058687183394374183004415869385011568471919878614261102039670002903251822998829919195672586007682711536415359760841251034368297994595253683772886215645129344613335564522866551619475893488746843240262320366652617661135452265415908099530287234812063658023971399509448857109912128603114448719103462190640978046388058457482079397213292474687848468404290391323894405359004926315125182274752694733623888465178190844213412844041007160662648578695570400323189056170849329704345635440946595773604233719127406440304300737338599432974782926118872568012244905886475185750948614179928015120611150972254817073073881542750653654015203595277810111938855010005509404768923584668226086477008934898531612800216708426873602947285127046178118305441511085250531113188397915064019415195424861853466765884024707342501765662763434268628774035996003254621324044603776513467611585754737695529994369191930436941861444596375888350010976877285634638938428362240294749567294829123125833355022803349369689661890789114522057641523481012478427487347036696091624909010503612773266300423984062680510358420685052868705191475179490951809695715691662976336225169107896911962811823941901903120323350285073361475840090990374822169471647528496063420227233993825560986703215892036044683403040795978613687372914622879249424675433119521668662540898928761688883175004510934570695949288634823562890245945300952453204666210697717328228340712931277691294038553675208483771419125743680470355719924470429869148137968142683617804617637088426679761554772542239288704749642964592418423168600470536239279573391940431196668717059569966113775030449742421106019635569709736584451870999275388853686522780628143368223420529305241654884528923528497744422328047618293201402656568840280366143402741087004156478362644076117302204527447156360022605561701905617152356157208755070914490706542831983083456847840553260076779254955205862583961112503912958723804644700696310091758594978066524103608343897901309935857404187813257132707178183142721462283208933262999069216959918695011249315131931577310913443821239826001419694988002442984614914416591825808778008914706859655121437771146216340901001311795176216025869952018001009970046158991678554131914150412710096554562495317897772199469943617793520401506420941802281844893682725352115949312317463589314676576017145040071137381990101472606575144850896867911928309564541288310226096410316427391798985431293900231435586617806458555972645004794461875014365118910089399763638934702208975564165615186145889797723491470292112713895447263574620766595186310526381710160196773045253890281057135514378442150786162029387183291473039877351548760944403043789267969200467104043230950614677730830203278409552265474644385873133597251803484549097870985026335170105119368176044706517799343681683011982051083688970918067375269264892143546206988080941350229630141607706072731803142608958661442705508193999212675752632420705013202056176865108720567142667040104208823674642444449567730106682825489023076850046907256637425261378932837049931224002479702424049530643114311157785360629988893819849814209288483964959255504028345459227093164060699453672603081830739611337673020743918513647816869175219083443133365177991936655738726915054821624880432882305403925456930679835052797627583931630931475335041042649964095206383093592358510349135929624598871244626137182117885092012185809110069836080315878898563084019395210955657346408619522282521051054434743242059045769830770851585633486232111415499860209155117350021775353219985918275203827382218719332635816911332104718917656206915731338402106322902837229601603922480147222303013657258356417343354563901647150239255896594258694358969426675542465391774102418414247198738821106705530973410015246045391276342708532044310803093801155423672142016240128048607174426648301305649706008551290748690186019738120096625133738226358898933432521258401062461453003918520110311279707395471792689887793507616770500261715414328077028790285167400533160279422473481325922649900427781049663402927003734557168461456348240811710672480814125702216614703723092230520098073080213838797070363965677560116756923761258882196181607266170765573749489697831564537201046126684695351088171029474946513782312013874431900648762227473590753215817923336163458683547701994795183551612545932313191904939935052333739001694417130021294331919265829626688543164039716604696616975525137639195316602564323351050326754884366122603006967122711180912785149898382176726637710361877693695270186860294813402789414902976217753006597762351582013584462350512786018493066614341678537832809151517847527286916116193407820726493384467165415377876706862207459237038891106796962704766121102987409493889390553603154772002491492388322088367367094510807969412591228906291484014346494241684865593472848738260798193338897513388746992572679483045701962973440510481683877090653884167409829822252420289703236735507480917894363645405797283490768326510326063955708656246043143200507704133567955978317614603948831661539259804578205682351508120991058014449966933257780695865684040394226987306337571031599073193643525902037170362209958329775767006046263628465672897800031123215726773605288296934693344338877802651100484328336559421169509535332507596419143742087267228072297930309773375951009922510220959706644789827161084499244887959292247902569939913010396813178920645795380157178463385349019303593438156891479467804066291858196354066138823023459493472627037783244638903234209334469622641794705524196851951908419802793079642019766874063836255705618325634552566557126986237323244498175039339434654951757695043615954495289865036784987210966160631048629717928853981289350034982635336099046585630461232415925469611916022147358133989360298051300984478395725897917919981260372884422205224455094075684728348560985231897274662929556317270163088344141206765173298801116860923516993260314428173665503671647516138248628180993481782290513254410596517979402235256800700492049866109103865201789738079940769621861051306557388718254757234027952789195102779499409220153839836287270463672849164181041918520991884536128687938126330674419068445363458280842882950750696889853711514796181792618528935409287904230440883241718524629691782853806045261520978250841756354350765397681320153775226548515789749557381233955363310087093453848478620645492531568654641304622542095558915571824453530586225853601501332916652850574338519067556872946908899365035543434517439594709127428245455895718415148540764287022895041540427944003813801109403683981812776945575259887447057352165469407009038682654776218447893403596494510872735564141567685350152576495674567684018221598890728792234555583849075392653533149579640245118698058602579129427576095434354590642265530175980559659914630757371451262672010368506801159220416581343449112512740044240751443115493748367140895620381996988401153534505618711669638462796883965504372520297458127970338382724573427054628195440616940309038260233044246248780779598908770340077747748310848566699927720619531965337902924239369484376143287780566722036908055549965871074942504935197345386958276325491302068761309184879572363637436206601655545624713259090677613295472463095524053117396871475162817590503758075075534943156562876298734633612167574633808115680426814683198875497632433446799304323106837795972986550014203643047880643491151009309127995932944801427667311210172069169585089982272439903126736334404535941881767716868811919973541566447133248079415262042476633716693708392771288091483649425000366038284523551758602041366296302488211156480080698156384153822238858532437783636585256345439539201632044347355696857838177399630507057396576397121473182172661318967085161537030955555250088046258621177721283515256031087356163647863679223747477394609111343069215611059286895965471886391291665909425968661094318530765235287453147785428489886388754498201142630922121917547837506739585036900835605932290337639617147726719145431757042885004115254619213411923095572500906109315595177214472131233882578104325206942436511199437936596662341084362552196991894211979766843282984906635637909420913324074724813594198208635812049639080172995280474693400375229602968163946691504003267507564837863394333837120608761620514127885865197699241697641183882121385136428581861235027232791534923057600000969862619963347372860766947475723562546637005598603651795180458281855429029900826788572623407305245591173551631811916797528867452831770906444378282728227532815122290522687584496141189137261567154817250099107978705589532618188410346275449182594394325605799469714145005645747111047721456186796719518116197203211145173402798654683697717818056374820010244870074054826329417442325007703280515268248960735635533081352401557634816359868685191885041205975676780104519293012897624167083624907060380616198306530325394255542031459449611033361025730911852362444268683835563045861796709261866615903984201621008603118894572354234484428184095282117017867665986850002899568907118400379776409553009849193119286184309694009865875573412158611719281807701823313287476061657335432203653523478316656352325263709681163594403020346835143592118020197664375307331896147737112244224276535214708885276129056641511976280998415350183059205708943607239213839709397090407895996992675486799703619718746413686982970435501984635797373049161533470583441116649850313902959598846900904227284082586608976038587735320031621802034977272532130982589632025706980179165088320633370949160326941155723943789842308788496305600052649386131431267466541051153085796160572714365280264464379352079166879050732073162461131923579822921962840673018191468474678323216940780617076024384535829395642572318367500207206171125701120689309116135149825601752930902754624844968771115327215197767011654346252163345881669918255789583872103386189290696957595426625703301211495269040398620001923208056985591705197181189156516781049231797476149017773188976489634102761084965403215800958603729369695784184162784349147096267946084504153726762422455556442960467986620004087585397902484692577670616384976645389698536604985051064485446739490697566995791839948466895398277031441311325607002526463702311075931383171922188812397233145499221004999119390096141370726434853624741740334158785575638366944289710402152414442954684663150791187008521195129546491855063249487730279653520999972234528805325791978948197406551127284130342293862916014126485375113451816312007320970004277603478522716169180072677254173231780546513822160175321399761345969974813402014083752248775500520733513835746252846003543736088268020786572708809790495285672204785352494152945107549270641758833061238434799713781695658529137560565129249143470270172074852625277977258983860501313579792424525808127110822591609917253980798013261977349498053926387860457313327318658117850930439262887828197922575802516594507079839891024963509401195354298257437588608988191195030499417959809118825834248212397576026534047176713210865964373574358127924959183466639092156576721060385870217669754642456386309296599307488761493148605910311813458719278611293203835203702664151291385288182812078423056235069254708269818027936529071611213808443797549037347062809040570203313564961675509686896229608364452435040865804043085213568089971668685226035461752483350841468967711594806936245023043340249116250227820915643973646315382291614123869741157945368424210543837367861172409349041500380389369876108836008363055600590397607190428443905921036711793848488782903560944094329089266815345365452132330002593840665589156570593917218709391781964348094514399774579371584693197681871301391173862051894620771039142875356719751210537467497849339533787927335911745816095682983633064421749896033726271161435876393863916778857527980942934564489474154072221221520886090188843134207473500206534401723245261824472310839673262946807349678285738517371945998172225874352296865607560302473781802792872949308171792473654625755975312377028031520360266859631833018213640517558066034498101987809683688929395389437935541936422081819620168359467540878899936579396401584780440294341457896134221631208082923258414766447432707449493809094571095403538152669103428863417232139177528442674471670194986132271294146318402461637709861550282109632571925877766230497009175144401659708502873093035375086924215798437374354762758298458020860127065861250023012330163898602675257423150386187864768008170768670602728399529069601320369257719261657289206169571824754194962887421227971186028300482536601445202007880140094686751799306539499055746981396070346708234661452711132668538232585370505925887867739851464654725531853691401445112324970482012752261814851284024674580862242349075769461563942024763150569525845815766528060709692381621355934126166121498202041232048947192700159850164721952696554432033494195349150349837755314862204345165004996565199587041946970117219317728960654086236362110819741050247932958124656523680777880996253938105785584689099318011385506945701152060447792395324505915848363062802325317929200419334873333744812818160662530822512866811676850140655255148234449881160994252602529147580580469841567524099948742630424172182376576481274628655800486806839750675191995334763816365067384043780961134603069679226121069746457737838536767886658911218533083798719444434547586514441538029721770892818972535466970200808395721193526066845107809523561796270763833840870069395760009487712820543082271449946563563244855934392539025376458918390616216201410980431669744366157908932700486359242925111953679866394319999293580437808203002691072288212901628956078636834801423514941160676595522089916462051863294416091985664252038414947335912902454710358325906439160087157199565698933584677503617849008124883900700983132161104263666334294580788241654886071964371664731112675393968817151574916430512191734316287807090762025612785486565164459244309935358187389440919056378599802498927614792034321176319297547147005899185674395378338311620211669822134900626156825452837211169231630837245740078786996263295528847262581613161613260154364719181832441167902880018601656583064439680457232537629675634699773464434942511662904824617751976232766695512544931922018092264293649477917349900838765175492261984695319338163561448170957796980138988844618381846441826414099964967478359713483872370159066369888979089859615436390557581952203683489981031218171773156194492062319590071026245562272912786388440926798209495350004399109815044913465554695027167178656670830771807451708723321325951572089241765653811290467880148082225065307727199478750144571826312585414999397732012298171674826677172198466135590020339721914804671466019234905922049587483599544502198782711351777264595530014340769529095458234945454143038686249845609720915462290256934911863452519020297618891981106202704770564267345025822273743379469748745471774955784732307332375441626269216770306358348335376268944197387888067524105564917871512779522798709142757234201456602490965613449464933996086673315677617712226008797910624488890094700530594819764256443175063112951161192124688050487772514015409080086456072716793406495455787850060726588085522370085668383506740566876270200938624411895468347816164101006180296693497752492367419607860387288721632838521885674673412629687673740901221019418479149778944987441150530183837016091382654094720887105083212490569240671709371982579272777562560762954877229153085542210896313152732531613858688012837531564710318595478369248039557837934228632960578058201601940365795618540774060983758577721747433486447970848230460194527345833005744372908685143927442296241882721127125683406641051166219539971064355880095083914491866885599521652705081715437559568365982615661406367697876372343227537492811827951838861129584243269192547802150646917675722445741725581085590600641296635717082416164127156377021642057512544153366667295031814603467686271841234603268451382014442523787048869057043309216813173402526961032806094292962815222241855136562698769880312226435339081838498119653096400905548325898653521404467655285294695667439267374832896395438542438117041191510790937875292201131186512571077942971310353171567411017723413582802574789102851803781901735370495777728864667201788893666045822515161916689959723447712760987386183026715747752385539970090786482349052740336119803106024763036059265467403127950598482780001606651855079229328119490770930753094276065159904103714268305667296317376991669350374717009045003699749531854533179713644210364029783422775337316372791509016840330270046941073669996983473171751416181289376669783758693973052829089362294028613068241604096158576590307226423574358322785993291704643840576665854372421262871181909412782729771740131550224159782644857336210221193596849369762757581387075108566633202025998947311464365909710926407747616416109086171881615350264030303278250107621143627937396579943335772668243897159279478300487012673047791581908194029374695437717147556150172253774899528030096350946220557061113566867692263433678862885410065846700902863377849020024091513134451241429663532545093771638800154222241756138359111775632847148231930995708379094759400446930298087954656662776002613920688656204437468117375775785772146514663651690265998181634590540187981342764281784104398786030606246814412871177557568628606615453894916728769808921214664234674453317521367504898246787548031635530430462965176742078993228236684589051092548591044126353591797055531239504530205891970852836290197915906116893495713205903816030928290521923581189275403629615578569834379709594435741576403115581995057034816499041472368806033021129150670708313740213782850106382095206642361187556797096677594298091002791509567960480694828056735035021947667860954657997947851431128570989178012816806161030098636703138188159446873329387279141529107312540472597077895612711430626788124678112170593811788846050557703208457518734076504802596946830410850295954012188755016973208458024244735551276626774920099250053432746355917780179102869492415198352273134151259061094164507680633445813699853733555297062700858598977476921264512161907898862298627930635287774158845128631494132411259174741245055530914260225399237001948620823925346852860022533062116244065225123356900774845008260026540864049504376767516705787972736929019122270220490632108517861751859106396398477453813485684361421902434932458485606918162947035448209675076328409827023193503162576896759527305630046104941316987385938091803769133742898615332930490150668460219725149872826303482250440054547330982685511029261545757132993147388268258120188399975897090869395659843455715989537676682596749935325997076771128306938254831889296767570615350355927772724348899575063313677695732720106612355111599333687439579790174422517082910959704454671204759324931425974466457464187884351035183713308037264800217085734592159402599080788230988346770068473534705488946627229775752968014101333689609887332729775307410574082378706106965027970127461684379548153903589978070269260689072093871082336937695344849946589296139877028760007863356719504310588722270470610308094701581480992805090700475889752412415828647721340219370733138778358756008293516593080697071659846879536705572920029868760494424257747632008421459504685056290792654533103337398807938824373919635337770300136431002125659955031246139685890062498212545401783575363510484997579337128340894817969304804707682057217713756864443633136223912669172667839790031685439948723712798302764197011807161480777955903064571893715547717795013539705300775210538966411897599835405287955096717130111998957047555807324171388702011691834289395108892359124889210574434766916344229999910277231426169386546351725341464991858116083991817969708213185186623871536642722957040654883480570235665037395047418877881627396659944078176413911510611912620622446512646823772795359418146369029425442957782001323073668005421310118686258047835362383476956809661684941700800463580214087223407440135093998224952510976275215441722754660988255310775496654660299170627054453708028306475996409666253938366300571777040408670533263052931032344259100135906385877248715397531990033213468701342233600533475404214048731977000097113007221979143999676795094998988746281345872983348065041162411256208633940946477207013398980247401383637654472436576204859374826105232275912218177625952427360498250428877751678913858465846128414648504680074296828234798208324481035390534032669161501219717635634390191225827648512374624840681342057046819458749230735981072333466623206553180176344100248637779280486477426649934354207873832404738089058204835061755102401997268314577149598205334868561490645877688375085112783472610437192388137160240042560163718188277869921762825609048872447672628775166874503917984600774023893539315826914756930601287651734475507743866174301971769478966643133309543623411022301321427818970330794300729294057332176086583155762425335553979994900102938539550095132538644710859952265137147774314906309483479259546960666131548610338231382804180520330231113640034085832980452530993627337772600450006028601621808431906768857269726695361670749987721572126448246075995830694967356233671712649992337557525367162936364718371123213796330149908380133675252548405831490670578804284588604116340768555878515603080160686351642255222053081549719224360721475763103166274887479333785434320373907604781525255551910053227753525105513379478856527487154040439999519762505405598594336038596889224686414111559327900234620611221299132877319082775074949999507270122250081533511553772505396068606238765021875322607216609835225306924539125290332914113241040303884061531314576466242686857492492609779710471928485595327239382097425238043252786165058684890922822201670099414452434639055115474735375062313496699132077356018504958034634762290308879813231191979792132317231045469918968933370185938296633608993258567992167196670072155449453885192117695994222300079982183411016455293707766876892902230664490491557014393208973019642345705867460547649170675262235946137540961007495588200092422103146186529050095179866981603733556533491244695884277797332313913028215780351485180368061114862373435700771610378357880021901001982713447472438140153477911866529553833503432886864864208094097659904981462507514320651262005530553406751256450114790935293514644856994440658635150388570301839444498513644426979327992039492041627122121412472255949776335678064360918540221669698018413203895995891220303858748806956085814338780182020161919934645172693926140084490003168910838191825945186031764092442691757258489769630043765249295551819901533470152115627515449234932199689470634997264107681666474255278500002531571090598490270721520751653805767196320742257939079896832807891248071099169669459052553353071406289284260896458442253913091800644554836076796594456560124931421908337496166518354694239546656289991012426245784138011835525026472537269358685105069255602314164793393295127397641048348595489169269595157475678495748771420126066947375465251692036225312106364608333393299580799229578256752686753554427074813692876373192480081037602285694572331485999496186918771357496724918922930133654097497417910909312221388270399969449953536732446235080433143549415966730814853655954344038493489655625198816153796271516946348179457266952780091146206834114465224971573620415105357596312348075175328809837877968717344810984912898512677917545137945287197369220901306912624397305418288637059266484787072900254132379442444212270854616896363332416538235479709561720272377570876031022506501879110965206776601777605281885867660406897363808837167202692440154046676712610028152393757904301622488849830442266386292278267669414605507353923564194443507910176272913681214352766265753256921780605188479400202930713035360462306054742682149795581474099494849673050868596550793038438783410654806910282086523459986796626778834843150885932268877986014274620945675650247854888287839142532281853537473073505032080333501377298297718356528657294506700117746297569444220542591171159431099073624282662984030096311235675933884501743085567485755408295767400946073054923223431316985651132033368433441921906935455587877993245628029902500446520058959027714792393785487676718535801259639923648766911196517932371740427552487254194696180598112176615951316236519167709710504338183124897151855849916653100482631806763195157429943400627498695458813938896251787160074568847408468741497060140848183874676870562738398027141216061120995684087013602255117169985792544001513513884446209360761413444855012608568548965239622965804598979741117626827923074422245273743908188950466038307320408385993380159237826581136218682939663795895391932427074525473719574391995207806992621850816532273212012486757427482215905225678145164566096785210972525872565838449932513752385634885900703627362369430763268874106197858756548055692459964528173703883449326356353806354206171189018822796768415033475456525508052570919965769993182798139020935707880527507546164752437240826341026223642829259719319576013189672013606899191886926175268234944988466814407913638687135771033244164646720372022746079096434297151459212330223605133666595184449954654385004116512023985200224998036575361469736445865127904532949533672833373057995612778489723111525688130553059761138083102389095238277666793994585103837159583743247495219411633319024905506404043462488645680260539985616459360915021677238071394971612798266384329305184422625728784393663915403477154919998077047212014076051735358107176596137077757087764488955809921045104407918637423547336905575093512059211230148482128026152728713688060585575667168422937340776033982448216844906498094916420485908218921148670179051437309950913500200094914495599882829953460233231081571478600582552706765650132586577023591144957220574035478321260981557402582984697512703347085256006717674361750639718444291335238341208004300987482498474466995262022142891759527744185272811694424296764249364695018581758799216389014334151305301413143326657151758648067508146238955914335642852049585797590900599732819301606379124763383992119884679748376339945357906414478782262183945771683308173196012884635406714617211670616546567824271301539850137886587318868531218011186755262485919878562260517641134669033833183188169036865721032762412742295654056878418550144570210058364530683514281935747003804885172152773445633924170208420914049328555145980550442253426536905422160983731337613885160550133722059331877966223746851457172241010473859454387672433444405072618781751036909128466663606473516310083879735688971086745977913999532280298544158132569104084584369258573130285156763850331632721076967102393192380208748375961086690166652383839990554368745813856073128892773557160693043032262213836230902432868450653513814212988099279008361086816368291151901672433104535004987089595440764801768837326946681104227724481225996919962029776970700873690598488525128730937152883253948039661046587120463572656380911458934474579496815445731015207177246785436741835179164429360958093270111510980636425732905479071605314255423138785433477829227494532943907194558121995680081265127348339196654742658014743565881525970203199085635486013609188904774519039014639178919097081863080764783731326956243449771704751536536254418668251260191105137956076529037951362527716704895890574416251714181972368227397192264824090574823668454988961894743741733429976688275342981161049825191091652887251676949695133037323132114059051789731376309200393876891533396791470570019380847542713862063809276430498378955222169809301121575732230537646941332175719457887087421338190459715784779289319004675648914120494373716694543252615994595313434355886620396462604084202882080619650627785317583158030297548316363861359959657594757503653236880062876344646527848232838472947415545777017314801146695846986746902149881593902932625231353718400753508166068197694377977036347458217558968667703310071647308545154209388292688277550473145137611159170855072638557601140691664003149743527201162578619385596769159401021624382800073252712359842781472057178062482780186689937781918446703671975923694991825424218146954014689321633001720632440682743751951602575514160923466980170867825240839805619964577046634977044128306871550172240067501396198215829854820177436259481292857100952380753908365418799183951489101813238699144869979152010982894093684608862374841925868990814812802623972140872774617522494420225037647379214843201282509390658167671000448250490362497139288249759826103514302901642113165965072513780851213969702660345550332095724389195026983758342387972833061656343138072891805009077184012502514870007990123739815809099930487378944075302189756291277660192223353244560736707425104144405679128903843930587317037597205795656974646288288306749037305634422580401283079322423096582757577898880661008858375275532016045526357852032179777277338456513625973641115634902820518207325615638075064486930084928791581330887930934268146962022866972144410122878956377892919289791444124000762784097842738520444509922379247317916519939367691840145862555782985944008454863218084209066060408139240201839534143153370963906552733332331196734600611819128850431575592490770135117531237845832964514754028339386746739561377097486238137964920273695184848404618136602288529560276578257465048491143106320383787230979356974258062403481875325343373339227270704332003860231245281716703608228537960975820964164753127369438189856088624921248719270317360210657454807109435556479765591393268952163544349875603691791694005155037145296490434416563970230165384655383555874369111265701245348801205026114878574347698857965597099346017065648177567152965607106473894563258340589594849611678478586224934244169751965248512228588507176572084549374756802201939973976678212864765063536971920983663125150112068619507576941363397778960336425855077596236255410921240734296099190672041005918889564519468639355400524778162881266598053714674233566655073570771188955553744071815473510256863159776999774021955255088830150310785394805215218143716402860207158657607727044225041075768122548156602812836231544186240966672757721418438231773349185666180298924068232236266799222200512741542282475142543344863319613101384700240172640475454344969770719604757479320503034858354166388493809017405073255399053910372699414576136180774003514143289281285024672323931453265018457243886564788463196126462197917437982286070959337146886375260487376479784892623784493880477186509777679983171231628933240123878222132332266731536720449462452213191109341753666705932040432334005690628589803190122118790676275939369473351588142514835459801746051408631620122592802090855520316982801932620325788138369138177629590063085467849418292081959070363856875387650195063125420490849507722335077243174834642140115326138370175759638146145075020396024153251889297993651987658595138310039843657886041098662105274479298295842245984739836295412672887447033034046079505544113792924081136054970003293712936399015188806138996631138669646279897424630411547153224263157494698653077631117743996304250504603711166701445979847101550716834873938338715389569821513128012074657686446336236996617691319102705395677132611748204079594472139686553853897541862054999232290204083118831370371365941799936794541931763778549838346619130940374639898105212473345285543071363964979263186305434401982265233849214892850190789687299953898264964484597115098332231750055562284928801233298438394049717015602050070793288818134072998190591865628460413521963369646855428080845742592234075929888246704818550793874763825083350931347370416403357091296567801480846531013186414782203301760135858100654479048833826070163845236608928981684093565125178204960839693389538057253149424280546581217816501529258502343874945665463202835566922254356248741853202534652325642765398407563517299558683690617153908994374801064646672733830851310861311194819986537932174267728163856693414823685702635967462084180674450353039720739375139390850836984263601330231707815808099831461183266750709675762429987581460926187819053609262450610341010856677555055427639156914946695546345653436494262659920957490214963911596147254789329093948464376015930700266190297063677413525656363819493087952400372655766660732600222049672039112564984668864599591022367985196311081447486981816821425928060035490694323238078027688745032937519303934060468730719725274392841496624481375224744160031814249545278879349940102265272706567863279640027790668245248430608409577504934464705333207758821807237343170598502190347816568059119511009489036371545231476551411671617236863737059312123181341913402115649222922826279365582452212390692795831564363008547878086262380635282774641398593028908916708229042416941581500363880651925227647946775662231666294638981179865134929664137532419066725745894163703786897981469582802437607949980166934758369968273937625107799092640438912915270497581075592581726621706534395466273377900826089315123978960663571748073703136303113295590496863048998869204048883128155893421110644949893300388201244385728037812778354634073785788895070423968915520600555536278471803277045890948570745493489279085963931934443567835104722562756998420696002105939197772019060929944025073286546069765527119199177002386316202078163401781529413951182041375995531360124595027992923013221946392237541748525528205315688627039274157826622302864043622413441173120349184307583725254199402155714860167632468860677302091278411261883883374923660667020752735021810467485229775480609661180923554011268707512493229687819705245869442123643170109524097910102849484700062245907802017440291520185480122133526949747745541501069594838576383561839161577831829144553479719341846579404590304407863156191118163350124015990061259056455950943307913170629753269996264962089193826705834044532659494421537914814717645904396803496724421862222233088017929812139337834701607702475127317815698457622224696432994752207371153778321190986530993396266891083012028386148371736173572655575088578644843031767334241594629651103311228855159188726676579333029481109456021358303185435315867841129737948081450458755349408922207391081915707820069604268303703027177955657978397271979853515362137779042510719641930016999685762831395823091609670542960451450696065327754943483593854238583499111025368731605899875478876100326002819454822836689864709123081732863274844190383309015454559755829704086474047038489811245914649080394199062259868490021076490645081601688287001492100018505902193292835288849625278267393994895479279253786243919642260064806418462453966856318796580159885390113216403212335645565170326110359200313285581551698267771980075429428481993050928921195148919886807905510623983559108874699192395985988983334339269977526191090609670829677822211321703829917003072151963747104767507616650740230221683576534083188989727415049869795838822451765515453562929820409576141242180191937709770922503539855570577356215223898619613751488103358324269737895804245449516470872945834280008362568828051122820168639166485329675026730427899589035253044775213133210012354509570162141369672825749573193643689476756077735526694332990829136416664790520003827914073331854151824184745727620755363122024198857791192357839558623385522044995889171958108185841239512383368869019184740909163087123077350963730607132131791936253043381634458399621919534401292227786056852406955609481555986744811128247508423167085363463931899630262196556903950060488321195446296937914953830867413595866649276314810466072518933606370676741057674677170767758874319249137020700048119094210710219695678250677229690000438555650337396606843748887930804756009960645478921408946524705695381874266213383074270437239658691425483074542368719614972210140241576100914280486733867447744817360178683543398786880875213237064158403897958170535429944837070813126461530887055113918681223822042461005269273396931067439586055989205351378465600903315380356736576731835901372769042392028853829436992144254191399971264425700194296846861598757256311180857191774646399805989533425146855323780370260072308032857395713634681268712146150879216043428712701187325851355820362266996402784570163946904700604541119378516552837462612910992117533497776459450270844945122700650645280276960223228795289961616717992273529480348924555233322516683518041814375426247230501619815983178278995962184327121220299559862220457937285984776238646967747989623696730758867801984134466658579488055202540694000158027961551880981250715719469948133880891067288155823438799187604485035276551143162638507462131432137834777132467071586510705855106376205700026989903526966736379326912601699851013507232555050337588702256203215086800740433512686660801151604801056913383023685206520523941862775405950411331063244014768229670667694436036371016969441526668125403449623121897898551688422410100217608336501970111365338989408076862332492414696033009237994861821391831502402516528233515490555905413748886035446280599076831091701830214435904375987663910351583542126624560804706801609590561084435395791408246785683973755631493196311479918968364329753648342155211947631730816461194777359650400719983287429302815560796862496094628942211159309738751328598931287426830062895337349799105109722796294518588942012135576626777383533007067363478303839444048035474228722939392073501735313095386630320979078397663829065074935565577664568430172579010420322948618747044752546608513327466369352283462065750938410160030434154483524999496308445133750405859690543378694072788004682905988853342859515752829531360418973903008069833675343840451215226237854871018926980121742684651373286938047688718682924028126292954489234119135000189739516289388474621289123409111284792373069240045826360451716372689814870360171372662738045510047000506896155247506048763248130332533139424404265534177205099798189248283113247358095850748445107878619830156837324422616156197503936396968403558013994672891581915702607935237912350453872491372248483122806846966410340368273006522724041301328054335829108102320953563797654065562345434331688462121750230527672198278455567105067578778271371513676457937762837801513209591138061750512815871699192675025123992157823742301477794386629215109170747536990579892745203977840681223968320199248109018194576516703472945214895223843923497671607409751596389586441029675357482481154015546629682692497052034550757811712604764304883743010250417316101775280263958063314181969959518275361571968242293038550945189265474708086548911830690829454972351293422681347371013372938792046148169326442838299731800105765295638750020281197408869116081900576662141210318084030445209155507680775975107426522510840958068548117072374304549459030618536962051115647246402007518190673165066763600439697054230808720829344395785944679012282005196631071222952003072291023513941340667625413410067197401050175527778535931466027599592408701989229244739468454797987656449952004486349682016564956576208617596777725614420957029491641478726927241497451962913397626123922928635278019538011808781314969559431626623173618397445400026062020581235886504383964573590686300707941005536249796083745899954777075525276332557730183877079306489969483061105691951516783902964614845488087929673012994383991044400285564907646254121321774822116814805242716665745744424326039203054278572285961833594908306237163184894088797695598033631481198530203945240995464660604910949479215543782750730782944288189640433069648203570819208189860773615256482715428340614156022825563146472973398351785208406920914126743773893517054742130469556049766375018473869361117337384080665408010194901544771051465756706597818668810757320079615986035265092894605464440191900878204966931532898198921676166857667292561882312035364622038759959689614518546498672496101174151630604210050751308883845649997883650158727628797066553310044656460722805244372561645180445255741159619806080178069234211679039381810440507167975206701036513836930747233151900937619634204406236942430199988485145381881045193381895560622637786975184058068051535556967549959935377553720650835533684444858965227602961998749502565252924128794562030529166008257782629208510424699145651831663366791118410538346575633219935656089280063634695302451666743490671258207017842167128074408845007544499941757056393912332509596894140355549627473992319093830561134909895158958645967479868415707961692233310260373562010855109528066048372566051545912820304767956905952213328168190003239473667240590366179984261163814814760047751683598259707020573360383198207928565659967402887366414152085652365140865719330921545970376678397825301102835123715331476754174056889394936236442678818830160928247534133784805611945772446176170311777810813738285776134064156731763315172458986439056954272641689287939721773059575001906883798173936255568305869332102179421280364709258656525865232901682195149521897391127827778988665229289866083195265773931847513644799416963967285355110023157148171227041357617548850302089499907332667552782255399620399895124535683138643164266318720325147644580440299787967253711779257548534559273095878407652079072613149760074146999244825333611762175431021846647868290547446097455859636777637228141182994895204200260236935645835894659232585367240367471190797399033182693663636480568222698706274517243362385446051101027711983195288693287591899592133479462872410725554847352794562876313727211696721673177619768819238503570152597329021474492765668949834754535472018777501923692336534578966423864983223918194567558199559259435987588548939533168020102407257602254920543561936584757409415570153514763570227183236773472942163445807759571416450958367862171647789304870539689520657051518576339039090756477845424661748019518548448992395486979761942767409137133336240988715190844132374889064174133488405053323003189041268950013628798744266274927064075572728280412696282662962893444529018510420441406105625252029912492615748284334945851742539937516295719618507122706534989398928870483508978795667475953855820876459129374252775911148220794666809968377307127195770683870723606527777932616688813389668783019470338543012481196063021461640725819861227138509229716557004886985732777917546813083332085684728580599345752757917188837732613381252256241332012341518299101436060118143660593288768038896336485731304985381637068977164179323687362929645667817440226162405017921826701792170936061782572498752109295850000212533325617878645560866764815647689280589615730372137457845116490107675586274930787256016565021997091104554648345172826911104197848766608679223397335431443210959391812796879243481408606994628891581352759868896963803843003346261636373799511316205248024519995282674945353149857572756999480850442712257206810873777847863987448400254001892219006330076705274685869842298625346239245459315957355308474272594067729501802178558031418144411179630085015988955662416392235491192910248262890615775772194645014866430798792948500159303589939762959979134991405498859819725120083100926234929667365400698879683542612752794779163933885586314365339510142225255725913983616661188104980401319404971872940576303290817722281511532604164035846317004822141976406723903797369066376541912399812940836538168126009210036559175745624266822282925685269503458473130652450392557206842887262099106353206904467733417595442854109858424370406802514501016935481143584340246110241579166580407629524708904548488518079327426233580792027183128497477245267481221546689774115139728766967442086335949532659022186899922878058964788419268524121125579562051834555288335214415772012231323892754342460073734141279742597539996232538196237662508169075998602615569153619292904653004354183827496113243223302384126543461926915633354214640330340249078864528017242272425550209578905035593544660268193546664340609084125997218252796837220458569362295857082618003652805461205388092884804035042806649973458575591726200890583045991554067903301232520321858729392441416870006946068699291076339308650478831866422568348010521619990690156822508798488240017976247269156007822187005514309735676172351436096776777598775355735603915723542873296013288720576325075368252819468661627479632674113446329830033868154860820822401662679240929591084858959328968326619113729281583316168731578450401494319175575446624802605382917575703439288782037542749333004425225953538628697767244313517024499914896964982065376715396190730679515358508661797852348290359198820459068947443101254857138382710287413868678386908791512372183319413934839589507616481832903278056150196421757466301812524928912153221963808629349805995190269532875197751643144829877340010289224465292546959268037999500798314283021555285554610431978769696160743853461932591650196806451146471911643549385007979602428616620489793968016625521524177533042419367117265891743108721496333561760539661690579245143088897525496408850287190902193565988649316591681577319361571806509950018063562333610726771224742801420192240577231176500238366566005713328503223967909266943124774536549324355410569177944310788294409773141720148133488288464853394290974649297755076292665644432930348375465395121002991085289764233956868361914892266411246911978948551438104550394295200628343007599949485155927279584011913740098531899410599790273391366369835790242344758642957312377414748786675431873036023953210897151830236226220583292394806170506238879053834539040251793925131542290033368095327588262643776660536579190187501909313688289472291865770160257657070356375086097680747569698882827400781257247475647223979648676775233546113142890131842827766224573360954973790703531409608283923580617686338903598202395008965738576505019388877806156446747693359153828200491785741720802592940385961233718071743651249521280716092260649899772838352827677960522307908552748440020634503747481724768951352324858408719464957977526595254858828037127251040270687027165315830762473153101316288218256446149299611841893504521346141247056779543948559552357209661512297887834849822522095708572658906871472581905696295858517857458859104853794514581847985668690723004453941831334951866567119705542915175064367587069382975300207167673786355765377904736073771889477428158937249626430376361429797819148723680190054491196445803335282178282582998577021431032900543875845862098786897389428349953967565202227045095199845510922999527129087472710006760415399766772811895651500456406188871985416496616425766887346250955398302398908782144706362769207633378454648889413851656803535599756412646856743653062300099227533557046592104895873547794490715128330833338948541268173374848521441861138384563796863366813958330020930361720263175215732087334468220422442744687801033227033817789526692574482977797384296621588643432826436993937492232444792780258548570975102838127791617768759481601221349232615093094511755964645954315408033253335178216447133663159156602618149997361716081432168817920598401448049009391413654844094221131397504863751315080330878788174683131967140221374144104285019143811730565936712827325214617965868050867506159326225596811396665694117071671247425035342877211818531270238084822063288092706944473787344515173161388344520205563967003947979730458128365567789865905601111372952571768084420539808751286544011471136507380923024996112702763422114004539278053656543456934172725503432801402480576991665872889389268615730681515451258351203394543279156979797501287464445610268121243797553675643439866531913164460828641421287857079832966286226862438619702497802661858262745549467242930375408474002957429823698692062667119898656837390796162538133642792762087547688910955148918340789804832766208788321632864840986341308704202108434100685001886687326976230482053128210051108558344211061067497825072447579983339039265063516464998468349367343263961939128150546360062345837805161766529863622160836479604354852436950336915402000630931032688069149933095245196416189121286195607798150754641894007630334903962906147401164981671774756444378739373030624772321557300127320092750110203641328612346332315044093789031855222886473432994253920592563384269807677816464385754788526440911105989042561360424860196561853721645109959770843277844450966812360647574115067085331991174139608773570029984253448086070101272958606366117857836568238360652772877065106803665622220773861234333568393471472584420091070141220920605717582592814235008078243935548280385061035841247175938129155052939731990495772326599382648972629101329381879233069981917503865732798703707774130640313837046361014190218790770896062619350514792158772342329108579628318291600604831044891409094284620341473688169993592751546410374644608531968617052547908192633415743532047053046714870754175311586828666678346238011874330161313859196500148315898233636555793824907105207211122064087721999207505119826498494938389805210309483139277135377269463678502935034817559221022418540663885065118448534707978483567648199298352388975262161369213697402316463850205299521378875316183030170714526863776772414998536822569707997982191633853245473860068683580361087516922200302060049573245758404895189049575664966625998314400266720541632172353328536994995042506755456335091637185352603306253638696668364682635557046232599099340363818569418958727544706612023613587923290093209192150348154367325794710668552544867458919183719377066833760993583670474253062251984808723353962601449933245644392642519846475972017904215093986539201758554242224559604983103359777363440115684478266130251631646453168103636694722036601792727586413464279536741836765029135229674046946724949330632317566469423780182987748775931975704649217377306692487720010584582606932348528897579835685601094031443739437964680291404674268641694640275378165166348449933563470082075905454462801890476364999346329723186792160852482327772024456594232749870519512349596951577416597299333480591401913516211261997465285151476619027154296515446605493758068490488882383740119557945929391267506004146823204883985283475551984033365193512227558129891297777597557879372694291526947706028787115814499021599474879613802448203052854841807791220722281094946471034428088514834030339059533010038605268128176200949228620314065514061945995234297816352263985000386103360352621283734533523506259923165153061223345223359187006034590870223972362185585004265229923813015208112027158357683132559995293515894468974487195776716634687745673850162579736951863375722037007339747389636153504438454819867587463188492266032651322362106093741431324453171350390680658663104306995906668843945873599680484174465206146975756611647600373205035600403903496017631557561371874194064657813655239462068471275282487199052073072923473311194925581806281522253384734411693716517609561363320034239414916382628683332038676650054432213374467749271705746810517929287565418100105221947166885805249320781317329942041348593429621430080256879612672829559207675824665547972672827716576531515002183392906620937468507086216043967632148692517596090758228186396758848578513415491877897687946353591885383414766029102400258108073416059515481865696827836068466929691537209202320280395943176785624383065555384916874047154532676533294160925687065204212288644918489171660831859260575185423346157635549784077651396781255978245332125382138103534902322463739157192036816317150643191965328313246815336281891820114984951839111674752154552711999299855312943888076305919958085346186929913726627667279475094544757518642758388024480748836887436181287338965512078682536449172423182379841465428924174468842523029633906960501242352771022320921937307761823857676519787946462711572862878353208853585177041519662678523086029554145118028131698332211472644168984703638313794754318906061554793089164464277387352554560856879245438162918661033761084246767385373724384375034621960283832217487079803132411901312689798579030944350778861105471706578295836261640094882928839961171751611362683605716939936890644017511887085731882902494857928065675359764944658396967750204022365120863749307709833623110724997059426300429938852344209535059669970397807248654209793548990221020866011579647193259250729011135512403638658569609772909101727045220585005229124969417321245039301209457863649732727821291737836284776301757415594799368106281663081456669788169123743653110361108388304588393359868307098551709201372716214214008316747713009431404572461977461239052190939927654948033203667566673300976678057847047511593541775693917613082580568621451996192750600679435657308243444904276518345049917373063137558421211420813536704962980758224077965205202009003426135852240238785527808959988328852993920213473213874599863712551818579734802959451463807731418290362119058185932503595433491603815923478891348430927352352746578105298338025819345280280186692415203151175065281309221140021455321455636296103907680244776896360147261911304394248647716859328209765127930364580327774805561725676712857770484675483625432934724305739533976458511373032520683290719458322352117845127767591922998783851196049490335288754778856459067832940287235967562805147488343822605973487026813145419197033483544430240597939993996304161035227668646541987880580599461071046851346385266953414603333946386007797337418471425340351589633115685646751197443746390615798822563287939706751871488839704981235098841519301249953919525021569520040129759805053166375869316282854480634004876127747364174359611521456494146565295686783031514845406112273277452752272010245171453780230127201314016200307372028207918189925520660612024175880943437666916505443306427521859352630767667427393214966000124482953723420213402015596663971891487617048549243028635507178589554430509863175484424444016951651304757101946801549660633590887167796411105535482294344102762127875895648024083602722173766334275807082785122356616035941004025198041581510587270501611913793905748208235039304624036158129828452207035051271623451231456522827303912972535762786523641897176335122112930408374960344437908809712712776006767159588788043914941209025087825633269459526369904014302991105859790523404313547336098512258255736488653802972238910767075596398334235779878910087994990667410414822273517795463537938335176891423705054954247427771993150930886683238105807939041455326256455468715853044907530504905755906900368396408302452961447330204378270761305951447555568887560386993417719268614889540538697644060639357030484326373121317253414802497546446570818534273694704591464397598214601538242784117114995033578517958656521754662883668777957110227154144511295112655854394413419109133061993604719316756665605489355833393530126799811714980334961554630168900717894784441122626148649085669425722195695291357924283539769111036592343145651632218608760909405141385839142597021500962885329020401098951825548215163025356576034482386356516760559691707946993528211678393507698804902442261833703434147779437909266601211312508317609087577424888383270080058586772550712896960531629984211868235634315227254144071148792405320405442541741992189295255508185169670738499740415769686855632295925408579253447873279669210705999656610100307525335273891496438721110123684414945251645650658052756440162711199351330954867928621313302447988455560127652176056943666897709345231219332556687532002672758932792817540741115216457808324590405588478401981357047001084432389875802888566407735344306300728553356779585498985579575611707046983958680163972247490334846820934646381226740886290277175605739314996884063109598194236543053846697905187486399667910568249564130044337447755404932286363120475126182196267274676446046840547253011803515481550053200000366937771926581202533696091058304935178483026678600914430114785165763292373794815134645676880068070470557494441407885895981174659977190882663212011513407601365666443821004534301521590161702853816312439995107834270662485515480111612652631348145251455285104394258628287459311267556708807802038268945799770098945254255821918536996131056724411204733015580069471384131547933997355023187709427401447028853064220310818614194534469510179299841500852228610225047730557730450676667588218130377489900302203648734433806688427887448532651649508827952878454772017429127434320038316967578625325897695704751532293961600358778826425362103007153198489846892199214798306224112790842710349549943753999997364399587465373149030649061728865527312351586293056964001579975733169567231771113805075218025939044193820267987316734866059937494330232067059090963027628372185178128696875933920201630345366462500079627949538788079885182053688014093735250357672526073212345683926625314743671515534333914774753185717138019714515577908197448733133059768352405523151916847555867754062200123970467714995871560976723002093289360564855187801262860682743207817930699941365192548745827635583307850910131421303845104681670147466336828770335756401571475938523914253789102961590055780491067549560377317133769501344386645617485029124960271530582064027642052996919103188642958578540324308499750039553729122163709412156229801896190996398272810037010458330416745972082435252069368067853034593998471051127648389332886318769604561788869263317509729199617034628224830817973064816783589788003857935562577691263701327468364862397785115529567942615804333136787989074161925869371652030896920668673230369086207187437553694187356726352102080658167184231225852918035331824248622807205238418991497931136666126199393536361704049807054965921711118911438146643296111238480807894658515268209545861948192018637278798728210503725076586170815693342858887654996096281833524148677977150211949336654934186592777338978837808329198337463256832188893803193103169376473849210373173129327994696605947703574521133825636490498065330985764140514135321260808401556876616878901225779354444185857687230647510605008195409216493172914460790846241093212879871201049562710670945269827427566576028094519082266290670527523882533346499995519444397216385641610811119134068345578960021782891885813877329248797371843868770432285239109592241013571214117308325423500126191821636455704429457278693463528466181477932669123129443826931936960837275450493382120515394474531705746074025659190225882032562448770480468658619243246359338256885257853410720930975252624489960285970463931804840372647903085767770561392560768283617299136709904964009895549656673768850441651756949609660196535396528793313347082454639813429205000601261627151650628541654712048019717555353267714801921335931791354563668455118935509043600767977396278741082451369282804998531717330328126379236797967746750323119171284081692509651791943664683642881340480644173142716107496733685986886062640517799374879781225299895340028748783315767729462763166368913188763700833725285220389570426392947148095390729214420330551522013886810789030058553853026608963323109421081464439927934184008580432837494697509845310444815399371321479834881250376474289431099218612651658348227247270372272711035230733375152693265990218169441808910967357533456855764493357518694340334324037165786811214590459249819188500530236009174442159779432481689186748850015676147751548724431327535283860279372850770293482711945070567784500267968939730182670018200204493034288002940393883874023407677647260144559695939618075425605444252289869875756863313388774940191496394316402728635698729356799122557535339274642955961545749085049196480588789266073097789958899903838251452594753520676165077374243494295133278409308220845639420979381241928900339500120457714269265186163783308743966988869336371003321003521690947561298624374251193961573215818955446258626751057809096753216062002790012552149988291378178845789615008333049920557731640792436463224332746242221805519101298039357747126221228799949226342087914501262376429602938635827894702395965392697650487564442435996121057112662463157618039001741401549153887533173554571336551637974592866219372429540334189387501754395577666936173635896460094335928996704245459334930893953690285178111269521177710156242168920159806701910955268113259519952573653501992662421171069782091132326604594916474683795485152508457869909716652905479671099359567069388068943100357112600390447106880311348583493566740724479212740775545972646112289558915583499012469155114640553110845208764189374525718826791953938936547853854770334359612722313981827801703555022147981130430904157119843952811825714129290098345389289900390837193395184462040075266181888146180122334810271406627103222303234496434913019357222118826268237691446032549112362849071727263835364819485328550128321573548065214203877032589165883468463299944097238469512441216616122363167505117317119585556572496601875335388593241714373032252242087201072896751273147237876479468747163412156525083345314471688984868158915883618258278020466336751354544794396828252782653379798145890330125256598214327852721762015066491802920781677442387816316428036764968809005044415371617753566403164548683674777781550112483045936319794427114225356989058398181249228771875538637329260853118388115916751681256057062545785829370693252987164658887731863939062756188395297914248086694693678406812551588273925774963770126767997263908266240847983675661248129071081254852473907409833810144265508300055093816756356722526360708962213069097195153150903372235393693348288950731944055962300559889817633099919174059330019016789699628855695601420000778851910263890797455455658060081135438030616944704352282338180264411394217168944459709130755027931452171067029068295350521779811008008091504499783607357198421760923359158129239713570035658004746776149660604499753515652677688349891216342957472001040713573944836893543299184875842415579441098089740799025362580604369965242398039763546708300070719463915486185533138107202576813258146233457279555450499547287322663478151020588955683459789895065676651523400587638231144905529457532318519643610415054280030283550986602033222565628947093461551685624763123300427983080833886405128188325377492128899033604997211747254079734914427535991969811531848769281692031980529185880253990481910937540695590542070986507563015758531289302488756690854283597455689207057102825723469296950454966446740498086715310776945375654331028244144337957144613352608728617707332677725179247970195310428789170511564117269298691634009580216627660162417576049159334167319159781459318555940492312073299468302231337709351174147743334568316133676626676259674509297829795403752520726294657668788228790272544893063646751131185982610091515892498495665176669447607506198880991948788209678745733485983465638236883313325071799277723384601891679762498159148262115020134938093983415115484634700138043230755344435668103374970079876716312854828399907708334800812227754782506381815450472706462240767875846454672812672116900086521851902798454852338258344986923489345452894713874461002830373680927743593697959417165563594109587442567015788065707400624320240189778046763087237103233875848478819622267232411587141371405112853175807272219768371537874398371042245271450694054213967393152369656449162673429912526344246098134492857078393317536002605362559139402511452329579469185206025160134843213150031450072577125756484330639176341274506285415564122276815749587961053936672361905698752224925950201030690595107746929075601470933414861567841675955225370895019517226734503958175451279301866503623600087618650587818410334234967961840276421278107840652316732437237640775470051427669744018491579893720746236361707017687970075819202920580799691199925915394981910096884037070434750643013574017965161338161261979185227185024007187218372072385209986378447901315975456541662978793309979581506072864236075741851467471271422523047118060490858485441375245580190960912762267408992984749091879136429519275978026507566682998762104705198154151347195182825315220413425794600237030064614950280749533882097748046850129097751521504447069301832254423368858394419718377049458362845485553305815454053589834776800224527426876967600053802187095392070148350626792939915092845551546711266325675379569726153532359452685140548473783666432251347329311329050357623980221322832378462996107764654671900041460311831175378176271841893908741878992176190940578752747608002815899451570922497451736227903474419610895351875228928065041148986715943609402347379032660399786525292574654367785039246291498722232755580270539710438521380765699146091447957835536538335227222361098209494085836317117132647086010977754578274177926732364892176901737106920961554232150865254682625370167697556910067205855006129707066174988655371827266813079960052720388943068739346269074244341142719853013521150368602095190308766784301744804042032876866467884232276927007928188113264316151584814725113251870469270093000090015272278211144868297859942560399738710994305635139873136584573908921742955399950551323453825648126263046614823366061364283379735056119334016128182368260675804067156431517785281290227993600248252471596600687348474111853960777705406865068862256935448502606057191739878143826199102878912000284617794423481310146428606682061746488093995975860132800025940727737974036379806309028749755642653930371127624694683161949145068373382609863911916942278548899936001420589112136498395811484671106681633516775602948866030718787012464876233647317880914377163126695208676349165523439430663002283232140005268320072712721678711651871959767922323917059713899533518470653555877265390893389876661279509768596714395444503729698601279327424041175444715824403748106636766486940961089016448932307170419347763981831013366763940922626512708188069775724122592197382541167254418482778488602377293367638092430014034824301837152544573565222940404631743955880941769464186117451402880051220928127052009792174828827632841110576280532878799794543920512140843921066152981624432005172251549894721690064647286087563431883805508629786821415602541296003860369923687626141512581025439328719705303726742939751936755483706671568429441923307494591895020664196034403720656312117560562445698095584994323650806056106958361604279997608938052822164830205974966236257944516550114566708071446634447298108110862279577163260166258217488622218996999906566172224856571338384529702715471535341824494677054439161278593258104889101094949612662884510546553321897140404770406192654711470350287994512801076253550002288781763648328501074775472776534724439428608029628120429670953668255350946265561546359647010333828628359664774307564227376751370269953711340659952100001293958737686581826876550433150913415704077487020064229867680203697233540216994384378666196549097743306882222925248915507377618784430178385414191504840578617394110210971423227100598954801698525911760671243777417670758711474891361583836395170672643042692064707544797387535335764135482140908077381641548823652483293200353065246494471775166328310013365452223458240461555117507871523009272095530263270487065490858734914092077269927341319473139961415033685947572375142632286486609787973876225640080887092035134562637588579255318257153990602080360869571178524927729167410514841005909041244711143311792079208420963324075663835826237847561184339547686532317022430596109971295106035103469732501752704671690056746289808358825750768036504322838304529441280348874065167405012673383917549719895276366921535967489649746061122106298198394618220193881241355691092711798523645867305039936359905096042086710215815501202929963474525256965117806463452640930882993506498772467899627120152044565023246858542744293347373436616629794263186098085304299114796576024303401318554940590651835295536032205791465347528559348180655130391918438490806469243682626200281666768445939636360743934015660843043936531454315793385278676316278089010803345562700693099590451114771395649509057948804161559683204220064855863140854165005963491993713138913271559877884062816104109692017845889054909099731407025434197523241346274359611248861954160169607089817336133032261902844861671808922029677631976547203605455143687798827346119272511390068145890340163177622334354351138942485046733084501723864213736005465495855424830420249020811028182097412464042711723127686192668084816336291002544566621190815049348585179550682768304222132790288159117076317407572633705069209145473483430526598582364499519557824812439914064424169941063129531658324169304638078715839268689942032108591086778658163502242111443908978525542248921401252520724274803047093098820748670578521193311537137052205648025461429931523842630293544462926655776121073771127819597893165372679460731497403437708034756035253385002743580164001866294847188522570633668510676677059120631113400418061749692099912111769013847400348262241046958027910514064249741127807514968140819444819792743248063156977697765549248987822429102650053822824994106714339045260342332007429936303014534523015838663982374938141480444662033995144979038408686178704496269093975271374870779396143696340507476102074163061585521138943296337754834605111310769029739318921939567768385608665998832002831727285993854198242173191281725732298618027828513213940823890920824318860337327099191495030511834556013689342683070331651468455690022640940631468489120310014771510611288678450048762555065305053184013606069008502546057993918099462017461431356285475028245629530300767865350724206717578150036611919909289945805799849041389206485591849522822839688591371702888170972829188415601522048257281268128164688908215755356959225406482991195943596718968654931918960668189364461641632155887262014151496434044456280251522799113926766975499060400709701806600587399616451090178347846697091929263425349734496553543710917739939342166438330896888363081405752543567033426439194061165226807125358495299364898996210660242032736504254440865335688159228642492029953421084263794177669596922931555617707490036953833277726657984956140745173629303370818996689311699683256114399944836812237755632205052312721158625825984016073348127118381872827144276324083733273455732908414313935018713371186735657062642768895646355556039651161194432806277050284856486568871257416313023183147748251508358830558176317023920704437884732976898272467342525621997547322643886273992844263970694876587217897623964029711633473715010140167663461499623366302986858083044384713673561775894573128602590475506468185190987757866723523259743344402215743370450025799731402854735541722466804556828078201965610117228343148544152598831114577882527659280278344424314671497916013653285919774256440682994497493570515779223675415804385832691465875762566260791582355575542951626708571348198251321378316355707620801330500870165135795162379642901021253825075544839433367459756728938570815790095027294362664106072418048551847702149880971279892231059561691872012933853919382191882593591835562600430561165381912555913870801019944980661931662805657909548695532763801841784488070622157807913797543373170848079159049048731538210846570105746067451595633599225330210080957955385370181436904044886541263854029936616135409667206507632983661191435928034397127028768365830267956069051312346087055425094609140155676736691170515115950696037885000410415965020334385917421268276431250107216909813000971420827352674102516311545578233796876968760108933002728792965794433147031976303769186496439390025444001623105145233510789638667607076138113402367531288994952646812677500559382833117015888278106532744783970033999686859789143891268377466780957572638514103168186242307499869860845743213632564842027237192351018482063628413285493029338522569059632604925893074542758080844859487926700674021204617644948396137561108005361485787041807297772215657861578913804057942320979845061485830427822804887244993642471700546150273631091213902872560473100326573909954670688975185076046387275663049169592280373701157747401615091323463582641062791682657882906013679126949235619348168046650653080410833237827793238425906295422593993707908939704253300618402588076590847431691272371182247846377261567822084612161234583500863378317941739450098864628131853438155222924881077072657306535244385880622929708232385786849852114610845201317500680817316591517911052678841891561438904798911022681177412999401015339165154024573449155351568230295148350493139479206327137808609549194054461697344447061466881136424934102266574301526376043419282623599978642313199228777117546793488479168956283310365020817323655751005820987488005129601200383801758023536208107568310488382785469397538836674170379688446339439380826365068303887713881936613038787245274776635415938357837292044640016148152562512030560806005691428552915367992355381105685739542210660530844786930639891024971357959218197895576377275723453621602794788218114236537850111853479874779309334378183027178811807124104653009644161497280537963353307105880061354691715193220035000475786994474844297704267666984795127708082240587884225234796263774294257848429324970017421823459683397109957043985898433842722914999790624551403846748693856273485903788023238090074185841631099549708853496278926918739586529455741020982950366236932719804423161551628322054018350234052538068091987653336322291126352244450338239858847877547688088115926401107981164980695654001308299894233002314963151515936621056505007781493557252664065764301501788789387661700791232386012059372023399940521107571579438275769012210457480436879631172504237798131987682202001306706499232210774659295780564997519849868831598145870713761535160356967436046052889774660346495429559839020530613057256562321177338208078366730527053425215600018439758199801515905496916863266611491470701526048973914789545001329600753152213903932781904082163604872217369305331918872723396410146309842371862761118976461499781380157972189176533483725012063287758789468170616650042507382550562326285217465480500045978226922330148859364160359660345575435049844968080409196012621853417950745630287126143185286531230313091160921645304375347163894521738123743705260906134318098429388315895577217092793487886668165897166681331790655005810362151795614840186112224395406210717544511685326763264127398827264022927810130155889046148131184235440321256335562906736970422125920421172783587192639515071135774404767928323987844041763219714096302672057810187471953633077338419675395620186798166584596282350790551227183992895688216843958571145843278622933207251995787541408171962771331636380834489766227965040332370521661122036054281267377338005442368147218985820295974166127574607985107598959200251489766645013440257631760889817967029126588236517527013817534889300811153137405887727132421809814499176125524089545153128402227505636019529764026100511645929656644355061477977446681617101264806592125095577070354366448622209510672016308461381288520508297273035481124058206723451261137281201195814234115971783679967304489061845787052364131174436880414470312224070695364637918551661574645554401509755731114492597134272333907919581725888519482586456222369549123167458416089317794700841228579668482295320053454443290434010994393144481175493290029271321997583306462294703187761227954750805416867841853130541587534342289372694981015490197402029197343327973739965806160000785071094716611647336868456727029279045825607037364394794164336691344395050616207846386908448147791594845994774204371108147710235855713952380927236529096257082262436769592344442079049041103601403223314654117363628326389955560218465804911379122620440065225164698577946258323604487491707435942874003498097385010299377424353439614698536444242486401075746451842811488518697483325185692207745197788330058147885116852554366912154589775747564257081239525671108347510401363153724376896711574057459995698706526535596538081354925052727752132953151372276923214707625907489813627100137279778070770847687533520784102666031852199034969264658040851067972146289168113837330693021596542942718834608385614198033701420370314937374996119139513934320788293627348981493080167211054793807119968555061156124270993988591023129415718003918255863502313823781009093531008160301665793685491737477676665086570910777143684805881131452023694016564673781928529967254670350321246357571583411754813010717687531315618121962143405489546085915062139972878273768971615980991485401141564963557140859101527615352793531832818121207240445477066153356483810887526257757222935547597331255594158218400246273854800846307586655664580849625671352604656870587363871850954238419006149733795453517951966511762947580297055965530179087409712951346584961334581043977639153917549664312053627933698316805279884661220983580419871539569750011295511848653847528547554376486154755987363179917378450094399212531618856930822271332072703633795305334887578802435191563455793369984772160227624009393797123277049152110841810439328767929327879275158958317138487687282197475513995655195914801715787867930638592283509340703853221226738286265879495073661107980982416738185541920225135348770449897276071286391009342932167237846844632885767344122637406019304738423088818307772926814569302172593098562810959232839976212559635312404173260748688211369833118886265734727109860920522351307529586289964284974577131388888366443028280849095502031075402773308318298694242605917679229642787117948811876893762330731818758703858616542482964376228607413185521072059073940424334702084818454776275249068926617413587699536807017812515765342204764952456676415726951207005642129808446797563497899055986537524561381750278956466215967166099752060107679453783651496342069946392870277270069359393682609629340658404482648540228554354462903626508526031660682506472206295399059583600719583721270145393150591530051949241622593171714396577504080855225371076269854342352926931267799127489816072914941795066562041286635601093326024501388602004950551270001994201594503937885048037497511823878573753517442984814190245053722814024074400879169790997579187942730878134149988266141843751420877722592469328290059445316179445468834831928062384947038974147171833161261205642194482126985775442734242057083252483317516589973507186560072567712588296720327217668180025026666630614617822543491951177809255529634880574787351675121979526205059603084961521719092279954236158133947025698050045320896666821902418174059465925060267923231946323826234720745150843864023473406057372444709454881624857298371014277950514033413268183605237494123096632250191767645214277128056715704473396079191024846511896751994220277418743124593658450826677050953773392340381138584677674345137341576865053056785787685506339762487280185971012058235838710591505423135627074873075677921119073661462594072282351471570171780038757682433228446168322484041028055057513158569489743740559120951576982447731930929838579567988977503920058775466992058963360030993962524929148997405551805928824074934454039502633907018476747599835626271367098905964626799445636306504247161375946057601008284240299288659133890676801018103375361959126160020351732932763527341539954334562735082489184042178047397976780572149457333897150820129979641140876098518809022639045370350840178009595594014701852595332789395026347214303158288536525824262933029036978949362865844171802981151506815906609430286527597690721628925895460020732972839802761192088594661549926026776854619432540065411148974041866006030434504155232092530931238310441849400415053726163660396276134765685276653837778045218236175544462570018837324710262643706943431532025062217646410983148345583487568091350816502750981021981549127979863495406350381524078156507831294570288814785090987675393090409592118344314921654571251238819380409312468069047601859312922232739160656213063182545026844164525860984555006354262152751029327349325139153664080563299332799449452629060636652356718195276659603790882659497619436816026160206804654027193917837061832315206967730647522510379447454032170682048509244786359832242942044969379971734766073873873886428627812083595069611914530435986494717934724081355359113621731856242549097497200102921487541045553024960043616451642032733800055168203799179046350288823838511245610533912166022867314032829681825336777126177881227388357969265682181133219975845564241414939372062577704511432284976485994500644327194846100798644275979850258994840883070135288078663354638970931528371199680418181865819000151771144499601896807393053859248500501266008320992923896257732860506277932036699465432051623913266423936694500494833784242276519960359972726474805691736541848406509023853830698146885832839215586669764309869505491339883353012569631206068881200248664694244190890298974868537022037209832688506518479637976207907145813087872821045253941758894369743861403146102529962705587370187509317719620043213917016077919804102689569104972437596432015460320854133996803928122046651302132457044076398903037217351991814912446947336704683789049453264300966325106009439195781519687990679615357572066854855538164616797321026216521616303472293314145522107750718684026993863103412290079356317727031310771497207513448723459787575092778915274064495848986193944296473926590528227875012297394779799183585618940153928983076812996022107356590006146957627844087374510892566239585113018475040808513400147610665979495409954140545004679524110985510312679139652129331290223936470983380204165979756463267064791574846132864295855518886049273100025688370469851901223520702205545849099949815495840178660621921935560898882197002941833477201105189713265266473738872815427541826891050652453287275377461070780954725901637786099480169883882003771082418801175782395993723541402380679362242216823926578301475461037805467796678100592166477911012900391801452601851272543436626959346224716475540690383572973969488174595836331027176060096049160238228935472098685352200303326067280230784414602451498600554412740606188816695248432454768888518579783206661417946506063746904988742534163010302393513587651669844499861714696938412951724800977037449302256132450639507529219814489619655179357750249615622125834263647668581896810167037090222711007778911913914868821441959135366402348803476356566613526532882569635490483376299146729227758370009651313483310353617211365303717448838029102615609388881456275369808622601202328715163480784109733535238314402525603804051266083467067695540036931572540545622227322304776114681349246161750080840715005466815058941676259629944959628505406421554019618124830708575637803749225715971938722514486412857076370092269147758514329367658901862312641128913042410611097348937749247471345902930986071667824743163649740932776769347227470446927296842238525486112049115513978202714060408767911231974952433464146448590963898646460397884824465857573908937536092132787222453184200222605028856539251686554723133792816864326189106688889000039919172869256973916400621049898778782554379586065098138829972582829831217689436749338414321096066394618453425153656529951266241521244768724152951154896410538829365886533505788169707044532818992291858357383139531753877430737010738814257169889776540937953024831724084002844952072965934123737864886579255819887461826290920294360888574950071997183085890421347038993420776698023458060181715738042966741879393125436686202438736902590652999036785768449670060713274935632501011455544883949975978634662025690755163330579320678845871687677031353612006214249313520609573594455997302891247915652766071686235452292331173517341300683541400512588412108175880576394139593123545631446565254700830778214100233768583408151823393749179248167461178926773894909697272969350907692459173573681272351248844536596400325326667216087490617928987148886615596672137244510283018270509690398925921373621855430561879457051263579460821166113487391731049384098485275477987524223558256956855418916262019255481405085905244518743900971647262552397104735448728893270383346737533251838304690928862690328853484370533499947966620328622528326687113402143898547693443483190632710339571342372146636733065555191315091157136275403326130874908262644301477660106851565890088687477022932712069666657286145130453946076306095438970806086721224927081599810104402617142584696748985370135228802823816580794152819743378655341155260340953311133071745689721733614590211083102989441016818009725947401344779887240025182308098641713715297216582324049904993856241800181762344394651186188136677529885782934703230772420690189690148220529857089317405701039065256795237656596377595905974304407455457316403827154191044995075024612559930865133499285316388969138438959137658851730316659497344986373075522807953506656430410632551407195375498734207727566229472613943892537936233023991268035806822568502349844867669485191392374355114186449694162630992802545415288417988442468731350560220125076664469164794278429501715725825982467683735507553509603319432089358901999110511698873339639620868897653168661129842421921930855139684594562271942301330995751209159075126941220138518006291712126991905339606465088744438000171643861846254461807658328610968554742535515138617362245480256305895403859413812716199158812623305196232704079538685149426222851184167631081201882381691214295095025173254040370623709268958550738219527626571237997001264207238123249166810367570535357942437579767912746036687908406694608198234785730073920682284031334292262449846590680959805683057857746708239806238088954002802429652052336042762670330073579652279581886656406195087499296806270259670097881723819677097411332942284913758926684767962974417425585683724029257896048376398836322821706182905718363327411783032901805535963929626464615847643542847216563084983545201128844300466696245579984097507898400045595140652171155782543024612894995726237727725566876929372767629005102563834191680281837164083944553840671252773918315919065107606652278211274789010412327110125589773476163867211234920351918527369608948348581533797061793747615012035542325249450595129557250042581611440622700812956545595357264794825627425687891156062947854328210821806304801557055216217964871734802550380547000072882364966075193738877953062232291358525819238938259047791722215811367522747900122074819680040416557675957062536545704864817038071072522491196210447273220899417272490358254859951030191458790907365176656356950066122595971673517208174711991943073678603113069117370421352880600288208245832641469105433922821511929422380711704737763059581993260599984823937977365696663863033450381285240886881266854659162676466312073799360031921205942322877997716259897840450902348483147630327386850386874137879461989800234888347401085243135773977715232823763381842217063512380004217964779289362719212724210795765408802636791085184775478255789876511556542429718147600474908232799212892749276629804052648126739386653139772016904524119486985519885349937277307121412192328632663932807418705814725349944196503256287588781870374537685817463191661699560678919928132961277197932845530447447620060926495025396269541168131674573431724834928228838557217641878618933706358167266464251289078467900864184266920697460909356474158017272934539634658479642592034311233750774207231337327833082241148877591518135357169983009483159820177835365416335132564522341312821072197381016466497873280545112009381266843545585611339889452779708124605117254847388712516807411602839153024188731692544952644468674951254017924290580230937281312039704869789800056019790024843254258819118670339574338544404111241244914366775128279148233320688840582293392871908925933530040755432307041415367084264722509212215731905301745679339597695331387681625555315304991601566445918444717935497444437581207561624960445776175792492150452479198653487528112648981726154024089690973038021298587469867537810176435527670100841413101431764792771902284014895205238680990667807513123553299153251214167507359533119469303695514907404208714194032532379020449459846083555422840441217323455541657319964504717970142682980733065806426472568142420015703437860301196768730509354559724418523048110996057795471110603969147876086772886079235674860857008342747828906822447599245016378679822517957704945046022817808835573444569042850509651678509615232389660123462979142828034971967822247484358748089961934315080393119051962773606906375465465178024845138752980034566605548264585131820251544938841027645191531811146485167536304555407684665583480293801567342004773562037750334678118724789429186269918122824590823388274351479230885588982197551784461821039018865446585574169473259594949341771613360949114229710656562103136592593320927421313770366196370296399411548301701703429080267194466570400491823912019581148781211693647312966878661092853788712911649151094693976832574414368363519453459109021973556986022870885099608082325762711725353145114444121690600516811720863522849740412988727875015316039973650113782135612580307002610428133013159591179552048285555573183012151303307107413310137094775925216373059111626823162296000106989523368453269307148503019707575714694596065978699226049675049310644504074333915498063046598466345981625994605705724021841745453489506051195769415901924751695709671744897971815535289938378333177853192630696600929864527959173758316198000884257722300667871623601112205837750797734599151517723965739207891277865943770442028184582686620220736895979841564452686363967245341350499194933492705670053352855723786115957345246240765582458486775688484168374884382623552447207193443570786681503618841392740192843608098457289667720217972476003493372450864923483986088010021253490434143538813418329544281667970878762396576653737706271737292476623541364918938277457168743322952353267671437186838315065932197705549966493345394379030759216463413800811826960449686834228550543309550506564765393767704727585690357465555273649218138658234549844784426787358237378679298797829414277113687975530380293362893579186278385339550033963816448080529620686753538818428347697414306007378055945208962198899463870885144607387310861641711448723784002831753744155340138952003440697324829453813545597516420055603863361878873334655133968876353453669522604400865870172235667008076269191000103945534471473382742765808688034202208719657164956228964790885162665751619154816972278201704250055342350212987924445221344345123631046137958312647983376920534269426722494300158859941832436130847354689356333070994035912834916499665998192787854902513778670161407201435330255949967729494469992279588407292192160356265479581190434732551701170707907386380853379511122285150461501207666361561879102051488841836793452217347105618791864415077543364596212971782186473331818577969909281724111269515433186813041191764526028920605086821362202605537957566922275154624572024206311350155722972155436125365292211926279145887690359553587226516875840523951918893074294889786728090854811190531366883591664341463982576698876844161080314978381265119945833994467955415314015409392304848895491182314964049890814254321707242034288199653354587913203925218170845009109844840757796000960025073017305270417374407451247414383526337194573025983982887762871389305195482858650776063417639600458149422346045392478175986369988095561612531631120888229395578389027967592078105449067113937346202944985930802276037923047058269555115371469230300481857094224408985475602388440582585177467946244067210148519783233099008133337039292378181608050303903513930625141415193916357992352091839571366071315820603372467613652297317697156811184463378141992818759064522960539579203897914646569678050126324417690589256206126740095537489344972423014767960275297030089618767082748826971516303090097967840423522705510459511586670810756308921135050651266800286236952728760968154594721827156364389008209239607646810532540914596331695742903822896463257977897894625991399488952124545843585803249114280938492396096461752058219093859296914449719130906506824565709137170886834573609926226097418023769207391774703708487326816865717920159503183181911849894771059213141642848295127476356150949269712192912429112730784037980988097987962465124101701654021095912942228647770106415246448630433309971015179245263945245350680343609878437922288096681209080824381643535495674730899196757822616296212032622183545078989812121330915587721041523294788524816639321918842831176015414959395816424228108342028400732347070465217653874624607597279505138802747058947800736182017368394831916240409411794946267594746991046003342180453334775644815980265000085172638931876553623279307885326847931668488396579113582126087352003967159012134516188129613814706963426666153592610537220300195459160647304969304307875467901565243460218577990566835461309294402560226522080105842773986646412876203588279990191779160668926216876748822788324015775701561936084697660909371554577019363056714721135561248596727562924966974619801812297366166345360015797119583290790812787708768623082345057965472034902908008190011079135345326835889595947974108492932872448396678116393681191299731039057452754160308409943268393412428234740026658597778766531811837300775955581608499837553869829837397982814663148856431412001912060683954651580907500305584362989019268610171205887262382053543386637125406193908745736190205740331218740208527113009232417202811938126053001680714837910907887189455309922626167778321710200121674503331435031423087612853477326255930401951870590412752123344787693194927961079970657234482425547922889864515572539789971090964197052594505349544558636507439832197963091260613401603697291693965573805783396960991921396465134919845962938703558450508276611187756055086045875033385415288810665568409338573657691037013883231008059289356276256306866162794730374412486916591044117248659975852373018451743295817842824875380234660423819752430522682370448343768837323730463060761460973115115079897187345400394718692989213072192385106054623999568845141565985521655540941225676987274057416614315619432246011761041803260860144955876482692849363153730054792136843589014623445202915908897343474487967011095156266115955232769786241206021057273395285823718591001699223061046804269207429668991245189028041228660539437196212337193736740430890889146671241068347934514683502926142520844985691786626165444285852782996093572048744702062379037492190228702860401483764056103804757486928100946079172426721888407579184287489867426747790091334798694798558159999929888073429266179649717171311381717551925017466883923711427352173120202985942542484237210228790503805140639508120699391271419017170546634752871035261311796038632529509671413234877638453970569496959668911320787591466758471198736854959511047799803040544574340881423757451424479070845029170944184772909801634777965714061820483114438768766765507197383626668640535752968547833750568904546596517062062208735987130471203460184377048578315074420300657319097946821226391679933055611750887758700248276319238580004778044922476075789075841332216646453379848937675169095446364407181060875201149579442122432975887299256495919237214941173725187147463678643149389618909119974689524512203677689946231203215506247794485023775621181582404614198244647707234351233111770761937566334884952899947715684444245702033669465858501811405213224020187706075054504274605871767317053007776717437036594207437280082097803523759285519818621063989621397215978030677733607783730225918927813647010792329678451911194676357206615115508462089372742111739240085193332404683972173536202109232767371288080020350496698632123682801547843147007032189442327434019221336292076665720189937407076811901925009175137226469449841722656416008409013104504310789433476000332872484937423496803377334046282070293434618304838756769156180315463457273487882293732611150829053485620364338975297120434540654662365758979171591321915033925112046056291110084629989661196156127590943425328948631920018958099313442289542816976063682638817761261056752360629980239528571048931020171562380886345440974410396196049726587014883955892132617453394972894522978703697426371035332922117824745407621309046142114541223965241449432787185064454999332400446653090854824277282128651887272179894264814794866047847688652405826993037506929261449987671439982032411430321663661312551231227977286037624294065271957842066729870548791075841397192784879193930437489072558225313932786549655071183937589522584999185752560320014633200009832156834201581812115218682296546521571198928651200790316581059641599970341696187946522539237905053235901546818375158675713404495215569528566002858083124691455977769549413171076557283308961009125017463332659108076095151153783156068233324926051355417642928665424355940262081312601412391426954535302018649790610587104197571667899085087598022200143527735815991875270542423638398774496298500064491844530030671380417607242099488190616623816849814877927633977358162627172180061464304073983008077979859694349674529635658121850269502215558348826509757257998561901226770713268921120112867433265339466405724617764162168415464781024274626477504670456219784537659555269451401993098191870798165434758592906161931663935253321450746221487807761122584305483939570964726513600126839979642918115052514472004012571809577220071908098918158220271904600398409623590063824551735735539874915323399353593344158808280490481719904790399482545622401337802448144638780313043479809416659727103683424960045695923161205541360044536780617247078604678534892480535393212030919445880973851990189214212574565488803808476317485328641868799802726068640001252710333254660064930684124269590758147003531218439969010639987101410542970894292164381207028593728687518237488347668114046373676701416270168992271282172723445748922494424619135244936947182567673156616567396410457582201998028313275890293510311988432206885090832937972540128041394500568240055352271565893789635970802996791512800132031557122110619826960383643442751804691558655173056832775422237865713484183277960978687529613665482036900357702466924620925752817989650378541567719498779176256895197381884729202387797083341039008636998272551562516999991156962375761039248772512870441020414578545419709668810211601895104129253862001289989237080792027730977240424669732404341862133854784784042195372266065730582234211680085049987377135511017813376618782810707807821136927259432200722465320853241528649166058642289932838759096814020545349748400715944253526880087366408965380245641306590725935037464194899164768450113411942549002470914270004936290391432779932205107442252497883013288162842857253028792987970005298856727102863970329442498307630825061808082766935741098112030754096196335323285717320863619948056584557007526982625397250651395078614247437789693718542406245385175503131830434731071912470919293422359249507999836125625463377840317827273269392960005793265843496033584125177043959520389853809381539276601043535982331447485113844163717038592966929837739843830098076515835379948338910667848500775322673900797997988809942893060605037467418114076026573896670052352059369845212395690485493954266525128768723439505633819153338426523479452940681602409029070451843363526534518637677458019335487025047399201858432421142449355273338854166760258280633757484054660945348213538882156074209915790849067504280019501216183013653312464275367437009292503692950906664461463208547044117188537677995357868946914650777449944350663259481474731135182975546209765254198623676965687206651295286379072536715268049150879433622351430153889047470641412953935880558131580716642303379373379876990977073698338708659118958063268228773399609656045479174726827391125755053655002967826498422807728732238844579109620468033492582007294488523473194993736143214517477610453079536627969851369321907942399513534269421569771418910784806009645449597805600828478405690036778066597775611905430845148294505512698200627821808731595905342278341575321991355192853501719195702874952195251157769203689948639717333675574657368674918381174674525546312350147070559085082403479058972102852391478047778071592242717715706176809841139652844679315601920958313044208224226329057314204778701879815455553709012523163228833613240408194369885923858885168213242822235135974089094397977691103201374889924333328055646780337187678752646622152438985507766669934037084227772947206740759649835503678553827591755664098673679756032047498423398687016351636958053108899044533579979222436292174946839570179729971959193488052423834327564141632755896062467286945802504832552721114992879582292165573090976790406280357459396198315404677001273506855768754714898830082044385671444535789082967487720153884381981981997235541546539084380597237637925929416311559991021761730749119726850518780083976390645478018607318712716751053395932909080465098971945526143268654167988673642033484365182195014138551818575656171025314029302994974889602249039601463404721856477286534477255199569858832237546245532832197962989813887342642336490027496704541148439257644883939505061175568615114592434380989134262344423069974303747277507486559948508787313639164558637843950022815534088280230845365119094561931242017292748399331186443892810463743902430610620333545343861053897637073473948881079465997973370421767976460257550985343698592072756841342799629480798741203201327552066142346298094540753577674944833247602857223256224256748531423824221757795533359626393554620043962050505396706170338560239260965138024478697536518266871508415469086132638767110705554410664288869005018543299334797332791442508629634609446649679711693102486785710827880928944202731176922509108624690550199359603056402539960931626815383862364964114182925128528141009389083517865504149459751385417176287434125662615064286660209690977566352897867497737722582706223119571416505147080802702165918764700187691898952432755114883486793973196142688671457651399359826574394988906835150800431876036432312499531408009751794652187287657986729842481269985584282156053341536276289483697466370269225935979582570139153228018267467927157865262091411891714698156676495076344943661194306399273268915468459734291635064403344620681940614932416048120474386582603025599716263091291030322456750560940793445102322039058189973760197562633177346345405352348319523876298948406003351470504268511400030980171601964116393637173637826983275310514115257105412519368422551705969184959735087808137404642508091944353333711236982817362528549560699946969918234358979025975583679348928133106636522375670202231735634244556752359627378961435310142959069912204993445968988145568090976971675591767686523136859190528547394969051186827029658533946741477715958939583465647626657255893674572885840665654114676751377617572098641688927577004535556806376461928065690731794512268965642818869416152302249097063019284517218833967715700715149483815201954876309036714629539286598411981971982446530438235401647797021441626607057317256868223491796576558561407958356375493567372706761152344517922374400860802434381775636673021612104549810024777899357350421407169125920666315529056361853265941834938970207078418983462495512893052088487809495062884148938073710400300727471672001747277397887178990698781490274926364761648460131438985603218344431150911327560382696417998311394227926680140166339737240726836310983720465437559535246669775337766280465052898572040386200054094441151649823433116945052827448147821979397216059016680063132158873143738052640029072607345186359146976864168714156839647436222679634463333257340888696939680065576525722963344121782814641879036152924151882350795919642902582732430780405417848974630324341859366934322657792399100826649685138591262653677392325082400877007749967084834889835687597008927227988209365285614687656742629237836303611167467573029010296314621775260132877626427002786148309164600895665856036683837996205748162166746133011551607407460602204919696502161979271081762345237217025403367460418727282937011220443412578784082409397386288418703459348043876183656290353701671663296798943664114901398572641995515539285381430555848438643360975033799871171580552587338342397929725883672354072787180553036255747591965769315309427922154955205857663603717866085245043870673948277818367421855584527861632940159665299818216026457238981480620523740731543390145201255739723158363462102184783334067718608631969179031277483382262506493040191373915070293797523919040197398312257227057722380404859941879036919095228768989090672354869775180837852398706035746824988015287723220809567173446319364927262864867873417993149669782739997959318867667991965428627600214597506545234229108187904389854734290346990976425019931231609407350268800665142896127271256386208844482970932280482529029097162402746982093698021430414956334220681720086764213516874838665038203702838598877406721462713240945755034033828513448920119211287523999997410756395074656403748920463532068338257796254692421716564384293045493485705205160591366101996913224073997637696815723913661730233177590920004945641219397420510535827091027650242620339736070809683072716333126139577833718098017489354924280573614109304231360528831844694038826846325363714162117307063993180698611016936258978052981975383529097221630261096954625716012653899680948926542982504393345122213105419819766478849259170256280187025748652587087974796482811706119761460190162861794165097934666582116560178902504429004780159668206500317867347300739960846007132231709252004501016733455389059599005074550816335841964247601462630034804531058658120890392111200530842282840942517402156789357397907710823933665762930433531798788581928585089849909335613220733387329399249460187885402650057414654131287684740348011281997108001950629604908750016381624729073805289201910534513606220690620692284439917438649660337549117831172426075868944334360472007191915185686399020825296170348366132987702003503010848275892198994467624569274849939945910491649354060411033093694974582339049944895721549472770507729740552602600754486522624774179756120907794025857086598593757129534929351189270727179891798676195528553520104437441041416421054041972980351151584697515815976472509344228350984485327742208902255354737118010624862366000309558729948859112776505801155797356709067165421237372765951145665103623774270743763961131316543781029624845195616501266490762803755313867381106149227842647844470308991284670435729398921411422577837642741465783782960702853377056229999952687179879260767156224413391529977560127200122785571500774495644716097356965004035841560969477113500531510680735567600976681988554651833634391923954132685424115885492713851369813463177991931967271764319640685798109983460111745261304998492394721224717520164684013315022334273336988863659955067411292895674432918843030272199351280420909304007373864841364317702097924965326410597573062629960357233993095385540580543901580131520582554515698226178930771705535972147496776867755999178593427284881113770112477825646863971309505725005776336114943370144094535070795109621277183257661984952215267498705057912060079565672947849705556459247194597886182625446303016029534735199995658260374293160708113955811684349134337902540484493953221515386833712533019650210764667917177603715726751719913747149425685478499361420769073933585923762492066170564316482122286023539552818584553228392043150278412089157017772623889080273214687444914962307297205266807852093745895207930890804826718848216895307512312298761277083703031205203375222722052304165848651577481523010801466528088043722515803705473499027143829144836613502178759777068547193749959616034110838961316632151035740067270353887979859859840080838036279543142803496090723137290506437263977330361000187918725481144632252628746681849541158169955810255605239368090258348979591846644265651426735292003234045894023417073508602402933216522870389726205816722754274497198566637953349114889289213201187376740791092909169101504839345385208127859820892140141044199303332190975903476359144190597567516125218414764614344014220187904789028221453141183065624051027536868011413142827609703594967749967734053497654052187213495495156998066319212560986117108817700158598699299374173454092555926985996482402614125936545601140400944475827823010344728978478989361453119898388166683330319864633847989338076375282828802122126060690545401283820786104232514488094132363452215394221485187850785926987011675716801615748873550930728943226785913265551597146155122221388088911038011592260996775782080303171202289934975121283067477096517785855949743694157965620142764275059559306358782498479001896963527505824169070494199609187260178176328691014377015515474010243848036265575278820498476457667064736535027114594502438305069151518108152564995665026044330667715615965710094268169571101819753104749306632240761319078979183498709751739889570726025625288827528298189496859452646475412801412906850354934582632947216410797901847389216797236022724642969926611150387797750172146256564463976520296462089345345703704695185121507876288485744879942657458530572614921929494160738853672584712328069430877375143378445630644399970658340852985531889488353283593150699777311918691133612669123956943659900421252990127882116103316246129038030293570750108591871927084492497685701458135266751673345946090417666186172769008906856964086328675617109960222266500347233413550374654055765733545226581706533036698013503843835010293799158020942907582045246365931338183566356350809605062354135417795476602158698373754785171597428702908406504704996777842279506431602005779564045338569411366618415566194688878818800265479979323225021491712936405498026738433047013228589507965955027833859727251226860750102320731911866964389780903372816097476423013700046217797335444596228340126496561993127063728715572544809845724129459100890835761271450985970722868631806990981625823080911603633883862073303961280173491788699596961037842860018437479120888108615626636189991705511201942021747380530064680067296144952398076751275253127058530113224515030430162651945027337271760485733017369871037706713857509410033475309623846514702653548140158545250620805127578098805786848121202296006528963095159466559986237002620366075266147924619449941494658033377762182594207214551224860515207196027410081661014632998150255895167054494553967431445094872788209079511379540135069900580374158090860999452659280764503948855682131013960865919650065629467297636264099849340892117488081449762687984231736266296879906273376892374759382218145932611657591379986409080864644014493311932068213462362192745515940962891085847030173666742940455872948221212405156681487434741453657612872695301878426062552921591878842359823582646836374528988249765375486598308636194728893403681656425933783958828457230769230974008341228155984680696283919760835335557705213082804498428091526903804242988600130636136655628294709106952138986023158834141032585223318929234472616650866779509872463655841772925367170562629828376858345065347695314227814630070798168315056462567557010103696070511553420077925770094121083241987742118996898719262972796485534829840496947435882303573412339385019319825474053230955006990076594758793963216587817448083776546928750202267765609106650637137353357203096700077768830602054023412178845595489746036800859175210824399133573302698856662630002633000966673697134569700813445605719462756555474730855544671952104750927529990834374847649100739031549874044071634424829399543096233850322468797462763516820631343203370431183579349578161901181685550135635475570370067430323724901357022809385168061790546605770731537411882678239552530810431457353585435080937866510615832136932274147251822533888463899212147627489765262471997966995386284484115088206156885688759738126604962503466746758883875113581088460001407850290951716845607831683408060924197310421911716257599289864776979858813222104872818562922373109273862061852565560796425538137985803383226512195502403589723873564169445453970949216036247421243024001186013337718327220220576115693974755938501763857104021550715299005759710247043566304624330223859296489898613856807542064190547348464927760468968904754295579908288153441954957895854362124425034279354842197956481063528670675172908797087060416723119919727518406992156398611631494539783059016640670652406581012792852106381988392980467079045447313708023048802907893797750857278546549172414323842328544812160327292239493882025891419588793303984133789525424675275941532781078367938355239241134871742982508323241162055244594046536248620584532857479451267753331390038033248695881837390929200738975095533096928028066914685451980308159571815097228785250987402338175296862234226841841695104231023639889275537725070644054486610018259024663558742054187244344843738858737519759325493219430864532980365296249684625660414474324528451862284308336175425244172696711328254486963839878294826914906667197579099051586993772004050671347027583438323309110960399033340540777448329663296177148222567075902883191787433803373351588199826052309606962610730540951607322915296742497292650783996610358160239778842487111356056010061099410075201065818700569075315659793184753346953783674025282699715037430180710046852950410614066893680124687446424434482935192678190675948929134546505644011110358196912659450314507122621693408340105785262424572896198793927548977865505384942229694895492194422290719096801645125453531572481524048900669952898112817976058141723310946717805002085839052181207173828905202418235805691011947978142417110656769414688610164386845510326409689859436267287440717493159532575005832659489311439425584943581694693759332452392690643264745833049081874811735708813872388039187371796108645090125602662462095237968813416643179359852243297725492203681920953274585401361675700068857301005998788358802974015879373326405545779981889770425875473684858234862891686314452264960808702278228390440121370649262285032587197294728691132245541423918857545448533650233231298456796969120965880519793568538353566618397780940942571290636426984191245648025994834840060181535099281097720392190227784299747927459742860650661620726609065456753030413684828213754514439989313383147576577084302641207601643144291789468105859851534714560493542024770561868860959130885700394688797487667850993113606873633303884162773991083257451344204757626516978462357672076194398140804617409467158581441458717091328876959761760896360381481141620284376019887149475470520846713462563560755724948356285230635607575820124701107108000842432451868107883664017901413675764234810082902126837887503118876003056905114105527029180452933945800516183713173126748760974728335716353895178418791811548904972244388171357062647696824752728206965990594523934517451437141055260149502623669680467872348186820655032993423167213429234266501980862028579914562957197996741797959009625645428703089791700987638138348481506531469006778592744216238832834565015988132916060098030668615842097625087455698327902301184095179252641576816479601419786838218285008552713180788960779343047277273047247767614672381230061555088826710328462523468167332739059769499283267933006284516619545255414493279921673979375890204546995954480014325099200233723727975325577638171625467894426617274011148801617616754553102169573606310311786462966952232751053979192974693560310142306256912279759932064399466986150700108684023985923861035411308209507605674383873835553817370489809847629062715242920785669929317836976225419496317745342995663822579336604775272240624031132126605820257748576258154586839308526583844399833031524401386719074376346581507784883675921662380868797646417974392139727049906189658105996790009044732626347269758535054218922148055736865805860175340566304549388163917891899200379597531539541954148729362872656871067827619245556848580458343390726702361666640249795822199281559756264721593854349430043604717726983041016812182962457890798933566346389250396398061053202273794217368395578087739790028425945938409423153603304152859892653462132869343696520614931934241406201469785734756241479187604877349933798807365733337042880123081458437383813207420350463141392491657654884129064864915692180089247001941589230798458851315578338285397435206500709047237741072492431563857608393709026574326198878124204571005030064397105805576699275504161372771323343730390809402558182841684003638310338757329010515170794231212715299818491049842653444678654670729447960077731222386911713053305655332682499594699121950246448466997945061018497917906051931105964301496217972839403506952511090752458801518291995844057237105820085217226603848650981955019814320375964431758186313919486525003064061563359693824317167783245184785957939181200100510392198202743660516183179727093795382927473151717020660789540003371491785630830450813772708112461855446190847934166431749025554441091231748172462170867374388853019458024387175138186553429835733447363434327117992157313578924962633972548909364203341543028227308268438442553402058174962960570598407794867503635672585179808983842522061158340947535529615584714184382911057522127178902644650791514848196196457849013003788177502694452887780817824273901769736163635829046624481260558822819305301503539003939560960995142123159567726324849207032720439827317626190938321922363333541321425233447076329788950140716217643202241450778319026883959215285263681767414909619086475974703585053366762490237694665230087074202893274611638993531869081908110810230748327610528292413539127895188333005717831113066579838870934483638911456892032940475129786232893930813423886531778134452230657291891787804341065346294215102130487111163852520365719191174859265738735663639822586610946146303366798242615960121272496987896068572595458228413132805284299144082940411716490240761903587064937036251159957515274736498044851900316780664487810122031386507369848061581325159479548549481272446487496097768291325056009271189329616540135746922570385956100130619175380143770660447197706307641790432284252251152405549246673374963687311692822723190187533570644555980142530476662929057744100867051767517731154670225488979892372670212995957459109126894029086298697723317893840555685307471261505545448703570994901606173327905016137185083308125181294842332022797181561955155818301814491074992653081286863469886642842741375163767770445226645295249226190991836744121827339731149724984521511767273891111336950521064352939259774906860115342262816242018990841049559515978105245786100106761922645729458275531604138569273375912828528831391677493315958703519742856030758526308057854646662867329818546392457352304522742192699780115030254350373391998954694371565324462199552032972554159412500982543472728982181178751095643457815294913967530055161131598184273608344466149827235252433932247327684650744029804551135794027531984816136269218981005612453944009060170561180718515070352463897609205464227577934567774399010777515738949010367798108093812636601585433089418519053600199248987022596487891945057226196559032296075959751789408645298796516300809891008914079222979320980308807079330988923275736344636401360506723941771121286555655814652702450216029799193235281683311723399240948436598762931126748256730748044119541569123349222924838650984096797000020464432334986637317145851381139193255017876481290671528571527123976227780141777958998667076582324174859807579027868449246091403884185337502875309391531922635693459561278632003367321729807884480151163230795512702278939786780003322561822098641754114561021361232729181376513039183872417872009525131266737540373145236673740221936046350127539170477444646145321752429460995778655540663488357961049301529845134754853753932622940402269781618934226314703478759624108586571752419315281009908979128705698702126520366462920593239187155945925685780427879598145639654103215023240344193191765370126058279748345861567711530767197955007153294633357393187226665259338323656646621868350477703828182854676646950164476341488646744271458706548306389868411539194870625999672097753163622615017211937807796806312668542740060681768382517669227610165755011856282875103191546473779480523606627274289511064332682094061255524889782357608728479090082065118578442587429721110577249383628495557739232653219733399070435782960754141555128717350533772498117771897841198364796125945576184842785580170725995254399319484675218190653197294566735218998584232472621190367111596369819286792961916256386941193379673323462706101415479948997009794602511050668312983571613652374866173953511548037500980960184296149361631429750792624016423731239490452760388741627423000364395089467886091429619551790433318699548363529945083472153017110875710049255279891481637726482402188034260129603490238359288766302882051403106118216348813003501110452555677271683545685768847223141191966858170686924710947932174478228763181026700741829108277083507021291845507917895766398294257750059954183455366758908657542454207250185231719696146257902874032831036130192387335638692479379247629471539825784068250903369097962974464885547004104953707504063746378299867071029432441177716246271419073744719498559569330887227996548866497204259976262589867177263597287589014274908928353695194973133509591050757130221749099670816085365340994030286951858320164328707731635457098612935527076982050939935340657350899225302555384875122097480232476929105261891476571243668252414826380773217741880216451700634596499714357392957364064676663009299593598289060943682903754386313341334833500678140621339253708344052249979381304146493981597649802896597380788878420492855521097082958288029729954766001745992739158001198357980297552324774670092542228837117241219501805345018888240733298951543952105786842129955513645294181853255973078711161101716701985959968597471829788581206482805292047816374405821399191356061141546873820731997570892561867770786912356561828961524875783438319308527839977022898097302886944447746213604700152111367224521863089733647921168964697829932826585473553849590081619621177450790613123738752898940527735516087352238500067162996050769330016187557730687774712519223079933640613101244922060954154205503776317593930402282759766905319641400882798748269989761224823748647186724195431380050071710858537757338984143790091282785424337385747267932814138008933411930320491377228215727931938989358859545587528546054937767694363920771149939402928410076356136314284632345668507169855045452543874280375826595506244003548613998083974729094507276625425338314986953678869405760453950502381557894162007709262595085986379444017577853590700693217218864614234513684172721499424206062760743317967318532055602088129160594526607234083903855897018987799255088629940915627375180401043482118917902956288171078301717056538775631363925747726098721286975418504757962720938254563367028888633774529669728205989622095801778084223469209790401605685311323386030993897424717100671622492609595126529959058891711820897115668309753379528127939307662327679019443828060080455726652520547881407715489928174855896879307056202166873950735240979447867586035762617630520545304876432313775822344018417938057253117429979823380273658576052713040706993296399049231126917024564970138491463926262157392470635311124893325318013216402114853316823878442581192544376123420709583981753752211289275916934915600480431379564505677464037665442167510726388240285924692543519443199047875647818977855789071986045861895216600944609208649281584756137199636458550890927779688482075498931811185729970068537828750374440362989817470343717558007731427717891726375427584826689161887319331084596708933266678324684989612442053739530322258540761835499080904850142421370273336915263557759301274695319415629856625642479383668897081014071272824433359016688173809459559703060348790653680846274166168062264779084092010448075648372334364239498456933674432679752543365102332244592974459711631935884140517074507466616343877168552446710209009681798079011936536297476307562455366823664557737489893623957127535202227624245027837060829404325822561391939222362320247026972681119548331640838700893661301446078913988684827006118286985209830383496557967375607438378631732920737470607398843075846210083931375922876166435256794504845192220762628376258047639541199532629482432685147169105724758440298692738456277101418945062113717539402180316008301725787722944028803379318073951391387780391380280640533525282889888190100673780798800634487249222611893410878574837790133919177373725035021530013350252471228271714446525864403211754355451305051728819126508155422155300664890303002424937415528852632205882646918511130779554288100470744469845958146499979724174572872685627072107667851710152622163605618171252778383549298213671750084441250787875722577075116958706334748822978513667674015059868804759567186510669435092055571504609812841699878834888726339980527566734753112922972577441012881047975165166628461774603977616142004535559708287494885535433750203305097662735088420929959880747438035089024578584236441484778726665489076233797161230537008668654796270118322076009661589774929939478009719638757119582951562247594178041411286262654783220206737877885721142147173910743469840089490190268361294611127813300405140362103729648454746291578679284257499980814419903442036053359713606751606477776049259194213544142648381999630206944726746628813582211455841271945118700602761192050784318818219386337871924516770237609355157676340698662706010945946798974298060000571725978838974610707746327544353263549818950724490964244303182116017582485981046240710392944770794463400362754179623195475361035860224773223232664453388616403530997600266874782009310226879845257121743958814562809562826040964383049342597790304554276135216216392187096682772372099252380551756224640553225102948458309718952905561421757068687573765659140494760471037998446802672993976919120710968035939801932986518920306811955764440401213641830043563918024112161159191762919406436659824737933297955827139394730308485289660191546056629313011528392334863723718448847074719101995669876777892027206035827549804184096283168426252622149737412505789169619200097952189860490667645095538889395182217960916046719673779233956581679408315381753837782912798851797979959183486416520678723468888201949782151101178752265586692404606369326998242161078320920701322796663362593734707000203958341487315846103468545741304319116616574177729202270922251198279435622224413383634006062964309657150911703057718332687227223007426753476128976174561043401332818998861283647061798543613265470405701117972010872835638784854302017805270694463983877005170307642113745824766862040906388725816674657437146417461541463962254249399382488286080731327376983583411207559041041459241579081207747106242952543665580946706523976606259969137490992266487817368638544270861612410396784112497307693753166534506634070263619056558522689025226998198847402607315926068145156731736261114470845739266448785252144331755292591672118086298932309242552123745494677058142689758071004421300261747774088359766838671081427141731000896805612808837092870882145955144972890064449779983884048105316418070545095485421859478656872828715232492548255262501175427732837316907658080496434129651818567634673948356496739607264972384247834351386846554067344008433751020124304258009191679173373428187032163784579290270912332145702154542100941568727818506912126923029830868745044569364434090515971793477003185405655507638400459474401346525271047129631382882578209475427610808449660168125749421607851061026923868830286754581161375636731361745977286182833673874902184669813349167126430363465141059408400987242495693434602105736925078030733226348935383449267906633976542369810773332723951794848495377614639696233915312384420643178840552888792137758342500091311190864219195458634641338185615309251440491425894897487894767010705638829976260281059970331594432419186223550877357715995722333221311248072781883863019655633101877761754624737156616664087175178297296046603418123342451213892833535719783251463437059312334428290088092063392748922425000436069225658548587905937100207324736366629281198645313414757908000206110094178479623613941435201673073452660764412100986076619342737429939272846501108982265949361600716151343323673799149009093210761994919517295948362989091275512742735669455546544833964029536646015426512908335379544510427133885817186696410255151054820356925656300965216021817966570003623816117407413360584999991844717350169302209291885453569080997712222504520345029457495433354451843550128143754647399161226707729060906190851069005980315112221030137098091134543036954703708489580512758123963810974960965517379151649730032389707300156603126350768466258887376519128840043738202204935299679233508696653747742171739736536898420336512037121160885883621421466417342081729581967625962001168681890334160423416795704594285042639051720776410363574999154155914072104016954315273755669105837226251898188378831716505585226777912342250739155298296329202442143678694983167950589438210421279950697375199415992737745583253358323860690037908024065936586594312813284305949473686816361722870303083812264097191408569797073023416358795760811922699791342602254491422524313793035315469296593809862335173481318678127278450454150194542785531705446616659904175278284928208044078379578119321247819044429620810566579114788229114805527152847704406595993396851070264852683305268912996125354091759667046626716878165392155655791451369671423016478585965064869915558862016754036585555164818783040300023606401185368553894964378169156846136842161456266795479220192178344746381129786139514677335445126263118002470617149003404112083293847640922949567477430093465715720583814715163809548296855951833457614771287095351718914378709198992885970991861853395258796435166535592037478654713956900309800782015663946138143920560922780429242144573596333866460616477868780570836738406956410389853259412411496218278521133727131895934752495688061157861497772017529552325698271544830326535119525420724928709392757784668142959822583393219304260045192956619755730664003670699261274850609183076631515972926732124355163429908749225773738187854152205559386734601396335514429532559828720570887731667951984944066802409930555032414537995508032918289286843928063259307849085853572384366416945046516675638656293834089579142813931692298813413805940577117309941782582946695407179227585034097678658617483232108535649054420790627605061352432854552446412391193489756708759568207752903627282394165876925312081112240453519445846655844158233030310613072453929212619076180118469006529115871618825858000240263628211000176148175435499650999559160335326661092350539067692017279327922828075345262662249319450307608016374846255306288173685209065483500627788118759448740747577347365743727091672226888015729844173710703499520353609426249087307535419995713356379108230060209422229372798586311880658113198051188374824737823379416996976090461730710951968890182317326084600449899510008735051161240438538245221688528089624139317944154139348539590364214882347877518997333242770668607825223228672078226476543158928610227021071810372768168519403023826459749820711610931803171100636166620509127789380214719145315505853751312147105663414679907484633689035555841865971977154697482202794245127899766550065938740878716395826334104246771826959017578634433282450644334241647461387021421581951816684637887065719252968710630095488507828109887723495125924990287334046756923964220411758927204669513184420168583769548358365642089503679931373473718322442336803601836599431721355085291389433622622840884210559722905377299618842481318520928887375930207561959825327055535418500324760804316813741161864386781118101288085425764190044808591772976659462443567740230644549059148243705467398095315174177443952103104993485159908801868082835197001508121146304117348753735947600710804964385068218497395046529550590083523613217936614029872581445042428150224926432901545727417833511635744693831043905749275483310884564357004615055033594257898758894042073664587104342019510063374041413521761239863338963031664800483596544760134226666459955193522478948315900273176937271193454067697861421374122322880515421373671244932641465796793315799086320586076582776839876641187136316165337768591253288284197568918914891922554646262579095143468125596600968958844635357491539167413203024126294770705455670894917144232056455507108340399024008382495515885495247254756261214587442931638815253942966650042549479158956227375363343596842494803330041541241303312110643592892949882102138430572060487402179017999700950623994721244951886194713467067959399469571294319203692619412307699940559849398726670221294676793723151566726327123741788637717732812150326448014512105829416003251101744246500649721633863216256529233517062250982033351676551783743407633269686620746602964491150421217511189718888453546580099836427283856901031070814470923639150826678222304881015995532152934719184992326047968205276418558231282343057441590001391273259241923673420958821929555939130687253038200170876903052863528619807052674749321185036698796767995038508968166737388189770495768680359880057608788715631731609721064786817892676842691765436794253183157476509476336252919010831036781978895626859969327195237873024825094695943162788075397932729196644585662503005315131217074108737995019974783612027029494334553198318212407541941650294262697488612502980888698047835123804107715631786721922241919725144035617782749695151583741520092136305520566474689133317682670139356665681123902608651749577036493821268436304274732228406162522908169382913744430773681154833840810541669834056886114815271575218794148824530716993360273360837931529497990627750940340384416405111438714328639775715659713529124709162544661319005736045481771336658157303762237169504447848974093287747917340055529707425547655267558762841036003287406883405794704885654464499119738693973603725376496717633747247234682122808527679682048035748199223517011298469439933303113250321570985006180586799779958786901145101624955699245465042362864260032242853242524643273776972531946592500962601326588268509368418852454677307066864626376882529965839895079552442989490118375191342773500181602368890930228459009490359455471736639800578627831320622713398314770633296278326269571193336197055944928955052974518957569485870514903588153620708663694430093665586826059208789209064003408229425537424794135574418450627088168360583700205292523316786739188608890334619773419346852017806669867964043100910252646313896982100376683732612706045638171532692770954942551189074127581837875454401660723870742020827860586624218150744832321016459754545010455774488641855303170079790260444718295800998638099469401789055900597613254555716537612819111108991901754077009657966942433621196313040216714627881766591895889674144805927157781535733004492314502272458306600658755018208436732138204972457715746768437610647080731924803419918982319187319471902706508408025174406870945997093887912154621357793085763471289205605815691575754694028968868354989324463750767599839580167707909727667686117637107741340201925687935442691259679525615509724917859023991037528335370436833881774365102732930508581439937410238048798536241876355316710987452828536764273242934556558536807700653460067265020695056904157251324153562577887760250185342954625557792666570133936518671930255118438502025802777855866638979624828017064850662606616877213054644177171356215103267833718571677485228004961341937493312735364244940829593000159364260430548062061728919209021378043601372977201275850429429930556329913037027081812268479332792121110406728475119316460443226840671132289685378643960214912299435210097762652842713020458441910549349969455767220508627642471885416230566400194665486355091661348240840796779716291153005185277552482658363116196056736223051165355636313747195650870265580244207926240916245641060201289107831647957275796975287826583746483215508971157643667234538208517852883844309924049289090716146464532855817965415407072193670765787966708422791551278104473870348007640616627856428137101817480501680811107902323999072389446345111341642728224007509486829539212730865183775412913844544431550370552747992999217611206010325952294787117460251247186998961216413053909713433296791645369437523645527115652037423303372236070705511028006039457425392820650383224262255216882284328297700553443533053440774501335306471280489987132431407331028804963433037736536440834943594529807135806451919560690514217994678674376656425485754956987750997455961960918529131077719661502541603083196554214471194683711416660182724352179216541645560150511192636385304631143863739375168885099599306658013303692801316423855909616438371592287097596584879192782727932145904502063729933008210840123536728659638966094597120568475988265529495267481094454363702368272648160334163545477160730752106009276909873367468315050930577269580522145615837990090429519665251314759541100257053351623256164660812738057873436691018300954322179583607867704501648020980433466487085216391153475131836079646235052879307541067039224799132197848068758507223413067754721774260079082989854855193695252201619938205024519899036446716875189458093793377600647984261303281207202732965941980787934470193145069345324978483909762537743646020180074144826226267601867800059071598169715874948152570742817404768775891364666851930106723740166072509037018010801088078861284147376084224803277538999157582383858353862127297930682851866820654613602523205062218984048302134595593072905168393804420569924190570413021390630478839675362977299377909467049654304092847708530849059895716456950534386998049245974620888962038550192659868025366540626001358797697488113432171115123375053923632596715917369524502041166029233298696019348428527971561863701878510603775518961654605000748514659044733873352159600357419313357948095971402850180130356841995771762953635412247600100870755503694482040119962963642865764421906512969917372739788858776370626594175414892534620107306767342826925737965812619131649374176153380545861341245079254124782182327221031210352729646222025365548303067721574076650275278841148973949323772522826893131851697294550397483419772008395231281103351664099892127887205657928387774463052920436002196836245902182020069452944516844907262516440240447955215752872842417121533849221435594236100728143501337625681718795310881212679670206247436420863730598042483104955930581916525303973409741933783899076895136631578425213006656571948798281179318602822503812871014412603313231670804034665893085650708395705947605532232145837032576266233974097082953387989057868279002286181200680561461665090241089493611813889607269882078321471730808725323212325929664548108268593202786793556267323784579568651672550110628116876530991037102762447244852855354204099874717475876213299749495942792468955232233426612159364053311405298314492695553623171972011985397731373959954801252967367460448027146540509044032997186359002812828336311291538228651900361789667334686620831524782472956734485001476189626095411633693418938290474381815995385039016589191791451021277098793316028258751831150202527417149673946568241482958136094771167238449671509729470396346096048553152694558498755463207335579306020103171942635513565872901122879039535807981691315330607902145890439675175921204524458284361206745323393444519660665396003092650336203007905328321692873147719731469920988594412317521232679551922125845878313542028919908532824658384772489029054231277691981483389933778807595185999834050830672853594380318991265981826148516505214156395341626940837804361741717064385600474974990796383361579298477426198298158405396920654235630523822348862602392347444020323152782050901567629246588722280380753613483264247675289074258672213386212058198168339703089934550102499077207220242040693091799950189766015901516146705268723266369838591135382257507340235937222000974124456662802050336819116619327956474817234495260642534836422088605281540136457351613610016185345873077667054037650808012211679464607934895173839275921557560078268094938788867432066993394048134418013176295622710171048961285750751068717726544754536310663935502463501960707735816578719995028984081669069092102718505646323953377935980269228946315445235683030148780550334099684629287959470820183358204949632858796011559330886128403868596552448668789747985111149213234156853012901470657446179934759596723066403046456487655488191976908013441054441372137507370715019619365830237858712471678635122556582500495043292921748625370813422066805306082227383210431766872623214453899928984293945430812520239924244941966130757212483965772130305248775613465806840472956749027849451519313268549614231257552745623504983390739484171143102520602349668634724150271524861419784200163835029874498135281694621173961556905491681849084409426972965793752149648731535974595446581091232330978545036016624981331857352727179900528007928744262225356355432690937247409008435944400458713344999158000291292547138521658467395288361673520182304936873395748142115920322667589776330221996072971578135096365364412626970557105567531525683278355410585506325679755195470712822474894849739452822595658002328081529590157204880189999603170048085079921513854603006567252485651663555554471696463732634955337411965897647832334736947538945623949658637211316789313635288672956241427016468065042109233517046271255065752023802868598592440501998753416866412484065093571513183704123039549117815880551341075708051134692131328829582267802489865557075958415173511733016057923092152616896572604599072692997761072839541738700514538793725179773483310088412652804279718683420944834582396461263138347432625723956178176292658679670350492027248464809200753218277720233352936416446883891187484310071547283086494882083345980613240782076088590426167730188529888911157303878169049136283305787116978385170619470351921215275517187925242121072616938192970324126473683703432269747376844319669376203214128115433804402328327075251420098379555525332239852652779759465246957133308469523625621208480195302323938308955987260428574773277823848018720448560776331061947675544904807304177760388281201851950779705357782336435141751361411248239435373220743810200923766500609159671078290181574093485739391201617881545602414937035794808424505735722119837479911296823080969172554169398819694956897295053484151285642045024732050887827365044408125205198370552916944948741167218633051916463845228503854531469905330953370043659475002083853675637681395549346552124804409468641300498599494517372620669767278064394986682208575849843168988542181663626330577348017206142798861116118976928667894319894456756664159806501623173498157956303478252332827435435673787477527732586777577444862565846837263214686464399382994836887342500233951744028369560102073745856404223036897426309910630365902330042228614643659913176476737529311758171006766075602051125621776090282196884946488245624090036172516730873817723073038621827088685096171156938776597110546429380354867893234107852975337812371799533584440280189750625430736741906179748990670699232778305805035828292111771269357702815888193638963837007656376662579982140487648652153409411827768997902513645147808160283886376934139084195112717929911528514414971856819769699376806256872430007875294295205173363474177402690085430267800434331922781599697858014461104284478681104776433212749208740816766183017306684742557792566914463861522563513457195063391733246492155779095257922951090556461046806582303104824738018979615830127775328074874033570745961778877418187071163871196624513432563932913526257379889125111906900085968932004472443370970202366794861328390891778418147104775974672292113482768286875790645975836257735093429967284409719286013001690958844729697278997470347716462360293518172811396974495253805153103983355083109679455767019278984171762827607787994338309319489067958636170603117047106451915178481061461842063113130292588909909241306207121121941323703917479667879307603239694963372401916219208103109888404774440221105188602216278602137650336439671067810497971771244874295547676689790487444306993338922771871148549682610534377506885769590630039319786479086762751041012209223549916234977265895325531184026207385011358711931602973844644911960093996371969757416443769545743790923940963832040654589602889805797249542452306578427283103541382000012349288253574534364532601873438973767848061983196034145986835965046450790220494834791096633048756547966382882757705743416822724793478296599099708828360649094218533833244102850003102982986428642608489921952595585628732899421155289189385565025189829050172693454787375265416297138368443239390744802129716322892650327058009912287385120227599016249857681375896421050689028803564436644234444601423105530062324798632017048507129500374860805809838986976056977229327769611973513433034646374033832566618541731916823180475620660243065980187689458528138475325525154892676693671867539493490964261904664498980936194850790819242048183271684319957680183378467147395573784304251760356329536352145820297318250273465063422785839415502597657751992157061141001511581443920380787681055175711826171668733445459940890498405813164112125235693238164249196483854298322254879962226271936482827544077202606654103879112305198551150965168046844764804228747471256931982751662165245347820837011944821967651504345253906147953132936928484437552571048085991943104578523400710425642582138588598383197559733398238947109328683063490481344979665707559563555562105690826720763338143824968971906498733114361125237177146835283290002921975173967192724100277513299014683861551732199818143409293688631942666107821330617755057531652147527650218723214420120932322288134120260897846014591026987848629593170849199152489705445206274947910993933348442540250546263510772299195005265843991955089820746858409619983209548300760616029549440407213477207408453449249804573040576535289802035615437830174591029689344291041325238773508277643467988060775055824105481315339117384071040786953032657498372514404947615573059671918372230188911561172078144090036408849386301868330740199712669196046271176504804171497273377145093775137419229224653732933208965015672494461711602153952792242897345656085420385175185541023862428717010132868024038067952621411608550812587945601910748863652917052951821155326799671085066813921816061634413479942028364383893098485083807016341629728542365240096396111195996685315763993925458298514166444843071411432979368871727071564099398340456050614426948041431265490129100799293891406545043711593169617191245842469120677963720316318957861154323938686451851412839553729579390636889566230117486931915545996082951284853569755859362532021724481341069384900199976303728362023026121091377731382883199868021140207763133263895046151753268571327927497709119056248502364870543886637296033688162934323892564813622879740101867932731940131536867787666208734645770119120265872375859859738533942408663287594936573485188898686419510945006787432274974827621850999849859587022371454667062848435657965359351381380185629249656797746743301133739785122781584877548672735854149570061211425769374480141948767206971916278432032593963673303587424890936403399986246628305009956153496585898229390301829687517550682594815569488931333089738917124066763698560250930448597401136951687746743478619464607150974223708168501150128389107842555018960885634843940960214075115381231597413485361859887113919651428701479168584915495862164254641944992047172426836561485677053864802172618399073292772132605245233584855664432106450792100577177635334533514408702518407054533686894589206906299399086421567023084747584943897453191982952647676467294364749006974499546528731990347069541824068606123622485120763206724379520020844970111757856143079441293866960767507037587789247875405295224433205108157699076665572797711257598124757524881544142783802426577877136523839270625052614039189918509332120592600178579519527708622845286301724119742316931343601849820764384447853480247445952701495690086004480176789940923853984531164993759049773980174570983329176904176633527912487521164825312136740811785112716528020605220535467124239799142498557191522485172598160857491569953153058359308010410611595129147061953055106284743901498528968165514638317545520723335611181133431647346111958874798454452228107680036286835999882101612451917930402176727499357277710611367185768304415784607049319570051713371708113806691826249692440431004504191445466328505340123918624533586698549736016875155011536218721139168570601359339715729077566640022269395403716945706238122297603478437209881900635183198908498826957667822092959425342330790099948870604924661310863902974957389975061115416461836122665178336779248483246093838566365022989039155469908173828351784773517152980809789751814527497373519083483111228084035684545005420160812707698158073573750324112917217843803912745145927164961066625501480595591975969611554733847382278879855470656946220696227710627633080834956740439019148670542083621698364583558822901171908172346031995858519696149790175113003588767832700975346773459987088789773331195982085935733357920958166169465801521515283117362868480422333415445246608229253090671931493468353819425414593366527089690560936821145853811694891065803780646041379850116080404336648395148251419833640396664330814702090733111130859899532644980425321926352450611877932770592995367067569836250787371878579288013409219335874668389131749251784143960488699866232796042480969865718901356851555928890017993518461437621645559331579066310847016759037322548678484582570103504270700282831324549309038703095992833988941843736006469811270252517093192606417394780678377619503458862478964620912988280556357594176496577983295525200700796681490660405913809982616312288508187853847246013413013501047201413004032777167865453907566449093649441289822095381703801412329164143598224839685813036758690713931466730232909656618592483079929887751609551329512125406425291993794772152333980363001674866300851242266239233175250458551277990165433245667256076756389232649702056251886370025834495759174833206929115945500478788502573466910824567752951529850209332468889936878386687965368285194402951538931192408148277583293607083025398637457478203434962167328514096350640111918044999370076805135720501286963717931859621017816877046591162647820778213732861932443918930665003374298613316028223533560351038451037637840732727804792735431778752056964514069986745012866400385461262934263952669595469633968115507466452357082918914580823712474211247530224851781657938690593334980609379696538170349157373339830507382718804151489045760150852778519997167009881832628957201593355680606211504422677420443359636827140341054783188664794354910501822090423630625500169825019519711644193915897239718255335238141424295579471376539542697289330385303257953585269362891474866672658844619235128699482786749619978437294378636058323064644939102304529027889381311976882486176006431879591623891220776175961806975498851109455683556431209539670246230757523206412772008737037057453547447452998811826894900533853004097128154250870905898895067031541444451396065580177913812337473798264776835991620548315530486796736289380746192104206647720533062949188558720518781554596382938018992073000656607775960895481148595295750850639126543253040144273630366485683926194150341313531919144887213357301895357139397431585546115430980610093364062981153954396144132651958725845452844369849421419637504766462483543641353752900268724177402745331937579240527102437939199550792679711870860317407125279084297604111116539376504839103152614055085389748209809638962348554788179392517614429580319293043323135911080677410699218605289341817882437563142675907392497912058034628284288432042405448641919196256331077836988895426197040778188420666642377199792079772038950995734790307502211534213857501423097364039289872230268897687423569238498632394250780886533723069209717526241080222239546754017546161742029492714672153532510172875969076760699207067887024972844620965314563711545537380983085310156096494723635032333942881641726027776452662679976005348392511420371788802667723472731217944722606021501147354345025424550620297623459725375643109026910449069106241488251800177465342342065565594944886196103221978260792967241125520823257814812310582769401658316665481373409015162345964448806468837255268762440813024866222507710542276502015167246764266369610811890528715590644806355990418332147090097186455892868898159511721861693587225503971060577881560951761950889653310321564648081678690291813941163668451080897410736357106602233675853805079231772518944167419082900233353833083908300269384392995663966148516761571019821335197493157682592424774820952211380169206045476330339223569175277191834082589713864305302058089921600717925199229601903371291365528063566940294162404694135680244579097785225798999616672437027527620666604967870864144715647632649767262934412661579356786084318333938160819796335605500397554881749763512937476794053805689950162677438393001283530907164351845820969396103694946451797491214126088982319744366738496028279513506446250631881760238072526329063673760874855113806090391043563754967905008592876402359028598713464683595480184386254742549158170588690735562784515441215935502134611165814672811620686777083703662885224745612362049673548245034970106963279508917675183994240359249303834234270604479624993742595834978249999614444370961762632542041491545736562490840048337235986792317356671337793461851473033459830190993956692755060976040744766864736278728705984282946495982783199023281198538965018233623706117432797025850490503612506255130295955166715542402691119677765478110618853681980173588896538890320636599157960182717122656609422656678718214174012213657236715369976986636423481567834460254074326609648139346788593317346905617303886737973495133871372636034337244317277804716666458900141397863462985548935931364381613288418696749009830631896120278846355049116045995112677680262328320233740130134916780882471891273729401325541846310892773694646223009408188814086177021846470238546048426672276947436892696146461193972310864439498802976212022282606560465204562770974163290539032938391218477388366683932244668014477981436346341189126296110656570529325514398810346066292813400388773946199443277522530466514520715841058100767705128351673688787582999492972311006183560373452668689956956618131070553870736607059306262128803435039249562631145396236930598513586154090480687184157298265274689127886025268773107329717562490270038214457516829490157667941253934546666394892740394063243696646774463561718825412534124415734951389887969401271900401138303617368621498793738821935146541089647548304980753520616687369081515642427732901425268467691861163506385717043191749013921099715638485702020712261463469933935423148436439635426049346065395992699633526370409014170935070192912307747841463548308877554927194767773172161255754766865087195750951380630331878424666402952009923555566889897564008944373382561335889371807462976702136701301607657372717832029990847609615254283153954817574972509546791991310148704865883561284064554172764540546681621331130089338667628777537694092326787605946179160418163435641290906347669823956307230261382847548917187020950457879119157505642242802468661497568176092009071494727323141134221229707173508091614711543299000648481716633659308237295361375811317808689271326784681802556925246309523752495677548834783197681868139311565316860819721828819079184707879767608952940067165336620976776611329043588864013674544113921415952392154754015920064049632433865568738107037984562451404422681512968536713454895717669831122383760053370790286140245796326221957106333976719134590951456144529007821873629940126505305680887074315444681211652767267435784365685146917408254536137937403134534526972437722340367745286157747531660110156849745874178307923013003651929853803922393832215383613223819060855355883341883391951943769483055157560039368338370332814192161933821326570031967856091970554087425683233990594746966678357052687545953201662105870844378730693793052853183521040970447434511774015017498850195552763904578175778546367739014448155931571558277366600421485787859741820060794278829972268893496664503470091876164524210863315528908462490988963369560701866588260331680995925765522675217000166332208025293148888025830553172822731481063504218585687270612588783214677259226629203815547240116113783038206898743980194745580651378720644248399362835488602544232486186053311650740107222997323496728918316944034878253076098288111707426969582935655013689057101510690734131199123564256518299048578024702889887142985111398429839901164580518011606382787168596462438536947666966298092161108394969840109287585538353601600027515194426150610672436938763284852788397777646322417605207481769339405635231808046203786396231286942109536627244055525856821031169961525605545004101793108099910687945016990942876497488498626489834411709091275174332603930694722282706851665345373428242535628032592321723851107282475679362734076036543420713973600170823915002029667930677652386858162735925940469257109802571354807656168220221895611122998145033516242330880633892898773165026308589951142070218379759561320890183794292793077232120240413372904792066321547202775416278830493230842670872926880865863117560263235421580558377839808509879008133276971758954366136117046976237731182577789876944556800677275163592873973870148845103279339371355276219915048883702264226530835273593655703287663693567020989891642940944737263348354516903397866039437142454490719730085576538885915180937864236650835556612507540619985050365562217847618678300204297775588555046669792922984358982615188020535668533018330618003772775256939032102552401837055245996524630701437497278618798712548617470845237226393500599986850281192721839081816261471568039158465056711048671553533069336305241875147978958777790681918239504606054229636803461024055289777238953304355935431527333233993402601927332903808934679901684677248842099559140544840416539517019920364529891947581432409023482005684944105785405080646589531550665646731642204877450709806164066896980389219065016008438447180601205818811745227002680625135399645832034658248242823966082679115099862753108938348447484025877337693301134168404418571668413523914193678833569994868920238369544548178844325117497175291600578526083034915273921636121101865019790785981703661095760198854979194967064511097918802977601572773764989715993185763884500194601126652777582714381942886146849367451294223360257367329120296114762775182024858484162729205295089434948539087511114311437480363177022151569063592397631580891794432622162002873319573533850196639358140162591654727894575283487846995373321243539383595426621808686212543999799575016902328686083639389622838634410112522669748802738261307281236063593630865381607933289557601142897337216577426881209239620179634494102499867359386537571154970447239536102574235037637574530834541070429851058535220957560888948171943058693135039496429991437561214596757962977675553884768901488948144038531490592188044366134892794756957306356812181111019952719264877481283771138773027379293324316589503239486370753563572123289197472771349059160973964802381911948794523228786382062321877109571395636468820904613733292072164113489514419467073207650836990229061978177887987319052981188181767790588068292554040031880414364910273440089273808264077039807038841310034942808989344988167814097401626771211986401152717757510309653180164016558233838308507291515047967799318120103393069581122036269915628744618935470250936553092717954228702776629473438890333125452603468912806163236003390334236091191805974482477513384921256773812315058192093990052663866132707968047621983599672958568370303394147107646119353244967825032278296969189441879044617732264294919723589039431446262801567333347777794206233256572623212501507036304394026221277056485731842204198102949444261440679485765926916357167902321789937091759184660846085317002898837985838778947174642627116222493418343582396154985240299381504485184605150382555288200264474414805684992352561470296083869069122298158496984560200758903655403522233099380585008546723284264736629506163544688797903687103822094580532107868394860029979197911330623645312361203632213064567298233082317333831950620090159935932431768147425475196295137286218011446801101211126188450253600354025128915847142873991999030604827238490201770304763287351007850793032721839141417064731238565267142686700236005930964944796253727319816008784655933481066821090681808044508733294004129458526453354650302150926355389655533262914352306498942654978320331274445804206647272445877695923327420421438192751389744206680398914339808218571090237581020897592456613936305152127071736743396070344310457814733001479064836981343201796626179647176594632559982409313591339917334856313721129500920515243777788018983360315051234405839073769519794591356031962500945342379291192891400950903005877854732686553736166475404971448096206548857201792126946200037071962546476904344716438843767697081408379684417752214385608199009372174291344406869655075914431149620144202004395358079714390510403977192046443573588362182111512726782604045748071823816849868758333186707374395373802552727836932806704817876058104692176423194544435403263284391151323559524053318824268462106392861050869563661846315173000740237554985125789631641359883640342005269176661709871749134184531745202620317592087155331673404522376773828237672584185814634696209810975467634219485214523359200768632030736820910194787219385289804926576960424109547541975756984806090132569399441585343842798672045732182236177379558536393365937564119772411068320410812114555307461867618830998486641249842481166671065022420417077991112744327967315515658556606622414250982617517481893866925923476343656037109397098162429266758316325617407702925243235896501370352781584371775680196568413782049378943012310654379452636417677886263806952014727175190939607396881833293645842444991325946565261775567779365896136197176486918696168322089985967903914225225909187274572022290214319092241755204035139861049724722968848872923395181922915028041312770345343649210236281783091483568540305266919023011127423823252920083104365362909125998592177334829461771813786169613595552448359137298361266807410490667272682043976253615948924488051498910331380045070098844558970212513947530868601090663152436541560641425657877322135716601447318423742586530414684959226225318484221585075128476297913617935978156633796458232631416065890105204706067387149119012872743285801770033905852621736011419919423024048177943115248951742289431290081248694363285601631809700950942435634595688060061672202049278947587373503020522310647659408610218332502184278971388898329175931578838573504566981808027405332216997818928135935003689149710405898601870960279762644770004040673728614248803114353931171279942353243682506516958477171902340224778263171015307279779089499991706307426746277186381449809776735057152209591589882520287577220107761367459745286677291478258410765386022179092885815344013859757416520440892014208867933310801289306931416806991257833654294200026748907594457503222777916366249289683134846452869633516334509398637099287858851553090954852611841145557975575592171355737340906174032206916849100945038961662156399901214437958379460329824636135975683364230496069649391537737730673180848739581886599714878334638961469916369171406313548031655905728220571183233760966373656279184552921269902242218967513703365028537677045574415824005212152652108577928044553205729246622602962771070209100982475567636186169261530528698543933938457192261493909927535158731253921691145872600139197438611724568406132317019170956278789772229136199703051798126176233760761470183394967530949556989468595651292294258230151373340228323878536720313259288078097661976972395846633657705710781996438710719724224727198774734882775803932597516521505973117535287256037880899057506887506200431142916739609381147564647867853487515603190745257354335662631704332189582263775972254330622437647693108169077463192769209337500462498547622040700948388342068463234769282551037534017642278023671697760868402525741033247018336887272303848591452656432674592161533083394254113863138441387825471903089089425560683891368078643946231066086767797470214126374184585804959785241419376336104621847285052810205479589965975333275585325963554548826323160632856991178920096664697827450123340913203682390527064061446118202001480531830825912055089000531375103007980534667142380375786636122652102749779728843651739103336631446895649970989385735953149093961261452375047399498661616676936708033464677504484684791907629764023332492425617094506083962948910156942510313071578049547164478252587724511845689284345746385782463545473828728185579648265809544296840353500541580120235588708249119487371835423839160849977526843057108984737074773137759731422488346413883242379200538590338021350527249414734075261728940206308316786765986925671396942653312877455569317130647531227812486041442173521762370860651240627982714323844406763788315188547981326628500623332005852820594352158059068993593773179468511158549913564254663474712054962146104840658283476541510278623046134531135674761831200741184120085043757531063953375363365298949583508333069732760980238497889423613887417950643924283276861521324008059049093109409189261776226217770908955463492320799036078999898967103547465527575806978599523867960840088935167314813348389083304584856547532814877569604126903602768403133122043823744830670066053305068447389364514203799460250016393226023703971729742720084058306893363736785910342231851813272376282973527985195086343980946939003590498919312191842386903730616719760707556282409586421147842020648834487093350040975267733022619952889449314449190206986409593423294819079511723134421694467049729365783324282814655907573690854553358069757243981927693509946116911987587861147570351703189208744640280401514178114507550856247274553080406097670602384667325934800718739963243784103926353659573560020348612143138126637596718601061998525105636804869954735960945852660361722730236977206443414193380838086186695035075737417953255277243277336396807353106220916672729741015030904292557951941328168694013357817787100833292750379315417944110849761801491611380748640479420001471884964014182434762125058209680595599798008170770858552937667561312605721681556366518872346732848952290239606125800068949164484866881730261596104788506198312919665729780331408904939446594466915523239039052098927541602703383133768225798651510915899290768670182255388155331856431611442809853299000022387434284795648707173662248729257614990630530022304038375378078819195993249503550384816528685496395008007923465393952720307666715645432445046717106214120764619121406302425234362052877164214917318121387511463236874955872176446591684565022147758288696823705112520715824490443931846524338535145625032754685718833101767779234052508021550670581786525406564256424591579437396373735142325174851954407910756275734178824874721029847181613150488353909169107281226386263777886192001721636367411533941792481615673106361037516661280995224953015227800457048301859251687820090444061646937206833789419862121718208683985738480361562309608252441863383969588029963971356867356990147599257597199324810555405526897943908080548549423392863525811914103402910042034388043400757317036934714764693555435706511620901970220814472434022697949622201596334893282891094494426954372602295492684057777646627787099939343046971069207710730554597385189092727670151847965042070945746536901973257993747943164471294850223901225354260825688371335234756928185209721872284856202299953559492296756975306895954099784381938520829392523211506404247408817122591538061235388243772487152139842076351186634247884034975278844620232005248605649901617664451816640165737059356071440006781011226140176363546957011807877544642017796627405511039574662288898611135017972057700134867935293003360215383837005597792862710924912323800461895840261127268456311270542417600282326519308419569145178668204798631366601115073288032451344539934300457911214265698748651736562723577120423782905770189868721521141409751903780988770483448888155878995479654009740228625441937738166158280753799012505094201087940820180694391499090264938389753850441499252770767576663644961310818670759731145529936248957881798259444404309004109233591320450199406875196153983564947088364532907246060231178251397286061662702227850053491506372522687007916310025236618653920764388450464458381251556974333801661631391308154610712767601017347090974234159262657624080666564084154549061767035542173019818940959958193592020427950391800610534332843700711440458807046197915861668443987582794432473523126622325264485844269574350094523249219403476765226964974069657076023629719888704429964972810436886432055773002876258700524184732097104503504618407746027507784501794480628247867168125031638816464525678970660160450915138029349917992842212803658855208085903240102149677389804618935611733216626515114423136583374347712168032541368701587384805028943283689928484082747539917797771305083033660653989739757931817889879545996925711582654429525897891065288497495654086542601619774468651303294902889260885497203652993251899070747043023109045340948355676846786318345997535692845073519610156762922739204387238543506744652763895255625379614437756979806985160928639037274081181624413154803834298866088366800000046674892918465631786297376063414737882455068503926714674178977864500226926992459858353623623733407770106317526901977562954954881947581046254035573097279367389955463631556036795078891303607795968006488861028782168674074076211612556544444891805044144499229649509430011784645357722665965847163200150655541742073068853017567963331387919434744596861309777163861169834970691684789489852420772329608045314477638031921435508156401042062824881585041903557794919672205540624388173796183413714582631666013183592390586200535105186759939851005823673717310861574368323541269600827773711298451905148209919811643634259004728027505214546587513101662696900576859651836945819808924016142254081121542155571826345478565795561343091564178370224116581347324624413714525960726897495076369480887306980797534938861317315588484595734706143637879913355432412279247506727361553504162185200213015256723246704284134074596627848509204274762956469628010010332898073938773710957182958886843530204076976594680671683350011106605741792436882660528960671827832715862187916962246328788662655594539065303101492862483754262190884589718165567659866438536791986911442748818487297973779598502085196880989827090031874957205006064136841822112945647822482510319768189987079910115467046710622002976159619696488936038255540646033696859155463597989189776748503353009706236152435364440208214795755726544738477184650258790675224036446673723995125038772016512264231327457680732571042719860416369115838682570470944099005748300097132435470897559031689527745499795532459713780285319809731785758543195697752058724933439435295081816804731828367967742131954046080023973874811888656813031022783278958178927577050632917534936016456244666890888755746945719751182042368884519753248113051802449113013402028357411183171786025233666733931655639323877998712543690388823170083941045315335504992993280872528907295109563046509273576205498242823324483067780508857971819299357697205070023242491722750467815618135854349321646937791689941025375691909916227246622163117483113858768897644206138629951352926338870865980374021894741688862789906251303956317477570331972396382391203218589118717128212037974920186562339097207997948543180702706855563694116480437494244545837925028752312547816884846264479454923712694303783318462714054894050531712132314381222066184478451672446792140183943870916943146521121825156843348431590656890676956280999777122797612427897221833753458067644440804810112691320071355932166698565973929743797198247210750836151925674994748182810189848464319188226594021466394484951543293091586826221950456787861463200627832787985293520324918399267105395545382354819381468980955451066145579892343779477199880516451707431545460982232614414106105606617330968862333092620786449471280764702549061172399826804281563956719716927426097501846636034409204654371443319954212406101197417974886575571657378844576439805456236585400413714619300343656827756915966635118418614511754498957763702425192079765798152292510212052890350940208502034520136095527204278930012837822793107358484772774149685011746226096037182502388534353030107094880319102586435654644937009195277315140822976859345448647561153873550722987641942388254217083332650139908117407992285188542411446201189745287448958633858104516979717265974283812690032880986472854171034621237634906917134567270400619380234135853138952581490741466812833589810391335997332100068112456352551544627064484704845251984080408382412723357616055178486930560806119725336784260501769097436313664312710307809493924760095353415468184021032791522146773676576049761569736713733357282377034514499554574439897425821042963641417090008197971147256010942001840732960053884950773787225462972676377775010205083732122726446222600754576366860744391002917801391612436981290089831006003970384180261386937707244195756471386823173208903642293795328700077826346546565680973377744551896665622109091116977267638509481363662604796801744816200841042616358050633912922562259241915369413586160504922180804039488394965817569414849671848388427354220234456751137411134103466322891417492478086617401135281100720120487255691305379606423372814442100818323199687131819499083400021483652512892633717949791620858654208382347805426107982329283228801939068145433905409504694620848469734056040923722540150559308557929610288263189151349680555988919228959599836434533368445653301883429126729623168007779687335653699419546262604815084439536846300818015567168491169936630023388587048730037991737028999164190230961350291786781932553084588034693583880582878296598719507512823621196454789655177451067744104408231491739297628453770908052667184245542426402743779782830227196103748255190422142811479323996023861078169843920053374229664277767140819562905126340104609660034901995898705476264734775681044081278095311840122381582362158509209240615545903046887060994570993857855963790821236892194668671144333573024339637659375190823519708159683470265961192312985051582483022513371450601058827788775860205122410257089579716416908724082976208455723822573295483027100172525838079695167967912410997626916514568431793224656839452652977777664432988639968822585992436905533521204444917903769722930902775592795707009394196416563445094262823683999316507476344942534760968427350343537903266059945121789985201154947894524403018750705063991429113369662058077304142684964383280435193678244425991497127049982898856832408275231262904889678657905112392588512241849715988616022008947394429456832128132909796072273812612056274600004214026066117985208683056731264105818337377005378104361919141647252899073854086311261835290195168544683288054488780097352513408897190172195566532030474497623183622760799966973203625717733712537405827562283132256707227693681410318045195747594135328617649470659905381261981847712218816981799953761318811457739826396017329716173529560208342873419306951990620739248385954788767813003804486372243858754006310634451588040269683410672601311500472324881816978385772908211740646512570477115126662991888200833627679563588219874944720765669744219893878949605687430130726271574628970248315973999421492833656536253810571653943539728616397389250251217304160134446151032695319102156373924664285818351804639292192017549761808561924622485049970697681308459540807596609588872490687703491183418482375918489959844175711485318869315360896036564320008280101041049705046920884791294933556196848675352971757719800214113423762257830431980698853708139974892106104030053785795184796492547830683961493500810397850413598554991198503455652807118252173496678192565451134190586124947571574921925115842951738179046123816411500418624106678170084758395335206386516203775486191341918369773700660993076298596581697662693052790810180570387547276522753603772833747931467986169298933144111818771136763117681127240124051362905729090230133155503939905643331394687499133911521846177575057722961076344626839370785750765686147745896148660740181612490143236266823680358706415416364320036463705163458328150312792419332996789270341745843205800245024520149765356451006525757547007957788321237195918762901653185889332558139458964655627809317823070196574205243069826416497732542175446019454222448344545971405982588645425448320918176073146796933457602831153066659529540952743598042130598336010733309576358594757866348501660525611955538861168860677174715424147484469285833316014061112928822818681221904484429475384895050886823020104513529247048434847403882727995786756643903045259959643388216494278748795662116226555761115328085941221224457062938909206644188338410016830530942667013716396666763391893617905687368525425561478801328750499165467240293392914414642250558962552409482906028619530895556126603220362591763716314628972606877658010495388443242834285056199399977304649308065741717187534989549097435015598667448515744642697373095400457994663185795355435878745271932454687266538078694342499509153268001868738491264251003431017100248301548621856786191318187003099502900416862599411132669203684259650982878467803864662652603704677269580717661589545684664676159552436330894866635302150106812067215062652269839945015704267791037279914730250914585099010366322479246473237265718018136808129854069577773690454418668520545880577967475523823742050366071569627822229307706756715570786310087118275932891933159133550792350183430873104245798026734083424773296029427054070484618288972310917454313717277415185976990725614160234526304262661713725586833000418443807014669670767306961549212874769343279775264901547584201232531965390206174783946413027878211971021957418781002225295316350121701794898771097983706561667871607968455691374239366214129394682386333572167996299047721557804854125060338024717305584306825607072360080180378180428307984908918530711672717189580764116011596668805163673339047049026795012971952558367743951005481017047657944014176718941676330984005495841317898940424820431895128171901570068006237902518425214111662232551781012420724447142501109669333909653783242429790826881789378018221069138993949499035854209015353341258110300793266461929871673966839539730907620332382144202699481113607430299950335823324321828540596246931178526331092651133635130990128001099898339240679413475650625775491577437288541825178129541997109131847356263829177545410272860200606883160880494675627854961819446663778556862701522213188539005196421229212672896195441529460802996920428961876849783501959509652724610398324193201446636423684907901262341963842359481030102055560805655889727096622426601274288033482358040154381191613091658325539736371039200754200848411659955462194583040340170530626677520816749232620090400073069990211874887418569386573720056796265436780625062955105787037140909842286892421899806170206863720606456248555925842621181598843566502902795873091764421488389778114875271488306098164044756872470380881590176089925642273526482596426663336203241702315372045904580945665078287858086819524389574650436264633017363630494218150273697078581824326572857110118718783729169313064797655167613255401060966877367055509906509462252213972919959748400192454790922455810907350581424107671836113115197602307253884057939263847285986485127522743816901322511205143998370181445170123905932145913679137587272803663945286357549742106043717071306202279900753053441696845437304383671038480226392035407132357808895906335215596784909971679528395267562552545184824157463022058213700665610411553747783361407694883936810172369170500965579928471141932549267331665130359023713415271761526399215386662953580048642216251019184009026180672154843306749167028503706893294974535069884552087321588426772117910073368133782187218115595653613573488023088366117946337271307550754390124453354663697123955712863917872887387287799622684710909544221774055355868358218471745843006846934038170290093613528777378876598783635928305852716558168456179771291114223068267226102669238922687423500713501109116073847715001896982234071498092939696343517760102669258307481195167103216135169905749107006406298255526524885434262522113572844715993156198141237871603914111355987172851530179834294779410267800045297605502244714186406783282504334635113871806682598151158658270120359452536447505265244065529137619491799113550922521954257234078393959854212483381903021852416986177147373678079475035793396925079844447613577471130145502650475558469597056308284849960553308030538935258872973763289253328362443779549271016422345357720257885913407781423618764342018866690928750968239826643073621969954538207053144466987356506753381757838083859547795809020440987534804256164115499042922513006057029208706038178379857896862332510593886490616795499996629266777346310935307431772983355680682590490514834158052210319274870116046539607298582592076322009716481421055062632656860412478628776770586262366084229104318498189765053792684257414290527130955994788676192209775146609627850514978841422460034447683443481953581882462016582953281093216652147641075881949669483839917258147079867064295989182455117916743767008331546009535792579410592398434713287073013288205562280538506724085867917870221053842810865687954408650982482242922938732602636962609470729471832248553528265509060105858876194278419698445156547526572040483075348878230510541219893292884600919901754197798935257881500467071075438946734234341583712203645642445856577859633206972417711394036357898166233976115475898398100364969523460688645599857387262397626657237245371231004015853611808977541625311540800299504694845458061780557550407037752547255348537010576926919294169602474301865614912161687991040568283384451508162854299357201166197285667887338751603563962348853419834323420428902819000988630986683477585181919115899997466993739988395031112025293998378237031284419224934364168888178376346655800839898123880352671096062112947856532729022083150936334645561278202416509321896225067787459308744785753633244859940399336745495580868357193642151743566095746525375917753118617319566870136333372523030122044674260226196918022401581190859154896913288656238969689215064059379534019223371292800129641110247325383166034693298196738866731766373509098114907974825712950270756167478338682211805030502562457386719714022888082434737106725298432797091481041002878615810493565747608616418126068280444001008576803368085542029342652668484034425398528561750456226476464195280618899875916494873271457227331609992770747870335894349755390698316963042758990811143283150982561378298017660498173410394183268331600452471536486936116338064703540003979572582094981427054024556017138717096170371054806703908960393058487662492276916265653982812357929757988480766733986949336161214366020254467026247941604218798122286857293872600819677093554599886855000617925426654700242120632438286815805681020954227389153478179181475156646942249766172239944846461058283961735570404691603381194615668379353928903377592141873116040939952332731480167507799956761258954133721367093264517264119717154462572465626208912394914474216274161786792632055341910186573972867949708733730157382107877193767764004185623427569488457534506127012203432051130489973880989619164359872457241848015577056507295487258259382879516388597248347737638861726958950872710924759473241544833049869572267752119082058634666926447784579524194881229985337866495780786407294012619656760281236327266743174933284183011362516825267223255413890781202578031166320946228928615853100201138092731539737455141910956871952376991558545624329980308699000875531491163605375013653258775432911315357220111920728314055032202364555189595256308817978599980760899897828448396655735005857373432869351612652117856572223591022127209874490477862393086310583148702833552661562260191038604713671571864034547730082306759773886717975057600162038863693877629263283310742161113681732117043029256693271605374001485800336376558256778389784565619150294602425422960487023561143527276605728638380193312234466312517670236239012369331136449394734740138856406314246104753425768318016070313597768388728535590653249106979109050360413976157923295188248862904959656198442115230691281893721289188107090923754438888623049523733909266200413853635934079192966525818515999481249943511047580323916992555542432211491562549180896816368793741324695910886794837638153033564280129659856227241181511182945618674368733871068381419647014712261760041778653916263809623588556587263404581389431034505419163410581197890223857754071810720805016373768663168165759722002678665660579129933555400953781782008104917923210918719305007997172205775977332564841027199847381259065535486369836551743809606691937138071474613932560571777137227073315865832770654520805828163178851280374445061239917747045954304070635792531654336898480997160812261991264715919654097188127203523082400128108849838912338493472135975125578478133276761870069917196562661196037121113265815892763034874874142421954138606622924005790928220784182324271446328799163090544523338201681159071108552797663163791109742595933704559989626186691929774654082335954944801299409929932399534731597907792644475407426752777431626074387357468407707185598462800629295731541577832078107079748653790231723131169364345794884080085175420568323190113152005969031397388109102129230344518360566643136771031036674302639962556686795887277755310502983222654490262478188451962981928845280315651168274764193939335496287793387695468449611845677061991387847181941757752153684436941889430828427522865554482015781940614611858127989182751846585280203074619592903750268580439356297880287966846281476737113488965516323710664793297569187381664778227270153119220278952945653757097811035013085855890754146631949214222853102652724574349530664931726561125753626464133137757397420782136122020381881609804600456477880518223721623669037358502019631707899315128614941971978133916124037290349000320207272387118054490997549325998793897827314506669806801043492002568857638060055755254544948969102427777641591358000354875094834252846225546626847829705156758275407110817944021357506211365920807147178352223526325881692540212523061316786862473092739782313063400693974361653964623290476420798051746912800412907616980887600456029152450211283574766880984927290965995140668144139934739168445160711612357840789092926234421284723001927232679187642120181128842358192483551390228261835224552006151313455179752789182107526713579748828878487522326085756872862106207453282752635155044015148086102590002679017416088869863727080607720919401775229430193053316740827354615127217306994679788978401120731522302654738547914007831339705773893569987431524597405635891023182343087743655785826925866363439023066736204977017850440854265489308579525957000571782087458269802505968997300351969114790710945004535118068643570541657822119721808507913010599806701111159178634001360655517725930012438497374289924375152866203279393357338178902565063582410611729040857661897395569251432133099812277613932583453417313681233134485232655765800795843076908273357827269995865228193684735755604253800740392719908818695967338741813688263771732257684394466283321623483054149280260166412660142167472740897327292042472582841044273092374096659857598259192629073635568194515454118228068735663733567682458218559495590089450713832530036545584139022864096196196738374083069177407774518938060047238508135503896847671453864538764594883602479618359640006887895510868072590630399540352172572722754022457517845929709322860016632765582746209001279479674587122114590816095750076096539044579155465075946517598258985386846843580443506846087451431950102674241781352258630264116717917870938680340098982660569258433839494302176463031607968383805050861888012625777843373492002108246327686493480952199586113802942334751018815319244910778262680579587381223220084614638022970610024621713675447876597873829882010831718629817614808427186007486903160888731094681896688037155364072776302938888297986623477303394845397969801805426856550158623898931370309293043774017415145688500995794186087718823831546159256917167953876098664303851591503428060339373459596603738401005231186534176179636717338615334369056936219875658490738584199656025452035703666528100161920212685100172830513830414001268359718415747696973504446070036038482615818842871761349184641237883553297175106620018343508442019679834449775406971100802185046264183809769238805091963397155072770396163382907631964067002898862816209888860306021521861608229733588227521884455061553697192492824447321067476371160233010491666510370176551804416065310021981942740440095562819260121650663796378340101325593370246652330211082528949638657451995303355490722064742689274389368776122286838813059301696793473137220232417880028971075843385003317965079928379379342036177860144078032009190590566983989662602065154697025463072756979151591893807121751780418235727089707231585375304294156933012356697788114554613116897005018098324812426690298455233936481475050318779870072260714073117741368124985565725013641937510796914561215976674447679240935266986526598656999278421917491840632246063457904046362021921288902543471786429617955711287372051106097933731696395432867762173495132843996139339057804968742952606843735371254698546985622410434182250629857502141478376034166213163716374532430300730339025937680157034635612323952011200104958011855357948073827753615282702561168558598025618343819322230467851937781050166164865366095485416564533091308515747408860332579332966144725065283550664576456969148746860503634755323698529694240264519558860276314306443393903554501779112907283712646164913795749144775923834074802522450268166120649667550830813317730293134082429501723014347628818508134485383709655841726756768926906738418122423277600850111230695012797297605206517263877495138321639400937035467476995534781396682771475146733624773534372338157647494598281702555091073206748643131367003938466059657985264752086315444408926202373737057210114177518730389290081138515295642950570346669293866431806524069683208171543936284819596857916290978683884828339822255156267838736215600483686308628662094892902794446888473136187645369627441697148272222278280250960225175653737584547434041538558246317035710461071536603845866580904047617654993342816707099597536626814823964493038550710711061360387616493740576637621892304765693771320949861857350020731607716007234211040807493708372413091313776052952935811208504677657894181800334982380539587825318049527232571914620490466875906094933016525650865013599358794169124574981621139182742300263058735855111584482054079371241952329204174422721074196661511182368207324537392459693288211257061136695637525955618424232625195931577601863491949197869686215068764776510547322164144741862585158331309894246407905465296308859305709292245373438521605916468775277609394330452320409673701813892845018707883418686217820163289086698928437863594288213697244999111870010119678223653246547709341989189617734892638794194333364307283917544731597185451463435453105423379824633230971196206187401446837221164659475324412871887010364996512573811264604909607678975126209307084926301021920668495706815535212732129475649495901782055308505884694025042044295654969283748490992917882994194524333655879044075355302929442441232989761031883088631763868077114476242279874987391592281310595043623945906064269243291112622957221850711273376076117690305395952464520093742518502091068149493251560315916347676034166347631075698456048068799514449411215400135056777472736380458685208799825997866643895986625857808575457681411084683898266986041766442749238128614194942865640261545637263350703301571589368678437764664903801586179278918219253483838669455254436285003489683860144502851028451964948026107229972678546262152669949288430254598457843202712665442116020032982165555110043994782535906028763709819653939269320655882465163596322797778387735377192211694779489971568123261953781084059872411588629306848934220580109445143959406803972197362886186451121472312344841289080545936161830124287376188380721644120231299403935148655061667563326333020949291704753992068937022679927478587006757367690694971599065939968631076627126161033398127090662114486329053826720294259855186802042825533489933094975985601128365226199227679303326079886768034991121701257563269431757256597182952837792073208973879298160375475714068033616824427800022435041621303476342686969120198077398111461938486255030259690577650029366625999974801564586789018514040735447733420748425073788644222728013419620723376661981667991948374108336748161204180126560044811079327673735112501821600200891222691602866875205520242055233437680984003562460649503710655336355142696318399788343275294496163882445543841798145048622721127229668422556299660340437347303927139640249744944269755598196484546123431197052943604410557663241294328875970169436081459296891235947073635108501718270885558205427290254378014227547300054492613023240514022352964253424199647542358389515427577974889662428866534846911188122221748567130304877990427321410868302605871955698037164990236188089513248486788757095245112759106678080700471846934625677026318087972641987548884486542930595848289809576583203462628126346133458150870379156710692796013757009691107257567015874686342595996298323277245580304006077228639684328683934905986579699732248150946314363661273124866525187552216732990594714582838279238158314139720355408995285962229710585925261353881864740278692174838544402395130439396377402215564962102711397963697676316675031600433205340021352110737877917145310454191002412191292057237775887351872258427263883773883263353619849154426100758072359868676573790849315434484343197239146935858264792863197783768170914059762002141551702809037773699167734908565565865070099983381396782687097835337484563313935020901518108271714927388327125977088228072514887918000105445457965138964430424029653911329524425085909892884128186457319542674770231716377568156935438126207876293118125800224754313555143201363563824504763205373330898623720836735978079157794078455474051633548183596444492395939623861610376653262801353829905934772836377308339306768310254293865482367949906513642751801117188098974567052948026495463753302017688111702413180384071850921523614117335372228556267274102366742624218884389277431055123913807478194386682671052971688773644613012605070595438395619798390824945221806606427768396528245040072731753295116224342556879389786710929908465296913088272989954379797077329527211271695159104058752162425607147380273503555624776834197363976526146079122633734790120754454468064578563148056489329272492093134262147369015757063911296340022190851746941602739079854955798146967203695068457992704244370025129110769177907000712151298938194159702006091049499552157604219815921055565421423645384470683674970331928147368460837860002212664140627986192948511860339189531389943180259095583200410367975534300688291107842995253193244006811612403086090690903916495104911142820428352627389858909935762326112330839929165088470571967750546401938160823291150078403217331867533182932747351607863085565736525857639603475683524140647727801925162386632426502289315878389856125058456704656418302447245388212398706418251883756877415899999317706698756773292699299093113918519168864872962089310098530773817379174602344788123716811634460885589092659200976272486425480594074514647464140902374907755814495234583062279602754782039140245041070045130926846852323332755202452762276622009511381951635774863867747239419394969437416290784964515184398336569926951198818988674518895665448600085503102026007170583153792720727262571327986881961248882861791035686302661743317573322296798463970506016397733663641110273695723206958152354843587136959331021899840087140053965221910502570732253496525272922587622675645931782490658940225524529745617408034043983700436223041121516508733783964968023908648128195613184724895684765599301465649114706409216916810758222108324203860308532929854018573116695373235269906765195070176551565749992131504690134339149195307309458518995798805299060801216783601901773077575015499395840053066982472459722676935502460649271350676788416981416918137874555629731140489841591093707482444600947682873796509441751088256987899441805950492149351988902199204932077718147634896563085094878878023263792152786503644292800849009881392506487237778491551074837523744817189899066872853959847261479058357679832062573827125117873999068474459492470389874373351101916580624733857293589181488002044380287219216537929006174114787277357807467617433741216700076999320438817346049870631756009940514493232672215962990947231891281541510765576122470382115427664802708162397515754825086939062115206394896435797140318551381179698275955485042459998118056065472183595415982172459727683994797337091520444970822720643374275527570782233080252685772085821982818384607719069722749038240220267431994357590255568298495343322307564449609023906749723561349665099053335241368735385070609710187132979191828288055042995325584660191752144452392322771228964250219971484709393442071141019180115078122931923021978852526343336562863711515041805046939147870851728234605877594756177448883258218299394252012908357605055195652237354542088286589099344790302836410552816917157605009565507735528018198826428298992052304002866861292807253611765416599695658664630213889346715558670818762535013282226985799716152393825542829751402807730737684873414758703358139528939379983612665137917670001207081937672716887842418981759346317643405352239586787290320844356841230548865902667431751661026270378804904260021334668891598752968593590236900194415074923258922105600712616555359054575015664158580568228861490323243904532810314312134767739718749476849267145761963900247849628655225608292817398680410326077437692063855150817451738016901593758673342247793155216902066071928547575453114050424945240310729442132479776774887994714247438736100838383875048208233109998749060794521068159136146710173952645165625097819080256376810104548133174536835216304177403347181558744130920593032958352761186548414123140418966689918318494628618573453429259099747714865576036201333769340112253257233757911606355741384184284959363693855801462753359895288725740797057760129986175766781674528735449793473738948728893572470585032425586292330056622472961960724739170965430722888219686887799808169046744520674268402789933435389487553737890125236385842446433894854936714899561606358715982801992399823748256672982154767189530645826818177622780296184784003335486557596816312463188955289775878631979633908918198649575385082207962225612975889261066158344932264021196104000352509103903174734002781765233429456333233451291384664326049721520272051333481075186624069986466480317750579523743255002195972179083542704252330397601699381310854921343439179209709366507000629655804840021108650445640964617341024986381696636431338022775152910111424160832353470474779408196010586201309306760851697701020151415205678354820154359438627657521737504026705575640842848412510639483573227727027978591762781898130831390235193033209629704524602981889880273571195999508620967467228361535789219100735684547220066915945672305111073529850894397927690265292304911333417999286100961268867714738231205393607251879280119290476586372242758627156618576058093355074038850138631591482823719305264780998675651584309315603961752152496557034568427977336243448751376618719933648405521052321658492902812031901029667296027369639285158836059348399724354670049388534031065771551048095622814302761740617354876420303718533863132183669684000947609767074097402130593196664096189414405090105941885056495356659381353782755762301039036853058545058276252828650763170320870072340829676277199812107083326193360479607253536581306380814454850875210470651285090620912225368036511509375201969336382572970872623357573474656129562867987209083509334547283894086452983523015069458080157470281559038514404126554434643300485971911058844778147025960720275280328815728279822456265194168674209598370483801822562993893760697833066768177025250056401917271331020786463037556512402303323006027508342453903079466052586645271337488392914825879320108117936170950217103237079807903269579773036452649405410176752945105056815239931901645706534813598739718338704722167010400115231521380102019208368398825937742518761267745496843750145118731354883646314616359128203904939027800984129519445815552235769250003018302216643145815446001096854099074918105678399632929742832889855804189653262881539626334450589017730472904287341579330008451229241175276784333415162959881571673877396612572293145527751704020320050348121007425357332502847947903493617694990266071307553265695863781947032461242069592793495228154155126474805565937937745079933858548668135378872305124256580654166140100079060178782835414865601818702644249287823267788624728107140259237532016278394025985058730665383691302135980059039179710555679342501440587792740357794267944875686856345152628822992271386072156882844289842286243196820502736319112405645238520286144969718215453355774138767862304943319695451763550626761766419579965822302181415505216511710415779023068145058557530444119759142232259346971318334927676141450658065376979677212053676908389658611970980369424136022098776510294285850050083394062902705915056614712734930305242592043219557082124848661544436234263370603811823624755490710580975902478016746933182106824878089676189140045043829214120750037581487053194047810353429979167490295603211212871781016509239554105021595179968324659343404668020292577068754516789999028679335428949867440784528607402243693849228243665146684541903247378581955021774748023081866203403953489001291978290753659089787699086634188081206322395700900477752673922207088462316304825103332816898912343149403945129153257118948362620368349897661828866734975000880886735074945165210241915683360441336501340672363482905245810297342586601617595738899491002889555648620232834072853588660198434242697090620927378847397142650294405267007502132174137598762050971218893719880668840788951577827369289736650428941535505229121490890075829002441669897876169422903365515475874052837095880037529903876892802411285650820155306579408993773649393000783494312330518463660959855734425450433014073990669066796673376865025419355568500128940198695413171581723323966726129663293311911901999162813853239499867176251624290716289915785277552078781483809101393213915220234521555647763683877731824541121958645322657391476354897122222377240844125849836322145385422047922734398879611109421978540022899976168707918474022144637037989740497688439604016437474436117101975794600226099882964149316883001028441757692205175106036918263376650325146452120750677308065852823376719719783086069515648067708247341759485161471169285238689941435483456828284714325478261759073575474358975606114037578039669999858589783041776093929803944789588034261941970200028710828670855681664778049941323314507210282384853517161397597372346783935396433209649903669821038203135075780178785715752691791165692628256979101169791121054402278867399639748401906257649708084078011027867241833728521249455121857160506158527638254927001146052200570777780724444117841289344718957814801373594930618668795444952485795514135533393939289345102481456793558192147399383895697532084896664540718807370263957657181875637225605681126519189473222582935979603915938635949977376806497119267373298313696823665211236015723039692524506632880441592151331280882508531451309104140735264044988517748641377547384078144166462228983718780283925891656074602381663522777294706276695050575510776562311960711783381262206978721258631841891534523606254780173423724490931815470981248576040191288963682147320951063030922881455490975605908948142355268117193973359616040188492277449611188245744492020225316123037547897500975482274855552914365267236303184704210921337980793458007063370559242083013538797028726300588653940862113626885118388835299224389523352086056918469178588741391852460036490757895492005459251876912673458448961968946077497628434650254585024754679383546809768867425560608472749477943881597744423698998728946116923931438105577100413502123741528988990091974510085839867351485172878347348564033581994817945951704190091890365085849256350633956938020590832886232585388647739756607875684942089659392744966367044695343360800174774669681232294835091842382139703647879317594389232159006687178784601666755727388370329285944160662307784628138331567574585307214098052302174574370076447858425225395055537136740989645482978938317193580786868522509615169517091602585804002982726197532830344941031736802250315214118653266792068329411990662111116350839095481457594108639380723856559545903329245406529229874350449351826053453449972717338711523718001940106852766475787996746525740645068523478749514428113814424789589197775988895086056924913270514617837970017979945905910008183445882408245540827812125572563755802715166197401525202884106213433050624045865985316359268680815877121247018312903648179106170587383378703739212286939647301044159422529690629433699318665355805314022470574383287755796363634706694936482625043863887052730683068239381206375271915725456766638300435518872389398645088448808782111901921026878914395197265298606096560600098406525581483733063704457945122863977690587495873162799547483174671085500503712616473972374881672778774081813120892347512415019247320071027039119759264882696327760097106000139827090873392880214007801440322842009056300341533833471357291968719544657999612314997917503598165948765941035566574821786865585447070871522796902402133142367677580845667029892714795243217817860392169401169934899893932302707427481768496601406088722664891552287788050970111370778947996516818375817565798768069013898111209593388155239932891722124701192343674314692686208825775667931691825143396597583193910111519305621597662624620469414727426673023342623001731208504393068007204194141136214194328078122343652969037353957551576017622457399260494645248624416863887023950594462795568936797590555955021966941771328167086587993834650836229996094663710804687997897776893692697795099854378150013662443544954818440519216217922438605369952921339212986102048619242532416118999923604368086435704696057210059172528850605980500758326941459059672208944154245669881466409143411490956748360928837959261496532518546605405240151863580938803922850920164872461392620561525002293251839266509267065341198027350892261006672297773199992514462914370340901385981164926125232157434019756542993091280561325750342526328177663579282055459197547382869859272509595397598182955424047246722069890907182260802945151767868083331274271590224694964312760210927388322900346558788854897664354392912807672531793831448873149579044102637334456867779873502570498673471046714342514832265356829744006464528932333235180628431209601698030951588055555212645892140469393652461586861013339829130922476956666521551720222451168181733730073302663203943679192108429331124372679977462740231605565129170346357686815915235779415155267953920078640885138503389135785804540650835735540650959545505039038051316733624126051611994004257145953796742301627396239976266764824609542619501573178663256744287454763842146304032101616451829961896854226849089020786871297381716476741961437790264464041883010782377621146843732220158899997157797931966687784877551206034873292671566531547298079685207183384715974474622235065574188159002911740159256877599730429450001495415656816094085727385381153553979273041632493384246003077882157041287189253049393262574435932094758568982271064239334207875697076620492237605602517767982082206977613306586293712571931107398539757959279784081656865597976816980828269019018131565739579542095300872375976442938603810532011369781372967047083441418143839480309294637116385424586486452314218557266403627543381964635779046362262166912050781771820577082751702942791466203019583830064347269028419445999898152692411506227037258239851945720752051900467109509897967087710815782669484255035529855219211270214573622824630656775823339153654809927804517609374254762811169919529200427157236443193404623354571161573063249305457113674202786287868483970206765980953081944049266348464845781978818852950564817355974868044331606192118498999510048026228268407001083393767388229934450252253319115407591662094684439487319856306917008620568334719245080271027992786691125395140233759513292894048976068140829363197798515684428260062463875007991642725012974680725300733488703365701273850101729641408982775853800118010896780016159055094999387835052968597362567811734897782218997664108470745552918247506968895612504330931629718099277551721572078190881641677204338238931608008864731759481183865122060080122147144407060228400463697112765664777375530662169012744349554959701972159412099814799510664290216969932851401819070244911097756935024085304921992066656795765267869864880198651023419343253432859285388843244962852749414173710393075881177940511121260745869486152119701911105996854603193494924569061544178165456867901044255732339678486613306143886967165861755241513194934902605509967609875937544821911707035809667104649955426880100098823039993807017304069453515736642875036695169236557579431355802792056766627022484508113539842482989596628960673249393254614065605700373636318845861460150927623221738206896929754425056116188549243010955137170854976669604035720588070026023825954327834860918480587262468404696919111364707485031727549254054481810434246800699059634001619759422374140777654930730014568512743170588902087852202423666216290103448454245434593494511616010648757245541522635955103644249677978226446172486230927547285061775093026246530505415984948763083908896391700337641956843309443839229630036901837619619706561879664788168249658068064506435568352751448898727306935468849442101964454380983381567708791533037274540013077751340488555279090366183573973278031437746541913652436694182664319337013664511351524999040342572435061869622435881817926134352225203795460634580412623207832908424246228241161276307487929511290890530687882909159466166101242971818990655169626289570520216424832268769307159405055889623940887342152701289370705207906590462618062405862353186413145940690131609055258888073357884869766584066619387230342724000425351061622971731329122456031981117624611171276439693373319086048039242652599157835621598032302636491605496399220102088246816134872159957159819124761200493067112757020111112464303275073239130180783362323855861005468292681337652922057250474282687001868519583864663157401425924688195099723121519126883840032368551380856534195009453792153871931190525981358665711911373617732084388085598103943276258377290608939852036239883637274050841795324304207340887931404103043048862917139985608308043198513646361460901981890349775852584631362098360050000363741901456826696085393444533920024211740807796393331231630901793669788241215040630417486722200447060721097512706673181071873781518937886336988363844293526270266779291655083394674295565317912078405811210401694077207771738495196396118566528514160164882437940577808771832300791642597908814817416069676781958647392913964326860301216341245293053742451502641462086594738427557431993891357862643828921614504054204574146691903665350834661474443174820917462793040188158751604939590893207273186865485737795277708676886282932672716459590370120661421573420483193966054962860549592400837644052238043913742513334505965760368095826587156778964936175324301220479338655442897068433698529780875549980198348387220373651384416422710057882944076611017525206386369044890321711243675503278455237294824487758707701986782426450830556918684053683180072580936060706792312619654128595675519669604036460384364001849729754961863612606772719861590992512424584158475096987921197549050890921268855726922842516139377544262813334585169472075087150413557923452305738119446903865451509990452746658169981910612547416325359486289427093579001911248937359556644370354823318455522422057103763457025510893110784602716425838889000104764695407533434860973450067457192425682746887229437383063510286742613184601713896167815928838337279373102971227540899858628132256848459315420466140506928928370849615735857730957910049650533733948960644362307348154393394098022550695094507131145552033183469672148745814979435404194429341716418604850980649932807445509085502404640338478799336519169009654948002097920745182150522662601890117993447618983483410557030743140967742403355809222633302695770111706660778905511196481183207249584135606398204159100137846914766617236308742994137412052035911770613939393540106068556051304582163661739459026218967749614413476948657800631323860646434240715240828847215189779913797869710912379982011697118587927185242618692552243191356626253646481604998524215306438426337785293991495979922603974419873437843760829329769378236646624095659378644177256399963197629037765011516283768830375970913134486738805375636038308774270476171596621634403136906897503273670958367472088520484896280957215420554677443895469848970022575042531485944235220821215598900832825593951068360453050271467256364729792082721556155349320444596432537195298853084963365977570462580635006102231461952463798335380030937764012267753649183651369791521982905065807273157038450689472879140617258025313196588831515912932074956989192957269631146607850705681994074566707637700073522861251065583942773648976548545562961638915559360856201394267252046207581672879000966650731748169682670455075623342146395210619530222604516148202358689069373555455441460264766029246367704099009422739963412861073814125900720272931159137737433385838728423134369795563276470212844078681531617485182614324524092279907310492901868533683878468407715374837046588848394110686910288046258844534779914817554854388134668520486533864167070378883430249456161424721572660636621018854016567980202676498955151141790151494006208980005788485498849120175494307920631795993346659425440227335474248936197025959719553109880755526444117356965173815529054695884196291646840292898608470987756771100542688970403423465427633721746345092514784461889261592666332842920610558193517926812924247447072249838294920907000702760753220963693979946711355671843456748485024808342739681963418873259182816080021456480146335173568033010934419445125261266090763016141799206740528066961753097028215084482295258486897484497132522568176736016039174246912865575371696944286227333961618792480101545489857740873030365609943091463366266666588281629906766797309658381595039243856261307919372463382949655461154304595716535094227132166185441900949745279790145918272039520387125267791758407397049140288696400593094053816878566817211009944046734371632472063888205846738180205351298756023650651644861105441487445994467117540464661275036964139689422034313258855977719590406865348975620830143327794952125739465419673395172699823498184654820501607463702194375074673607457672472285310702291231685803402204697188215564628731469943676969175278544218844003004628884251235421189826656650683336685964625036037520245252401135303182367955306021344642502174024557424191478529992125097209202889085304879671421204062023000106896030991288208021472338373087895974768239443738341619986927052310423023910864682723140496978563577431237021066720234040731725208114014989856041637183355603151840919701852743615404571780763213957638187301018157177197267497603697678059229346694079764921130803826012198319010234770052827719824261495778127477121631873290078363030885382321952617870412944170179578055200904369200105375796175540100543046403617878411496506156008629399986967893407112485484154888486244897677786401084129776066840908462956128140544214226384780415080289781215437844143637746193501225609436528274013016024915867362897932605749588789869844523159294919292495634933197100851800042908874150063263926411190863424678084040514049274627876755749785781171105314059627840021596941447696438513522824591570381789627164237398620739289809821097510265117099055456636418375300973758629072330943657521946116152742035408683947346966380575178323741693027656082899693804753605103628644538781580868877807357853519427903847964743859516577290949963395257496402423385471287472344301440492672392742998015189086491305536554396054188171403427447015953524551522433490504631096053322571033993521536891499173758229337004918749341117271630171776196484606965535942439320122965503544056809474294060546950035295984891366631279648285334822841607578883911082015745287662731686525837354185831000847227037018502465364426775470890857867346456122866575070237169702615665208360999148914923026145572992905720968272739523691863758113067999101548793310385876501914768107447399455387582942561928571835228009561733599710973604433995090925664420507156579941230901853308089593112101630747046758351827914482638232271136475367735680965067483299164882528570588356047290855655583168543318584856344479807708796858969440420716767647016964841641049019105339917484542628594804022519818339242661516520889992497904015814458981387061754667644499590454892611167675820618829385586931518256808659756263360697710720263204592002828564800893366430706331881831124970532318223934174625342259275094448848912242375944646484624014375588683453322046165578066795303932488260558939967607131580879644031530375421637281052108650628778566095279767604658090746659581121626297746000782805819393688405438044405293696218127777569310932213257288186747688397019487855013789323365106877367132601443342845303200645841541363642850537894250882997221620407981140747506105987963934093632663625396634108219365279803530577996214650410987101530823167778785141364478527610474122588161351606234469518002817236618833171016830975798145896870445045925159295000422798525122481679428694190180131297129723477783609080147463789510771828514592455583546405161517506335392387279769257662232322708678741902659272764451923506790217524829805151353666316553409333666995781802144332439293232640108619405235677873876214712203778185468201596667790379743582575177605096381632766209620352218611052035311731859271452915511371580351293763508248183916018416446485587404682198713799777815060974406854342636071022517073989891691273259770671354542380643010092200385800012246977525485997194189037132057610371038022052734264484591547699236778105121202500980988016680492322100036440530212651543390015456102058282248722583070928037585340370352805727698974873406408702800759524310812510348088136248168870447880038329281700289283709969941475010233110623155000006053704032381694715072421169758672563436324512572345668667043794217840833960150118264075488452983909172519263363402187176977402635881224493770236665732981707548145465515226021080128494200949126678259789474195343360640799730402407333267346240647117205102401455150183749595286997000416369688742650928864797690036850577208174392544084704058823125156495395066299946402357155088464910968390572832342570035302359303742776707584239971454177000661742721827606786540678376229586089795758241966437067729175178433865994178094534283629054658288117720853224994676504105529469779380482370436901607562613870090409682033870412528568618826793004108074842226784745880387886243787477237554321178172817287049431602265018484630170873029661044390247929104473058422943722923746329668761637065064803509083056752204929392838651223216905639708840328282748156829854949690930255586223356708345136859944552073833233474477744185013453607245096661163894523089067689509407184692746937056795629046815662222992424311674717949218047650257875023317976805736229285431100061346936956883739395037529505717097142675932198650099362324548916801077894758272704353182361354865448898414283905622400573228433793575738857440283491410803347229578226960053232359476966250982906760740187767388786458700653974245505203897709826469280033880225989407004386495188169529752328736504205322971448418918813590578112571774238614050185336662446856019339210023071106215049017237609130267320360587275643783003376347515186725145555266697264357644336917119277521243643599099751788182900420493836217464969421853521924741991292848276510451762003185985392673350214552402559695393138132455329312027855282793409120315977383996333767475993681528619217492602801988160235437088114308135267510679640461656270425353887288334519038101505960156865772953008961627650472000509892039948232502858540135047467237311814875722643335393856789334748579350422891471324588319967001313091938446464907718715487746406193596653737875484668220643008099946634652024365771377017689038991503176295859205789335997845310592074402484206427645579441491287814385945787345585146966422420684132163786903881390223102637866215888636044559406170864449329829201429620276383743641491174416793324834137532014308691835460044526002457107235413493966849237927131657750163450819488904029298607008494012306532851071185573881099296632504693794994661170672763852182985005785577761497043055401850629575181883507689617278994790874685280389783251764035717847115617633932385016706536923391322766009613369340846350352398508249898568047730925224111666442671340132459636971458890600324270653312719163725872886096412741872325993358999430635464251395352298287359260237076357689591292154566836927157604064701525421704071702741296813235131816318273603295504289210188961209144199584844474808205445665244387850148094184115861897279116231292812460164806578882927863933091757125244305527960372752229062359464077961530669807614560579984656191591201756316675922237193220719971966258247115081569985549743299429173442837414551515784383406270141873088639444297529233159523874083190948964702619380641069291171774505561453128323421171076542035711886839815837168404807622349571553383079234372050307387382256226905757083365325136897809299993830498486523995767137170774109446076946308737862477624491759979436664780153273055279105219688327905800081312395599647717605731679586521189584812171646418512881272145165570612691481395454175062228713291551060513923934136710753512691928255146955944671898313923207508931235710035150181523087780318865116209819670337344991645238149622822038179646719866538764797256620039218422282234828532299397010824035111259144525615751957832748710916991190382116790623791000636666944807000853673812340362488555850264595794449025653765260598378629726097730131211895473302778196702398335482394700203733751500597527689709775226697041185617442787817504796498573507522274392207062708929637449148191558725352318510375994099019704942322186325355810301969625576677761956308065942494047082720158833923054077177264628309119907907142772728770074070871839631726101429131475054145604048139156241537987222037524809437756033810738900937894327605482280749209466542987634992517096180569312103492393998181773692048174267733899384331172120131925928027965007129230234764769831643667890309907216491970570758475004696565078750437696454470107019299952386089891898574544487952786168126562726100299356288401332916106545245770984519379869072585904408308391959175045727437179193718897806869554650172816351152647425969393514516554084976300948954241635239535880348667470826122038820738281276900980478542849168414499010032147865666514567686493687642233642101679429811158356969050588368028262115705626407827106275529198176585170954578527694346569759269452269385116004583198886031717224188462605023101137585841154411987591760498392917686735488610370507574306785822571634094563831438437487150128988189573650827584440811456324637352514671742975306679079560449707055816526614199579597190294700335248404753799772490611474708710307070875005389660208446335847434823509689390735597368169683408393909181345507489604145035697209955999416662757475176886577746142264622170883995344952313887655221650819899293072091195350429142086627584712910682317209703121164177994041517494569719654858744628329875940034406658424680562073726726543349384776629277925813900694537179459811696756208445842371529118163149466295379110739012854227579669193656004494799002579026288989897108415406379163677169500612848588320931037319997343327281986405992615161975648920219632234129052674541934346219802057568258946503857483765011947939427580625094546426925289802836293524241520594103295359627773821380644735956743631461906030539658052648535094021876858075752131835426192940469356518959015534752308935718138370198543649144401922054153958291176801271305848605084773681405935836231547785367206431336797372373257294747398764249925149521787448613902769110070541156609962765157953118168615126770269889641885764379382953456160363018578261990514782737029194865770819388823571868139263942957305933487968110826785356062659830581758199935567403948578402636126014072383655236491312879034515470237549194470412685841903353684458565726531876087695932035338424448541350387748248536947197205744224042931963052130874531437484744042364852478964240787981361559888457267981027465840834982710269080001223335601955138140965787038871904920841469284028639034876621264321208096167266662476116150788236568703076223885072368160822419159305694337614778929040762660491642069392755805993253336082837628265301288716659071642434647760198154364243001184378374460579689726984509746670141486331309146026831462922983101235131380992258104277170838633000273253628923688084766428574742753360471545042800353258999952667969519578962331311002615813165347995362235607504513194670211217531067574643236028153632392466257203801659776282771197082905823797164056519485029305320782478425048252056124125928599247853261605785866214957090041410635815429908709205884813357470332562611230129480175834181514124051697712934514038095826936205086622403333790897550227769631330976039603692270412811492776605824510202262793237097669011436575242842108070799289270926416849618355508091678023787168604377079708966677480507033640082111974351973519988173359128772844065459330778715777926031340720279409633090477533558515730938439382197791407858788978467696368966747557492565813451293695452778916103794437260794057103344028383626794813938495755291484111978607287967357134001410531955758830588611076289723221823433363464014623292765157910990453510967983441491729337398570381722861910398402370641589743083006198439291132873884077222314947075929270577408207018397210682520704715175855901928975980658920370562252536786559232959539235406808505084420395721134306982453234914713484664987021778280105520945919884450039539930620943263634794934170564140700369392264221037730775053516567871358932337564920069984457868054150986775492015166663479240068970004289036796220725821028211825976731321028137087589273559413789819705446823256652676053755201121929974465770267671794046174005523937538139357834218132709970257307078392095314043518524839895124320917447149875456670369772235910325734892942952548684846119618632548022981960438671584446929144971660522395295782191920805040698926528316353859825326715123345702961248709511783907463100075336138056230937653980098247851545083349123912795619264907755678560953209913677011673882803149577842678177511420294549786933032638193818334623751696447958481892507345376850463073914102751627863456919357182394146003371152694120846618938068834388523586529613988317837611882996457179859270511810314100340317885206962312620821225499082179206862264285435053892248185253809142499389071696133726728983574310383626201920240742449167847259314831317694822489185209180169961284804458227428176658121508515791172850874809664909508208929041415662883361391524396832616707266074887554100987813992236357861698176319279589430802174509282970071094507103295093409759786268462394372306116514013954783429971030605629676330815730562617241246519358003524282931113294633464476511490851193778837872921972146350452810024142803843880588367672168502146642787477090588110625288140183427096003857229630373440402486555093224938164023129171875584064710389279588663577076335983848588354762628207890170698219174080249566211831974030959609092448552724661485264883025208912527884269779524564374038875237329312515866960220270832160881838205368615152444980775442717843874225600795889600302651353192205356264136367613810932222400561764592711702018128347045081819348412718009179916967904831934302424627007780359033017492020634615296028677964527540012271498836434546789199537543402465095230134891291720431617951404677723631982852708808398488364925319653214252452708282252164889966015629696434942496996674247780732217181568963137293617407494516330385465416125251829747925394773884723924279939708457434386789938336367542848258413388527535924612249187812927065512579506373977026381612193223006470964637605541397466586962218232115119375040543514992893500520285786884679906579551846637525231660579438340030505433955442907756791238586754520552221441454509257504731032291476353121184224138004889290961887834706829326066514390799399910760811240969079790126096808292715127710809682396932695795203067797621051836498027539781315395277955571919141618792149299016323187835930156301182349463184062033077270006782733513839424680018427840940616685298132062991965478631670402861941616153347831572582918015270562362390785893144970447202473316669372788868135512247878588640208742618456958258956593091006040176268399461563355065578314205836414405679370577375539127233438499347990371960162279323981816276640224059404820541258676109281534832535402095534019753717959139001471749557901263720201763866490979195035438993032349044877915766128697419289748107713976472085679822634413931390744660716539890579058233790992079824889684633338917562071637213481690840974317550591359367651996377169389709323543611941513138156389969665130464477180706899702843244710800715238058123043106798597340719927285499949250433340047856774327522387306063484170677587948554860036311581704925006272677633947706423097753830646359699936533605205715207399355485104691089197654404480070377132644827326526782622014323814699388704021420120807247175122359691111709488972142781648712522297716232091683098194282702330841553552386989162419970655839874551099408432232571464713852124951200103747654413545266296730023368947393130063488929698609993495888024509711926158012095216040191464905056822106010403160322893698138158273570286544629493399925613346738181527806861423241502827952909489323800422351602318350850743406013990572729653731350453283334383162599825882191580540141262154889472903873764403613879504109224169715397074717413881107900840256779382169415240403217336527108183561660320971749411516048640831305242121116695011697904265356731305938197556399971546170279930451820859287659395559023704020753576230019139369448374498920952467124596482575937705502444216664329449482629818107119818450041233581844111248219661607061183485352023073037613065971836989279115842148468267761874139946265099069883642593687497465792918534450942286701598464168589132218078938981697286748397197324311772436540657411331643906675710498671360409066244128663306674440744585983697477329556220115779734731714496745760735660776589103017728833857452984721584534520776679494444500955691860636363202181541016943108693899852853737608931428632215785551416734587214753750974687436100504497336774418541758615638739876499639060634622003620545253565737892213830609148223118041221334923555644054000257131451141882600599258401434446071464223412339383528539297396700232672731966581571634029387246524230957938291750522139312243946916365944181815409135033159356654230879605622879961911992192849890943407181958215700215396248432358879814272115681119085996804212683181141087719250625842466843057008242680284639390079217093694555501770807435365852629860955906868019123833923313628256937341705774615497020947318900070344524444865388115510435040859795832143369155410227870670736095368544827024033439505743597196299193737696046277508868645725188378867481108522785102574918662563454993530068913435915658046922272166240629456599422173408425025102508661133156431210749546098335899955333724275438912095764007025278110966082069993845574456002696673142169475746708761211618414776302402937249201301485829897795706081299157706353313575295484205851272626206879926700075105253394943993940649061343998883863512054650380043918328327465707903311390321727606567740683833719455193560660938476205197835032421929169049166997666131346277143355667144637644304117013276598437483539156520706154727054669542691663080830188195973064162144195215210207129909857310575869990736741196720720264883194903712432247420863745738678265575618094831538713491424969886706511686211354032864152999625563289229418944987728651520887395465314002522731059125378708536314930596115656888329047973560067508749222898349493588940367760483792631993413921813298186881089390561511048376430308006228632079053437393069800484072261838586724269156882878754025296310985491633090456397857619822545511053370798767931970209082482556527657254633919724286324216239435737149482405164119123797350707467142574900178353680009506607124954476341248546521526039084996852107779577428979493880757867278959396716780799271789489074234451841374261979462076065670383624020250838911846453066652520007617967521749961009735196351315547689355121900467082631086722444567865032941685735869903856220755530182005585878996310400589113982663647636191661712144939501258236131432460977946646831481982408402358827345934737052716701687306863465731502360736479101863358262371369338657406909905684693345954871357963043178079625960702480566274510317343096398098571335313921057574228466728101289771880854408381650614304596701137121402010210024037251451657559404551000720146257203927094317167537319717498339308223734815288795111954710612093623196286292574387022788110457698213224252505461980069981923901950175347905534895061871418434157687767786795905664980111643057160946914171881059107586798256254063899237329895368786794447647515796979417436785726241069357640616299215801156375630648495926902269413257464493675289122328514274827320583604049330043362833602403573937341935956521419108178755816180299527773763624049343547121956212595066885447404702287427521310585483067388064194995782995377095165759089591683787870974946581935934180634544886610141083513168547401364717368743132851226823930925153969355008281134026797668725201995793828210700594142247193255545897094950993472154606736506004720903537066900815298320928693291205101067523507952435696710530304492195755744464789899430612601724003563247887437366801824020729319465172786446759579189203887856213758779749748739438553021399011081542979242325045548963665489791793051253369886041076938555128515660392043740658520066196302296316444397130394512691633042845380934839328486736227522697109748670681295003818026909909768779844765837347392218977265198961080199583364640787126717991935529453756940881761680057336782610922952322018434572475280980676647626870467021890910298599852173307910752045033154966541694345066006511157157100874574559336453239783355272670811787589701675719038569077791875712735422337240701444632438747084091219702720409664165886527617071136190503061127457803813590632011182478970099109772443615273904961685243921359020963581862800133935066259978930707115287129885602324769400450108126972035747145982124615248196554897258890095539814758265714235655178386033556601709885144631006871064603268078113444002295922878907877490436993736154231037841486316101958963501410860487810634324896962585692461452228687635257399269816837605546027958540843586189808461754729073734846682689459664575692029211234998296982970548444670611465900446421840697189904540453973233769698149006961658015314828891303435655237250125298904080907632756124724188635688452118467100917590109587140896197949823692670475613212102598822144366065577748993125876697630102887575146708513109805729658619421410032376513175621798578605326414660481239060620755702736059308179452817060075764292038720878837129029983480213509284156461943282850836143301908567828513971811525901479817666614187376647997787489707481725171470691391732681640876598322397928140246911542283931830885882500781608237064720728270703472129800391362176105345842354910286892419791299096292286369599979692601273691057611420718224989949617018472429120333159567933466861264470198541536971260105103773897760461720849647868335119511681325208411272775434887313299924887772858493972778587173905915812826445695623031051817282444286557657769387410971675336942190132671322799704360825476192302328936480001743699720788461543073999474155060652260054891857651879829167611124012454864526207208606982551198967092181454670687184969558036184883562999512109722262656452099267414668542858402090049869152275590617764452195399410170037354527183814242283747523675981760153425762070933856462859548643776949377465334480744855292169485368940084533128984620318617387819718073653937885139155024354736759646943010874399215999448342580819243438274008475934706950112327013543698894795975247600514817672853351900892221517617053645400969141806413400893126464713540624217808730977661456808466935245600088394512465625722699740254894416538783092181300401559542694958655304006400101912777251873723398146605618725496465399813788813922566386462475927675049381860387054628737428891377705117639900349571691282188188129782212841225245634949581805657532512878094248996827619083224879757644443012627777446760290561915077120656501640749203566961793038596781133771181629686436042493886987593774778423491110460309849649423640578644443684256358692461909317271011909590297660102270867771393933876054978758128945622054761972034863325139471162907688651857983948980236669903135233844845334135617200899014718661476210100998993799456414436132694342887797045645509165380847670091657927991875650298057791919363187803342193409512312432827838672190319929539938811523764843742335698386224971740932692038063603548706591145869983924629016877197641600760756673469865907768684429225348324640047899660760192875736385539439305658115515981430464188395146284294642395482125659760611198249163151913387642387893635272974628709762932071943424923036417843927907951225919308286021814971867294716595280724078521935808081221543260527990400795369527473139108843050204992022239437545248001200489203415741068059420690377495469701426713163413735280648823999668211561994722910143501734771525788347310128237577194175019482389137301968100619340485744878277494799015637322420951709152212579381071141390975142538959297619022770088702392771137976133225820761729357711203120785464233810407126472293324857756288905803290075692351933588896160658652298985526634075937869407856552270321050648966577742528191327912219492675056440183755182817808808866295764885468320735515706844252093763706303705859491564442719854718983977185831861274590342376376913745687559448184037590832411154181761254287518052619137929232461605145151089917420013321829417789228259326360808416640569854790012228751105075572904306763278426781997855925918817966649033022932583148025553916885566611192101997288834674673316277056170490872676192980199098376121861491396157394118537648608210254817181440508939189625648042141613023157035548322079211055592399796774671276943080875317444392115165253029987522645022844001555411304283213079165323715862717265018424187362890251042842755771001898330560808921263284827727110118433582046167851685649882431920442806970660140011249334800886973366977657887110442122852803241512987287492361946165270005885296507238257213071339741932439429468067255316184565092914645452225454196418450374742437154375506951387893266057045709743175023126775901791085828811242706867405566063644097597499134816217399345290047320333738730040487000533687100644360776911549122323142763224945875628806868653471428791858921447364350730742003719477876385698370873238303961072198088010765974346394815067002522124766536361960900059804059515291954545648034813905645902241669395626617274522267596562977355064296234144979142372881753475145355982157390909722661938850055924753158592051869295978707808983246457714484303314135906365225712871630605103906494911521802865515779442421028019129067221432282831751062612532815630679211855512089594653031512764254550679397776145915534087181551537323958289643575425573486513804418245186606998816712169362889575927507421904010879076887370237529948611601616156543558522411829260580180722223941120263685499448449961559871889317491372284647290747837284933658433535898552209708665198536648298178588411424281981392801560901702007186835852621539934852357551294490186738262954292016023297750995416991220632233103139408682877161047692662965695416725187133915896867252096489789082014589217601397236539333720188098264920087226289099699980429282504864938003316208722002964483201149717849475048976044933332741425895014886508691359544091826802105988294904918581687642458750461385138223755051397046930601609450671590934726814680283399332801570299246172671194276978852951472290165518942180820372583290236312908058541558365377044980451964764657992150594959995763627238940971472157164665620628109548712039341635336842845650188795737533838944930725182809260117606787935929603417039795477268594344837322573966028396518567077933665403316976011486536471424706237343276080233856358457670732864896540144628635560729513673178644444203099572836108559327967169382978578718249547466521649121963513063348542458366721774802699684345266307431611652630565050187499578236929162702511054208717385176353543270754928980111243512719767030577980044246336277718489872241661741883962337773797532188753165935286884442301775170687448407663084368731141743284445403635319276041772043438544869093524172418929030594106255144601541520695217235900861569267367285529965953399145231514737476110999065446421919163214161590358476394063645938616212675980189426292677479311394665130526430300431116766650588106898367000259935600680994763681417716670189952964841478823206785841507467156703506864018900043735575866075156939292652507956915980571056958178495223629649733470083332396304952658491401307503572476361312716287901677637584100155826496372571381100396614255816812013782561462382265714977671888079101126709901897087264023480418483461778416127592803138081152489183477844312471861957512356830400925379300346974141136112662595621502656510534687615926266749177581349076756673825691817398898315689581771848621799629891786011589281564969816388531363745382428085944496639648274058929109433164869910699160911504137958288907923534210751372754395165922146739388866036681038036915106778847582746383063907025814504615551943308234805880644386218198522381344904599183162491151372978110795287319012961909171720897501412063071584584802115236575740554321160566755719086795857355669522921924715152044989289309086603232079302882840360793665164126120409347721499024874639936956301056045378842547479111735425200518729352121544387935425892723865677942904535029381637525019452652084105397217476359199607528629834333146348261239519852281338812222690604550176623619270619917442061434086640187911376636449157511454575042961590447948622919612707438254290505053261840404794899680840610475263352906941454700446190093113881978711324963315491441141032690667082496728100477515114501429707716120633341497142429866286053453148332988885467012218181340278267049871917404449582267221503603237384841605554585422296317308551308294108942076556705241330304732943192030892372556933262471120912054480905833141453633409501523379185046695611333405319437498061355549189842306073501103136600247229909911225847069719979822435018273450338036591656438780287871461173144562043000291454826887338905937291383666307980248561055297762893059705831857179752968075422872218773580120650408410044408005297793257950644652243576648646702249218941706776975078944629173174951280151632269394050301485887329974076197116404435100458495631491002987651624959122907424586907753145906480279229984417792958164904687502785089351156314575858819676742506689318788658236112455940279358669210674257063739419668175709457193803989903669250482376090118663003662159727656797004017169627361125200868349669268262099320277716300025180391776241168264319652784020992650568945199804414237261436255115621193465808053827002052717563879589839641523079461736179206460656867172631077360429775202326877001011626602592886111158087495791396950684389033470246442642093974118102577302136039122833652152528936135343729365975691914773969856390942225191973807048028094555159999021365584713672449212574595225653317226473597124814632998443218325773711579948234704068735500479104995929346990120976505567055520307328415442557179719175925346575252195084695753043244397606105126703904860367042080371582792512403255611811915814037716091191338945386658090193869329440626583116871526179215448506334769249786666690590575227713016294833675169515924599273891213666150229717064328323292588795638767324113166668920956231294817844494967228334261270157667565312170188545561825081962299196779329167593475262441601685663960333643824132916893013147311325851480601036217727610809735491517448855437833911169965184743392110440001982112873491833439430349471050449561654464878222485892703639968375828443529933219886762846843113795347283101380055523862258428979524513490559407895843850067515476173013014758479770542134901217040701288146352319258107192964557689191638688132341446492294681640395599640981088729359041382493762746553280360394756681056838774554265364191294444513882517671888489311510169685488052567631861953968784496372558807270899351946096327892544167285229242868586512773669944735847475728399752481648774137352403033869729561407822976053935247030348212224291777439137045724339495746518498535199076289731311328821822326080304178758508807549178153061232388746624224037944378254543786409860852091746809657727769802166493537378456759022016220537593984291649360480829439330773830628756205829739665110028472455542089418130337205042177384402558484486368681426987136859198077599421579675325620698281724292231591726025082122509921861567731008190684696216878669772498240633648663095945030766057505187936585818568224819403755408403051196452792961033464453781970414025805781801451278601819430250083032806004236066050951374991305615063465526185874044419850580140941773132981662736932009410636662213950869325526037347072146559511216211155635886185822705192794983753148271222013637584579247337607591764298169685127142644243874138558196991179646236109501374676899951109053186508557830310336933473674646643178170716491070650322031631041020578117857059127303991351726680983920215268014293621726576133284331303095170693471855264148673162095215816070088674644734424850900092375431749812531589176095400465024124011871641056378929158963679703539672868666593860564686049823994472216601583941020381712675283056021200751582958916540095411429589627402028437204786352552669497437617984140326188167513368917598769788820424369870767879850036583629206062270451191785418797354349059798631001441631741749575041835855511091881694736894579854381179178830214179773631630534988564804639077179245009139101933029018890919855903881425972242916991551244214354034775489885241220602681362820294779837214067264462084811046739149260817279889003139586989666649612570768892395903614964381342199249341266539110241174007302451806776001589255690020023769386041959745812853463258955666276267904038303513319067364274175559426971101027818950167305350169854319147381530483869646911404732667223298083810435527572801510156565844851125190843398180381491648572632516804166685828757461375303946470523611525043487066719175286358213576051486326911149157009532360380419134769871679401399614329729175660625377641884161945037089456295380319621546111513371295928067666243002710042201543554445672814809268886068716970851501492711321649579277092566715697157360627901633646565596407588403500186159329187268508449644868525163616517431740741840400847859972855317697298593235491080704508068074426155712526194222468604435051619187568969223941275516992487609193386939442190789193134194760573708422410474543631880933819788400685254143715921648467653133998284114050249510032753210697322583705812535135558169906392136419384241372654481525030617009854889938095789630229642269363856397571274348006157533284638328375424238951200433937538687851908259825157800426966668877792889186998599027325411835846254814933046450281484178361213499815823413630433893008249849354847049419886767896000508843270735456802803892091973133270503550953809888291674088752561719213756133587934056011183156057684538618606131842922053769388928364646665299321669349548410676025697602669923183277481228385033947093604571007420754132327124450460057293142704495796051903476745202825308874574743375508376690402192558968005605803725102646290922975697596975513538409792998011324475388483235222628560558346943843981294883476119385216684623163361530596322723783464299884231259048470785569034107627217316329679540382616912837198513814450510400408728224447005938475520591836875985628705701634341750015143005335249074470457324895478639483864595449388820275594345050410327645890207724298644367800169159286593958189540771696187009267902504255360158092050934832700571916356223858693093524268767931335179563331632597352492266843026600121243973351397596338282014034924512758667085313060281266187485402036414351331614956076164893695929859049757788858916755787235158306235474900234132612879621414008556460091069373449290522393956596310059593246285752337044708708357918270975715233540133117692336771281595255881342192651524524913791792025647874794664293781691952345304900949204478616233201589791521697907923743566037846487730112573502059365490080081212525764836672477273042466448278735698458192992901610200547696832413107914136662877635144004919197484791531783930821293200896828474983568158752230877243623047366728556868448211545282143353656686491400295970285463586042880177404342168537340891209266850840824555670419019026742578106904251935040648332247020601457316772869234128270295796609318706650697619923360299697306955008869417624948534030559438088158113443433806527003992053986630479744714418320638157050649763600992937549039728240152087836562813538628332868143167050848381271498584669163568275187914471771560614772834114938894460267679699916325502921253916676484092491310362102375737895714239862451611666292953315695005888930734843777312819202638909535595522416600083292168185050887753912269149447847603789518905556627277322403790407883753653502774685153688435134673563289904169994636267658729224229315502418914868761238827811434057348649733209076729656154605052963936596407711212679099626129107073983933406679807349691373996993053995803082500712106525386137648916617480562071086208516037926847407284138217402198647833897998692476092762742832645943883520960683001597727087775061156149600254620333896034496430637619525840715454958231051945481545967960237309080011886691561822638905766888538985528306330298999544565945897134458708016262186817831350497829777039121453859895663862933790507711235644927234898115968155120790593598855013505808757380937997143882798362418623946776540171275516986480802350950046861118802512491965983714975457398592057207304067890001047476234612914407409606412059932271292507347402721790642991769110923373049872612977560746152838012452725297410298028366910832496335034135699530290311185424645900958436972098234485517263223577895345768621464868404847007873207436310599647073271065216482822484234309437618431467133529757220180179441045178273131312337837756295518453081474211002659702730688141815195964341652123769780455785151216076651116007913070770645091653395927297996694039639800913101355861953722418353533487528714845924195252393488649193677709281038353359420579971522480641358715186345519279239179574505286840226117149519169063976079023590531498077540486350696007711045863818259346225568685140885692313441508424817653271474847020941825637121182188840881115849986548775146818757247704643924210757793565908941936489883290392445278005917182745912801586598820614931900053815175109321056852475742903450850082706503817356583641836028921138089289637960807299186244759217567426359598984331483998525141378723139487985864898176049030807146502791353073459695207993116635344794472315691895549561777590503858066123618522489033735001271073614486575475181241543529931195067149537403143685252710677313490660545852480554583259372698682109960305564324038483640457303258501999128492046547728317701052542213880110379653967596109595839854492449140247466630594486538610897183127578042491989907281593584049872749197884210298903428540254353021206830691590033924213830277480091864732375990621008785209241366836987646469949396530856796700930837203797701675556069695282210123878471484296802129513518141146041162250025271984083879899230944003794985314168532174162355603355032304177452591161518518841771802730520702208621420428398027952206562732697331443918973944138050966579629863163041447193196231061628403743671617965135530714601382640286758546805471308050219058548212885056571367387224419233093092661811476393281705867274028510949252477368154990424782626495686688977419978195179668031332699617029693355427520465911723117526507274039668291847710869203217519985635940514199382865009903554565622031076942415364200128071597701059533638974333491185863379721076060786597369059681071384776573018311169875672735945438195104947040451218356154711943322242985292642527832644323996291729235487481226626900130659527948293642089364845479121744793269835033974366305757561344652095477562568635866917874166086182028312408462134667834112433024733034088550484489221326957608867197914825464419854552733588867750242590097710441970831568734655536082980748535514193806368854254512200125692138351811957966103750102548706583675179181416444863235267720083590458866539172882074277381939087632627803582110792570440349479185151252347405569203261980785936027236430344643134925026936636341451635880575873276497027911183476744174067929986971459407619030419254668454152375985367062185292084250304678638329791162679135194917694819339222679328433993547053333301963578676006902303163463475503930906448242727936134032955410098191153312919377022796836081744207067984283504178442948327088285913478607897099908018191382527749706926559044506558622578368384782295227623423512421151786258429891385367932445397670720448237489519316847286839326281245933790566792256832928535238873255062442002205350955075550550977194173667831720746357291166028623227336559740222214377032916371951885219224287637198119893089902116625087776897070904696824367565343084030035713888089074937373336045953443287188388046967490662813505059431069991944817293713862312875757948765503907782938594973393259217327476568294325867885628902609682504719439551235224259901776651233965434446921891310084069011961735436232406543900601278705015925365035193470251613512417240979838446119030428830144630052035400455502072267630636452780925995473285171699561956685161697889512616375751031271050901767627111172211386632162137801720176224256499235285854878970726417079744866124919473582888764743052962353723103213922488489214389176087898547518308036295657323163719832340562487664239645160888020635776873623920803699359067517939083946510609487711571939442444661314920844664046001067962280467575700905334318833821812284040002594029776361528998533934030264668769529365896519030692022051033725072817389086818441751808596866945645931970009102239473244192982596575683360197938755374280208100542409724781942854689233069726353233219219895228422652206751264525529774870875776800331716535863448993401375219142113824942696317152584995990347871589491941042276620392188905729860914655282048341936989628259669053999483250788804151583382228665797971747072687563638965404805189927977283156758286962795065636153693150912528783634112941303002724697234323279039984691240014899672401834699966486234915125185287436930528514992272434672721375266270189885645428526231184226361754078354244769070355005937639893136727829925093276017078316123208491305865044895613917891238281297219068750888937292309202988131157477352291251233979179948942292653007264088264570442552480372103343385987848623527909423673928944966158407270823145981790386705165437981303647241349469331401292901645019290820100514675422650176410746731734792904534103461647468556872127238364857167805725746725550769731958706436409210597953284194181155301291830928347434750993880347767841345443923989779810190764216437608364627994904455811124785247884700978464439326857536480061353484684769791083759531855938810318227845680592609238640960344772383826568912660148305006671283260115360189350732145330219930547495886369760217969669528662253815521847905644444120652190095974532556571131811830252303380931630632673055671014932335021733535849788135444191082924639634880269455045479442999642905035957512561853732415100380431828166877484040419460829863272203973707456211929538775553126332092033324405483878797053153760613625956838290444218491997028168343611933291333008854462938332736372266649117697292212803329112979030878160294235719810481662154833557481141565925016012022330212426141221405690588469970379257548357333678870128625844932736966568053580933088601871131908035061659012678220315567399850573297315122679793458852621075049641389052033997076025242302525415798840541540317890572244532636913229839818064583824523892095409467153794376417711324274421693187607189614264444986996518687076989123503432069410262679020074287811198326836107962684665965484680039137360573280259759841156828348020681449449967094324282043500979872716102739854854284871645771001126422392398995911064323172851128451434200734524147941606100444683530272230460392627438527806075213782102264135145010334720296970957031338400634884804198796011452194034660469242900429861573983452509571249097050126905711450528059337970688578180953808221553420085057779160434307722421536004605209301737655830458662144996097021622717706107549083172699669153453537384397358290304812722857878357269576459613625265922108227041996043541946795805644316387049296603618031782861031047216944514358735752326817355543066305444070620233276613378901109275916178224672802102650166696424904683624897417673481847088989507012405199512785860472318557186905929287638968072074232337828222271175780350114395552370832784268921749068271068491480628420730899230193753103383494431438030184623467764326188822844217424988840089077454357625187241764174468628129227307904681843021212330674842136462907668666108749403828105786659184114088514442707586879673716599341750768298820733096036357099917101843963094973346047407511686699090313516007055797477129557615586524283354223840014725334780911577072933275579036301907348831452441933758750171228316058577361051409981365281022276896564359556918308660251659602246100640754862865073102807644929446480450505025451011597929935521678854832747901830697679461819265110560960698053537602514960464310680374664596191510522544114687783471004730262766747913685241509232591694252952773677187348827400086415233734500681082193304352108862650263850754150498206537389223865657443907687182620807231755668718356802072503585847228505741046783233009011558293200654974394231417126094973231033550377070190139519006422503933052591888178143651918369954645907978210797034425491566338357176776637239027808005415455919792439892505388015148325456977915334517143014003322487653849393734872839550639185639509227196290388113656549561091972075149525674346055633041199361725913890063415343045629041334926000472270837846537266497198725902392963432063006863094541243181691815935138825197564386989128944265808072481010404031024323277786512762380142377995040241001135527203877574771541925950841915789570803113407594325742656227592686584266541434320089177777155988862375080729772751993329229842781812671178366644678195892484245387056705538320153491065908894438775985962337922406638680303461121344270355224666722889056355086172370390127367652341075363120976127947511446139635484750170955124435596600656478910523010305541043478150917737624768165749068080460559396166619060080901804566592813227032985456435548692807192650919635585939417213574360472278436994410314229109005122700012470555633952792982169862719569463017009626021484436775251268285840890241513210018609856959029616633266055461616177880775561206575616606778644732720000892827842021820671263182049290370264322093729604099730595034291320525247001016134554487777027832403201188433841453691048582547668745480531030215552189077361236127687851065535801065096009277808612765858142530558477407173571138969288517788348370400799843666531646981024943081681993247850228506342921303986877991341061921955020096488719832510971457337847823368092456330210421910706358628092092437489568368850566532020521905776709215701756868930637581509271349235043791127199996377397282284794910513773635876248934223554226214755806219169268568678024460307069277071493028717885768459111761533160618732273618864339705131589229811843392564207768994823787743239733839420547243140698439998163353892868525023912226321612272757243343971081165058289537401162432291874091380974949244192355227000216887203561392757372826664089570212521196300905772804496220236040106822725213809239404440677813613267176510374802801472835659528275652389598766694361628719418221688869807353984423726387052560406667613608652509096969234302552514544531881278446176696174128744318024325384385248147752220111842587525226894553320247240165570938397387086973760752703203088053305317761033357109155471659563970999685095183683580392873794370677254664774007989815124313088786487432566695041528092799049893416238464795387516953983699724331764648089492629314601079175033049462118859656896990132358006529753883113201470598667914097109826477415465003729970347659287751459485003032593830668080770403858129353643010639602315592618847179565399301480123514792730812995523427084868825855846831199696662089452973959358499651477199285425706952136893032278793352551744970144706002822712029920677731675978115726152937185447918020700422458066052685934967714358152338856650851299610190271634575612243859936097324293218355363706739092317032943639929968357532443761025582725756289411670314126758084531530050322466665298102560613172520795677319469125892620010501897939799975459740347726195456313025065026895669222753156481402171186234848508880421504145822627564936689194063792902775825934827046050985347129137145075973598524963378089600460336304228037399846596726028289598112491476430649235600161643475862985546036490129713504938753713720599226278219855237230708200097080932195092043081002207074717127232518867540699859801073827757976426685995602682511152755318128566587112855800475496392381757600265184228851425315035445794859641412144911676246029633347625748710874307898887717912868358648292739661819417170160452073660506683100566198835484933148054994108425781096789907692967603238922329509352442148440377192019767176229939362509778086693129426046663444213407760208709642777862573119777631363909542401135539431678567614700220321696419253021604051782797011575292288986210159768383112243277060105670317562424643322184258004865797697512118114895338215599485696112475940801642644834856294223817232806847018113528262701514800154192211717040312808269613726296202903362692224850188606379284624336621683059028404531901338845970532138937401044229650744558017161271352302317508235388158365784686479268511789104508959911676503415351851718772928902864164977390495043570837829300562261513174044330212425866569286100661288987391118669771828903850089191821057503275782678755011702785441730680011537467026665516904426902437188700164645201229636821421413168453005567972871711375783247094810006269208255972309245621261935271913660864125598185669917558058369093421098003196190785401201366501931513731021264280049645677852109944966391348829971071507394593860027258105986991326832241079753600093677457140531414577308043009046450425975378984316609556729598880241956760470940895240157040744631286757402628509838986089207054815821186200027371951586644765188632705166039277036626831757720046033296781438533019412428796956641199157545880802231526788421520048444753236546058947898217949199501066365972620574926089548339879330011439329407149192602784365753094588211875482410966353625612475780296180203694517699774807364758926838095094660856207502336919869310701693111242640072383613716366714671361362217085303634980147013197843462091307566087073556559212736551286614458338790947685237396105884170220804088733550652442138746163858791466280163554937261082758153300036003233750919839333118360910448780372334621228115729761880271222131161106217681949269797019759703817972918769354971212320398609672400424624717510266996247381376830536985070748762730487408749478978287671684469551027398615547104408753109292857134753386968944483789910590186507550423623979359723588700899817067975168749590537966379206279577560259548989397692288050703047034869241916333363949696290855910770189729453726667788232571700924951488184629637539144079915343099494932612708292262484079598955675928230935138305707146719456144742401711486408322119124679637271075475500143421100339134367560142435734347973282885533585268101395694021991043873690015074076737376251427784306262856736937956522182919796680346749555410848152964838098156604334631485049910108418376256544155548659187794888658915253397313841379790692172058138877957743325718772906380035803213599603623161005667463990751108475500495193669916657207919711446388847503232537042579519493705632610830006192756586848687927184275997416816694295233269235625683470455982246389183746450686636936415734057746387278822258245990281696586371850449330654341727786650599742362900471744753880256133594658182160325107820431614308761943367113448389173591727356937902390031817265491770619952070155262386068251068143740831152095653043108099490631435607245337235303232816383887703434030985577738768217656078967400683647705462665280085501376509953473143970057703853917555045867313596047184217618753359001343625730048467037854684224486021405992997618940862684337075195299311117217388141479590484875393578322556948261847992905831983852984682892751253861062214152477390220832588537635209104328057892966120657729300915650322477570129437039658965887675973824699518564277977947289725275776446408252274406610832636779861247985592092905002362070486088667243447517897292538652598880303173247323159102790742013511999956982958019262554072530352202909102825755660148900699303155414255216506335044170158628895298784045882692661491430005219091837710651581646169181915764152264778226039479364769467520833471721638565597490782185242001669729792843832668353254697730205015511649168218001495216409346955790615790324753155352718220418161379701986447025120859905879723939380180810666895512751183537686199124001142485505957584005490885984476463703480096562262010916688315244201336049696851419249441618574688812312627086647422184632131724461161452267739873696897428958356706025263066850639671100662394632234782019541771738574131318760830951332436490648280496470757982219617218832316252524389012414582393047247002610716873962087456508844956302270840185100278683032719223544772773279996028546560761339230842797907246524967841816224580089368050734980541436705009506353678914352874694373980351625501194397773521108356039902062279056331161522400167835946708956322925418597043468955971033223186945284055527713742023481033492928670312242685108661781341251841184154676580115646684203165606126367517600582767402302859497048951766469393426455876661714969948076680860589060415048561704997680001519894717392019359374200902541115373821509070211749464970621819772327804226696065824561681825568936652025157162380409502385019239510562008769808785233585004895813828323530435167240051122503064729935193461356226873020372547764725095365077130312388817165604759304579047360201134929320637340814466344122401792057202212775776239736084428084633171394098155102593791227259245817145873474466831387327245714148988732481786783243363064161659108621796416334591077232380687839649923327425622971292474779765334541237733480180945378154043809096161579811586418539434782009248356640671949593186117946559549101249665237467292477039748908457721881306582246000531546205609058018859318214980002605016620548731141548888623170850638634787404919762418195204632709652722231801455025522340371632161962919407585682916448439884030750025016990331845301947780676598079046422247923922995520516561019882329421974542482431482650177903934883502966900702108374064591263891819541215249929296739313886865415708078087627126343929914493228315281289840802657000605935099157812562790869085811347844714525628313849939071088345646871393278420516767213804510983901723414004184543451301915980193245469697763075931641710684797104016137395400989771766108213718314665654105711986521039489763027425330923423119396133705426286560026543012775804292354641748168829649987271318288379614925716208405827102391798843438156693645879221280130665746874159207937546272831423468947037988904439859566778693363972754047226143628965601528970684586823301308638179599418812632712727314944140752627567639285153279524556825768689130716467227023387855848754312439797073950046347686577175239683716796203669535311283870697757964786629210479981969699493387883216956941650053052183367289513855489730525593626211570208819598929715142548871092474500356879882956202467803460922390765830933393936248223094315420999764662508073470952425892025211199777800723821023871090637420958678411295688770059846615917304084977668724118190530909072333595738548147112714926095011426378134543393756142874618200300039579811301934185766679483557332723805281969833493214567544560378257498462444617621856262194241126718188155919674480882748027287032743565498234099613817513508859584757984255537884767235292252434966425837461662992902372011271572220573353960031215396886605323065353433754596820796501121213822194470938174978429663234269785299929549223198361147628887769976183421805531575584130270218237299072668431700814197682526117942644872420516048169363020741152290352504663597735502942830560556566391229987770746749623679057310835072186728285743127331130649067706442760073100334679915923172841463287939845387958940746961912744207228404665451109629909930272397862681639741872285522596080464945956463601548200540058171480797783175123196104020491861590990008546419169159966313353049810836830445542710973389482353575737343363185832153364073336663265618839123663712769047910752964908048625608631451508623981690105803059297774717926411040322214248172938506524038716508095626346899635607150908476834065176496411227546521988928922850497261814682700698470857998109270016709592680344844965652325968347397346106186905134043912573966260054456408409376084547879210949539590409699166173463235856160577903438729240760227442608596833993622687024368814765775130109366297834848205739935945337453989767608595994540479792662353673534863304169458567886727986919606255813242852290406153017938493844886438597153391728521097314648354059712646085997086528613457963315512996850742305933548269070303005003835303505184490129755825974819976907498491068813746933562830738378105207454919438718895518709587151408588391647332408176551873204454660031342067495942677167517430747038136987039593907707009891963469322308871054863395335907689869540524581726888588692265052171003243517054554747972986632337027908473338226777108935110015580667253437444511079260955023839007425280076345093342021065360189352965651718249271666276546216753384275810067963197259590388490517505960598447692708709396234771160728204488216715120891686638257169045573857810973910533625695183858360824885544273277200776334484597054489167605384297966517339053630481086510981643231038875556027576721610869766215554080679482392375384599980065826604130753718448118820515680760144596255677525636859714309583413810204111951197717631080555181642319913559332709109021514841622321551375893832522632330364079795227886685885689348470682063548078183766332325465531973904523993787586774740953870443497030618303086336707563119269536685431410473071018673109977783709168077252542894765032094400279993218950369987952100620787985067357401883183256775049879717210353520769627528508862225435539597166586976931807073041820658345023056826518304988460321636391556574023566238547308926394180327608376172054550513251862383097600059739094632882530940433895864510354018269053326507586316516364557609929191941984496900536596626709986121031764856601190338381050409877834465139037792408433916340147669783076983517167525242715593472775886004444981392851298277506411754812336029391126754266319809699194800806909748400391973759682088184591606044435679364235853501015684438824084324220898953678209718790834206444556870012060129750853012954668056972941368782244173785563640131545083830321742261794173602605969395206277671035394190586571525390163175771590992421648130763980565010778912494173234504809428378253352503523494350198423190225312478854848879994680777434442155967911133163560468881964687706811558558632457450681099562284762969212272543182404487727386567482003184303851346364355989960834483068488462885352448614715502657222257233749655687239435218006555946666103135216458487741809093233905060187559116145649268866307914285162249548575111953492554156677992390711694850711432923563680895963249961016999207822719035601181456335349555910248302206153911918905195419110189027408366662287836406966107986318917935289193940546280089957986928897965916914086210200781554375482951085463597872916988003498295517993753432137848294935816881716324629557042517370092510307482812608397416481995295772857176361554150679852810933848380381576989148547504523595746770044957088779562228016885984501716387367097972246681667716460438713561799164184925185916938798148381631163196986814741614848458064186686735113286968912769677940931486365958315351437719210655569533521754617154781589685893762956280413054274164225682702408016002779580023764456960647489181930555335232678205165447142114622431177243973489113956064920974691234278605773293587149590731855660503396761470432288492242396863378878132398136424272428636680432052618657283269410900310884062902967956002737260546994214321655714342797338117586202422757517490848353085452004112154403400789158817245221340210168979006785636283440195092561625894890174750937985414199278637148147435371635186677465789629805139489470587481445832343711613499189427572086032942306283422336177252257248229399878950207661252468908365689145283934605032637302455372116070629060663245008842199778125783007834611069914584585113210029532537759578100131014240124013633615981979451030931025443882370706241383324898798566841640629766387490600439891586367152369632258001297388105364852842831607675717768331782749080510785775258611538168874597687492212017158574557271239073936904961987498327220507690122873757501568167633450162984996465714207184952912400172948619420930738014906612208733575801641354311780588898472795812861886572185473936504085831758298332576578312275600755118369151839626205015000939153224503919391409659363001692022375879054047609961196834962281791201279740630185039887176469830269509003472234154577048158976485618700509784270158513692505135666389304135809460369504898690854358459643723884385057939335838003840826671737163554383056917350848787133712602530996778262545892877611441891514297658429870130222589705057457721714883699835521566253808294514677839965056394152850846427819266564409754637746625684851262320138669335836071186207172480332232280181685350890395726604418141444208672675574371955530949503937226231866753669605608128465857580097609803372078645503640368353060856305675260129598036442817550692874675893756816110750227621731348190353256605717461865331286784813418279903260101372297317644334422985056252867787935564751085302865640786098414332360537036053512044187619773155053574322914452518339044520141123960230026496249917914790971878704382721024393943424026719789677708079299539887212886466634861742456813069660393339218260920172855263966423150826038821809941828639163935116937589470185367981501184563542775015567598743608780791523136760117880908477180772357327248033886641854038092487844037944892489310351557510688304137772168367747582469832241363840472319785470463000253855362858146156075899166833138832177244268478744518642663487259544693470510770593351586796497019276990787839504195726932013043841778812493693166676068803181205281925309987324223984446556116950257518536212699607911640786616174042844870392771961833335915604229750723925177147950622536202788398805790805486860428990714844128049841283121789546462065788459838187539120915522433547096818295631931761931221327982247031676881007781539900951292920609593924386687853132634609460902089019301219597662169428793201527231443939189721019556014281492972532626715965359800078490031642605612687063588157152908401147088851649549786416782964275127666904762933596847817132597955410126433827607580107768952588667197958720109938735900482914687310410105328669914401240828755538265308555379892719180204196525974482558621461968957794863500277146911186900927867108740322573265289081451483624737321303389291824283690932115546552748991633920385547905784786344638629292722823754303546984830126802912625008564060535621256774278617055386462185149852596342570833266763270015929688623994502270040839385424836172789694973395212697283954811107230456021436441913245873308848960445684843624700355410852220178915526335207155161102133044710700571459201744714914795709363829359588433601335335348335616125849901030333161501331269402897812783059346061330256392800817545434837152749175999476342503959695597595959631943231021811194039377292704450475381649002821764972810144862898290203129732461843111115439672209420096195036565501653722761560146800666478902490812419800936516015735587728468688105264271578012709279544725762803284988331987986966146490759933884492288253226833071528716820867968057290039555999999424033571754418172820556836868079264109592880092580098299379067008802263862056638648403445977532709091368999348434523362237129946065986337434995249795015731731762212343139726447154538833359449966815530722514190445531622463241029339908108728817547980425667247705236659455633068442136451915806751506883889919920680761254460085189861975604687295884672169098034243991494799339648834953557878089712383466477629975524319017113919723672653510504775092099461747145580422427908135866136766360844634306391791786964437617267265587459017177742906201788368374372276736786534885679458555485102025774800954445610816225427509581076441929292391410215361581512127295648392653295213882942931088257461108013174540153048727641857140448835645800274489290358575400887861536393891754908047237020516694291626157004001261357752557354166323770427001991759690710211151572780265523932516116923802496044620277331859071833371304143914383399400384948020750376664086769370566473900305043203999192565994611426541301713616991498148824795210707272697697626027335947016202007648860529414659812100812970469892319251215836131951726790118035632721198870531294232195549660893257506228899794560142501804154787470076370905678358770788474155481229300132131882359229194934688198932871954897656649736095021757857863749920215382839483837220368378524596064979121808159686366991937744539322512530865270878477113079897621079111353096536243981825077827043872249536468220471048541850944368110142192528379688069494744696718307167353623134799501889496737201504614576176442457579521894040036239436497573137426151318037117789542769167113063476761286761605722385723607530588300286773641464652908789860437974514220228415665660381441210866015394119032279475214613491629908279660518720852888904841417198957745914019334586965834960682939839540536079472218890587999686045285153097986637444729026456389994022599509588928393657302112372555995826487155685799856586000306701339607298796867334684780704157410674644766303204834432401445599472068893336469654985001999471265586790245261241224843681207499829937872454443776561346253360297125590185958607343837424982990483112760514299421491985150269748017245963548765447737405069987239981076939175729043515186375574856810099275222554402497218136428390157360233947884279763385605501216984980757748182157055944010922696077743072833821815508551046890393377210755815200612878124306669982783619108847280737623122575200097491971910179472084547757515849284548762761912415302721646287395592452174073911798251582826936074151314595099532119991199831856110501075679380775151057340784982398434834228519776897790978892852672690222591426397897671439169987983737751544343036931208548844045726234093653859817933291030946882722498957381537698517833924855473250065263997621313390953630545345117692627822651240698390657114814787421014268254393577562283973872262730920239404152870205967714062061297618351824536112017210169697717037418222097156415512317638021747908465402541212349103305798905078939627617368117154523839755721223405067538503272042884290849736268677616044987161625646684244324400188244782593545783520424861061330583784509121143670288813042387455489790507688167922005345216323766487592977798636937230552816654998192863115621403760941923159591104404755362022471688316631123938581378396347570293358293867428562715567831477167774012427380527060841893774570877463903519162964674670323654282553103217090204378073793479374496910377538101516762075197569869516803829634748457676860019252072022446675327827087202811517515403312795907746273161352712624879621298007905100947717145743875995899508119643524613156703578274059964383948494898428470226763073772606745865068968121304247065882454734841350986694149434846427962125321739376832408576063712054643783277052606091719394862580535585807323012152843565846098781598018406936785337571979977150113215379601037402527608508282543656638839664759276810976440139542763105667817016416422503454537450620044507786920883841000299640983354208190713589956469169230859105153763629886514394804636694157024549598741274634484329477154578291531827489075200275189886530595068352838685908843950670944057098385938407147342057032385887680251903379877795672620859377518782218734920426720511653248063850732343961087829536544598141511758766030045887446188261851744624142568312237375842763846937444778556006138890248530889334333004008109568567155750135600040693098502686735356090334273045384980710997589218116208495102595248496383030097204290179504796026365009726982768563507271757485361470981626838555975287583154884730918569994219695487129425871840829892817656450588024426305411745293469581925651400672956503966912170875196234105229855577300636838915682216243033266024034326417954835273591440306825964676345816717281393197607102443116943358251821272511812379781801413956027502486860668143171729282044600040302304330805561257530462331702447397699557123770863391626803821891522323414499841214237513977553776154788240035997064519654966678043455235653958431285755191869574986271829669991788447749050027640630393784697011227305416771109971599330516880076714106788533887224196641624994494036741002503446283063547028478804329258525629173295879119082424410759418575426919631592364332706751303002983931234422573739233615609718749580024414010075953788424847675819891771114751499741803101419227392904931775261879745942155027913394566453537519841772146066702419793342441114508720935275391104821438324086896802600204940858766363853724064715293951313531529842335236121504215726098288342504932542716500600629220345605153305479929903708564467157944936436319812089915053489953056809776445485081304310409322645080816436436849031818178029667512741759739392631151386130485324690523262038175896886245068925639477827565355581677304219613284647334781727058928265720464843325773541230392183569232694445875341485116496201633535035010134457583424315091092991902888766931757699145600387230678840556808437246431071023501927546178149205623311568823482458596638933925425541572850217346605953554536580589352578108548901801892654946918641139450086120111350813603307108786149408183722262173048051159539752025274275349513422849503163085580574857346438379177819219871568178604848743590503921651288583810615016609145512756180906992386576146111034495558951102771746504517784672860041206369408629950704342725785242104647319022601592411090502579943496859803435677442914607849942139313042751946814021451689465721109489290480595379882932902753867001558791396356627234403327723752882194346586027114383291364325953915282991814860357642285277684195917154819766379971601105551184898452275651851961197923647399033444161722304366452573977215612218037824326905305245937761268815166451200283377291441901340577842757647456623170561130740768966903406085526300530226806938102608026364072088990423472930880467516206051758559087029481131481642910692311711161812264380613456012506110572013123489692071895944185167309760352844119577793434070624233842087875747964483883830247751676103715733801745687019578330599831905408546759147244513913805304232737267140555479349246291421654452178404163232997633704067528784870551574588929426763023467454429033784999394487640339070878572135719911383287520448284471328151020973445424262823456382913609657990204664270161598135384716661759237444916126283589183859784879972421596776440730301223721495879261297044497685375716713820574756087583186062874393206682582264417171585272281621664735785231548555139777649675241879290328493878393363799753848078712775139512304295097390047749007117280854614775866984798287774683561925710990102206318597607700326712103354656884876640115001870412546500460635051480921663882015327287282637094837599422061133024314138756560661056877546280228650010271032468563162314252748453671970852793348208291017443665212521740072912926998919760966459143485644160512888060289244049155137217410958465725339995566065032075249606251308829190088991612959186586174498617118078552863992484451235296403723463781513328122623672014312086913240908097053279272074299089206704275151700537794326767066825723683423433811538921249071336161395507085466338542126182244525454591962909596946277158348738987558881367187074179928376532089874993275781083045524556441764789919751190891448547706920157954153878143209827385902508785973284987232582910094782251521372723249960820833075626768675193512693172216435501554072020306533748316511926828993263001920442910589628362265459271265939415064698955410215076110858284218610763409894953498241768038854298125634225014055771728246586287586449391969120599024942016805410605376832425456704879817974803331235727897823299638899972497744039919455928696980793046912613749777730453327055113126134118313275938886946784233204279438611411483056789980353560197946642403537757722421274351846320945702768737754464779422632667496661290832979673036040416293642661475360917229712606044753373031092655937018947630832665055881093867075600340931883650456630840547312891857735347022455213593399597665694112731693151934423720718375447787154211733902410697621088593956757783036832363830134626469173217284983689300126712807509208919154092368283771552961917054179069309909356030412709280686599754257088268884661117185526455556920211078289318809386453614905734568832909666607575007597099763389032416304448291232131279892808742620635495290139738413876300948997398920162630625271987689778738764198702004115947199085683234415339301157667905341478539708552250751386686244179876806104467413645743022411636324332029460569705516501557772680518123657035414634326777655212613674232797985564803098042444106679206437331029113046915566407729074595056396333094468583676689550298282977572464706720724056669263984575067639576495942868893260125189112939120338654485375648831398457592542313682707879103657168925385071060250040447868303097049278827241711187708292185945477271544559440241067233584776278556891113115331497508053347536248808250121469319877543301075783384701964970126471379636677077908054567685629711880401488513976911126922680841278384811153271471294957216398043913199505553144315419363632405981541978554537552245664548961437445517711333344898398494529632178774322112600106468303724862720424761182963383448577532970325762630407799670373165446116403908505722309649459541128568505086002871897590433493931861445712176634165462103048528985363185872424020528718878792403463527981423798078964710924416323109440578058061688044709803315830149167752187223863055067154530033270592326320796923101940010035018660749258293066267769780548850127844479138613499448110401306882793613845562409667912440995058434698297020198506420176511427562036534435142458862550945820015751145893865525899518402256640062744673481367430863569540817281995999534778649962332493484590690542422414829952504892444984551727206591147229348520396397329797940112762241514341961445206134218524398619685242548907865966797159156470113398591161428423425828599275945363904370060220182879510759716056663199123563939975238867929174153765407555571274100051652015805774699774082715349352945552527407406362183717196339213314009855013381305104810964692897169058319704133220069082093508944164738847494256070590531210365918102773745270431242703933398770254692880448809296955803847666806253080141508408542505360101770763078633663147230476287023395274537342940735140367503495110265458900374958967124633491495897311863717400332974146035583657467832721441333027638178932701366206010873960356616874928184142775729187471084363961125842008397155303839765690368047384180123033582808163218128510822671109021525735996561858406715798778889979290700647220486669450263325317113877518014578526665592938301444414531303412627452097776869907353612524191309340768682535939089018575731331136366692068640119684604745259207551120892221714453928781165999966096537401745743683827504226189308226969593815746888706452266479775422069242196861903798121239769989327610222062304406148152500855808322006222012499698493759938464752515060584785200614919396537147930082967146383650952483672303325349552352149357896026877389768371154516682074615085905364046450533972963012942103051380993565164885010081498999204939587916941965045807155571874740053160776224109947131572695849501655123220079075059738725817861684948905797633653870717867567629247380251445658095838524371786341124226171991483858606889370134970760077297791627997570285756726790907256910970009431291261532149633349935037821239970049237912722920787450657005369315096033461032809800369610335416739494968679961213471503618235780218662848379392830946469626834459160665337114071535816120471405198803249480025332732474403583639740055513837981804227989891891386812090627013372393771046168417346590382966213798527287091928490102116387224930440745257283564612193534020492967784827449071351652380068878227998151649997512063557714819281718778515029931408250039360923826823862575289446208284690751342898050087060044698827954746750659689294085427616769566896725238337539628218411373757557070172638586264864320244684765184327683253777430390115742890827502257632106113874939162777550938243904372146946095689733278373060877161949333795241679872093528008249939067385483111989327248523600522903039596319778819785811905130312385053001842451527967529087629359065536715069796173500635990569905690327249916012229507976656368808829255519762140021992369904543520650024614682053287997123785293987871789547842127864853957821482090301804393608434074943720555794044398894086372732562850696057591594982266046199702549786793860253859531358868698218228807395531651333835308453560835070086791595958482646231701192621956731656354479028262874910009163986720104484604817029273626489525958533926351126635467412802900920333618026514269335975373708139897276333088022993349882183467115841687086695748988955008055201809697545581984740373414472072948424876353289190048921530465613704612346428227196783438460257125591034452507320184634981706922773288294472769036732689780797779375686228676204403794235642858118968273662811190465613591963010705187123918153939846039682330691535846246930602497670822693337601324751854101796343746323959567355578543188514412036806557439659615932884086325706475047013555658483103662886256765817931387315382135943565052186770884803480757525725106656322689753887968625633926164021363547377413433151465653104557639565771774019256674337689714954710354934186868050388171232023662828980326754125981354714216089721122711091970656017536320800674675702742155929646358329294212860975836685524711721918428240156653349697116703156680737512255782019673663419617274812315355569366883275744954191761860450165483049119472381091332469375460473786408625060394780767112785263013759100509123692164893517341779442415605604978949226817477033579444667665706386005327481287583340240029892354522714439821185032095806615152552104853441276582347791786054642718220318930589686154746490241829029927089410322535073162479602436945078586570355362984326144435372110658990949967385378164944721212222881952152253972656789347815657231535695583990469896064176179489914845208417709883489905234820078172419062388314463191056452010606345647419691274648023803601359173961118326139296906254825850229046981886103118534097232837499084907549380017052673049678199627362223600786847415207290254021139035356018939101063128905490772556046802035004479322751032205355412959173554066192563559563601136716649774845842966262203151896690714619535171206354982694944791230993398569539631290970626645723785868487332629645905246142227699419420446928192892374246957489969823496947008045356966297812105651995617756461027657046287240600126891084623827317392405364463265905172319699053514731502888615661189987038806457115389120892347476028874922070091548602470855772236382441986460559170622596591777681747072109393093101957338809481269755486381511871580182435980118205194396763756209117038965194087346332059930687797511502129600171833712430367607994484800476870849480539620018042154395095680090638048701772681436996775034209764731199668488850324416501296185227419380499211010759675765826000394948949773500472403999409213502091919469384679517287814825423442118617263689686565881830360721771364610938387077595089684685053546529012523763844031115129710496854049686366864327112403438423631545374395636679625423630200831520405486260623539051885197291254813233493376422043028046765658466103903555465536534691381652962742973840645673797341666510483884311622424724580128938949345778125035914853172639480095622269705435261075595999870643687857265797813194134548073704489006477709964128851241228629530583593251713998734286570068625921727896434733660452916177511412846217799096551682531631642225055632753091753012019280083794156683805006636878436188418791407507043096542069135298013329257381645995284780506587045064804608688922808396095846147090162161255645968868420515161066299487459174037906128789235026125462937224147666779537005991083159608959394610739006451105430744886115485665586070579198400896163052703954535519211881388236314679628810936912234547456361304319568821215615940929984206975023949690166931239925291033936726737823627099641471621493164263466835448413876800009634739641266583932001111262911261178369782210858875942965877363576166205573030330146477374756937811937386187139175700742634633148375713889143758408027737129863930401548449846923316719747052620229859186463090305000410603592864361094707597724765981402074949025167518116793487306361961015764174612127813042223868743321955765312587601165790185378236761914200782716588682079793813287570632464767974806281464718499112664491770180283636265531378165765425043331911265700683843925383568033236678893621999199208842172067879617642039199106162454830214218770678779144577655613355208904252076690627141297639967186458338490172513172345262046195974773873710757313144612826703910966359967051124164979862504540076589307440611840148890881818993149014023107604886630239380424760821537489808902920791668780535586548754158787088854550569616419015148958608734862704208651240178378127473834933844245801843795560608047438637264216680194203199578290373287760500908176252461887628215075776307562707766590129348452865424553830365382666405968991383170486555473170444421159919752661312535942205041842610928155327090284833830365491845494183186562603519071610177627820415042272302773472609861664568177609313198510756526016456307301849557744818114605054747278896204788607013698561676093830168265158556345564551468381659316583092305981017652258837383077785658839353611392978365176189870696550754833401351415671857324131002477991271042021789919938881139707095050539998387914005720524553820807439682261952396233512305604748425142138698072436719626882180820672518191719244554314630288045144076896093833029276667500040616784247181905405625488558813100985324289709113582981518342366867123748531962653090404010049898493647179458186410545050152796167512911714053048902846250913517341365702655567263172025730137979962971314025490176715531882849497772571609629166813405844246436140153079634850571127444729710308657382471822098847683145872742193254671171646156797207217746215556254323994262745419839740682438363758354492295819860799153024022270185858892389447327793757699601066935477665200509468528622989312577097252999732882507286780672546550240860477775993675864913111235002409733172679111113602476887466600568988888569827761831279496301216298962180859948209874291351809312018731415242958580284862539597717531302381385536686946260355332585028582515335869770862897210476931782564061725466236739509910471565524562546047985985727270773664648391021771403456328769271189364161556158336277664758247100101715154640878653391568103945440619563146507532315803785577791714323697569385318008598914149218619296968223646014824905083751596286273714951717218714918097106067672310403789209618256317408722576958675645987405971106478446427144296079013812687644912490112040830928160892586421050637009683421386447833195900998312658388631663156282739027881185292688947558640705402055424495594550723624503993609823788591996816968331095226969689289382580389048864301742798857792326955240789704412519741139389467721578690172140622317588547157998633411218204800790659980685743821636372783931952038984089554418032331075661113023819105537021578108481510672817162931466882707256982304290919317918024833237644273698848389594439504377510823127779423106471788152724204919579082414357787021257222471330002709287901828032880467669034508660479418119270849173426986873537405221127675776348953101461076351087700325288967319772600967017246355561256832065848499783080301437053565654453835093349962380482451497786287149406347460381104913928380783190813992711291079003874454050089944262607704363972237727082204323782709491129007311646114127272445437202417282525659928530517213490889249402969101033291149895434684625871004260134059744696482994227487452707488280007290853327102151561307561840787585545381488507385321196592070590702427911228662956089779757596987550077286705267718968080592549159786952248941244226506150391941075099706501852367418623629223268356587093767308324445608651315059530165644855439674756080677359486024211238016245096706161474165688787052872175957882626940169193815313181782002462504784625384196391675929491526455849399179115928401673155689792716129559962656055600825596296644427641330227737940442623681126536434120196181732277731511859876216913066411860847199310120706352950657301291872655353088681313023632409775932569012400328084225962340158486959667720701125784648821917017248437819901253876417398929894579462444710769633538273982839796416116007622334767021281440989577612552423962733610801535263362470092609491056142264733480250506391277839739239764964304147502641348416566144259108304309033746842593390825323378782480963540813022361985347374686034955004604418667805084150084537548228098277776551140077708899210181957685008725365300090203094880316822692468623264823550831918478726270012478304963085272405841663943424207108310562800376115237472860655338037994864462028603057081064578815348909371602844408782025634464919224429145107363976790030316167055520923678843678536285981376869741530567894122551312755396631177982050340290729321983458435967120672915010349191524421149119156148379094260709143405140716323737851923867279985898108554395986154896791484916045729508837748899945558102957165439268089517907475790912541979852682595143264861483043733505888291458391015276189282470440875569141197051577107936908169563547306313856845621496960394892154324769583738537640588078569574609015076880860003320043637774200318533619190293041802373280949575331171284760284281104572002776091044465686570211788262480877850054555198398469945816755916295371347344298758843767923135537009801361112254450649270783233157655409203742505114161626340769162192312377930461378573532447535775524761215947557994961711231932111924910729947236352218010259323598968637527505921996539837556485928057477376859822066204017515994998174944752470347087022350409210008526814259306396832603369795609576595285030207447832007884335515415008268422523698036637919069442885793905876321063272527538595545443567259327278727904232132461054264199373008160066838856966077072994280837896631251159100915591625143242843412086204734284720774616139199920768980447384944328202646026604026422713652618212606273180525302543111580531661719034172991699383930820374657678096025839679510566722467145448568573806161172514584340598884889816238089238302239336022082247335238328258812314965418067880533825674815317689591394079901513792514974215593567878584240173946532129618488722829985086692850483062456192101806249073193781024541619278741081812924457005614819467803760957094148875913597680395135097232829461204549073830890522058845973936859746697671138959128062023196799071214248054043985819848391380889429668891600125668026006429294301513062001956160837605764756560421412214602983161249043385723953543632459319531905161161527981872534829873668512801902441458957093732845384990374771961649576579917389275449917883645502164339017507506879839998778685337839468485253048228497548461438486379585606361380483870541018586499384109265451134204869940625469275345968345732742360070446293288076350980850804162529349119581084585810061558795156585835117620503111981073056471591243502306496655691751419929771746528543521176452442621121150970218265842642144872091279885590654367031663903768543540901942804545345350006073485005779458265563469755145450881153366075153194889627504909590639750066882505268398676269368963235539570840535469018717258660206524541915945487205433660597664234971705935306892524723515001120678480703326827067555686021177611709392822313755870011887969740439127193184265345559847019197405255321939229871522582765582303510469958475004455821021558343361377028942489432676872258075729360882123262163341206082188735491200281158857483476819523180414616529873247773440720943690374745922423052243900939801896815825997928000017241555206845778222410551308713609962570134970526084479562555849305119395721146276891074473503722871754911600595589465320905481714623743977860309397733856284273479804833530692421645739671561732266777313075203173060928167328658944782048217390323390506218690709971359977172024238500032521559909834875284583761552891492937203017579518924072608289798510758294932432048865469175581814802731431945834849183030489685791623429172885560262468923042798682163993404510183009439751068177915199644411293232881534077219427224992564846984369500102865658529820125963613905649056607061742867459576267276387037635322422561395912173138129014140433793231340986107248287066179803039669304645535225512331252517401142857402289734281382505225098948292595081893805229421748285880934128858507086349149504742345380944002560017268805987100906514318288921258381135550207232989847239719227069265383698254463102053761419839171848969256174759857002811997177807106031346649924514235363790720871137361803461825602426139960888277302388215131895431565224901662150703034726271372231783541236599462946429864908733444117381442048528267197222278617234770706408915737804668203590614515829273085724781618377192998276857685627498102630595317446986938204047321352271396165340997883178035146571752817494165138927137654279503246934069104889423563356985374141511228964537368263338962679797425487335836605446058600557518641290768611504085694894955779783506898721355061993900268292458486627167368335509958151554918009101259403177179340042047137595688140564322591178002838058292229526715725032833795555516203900298982867369870903091384901391983177155401935577645599966170563939844292659334036801882500106185934716594007531517301784134913201295903136609950075999467590088196091005336497083831262175391333475108818869179098662930889965421297709687426976083574882042889003690346245311583470768874300410139732841236380091213846535807685036553790291252508797986309919184172943794476306956551421676044731891333345427041498498451920596851117410733532671176804947659218434419135041238658555408319312726250104200995378668773770311371804063660964757412546729750944463003834520246871887589408594199592467106514806424474983279814418937706723040027955522992299857782184908554795367056203995726257747111432978399181410442753316437924486276789611411872020518375476254018661161112387446827526301318417467884764845120496681389045195492097038481392040517437872327064200198964573392648617100532358639794740306341718663088176638059422852809761215001618040580656390526695885118760985486545720459897627473191320381848500579219357795395219047622298652473101755045420220645129480016420119875684789714660606641026479292158841169602488920048083659279292721034690041770588751555329438745752942679537254679043529123342011657569229064156221327143098312077850338570581496585582782883451272622685595724466731204705735524062150575800413706131523120061506659859504407952422620791030473870665272585194090483189746993962198086541979718442714866109612821615307234936627271536505044391966881835454862801228162069282246536541297809025852280816410397048280204063011056175115904771940607817535227358619994740723064494935175128904104107373667016870739738075507460246337479098047934711573496680736886920876668791083659438932146577090134671758260032577317067568125747269029999051141662607677383278419581245898438451451112214259745228707493893509028035049888482497621670428267409426432193484619183218746680016664160095064228867864780733002548635470337740265034416567039905317680421670820304201169341640941659515292835864603263053261233555493446544134584528755302258867629141433960682424963050792237374171697998528370906980888035031260042763737056502818189453320066158686306376426938139623872804738937923982312939540107670148031191542783080424285490891038487621195225690317286886214309436447684806993945398618447390377514827369643191159940696465640565353830209774276850167063066729451009660005444328151771579109963861943608562619641592783844414695611489285833864615142578595464707239638799526126588871686915297865361550480962636162959790360506792747773240089143872585318821219652222605448819657109384166705384902773820837776707247869068403257309528870956337109946910019682938972247159683294547429272241349684237443292288229496227053936432807492618354092457975032726767219724600498706490100468081803845488680966553331634307507932246541487778228735066971658935176223156547915428860451325561401603782457847315766448679066687743474313604928358331316724302794368994915402669749898806061368665299451413099296950433244626516673123225158880283624720637723570779768786921606631515940773241990481913728047403485032767160665038851169468668075480694931744795724026562539354118643932825553076087212879790014346952170247945164568632532822031522413916464046669476767409696460603111562221501971687042943011294942480147369763571451597768127895106931309332111625805089035540842741424538013993623027894898225868544138192759929675571110914062730729168415353770174976115950733103661354669003271725345135673553352599582337478772972820178275191852370372945961731038329467148153218598155229697900766852405277315931872317092609466906429231894588537699052865673557428374919138779742630953264153218096194134039993448763615700522613587570436580344350281386383655012889188361249815629957251960615295290830863532454300616139209341711406197480996709148461561774038661850017253366354515520882914826914059799731185421966785776205258226843006872410601819765385654310131954159813944932582850530295986661165528824457983535659500104330730929096815914908600289381102132573513187617038992976394771105555163704953461945392399080284605127128639388332602048565055433736367521918557748294183570105621974519098711175438443492830198683298201417294108688298604628513846369197465827676667452975488931828423550814670302625895756368112903949936956482044094357856109734247843919315288936344236237707391984326393547010098309306374159220647541278207701759878911808827430989000386436799731035767133464614141153033958546706223399156753937225825657493488224543916926458184077835422770186403457239482315056664027917028781725614321485882308362558256645868851665502673096258246190957098050710065546156237477824642383656495979441561064964088563312462307849912840145231409826270620886482607059516954200284968012997289496747655463742544330161152142468076761578003033084360994780311892385964554248647004432324975149893966209766939624266438162829282298359668667142972815410217060189751872954482916964781967221696026716739290838609189273462299189890117883593409227874027847921402588909322229918180597721612158829662268969023120301452423192396192459385907624935671112393758209994851223826404128368720918516929384365139778801611011770682897821373890789283077015516538544579602562176414993789812855293632918282190499145145770986717464962292662803125655767261889768641271006744013910628555439958255665555245054174163312932854882156690041663772497600618837076977108886152648803016599584811244655811802110107116681065864341532563788077201435202182572162534411888278294228455036087803133973893231427222422151691996461629513947619778042955153402108096106059350758889361271369675722550408498000345235220272990970613493967163770098087156997623992121513068852313803561547997152947746403057013765569615796629146840745536747364062612924966898499429872611831895365980068113134663515756902535885321112259789798275794084068067040152563388200731793206057697973438996549965625470568684985389864589947265880538562799679556220995730703321895822762195282204783832506309867223501172568778990421456180364421138904150501501486522895870985425648573707131869454972671301919537272012708393689448830292078003976840258637101140395990970893933607052153406955782995252257651347204508276157820032689833337668460385922309262608060403074420349145926945947771324148777839448938285007652137432031589950349070471696369245098363191501684963896538124264734527080507973403608124419080492384764341693294547138142184010053337636251219787732578583881830426966244378891461601522640513742085387905867319709540555806655685827209682764766258471488754966001007762388390428435257332805230790572896620527057563250986750416893842692269788470079972052059498265958521292082788486688385821397800530242170848860984864443671984707347274569851231730936258022295568812081615197763464349689296315772260246699996244354122110412681928397992573439940204019841998120501723799317682738458403478584057898387094237543071466585259579971377862051169212342055951370145116263700749695648684927909734011277338164366678939183522396497047003219503005687263201635524378394226675809449679985529136681423770825638245396842486755006259016364318676970304989056915100148442686240507569167651466231086605477422341843152445284632774640736739181734172104416995902409968906710613634983115273182027231170257385548978562264242098545390901533293964373112528289792378596199562046239642622469709771024420838913167832902834401358067863690854364433549560688685915774947892821596296898604835412210514903021077159075933249799570666970364695674567164883727419161092907531377874299712214796277338655326793229739569438956831695223710318785546659020379724619200029681346580408841313564652915841690836522079053275511021181446158164538127597834845674510076151292195673240850012680465703377135847553912814792941456655171155480949233571310252253509536863842896290983757548778415792960834091603339496732325365776485558384385517112804133861384638008252600497811602441517318585730199392995542703186029984201196119677396056818371622321337060882282081477343772717243360972690910281409007819688589303950590905179909156236185275715724133702579872305701492189954111037410706605670106269836117280732164926931987545442440739487521802586503386374658661117246437175975797151650844439675851677358278722241489573579837155822026610597435748667922597852763807625405001095865507789940886625949503487753696705795794549445659148626595993196737318744802931707271396160944180863886307618723409684804937439561781374701834612010725355019459872152904819150651218018678082968468231638330176576846685930945039083096275813790853989050585405844401961319651005425196640778541421486497483047024310314235682474613142183505530249976315642247868365043214544299587947802256052021657790141843390565616797216579215044849022235877030797989603974582089135386862943769632134118310884521563881118490637123401474985547291743845810166312194259702825066706167320149685944172711812084999719374676701817449347981052247165516377487383954409495020477262677418567643622718547975070335610983350808724663101792501168422244592037050713470071645539906026310834823538449108367231959914864102411843845932142257153705933173650120798955245070625422090187804642639818334528139415785949901771543409439555409542555227036136161684573623968317846040172712348226128803448111961469212411870208340563291779560820379710053841957493415019891236278748208744628583573790774377690762598858978945575999675160826029385222416383467773833152055656568948959473427727558383990535321365163183404984573494787503186324097931805619904355276521596613970092438343279958572827100579184797887103472053490194979718078284121950999799861984793207165496777330524976289975624090093288288972780318963937057084816175407248764196769921771751963335769212097660963989006745817679487303605335461701797962929395976439197526531700365828261083969174963726266496747932162163964152035973585305881352563525817227189010694339435009101029241039575639443582486114330389969439053858523306426330134874844218203936896242616557815600513021394601486750807435660429437902421242294843897074530872875321678266813053564380391007826802262289565922529720109018255097906908665844962123733789128232365076141206694812768543423006233401220474060902576339343562311843322664479886603574424788449374243155134595262927327423247939347034930138766114851353077800564695654982441650592253945908081683778251068663797031616624726438498230253622095051264368056290336018821499906906106836711440770657287015154986546961940769241157765576034611034966722013401775673188253825174428928093603501112209874579070150440957374944769152382501561001060196365375747147470314581020689228744023303118290380241661645101335553265628767257145603685490805363061937196177841260820716087670437832238616516188057404052464436700579205956948364547805602286246083276647970077903967815175915579482109303722261696880878582208946733815510942491560025868830582259113211879671811716635573742679565789537805842817383097075781873746638788563753375400503086911233162964363614202236095398069694607438887585131887055365948631593430202295451070673650821451961209829470399867836174678061575248341011190092141184716359199484981512083510915266276918103280277441231085488644709981953327220526400378581114402233024485799132265846471345915222143020948732177525155204425557189493335006573592975898960555855447618330629172869931849763199372216901279848462700628958958684521514976879743510409535306782357078884678264523489762192753582586281507067929998923447964161043684723348058633624196904739853845866645640501677741568278642760472388038481283276971270827394125887638062401782346728120483482466364072543229474704432751941936048886943707497794190376604887842499752454220079764808916330793903868282213244831786688291922764180268399537056208246489999434555698654792974542100828916097384301990716080807383048832934290719617047253222814346775233263081356689253694980080214561479562368397963401219398656351115421478234129694300851477644589860473866000722947835707843488298974124565196150828434489540254381605104131199214358776484019828414199401168452310661138159324577547420479053604607626078738163456882183050690952051414883009738226196906234458781280145107415818352683536629434414448974581376669411354892501059356747770361185687971822287916006956350487875752134080303622984520292711634073784804296131850481068621939003503264210698495684010592125873926752523063728787923497233809824528718947790301266250133531055360928060343068440816025933781549989409887971076839103646177806498923719672817442824292048090400942422228526251927635576513790263788810899983070613332402045237338506888019004114152453322491315650113353559728769073950552582737213021889249601805007729106099107117837400208870992172408582560524023752683418031561957080877633587079015565586302561670155622345817512192492550527995280829759177258440134523493046398911326495064816952566942057206534722899015482866666115629971369991280900009226940924188450927374264482845264062219735740294518366592710435849007702776364435927252643693053497706677620421052937229489416788340815183579887246858606250486676863642774866012263083374452084976436803525805418525597217161218551253453494420907176896166394730195988094365920365981750441413979496793885567159345009102004283193452243167025769660922829980196296732522510513235144683722959502315460913038509389599834603273575937483530780638852952761819050394432109731718531472508833084457925051795021297000970555659183964167593710222303890897112584905787726454924010251785551048282317478041402977398974738516830175482211320098026206328192357240267592482828996595376051436204433354225065142712007713091884374488020003418992462906023729198040794299413608880876880973938654391416985505225544857971375325364321424723324393793515930043404178734050787209636467884607793476381421307447835916499698221354344688732725828908407962309145040933027829670335574470033659167410792009199497342056165990572437168301387318738487553910726156248364806991292246043017267043099893991285895574487469545214194783858353740034187339458196359592360604442068573488224397324141528082987140247221118768315588791383783601793776845415443901594858196820127043852968871081954314701137464609185494327426365054523919772177053440769524435411963044940910535934334179974314224996250339385186450618449715961497194635170405180079663106491444555460110495204686885113761362916008035625357450797670583287755461364311235412893679345843745876661611022809521694652975474252158162129875174075654217756788858970091358111199097369448596405982617762759078356823280161680825610941504736727173817928380207252013214007705676802551750592652775227846892389950560259270133953787126605724894351731378300150517252481525863826110295511734773905230241737787428340604064677950215722460328733190284968483316982731362582505894669099640965346304570167533794880487597208610732285473007606838400951223505317795302567910135351632606361373294315744544657772659029415515557104334350476806257278453834669057608949278798378160218210136733706771898629319850130718892713060031779776241872649656279320822281578867414720146140573198177149708275119171925540880155877463596732075757383805991460636270055767300937504246806908222548275038750497923820284168581370545867845871458267311610914211004176460334270395925391800394590533635152370275539199772390402299168471311715281182743217427893434156993647294980987626022617622763222524509789057535131507935286207980470070141022406578324299685589381982068210836719757176488142894680311342877102505831235903081333160055055405179150609070135045028512962080569730898452365076174341348025956487681193319594325435818882912995187786414749713729368452228906559684694119094193127595422240669015269957405450686364853783484516237678366398828882876586962641364837561624890893046313124114728700826237648197596989878064896476918887479237538933563224712373506499355302504192642064409820639726543470882551324685357643661137232576306859562520457558195884703149419178152242177626013955857670410743737618890949897126637470940617859107839609286438822875338855833116156031406154575890289387324137651746657591034304288353704031922294228551086009952338033743297287626227994442680778057698474015708717422567272362918790825180038825647976733080198919564349979047467938497954727908887067174910466865787182049105095803265582406938275560550723525410016955109572650456185731960776557714599904987675613373389468875169554789744076021549816264396702301100691426758149492281056021128962662878930287001751975475210501256692691903814472562604086317486502482144191965197209729915182933422541615985356988376968156404618121360823563166620768055835742746576173821761201160259506239351203942043345986359703059359582823224198250542459173185200043958577414614773816764408988595892779767399252364654958458617217607717793408176883533558314540840474721365898311670792740515481531950954511506518216033358564258132209839680222465703117937086769907221228801007483764010666603276891968759248536692275752428722359221466199871602123154357510458032622498418184068295170810118845280184617411483367625906558122012257004488581824791729898862069476184991369297048240070415388640038738937100233837644169387992739538201818601600268324066138679669820742947442927256400459173985791639276747879358401759405957242680534682816559075011996909752997355259401766243104727099635187583185716449579263090059949178733958878157152991985189195184545145649017583047337616609455908840188947841980046927840986672398072191160342638249525423998587530801339911217333028113927930311756506976828859634174538512367704741802580270959989582644694611784706877527259832583394020001963350292978452972452337617000627502421933543869376283835862078567093866108799492271485483309850228339649434930975169464487828687466949054643227525715995566628768189745047145322743711967760267420495385238796845818264003925980656691844284197324088650143376394102174707826814314509240089589979760913207776275840935930954442740103984086283452146845332911094072154493025182437873549577715883359787371599381642445217282976123733154343276241781137755885395286580270193878968478343637745572732851230135813025498469132350266523848042229808129509803468164391546911843950190835900425639170331589785188896663823456856811070705751670559462938452256823102522024144143324708828144637502418176023281445685801438305140947691546812637973531620077307854313584410466663511143903062810271129814940567212766165356403638108763418351206446687424586997829861928709136064859294092869924913219402644958366474566777643848294906358728984769128933377463980015824330280330016035300419506693867870785726049758981402459283578360497582879241057363171390047485532802585276045367788617632144518727510708420528637069954895885986843965176502307003466135857716271074779877248399066926733109457303054180459066609127560861001142833595574294959698442760193016315549142472049986738989947523194494869331471967527006023506994516534951539216914236036514918442586368595516659922577941407894223801550970064292485706593500912963167281386971810372893563066626436398895423273584393331567317609776638667519982066686670064757440079859507711846868524564614987696151082215273675707976443672116049558846494944600986722403305531724684866098868498672533490868743924055283943586334410454185379898584547359897144032966348791115043346260711596153843684712235151931451195115795328551678116177756769221330203020588273673835137515162980433313379811854896948053429540835760219649451491541388750353896132488261143793082258444529087064998863030497670015114858027050096739810576075908289218579505199265662758109653116786529294820143750483645041023917040798385433034737394987637479583733174373301623797873877960852261829118547499591302287661137101961422652496135716357814722197090307131662859682323375182878326815266032565818668981220841864671713259667434992031108985400962215362843883591182591057495238718889794516969565657736673720634637806821245202603405197345194030019909650749773496675801810847768414071932313292366744798497016117221329496573721305618961210174409252813124761535739757926120489964033488111970862031986910220872172106826785079620388727412363455362659158434734766413785690386445207184849486991637237733373512627235647233093609875284634463127718699413301723780665456826206673338404572618020447054043487833692157467427645762819420525992799930859395521225100646500859474211345442599311556029998423982804182797151443865071987413709589497312167430825760670743993466692347340800846958260464002792529196418096840558889260395409203702654194738132956797848414392132263080224628239679006272429682926895210362038147755434306474713170041140888340429449265237262773271786167453673011989751459993518600314494555974577383771656455407240100694617634600117810259387679068596640318123191433786122298340038288039175547017035106945135497530914728520137749107035309482355307220723844350773954470465561525061741371762268540991029444884576882624642624705104334004069347919666179144060704068336851618195761573398658114562345939707206462297686425206967473659754926960325704692829727768980361790131723839740320725704317623494394964528506094140620825447829726632207975843828699093093598527664907802149752899001619143650996423398633360760691351551514599282799667716751400349416458576568326933326097837084857336476307352764975676644790421191991942758217538257754452435562799747666225699892170556764230359967858860831526180907804709820513222323428789484521927830189482770765094734265037912248065062725899577903426460904685659925655955985345402519939805248672910989316746147886544577224173267433774220447357183118033216727491181851661548249741789178957268439774638601788252614615586025051670087565897446615783328251061422139087353957888824745486829943553085692811691228356465485240931841422933777565291288415961916019628633689154707360241944198233227040493489356237386818135563087493426499657614465894682573774590775712145805851108792823746574377383115846648728720450703630257143446258392881643297132289083257712010389481054022090836949329525331895882110772853048726073550188600477164385885317396272133543854016019702940733833070175173870509070382346314820170749586669479809198209790399323299421267531758291578179081104283356406748689145316940241885256758690526878316144758154887271910289176237408655242159867453643430390903386462819830735969297399070591111107862632302323940000358227987855752916281513279777460206754729290315542368801592272285682909621236500567796675000151129692137752691832823038628172337597098522480556227489470047114053597668451547834264289366347032337995158165608005953000934199157880761161355433662153314086016058378340162558633450325202858679311291623751157862887113982141702975184105097720228885292485004960792404964020841095863578848644031187715326504192068563251104007158163711111996014133816566677663195014488236469266928768920061268937730661244866793886406863542400040765592627420266684236614791664564273228928848509011469846157068598778579641219077198800451345527472884928886565724678703577130666725806033693924772374800539998717584459076172422111312816003284094141223762806697452406658467503823500560736883117888785247080041275785305114602860246041674588721400977654598291352677196643117143302765198166387547429573313943681446894556878184184259324612696532568398114941223765117709725531015851768298510633847759482495244264484041662978429726837779765943941110657698377717932657528430853687582919751248410015626890195930816172801376637983175578923277467375648778002599398912666698573522421505677420495229649211685358857437363713974937144831259157199877223957935971667700454924297167869336302327605928250667713024121004278247997915901368427048472792037684739879845414711312730992919597087632151429637879458396112210422223544344622739041454263588603434430096087949607208644050240878248806949072842751150788112077263245963672730633326054031763711995123652830845155921199247601166082493665972023540403936563634423854597570092838178720871990244029178062096120776032223725435336274217223110122678318612594198082105841765133847841120650026531976855907622723607029116945306760640638967072709633112079850918499283772304277896988172906082858584971699425817791570569296244549684673724202396310599637501715033375672907013996356829386410203800146610697137406695927744460482650987449596041998503991105288410853181338397730277212675277156877124694237282165528547049930264488211927648578952446477100482427983620862367527880408632577249206501952664725926308512220974680440491937841634273383847140581398669533773517812335451045533312350216654347211904492151161913685915984924666448601803396033416641926514106568815232251210155104718079479551401603591512021472168385217041499755061161456947790757348382764658302798866134591775385126304207938017610381192485634836825170044866678348981681011127610762853132524041012467169815189821690749233372949180447852095801457559527753211134319854441361494940276474408660318379398276017802626811944297500581053971835173054497547239483596844171947051032369874636343820765351897263951191408713601610041356900534554374315762729808067989780505874933176492303077004725724849953228217837277926701620066790267430143215856513548664291305009287609635878707419425981841577354994485165097509250945831343284773735096716599313309521034741216215458539371936039879754483004073269142120828282292290258921400642258495658992104069847705302295641354776346348401395257671164498218766879906568749852202253109002700690321223802135030007869682287796292269307753883787295357770604602484724795415555929675382926413114564070709073432192054556056649230783192211860580453214909332347718857331712301865430968064299966751250884727525843873818211161853139943915482706713199329822165766221234302307581801437701166787848180422926389874378462880489919293231773765693257552469707240087264561100944933277971628321661499589392041237076587415007835618782237032907274348262820434673632521806641151556631170474758525563467835926445036073479349660558180089590158302921757448991813312963105630025839287853146957180913438946727518156211167629920501682700307397366154885300523772769007110813095456414485279452008561060394785227412030852956559185763919555846513700958265603987126283506096885212728163250692086117311549531616655608049824956290894334314928875586576633614436628704640327661724446322820883457891406884569911875762584502922134763315834312925611605285357443183196785726531933457520632487624575180334267453802589133426509663639040772767949340701770513015094567263684745571398423332917108098664103258587108346000129706518246252104031751055797417715781203481348200951827152609839768849437126912962897287236349995539236152472911916789922803806095629161927544619400949064514017725187700723943231290562118933109412533318362629567705954490245710864173617794858233442428387114940574121084940686542764285897207846861592878305131817504730579685208745011778848993295825626088302775672830946219488674421084066092184660873786520145608849767557288376202064099491891624377050011957950191889967376409650579542816764034477939606828586850775640803533298331007300310007530521362150564531573212622183805413333896898553588279715041430908555826295248770541931193578315058897275570657217155510771708010019324360470200355947885680630087771436221906221645938388172532508872165909383144872270497062909904179942920421683707822194336702609684253962200901450985334948707783316695031238392360334858435128040235484930582802548890457935959931918667098513140840922760860231068646958468255787764752628127902457179262685236145188164597061299336247186156583769973794111041580521133363363019946589758880955240481530025765770543076854444291889232140070779455975238487958775862198242006721257811113799914095768546590332903718923604628520139959581521869774892249330664169194315778744064897550171703417564799796087358426752547647314268246244435601659957347011124540458605636877031677370910694921172754939312237475453053480302794009118843425221908374476723352364494236453094292130896265018018989494901965946470185209517784169845562910199171662109311928741593273854327514400625959962363209420463863655124714042045288797607424192160137344864129688490287056717032821268831187193971066959383882699962556707252502793371693951557907719456386833932285318943970567661227000029161912552515876712041794344665166180381373635371551294349658990765067666062227710343762851707015877124191015335131062145619113801562879942490716123389723275884063811402438018259838994908342552658031658937728668484109361527740767576604529358210625723371435146980370077511540902730589337863571672087121022312694138514862151401242452302662691967031465186905423433703646559692704621434031650923160585477007808627604113353084993748929003991816250295772866730567697878663036489510617130429605549967748224094715710241778304116941598735241275107916593966468078741416522605547712873341901906388568616858840534819184770032512336777574541781634592415886782101212782389927107373611436578049455653040120507279892800452442634931062682787373209835505865835302639368303298035240001611177770580082244690068556931940612454056356599944712189347106647714978237196301178924550720232504894664867714825775800265153183766261167147054899926844109744235656789599825180380157821207632766621489199698782486029855504161209529940561588974259819917239936778410258934883210588514189916631811327414909288152756848868304061849475474041987567225420767548016714589824901587742906659493488618464613278421837960204612229629865030336044637891292737126790330389371518837546221746938047477635252223917962912899244826179249951329034081310721050794630853232712288002022513414274267076248271969071491585810611052045688146775937748246515491700491891131157078651441248980507266055351009887189934871663819636371529356125826172691309869116590568610699183827701338129422776164232218089326838707333412859695570356428286143628688419330746255511359037229282687711967644474572125665951460876311060837456810429093004172192180660329591202020059466185205031644762783132503134314717585455331198899542530040541472592155139664329777500791267607474574421203433483754102377430656777641836765429880021731059644461393349868366597292895748153746484478469988373790075345590940417345602890257213813418151518275308545437451672355554460804336782083273507359245709632997356087000690808289789977562407452720202825299107400860908661700371693463706240666580971117476673064579564400468410824885376310618195682777909693179013074028317138975968609088926873704347559946114434297204152167562262265356308915303510434527406237848770830206582862549436425136668503962844434520426704365986350197754294308010372015735282301073650868583607944799128809446603114473439305868278487273350602314291318885489557174382513006974710538873652318084472210868308167769539556905759248264077488340734878380080637774030226051019254522214303643768155156839369676805704251384437540263931933132806259305667845836392415743018016700195796386898146052798109732888216014766455066405977058987444269604566919978056041191539075956951205741951492689011868797689030395162773866753492583141197469335898527077030253592097350985396551139719403691716115490065410602040201356310146056659752706354634989193918476349942602142504002194138508217464257216336815541465761869493982825186089833160514972528719061030615152300917269442101180021612474750189173183497672130667113570860575972023065942525865460606836919999975800002971951496084414682607706956334320850646303621579770311620717801665430060714985234111809337384915299340055498694763792977482727482571731619593885036393564563975668825828394025662391475205368520007006427469195295270378038553029492234343608848490798968010065342079488155155520298473108981868120055811379351277411153257980691397221221477287009146438121692161596899808696871755530683052564573615678868638369700467281857197349608736567558702148228902828101428722139051852260909540057746084811017785600462714881542992539951389631736981276771900360865033381227360860903831771786514332327932857072635601731329679814144305918888282709037097807030249107358762818020376184126450942096845764159830321200429700335545394887428085180401429775423986115732883905645864195726953730231091156594011631127600695631258493147218601692537814347759957780285604766551205691988617894008007461147842100291766473610615291276803379953903966354159493792363108069206971795672881522878390380561723033847198238325098130346494010675069536050954216301387226319627217746111718909089027992281857607854557456350578017711883789661833576692705112709686196293027512633157277767006801141147910831568553666504093727101963717697343335404361748549529149759980596501436097430064306436254358775855598572824423104881516763740151176908520128887180674655332321152930476402482843539264358720327204861180970590296092862556117838629459791958560320266891372360697964209296144079699049245669661041089153206344587980512946444327863536590441988850635757126709729774722623131720153500045267096286872199819641728423118760867870867429594606139729563161806826168900888160031497574758864396414753633264668877115112133818865362242178679241780747116208598996433164908788343730807185749297018537805027388126217600779704400823723685574570228129444359233655166011835403189089107507789326473041521272376597732721064597080810818830089138426142745282526442404739256150659848223442214424597377479255093247415762501716637795058091796878226161140458929365249752714876409768240739083738276316897849652913846340167224612826528857710892394778781392355911709696182138530312640523312993310316476496653350828677718733689412946759422213104667075013603259954916502677918474883521605777346734330003497629552382288155008517944358037584880733773666991009009953360055028224451396115841282976476712837214123155973585826194090099589825900140107486087267119473869456147804334082518660626938917204144017786669418845216218082145561962097152167051469941473213826688817939904741380152089720498961604313331554119109334899156042545521078803115337785980419203336324360534275932498375270281779734373970685190265274527775468612296745609598115829254429668361112616729780851473696129789590320713832491543246677281194063970276959337385517868115734355338225684193614572075734444680506697796734425846702526650760620487036931719003011791027523485889554067031609589056469501698578172510505277637300666610655346606172886754379800304079563133458366973112453903944315854829458312383575057697501067850289441779226382422445145830321806390744132280081090494402957886138947117883163488829427709730098768478436805807140072614966289810302020165486262344449255215207731317741000351441954164608679944159919732353597630247604860608294238403053530624305212013504282960830608066735330348362114274501289522727328572960372343863335444454108990966488087879600204488803297878012095316299793160612498213013385617819407209414387145385195920576724201639721431837885590465854153915780454595376916759930673603977972813782492156632240687033749372286285100608764454276127534502140937211841675538945443842106804476774693179458212716529255857568462538321601174805838673852452264352484686413434455171362227517922400036550032030197203689522223066444694645464648142802107053867264109998681830462617956525069186542162489932499791510620054398409719482874305405018480680577742983994460308020804775256761692524062535089370396229213117541920382984207796335448608067907547921204404544049042886411289802492461564310283984383536010007185930879718625315489584986974282223209568767826880044913593367856393486332946119398897575083733027216204256460433776425135895374855277893814607019134131353321002556089407313171492865832721246689844574604408978651173333527934471229546430382583239606636164206661628655449239709597258705656313282006846701702899853966252511970398005546761085103455847581268698785167519623476713802609494749299313719438715979606605451858018412216313126929228333723484112413796243881859710131398624191867100837616397642971512045173855908552956873485254866423775433249085718321240542367681267356943822495588567780880995526120750352529067548184117070394995840552084079790526362300881435038052224838904149662223753060896980605283928700998339175997510700604959067040608337331080875787703270466837741716502105020943757686148690919379525310101002476600571466807315726869436830794625425317309514796178390085902965092606039479052665391042563306592838143181504899452207047129343079261251646191212419173995078597770453397078742577072941281659830667022269645463276747391797184238493091670338130325505363022710369647239239754683782016573446755554492836843248605253165001203234859327079480780226096176459246764445088374307212891809031805882307641774837211998851322763061396797185013844150501235665564564729609114345327843600356734653476457703495797478909744448744019588355206837046511256334266875784243442635958678719464026462042101888805859820799271687021139802192731700090891371973640981978931877797861904558383871190813721157093785753496217437182010671624499727968940380705084950445946624558406377596181371725353614337023624362907371662990740523357260518615969087638495354535995917373063124073660766812559099400797359195315023460650676336557681408466341225190961998210887162934073863372063679850606341101707227151020516870112531590686836362559478897213490544251387788197484810590308195205436666454190744585306825388912007957367232968808662362104821665874450508670138442704053217047231403139697740871699105938786775057196587144283960671469073260461701113662472986533293467005945405019908360176619919313316075069370094346848860855521731162824946675089638570801976070635533895102393309080383926313467717748360087856238751926052882867938966322955339913491961780760323766802856185714702434903356919918377127852498394021095993168350983660359658929816061341189081199747120803290294905101379462586215021368066971835249927767675787874353294790175917155318263284382800615534106815833792382707693820381667906767716727478259658002363174860609052914970717486234274804406636716511501060415276301316613577068398314667721775478306743692214604182900901345554887862782241256129009478078337056260800360658477637402519861556666223153245015562876196668495647543406161212466923914227244166982948378707055444298939163747242362316085592761391296886197502782880030665048342316167096411581217365186309733589909449986691579172686192923910140585879821540896904187003951713972066455646232939250965537808543683383767387820863289513546135922416313164690223003037942761960592712430286362455183812737045759971264638518003834599124247927691736859905403745082571678189068224607945441401214015828538934780187438324492740503082524922739542486034686395576981670271907350554703807384972449076492011228332811707034858098041059259366718403051398223091025189593917098842035019629725564932625655162770272273804711674137699312601786435770200823629199615970676657663748655354115933413640402796556000305249191524663403895407558701222923174970241458429659692242814211153036503555208260181960136169242453297664515448552371565364036977522537174977195482632565073571580279987189312398729112343823182344375076881621396092178871985600062922602728206786084874593094880004167007866481911276501564553661118892156156037732908583120509499873413733808578798460406216385463856605014307304448475608806399897163099458903574118877719351676340331847957821024719539166559687343140696466784193999307330199075822853759994885414637481732934302246912427130400507288843499984517343278816090613006399470365900536895993014850341833597163549065948240473786635856248556500313924709745210499334284130627300310112541527417298919582159037304328516657809333269431680563570724422802992598023750063431842730074482607767040136509822639562504507742101334123237654103343696022405290649974760720986181724888492760711795977756618669406549340304389848136171443949773310319303558434413926596896077759246017744493216478913180662752932289650741847949261339425522348091073601356080798007168015117860829316593105985182331680660079518756361336795846562561630822912112788413412519260378737627257952850798461484212490358601210248669375220059923962489591717509809533946928447613726274335840278713495919842246445528522363401581566324678747991880797469568394859760630957761721347245737355535497102181268377768801684979857993431064710939948805890145921341750726319445671851388561794866177490703054377302997328344599451775639216395090150945171435323159161400029313640677612212691874963406567691284475322360943010086645984727226578944609463639943350440431385750320594855062319481538509028137407454826154862204675946041642017203814437829312718252880306030839204864752969478786288165848018913445504590970442908987307910002820690287319118437599382160236413998679344729595216283035821679355694747639835429369607647781462595727632053345955977139139790169261360444882172748023256560763591186915029785295304626951118341671077219885664652025916002503293199260879366646853574571177168183920729619024252286566400119664981733452686689248656493325250840503751013330952861764500323117069930616305313484281170440184045685945252367224736420261963278489092799748621713904580234355530929234341118305296362208940994993762065780736108236916683064612082893079555607851335838706221847650851833956230428541917333990804089790262138840035487125216573566248721649118991438241728563006938905280058296485458862119648275587549756708780369465893114837681307895375281060489898113813234256258843476991670162109628585411792347592963028759428432011287557776932487557997666332282557184538513272049852017873034377812760417645404335656846339701556312537125451174901814301684942553280938770209811902608781457709614170141774981887822191538624769333546093954755787853244921494748370051431991770524067219549037976061095733116386816917037660015478050290697495134379893246318374040489141267175578930099025575938125696861311578692828588040135035946555577969726462935388243787953771847585744220772261130201342943789842727979518502182111570845625540837349894700471257175368639830055686845993562869234597327177379991339305427246453836612985498609768151743538811541167879827143027259608633412466254718183642142627595867512684255823492904998067998223010035201656830205118863374171937930072322872841375038799273290384211844030403369014925726399201708090629311349769406387948567704388299800717209664996232769079504649328627225903347626918255828815249270835364717108560699900419902090859748679418066524722357676957820099898943289901654550288988412100778115078357991470067700646610127171668513658316433354261837587626341827399203183226879058774351629285264289185339711142570371966188427560851614149313734977920608958702661475825901114246379636786618495565941495430167481200296718510353066065930373405728934819078762914208272814429679338721364953248886504935533391823456603932437787965383965774661153589483334235890165153118523472307374485781103639240180794167199952246078173303163719143779001080736563280376903037071169658972907159548241524731314296778955397488839595352418610645219629475711569132258391793276949256518268803624947129537008099058469398117880627154266584124451622320803326117829417611585372364131679667403579039362115133987744397640140061217997234853345340027525428866441916452956023453942132381223015038826797021845966268462029370656335206894911233820681503441413483958877083781608339426996015589646440529466249603276807570390670473007321732221806655250974237796988296664583080549381960595828128365317940823316237417177332261857353226620009899363028978278948116059129997744703257728012947351241410996191207438831377100510654051988610277112115125094760685014595876423982149646390822178079783675670478897276582354329347915752297023625595547967791739235024703066378539927008997537400357121647529948374254545728040595966379899409298642894331462619122028834931573635719933886401071647340533815711884586940899806077027623573805271040927044703985733005865826066421199793698766494796860445726883932445193163068643492368103136963315077890365886718700241231227273069238162457686801592291614502779933186962718498553594268595176846437283218925551859174014386467260308612730327084518869922613907253480934129916728095563023302752038031218638771904851601895571818187629674099337970262533165380445554841727183961566504040223154433786506845044021237441110004481396949534525622752174408380738770013650008620579355461193660719051262639400045818651203006553202746546677812986484067721486510787752155778919117056820426546863850829380340070262657008128080452564188162166283817034261556093073201822461114295459536306583402526597953415301953222226695428791009556301085693495868039078911422299659856858046599770457692905853571566642766600934954667036766261727079555735489302373096611345600854794214866950723822803835305694687807060613821427257303604677408771366175578953912619163216780719328836163874790330841765996000346236363073927286989609393631295299010748848369001599875216903982777716164034767216746731774307494625071200170329085224637677592990095743578228825853545163304025791739126630580227868579919559628379114088244815110570641793305854537958792314350836277326363698706414188097446287266131393897903358431954444632238730637532717391263374939116800199337870642564269764759573479560640682865354039993828831482534636940190170653461642636840342059650799138752344647529604465035552960357548404470247883188073799908154348683755363756496208212599371409165242571473535774016102648952199247654266447600712688778245480213405364290384036964007606881830086355903428222211204889344665349015353683481471463455564836844089463255515505304370324581950825340513502268490295994572409171467705827832202669822135724360220020408076212631905171258420467598483192805085552228187668797921036261418284876987512698704025611523830650736536933850083913281250548875715498153754380366237422150645642037627468472749897077731093844491436226756001087246833552756048560508100279086238986195090397430814018043112121646724322118554834542988445876255010594375067368772122889425720346168145375092474913293593068037712363773307955785957731106780887349387466799387507508485637498405142895282855886433734334512514875980261043453284916807959146579947956740822722877639860093823771247710789942458055706832412246965680694523148355559666631435472931669479137602280667181765794376028506529129649405482866852968901161224868366110730464069091077916248032721743593008410275824921992265382422698436122842966254032027722535246442729460689197827525922695561443233192252080269655163176780962535585160798918616252333623079127348491853416668803487177145011175899891519131178147084482697037501758308701732636104391520011045307362815244479100582168525167955382515478356035933290717661160346982558081448038077755268687729597811260283369753154032063780174764546794862016097618355953275814981393329504330749877420988281493609543651660035073236118964478492731935255057450515614390031265494532523601416263561799316123324310935832098289889613022852590969299744592634206248282387444029981717528466585051279535842882482009323620213439621933802266714688069090056116141390075345192029748233887494607554065782883877775673900993497986481535534440017021332366533471320278261508709572508662308123334270515327099818122285224364745618503888465298930784514720091810327773099700520150834290583466404267873042642303531608975791116674911795255377658403083569674652150486191068342782748754376302875427273212886581655003025405533997195823632494250600390128450737837379722537462896638897841988100158286846491138766801465986642703432864690060857579505371893281229717526443066715318742779118905596607496116151181252828553261640574665187304363481175054926164968996985797028130487849181805618935148128698054787012483564021327211828685990502504195014542243057729480536424894762437561510991169461734351740449901519949616969414865020318839234658169768333904191342257435161337980994146353504376446239002082277023626462363089189648572465091079160940668713704939807182468082361113651565350861642147369158251544970524227536215896895174459309040061560223456735718266777031880552607559579370957874705800598858605769048800519191145241840353740760318133758573218331239019718878051814221554835982695195093338602713817441382186268818484956581747922044662246458154399460702977334566845736539206277129470943335296139564512262938085935008232883550556997969744399984473816654221490522021540792242646733510954645051057355430312002298989465535550068663306116956736134589775219045361779379456230521682782302858558210452023237815444384331146088222594065060615153396837332989382045802644498158103130360508680357398860646749354369453487042299467739781464035192902946922799879301178524442938252133448784351619744813542650075354708040784450430806938000557931509616165808529149614057453960202094907050601658339076828790934232173852577802639428604362769040464549246717864664988073045103346502674468538265430693044956644585637052190123366460177794382760125444206825624082942855495065386449224533505245210781820018031944205958359235644841211409624832039717873681955743529490824737674932464278441355987188950330569051182998715558080292166610558183417409143833415514326404638453958987225087360963126567029101679722522672727208865911699462696050477364903620029221267783165017775935670846990246306190354269212868253196205595273530684020919819998901427948080622604895266003467231419001436870196470332002905174754774774989474707022681777809969605976283209915977057288262628775071600715917109774531480995616708937132325791194178455048523140176138768316157693911726021390088412441505682473920264089253224108088945238969109372285239389536067148776805278326044926448955683698992976231934480919837221392217967089528788137866375691774961909282323849521329623169887022945475045308005989409376877364998367065471880778574627729014693789971707015944001857934664985218384391380836078388786628043269742024981370506876335597271189820986362539772332931294492284055768980191400122710780209983039054134426741136945908901572642215219156073882644626574132787431026464573751008987817512966957084421350165060503096784413939492611358546475901027558118734079741325537936736777406310192947147523296231274963514070492229448891074035304012228895423197113393007795947400828597548583518301688480867432689685408534339087227845428456406749644485749957317600505063606583256459626430345909923924490434334218941921655040395708736326462622453232230137139466456484803499476563690723716986274164194716318060362535871628168458524383459802402735504079990386019776649407230281583888657114861147747974016171249135253521729092822567962795362557503665716048855169791844665986671697130657176800514994246609852169192817309132964742264520962662924674456207260574154245243169058827197214685780364160611851310737967111927615845432059211290875524862080166434134433449300407243866256599804814537727154159678921951087554439084081535325406875801867624726437865991864913694812828011391286969375900695964122403391064082735751688788874704862688017590726673567344857552572189146636104179485139054783705921815101205424644975059907606093009994122940825971262972557763681541996171616447860417573640559594646468799972251299573574802076729666038649790302924069615543442102092086124488932682179441955838276440135105114940075244252342928890643584761527010043795538135977491839540320593047659801217223120134547503399575486352352693828877506787329451803951050375666311628993597452911704473167419814183382050836196912516365396132992112003960191359537541938968442579325577404103056370213039739791508839107371968304695664944179906893934063806141513773655102811618672905218889093356213241114749498388524482058788705710766041594626147464319807352203956565334252498421517184462271344479605509332732908728386006424068603343057942920388911779366765461051535378558181579508346023727411040145500043748766247748763317649008830100400527549580753293852313185009926499097517573257661763787083550830431884156157271774312711485774959967509541631906401661449072110658094925960914509808120541533896930277845774819547855181029738321901075674025396179391385843904876938580773399737148932624463522908128757256835171451349082634468753671251176147634479123484692754005536641722527710100759583383656432083589411003002855801508923493105502055964314652389712416353778909763232962702934487525353296515711278934879239838226032194022335469951111059171291555728606752743711876868929409735033656568761512137255598679909513132291276648826972094335095534781693951569970680620234348981216381432356129977459288104101947925885763865145615497402193850976190461976176261856276099652769380308173017943644329416163615886095149581202930003930773232155238318496875994730778586773827229422471045400370800324031949844387499936494774440708206938274029131812259802421600905469668143272300697287876454931139947529080644699999448468541632586411705327645031826585695552429465253130967285245529898243093778963513228871977788779234983799794643315111739801467984770678454490683489353396083350687758855625182484474476039053183070736325447978329036235753387639168030693196292557810965220194422643798006663483414953049778601567681347219874289520508673478283543396822306425053656889088505417208152602189273065366790187853523694506589920925805235400914595332865118946028352259664330703013279141751034896356733726630221370100719430804260913038034115692218694907156891077258309168818080472256530842119320045726199082759383641514035913728114793073977572599595651824244451644121065312840510235582253463340422088467369485775179522037616282411801950306985179727970200936259130090083720219650686492796317266679312487197469034454219789510366047726295415393873110711886187428939788788558969312605889965496351049807042261850897749276100163972299045422726435687959368432759534207716276350257820399491635301593439474006328263323875567929759699658694064738588486687299359679900337582911250397267204721110756055686425423086088023281623270270855205380775056791854523757591461274842310846903408650561113679370964935942805415189235272734837646399619435084318543278449306630725237284147337794013938050331048936882696524558852694504316849916465656180524922176298784755456357913184783210810367522979193220553165179662573096035874578452487287215923108925093417491801097026168573161021030897935460673826304975766007787628538395248433111784076225867242414892716442850545383920008006299923069383028203263557634345112900531706654226669676674350959390220316973386577244834496599894508320977383380271557484791954863574390177450454412170636979761878074242549470632758318086674439042954448307286162960827765807083360000894378859016697734056861384657157965898536977123732125654643185996523332935110939058405318453104607404867976545598735917868838477733448718671714037071931745657781251386821702780941242574484574015386644423238342851932650692900465094777628344168302056524057011380331566345929033116551367058735222448998260691713802277878011906496461750492758830945676900057048297632496055348734156571564771880999491853361137251728430475975885987428472575634719926932090763963790370423338670561336712930910566537870698908869824432220198790604399213720991632246236853072233546878936868263550103546307509428126451627955847421641808451927190137596063336312404110229171082803913386302910687880300846860607103536858809575003523391694565354318978629214704678667984293766848891566146055841186894050298964249882358333421253179244327346726670708743186603662990457582213601753739706677322409914299420329126935807900769301995735412733857250037732405625310345476029942682645110343367082254289246140214430186944647600810743940815440865174067386369714354797536188247329621547737314855992355426179221699056820823253427115588161029133551936964609893965373251386480421978525740612948889398076038924413769097816124396686276384947382719409764940341457160330392918083772924810651288323704266245990620436132151112170523031565100820832200236557458408761170307094791737930484533631645161150922584571210975194846804119158555567389328072811195436800661856494161153093131806366740020285861900881041569424060664666993956599537136795383235195800923879091499884612301219130319087943997252192967830888290774675844801343431130252619118463593495864808844502110119904969276559609782062886185871008643292592134995133317903318192350270108709905364195677366161687410145065781011090229773633452889415742727699847081255971018546185162157305984538631601023535615339887374246006449203586100812451527399179293544799296320802403809028750121611637114414249110275305321118363733410279929747428755462915847943575581380463545030598536809219772866643896707783132605559806147847685675127653729879494815393890312760882225627593807746555179093938953419831975523999771069265315628801400218288492879003558407860065213221206288315530629494203005578074116646783181050730452163259408171790727698773405644317008546744612060127830495916289529610426541227744420039955142394287629381882898407403800188424010972155790736788185546960237343188235914302393239919599588094043380615981583870593759216500788562506378705836784157530069127509315019215638609736597790656576732532011411395160250694704275753008452366603614226215460296368413715288467686708071004528194751167962745188762266136260236986988065905670011179512664889135431256753663526977405662946531888199634498332864881768029006231993358172969779678675822613426709539865473577336162506415308532606661237408994638798438754015973164877103312898355608040782587427560119017774252499445868857197095928354800170027211792417061831545077650653492860914700058379616097644914279787302999713670574949770313300190548112150557067804278779293586619581065706179312431356985243276116822146827888444550490525424552386326583510508464848772230467747298376411743576986090654521708639537449994598806550370269529769053489910650032771178027212816669660796237001163962853616873406015227981482331826087298102873805304210615178574628098307950480238551452486804417712802475836770236299133076659978653700986131408761868127408796850916030853363419352045187580010833097433883755033015485696345082602830168019067367800869952879317658875004112159493408015900526063895872636768298851258110290764858973491032030906445796025505114100755571807369369695302367273078527760553898764953124010755665068970801731734027842344356621915497419857640324785744180239787395717980158437467358520446382839680338030392076504131042139285612840276611692543046713085757489893459520887283322622238233763239595919268614229912203609505448977192952824124986471745687588521249277500079308689989193571971210758670213635899736867459068921330331430990871720475886056557572788227738177612696021977493627211349096009653774824795046787601209164076324471373486679748261594727380836099454381301771328582573033062718893292596625103215370865264249987372107908442143254565029575439764330965164715908610066672219970027362855061823718945487997724093847490287235317866180421407827721443237042845406383014882050808510353719328774981713791474200002446573366823731858978925694066939512710183720374734609540554847126959525258827233220830476726068005077979108364668097387253256316365355254057786320132305672864251572768016787567244986577944127179058006982850875204953083510932152498615515356469659765123880278347495901516664491974803253665615708025223271857739349769469188180452065023818451458057244859974268304436101324552332660055442285534443767956044284934153735457001391882383725493630088497357043082320008725107620652664265812964141237634698009077290724416909006856479199498108397919686314089236033718443004050959276057633795904479207558560575118437963436979341736677756491860541340310082763341257668661754771212612631073297940668464515479274340661288923272723427460870805548484088923074540673038918459489615623453455749105877663737873212046987715301018698113865187921975388719637119160511848135413778967349293435233948740112144929481237981638552520876602106266502817395417909281629501813403460998820060143260201511316248948711267279131339812284520428741707455656575027095671267851041944731933065658523632743781660316199041538139672903707313265978800843477095172997865706546023309194117000895373118127893067947098387221179019067930335623941006427804267788261718358079883090966392636857862106946612007717536170589690512837850856980917409483911201545426723628760156745331005043285972913217364882378457915094775921700880188049101615273049551797402608784536583202074560748359299256986444128921205042404406558881749297438656711453215564142492842652226764060095514121020576564369332286351965571293084780950634795040461901871692620512614845411218667635663482608140087174616208958971403675526887923782479644063977352911100337141528926398655407437939240331750512047754944853467395345191073665512019057847460028058058299179403512362160958378580588617757068566052778356665551951412348974048369639075067131471684225172978022998825589169890160344016102779793248530868051146746920755045309859736395868247120776877383367406907397006962466895334104575732915991873114686860810183815282575777705772362647983232456479873207271555036428531902661747515097172016433057551736406095906583132068946897488431810993736553891355888426843862290203375375141958889788968924156634328898764034337610565601443654400550963056246234127283274674980859860228062389935040807032212088012521714355917625651030479685147686064362804499078365481039934665488232915389687478878920208898524564902215617883116133591515332946605554008747492215946090202236213901636305263940257614523078132063252129473964269569612926955645672590167795921627156451987939778716175979667803146399989420968301439372294737494373915585712449204137010908810802684232453617474708440157710308025890366066245640093808151163475615722097689911553292723051115331859765126056407437206334599221139462602742085180172250510565301443165568339297229317956609122513478976416666481189887073889862633525148873013478990983354937765856086044526416246524016014475989595419899273513375860111484834293483930222970911949672243485990637982455079150372301971592019566164339554049092043556684083570548250327029507724908573713284711724671969233107834597149948916102479349072722746606868570488447173781148261821325910971913623849687485526253999587776426709075297134691057987042257374881473748718009411588022400966542230576459780302863908182910290181734054272965305694785308746107951682141285424068746261173493040343628483607829667120527431196004427297300886484607871965127582254815280227495891520451603214335624531559970364337725667092337015568371305781264617293172446710156518964865240600516275809610569575884387824239813825486019423893626692909742998998695378117762999094307172871157457820524480101707439352399323714432363404802888212059419984842758143978133792780965319757023924839578709249691114661343923291278193531669350792324904689867355504988087380893976467714802108445468441651329646437942722154381100688590697022846772537953311096938962845118499214214160807356568924074080193311213458789961222369760399110654740724331541169746607609677847816541202958697433431874672231355996341426763996605417575357033501709361219530090557513483411351332904275799103209853116089587446929634003897571359453544601821206508729521898921685504754742461248639888214109601509643983203059062545830186015368767886871515414658569590831071619484117501215424703294961423532854671044344505569502998505942428740131190839891984900823647115419833789144786703635278397421192023710227308406653244588959545345614119139778393933247212315451716716904303284162244209382483466276812153288508273072943863853097381834982746739278086348474321863550353544396131542080685652507845833057888910418430255569651743117977626413163018381525910831490570252917739441011819404258749659603201875023882602276810540859967437290515264441813569228677085166811329936256711276067327713839165048335643177657862391691455852706086427000180303201696006271550587900217533875466013325853105692802103381085616981267856892252096782186654706343318748626207766311488469146331571604544604974981411463291744295382821212268784021626464351669443662208190254005981338693596467461052340850844227187802020301019589016406267881230426555342529497218737178223401010698506576090426570876214308202402453522011944650482718406479026836281862193124284397552610827674571676809845808826533916702938409868935848788396371124654490106754992853192633524081506477258946119567085390794801633737118731727566120433156102556499271316097188889927871728946043322098411876421234592168985463180512423706272351638284169067833240626224487644098373053906988571457118306879338533810546288790099885769641740312190879315526291226472797916365860588540734204728150384572872821269509712114110441903945455504202027152453806757739556694489281217507572777019685811337995631391664728569475335338887053646807741931660950845657831743451735572722689187558853085143068646946686429592585340893447042644429409112026361567346276694220525493509229675593360540540668992914409709112683267449810924300960954181966447470997629850031142488776016795538182651175964824319200288053035599895666126018441829197660086443598628604564195167128336565008299419987736570804053821343782474827828005645092155770648002322387756664654876248706040736278553878489185757652358683170905086017425396425467171800231182806877671456237003294371149337958194731930988573513320548570102400127542204983465171550070052493340282697944763142376432533392678023535043147308830851669196181337632160008808294807590695933661468841458695243688838475908532756892621872796849617733027572956730865612213203554726020531168870410670630855086603108084424373886073836081372640803230197988907439733636240076014200359613190760668805330192303978407784977459324095192908278533570806624447313841820356592785575008704593588535794806828009304453412704967062908163987603615010912536572532432613958589180778075169885217023290615440514706284177610862467992010411336114719637807519753663091008666882737721832751578964831551489912415299006908298410183540339466955209763035080504446882035442480484080298293222253673231009385233796966648821672496577927174663298745852473051303920915223059999002574443682265509525979267993738392295863787777902322556762037904034488128315927739217826485163474921007765233543479310337842240829123776554658081662865857702648974212209588097412974778527090209518869246422981060480684307588237923500761724834374138584365171204934728193441963413171123847260993736371113090385506932839365673373665031423226928015106187087473005228310983895196960733847416417898260039697370593941172415357108274387134559271775271788959801680957191448119829361337159289830681651226647136952543077595568987476760452885308222226059940233767932891469810572099920241567102899512164443933253477660481295053121978502549410703454469088215076829920704105136699724773938401399675155234419181593441617816953942732879350745722319129455529660106233987583326461148723299171373974783542564607296932274749041547576792940640523097878806962658617869241786200174506440567416628735112513047153353786412014214940612003579472320397804708643135603690657683372401128041970137487904053481876461389351542447293953500102076057745754028845349910258403602768809539468793528868789750389808392755400852616561679293998730097509727612384269532464671297723033419632089505058461485440723188897682455636781430415173494300630434284420087132353525069423098869720180939093460007856949090316221829531341650047954575242709430307236324676110701624092638948447761728662277223767433501209704461198550504822961161446314853342769424163324053038946350961082046657344934958120635967342619260661968199657707524597095577728229326237359039922885185798503495826199188102564238286475411845085399241840922296581151202648659735669855384758542190463254655035152719485415785343809699386733846440250029587857036370758931584255815617908724161735051681564701345129556192970095052417224324338476501168481817387059543897653228726294956637301146297669122428851755508112001080819453452095722829564818258009458785627032322103366553001888594757819511600008753289897126065730531819059297092672853117868171219466421814227767095545263102679185674165168713994360933250319848238956782037687687620749079837670182041600628055892672596781082257779318608649046443403275773953105493449952240019975062667431772334262360250892456915341580202389227406655931426759690417416666347243524353723740583099336821672635659650769521626589728040385472207068475603435675683114419296121938419980320801320296052986618956059585237774224742576731952274109151424373754768688267656241935674888175635404871539357585429377112261835047988742455198298628033304889248158659464602362229308671438852491592859340743374826919814023126195246193425745419568078419862917485711960490032154721680209582552697925206359656773347097402223144779561924320552664573179250406894290310888720751089857175851022450951076646070696110108541559449068474963996404097975544423949145890284284720589245633279664299914106164473379552759748332890850616998505146234923742971495531399734380007509600204002974594355812729207506584532205371873811773227004166912852637639025365281373603699568367787423125949465065056947251802791360106642432171539580495776371852848437274247607549506224802250160541677164072368093352063503101192367025535726017590752765315962603818939442113892368640136840333687367445022723659619389240227890494922282583079378986958816758597475752720000055592893756599165856763297673482311339061997987351534702325816477176397530552632975242117353199265853508620233036533173020078998304833832173624681000390662518917486165152851592249856499533796165972330999914334815386469613849572565809526950094277891602428048173155005436641104069472299193204124054539836377646273456764967468390504059586926072886888825304831446828661799578757668921338770207965618617729975120926608586888764641164409218200777230862790541761523626567896621766535482482512310878602297980916681462015437566250579515744674912102839262126636636647127226839337281973370746408548593002154408689004876452044650684055529465689986868289775608868099912066800439183265323818940467871153607343030450271833595735821084128767603178831618528604189132160409349928100287693616387265055143658300221787134451986548784310691500949333230074319260649107808697332685358139429985874307846747238388078266517743992319767839551649161970986847924992802962074987882497655338172863452908208972084147591525845445931885124791691724817494776437581233928824958930380663445293619223266191946073397430644063332034713820030247052277066886666086394863529969442776622490957127651632207804495609102031238810527674818427801878390510831464091525511746214671290759972740700863473365217083878321863524671355340791595007251968209749407132509165605469367716746334698813463610219539414156219921730738501292933161760557443596638251305859468752229069971941414192814352630757241882933599705369653866567000747560809056847859591264546256211615798773737688549573451890937643423171662501123642710712802642677405049020582113338896314085439391914302844087146728806956455989105560118543945834451393184153472890187975837041674762535464358045835015331537611427754947941623643907269071660542184739851060820164789278165141531107410362265850816655174391609526398695067740088472278946151901399140242566713587533169560118971105405868232419524233950265182405072887818271111463432993166568668930197982010861269675565171514163905049933913098596407014995735883748395611450960144703481656230335198416836769803453166608639077160844374959289629123931888049261700628195193025161985798298158056313760373027831584757447563529466508494996899232150265659733291029026868803627699941879388147025412806799745521665821900998508828769799621626764995838877651417686388138034079806467028475982368076832542979733486731076285657104884311809358813476118632933306884576767144931970047851145138744897569013778403996484643722684120868679046759104588969136436887396242055181187114101063911271694518447565641072384582674393426490540029475940061242335471827325364248997857393593433521431181025407198369343839383664840121240137959512664439235260065366609266962260409906040339198384194915638470367198122771762808884569625133730070694141355183138993166060567693640589728443294435962845810842594902399826588252711937167827554702773363812122256504345739886046559937617760837663310501701023412808613202717318814594726458897737011596948266902974358119108535034429279059568145435065260616925441851226342203567570290268647040958321905143042573534310482379522408259052046618827345569762869271585650599892312446941875477934175049548105155532036006308290698425303565301549695542853571990612970364639055819036388369082250442291594329497113043884771170260408197855517106664229835424485704423258994778747544529380947581564872984734439354754361583119458474231411533143551484656513401876811715521533353449499947850372583542395046039083727980989741281472943065862415769823767970485024106597192368410456587967056955847939045691569388446331661039686845024049616159726929548210725031981869999170689416429655260328962139249476149251153157356108798967862384897316828537445306234765335166752388315170421250588320212191729599927415468462012309453470858420416109942326002461584145796726775812314745294549488836810445980479152031246432214688014453790742217141183447300132604254027870189267861533742579400852290509798637581480422145173365356415990148010039962794035665298170308336359290577340238738442809371594285464730138248423889637029190491237054584422890852476598553895026205782785356468080075876222135831667394777123339452254164363167442214475407184454696608736620028033967036509216326657203555023793285628608271269607095725839571702905218562242505851126699643745027427881045528152190930168545063125743884927919730872844822855758072141729817186297343670589936969390575725155820414844359971437126412917157848989626559100935726822883829131635280040820166312149016260795371806739543817551256764719246396371959318511635078259954335418630273824349058955352663132982983072138291680947883459748753337374627337102886173435994265780417306932601385052221034088397151324391840741088753819995234198987535885193299343195790594704503803755353825305039335437171463923514954750854033305557764832915112845836009110512367566780498203844841730939505439555758045138520494860200869291585651538159319474491528404121907937142894259134213395011888681511630784776057873931971303056723941661542821584747623769903406499292012084902626100685766135302245319816220067792603346933674446322951484613635955775141831936631111284222286626872690170565426583491816130291337221920351163590287650894821079141359668047342526869114541166117962375027318159646942469378987846691983743284799709765809034767316863678965661536980893996822982979731356770900513666238468790347692679200654434442547067430502341815444035942504113642572077981884837169019518587281294074645958357083487017953439017139443321740178378891513161060549399962409318030362828409759610291108308792033025161555472750334845281313978799208957137001955001211173344307722634695856974362173131621566419727650687810529817712961087285575727013354193450315984524621664693089160338299136391682702627592114659703632548390500993662791524647445898898887790739856285931598565845911059329919094871427590711380877365259071745040737040151963962107813482573245335894377806209925356951976152831483386971693634764172173278781402404252263276007850220097353076259041963134049589215171728119414193230194367625388300411205719204392386269427619703273121785804982723791514497637764299912387700713204535348658281170489300627024272793893610717531566982817971711333099825508053711947902515583972158902061434206908205821038300064516930057696612774214751188578193427613305313173862632129596616309842659452273619229569721552698685810032581397786492186483074732251548901159532788479313877771637638359642959729348172111108304209757058311009004780208277136634379709126258968024126638647642041992112953030728804367894929964085302171450909119880852190766822644462920803469779303747947980760534940655113347328276181415072818431567712926403306223650658353542469534109526768462961595319966625274339818484213864312933284803943125116919043594984120177621030226227812817878441142671465202497395918105616367886562999221407698762175925400598460443402502709650784311880107820762275465010929648953057729959823535982028709132071819159446175247489189564662100719617265948144210740789356838382962211680562826434671173087725560520435262282533663132241666675148041883256450143557242709011911723312857892844441900236503560172120404378663190090711540832831724880870717055559052200561425895181503182299646439999196717608697643686409994302449888037687417188948433445044128619636718602965734773278225764808219206843697989056964544594956517175742173133000665278747526562670686685121835490050681971789129309704960807991345963859790863211851495841477132467656527779735567726003588121784419536504196037494630945026562773406998057728009339162097273271199257042032676828086806459014971363753986124082246254135328104154253073156516010661789639045954950380782825861368842998365412150470415726307584762862851107017915193270292482669321076634946494553687771983672396679295821169120801955864007706756156873014696257975254467514511639676914072740594277322653652822989377819278996762029025750744495542005012705955643132822793530329566083539993072232214684309187344018067211047743841532290460895004760345090939267617102219548521183545720891053269394251892661744021683903612332651080538560319049042417472794921269885613412534978883538594786709043705330850330760610183562871673421650332773131428937566402915694051707894662802258250389602599440877283029624271098145683277229883838031829072385341251048129089675061475179702221038593137995596947011925899951994806348467324612793536056672673359163204741088939781849650780253993770594572304604578863960332247416120555258773997575825311182697064098445340361256935330965732269912707752791752029963338164465304544147029909902878285895575356950965421695541809398278947961574336471470213673681595557780793578567031564584779809319789796792808804606146696374705250628476901783475277507975999343938072092224860829198896837891112077327368522769405581070954254427477752572802265135033236046010973709915602588314874797247210389849411593946875368836855716538475471368520349978523086099048655979864800510115177288081571472921051830125042612988898646908867049678582653490145529834042892080436026156813073815594810471254867319849799990235201515438721977464310586469353452340508662990285542043641196903040433214906952638387113922270121624493933460630128185645532813898945819757605635522874981612143495829866810919928565161429613442871103769735893201010848221269778355641286202596637941083506364646392693281665813731738595561021061615675179140608094106255375096897181746906832079118533127835717999627160243798396537587993188744729402095038439658817956942572469393672190375901597844393798240158443046155345535609533929390154549594978632656343896123039838730348135277515843706763790849246755711219600045816514094199373279414209256258635263053259560008702376940892918706263244066966153420320838034001486400534753925407201129691608754208839895582832505453248312318858173906782557971358070324701590513681453046418348973908346346812103451974036161123969973159128692039447531123923750859830146273416213104942106330463708233382793731162732041442583142918967420519330099060560527780458158208695945885558384175226499186785894178066166717085648124398614554776478811506062323811819430544290133146243033199779744716695699288248522199861454819022119777177984419262913076968950009770667415824019164150211582645690290459179416654855174894050822764013855203970492771354636424814058393453103544386860529368725247777301702955992404242887163143162466778104357078461256561409656665841040714809012650817105840335972099843065226490851770386224449044636385004976381932829898227325940871017253587760370280843020941028864871232331821282227971058039446732651149553766544754976284043451127968171541926911454586395581658963284065534523973971463429236495865771854473938690727858637571321495476921484944703314641166676616191048980987655346445794065014913040900570414255109052652500115131526436089670671955438023155128928233669954642317392615906344973240187715510040844376316286727138364515639627722603102757414927325296383142173781919145948960341864774056013432785533245842533143356395076531763414169498588557862124617088808500731049717833527239787065794473133808379962879048374896821502764549342439112172162978142322782879669058656410291573381094362684601134812963883851931468161078046239773635868982985065092380725156034259558579305684730024288983518939904928197001060019128096728440444035595364932974365261534534246633643173930612947396964217607882727303140474424317710460217692383478622781256696234116656256116301871695918963416437892592067221455822659760451052897527219695645774190275249585614045824427742474246978884598330469393407623429618847946970611471763170110380562871960501015464414898505078018569625722355740012946449014578346862214007425359941414813503571724327814913948631282754298568297612687368713726257272735585913941427706152137505049803905788624266194128489706976660536889983057890502686778888293361856980642629035444865917656818406681989827687575369701991629783737660482684847522738770123550240127833059605346453686106488197935655531698365318928789420015521079667133134258766574126267742530372221616720503398766163040384866229189431346349473171533760612533982858934183999899992020515556228785262992954251268038124052884960649184457976567816764236613755141216457532880060415808891660644202943666625994576484562112595648426355605984686241903094835098774754525063481710561899504692224735043157940560780436664413808777361412743758487627112397834381568808872814855600651609789854428080966984195156063390388884618717576920521264820617502449014451577006262289060257680811483568327595233827576250948902019917725794299114695700785463228907364953420677252924335869779019248072188446270451367559896387266062869390240219413298387314808933807924330849644326836800386563306250691852122568385984130426046975956627362163880337749693427407265061221672892785873702631282549476553743927497480636010804283428263501175923793173384964318640753348763255926959198448758188251573645820471248340730976935784065474066880567206558215870422085352996196262201616250524246521359793590103366368958979192038102267779192033574480001745468093065610794377872022053517873362854207429016616229271759468407842443271209338155583990163335054911420429884372561436914621643258448591867378282940532911690082393824143957427706237553516333398218449925201544298528731448571369658090791447582965083077708666741347537740227782912352865166697768595375356211017896255831424025592282676193279487433023622587426668413926807052487502648801119271778308934250669203756449427319064584957378559416441899761248918790568886645361924880170999797354007489164742347501201643914771361673597537024541340606405779420703462517559010495322145243798314666524747332388381824355889792939606446092903253072291905951411012988489807721810960582532584559964042465395439098301698052429387182041469662754617530943943669553490292450938601086162758330926021589902684857779237277484705510534261969738603454955012021843117304325289935453267963976842478713578566792917350014695084561062108239619095927585557049692314563015693572633748062462159580062036731109848506170416572377430067280143856065340700271656096238320745652456958490944053725635829848839257876336479821481933455620767156535482148848007360951716284661776079740602268972884323028628270537479504090180787572108642003658526640554584723520309504718448399741223622311238514988187757623943484280443864506680016513709846793261364682999834485249797241070241312388756421612422691762479863214017944178872512917572772946762510806217413668245058955103133132603488590527744225396734460356910108679676199458225793271491329470487076069750653966339575540916184690779894936107437417828915388445420350606532632592024389521735180464752882315840459507490346320513881955838791929321562615229517406812127033193495573404280939694053216180234041942564808047278584086913853919456729727264331238568285487223107744862773691027546955474275035670577879298844414039341713162036227236021362694981169527656005133367141611042891773215210385926133675103608420520669726458662522686930863947500118862882729519312991453989412492745534848828723445138619273131022596091714154054894636345413757123368027105675241335183513007013849985460464281836473921318690853630868780228640637362457252001501457789685128206195098093405191551419814431493561313362761146949776015964839378299892206983072670446995940377639163166088075019529541280951859611930824383828133413736560385695551993841118652066206816567250440257235748158308562176455164475221406968743942615323607233078138508717164755671773931078041187900071609608041784619268581570555496534200066964255665897903933741593882803617115956221867030297354147288230277543660653761468157704821576161134382944123579639410449390800252167967021002796120865405582228410865383202900781938183931414804041548778186022105884660003725285030641561138140331896089955172466355911903124522548111741341443108607460640336326323894187801947035136347995291395169156179755058947745783196144516520846699665093444561561356091563891143702035960064831806364944347999996290390579664794905932821780822280972007668084363231734465837493391451943562177432262024855813107291544248246835014806488157912207103356973206611661232739975935132262665198881436385119952424970012161067639814174164256652749434462100318529532823881655976941137866254298822886423098161942798225434727260877633385701378946929075895389018883852189447810146139959446304395526101280187044938314540850925201517783212237506655879323709583121879401454824533642139272104411155183395530799000976329054985927718509212099834421548318247401798817960089046418719681587212627118250344631689616023832413031658313756994789403064789814534897306917691430238735258175244619895752738568527950549533223609753512891959763914578710052415997438517981700579202648387197532460662268623567365049621984459844718307418393355325450260930368931764995328949629377078204263973771834043768451328264949885279721761249200958160040695175190494623978851539663832646383240507015911829383992360984316600613698093653802879101423515474281596422628128128718589484920766092465253168126891456853686713004568748929182023698898981105487033498842955832183070113623247103553405235779730378839839295669795181649894087944302226972186915392713897142681695492626759658926992933797295976951837658998748812344575265253200052789711908811893401691666742899345784138463954706669464505375634966527634138162271805430355398515779157868541709033591673065592573247362891444891608745247898679261854576689018660711125180991347582357049007496768337817766787962723921803772892242622049709266210993952112444388809832216980568256511556048909868155116832466007797971389130172840594234751523019939184852952202327688585053810176287291327710187912859053020766626062009766775633774092499177133049204510507584267584341963491894781374786020717566611193763395502601350247368429990907575320780183045038505642994334529308069423626018502105560766738297552949634725906309028560849802789113799710931472578798542679958435767731873796829432134047457899348583877847966749079168760355745425983749609093893684329022036541792493378265746132488209310415701475310337198445914252234031779330028529205904506795078768400367171207298347299352232047065428600027443638354469122307935746893405352542507441587940058721974569305766574354736844086071795864033439910660573822638354219055604851006448206502067578724749763068807709037632890543189366044056918296053829591076357638921493896589119963302617079692940085994802893093889961891255390012879722082879775736268102885606159943542508029495234614284888340125029828866486794314528940861390924786739904589743195232035883965769761276970526187179029882501460727169628462284831673548574295300724773650359253375377534595191529800845513021179043827902815991714543445783906458959177398668850887947026711062821298244073989326024820968190830633715300823449015017090670455325060965431094392585771591975762400936486184972272629887474644315374255440244166384340428477213254713416790723063543291486856957344867026425355987215747440514694650659421775006259135728951905332858407534722609054150548175373857245394129520027950113445540346391195101861162339308598349803542745187943416384191435108662339578657927835214392688951323307962677817959793352381032015056436199449046250299346405050038244501542951486946023523502133451653661161190936854981844419088295165043229595596878562081707524785106488637593740863585282103050942068968180748382229406002020839968837072231263491165810705601976282326251020712122702592386220957480663655361615393379856608720838338363628891601173829818882516722815646755227499331316162978640092332146836025010040948905579016631726374170633652223551569502810639855811005423004054292450283614419510280603259128850266702444612936759623763387794283856707571822672682259277116580510463841671776930288045650197774091053240339996263703420057054660065917316899829018714601104495665348530469296418657724604296188041745848169059832481556804924627638658907448861783768217142666764937574542328402896154096137447659421149736255544908792439793508717639452921810168453756781992619599764354640443623714035551137133522461790814426045219358371463633613014346597959168417276706141204138935646233328035154889755587320642984275102027202214695784797705962020381710602848681131250135099706203097344588183402076661331119134778320683540265468128730142245812556449362505671181136950267839426449512619894661706976219036633897241798155151478311963152963843162015836475027946866688249904610795349633615389026159746055584832813451180055847645165045050466976832513609785998684712325675653975833665110438485757063522175680161588384917917504409849149016826189718049914305611909923052847486290799930386695340072122264377323530821643904499886384526556910541814064823917179801485532307312823366638410081320288192048395730262960395228996121170494936139165698444020043699679452565725414291786203650856290263463302718546953588608121389951213526434361669234844818885842090015577228269421894186033111581307842339791833672503576852469557366087228207694051689772835808232406288523854577318670691962772764351577850172686674005951497542016495395926760797041680864321615231462226387726792445120072831984450930610177094230250097870887721462355872404086106161494486656628985676545954147391303132437944360352311590799802627864356067201338744163386486327359176869004097755712825225985709517294009126721855561128855190321253525701058698335673009209463712969082294883878304733548128058024529733020424921955873868751724340089310237056906877052488018651199324714484236886545204938932477498128862821946572818748913825809491446271312258383084725643281007515392822792277086109477483815380595229098096049372724897427943118858329616908901362778267323129522135559285469887535088177891480212847920660672856778530213918612080856930314271446648779894739748741815064350819887392875664177384699916060805597078958981212839994276475577566645284149592637369252415410490460641383818856630533417679173536791548821034934758242848738885352678083167036317509175199957601170176217697121619888926347012852422098143583201716374112923984529878230445311700490109022750325089756164877908219460661671446085028708043926642553380185566424160871260593806285146865165378448627502537817485119550300995620711527241801610671670640803346041857130315898577104601955663139421491440842923799346194418912035321703046100871092770117976239332031088803934507180914414654110163198223109460611557379511197357756473505659212536943288920305983403906139934889054198984736148907145976424916400309487344710623361021933706394760306489890356993556464589370072092816605896372347468553971655155418020453081231429450325723387488594547525073374517747137296057746210615263616086722913954121496999783965837745649520166860738228963293097303983460489577511460898276164111147102811606972028866456218010973778082578272338690910500826548570700416799333029428800021959623538081372995559490419235581576955834785466898515601192443646206039451337727237340849158404095914437233498793746455443007591344627759040536173079948507352028988908190517912670972070721861859516252301005552193098734367748637593400849317006080975978315484806032138886702385496224925873132077742188075830198594488605944656317286321171010588218152591722520557421360360366181543629467285916907789543167942393243152608804339198598208794656286516464372032952671867645804637701409641094349981329656217391860549167090568548915321529394205532652233591953613067110609715676058380569674604712867775896066637503230879262140909331815639850869073949849503577156698803998991710855881541693858551332017456961121571145532404449341710133586340633788409697929474858042196170983861659711930895701923769822637430231971189169823530322716417773764601616205528567927004767248359727845703941603599472114064948608282202065124763233573682491394992109078908634623307903645247332872149846319332879440654047567245768396041159800265660150316165775397570020645506209480025421018831001732883696868154600730412067117881223492141984899108833337552995142168031858780405015227055442847748970364874556706912228377150637807667982408771060948588135083121725138702026250780258851464055356288205772668273334887410477501818768391388185784015283365059154554149299109339899751911942241645607686098945258049789494170196143110875320208832252900107569345146723935664474658236302604966624658339178457865905190432381125199675175863666922834276590527954300940608749490976069542775958993062075609976470145804505320437005922775085750940211191088875236386197481878771956635752666544533948851288660215819123600992086073535677395050555717235310382332914615667157724990707792561755575415299291355722178045075100190358793325198811140775712866505261904872444379770902409324174475775385409333324409020366847153839269241157144535819239023196485645173997171366940897949525077163939393187375678511075623779105712741620608198132842458843187459985616975485367076434381640671343933681450311058339153132525376474904241960277316529310286371825978198013390837765680574883039239371594659238884407482305445010516246428428321968694341867183097771094718312964133914782001254084679923239449409951608075430314885076002937154228429913381598820273246322760227271291248279499806466947130890299300249127709630943656902137498939482438837769689239105732147947850780716827608665722161093366929202761434078216243885322936052222397359554878913960783551882079587959355160558594006407254468169421415869966390720893426305820058512229652212063209396969357906260977176630171467744833524445410015341084969621775803287956646702269693360278137675835296130656194625229478034733416167262796676234684104979234912084292802609674580100008184266683985187815803655599606009704269328011286731575221637015595125169202853176263635917922894313367375887697125283850862990567457838779676680642793822195458948860672732635228543980547969374396966354101431804876471065584770106314978172023947192080447553678425276240453566993192958060627632511426640194976083138985420411673460957737347348943579820806445409236254269270618159321976344308059188192944152574366788899413692703268278065674576882830384894429510368752327050036333346781732796885744161053885921052271678376839999974890245251457554260682108691810711373739241652784490118697077630780292133468715233202655876506836953858925764276098122502005919022549691203657992300686113365896665956006113603287962660351694908599854676136200015886133480281049767049912633855339602927396906829774669540319294401061824499151101372830367588202078496330392246018618787062822004712864345019350367452640256226881746527588929788505733091907470961511180591019793577092931257378123107732185614584406403927349937060120426047407688488411376160886921991100237614335734065448737886704030343115283806193163345006889664164049683685392470227634295450194259069649078348138904974954649913537960367856870344481630586082886902899657848538884776378024603207579479774855747308486726690298832572701203217209084542207035894081065892005783955132218408660992240047205740558743222275187170512087826313871465664053701260404518759514703887691175167892895306170902213559877958294642920753656623882739754437454506413699568554340028393007458120456784930483469168656491771687623955563936988838237587448135885156593627740890778725076833472462822760445674588693772834017673064480927926110592268410084541837117178240767555423656899315538358440535393763077287883948236739713883251335979409966693425149141982884217235717565261433343476846938616905992811780305952052454736583488199142923574255479998240907524069783200901848208918185129347717276219016030618074285712935605523067252853162924624140582904197679721673804064934877506055552343235950061693093664831630571103204383240846737533618012371582629212449864133162334030051181822032144400692277186703387873843730809409937662529626594176859504238017280436012674947556109693178943945649786639144933894738665423042380609592285619664913238698253421766789762133429793545417124126729703369836845552323034526219977599993748682132978444315540405646516450002371005069298379544004386797382267361266164121350666508363912334238053743466135485022243482841426625750411772515969136063968693613123230322403202019739967682806718330998669425809029068497027068466836564218501989492078091910240373133512789622728271291235187957584231599474342285989670578794193371676779198295381923182187231354274505669121837930526906791856225291091862921751755391875212002599628569392971044346014258308367322245591696405233854158005669846905901116450994970231878902863179402769938091751769750508441619024173235107759567747948228694901431319776902028046909967096931292536162626259881785541314362918976738627799885661444411777431129102400184368468240657146655411283582787476533739170878998429224033361838303407389770797640059388488706958020874932765437534481910326577001081394803377043702695073767310317053428702268201009815277988438683342259464433116261834880408117872951221588319385035371712505115330106035782852107350989351435181196005141199054438924810431828019509110794200679699138637450238415829847093769728230445014341896043083519119781251083774530891462849767721930537300901685786120865159614691419055525584489034011384734690803208170932981875911055045506069557345732895437501174525851343836030185298343896466912555671137005195551512406706652036569845455869548492157189342080052893864867688538821923753374111619763956903318272510273385269032108832648140959005450232379147586418171574160393276335366460822183199614143159650127875052824367325372281789013586008581517904100524685359661163891719754769249746164504713725034951424999256625249346306920010395669130394549350409592104944215098261209639487854508580510571058691941721984658527536533571869996876365216305377611080978919754592523811337784303668509208979644581436328867725903978667448947800165740873685476024825152000121868465080483595444003702669572326722580103631069332774379628024069782157928713785872241842651465778310479370420117168398762777850393885233251633392569913267229162295109812233963253571214054033338449089609307210237121209824981468460524677391513940336489270496017110691680368359485576982640170528559882086414372659608755272592873872551452420410422967954072456830471705938387024734773993821899590421414568080074888237277030624074290691924121807575745354728847794456729621885961746917591161425196965797525644430299574559379482244557199858230331576010678406724856574858821624535983520143511067952622699630734342751507116441098569380071801993467970367694539557050475045630127853316489765918188063968084471766255767287971834086898390290301138072823738002020074809772457853488006252989299851910406162935579362766826398634469850772018653367928975752137711364083616644959827593290426702030323709143754059630870002827405350034108679956705405518786566258165553276981065423667554482706316777693208972635042504567235675541768565240192208188297908171053065711827358509745080418033724825225700696429429933582014107292718943963890448886971007088232450011610409385022244694586719268708384310390158506068072277630110630729347940672757907038471676363991437116737469583252305807619197288722705472746564213103311970537322574485158446803476756228710899058680792554753450482473172303850724539922415117615749494300813985634841875116490499779491809798739195385538664011102702973286121608508557472639392743476401011918100147434174637720239438526605162213925350240266943667902741306249806386601277904837725732511319071537850349017949288838243588051492753471449034282181125333732250578686115875839777276900728012230752878717245010247711884463042429595701611413483347864979866351038849709847742465170784169383768120928954221310613397024962086919115947312910718719311567900773159435186925624819301778164173963237444806321283719302306437132997655961629760389610007174957365513207931805116123326050628356165527876944115347788513672390166323280749867538154202636085125282969676095342813056379381601632963944046527751765654721154317216514761744389908999467724568766661883124005646193820068654910801389316270140774728496185094222764058999996770579630282724056526673613962662074015319363797124653845306930071491306129181693410693567289610020883012929901716768291051550988181115369549593480573357718962211201596168227448192438243614912484273758608735218838486968185621848149150492125614548231560990817876626691123927865039931758860688597814228574311321265352564112287908906185879140638809437320572514767592599252311510676467746705500369191941103537229624670510589072675035342050711706999463927524350568710506926716627636300743584668516297109101068465908510902069240823731824997692640387319821440977482200838204935945842865315494146068282729732885926056912525748818977658165173902944684527879733104439382675393934233023664682980984600195027360326533975221676175761782673485421321099576966038497968087358942245232743842441369772236601142067951334409615210448122258285150642524040414572966402986733015300801425607644243040400411441023093178986442834848049126356808791861350611193585069287911207558406958455541350612059724909753868879361776728441901330348583952749867622513200661457608845232094923414043203863222557037114977797044175186804151893595315550388500878756123511783326231780228951452573038682137492516609266058729188318659029031783422502247072596012068405827985594506819700676470710782245967657750483650932282355870884388076421402866509256142125885882625780706841372562152699486546318554884132565614354721495677104488068624491866123841405314294646913660861149270414259809444206751313164033486098455741641115030448984443518765223887802678929700830831599623339747190364858597966021823166560417356691646894143238224133555273668893291429873029060481115171767784878358584012980421609363463459421451035024713515334259475936564394681619598475165916536698364241843844814186140952864911164331864131033652473887840214469272348230264746312632475375033113051420783892067357892515046625558371383393969469883211461933087012611061391967059592844513123915707985039959041016370306709312247808963070276037125271238138056712003173675866305392421533463898011255483151828339518384953095171864234829141803769471458332534477590886915745473741309670584250043369585427073176178609063165496513577755588967432309769357737608210096179816799900585294872329389631900327642107641409130741704463591976905005702239203269054256084419095317013133588748651165482835553135659382545967344922905542905366730932703347862362835932773796486616057195950791698930268488790226313518379939708330232534605646677242937279027130613192945180546726415313064854219748729071448165505454527477347068864224769519015117874747199436835739493195697844166993492301411363070587406299276416105068770327795456059950988953217216202146004927106443973424107183362538967955348988192448531822917308856628667453046535246654030691901607897428012549741208222874765796782730049314933219111248126083458964660213887568616843425744771079591861944202200569140210876224709614250755619510451090591897407672353017495829301271743897532767159855192349391544128541501471057916339486492892000020909672088087283013952236901551454467158390442682239654503939324826821572071784962863208437590320450237276913546815252636605895708168597151743255812428066721113336215766303231593308763018190669221631583678010432119111510672783804328076592168424475537813515401925849785804064763184391516465503196868299275003136945720646526408261809190105276700017872894333422260424825999946771775421781314729180072116066551654607405442051296668050775475366060717259104989818207084506724943028185456412631594634214338017466165927530622001501761074816737897986105709899735655427702783712819986999456947928732467541596844901790006244985580852369561082149749409466389741449253622870779586266862262985102317591467272512115364453533411140804792473263676092104624964456131824227183668788159224384880027263747753783002229099763038945775983760981327584711846919349989854940135217541422056657603632422148087902111946474801258665072299821811684441611428697875823864391280192577682590576902825910319450654144538808903913279999448304606688586776848905765867333165479713501613428194332418379078724182719407251858735364480668935387454590557864379690156236994469400889072260656897156432927337938309308623747542701859772114236062624866527652356123695761586051120380238825348749173579337659773586337823856609786509417878388062883905458042085495562735396231247913030517974747519725495546425198170781824153343987983543531613904430218973727619053082995916624295128135598444060971081737469889078638784087233543497250288505097834524935564713849822863148398280171198720080190846443232511129466983915059777009494219484274882193550995173951131937242028379249240040508524820609689698535890594018736773000802528187724879337041315469378254022580664303177482330356478607710189171777899930235124805483982699850202988984921166148551458427227425169480825622588344598338366783178404615171785379159032538441131650630602190156237908576240082483700245057149742610920522634428366895607427711749298295797761538132281914343344709286604706343763048353313080147999409806958804236999436777972179309229204996103778231224398304156658923262381336897686714895551857005563166841002216145782569532099914244900874421279058868151045460615782413653471084775488902981184153297840041357869777457220231665596678105603600749003501598267808697508316298250563065560054355545505960751405057144774201349449795559773740282675764788778076177952628798482664112123582633700167937580929145276864093128112834700914371609960646439515298849058260561235440402805187105229585307382390660429241832639261279836553712456052437770568923753793250808084180603535940251058012482791912417018612571359121415554652881069723392460079908999934190348116727637616753233454112496506710125578804056296062291710506283457648449937808666241806455284014935069413476289770376929846477044944628927225665569481167541900209337247680189402699334519619174488351043039377698566732613602806988258791956085011984148346210900627761528176030558748408026650193964760537684562867264703617982012444827101883066413110622241151050413476262409014578636591756507145813733832551224584488443121133622182476503828921031246350793537066000796726710509596795186782058427629752718787517279092240205107632251972958134829676411632106578384709324191516914257607683173181077492393661759103619234555979419378388721464469380341460501130485252759187007006307414294993945837778565598775626995397607230436703582502898680434064735437641406502305066595683081556208037564241453790354615060251099049637195401955976800481495292285172735661085067440189433357169320129183619027961453172512964154887812213714141403861650371780799067629856164418868781617815259306281809451193096902738680889115347446923700358946890234393207627315054353198546477543496165035995658345466061885451325363522767726391937216542116127178652186071954177213818335006325095305103846387380252686321520881866726575334346958420846244425997476948380782338302641071003395016097145181307065178047483452205540293340974484879766719722319572169351675970143778987012645356641904842664569985779951917057292973179241796899303020270884264666994941970680212798866264693771080466493270292533493667747841972671417809427195293954936533328718649694445227327998337356275155629401472639588716041378883532769234343551351683915855999054339953292366564628079286512696742568495058786100513721527899818593529661760334288251817532154385984234630084331382281209423133189633735954430076342245077660990716057658032021292441645796569021994709447134502970760081636651172137080659081893681689349680169868719652764547738386118945493504989376418563663980047348190296706454609147224890334353023633070832348751555314849104263969554088940857443144920363912563020395610758678912897503853674020882045317030908297827666445402361855057806989879332200491963296782303101405228784181699228868013750563508918984658738424267744124324799690633499017069853275932841032995030297474203217951517317794215106526841149279670706192123804183422128318548127164324498905598932970231602934135974148197369394861237903551861811135513177427421347410498465306951323898139135756317029546872076585556590479270346617544112880900637869575808032121960577077869527359851517726776900422958499267257284806820483853375017293413437795358502192557710349927798163513198440224071155576005592588014275644384233104436305450463804762914766049655411210431713493303803512455272912607874910826809658954427364544115474922574764097608868001338357907506685321198502651520192492617850747674944025333968342444204531828950603896921968410698810846763281247553070817725895628361287418741266714531827825838577731183684678063240762708669890539010085227477219981490964455991927801472116970579690228171274029297645034911114511359293434275082776149029299812076095912432580408539995313852865665873586963678333881167491349085793499326028963549058110322444054398403422716889701962517513311384203793401244429313467678525538374585708642153168532539442815066953027510146958373101039732763882416703561958914358503797816282907277023826573476498164976545694466694628486319634742027344618895655385735145917965898313852432457292098181956512085275749111973231966006310512275403590681513011826271308258443827325985206152597830038937328582957199203863977560597190139638340026598258432772788481504773660679776618288221608076819108367975458617203928368787035499379404821062039896868696338204236001690398567957894504890868755888423977221126133397293221228972929559332448775356314505912168531010993719032986396459456030154574998912596223795813913473584308771996919325948866196994883581365498282778319458022369409447712386603374850111552784793963198149243864171891055943225495811876909083692725671160492764717384054396428226702571376809834115479308386052133320376812164529790347190279920266049506411213548846451473369203214138363984762829128950550751425618909274468006004408826492138553803932409656661480530474075761894470523702206344228874978230637006520030433886330963577265299292838263937271705809415951395532340323710824898448833406128042202141298935917172243860501471623940734774972581832660039375525835647283316470198146186083965917758537417129974275477348638367925037497391206369658340120733066388963596761541906241432000043871488933720713930278193891330159580226382001484033027846844734465271189343713584766959480863937852667734263839192766508553404197161816127001949428399711764567702112327078074574653694330468379090438183960002758861968582259991952042331981834650639919787863137422493017006513756096509441845885066730069681809699215896151956655895943884242119064904143012441483012851695174993048133080865966060131047214792049659565275217429656555542505397200607493192595920421878177390697652998232476753572005961177650269748324880956085668416973620618877648500349337278116172580253639929367376233449193902887634093111086614358533626410968628986670107022587510354083235524541064813006133183448276703505356813472561899528633418550397531691001254563480256796251724715940895798234433044664807267345990815945410400742650764984562810936228547858306158647967191024900672074328811062902200044596802479049935266185037955867272024263181228491918467402941151948430609244416838313175004005332020345341729067659563887093815486111595805649352322742914993801262616962541766066784446967231443230872992395336960022519954309219731124999111111447050582348323653209218753297616382061658982919460793078123995488111225777553199642843426405338668230053246492049314344493576582873347987626045345215301982932042590862894949050783406980065667711153105840470484469663564681817916440030927608696963165717171538426574076439904915092214467686900566306353282960821426087221044802218924011656287569563009656366708787127538077232885839735239677403265177201799407697198725150189234929556465846766074707655166061810021237909403722085036378477872105661474383631244560230688465398817613692307089125736741081386921168768786037763437860294334092406666049326481751074910485209729587903276255484324434800969170551260630510963888240541967955606754031428702221600706979381121195246428897282660883213633446842513410844070083744164037934600660530418400222510490480575166749299928709054218979945827615479731053798003676197293050978571551714356732985179126238338796844728853267920517997227793891756486998244456755471970240270968810105543871505748644976348711548361354873081860940577464615847073916615557257373073458796773191795929375691634228664453616834768665354599292112246847414201076155017185636225408156144551954873583997466620810073307654735888710747457621455091631151583756290205949810940470495636158546414954496220121296296976537911177884605903333578648357471622375358106068791305817121990644988863393368485876385650797736145079053894668677621422979783299841185612020042418698268808962435816054646626388420185543325195228234913855297406309668151740613343976929791906840699050970013915140185882542571687099689745511315053990320700914704606546140155470139401330772125110631591695301391430346919590988010364229689205389436617241363399926824485581251800408591590866156193114359414573387217650872952596298981364850960482088063519211986367461299077599033000910700328514816870371444713172006392209627275110334812580921580960158351851071388336658900508815420951859376924421753794262568366742155640463892337820946729818066833676171499439414549146829215747062150256029343979207826581860463950512340706982656135458201642333646200528137045302688626702103644794172556593251228701316427917603862660884448069886669306343531809156023934904414716136500789320312736827696333888628904018119724956638828945191877048438778476758069188458303495417675198544589002128816612900314963791825254272653521527068675618696012772303605848473540008264420627777808899917871914447801224876747660687730362925653291863114194213953471618340935823814122092548320115026738339062090834268887009266216181299684552967697228508264515680716812943002398566108482572628045402872954274213773643697805052297925208203561389212724945940392710650697484260053478301152879823251462693003747669591239776747658917647268828218775870373681403455061611613179349837761937337636555290552112714723770718760390752836951562476656573335630768410000785129341470772648720109165968027864052040568988060456000927063662296469712378314718870046775996560580475370757100257080728971661765073668388318745002383758558520717797816513658954397807212178707251839876616137557829987137657090160429515645645745454308674054068993304112003488803219573471822062934678542226449611001491797225770038215591999259124942224394652161436618295413413713787836946021384431647459978014203152223910116474560134818097741662986648702355808480713341779188939074772420057363347895729813314279050143920307296251105817054356569320204422999119533700768736093152439576304500197180385104775992018038940613524474663522093978079584155860377249817945242808355072128032482187542780199705455826996415635314491507037488228311030181187907133778486932726561400802557303782251350794103522576173786695703065251181352485598203986668154964706446712900133924714422054615000757663799232407064949677724340663024143358118950140946233684953628558199008075165439314386416322251118760572290047790874306374497581760732896903812296560428334059753007734006458910531144439148108911382332928374489014756503505126899147562268793597811492777450776693183329057207449088280114200127262854148362602332721064152258401436699794069472257002177348968720483773902655010638334455797300911701759335896387837837501192551124561528079794376167008884188660452358187994188227147467884000205290091635670859229799229710977553656262184933174943564304673282189043987602938033664774436474534044546623536130766844236714980613366047401872134333144804273948736990240621950015621014558385246970617369202525630886590891538226431532178121007753443848202819453815846744895347256945940571688122722139253540185772670678102584484450375437037726918592225155022880751146692429489696567710455579025975858029447583212814585281053133761039417082195876206129923902483102951266271365248540490010256889894824202090123112616792546034377623849191712002232720164686787122639284452537454242991322296225650225434941016926357633349163666161300381303199058786388146281895952838766694326254801814910693316260193362584448845484500204519538820762666295079304311740433109985821063046440864712507188128824710747996407082771809074847207395548654808595706653049408049935305247810912821257430616915657231064340397528025510497552871769274263965623180632756854850000578441941996784651807471301030663890080868300036048266986434098980414578058302898863445260795657468227477750914276052744663028695221093447380955269013272342533898309265245912493621762683589650043451290778206804970019953105514575732457433603285922603543016459692190148148218223179349181555847922299310332265199071044633768595777172240291922157565262711575867153881501297260603453371071221949496792582379860115905050845169971858314739904363769009343319139613799845875988809447777533238015270142094108604141011614297620826327682932641601684783163231734776402877099313640525421823124522514570499750270869877173643070050416619058307572455534741782204314166164664359428968126779850020769495933223349750211462694719929628897663473244257271245023813043358859578129541949686837695504295044252245346613663548747572588955704860952086987431354956312426122682017963664646454913797522389054719583899596468766477374168372748360142869281188213491045814083246298909027334100715257825990597153050895904611753570487389312369317623206992086765252630657947810280553450273587589640701527501607068784586660969894427971393262138308128857997063997244654719522491659832029934582757807036595560245280176347998980087474047197241375316056766516323867563201090597974251227712834302742984046620225640756039272619986767537370823754158074459682348905573740683866310718097890181171756559523599787503371209321106116865251214834609550471977654324673762560997539632089975565999938996640882875612178311143873888449848663924222780449956848514531756719686594535979718574557550562999839275885248536215537068975346257394865487556683524714912103920502924104365648238926497572506654683067398582357297109940801753606525168698836248010033137566010661397038438732380002920188581495532876976477116580517737665296187339969074912163576083604888536373438384925664217313598355957755015227700739083963871359998784535548061293962409316868877460388063903725559185834054483899082038207820576873846270484899551235511918575405808502516708712039953555367773939535875186657254966177941983453506898042564869994217495961859684756372283265786258870166254006664335439822686069515716944595596795258944848227840433825847462009040582102997020877986592010493068860505299550231680378273310488285131046961551058562503128734470902287425373816666610080455196816856296763959346166111659688161560475814876610216050685022004824170558734444224903964359949870349406462693694448433506564867867765436271386188405912469077065405120461956192018743644949959971421334221405877986271164624546376201577028020488361621094218078254650386108162889027693933888138099140850162815710875279870446441676701758264648183863601227617094893218728407360364200352349070681963723010633930849506675486073122265621379838585620496556906663936082136105797497217624719885584045166725387101596557339662985279014284794261211330719434107418521562697045387992551811875832526683222798570835192852925118914234482263091319039147388140491137478180090347128556424314872462678211197278005521218112442950360333474335212516901830492959698559964436647044083773590985909784497689185222129985419969594446961531629136515877626655115118768922399058594809570527078987453625217643940922089453044461522502110086152768853883454715610020591799761404034812275339525238495068933431348841603851780714665552193192276554196440111558306551008857099194906252534543245777021697811819244393159235141477548040383273001945083152012643893991535482414438639878464334949833794786710108543033052920513833531520487199296164418690628983443585009494572326605562751483761104081749570505296496303181942936046897057277918383467128437298509893013745149261792334888519816403055052691323637165544384623397224584886822617112912134318205249632725488890188825235079527418640697362324895644031885220582197081351062183138223421167248411875607899419582046369718667595410016497904977966975867244025355561980475717847765083461031226518328061924748476514104493795390064555179960299598220057827792812520852783185841360019506834329561248906838462401018140972837913094333881350825041766556750943995967294686893931447996249499216770554871419827151990175460491515782147815914600232967705506466727691899879282112419673572385713087287256100943295978001769156298835685338807729456675248077768075235113754831612551425063411151267228706821592749439351548488729514630152356231962767220279673910021914599458935740892956329928023940332841393026985518032148511019588797020915379548572735543815033130816097433603964873579752342022174276387844937560403838239952334994687825198450325013010764924955281314446712483554596846700822625415912200592697873297173570325844825133180511766656254352420886827884512225133948171331409010957238683731298230021988006215804992589006719638637278549124735039689814080167695579933639872126170957164525704896435630520697581555120202173698736596657674265306123499400393408633344335053083120866323009818212478784729748330547151211130703851526274774538869472686251954742197863322944368603703750525612462516006940063519866509581763717155985877372956718501113369441615736095238980041594646338554324126260489554585577890338514582566090154563683808334681316388140069661664782881320944965562113560063680840533780217701018081150380342374961683950246013257971149406179420474396209745642044872842708163383855231964707731589990922544582081070834655918744778483628031049113220202862747334414827690101447767507201988047666939740182441873650840288705879428504149304229288343231830254082267241956473722499975520874519761062100226940309193748008348135694794667697104008344488530130204241416506822739424935678446912929039864040126710485732733533093610790589410856974818517327926516734590339359766889526562660461334689864377110270463739860572349167267471339234681850199175189952982195498811625068070378520778058601441532921955902039518444152332448223743689361458326925367623566709833772339049931243287865220736478118509427709910621739899640814144750210114328531396199507117573774611609199606122499750052155830166077272624452844656953176527022521995657503136436165193158475101579301466583450755731641402753593244801018726340877464703966070266548011456934745242366864682185465736144396533946814365651667963595817391303363796551331714418663138439389090937782216680424774066593548222634412959766199805987142129334918437530511763033600257454110219941379469821258551621909367902135857828708574951485201571914168959891681413104523644541719347841838372998403562768764458156824099151343858197142926694736663367225441974652875045679665495220271820552145538805839866906724212401501399389599189521543755001700334856880736745385755604277448247336215177945859950956320679058785024138690362940834003093393393384167518237061638126029330594151410259418153025526965963735999063167242229673671687996779520950086054982693066157514748149249373576575893101216622542608887990499591465204072440992848469903994788274586645937391089951462365377346145688207595968628705510908739931943315902756999866324299035683236354338305153468517467390205242024850882890009961042190297311896224495224610916575695648785404101345177453586910001664476366327007324129863765090397953931927494736490360517314225224724131254410056449371699879942988328426558362119516972400749725362678901714050761068220737998626431510373488802957691186095153342824049755212773657841509599671902433222656380834747807172499450258376992435614803830809455754877020005117563314991408670588414743530742344734401053193248355800907763989600339016923707922594084864007622422816004700814554699739754231611265249636933906709679824339110244523795991226012043565592673675357289609806263733770640045441364530656252600536909831860061885120423795003116848506298160800507586019090974317420940860927912913630867789180158011325072890188905944227105551429651592383209349088240265521740841415415493763168668180918795500339491482611844149605822385606533354189701659045438218765862913348043232447215895113791553553939084344599656454070250381912018869996598640346078532655741209898750602729730890161070861099264100812285505504032397225883974048441277627907724159535670074850576268511370686077571221675644155954920780983573985309626284854403397459460555949429599037495061921605370845770405323440497635504365052040980998957949971979298534102728082850945721180919057143042250212950273321139838638081659407945732998698343952647323880372185247515818649895609709760502649547450904220110393228616019830714161011153478066445390500168935475482471069467487102066598359418605685972047787464709925501275532826490884972731315546981009971941880594131926994173166190714486848076587343076974421433379123261300493904540653481440650003833676771269005942375317157740820038211773115210451043947296741344714593361552944850165377759295048473841420276187763509085397965587559103333013937581288551141418250973923361930051220802396509055204991711161641959645411458307676016820626901815703573396697361804407279894236265496113294296662668446163643564124860550914803003023155225272902755579701686366347653650645526661113982488828627388165020538371570758438103961689199957316164289365918729263393439880680536125518597992754341926502277942408652187435451235819346193411651782420363662190933761924868244851569102476005246945157562366226863958563821627326017333910806625063270480391112533435712685289310885823637056754339472347957528437555046884859831985627384944608000531787107506107732660553305584029128588692465180349230351006503166741551657375774949403044888861530943222243737788011334830656338979827283184284691145756584138326007067875634282486592685886623986378831322515099687895427501668153457984703653736676857487999209624605640970190162379488213589018811654774002884117489637661519393055957196114651492530821336073077222583298293581674329186555305483589796940423672865558947015167546242393341992558809978989108774146528958157161935579495755771689683449223016959815915798498735356650895681761563252739728931359591979762579795137683125195195698951563860398075828611800243337684919060283591232207275129890585079158982432828276570974379865699573818919068074427958714944694303953918019491553403839874228078773463358584289239205311985965290631970730174857398610487050973538072417855869922889414647315957146218687218804137889643494049868939161074653132528858558971771451637036850602008548129374907305287840112930646065370833676993559603962169136816112287370315440790018042548295844094060766133155254216039356854696477645400001566366744803702682766483129027945007783852297258100087317295045571108642505152183143961839680985736770289352997027227795637928164832698793246927259976497137828360212798386287943059940062269259037448314583075296877023321971546808413505159111172772705753516101769146183551284954288979108194047496711875189672034065036383077820650645292445843627294481870162681032833380557944220684055104357075514607442403139983702861176396577803040149373092207251543026372188677172368988131741702733377543834072142488461571884358080099384337606497487021294635851776059363700013032473928494319760919414594714447235011895395050967825911251743493141709513849065518197085284407566019626231312300843846992886319525630955887751703898782627401008090423515306366561004090239737149231929994672999238935426729286657468295709227337645147192655395858657281476636708846607247404530224719184206604102309222018465789166300211761861645581680040417561130922832528022491785447324014115286967758242684001862393912701924326275522320389575364852926844263939106519954644902156558093805276042669144876934778231262197778268674571400131962888659050235367491041422808811555839476551598457254625411113115439450703994260890231337629878134100743973598413636722358237034385015679337634215566921639698256508014782520529578598932672485253451579265134656595484539688787389893904563410219691380415715183338744070903584942601063132352111374093775977470522138365775366340883800090237766765276971021232529027511610003495311124909220553781200628364643904149007970547050948896433025583776356946441011875036973519058311032455134301895492823396729945464394347621845019464126277139381950626742869963683828193185182152452724047259678596196663127041423389894684591856060722484859146936988558551265893837544320711735135052334462886140745114526060264503056313731178701026659996909648760465172963368218893865668711457118377480952985024958071388140254955858595959300108633953690671453783654356573280110047988762760027013064511937795538040572856771059648358855666307869278824297669232458682027614814788193933020612508652001411058731277564559335831943446849606344699806513838151320982840396231323646500224980594732937146414943327530201638788832170625516941946581414507174211088798385912393774589044497034127116851479251202623023865852206887265628852094184932377590306491611462616412192327795069592588357695382392660851837006369885000807271367380402121982526194688604493417715595670014730713868325372441770815516504416988825956803486354514796640684392573855959815772357940101853952723786993961246650929281319443652433586285045188328446600084548328717492203380753655323732137139605464567914458164754251728439580675062179634573410721432608607398621973922792976892574407533805572436154365088888063181419502610061424712487035006492595179844694342000464059930183340052583339812950986736194086693440239103579473709896568054173486962160308249246330515217303997852018393170805530503929676920875436432738283744282044219445175914019090146809298437335316357657725675878588961471616344123384661840650868648775803370288164813614813230387366667398692034219305500292383124701479874704187241770562702645171113401510911305027454267815492153299104388335673718152939054550255788034840793790742895600624268460967458288730130574812627626506683848358387160655479421129804099616719184919536082831808078726909120109243790752617020124372830561174342755673079358790204295225090642590455032734981968963806848998584592047121488142062892389902449220624910167468640040583065070435148792334118545016032253807093894716671081578524013067289056450578939231878011313007209661282374392042386055482379808216079171374164075558154876078253058870621210129335518804873204942795000587973218387360611888135927509751221184551672700122715387459194475508713591419797599018048834142945584769880972119559841828430972081402498896508654469451068461576678061306080992836487514488152068362917589609016725662275630490418108261011103932165372812003491488451627099655865807746599545821771126406806234358711411437283108365210716817337691518282905049588243870360058925879588194566279468678249502044731870344102877330253392136781472421201708939546092640808078105666138253198642291861656576714668658988182157816881586719113979576303289175430551642644914989077518690931120562085136814000006957329403285281774899316837671096223834870277761198122076146225600043942162625511852493469662539515103460496278685570248721713120137502977630150723443207220566021442528532121606813803767101561992870465943239274872088022397685894259877452523268900191320121438751983226545392126014835308460980731045539656093360324640893842762277264525537304240488420880734820943559226384703304629880979269695806971828325017035216492463517562695946672769739850874027106081592527351056666147448868603131183747602359857302332171045315359400322981487564556685238932877981906687329615116091573083125297428427444173219527507798082964404381030025827704955785298840500432723218351255272810320334044404307720327573846635985930526910568460739924665627975626899668337620678441676720694672626598743242964110365832707705578364260073211166186222685226373142849421751654680574131330819245674559463682146157583961501472714835699167718076887542864948206221922628283509468182692545386048005832050514161082997462971850795939090929569810771884001315631180610777619471755437616617100890201694019063673653359143707058085901782000319118269468391342364318013917220219067839418984326528166870635317823014457774954227470450403979411073546032367940586906380853892382951160306418637506109048677026323395282757187854504235776229320378578276750539902909791100650540316469037813077564807084064395544460743214296593820817868265983871279827713890417004899513326861014155013442725646751612958650360636167877532244131614335163015164140307370349963220189211604263211590622290973376454052284440657137342251493275681408304539594738172483589180512270638649741848543788643025478589520120827504240706829709867011822324435047868887334024998699809791097133358807964645270481796063475853099844258803766185729907490290329202544872922088675210460638301173122832574958173894517509004018974724460587427978051142862056760473277069114206716488843296455258827592971796383342032866120328863520658489402455894131764584969948624284571015988942825566766497168260118984115338954638922448675187436202228250053865054588481424627173122469681539838880958658912858401400408993323171156547924969961968452874205117252944088952031901032295544435642599493488152512819402914463842013479657476359618976188530599247652345178271181407156102689440585148572274472057480925561637552733127857081482076901347123320716432313618059177917031257562892503591924568626250565880475149425093890110129163405228155871412082026036751875068405234764804465762308403378280000993864594845821940918823721138535473109749197000663083284502264551917802158000199137128688877493034283526162191445671607507607330142899184342403115093240649728306799348832478077059550132479112940803157521281520026010984337967661048101298490365392153870360688282963036815162147034280342774045314918799885067088699025476676186695477397185310374413980389498848061065103826864261902132111490969278000719867072079218545771142492392114825933081635178083746134231251592397964409235729909533385073371212017174159176775148543220524546371425254186241433259168195017535410589074563476486698341198616254246137799324576461959465546976423394175629555880315270576597392589613933716399486614563306473773238922823475067915273716732844870710885215191007735629975916493574473777450671513201128066180293578817547688009714874329304896724937227958779296458858165791696966332828046914165352263117614712818222135978429643448461121753294174319800962860974897327818553449422579468801276875773423776739949183251441928653060319073470365611474282616895083146020751028561097162747160339027155092217799692127846482005723232065866726987733616231591738303921932918632466446367378797828928034018879585350877292321024794738283678232579026448056897440556987736240754049231994059722672770845645828733209759197819733915339289390816521784485313598830656701428814487691148938710668577874201243073200509021754671981612002660935774709099910763612608381709895872667690172369013356386959094069526223925972016733021771289456771440281999781567690921573649715251645679660328120212731191041754458478816388077547326662655759558849639676979718437453563507386100445177322111500939171823400392188114782777344414221887992911421885659082920102112656456232821587738280919659619556414270283847612350040656540606618621802114284380051197638484296710427275010504949609772589336035052949425271199371903536570332133189639267632651175695369300153830551424180744515358825695489302491219952795170217174776792916106695570893768107449057410137655218481325142929040668504693283364712044260086583162601597009867898307287053649286399692546326069574564022643857011813619321865035373045445036289585294938662148983135129519291536547029876054258735293654310170806095383338380222333631030533600084295086481580379394516811292480360483469722005489962711454837911698842102345037247181103544442535308748171426532670939290397913924750094566789159461781779910943403649931325611495600342869139736852248759814729852203640353398463467821221091519479538623475954866553476133809207265499426930425389829604522284005693875743166936192251785384085510032208916984833258672396398167301862045389878087955472163246024998689029803459116562483783239542032563146216932439501787818004332083561216645250037748305645323186675686990080889421563707399754273681347570462967829103274054367100888114692202576357118573701278153030861263192274253308984330334927691503078245189928251184324108842110297610178697797167278647287572150075173170877083151356036156925104539536570394802294340959321776112366019316762030430296367965996849818902920974713043316381497987830997693220516743094690276153536318297723613060225914957901102630586485352905752617456861125471240474566137920933406465558438377773801930177577957383692128528244401205974851004870271346886252034291377759343428165303921687884824224945241172557361625037643820525965055824133649466865838769566931084638691712779705596912055018947444720673194696867178993478657460557246276150972213182240026606767370177694540838810808552879938925135092314927962634893650064181645895401612875681837538091452152169242273474332396631463984115011637220656015825264117191970959880829650098828657259929307206859822784326269124758499505507277630868240153831952664086311974539311919496584730096784847135724236604959674805622549568610856845044024194089833823290909186456919071705064561307979045562046080281830579801330136172205781267189361347464332696637871602233914741821501348311456567734071563360728919655810961635195776801338473986736565045319093963732112654093287518284073513187941497560138897104333243251280087816483266987986985594430082951565045350851883812560311039935027320801946642841955964204711603018018409589099979646032140888311534910123878490078549059670528046883536874147737619811875042311295513520993325588594081119623015451530684274042401224294672391987564385012988486798561792650395118341768309632922297898595826612949203547605153839258178499481796991889081132163862681446419250536545526095603268461693144557128165555855159359683372409462280164504507974435870831980817568029946666193846909958967845220892517860359177722933749149262733576810996432883791566414771694705656539053906975349762338652858698594186432883036810028495209240489518392123963212067170144802988254409987648741053515660012834486801669388868611349111115536403608032564412587758846197409397095361954673683495291755569586312228910570965394235375271197360712509391390088416006418207018020334067566634762435416618144254447393244874965232551218624668926154812314634210304063399861876160508090911687354775278597881162006065624994446476113273501758060480134201454188472694268899503140825006353280489865217764067731375109525728200842125522186867414861850071627071123173209878608286594435268236813665476929578943545051053674030668735959109083291629955269787932032272206300802167145735943915962211427061779041916391507910655075429637894256883354834444708390206005744663060576178684711757153990951069565297490147982736142510559143987100644306027205752902674578595031476925958815578290030780904536324121311868821077441375459236265360982106166199931938193966715221766036075587212725017676351350555328061382711475282055176560682185669320892207075057635137367457941048271697312045565183685550902884526490583152436826339729591230848966000514505188922677480566854321182192514465789965108611058128690673177912814482825198275872719536057168403609678260008162078725665089683237689544039948536006575662613054974408544274302852025213676959971621728283399824557622683348675271050851939521561613110433094295981058771516599477718375638303700034245682886717565357882541431427659447062360553386195084417259914849136383505709116398529829404013666941011590781231686304958741628468302623093706363913161477514950604022981640025094418659449906035871854370646845263498325659038796778627005562636822551778437008032824633229118539015424007094038382850618464675912205139959928260184964185290096470210461115457595113181527461467088590612903271922182568028622763386343728011746190043831121746375618448048064524266723906465998368063277110011413895897309097638243029513961191490208350147589808275944853918952029747435000667312107124263353150567870678954700941518695279742774188056080900596091068645180612570266531899978092820847618336502174001275330636397852517885019185980095220712729578722710261649919858743712743431121149479087189613189024284838974049643708023837544798579369281192602834058154511837222827038330123936242234620221491801870926431609685204419132121008123893533991732216267219713555374456399717759654729847667332360009178269252686522447279652193390644989664826599828734165305197293138627841892521833254261256342823774429335463376346110493153015200003921177987917889901644042708765128988021829765060861313285517319971155809502849453336041461853660904654003304769950350652860423631895377537724040719724274080843207104847483216183363201824677989472718350645204882726844172757681644835734429305489604991622607609562816946338816217481246785721461974347531143515769315529603416548533499385457757064428435830205033377039110944895655202215712464539814702684404517979370789176773423579478686446630912692604660121130907328921340398836873112190872060212703158128575790261527852540328845485168195408328277459545129517719635262338329221519874830351235398670677645791584589896513452861317886829211420164771707789314664567647132157622229522843903442367855621924405277088309164873860768943115355267088085063847845821138039338706291354562582946812040930994980899768341259788516528754979657363930272070091733542911882534483485096435453724014350057975649195700298460258383093307888453785953263741747258009706027265233908048941622376089317336342198316942304532006026902385423951251665479701320643838981945214718837347652628675306481271673064329367407817578726583588196415890344567556188624255630430445985869337264167535238992313519811304634037104878322525645715085551218972459339952006205164686583708800950319575293407133973751429417988803332389518874386226732423411724827144063519234737916847369789939874939009324616291621679346677218419703873748788700866377633560247869097179158125177763328686671808676139969954615285964712562303371316056530105099597693373108544633681600345766726348863801400449902435916720911414372916458461800052961715275747220396406500411013664302238743014228407303856643135732244609477748934679133054067046934796236552242076045666231603435801811928110991459365077349094858428781913622345986727003486589401871656896463992127004413189876953234612579796857798715716785792597667412385783426910113080314052050869047361078897928745887574437363209445493275385471072132412655356646711726828907018986315799546014283910061451874313130290666248538743714612543289391296657991247780697092689675329630058422633271795287847001663719016307795841001778126561865840372082929248523734414518729962716633352023712873534645767330204804947828413668393920670455710052572499072872199490393676055826472935829776450218400564102450262769553269449815655877628653883242106089973244253302279692371991843682840482309705918961617797448208025373452910645085054267747454190105342665295651662652800128606512968849474359170454664385462065396002419298489143771736206002148159324269775095601616848755925862869851643627121434727449639836050650768345582732138187246261241028400552981364183380152992964044228131052708149165431523910927587961360551653267240231167654226944294420110179392231024748174519415217880485928710583834009325740893004136572277571531130267314342647589852590128172903274444894377030832311331080887906846381412385583281916942632252320475358287281774221070326331047577170823373638423112357097113356935661278188551274830875865977926360168053959163405529837674757273484111359191467607716387795901614153745584530636471649850146587278843920378859138040242260327633787900137105583312405557564773779491889874620489338429334794237389086949228004039650452850994291627992027656389152497593498224087574990918565376161393436411571654500654135640070073875082527787136447373595094998790099307375404192845216204432328090092366755394581489552087227196906777639103753931073534268293835819250495991211051897776394037455551761507243577066301681941336986685657569507460447693998911220913403496689836602868251313036365394486388707619787266479837934281320571265937107798411569356366401154683198884953386974553340694791309659702544981703320852075079214483874367004574161791739932373680474034324100946786645982476093404306924664951950944383454150913225195632823064856506567465674982705134858009120257159385619086356849262207669021601940209354225821839306043843451870905689146926230694803749600079482118905324402634125839973224739791652654593945498763708152242569473757332498775463878416856151051658995939932698406411946527169880948670939473980722252191160945559798883297604946758427565108970352695416204206415193987077429089936916273543349179047059686137076449295181746896227256279883159872195688790212744811605300607228289213419292787618064201644958887920149000244909198093857465103318995423596531688987707785152264213084367593079867194942198036217365547606929527965473373489940741163149759626069844271551754608247362937219863453546909028131647701597300897131802218269284502050718100198336662208771549550395610573137587204393423848075115553410940318017345176293508775225952046665518888475134870633468088230687466223692536351995821892172679692715578237572926856634803559311596284398059545954270650713257527940412784924660635308617861962889417375233223510058742404364935403941306026182885783324170976698152607717003415604697090994998249637963898167458692927054850155390852855214417859615722066641532015584505946068755934400247089508083313700233101767864226844536113590430924294448371043344058859659709556810597792588641362541399077631041820033270913129422964401911901608704867625092197726575793229256880372729241648011113111647508623939693884420755620755154060755055084724268697559940755180471652431809132445476370651408834095334709473452386363046088555440636840168344134047978345346600256000858926584494691613105638803381817657247562436895881504068457224989201590606526224177720796614336250934029994182965940280537573269755953566237456078581020672440198717289531576710309133028337175649900820998111607801403620977466690576490749379115390717108235033583820039185231482640973386320854841969310452684174174036961910868734825647758517868808258316037677970023345401369676425306439744980993200364643451653486058789998704573839141961761904094541110341349776393439995425743596286035416587145304165655467707880807533354824371637109248862661831964448337628512352499893784427630579935501344446149721138494331400640136873251333220961064942628798742928049075580842257391383767572987200316115315640622390903311750350396973983052332305472395848212298179810392901185145412239698997841665176343074058932208275616861665285891555381587432877068935873960516406296288018669695773486992568895576065663052538563703217415128462702170262513424180129158493548861890278536725924968160158355454839499280725420447853631751032120812721793424985004798509641491666238633234332817007316877351216082396400534481485514773451023947848838901455895166372435746989636431747224408255460663000606992301185274127745924187423313468857080871580029463714977186174500647482016186115324233224673633179366460862792789842456394507286719116886936252548247679189359796762907306675907890058350690550822529979703526315544708003946674994962470011929369444423735168300003390410537405527013770499267874996315011537735771609140625082749009577928578620444569329133568066107476209034991560957926137901672966301730129669067518482158664594934127684800003708999064454326267453756879011470698964455042606787300252030948263334928344589753496395946952915390918900019745740568084824071223510986595574123708146035930271443233653861160958627007672626192158763424384779170652403964433549493769979810963107157536759303079080802148458666138748841856521745025715170287604802974878312873746701225254224112633736394873748173846437821911366112746429797016353304584063377649027670164691816548721769226753953312136122056646625473195446336341758807995512717712701877759264488496265362021142544331531491623783533052780979819529226971445477262864771507982962225928623283811157379488991299700198432658036938591219361788345114260667927012065807734403246917154414782558321984719288649806535566499667559354058327875978848167256221013220371977749757509912650821026240354988608157685649834499130808099542780564340368636180045490406501680005065451635335307314708280037143730615407732886544818843322471489715295057891502265459154891934713937152703939631209663732882610143146297493629478532910724576107899514130819255705550767544885828401223364851944983426023747500359572241312842110010578674878078110739059905956188771542049919295375720765694586358520005045331036464041057386954705301775727173617549587812697073256900564053264000309542434646032501479276292738192480759095623518630738841139042697442115798342594601391253592124730207014797836240843841208181362219705524921515035752018936654063257306117176365475617031242424979052126661487800753420098569695306063298458822671670394441143743271666355193911127245688012350796655743631521486943120537101442133019000968813029888650968842745227016438472869022348965849862103351450718684677461150567612447511948221779162226751890250118516987082491607996179056858592191094149139630060991450807914390430118658322452642335204243854877028179646482816619198365756641462567677928965744183723621230234326610113265343767568980678267848462910868077219972467425422498274000951220637767600875887667381142787872330994732310094188570894833039232125587157432430976343795129960191180977668490987700373119449438059124039897055014458151157092476766482729445065064740694022804576606296345316330183102727691625705303417529852886787607329742075818482223722851143080194276983563666952668931201813605414580175634553032142666357342394781620765860704481952947254343429208313358383526177233419546008243932140316713806579907087680942347313969910822861762699681586417347612262801725152017433878790110260778637929345435522037378178654736915410410289051252067287618634535432130336341233282100027943477487538450767822921060245364196961275628235497159341352725170241342540115901480619993402589846190515642477544935603774110457385672191735404084174014418990622771027686239692678346262347350864406511718986319695149982769530573225147696698814061994182265521511039124519261377810864751188725361484010548833683620950032124610478784187431820838505197760678470960294118332636290242580936187188630047880406369777428004793011264823710808910394251849329991544922748821562017747473758925062257011869513143397823754119594652578390083791231610315203569877563991900843700190823980712659080034592607185379458665901277224677151963091754875727222208395119343898327192453213059254964570072251639925821517917515660631894023749342507428214892537852518626765380439297002801933692128299763130589024183962329030043376478918719494219424203926353077378842062706898258400761000416571112470726987309649273647320464532638356420978839259081193142945136906451035171359735304012551328530194253692667425509837448916585627553660387732003942061623111619254925768707082848370944974012065992537706462573136403640748410861615016298499305229817752059656068008270591966534327856304627626604029239873901929610010269426627324300850253694618062071104473757332570593987479247740380703306538783316394241174690673710106966140226216223252403361998254474832854231567891996575916427034272807283720312113670133312575603412446373016009673674434343128835780274963559659822354392709566373893525839953627975183334689493569709406551175768036626821132542685559628509623305325163174208763604776635755426203214425621795974312769451703233560988555784773314388021210133433375784988099295428124702063143264193251562602282186893092864713019758506920185988150835838016090691249446319647902935887981796050652017213767485184890313458627313033278507738789121616234806114038137987068793195825411398302437634226679202520627378043560345210313527372525936510858618405546713043493940714853878650412339329610590783164626662357375623556669308658040391997229343699504736881129506859521868270283655725142756989407214495225803876205829489290598593613254847874726966933470630647987295777294397412336060047230845044091759448785809098638729589888013872929282434815331216599608122683655881383487480514691490902920123846725761580152056282131746171872872721826237000435100777669602991604622525832242353441511635958799715734256080502055967381755863708331250284411911479090291445375433126780340781233557062170339723067511397337204487654256133370871708856209644088741334052649818411697361259935094618707033526260612672695800456265302877707860883892186842137800055037930928944118895795303529723293215394808350912580369028517215326622662494360530898687777239862339003410341820475843154779340495295848107051690178694350911930739263549327996729065250266262840161771841085842334692883379464181835985735263259808296760202912563689309414571898636591634116732751207815795705021914706342204193758356486116236238743311124830415608860828352835714835934736353153011213054492483693904390314779686680996568354172152351668446083488479587786671598736272521180568382712338239632490748691215336523616768936476007146474213161674279032705206469670145274015224392153261956569884467875512253255949298424727444031153268097959151480888260848400241245175335707118590546672783446527952387105589753403953752389457279246608092970616548784677358010958680772815459627572689381452592427861453091947360721542506440854619245454539359539468298976160311203099358176869840483908775496271744654119906482931108511303487987743319150323441737682651509984120647282207040780299521702405567442852417201644039115852908991276089621176325711133361474369658026274067528230367010761912832414580205914024211926284041572285815827097827758312724804856096586173124039493717203096327072225390048488069054621580637072436286937084869189889092826728284808778765245957964455362475783061756792588309116886978614247971897191354112550824480017709480951164345554103492429156090682120689205326303634208999172398012114180455124219494589225367919093415448770788223429672139215647807934018979774901485621102752016655406926830671663478158694526760560884041142691272528116254731294901183019926936546237914051233960636281298837866502706584444540155186155273680464546845357897163260066609817684390664841150044674535612416285218646606441940996339572241562369697653703110655949943258991015774620667189981449268581696133138463518931162928474994954154476260582738139481438521364579131676693708586683917350946151632525391832073961983133242847885920227577524162521333144091393245310523780355306169141990647187790442280210487972181698623113023592626641424525171475598310083693453192643582396829313462515908570071883604381874585459718649714605468029599500249146720498999173737487415598531969101733956847718287752817760208234138385657332999015471798244817434186037113960891204065676407675314625934092897321495837548415071363405120807334727830346841116859453250967775748097260519079754929182567418344351752098809169139806649217781331542798509699146354411597664724067525366687324480190386573320847466323835131397639473012105448698800574487834687887595297332253243729097600861007468946290378459781579465372539262492732178522280868689772408578363206320784737495721414250827298357551443750889552079032222742016742208571024625665087118314125724288971991071496412525741608845421426803290514977582891830278817616309791840813093108011766489952344228776402219467063362355166025936023648027961638877496168435279215607382395134244094077612375843287805979935690010338323330862729988644176935264192842796451989095978016692488192967065499875770106730451394864152517486841956121847931979601053061939919777221007299651996930933708228095544873341060328407735743092284702403986375646087342241584608608400636246623035924504729332102313690502873941633375775476078162675222607265260831618866513107082043044600860615656938563073392104849542770776235341496951794158922610602971718389406790609978960526398760806049397924111923863881587668515569550566182855996005322352368306649307767904765258141164961130168575126759624572777482728382045982673549824587152135433650588231413900115236630627498986384602453695262353559086785829125876776105624094699979490973156694027454459061245802180493679631877715337903049687394863100929068282045578854984594761878916619372939621879900164698569409655422936365745431041817397109656045887792164200816962612460197582175776173312157546231868098369561339965895180207745554818807908450040154322996917243809595401641669530854941250616665112371280926908742039513503002400985653439762194021187923893084006337506771068793762755781104707561664988487149253422001167155733281768351968700014508678133561589112842655250279773208849342075866820274261678924417651257745550238162730290015143168726073892766570679947646858010791467545459536173579715877782962782969265736345175385873044183217873603775847230045456079536245905898164289124241877654318961394212693707609238300711684101375995901078579483531353375661176318981764972886555583994548744684254935715295260684069784026021572401740646987337055059533346449085317546270795330066625077549009957161837093220546981794296212899059401076494394336067599972288942799290228039160066436467812386060543915183804444820145882040110588608051917322032751472551036958845283691204794836106448585444490805913817743527207153368243826876127817692962977512312312332280037858334813493004677232903352067347718732688128873764187374835339620045598759776866177371364892782324414448995333586522037954787819700036304212260629948775670782367030136198063673697617856531279981995748484431423204366080309363343185201969202818719490897104187131535634076394249251576222235706985485342614691890337858433571689363187852727374830965760309006122651071674238831604016490181952601112781648218843636968468583638456161630530647875428747335016314493767271401396542860901905763057845610615679677073023364275877691326167207468461069226848986002724693809706956724331229817238787293603574602348816501001738882440179298001877208095911933685214572504146362694097131548577088471363329957601019641719518897263164416997344989571786282709224491200787855985081694557313839196184375868282016777198162050406769898852373783776035558940131288826763649016245254955479127936396965380090595268975505473963692086720311580583027475199993455454270071050511551928913261032495072971234412307638725146036453890405130851378729459999842368516918848493440231727495019363334123062992632161142621919248902208202050344057230320266288806606654605569125865181654508809199428094168786373114242417372318675693554090382802747673205659692598520706089706725112226713230181399466427337442735039056526956369290590269100825048328643745475203428833130355923172065123099557194526274164174745637379045997779469613394742191017703937107376369754238293566658843864239398454145545606861707843451619764608873635192778358093519045802319464902875694578646143265362209392122266933499325643016600663477628588774991418734747479177954752474504370031355973574712427821492767667748713730314848129639399238038419993339546922709350472233047169729462754072753013342496752844585522573343121466448038508505749775050856530328531589658531050540232861639990924805949280428546937911023884340302959703034789620799631061912167154272737917447197440739434597053703268848942057720976113974599965442053246595956450529693845938062972955210237326730896629120371401770003725162135728396045507976269611738362003940107845049598949412903084839075469054040760419066761703051861441191084609086045495962830665872351057825924535151005707397080573065181957534008931775119758835719304876664636740406297708336335638491160007823613261699493331020384031463807254071029828050352861889327261007150593003264291303793777671781173958237096291752743324022079866967490533545036662058001197326960063487420809726763718224647982737193096090536137914305845913931718871530032861340596167311461389761426193222298968521552673719666876193973682944945071249178303120127685533845550737993951355665197102570862188388849871711548013353505560514287032395517213725574060071297978631943794030871119369924181770429410247014604688793232739124538378692866135452328188549029044425297259973268558004079187017923277560192726897795371953434677507812566863963967348644410255560122420203205177253771275441774858635540113385352965040892656375750200149261028133228260996206240754151620192535031358805353735519166875984720611287609868826247754131095603604722909625016938962768659592759186943667097351944982285414666728977277952802122540672667911850914421302483783532894856724046444828095151027318609087813506265974222835975580686623304842226014856421104267565177590488992735219947697889676743955191651375979377016040108137265427881622801095422729468469808307027256181024756274597409361037204186094443679908373688976975113439506115405136894440106387757112765838344711424625698509405722767048270261761875561442120573580524532456049993737395565193976024890687737266058288971699124332643245593731953804321922287010427311744050936610277303331032934539391952972784746995947840213115838014278420478853505853635161426558435656424597079713149411626853189799706858758162575675389540152993896207009660680462944831982400629582478776007947827536355680055103006814002057595495881921501231809051843374694332505610090232379728414306286732846324842397773297889647849262002798305347149107730280099406975642541094709990258809597990628921170747281949489004053079410314881974076230526664020278426250962094045667563562267850800798956690921722419286386957304930755833298597455055094767724699354859790100202824885018870158831301614756358590104826484807448887842592831691023312882263043668703265289426435933620577998235127816105391405528633041377304494607625441383614225202666659390878666074662547563669577614195271812109594649404351662367483445617658930886493814350945666813753172308975457457444184941741147634880991822898358885697238581461018930472485564534213516065563240747902693964044312553865201540089592858086484014332901476120444612417250455103650691126249976802687026828431253186492222341240473326188446315392390139569476570768175601650931985955931120482555606624625116792833349942114124604063765163786535905743977720533253245800862681674875445697030515491481640332922038979490313685129486819747111144387053245760060924214684797558742651596008609930716646902912422164246261489363913058060053123999518119883498809861717809645438065084276554376958074398984261877982854011658879816938252958670865830401276252179164951840175267943554889406019760620331722623947543521234586756414990749952603631802306986485032064871452084602627096194941535605720340677459226781935663890115145382364014505849896307834634276662507169836638103470340098523575554288337650378315693191084167517607021924949329614464872214234381229759981812532443218869804205645110776779205253314764854380701334134160226418988407952878369836825884603446623191230421645624184300690772987681065961831364190386206380307377226553978812562587860278397270952846568390360646497368896938209596056658551790672315057203225137249961639705834471974619543535574779676508676207898095086875253636612162590499470182793507594965132414687724452343749521662301840862196867451001307061346079430753962463722646185564842036126349906563835079691837996333120467866857738195965023033012472808609914576174435325607911981074335554864603962337356229115297957963428548690083491697964552696410235238790234309943458591383435836116437725848777621796670281134976115782704610992898783320210307324088926851977094350591152897141449983156310785683200371117035713034147338038049568744678482599956998431532158148279952702254504487652332666991001706452617003561007828554833978551060966499957970186519196020490186494582767261365310436166897046061492379889400436165724130061886906499729158016889294784268114056400707753407030000602031737099473351442140552236925921600589280699000225219838809130579439876388986557289526839534132857714893321055173948448250300355656405128497296828091668887061730404640073672832104365541730345005239671386515612322557723541459452657475812780767248056023672816428608748591449146142223478433432313130357543351476262438168744511616541704284825631050377770121159552090241876545634219135526217163573228662814700726682566174790979108644411861959201124299896812327166022613460782680297513051502759625192671067404850099352153589631405450460162697866720248300112354801963769184963657872928057083101619356197547162745708687199306859675594589081421679528404912849249794712329070112832344841798821471557498802988702012884755426408603829832410612581342127180620228051865030124569089008934956709784807126766597611911469217811739746416105979173387847824899969508592091595298403714046447442168258061575192378049547405433774589917739688438240751547285892476662865227149865460732046798721263161739423314541353487098843085352758870205786941552750135771854522374309595785784144440034645114617879497362567847118049644316984988180629514694404854017539452817268130111209668083448718719768289440992099375342453431135784337971306563735926380499637304994738631393260719968876373175014019579895632406577709525086759743272929388761189175991695762110041057599679464370671295748960624045053271531464125126417392482928493925520584922733511777280871073860371649997564472367428971961097241092603592084981682427080645782746670495714736984939181377106332941788214008924827638492069757286894993856341919258242251451848056822269434963939171184913110018592293417096458541761104261079374825526491757402298266664386863470642837095338717970627554754161990389682746465026318560013467834990361190879504004561500386382046097485610924133541069607245569079988867035804016372457505902574803410739464020077485018352610934957645627677335303909556729660192558063179635581074113936932352137364075161208070159495967584864318402244495746356125616363261576657387604106937860657648730074543476403501750177318638918506546620510379720448169050667787255134930264586182027452261729324971896769391106719834716363295639916568964587936835131767889875202394706988356699537615621076871655409755390086141746552516346501659637049059694102963255167325396870516488577555635718491692627163334360673833491430526742628417438185469058462812802392922144373047679309594632804060571742624793844141668014825572148463482242473981433001909859962310477498479475442720761013437847305954029450196879740517541664327643625488728327188380403360480389833359707676046631930342108377235267651588230443124170579509209962289668164158697055174420170323536233260527420475002968611175504057382773812476459285976409942922186423193235002969317214978349780862582338096886745990074181218365281730988693452669537776435904148274542412611109072494006657263403023571221653458470561502832796834237046590446560075607033091820206474628254321600634725532645063932691512564946227927738960979336217238584255355593360667437013342330196195410967304228325580531341606337450714194405642036680182282240493956922155926802876488261677578373881755367662342489577521444227609444674030539787840394597376798578781475644275093208600983013485054704214181563597269632607911215172228954520690484316245274612164127078448403963064303740742076210436077513792136421894910942782546714806551664330526991017201041765995120247789151515927913915323470127626579880025731258059603231450580565352283714577181556224208106943908803910955167768256540672088513416638577349421033432805242699429068518721366836537156653764905046784940668034013091030528589870352278584892559249368154330156040184522669025548632118003879443995808356881631047614347215565104055545461154608635675927283522479568153309796858372907081225630796820125393442973647042409052236286806707679459059738481692682354571311072862635738559221421549085087786800546435690239845592433659493433502765624454980613874691270563290696420633676589956718233979689226040445296916268532740208989959237576465549951298977859550074360530254345893065082576715124092448530874283328677005547596662481651854188168738842658947181474376427746426106377248685620292389059445507263433971911555333167708305762443396455305581860189824663664282124924084799341985201097361395444853151637139639485655435523217093948240096114915947695881947669908236061726861539757137389726121427394694729941204274923874730420314212052389272105605342237569000863820669635734920348970325944380406554080698551322732867845782831187016958063004481295117065779376272544951240606709006274231973210033147189305237317233234448490635415721583738893709039231109622818847249892231600388655226973279578154773698827424823819545664481204961355009843329773993810527729535016556463117427813322158727054438734497337316041074775057014799861847945229960885423326373291120355432635848444238353922522972682455140338565822856466764623504994766741718664911767728627619934056133460749895758904168281022489042403437030400480943845714810339578377478035344421776515505186900072243600301825056364435672337221645735894343853922049023287034397273507409166987676587423642269254728546005021931668408471039835552664111746535623772185524027329919663888048802595154813642807325371226216942387388058477393440957971979813525357951010015856366456478466507909931155758716754009542073677132212585274301571467011432569740001594454261030707318300219204733873114025256564384967543238247170878658515308515597528754528261546384658719052386070180325213825836126064947720886420039273349431021638743596472878645979671581743063019559284193845097833688420676594949328908956893809021083874056953670697933662564240444651636552042261203949570019494244419832516608186004623612952079345041405900094619369651509747352840994754672648801516884086493889403909551407543730147544313157334236566958758843871662376969506233249912051496277345510703945162983526208331119082846633604029923207749584067768025660109364720725686084550989700582661079356058901740816542230186817452870728060112673993666887726427318965493281332924773459838358698351894628525718466276393447297656793760564721096046305349768848527706328313435610628165254415645404569711507943205818655468403148019581400514830812300508238153895635514030415453258740626884657244116210298629980054378970051955883347316433180219283356609775249325225188281413757040727764429943611959454621166326920259461745794117176606438590236353439953359015418099107501115030903180084551873149784880231687925839448475284174387102474138164677365954224211769908042301649294843657442560403174588109424587341143370009301602936944642306725210689686334396786677393921010277595837004488922095936425621218176802316643595177123094437655687939302708408361436339312129189717585561899723722616285430810179650157018120853063426579579409950260066132567042480678645058029546386998840345788288811703913633780552221475622691070740189273850246389782240776121826133519575082089482517429641780695001853424170782895465436521774719585723870955993753889550915085583701678354668392814886290882207222648263392671620161049618514457816946481834475649678770621733232302068711915234361654588790140556977202507351868169542242535773521971186722526155138805280463979635609162017315206450149246398615401803452704885116174644881837308742899192155523331590045177313237444217523546413675733367943257443431441548049834591058936603268394471236376700834775787284617481749520869750184612637460984177415271898305050042547752266547864835018512269896458648634698703709064589277934177066958443308582023399778021727816413180685447407007045279872038765796877690373272016906020225151156449466122295303638204152542059503062684205491241794781042286264824842436604533530125754807588031240051545017848492070002110040751940180436541290570518306928835115555154310108978610063381557569347515517422390008875801368006730369490171081300653459009320793721264429219323889418576772046190577760255535023683158156111325419274348351716699254324215362950055800611249271986269449575889401549845097460709632515653812972762240093537806667019948839509012501653486964898048905167854025440427566862070718070293235802634180039422304275634228544624367297707112915183583604005258710899678980043174694456324703214168552982209668261750584353101294567174394987566675348402821808683875777164591676006237458392005395628112143113310193098310005045710175518554523376602335094769189889590851009172716961551459266128884985185359887981694171905025293108988623713072328047422961898705269202449637350529527661322177598492487032695287270626382154251013493072440656483924762887467268725631023032266519812764865886774128771111982214791909266694995314631019721380663449171055617196355205585998940367015105492943332923371197740424596801570538263008456804005162266271924737656420902921646752217344247524790043766434748135306812427636896722974635724773041571732793525797934378137151651574995169344386212005050595721376072947735265702151587658304409210792206979216683496351369216225003381825523562283723975241670832503703826643492786748835589065505069094372232336370754060048334845591091160755455713155813359095320433586533423709526276397869302470461288951636143851154378622287508996678122792156421583734056200106572673332236572416921090160821947432410109459912396574546302227253591608132155440702031161406015586204527344918866615232318497507937043564201648378013667482283070182041512971634862528054304230468157495365343086947096830221582427636153658984846225814818252570164564255844910874752156606159631780489209915550775653555883925977906039647451953730553753274617561088245324775828324510156408612586470176932633279890417323028873992961818645809714286210827995526454927749020481868633130506661176781861517431315709009386873370341045101529140316829428383205550675316379982618833728074223936352166488706626279196150020654635052638700326598914990438479209446344455191418597770084781559104490593600715522763203272202623640981426861610237498708495653468865134827100954309684226196958522342248570331792919152231944809158855627421912897563264277698284418831551213345443999678538915815064936730740692338854507764905890185884099775815750323253869240623992022833650423580853102059300245044634016206346556733083932672854481842115713225079053515841994479185420867824970177578126142278719372316103667568089221402554089144158112013602411124653100370560548552318459615201712122144536424637627511031450592046664683640688907410579304898449770793060263492100887994687387787281018193710081740820765172246858904303664971829574611187810935338642910324886665608938192844103890491026024096172089244310789091024559376509673722203574279283651813420118869505329738961666978387428012189788422198148024382460100852453883180871468850496438657953605005034468763774873378147529361959444344140732479113726964569677492271397318509870919041605778559606291956243529146810526329466812732317238757090762662973260321252564899952261945198406040898064548031131791890839149829804826695094437320043311034269795456816100093824465680121516870087320887458666473043841908418418997892062476461889946701213205819131688626414797040516550589441341947318202434338129769729482626443314822034441826068865071874779203879704596317047298302934290440098980918210197348603370091201128087933860236458026155511275221472705705336509886968832330921240995911341467349245175894419734824332815697423325183036602429181954740643680681551861635117020161227059217175002719130877735863244346533892530482967393318502111686706026401356683419432405016021884509516470128056228364278659014900876658585550895120593185600045426971573711214836138504439393885003392452458283871771751918112648496864359280877250279956520570680156866753356451953638621965923344248601560778883769971527435792450129721201828077582814750285346809516118580901863086531355555238814237814944481192530725628784300879753039503847042529663781148292044104344766803834941748778766881024561161948562511332917127300856871755633995341942786279596344187099044471045619000658051958669223814761259855152432262812986802446580445882469188301774439081580619282460218651630503735235713697094197105491634642167504251183013328138990418521528973194860578991069138032484332315538795329586520014974727627831836610013135052351507941205264082433661215113903617196925057753990646576690845240219399420399483819488845553973149189487836119314305485630894971917248808329299985713294714326984440077751975811872255461906896144748418154788632669591825616278364575591223126188189295377628135288344685734983833574724275349353101612400637834692853230853225496657640768687699910095407078144153305702155913190982497569099229224065442748840614446236102754585076273273199813627620144940490473499932205962130326487828135882177651023396421589878697379395179646265287091368888383537983433348120613050403457511965639986813647983352872781655671298560674438302559937730047427904957911814407304440471846061991212525684507300770603560991602911559787931372586363239216219608548407398504078736691587317883371769850232376758198056814751156091603257619713764817892792761074434908551212824156422095075966540381092381630187534011124668549016170653353185055784550766876536260661483602621027192097291476659517985678121464114557268153038060445781194828104861598905501803801601039204227562702494911872012556596480477289475610586457916843561758108175502651451009807873192454524983373747088739573181672283572431439827964615657847918235085816463665481197635994928185836247437262497329778947704558791529035383976292767965129065287408701808437595131797598941756048390989178254457038084789647670867234815098952596619420345275747064264303716601377672874850360687234223234868313210714831198670360188635558842747693804150982080366607151417290335405759866116882012526462506789239854355910524932524681173568580344422278057466064250307876439578466843335514387998362706518594649841904915238265372112113272632200578143338266791402720785582838704523858225228901030091515615174545781624140968146804674500437955653579678553403528132780913485103241725258269857211115659428165855179155377727265114704737626321179682878612091913707164047711178527915740019248976991963588299381925361389952422469537650797961350748859240609412988233359778174324857210771626342108589743559352132082884756523907472593965829757060908357905572813185853561888153963206384689877317676052178093150846431350537458414787773372351355330034201144128503333134355697218639337202069841640225725205719500533343148143883312478551893693284746908349632822111565896023266764935674266218671503220845363604163103754217344829539173750702119699920395453073588025484206250638186774065394680614070882772806572053857503804316454530445346087908584073925153937663035263189100404745598651046400824550314538037124085361876457826776347479147180959279608059701895754474402870268130508824748441976712751406789709804635166405213825789921396728221475694433498664433571597252756167188009138808680591732822212844218416645640021378098897485176291760476167110625884172440988811365496977266528798548985485015894270144926431202122645682853791771917089303157297984070707495408160441197078846194267321543426719030361300810778411043130075839896540961599968550623298790863707252753730485818407003792368456946057165288728894375668640414768274855232421617688691452797042844566545323926919592212435296179650323080399530162891506346928236988944110557300129198383674218088422275191451893500550617324341297125255415704793106654278206901703841919148348533837856042690133634664488780625438766592861150294670418300897782998332619752129097471448962368273176763144636467207286726251764538194758557947477106691407737969667805006368344756572667279831012146259123144053160669159807791001054868787556183641656601121577156329700205300376069324049987645075318374571871489301226675582979800389763792626444390746855670353416722455769652525279814008417171011820841798950532002144346818970662066005538606173960422593511281997493034652722878498197587645254587888462377707893569373978350598270842982688989874698814963544857505694845219875840726380359712120609822393437654911609997768938081076569023865179795279169305809913845800518475721978329311505150136297002871698558396608848868519798986275057990671672383398348289860791336817108365000502522178159387796664739642235618423747833027148350067796795156752290422236081148422671382064284593072094399441708340058343658688585701471005046299096003829903434643460604344869442757102675930687832370565690182391177038062635170144987764447214185094534553285518743808862209900508279801189968654702268477510127370411094785380272896564376776852573016766120411448687000777403404999232826915164399459579069997382394361521515568076065895618181094595321080992312426927646053330012994883490111715013629103899643666672137938361745582505126384968078728740920389571209055415726470414631025828134401270982387725965047656880355256794793673279813806483572311752925873110263653883732788441150898298217948000261217150514788798177539696021382531614546092562404935097780843815774782171016390523137212398175466717998316146709400249392939584236691166280575520068936264252852665946266070314032940216218430239472206380114955465927549736333766251777560404718431511377265300820285857942139393650838418135378042061131338159218590180028745143012494529335079222454279603546759311150444982723698944563630830980636088627366171909183750655613661056422991128873151332200024815816258013542791922460692817787870742680358041625599555781228529498205287313892872387616269524501970091604898271727972882780921337432694283918259339746848020922318508151391676044486571031189793454981954092093387928112608564695518799879210613701240721015930788578522910452555622053516707543706821757303414650725239810145724059555506563282395996002301685602773812779043967167231492404378053945041461890544167063858006305829060028042141034669930941683150755335777720732746605394241939073877396827643962288018392856375869005825255439096012301885283411970564587661116597372863158945124820610573373645480969907781946353272919192325504701182839640738976513466277411669292376601896762615066003064148010877353365046463510615898899346015267396936968971317188537444691105890108572723033325898295794671048224992741650448897465570690395826883582648783498977036912332681160097636714052833278651184237927016666434127288368964715216492777495212815420034113425258797096675729834868430599023083533970514835328293325373536063140643966501898903539260435870270609952687298199941044363764950897632709243494303385850072399994399858871000912589309561779384854929311601451162024628393799042810979063062682787581039261801685627902860507377100440042345516530763129490076895256396954558922961534544919607046892821619015316445866062556505026537029271822402034421478022605406885428914088217676559167154564741037094443540090498763057009494971766578598587343292852689649595325319242051461689842258851398382439379371519204219449993550602290590874332305304905300647259349128231166052417978446290128820793045164827882861361080397233918120167034421649668314711979480947833882791099988457025990161396469524869117852679465898817094379065899125083092289394520653779998419764579240575508239251008265669269174440423160796776548713226803149624580461526214169707875403880557873688186556665253214287927077827049810375796573493862113755532000665950916985597937818525134660073498565065287235331297396116629787319608802489444230673365682617760929834271294936989960781575815200397265193787667360558956248288534843441605454203431590286314966294357452795362899617079935639443542288627396191920602828210127832840379966584983304138968386064643834739005631638508022626161205581096522124653008450476127465101706115256273830327243017358338924972858624940195536001253072954959377538586389777928969912443785435665217394150318157522562690634223661101689700860864290571417240156660116049337265683548103842745605218375398184278902976754295363135407430562340041948436094146002249065053014721628373617100068778758699892385533502595520042388316604338251305536079268643922214261708191425969080102007430354485230476145635733139581015079812908897135484200346481324842135318148646936201454053041628295587635177002307927897643044193324015328305820805108593235086634329184837363499320324725253562665250943583961668507972012983768727140962913959465334060090502831139916543429029602861322506030875490928872977055140638260217051558519905866017589204940205689986194052183842838458322009736644833410531369032227729901966525025930729951910235950879238810385831575715224545238835893300344337243003507431258228494266015028529417270263793180296107861616267883484779023355922066533712396670332308770653049055533605491724082146348037694642688389254136791648190873225494578543655727420853635045401280112519963973029461166884158427767181395909352913557388906220942010175058329718229925483901167884536096281757367637239087469288070303709543160475856725702207059247889882245719129877889310092739593103855709059517078573798108980572967345590022577975083820456946774712802810135086502901788610332456774571473398958946168189330417077751382731391184933804722729059245374716830213930924710491880832013603160143192353024456875777464126466229551418374759783739432188775336710772103059377631729905985765343893659600634640188507314192359507141556857917478815910249873535035274069825732716804684566139423322060749308785448193849987764265204945419671838159760989354173937106379104859356962913369436437987667072271664649587701573543621550292076130793016203138897171908967133622488519178772172447485024738610254392168872382853637359774724092061217308406226306105896155651321914569779911303709755709385634959533796631868942353318882624373638129035502087391672560727633831179493713595168995011276715187440551086687472487161484827175485056961892255216176774261218280808989194856782469048333410614793352010240630928445001484398970768810868967254338884012090401651467986932395746149228546929514936547514931149002313483693723130402714474127123626525919527661669508653843027333076077371795245860167231557362133815153768582320119197060594604939546033906529943892996711882955783128100275376583613941035798235101786269572493232079172928782630181253594477335196160489767494633686428497990388772351619945217897385938216719954889507048469321875417470553750777997721745731557707365547488212685809044027115025219711952099455876075339927188206933988006720518134043766249607985530981792757809738041963126050724359814552198887453712517467211576491039658903165938138066258301083133430857523493375585342864221166815563895076902241472959062050952741595760712209618767314158727996560493731958261665526940580576143309275396516207297431425627029628215966647561507187817691095644477897122226535619986877925093469819580970664070569633202139633157284016386791490058402181832109263650004630544243053662866089858433291940504855937870764914927244458868323942119465722031226124892882553090029515030572373836737762189368510570304855023716980367259145797073051442831799925387589690742136418592921209646646351367677248436430444827259644284148310947985391258778483569999295502608259771894920247710468460864126836853135669532114009761332562338812440920356053663528874304358707319485008539315515717815015820155413816399093043281706837276863966576610164350267386136081294300006481340791779474456654827509225552760670795626812304568085328860443392049007225347147141649458577895797665680988815185761843841355328224036868743443996920741700294959317923687783363472161694478161498906459757267026331174656665479959030058204452954765165674788772504155149317849898637436938769990686369584307630182456544836519737927792082380443490697575546947403852147603009140393224080713076610853503503150242492914736414543706822163132397272795977948119962841988619619871356546490137491615383075309317454990217742785546628476930872652251113207182393507352852793299938000768037354780916521558998479634526103057181323089882623407440556912732722847463156283547328030364095382215720077098496948839586159082622644547739376744593509726308699842602787513291140171237954955264756644123451349565461292511571504202742751852688011278452645757753384985191256651136462669084000486771697227833443989114126650809621788063278096907729542818629261794629959193343597533986917058901052939571459802578415182823706352970349092029753408785964621956512831572799674948279066339956327163055133529862907019045165263335802368259022683401161455145058697294228545662267734526271403063943362538682232876628800401857895196163479936790065292297045166699745776757273159048190435615792012992259188254644414592153620646770939469496439436414394212906773044677212726668944683293345367198249208345090889055862120306541093662626702277200444147913526981249355526778853355315020734132537146556323698891454325618787132726838233312998938072048598816320998343993927923697713894331195956919062446410868188418542873159834650735542833646451539216934661391090297678850144123259750201224801222549766617495389568111300228729949671592106392342450894823610583566500899810954121232982591931733597975880104672241114584292940571758553189089960370383538706622726635819385804822282027707218160152210660736583529364807356402052693468499448329182664237183263059509556722920398267974734575696988106862633778568323870258500677621669093742900704241051867773620220499793151483335445294896431673199110992546864491404956331071129733130219683791681737195520822445145375029266326501996699159712331767895435618790527227852162530558463864846805562996960206098412298916864204629529106522385552627865480491791369525462915246704451437925614785369083675303948099930881918620368564131372635628878972176212089348271772982558868954611669487233661554893589858865843359805179469850813529001507587251989677960560619583457215107986605351077141284362672057959223682933771548252204189202166019606726990674797328451196601964013030552126706151075052312430747999194809231128918703336912842265545847818282172896066054375488314409841739884371141390644329515372076018611238345479743888569223024076321654683584029482769473324069040756245489065795687569207765171968606483643545941795908565614097214705381767086708077151777642228152498825711663181170205754177583282690200863696165061496086902260210745199473521494164075601532238386094686213418623941498425276241095976538344945350274613606890155077713077939382461083461198344479689509405641002923514381806514500345304136822028723152806841625033737044610048837343949620893734203118901026598093045319123287950714488295767489015921228001872151404282340480425207945871314583624617403491146586716394479070510722403812734533601891209962492245532490717163507662646346730626960064189935222982050170890472543141510094177493457631197592563191170059525501632263040741618383771045736086277893714891195515162400962979559517550005615187959167185606672751600576027782530461962030667526691849417522416968076310619696642752835708079923964012971942627495052534597168061467751156413788135165207277496946739811174202872733643479473556349506247239040330722973226982416108727435143075168458922168021508321935328676165043564718874776038565688650478880184874572061477971369761311011245404662742628916274477993914017960656144476388965819976560999778742958361249891002280967891537456352743574812889660144680425080591314484098587425686684758617726932932968265438679613031752333202905745697805290271965709246745013569964700192940575034384783632067258585417448052769212567684381216297568734480027036540707307474215451618248590260326661575659300115641707913681546244016675185296622481699430946252747510759174716017429973714881550414666293128463714643608994589686277208936234145559841009976333925058513837190940603392360873267539930598609184068267386627323568967612694411655706195662769918855902467180160540996845356614515027247405719134625330204838823780442694038916196085182056058015819045898776435322429252290645405291649151426966775877404765142013226629645987121013424733665429138343467811510786590162864505380299905998460395061992005978756458041271521640309584898495305143195131174700857487607011245290630469042180656717250400596140438675291945827168654355681164714211666959658860636663010300707346341574176767041650817065323734378791280748568914211382445363424206519571723381877375209247133249069216102692716596612510430183560594011489091875764865714465831986006649404285083659919929559646094447955471859600319774953947589595776573421341563769082325168329576243459224299470154894794137004722559527993901316242651659720028762998867919498141912138709863274118265376047399035747541861619264685766365427311599585441447983485463022709118056380499007978226716066682962329787102288596737474049048276509034526329068542503653522179313392822577470698159243616004372054136557791014226742045833468814359338575819425833271327119830737503696618620957002815198144007859923153030788839770773284214861018051024320653509703710969414060189914643370099945840253245785904983184081784621638100625424747628970353222606687779211706974354410254310704852780635298664677918138703005605390543454289727281222015536031881463342704890635719665471164591863718643733970260664829438753169017757690144498794239507828154646936726072030666635542727491684560350271060172145951721520434020494425621480411902131607182778762091537983371724811750300623926357033253776025124943709471741497222606742816981100695745502381949492400065139829327319664077277392429547297822372627149887881606808412298721756989771346417413751947094894807058960868687341920971378624193358894380081017491040689101878431112522081123772977123013514998806309370878612837077366298874991253443516240226330724630266206976024895693994888238796367024514751701126744106449995074337418255910298822553196252129962998840838674919161910715403099279448698957522624816842650041064148670778462936802437889211564998785810314464560688458344558711472638146845005984227482253271743268491048413847081739225434947762314011430269965046484907860951794674685006303069026565490987984417261397153120752183614597842871850391650856475694775410567206387448731111120192931993957387876841442549268569333424599031043487986679569754786883307452408546276611040018792734234683899032891550449231492797629152498775805427519445484369052929873109790511121723734388948285225048008423994919184590902251655259921494842660022598738346181464368391554666940594013694305140504871460149251143941582067117098590110448475165209639210825242801701970379833630559109182836180054861050477791404205967315030311485301368510100157898174860637402036005076768723329807606549018811192442611712105923605898807860880955375183396213593864007503509734750819108821586342858278784628375973580684564092302603095018852675763952560421966703378149563378846089225513022379963633156516619482028378210445574107215304008608067725694740435012566718024201744662226389666339942841197362201059117755559607746666244989848439505110986884725983535344175299949237572363105606854833789596373310740597935428326222453463386523472395150394878330164879740289177330907608276325926098521206354162472074520537521749032717178185616004764462088732228528354302500103090953859100776281453642647534541069451909294975535148751541387414651605841839842972445033482640818744301086768223656271504605144031915617376552461236055279187347694998877799913444383032414790439095640251538630008406707363171951216662233629655591934938379150583343132286983817729330295513035748770822298924256874873236037920241926558156683535532619960000831407395120207619506980815523588951959911581760704208101668674086742688575168845386058241805120093497097108783452150233731177294087062046822445430463407300670749072237783787705483932037666071444944476524177632841081200356637432205477675992804074959186524273957027665386867645111914707667772768172114542923139868624110359661876544371516640383900397876904599502444451828332162658500481739625448683662992164601814724379230922789890641628188141063049054909678074713866057683759243135806668964906972829690666607304773016617745256282191305316103189408386482226712325260387484110732630931404380061553261496858358266089750935235862739661566001819361974460225235237692047346051541208519895740425288305983349356054599348810050077500813857608962701320432417994540237210285713233698465176369649146755273557907934154946291007904511662600435848787023757959307121083547093901890105516874783236481367226256312499712281696771503692661035578826587427324297358757815240396213968075835074044157971627658844192597555368888570410216418727532258051529112424475288002069660209602161625377970387631041309179851231329766022725684001040208818311153890227325631536622836835930565952184183157704485924392425790818774907146780887671821578227057979604537002918891885357605655842322236560979890971670537268911534581038337277954248975079459965863092876706567305842475692055988368039482295015188821759827773533464840518938592377111556834548412600987317599435970401124644968211651310864840129902107139333138875391073732626744583592747980930263378471163599025676148159816383246975529181134279765426143597001893287827955808462246006791975278931633085840250716962608565703333270923857797556503919415840502938946494591090587223698475242519315620797738478858568883801763422979630941492544514356034742155762553942288222850604686920928715129888767863350234133754609352068332401654299459800273514963992393881960258186045705222796103475096886672592825124671403001044361947204807929314853823310866515391036065455333562598033328900792434389565177969802638313587476110112909459417931067680811069934254928308964556578072801643723215810719548721053215183599818427190434540444358849106383864705028543206445430698001364962700472460797738532108791759110798407645277710478119784822218882105585561239434941702615816538828583384889924433439307740094986465884211825245712410427056205184940909418888113651112750515228132749602110461759720151386615342110886786471611302716121357994054881994079722719881190976188884756615966081843902007257819496937521793203282965442525254146376383769512648927979698626070811759063706381144219591615584338039215954106524629438630395533708007840702008797489517816185611975007227258827800611307990152630819276577986751492130119271239220211432782544259282694226553757409988891491744831023511689740314936568779040431934163644800714466178868127644793613869464939825960732920631213999320523082004127672434909988153838957297261874489866841175574694644338451605384673691495158518729945589654405415068663881736954771937290765115666010799046839470968264653202001233642575092285260751021666153813643183030778155373840532667200632900099545297374860691566569831347997614280473736067752242145540114037319292678958289254294070014058097205149332878528966638643407906405441689933836493953808030609484430864511285722437646079453234052330442266975838019660447498264319395405589103145236709675351560197055239534643988249033538035329822003132024066166578344011262931604402009315508685883477490515288504306285117109246046215424166761868499353179043462366236074240962928278925902037210790293456388106244845884088234071129497296449503079395686504619030149312275968091955065280681996539924068867055240412137924937361383009074389150898926553469998173373123657609609475364894020568840902764036985225493150239065033544798200338809129624931496950078578428480344934940106167352282917990070339764496481618370384195646587124505433483482298098963459676142087294228483662544892786208293015485386262568865739109137683360560726073124549228614828148735776998026265307334546122696935271707169076832107249266815678628000672131611949501154444535026300155168254038019828487539618757007645586564896690330678353859682479023442545401623455906351455757514725884371667908759091452809831368334499516927082037712132797452188850929758708769149081478288791583010399172599770740959200802137747532736059584916360330058264888407684596837362585232397975710603135075850816454998013495762931859678210536167669549083642955298157890015774043578459343736412495094665576168109388874011574723389096279249319968736331659989039399066255528226781417108189530195054949435633094076232078889717988962038937747053376520488950877865944560190897442849729948004168715980236503760187055810148726775450569395907560894370906931540700015862673189749897471886247431582671824978769357247293842635718079127022352620927879320243579137065182737985439699189451490283668565161555648040195619069505227458065596831604534165593059224701443921057125936373950773452760999826290704136249843322125806127507098833542308093157856715309592944984462243934097737215543326195248790540344289076032832848280489881242850145539737056776816777944208307032549508509484671741437065402385152509371607845320801167533569092742768813726706713763080291828671830037298881977559740638753916521069292517032823212129193124030504009845021578289776237203315031499504469115405021204802256339799368826137606243313709854508958498831250608589740792996562765130156745933486818463533653316359109410282719165298379315402093382211085975638595803806213220455607837218872050963296259920241235623519138084951780134232735861727281008301110420688293853047878220689905232582352245858754212414932695073272826016405565350034784635953155655639288145836633910033568158290104560713962375139504549943815876069496637402735287586868062627258819724614271598853417277227898464363381128930130056503511536464929571257312269868587744114904709274377160385909857318327803540617133205516260535238110548152662553514377195227958141434362912308198164838892763045836660937244231277122765981178421883375763717784872720348796917588737532766776675744121587071870265678068305170281168580450944111750804853690436626068523476624556904574512834552734697090072758314284335788434683842084752470238621956316255525262576230000108891614348944424913949120143627507485066813567777715164913659978837666813987879328196853582128241773473451056810592361862478910799782346154031556275714566227127574803287314248182897396213188926877381314485015307930891528470780546936434947724242949267748063279226757029646311216198688813001349906378615352635485809203827997313836413594393172794425395190657765156807203207084731738071353770095875747597910554179781116060218089632015377188509025748399820580891224924094389269508996026778048393684536024576635324316131400593197421227148498474646869498212880580739948963870592074339329706111078822650237390390404193828508861015012145014792485018814661440111671816963983141651415565939371561580740870863947952955373062735629124281785372395033885320051309629714997797386898496918329459261330929236577893660140390737682784617390096913740099194209674698093670246636030019441736243516342739804029724113895909812269979906517332354775325345974861808203461125890910238078781697292560682136258103641539572618708867243230954341594736717872051699612291147925198693471833231969145690423441601419417661532818294482926647870634429407181171759804518310231353010833982953908421020414131846051719765370114328209557890173242855866774043105271659469329673165403105532496628274195579251518465217492660707716946147975432996323763720585352609358729017598948807061327295593954180221325959397696894952357439927521491139912841439089712653231439259989985264710848299585049740907578511297414016376207658217739663645181059816301109302341086361576980068442003241754876459904596852903174698893977369432375393828685984293922751575622671815402666479210591464705583959887380606697301352626976897552736497550472053737844882272288665494915946993023151123847603950710032837402537620777926065644608678208827432435418363750550405902576329568814677586107838919601566933998697014818127945313682526819956414034170781726853298643250524384037754466152728071543668416222470578755974191700950674081488609690023785327783881023324316944840028891798653449455687666342853203098297668871045970116943371597623285873474548861761892822514333593727626247725296043138113513420061517723986570996340037494013425942814902137488890233657768426408465355204772140810140710737316471903165573923936761004937057267364730912771546344926615931761229393301926586050945588682839481856894296397870177941499991492090818009945013423190189767139881990724100417944978627660838962624933909454367350179200122864392028680846119508813341704138489956780118351803565878768275054093478572845414822026156079317273228303624145962055325299594167401761255336453207770232689068941792627765556193495881059670158827942526814985808671602167988688252713884396190288558713167795951865537399382280673162139868445142138987442560242938375344312592601675752278148871393282290103312483456859070781455206057005756409745659351516174305166252655830120130640084768571970250137294494897501927509252728476279550306905643169219966278801259134546838388872820756330214664177312460498280531373707213678921210614781889095804748602772609182464267359843214122216715786569678913934675909978054501233705138204257233643790269419948248589258630838536461724152552762680423237888143715488367954377078584010433264452771613720679735601857400995126470627483846979296562490987369142956910023666786977739330423774790759272330522530991272017683821856723577677842925255751290888132666455359779873626882250784501565921481146222443285114914261791059932673817679741221138378012545095547177644448130553776281278183462712696940244704921992405491036014938943521731870840075303456812298732045928740841325313989506940698549225839796878100913230189907927267907592162702218267690909485714862629376386257455413746547010024142091470495016997614262611256271227263152386612056583307048925181466567901564882468730628952278508680523403559815862300547107789865306565747434099246351106362088983191013290790938846424487548973233333098650391340829593061405205741425466306830930097604332556147184211058594375553233631241593296828209766604579033362204696517818689630557031210918673290062435260445915506390492126762734785973489024832190054930881144133779581706134529694808682879337695729573655101944051094357486654700526608650674707879962356873533964964964768835168421073795762377482323020707848369552600303638244921414423783867398985599216488478508991370697731572171826051335785913073876806952829164682116144643030799514994070800441331636637235404973445358152259232564021187584519605184606886082445223875894441265064889439082938086886015081676138748672626556764226106681448060483416284457689889937743469375675165632111773814136645826078165000332145090816749782123898629976949943985192386016013129063267373448167324627824407929352869978892249542705677230433650342898399758523972586404812795242737860566221325357314007140056879082939427696253025714804278205133683416873438287737339320354937648762279702303657984639496278303635649114347403860939715786816263926670986213187676908375117761674983489901062759632885762526202836459604254548513358359576303429744581486743683381886352899121421451507941804835001264244938276792682860211338078844116562554009640880237289049287553789209093502462116283553704578167416767371559582246948535561339293579791531267620013356336148972058028272073606104824737962056286165103555581701672247463188339337094651489092238127227165668714056545872531019702115922884486618382461385463187854408473061900411764927018258252321728331493905389995094088336659208996462233807902030376796018572010057555373637175815324708316380847819346675628531061658300621713907742287219099038529753066350781516631933495221559970766942809485029653058586961276962616225590129004977299943182173113565487601911800392883615369400788754993343298123025694412781852014924168614979425869872691669117441492526732985930917487628391908419569900832497296811078663228015631493371855410537414004671835414231318875118556947225597682117375073579837344296322428223648926281372166461254761430088376522937911483859796513846373806489291924038367780228060576187741033052151375595620487532265164812359047420217071647151834056598696048040801639760662409539990705102420919765937645201501075868600124089478100044893982782674408907715699019656194264985602589427539081465626880616141803399420454244889653237264030689944587446407184034543883336262209026293010584067858352334054631647497579994195953891992702993772525694210534103911200128548428316098862044042241054527998124006167783595241166747590703256947061056039230212046265534910178679327133156393367083286710477108383638389113785664413078488452090607772958451210989535454843291442665128103195785534480361473681207036182525891154106966281140582202303848442721876343923127261246838900469136355713915934651651622761287716309603082297926457150442776429790729755745295065006166166841780438056620423915628866671642712216607127096567713167998239525573528089866214594770252475168262644125746784017508189182084444493318352262757095470938636286166938429051541490334705301562360413138242132611993170842621086841900523835266586581160728278493064733059521459901245209479784569615942536557313858233484413600677026366368438941952391078022854672081321940088333161572816068046882898560489024116899449359689938767830878113735849061932911877832982743804156299629382026248394518853615088064058775446418369799644816334943974627722760332002021708502450745465842909511806112014043807072506087810704179649217010827260189160407285994227628920843865878463387879769236739575605765506841218622684237301923838938298066157829393707070091044056649589550537791088265625144019258483697404075094426338755850245746505430076720569417120597409080776035691286480792780092206796248143617555504140688398480556402599888782103156961630557161887310700210598769306193866102954427479716692732493639111909363097174493594234133448863738390420222369028076278808385291311482163263948997504509470413639603654225350128433283765920357544901748492754498396539143375250735383053119043860556948944579399167964442556150839193993765544983105419520790180735010654220688056347648858286724371058283066423726279470634555529447187897374766766776893460259441529295579166585091913292827787789021770131502494533784191099790792566850734913076631132739946587063299738362534235232975974275811602126330792225967267354412409312754296268328491217708305370005214908481052535868843007391188287496302876795144294127485106615009925202476434895098307764818237828977657838381390180914552391040903746176781053964745229293463999133668078576800434623394509777822648725193723534075990565456354392847196671779574577974765973211317646321593811514383206181201834960285014399007063595183121803311223678527748659728126882182847128547921882809530343668613794469285107937558730887191149988941021972408613266544600642839845958872576012712076179422152268013367015354897218459713405962169026098831886136873192742887079974440408801472054777896403327750456088524255621542312099499468457013954118339289955443256561038242557880927014277647460155161362562496428920297003508104013749132374334562185379577799828812878185915285508721555581344858187875460894216958079529128205458474873055730950840533802741957340011868612416667769653659257436604796728934000759254641883826929074412240674935237409606646174468724220965835891840358478171887542703764228708647366969038190085556830929147956077687955513663193982299535521778200510590635393686230681409016557207177711292495497990164110218664171627865259952618524523013331937176311922275640765260467586211883056080714644951639749503026498135673424937994960449122276589771054522474747168064370132495170430614477034553176869415412104506026449118994253403747653784767272802609769251802410469711933479154462379721100193126885204426584671166356882131644839906230244767094395161234465540265930862165250101956257433212723554465603344182984122577732971171139755342735317925428485231836460190047855203109861359869174133711110874708496551202815734072021483695973775733013689759576277231021182619763504647198824553664342756334216784002511510383725033471205825438301968554049320465974354956515397451572699131734338025577784040501276080914566586875888982706060388202880446000146219765755642873560663459641842994263244496487317531854504304101411958049609050477181118182789455741768087496389618576829427280785278117814367848552593411400346068059925931130560797493672696394005722429435379550532990215711613653450954542866806942333580918589320548220736072621154875761304596079223019580263021497679804972015327094067593540431225569374408693579818954595782015456602223537759268412748108923850955184950441415332719345007988738905744384922236285196930029624852142561042326789471523571054744019343611475279113968259956926036659702345718350367283011236719607995835799891863629094107328426515029271228930313715098690668629240131809646915438266774223716825321462262560963437110391687605312198158613929135494834866183358370793506658733093294645532513862620205422057418258432748497186191661524767185165101312573145003946751294640721443930022053620305941420699248986094116131243787987976323782406613756870038534581609937733272418973649340530134483474010711085704224276041299915084927224597207852819774955484908743005820277439550723093106260106591372723597228865245467344728998596039055832880688488936245305657702892121626190018278885732512674733579506173096690085737083503030183953384386586078283750512710236644451815708456299556649214948240412483447255363203464590336542599602134688657837332738560365906071899176613698426304028492095187992446932751511088959795926560127870225521156058555781920056682227122178049898263458563189699484681696812997791782351143604572899956934006341734839654931771206634375123090303306093116528972604034551135954802005425059135016020326013909358407549184651163701063342633419835877274760863656042443478426332259775919861546135976238158465919311671140660009311712178798925488675544605813266937694618488435531607266774659449281318496792670138660977906982254520477690480240870393924432256996783616314482263683184490197119758278989162728994263670734612832890354857341323625586863853920124736324725130454817562066479224010459985794829432683004800499721873994478298046834212906854759376594625730681347270003391897113056992583405267903495491917283289892813802077519298434490860359137410635283764721194114810888349640149728573512107356837721620015554927767368733528788753008967944442184047834249794301185149182865998362356277927975670740612633745119445015302514985553832333045502732762256103754390770473154642147746874564702478674138745244472676847324373058922780482840397069135024657720360661350614561162872602809482893810449938035388214265333958569851832177443448820849880078151583020737642673997617253619022631089242532051253518506431916235913588419875006209253592651143399487174318849053065314820613688944727955398655774716317842811353860573220937122560716998327842051459925854653893093232434130627393448797515244829238515405369203683432349849211162668219273002319435895205809243768208176054903002190585731500789475764161895152437778049047997544443435031348343844588680137203359070898484128855786652051232730198269020898245346638370247465132373337086094454724174085246989804363973020656007075254521723816398077123610589379577399533717854718978743657571373613882168829813636133045636729936807042848229842345201636700140716143327640078537822488770617548684318010075291169547154135293385668091360600165903566085580833528475349471715557336970009177936452157297930279396757044767941128760622080041602842672025819456688999022329806729734582964731716867310735817563750599042029322469287448623033816017144774941606311013571811593023654587419950888941497798104464681848380481607673005553384309815646150242634743896436816298322355197007251109902213663786185550953114909435566142969004648101339043400877536738484615589768720165198862847171319736327877115929515167381046667476766248098821301401868837046037862490524753292061759510437116340799204117990369943846722083019377131144119150739461226437434453430745145996516017314143718116752057207193221746050506563028772342191637122094390269987299049141182292702132422214042406627009427386704930443159822225083480147332490316279659283772096700286033804813323132375887903786716849067888058421791060690861123355917639842022807118685570799521688283388619539937733161153557837655088851243291577719098432982086228120815435070275055178749045747874440426074443801842751881832585695886837702964229749634169184706683001564322430539969088547419173443763993429410638456514443618161562337707289796577660126683663365079222880768980277112540906791583240591360562988873773755598943214052742680644832792913015061803147683501555111098734437352991881271279328596560230954059898383242540635252954378699842007709660483438646331857626265429496408590359422459748652221559557740213218692268076032097627387356663195789526554797926007570273050007145466255743087799667507593787901655517216980278752874841537299068076201116516716105971745160545813281744662425856630901881796590806049102310376240637359136366073616063616662637255301134197523247194166578206199117491576710923931335024219696951531249554608734873597886314970238952082527904826344765248417160415734334935767210197975973162799193805534573128194672927914554830395923553053137997751107531700431984766918783989045153105481306316613967282589388305016353144199931219679237119024791097550215642824296355946477976397696211898561654189831303908547240208955988416090578877413170979044924813639407265481753756599987119801235209334183718920232640829393169964943040642089999366113328490418414849965931909886232928566926744918698551620999362353048842340926362192506471507759696260409223869346755961126049030728631505480920218435799943913041956389364830866762787577234882165367845638387622419349926871298807049997446676357344127666587344183289718084951220664564828297379608509766579759558790766687555483869226283680108887009460709660041232305642042716671062018152777389871126713819480936897435212652462896652159620383110237923321530563567600025516873330114403016405519672797305523859073339143185495785551757826847898324033927093323397688922610346199280025976852927675628435302418888382991678055567085361200954619755074997436105986943785872607274513336086282159725539156009506894894311549617192394542250830026834916539046188838591469830191186021164422615868528424523208409963158306874820231026375011168152598869206443487322624522280388801500289482723869627289677688270594624763449958164994202859947200074451819507288407017825519896232040131658659241692071657884290340905079291437539547524545856418168409191065955206685847902031312937032990475831482136375958942272506574267803584961979204533776571882358297388358346230526012733356283179688876775322038454541960386163913872225318767175123840786635496089740312514749824555269140117698696086241322058812678046843116730286950415195159447087446298621680841783343245921312899346346540579049333056781782778786463993147517936182488953439082809749969983907767130793422962474833405902101512460095536149793751822406975679207438832478232717819737851562969872093750542695756211326179976386170776580264081512281639976428008512135235711868513046573913958525147535726621584594409221256473032757975774176636347855055207582812668426772507949535733513495358648567837668921073755691939967990479321177316887956998238153017337463223444014750171821304705200667824800452972191032430382069871932941059620998809447381926667369344923055829769026730320121480272393805012534494073184983313960295192337679704841372297113301651175173455198464935988251731526548710666854974185694017944254895104200213444004452854779054354162664984279304808520323720008466827276041781890767609152338374330861329958048376523877020228653697159601716040885512975236419668257939531832917715652885551482297380573480120656679147228935226596463684044357612518385939616709457056765437086306187100294648074492160750257201592546771706306177636548714147257220113200531174047560573352681259367309825910995361726025290997466701759600186466821894450094312060654152915600241800995853830539969874005100093751764853545610741364769024634870672132551737365188923340454727729946294458530788673464443040410570907306141442486731737380871002008005041737589702646758593497079905812780627587502898337989014661443330540529548239248128344071628413624421680491100616722582701877132000765329588484315530155379990275308386275460480303041512796687380453464730597475164152953277403911926219601580516529533378995447680653582625058121832343551517869271376912559122684841254217966697495963989712576073615575530314678491456716113517223910089556298188361168420719834945047425959671546213051714712366292194660420878299384225585390487828354141951390398968772689058527714813473478219323479885477176032721198824079827606041869921359302296570545454827223713150405730236672578517319844858065150538684324338133187233256524790211683625559677906062903522227349785695584741078191167741488582004007332515452461726756525841748033040027433028142146620818360099890587886816766598208181937198319611499062056372055054963527766483372247817386248686774879127082855227495275325414848050299532247800280200971571828697315081793718408331753903974251885378386513500066445213378119031991273044740760997495453237312983678316408765691959311874228707378654749940273192498364109789455060407266985636578379096778190272991415570346819219244286293343429406346020324809572342781643448390299474920947388489986608489612461599925616638510773459190581169615028038664268929364288131821874536208877245296818805063875808013593744788092186296054148037473127167963523594427255769079973566843362022168621547298198781609288540634271910486221906229072644861204636833720338602219696116939032593461793644707123446786816180783253205260496551169974427437052896315663630266651890106891807775241865016786244502239308123799681623619517246088367022175443163778333310790773814992324454277763233811720545735486875680972265182364817358422901035220355597086415323018428124764393911133560931772079201282880808233011623367011482804946319796728413970481150886111770661650903093446482813132906480425625466133176648033906620896983635387509199156857969298237553383893435554413083038129858784293424991427442167811037137968428316510906891938184245249078901235800002029794984661563914316312373436441940579522529455919754969208538406192422006661204596982731396673395564980518808220185829425736533524502749521137442035061080400432716389357588640488247732291467235013174959578143458046509816600050239530508391590141234555403490532344423248807510915101571925143882315290565601048299929435480327662128668898655939135507361911399858710584098430187883096262114041361013166385274517463286671176120350517088808643689287616674577687736436348379180360191354735942854235867516288504890613449621267607601792969673091718100630861239240351431314260201244366963577447421516865427841393483261601536433106790019657378210970994168789316471666336180956746761471101461615280284657428647387123598911725705540264190745659573680806471752421307089245128626194758777057048215440210657311297122312350909791672535949047332281258358413865101606529632090385809152447207991204817745368275354892924716428411279192596581763781329043431669308985654955842525119576118311531797091527032748353494922257944360204721439299029838655265321625371316591927545332996482075148062434084439022115841233281727290293971975254939550909418514340506535794125367242833870153706547709914646030835702502491343652498436874408453929076628797714239735497101365173021516490070277334268440670862799808134345089565625194898060632938018535664287679901399865018660936132510949796248590922215811569093833974840878158740111616269746762002570049696172778727540783438949776601589996490856445180051454945631015950977737381274010628777670323539347206071760132181776124635983357730705528485373308220048865572192996623026147748205892303524261250056049299653320229342407284530825261312594391059343596562689258001846923203052719734292924712313176639546103916592252757958400130637191804846837296432048855709450578946278391178834669454141552176070260454975834132680742703906806710711276127970408373962668653777258104354477576421982288376601249276491265506686110817267928098804968053826212534362749445396324962908343390428360166972596383747737744111042113818951668463318094705410735729033130251414061149853262638391015781316403885021271503193357531664042019442243660532233257426372140094649982794337091710548938842541091772508003868125543114209820720010736949302733984308251421498993075785062835685965965187516873414799811700456490281201508818038371113074333406409691708515200021720845345801648246389435332812272201778205749911569010431146799232758600833558245207629179904974229898232359087710395495730214020255450682854166123630394966251791097326849142929201253643643078190661816278506653096321149006406377443405670225744318913617502512858228373092560842726875202909337854288241323297983833877176711822422729398321773125514627394202006980456322815925445438509874915256620979101737057683396378212012364970903149447392680354333044329623829592925914157618545230119196572846446094660352203200044536667401347159312336020110743830288517979064197258396157837765683860376528367170241813657939381993161699874736683040429957332851337696606729665355067381688711755301650450132609372475300225004124989309506902556209724411342153575282001665266198826417966092116788680219297097829447385364758366328256592504137605221827578451495117926370940852086397212769712927301034388887635157366938309379526831556113776982010227832687120474788285455856480756017205897372744179146433144535304571387446417161492927278580869821963401635758978173451432406400237336458757486722393387289646366742754078259572163472154885140246218299980916582231123881364394536971315977863319270557259481403038969785298727762646706557115686604254243878154795920328157565923596473661973698955662312441737568974733918661143307308699936508587865834152916819836137597454739928658189623451670265391410560138714152334596610120309673446350393771493284431055316236033817134226024605927940228005615558554419023699863967100044783310778428862196992393476841221864718579275590962168981249863562326782942175880950643094185346396081668771100173285547688830926444070316862156289691815362951827583934775247229337169203623695801113372906064064636647271664311256378194597322893956755885554926015440346369803639533739923948160228716561234813506256466504569277708457630765617772711827407267322982329568501661933349102342232633230863012391342074852044980412409539652478093448159821940713844516201774265572114185172973341174871250847662262302420415099538472079688683343525481528340091144439025825693420129242123282266834791550067679370407922425434198585683746864562574409140940031656642388336768028519413527968735060215968351168438338998666933377726175000682012850783363919972178365280948000229165089439856342664861308612929964031288698729514555402034435277684858554934219688449974761849338411146396933201905711630483264639658521548021318633352469735992053261776723197224937352787744514754859315154140428446517345810839585363033751011915452192458096122496279792983621122445288227344121974359970953153360747386157019292960740250553426691284616258205760325218426226090420958410820661635386567978528894946555526051044777796918011957544390176490155437721664521110237978639069174865748199598775441056302464921946597622952593213400341283029628817992729381094209402607758940756407724530312923749730157419407293784764843755900715908866642317764229548875786746541391628004935749944715320925076053859133173896256701801577889900435364413904789028460666992503544063903239912780397521107256815809259850893982620832609939727702171818591944936920291582788077129948041163897595982235007687312792697541163950308252809507627012890931314447242308886388015362384397460282146991275066269657380076873597698061653906214032300107838670754355434889406029554816385630498266639916382538049037748946813806291312659916627805171898872247548168407621369155161879854212298931614711832718489507462072282033404960055635435528837840159986711923002774992723204283365853319412875923506047039877325393671366598515438367699959860285599091874024113427073702229828781410899469997429985844656921603780369312367983715288905523225701313542317444599599691491268400333138365933631496870905042346562616048688226810773927271529923731566023311427636404505186085573235727521211277342095541440511644995603805414223580474352668566151987329272236297789883452875191683653656388530097189259048867621123635886273746140324509093803061588768723538026706193454616097599861753973501118142834656641053664006895908617106491934552881841657837116881658940961055421111998948516023017344686278374205313615338422690029692851069656226373718590453728926871054157424830946369722574309334969304124671114701118144094354229985181659102645461599596175166072408652571135107446163651841433964242906680278766503802497461404219621865131971702854459509500507041039702759006478989161012684952963599157474010653804643656172441676355263323203538797853798373882863295864953174704288925411643656852894932031015194783819329938091461523457892780103015318334873774355606405245497937321870641383334055552116482445536960723854437004575576673193035462884415708786691115426854475731852376489199895456296340258379669910447329835040659224903057974362454079344674411827937934250989545106534771708019990213076532463148725011287959933615517431444238530594756342055921098935798684681629094632413475366638414383759449370937056929410990085402637253152049285514146201251051737694512635945511736362514395319087490081600080332158532001396821444972174626390937685772113001247000605271137697442715510752879206736282539129372410608201808256105137584443383139105001132126500554825900439353714863223137665519524171308823585220613190895067148678138569068599972235728716212323587060971144169907122793476236357104594399316416968486593682709780900198376730427387419126105963470007728114834440235058687872036742738428435360191803908978380786623520011930114906827422741845488814013546955625871955447218552840053242657271196135227132647610042745355574619565129640795322988002254596617010239637836390034690916402083312845220141206232162402596463946117193039817576425187321969111107826783372504675474252389496564310023662358644028551352206479274565769088366142660517017609267922617776682433053970631784895911489146091082834598030410847792205087587277251972741748439870962379562513139105054383441884584298716034959646840411112903631076719002555633157753140217287960387595272822914203480308138299001576434078011238443042653064586014732663635843902626737635059652078861972437110692648908999622006225196105470294723672533835722261725585195712491547081984097178925873592099200466458464982258013989511672040212673398151346960788019690851027408685327603871854544968998675134406856614710785164563697886921104210659517683253267989168267486541804975653814462557189554269363676333481128148498805500286488329306242705327755202512101545888528613225460491121053025824148042383480115788608337540361554505796012021622839676482973684992000211716995356375582226905734095449278238116476001856130733817638078432009132224622633680388860388811337267576487367189574126145951203154005270752933687110122035551822497268698029758250902174374306801791453601883539304300354174802545782521661701846008480751487096414902103168687986415863203414878957478102598460449253643648116904256163381341347068940487838112343502600148848760941073602188107797487457323057156926842196013148835832457272151088693649218274566270330621404351801112029384226513420459057258476325585299332532703225368314962013476186871051758243542406147686567523429040786406004201219469043910044994859809599224835882272602996924171345107239332689954863955839954411647660248204184826592801137182404970663920844058966456632398930123697824671543912142628455555396835903748273394892320120401482251959317109227574020346908350461113471460834765025384204370501900951249936463237270616107769527485473342624205221915623974825576846307689522490524007875825225078160600305534029845749021197492129705454344947680922384276108890135177581782731766418043298028455835235847827421057517020252089367677995825812870334462260965976400073574125689502611740926431054969705657294394901590276877587034619152208664294932925713315634070512135691578010825224429869515604108941160658434164812259339960047151496103488812896644061869681689878704706196098680781023867271631519822614577729355869164557888347412696517857809936325345274671796219939189128124062985060897586566117991874641591154246892372583594850367198528567231468540823737137387561716313987648507741833043970603199577887549218602624324714139855185811670965412706045838064578372166300384766513402993509199656661530223826161262439913532448642484872544095060049520905795500755533029875623598567134411877027475738780158618760508313200194114640219832904682662324665515452409748664131728993520677223069554774596089632451539663971529495920861105658821260058842108528167308081089465735555377494757377907518419275330645256756057149706766800547273835905284840355770974238047162269851867019639674222707809065453631407410132433015494659637709562473470242432497034435164017850735865190870099197910807252860740177374692893367167575556707254312896403254360504755241455860992275098586279765381198878136348377540784206439783463977305698937441767868913895628248751972194396463621075857361393804127655530451783291815606041830401139257803298177106439751869626220577838436724420568738463235984576361213069672424590931023580868125009221311270043595515473090654258544695903779478399482075160796361803032032451223926133795196719631565820131883209119325373245589292034678722892063164062671385486337921308083246462893421427350802778911008936943494394941500221125375761571041510662158980321462983270632817736932376871593184818601790764425296842303443516227504287743753161100598764661351501565578956802550293426290519203298465328828341934467191811108834175985744865425549670594970839997630481314485444557417293318091902936330522260878207156779161233148870756039114351819985784864074488231121189327178723538627047396524425762839851376613027272588859845374598298277220976090621845513845883668221880587388393077710913792249157097097255605120220413765305111172024069268536228550903314780573569671208370222076578864317355139755616654829564000535396765502095808002330931745744292295973995333095693271161976596514022100082450608932176947989178351170345440902075317855067929028752527177694979827230104179664114691565300675346242591731017676429076873287086158936064695336903646649853724232761525542187123950748740949713404604846404182901463396891902560705092798039703157351914712038086954093032719895609751791368042224144848273070080888544963797016280448112781622292300135487643182125924275851445063274659923305784898340787511078405158974726805122899822988849865055919665280343029611458447302177672050701038101529058184894782107769245544623717839063947994514714883445418013636980391463198709648613212507351576171923773383482971365168138087717904532667062740380278065796211073547397258118669498916491472674260102730541025710991800873195612847700204333515067970675293592670157969214461895507911403765408705487405030353978165663541106265180283278779214783920725729414062643125300785306148860500421635926937987267627316981095498256318597285714231075221592781679483459311280701206179267926605519423396634636420870944352313454800616787686098449302576054153100734914446222029428849300798766215446403153598423494735211885767920225303186017666324548191447119388549975552043131039967902518142964529653922809245808092240619449961429026276030137443609449924481546569473745092844578666218116702278099045388973169930534070136613197897605001177245097935738039917874617161394996907601234750505404436333991637190797065021172513766976517053978407000149560298575351544508044736836918101664506654404836838913732456980274472293070406110691997641029594603007209706711551984003478227023765280622250593310449822196464612731221688064089036953475147325271474852334101388073883692481180260998422321936305781937457663273930568164438501549440154926409592181391853989889995621285087945935441896326307556822771924724349711719670663047960285169204228587619962688868299224039272364103374623191240333706859496317678391022820182120835902472397140953747570496004378173687411878898361566282420574700177115277745244403996602069766539564722205311097072686285087416673036066470321184615869530666682155826861764390740605236696873314263572251641099060211668890693779043305508325924731320757056641539936257920200069418571363326560205651590579230621879701362264967954361082003685315442302866781229684261944240508025984884940434710473821995104815601609417996723357107319935297195163798662761077307507397652096040710525680331843881648255480483099763616059546755792334167661544187206421404328678608861100348693855959742951555625102760985732866213526901008077190693662292277615186723057562222507518535416583733412038369647807976046344298710753333275292119815117316865199496141240377233752571828820839022500965941737023028208941869528477705232057940050603512542762483735024159996928278592564161773798397472218729175398866877320521152277985983089223925474505443659990970364464246111276128477496747415589939071687243787251168051355297014777460944078211937515213346821074985860072711087950782831176514104106292441901180110931459470664875870640143221787929511851551525883463690087886206873719617402089806744255448951928021153387606850488100555852108327000634589982978263594977300119399409945576980186590594273279802035771290928049520066506687089689178356304232328284913222792345643412430969651942867940100417715198409372629936702016673636602466698702235909848061747092959601129872175019156145122260032467526064026606216358805119970642810941329280031534847843929805928269017283901209958717657295636812449449619166909184176245105093446728083480525844913762826902132476668963788353592437091189382570260426054889932632566423617044056165275874388063417744655934427670123900537720616885645128389212228767968729488202305973644745120126965111552380868584861533541383990543045964808315349277087866854144065179469464804373134693777024862075026956314102296246664326574180260679379215482757455608707293989392214077860200605598945019472930695971020219328227466410902772687956351044595347703459923884423624412300936553133286072504591573625075373626161226852308041804225880146765983256677989592913608419151441479771125517002990509845353791061599525119200782510355528963988885600650351824534378326092867465898664364145494364858440442452623687646801755370844086742648144930043582846801334159445563139331600294444667116891022779889269780550403974469322469385275221198964828909364395479269201792831283720691219345572416426190895631030547612441140541400222890053792632337074675311923842307498125590650457137482155016733125641168870752878671867084085048188503979847625442394625271902800442691759682191913353742215100575293223936160613936644728562714341767402264365513596263264884077975638205125783532551963833296444441329787903399131048449577320752138070611705803857214932462688519123329386689406197569658792894339258511806083419153120704115710792841129764456116686984086472447295521763764726706426850781750713860689905781472294083752888947327205759629971947529140329258317405328663862391462979253588401638567885974876018588179755953038826975095296246116217238921026276687062945256366353775032691543909142295761632697945622653139498061457581224202553172079842754716903881062677630931037648321430720112906834912761073387363847552447220824141296633116532503993373632102064092843907479842372967961018649148187046207428883636665452690539016903990370533939615789702795539382152837580372148477982562399270279911665650399479099519579105523109279261186708789230141973080115624467273834004816058560855202177829027000846729879202050209441171772356926255746051738476655336006882164319845844118802799337785500512465024386599508736704074380716289982080422252073077956899798614231613095849155659378127001869054230524095031286724037608287323535608661024903060101902603338929039066955860186999447434042476652856961102325818506058089625600417362267232728668690804443389101798083983267208804296860855107899533150561609137366050678757269924580805448776683637804523620795447336004067299523560253490916292111395885142136012466628487231952348926681621064865260351063024792773878502339051172248431383782933436175554253456744644412480040545500463961430870912041479369958839005583683511925913510059713063967057799428745537508490375828212415348545136084731244222411484580909313843274354375197074882629683973537520455207334196678410083859467113313689665424819103674193776550290521616564226784436944579696119799345092358501928028767124956361638941617163644224252868261924153984646437255774074307843833731249161660116737108981371481102478934225898263643371353476330230665006298831641192678231349770222418452562244099248356429014805475147999260689137070569625012168464907715484386994694329981617823065557796069911265625585295327754627263376366966956119932717404209608064105294947662700675165717658557480342491294719617977881831200126152814243275052838594299196938666763766946267525389295788051277728366992773943678123569376435041468629157423579023622774268055939586757210508001412682587935015661215413804145328774300178939339513186608962154980489798719427298281756849556635287469385778223540348553399591733172936960671136055166249490714779601487102286402741506602557682513890253266685810459863592686488164914251751955207855637408643375632955011013466143562902645286153387811973862216709116622300240594521665596014178814635114443984632912088390676549301424790692013936377190957374700804523851261913302135339217286766314149979862511450714234121361138268963023360959016234897748726053660334173287580373845438198555687339170462210928415178146174082047511459265487850236159235966280977157382464723837953404762678018389434037659677655964452904353025061593335705295079875608441969416122627559099195221338894447106833978124043648470241491541907537069235931289342539327273096593015091116256361529481955032636541061829217996812032663174821450935470464688305195653464749987921714156901394899581327984990307605331557823529182808571857088761629797729116679898614212446756038873139095453304307409602425148755803193192858185530058023461016653463829215859769684507882583124183770590541002501046791401770529303202463663892003579227009059096776861962458644422403468269292095047608231307776270361375673228962254860347283798722145186650550772289398997814888726511214605914149227571068482352219677465120029546195353521053189245113714100002922173700669798467608086571158683184027729794976702747245450787413067489345188157170236629243661083695978892077632631089302661191616778083364458836729598018665342247344049358210513961845185890890786131623275869892769275329415209165647378241042185997079981857455751470728017862250465002774940477049144505057681933481445979163503875657860225533096748130612875073471129221654589451915887442284907018032145323421686489187848001817779546847013631949791456409924147907537432231557303770877585065465553473536222017110368317797234973625073743553115811494924823079157045825288416634785068658773806876102764239956045781348948648119452543615649548548408812941170339764900631843120389494963129438747360852665612100702895645443314411098538902638358018532688925278250630028165022465149539600479743449509576724102992463349236845696738217886707973075455360277672303852779054657817895511548829131181160704764596332811412886368928889196425470123789672662047673844543293812443192883208208114897565202961974606000726076860609201999084666980900974231897811832153959566202733205036034831418744919506264660671481987355947300502633099591677765341945968890225726799206494897051295189585172925035312265568400449869222577784034295808075121657819200179906440545466917522410678082107290257551957194730517271582796577998046813419158642166534761828302472556190086308550217894569305694184673480492639964184758248425334671022107000309196804608828954301135523790266728169665408523861226101004380857548485399654692863189092106485414696890869006696811267968494145779283482108121587485405292170645589486912560024591081908685521505957599595236643670233392175502089279658714836804124945243975989808404710843713533957204690684201512952435096669143206389127014349625774483032608229236259411529154992631944351802619564787082421335458609969405042993100969923811378334371116470138215344437997020024069472775875131140073992416773474960536351853056333210167393997353103530764781560582674891908781727094875592570549907622251658300241591047478754525985653046982111796675022453882330444114773782383531290228804841895096658520513106592138350564751631801575200935958429168510050806429708553351482835825271461680654648805495153736999641874532316352483748355155906607496231242190426788523614199634130054019635623232456362183826812961707200132275461416407482142448983032508746607569812665939766204750063041210500509934140651922590042529510053283791483329634404794502740072168371030015257942334765416774826662156424132958784320256890467668803081977105387839113863364180940947738209225204665754839489125969235094480146102572742585076833983061365540694796904588970774466322949530758874309309753250844284100567709186905016958555009671757300133025096515704253853208957175243074994234928951843561274706620152824757621213599739841920233348693736443202994112441611060489014671619052806849241394495645629541084950845817739237858208414273668983022348162931721223532783034334490612903201742404383003657838795137282449384984812761691538710655334736832846858766263742597814503635746412730663447384443382987186512043014023749410666435034981392688073608436259116104252871954097528563152685503542790922180646589087798901163546195398165409725408534102767157108545445930044779128190918180208891185213746285659490981583535867688812773169472232121065620169919156677161615998791621992088779000070522168061473816911449039056018934238666253919361577956383883386825091356890974215262942640002905499194723883155159617123531254114641960259881665422062596895437433791269120884219923697792557634318756071856331230409628831927525196874679425600067112451549557231182994345760066849345151672883669295384814490118327220334757113016857257000232388948569926137466881830557316746944140988157351329056530641856640646586747751859151123212098621266609566375062024497482702719371147212531386819984289957854063626074073880891634816080687743777708125060708217512593607212493893599496116286453272186909103288783948983308766928061742195897923082271373428405994690913740706612122471564487844905600898363543757735509951376099026808409634835741241300840894027139905160576013066601796192714092032502107374707532922208542443239279646367849399827926439204001636934594028431626552756160683416354740180858105095493487125631280880202415972692406334948083228637271361296607489265098781688927141871053193930958205899694144253763759063907857890654260684070948520382622314232651204871883875096077053393629308894139623914395488158344667549844958831474526944261330410250806955602117335754562179271602405268414615610377442270019169656563404970232333509940826754823422481035410692519373408476340731542230290260593858974741466184350582151796158827057558483074239273577056119918978488338811604386351872134778758336707874518271918154992794259860759466167442496873058721100071518156199318544994643218169886938767130951581844465794590997802977902971106850539455392567954647936217657930956897997365199289944751427744855320341882913055421797766351060072002623590521682074946068232797231162447871444573939618346668042588295916733505823359748273053809524582601115987643660474140520408312379335986695184125221150939975630324521456814108188462886230360302741898186560973243961471750514948494348461821966090622721411876495967014467046758355605224623013638841024310025978588188100401023049913462809046579900038725280051726787539070199846346537383533875301407611656585781544525546984620875290878282361011018152808287697399689744960439634298655559215492040602925421136293365547487821112822940381074658695102309973281435514155383256100233711123878283357943840431985955809823222129089203176845942139398598385941235953228625882350932344665004476204792280339432955052896688745300204081858449895333568439283702856693118017549089729186359326463887241448315936977491456855081155434993933631085962042862299721792721561074095505062030256071472419312166789217002477582789071007587407116435272241076021357057617664287804485429751825406339350127474550506215399623224334261019443556592003359909063646035430390673495964956177217905292224406740346470445566365290752415836433459089666814759960736896765298493340266575247360597444357075318420317186726148122817353860926540152968075753794606122533515100072853137476851597485793664492506280352911756998655246791997458004850498892507885653739763186006385708826900737354087985304743460503078814410069454949877246864470090334133356215588725454089725674613541449963757061259341104149809631097942604452012594326973461679857115585874274421225894587561832978549315628045949830668359916211662254257782989669551479623017784863174702939341936172728744405104998561573065424568968242252107804863534308094469559590895610660314149970160356013841099379827104884704849398369314751695189824964482838381074916518444157173037056985979209496834251109817573639604566104101364525206587874544768337223433363013556531920930074259690548881208786724012770665416963789913916675416686898275426034954744737608481049795186895449981114372136479317466728837109287076669724326311913956482260446508584756247395386586214485604268367527257638148789827940642943637287100732724820087161220657014634489172704712030974802349665506581352192648341612676740619425608161791300433247986273287983731795134498059463168527938358081414689452140359254040603936110866109689662921571390429479652979090834216836074688104585151819704966275613796310099493937671312916977373754155722922469253908152912629732400212123633546013677229887362633723311340827736656321141928996679400114427355414557890565677165493268433499812738351040057048806880378149237706818375219004312193815408973402499905882842020872667641166274448473206559824125779046885318353327363431116602505329361140974914574445114460366711675148008598514537072784930116776711774526403536934876150571586960995718839577576341570424755096319539560993886798912652641610568000382034140480792150929940720378577858129035275130353960124440456420208866330282688879132604897829626361753899321768474488216784437677303319830775268070803856864341120338357638615975852400855070809046293662509658335657275021819278297148908737329632322156557802147353089352906139603172671669445525339277445981290744538563336113568597142479479180680166180567281551729759399925628334263632397074169496421084185909828620347185668884775402786858668030044038460790416247916324707165265894039440253903517720621391298404339510556504413793073210788071808150692508147467797428447997258314563143937586766753448944662708880759747060175786645025982074630802494281809595899213818758247191471125365705640688821727711926159039871004500815051112897059267319123374393521274061703569627652540636311393591059003980893479218206450735895037999265909086275022055141937248942197713734335213785338099257677005398688859807499471332949320850703458276808634141685512196554367984037736169373398015055244218345238977893207092668088855449782782173171035357251948533114357304289862745933056371470693862858504160883206384352498403928958963966293316810340553444368448258106047407829774444568265598192860796449812635913216789446087068729489293781066549911363097842805309338288983129400392860961898802050276921266905227928083562181143822918975454059456442070053478414894543683376198548032986184349182415041121208242452142150787869825553855188748152350820778048860920506311693383346305161905987021461222999560461003601459308244472540725691949601530185981167409447417343299725548203810677712145144065612799951392746984062364495338265467165851230445553543284072383088696742621294138445299465464826268461918878149971633835870117755610862596779489536190148840016697005914270413446857464595142719957308105579314266979619275925315293825972010413659990664433054799155391577034488796200495229832734969709888109241292743027370500633190217293033379382600369119747763961069948831941490018177984363442796780650761796498614747171312550224722734926217906935552104525121124260901499499976154846720895158634030836991987657748620777784553691012956800572635610015737404290514102218404820521502362367952583678812144081549880165297766252983191800925219582754406463621449810570957293866381560385032931879732861445469727066389462467724330798907674804002961181553618929541226946746910168973829327100346624607733337105782664475226592421326655476901752241147096396687362714617107439995275528963883401522176491406984537679707048098377891193367144654239887509244497341469454202074272149348839122741207160593277089892136117623665942786022954270092246672236664734328445989396556049318220833309343196336161883185725400292988690592330839946088640567136385720868441812138558944429671337447577162570999976145107778423797156726644891298471195870863994437251623846737680230929592130225709788057485491949309231375326448517967314362691609641084947357367662253013950018418840545460701467514703357854094827428240745102478998149030163258706334518835067806686766053380169127783122269030537769688380371195097802305851515836653518087019142214768033071882140414387969792555582129013339473534370866388406358901973403675205402584759376020309391529187709680385382933973690315494070804925005497948095167677954743311154525735777462464799877789428339248275454124371127424206902861126906360204874215604957591734146098622649096659032585448106568564162134407602130893079473458324611038337785181580323897143275952313767343278461520561269339056238653603307919605414399589522811854882685212725833135350064539266342524975518188071640436440798353003378572882426447105643473960397897079551331891718855136109842056800735711160643505963143190540576166475386719985981795567998805939829174940740936390385700624163339296544132976337332988089321049313000738529318823998646843582274420675844667508616956053277542476577091396377713603358410875546182660507273142172576792876452438449035085893835038925657855801246006445047483370288306567724213967038359879049990889187287220261832026329177657935028283443181781672994826234912023431610412023030550900456176305923791511435557677457812579398150818000366865463826534263419821807656825661665047478734391269282726155680124710462356781941922278352241247480134382934452588131919816464097221361953901902105414096141805202994236699279974935779231106888353649536995587744373529193432742339620065074005743145702155532997425833811661874777164474362017147787247931301549372555317931903859253224226657288202428969464636395569187572950844244890093081363929184413825738472349548658384842216558549187462540844303925478902123356840911787806292651052566086755750237350018828488111785829959994966160625032282904130266871192857244131335584230552824611862667263225093221114541917530453849101337683869776588572016535398126481884770211284588189760503408062630617664674505255355309315329227507338028616212182475048594455115068443677995073462394413512466217076827054512045672426932227559106028113551919469357865318990263912200444427156267837470991802704993621796411807253554049137435240357036284788347654962821108223898949958984184688398281675913771173663399901850929295706586352951677116379826504671780695075820672732245699339888954822977702236670960029582819548339278960300353864581673462685937407705493258410049273717650479722722564523090313544997923851427634461032386933592767482121789002472265653405647970750910992234864980824361911914865770982213804062803979321656387791325015350369150302072310282188035935349492085081253468001426700646375356634265754635686841102855574364773535398059881573834875421073853754439271184263085954369135414103666499541209828641530326180989903395069441553511922328170072820643575077839901695585726264182932641117733011391463837924730859184886071874809562128142399269021916337533400565501883408644569343403310530824012722416556353979844568456380192812316791919547067236480686317751823008631740170379899989094614626915848010093780895006681955593982733959541105936857624673006319082615446984233589793760001434323156855396869804721297266185262980169951580196888554232227858885484403938961078876976708845702990872780861996689591600703191896889880139431263741969015287186280964596727478958485920611718186637883629878348928705325549268756108931833807181242300146010813474494577523082958083381749368678982173389394260834662349568359315291510700532258905493463722799089597152964258323246404545149488789753627911438383923740515430777609079965662792670041047920490573736313761714681356166505020557177322086340794813833501618070098546988082949092305264323836501672359942336759844375612774540748537072837244373973119756590846124277778224686070208550638406124705474552060521246527984989456672994732088745820010256027500515068720527418347782947674903182556943719707588689773448272994565563236570756440619529804620051902760328904124474166071285962944181226081545820081934308920520423895289436420289466475254814997672105952768884188597908918517348571988293249996875700596947618631598672836313623613612067633284192948663147852857075800852992902212718934641460862691487442759353400442554911736096345167188443855745482477220160541597804460342782332647951633003495781404799523905049227628953440059107597814586738835309996278417577867644172712817222123911180925391217538730858719182865130212061728343338434670863697946590929778379860580544241223692972313019501338488239404976497124632548568162156872366002896530492887298752430131258682651942227962506524099485358304824233460077430892072086755203289457195911913970339790638122076332310522498615520562059163161970870754924077497282455328755150837299638042271107372963101784673387111659419338011303032689556475966368011167810397790097249479713710979237540757842562228327544128424482925286504159984278420886668924184079248274904588054247794705999762683259113537237011218793106445715742963111020788746448208771420515102631863675767738536848227537201888632175920413756095528550504522344635613677789716763882880516332413093671417387345214780636542620776295517142158581385490507771959546885910369326376205237682038748582543218595755041531816347947587351750880952720558404975593439758753768969761465264524610260501849652146379324783249068215226088495369545282951791913804013886974911516561479985819336015480455217175511665604339820059070980479048795741720110805781398802952121807638806247484488185515974276830463209546804082688920769318752860194425827748157149629583705198633221109323765183055472249647987831465035204242487202867895810604387767170883234797965633108668798897573038556056100806679889432500655824481709950411396618022916077898490204109618715850719712784935496371194258843583497349955521979047082989056194430502676693955533522828831764659011005407103177257818952883746490308487371315214472655421211895821106741970396151716658557854365532143164002659524644096701309175972616247859761548282386453432085023031760061796065987437048707320195894022918753288849470351866944610957644181352014902197647634471159288316279216571524292097975840553566427241714275742199839370341507519073785616011426168461343809206143494272055691192598526898842615866267529132527330626494080821601178771754459335882203545558430801010883501709918802456159536456111705410024171613644303750038816892441605182516641499028848040963637352980539031528945292436975226557470002176441197170310835851506251626861839370230621750776085386750989396151471181483611769097492495081994892913009337527488695360204630338051086146283049853582878729437747712505974802079001883589696670556340263176838466631166374387448935072974360955903040845230601120935833340933963082955636014569501836986088724413607574142513900859420951272477074376475595693056291447293017295773749965862707980101765024132016910886038800270824032290992658188479308455856968485931040851704189037607059175665546365153616235178222674840428487563858877418630573429158838023990149248001017079763870815548241147374654249551738354753847684815230850241048888328914463638741816659126048406200896618715358205869801757168180587636093017560968229293931919175134546980188253147822613266227324805648172288195454040777868794061050008269879478142693326134164259012531351146085984779580450174621002465297303701095181605324213691256665513527141656231610908620605911412366255091158826428127357528389721565376749221308514960096355067578091148439437482334033754153040130663859600809900901495871808201181805311825563269367955914494868518207167238014456980504731655173106910583658624633443533906485627780323389905339287320391045336328656844278531523416225504041770094540732932320377463309722132353328695145136478748419746831554502027028025170533712143828948762742917879714380964567524659789918409630465622309222720258085272342059864620398642555870834295778798006919655018979480390430713215535313827982707017162922668913805257610213985702285111698249899074835078950067452664266889341639738790044211055537029093581161868802874699383681877298027255190742877996598831852824632183994740722004753051534496812043647633857780926050612438343694777409733170225014879001023363960552414176024336909024312639480843181502311905027994600093864537215072848510121947934419229896445588460511268259777974620882815713381331502094510219448080575187489744330781649188082570954911628857539297637407211981976727729823707806039628746409281253411766828054439124809306598088516110555778135515019865437384193383308547632505923000202299657648305149125896477207525808318645298879811031256488429643331210669246992752762255545956562863085675548951366445337406988152036522095949125408474406254855940984362427317288603249012075611090508117943488587271651735809024649209509710478338875497233126482320058701577097635764186105089273738381296924438803899359345023563654972813938932556507101086328773724230514909342480097721699496244792906738928972743880603988100235968885495059582189573174695344955999265392877292358674772163228115118323274542737565620101104978337279117626972525839028698776587038281894481484431019650702432143842852773634991965669606204646630405392047847588650285060936176289038736968757063004262157644272085124235944740121404548619089521446881610074917915156415692063364219215685072640609957548557828048115389334215295159316424915312358009602546925285932428789166192726972976663444418382652258191718049698824597028495823895567604238028077249128272318056341787719385756065412923708337260368859094135659724623320079934929099839951592007350450558133042652828087422042133424872133211086081841199327998130638001120270420532070987831635411665629127422815787691860985610274685851512523609117001618061662575266607937438142336286227171072857728570496774099989966322404766467256947156352104229420197103421585494282070139663607903613871743057003155820004127894655185076244210755899200199690950275355675306765500273058034893688391674353208509867049553821169013008209290992305620384263835814529496081284273608676595209396859133265701951504226837307264240423114659734469257284456896296389146252034380984456664904500269441326124265758809504582148321823755242441627951355528341808273942606674978045408841816167792539988711791817096418688399629133616608261175726814495181905646120457128591046407099964696056791616160995747323133605413893053882863142321120319538104151091359594709203074146255455268766570307833033029788171567705369885008780420253378435987007748156727940369287540054595626870282676665514277516987295238765733399812064843818253270249253679994234076210286752374561881137199434071130352492261027734753654481346348778167068105667778613255639645263967586995996581085050655422315920727671753954388937114009525155524860745269122749747353107414965403087358689848722444166129100629480732648853713766226092075790626949813960327522943470569436519551442343089547860860515551045142668509836588672059053984075918144082742394086943809947318428518152799182578921016803301107559471120340733441467769773340510224805934115634627443861861449618888532983712340429285550451678957107829380991055008681522766633355677953714349070597624671769134094314050631004586358710493264817410609104319037663736055120915399016428464777307542196029708521545982455052450111388828312150902728378987881734884594837160539396132375062395812872552916375551661723422975063443453448483151150494801952862766765650114751666724117620096353065384041876393154625604021583170208226892947448799267253828946282598803911203967285354479527858505299732019880691857598280174638261326429182924226014208892010024919615934543040548451701026002016950979070029386646309806056705500436107618237297671811098060369754695690897277633546115556849883871943624826348325773078903613379191618565528229250720405310455628395593835807831578847343176212564297240825840941074234151782407195949968332157767103517022478214471631912259656068713288467098930668418254709048092734996636187729476365296930564122090346136113568722414257157617182716212207306675643049643317608164288278151146986759198093718903466372997925947809028561565145836052731663231727194638641124960073579182875285911108089941262620668884678230289235907024709331890450946043960773476989617732462883554300937374441613126273045654647238844626243528914276607057126613193144522454508262497138116308988689717950884731098666334946932490376492589385753758967998224144193938095472654844199872977497194417972555080284589144532082494721299132429882665505832960569472459744067928166189948096335901307827460406231690661851319125277861983599790730073207447793484169695419942216243234157885347949773310400257888332713738364875758399504397397307811934768477821184286475413325303959554629655843688717543457063957994342652261404597363409246507032724670287033886379490218201396878500234633039724472489949200476641882746000842144575714391498162745577141512466311005341657857776633865954755119804685376457797906589504670257446756099049548018759275473724349037808956977636906267612216226580255453327709684003186771198941278105380627132579261688759728167178923785928776858810447376852380857027406459730678722939330657471570869696621460977375651503389259219280729658031226876701111108868103688088829740967327171649092320016794751084813266989400855775962495929493171967091905510551316047229669560883791646638647573396057276744209690552617393835529691454689878673121862198132184267482964795778468766715948555890822735611507681183268070409850590251990218465945273675347197078349146345638737741844660468203521730916671425019115639345406406153775601427028430409153317824441679720245643833818777580436388562738403949154702587615892737124667220203568802772621932640059333173794173660840783019741510205714072668183886491220704899598689151939425216201464836958728908227324727238128537068750853106577672816175659005978232877511636330883722961316011500839067875816604077965565567456916272304643551565365025942643428582360289266011127892149687993803024717013323680615218890347194299610773610885013177038128470804140449125134828739721463515613872807973135182836424486346671068627765207736042674387767437399104452523546033011901734921049804133281210862660931486045236811707310199307096192509985996669419679227527448485943575571304903198579869620366305295154840783640469968826183222287831890467543302836528855327835902421534819934522059250901738617621724962083400105062628531444614033758730830366330859107905357492719182905466987838015958393202212715930646761754556309806403904089815716220299960045299709685077252574271591176376329046718371018118370076444862868743376640242419380725385505183558363430372893202251539746916353979901087200117027214102412322316243743857331831722333974445276032986859438556047541671981928936542506130108081714241149773801411440088003115823473926744304504781258843529272141523843433584129482711847153815809535028487596197289586488461525371066907282184878926886423814186675242933109074065724843926764993130373516053251467927864100410427684426754985517451144600873034369278143913243377916329385438381736687328790194360951398542474503679271806924317471139094332412596784650824881402889114655362731136881498512838395832400643472966053025632119231250436530759618842384332625411010520814216713533930379308516519494056902815473392567784526087990718299244820051989880733136759439300384730484057899195841332189047685593966882585539327052158920506978040651819980246768452516052026005958379556608215194560824890410014957703085473060607607231275728827024753709244030539200247713898935487372872283149433975173462219391257062646598618381482160227270090168042248056777520486472468040275334065765072508532227623680330510654724218620874982194782866469827759609479407952020579222899991514831717551731938100180684899021117793161779644052559152271145896733496443875294227834060416568999139610184399406929213818490086300288479345561918955732214124281589518996972339696933686230791279895647509852831092325076811480963068276988519533260652315209789870623202305262443170762425765340298901126723041937179916741229628193994514914969813369867736620244358823467331958757189611475505913828798523277625886535995440256373055420076878472793064101559654323600120678064647755083974503293002219118208219855477846153018267220760263648079672801494144877693654517768164661249027016253607756864062950659006306177159925724395881789696642766686203423011093849688485695301770204286538829182504736238424466348586316983023780862043499478728636420038961022852319681775719451314389421637232754976073520425617127927255886682540685661439016553043483530567497953900886982436407864333140179361203719001238835576159428655969813117506164343387182370351450899017282095086647769135875213464692907220151269526776509193498795794422358480438203040576083125004127125171801843000894956785477199044444263346732489787137692382634226347212817916790702688347576730386379289597417692093034757840141286383642983178413526719702169580462289120744387875606304727432033751630510206749559590326631427229331462126606843127603799171853029492637757727007086878196032333769540696400229965809459970755662876752015302378216184674813472093312753888638217788804291013122698604874555740027546423969110069406514457815546257973425361939683099600327278572586399900675937483548257839872073000224665444864050676475618397757716699157645968354299761793867166076379796425142943918630294282015277535209538644161146194023784796283453575899871884452083819877281041419729455278219025517596043330080344307625976117045671659788007220425498652892273054597180758826259897587443488966269450893929570514541757590415850975978650132123943271099133810906041147996393427991450239289507422594126784782122163232682632651161177520540011655457254997963726717351996762121437696750033229716115606685320648813818750414544051460893253129310089945975353438866396362187791174727997990003835990619819971595106256962972313955952757560016923969823726036121920514933477565539118790795956658295596689324346233544356546276505328973785119405883229955208793763857077874648709727177006650165676246646254424450328276263447368143824077664159660091260235473481083045063127653479528550293903795045631512039534465112308980736023649947619422093637967329357479848514038753252914850058419456306631321599941579594403808192659139094940444361911066026576898114765266240622090865374134654063752065572363785962867794924938856531364976032935515437298516922415911766095606657459899366472499010231497529020619170474511087285951073368851177137978796843809937452233973497780689860499654273435664599339092421100826606227358988981952012240263886009499237439123101500050778968671257227474683831740789670980556738582767781163031197779689575531922031634929992704431756933324867058217199165820702589657237184443424605846811747019454117237959793631982098132092713578498316369799601512278035816631726652869221361158470161327587483920407649035959816490826241012022247583443533445951559904693850434424956108382369048266271466143995804206579819175333304091186783993003407617063839960792351632558164779991822710586230010194383311900399773212202866885419543821767792435355408589315451943644207334708370299434770668683238908733244575052156729172991048369759506812657233563723716627671362581267860387182529261105089342871780951668962703081011084685958117325481377255211493990129824036342051240516232651347287428086624161575750347304611995195651991504246622227947657370557348093674592167605625726173842869913992263043312744533250509839678469694073824623335783886003209565648982037825174897208265031293649792984362626974878043142502944355410437456290655494043778170951110569695967053806962699287002124049927717142399147312655081262963674414203745010332618861566428231550618166683963304600058177970672688409061426754011486199544374859675730060583044614947088289779261671596877572719608719124911715888302042751576382756231800341867831852232645856646260646246848451537882211753372976203237690459903963003489782335037341871814952482496159717755172535869684610144698200483598364699531766675755538531630331702361319685797860834539089892645568262751326741946099740402223398127479288471948303975078732379044096458568503740670657420707452492777271375581848140462439709187382741596559159894911142418793768588855646250011183485703258509865045425497272819862682594670947395601956456347983862927736024103093025158908721976563937688790004021594016523506049915593985589695376833417491959407849974882896515360166977536006261127614081682209140191542424735121113983082176839651248965925821321093712475948218134171034903484988160489336762830773505240158166101748088057052706783227286101977023502984121417838562783487765055941142094763456304112967228327657911978063755866462184110042002115334332560875213870913071919241717919865835940199996104812039244067752134644711989807220018260038994993324317777347043168499303827213169804816550992177841777494008756001836980570858757138134957192281351263179440660516608223657389269226738879494931747749086409503389940753974825766372216658079272903549135032797877242879371287407412400047365470469626703552373667341677453677123666534671528757668158086307202156342400009985118183640010311432736665428903504443051362255448017283213077980392693498997553473957412063736604077291094331301675692521830841115865689914103181780736755926155863080907871849690910762222863667658273248139404269356783630828654014769137512476403434136778219677506855227325151666898016559969944621577424604913607009091202534029755448984249086823029213028369763477075449761542954271607035932369876948239479678467979441032774052941675340936319404263640327868078294356638107582765385314982315029258496402694223919542551585490206213845021343940255253036525233185454460945683175199818530965935649372967319786689709977223891826359699692185404465504805576261393176167230890972284722245348951082011361328085319466119176807456214839116058344841683979405767490947350366976141476446437332139311906472188153678756941964941172557413647989990087877546568069338309696732477727330934257240386084392999552997389837393243893046685318017855748827260073658539445632548408014982670446734065292451183386720215243903787915447154658687043047071088923824930944349900950583267037326014293608236392424497711872574242732179514858930988445826557933248223954062723786204915377983873384815614627085697242312236842536364172513268086495730634356307564753243388879249692165937530181232458069488066363004334609794025608219834281442548699228466532704850473583537003596104982101472822134496009841277127124503349333209400398747731651263550919355800688981141880020365028181735229567634466844179022057302389033464370474165389630840591117815975063640857617662922957320100679522218822491504175769850439304938294821537601598650534437138790198094701692150144779173711224891735360637368999156894671807355472844159246097612483673241949048088419954141359463271106120003311699536719890839179346612454824298704747077479094935297616978334842091494305087273287722119570678579222981691869372619065216299843481822717052942728441057926868683586843571026291136652150427008647251205435739562423369503753293191105347936365273688596201576114118746556406739367357439974898654658509960311680654177824356253038240277233397526875444256614991854556257138777675117825501547442245640656027892214958641091773062206489068496929691510213752225067557016568752411198548902203586784894445758686265742846819322155032014835727219363353246688102463047261503821318410659555489572754365102965761770525295452744078642512843692475537706243508598242019131772591004957793358997599911353474862842698916108349359053610719806560972689544074611403699973274356246728461109588214184226519985354904877016716410777330419207327784457939502646092390398737164493650028801430933131556726124440398021102256970083502324206142557783227880295479066667165119454678163540028688133920994405288957354828296251685424154033633719040793955371257809683559026430388016042605907841333221239926758367040418248897793434408716947869122002913679162720308004611564954087938935353662167762230748950531060225801791005324527631488165328915203245995684627991003251610150805091633326626125160090899158291567469322236563880505304050496135417518519654800749722925077450213935517487224229343924116247065030543316989586996671980981543027008249995823399184180998674539054950441306409678321932363938572933499237916760538193996541057519348714243982393510288644376279862312467143123842869593542432824769491572706727427838886378154500776189747083997503193083689222661085907140867174038090230500215132673787304020042399585450838530058136504324825326843452852246971296014252498387482319593217824544782997156507983035260113746013538911605364786543172527514385689349654473940423321872416521525307981392344198494902317157630079530938266272377359329565747188871150466717658206565429033810562695192685293362731473981835924902000999208131258870161727990920754037025187187393345382000188507300494952614373522283475239658753131294855493287591721849406049106049252889431189965165319510696434931957058582361022257174708255605709597605045880865344625938265280373720785815588816968506558903299972184481964098951862577099636160217962425616762106369928856007467417765778547363818726495736220420746732719338871994011319383058811569361220432933233378466215057302634547361327260313407051256961456980875661683893166984141246884562641966320296095542524665388938050838848106113185416027908308962051272597086663815669787456699650548543811251989509068145479083594193828514531386523521923907494681733158156179974218253366712770589330152947899622108198877548557117586327372808478091919130420569718898111915745959950591248424288800561448929305739200970403538574972745117923315359506687132214445776739890072477439771982987633780037009234602966436824910590782149078961928248441731313602645764813997239428044367815351921975703946300433913391964102710988462558724597369720787813354831659196386342472726690424556179842495678336608233382296553889904593849943379438305272031189019906014055042196717001286429331386774068652676208100633652543192356259747266407263656930847035862457692856920478892315871141194488539963993953595531235957915222451592219304883723066739882808279059438306803827581552567679076310468357561848463623307069304487619548677215919935780211850174015828353938601636095839608744497929983597415469280719438703748625963954879381902239517834670242528562477869653186429171632278317571255960344724764277220569288783448985680032379701267642507712281731697197402650295569518808435808346898263610074804404465253003205177543479447222659730865055350175437634791822494621302843331580259852751470845266194134268394208481153343668178466828101554613585787075660034589699346248072084487018804825050898461191773117187629865980756732552937914450641828807188612564731380705409657031082674224397634621900082005833544227961979904225017368026489779348692204260672444883557228789258271665843353431098124388418378269523122864476171672297767314001712976329913712433111029979724685381961361535759355074713842359280891851419070363988391748907012826059976090722444319778576928249126379341118999246252446980684832726716498117943921699656046051114268467320219995134354961466002700416622594172624233403012417229667380391700548751763373463956378186148056761352255700986228779905910923523042441878525966300403973648667502297441394378633255330805566499563367155001102362656816697706563153834799195269857499661112686514600737119010468725935886961102248968769903474904778985502114770084724997048156259382000855178401552191634814453401971613094984326474367601356950149846530123067749580029731930872337200159482791285760006380434602073066647215596128474750067546378908876601874747195274592411044497989505023893464801851576512681834163854887616856008279172977010516939702382125345532096165956212477266184620240832282343103920994924570920830859048934117427969566302645482120405040801631938779019134513510791927727455993354132892185361307138637930969699187738287564052741216102223830132322718840831877945587655528136568401096486282354420841170403505176245364202007778901910630129419117046231482382031979391197136330405746382786284717853177436376172760851338967713011907515238489962716866458784675414251713124916019387183790882906656874471554269692314236051376873253619273248056445704558810522614996880702624863839880347210906589366220375478147611606885443053220076479305109942703569928273392860635359044205491644970232704437669397007418382633658766582710167167551940011354062313397291824556528199721166291841118717961074244090422682651847015659259763329663444456535227513662428084583586946843381536670460247257727561020669979687997322354222095274432992669771474505568772383837272314512421118052995535762874400392517880902713118864531678670484565643070138376157182109421316953046169714129270336275819676501723991676082469575385954567723162311473225606955383217427042689103671063287870351185067234016281641178600474817065701952507197431290577278825139903679943606558908767924118317981345370997479489083487113001670703470330149725186739406784001715160127635357045550229247396126928867339900771371921637390558147369122339226936355292988103576949835318072556956784671724033041693529078552892068912067380186936595687082565823294648876843853926562893882830704467360818923631550152751126888385037253376998580736013691404496499979347035602629801629954125835390743766202111889369231237144175143437614688538667167736525599646247798587402940307034480041180834050828952377087655609366524626388831117747609282520355082747731743294346434192339924210957989434187366906842017859157872070725147105667870671946858795513891532497315920701586405064788718788971217678627506097638678200039655557647546661755431888221728934322787888695248473332996065320087761509688281949881700270013956615413481749346864879785848289815855850683913039855570576305677287986465603467094339113706455887418440552941601720308815209745924862624688868917239240089827715293810812623657423332149472349773888388159215445420599747282626378960364466113478173348842917090687700607721630083730639827653487982104439847156106126461853446974731415961401370032698956510969291770787836030408672562636640571037991042987650418361561018924048062983209442701724326344040924408925614671458385710852537884288482775059815036415517535541557648916334811953344987171455890412131847518390747753930280667608740457020540447386594648123744113911152142089280911828081897335370547295174147390304164926490681803509028412813425431523449347830802802217306067466970883904236048597884609966674249485069577051677861921908874860597381026772746922360529924500932394268115514609835523732325164112198266106600562142147480607590725521247967936613330162759584154474786787019085350685990338377556100553216790084751574635291300431649982921713580826100962622054265452173732277903574954351393787587043232697299240167973195253018013350693782789822544508013497554844677699628342393538892573070596629536016114904983906301699632258010894108079219233177909477629397519865394583563380888276228207205062042272811766893121844341471480565807234938250037018753956902762671330828783907759859914728925756338090795524769409392975839744256101178256399025442857339291092830312289046546471359491251746725842457040676766652642115841461436408012571522003904215085366751501263251161382577091383622895638334652401354385986201107862987646084404779130066026920875980344085017418744031892869340566704531349573174964786299949762822105185243595397572683061934331492886880035193732001178704544982787863399825773157065917356092734951220394128967028493057930575273071610820941312898787675160089691186873776834941274706031273024418166448091885770147712212749799701917809325214518586960981890152816601947125373136093817447141629079457214824388813460890875631559482463351253954326277571980017925052640259029457586807499701349868408509749015909533662761706951758299865904059924905425272063078785732176803462279434424146353748199426161151004640632461314568298145134945766637010902119950979045230149810006415313936490140878614506832233192058646903784425701946161763256927131597712851725876792549630304849613145301589562474873748376770276486636701643768972917796622481437617643041178290951231201598669822944688257935934611724088674085625774281776328063712512914215026593046027388424138365791132160731007161273031056213926922683355712501779479057121714352364244140629701898194673975788218364938859038106511276049764293654293439387374698831931505725139502080644738890958945219553409217131645014981108821143397031389560575706325711688569514583819967590952103573425121542444563204353187101156540537917019451760051737725635741267491921308300229791202409009078365838123877508542800171215982783236508752776979033221776453961115365308857904310773540964215837107750378985163391086340181556691347945223303043199626833140558387719071778776100490730068415960831258996517325091896583607983459460176040496937232220464477995109579602848909981688461585125228265195000527116021633347216224865087677856262813173093324509724268330210218059101425847753810601080325352277305849358878003519071578565335627499097781737169142705487266130298847956277842735331185661053902156213373470787238551825817525025459618845636407182426512410709274521394168902705717360668551549506425734395543481235790220942123450487068073310595065462738184233914409855479590421481133855048549314149877525872223147979883071212442621431263823013315794721787130232797470375617850444254209844294388316238505241835031851533641316209873352192604300132212777130401885367541849656637741521765874805062794490177178545689220775248385665331722702337865239068614899695263778816561052329659810923156519209110961590091871609728979696325488682776630140032285494403372502818142980614654110555972968146294177339003013669127027123998105672790089653595107746635396728115391777097077572495145687427899103448639698303157967260592823304559223255355356299606572009899671512723359685390376536063062083858576633461177666702199333627416670609777268218197367269435682033944511772403371593835370279635736761467377398559225339964391586419973387464690851146307055866216133964490074754841830595171485368719778585403140209560395932862359525686716068255231230721099174230286885883987136545447029763688414622962729021182016923653425212195434763443609092300485158220360198859791017065182467304005123321050514691028823563902248904807342110309415322582190653581574918378645098622608903339691723430204579555174174000491161401796104729655297291853056108377940814400383668428190586997030237198277105545463887030797877137627307059614848120128457893553762335872199863534374287018788193860035129812449797972446836382560620046748921526680201316988383991831742435243343833145437331006560424754774225328406988875360919385621669987169490629785117183803170389632769765122114037536395757112641047916891041795124409370709246246226218130230416717644626271805263642953295728375498456729094222337683719511371619317319959806562892886331496561551090832498031609707697853008514955421922305741258084352115097830785471450760949087992600387027575411501126611826215511307255633638115084062196435750043153518815547893615708867269040865079766434118983960372390911647362742752813184630195221705422328171358875429801878141324050999927324841313337592029637974474626983432022053629649718182643449690479777585238978074306048483360524168282968985050951917277823827515379301675736122662375033856643492026309968622142754700093830190673465492692813833542954873036957565198745900098610968266538203284939654439826757670795196736019620229952032634796170178809764923887612988489567411869071779923463242061905115367246938646326287548094778955440335092351039005043876019239020381399659608276180795851944857152478963372443381858266803778526604503532577573144367495787440666926127437909982891215486168994924875445499695324579180713751535772525107794261264873278781551899679647649128722743023367659123373188785979925814645901844920032871116266889861975599489980128040990070972722015463793577417657026588936964728690772635146902652978174715995360953387980465926169520427416065188956637253035498336823170449886247577571854452542739424229563427195942794948356410600263053778036918616710348281979830083801987029589603209747515357356143000080595386527688369209964704750761866731052153309074184197300990050597622200406433302461622968329836956430099908502251394445767797606600330944683047163509854029492480163942019245321134112716305633116975709555645391722432459462968351623305743928644033593177697943447933857294255512257783722674732430328830607150370802555544009329311163288290227845772048618013173755215243646502772508716449878770599479307228789750529267440059907272741370312721297398639479397223433828842031790584216663918933274754387429887541071911391743997840440865552222961270013377542990127001122423220927881980855568295246573994922851062147345674534057083228736524444616102200032926296334775250588028433541568506012238664180361984187966081314684126121061881087578742145684332319356145837231705767485366224041506714275694127756600069354509322324816276587708876874166812991617966943172255951829170959649047773079251781349909371134267608238827945067794654890004989283558888492908021336064326123455736283666180141405265721723759999541133169077597182632531210335810538078234159037970880382126692197699490351612855250533298537563978220249684588894984179761617298184235693172716431070738617277846244040298514395187052521805252987839249610043097499611302604880685166745459436257379674971723052856397085388691794720877919153521626749387043753425060497242944707535847739904177085915426432681589902744643021791150185008118345293361508418823907947165576711626414671999345639004078054272210796068936003717722412761934342992031198286022920474363057310048280993095468615066053554350384948265159035916062044691272275236380347521779743360350160250717914603145377338878056192259584586178514653392858933257966422805265723121088832919030923503035711878404807661581893442402314087898338841029973017712890679151740872489251225265753279246677146008645997625328599343088753331223421738844741706569094380589878739467989894030878895401708791606242125173393418983817364497719417775547997171457108347212971805294580970429822698969678246708925422662853576826000033898121478248858200535974681889072491367900447365136059218162666244892256030394956391372225599039331430858100338985587083449907825169780283092697429557632862908368799484370434823355909280197628284986119841018068605973070441058129337961781804340719972925226978941687365927444198567191906415142682532016378486332627742424478757177775447221167489112427698432253054790492450004954873014138397461088927171760066910774860231373007742242271262632596846904234977960539946915799306815602112366937002528336282442969965690162210660111480069292933989844965662105389278560673258904843002826404607972058690928216376929361919861959955744180448981981207191190963612981622368902017543246821791072536397073812552601113250368359126687594392278553565436832651082087464978539897355810032288411422276805251257325509037308325169842161875227481854649129843607760881578799022671745171426393987626101506033458595491293564014147217310718325091175884115807066296541713450075187643035199469970414420409685235182246092403717082797727416675223191099252241447114979326890191191422577107170600452471316988550555896648160533955521992975682192140720996587976957501758857405934707916718412697551164929525558450237397075860529927089459348107248422901528742865616395623047574452853102352376627132119921717181926008788461183566773035191478136117056051186147117746936771766242678780700645275888775179258107519210670065202556883462019176327186930456379268031708620591095224423048467238432341729784572837785115386668145663817486724347698867974583690094032708537388322740086436193340056749132805801461802535765251392243717046363011979409422267111435614140492438611734055992983708562559968109318351657038841551439381791999635739799130577001869648192037365722216519038219284489666484437872734367068226104569860274316634882593145632952493487599826749484592382982236822548339896442740717328987200855508266280355212380614679603839631845724053079007078631351725504732187761307446034871615762550328889034714910464625439406768156486175317385434694601434499394654351371168449295826920034833906337677555766223370640760183326323021892011471313207056273895070978296985890066729420538443376045855581027039223815442726804897114930890338598688237077797279696769988771007876301044538617951669418297872723345277667987224062454248884110662756733081515046777387660553872174635503765105002374883317598821036929542889344357460095753428143422387835244134338092457763757593959733657479987966954870444584082634576109735089890773052889783271665653928678551861168737173028090940486021457353112946535822748405873466036347033102985105290745751342326558899843777904074384814821417003650764173544640754282463675269201691896212432145350822045737689307538654391252182525139468391704161400595300715749663013010754528831582521719225698787716437663653081122045257787080095008090439330050233915340692589372739332898987191749975150265158191552693687420786621579086005137121956426739124186429449096644864989308057226248326005882053251748063576215352754175534039190091516147393630955080196247237599831868183315090958038673479210360817670181242983763867920031832375183547373967551455854018033025214664625130683103358895561958227760663119940684571180154444422725381882774805683567876690391349249789197203882274490119846841661226528619938353583444424909770749068648258618898424975236512249925982265107678356129774215193401373722623602541118758438058837295390511259794896272079817650789149816772279666549560226798296009237305312037888880861733808569923448355510619758525887328819213916313749292451508326079023513452001569543328827586219495396485079849861983993941521396077114209325768349938780975764143203633572190969827462582300762424458897530106737474602456785765542899669257553299652462586814252903308868594744188224589629582082957899131020464933674576443940218171610906870240343197165985556511550467903865537619297561243344046148319948778682557053213858674275378807120200848715175612183659544527228415635835774935716336161422055455345186010810946456431347096086607433702722667371802029899114215945758811568287266910635733994963330494489886866235126270009676074117306956129673115389783096403210944344610162929533838001891462253559014198347330453175557657749202477939611075520992036427566710969645817059949050980262505574840271622881333209232724744255133222064509831062821147861964326939264532317966771763795789046155959805138088440685393469300952670387955313274201610004388616870204636732017876159682900107805758760791986076194865194064138639496990488867220264698239923563516271401342271199413833847512629667230251264869265488987192022986282805215856849552087783193072746882510896221242075461053304145716152698613211882975582827413003104247118864499819345271586630050306409082600934473769042434937610528422411337120600479202928585119779400148337700673246717139482528606822466012708377736880871852488107708655293572585267217979791189557180652298794983760716376734838997418503064421963774785269448284745589127261837515970548520394847365094197887187040290313035771961191037672913367216171862275773916940998042329143717470134273459861375149724170082888059007922095556950609899886478517085192472113198483294149973261363658395036099423700820288736063044806052607326598121806666857929325730842535285606792307358473617724254244006490846906194050219604439087896606161406080533465426479652158474248129612983130620623173511651406315367469381192802140917155271656668898955171944878867603343939687825731320103116042739829983894928919260259431932530438964287081417606649626253432703579444874139303326185707950170298387919042756836451191758524621694812736357944566322423857522040997247456941579488314381601449111779358844043818397193383093188398737438321454560885877579356628048924071295874180863344725090595561011122210433527651698115827243696740912532964586669270662875165058053213752067520598282985709565808783758917599711180448968731669127046052902130039673705442078913382348634173783755907405738386115951385676659010108346891256990751368697220271542130983585835145895121432182649774164050776789613297877834654672101228919531953276094413154977830061157412412292443156684232088208806167704583032322430756436986705219212582860259355386937838944281415410140232993143715064442366497280020478974171851106809752261131375938922535466442311185909179271303291538543998195167977190160725149171099344335621130324520357702568781135176033572967258266904364776064067743680394313303924583050761210200540206540605349783904858063995997670808934147358321264113469788684707078588453566761200859174673719117686291007148781201996835977480560554074466452767290243926562702425624443190011792264163206774329477667581901451827962275511676358645433056121849369660701869979119613179929057572173295629479857464134484910706874236132534275017348354009375010127399840710590194460564581961389608887733319148903043983595524416553664147022081018809431443797041443289947809137029602577656926943488914619270644348005916553752083816237757576761313848575796559957097685481311257255611872297729814213132771084228315026895692667639553786170051725959631068568955484224768221382586053061597874408171639828613774243226154613604876259157300760209688903935725745716861322134277274962759550601027519413479453577779428544700638340950353670746414271722294803049900301071602972085948895587914950674641621238592448404595082514780606534393636354374282766874227204713711731759690996453580559585102223848862209064813905565737629239024693143187746352907795254590530854961799009301324842998712752729235008835767300448808356847402812917980275481069242671507899074594101800963700699073428214761521755526650629272740760103555920655931681839666900377596017940763349973000663868745775702577298168784077745044332873890839613189618019885859963075986558124382886900633544021604317110263923463499158538503735211819606081960190444769654854040843997689938142737484766685518748766791170776231260551353273475968147939791123981266296435024642558191002952524946474214675878847382437119552416012539082398738396973642656500517611260158859250232347071347663102613552477811629964314742797333802605847495651681145603585836287001575030579819327099057290023639839385019639198186421057375059982233638450444399095784804114017338879177093539458568468884693157692878811932113595249901598985253557541286697797465740695777393024505014971683026714251963621679527720878490050898744548770071277923048432114277635454573907246687744665589571513326099471706114442173917949386458746277179703488383068166432718487551704187192738014123524580676743394718756364019337826940378699975267488153291387035849398427538660719409923536082971250153943692280023406500913684194359025781246520954726299674288919429307612756189401526588154828355142045291631325407376479434947227973826950561386534136427634894862963091452249646765460170973512975020790916901702450170038624247685462119480955745235342099955663912499292197196474252885352049083253359923280941644646315202673590433904391957723300631798117298542630480036363592545840492548162529229453546935469530006009312632923344752704919436198165933411134462658280245669263982858499378684846613268384262238327125636143269383746065843024599740396938102542834546616270076181461675303151346954993808344330445978345178896006874350226894305532867823343530995603160245179552466905918351032916543393493619172617530630210615410489721284793075126368165000991992103860455818575485450376103269723444151394830763078335078268849201533955088827035277082614267337303854177218435353171750792636082754890586215277997052293840802832691042884862558762133000743138512986960322507516155654496683815921030045454338253139914799231463150892512185667416115678146678008116369665236567387001322722738367033946508591290681436852786173393246674040061858959690642435718572984157437428074563389610952014625490831596889619929456804721215096885448484029460375611454531736310247510505758612830753300550636944005486280591956526276397789139752046528854360898898087276970637201414581636639095089680338887466071159439496535528378369811981531549926709822408656831626242983329236376386669850850014480754689457369927046253891132297449497803446029648826548738540735614441997100525275967857750714314093262298637792829267950009486682023235606789696244932821928299227868436845295377410379808371378040581377133607525973849526395567855712806915254056743063383900509683503996722928800774717081630861977582034186522423927105004019968440831606471507573390467815598190031102289711395246603075255033371173581927910613006010791921587184297310007026630342932284826159302329087413078515897508397675310211242619022028951376939956058552797522946124748491420359023752242729821455140806833233388512154492200812158402111287919196950820944102568499049590400727352864796246475744612698809485416482233809123018841841969693910302561042501778550721558232485464392363356678697356644145576943513548464315254378467503588362010667054704896258945125322247737701580932273415954126112187170718299963047444448793429169527995720965161792291670009232302030364184716637688437927895715610570037675240226005977697499190372263950042959001100671539371387446990220505427766718486548544819450063327749747813502322390296257987738421435121355837646612185747884389737817763535977236669288544299368550084200326564462609466202032094792937732321825228314142304848153158074078092641765873752325768768467085560060813455880050700152676876314221075169618421723773111875890141313202758200767059652823410395661067537520223898142490677352093296566669608543427826490170384766935913551995867378065287053938409118270773520118712361397717302721736966862111088870351167648351438610597818822725775080740552886308898212671083000542480103237757328579553212317361865979840580635226875892743472878503079723407935167161772410997477482157026310187648960989596023154377997755896148731107903717345100967327774199499103371541702791162145814187869865615568274242665970388035125528123875776190127887466782208008813327153671072837885618587561659080067898775626336104429166691326821594185800188942198050915914523167493699050743608994417133346033227655990404481338890953617199315944499660968580951224621486466478905213406813259198017459722566129429210680174083923153134145407727166392874673471837577944174492542595565754885446715930650182999416506763974624020553739425185490310811011362811084350736331124591903951866884578655860235110467951350091522843478438511436656564929661586949646124671110209700539244101195646525573738992451478605755678151917657390382677369471520747641784925013270127189087273504295757452911908602438790313288544430474484265437062177967005424473595943932475509189644861569770139525955179225070915761086404985336704941834029949028333556253303431790643676867168240589437202783890924973564993392774139872847551793742005310169792814874841457476898712258420898828328157421657191915766013907248266083595678059684962993452735540147064869621332608411572536968951464545808663076937617238173924937866763765371234867111622102647200186443636861421900596338597620233244733905906971841757588782195841483993506359869874070522718665931773700472144198836515281232855656988212826427455871453794117197701199284743700677272639098741793935496564369875960043086609006747244047985533853019571496244883893504214342771496833578910571125129011352378997745356658772185231491662486285001753208592699146199957870696564344477524542733963803763817934221659542503646434678812731535030133962841336237362933186887300622066998128760032543153582785967395748382269441667847604634254634936022852225381245728215742106685188480760376857920740015696689644774925175896297813692959446286146840124162772046616360015148757722095412043036559621136197514927273056664395397307199002029117523487730888726545709903758108193111703681766851827017287420651227419697422799857779407319503042300625695209053395514590114217118009455497101006054172367759719920907908191792490617662292435186945522010794340427785655602292346113976142734370350701876989653813414792835878428275503305933662414171027075984248686278688944067489464929157486701402533500816985513714129767162117260718797840004355674230823510023347625080517843941396166966721787098314735048395775435993716848759955618636121421942847642405374708047512299306041717995958466206413059344734623441920150486938937262161644076452439758132357687281823356416425950239637870208600261752457545944885082550771640834179574579697959344524119897748215469772908471191771934102170743511411391083449997428280507346574246500560823110249680492132693160885283557273070556655681331836008491931985550626504707058431681802390768907855774148495578981400700878336165181871968017914613807637982562045371040169021695534147263076111528329872848751799464309417198374322202530528157708529712068458448290111582596361929577617839196556540097981575975619749356509605704115966699239140784865781662645813396596562664186856884394504130560238959062357161175691996366464896250332340070194768029799917264372646348439786385665042150684711516838554092948845573432135626420919106067148346178365039502270508844802834758544228248258008740288136172841677721415019039901161089582533913281614760402185008391562218559655079878360542348023242120709632880294851294116734071814485416261682728796201091655100431553144359878610174251838158319356612276915098030566348060351062071969124447700550590862637985624001790055061819560830329721959689051994951371687011986056176635482623767872512030336680506507602401706351732147981651424531891481698216482507397238397737345282062409508423367640127758038566837284256663653882820431580583829488467603815762119465601174750740895690436903468260847073905565846786181254623901726691896883133079523973725301009430905038208046677291099087694248654213289118049653370679184357883130313341609630452918956677862182584836577261405449504926129220479315928881712476132996904629324428759895755152932473067893990510899822397970078146502616564052466091525912488036330001668041135494281964823162795019009428633120149722701772603115062984238856465876110323139819730491405502437427577523917350320162224353782623487592628346211715339897249272685359080078035863718019392356326241018449173633449613045066072063830537214267526278665236187078660699373431022477102100634058300296604090424473497377634447425354339546564826481890975042758761524681830005822187161745272097423389889735481842590321906202809199722759224448514802915353943018011418876229147120857773729535146302273504444473914851705938717393406330464722864969913006341441651731568568280641902227791734772688419007317658704671535605654670172630683469917062386566077659167098911910291329004950038334130219722263855585044784555004981249618991816263038043647770496325397975741909241567825344981140328045136118234497239729056044080868022588744115144774078819212861092849522267656700999772509229117548835940761644498994332920950704078140475838602716587545075379268677143848876340179563772803513975258438332286792720980654843631537203300406663979842627121808331159881917235852109614123046884680255473653441024701964366148416390674389368940718627125968714229909781258706043032571749001965255140345985214691998871810743246950534256012257734663914378170088600621870202501771794732426322549613373078312081095237202646282847984398841191776849400027119076834665094948509868322557178142951250909330888531091170302813330786660749455958635102242169955752813974636780796456248788808602855389900748298817331009141629011406529740203764636963937772448826594056171927485933857838974588342498652101654409978311021310472424254893280004292540216088737482738633605819473328544799646373782048974642664107790222360941870018726335378404927887813242748507807147581912748571363665814498326707024661794710920764937668007912750627538114561986525272408630384889182626002472133111393975482283823038726004710373126158404351234058175382491791211662740302201607120848748685394538912002120869579042452361773872063396945601573401161210937224312386622759348829153090542602339266875513534758525149609713537293645852310704813401085660473615791861239319454031822573372268347009492230689585387709405228205562105084012605044693612377217982160488484294877670124287365045026541532681693291861809306837328126860936779966094404216153893186172378963150693133737082050292179641341389966180902454301027706618685025899502973455210950856612076046227981982793016922438331856523426570807561807195059326009602895258550096188205004798802883677325150387140149392849259152465551142503640183298345414650774448834775613423440434500544002572622651674431996203031818469492393083058163381219615011123622995311308290220305236933855107308319478091811637385288337375978039894168565885345839384039017414428070745934321520828311790916673696547697020400923819689876816822128382342885445211197814075445387384207432200556580011632777696131871686551708707791089671766999374462854873688150466154070044697540923354067761156093021841363511460104070256610323612246626775044163606965925282242381630434355596807717147529559130289272407158095417135762758181121265508023693377518544315864995183368164327800116039233854247473348171824002940927183346725778914388732319345206161387760539417505856138957717608468197694606439808954246817359532495602590987421607990832244029861421562060235247476339217663027244288032754369903653952851274081825471536225823760934243785918684810304665454355962746165946778035327806303313482758030152541093767023947467653740597127450508553348746269676252268363283836138209375470315897343785568091192479316839231674586771646315105058356801499181812757204169033535093436426033012839624874238079627720209835014265170844778392653347423471971730324901121681828013998598021613973762134784083967641757485860308571874869165709244343757901444955589002282494323528474595107231742022991954459881135621091949208471338528910037829507964224958306063889469989093025564947710277536958683694763758597897020824902142672271811914545435683439775067062120728355397782811157506092014349216120286616991177121167738882891217568496300371382044962188479024180879816695775426247109942926940272615757407080383961425418211791476488690084167589870932996312158584738781214741615815464966109277172166679495797572394491830732542717112737517437170830610396595091730491535156440802588144377312796909606916606518572848340586476933044221026058856543865854346220607963287216567124578586766151746683506160060328205417681070090218265551435179620578941708427678474400074289022255938821946402081828003799202194892918574480574953543401863634649908751867551138467253314333842654807353576422278852966557303431761937556194041232419057601137492732872683845023076601190702879541073063412386119569731873341083711463846544256620038551056778431951623947848325572930603821755390889934610791557202094728072422769239532397760032513431237168468090256995210768398603731148810201344252685046570512978149889873373503167476076608643458554821772892841686664605479617716097676360416517198756893983135737007920319450897373106826099992181760959312152012548237182736929885398469692957206046419813759590347227757501083736988488946115954812557682433929332325770699249362607236344415051565341112870836238417342848053296822590918651244717019850326680726673932833225700532289686848424206943995619311398016934951653752333513629502076990555017688223527985131965059272275062437327792302329633444630883604046048376114174543413083591836336890328855814255857294458944962495911345447941000519015047278646704218109320976796535342492223784491283755849758746830738922935276341115397620630819462840811812990294273613918275372732483717489574779274472836830850630329615101174778794681595569894729948452663759353022234416865162752524318635065036522901530259127041242038545049830631399153219876256637984051078750941307827347548954373953329289355913695553626388654504530696389131326715160545573445346455997313807507287573288743047869362753157473413818743137211396561460963867571646028029744323935119492123287231821160123693707539197558794049825714102159707733980798556843678026412116501006275305381308146948072085582095437064643295954974533846954857499001908278227210043134847021314437966230032036829935199248172332883529043419544330848451700907154274203563985571532904208851580350091668903027515660805335864579674467217316800664061992411996324136533831354631563932799340597391639722700160051282138279296637741951828143848016702051567027808554073325697980562233838801504196642098770601791273585654992597552860618661779084943703555947566347186637644672377051133112310498632185876338572439227041011933331048977359666197781328525022330683284241167065002713763067583529278541667780637852022167802496867647426013988851682389712113400345308581984290454641691822132024653829861904870246041779098068903937084281677908878616383096307833516935433160840529811845865665631408230932151492495966753799595849818819291118543996076261201898689208235338765373553329249882807709608857425911271369171869571668711277488729245532997124319561276488123907143040106698250410786485779149304361172215585864602547394071569860457009781892481174458044114254249507980173656894800221445110863517816513051325630250371714331709230714646863033980025898907605924482909702733584255264456007650563665376322114062345857491952989283766071551330238517393523000792734351578279407987428133656652886798952969623194497686662038543584455686551720216032783814542890243138352451008941546631059598969824421559526654793581881745874943593400721227677957632460072767460820890937696900848495904530455782672779183702683800369493368385711843436942964518264930710200552940584341061998925268282705709475919953866027585721920477866948829985025583642538350855242001090710075434794595965989278709082442502820893078015924847073821712144788652377466693552061628985535068352943484019947745994437356117820760350670719855834805370709083470256315224770792540920669765954866588994050053223960523693059731561209345585441553645431506491743353492999679493515196404131843929357988756819859697697209841893961708636619910274687082362475212800904603879936643273317647769722640587829479127176542711282739614077302129782355165857717738959946790234550764302722719710390199442849122314002968087753199350634384189060379741922334375441229726094989734409895639449777086549769117566437209603301341787441164176172481073096648890576518812432857048184690639103370264603013582137340072445957516072932454231811066524916510806394731588800654312908916701717689280323684554878996612101557007365278127136302952660557907538822602092192461939179886431137953749669504996492991407919860387586760792387750997540123472263490013851202875943072664389662662441001055750890124704137663978040907742995935807602961673249134329273477400625150591841580560302440859596828073930371416459517812816323199694700092665142777924104072912291920991748921070054560863791594648113496773018259618573232059600244292128903512228942966343306159777325663261900654188281681586417434251357566785446127687509537217750820513426206288249867405042407096746578062399912031766561052995101403821041047549518747392423665212192351166188097246440305412157405224142082278294912996487567775689886414760468027817740662131037924670406038886485479923310012015178265778299071241490401300983466616926512374872965352071484080468224507987340235950301668421117187220386287005078114105262742221377991189202458633149226033727087521130467841682346579929531445610799445481062331784936918980384820993879582031820479944101560580527982597185733234158214877839162824429583082454833547113685704908221717723884086713190337919403089276043662209070157172796647592273074308317897025789952886476713907502995446016817725975637926801652970798258122536923325077282089965210136676922707090965363047746992858519007329419692326105025954523673226558213563035708361510215813595585600398258654222945825613555513360940129003823795706427189260498590854100783859970510515246258777666165108972794008720495470566480381582345408567948146328863150478001661595225990502335571115491868751929111491082613082023813833624360092837849238395986663730524843485189068315657042428837769847573728093808292385660433039596423179026649543916048425019326571883305479139987543312820704402549149979905282794938970184327993349111544853323681413687940867323248485489635261326617802872700346375268715196911766479551694253551069462700439282147308156782471149554767066642490782963360983935067508828143743903501398775524562310365940452064725285518455246087146302762016993499424886092829344285021301772938557628682690912847248260790052937843434509955570510792806653693145937461626412002860349381811259715386422389447757963541466855211793177601351854703818586949417792810924152628602064889335334244132026358745970585698173191248143845953611807483815963089218742587655403960234991090821421284456145334008882685091387959482408803692988983334911340644789120594795650636579218642286840855383902850367134236895432500768724475865307957342042928738313475967920295141303005897821267761697303494412966633721212689405340817980699224500559290911118855180463069336250505853940866057865443462653725458888780499763291978765989556548783529879148556499639880646244040403174208576793409264564868653446635474118144793973492136496858669204418797552723598873134953797716785656406637447586684707371986606990411895495737418582336191235100501545695487986480851598740499958097897286397627818571662356669221899468251793031618793044448953643460698090216936623914883892450276284790560956485489579217398769128450903013744151112503660631332750397604612088756926722959120954049442029061898979834749332498515111617786304692939142887368018875426678425157197369073720951497863873757912106527685685729678030910129341508683566008425098450280440928399125483472011976949650174925735674619342554139242141797862501915754251538030333354486075553314431615477653557543356817032070450849662103963318082746001393268490491701990170919091265311958815200609700987658517026776015199139441327186406033142471774952227303949885187919805907867151380625243899664558088658111256993067080121733463495526568603983947635169723313358770133050930282531988849708812763966650463491835475267344096751530983134437998038292003295295015207513350600489904313937609344621967790416131713149575190044303606443460227911099791992934659104385525728942189660130291206037273070830188007085976704013964645648612556955431106954821485297653215061923770525924206216359428393164400877561760159172386639830742587296450724647984289567639023351928338345353206126224780102093442138628065738241194513259085906740446308290197881457775263126487936195734743529910227255071252573719200485974656771276702931225381523256405027159755196314907974988193176545640122275409140094416265317233601840369221403004880037400812838511272136032478730756474324407967516001180400073766275769820650703255768076777767248342162868202964826758645879692995160039214088671012637113235014532576573474909215083777992078140763453540813688777704397706249795813206543476950126713306255204509036796363816759321807024628314827013131495003118075094275022023171775417655981366358400869691482520465146353262027937913630363123881225541920671063571414648673688571967464517562174655951894329434794624695535638257050347307636585716075291218023490252664595686767014032519083489405808265656577490617613977012517229948314979307734216647009778750414400147491028266320248184780793116754541179534329290597109838005849436462051123436099970084559503753170065924586738895429490446712907840418280359940629744886615968338707087167360112638138382882092502398928558290569670282763104033427453920993747212400656508554645210455603684981771609938282210143838347680070563315632602959102231040291416308515512009814403563074552951122756396312926658370656020105253797511431965955891460035749566931149059345788338469417138249333022178647379046217819750380288809202423219132722499333259880967021530297801060138816766319250722440422598343850227476746654323099453816595562460324386830494921887364060303321558822459324133994699818377564960924398302931456362810832178077332173902953208266937041073177266386859689358086379524748199447468703751073183317625617766581063521827346663791702940714291998853822203043512013079143934269698334985070773244534007302703770804638326899945330414745693220268241600377108547318244488652813963511216688178124199471533899652802597665708856144892663868456282364030982078311282402919788764957921628270153292615584426462296706501244261819424728820328664979782789950881709287139986731052298808161707041221042642463999199086681363100532994267262834874221314620730264533701521695188410512071652256769968370634716008991972833577723215929605421979395415385629121156596275938119792521851619354847427151812235207043311620116038199929382913969733057523217958991555883530010524943678301914829185089962379727579319627219593167153634167451738911669818019313649129180839682964763393859637685125912268896401486224075082641363814271457177356141248951923510398215237450056273127494480845171364908176353744839255786066431101483047094930962839489113158648624023760490750580869292592782497330089321329827078653790723319396464084673143484312886141979602669316130222169397906004677996998595061747654203972802124577064489690280754282833902758457898920985980510357962925446893710034860063965010038839021778076447501539096656487688293708892472997361961675781509063792434287335461421533890547922160992972361109509789878879726911043481991729914812354532747483084200596211853797485541260347539993317603258049234045664300439533853321187123774067571571018044878853416521022078220274658037127677672748326072896899735145807543657719315294831866951668160197253780734301800346514867811776274487281377008416415922477219084839288873743818546506595153578376416743843185024632111646429864638375445941758813474272789424179089630698705466320107897822235800467637083348018346818956959044883795096243577511910433642039334292244648887759705167574282965899982112829498728250095213196854718151839891984127492125458656249429403399535720833852415542717228091583686192590035773879938459665014169484394072388232032342364529330015454133246605070600024473506935021947496198126098498172985390334439021114952014194964780990245479881073499604772464308044463701821539379685931498758678432172917460946716111910560480578822664734958696581341262694764508705245487766368344620290988702097957876956707607756797121002720101178022770657398277500647321377379522106091274377164674154444795401584776791677070296438389595361998017653708359077801769642691138442376486132811053000560119919173755431334854155659001302152621835779497810217205459733239937229987627444700181396223811013540852940945308747085015657046585592317153877192331955061411901607635826462641115014078560845187586013112185108555431234707558071688559555134103126305294314145265208401628681057470156063377728665203170393232631549266772893180597346641490790007990823493899778327684932912301995771375734341679666019552371903560940857740811739985474168598828832901498668138458120988763408814638681449948007204056662671518948255277277904754093157319740228699621129805963446656693978369752578583402050764715525570260171286976935864639326524349354483302463564663032801853468021021358406905979541953583683039572886614077335750001469474982563854665699321614425782038980251582441767365458509473940777038592022343394777013641802290815406721315092451048736453903708429354695781742412386975439200907052432830484643823805626392822706947502071696009890478052356531734906705455925059136967891413702916913537428327531291889033657447104615292373796584690744380461965229177729927623150059705415072468124438193809398748686717224789424380426661069247591582720753340973704107882464121494628543683627313655006814915631352556932051664055265748408172834444003716143494025446898369103216864972599900073133472632888388007386487668501707937802724696439310314441828100806554915238922226287769120195674187436866315857937329290408371899016288548652306557854040621280679423572484742312022766520107667914523164703728111867531502702755076602613195189190291086622564291913845204506003587006250989865815119208825258341179488657750725343879539108887738114527353000834563953948867345912159138776146423468717889902808791327120541209756013653901245050175838198352684392717255938933423581022008399435336612986257742715747419608933417836057397590554333068353112604859532635124142604424877602689627770620571306359276916916694550509955997632190236621775813041768317689591345782357064271838753524535848739868878283718917148108309158658683138087863060430254406593322193615418889326224318476755607816839585482562506859645996180306752908783829257346538476734414170013918626557884582110143941740534701182589597050852316047265269658080700450715500761635546368523074983318469388146785782276363460433586386759876700845116467481777119203482260483190277197741684232207039601240180755901675989879754657976783402928490913998228949485285465436221851101206298340958410076375182458564385142441739082356556694680652945914074797441648140147022117664098965679813108462923766981184101303326261103366168652563746878176775103912701781091877724752450295042821069698846928231978167026614070992929933674014725037938536781080547354098479478117066820463189775646797191944873787309997583638932562377083375941208580480293744646261699316775344349314343608149160806651842295258829139943604692334403358188130397501006971196288185686346931259181270136323220166275355362354786603209025392486748470960182247508027057572160244942595980715064649327113478694103120824674775225776366606140316449570329451709602669933063444380809243292246242851301693820869257675664399764198236495072583132142870709379190854395792116486403745548030724188652441124863105028141105516538926930036545445446308251904644886560675384209123582951639025063617148128751996915142374008713764278998452465473541267004981374429658708975091482962772721689419232186401036280628986872556292302643644261415784627966370914301562894297388354191594595602180791800181978056133886777821384862077988263932253658139635114784668422984939292449709456451974674281146686390363312585227683340544584257382205110932984323053717469992235682230864588865822603049720230115682811174488387149926086368519203892103156084773019014879030604269640668839414160475658051208527142923805603055019760491562319891069905549811602746652577513745935145320005563544064459392142433245792820943839092296966782710448728438307979269271419469979823836285606670863589311445656628596114811173903591641378142991297780652829492358637830680196076292970421279641255458234241470799196402320810214672834069540998707013098953930221628334276435662421100768673364749338010789625873224241130091345421363844266392801471386789025258255245656874439151265264571783941343317307689090016551049056446566018842185678399492558994058298379886693368054575625906647960481763261475386180413645801426942405980472398662573355394027563923932653094984908475701565731039534183596832092272639127508131725754315465195077315176325928164438430121137205089217991999950483770516676179795580681077132429381233528497198271755222700167786208205739161539826559244158296919518090206525910439383799076127100409689832518700103564563500704897441883058838879740080196111620332209241706961782481471828292289866988595528541343856250024819514862379426294480652811015303574201453459800698071818630416235944427335071160597916133343732746699547013873810531212215024127067223951094036590388481270213646049857488027163999284275877479591905387075567291059776871936933611510801408872644014638378050876943690274432883226150224134758014959790735125500333428227060445443922919860310825859676344187697500618614676720458006416794278888189704272902125818356821260970041889676875481856550736260713748332147761216434292922461506295321754951456131077401060299945574560602717292093504376816775954085016444159101471250703910996916164913496268853270346388653799613468314637059892124516617383436966349357523403085964438682426027990707633150643847916174356005375346022795545301717306194176344612844110787034827261432831229895002039818769339817017037386881088839320097836025092162109251205745507676150736205325093296597873678087815448561567821212819204864512392062131686573379735850297138337220339229515243166479762642472801460649345620484527813258399061226597284621435267218637352742496303231373489431273945036493238996037055998188368441616627927488191557079279052776720157188449198914419455201126360425843423284520036978664013251419521784951153572045389613099209569105820044787300350346325932619009439907302667544819865378867861979648154712946224523418786751423698431580748616989126565844497286738015134290463288745347108687674766072596376981513582757128232273083946692609684955665510990614284720859039938269854586673581760589907569289652118552143351214888839222713560486962083549433083571507579482286548008135221359122753128190902320148466080376666887344565357619147028264561271153595954803173855007266594565422911279870104056101978161289447601121870305577273025243421539972825703294957786767181604367313330305031192926633954309479240321948341065611592850758964682794183278374195131584353114658820916247088505197733487793329159437494199079448550202505367131140645313786620482539247355831665739867195884725038926919043281143572715169593833934698121993064846739707750827385333578479000977440085367216742077583358200830554945827810300527514235922469692517336910169297969131176954358937677053032390385994486738596247600841795166783417059249525376774589952716995184656763362616892692506594004345488939384899206778005537466900377559782773620967567789821507025413874402176607578310787304266797944147583566998262232415056920803838624182900387316300714816451547264010187092998118314089492221379860249261357049974031344055907961395737242469261328841957847532179583065303011292841198165855421691082063127819012734808281027995456604672247146228884022025996748841526299350711780318166588944437365823162311023939286663907106082112936402231226121184737202153968064394353780362871664536935363538186076771549176002714606869408942252617116880305367944265384250566491275370570826263851404707429038299726549163691881319895716593874099722898162388188596525276102135711998095353656045846303214321997655777071886305802911094838988988971242063255044122122151589022203575108273342872290822079810500111402627583181263091576108287931791170637230333248718706493015777803552735292896755790211218108620023448359959650990905465072109979943421262069903932504542721073490891687251136383373888436351425521030411126824391939861538336057943173634313421888781789716003707194051686906196667389866034115475852007222438222400274037849905659985495897389762319141254259431987549225737367650898577847357467133706299871800108264101639651382258403463025531662238611569234435050933086589321093611711991685620142018587347334373014598816133112046853892987927103068073698272039207693760367820591810306473210824645269940027184577831159040178721066203526439045841431487101973705561027936076184972026094534348516761284732956363754318454853978824872917146141603801542667953490257750308164000784215113173288756994477466086673830403709777596895406618610680001648703889752042700389340959523559576056279114607647110819729455095184152438652243235107475150273653237431792542960244347033846486614322747889616277439191417993236775168678532620275345010827338893598817931401569353316863783728728380236590211927023740002866642884748202957641162998938200661726308757963903422608661766086071173065384909472072668212723111287525347081567212638160747216097704664184001501158193292137231079000695268359506721883642705307690918534767535152046297569076588385589550346008554083811614817821205241689945234035395406002648310492603789163506624597482396563191277105786554961854653057349616631846628686341758875546294856640579368134546172457078908754654913734599873397993689845121255968637245716351736719485689964184467031120676902444248252763388318311246824728491393967741566349134951144876922939093462260672861335002637664037875263199680413664063608101259023123767861141276948239878395948666127506626364535625206836679209814765600936543299630468443933736297020528614806600927508529709956874783060090115527426860963403689408853837241602758473799834565733701197876526182085672505305999845423062132602972996218480153808673447900471444844608133131687043190326317329894292825529706036589298678620801019510971308358958915635455389794376968595163110323720931331184214799472987103092908365784675007914387094045754066394797833718443151277367333950438399950395828370980505050031975912730342489251890266043509162052912511892414197401793180850307649657427164431094184272078784587099260412264614405816428848008922001454613353412091303733105633234805378406547722904391972128699603014549238722688412552419765597538217264569353781902402775203828675644042106766878849539036474303383274524096601527098039659120680316960014423949047054676198854449942735515579227566247229521368233564749961533709210701667320238789294406212725422093973009698786930512278828805420935993124287247905518042118498216677152718432781833587307994376794963354613836990404271444914011083675607127901811139522130836698106733252039202399095019068104538815485147822568827582601776442656548598523493547384232146204031781805616125476897849963616429975185107279476177526290644240121560640155248958856489922233522732368013288639913938682612573919360815971736879699336400528880572734443815470023504832068964393675642775099554884783155585759949880735491053684947987706840619213519785441697463309909907724346208184336695798340180226941333983087662010175471631646263526812933026550920180384354799726030130845674701587199349257762299233039473049983038490010783337288246247659935761158956137561479418917230917831183636525459496870329717095928051235264662077420967992538150893981500441239825785947633663201124598942550602900359107079749150717626138746620736656628595439377153373840623621987875001233405178106771982659239107192735143375599547333815068209513238117516195108948166747250042100012212611223420194988418541193610417548540249189719646513213048987479718767456652657737405200109348990776530593643775896205684728614085313448562362223040267845745470629565913786072472530086443949971970800461783281790410661694497818529056038114041051556716322434401915200250353487058403932541282736578886900790549918827914839429156986303388293361260699478547074343868974981578095514436828201197366890576943470533743827860176724608527699157202249211449032345395580516072460079174796606566698051614049332526651327530119106749393769203336291090087518143679095686652694122445468499227936890593614281235742393068595567470099323507339938315467819294864546867879995819765908015717667960176795987451871818174162534057706697730049449687642224498601485246933611201111164751816749296833171343900911362763514945681534705956990318726866165970387847564724496396267820593658529856253325697750789419754199778828439596296749344760973906463233676244925572475380196797121563737381450631833292936086752895323073319696709156842721354683208016600587836639129991276570551756133300721916760632761711117597419149093350511291502834019577796333959679790536640798107925273228223746384062879390366344827881821459724123044728848373148329475321965670713560335648133741018238889280601231475755278558629418289263672742147963637863079023513430508220565453473874099440599251282853977475739273335186027255831999959681200312561713974496762940956320116618497838924693428992897847344326237411325376980982591968989306585512127836094641748208691194628960879477527724390457540327188678915634187324681387747821906843130660884403571553335660981206379428208625843215586310422312728551577912322494721978939419458152806031092454938242528299042386580000864217563123404723777499595525740147567829504253531685926244850545984968623279595379737901217964125094329118749713817494550610700715604670005474601029906746727492444466573052178116260881938008426381795724501192151811837196568021716336633668143807454789732461368839672480015828528340364878218532450433916154738510563665165386202951126600429880872708214849521775554922321071732986891708422424456643454019660312967985979456093408484633268102509352142915549984512784551126744208168242980158707385182964335019797816344353944976508322324901589687099006175593109572951689323235299188181460739613904263669223369006856361011645199433913096701231960995044384506346266160704035775641106139740046581942785961905348370237471993028363909737162333951126026776789416074133360326773999145506120042803893814214414990061139290706390942197473556586152463683989476770234945002649704886971864346156480592909312976340339126632171509793465500714529153363349217213393592480020743394287185879020824743623674712345659242321111215023748725186150987602110545568639649409239011985878206222623896122255830563754565207876060653551647839048669531454821834834763719808367218576750787025175933845521450458907019999372350479838499031198592100436443498762989238507526237015532073057326186433449152458884441096061424231191192864789659889210200043457265716522994114596484247729092803753343936927033585472866301954973757786184170399214251965680714513360622325243103939827258537156093910620343246201656035320986496872072526690324236098174506514335253634778345605957018766465016057479301536272817735601130313485515724057777289407200430475937331462562427499672234361131882539259529631335004620670141750329232132091982472965741518081045033755425448787269700921209647764649354664595401117330885397976267017244928560234468446904317273806679370541111087344707908232501993982197506651500838916282813897892908962597892953341744908717994986777553745001040053886997403786050060825722577283097670355168930504101158767619090599406184938937450349020974669058949110902554072120276457935145431138664389190272138454209313318922255757849761974360547138255979972555406046292245705067929272103265466210499706872070661216281017778481690443926675896330263677220668853476273646386054444397034021427741861304325966734957415172554005910716676476634125810681806673405928295449181038292421783042406974657623367105816153735397560830831979657905141082288948160600363627276693894204652158951789289225403746239338422359562942357982579682371753473776060532424117210226601218205644967175390356580521804600149838742845580883829487252481383771517814184756063112259662661316205414150327562265221987088028466221221310904383822606246221763735783250247846047061877984009134650351794169650791805361380454334020642731759905722057633969034573551682337938642906447902067563482561485168780159608732415370104320142999648834278340786922388032170643086212352879010406606777883933463728536189579195737932047823782092450199583805788424994536415928681020280723393254912305146501222111135983509447310379582320145569810622158771613612768757366486594549928397286007779668168000579714500892271878196817696177717505560269936990858039755637089541931459743454535300221973254741155009659588838939520959163286463496820436259974818619836254119507421980136123152232926388624182951879130444589021672778245874757827184972833300756643455377935486106590004343323179633507575428895955135390764553195839133073285722225552326650795749120536749713458402631118249097753599378811186170098075238739826633862648746305433782828309819445234487334157928246200258010138730270314957005850694102798212503203364340631873240017771101438539515159847339773944602846293553665771067670671465901798229477677029349361443157061334093981602072361867844383148424357651329888340603715219128350067250248043139481033349032658728336078214117677777656283688411077451941504375662758175219450773260757561998901582848455787125550557476316689479638434818411081538531623873812588179762093336801604717869597147236576939723317730119054312926084391905728365483064713546961805747191417610684023495720299967710474457894557393297342331789462705020043342921425763727334929803018553551094774510844235891180232672790615771485142746985599969320247582464673330315550361502658703706384256896280800249933320952909098651823414909392114745902288986763930941341470477674524330086719756627784754132401160365593620211306801746738858321522670430008694522844463910768693624645418195413731099248604031154925868608342508271033003759735497077170223783483224586576624046919440663883128392685918045599473934500513623401394016590445022569355673478935779566475849488222868034775030721362824558840618160869486573884569179185830539429860275269544577087145974018526326041726157271755664668062179595082623195348519534716765449219380215986627854846863545925297097350402923412758967423648157825467581158394586739381327902929495085872215823704743777954635505060163924027005341103578022755461535242325114683955428189843294124480979878730019500538058121167823508678313600588221561469679538578079484922062733937040762832869959686219667524408537531360456014496160335078947516602578911081205141944337757253822204165781760108104787199491881271216976854460346000403935690115182369444268826433159783485830169577807594254521132467210163661013705301342421136283303640194521972342808763984681583975803477439120477390321587524618177319433784149061994551153164664561828233356445666784775505570671446868774022417386979990028842893786890971194713066601592471390324256861495679957623775863014286288413915653752743035112911402646509184944819578118119002942995751572325633158017898980669056317552492503981086935999023241983525117994623329683384002618070976818615790840251151519100315385090808462156676293064598464325614145207548587033373092791426546972334437170374557174656347744122800892296651670396341268232631633082863607739184686853466821934216749589721108311358599735487660659815901771951065148097075069614619679345138183497940009710751126812571680721841585134265528170211450261554338669703015291264769873726231491419268784772064393430595366555580305274838925323452228897706679686702049661835682284660574048369735946520246935761920003336161592026673334147466201743419000633735893861082546463202780735428110920976396460801437217998239720979836212900171457727193630925855176027142034439176321274580732072804916372259584101119860849011250424206741353862216391225719422978857666488074983298586279642677809184924814957162703268342183107970526434210569573955458399116668345205074207080619793427009821820339143503647357936637273560711385183376267992823285901800380517574459143375579965550943450367580489050780342562475920792830122213270982591533835584845260480383229952950692779137982322150752318740706662118161231303412958709521155465836509154713062676918655267852760465794484927291126732459894509434468283829314537045649691836501653168542495806014420663424729475494004338911362769494626119978926407340149747881774414977152602971839894730350298341144991439500313770262103487500596109611066206991560994650571025896961357486879440096873176849238574737076171229088241172228041914436172268643650694538781005484209514603438348577638981281642568998150459064363196951726321837210494278605675669754505901009710811945363801044633718684664161848829895224423358258225927952028480907916074329447840091853211512508842263237283664962036762127308867618335523929932881955949488096401230140961607945464045256537145443272544319164238399791208821823798697155716880658882464612540760765790330127711590871496663500016462248451727695566290028581317090217131179238349943309481305285848224348986457993188918092026191256913443912743225030763230507832882174692510945002865089758237636542944421790045826915719020464347144889229804466097987675406254202067905734205353601617485885350472816190396908046650797531867676757731569376203362211950996003465889325535051525238379097081769409521502699465930547137711499049079721929380126208955712991559778398310158261417215993950309619652251363644117408905439299012462285361881669838239579459443687765592641822878252076500738477871402048742061119551604232957400946301730183236254063357964633066833719159532515533506208937711700664969980010533835696252675464210187913783007883961211238735809287049343625083674342861900518729985477206978959163491205043882483533427220541084360460980558459025302036306957182721320089539049816511861390291616483353979667680757928886868427764369637618392493926488140939704396201997911942419775295325725363722666798667002200824099886422440145745417622031362890953466989101494945509711149241533526299178256290657541919711117465373719989373925579552798505219299370212072437224531980742252953904498070399999618819184154041911617034857589002745413113232275919410163110166701820594481577488578292976814196281694235944445944655997086849424071787072629348696416370320503826998515596899356739733088249189005290509232563959332244057182033674935706955123792738080448571323675063110126481941570640969304685724311907715393274507507591710862918569714551264911201073606342269071297724775003962446873998883480447985925719952192834769892215430014893356550338634029449796029162050650876217024367863806526074386349206951406786507495660168833079843726092698446657720476979749288689343774779071294561706863629279166898503640602354131827973905993584788394077011044215983216687231789188788281483727100178572911711772276576823013169252864236144923992809116996119442519718801114347766862699508269159590009859080240199419377692165624045285413357316526590693071930856255503359522763142622917307534501411449729812850032558361504689418583676640787828586786788930970356528462836481401308454900328318128522750105066362539909676428423552835902067255301567445707375620557654399364122834188625579569174433208361280549409846408663283887726569442302061502145302449403742478200900943451489897697673241187613729830523613739246351202752267207596051164753364906657569820831276970129283667571812207444700325839497232770093657697586508442492537357498284163203058305434712715656898142998808296368623256556236175497818214331688979811788199119841174195857141696281779554138487220173681034777305505180202142765179121761582303930838703020705820898843531964162363521013923238304277338350242789194794891712738692220899300599672341722622045278026806899188145241063643122081581439859345860381385250788570989306045105180773359456315809947970868972909074645702124500235975090678971596669275723704722584504644554057361600907319659974723727316451071246596630477793278097563129058223448412765703079716326076687501796976134046807088532117688413368425480258510486175943127222835596716899301283235471754839908390709571995303772420799016874984544811462623723298435921463029096334827667634831625433779270598878756238770042070395363778003769433709693158664811118980219852516772937692356654660488014098519777559233817515707214597721417822700900804579424302908617757115619526881758505012791771489817378905491804132675933403422046284483142081158964842576423731548115167370607040212043680055656835371202894671403584341456747468823451066209685602848281188271139735303047153498038860664506035739146892229258852173472692791112419941611651729527162150243475770692221627715675671941817355801350891154442037471284102479938059317161840548469520914321484144513593905369403288177410130085138571291541904687139066840860575861816592783764747467809072126670286915679774549289697267425262174318108026948496740651771975947427224335226673634714276551238369391168888598716077032110271518162494345919066858131203022183473925708357782930242606893494729985270199111250005059745325490453779720108378244619084193775607007006389762738966850236123280280534404333053479872398533659691676057742930999921491145890811241027389470456760262602044728655459222065654250240923106956473322093127690874667175399117036268775376422166622670921120592878465648302882859732275090104020167663014473141147891526566110417262356139611532277525481019568896676404649512146632455765231997773929240076003177654421613001694720840362352366799698121702478807298905636262494338524201719891101348512396808304711225544063379364607113470622677434797750574239138017712570124462326036053967013756998923371934525933805297164706461244720993158762818812142537202052275890931130897926586967844032718450825851252755653505326416700674910143760311341406284422975417982578668502688174027985941863335568909376364706778831351118051133777084804695866168045469280592917542130174812088039736745286141170944327522723454440899954447380165603067578085761438620075021805939410293368169462715444532967792041074757917747411856909741648997698410078194066133274494105856971093240866992964923916370436134898377161833412643912324358026368227724920217400165675785838743621856342630814181094238482923680555021563806195420317794673699451250648151829619882345448454507188643263190061025826820865317119417091128094457798098411704009862472806832586077280317775381530454535423315075824940385476823524722756006128001036641358980393527648694005469672855535918657955026366160586148678443078929531159765480813841369635048929841797933878496907513127620528548474605251856244842185980954512741680478140345962195448711409393036880588477441606701360035628495131848526110675711537602983881828387887261200776167154346777466575359156993974330499844397431703362306218310456808082907170019647917750344811184631619259732576601713056515853056168737065552218894396787361660428015794746550779898874534597539943662894049607954553043486280749986772964688285348779637764760426976237982709216573724280783351390453282203983734120932243928632066457247105680061194112679663828982337902459971075908875368353185345424699019587724382478113807429861602274377866125189660990342203801396424548403509758152162237722459025040337388940265510736887996203571689891815662292313825934087403076842234135719399187385969238406398851629070034223483273468961692058263172494075502154945809359841417905430039194547041834679884375892286179160528163619391021575287768391304883792957558281879742878049574417391471999399002946908203118300224535466236709918437253358453557201901511845969915966602067500785378428923283184853646889924636833988136458366516933403433935562621058083018198307943638239605255482615021001037748982113584376489979536397024135220475369726784067248849838389879637910918978879496403214720240323557064363789305270553480176701565621655242756710788355225114476190884991318056357000887193857962237867251861952857491186790813190394325206626442905881772586583526618700313467531371332197822207971758229995553663305588446511133470658401684926139512985406466636628977375797343462185518324631740357805848109611961811217634686024705901101180021522820083541917216054607221322850793148983825996053723953867222569694689374426383427033350574323045613798395825991288352784567656038637088440956580923479109399719252225544237402156822610548450799272708419155334941324406031820344852869281750331180425489738066758525864414095534383602668014694735277087304914085532282017695111398232566161753432149788248297164599105590892251722069584130960201739415977697582433707725413066816173567983046816588023322805252693003593684984269318200923548295469028832617985449966868994026873423670302007790002899273097538433301113577872438644579776444178290527382841840683929868326473067836276384025161504031281165622917729621458416252240878943576521088366265905715374305247050538352041253901917204842907406734092553752141636807087472182790215000382796467137213293035189100922362850817828820617043102384133459900147249326826639157355669582008423107318124459279980363672657545491738427977560605065823141629878017248179892965900704891482221884808794510323021034413056760463553844354434437118140004358028661255312119979102418777097663277250591634183968584266355587666363526908888106835419048117873580413757507597618800985089181698538096729765170465596609786228051221920107689290663182457623976283379914257638196494012815132038134024026306107223124114207600848550640487841535114562377092448699501079653308277958532952645837601599932320290699127690489879243559094056715116873111071209469909967277178497475840216342653653166854919833262273840382322699299891914458309453103198071433218258452846100111234198390982685413949963794237229703566885390831203340499363733763027344469431641282001638423271309445715544106687710334247554141407242909579029307340763841175603098079142169500814450464740040143637629610930751537403701554850777149767664577234498221432960989672513775177858603863561564475567289373434047836290316524563722174696236641360518316525493108321141816890508088072059485485063052686688114479339188309972376115423934381871892577827234222223609506335921712349671917002936139249476600479830185848944979460117828112005563122062464897040667498320687348652015553148066832885427930793274127134744341341604126202790445701687652943988377021411827309828887150935902648608500703588075321606066284721535856442025052070147609941319455999364059185659284401278454809066256058210958797900806803247786873955277602672408883178916103742421426851488698754407708911402951241660916115570599873858018203079022227262769727719063326505789006580045682328282867219728947951376241421078255306025198552285307960905312898013972139388311495577774447641242434993916933170423800443927798206996429462700561336880663706957708198945611577770868487071851463874527709916537610677893052742519009285704952619096392439916236766802151298173872518743959271513719210610807661826062353876643173954682884041334135089917111671104256487770577344611274522058537138423529664771156448751553223641797527306320642714543803741880182686776142105638491214586324082484900779873798912980592438629949809737215942889546289869893067647242641073862839175583480266036136744054582823151000711511325798922459146341873831071246201205449202483902524137122003257330266504955999138062937206511570776302920806276141441332134011940945396532064175050945376638951773560895494170888553551700014855421990935397749523539272105818787290952792704825492127372771721769435290994649960791737996639983542155664063090198550033108951131458523707005216993587586633250910797169756742030748119086475374467768091488067619500480026877787037873257676976665823119198077692300341650323783767562999718229789406257368420684524802824766192424174734115597742408321127035833126551996445224868647904824417078479274821531351597655822352401472622084947787083675849164300456234049646665766495962738870965865091088019606267361172819400274557200904201165479781765429527080054537401006986614644154064403200383514301755732031280824083777559408427430193390191261561411867550112525811321136122808181963505861212915480283019690982685828512318423193119449727235922521564844976881798360026519235683101251720420578181580210963812729776630401734099651197311746855626300420682821590795630940879793916334503701892925487361105255640190774295384239141629569132395094498054124863380886707262361434439823670190864017369851740370109267663764718912984929888693041045022849150513551024235888147081885248692207758373529922090257902190846845466415238421670337025139814104008028709879683617036082629484908691905693076911229825893205149168158239813952557095867257379142272986167545023075662149887904328756790132088782016667319199399349892709940313455944855882749397093255306263592794972980435087540025059759804333355696182999251739527399183277933359712828539897018328527699048434550226725010014229317164013026655258588123831962852363899250172325611332244166698072311838092362027190777614232011957684174400696726927553898861375065294687302765044903403423253335770654602865992414299504325310574482173210030300974291648176368590134950675420021807048686088288658796272029678968646241193783869554921626433825706368215467339973054913575896736292158967092616285676679228957252757226348654814913232503114240968322577957216369129792067245583694444693542968463454851086262476565051644425782009892968269628057066258008934718852647415501733590965078518695766283726002244166748825535632743047562611536680314621219566024379739390922360680430515713705720685643538107497611589194707556174481396331148318331632712763629068515926338347388940273088540906796123976853333983652519223508412404321632340613259442184742969663201660053021891589072353652364199929683715492699315290937829443420387866621077140366703280280393914533347929433477617514600200733117953909420263095817687153891138797334044525462210882385628550699054999326866559464848039163198810748220737573004244237178325440952596906063164733020703249677967985036981154593958144258760835786435773011058487545782922182017986057527030615860631257176669524160742506246401062381787669998546316994033402887744776538914725679420374592007084770070017540836887286380895754533736905531729594995033336852396661149374509808916025798599399826029355766793430529400829642676529343450833885910874582973392023844233060360979588510489472433846641928710478827418346109795563892537490789608437940762864334867006265234466364403972611927637710373389863770660922338547841731216862968844990348012783409553506379831959165955830428776188034794738803767694623141090634198086423752073267083926077815356829064456729339712533920469364203560748898793885502264265783315046214829724601840562634687073019997463741053112005730317374639989316766243410413497151819238286896810308551405615908465989648594410433614871170597530741008435378064401940219705491028619015536425362283990697766068307747361256293933798264655766764887603640668519427992017103871854729586914784826897405871577767001726424258017351700720190747414004864861156892490444463548632574306562203166157854729846546034198901727950281142448755657099190172769111298646423025140431008625135463276223562665120119644169964642287066469228839896047325197023123060552074125257417417822773659913947679431795953888033321709101640688208482160478520548645801008415417627570000914042409583857634925912118218590528809549568687718529049698325548506831293529252734580346209397895209263337551859302618036548917150734862725261575022982165591106328933830387222860059641064094161173632248015811515935727355264915403853022567295714596579436996352981602054263746140126964746660397851027864465627769034307365083144564164875121688119444109174654846599480266127724641836375198523410324515260698651607459610445391060677348262441053094914592891936264365637594765772485756582965738455349135756889534694306256784942212228517573455803813935683071300196149174927189116623002738737098889622561209216215699515068832328608494531428746296542103555208773167682618501684555854267829500315546908422355355477876446699078613334645897706679325310419314286415943986172959198335482397691139791844648841282044218756411663261858350925839238605872253455466889054862219657295676794679114624230622263113024421160923617629692959455962532327128325657846527843485939459650902597086851923407618305180378914158213036625680475075330514062635135340526443517617694463245664863574427561645534016868993764566175782453418946618668402679547137870384398544842729702407147282398048038873003139924362682581409505675637599599128025503032853623087090373488415205619678041550595677586003523099868602927405387812167477173088475581158872976149630045231548099354137037077689527640774420569490668218204503123732874468129702199712144851842819563896031168020983971795562284422882725857930549147233042690426271067758462781740557998042419908970900087752006711123976197943366829642257143661421029269823906413259233175900627144725370106474594188956742193335105121488263738925725714507671856387190673496589273354605381791411379717592344045152706770486598795646090054349713477649176412448223710686465488133788324005097480570128509816782709307609512135825491935430789527003368259484768669448391626757151959049023728921635863638991692567384890395377326776061134666750719242043458335811362287009914110271549700082133056623145222813428203402377062549344033086697774500146086622601946662309320919817901278151271783125275190689090489282945385406123508801612012987056696294103444011637161484545933339656255247364279124542781639854341292991653770325311825475804392238467645554409775358537236315356180382606764039064541378701542338166696489284584848097391263841825260619710740991567945955877690449368497527102896253857237679178652497020811511480354569283406994737714237680114788643047940313616326612755553361405722878681145722275096105829666046333523739266861512533879607763740396029533704390483002668609764081812637502576842098407309897876884273784754449863232861241949463341573275579663118812651933753045314086787596747315411794393079717808775461644717685735719631504635630206100574172727958973814339408509278436467847954428067676923566721861687857141843781542022857796233216332045564409131502795083262913337421100120449469590799705541108117375067395068173618669477121245056764896851428980481779864906937553283302964953522822214313154157023721632404803234784789271865224741255912017537591312743283645856614319452248144356257989670697876536681912448291370188388589884104246448827815428670932484048902499682905560207481773714152236227957300735545885837724882731663919403133060798568389372197390482330487289716962733617383266863374302210039803990456986673407777105098162793225019264337279184559898456631261970026443900225629671758657947960624618579252028248450855643598034511500155353672473103097984494486060297040699014118429594391314479712658631816794047031345114812446699646460411141478710509552566792468060340404621374674387296102618037340129861179001674466453674644765323501066464342869587971697701854226846057247054474721499352677752631408077589132636271303697381923626131847653350887984080244709300159738428758359303793570327536757971273258763678904261689402028106166454901073465645467912080614012209963199774445160180115703470042284237792952542589909551391315689899515636290745770879864373192873419858927593648609690894168084914223848276603662988519339795028135194261418497419643677674687714968229738126349779748460198868823655854206976565515351461364485613089524253254960484004145524951933266201026727841359655791928989589078101458228680205953421578466066453688349067438250961539353867867685821954523673998941968095912533746425147715771941209330541045323949225695866328506595876247811316611696984011986546862960946468171407931006615382672328057172679117406643861983819243299999516563414096813750496696501066455995306853520134268999917024112330825638722281832107806842659801821794537994728972074383802643352137810869267335147070585455918393581827199630123029524271709770987382459223424105765603649307036674937965742552989672974525685254418556598842907213479272896548644142356843308591343355571579960380913552273907547026490875717702574220505661752306557233655870123766976751693634772263070385373597561052020378599863880831710015515811029268101048801719022570626348821294200586100480850363535474991987815056480513489926219976410939285971694800989047154085000519989295990055666782346834106150362210439679506882736595788875173029842352436952828682706755931582418360336375359552961173474808471542429450603815852413749326070909734779652686512321599804717442500053153154579478070137237324751068615594183952517838336526202797152544148817639596390460937943250539838956620379020547551628624871598872575395411544709569384370570034121008168422329349364713176075283136409823710936692186744575960811459967669297862794234644822126589493075402796662072224494336411422910796840193221183428417930854948884260996983084504680598808914523203568965839122552879713234119349274235774623616487340188349615068537849641135229091980976784356024043684303337665511489478302748943261118804999480408328671722661824578178367733862202071224674573036201757294872939127889737597516750776393078924146446199170137954243293240447293447769669366524399132445458097120541687983360810312956939081657601433559732005183475858241391190699522313335404712853490939477050803047050820248787461468618535724475003319034824542447785970313634595528293919824972386388824094823778198253021808105987066999913765513301407373173710159399572833184170206695033519528703047741593614308096740995506922816943550994995662716546785272330077031824877146389221867477104456959428024988146562850895904042911289057317785915991566922821726127056959561583666010450316844639744301774122236321346358486004532382186370895847226403792456496245669111765694794069993237026880998228490793263630756875819686951278743799084940723921867361369326786605843194987502538771529426084442746088966667728654276565654488506929909564378727985928580959697340027996210749043982273676462046690585927420096578747408265356800198242419597236859408392111626131565411216625152224507046851293635206639264210056891666956349600745319572304760902580665685368973940749575042339250776586135647973746903572636022550173785610985779647703127366170872587369132822133675885303132640577817701927002514081088245347708382168646664906284493101124052410711770896846126617358138634013356512388368925993385865445797243313479813378169866373554792154310317595407827091860157154468393704834217093537721429529503009843118740704683622851160198819866648992347880416207068873055123462479090667388498673690686547541494163649638724961318215951660187061383218381525122198314160787918246479138788851626343787476937128816327920233993840308899350462429847743620512669397302123034191096937958018114582699154128926457004762539584028737874588597064148463622900314274799922058667736329220078709915047296278028147918022251288435017311800318206597075260977885727958535321897257332022277675890178214527533470801662122094047115287877583092669827690771822025551891164828381345491149655336130441626450512949342811210382056721050860048972380879378367726287751493063268237167007231361176802145125792836196036618972738944303424321575656752663545734503428496974464950103072066416702304404713490770681370452373400559403800156585213918641632525157598740774094623958320384657521010538467400971041962106155863045651318915845331167337179160834762195194409325558475667494530415072569941335259604839203777162802653386947888172992495032538431176725623876013141087062213368256964138397734971614723563323336192842953666882383345047473640036450032221129812951449038050274420312276827474807557894965167231756798115645771021777095573911031856739146610754555765864229378188958791710915018243786518888573484132023712084765376772837645204244284848996888896539195825708947654380449620220471272936621952062731020025033087671028593240807143336414504702463193329941625644423658446616575629479671185649068396543921981456343056632352531411618140167516596281381429739737594961534453878238636714984174716524570552962708099767965001825874795558112507238148502536780782574455257334771124673780849412156720190312616400397500682263323065923360377366017082667895756235844230024648564554754186338581564921213011268715603183612321358522489331103346491787104025049696302252016535782988910130863014741330351449102653437038372769441009849125644115168751953976712771415756544271531057012753917651636955589972135075173204584242396639385416497806843894728924441419746408099684507366209292875519584475279147803585401087805085484746075655645775249101428410179358009033561854081281730053564507556387287744237811434903468510843387032528401018240840465825142249091958825304833070698906924968095117775751693621050411343427248459778046166252038621358771179848887294458152177737755005464453898159182071722623755557072454152125374576214957173200666201554984639250199825679226450531383175320418904790495680805211546343407722522086184531700581970674317723709208480093589572215231571329351781830545250741897622594113208638507811385326449885593215797956441475675499076912957402207277591650638629327538549650453536395767722875990114530649202227474763942919022122830695387745735105813905999852831730465202744843542465644559250059822807388221387065114441775191426097320799174566390282911220816001134246374182350775322788564266442913264164160823138377386334050215650694158155660642518068621014754762275204541251711639986832436677583462444634303044179070857777575292614817674860711934739163245900570568968470834203472109560093682870698576983448783495055152082551923411132803132350382644553665154470146770233063761369339237570747207609681424726053720126192019127343226652890938259479080245625707711186008080408455060227943070993901717483416499131233179163625358454708986096097105308808103648590130358817438382949648197222000407759824409357703982809440458625382033297483703432044124999601044117797416013132501078061613510728863043791806071615379097096369603096958853003954127460181911207127086710381042104417998796456186335424753839239999573309381826115840225619218614450835814993553342421933217324384219408026873196825201792025074013333617665054561808563645961068156483173822953868032156925848829551504576003412288146152635857869205076600948239718951599009217706574741063541258240414931634392234592742954129486118436188868837661702486356792826729459979856384479651531406591050638200818462272090529550518178777350790244797384874854262351943181276403728209423192996688844357300822350208508549921913414774745361098400141141097285049010731434487596692910620293533223546387761874513101879228725777447926061174665433507960560977324801741356900414205281737034455418878858660375388208056777498030551779141147295811177565925112159214529985908386078282891719041182494764697340014636846572855086473894243550610878746172460330775957276485910199289335525563167631823064538427476460442110775900839043653268210204675573119915647904071620380123602703194377307288080444010828104676722175867335007548636277266837831203234086996769519613559790574234188047928118403384986058216944141803972054780274640622311288198016141432580157221359548075440371210547055278240504942066850171916309783139753728089059592410924282022181683365960813122955484939319532156223150952035778608584558749270201405982995190768184829244374121003614198499576702182605403504802744039859899462854619467204789759788181236512633773647385506912911099808031376152990815314656005310321136855087751264036055020903200506926447640862051773919387376147199011306675625008208723359000831803876740130371358378658810888091546566381229560284279989166798092138878087559953116339906588509242631679124772397672169130183644856623997816805678638401777057886206368711156497100408969576869394624670543988016735463012901877180183247150182421698058003293450282759436003796824531633244182007506022693980967865213251473550249871351777490343102107612164923329290067718792792232635868161996359158075716135059223522757430337715295511019604793952212352918769126302902491302982134023660946149416469184763020648965946016661495598808345900935216048035570431630094478091767951658975454082934872511003445954675927737493723060689334154162303899154286972806166683129397313085647948163627671752911383424544892047443272899517612770637746401733637019817193691855554347187772663918018663973829128870091276787015667198789577737948443268759639180704123094243347759692739858131695932252358709496780172799765537060944832883163351999346566879581634361976784575872230284992424916681197369816258276749113832356592555027058910816819329285235626846644402278309426489946821728039659942623834624996567217706126754258663757350478039587182475327526452798199259933914407337579260344021946960317858032924585557949713503125116612408504018611370324702676844526387491786826627165495704994294289337822106258712705206526752421565577365945278302488243906659697123701279787331448713528652985975552440966993868283203527025766920202432741816280994778749527130356499799505229745575677371080393294282962433409725996371148190180185201205379387630271072655904844609025313157365237887778266931695555451535972020000956766150762413315766476074857173381895230443928689774811440270402675960236584878811497548169531864270482676561676671032515663203568643509382104729553487745144223389571398833931103087614204578974109357865477990294521236333340850586714254283496906450018062557766808886432011002559548346423528923300467916883435094885142334691228893699390187594462486706901119586527940029080346240745105367330610257301106514934166161391318165323481834913152611914705194139360741742746165639507344755806350457590863383051260598187704854976330808247530027716937869834346508092257587507487060053685573047611609404649431304228877263511088184811408055195158123775051348367703649725684322754346136085598016384840015117104679780111655143500093336510019079851724466741394951627556807974554075943658497345452707301672613564432954235084661805917360528308372136748855310451210415558731324149252572946522316911946427265048835215068926852913190872041128129371684516519546397902188491134392151160791644380047114489656155449373928230170289003680679394467179963441307237651048235661020961753768983515568687896029933300184092295179689643384437968852843889105380093839424397205356298830742491754770926048390751381507824799303540928025761684453186693287431243748366813824057844732442887720048223542689858766365212799988970119135313626063965627218920172553511778766934285563848439979223486928873265530400825757334705966494242550277158018375884108592515916758842901695195378509053355368478465673476102182999171714490412485135984489166775629838996832497862666505329793827626610021979169318888754674262609997808340181612514259076503815938006530127897364016136038279549583572120699445052086815866139963621868541590344134421326931488641954069337627028048324643418839354016349201672350147042799175441303192706516570685803379440632102214075449462440301166976275497269139051860976371083012029632925448628439171858708990437326570095099854504067866326428490143219433338727542986631723217349148035227793645714269784125182493966339126640902059716800417908109814483369470237374481977147411936562435462135769038854571791119487096677142883415636666747986863090548061229166299564913308665598447579314735685998665184751098186214099143783267534531757781012663017970608669132674569723845799522360707021583606234640383071537741451364617475663981741151362402650520645597231470266670207352405061064395075846243091098534271038518193097134372293553279386387807620122465321376331617238900491319390502789355948004090331285199927359046488535134643427993554304469846789861058148558859984241415398303036946861598061350751175962365754918006364738823456586975412071131758647362546603930380341746984513374937512044139199565847365014205783088570912656198861764915618385537451554678496691305355968674736829175845526458223059563841596068576465275938280720574551650162457924884305926249067546511790242791452583106307887089393147759770851262214205810979334510196122708347483425241642242272550477488642751826533097851452466256535642338660897751609589121222756382468599881351355341492420987344054391402777077823239683381320959415166111891312281456721539891805613377562687048700342569752008772288686521587548817724885056680918384452324002636031294927322821958437156031731407590437493951438126610307396320818613475798740744876306165055642321650270433161952505517317001116800668185863989657041221800025464768551211644735011411436414666723664944723354206859785435610717593233578278126081392691476509501094236587178479468792163338881782820466012338270463380324436883624820669930302957601707436902040316656622995974213579104910298113907589215121084505747610671770687156834231801504113315955771416568022948100738292498108692451633760143958363243343036019703563773690818830440100671736162224092276334095736179440489050715905233482034169660571843977241090608120774332979684406707671832363306705347865188646504546594628092176063548496954607257883987412721058178429197689374393601400600233911286657959328215134011453913688985477480595057050920199025436933412545557884925766610216850031910477886843960131779053106312334055642278362691200795372696480519121706806038341372572410252757015347276863021411890518313388494567913494201303341103483278991417655783855318323125789223462504225962229071560077904315064714969086819139931330018522314862264918348503242975075433795100787615785982685036333475664654409655290184028680369690857787041860023344393747745876897247444300880806183766268326897122905892358936883019678275827470964159018356714696861017832394696353783479513073199742871433395681301335804119560435702484580908206198338936623556744107256704948575329921050336312156054991700926949234267869388158022170420115511640129665605737502526951320102454099422659810460917200534451926507067664652614720227976951655434873532610282081684877311362389442112810768551220357210011053196993708546123809329179262192129963675404593066235332614872202333217049199094857101988523574008097100172245014313097407832950692072003264411599871531147375820896762117237790258596921532221883190013121402812610606645810212247948805470712293032327648371535217679108020669825216984784851157511922386856516266163123045709111151351111548672756353770372007430740783648985954834889205435661681099908815919763030609627198781743666481187758625684614814982330468954228817287844705166743968601425435840861057892486045731069718362361623816467948358608580258408276081644986177484237534673119570580586138606306955819100935293767426465139077372376527437552358023083257885203077926536799917556947056145992478681563084886667275810024233205901499895156024064959515081622075310325294463739482523841811295327536881853003049643455483260758748863508909359478561949371348625929906558596004984330335624466296664651841580255103695528158436995176197842519179070323089347237529524822249790034055827626829650217211860321525466217788219582447434044542534243498575496490297420123710695448284712796661025307429218882058705867248821235225215953746517005667572894092103623055378355318499180768108795658140229449014835377123429255488104017743442019353095277145504447942843625643140905003892627936722391894880273492456612596082810477882184541414182789680577418237109225725727592897725325261366539527741127864470753885129185675956366788313689946351859745195687921956463973630053567824323866257238055234692699296214718476100376729352688402425188569242292353550040846736388292740622907123339270086038313452252462963168398257153362282757548305413209799392006939293078657480569459876243443414266136319845325445481332141968164892269791238382201639522142606723437885792754581885795979916801692959363770448421814239438955576107089901062871077236681920231497811952114213713329200628871645716097085615100132614491762698261951633101634609886490851516875414767815382592039561737120863687946296274582746018751664568092149100090036662881936981568383983196039250660637290809754589082284364105395149198294090941526334774372665919670715894232685989700208774491628387878455209200492365112185837979079061306032933696068485311387130215742154870786095760448207843010276922648586448710707051938339361450313408819586575852090263142407521632504912212827570339414077502270722600009444850976199612209089738236880210562860395709416613009795300212974193295655574590138584054865882304873187103755948249604271265032716722769477151828051196067995613055431673524870868854954656527479784253493175257468163695470285320029749937644672426122240156197781588830936185795547554681277923097662534336057628164672639974823801242484667929741314758586416359337555382468401717227772657847330817295429117074168016439948110013037432187787385415115254595749915466947013800718986250107618961157338173430164342178066742265734474633006299338014172117670402427822957615103096187656624170846253809248308297273253122531780545633648254455135122521839225702600850835307938793037956626600711761036715670504274714205356844175779016414186914227360427808893153291196845450614873599440978451430408946507641241833107624236729510786765728780683975880067975334183503883573338462456204832779696148662729870398436922552982005536538664813969084537522630633185616092279431280790853029290252320961614114087257152177442834103819690140838364445024385707105255004283280655210023513615016003606159591725304003041644847044128872243212076994630466662756489858425754771984242172119238113201612658772083843857066217189302758438499126418561062889525796297977356438525201646842347284358501512543177190094829896432528915348691694071312259196881732542204229680727065726659003124243139108002397096245215847193739620239611641088821569501696164015699985950304073227066843062908591043658598575015989046724462337672152629166500768019386069355131512874902627296088920270146200745810657754340525225859984833868696834785367300817835202120856646384791363781865523579676165707172554544360216534858445541182101586917344175675296702241652267472700551225562586657087322654376315559190141187641334121397330264986567302927916669659538682075922300420182949970411718021963778486291682648575428023562531703849403663368526578676105020911195096597768040921923058357057372083589604993274461069673312874728070218482072295949083995840156058076585902449841756318121143339226645102066510215158064701113512575513477010011747615675417691436148812514188664161652656352542435362501904491134818152245636509114418842667477629719099855380038158343392421790092035299704964701109737732578348485363865731141888198150473559391239668924784405886410585559312444572215831346032358444209970487565407638320470105221417065335976977222789846109806761055548769234633236283620639657527538847270333181972166887011107781149396356843674001626836623053073522057375311433780525270869541643202114993230838847146532326302813550238395740398889780430788224772576646740729567829632837514482644281699055227367024416889510400739198408579386602545402717249062391211562194372944912979930342674869161617877335580913661057768051115385287880179520798650059283026823964807308626150381445197516412246525800458880299852112967412400802001308441747463149100450008212379718556795144857960324967948889224367914107210984947171205117455253407780487374977475609731753252721908441467841601600828144973606456951143696551296508915830573299225083472340366206994509541768072841126232130277079922582891728593380934846574426684963119762492339767110160757008755062734290620546979282157495547675017275633150489878539518424192147228290678583053447285220192630799935572849811693816201925350030598259609203535560731593452759575596146623609649618892404312143863413896122631859355118417981736880413504329799260301972192468817013193802979787910161471289796111684341373660684629750865031045053524493600644058845864642531038186038334929194107094222748489508033506627372354542908426730339460920060146042053101528017521863201962014263523642092280667135611968276166438351349143761026832940922350998811733142323326761292532933505668477736741049640016406623174404267724093831304980134040232324232779345636908051068518794314178939987027053574428235164583032375299913625982135680288908804992581200304579112543699497675087290315559004535331888175489865903848963596788283753191680245063069380202513871258570837001607305414698321800277558121400199233526794037841875137130300249190478732264708240302882377345528985343041112001351441873670211413116560122222576482017914272190035568600686282974547217524044918154574868362678173543631834661597980929128733063014366337831779265371127946364513253417504970056415127489153916431049037254176494140624782337544057861724163335655400979780269956389571443391871239121866951424435451209538421827878782511183484885005150716341605154279887236412902392484210501699647093900195703034620301955313021600513341228517062814544192965402415761248219909079167997815829767140881586896303992907723434730182542565858010546686106100690645951899596201921073437240752090314429550004304377302828899086482812243979826035453723260005353882055490377079519115261022817810847860568400110352281417983386717698113282800118953235020040455964295831281074809636739287461757233382122358715358786561212708507005973240715815539872965079817409811774609264586666110250653307119037698096832225322097153603494749011238722400756825996532532490117424126986028397306029422326191876137459449704799346388062114998844491869745111386199574393729474411000440130919036574200732196400885695183094375998602059748723267706044742635955098210883985100371225709422564876548404449397017924562708907631452238004909589137110383424381878262609790028397295073085222400081387564742928178525587576785640587020030367286291120835580308250585975373497309866201432115840933687665525711154239850353029867554448809579275615883747138055197907448283461270383500024356286907486904178863654712203675016650041846077437135113970914397572329049090348328149164136609580130441581440530219297039672918413807649819230917615700542885787425495783585516058904241177300862375263437782184103012367597244613669327630115469365535881249653753931544634954545546514462061651461116446347665437878562791601603701781634474624882962613899523959688002008810432982824557344326551365490050334038190013767719735869891138431574511894489559485820236496219984941945872060575287038157904985710997302859346593744102390767771113125530720812487834943401389850034019837810188845465909678915734771786841894375548795259305352408018476911602879555619592480551062909082299351218710864483919325115650962136812908929687296045397481321742592559554493264816411330454056116769549243774571628689320078082753543916433948063345236579360695886548443791627761542814019709316227853698588665707395056139752384111909489229444557707610967247930659728193241408627652885058077339895027036784342617606768938706782832230892369678421004734016188289426502571899282101659727529019455101714350062320237912681788621067984659749259895371009161594293677489655000854492784044890523452142724665343522542664982200686110898384547515946033970452249001090873113715127114408396678497551500344450042783445899899593170207086394148283616794643830945580051672181005085536000435719883473929533309119079881499054929286461378214845698558341044376996465177287640636764572440999293198366858896095882045175232857936305184126402538359349556403612938410175476105986815203037362709414909788578537638281255674429637386784616982602439653923281894868475322187983958268554000885864832000675472671772385042990088963485680629690195916752342573751511035896620449977005136025640452911005598775762936590261477900235327929053667754751261973976995932007239011382936656185382276915810186788732742378134907479532763972880236819043401257576719511077474357812737851696938670865312624966789832765925317767580460549832497321365546191107997145273381217070333083441155271281152792527867133233400803695198677101964790046691419230798261817843648679277788390527227964006464013616667803590923203538055315824229484893555357566983004922111855136440777499256537747111874278914432504706045434600459342186599045234572799145318030107685591163987206376291711018327845524994071498322369469996436981482041022729716890448458410057018208995635062765255834262841236506434899429006577449493003531992843864923719362727583258692163906149815622416942037588477039836185448557695840563488953145589636268793678458427672971038647956244091995893779692681986369650145353478505137176034226009744001472074537904841782259408445597567011167280069694332527919757784533510278685483807637352667246602349150733473399057996742810837951163802396850397869358548186521243359967706511359642183411856408969637628321860155229659888740525981434586352981805962889046563785831642727687626910804800111983708971178156976968773867608890110088937937684265465207235020154120604516371820454622543813985890306481249206864048728635713185678739135936018774500236013109561056314844928817907428625274905559342434807284676310230518182905689758873149126539233278353614796293668963249870486734862480179957570749665757075819476099138554338981181356485437558281576537969281752227474652155479583522453456236723573455296935091704704202631003400903026051126489495973322904443157285640108431005778735977763639342220996590562470166135169481519691993946697590235431163632148475998577834657373584489473849980608064573546403326870416618576419806450850629468212828932524313076006185676354086047039383758405368927953864403222704669466485844187316472225995997130685511056808204923357395274675954298235410858695196204692612227377527647674462865939643184569346333653418819766807752105766641243617962844121383105380849998420356090471864700198010633969100308231502915614066910477305652558371509508038640433627327175738134948362125582686174383464584194838598286051137761941648794826696818285643240270308227102165504874267237547570814227931868004392510190451321494961044909990788498504079476117450309169560888980648543539594108601935840650479030124989090203601925711722533078699806062989928942086310385933959168490632993557929254758873475395422664364037725463756070204833393773038905867973223356951676927645669674522602045630899431430843159488276949640434743199352349294893059185595771420167837293222317138330853935836934873179739003516664408518326157915130640888168538609283265936468527124648671578162348471559984687128706811878598099533763394097038696550174687495936259283941228687711619169796350582794354252643111409073296408439802933695880737369392673502478647738772001279380526355475076750386736197668124517469008770981371104717374329112777963578866282678137272380638489762507162448521418004418168392101851470632749117226500046654650941711709054266668523632942658176345040342972389302791421074739259842779825099210584464153114146821703208927235154331310313605518747633938386523929186671798620676393981107876698668167107082123831242813482367378784378804018579638403763206722400108583698386286937452474604146485558621911661246711408893061747666827514975292992733477669198064709488521595114709780692018195056841319952407033680462883146660308022627643692859140187406554703947182834540202932087365502822697847978705327391789975576051937271525531469494858231408620396437021758980230547233214019419210043351948097143084272340008532811201526058467266319760638110313382521170437908594063816726095922487619929848728114048009628276763775514490761211405616476084535155270979755408068068838022164071122473656945289650308727157978472317591409843055152757723192133323018492722401561696760761896403299715356838440449850885844167188049704941829411655767947418595133345175221119068135939909371604578598032105831054689128921343410520827609822288252083150828719509953019573631692229144774592741899877366419624735183652795987667921374691598570345183502672453813547429726959364604779371521358306227996648993180300952132745617538782911614896291494641908156366523146282154366000962227591509615150345386321843202103955773380661067025857506789278323472044062534490885842146387673858618883519212733157166377467133271558668325567002686974682452032045963549012404452385746676953595942450682378132357145568734651365511847578632998123106860383543011475725740620822898439114408380456123842192533791697612693600423582248929236507085737465342971150348655125030712038751706395106282573529282617642646835792732109399080158585647993937318029309798815956800273084990646364926068904726862399761719399312584407948123825130296002871914000986781025664292714062673526991271678790717282348970510130875616530003445057406780239672584287980983586737610057460450187897794160291440898201758843645229460769533299017823508638488981032390000437599881376803989887235009571244409440943633699363157587396024589343271115994575906028375453119201971265059196839320941727268290782663514673425374492522490937221685904979694620791413234220223046727400786535931839444806729536253549142609422769038326940261952908512949948240429898883038128146034062898236934738678766267785939657965496416432491173180827743810928464850271197172570968700443066389910737936135980687334026611968949676845507738089075960172599822001796118278062466520118104079759600233240234294047850371791336897706987821859023707261380090177242792729355068567647536986164393525867712000437880757918349254592978798288531320303493268502540730915633216458238734786263931930942798338073195527563661557906953578178127818701677997674052669837085294811691685539010694475368275072006982879508797384402214211675843998624856610915753177109886567842241825536643639056786670159881949540188968796004979033728274578986289388381119921859726330602531677455866997004091030311858930323809883808968393821924601019179955464817642997669743333867111052864258455853403375032264628937982520257818274169254948077947654467748994039517106502464455038203087920835275806726045003342257361506811020633146122873283770072870920622523168921595276692109013573678057746331273685657963306552647713885776285824613353663818046533515160405727240613062966055897507722363513803577084200828524950532685324037802842687603010997644225450550924490719955411552567317390075097451514633659018479120947867587904869788874035818889715999499096571717061945564732928161366842840478463430072681486299134940354476810621488386234261645690174382388866534902437182953244510323861803548475964200280774577740346561426641658193119207169923017871572991034424084905758687524970153812826910334021277151991370808563790114270011157346361288333623650362805184419124852592717780864124376844778812340260897316699502565267413228521129793745102938680944791345785211563686097664713637449589290615413806258312580743839764354495498830819656468798807269998216185570166300535780096892284890547041650480292587677456214831605416046551168563744867614345868105354499786782659231731753832704371142034757778619571839282738178026349645436702313068996585179108493170141349667558187471070099717653990675653907947385677168504734302298472495213879191532560363815716365176105276293627465280413587475780184385527464956789577308623993871794418371810599157909748713112134252062192551505380390688220279811039388483894196747180676775758086463917050643527375441738409400242707007326363170665403318275032371920662789028722824667954124697050912449486898888300297771573732776897671347426711968035773393323212443702601962817811511751723983552560796894931565732383275979313683924421731699785619702021647654962832510554746022433882862166577501515047901522571686897539777649123534647793827018310564591566028387807663179018803782315074289793969895306618276526152379330341497315984776377822360942132402388848966195412167748683495278674024026916739613508795218093993240135687014114115277163269815518212558514466893104638151834487350183766124051457189240459680474169611336519927111785865136545227758920496849658936510250452187946730647849719321608069517021806617956433767913265351451460356749775348312759102639879211039372722711843226815494343261118773050669327035657945596326870430949559616920409440267924958231015600413642719987523520742196030409187396730724096847953729838108940702693258890753593677608792027553401094479800050241601055079620205315102536845091994458139459157886882086033428762246963956758791511508668836267747568198545281370432112991461743179464031758472552905220683940850051145803485846341125428589269074420203186558249028784109546798612905159108490406987693858220588907416977621931726006098443855012704610406871829350575441858965570927399918329965896755019773531753503940785003106081584734819906638333148556971948750013499021248894604532000363058645542703598391396090245636777498290761146190830377706271611891630934590345122004817648855657841927612614478086523159915199012490883089869560482994960763677233187273494680461535330703880648768543965165482781940315409630642762945255062194545033831468342305695224687618357073156280306087980368785337358591900649432050208157647972273001371440354089027186753991415767743098322128316467456150335499496512205497644213437815556432206840576167450948731948097984953082585316565058749566959312849992674453661744025064784085161226628259513482057471830359949697293751602639351266407168611764255897446059311720328345678052414926405445524724296363579481079267360867799622145151217292712520020895639381548457109436200232670917839870301816037416585031423724781968585112046026958150145599101018889657245322742862548226115531203886656913101033131620646728449367729637567504621732622498680795930668280096579623124084532259076386393517571683333705523854494420787173477537273217745660865920772999281740688859731682482055673728316372355844374986222356968397824678698688743403906509842888868192812904970186476606919939599695899010537937415213333647968416488746523190718364540740598197504946555883328178988147467788908263870054771239693449922342601230825696003224165697087790699995903058606129661923842895049824209623638565513571323132311371416502526451566522863106057940181965160798957816113725247300838798978181354166156548289571412865201234215380938198273018659129353599193258735351077130619162638480787533026804753177793545031139764342458220195044543688761848981961057566425173868468780189624080414033813451551338528315102725474082988295983582088600617828574249850648724357465217183633162648444537946555268802119823873700106639003116201380160883887907922634128886231634518462411939385963977473106487045848302712131950271157551237330063335743338501904099337171389125835586050500791949829989461168038931807140762880270910909420092073889169754799575550548804873404166539462821497472657324322676759684448507123880213449202106738695009315816300803023192040751133847204257048235663467064950162085223966381941341030070068031197092288050001898676524706281539911242794543006123678295312522917885937167201779342043763200487590142137076200858745991309282811744789980749181476276004977287191652019526728282733495377003265964908570418237215933082968372727004296213452921779929063549269505733979179362064361445887165845227062895132415180373909715679143357802696669524746222361664258034337811725136178621832985981556556792924333805940569680106996774918347203563067396751820364440468248334892111940675977248050270598662609109886938688164159390823499992858062255046522037040184067453362644044431237622174131135629356571171308738860195625544979762026802616005759306579493624108187185917155301113914595708811168124092184127025126711889126246683182362264518510685304660028081362334456679001162973427886477400964613803124612095730207893007060069060988143364022211051804225825161638307870871707345525406589707484915430184400286322403691265026745256538717086233450428571964393006569306253823235649874157013143787298127217946765244586107571811395563276298267259044822132763735621775875159566583605771212135717505970869890715884934319061222074879631030938895108802207799075802749471577575548499870474157840134380139970000265259640931782025186451390213426106510158581826116651602363269930401592081242655819392128353337032809956354958861639249680037597489675483173243800452550242831433730858128764427924227606811568430750108636424150158093347041339242200751661718170079215205045027573694431648365525297490315391386010909943418703003044495297732795727786875640482052203792850244058276109359790436958377526965897288269354680441058742425275194178269931357782826183053165339835114761303830449377081388130847729314044832574592248652274291443202322390643251841713559393960128464277486393259832078401850531213283703833449148834733645756847986542773833605877579608965579709293601213341000521718435589448528370236164768567299176318651089977791733552863961206138150211208209371316361672866488007009385501350529833206775921652247521587507745338401845819427060897662952826916160965596949418139418231743545122156914224692688003375066546732505610251903645982680571775951763768562048140724597923048251456915126304729209445427884343669049526501863239943211164646112291997957640221209462634426565964164822385578919134184558319316118922966578627283344255647559019939245148163358050143917157295690402771128328082645927493629613439062390333089733151101914953181395528016149277672489691067376515876943360340284397160317258844273291237990255290765112558497544524735458589788916110201586011739987926053626952464727610612813624278332397971484208767694153346426854346903620442422474999610405971971702491061453182572786841246259718241539318866033381783848781244480664831852662373186813860225800798318710549677717043211131795279410573210241815279028113332875898207145511431730811155928681968578771891037677689394781462928896171425714502625749031663822392122058058712575984023182744777497944999699915868797287795558494938816742114501221733922800878187052814150739156402028754793547475775526349175869903475754428394317522657750983467375301612635353182802728144474718533767798452915054275297879384942091210988683098318259408318123561799301054961287548031490908096876730755724417939701628160614690386855201214980955525521109445723237632870641517384763816515259753248836207248142167257810781219760066825926878955858091943840271313549866597485772107461132058282549669881828848437448066723829234557337015461335675414016594652680058192073710929379907598073094301715563278463470818606478516211387274962096124303680808961793596048232757564669751027646237528375240730217686731654454722640683127377245354779078380735100566289650234709234572789816613841335288355225549309872697074512686894271299265478445775113822198384106912679656668603392308461273055211383512633567457753874354226163314757741861700220144237113130414847751597276573797574989431784502659545694939704217661444093986743057416749831471103020169208289926392989231342188036452551048103038165179453089747951867240782952923275609636353926287830396402068348924174392314033813468729965872183446217744445869738233060583227714684199935700203403280773760839579836711153897421825449719358191607411785494662762789730314218555146357953692671416107001230641042370673461725555762304566887955815349796548683310259485176417599634265128005913180749862458561213294975377174287936262575858165495251244886582775276050651079386821765209860319228153581555290740226456490408010137138391813715694444152971777760794450435025952596978348730537067551078097102719429129494613804472522530663160944995533579396554156984553037046825695408868322024851541049257131620601602585576261034417030374708180317655442186752298443005361937970713864007124199125834645363798889312106550493704927123224199385251860545774972689664011038230585521564756439651133293363379712173085705254125204461232726628578000036304657657460122923331061604012568040307447574501008931813164030822648463810221305458776839912857695506061361342355748805614287746003508272180723475784721930054249604100751959958973954439277510460196492176835776962735857979854822989052988771847203769573804820109613959280286900916789304968014176894809747259005745547734595734537896525828318324628917424079838046630854734353727677233842511234019077767481008089573830572315800056201754257624766332322370860158287461617201463449666622871337664527103473446470935088533653485582300456309814518591616936334588498017322504526049944496635201947381433153576100967781577196191619133799000472341539677545494405619580937839201767226382746489183012415740254553570869087949778782710394233879408385428957730874416842157558432183268587913850843165918492973244672885732431533911811612506758952882772539284515316400271606417690052840645053851053902131500041835769560523580590941176600154850368115898820545750692559362268887809341277992287528827429408307183006894333281668192834388797924879854979420831493009918366109922801257125483732267291644978736669759291850145889558717441282397220773360838219460279161976439288072388377996004705576856767483156985908064927393046828961748385841427794971175908279324065548580838626332025960738646005425922876100180660469633500083611297595961090897587151566860290912787396876010734326555916921491259076136100272511749845590702802158303453482868215380468686868171857167551574322134804537731906747460936643573346325709196709686127057937273280643718343142718153726929905521948136896674967526334932283415449309933500723736593214340095950278262941570946962587555455633121865531254662308854135914751956374490538118633669921017195058947645706784877598178651676670064590196620146410079400190412310810366051712241554251787869323574766213936382855196666583806607817297914868191103427517007030830704642377722602580278526403853333980180067259729062134966520376390541950030903062616168568591558047906279389351130125970677686492323575794042374696138281574231646191596134136726098399550738170070377639318431113719153640881569301429772592613046331901136859906999513185272501182003862213986959494831395791947508292841833417088017110401512206748456443272015369348328508457891230640219706961323583827134212281223096039475260456978942893738793465325372456440176073392921596098009139556331634545921485941575174575766998672943973000546951620084605484878986712702321337404578936606717891069757666890706867820525596052319844188301192949277035064381165920142375307962159425632650833775030455454009718962957772147278583323842659185326658836609801022591974988077037215479252168420774141495828556997221314196267484386862436692497971464886554865661312322568202429886691846486431677605545517834158792406331714229073261492166242018696795377119913887742904343731399418085281776726559516836451541100567452865645945835680010534525120783368979438116000785773646491254543812459748153191921084810406015224050215159018902687859777430431273439927620405176055654483474856173537961777946671982272884258139744720392278458017911759661510798777866835781824725747054046759679074699647994217594903725303219236695113959373057636815561477262388893375905987388782917480247374133748358863133611504878085575213068022812588466739883032261765725053447153881818790216261535989221323820672516372722211879547845142944251969576558566869008560956577414181580062635368042053991707271321983625357950840593977905234720697531703941651199371310925399414853394072855664117553042091524022474071261504682441682831344248668198593581269907733428329654184644689733718593840694529572078992744260143704919720820573776445258737376116134326168822014914372995944108802336787063376775630032192953889932861846489479712299869884532940594646950136081273996778960746579468254310867136578248614877040863360534189297030283354921392704630501031812811958522051670152001226294153840553091797895423239040816185457578475886261093218767147522539468679669943677370244627945237440033223548355260308250487584280927409240525540959849925764432353738335393565877271704476605680493784398488610875537901936498159213431651154282788016822562785223986732571894448366863981247413701679826119230084744113408605677298928269233864132992741069910334266712824829053637078815444953592039865494189893938592228907865253921457369151359667894251577808198969834805799149667719444169131552393495273006757953693745963916909350232656953633835014851721221719133480381627143947301577298614784506268366348859402206244933837391453419728345991154157722515501809539145577805861643272818114383312337983882727182555682823550027209973157561555576606942726913258783001832401586354905138429844487676409835427661989018261666875592752478126572966485538806026360138719949591298950584777457839479270258798015039122166586636659566424460496496383750788888964397851597294843123348814458185220664203373502498973471680985838802634527819172012933884918552863892067097316235752013172268915455039591432413372351003600029441702193409685189273366414228152472908644535854671520147786644882763916409692762827657520349797569395424667577656636993352995518193536952520406545456967971656877970511910854327289481360780380843714903715842018419032372250708914913722034124638969291442823626888841085487568209449049484280399438506244194462053903278132345870222841289006639239344434648606036636832213382108519832768628104361413315959747783413400220402469250688081695126756781930395208982223842013860264916796119214910851047118559860571114578144859527614581383265343062379805714782597896353510675099328490511799328422246469376741843797653516414144560547695243406998799371670191731586876480035382173870354060294737468009578330058413226538087891042689644957473572259177995757345575512606508352866634635724024697827693529749298387846984825947062711866127967310340438373187070668222936319172298159595722422719631173487823534215732408574868482964011253072221673298422540838716609356885588283441615629865812647494245461827425186377791059801272084024719381569887027838647099257808744108018665258432774203696068039258800978259503146879781158918898879437513365580739326071042183235611426774546308026051441035365649481007383900802707222343454608229986456481095823956808061641070926786493639230056935691825861206929439310585675448841743861720625337066366676498244131828331669633867269555641231657734138469160310753395996170941436252324354449075103734778466204133065489885981317031011222709166646346622632890673769487742261306774914039209326660857210688691881752979413495001917741374404261277718147399389711259219913230108592740478615701026395011520141881027274112796162890994585616110031228763427138534692131408546283997400924282242955244117669702883454641922499431523188647592716435194937617824280418592510876483020904417010927059103501253822610921828519450691567005498153448390792281784543311800316683515882566928621832739640465676773752015888647315721530551768228226973407167654963431697439362925058999914057200345124440184239752632755536760709000623682822241605785717097757941979674894739433314682715452558333414603832075638904687585528762983610009428468381519715936843282409799880005696648841614751040792344844022815353959957134100910463153084192102354963080565813968290219595031943824180342110997355778762013073153771185300007856771064063022153521944939455913423330901833026339653900577364537049186933713718694531722253962238380293594789613494825184523211798416129071856246639456061711391614894745229328632890675210197986880881506386466885147142815167381565824802663406341339157352100548333221882941752084482566008298776882428367199004399899100776528832145636859572669638878243435700220751134933542655854854915801345013743036074150215706546015148464024602146877264479032034341248195914346296790636978261989511267070022052958653542456632475125142913344395664321434266863077347364775866461624115687974104438237892734243798112482488246864703363562884521505304780543858501620321951491204447031420475138843280817578391292345158455187139411629707369323319491099862728174896570333947499247594058263730039178187782655966054305651462377992448884305476789684114713139901648803878296982035071071632530613540502180353794191539998739995345825095540899713072888585867754765431757755560449946850002420268085811632311251676623011493517577874001541763297267717819360692189938291563885776789031964903268762138791364954673769480346077927295069262185404684862047937823831298261852385580659987043477206652602560757507388790314469782610997311658434247293342939851347587668005962809712452987117108552790886297111543513667655638328737494868733118871604267749021541999354906748423112627302576818135087635539476827799953632384185425341244808621649057061710022319490819836429326050044075271947765638339664310176488303932592562328159511124189876004576203302728056891006976226358021102503184886155740298399924539814312611047481594214811618293937753725928387020950451404752289625074989440018293902412262178501302855331850848139192694673703082655879020624127528389232460956631687323453093646108659204621016942210412281040586432199895705341020435559300497100109225886159933568785654019677370251123829133276407672163255777445500870604921528398935538720229054744386990665453605157101706357785608048338144597497674486185131134160234311443774200950652487886458556372385421699721407074276544903513641121013365168107078078465823187104340621819159785237642509400589787620352018082333039075348747040767667901029979291408797906075648053081179631153568622539384219487180749322917354244624048985503578085694811746842229200204303188924822534648240280980648179110613362498434028076651989931979059883886306382797176498214978665782209366812899067944902236225582675735368402363383640179054891499086079469460539786884762280293150428019304036597245075137927952606025857615508580782805607190550429294638786106488616397033552028885028333635061651565809621322624564424325386313478867204942725967872883256979097809331978165514727008875597724703286679743554495501266188343701286549298099619138283059397166701359156232462760186220086397121097948091899045024125681873992208714435863030143256823506366016711439569337293760779463527801472410645432682059402325944472370708458807869732376214705228167146604666724639398761631802994815994090315705570265418108593251294707938495523560703030047194155431566283067313626943990333869231794286594189930265259249136621223497533637088366878921674605698347426945246422914645283856172818863568686583029565331781030765541264557402797849705329826901737822797848220494954934800455563434128962330213361860068266814048269351904241379110661826756693422578124457593878410695682148461611168959827569479289888581234559436591678063078864489236282131015226350873906398673988079195611965753051183249719101225869721964126308148111258873278579426382481317017191870871185201612185198269948433914593780043632743659772913983451100437469229585163481680805527881954127965100407005437738513327938340804925526613549802779201189460423499919579688729645792907289441351589957133217780289428393942651156385274911090257210385727802493814048735918651795588499693700496488758954437054286607590606731637234176922894311312878816000394260850233988780816961890249834204573848272346575770279470157043925490226016892859157012150462622472214859701229761928824648547485761221041860288255267982326928469224696229277593351572593842835488530612064032178722122123707375270501189128549796242280735748646396394629486146614826303650975222711182617631739729910657178801846710686576595933356813838996619554844973375162497255287937519488248521261144496488892324634133041750610783901492665138805116491598730260528673102141906146929888428959943277171833086156108994187643106474207863462655719652848148851040002041032162403378200382511561272919818953802587071107359839485872624956339100882813300385196376238850869739727542601713191449439952238408991587879567712081910610694681435757326617051654660470515400911162513908362610857687878557204208717355111005216209287203118869757330349143387337960468641659997534168549916067527287971498678040411563263827557929728785870405467337335544433733775829643974575379417797023768631916203511663389829783020494830456011553522322236411251090148748564997497471606355801484790886897465676852130297802106754088615918858560601578310634651645472987235907860741647034378157050814220677628819334386587761100685848615458340883873962708523270957872892685454562543449414060678093782207922031910773620322156702981955660598032639064611841880282121026912386234932858823374403843235062104367172588257633229953349534463640563749732502106177220156628729622269479117557317312129178207086130396127068123456243065085490818286988961630798756452815047802886235054010571601138718924124554651122464627356633527605436561087732124187394346358113172362845446411305166945040257830560802163409686062752315642196232463983979126829094163900999478802893758962764420661897557702355374370880900771823868278011788966045773286575649022604728275729721067309753017712524476587093132229913463862632363766694968348264414870453121161871826734495718684416725287123541604884700546665511852570662648996935811707801511586544901535516649891200200505883698609464508905943801563368532063352673021736271836463485530623689676074636023059274853560783027328264990156170224967673728198470841150278548178440382960815140410634181412266882251599710009573415857590921839691406157635858351167876414709788310375399133660344774335877184806823563439388206550549365915419361873445302300238830586750593879104803969116830577088931885141599823339006554734799349596514255811849663697416662116542717870497089426309631126248821572628883769449577626150015214798453223581326877924291233798250131726943286373759794785116301102257309995952004618498687974962827998030035088470231166853740309404863203290791121758417862005935318781126186808210242157880033848653097322384762848440529124793062710194735961846106257686644523809458107729539605915028812903894421354469853792185388063408546149500595469141082810940725667858643734190570923762360562793504069332898672029090239149275472434356387020629820807719283174240245286243342130395192991240277119202398024532902137116307736845488968757036417716452096990709820845573062238023235276052330086953687319706970823084067776395242478338912466826469298849254294725778095574585831737068601851315252086920322514197113574208140283592934897776269016712383901345995394442172056956307672557944424236467677068099380386549092272108696043853487246362463932531349147335132493854992105774265919018371741224416414424216079097846086387025884670535267919775812326163781138860274436741565230396908704594638421829841456815291432995913730991070119565500573156278948598312216087033364435079205104443360052602801531501760369452496100875391019247602261851535685668068811862557251534757249417269842013452590021939061196208727374392322368250964939874221994076461366718238827598106238804474229481352898520479448903232107527873809931011065159248742630486344103190877393591669041469940033162698451119010732282391742391623560048475741287204697508574333774333419830254300696542214885151610839342049465488105070339921824146146039742146752782420089750790265610679595200907837803862518830468838530019847697083475124965868469835999860682130726188787886644349136575737897448459212832852635266597577476562077999525835690370004132941782717548924922714639108086791993594760060368046165997698585045644801781275938026368219409016090023473948492502690289111382972669646631157883597714292663365953564655087983183445865920042217607858990604816652551507144945834702269251384081604852640997694263949830544606789343580195571880445252385767677332988873372157348668253673902562385631862277790924323678563198996478978296070821923160446881412373501971754090192131605417657089792344065351791823629205428287699168265258324102598367899551339246071148769778173164306653575372904534701328137299698142789383850294044983754158952931230470736600803962365230817720041422872166995250226598961808585866751000573170734042519602011532163208517980122043048854778266943910598203825455330336035682165751716243039543309374185424204011747181524556633189235624816080629052377517947017921423041835578660863497425414446294422732707191702743899224134954288945770823168729531834445503734839369953035478357775047838535804800570119537508086374596155345516065455692802082822196270324261364913419161492748809556991434938985710783119173003073048716175842212107985503058722597855930336634309020192693073861396447622635226910934657985632095640916982769981828140038945437593860078720166532195227496990115128052519465577568515263523853310750404560677604569338669729676051142974005516429238404441020686571776265149980367248988513732046384936253239934153283907541440950296972169164216050137475998556775255147106646266827264147380827718758557749498767014490469691714761092115125345121595115216343376232665550367781774642552433275789545145733147536280365529463814152390194234496613195405029666681359534153270749589263950377755523231132364723974451450205413029748255690680138734646019747274222199332612761593010842618398538174474254483014815318430013492025032105849145188853075247460885377414618439627365769053104227434974961342322371027520253360248172951285216585939534466135821291971887980780722956356809159171972171460627731214331728677675506851997875685814354634621001320132683597363482332318184990406820167772112710066349046354499750348587702345894351149336501087039248125862373267060815302015671036252487708712353328856742271250794267805174194274690481276752112233229693947652269469669109771071563716547184715309122366072654631146414488282643239633525787669351959124862581267187391407230141855075206289671497005942552483025793980485893926477675239404623721533179315524562692077083545073027658414763997940152431051695751687345150622086601303717236560212523735656571990303373269492273165661025336838348062306511799797882489322228287372246040740773213307717390650752288802266804242469634681116156327070937652516608706162220713260761367590878072729395273470065561967422458571271600067434289494192039514016148404498609058001494501034152397734394174501378116473043659470553433453647901232972373245647656042505605317595799612190030961465880897120218206050854854453983759193099842771284643962932466027426415028076441920583186984684284314268765662443934220787967432176466211757721509425698283692028471196742706434275990791873680087042630368976528785410433501084963603023279987149733065730551754988696355150242991617691744742793219866564138994016682481224710432476296294772941960245994995327597540082275440283306499629116122638008167676775829420330335845630852843165877017330305369540026816272450357230624138277643681952668275481678209415498108873153041613613232117801093118843837665944465785771900374497531391453148768734736311670992500388981544645778685502003754499409775175170151483039521701327220403000290671572666883649335760423034426779816984782214780863538374809957948275902877197602016481468581960987122017724735972421767260924860897711972212092195380136350614220912729603452931980602728869509488209626986546582784996706657610722412145306855512448959776619349996167970581855480753524160805426060910351913979235576124401880819496306918204497223599200351548580797504056268768227303253206692370740536402349855952766241921421906724766201214166068318670792223767270425078313950740228717534848372604957231664646662953138714997938837414423600340625417986930773794676943513116952502371531600778335123854425154394887171353263376970414052059544140995245647260841119097882578819780721566897835020078601401918846370388798411627702419419073150802700209163447701694176411399062367039145322791154727174425311264077260320795386081647254880380196987600520259634419015176654324594212452230087819250774046561918594657862068222418227713413145749692911255011263792687286548478293372608091965403711291693715517522021213074731975255300537230112413477462660368212633315821896207502394740766292439454581975589284793032914653687951289453606377446064629998164915082962900253867948316218190646217430235836221392478494188369609609022855152542540610565306217732012534788164865668359729072557162620279002531301216387241443946998805710604525462091835937511320353871975752308284698119657234832983192729229554989038424235759668998069211337345352861238827241978182703897406620714095581784785397265196905243486073565173249350861438977633880781033866129257401512736110721500472320133167747733132386209236424514458075081911231272770481857943699454595040818823847478736185384888513844857513090777293746166494843053096910312976604864877593026910750946465672097051355926737442916336466254085902665617655391977893957997695473384001800114314199433691692869997888800436304535289104855787394493823468311287784735702280050244133492032908003395921953520587105972143571417017776821734789808050749121946653166372396756081570425665068070851754626087811557375120778337130726611875343076558414410843872346229841413315342128388881526448257267585465330597094214676739742351090210987137407543598023478913457343625260668286248715829132731340676969200871140075946090748229557347539988351576768898073671535900600280771840981512912962154187851610438522030976334353472013434980940139816481979116368349593758476602395083099347037649090591886863901524678801939364526634817557855364352501109519870409031296590440383601596577385677438504827976321835620090435735083800978858955233347194903362683860052060721050901043987234465313257958050843964801832797343258912224856194692830228648142801981115051321048135812570091641158952715574875320369401275461545608950476673545077229293980313510904495010432043072368104182315874651720008218999968193220808598688657090968592992260024997155911739051588110953155477861755034007586450239538501262134406124263093949870650481639718911633014370507128607168834911403059430482974893893386302487051558554218734250551604694486292336319539588382834159182371977624728432481506301608965714044422447347136274896549932854088485732051428951922327528468611995773439763743410233161947468519469573286614241663038911797739901873900856739674475124862294942754013795986912700577327689295171335028825904363216075916863934231775031254387062656834013726244122826765544514153144381250817951528339176024950055257006039715408361324063465001171638675677861031031926694680359752047214091514720435200224884054457405254602664275132783542760434867246039699071339718127485740916736660284220568777789020805179209140145915139621685141231313042872320256455341043470885701140841129346769123787126270033280257441521944261752370828797547652521814224672548347423106214991654020329629040342906235006867550950424886906987744840786680876895324613370082706050469820069540223417245161765326051843236558281508559829009251379253515947798101796116456992919914667888623573503565031722529165132845169978463442297668784244654621146888990014372739850793650547024801471681756802425962893727990097170390678356348489330986050367695697538152176806702846643657269615753737019686676747616581801237891361805805729348754040178524263991264956567446816498851656172036363358777286735269769207538506421884248022265658229376398952675611623248360039458323670244462908912177676050778728579298197525422579856973754208189894232748677089576089882751444037193425575169315001348775624835769064787153253536111474663251166641837342101045625952604937124968344266718271903467384721536000028986525614961306914472021362304180776798999377070092532201720780773381401456960209841009989364663326138603118991087264124993686135653238671874809779803601981765061204930883810859766927903415392641056188112670005381306290159643710713195694075502343045115439707306633382575388953106749384121050738713891937030970177734986487426875427474042323989787428403358552782772967569950463458565027726597640256524515199146419834341222636571273141770527643997374943919686346323407185539097339751385976577498668518112615496390897129689161925494080053355534532240343708563399403120569523140554941918214497615469608868038629078028021344822032118660521740049620909958824749214273126503696147771015079502382311737183835661941318768911493178723505704197343661753037365837391694447466233540198704680184826951939813677392088026245989153971741837537789582040752105711599131485060305823336854386574002116774191711973026599734428497854761849305526238738821666335030835700206281696146239312485985967805295566999713215483711546497739813077735527464150673874301186464087103842560429931974498850099950378620792737726173024820178152074425606669457357591325730754508179650896118656848760913943871614397170989497472756764979385861088964792980824293756745759007357110126919746361438747689142023272318879519821582714154022534617541650297005215913480836293060003782194822911516659529731560772047584420344755409064998129407449006834456374862133495122200142838022100564373882492037252418898998048298340596688708911909697850007464973464216976998255783970276140297242450909353914137398893622509800507924950778738145096457070780369126789747736271835137179336186080834593720273919555744880265236175595223638921039598760531043385795408328427020951807489118199360745391850786988160504687000857359389097979583886534240898256721549314898641869279999314433576856823445955813448390138756564407114538168166193884323334023048068020470720342899528992828416658875646703870892164235424359000485690522585393284683787286065242226960820616350878331321020010633887415821301537923613015205142515227406110825381656686275582704019499798542348548352283143219989923837314595851655305925082989211738031625731359303643965423053493641250769767595753100232713332712979133756285212265358175945275254254911002846499950025548433368246915136427672451945518789135342163282036370596962267358241850759757527114711679912352631591204661434495841966066208612471572801722729734095091895868107953635026298873349182827668675958591648709627341718557016167798727721211603578645655901917663346654357032917205760238883054123925651436079088075674868857142631424306733180713343746465541730295145935843391138145125268384529511771403213596849322979539452710325779415659773519128995004839250438300718198514621566373827119906862170473213486369178595008451285506741295121697619567043342322477682636718529884517150145441074614674640897565949456026356648963452169829807093661085857728285759035718869768404759413439995424139081801550668738244805336661701969929888704083468164241140217930954190664961975974077875232222865532992253436009733716955653089992800028748608146711489651542644187858078775968403076003767819603009499916307614678983369496635355898068294963347911466579297189954827697818262496820606866914824456023416850956710348063751897886824493409309261937939296564801509255044747024824890275671852645503489482264769285230978231916881853615585208332538688710074988865868255620090413626927840354880452681279654377710247025089072706867000962284610817260959699905149275793111961620811185823726314228537692639942277074401524962202478997754895390177828903837097313707976715332588967375282650872559283362355313690058148130245453954723450626575439598325068337556283187431443497113325460074565515134220188730154866610604019656730570336486794242403694423719332166266940494722555649848834259891934650204939689197690221259539792851902197131859532157811785308505464161722115834912706718996673831770077848356876312228297429329389386827884773994507741825362283896205388802622002225351686236735003089472522577612120617296834092773193980391801519604252806227147087600469850540843100714384333511992236469763365545504769375557832945348960904285502099031568150658181374459340943801787364893640515679843050938790058903128323051619420653429826983821718855345682143750241641284349023886260716387268685526320587377267204354191567538335058213781340567100953287131236467947943714684535991717917053223934290413250746310672845415486782261204267086355688581056293934442627237800748847004469227987147396197728012556144603113652280991682969343212455708559635436417215177454501893440099398681077091320247559300744080822360424512249253279871594670200946119528011551017095189641290513952301180590174515197577214204364588664048184345919073369391003747324572760553402756094308743214495232903179287479372532064641309760905019965364622887548365229186287311352204916272379601002410179136006751523578308416322990605816822090790277114654765003329849605073957189224393686054894651040951173062737349298388006936410662701428391573057492734888965788457146730310052655302154296689700316291513149276830726808619651137768636704810754518096506689634184950327546082067966071726938741248950175845725223040583318269685808746608864145403939400325239511980886418770870968659852181179795704399550360356830640410210037892672327678988569925145768516150064987369031348272967461952124362742692131254746804836890097788591525002181927342090993287968823952261777274013883906362848373222252452786616263602924409649112288765367945636208211653043350732415363302976521512867672439350070891265293315495896331706819222254942653955829102451705520335154155851371909127486780104563192947853320890445103657187185488454626566758003301994066105793658003606060116725917896458752803696749681105678196905355666920823393740506970370107090293353411413011518224497498352966754309742608444679253982861391315057901015368227781097721562604204910638089148717780325332924061201759802789465803491456617101235036051805005934967890802670681693220148871476758903735844879687812605506441596234061631790562344791202479272319230312777633259817241757511786625894661372373399987721678436194017461753848595055932221179428178165907401499338974232797758817836118976030211920766450471011823662969546902004350431147698356931219830025854375448065966332291393531607857904334025927747305888271635352747686045298279546918232230473054283722517356346965501678536646146394500595942861845848119152283910214214169277112262316857132341377627483988814865942149085662749728376043926573545154373876884654132575172230796006808924280134768250052676709592230935507932988872991903240545518521349067561002404696658814872270935455096231278737859887982145803325266956729717548438503938256022402740964236339933094455149164316296349681836327488191750998108504634876705475347351950025341038931854286799273297370716389271787050289039097129262061907434934540796988516775162419260958486868441227759777044883363772378646846979629191670379191997049651821583524068462100886781903515600691241678379499125887489528063979631391901221388545604578789453210961692552856517333583061542329377396034531863569852221553831792688096067407807219522069309115756278851077876315431475256369101712419324260545142117460238985178790877281052096793175624491210546418067037518370763270854108863560036877535096145170692560095374918698315215533707039421361603821873185131679188242796568453482221925326279109796106854663150506854769671198629792450142955612334262726268441394854569667046015400549321364182858811093027897171826824510706925526900139073465894453247679668959021683333555936484013210278243586463014247908680080631491899725590183407196549745807085983462838281811392042979662044408385099604970082747586847147877641087195275194973033757070391389024023735377803374469323404135351531688173290072123588374467567405208307635033950991705339724913025273509969152611062820217315637853972748785376405109079470759987819359039578821106550154218524665062744127531642378642314713786138043165438043229771205352883604655714846464126360318849276364955386696013520336183413745114630448486464959235451537102750527730011990350851629472024975386443016896690551442644565207484219873411123404656916880159680356902456634447935774072648880994505967715229152739868549033519124053225949659889530896877666621349131987575750088597877119068754946439996312994435368462851535372812448483340802275193113205242154592441067293051229259658849148330850832698739453577569293627613965699327503009863654306806653336947478185931498995409340405790117595533027567663634715680803166197546265135530373867725458268561864410585761124716290935632713577841154538551556845172323656843609340007397971480383599424561519009763480972196462045222666499305714045647343041137484180749728970944453153858552924658698153231034977107685143847254045004212479967255824606149210492630099799128394993076691564821439340256260379684407127374567257664670231564327399219496155637584257838485001448481049991119913448399085781500992665094771505011914319460158701134615536567439512267459236734562681928120827089956599072963744755496251969681937648119048885336753207478683723916831121129737095271321131498302246522689177731252894987990297693893638986731310062884711162616819486030716283089212397921865371876814561809581612028612338562532818865073748470640132794424589351061818104243515360015258649294778228040882475551431101301436834112075298007386203197419756394662673155276993329715489387010147580676568222073987362923799902119403887344412248871877229605508466502887094190998832111603978720274138983600820768248586735802579851700806828450834380584200842856747451026527903544196902384260944463456204699569499625524743331476516152963409215409183074849996869610868066932690015920612475673702143451056679705193061235470236697716647168573651173962274245228340207825237280206789931122542366802551855614922652055603055995700949015464461100537491672841330497755162433130107098535365303445299689554670997107891168654552001300811590528799028706564834312669367898076758572899720599309095051739170802237661693665884047321594697101111679723635621287165317575088211737970366103626622792547130384773733233997282809391083951309575653935801083056244523135637906734465899995655142405113609110840556439735784098295615705577349365486317100674727299371163753074846575228370170886502321853693892312999620753629799360555365230796972529386068945291250268140644226874295847216589541200006377275731344989689534356359112757278883653699450560144392578169602090945125546731144438688883569627182179584093650824561674057763215474874906025950464925771770837233851916571773477978946954646801141353962378558230121851638853607052683172608132881372236982022500945322720693721986199309923087615472485677540851178837591720904001423357922843494315456840992464603334896429745941697475500740287502944000464385727335113520602545692553169652219324700942321867894412949967734197011663157661707983794272536452492402023093725539884617183897545349963295244454774662052992859707717564466418898117370179324059389633614416262063464298544791586294411485209698037323294151174002169130004000298163138463687073336941996507219831876812338866280692310167767162755877084127015332610736095600989527334658847595384600520795847661656109026723164747571202757733602703400452593438110844718880882059556430366495950430976826186743091505673466747509151199711119027383045368692798595693331956975767512903760520410854840733423389319711619426043789148479253891609279233875278686326529857070409435034036848639403116417046160604709185171867202570998721153319110848109372188483061325713144317503629947241661995628334660182211751168049289084979318902478651808985606979968667750637948282610282635079650602560803681017149154632688912702865703832466439516729758157677235128769785099097822748559167636065227815932001687247723296150153685209224417102268378041543544281048363039655495501419624464434503202625151253575462719999413406842565221599286273892431127325882596196121800263235078196103825036261822941141340407369068570052340348582027270198669211132881741571119909692091763830466979065585027579970226031069320340696217290177697880049266634598170054873917053755291674248943964821846627316111657852334509194140299577496826823618474247761357875984505060717422719493253704545639286350392333152053948423275896668990194304366105872919491793297621277519124213654593448406470616259303330115216835919707008283732791631754519143714680479866235472249187366101908061007610276429075038046848521309318262994552979450130388984604375639013070350497704384794915205524178699234695280615849126334506187616656562855855193129485617864761819471455144381031752058989000731982818718390418713539872055024706010014211814695409840224475612377278299084958181045229318747723092906889635042273215985887990740696828084957343310620454281733022782824576819952531670292599569139273240203155009530162604362070860743595938897855321330920793263830857781612783506434594831125486565576050232443078942602134232069609825361701706800782744413972055994697366351239178062739113888317427360953204004653973521990228897419509242831440419562538915081277673235124215156910725596973194190399624568225894558739923105221062665504030943705728234383055440876284304220903369473206051222912145970899966954758528437253104176029819186216443499260305289825875779624323257996921662044324689276410565037356720420987713719098366403023237864977549953353402516669069076800504670968430071145301061314714026435880606292441119969200536738934306792226246441325843794389265117078572906858967730118694770337501461843172449463699090611819547955455540948996928619068808566727604566626110667132403807990314929935770388880500079981508755518112328159957845330210618900726784846200818866779918878559025830396854314903694188241664128484681145130854955315206527170090672701984354883549953391413944541524873383927657631658767019891724167223858524778308716737504067312533224820390111540584799095085597499531645119955930275097810030831471907948234158529260449454811384155609901506336930070306421968561815563994713503382240933149220429229284834070816223096884395182777832143240093321577757341797608283168826933979188153431358712685736893735223622046582049070960272506772092148350241532251882427580942925517403495533802117113402764840188169560416774345051428413949394000131957158688065889107155514334811467045473403536300409475364090882957559759771276376546769805563708235210241291518640982424113018811089984639841188050388697988722601601776063976785738353421872167844592352158530670798908991612092054728138731561796262336486486664180524459975933910348074342329285390573169332086068720696434333547185739659182022320021078632819302534476804730395126813898653585787489061915731190608978321881251848313174710829348420351854247593858286903157020488670174449341148965223239729344251295739913117791563512827596227692330178569188768833261549028777176083394385299950448719091173512072038304965418997554682860940260474753314589925446845131696748942588871112626135742546907348596360318780497794766651396617235809976423477821335771404860235486337412517089537725436702361239248379720613922347984843344736175601888878938146409082522567812718209643268150335538677369088512281451766079760519014939208404759218780004308349075303375456524539269363667835847398589017429779193624705844891261944431166646443220492920648452915625980147523748262508216156346782293038629399386458695007268666557806093564965840345177024559414405946768933730194416996032753757783672861684453776858220363723487715268763236425655090435439870165046501253569600894884843983092387165670344201034459082696184852656069582088003693661423076290145164195223719450293446737967846511590801463405929096774598890545401090160818828667644271966961260907844905575544451557355735519486970057787362519316387828940257816231653961019641472423833613962831933444913871883533348349745283342518094666080808110021075058568247049650350594196003845191660745926439651633729351610121714542122912488635160392807756102610193390117675274321891076374531011710684128033359397057192456081402475353827665297085668222539045706994878397721818457929761781593251999197755241833633442947401184287864379925641322118585329268006489104909862550162770575461452669202350173155301075538742784146123608044225827605540395780979808541623574047566884630526042224928687239274076750019129222568770585296814075425693636673895898546717329019165402910283953734826608134801307123418817780298943313634700692024481982422005254995608973535870374030946111528383826485682138420389247077949138016927480193986687173697586172125722970249319426132525260626725112579116690216851844628124076058416786916785876488791879281432046729349874407169436992058541433849361457493469670500848851072836667812468453476405017805972731854492456154090219995947148475312773326556718570989203098334000971710659750072288410112735321050546706235630923461674901147168121035974638762728896815836998122308385459009579000427665784213791612428180028222965319671199116699129068527948972540643808918929281613599724789470702090122250045404784318036015074839056515386682922419346088350593860545328723096978958039473239839825890780372263755186755184373003267049550072481964716551819772361215392002998653944134693394972477499553886179054041838790434640665525283036704622495444624511213749290561866716494686282548975483086368382770114386900498761522209396272932497749260199729852206521672514517492371378681724641082074982605883085108033147425818840825783091234868110190397559930832573726140307633840486787052992535178680410404961402775531339219261037754572015466711920294043438665666466166569604657336600391206009920685472330846843622155556447085712596795443465720531629867651298294046750505467888411711683460333563073244353133844680812012498460465937102333590766295408133167918037611163279431477387593618743053026731890356410272269558142034782186750217894564763800148874700782146411363229659985309645060596705303506756694073385578519251325517046657989255954714256129982682019912302162396215356053886741887359351120680618118203790456031173811747587099184088028094718136656728551230018404114782464655779755816603438179506519216344661691500880492635046134942858536769485172015868211862705652230073226151350071904760275217789457063141791012392300536973603743273973268411484145449944704720994609838414698638025707030835624943710427631991041223354909315402638155272390796727374798386121377989922164666338079812134043844577178961520014644471476904560603078772635046608056802563831711183616929366721213354629296626946323858638401250457055422311585095708889528043181774618934449657138924184930184056404316161481558777676666238945767476078856497522810613647106115800584422095434915532626196228583856465387663705268589140977674647964656779984249797555501164584825527535551494292562608688717695198410101162422502552516091517643618228887097612278478179336564952916959574671757043688069964958729992453286750893636424535755294926316525554813678145055745267541115881580191321003632651303231880449440654550640312776578394208411409995731445934138364509580639576108031842149797922257590321169506649812077329237999668545108372619740242122850370352321088348694165506433112045864240135908503175003259932467018258099480589203185185058961858878952769682014408586725722175450362629270914971237700670243768794603389385417577232252465447366363827667223580394895888166172581997975907190642428359405098184405351584141002029813676311929574376110559014620270160226617011549089489843815061878015520934336482826537372498891953192953578321423075987963060236149140966335832261770125922494798386889405560106332456171521724397740139737945901818305872495071867854627566050032472572587219489099432178880143328629093458099809863945765282953719795549741949843684258019056511698604723651752163147402259414715481270754653251447624625398575742618724968853275951385922485497954011002076198720984402331944270938299422826099064795976213719881882305078209287418859669522026984712809406585763528064696521422837816156885278757997703411022452545860250727968389279987621004450506550932209084226021392401884752849234923562155916701772038181138875362943963521070200330676658539687933438804550788844140683854601862754701912199779212127217163395640590732468235005469237324564626259729530172695012077579084330701381271793632504212365657214863396393311170312590172291363959650458340927416228370681162851891733554712698046868241931370418778976016871111474708902819564555446568246097789791432129156333578906507623875468265242616353950312916797179822707392359062375306934362840259518142189258333512504296924855463478652685896565263662233556289548738184619028589986869585253897570440996385139818860447217688767956177377998934443813788950516101734078430902297237295745453979270661743820527738534668427765968161332090445782732111212544760735579590265483691028858593714696083955706426694146706097095213775395467928949797149846103666272557093700561234230102173206357747666596344443752645603253304444996116982928084511465919938997110296409506330057223086761566433739787555894352946327805273712781468370991699194731507271278328157810066593490345564759849786785085917512232567316949775562609527434474595359989106622936712020019593736054846144461640528947384727497098647501924508029982390813333564644056551457637425974051252846829391473633672667826846605274329787706709466661050282929286357456651656427467058045547811107609011645365892279645614028698076435811416891525497767313103352310684634978651054369163522899819526086062590630249989075929562800951483079193080240528777932615249151700294846093553700812872686861555857242678256944089743176826587599093507946360314985036094042387782510061312718654116469279566775071509782102511169573231348005293252962021733305546471031947155820363020311595444359204763418202692673209588548685630007984678469111131761345101355465558459474158059379780715700447652088110121721416584681037507597101395970737879902472980259168936523294810098690111030358719044079117239172509142931179956607682547676262489218300676524365851589064093361420806949948187478409482967623956941552196205154035447382680406973461718382876813552206662917368290370604372954831938277940876433982861202589357995513411521165447930579084953116933609509543857998751766480511386911565543740634986208167233628990031867345972072714778348967133650443185779366810250666279504185113811944145672343226297375246045030334753042931750768920009261633385826329335567678535693556836800910337461043456341111845265126452349495702470449020744424039583228019462905542174360608699931757659921953164547764802407538096185663787265695984170712925284360170843708633827361441228474329414642700107558471715418724854906162511953915677844135222116334114761836846439917849476125215855339742819310870020746160008984729650258087345710506628899294505579716286654764156328786235694502553287241332653242789478762268196463828763831880077279722240674020962434964821282555779935263901231163558838908869392682943808837855216733680081664088490226367827786715033026885246999098119616136445699631172364185918762362847348086696502913531176059648718299668794064476980126103953307213941280102427546435656803100744172696063486425421422293735517358859232405603027167629049032426082650005661615532032757533390341250802264499721082842393372809419377290247180500624062926749964354228730362601414293898489488114687276790126532731512807186310123447051061412401284891994751895329823974138656356194370026643915574492574577725466145426051637841971458327693955311390618860893682176005456572737333716102666368407034691470949423796449735167558555870126530916564228302334172846551205805270203796587542549076965943903480703912244809518992965311833174057029033823170604421031172771388606509949641107070149283070129691064635980405733456780510883264245997780586008594473473985154191740950365781400379522883768625130626254765781282461367750095139176831628420704261046845777688091358086904873363293098310100448332374299346626460250345229402914647657199287052729432494802062212720197659996410662608774290568639852467796343885114233779314980442302548935526293856615447769695886331436165365309724072160514712066051890266258065169156616230457106632718373235941132344967642749847718181830160660014133530769400295670631801097059387650833572038484842322833555607854890171796051606483519102680404996853424394644190633466277309887590480683168407654165203929059710792709765411195438375604642678134358055831021979576333984531170131288786333878534865744356013006290320734019105042761264720818827861167641177081895695143929773027565891423897768299890955157284147806004963935153147888319017205644506831535992193040006973241652868639883698203243970982906161280983525740816884213615547167535603948748374252018290911855199037921035821937586970522894971032619458460161124253926188011076190305533242502571359785479631065125749993262806006336365355313814720132055484045524057687668200120874687584515122719587513737485329863672455080040900920495302839723273987668158121999326628722710502590526892935354649232089601367713868358509999590887960566524016392089419614338899880876503775138397537807083326893368018648334343881723350471406478911909471953414075835745089626152439083775845348181969624646252240621620579721940913022480719162911522494309937625855052465288563550543678400499702674638637445977125987220083856177499440635385231206973545841110017708660128039579890176458737537213281893695519604161411621115905034692949963236847820152401612725039072485486550086018352342028829638493179968480962896462451011777677984830609416325870855421992340464190507855115819768083122734485337032075379683497883863075330373458503839390955519359110256928826389309361623336242272132739310867012211139748371073973078288646338908867061629504052327766661435645289792511518592358772615418155433291978145217601022587134516978291445590711579983019659260282304767119312641369529229394409325076872898306101910015730283470769335201212659064038081142732276761090895447755994958014378253897546936367027017683377854566401540537164868303806221505706485592416219891675014553209972868955269579798590273058484493068898390082376040920119932788879787519603300373544578790094315969855063342590449268857519957703650155487436952895876191830475525104966324082854265776774808534359401719862047808592391115383323613619137810313867178209635304283017633048602211205105707149595265942942040438666396036282539883400905697746111707626123064971228810496120152367533433355752767255632011882303306997285739926723912110267564232988999013481609410157842457121408159592196689782751183492787314129910929919089857392140832412233109095364523800574090629954909633246901178939960176714163824319827526054881223861665149757912913074086816155013911752956237151075265363738375193636571559274061106872868068174906368967113475834751398391619783181765352704087684134786022544029542168052786353110968175958909776583903634028849772801023351692149663568663053347778232765604184537269094263824988756444975399320802418373212271733408066793598228443919963936611265465287838021586012146402279969493909994375735373803396268303529585013150988642545757559607314053423725245964468974399980368289759371138356648353877141293210756949823926762205550108483404501881497982862473947396337161581620580992012134646889464637713146794208028814210305876465726864820656722432183574979347372227556116001088343999439669860280873273800890289317627718175786781824139008845159134895633634962170148910385910537426274200189453569611848959207650236281436307398957539190968000662927594084671766787792213964687468967128769245599702503320662049147802592971383173851337229248953884301993307906852115312515683778388291082241100762878118052137322479484181540292268657520384829897718069265833637992095332530366169945027657126001386162606582618731202289592519484812569308808231763243813546654937910848005168940905075072874287382597150875605547120048210782695209794679923502903693857640559344525762992881266034325661165579022639363595522108432936783600560856905526373660541415119343042608119358468317870482437976686487477597414271690868532480110953927818405555354769230540565335428671716703411085666702670566407106691705415910099490147582591856299377418679219212208341661317171809322767043767841576389023265347748000509681210634976930994422547524078010623322043671961075667555354869084922183587972944588554553925426994182593976385650970453249353231494866035819014299553704300728380137903045329411218502869927154775978501444966065507012266912345594307460173700646442978912523222915174998487446814389777733098615807793575968699499725519287046483521199563949036374604536972902009787640239160567306338646720444263434322601442890867311011766510936577532482791273787226077200779418535233295238173095451306959610909430814514224036712700600350858069970457812140438776594085765845972882125395877006486786604527489902030182394758830007948165911362172352779107462098270289038645198911394151126905352782961307059939057366250676207065641928031750075102269187409537187560502907012367887050981488661735634211836644738111930170614431759423866781264778084783071407397122497121137440625582031305668674786367691033826307525860063721699915583989936918108062717821591211392037314252311228129328608105303784802175981348209680376789129783413118963936500654698828085079378451089948587683157402182383378113386161160508813460901964579173006659857053432397955924978639032662656013244164689367592735309882151189487104805429006836255177764340156223181884095866494756276162993945390162391965366546042517520334770659351538685221499461480781371575051137677408891880195139101538266600821439790591532455567944547335864351495863888028988417764953093039894461128033914967737513812754384449667259932225684069323259355524881464423672556938567983125564964298292133459479759729074713114893631168832111101124366178284519885470488891271223804112295835005863604247828134455999942859856725635148309797423228033888120457429560179794755845413824151651974914176646200878542651096513824832014179946485173216599343451258636705352829750204788954212041919079071072441616756824917614690295122503832782761058055289608205813679184232787462107281350963092992507691059822269306580271051356048620232891018807598532012478576513311065308087060634215717286814388599646957785545529192463801006747377278944335375900552518825349570027709277808508939198686286129514754374809739897964384719272156966612079102550821741302971575333494714585050751249626848178486598791155188399760811401437990092629577857593569914870853587481908614817830279865644160427422677643546300534279674657301218395827148003873667127130232483896680639882194323601659840575611857506196747089468275477300320696266267274063341771764794889264133579152012220736901730301001784948377407495039720472263008101561681712350757134968535201670893584682786401921028187259971592429518443646002934048004717538422237836407294499608658304683946829901327505405761636605205205364411126487492228501770136019761961212345107803590708276915015377964213809646327837548357794694907347715550091298268398214679951120276473061736243249498174212046675731593351415846887629756115411941680876847951096183487065253126629181797071423509759585498938392221045675663792947047294746361603033346458745707486731869891537151028385130168585689977066874370828667079478533768399334220881332200301253712492652944092766742802467729238286681424941471176720836776023207136780800767899532103781108367924847710578402572931522154553103185159700749133806907511600629881812172681778056061258768900869692189186301506808872339423018826099459320806199880757160367958574052656799281395285438300533128846716252305756003693084173280751623184146640463765959880013001447460533849762256017790842370816926722967627533270334003138249879924490661873777489168065098732123976182991639922209887018242682566972177757668699471555455196617639536902363817914036081140375468800096253127018373210464900820797643613456345944555488791692978969345021467565320580408239131218825349476472510238322296574183063537687210903010222726930818396268400593430352778914544185874218652240449584133821238496876999749810820104540957700838895981103526585757308312842723094722391184586638894333388458861447254128306833485438676818599176390295005783150617785357157589982688121206004606844237329784400732444599085131213625782507395828336251987807144915879180638305359062868094622938808194200369279516238047201775792070837563530404623959826698256476179671323311004240766820244111970158600009993892334465406298392164213133366758038731672264944950134940622752068214332235996303202173006586263261960002644703023272267504525581459922618135139626372931224164410415586796329795329607512311632714653914462170307267836854609854268513308118915476470620218237386095301137623728015968789702511672427960883056288275122303740320521288388549552947330787205614874291103455100861618681009849935899153091204046761033778505301308375104848537356425562335246919316449077926707313771422265393002410199651870010090015160297646465677048426747650071893038879225195726612411299701730726092958094573763686949459401206315299915375852661348765437224315581420349239203983674977538547476631516250882112170725569522689173446909973212184441922274072467684197006546670965864016116822622053551241575367973010289210712412673220968855281799656744609542401514696774102751739944285156267668951662418891147848784464498004021343335420235355035056380564317866644663679162011737305878261849234251904553011165616851328157856062680978734339779386714889341771249895295477234983875968839840264342029632990603695676956369669261502657365995529449557117025608400655629840707335828734980550928972388263210092795928631674900560468198953862950931835240167920403608835084675204691417946167387085644377218847492082515805119713957793186935964014841536365462802488896576345250707504177597710351768191946083232004049508230031204698139295761002595390439125371652647360528520414683960609505921755377813726513068994378961986531907997377747545274419879201992372795845135261973581590031157490124632935804281302327906688286174762921007007378889368618122640638199709584857038931427730329230722214804302606070442272462302660829464252313636582561979922290991895616102844968494813952422571054088914959667734492431528869383801309089883532951195840266251634919943793249888010766017314641611631571180093486515816963980737396426184413285103443539869058684001751934785445313914182885700496181606756649386751140955567069035927769387316345066986442675930094862888390407219330750464648589311137892507133664012272135419760937967082590038819018886221591035656665713328837766827995292192302981565467381710769549782250230489793395629426990313277702436688481125143875330025163595743327105967610684643125202132505820568995094433502625557379485648656654285430063309200904458080013644426620851129131427164950503257602322952699546417383750542461212231769492628827545856046408279634724204879937521334556055717484755742013892299627261823249905300895095298069791041834671257117652259878925637614561056508452967214090187102244381261991719028463262570943935742455063248576612548293681272942593139435347724991876563470599898315817913782101777194314237961746848406644117683618040803029147821840917751380004203283364853188079939547772781494948107516107279253779712449380518252826885772227289963764459477436922065367745326503707651583992550177133127009692492201291365321113244356224096097028578176029702115832729547775573163821061671007234354831369919267587070932166674812933706982030856371603171887566001855293591191924715933254832826035393079403126899545210756319963467709243963858186108882625007179181559255987393133800753243733336132500214625963172045548797930998717468061838762636504043565189169646971647279077216984645578815016670365828879404101052093263246784686969410247893654171615174907497098914846029791119653693604571411791648351021201877002802566082895319274830793178632423727767109443102369494134283731837510166032384350599314580196482267093585899692140133516020773136106922971649076965903960411064288286315957526256371299608289471403520027732408617540570523041567271972070151763629901504765959931670474542995812242292708562142113133315791245303985223201304194438254863210361987736814442622822306422021172108916711806120257767506517783906251517326942451301803993865580125217478731193093166280545373499725309466200741282366828440230131642869817606357869577386093753239049372343170272059285941908240839240929981120532660522917489556890887858278319830515288150499982762220976817766771878207637309561700541602386138777017049528705872101763047146554806788663241219099867329831190842356803476067561059000393886191867372965516068045800228650144305047192135760774041078676552140238191664295307050579159140623891661896895388570262469410393191356214779726071633425731289066320742130460236850528793200848742293156252577749332285861464052588706096777084236124656257895034868237877420672634568656606259693985685584727044096615408446363404605258213775516261578522802739803303684340778334149525257385114127606285097140246335002577918126250773294461360259379175089225187355751171258139037268119898692856245299710310815408348559928287503987246927982124693781661199362971860694053230171772122343615166972856794274034602533525051034697889627955530639938914272791805662011754253664254992116991648011850128480799298838362179337541300822837756687020330677808299114354902150683583303526420487261162474909791178038510167403338258626567809595618365819565527165089200839006780751268074076518052931172692276535705960479971675513562794483703933715074115229207127138721290559266931023874272717043158051476182615929057134744770390593862883635301341819086987229911565028467223323834782544897848760800664317408411378603276789308705935060567298256470569775394984633141406160992861204221828145591137931179539083496265790346177695865549580636357376058083982742772120807990400823907349275550453842798709410862215210397212362898447276545027195265462569264123308045163909378285742064805241804734176120873776354945489944758692460952253219460652540846343061529213055891756096295512180894381578800343751688228033015081669502446885831663443019716815949513468875815233434707982473441988459932674713987096202232584913002849513180320895289230500796075482143655783045551429110845248805527331376525298983922450753960168207276638962559511482833530219529388304848584237350818616071505913450669964710944813743117411868916162938432102088993037753702096168806965918187372324463787849870952646380549610657780949337283890649604027161369004860596876539920524567979340528268046590440201732082795761813072787005565233921652321375079345616965979573324005432643052718177212730370294284435431789022039045160487606829354063607332537396223108210717436862886491016267774127523372318759210669570102953422927467234193788592659289343472976197585515855911680211243970412576893605140882325359183550384819838394679199752623232672244822550767656582977528054147355009905971919853606519601747551204795346769263528032716465734600004198265783499332288263870582384417896099484715881780785545937045904629212388970303002469014075097187744236237575892394465646627393054673050733348542420215532926406460027525076379619862582361965570419885326130312074407212771180012456587579324185854944220749656698782680756474441859116932680924358320363203646718189726790495874699190058824388905136794798592048742758979342627096851958534711831002827197686056954312329046148843461545325822488236260871653615742694913515573351790249101026209463995590662929335687005398279924639481984164531370868197013558387829383815578830833850819942644875705638095443785183378107019370996060244295899539648936234542304507400555143646615154029580896183451902851853825880686031462307212682146669495513514645532901761003101937459282021894723423937829251665555133159304988383703312314168907785579929067116258161630843180570055765664763416592961122116760935102953229764678140611552468189454646695384251412763848720814816821850488088823205746738010122833408989847332354708173037137277302431813632738818737936600655271617665459079414885943629188581509043144665909872035500130795769326789268683740915323198653435407615206708195473973718776045839685535562196299558237693523794463036064864519924249480268732433466376259531996096723633422185266438771744555412046083795491032065496257756568273807358061690796898503692486131043626619669884189467146004061355566880578934678603083829210311295726109491919202550314174506156356720449133010944992318758298277275858091644117886461817451009484730723440445818199310426570008476211618868779219630969597816838802611079744958606783801531712091020660147884096869863879664474182090596638881977330932279283624143675887674065037954427980563248963473090288862104502328152360863740577588100280319782346314434785298279943670625789571011381307088599083626550607101405422418364059121617950876034457350361210838539919062453003381017870832229418390002708836683959582737893327560294338852932817184853199345571810568273104914137076126694487904653806197533500486976875566877813113114848815105416328281003076872138767631689659727712477686546657615808510551600935650535192270893738167322480559859032949612704089941166545410512837762121548346267275419452366426982740897323842378826527106427348069130815734885575949581468926496039225934791894612474346184127412684515979727625666597102955218210575374181129893161101582774233367334347929251301519160416965483666814894231469255592788866974495630312080576936019047064989968985382455230581332329307500883353564983227766000825444855451759082462638198892753624704036197378476637432503358977458423968298935237711089778985002840940662517272726443118209398397000595770851373598454687327026836612247897285387084458029782064057981632632715477342249603559589219796327822179014103193518480673349770242284065832825168752048751045540165546999488613313998147040501506921964648863386536384152274083847198744279742155237061305469751562629667479945673124637474852972984157820010478916050231877019286931452030407205193567614002581363287627295248788613255647754124913392949737664606071474567579665071011728618627874529793718088606928989757476870088863084949702439752814212167111138010333334584423938543113180052850427162503368583545766034657607457448637882495546832398462774624455586514508129578967787667120979617878206627643338820221605642110443689207410343530945059247556233745594378909354713204368917858901378943738946137941799903440452700170171550573021834419463500199098999810281632560928774342087787191801828483018850839460848073959294266668244544593466066040514960257717524316696699648927234310813749263050230092366179975993822670743623448775850733953210014566976357515828240553999804237318968022466665316055892285958754055143431414995355374061739718361665699258558595595828709493706010276205426013068598488196789617947269999873014482476064452965080874312101275966007163094832826089854574607450693357434423535968568945819671136786569042680767963000303427371629974436611115206550239425613495455910132294148079401518193727815987678945207028451474594159182451299185326264736231748772117253542612536098891436875126592785331998596439940008938709608956539929902475490715879747366756718500473788401579895098349514306700955633758616417437615694146259147165853099805625158921298853614500113352116090747787097954350925176751588999047287344872889089667184298819442360003028897608914039083257968707150173217899588330208911218389417643981290633852205392564398567071088034191084588801383875535322979689090780873253643264463803557921568622960525206762782093835512542205439086934929201930028107658097184724142809518644459052348793672533958446338098182723275846113082929388329407373698202714034199481190094817081845081824634283289631990722014732479885724119829364905743519138347506860559607698682823516468630985148004465199286133392403412243984604778371327189044230453207504832849534966795985608889873817158438789423175707876388288033400000281598337822848910644516121874854409969730055342402863096886389668245512232570150707681682796226285242408814624283481662856536441632022642400315330768092845571727571492023850808957453411941787672132522509768785291060431030495658484898279740353917951245552381933244907906987893682654530143971894344383376134036811311538082730432249345497415185630211469616559745849751197460931812058982607357528381202144523495150406843325059722651668623138840043953290884891040207282325417526603444578329246224637885488786497315290358616911337864286129598969569366170993078319948398872015486856970836110516415651173459875230666026936099635299244318081161087525982749101975544496879728863175660290454489078875565744074722197461433590651299584801294821536422053175702960153681525626734902274281769489540516420032546516358529931766273418155596406893779125085806099222056569621367749653324719252073267992592610578963993380682515764825805613941633812383034489057995650630769044545453442555664586130775997819186475617095439071995585801546319706397220750349622792184218905441245398090566446102119602975537552384577657741738717132812755726121805564183265537937144903021041601478737632800717451530919828836891781994820094572604761545704804291626261567114083996970634758607533998440050755254848836837499772737473167833624797169617949568280949105224609500329372804040079253057058919084582254234042740714371381156431927902439872596576702366171479483645590886140531188478456718220251990110013537900670298665888882592253925453134556985493148305698853597309626770162266275512491157408089685123993648048377863554538246867138296308354378145516381220967178366490094096327332731537385733188281239890245870810687888656440351268251319778168133641763715717340169872189373081723910509549051265549284625938880621790281422676570013353843222179777423599343659130563829817424064529024926796932362996257365150402219965299066517093782267351884391265836549126221936634002522557410192688101167532761065622683047849554638825639060542252044913941477080490273162851458575833797582756328141258400487669349338357085027566259142585777966858513248445460051694316550887959721192957839826337832940194892822821253992686996861090828554773467651302463660118819827569170960200310111491439728598725712985188645635693302397122566166427064763575160972660614288024220684348082543958010195688749624373307213902999482606143938947801813678517381251860602843105815405223609325671923692477856105526986760973867755843024965289570289743929834033283623683668741950601349856521154738565038811327798320664844122068247694646525536301572687465368374242762169460515539208234104803823649562717247756705307965677189283914121506450248019850474470643777046380833136249039069169857697832372026629367775309124341918063203449654747268108628808437998814889850005251781391164820789638163444546175686854722357167100582513775343223219204155421935585160919019449297777138632210217008422123576530081688279219282104630827198933637061940512139550117472167375925303223133019938814268408141482820888027169101581107431359380514865758845166517664126765369313735696628666783312140826281263589067304886114681123403971528632456827833029871443733008442344199787555011030310050795040228991734160057024698439164977187392498811005234791903784911398546279887829228842887651072141890560210629104138790650762087978530634437748328741725720407700900216547225213941088149309166824905553197238137678378244858268268357702634699821243084150646776085336049337007410868975665913082475754228404410265002902289525856933917906369946441335907426641173787467452961067200971398521483574259429420765905496277205393867810409301149238116639856975031933002200720754925412960047454912276913925090092762461678245551276484844068131558225058988735748638636752647320701002322403888840180533347575705958190656591796280777202415445025945744725061370332625852326257749253401711927094117940112612870108118210370464422853914375377168536451140780891276673003682514212502312417618333974809278335452117127630544348050485519974058421833544393734279669941965732720629619442971876352041624319412206307133210627703152771963324274730785328884416038101191676780988179365221347579239498973715982887912073834623425845619752493031702006596275757763917514849628708261633120786701016924534966718541418586820262188684756458007357597926737173596777068683270191318660305569449340367878742700743150949674056519018335892754471275485646750183234599088315994957528223792668725227528220670343230382096797774083295933038830585160710962422103992752040887790450640117153824044409206883260799720896449507235449887821685427216907835633452984502607418227261401401757525896942553871068646218455048134155764024074818972517811192286145426578865175506043428384197059183816612500198112583698519093186756008750614692757663589039657756638088759835990511074556984504985510671150425051229830493273291492786649131619820668045099131573010829081029749501291061981495278011778129278965515428233160939750504300550276645235305211500287990778965738557342688593911102440799732521336312651580714651442187276333609031586491830340146966445382656106903066752401882801833426507671176374463819142755340724768230225517383665066873818282153581550708231719040022413708395570440358688349748463451395064620203343485206038161533607126693528403730567053930222573002986964477051055472662272231748789670450927014093554753043360443497814439468548971407268386535529581911668418820596592335802352008537798222715106015679721462816502587609089047182606377170764302115026915619220182524638442072118412049902894835959174741473803275086047738769360677740100039257992844151587453177806947197732785910348408821650520252109936322288877226794571781509271431256986339444805505302477330412810003132294535046751611893641525153035949016731122856407220652380109956187784005556059510632875382510115274129791756824630388342196725607950813098334054190184266214693901875301618257517348015129239354430768511722164609195078493355619619133516082316468212578839605735330597526307408662153297218253104076429903041828472413330750660578093750603581432055324662678253488686144885015476575307056291055217001659828798750018659593360087321182344131954763650569247046032145972569132200664755238469348763118371687951342622655746441204264213108376131905180879206282915682416430897204365266480659627397261275228025959252171917565610716184090517809927467384793461839614859909697093517771420004205444514939130225952819228782252266252644192766622264460053340799423617240456643724179725252379840404022303250473733804992792753750337718381846716895384162838833882992360762709370891065542719789946292283772150716261580890942688727020826510181042250619975606841259331646992402023110003999216666120250312330578371188055354110097205611661320291458634778483638967074774496508851613051177976319244202190818354196334767445592740905495832891531936976494950219657030101570292430874487460042854285212377147223015215830655812736635115696519390184046945437446831994778019801798378669225822425604440495969015165951900577951018143287807162106928422863844738782085179815770846551562718849444934942127587440731787330429504058224267805977350140761636953380375871225721909332703061524193318858739586612104168381307818486461440988215886180536570943415823184569240778997352636070519050118600534159350140953464148200785404947917978609155103008865359986014369502090049068356567961345784123471624468318045140743421893174054594776760708570642699864832893609850645349108292539200911352545648929672340807959639536142380715632462329311525010601859037066280671147331423294907183467079748259145161505665471774329474032237049321019127106395494011118631346196994979435578369908889559792966334491506538614693009496356691493581976849311420068669964092647883539254392195145561690643352580781451580446907750481590858347153258266858568452185440141471036088260708897677833742832479085631187113807091938911209382190637927726986829683084631729623766228973872090042031743262456508228254871107734349728316796668098669144434048138273178905687770674103133871397615991419226387237622145122620286467055995351970614367138709229582738798799776204234345891654012149278193598044458431653689787978194494181098349712645101384285691189118877302494949109981186385828628308911061473527857648830137669890295826098656120170970491941541847156460125229853725855201857989153075473038117412661609220538104899518981747935773047859896197344728006099014545523245561382428768147267247380579051141984251648982344764382880211581266599205902559377707235103934990014811429344947851688933698404218402172671708576553065298303573760317027600346107443096895163156129568102602795214532405094125775724119257624475428844528231831214607452089365455947597821926352876587841164453450610700503857414162364488254609984747693143028019453392977626981471357366275283894849283461936529252417943264795617834857290110394049420779045673964876264431896780594880046618111044265128999256043860549697821410309390431241926761109700304707921168049892275291169417422424970136240675620656302845182860865318246005489003362571390247890579585244923351866649168854960525639891427260818083423661485127814733290613923547407231990129890179613378620750954729620274789313552117010217563433050641031583322930212771845001708377248586888067331321997331179824962558990281766762402780100964672600261436314696815687199814764663774350070785995994085187194513602227228200230260029518276363961134921345177426675786595218409042101548430842725496593797865887617090135581929592497835291057312889218721153455748556622648454407428306580669271550276282347254434332898204629523690042133974334240021060669593839624527170060497632473014576747653710057420324159780951896885067474585787980625464582132079829883709872444627026438154824811312674409843949278531408193013898709861908498921993091344826005736862529929658110380799548208202266189160874095530876329185612147307419236942607539666028051804427209055331699584015984835854469783371043084831356427596146183475917216094320862088252822975169988122881054926382077859215047056762687250141107755956858236852212238083110134257639220837974044202547488022619102576058761417789184205159611360866418620959089028518363493647162442323824428789198565394024396639688997446427828334147733915441545846598721688554986662076552157100419057029115897721583954426372935655731817289364847872585935807737568142868100535917523274095661373885828466245539923327004605379262488178997863683351083299533792131011813742169861558419477219350007245875741309917088608215507844064187117249337757800591936929706767654459331831477409047675282025395852105411658798540884574554746670037248216199462460710997028931696522936252180887680327708921911313936601640197327469280046037830207923114082895152115892761068832251681410941542756882727856758692227593045319499826555612922817020403051569667478987596994581919766789457493150560037814829695955552745662088607918529640770933784727769740662964390188303401328498865374414808885885199195583095890729422247694893602009817809849553239968965278928994281485922172697765392970643022002344449278308125198047455114787145667957709836024864231765840835345179212882649559288578647612364181551013620327655184030172064479750874550473584188911507603590346758071315040903065420770226252670084405446746545627261450338822653807965526595581312706212365564565315540917033425685358254358794851971978349453272572658948739446618428932921865578608442557065858120802238485468813066882665030344722458312497962919057901995568219195036308032004023408653208086230489882991989540534511892217345298366965506755581349385302040264501122350561678495254139247560909244616254467578227595377008919813839494803885164131568971723479265106919675179998690429871224516279530077781311135817197551644872549642657267929032828702809172575010006954081320951316610660355443041278676233950932686667783859305457988123742251628245279790776238351360242375372244265837576931598961437281193110958972886886937513073485044861739880079877943530581033544327259380033406656287937551364211230622466145276728824994416309690954465044417090104570417948236420060765385251236251065570056536125176699189906024332631858925718815260970700913867833384601747689496761246245245771717839253907304949814349875409589515374420196936920884850876725806194935537042378070875673589219432765295964092955393527435636353559079181099236707135574946806704220998885711556865886328175398221520962725492404207186422346837014302223090167319288961914744953934730075119380441988797029272365002627638076290479725678451326467415747605500161850617228870003335005848916926304465540060253396614892299252907442718088892295924889747735675222902079141474862300592108403677957372566059627791090040165634432199269457659343950814099975309332692790115086230027862104505545987063493939055262914643219162276076262146748112495911859599132219887512836044738368659315550451968182138099829071114865783726548292043885254206930134237365783040787472348405588085397727212873516251335316558405290036765881447365140946858603886272493057852568644858913010295724457460568099491873441989582964618313320630837658669348501670472262451301271122122080468649637975137353610305940106246959963556502505406604926902434025606979736225738162251319297780379880516845854202721825171387857730719614825067975064368612368999672355935122969628355644484784031484077913178921567076241783739342570106277858268873129579277336271169688179622011742836422103086326757071130046614670863602364042723006376678370464792725044935754712216679962698615601796570950026457244779908931971256064703666727671219034792145308828149005825451295591818377868015471931727019380419275753791158056273940956111996240022414249853479727043026441260537584605802706864341877816971451299158237528946081377374375812451163623020022856132179813043338755725998598811680560276894619266226881109329208848897878275057959658405511849169138515313126634749753561174420342325581117125305105006248148931624136933964857592404746983580570477636903722489114784367529238343481427938400287002151757343989814376168802192453824113608224594411751165021602998123250029892245472316252088328421037797491695235622041434776469149906317069402081150107492471809835167132978926247375374974726452937047881156958310765166466600961806077220978318456524129426021675984042925646614078423637131535420614797281109299199702741325050613284328612261229712674428060415360759423051321204408767876045697027269951048257023665415612620930514130111107937154421084232890341574825502725574657924849491846535823171068780823369544431621826793879717416511215522275385161341708354096309501665800080502558538182571866872118907012425674054800845640424335074945848379966592835631454730906667504759106751888805072332547131383305970944659683383685733300103575318476111399689570949771276687620116456148056786210189642077753924558717937218229306642012712867711026884487986086043299044484595438775160829517865399940379760829622434620302877594322170005414235409012452529454068777332206061755754849764860650284275621085880091286107541918519731017417363070248895511632775450595351942786484154210056393679484905912408080162257260026468109124427855362131038090757251054811363937063670811654315794843250428861547014654627088645998853045650018112865136269295805951726320065621287014372574318125660504883398515568106050496067386847749499228449977996736996628093080021091519267310683915098189249246561536802276041344498040653146908881295908482778386051644192831533743912513392151976198680053689747095603106724315210627829785941589657389838221261682084701905751195865848979407357755850782773756381098822549758721375924091766680865285007031589225688135416534884931000720067190067001244635751119417869667227156767712243067248357990683559329108661971533045385329866298620659476888279444128612801543764377014788220832713448526778604261443668662289212462783026254335808163872271614913597262644264625255371818170096794827193004550120887383814668271289823570136490315439067025324491372336878889641351562580418297071511368827516715717253474384783178594259306778835336844308540935074206482003011466974514815574292820173900952021861619906558657804514707171991670091075285742770139265541776701851487839266093574598027653870906619239772465664550068943014529933455161411872284665986681423590968495767311558407392378948669743609437704761085779239260362122665294322529806340272427931823849292358207701005644744647388196944991252659377459229374187400699231869207552213228590566283683229716066928470186813907246251282580429764180806086804904417934322277615602749184122351354932093944888793514965472608201523363841230991170490247364841119760599316748717674306610510423465161859189574921871212344069881720405041808683492155155120472673971036638380136978730409192156185777442982690845896620430593967099580553613744535260448320773313441354862416224242362764165151362967942270107936022740650911596934372338842876678484362898386966389799973078746327940065499158496407434053723190360207383721169789553157016888315318624741408838821653437021316429218802582400894837704535835203377602015365935964431738266610581182769429919388516834968776253625732866935053142040009000366941292412666365971407273314000739044655472431313622750748503286035642380125783895102230577757691476286768699689958815930694647410592176324235617820689987220417223565527629472454130533338382483959079082999376167106595470327729105170113403818190217789517882413796368923312037923234593159844122808348700138492998314630072156492004617960855456102490630994784323826959327212490887057773629416711472131736671935643160129169014441513131591300754957518621103100647342470748245521243254697002185813010568471180493953462845759980132847444050602419715913710518680368524614144987077994613812806924780787339397892952986479097904214202843192601489674030904976952170343776036124503995213086566525851075172201818067752871667878405367322593521931379537633007023277450523386325275200019244760527418793774220586015556026279016981799973080161326979391933586056256540864287525792630520580443787693620575813986840053601107819767456925868265088837733858678975666272063363382633375603466366780180762965957584403853530444833795901242694332149700740876847597708405892473806147344496658186941783502941022893850648071879793547378778482264161377816131359534409263652708278745506932175741657547444608143281815045512590277926660329839172673949712796996897452944703949658281179129922526884053747120650431203085966225537559335107937623337941193258364880936045532971188690132049412225451870782515806285567522774713796817180446753086759670635332213020338335240164576762021186586997439175593652948094460892742680135032673786761290101689280085393920635944048569328907169179718590932928741387115088014223940358349601597594216744207022586129696748985350475589915454271297686472576502752611987602625039879411210093218674038849029668968078009271142405419187086792550041865532847934965857508753348986097203180457900884346428481671916861928000198455881175134471634974784739133073706548339747813305013194671033186053029104639760504835249755791580642871193787420642376538579017087110258623123402232334485275300554986201454078479813431146653183640333794222924267403876710447434094278676108715152027457492327505181585882439996981197977333930683120379084980137762513812497130228480810625646893361669652095035219135895624631596649897518937227051457636981070603284980493028199602635451198443326983197331484073643508151126563567006943457192202944771924845784181152364250484190262097880630125316513920927043825648331255799634812454553133587413991765231062036237500082379743773148522149033817577328147176448000763223854850014100258824103984462058368009642065342754391064014918210509795719233331783005093719832378479792154593858624431417214644903844472732591542438722361764210883553677245778929657963555828179825552997485725992485274322491970387620959987789826186648502529556794545623082028606519385819851900348632670109915396068229331171677310075120845476039182614816279503128969779560952097039158407372383796376557352513251095723703499398399698618247278096520902078296503940727550896566597434766856219762908627798874811173468635465085211996947260289246290450386074638712389362162254066889327745961887166316585536960820390268115535283952910105106116876913115477318670418405876625503793563753106506341306530773089324265738605512000100834381648984907673579810196090562762696675969526515856385245913217369141678526047294282863633321503692393664415957945124167036331694356467551648244600567434282966294247359608116137762632470792603869521507361095855880676316868628694205827144005566180910376433013033903802014014565102843436523514460230375456352502083330030322079311981377285613399352677593631143930655066765199621318777690013136009652028506312194322367192020811160324335546427087187491734675201792510941379668038941422525338953825085935889261111463890857720635758355837490855760308163651541529761233585323068275873292885242247804174290459924225807904591889601892587569448422851899403997509176898670695827045966009398052442628786508944172825569149078635969171074246929243281001574471939539117778899280789254913305621581009897909865513016102035458391695194552145116228705831811844892994201659650714343590428803349894641833084612452090740392005520694777309860773370256087210909094065584964550985313008129863189399360897752030723830946204841807929984783888603802296043591273105670116429823723924935978677038201757016178707378044869873357112703318509311391801981504261772048198287519367062025290768695518491375691931319824046666300563517884625159017669864263899551470622598883018777356557276964296661606238702007267573461717455187205578301446386771377989349986175563132165908717317476067411344960540687616583730027841209912153833209268904233354390811171492871314055902432230948108830075431431541045239375059627169867993331661513528034833441624725206056858014536005726507045014043284295926038961816782705106550392614315499226408293451442580100404693852857656644051491918146026206276917600413222440898469094438764095112480362629664431369020530952257118036961837245008897307180426000444731669869183194945992903006121801283569385598876384104062559858961918435873104846881258123109639099813746108901121723137926460597393897738940147493313280705516754676603052661876017212193892666701893853722548124485798722842976959673785827491074900336091683965898218838919920009059660000978478197405635162614121749319223387184971370742760256121136007028651272504118837916568006322746139545608245613629314575613851298013233128005438350596144301450683292294375641142572259326555782450545077517799450214194804690161520677320641458045766269266476358160137876263234444549083237660039938351718935561629519963544024509039826991418267720124969975657283878648581743578144264725615664934808291418115310363970780687765660800705007845034410732225513813766320664396456218683904575727681896074861206258917725793272819660133439534016818586690343555641994168466962257116268982273871414369342425531090479717052738850700619225240742314343519158972907073441859669088134935266743516063503091973771224884966600892972232748477682734686909930883139085053740437648120919428156285344786586662582948185536952245040329764910739456441610480759765986365990290324093195590542893869411936923098404278121144512699321475651058401639242528211170821441487768304162701911445517826667913285002308082504958311259129564439989395587432798502839599813283579500426121511256463762633061975944082770703326156659568943010405345869654582725268743780263373755206936368146482901608587723191891034916710821463578381571346406490071203106348331383924561646484892432431508644056940422285354084277077603934508709924566948579319653040505145919529464779167877991551164412967856980742687771946021824764388134775465144670268907088943545960845347442700879520693970249068148577364670329147603117907655588182514063174565841505246832818318290999150131863922700465661453252995935919869877070809886943986321776037829966886069971775192287876642763951743217499051994866151023064129351634602338213788737014595003474422352689085956506730998112706310147687726084505543257650453983547296865688448346005910011133898355293136745268134821639947681612905819272549152857369399389741067783231060496529713188374609589120993420070345630909069786021681726284368725638723541688363186384833504268953904254703469470830272434954902002750401240613829929657470570209498302180223895994558334150173009551878652227038131405007286034934398105081132539387127244304919193727329977207109416360068340803200076824037462125479953360624380390797808679727720461640293016788270835691448101359862779634079704290453535868958886212725780914637203152961962364872441575105157195710968726560618422218801294198003801146176070501680602640170224341777747925587390860985459346494512263874736614266347588867649319096754491931850714223417395230724981446205956144836184739403071060661577326728386223916114875660727958877112877100020459121140954598856227356990976730172683066804655053483043810379123240281691337000087435723463911921805586205669957879006851149313814948946065638559410107092460814211810642074120039798556551846791538781711780945737444672413066655096592715394563540723967914194672576415412607400409646362414261444743981137159843083764551050974466421687485608660680353016100126715953979111741501148487337658069114786953013779934090329873367524825536751794692339097101870915551255049191113945711418502933788414561388312037175479895364300137630222725451759960218926491080685576520965255174262692785982509103487229905454671462266084741768907573931439835816387131197469266046537888879332220010486080541315183831299909105032605210608199490674544716291250454251208234419413951909824787792040181671232000666615984956309750216145913979415561728468818954396101913643510282259860390326799963137497697063300689521659998905508760235978365232438632039143622116176358409112737339710020981214308524832968342882779439454386560507879964558243016752944033713677975848997100405549563004232851570821769364111353060506561959439549729515137406894425762878206970502846885777536293118426274761492355121499657776508445381829497845835578734281139978472770750606766715490313217190728074804214151720338454694002559595254106022111858716633877633785248094909460615806052464550282088625554632460864328695478512819772323879099320775143426622143389299161581693650602848637886180281176498342327313083619364374920510234490343524281434548893894662623915324497615697982151090139822699876171127796540501524354655901515121209075937261198425609826165385461454157176453323223964304792097384284208797158976558300276905499209114511102261839452962781321274865131186511001524951222400430345684449601944436446510103652887854643548783046070164165182083786437003453150192931270171068161316033081000433328938708205778544791356591906094926960895921014841557220043603721229870286208789583199881628425953667955221693053810785273497476170211544891272858072406042119655968860839620394161896196502531414735324443006877975998424344444326236183126721399022062780851539639117051410285959198182196232398008015964439906982660455007836651732750560105440687025825779203798338063643464494587740412217834845576473452110346665460211849863929839397963462952870795434633954049766314501611484977032772415618313556635876882684093617509622549268567116376875177759888075146442979604594061156379360855620803041898926216545013139823810484859281756452542688163194167335035128953037706157335389541318484303267389991694384693569862000444805574481048476059318028188323554559164943047366710200401629627456317604488884521109237619926959707417676738881667369686032275505503151611326714693045650755256150034107489016403027554370418600216645626418913183592278961267006312047445432887099871767539412779617708387773846985708343192325843673196521753460661009382817786288550654170583814457603449957242819057853651713529597030395960663975441616864313073112773855550952689731033169519449758130725631394700494238227755822112637198414469524658181895539268804337540960713697789795271262396319303783710976950042136032284323053427575235900899790244839998989662149848637045696161311624380877094240671594911320962435622485574883213026274349366439117269021659792159553649749285211467855352127790526516104470106963002866237872185894022547720034721593174823807890399330878070954601780758504739783075286993439874557436482166140653743414652880080761704838814152482758491918855479628942562103016419599105751776370921254343924452370223268935308307479457648191117061469882231952917798344436720094401318428175005577903700267430740653448241182492530913297068820713755578906251973073950372963530864712993708555722944629568772253003615443564296831668322975346474554163288281391553069246872193596397220385050305956475339881159485944038191746613418328597365440150480993297052111050583894134789568244887325487328602274329509130880469708237773879068597565823231477567878948803117066404630626066396631014785675479008497377602657744007197241392729307201762285704841238333019757164028530189981947274932355546065321826453021081040344240345165755159842136498790556631379201683404472227384871409282704221993176044820720525244269926290980170620274388782515598399512442856003833532747013842788030115378423340600727082602164425241766771172632422751073706161820585795678806295273173988528675680412995385194928795717006823565161524964819240928350186595000416729648701656594586310394108362500209312073603565051390637471433305511720131939394127034027083587564981005658749838097603594877280230581804041660001672613744468464863816580802126789940492096516342026507058229714749600038266752309961010753372328516762325312981837102109156628563139589791511305155376812458118489489736541750426235364917437012442899571929323026144968535128282170578257797161893853935976604721293091188141086394189750882078962299041987364939804677801847252518734223626181825653741842557956073101190992546429315037515923974038442873286175715521762871433138471527242283460950346777857527354295011008963835537726289685402087284507558758667301935359803677613178303788716966722553252586287590205940053697880348394743093523025443255726395352349134572037193519563808144286032439561410657338250892985308344719018869257538977642204975777766210806446671828215937385048032078447986694573410585337811231017589115219518760942148140891590124004539827309667574677442059802140133057436860239159323026556205093118728580273275100587497660453310236659386180995626680582202828954779566497110538397265127396107315978152178788747339818957011982538927895928451582192595782870738105090726902227649842484579615879143791910104425714039678200425201000296650064380538142469771776565604900921739323790206399397261103914237219861266152728083411456084661099701100229378758770663940906182830600194581712320951296808538188476240829140883018792273481804343724293756264117998728557278388048633260663343638094205205784304725713151697551071624011164542951013062768466868292795421305470295671638314278077621771274503423234139700091599898594125552737394879222659117077257578851095616554429242550741461470451957856531393842100651328360946134614197248630098543718735803228108513363032845113019742717958046801634952893470189953652211010173654751940139568353339968267673991439526148849966510862070976859555252932493735624548173581908389399970628467316445818532019510677340049831468933068138687573291260465019634194696803983162230924212133222325320321619582976492987529086514687399459230867899789495484558973336218431107850604713146754675113420150103180219427319802551536657998597225938826107045658641620101276711168144003363127085090872025948925286305368130472059919887728086567012890093407145090564911190871804472255342307469030345128011256402808019435023143573760833747843866299497088156480366750423662333192734773596791335238378467849393964807612851925852460745763197783787901691814857099121804771905601349030504701313953950158671497388513238821192211619146144274829985168656043730891039900526614366202313739951695981954028189055434909658195838728342552328289184761482949577620620755148316730625432400758205090301906731890314609271792212851516118511222964572784354951228875459441458767158746840527126225080791034019095213179078078395911938723030122091306992207348694755044916351659646609613318874893850501658449572098169199365247329810500611068842072296893976333032012956570549253680151660977419190306710511192467716322839117050653783373845661945428049295581561378817973241553553790725669658340080325564748249989306829500346565147530901223761224198266355514434072060921292576617396791774086671919833759235655073020085718989711961362514563967316201010591343925963153265129711677951119732225918384477046947289781992948429482966010946765503134532586283321563904357334164342106765049744317244495427564799348295861779419815281747702925259346918514542364996750333220026648728422889089516090987294780178151182670845535513152220120270637466802710512364148137455643230867058781090580401032879868600746010503454356143829952136772997046526055093601909767321052225088105075957120853774743435164719912618005509880169633380567925301432740329067991931221460821339775551735660373651853924850563795341853125365162112207966228155651047605773822928970279715189804566313173299067960498620686217537747741986168883597415099593882353987921993607876332745139928481593429143880282735667182776154981462090178881311195835265811998986539503129766109323352881252973821673916500337085543178338883648085116971827251907010647827383862349294013380941985318295092988981099179078503093204808008340172969852621806060269415160970818761988058584745778973508870312672922755843044740170764283317646453117026729911178525063020062789069121266333571990486146394631151153748745675646656912737314841520231358002362914162558512990586732685269347209180279120381689170237778303510296700551047089693493529735268962971414434029841980352073725560025613831640884389864652051161696953658768665743910638378829771381228730781621485213612236040508182981338550939954376597771858922913602210454982861029758597772426168265782382667270268078090148972774112711847564605503529654726369130573141598476088993499889520425064834538525455148626859149418996734817091797484772046625154564482426100196276583547480230386912891610936891469476649246169696677072959391951903002848856930870039393945733815869152748250588372849578065121947475149984993463411554753146230989681331104422569078404045441642189400811977208048562936100560253689487078212109902501956476682024980162561357862115760655412711919782563227638678459880879772818030999197533839645380776920973272168279457231578204430168919999089453967440640924726542142445798339564692907026681030547557827459453813048881627114969070011966252201917540705962970012043317591235054413374679310797847487947734728692099723990467277958933298042431974773331791308375518844501543457358788645926190254059914712772336471185483508249237756751499935392201885501119438919904387521973698482536252402737146530665036641715172906025026890623759272158373877968261154538093491453451559691737947933129858471268152984055393604280605514671478790238598486416510742080916551900638935422147992613774893838261828037714523526668558233841308492595559308523033057021516585454665785237256723228368903742316586390713508077104889160542946489754889551499653954938770914473671833834049486377865472261792285242718230350479358678840131989187547434960562924418682305774941612922931458633115873699327407072674154386669736706718048222667853282130515756394044165600673712301384027897739793892820812833780990330232123767856891920334921995967102432031958968892312496450203586154271283321838772329268462672147198290219702693354804975840706900317200016703404396574468371820051818459858708517076925028839954711212751926763497190965670198779528767673841000042173860116235852354383362596493053140031572414754557467634243567728492729616226176304166223312888961357605718000747398417443971938555764010165740669173202714658369282254311190057082431991531263224431668197838429228668577342504883363653572553662372457371986432115484084524868895305612427454125242100999277561631513702919557285751027983894051304288373349257007355270449379836379654627279932616610306914653053976986694005791607812762236243424561865209792684477693650139863605114377730121809777068891987809540707975220949010646028240106473794106935386338338507737325201830492314967784274629476903027067005554071993769728536724395067801552860255001731047735145915957755021446918853340697103114631569611623623222047382992369312090921128011783210093776854739765244036775475110372574424723817952455482302089637308557225192093720986688571338137729584339857435349146224190030789327866380378399303588980749588235616862814539726430335975986848250912599568560884784993321306433478739349400374456814991896563989169761439416360005206164987019064998573205945626110371706906797150478617873571985106932783490876236399869028238680999218008187109598067337496873760805612302335824708548347035819365976586707763874422321299804195213177798791522394624247207141010770547657036346529284162394647389144937324048484876792220513278912333797048637256236498267917842194713999577471750401227441098612090968477220006622013728370723311484803604658164790264576131902611941200719392457833046440950053462159723124762347817589695685701654609459844208166883923884471941046199884240631658186483546241003142653925914751529190735399466295069626276227550093655905517304234407855182760021826756171123791786686519172702704468517831718010025263016640671679892195506728039987504172053252848767963888713965185168781475876566917262919623462203554960073856628873947772027256213139459651326132820974666675275120391700863077406782730970535897509653031287912178229125253984000511017076396499891073461070039855877204920426050838208851632429498172310638700070120801039361034826932759315784194076461353092905191179406728123922816343886230423612582772181879196164292055937260340505477471961463229908575702003812962761955014087549367603099767958319041542163751483005217349492045583660401204992696662404923091612678852585640008898084924484631777123216864649236854592327791160089912773838887606100642744269827642636211601343936081330835438796198069350606922617287306837143111129623083608266810868445282981057395515960905406686729959660723530096067057009431300722199425348519906475783660365040780516743663874897518196265775797860774803105834534585310465692011876606277607989592138530495376172042359682386035351678287712419950916671500633090781667897230764815941862346426378366357302418313753946606487553950610004297236764337093073502746351542412356530326432206459289035369693431411080716130601631983903242931160168131270587368026650635083972684537622619345185044967825045156653848792412752841108197448486669284068222934697821473017159969216179273120942423714478487776749777814873615869639839528455683168648134102613534913813294526034123780679799084153398502078906262860003222420634578365628713291392161028735433324123088785540208899797129463878146723281791568638683546229910605355965347060824658443746551822663785624541943053750696115291407690222381949997836619672213830847533951982677411009794595117080010846247193396062059458824120804790250539700824474027422554038966569507702943459757308487272839644688170048801109982645421942385846664722034824573368362451754423667241290769335514031871595878125945724471630872640816913697381012820039461971874340755867676239276325613331931170763309038280888725151508038223273114048220653475692093394516545619108457315832713284541769536991810066332596927148921281954578544412226451863883124432263290044699524359964485083259595308853275370360211980792887119269472648305210886058799660861663068317304731492118989949940087460463749300974842174183008540241080451997312417066841829004812092007475492219405529421242002024773323540892995795880046269994391125387488358169654862784368917538667300318625412764881268112127435643522155907179718838892922383008208003356602924789389812138605280688523264777174337026675622833632057835138546488129198268943365908260392677198883372284800046448919442813507892440800919576208604146441529107192085022981814753051477922256709901494361576013800657647970145725451426894665937996077956632387105696003431397524001451643322977600305050372476184835233111375403865752820086923459857281113493377147568360740393537089815321409562928566593063101747649023104060850578974084014712012201589969761341869384101906282963147517166936976221761043063107230390548221532434388434074707635824485886997265179202262858461510052561286465796003309792759755890638249987168659464154596418185658965590720986629870837486438690526170657525693250536824504584606427870504826241557491870279148218079420382058563592086711708494579534859516603952749478385402174707049960472604563353031496458990232147230920697291698845575751980367698448797309448387185353329272604586976768662481365374691404391094420588189269084607013404583207575682490847951635497329825984605527793609337756829517713232403506865726143643131075099487102719568873123727204528982806165424463852609101994904418987719711953230964708164776674249251531698670662346351891086788716984194035872278944700984403917669078405608816035846035259891917700562539253705027027892387305526397380985719843409337898649784898106351084558483302079759711369884784535607552717232786372898669359289920705417536051506079613318302388518088311865834999708770694652671018244122207653390446499258988808749672853807313291845171807623005842204513675033173461351468800923661878791423881700272897779009471782577330875024732253192084306854046942882628644960483415643112138460281527888017703987034602883440871027908188108380356840027723637466395998450977808022598377765296421508342259339476173989269722110099183088756436675003824647310873708175076097243219551686000590610108876655193040908573790349989538631254615076827766991656457467081928897395376325458409876337800083624070291721966058506786695337629088645998401065848491882870434217884636052197445098498221716381816354998686698741319198688795723958195878554613220792913496140361450768278193756729862377592480931010224955502644396045844219665772757278928971743530441482320135157407156535444140355573469123536274252495533191332199431354889291085746859865232139638064058138327185428715258173350818607821059072754778926806955875011681564691227591451142784475312995896730237966411274947391977785620818654598265984248097218523391251683288334314739795900071627791100512122222125873971193313897783096821319721445478283774913324951443955443955691832517684990691075114872470780348324298554471561243816309424006464531746343615299235171074463561880788759393253988043163605569048046181734851416840938252238460581664380406475266637783944938308262814380866112128916171993610801349281016323224635806632831279519751748218922552940140998450081317078577921884925364795157917589154096291869326900479353642574793750732269336984307974709374330775940725612687876383862515743816533593575104903555485398489415151391830798226043290918340857253545670822711016990032472977274061547810854000234008463934152916019411020291236490880834356498544438591863293030671804186353402220122710990210437445302749883317979890041081529620216169559679375021224957070935483326330517662809469512043766779543574676327821436305512726478092968046778324971965911837225479403462149640738281748051709238573702075377206912946078654285465671586667883384909638160809599309085575265606587806802608604384953691661978677819149906319190576970747307603628886278546951526594901293062525611236611442021952126521350822768490867942084684759765932653728432912895127221115454154760957972802256195151653320889913142293874144380660697978260458516458729342433372552096514578852462581518209237953441138287196004110589915405850410597214057503438280853784104545339588966385147855730284756001318985380796595064664486067878205794422290679722906653432451575181166405202514054612126526983619240156468975312197736487089455128423993890942405193873471346750237259504963398881908517145700620590945094226809749612895827330998134343367828391650599377620324663149086668844189873833628609914715509985283397077829817846611743878521501157949204341964820145549701034523240700792024999708216842248744821691507828269205200563733247665054559232665246508406868820872660607539281898114281882741651175749180976851555571303536146572796945309927492128081283680162271927833083507620451010224012274991657155035697067180573446249906982528055244727206519517397866977334695172725414125976846109694735737452059332038668476216863004467494286907049609198429387446884046617735929748244224604934100153849605487376580251830063396246837965961265690338444206183972589148347362130530020364785696277976270370136233791560735502300100090202698652230482767446900707889004488078657020719405301944424616937237532768936474627582268807097189080554255668823149682101099657048576766704647434705104036970269486011787253574913701083140854284367484888667254867117148379038749679355536574662851510528913943556342069547114530155672307061798645132261239842315000082809965817187077913699556000204296867698794879114359206899764586225801501477806708580603694082913891834881841408100986859911659936665859270296009666300299775235201600267960187861267320643738926524399916614137156999153460918771606054656340745942845138674189229673348457561711684069392825846101142987651518375428324771437858763227787635867723639884487899782902954597318910986477516730870199463192859936953667097496169874891729903754250974825407897091721091660690598704251995655839859669326855638210448023209610635920152338117390484973800796154647546232966204501588162834659207534893928491661219367368123745990193277203271959310312744856718196668050628039808326469476826823035393630790586993552598017720336147028154274659942092091553580244767288718282084346182705605555279386604709130215219307682427454056223256414954043100699185598216843677730732891139867167685375076126006984215406316066048333936187006467660181106398338634409242934743914679034691877369108834052270234754774402935406052865559811542063110229408818982300692115064078666400759876177883175909977176868975649674848617579410359507779026303356508003968578903298318949705756444445576163919301046362821015224682644459328469727730156249169727264572105128462653735226053812643131311112421659411607873425722133500021344896322281132395512394743801742548295542517848381007211611150746241904018522254684901748114129204970949189345012155095778752505447164893443886586084530961401789891222392225208968748820113296954845574612030413530399035692476555428895006786065180959422473557060887722050034813880954159105673600729702662180205505984264572003782025353982274928776558408764554660839369360403862504243242280017610286831461740896963368770774296611186481838275292013105188471225796693686209582343033873336949888894669995548364797630474003979655103947585908029106098410457636536246102335891659951211631881943603294146426937734059347826610601321466582604826363955282441909301340867290265783411726037347694578612299304297033536863943502728749375103838576753975885843562952456424002600322580131994786726813015061479529680165133934765680128694479035464911426240572114813007376024489283208420064598941238306337276579340617524026467688911019362305531072376259350415558196787041796746899632543398098089947114346665219090933070143211811345306148392696724473707550038197746379996862099669249782318461841344756340162806568534837444801694606762923154163991632270773482001343961637621425704755769978346888766318905224746720179629311135915760105649409971088494882874032245996874641698165414453147976012399092361046065970274569265051535124077864133756237268041844522099078860990833208021839924506630018866411157707071338565354433285780856899888993851983889988576982666234309548541933699787805968283877787843750881681551405155791556094174955384495446247099867643982876119293318307492137288757141917233518116144258735088795298626033028188072570341050045029238239972890131401842787377953904572916324208275018314776832014390537663533983009654074260561751365603534591773803988244635336578597155315433562123409686001141592104186179403561167521476563283711620971646670060853836919123643985985790739916666162246880806607003137225223734251784977875598000022444351155522469501237855585570799393051955605667897202713546713657214682717724878193542825224941812122055163209123779854984203640470806746231453895964121804906834975860647172214100875054786731159162285532629263138353552030161389824152999955996061683370242326911385085693573827910693419282772706319091300830824281429188384678955195696377544111229261504752373726927017743237559118960993370039654538639987682064151013827762938415994593932263484558284014086633307171714861152189805085637749170188828055663331222839765800497856917942931594260220254797368080146090695481803040752105892816084719451400526167388297271400612163244514453499870662978972941814819916696125511003915823629216031150949378575091313631352949293475990357382801886992242550174592621962855117222865241905647160629103323804616922261608113278240564409994655816320186765514831973920796131899734558712113329544354733865936776486186480437652996705601410670132901577261110143082372575989648855023803560725209188386079677162630508444226817371254501292126156923371997959947088187418036803358307491466071186405000258476565627753630245744649875395257691827037907665306498957366530664339358763502640946180298041516506389317821407598063311758494748409659199275409688083967809299531138502562551997941541705558223980070555260505289706799647896967250065618537066099227841781532079398392893947543361697443385719787629406574728502552715292817974317027246372506107186148838314936766159655192465550275893088486626454943763747553771557012855835306461107118071906097056669216289905067948546382560364399287286995267933347504245970874291785191553949339844587732658902429619126238618730394582643604029570442658362515282915793139584737672631541359096405504595202360241850383565191911904373859002704324040020498826647818810795478250671786217994024894137161066736918645341652678021673762357371534731350632797733126182525652329293417288368208506139547531607615175878270367934334517342973823724080207218282985702069453343825790697017834805603695017487557231912895589308827399373451517013165954321582812047631756291834179630883312759077134824029113715207438089323645713250800384760821171333756912667993305841495896824088104656247503449587337549803426492811170087685509242287827226877787972074602799506449375323087601076103889201230155708261011827836173088401184337214612031465515737903183593722194326085996968876642923386517246743431412449286036040062280517465972899933609308234974979513379022008565315941466712561970987209948028768097096426848102722813767023644213425914003498149620812760055105023813608005223631524725111649302876860046840636830023155610686878276981463979731962646061500897208411234249207795705318584782030579583084384424181476048030223800413217678168177372749536801677082734584767075052518579618873131375498406822526403048304794725405478474395029177785289994823843182067543013699128233635115598148362276575908685444515031609286866567896495027238185366955643288551358090388487923061868445971467731184762457471658387544345831838266532157516608599015536501854606492396738481697326179749371608222251477425187300718118734474520211214428662911411993605775627388861663803025081959905411597926775427646340737175346073372996238893940030407427925442919745735014560630316841808306675307492143394697269285696927271659647301356062498111547639611806924727034750359322342860570713515009094151116370533495006072038495492983460660140644155679252214157330540473813261650037343211631701761962258000094057501796743948805165269789530436128964500039862487445920928328230999820690956300874959675650388350398269063168288524597750382730226312717234397235198193861469252218013368167605245589554163879632450789406556480322096024330835997811333269433828120570846554700403791024025981300112834341110049843739466143172296354025647710377086220252808259849864770018931723700945573636483363846023475954945175103600713934954854842521179814686741377633776735763158936236045678973550158073712064484260941310693009982041144242337544167091267865108541497983937292583570636186538277288467724051514142312554325543524172191298537103542384670783912644770850735788431305333816130738751869845324310715568517983454883062497683756494114474392048114947559830326615768550192638341830176910697818886367652882854421807755171579998977817492572672542673169912922355902216759144987049064495378322752781079764073736293334682192430372210563743905296632331307810557477266758188351573764253336386369908472068009687797946237827188036184433773796831525838979499835434287276684541142029920130259614786079251850993206096009562037476656427727242505815553542558860978834833484763325468973091743210807769861370194565872236261789726551375729782903538500451726337754460624972666751232141128202135354324455333798271142217992972545493220709164465867758141212619905024948662937820484243440407574060255473634237248688991427137116673753221749760622307204160106682300645606736549303545433746430449453507395324283039157343640215141021911330835147609958313293954649447831803236518226732754909473715197646123099205026062457496944803596051476982518802294575370101248250233926721811958835438861944549586194702343782949699624577821371635005217539193905352970405490541119840948711684399613350563583763074493800028033915695211664559701512411541712729678508546304941569700777900105876744134195794597633159893255350329949742829830085218596081736201048659075504037705388378478247344400258089347248380389577658597588123537946447155072771431986580666482596772955891233788208727620399443679713189332533407926854032860119056746576291534556981870859199701552157225147555574165061072616057578307517329765657921675696911482999399073550623892886419228936577038268475434637591905117593511877244638622617534454761831654064033451996448565139287500242665968581159731795827075981685923115229165805418163962948732972970316230835930150757678964489351027137294238144159914560856522197333069895703046679041977430131742666146315293275819853022186127518648021210881646306228095341851153466887941246389950979066708240930496738053293670555528051022291047149897836045105571086704034671173185201422461777314863979518235717764686062377241781223216857355392830818190533868184662904882183570875166737071747740186795273351107696163701518427285357156825857892167833123544512409946663703184071596142035278279220540792258084088433124215562654330874353558576164545652385201322047451448189179393420521585799530871268547022417938743544294732978065768154547824079749511871733486166014798331770372792350170480307319707741723921605220068309076053811457616272200966128083076138728567836919118106881263689366724001841451323258487924982984655070719659360091025434128633213008967821509363138925492985581471482811351725671472023026003657266417680504867517260764907130107221983158235538719665148225675057147575888694804671651370964972859388472381744998836980870954956497080806099980051997294916674759333548753778900331392640255744643477095502026238249308943693236228865743522617917585378681117056052003611195190236364052734137951725430433245403739087169731377865603855707361218539248364179520968049777246491858479660020520928202914560129132587449997696224196879280102371151222450616357941505821722162062387540912523525945010601875931335421149727992631384236297516702388708698795859692262459709058495551598590832793115208404150317543121670517828287999419347565949372678002234828425434747851437980022677601548391462038074527027669483120961935481176718133453260382797252731394813158148046183480727900317502776530094064458133901482552519823822682516145417726529412884298506372719988479000361787049174571410424311168629086583858224609163831258294852980590268570942033322255750284452590426229244337494706241526035056678789334031903939158518815203278103804536520119629495437469243498813279021655448977464593738413951839173357209168994329441183973804534268689230969938953889650321317001732197377912881477071705851797442601902890132500003762498195836479126543467715621889462762916947417191643294573214687774957140424203688200463749110147443164488402352416688982397115893053736124126708556363799229550762519819509940894034383880517001638342580268241753048185444507925706523263836320554036338744477876403011508260990403951409406252066358802483798565935157233538252966515586719905482381161394583864228596051436796737853561495455384277574093424484458612285626710810645000176516760516231483249287675273995919950805891303244683355193767387733643695734684770576523031186447027082855069501104434994596265237818494826655067248414900144814627338107485266305025382671167864746727920591450285801938602724863888991839748580043603228713496689238151670572878774949620726607335521761797368977139761863404583381960195838378995283188774323931748465606146035588754836614197332787563307563870173692190466812099152919383499966406490516385374342636589155445807935223690087468977667208467365132350657432920497435337029705080869556983477215219533976750420946955245426060384307527057925892332857553857899659945943048009993229843050907718766051561518067207257554549184561906866155628038280359714919052300741829715251203052748136010455560900958897561410349026893527945517015674811450738793137150094640152129572776403829678310498222070369748569943581958020571854019952397416225016023756048290748202402458134973336861004776260645759932206770397548169870774607414202805060137317875276075258462415562130120433981916226787063297334286218751742976401762047618776892118444771308419857114624571310291256935304175911029128594107218215920417438706016222542012599159172716074514212439236147068661249770543420525768434982241845676008850279362362228645673097772724174024339865813099774252067345896631438962355865747863660574911898120315865245593582600537852460251414502357057738593585051986791931860329049557868133806686853818638627267558896597156031256581636811850300197387017043037690476240720316803035882434924834733294658910602464367349464570415046517454359059579500883923534119986894897469607085877757167888636815309076355231373027050601677537877697352220123487152052303454615701423952880973971001407760396710891327162912167718520988092932335461821463064609231012959708062949115677925323288019313960958010858040571162113217805646753498283677839767641127711586179869883182224736642568015530606455163919203125188367788625602237778961289077168813904089902917184141304914620000467583472207281185867522960799651457345012233135886887148390554559188878179028070406523799122994443042411948938815174220889260807043713288454857942243527984836441155725240709794441736368986890259305442673117362221137971466193099884426299767566044432531157093955845540027224448183536628811087813393721913391276735071849779052578246938817804550603843806601809225975109619790728393347150899057987096257792510452644331231852395337806167058387678926157566349017659016755417795182621713069718766172325265234693879108980273906797893757183684099928555473948224190574462971901033360239915024774047743950654769501471708544270136519374153903846709391120602098372076298245685356553046209662077203938289169516240960152226455605019619592013502414474845475819643123755776145103055073690301276535837297963179833790180466010472846884750842368888247212434493682456031218110357471252981448288216644726317458063902882034610815000736845412607128918813078116521347055560643480766711737396971153279900628639662607168998648838367275440244940597064342006875621208263804832295556367385210250032963304219445935019452949166431229140577915695693103599047398953329028431251752919240116222768669046268853733980747054683256496392518781093200576588932424638269267929575808809268444080627834742259745536422871019932118689575244953285364446511813820264395508037319100187836433913145315165236312639596705756080261294451174915769621793698805972979655920601457788766375667540002460181129989250663053616100947481188702927732447801715142003739665647577827581818945331804827180654932477940743477482859312679907958991714200418424779610065436948451197353686776689883474114243288047553704936404489041569381176082157762579872930072055615734676495832711482228065468616562630663023671501598669458760315869248672447448356789113257277879637025422362776353899476351220014960998608223242151882010319382331930974762993573363838399407896559307700294502387076941430868133256898872589882840945960284841693601717864589288161021061645702283031619742780630404076733949918402441269767439515598042574732389164673971962065470278555783756187203059681583889568523039344654805009598919296061532295461539766564162241647196808609743381877172217299012403273234886483378877360354564855376875481366742472584913429951450999021907747537792842947830679600724199059921778190842736229156713164797534671738917828482516384036062940907320216749995155234003644095650622816582822586785562667202078676574837868050567493278219304842843961729299745783282272367829431220230509660950938666145748133071256837123597748924268491274246036717207563200708158154445474734646847819198141437687641303595365938610889888279029883261114309836481389056171063001489630561654058790982059640658935836993960620421381721965025628760129692539633182287954704905494455054461295890372740392159209890613154634428866353797760384937479462037571029875447164460618776405482953065039117064784824963606366034605120752557438739115684770212538585346693115448188599991553819532413770956384359396523276085336508340055127615668144195454809713510224420456930669027400956472844240731407039270587032978786924212817484444359787087374472816479973156625642405908810070704954542637830003580115202438362762213294090787975987294514835105434086994866346511591863122942136545583595502839082272060725587021233823445631197754749225041372250068082426626443047606896089878110933158801328703605127547082073646092112941060177923565861630143339781472300801248255710603310903600620264388296914729158899748913852241399552527938796938236783141182484539970083223143059843926027063148825418215915735591141834407430177254606659143172502316706894284692817077751411632059598602960612529056466311270178434018402135463140461448903138862040235169427171634358452691079928114619368143561811291123225269837061849521889601716971367695864939006679684940604945480752294714124429919812063758115360520842774839403272980646957933943018597784355659473797385029506006869650702613095783137436661185080247399786990384578404794990783890028657011358686500256609813261506475851985289492833300459340207777279183240704180921851182956282631867394435565453342324706708364422385178378830836208471672046013481429350966891266670168758633521888472354205882470238849704086919451258939650496669843438638179455314254499138949117241113099436230638168662522109008603665505694003221980772457065930355834637306855396265352855634154397507498488669524687096881976874843041866583687553287510567358903974127216444405316492049792414060202334024265598531080532479997701552858522992106136867529779845519697964735645786571736586142264084316733181882703146820391719398932173592954490924355978145626197818383421214814725974800939585337517372841073210010001728963904703078481209434199556309128885610811712553258617496682314785367239620182382049507224604190788788701813300875884706883432968982880342304769442886224331882476267255527132295459762970601758935114260240217486137442026649865617632554443559877629476028334009738478943184716100517989048185324912377250954494824974292264214629755123252886233366272576552124897960959289321082627313602960771758025276235371953196052442057330209441533776115464435532043393988393060684543934686700362780120965536892134569541482569335009229185781639909822079116107395460603558918179425341555837252270736585947710663179186952665211539464371985777165836195599657918601931590028795798346468027039671753801148429347496930087836758485448669477076570933612688042175906416319926644343712723039289759817678156296920651203903274191164122722803521183177952699508280550271462121534718783992621293362790523249716257888259659922820421168207669355019795891062579924000318906553016249250385187307575989691949200082083688962907208060416394365856097860879540419845904647787326151461459217796867506498601672732506247872652100620098160928089089004894307684633149900557838364057479224238126202781868030027452966104108810987697617696697907702256973499129836772196235451426957506434489483291254322800827949538840546833411097068514442043157796882911471980051123551329170081502637249548814168028456007661919180918077915429549671089824426871307277870611975893221637415229247893878690774214622156247110966984675351953409122959774658900274079247394136202591318192430426102288031888172943655641812824280304752966196933378584160308620408010999349341898845378001296377654763288916568801860765856873329630041835088880464356358254004469243156165485137694148350296182303663278643675098456864215740765200547325792756604086863871714717990831457300308159215305634841926775848241990944038514180217682887493951550613771300451140206802815548081318257356492994275917267124082030529425661311223121014265189456156574685857459240792579614167134151011632510648221481547941937236372882110951512154728769312091226141306865981111699268299743412856952862174739286296868845853193253066671770975934086021281916615268357448095180183604316385619679886260057918666560408541556286100784327179703813031037626032643021005104730815039859793273356870011455710586647266901259872996904068083989789771373443932243235735405705042878664312433326266687895136149486560660027789012398125080261869200528974562269688234160950955384981785104421343676373718964531814685484081420790346378311415071932222051658593709224365543902964968224181074061579090267368534036579815915823474073984483677258184078917823467923759809833304531160872058686075729820147360346370894632096068689681839264966667590053635279378513866055431263686494133149510910062560970309074121847764163405464127266032448407098746617783780051104037455983032344554626312401038095074180752331956290565970402263577682222981218523945573422087683670535933209022711424056748198610429495613272472613620692489076320061797544741702262816777274167134325292909711645532491153696764424119527329061625044265674460734960809026857357025123906619887805793299825723933562467222953462886447583699549469621094686958229260384041957485006354700988119128596085978740159290872504024285973543359883444659764539156793594073028463252471618422326010037233164935610731229116624187285181230021760321302968208343841460948172018997601456269656703642108419504959156944610236190203829422859039884496654498596016033078561055351211708245966413293497232834478894257990361308396450176773378950726931138615240784706523487204289794147163566789954241488333970367476747660553514260775878840513429365425137781140450334585731892536112780029682444405975501322105786944128989860822246490857613550525653422464702730512508288959718533300927153115837553142206758461784110816098715513506677618729768188944154680559895353907564207972876692892867011658985003558186243108198797608550945399124513468641620127243288853933199970128874175451043589100592119270756971284540575378312871843161306497955533452020657788525379553494113814100815482289743063171225960023129969082479173775977627949907709878956305396561058386709762897751494487510311211545476831012407562075249394970556423951728686958744370601320415208546945079461753489040534533808913568866546016319231858873552271343996681500439625027342695359096262180120941469118524802111180787226094342804755547050214024723111469035576160860329191409697283745192837900544651372279237506268118053795961972942787988694147933763506129320728324544510165923531611655185010346441685923676806721424954893347055967987344333842118968996191540340182536069596088163375446310045412109221312597039946213174569725561031055949557803480136748528173713467139638011290061493574715315997552316591122743513944373851457862005179233046858142550905545712591798796101843979953168662166989893547363808671107567801477191399291457887514723915779869671513536001716871884333570927793528547434365715031897754265903727745922135167620729438886293443440367410596826394722036667952287841299086670264517087116671385860856128814308754893963971283400403938645425603421940839980076083865149395555279612399018228976738469610854950593801045132429584947635621439975792503592241040078421432050411480590204650852307733658714437581191562972076751205437379577849638600479108388681096243272036349917134320196981597976252747043031492267340580444406485242683829062657580575118325144308037283026557803012636933405481856022175384396843120762204765193839692515343694374798333700910633087709009922893811236682661585845555029926085289113575227811621726953375890919793041223631012472685915762380845897600158017534623840542293811216628590680782806008654410075142320243819867306853920158992172637993025283637444415266914404598019414766258782363720254292739847353082349962366650524577455994752889233170412632799942225543425899087298755805826470875683537853236866223637568143386750970436338318458261495779813496951464390265584113636831873463050008385438399576007275997435055011750863890416081074586656801826023065954958607334998465139917525920559688720770156122997763522925354830922089270795480705152003235157864479245950585078731768866142665529190334024333817645773980226156882404532625389998542724089210313541189181937261164291057426834837199431790054655679224109479856636600490630472091618935381115991689555592146031675085720417337363556418381506340016108113125835393465255508785699721547982610292267324851003560076969869546768198194257603548090706172969507619193737401382628871885616687146518770480075184884530247324748147617558734388873002369008635690091042513865966501779033504995670479143050704099447384358538522269072491727687874415801659984763512462434154442125000566728053155307532629282176371712340128434550288917484660210257401487470385390355755686195166708952646572834082912332592387455704553182779165299548142362095724511235713168787244372865738065813890683886120546324669671676780770751792527586218260976209350328491788761144948901947412787658274187646730716374796320368201227466069089689295107944827971803161668805747263135682625488784596051545186097334474333157741950373388429354012758287349634209116361361255829646383301364517351081728023617628317483303778147068043379431722842802281348087915869224989322216925591403155126426625585757269279373880757946004443395448903652665527152205479585797943339405659771238143625597263834684894674794849189733568290580362649482248884599235545938631455288094254479192561079140377068971764111219890990006428490236658039536340150824845521776610323180568643309074340838933482648918814127323581202180849111081513017058280499520944396385252443265121652685637820665957295248922032964497814854706827181126958558321434271547036545476180327200991104965033135839831563879930824295583791443774937248888634858117249019379256268061060237613441820070031468374682264163224212853136464577901807709724298648024663091486309998507563058747650985913807667350893442038213404877888288610937172559144939501347470172813739914618278866887769683916531555588674490782867326249923157655560919533009703600057616778832643169191070603535275127799241969903580388088256427724860297412696145197368705761015117721642559905615759439107090362618442812398297252929289337058552681433836508049657749230266770937652009135470190674678833846361943747202519079212069901333803925997769641854925866293957168295161316447480656717139964620941291424204432981274867022892985014652277179670191351675952840634454189302797781301199684230622396553010031156669192745252645808527553542894025127605725430147683418853144172339665951836026108483388842012943226859772802542411060771649436717999588560673544531589216066592780356542023274929984963057238336150238835116693494651809810954865448762250189195182113226889061468609922321148960779913126415621840772938870060867441088365822921446021458291313148595040957668572952381835046690478337243968338372406334478086994556689784747638749731370190245628834520339494082067778605363491995256093633926727417554232115822374505993347297438292515031038891410877251293014858828083323494248549008341369239889499142778979992029115313440413105835618828364333445480583769025550917218671194989325632184512336482505920419685349666252895076344756471999866189312588781030592618333118670624511571947897475731128802978845331323531889718837972910150242666759422856714389034857359551355458909782178001593913876221309243787143057719453406559086695191573961657675629883072682826937083050431086170782551606549926698229861036891366407886170713004079929246830601823190654021829224201185878209046166279356560113652757951786788931062441617027479429230507624843141516018950037840810200778685532741323847906254091319185385200567861145349087522931043309887667720252552688571475054463371381489961206895168379171286364328344250052518048481974825665020167390900149979733704802062729790068819102557529974212024111150027744012862904770410774226508631418462771862887109632576965665407750257171118120871707138027779864960420622721288572663857642379413289092548436832893971470016841261705984192799467893679080039798475885126278803578707486051484958593226175965585465180644125592640318731247277403592942617493085430173805813612885246499909223603411386207209414289684225496741434742031974633272034230601292165791781106011600031378515197978407971621226629854036820386680550205922601607818317526895529922089793732596716571587095226149568265783668310211424611010356565104662359491324868596595220753650725436694395905404149614259397793707378353576292848475503651352606470978164334082366278774059692686938225046259727330237955155125958028388428138210509762792159792827861589690444383298193222992249815965617298544898404326192723347122851368768897911873896592577920735815150409605517277091579561652696321792221783233351684191374235969906487484232046549872563710329513201773802519897348662224945823067300559656532733853897364409737489223915632144777498868102406005657544107511630003247565525626980767147344747913958535945752438174458922595420517812120260863631535629151291656756390372628741345862272733204649427891702047468614076442511854292942569800591586927783007493129272006966399573736152204946113586802673099915516060713513058035857104692757394393514432393907516362516927996463496692533738001570188062692773879035648295253538135048679526592640692638370543132842394278681019304155404833346038339269062958977341702510756038353745948457125873346312222414088229392374774380905342423627386653115696547787896216590971591423489508634867874636868335650730894545591672696315571437770134099555794066001845510116297753471236924386868649852763401983784713592132768098182074289113195169959957330541504483713256932868668850887326871964327552136455612160736139920242170115010406106525856339932200403148550853766525069264142481124412865491481940791440561246288107985375179224176591187254154086310395379413078349211826110728181465325887788977262623420349886343446710477156019777784382093442520888635022070862618360139275872147514912391856418285768765780495674180441634380397916022036078588496122828890689375049627893717948348338821515351712384892722506133326969536071868272433386972542243331475601363723074186862783836905246045309510827935794559475799825190384840374688869603150103202251131266161175760105840023060365035763262791593698818387625786302288807744464143311628711629020584142389456885930708845232721604578940464873103785347724458791389509712137071155935350108610053087458858366940797672009615984637940945060172737537345620788437285634281679982454118729160468114810585036402993720370339326055103524604137441318875093695384869038688326092166486548117375955530413971982407713252821530076933511906483049922980573322649890737624172195528665443899395809306011523480147537170022388079247229331009508118744684252980860648685757432344749536888370856883654630143836261549867379254052816449963712229370991294479942436918296314346200347870417232472867402547820097550389848882258700358382516078113465578741786739761915988084503960149340804018620197676692038011111601674921367991044425341901676840121495563408802770289428744654762844178374593115215784686643107963344296639601320382037182356459067027827342025709783234436148507251237041200518007931566330269529884398830423267725309795456647949994599062363453938775234914384221974428300100462096888278919434344174901111484115326699882604961746675226373750150863622760365659461488666276654042678439269969552791580996681783151706994803630190367530385907409942018683896841228501188082362723782276023973750962630670300362564745905688171955379453804046202814800576522007758539166277073753261004676931366843578610546038059736449548756252199723011531085333599565894012188343829671890915869592986612897889194729892389339045494942751293962829462204746057436499436585892242905578892913607541366924999466202469839620272033007920307817334395781379171681373344553637348682225191386282456725299362630864475119921469462726439780674311234909426247975340986069720725641977396202168327610116175062421726605534366414786825374583988644482142747388247021468908969721634324689592328999558462086319648483085685224032455228418246991322912516768009245297045861132304601080266876518208126647403089438971112420057516720949292502204963359767913502474251095773460661172980002676969073660540760554985300329062591805983736718913274481584867464863914088734300169535536001173442324612831474202637620132637687103819749130741100245612125272781381896521713158408373564003115546619612521983570715363658523142155086941479554743605290098144045796216148610635798439177261501820497708981640220016593314152208669185147472877328717978328230290468615044235005261103568545790040143763360554960086997831525551990332806733082695569089263244045128608181411297453606927120734971822839969125944008921817514528244567177277171226973429763870984847721340848337014842962946594606824468814640885169987254913110774538428572968264967445571108183588138351939349874923385712802137190308105382971086660575440993266426008324319958993966393535915883183319947830214475361003332015148855941730995888693790926526816879020505570830001552711573074905332153121830358270433799544945519900734712257786978251127005223037587479655018969737961803000707159124242827199517170313971687302788985540448930505214131471470602877212906261737913662205800527402723274477706469075069696559307893417214268753611166563299886607787411160613177823052489377209980808992743030416263638903451404097646187603410992619762413272719960635560121605005614062917525793876556744806836186161745938076132428577036376127096333589697173365856353268135692154278741997098176266984552786809679834254355781784495310398209730880743397407348185838490716322487879847534306370794985918034760086042161840085432732872314073701733623375410095177178654408692717451596539730329707247871416258492405435199645417712535591386352834611493834167197559950138810499778422691016452032522261316274073954596675901986822641538429739374303722699229150183747579951941340200647848682656342322403875781603807248327657997544827350544343986912903836845507070236665240753416334220222157131742602407949647869079661551044913707213392475898405769347329052964294212824754113900252843179670062154801331351186565429225209185509649457052218720844629466806237028555635675709525468253313928441703083212813564075720805330430617093502057856565020589590377741976161330641807856349716498461120812500251062095636848254412157160482573020683700913923796643123169813073236220467971742833389193897485622928135397751862954735988406363698017600406050028114825937241335055491162885955540221589796349789941385325832277042931854610099080059538639155293634869561111571589519891426263406333456874567579520154967158828185413565999632071568703139030446904243786845447726128677019679173279539763601778671111439233994945403739672723601744368881201152049379965285959227066025281348479431724199575164234349022950531472775922523539540946253106646509380018641961618536285993432191457510889390265795822639816132367162844197320974308951145729005399245191104096084093919499995844634217790200020713828279852177008011396862462699264188934732152098852046612324349679883085135607598243633547394332574721748188376336759269116446849319598818306678118547723110087749855700792359006204912564566430225426820032924702093827450114099674954587201694804614010831291885720344664288297434216559479824816731548366088517603124103381758943830374780142154018723955592019565430116721656825172812060133790474968024962843738651459578465247956793071714194457255303316547257096558054824769693236647990302624033167698425091640445591381111416639067873712256152275074502649355560542643330645051797617213703377322223966828385260589017714381975648986507646644602292725379315379654327536300953646679071777703920271409560454279769764532465698660721007523352449181044206592338983445035552428813925243021202352715719804948242204835985999725781602310132140239717787200292575607953544506355526257823747552589762981374993219559453829288527166835077036417319896917402864996942194236138204698863031088992933009118178807545232047793369078165720179870443842029217207886666925226182412949326421303358893285386882297336905546945620361954446504179286766054320562934861407468988425653923720649733126403051081202479178235460281044836856358067955338741445907985083502573860015244519308432186488737048582862052835877094229919165095769433230112589464293027419468486644640032643945591778570216045370947847254241354631249883134903289170568409640706901743382072880422094370708449642899494415274715840101995390206298480228540571569500326618203345478482866706625884670230539635474943464740590508530058373926658323518046780320307013104668494028572258614483712791496996909222617840859842689591382483360327681162061035667387744211586836846012349218768037799426608319630662244653739824914936868589117706378118827946212270371727314241753233436182228969378245332719496683751410039194260042685076527977657244549653839786644924616222223018949506460003742293686951225811293400921643031046915552629958892613543487609643593887497703043793968625528614858675685608036673808889903172563023213969593027788012131972598329167045829095858571050446601817604134757884347780185290615752507426047311942892338372308772354295468433725573112939828867451247871254416028678345312682387391971427336436260029571515814817119507073681296180607240968818838749542232151397715783797162256419250909359145134697480229637232009761529402648754418728105334192144758282809705731309460303016535532521484514845562667775808004460577504023374351485405802897558471309065037316455312360253687882314899987583559400442143011341158830547682186334351997370277343388605995047919025582605293577969535291560412770883265053923249425954153864857196301227718572997419328351185267481031001047786156907989139328090291826957285730691455360286829594383812983603178261229030715932731321654616167124269966235688630595266042942469936257048177856333574792935878288283377352605329773654164477171218388502783735150292571526958893879821784583870265703668499676389337101350917491164423557189710370541550733329617820264736532937286495299573960778775430746937529018906917121587117142410986824383189608300588169256672404513107200280450189018216931417542476520053037858138445251318132086888022502372189758310373707120717194319573348231798089342811446055864290101167268773609276998372415898145352676163679736904167159250477736862667884266136936759674312661557982851027834640685945865904297043737917751281196846203407601392597723237785871494567608202142436617380487848802417440146559482768703455975570614980267345276624801076888786403841086023092953787002634808916659007551243686778534767098610804526091390089466717571880344695808481413454642673579269204630053728655544275863281665566618669199559548333297211994042976738162426018907208084021439712136590449695622450283472858764758700317099922494335525616128730401442983112505908226310738445228775693386309315898111157951185644374290121588072812091366277530608593314666994289306783888964120793136246368703787618283926574412763998071366623954611315399185842476772112415591380052300620696246704231164839459662067311574485663530061608158286889764679840848182236756568227603824261003735792840624088987773910935915774658193563737487389721991145735164217540018444717322063458486073816547589730728364540997936682529458663108883748563392716431428307632020304444611091591481093407772216151588042946513950735101550562250735119282930462890888992656379791273774807560644757543861516948677766916500964462851413067338177058904973713882615610515857690585943429071092613403545611848516925141781835674147870606133681508008416028119152332599609033812914922969771485163518319788846090356731695367294534035942862228681465519272460407075380704464670340213052001604662589749944085589084850738750246101615811696939318578026530468149382406868057724325112963419208570437755956033181601822768264832133779004367443554943399627423406537594315268331190811442402602880582246504633343262689289411937814775566514985335771017642509696775587810007721655865598510506714714476634816118092617374505863913725631929822850795973029603428756430321147871834355272939985311330208687490247565779173349176931363007618165257110513371324448931125815836973608863955283772042764384570449848531938863964699236907875078295010635969456375898986218642062360322779624477751691273744957386996319193889809521278672986468245532150991379538338062718859766089810466540455307491020925264983486651984231139732795448334548602212399607876654923277254491638818365395035453384268536465284823175726476660118764153110410661012349634520746485816923102265281163482760358456461023457869942354601978688609150026247124218006391242800657434827881165936785828373242438785104873194839320971388430098597298237718335785216922386018318994856831964940695386863958382419572181652102938429573651730142737407302021337340925000718296051940833618240923478620588264481212729010584965840560365414809113676713812019977785138380652778015579336279829241461078918697065339354664485488434586882292317036386290989117239172330486588931314279257094029880994333819681745213048531589897891277184901317995301409037467347859738660112273385556245341995150735710239968094333617263410996898572076474549613371108353285433456990043818005227029092290611423799572615328491643837857392687692589582489336594815601108942196784196829816674311518552801994628255602079330885978882747260086513086651154237191866787692123009425744662985297436909417928602471982339900566194679276931242422674308930314764451620145663749667987153075655480069846942631736991295438474588860391810813348558690167891885542937976890303878145748090918479503306347806624560741668725343318286297841178320786302788692840309930708233370916643011061245711421934006002705879984859175991792027774615906108218905449768670840469834687090665227182911179988404150365704513437767745417976619943514214201757593609481931476537310284990737750117890582254088948925167953121269210520017796254837928571741630306818026204867993590676546146535492320600737893853158730160379358873369949334902491303260341060256131253873322379530169852183691949518347210722690168940126256832459721544055861941795468984865982086146354383658529642539660901073897685585368906114982291059521811911824502964047233059115074746976274045700148161337877812857166936829984387777716241164546978750485629903207700635311292270156002894459650313955553676462724470731016013809598967804084761309189622882837999872308596465268157937393939207079133386499401111266409471911294304706973215790242992767151657547569476158300248805587560724754424590038924473562503149451262605702551603994983545285468141962565650924894895047600926123705771503455984906309119940751176528195101453171495244162528986751934751390929535338780746510414086643046033551151804433516197480110716386397870645201102851427996839352314817977833669961842123580060062941125457396185541158224539747932222243692561882615860133547484314724221983129264145295789780991185578036001953735093399813503965973324121943188415606570605186269899948844406560836255551382647338194394108318837309177850159807173365063353772433427746497082338741658001446511294848518450851208910071481925277865087689679098293812903220637139670149784694543008260616894116058555331787292734829573545060384574516404173864470125598658846316067476146150554910330787832069291777071143941468842896332429090057670027380880741908584064497029486507266152467325136230765096263363954514655771340622869275825512250457259704413154527591966834766255711312239464904723464649269623630391635661097143530949934489264244064659504507332684790426961486894220190649366273503533816260105159506257004188900118193712388766788620812450752780299834581818316324476349700511069343585514520228914718500945433392006539744249029427857540652449213494377774841829472683069252500531994686125106703474949900727764508986674359623751655643721088680094770461918179459741663524674314360614365012584056616046356743059688177178697312622090404935269886806673704756633096864097860490909233662375813260811269781813974967803313413265539930682510228540145663377931500388584621289472942816715651710362730400646756466020116351731707521717451345777235012725173291890142955151244895421039211771466827726636854865902452700799151386850420637840526738895021115498586917542952970535046635186026198405007845003197863670469907310245219295527805681762776037793669045933524270102917224232014468354156796095276225550094088772793143666355674340830269060272572480617661555777821950404050706912123452642368746658022444963624307865989785348466307930726127586117115373313029393472431621970696659403255226195031369793341832914419343878726273320980667280564305344468621889042930040504706594703129432578895233230546215059461020217175613862725042866216054088023833888444498447057180583335145286250032637285171478031336891733739328860386771331232241039319789852050529840225997633912157472679215297831053151715337591897054559207323829108133903871856411592306959497285628834982182228402611618913316186255279790475343828939074591663094683945477429267276041664830042959126669690754943296940464451801931192218720793691715745876154120596329304286883585615854201506135551054235942177430428158253989307041468188899744460689947145601512517141021026862582984852058649762226488681753659050115059394153928183873567780269914009519244411939232589907319901793822065176668083184994852577734174424056466395112531306870419237031878166959147254706011408077656722923203125566660675032880126925393201470820025685996350879540609145807473771993946079971359599216038545252880507666791406425050982950820932585881091672407635088232693750438645928291415628554278181466748550460573566418965795957880006894398769875797245020073008964360298828997120935147632338421158597192683977768465887284388154604399702379681672623452630687213165603426693703207994857406043330469052702263317887449471370811185651090956072793096489487870505424739181902945358827178527321543861058919674669740277559911644311585943533501053236530812985901168202186345794902924140474230702863031883208497165846165937039760322731038365898074963611928245583740366814072267197067931478489551242548585709177426974001394384874104330881888294079832247041004343603605135005649795884688017582277836339914738145244356385121100117028838922147421713259627462889281298495833703294139785282611337530997777683923792010965044250718633607606646673266023967639994850359417065105150111682824254188975885190754715075394925605231400072439687347348015568968863380378466152478169593778971168371579368470003081891765450546530540130152201180783971293048761078885179040363891932717553021143480677482999314273071845104289736759798451074774041448824230767840694578754913513562750778469777409183025624666081910597681507521766975163259623136348108077739752250219207716711089188647225259641879228973882473796097542088508098598416288819284571181529218166905887722577915853242666648980305145305864210142458367954968686149538747010131355865237923293245825516276871756098985886117604920550708516903838087717143173699096752685367033630244514090703127865406380760607217836561218924988061758304741135818889980524075911817001944252888187955007298638655463002757325653583027059649482952205879908377583252197638717936658248977311052580049638256552515161842913348822647443965050524125751965640750100928732836121526027726368068377184746646378729632348628364400058111365853662890184972250088407428037200591841208604557622629594444296777851434617486886650934383393880094024101917496472164946046611700958028618784589155590199769380666645930908402789014894577662410081096798045242341505574342981292313864562159758622922986124601334172757237626185350048692806167096550918084198668355359063703268492821395575703001567435091206522966166371894498820042322781059875955192440844071356087936410051222727684185979564592548457659630302490445168377128380934376506482177324992729160193830312671693847660124425277246133768551199479730955688307016946446233393412371860067791857527640905438278129596803015426106748905094080431925734247240759192788663911368274244735270819936051827177862043684174479601665477302774568782030535443849560994621720125356919624361696729355912731286142474751838122404341260493039852676493825641215945412335648141658764654426478827337747722265424513135138323381942562133439045423818007050425567978324738345356336419598763313454049634072616184420418299846574678353876056948376060509504281594042787699947776654811691451773561974268737447984637564751999405917005545980982636399291863944894769804238282781645180661616988218622185083529642886398676400627558618084040105164814862291353345328090249136018224892022142318453059091297096003260809855365705740674843941955904243821521767068188366626386759318323366307545002168915453416914164547287038676154369765220898185541695035211833964856824231987468090965634820684688066556610005690144230300915850037712645677036116511514033610667445168514417718513129168702758321896678491743471067232138815820633888746389397056249586626680285634294223364995696888847117964990263192797788243648579367566681347530935826791101825187660581919034841188167306587285381733954608088700063769309699200360643269122884669537271764105029254077446410102348804725393685263894226842713968498682124811397455692062044770845577578238571026821055601512530523534304944364352547412291335505120234575341341881802616014003197464486208365017547002181600136401813933155511629525080232239990560359123114021497982297079190482118959969681595861480834748941836628334777784026182641061666030904881665158259506182040879358703092559895985163736263089206036579538232577465859582310617708159871784413685288485721123758810045113550823436026705440037992881655231677073856898995396945769300353193597035269906166898201390644070636115715640989983256952552993149579583878506434692314273235853427977555664502760810125004054627368737935564883918296593915860789818019927165559207963007119439548580501700802080250500139024340041692009066368073925405946698436543560151736350141899796472382572862269303664390332916987402294601532634792089681432404509923783842051722851855309659189810015790778343225416802664779096492989316709867855943110288863859859781785876962717781231497236559798484331143509176319568933154551507124843795096551843795908685954913220281428532217027577943149372225389322397037341569699571400103897065165500666502325226639471399798856395067432540679700951738107846684750987940220897916397338406444761925200970053281658652485218233241184917400182319174828477633152352570788862105968649085060714655501082994882053291616673122299258779425392860971635636920572661011972920218020991231414033870700919322310168363593680489767978097703159773172943175211045293841399228628909260257066737095408763851107213537887559785495787012000874824799193726604558992105076361707404277997478850627686040420086372321456964473080551616456005480035876546611032040959274168202521491972110070412977203959535400410096586826365795491812885791054649803596709792442842739450678566434866981013914079103201072775923910238826883993787180149856066298068579293917485873698508144800213373028996288361497676323113476845050676333702884771471672482638223889526788859585310580972392060865060729073003414067638280778400709770686673458797699792551863537931836381891715163600102992402331314767787396720685614574007908419490449956559302638498693519860246031135602739095144275181806186472069279458866532064373949607531534437180186252010079815512910097774754012402824897542277096084362885887899365950971209962570596047381002560810747513416309623821638232949549088502722074181551335455044658671872928518787184409153929987393277737035635179380539229695080485083320418121975085467944119979064721323371014151821027123588850931633546877347111227888757238606022537636026603362371869312690945358423923670526560141634000709168130976237540066896808000080892041279201184733974254808713930768550986279014511221313111055503549177039861702528247171727334935862372593195830806323741155828047174818095122485919662161579098023770774376657454221598694971912629847937677452664139199154302341274753549557105195584501949313398625971257019664848781962628553985937623496676154455561006015249411187080705199819667806302490998160883384498642857348659126642092555930603031647365299376283837520591671728300723176116637897982856088120388287393378045919277557598613861252095972764496526744851373844530761593479596734454230053984732690476663547641326551711074567703915015270500403926453484224537574693910137392343946224995287178343746226864863408480494421304192531194170473299657820060477500251284759952994618953900712125875702820979874645508808230935061716932011045834604813205501308222603003375807482448163489097471281235535804092170785528296910823111400715185327484682385790437178005368098377181910385915633393298230422416201376151204284991849274653676149923896255712299778555936860323060220145772995983735627246423311033936032351536083720646235414438493784194764933583063506525594176603444854728630150868942297423801941521281289910953056223897304608691128182441287071401796048977931728537931669633480277758659674159352520050401995854906291061340043211323872906825539526032915498139719710582063563377749143215557729360896863777547853066543924805091602524493882911199319014370100770669079704602747994768766188393891156361083762812675553677286359825129467635393831134052899291432880830703168038689499096513594624559283274267004012015154601877689250318424587308995658865766986348457553115742795296484142726710485661737300589103784852421865204046874195779915055297246212656227067693589896079505908634038297678023077837326727736573202854731958570617159549992036315789861336187304576116627144014348898300065250337653947035851997388518434190829760846169726340855027783500369098444208076361237063746630726103927409363709874567505078393596461793965703150183329742051018776213187451599306215352512670024541816404753605409933226592091370145899553331905792814373912642322293806626794402348637975280519665885898647798581889537533506564044781504889243798303932840426578063225961614200740461523114371000175828461071133143458809353423556588358789157359362956471763030295723213647169621610107956686589324375452526360921806446687805656589368710510585387508449655026847289660813010665541513225901900013410327068830355280394585376950931421043631012067916278184417299685424561879730284817026909976476585133215951499600202946801765706247405906060254010163249099281040329608637613590285475389731209887157456227991885575212446504326445482799986254214133834897837097230318157665694868202760753574062013587973945434004538627478937273169830320841452550097324279089568190121704183987411089499136136847376100492424293611163191941710808447448344656714580078489878847129122457482005872005877847586700521173645249064540513781984508812143580632051766463687796524726974941218181174586324781265421457094840337493979365135318299449112083200573781866095464648312755554853235378014062930609723456332291472398658759798342380120329762037952419257112976136716597730642578791196802365972779015123748541111801634840708249590839625800398783414562963101173534721122714169161743960666686514995352946281838542554973062196467047964149778650338066302845533527301813880124199207491768779767777125562174631204343089723070836733028668474802879353683632707059422100225285518892490297152332847513998548183080368973219585836666502580960147430701081317809813113000845215703071089752691843449760037181621880070506414323502057245663230206111531110985741867740857134339587672705616051767171038757800723871307631629048953384999342580891402526850595910835172049562991682323372299197031844279598714565784212793619885554175030055192388312812473133638908980304292223723366428152440813437837542617047032076526113953928772616524939530582970250656202082949578265632136110116160907054465693429943493561874128621140119542480334538258624944833974198965253596387716918601599681993569882199905235176829744250551131397526952087598514123247048038410906654762500540343618961175877042799745502222128747002555578932640737261768776472289400818646773650387735872851128978912602870229073674472232531033197068420632695952144318541071537818954318052322118529901823359260574693218277599888565207772036394396532238516859028475342135537962319077226330412205556350643558587719421193544788769045853765915195435092098748296000036022617505433074437980362724844242643560588677092618493515893542959948087861275272565368293210577696006709631032241588955418533158604266492676213887769364598298265718000909454527458015662013040607371230246357190472808950483206798060550523701172969974711806191436597516286385492567280380518854786305525580582565705857180035310164515201116468776361487337592141988610731085579950208595422231407657737201518347504996031788427080871565299499832626328814882233199356063097980940455147917649418813542511778996123082994922427320212764436690176744110703759798228615199278730180198917795591727895943872672676212405579153958953407537594151948817340637431127991878167403681614828832987113716317759936190920816734925389442958387117052665018022031387486292930985941621236456631195798783532852639004079157136310324878868578731992700965851710166676524087705511825237915499734872354190139268532671368532040870038828580542856105102032204789506220669839158023272029046386643751823730628199532259360985588519045340070518077615311532476312727588504471233602957634773470423288326640050053413458679555937208862576721498032998671035320098093861263978782147041311247242851054224686919525831411775449574566475699541866988494249414421581238700443343564984666797767580268004994433502081438787181785680951171258499330367030495679300205491023021542993852717830623329519143649448099043117982174388396300653120123414416841899798761724944486737750947391458537250361296345421793764619223377018425158669267897089853155656826523498051847409297024702780217779835005431641780005041842034832061091897831618608384378254687882523458488997451893248722540553022068898426375664814263584035745753902952087511495092744469576955287017060683866412801694590363338489834166091065903705870650825926786490062201418146524233320102503171530105507652937493062104423577104457614466059698963874365299211511152511021497156575263576365868424043514304665379119253581531138674450575093380627281667726834187421526607061287983476548754511364522373049928962734767412092918076095321650816256367583825388910617634905636268842024074184791829925587197089700754904532596216289287350214797540184872401796058971872331299599624026560285115079968320975736350145738109319105750877882275359158810139545329392822374831445161092532153071102749105680688465647460660992957997116827113615651354233463627015001645963786151296358599527542165038481635708309022366165913304787490408597383355589928100171272984245042160846673860744659705037976786899750359353071549556888917487721538949998024449507669347854955829762277260070607118531961601192694415859643493485644851645704776284695204219624209181011709290933351637237374477087678864732221170053820294056428894549936788937077995294145927234719572221918480979875848409092814165580126015867813294606899173724699821439811567977632908312526421639794874754856689133246471072653311666638400228738798685734642723650785011258838039766083793884345973022978405487743105012577890728317867968468721366205673415710387927633001822370674752998422470633435369836531705693064439131189018482498526108155521217688185822512665882944335090961080730506946717870370942660821525452458390471414320668727920791192536700711303225041179346583371553285902870981980584561016732752326423304747979811675596870347244833706905930751036252995731149069501768201271867255669542858889718485976680915894544493411676085555436041658299831836432416477284616288297797347458563464619549628912259114415171188309309573625901733990899236834526079548248824437710931919899754129854435541994593610190737065619227721027544184134522281498245702713867367391663950673115435301656237025352516589621352204769567181575701793358860491704614420476090903770694119514876062719925760790660150841176987984653739909050692103663647307525749969471532883477105899017329607980900834331362512844469280199621705953236286855807636753241388961917056520423682218019097687786212523301866048277942848495027505266281986755700240054839034268088440213034161295943317413077468089910133165732703180896357997651898695519381855689506388874652774893488087982140178525910456262604169193336691647173049005314154899904367735576422966505399321913349955676220728088813421683432432284810486828346434011818862529309196891822056825040189278747154847723961097175662337485541897866509251365016816719077927148906297538604706464692887106939695843943905476097380076083648683690655563728238015545937025741167466315845809722776942296519753720899414342999157749407459618169478711526752664898802139986002300781592117163972235782810432822549474390446706561228293449405238368747906277383651250572467518749331247851982846615731863957675978116800625223054354883223040105731176735351431335422711240402447554426492151868272142476755508866232716081690615558471340257453552057126123389494541337149443507170959617390116818239153265769896821160007060429962550909747490439202008981914718347073531533045963207083464715412217862587488144414047883655798641471245156534645875040578344221336972261709318734487912784416792865947043742083093581312504281244926978051803650733447797018966990373966739702831068649742136423523120740671540066714421354974059016624956916237835270789564979022077135923960978657513242233310577696608274120617480693210646231892355118460161791523873724781723406176721107011365297514758833913318049632222723375533511839903221188643167821980638259150024599844608726686090484566639498636580031604644479859962107572677468060869591572153223378473964374585599776693865890275449990640393184760774370273169995644510440572191719377176702551263850812391306631427672080004055110074377220643774670883346471078886672050767548160960999345516904668635681285240946069575851646879365875836424485271468921053728013344886778864222278373119433616071711513990420605382013597327495082701795914234526844352869313152932725037497369299887921149621721810783446832560306790529097824663440474923801301131314570432101821436225680711975405616428810747491994253146584927996938021768341038741716541431726990062868347318017748593115660147774650140391762092683122311201775334171452348954345477033961563656099859072720727316913053413900232497050738056135379834725228378664161803008563883909565455912411761594804255208403137641014263355239394473936723751014842488982148568396630483987885123099469274548203209689820954258351743318621304091839315509461617124237715229538144310354090888916009621963945030908517913320517664106411985940879167860185498728889759095519668475263686568560560609754531229245681387114636183007018026279562360606877335290322352579568483300960246003018214016872561999176814021472807113073701530107191154590014374921206052088437784862123393061385956166241358294751535691585106052619907734546786392421930561303313821195156495915505405670033176020698361369551348580214291265184225096832996915051435647361661139082348673580950318825787215432296737258489057820063686518368767591293903071981725797942349168643168686868413166888202564240459281794504648217450414891076941645233739369855108267445982430608454287945811979546551929731319852200021013649140753567825059631611402725080144462244824882301419502103357068596885214597325783854709090964856019620126695218412789001765689250598806431999124269600050892002008605547435693037769589616436164975604459607536297776305337678260920674800196306240687204462469185798909766417216636428820134424814526193124125545656169233298470511269577013056005729085821868131995845038605385226540728546719909419979407336790825765974302621712980459955358335959958572923006087401821585080682506285077608374550088440320298779722873652050882939058638097476756272239821443735835225186706272461919469740990225427537116059522398064797140124995785883004012025947822624073537379588709102073321425579514021587563556907500037968573293670297170279210020887728550037304901421645545417427617822391072045098577164470864136914666349469737750027508200194160743352409817500581794962580589220326930003738391283969412277093160126663017570341580790131924467656132297469676753513474274710459219783726580973525713735995349437329591495257617857479376962249284658593542233692138871222744489913825695145783956905758845363366493950221921721976320516415316042683384481943349758855708832702341424105913415143675637949145113807837293021185547868505457776992059387463279408608541149300861681494382624958469255470576310983841028131398142993138088808293132213878171742423907289304613665869403002590236411024856149464590040980141306186797966282435860921421623944315184947251388999446909417741426482104997989337906527615097163590037418085437288931180942994692795327817114220182983794822977023360073813636091624794812396625645876367918973272344247197330849386801226998482902500654542648042520806255663517587571054162111489649230999595046115145868104283131066260275253617137977329656956119278974375414152219425129220265978904029403246421973171956548743259419524829311016202973603609759003227498130479740165231199382248141776159425268728153254635786748638036921332756642992884448896324921170500326090618213235155991888488969971456559883354127122778023715495496240878922185499866097545598215231358958805510428059221862238685744656385398553161980837383543050052191947483482633979147523759965110665099594595067956408077336479461323542344703554657778497460791279640050547485678338880676997460490100813328109332100612858684738446253528259549318282754439968234138941391552687054107451688649772364711147167011601858876463109831047124426248499632053928179298583857272816100038957772415939756532901916965654573311997362356649653651930419391544374780214838828863176643534842590213419606715296792670736014149107499924889464498396033176330407744648331035073516975829684659130744939688371492117899457603642108994452720113599551856628662336905606910932463590560943126298471736324546536773694639276324178890116717279549654699720722281553771634731178829786077905709967862515458709620113924728060091491766262678660286107804479138181734346737890430039049237640569417976775396739751858436583459081169824803088210934356486869276797971045351579756830173211031590191159044922687853208544358634471525008757577110093614826377484126393780052585392326431336379366103509315645353825691812518381177748611040674093812386448971635560681666394097232658232601242716378685564313413770206415091627751245425922343936131234513412234517770452828773745125201240061399350480153460349871053864291367567710146790304248483681586536172333182788309364843955410826519234728716234281555555709691077373833677936292415052097421158292803273077504212076553042216976153259056873661736468032079720489006208789957803088081432231635075327023454807941579471878946096165047774562213671000559734477436486858956995916216945630811912609496899080443661571867936230799532870439492058891795138354890931467523044772643103990336449859067639360290755490322606770875666727386851449625328861144199846377028960655700695056258950874038154190643003407941384796870348670937449322023796674159034622730430833508502726550678365534015455178956985747659599734248735654709805614263658105405381735789733699995857008874104134549154935956084724455342082581964116766307579773521330609505278818089578276270272230814740810704847420836471806628806113763269591506176723677339583562864025530719990278733199848948137414353659090404866314086548127747220989895449339432554226514800304284183440098160639432490208904671822764576749066930536135656039933385826040999844994093592919352388484929559212799068456479309161728914964929894371494403908190516194291657972248569151696214535337077333936061424959058225068265842749818723772256151047065078546676177830670783584109073974643778577630671278774145815350190452867140457211800887546274911727201532287303186448674563703942240327760082143254266060248404022028030782831371003761775271121465604289173427599983129705583170693895133277124407781899221237799907742529519823036719762287517620951166018080117492893652772584018436022484605479120292049491335234330000720067507711829739598411017174981387244005977679120292643145770186159528931627646077303069805837148237493704913377938256962533937100387956563548925905743799551380730981717889470905900625485192170958427070516139927786387232825148762956031794132469449654005464887797930273675851893619781761602601065422542600243178829196561054426152291471870647039172462220003334486719352197268928397742816255057984681465748180512122956245702380083464050128589488808251607948115771100774469195711892512098331567814339177943025874571573391767984039919610061029730829505254856547223666009290883185321713424780312476223550876293103857024138707080523689742788922403234865762181689497598539348034772011489753456979840977065927604612342221904048558994290818555665788820975051802072944052526786598577307535788386375216718553189271363726130503166980950813015959213845379085957340285388945185456104722942335909657263006612623766025056090625388955986219546512903824167923153404606347251833469940969086781247399817176039250643735088512134636829461571892412962919988392607451127463184530804169943468798290806334872913903733479654444189958616057403295252400516453573363512120778468411573480256597118689092304313569393738176159646266549857736828071723552745150164995394249884692074370273229900604619606042018946687526434348648740360555788578389279240835771643699092919989992355953702007212283687402217135318930362306966795653277271543376368012089914289222235862339763958240096182506894319841916433684691425593800431661130027547488772384439694778372013094229965433489070874793997697539940361140278241519036947561712383698665763182400303104282122618641558164590734119929434412722327620997811234759743719352167325452821748143171894181563440241795269893104715521672973555001715691802368486714564251689908545331454223722981257636509756791707839154692221350970114748274169724086358626115162135879844922670954141179498318170403247180965380345598464728180704530188920442709464886624312777847198423942455750867625852706232749426462689773922964452169105809574568859089032532123553711913085571552782910200944311613984615844241227948191729182796309165385024529457409477651788247344080446586566165519752336392699323846272954068096645564741569969470232544472005718209683849350797521107126384378444895143915728806719128915685003934801165956752243849863946453361893609299286596349382717114330278025704232909028491894462662188509194549376779446417346325610490194087536490015053718839634156292863677000380134734887212711107547645074294455307517191778202605706472032406420728166194328769579191689463929985622394070940603403976149229397263122704454312857678492965939958728241789050834292672534482289638303360928805837227953992479559520395994009837789731745949314362768384480184858477293234958952468245164802980761949511897114298386109210508157871609628807117531079891131934371017001749847043169374806779248170919870014437619685384451932641834258063301021519443153765503800897522434115746600074264031305330536186296870575353706994892035586820764676810061359139667576789825303437675964743889243593278082000748912395326351768381771732736656485716323251697696385387775558455439551060585137979140585582523650117633770859039864541989413354809161255270137009493532537707745609376225141954335274261923489514888895809153557987780744486658834129976682635543547119997726905418417900784598530897540226437856931466118815880067267429615366870586094330648669517570613901963026753663729717451865765713285935019265678547391241305338475804327169201264355829447970070983507689149093623099496503945700418959662808069315229069925382951540387665561480167502473981932590007845266977719417972499860564515763372972296513844791861537516803801120939223217166860739080816167892527957610144546910928908246397287937774855859151868881184960145916150336459207549668452783909413727809223114963748193338781773338579916380595862052925963237023930620411991596735939802852443982285592227339264467970116926860329941587575323605668527862055828366170825553176506201392060633290123695130622026620579325634533608917462992560708684778993866620948223201524118449468193873008127817101832954932856322174698071755355925068545981252476188923243683974457426443469380845191496400226570858670379412857807714241799307147651402369439412313406595058839621473358941832638281979125749871178841751865683233845447405400936336388261647319560809059927432050478093054115828337055490109777808396586589645271981049253282201956723895581893963179651191013081740554061913355245426341045873652885669179909775821689079763448295333397920048136938122942868607143999206816436027485337652901748629887144918860643781802236344026455971870462646762808557728872267611605918353768019941318083445817176906869161069152103933570017577896147551149734227070527689812615936093302640184450327003546680865843592335632074998608421743577494808840108476734856655194039750485830986004875302564918306343134970530472212486839512061909432923352731735486783459888216034386718812341182623700038704352805218381616011060773289923962502958159303277511063128172918489850252190391550354679105248437896182337720956041806253174039594775245331796044371172324229116884754234685673593438461988933534985447335169793243548530907702776189388711284605474473004757885778265023352137587743636882754992216690014876442438299028822807133269588163603878437589399809210015410081950237695607736354894265068941646737790045746269045743795182056543364204772427376330988276208884189954922441385081529102893880485445153658927169330886897535028717316092535039339551233566868303517896185193907898335374625403937718852969029058989730887541581078187085752466720623265198788238314653528209999178196012479843879114442345198314162574769587199126681649805552370768758889046649398090641142880007371263674575596505475419978539820807134015536639063756667922222515227851693803398540964260316406462452220821442292956746870150993083055594241995647591929423720413697510412417461407517340223688497611528750985986066317699024171617796269491162957289546199564131604248912396272094716740715706992986354633479737974176471361503851933983966106411875709612075828242492696312957925627509932287451348546925280591109683300536987596746288141065190317009679755699833315270548097715482081167334598391961645129313763550904631371795320771869631669635231591747057194034168189094503457819745952235430278665070520417878770985081414583177574908428944654456939196480454551940920208286623818223639425502883873145992974489640981267203273467966412431554933698052244867671791980987402321137213821610729278345058504900521367844161108506854994596136160273342365949111351053812761495657233675329538285239449068291376485063850380525259188958640681230761574011500373709925190504130303842018620544806293976156639627946988007166298205034401847442572720424240677139917368038045399663797900737554369798943532899943482733844769858995297953859952389339530710705313751242498973367121179844778931881636183147535337889616840799075366570054439276546983156810338417373118923480217848758230735127543214353455711203458725600782868658678298745704812616880801812737762250548234571138840081437991693736235509803767465916763504239881272247240756653649568668798866378956859867601607944373897683615406068727043263420326628296441830072794062985992125947825877594897030276645656726098524010232736569877416666556670736855691826503032954343363930799876415166719371898312434428323119434243517604018211688069001255339658941657694410457841965170765738810481817564410171171273358285758550094385737297764594884552297318161837344102754716820903987201148714287375657019014374646030709032010833200921267229061531730252369798982717098228621481885766635861273756577801743543800397902298678505593345035736533524811725551566396472260753594162340779017220826844453671686120090374125555337922864977243695256728514271195612764968941401380083997756029696738219812694789274540190790065467235271849628654849010577451970992771676299095807091238475929132563932701769092133645094123678479101567872214917025677236185499856662409337005792810555804836766981474759291210354075232046493858930174072185235223684675209908867308195718586314590448724089350639622797175708403338428209090041469454823140440112891357773971310110281273452473902258321709790263675528687718414132375285095551751601539085082933514453027510962237612314866669379934965811142161013040217009593601970340809529009541830953399024454824905583903282430665375609662216653333770741448166830997761819396458468389117889695077497238311739204831257955782577033725990851813305484318246573230903838978800111222813429837274107452595812434354371454410770736572196173882652517616168614086893047329881482439943268093489406919852257266162279586150717983955969330700862796944396735002999193720216373830207275426863326633619669590110272335856514942886769091387698246049609104105889588864272592107224698597425039842139218214107180403812604724462900157310378782702541687965478444157111148551410989170901189251318221990190943735304474415360584941917040143338055127359167717492917630602770621410236337645344044269800062141158375095778419179089335020991005593763410007999858222146980979248204307633518894455870748718397407362165222306202966757934978440720963834608889126746734542129538404423336633863109475328936124046596987537504833520126703230963786414123454866918573270895021060842962548811883687054332580780006377036081248343635676269103706074341997267110323488913606562716477115698845738763971930474687465931032019136140518744861877450975199560612603484010143417863349988998095378651499002711933861599444961238446792374454297873092448032632623260884341226462051326252956944707376657515322726830833539480237653981259317262980604594985863514797076770056541200700359698760996611373302784792237397272391099390624054002050196023131346893485844711413139028240016086688948422696025647472636157947775390412259159695233030514306562768538524404954407982577312671354129699775179734195531378272170014409684014195921574347957493809210707907009593749263919964280801398545158170827262624569600304644240954939973232633902478032229597254523796563421730039820710414360488866123450897305579310223518780661826943086775349350837145591852986806820361196565068100727874877055571892144231418132408668047600649929216965584937072185401196252299120139762257314320991214024210621110094262015230161401377087210874463225916970926389137693290430427249174889381798209575052369244753685925345720216295470557039722632823037230518455708548293205354971592654055326246261462727430511377041407620310093125320702095404990476550153023215755657864326039235297498832197363413522639668779860790018293719730829477071512040281896112706915653483506186628759311000112789088330113337526973568278276693596347033223390554467839600025319686291413688391609044018519339390889922208810685869184033168726944716145294391984133245070210240328104842484425516117239157977097898649151524685268541862134715665899418338167225218245194641549043693721495130971718716993106212953410528218797218055607436029900832493392251043496809560641847936169573809944973219848050084744929861020925248936693657792804330686605266943992183705587198274580434621045092950615166115942995733373872821572144884561950752670437841253579435018623076151813464143375628088002582676130054663517911346164555056801880638750524729140956124672335599432094713690683792661180194221733149256612000829036176490856881084669946756626509948083763501633262016068186638122804423945334103235271161935750734480780091182959773027254063175300748812309594771002563047571621239213718768709544284877552163977032300906557970556837213897421454148581294475739729696164415036302926294233669294423161849678861329204410233953522175623383314622163664892305961590616980460248977846444300942027461525137078571323170986999085928464874366769483788988019855021247945859748384486699793597399459954925790540478794430888622376422194834472755801848355772009471711708549812760533213997038565100605542208581733592817624520636050780809472417226612627852944934171677211993188060710519858407126973598630068016086805396003319285988574659265024591747492454090647366486910608904137169021327758623907645803197872832688532791673604341554626148923896011660990111537433951269963379226403099219157798673801056112155199463707230606908414073909095324104289758052754469192135689811209879903225855066666746695857041346986222029052527359029907928239667755248940316828752113881384056885128457265241451623942148633124410386390030783466491317016768912510841750029501116381233214219015665509309542525650447757344116683254509811346320453387755289307335214453668490104378950419087138005015654604010200442887698333357406833592757129768896750341449066704982711518149809536917783617332761550221148667654932310881822505844568496074358076770408699113512513577577290026260721956509951249140926383822684669602886182402423643858266577326847680630530492777755285862056411624706466003803530229016330150826982573159285414795845607863707914360334670468324632492594495219461012069086248420957826289175649178163504959520382644359487603191592052096092182919532577683175998807923827711852657623494329243909332666951927681382423536773390294012494278528611392023495084438116624387525154389065952946697445129275597810335278106319972924794201098061794259848017606380588421608448686399895344629920606321183186039289435305222992622694306792331124860714177364447538418504451150371395645197449199701172041872506288729693570240358471040643885212700251301958484387853157824210231069367597061512116172163388727289965268597326163485731920685376554828652989925628187582096529007199309305489604582150745422199067935509454201946957049509556127481544612360652801525508526939326278738221561597004792090737386088519604491025789731688314426854903726686716547857202885149566689409256922888360169163353183054680189095724470777369681055701444035328459701418271680379283733741600465383619106749070099989280764030630731507071403937306528276207547008788595247132973789493800014378422123859995417816513522120766674700033714835272178088085560474607301203722723972587709214139895800126072217708381098565006336285214471166571937729356942316822049221592034623895009426700539028015875520015057351145463169775072869655981055335508203128754331330768534013611420878619296050379707156700659497176252288284990989671355537860822398892802965224094762468776636413219487728913498440265926513065292591196886278401544118041712523345011725264261493602738800084071672554112461416939458829215865957530671722590161699664400146198362280963446471040286744950731408590315040266611484455037129182955872579355603929831909560611712352933321822610311457429584017864866184916108043252986708566021708256456591116263085812797438689414003773121120091532497243953830440612594939619804676501383042266026196275288354452897712001525719832685863065231249587050593315139878660480041367115223383029025939901986223917608051571099833799673239680386048880183380597926332214332646884873607953351474268164332110947445567372082114137882611346616857495562550864517663172801203080576545842809727131311844195201011689658959242145375624274409275638925890343289267261244534129864645283604944558744983178089879300051440269807165268043205615080885891356395770964609352596884790146361411869019640594845586201182801921601877774912052114677474566127184038100622642191360192061507737750611681665499596284249454243703714059488772031692498373193885387765778646176656034665185390025087510537281405259229461875229073860090261604880944230118398662254108296505331037354171039876741256113347971493463742293122294246267557817726948777070261605813547088330994011270482966396863803449153477357457276193085798523651765002015726746827116251107906239130672565856886395503480831204583614728365218469598084219689150678465114306969064105369141293384773946585650690728509111196851148476842071450494508882798887629932272538287111181560953510007808536981221930368908343752441652470582763943766339837645184603924039665698127257315925898328901805574956182433757706909912949508347399089508187076183927773278141683396816474384683120086616162707896080618431335594852039545682319320838172784529688761121396688884999943362900890246100141855151777455468344726975011725761763904803057793557746263007739854103066620441335046949236593294768993268510558185975019842190634964069748087119478221901925158527972995320920954262224689476089081634123102929755308133108537649479072975570923612808163687724160759429759444176531710835173887276792963396790759065512730745643657463782224008105819917739524059159859765910694878093981743541953680802040313643034739243297955574732442477820953822901367348527666287445929866844475711654356579014547754586041293421581156114672574543202701566816091691111740452221315721970190774879738563885830854769187240706832156370177073117031290590055733798723811949355176397196830537862543314761873029940001660333330171227767679647550159108408569039446201110309998599524252316882146356327999252456772118679514358863604168880098628306824343764219131710976652736903461967695369939732462078195694593572047476562684196968708743810274752711267049977749808984078930902562605905225194636375391269830133857566270676949647784684233222138454883072721570929237624559098534990676890129174830477606930457934136876686424669815534893885991855326823045510234830416706941897984189438515395979574152884768236590156841890999914081501137494648596691490252174577321324993657471527638951267634813434384824078621560288610953668590670540188345764208681214820758376310411575088155186015714052143366373940835100256164890759265312963575376058918847045053257908337973004662319067105186478228294432049345063956241164189008499529804854825186665932446960482354054559387399057548397416016176377483691064101780120215845049783475221721120771022860046273842316782107711827208559662865524290854013307525480065053700359324573289613984840012357379247464298357989539519149630706006037749644385303874705791751318752218193427398174120611829308549207233122462849281130784608199450650313616411639444846242352016355239619392821711692597769588423558153059530275710765666410923229300043873472099662660106204840486866801040513831045058429936461580583794680323351388966399991683600773565080849787891434097336302934316593463139184210795108335941145706382100357744167459081220794393453339402277663382614730669660488087318294465759103560530066797731219972255025585928318913812412750925981818630765574234932381052908647553703330206994904440523835718670673444670185469949636989252756527242260585233859902231576509358197005450827858405044321365496377282060363122537485276420138101207473030325083792361154665838783130290393798366010019556041240605908894686132269065207927113446307708540430401389422636443923301525442406736381021602678265900098156596843223671786668313496247879785427171677216531302421932187902293791900412513088982559106592874662270197841861888091283530212476020200753118181409181701659084833031355121562383410703627945885485067614504575882470261624160768343028879153397426663938565971647817107458073945231207858116143694672784272308350648667831740507178016384854290646822021813616731859790266350473751709767440919810573304454424764432615002917922740094945674329576345486532113528669012116393553058632876985625485081585919243711216017333827990701208287330756077832893740349409269571926562282209024917368817256799449973958076438906343488152333280239543556404718338862999254314438190462723097575103236669959857703548806287070737897750888777241645449018947898394211690658217395325688201831833280618384355345143226264312026398121718512394109878198849135104309500251915919084865583901870285052474722147859421649930468188849295014519340650177922827856422290245658851800818880242428169041215759838755654055978563449581150291206530755956597677088072904370435612534875840728169420967047209155565923485800567864534391953552494472453821798516326855943054768521252940091445931094193936870489496145983313345051508380550403719654060147215469652975514583823905296682047580751904239956160106770316988394361142439718991328879017487270794102036027735775604131774541192545028206256449948061425678414834818012980791939865194456640752987358611573889781034731903170100249420041956341939799032519139563271322653099529230157375231269824232963745050862071792566892569141793971191716045739115743754989858371635976457328303833548045658120206202800315715097309034140589286676024266865160999237420380299438470094966725964277349834054140701125508805534553318282473724019410570247765418802591140759956151722632144682044786014661597007662823388090661463450982818186617636875018137119882580851161720444312269062163329183844642142961177104260945810401106307634633128610556721299700375099598772203974868458545061002883861911223470531902311818515595714089037047962856211569278430986191729559799968662735181592538931584522432330760014040192072350022285568787566386392463604992868366796458862121732024044358780083440209935190061368998860677728351614387654784171510454885260113957642022049982360633843748664109748319896447705441666116723940614599121796525542172711174519139158602037841506090143882767810734265558705157533466814891313501561792424923833227219097555007177073444933947097247769595410995565140769588142199835176609246081435549945030514442655210438728309756406575969648384468814459345561751927503344167215231665658087555476275534638709137167724769008395233042454208124698429535641740556740288381410677681607517938751302731418693808296507012097600344546145453304928067769352351497431554546200741068473750114054054610834065035408603378603548469152210855639772741658811301860777949350812073806189027261443634081237764461371769960037528275021316865107743702796900562569007279874620460094743894878035456173570937410364547628519923027536690151143817561235367343779906366270875398868368550834949709695015704853041060613338075600043313219093639167077046513173115152643976921051135810954139228113246710597475140080564197800848502477746703626755387032379898076558738149497240348979803568744388497082593568672987270132886670404022162069579495153310647548839326074330109105489979520270239715890950932740549946197845764867556273769847101777506830228363044484579946427358943565636824000902222518584521555103223181605395128967659831045150314950375417520589041732187315500304050436760537863249017492156248591341974246626021084501221691722742381813456854053186161235883514967411181897468773165793380192611457804220930251567610841619151344282991326301922525517784590254816042229789750818220309845584537661492699521723253638553962983260439926425961643608610195400226460355368023087884276495023655937153898147189400468489213500637775574109462683114947962996208466946132650392521407680063184654376779534636673455886247031416686324450018716513320476904597233708222768803966850261568798420577822905752302243472182160354244749964439676959451521037815017408606120390479894428422379287809900913141161662834740243580519553244224810707156777993013236105676786860340031829701684229776480691847647884433704410059944857773445993497503030385491407396150256630276850042709837018806921241555818911633891736267876245656537151718381106444732437420548227430375324383124942388434579231528281828365317737475283695746607930355670054702595417358749125949074170967092703348371159910570311192869726781464041586461363618702675440420608731209186715286182065982491436114745472121035519971919119223692653073700581701370447730024269485091625686321510999429841974659904067137853766409908954332469184257738028332289693599212407437501756345472606846843716234847091812870926082633720738586080915733229728550772179114047086594331233274015957133549600214655458048553197630537994064713839969774547112080511684879773005971232360919283156138940841168552124346732177445645605022642304136134555398096958489903253685221322845249725971718187553232173100053293214052318806010631433830299052774497212718865112590439902763313768475168162205025945591365633773456634698213715220637033231909771352986904359330782318555870573908066014333283549753026269193509302439379028986156773732651962600549960113113136172489221559824081032302723550825393753120282377810052839115473549043515952432786428809414189456512908456565033145510530342000988594512912667603556312705797159132499282165718129971065460422652742634138451382157095617818384643642229839510485162404821965504850855189157129491447236284133112211760826620319581929746476396594829167281802847604710896978647453849073428275116739660704302899874652972187445871530461158620373425853570033175717181308189039236755944997478409625586447422725491707826039804822769833154045677136769379854944406656183497005718593322174692595436097541404614325923125628858559455771296573925894954579409407407536485327551786503378134386246344479290565401291221107261580299359551032670819399783141674799207152557149459286044974304595719232178927712508277656740552536640877591501667291210714831836744420410803953149781923906179898159970339545392145127091143161203883107796247789809295467508163113882907748276106381014057918085299701164737289339757948770487278776837462153425528893510226332508138135831466428438380107175310972385822738362346821761188858210614677364328576012762164437980667869989559158762531450949239951263965019394742715794840043898077520491676519822307163108314485755360364284258848909787630936638678704153591600639869802080763344708350577678400589652682128697311670715689942909739848930528273812770159845525644521220893412771823119414843007178386700921835875685116129934120242214412299052154563731127618437714278552842029860884210190001271578512091889639857839310656157520259120014234327474434743996843615197347042934528067821056675329577031176962910461842823388382924931670585848767877309846293553137830083622738378892000919035960881265492809898640962815688470374799891928453648724459784355456129697190302015083127326306468871301780057222054818501929483964918720656815771392600184442197789122583569164801761253536931178571575621453786369021927861368303227080558687623563019699541376038069666662629619953044164836906912116836754727612350259802981034465236259224504533167320840465157029271285607864244671344350871470240882450396490203031480736899252844517336866190752607084523218401494727009968459854059158019981190551797034364847354886476256741418558244507318765622710342581917261604134385775720160787523612228954638389252081194053138678163062728964265139695563634622348646632669416274241701921167348911779399970784084484587136836383837405690435211184787576149035363339639368897725145806049876500945633423486677281403311261821185022801085326352172415449220758024673179762306785832184246884841093761857911897726540941118482020530152074172187299126509279478396447960975573558493892658920789685255219233835263359937199422413714522262149348100618263626798443337024278273794210653637759189415147769870962132991576458298693600498486471634027701614283991465258810982239653637429774962823474671586963365749709471170468042542805267000966277833074947803134523000127491761857517351575906278045294905397860968547542513246263489731534546710006747730477546332553746889147599055640148228374413333823658572740826554956372719677030909744569018979073358099104007601069836718211517168967114725063204537221771896443466170459892197302832867529072511643094195063191447516392359440536893248756899815646729045096868016004131201572389825206316256064663548542542820549762022885496192395464482691994704516539552371928103538163281730729191938518621644241640056856184956522805407061614804809799723592294954862862652386925515664670143891426272200111568074239849951305547773860897736551730319225094310861617965266860318069911691365379604633795581930897507241401890168238143199916738123372766082618728610235010095358129944617699177749627354911565527419545223506547347078437828958787831708497657169559250888748168134422308711562000080964089905000537086072043550513263922484124541533686801491796785605501765137919843253652754767278559441120845868292515320453469181267488677494659170669002162490839536125365506575384397375308208837551380927202358900338951431454551223910579281654290871045978545353957726259750456302736526933816379832363786188226195500114026591206604650134111744211595978561021320303069662730056586775069996229570715284946701439779046713779516847607212026901817965940018594966210305795401699105390980611291725305429778239110884562730952849328207378032587064385647449494027075495114155604043333527832261865101929634800482070586359255834270846305830669303907976703428867771442745826524700416557494129089263312608781924829623828427405417324429476508970732964176883761268153429839300556779280921010232672176621989230277768256627110070899102794353386371622028423414154906279245428188875443405441611881211568107351240131890086445852503873640580049801410163132336814313914083518611598683297713091281339187300096455867729524476855011470166764070379223930421838477673177168126389234437962314662853626526692505000065395273573280118756704283736533876861290637369890836621359343157766499225334098710080536456501202622597610085245455369622907458857604988983229328715171828523716409476604785195847992497479003306759756875891984903954857572951349742910587788365310068947641589451347326206459650049448984466928658505030733549294938167371708958738689002869485490223416969755182751837235610200730972812962064897703463498553399992436929848297783983195778607037427219852497865300584885538691431437436755611378654591056076978017649062315371015834884719642168033630075521373595946570257646805097955154838266034874242316336775672013126212118776512441869250412179362706522018417520087638856077345476077089292007541346254790010594040178790306646987808839187351058769248136678959815615205514131706849766628630615344233307827968715717299930845183315414186103565109288636004206766838020831869106954017634194896778489414633797325236326734212511254749574035362800102566501195618567136904335394157062347597790813481272156915324857571489782241937372419551710462551653226760167624382994968061746827909526269734382833254869170282237993037724662900634071401017667379327261239227081322212275907266814028217093938927417937834952345466357220742346969212675729366392993162426285024337335981637651378479261186018489024044532987979654123204761577445954199051563215170130107563102013992198243196757920118791688709036733018020323845252993131426077151285361546949346876139711850538678759876406237004612607202868515851291550210164169052913755892069700039211334115110784230021946524455141251186730452686866826461342429434111465193498116661158592924348188768667910831719533246075857821845332088782082091049798157976767406843510387863031425700365598516242918046490717290611368281865462155528053338697716908269358504472029363916447136886926903897423190711544636767978664116277569999514032420694569769303417460560277281533903424426860154354694320443547281502831651533039940426857226137414036440305253981345080821303736150046941737669043948040050783237298180648024523908425877854996374768844088124232234967393622756514617429873455681536278575768555868382472578626830023343218010162262083413992435953722086164734608167891508713855008578053900185838141460143862291114486097288699503255392400218105053863833382754865123477770323509294105870083551803614590057227940795598626417137159362249572253816754620254492387827964653439944129762678695597494209192516304104897992651749333034936143262212488172875549158576568480257150709657748526748317984872450990758855634455939449666365850035603411028992292475056624394271785934097829861998016074814344331215118027199404053997063873806304989452809379585283600319177647636068000639851182942332838708632863615217452286776949363354613363018847089840555670479276237406138755048296739389393045628489495766095709868132105310678286015315419724435356808347135590702726911503304019186996670253582552784846127906113772838751631138247052982843833659927593122016904195761536672328714116127604509354839339478289691523633008876030858026989437506243621535395044487858013786914952265176944878324393623327753877188650147724633427349884612664107074061388354301102188809641953385190727936447327770800634272662848690599681534552863139223274315799934055098449393319972844907534115515921202622113456176338937786089096528589439781232121865550108021097186317260452332126670578111829385160101586968662114373184311892973140303958364420044322872241555468733295711327956858179926514166406715186361773347150209386576544980908417799413196455648084286690924397660702156101460201511835926652058796087877435186622954655409817269796397915964682026580181150712873982710165168419109320419044083276485083034051524457290438702767329450827282290342494812696493142146241196297343707837291753797612883263476752221515382171086933466568756217477792790892177724729023072588284280482673333241892273599158355084000761392632722230463105522980901832055882154245354764015326129267702479050406302641324968722868335830463880366620053783891830763593343529099750328589687667197792096550463522456200589072999261409608547029302037703437658446332614816737131255300331562936356740373775929767295281071137923447525927463656949154750039557821490358688308524967709007207946646704066219774797365597071402949774349207356773055437251540565439197547773456157517910485460247376540311565739782819368729271172805457237563750997788130248613786729629074024339540013696399600614903729835525627119987617518721817210395458125965017814392473744781949338899643443220870934856454014869113204805736563417421049711716426306781287534159247559927109408784472071744417221923929353190691426111308840914993713547510483752170145411830099035892986850236953094298699702677920795830735190335718514000801850962856339929311030298929853930446251832048943629652624287039983229504560820532305291452303100767539693015185731463791148472156970487003215267343042801957914602986905857545794365218649328254648999526500164788942117682321240886015404149855261758850458130323293938008138088110924866557814976487693094641890013250426471038841113219691215188654622591795433108828865786021927587156813740973019453210321045272865835820646236862357411847625581521970039976050675173976194085328398903567729223838307511327389763388051964751032489989487175747058718463213090110407251352753585116287433926500840485462120195490091227820764291688018949252969445244135387191064373889793550433540769830211887324742049763601137492869207629730653473515482699750636647181059112488228447180295878107802035055500720434517775599291096065188145162727602756863447364431047299334357306525645772549444953774119757352827579460546617937602602551751465749148610879017949230466683304991324613426089480970942015830994046883082870135406903291771538162541416802857866079190343615021993372460107091940616838730803253629490455876405382071609209064364826881899444584525287407516481044606298112429441440243921187854806917786992669513971057648847294120176166710414996759484132552361296922327666413418116193753251924746828901031330105514820675284621660515727057623591487872197091563673901932283653864989680475316269009436207775852906443962684717198832291945120151526708069234028561754654184282305777790099749712940562110484050925165262639137928494016887569344698030690421883122246101842184361064121293638070562266284065830223235234858294810167091468984678333608024023685731945300730928257030487802155824442659437243654888854603947218273146830641930659294820565102537063283044207944715970553763154777846223689116871768233192150775093905402642869715517178010295490305231282153761900949114660144035916621974431518510266648516017031647379858059868652788827713437751810926390803745683526771871879124662956152978376683523122314505531011601333711284208562475705421274078636330399727246929792050647451877724181287851304654719009954779260874418566932811422205323772303730838065917594956405073929021211446009352907397316846413165700925238709695707810963256282058292169011919801061299363479120395722116508694682203556567684685507867317702506352964787229246039132181906921750753494213051528404168291399424764093021751641379999828617376923320598202808026806913513383625817306151676586381275355627531377144901505798508985630317962186953889492582185558263743534451144102096509390790896804521549666953741863689707673584712945063078729024794670305983440549054283259979999551078468016177435266278502355548384291760209371520272775162960620205776545175439348695059689952089313783236212489606028556976413427862688707819859126422335063662514692050713173074189618474679942572321310984741857369191920489969185424568483022673203525911003368701134577072843048487577861218816624492042333187028690659381658014133016781556079050751290613184469517469339793782132986399705744962786627119719381720170173131791007995880882659099316443806724269660249411336073607191941949807175299326039394921283858055150393596105426420902649457756994596416975319878086679979880743510115103102739121407212129205683902481551694453336832856129544938311291030442100887475880108289282015467770099531346808884850148490947504816686106979322951312837595723844351519627099821469833110253951481338299631430971190738762504891760021644217368833846043492415015299358401330699203182138318688477823514024528770683906471531079411577686778979350184875146299710257940644465069328810936951533819494859368206885159991629857425882659382560183770081207216132739817297908440587592556508578926440089480811963878033107590976041325864586629967502850990355654168191580986060037911287522404362506360290597759175896827471691492579250519380508120921894445528037693973097783330268122207537356180623767401678091262192986363122848951301148090577839676884855500724366405340134679181579218497460350265460698657977877688209249332797413374083974461728505768943734824517892264274165198937511420580453629699322765253393622456401793025355694386373894807692789851126921452703426061271003178628936169687268232356076101084914411253411362638967210237787360481301757690467250782449551666714052482385824837622198993947338366842360816208695143640165819332564960735746830605460053148300975793868067925762061087045618531215233032926138414217602750262812254009477370719952397473741309169030527173820478274894689855835211165433861877630598863383692849466680670720957387290214965350244604991245346265967375215420194584535301949798672351321501278441757898532046638481161582827277794033107861507460633560800503244345889992790919344023755929925164470345672523326596877680954951454975589089331303045027187982682742512153619968389271415186628653165436577886335079075942617237690415298239223962627326493688229515804620122086428267711123245841763641360038186298789012008258226113281524523151532429953434990930729494501130296428843589723599863139893989288019643800009600874168773354063468890503233584819465383402924544907213796958056918787978588435619529892532099955255517098327803072420232427425589589528872884763823405433870272174705046608068341341285577883962659642305588325900213366846023774265659711333857490010387677915430788840225997332501207289596856643004783137688185450272681352270780980339329510773762149656347067827741679285903784998260664413971088440605294030143741496191482635092047859496663427510441940308118332335691292193475320853804388183913261877249490602942249075613467786220353698516208921237379497302951106576753647960659430662103951113176721349491553971709149082423551886163020070904660988369151347244551770414672149799252316605374422337365701766451707446831157012562300762639289609327523160543124427820372985961540097391035589973434438325187439881974296287018895434835911712734238070678586996595515618531941181736460199715550520414692990748177304772730300182390266016323625087546442161277603387995145233970952345914231466972912624705357757537881367573533937555960883215755861622661131751910762291144915697141095957704303527094283672164344450842810165857168733823602884637919068259097639086796448906581891100484109057008846531079901122770591146634903925227112889411748517662226233371860628478008784641664205604680132250125062955531665759299836252989620315042559883951901617360138075709468102918224956517583046378226335709657749285542958561752430330125539085108904164981949372732369614431126952356039197032075216951498069555704985405674022844356184222872959892729629377910986068563787694023894244808477029213838792010102044339911796840077722738019454297846015718142891551771352814296697809525243245561060905695413350181761149762520259650965597354984752221685947467738220048595432318549417592108802519423300466344877707235174282313496011139853043844360731709645877168327364341334264226469319577571783966757644048200415365339556047284831139785709552628956813038078925338965200545846454346008352391259702044483943640243804025424467066346914439139190368103381018109311116817473991852390420274452863351229481374505537543200331670375190448976018582407648826842305066911682797269660914324950317690718578016192514866044441139611349998075288435464935157843352730113419877336253337326233020779830652025954826470818375336663975644942396254585283960293169199304415632119868774190507341716173702834752181354974460583225281714559905109514681350971326721965063300728857485796803327454684995105851958737005167221970599794449477322837836764855052078174369250957824162273921800044851011353768313701059585329514949201153307558750502146734321121536591620282606820808673608969217185689184685638638820175798560841207583649271133667455857894125171152895840222752741833428788488773313187419627744512770043976373122664559262469222932921563372507032286013804013318468302942565291196147310820702019737249134521488091691786378705751358043566945632111467015767215691695072482991939515960441864414851354681071825968346058117769139886671207677925330449914397599050918290032670330964982141561185102883247398549024885831504973218301717381843002916986713574982015091242975176344892746903002991870955548768385625862109010238585568672901670252112900758161277596539178547992090305352985313578302534452718306265545446971359999749657739338908525334857225200701868321767361499836406225560767961214024172094592353456961095535977544374676604593311075085771747964137201825383585320540313535066632150507732668734366343812009294531938180146517659118633708933781320865085183546335029852327730702548890167557471897671046175374510856730622149723735773770347795795997525327332475181528092128725230854042272012481661414178649005048651648731992066677714901143576038322703974287820580252381790454004374992211537217014537819810609643008880656162300840935425957947119112152269649883043840516197529840368190820047008143245077976302840595089589562529886499345530520821140993686833684842267812485699647972784701764172574078489142178150360279292271923788334069537913334684160419010554645334893032927082822643830807261997458740248722451123447420432547284210005338285236251017760125494013970370855987692379277087336372386618941103416342663204804486099281943065519746422403311719019486228208621847035620745344571838583675725559300783133739493613551380139594118523033384251457151593225310829845135586646167752839244441657871468717711809280613404211014730263245753178055178068841426145267613328680981090926298624261815171971861303820975027226800252963217241859243272266797805397445640213569090748708644599883542627370584766495025378535080067552172171462431928641664389127798568822778356205467413701556561823397757685598738576785797553194820643148071923599164028390294426262874224924051120123588923932004279838712917997029810103752384552620754155882862584985490410466313262913293445178150712675353192844227558631860161494699497443230521210517449444831716838974213735425367409401294631551201217914548159680984788629643909826129782768815072496136491790745988511802126878925794725623238271469856870308365783377747438920743740529631785735622591324089667652262124506937624437044073503574530878392682776557588923826207189875198337556409827985420128114502630436042673632596511537989010602839414231311436165591850434632551498522788370184233772343479860652586037029512105084487517045239556553034379316659561698414826586848065361239677841376371907743747905422201952415848955863882740259319506646034719330046307340033580790503579870280719366346107506905101361719571918349798198553797260340436755545809888723136291465543149872586734575769650939729883239141857711849797140097681037404093738967428987100499755522794287077162261958581323389277681753927552009757062390772510733065978687366467375006786560441107565534314437850145967604535549532141937648902081842456247903417236518528983261221126246725489351026430880836489988292366523765387210383312492573329985818840990740426014783946345254388354813821678852708179438729725949631912831443018964292396387772807560737995098512106956490554705363430855346102458190727417771241958171476415511637537185807448321790335660117787093329697853777360810751058298819542766552023831476986126756494755394424833833435779739359283192572196981049123785889477383736983955304491466203110609432559385472935072054198994392060912933331728936850056314127281622920088990848509703395058369594877877538168434757540333962519173466859124319077423114320084730495759168137296113664616196168594797303294791042749643289377008588596522422958831295736682625869451571438838481915392886895509782986828679854990282600263441559871368447946771304937482319818911099693131774824910073022942018466398789891521891741203214060781942735180319320141629505925725272318629989849479113542346493603834815910456851701009229943513009073305532799614921407169751640823968493650009628546055134582866105218748718658720246786972802635097762358565438609346110806744197523353385366258360467514852131679692044305712565074765859572438616678051291223872616466602800677775063402204793624024769896757024752872821974700373824313495441951898156611667348448522523178181875107222203610202693885203601279125567767983210823794516074657251396596691365908171520024817336507500685483467720424914232007036427453663118672042666701823559987286046035912691337480001109048603986692054842205171845519543083126544687560457081071956873013492415538268451126717524706815110491550859919245263356356532471304508328673586140634305791662600852249422823774305314737555164516493275331093318827952226387214618070968670618234673505101937946309544024202506217505844368782031974848254464891490489434683355817395033870171817017450729844609696972908231095355548469630844224101628287413355377541012899506206234359647081028993398775317264451915191254811745679939698922100631795289427475763125616755703005815316415040588550397300372021826082675100804856679599622912953575583953412000993733794678588356130947488362119626018722027237170667629131774746864249700546350324126056669500418496687359383839339180261334436961595058286849662209256254807612926769354007433155136217171118791894502141630607227547152558681469844786567132236805941748589329932329213531549290997128493627063538125908874627448743125066895353679898028144968792039415315676252084842637220503147549682489954790021356905735745634096737727787829164028676227849944461458099608760425082179396110279038349119477806235226804942929842920241685460581307499211838383088465414931257678821011788637300152732947104527434358213937059295479798639120212761872485840678991511903995046702743383032777584871229141349409309916058291175355493660967921692970786012430297504448004832283905379762704361156108378978972924693333164379156967108368291271139334537173229736555387437907484056597525472552474117570168486028788595643586230701592411775863126205160265715953198534261944817789417956541447663837369733380474613481416187846071800671403105550465494633081376777016527158557371718670755069655520882857687436491981735841441574677521368644523493178858046474695623515690074317741214275566425632983552144617737809098018987174986137505433845979005847340313860179032770031182221091128813577545379210632527662618039186968199306114653396022322599886862485888891968189246757129262118068101418942553012672832521893695473141302176668095940306438963988852564240037471306605511183369444840550403213033165884439162771376713580059242155148687372712209130128891072316287449248858611724309903846359933258437767772332716287272286004644149512605844783241781017046864875048473911400313756114093383635602551934214536207323225423753781397669770675070311847806952297959312000225392846914957238915516990133152259548525654181760026674645540897479433481354866174350177532752321080110330803689651736405943807569850085493215088352940674582371151294856754567195119498292619641286295891082580397110955807109289880018132915708533173198685698738663066592402920254647062270532921074240868278781532141920825521427999090851403272890192049398478893035979271564228787861069764429127437308359891386798951667726403733562325989455557928983945229990357741750332463805190741008946143339601474286771128758604965107541683172693658889531961554744971515785540694733063376478343493522967728758440310414783973528249532763011043859422075011442852656715402662343423435050812850520312136799987423347911037257092014564636443882411203830691361142861950881233681035539278895143818627225180906468080356837143465177160100848691488336474002472306907779686262878107552499072659572901016832846314617101985940683704970930987756661880414207992506785223433966147989004402947667764086489194944229010111136451628443375404554315742165329504810795247492362618261270594555854345271809731052122935586740029486230088095404452989735651600824771204492335729223103770889215203018658925274773797441036934825098173714869780120327500745139824537936796501777169834447963822373211226620412278178384639574891238113810479907751844722127190345670461858529220516854734628182228818777673631886118233706813776456851448023194390447168247352080149869387560778208894489647575466706708285032084307644823935230838166872046346532803680531671079866333530559151561618194293048113724939807493538292887211247736950530988586112622203860096899642739748084385007472920585394301443170884468187330993022090799285536242908569846974088911066722687358267660633411875721411735850307926757936930524815645510019870426475455751792908566793316409243656676311068900155947433904071046951666265488488486155598898567297155025045902114085403575536071632217665563137854779628924176201999391945448408445598503776037903324084971738870420056618345084150648643449441903961521730029232693634807117296313650490790036995981051895870364211920754330292301950220001767012445989426431652032715884924788143043965356803870864539362655277583022332500098855243100475921066058191814230300688020890474051813006606151851618965973435022830637979762871882183848531679842683853935310798079826398598964730371521960024945070131041239678819652981157938205029663259760032049776810482084412838638503435902335298228019511331897615834187689335430554393197419102724759838295912412975038370149899437770591959487875323990999694608497970502900301441073463802966592412733672420982935295920530437813224735975855651593512451875600334664104264828714754362939913099916997642089786845122521916678881652906105616583056992351499957029677786418125412874553340723172265464156922696824641615023580252058460596855160946908674907404989086633986544509112828880798070571508490764952072634270366163748654094160560964533172996023065743408093248771140684358038614171812036268204023523178956140160924668936581923991077820977008277873011726507288550078410198102682716053867045099816620623579523525418454543364493672565533895455662415770805462619805218519612539840246759015333367225364380210945267341350558682193481361138897483975515849847721143764766265534018241145656440758669401403530136674131511791204133699106402818703280028493432463793705609843390957737497449409900097251115225910641724248142930153578410276664711753992399334706857897082527609797669077996474740542250272781136108210459229290423210915195669983266333443259348533285254139927778920686499358511546085991888103819764239870447869270612491316186054006875975652980388565921006753197001908173022664216238471181953414643570209382747990125485545391586157761088958814376410920228135622280226010150360504036467327082640969793780841151383356968755837657653532675515085964186274050353466811806342496355597874279611886597786281964809487390914657627677731426722665004879984812934180160295824647684699116450887464671495750829741420534885421151464130168285577135179464537430518107219494029700106016689630675747733757360126568758752242320317222810708506205851618643052405723082866251454858426441461585555444076860444844546309832996307763615458660406859640431516462765381095750361312303346523964232865320890520115838022904286371318888987437503216579738710011281602092833527541480914438316683339478459795674605273373566725999456647335006917918610779631115619564571951374744995809092145697758144039410057687195777499770079441136174926360065489278967096753306579759189197254606732092304071393603140755748112976274340253607139131833773898475863661035055722092748685849792366059072092351394939190860133547892053429120084303714703852711169085547604862218003688824852703120591830128117499877640358869927634046963088007722270692932033552582078821718926082542404019546902341525577636618147034820269341577629144205039081822584519054595123533652482528713569928296744968854919619329140199310038391290684975685223180465894055378084997158160534243031080954726471553704369452663382557526909764581001093716980392135917004116315261284172937110118939794994436427668046436070063426330774416836095276983922051009326264194315031105795283243024535453721719950967671246456235600149250094396989363410897710375799622487037977413705958707155775733615892088413817892435882133083256815496483165707068396468709443875985974371878129418987965085403904743054197286654552276915045819619531020849622739358428166101738955199485583444028270824701430534982749356176537982688200536701668038635245965360526448358466124720698718619677856958743212729047998949075410208068073530316298553506623449661647749702223295940948101212261480264971756175483895640149462320289286326623827685883737087742656573126491923120664813186156091301299930257478102585548298859797507903771894279028363189428292400434844022086818402132058730564705875649556944759217668656794696059703288975069021209357670336810054639133392498173576039010632106237155678329316838399284343408508501400518313231525893882608715321103877052801335915197690871878235571244260970197493925731164199607378118588261591938893496922476906323442482976666027568360789527918166689968019963792747735736858512055015700399118970211317332498075907702145356407484730295844167845058469577554666694785785675093886743012676949754397958693155402664368203615636507713907112675433883828284050336979429200924600995443956348376231938490550101962656548404068032207413288029813891452606057032901613564604821811653745812602649344223590827398830877074861807949447360990520937711037770689279792042732600391143081167327869810286520766408187420083442384881090413348758001907582902262873674912266364983174552850415616248715879479288346820625082553249801057700311653453610785083737329431489503084562244378205402227103504940541115605019384177458329386981835791860080448134258606487841954956471833119580156452537389958138243812011815404121074581347002908773031831974191862639364518213189345193736846870146611888664460775475362147984619610122692257383477749308510372001513089162705527747694657955516353185991602672857269159297840989768046224275801665100813468560860847953318189583893710875966203287879653388809466574280519843911721017441967379715143190402233412045271397530148668581904896874750520562323399926100787480279753849102024375243273801231486074952669098568736669718762295559960292980038205140321371154957485694403282983381754996105021031471520886320091299886417222023020822030724156065100137185044351622226232571599110814778383926213758229365055813978077206569640465693551428400799520899613931275734274121684466787698067977543791001988063030909151031701470920803224028605407667689550705724783581376001992617281775889021875931588660260032723282425429299617371260124293010689472022878720438653665972804204574933322149842601891697730816755805305279497796631202135188398234674415477362947018912399110586466297517159562214656385937144114392165833300611014869159722077555002039396424045078395370106757969542389908705366621853861072595344454024616804073109153778422510237630885985397064999561147094626022570023973032371767492063737007634442869046430168064072785853657444737880502977137365843967150212703160534647906060285865124239596081706857903905398440487052728652794024311042286349724639979726730037489587915002937525082062372147054266007184154349472258022632414056667995224330413007415323325156994951625080316887527008296530526155326493222045871158090820812088385028538686421245647043132839943469774344518325217104285406206395705051087497315188188757159304838062513009904183472422797627684649649456967576367139275004924930025268647851871887615115500116809216842920032468817955619956144081261099162476849243567419497365202396991927398921456889091069006288424122990796152560830269205094910035658394149296449895387215538055595602068404328075384827837196514575958451574347076185397593935344263704677943718370547869738868096994008780740378297771218344689487334469839758832924215778919622929128470728829692869695553937239464327278806224192536827471491383651001059823647614620880156612837696616005440025873192321062451047699107280553616573648990644790888046836553363167884491170136572640664310594163333301089103706148827002700819749021235018720066880168865739690092666741052532362005197140092100834523957003192443167928954132388657169471859915862888315786429059591248201657745377562722454643562250109735485528466797415169372948954653472818997049788089528533291031909878007007840015938520155124893359553208287924677679954352615772691605142449653287448995269535423370295670628722462355216059050300258221236015776768977157200150060022131331503782310567193206045457106116483202306743024194368923646339352957175083548417488285387933539240073321789464136162117261905291180436395720546677123028635934832967024580458749965552589010795825730645183972075851527127624066390549875434527035745769483033209837099612089810593827829757560482192888564244121976307561819828256211703995051630181460790151153099355361672882874699325317666441549492430414322320200944606134101821283035294343363155267555735609496185137102265511852923238151092440747870843580672990682246294429402648354012988954061595428200227462058236469552313560330445703659189726986952855084700053998595027143658280680004302553000227894078603634748993581950841580268850071816461267966943395601408599179220441730680241643761436947323144870008553637809637243338478129849281236138425764611080748066484743031503622603786883356234911653635535931364722097133199264600434583533150907867930433354917649301232331589635705044973407394050455089945702422351875089356510588595703791647137771223139885483638871335917687631739839767288603416571495366550798033626442138538979317194985552541882373253633704099052952031014360756702344384513064224227492730960746174683538552587208715705466437676976219430292007361721162594669929877322531090725297115303479822790416677646376264795949062900519139564883393656455160629558459480794163801478834043630746090710884016075375853206370021369034193628351975588710163206147649808544522185243245904615607159297508373775094014965273802520257803371053486610165039478407708435115380792154845936025747268907742759554353783831739605873217354452990655271964421677543726724010216560233731179631864219867314449928588988621324864273868130879749412142821282228689900122168781661512877109080443561245617221662065379766589927364230789670327584446078018873347046823554724309190295401477680554103856347365331592368960763522621579847615712666395282408880971254357753946800075443587338004968256425136655168555651577319860381738314271027244084735480688681861535782327752372893491461786846263347502673448253611388241838410338087231424479179575120739978475820077583540437240210662999497852944340801123985673675018848369961987018041107422879167689114812887937552867692066966372348474491380074919916515803278034310062710110810757805248102425726828560205433066764602416527747449767856473013736856754045421817349170370928348220435577462258017151607902696558535335209986236001987613417088115379566739803365824643629466937137360537496428070282533307038555428455240813662207127906317454345806810761356680736661602335078349616084454206203636475932232612719308788625274002503489612526457413664948803447928341521151976589808358418006110442968946946831381964155052195699932253174431915715294875605722107399609074131697956878536100257944633667063779140528089646712888788681979507657221828405016456331137918704260631793803640817693458354235431783351230832131981842004499354445667345037146612348353468040037699592900296146238744122454863085616480726406006398864597228020634679192682025900709286626728280437596209436431113992565529315821435041190989203004349123545336661681884287570040455512611854733783785583824714834577767098721972726460235218371637520000867481653246708568618566840515154094354670700480673304590953662053376338896236365635646835604502973761992385782850983408200645535385306098877227101232517037528619241477789010281516806967633131638627231615942805618185964708115308386962119426540855367693478542828736262808658937734824391357208828458020651219793129589991681327559596038741409248036245186165592982506161971972993109425297974383393890212444957086694018372299190852201186553811641443240656371255430569972414718202582170463827113716830407496734539413449372476522355919014910625738025444485359454290954119629601963066092367919615290149933892473962112602451141947030665097523973079666710796055925215992641181463406328955379310853308336061792560670410109694422971777417574439646229423153421976831606380804400984800773622582601334425488428984142850530898052728363447162350249246480112145572096001195759607968605747841134784795060225966867209764141224119502443028117906418934043374911740201216049838837720882495932393635438036372377727026472336892213362614150674597640998091245072642082672292644575299728963653630204916824188560965410891679808986655203126387749520546557272915682178657557410948532343770466444503679615636128551699553032364234797100481049202104593360953930932489509187342129503997979964590601080686073476352835103359415524608586013780887893201399935175134618434349960952483884354426821601954965852017486245739954961434100026385283942638885808541034360565742957616305880742484073762175573577079875169082821873875122256143708358563619278999487560033874821312616518085961972155126777113467790348078603984980109143863583294683592893608793655226198231873783801155902928655149261944775055550945752454914110836111940084697690224207421428248422771178871946308352640044485669971296151959439785866042180633837347174177413202609231173307418404176997474073358140811774775011728598034902160045552232061283332246521066521829452116741459436629396610901720644521856820022886469713065409358803717273310235126929927713841412515317347507169631162253068676772408656600888148251831396207299878204716856601650096453749691034070888461526401930363886299393776392255912015639424298899126237649144634376553156588630784511786992541786406343467520628328310847752462336407258722349565774396738578978419986491098652750567061381873294715184701558612590987470917204907806199563703705777844338721124207699007108394374981551535016134685126699280800961874303906813116679750061184377398248005348444878083132536485215346194821392557734307338271104237754848691793476392321033175424076431352804975518297982670108362388640837705039085036989366699036244037607832811130739427894734425076020287454092084519559770161096903006621800535699647948768865755128459059991359187282874239059933390344076467109680370549245627129155947033292458502186566802884151250325682225132289062299498157758947306793835776868755141126407484271750157895674512729138376814635035169555965545170000711839958601499170574941481185105464748029204644599100425906356959914320955701181635968695913313823966069789057783609261065884592178946968433114756714646788344546422698035540231366364438297485873154708501757733152352390956440560216726093348434118351080503488737314837969597343461834815414913977609478100798584169324936395447877125910317377173146254521805963358039709089053722832479687007947073096384390331989898120942220156102051225956604145029953004123229695452418526260319787801752886712330528891724102254490570032670919556924536553461646800139644295770658301657706929659676589080798903747719811786524348409649925955774658519041935965448874300416885559923643607339939634899120172453268584024560322679304087905284656955243762307514991832362510060895524502293241637609246623513647435494033609000664585400179041782570291364521501075240595070599146174271309505260771317592293103778383433182556051109146926407906085058824830878571628516827863304209673900410863029199684399073079118019718390062214892669490185474963767998399636675207195100272886081178205146954172968681011708801356009446267923505036996218137777064297343502982752004927954974038968507203527240981532736731562043230804171330820959153973484164992424139648316039880218157130576388227625008873227528412625636769763298688123746945077994090581936679121410107434423348321967781969783790647917325721210146801209308026379329606234079914440377373708280414195815932544297837314205402174701440998876058614969666460294076837768133344289224909361372954788041732046614904237212820304980432976729637807157353022587813890350626708658799787607503395473723671149966452981961796502812727832636135819386272288817468847578961908551334733130718112453533653205378173244749768966724223902774505342426914040337474888690746785303095157531419295868138537702813398756630715623517803756548551728693336155240385988748813027115743465331464181801816351390907888930121046364792259917529965165857549429497875067579796031043113271043747481890766237397029070188730449287072590929266393050410200615785556382385080344435160363753496370265673843069422233851471274457595071604609210718553906711085788556097277086015850188616110190839754984003063129343861764375865612563849472643703008725105928666902628603683728347910784423536864078415147356993868430914714488740780866944204510896068953166010056702859197572415164924510937498257905870712620551870571029499514442805754479285828191535923066872953791589160131307163226856614347727634222819909788364522592155569101542432600301921341945578898552106874364003423202730427416710851213243717173444264776057319103341257593496829412867949419033174154151609606239926032216676538238843640899542647117795576758839682939820458728446178350251796713958935049407067394909039077573012243716531883001651016248160474452980098085877870393485315293913334062898007233210763198575827632077303455327120702282086642192668636143664020503898402233544396664526013712633868079133556117150841919410654547224524834845775906060361116303311805390207265885233199117751918805767258306716245409629624779306913413756676448511431064885027697464836034227689343835335075609461548126234340964447840015597459743655954474843342817370501719338363646681625462388637115105980513559460214328597320240028778991193572434803694655925949155732566848080128153343068538841735100251349446930086161233226936422910616248996874310319008368368338540727047014013176700987225513634620148655860667339338299392668992816913135122995042481817522229144028703763407208048991767442506138615463567543433108623143952872215210220901684725998713135341669153405278374935012734738958763120210589575838524548626908623234902027272130014524369657687380614499682082694482679402917480129593048224588162049661265300787688466435719475869917422424753658527917870941697553737959770100842838705425772625777667670111030672228504651213774477674005434234410041704183833785585121218740419145877668060949342489292689978134715932100495444533349299738232662617133716481247484789185252858883390253837789856593745365775514695659951900407404160514670547872568418931883097639427794985134112909952887805814646200657283787877260004478470615928624960593444283206290287863921393578785344756750578176639721956924351661762905998802625069989362136111180487566732776038668777562061034204706323196069844139868581965295997562565109109278851489225088982224686111184070286131617947145843508589740997225339049034434621876545665129784676567220565968506886867399764893719977999486608518274023390245061157209909576849435515723026324357468238180851304583156898637937965777969189642734582410667985007346590865008657036632585664645011689698116465563649663552057412353264109614842760292883739756128976148324647516570230367448173420836413055678981684925707944696512101279191797959293196011860098557043066943342936310801883734646980088303119514186787805741387115973081233688972421404489414145348822023908017915907723542917010606904600216549261463143371072810263105498767192349410127112059496757318603387688886267451072780404809898888279331151233492913727511706940447487337503837727881266430284296542320091609961128411807117137618968742465031389667799106270704492692681655860171574970628970947995132600147282799528785146039275318509109627374732155095516880478922271760529862387269874332103122646417630635808415420990460081552008129555624305634869968487546876724582586267089321661190038684336175248964604677975188799074710353225750088322297275844551666911140450698060898989169775851861590347373218243128036455934898050299304166729163881266423851134611340610382642259066743153827038818917534042800388296065354676363192727968512222830055397813977709601629970724230186795534242713947032382512677519686372397967064042601903687338892435394907680641438190291610596678133450454194365800007459138820400252917981830033217700968953570712002550852793937037364062081376050314136489572708524626943213768589984087925208726223324344663345848648998373003628455272269684672384220842651995644658572960014472323815178259636159181518823881369068424008620861099359728410660690931763837228444520517445684555686972429964072805440864878805454324603083603841431999451365567680353588520334315059018598226629300497060683131642017588941535815576983283960739982308993907771619197440604164016293928689125898318785723312090065218178866101185994237334159014402809618778382540194529598701856566076868934740728070266943841084921777362537164966715542345242678476949974861051513489607871771365121450009397145182058109957009901904299178126661543533922041844136096303059964083073136913655909141322850550903090433861611895753558710493319689424333136461931945602667955676941700956386329775635066717247702401867991128521331402620451821279623708627647355291551692137248012604879660582273351259581345437606591365551913198627362565411853196385344439751658947532429672125534258108375552316266846577990558845038232276885785460718184542938779874295050166530818428945843260854592018109467631685123132093004840063360086469212625288769202111525972471658607421121852639461117926146626916883001617957814261623815861858563357341347477993657355376604561529048665417519243907957710736282420539815472174257750786595623083611717043301819598532866233028429049838800851294147195341107393701774076414791576323139727932923486134893349355596725367864779415591811973419464672199551848007971773209277194052729175875532562985472345065191856243077016453627940434276932459260474181533475685640674237408237332707706910423488526751665457330256023643378658292330392892820792126419042977625015723304437526416445120715197992925717277466665459148227971205632773457696232738759929891303879994355360785987290914539644015560109470525328124315551399956863593540696572544071374422916183848177234058200910643594283428097982231242252635626127178424694430523069316010982337991551257410782659508649885533009357215208781307789085134200841867313477165380176220620347635525982745789269415768964538746157794111441609526970588623746871806180443354978460123862015593076521335146222068519867858376048177157690191401698042732816868099246003185246743544311296093471862484060722534936393881039459979576330535026078917681982448850513148652274566535463139985485980853645715747484938169069249542213967615987256162279782398715715628714697789059160188352057538125081723003339194193692454017036412861325297265885760665070717966128432037493355050732579949441105882487829595912223696399675900431229431625854926405525584779865155476242155267171676921048067467721624251756574939562917416237811280143173024150075904997194288429203382163223615320885824444975818269469980230634282791013322033573691293376745500514220328851401772323769774512260794631085685748522516345618933758406995253688326428715162411225298682603969493007030083846114254926666357687995882853229370794779097015568411341336221936130402009221487958348371675813907583219078428326897883310620306542601458268883649339908987164942676144658993712480451702124178520261432798363160080044222705894902037262834992570619395153041280432866165444764958344187317178601121292235741606923763841198554156523593798974843282008396843511685991263689685071837268219771324261398882083923410939618349158508093315297030738726910748249505389829695217339904809239130402122788457844671555952992601890636009883741137124842311591081432079154838926535190678458813133883308425146731086349693346410486788315496391490505610695622412809769771494537076530950942686913939130190317148659769374333913918796134745998302964895219800928422925617163115711339733169063226060887069839156091190371676337770306304718950001728049779408796367804287228450513298937943055942021229205873156268588433529399247085175109918973534457361752256420672962402700809124813068628280653752578256798805885765038217327950151787922286135112882656283737346263406924536227649867229954636228122916149695789381813148877815992017675721424164026851299159844250914092967159907818716414120403966708968531006323347698786207220137466727788071819577556003041885093197683832055801786851876227393881943759499365536423335877292536690789113272776083452337762078575621414980046849530825496521255021732805496774142282731483004565996635180857466348311433781600640170447246345812547504565474236329270710804284876603686194338926827428569618554575099639438093936872011012440427833956268846160505773176066471900988975092482063742242119700696402566418873012547209466836833395002300639374857350535652691184339729224526734393324681339805845580212430026951430123235131740619091065657561728498141414553831346184038106785274021307315388165591926502001167108370297360280813629298711871181069599768024725504568075273069756449606139727336238683992930754734793975855279813421463561835379171690350146992485131950697554882794269559819827893154837638084660350323334031133037307454599605792972554670191579395675120166581387106045211008365069208485961467929677597036267103142790366298265942321958950032298833664514184411392538286124743276077350224096670519181988035976151688720685177691880771798043473620552515978217974813375867364778519425932516870995365122838863229313238890532398929387952539507182268302326312924393326261835379289869596830161638785679411034165316693410267341475973406600352957216555683892000949731094149428906764986624575503164456552796350158829472700190572984511483684966184483392880871926569913423528272609133023845937212189742407388677872137241396433734358038010042087758794723217227948525822669534346983284023743837216933384368363310431321236137062339391757655247074362987433594961733478165858303066442481658852627785916030399237268748484641279463465883329736521647679747973395066514669083052610047700980145295564463613108318686562258219133495177039124473985830265814131095784269063677878965097370855194283248636024599012391610605110411468020864226447073952779181689762140634016884705976284379142954572213812286093272792314411901783240352189539689612325489685430932946348759528886578540327837676467265103836151741118590041258197969308844519016489401242029115686725454117706655061877487024088898638896160761038714620886153693963425546040011092786466499698654083250498028729855089687658651454870420022213918139954066844204236230324579842785697412243845796154215150605739753290738239398747787511695365541364508383010978730225234778359463898104722818199160560092145223226696382642170425146906163638003929224673299961651788430361427687148285220311134515827228258084881376258688560336417927218846165049960566776321808411862135506260808236423147077868295664947035891028491325477019156648663585308429336953123816737077420516599287658791006410567097574761789779633879813509830513018271721853924693536286398456870651474768612038669285542188790383346903703907630685474801138124074796419453446235490777543725160249438056491212243326360423874275515043586699061768953633023030842429017720517006356847314766306666740354410543436524385568101724116584375695267939137831804494111506460537864699670859599373733742745123951006582454603947564516198708007893848575967813045324966457695110640132587727327520160840493706824383276910428023689967490964104424221767156485662605899438897059771861550006165631812937309318608221526250049187038134511559640504699076918372922029447516113449423353317667579719514576913262415893870777769736304814192018956213458684939687961557152301855829295712908828668532318129090908624994226230686356134177015447408835247928436286315286562506759116955563077396675989515345151458315437263174544620488594573738134170104076499707728040335014660986782655383477951658338230263598784621865659180001967233958099407778559388343702070006932668747541565499910522189172493962970043537894753203044681755036190328173285063915142136982667865861716907037724768001304106354336097991971819375300370475840904752377301916959751449331200817278547085094310187708938889775208341809931693295245285050599562305301053280809402244924419911067585007528472357759224490793907441954571152979620130893701708312123425941020685547094737298983017217453434334580377554035312973842495593367924141502264961209321400439165424202737663971284970771632224974435869568915397118359101909532792561007674513875149421714443923040133067694851476509856763190068659509258378454522243229998237617695995559625142947006439166461499369699206690612591014738122788313206166312399476236239371938618843565669993150105246470273700223291473630889682244456428972677314989321491628362965102795038483574956933123902600207779856440314348979971644428497451404832708571781099673833377520214146067003923249339391485050282049123055120684675419665830514467211630655689994393777664998404525730338687586846637363513541695623659363486423344590386563033033361051170060247211731648763897254087359526136456113434083209799279990632940980406261101435583683811300937767039878222600451643057700654431111717435986730394510146044287425915067183343091554346752670151663277314589113067302255595997145449182852662855257383886141876986056349874657753481597716393189754525689231047509493151177574953551616751571243630551184328241666913233822775287943051911719623810964813022516641054525244487843864965937640537766379152356286998429760228013086557113553870175817878888077726898671910403049772999018863707604710459697428494231915817994816271326962609072751335448891117208733261862904773075512207011111643685640090432890193095689608912803657194803499632147813968723705963821673213100265468324003776087195372304724692408735001708805348846736999570162006886961733272448130355814647988345819755966323193200216524572117217263860530363528520279578373690717668348400978940721574246672903265680715249012452059090943168285724380502440852998877284854921830561134671110467724099507727279078543685284218687176951392454070797667886446901176702783853874006136826347316657159283888556431774821872257415062453669898920506801028935481080807052621656482867312685794796923323169898734603505375445082877370088982895402659282739666934262087899360872256687797379841908124695085336200829458561433593704678914729139133448315625993949256994520463386705166753075184308132284701708560283916734356776308459173274843947755631376826755266657513357627029989672270789393356103913369687294064723912466156260380423617490187223128223874675033227510992341848632988857095874594686852396670553715543467678352006608969749007583278478646553254228324697340930295890834197116535999181900332197967837340672746472092534578720073547901141170699968542982656468225557614809128995641204880252573216716674098712563141036909811632301450150156131511930569836706257063527733360456255224278300719809103065786241865841357815694605647469746021158422609861769944410533314775383906227778258608229977776823774857605018752421883102737036314153418093829979234473114683505439041193549529324177599913888916724950703272969013995701879056932937565781894889002794838492045231429277650841239729715669342104366782935546098076744080394858720520149284303896703035492623773421798387851723732300639444366054324597258230726800243430668711810663638190071947077167227570710292405677107996484170564238779974023954804852206221233236381598264337680803396367518741110302105540398186270547693490552069860935890390099098740761727220273147879019699361624115215403758373423342219841272302100715091980419764546527321858067062019953161050963312027376033452632038246721594274398828628790104021746509471507741095717038885770413962531332080703991281942669233631618052202686837523997966083176259199271138900989673278686248689066258174727820369782852289603133821084255662305529793758520175924175694559617718132275315863679029358689655120351775475266119610533584319345396170628979089640733735897284192841331286892899659840569982323468338658008237421321340261354858481756385051212427426212809760376286278497901090268936013240588810804614231498398118079985538695541426440699420878733415157500948419902494550939304150382145194280974184639318120304882540183925380162910134109923040804534039602717068902075847444223083162247931503678081072946643076865468454894954916489627223992516597635381269436838137846269902825681709673835762548083347584082648254117665262296226431963761853118909746635108871085860361273808558090665087506628334646479895190440069008707662082458890339902751402985952601852587228374937676504764948093777374053102445459195718702400599239324636482833776226833651389744610694807301649482043132225605821784169163756343293431317395165650259291321901662113953193443334283978709750156328039908069945319474582019763201277640529719961989837998230182605609393128626184345903307795721524986800553899421871904562052647163161460503338643379007838027657519549716988322338089573345536648424883665155498172363068553448218601638121531593418212921288372527765022959469365124643885636931381348707167139469116722452035476856611241601773568264555031159099464611481265448550543154188627888491859015664453804462774870197710354623820691608335910343423429420280290381512025686591838166816528017081710150443449385885305812840965470803960064077077152566612680783400712627613427645487084229007322251377672132027442218697713345652393771754306013460476254876680158765100997338063694637917943066917520662916829746142866122142120579798804985440045898980057160038420009859534259432669262926166045196627668398523832085928207187045576209858214317216074157624098354425686827424901954212524423772213267339473800465349308780319647114497317374638627837974113249867738851984235872890307398045937661491487358867115676735076255151444702984452561769237982912662041497739257630688950701805481822095484016040806035932730595962222360523275400311654427582732293744775061553965399040948031162274400052565077499313561571600287474742706881044301468044970242774389779604861580232502676902953469034598166652036246842811573788740568607312779395439869922100344666205959391205487973772269440518064685694335615205254945473414482469142149078901585900204997177861974853186987665847672659432256164797238081620105396879603078665843541224150620088109600653763144712180581812222392405030179139136842162181570347826930110598624315918863955809718173233239880093665778311235604054995476218873402539225007585542487374569351675962139065592785862709905556113159729088630072938537565554442015240361453887562385360842248681247057942350922399479242417365150691490681949208109442193392047444510097612498993945690308516123229437645407859632942411577589072778719208842911967251576219569594987248571807338958565234894641784475517493498451983070657090099629277057046280884387207677537797052598111292306093710995032157002908339568310250964746479599047644879857689797027840894942293649608667609885769484337149257909278555388697174638620165562502346275729869951316417868247373289317453751302833520488142114967857017307688933174594325441327792160503154003515282331012073883003303242290315191722128338328087490885113007382099381346404062363985610978518848489394554841190297500579234749924136760246453484359820903968047461168027262732846679208778849951267083832880548063043106141910515396225024430996520990613837865455785967255823907829930031794211650813672535761991070908426258506772708343709696383472747141730710404487173871637073566247591071870651916629845135382180784701731629885820428703774314294768227301739025319156399385808621808506549164955355510953652058822388951353221565096607245168165959252971541722200167535585687642541785450183797181014170351199096506274069972425542306531730383644938180304208147991777015574200439517582002215174068250436136476004276714130747352978627553598895363192498198405922358051859243241250848232390592195937928680826793643278137191511767292748574554315571021551189907964897522669984008749294920182008439499229718931780723161965146358000741068460180696784025551919996380699506671418734380257839996956157197845596657567214812203805685550520116072321894923148952257809554875644714185012722442221791112549236051573853294000949759049540980539877219582636225652342798646942143431909298052306010340780471060109395772971948830814045062819623033019756906143960419717040570477560608193450667217818984434581931583267241058277754920476025644426536365917207791828359197542623953863484679264319083059899610493446406187213868748590286287520214554995349063753821950107703208795057057907953684753186117138939186662004787357353092625858398815897629526449081081316920043432057440513152832227252846034884728325099786387783345383818440809302607106043777423750904282611352250026618264937825992965647046202154639290325595527673656444205472252230880276145504206925737025347167207790621458032507833550708374014108227042174061262102299266036773102269907211263907479658553989657663409316036179764113710783833235159397214433063663520939924430202164340010876486180437859115894365965957949149938904117636329847392608240267835680587836541704587501532070606964136446876833453559636777784649641087507019174606050900136421375085575783265569959169054591355011051482840621092466647792082326208139325169228223568203504115076091994111103086826614287156948829658576325056320329092438179020374744809947275280634517908954321428763597564146353717142887605987314405661081592980814887597220849606920585143888066848323709216914872126377790791674358164292598942820346411382574496836723237208441562002450599225256875307908567562020778139887991180376066767191266983806450427479095089798525108494839620027492522036271831720222223439699366985458689610054447379448361730256981038009453185401959314482004997884334342030076218224763550233473821051608971276000761952330291824540309140290110396880026811270932555771970161693417036106320592194131070226655789954132962231162120159231568511490463711384594285849079819319317741028697680527435227266973747421324342139454167422231099550841531417117647909530067391007949163462432217502639057448081435336475939374161424492214399102860035831833172824552949658157817996002175155233444548417449903597862596624637613177187793815203135595667431701836273526552063184970127986820901472856496878644944202164521200660117271564061244426596135251610744672821322091830344454759298236607299771818187287895704776478841887122628533864572775627033091950604904306665752556163425654467569504201575865703475443651782769759810623453471239005521102415292821531913279062367692389371980956892947690146591546696109392816060871931937292087232049961696453113976805823664286423163243866504032493995532061380171295406432174886945968925685678844592319011495805958141407103463184129467128142144672909307692141669913713191509132013526104332692459961177567324181070568234325432448208841364250457832901397534052030187364240977117109222043521996771754434633788893984537773665956318738689132562236107958840343886621339798336330886124646247071870752182033438435059066462048196209367118001743456977312596855041010047193970784668613049582546979677507774677947667954663462583672206928936351388505675777009679178931549058449941273458276860309731960072071018249298961686683233237994861374899518316012442082458503327092392424857953901967290271760569163210465148499796141954470107223056062367026947173802306513413679582588758686078152702733309915174545843474372909687995787392478216699825587168014945902280105206998742199569332481676915945311669146098360634042565459077508377241134751403900323225437185006573502807175551622886791087015379372088328405376555465021717932013253966003008058025465830217869540803575319432071511324726856765542967158502323867050170111344547756082418596194695358896154107701016992332816987888590982504731393177111892690760163406120215303919933676484623374889823139928936699192937902066740263196550634051214757449122361816542495809609175128846078506423816669603021289574413554725692851974536950274679815912126982329379325292315475921170702491325091290241755216614210406155402135033223420489080977134652015686567586743309576296107072055442376906271293368417429711666521314706650311713570553693283684847069116114215124823924760597878251854594430520241538014907604772947732840014841143477004556459198270220167057741779423365572484390819007757762047913924687177678878677708058309740262634846722159601308574991129048510516190429899954078204666222314426250810596101913722514626505536086678563050846161422363493575768855282122731942094823475820453108683533036762704505959095378331885254051711596240624021492876383359086200974345070837112015633550118556055057277242406355537994271865470076961376692400190642034634327212867978790796085928880118829547841115684605240427524829669459662586523890140262803445814929874711783297228497775032755793839146766405595154252422944500294258682399085790023568409927287175052360553239192794373559978768725857674359348672577437576360616439230963466494035257332624662808837967114629940029852112056215746360955603566581367998450426631909340616092900638385203250776328856849783577912670819249712291547852143048451084240635284649467932506595176845006023717621914751970218072466928257631051587667208029308329086252064969762222917767268171484852589326736921654268098866116323653267418619599899595884285943726829828294009546119052906420136240702325825855276422451031151085060562698699492108972383435159248080700526069121689948514424835455148048695193574203188514517653085985336769425840309828521786119253047434325187046755013840485206980856530808564793836338621138214736041057215527825030490895336941928965897977357434769612306217927881986012780944970785791707620422181723220390661207188366083136148956294432467355544342729950056884734734609615542869235349125715776405157967451014074593807581115837380528244029896953387854846983053480926228331328058942099934841402130014555403331634995755728316780499131714583547379066431905218534632615801627532856295763411157591259622489958380770662794401342073526323958445701186010013318995792864637621062690926743131941774695124788171907131878196894472063451734963010823989399229142086416860180914228559566422925007843888011046172718656386762675907761186532407647704096206671540197961775523836268373865953085688907089168287350558100791309489078507610166034091604039359436734441849581343512058029101771898989397974777794348999232806542378825931041879648151788649102625022780342661009083167536664167115524922444758103802702947745313459094780728337869633299658718111665298862524243599496766647840547312208699165070998863855022436187274234548985877635203659536000634830022213816225521197983382898974949520780398837962760130108783747234730219864264371963387797341824154039142822807052759596016552693547709016704686373257480319226281011472514919341562080674087891572887996590266195589859115564844992322407036631495319500007726117282401148274747317963462607390390057000108733839518985607728975651264733521929975449253834509085716623394816702985046263451295694624722257426640739870872484560144726387688568531147181993163901878733355601812797528999729622871819957943261449124508408972148782080496110308259634625828953587263513250885585587484344263183413330146352133019021825883986338084919630034950385563977889224884674474049560451283626885915979127813860430963591533115913584898374778454127339128644962918514284226957355107953663528758019805029476250414076633125834988686958720233260294743381653854545742507930836468575838697434398651406713496686656318759532418574418836965744891729678223302966638315527776982181771404752407808345780654123392932112613777229285073388687097290677130860464136787026331644545635880632053842131960703580752989914273699873845318080941570645162178228964910256152146176553695626137884851500552484091311321207270098418445516895710736497698665021948556933916887887304256248803791164892485934319184372570274496841263006052990850933685722434646973385900145497519730086138978200863930522868890766627370009723984960505222116608454605572372128211523855149154188423907654129864683487728617500868947635458991005471086637782357088587982315781766665694993107886239981098596290038061601245518537274486598274839948121558950413741138453786521075810215842979171807340838454302022840731003875360417349177244637700934958519486576995469462103748000205332392460760202302177705875397076789251021988604129697375803155213954771457189182413154450734011066242607907012587380099741669290682139306690558215274489197991823069594652283921543055719263006566891860495947755912740415414606208415445310444005978720335043472792439615303141842657204555048606056749096251533410669677266634018474613064558808225231070841135116866015043896026628865376630703104833047060967525487179267975789830302046862436411255323297826885943597104384318415779270747975153428814486507752060836590260385929796498908228175455394210900404473351952751181108444947062549703534425971108189290187978627851858521716958784582936200051901462718376406268551606868594698183129132276963270693000520500485715156407361319486432090123982856826533591173879341794263948060584856676151481752115705846610647850633292820521992311985917368838903818363070903180914173186758370398478127227422206752757550239118439272809778965443143812698267050975784942047663190422625994150486768985703054803718270246583383485403494980700478290197199875362474549119363653303474952795315556529214409377476365506513630998110329880462348675285945077867941448438563997649687390534198276736665976761808250106080456023234207160267625826506189706303455250618536369578837184001355143339788667823378974623628233313366392599223914148840549077156959721171358660415098061543650562768159581498006953990259195455419333551756986039400839790959061579985545975791843740362035493754717480729709737879117030122365946499448463553556737415303732451016176108867107761608348697770474831562678235982160835835412119877558189682150861762880128532440977557484393730860707580096832758450464476577828212613030295287466226894664031627970309447050551580886646500265108534299583071899602861442117126828729282320923425892144422285486969300649101267095022997677927519534874575388384184264621653127557132823780185185545882312835226534595829366096324019035065651187465841730722019817328618678140849621072342875195615197889612872197234674919279970580908558182977578232898502566108702421865194209298897331102848415033022292405057737413454777580679337255613097115931016377461861730927349014942628078754853464288213197110603064648833058957595507220987779708918695490876806812683274243703641072870372348687207800666222926440013034280165466324881664838880498633555416027989672546195060250757490734713986925518929779228186085317213991239282777567076551676958312671378082614008138865071673480847557818766120942978646555425170062185248929291227219294699802146616543890055404485252079122291393023280138308332818614324868271634298789984848885398280861158407284882106572368585704265379872372058247419148176921458060258329246218286588692899859736663067757751902830154084102095393676999184637222563972290677363363333738253730188993714361278253575105423731442694907815611287016231343899812451854768590147202064679874891120670404158786007789061857157459612369106530720000311950226385179339037424681279170557535436745899228663151333885156090840004114674836661370817252068009496486135175694721722170641722947477535556613072737323298583325516390242954407751498595532297649433378827142716472402807991120718821102767666213338271710776018687776383171549117453032422283341739757739687518873337249646917913720199946501912718847191185547936036936644565463608163443648623992280998257011777149187157167865578721356348976237195553989810567052763701964097401891804689326532257362207280971554013028065084793441974051044203381948168338568218593028412232207197325073811738306920165262680844716477708840797654130026526023241487271608658773677295519710404959639250916654818832403523148421405550614261290503473709070442100783788663761498700840541719340370309813179681349607650959350773495819064233512402552823992905172123853044026267614208387064507547657016840174435277355055711732932221963725338991426672700406360491992441548196088361373410287215455309715741479513357900237645793857848878368271819019621855180274011943624175742966786645679479477514672385560664959600341632212688506379288048066609367493900823686730678729045868509180471053803862661413693811605701470994144954565963580914044015190538054724859821432222085586487919639764644036905306733359604967885614177722132540380151798986945824164115887603160233334880939689337555347059686471255886829883532489992995108756243550865298331145468742345838319832607442597048430078082683068708049491288028753326094952835032380588830803305282942131666385160762846526764192466395231340638043887614445893633746121812959718371113023918538991910788232554617962976928214039935298094719479195815239097561172371307900279000454130716671079317587097543400548894532764421048205063883255631582133897839568420013366019785160813369697210323790062189309986577373287596912075243685387415671758024967689007124299222715977867514007756985322560894640645418385574314031960662139411525364515273995544098651639534436488139111636674627943746273142531575488832943884716173166854661711366300039848131213428421081938130829682518273075751244401002278532436824287369426787165691777131264279742702625622985910500129957279432753237124356040298114255495776672012799549538482003008538076986253614694138704563870003470769284628116485064283416692478176900099355896348204920183347313024522812439927184940282244949647036298751839332830751458210175415420897414332734053575494574126829059202061849200447693518186055755223213455352626942350073023544955376345973485333170744775527174861469769526350143628874554609832998455117350371159670683012075339743697971317932939915554078135627582979641597812675933955449665824883739057230825287915064566829256979298038523764992992793524259114516219587043450924304407093611135147439282513402823855061363437947857955733222727023533932628875766131281922290275620587138021404142054829994889748650777847521809136761556877756145321491884486817991329913375041284947289769578773718733073174384147617775719151210114911401534645464606256532209247953002161032352049137703185165939340592918527696228676364758116279130759596115717556445802194160908285718959339471193745512956048482302928058234665693413114479832957558246669029513094247319647792102297202957675504316467596033821362612132533210005982558051630471575978085334082341936318790122693078227551693984348814512385236534989408551110186956738268591536201234079757403187020139272193731952348132201191789569247338935268618721449077953370367843010801663617212471406001062635686609619130461938904159001473412384734079104326102066154020293912850151164551276328925263926204043965736522410625674553180294246545061094041181305785126189365855528340480224200144298639713909126898929933378194649466277382526114160858247806987057057865465774663913781609796842802360429534048579943517884928206985178738057474266593954346030354894365331658969294444431369655361187632677957914599717107111876722128280126263339170241879105804242788541581903170715507874048996869380180140153913627318172923924000428794215945318951972751620042910049779239513792706182249442699883364122612431325421959284233574160411907005407432778280162695529601612438657396465961594916170049218753534800522919591805952851603954911332681985329971129193557895545348636341029554140256285614631855821069073232491635637131411927500510366288994664468243052438636850474861153581659114825374544280151468662511757949414224959061927030212821672216606729367518632936350719256286048919002929669865604415927394434739199182179567539111383497958367384449453682693987618597635348549849723501263391903817139145514788822491712288085706698805030976601738308095209823621182001364427750565281869121064450499194951182022611028579477953724837602763917743047673367663644114652066989688888137664231153551797475010478548738096715199183855786132239331366270786059870879882712170318499485587283329146808210771520792988049274589713026188616432261551369138596121638578476673544958337999045003747001075028239383785465644503786963151487315451041676873177951151872252211961314274002177401674666387147502353045487125035806970792989597990397312645754948161385002766317183230856548062425467652070311876114733607572337325661197389389081629149126830593297523435065846120282527231976560798725772222720171468910450636428520791102565753378330321501206847452628616037062989195482593267858991165268596164597776763343280274738672850573785288427730377568159942207105973812112846466966877896153643998969518623212364528446807334235993982135433430105884267871110783521726665855458514122729330227665349568552335109282328460249514601728196598827583410492147040606494497188051558429557038689889956231493088492449176060224292428732345456327406743249489724645971410273676320706494158493012963248514262123922315849572557404821825965194844040996330714224928474871243532243543710982063580434599539749488800890618003039314299753552349773618446709805993930579561040331504618741247025413655439148399265806885760466832482683527869866264660260320209829607770318664450767199040407896467797792289910274004337564259249633397628826986325408379104331000847593499808030973017240861566360814903932149102764662153669114193027300675771852439474577250028948657173786743415375562256806700628251529957251167954482335568523377315958082102652609244650348146557413410155120510101408697959969767309632367834275340164093319869258943967573740751266141138094852318759847580217728117210416440007537654621165423364588598044973592203367635084523773427304291115767737107200158416399613771797964463119146074125351312891880313043776735644268100432618662528927595591533579461758088598714024964826646492723786817150693149080900605354940754869055783197382916197350649969799008164563313066445502170703310255794205045520624005684265076382996194355052348391962937439844229746790860218019651588187896966439368319141502102298604133427577461995754576640396455831208341242786736465055809413002890986821825876694983014035256860442718589438227980808546824283570191049701559911658644258982051249471776424835910932702623057126742770727631923024000341285860665291452930623398219766576256439553434531534164871794237959585452750417822302314188213630927114025085003768555242360434595846042149458343679491698551297603626963392651332820431985076954815466213740386091795017949214565299771841873967620667279299652419125433927251208342263341361499263281111901863846412200485743297340506019692262145933951751767396353730936428973598529596901239401101548592220868752623304665317939680298123174044853159206061651861562910122609857503451006613283276818452798138056866285623667768306596732383072299098833703538041573047801348222965574274985244713323991188674362314248982041554247719760747218299424086302531229670544054697438705868724430226992453993521785394938934987866923501221476354530396761510927469276053448660389056371153061879068783474879878699117572259969003440936052344383641248476532561489439706397531765921196074636286175824241780710803137144552682093205144139358058258182515978476951020837962347242210680005463232082942655371572448341344910303066904045310947621268410663219759623694231394492248283377872701187596822078906748192338465226134271870215060286593030758317535346218265173621044934911010033566247588804201806760536254718099634967030885993068941238977470901643825243237288711074912029071743063587783974805840182782247812988569485238187592631057866841210613072166081913901357590502009245753765439656376675538853605264591828046143740228861613708915522410213550893229452481269336242826989274609660541109124847240700211690690460545925482120780769640031076881377961457818663820583265754362209412771503128125807987928881056871930459928907837054843002859396978405475706739191468529455411729097119815662611501641270859061759077076270471834901431406037845555759608033028679158882866587732478708890088381502688642321761553432453502167549748167926982422418159897969169806115571695230797384607173929606258182663238645962324364046693070352685957755882390198004811343382291215317917558133340243539016331556542925008692356540279403965135341634025112341946270112052647017558689963773334007405535231066974367059785736968710852017239428930768190225636778053918434041568069329331381348416640897186189604827583521180660698281483480982235916427153402754456385784037899567345684700729179205838722337865703881702321097834607218167682952594244207062366942257761719890218825721109322796294176413868352347190083460382577202023963143534235417574567239940049531156015129288173941923318057571563455930770196873994254118568614100398651693985419177509605511748665602456956275926876383475820958395248239105058674350656996234379109050230672488606667695501273408589817192188551515977491519479428420472687410623054784144575873976976847287149964776779318783219438315479758978332823992112308916757995003946761873856301630360042706126108451832858224322036634116266552849917953827181880508220332576176753137759968766940187581772112781948471205427574810134094277197528292296276169145743305745580985682820793941824835352863488469513666468685452709702596748239527396718505369481239505199796084404298553915680303661659134947333789091417644678624961915456761968960904485031031796181254599851947143340312540639482345443186796038274863656418012356918846103011172984199594385904830509756142654953187275310569174481622153994086214927518965159303141870821127461215461164104854714491982703735699718531020790063907969536569068086873290998195707685705172301624998920727567519770012417605701919143968523550302594757425070655650072263429141158815412812094566716393609957264231247791265413924326947344216893361434880185109106878214820073567056272382389699215124221153194354736913566940522980524555860036808954817751097514235023856732392043053275518050375808754189714323266065152435997354312827342672325120459162550609535000031118447281388765127231736343519690690902172892888853874381147495240771425505063674957364433894092230721928540015223612095107979078957725004026422396739709234040012202972313886677882276053644578296242292962026477172405472132885075557486214747402705944978309885961659080208439424058835994617068730570669615449265872435258411350079200134063430228832395225258869887888626045818317510233902689206541027197359685558360920595333741884782841237980319044697606204683625081070057717624641390550874911494329357626626465108698685874732823752322722756358755066061686405001699206462272825094462744291768787970357492882168438329855859696868132095753044183332652273633255913997792827866634984596996937147685185547218566679290132923973348403665957302530453739008783679617731918077874476811776729066286447578756185873619547873055813500173327812402260754236336829614414160699953760560562854372738861901536622237273791229152601034869417333612060107577353104362258541667748485597205746144442617571716474126264372373526742623626738454851256260771592579218878022526754054225482162994125755310674060482343746418845662853133683148925070368725160931884818250125250589442331561728127630965452788868799890326024774457697861892227211303873316967787853381382528229251453853601931469803377543342722803234986501836943979739479103224800864841735366365015485462544150748236708990293998761491186730026327399325261389544969094417773740417979756158296875880283198080102947012445498821190834097748885433661485843565021340954595422948817358893448372225069969437279572667641508250907172872544490983402273094960710669038291391525890405698459569720915025938833863166130842103380048508550245200487667102282007598671860978050657679308687730193574358894751560865863009406154331677405073539741743388047146992875633640008243619204267882647698787617195510564307215222523874295511614955343620467119284100101230039751961233032274878716336001638275392287011236597955863282848886405815550991664380067505477861324814874563318979581290408024128520616543804053864162542798588526056534047011217942752986969595781896178490865673562514668751057679438493754694310103623233274015292412212560162370836643634762765770570493748045074411028312882478409609308388795120513914610519595767523044725782662869259767089159930908170541388283883092505664356072063467332226470510496671301966192055625613320169085135300214976969860827773745118092034317844929194650927258356368396608199457015199540957713468950115831326423560833131129385942639728949677478419996888679167976647984651491933566811905727753897816892853151773172831533164402586441780860798858561473485643678635549731121217862251111738670209323030304077944119811677048922405526004545398515766847684656191677254452694982823841782156819877452819844881689975484007968816460556545930339822490751216256601595690279188645927894351434629754842827097379716378903025043600957181296350192720888346281257822863889109224156653715906170065621315593501662341316257913737268969109749780107311024778220434056390320724680384296049729989948214072907810341244019518816706431464913060385454964112586409080061933412522498079664165584623050400181968853170905787007553846613557305561727560896444571615893980444024301638988257202680189771157130467530249900669594686738952641344478348913788117405307688074957786044367712293232235756067511324043490193328179749555017935717633761330521740844534428576611037220838079734675223242281395916239482019441862320467498163704291585719285346366785069519847774115565396035571620427444405937928954397530275893454378823406957392430674525190035185839411620994225392338781350303987672458722721852291538605810476335919375071392783942081861839958849441103954914078344484395833469177290892302480332656402558884530102053669258067751229856359506867362445951263453920648552869953033230096819908843152153177192612367531424767049611983892884932341245343840023532730303808814661530303425724670427373611085017926175835418604094628008763744389505257341193125989666088768072647689688473518568262880597664284905176856424964744652344451669943746998296847228160364623537499744784250439464376540444149644086817994003380081328028534976817616194751161914823663774683350405337587400456070260462024234324197914896661196036943529939507884322301020161158822790453778047041548788415391381845036548564959578553417976018623466983915941545936954141380134143790530156902683111030638093481737107990297081495092112669429113360849891043098865658544948207975094580530647271204659939261968789721437526526413717470150831156419688777879841718722619177587426679773824546823367834343675394519157712877197354785144308566243712540444792806184695781202273394004163725513663544680729737189823454758786731964336242051531725466100155804967512604214090675887518999586651385575511227425979238723565447184851728702226078936490231413227694966495330215215015647960626010665216900620119335935539881446114951303150844189048664408855208166619703862860272427656423764287439831902408767138566636724993789882567908802140473291571530312538471588610476412003341092594598137531807722924061013602943853195236151126989498966722655730866023911374411759055682739663841355136735683868569581399176605954049873334275071000637401011248141537747789556393226449408552421710712422122543048437261678379570827485257000274395577718560682150946438768999223412519806734129744816363084112966851273005114462103108448478672857396494510192954050293189365506093758122007702396738497622766735020061693906759804812320891185139493879392714815935639837153193541014219269268970737273700929591397258574412888561648378220412825029126980172752074446416761852681009769198606338986320686919691117608438035681387559483975285107795099224107261106883397187404537150710034466214540633792333892646306769576867863716574393401125928548591544785801168829064952285608645072154021123497482614721635994472676194278895948684289540782745891157655893764694268941774756609970706178023500534840385544116544663004021060877393590031662078325136585220007670176663835434537938294455689831616652050187475538668784161715169951266592290561692902042945680309372345016182154801940252770989143768961149999899554916090246843320794528738950271376306973578323419777052781016611289721287042325043150518561457089843689503367808543744063689733300612035690071532588161818419076442377595047003617294201793509066424347582356461824122760853462744984632298836052483674903284461349642947678443638995698148447694381884205431500536128013363522809112152536150244850678612043959768467289046927826343391604435047194341458222911020400415901498503418494048039911531539090658026257244079701703179152492545521430607762930737387728110853493895001065342805598913579232992439256481471554909933998581756759742451630718646872938984006671557139139190532273121935599980449689683500348786664089274786922547618932270683164218460458190058457473006635331918601124645916742376863486993176149786379924971687979850791046902134495462338334783641762835103068279365439764785153872478203306326531888937795943262062338379532799263724983727869451556515926904849789617680381802182774068278172031026205450943644924101756601644189351629145328091014235809452622413493384349614095612260520920594996467626332666090483058440226926355628625331643939517938320689992065808312752964025433682942155420401651818850510679479737106170312333598628353557994514867249178726743102066437192156878850939777886396769867828842189181425124683675854714318816716457972307755863253314166167910932328736079491426494417729396864633483024825189563803291489571401913428091371764705001821474236567851569456748325416664544108342325852108999088410662160298488774617685500734629877036871285618521682294636750023408616646969364785472267841107401771225261982708154375869722886005756719223345591252165508453372233555199729198937265131217533141661282600913569553753526566647884193388409543673879267793298635295384569038785105520070828411494974000860962888695046809092561358621809386607978463703959463859314434453137108705611766514659213465861045347699572011285543014475621403602224962338761501615093246511929602364197288697921889229591942590696299672298814400764141841702132926514899223579423490214644133360120786032548121155997469253387133635053233380020144731563192761715270451608344405341139841494752203816000521764192365398822511326441191927205281365651606448821688777785423082451863289438600994589359702834262147879864002760715433776945073229589680455834572651987287524815975520070205171591768778110248308675827435259934771020624047064763434749927084029882291571030816945300664477789558178215690479159434053871037954293205652060270986055850729052817778242243454700097381068052648738961286384199737964284683672854086687225024973816836497853042260908938960401686080225697028084203630665736030903695247270219641497349530944300204567626156479194794216949220393962932222625065957615129529551739421637409534738638454646237291305509447122281515406024778718652265588099152971240805330979694835392464416052957976821472665828514388878257211766785118599553354396785555453772144976723314322644564226727110364296307594409707722082082896788328522035309062041877840316488268868746799372565682452071828548951065310679997204859762710429202628495975009437709670931671250815334954225402377047513691096114914743586216959092040895680812790830124744425312364587400833065631162198888949471132151784815596385604196918031366122290517786942845673414047751194389017300623702334986212638522100877221098252059321181558579103170082310018935162972449345317387548925976804406287747930054439965631718731542824635400780253679654652511717641154288765219182868367199316659531768223238436153805457969599426904922359977705251754019708525051454593417282460242244040355218712228074026185421186577109162443772144747197663967495463618981337785153557681137929405075541360720814664447070268619930192877620078733040708226246579129567816872083939424563902932080522796871444339937670836904732940618800449777640458595381566225596973374978611116935570931588695771367506834749334991462597038370366891285718114742589690210768104841473521136330087219217804763460938957545709083155383077616599916041220368150007983073299595750792165198281760745877058933517524165798704553489384874429201117841714197198805156542888163529477673113543613369801477831869705031319995775149166969113958253667383066685826680188702643145567919013762677619400441503435258518754062873586113367441523102967067877581676097456534569072848377746882658960500833669664955892268089176537269766526137230827357087454864931739456588719264041016280985984682324459075119789902086364724177106943156760146949077620624772146788332927579612566131368001450778956082688424459107512722577207507070578669182513024658299068854009386432080951348971177074511402674545674128331555105834169409307918575291497096919229481230061939531163979599625293388018087827375917949094213817721843396610845956301550119115028405420841849583687654328855527396475642167014919097174989594696177624628080527647570952908894843720996524736805328231783613335237674087264889127409545994439893029560597001849924298159869050802363762639556194001508885995493019776578902452941327458116740798980814095690733841630815446430684047124892907628064199321665662567816912504064540205340886569584676598326968134205535699995020482263161128252799400466850560101205506167158531604710315503653033406648846084059701090675494624152091069480672038093632440932082361824082774250280027149055098595944359551671793134176774470265374229754687493457121670994956565268695620487916033276770071742171695676280036596023718961510656586609877862221363508310684320084438461767717363709730654134266113952215254788024930794582927257750149691305735059640151449666774728477047762648538424173195008093097447678255955160473638120853324939563173986883236717435047761785258772061681676379250689387685216745283653462204703038891282762421385706254336934471849645312822172859594414366833880537241927366353237449742397632765680220068192916870653012253529727481465500869768362681806324350194743071990769117568681091490900685780833063899011339415021912753626699040306555924470726697547186389389218221869615727268477426807761980696103751318860454791609526067282941215749166169223195121937389015876796508390532572966201576417158461488582723230444348198146172777392370340861774133124030983133981524224292424050287269292563404210698125105897750455114640449175273058710919874173932635508556067695485444732666547913672143762754264448437238700776010134380417659469502277092335506004204515359934860475630461176468528158482803841701984690466588701240115671975139934024756095576445713507455173756412452777022806949194676881398863121607938782618768111608293476952322648786285940403978197501909237829965167531498167649920984293974594793037348413858633627147864695373789650177754372217771776501127333874097972442473739289430973732926491313960199840582863787477775335401224927637897063307351678717755622779373328286880024792022602703583849900407068957325822530377769450543150719909600208020233269924768316534629304621157178579591179168948042485972094169075467076831434045363535401104527032268679092769975302381733427874366835219353439012632019090689245951277364721976784890760775315577091516864590551465892764724641560645277962912544552870742782806495733196032148600373094676401092699379596968559774243900978265602894006783897098575272193937079005624347537860924554419051010481649957561117224630288702188109976753768629539991005909897537393270064166177663472527836689747968933039610381884989409534923465867638474237323282433132638839791740169943010826277408900323976224682286547673098892307246134803192932655679107725770589377456943926497597035258333482085378017962984236507089836423925380847747103435148148079179229932313264951947286360139646892337304361751682898609506292608807078307498725754819885123214142277054879674730290275663917093774469918500133690072096741640772409947934997709999607076060528126981179328686139768842068722651616536828899528726930422096060823374319661865099579910387624459983598369026713238247052234410434956512330497054236926533255276380135480742385291196745487883492056688411668987134595632846507718771877192788271264732565393703599463970483970138774675234025976237488820643988421746930561094118998936401567082711999403155409905305612294507240973563123609593947402413524362210090458125684953742183458986051530228721953964752060723624223218301549578991070800724327496551529090765228862621396351948813931005336658153662482862013747697979326032959427650821084516864251567554747364729189067516976826075414425458153507081653575639617471266565771933132278301109931374603110803042415177924795801979979910504340977000236469608432704704012129695141580188499522293471763540946895061314477918525910087172675349304717841056347562907055136591544458096199354786932425483452781743322113480026158335854110818558214378126542429173703325828505645571347600430541833634654748589977369100659386109779438284865906362118227289506252600574528841872894940649152065685629690930644975770459675204817475035364865947413245564560091665296351912879031943367557890295168295305055726728907009422468349934448691533699988245218537960566839798264304856505949793239711730537795467845705380109551580717441040498567720821453942354283963921900323773546590333828020063403812252318087560909525849443638708886535678202612559152315649633379225009349988528117070423843025040371241773750802407101785469472646199162115771012566120964762446580699159545864583005956467829464516274887446364030066180416755447822338333548226716740424964718679276670688195002017852840052107404455259034436833067038274264818095038387747235754202320530303466948468847862280514833017115452932695520428518157534086895355502734715837680693457633155542665839160383854902562267728413623241874450025010829879693586545813308152569596838386335599507650473905125760287413537532575868727409154976037366160215619030374571724927829458108526130377268986406211795944760760579672907152742094025624709087262225139166237083956742859123796286742630253519269073829585329835154945734686077777706328862410646242833114368231726577753719966618234062063533381148898707788336793644622793393882184733938272976048267025851041437869197567907690054765861985584524958257209635937382053089484389266755839999179484293174021272030318492031206143203429045665512146315346934995382940651558852511003821867613637107507876165808874988524682428073355382874467857518143148378545597582890786181207114394800200491946647463333451014572225097891452839439907609082376362959969250524527293333157629500796199161327039026162760812745808808692218823563790169094275709443677258149872735078160697224447062169425941824661574329679681530240565225327828680687791917690899959433688086946797755533683984908610314541853303725386246382747677199521080037137010452782147024021569624407272453997856744293405186664693601117615612749347468384117212476092679721216006719925729471537627527565849457398523823973121227049380896149237156469331599641867620428447069371176919050699865100958807970623409083677427885848648375341662739167432090666076343152604446118715641849799915160906846202938994981910759773319806529622941071909806980079707076531278420008897499369445665080264062208722353401261086905738177336311391508544453598306728687934546458353307203299058365678713278577573500808097632829468812057353090885945917194598781279292321561230592286466981928005908532059203665193786224920218984837540440644213270395019563063127077487709994409404501886851374723455570810456531617883260122454774286501393939665116343346631892764546198009930265701905450666012800538042623360203192669568781768880331868447237489907917124360468962388587021394152770033762316032807746740552054469995568206382220576515340355473558490288080245396536250327213417065470225275839833985995514068548847700239353822569713422180619142174381723353799438146588891263512924944809352759794221904646222258470048102291284609540046063025958999703196634131058025751383938057974937689809621628533548519454293339428820215825954378863049898240572798824740406589467963288391659669454599397749599818458121121162085311058943527257456884907393467729848349464933242312557011586583281405765459342590729748817814237855064781199782370767099891769332350898253185772616675943181940495600304299695247238538766539969829848057444061605266803941241429553172626327520092834376802677300333805725461162978844962032884523906840630135954876190192043223593211832945873718830407223196570752126522480966575204957541227182600910991138202259007185487368066912363318126442561021782500632860383532474389433280959731870149965351796925421848784478112441093817675964070333040833861500451428272981474496550975362701952309933629150221759906919326662328167873485031201721751459280988922250102722578454266710102126105491077993083453786602567730551998399650144901204182194084658052726736679882763782882443520603495349512021412616042868734276645915739288683824338634770385895262331689217039769979318622106694839281194946264151475247073237039232378953745530401777412397193372207560814500547917081390020330179989866295458306734961477952765711991967907295176927204343664963722698748743042419596543933142008890444214166492294081238860873881151050765127706912944859065067462688439490088711980654013018393167761794907406880186885792009059674763791477055620208513943354621823926994202422194480954000700762773834452628386407378050787482436042612376034710201404574352444261595982730699731117275952329080551146319186248805810896065595212675482892206502705079748081167669135869486368029679027653255317688631346985138792378608083412881100865453805367418988334228936011008035540237906663381143678384164362115438937828515000319127445953621406691715607513052646035442123879415365697718555475768770851653396036353785088328482850513486565263957570808401813025890749296659144367445684788715343142335508919741523804811631515537467140677715791316867420280822124704168102949591848334655509287318221620552273199075985423439408305049631624053051922561336574126143140188864441615976635091157953351709385375289768529627035684002830249823117677573807067472158165082512630840447750584487317309377094662316351615860842880383842783755090534221399362845748462499998203622818892842866294912465401230857428520812930887815693630424748272930500517206440094768796776258750075239191831089820388560708370250256761795255734756098644678069440144928262021317129165932671145766864813530142129694671404054952736418956174420269078914842405005921585028254440357259778411877408104762821813436610803065266598382234088396733922733685932371064985502754488315957914223490951281897764046071049665095600764176130505550902702539785480300495190551914026006899665363926565968942256333562469817365288906634815724173056933523200732702286639224823396663683487665186188266349992391254728597868021460473188891975433350500142202503624388852681294709133009297414656507428060275545646174960008175632546115958588953948329521124754662374309804019190948378539482399222316005136148561766034143628784665961944870660789291773918139261471364879788401455482575460191625548896000226204829318599144526792359856087670840770968245479603877063563958096339607313308578773505971273662107804790406823967670177217314821483286914498964985616984803038226774179353863081882916312297220557354826233130177237509744729783460781805795633582049011735232364599061140844345141981057337194261156657927248778721087735288771596166344353896280488026002862062552472939929192035215880334974447625294188761092349725840424372124976568581093208865990597684330080086486974957167888063547273911909183931657284761662311002369537709094664657189413499383985080575046272183219614455699259803509908718227251369542833740709609338021359611132836173589378398866901481312077372626659325142426889561482830096618295760787318753276988445135007167262221337782598031648786464137932991803285766161231935360786953247895552945222288490940622154146919992826873905790031833302404898279655810906699506460928502874105489261088598251931547973918315355599538993103392618545138829790382521733005819954325722270352321885730436745097190773201199139937029319986709106584616833891656970455561809040314110257581505607248761889216342392710365742442013728229043716143046527658398190396044434179978531016702047337892020733492365214447301959141918369678811316327226481619658132805308259218115049707547374469870302748865320204143288108662257286800918665888878708621629340139874674405394997812653704630726011481224957767568445945131142812325897709695602528874939764265475081619477606025243833822327325977135459806160198351483770652217101796562439733465186315514973033658815216085761107548809118416564839814369899744625793383626412086273939272360554504163683149077460434392475738821176729973167550288804587287117017797929920816664199532699418304267869631232962215944479811482898416876808284805024666806653993050591123713051693172266018665754581666880771066870751713838478336515420805748154997278197050290191935304832521691346391217434476093030380698688179230540105819403400801783481834812650170181329684484198391980291823446623657203496178269074228076333608323220562551703789581606254047955450437570366851404369179359770033913595174605816754566567575353552305324106945264966032361882436485472161329680870757199326069787505833769303379142038624414792079964245962941113208660499163967726277900917511346872754803453218927792052275919795875366386765292612827556936568912436982556543516373911515584602517999476049631816280097900491124049204451909546794358246402013053069838965922855989892314235887928160678628681769204448695403727193637064206286156214798895884984566069382320611187571866020592227068765332265490367791571228361550552367888366195591496472389757956866723267185815941916995587495786125551830027225247534729239704470217143146612862294442780716732421791771874785915469414280299739223189429219803885456374087823918717292062163921030948490596768818296362496222472835812164645006152105324028082631124317111717630797742877118948048853173124308136850265059999654118113295636577775311201502999941811551635677953730822707888225229366859781093379358250943163695500630523365563017134002487287232134726795429678067335538601745731320896712726883515892555503532622168574502437220092760539169368738908530902571101477542803142988664366638482478106554456744981327732936736247137970770426522576121362288235916017387768830754994711325273430434275073959182921551297068221290471750023126230955985385666936535810162899834063509798186215356599440783494530542068776665662618955623983387249463855485022554564735923387821443848007655391290158544815453982250207970599297770038552256929197634407971079944367783750619578714637844783748894784974357186306066123782623505672104690469224956690784068735696553941989965051763583305724047542678947135079875505580127779293626745116723530439300063559945552111831775319853163394429114970205620083888740745367613427608518222314132203125777274940156899201488196012920942321269635249643192783541450005683716835625033505890649375410189545324301981053822599459153664668780865434884222247918398212856068297232138825627116256688106934416682320826873637644685354894080917443443886394168850794335830585486093682173651251533502325773857250237088662810412526518266183768145057133253234067784115563924766057060094709276804028392005941468668615657456971451960588987007143909624520534342837040647690698162636867650513069115793280270903081088355459812491174574098032838688184736479467174949452931044439389843890594655344609609179717962772461952477553887999362444025783261921546992652472845110549676883045769555551403442881441746787480924829187216887205878990050064595844418019922378952471744970483174153951468357430514925024565794163510178528443897058890909362730361713571186320435148296922991123894697929592034605146954420119345788267057703063531635781316150435174018759796283142777566784808624899573732117407529869977206702035975644657900390690230045523843336119012824994152660090496925542838250140810073336856310978487903471781790302531185153101227108278217634992314277642607011667038264415761782030801688078225587411205628942604840310827283261332327446627019772663171336332627615254246646063822916400215997973977794063313112374086632165941311821838739112550433839488626594928048980598257814036236892693512496195450093006420361929810797570555997430559163609377704808879120145122834201329499706326620031254101337376768976576683079792722575343012016261290738437743562965314448241073033338566239182067645290882392198597315486002509325517164106865880779490915369632937605751085169428388311866333226549354491561229363163182135899998344975336333380513150395669061139070957065848481231200636158520246766422669721979719719706787213357078108435192571051156280152504801788876650530603475929544426399527737781814355714690021893456751190517042797116430705886078997201191931471880225570785212486695754022594717114743821443760641173781490347111126877324410519595475967453091470300848403823229498390248232914068027499839245969531321962194355264396695448600543651002426096888357741896476764102571049840169636903718988267344603007035436936756095589823354287814031651652208998442986698269897460140253075230427630788028465450805925465349553099623966961349479929292292588349599564006327560515752907356297482249080233357621044062017712895207181984879245041646863620968683223951589438982916989614064146663920340793014927150622378409120584259376341272647570886406501024626216588828592210232699749741721203359564221676448395759047963621943678374422217631684179167580529570972464066462870706382617742901291359952872802659449558039774574959293328545754937463667235888135317313949014468108098741093938827890165657373691986024767545618111716279377397366649436313806995539423514906690666827814362296336205603581692285831737579476080473085106605076290947714766661879224250539288550895415343064257686032070360102815501953159629162745245519163764361171572394407782220818883685297276654650289199085591428819527863580835946714260264422666127402469627540080820164828993110326936561724708507773659234710080783635582683211745400362593762378358104230812819242923077900399141071373446372319182884376946239770566063344380930662667696099506850216590029648593281178552278277366304501283080969584022398311294135505860844849808034332712610005057765216086329525141128294707711366493582812034847638700320694642228650801505280401879494545845869581911879061445114370135918493206477421218832152962203171739585305186398452212189079648749693731240518902489553557853005427124398832172475414971355546333406709178879313434534000170578438650262707430313820735600322258475345268130254166974638957489801752523674243276479635985931433873992179628518758511538321821179705095670045093119228456656973961919366989337593726675301615717267878774807968459514530295097346163424395427881204760442302858047257210766566948081534208408259698554029611637984604410697484382958755730347363559619518450872725240148263015523012684033360954038660638410681399714520439652226633024653748807229629846812580947237802243491851547803435254564916725265795146744510055970388982347559670263666654165315422792396276615853787354838646051707004756157067166479047815536548785806904776206732272759031594507932739240662700321717294683085671255402889014461521168192447629751679600450961946441228671058778240644255455040372330376898598937445777379487230244371398604993211575584094917724383141004480697513636889457608303570893731002744000814720798441067235546020818455070383441063793489357067512793923736215011833202567136579739143839009159194569756775986572994193820987975239325703453041284364319035914653122235318480434874337628456292327898978829652152543796965632445378261493486061866269690833140365647804470514618797353998150988093684704504959937202513580511180301355341157933327388504720572335256412980240049495147449541605796446874697800120201341030123198502202095553656033927590507087177385024152690830180416850031288053402052469870235999959888464230069800321627989164558145054128504397815704175911190064763936119228139544587188905323201217468951750496726612999855885677905692189976319081888645952838881528339609033203361609382494144286898693003002604352588359835786400268801850898974827565297421976701527182959504328590408055898827312199139298859578058704956087122318993520422146800042884983370400906992481759257079231486492359847728039169692503022546013142849190477532946390380282044520674616204298771859910790097992229084887597827386480823017644666716735108112056327104193852483256189389685056720854670715985866579426908583210763391998602440117039572896547274143748355709043533527958883266748526991444288233955370549866041645040501628865737762411007809107115710923470072450238472780291162187743543367272982930785031436325439112687152858597020630974283190856091684850668287656547634797190969903458803144426692492799407514525482087183595294578808750347093160471263655443933048765721118125454301760610725275173035427530406164005149643038869319411730868474552052125070794327033672692705642772423610423137814338709356936756497623855090525763869293183966797889413916311848547911201197912962887174238900518678999719434428481118197930346666480857667809418331757075424762213150147400292002589735440621405631638616155509842111001994901666703146326933986996324383054567653231161479208084335146385362512758304659573785071973317320510099537746461007801779490938226609848495650172377960048906932213930905437878111913956212953841508852111890061441343196826776362871897916701751370882652667319001755639682329251529212241252678908030239608340874838964444621529487417150307563875076647291618730658204165671212547983573235133334992059046397150997785031657748582394350520031365616531933707918546584167888871594093611443136593460592782038776608350642335284954202876892643589798647245155575425568769856007574452981298856775461271951942864697634600536626872880088352189634577005872229175110028092699554190409831967363925177236827314577068632970966011415375667643901826877060874524032300922309344726055913078685308247584146202712302828498190593963947637256570753649722658370809571526616268395006774177657332681234824851748676856997000840245865748750977411327215636979623349528174256687712321169786840184451820282003231575786379778016079136182353504864213333706275513479146181068706452760428990012920864273704344837183100670444958889037200367958155549231802673564698919719121190197577523784348214533252893037215719528303252882841771187985958052642774398076584338612099613857459434227524080638449763527171037902789371616771051030764489470199157586396123623891483865084255199365233072480061778307904532311548028122349982494151639860072040832665824572858610687647889376433001781981843086203057029360184498015038705229809371560750428985818360026503667866988786762165626285695047376859806613360647208204558198587433448338310820006609249110814098529597732366963970847024447366573168170343940101298268355831408899146527952475412270620132954488884108205421558483607976748211120992719812267648554676399703125556860894376165584905568791907980328396338774519114817179175848637849901049052991648076264801249128252137795249614744912171194112792318418782727955457521184564180602708792871725057736004886629976016700798579610183622467227358224045340096566761651197867460943125650692457369590404164628665004518998669610225543451257614674900703457908560728319671967350376475016418802080285070923770885059637581235317265420632670389810417753142137739296693651372354244702248198808772410485931320389789295285618022790052554287786789397037783687727850721306258060788023991863498894443479958204057363786652617299838708785774484829773668352115476439674724404204061370529503050331018715744356083540726496843491329006870059689680448133578032205170784116465360411383330487246450321910773956450101183146001518287683424515023746520086581852665847312291028571888433256456839712202581408515563890853747474197398897770950462705121725989982788171491918943964036829852315190579089507622602761971008405560349172517591067955753261417293085985506567127210972237740734751499040446412839506950969746016533876977752764119581301938248639451125035809972807421863210309822741105248081573094482162809374339878212173371614984527847296554440956212017479041252186534179424579884383787186945949010730917680380161000699765740882932490711531117266804142478453180093909694759077930569160451654808798624010145139819999482996862286832144034411294061489949411294396372989790649375022080255377357154602867686524063892537088886824897357986173770633330673759547694741355801133123236234131631107926449144599564851569874888364481610252529277703376368639805431669415710031927366105286650537121739454364928960746811931697230980884288759754008461636415784237612296837396621167808169172634177855909273872949683037133671995303433149907584107624739895180117918536960131905805147946237256161063578260987314444539884382144406662260710390230849397390571036988017743612253596290552190948088749611665998637244362217338360271696518651078256412886224625357600253941634033997964630818329147917315514934392787111802292821617247619709839877934667485482769021603898646658382266793037606395792537797616438810508668143135199953342124020082237576412559330818902619230299790945604466514585899444546676784709538048935911044268272851785591364393316555936286943939435163257571052648003655220783084071081274640690262268921658855587280789119777824628033853005153604234571990557216235683448128890981645849352608910698100369522669039820473156954510479974808313784301423448740337093871242122866841207602999272568100147831403588193985496105204367991194864103649073462054276340080377102590704189955323959711429255219518202978858314744832809829135451387280281981268808196631576626532980392483718108747523263228546332006452451805988364821992222780207221166805201045482718146890701492081778100700431996146118267559493696823375173157386531528004215721836895359013083349427702050601250137317237958215207141232013073177828357406933745797929083092775191006349259687058882538629080655192049608576741738602911087862691726607865546169848298875218969220191568702944905130860202763143794865943611124836346135416124429576541648308031116710342744738825991661085558530578627795500015140510419698091454004007652771687517964379725178415342174218078599745637526475873814989542251802536015283127781040768632605174217072119825008597312138305309169788605116455032893185370740614800046438659160669499369365908621027930501851615997443029311415356976439192739950772591062056433783687368344225198355585501502966145761115204304454632436195569695928165548653169435259246398960707040999740883757639606733037226915670805298505771628560890530189393649604930275443894014759859826606410653335382597884333623840336476431854933074626154590443120569793449167484835381946913192555071876781894929877650084106027575199608980033975150256382924140402337542294802286438734132605507028760010317702736921319521449831217461060785262963385171461063813375444770676386915346409701298570315901753675035879769346954866057197454080234914593196192118787598023478718804521754628075592684684024706862804457429933734330871777517173762004797670129220269814835181139846277442392517239960739331741699873719199365241257692103699892730651056752589942044355766119149572598208558399384671601461989743703838043581295959029557645456300870714952206709324558303037871011240623149733610022828970526746008130086493790585726654095969056745830537163902748517290163343089549930738605080318536366570435260223812411141170172829249737452996104593450725156438831647408423700567460976060401522021784220443046927657845511589718160392741052443868049000578208006293600654031486716858885148945976001511872252478998283788494694193890025049108942554542159423608549375212918632452369760244274484488305719395506114636211163390352673478866567371057190037175889495623072385754283199653529473682162936003176170350224640932795514011939351788034695090330144216171537312199263915798961950539979051813719184063406962999861248367783362545875125687334551952731626929380859229374110898419730885067356342024787477960171207800344070159019034263203587815469545845214555795711428299994917398723920335333280537596355372955508777666716057661064030902418045518688554517885210945700000268315493920077520025153763295226807327127157160726035440525770793660052791725494130568389327095522484926916228745567536348102180148984607053717956740652303904970691347919901323878682917657601883268557329778883383537221132543611113805583496997065613493534840157076837838114231452396412296447073084679585218538463417401745713500356442221955732536500291659977483364274484623748713424585097655234666077188045998888989489053120582034035378048559542765406415182539691716530526861565635162701045244029306292063074648378212947981784921409031087795737363258052761287362985977199082134462798543336314975984552015939300714006590474266934189497376433922694210235957053043035553261044908382535245066483718553733496375893816615275768741521510992133965128682213702506423003114318685253932937511468944115328480837282847103429830978579527973067269231739600631289968407336794598142661313426391829408021053765979325578873845717769305658628112341037259220165828331500729416260494428884075430974808236855311684525809250709446756357022904196679226770469300553696610593806616488462402774010804255691392467845865192095295897334298585917821251264552889742467668524004972737328623265273695160617978550827346821016794749058957633035623316399812645593617172958478272586020178844711526712817544402063262287693240627961633173943233586548014259477429848279424862133827541066225839864545541430315853056698879522649713820000500042762096653555689713124291726325551951911691439666593578210542908389522280359947017509010631693753750381522421694911624684224744024588057837846271104645016264862144325017523624295004118215624204277575525524440586053703959415035572969611734859818345899222108173379549854501608574752626199896627196875490096565497861738355667685883227862185087986312511442625907295161658692672569205695318506695071887518891038951021900129788584009865441464606179082914327549058036485829879692461820801884666732901930653181188455201724924740013801068990275033762638978379374706305246646903992055333496640397338053859969976870342692271811882302873072405841399383894057922334061088895207445577172121227316676761076480117257298529938280196344227661796534483228008704577814082425306856769631696667592188566705867335821569831232661044973541923729330122928832174893256786659173398177377711366327455102864630831637324986922971726949444966207054293193960357794547558901441108898888658575885061921608935626301359296837457125946867130112325925262733612457087308973756816925939185190604845786716556832831820984406047468624758451241667837508388115408432602900774861328507353729823734811192913968422389217252132996128124977124073723310766079406841018812774688668738213935833502154312768010864924016507410096076179111278247801582730546447984251752408911344200583481291136349948129861410644011954711512225937952891864164095287049152106116093822219007273345273358408937237619847900546265283711224101923221900002487126565785673460252161536771765898243094078135016871582892230345549737394350645019373643911398590227965229653571759965273103581449737659827744896629177291437087438378112939567065116993036928941983864381833730953169477890709224185500151269515075390079914157879154743630755513367467802589749171040437307903900725379017471272939821869393004593664013106418401935550611152984649475803580910928378938056138024319823162157446406921966531377207746475371019876994375623924534776622627632749216139311441973082876811729716076534429314070996283751518460418363446304392348803036900564397974175058847935613609921001329654824879093566036304603659168447943838996016466624707430357602982484476158392844457787980344881675412091433202068409352304422481720323932091357139672965098337676201283260412150587250091626765558375685951773503064795168555373991586922535006915038562223104498718697040195325754820935928608771519044869041114375856887196505567558963529031283185260215138019722410418448410221234010479849488047039900706000056458726797624732339315774114189177077236228299611014991250405419759054366926710177395412069613608746970866690402941393652748642858744480167926262423401511658147578201261061342869039044874865121329326646942862385718162882540688440458442784696638831653575777548586984805657768250489851726137707069205762450822875252449054646936018795049099912780984257758036613794012307789688882178940292317410299752401766701644482216399947989037432722477134026518187128437787655243191181198496318278842886519439879747882486320459941476963590804844405529825161782797029016862107644937346759493432315603268478932682199986720382483616191160045000467707215434445941597877086285236790249563688601490473931097655685361067462661683055946554942678651157707908601672682598052431204202608528379056476134892030167958150778233388949097556056519870652644674688574309389613662564674689061684639646565886807108373486453082934984693575481273604569509773449251651814128768084851781172910034708905632601944720303519982373237592431192953518956895996404767432416017774728213271729423311725176141014846887746235034421986805037883213095029522934479999216762280853705738093816486206511579478416530255655921560075656500291030627431634413601244576075191990198012088562906335963484639349142180484722711298418013070291710169554159432095252604892276512910840549828945027069826674337922351353200285418740876763634615377597758699357736078552139884749158813859952112556685875251423574790781112379319356951110308244100479640145682475955516988384862221016376141468174941272786757244649441434795440129696002892868100381029328695079091783142961189253837400577593808978390285211303053246154480688019038550182315782673192975912495709299960796967925075146872663674432620691534625010775781203815686579666657000535142944819101636370415993192470851869392484620172094795180877001606136760334899251794449000837805532931930153368965628473265303461711497575042294127940421765583348794154953041964547101599275017971071811612823587425109950435436313912823188794154001285233518374009481946650910674291742425343831070734033393015119357082432062661266765950407016885325702749229227373125463194965888174670164061441099461354487780483274381403466816982970335091427855201132299042285958445767234881386903139160441574609635330270112498012137416941228307398956136742393696275043891312249774889589247859665848963885700561315039987302289400981371879466502796662115110892643088213490283787350826267294015269309112022849368086132465213165794728775695773102062257374766961070274459126147574148864664335880195458394801417784672992945558427952103025969041819699548986132376004293423537248427568933274405897334582350741358805572321835450167171596285389926917864310239712998882102862585847097425114606930380483108270625819633173484925395281085013276301661362556404075392735363045736284030984582817345514689812445873614605098998590753355762589447605569855956654983175081653346263468813171672973662566888564836449534491776038848528361398394617723940869021635946381865703681405117024771694996889258499194964872483113079168235027527016413674811114784552379603851689353193319932696806033785776500198931861514949472346111077259329758701447657874773860160074300938668629116546102887007958882160768937762740266012534041721220651818723622227772460164810008785208127104146631569817931250299738399074107109380261280969606098159586386532440161028998936414499313498969584443227179731465750421064377820770858689900151440756684966546161021263505775623901990604146142175936522012542946759843519938564877703473799510292166155787789219741057252230501806307261433473800337567056616652466568438872333343104870645900899731056016030043381582756306157302863915308397440175925469161417338372311900817035510422239358894746985745689116190834560066913831355719569925826571138890504635639452093102168583422459830633331246559217472656226342503470736129768134974853860033472726407175249011287596903984475408058570341611236165290640995771430437685508099460201835266861231003001914284110350760515280794283932364907878558080860616793620968436779896509659045922852242059993527348968336239323132893518637440224744093933081474258438194069455168089705262092114749054676032482103744242635026756967550492540568698775415720061776807494329590353251759296966269985632593622060972850475719748231459625624365619218224623994933870050769374067086478396800807440871869887642034962071680837381486059427329972467230229734868483343026690498551654606761444120320736677295278810758760320081689939486826373287339037511771193118574702154609794949013847608238462682763133289910369130353999651940959204052554948795571788693955853236265274599038598377745660658464545987005021587232661571188552932085401352648423583494459102835835892751061806311743703563319735184124706291694359787618067838901427087782964395770018555031780937546898428151742211219827808931047728637505310017646427604745933406419553716748578765797447252569147740367087391341004194844137094430130552616732234543067503152024752576791687025925485611576273304823824823855795783864866636510425690975241429990367809370126998208161824377207254929791356979652035079061015640500124787643437740373723388305832365456287628475605098981065064948103785094323322630235142291811499934629050504193173229452089264307151612482923711311213467361330426756984515717807619642878962591562644150639021749343548414306871386253752684895003344586547578986982465188649702093335162362258790367173273074128668213635538869869756803552968776011313429744576914953504103777160855277349438720918086192438486809773519893461519988826548156868512066031434041724732840190937213290034530675484976369902447819139416111036441243782719876284347664652958845461811210412886818293540361535675009667713326216075861924143557767065776227370864256908027274842021879524682935085225097188600920653375991421593101582055407877620793167832245641605654229637119719784582886687608842975140064374715522959637968979865786190772394734485208457081328428941081435166578023543526443110782220790564126771869229629189053228386064288120798583018823107307217858353121497365422654751150900894054009123149552522502008174255920667635695909107184228655428970839855706430641966701167404427022573764867535723151034726864160886202092715335008626134294713584783409337440739485923751705731622474271649874797240200963068700683168305459883119400049316339375555706697994234348217409938635654199031749610540713885658228434989535209309148770040473922718030500293640830606062197984412382141046009400716349614706696248998728023731242561974113052467548704455482950949551065519119223584882170179550809273004886899912416832643500351762555739613375349170959335176155988917232341969941487956291324584565682747370909943986660987289697097849311630364166019298164619761332551652405698399727235268917831009037732493523414195192328713290477903506898096230457306132416144147714987513154303171565911294740136816728962181801968669921237605794055727250984807538824635293611568898770196798650957244814655546616531092897838066060936582203877468600894254563833865488779244319717512277572023342058249965939673570765262098967841432974361505542466368418419684964917010378262311775363013819220913242244498501715996391578080154889587219397261419535669164838713877569033126618312537450755866858033978371721566808982637922049467766910706770791319451245112982886609652806754474624633958447070861607660477498980127821107644855816029995097166994674738591614592660868918056975315523967634991473484820004967106507780046037032336886874025496621262088182162069140310243765590451421154787991502441887034242748896047516194079302711048548832283736875713946847767085584669536875418280631711426842574023393358447955673091505547983515597884898924809526507302278002502113592976435267494681730787184518416498107392472758046745543164062227524426169070886541688931261229403385303545344343054535782896111397917029365514980568818659375354839272109072234902370380503586442900496004594776755537449792249875254706756333649703462444108173058779606011177902867447683631700907553134137314461225711504868926344782898859076849697031840327052250794177037406822491130556090818546194094610011017615494632637010028291989576300782793860552110318504912082371591976469795367883201423437417558169680944067248407697953934002894391002698404195565897582690641376381538608657979673840516890945291762775814492142788370196932182783540504077219665961153144105854798594972530919446682797243323527524039430897928853810632361503811093248863843256953809963949284279033044606213564180335875703588998206285043253757074758347718500414597443149791940185378912499141526537296769911646047546706605837377357321709562390768863205878699291078647572973838895231726712469797874696387116497132535298152036021203096555309438842748936426763998438596201618155121753600601660904956103247905994106941718779296596895408515389503548425510771165548719635117503813352891531067796975742161463987289429058170564831894767173794283533284478261300386265769361886288780586459285692231423234452424647583801640710059459474553151056163487809516087023120266365434555889097528642525029993943012434038005424550038145160509465477158510786961920957082334706482192948379497204099292727477895427493396407252747738886389629710389254668907971256531808625989798872395087483870657318049337331182576627572476520378803011769300403498911932340343489328057296672749402856433338215783407677894072168889133406534482147909919640363509970516597867977966429419054955327649228555542607943864894577690601021985837188371644717193510711420550283927324878565393005254552000688901733498418258937645603446064393065412408076211110096353259238691445225596037211788408025216939648673204136662481465172818082134354489124386009585533427699123489220465819539065605538213148415754599396950041664572300586608971842491461980272964641883585954706035366576320475391518208946394736098567483163740735561449164218902835440524578394852257874868573172675316344840083675748309082603769018548568920881014179017807083497436087777939546447516132334544935659001234299361627733496942729083750493781193755982343316500653730660614949826693157088699861808631245912352567845518822344905823179782022582896098120324421599821988353169495616051955476928165435757302577785378483260928822146804197338001637704757792796658548521080592947997910654930060335200489209463170822864738323419877380742714405148669032533472320743360734943177081683707091651701650727041512109396962392612919204481643840159003011191160252280928411271830230733972780662043040951729484759523759313136481951243343736220756715691974523038220023419411874736503488592449656946814258455592398763232974260242692382639258580224579798166028579334956025873666142063550259718805644751338719578826694074448481072578012541217663972173885005674769666593153113301395733604076181545960255522652242233508504600298818805577467719690243370823581083990298908517997490763066294074709400659108010576597739089645623328419862490938294243344146946235870371828107801053744840624924220802439567644976534209572378431775950254795386636577210774419447753574073992230239340624363190162152418896388652084291120934608546683077967708083184705815967028150333395121035081938971885297283743639653959075854349795145830553642938195966486242295360492784370152476094169211927677679787411686127610102637485579662356141964518703165085916285847215248061697820675262229652572097780705305989463818524218672394820442329204046421855313406324150739027140699739251986801716940362847514903552724285969914296021539992453387734741547409206769254504614428653144355950883322511682328325982409042436849759995703508865474563238748308097443410299873752996442667568543508440978325530605260467737486376282709442384817875251317478655695211217334324168257418556473952471404651306496738937673021632769097200436384153021188108575483473834267080903334922289124126883650731156196308437186548422730386680799819329272706648395224210886900221254606930072253603029457338761673690284800703915948858232110461511006938647443190172621816678019179095750596288084891127538478482679616595458099658770031220318927045122066917352200956605803396698474738152406998722461196584966602487000959294593327257671511209272553757309420589160556784283513100707925774718642248149136000851239717271560219473995859415813881114324448605384771515823246080632365395451279465103408486434026239825717140455217959496454954407927791199113583729273937995623249539539973044003657999519283138256110344916343350340404464940569871929846720633654229552598152819759198541784660217329088165717148216367254108130623668987668203892059645625575932694654837709352447124768866094810756859642013729484589839200358729137579888657448164736463795684113775596043042228163136249872520147349933474014793786994074504394952018598153803357390640348187591347310226108707832765352151203114077644876709492791567736208257216263476979701373443951164468271667592023835107337705290217044525241312672198627536169109691539552290343173326069657293285151285722398544253174663619668431926612742023234678794583498019179932217352234833387056166995693357415922768402743710084308900535366103417294562356563457150258654727095877991162860626646247025258992695559159261410725965527381512102987186504255925009853950212726907393224349579371657127175056771201721398930263035250567800201223218005613916069774677573051687526813060460939381223131926635992281716123361567472585256526376724968789011672053571703407350267052699905124246779100471150159353565924726787957798952856973572948840227168354385823193574252457517151684003057237974555959466433075298195447580860422221892043906470455186207262972045811368722885806553233101591271460770679621421612504755964841712479118505481806775276946308081477721428440175909495388482256504971035155741901805299938768307984207864734154723471384228406815657010795457976754942041596273387624807548073606772267705269958462964474186229237097972908360307781864114087385364434901458440156602452652189132193878857047687501531694072150266548777170779907377748320283152785340395412457589697023296000621934475281569003222478973448002822766050636513405104077732651568620258587220812633040180489115759158790229060304197896696156634037428451420562752126300093739791306043087101642566275117847440007387351521600689715813473874958428579944769030391099283197571162590503922470120577144452488279019660821458905354690696754694157430397122369495711946790104382030586312621402441378288064574013713559135715204372036194091302534500154632106566529427141041634790914301068059696359529896023647461681480529735594869466798222326106876289389505173832676670326213142203630233843819806119088703425400458054748245082295538154761421844813814476772048582140695216242019454918400179462835891761674607813554730669372790029513901472290429389727945789329718951637510657260870498834047546276049495321655949371904895441225534572125712175408591066391412622262963651948014998207837589344484168532306415316851085629768862296903891341899426320252213274794017072163240990028567744758429946886056994957608375725194035028115972136811237013492931935405370143752527790632824167757419943852520799481554048751333446753825888645209687487191806638687222941204410139393238262667283040346864780096862918153760090116260988723477024427926807585326532642747348884123924328090548444442085372145029589614389626747950340698534119074853072522709284451508592538039404684345923482334472341463203448284205013015525566426273186452202379116272036635848080018085559444372060368916647389945124237000305309236071660099982661943183834643006844286967194043673034111640459104122147228862485777398803182971573434595888306741598511585043255591496871872974754438384239597852906606728463823569675974491856740785798079531768213975203022738752350261450327657983618102243883711885925677838436207031274472610952162323805888302763207706563242297419085388801126258377005343766540013820847820406533212849242756672056467337715265621204678410824104139298347854448718271804150866765286291133293408489648815269309101006414988573591249781892273105113773683395532057728791495166838609475089495540429917489384209625919571160455150719091655306938033900839971509128394652530311459380127651189105511398558953880412463284367033369294757563456169148057947025473061916860152610389572450693563108487433001365147271154660639224944243267113958775030106525933026810629530156789013026315304356967790482193024419328217656423303685256277386783887377697037962909397255516730795237190596755476586942857576131389570159033317948908725297007948388405901522890655671641080264379068472761691674415894499830878574474126008063899834855901542002952596778358665964010807867124863563640693602399215426483708467508652648328544066344936925197504335723672024141858065318347498163061321028573141745312234984005247017093037339859693073972296852413011247191346516108305302132652456228845048438790451312163252821594808623465137238145999363100955469917679289712619140383191170171762965613340744371968976632387549724354416985510509133816922374215530381576727835444871875917357444606753566080637100085135070903742644947598762055315512787192274231482792463720885467126942872012296425039233899481045776823809315310638808469580581214684191619555861799125051885177918399584035715656900246331784294786311684562076592091360942534511146574468225093133412476120698011954263528710284398677860899394153283668711903237838599553828439444385070681909446928245197307927715529343259246275331684095827682912002366478102225555273904819058044635133474088661478524631691920565698807052312219575828059690514465865449384868279386425486987503893809687431277503688352679363566481633276596852973999335450058478698145075951537235568154633081688939576161986763498925366228593304033466860490257606795089719907586290594961059461735910661556375973740021116280972792863813461234539405221460887453769306056402254217381015884033247461024280006666388082416518169235800052808853978953226953245134980800465264272501489686061334266982770327609545340598949531110229020823736551945251426321842009406561620309140304888851814491733043464380547593516810888781821932752807754232104332786749045464285617989098815070124711710788483141677095324902228926543260178746409999392094413851883899986736576482276811458700547984693653905922993475994690288191151147617174682118623223345143802649531782628273225935868635152434757315939120622048118679768988829590943986440237970552545075454276341989278736495423552652123754779611867726068786802593034843586534962192973234411844022220730665616159449298988603102471247869844131304659010755080987728608104159810688832690456233266404021754782136935057211274634350158544503473190558196907782578413027833125788964612008593732161067442089980471728633652113119590007493924678275737319955705334088616233583819128146432520720460631820573120468962008454772393958685346437738693640668639614192969331355513012380650541151722637322686915228715601716871241943286307439720911626138699830559786266949703483699210903691474459981370618805218680971185601064025475001182395766748488501300795009834896288776133254817201669961162449424007658049386225998461225606040098462887403433564626304854286794989106726373924315711332919890131769432392955768279699087621168753932909567991377360067347657189212753908142872763218325504831256285047998695136821680203258868648597266319751011366880066662974848926840433738277736631382395515967348246973549282001566460208616667538615855431662607567558195847250035191559426572177213251347013665883589055517767269757468955859980903481590185495277962340349733929838307656433391478719836225589307616534291437454062475046410806267253496864605891836585790885897002981439363746539471753415148948985247614417174030148335256325978673004045453718885608016816896489243801777628308298938633956240186834529369054289810082307424728538982990164234823819511764115863187401823013880953876164426984022838538658119045892788158475197189834162888458829023744040593342341858604627714433598506960320091674625131590336308752672917383489799440195445393525207855078816848283949433260869512818196499953702958396419743663670217275937534605692698804141767581923155846041129646519149021148445181174693994196797163502442206898843692123036043554819161453267340620530093731457833504904263399673904508313734111655020021897103193676051934471963326566438950080502150223268794950858780677934983506415933041019437370252450400673942028882973443443868926222574130190431521339781289791559140936399641118869037838276027124564904404497633338431113916598081937307168313394855481502246082190959982974000678522508028444511910122752376954522319996486062385583216538993276695525712280056256820019815589492139919891161304021825246085429185470524964156175216222394222066883854273626707497759612783678532123006877899439256693509946574859132549546129727771669473398019744707143119858942849402209324793009323208168298274745841809316008056423864992821336437960092798736168695952811639659095762217494875524949061243649030879330037104034088587508557422739863238725454929852204918600837832307556107520725303709486268951275857876655798204190393147509585348333507070508596453834502801589307112189897851593685794117849700106779827776048125700132796878494388930923738610705597600763354971108751049681258086207184921813422782715140924513461026357843664871038476628001514134274507920008182403523232601624306440064835516418076897123164257151606203843323679166595773740811152949310359647155618746648430932487911538525825415646535116544369658085900143784642491259931630815119091516125759604379887870621967036489271142596712355238519253036147435447259458165262875089855251038918910400479881130501059697154660473007561324273799139622001051355747795338809946054937592621577596194590687459444454125264458487862407576361923350269603658443763510968495546652543373224950513464411664915019536473857362135604773228623340730750113606435904437852512936595433664040859785405897447259322458300066276376261269108795571141182076655626639919486179141133767971744363408633437794665978551492878173584600431627998331777065451543860022110487863493003225748804026804430689198794746214757844373675563285624375514813705870793271710875853165129166919230352953525036791561858350331197325019498839600517604700854002060547131475235847724813041432304050617035739159609962219167430622859763198457376200089197888008974906575776117026296173379534411008977781313485489000383021863708362811752925553418821044763428761069225820341383537505533149017728402523492398656979676438925558365865946517808967260310660092893819370999586709894898082512675273807998548883869128381293447154013779206843657127712152468894673917936205782981420065995396677217542248641416615214924938621334270599289523213289465445651622061232288387789003572576080181411974682114138947505729848664684531789927349705638154870427556826602554186194705574570443505260300651919162191288314115975959113966649805363257218916354298693011023648444703647031935138256611348536659359200912754747292849890763169500620725430141766079769231600700990104174302992896103376777790348362282621874745107149942190835634312525303269215160231907242754182228754670694852005200040953418475312497550029693339969556201495517796443015201452654527140538854597264984272872667852316099622783933268201346029355905701971330354525791563899123362037728630725067362067230619639789606445023266878495863456148886375470712282935282718267475342311096330809394600477093575723037328926553433180995659552388850597507573920424450914832817020982150218595877031590489134965900608944884232390947535278953229896401175333898185760615701036713953928971173049372593368354565603566870669105356775067439524625740908931458195137484382284693392451849558767110222445115218042075049360288871451089314144206990579428645995183803968358289494777658654104478633653348432276673775006499775938317056723542666015243828948950396995271735594724570020226872166064820142290849209955396150870260951808167584452592332885981692927606860526082096545401483528519506975064076346648460348694701826873977410524842701010803988480367226689251021112272000860724629932794883197517916592941208941140386006405045270879623175386212620224365751806700445463693140002260918066764349618769061187307260688869168990605370083492182342794958447537244859334209541014577327329208280603741695859491560657803189080245526519982085470544328793041414741014673777795235479230292369104502975082326936490643580544573995553286921113445284114554002654831925352679427716786839802030980978880345002381115012203339489605719476652167627127038965164554772468159523427522230779146168597652199166549937462685328919735507697337440848919677423713380631226541451228316319877446504142842190452188290678244793645471738880070650247354181652618771294112583241530003828922987637726846755486725797693417573678962148599972187445440593711270787652752463884049642146700050105107619173737855932428357537875127488136025048864147709325730142942993335431812861451793252884003420259394680546712372741816425530659871296061995174922450125722416596358114978715843387016118904638525065114439832157199069442297667943206398357983520902266694752714261044782890831496825430479361092128380195839784778185805268568536238182066106273106428973863176549453145162910641921174608002776769783830884201733495774713472030261732191634024837114708440717242158694306924222358210787550347291590256094605346730267877904235551031300641852356734144060908597733855432835650208620623325667859034818023965155433809999588493291534310709353771731199483685703206802219544105210611794155061859217868517608232670086347597534369253190539199890128971269743110335007657074268886786603878662812010422373782852131950177811274707605527015018109900322449230224857184785619466860743421074247948975539687483329372339238254648412929677225645700491791524640608181962825265900275496776816619660076162989430012537308860166957427533477070859550011963579693190300510058529262280730173277868988831293847974001166130415584827201290732836121054619725895972686202649440020311951200538775014648683741576399286178427754760222678461053131309010694257813148832274572788696715700280013335168412058873879805489564646943431692860537273503784903554358353559374541638129173860033306097946249583756419280411377261840522534215416198564124503650753781280134520138484646772111345346787143248752338718855267274264117331555964316700344068340928898530781496659189547091771111060694275349623170410275620764169148181122395754779766525037969303953774981745668613509153238626991345831958144270398982340445313332948430924106450306920931836521354583800323408515187022441789786377953960485529453878546617510442169058862512686649519817006147171030260713614187072951265834771575783919435566192307122988573533930385021066955085231522277297981188633882913222949124540297565913690715739295719031555341213714602148382118897982692033026145052389250172685401606251842063913839867758532136258955367751144895282991641857479514738306684957802208518152171637309527645434707220744677983797534868674941939295713461851400728353505297386828176887837124479195996121122048986068404236222008203803090451639957612257982056455661741518939571777708477628273635373141536463979543261454961296607201520559474695091541199219993827651726855878201538700251527564252514675852514732030116136733481734287848770016875291633036407468655497408505462401351321867552482120886304903092462941853783366642913125871226897715299158021541489877926755504539410518827227552291020550483270257963962026600774125405170565128016438153327303639266438180733991864037047524137665709295990106851976121295530775971034987961188258717971659732466604205879544175992271660164080702913714709431239161806342648366970011564823777378076299509020060212052893272252940901093862688827323592428207289299757645737821179032746984897180106530234476785122752183480053331301626404924258644253105359884488320406008648616620703118880314824168383967780505660778773592744445563309593656031539225455387914340371751587662697319298715805054878755114013503637376076956200356376610909241878086945263098999403211008086121945828727971155754583749590871259879014573062025095962399371214425197842197522720158529784390119539746893766990911026943270798553514825251712155496793959038378457381440128635970598582053319074343948592704718574102404055176483290668218031676916749314988152272431792866676882315335698886080302938979754776269842384977718641082315750416670136631094299009313018897579607464928173763099018327087314153765642118297091360073566591492841634244417854946393141126209230754107863853423163447541581602464228364339362223646695555911029706648971205501736591279348489813673573388016379902742904849915922166295285306321691576954220663572770492837988020684214318216240460844806554232622202436978931690511574408796329273539762478795139814939151169610189137977055589988469011373409942930253022658574516513974768806551135330127570713880721674673764047303792156424690429546276952840548225446255612699236313242262625297368998501384413312465807072256467576055398983996538025286430919501615822123759103318265940233757088333973826427847798531269314669864235969427221354050892577164860012203557327516150521696006206114184840233928186770207798626235615452058737235702981938277173995679838323425130162995308839752107857733520646580042276827398980369900307074148477861688240818603932931343301450462219438571379304488408486405974594426982057730917829892588521609923185135503921846271813841576405041111809179794250629611529868313492114548388428418442530480096612919163619749675809238533504138445418600741743716975017193749514521431716466037987686035214202314033089226042107450105806121876306301373278657306243304771960612687538235457222686681511262525939126309297656627628174803401075999796041519850085421033765657856254154935639021407669812234822341218070427266716954853734811214380090315672907516214193115124103657174461376055896726966999126732727795637717466881687028559961564542082929409835938195043044587897136650420173119327501456721317508214095324072378874757173295177703297282147568071041437188724586309290113813738003503409368631541802250884002157459509929304813877618688892062252106126768928109969429971025576850104834016444677825033416396215886483176251003340206029808764377550868694197203349720908445426968690870116638979367089081504653326177339202751602119050884107413040146185328294758485339483311348646624070684672347744443585727333328213815060199536536070509233851686830380937640991728742939193553960413692285131901064872822177484277139026814836665615510101017807980801052659631380371727287035070734405610611055859282102354453403576324566575890893697074559562561917492284272715589087328177424253281953925653822581865461419850891615178788349730948102772849220808689747757649324965335389073740825291862870785541676194898958261390433466635215951929681547702300133711447273393344900574685086597495597736961124406865150388550966178318001872510864385467921954142813534096675383285255511750734172824597452878713089218814507098699889040267714135934204347728842977207615560177219437525144194476146155879879734895001410363735569418748054857908145992633248787604742761337472693766919508441924292164940140062065971329679223133797268234328935234687389080156153043169853690520908157191645275244464242553582401518756041597098287927898241507752584869646787378355908324342297413236383329869125027829685190792134823005573161423203514354245920585212760986757828557868062583077245045272703251607935841626872681355649409040312109683822183806717754104832414393922762151100069268223371065353169577233283966724346743365565166337274487066682729141847266857191416929374869304488736254894001254695990358638099883596974217189534757184167511119197895658190433076466048006938166828803644846260400071959003204339773636952406187441137393251721587862705807163735027263401156167494587057988836647403716312774280850808752259804470729254868965057156286289762139223460583064011661560804909701511322177545518605691836773651459447127106789967193604179304655681584016430670756632811092883034544956265284852306864819301319842626502728727768556207821321449729528847386588305102785303652288901868788735840703808772415788765687727901348164588510028793875469514405904250176683357428933259091890950393237557307237481027712558850203218896758247193300562922416743983733762225159796671588046367167114627198035162108705303235396612132604630285303316525146248975010502810820181427631584332109120614885800315792036013218288546686408051950131257176295299937319194172641963037128078649581703355154442256936652853003673019075837732483717748483332195968647633433902310346844408370533787619830480213372711620725682089408691226289771035944706045152672737327117714697536285038351446484832135758022848697159903835589947076737444560194651214853804161546188517981483546581874259483658064329709246982489973270742768013041142989367433970227938884921861908212615746873848299903389243634996173003211144203665494741229513389669546421250955085101269087455091136341815011822748555345779914624320750919431266409615672346330015140748991741893946299057340216340400669931429360792458687385364035956154109480200770568519357965609623138619234053470201763766500652637335140971011077323052886420349281919899427739310232643627383569517725007238450104120906950864450429311360578168654443636341256538958317094816267609875037572402818683123208404832442914579482495326816855535108056954092934154633500680053437183217381898474618911877186689857122924435890560198314584374300699271797296237775217539795297426149038826760774383448354593658820120478294638598870314835243830217688487829065116600030218792432350099612871040271739771665640791386422576949167911019447847530371907685786953101277288194172412170279943126054243620508561434844930717199018476173451819500799358592709677209309448732781985556201293094708519622174006421292620820683766722754304613885235668635703566502619548773150385940167619307040741233191230167072269636034366013014077216384382429897175566674144559459838860525739012983666659119724489446697428963791926017320482301329642989850937079121028080311710645085857313853480895522109123414047691224997606468947845470722989289546564516814515732640864247591811150085171858415535341797608755517209077171507723461537187342539601758195552426405781353022580144189560968149030703538522685815723007022407526008500793718571957693255018585599701237760795130292671263036741421319651297424415988302482793110755339598660481847677959470681393881253417262980338744597927805292122673898939351253806529494358071701823837056172895988583053527760120077091336964437554589424999919707298903164787657049705533831809194400931599722087795138332332689815361949653232235633836535477337463029828128251951627575054837594959803089148775168891939612387094113384607200593865433856880842412018911333798245591075873450388298014311709386101506877926338457907472556386879274992127347494655707490809676277128601503196092637195385886806691126952287549149481827118755435368066297034851233041105210720999280975424346684959410461695299189529922915027056168752833062344280676408992748891367302828185353694562576491566624058177256691642551387893545856582324616940559190534880260949737206920498086363482031574166516459213540387082212329871038534047332228863987450442699620938913941205357517196413561158188705615040872689681600897852350138914314651644013558772624213441443135238897205278248061709375318194735537547914670915198914740394373842131073239161009388915586283810403388309897787829864650412644089465460340102236656461076738576792892960726168747388390403584127918371944349111657158263454905554311612209065719502086096067626998777322859590328923668517629164848981696359917236158093569017474836616083792424856598478409285827215630670394029062759763272300115553514103364253091127126279175446484847840274617756007799807811730242539512257221807122001168458083719080998956445860842526604869899440682023308916720799742616196832091617711130733980980245591636371355668556957915413886593090625620881748074668961412827898418458282577308887330308351950733463596249136895607631362360216108454322720292122454696211721849912300834053265171461923279149619412737329164722158742914117229902315887111666739388818059527509736870349334832014290100508503856675180870808004885539472317442000309675347625199018581933397778665484188199758216899666306027234201347523484791711890560810744236562080954664110669038324236845071875405219240375666524463695087709078749960106578344936775184058817961830534010520545501296891740903819470986634296085175287522354163499770023854982596622582143025669525860491196376052981272719979987994498497789762739582148766106000048376143432731723190187875587944106759842855191402952190222976614221176302636335467046631409093260320597016759912098175186971949523759540316549020026755107106112767386896238699581384503702357761125049103155611004306667503224071715190443345452940158030565317713244685238222595100633563329846002901991917137727359145847642944766793109699934435927062072569524898259689030047423184102189669601927313109401805026257709957615477833958499174943063858752261339385221526351353375166973001196222028228460931634582914102796704903753657470685760036776599639039010508630104859299736395168262512299794082215742373796936952077060490442191787156059909270355814723873987383780508433577353495685282952819772265201836546752575719453398443257878655588189667522230430764982884202632059360313906347021358043352780541610007398176160165393338058316465818575883118821131529986045696410881416702236849542475209800773469974971170981553866696622392001069773548367300610548677570290096809136716311174466987702407991267290902637917515334209883394914909810472619800322698175642535975126226043479731388101036737151300890938200862433817804838301471263850322346586553710440035045173183632338057278416793656791893211788249207833810747479221249164954920067837708400169432548587315281840404507960370535097343573891999628884747071516359546442386307161298690140761216605379875460225008390382436817956195230077358990154477663713549524436991044841941990745249121547958630307776471593356912346075173920421226316873740210005094163152506356705271150023705820979625788160646277728334240835921998989533893448255564630059252999236530603064125410663462294841104342125226118772136722332557523947277038507468078584179223202975659048004696887535524849258148248199962888214651036106066362095368530558891385364086981861686400123205515148466613743666476006380214810723206773107941219179078729189389344589624812856144777964354102446825199926479214780241091744561950984779562023809576198780559576183030307290483681126528250644922784783621917392534763627695571506870776344654815547966492591658526055027683822648225389498449478375852299674827389210594407964037554676932810585854928238250866127127291162817584969149689377819693728789443327769324768510800696832415461708561683046729104642866960821138243356728330815651497104966665275703409469083798193165486760721801480627701489223180012434547220022841719660045099842910742518620986232249215040628222709030719738696245526356474247147505571185790704830643307353593389224417219164429900650900863096810404050515320469479468453993076618344953042382988260303237161269413144730284727214663713940235309723036880702168864561839596502874794642639746173806667242434949848770670409657085434399474983891514031382156233554406119495386617075240191565162756550411213163114788175501458519636903172304790129161428678044822844594099789238423360935135749782960333557394327668722127268866560851920002415991731423812742488978280326707092899933957190297886473879672724887461641045064640589113197077346860348420945664539607270751435854645872942126306391734234940413103540492112281770284408460796904851773547788653759421018479455274453727010478428597023154081549731547423370811540840649360658825165353745644316550426040129115243005691645103466311827444701313043699945914268286862242038593998081330368049584251241891858493634433656414743253742620540370772560182714749688941971931472663894562553445903617397768572463474826748894927432238667560171329508349305062428907664675966597969226209753830869705647202394384369555512955525931162185748659658877101586578499008209214517756417928702390140596576439478459969697522342727989741237160729918507938434319444252735109636195211943300836762880141722563077018092109793430492421048694963189723707329107609780043109659045623781449899357150914895128332642738028486614282994054483766378254430516800871954591315498171570266143122112273599682772734248583201714063084237645762121036009271804776941389928513778775715724771476696155570515155231168370142401576747019927107734764059075314533619706254764614313746992508905081361610952272828915701704577264741279284207519823052167570562052580569491308288193891402002951146470047877281927514338484066791370881418416026848158043729561997380152022608031516928727822852247526935170272360910734736730539104279021061747708308485853994178983582955298055189072294736522548590401921990272163528743277163199702073465804189513906462643061572219827141855929716103414221840615350747781370503536988477610524214399261457326046033642491976011820832431031243260315532582985733903911084947607373896059554483725774297891991427831207329634336017485793218636189898765778934072629397766980766255610597681940796609379755582807906493642227922160821666495622767058845099767724566169405402508186781338142269640466025496976195634858973834375187667473821515786785042825127007297330119935139696983896046823733346543362291922786940053148273303958428597459589547790258927840878032509442430628709676321512627412611336701705037404739429398208939504487196180489894482446135063885102410766176095231929372754628066701996353389158651389801845432902901943169051870091086699888117472057086098968399158426791236711876152586000082893549606269235118078916131296040211673120146374303541045484655873111884321783115674124026557049827587699142377285113000680369279002492321211253915492200370939099869772688188033153476585429194653880972797967133619655545104803251869651137220435438918644402747008352875996967824217437657032655967754905696811771852040151520819319252310549333751556792249841010223228756882269945583126510968546810110892506061912326973975041705228793427840497731609683014259452247737146352501819687207241405439111798518354644686810533587527975791966899765151937465801092484131385152330258507595577349294964316806188896581019247612717355744321885529518963253061904023347489770669348890916235630147296434336587201132578359597474889181950046527493193178838198615247528695040757680716541766373104305661582157992575245125419992086322875785291427207743043991984338464189928513929593775584393066129824963894038474351661141648776960404118350011369786949688476473782913388036737936163148123052763231074830723550104778626604983215820303256773879004433822746046973577171286880432128946429256087869920419724792444730237165263668490684344247030039757357511126403607593184111933859659299118492722236229837544708780638542308628912886901271085515775038563401615510707076902043341884267469396673226758643211232866071575441870842005877836693328990856629094052220578459206421890789404929528465967534598798176358585363969694331667449576086550506391874132540369329993505936820743861984655788267631449841760116597699506271705227889164142697634437339494225469043935935671622015329415486760619855152463145031466247877688472202666555325016267914149228940698757036995836252008822299392936666944483484786254329514337679821159967848267159933881120148033186752771782641290802402058375691507290590312674907418122782244930197497274266295049934214415774222862365820033794950742335649345114307290502270426249394416764727616143819770776142058061343146788143589127828427389201554892734667162525486552974977849118409152890129413716949090780590209892111811317578662522822371568749050002266103514716142814969694074520146715143318490197912649352509086347578834405237671868375016801760457337015288482880991797755707808859727996611186673370834822997953593300400110679962550015117718953180167986681261449019784402843651646892569544564349172494657688362116193923427761272666896756514591503620059193012639186778360869364501617961373668919588347775449179717425606063898774330230624219428650925981084792615137228440889618138311842572442529002119798327448966177769904449017028917118934041836420591566844604477746021676005170517442117796121419953980130332618927361473463842971208814606027843484135670843094294307484589422212276421607017787262053316717963021673906180620508862029266598030420936796132382475270327726183782847276344961878306519403728253487448933936494850295699581584965193877903644804337714028366668948880491870817949988854855103394810052465557893841819534175143371470645758661700704165274182956985150832419950311532585860827921877041381771211283525318155151399961179776344919154287138106372001255924211291908505871978397739733130105400715714265387971399557324755059833172425913264598155893736455996959613835825054512606775973930575274752440528177662557696570499169446898274705565962981364518149314149580274358864142932226074935165115185984942422201196042468798981848038894189632118785089247481949704140653172143456485998079324373097126514835455735141923482401610501826801223221706259369639229186066396704551143158093564555989857330354530652489841045985330500243580707951548107904106254972371156743980359605856974083229936622091778042866569675041147982664370171275580115044823752485790750131711469980027106217784483899306501086877633900240643879804798801594793701415125215165132265636700385550480761849717320354787245006891631962071777550462975454896653435979203513118698299741943435093360420643391318165959185954289049729681231988596792014412006263214285013295599453749524141511434914130246812622135548629209517037295586820639713871076583995240201045830277856705300323055184116598927426274369188360646993664688894856752142477718733877358709255959987385487778170320792204878716288274575670207886613461961099733580585926160299434666699598738994595168756303474860226747556060098194534837048522687321144311631178162556990227593369800091470279212458023015720993470417453536972626006399237351527946332358780208626125916376130193877117600684495681328507062857392179856665981839797170469651870178315864202010292705021489197274051385242088627430381618264567954788618157781811850384323617632061023639794476827413191172317664099667533780845831543705228596915644349685351801572988772889246389445765041315068065226562025083184255300447363917116150624095001090529239155323282023359682370241918260380099381932935121721806782430934687562607152630170314692966184809095986602188862152204526951574193463912877107676266777655157101518936905326624076146576611720780068797261067940641577122557199223268743308370329305360010907778743545686357645685703156028406206435330342081800295769807123293496101013488865405159312901217638596954307149423016718031212868878019928747410838620008451709055285313991101191730473149055183541329500012862207368276194425992066322056329870012450721821715958433888100942643963016192336952224248751213174064980837988000812446342244764353256574317596722994503138449550781079623743339038496123605581311059611337547822459481872438714899796432966391079519411908303092489315383798270767422764409525203327865181370517833669665232818648510612082509053331674634468383962758280725872011439020327564360910741217053148824797419274532451587873988623347725919124959656550219707844221120125895082560239968325379645760404497977263111367855644388913740362539334083898366909544528980815812315823321058649110020691749811159113140474769444962311362594514367147904476451141282187910502861628450845168741510051948637352575112479862767274748276938085336257076042664773356310039440140594382736674758939518740577925920506676769746038664645618084128628853472666367806204152328148455135706939287071120887396266898891145251610976194913646583653910763036318626319914787216307114687658109975148555126981774390323679603653582878911587379397406294751073861049809671502017227199892986723423805068707449380783489449480010156345510399808943189154236959469562287582418230863572281655107267563598414007889312350824627073666085860487514939243205170477167208122061993589680585610419512595919371152910071143814292150390570927780545816459767468741588619960794839856511214763991055056957704234893633398759144403481952236872505392680108256378891057692760369772950250649344394841434912836391235042981590899538911995795755853901982452395023516820842718442999959304862387431414970310884903964687880732872981364219515029852862990763632488861269182216782929466133710576677313293071445625804025141752312443373475107926434893016812503845082814413366216720817124945378868268870053259375309706463691567624823953124504118684145225163377209288102282935084647108730176261784857521574979362812264961513523047855484471023652240371089488575725654482988985510178632894700200345261473972618372767947568604801070315975971689627290577931102626963443972840806895774649690698042542780337892914094233708236334638696392770802010069068702470730693961809853743679713369900950673176079939881471569576297789052314344266958977683583060493943762501408168990126423099221053841807965345767005246631369445746096095619901690403896067626175115923597787769905442910199109016126534317184193247368936792992447992977365304178783724203721515523083945820192762648329507224726581932317835094143061370245584186693969228591425778848321777238231204333237323797216361052516709016722253733581165358169274170478064813713469299609766363521124044224297677552723542687615777784665766548425953255781891668585355987625781140397408062690985559577835100353960559956492948723261504504017378734614315639390649910611017146425391893763798618252138422202241086131681263616098830138830642637423064810848701150148318822608279590082091966198782820885734776061710607603200144875436210067013252193818027949456571337299332221602924485025470008642959420066949092829259020444920329019459899817607843016803882824635302184289572160881291165368966175628890601824138923605566861662635706433974194111019546595876553260210773059861790659701422683126597844134898806027649859412307206728842720662937123849581506588267497237231149717114699904237886431106587823769439419658006283225675399487821684485668514905775250829017263008288248941764370239881183075859834921789789048177375664839385950639437096243780593586639118627263790076125035877098025887480936712088059075086509531521053909219545688450659974734367996682208240248592355711489726958750338096458920524124449101470012793892743595274907780111121998989635873310066842864137737586924483584482601017478586640194181224655013828116778916539216653911491768853166278362635035061053742481918283105497135717554676465904129940750544418115177615877958370402290963699326183495844476358151058666903607057252631231342180308978079711515673004678774974463823574956138114361591503861438308910721745739997860678734795751317007546085086077794302286726322637113718007778248723982278776246977786588718542202867710766245793799434015709956810086391470309275034039420050102890509820196317960509869240086958049560959479034603368408050874420846459711035349855487062089684334800781370393974821744477757963963898335846900368350763481311364950318126671087535186510426981552687464436450672741687610784025342270127764629876603166900655360517310019784424484588724829336463481622450624882655951920645855508779435058163649376935385057642498662332695479308545260407358929923034754281249809870661212780927149903337952341430108872445279147978839497816653998095993405825076146100492545117470085511642230821638109487248542716731735274825931217903799130970256162257216140269060467697860730951133932741198094338834571472511079961258029709696384607420036027922924820398899979445744486183629115628289012526560693919161603831440354712821673664279348206348807589246342674282673369635088855753553325404972731254031062813332920028246094417528026739910219491934874657373454919253701185057806089899892089621716740727779680385283032787697710935765644356658218992280736316355092188216394741562868978076845969517485062653178054337564072660262077535827248329973905358747581901021765912711155520459591949810972287808530183784908702375974189240760109403111595452157683848207310296545401906006779759201360962067254113426459840213329570619258350319028835490485542106059803450863003828400136655201972904821349983305159500390609128610761217148191404347105308955574702091174887777444037295261706588581091087322722925278961161610894762903414760131320410875741594949884564887941625822147765598349157742863356475621220447491808685998405086609590207914527561141794540296847921576851020200675950282709185153578237321040846229376356478532555365828516393159509902367774240827379849239566353250815341717473437859998979025018442351217678487648937951015040013115997657273912363116659030250837906480061274410036274539231220134862698015522589654633460118357191461704315344985285545796080401202683151805182872688460429517737852761704148655205838436023418101001407513557949067504150174844971716124344612468245337161375779901471604743605354228114170503205780986465533946141713702578212108111886208473694263711772859854591501573807919997075621625117830233226951384723533595774011196770530405573205416349555563888637551425294195966142608058459010515832145593775134120377817927828527672194140779063339926900949542767996183724373250540205688642614040941049469872541488987570596882785095362222913860582288123187072124127806616129968497824851041298930149631021554468440108983097498965026918974034282440470281997606890369644363475312547893500655785340407995742323867357354286083168307682826674472036736699521707797773992580503907334591566713600310473033971929855792293250390856439187428926212447424973980204836716064332833625034276104810439193698176366201950096038648346064212560053081227042965092349883835810922653643716473656551631679069072099988509075262895037563492746162698246578531517323879794541931858170727820129045982648717759228894011237892077942845540049658052822048028900292512558353160579043942753324219735883898388452838436260863967271593564049735336544129890053858839806703620459229365120683233374886132006410347657389434366601824054428429400589947501874271522364943105261486885845728375525443412916819159202779242028412414053282263022361634964688844511120791180873529968044719729497203096108504019240078999977311355305590459055450139941753787295072959409817433918996171337328966062392353758372681093670769971677109051244475912688986169150612897341359251481387869732445832548424214545378242336483154815486174124298089849823363553147612238811708646843861889180229213685540939662594873704513202758476628621971747665558980171527377820070188946535424574598243844956373528330881996128825461053692837318743607875526539269025802334037662011742980297012883815545720556500890859654583661280721018511763601251484395731226456373585624910878886672429950464631068595209562560907124901594676813852670593736025715696629803684533778421486576053019348743884789132599624636927441869429970232410063828101582044583371044388655054539631589946171139239045829045824551966643821657155912966375938725207401748285474570207271230072454739535557229009173398122644437421951998495230708207017700397435592232204251624999465129266228331880890718507615730477666482367353872992802333589215475276652822376749776847836410775026770005004257643937073890202100463390106402881428113134880675850905692273573558656246263177622808339069833026095043001188378812310194035197787830513860826289677484857923384385094834442337980818667021813300560990808804784471656092595151198424862751550817004044928473416127042096041518010404411882347105885209997183301059861633498196505468642361789237392120676781151437762041004193404968754204628523721862078740495487932937434147953436987779669788512063985763791241571026128479546045880388666020987541246239709062875908583963489341492311452917758550998025978529958597681046930578495271562208300610284599906123179055119265343683226978163247134732173299315265018206456130598676923781889772952882942407125568585478320602713509714554548128746954301357561316861125476730235298378026231061435329110198377908810289156836985769565083582788965828905899635619413585528514510661539640102172025117997258026646220590789206924193063258832452745574829377559538282627721472275511414692957187837815536105403695798638338995176970724824857299221833909935747437803053635357157813118898916063692537677592931969157645450991035459606275128856752240739843482062798068854620720632604823153458032264682959193027693193120540267027383080584251063620780499304293712491380823790990846218067603758933755689655248785173343869600539129813844438971509199885747613822839337767547691860074960591266521034470591810119355094867753468682327208693291185202212522822738881051799855871107932672833206884795388516094318950629710754003956183825252009219494834800870099315561140570813353227848905476059455145840946725290430932347094547705642123537745346120677044314622854210504549127421581663729733586495352574962151843339105002027829062702767839907901191728622617913443563599051496636402390792806719324667420152279392914380508277015744803372382475750373241839338089007296181247751328286668661632720061458294766002266269155586502378583156455977567992007899706506522582525824251949583677278907481796621506268987474043389241246935966168685419260603579819728048115762432479527507864296012943083092174393630625543639737985411091795401007016025795258120520725073227577117010309990804971230992289622131307532701204176899955529279408488042107230167699906105081621618095764472602501239703983306340324162795643118030353504679271527991834415628621690308349022863120579011251057835471281806673941640921772394547676184576037212799166570367524609837503008918206953404791897325491083710269723295699821053832193167553081932058193054302453343543954697824894443799596735219139169207584240717389062082103453567918448780300100508095625980195133888166359834621894452209198352607310743401025791948191502268269052003018196918865470271022842926311459468162574106360634866263495035637770321135907762351122086665641226726654959007559069080274173629786938334936386711502200600465935647306023861341409783159219967350056046333963422259654758259901894808273353430121496774653640116334864485390143341156896545527229504627835143241751804730893531438125020167599852432859276872455889398309759449486114957813877944556013337570819954389097302206844775969504261432565189567755650632610655514805463271717441574063731872481129401596616659489316663705468431014762377358299141667582058888491408445523482120265929901673472544743547287447743526311656792352639253594080034433341139697559776861082698519864574042236812992610254642998813350576343837451614896862817791626100517240533776194142809180360420282769721835257455940968175398633463624522905865926285879519016569918724495794365086437082874556405881157534549899579761800720838510377608493896111709536557639828516818482506102548682514883399025608824504008896487200617644257536414886048515311672071122638319214997232276550792190508415010233723452076667285008944422392420962636208626332565083964215666430420292805286990769132800146884334747080331303229395806479199914975018022838369115411676395398142107742533474055798743577900734376856213481532257945497417992733772002144648462237578804985756739956751354950937525064245820988237687800123707031640817596339303859212810027177281609984785050999223917471204824536974055336404130719418757492274332140260413566501839040388929797657241642618160116743128247041080058975298595155294508347438984211838597516977277884421942409876613430519528014367424236725694613506589061047844550099003105748459864273852958373234291760386568488400713853668570337399143561878084086026611309225649765024835782749888295856740126374721679565296971072668510309923964501577045623163359053957249536945516433480788969543316894820741826742008489996574353025202421599299610352419974105564830905684220373814457072181346808161567023647545984519521443880592677167099847989188374702437411800076904536401557227368515414693587305261873379768067577966522864026505798335237990206156904510174656669572815346011363036777534543347726177888503718038268512335293061322776345440648814673783678385614091289397088303759127043237731002247400933416465851739865738724848813056162536052244874309607234186886526392290376025108068088967284278951826132669663475670692831344520104500738345618729872083452571108217760276754413214242225936511182082138476941324581615410389995884106815791597332483790761956462056433654955994856691456276742102440068958942075479140551359510913906410265251212102558810347781202600574997199275467593054995727361196909873848617121156541822299508945889691064618661310913416438324361899107385943467917661864829107111268364224598417356429167784079138488048683905261999872813915639030155378252836762230851534444467919383156863954519838025968236800603280714364611230831236743508116926699865344877702927696162666528808352615376439032333750331124979284613600592470806550297796063183363545573037310349298761320345058360923056720342010590768903282276142978514938037530150034485688610613299101695342060969710353706186431373554950224263103344684006138677005931207755702420252475155539543471334393788784376273969054928769463507753211919864195863739742299487596656949863728375800949303095843302648853491866325728975458948418220866704339982450052637686000119028644779759010282440042197675798811782410120538086175290622503817934277115508834427044679232896798529024740574170787326468061564757939918971973661966448904624227900572855393659972808361190776128011251058247398636205606782691239519331583321979302943170216268451253846306509723956267124925411046426522724960188518507935841913921912842398996985108113200545645784871534352619747347034393905597831264791020605365840520477624562762175719624723484350132979171309353715839257262946465457197596554189875188807661241038675602584822999539312936330869552596932677825580903727554201278740776065051780232117888863461614786017154434270944998707034532163947150648136834740364551222830983687033539650680358917007166404529569410228754322011684004300319308587405252651904449419857203116565573273737842251583043400640136224672146245293470481796152134952868321637317776609145374857925665084019190436440037612449590975890495653920136410531108913818604337148614565250873699672763402092817005749493313307648758646983239868461646066848455774458815595285083412460681602109783653391814137423529557296810030097343468906040746161845542769831123442649842663081577930102331876770114699749287008702729237164218552627653864486260111108002243652242772708619348961627538987296576482870740821174451981574823673581022862868874626212972141266841257693293551936120643061811532262466464505238816879348993658933377919504369326236546019724760372577715638844644897418678669629182268465626236589516280776533745323044373187925792117830158950206598599685204770298792424277806696330303908214209848200722912583879003452779784648693561518976783747498396168934804036722250455300871443482380780042856666629169837819397744314744023581780495533219637336275816351089495144545802999603515718667944227013236203764344054548906854977928055904596478430480385439033253528762375612710159506479057732088139177059682975483298476635428738792375380906207183508137559455661047845118227640391573456685471094125980557579220752405175168188544299890312010451674327787121494719754004199047832251865186691042924232515186026379418345430476374485537184200657696167859768325764440189862756296523385238103124869771821202064670656895912686973626665534565051429168673037137288756823353691744403481845234729206122472561907181247364080150496738447630162069068325499371134439271206105224687055695132460987355334107451259256330530735928321059570970270236169834244304118131930185840175911121639515321820760150119875243246870176386816279078692733993012750880749802542865061954350319779091318658206662417569166953403177717184606611224635672474767451498118692214989444212612071106747831073711316263833640596949585398427678858864844485355962788515421244472587891117350196211931879834331016595995055993812807536001376545308999027717879643885667793494503808067511049323198886166330876934917944340844904574706722163663711915024539608841582714784415137408701862678164997404848544581665103190006418464675191548701507441793831770759276761127681154636993764016638497834915942765976652495086458668675974885603962246863309971176294691243674738907419156355633725563747278225865693597007972868733031486916544543161690569573357973414049635388387582311877268602442321966012614342240645780146637115997859363205659126448987722559357850891677044003869962117099549900761657461657649095918100959584027988622213747013624855575043253776698505656719014419098157194979737082013536270515000819227012538203340246966322667516195530582508318787234165857224954558058558886003486075384661020976745536292402374327629755358889813447657092566863862325503249135713998502504166340640460456090831490236961328999682583367715909088360223296061855491217676967149249382941226529432157964911002783652084683182879099746114171826170126798355141908829238883721467791188032332757087421881223034439763706264378208442760662532112020131840773523949558640966270682918098379902867945209417646066446808546005096004369265470271135826287812002361046245708199018355025359531135799969758698108027157078956687299741131662772508572325796128844611309267553080092527679674032715723025782410364934372889987949662325947155626082776830636092060975342718762780873490903786150502873029440113863451029292609510596761493184721353271785216734267291418714443077029579226550494105879063197024383353477090901069403537092860599439897379893398488666682961786701739734754443889518131794576790757118022645606201040302069775446993703125418553367779876189725978515251936641474080102313040570546694521110610923604299131509516902433414136950740577073814546908209704492216672176892880144804532087338280826381243788101494821498088716936693657623523397133546214964904635191634027179997297945968983784871147830318251639610706185910506276862716083542727764091225870022791547057896294887425143348775651820268628434293367017970506643487398971209734895259199432622690090992743728945211252266856566055621711840024723985064038319974795840046989510073565872724042722174957960099934599771526578528399524456994171311452938217389367165281376006980180350976641344123115816964022716895691957059202231245824995532361064836013282358335797641324776130224737402948064506022098834210492878105234706201467835822937518776362216316092915080606945940691002681718731246944379838175260140848774848487602857048749474136430924312444435418045037635262179859447320549202999230700011508332010448971402944774798407667356213618606594396766724696276721155109261982096540392372284508377455286108909906087615070156869068563384532339196357052334014173284756473996315604502465190786307845918565441317553054771860441856036935421235745923714501924706978440272045496195141053563690665723548351735687547077462580093698587245458873257283556043303812344779361725917085790628062751981647773422142241408058774336179591530630975588226079985890628445740521794503699511984324298514169978492133141965378774238358374864011244388481536911129786929897363962443919478069001935092858745470304879684121497939913505067366139559987129251420151000442646695202598963690636726356148880347517367855935658627836392356405440641570714431079718259186512775139813899173912470701933214187030743025543948844932165962727997594801056974116259755518021623520924930332070106613680318388937898350352931599333478889518577198858233540004146058039516460530243818526585411009060453230219506356174096228793755617196606620050790299005610617736842431539566920107339715303451897844268308034540047126462211879308689188096927696264933275169311881425898532472514648518288560705369983910361238303683859213705212500480431934373202688889540701735530808939889065776144387505640378790187420449864832688708284828764281883741207336003956146064465565347066843559476742127596680262129871044085614149416408845092244582320365409816680913572322129721070715022434223795657567832215095757871311121304747067879462821955102914629318254273917079663371597272616774207625505624314892302753360741027791988827248075896059014662727636596094612961887030182360557912261343601408298107823611616825494494995927149704559517838041472878923194078822202101129826412707765426657507022907249068643315879279427248048272950319861744582163232056883334442421889040598534601346390552381619085544206639670588029757523228305781249796308659093357772190335949874908957554401400856555239655603955545612796307470034654050499194807636626981039586739217205302949368326886798813846814943372237580360330170269648003085485032250762414641996177976695710027958889305576209413571967292781606568806066028338742019566366161956307928059509776471636533350091543975394440509114139941985830668888686380626333302264659577253312038577917919113958241126763144242051844222945167186488589642674951799048341163653454592313884262726788347296885398558599074697459564342716552733790555920468903453833942182690913586302345093582275950104776988299503369348886387332779642512036009782655647609018236271514359662361367005620586707559419706429403923199962352438598387239315312033740736440962714949769064772580005165168742664585850553532849916950025159840039121772626119849816243631079391341497483360021499198175989506609014890330615601505043149714495990046642711015701541038121036767246763585789184400828298701403219653902102200869042443984388158522069817718535015940210188448423282141671767821796107372298883025115510275488203891090239133351903582727829277820943756894221693315843311916027081644189942577831316542668398128175443924644551858106950437033787132257513603483045330980700886677295778671423415203937958472703753913894897638661772010559044845105236256743747425794620341657115422831311369647408543922004203130984673489977756791820196044313580924388161310465732267965945834913499263729880654538891038276416605657867782636651638086791769087255584398670000775409939771482720525604594893564516252983358274395054752122365006781174311982076559355104392907683598928886392266908979193735483033796460823109414575090815382158522949842230098874951451455875119252220063380389705512842733151230117860712933935735174883534953478802181311871957670726070210788395215606392679580614582015898489403892459057872649349352549616299305701909733101833927559149693988763210822919595845523696913565243660632393673501571213251196118768349450202159375480163568057932318219508987716989089862807619696616096184051598739639405341620672648540671382218417159480283063304396594705844254282007661338890900036600978098802057477192104131446369382876136269265900512727143175272526499212046939658261536354378003528510374133827733755145017203250491412199443606022470984514756810617241720303211552672731046002528953103505709779857791040865866523484206917365533869332674887915783425707683944755941379495448799322829001719759828538930446497540019632510719692645099747318287245344228725186996948411626084142003763973593391953417894634701306198041094629409133107326130991294847086657874161638649269972430256066336033659347241741473377075068045558948238636742304265201227241875407198281023284743644752454218593754938219136392563058056370548572539366588853580033468363720459388333806328230072885709149503810717259171152951476702712096279026036940006362113262857554734776035428170254539548805382922817517403289228092669524418209450839121658876167914203319879927545549344301162239526947287758599455063988925318060482589873669061336956982344632818515063226161016475168656280078009785074090846864320790060637582115293358762910930388025083139369607238527669583092824987582163705727050761778044754390671016267812270137817232773238471098676711957926922529871287860738135907751259477020418264662287715096890481503131783152411525818923884533683031582801988336032808923521620541417836611795502691034481743803252202221171481790490497939052450515674972052735050481153780344796350436727609884489884381925026292740486980141923697052673818682437395383979183364877180013437932470872289215421028039654463887412938441524907370978525436894499186001410861273438302962002004699010984330249076167040413379297116925969692171476038383503712131502588807368950859588007526277801857979073482666299162415444553529305706839950776443808668878970964776417595239047384327192396067073145336446041062874137684683506878014382535272229793092147934047334888864338313153909195043325734573515365039204300610544407969937193839434949178223189597825810640423007623704810558327600772223086241587864382154927785944523148729616877714844682188378892630171299902772769625378592241356961456369042468595853927637283869414476013410758892824760189841561486109222838592103256253698612032273274917759081324397168134994012100534560214838710446851467002584729609335739710115916674745259783269957317418626812207543904014803112292391008909568265344034285484603523969702310070638587551299609888284773796266731165193933814861378433622141084429016986359480517488968293931123238182210667511195351050157803824247099758873402567233389098527615686817239494558942169677260889897410155894075866645079340221362465506573913986601553988093102841592978050899088043708523130430129126199406440566889258755918143902881775812907295959276651000290379779615672329193497959793527972078650488631483456342542483047081291505902132703542396452551490029306999060030958293680553067060099952990191943780442985925599684565758944298313037819479302924175431516350575349041043442584573552429113858381538337746658970986544013455002920617967803781220272030436516124924740979877746922616142233634216616881772704379772277652071295781119145813362004706997112687817904828228878365185993875744074192877781544628323077238740733254642288617780077582146871574347327192109492940767444613567058378543831338691991314816997111863633800471658185179916659567399936606289665142247463890090671960293866223615741257176749393185820725348560604876323481904902729943773699161615775313085281074789727267364895779822094849548138591177118683446942072350937271950895313772790956942098625757240792084348199928207850195501207285083574375871161519782204333390678766539512267634019588617401133677622789193468928452751765431350296330885243131972055093902971751183595104513510804142299945943931777787409349455716852741290589928387633677389176661034543027551804485844885894092033256110184549473430634684805416963398034676940098731799077582961473969071918349940493681213408389486256717349732888710061715010760325367199057712903066924335705702748820607467557367690524197464717938530918236242569751665264367763714981826518268600452537279284304763843282416367793650648990263693280745548021357727227115904033150554207585110212843807932740405890139426154326217001693631824149922510546575286599861648288611881141547337659821223430781612962318629194891694283454371589162511392359847687325381202207201948289497852399900705532501586829182635546753954769981834068551533577842212039846318445253536951183072564764955327277470201192761739372634559499031766493926185526098409272276640348762664218340140062792427502225590687239289249518594506634789451033687388749523985732868314276384423545269845202146251227729535732110621077657375895459916381130583210677119973037605065779169120778146317421764666539385556824930777954178436151677974031637545317659001750629180023826986551138065006142758180789230018365720698012683082417608455364818554163996019157373510566179427661899187512287167118763475377418182714129514221760016555879465348609308471529708869948995113875816259319248403905712027234986878506534315101352281255329226107654525543136348819792874230990644660943091005132215262048231559815550094395875308591320749780771326379010286038609763881525806549381175961079587849698397278926873455058596861602993182643670715629384201160442021349784546822880366280260932970667858256749591465113866014561125552501025591089251944399966670992457152544282445110451463094046065000069636789642484178655668184257692298501198010456704145653570351858942670189001646525100583456721229571948479267856732937453478540544400308010120829369661639590903867720625151579043136203422509193317912599494128876991948733857691551502221543412819341036958280367861845215727248401528421369202090823524823253479343596971399751468108574030389635559272221874262645778005137885266545953845047519759120355945469674214926714236168145306441217942453006411353430852551291555005799850601134680840954245854327808252244196931512474849597925781116564857588175830511315830251692636810841162994642909101752438582664480619727463922492338030163245166120818253479862638747451793224043644124567707698719126412138916440593898200186981620210502647730024337548779014924176875534530607306866960486999843447891136038111657789093615810861376559396825650186822056064870102516521539117446121333711181699692437787602215914506352632347096206325959292817951015089888556274140532442181025817167493655697354223713244937043716531802802266158373885976344129389039566405954936155915172488732388842805365783716954185448026203737034241904374134610053052819314189413522071037820407372215998996525863069196976703073764607958255384436222936443769740747422350011769150443439854494906450818274614764255812468044647395663261736762871917930681336992115772024116013356707866616605254573772730650577351659779696139025000132715725324146182430147782740079695916577034765591177444209312490641870355176061668785506981124908958476796195155847676296581963510684082978828714679235023347133463910830942161635794133651760907106132220571849048151509858681624620618193252987820915530232144821114186698659497852917644530370636120941324741186538083432065189344744212239390369092324372467133789833038810759967632816420108121462928404988657036017036606911054836304367982482264649983109472067800992889437701468756006727313939651461831185192423378635532991552594477556726683569466532690648151932262137642093506355624623674574504525053975490789479958634396236123051867259101067622139254854324326060689751026350898213162463288450630107294000112296095685640659677729032630715020381088259213548960885404896026157759752202779999129550224345348630488152230730172218489154784614953116059741007421884165111059798914079711800867085138050009960010257839117894753003633446932198171170177838093908650990565551566269424918666473029778416375472772334323240763664839351407406600681747044377860555740218259613819359599116052692747305962427052872174085402923469022508250477106865011011514854545311155725462778243734881536690549729684916709928936713553039169749877690207148376345100542303852976493248309642267950923999328613688266214571024929645791845748778758952647770533663132475502030648522524613365697701742372795424856058991808849960067516568097923868805460425852793640801865056416977049334880836543409580269187509128879516085565759715148993880806109079610415117331233858752070207641431920439091975897194799413407644612657253636879522267805076955628199822492210697667878744846583802551007820058424763281709309937678203326794529588283035961301361117865147544336669496074538768064715339965612321643455336100417050466932327994458086667009358912210687480156806298753844082172253566135246911600338280268635159959322176099473899118430139110340328911638219558040222149571482038493043943220015997947720582986114014975750526653743700010733184965108333337244852729359964260611228507647031981897828350098067176718649073070299039665767261324381728141832973383793127982555213659762008522753424038119793166214953876358480983359449930731947048888918536442486596410058581512592280162041224871483017420547749521726043551319768472840770019307684981425727651802578640691016493902125393951875818921773427236968507451979374788600890142534485176343647970708782666971763531450629403988248284428799187733384591367498641610898906819697931854856040052422052222664685877457724100602857339694064907986150731066734339982808485083822645453202246771068037846712374185397301831380034860698163352217145617109547680730001905246896389409709407646095542871172589381378543523471899730089558570779050125433580667645793768277735293970528750352830474427018796430496715816476059066588093946498862495996795681911741272982767589489155293754976266000301798416635191419782254332072571125967195336596663379099570239406417068198664262256096294424898976504029136784945650733057192131234925443466305484467567774188006330956799139734660363265252435005221834475582089563710305807812664053443472384859249081233908481331570210952669661600770637035017693500223791584611076401261567810450309151008573019862625177705483759049183832363896736027714771347142467072063797115926021576156475927056645916406259687556535843586863878690320912190210458902976038829191598898205853502136296464019662106666731181463021874212051400536865324915026504184024564374623653068441906415614871078634311829728405507958411379034022317840879713777036449127035758827649484509844326258321680135982503452686376593335984937154166288404020512907799090664713633546928632322075711443886493799630926669308849903658396857627153412946207639860420688071451024829434590335806550166850916361922386999428208049361652295369530590506611198947444184664310957851625975700381320813703341125945997161036165124140497211192723950176698124571228955559033314594251934438395813574467276646884605247010075433136444790233066426351615221506130290101089908355650015753753869458131217076403010147724151862060716605251882522672187802221582347515572094830811218445542500102180457971391082900017793246858892660618439643001176976718344110968462559440679355314221459441190228550299982727522695674027022113874804199686075967682853605087925092607674692264543076704696622522989411829843208157283795983008508555539270877104646559390208927106594860673813056407642798481961732589561733613953364321388654960148025961611022769956557100862564477455270709812651369834160680109182207643243786361026884645821622323268826628609451267335466647628346997549349562195798809479680226770929304165972734548172119627515785108272890104221192552239965015011034444152088650355499524941111210506458665278866834100493385690587204928503397896333373568405288206776949670990524370993892117303293078586134396761891500423944760670988357812839421710855015348505984512147406985958129184025342140197953790922836976346127318300301892656835984530699902774937011709902348865403192339434491576685923674947691278873542916776165440235068598872009458905630946309046988694303057441652930110240011489899341012003289274008268079930292588261384314571131289639944421553906293227005841477463704626298154406400486842750800559272110932988480816422145499862436226179446972873432070675895986990518779143256325759228637338095339485205070539506166702673381276510358499794501978188555709563626603245210937332510138706135157647884480551247221718902638406353864446193774283737254375132897414927950565246779957703410862979650938136198851411719256178336098986388215539012779655396496075819830859917818723021948257423021605638465703691591314537376053397148928782445196610554352666654806679948689538194785374496647063522486463032740266394620132314259637467903752871473187150133220298266503818349120355315873511866633652171879686279208499778497427917905824286413572919352526883751153774190232395548078101778576114485766014064789361755467502446718294324492459226395335988554081629209669665035599697252104362528911323550417961811252953283818480412475674132971158621860032854535370834564509443600034094794662504810866342623724709173809456383104926583324652808472956920711813421444332995902501117807433153586477441513561830240460587196827045604807269376047510487068511872628726108334582442363501669562247399043635205840736998493310526585478563923376249139344443966307355930401471780190252826990649058408242618347633930461938090214522002198229096848843807818752111498898282660104946672374031615816703485553883588156842504443990112133049303671183882064454093003153141210515164687613273342257655091445385719112356050926718370398605048929792427828815943427974042322426346345183763160302738607001343280703632202306980216376794613330293910174168839084972759425636185445840176300942032732936247118989533150328093388168983713814031813648328427712028849305566064104473112848309223953472373264935827670535820815441781797398004634707007115263343633939021596381459809396978056339991016682487302313962373290036362341013393084920131541279238606514352991071384256296077580798713284104851964438822012839210893724355021982678500636424885614504707069685658752394987153670070454747203261570802728310287807045916311897748001488848325688687175251445163124579969566941763889046765203450428171307772856773834485831165669384036265699664359671231679636518176906524968954917529408126511634590673330201918809311332765380838221406154913493046257008575663851325587217700360297649306142600380317566701902146052691346719358608085884083919424085541254946745323353341716997570142278836485415984031567612651534859857940517926588697279580209532177075942571407231083916301782650867426588200460683289987263719778977034695820176658742648150534964211713087474429727525788935147192883689254152925718857958149738393135269481624331481880263969865355122107183967099182937668550264017640915916481784055672020480112249921866094535734286839376634516038152069444757886325362634024880941681825052174493770747277538922741737022548850015815924298862756388864721163295880262690027848603968636049804573941771983166773372934481920186687469940557806667094271077299780106767299984607641904564762766281886855215862907224925839014543304946207206010236246571867327974124527749231027713079398876091365632173595565271464293114952751303563039373155874196399713996574424929985657067763716023501857796984192695609712942311816267474711602329151343242071258612007638336315188453404674046537819388753555126756760816655416583004078794227189082259142611992260007763002413147499109932530228763905012910306505502958037962331802786060970653174061605543852551359842210018383834189763980032692666134058358030878802460325133574190694589227474145447692920322878331610186559836237006544660693547827456304342970575344375181024758629885042290989668657591038494508660581853136754784261206230905355302727234939779301438834091097960147727896192789449309897289777077086423582789942272990203007970107269311731351025737834939802561908393568476469349520275636023439621669264423071059582268263830161577327127753942611207422017368893108830278833902930623582690938451757639034239307357732005584252909752068948223492202875535252007961012778166522812323191619517657099052721007017074592110046506464683847848129309058790669131569333302015179274516602528717950132071528701014696470614232650897111838524429301765138598510022313605603512722076253016763633402978996314063817544984771938724976373048723311913534753049758044311750106627894468033720905585792057540943033483555466673492925287509572369983115432089052424996861317421830929077089026358955182546029824801501531464028379435677667585573102742363064316363408110164190467050791583767939834777961211000766449628790273754322029074140717427707404746920540179977258752541249677075486852295267038258047154088736976936341094621788643692466569445572802275274020623193188262046490673688737466163473541772151006719207092705768585091591393632381526627364815301968273186677878884391954538398237354523500461861006738384452893557854461922767709350468354085842820236938400066537864112504230328335541392511882759142057683101563316308783990010947062048808150155997770036938957852319068221417633961450268850286301101614656122262030886484759505330803168931796629734662717389059590369671200190579145128896967727604954209896881419746654747846994584727538930587770518259920964458454830784074504736042859587117756078733323968189540416195242064205445635506742378877706362356338783845283253419767058612471440557994757974080864482226245238862305338068896885926372714262867357553579701226979230621458017715872782611928322771029871800518654895011380799267159120926940123809125374743827379171590826038197953316686435561149346497669690127919025940824726932647530643965654142752182002024636555487648736961464805520066594211356718161987190789186347765070547524259114279482451588773749152177550675339905117168744329925173688965164941593106883833284240349084260567163255503718160059885863482427453426731054749478369293849822122288049648312448587450763078045195197681926050269484040669038886816618461250911132406808342207888623254764266987172238354566255946725265280275820537199777353645391673636021772275647930058561816660910416118305235565757971875782333190705368259668619632801348426534619965179922701707367221608774905977413924844606785002470269247844005505067280168827383605612808798894422076925260668393603354800928040470960002691732183527002793909532004375722176551249965946515534138467563514922195659686388225092569273616371587192474109920598720804033535888440510076700325627428303120948913460824340492100460150876941666834601991473172521717317615685667166640772273618900797211918154900953782941663609058969773686237220126724682887456824658573591855831118964500998003068442237815426009173230320997247141820661379916076616580127595923878915376774788446095279898928351723071274162700452418657850371275708990623492120227375647477477182960442400246955760901887650222293565548455550380245511122997050726052398664914329329496196067575756893899251075167338306883727667820921938559356922029879274552818285327521364448461247819565775431179242419903127746601242530238391933063030035937111723002671491092590065101065715196512088405869858558304768343820827584648098739321861799264134493450721956821756933191161605753129903751345362089397589745056802655556810691951327189699231431313239812728830883155100399523486740827936609491150152406080192064679828820391364762351719171875670448274175854575293307137005128254207648140587446813337247436745099454005385818716882162925497920097600214359029144048035384516503670351229595051894496859082395569289249678094469637859442777297133555106714434842334299072110842443729557933967988679233277168755829898493122865941265182165377092684850755697632217214496993527333529778606982128217850425429655221817627771119195537240979752889896962960324109721621747431387477951238222310568206599444348146753554625893058716635752198433821340362253011138958139618954625090958080394142109239477591759650155215350949753255725136450134652943170848917484350951570294644054144969443319494848276279322082031313792157864463788464295844559904626887254748189738470874180949313660705387625394280569462021809086073195238049649364651671129047093586485402565410920562273105020082868693655000404986617307695091069352334022159337506574474647421767267350372431188880572147037665832774593495785735430787841636933650331548947840349964657379848766302878982399389972860902724633374771285422261445142074633852170862439225211242556447923657313490338839937293376899089196755962852210613995541988053863801580228389445749842692957444627011246167886140187696967349813086588859107624336007860060422042964543189618099977604532135879713323197484465036966954226844901560736997497571398397942466204549831379153006570690703525377220571575838270394177783148848598244225993029435833116287743009014994275831466507346853038029451606041262985518799846731422994171737737989942309023536978577523207864619435178869738911394289340522016668901509393921604503915249139918169574181288771642716152906174017179255975095652143067042507396204909580185676423930961848644039734184780789121429708970323139547980240770994348908647371372183007206331437699017079182037988629732379407838459913215722123554621941031183136959122440594996895177182051780626268085088949584168761489821456187639023542499191316190567116198659550712745457876952779480651529873365871625314786537987948425514615011172713794858027299971357358744335328010433724363157701588915660334308830111581464093756195783841735746991651797638333949266572790096045645695597878687481677649856002508236568889828457679849220291260835477443711802888958907161406379484391921590149294268560491960562952797115483904740311936859563726522114475259331882282664044571820099911383230983944249815910388910629932051322602969402152735452835267168521645235381470503185198899918547050991709333673724144761775683016863013723673828036501987457480836579073469483916798644770025606220875112889013165052408081280317658605041260464228618259459198646366655233415014896306739588171577363078462143744395846036088357124888041880361453844702734224784047392290222446297489063552410624538224187069819007902907494400229708352414949459476124983134691497376623575461840923704106012989484530528180585443299860978183247525160501926402127607442544050367550950234014619894386789721495983271156530687565763330336520914762608130355243380891163663162550413077913196280025562073336433627773297906442893896385773177156047762003103538340677397866532640997477156403410097963913029786239018590173328009284458839190026944045251146416052117297565821455020235608140414593296617493120999343817386075544309672674629217438003104095506023297282250286396278459682418624600424592215984850234970898045987868782573074499501511066100172513206608355840934535400619065161488388158249195593267704621641562909158611379087017035487131784407051178414044038878752819189720270368811423413110922510402446020400700387744183535592837385800988341680061646673151483292484498071898814134059583276580320737987350606150971784432074548295383101645116378288053915604313141797962104046547094304481171807278960681293146478353557016607434316461489509417542234898606819270855262791690187735291150698057326924334076100955767700977032350237314735282329362120557712494329895607531432319955690441184897188836653727676102583335705139604257128979250919610305768014376748526595798943528145866415085981124045626268979084287948192406862950311303167084208084277150571343508363212625763475828240584256009396956669094452862685747901315177661862829462286456965807769027440516963769173600642121352474493628301312625840599737105400296600388628122597335615302300281168893656797848512450610263264910022002523621116942660909385452559537393600851299090917709893513331714198235014341306854843501444848171854787233772017225518412022041812666438624853063188472622007768075903013591410939501243854803547489390146193742575597578979895078655586745366788386683705876303900202219214369513671492055679685071107201927165941028857294399852939420111165262314750441548378503295902913311054414101568096509846670485054974021958856909885438806077268501547756544456786645903413325596556694900686753797708695728474717954941228151429453576134184474321977595842845304606123770804228846602582830199355079726413651858370810021868749346811860224690536727412191826731930702659294528434287280856377938234178187060712993792748757742345162412277575838378420639697752464274181973590538866936129415398659302214981534915016827345145210316170129275808996783147599598629115474669047652914010302464163772729903583080404754171409640011822104391776651300019497027641589340972854988129677441188528899915041707696699871492319077518068934751805588158408984612881332359566894373969743807956535037845862657302701944326487421064069876607032549532503661108582874703128458328857384537116885597337441781020294614806409254774723229139757399370923585097071404526905681621962886262455792859022528523358788144915570999979825136908164395505081131952829540919210553205458817236570006066488892505200382689266300561905964243615544247154113100689012359903385138568065972303874514746733518263330417718155762654703510178272476894564989100487651084457562218435106059694663785292500065307739583990984132645724056536056781966897010353936804528372756258851348909282897717243851318332920682858966335414521672706006993658846049705022748232560547287887601347309207075456264290450782155275991110353360521324681344942537892191232967459108183603952907259325210024920914431992082752645469307647895321248697230784035546756641729111399955828589933621565756203186382018233108152105880052400312777517710225503771303115074658459334426580353891578371779624521914049992736970336169083228725910492938823665188710159453908228985601665569380926781678263050712871128137050684239803443669558486553568013698091175377682461645282110819648555090224820414167355801170980181853578479748972793144409907864054256154836259174459507585036874952517517339984136437243852572462902742187621458257498095568568764667492413885245618419093757451783889275389222225927659124324953690376050421193091272232604178152864913149548203112944530310167523180663675911393332829845097016383972623135940666778461384805079227980854819710488359544984280043807524147306161433474687191511923177207571923517256881581432627850573112302605338076193661034348242504516561339390015434740343932558792207776404703632553736255482631646530433707185900663998679836287967534091621971671488178326867814427750448302608460876210584874510860187526543475368581978924606013013673762617867575248667342749710391652959054623566153211411489203408692135561419781691351195113136139342867025358951313639615755992776084839578116490559076443354211027641457352042726950177478339714131536746953531103699497733009422384719582642699950306193260107812144904559270167062566235377054511233692437111806650475747469557317674377502358218906947577752876462156832442900842042355521829204438302103807766305514191480994648304770841046619912013256017477501659146135164872499392792333462313560322752464868359857224867414040036587389050666092579685169302839546003767472778087065259133233417700560685769256564193637150763784281794493849041121700268376650152421883640632209369111364302196568155721809927137496481625460191675869352695751275437595718634490056580738862466279717841392188806025502878207090905791383559822254848768808034247366531203088897862564768661817109280717598409206559719781185064002218230760162959882395627601925524950692949438833019088450539179551982121529020616938195409328727761221965190052580718961092108430178663596864116153515079439401797734197488652387089030989791260556546878370355098543824106369541147087597102489483155158880852600834877823992448455088977020814481192154192539700694106960533590880419067419467999178630780067330664812730147552298290885646934819291270149590845373550093876535230697728298708286887240147635567769943496083824893120613497512574967108375243607485986076961498850653610438897758748719099112643214227536521731549892708908704170200253836117605474358308518170392092110581340551464247191785231134799822652417959538458602017617634263307903370362390044722124446769444876123461596780575800790831255214760151214596680439920551744171961609460182531232863044499187013081103470581076407810265276942041915429330133127088440603699624062777728980079277258088165188150872623995306269360357986313555178635459296078269612896864136485224697229426523185504269163652321480714566340600477028325380093853649889718935793016620602506943198377158793784226502637868264366664251178280246269665659271674207817320482637373994808330532232686545832530120513476847436443592412491391821921336710276217999705812271082721325225590966533456309672998948077260888223608809939808823362212156812292208421343913610699519259060741250169107663471038546680490871335146957671517335780349052993916444290330702617664351339728283936771248032157591148263152525064453459199767904127709378971290413695330718925746858242717162344260833345708232934149654879846571707083916573988110553708150021858793438293684859715452969281723513596427241104576696005259714664881041591483517983346637994529630479119489234152339213108029409108646500038231637439058192761631357658871676038147334522106015459127031954785454242549839889368560964941036921160836971484031848524754361377930549630799390069696818005525483789842723253328073796272965887196574931821867890014790103561170783451922008983874954988253977519191195120163980602950313909577039717193201095826483085782615615617866015494006414526485500288056600192318330611089947589532729962557914118006520916291177214084307479768728074277508016214668782079838429041619495615178643466013494098431953959037790752011469122459734784660179284502002375686816109912647103830524466330848206068318576784578204525983266190905741447406545160924696886526650360446661201666491626580259740616868252048203195184097504774746645685920021937688932652539175278322267847062049412454865264455402905800162282829266872421128972448359332974492824666478887021617949345830806035286292298227259274359194154753877215574889847881657896559415605587556691115448351457536408930693818817358616071692148591235881325039058301001920899172520011353886525948208815368766699335263563647011916830080933487970093943991160448786490775612626891285800306930005888913088310389204619835541817642281238584685135744261440089749998887126419018807885957461922150355491835071552218081128151685130389051784423966095609920102623884470766876185519786571034572088642130940182835803058686895479760609353229497891528911876742168971730508163840444138193552898082369274569697982130325165265899949105907706078733003668413151286211234885082489282429691150334128608735098405619644125446980508551044154608884319430420992591399103462935370726449382354944699407610379541714964467916354753063838344646918729123934029375949135668499253441325951296018967084909662224923234036809397385199511145377635914588436254549022188480227943420235422495659312192804232143083298472778227265599429601538606079787621514540280246198517427363570660030358470188432599487852561335290478380181725588927761436105025785444766730343232583148434794895952913492036862310292407365199074594490953313170268510874807773089394177144027069640118187373776132194048018171310140771738730033344588549612614664269004779062017312464199813668008591613214521588755113657313266271436950552893820507199478437462123328861621417383736589276527494122694005952676633940302904990993362863874170658986910037087632349372367036648757985929564367100538408003060697691889919014033630425258819556446818023537608137383398617083832268723351270459760183851161355645702677027796550357462129470805236343838496724858182708959430776730268273309434395579594959852297809476143703214590878406523609497043238969786509226551807090202101780856894624453795521440920464655393397317405162620715140457379849214410059423478059870682384555962702890726444750718656024298258254476109242419020909710823097836675789935743591317115566239147110327041081203305445402322996187269938043639163286330519590496353033668990155022958563545987354542983881932466465252057716498566746914964919323735157037361390531401371052473846146491795066910337522228846636178440114027613918839862692292600199807113564187406228832834174558919811581574290806008054993819724442956810799010225474322622038128454348599300022860085757077338279397317531223974090687953606932093827033788720796245139559068840901932511663783269527422256337345340857437556961764726710524689123228522286278997447104648917023294254842016726072145766878135702590934042587882413293025807223499285763731585342580220782686971962828154860487192805691253714507381452874577709157825487263834422227431485847242933059303378581524501767101185361757993486494879256531010623717943553178952616469970584439843184128282441684623703231640784814401091471511846678512501192589421100960484483074111557246943276623422739328994734658663081599412222016218289012668177078330930475047503790771649464983129017463704557577180232948472265973994043091951262514313731026589184462012320147765372489161692353484892285818884284467921494456971324519544865621363572887698952555794099800365809451729657253609208639854307135149419337827133307633023847171461264729631126954263792796491894269653954067888564348585167991899355901898037921717772215820833762602993564708626658380148601842992175474872526588969396763748212972583249767215277856221108261918989090955242989446467747135330967865077261583945667096208855531524201022194051003627807662376877727181638745184555174899325585621963710381249555485512650765859437353722442230533529598657219390755770226144853917228601457763413745356906533248028927090109587816514910726299805497362038636073018231190015729922419913994409438707634455252934840461786525961736120819199690659605700904547069180531271118078091819793025256944869349554214980021492200917662757493921755506842138752374806027897485442850806794576559470496706543207822347211388816453923143836999431242240526515009632151969309055686033588869280063906298210604850532560752540837225081049067775731605257934750907079047676925337883166977333171198370317331670101558857088416314167363258762191340363487980346279472710541160154571890644841744732369957488722312429153459619649887838912859248100425051639514519167657000392570364473317832555853071904181514655225352783221078148802812944428907244472361366000332593399546576574786835947830387328405559040615644112699758291180631170319432389337949662590796330460028262198359409093802253648059147754968411830035456089236838248650805727440364062244838305127437027218410331356745937910524279172698059374358300614329300993621796743692762693832863888427658230680494375820670289895680605286394152931080222163449215644552744707942051718003667162340044145302092092414605917889757270949909358533484132814154557536503402732743019230127498499952673324713194446716810595353792169883932272671244054563133095450051295486446826032787773171586101551855525215344069751613767669764768730633725234371055438882052877760418080361819110850437473669496495949594014641447059684594517370124745605881174264208682762904999161268851260983275353992065786252667432216762067621273988854426461182592992808345154573077045376369903423368148368857029057792675676298810366830427056714729039578365736672747186802661587926184705878047370240709710874559868236761363502942429672341375244790971583086710583110517037636713720697956958716911482729598730360739331933240772113513730306085477531507903983101020254863400517440426559781923494925939838490747910157806645791456057415942514703059975126602459621798919796684505392293961311720032547003302447783292294759619235747679723973730994265903115562752901767794659863343956070439776191562828356126677719577177893320954557244176053200871028787446553357564146124575328494038560016596004594304818227240108785150038593967568532499617038458728358385723826180202053525531393097137232476908333885449678114566151174045132299879930470913394304328586602443590015942608627550312107093338607601311232416683411781495381238722865951409144671427199341535359213982536344640224045827007830903168160768214170931912235778887518643443139573441191218403688006375821051225335994664749566514993809606355671929380054528274145254510304045431739672787954999664819022363186345566274908525095232780830005770504053684668455323893253557568903206735905628353996733183801772771160870623629695487662036455997101005493005450387918289122287208665238560660073600216632978166527218642518398340582482816987745366395219701638201301749292606113260698984819299033711323698300820881280946979081945748836629960913406497980861909454114067744533160992485953580780676987906576401116861532042301334266669942786249526703069886941416845849935815990885309266655004346624940332817163303413369276289501340553531706716040026320332107245116729151666721133656590100205819804651628698265494683285600429256000044806501123289539577442718528112119333891638345229018123692213800774545250102724808853390536950914273903952578405038016727924085895406700049480183008544548683953261864646966969381047036282534224574503837655091143385804866644924167278042115897168525780848747163230491413349076157589957335778155330726454951299103881279844044519128794622149729174689450505386445787674264984789807023616301773954829306261139499633075745126104941690877954942508620326079175531992007200918343011171173017736663530789969637737700788181690257384617186474568893236572607172389656769068443153455147928696771841402353972784720171854145977415240190973123133884125869708813737030093340071842775085453670912475918660345412739070211251256481025153801699855518585126527521994086602640194293777230530034000088064027556084818765723258532484063354419780782485167446729766356789458930980512665398017684763170597715016316890738572293885091973039842967706165591533867484707537111979543557870330796475868452379864013257870532773571399039571985338033134927170379168980978677878759498877419860354778128546169967387769403908288873292171573911196810587610693882477878011394289843378174480063214236633987709915227554907308519436582411190177640267023764984204811858954742627844946356647806848035103552477839717950428733339295050370219988672911360393305217402603369079978773281520967096066490392266108205468707195518463163032834706558303507121165796160913415647663383036686936369289959468447933786027356588226333643328005972076597754923116696733424459919755718516167434399156748977908649729544160016595327692833359945513526000477199988797206200151772686628638117453203409475863357455229667384227531730490951494435689986681843097873322591232137562197780126810695302715789347466506598043235823045672961625553957533043302220102261906733538037865536373953768282544561933165851865332509155675830064467675752132483019359082558503621425864105541690262225869088563707939075584817281307854545029658461837621773135706990688646076482938590276853936240869776342628157028633956802321053477779469528866115142511923643520184857692979676088261614166560958814027145754634461384675656552419193119547004162108815101701499209641576073947783416874960157766523404188483483103027889016296943729913852466202026435832897804127244020832667042599383792070349762901937444976156443453236171094160368851100635873071234327308684988760231687058932894220185571125092638007893244425815317744782353233756499306081930860242386764297557434745156181175975118103112724162656702756502745728726854815864169183001267620554200886535469971623307639936749652870174161322487644297453038447179960767348723026379995015607904044657890881023395087402655740317561230149971814692650587627092454137917763474231339014150081334657742649842686825167198977426557143376069733013124016366306486067871527553276955799361556829207092031360028105048543648569041420524648939032693318197488423391181210660473943612048399479311957262687895967191961985241701061595416549019304231199404780112354675806713231044959450161265254622557348047654413138409820961510009295354623283072294601216436220990164288421148738882595437333981204208286543150818955737092586543540105787411407041583005031529400233302699209039634759414067278010129382593960119095942926288876783212735370445536804445837071083910478822110988231676756833120371271985863261714601793416856623676786492870483491309557048958357655520988810116346250711210809125829478989087420119796064711393035952389859688634593277355925506386561541756309347558664436610759041884274759974936512463376907950288480664181682865761118017814572221061485802626638859119275414705675775752191906349785450858923741944134087306803063676476625714037842516748198633076914746480405137263581091928686431729273320320583747507569745190367871680684279709559307936471962731097854655645631057042383718490817665904309788807835417778023256225963411825937943645680666195686021547991898031225257943638155016760822742681270966556945252537911797369034009612368387789602120375012260383425975090431718736618634133326179457419025216959567486277087815256996788845230142188952487614414495985582135617066294039338807185445239814247848513114846478676332638197998303763088421794626259153985522047765260873418841366591076071353959285452119641864481912601870297285586681035280518752271184304908378614988537194913296502018543908969036580140065659763282215535072561805974546160665323487833242509172511701444616741537168193687767731614160588180306987896083907848057353409975036119651098294532934461583227704369381641977091476966529420863403057291952399377330323669662667324765333035976786971945328911477737643946397729741500350534488642217408001986099873121827761915977490276942821777063081628181063916871036826356624801238138316268859185871273097943432214550321561648927245273226147355819908254503532086395823290277607430386102948566450082014133785866721818883445087184775057680015619241028828684967777631040977002155542444504724588275131513894790977687192037583023370033037123016096517110819832007518383095829362165457029072699263503108042476119682546758333963564729479999731782048806084727698381853270485730525127336698961803888753657395470700372848287082227580680616591757091975707263152331120380734635273405356486356459893465246864381643982329351748655784159461004073559518481160831785389623562735710344583932485591391064509610634294828402417842080607361959168315569755523009447361744542435835167361477900701094739763751541276112903804292406775815504320245868182116585086606693613144102299455929105267427823130604898580145609899254102860428305381211088791482588436368520002226656719630365258655062724464930809563137970953888624915723573171194879418150915184524528953022491823569725517894846057477647319989477982559349989300959296807492951652518470068615098092251438868110064873492658695118804436786974630711611072867388261088297881575913590579838374363513007981721537728735903267830103562041559032062598783817005794623154064411793502241145628302278373183478308251857627889743712606341500024179577613325231641380184892492374679199376340086229641859275716841838284595326927286892774278117190276560176847144263584749608665333843786378888218974389326082983453152009248301477436665767360500383466871331135885342354860986937179294565805235442273364058072592578627914788814178473557345874134080326450397108686434040249377049262932745308936580173887900746024972514800101988201417166988289458456598599497787348349130901114082848116729247490629754553799873517813570474070952159364422606026741843414881478965338071234420260708222341546675772123422722108535343281255645259597375701947895599461348456637447618275885326737983915527314382519303316766210397664504673193903091612720479654937473910189174512578887300646015195597818834067701219376295991756118630599785376545788873808427556787008569660031196912434827870127342907778122798007435672009880093821030596525516067240024229256451148256242109113503325625113198234702395814489694627057133068853766208553167986374432222212609791349754535177252774423555017537981738536610514654082764174757022170479843586574191922075531617621823204371970778358129562565432602285818640587471539433619018126998982319117078002542604944207015549376632491772846267429634269244713638231193250085701916291964221494054780219991415812912046522600572058172168176697289586667306368083739276265671284569714767841037800282325351953458816337250913635877453778817769189621891577018323825357969891182941423445046448957990477860188369747294665875272752965716109478297912228445360038019064028267020820520271052352673569755037036616836720099159954554236147076539036036754451772091228280392424675925309359942631941120411902351638826700613025142542595784870530349512128684716554591972358356345060998081363115058491587666306435179965390386708147289099387997527959721566255093707712133568532394610784600212067597492812702709664964300104194981391786534679969031391024194346564092578497339189051997387687632373966767160734902145189911753948722109562000754668753561893300062573411951611968192427709546035592240132785215807692126667999318132207093094352769060186594338946567952739086821675983041148782007720511177719289676611443695462695606465337649281247342286949430274958651937274553721045194380494037350408543846224244707864895272079779866578544348982377663153683161911716764929577254831196108573501013019256699557716184363024698355246676584514828322601395744443642948774750722421891895494173169957128676319712553002071327317300041410017841156668179498693984170624221932686526234080971646969536235263243528830682940486907406172813005829266004847207799940939350790880786534005517717854699497972153328834883223583352049052928444949514110309305969546641722364908009567514940306682322818830677185831767906221299946118491371702218299121365147532939872188981173138040740161164152803462161628617276629720060094200875064962030265791492787588842308293041752613152740804430662675521594031623110333005659772145093271472860326667073241310430223209916750467592299851099175718172256730737840272643862528125089102002788092370465403920784292479273591464899038123931573855187613929155676295349618973260748106140631315512007300566165116778161786438384880441499525073914871197633358134910414429109394368143094398356336377972980815138523177658999396857158756376800540312732755754733094826375863903427039688513481379113611442951833554996227082419136301674526282455135043362737869601028805259684716839809382078031633319983470933103276094339471510543805671409398757256070274076493709460214116499009466034660148222932916432745313962095119592440711920768201462155652592246500514041159062737819164767632265606180573339301389321433244254888029562357620032359286904340199463894247194607410362623250028800396563123146376679621891003816451916364179787793839104010757953464773835322978592459193977511407949132796543088162825610060311971610641500382545670282199287142292960981168090869987249854647219998493336307887853462936459934556253477159949460730197197678364405057123963509581607701190735256167390130474008808691724952761514696101528664629946546764383779672377655101467619474420968797775914179377541489792554938809817320606742670319432646163029308177698067022270165991342583026317041744566587836193251097475427218737641285299902100198418966278638685916956198297932449105960325090833869584171556906533234479887361228551599846038900764306135925966641336546616254799769236435647896493030517750035750161698362056472773530343679124163746653274499688059392296549138049785654696236211161057152145712721244216779327680885364685532022382469932331253559464236301081776962573255027662254115125983160393643108304700434946852598678216482590832052387060275431632249853123054100717985024767773429451131395297998038054911626094837594592268997538292317797684387405130689316320640603081218309681507339262346367248932199136950089688102569746780728764270015551660072479930694797701202175916116242836338610603902891529636930703936653637304844609748317112236255969330306998091874717377281263523525119256366353775057534541588851274641872049541066835391345479764251712460259675298522908772356555710576151766249871432435943922896966929458479378006537487692009137909597214968419601587444806708276239815885376253811974647655355543468283862830444030985395275786322573710736240191104705133132309197720410802359951161378658805096334199982876552266593082225155022931431315068474331508708457554512207810169533383046804108991984082604967690008189716272521896845980320077019217010099197569195176152020991474839717781733210233311821554249776477425749025670085216991068452506883110071815447254691911443704434089273446604274281674997266362983523933794173051353779149059388064418036348320836006815571852807500666409408105869190978547500615444190719785204846837433066657270252258357415604428844320356159400083289890237852890282868039382318321534076243497977374421046867011536767694075610526449052437654645681959093659003071759937252590225214618938870445538640026998260713441430559407056846227067857343204263342136539793427248037801783732913371901572004263986072774519493285782879470534845383180290656084674689949271278580527520838442057285558564942987652830298725624672827523923415932521855188013205386854241065138105350753801907636103906000297332788929751829558055218124414512057987711252567577170151801425862533699910852771751868122881951300436867590293435284918341946385228004658508167307978198242828502306211783627091395951979086530948544718260273449095789704288775450886511014926969474542939172840618447633923787561106643881282084575572057832597207391404175970247199543831951914680039200574788432036298336169697144789942928842359598882456383721241760164105860454278611490195375173999913267552377690017497628151827075545186648550188044795607899304050075006912631941709257939286966516307163177604292787016491349959024135577215406894892607775896046534243613990303317481421244765616981883501324217740036154407631977141922087612374580678932750827189842510212607377752268422985085138843802226215873762536458796791078044346003591630008711774142920093906781457854015774628239683597718270980407209227593201097542337752053698710523300434621839462434091527266729206682686283158104781351576117694564583960053121219729387858615401068344150801350409260770803086055747285407454999695416417263042207958934008201030734864602320047107040862096793864360522793420169093447724412611202853105912090571238993372739164383273763952596701347194790459781846627064998357900302004321702950387930126928878337859343814539559149528178091792583701844021101266702562728139682001767649455233691862310481280253106683832851016492400565741125575619706745924326358104390144780447748748822890942730204541198132974141706667001076713208431307941148381074723076208412844816030442725509384591231465488375422760974311554097330937268013276131118910820898460551604328326898794387705216250652857380327465440852659212087052469179787184384486388682953897487780064238447133121486589146038319780405771634252363333904437118269780649950235495162634627601901184758098826797942792280281232231440283088486115162558894948580948464187783166158917984075217420742135854924782589744083576300322592001523127335447459834355883190373777614191665988020876121636350820515621288676967071964916262034125047692432582370918012878602584361869940317872693685729097335573568133911677692383597632393241702971498386812572627385335658456701213544026622050405503668244679353492642699981261417836187110719596791053501577007409492794493481456071561690460268484527938471616857899393580994963851203854107825114651062698791469807567475635345722600650938653383764388847402601632844451334377729411401151421433525565424267169398808918714966774550829534304015458362436665171126090674126748889448203499649942979503554125593584819531837420239360954822771088322090278910885409870666600425797813927129479785631867105017681375770833867021152250025610284257135748032364159547085547862434346862598965250275565581626657452958126377896391820780874207727988563221708306195473625348294821820183640187931166175862222436237605249769398257025099242291277926467223250715233265740425088906604445657967851199315059585515469582698432221069711670430920905898877477002627506999223301068604254875470074008254389793841967257857141738794356021216478380660218068637387001348221300509076914390814662610256800080762256612953452885387804722085126489739194245425508464816832934076945773725131419926897156356614782635933529957370630541559910215092350405134560396974255041423469460091798886993267997849924366449152094749208749234897649960022801219128411263595200787480534886261127366532996350804121982119885866851624801864675023159832613949681726450623239565228492536810049214568423942681541156669635377435956651700529118343764835104403101304121341828215293726493181693015399336136328596752687398379860721228891023970484470598926553730763735759935563082844899481547521965135227716582535677185056040000708720052947892479395074626707534265235524411838809924548945355316024260541778420679714431777849456938399494856012931651958299518899072439656020956528077120750722609228890248510017508230183644734752784588743301482783674660470297194263933552261432276628560264364864648608496533384525270687164055023186095410605017120441215733364877689422153014910217951666318076749216686947154836814307361622590822112287694167001061986319994131023119345474253942474143078936207285710699756119815536914943165123715683683362474387457299464302908052733449838903450267974632803080470258500188211090496487709292824669195119414557795166006660369710813443300465271624837879900825462266333634178043805084082950678130767721613318341748126010311756740019537130804646634386558371569533615203181891871512997155190509759906206347823104666822709205134381228014955435727166118253171917456257278984829590787009841227158340435940808342351581292986077927000390593259484449585451877177111696962136493840422690116908093915538433754555897247432151522657362236375403748611528564245720439830196578411385786372261753657123327989762876221385511342665804652758780856919794027058832819404036391243023747615058319129803087364819059745346927112347120079068946222038361283830071195411371266224824923774118371045899502070990942894698751946173131254151949304389512322901707529441819133517419019356948156780824842971461827110744216953919704584099534009078532286984337053510932690314726639696437901674937534736976141775571661191556726962494966627975442107696786868350940915413353289269366208675113216266596882472896888935299974572154893466036606042038012465856773908761125518996646002512762210450267314747879018680974923080247561577618710101655412853393275326050225119687411324023996864713600087438812917416981468099771181768327989293977334631143036225679828416102921695646608142110705004926511447555918840116157831007400138959132333566852309273334800551021379332781596434939542707228467925190602180126709990090743790730450265858769934681982225304237939403471221833021528087475125268694925354641619797785632101396254045637542660439697800903358804701508434154973203098280772605149144185411842050460594682519095547636889220653361519782288041121615823748266393342542409848596898344430534671480604337439569133573020633793442810326543180505988893526064547387981824376477525905184773748316113304016223730095924345027391393065507767440279590756489399107240000421683728334838497650205388056127789622469476190535581340576759690185473535270178240900234800800702390553880785414895105393299039871870007707411994976667761421634752362480882520382487154808818687597162183720060335652293982251050921566224068594779625161343424928047870233332210454302268285363948495939116400683505644184237224176604640229599454421121664100077503205451833147790683714814530739220593152109123389654453118748532301848545618032805231591254825878316788544672513527516974175719856677429732335846293024437800387145432874465755783893041671015268120085656361405695147833083104950542729984722649814365012224413253024724852162100251804562390322674447714771008794395962080765489804814603269631896220696496816600414067049289697288004094906679790893995895067523973459931336325286449054095030097229035833679984711012750593233260172946483166488261189038413886941011462416722736382494329693469319812414555649225576543898378998969096411856856482703672679196708519012890830102222775047813849705070371098382265720565808892990872830843444337444361323605876871403918572029983711863176422908461360734401473416156578337928155456161866297773227336635969905029177672700680530961612466073503956855214430627102400760347419484243856414785841935799277519334321009514284265542306318360389827604147465278301822411177019805326033628350797471477059163032067881728531610404412374380142160834135728637608682322192588063488293404445004918419150767442878471169512959623308090817554416416071937243282051065455229405200698956004185775909094876695235993763532813964402288431369118880217295001268706963627349208437598701460118923105131828894629177914087151597122700124544683172033694758599316786721130994403097318056733082480858978912146117627078027440380590150361282041637022424255713144128775551636654584180665222572328437781725215017219359516189435364881206224603404945957919587724152518961235037440802283702262702727959431547196027992899374712158316066524966225839701550790850115941634634140052278455693280372909112487591490403696393448463817280620217720447207935380064638296516514180275843735697184262289432376095090874892942259016721799264736349555613235334463115904261920531657920217513421773952555874763245768490984209077689645607837715160926761937774638527123079249633810024345171918855370458492203963810161953058996139877264338485150485454013135516604285677900195533361318475282383906733381146040290356012994369308335096317373249747853772871036166812167014125989581799646549076243283025007634475805964049334410361280355777406422801056365763260157764249579451177493380587309509770201701510440626995292498224671246422126339104875031396998780255785925306261673336300215172854919749260378942613995740411643336835017972365797709652421599297510090265250324653983935974347460149142212739099117821113307023403569998107682062527961625859423075592603742627791665137101193873548914099459030818449705184760064003566002656519093109170632019926074095831853629132077338057791676877230265860437658890728379443755855773824767269135930869393375056984980447585971042387903152492828872473386226348656901009617317992525563133588597652199629574271957498529708973956942019763337454347677763408337825962323450277171523030530631637957845158502379138581044510383314916171817230319683238194876898593900502851976914142809458523988219706135979163652216958493830099732896468608696538558272204583106657501566530658218115331121745432828540584401624338694170639396564943212379548995428665538406739478344050818515054973143276180445842100091250871342881964633218833641345479267775361660162380037934603467017969460391175966120939927747040882600951262982290051520082214660242761676359284261755040182151101416730753355517344311728277831528554905299388269686834014367641129929222822993306920897626235430856511863400062735346460403439868421292977215143803980638812982723228272098330258319083686706515552030393066418134400190387662210641759485721986035252801757433861470904465224649849618975976675643917645643883925160053132570042070903297439912801028276259882395476277453335136545207350949695777346070195661498273233464265628520413245686788168235962701848535559463175072977532772639234756625232405326692876244388020306197831723852810447616037490643787054679087988337907610702532521582727722489833855937570752746006413264807505702730011796561486850037296345824127625310982281973945138916041842846791976202856748354275228015916763420237900601913517939765815077752116793575764832650275679356014606048604870861169159863190577344196580182918051407086030019573700807662177268539827091664612001063281202343145039043421197841185829704437724162395715228819691489330161949274007527982352469550048951499349357322535641399407204065581821754785462303242312832366215391006922816677016737761396199461165871313785337373168992025606092206743952210501703799604675639679353426716566253734619543078503743761127224155774645650915074253858403771814290185004497126095648767643230171878897161131686940315108056759436176025000987688383063166280918824239875188057474550726523313697774166686359919484505356476582988667618293429793392928534979787679996297784547504210792886261780162528734084011857600223159291610061531957640359416084613359963444083843567691852702260650350289517656927331791813471587487042842357578936702985991980241011515590210145213845885867896466125991843090238542394461990644805922279155953444991930953652294465206757540397254694345948345350773896721191590820036598855363473566701126110339580130306127426649044869269939689128357684498548701515159178608304048241875561954936675107073405133998331532266717383731481189056380856463966185995494207478750517548565795110918791250644646658530162622951647317821589694120508593090948382610214796725189370389706173209070769402097485965662860430050295720252303086472514585973054245521006319252754313641109908235514614280533645317052067918330641520797518601922577632562800809309566958574687125282256880086622558055239624764007768499432961889407006450388089393549911673865241746412180617537819963810154371388267269765245002552645904820631200559850105900606862115972288655767166411993276122735057675497747018702800632246454408222162985797128604501976248504497078182991187547091398748606128927612653851314667899078424821154521034311957650508925854528117290730296933459222279387035082099166580497395953735558827857770408797321085065194662907210436198951862714325329854331784268830418900039043922556191141975541908382638919536969476878305880539930829077802197465176774660869663886772986477261115463956306911279425955985875296548572557972599800647033645780769260841959457722342387313636983620882762143555300580575958036846359166733560624151431221835798067381120195342979222606397057040488103906254363626295024860292550736473764033239040636847899459601399108959072430621289717405753329034352849303911147059035156684716098499278491579976734343363919709055508650102178694924330172491409058361487585537695661525815016227076701593054499920057292135000783582773428051531547927312153652830031989055747206794484823116237129575817151923357048146747276518180320870487823598587472803654658638758678301293149203861185029152524346389307607672162882520905054473071106421425581106568016565755334021111618874044353552139678414753028670901490725730558391242675617030647603621945355058720614939405308066770426318074648586801391723959293708785101601341419780016739912442711770307577905828540224740397940200891865437851520134543439163694719906390606971845832994666647276911212160562436172546203126176856678024524734260812141421794130097300947086878511249898051181649831251657909135915740250971510959299359155885906052721720726416799821117025891661829495524015472294758236418311874044110035733895232004619266004074303446352416461852825140007937868251070267867930625402714712389813386016478912031580736381864685366681165877925183905012749758368965313488305371794341478030072313133265224557617449736122575001580472567487989963455631432022220204152893758432164624113817221272043451107228454341495964741741185284195431109674794778838918486448924893675273620811322984797366946368001835044046582691614033686929235455851688389963929648056229203345809486966064781853487886716240631075393915121883797435842396431952184414173923773573074236095120211211250525974502146941983865301891838136061831924578304230396562231359647034212501961669163390484187522588420717319364671555193148552361150278559047000864151440840013727881685058929521832121679689123496208767132927828471595024499447517726832690412195972985538226165604393957121897642049593146686758373520032804443141628391907609546142431598599597348403702489659531031027340343785808407402013580861396137440646407379498614499169729408151261312841732843642863254993490659907344264269147066000975580620813179146126731193493895151411736522282991229834070482206965457015670800240307052045931092619488319836662499409387959293571194621047152443877144708700630944949226208681299550359577036760246345770113605326787672792965997985119056872376511791052583199335540056346778970578730195201694102181076243281360216864797762092299740570661283422046457875027245387320410425802708365679080563499856113459160182917572627004003432507237381760410073272234461765891053973043214979082403483954317358938274690644217232419763374859481792995825591710680226077469337700644580891277304317106835324233882570636762839587628273688143810948273579332965605527851595544051597823204258461966104758871179344548028124841583827728887599891540800869086771900358015159558966166815835710128562857374052284743345304624970870171945111869620573350819173015018320570108454617935570519700941540200951055669655065319937619056609792865192094541432559750503136865241761262435397162126400132541310685253371453639308317850879536046355493948257882125067411379785869010597833150822541631425117331148081384857351174748328913838265223256120168616050553584866516744700105773881276627058636783550203862639530376508331493410259967282379226501469356775807143274382858019585079849337717670710278011582208314764328259332694411328230764543351392291108020573057287861483481662641540525997373002488326497931499008020760922416893256994507313343996219048473052534022164899082377456786232851212600777340616681773797876823580649592536145044847545766940652381137721076051553840663013563029244241894435522592050797636106284922868787006068241680205278591861717981611457039561085689201542393681512333226446152117183932141128283537153598122939818504558879982977597712702520678576122670144664704342450818398507884628071948828687383393649390755446883264657934001699125584932715490757777476456253750738111152506514589468395562411141270821052411600775732842767797273621788159985604678113726386865150803666317952800684614086757054577758709716211856954829189961700619668756648936103130555371377021450587827435942089423115364901773364883020191268693400809950879286235172112153903413560177434492496845675361173676565183488043993267389065160926704460401634850799443975789168481038786718824447628683976282976662211447549607276891373770135952792419910926685605248415225248641212797939786510167183989561410522001408088337420800377351973855874832340694622229815481067389596932724532811455950148494562133515726956312009873457097518630278747798466495927358098912673978017410780637784370020964925008911992267079220743396879769746416340449883126091558442046298103061290644205829410606008840084023440285086555164687384657974240580223943004231207619988109783035070101877509766035040475032992334472683708310399550973178961515555382525548611860214794354209673939643361035531535854473105428814685680598955583652228011320235941255195875422278968131216540962422371481196470322100311160289630193158346248790675672410224816908030162107478672858644505903947760274987183100894580888964876808306954389733427114044096983198426013703825309717957795645758335904128880454033875805487935136934236241813625088838331765654743501798736889473688143094265378130917352939281112014955805521173272261151063341883112614353048546626097308509033813680131687499067202901759547301627334038647314259590084160244826909293455283877716105708771600309100618648759225553696459698328132588377089749987684815082837230379599264951580939409363969195866262159680503092064804794039039860085539194222895879945056995192685264765379558155800897883198119064162025454876402456724280155377438766334749195507996782824691080884186318188462571754948379280422967253394102718614438521905474870918730940230630184166464065977179805278042768745859412074687953840456737937053278941341361693036478212272984923188014754911190020225585296559213316601620210082508623426677825669664848228661143325950886452499967448427787871863494632246579725324499293415840543321746080580582226211299244471294974705163304662935225593381333240253704244181446550161492632789968384715495160809130578607191950587399727142862796377898776442816427277042204296112160675122961112275047995920525578612810241563976812926177676244996136822110728577433802362447531744840624409495316390008920522641674768238611873386680701534343035688890994892957069115359027126321344921918078605188355243079845591116008033441062606988286343735417843542971197758192676343139724878024305529834520727635633666211513308356053083960258358831794485077040977755366289226127634768802372958699935962438394175050343216403271981125462803665585483197205676271195601061862461298088214020131480697784551097754601807001590757502309647504966788242900231642504705640064064277387638320251010809787549691391740091282128153079981498777462196375045672180414129924937342933145319660149159189501402339609832709843893931726710031493265392480495699638596322775620466749841780671990059562176302487667060062323563172664589736447604160673606975669663758291420192552593292410638113188708986161208295665451865188407707246510917498427604587276085248962064947377602965238660929483378316248481182095248497138102334774400280779143900524015026777397444405864911304097235129966719233630808646583662919680230721445073783308630439006063964952372634122591676656277976691186572094041429563269029604305981087915413449917099831696907409811467041402765478208106038672145659385357518623338724503261530168015795251962092852941612152459741841654821533285501672945654810910073728444739871082654997100119878738227803141785485892330751867487697559693399076193869037557292614451070337524072667663813530823959373002794344921938387687246153450478895202350345040799358485172621780888151038865932953154167154308821478769354194435180601399270505434562111802102491246201495419456626179051347770107537838425558655010760850012553936997708599870902724799080450727903207087598980556759778958561494834860573319346593396029101218435541163272914978315573675256901247609868618763369042437960485965655806955126711418596940696409023144067867816788164102883672509440364344950052823118030659821096274701961567133571105259331513044512973248496417175662838493768236310715904502236821851529822885307144458006802770195264453504846796235485003491028752136164105874510906653458625203751520077678150195459302570609588450219568925887870843414156326001659389255306137971083700324436907707394330433614208627338697558583118278033247314013762516785909284235446079330765739391868382147014537537814847143517137031466903931598296928634382880625399649835643510827629396700986878326553367435528587254716945669007854228774277413269515264298833747921341726275787735449340263974419002328909705907239410211658679140295807247980353752796930226990006801297575918671879263793960909742515609146798815527167785167685614216794052010258855848993914960554607566064726827736139778927247915291235302257002914289018634870334279186734560531721721243539958658973102362681173683250968501168906454662500495529818659974580599415852864931023519627271106173128055560730300141039850115862896364470865806428719740995844298715906964833008772701798033795749274223076465078017675254008770833829755184473367502282076960317263618101526826935579623436906093213961394038572832748982723535189164658773141774669574654023622121279463979126185034929136504681446981296469500336136004239734453725102647904408400476870573513328670069694553521838515829873815960120349108425766765274303874118607963121794083658846450347266436050196762591048598716542726000338657292949149852383521766355630197289299460888236517681146096096280359023954000605771394810119206772688824226636787446613157579855925655147221820547828803738943202726918768264375794803392595152677905113697443856319291589270027214316224427596463230919816216350823465561158624570709133433399366795500528712832798492110689808928113936211502583609363616751194446544613468444082854082899754781524539070918422633618727806865826601363419556485745939342726767921997658862987324027138515654342268622132088472070477945491782984692781357648828694974382502253580807901573311966963596306791242000470262923324516544771202629694168859801354867800966236725659398716811923045198497187072955646117736051109712265220148560365605858690626258011923282975094959529352038822286348692634527550889172391054839406165804948368726373578515291161570877181418521881169215957404372311310099068340941850257285930192709694084303551695276619466708498917931244198352794005091675984100041556380591488601609226510512127491803253062282588651239659601090853949925831615832736603167482669667476958435006697951461923601360368835078428080613544972625930128643909288275966621727801392154534414382182687719961086990157334250537526177364923574773399089434086369690993631932427281898290488031859720850206979227390393587215112592141546575619690060138580182874664594067200443769547111432901811020028077300753368106730057640183355601566135126208607236137604138884829942974688605922338760090565665094760119823837455996617265858380817968139651897378381794857704744910835643892947203223571407911868105565263192198471805119257719096570712755259861962843121390674660010969778533794216710268270662283410110251941779374688707653540095825708910262297244874131837680401305910445770005415024553065422605817849427878536470378579567992743444388295384530731538103825098263653395900271279386457923231593279969286207594508949760342664674643449728548655112921020322890336172485050857868137526719711621102125083348587133110145171359467874824168616927988261949163231497553080915618765113890166345517596514042729936889439013825006520146711198877366802891486997897085850076826521362035498120093231254429416297649793706441427247779529742009865884397994342425157613618811701495057403147300698564465800621776189818201402655896980800991523240721804360122457432874467983957937738757099764428911318689644786051205525042975049017594247983558573724597007681999209785659623816276655196314596709744935034568960625806435612977921370812148792537420078096191446274570631387052139578946702906480011409670788799519019672796544921676064968018636591688705959271903896335855610001631795623167859797106317613669440399073357589714432315038698745218599397501897362809482430141978749803514607057687627083613603036524012965624504363454485577963023539296459110214900473675369832237587843147361586758233121066025559242042958879685447363324380932410321297464051062417278443867902235941864910831254930447151099365686683236832087393878192246317031234653264224937569570859538085668950894239937335270389592749553264698337941065299866794972933471334347628762495012183558602692319562494093522142804260590358857473075195694410189739549395063204493011801006592077732997967032790571122078842148148739955778494668704133126305698267794730591604270101976845222571817878260669105506739083968069954570647407034049461072050446654959116800085940145272001088915431076619249288055173639177677284337143158541985827969829746662138540117426730907797541328586835134019028301227284070091646283517959323183959630885526105077061824238899199804160408696274218086321746899909279907655175558517200577341761335418578038865091598778086042567206140593548297073004278479572559673168574169916227229475117999565287419173562823158985960064785299145358179423848469533794643917172065773869521927484347534723386269607871279047850436463617909614373372978428173735560174936991450447240637494794835350938902596746108314879757967395625054035388507947905895359150093705216561935837054993191009786343814083102822208158088787942281241238316760957103379778116740605282000153792515594657125843745012914574842450862109810985480005607014720952282658631089000292325802166264294614588282553373651987962776105647165536686926779192936168637379044966350936464703865944197580605372924486439220666183995175450970860075788203959507141454122436696883107077330629028589490771259472858815457132268181642773282659242677344193971349390010658860385121465165664141969369530556971855358515880555186054037205891959240332638247706524328416555229722935033023495088699386052229480785155382479944199759648091396993164532086275095557520749830010468985743866621340092835878122102697496093643317910445089758738368469831646270181302152719294755454650789694150147119348920554461683393862173130043009083643220136530661710209847325404208140355588096668613714406396016722934432307495560858015426598580128675967783862251723904015382988640558050518218689287669220089856319835408198812326347503388454461151989806636992172654843194681090530435464997825638462767508706483775310745927391964914025943247170476951362399437373831548454007103146672984415521171267668161126199660848291152386753120321822506673854703126569066763320415233818772698434403448842759832250612503449037871021236593371800426536687009279832318451008697635041384683107417192604120294492627556224532266135722031436358942618632240012581307449202385764295523301199621035206191429862602091280587787690742684423537919924164365455764380246929403846904488352035760527441970600672455391210262626070393930917606272355488300452769602732896311106429760470150729399633736976141439026836702598921574899950955209070785823034314800966142767962910963593784795901781681683820967180209472981389364975538082894542203823118508002768475612017603985618439757857256230881004170634618572956402888919770680553170987976270656703445022266890129126148139636596419096932714250789994610205273470193070440888315568293892859203603953557106974220877782837122325734934086800370322998704692480836082496581181250358009858472101378030974719545985101567649780499882120616464857548595448225936255141655841290478529467981242006638329183920318125468110466445743309192741303111641850467856207025480767313734257665771775484146491146405929448208186210387662169439397117377885904946704311425413104693421042801399729744329495136247194057145626088010757622650202696346496736129788262219551740362394039536409790786435116365991628855196476045907335221114146892897922211289929776749477882680379312902744501789841844455663316314017704572953113016420930419267585978588650489372893934976056862837958041013859551092983602411804805946434175477176322756230910902919560659066198616394694079563574569459901724605828591987547623778364340557726140729804442415900152396253228156875802187433590201356500983021609255202660976879406151722897268638686655815955504901735552911235027651004739659287751715519339298833171478971499743181779291646589946235496504202149315302354720758840179344642557606379250685144182826335369414093109473149735059668359412750625056222492698169031435245421826810457949896115964090855487751996116514520817301489505135255504814902919667106100562557948951326433867834487001934555626633518804811911512412433306086424081166716518586759537639407574306324127079188576486122042344489872121839629596949078680445867776907901972519136974642152312554529113162094316691345461714704718572889741735739771343192180821005294004679052062717359946231666220235125428032014673603545199960646174008020200298310735718081565960890286478811684218899882669628439296288267020792832314589416406958052518251787859134000059642384126468752767194545462122974845821331670165411649628175889251364434287766046584326173784471481997902378626269787279981196551934357271253420129892762981148368068991124661549956868658366233711841119487376078531939917443194895234073271683684573384860100868935665969808900322830918841200395917512258468993978943386073551395637842798196980160367054729626253456802139131285564990268190034556605677045983883186787435885764273918559870998631796551167912661052424282283347782068122111678550224382082148294580290905054754214008462421341379460446773538240529803981045915191858350959361128439801482490812580081232164143824721285203905808122829521179963331231766974174923328592220421270002818701704421917920476030454549357735097765428766023056787631714886603452879144243746902241421918947441437065974443627172848430537490022291365854547919865544724234488921208954559399809224099430413823393189268947641182510097760074731628508315296318349605350394765398573329140941052696325568377948017482304666822884464841920895296402243401525472983390970376637286372549841718464220473186685612787693383356410832192084031112436355880231683674123124739688862263342126491389034153682353380933466578561210081175694116951219194386499420122705069272395894383355266914347584582030844412807225499940633781535606162876656565320675540553720864414905773412907211937229106662565011404744119387419912779170220089319819649495008430663347403542764375187643945988652022420796429824284103331638490228295894087749863746447482744749726155161509259239426151229970169647857142441456997039798874858557144235307530800540432837947117821512570509260976919786037694316490797447800256604287257377710176552113737911306354068593062066497358813503927055397361996567425362374064801436399615096886152361952645986840971160715406549754091824574662072563461098025392237804788407456413673812891565002698862957477855210289778754748286143638937813841608780018474595212538880440019433896722171653423026291133426985835079841398775280869313226511819086416308843184140066588946331446782953188655594789638396220027113914379026925569230650290001288431769506613292217309628337900328699216416799720722197376368829094266620410214938376489941768577318291289300916509064326960147672505111791873765682666013859924209635265052962108646470627667903505232582921497631573986947357153232656320221607461642979509183946309749878276485352516572700804858779853843293665377345262409541911783183076348695718942240804122210207380858627247904425963069251921663944811160663058020697009122806656886729401496781242032952709282058601113133169111006165275153128185959972573575238136477895078147255651756995367190582518953560675112900021561691059769920784287394468732766811489140738589373180840542430982324272152957452641232471222020248119781991504416927529140933920404906474397444912782378349484242169290879257814106850280905413862604459914133204211749560430264075932598323897132780393230118314633992266347509805667445187544916969331640974314924367646786679911870069414249655301681778179018598123836564731440246227756275806076043321635627188609503107357240411133071887275830513726666721950124141844769394799403293221786263155143849994993312551581793866196161639276941899077744491679064821072386678936654877429843683696997539889341523857229639738025296953815379058151378325368246979552080512060007804149988299069679026283236219763104174640507097558312090999708473825794461116775786460835915774136059312542613604578502341532181916959526959446248673858994211563637353179831170221521924164999397544708288598904762062617344267669398603555717815022797592175700470769008758338236519852797031398584844765009007828560518435325660425511355377410249575959067591516121127247994055946640967602769200575185431264046768465118876308564232967035608427692822319252196530625564659599662535469213106703033984907986242990264941109049357213652532953962071179130059340673102702181239427223968070069442228526702883711341151163340300024921184127172106226594023598794730322531717415276498909031272902357667640718385542600818354418219218327206954379544041785416975111289762089151468360411292255872817066458300533498991778513028351711726087276207918011070335934988370530263787286593818844625571991611688825936825892847216956725490042836434546042483140368184209283930615593717855955736579809902167344198851066126252324256096647365771641212329306150224577883269579379236493248496347589247962918672067486874369787578628551592680169634352569492523025225678246553051135060146205126502328171128257808658510437458563358302477364808011684481982487385220653488699510649766801333005850872938779429036073699381895814695076575842390475890831642383794525079535575014578468288404756560453616572095478834101882257964020426412681699577928808350505349765368325055324375491851250224611179088069112343100621773643808181808345076027803408650504983974016305008601865771727462085179528519469470834694771621228951184353367696149789105493409351590490148388993864135122304454293679817692804738796064438072035895685031953367727431715912280602868568076894846080439576256082811862866777452586691211573861257212758567149799369439490224708398787406657100092496168938719244846765678813082461544758420582638199888394414860786777447334509688261959265099612659318731103475611007563333648308656161681239894960006325296029449936949731163687486478022222780523124713872249827740286143319774470002173244523525150096350335181069774510869539366626607237551538180001033375033822208577022492004857703451592603951294442899535013796144186879261083197889015722333983250529465829591112554588006920766004780588397725598684885573483526315220153264579870233638138490599672605428647628180041120778923451945698437349691081378634278013240447821125868781255067096927078724336498884972489909315481399129814495438142486248025513672347682114288186705652263554475300761379073639492480444362383829821022102435420173914673937799898000982767918090116547032747027728414634486279411438765294991494402689275800424890705187409686129245474244659438921679785718267527988064662131089355252325472325451218819455104439594060076070085098796909541908208868169637437572993741662650545232370346491206983469068994498236399318246825210546275042171595595683909625307348585853351148242156500135466692288280309289693370005732354628836458572795371060226418472173864747813495436874060221227599231071207847920773920040677623278835993102276648596663455662561013186048539560500732697090471487566597487607984748839024635599499503127953251818298821053691398488303994226927985012855112598440989574749109432004169616623640625861109994895860325254352963623617197196461149381811833158270704856061385285823650643801928598805492925365298700465310491367278006475925939748685850820786886229458455045417042332474203008380244135248852920430347686740816208265061576838151294512796819154757098193298186341390822513542766113316979153851178107002341125860275605722157335387910622486530378662313070140808821195911582971286299276340314426484241432890971028634264717391926217170601301767493448169725606752508588262003751432616778677072946310983184648499637777202057051321494242232064610796132955755905142496185280721657013809697790611217793507629305316477958048174980882930661078469521292152355085444865899299222245584555821320531429243048094041185528006862736979030713120285736771841805613982259150554207207476380309669619295720414421371388797553659841377556578364210768869170618361620700673890867045095468357225596302941145233821137693994904838456166550230719701800836107072384606807179240984208979570587438706179290570941774425237246337789013866875242044329530232554356458115557233092606704764297978191872088941290251594333466377998613547679326172710573041543986237062770845715685413315313071852396389921377524458806383423556723592132322623118752060908698952291004398482256552780414191124210871618460796409003793920104668482399171145067476056492982971042431758564343961288172553236314512140863834579867624565085334037572628603150236805418558739161483099285438023405831919285834675458218776487414557244495405560108588826963547285431013660846707173026173789031514879938420249817537477294689509701123969279269442276877263201195928705268657558013726567513858781721581614929640329699099034207007294539596279880692957489586751599517938286352006495721230398744843211552552672032565664594751947761189008373027442665014840098988289018620607681843485776098384500039380741412377054040508856522829695096997565521584232575442583291077336325401576853394827935236355189922552497514657424797176235947342282542326424218975439002055207659974957464444185466709117848588307606140698516898685329615279492482674791058617886060035489643296574241828254024398267960780944033740487138437288525683088120339463187373052863206146405957631724840290318750765759835621874705002194970537706530991612786626185857900935879146081276180045100986218392381079763117277349784306934026028201591411646333480825085141831981612594653605452431936913116202045662411413603973444653665371232804847617406615017968661364742340558601572021983501309930268519061044971934186161423523913529166824569168082662694184971494323100989806466437300949353811247799495358226437052208702619068475543276961505374268809194068059936630208464303035109529572860997894641650608570670010826266241948452156323996425506946945474056084258639523011342512680059179550637120255016435030884077314712383401325439559426688611617294886691111033442227784319820483475918363151789967351543974045009985294202667567092259946778749237575371173751336000027244412707885016066580648335873579440004979904147147916649397987129485039416737728402830376077213710642901169088160287100326005608106471286102618288825976740609805993187168492767975272694269769990863943904803462082189063036623159615388091943413541717417344086409789662864759933217513438453772077075972396555135938652117299581395728636168454889267567222176371321232813148447900964588432974219186117044209710871942737826657807067366253961186784103743545554276648476197186347043931626283883487635081976209494130245845084676390717744927867756844147229524456473616593429930881275593595597250090243002360427681303827424410784721772249669907168174935472554587171891265500150409837300596965634784683029507843486883377896163905575124561724744903120368512519395985456358128378483793231598002093557585608508098630349377630957584795693663803486733515223856913469578220098519057838983899042714358079303030234475532328180912451049256007765522609661286843655013024709403243125988227767398056418219354962115158122123727349626925404309980967755531755076954963302084614515547328314160649649309283217728750579065411185925156512931000473205379932953893203958806843042826559637433075741457809033391586344642634529855451216060285588769170201558470510173829851290853636100862613215941011761149824048995679729715244533632228141070646350767373926809721208388210041349097438178444954098058759525624256635385227357031968629910285511037642979504535915138657630989083189781002683160136582888671898188122951771449090091149647872061615671882450227490244066897920179829396349479262767613875142717876223931718810153346187423372320787060070137719258176608967976573012342643509321253793103673949954192820199832611259561048937089287287787468180678937937053823773455254132309425214522296815344510233047441122957702321023418077376203641803214484816247679001815969673009578933617853532922651220209019403988955368049547977230592715157426838817762770894682531912360534974843342239344083681545127360097154642380446867525818166761985379291844871943120785973564382849192586480765582253022812041482299086297540337110738206735646125902778441758154176836012883772488120519134190844514490785272675127267587945584924090871204352068273174549724002832201616342043569195777001660030134602489831278867083410797905268517408192295000549228705335480204058646070497274409359602290289565187371154746862062232176065497788894838234898330877417141930737587193438430464055063641076684884780570663315090791243715241147306102647470920518748869897161664434400643968268409222609584381157436527446349687127816067938780085480907310123314845681921901404990576898331667450619344634158936723147088482590472343447641315094857263676076007312586358044097032239177860637451635924348338684440958153468405474878937206472539924191628624332341619441781943420352909467610399476956056827924061391263564750036590261231316370685961524773452824088169386816503246494758021158190505043909160242271206247757408950146675016847254012571466219789623759480041953347709787191050366636829419792796928651869763105114033257678614949089658798958031519378997785916180287108211543144829907278104533788304552944004207528323962901588991123964785602192307552936715961984421138858739322606033167786416096231593963624580498949716445896305563357589307466975056321889445143556600043312305393649615245133246726067445468086480728006967998807187366292735224213470162673350435660353648749614396135094529011494769094341667804546600928612904033006974725873987659332909520418113461088511919252578813001310974369567859426256690215435779420298720160188222722037619408312714522137457488657000443622755142274367957861833418643335743142038346917761376531483124324434329903067448766780909195518290238434378702744535192785726881676296317308797516188139660451196769191369464505749850973986923934347796739379830257023897452457761728004170749064290077417837119336293782900811851135152922643569595551823775283648168108496820483562312002923625051876592865154720879340317792559583667618038537219990830736542775022649977219696724730069726393997154900364988322712256093755521896454461456512223143333491969829858668060246468233447834249872781214727877950497018689218463001181700469655126019556761654146647858514587063924645349149676386109774904373614459724163096100043569279434123725124550672777494846386554582803191201625423865697745311525570790711883310021849620449997822425585146315210451614408168504283155430031343203691125422499583404571048307121211380277317255489423856839490054310084344614770939677161013330819681035468241609200791885393639282789338365200839255325082696976892579987949828956826887674145008393656897867557418350178347736571781925401928140540729972459572962165146457056823434184932321455392095609618931311908837642639971905014860815730082523897021535384175658986134581410095330486365262908953187740049649855525655110324240181522511060070616429041877906449153722507636956306567958260357083237173359238449850764131049156090709046462741273553918043270771609529752630918185155050628874830497980267979266962185217480529773346449106500080505395399869144565910400172185611969252064099950734099825938252131087386531502591980266126554507964019836094727321757367111180768410517998305912806138182454160206098430626516655917378328829045686408656140595661965879270872154526089537987777794962205431285748104486236896760815632085782102205505887622090859383480114666502152923437839611733471846800666482989239380990354138581847889927052804878891940926140510841691308685743704837991724392708036080780476923816435952743208517584497938753364395117501492394293256785370216910617591820921131627952705834148991935264753091671524349385411908568288122593927116197935890659650634312819878008153846358825786510917387640316313456821736223897424969305701280974129857312358039422925012124924221661357685085267761656425731767133123581000225807666062336117155608588748599626556079366463735508194713775350435160854498428625701973045267831236527867596051745194421756628877473654524929096335703194612247353198288736486335839367961969915734694758389440272299052921347100640587058382977068556943963928926089720218958588535615078234351466660187491817152205655718532082789256613093579619622722021493317305457691302617165816806602034247962255334479100328805524403701556648474967895317639529745229577440555481860897016588242359794142079958566603117565146269144664603438150949725207569979482628959010826212187487934892466289541733327096151378381091435117493395284203358565446639149203300061279337942326837520072945101130080494980730137220783943511474939194777625331179806186373621319726213385146878897090611936189104761789401193378772966986336577142502679279003134692664629784413456080099140603840155425431438765749346064977702628720127373941597998452507838745876377740638600944442326725639082646942767738163173073403444982698237970391411227995547197680204805293500118382265994729616677407210559929598010942491550548678529358094001888499792667538557378103420463383917208008778372099082866897089427291013037372727126471797252622434662534488841594952200882076076209709661038909277300296821315487764310776129223690961845558122018328419954766897615942629249648038523813282811185856553465733575499920165700969801479604885636183920918180501303981228394547175453764921455059412195004297473519594995505137308541730327790466891857387967950667596878350308748228102294818437272941766396893177240731375429531100394429112909711299422679595717879805022552342849228304282911607088336407777137288899513548733074580350786729277609316962334994855426008555195044341458123269250195034172382964617624387188824276401712411506473750654293018676442575033597922122328361800816217894982023245518922410628977408893157495971233998460265057017141098293429771301786395666599234906786165042594813961812612532788061840297828092999469551351019535855176909030382045533998130115254464025129701027542632127060508840057371904472266731707375980449708724186417023717645574525357620621358873737972024672729076964631036032524618589574411100077478670118320393173347078834869297716044461161721985982757945524377994435951327944128263306530073785423726967464439700108711824386410927635732005095582842547476713720507439959729666852567959035297471231783023953490969613294437303292661017305591862867805727663581404877129607940331808451772847364633758214275726059721176845366031185391500796306323328546706999277221398413498379477913252487318859415270121144342660499093122787841789857352789253043642382884041858924649541645920592615730438455783705388511809006898721784442158770718605882788544444615820046414981104532998806830005789633839903263755255839753818359958314048473226258405154785619326734828559791499494167497988941525042412772278883809694287519651991804080836421271917335002119896347833422026655487546579026789864600235466955744608532089575791524882238980363213020431377188965167458791149637102665788662400611041801176409202934417912279672463526782695214065615877613741148875334916061886560455668774119636518485024452836323207319791596511376617202624520804399953902469013712692192925486914814576359960940577345131891267212973323435888811857548923820014877149975337450633505873922919076950656121381268872876260780126854282786527129028557845393799651019050872496114220191905851122571291141131428501715736206371484501707940248987955981390353179031055633529959874671584796500322247098645396423205219833732736415042298521863375823543268954929400064944315441488601099240409758252192470170628576800627627389738058735190996255438916175087631640597702229316713239876131952167518312676980333566163858908859341267717782328394097735782729131012926814956250024508814038749095592822920562495312920143425880496293982520307758742735420250294434958258788714156967349422243378608264720081846529496788160196868164597531010071195120082755546435949500120586468005044810479949250914485398333175160880261288320787309711624863890346539981224930882041933643507684879407458842690420039445621346273143595241468150186447214573842616800963319533470763244854758735893243171722869032227408211454112341976296814664962717936480433829684493467708441948036473912117466259392861362171415574748908271807041779287094370720209540504469894224478541803520597025414703181542182450654900784021076900155956158221790112302241440234944857350107310470813429541255538350438213667889577914734587389248752770736277041408047509126781468867736829999771630818984644217149606006759335696142273112623407217294443131970981703591340479422321522836740791554867239399460233658079055486900458260101336850097177933236981002773555336545277263326917803703471250032231052715883291767330628301565096972109952608240998281484755509068539189864976440749244643549479134307358373199708632646733558041624642389859912552814758271687483136048551602090941174364504401897345458845993181702120597967605402556842924369812359832877547420601897919481196901875501925348254478871197139449704104970103839378925157319709440479257808009527836601851336337038811082674685659659156044777631463777791341298150539565107791626479681868459332582071035619703778038384484122610912394417173552440935166204553589523170570952305112855395260259091634309665949014540628902089094013425380876902078192613270956938050178297266049927406253246824374084045633534090649494472590351034786223210651493243677520411377907459211224341118874367183175613171328857150997139068147266167922018910046183616983715365583411377262537767597214458905247558746092347570376971153922122068207844155341168126317591988355241542388446930150533374266160056852519114498141928590553034298387972077418546624065667723981225925326494740681267885445612573412629375984714753611430001631613090569653665413578786970062239180379712153731490113736075048046386112802712740369619337409839793054220948691189251129338211564293840630220896095876686484385733870819645283745131323842295379318703919768462471361958671574781726511423486755442560143804717208388754189505927828432821762557815237877243995401377919402834907089428206745706415121925826422941319038678033273119340709788430745224737433995235393081938990280079057147617064671848907385563655915061423820103228387763315309957870843993859906767409829380559013299945776900196567369659801539340340334903446890853380591699794534071106754743557025049424291461743959961746437853257979954907225260261322633920949524433788400669832307908669257020511721079678592639982751986711770286896604018204774854347443818818524694268383544741213396137383023329788081100644572195574410445778847796764983990165507875892803637852921419090442398154521156670323467491756633913934967454642763782931925985237582713527117676695804540226705792956956947476180508073727841820152298186965812268518986899702837300961450627544896646653324885768481340914822006782704865848795083355323757482732634796596411912329665221325896926635493797068873614008025464079109582136753796132972848435715388957818681705055201179256058220525256571813237268845047681551149021132664800539271761960077341167674603563278787328456628863831434422008787437819288494396918678138211006785939771643614366222079607400869567465285497319475294981008295871572822112951089115456512129297497273605072596111852494957805309701693779812419304258243847644117337078906530296862591868880962296827429139264638673839874547780503570951539561425377650178937460823775405923166337490508174948448706297316562782384746512888177883645045136094381682627181820216256055535202910107539473547821933714237643693699445953091227986476516390251359927911982638246119939859724919874883113070298972294151451356404795318856720932939963542665075414247081016538712265229995996971975334592053519949567924661934718079113456783207757413629652965322099497757379534118161759528470833455330824720935597009359323639379892586850334490504773742315227482264631835536092180286538611335178381524363032487750299124243352267104723292328292555025000426560769316627948377245349427270743349189625362710623311630611969429355354243527986887542935284425371112884164493367096180064843617414456634691105854667516608048679458619317287050463615190762965020054544697439438790247452061852010718777433682927436840102611055526633903053317854468906300859623261529110845606284225533176381526828421932915215933509067525230144994693134059631137500684482985487159487608442421230638036629646211864518373068985067256415625203495302447914044147376534967818890554258552824069761895452568689399342410235780339003749202762958703760447003342735477610007385262388526865123375853715570196488330618963232039841128521692733940222605860625698069661791421890937403073448511004558845356622493120100276560820429533910172107671769055801980599604181760103233220266691315902194964560095858360063784616803731275208949829318054210802703983183738584034720545349284573804507982044229066898367402314694371409304237410349091381524918837300622979812781532761255249918556365726861265130949166642286515858000896064998022454988959964817089524153004382939010989005035950457856744864229281223948256236035331208127219696337354670084341842187820118539377426032941213906977362373759281670572692567582297781579105895243073947282025245983105719054557830342120587497408374552188799574289325770669958088925665504954638272128301632560581056142722729781386216045262151090086768221744338243749174805724058533520334810972648161521241693885644663552559320466871413300900885763112628033140229891474494419418750785538894464778686736712260247448914948478665992102039533244560496851424335761774609054509105738795696214757993940782526047717440908757423267972556209818160676104418389274250695629686995958647403917592051821570917400332100642549635322506402735346886256130030073871461230990128789296729556918103681473379954182128391413749804559566119906250127574085310304690720130629592343544849823008395387966432854729511555825348371434479565320757751095103030396453936441925592468558027805168633766104208454552232316692565531002445824638261449400137584844538707762515770753866433704941055410230178821093379226535149878445544088491981795842712111043222853242195838726272209107889568020766068865933860271690847077604658085672901899388885309523518169850459799371108229566035603847966972929170764292914210922858087487050596236174981277112311399098210389978018631857985372187868566596004393940354221122213684116665789623344798555016143757422695546419198656008753829739135075077377764512939126271737939077534500780146128371987811053148743531622226723458318712895435549868139668277191312073880885480061196082171789093630759298869689958915774042443025434245837337092704174258696275816639879932661315766585170869651810905846680048039481896993602826701132987909675479053266897039027432050583010892573340977937524906641440260939533955266916094838327079205336519342677270422695306656699573129495269985618531833096330868304083497262068472199259216315588150263354959218306668963461718809109405186887639550398546032291962129893779278292848787107882865739297761097274929465162291034507086682082468707343664552842652379752004488396512192653937411940907384550816281393195149623188218492912104213018166939099869812874563570744338800785408599710902015376647171860121853010834830228866968855615551537926363425968669596029377027791029515323015821177404357494982058935043592739361157094957583047611359312594373739001067085049767747755441364131953424297020316359752230750502016346897754522939708506759551860414660010806354136143553682871191179354006452475546573556577300448394168199543796712748838426371091254387485663331046176651609081594218946367315419838092302042073829962448132899806989125062033149279825845609850991142194665746308454924291860311994379918701366063259678842743736101319289531883401087711174223244214925266332568083306282773745449405802296021535750859698811362454633636449810736282628042599391073543379848434728616714786928584008958424808666045097930636865553858341283038608905317303025864373142722144353435808086372865033063676543265474294648323885069963503375326643544028421304373600745860936023715020319618045907896156746329131022796270809043192993711536215971368549888941107643108479710945449849863127028173321008988398985582564954367975597346854192578218023768592928308301907948345537058227753444245851764028435678578099605090764118507776432374007267324525692505352480417068978625898069692130321889390899703048044440540567990983204038913311177994103266325872556358768500597012087074863763815149345098743581633071839620682374441554405231542235346419776046483623442770346296127032089841704483597026065774311553801973944653720820323599026001185341486140227515606606228395972483255263341308553026677600341647995455305655045609660808072937292187181932000039004810379115502182971018796142571845493816168230385629509023052914434068442016901537197646464319205071636754572425958067308564676100464046484335133089519760233048129835882587801199830776252007696856376343322819487439838730769764921472899397453185290234121650434961770186598648251667024022354795630604473648034920766538339645309479805455929906583728552049761538275905143914141089781729681343897370787287930853764292742755274198224899371052732347643791102993747570347089378988924970884732396129713743578154203939260499888223317898631323902869528820398380671491165490776477148634906300402685693370679224170096713714249152024615031906890999481008323841463730169715567634910994964501603436169125969148943283351574841756913148227800929246278523066083696619766182522623173614491014401519921099455152044361820218948132282105727483493584020799347614349801681072041576671771033920666210285452840601896430745709302414402468241478826456920395223265699857966522114802637192510934528904993554971561650876202182349896165501570832803265844729134035673530563884490060088788739064358724809894834265043277986312720473506156954788463368941539208093744420376881024403453464343577033629347068917439300530626400901994624824859289291588565011524781674029724795673474265333038475783880268247745695970093105170907262335298291004012173135810106370610301337144671384560097659275293325907612751461064132005767780101408456835019796779753601259188640364637577452980843506280573920784222337532982022868791233474274306529312605038681401471651151885612570336935280140075644057613568234120557799025583206732743813789696766192211219564160408681186562140822443404710428218572485382212469315475778665067680718584161605697141916447254926869422729470539457403724334735692043845602813014028033592282519947746089812144767670948192742436597253100133606166839123211719836347576373875843748905304000474795860907856744870885383615939284919896635134163550618606787680787041848648299433110812833370604188668117726594374933927049800647620712470665991031629395136635303343486291953603236491418780193447754191094851495237203168773809154767029047040468563151801915330735131794818556888222542059391509717199395972397679995393753704286683421751670373664293659498107275883379320696058191510163379213557321253323936586983683273932076209763721465641631714527087979782900237147740740650139462618107197311430843780051540720507741137004615528612656588221392508870959768324589547514009523261054319746840287687757165822175705826256395117719522175680643346534447839706409221255682765994355110709046385220908857763879088910613260813404566111369911905364953113618727944773602010581488806225835691233591702463146566482902947095809562347488594204771150744217214647365908637762670415251973073545451292163848049952871332407311524885063187343605703050994588147593124371873423410627746614643113153237741213544622573096914121358014633855804628775320499144170051284248375189478115846790965621309899474765490649225447143587601207263559932555094912101998962630516748021393617854253716165271796783331781715793975304561400866497249897690964251038550971771714662417663187925482618352052802505368240969543996242532383663970045027114214842807259365610806261889702491680750771364577404020057483457723941871849675963288189553553121548443270266283697083295051891223815316831440445330882253391196941254419466898781597328808853340068232410191986644269762051361942850164005651212541954969520215275368480884013986512623489845038612812176280407321042730486808902275421648381139868982435086340427703478661757054996598762692940830819792101412723776367252061080141027286729226132737097520082332546696820394686492014734859599765662012156653505843314536770653350041455647547202805325975439221479447154778199327111801188614238286799073361918837742117624883148103275510310534258422263110243178323737285117151050211089484046905994641022290260789975198024248194676341872565098132590445330610679716507069535311973686547590055826223232473775606767941321507835457266155210146552426229023158048837038005332324856751248471155752429291829481650322922744990599618563776375702147926540763370784561968867588929086255424045408394882366293660689821217162215094103246084798150956884975589773497193068680220182214791967557668546839262415808768806922922277572110718190484448000522253119095849791647306006575131515832279885890668790762190353038937299519010945823431214007598203374105726824889651945564306995941515339085609291996721874855334235096859377313172139947636711210981012444517599760135954920500005351251786124517304659541215381336600692897569599388103409601710234738477843385425912628914165048460749166722649046725985018212030069287819351629671905110720632419309154473201352443335547066978185748865713183880950795026459597238274916213117161124750980751358836298224913515390067940707787210598489536665930562346354475367293356789407967181907679839990148318988907729177126566197328177916503849863774351836110382972492872515181574776990994713926526567249024699575015132650717194473342288668418086194654032909971407228608330003903463831299746540732979655722552329624734540474758584834462069396937196849595515657917140179646038567591601564034977297214447866176152662753730321763207782254102388056890434709349747687712696317629553659188897852758143503614556907507768723786009283350358767701730625004280518973602607773413667320503178314700615132281730418909100515722435911705247947011590465558399651712568900653592302239171792683923985309522394914812099399929927891613645498521340457214825580698272490507255308148686917085084605479448457917564462095876786338916351659387005711182661293933575870962345904383042487083874068897450130517551092141437771646194227422462905284813357465872903780726242749158197774342308063158957620246930623210792992845335943344894851187861932366510109693982355298567469523621215514841604668948090476759950881104075874960445576870262052998663420773239618276114750681443106940773335607574418680406989280828711357865861811011704614334599686232800361431751992138177969275679100932327955492751099607628290062465985873797664729907176516491770945287492947847525604256329894491258256192333781975632109488365571340507301058605217999028432038808171070039909409144319328526154650377562715242738402682214288152345224518348689482368337623967404646046895513494816115609947826282700359898611908748366771019498299176152236462320301280140509351192148318537479782731482809295402804372721905374414656100903428544166049309321300138405181078484990633288322065374712646560278678903164210802108315154992372007738847806769665067038365178311815617936605053834022592375715286424268662212624386525980917747330054203134055066119439595878780175800935969459935228683849439266883274915655987771007944780147618719722004606667589273297102653103447676231525918968867385777472296296850257376588196585804625484989614882706423900620922471584352149678454976752375611734460556468045588529773786266038997134680914924283323289127351762105105700740131978022919394075209194891475710503380537745360434216415624780407825110172011705237643823395484605414147266826052234457690989386723878613282546176113863849116020363863676832208988590321404539853083497175247960269615699847400166950783446005290556120830188389040563698955707417220273971125082902100739006282702213041378777592190865322302739526061359490556794389316794718272397030782112167426580408680068177967860559685811071883977588410974001318360052300952221324258188588995738494325370797670947184345772307984939855436215778546890798541967727767701687323855255674611878199001555786776800624384578186312149065673238244324830561129874170780049888249070220304221259932484739567561482013652291395632773221876022980140712814267860954011390404900975494172417957815517734467020934568044293448290302225683899673229095155147425082027950611602658288163716988191937407707317516122368893389607333844004413233321779379320046760416164469512085455946277314630996336669430735483666793631975624298104069176596641600259328149433324541144143439128296819257631847200134846289046082104162289456256735977851024869744635870004025440444619935197944121359980456957588973161081116136789857559562412993862149023043369399201048662230643157396889609203837387532336157415337010341765800076383529960759446076303025824472465833369664667124660371801021651444701926583667270201700003669042252298147172824930098721663361877996256225517426803143033965701453735829531133771759571980544257277810740833337503297646439279833063571960629302916797364477815077983726796807577200196403866699870543349096084088167035316966138480513609191355776816739670153040360884842400265229259271347051977836908236012687429725341756128723102355605908918534677230170372869085465194748337372131289448317340294193228975982284329540000143193802505362771268647643260718613640884613162125583454945047195054688169243070097372031086917348523634898093916169910583644587029891048481730903956194266210564663633659810109669347688453779064194606972330093185474199430960960759566333476279209834598391279158072064318057848547563589766489236043466685231877094828882601768003813244113802156223477374790117266766616369899464474820143208882976369622165309519980800458552383610145173538662341050056834590742749960488508093239684271420766496174330085047306912599350163403126763153284447963728280701278195500432754855103099400432484999501216428646546249640689242145613339469113323461919805618050602521365607213692447444679365448714937843945444488391912485029547138154365529785121991350833645177791764427942725998628512336377026464685558351761007526233844971449557360615708508169237123315664221866912461426111009134671115704599156487601765928830752538340465093441635661991066251244281868840787314096987883461448567048746824204959547252869755622942052871335569283776378976907825755397723072698197262235480521855798804808849009489646782119197752276687984061319177871835002673594787982036395696936443078690955599237931565225246464004024412370319420021006274531818730556137124993850957297267255708004900509997550527154962374548933130566522260324571444170980176648261451205774322663472503031725417599337295906380497709531248968112435071681461801115313416654951607532041350168313583307005942285549442994573575931162214947869572961628436332725045482579675993448191015316055216636163804359987205827822365925024652528465804850186289256681558609910258827613429039105112256602913726263617457287762309361341326809699634006136731526988315056958912035839454560969535908052680260889409518096944543493028502008339979603571933271485196148112425281702157973516520930113154446830621223398488420998600951759202660002029803598459217896535833507852632207496605283470247136274343507998698833150007733333616358071358206509442413411182831393962587128058378735662124126518327199211122073723004872483952665269054235940499137449519193501298967524742232682751219040414589478083728958755969285020749464749155649310423658762445852300004958295199097103131057504735439375897839993823413628448590042653992176652206588210164047849214515848448769438266319048655918653139678299922904498265986324957960228651942361789258188352225820367128993895721791392685349776569746916616542066360428412994069519438447371063844577195537811057675359270272648409434868742499342840791975331079575551067922637094919946958296708251998202943264648900019822339171582024385368894328617860544596468636505250387729780776685255860225307965999574936425788183994849333271797506475705000294803575187263831829610204683641792049049636094297151947193327995794264454173631168374849228269377853701813281115605471491201749947014117483739877680021280455178093862842082493712305710225788461338029834665006991677946872012303324204644437109846291393068306318931767483456106023579580921702546637249683033908655342633990806278405256926253866292673163254084568234885305778184006582156640590907200073228434149248173591221945912243541559698930758276880489296690215738525333757796750450907592142148580457331950116823908088922021112253279440555441670788211356143888391167906461700418371355955559246014465792590954062756794369279413224194630979776618662967590035584597743409208839351260358117841772053346107407882031495776913032296318616382928800358201229478266847366073633163485961038798880056375883747383366159991875820047121926035795483101667533926844212149400755623766760435298836915829967408850212611790964501486149269020167724332921127707328659363422355783801670424979133111616974736984886339586637075000457289801570127285933102328059098027001106049942065759702367362255867525307620118822227825625522833532398463960534735213767820277589241562822621963197146000151359439732517306035977832518037563479860189698743185396129804876070348216619793344923715577309616824314575110240566169355230891112411543489830011522480026120205296716496751822017837542784882378582672709258697346873024073849707810674651553509645508849658555260284825278112489798647413969143466918363185596792673215470448330395228459618396720865673574647238269155180198888827568292586212844335833188250367481431315066965482244148329095324825212052698275976558006291687954994009406949619321387736662803238675975880070693794732671026832808546578810502361852746641207575913932555250027660857083255601875386158730879614315869559137789581423468498278687963884987158996510660620898625570124417935309028834939340447347019113069894516789608754571754260968271114965915987956185985208488122826472759495477973526376853734413713576580372277805610019333378730115425697539342903780462572870490132075402552982971368497856127525133455178105415371088776022336932852016655986094872161350258647295799040183636635955871386784120458434733223924420454973697519662341836084061161275716250040387382872144087018044840605944313688460122730193689257599848875537506486608048214817452609644494830085186710570896510184959173834680153085118770715804305756504078520550502996549697577189409282087641087057120041822458417481791291487788770887241352599025782643389481038696009541206843098969411107676708116502819120232781209132618810669253828106744182659972629715522086445135475015553453309031992082888323911506435566071295565479731810406745462821589748951283659319494515884662486476145631826790112976261816803841663869248825741032439525993023309239294990057202569563250401181351035350690362563842456126694226723554852970854463640320455658791507979830991459667601628276968386974679946353449520685136421102626070133848906453940084962226878108346439683882102237120473353722265560733581607325089923828535115578315510951291042041447618199314652524229958189495584607553302397053296166109618533149974330268541230126108210028031655981456183920470766615399965277499745165151431410663044960226571127562175821239334328373660754951165164066854252234009333652406385286752296382243714802786748234538859875057371535569011902428807694996224401097633595913258573081066111489925764650499399753519779710933087023461873600573482458356377015953311374795418495270057818668099402196763849232813817818614851852287240699986413919540103378818136627773393260766590290530651384318324401673222257415800362558889771396597817705052206297753722541207766458815228696263923163537674455589246300589520130247235857250611024198014097287679058334719775323789911290366633769678923853903136143860430756226826633107414998406224262105153980851730988636244849599903018550967476584760590966398028600666622184735426058532512556921385238544108524625788009206021352817231866314484029223491286639482600049670622454536124259230874040742419794978518895513296864516654475612122711837017495148461384938221196321667317528941566335292208780759539107765540039471171642344231256130883165735276511477122458579795996515192902483084511265773880016128385589030446399886314689951023295750577155790435164709119808417493422313946747464418105485873646850444462504886986750063582234598837119203657087782371340612774871505148441382666231618446324573644687478607298715034284238045561261449536531041257781269293217661741357398259220170855270040250940986691320412265218118510980881365529143260505699857719131598526136633233350000939552824320082956266338211870586931011682197409589171233490915119687391892494986577125892078535655110768367300886246540427026983100070159241888394355533593934712390545446898721337238712799394615456332309558754303119870924773468141632745535277521634916494695143937664334599823148851889771984690283791983748609793263083864937689403571519087975693781744109515583031769437978517608362212169262319882624046998220078976026124571406039245314155820127831181090872679719700942290040332549763232739369443158150249870384043001267692460205495719333677096960882012020617664383774177569151810796769495782496372994476590634476865027348303314122633953901957369483274470235991189809020141481325640311993667250218469637722036117381917190319782422416791252562576312065264201602035010386638387952034698611316620037345397556881146328174425434401629237337403593704851209450130099552759897820880403918299740863080719728416302870340684437501454289019586691552556762417772025498963515150013031493585185633382080897970454449031827177067072644792767769229353038480047248157821309106228681006740247577843388580587589777319369563027828348854339482325277010632493782655874245467867951826457946727984643537830364648919369455849002734335889984539703661888240588071359285131986111635553513702275331329138895847787084118355649283982591116109599874073535930155812972538865665462505504654456921000450068685589564491943523607934654761391239635081333416130184009745649680313437386339235519007152518057406237617543856839740239109766012989928904601515835032293669740471112813895912530903304209672661190493860578990483805764532298551140934109007651184720592268703007783048785099656312232569885493375744162996066888515583213613684583273496599545426181076024147652032549656832777822369980695749549497833615461970032122481087429072964969493669785797568219899766822055890090517659990838809547956443420378586986968620719395664991570752981858343363834732637753288810914684805481913350465474531197200836262577339025199540401825581791461035156135550917182918750119684160997947175612126395390287009509313636728223519431333465659658122938787171677830613909514379216843526169769295101300702892995956302479246483046935232975815148688941337552667575261888935508071152783540377150355135714271764527678749487695639858860428111478142899216405458031543889283975054370811422123308018226530561244157470921140535729100427687746525381173339252861986777046276292778274317835409806941542086282604679456324463427246950200802982407749389691377758459674460103055299401872843365745237310798790714629885908483117362823558444681752176691979272720147489808052487648631785715044790999508768811966799011966064955811120154561522376112283449295298128189360854708022810251392456051931310062869380412754412554843148940422161427382318356347311146640320215873607682008821885924956059584404773774031713543543909305024961877726668418221151625209554124009295690520373410821209239353721016386238241787550168979525993831672364965369068902062180289472176019702044170208873363393315479050329072821707771146568084805202503371540495253026407070325689810288701877665693202751154722586156484547928605088884824692743727521651238582580612196713789799300677841762545099544226629306971338416139988599760438257323262515503327389252030265220597354774185127633116549956275646169589357378543521153776045071718138678878405900588442397888632806700472999436283394665964188672245054116218284815187594984232042113912907468429086090714859024545691084400816710772053832481834692989005987143550917083637317108552822941352655691789445213275535027109163795026743880384450818089254257440179345089284287860316843661538384616530779117156006305070203869702425906195980595993247264117128568056296393920823409396794427731331351265153641592015951318057107742913208210273285474823155778755145210478624884714872317930400535079634314397584025731053739368790373797336944556405918426609813320792130200747548876482208571750786389853716020685373922273175179478623783189394141155385412769032484483338589075582531215110326671679181107754247617684772148093530259204906343821603892064814575019745003523738548755470255127190511977234457134703512338555232501890573904119279973235441942839153192335805366580065700852150370450027681028210694955013722162173890657374088510392257975574783060157732235803053745914832603470585598738787676767261540407258033303670985308386532621884548993982855774321375580381395616878279330624195519247769836528366566570563692244543823083699780718463761259816094759532023586361071402647707286420844205199692220371694521797449299049182812096642775095816506048532200481982740968176902947826006955677199141500619276130696823837406449009772615343299137654488243843610503092337919849351351803072088249366740256066579237643859689018677543203374104928301168688514243161253965725766982381865338170102302733515170069996832721940030230490576664663620628202812292163334939418197492853057710744408098377971152635086051900241827379898315937002810098191024511150974386510247819578588127931748210004127648511950758718233172941934916069173788962701594136463999169215464647962105002730665643134793899930912831768956219084248195262828052879581419441084064860705053414474970862890985532110225487061212182170668082646681082247452998562504558585940150620296187865977319224900914253036463081279651808025906216873315077678424018954456347592947747059720869774885747389033721475637109439768694056532657996147496014835864942560062879366657403854078814692376615592617120634745569676217987678997550325332832029987907253075943341395763632247198587490277518343355810240154777008608849472939116810753265575873451117330417554004610210665329740448758654671788719991594632099770856057168860022509458723098538400520140578848598255526065101096779758088506204893342675205600116477124769765434320098533785933221638773345122282931296216784449362687518601245904161722545267749261150389653186111465974473640903789868201487473080933155345607308029477912990746569309823183279264568094515061942327077527820273025397427614193818761423922493300158967398256905778192880416576469394873451004119306333647598571981405520953895447947940758989540778729654433291148673488941978531727512242818200469892531442740701616275688140193466288234597974993527882679385441589722229974469623167150250255690574132858065942351362108771931066356660216059896511777773665253216405705777216159166039273705813544734135880506933505117633797300121076065115447438107968322298074102244863718253269669183104071238682799329134564188512997004596764862217026781963305823645262145085369132052954836614882624471408251644102888212498116239553972360217330735239504195157040551126016602637543935550194698050412522748752602756914970837955811574241052534989900365931203733779221212745295950718121648021532716382838957165196176756659799630986016583094380200876380710645656411306233145680142622520902976342375443614516960258651139835277077577819601303937557336845879112173559558784583797311392654041343768923249341912129303874332157223373476259754791514235957237605890903970732598736734900521527100175926633304351796898378561481526273969188048301177225821559481058391441742833136012731227939775270002775432383005451372093671484682116494102774638610679492551411392368808149787344395657020176939349226620220443269953546896355210227175532390821182645507290047472514339016386207566447308258920168181778921079065465819961129346151651909893851545666418106996444597676453043212267678899580031299773357579972153692488200226327859860666103289738338159113216916772564272554694685115738359826461229886545109997520973858975629896989651426056301808300646738973975348310813468123252662935208246328383978684289978799079989915834625504659264720276388678183124069778356299939449311925024514775824666094524170502841783453205094708243237738150914542917399428140096722618190469753383215802944266411315964405838185010660612417792730053498973109250436229959253481551253327348098164349747337816450951324953323323668027215068928086672702482683352035476656541197693928819504712410196318250766655261584662140657866507453575757297902453957024273414563949731103174234402800661678781783624689299277685019508809065105973276491565271611407363860311444792541266073534203046304778114323917819503515978265626284969008543907731003499326984884808920050417149587601383309853661314736444151119534333013270288494632604004427126180981341809007455614708651974305514936127778424444667943017845716223352252916382938560607497159430713111340831842639714554153547210185717897330360387053818141241280677988316692145359883068560420963894239480817859686451098010241733760410746837069681563714703250154897404271167451799107542967348491600224344181985371894342817010925186835692098410820678544779488509380709221555201926468848603096489346566752249856314920367796277145784176631346511718784562516021380688845680360621342532297177350286545268802709449378005639953071573839939330255096254804891400668945970587175283784764495983412542010451119492574884914240073923191385340644366757504028627983851859156220756105792943530164489012112333951555677302686800405008428617632168597351215868147243721606881444160972365390577304850056099921517410550358387600713138162990060970633361619200181914967235572874392614271217089247507401463196924816285199236769231805729215850304098050874105904704296287446173455341426978457573609996885823957428817239525974219119193182156375581717185030118381676791246957036416751509697662760947147954550667158436129495791654403118747115995826317215855910853632231496823157567206483902525084603688970490701840252137726979804662758508004663610537558070700274071494532358880130909693904441583705398845484420155917111042309032492711277056526730069830398193523464469555575909690657336947968513792146837665947453632884338326506467922978853027756494979775632961871380061604926527983184975100796033879230928270715793246210122170543567412847045540537350733982720932707987542268681867567988580946065624881255450157763349906260621790484102228564989715658969181302548449313992584957083306364391769969924934446530402777355899362975260361303724260807057308432441930462720341742118539382248448967660884915189997049332628815218530628530419930995058640950781837599506813573307366667177531199279204693057195756202386797010975500355116676582460373597775774463512856868630123144855837879236579428377624562551514460640991886236479216741823844023177334482527181856680113645797171088468411874404216722431016580073184948418254783242554914258144959292051776021138938207840853342696015570973224317426704552773281936162402568998629323467697681620961688288579588793916463801346836539909997843923152238036218255218281236833428851589692525288380861494705893341302137083866106026348377071629749707542250006531080161118447763705097323392536577884775225039855618676645540460788090271343856317600429940075009020035278691798270083291767333418047985483678078517673647752487668387968880119619003822663259163595872763368540918502711881962819527664619348502699157644821665750254642082451396163632283809275724675180891116568428265502869873860028152110472237910258468952325344721425709252645027975535596768545538446166533813209315487326360847018898400788829948484482554858526426502215090188556898305864083556338859816370651245355361385076023813079469965989954893629309033947622688015002621043617329224196552497222493296969848767732795568095606202758182167223577891251600815523323093729700890983439983897536100683601753620388094253674860264594756359240252907684057326580673237317304914604802742831995025633945463823884742013746658772324233897942058351112297719996905171153114393252095654820903912638245309201712074043467716409074781771486278655069875973491600090415110290233445278112634006188675749626112538518209534222558781149521607890786367619733718539393928591910446426973945093490464361869944393019224909494168129876422799856035922738110306590796548548594145469282729559003081032401296894108814702401208317331769396559570315284974282247066841709046568155693367591474255710694004753800416669971547720751434557485711561802398134502204042825215411470343324505288182438971906442887812757688339838015433548319843860759352790481256531664336272565451092335791748845782554456976112236254949242660957903036968162352242924416619476214872214023750322570440674648030445678673397919698136660876805901926702056720421947741522748843312659158970009987861189397494166221862425719682736425671405332655965459695601774599638166669444442037154475534712864878244229933506317246159956010693497723102492469100137872214339279332542129526945740503801036586320927046874287774517233678555326753763788320141774451131635303550321007078080226206867837747164075954551673428136147174037493321975028586566131479024700851388111640095619146184442902184128320522434175480297498801287477078203007567138476294533512842984660340670004423151122583914633339117747781057923107047371561401044429675369497771828002589931695325879347453391100750401920654687013529942185636542517963557990124373915380726712470309799828812896430640521329245301114029059807363175260269737592979403645021151883736752795745038737388028756954974773812811302048332574913873246812049494049824016134688781016821120375668485035084160982748907083675079668933396736467512685299932913701058148048580420556951590297642935045127416856600081828535305026168220422993985152904842015631880506974882024400805921725576562818361086877499972077055348121823808120761451768474985471595574180586020832166123994233328996921176629017645258145671954200798727444961404983552900823573573755938943810879177137326255463463929720967086455680481916644844200119506459315044411459106971190015297201144841551996252004656444374423849053563461319919102157958096404857541539362652998349910154901589546781113686776001084840126597687827676442975628483327429328923426526054734185071942416456579450024473468471616719160133794140063192678754679123990663946501499199505890680835735867795813592220040798711304428117458909341441749900063106040697669840623811718987170263337604192467594673808081955276484900013121335452492239502405472631366014474894469772068932130219590061515439470693393856344509160503780205538209668518917855180000085911255567731333535512350300917106196793515577864726162562317988879200452798965244957929082371602617815471017366805540022099035340204694203329101520782945792079460502535900533072441088971186438916007591998087675516571695172034249082802165655249717028076307576778141231001803007282394812118902916758352502779661195804107340222033646890523575419202884330447795157918234020395130852592157550746889526428788821515699336717969888851789181840548911962184287321902731473814535919859087726089675098851406098954692338031855898056773535156056079379812644152457940183013139151566900678468002070351688017796748001306178990168778732425325725268117376524530334222532622104408619072280272434621203899954237949908107740995536250480327038999111246842741059586648118048527012338282635311577101580789489971736000325192262770240375196533752509950009707326744469562013981108608963988346766912329515398509124903541843695390305648936059417464481480628929904035580098670746298052651559795019542193442127201473875209426232233007825705309370810993611625358966971502864621470328962051184103659849557859960305616844726703209141827423431561710516036798030482971092747939334642533694622760322878567031252803289211826477815563188481099099183305161552338450909889546195554000781539778191161667768115261411421535211549287710336918001974302081291213370935690318029599578607606225067841022913125399522146091716009161058877551510961502021784716678586787269354983405718159216331556102034430120431903427255005499234862376992153011335879386124284439145310029196144175722970390775641316745215678392051912227130416552930803569999375912626941892420173584863424891700325693419758150835452937319704531846577253148510653625327719596740474752722305143994798996488821239001779780105049066584331085977948201819166369587279240812452614628542282305091994631144549357938365246535746357006060661262603884798220641275143033276683743199084241227087542371525566690526242870319245279317326071813848124927906518675743725004223424955119543929237989479109779117445522294929762547134617124505322319173358757402440852632795703486457162005944349196077480099688287548786997037668396606128886790375261918285427270837689649302567339159409552470845921307784513970078625521975036389220706925279158018947619553943585136819894642442385780209228804255948855735571709054998258212417194088588086525366697086561023701904653716458829042179240827382112765926198054625024077171794911728584351312378526772630581633176714293131395787180824323289576249191567996575683519992437806197280527787063361364617892353279088599241088666198418867561512346074292962812372445886354570875069852837923057394215129076151133407576270040967314575959970640294299380078052715971068607587011501939921248073617667270316473901831316836617732114343532938349371859857402577575483796179335081308481307880762005779796878311963239003358527558431345703073618244411290125387852684867061324298399501583349322631796431475231939807156198380175260755852868739509981090169016497653879375517089293871610918959951292791782671234331375887710738418218113049938652252597438131743459178738016164291180067899674478344015602894168105869335988153420309288253522084654043591918759702624228869139236206073336767074023596092623877602638644851386330396110670220008612710778800459423868833693832178418454271610340460112710387808085076742013868975579059108554130275323749146970166144396474248242956993221817621070899802709231167113833557979436592992696079778844036726767742010999278652263538779854305742066573676395573910867713700005105707446832665376041617384315036800651754559539101541459465115002331645749090666028057956053043692427710534493961235354036154135333465779039201724080859106050216985500114797033518965638684559060521678610969993942378260763718118242349823072790382180972807340722325158211929338337395051456759094530238504053797974497618851821375884495644940128058191708535793917821007752940492816649534093408837093783189556079988570522634757487965986872288398409903001992206935807447737318802886024264902605170309251252795993430150143429379586453560306969444897067959743357133957147324549276995674870231486532343188047155781553218761025267951078690439226884026083314610006982745842302502441207914051654792497494970676139418905999735574555008393075604730530034705759636258329377563661688805272058490917028900179747883376235651118655158310215513887740014332116180020551118495666949147264369819416213600058393876235004263018519004322412257399963541554846782017662379326913027246361417309948609041147979979109061538406057948997618707689605024931879490770156551842592725107887326989509630990313182223559606936950525706140963082086487314731427496099391193500367777099019566934606706010572114747097009545755047395476229755452264749914227848554633172896595618584613143304160951071286763965767813419907693817137432000723131670642288071719216936548885434910683035177531934662578651055852200354766828559166234144655005755724282958043620430206716825263773456025526356096339723576587762138325931795986937764026378201409126731091678722011573834559291613571045073891606946841451256098075994526400650385540410265414068760238171646160106235407997324877007435571492288087374592922587512594598238162662107695322639291653656991175191405721066261701106115172904250770090321428572281862128688839223361605529018335586552067202461790004546033425074511482185862892772069106261115901647022860920951290354513639405380651234452566428536492789953088831596174890377115370020755611284108555265376554762455040983238500904676903605352846324108732056772020093652695874854735704437993877401749510041230621568366326890361262037932575280299556819447140401982135757045987112163984533936008092215809653276080187981634112499156720167406154596347823407500657750542434149064471171718020380926116085080294490496912630375987838150388079062555299251937884325763741519554322741196409494969481483242394409368391386152923720798236977106154604796141706117029918097030123548102149960458593227550311928527299578016759824344462704016001008813425465001261732187242061360131053569875836550305407870767513264978698218189756570668365571742447116712903982436985291572288351805550462545752384645676960337418906594018652376562098958437163501012610067683288203576889425571021482384040699028356142484125631140361399905339791864371519624783476630930333261560090582116247388231314968704288334991636456436607862971852259568680115207785575450854131215296797357535814751476623659585145735532488944993501656913886022036664033152078676613028698647239767057216413530124390117412196646154449011101289609958783636059330306371837458387907151490798408962424356733664967369742889521583627169839024630620771354316995498387012660371816861570258101723936361809440835272493160569626821585030194358400976830786944299829314364954239510528067859418768544270677435043252882388932188351722058758628605633764432333180902945009042470568545025895537466636991111438158207045517572210134256974568477695008511668465695481581785345750900494778482860844981865776205437888757999030405702522868633311868152900906414955128613553654238179554178722858306649330025044708755910577477955614269087154054929838552796283204089317068419706016591277767768129437472056534621965028956702225860662980967664188497103130839632326916551748933252884496842196556836985954065778815584230192381750891710184302901893671160102043556930230066594190418024259379135039521066083381193428914308792485646460666038906516702428302330189780732245516342459435496348271865749999313214130196161770185159398429100054927741473199030350823764439151022111264166708333641063797386708116440940474076453092735150183719309860770403443827662758455331208507759588851656758074171878722217056610448977052159323491759440531716474827378318592665401606559907463965283013637862942422082995250384287097004443649031324643410846844750738399013720893263570532060104386499742641492258765649762130303935419726550631316488861444926606064765410633661400818815431139168173852984112202633728423939257771879688897717370937124216497098372616921632705212682938688475746669201629233678883806559723827511286140461157199480176623222018958316226947465638454089367725518850797460887725736071853799020927481431027890100911986670745809109351786819173773543985550769105149927674237822945857706564123194448800274682875510395523844471937028880243452176778574885144926458022530108507517883347462486173504938500530949450058625791230930742660446830267178772960302776383346303813927132692552259938430044388448098687137109528554581514282644570060394072505684496083326984978181396627271480462640272373201974394158748104007379788308538350570073018638317242373401615223382737133770951943641559859410096286090812220387020715811578768791265320612362378628318868720947625370533272462186246335643344648555848791244210071363204878622928505402603882099277878677133463847693557492587290238060649471386484991502125109556524199317296962436779874101366731161611872329024107079088862167815243888206615515184676175833472588758626919812370703799227351835039449309635368827537511804741960611767181792535789186134621893771154958390789004217762290846812727869891610452639872766563680521247591548858551604132809985352450419589341163384177712972073297537690310365656139607802185923705440523422600278599810650861984853835655205416011232337979783285134545276636082152501126555683051981041392948189545187702329944412418889142539172658692483051618718477747694225972563491164257420935862091061507248706867487955007023613709696120222647168570686330798234419216400642690145472869014828060124615569277147281061640705142934489453146582198348625161773809887317026580426567476485642065858765048287234345318262817227397941309249277721134030215426619335569877612920978985203475303442697288607764596837786689250540307591198366726289160062675969231555006637839811940838538983592070853134232811530646044722283243096673245162278011091625640668808067348229249723508485464118754923665531662456842319821893520485868531317444898277035580554031885680506295810160034763173216784056537248963643907427335044509755622119958350359972949117110451159011723244597263120700666615907622043175159208533112506741863621911782075615220280682167626519620355135342018482403506669754988336251959170775605766209816239252201540133744512398606950903761390913952818430146558546887775949460385899983757589393507819335985169289466525868659757020231461029707058286306993812461218029580764795728880763854501976434311580861005568773615747428504271134760278139368449766734192558846082235408945114287225297042118961472475496656896993716428829608946688997552951645741137888033019321654081116888680800066878236758374590384124517881433481076853074782072862046270645069609816124115639260747641425111513002489853493989610276867660229375660752885140575906820511946566931673866185734219442506989660772312831692745164034129904171175986129508731376452739393184942998949787752510614948352039326748555392809700495075322753108881781896863694786957756879689903662930519830170161304112244812077974982944405893970081865139975414527606816933426985702905527947856493660172582284882128713202948655539879556168613332829690516488851344692860863419517593955319044217960104259868306742405943076886407685696862115777831430184914887603455441699676899731683703222406160794670050571136218787161262079565049880492290684455089454260791112644564460673234513802527593397229392696738879902683171214638945376069085496081827344996991201064410060844494357809902553244398096402067046157420231862212061339211272520411016777339719531412089873543815640355811561229455296207802681197632828418466748956842573571140911559962628188865501011107760848293374478770859548810675858751069640599371961025646864905611934038816480927384960723516150752646422867272894749407778757146849602416062040146405030671162721121224373074465966770246863305008164164286088714495607990535007254735902925652938100293732750167406612590475038611376453144229538928753469498835154340991524269291132330563947240367561606812610327572292260802802295382081913554121835025284403957975055201436920930542138620108913548633044130908602363641585025258560044282866054011669804127171711351856883261834446929385580831651616279531613197524185084253565019363494223623797358327826326174419608897184638136782926760799712492753863111744613191064135861522589039407229208592173185923141278377646526430166368321000656045850182774320516974433541812716448499871900775434525218093225416004217443966524707050519655559406511515325599849321687191271873709713410808212152650404738516734538757145823219730355805036510775984799967526763944341938162681829440268872499936983817852127849974947639334181088915358577362565669877989017836732053878473359492555175512607700147935078899867609070386494884446030326838172000856600860627505989046137621857552193261133640508575787088424263734892894078730318027303947840216322711529926149311801866911611801203752777035345769690084019782042153405697395565737253532276124300115742819020676164607997549482927513697745792928693608954917004718868061371958497404441571978186434050787836066298621929162875497471005419248120849183947241792686963955597129353806550404976275128395343891397171265042568561459740669244675271498222552335502135627264876003307507342735366089488937478965909214985490589642771859159071438010324192949658298305782044645208625219711148238141118177546459398590116184963646376920655344553478433362403363492137278346838864697732954285657182205127196805760602228658105878858999313965080652358473504942186123657421050251828669294714106144687826141325738874959250272328137727773436047000325312331365713225508342508688100673234477988555240435713635436004766644023728027823115496259649865622054856647857139335854392718184428629756547467150216727620491927951975593276902434005473779312130433499177659631456196986003762720140340993288978133957745504655317364131497102105319306101208410475528231567370594074560815213640283736996149072536819393753111417613431072162981609242161263152191667891620092479935952052311641527959389980410777936737604673038138038897029494636650011957421705562188117288762789865920048684125489331701409218022121311600097088576062820874419737652065052248194004110039653429467229393702513551631944471072541318702571220217475053664728897093250709176058789303304113875728242366990080562160455590103827023200669841783997092541434820537607692712683872543192911369040761842907318727663642747858024924190679336665649205340165941806603677627733070004746697148224402521781745764868956163780010784963443401081853415561885296747644481777289542039271850377602741405442143659758952300096502629922571338415958782728820141399966083386638923965684782360710146038063130846666335930280450473306035802791378537523270388997559771235495944663226486368446529406372202340265869853106869090164467268896975487548051759247703562598624984899572123695546386114460261321559563607167781181135327264740122682641476356860810846702660958945864805339914349626875474473251153755870109340515981383205996219756005380509388106353524965570183827349544480465806885698906378108654092469007354829742289585340972293802383097947136023127956907549466417410860613315629386892070642795218726843570733278951410343851276007522953041179670355650582976026572086611697392677498631118108248546847829692658628609055451711632650358974849805567639734337429729746383216839052221673734848225255064874009429975201260856693702242937336065219913576601185265329912226845271498072829612906572696640776868435182747000060506489054855294242689837712238132650161332262767130230894268393210313430752256484741946228869176939883096329631715615665539487984347258766915357494815076096336736361118387788478372325249572937575132278674466476261984660046620684292324028305968517068261077866920607969174140309884308472958555054211212800555375395239516970286738942466559977263289413332028392275479079548300597841721178358639292925795735898490894121135769215875357961805885730779102513843768077174770682927861987729295551390091788624437366151100836038642082649393435608518103813410216113204372791031670205739157118075469514419656798070358055939888833144089519922666018231674374228861024125641406087629697523725173589063370974967707395834681183775009291692014088838308654127813653023149887018448349378822280198679997278450633355059757900578682883825725779626384955157576707151030586896919481155430134414528310211675557557767864908455683252285908778115319892069924933258716772997767335620858760163235406893463208775823588142889028079504861495704452810996794776563580804043129363516966088039871018717318266107184638473814795701497020022866137061402506988960319355678964021203266731078248130710624637153256347735843556910241732481932840965483422298562464097325058794091502866196891056240141853740945503352595298595154731760500860696644942929006599293246341467280702022811384972815760214169394232605036345514910175286093973932613921752294597531537200860985457621443553735478487471418978714891577012982268102472596435798604389649351296784788258963077098137166874900193206758073568603928000471200575121223913374363175528193403157372001584312787493211176238702391087555161063418059358229226769340213311268297383790191036560016228724912110898294414175283591991743598513482467403402784757491412122514856369931355938881414278983762729303703127622934790629668058521024077034796199935337429306555832526216987704807308657157516004406071434807804095818331729940659372028170510556253868122078454987530782996029944563007209491170732448353596899076699271049676656548166595782036782979105077919137856416078588439857019142176019841606181613543838661022131001577872176274412210192969793956151211226405687992817437761388184694199151485433435007045998622913995468679549724454917385113924817002095566340863579157899286811594565188503354535635969981053557005912024261682522727090829929092191546557072592202255832806939409404185940775684186957288805541249271178761271879623502747412432186736091183197741655448937616830264058501002399340841262016141111180235768183611848847690310246161212675753084645314453356537789630701984463865601858960154619756422306298520428771609725484155366977859736831737046856095061714339963518527999381844432504420306839598095871937886014100202963146571016326183202452543920085269062418915543186877562710188190139244645949847948398994624485270562606117579833483188944369853536890085794529344922857475601916054024932186308220699134193389096381821434778899168865478041101732076128649745785091618333236434524305104575243168206428399140735543515894333177594774979593280103877960398144117613872822249373461817206065701542136434284988743315613860815835842392905978098251110546833060189793778827018864367991914939227102688499442244941095817760540543764577839021980285701925391639391849644315168810796824734184923124381034416945250541954794888916144919664799580780909694295717378616466703287324128004897551775707172251934980036797547302008485034624081585013658485231905565268643564848253493882877633469114994994335932982689739145757822494027363621668249559137453012799368326429994328425947834201551874509237224227348127288540276334130830410041688678376264868830034841430142194891928208141387700569098804713293100700218286853652318064313249212447402961661495493031876417839483596712069852314704770479853675848801477599123346512011058468153320183643099994610198735377483561324603777525520632920185967944270062453541314759139462419525619659056723077464280190297374758999686206560064523774467407131076225274963424883704554493826248862703305383741871634513206658164368324448895356758674604266984639466179938153135332855760025089309402274221194520233008394042425980888686516966156173444749733461841069645205707774332298801391671728723517540073844722928402921850900306660272166746578826986815496191504115030619289133318368719747824236836263891807251624299364814764595059877897793263603312789181171844563807625693080063081369642626438950856259860789975768397289566546174359037275779925142215572375325600846962276338727854423450193224778940043839481072135755473323932030463553194512957563349055551186439355034282399274611712205802700258001531959867662787976995854618687242329334267228622030645235706399700827654889983893441344871467847988061034355227395763616875592669326460758961534711128154158521667123972049127714376320475084209645260591105242862476913695824346808307462013218289712653186556087776712340175484655194107073295915268821505183835704293042316683707011362608818390206081160589374774872582723707652312691153712288782156283423008382902235516069175131379161850110771176720939140344238199864515009090557755716131446258554448062790706732461952305628712263655112869784065934831807150813076657254822502557370808767030141573711457447769178793166248322432506164836025706971370829631087221522157945034133975201606744631929577078422925292049670276216503497675408963621027609008738228157566674966781365202126457842536356700064819155702075986703113159916947053052528035994960653663308439483645173289023578230699388503030934549457119073639504070537268110490938999353818474191261537629475923063302473618790795912612374490527313040756936571708255083938878218864546905104099104788345557252484838143966627413726529147558535452123697860195843137473124056821737424311909330533554800672798426220746100006580459238282015720063919085586288367281779643215395869082770857449711186753889242413720239062671230464663130696806620788280763594096740523337050401235976605370905267042958461556251290543019970605176659652870147077664368543112632381386034544811973533607115439034841671972529167879314942462016138540351084360158934801398315704622229693040223956644850415546955212574609563322151998398001490902427087171374487537032483480317461954079255830966739258572311394258871850383599312825842965598980476887645515022649295706373063867444571908104466590806706066436670126792822377117562663432994491522751076002749903378094051084456445035313676334357221177128562005074384514254432747455682660359072857839312818059984583021097209865507191068074843592292816514113540466015950322210284697684984364199778385818315863542763390167635362428167174611515222526692904608245954771732425172823946367942734251456462314966384381522661291682388300688213604050305736736475558123104744134205401135073313344225445263144224754857251369646046544145460065336184933283099838546424184123495348659737709108075805975954853946540723861687833737968085409545048782708874532402120913910866730798990291812570505797975281861754467801209608468960804940864103773509050323756870396485951957063284397391378888088144945655844974693790633942045171649069454686346046792959714745235291311548172311907034431769705678706397236407214404601735759806970600819210365244769249542157368119445887307220643252650942151282451246317771576788592816424785022911570496967650846915213966690432424146679389013112748974666559293408716027480465273883383448663831869744697154040209523304255584993774403930880219291428246831296521558973999501275456912289996335875211320990572982680662904478590544467539454485450916000656869327140157680621216957580478430432229464035189296054443856162758591749375578217791444106295741133376492498292764362925841979225097682429346993052448109445708041873909390682771674264009151774937219854546354126156863848040875470065478238724854884769107360537459643450047739644732317850658706453764802828497871106856696475473750501649512142207047934792686262475561769231111774239866567692925876135946813483992356177748193771661687025574634022254127298291383319132725387012700380872264883953319412413829938596979253736452245449026628139908797908035632238941831463907798485648551725223366221564751616875401395887775824991634443446290642581204657432533444664364617581153146891149593872458160383123116690316495486692934389752998700178014788686326235591499285088137216833215046705170026103806757276365134116179998678748605890622017912549333643495264877590954670803348980084293789465296123747937729467773783335888298169589328759413039577144132419104507719454475273835347860328324094087495431941225388243588248026544155724202449387347081447126188710989383716186559044038685229524835802079915069766874781535758022672918619179084717908508418937838042087018980414578647671868592788983921807665572962414240894599757576154079933716838936982287751958922313251160167131833969075610709760788140399861559885980483030325462645212916879704323393062328677677681655452458630542411952375610448087777754493971208065630582261881598820795180963908483421789273773853551250873758986374426603833290934475631395867880794524630662684647396242304702256935618655495059371991462786621854073371110477496707141995731269973668416034394857881457097878291373514711730659543573947475109775975004361080859582884566048874678780022329882310910568955991708506938201980353712710470636329008828160738737133704659143585673471866310779501189571179567625432929621992828246444996286395396564398912068727562106827818870246051750701863993044500052214225450988181331832493038350500234410725226217395082702340503136744467078945420498126569935303264671724327730110088636760066794067160684426393726248413407618067871693574073542691969616119081231297540929073950164153078742577865566016594420976629782176249294774384370207740120085173956200820436521902087056012672053536564340713736641672538891245605098303248432744979046650200283944041701370974329813344882146346638033320625056351450497988520417240032072691460757860745136932378278500454313518484619372546523780214102817524297870013509023464973943220647837778288580847829331939925425661609061568906735483819287357067792749662888645660908263797479145573881341035011101949235021151218372381834364462676428439652996219344175534428523744626696074867842311095668770533793303204573603406677578811917196832581367428965606162017166179947055251452843737110101363454566805383237433269348976844038411495715834259446043557102458881564069965154101826888777884984439218561238811819777877975064418340490554618638142892265473977488794383872656625682170963972619526777234774481594489173069357443094653894165326958846301341177504430483380944275471816479385767726555756799780241743415378859481997942671625775894874672031644666397417950797594071346198643288496491748133660102633561584700130395528765204067205118583617131848730864876854465735037775118299017511764167845683282544452424036192580725653869011037113448098159752651643143562962962116200794997287219141610992936006319635824201926297499664931701964536410551336180029731499620914228130239773406186935756817983722610174652326366348798702482580376068846145278431399226540388209555837812254336793941631754103762190781823356519403007251749140962547587312492738668987245832275765513395412601492951156444528881621639868272289314744161937770894406410984277396127052353813448610740669038543881390403669904563020890356433048485256611779557050920076868712110267732437298733696301634670890951730203666905014713588536665476541243169217818938889929791455548688520069883206421531959278146290232400953286849470857702528718853885540309926160964016838083606359047092330332976638034029692893380986141974693037109300684109147275249876314035202402354527824144938301999029891656034959728763821283823572544957496987979436968624653424287619626395485570978569376988501381730467000303680163786635813210122395977787911552781954898662968665811690267755766298909011648505739637026133136868507557452993941941324853625853682381717940153055921081649369404820976311666698505558701727419231085405808240734227394482235646360074552876572394759581328720278719706940755255931704273211200749784562165251665090731486607657863569500624720390732689515645212370027518464008977625439315389865203381431664599056234489164342129231094072543450877281730777498991748522900976318618862458996528370771192954851950843455248417115423692552925024580751737699624186604908061152138121811146518246781210315249742948908964644085726684833179631609672136653293507960746663063817004376945759327678993482018687591135870000351199980028619930654256710174971585985003417603559142804633870923842166653325201648516900502432667609155489650066690236850332246839284996881469356791572745537171549800187754316570568532730978612497214352126285680177604271259823417103200611723838501121263421518724438364785137963677144239827782696691036176616056251586952819024012959008378478320386161511141377325512332433084949356412351830726712024833562420320305449022069689656484683241274558752436944305342217489457579830389244625464899187698146569289963899492653044066011481209780718896937442839466356937285081410128944407585690576764360328100889183119497134738477974192091132893206777901822702520705806015892912878058660241202341939705609027530877144119154549157325498155828662660938735502865882547321589441224975334156663130666643754171492786624756535049368436957597646644718120346711885538407034075447184462207022245461053312179000451360914922837658633636090029241859071674188346677099768586408193803030157463252850614952853135949439117733967820915640256675979966637858800035147303190093224632570439232460580003824630782651586472973531203925521610650625808956862649151087179380524694220319006804645154782582883427589389901271698542236974539667029599685898624972348490837593692803373986428378568085692362785823552204870110351686348968292186892984733390059798353823492582316788771526470249933015239545260997845381868989669175321561369166753633056207387859956191914992231371168307612187869925628050274850824571826108489749565351591156211639723517289155610685122236640205122640395831566097333183483178445398554433684168632841693160716274357410026368702379492552832173976031406318313655235853694483829999125445284367713107280493810798701052852440076605273464094098678439233734269528087976575250897280978123521598844760026390285651578330007801203957756745072039905434298066194048954283939033458760162541609017275048648943564210484748349318545008637449288102924522327028287919511635683304567034772356097715370039776144466304022843315498533754385042806894848167266273084376575415949882092314498106612358905638038578898672905597049843335347083324938429273324281810117833714102540334076721404339864707874195520482871236234726679519849776399722574655596035839981798426445432169858772561588017542564850952388669080146028963004202221782220072548325637411168973826390309498663710946811184749723058600648649289879629965798784027307613490627472856195811107917251023432896624027457403644508756185891430521283201182725582265485222352998613158942240734737823007018654446464597801629052281241533045955922991635581448777940602863588741887225553748942408816522512693161282013893294957518714698220202546525953460127794063298833341098084711681279978943075336664725238533774431281731947680336904972967377654844213039992939918206703693367314707597817261972445552939160957653649581907152027271122280258640049224490324981396161972165023488551804513934551469231974841958751798592491961775972216272474324778825017731919943705431929011817194917934775480644683652624670525757693560305704751350705464523288306363235682985968664453144193607063090886133327513699204843669052878066401179769561395124164776557443561291892890185211993571095615037243516428543941787731749140251010464868184409742306904930745876802603974719296540518626044519727030311332783992133141650757901291824633598778672676469646043741935226618879795473271408465703045488153011517076830488800794920292905319608637453927355278616516218289578672025152890410529000461903326402916762596605233214820630790264690024165050685142658929206247394299388784469637167058595378139798919416503289579325472375035700376790579100503249241179238699498251324111624057013509035726191052649572886104123571680256921047198427110034062182384088229967500227436119301350600851643244859931102945580027431644934272912080498468827480130203686613978739066823921340770483497812054393581280896963177858130582892780887418586052362904268959855620545993273357059497007608868376674986854363637925579493518408232748775811661521735700522951456255793159519055084994892679222782449054636356214317292260385070963902997784903991818403032121850537511645179329791599852831606264050254144032086368098292327798915484441863565438549722593333794673676393128904089399920412558527056499250955076127702091073085181855932492131249227603526640710298332019698840182793934068890694581379432395830457412409360698513063549609378753300846252502177221438273995711465744142161322699139178915402223930370889259080700609577560281723761982909468296871995544584004619186913886791748732978536282249349078787382526571785477625207388051185253802562636948302896051524919874141811224673401219218777338019835741738503102135714296773276091788353478694214737544907988748254178098302029057051989930227070040498260246378466273676142892571198351979833726799081373450057651640052975871335766803662228095143291149684027661707704521776824112401184851180743844017154916746997810840497687704811940466734697993710234519025463471427023041101575171396309713806893791997981784016429668971230286671834189456796338643499706094189268863569407747566729897774112463430130958240548578616787615654052782272281515027528511449014560966254588749871985526764473421395683495228376029174870872990481067039040033188500163943869677952401604863187079073062650167822052470295163397030247747920668552078429908057130029703303007142634130340330389719531984009240876907518437068627671801449124760167581974092820839614167467032908555450904164245240000176959286859441765337970574129439269064893202971087835062435696652054633110607584981089817946518538641130957784246867558110596318090094578742996400568925712918984776240208813221607848467857025979286222206939896563170082415150926755678841266062983109928998746106164798369475387838833827787508144256841237428231683184406167633632624600678752331037059002400057793728944571022337808522931838577014430646179230327760516446839383362898850644519786825484554480123222469114087078289661994243493073746647464126268862442878688985470913669692642894776388663527340900425036956210213880351829200487777671961826552473019728615128880662309310759667839229133271033333043728035443602525141696260569844184791697420965781187659143359322303155932199292805765718527796140410257503760996146793402675591857925491899567238837102523262421650156177903405467010031811119451346632127445604330559858588431145666708999133041366753501343699788535044269693035419336595196225635490438070142952861477219463344666951010367874761949626029797533024825156723897399533633835908867942750451516348121680765740971985662888351746365295931408943131522644237488049929332610646114220415890307075624972650052528201803243582556906960827938771579989659830595460325727164752264196959407481014255685552033267928973090313304259965089915074062024910203918239976634429495421218092742098073318737768976252060978435437833294591876635159795886503726735322370577432398954376330504720783299641620878056656317482667041149274574915929343425092104558360534636560327859716826324326304399847420446492837933750257645378914503098666686261886091576282679185794758713024135676384564534043536028297246170641890613667172867155406443866757890477063851379582374331136872946583565897152062482367664271075170250385844870925314644170511089606829985774881680703344676690527742967879683917098092054409452145852821434285461126863491044281007817684209325456989586655630165496329215278450804782792899259989501779157060683369927168453866406036945382070309248509049927581605682358250565283691296560124761253806037562294238550749257422675523991938957384564778801845108237718072810795307960553520099301610293539598245076504751926573190233248371914958542395434409732670153442054747363172820799109977525829299563212960876812531078095231008375242761875730619485072059708427317419757754097132471241411705803650679143747001918093362728118042957447354214833935222625309734407332299174656151995634537619691966862259842638440296560865553558327238346508933893900432597587174952417439352311779555633339086133750194132401021611318473661764968408674262314052357662377399336612869573229351047893065386023675699023758374591637849988974646281360594086644889779394072850677816315023197187854638565455997279010941448210295068743899978233996277125871896616122336098964266864827089853967285927755348702720167735818778529737805300576408719272923242765614854496349704973070577286806272678226881081149509698268008123786050965991219955727464541464390047498635151151611154815715186974052248713363698640609897608421277912778844241950172359502743716544456900261132459351540392971550529567426502425190701574504607559916777478255903962036284069297331025613152786175149863016299154943765126960864259177694339517960943455995447447886386928112394237767351332937708249147247965307314515845635421152508842194197918889254656368289563747252753737458081376684123703848841719979765685378537914213607911138351115025426589824042296235825253301518147741199133360697538685841542956338053436091197112640517563398642766679547669739859816585975798243453244918010636608096048111340403847480076416449159310608904586449344900222845820995995174723052324105949981430096680773028772379205521622587884981094414561037052237066213389331710320520368657736286830793186750954001597292341504622498109597319364535089560546476584565533161431876729039233133923494606841080218221904489750152179642120616393762692643984020064238577427484679921031575548283498244200332538105140927127136295863407338324770209224948795176660126189858424217937645654518851334129784216565790895560242160353847396490948256578970019006257840700141623615708624615331905699165199129996145379443568294355704195883630726429480049377008804008647363105700897021100828471359343146515262113869448147034600565946841253927851645105789514918451184121368697355560843317620189835403334731922496142949663377857735993266355087038430801734304498020252615563560416572735791655099268795755882319773201290220374705002209953575363762104385670656358596141443787395068829472736503761836459153958497269471546969276963090437564701613454046214932587921008816859407605333582926393236648189884459065054675191467902759618219873466711987577452806638118347712943371579066709228962799535774287980124484325282586313861275732616549205254169052011398498413163333831574305378462581130893958201983160756780363427181629570860222179828930066769103401465171389073350461590532013461562623608177117649388071039988703839062766120895238326881897786596154905372825887032874318268213872573631738229133439755636562227213649314818233512849593224928471923358485002925606258475491271096361481869823859949893446758324566651617306315085017304733693462053844603997291566474760682962344813665940753792071687690813902350048842281554979043244824052028107881499569432166076941506040361923661567295696923635334545909818584258152053094454240822375583862241258672996533463585316278344471931175382736255146053512475776337356871275059652752777010105705454474586378552415574448547146437375260972998216006796818603247459160002834052641557953750485449388517993229702211459209956217513009512686056927476851306645890836276945021481526956346188057638356923870885369304927221341081737465878747272335951392514964946914308903969550279631293185734946545490151764018588461832188577786130342071849094317250648707238328267136015264954874659103145779472173277411501742792156728324224414100787136602987469392135919582650541831081329774599612579497774319341269689963350620127654114118076372596758651017598695551606942232183582621224992886664452764997924403355416231743002368279648838307088380428288543608731668986449913005773237892274580882348163596343797919440701625364912050198673574180174979302322286507516760828302573676882895433891460715237277416825608468624756229949034231774873205331321006103300365637898288536318149105254262158181254961263787508897842798598365711596607734216934517221208011867969062433179151389406813572247097372184365298377762823689816820108859777104067358024892747052083619816263235231710890058148395940508205681351282964685914993399513786775747315830443150499881461754083521580830985950083929578917146410743260472757886743880402455660777954581984154860266055724581740267195294411777353652620221804382192753659192709991557377238414859972936127533020634375943144853400462336899888409022789938328947398054405824799933270317381152206840136860774702413069691691513219309996704914785261957186008204775027929003291149855015309413926521698457813174527648598671504453231871573405358259976297259829339604412112898003990358400673458310962972428166416193107435861329606037331880462454475849679442765700616425347269460634685113977593295225581906877635819526181743409065698691062165196764683006616129286469502562212060428661272150027820382497853051800953319267986904581921105940475147577885544809575303561338203331054069511071388967148823995857187217715523527667857766603071276870917561139103956836496055844483641193687328057538695131235286000556799118466410653359360335824829073517982272782639997459241628896810134826432938452068084713805661024967784887869652788570749718788930148191649847821678272318445985956243832665512496421600345055220741789870851061696747391166701917125182616680165629173227952328596179317078618640355909789762256508398236229948018180790292795341390816620393689428990602934634659484004721661614608625673332557771171402396605628028501078128124924112988581592433649089678258229691030927608092084471047343561816591240175583273946149195103317083382020927275206670854500515393007246211343259739402505230358678466400359130642108576668142159844814236271742682344306604284879998949358571515909302751106131455153488558890307411970281114746978113341833155273535612308263006404379746857800698796914761189106781751688086026391404456226445648011490213137786044027263124620358698129049270991327981940490423929367517704393216468373900762119559449625295761996147400803675095230727950164313083966764918719781253751097129488863112334157038592326107809426788826243724280100849672299122245014524503581210373061695347460035434941972655582005101655624497923664504030898953022274831207606855815874645052454317374961608151405649516192390243313877275079077708486524993168415158696755887938552749283465053408416767327097183488346637539894006932751920366110505045221724756728723536393010105013156182396316588312227624299533692908173196262196447518661886959166408682344801598156651557831812181666729252355579705454041629571679561710199237906451010475220889405739525544070519758457495347148752496366682316900272987240810974407199987539334015554313389103873873399297752833147152440635280407910737067707644458974400844137584577643654718466103855011864579291861630418278514974143910195310202837594443958685028618597219035824169422169929097747909669513140727752583152714164912262006857392751255567865149716890154310880665394321424771822222314594156502471740111784262967078333899295512925687649859717806552546075654836238685281427071865547245363521782133833834739783719516549114320380798902740738722486359024493899404291833684015525748313381206645083668456028399995349994453379004137667932917255623146998623503850079937133149425431033189316829450322982367741535849891548580395493104007901861439446667244897376146203533704382186863512710361529725791348218391555659629964813260304623236105882359454239737885770525853841362300425047201696488134725763468618193663538247125773698858527620926027583478335908099420675827464458842975634883830701342653963260715120316971927319092637448233921113624914787532753573124879473122611369923556695040404171828934589461427925540143019360518411597749608310530886524720515506883923502656871706643481954563438744498060362551837730040613059081185049467650301182568767122687153944407593011160569892308383274948784799982438084372059954683053325912022896465125459975489758417342811280844700881700007306388174263866712702496058730242371886437152072552451723348008011850802927743376375026798082854738635483194434713560187684157488904975434754827199912447066965514242117044551760326270940289537111725073132815141121247174577762539811363556215751014744423091010305598998881903711759253038560504307343513936910233625073359523220900662380292744052333939458791689827331002792353822676122282433170048846924812158359827114073838749436197675911805731047125418679830185994174982501922424135185698555030474277810597563585319676575693548090806627687248267346007700369855056194058167271392532628263201899465417871277299609701672944410497357999818187047998558482204667360385692449910372419678701091645726941586513557081716752803336322342444194619200118607698619927867328097861055416527594440649807497263628019978152950326847503388878422217568127128850791768242099651837301512371776822401391656076738323000693388853289905051083330147608868027741995957791427143173449403558373729717139017756881412438932423997912777753797557019225079391267622132755128062424427837222285388017509810093809697781802751736756167669438392648244967854827690956142850329473967552628759092952557222158198822999285386074470440925532330307304077870631474374949866119662797193496207505945776011378021870812895029449897029517455755065590423732135349374099710079288116820751670962719592337416861902598853077037347178920621671474665911830020588800712488331353367478544072339251278002050203824397900931334278881331347202450010424154382128007104032280261862316769071106640268145181998851471096501997217131050152004171626022614832655427133962388834346621261620570951168354333640523733497066673590047091155201189189001828187352298727165048561974589091176828902739640796874482581289137135884284912054463436649684159135878161686542909568261333482806715105492095480635717651733282058724729114873169744917395092294538823465184612444257963581980915488148712784166822487637999594706415534188814873648825714811485897220368683899768741484870303935460730960300329928090402379852575662604156771022163634838991171339167322418461198449124960740879560781998907553752798266763493175701401055826838218511608839719253645327268544907992465253593440295431576528090000770932341808054191534235182504802229144502619977208214780675356199316759085289898315702316093131558503297870108560942291894961229921985471896237269077974478031963637434002835867622924715367839772222920908953676794328636341922893901362028683405181261924787721039652915637674879947374410558486012979357704414561785580693623862413973290461672457311292597079011513110463023923634093980299814437912857279021680690063002381096113259408177618762702357795840475826328460109723862050577887536651272748121191020206529077229832833100067073160783632724322148539075402393072842002119382268653560256000665753854664070639155696713472488038698211654153681151541825357576222724511157477353388906464488690188456257632030326692715419922461305712329864309252992894777090606905885342310622969579516737254637561037800391862618319333316530880620758159514532629170795438460955878427677042042257757775282956560005464885267967932493524546460354738758822963428394375886080702592491496616136486615331463974718136473168759514358298849666548746348344864613283786273563409638732962535952013679438754631911669840721035858424528743984566115769333444454851928798567707837554492331586225526628661431310066752653911715848264629906649057984158393365200799155295319480554173412373754256045011221761987747516332741970600177968366042711578235633965785089836202163955450562548693597591258962116292853899935280768030061817175575464688143656410069874511799962114126470194474873277696449489025827165757449239970042766320736784683008762879492976112586475347911974750007244943166048701578918524690109348633408787774744014379139809137852694081935344080717864989768737102107819311638651361901500570111904300055232122386277789008877744134251979359790150464723179948272964719426011665297704832867263258468462154438736944332461834664607852175706774140849919523875613101759414145556219193113918319961644804825699085117840608991842612841525718369453136527450881853752585579652259668620874430811865390170872443551024389068926529773613453846173597039706827163796154220648833864806071081076320180091133660146550202523121194676371952505508834109999271051400986041180698013436278340540424687657271099794961581918349133438906388948564654986464514325950557272584725274136890002828951615867751110264967631298087973909532321893367680513211685390801954918365208658967319330740247831506076107250905176227888745244693430869103991435952256641669505173308688497966928156723068243200013052030772201984681852116905311388950491647578942576359215501929425583622075404582274323036155883516977821804817714049567806288208952362882490876290318589031979534310688712004850564079326452397756698484183049579952324416667951417696983146993541786832203344596269671691436262985444424206678495693066157425538972974722370357223867500307040429201657119791089620721421522036603638409209090926907878394968276909686939953276641467275794421423140378334285613905477000243543856207059798244852915064639896571396221097689213368084929757811311560396508924481699256190156142282008997947679299775527659706699008207087360898216669738741853486733920065062641600655287641135147748110541459512170318791388562961211692925688233097313899123791765993097682850934950272525266624167320295308843306650272802744816350434895930514338505597514484478384802322368693188702996914387413031213763598975616221733048905558997065755803705749339020921803642105688256296528846508457573923734945016671542390848913593540710037615315280895047824850753265731718944110670010750355334261578757630810210009226020971504756012799944188631177295359182612528056126033964071247673601394686459920845591808242935054764698481669078859351524221388675629232776876701204471756866247518334711540648583296157953127796868228712386907769202162868454132715320162518707049232615414834535303340957660988597676975688285143743803200403157320737865693550459460747890325395461153119199922467168413224418286143732360464271158322538102220458532046371025848416224967823104712753303820787799910622163099127691734042913314738948945852497564778788545267836181479052188426889188111523521466411187467344392297625308872420930469979987630207090566837784105031499334115121331874737877179391547242563128498538463953636094253706416115869182416358231485852117443020519532331656460196757112654344757318748129799117076097687678009459202514986899674876309592822095716111476825383265684430147758047418303627071150781505280849593728319453389850064032462696207041757838801650760753887202453277982546841132134793817032549426237761353741186064599953498160410987765204397375166068704749344236024459985080317772685686852464558376235585575331614672388203171438690339128411198083834451710524787431206530623622868068339031346250772530892451285799165895723080556036718569347924556491556419446192677707969684253654189704478180723264181114086025299205910047519728688124281140801458196423565265946826284373942290160213171255391533155212705155494294328822272260941866779139374688203433143579586369349447662557476237969883725517270212674023398965924970454685342985564336431828685887442070814293729815934720634860182522674230128162011938464783004618137642942549868977714145167119991045304612481132591541124496333437960784991671078771399961093463639154629908565394312640267457146415240715988307947477347422525607375206435117701314440761811975991742357448411552266816243097372414557564644092242191179524945931647740124305965359455816009847991581695679148201556632506013492523434855802263581186354396879425965281036196162865553055791748040289613842534759936951438275015614420020059131506213942213903753396299644485254674229062436977676286321493728812753915666523569991028368135748582559463058540612401690547993245618347677237657690680729418230677677832807281879699734593802463314205713496856697053234342836597343963517884499695197542912976483902630813635278405213379211359243172413273428690990986680774187960452234162235097588512132583057656569339404565615044927359057831271333901745570344538701845009404828727319849497403723935779374284381541339460764627854839168443665153074998561672306486763311961140305339008835390087456755665701546604090393701778451063017812624665543937818762955462528327473185530561318970100940156262507849983372099281645053491648861256160906530526970650797872872564945008461356700604820034416928144722307579098468754776819883641727729212688003626134843698865113655545981894560937143253629677402783837115077559836588514514087664325790301167736275156531900078807433652744461043226400263296359523315836191350385133296953113637760749667616010614873995841964836092324036107529410333238898047656559442694402453098401836049774131835333077582332507520014186250523753742927740675571069449661019606425615771325185834630021288375961218633198000467654255681285320442845846557273096057334176000639024822300501376286711011582890094433917066877769065300798426286473143004297571316330921235861839877622248179586378460974479090865597070599226827485352427238118970225867748665516160206030031573383697771126929569139058330840115509832474357464534336852310978256892950353921532600716432278359219543400812461330539949113351690968365263985063936515028465851539902413366085386805196915107654156968661023509921607050245413684737199367716535756133753185957070257378173171281050958535958507643965709822274902940844609648736041928994400733876756204919767397766702815443888885505119917547677330034805635170779233113425686592870581203469072970573457066910755942334715247164575478465536309742752087394876703778092784143111039819586338066124586968384498161726533121636758307609477729777363591137166851016258425715309367744547935262677163005079625951146877693008793672412725655742630292078704182915328794173673923224851247381360516955085861434748082915076453147929851722336380698244368407751671979619096144360296654602106806943862964676379627029369394671637478367194082563088981404750317818503227878284965429698125295913612237707199411954125759580955585862349356368151305289963784866887206645623325974100157912957074663214322296260696810742920319954219556700723720193007468673135087860317787761588373726196621726885113073741733560385580917745224248753927827585863666940863552600355099164191924533883085839529997814850977406830477526325324141863587245331413129094913276583182334713794680038807617614043376303445286369938822373575503471836848619315495592292437320573355262350349961147665612196729972859472180441510686954264244964987187275519126800863552883537502900039417745878616240448811097534962650240830210413739346494132284312874987978955923659608566290791593975541797424426606268937775487362708819225367305610140185976508716631102256464463017323446487537767898050806195571278233598928966664378629618758116354403279730716309094710601279977005128101548631428915456050124545028112812124583017533672091649926621623782391403153015919668111966806651154778370755503636288816403806057219508971204513492649463342279873197240526273785407185919654310744378933892794569856795321096594479519356516665913032278512623227875423458914347424087212174398477606511826388673166187624491005495108042134199715356437245004106169745667203737650732180228562188715819722600695027509746361566178757046505851241590600719925846277190232594722809267465617620737148061601347284795909510382147777136946187769196943161502602704712252047660209682264652713088767808989752508243109940372192281245965071909351676964362631396115260220114605308431336268202322689747865000557174916434525647703529515949548943155402205017288476628248234312433680605637569139878130160435296121328183383194315022838276518334245424419008065950314990481320770328984185374319234557609708991666955302848444937839421331593824457457247378758250092424936740136027235025671343481466435859121829259751246326655663305307521867935013055866890561165990380120715647374615549312093459792578841790133571608254715570883732384670107441631081095713613932451860940404150702732958766837580493084961030748349578262897557386931406672570447362401525734546667875939129597572925328006664851285956411107352581541040655556211694532072808020051026247070567795598489859004748294408637128250537664854969515258080827931964176424685246240413464706048220296601120417729258806847660293552728996024075916735756663337703314705654221212510765052899382072373383217920359936755148680909821904472163081145107778834169261595454580221659918367184630141766129806912987626462699865257378258389866283562059500867070539273660536617411429513983215138451448869809057182500073032482615046127222873517814825100063613862797007605103721437233274556924842148398291943184732174750815159478736580390792330914832166948580015821557135294845318700967885084113425275013795568238939499343951980993098974784164522947179880439831732237676482096169563090934033529001386541841310677277855122076037186820889871692960716226499597404367699857925961743781376357411774998665168046357360008603057018034087278915159266258570902635355559161529322125010632289698727995574346634195399635146205332710526933563552757933602564110779682594920190580899606826383595081335176937771252755611201914923294439282444457244951105214000630807329065008048975317714735786968428558657319868154019103874494481153723892183778108048638058284559959295263771818641700518730732823169145648592524132296131994324456634924149730535891579732689820564721948847179651296244437396479358088665864252524188952922950246994608375183580556681592187407123257451237268587476011046521880004585687898478560519168376044531468050905930834831035192724633439134208935671835872658740277685078241690265648010822039373977566143309270611704497691810815625313458035012520154036310663838191129188177960920366237421162648893325574541026162189389024407211507703174482359976506435744397813363324123535465172105082369009304770694818570004110187826158411767309518960727265301802383423425480447889590108380774492176949493423458188161729047344424718419928571883071314791253593553023114824677381473712518639761389171775551632950966882002412702383070717065643067393724841020743448823715804827323828161767781354140702227241351240224256064578188516127443634578283139147473508028621366446320312691492321407324031491688278660144750649275625310454622225924221060598424689173538447558560518586154963679489547194027160256624310489228998088571876758126986117768347429665620576281870807286012641146045584376229506360366151343894374842096553147590713003695939644255093495905888767171070895742411025405962040473048152683318564157347440694737841105136330191706486396322703987523680982819821320390163349540438130151671200151838541649084977739758155850446116833644601524871706280156709019718808891774889523845239421117192350426236830996253593731763706691911301374486743777941667484473636070412737983653484937679590738042193934112700843674121366600948578623066939766737237550165427982604587267096759237203424548905575788431459239227403114470094980427163262637465610354622756738606027894543024567261784512922506407772149029286201814904283257015522523494206251366065375715355945666804178567401107137095545238271461559133657798618282525167587758976646070300764942491115419767765574281330841478892674995909421601844797970648391669840125348682933508935542525749972561519345785344570971753788795722360417340042426016835493304504135846081462300776098927684116129344539713835162451303862614122996030206812703219357820859146483122472294948126677565043485234765251020592847723235345892873376850589328530185275554916724359925258898305719183531265435100965819416725197045550861806387938337030299437413234080415205459158714215037328746276475527656926353699787744060044084699054871846587516941486515116597459766904816669599678544682133533810944124611007040523034139221854308194079197753574452257525403513258073949250800729728451634137633268314289304033155366450791690611036222261537011003041312661450451091487365199225278321304764694682151891735562376169570364268398970295441804185037175493593328885107845206775526450896075701078645131469672582312952543664552770468102247491503087933805631019078303691850644467997034956804166775365582894597552463493393697145028438706704285250309184738413242271019523958980017452808135160580534115569579690269704534630201313067685023492920260744457464760163994310810134944971094436832651404790809201005903330650371387779247827968972093144440465905273283914783100809911399254696132208669275318028410546551457502835415547638495843157323643945710335881182216592608452981446079346142998223518114777442671827849297103303489028439251269187381682539622211403185811978253869415932997670445156216188881611473133437123390771579813177514057052194647641307327400053830193632974281230469920152220144879855968811289895750895323619969280196894053274628474476704337882738159105573649992471658249581033747354200351971363750340422527655521474667626731802338383597483389095142955653383928142388044019107201431975688481753538364098308799226795877774754912240611766901471832572640709931037122427422106481973291584614088988946031840716116886907658850991373432338044572616787855044783137856087839107010080139491438524762775704958203881901875632354583170373482165810776124044803870231125111230880973156140551708119984844146853074024815666750449676385718681384910918678583908930098978601186043791445692317457697638085551915638351039175701962450157293103367370176422489291933060166726406990498142337768329650523451259572245621163558648792153988152658430180375932709656110780358796815320391314578313510261234149819632513784194707847281362078177257918155135468242617881965623613170643637963306871635175943722743467542634370910186739698342615546772811606198006242298687528731369166091281486457264883530375712189528158750359234500033351757431698115480992044497804219996544749356125045834206050428144966874498806437776633162932821755672628787070902512210145487551735282829165724964475981827144786321688774095738458039214726002271172452675806318133488498490075461863788186193840129193926575641301280985808966568208534211458902515026663831525849879965155731882852618642982811258652617794717715879038211553803805374205373972982944053103680374454546493823593257225449870458575527921831320491758610134173869445059015624638365281506903879532590960410530095228522778796278521669836673904196568430047436309291333495574312087327496403808438093827665989145368727760402036265851828478382186111210778277720960405413457251899021458454638053714171238462286748932014417403857085732059588564913375700718765790724274182972616709209331192565977667011480559777245199323913928351454992674871885080524768500092846944795650364396398755685748723135746469243349070029122735843671531611022752635106768585139879834130917844165920556107159412683229309211216228507886759169390314548591336777086289012205875877605975863530200400324678100073514035673283402603622790631541515983640731646506548877417977737859842003567001776658603003023318877427960293425140251131206652149860122075541839403488317844701318003030025177755935922278302019002449925321642178957646860522864383578087604855877348966691176194557041929506228858346851013462443602969623005649135472569974344448428500601577370413279627929615793251440974702221288547626683795527119535173524628601253301510831224476782069868143277554241988473139672709363019450460378437586844197599493797849834469631781069201339082670378934265123143450192368853088973939938537576040250599956177094955898502665204719356901173893501959292010749623718956302342074797386846072266392515983675536992236067415681660386850201814476750284027704084406213119155882331179360885138023322358264513911131684725678669497514874464981885579537453827639727518767885864874639225825164221398543915269953077973870093051133718192331789190825002422273473462191152023085437393960452741618676614276323239410934521291461755991693233920872720117866472546622343503738534550392265507244076916050730983443263233825889890434103312060439162638918310939634752501745190051050499946626118971233897263433322750032258387619128396418976502343322834907316724185622890656153494383618774088923146916331862860438779992214307464670255691654133977918554774976522464095769982435817275551873098883142736507318890369750769883249574468587510428973464707308449179305966945312540759374815709836401225280744915727288432376893664190084091292334711013526420211900402860044149354309522600972510909608459004151771304108724369396423679737466597962241765685921721257584368641241220284384643343993906965028412345889192906261971079775175448477883358601222101640332773875568768818611928718256138162545476776152656000615943114860458622598347680481221415109798748207432070165143562623784795683445389120777448763809453495889497030744486837309137283339760322858674319773496265613961158699452247808008466213857554123357096089771891402323402975940147180179893867563076555255580725950190486793299442375918372546855685847571131786769912363701346914639958183612197384213481954959374170879084593840491424749004545567494846688004607341326465975834805777645773316212845445689746481125602561077481861236925965893955256669969613048995249927051858678491111764881943505517355692090543073615635661770453031969677567512817018133721197177051379412365066461920376827762942359161045406456718332885107904782877332663421530585368899949377313934913939663707776291095116135274456346874455519981096252152375021706694182617852309062650625058425507316221207092258447089370272588258333541028240400659049144336700639467753054663815402451196188591872002657511209930859323651666895673065521110518416688732237361133738242022377351694621070329488352118076940135262210894224582442099594416372033412871495752207495563819661915857708106359454326548221738134861184924341730833834451299472049803625942462240934459117410905770308019745008602605111657180015152250243319970822200248627872521192536421138447994971550519297152689860347270446346590614582988627248824513346688172281755287465211054693689848784324127687525273157178950171699734303108150177748563123604018388715850168839726305407234147454790876091868025521937692130174039877963551650093280498215540979956999116905735322080324447757448983021932892781973845246536285074530697348695549819303382306788096410964405419828171433923426802544274838899659110096190986338408749119869730866093128888389465551156821938543419379081652172453284599827962109434059499699772833500209554107277340023933280543819945323822797460087206867666926367109997838796939423655749924614721493220682346636473436846132822249960136967852094960492839497604872226840983837763844398126435452653410863422437435369473278898666118667633860692369267626476158660142736330499013227164347351321047177528638778420019303967129573982680499708182471099246082810911879997996900718362107339175553284537873038469689872184737525360361038042000016613573661267797809406411943185259421536327456631731441893067139616957406310852213243851971173395974136603919161998527729581340911731507936446267602880377631718904788554299191669252520654050665590650577543675636708055052914153220651368246269260152518347941613703057835442426817929995000722970648406988496671167972728408145738006231892482962365918007848027527282315598355792737453252948076846953369131745027746004243373114019653236839243287136560244912881237382270921498356614218070061613089801351556069706292497425062827101210171409272336334538592186956819662588740803240307520475712606387183217006985256208057093014268848030394911715621179066905286535585644220759674888929784267060124762266291640201103367473190181790434911812688895519326908741757241490660010939951065790328847699186392199232718537396080205789856467001534913714266763033367091537116452454851168193337895519240947769040718344346233558567791620216939198155815238128102802004831928593639521692276999057739827157078460975435454491904073565846965810844613200808249829347238335572872631331931399799541139252980092015034895813800181462177537419717551455057963479604762104345655160161706138671381000135103510782127678423713816607690539809870556285572064933669846106924812518419270367739547076032071031935321478933717789459396601541796417400098452689037007551927155538402924925485423816770214096091480016124047307141961941058571537337335435650497632925495541541071198487938356929638953761074553430924044703837675077934634362791856773716372654619345571286148081282601634827375257118977219821872692015736620640885983944401169005591155016077071709010016091972432646016452494815514117014583689772417093756494880680868579290462147161230581483114584364321000282010167103692289277123242836361524794803216525176920072515898177136339033102063360872733488023452263001410589172718243581735542445230692421851300120920957389501141967673774581967805325948343999366957290383509654937942212841572876598721536427309211193567760545579206978860099597143080484378706972305358279349395027457005665514191669943653497910998082484266402482143535461535280372760156558468090438161962087331979971815093159544979807517095459526076433197094393207230627968774234340567069636083032707360151157660805164739998512352103794417181367414616952310884622555210151111191182029387256029279521919861798418733553903962239517078276331740657584520642432633152632580921080510742950966006237950758589480426085430889171546332033333548808857558048764585702677616473830431037554244599357667616868881286397002870384647853191547439603072587701538638985247190642509235727193153873643249646439948503286711043346203710122474977503841716127576267846323670214559936389247649696050332376148003198794788433565491980878354600301174608675022002786952551407829582500506241192852197625674712896458250000020030051750016017054065002934232810014223015955929379351520572653934632653805936849897066086852372234829470985987445294461045710513492509076416099525558978281361085010939557682981554115531467540401436913642726285098058522768171373904365805779079453751049219221372447383648239491518249712405008659151991971676742687343409183905785789758997956810779939546767648833668748682319588656348393384919884843020243728134151646784867617853451049155046191102415035101263297234955824346522071117215575103536843542613611880587442915255568932601955310417480084497167330208230922757982727367844743807897995438794056568265091376797767021727784720626503074667867965198946193109064429931246737514015110192840861323546365935230096585872620968175627973449179892514007552929055391507453394197068686476879693106300890555656625561798812093427840207029179243154395263507238008555091558148133695255681460002460431567846426255147513346725813963992291836507718429768982031155687074622656746969889178917394563756457367571039395041742872756884805858661780077043445405532199331467962315539202665064349927038495454211775302067710808942692244917487741382433933800880120221175619690995693666683733204939034023677629207397680621339576496203673618834768072710904001480209159288164252309441885209326729614595682953140177691569889982078940471513830550622103371932339287406973177220240537248427727649302207698657961639438970718146546695495165271424053087234586311570601488098444785872671716276557941641437117998005257505253739951230039750713560397046754099816816922157249411161527076469873764604817665992500206437633139397039270003113341918453011518171108620557663324997846124683952383406070326573764246213693190824435941292831353510032339802681853350338393762430461562352797998946614377551770450118945917994555809719861674818289678622022278048532201689600503925014421279940991075265152863373691509510939982040004908157407296214298256723763320151975559448799867680737224377737982263058560710350836662181175767654370697318161353273166735658832772269960629266822603504176082686314419817509269637692918947329294327862870815630742766698720209723061000389486253974221427057540564832835583830905509904403260984287797939507594436660881455830771064542418009535322151673730195919697753134388222733281988976458610239699250558846751617644905522340298526584698062470038743934719195195800412060355745624433492027573998322156087876549751664555511849518621384252640278137499744147210030548545488632716901348746702358012046488729003395887026634058730088847450966338848962328256720474619737571583584101228025822448184702913958049957744641689955950378646561959777211218098054641371958179019618160610946628479209733906003096539810017086326038599155216121356280571131758332327870863153475771619230236107362814191384642171683002723177016748847799526470625478478722197516301495415411090044122235201133607255662403566034351230329265306836016232410495591962019766060672980278858660510127411617445903318755548930225509865787095468181133948926219906579076101046218066620871326567463156618371429377612236134870747778193805350212123074915286528616395614531689307991348450070077122893450527087720390431590107713938575167324514384660239313621026291756739989913580644702262260464333403396360584974982103719360889753772174677036745736601721857654468834041524262136610160512547306563110308751544066176894570836820342770160406143564432363019281657864257947305601583642237740269239479025677859699932419248754224791860431132251236379965669753340894834496918204051091833780658107273919763536298966467936794325352228930619977998008805191697640866993107730264258157294676293837073830062131450329864678823714020800688673012001820077108265918383856254674936750898078439555424923998157844907693391205838916608726685316338646815091407513835136392289410300501604761893368053448797928211537820612041788805705216982272760407107753222619588316555203263244696944025732731193467591728423975076700193557556555817190395202776797512302910009900822129555286368977749767616880173169805297834115933255654034245826302832630565133705989520756905960499022634735036040775850824322983053155898014444882065556453428363956692933980779893423230673684173503397375134239340894527080394482734813868147809670066749983340532698456792849060364033373036521166583580191910455858169851937325841225442886271950508119816453727700826240307934914632833323544719752208090174397216614024679494853987720584988495278249877648984426841021692173559032590986854315364713348719352737770911695592885837762932149065000187939628792792167152392698208778259906393664723572521635899593384064443618849920474216758001609424859000410751596541577991638437223419274941638999801469638755353581289912939054507547739181614204301313688840767335099379601142567863793186880193346008212112603343582329212038940560535055166623666631861303891262704306332415563744777792828708876598918128375275183988147966677317223714951566341098490102925889247259034433537929143141912296571257172539593122526453810967675652168626621024169072922675423970310777444171108742050624345954002275843466078286932968226487706165251410250649824955435389715118228726555561186839554272439457560818898810325286877313233215327692809151142792610750999760619273912306017778222623817096459047024526111480351008450487619670804166039357870644646252030532709362328012450680836955735125486804894743320187475166225915515769038577157677149183553414923001098387379407406387393842850785408860784353542984802334819448310891144553974893097442179968561295753461803448585820498631499596304095002537906320466284970172029111343939943968942149108519800300405669968302392712060503637174025484613673859358560421746901787677681401618088070223460895236396163777015484369388969552602474228532198517859976963644566981071632251551990818202043242329604796075495157036062586432560820025802166404282099575285805547559623320327089220470733127476515907055709104029245438416202788737787116871424152907124417858782692237503525756663306079192291162109495118288996871577783317736546788502490715019373653918642915094682129316721246558055826789927300910525243987401928588130511062876743006975420345857903931434960022700314999404698054366102797436762159413673884674476462201036577552904565270649796879769507070450647000537299937161136184048522112667780080115359430833338990934983864662758253203124368005099506094893973470408159558639534317997338314300736707710999372845542475317656278701254009876731367358438883313508664456387184444801055248013445590951892110572953340241893398252975694805928534561129236083034190415021114937060109922762109685853889962938600277352469148521929700267969754334268406684241109479773908872330175309587653300077783099637303935444587141187628008988243990688699434286603910360722652105483113442693449001869409750535346369923742282225964867595902083740042946345020333058309472683333441617994578332990788619910395482588621779790395335381968919683353435254709250415027185088340648942328939537854081193890486136938620672940190745085626574351671171870822121720097602253945191839199961387012556159267189417874942391205894440328776639128011294141952442705685717892592787234935083591088670759015217756990347028740818587854024263907559097700533057358907176236400966851765800168458833358046787625575232074194961695929691146174382962144487889613289419496661410929846686207770473418724628185725788963005081329700113137593429172910809943863847447445669638634825813458371943543679018312305344484645963313124228138727135487025925789405693305543822981121182618943639737652810961843549389443709264435209174399110877377319208328620378246863053127126344642882865515639525927226432187651545145090509486568286242152780205854351073426011889590305179503434006463083951726882184669445474315470726908255308240666694299039075192368386854175291883935848792368588108182016189938379935081973736219167409516450963271267813740599910353332484268367274019389164818032270701888715251874526396137672679001451840454987856892878103185571776600448867629101533229377932574696590489028302838599898692542662048636457188631084476095278989119942929940835684281495454715564822369633124551206165583615213511866392612333900692452310251200352904654692882889099961893556381421784288004256413759252617530756343796785753237375440016001201410014974497349891973735113879445442335962142667862359968855193716876422027799826062241295198273471046214876565182492296224046362499304510545764349406420523853754935188230437386444602183775637252181469350440872881393081579405783548205655753377717686692556912233345964683416753976345207056272193653016408035627963144682830860176841677002813780092290401730887912709665576264932321961433184085601210827521888701546345395078120463633240270480211961667551861380946587814229955200886984942980153050313292601457475151836573346922572391106471382859775720984120970505612410661111294812285992316564131030407365057640277592506445209376704175558089903713479619843912311318678165304795540705477839248852395314310428372111534347951384814517123787681613681347972242542248156406901788166099596624890049534736992496114278502073506376421702561636007167502418971397736745078046953327428325375250709613891493187726218865744763646270852960417243250306211689923985608589131223440871507845689399823231354084882878687845794985384175115954663788602516100967934157944452990521603341382030620299035414850232208866186809307623237917635278770160656965223416259700378460205673164606358574506816626038270902978776170457850539384006420093115386772632858706489686665747592760109280335262446717988440211228652195518797341006850585548417626528261128799976145004227946528817284192913853658273297570368828164785075801382223473656760892117833129809085503081418384269719732955881785161047894503302398062545187722375061679191845356212455001062597561873060082222179153116269293833957762501627747470469085966087626029531851005197617991836072589660547150987626637403642274344977214384905511560226259165144679682308878474635016585449179923950245494058328653413419077014711858003608330439710007078091994422937794518897444012151457746925596824627865014502271095326629429571350488016284444130735807496720768131363095346507498436209679282194506920688956305165494179678514895159803993412043212098912476514074122523410371913438352609427023390218626093925804441945153254830596048615917829371147514917316441331255623413540899257118937927964315168452766069584773995469787541116837851631537355221895463722571829914429274325149204415479695121882378149995351573340052536722734243301525421778172563669231092151797579555375708659690398664508801234894003183710682221687503918800205336609774552774442030836737622731860508322761353408489470654936929559818615932886933660495388014066791273629738107318309479468962280054062920569615751878090798389531563554061503264453755717258194455784794011661730854033466271945647883771231995428251443664595174260497689353269075380041619286554528256047518826932960554876226916020189586030109803195204145027772534239446952553286066714850842656280325821497919255704003891878808580873137712350755055566015983372713839145973638522675944693398447167515933675307895547693171868369646921471098843224285594603655123205906288945596512021200170647018495671517324434349828596677698912051169005030624847547449441725729421206477214914394684239109654447666020165918365551910245341246237875966592761174452857321367360743211732078900735188919905914668328277441091877537963190634343834266600340820728516610324111415829564737112755301561958835392943353629623683904534928840453847699173679568706487311814832707972635540525002162609290119746150364811276887533475246424457182705796709392105406015684292885322303023746174974469641949670159963330350361903334011327296520505283036051206767819142058196017819178739720030683539735654363442939248698804663962152652081901195659679488213744483436930764339206502258322635594622684452867135377917214812753476047338185535849625847599057954782700397787701352799538143945130714365160630733751025073317347702979872052155722544535447181734289457800197903277997810052479342300137664746379826877891093413381017853960478805581649134574926734877728800575223101441796444824654414762591567903457143249764961797302164156340124439224063012791271670997877361922754262882528217924818573576010630108253520426710555233848875089381487115847247368376143855643347065173013236425183452279925563145041016195621711622260988971284182855098384124495464110079116924433406923390670227043981716932953989664009793638537384763910317814503026833342754161259870538664473730369925003966574262003988933542384977058407175297725192813726895597865539904574094132019522770423161316050518156624834941967244428562994910017784963335246792133771339882657017972857196468648024442811765561281676069891733690913149489282753217091568240387774403200397081447413565641511784991158550059679344167150351979370230528956859660060334074475351819075123680810844637438641189480929347753273521850988089110540876304746473570022978838323757094849399902722879164053334789886381183745730072321799004515740802281833226339922504515271636448927077875833000354052691910619584595540747043877904333553587533197172867198353611083820268556730129636930074597837256460283382942634978109366543340391010173088087378178893203775798266282059395625284457746987667970799893212748716767875857152361515783287678900066636302393943850946009023714648117924625496225343262375111339055020878773520266507965670827513909238567890922337174099393255127169023916585823301705723407967473335209537603143738439357861711021677772483930959529241589328578224304065788326397302642325822484315888500059127499010798043658251472424503247934631995594283475377980138868125406146698931700091807983759041468010309662776540251320147646815436749212883353791882696782015252748200933229388937200138707766641047756332078172015435891820043661872779248259766598764438192306877122996682491450949717918275401840783448513437074540385104610444037246987183020838959702901376004486286465859829430233431690577261271431738373845246122094735366793217539167835161649069799365811532734499210599417028730248155715367923658415200011235412100099047889779207538627811416582272166541958834682445503998023080032179158057141925076457853628684111068613914777814179410089293088489114601222279319774552998384476713097514888485889015696286114721009725831562600131116117180948529971903546578989247196148920883113564802943495572232653584020055331620632073957976756970548253528497808758539649176637945749845398597184259086524734196606756766702700687892251260183619078287516067934028089110705260522544558058816454051027065593597110051002605686821404792408440640341021201745504062266956813553020798244038104392558241924708602432120253767187742903973086844603741259749035809283717950462254981643556859170494674257758078764921366283475171581690067395789666002779254684063637366257528786395911892119623533834969551256164906610284306595565427195417935098464904906684030624472101494016029407813044596873665462065001264037707286098786343960819372454791875163935423840099134246259366418749950489659157524463011115951661240805791835947457951436302009906466106657272506335439730071684798223795292494312650120165921407227326069919471250414294460042517668862136551148676732376323344065127205055561619017675952865518432256136094415436732287547752569419040560021982463302141065079153400289760537999639094465069047099653702869532320483614802035872527857195907629736193719647140495400790184634301217290394304789827985085504166752333339243456696021398164926663731500693314786723000612415027095550311257469503514557137623090244165205050628790612171066722214573927417722016855668083116562503289575617471981599059309850118900623365845071837624894723229857542521024765304604948567907493732309853537282324102561140177933113091939088152240067280641469995514230602498857566525888981300660425924799081851560895740748562529572243550424659254972409735124695676614389824110925708398864592338329415535240387941009217845995853532528608075511112171561043366731913960002133734811818284631316512760203572726801284638700948650276223122306684199813398554856156331394823643496888733623915596400437474960843656342247138114789046122863803939930918551053366247842797598174158318518169541094342027121315705326636080252976643826467741363332329805352110129049474496270459476206012987688665987694157711052060850716908705918718773284753429225440317966658989816963054744050983721806401272242666605156912733704369584687075295170323501909153709523673206806738991670657092322030262943139469481921181996632305506853384165798286847318772036312804492480353171102300352076241078995096189733342119379504003405291424502953998595810775187554671384247242573232450562927746288148289781098122841960154987484923410925079976928873671554831244024246435290167980172212423047074367425019168515499482959954693259096964754683122907139151187065932725299709875489245915973047396775742898186731417619583688937499054359441747288131202503381061008717965459361403170942431489508395023769096872208777544083544890077297780448844475019960984600360825137792685268875805572153122189182698542747796739742136408172610522296519584398819485597044658372166804868788529746681099616198818939830862329903477841692272037472246053464350777154571273464685788552445412551322875255927176904597211234019819284706427981555784499895727105270318215985649114304732907995591633788182806251090799701827563213355510438838010173021363136600435107545399348193864876538569287370638465524229346323122178147199518031639831942364697923448026160521422436240075999311288040552907292655697316451252014235070322967031128903715791404113681485340971000353080159931367583586692951795299864995886046741652888087743497011985411011606057830618511643907128118992492428299771207157362737520743266126985122281739808617981506636091808544866016618237226487221726046574569227974271126980001959551245175903191597691356397367083680365543180192419896910615587768907973130706919011430409376637394350045849007018540310729514266729187194935799481730984935382327092005598043065491292044642986196356367495953879784686692651005401188230030290362858563434892065038381362900389166435505989231276441198711358040200099443939496231328632446129514593592605030939113221008438250641892328254942493022683246776052076845856695907916331362617665395830386326876715525653173670267384573213048017244236866655170827929505462422782635601374428153995445103256869499931111900933384991270505124079287557489216528934204980159323875532598647375133544811830154411002674273744739238964698794597637110226695481849029951276349973438139871058767094834705108692806906900731111743845468415539184822065011077784317483841877456462059640582265811824577912547496396483020821341020410579173095478992635722702937745078685678936741646599909594978596133210484297553454128189721188796345903728869773643992963758234499499163420271708500677856043327154677471486195699872296219662127162124835232667107778276542032320007369320255367227277360051436988916665413177197821672170916556344457163806649473249472817640669552025879989678952819103685622687429795172844017685796871232094830471117963912828457450557648245899315282037451823723829387235833919244781946807995501988466259005632934865276595132972264473620658952190536605505437400133309987195449204243314247137210401422373768569801232781230620307533399134996322823018857513949596883350909133554113054156418527500195417879192752759931245143314760058581751377681302182785097945904218090420774368829993249606275302108102142486611263369000532759113750796375863440183822505279878922598102455682259963741270947162926078787351926766316151093918831169365237462071513632066329330140922879710264703879620044166443207911046729308744106712682834243768332880268480703488465104788359614847158364204047509539488872544320780470429499319397007857758246542213759966003185374529439887801575239750699406871327860186672410159644651174585005049952047331194862732398754538672175147909231653392539050680184450865714898229484168925250124773197201033898885635411738498258146932891136789023821494140037247772925405626303251455952535886783083410293663608682161446409953600022090817736187440058454832223908860412928841667298294914401594182499189676451829654597768721266512170347269007143873416493480406497205550728394452094251417710401242434054794493215100545019843150089287717547177660565808696575493344763181545178321853516397189108433830113671310311530386095148446365651788811227525797101263852162141232200002208022938277916368783237001070781286477975586091015490647844701481611617164642233675489095236890891431068821050779620535215109201111121698047234765161116415940118714671772601584902679091875348363414721697563217709008798089445314332809140258168836482090211391198716302192476366128352059282706416416945517602354234664151660510703240929358837695974230864025520493160670433685141910701118261397086200058248007767805181974231035375341454225184120469612950458261849009752342166178823392685219026884085737842035080250045498319299393161924892761380884974527080347539443046594126299268564322930177453008477227245394518377684813787370112368028309959013841299054658305493596126916012601699059363197165427846991964737084965679999052593975495504607636899996027204635502657148418396963223682423397429434591391346226657159361364466146060874877711295013874051163052063041284893757891563299382072136750059758018779208795460394600584633338005170896911655356326560573923861381156100744234205373683981561130060327523201027608526955820990258021051764388220937983246977672364253961656842913400330493332418784593296532364968979844233564934617443502515960226950401252182206284886112428049944171173316513765730188441136429620453895345475122631942438618881781702248777776106439229663018127381549586626211067704275252570235220872256845924102648063373949853663555990336428291458407296725233295517439905337752935417024008024729478473197405906660646706772959625627769780676520683977396234997850665401964974368938047478754430765145364460390674563455939658579650172890006272406944069600298326533170374909132672130797506679067928823938799665387735360900728058438285759072017044840182732582002549259403489870703061136704437956708594512731249421358919075275271360689245362709517950387295779404047592794551468979274205067344718298632711024757820158693642412848754364390780502671172763501638191946424833184260497133317363134453531510528489735936633928788414024956792570111193803920568303103945324488995912870710906781635327174039430450060756631518452179919799510171630106311058588978382471309858553060669331328394464099340878890178862037870668852840785566468790079405539394587688152219519684276305631931148247254659942913348388739855061343725388095820700822248034814720229577340215108977461478914332079623901402914104380750694458568330007796030032891726438483389026720264267077962200556961530109743133753028623936729542407952116910355616046908880951321859535242643649410250294525102351351178121382110351355539967679229934456802506106209050299355651438234292329836938035345714277719104196409819169108128484575108013681412437039198515102276890415362622147516391032602066252010202701981887687544208903358522740962981198396446876680201287219024283619299989166475108539004273700080481135817307757501826606480019107499193978784053494587751664890719501519694191095871695442516881876927740194753244328759362841238271440380034896961269664927739655609433065876601041993354014299170876030021791505219106373495739476975419708217145167264323980956893646176482940359744205994109798951776445767194306982990056377019552996997608748150265557068830193767870719842076844313459217934184210171704551123304579998449242947577171608207255275393081506302219194402746530623274360911714632360883796190370887148081242980351327166184209655225626747582156284446790333399182421307051422299500250628664002927041114394807749943035241424409339448024371115754818411182560126407233795307177733038996080730921840229976340216402206644493245290030389575241849360851743874332053382521283671073870095741415689188285804326728126281988975426912814072223849880087893085933040127899525036417384123197319919110156609801570330694829381080917299339318673777626123358257368606961443423562869191223488528966396966056112219567893000456911221832510697334045880469336720868167131002491549085993617034506072576980178014649898461902726542225818826849076348198825681902770252988661916347413424777982138163665927493871644868690631107166335103291264216201499648869293689708895042430408634213842520325303277496325346106079884433846934500709609145899223503840108078805081589016964367825132036677369354483054186721421430401635867009594237990628737793880694990323183876093709287789043582923719987018338940896780781732549135590746517938005808539591201059852372551627528469914227109225006547367670462081445177199187919691554937638597454066920937481991259740410452462737474650421839467736970707340475202462337161111100061968126369698616906384802945954375043356740956575566635315964752609360292072149505321143272159563833614384597931474227340233873713935705050799086904538933733349530619592986055862475749523771044559388966626319569526493838448604725323329698627500477702822252433838457000100260775850829778128547791844685271384909457567755770078689086155776853972581550745917938426513026374367330242287227370554919378859539593425451722030981462012525458104193669587791029255082992563007814245134357976835438866998984199849992016055487499679557093414381252073207561203125861503629879942718140928466292143818449335820989361094199643494409833527285075331010249151758738583537369116212918119800020994322619008001401740246148832620521603219518287464108106148359736820694473626376332990232663547238987099850731863370917293297542753149326651946616184101554900134235020518196358089268274562360712176672269835705442486743439015986203438834227673895735377682984137181549634751955357224747343542070181492758943754907097070085051644107748942750073849710527364866925148500593968022418348624805495202221911113543669213155692172909808425901922856217827622039897967581090426879765541230458164856229102485644111736508871832161712614522109895752523036388892898067826275550682494165504902516888834121210191232036871241057553104646212166984895715862873152226643307134648839870327975833521408211631216969954025946878421368649290607087364580393846743594520286877363985632328126639616668161955612963643346343573167526405681554499807025338446064212891857740682166085266594946777797329059592190049909943575757367490848555038131745081542905402926940118607050140983109230949026999348876155435715974745576917967565290574828574061591686225610691101692892631425670945279661734484385650546177909132657834840033337494642770027476658210173397554050024771711121175091393347402533526421553524104937129702751982799076641341584809750108294856769777258932854744075390835219137387601850036488354794100137490603001488203254396734102176846563065762584716755297082168937419477158375603495685396227475510814755848260842552927542872379624549426204509010220311159462444193081461146963718988828493541227518440160919304219869612039238243776350381805649917598772081479678008877756679725125956486507340634191079877456419442979393382756069938030582440008294718669333849253678298177204196447098339171452023082590073387015224327667793817116619709561570137892748926849998189937420943728322080073895277645058197590978866665156871014128377165480120120143313276244042982527025422221759217280916809799323772468920094285578509823216626829599877630886404682043344635240223472761795224635556754259559508411639359646286440681483528631727673554380154409758015733387106968725675725952594869984192668403614158434902654298381105014542408311015365319178412832811627205743806105216001397861515774536128772146160910774435162188872624557913993346962124474337649180664477796595619230301658818484964514716917876289070627682615002200458576922019773538823975096081778596940886525994175550665306506115634164523808499926143710675538128683933357892935966683202207296873007098178391148438355339451166024327620565233453341430314830548703869920112292425734798964964899535473932446289615802012247381605617727549086837974597088125019781785590529102511420057759993609553729994725322480355500385020833995913408244058617988540999252482392327858287325473198769653537113728738065161298442085020039066424499238150362139487721566419521577385764692175123089704053723485765681591928130307595698525760897561821078654869022623904919017209369514334567557157551173381891301091998306637226312331164719931491046635188093700747214728430213056134420715648020742937748675181919409160709566432694899102785081342957690510466153314832416195170106231599162233026911644830482314576272906887435675033857889803680558663100591281791588236945014750100844779954451020689276103807210116728454899105882930709587844285864086759918419672969537157020925205073256236029412626964177684657900304943809463559168752303700323524980202417648356114897253571569607671012725883838402012646629511681972762289179660159663728412224184983337428209716943350706969340020795049066302291516474727664140198812750878168283128926677634144505641418536884080481580984281867392920245275110662503747160632078724928896403277972827399027742919996027780706772355737852864184631875978083028818743390479019402454612494967023831006912691402185875665546195104862424196521300062570731875187133347800874951496619180074391755958589982507062575292866227238944739827634909287349741821107559119920033333023945038876688930435578421384741081317028053776708800367528178439380252077887768069211749284234475586079912588574414833861204935300723789746130172956640571835825469115275345869030243392905174743198203283981778856938829338277085328020069024246698106061108176120418713013453843811323285950477536196928264291056975408255422306393906276015016045833787613401777760518854087804049520008807355124508364050406940071201232599573598139711920070024916430836414068668610931337058244709381494996111274849631032399408627505534422816826606506657807932966918202158139830218028258444950681163828182879786765695458718139386052325148723260493465625388481469094389314549313383197272803684711947437364706773187445744184460437332209258955681668334897707571794148412467838834297813867305815517027796825486376261650693669678658831422421493438580701425791203910351019071801484479850869565381399855592863343487395898136705521289090148612066472262046848916991121890651290572984266685718651026708211908221396441278148005910779736793260868065655649549902235822714296905853569588563673189468262626927873291674894380889049174140364118335518597966258793384750480556343394009488088787537109762757224603539388465103599445941991995916859183734980574345075107350741745326191807180130945268608922992973367929319125739171478798971162034703050257638667496944266758095134976112132430121957724945916984553974813812270310816675702340302509146849777463186929393280368009752732171756783954391884571862958442872618558604619360847271753039265821829314324655305726488391996993647600101503842847016034571468031872155419494624703362241354436643291275807935876550210722893491802083024628390619292215996067453994829168128443923505591206090100122707450566332480091478070187293453890419077815870633864753943962218086860912813837333828044770754915353740147906237750316526553362610024569012163360196934001478721014536474554876009326088240368767964470498279958367498495765079226771125858391202007950904887242060920303899394978609417439475257494897704172200215455504755392644207639928485130442479601449130050652401235059200497527606370339050284536787299839837579059959319232346440128635167549064991008577251415321323928934902396859525367840671187167777592561707400306841071364629579392250228671792731163194434025773764688802031578845134341158866507983852912599404865915269281504965273159931744045896773341939212909134898685281331538151304246265196729426949980345073267849145989035048731356677016577513992869923599171862885772632993782121260853659435299207294297553740757642720406510765454886691748946522734996458083067273768105131362296227700715171788804827381144642035211199570576466929394942127642976757393230193768372525180742613958690322148147380108032974569069336305227868402846193458117155718223533662720968068600112723892941777526511551646299208581797039169692315540424841376791627954074482111543399539561281622686044344815747599171602022184291661602249466926108976742425474843253309060485065174279567381544724303008448471197050204733996165779309123787926494717101238176320779255400873501157678885217858746594907200032682858644490743599098261137592357998981625937765617782870862311878111030060892012679527825417045338927784254921000291007284626350703375458190398479087948692055390064084882177986906180328636909594871277696210176933210457551701514557099075625609203921969213379938832809426694876236365758336101790921407545323050858772662391787904226861045785807091261566171353395500203389499325004100325073678816473615065523094702754430551072373561201673402449279929544908021495776466140343357870766928187890753808439977282110705233781551787725160748725477673658004634267369511023088789813944774767677626859054269817139730251063002910963684536334634212287533789482384187336054742259497584338387554675829281220859542266405869149079958145028005468005724495464439396687593348453796169679991678758195778572157206077062241412229624100875939061920803020000414829498556523018348139863046581642433714439020426144884779925564801749068004550634582819398382776494006267004276344388875771196727907869199873186004125312916543132101462827986727224708417652926788935335571010291961978107973835154405558541140360196430945629833330693434885832915834180366587157014405676279069916088719585230516289556842840480050924468215798302300383261953418256280220379193432756514188292275490882133642540930752421577998146905721617416932110656876685374953847619170297138655928275660166812726175939058480300279657245856349152514250081009192821145410653821485007490490870107054165072082048183228704664461240502436068965417275293240887934501692427556485449681712570688748168474317077338912413278641857079275262695923968442858396557668846567327339373639993654180349996460075024615831386217958662829706786427537452832455729462299979700974780304207771199129222859175227764608283647554794145440877404224232356614101312520852755453439607427767624645616267182765266201338195855798291068447074786142887488120006441631153905248229241462988400414697238777510199525559660048077729932398855267278456118544886945959715005112683587579081718766673567479342216357662369820827673319189886368562913612750924560968851791930168748620398174607035926341731568548846350114950298003296874948008185631098662523934444479334534305586718462427089016480236328540752569584992499999636875338505404417825716316357435979649389499298377673706959605716634974241394507302971159394836817379894230320420059839863463827246946516884082854194011636335245714209377619748648760261885897539881979432550790667797025157797102210811870584144232948579255754291352597151682561145431476027191731826733773693559560868282475518566921395363299988377238377363400584899565545452966895554449378385981567777841090649790690158627212349450190976924092678972227877860181791253974451481061195161937066875072008118998927216495678819815411914225968747961865172075905279737836764527409792646545087958796545750415198004290666568934941569450970012295504950840407252041552670499941590302911534536774662165060469486137614390608698604619211435542860530310983663104416468664611812974543832872566748845133800779498793838213185184418895206143956057827013351316162636694256908443618275297620939628853858867856554888038368713265820418598125965719112153346228039162533058262660767245931834873251823982730283290667017942806725679081038637607352907323694276869320197476294386801456055166476557344034651330782106979090644437874014677228713427255551907784837543545321044367959435276884837994332790068139677524408960360563600085810899558610775329025878825526679533894176465732181717874027531858968504264911993311329774647455233668439378980765893794499469837913809682236801437630039505922143782184416972056129257683002506540740771135030161776773264009287863339096276866606992797198629743008209387294538036769835824633791953998306396892328629894135173747628039589447251787495852451998998647754261946074014605012321862233429430865581668883416073540995481152602472554942600164092549454552051675397284033584575740116795054886322304410091518661903210858804153788998822702571071834908550492935254289736839449116351691201827583841251225330716369806428567195158237973864731303123352799202949137367099301057312229873511641551608011745853268236136389891234371490747768418918259225892919974490059627985802007904284550493347940886852273005829666789531460321257588854195649886247985672376139235376591395005991052673708820385099062018635488732977273175324172159349046622115981148739463197864104426089752419281188367498412973574788317582834838446578549264695563434716307899461101211587023107205610519572461547772719152611150227797367887737106462168586418733247978880251645334911211928749797561002804444467236317223577174103629479833913419026056852745604051585117607118439163997034914407468873417538065953298225605226761510043212661502925143778170765908724563517215630298986072866528267283338638177145439377488779991940968617558111223412044664482180448241424468955227754414496322262347731819726230844306173325201857375350348429002057877237442305390150210694450695868452330982157656828723369655978299527428182288690627675681136036877194443992899896530244888029985916819911202896906620530320439903256450659042621754634899698951719849471795279049273328486235653498568219566551407366689329744668085943215211282920101298804876378376540775579226324812916485301491476428963474337456061170760597083810615123738102718697697808451201295025262632106691015873293417663078609446293870653188301347757097679855339011476085413154188046477589736303946673139942251290677383541287169655373133023138807708923636873391859652916197873693485743213564515543967103492463699597755466012352501073380687812741138695788223874342902235511904838359098270275912926095112412128831693602679273975457968306252152294087125819089871190235657456754751013748583850715765639108934597400044563592506718392568888260568710645097885488405876665746260657709105537498399547452067660152803812646273138343058181020214316854963267168386995990591884604322425384961359977972421913874965307418625043996668391227032133579106643258034783351670998265448761239841083544096587528381224820601686407791708749312509760548972084534172559007902592982155728725050143247856482277260119349132752886666432570065737167353383868793045104833098664387049882419052087825276427340769362207193662735650309364958042241151427483274129908668140821465158428186049408193408271021407808685567184090392931316524301305486162364106926508379720744545534100448091515124599897744126309894081053230063615593790547733401679588014800393459250814575377473355216456944822255805951441877441296523491003215881176593207646408141082847401063023908666113658912487362763619699363909831064069120085122741511339801240485298286753065714873829978705008156768387926721195626199406441272244168716089856037712968565772217745179555623085688205578765340034930053319509274424500750911899218718034569434884915681818004562966189412600103576959665730392630544793549051206719968392645145401381823960855225071461351318303026271845170853165810354733193237086046344348684124002447585539162092434362739243960375177096625959325797486906646823018383680884391124373652669606204843625813213882860090903207485184331003655042191877459187696413056144801799586663411384447862266133937985397142282611449545502949637831104846484762197280001752864175366702052745682052876908724858149515049463314148163900596311026468809484045008239557014780363248305269548368163933450492559008436842126881741031698907307988503331899030315110136987057649624967229699136844550927207414846461403424367911637912597475651113146275413855968514228544673092027840357296449827477784194983214186622527524840422881409411783817091423926113749691392039617826990383366136639201749900985496535029881777156160878897464702130066336459785126057208424594287440613980496490238392960300062002356288253314853265388280467458100931644253460910745023171756322523532003367038544838467041712192004827775214489456783954741907817178164004469387218588221792222593262370572424407627403889801225927314005555795689088125781926686877836252212961398620411290322381220191297397039389176732811592628124963228056072586496895911078283011547603609419033753991545330355766396674500972438549461887302154918802019354213752590938198767385156768668030077003544020872702787916262524646105865885288898018017517417833387684453555272344061130567605984924892740137592809877453854620285488790765990737196109027690153206398608468230380537545536398470662881718610847342437780702092881388520593163798604520733144385946182811678882453030820967454863588197351199535910061469502284261617189666950848071333129909591394669443811478962489298604142167424398510418608189876836053164529701123731708400000961159851025330486010428683551040491674677812102849291407689033447250035321548063576527759237767817222025874861463445996003130905024183912102358951862679117387144869118804755602949306352818995469673881035715294299978121749947886899199891688560734154928647217403736466177745481568098921695988101134623131303188589679960183768503162235355876810584201932355768110099973394606637024195488055912678495591892444317236828975732902601131181018646358958229588671260282870230407505218364152544937246929292557033974765028844638226651742245450490810899684407298305627367310799883918626128445464713873420519750078306346967668072074418869875315444376621248685658433505336768303748610090493958432734775747104030135220841714837410208939434661085360394789424667888792950642638725916112201283188940170310452273269204950116030467109912972558702510353051800740858153515565941743404781726071452895472347753750828842594246254747978503484736247883807545187976678913259817374271138493544577790627379578531605410204364725729623639675915387934719018063492654221144319734082403766761932530188097785261322608441368701683778448021544357148790957022673790481775458094133655912480905351995480689451929145748726931468478559965220734379391507139804602066784855824782546165526309960536565916056622723071075016000305164380452725435106546789508125001163909462925716885373724514484801144217337143438978002829087242711921871729503539970511713033912664804824401871040169565541790631154394358819975744817083733827011519365794368809325593210006414735171625211026242291105620904630504287782920118724108617742632009269316154215749183167071870063762744747306676753921649383333156406694331591862972037567945781046995343841227837716923758141485785145837095988680098730230709933414503198520515464930245565477529057057535571868562644868442074098670211619444920886470984125236505620036094558847573782770158809025461685039535625891478980705907606182506883740452200904322625006097865924235071984450793106788338738904019173310873939224294608126909381087988693610575357966537093218057963095364080899457442994988852946656857030759855678541162075419326851209096161311105683452594021977213398263488839903042411684442716081603106622809119419126187114274928256396751964862291503321847582382277306150578376752154460185967300147750174841828440556965569868825262966647468840661118987177438347178510118712048400766669175229698541400179219877550276440152345026155351081631865274967884628482784779978760518314155792266587709468480040290623722195179059965731786386804967938000868260726075917404575984058983305150364143996028375818432161036532527931061595564337132149778579929976575715645745477356736703493519884027148939898270343252120977205442060252835269972544123715232078814569220546353072351465560893434404438211957733679156903254570457591600652772019775700046880585753278763767289890718467285961896444033757291151268526795045138441781122585150941917535720089859741175102510332003811319450181232963086704658862209934284775716998504071032079869468969734531460315759892585411611628032500577659312683393503490715487439934354113049351007047036835760341944430635471538916825748356514320465902999300382712576252006427730716586978206102656514840792072607437782605314512423526012481306470491419205862993891920230232870700539099746475818552073460745490208222794207758925835322573096848908520123808798100177599685491389064479340033214413973295624723749655590423517069529703295551383736828519727716809147619108544407159539777169429338688174796217660199790355078464694270599274601126371616287065420659168131307886848533089199873490868057409306261968228442013585670351677466024559979967084956337213381573552936502152964862501905205613528203872613294856539504005575248499293452241490556679272286283596170497069282405097772253585525121654202757331141345410128563377986713787859115570994410093184772508244668013516490100681388899793456134343872945709929293964318984618346974734615718763235158185291126952839539335158268055288920059181140812587978434686954910075809425317764363690245545846140705705236549395762447709880429107394490760150746573101634706816208774246747703000131425983654834871674231730849242039040967005717453434528595585032003884112615953804730000378108738787582842691589817261203741974010380719368663176310613411790923973720291034663483855254163811176540333685406995781120128636240516461195602940880468520444110472121793796257905460907520180474203926207180040606337943007408260113102618017812199821990092856611451112491471959426684121658067162865029808451687778359120581668742858476442745703440011624530998499896695266876005748922227571022136288250788268674000800681961571279139837500731498484187044744905543231409971644447485577823397795268275666949606712090825993991492389329411381124252592552272496394695273441161024605273704166804520417354861650229944111418698805292953520571465213527049175087595513433433947929823557365933246687665653435449165682295748263938085689275421731128822143513724717011726021172732602635621573526035234475045219892308943921636041222256890471372495095362811865444540840984168687868448914310740585627592216724627346143904431102661312806301634228917569873259299863919080256277832404264817956602190809635374905535333744447956655191949358099917996492738602196699619894716559309019192035843525672227162615677977146454059390770308045026722862658119914108155906398785519236747928021873411677499716855461936692979797334016940975479992599688747531557195910934598205390916620670807555612840028937943265886999104420270466277885197138107511035121110043329271852246423067860904160722873304003825522090419974495358142963905692377068647953241697920382849186298064371257932073217045344018204200249600554201383027295566585371144591661065584799067580857891647415935789763066355260140076490200009225086864584208549528981569572603977428251261592040106265744484289917414345716422958369558479712143034843841401890619895034540588869669323213898202724848100823369147396526969408007679462449765930437473701917584338023237552911343141838947222223547963622240493660247116525220569615896216786987659649635587061695841969840033955115718123267143203848328965711009072981387877376106784750880756166571535550017959344718038543378727154997461423201556097585460194690661578807208283094390447763488640678007017528144639201856765730774627274695307034443582450057365527234685170525734672758550945995281497299406973224927743199724051417172995830322925862214440982896022728106470014911221106298727365548777363675486961091603485849461548713010874300623622122812484018472101858291286464882582397773826928112318900757804816954998043383903225497569582738514593160882469399673277260617657584159321526009288677352884172314445218870046498304133121974357696250712106409171767942253777989195770975602808119281778426512250388900793091944384679242703945564636336043886237734249147592588775302290283652283769751749892625593710082348026031058485480530623268640090979477338790442142951993304758774142078374059662154621429106270195434871697478665617920932250185224415721609904463271989372302379721662749024998056699285631341190811336525300132555679469625683213318517295477021409945311096981205083806780785727742787280649096826143529705827127355456487427059193662146574754354125796423623371706704583434803061996249789104276353265922625118852750084561049013842866127746935673527335606195402359767837652650733384838936024046626797852330011653686061242279320626136629135707571623849620865838636476393758955782285572184995811271853039524473159109323877986401617887200475045491249448432199126756083962519702745478098630771216870588773792089283373888348766295153078504125060466273695095218655463820031933293248224777108877756629791259375434313934020795015040102342953310500164080543408679452377682154364660510023734832303858558357328342387952375902860014504016222855130361030728557270791151572348743914398926592906118979420583630140751514993125619176703581526736193915719711541239637070296665253334244799262839995572250570360707743957029121098251533143893374459240524968462931416226684310101206798065207327569662173063696645606889118057270999869504993056851828120055834302338521881592592103606829798191503610726874440514033022011575247294081298261004410270479793078997854751999139976302758015921250561608545851172833057970504955550107347612334597267399281551971430538676223883485425107396511480717831001556608636897162707630624332461155290148078244468518912341713264946137537255979112880603136959322387490770205290318229750525262141439285018306966997660982964142957878319774426585995433236289474309762562912259217547056284579016618851571924940261533406793602512186179069660155447416300196905391594664229286010744222136626851607600110638530640981239386935723579883403270010532607947597557710514534532651672105362989965322450366766052092642017396984136230185922204772392784365423099990713056218831482472673187643886530681325116812938602064007171389143005652874588426371015271272860596822368280128522053747766595184174185807880285629950822214863272354348904948846865807041844574086474212489168491639594276715322992476521308565682533729696324977118707859421123760436139711810311511216180669464879030698875260921561170244400652251833234213557579332467892559049937864789494725453171534515588627942744517517987836630995753208840332718905722172182074639114167080249764206418136283362706176787839862825503352938253289289153833705855585414025424052148139412097109158168044792361485671776827566337277197318425747933795230579724577299684407580900859327542238605739369327928101298686071516166365774045324576210208577705645540946183459639178254733314948866450535859664917018787753299027254786026900708235451313061934220423691775245417690854089049618130675160869370336948466101742999151937226496097020361184559412617839370866452253507289002390507506407224993808959467069169174108916721583267131954201508868943705004903768075052925395543232711627751320212320666989201047275862497376733329689590287391803631135406589131531647972663008196252960562771983206547679710015923413934385266576826184781870229929942367093554059062281230459411508633303030483256203865213087277676452596171072169034259738385020059118769917460262232895016436295233987102512374751926848107371816455645492162808335093649366240478391267408499524589121817462929706898883295795937735493372195147773227522656040672342369796532539001715625751848763312992708641226544212246932459265126018073723758024895559931781035506424704518957513653262586937077679743664939318615864979026165485626948691784165951831085780948966012046259253727778129640035743223016894061397435429441228591107227679522694113073509088735561083418198607869833385492109723758191391350286020251376676437166474458286346482163358827222921160988819298343845598429869130235824054455604380756006461997391716777526949639250729134248972934644494012149296361754763206641453539094820171101426211940004658882863714952066667454231908313519968149528384612860745061730534241770259724723064577095766250779347476680658831962776014478991627445082511220291993898037410530898055916775534018611229779402881590830989140878468155075384876502580614987093241937444549042804796568669556345233226962966334942590738280045664384045575471762728607350959293112445558483312324166572194560930911594965804267629882175431232572219183463004124181202389601775617101347932905275817428464882897378549168904207147247862358811587303443257796780827182461525933486593527225931901051153728941710582170716539722742383734953352564942147221156785008335900037157662595097616900528696314569101458052892831857209643520905149721408656293524580101461529939745194508988386571313187465858562983178998974647027033268084915982693412194562529472595052269341313723939372914923196039400958397833401535629581637068167580515861009005030713955099832155030866884757586165541389338780592474065103537965366201048233575434147727458959464157095338408381499479415716198493137483071972163168541204142430608566856423382095741776163687417631740096414682264942587774520944261620703988086135193650039149582389172409643441115003506761917925091240173692710475333564375912242533171560498789675737969721744248512253195350940843248507657157214767076447990820439408901915815443477006171351340402273550298299587756658252191942290681279514984793844115483217074380647659837000606937363853533345853210540521216819124696055940440299354842746258665184372409192119108622071891777329431175236009176562019906797499960948827465323634685089982077104193272535079760995403836271039395307995806314163237341254370644222625634259753590393565226545848450669595327814562066981895535680804254740316877041621912008874725925002635849944455726600908509853497476233724600252129920266279482884953638740539611248251277755541674939439478708353748542063897571874309451561346554070572676775751715049679259924063587247202198602330235703125207173678252072921067071098044930950826035541614705651801190971368456721318837224151090783621746715969223113091042559860681934758996474178778880212571258446698838932740129856766663261341885600828910145874843092466771782534139465032081717705582856587859482537834583887537613888290285195740854073490437440827168267777072870617362652214783579460665699949089774030512388617225079023387071801409879347087755938400673355717964378462034295229713995497115662052437473755101297657496378758632981211354411358202077104014401461989355758835600790426679165321844752320979634659311105131431669526441754599883918526551700784292793624733485806640374168792277072166250268566323036798461234498962646631690161985532329082974013834392900639095268219379454075883350861781959686195702936715415589445901587177309231185477812483691419597479382857507179732000488738525550534525766235662966476028490505369069861351417055663362916173294687494872678705479614270632070718443726974472355134410036913459002651015643408514777655597099139104095495994620301535999390263783825086537919104265907701822123460256731213550873610465706963184074033420929455255354721325192630659344336303263178578440716108752105792202741815813104231079521203246637179086615731683244099419556274936490311386149987075614347182986594878751306823793238783291876019619331806270880621034921835527331770260283329249410616996126660919385648702239522214706014296948579894394123440752063717987076822701123250953188411599127390376514663684938999264968955970869140016431710974385487196540282567458716405974823862336199165681760375342862520165557480206079861657063819124392247415418689442109348943042028360735691104063381795658764844223736502427517726177027006369285936999633343872603142529257056945591821811947491934952501428057703831815574819432740722152446740428360247837851315960049954770494641369592973858026794696785252591456468467584027983580180458435457375885218599623471922334803544991393096425710671833566674281611685563472301116223760047798574053305705820428003717136064092291972874131052007561509617540251916668741202688541111327178947671638188384088732584757954889210905875417208023611980973893719685250420084538772654323054721811352572959356330174761917739517595061526589490386491780703450445850299220201718049841686305434682306278066921176242491046627518345159451232481566674364492870812734396150761431667035560423792763088735349084142090039548192459194054778140201453576547623628059151378571471447930458314906598287753358219437375393054441857051674791770412619537483376775023135933827153361217876097790656895940156657870277802419675241886700796494686652634346224045673244546360605154078775068012879738859718787308802350174825377788713048850840096645512427695489212523345742857623792940662698861164429242866777541552059861190009374787722417379539205490568298460137057390856047140939521288671309999959315575686799236129747102017782937188059013466124183107119309888271283273937157678213247927477620711204947903055185140463567522154155922962907112789553448383926047580846690039434514197128968459182445160470719639511820151083797413977487639405577875605823548881592497283461307927617292607974421008158249108463885426082640316535561171533445219814095774948161721833190958793041248327840254289270223387970421981800987320708826090250546686696889869768131669701923931344391005757590288252011077339757688435664522014619784432101609130615195545065549356537927365035174360882617622984967863879779739995191571323118085148435696301328294032102041355890319254831494420724665330799473392587378120896713356374610374292852295926086888656979879059403548354488874874854312875311966033112838104123096608808382550340137707427216498426706312302116463850302393269715218155087644800546114378358644334250226419654658377235321641149051490041135363869327450904335678212078248886032067029436272020041567401206789747423104099334531836475771277916431117324573991182084296132694751289880809400584827997703738205978372977138481513873285497589582607133868537357402664123381452307026379995383293887819914606542744547024693248241806395541064013967323604586554205404503139088352648822393892732552548969833581331944795116384055949295816793975756798538361982488513868889828070904194697794568166537712795555141256871398150379600810297825374462105396679316982937759987970620107758750801561236904933125004371126575076223843533454115155499712466917509502830786529800219274995926333152596313935861755960096625529711072845937838028193382808526855086103147334926020086687804734603315838317344185446770466529940233913177276331420137853250828671830982088336444264534103327510102211062581259227469550188093937703841975035921391086624697061060023298063053488170749325106287363728434737417776417454085017738733646395532522083891666388767276086206653412319185780100567134257582475045859774205167788097893924036028329691979318733162116757187767790363249202934307064781163022709900442676280283087417885386539497026267694725966830917093658252376807809520106959503850484703094402053268990189731665184734447076825749837144093603050105052070978904642190042047328360444241154281356368605422779064835905058445850961691993789071498888268163276593994681327602360687324712983557492381394473529110327163827774581709268832164696297155497195979487044589161874550411338905392950036382414648212531715504882187020945688523521000315749606844838315626357215098908203866803140347931996727260378079211465553793792601654537932322182736632020932259421917428697514868957129751265767315471642416212410967114154756507462057870805991667042926223195081250394565927040437229884761118059680709772155944019961210155810499710143322926295998720260922012429173187360004123530177883703668021287697585677316918818624402672896301670497440761050527376469009077348271849558199438456620003012022078031913256038557037089063749200071035057173909904561839754086507310505154137395583363635875380196306285226453576329020972728153971209521587421245094580096637237996111038067286069357953492798329551285864864762262780287352067083742448577066732338507110432385092407731764894291672088837129605951825083003396046951116845403941440341232768513460197041614312668889036019525322258548565055793264863001464227155711112763643663206685152903194775606773918165806842398410728806431680115510669571823349409746230842243919834101772820568020821642688159147764110075764501950581441533992475618375461913949275832599194965846761479335050809738822624036262250847204055821934627929223866827001729633733448890149543544954995678348931092850779116129879345274733471195182430257065477551763180748591478324190123492611450832077299385122493279920838938572017990889519939639927832254567328054890813272238134418354384372102572305610114586372465741420565639146440597098775467584419265928787035475928819861064544666465311668274650921633449024856552041105884594016709133534233747595136921618544016640790948610861595330492794391886542130357508507492478789507986936535144557969567884159138910238769178508953600874951989331920088450492843434695559075564340098153008059759905641112131878350017651539521267369884597807776532859731593382722985828809470869457488935083757223775689094536701887297864421211600834972451519407742690905502203780350387022442552849125982915214576988644708007737986200703080606912302031890464791098027814865137989411013333176685159597277073538298721212543999469357530416254735602846551438949517483923141085839787330253402800798680461183053170893558521521232660056957040659187233697885545086161038310262593339305937488869767263957767650088364814393432037963494265790734320619878203589051732447054662668602648714118995024294851514896115083931316275267103834745625413768013917460234398772625322722432061032867584569479044833505813671875323763099043447150311150502464009765532504435195059357323656491403548493761534969156169600966071345272218319498411921934066509620722843281554131482177577648886955493413984312051400078490432124918690128441983485479130558798975096195290318870482316790361495974931128551715252064204431205651617587063741968198433900255866140467072277780048697164532521338136938603318870953557322929584972032814794587390068989238360585023827241362879557837576099192758746493901579002964352926166846521233687370666987152978008960897631739551154000060224637975646695677383040899726960509133801280177529486673904181511084494520562406677690122025356417144184327770904422015670369695997412605393898778403160292906543157053544214820968742730265269084558346493982807675442844199233618026030572378172138884333380400852700148356297613033825934960787174665707289700940218298119184001835581916759334303117318768056933417279936547133767586670551397994858618402963696163286332386390628962640979744060878009581876752748664919355504107904731439728624676835571925018303516382392797783091644853906208979083502922012869525232797132181234735180648748664598435244913440830026419092459571935640988072407056705558276788938995488395272784701008644604476308202594134624830352813004567020031003675552718227198876113106726930866378002374545335613879680501902937280422868725994076912452185575202555011515403508977680299676919937197461392527965903604928754946802790317933499280850712928382611106503062922787651257620799067170775428512186080206200143525461148724031834998173822524099939927559275950885219990756552693287250159423872717395911396909374382724615101513937534321295786249846858019525814541356822832321793636188512410311197124080865987566272853533825528786425198225958524528872698550172463350638577430660070213969063221657422588629154503831131305109324165047204391306113803347099039474893509061798146624397225654174800929139505897336442098912641797458959563823662512819917560892243253168515464263509607917639095839288775459973831037185127764240019744337906594297566149608615367929895680077729424418770283414686744804069263647000279265561703049816064167960020276565433928131061502352641009738638203210108111576437154958462031122276262039694505781280230542810239602983201258244389116149835005069707334816201134373745096115399733887357823897489433962382773901835277068312845972209310380273694860097749108618523525946546237609251419352874148755106867026484039012380003907461241838373544563387591175858380154401081730084304432681578892935041719163145647876722897310442124573799046015527344039325872177981782373910129623706001904330053862339538834769935022231450266857016390535763847836121650572074866841401116097608975532621277295784630506084570136017099448185495691507391487396369450482370328416876340203522853674241417729305875313763445662314455078173092986222834087386311513438466289797958773898408843717498056152213914706792898765360534768856604909659543674082833199796385777048359322550098776607356005792960979710235267614030179195422676423179424666664760809223036908067663751941586396635002173809124451766806697779052930222276489247789859045574199134949223494129591342602826565811256019027964411000151467149386682631298734377457521086236898027486541981207129723248693966523673828637125048012772667438594592365311443293829203744548982597865453774409589460726859560255070786772007568028041247444250915335941865406409594302891353721573376327929108255462973410183327051244780175340824636947191911247122313344795157964306947315717052358595955342199386120530514541357491696206498656691957251071294162438913668345046944008891984562020058978928962000921299941098444696199155327681528693380543467055742465486906293509522413295837183157803128381207182061015076144228338392652799946299391924756560595670750434249193555665780766933556745482532694381544921937269868622429132752838349161922467751821964757046763922417067737727642176261208688692311162856101242786152383127571072650196236257048353862470254320167710749545456665500443437162290111948157475600195534219339661109021418145714860624014304487520454697729891036714779904813445598583596815720482998273087439599667004820566096059661019813400438511440826933618895164475442750089993006874445943023116458895543468667006456032723974930220653967451409001327020067954349226799709742494024324413569568247806581220645525907023884218959496957149030651662679838127557394112515013650147464242822355075190871813361753332865265254377510003412905975728693859827689654567404299739400043141209712145332121051809731783758340750734341118486957974546619509275923017171991986343657837165035196758189005362779796717227788031283506855117286873380087149324210282345262519271872322044217290401353257064391000373960430822392296711440952022028602040325711674587636044833651287094032599234178616437172319060393400627897416061935906365489352608945995646348658794711871740956794877367210234773461771868141788384380033711333998590047190809149780994203778934147306200082083785504960942823994422462947429593619571064354942987227891711439164417621310610043934737542518498029886834481440183512194877249478583556123293181389652655093210997640227817755589174545842952538449534418789238984248195055376390153815274513364419536194269622209436477129205349670058439571141121812817980042045106045910288404259279395968204105972732969253538746022044334840226286049156527593998187166046447386987226601616537825726402273720634466593606377781515622940333860092355534842289081917744601709003784347013288914941949775156865221339501519980382906375849112546788541126325679974776744261764721007751505008230637695216234381987114291868070249140680656308456595123718318794220531888621854694687328578190203420740717696479202980957821899543451345951665110402560844738320225090892329555997453959488872071523149425553946701318316917182397368709300859533401093288272711598260854650953194954874194006458618793855529928001109342910453128114211768707920996817525601845262616792251950568578722184567860493823810071729070125981253078882024577503889817996101885767303102819612920468441404114812208940774954148167736642419499947168733365952108176164449676427909229891603438987645229715826276129016673439190117118601379164104203238015037051846875262004520914321373775027602581626355497750321294611842716702249586000116036187862389597308425920598184643800637988830878583294947472635877564082385262699745017529221757898481702688253802462190388344713663520317196431792146118010890231021091958285145284264586826656876284514294732681886474807442394220557215474009757917899287780649450465116402317808474340799770881043889388288696681129573427602694084056453865549786903014148850768137098821785529745962743611477260736266358129416397609300541953756568909589311489835045318292372382141190241050476166267665780620711678630424168813122935485058660942599895924206297654061685052884868007158391879705796128213066770195743797559606033754735282453425518713928737496580630746251104396967358284280406421654453673864168901235629180949903097422475078191742721325150519288522427909576959132570644173849757040063289952895786860051179460422726366536856954469634102075061605523704171088840769541131405960060837779016960378079200733936537335677241774882632547152797484510381799595044924280528141037570667810027093456864755418002863886538254629248189198976512698751684685132493925433308998316402976953297961390770061338910019194408510316291257953991853515965592032192203162580074807056035106999542198551543369741057881181023421955903097511810268244911695824984069855056843311088743596811791656440992619893127327800806053778107461777201354629008669786524085748454068808309250773373083224457430414564647320683901272509071237062393672756969370901932116861160957874869851610380532756873693578124604274872013257003893568605731348420614643909866973086939080785871787320701695661982985376177234544531114678012842632104164288290612495875246005764930804106989185947650915463838724800381792002962324284125293556000394655483219015534038274953726242811548659475174518201436539277738222552308885188544023537968858683861040760310941256606639919866176615730309864158002620871690888846149903563850072084576495344080859836809601110217762247110162572892637795472080169713595886413371863442028796021011433717681848794713324754730048697405010856791627192946299073303127324665543184380660900523563989763775867660521829100274415018334694048614303321400501919448069378853496638646596613783433170356193021406826320735344093799793406563093736117084963705950657433418977864599432072458940083105300816800145773712225585650194734563889271701888340060542176704407362948825853602265984673055719899370350100656920454606951023677729879492467606015757459294915141482410727466240663329988772018470848121241743831931815337660791486729897417437659769009389090957446494803442568596374859114081599517652014700461318567610835685301565674155117741800931724063956671867687732500859115408293503144604265720540575392417409333795578399860626085184062412846764019443194229299745904039396950578106030262337131899830300242226471403113323694677886436659714518851605465340187472231708221650150715645318591596252519565848375945928730676244277167850822183610473894783555740376557844797156951680769693770454617048633003496676267760960194107318233023953080020269834749668466768026590794872642083607418342352578699118005019774998612177977727626510213315062429756235511381615162248497199003902787291414380496234037544634672478460372645353477906836803064624778843106271383787676322577665422681102526330826510390788296834512632212173428992135375651975665897312331533318207102844558379874979109428367085842920201748764465771192534547866386481418067603080046845342981346347429429625129816369964041851978605909363662292002663473236888157912695161581119810409153625183796460751152255015811036503808350115774204370834241119861634505596571479045617650683499966329069774192556724485510636836641508863793191742307205897031046829534666930639109981114496564553379236805214942450137016478990458339440366234295526695952101243203506625007866090790024486468205548015009646952813322644315859747354466679679485352625664032838250247449052792871182055774256684285517696894363503254366513701414618660502936956316361184782665715716639753206937768044586700124444368087883978323330092362007794932940585474418147600307723862432278112468248696063856308722635396358262597752198059996742975574084889509547669060565260471977869510289277931489608381508326914796136319267785148677550958515923231864890333230264015186716508278329940555666799478528781604384933957228477474447659520292595011185212935077655520938087292318610769140426593825254155749187737306768039363283762608262398485858123135082602194480900481867034532948689544207356382820628857861063457481140233879489392087597120056087975372632117561004877458148337852353528320136788305290515775496219695702322674547858682350342546986762755991753980355546756906105563234392699450664781630841666146755039931022331590068355544459000280867473038163962935121774578246040780911276145688682942225840075492744263801106483900230001675708242371765887775013120622140406593559448099330164321270125870908521840548245672712710774287274883548002096844271916429359441373444935451278376250260814127478238804755522713167206390900734611380658484740203288553083827808234691582941247797167454352212392036461213562961400629819029576113496817323593834107407483222700674078838621282983789754383493394785888303969283392600397066105662053303874909019039084036836811224296123967800397251523968280706143703775667752711643764974066808360597705068731295993971863929387706262249814074159840736369348918075216398932699412219632014727672172053175236389801564208973435471343431181816687963123880234807346479906549100245735101077726174674213454166777013833024388699429889788044275759911214154456961465504498444826345551871291914046020775117103298367274127523174675190506300816680654090850341407402279362611246969586173349706170441748972241812301730686945525528651538616328772740332453580861799443818345448339046303031929288765814352836668204165432982310871579799946026758534822027039316198908322893557152398794009088131342150552192552420533365552287980394544414292512522359201516344798706319384809926431675031201738125647286459880898653746014239465272134982976770765556365264863791364501208778477511893621881436024944062707468362390259800691162384876181671314707857540038609764358460393504857065895490576969288820641604896661619761327119150728216062112931615053609333475743451072649488060678733778949257850649435589166516909300953042230848110764821916385637240791467868500323620023053204728567418875509431393992414423952512905829185949714814405082541772382188528141450311649662885451816629289024155149432539280563314730115967874249928661567471146354794973309338707923717980704396841128039978956747073862482654234866779570224502525916377035683411535175053389936766762539960718271586490278040806185194961678651879383866280438842351508351139251565686762510890210886678275042745719594790344752238005899303506924451393143993671872368845726137306062639053314632669257024062485991482266074258005112676171096485727840855170567958771746548726865029994981773073797690897549447342408658578393962184327743885188754346297430057327758988661313365801741285368932786612897009389991976681719451783421903441008213566576406651016629629662056993611255141185481777661288259727901765990739101127578958034981793621452929825978108056961763088421271030761323065138505518704514590110512447921687350447910146431922445879630668116531128103312961049147962307275131202724249008738744208621655839570619512877959542431084793005743529284808695721468802594349980439494763769942632544260273827798401244815627769476813061490592727952547561768387000627359520342895970090623441663609888064547604426973008079311315416581513609702341955205935998419477169682640724783984069293737182059144907613074819107512194662172903900434201509012418663077235389318423827314825461042975062256132332559501941993107194915370385393493204451852645758594117343284687601370694441641506304798226517800214032838004016707145618720062955103389347074642132668385768792325195105688144360437964295132773312205597452181271269673358727177966130637862955384145029968830761484244608094603473023363536088623587725404643252488914163519745339444396634569291401023934691562130621515901964313072678772794140913761802085728861031142098237899798127493257605300349848457285183018756291665233379611649781924068907623262279039340873243108901930668583447310796182397802134888773152887096853223487177878464261140838185509987593026974966212305865574912204772813100329938483453753104222064134150995890711712487679068692800805744540727023152861413543301938033907238399074140282857681811217783161431425895342938122390317683342117024744124246645427297965375379965468068821624439487889007460320459860191055149161337420187093997520220525521895313051310908265293520412422164167127382805345619197986485815963973219873087532523849598117568485178285309223225555287937644804511997479591193921093926103636493640171962583699519048346514623877850350319657139060223321603447579444621311868212615674598440623865989020709848773712051418074016899465743297666957676585440732825160312707685842714085056593691559602669985365551017208350021547210588347472772330075740009894257096690952321464204967841109185698752775574007796255019486943164348099956936913631372502368643110213712692510045407888856226241944956747741653920551864349048348533147206305519474305648242770068596941370244840299846251075335066608280949160912077993559408503830498805232573858360923590343109136695145515100777073778558399441769669833386573100663301607381389859403701850611973861762547565637126990340929105406493663432181324059439444541356281456460303491782779130279595322723562689258920898653410886340431611044114927327814515740621930501143993279464080803455984794195355120194870517824921667768250073342722685609768738010367129797655204514214864837759118493240272040036746676521406191273676239525935408755559766441230991501628943908965388259207004881545019133161809322568332593812311295169800070023414094699246243948538502077861961283082820295894030413452564971358585012249189218986126185588681404254664929391828971500915918856307259429983814451710948328899801471981715830780590740867165043075145181296128645842503760846532161430648633136678999714088133352109305947000238052430211106050790966263498901399320256046034490284555247878806906271823320715764714039492273819470429223017366774631474959053409201348300715538394152220840005898117162259615189825581411940422589648212468350576286421992170203960054954469426781024440421201995086177474153703291008547585212165605132557245263328372044736569970892959208341660145943815193800836771928615085150617793616309829692305427563285366125027480509205813267995055090461129648712314103375774823809098868264592048901801881969821235015375903925594184488439011479061514612785219744358094976061619042107152321450923306206028447710317328199906772693288814899932973241265781731823579271555585988833362700942193630441164426332593081014348657242039646414232000434362215402496897512830476470216504160840650644355620937213754379654061695811947989322773215906988965468122758034969238734899090640079141534109716211398681846311515047269696043601042777486398322693450126629777847832858329347293999953527219207379975626007964374536662880175546869133320600801528592067145730096431317070505124434889733980556365372085909480689913579675031928731565846740052210652249516091685703879761710262758245080133368076096254921272390502564295231014650066497803148847890603085267631353023672079441925296971289366240497257630646983718887721333892964437236556315504890658415238297616775260780872292270480582767741251143309168600829763542906137372649105929641647833814270675158764446309884877470953258431759954795124837043122028084299693639652304410905695595725895076351362598019331350901286578912401306226023069322438646979586956621122904630289819940433443474029254298178600920453376454163815521625660394514656922013768850545396069769190626046334596943658430119473548417497343198210359596478570020755711065496157293226684581949295882523025768416175226239052520513943121674668927168815976855800906645499879669636336010781546711327810650327477560812956059040243491563508425299254931798443783563436207641848082617512503701104953682814630577720856701325394312990137700715185405867831114857891489544746144728268076289818637771625934778684586033962241219074813950830469004665594257494833447190340581093848981731345541402733226976326754896458537672689846439428423691233839768679264563513701231532929052577099834735323878129168731736355953617275475078462355705987793731863220920668597400705850748938616828072315908174818500568774967196453224710193874262120370921879261244731135652813355448514068044536776182006199406766031968743328187768307522977736477800466150793479258681192807644539046110459751201155126615347497043798134147322028330061428734012763153881584679260243197936562378627551047580889051653047029947764211862964945254446880618293349073683281624709092475933505214637898906774596597790997065614912116249209185204828111568321170677289627252633190993875948213654585484559414254215000042832735955327405486336632882536268598029321263278224232437259388025756542300040190813070506053828169673049551318139723406735868240158637943364482810957508350752820823247391370314354192818270972418366020879467563545085628009966729713937063941795170660401474646057062694004061926591397712754736124347154605802276769158164313148095346275137289000276188232554769786461026236358089774383200659881596858586896216125858222959793824668103251898241422607636653900678438659563843696115249272153751221325508397532122333608312882438210095376529788024214873619690089799063039000927623575677406600280271268447519688272390921785635866671133236183494923430159308641585419274538847138685063577256325180707281440284042927809704171040873728727828608218811646608472093089570285329519496513384292010005996485067614831349366045936604585194049555132226693469702776343678039706464553855851135981773558348406586539870495795482539318392018305771340812364269044374212006751168219244528380274422642870325627789826613121547009786987179971646825560645511515911814436606940610046364252517190353633640607309576182488015755948543871314262126996796062616616163823372876689131347232407905278819256463275001889156369119637912525399999214546823679899917478653090883840858613827599634589856241093836090801328022696048946030292100082536080524322279552280394834826899198819953620518633722738245034774959561173716525600601870913729906691907125943548336970605414546407288922836722811676876972946618719565025199260395494458742649498760896853423300221465225441200400186145858836041413010769765931403385669058832072496028535254371214338581507032357571748574769553112365024248838753104797783731437067226591219527040310932079122267155834098683548863427275680633043533578660316907925633307222171768638332714572395617452879913698110556809393549770418827958417743277975591312035423039881171726512569718038877823106633533116628282651105152172438069744409914060482110578509611710926554819329483108592229622203747531657148694398699882912990047176810661735317210204313385577143553556033352128917211126307456492197565597560901834294001817688163409748415162039053708202592151790486476432558665640223251828851669263888473803896041044323556426158573809758216975773405680451562304783026592577244937337502642118693174397017191780400356972971679065566047609279889846557508121823404141416505315907913477362999100237434049694983189901243325107305017030530675281770481875147750505757604239797774120921597273844913631419761676036530353179443509256183678433549110157334621295590915311723838862284069676332265791016167328849400802520762555992839131895590594941193122707647272285165066772014323144659196639669240713809903367769363910785170250612664049459281725127039890210791511359265298491464972074563351064141537627483063016340692481911581365228858728356489072312950200626086637390566550481998220613902250485518998766750883502817977282946226070440519525996307634003417564502025976475185791248261751443364378959492910230939160342867837802105457090299376555453458819031083098529087606149401584722901538856871078535231291344784775043473847621914957099621505919145904667819064368260120683501691989043613172998917727708670967823623948479556470308678070090559024719448402273955557422733752874446362188741325514878369275499572177444017506611785597197475605124211624848459971180365546613178782319308101781756226129448299802433425389731832513005463169360257440208878757273889721473478969619832602731930016660476145260137646193706880794293905629734858812868359948075373561008134260871434424565300426025028388745227399079762707074728091330576096619441171161355322514263069359026995816814914020398932424659537595554511553226134709532257650279589794543063848961276691008057378428987046138501744000281867081197985689577246050516815304659085330089363105626382518737189263561389156801209007748486139385580936986020081381334369412004866837226332937719544008016298808058765217788491052510845492437768337255657976727883364733945155125096246952301720055482597796876379826079079498085602531065528776738835177930450707643418817761816929200342787607539653688709446554848120019160337059185519428263109878779935349836885055083731849052289138651283763783876659392518386191483385178271339978577632806531853128310393752448343245232162553141308283535156310467712240040196489947461475549368658569674870088979403197715246760836533166719642629047836939915559519358065045092155405433799224224959077511103033461743186710670520363681182660307073344246017090219331139766041957008247563653531735788650690041629725470613423009422807437264340030218058047733159662886483507011424965107655115708043453953138010969925595258880221023290015201755324675287495573825929336336180190247823069066283977038682751070956862155926571224620153646432511852695156411743162945008488478189752179909724735910201580619121521334082543125069542885858320447525925044270914454516571616652884164994768499442462170243734431739898563428575970397041049028556964802974939130942098748547796510574137743581357123415426588963550997523347021339287587468575269699623563114246335646826114744645074783292401856138910888923030309822651581240872904861774313163925005335355972398968985468155678698891895599932745225455384384481350009341050081828450470392947701704145025547255052276973504023854915291596529949085516129350776626103623621517762414597467123502846136317804139905590222303646927243718347968191516496954761335374554853089993014169079766896921073741245698742973545926288424475270302930510917635475148140927210192508268444624173984771858335609417375768216754566762429475980555042370415480023668911671126820307170404624307182759878625496763744566013600762977736163916264716025357638979210351353032274431504071946257045903041847900351001086803591852820062824088549790894305800286068236806901879938230211350417244580448532569261761947161065138061668941486847026180431369237250367119295400787596282578875522051577489320031707154381075258150326314128992533551378436491890754536994721426906289109268387288591576981172871891375638511614526826959778996213183493377064348404340227081716723792212494593140627220644727054622291319320149882543858462936140614361775028077075833814167962583254222759628023780544601480863645944734353794736264466987207238734960500468047210249701652978785614713790602925176718493780555554971342811051144147191522808368726241178121169616965320539310065068954119357768558046099132726527591765472661386035149132819610007913255921742659296989028464503886671346846935865828027518401610179978086378560473083564155053329560652345601197393041188152629423532267270146894936473948630518658633236547219299408643209231774300482059824470767190614506810014414787252189577298611418206721310330156881533234828443448524426799861482103135771571216098576531357624082907287277587053327157945225996411846317730003373005963950941369733464248871788588408802682440102523846185752612181811739365726752829378967160568360062343238385380710433005829017363313242122430546619859262519014111612008301238254042013987777975867001077597811612263207526452892828009923016882595608678735744609716638677490981422265489703093021604662032359813323557772623813148540296904071692599543158385258089440081287237505188330314317024524529783544956370364221330573322327732688666476108193692164837443881403496872546329603160354647032184564756808043014976936942958220153694346595092791787795897418145895226965611745538745494472806141306349041383893953350903940768589579340414233245451764229724238853225277002143207291221868363274506972501123393936969519079235023229725171747315937163520530629191284953140938106378420667206317123787909764493434134964841188800733616471856605042873944963706611064209747444953238779684711411733101597293914359113536377048203783096929552190930663686761674456277085900173556100878883067539196933655924891234979038409390941686077316927364572606411911505582458124490938727466472462594523563522773472565654652354017842872770246094182929555303745460580987925584383124117725051958742300429310006590411042518684310387692362276913375642587104699361823563883575173870029873509851261481730861319963082099219388250818557769138808152245731262370430001621800973416374902321230887562816947801557172252606483834478073285011618938966019164269035148521326741726193270223077857788984083830613335169388491309528752214121276420427077351388657841748398951160553166889889644807695199832618017250580399529592896293350549099032374316744415594998506025231485879241460676881723240801455511325231128633112847893972090104957201789864529573340649457716426046761914371490133874390305246996066815791958633932686474929407698450289032778242482294856630930744393819583043046084646512397588897935597599968881908200342696281698470670725742579169603567372430241373910887424276992682098181348892122889383544887029671212674738796949423648932306727962783849629160334186882951666893796151921031631186264554139752772613809939856076131240888246881733696413157299376478217387479668680509206342077207350271883747253925249401212642859388710429663843092071926744420381181226005872705053731148232362915130294752885348730818143830035634303171775963391062595298530031935552249851465800011434507900499986650439845880720047737702775718914909559799652923224848265788774019795965763700560480697755221755372921111577380364596270274666226369636347391708750976835541375907444347389942604134332009832577815560559786659594757648851431070403515129365972955463319218813769833724307486766916660859549688586243856470740776389673501965130939365383921613687173317009579932720998960662630542280784103570864067098707457801318245861595691840617946671321326823447328881114351155929260668732045556745093130479951165093431004196340083622874961653615737160228986652852186764053489781037034959740943119761438203948250324094754751975179831612938145660620451200874185145574504179190418276477145130643266867499515557546632296159587162786887041288525748883798474131819771001929370679890045301785540460449513277194758672849189688975549960120077848103454896053820032845811399581694707926648537544971962736040956333189874441230076240420383625804266616558284068672642882956975501994662965425353797488656826500056504409450726603287252520289973575649315478315985375875626509316501289330304802905529242205309957294753826804168173429440425340094039676798954729327182336603313900470846167422745697371326612804718312748677844416474842323535265211495686575556397589553920169742256131709832898947391962928080047535416393931311241911925246471184331520896251445266789396006882488242488101782629266103553724335350455220953286435965360066109606601935335731092088351592345020924130134208921572951272337794415399692036250864482610568844347445157367885239467499921886884852218091521189915223591251096587213163788894737317163045264821156361889951378194577695861305409226735576566000861843315574938230213351105673792832230489216631954889271144120961367918433920475996705701148263704302180931549023795032466114515697435064726481005579939363007081551579397716842902462602379481349033187524365838452784138422306991647319223623341550281779756066816511844124774953565652286090703371349126438301853803992007691115615100910091145411734643050886255869567253247604900832343586852295814306545712665954790252299781123827436610213877796291661858776643243498118958445529587373590687143125707332802790093994954662173042653852974103897114917863974331600272066087864199093624540517556414080692608571204883478592229128028855939939504072733185474421996686709609463776071066055683178068053314343334161371429641306173228417301801940498022618990841152970092094667896137630559876668709432560494098311784078346221925530602636429019065288379250035020924347394271124030085868474089362320475007076094219833916071515852259299077068970789348236146099152252163418752436183417095948521633703876528002815767238049506596288842490850784054337269095409293639999969790593232339222845162918656978829280020123141404022279098045162678988926006633240434985199080269474787067500219226909724220702954939255547149339148872848180138159597471432937279100100118270084980261082169792978398764501304224465880291203647108377373896959242582230578296900489292929792598309483635889795587345985014475234339321203641364411169943667419507018819082027201997984060976839145770162148876213793798419781996764275728621676829844270586455623543444111295402476817535551601022349528646468978054768465342664593178766688644443566671177762857744951504883919174472082867105029922031669530375845148333224215657653599953179273191820220237098902123123796989946291322553838514984447789531800308537803479341671479222773715866789905185541272837489555511509762278760480161159344962255051553042446086038723339834250065754409139772137785928519764941696736056449580348061029607386808859720405996951754029527268302060784710896165151795338945209953777777825918598223460251992982170444078204435534989570135213103671171608722513282905087373222564935833098471906847524820000630416366869021373824892975898705431640247344962668473787146818527474037102459082656909628671867698181336424019254922232258952329355245836376006185088556767310205422563115994524392101146057121158796383909887509455066556070655500419315209108423618546058927748970500695881339907875279344729640463647558195103197293275593856290544811279382240831397206995757779737016660770461894121233391025128425435991764999967683700753436225167208662640206693726270613175091760613853221565326780456371240324099527941593071299883686371898139180024854715051571838800975704145067958205400087218219889654359879169827339086409483859438621189816210268373710494573995292548794536898551899198155998722364173821400631941058895925745257321746758932088996058581601840487781560775220566375145863327109913594219613388346239695286794727813668837639937635691901919437868924386160760806722711434839480987997479071804079821562736108307617621349135688992222219497073285556177997748304277761654045481732309339964045882979818988104863477257409531886954354409772439731527749536763854722124764155287100772904743551848702861047266426186338474564017132555121881208116297563469243153221191564334822222245786319941775129052832096039235041999608961509974400548701696652863860152165185226386286967584660111271208080029212835865278292392369054303884752700426667990519473436138692806670041225628507573310917722773624027526945204598778938973306669932544043303907572778092564936440605856053573549818645176394633556438580462552174897710247123012535584096967086629887852162267616882016467925788652327483116239130797243816733134352866115431286212105881543874594489734419675423399479652318719743286339214697324960641532732309816993350137707591709292908985236956059332917200216824342075566174079730821523498893351563709411395695801246068082510884539951641420353883134730769115197016318420843350154822184274163808918538526217082519505743763903779780314717260173281630018125835640297128206131405285691259159649436120697658134200131399545757612172501496326628333549883080745638305498145096821585514625702178353144360302311413853841932417283482920548243494594593020106623663113390685351269101657986138788377097041170717803401675707283610385442195131564977686737833670481613633925467591943810893426488279445798484004961500966185370630720772781956138634448132878593291858534092302402969790782634787564666733881517828151752866932121823587021097697403743818889036132612786645455313503481939575570841183833582580487155068355229167975732607032932960568291983515110238684141908058267939683864411007895408731246484704729768371518619638897701344225783781531373230310155739341617134202279344318116410181997368095597001932921133575758167347971176363056998461004639146703595531949955472212140320951282359703555007727532676245105098159611110563039711858213959764124831036144692859619903698710287877081727449559309849623962371221671919588171767792780545029371918288595820728048402952365805515621603076716722959059735681566450636206303157429583606276396765859673010391998366149238086685775793483958843859301199368831137111991573710178226594424428287950256460238712358536979481910427635989075030680986190547105024544441921562710325390541084706226727390448989404128262050847702842755251521765195065115282323144170361585101091600369729318651450896317605403806621141747194002215673079786523840000227166170784310617258879091439697176730538664029771470785075470159083954596220245723702243909900619534789718044293750021279092536744963718066569005729763729187299312363094432562128478259008538425216962984134206171807668620280170600520878758861039566762160596695312299606979191498867706671032771301340234446012825266199392455798746685878412208969754785952922688762603249542721763747206670893101856304559792676697989058173022572049875716302017419159786211646454498497812445168888770431518316793367812190547492904286554189791159838926532477943422146504143334755064763019702126708478626044469794011311225527467625568918281762436650867077102781713912227605053472430768948036199707411670223938307893087153423153648073008720021682693129795906156831713607734265425081580031265497673840056496796071204674775246851093667256377370301433152235916141624661541851554314524833804056407275999265030860470875729943484036002286527953032838418905510637532120348006801108589289648519160964815118352014049274767534957902102629761234675262611514411345836203326922303691162141381889021028838732765273791409489178719081456540736570357682203241778455886174719891110560022102352125512862606160781528307446630010044515238254899424730091725097467268582571524145414814095149499676233968291940178695322306838462187823437426460978955282570740550294888654226859268856335549433446229950145329833116893789257868125641924633370698653744468686214836850987906793748139412565221238488367008719427658807304930915234025664110497530402169030009263996213291309585448294095768590261132265648459418665292403614118196609292206492523803947660895815183902600791659514461498565720174206913063904879967561164698274897222318301817330552202495874495768489268281490200138277526792660496781786165247582034187926568335326709161621442284908771018815035978154894714103103688159686284853820662894948143180073199503330879848421702851146174412024681063635057174563138712590881567316214287009766900567449645213541946280433814915106407748434086236894091806492743334258423847658401402843180577538855677751836752357508917795282720071267044060496598711509469335426552784749729319375162932681527312916965634290495421780971614942896151445800073487880385067031656954086367875449095314579480077387377970612947456225658775565651000053885458324616343741295728912971144562973325533619271762291450625729563941738971096798756734287981684007585286113259016276626951003058629032031740822889032320612666592811218378792994059760759553905749095839805103936534364361663164710922649166608230386087169387679036579858750283610535792499185882808410441430130777984037176155776223293837286482587234567818674752859367556019187576195744243545309312537260721754977221775741718813284695021164756604051339085053315643319138529539171402714693995548229085653989873735522916734468244865667063394436088013703117838087988553722182264667833542155828921377580736389886715798816707090104701553759887193380512317137308813995474121782973588589725688626258994933723953423709235234423583169034040716195472786295731031685102227580941990716084706921779606665163624808014553963063916263703698965467165089138778468365435902473435245856680581292290345751956341250415800241422499986401354989351563649352096715314763070652874238261277624473861444642847052048486988919950228494490966285914127530643810856146484896667110214928763921243195335288153771843526346488206797672958480939161734883776393861949198325157334681422911955364206398335054623553148377730387481333832946795542250803795050207157084095415141569171518703529171143582653587694069647889351074492478957188618336283494573983947237022322339958005449972254047383911572027898891654608112336649970168508799337312528686243085119674990400520424805017476005526354074366193206323828564117422661238298666741418969792820731444310432420509840422652087901506634436534810727263967323530151237762278735376901448946120888068799898304202873138811363821124049591872289144626978471546446053807953772324128130890008108570802085291417797770777173800630961076424023092691069712809172660776075285127633178109026635202030519403719731128110297210057838034138125187406217451189102987748011557974280260094607054821257594039803802426135842781453439055478233222433581444577257703463564119167340091740099099415394381304306437512991285526149795991030903166170120624178028904281651328424169429675583002088406037271019004041511425627307239034608329583743902014801149555844693689858476988543550458959213135131037047459269402351671463507701172220124564882580810521124696007033276287339889210567564594938017112866842798390893889282412273854820468040500614378704300481529837968861489856528348550541774344544990807518945826819710525501228788669747767369285791184584400618876465198282566069250462656119055667069434362037302547375579907386772219943681278678634528945468620487605332671979604631755919489866027126738892277908528660260709422655490846385455432494939127631031475275165050920011889320598777749555595554931305762446106069129952840385523009498280819993763421540379388444083354681125001034444259479211795992597555516778222660167873731647664128234519157355676132553381168238201535233348203068447491411074260371553393623400807699933019524552630118229917320162212448645620253657537146155030955828371801353361631105564930635848359804260255185005510463335956360343302509025913814461394537144179036303033831516044731685462185582205344334785026864536922938291656992645316471687553235760030074149937282453124043670547669215880418422237699566777067045133715602255337723373017331506689969656366144696772001512595015032067545272051413701798166861033924732635855462162540403764045793277225462520667598724562870085271275156552012242127559374685686653173107213107034481882842926723329193399960557258039093176826443781497893613588298874733186286739624191015912369557832261862098452219158651492658778269655980928051484765857795854039144311535391041237771144651396416370681759404025802100977736467206188283251805156498538743206965373045507852172378376803756742905031033314288859359819412213269899967227430375738472283677380505931631437569892394197301484653521708573733740773176691598029351666763449544286345406719988785771393478830581169399254362658942174387932246686249494936764846950422326989786639141789675242244679363540981601416881291123182730918816994025737287697674420294399204656338224869509370595531440960009738586878425186744851908061562265449287531333437256146930461814451867233061294628339615212462978438508856455066550676182752919994176855428398423791496171465283642789000642087303773941327166440178065672999195183245783528528545575974860556269718363442518200303082775060633229277173844860282982959589665355128990541012938671863409637610679720596692175804337451445851523728879294482974045466122117681320479886990696486747460789016752045030694505198986747624773167861613845240659226808024327259455467695953176328111643060717642534045352480480801968668117912725421399696566247762529198237113985092330913578677514886827155225178959978570202241754437982503462934854501847493711046757387106357188510483101725093431190641974456560988735521896803135540395140141121677841331333391328093713485032988924789893951893038805790371722297009935463186175843129153919683277423096139058731609773537424559130665445515804963238131850968384558852399401137386561556066664510771087513854582123905272768716482596201946927066460595117132850883879128036730213012026706315608639720698355266836791044645354145927934897908788331404808681970061007542654212209826712569413967416074148651031470211428848742136929179438835863328987865097233644400587317883332421485746362625944566695570764239195966332433776261674163329898224171897517218546184885781563708912177183713380448204807226320748134950772335747981801147714118257112819516955016708828107886837826889654500542776796022729258245282234180713736253134003823709358839224206517451869730411319168698801637921611023090762928094717494634447685190665253876622724782911893382383708566005618329842152412394090950877375443519326997699577819404080107594869491739087552558649499263037019005893170942348459218651602934989652252749082987927785910386330455905890420221746833701312052483323208616974287226824712262473468013061017336125158852576251428616364431966820246811125635074018980964789937018837251572616954759306970423372961010467020840549450789274829806192587799961504841134620595693325615986881436989442819561300496306751769593498075889296756934374991694822721648153367431383600650395650395167824856925101932200213878014372159377896387696585766488124427813740590190077843170806810098280884353994022732038952305079589114390774691336748680048436804791230981530971407057873653075665423507743154753730907086653369791747486228042991736631377990860389130489348558068819734454004111110615627212334226074020142158948423101491569598513565525543629475096392580973914392136556829070796877643078049403249490013388204839003449558541562852119514903172615938103025867204337652365057657545912808901543437154637975296154300696021692366224058273372999515817089857721974182337996401656752552608931615021214562811562163161407548342227312879809559415605009193414097323848510740583497138589739701058315937512487624750552197592725878599256828564571107780202726117136934130246575183482095050425877232521256405279784110618850262332132718790757029796589523908072195784505173928039596949473913521031101890687745131879512154594828509643092039022497717689241725137408216737854287718638680774788068483460765034415674367432348563222372609234752857077669370099939137273566580112462758321180130206635916798004638231456379561307315461204680484626447596749887200823294443869568928687647349523403382256820758922276629473724699032994885376250307554389113518967280027867370059797033656557145649248552480313194865094072206171840999369211330739299215251923672953652737812211278311973978270496792155521372242617811954144366333010191401407234019124941581219713853418910036215189924800754143035251596734805069305257564477242062270827090637492869949091934708395456157603248651461357536489685870726590295248765396797834657378270875834201664820282495250958865256211049794794660462807374912067439373975015399807419984277340621562860154402426620978797798799291833548380115441870145562225550947076778420666127971491098691062470203065587158420345948177532665030196950511676645451193984380731234424280316833056405117047139874222421934638080028844973998851928731667659153079088830747387004497274468345842364946863356981548127377443564655906870580192406308560495274605958662076205830392372605340391025315564857150553520279426140190464342469459593367424468533133922841823361663988724235916828589467523296473182340190357480377605836098665952671164652183971933570831712645980484096254521703981312629396948345046119684300760223451350947102303716309140882420525039919610462450443190891999569414687934134088194429267996731445252490487067333317121462777340987657016555233793963760086336403835529075270508271708131228306809678308242166298058616472707551417351480635279806317043081880938208830203491295808484630766971308225408850748615253171456844180106231009239999756346433996545548599630447305163540054999597031926241698446755712911829191730280689407950804227106329045772797001316212925121005215432552144943561088664456388523591450134091717504277133124723351585670556956982552743936983010452740732244667718757391162416480287472897851880511313311292143573031004014802732097604368161210762358864963264535468308646579409641492933814169977604440207036335079365673030414940145301025053642327325726253742866602436690277110803474529927653824497499631038028739567881221597229465024345682629756378045817302312332426962218613171041525277203740808603922546336611485403785232802867498589607726678735601191538756396638197035475016359734072810832738194950195459855421355968858432203785369833812406901609431331510952017956806324851635165902223392702577655924925846006752914691173486239611883560562569955026256500722649624003826804729727530910576270724552716225551201999624747069065302341838226380243781568260310770758815410198053694537897268775867332667295667574615996531282017020152210352766346630034235869612380237644352656250010223285314321125786112488421778343448077640850178221446867691426759482687015281042738663550042923815527253465523101372318354799147177820730721498868766515527035992312255940111771156019670395382783783721174611461072255288291459927446357354618580624803133148710173465503982792205348923558755933659460202865782835444650341122904165722918554198389611050577835897690378677935473098569716966710143103676746354721321378165808999762923427693849422550911002955484949522015861373940231504353001222093481836998599409817910795428645116360445878145519961175475852132327087282451213048333478300150462555686750635286299200153288283788735780378147986113735747152424308426030305029530145289611937233865210300370840072366099623384121552223017738939113165003415560552705344492553940517213028141544177483578709007165692857154129510269309388710863895030100495843724010558577579899806248400810392602432168454694892850570509868799037434344064381618503628545561643892439758128712109263145200887450826829465233737253000304524393272168761976136958305550671818163205306987030376093004428366415129829848673557286757135763001191218112438803547625468118993579919513710196752381758841863561036936734817819702239564833226525645527470502660535447248867497106412785863912763843355157776144087504163618380842782326566384139845271818689264709133472712392550548399567207656976118814319962505549957431460656861709489305553272332180120281689181008742834300564715613060061737429110224890887844808529347071329471674292966115978963235930504383658418513565536620543573321190379472991909141449259520540750540590209299419862397519904006046537310722048663622464556428421702137869212987192099530956818449983386909781203782260920962585208059324743100373373092998768196724705535821779260808117520744330790587564585504467334821227170671499932502652444315060496491393687943642519117983883108066345051827436754921349998079037655950754357426658684673826904073321916782805410825728930499453085611288469947531578509432101256909175638356519384924205541867488671513587526643283571059926493401751547051434484544293833067631514282551931868472393536608166187066960852195159564248067071173349231021914477498897285284597381449763187272812063772918863532041438772469549003023294833035607359193743884465487033506835349032316904564213439084434865975913250487214402628038511508445284774193346656745786147625756266522941115571929869811402632051815483462779874390335455434931503264751501051851798723093229651488399891785707113572416037635625428985154750513052835861214123138938216883817465440637577431574682773101530647675394515943744885095400531586137782541805668278340196640391724431510890221470698150077177894390153005846022327897615888860834147133547011144272947502445445543768936672162145996649072138113559646890430363441219032489638790177450254422578773755546016551651431591574611283238129640078085029819770767475838342947849994672829462923950542142136651827675892392970715573571224868423762796318561750332554941401168630826061915168118121703694219652485587882969687570577578438793024124508107403524446591281004009428919350124816922865221663812687109296506724023142616134275558958653845795872476595692210585746711427383037940499656210928590799104180818350816518782456975424290779820013358590545981005492894353304543170414239313571567949158443300479996182413194155633222255434176142312876214100277776717626438333553447293758927170488683217166394849884838041729855561479330955144263182443557142405486609845865096830729803709512206624115772182181016887518084540867811180916816438932833921329552611151206000206258780188194809747938608203686902396728360677586071170955287788937676953864874701016123552584792391462584572331273846738882170935658833244468335703188328005459430139959955500918595711572954539133973189631469096830625991890927409244749972695940422555519648003239922144355076220694909749604035518932586602148005921494550501242782883089951633315626541225445774201622667213007539723959450872023973003663578588812902857207772112041374733978437681713752505975039274564075621953975631424100884828903788450972799440714594388059006706149134614300815120988479920564314338524745257414374014038059343043468507544200950258534107831490153920910165286170928843613514951732103977746592453261738717260494169146974049640561540183738098351384308969407731544814089030192459526695189957885445769712222900727854055347261927781664589798348494321666474287362509536700356742825466893926961795613781274522137291527909716644531412844708021494635313788352290929081117733081604689605981620235611367571717642963424047517372078350909761881212603697111029124334129000864355896743413380437145255443245324767641607558287273347411253909151614272516136618167471391058697459644512927272839038232704836168714331824691025299238837647626021521718941860718544694604612788421830144995683714075616369290520925403458149057773868542297068139103505979624488090569354709077074315300422572096399281438754877893811481722344166275548039003540967697351819412984288128626948402389501221410807217448354343119519173801499404018520926987219152493775597638595742778109391280868463484022499315114240197901850055580832884011185345113460768455290483709407755055411070832963989445430495541720441138297811732925373130557103807138554405432673633792003405696143815133160690645940077562949678070366691047041566622283124304501689541763915966356380641254604208552047611493138534200629025098474801647578919847961177109128251854033188476591420490792424401887849485089551611296871982813680322440142567248023384530687636159421519769314747649235676504864761251236699847723162434598250477856166768292559163312361435066312379548977764049772880250392400962229675087959815203556911197192872290596506172283637403678342376865733198949267176765509389226881138740399781689565343226538578528340099705984793133474605682825944819872976391171053929333620492870428145281027901078020634235980850984077355089195367287973789175801354005409585182507024591500448176697928846806918906481937857591968785590949553970241108460930880730178612045502656226883987559801262882153956193246838005255787205511483251892927354731762267818254349372643270894773823701665871903754791525971854648017031606494918647329843518855484419481633924160746393925698216730767275236960395486908466183897055469780566116700589001673483161079350321176958571965311403008108858886928293617956943642684721382542970429365344295226725561276101679744785702962574689777399592124478914531737573067509633613503728837404151806608744274144098821156462104543429269747600880492858276611268553723072624197274554152962549259427979925131777123189842745919247871952863580605748841491256966390078082679412440157335675417449865973596084570925999110773005346095412115429341498615466925783935516609583554941356966912571861157173383088065304961072009159570205367418407352273133563770596805175670543702872898383967050080832781695285749063441151777816461364592050671174212117111511059372377301625111667492120467957221770814279586622370462025010180051585461792400760994819410838099460594300901470377579806533595611505946003987566864558587638600796162036949787510101507434565591580291059061128347191885459962919460087084707535650194275126153798471412745054859482753683182350985477486058802405195541264683155428351911665558907561442717908854566259195440545127663543183677646459759894592370606759052060351163399414281419621362665771910352988447220937378343314938354861086356839056081909925698027899404175877165498614971240961437951813709261748607122022666426274190304159784665418416169156939319276208801684971691719174672199903825856349944508737662558644111454997554555605828551805297390746491457893622878336858761151917692630890381555512275019243858993646510652262354811941735688232551939005098534572342752211769346998767702915090942566410594267630068929820908460536185990477560504876876153804131356111176540000093026485066591175546698618865797756689292528257555336928175319831379191204052692316586138876982147038691299911748926576084875562645048769068467413165082619709645748454502483042364883455040663926221326466774743891257468058304077723130369016046258188170471259624665876433165964846616763165419747962617812521883670681817681091464570081153142476307365150565648404764739636844479734559519327401664639362103336418688380618378742173706193912778667170907202564810312402425467528884444839765599909820793509209464803292237230530378090863374958523009102091167116292826051374894550977012435766840637010577904716130349643116270779151151751918930713414208101061119948852619528089321165091222564987632137849310377015413916606396427029035082298450660824923162161250458476435336754827502918044410087832379407525632161624177968093451829590625987883551316973863989851408451262820606234703048245364133554614584055888923287743129647599565626341009597296935228055300016990633431341048480217887940868072642180200112763262978692510018172605037235929151690159142655299721029207818052506447425541352309236234800967490520044591296636423413434204216185026180726928002970633827612066835329099668963175831466067229861085062172126071079806345231512668957250998676459308813387633664282789172706178068286868037500631067760716903308573858450480254481248710760897737333345696918178657098510407361929985823046190618472769592508871617417384025403977203083710442574087184787046716920049973999938171665382564315614145404041151490599628289272294581599088835526708834980849557923998459352830268432745429261376841698511610627368656241279265536047103891658966603570875124341312814815455860395551202665557515819025823410418060999405845084849142217237861964617510954738561522321096861838136769874938145396252450335266591310235149838428248038227051881914210681943489926211383171466265103301482027962396323931102224306421839731319150761321529817249628422234035914746551261307504193594528268472850586538665330696312583911968461530712415337672688212161670238830749753562220270162365554390972803372723994712997940736666538237886234108670152339758387989853637586621569877784111217123915325898816602168421451292917532428156596779883473806364910549062545203599500461675264160621392465649494499714425867412219704125436064347540543867987094184093728697457025266509559652481014001545726275631010334576133279740927698549883058537269399894575008323060667308518773117450678831600648345170213630641702445027635802789944577812245287761641324831472761771264851376067785539532828935525452511869712329568452754832987814437072051576763145605107271035636113961924612592560723282285810313463922953790038667974164930610487977670805703200194528266642578499373311066660912946241979945815619048290851016805177457566972034574902381813148894770424728328879276178205173010995929008077238111065311063279829014934297806179911451865718036682226740434123011596754460984039085016055251421055148785027959109031036403366111707971849650572359339675251094526259549184407907954453331538168762682162051669524350391979921548210558514289919012913677109520048231914609334642554981398087546859335390352987841677414646689662138609225095678664503764750557782777675256058831279546648164012239257351538889474233088893901341819769441363607905175582771978833611267980227955292550386108650755648649173451814000165532758134793751952298212110457318065612908268204402669258556943515492451861360165334578182186359110965026858729383504562692907244973623341896293180825356829945847372936627923691314313729742798873012906980905633442544724298363064253039589598380557121044428971813204389944534583136118238625303844835657821000277681531403762552135312194817452889759012945633562115301791088295557371877029960142268404227203944110680438723084151459390698040661392699979950871232469170635166773832856467813508699280506018194936611325249293371089625934463875129600864549442067809906076292794113357895744907134744041777846183196792004390761825120687419048888476644849708358936725168651625998783396948898818967383687620596565062034663492884989546513160746932855003071852557198909258737920357696624695383820520976948835500692493147422669778161130378853870938805465478312367948006002392839513859633234956571881630803595643346425890644176023594820824508347103043886899986439316230510523709024094248492049082576224044394089684302118666455955577171311546785556532996115285420849491083235257264555792655997865495111533744599569383848667222129928006229320038197482643540074615311219886770742430490500030021569924386214589276577743019494389399762110039661781589426336088750065588477714820098422134955785851756607288566728554772411980843667543620160322361835874661826212937907758245766242902377193834309124363839407447056673642477920617141584262141417330962878890524171107660993762116034061130215481568531413041124948629752156297076852622556267734308377608527152134118633098260650717150076192013420155448288132512616239900730420443674341782885724577650277495990514598880844999106562209562529940488031444448684205114923704190388256375103579799440975116825141243276116631021510601865232005306099167129837938855131441259699115945867786722271693414648988204485720215426145781174552169104359936759875107655459003241333714831878900434888003374252098337462763076792946447264910507936353105649879445220375821454617381918139837025771684400550220411765978105355609664618120780086904373906367871660668379222904926804124154329971751609940270288662552901751279214910204732562269557823321761994126324738270948357892018395401211822803610355986672176666698757550891476626056370322117526202372497196009620876710928262107213860648886593189828982823941519940538773269712078754719376613370575387531487539946363777495906734777356353805572012682123612054622850769607631920430860114899035972043545312352977669413939613585498089935645423609999316681824447848895772544291291637358446182923957149509483328901416943481250057428146026894572322990813486724388569145542502649418894038653881252470307875786468568303010144749023791775731872385409745863759595523526093490607213960108305059332482095834118112809852613538913310886149285364777688888087882427558380768564749523315658556468330060699690075761280698739184749227261373472928284697296922922811524836381857910419171423944011140906585820019686569352225852966763856973289196363058964607766224052274027248712707983131604855872526201519909365604363947146893872017280803509511908005053346682486468484467050464501029196008387983255435359664978587147246400411466582982417786785372474954913484555514324344544002073106093493194495439609294609653323938691272049512196867429373314265575075886917517137873585825474625105197434094584083927699478325888338981425391541664620586945137363018405303304409031977526508809811177449028175863305053160292238206264497377986784464636596372368872514044269376671892861669970463682185065933233356800480903586415693350556697624707012067742429523673882625367183897460939966094647021000631146838826050075686825656462707650056943528896474300161186757730677761113052269963477173920319560988628412200065634660823023365530918854132956337779212549760855279382339192813176287363835190154798952453088900170146953438666896346492429743525642452790388539668140607067010787437964847709553246011478607391950174559370167135294625382838109666309729766088290899305246433786565420875187986569007762698816079221333219039131247749316578852818485608092585874514624381537965608652039170133574091209223256849616010002822330623044094451036733039830226922606871804237046351410570333091880444103104550142587285536289707387820687768953245471451603001252378449470830036611027184324887709052163650790921544905482659610980649549419506271785648527866022263110434782193485061317247649667742171992426740165226493015834795829308135898812931654500204783631345239311166595299292815501176116086283740784437338625598811672450365790110361339944476835555219271697697104317869157518903043677969328343326690526999767433066326895396694369363144415778306044451455714975114467237274505949532320342192315081844963639104264641910681973254521513482719248165292782048681296191826327152405151413696060520243484794928408910611885299182512778124732469273183346434672478308246393023421779194417959492530941777494973935188032346874950229886861429134077728685215870078276374681815639156692947031620431455522560222990439598433160638346861034981753865587986589643226430322443327335086573830845902638687688329385231110959218808448325267825687341298323896324518299185628612705898878902960705042633435595830053139260164213158103196852748258152876308922530419011946751831778261265370962072903328973160399110437735170891291230183165486517508552113778880800894969111593692695774700901225774463125827434684627366802619207214759824554070429090795516562311568161721112016402578624554663886818751214667625652539826740126431891107639618884013760406843878860443424780210588670886706733485246481849376671281062665425705965249985534092106812645992323060308940363871115155691982349896974401895111380130481111422977714885657538706068583346930123296464918425551305800109107648690551955659789112888910427838695384391979865949580757719458208906537656691861344633545414094192183345516447583006025793286544516915144735455766375547917588028959086416920586051071002718348995760665599440012857326557363023964157474257898153755482511909900617874465859983020409970692987983560267281166697380928783776619354634183861058110151896261361441747608941044561340714944362304652734705412698012914850807333780039785465030723583074073285528080273594948272823500681939238646122880583562024998997785436449236165501244144744962074617776482462962242229353418506608684391095911209914303738671028387781923062000427388488336731151451971785793820397152576713910566702164662526936032674454180182120106254826541571960353837864029164081320568858907184891246817923527802394050442130446041210358808005854747270757121470495268204592156834976335982467218323160989968079683848465353356911821562423438549694795990759787139693685258804431211119140567128170574855710851072268256425888677391289926761771807055766759825838837356920251693644288440660961100621769600371069426939887199918194956212995775625443977924318873549680910125919027775027059669258668163426776106909202151479594891607263100814590021044251453464190705886817560143070695638293696241329285627043845325485338904433691468539893745370161611867490231687103704269113554568024314683151114258009526419201943903886632043576436473398691574112055290656496544721112289126842958088962281259651780982481500842868778367241098039149693995181517780128323762967818797566768796664835257790997823757663879656699797683727877977725843441381433993948063412242822393784090668774989020994207541595328296784472631168722379015644908827825240280480123516046301867824113330314854924636680218801326300634920554589674905729385779547419098516627473091068215877729697259514337464090362650593539268043443464660061556835740527191467280343792975381404098992851242550815161900908511014582022806291678033508047618405203423510388333996926918563057250198644300574086917391601859126569994323121137173451702396151212368689778273156222898295172209837341973003099972146676027285001405099446452579905397392676922254509291109307783400188607667499531444940808245722502289204104439568904751692775891155924031900326855555904793699725276511196002906010891508780209583821803002270490346687759040416866567888859616551042205791962305358160223978114944041550043935672300344526072180645821652966544693327330980513464529868273078865462070874573746831209353221583211790144262638951715987413264661731826490893179693243277435956311054896825277662123526748292369033235587126128832818904018156021728924324316009646065067159677890963464148981925859519598427786233609587150745996848854239457917911099573547985639661748316610956393158509167921474363279761668782786631524110659061660179933929334745178941041144433032125135304959588167735655443908040391681227591136562963806384253002839705263534677116552226188423794451922844219153422863804903473990583580995182578599069046404930569048602300734900495298299711695394335422438527291535093340490260857826420323951449055513905747959928440666018849629368973086570497937466646093146785558352572030231964576788955304631114106646977374764596142234344955437908234652008600851321768964508808444525269128627170487024800528877989485745892884908002331508200806339378513011067183132241159531331985527170150325173698546594302510991694504444596900779977479418470078356243233984765239476785214999977868473660040295945523050853605083790577718117360908799571570234160981475107554267737496756891534178792278973593559990741760157867716088931563415049108229144066625805280844837218538388867605977287931415113445022481981824109795045729415350437349512848806386103468432699181082231641299694564101117124655304448478679485319381351719037181769095445678178272190510970721465801235514193512809241327169267442468971717728557112167424060213101953164493363379267398937526221328167797260787536156453064131409189435558374094590919503096729092314265778650615370429035086079933938832121511262922755639457903076443012576472043389532832080711547955246639741051541372482302794837197111761683380154209728174062215143830451261184106568643054873388900338153435190733862428817110094209335571216238208727411131864503506304701568244771154969619886362156677305682174470862338795045788949097126549192224649534801341314052718633270445436936978435785329868536479338024795098099113906313989449933040587854619088071909151301291487054338301729480870241506452767103427605600438574777413952426494874752249170125030093903473851848358430203123615681814255563636273438143680435586910271209604941062329871425593478213718669230391191144317820555311112108997752740751579749230567060768497495759563973246205529883260723930941531318456255071876275564685332225252264762874873795843021963542683716777284582821444888475162963623224675135389610576017214278221073965289564544163135101805621614740964258639078134076406558464542578101564313161490380161280550385552339480353329098097019786631796565559914339702014330476641225723179601608904155432625760791620657346886017141553914250501261797324506259746452329296184770296829682222507887049658836720050847254395837714875344077707916676769585875173089065534587229154776064860034362498946167640298222103954415591771659207404752375328819774447698415334966867869312055368716677865759034318784314415064751891127382825704961803772234757225786635848154012092298863999314645773964663644629461437652608166057258123838437897833512164375598111906970405419566212161779357621608156945849877609555943584698380523516295261101906861525884096855789995687804585301104851015834222165437251696018623913162350908292025764432954743056502589785688695605554511062060915019693517250082576960550130660407842264122183091193262025079438135989125052412650267784370283339964358935296207298697248779733425514717548288326679001314420953270996671220508284574997821548115877174061501984712525340666776547498304149010626191161312503683144396672793649606471085467807655130442451510626219492701621876578957328355387430382876531971246146808435062079606844577685303461529923575690816287039343798774922674430368097048497489914950343172244866845094729900910473067350871202430962132849107004538533839379475496887319017470602928340217737279407471862829138860565297912513971653305816107798692885212305016193533807019600030168410065576466452652861427496308222111941232145899037625860188796473118627600272667491486734979213474787687530472539982001114439265749710142609536423259593515550867024396608140140426343047223164807511572198133231763086968935068786673291038069094041867945945829779297054506683912430980694173619642374558733058509458101451198603183338244799295644162936289062203287369778898819038265660638827306899893554596892148896963878829759212912427978206745288115711768590426888379099424218903517043322095986657522848219608067930098722433995821209513189771981688269044790882239382826642701539987446453614298175304364982166808986756049909348682179529152655930419897062449068011874642244256870151283987635750797901135737806144252324759589668315578512214811279709682078321687710372229882683737141746664042188648573762324605140551836251284424502308382910744733443276233448135704641263658069719014331189479204014488865828467495878404053147338492913025528767276636744472479174550525764270105985064469609484954841120565103575229479834653040745702665520108414361831651098033025215103773910133284651985589800944389872808849813161395162047067907620458286860324365056671192132746210746654743366035663629906128878415354054410718239327371128661271422852883483270351113801713777630801383846954758465986780976483739481263669315316503859354845457568104096154212323587565078307839439002826509599696510721440692165732655676702976669954284024868700095027156269180663866000987734332520869726394685562900160203733603421306049787214828131868436011352365617275813951268859476703040320125372469492419033047973725353002452020825723053935783953762287987316626033575458646302180739855001890109409633844986567607054269538145235255559965560234410667749387782579797867433278042666093101900737471597994528573905697094397870753053553724886142928282133944604800648512472579496869542793162628072045550747803522260205753177665128779354767477899566982266896720277418562670848196129908017549731975987306023197745368036604164293717193212999588140788802577255618413319703355165655641583045156705671216003910755252960719264141327763899266676921249403383805536701838948990459611095858752758173636614356340497135445231582554113539538301838831201214436389389881049786627057368977569206791810465854887101623022106028041658991435090552582655158736184328154836645568423024835974934459399591633849456375139978162735325617150783195759116538043082768135654583345578750780654487793756513251723224185560802039082791174470948005823563132694829749828730825820970315254153802850274797081855770415513423461116986381932391829481249484202447636032737826744375733324318316628883268763698326940369311248823174287407091707718703304533906380633101078985988426220028813679339486993331672469825424111993418153516626796531743575119193960631721762958852602529583550678585714556550835359607550478916013535942886734835499047646775204999686954579949122165610631035856754875139951758797325696842501048713011723514058923682335671778710691545434533700534808893234775503681345703429536223282059106658388297326833718338739761874046667535809688882011221836923322578309765777975883196150949511812045793907307753577096115130119352164001871788074505439429816535494433948182322929099488497891059654383685263742557530792994392898609010678959753889733973625825292106338884062129901892448121405289813731305836612950385071898081158607592604948138918982087001020100961558854424230865655959020183599865318422347068364146834200390388287619975367799098012242164603089218935931967701051421251785958511345012230217281696150264948756228705371771327452569233426290023498772212800072569265980861341433824652499616221711307776953482947778125683971775758505654309528804486874824530252585799434094484153038157878801019445963926692512608412717518792268341219700156052045719220730146609808519806640833423820588605039356135353943314128854418656362358505477874323169725578161188539080557331529762163092681413696646456367266200381091920682881144729666471856904595557256981663200514157636849995166821950513850622487415955185984111874311851491161320076237719023184635819448323568105233539378965202108035841085435658546927255420813533056358976156733706725550536609349564056258794049018606515055398213354965409336654061927650433099374777463929101603905196507867910058770492447173217394100122976928894482718217254844583009500478707281230910230768315819179782720187647459356914003426751463257713193948745718162622228228229613978049756849580473430347430651054583094856252534893679256236832633645248359520619606608164283759029804671391765572076443321748771056434127020283306553512584520538210359220166358775296665923565127456011709274461116517828988548599477333676824359189162827788001098470519493256749367204456132872473017040156746289784555365099531513675339141138692591626823679047362504600490417570763831381510738572049720830449308601766624293071363419193929752338370530102938686721083475413048736172556996020109650931382997308210063428144840957574557432442389583379830174300275990945805194293578819857833337768897973061866069084000101340161925136823594556469414479294596882730440404271718552425753368329122663762964396751956471881374384422606990350925073824437551952319921883650508264618662482591780678007484740081651223732246837140751756651177318059550524303575918141416099779245390192271304374997362999481880492265438361164596023446212291146081381277565131749156643217720819287189610740948598248174433956132687367685538450701088481223639627239485772201751097231607565296773927396099011780720641406219053056080402052695911780855077877799199772324634496913207805301616491103482895669040181395219267441889995808993250150868391232148268384044794357651765372887199413237498119712100963471233557610473353425191433115455607832430196767295229764103985338403192476280724396730223845166560575841119077532823622050940189591980789123113076486850261097212607758097535629879296842224273833817171182952062222833526660090183685065181576739183969172764048433923952527150027368005286015250199275026642561671599260783951053480546465205694377055070297001940691530928150083985851074719097007758076137385538526276619231883140513132805915382378265517055007592937646249580413956762938350280924878848259012386160157518389771984174551735033072418471957866577916838485446054393515696023353214585700369084763163318900948051136985889689242987856798008024092764774994414219106264484542678647824029738104120791341887096401271083736046985790692128895800827213030719376586436871776566048270210986563640089662064189580723249854359396660675361226075013308079666251319866999167992434760845987065441546576557464729734279763506705189208192618513698736136689338278289597068851568065186482424776790839721013086636278022955313684648612917195814753548378225884979023675839803295353704618431782712864331090367738090784026164421753022400443365561061334922968905197251147266397098400659778094415201632724328616479266484753115100230715452145256368705771292805146506658083078485642382675292341154536996390645986335780715694638317825943629003402116445333194707280984961214151210332421454972813265465828307122874932178331716141807056284946982478408790345007358402637236475288403476994225981184556955660578032916095808443445356473249214897507866928723528653795277801733563571165983887936870261339325088946575351908361342709931941107209437179788743672560245222192364730998066441874884096213610558282320897335699860135081604265961501809484932213831030088032153139798102428210529303573766350756578775419333001408489148372299189722682415180098223832189405537588607913778943225004401808350332986336785313116952662699862290766839961519057494948474309205109943235619525446265538016133131172100237097481314075901457024884840805661554617767780264811426020911873012246051744564252155223279320407524579301335789843810688649976503342907123152620626105785452284110058591069936668947417181828184222735875989563550089232971977288748658947430466858258660506328078814980269462426480402859355591052269221956316232371431416445281716736738456585320830971685553144219963028582391447701183538467579827127224800313382225470843066540160892757067516668296284804438218201437151954751305278724647193946748199148720553951446251883720049250615924466725257311961617947802539013287157033255814850379448078193129256086282332737842158881454026714414152899120940046430725738042005367201553800914711843771085651657002611477073345867974074092165648397739711789020319023998581529236246615842938155478171909180998749174060715949648343056528148300856687179568705247439519992411819327791434327921317932060450760633941995377222886764581934050693008430620083507692888382329134945938823904421038418084009719549800028345101647186256603275970017577500219751990034246083029299025703787718427894224309886434435615720120696993922802096879767066288838703658106333565481930907848244154743701910597899546238121009416110481882353347382147459217833108545373953856538003587673585317340690129130937484812901732623112580938946239269013675550337837907586155511487909400591394405775524350268840213343309112529676192022142293460627156342086958679906206476199572415644659283414855711846050520377173176096955877322055986690038454100661225568984445023141762367390311521848281401133904362909726412379523300164750052033095087080528844138295899108094869411172242316095490930137221798711937946636231155117203820789109980312859358691581596830906630885619168071242820344204832524364226128114563911533694724713484750499997041944500948520997224898499170401777062478668962579719410817064665734110364167934400079418788670076968048926505936583473073062556489295641684854957442846507711235135664849200866309589737720082359728402882213777280757461261416571161285576827404796443535163161045997293806087424305501362188980505194102202076530318603716508365948111095659741450937369677569549705142263361492673353731779187569243380048115395694566151018148913781655216546013218402672350601910714228512237024191630303224755442085454676608952164414188345016876673958272298663851258501553186001257331099847923174996788261284018462243528159876413992877412391815359177062556396050017980987885325906346679659331782019267533514526346127158010381138833786759546771922832528305639939508245179104675908752646223438084157125065559793228396324115808557256675747054313640608454427122880211516379742587435792030158658430047418873063799150862160612219364621563153283204645620881169237382360857332043613707682657250660100290137318456760705279100089109070614415756500139981123853183697294113342407716130281103196463760392576244198468150955998715650956593131589151365202028330467152065637917753570043912074354270592381132890236968083141078709053839170330529759027596084254731852711910028193061204450247033680295220613681374424729312371874253948582937569444899503728039108006539519349240434422730420974843235928106534305079379271690955515790391188742317230842388835913069821630098671640513133050050200171043650468162544935929547623989999726815605274903001749356940640447385677212968421632132550453568096213088818187257916970906823762659333282621703777139907404221594199590215294211261702775550882958389732820596656074815212817906785041384734499668408702400949645799377408776253459087951571143216635646233520374483109671516657924144011961860126515855183351905616401031961792114205234633718663802950381035603402503809375049079396984526377443453180318981526217398646824292645489730490643848586292131613238334459578813907900426850782215723896235341276745702087550665461134239913368764628018736946904975018942722739046765524982721721519657123766190639777848448206783987020211635009542951641694857958085781283282149543916983024708500704291343289176962806125502052532651815289623208021923704413372007003762256180972359722671268790051376007649839491656096918275250958524967381193530268231547898638682096855676904510201392596705545466188934208941860666542237366596628441492529874693374305914955990945164824346981040049383158613491595810940062270599390362320109403782720399432301571254283338882261144532263977859682583136924621939081670299520748029501657637639762114131025753698538112116912727157962813075605770245842535205180267927406769091426352202900482506547680058453686373617424541432605015337943483962275154365908814252938493707191850585802567396184147543474284930718873117371386669721847535077344620819651869531914409138132780089668415993840408559263312498007613309166744487575478049606715732930319331952672142695304394164480578759321161142143400697345352801160059379177246942479383990925818131957312784754677910665155789389539043016825227092510154003200337494267538280198692386483695190472237855323255210907267037112969914380766625716087469923200007683695242632124984806458121700904283719757999263823779110332220183549686258461124240563929407662044227806514211565041480273941522658130374020675946778115328376023575959270403181236024998982843864151966465900161789577091726828052907735450782936315618251916419471381186134099434735252953018720361681508193804117777454592031352980961515978974310982412361858881706544616604694849254156487880943883791307645692395149331994402164456713445699387628789897510168626273749500100009296974232802370070268727637812284707792714673766816131263859023935204369080826479123354933546138658244752321083560981733035268551888175830368862249517356485651710237309831545874544548070574808636878623126647690801419410226003249979646813425030347344395884172707467148941616605117000918585430264941958756702774866359466108268318871337006232089975014358813908084126826548132311686902377425312064823510433677129497323791831292840556526280920031741231051771318162744998909679901711912204905458126298857978299728576700450437168356948444474561341871650855765191259241554134047512088895711029563456389566246360691447187240735580130946195453566969993845361457827272303404615109154880574840135707661348676389394455052584874735317349513944468381397169488895170346936396390881732546096877762727487803457711273790790380207859077152924024529551909265653855020939027102341691996812695325222439776945385624083799851985882149267980267281588247647749798542218890696269914966554760746994581539050953928531428763919950328101344575885538031938850367588257553427902260127001307407006885871565442365668654387684757619676322525261589313435106528307425706920992223049927788189531847607788168754344928449094375678100600794858768676285534892942863798662541630445522692104828633377867441311963693866242935712362880513673062523910628937264952857411731551602912691551854821090249968770368874162415305549868746777509484649864272060210778786990610287468975237875279296012714139023486074039278342252530673935266195776325844018932793563695673879563822677944762546273475982474626135943735177876243496591896059137580395538879052214715042546405479905757144268196667543486033995305368697348336518411975679565501447680118140155112155820207077657268868527976510231028682347786173342919330574930400485252033954297167521452040423575232372257548402091891053767695115849775287152267121939723802491122822792727320169597907861568948121373271826937159886756059654443361408710020784082490821657798476872430097598612985457262534439319152063468429774540317473407212029300671683020187522063561863619086015772923750940993335662417770223515471117306749162943003406114190385243117367682402363301302560492989610226235757392143944196019884433012081924785297910144265319264237809351114011723809474213133509944268515815130157292482532730092589942309952618333017933849725526060218980071949639026264845248415870492796274651217433093713627761699260678455608381986486849276431902934854866769286995241127845197897249848894357397846326691472972684587882505881779607360513013642965899398586607930857042086876612393210799607663849413018128160056863202822015422112098269347013185476804320873828967161768199102061360687649858944028956941630686952745710528106225258151662752793779323889361451935794204866133443985791419914356009273619387298500317778766678478841827223841722614459624501603133278637527285220740092037452735663388485148227764780637454410852370426984749557517630442776377849239340353291885900257716295629303109979129033443541206344740393108553912286169427499334233672032828367155436272661198193772556136154173131514039020796932284734528330375517120437836156255382755905892645219004447177069539523384908906742397825966254605129204842185600966683374565165862578172473183621469382004825711676125524120337246315442578424571212618316711717823719862766103468446987845234815056376680882722769662526741888810320332559579654210361272954435076180152831532641677509203302116084979065532028114247941039641080999865805543825733773798783782455499674264254339398772631650594333985301770676851173261782495185787392880261316280676758677917330042977054654110745627697003443724203386698201600619690365717123117425339873788141611665457609834366998124241741272742209514681980984511769589755505359952282968225463435354028707704832569858024605380658570690474904245890384154319725549493395899252416337375385679856803885031167841305243078686007555078731005667904262442343156194971181993996280459288299185284776080731994481567449046620020813889470018042330174254323879693579779277626192684432528186832209616780284561048272356566920469249199257649514713504320435698263538440250150667732044580634430237267367989675230930724460458286064483678595805261577857405894098880000027354238169830463213982876788506888862172791395735335933552109885782647621147108677857786229441717783973982705708369470919309809803940820985957047249529475836953138329956547054405163862211147721428553157296284598056127086919424926175195856749812835463772059958075328636528353459397645132310932459989230915051733166161681500445854129523650518119341203585034815901163358965752044330480123920029098076847761802130191049906284484296847615485366250324588306411359853092750333983350192383344595308137554529548246991724960927804125308567925375912281601454264826305585478763041603315105739482127197238804888229739656353175090652000577389192623099859889939980534530792820565177470658550388462541867831373936793818723911369121772961183325445777598075364444823132513022316806193719122835143723367611771658783075941477361312689424529502445412418540354477807418381029141192123986930124284254150233311967692519198411551643386196400315038302011448353195220377882644407561873025282263721602916214622745703657907826490613232504749159406970287714810337230395548569101156301577080606440563930156418817410423094063082716946174449791995027602411842684601788074930623380740239011472348914811665803952533196917937217685308167789940467368949582002644526554901192419942471882912319443610821119141385366656788270145612230619913906709394680006081917868622302313948154925569560919990293028437235575399165792962922449170638597789793198650983663984890605361664921809776570208612728736082763167836334458736557442704824082426815755160290569339372013219365524060401691792045939928095203525650043974633614698082643862873135415568769033694481469259804937801662406986553871399921174217987078293465717720077164707295867128186873766595226394540488199087067811702574459865965713948561697906073422873410830206944658595512271372610428517116518020490761903156290574000867522590205681604353362293804497464977393793870304662293301990832550715005125092487529762721529839108571323391788712675090667696230667662796535662500767188876566743068024827787457714343796356943833730570429157866104274950049395910995504931332905787366919232941592065974397662633100858791290543430291533255697078460594570314034884945595108621449245374226249736496947777343445406491442041391397957692756935298327104105180551949609006499994310662153141494558685887047881330084984579787375698036377603818013304270240631783664333763916539740664344416056648427608040369167404681211806146811608545059564735605270627024911321036476966053622950757652212533508433546529356942714955695027028810866589856702984303607737334372226041883068669765296836913776727220482783254287218067074113934188058718959008561802928820211428201503016548787780927124530792303935320299639138781712880435571466116503893868955488673023254573356531222761056958022851229383045253596677245773241745488366155296990505259204616465021193497248772646625740587573461146369198518351697898098798764170644280488699770297895394803960578457209187441961375961573217307250309026343138888478982766240023225105939982870567876435392493712771381126358840018922006772091721820315296680819252720614296815293699250841953747067917266138430559469154917527402929706399768640693293047190213545853415934687869342560877448100165406652253669823981308366182269668587860971004323982205039721223114710585667209320609321290136488961280160635677226030026644750408281270717300279705006693062656457575247711494765646649421260868848593511080168596461198145384548369894667299314260677439303258571780976875382783147501402275573461920354976236561113098115570220311900517520687187938626806471496406068729412512544765676821658923026542097312749898087165677990144200145621233941841341786550241851716084863931604386821611751856657160482763534956979784664601292184484220112327135735785357615514725533309274760289344473275067190287037308010245352110563494226620769154994424036198368606414066822773722373939032550891173475128078417558507951234304887813153218345288334299458750681274506658077609286393159768257047055189893967193802695934368868405345985601821423244409725672152546546073589505268319996158397917923435466419644144243354184522417664918659658729236780944184616541524119114292428834738857012335459394307065588761294657908199071438674717189448583015872359381265121661128170083118393228588570883366725305814355653354406399552608880383120336752735938466166340165681672248814157635913178131331105615828331647382491339049093129507172597766024725138315903410906468534272840005395078762740819512349785889467108032105658589030833233340967830414266007490368525473247215995685462625542892987225390833363216712454719877043603708276865699638338592091500675952883652434937025904315010902397752430500714583911444012122578407038415837536148695485551670058574378943248329620841769544743826331058705722113125017859307120350148172810678135209752461057627210284722765956040080358660358021733045650572602983021425444028522552667763977468957482141160115708128017351687890838397961389051482842934903712760704529447612579703307310772528278160432851506187358962204135438199258780887123128561238879786910547390751091600649233007185860874834612811867227066535774769656830555706675607532433340353935929775168001758523300563565087917730821074742267880454177311156746153321121406384115110001731085102607705856424535949562622619758482795930073203854739595914675337510220808536854086493906631096470115686846471998793248634519049404044875578195979173149746549667213082015603800172532905048942873016788217868561836385742788273097069987068385466675886230421321772913353338820090635033716469507473090057737776398140934408683725130221144821828612495742829526831284182615707086801885699578248119586999353352727987277246566908029737181729662105743095618985714887510189401884380587448487313337270434538944208826405753901310640813739273696032920630671317411411258707524229449258297567859323442747021478269454429656810139416080916249933330802751290465516638731874089891051875248078624388503002634852983939146326120681025055768594149811379240562381095584940817913711884840152711706511948870477868184513398359062671894463464041420899987521968570655890672383998429852674296915886702586431414144047889322854032700061959497385829220397152564325170919687967535470683257568369464530312548876606189479591776498446196553872794813008265750388856792554031765014229715669049614622577603705559701996138781357147193357469759682914110956908599327272516590691565990803349301059046859231469196843859184475748207276442553211606696952739543018085774500791159584658213312983719339421752562446680825570625216380329329133809767554946746477945787941060666421006271267604001037724681434694814439871069447957272002758888269078044697163316986214614897230388348576024329912733295885086170572565843640272879281339781188317993406233197027539641708487819221769189927051971081802202692898946874783054137896007612206737564805713267687575066377647626325008728802613019453357945282820454557702586393047830483490900399677103959245137210683156679914565215795420096341244834475807425823039367004842498159566359595150248945249609672955513279424809068344171016178191655404819746715888362024634918557263141816297030007298168859295450462293990205697428316281127165967108398952720578798411375191759834276200653121631956903264303688790861686754857735648822094529749650522783619543577659369823437148125147016063776831501564141014765203167063705249141241255967850858558791801120005461840188718563797224741243439312823043190478095170785614333418254774793271520383217169592818415137505013437721362895297356361368666678002138898118133265799003238227003688156420044409259025455131298297489491222299716474331866056265026549896627735159365806693147358158612789352527807226014121686487203529329217974619500885785433710450732181970717311333055454560383014210974606760125251356134130560835809423277487817654355698294494032982945546713548493011423875600524878639229754570185820311706039356157864232632479496609216646658208797830608232519163521782472805887395380440990658509834124719221958271791753502899057360271145553157274956590862034571523624676335555000806014921058553333328510033906042618532627747236634188011628705787828898403188527169774458753986425794962901732141780267858157419705969877891682259831475671977481420084273244439293233748301764857000712925659388559856254394831983454583084359948502327827897599171585311526490696550851875027124403774222310068324037449023426906634892620563657389196968420845819586526359920833626556666706991423250671526952285628881038763866612518653543202542755647182062322610467496121142476899629360637219690624342549619761021432338903491804675727955499242893174193002220790434712149595544146202471111142107236108607489861160880570383281651302105517773269481064776091780223862457591242108854691420808853199550822174676637140408732887080110735464072107384244306639579325814089653941729748043551603174051375824067055583818918203800351099328377556468627075367280780147285213002079898191485969911825466902749102702222670870070475224876647955764598888821151491301887367875489464147582672309698253767142669057879975170936832187764606190816837667097965563171501948480628467687681349753743890939226489831571984326037533017663862250155585973993921170617353830148194535907087112911868252975468190384843917905115722443080452351862211114549322428148926685201022644458772152996512135177650221163476202515074682344072658383963158127593732999415694482742312690281631729609275104833101105836821011396923272649572652572964071827881352391051372581898330985239403129495084738314814941996856134104098063154869082689729460362299055583281933592786529685206806715613011009600088364724281009534800240839727961786607613561260787206597531702208131766817683522589852814895153951454482028610521632513170631378163330877536337671511562140704546099741480075299173940700129872172858788721398647716874394524910694999286477823512628077920880351772266042807069286148638915984395187592455775199835434980928233982283841914807049819065145079118715631188224605415900078477374485706887244692520718470727661597115544286293839785491684212425005162259974134258964864270985125234522302866710492717573267044027881462987376097469261683572115045348319731302446210073724874788421557338936784822482734838451059887518926427087562147379953224598561870958552513084667398986807693213303749993637354984848098020600059694536279077662253046970961471453092083233881616695192152371656510868497352047938145703472084977003724861588283582176237542167369711054540266019151914220964189379055001390220234800462716022547812339432381725193323015649083820760368291353044323555281735660707296080592080067048028844961958036556384737727061188035921625585689379959457444404577715017756017134816394152153635376624480777856575531246079694939930194483642912785345105310183657406098067228150518789801627593173682635364607247651279346752360057651297224503758738703981018732228120392301860868286246392855826011606178698287061272426656841629031550188021166916558063892336452126326581542330033252174782603430920511593078514831568306852416393846367503904545596389482443482040695938295368846165659970101031965054658763460761244174980595119579674584711449309218260419638829812809403113147129120029140570973623753316674685423120127296105756988575211984781978835273959787288455988890919397156465453912358100708073636953861275878717712853532228771600153993865358842180383280318065390404420956355883166895578758953166268523443191874189652614556978208972481004600935728355138145921333081420933950578295852218929365934450532803765872273106948198206569658812124596895149132818213617367694870939257206331058602362930846699512099076969550029672642643434832373645342765783044748354386826370420250628450767433632485802640698875928398826153951393582644752934605454408179061960253633663053191602132523321401723222948201302249031612541877991918927402714643745982968280020952600067824916556682741096652539321285240625630066714486110585092820938888309165767727347213916200584304197184956229651193395096794558706447821754805891086283780193181426187844985288628834509969646932767646415703148457815603264309745341557755531235136519678512892002452701807178333133878034067767377418984931408544978136722816107452111129030993834855243746473554231000713323322657983390383255742639066300175335677975097184772523713482720334362155433916943156970388402499179729020776125655260398858087555640724310122409011611432783162967754596208615030797356807036749259151025721666176188181478771730845816098378344499656761352902099695082637013830513918322203657792576790723668039379806500150603713738935696188035906234283606964262506769615902122736258506863399513830941831527189255141493995345622131447882417881777373127789980318929120557989058211872717197666451859632141372200647245634912121351969191510201447973338623667347693199409603825988714959230804623523965088078574546428955317740346920096518057169167547266059396551683338290580124400028764642420300364767375907097079830673740872311214183947546577360470415293412160450064070870678837715434281435687920808591282783674611258796670526930394098705707443936003166592578457805682077245275993489538194348226238246663439937857938971899499979179980840951384753407417310284414591039777298569309859620363477513228536866651102298900097161378108312309661424631357636352913543346522035174463261525171561101255823039312468640210348391807232763266222813266684982015938398830626285536376399716788214419750873218757911967884786335156793750481761423602172648326941678673380073749501738527545593236746205682414536999277688868808182546713398441448487552016734554665026849800437468581483928720488038580776204038865557577946615322139270025765505399105091405258750264185380564800971100133065174483018874396615779958996220192231888942074422941343629483727036730713832803049609846993661035329725976353751166573629473103345627862929373520067146025000604658861081947226159567605179632903178657036603236255164575147938231484700017754987382771816547809356630123266632862154164814675158762963056868789100071703169706740124679506766049241730059568696103805433172614011757306059884705747761428419623204682672182329458769836490450110443012694758386138070079820217455832442096217044916105572633356560485061982937968377838321036761851856591160535574513062551692833208897459854102671313273221077441085010387775831484107924729532093598819935214084908643400535612694582826598985995893531356704525123706666505425010373276309817608408533239316775368859211796699526248769695426081601023501371002524904634513573961132918360606679802674466766351476154187741623101860341562672053085073157735151263957177988693250442788606866404291242747548484115276288487748216932535060482173036811186000718792378231690762231832766710103099542536347382222333434542681577455608587290444857588734562566127238927371832023878762942164113676639065862961572286307286792505049796660313509331327180678377675421566274094078182559143717963144577433719357695771462250082138353047045832066806809664148700069076594487130301170251917370277264380441675636625272142967511729148467399119938215129791849575108953911017276730371441564757718388409191470705830501411915461199147850942608140696168344833122905044513168704907110999708637068720505137882546181262366627231399985284428058187310430861174574891115402915800219800549730991904979676422695243608546430783342087857633985980473973994125343878606809008490481131362983254249084238112730538881034339118275399398736162357222468037470822730397361891885167648486269793641188362108728105928266864732034867824914133253360007183438520086380411476938016791607121406371560804248189187302278126047856635879087852741205293209241253799135298658155849313582200728341007121852698665081934639135775648224171127459121428887385356287144247266675351233325391314925736061527489619706223454162761844230240649260343292998854575400809974335393642435954654429361430721246262819707501682640386974193329909429032653212463695503069841648850516214642103657437701688148570121705438406800519464169268567037527212606954270521360031177083034813812586462856810158349319450721509018623225168225853328542177475379943883724704066593028184724762438425784175366511366115102797067736914503992805058458680156731978403602669106973967727377949724435082606439784035141242182599011260387665818989615468302182661947514720329472452873725006354754345468815563183736716909861257684531482276336710034270672818106061677844285420699001485869484362826648358080661742242830644022874075387426563154052381087389419305139640018748999952813573059678951733509128814538031909608916870068614347462718340739689957857993537080204108569714013691342585115922564517054997651433132168453454643285480159064665589828428366402271529365197530925172856586991207839596453273312072662382385200285185196804131801628319672949783265987152916055898244617092272136846383768216704945665103240275871779934243913621476061004326429856160334742726809654340112647781759002840860550032827476330526726723395120549742119387708436580739351833353055775647961144808873162396473382713776441493150628478605436165789825853712729091013450851604617927137334842392254694518234465833317935665838431647168291026320717655279395583930710455649398537783511059052275878857754883750128392213959804451507129137500625943460484778108769374041763592694434300708569344517806927718846515808992102293410776719145853763720927480500930325998917617011878998956831090845363480119577578383220946597712997260998013926310855187940271656024964099856116069122857604028553188256875916617720999019336927155185971704702583625794393336250446711213937935013493416488028792521748493214308448223891846306749894170923453663481595040592256201890303258726687039526346132695356103528995188994520158794050097545349065187581051675368620682010317421767861940280038453314494431042347833350248713368722102911728115293644409960277316569092839230844759852696513968145903495152314032227308223150066243378161529409761328320894639445861837939716749122710925777207493016645104607819933867134281338112181256084043647669222604349560747558764767715327265508300691765224506544287965601911241729319708061780397430099997636844991525769450257809940466131033948837434620937733523008336130575710212916350526328994416523416559251879051923697685984640217209943106739227198285381452494491634227749655785974700793446663730759316046328286991781234158810651771247335757205440084581211737979265463472949379793754951340037109814889057782192761088048762110485152263301004326672165178389695346273513321249278493503681883134153178959506633953754603204612156811400074413931755438115518135412304572670537006037760919518957022410928625541437599985099987334254900239966622842267294585073277982878183158128861416061891711860007444934000788589481084155266652434134728951872675001889796807343179078655657089967405896063766301871576198669606544005805056980352880328657831193894719240180779552843199567008514054318425588317432848422847251962776394438240706713446076648483638038457337082195496726305311394023121570927333614302225891050213646234691694294150377307169732033344510717246647176379183742558759444581492817719571301821962550640391029516201582881750878485135734900747762750834443262397731178781529375849782385309935806628671210462446589487474431133134659191505261048295938398692395858603612682249396307422068354218819805352702327351613286531958994878158996014914472831455376257047889705261996283102508307256759343888799260081888350883198829502783968899220396690045713420548535759979651061283085337852085956629498175425714311030595632661652218579309102960448713769801062856759833713661978890197226374703111196483770344995939679377888838547440227553077550670031436828321900378124343153198845972129548515882194662857126011584084831155879833166360066882464136335997747264485497256342161912475165464253668890240074782674982861979039345459256679841404192612149125780642955339373468115422518419807517417806087992231007363057595714853026727431901264235786159125675272079948327418833408971480849623599979204715761751701644057568814933703613277387164316539142147593894757312896382573392370933177842066140910348330776884902907054533826668583776625673571728845874505098136605312982138051521045104689205081779995944441000854300178601507909580446102545845265048570937051332256745682730850981557992226573818057929116350282483816161105544501957341493773244288172271564814378891441949031348929828245158859916789157359967161422678457167525187859472845171935123384076550711660998935765447345367812515726221094350667105317255930165841106196455852641263111123774968900294040966439157033169147284341241670556204947991383011314478908432598850058144676629446564785798112324935229340864392851556322479113298360693138194168275491742025255731559184915513000640665561657020804400307877076310565204202234466346196080655668851075384260648977196916559024988263578367096730053505229817751792167304369399541337628238408796732530711383637648361159648509944887522686173949133707482396941965710130181801161421800308776071112038578455478175634200629969587833625200320507925803846931102316976346630490491861840781598231962373826872031333487458208178889518389551656922229576760543550724118473052622369393389434917708485883720530326671551568886513614714932755814259221154626186456245715740439435916155285261745677667529809513593689851960311152104004509865947722232476448566739376597241623933346251747529962820236659648156237356178203198740026111434586868266143413905726634397488652626438133629827983389276316717358689812922671821711869576192728821817164468716178210499811331146292879639248555735140132547579224002047634379419840508697946985652875848761614608621665380250305236046665438110894393306346182061429335072863475286112930894211775145053373265890260731348832250923915011956005762714722304362537022385832565646244091661877570695413060036844007141629150351253016980549887184947927586291738595886332940842016834917895016330919327735956208699061767242003543946837446392450822111739612829722699965732388373254760993802801260450019909678794351089884359765480937562964518880500342881067395157520557370237296353927312876844837452522360178756065161946296742604919812022317151005376141797774517619105675251624061372715890428698141210874785026444622046432854308996083221852327633465046678228197507320578595528763317557255313699567808368097437760683957953693624549108418770147441870984130671937655836364366580082789040905961562137299125482390408711098830873334799818065569504222608604550755633655230471815118618378709761281403006166466298152971488810020822131505360618060803010704079069449882275108753458769987805117060442175729689546390222780743480012879246778959928313767000513827209114122221719279871228325981313113328791102068772148207643772065363540129163536212020333798416714116377370118782841036641475410296519626350696635297073393472410057833391647443201287127414825840723364703453793564829065275493194567842138862903181585391498467829636447662835240493675882592895010950266918664913636571284277624095126641653376377405993564163428778034826858764403665278178577286886247773396292595498864737124991158812979669797324690581641092974203726817201377870557774517905668548785436886392402179270535084654510223200426392904445083577289931547309477972601272675302196261039415209477962739731835045229844749605025096963889535862633581062957074063437310471754002228925913521892335474931139514733906947574610012942967960907664905480555329204805855590648707971564249607869189380340574867042651818230783678117995867755932614600122738306266094694278629116143408264291715200832230728094262348897006398347261153055007293399738701499518307922202626717457692995259578851657355056671947194304230955557906905464417222432110516090841406436837942844961909956799562730415267872973351847143104964405450325902521880833518417645726452619680075113128852422044956246669477209258105794790686107489461010679507896085178675918967636842126435698733633971338098827031635700400508766027525022904284966686723573054368272996713459928854888394258266012323755516186382695283078551562592145739671011976782816299757110038175567317066763689735124591280130463791960818259590436093177082635550417971577093358049329812439408568870277071995233531843720880345603025725638397707154167233085803953623742681808935305580313146276573185631258652495469376862399378020562692379651001132510299041217002767905180854689569338466264406176185058577779100252136838532653122973281419476142309825442939252171290539569951261107324960706278832944458815830741977022015463146841703469103928316956412300023859940871810053022140752097583109611463927725122294260483616949039378439566151659275252454903389175325174814645138325208329285534445123413461502613155232393037497865993046746162111826355740901092228005090436088442043212756467439881458396165709617688342466651399854195801953587694379020110413311487911160888571222135398439961611922714186275527321874357499620822577975150665053056677557727556839465463192204044708784774141017823400220357465221506042226032494184820265749309541607481434178242984461281510526343135460857835605152545433773435189465950700039743285865532128164714496167130169712977855495440561477677654071158730002840610194276536413808084522596392169640915474952076386158349158095671822789047429897507860097875672954066319590622410164994463268453524696910501688278718765937013004133042520997179044925181027046117418736333165265785741790743815850331795240569595643701729119784970154455782522702593871067860279159065798452768591243668700342632762874225523478499667787612411895445070560131558586875569339334790571754268874387656641241455827253650710873393480543003148066068118889735468207457229813144463723856221243573858899343051660390133147579106765826046698101218521676620780300261574643788008774599114944465502054935212317869104345546860085246834493353735253583022199656643769763719984621220466097429133553196395047945382886308765933161006158202967175089322736040411300716949680313239353898475403110729229522430268413619498093862507748126653973028895823599813139209811665651568005911671151253967270256379869178607437266228982983119096131090458730020136925540267811648299073529165871519316987612052021870103582954546327096395507468872585369007025706906436865929532178125407386997745133503175944211875910092296277983826735694832662355553118296808666479808638880656239946629049515799710982534918540023169531863023971357632671762037925464908523221904485563709195531296777231916845030960143241727875294067796541198693454577340586820417793410465039364563776754387787056716775349491537373278328592853269529696428078284344557434523822217549207232059027375292357699971701182645101111862234823338282223051050910777399156001696800049262934064276466071311914292195300908264809035070912417318522874287384220826030720172063423552839246467360544622871589540088281376348815660143232339930167350482404832874234957314936360389867458588726852821445036125109992422773585322494916746205937284507234274727919438276197842796372054710853327430421886964221670846025701557982670877250400649737454220170892896901680183188557530644664397207148350356292712907769588856181845992529680199973436720245723072906181803532201827811164212874900943565859849924023978442203749085341700141664225917322750860864885584255232074752460722191010074828491196985515765050382425444992571660681224846005409638974891807870390043089126898678192737837351884011047026053313304003300969264853393959018579499394867370909529461698869397766894163273349866187378805319197135601547391429781530399096656210159440925716019285060048067545459885705025705195769034472850607745844775253557243643505827113558922941914448140000072111228112077447522581877994987102211178992824723218661918543599479020669057522836825984282642506916459412294537040159893441858824080654138679594301644735002085867200839422285837692929122298446907508037513562843958430516451475586075379219910362845116102962694341881090786028205426592750968776241235042748985090236945478194863861569040522155762276246227561353913065029125167890864004963682209013956262452490175050302866422261046904357394280613983453840706958620421817281066092126518501760367986721206507758577788587466989982899769287850320188376990661945224822490405916049501330175445835447085714956629240868961505255069095698540742113285127527540895841625887410636084111350945215809750594139530131665255578196048822957096381223684031448836129606905514615395077623546020163135138151278744038744500996806943635810808440216263130538249585548054324122592271545868944378898615286964544730632203105256312822382664294432870844599797367154482894307984565465031382959842266904059581716809488686842356108567413190499790067504766910024425129030901097839536202461890935875047925940001473979181045464034725177390657316708512313070481085483910858136803139263604825951392144083945475035727185520556441246541945319721711217593463063556762372900814024515937283114681324315540805620766041574703630235420416992315836828839451774718137762005912841807085195597965443411348724626297041183724549474032027870278586621415719577898437898322135031128059108849404192835714544954804698109744338302543123828027418010896939487330560120401570371134659759280622089971864424262387195789111268324239859931309097987550224999329979624341367722372339260449799579664251944764055656706127337382522927666625741352766386535388815415354956684651394985882053088499579055144522425036966330261268089736498833520075193012041391676306609444094525005742791920167446469374098782399317832398768468430905582011137645474691720976235365188358079825248801310899295311703309076617639601445226301522317687148555474161395930471547088898069299692509685887586987513252707151699647941950738002956004993336393113823679704696972840881012114850740491874596962039744543693131628976390388691052339725185157357518144887096745954392075325898118487643570633744477979194679297395032631863766364057756547875999614184560810619055284038400110622885435541478148401493625683365762317565837612984196411639043305747331628244608245128131175150603296731151473414308986736093929474361148486833717658865552502381484523149829437862559827535120516508563374804881914248480585181624459918810577113660020711479379517754149800558559122129556145441483941105531341594203636437647010774497095998331544851137363567922337118197585392177161599710345033871001800544199281740303929192718604766355469239184331031718309950107359837849581496687902113143777355111480085307232882762520830365605360964915312279038351002264030234827652681288725041114780080309075308922853401606629451066380380032323684122357370107281782986300595240330480499178573287571292297596567844595964610241234157649834664698162518888124505678477668280938623272920275124996391328782238567117425468302833378699964351585956746092756398670103566616101834683709227911278838029900543608331560434013082338682336135661595796464656855623546984286026228854410449302848591101764281797311249740154606492006085425571898574326140802861954477098451488219620237033408017137221638685010894690446224238332256755509177697445861262113698151240012401689348345621009915522302295470111090550862546636152904426258341431356295293598233271842391117883402390977314508992616488332349389142560663946984487013591266529452866943483726148910219327547229173252214264043140512480928352602098299374987046857819195338418001006954569649677305211481273902588528960028985261053538576513292421690583620238466768676509811467835399945234134703181174732750599815050254680220970237729001274052217234813082402174817220288554275901846934957298491531765236917930122986259558186576729626639345979159813740503474237607304044211992040466762410641897239127181847107839058150864548565123731012885525449459251787944750850384266579346098798519208604156050303098208791633096617003797706140417194085532369905169410600900320555102000082468664109358107995061284781705047984395588573967448755738228107429589435365744206878237818347609965106039039572860079127019653783875842285898584565757941318797715020393837000693718523719362509577008519789118757913594478075289791850645342174834622285084520126404389048629382547677006736458653324796294216082835689302207346093254728778320076823312021798717290348360013221795269674154249235091184604455648086574062143960181721783188656755013190216815596022222604997117312151589199940549529274140427541113162260837186056534825597429670044527692066520588923977297571848836757894871456384493117329264721327613797465432742198208436449666653299464566712738543081906611277261849796106037889843871268668847549462806177935386177847048891834833077223536826128559922378273928201759693285789794639635787934806691803820402766335595373215068785923577685347538890259457735860832732404792743542221805004444675391583059560269388955904964368591148937659549840671101377588631477765169414393308503385612626003307517431773555720483906140596989845196401794733769386637817495564975028762198818963976577863744288629691742836130966607752907541520243076744231363863074698688225404516191960696547693610618478685624466695844608363572001932954270259831587689068709840097820435251549561506438527050665330090585213916511329229834933776269802639664463128645311040828452453669235886538248562463236975382050892866188878660414640924206282276991250755899937665081854806280840510779934075720970241751985598322870054970266965832033997468161113805967763433998755562484102437675973704101742475895607401864242737077930341834710035632302211732834277543661237880501444937361349687759276641458206359430075266080112917795633132250106262652595384205751672332185598857208497987862907113250274938307872039283930256207204054984571710442903002783212776411603796645645556574458191345543973918826735471965363235881734169992280490609120446651322589669455456050131740153056605872414908698288696730844278200996899369739476348043047424241646575094324749599838813434788900291713202327426552168705659176944931980445086855350582012200498591707400947139761194116269051825221549684253258780528806884971157704110241007171595159948960898128014146302297894374206187453353458283982614183746272571243879511750537223131611072964886357395563814237316366115089290387955473763238012140141011583082904679379963741358205691091840712427204186977570388815018508622259742588072193705118458521362758147039007079659771333975101381214039430724465426058298691377374716961574328533805390972992034568283113482981711004247239924511920363045163125681578580655889204417151602901280135640226626595720292517334449454811199445939671064618828757303451875310066725287153305022331393467259786456208147379293668214691990573694253106497351437508033791716114257233005935929391565858024459558697691853854273488850039878404633029168498260853453145953529964028962555239652067276484593149001843202072282561204550629897271622434035763445147656202923467442034463846443273983262214999677688054040262886445031767525181385772091087262989889164333567000116411391493390025096326926413645708919297179184871803252951181576384204390860852610731425825160338220249905646654566855720904594361393176396264474001238543049186316749669927341585233002194364770108306957579325548410466630524437651114816270530127813873005517225145531667967465525586475590670792508133660446728899318986422347022962371754397767193160834721609408575296276179364183516591209668425430126881059712463090118403007313526814967147013674432610600136961979193184071591816845519633586707485316492810261125995709509746843444144590442499423423019130477049980976210067520212304852704906653120872185381454155695425058163863153139113624765571901987008028667320196797919062261135961037260609303771783450611972098622682887955155584389730458901242625776235267481575518649646112910286276560473035750014481422447387534517574107875305928935752717614758358892206858187091009568451904301558693062245990145683013654650499423172034845799801408410732270529366559906139611271720001072182640219999375273998911715495260194502883827251408490837441088420813728811827193789472944662371206989714304189318783492174862479555911106271924280569156701895549681964630254787271870017796485637418521720395819065250692969916162899792026922492140323517501814945550747629282178701548919180708833006154009129505893825509717000105201765861634285456697991878469612039576058676151722728517381607640085915087336025472199370705121665100964271920860889054476006691364675740945663063493345757137018323486506679453132253319798574562505765983124085600310592106725543916791590315986270048419221707882269370167391306471774766192968136881017258160406172422492722283599874694568009595991815809488309409841860576325026708549152651050967344431298990103590125062535369582990840831158049645891445543731383296175862372018849703201266214092227590478543485151811065369657199878557429603910996609195565093969475276588842277434291194290340519635569053043985452786194381513108534341643336749209879490394594761615822990109839637448455395771675068927330679262415244570598810071509230909562530339683993923448020415074542710407420544453242845102561370570351352939072798938959438286767496947343208107514965652833615168723258942649868242305499066433293981553444574453621550202842937864187957967749284146327662666217217334370122621462847733274239717260513233649666833729258977445884184824715848432742265815034598982199812418405693654468378819369096285050091721876037144026457112516405148152300053811984856867757066099365615466341175506827740670560823369769322583679276982949272640216988569735014759312845683985601043137821163669422281592439001973483536702276051278441561015328913249796843999389431800909583119462516303651016795296920786299787680430236604709785880744376381501422281402637987498991827394167280298987942293981510627473503950422883226671824825254906464363032842140512165250789181111666273899881810384280262190198215636817975486372303250116497106640670075776185043565664604754744683971046065434086072073039423564633671813596358937454132199764905070433969844346924580561894913358919650860246511251321537486742046493143990783542449845697930652837720855750142968448252276829771676380252786756216410366431288163060730862822195318781492029638198574095793628128897815829616755227531031588155348249175496755568811178314493469892746419400100971574154948547625196688096152850758557344227096105638190596768088734920881200595400622365256722378927397654468737851071790662428127905248502907534763533715928174225271769729638070581643274586909157814915300922793620272716511276364958340664465387213623454253487240458081375964077312427109165086206002838918803805478171506824464293019096920717350975766083938423685984597140325458763647152894965314786174785820407749101710737573599261429198728912190235132257902545001271873058563207982506962179923104305131456650738676581265857654587215577361799989593597279610487193435754480080652263874202491974966623293843308602935202628019651037873027346728770725827988491842910785933959652133648875702434091633024045084596942770707929908080026712109880917532915678521186601796675254699643078092668480224445303555999369641581566599835852789843597951287885121889524236287618593136132443583139834416547446014582921153086986660405039657035857164561538090614029866437566211924484342848999139537730174086381188665241020131803293431832686071505374560298377797060781229145091860138824768190285148526982387962913602363347759165816457359454351010021800466914448673022506895344827736457600955849328755016690593701930936789196966476934033235253827971743028966946503061592599940817458485376687814709270491254617963686640326613872231852205354304197325817780203062364293938862959871992957968281754617673635346040180388195142114889608372364691494919289246829132091069781599984937626993565206667944755889506828408468877049560222959994394622212831038948846364782373498491638858995753081961021258613600494621192556251473836510879381789196020657717941887252592552695874019938825039961870956787972968092684920042886730425433103004173306965790880350452759866439244041040155137767357836515976993834774971042529796418278536451707732301783599388163282557615985035857586753232320528245466253445186180310061389431191418352786791363718620726346264686478076365707404081931374617605472766249556253349161766072136374347524629391661078539745564234865151531862628151199602109301786316868705231540692861987339489121472424121176531887585418041988582734058574398943994087559638083843395771354735910538706363376937176496312569005032495537433374504125196443974720508092103509791490192806689695571311445833845231142822128183909299383359482915013400596597445950421608961134264540814075589579547367969389564275207938084022127087922089695706005360436875731390847777641625261516212902644099541619854426982036968163851696591262434420303310082245521349990077567790749685770176727713994510839465285688110962742910129329666584564987956467123877928657232957215719676688569264030189899360029261675883070129785585746933993536652576280494780572352826241407897130169892276376817479055696192456171796508701113213142168766239049283105174679028764082861201926004762940161363476081381901264654180647783461818171398152868919444648696122955174301587673794740944352066596730088406051267963017826318145723814962448469810379301483366000029985709263524718638133198994212642120478214039513200688959703752066831018859510060941401177835867494424651640766854967503977870719828603675507899098811602425902060932001531736606350205547473673236178496959596921941825591172937699579882260230624057212075078374122980523156125812867392503005298981002621697667867914789558565622307514237570410864953440464341012149113592722321172427248654363855925980922141911104273758092954082187576413544343092645874383645551790854160411575071415303398808837739396702379211953330169996982230942152547331997833843856866214527032138583292624668995226808523213077392110455217128584739082367532496978490573724701920155442751677262015995776650171710409676409599508613061478527122016636065575649984461053568029880016953914381177350231353956563802686266639329126958307374146952088744080901683124125241474382400227013610173228550197110716523250606707504228639549273878785491263500690076911562470600093328047645998054934094498639007083336232442524703327830912158746542120250233973246628538134951453312717808453454435555640644034572875288351549873847291627928350363128034947164586989495382036779262272398872106250585242429079974568949828587046787562558756107862854918761475268984587308262737043658396291079732534639950287586580815149951767395646899890366977467428155629421741185971805226307383075645716854631609623345781877431304407086945910132826491034146398022726802929876002064244010563637827207835004327926334018042407462512596359031299946198045654328091244399481842620712999636775573307254450684008775935649247130945552164979492755510348699425949038648997409248094749637303410795505465023197219880723023769148837489309807272002133736295355668470320446175120968364744452719250073751577232620170527474418259204233031322609135833588537648688009114907518820998322390482824247878965328126630913454621085495840361505971265193532202153474778615848257310186165218747355807199560602928393661541361315594899971535095514033737763996902172999017516173522799536434341734953731707298121164951243790446075502929835340087280538467653532388511390123647567315793635324120739073906030317487239326943518488602806065453062048608362521417487616935025686193680075162640659591588365962731242149780561838961135915787483063735907063158194561145016836559241347353065146661758171992230719229549891729768046777112449751715467502927687175832598064196275315019045301608548030472111249865409406003829165028725519301135026814224221633871042217997533686627563257729366437696888643952222919831427866176119029948680504383125980214715675247643025039506638961326119028386262309771296696056148881542628971592783048499174386805429694752341891475378724231933035658865235492634226738870674673883450631069738779027836182304319052994190853448843489292347812826798846981284771173207566506321555392080292412464510540662443753177939475074256881300363812538316225925953247262089493317427503918684938410683267684244661372746043055592076901659287202573201722999111100566687653238763647735557961943371060027099523866975104184382005029249367697103596985462980775323382756624988677425761373941928989785449709903045519153380918941750728732325123279493327570653135718918680321984851967862376244081764497981320156795154154223162084934854403911814579207573328307159644749016404034755285618713634491906810123924920315380408389405194776060789474155718216606454606214842085832889783288948977027835634326415343999456892985894863964857050046659454733853177174487181614323980836582601961685213850006108721109975161588519567285872395067530316976195183847849798220271163939198467245375138583614321216285506693869576896446282045598034541136519409347602876743886176641662019782131955492057307418810156759071179980658800067832008629371175178138704613435799528271704262589669830666317448783106648095887973995422781589958991808503097292498244772627769221575967226188731338624679406840337051315947227545558371572566951197549002239530788551595727239420362018611607054824416775604226713248456123380289239759653380646470713753234210450404201735781655818528726425016604846167313808798589809329476175705448031819329776958330793854513355503239717561924848731936183512343072427855805442403949469814679285293359137946840666004213714902510048549284828853194391695210533321573784133507175884877092636732848900004261260035783751205764396431954396656600968929903692260341190549798218379336344509641087905809773579559881789224485518365391839092177274167327561518245229147926597747038663706664038526648737609227177904950177777214192136180339450106765470747438404302355823727832415761440024610615311063854845465147296184251425227692213552449245321690720597927303008830549969011833281304687583985594572564706890518985445443316157614115134769941523828708189110052984992807975231579358134716920307784564834974864584096019897787561699063885844211414654848556944765005329570904812544178953673161167485491141492790295901757109307619460939597141174396510208393761865919533822586550089517229528041353180420782147527833282584337161856460764018531166623740043119760100407933270344802304139796790480606329227576441130016771666927962867833364232679300691307174181631035096793462424668648552154247530321670283311986327878052608625686333346603137461821771574024916888972166391989904067977052465231049209332748031147871546563444992861078629859464340449522922235507747856782830349654549599415847423710013639696435430722795227293605690383711283254160522629651642707269241744549025676544863984231092554965526372725319193384333087002928522588033956595848899142010482290213405533975964071728870468992823141036567699711668638652034250731772839085333166822218693642533812043774284017310653555297778015753982371379412171057827044292868845182149732098405905233986482985996414756218711888018008108636786845229702308193015828556111280740761799356403250140171138677631600979399905612214560868828201571665611707294598468715449733742935965369449729261289385911617692620657930423103060775871111568721353791963111584403046420937735797031919112926726751528186342312495929166524158626643386666972408391848736713601809391618925738754047713709029620722374029608718687246582249125802356287064791153718099319417552842987219046300771409756267786884761506479192099279331775641538291435757543902064055511673309743758508290864508542066548205965393572720055124124937761689943666308027383371242605848695465359259826818158720100611039012922978389250956670155452932700374117136140395542056105468692664071670969143490077006196900640131803084059316877877080127803013500649663540479604350088735101468384092813654973083158018989431550825825501864502908638712524643208917778760393518651036213705623886140005906111516457109645126537602065399339811147385920334386754237396447825432943424864081116755772392454077026804377320472575607912557832776516888419717843485575658775517712189201351192939585853436831241885702448384512858382437203166833577758432071503884705854214865294171223245196353628211620928972947362428713479266836751379298354550483347832898900439066887053017969801368660714288740187771784126825315225836297962753706425710994350237899928399464241087255419675152980550432578307493522970436155324677807611560340842148461979750019129466399809244035478127101115252756198388782513912296260643072742170655974724087335969998577481334162470197844758363158069453154320504237986129341576194146157453354041482800720233144359652853782242537867216392053684127258090188673641499725963415805319257413697418365115397407286437633607591613597875764467787613040681120530626948182767214959739195511707397360202840689942040137787659164529623068958742244496153637192160181880578341549663650486893565080055834899559875751390417723129373475356530307981889033001799191051402040855684708928671872399138242451709017868647197836067550924261967219098568094757084728114320285794294563336096401098651587330312327597777760282460637637128297740958869251387434880256677721270425950117103881849708433245387673747340022911011907474069126309970270659708686489509275115819096528906053705363349400880224847540480718543038368752279197012803679756715376648450559789290553207171904092418710517276522666484714172080735501313619250483487439349013922627230753558658699281639689901634087229812181257670661162183488074912851085732497832570390710258302141779038126694226632064965993828285712464425707910167653385617247995353819177617318366188944512745038922649837427677807594160419340953686750240851200898552359168330996180760609733167142868757452723360216393220071714389653195938265215046572505175484139071134050818361278977623192284184756333607033019873004758482213601954315795691086829882795272666506904264385425179487998875991549017248266806715791250946853131717998115427441063990618260682941504089256295026594173181448916763923372038331673424887811626384433960497614913099228704173888671761983463193667887148912505686098561682757558754312040322768609434057417479320410588377855726575963461486672954928479887971588076651874712009474473723327517336648976353527836656463618302740555549791799657773389680481717355617460682949751909216538189935147741884452801648518855632309977528285717510931122096234973050046318177612888900538323447785351739854490156221596092705838622756783270139671046109927770071200247005192021968457799579964850689529285455422585866880324555821917752273063787231788612541734518621238482096261886384057129685245600181771910559580234538639703485820966817598762390676419170073392456129764041000762972237803985223196931427157768398551398631342880373057780842801324696491699626549203977059424034869869977077859327492573705404178893325316836009352189340001927693430245821764016849885106491340970825874274321502126759012755953127324131418209573926916305732971886875699564191543759421514667442858024746696722414699734045403463383059131418400680848963449003910014968251304188725844464195501760442932445053004371996136020014502541001187758663232871735030738854131166350967337510904519751218065116021173101457634692786436346086888221529949105955131166132392703593336744923258304444882865009703481851158546105045689464283929103402674799386933087368540908766001084174403676227143384612167720712995865594251286041393580171821517848535884533369222795176295577163974100170624653676678297271771243641215067708188394683839981207153620611205698292777740810061882040322394780808325077588223481502996667890400131088962167577885907292481620343057487423100830565665748569659241421493605219893699587714559091030093779221719880119144182351836880045368605683100427081584939060208038295780231158719968009492351597156414216158254632737632992438720670419954650663190691618148055332734303564694877049778848516075936658819322560694429120650387202605137792130111959555955410926140217751447177327437643717533654640763607931736032896621505746560844101280123035500023568839954205729227011151748795119991920180627670466253075934998047907128372288968542355965855839790094842687964450093072290657218029862516080141553173272130753458889235794396673349723716568521068949871379795717211386116454054892733301960819189892020285082559976875351504313635844744723982728209478362538340236770554700221121105021310634401116268052032482661615910966377234730759300834581198207193893227176179543172012522247176638424164688368686709094568137374291238779429684413571445956571839514777284765210652017187257673152535208727205300394212160544597804429944302404277912806374239607650140904332471150829846475869886948359683884294360108788137730754305039646355357628354298045950355326001021758921118162911756617332174280760817078779025971820695254230070303133259649916012543532312899049795430482213108921876247809735119008033991669588269373278299589020048638374179334768241104671529077648058227200762770639776804501828353691068033614554876110486464644285038002880634581915594360595659987009763627261537532789087305809080007911165113179116622605255737446505089559752848254489316365992651542870735490466463373491275319144059232188219270269992019559268000578613602581470247624819857525983654349952033501419775006304488370343884039121714051929128381617256963648990164501773443363493187838870121234735881715692637606980843097383293308150298952469449850359160310656128503377768973494612654000450112248107187759672131371027037252259452760264276400415253773742375249528711104560604072399459827669879692361591037283465452412120618153173786953335165544638795309958042494449224750945988007008083071951671372358321834208760555150118466673694554514703187403194925994384780949830466746382481208253584858924902215986300279224749375876444610088566763870667989721921885199564026639010960643528318784551120560419302721464734442016648415836337579596120871536892296170086726653083645418366762262958034030942906326815142947736193115738926838867993139001595109836281927087344790186049769643950773041846852845378070938658160680862850306212741306014191891171965831868031503054456392511894082427239314329163819876825736441870698915859875336506734813830971168534311084384286495969003406482374307254208696674611540485912411238399789682361743179779885641401155196020759572446207907007959801575501712119094024592084363169359287936786385243430366063475267317475373771301838787304363739545158365157148944918842978852246721978266480293282912229387892312816910264539157536568557752171142769856056410325020545189617407540205843776151058187065197640631267844509452649295078174402753649980234590096265070385532346372693765129467575534322076763435284208419678048924562688079434462210559037218110586200926203834707242850161112971558232452080428850258980712245701334220742679377292532906618987183331121708801487158738530713080102780048830719620166472057146870085327127183890018959882661715406727197999640181214292951354029083450810437069088696330435870377722674382189899298968861360648733725038258621294618604728586578372889071670815102559862392269873417127227702966848060982222096172680783831335871546283502446049429789111673913792803787570429395516126379259674056807214159519614114893967261695151707692374748257819357659720646793229922616754635101926208680086189968568086993003811594314167700303924518538285229437372993475927024122685281682708970743239721901862956483568519141903809469286116176599586468140626549322240754795523985082128202132238843854736668404530332207639539939288212930290391988832094965527438485188834743296352015365912252667362912437191685375928583004263648315408635530421196581933723405707001845350459288678605773143778342543636953513067794930479665296514681617752616361975689675217928057508478656748023640958890421888989927181452934888836674974294397582339648445557515920543984878303507048850322680570954411620787573031225170206822702314707144183509035837751510790394178664027180449537746943609711162113482152964826007392288914019591158858281712252863919658710257930270186243755330737385570972583506104076812880940818446028638969726067707098886830322456796968306727617625397759031240905815123766083553040570879648386443220620850387595449058431888400450503511067945229702675390669938251985292448467118681596220785054427516900271852097575065045679635052693129405077822515417901818364882161066029888965563055294738740205625191301280792764136264255113331123925438767199018747838314440655454656811141975210833498989206135187892880610563160434704268139205201227441108471811070450105205520691954743440640767916434002798731880022263316918702087665428892951629569314474266312310708075119109161972287256034047601510800978397225101518263360933262693555740579033252085223652060469976330886581205052271190166465189469681695350719570453534971097004301584955867259575867114483193914116888484946650809384699305283968995155750127790803413904284164823896108144163496263998827024218591021408677094158458188551955830468068853217236436778322616703317334335249601312822491535335862235900043174085167362636501949080434899041718926563123351914788348098936757989307427188219027301242109056520076164912678861140664913629290369161354041261577542630498359149114288433037519880493739737707844335416036565966113073351821283732168506057708856563474002682996589580370079112405491195881394525098140755716243364406365614849604480297917293233127688239845352228657169293707213334986073597145161628136789940501324617934604496210602421487018898976020899706242801835453336688905895552956765267934653449410665993581516425612059531770160152038012522703624147515673992908780492891753116474919928188017526171074058551188997420316951889162841125704912584227056923512199993030525925230271033266176389211397507259064738547770508277783397808631007831965955199053096760975225461507519252410956604065705916132013608094478994642908611684705980366532936981793678069928189541722055612767137351494024035762635881706823649801032681936726117325281827625714128210696194211194380933437504506053704562263096343188917784397061706942416846290141895346859162221074363301351457529684578020389184384067742911631816522763715884584541727231328629599956109827740478935851700023880732055633743058262200917809066867120238268152809609657950096438202431397819761551140410003390328528390707303492597620292053910506661945153257520191149128987155984404730199731786404550997763144588268993897531231961036978999424927360243071512020949979882969874230412707863404720722109414042408360483714182346583873917598538309402347574901640765627658069075438886484610556161141503458772229100787367032707824764123183969637812644716129669499712770416281390726881699342922647567517568861588865278157844994137656829220702585765228116586184524747248331200671038445744491533190315670164953760792500789669820357945208645699787094603432942176376607101497418858056213181223623194788208506443185108759666726935473280470448427939824671989318686272922776404601155078809297693827267052731127098077897689304894304528306761305713125923087388410746955820981596169922454771844663419763487040259779954016585208047638730455330348914380305437741292067974899475217931224812282089885346224159964532414986014631825729940271250129414928000384913844828514802866950995115755870210325493583326923077720756121335062846237053487418892939596881753634062273757800221244522130487480514012178259017370367317412392305991797860921383865259149784321249958125177664034435412706705882786564870105997020192910147722163041700803254723450840215124335010494016540148528642754645749607080222844939480615619113248050940551642718149193470857195677281891385487315773364630126446244791771620052955604675127545335846242801620763078649903521832280935380037570324637533853997079343526534876164513923678298698658288336494085028162704865849967517616686639695630438652818502671826811841914003687491639440146849753703637366494875718109136580888502769696872964140702905621046047999558178996079139940064412703876860682949202908620223167795885858603170296781204329924084466674948378414808169001399695779863168426411962599436615061045107466392818094999865850729346729001718044999500340703392394728379881340072863425585021834878987732964875104852133365620711403427540854926600926326700489621979477166387899260877795949129881471218678428982446282508285293126720661334401954913478109738568469842889577876762386831055258239533739492910138153846975817697515073209825797931165239358176463557290973202890554383429945212429909364905691269144460554254879814244096032713393765496547708768675222660729140993294878645922796605054320088298837800627999423731670492871647513595665343624287409168123031736451619468278154900062820176177468575815866310648206871844934320873557881791627776895950208232124697535955094366546466737293250878515965073577073304864052275412188431278632112306478139952174405424095538806311093856875358254769787706491127523414421648585130783645992993259554332377138886582755472254203214693481496974790063584228691645349903376954722245720201501434770042487522870066189953489215261113381266508966998671599708169508080506101499305526286193353826350620147677513005684276651422233711725016782597181071178357320186236734305970943531021484920632605868917084103776583200813059234202361526767718804027874156363091477484999096328322625918490645812714620095964507705735626262182931315526596188566136138889315127719010549928099819101973114934485784665239554908528975182270907353164026688585576405329311770850500798570728652245483205898690609186409746990592170890929929964656433729302602664526345716933705513861244111613253028559425186118612469210949279388021719611355274246324256791464936885827559666690076267582963577049337523227605594410372284235084201967751716431616500034149121939961281580900491653084283757874567261378108608957138647941372095713525343432956027177212359818167061742607156752290875464704634160948546145356915967491496437897945068073810921445543334007394281165070143802280062681270222956611175712383448380541297122445402252545262273724638801834916191603401702054054044732839829312395617941269737947786118084303560456104249937410758253849655231136716709452891772821546523323088433122112517460661735006185726045834982704806744159042623899457808956360846196108297119416547458479158283565391132780859762184956812687450548002159549396670449956700988899060945883751072936703951443026703113987284156734348413383645816189399829008093270870499506638379426315684599105418302864634122715614621712363034318181209297244250174498775282833520818992226782395529636089528401367980719672243531197398389290420709214668015393501889453454890587690356077694575445530951051070978227692437006776896185360365908315922257669408513215127705221223065861160584577879010421313153630522894299428305714819723331850772572318097822967751150021322006739605305696602514355901231198766350217058163527315785857720198858763817786702931783616226586421459433876072209268724612577118020633483402692197816117017466338060460794226347121542814520286688909841326015047260472357364380172540979499295242747342915282556588094057371223933112150192103732353405641316371250617102140665615750910014118320616209405259799792017466286713962280143282199877398600473146884643057371914414050196435610856735414690701902215203205741936291246164147501856674027894168001646399481041360644807803565016272349732472686533121924594427886567443068279102411531347478092796730756372998232509745181286637191157523142266586186886765476277661228984925200100088519666257696475727244624768212444274324610062987098115414156846177643520319842268207640991237235701521745951709050067852087995650179620327268016356118396599225886835428753422640215962731265201248214623888847730061481207726636544597117877975399988266336046049885717367915190930590133573177442522466768701581767004790926251668780105167167119044229550444152392976826002516406987838152030668269309429506480541305948388477202337744352577284119955413282959755359551370075283806232337120023680572749973353802313792363831338064243643936573229607940319040552973089325705040603019130586151707561434609841712865046680275427418517474873456537700558466450846283076483195591035595436519888126928603171731842851682687463088465545121230446825720982629321045667630275324590808433477992553998436345151894941010400435395088809806241642288856602502958902015807277899794535841840511845998078526218181139793817566032095564763932068874032921157257831110115189040292784378904321463168899597308622329190712754972116788927732994016942287448548421107481705452559678662650922295924224941442737938483161960025016829876860643887987597580468558551607798497963356042367464123680201780638939497164826903355773767903151972274820961325930174699463643714335002353747675467107713291873645587960698159945695785296375387570983473274153041723440830804393275416020745837557853490141172336717965512359956781134581929001797912997432405827580446877628435259990097514749498085851202716046845938296170949223869271009762241941021140654286824736644328643907318644801260530141163227727780664687893398195652740952060437541885266820633320485503910844703498549964267781417447424351481750677137832086571017167069033472719520800333454095782082074043726563867006733400587010457685047747042132268360102671443725810407027093245942395806331037103285429533450494986782359064334359708588030781007811079169990131538910790734462958097006473618352196601670357810133120037319163348365098516370059950904709154112542228684156400834534880686595519559599452896126587475934045201928014979152500014566967644911399444610999960193679061525961215463736468512522315333420741520801857095981110991087398440006631260128411505181865087696803609256394049564916013872210026859398739539443798399114537528286478042196681772846892625255017310429409498026786587250047908990181117181979152394080323818028309390146319023442402329003055034905773923464680279387544037473477672972445887877179936945567637869400705695760065843107401831342071681741940702804046553168662091327994290898252604315548772841759126067736853984520640540030743707631055509750166130992395322428609842269584375614876610297841022844051555508408428679105080093161840067033679215991273345821916444744409364810492329155487430469868742731899154404079083132274793273535818414289289310133575472474137563944289504626825887818696811903963475990332144609467301281978692330063744459186873074153385887800673727810327707997345628093520666571295717959948451645576420573742809185741654934167428735041620721569146034703054111551120400768890152317422549617656945379938555617721515868404567672657454141133127473463705478142122762992949693415824537660990863585186897958199425460205400030603213556549025986067781520621615810797410927778079286853330392228025046821174515240499255510976294822875484553286555341129962765307512054149519062051860325076093015834439699975068687891679008169975290562697753758031002828840593137979605102041108041403808269719837875493210480956586220176907922581604232194512127491957142551244435501878665405669181817448460423491037765841272025708937165731771635814346134164036036330441781736058782374297171538487905368391700911033505956937382703363337338910702359093334451554786301568234140125830962965118603838610839661709320201122054472046968886605705900590192332546652901375803228438371796170177114683516693422237450948506029831165985454546437367726840041813373606141540554940442245935578860692184077995518559761027095334573874373681458153049887392337986878046808834932840040461850538811757565920123402157988342283762092283588778762970780463000677354975965653170982451049858603508167545778141654017510199443288681078291553108308523309381443941722254448759343349797172897962614426181269526925497726978645436979055551862724055940523696032337023258283696696388902976732541663233643567475482062650443738044400010221092268483028486977270478332585592112354482332372290743566826473151674038921190213434396730704150803979521542872705072482742346635454215407116410751488792061606003434791824526036022783368371823429179681708423442262872082182149397480857679560460051094396270449071810314990956935691172136181101260445322991136608719319151967980478946204826349794975106401199642180686809051399441762633146308361049982900780057755785702194471476167886998094737951942589690194320410192786646312029432049665390856230765336061667203730808629641258758478078955167054914531514935915339850271535304672495934911980338649360861911603055181781626701090749420529897783794956459665185737872572653949465866812804558346480187215722243845755229712231863802910077286872980704133622679072237674883348087577264697463843854733296101688855633484186803130649610303637667641567251172812926855554532431042592856048778194095568310427428269914632750360870299897120064015029003303519692945204152135571396981381174564097062564617163662135724180964300670787041225353325544892553751580368634670203284309446445183055501626259951141378913144443066236272360033937025867732881464451029776436409131424848435968770883280913681550575488875759175428917117332976469798875312856241630761569777622352906751790078423249871982485628473741155981744175086748753886984432543111933408212396173325140282159931145458349748749802149536836031288565853377490459181248646799436883171073081477574996111237261288723829396153521760795749040730930512646282665617223903719548295970606317103150853370869203410218534739121542908840658941384910632283756169320019389038812283684708910922820223012983665845614230508091942596024861093343533056944413229349236131372877509843219077224370835305310320919567766539142083805301667554553586112903307680923061439080950643121216324495449326499338791031165489513081330548525463351865965917868236529125813242185228600807510935919377240409590291249810039416490395548950075391804044980057528941866747128799146644218128170412169989074070934004471058316522115570997995353988801528407292075162642910981064516532968329468928253653963401379784106642600209824615511279546360459121141324895007969573828231367128681487097405935503845884792578942696938464752607122996049179308592765753424166389862587946104667343073625327192198691046456154990058866826539559885356485350267556612439569480551008354871445815280798658642700385673022556243028753662085534359966177496147688342202719981946803988144992603253413355953469822415224186375800914101805144764377267975031514941961605211137578953134303116968767108327644662028727961948870349370380103348048151345625500054117898187820008502976681120881816262154752574004023732862158849172152431378544823937980797888233242651446328149997937323818041348998262759536271983835218804492723026379408788975189412356181580295681132416070047813605418938450426421449101466378142047221236481476990955484646566939659248695620285416433686890258072234002324668871671057878934989339375644683591942645844534132824441889230287012523192671897403024492572369034979654957925707340167567440317366650377852707721308679880289619629535512283185885436341387513583709972873749211140400443885800474598769790598257346962010338421358410664640688396292218966746620179151818144965281538360904644248752089767707505380547674082671563951418711287425918867873512324564002329427903874176427215081217560833975188307359454930040098925261169570705541610351965756102634483081387332330369027368419810658437952114396186952098708639336922527575423784798095029281813263525515954537618140366989153394624872654723203570382625587188871586232183218328703003818014796141148102212555906985670620055757191749337520085959663078472687198972111544107744832373378124786607459517823550187888032982246328210841645791829932391166183912614241795348147961662930917383866244896641806017211237930534463472930796260532768112174968717328724078958580738437299756884957782300737311634468750152023349678686812893090926671977948444328914969460512259099493571015625742574213916453772874061707688018770093347337172576052719718036202060714025134658081569104038794455073879251842254857706805979313563864955158221301739401397486443294895182361616672189920387548148101161563688710251386547480050959160119137352972218480499456603590005365660148893128162959818754583777278963963405479583411231823433848925285913163927108442976613453884303264938517695790045454097142908635174846769523650560599894727965674030579321700801664063388623664000684835542139795371119268549103158704081185276127320696116939933096196260601095064018448937942495487793720086903405307320937645978594783899002778473489432352371778835078202992453936586396671228462525027660185133729792286382302286610603078074484514023828502888389346367832675530652551808844213507973879932818166936080983173407875326714485257597813188345719906908651283498237855708494689494974772114602869106344144106978489053913383979065309180333158297834512013015989386501037177958155839957499156207640803795379454833264205125212922296715861749490229912705506749612215159463002715631144252012471278695918650329740794841667381644741395426516087643908095336219745558175720962664021415071061163402352103033747841503028406223640609361529332946106473749807830316189808094249433231658518427172057486347328434406039464080967466638080906677911977863481117671897857863467978931816880467283717443477276768883822408405297359815486920251692676948511493087263776010482300214913185232433212612239578709070386597430520748650023775462339070715109750117171816707460299063159124018380272972545896817868103082811941174116611967231154388193404022853541228725544182872906988830937410693365613591714116893720220998815263343274707516297514641355610672677561377690096866107489961135555417592570251466604096058427011866167641051376348080762784434369363650380165464083874982994602489325939233049944825798771827750512934770902544766127609256036070608216367704423520384639490994381289408385748090928054125882144863634766559711620466456013947030537479105028456315982966528971936864820429723439531628178786948717594358001381337872442813951477102098717467214955325204178285183005852640185900895984714537354933551647080824700826156846526408362374255947732355857320959471209083570785389425151838316939461484652325045756722647585981373147427593405066671962981721395032999359174399101642638699486108767199476750324904588108166401985380818874031964593330197857344524208291898780168630375896792737487242581639275134706897474799456770904294472955015677197765651027372071210738046838467600785714372184859104619572572595258439847493278229018715547960614396327662494092186806247312772042535502399572878380179876937052480189735543005168603916906638602181807916613082834250333837066079405549268018003907886715310772154085624666888405942584624380430076160491665783570461636416711503786828999982643520557012897714180346088328822281095033380225113411271249021589673509003906719482982115312098910933019145660154870416197252918951611860889298853004314090203755131826535775423026058728328441744452950262771340465576933981053331522690694751667795097151658938120738680255465984655601467140090391040220280960135836729412564231149588780302722758333837412263292199401400205865584547742095148066651491697631201674599822552104446990198567939632570279511448685429042173442240432242458053117659024854795680407708332756099723296795601254506190762400095023795042702512927639520940535289962495033872298379384173619095258219122559737227738263988021807737375556945998010277461014049780437021349736069103407855915872102133762885355351824255345587675450334822745272336457897141989744999411905470156329463699425841645563434667178221167650091608049535403057784877682425513741658496734842369456337132171166565133580888249146753588513858222366280646912301768605694064115216209297275146201970009347161500926579607336694715731832970276532394194087629524256021877284167419790737513190096715335613744701329821368901756946725331188506439767803529583466636219621240985540883261516836707856131314134011271632256177948458538075699060236788365088126562727944361353139593965718394683599553815900372443653544000355408812791759517307550967324763703623292780741070636481484623112495184592599468476835145798341545939129056559236165228899383254912752466311535282309041193837481717540846096728002065570406182447532156560803365001809145693804823366759432289613256538512253295138967437537585937557151757585086591978515846016500249481622718497832045606377891800465293907934739978549939242074244835778184732256471418211360081212124728362690503673278012857991721340148271950181858761933898387351319703116271687738754875590181400654753003464903357574022638379784394099728215276158372247925613706176771223261389272870481023807071713148646787611299488240265893007208018799001018811340001788690748084024429876829350602454181812382841407917588747934248795887851517611170249029211553339216726684273673155124071895190055415897392483693050896017702597239123569961416067392315363337275870397980747644645434139744482926014771374468830854769638352683703265480813782239511294627072314282183154314015836739518003311820920505129975997320566814990397995996907626215688300644410515520135386700339179571630812924291321517055972041469675986307014873116019071685416912756544833065891336879869596655635063450543315550169901032706170584910076089237039426990384027126894790031697541036186929699912580187561052310579623831099337322524620948034567528656611576507261347716255994567211316922351992048359879146626371207236257322615902719286613037601405467837984960106716633507622225371446773029722516363551624739818996357539731484137465420358221782473540821404009975407444821633747306762275231158034169773854690115139644088329371841787025412741420075865816176575277428687345954689206455704232232566940503486517037630422698868788419377719306412012877731124400124184893324872099544197734205152079435202754787658932031516087283536805811759326731016426097546521275106994428841251241715762429300037723057262813516599497300312727537443688366391546543923127944494551823293702827955695844427356790334247506877201572360196986174231688682026132816556094718174196813184984381908804258593728203499180869729398422668971827999584506990444694088854397357264995024712355744051392390008336711072201748003573571594407154904567365720635482290478963762806514327395962295004900555028642724018286510967348309726997654624031108585261866808421721218506089487929260180120917739575897721122059801873636496735603570141488716239643162725206650568868544443564595976295062481533494558024230562923205781788680420477124892868374109191180924052550217851099722677839402106436758580651641864684464869753825318801189788838672117171309145866917885196723272797941517123352067159811903003359726830194941817152793125315666542097162557554842430514615991218105910063854680311284230364500735070763566126401582624531320068688315043247291837229214714848075971919725564770286068669442954797665594969598376427956049536780866491710155267740223189483174853719254990904204663187580035911978788693575384607104610733505924988124993868983168828790993004533418981658668165464624131178933439634214502143787421855916085448083736276581308845770622548982950216229716159510507217739030410711893460098950396315388882617669613821877526230039483013558931557322075334379959906371545699944568695974031403383527707528623054396972492191678385986719962987818461522194505991710457880067488219075460213709881686238825314171742766489450625372224620795095297101489856390403276309432126552938993125569432323273609373776649695486119902970262985745276137299448492979641715359006294960479099828157088119630981585330481812342722186270116228159155153980881816647384468767085780412094403286308375586322567270582123905651340729509646260855283004634134243982245046069034786906529121793496999176096130966080126698502916208535089564665034989718235420392852302376722778282743089829303879406440211044863221165553371526729760907679763717698346244758888261274388118904064292774710241842436815410206888740710258884581631577715618763935040583159349634672295819379512470630979105235805720762425238993410731600596661614630761988609544237996272770986989347294099458518193354389883981068915893382067392855184051383861655128869244241614709495114923555792940062123687923906601761762493814087730045501656124084915955247911653481594503104902904993861711203266681812254755837680657276561243231284780207017837363663221630136784380997838623468892604826745898539475752966449446009600414918526805629871411176625027214935115009236361370551220680803652677632074278539684471995600640252701791719490159979779752680090721183284883072188420712140208278002022720719238101420818909982284748522759490877108856324860204499107486433795903063423470189307292106349843008484724972606234300038908223027200832874634375431446023574462726810870287709922986731367857295421356899860344924003207836996977900231008792888920396563537664999612430166432236862657988115160526071430321916728698749076335313307737828990175049811927866167097582753112176792238505663593162972877403667920580222959846395227927916819900783144823088228536405678667990682103719087244480691297285919176284552965225450366627930532354213349426289185935421911445618606738200993840055448113794817335827738219305089185246596829600986863104477320048274928413649708783473672172756680754904194485075749793296088593724042537504211722488321962076785438873530009474297996085667077231175823703598922093564386314946745128859347729068078898563592661188153297211456785194818052355606728840220678742170989681138861081038056326590435534094907439316259971862992992772430028976506909512501409911130975722614677272321177912271199104883589590258574088350627196763846151387676178402373257368418065227903357614753532228785067289492627067134743912189713815465101343258178157688482887258407976181928860048768359860827441763734758665798212096315683677389801896519322689087269997301279737915927017136655663998941550854417273527200125990492581008231787780757656528826643173471670205318228424336917149480040978915101715033396052340130367021111796500450313375933364827071094155641607443008755212039516911202878292111944417284814706708177086093981915444421542023444137241061367679192719556969014810256565976226877125035369608678313034631054897843336799149078572010018734474143647910180684133676663232872423210751355634747256751935511080130021728049777955575916540625840801704464192660114525584630956886130598467149380637048323225700886513396983916820165757937383629022293065714584741013483975819245854038047033940208948740785633877057047928784196003460681546796369214395925508861431324626283667335218664801766236513273340573640093315399668087042396137204814579033339328978747999556836979606229759774029957700710964052502564889327978181404112976703155115109924801980261862449638122633408581472900800114746321921684736392946454260748214726605289421577782513641886513502628950595985464739179384723749803103405264001155883918531896099330345221954697526801106217501989084620693828095393099855599674276225662691256300898715945544723821701092323049195798860591107869702561489989316752319077003669055490702357215141608249056628144497170358155573962915647153692342931748260087382856920469121843632483490989052982507408716261348592473057028491239764765792625858625603477294627186356193163640800617173345910395336831129205272434939683847692361146677160434428929200736643808746630596854335267263655726597488804969630700515077358521194405156749471879876339219779903953629562726154412514783271429430641165675602347925224281116631085153879145779379001426637650975318796848592619139097206974551149187912686150354423104018807827115811689471056787472373267424958664333237398014097441524267953485953849559750320210809929852978600078378352058106049231137901551207988864727319264145627969933852847566014864259762102630156333568878245514581538000501880767804601470374741302860303563846839987691724361543531688861840560883357118332790929137778080280035271304492851076197387667332553219305590034018959015890927424081199573477506342606685478769102374846944487909456213639844666900222748959583949375157210854785661327109780992976742218814289751994469608555954297869797240311463893189878860906516347370328892330215930670061342590530344939397850514541257672447393961143089208135954930319650790156755071992416769332369897494352316751547944809699429046583332415503785320083627192551694689933408998092132499590621074140664992356962979544525894510858828084396821388138879929693679306155219828683884325355537343378165795087282478187893295844528868345485193526507733477613391146786488319366638976601747159959716436722057631535179534841936636894635117963053782411425377037191770066431730969641565102605657493909423623383608492608856849289607553001530905796434745601917857811091569967794450065912353007552845501554191795888760862753087910644687122950881182259649475105807607753522086184047720416563328814557716421784224099636493585169252434688989763056637997194961005906710463147770340434907365549736513271276007180187634986355629493460990203646384567408662850340848572165627040581680091776438157473049690532432973160225158137587655911134434491561235344123902758805725710438579184887160801504454345584180921415184959396763690941117844905411377659606955347216811062492365452269495259067721987065974052277204468958160150034186585413062160368687988420316339111841338148336517680795153010387573434043565567252669651770311774603068042545014009300203318446970043407104578916674126312609378580800167590658739463288238671822237259054937739147178416546358938728597622800354767470184913528900934563704210852568708506610390595255257353540698315632195765484541901869948600643950968358798408126468141929331915189657092941505656529303182140605762924810495849438639912581626659957758493381371932747867140775522385700702489777356054397275203009688622790632770371548359880556736860914826188181422383327382052748845134690237385980020785680466918866274988418141341135076322202415741859569533321623986106849203391052920919663711333083039155235104286799629557888423801827779038060790473497846359237985755165051222526801423855741518073449657442330958483452931285827569842829592801312128883794105968447402548071490039621507684208451420010959381338743565330898703076762811550739320391245803197692601540709619782613653231940893230435327634616733714999874375111300755246171599956363747602184118619641246480217302662113242965195228586625570635090354057969515993175341842109980684243949104419475980258772425163246678579385578181520090022474816538022918163897272560203956667782916223968361432649749796343979147156358305706910759861588258791255942724659217588471178765031704195248298819991277413939942510504517140018578298452805059783772421580778050733028941906756060585158216367543917431128053318320486537221617884021869405739757962032052835499521978895494704427752396681920347324079393252183395423375785970816474001229744791939780277766858695103733059366877320766691381786690729317152138883152344696608360210381291571708019081170787035421201942142559078086402955715347493146530677557298300550504632352316815077017945731063590194588575193215945468058289395446255026152791661704707051883952946891551761017781487038441299044066399563884294384962728347693089913349974415978825419577125190681059417151058994270301379725246819906061164806371631558673846698426914911816315634775225763490596895635722803826157656424691138542309698816305590420409021007920196569646392343959764891967567069523447850261337785495041720203248200796979503320226119760904574464709016828906759759492021822627112395715197459773088566360823062756460299434014149739085633691835737707039073692086233401665246246479614416322087353427605561417875045880799277570859659365636057595034045719676095066988771222105627648786281895219364175391956613441210362582798107242515145081863619309269649645011172001763266878170828759466434375600856465256071546823770106593795917162093850588845320812276343474622124854698723980006958235736083735408315984669232661227948056185603893352506733688165660201200059454002834915972899646774741972011800883661622846260767393680542280566510932902279114702645585764819231601486748446086075657673474459818522305481761467093014102578007205023430728081680484478266321547579028771388975465008611002071122115594133813298915841674376917168064840688160566766726215837645542765554173954320752936826099997766754711007940907902078533417053363832849431956761037629420976237328962850573017030688761362436004382898036340974519270953210556422452628384558670620512524146573826304371052345825481424446412540843634370149805126790468038263526663061578935817264525186039350281566126271597600966679680885881084358540088483293657479418818454706287797753360510601127681232721241970771615616457631979942403483031558547027132074238565251420934301392710973057690276101059811100434397443076595836045030384333027649657191644470175136809753125970874368721013865715976357170242580323785499264516432800171376175472030374694693484068896831842330916177542287518385065246463163572537342535434217418438575361234830725583071298811611754993840022382874715689526933465233847065228840373681696361040638754917109338691851019464172398863367827912057779761917128680819172188412294485982444941403447955420469766606164054117586164857232404430680878732003272127250650350525096159843016738345127662122080047723556021571267283387020339443501037649215667247849578966754111586160022924219364202502198525032090528264352212089301612971718258533810298272801021917403253029422185028210363831580961035265173514161415608761206314472351684943283553163462468180832993032575937401401966879637599173418502015988201527813501821022983745683035720213065126132434766850970586946311536081008568380658453179183397155624517543997003982373877597738827624458371796640309447917257363502037572399383580171091417871334037389037576391841099973925452674103271485834820521035579974075057239369938879103256135125556628231025306439900736621038350001771126978963944026653876883080500759087326423451183210634200780916968938249105042357560233850666699256075761428186323718410437239979297254251137390078422340052251237329737876946815638932832903550958065914797566862617730918375447178701993401355678811836005031328918912579875823684765428674583977769275112223778835261770073951227196643580055544805161096293749812542604930569658356733528771572816772410501394955632957180098772154493196105788602505380246104045485425979426338356971963561981379584881627226636825207298920300116135982183068376096973708635565675442937214598531619765455440825545114067076382401913268910372076470782909860463623231900386839420298683896285526515828829502535277742382997871987373056826925226597757779168751169446698922691980258683401799820579070865718495104673889688529827378838558837474119729176919321672915756338523792122554626179810143243774970925985026084702009332323842443024622780259037052500628230062843532928257965651682950679224836076181147519876514944688305853246616621049143572729577885397471915152937396485458872128909846840482567503921237009531340538859236324737324338699349078875229724689206500015003637750884721245401300831310845961148719435493773331305368288832901085425530462729420176770938623709952883334456978376354248402900466418381674907583541731385672230883439942838774786858618009375700332570748714225115994349306946802528064513283730915511308897949144620097954716753927934939730651038399696307951762081288456327947204061620028945529482400081170181131884893083444293006749606990857789112882990348315547849700670997505561913888647029065063700931610381363127477288486663859732894746922815539882309669139748768595509374588376438442352769975442216432774784804316118963835273099601527604194402275849639639157701053673526865528273680107030435149270807048667780052360657313991891350731934520052536565054781315934615522510082560706491354162941073441786432592498220465823428026273017736520098965878589672304714448351537424412457658011745547367603793725381673928372700979967100587117468636968962796731226174163605171174742728616903549668854463311379237992232686933989503833080787656321984809976273535292514438014178218781022128826803331582373637707055510227886183802480569436363082416782008601041201677285616744309623040672504273862155899796349041519637456044666424170992341360878492789268295830908743640173373552108352879436881602822077160079508604780091789696253645342387179031427900093814750776459781267341088237182074005235342572825320904890315175829975137508684836777040427783099049237342577801619268154045765332065875764707865617166602356288138045283987195826683205319359050093470426770722410655485552327029311433355152988287539977631109952250079243567825012043886862930257827067222030179602851022075570774789577906511732200973382301238589094789269471966458395318453849614983199177476349321058236591775022842508150671022456509313728643622763219596296969405292886028856519632164714228012910116381047829966158444912331103907234142855765292056854302229938131625724860114569744916431033296870798070155604557484930165738183150332505770058105398055516336432739633211287186049489348197410870927112161714784123557433936444212672849906696602749824151418337567257487352084053573554776736954957146888225250221887388017393525384232322157729864139611836923454118978527716598616089362625436182691834652656430902491581914586654005331215264652321379788075747158305762667253194991755955898750905080671277562342659298440988926054151642100000694192565875778036580755981145285412251013739603728775676489430243637404120259201656395799679641063264939450246233505480101588603253121564260883653222242432092823550483812407106909075268764129867083977893484791076684153481115424913785986044917404459852494016783525822654016112144126680632820738968155712553284809348569575912899626514067145265240943395649761568453041390866852147650968588580421197657402289684648031711022988646658362199735027537175095678600767925071262214356495642819128041636538468396387367251591453284991543146492212212182732146407174132163219434318463990298218895103379434316563369152839111833131641323817970942360821155857986647358200436078586018341310692711994496706197072468277224884285258062167323895080655839783831113213108474092630066163046224609742362472596397967016487686466270039086058815323597955546951455568919889559897342847718251445472810792010167966319870093199604305000566730730667178598670027272324682445007399197748048727874023691375829510974342367743983578941974811328235736481183300472275140444191776100667075478780338754729326394088500246733998925677480059959755341046785864119673836957605782365849225383428674158256086171615621769799793983130019434834700460499932223162272542516686247153672850460723929667296436458422262144906107963402026454832979882939858185921482965655030227943780322911448704368278526099079411866769712406627885807625120473621966948909531796761892554112857827873593382281678340198085951318571057638109090379094483392162271723756102238602639953238960836643748151674722148523728259464223130956051546044675058073375950711271032274722261169849053204370292383768745522968854368805150591405944910232418688297290813231305426065969069485954515710776359441644242117871962457245658369542066392818291171608245135330049989173831236190284731317187392557330512938679101845913483322424443332673040086718879825458347707895929597775328830843810136694699176254701111885760278318047333986361689834409820797660153018573363752793900232118688785606908622909275764120420177230585821805780915314161873910399686932321331445266823610291522253779167069964018730229286101962582674449878531875477433165471476071401093040433581546025430182956940891307348630885380649302043336615014651036958562281032030447458674818583975085595418343204688604556473803214082231653690687053422309322673899018571038328215732510798538521370616310690424857094682420458999480710833968003789783642236649177616611703096617174313969096305270052162837804493649713171649586265588005965853801846553046544247746717492234249918363138064317015139502781262016467590685913914192421563951122292520625837545371009004843450354981287114358064281430393639523387641583843487364781572747127125262505920831430406095060477065195301602614314592171180985909882448606108395131393793090847550587419968934973472935888652411100994024985128167112854592609067681247887761745752260369323794250395265659289258916417427870886622139830745365410559104168133423036327349125714511615919717684176195123895889262583597256582080120226948874844917075080107721928798443229910954130997339050286717597449491346532261197908713161079895162965576063924944179188933921166125159598262335875138848676957293858672855065068653091405254594825419218414983153897602912979903921198478320042106792289782109345516203848823580007170003498408908949370713154380458170901441480961648931588798673262452882176626224540786061504389327528358966149410699513159193668054884426459993001640726842629734294395938973111759837835018400930544857247197034636935423744336418623168585948371403421652107821428279328741610805037905558244435916003262923763112030137254791869176672050678452907964211731397147809777987487640359371428686654794082936675157429394130899608470166964866792214505697852845832330230663468419128859418012207689597018611718637319298419043935602877421002522255610576066299100882355292239561402763586864459953832966506977820969204851760011456830753746841802586963408242351505842249811888480185514233927718562452585554458853110089012414493039457894250925388211512242773205434434688294288412735826041558599426592482276713615050796529721608125653232240177598851470907171569432492904465075854079957557203749008100274728063701702309904932110671889530869947286554090873977590646996548647657572665540389180389702079698947673696707786528354987715873291615948859664558859949002262950419176179967708292314558063905328889916691370407616820299667714248801166417982223546788691339009227123773945139882624709721647334690766326253338994507503939711233489488741810879276052870989442517382886578398184081234828858561325021633764860474351315495027044261637619797359619960250791025578934440763726449084496169452744014847408562926497008836672767130165421572135128216220490423502811184957962632924348076011258500271121671842192052550523070647066000972814471377517225331723320262316160004969445732019545994279859901172987012937924494680843081854316457905781872594938528806455875599042096741048749900694439463335227482210856750521676919629309249210432082493483770531454080109407729452615073342636922277478973066603505581972852231030581405549701500022186234691787051411318077979855961892339088103853960252480299851892516087402024251404606754071374044974468019107149660463444472867620598158706527249056075398119031965417029080942745049265030737848809941048365593883036997620148965044030894073347800367977243926944072550753657602139551589195912209437623556450439251164020691838972113347750653225869236768319627804983809937649756654650551038988789372783829281115376446092306379768861848628069690348603872959520673602787729008381337970253170691871534209356993524170137346797030926189366024914535582584441577789718081579146320263354118201477481816656977106693513944399725919393395311257306877935247960485404412511361272469981470431194404049627888169536754485825085524354430732825952779211117972739116554454586974484396486066386029491078932470703597103573734443001924257037399249016118488357871810888342873110700273048156847351084273057749587174986439377591443966560325974253399561756630686884606966044564986487120449935550014173604932579550500132273705656852414538206016685581726630381385682531921612845250382774892156539824631649532345147147752443152143809548033702277939950889710125597989037982992029858874372254254582305290614172253207256722825664024637348206939266911012678203820187897117337035814040111105576177178809628746232050410164051994234140129648938990851675453848090169762414918427015888457374373055062571784012574583183246125275405207079273260182511603569802250234393901272216550198933328999084806495195372710177505162471011805688509400491253056016985742660251563734966929667084869685378817974486729545741431619791217138536790220318950769754760429211602983788676312679560495532644964840909374965542519342830323301447940007312118534819644505611215090671275991123977882575053781801385339542499005403354292790074969964580054764420973595766276461697040992813103906732558436962285831840456950687825224851947374792977328614918809719170415805457396828009008443979065039748622682987392191038905311750811209011477103853283657488836404581037703780555254504856172222121317922553031202282658411946677137374207208400816675979102629753075066489502913698186988552231685333880379800911635543585349017626636454141286756116342720194192536801703877581724230965599363498076724946676391262150946064031028877394115495815040438236117412774682623641597292571623455351742984781316955582512555760126969509981702271856014626924876537087010804268496765648399895901393010556152839336906991137072496977049994741864946340144971106026784981478160390624220627805216094605059047440383277705392655292284587821262057475086480862673556524181693368094496552544507669706322512219029135752680586192540584421200805368761679997464542960115588028795389187298288720977173052475063063766312180674055761604675415897672029199209547744605807662202092048007940648491062282752837917880565032763955554426558384195760526089987733213680426240745748712266294849559497896699347300896140620567597273455761855762552362661959198879729348720573979237923964649115863138844704731252605512969514027224550593963253578095295412521264018116913781448325211490490274898326397896973780896650701559982482338887505951128244422448001515450347909182531192581573649238285701963993633166006146085590833869065444717019889802085686207605282055442520338660714738298485294640725855921574454240778039494516419256204435199829733105577155770844873040926120396661731416079211684719580078632362737849986204245290034089959361953600028223699150253883254878770340261287325134948133111184203982189925759562763015055178692069699816336320306464817409927556933667324769835619273320691329963051765900847334227294625421143422453043496330410470895842276533095357775329831571340414233863730904115666273861990555855606956194129818604182042667597750611423775593777925729375226224984944717855960784495036387671065378942548939637720492147055062537621692354731857288584192938953087551489606300416225056046336811104325357739560874530128305735573964907754934098259501751580871785598653966726594538504872839622339917952117125976343444905935349874494988308811401869659505573028087970006873734822788173144313124664453742064836625319335953332523967941832247449231597505763958127107584754803261096771298807752004010682706276901570140525658853522090114108869425106313836186988376680015496478479041673940261486998452879116926302525923186631395772394341182118723746786541231938639873524502893167329653047505077889281451808554904444025163357472323937527850274699591487873671054556650217718727115054859931528541758653743318402831183100192902387228601039986002048289396656454801268411437980915981194120015475851154132470805253520072734331983617797279901683857339776572037920978703082899523735276678726329706478702653609353747086049891771809499893941919580467176357023384973320972582868571685798098536079941468857728323305655338213769769397291569584573023352462217994473072133322926139772572837321874659185708652441892712804358257087396959617124931674328975571067804257912720059563764332917785161728355681835000367611271440668366152993816899926545279960939597401131367079661538499908730110888275424005947342488556388409408392242468069661041408555026918786262444787887203929916515365691803007435309235016011462502962496467925932321716329051710351459355575063557876696463712028807687660151729446070828869161080758979034197989633510661080772737442811699279945740227997400105462156713580292173714518376144601859246564205775119305007442111989336220906992620236637546987528925346236858952301608077253021075948961026797201248410574664421257622062180141362308125820437146907837347384034343736899286095833429494586910497899409076549915460997980213591667534863873733389659244130503691387243248495916455233544403939434063742122436878988183974540255471680180745244796196562293940569297150982684110587767090764186406929657964240049364370066351980714310988466827195185299626917488008380540747467798034304239536049426269745704850598239626853624814492881212223065726270348723750195687197386236787660619316442239322891770910113011434363242247648684687333258866051196486159369850023049378323473314219795287384902480380140792339475706891939066655400972455471149804690825384404056467459355081071459609577860876631950567378723619167882581990206555553573778244542506480398765571219185815708557070121474093301349631105345728034839461767930389290653141423684239597909900505785533191142933364887159494777781515443082505015406885838843797205246275446722075649955669442185854325218801051163382334735595326724532077753510371428265927854402358047644654985575726590128983465906527942670509230823944994591434616863050115022896733792394882881078378721610822997385373426881398647147745955593252375335082248673957353063203151430514155242470178510855600778000561141630208313214400014900985929070253729090897193909238550935595088536720879455862223488131234402264492773600052470422080890634829290879664602551378832522945741836971054238720517726920824425391290464041549036357878593799072871225057236208762537974551193902513865862748516471258366356712075701893159088135589590266940582601284362498171596498118001665264797549295847218141784108954279730794117919953046908856930895742797863236386524184021710076233798317822010821919439255146682870974076033338429456798027173347633663220640160786712218848566898436456463303868951048488333759897656013968832762063128636184917216198551553728741487915856503147177572990707800701896399385716885986277712354352934749574496209609881506111272225350508220455673157632419627262314702273560347878893996027548743191021531934149207213525904677785214384934276394980899183434680114148559676436682100492378340508589622486702174743608530246371721635663326903460915291268894091180657767976563476119025249556212756972144202383801605046789853030948307166216172354628138511109713179059134921067459994426018651100454867813790245108348457437933491520034975247835246145130036061963638646700685872851325272278817959650856313174969904928851083780900368366552823244440592583981966970837439237104952583636312305515582455613466978362840392124825083556943089164953783580439423413537784521838097450202416664280629437963487091935328004183858780865193673785508429167057376513875258677293932885150831941535902719190103012814512511724692459294069976246976721707815362533581462304054636737430523771653401683697421645644303070810918544601998048058642714812629945808771529715405281266303415440475741488650318921922100407274633652697740692437417490571495432143549543076736311802206886227392593185683635587790813569234512241757509029597652694691452409276951138048112111592975584923141193835844325333903435959114495274500874700295219201198663046064940635698757448936014484942941853278053924244245337430402681269084702636801317645449215145365468317597348490475631732879976490537295195809465290475507503531798309639893160691180154547335961093906297370915550377032852364365106370011167722187766319232108631992975155819132368572183754555366136161844754418976744993819157467726350267063606837938225924578855566117110496677884631743397280490004591620290532654037743865060964528007042170695056239818453799196831714270109968671788010559464358671510584987619388468132430849397537617840602845227937788669470119889087621964073363138130140568157488052271246448562696221082973569709617826719924886680093073130457404891977620811907247432321662483749216794565156451094253344025724520117945459310468603742177814593608746610397140127991933823603679372213466682705002685392628266008712143467789933861813812188450860147752732947597383257787370415579222384185288482010164259293425775172618210250967006035817758765524015446239853998764009127658494272293542507441043791169042317152507255689080789629029044337521766845772247104674602834359775490000543319403277337551684691957393975685546681260095462716356460627681373867438327658759980975548614545494956014513113299351485836647868160474483965781844989270684036943349912964597599244241226486393846358574135441699787496204010891257216720089813330331032831221547419318180873067414197421916374923387456911063167530803831392550067590670222399348047485869545502208962435779830106725208897336704084142009413348769826405270294951195815562773397740929117484731410083079550229517638685652579475723798904158402546367353901744335799209657648053527391735837533030284368310548127706606193814771407563716492753374798137910193382462828884070408831037300762184046512603588248294090177717438505361111654083007829652966005655318202499305376827418956031408408745748315314917342747975085143734837513293490046600964804511292366865315703675729323570474810437329109767914042054534326640331307481806672921506565248039530946397951826070677051348510476873820655058244474790745572055205992084738875562209041241937745940016326861717924251072330551065959776391651983454318574882095815145634034664710093907620369284426797773305993869344356386138375534189332319506683926513173740818337194675150056319762866578044461758641806377796602901971498382218583104206164857241367492978973170689648626568734867566382805990021555451665621070329227403013818275011449821385379137887144826510261211867390534190594005256721609604230742750317025531950796982353622089143424146402601155793135322588404948104426717672855853704988955632118422042245705664835682257949341503254884501494677110093433864081185759679174111562255067070769587766059487111454422752639764007421650473391078648734180999834611262241887235236082737040090720214564270804788115771267453099158319297731527924794311666039402075778732111737480605255356337135044843443359096754407088061225110031863495148240903867003434908796268787105262145032784550499987710846835873051755766611276340457268579808171289339600836335295285965239519334903758394679955793976295508713654022626360240587447727201723208086873404270353719009795232677703679416493105769441253483827989683113724397844660850583526448173442932201690358943616182430524384617128437855319193599101381681063935237004159333047489671139739476794010135845419795158374647448724383480665141121072032520247617649502306556497648076114541755416386349864223101700753195643432504168208353619782314302002195916102566944400313530660895849555162699206811478446331464858222323501330690003155096248901802799181941197092108372773444496246290819251755290023449084561145157320367184508859521450798306957839499368767274560472682428651798371671449877243631599089296632947723590018943396143323969671478233048053351910457123131033729770214206736470252017090688286306175010960493732636823575672490739158090816030951989254199269677994269290982270472604749572111434967682308265725954994711123778512226054024828234511899895430019288302202122065223034885867639136687107470532688439678964717941555321512150527233169826442286979357435436402092885646873005863844218744096091744205463615873594702369586983195316404185117231123001929650371089833254966164508378276827585805804228372258271877650414763657492980319060070418939559923516196858668373007285952706156646453986868048467298709501464092376559001119031987481185979068802579106153587903631686974837865985597435663792408750308150101815666777526515639427723042728233514027848157040620406050979840443689964538444526481047228726123924515494400615315982851606305667988568041703781153644049793329026441346792150961786810965292519247540515385574515588660592385842108776863431708587366524954385638014779201946268966802329782946471534111119211149189274006345514649215306253715274508776875653110889446716843622047507794156849242183040239696147982934666517411807945408121511300177748277737313356932983394136661454309216368025028277684439595693115311986846641782200775375545046218270865263293625437510621772448942573509106676037960687763025217362494994532621736699014912492755543913176101563050528529176027444435430912773059248902585158711686456500513037616273068988674114572154046351576265211389442434650964857347608611409906325441271254245619694862152173855091699899355309375360789700777850722353872343473421317692855107646342992700773957854537980042928798722480263638545191732344193590485926481518084722613510028401865797398048500503122519414196765958217732986427325341660950427434144295787106480572013341735276704702811343854616180711720587378123277569531852760264604254553796559620147859657231346956556657446375544536610243665486664059173749771111584187059893556328429883484402270953182617734952953393532731716489968821809990181343472573384883898007014658023158126158404842684874362712162505903432360740634968471500327604503993802529942666885780627120190356310197513131047795905072477302733523601221765789751104985511676633505465312765771458425522653650325988965067078488671749402351990641209114432955537561280285944232572829250986094820981430679226445604555966379737734883060404637750446568289073252442782794281922587697315531327284291358138293452628869918112525658828722996495355398432647095886912088013908564004531690830383236850440544966896849328149583491426594264947570722154068606886542575127443746854402345412214513080854575274408525810627199456045904711419149663606579247034472606243230312106303337158904978524787784878865529015488343725909984514372390329406436879507349343691125354755634944137867970383572579671514983017515693555119188326982242552574094584229068131119492262807907123788767685104801589630798737185625199579976892402325783482451714461474579189678233985748547735213412908443102779663430735168490709444835126820933512294444574656653053485942166795429057643085055517043127284394342435788463192890093646687723025107729310596911960884053212274276018022912829091878451927578676907934473574472673414185100803140054572268599330179119093538472925732423862186361188148706171291030921258512324146964192642728692246393456826821339771975205374555581788774321944077943529315600679678853026745985763972682962335407751357672097795605686971678643227675445507842505063810892758983237679548326801044453699595358887141300233976725564457003585592548726399990247023246882500781507693467501051366790360883551431703588647985546484140978614109829440800709223887609380621105621403759600454040950504914376774985298387683551371055810457534776645851253448748641613300507864613260143148797370431939475790406493878191417698269516110426599009752428763119428782164404799246000126118535983373986034002962986887963117856617936435892610836029872013074676376470148618312527337522004597325147950019062728102533470701121421978618246092094162972674666554850537207424441859630151630777851715671810913504509544046405592416482557819497160905877509434872731508640343561210767787156815381832878722595059899509814090304710223472789028434382538438491323664582921170422272887969291329539754192215639240349722749157105467804300613631902882836490073610597337970303908084289819220749462436796194842222617902069025747876011507444708599592470756532050494741657577820047634966567373916789797101716511539635406978769647321374695281570739489052379715873980070811914683189132710579218430489184579885903411831735172941221330867403074516996053690365992178198333802271579287247135650642449847279264584840717247202287751162654721751078316101355658284696013901121388076292996823275321645868455392553598605248508109952388931535323357340387694472887497180428071684170583935986472848099031901547572155060069042211257990516458513709487195815735996164915100881237559787342881116884364381117372484579668693638712936612194115892431024127528724392698613217646211639704836304179737480355282104332930739777657297829518046541192770494674807951197740388910359287857772747051209397897169834299169386353820433067370161898918958695694954838270657018083471084628594385474108260304126267735624369525707427750553874756536083493047767378429162659038546397770478298665886832431895077074567872171669750590729237214527921284649108173886880295214128611266631429231978298946736566072623697096079800229757619097868262118619970392864584539088915647987002524540981520117897465792187461053970071663776567024760779600170386789678731358121002072887801135104361080819660775243503521445649402044580663669735646001133618691975315971895817118853889261181621701931383057602096666400518055458972569380798827438521689436064449474197425789701227484928528930190126280027107447612798630060991246294998173009486215518385883234179501592286215512091560365059733247427769078393360795425985732164602912061964990122171290022596561974301751829001219409457469841647851721760271053653603060851227536926414294816702518461617302994487995662041835006342132577658044261605571365691786580817274846082590051351874924512030247821924519890707670814506083821849354002219624128796925378572118550957282899418679697052513458282661383934493181922000073994034576198319378896485720118364769793165508781089419370408989973934356006061211975564429854081316130925604761016959950574792636720739570058853119704702876868490066416801522602878906882271832905046041590996699723307625176068936003569127759990010150930637973555041321884450119201228175515675912717323616469413749845288736811486350157781730507646888853222398192555090781568410552624609548322374429555881889765925647184028560737534787494374747269434402758606240760179908084648394389343017441762460352671184472132793126519738835936895245565764422310953338395715839915534991700731487575405127449112759691763848838934825797564634765255141074028103349989344382964731082805145172529394787337733905339171225170293147663887397284067878434767069348195874706317549774526075198605354243192762308101086407236037186240104305135328142071562630567015982229576825907340376437542706515655404442279229543027261228049781064897942153819909429083492808651357707413133530518111823655371200037816051442805302537016720775508048277870953789191613240383058548054517643936603898450536591257098231262795151190164547895227929927586900127672473461733538449477261039277275801567521405709945850407228038333396083871008834170894134999466837539026407808795279110575673801617809207453930504665605347941720668774893730871307229567127787339201974995237377223684838168001066430715454396422155933250363785949223655527796469988091408980448675285950089046387968679404540594154361765155351513355372212877530055169415658501637909740072073288948715386786723574247846925394043070267740347727881259870627757668315080504914565280334610180369320828895205389047384226843757991779254502871027677642863870399005638708409731271302444961152537261990765933955803680380321647209065226591404942841156766572046878645583705893838763018752360971316397939088460994923988449136594809737481120702802865256745415403598892024166614797918662998830394452408311870663344482731090377450944083828682821137257307033633724687760184874161520851157956945845728697115217326879625847438655837400359129504119436307121108898605968736009261599442820357301643856910563551667842200347934364231915570743806634966341807883560537739915078954590269861803786421340244277743481769144291922749329898318257895276128482230537623466093685100050717161151404073490593929937700748164906768319372575069325356023771367639927719151948381502882331092938011787815360957337053921802550321366863517052575795390261008386567682718669425256150147533170987182226913306793969723994747271207345555493780719113251471240260537265185095947615598985295869997019945847306493813684238499474056287765849705096892614351530402966066583279034647512026517292767201057494412585990512087843479247724974892509247508449332500603304025256452291532846198565321141866845913949753554921778252323246029524506747958719643603525784566664516593048781297499540331505959142294659122479746946605296767656652262249397076741540633070943271168817819920989678615793836399701450687292437519956872968935521907835963140226149324776203129706605884243362919635444355337341842543645139554828841669173241007855577298783507026117805288589133899885304418104026272843617342195230456062971231424480431196538502372238447211035942243199584330654995233704515352913211486551029536324694850274544157093211631018343579768500956828616212642558334001206230510419255643576531757220696427937920771014129488640348379723339426568543569547049397020836433738509402864416364411809066325838885346623778273452124171737816364197112380799645029025226654268960693851858606299737686168016678264552922983258789975258500107454629203835235972625485051395524658896456296633173374471802699750876348309619282052499870265829640684058750132389809492260008721062548840058713458102698442898412544218094514118707281706568589924447314769107504029469367086412737191940796349087367395667627666793877288296016770662882064195294865025970820530247834607821930014991234252132996664310287786107917900138648570328633710205893222509688964683406119208207549665132568615711347580700856042914527193544148758345924176818131221219974049331676169391042544148655691592567861363906300665393626597845347712338327652108011940007712091141012148897887981133187235292948630266927204102971508065630151694530238739270484281512172460488592632968560369885447558554125499863256239144713330676081063921298939641128933896543758571676342885355430242678131857018533836237103568348797823882292671948032455587598332955895226410255701950809850301209878598228822514472805133944673855377857031877834177107200833333348919401335098131339504837508315317693883381581767746443796650837858170511357223101879555016108088692030219483696133923507698113365504500290448438979510026664210991412868728174008231496912549127266166789125797245890415790567766486535319270820117168154064119981319012778457906824557087139650169431695080799599595282774059926155823223710151509861113573271434759222135056483248988020486144309976535816835278439495951085235787892694041290507044274988952229642419614386359545554120167500261670325109198728221674208175168694780945288143802763181989711523179975827643685147541210634313333090378266519606937660676123703749247058684033767583843521320294711096532642888518470303811039152575935366472193309410821007901968165347424950663057379813943312526020579288890254775971594056434717540649732117366781425165846127362220630653538539851691391703187547447114802844654186748310252714834894073456762030279375659759902400833317648051585238308511646743620936648208835389689654593235346098973967879204595515013476289124062236510468117351360129522255624710180409850083709724697613410502741694400400466472523224721483455489640134437250843802122322702782540112958889260288803221293735894716978049619509420384015719072902345247513045218678037595514879644305759591883819896790449512431271616020661440151637949928616482284966872347598550490295141043252780841667677238014612814425501565653051071731380250247511640979980097905359243011886996995437529092885869983187149553014013359855434593275923849652912906330641781582416198808851459494620865087812514091662224243771032186529844008060588457738257568107664199286924504571044055167923557187031696257250465145369175061043779716705368673848576678593653373742026309676654648503730486617557124519830619630035613452405325476583731654586280386130952146574796846367875888345426106460301819618010487308739226548485044450123461191618005195677064189920885173671988428212140183243119110778265781687081175192817683280575645823420400278428963530865055809578753024907653301021139456342295101846984008094418964083066534453356471384865450734362295958827818674202401345161857748668560798134469144556038321759603382743378894861945651588494607684116057165634944687879868000174355141857041446609882548501012225287617826987964562340925013622127260338372675054850105574439366551952407900162576442476336510375650432677668451085071052566977704644546852062169285558939046986384634173072971435579443006692936195317905907542445893175484790705970430862628418284742418585549799637267241242583446800251593293726322541599356599118028955850446394344576065366362905858507082176619427110502290818309621654366053249003909303244830781206508455007681084986014503040047832618589329180994557770265952681540092470009977810167982902676696588278905380544928773721510747770894366381462940023408993523898987629260902081790730249313773670199436401018972446101243744582087387452683566555809206695907098625878971719143928953141271702710193291633004714434857634754054397691749298499521778004883088806272364650971721662983357150183632888052895352145440303796307311855113415398673661859991639640160384705051244253462850733934705872620843442851968944812899549736885932027001305029707833376163193662122814004862534525707163545544430782451337300867303688666089597729687384642892581003102053687613220008757532716047966766229193579325287673100164005217949298493041603044209418968082409201839656543792615610133182740794650503770822784904598850699908918153405649743997349998285002246652748827882487431317644764306005909970330091664066427826918145888620821110681218401090543824296442588806016293453672048123394549710725538893240295114731849815142064606914822607057281699969541512037740479918220248942910603062033539283464994543669699426517768926438159114143611903295344819090307241692499901030865299336214447065978766037260573970345284489161474632284915488462845929189291462089227142036978383243188610887640124920735771524434211940364656444224526244045628616695614233435348812605371609105290316326647506880532721723863466582726829932429616901303536423165992413465211761331884208697273403765305123186885220385431044210725507908202009124710083688596382169029988020826195053834699911347702097945701412267095244956174357860462436677207683905577442678092258081983459758774514720957732500785872181165269356020124789225728438691455178736731326051277327594111481979525330132968243647970877828593214036357171105286598992412740055577896066929369968301539380331840555313576856129332326747826374658707753668113018131218131912905304497956563910532114020226170176296395201188270215247149427532837295515228082262059595998056832306726898187327420858993319215771544861900288029269449235347419818533713092394611612860477402552028679814706684926491431099898063463642223788028195012825714587012788327882964781808903710364821403434802688776745722526643144763521165147578975064667747321960794537435711282478407243786751942046174382197021976451886351402615360957097087462342117580526194671213618655295849840685500788506101067441193675367430140052606187198346491197628438281131428610694532868345558724144437685473551378531982696957892249030400229007779526237509641834070645202116184555951065477777179904316438727226118933012854476762593148205423419071181418223326384435692236850561332661028663666872821607740049123437436869134689106337575118215706936947393301933799536119039118394291060010529127539592439483781985246409109126132075573296834332462784419336419327965767820351523641657569003307310940084832261905751219096816505734618727905473142563319085120848603860669320738067052429847146895545866849538223350797391662436184266169038539470951894927057876397669938162011456731596229360724513614592815569938739528972001973993042240174567336445144117411488414490510510134727823530663803492182937510450625245252398510858593448574688873773383741524777311868179000071093224723352581379854753758235256937198046357425526491837389906431588526345702552696050988465255684041499468473954008330947359626800575039037983489883364057440278958863770987467804486858652318483627918673748953570524618158969427500654588352615355119428416142281330721855579798204467150856928305713486561610530534984933811881973302843524455227254385906435628650529670127148138746406724242857108844227930725521662266966555621458431477060314906044578701566179620055650867601866736693080253247890382681869124884030055050427402675328262975107951670866573046243267588846282284706378644758459740561069456689285556725232128247133520255940134560795779984882859527421564552853397963221344842882155851244666031571005412059265463457548513600267360834614023945374674739029027842648191549547869095138734317823124514439372809820339675624019073202969360664007074168346958016003968495636594865520514758118701683079945092439621448909612804843036921448059485495423596505985924037066792906194779041180524843870716662277467718279755897734862644721701205023505575886031976054393294960293777957189075485804573264936417812003638974988515075168746033996209622952557915697755931712276204114241623208568228438171859983716520633942637188380532242121419199443540170963949639766494702805890700113490017777140840823213400996300381487598575226816958691494968713547453337888279640461088771551132499960842730073088066806344811396322190172769205987146770627235995210265528584258826600245439732995176900261071076033678290885584053313981082719974150337350521276973732818285627041614807289297556406143118159517056001877733657458634805636161415360504180104683754885043792071963930325648962839943244932507543790566751892579164274329212664019706795389761694576489956874516550354512571531284035030598784984847618314158124085232322181612432644651542877869929440725533489938815334707590958794039935628896521373589928522698161010978205650984262774238628736239022007812013255064978878804571677606109368324948711951437782405414865143964209879837086058438320148818301137780579330786913189102971752384495637246941181571387727752948993477942838743407734566567008364505976806173312495755197031883312461398628910864915551759891152609344554777249261394856461903876005518118165905742618783259099497379916914142889711520486434094882052478347975142779967938147066329491163409586452987510745530582249396278627595010545702801331519175840419920149804181787947088189183896093084618329644658305648130422202722267860280567046261065042824884046857100958680648458230653717626297691016971545605343003216277330820910218925283935026827044646491475451844657901520378749049427005363445192557786180641523089737389444542770069727959302356164870455913640012722967064021240687514015562720240094854872833413584627860294165046014901375824719597014304145234042533429385513361610845546651693651738569809163292855280467757329764127092195466003538159841694635074355433008991304735812242749749288586121339576447471696234894584960056292943778979214042346423631479893846298736657981433070946009424667338694860719513265432445282936536054964415283533305388932919368434409470147756963953739491289787335420551959305441866241471771456608990890892544648471012758701950343656190399527230028722574065047354299894928019693640581552660968122501622689615395071269055239129562410917451622071184917210784598232604656365428758660395357173831221999169572370726712986981095678262510566620771748110221790462732436675356313397314534279106541188300056636073727032927688458810894150598349163939877402608456793723363959902583290756361544191533708302552309240356204998539858567522186241171534750933110885672601223365401065544318488366367988181178616786546130596733431629042653424189536802531162883349454475620590753843017534451345882542003136387495437544962075832728343907647071876002117634299539339205891091930881245102381610256343474554847446654749684831434438263285576083111794538660800313387321762062929890836093090640647835190176814116740233388985653458944234446001416347123529521916619294752079458099129179509564702952389644604354286286311262383791919259121544295368302129124702636932122836508205123816718196242341435996496554528570415188651937352762290693921823489002986321423772763929606984468023901549414393483256530355620738164268936289793805356497483432337779727699105461969793113021873891876469706363925751991655244199705363245166549187476723460443464182032727875184508543244840026656603700867058211153309060751908020273317095896377692147110076851659156830504936684304869581314282472693544389669353367214095906084969815764295115584793870999745296628036203397873408958195920754387621452168601567201734987841706803795050217130316616010528552812815102852198460085133443323135535395665103083050331327476761043248314841647976929534019059214025240344503032995233463227585708584519475647256237166661088174766747729875205016362494974290519998355054641268808459231982612375842950147148844452252847882530028153525504399124286843385500784488810879487149654642922902810667966001042285058467745786518975038938871858082546358815027437991025524956059998678567043314393116625855651461828663650423928218964763431741757113480189125511209761563909928755926272846331049898363783521198762131488885355673694792579399421689284058287387344818863344132438355387661961786844651186290578377514373911208209128221020991745917764582992817440278710012704202577477549892847851517599420078819926385193418208421578196668908400497717855144746320504760062866165687812997716799731415489833038102723994670560899945815589739733786804738276777839046825599028050663702901782765119627010397217379766496608231804072082329055324711887968739571771693875679922798866083989942755096535551345279316864376787522023201270098698732606433154221278131416823536905739609709625898316968144004974174503985522537657292062979925874504274606822043432940042311582124156146181631015994486928651362272246736572061456144309132420375610707405515369377524806163844722771936208328495412358539648725676248238487242856551768327387436273857460665604089542976963086243200672307061087816771724434372537304929637277742268460638607639992002343261412552844104217850220784801208932260263464452338577899107159651426473239498035420799905845476095869721180760303224641490425541190154869614254227416835647706459863404906287416918604766443407266678572571297942619018107946051173657980939169646860309327051428605125587389427499202521018833444838026125106014569839909930177974312359076984798428636934938052493573231040020702823021434126223128707351912891378676762578500870614620108181222160612408309226701688308183645585959889687560751061270079667639881593189799459983368019127897109901098431352573711234645945796049427176713618386157391060810308774686689453915694543869947912576578185668368002628855170328365328704793425046874684641855086860360272441264362824795054307964458259925926909812571531818973100633298257386845391127457758335112122928512904398374318324065512503261245205573949029536835431631048755347717243883817544255564787445859098008887655507999668960305837751032302872035986535338130332553558556962233660266767606745754372148448524775246374730536641577288548537517878402148371963269937149512340014723668529109672264853365897534661092296593260254334165224981631014805208731640694139097507645618162113793526893913683098439216459916477329088374191050207855205288432451283223330218990721080199447659957036426045791126314561129695604001019730455690130506665536821048165077823685557527004296582883689819389226856921263839961512018930036198742875695199470423430211064926635524439757223689738425531165971288041974819338427646906730122133781469735109919829613533269796889117591368794322605046622019968966067705604886855394928802458208575322012624964873189985144402651331847065677083645709705136689913749326588201928557505511994763579181616597490987001131892874691046158739366224264905518581260598189717603920775441937303822304358742947842173197182958989133766254188097087793755122450216239094743848092164938772596929479636483755320559382060563754446041973502622388384172415931179316222206358606214006924528481403126887405601894662296545695190289219415925523883511344209893083267311423517935584078753067724807750383738088914762281197893514480072766459400300978006223323255882522330493778387569900826482195780880462314124888431384128103952919864720763122837833404722222680226355705709276628210121438731670283556473592766540914772037415130023690845997558743589114548814319546207871419505375618262612218112656922567902716599531459540974190489644738052311323377798653220599722732956455088344379920734106310621524381786797943191636634838013456257036669426559696379502382179818803138127392797187016184822105897369627729680387742484316127746135637971749747832133887511088737477739089375290046187471763327483641771152873658434585264173749946305585101415100500412328090924640784121898799185456408110853965957345173601447269037074400184730121139612718471165234225639489542730414485672080364323710826167549087006437716966815982909113851414091876924829294796055422919393686042421920463351084590560128500729528014717231598412394260348311849874987615010841287868447621576055366266434209990315033737716193062445621781455181430196209173096012820178172237381695076854725135003883105079188608134782749687637423465588714207277261702454074141318442875889155698161828266047665790502632822711964213714197853709179885693353062295589574793999571547010808240824441649694651445355560312632293119924846049202554257017421113013265650252217327797357486023784059951817710401265408945526421336857735459143603896086732815019029206131357537467425193452564457794516208617542173227403580476993380755404521336090760806831375538591649744392481958601627130206374202306986481453466557170363882883784282327735464085626256602800812840218587814520629052451462769089321840537709465820294194780181550890621066059724280718543637521239358613522335655142065407969843235478185817624462716004180418383442810421033239902431746671496647324226112697906165772185691410405231116122424510176341240456096789343978739937344391376304671176308294584580762611549309730925193624985071715319939862714979671379479204860943303088152299558710306761736858743575021122281025942048274249532097569140573426398557116119245808535788813259721222938982023511274353333685731179162610439417817792593889557869143591688215868360389482481634352833673101466993078756950251512713706159723617383760268330103911584224401156380296205562648178987973448423047429738541184567972206465562779185605596205521620933534268280885253709477970086688252786688843792382058531824169967306843354437435686435871139892549154973350677099770016758609558772452363160555880247396129681774247122138272726687760856779128995450171440381044664762570480592578956572277485565783050230322242349044492824165894093149109705869112523092133221822125812347576180645950964901216662280478129684529890713029829535046207228686627247944957962632382053197027120950145172114828951764603752232301878107559518046901527572507606527177584014493202555648133813333325651842554052041213589511674089710677374787157810684434895736945305068834479290850638653197022883685073187015164619632289766139463649850600669235834804922327151935931219013962970225810401838279798971393775785056794323552918543150618866674712808586694791028407175137591163599783499929630002027437788097604313897928232532215955672566164305323949007164915525600403339530762890614766708032204270711157537159618564803746118490299372867349832062554440511158704532050657557742441122184728169971136839800850007768515669094394568606395424798899238895660792778327452323823743490261124093057236528829810892574427351734917271298666944354305395803199470433935531597103632424178415234938770041109525755323023114748042400622423120966602234985184219168824168532306721709518424602294594942869561601554873279427368333217027829805163931962944687959428359418137422797806015395000239153249776098804767647050049502448089935644624301828572768766619978137782252209154678750555965257234782370452718833690983533899353521216560102819362264451439011571416815641987884926595619282851293821179993371004320226279139172164740384070442056147739224158691094647359647592713716727525664736741609507450314913607971406383824136108892294558218327466740727713490623263629871049328290180425610382339175042421664854159106388266555357365375065046294439864973962137394009157453181416917516883893584788371758949643609916373715189257456748777447843245916707466723535815214654906130848947338097694725127832620308908702339739496705610575288888987756656145808538048995146226716101638565554113199596410691254478128487867353830012791253966781513371326508922680247155206979276194125747910019962575991919010995101530595518459989346112125766900792134963603987035871916214254628285217949480831852961598116174101768668336452754165867992698490313332549538594196172803387472207289090014211582376494110215810438293697997181345841667638809972815261248327347104843560118178265382791455631654865679886296156086920810590749734001800913706361379300098104657333967380018070962659984356343788457693701720008173804484640130383251598730208999175035814264749171589464632554460196277586179955688494556229252628132551332489450872503988749207962257483039833411860419464555985431154717563179554402449527700654083571797565397943102885832576069248200195965486754696322884544164286959403091166511024608604653122852395556891276888921512139869173728304051381730675203528154883271996219121703200295886358921848766101863608463141253016435722274017412112086201943409366978233882526709243156304642166818214725123694058015772503313416713362937373041141206282560203661162385275991087721845636200882394253156759058488335092656259172089195101288961158231720743587570875561766909207116633610083437663217288472576457884874566201832866990548564393728420183469263900896437513384575045169480848580815257716309639761699877314609042603956686435851767626070754217925673689822498717116329839720090180756994355282963945283101153029704033314618781756170752506676496725939578432058650809415219970935621565862127788071064369545252851279341493068266362448508641937754594341279612101888248479300301847129517404340272389583749077198365738636973233064053142795189276445263763244559080106028013816753119743194918189524764410185451091154609005823912885356293581917059036766657895829191396493955395121992910138364968721649738150374948292783860724042351020082220569627178031337197729582343265038713117906405523771881065746901705226970776031651209367975341486845332831834510054472622844168379070887393430100538798173318711203793912892659188717102934517205496220235027209467224255273919982539824230940027830007591990686984448161226902315216785146018658653690830685981203928532884835450621535164206974757911776976464670115505033131250479338976344766969674335392147217014358576329417275945792464735545799215881872371329692886094959202118173065419704571909090294381412111523533458927528906297815275139766869168941415070206747784646996895109672572853239090560280003897437643460375275783164308212724487550684071304920080958361660374798140054000916420583835460761292660509948882620657315572635450147992035952719216708762107235420355559296213653349310353681940174056324918092662575413781457486304689749826342265616726700107533998249614477508563674799164929185416220822474719786976438348584537635611490884136781989930077211271839736408360807067051730569126067668521745797136993222284925515967226895441957389107943399535208025317202067129188143172573284913277256197086850212599078861760958477808153446980138234059452987061743344051860372669495793259217614831731437572748007978967747277208014585860900174823727607893976955406733222457821021573595457618745075035784326609709429487602520959970736490663937207190343231788374767068075261352155457345634664714514100649784766997428292042237817106859650251443959811246157879691608844051490082576437662433346781969121662405593235418935925252876910483763446370440191661025580820846734743988890793593959804643615792719113995293561274133266675081894690774781232939427002403738908242934388715617335089446909039167046806901111792250453740409049056320026730661888927282481156262609934867859207473392876566132836313206590594654013153253266124990315784693010291277712299884335309845674934684095486901017026147251012334194921642263447676913646828588973823859250665162827877831632850428166827033300483174772433660123455240862488083102266762984041606435448688330517195188833604096623988738556695763430431016990122709046057939595335363923224641267062759847819873989028018994065249560348729663638492395361268566364666093511713476057784276041822123282825861515253759313170777057167779452377010246478002265754275247684780554458291667864738417373236288682770903631555662155275665724622427755231802663589379335019090289591206491254333075190826247681145176368577434143077524391455215455904428777456855067447235111550775182565867601527769950535418215082248224317597183989583624185963190624304671827662233294150428989018607886322457678053502690557976657864763127990836381058861319554065067636732302143244236946313495778200476792105828323632221752439899592745875994436639934619907108142524895163061052882967798761451942667446312679567714974449026525685616936275025399569555570065223452338206853953105541532865430221213355891114145022994729837214834347940346354870497068666734557827050756775462859548976901212581739911630135362579498507588748627091244063571664576566913652622323262556030546643300639768502413773994195346330678212482715641397957232472205165477156264155653066143375974168608019621774515620419418968669036934469181708197761744681783180454466605766260890569276517710335356294343520456037083691673712599620141051897282462033025232973726303110947294952613413267576042532456609384895830258173426223846963436519250086517389042370567569341429350753042863122993489537639369340456424333148424579678629376935657030718743354881634433109786057612124662263156371796453508278894873081265592056616444789517829468859274764533587866969263866508010142773386830958728396823221839479596462023558812469722443035535655234378206822084936393597705019366316977619379043480497655916260482189660729895084393967516245051619966965082853212015466105427506084645622700848611325734190911863686550625631044362396333087009416826240613347493530225955456826116786433365649524262769403076496787981444719106548813514527266786294135387512233513724008456892446851135271821567232823675332956692317268011710631648534966622344671589527178715052379554493382162448494126673302262822372860004066684432163707525733205087382750225672226675693930689036523885222819849386827608620233741596912427036599745823763701077159877999895915576040409540994453019767295296612683789958366077332718572541786040423206423079372516329865796703941202654265559616915375027206417109271476837245383131466721913186500574870062903535396080996598540316594148088325046649348309229832583529907522501543946682843721339183286716945968912687067319478838069331184482766431445888396839375367168377425606944314161065376837933746994251031853043439418441938141215268346192243237076458123997578242396988939307319952858497745155392202392875327724589530200436697668730044592827295287971342562465488586632971225191421030495719960452669100233526697991577244825525846166185454890927978182244653947963880798821664952615362998702121951689949129434650317716713216941908461813978209533670446487566615416958989311225504016521845363867875503206233226376673385629375475110010318241978733921934093000615941653279073886237182355338767891313255328587255675713673716862058106974759269391718730364740145433180350628475822034054740551444657376960428275187385456545850769630171587203296796163627306190939699066183701683733310123710456947606825787650267379393006506147004270343948987345387574094962704786181785490262707148630472755096613712436195260212351222705379032564125071041784952567099689356210765109721293270871050166759415079759381232422198547785258124158281572790435024393278122878997701800429256539772740481762167298967699196071706310830264789083034115754028506064094238227630128217411767670866105414240324432613348859998722624763998170430495323817998321177171496501762682276414907595595082880168192579494737553614603869028316001048799342910045032394624749955533125965997663632006774392918366842141891185685614871523918894238298853131372019448829289242797513488536431821836413144699020190494852718121985949202528872624919536163668318169733531682273179842597782670803069716847688448942841682876057450012464391552235157304263786388351413611745779004945460228395635355032474134335845795202183367692600878355435618562067872897295919084959090497483268910001910425024224098907870752692864129809652701786082519665624389347156359733744544542760461270395662799662183465576910514591175019307079706431097409025453691281555402242012757280803196393409403726445003244967231402553606022795850328694252305282156282320957447691483934557675043124188570581867235378252595404111687634463067457322617907470747729633290235713240431733000124347360951947831198749687661574384923809205608222027367016614490826041483387485332637241550704241858741451572090789123231245745844319117002247154800480641229649510427018957753872150801966699275678542667084062078410298975512598280711769741999055491342097941496600336289643994669786556281409320611970410137315002827521284450586374595439373632070224724918215136018752750854153515363054667969251726486188376228271479994582881128576065428067434309256299492171324172989995479186566072809420300284204481465232327922318261962929624492756253621857172258620226439145962568406943832084384839363236792374157560271706404547937378836661024271382630349210608183911653561953097559243752493489691798424126906953901753896181723232904035489882593264243289318889304164812750465138215304660972777041127111811890414991691710554865846142835081477936333406784571585049103763347231407894561197678783578883063142553719943879393088523039479569222949254421573471057563860797158539138975624684595380290208821793959544132125610869412868185038291192431081537679841604071606702352473049805062039884197013724993671474869941355516322379595089890592566462657544435295902331419429321825861963440232131951670695897728929109155081913793605324768133118740176494435122155283871339412360282697673207073734192655138834412697356408744957017421198772612401511471641257515383844284777112928176755056481380683756767471030964416373521651763601495318205236254874082068416009950762908658353446041006640794279694668248391040682908772653774544219988603204961603010954052687554684673315876008083918504969989741443822802225952954380250121485566808117576602052549950287702905794943329179039298943131161571199588537090921751996507830200234946546591625550064786192608261186134244476260178073531063075849617210521616284004225063984499668547633199606557980901683400668451309644570607563769716947946255267263950015904014929813759753554252768146985111241588082572061197811836326260008806656055778102678413220063910011497055444659598740229651934847120459595749081180197012727857069661529340263938495243033909692022117264821458077464838106982997168587768733147702638900374961252829087690384167977347105895979401167600753489430179599618842920826565644802017748825892524802380962244762475829428361406356635416097841822560210239941780762878867117849525121781643977624285207583770502056947548169243348432799424970527730447024070728398477507915861806821017858365918992680196300741966642829714352923915888922316298555629225559405673995839763339237207125112826884510676099933627921066817370081794001056273624866384283461497853088668075904370741124416111197152766524825707686200669999300821876304093303617031575367222267450085449747386069131900179253859972667513741656487689779585219120979026156300146144736182875432145293536455380163608085843641846554523780269612522041676957947990946067846252464549957488185048947364751852483814252259291267348445274870730822772742413305084432856180160503188341940807905023728878545626929528640615911994562554758465798833834472975395418910406498511966371797573905740172542849715585144337240294749338809597713220769389522561056707976231004314575562069250460403639743853587317120569701704251733774675453157558182345091415606589623864351082442387759786999245039929071195742278616793222323140350224347982871838483380996147871987852681173982785982391395561929283643586161729335368168648099662903707917027303094707818667852881628021771787116795379609768681146117793720944899336585113348296686878793914283214055480464466572413190605580861495807475764294945009279654441607471217182079856756058182694444177216375586850639266715625205092423389011812522848331319075598043933138878156793464201799241996371289496259547490538551351619015890605204760379231563655759645373785024646675893969126861390117244076975619103273634472767169130864180633393470985462382438842488301934872252799283183285954298391778834127059525357701323724246475200490571410710944011490587446455485326221137406514573636896866535674028332566171670703782699122304827791312968358453059189681674490473819658186889770872926553344153231658371789969006691412762596678354552009511137812755543118247362729836681440300988013282289822998089218879974457491746868230568275949600237508105176198759597539079737376789180309876987486412719639539491977362548348747521938080211428348488476904127634032120565802195543113073111437934251503886800194765662086887704699472464832173977032380891669340415594570619403708109461386593342915040735368763956044478362402833327858330161621345368012627627370049854026392343752694898611923365762980838164485361587136382180879629670989382487202801651974008405192659956786685949234593749587622425403258531478908116586108687562935819559516056601079597039780767825558786419475084099304110082536049122883374720985560384057432456567373385002283146896234362019181925495033874801364369937204280814303783489370909186003198733928216827697243266064424513813944880311348070181062276737191960060613505581923848632108744818288945471936257095537628127418461292158677995245556683897013787333348144781183239320855052580681890186987968067581739448059776026103531569574717851556278016550521277163332007470254703040749347825818193228390250758073311612076847164076881689100452095502008340499706513484599811075746181958469819214776135849157713577774791635591190157442743053300241829812528062555765932938378370773591358024991840900292280637032451585981808312648349138772678759131937931205746739338601174418184432497222061068879587317427584286533267917010674891516358521158522576732522074426173323822833371801002985604219889339415741887846947712821231620100144679515515491000048479935708531094291926888278218577780495801370197439542896212683265545399541518499506307515768644780296856964602910766902060453244370201825121112382585760009736869681178971325553907826989469721669143748344445619857029255594189554224433738805649971096847476384586204755197344979454724076320340916851628670642456129056992847047678188466551135394402486186439503811188161096037089819513513218206522770240773451544053334211004717340759457855374447954375576932414457294880329448730887019598441328682739305173338583385450579887011456865636919115256118393048442098487583836486291965388847750123361778876429793455718522624149453984061734938512452580807734933202952936000280396705133859786418043670252268107755434748695599943429021261602085875283145801436475640698992411774320687628523846508245152954284803168919881529576683922606004141786230950566955766237578502619716172715576650178100750195444536941893378192050508537334569761566056704152416177676412391316895625606093763885883560846994952479275825581189221251255698228762651125064090582624429702842604683453845450491538039859745241039306253313450085002957622054424891624116541209752041757861367419055858155010972916143673141426989503928948585586390322900760954109747864971448908426138108042686450945928741289071491351742891846103129012504222442890803983373516868367873826606008792878931058640447737543002014025426644446911682499502626798792062576591626987885896515017396343486669397678651618970621622353656681767508797913541206374341220891666688805895870692553817169017037843256391240655648171332803937585435279508883926102630886368230071203879329019461058274346771818406631831197935707403300642036467982838469906333133667260983888082998073292694889456330944601572985478572497926853129190223123975022813371807007064323562677445161250214591349157879441618913360127588141149478028375602302874220129257403685019647328232644754032148496588511788795785943832255248950518504918025351896343701033793934670291226449282434788958445734937846984463757991155693707838868102631406054917707502812830036217700307617472126214316662224063407325244971256327264274388579763513315681431638377458737251463285640870194415511409803536520121389865265287245327624335359816267426838333489926572219185101245297086356555058267750713870597008202773449793012672080937680790328510621110660804947024534673517212690031479698475132580014712856588879736593388869786960174941805516154567306019526118007442606345650380417738951278641078240367311490305692325720915192237767408426025697123286092820475739171925824336253078387814109503144439595387257532478793673125467921101795149691474202724158765268293330726710303496139282114637712243968775578330017818915291906716084720895364524404982820682587634425214496302256856323501189700291888769219272317113104722986094946598343150996438196356252514490045360887267213809830781160865817674782033496863248644804086358455508811063582587313814166795902201987504584979302623035182920303968266229189001160939012749942628356727976731390351514239196116935213666766918551385154492665273367758012590325231105483764372333306131339714601354025031555350956637881818411796475069752489528268940004616401711715027968897944952064640735366942830129202742716912981533896972935150957040988944408615124763563736852341345640889590188843623580926702834373719640670193838264948742395489586680030939101474719534278167865277709026354240107185052033043156064573839510526733213464037489070129477129314119990663261879330106099860224720816025463361289962491759762856838329964910392888189272314890292122703395199084552286483877924775245773244192109888159059014439439541070564906093588933318964215481827512360470174119035267918762787470882671958786659243229800884329439189684929376655346074053918057151914741955599078827923895016374541107901201880669007515107753649198211791801897541559895425252884640158207444341338394066485547630409746362917890407533905242591888977747129855667846779820315531101640658366435281025362174642197061633969460065223360200630553809050838318816343000122140709934677131471123865191476314515474005573746544979854569176473837238700000748434545947587346496870008146341411676628184847190545954434601969718344181190523188057750303458031816190064979832158674244905736633659953222722315159584793067932227155783385240260021487661737849229072184046910050362961529107252152229574380479878135262704851161807021007789077930078980106248471050684034165999573885928563596303011093771926990816041354417204557299534309855565022810862017602935445067939902075519368804089149975516581280541908941546601831135877127714529587278189477169502390380134885486899849098973476419019158831135545659119617684469074425114314217264181016340335741751530550213472249370169419229386181634553138877827628936008639419705778644110312742116052102862108886308350016940350001364687925220924763343821065015687668000169406552813872323457566795782131482820896761100938613198431808315675385357040905010848745985217589978750499680182883485028502498016034287635055387140042880188171588642476215484971318838606842833528273403836951647172713076770181551321035490115121185212754365601577548244086359071438229792801226599686034334673604864925650902627332182611389632224422706921172751229308901568283481859963428611684048370541561990933943094390433898161914351226388684884311543392426082942127994140665741907915352245743073005138877857493816263785284202529232248491738732188773803225436883701140887715082554760552767028710940709448116644225363687950458938794969260227335224112452901280698428738730496287165650718145485629479185687744724095239597408625724047764504205211945400577439930826322370853341525081209302595476273176730755446724370143959397527486895584507477652535723564400232179690432760971951706535697043668660941958085230575623603543143284138599172342079901157286755723054260166048613416981521826188582589658448113477398268367009854989665893666641796541826697790981436865226152535424022137061944959694895076593587937726544158220359077787763880681827833544595899701466455117801351369836321497908723139874701173530108506427716206719504287392056079832178671451037699185331389631537088554670618587702771058889037468371002074033657422236022590931546630599159195522355553246570687361815017156293527134875521619603484013871124476963998900418007719986194338116054580324209370169893285563866826469373427740985806288796820037033016376454440545231053150864178410119433781815925410208468809533652540266790987363896401255247981011591792439151075600396407642015641779470656492689994629463008271674438839580924505983098734653593504850510363763892012052260567507998120289128284840297248638230243865004491771456702540777007443496195874694829281425869930501829185380557535406337790105364901935246828889688791495860542303738163815285112821329124856712213078738425728631608568158938480022455870612912934775330234631734158653278708564129361727364875219457436403421598652581336033038653871063147211809117179401600835775292560664583920757776464333303051299774233491930562752534797174315216217241882185244165488004080773817597733532307585719421799819808736682671513810380366760654405056209673880288291419244203167909181457972538191205240015865506868323148875217593912237913242881218669284362737950928764675545716193163144110667736490275115198277068682867001146532144764741326782214146182120843393032053605213254534917888309695702556717214375372271661844581036179490410520841688207578054739172969405389163433717583871346300831151196883115055745087463440166748922250305423807510224665363072536868921324972871701283170037948013229662248647424200733695348207091488690220915453194209419780125048018351910199483837993446966264901555339186724766482921136915133457798156143037916535639193315006753089496057922941114443821918796342786366283039965948828722187694555537020735077321249289265965466609393644780536328159949021322767622250476862205032824605585185723419859440270076927810798002083696634689866630824306900989037649002979979002488611147541796337404610193403711621990986662786158331283430389857070141910254333368011794899724052728789886674704225791712067879461930207088742560228758691577018068742505481277514847995516869691778588538839307621001079501358720800592574912313365408341926449101092123518556922604467192869618392622994276177999529273395660813610833498474200978983345594205011729759433382893020684224940465093705478484074603290824329479352031853290816025488628406320865499969643891847522419981333114076746557953415378227867384966688675475735429048669047335579058883336682739508417785305212011401187420371666461045547829527993171504044887175260495116816329377869051925268159579039310843930660960976088381435816603250887373459125890480715780362314075275843155139699482382497882882714872514346040686882220134092406687585246912064990728273573328117774778007701061270661324459090058914636281481195140737024904635012828574524199117455498699233962750171873570922311031785369947899435370791199023542046095174933506268217468631079060824606534793293546689215480766508291851233485648454887149207496205053297254712805163959250530165222063098499807868642506362882404839823501275277915054794516227118358583024264926471088105437193544874975075913042422846571176853487539418749476847526579227888282232235898664650953863842276787427454449055343858207383357871448892367980336265963423284784695706831760402520803239793695038735170140618428176161668973135234931340669228860086509808972097625345590718172183171127040831079872010152777038754774652346815288563652710429718561110019965149214611361492447517931464814296245606685600890190229575584428549658362123772586234936700531329823049625541390432775920419329984969785416763902923017090922648594306383932282796699719701747079132209946705948719358806820501954219018795586192936073045904444552972724554147094458962097314984336337398453612377450457220573696958131974219006365876260975231252988164109297891362153572156277648206172533150409513263463420868111240220039110014062057286377500765865249574684532762271166750440175002482275188302363097200974376872200300038517383355081584644350810089069459465473191534337870991639261202489199182633246285349664563618192126136183732234782318090684973775115036333725954977547301225634010950865328360446197286720068472150535614443002321814293975251198105999294276671879070731866769402858547644262412042653946691698053103063920817234662717092094628250868992136198696995856975678512807003812713105580058240465586009308475659051955595343762359663833396505799619670101670602763401591118806396362833615497153999523363541187938930881014298779191330994415320697179262311014946394068497908210191858979822572756924381939085118963521020733822413037336798439542359435295571999046333706223294956393983828516605060933578106390741510255945778437096383636517921910265014899741012132845679338504453485657183043241872218957915281408154830526538255981348529075725862308360884844099196563470720084873845078792680732035610778983010278754984808586291949920132688491852086217310906646650760051748510331197659725608506657840683513331169936966445993241110097392727257687846621514158617716798290355082043322884048741780818004579777377017234641942527917027690323738290384320299266612858541558534790042200551216486408440516286933227992746322475974639228969116523426690860436443137357682145699000976283289272832802787320831494251913937188191446497771262746173803734158407218813771357454224245307417347730344788255996073473936643121256701058798024001678797571465392225322251844771379206019960486139386317515505895534951062451085589463668062628439280738589253403085149452320590333507678769782403396483629313691376406862660684331348315748965771181266122702140229402364558686629643257853210429318605348029794464754018350529308771689089111761250646434801914383231730963834880914921776471963663254196162706101077442553159664655170997140371789518565488760721761651254431923332671731878526956554546353367792120866039964146679877714208955357430492004458878424201813938119376387536518946346951523737365282441013899988343028554123817803792947009122252106715442370024261901051398641438401400010585116869034180547107002235338671985659071069229795354533350653128302901545376416174018744581013584756992852861422672515204635282902962855218684591885923623909229948765865401362603804619260623114735365958089503270347120817018007679234997294762294289552528743980561963386606407891128324432700446098927754629687809529361129141036758778276719259873118519827785512958822297605406004615929591778513379330809123638182929921969230502756255188806754298129637458875540696015891883357459413062054279513399133189837243878897790750988737718055008380281369898255926542694712105862859757149800523280032168310810905808403919365892122113618329499592584233905434281520795273206935295930459163306928976524825388482991198732448834288004238540697044805310461220320103609197174636762434055486189485746533260098505473614695510508337816202071145172829031422568332541130155208743444993311826526042544294097664351804406440287554330688844283336735806245100459688409140394690220231066024109979842250773240473005471897891275643899388520950652722682224610208506512986456776014228186553788903065958747973117207506198552724326480762533205418801778148392979884262633613042227879127114608206068234939158387135804820749936736049127288712528929161180142546172029275726212427741970502173626835369796300746081674058722242844504314370009678595011721007929326220603152821395904751473819581420147718042136927883134139259696600855475371724511431953739298067353062251185431553650088639566750577198855034056838703745586725050266357778979130815271261375578415020517587165285445721108907927650496747346192807159609514774767109822976330866632699816861601959595474274359304361761420142991907967641123798140830441878175361392343180987219909442381594037159924255732062388308615338229031706026865733808029182298967154117747493051034148670178871621615362585481206712626761296457925584602267576110166326715520453423102701105457758315676841603380469001857052045192277136145633050905027530252941962304568635918499488404444813464085409646134651984280162179072282398652208496999004291856869890952144396993194442015180521253261110592620651868374926821537519958263391373998699916784061768573145454162036078908349838278317341978006055783992050363712956198937310631554511396118766397602777120862046626791388118406823428266736985046370841744417084625286129629797837364631983953023982006635844508361278303405294304404236054751241995824395673895388775743358852639399551526559237518079035744741685331085102839543118470817178725455128292771300349814522681312022633786668976262864008972808146553741085712426383425505991584502294012271717106977740370918673364867679468810551600202581089629129118643877898519088556747399666442408492735906838561152058231023239420464331718407177857563129483628248436998723774013039936126542913020038537052781789792406870186444238050725285606844826655910177706914327724454700175541275416261174535822542185518123975679741690997300302069345582816790879156339480022674817285928029328447459015418352797953992392212725639822547057745137727123458909477901662188335540222164845427073904327314471208152303352748804719475675169361645121226069134621263669412921869524097770225851114124009602125651524528514397968034535146682532212190763773588711199476522326084294765567722883661641623326317165461695982290593233314739263734683366131254697964205187545194126382873765412064900362796883406567208109121528376466149857498286830523429208923595518678104977753551075327045018950472173222898731956415169755965289907920459966106306351136830356594278498767255972066305041275244307532583727503656488563329120947034963598218282680028343233476994592975938232462823525847370205427726283562234669582710830418819452584881941397836625672639910415185833120902400175866823161638423674947091291392148016550098386154356205857752784619284255557505676136067113335732014061890926723655530699689467572780847824006560401238436488430379204122152509178652173417200020259109730767337916512021499404177230344627471570503339477010892237014529806773446254183715966920721615315535389717346501525538966657470692173795321162638349531984281852451783164097778251665120521002296661366550319200762860968463563984354802889992440598072876262668250819096753613373684886678510711842041047181061953119771499713333825139302511100375933772851260269766303055941870212752337446709127058313777146224639738816345091861172556313386320681920468779414583037390208776274337743384006094891639776818869688109197248946767788610718644887832493267569722808835895060203900058533186404555498071375135768842768949307048873796459200427679741050103536065890512801997022233748986096185529595097721307439904263606571571628221838619333467737091813554327872440165605418871712291397566768306883585367063217650294385842859776156797346712129452181349580386686697233647610737670367855017550035435801126998723972498656544606648619776646656792542698435469735901616139942303002417233370939460905910921479623922623341749593757152983520929431653295506749294479466336978277272858297149641547648259891866969965139993013552549215776817162704145301256787072125418502735752006787801719446146627400541380068961700353051364030275455019091350357982414230525338035271353738849290276349776895685980739993038030101460083445917485780521436675133488887624101649640436309630363604266959799193287883622018663421678263116647746771197375467626044870657199990259776723389841012103429703933482936807530181010363486961010817849992266338006973033172724056740043252848688883459205416456477215684487691655980248431295038964239740320588774219908047520204063299448837392932108456808286176683959584022469587572645914694985758255928350961728862305975682473550636756809155049488264922156333285147170546730232656141309465067516856987898568509962177327651649541762829018469954347279865420408756401082398324753300035098829592639501389850823932383055399458389474281547681649647780289530892150191453634239954600392944244337463769059883862038797283625998586147293000923144343337947078285268019617110494812324077858403644894029048065010122663545348377807742241904727502469412456015241271281312321631595238099830290106742432265314353084581989857246266970132087443296121157567649590497184541439039443162062790628978592342664415874872967497001979982072083876351243665661713778625839929923784141329936831401253466669670550028895970426202641783566087338449517690768274520119417552624706973150785549533077142319218406238498308750426249672955651834289298673435441018826972567568480844789237851541057745827996323107502622644277028716506839032449892284632220645957913280171892042086882024720758670492505080002034168957019667646053017375152415238810773584650708020301322099656864803645043151521164680207028360346244341770333427076744046357128133590598547652649395850810714548582340912887671772306453669140913033647131919941147523907507229181804544992313969899912795319874029940852895395921553354398770134894325604891134234119816524819353702264527759913248802164782778484774161332624179596430233647895518171333874241083780004964091944681322170824301288755823157234507910141462789357255383166064202548767947205101389667573872378483555921571913057252178022655163375488332464287334126362045297892408409822478151190858106737466759318015016776344337239707767136491955616222630545148951232387560818242701408453012690903822696868508992761778120737327159662285452150312962905784011386299864799634426030314129135784135235410664258589326702376580972888677423113587258093309229822570350573278855251426895712337779394400966649268695251052574546030633595717155749219088969022787044997425380447060161476025920684425245345617738080920323281414348938018493045252311414083422812438955312232703763639736901808986499421950909631966029624206194241501650433832966865773973394008049920764093252870975182453235412835773960551902424361189291722284245056258792733574560206979733758712131093114464257510184108032613470242883148774591669791655433776705969391808614722210818003149520852859929060658688874249756993166924712655145787429474089354325763497606939939006629750095301037985619825321582874668291375626782911970999236356627253423251670422621541740728450054668426179173840207406461383388591226728000514624520757741970819957477021779515528649656791172026495763212086775473226067699047451393705749596806797757616556137096753577274757412397498762941904026848876473692126600133028222734740558842501871565560186019636319506774554675300016551580826478787104896539316205521217834890336461006122619981069857337084953950763983078953943117272332538431818000522206397586344000069904651290635807644889675527703957664736673791163638089522133805320995755849948998666424401068603297017592426398913693146678651430440598314050379930873060692467402437955163320855835410165399250159057430322204713584268296510827168092910264256859542239465851680966843055839515958198207444877205729692363515801805802818105760929987584365720586317404403183748891434836706725495509018572422928237621724282377457975804710833769122375451738278262135937108130409331936635909574634931787676480678130636235912255201536340585541943194401653358053713100689090918709819693547326999166337600385268958243137953644527135050970143647998686308773690878598160612355846287242611322106764424650652815402716961553393609597682831946468891009328030448054612168147382180286826689774305654896029041579553710784426037833112447712816143267437808591161291491681451435202647705401786865330359324834698971433381953258895572366573937304969483048534779493668523256985486996759186660571126711064010287726108859017205310870530470672087690397071905439390279931528609811251354409276218215721962717858168991639768838304324153062267990402862662556829591351689113385280771342127415420703991498688453228534413233878318581672505803489593652819989337190305564426680747307778757545748905470802619875357627992771482130749526044811911941505432085216519117629948764791357936646483727973883906572920878462588450996650314715877084462262199964684928267034715960727316682266719692102546103294087919854365823095958329106706119663928412786272273566685565774277494991949486232106145742373282317474268435288878125506444248155834665676202090798273494457963591056784361133409729555857462237396884384406996467342723976573586424322414503147860346523011764443888825701731654052181229658706321596596629158729567206753570298090463888963306153946967371831386177720825752469613997732350725201480098102899671793024315381362920404573187807531451013440402383082958830618575720988869465133815834133331600767948347731746768287761874612386870878847425958791389198704971920872600009221313606948390699704760725443521489911675344043935005753103717647483225268232257846965965386852950684774460397339609680700116233664746133936247644506227080639017444504235858359881384112134792246349203499243412265982024437385677234725366305262707342769959305624679778385667668161977215818426626492307403810355832527072369471056335063834204177984168906618557103582225159529610000342763881098488953156385017834028276960407414346340554049204799732704694700120690468885794874385621081392321110598916436337622535230443960195036137311906244232817614216230811070011129528720500400099197528880713079810762956292344824366619254057051292806123612686098589658865931172218427130137043031112462264285903868316191308900383015974497524738796843608279480243451169825189042320670550993384144970188710302380436289857673968657551905883850690336089411137874386432630626343664389009668623010394679749200013779802578816013319002926243016819266262990267663204072365548986801383612458624198072977765932924232032884385511559607904474525119131740209645328160921738789846208420773799425233424658865242201354209730271593505699682958237371804757372682678835004821667877168566518141096129737040781831414779435866031636677362751994650067101733748747741163833490529616854433430707009981324768848131940935536574762619517709690756916629361371884352018891594709765178967540254535271295738589627540734398300688012008334110188775025191383691873415493080018786227464642809466711915815959160786883489055147646237341060858081463707555562337820615046265158989315809449470115910659377136750163834896404240568614199604632351813039880849544619665878651580627321490531752573520926437891140169461849034313984327421176277997108849094447308706656628242509871900070919235869331660435226821333354094857934323454213141445501550969508424386347569304001246253390511980361659755334170376520885529291321569450930523383741785854955806237408197551978574295800684967616552926969781662511485830822800199060486231878984231378229763690330584517882150198906513158357771611961086222981851062604273012150826691009892910820542181337170875387197458824001308603424633322794289264928424938112990260982395165949240382290182499555335863479641829107329371716298260625786741817739682557078076916692661295034213830559303002056147251218500544812844559685825531374111541759042814647608711185154793408313041496790970824933340983771461047592149171131764371507771988786737739898887750443386740881061024122342039609359766392923977883262178061248562566393402667798379358026786195858148015721560993245600382861015830273456750897516426735937999409450555783729425124589646850657377960028730552789602598779674562825438917828236307697290126820484345111215920495965727992877458811705192785199783160156284505030628200271702449322431381163986665651356711999761471539026806786002931707712085204073452342828977925748149221608541623639474681358584697217786021968681301543795950135913214075410664143933041590914866843003829140067038543353178437196407863830649591054371984878244076183959014086132084002542940463218345954327269576711594999554765519190649015447039637528144631301303518659514454922515626879812614411661378717605027014110885452442346292012764353131537826052963064853434072660330763649650100291856511615810355083221244211929571837410980808668229782257309406676998925238811391114594575197821562541446240146908078210267022895779698299782192981220394982820919615512785821674383048958585349626187335313593259554650463768227753537230620533370137494084140811848326049056793439843409493805392355594076965928907755474034273083182721581747656558390249611854151489665230262398345216512454151776604696717653997278824556065556671167152529172952496700665912595580245224862646051066421551122989190166000361825346847994653649280141600843049256574347086801437473594527346362108896243625863495506131782954456031290858703319542938024573056826410128283032003724483299208143884225456755840700577552847228567160227869165956443911178641695585788651424279038315484512990036918429706323545835195685052959140970360784946007525424320026149005950944385410994613836857934584596165886067946790353868189143464309443062832216331785824792342008646078324293271683966978079610772729153045901564091946328601545380590399077791688779917637149861209395566136527218469582402361838113398550271862602105444417920368990835423144728240919480718842697029625202456020458137757481876222144407897236062833797594408481848138220750396521694146648608192186921581522860297180964303358238643543439406935674355736765679128230908839034354125991778027039322230226670296864102389774368323213349883276202561432965739310344748333648567279293180777757738289708837833310378418029933596941511120141119211373597485911957655408841902119074837125879512586355079384021692322815159648323688494436732512645170731268791221104731259757957861872491883115330365830770424037088546211034723455048691895044793058519569795625244422319276883776881667231884522213034531027471573589132245005225368815717808070653078048691453144960881712001492610826259718334022361749069261495432444127376456182972955919994551993609523025249128629819808991355748910172798292056487757885781333465961487547197734819700034276687829381066318261542676785717130804420631413964645160653284705672582001452892043826423940634067492560877271842754947114579867382961289190945830531680383601121571689864829367754943163730225262484118120290251740855321733261101765695448524916250608526688563085585916645107333352194935450462539033119599489534342974085164553984289837652253023622013192448730365000565950681745386277025322420389307122699253959085342144637013726481717994059391106301247977451649199856568233313967565304188162862172813865224704527992444013340918053274597160830364570111237455032845994792833811001526576249465397020725090262907213299492795222115038237295508203007917443943055311961813094566858448911128790586315452138133412647281824513084789526030511056305107898442392491919998070597699558306493949678246798061086180049860187779619323649805322174966947696676507497501056179353511338695245334235607536769405312245192210016881081962208033881897288435106292215641786464913073494834997479312781015211632466434136586005309189701501809352288769801274882087005980632320390971881811740149386252971627231202372005306699173999680323637571823325539816043824085415933419053745264215534629342817427442556739847607643827126846303125009492505651881323006062861559713360228896622841998658185586348819830542920151099301158111071764519098259784711613630607460741851828369397584072993050525113356825556563514369192275985355525271414343712534978100792589792049877671398108757219468779418599484336615555391154963796939558944799187243200720221846129783562499690302317777289131187734665900305621625166142046692353187060298260016297570155273186547980071107634373894479662978093342791035565916809494876959107015366491333494272712217002198341581200591204898879598005579580820114709451209834034985538623999267287935909815720838072099848112903270668531797034888719050491634482543310961880495606419510388365920451091048281285108311730379443942247397784711991432951113419852291149900195546315963285241548734761994070110821065441932254456678988785606579220319455297999588818450421317874376431414554687159152935501358112735883492318737487932467846054977951732565026704774542044509545826686873715215128447151432700889790960484797991262735840376067912115200976644747632359064890410026682199209108726155781101291919180330079700018602377755228205037841338837594750160550405149109117691071738934863951258168256378147500976310291833694158554216166980589443457643007285597635546889684866186962132512708604648969331506408053206147786880719747291806227958449287467591656598722542259326764106450033765105782772415688355283619452095098538873845687043567325916328456007135977447908926081779334768370208831891513147427014490944684009026200411908360175552391449310593049785649676041866463070001772475208330523982909899733488078671751679179060428261033741002683587026010190079534553341031443245872842759005310625563347684366460952422806795837861760593444498101794658743987600717036524961898255004572338907517662943024587795297442273588925070038991117926564829611501585904521452555189461933917387395834948693692168867857772689969816394060705597632014615571246425220323339845747408550325912124891946292101463333996801959763867479432253006065000455820596636597196210929987325136610284704107842434950172299423445321603234972013521963342379234020234605012031866934781982431757778570103823934216293037320882594622869174152478976367344567453132860604603184461568903545907414266124281070452791101257749408042762650373728128336479521553896108544683399916445012021489863252754559136501007292098867062264209799519264214999973279205342921775399112368334708816711929621626832807280633812224512424892294698827112998612785582948508152307225195365358491368881830108440531515286130988327330220989554788147434699923513059887200182883261248930218680105893555943341713478429549409248751394296514419034552093600238968003145144155880167536616197462215878366488685341570428917983710751801359289824316756428664844318726836796128642583982002925258748518305638464124024144996586860995696851834942396979997850767250125123348677780756490397156915803976976218826900883542162718423422958366607920319121384866282500402623589041620362636274889313948875995437876873830138569716791943135651620796821271767688044837752589462966830076888507952860043293771737127655148413588174104302837269335597921849432811344102631162138839446642354599774078589444931254617941793725173650299549540775426131373753695161703421360569199542358999587762904957994619718999301039923220130756109224342098131363507975098953313250875390419726294664760628867750759392008821033157881554965653960165363807359571933888820592644234725866175438988392471992630938755299683388327838985709561893158721784038036748851269773690468746651565672625468136896908981916224270262524694238872933194244027205791641194253158504024553481404308159233396795807891639094070899223145940561052957915311585777565294783567558683866144283239104490483194313656570202777773742334362537377647641603725511157039928690809431799132205194653139102369190100401102317338178861832841255577047209294495582124292796596356780758399437604213144183281682188217205879476346634849113875511230344766718291981190482220303193980778601965060524652962780625000029539951554961043453575981350773535980267258128010673917347858108722486478903360639752053230491880628379907823832425075274958117638550392492095329076555462986101975778989509086956004384518227190558366442485504215320070522922821419015488720112621537629259347178930982076801200442933320793333251934145681738535263772000695941851704124082297831876640094603953158660144305170284278673858596105995055413526707306668410655671298870048669240249190198442771924030153179594773763480735159735093351985320952950102130846018337282138398721303301503061787955210424046164613234103286992418441803913931727505884227375403129519834463265898238791224218303006756273012667147761261342865651855799561087667265570206242802866969477730873929491315867364379357037249802833801451691956532092490818050294590759252219373944892767483616697236660556063079849489256048027334519918842326937999055575473876077019692067669645646563060474777057149236237718767901619592056752917015861057855932457739431232345712049854750189989170866824191908667782544993037239323329008784478149713882684646083018355222754284772943991561124318876957681460452481041677967375635378903155876602981153508422684018688258634158978844569202160652616163699083646743369980216932283867449988648183878021475608694503005469541821397856915463377144610023703304912500245185049100572196107679090867941689616691314834202465936678908411348247766347308791285462567624904561940601678093747692836650922935677689222340802196013672837239857952540492884238131287083991882160808100689927562041668875253818427626962455573991546353749809017328753788074559239461202828156941356686244025352841126131230426597037261791418644261471038303300235821027474100427854005952529060944098285046006335483240700855004938027614814509153346065382022094766124085610330332429329916315402847104494640681329631978187616719628065383983459162076926684254397657276961843400742768284253291697263850761778326273426700825108374775124609936462898415371164984243940386201925419620119881199503430450952316053149090677218423821537831134065660848985302424754261880521848996666163142345002499126884777446265196080184068036005864511900718022917308212172564486379064190498472988670250157119319672955521213601773463595452346413590553365271525256040893069289445121985519200697852005829509946802473955562189233910611185111003469271466248127824847608274802085650639182180126955277841158259983511444175253847901256964319195411668783633221499390950521378001657190484300281360290945855980381127718229421828513816231364618078666038786051157530511153125630626521431905587867227656415986481106324658858989733689636082005634598175192600732599587557254395903392781889554895347684481139234817540258658291613264768468316539061992358804924045551318416308283517250306005179254557801877294799262631175137007678783407473435297023584452411601595633106309423755548350860345434899686127754458216138858316597159524585974678301138091438245114892899551937596146426912131312088829112061503664629761617357943838520338660767731027864372457267119883489629896561622114348887768069893921518070695411573769066203995415345296506352391596139757996663645552315266910558537015522024273126046880103133282369712818175654893531527100588544589567758787949460761288777715767702776708869528396488792491391016016176196851521098170033559874400188247742701255031644775639120688705546086620609472453746888179850033356963474211886388197354369383618169070213262087901088340649117294829919749300767785568222090424701715460034068167845921222874248255303670390929208100630488098845567978513690938461549346723690947373893467651662099566568202604060832930616550641286208299047487866376252088926724694379408727409914622097639419400480213948355773909089625889323135618840745405470580738479852260360806451138478609457424863399777060609048369103372955180540262543801810928141193823969349759248758536220725535708313402683947330427631829163186131621849916045827203218713766539495949126205813552172164866367496674068451345840302745647018188089875367027660923841955076071625180374156932310021894518420833362690682295136873139300906136379881845203816467037254924478497095927014646143575231126014377769583733485110349491793197583140188022744976178807275000156434986573789041215178926117493768917484469555538838396077853767579583403419869873798184992644386243251606888038800539742412692871009732928545631909933445173595785865728291338136966504177521168317331776349673700185536786301876329587188854104403051616241220326691447868303483977658943899943302602126509310190193310050090811117032331522091585051963211250634566974434020992192776251210948130838806483827705018241305502757392569164969013125979767611842996987422387168160716963536721114653079414817300247346065981052218127001528144860706138916107010419890532767037332464420971250199040605320501076380650549122850315019807726074368857738860779092715238026838819285770092129998354296185668590498210607043521065904643776346068781556596254219729177896763113972498673244410766894336670320171777946662823368294177927421472705896985441018674754668974225663083416591910613164974387300386313255123987700441213990198921348119413655785783986071361714081632255757731487100531970220064826904546360053061077040116361834198452273262396322248090036209100374099915026308745343765136888835812571007984655602125259974910742486971712686443600719124444298618156201616429119296644153170834591893129277021009735496122012411309706497198876962081762865911000311404825466206980319048398768309208709858698356719272626214183998744810126209835358941099135003954212352916721888607723933068341439412651742139120576178333520386672739472943119621581226311249492231675569204872855816187196230321779483449791040129433551523689669973555775444287711002990428073208999275833379347291602179008496056662451104400649924991664053936214815504779823222392500222265925108037101824518438027927055822747386359603164621930500944757756795443956459013617679039910946196751717254663531807392022082611227673757189312865407027350770234636011807993576708722943834575482150037312971214698051369148842769774265382906658605687303031997810163875721134744904866805998506386397043456678185754597289109229420235171108729553121536430991476199558219993779406428292660545649686573033692097575490924765434985230256575934091904645572876908619700979553698808163277987055183374330205689117216853125143879831149338397010498355644002505826800923277170446361466063320630852133740077504653642981575163877024276875665415133901692306855835308070960315307603526376501582177520559936395046073597336159325733693006062828251803010229466420482368947357008711965450457910957204504654933814628631304932927914427745630748220002073588117028035278402072351383899416241931990948426510224476442894936303756518136068908698862812870354894623835703192634181143633314424569328946681963645414285051905331867179441443741306191838370508765319457759355458100820659894068457002857612400102486547339445162844481308724723670371533493381253471051765627722865133789658585680313161679164183259764632416971608177908893933765029494671651859937633864406049302693818907955108039022336754055740224069758382845452600259000996124517303199025349214779282355328718585392681453188804583344406521928791792778539650743040387960937886782879767363264296070582391578172799933493974404954652449212299375153510977332396473688433917424220261066178389272189183426748716736965956964118946770316261049110538021289665243942479972040202094783709468899289275131248941191973302421285121763272130131315094301535370749927960254472968007014946050943181090382823634596465290093844900661405080429115097505125965697054945099646418781482715595971822942084216956970184847031153212397939395541724439463361652498188556170666962939191484951591031573346465515109420789129971024380473179536921413698028887011841082407268760873708529820197136763886495079722626708634548930075061883009828887212773821914955088691694145143084159385001372278256567684733845592723703361872595019813254839323146207565487833112736948302306372835367346847837618565100821883280098804679083655823651849139516718627760496309043444185247720362955035465886701098069987076051070183238796359998446695039054861565790685800632865696310313360063013741040606702416181561637787870232511421997821762684948134906988287485839741411036842495286899885196260263288536869505948332018372533246450436920053840184533124033429979197155864782862890278205563331226633364285687951359647011014215781399340149419193915925925974135694531230003610918429711199110168144528656514761600133029525776933328766387083379539304927991697492805848819275952593123052488503121902301221665302477932682606254315877856832403855240342816962220888421937233671376478544103098063301655959263019170237212871232849437533546012247523028265565526901749284214838711375552072792712259232045466671296635217460666925236878046370211002636952602310286865968385528888410093644274749952556812256190867963034361956039424849049040860572316328814590565221229069334187701978587610856532453011244298946144900067352173718046865920459675308202401358346219825200566310453806978344516640881127230008629456795963461180122307512850553143140846058228851786811014539479750312164563478775456730818801614350678996233409293286088029385849245074983604290016328939748961198901562205012295095516287467853293495254518292597647149767980115118797309572951609318787188711613202270975560576884140157736352327453176508194445303563821952954005436032268643089617882678737156903709580382799009435076151127340794061694086581021804466839472337286395049501678416021820316786848459113363039287053232408405821582734574993760918139981514657306501175555316812214414337216518733666689840797524428336675636083175506308362777780955770179251054210801340565622859509369811179244460404426098187720425951874669575388719966482941584535360307274610363538533570769225132238089893102331361616602917950608403833870515928867026075283060047086824586184462097495843138003706206914308460406363512631523687393973379619279442314009483831605117285940795726093094681257483729936302875153886119339310269562497712284070302192412105070036133908135605493205581379260925310633437227534657499090460552414691232345858825586515990654215576174523597242365850474406351051480472855543409179417067850674356623459707846800843890515784201982673370826430199236996332715455196486619309994774375700828574875226235020977828209751328129925661545110170616010191488847458321196130723752876737828263025434529892027293581907356572513282033374339074293165783382432021263065250784485987702410232721250036160907155071068508147272102069385817132753674411453501039108746605842068451271573732483831593641482083233246507843378196583456303360390536784384327565343697317224863049259599241659788140436036705097208039698545370680166410184705582650719599916050194960773574612447738093534783057432452482848716231532729857013095036917032073580676629371670003490422859283581541411414667838929185574527023970775020968312737836945502305502796777990702942989288956486195930995851164639856049501721451136459104000028483255635283732654126820736331844514204876511711408929357145756668550228016690190145778180024653150910334374228165634402074463843173522056230702805803410112625342234684610497651750291628302047304497294197720301325989710612250611719063587587706341278941300233491281433368842765678277636508557829283591281170464485440679031028361521044796062285923824079017524562320635474617884574969125142671691639284085186537974223474690789455458099887086402325252554648521105738052914166925395215301478679554230166433344030959518071182512706543881606561093660348351612073646567550706675327264630438153432007091497292694729196123459648349787159650336481123517065566990728996270229163919945768748608259355589029688567577157580547621679058737257130970683126755562818583814735262324099770039060334492318130150637204178327963376035717456265779315194378105882373860191435138605386578284416372815890466110172846410382168183581241909629561334222710536312675283518183444111583533780589566756358017905941808951086380426179557880330204844480529732283142297692768724880190368196020735703952211398024122118776490378153501416778323960373929828280356030699884772164285166352781499828913935150478591951203375079409357637947860756075648562698963341411076600363070341456013739993924098720929687496767985491545080805763137929424053364967985512735400871078615538882961307259272768106867029007140626317258122629718160690259118753714851228989710846200284207078385443966230576719591972774610000923792021375511645656504369648459091666441111447694665250828633104632445512978863684565294184426946879571588910470937283002025717928252154235644610245636349495059284853282760409153671136630943884484951444763605952941558719278390286082979529228101739536496846832779997428061350204508819964930516285825655148682358356916639669459575069149354136027418077517445289751140226478932681210034539004634488910054246227433540964663975085708673134611353132019955070748421284269346838706923695842486153921306243799534557781364490933136832606322061570802911998433588783028128310974597691343518571473012057391823865547060646254121825516926736769411508530329609464777181134341592988455837744913136455491819352663218981115048955268311328766854191380065135800532096155702061318753179832425726108088561535616408651114429101971055183811998105708779930881509842278352165306282834126870336526439455422313435428344082352121247942001559809336475375079793161422628739141315276339102417489559498119480450479072345808690637993452813130981511371655750608512651136540393511841387456281440736675605713979609315440285956083665735985231347992802607667191161312813574509911208247672606970733113328415008981923965046214598546645509379002870533699265584880407653839678437672017494101286586561967299526665173837076419464049243061393501883199413794035347264114648608505742647734291889236916017274631304831714836510125438911788950300273197619885993218923103242764005464963035750535590324253070456273360625072290719198840379423899883526325221213124592786270156918930136517590306018451424555324983788058746845709016274330599626514877299291878309764907438016553055176524642875021665887582601130534063474644534091363536511390599183753032583589372401125373675652790453035381808109664412478633132441731862976289709380883554184716015495875773789982390733254517904050588871949777450302887397904915774205550720431835193504749038469188716081442347926960979958944549212218495518598169147262643023379858964160604584258484530688459211645972414439739528584102903625372410454581152280344557343353425743139326085403786504038795486439708451474644338016698071444765765747202356304827858395302714477106215505233283696863564508046497875549273837711523122541519425293283537678276380318969159542422910438195022601417279458905901401464982986064509532865202146422255670056642028425492726640693834547035142123666722152068692148320707646944734738548463422345940981610627295441502562434616792697240641215391102455527958566766208240213115662773883137891452608513658176448886445073141602662709351225018243276434894615031869600305660528658564762908739898187886968974098148751020011463674092568301904931838167324873087800924683544764367319512780328679808440602228551642199335950839340884031390346727083292448848978068615276824852818166141661291727832229337178962744819021374453340918643005408666839066401333720552290487850416534403614452294921294167932266508664913051592423397801961560317859790874533222520496725447418519804278797439392405501525201044710253237000984162101409511645824532030861554555909334661843228981641853268380096795370174461540862267479842939470255263962525300378278167456592183435752569415239828914647747315704763203675637191915457069256761209531362902461567264631852333631727780150818645437178833273103226281149114224447171367015022699620461673523115855588521231557063976990302398098336740780048131132844060523595552782908436881200720672327856549399853400234110754217409504908004595668377312320983402078860496158350799416280263339708251106547763255961932911282223497878970405641663014676561281690439269003976353901132140678867963245610385160218850302447596331016807786091127239330391994146028131014293509088864634029486083747923961558222443561526282456706394960338449417041291641969208693756600114746542697850453494352970104960911894939579621396929559511684743401723914998418411121500893407247056559553130357985212166676182397677948761678140491261815527337602526682576828951029972323257361512855392505143057274111318650060853959865454819791652041887080198037771295501724335777554551854766208977459320860219868319019114059621130022715322615173608733427351290244397000786703316219787095116806291246664481451828965292580514850866615715623166698215370125788075527174834612492830292905557796205699410379994573289618119288443852188654391484144766702254700623309198066908603211309149764679421390135307830211755515668241861234743449738152224731127398677381606980630120690648532623768350363395846207334444723630223502701479079547129761494637722943476707291887452238803211890768389298637340604014066550033191652330863810532297422953226772877999309325272693891370842647618389644148486345566615773661065473145224340411305916402813726228070987738202053221068299979909178299882877016724274476180372024885081989241027214149456620142132012827282830870679675166894302323478137827850644696003099917659485454657876978134560717332509008862942409026177736009732951039933030480968710068673325459432029014796336981356394175144555280593237019231610567321388457619221164774320912069041296154668499368352674495761618236816987905920434601891916947759016515207909452336759446303294461219590918006729276092540748881711974865201438623581128213348559021469031871579232915187788819429919015025855522392587978901777010038309935148907848753959337534899983642174499066691053390673414949754086672111550204891521341953342591023016462420323335323320310744498924105358684621354440327600873590392338782540029289464095539726279326295031813524568086476923984081254666100091810561705555109553703237214239331615649843069292260641829849648872176705950054344033213594930490558261840726315099076772151033462313226301991272519766774193590507371789253463417269092223243091286361290731166677398071033073965573355063136962165305744212096252152389641889155781017890118627759920384689823548533035288071784560865178346808299878334852545902753263428388509039780752573451479249435842928100206682154453907569963416258901693775896305056630501958509354254992367201508710326970762375454307784672280355528884460855626042395627441370281016102586523182181544136135103382339456515933485300465475344596634782919786522725464387458466053131104914377694622692452941575918011527912029322815455071890900155593318612925666791119311121487602466070586172425753417515568060864335497743666672433673179173741340044859847717572754511920750394119766591830628262455000762280386868169430124003966034248050516212666050565312683997868412199267456124007218243717777107917696498211834460967298846942274244606623488688508218441157591549369942165314467236821499975548981900597025632169081489739119258377376414498525433750728333453270744860395195752668306366844389735181672989428839639015559586243527884019051281148891923643541212544505492864789665522831693013793224747545539899787107268916990613888003936046885856642785594929552736464721793437852497612385669456631431902802528600321615285113423472943486801981766743706028762795010361348317055155247775730864436528257592948754399426289770162167046588100614795818599596991925906427370775401460738564834732275334019986238728290196477060949385404750996210556599221837624244437642233827661437771065907492860971213741121902635164442980757440369499821858208898646246986366336488284688575672277236564496156230392683732966296153965073895003888024454691941775817823801572628402275200390892792299577561236929948328429767843570921980991838529308587927104354383501654641870912337060337124578345969646645899780107996055107623280358583448307923557123778346450813388234228073857935316208413704591135846256549037905145599738870562813687754207524604031470549052786853603886264600481923818598887919948155336200942329157620492124864001120789454266020540453595229318609110954577973996407496291269006180600979320833495897025061541961314368379841323285308553498438978662708043248736008171755598482794442528781016202200823587178993240457046962989564294253906224775227260094959888750255955509360346815764606578802874810896528700687946687233387544022270576228453378097901398148584002604150694769262310955892726859211959932852055173323726021037584720776713861017125422230051574936816842815542629489729076135905439959612779880733816082951859836194966315133768682793597488691189991431077666008033433911412766411405717773551390227802872597556007627508856867912635019855666221500657871704028015239817964872879580186850677054264893300869152442438656773097490386634198899431987819665950707859834803803270252242804561985675285600265593370515844752267667424760639129364949761870938760796259413348612220425418005991210491958322283267122837104427549626084322534451529163648858070001958809987749767259529023928864585675079131550547461427192063296912046373215046876635348076377718151687274104564331128129537833405808732315963111584210762949131706912049652906251407331302764070286742408507418209656293399698753887002939265522514400832802893016958442556279391444331232514969179937919608799283434169421498415147798000851195777597443221438047214497981563796270692408351889440090707130557586121855449358657329289849867796728890021406199031987856199815074218547356389214470137273343619127663448829015524498121788609293096723427409519814834037228879466701270641823442212812960893353472076509821195389334642857432876625242073343699745681940050797774469614346033020843118830876625355678353063364499453014961800602070048073527123353059356634439069912716637210968291166818939140572104222821207615939643624551509678027350988411858322247055961731481123588422114488071100277835512137044336194404628412309173470986230039921829029766635312404786315929667740294048876876498216918033846556353331877152295255087350364070035326265647776119122501849669247677469916707814262914029776486053201877248438456594997973042470579467991448534138963773172305576061731839223813956118513783769696761288240555471984725737463075890182427473680254811179709050278210153572970550761822465232279133132427295190558293064620423889877300169141236405172062641751254158771059508728751677753066339026043512954445789719395038951999368647061492074973846922801671617208374091116625292569509480493700415675044414462173487435773598072066899855902909690909925766705844202178722644482583654781135229345593470592406518945987782544061162170566431177746646906023248140983737010059014820841047181387029269158552518872892553182543237076446718559819160196044349807778246887347117099805265996365171731143155408528381058470005825462831594157703482737332097032116483878181271899083723951165439677547168889324285867727743931823160725621830711867514780380429916109448634817357971504931089755832170163698329131723779189460282178811080547201372069911901190119446212751061127542339540505105893166506922384407786516159282217559779360046708793954992389577765148297190558387572963539819711180455553050347443825627635142114001670737352131509852278665704033951147795650748722980648659473406972362965844561426834489856073389219244282302357334396198153960900391880025320377342092244157767499600153350767183039739431937795084735595395948165014585074442821315533996052459032016397810482574335942638811448981450702699067008743739450075975002145430008232620111555140273197935032214605550805447469195237950775396497017884951411323290613610865585242800344777893387331493072477790597461691281116655809176300720545029400056255618925317070498110195117755744465224674846629308947888657555519625378778793362219217351887630400466773597596468156517541159549805492246109793006832588146249772660365497582373125527514335131487657494592298371711538160940775621944386913622387965995963603368855885240803329108860181673601946053808338248120580679457464306173247651527613465169361417392407097549081727656619907118225454955767652690096902654972360080440428036405743716815010497373906000863025567590279423325066851744312049951019063760448514193916647520988733984785839597885384481239368534796563405450805800008574020360070392506524077594098221655434488612010605197559800124051692338686390439106192526124953277746460744369499042858042863276810088204307939021193798913497830005833736741430981769293846263969729609950066758830961247571632218780170437069315306851073610604792154488533947499712493671865145767599079600225530428413218927418269333697272688263586340172972202453967707100052314946692440802340791292329293106770783237880247130913305190130646454691645503799011503028819457432416493347081346555556302473924481550454531215133440678497981871818925938333275242515121793014247051688554917493411878408417990674109028084685848838681592465643068182005984335524281637824012806344631403087669827162091190550519895154405261884257482104258422016154182380526349991522572052701167535581511680937147577683880245296236159401779524925069870312075910319638742156926547231482230461816341538792945057456764082646844482551465171922704035939840887334495866543092823873452708904417612533593880613461910141146059097582070597983324995467635792183952485998826841930262432069305411647447551173166910675161318799410506550078506074993805352934407921905706683457523883817977177791916965133214993306523058676230215363606387898159265621908907190714656483301769828687091774815707151875737685481770440674160021968263802422600074540671897155675322198803847655723290220079918368389499239322321609759390008783115726945784090088802203348249656636298451123073562161964442525468948090851284497005278606986570778714721486103135613228307322190218676874550426788273367535754383101052807926581618018067473269626542887216191307107151014489820354361279944301700671050238661290113501965590706767544920779972535971161864836565710345240057144384819942489563293967234847333203649005987211867655337855280198396417403531559714256709000459659671305821721636843173385374394679163497234493631294932085210142840833497581016696546620279172594478990551944772849550451954246722788852456743637266519203656430110485555854725970447885530081791982793554184463785893115409412745179776508629072730714520367971151380074039729853058181910216867634966137483550131848778280493727131418315881504796463224286135965180365265695366265553103518891008733775979797190500179739292233117816590441336611473367130761721327632437167523042980977474326741354438239524201629450595927625171924879752754354404775287933735843586724193537306411646093974475224270558609512384223951989972284875392511885737569526266088162365231575177053171300172667724351523066956233911093014358667710236411276494256750797002479754210111866744161204931288761025828461761050213475126613145613457725325904409399501099887379543357479530307850601336283896689787137907077780016458712757839198431432371778310050698084825053040706537886265366452249286876205930642509778218426546248079776994137062180386047615915436719806376673091279041073085243328223133705662509829933753890794349138949601809427739624977627005109392279211742683115272338507447607457836623746611497662159685990460795705158420211868320853088322802683733924757665068348790307086186828230622997442940736271836151320023493606599972768264467185108779549064108002222322439457813730617124895932349109378663053899957117248746767785996065709248864426074813495415451136313009609133451280639581612813839600347664437373056823284014334904831664548305402674072180145534454575863026398878617464879654203947618167638556457002160435148820436557829208518451614181876046664485488033744188075273825838100630257112063728910157804353206365206436319579592235056574410962102936096773459888750854598004448042362689831049000751686293857068178227045329230846480986005654515789755128822266801323949166414028853474059465814089839922723198867503510355534670363852396014899911984879045584770545713374524039682664644132287412353033750596771076732134128105926573839766691968129675327780305204372520675754928159844421555306222169709639428650981148912055354631751298445476675167790064536311988282165738788971020107571455682598330917667859761361991234587651074958311554481699499892488480258565022453642290236535586813153573202103368692821140120602348337291065779313837723326724452524812532911317377191097071845843928932430535563172257573091093202325652513010067347009763854209056720396060884226591016280858890682183509908508586060497745116275337290137148965783601598969702309030616760069269114722495622217813101277310612487343377652677161175147626915645885148027439932689470407163015149918892436934103459236930324111023766422640128630204561886326777891731332726013657523783626223328392821078977978564732520960175897541587872288169727417533229184509382573693044184533629341325542933018189947837618412609942869722470688566932096613707408692554138984180095646357781275799842742847083934709902094122581843332295119232111962486021936630570129794862708455015361151757577697999966476886643342357255463240299052928841243868516135543669408093688451969736120712703227692983650300831197353528673772665797386449513276976885898998190120389792914529733662665374446181243887055559152134339933981874286074076788007827277976674781194597189751803614577948764917179389425864071018417611878257947061274412407929241529498320064086844471136736616718908582500105037272561071999941568547157684620519486187717089708590712301088126843957085146184787670113854768040919724180692593084104742208819390695174747379732036237670167152590573316089125510969044345467364264366634491049271426564616387022502307292277044046073509299866680392028785548609583656347099028382698776845955006337675606824572571580368050938330540680284244172238302510214626334016965550059655322291198324107002832317909614834431452318589923040767476226263534675475218351412332501867429531971676278617605559443742575213662904379961897851711876104564499136458581772739616372003325418300331865771279492948655471418875233716337632574445822775124477390344052800730927677711122285470315397499434762662146939234339595566089811481844174861511280090154709115283416773019536667528193346541050623753157064814920942390928465644676930469296308168954568771560129129447631105851606226330716266211506910206984945757407801648047077274038720391417393331022108350991510851047743911024445537912679528126139649290129512790810766361108814469790075867935089313437201465285663155085569540735117102142517302686628792976967216674573803015229240632776805761521063342564994252985305424326014777455413608347724272497935937798543847041442395419987557540254604577820425745424762116480027748565651664728772604899735863026319568726821325582030737293343657459085297889765092376012441546575039238291224808364735663161121724282193760424097321395042918922986422507035100457904558859348074548220396461778078215007255318708611588264136387593998568313442476723430956382310308868493369702437222982767764184919537460663300686024901027887088687676052095603346362012035722898285741833356354364599967936208937399112303773900565956236709054253746229030528900970806693073988582900180381859625142989434173827418404926380725146763876236621515644089144606362782425474389038107730319473659844412773787226821846253605138404186500258086808193268680807469030170663545498763268875796710877214499501799695576219856384173305683557709655453025727870433575255564552018622399327569008554579953579358886906634908716792674815531052191040238770632340615404812107021966574679191844736574896924180728458235213912872708993575326325157090521920357936023953506640478755572580494463043537354391451315274786632502334327068243912675545407699089371110513209371094774720283855712044485019315204223322533117961015103297954471576879053040715114528706971014371704135359912825582613443082344736284257000381393338219848196155651417741738599407654557720793052033553047714365493578105338160264659340000975392819930752894510140961062520506299992651878452076334691050557742880061405987924304967084305252022378157004096877357483626146391688306675715380199268437363476903177143178136689676988366565784794100745336139004648127434663366716287853752587812602701215766760157404483550258181260114294879440157027455920828244691516929527149262665997198843769877646608335146335421146118716829718223131340483711739832779380454249680592691579689714883013874994454262327663429303162999423303680963535599219653702392988446899714471378917946197310911386029855397543659213774836644148064061487302363971395811247652730947082352825376441741238987371677658980353805409180479447868096168378849888705458380045176206739295665180492823082427128100949758680334302842556041620651983286326056858367199865575474028966665254343463956019901128692838781376398925818579903455747606918117454812439944392724816563126437858604974252559195032072663147384131434257623470931587121773285747816631198000597673354081711839278108298945033886378525040111902635928423323398731080428898532281223444682976931903264621764958357971079347396835679492906398896760248288869931065861712420320130823862159936966782559911193613647545251628164028786162453477916429177535549691939222625871092744722789948482085042172630379805218739701632291206756797194882831761949959014384024250669872619841291617607055087749450541340203825000592291031680307409018701713833207384926352904589972025373187449309543468390770835244608497998757088695795619490413184244776409883377882784816955838508253000634765244107555126598681105909274722152519701562745790076931724008378813327396249364791215670760030891290621371540714992073671886930905791336568860178003919049014014355256402119270473713444575022286724753437823567306955734842845315466138279500968055868281314407694112161618986815241584376919614924873612957940251389182191961711493516948617676198045713524862436484671196323592756455423228988953093002140212675498619485005889190477535599079700163800718298329095777415227475841022765503265224972146988853680489140677139195692917656222908936624799861829710244135763134398104983123694353743731687177885401444496720379838754411781795189173202274818102597716622864499985479183975057355509619954157941727172828768484139891378251569827690949284797344640231977075142041927182647197369018405669907410148928571852560420789572902981713607695831946838290191025191939377430302266926312116258216502820658422164872166492006490231811321156514885284918218529697204531831212536333039873865746976271620155054255679493124930613473768139248682754618701390829451495343777314486338260266359755525816823913047942022163193018097766404713941114747501774809931206214673268480329878529824908609821406052983814250442564171893258868236197986094159608091200534715480707358335067223929767418447913108353174441027913664282223418641845930335614657192804729901206200254554575287220839311010042397198164276603724572513927445393255057190430187965021988072365397215523980947087235802135280444167964702043058063721239364703683873060903723960357992555893062053187981513519307185166406103964790098536057802509985857046362315568480941606231407655306956773754844348331135677089045325292010402382727330033981743817472729552044980596891732374237687932726447870348498391867978349738072737024846469860094447652998260236209702999391514371114365957035647172943990357869235592324163782934459305309413727453683087138875019628942331065531738405937446072774200733966474060547232246932346871640322745857459902292050288566246729110514061581331505673387576779187348092830663746381358931935821910031971157266791711834638179437991244997099672797782142921324793558915799395326646160338791938026771744489444404750051530488191270453051295006207868848273068630700050928987956727189458023695406120174493193496829690553462872394660387434696559136133665376815477066499774025413955157582573110063186474536408441540389191455230040790693546201758047977557661855014407623439269086094269410787564269961223670079397053837626417473754544340288302303690336621615370910958174662146494242119107591434000394041842357654378681870779345134084009634407525861618614410474908126864784843670957556079994240007381763638022236646553270126680077106192496239453120578873731535775333283551301551234894869534608300500486227545259703481583434545219536550675536440032079400920490508508893212361715423449713692371510718973631587540461095101984116842429717960956913164379703015528152049269117587496843191395377325667339822657268076280996980160964512626327207701631523566866376134206439980873388299779313592857948390473029320179588035732122906285503871475947138825217082925715588187012331435618224968453697011504775624929436874785017867171117779504042157026392033721584730757941734742288233757511780805273943344463817301081451108810378397569919182100947231719963080390604345017479424624296961078719438129458949857500811166704720916691836727155385276814085471750416006762292900736837335360801291629482808272228007679349371731373764247060721129388002784914337761327390441657413265325590687837279049718523344116576572119835791210816967310538819248055837158111098533035367129851537553802376209931436371286542534283447459520937997692964189869446734221591571724764075777025098778329967669740100432139658592324790568690394961369494946935175553723652296065893135529454951482334961596295987252433199157077704403202299834048599862018777136312759538480357295704965159617500277847299937243968463790916887605009842456451386135611106643700049462345072862651999013099199058722364250536718090958214148033351121996229160409397864866436690201711364312515728578841726087704705547963684531988676097759727655645802191339798066240760469614103203167035602735020755909010614248767788779187599992775100138437375142928519074313033013339044111636701693371962873900455903022698042662116387370326883030214249883766947151154516795218867052292756713969515928277125903574855442798789858662247286628720729530012060518812628797845862587473018728229448564785303554939106037934836568109515260762793278641718719256224839019785615366252843492947548317152347916582781194982998250760645056721599453727650411162988603291409778472452454804177233220968061261025607572014582225691910407631292117773897874753967010228016652305203956286861988212883696143642512068946555927258888065277945117118570554822327847383703747091464143354919611213322533053670230869333500815326182869226678464623909864311568581832117962490530297826186181093223614465593989969624061269000618483977860983428790935682648927057607029644971328842597534334785705371143320460980840310372691645559292207866092297913399542058646318796682094442489361109687876931203526770101385513245143034389264815034013302993697785674159065483303125570751131491342357942014270256493221550852403718241230131226179561953061757343874635972147315195986655980081276343170562904219272386364486708355371166650752539342345614617126963832702602651050456156926687811701781947493368316293141493998525711446008024262179525173202151266795136718633608818223700321684299308525882905307231147845124450557788198685928896690009457499392009109697889981614805959970640756833790405351928435585491719626377779214955579455072536649466326501950983489951438953063064882965986088875493741126317488258113176031023210068911290827343430255073285337815700037840625491036023792693053180750685962876676026490515360184653088631725998317981449898473973341154395955743777602954672422253102038184581401939288782936457595927985492944329362227268486749324481313092951565194501915718286506997084847446545313722105879083394477493431654634485050088427471764359313230182958268565223163461631902706428366447649945923584108495020519192445624544935616566634191950252097368375726996092421363698329460513379160639857985454111387075720263328191986033132919945330170154510888927079461203658967118575471622603376394786188977619644984429212466208612429565417843179197092341103841072595297351323027863266763074201654256188862172683722129897892444476014471835353166865842643549516000267978076211145737062440890388349548147352832106083209240495475916667017087066138191239749447032869234446387851867322976623050780914086585804952086659534677380232185365508775600148392290314577493327977754608876965605492117449799266461011325572034774185971131194553630881389326092281133904261795734765854743339571673360740433375246802438355314338549357187938621261384193021802912150006296177302197745342485373060939147330426350646248955603700828903060655857156871833676530000536039952858707822030185746939311442858803601370569967630588129983585917060989414598961809222280974276666732252725351315645527168417387734758470091998680069704296717879385385876503993869162774641543094988613594357845625721891296481703370709587836178240248341119204333354376705441787451766258402219551900492230227468274953082921554204759084883837040924970011718326059319087137799785270871992046707229641002086318685989634161463505105571605932531698300902498599635910545076294530281176017125170702485343600438121732219761273626907194922612856093432040658418938039037010406638743350450289985017485132259768680626114421338134692477045888733905625432181769919024369807811762592633542165039200951294348448764341091050141094940898515336675799281288286913098400756515516769908026379264519952902501219185937083399828381695143194419105638686267658044592593681265020724383335857902976002576759391967315790785634773347551876117697163012269846510680648465617090765616573832707328530273424791139602435419813700130637458415119052030707949863096342144127501164776591059692752110723225359190085123609282007232159533483627930029434584896575778056241500283897972729786779218691171098025475960798252869914110915587489202036260016195426480429460497030395547570089097656402443925562990813423274179322178936578250537268335777579602012472348064415918911870808748640451104732439219470072943913488533358639353446526278969349928204898352393886081879688142573722935981418629193534369648518181795798249432015026770394427005815348584711798829759575753704749735245645589229045387781462721564912824968430736959793127452926479784103450389457393182005063369149778854135959466762301213896310721932719430397834616842651917520300412910527251342561441015736514023061128434041816374917638447782932959247093716408014329402561443688392919524857240450371438942900871875867410314438151766318357149263572940399130712736495016042652793575198397918189072992763642183905191705569354271837450658282720253047290139077820802710380023704580517836832216250437037767404371353958727894585668838755253528956477200635672206759608855195012719457254491686990507496313214562053462963132166005658193362492455636607880881351158394507830270466232483931327670882973373555361896053680512847636994871870028857679674731903764468106865126351471573420164670904367184353134196335056328348331432084115115336669912651053791549120502897779375474784300683750774604936683396169679410206202271563814530918237765906340153264893453101146554090033732364339310824436602814150437197266753989651471182029291214706139901580360877525184183917750399658866168162111448664680647488222251558624771470360254465827368137601977778509358446879358152911073160037092545742207094073525387870645420999709165231300300544569631294132058295780531766220089173548436383945968683285063024493348382659285785641288662150037827986606666786798995508447840913344091722503012049943183904206027496887114144437189049568004734207553854148328349881093993947050788310980907295560300405151318319316373144051386305361652905041953519087936121075185682821000486345014649960916571555223247377985813968700777895097096240324023136143072134360810177454669951808264184988395493714129775646822001324061070291367667050275606774663540117840606262289926211906760322181353513527506526964340698753738381721603785059083069588142090967026702896150331451260167854873435049938326763110909877936858882957485497054998029570825455616189436607352361512863943508003487429068289597591768393462603366394398102508344888183241408057788020628198782080129998638809425534631717671783974107618946974471689435515086995933474907149770980916651781446099719555128589318506912469294174108010887891970350589561796823914465340435984595748068090590469350927116510866762784205428731360145174397118258881386133326705664554790285060060035363726351878279971151869614481933205812711772029646727338832137671361652134790718330480582003596167900317780729599033347357814850763847670004216462412261379772146746259532164998241442352354348684552224626501774466910543945700312019127765733686901855335777574861821997026875436255968073348423995069305104756240588443244332521736113783514138647792012858225025423335115532272915047539735032399120380699830656964557461668759592160968604784571460944150669891368990196069036871098172102926057211113169794112437923979190832095103548238713495615761937841863840493606504350408002708559561172957756154237409261661685818526170474280452140692048887506461852539590639109408311930257014327944635885867049259908748958017945262227317095395340367678652549070320855627931592012145985035894513255892846665659147660421256770228878546834672799069169187249573707569244206204044290291046227808654139103278303116368792745516503526168083868675347361756736197955927390580701623060769735774473924497713069105423817266358774514255784634144533861005470735018782025588179425022928787131664208320072662704728157187994149993325623904538057127355668544881025811049478652360070360585925165641438329976040634968653669744216140619897687033436955567626437531368682874878189851957439335837936141693794782881048965074436490154867959655720079273738806952446473343086848813207830218003232052637132524703933555667575256178578023957666666297378971269189154435210634917711237184585100900797978952836802318014736512163128384360398058554634561467327692451628888045363147207887209878377782720269144537536111585051746729856543508253173936609446887424233020845803981469718690770669357326703907865615426386239501074110409609767330139300800803838373383792381062049739492720263850009820813765448594895005708185644958965627107087281343769403224442556029235863619916146043534907597089591412909975938863265372476396783597272483432153602780802938995913544429212661556170936297083783019966491912456883842656076644318477773062025066111107773826913285682359693346010870332061284070312930984455689763259298020986953559093055335289393392593753880281500611494974871222559106868002085935608650316078267442593009909836728504718188457086235472199662643163594660735371255418132768297181190408006037650259796624655489346816449207092787946311943743792117274118782442193263819569545952403599963146767862853708343501568965652468477322741770389344183551043248240306655091250461535883407079308376484393650055454767349296710382947995399266339655774149239694669706117036702890475688397262902246228496137626332796000834542265716504341676319725455234913448630056297089210588260777606448501110532404046966631604843040726530035215899593537926042203031627366596253434151555230148315504140942510936580807539336751531209702120323138413902923644402118281663475863496797221654293194849294971094209821273461140846569048052862096533159845111344225812446919044044632895437633517793817773900772314947500881972048181237782537538262507538326345118510189879833183448195924350795893164418103264133371726773668115976056813783887035767572196951814933414296537577004503977429727223064494423051668250237133738762318053476586302561814892189300550081886122142397077479819273302901455457389454028219036808109958318066591713878791490820233382128103642674558519600039292094322009287312080336932457288727736984000128481266831234296012124421722505761610204462876099300513249327096370389347654806243977004380325012698572698940447348519403553858521045759074032869031708518563809519472197446773120309776357224594894963913766113696361906614030919554505538545154660178187305495934980848361347639864621061399497109096291815091252683950061098676518256041201485955763135251385757426099363758361130491958342631998140055562585838731714342778309191704139577578566192721055910950287240053369067234863650574991504549569793989191717270332946523954828002990014557281314607193171220138611231821475594977257133328583238917663562116566789057696732325812150811042492424855784226028936887175807697307450699044466718540790712728115484480031435276990325770000362333350564904344564239991397261720700063924574427735157694553685734776803534273169973585415776463232022202659372208580696465824598925590527031669330229421929109256303903165141298995678892756157257076580982434959429076401736576484761903812255764671639462797405986504365209806207069119909246629968971577644877838665071299819784431719584874296663145530504834813472201956471571156201864261598052823810501136836223802752090625793881717975558990536499749645151544072206856325321704701768833433061707700335126399185449224810117341931344848591502178527870569139910696266391843135822104257926101208438418494983660192081479421519245683354506763882221600504969693717735289373628690475981831471313122545461469918806874844316784114446179032350111034593415511639894040221173015387733595040784555038429771032146223108215262877233005146249463747080033818130438249335760901851047868964358633464330226216340944343178443931160512172569375419944256443399999648814807433451794686231948740137858134003725380034495462813362086622293339595719762031134227208573879247655375344467404317257898757910829207118477182702038871866022956307331109559717484211530533080028287732789680785631814818355645790530210731494832767495374514327294567806062098809131536330916022416397582176004856469008188295019216279383975875547038987893324095043932842777852375618404171492109453270617564742620823955290968246118399451179232439793041605614032318975146690521648970475541436660532306766075892906110024142692678588196612897874470338970805072722542439296709771952324744172825449812994909522947884581689234439780920159978453335742788475767846063536568109630184137982170153065646744266977075898152252018368538690780747908607694967300040624222587849162155013546506820689268067077351006393097837438510283416226481220765535757249983779626396722345212500735400775307284489977754019027366882471956521317974183158378897341838648037058623376102249403146116201005575395913688685151011261034808225421484671291026771684625777240122914242615307932949080430174925380285550994515099735917111389070758669386266663911243686252712925193947795476532749030550137355547785548603978635834959975736572479465965636568689418397914360847643058320210555807769134560075092722779911932545657283349004071278323590146591136566952287770758805679785374268621009208834592722481835353127267239954552900916609104483837130831090658377053131772442168490563294205550978542545137304577357079728261138839144259826897651458958373471627798434443151026830388990215435393451237725403579981028477786080651242306057197159863316093733648720036711089648949847049820476240935930633298131284206046564738787786192228169276755610874300944739152180201998776820107575439464496656021943247498536353228053155915185242566668333213226314812068344158767792307275500982654727203901577699902413788544371469069215272484815949789499764189036578633224114689595725983217039708535436637103769277301280316016400622234998836150024451595679184610047154408947469752867557285722324439189131168720915772007561512939576554019784399393706349091689334990321222563097359323779820811292192643919966916610141176495677684721954637615619568070871445284557263598986734811521469158524428273349956511965941091415832065929370694513054998311784272197046535246297487083427523139719492076938027987391351433020277028015648619921903429186980386310154814356352272940826250107202797075602610359108999486012880432548701089817264331158350888800907191436883143808584816365805045407482587312798513248597957748376961816893678308104995270001931717287610769309079333654030258730383954591433134915622777724433272774037176962106699533981565268753843800738413102783957828615429558639787170360587628030659871844049079280418523712408688171924930982679551401078087546144364641802944411727448802735800312402141707694481901401456936182762567908724480814332058769677009689099961044988947495396863479079551667450909774397877372393325875713922070386048929009375330657672435021387322234143244443816316784310927496854060017144699269363268596822364548878345973240548642464836805189348776894272712081177480150249222118226874411844101174194392639015260272593127816105613780059354148139959706959062396438934871312366700953506850362560211098343213348084268577758884842691677775162651280950898203253524196472572753773579043217539284362210149350272138154079266750868266882971938082502857594428895931361303524513188157179622477525122517029512396006701941114073756018627207491650655418302496173592073899787098374256864655322412545453675285586676826909978563136762756623102157340125304875640582405428122973037959738055965147681043668519985884528985754919570654045255725587553273231071204294598585820643962883646433153817149536553605687876281037414104659182034598136516556602556644367800187996338719382126354842438756790954647993172992789449249990840400213221276902197563015165528055463946988116387383517135738558169109198304662802903034978884972885308221237191635376918935684483181379479299124839984149063998591570350802882507352955405908535573288885151640845177139035150482791931658815578517362936873130802057240305619458792637188853814133288789086576289485435681262046511464948458099359964110984342165086289507356177758076839888072292695084702163298702881668155490742613594545852936218032691790750937239789621368561434013809210355455012912048103904181330201597183975241572415424776406225222607617314869536007324084662384700663809131064670045462748781309580643226615445348135707335412715391852418048949701343342437330212321431761701678114499142059812585492538455978989814891009291205889129086127914558944967793439243666592123039737307162961756781799648763372084719954777568392103953632298013029030826829679975282795060609586792265613411132457101343993805527827451237055422209843533922083115420623482204936497232632759177067411002711254392815107716029486907662419915620230623850627530921989310182644203811996206937703792444067903090357328699355899069366269357850062131463750754537445645800033743352322808083855347707978272326294465605030704502174589512455471439067174830663902678472119812465513297632733028082550600111011419178035578828505886267519743722574754880761742134759789816281228191990519173092298821440858778158006400484887942336688090261788947738533308709628425836754398829865288649308690944100157847430363890648348408263430580564124177626434866498535675241345438381374116419623373309105165927222539684016885822963460609578162833627499867714179143322587019902695694854975081337039023618209625595622762147047990816903169257597107282352376226223543010980598751355863027790013711619375868778869939776741809027303155031298521526308293252045360844515780778629883562155323739781548684492556332365509208980557136602671533690966296413701288186386276138265476450119556356858394766893324865371157636561690949855167529249772064337662203675509965882893173430344696019366763787751052792024270438943790902855164456210545999852901415123686993310578717908419380466474954671841353553114470925346776426091132722558181998353926887728607821407400107414270756987697757165548416115928331822371082899523863365686453107600311982094406126409165990673036074321581040907793102304366280486678790520638549001529680783505893621285542572283045979259553657494416086437464319808842743534661007431823334633341463118665677011177714663881432782251948991137203991269733358545271539974713381321340847186073669947063609615183394680621601051411366474758241933094125729643466434506038421511035941724333428009487841400445166900179588678066910954697749796005156881207825518160751129242296451533139090107352265950400657894270840948835963839000410096499579917577058104889567011905092167306829825638930311598374069987806502822438626383289687395185373087277896918166477414799575990434511150463442541280085571847867576932899597718762291870395376663054970705187879738940737750596666832577286310290914540619396311010193284034854375719627115278181742140645287010542869466381672695275610789101856701705138922159723724959488147856721555379196795425807206838661116540308742107094260674303697701307030876066725322252975344562253922083916362953591869120305861255824708866083706039111403295900686090737496578097925857167525220035881140872619563134807625686564180351356927449009255175629484871480927659009335893457009566049956904302315991548906850215448671625827081514994816941326614010547228086857744247693851020329794669407468239753794105782445885474548763933786227361483352863675895556073631378751938264390847746295525621630545472303464628797976960315257640125605631242038115918137277927414839364635058859627079517625137445658753472217028265071328108512378859888010612549032724823843435363974617930298864807355085792957210886780850741569328746464822347339586734192295917413365789604077115493149045320327783202189872527369495227293951143771932776821940851662426515258940629284411159853960098897994764893409580585190178040245377640158964980242430914883900957684197541616753004160033774569381417328636686726048097379158113915906728771237305087686517781580982276279605529713382464783495161110939122041394769086969920705968828505020517344731655315154714849751728595615320417063698910343596105293350938950310690250726802044627582497863826833710306574901299314707664893046503632654808576892874062036042886929342318012061989263759219185150863771019921254955486413584033415052381790849665050520400559072247098854064750028356902752429923872207531549975869695618368553961594932907030015662037789524212841887381343491744523000239909341961180636889122189327365011789514207717684636958297283163934936448109532501864533440547257691771991302488796779662901265585398453392346777876822406099525765420495456266686985085052255260783438762877818700287004816488529774327639864759108772878897012241115383376211964186700177884530322501047345121511234921183267155626249756963169295553734366377332371121717412170687210989741168128681954697671673961711913720768444282933886320638550283270301939751123359858201921656988220855309349045440103105330807029106045083299787053300760742431247241785909814596896588835055955917590829557894551521509409626642520341169070237020904881284717039921877143944365495384459562185594643809038995432253314815377481427915168559299912162586282164136318621948604262191798872627255682887352040280506821610706364767278007974631908353363710641488569968443499704286930689954549432939176524905095696583781173856533268795754587562919775359591111761507600204314588900540559322464986646643250800951752040085716788073113920664987367515619216419427145074081557642469058915637047385164148262586833842493789330146369442233959653537993769483558545882012398398483781818311538307879048827625669196556202611826357358833553856295501823910213773131686982815504004872489105868080335350563503573046850838776459926927995129706602384294622691110847921498042491859892718415488740390835292837243625622627067019276776991155900467494862185690993183456559182754683412824573399650023826034917103413172161999997282054216722699115372289491868584931825535011437685557537554018562254825544999711626790137666079863250676884568932862273976140733349558736422193507143481210703914345317099824116646055125011019833280997863285292492675799119523375242895729465340880600222895459061211631969154253353311857623558867094118313373939007949991484021699793245174830335115464163360449182772243708929695343004550767341375908297851025665813571127747428911489499061807546494264142147391540730185203519927082904138092591623651416681123438622526785085964212902982989781458354792647600643842837852116798231194667905502530924326863730120362903097121524033940598428931799732945793762576719051551044531047319559461448773441072633209809922293118669626368054642367687993632217318389243508678880686826704311380145746554994603888181207294629314083417542711664090497563224483396811031504912258525552106777116657622718282972547676843599530051952050489135601151759428321174481340449131237189093154741363963777132310602006214007975596448286026035788314672239963125700870747488736435328004594767421803743532909086071128636300820681071937374842646501144166633452459710740499759312713237058611746860552427722862890177266836395707992919968342080443495305038437789246811095030688591980562884072599784362225087509727916712531376150099263697088489744070267016251676322095636840710950544963909619486173460316855716620335523065908592005169876147057431547802238618381568782334752569486076304027648072448936062195747773339892066650669241917999842288387730725368883090025448132084480369600985718786591721199070147727518178558864580542927974390027799614839386171569845577465671388402653248639594527330361996090714596121246023388235271226255577364288654900569214507088889806315607553705637915438235466628894486051045103991557203607076371533764499901623220591380782702003754545627144007380173588057126549712337044012348987760166018860079962265810785704829751763878345170718524049084187967128317777952639100826246975845743605504858976807812972846258460922837075213968880590290597550891419913526244108638531377667053561740447571416265040377100917769190103542772103019773671443097655973626221716125915877214046236108186329937326272653800789202415535865339753479378744306452472409801832268834528481560173870307440911421592346522441867252414229298609352306854330759389004335272910481804045361738969213657462202106457283054022990612793611940358449328600928300602906352568872042119194604694878914492787377123977186423562349140576963403915611797315306363187271210282382378935584104263330116312278513147123100424918633316526161261079401876878105690732334903673142862422623490258721124291283211371582649324353369824738953257117669272011552295636200599779958298184146485869074869097195039001283847519683870010900690803833208459606789640547703451354110992401151313264705172432606378950188739520336941528370127137615967483860382251013651562352553773024272164132975452365409799374964451875355004530355811840109922281083192388694094796784469386083980126460697373281866865349223445475264124197464735869423638361235660781335837457272873174061746944848675840733484573592273422542279303359908987761202835261231969059233843537629588390357714220110089888232399421110460199148280217402167202879132395694130663492662689033014209510018701370838748266227295506308660165147724102703870437161653498527181437135383126220941303176050089535749072551925576868079500907384095163498925632411690606930398985552880176420876521394265483434269939944449455989449802140070335426708806883496295649002910203709713807535001382987815109475450914610545902618653201474539101948626500141304963513939382900462923261658011102789924342580359400796796497698885633276317329501273711428639465441099657280059345829768370115569960512076849408643246193773177949191917501825299187184877786549887976306255543616314657756184324696255141484947878931396886748992925085470881263658696253983142493507494214346366956713365425495295730908096735007222737251826814771434800993273322007344521155722631133562644996426631034359761275808395231746693626577498667617719031712930001540836287371590617415991364652227925403500289302822062903778074687833437782070381937440907793321338359126948324858989100278662657513969396926873442843812753333640013180354852999468363810438105431547410628799952394804141462644168165433616464676191882934797287179727012843791833891354318219855371018596184539775810701794724855958183689936895633996428906546521811648941011578710440489716724853523612795539846110023189160948469235821432075655040557664798131130297315305337272861089686163614363255139785554802089560927498366645612361351838258337654831961276397251952303005723624511853998008688754261294875732798747732699723130003198538233982645522399897226519748576495816711318069699327697130445842632078330994454943964765454157605475901979386340085242093321153129693057657368898355778850285006234841571136776790321975606561872588573595813135616226556811310589357461790358532812437024717104357458180054831052284189074905810009818203972862737182956365735116123611835495853127929329474836091286681651759744190518742553136865744043303792983698577705028669472544813514723080028409467100585452845146399512645952683418042670139417744562065485678411430678744555171177083459474516379799763967837363035016047836577247413602187257105045502603445447005200736950274128114886924470729387260323531945452757333629363149902220669202623690437309441934871421010431043655648927473658730257206157908411381590122971243063305043869403406908521423649904077943582680325488647288917273268712619877141407783254607127798568442663017144872695699395457059782736646320280351385875441301803961470973090577244544220672282497683391913811570354417667839256749605706684350243068029718446456599144741614855631441595844108013118990403372130539548542606209612239679425661968701823546976671107884025025436301717233404981401878118865519471761816506680854813837601754843070224631208392533604791854356797219487355646756217450033943640344735447361265318112139518135352744259853630489737173594373899863989531581912715408989368674055382536754934032888961516620072690094633800490433645621843792208547569151324171059159341812796212352978780102045467968357321156732199443269067067105407229856096132350586847629789435955027445477189381715746633611466445461567638386501309515567312251860892212387877017605498602648106218806095886720863783628540891592619592206102520147677972091161986727861495770585137492034378886934128733317633931425914699204604177891692486216346538725282909768733654414956322826927024204234940720082755584199012513207093595576888407761639528870025199241515344401580472884263801315125069765931258278605349398330734980044087321800305553727770404696917375900321086448198506678104859817196277507394492571222973195737834031399936056422363621409293860673958932720446907432215854404202296437072142221034459948184262778895869545970587230515647369791129494502829398156342058035002585299661608418125485543013575259663126654915217954987537035828738094372448123709614486891675414598300895485580635536793385075993259599724959881181397309482803730250286295610860907333285306111702668009382990755419550709114914196506521208486794540147246206819634005785687842573489068746927494095185517819195468033412577137217333518727501058706775785506770106997903258245647072145601195847912168542759086661340919365346286085537207165600020085545680792711637847737526792954861985254192788085167663812236356041893312647051725069380357602081194895688015885919523924802176740222848223047294468220164876134376453027776646580156697495272419970186667106794282238210790197570325096097047921282714597519698141129445016918867716579989419407280437328786585515334049543187930731065635263569253395602987687331935474724249597812514421035935091757239076733510290942676448476076142606167896993484836510376544023276305465767938581795866722019632520265164364823865795712606948906532539757346138481879344651548352126382408316991945217873939896029621628868832384905627718611981757447847957241121405330938612040103143807216837160264625435627142044008502334895134186993898445753216270833783880423222550453981379037986524365482295363416939366735328977709402743150140169277767833672987030536200060447419957349294466816535918296042631253293915304091661665233803384506635354647899804958124299701862828301089928031899758100016839313375123059504464827122393129806827406450067979064277805189339859719044411293924208207755980803618098624713410422491223326579820038360833945446650700551920289901170981000873599178791973032830336531600303623947568337599865631146195952482390602519109901998110342897746625546537715787357058668401851464586421197735716177141480173435366904113989168440820810229435651010168034459559276460125272147811502986629737036700616424046238102076569677269798493427659992078804546858847119988060301874807730836442636189946334065111998116623520669001819467567452369321460144944250953503496345050909984773054839998070470072979865894984921761266318012189970207908950837262231621682078033409793158315507995521452356305944111758170731111639162923942176590541888233105973300495296061743160916840986673967074228645957379453688374812728938010835175565267199383123064370775444833062657301263072251842782652855838996776408626279191440842306993389781884475137602808531390197524080710648375367181647258801890490632108914528516634872099697971872772512169287719328865186402331518439271832746498607126946447164556107154385716233011434308741129698223118865622574801534417564066962653834250158297000647935151576445611512841155699199529602632579128939731357092576863656815120934409959754122212695272838099717372461609273240451978124390618409454733814611085354400549333535560996194462088553137868207378584041522390865023490408228651763378922513951732718056816782222588362456274034827603985064407076142384950384338411446976110605886107951808258400168819176586749277833740861581126859917734794802794902479614252429110557187605252642367742632611196501748630614552396052967769057145512580631762641926209699803996839045377969775835645919940668415346729052588921166258604801704275960549822051881249925856847934316222514329864340222997681875074869357081465982428284582002329812741380957978719952341888736058693037849587478999573688302119445704593005861242682900881298452600551066401834932021454580149409084637407881571383396740265791825381418406140224410339962235993765484745089719577773102110739181043299048221972608630190599807408233697869328655966672859148681495546055543404538127817008674888220058104911605395333543294530546461337891773211120899907908765023942601980257316463182767582449050588532027908185954522395622017804964852427705745478668589556000232050784951880523345904027857025664111368827450349620550170112623949904382130451047209349919676983678452901384838003912243114068469538475247209425436837736371759361573804188937759085444310666656513298882072221952327959301343716197616031359456782420441868331058687837261428601010141943543640713153817810663492273806395048114386554161612943071605394506584208609588563072890355576076225451348672481555298832837453827130090458681978345379684810885528127664666586130903963172790212090909793081122909346932609164848933488249422350969460153277348700537419285803146380644344706067157914673035445011094981979833961784222958624852700898919123041616285539155231536606544844868473436977524593882466096676141837912499372301810379061111497035097313734943638085587766479470515618691007898919162734077635795602868629745186138363929378396890791741912909561823544989391649531889300244787841919587975018045961445288936258833287263112426581283753501212954236450500065730878571038292249343888413637646235605317621979552363562636116810859731479274620020436532455060615602489372803391335759015038700887462551405957898875325800695623910127149328275096914060812942732725584096844881026588936996438320941867627121726187822542963303816409840458711322915828069499280531965366512267338293153648595888719745896751149611963975901178151478643516675802452592746905873362351874541079675835058984311451533205095266298563710202569093951732363576157738970337975941215321387225588958401095361940724538119065786663858641730129977863357960112214258070146394382781819716924042868876521113972711579083316610719543269855659657215747847251159148680613613215148486144738076024804105213926144642720624224491170063661569279018638052137317567664593696540040109405946129244565905898767356625122486393329920691356724472034582282284771872400262158052071216582981898112056235824201043228346546148475919215522545265808526991646145620651218189597976451650390934585030129656076695605329607723063691373359376324140485824499117579481511866561715071335813927117802716609779706792637887950178321682415600381340959454573101379970730236077278063767669381526428168307578042235094245366268615458200806774844708643546295505558472414308302805539952862382511794197177532946460128964082411710126998633006735982835909212459987506220060655220127225504596107662830179207282594141765365439252763078920482149927592894959053678159670831385514390318502733188765598871822483452117627158537689654283224200970838820433743964143653176283383189814595831882428018863630040818009549986017085494585827479004172421600169069135568199763135685164713292656279293234909981092318643845529195722601959129668583345047648290845639395999164854590678865641205227138161296659221715952936570810614844204993696990557124246080067885321095582712315933513482478647774906750257488896437802758089448085261403260836895064424729758019583301986546923101730949021751637236698984270645251385621983858649136459609871372868818434544688422406486435545889241949114029740117423387611627444403687008761047618286167433434531491149058778027862468149215530011802461456886012615330533757433961192749152363886690000755007099154671436964694342070354391591082121657746496880708798303198944200673814259741873960140106132349018328974681113564219123338997268313217481045930645101854612670741075786699363212193274441230954534404578992945544346588842675387542286659491473251300406330292357692390733350428300459230206225871994043449058391004330523524396555391822275015374451111125868653026629320589094787989907088454009597084302709780329027831701623328583419191897826208092480967264600023410078942337162601642248122611859454145903960128083485122092769541262193701483629688278825317626141085592703507702757807840187911324696743210222840802964761359472938686101761515136112249083874348268064250623166362689168758614489753774387579558031275635542727213897927207120141560907614190088023820941210825669809407066663891838803341833387383771292544616890141677291743899068459901131640434705871809626083233749144814918521079789561072991773514862190865634938579349910782822522120431857904244535923714231571934304823420915854083083646935661706507653455696079407366203353903199418536455815087485197180064910966998920936233582048808001420221250286964741812818001410185172672804628665419654149425781839161343282303715495743775263131525720567917321150927356051577733116064532839632066058218372917708688144604597686961419276700880548485921153877553204731883569346775523162819161008084226089504374086238801691102122901531302595819956659088750296614094012283876388283705243629884137546192175061187715675449380963835558187759800438638061427430970413597641190652322614322691327096221868860072964954503930525315192091927625177653301876730532343113711119239028055669653755256655793238312456607726696348567526010343417799252204008000454482999070688024886261076936817228961740270921650206657706713784828667436661594630304806147454870834037496438709484972975516570248137988405773281261985378471728230555806798910829382433942159101735126065088139608090736992707791846213561670197525308411124097341568045315069979145138339911624112998363217722800246527531466216736045466955369099102355805307724913967143016044103916801625026838379646718051392399355178236081046192192319252386416648865564727543490101330931708940441122960177546632130908211619872195549921946857824661212677770914838091520079883066320758559119620379215776917983744903994748798748388036791465907850246319749987358098238677448370514385491550444816506596622098761400261220571132284406804021983332204475532688883799338187662361321280594166874913182558532338328285660992847025780700064009982978558866404397137157660885348306127286451294411423657008651997385032612283252089341341922422562515072653774409680889747807840047880683246702436371899102067863841236724957155854289449218591410458778357990370800563672082257139911812997542175104968034386909878485250194809637816280651752602591194081572911491026012513207478591828197559053981418147271192867178759821718838039748866054498930304569841888633531550872486438821643187759309740768586598007150669010853377688993716326796942176212141306615272892601196405055751881319601778179608616039258973226956353611062320534784170526147913693396482346580449686666290379480011712934561531458917159218796130233287301479324249599729176921372530838342709758793038881522606328155826881085363237409140661139794894270854111857166725006192654190526177558416532489757631050141466885642199758874245055722691739542126531434572817044608487609869528395710649881005356956520185714287830693975252349450241649658050570635622626735613709762966246137341684815965017796236842613350879261873354511333143416130909032795171774911252044104211595195933675499035444923557060091132994488748187423074738192382226124990510474606876588599412498299146643062945289866745961052742117988455748493990467404103166815259374926051536658569594465809383174928185484233906083382411081063415970202250804034882461638823409907261732513880897833292975486655759085184887540398199925729454963720934995762980861189149540266687915763624722953308522579571962910365743713001545283892458178075482471005062141109517776130260682863581372423386039183119882028158434086448920278517685159833686754267492374438370054341165392063833571729156441979313206277436160622389982794311753284591759616785456517576863738158877860718615768326560102088789918918098253243211868960441102512060876304643824012557411669500968274949786037558167419217022500246862566568300671201195725461476742481978091284599865839667498066650320853144242770946551245275322460355339043090459277627364232727467351681958587291274923301318488434267025874876691674655891426715139346501492272353551492924117274340673191434196027975115319877278430090828123848848351304622974588000467593997257033670523716277612521533199411583104736826298746936330830640242849667179873944415080060240482240785938142212257491941637564226161979966529786775522899431303820454195520294917343280095164729657973147645207533237058050660273351310687034958400073266339336270478993387117502375852675829720982283798602045179306854026327642893419169837650325361718507798228735847817006989221005491706329320897458740345938405044165446451357892834440840492985039379818952964060316340006127587956151261277789860785927249877347876895385830395848117352607002831080863221824578580742997634262830833827331876688995255097564853430870849381294031800078273026318754938950013810583740447082026180113677520488133979343977740270937075695408045371850772289684514510985929908929658610586755668478852103764623702990318335425574393742601369442075708988996319599169510011197543767728173084529360305459610470723826126513488060327937209223910030929723367504244983822346529576307415551978937275566375832168406446932117584085029336191707403566614436510677581956090765278916902864256952469093950902603227434814392683529800942277635871861610925415509897691773093142667885410543726208375853009343547928900568490649698088486333392892708995312167185831882317113547964171590467920667901911047558493059410795074357121539143915470926710228471365132401390131789489026760769403639973919291694219369298523856165613334349002883637822526968702050523829293663207459468847721175820761420268906433113603913156109949060880854665564662856437470586094221723845986498389999345773877369211159677715420348499227757249099417934698553428088410462871541502462805275554420077159896454201800917672926703014287381356300187691485451719333245906494812602020317428422508838434865474896264522912668978613071427636576411813459052495425257640878254852125053439237957782829168507956021965171789369609792898710735205745249778913074535452362736455502409976845224726142841664978079856534403022313568024949661725814340741025959919821177718451470612188262410254084993043146429589242603481403063603187752057033320085723583369624408659469654372946297057160675908739563681089946495716555531998324177260965518320955902914442823135166016342513522495238431455222714225371907038813067793675798531204275325946207733717054032770425935888713986201363644537698618298348631408271458041032223959542329790010547637399492588480835973795400934787876014736863339624945611296077842152103479296681720918383518655025374562672485793575860578059318026685731846457102312266273004315341242430449186457893564149151820930155587819942335856451081313946540839323716823708654677758001338410879414950405169913889886647010979186238699406257263682276580434550646364666514622651446458567661719981436369152616013273893404278318802662384441805235304800097967616373665417678706656944794942340276197907361911022264655365041632633780048537049614164836483638499825353891102383780876982191451025780821579673895947232127123810975630282227888610226339611591406579821823980634999992841260037092076728657499289490534170141676235181119530212299188160945889637858110737326866616254143312840002982443696343247809619270144578456245473335558438842199712910477367035036248028149552110060499207194773717509625940241368001058475151974370663056799826856195347794112413524117063429152187769041898639033283805742697306596340683157552228917296193806910127181203354369072789824350948087003323849563948000876900082431608351540563351780062832979561348022566577164447242431132514236300284490457933207882033266625150356429419470416466683384440649493785237955673756991702630838781535787847232683835668217851575600424162781311044223912253997273665553691499892268700822811807445248123392882153231221170886937984196228849005171813712562918704853243997685593413841336059014914625553465950241499766494665852946684529331301948992999755676426994586727119351193737808259633568347851624318087335505378271806553779882369520743267995099324565983664114702135269447639832968705862806534111616345298825109379757444998076917540639368347848862157218157485625105621800046958337490840232943698670981231795969962826977379459376731888126860256071999459418377833784959346832294379815302018975413132563984949192763580662960423205424464901149035668363184217653886377356367922962807573710762275734749998043176501822495375279332654249743048883410913000379099124338795076020400696874675078425573776356691170926108709032282828529565366313319257826247138309797625888068936024439758650828084951024713851872879758292013572561487730917074443499675185160951315032457004319465017996307035880041316357484633349277817617977833918506918369587551808155476619527832548010335995447984594379001868825225077443837602633777747160330949763747596552543236700204655489717154409725311785304159381940456673106954684571200286077495565194951476092140597239664891836769799906675012215297611993134896738276419382481039724721304382576670432514570152813932183994723785809181421633761858566346169036617164261130768139904732991474240647158465345083073390827944459802215876129563974921867763143811803757485493935662577428303371964352584921151128582617184699671946812357776941912046517634792610986511513630769858608326129541799057561800381752066639069126042229649736005050146194680498504799452004728547649835230087806096260365580925282131763413499678666771378223033898546065115221838647333635555747927728041487088634268603797411701828909686692918477877507927485517607385504560654556009950139135152083972677834235620232082471643497566550989694221155990066717982590526576949565711835047539182086479386056943353112847000325231801561480359157474673040386217990344054035673584271565039245829508419477596126080069750281366256659796548344843180410544224196558785861499558246918909503050147421694209685217455385319127893192652908332930769253646161973663483459637847166222149736430952928242488076611508679325392921918960041485338435303766921685388433585877643685923489376315575643052165243135216253067359902149021854407134718144683168600681501355006559600165639961338932221700044006545546091485520337721487985661999293263978529488156016933392087323334711260231580728041166129925002181402724060716382031748244929280369827489717713052238249285304448456102932349298224974535778440222252482093061563001037951765919872404365717461791216099826216767656647928862968944127878501178717152846383482143904062034236422793416040133406020003770758110993606674384306248682560027346038533271140510785110629990972821925360813973085919868458691397914192720263400108669688596082601716553729371449127037850492853296511644045587301354917538294986461613631324788381649550447039574497172764593078400319180275436197881774215394615110063664693818548425971628467025089639325665689085488955170456052616768956215229090656136459530005086978563134919763411640886377963454476266761074421681897069557501935651415760685668768463692809589708496465471332517269048133086630715922310393707401742790943196053486966117641343831641094814247349120927748670530200049284152094899189566946404791124801076985706720218341051105575020768848560649699605965306278086259620311950762240858974290541133108516309237255657020062604037448039795129890957066467863308568041525580746623845193694308600089047456809048684524930448426917343498095306963996508363307030518858782908187724448098728645059875621458823573475775665497122767676908051217098130649593716118864753116343739508174603273085685956365122114037526682082172836850637552314615932988045754482587361425858479018946766142383555400253629800962703154615230207461158413260934135802012129531900312452443622577239990238194374689046910503477486129153250355691506897155748116846566807548779951234886741975478646574299828166420127433262405647372949218805899581839888930077941778305428317561849771149542784338762922037348845475037223596848491360074607654451945423502173376511164117272680518648634356023163130225176280378599641914546901430658531271151776892463391139305735585116565694903531835432888972104593694085906258755267067056065261158440095447472531966457791965463014022046606956371660200588001006864991703784297863063881552300241982385615260942189855203908930486451831065249634484110947449533274423774461411710019492819984971284428341503321133203276758590253173188707826342547368037962191676914629261033535768735066874745110245284083991715192269930748399460215637181500317418022534172829407122713561507447702525531044041989947659374986030516902253664004043910998224924184383882552576179196968793117169340298998084912927588636836246664215780035993613511173212504166490907106148152078901048629417400525759767346220559372995057218768313901876411664295930771561268016303818551999742342407477021200789894029448637108913595540648310972653555408566439154545988132685789342390880036373417492642140508735252075635810644659356300011315650954941902270190257475466228817252415993376117268647133511340015783448256876009574407844650807628167061218330269289419427250193602032883731284923109713153027093559342328608437612462877904652712092960476344181475573926717296162063878272516930146572934336897372712170164638455805214027824321887282715641664604731079087935463256641831119418285945499044238980322889991809056936739047582306884871592596053984007165032558412846657739034030336508063993157396033606079851825020395340640400061218637362812133054960549815205873003855819032634849059333039606318951517326598716717916254795075238310830103950984232508638885126114242128514633680516163504212459738818306427123700614141626345704072662293126433159936336782271641659453372858926062273326475601817160354534301146703611628157648053556101179332019270964881977988102386312813646819803170696237359858728621818797284741456196101117610421410242524979019164411060148838051173312931372631480800682689835152261597527299653208126030216715340265602024282403522971945903378634800197634596564000413418390788770927041929470458006240590888119304704121802247740144173483953591069077048091405104049789668282764034338076706052220924909381729372447435410980487038091806609112104436387744047641373795812733515657343948714477961568136226752845674145987371158750986330702476779797988209114978604675046742631613687139103238907805721311117526664829632202518732586522724836763553548666886666600471013676153560404690591531390330606127047964604759355579358957639399120928712311373651498899780487995324517426325249397625730704637264486958171310819492693816271818082957643711425163547255564777982285413414248333134028649072017157802633570182803377221530081988579034636699257281505313949519601852566502750047612835438983379432456559572516721901133109794654543471733403363158615103966423255278399378596578013205454447888753106608608941278182821944469270345649802170046809274561098927622628296533176337894471191711674185391907040430252580385236182411311498919345593021694630768056581150713930451625407377575526792356542298804617372601568423482526624634524361444865863401761254802840011649271627007056697969936715878026590056801723984499768078828188517717453968193275715511248197145468018488040655928240263523743090767926634665159279615349359662707498595179443801619418555625518746626553003985891964547458278678805674234498289983391388598366931277563529314285613721337659810441572190669203990694273340725882660550871235476224091806705049728646464107819363241298987590322405489637455925154410680135974921044118851958424082841364801994763120409680577887647578198855613490256447406508118079871861333493459844211159555675796759355838265539509775653566255121685970776599544811941033826118602439489083066518508486801219362648104888065199391750149837260945662228781717409096292001709042097137817247339736654717424149197518165085832451928020270162180535857064685078564354416790265078731527111946960054229257034136217132848393165711903623997727867474913969567731890442823478150891577759428116126599742601307214645277639489516157497257407583781369163726074263846237330766590000932052409133752510373659065075235698001523523602032520135041757169606503446992407412980286915173235280308060608153250463000374295923504479084350624576214328420989710885212140177267441744112053661355861265772078630235643673687831164134283633941558427640416404868966578558544360901822266716334703885419493084702949955363467244015178991882425192664370159117650432463354677040556646623250610915836391717491597499086242586988151323592255042448909341100356695383093218968112632301010150614025630697239650781585934996389217030121060167770590020189497276716696748149476668833084071746004355916765360000135508707788694091354143857340271152430812490343124067122168272118967902518785996683118471818651942605060529092380163021465468298969568765055013039722661867716005639552513101185801337725783727009056076814328956279745675604719305309622260413625076626084388065548618726646887718133064170473582614887319399256796061024449971121446158545078931160423821903589609937999863356566258195598139860652330650684713655784772376197318064368778953414642922035258840690427795458610343329855679441682686450288295535680797246258023266800513950756913775229479059492505695553870374899148105364156850054929920680169219724965238798303884989865920925362997690623512480422401595112553863367112641942810337483413646015240306183023191106075118060629422464407858429098543798782428955725797422442670054585244174570847349267605795059753394650346509898261279833428318418509682437771147860058338805365477811935086209411762775692256845331203344587790631690536859355895631026743900964612619718654059694576663093410460155918244391638488109827466954805182070027011927876302307969495830688047076482627614054205771886927779957759379813627449962730148118810753857263168636847747597330990870401643758305099751069370871360353582222282273812254353242686159662247254900498266011069795619117784815678742069287636533466981680201518748594091211656192458847197190631149898002588085536382028170969668233885696161752742172341739556418119610426775539881413242209511108041150428013079030060008601363392621220656695543211867278388568705090294805933485292885615547229083543585926380585166413374460929059828403173762231805080579034362457549209478924959051958523847887293810971807279155358718898345790919817571036281745035183632997871490087600109760786660362721885859446336912832493445405600622731557971559395296604924497814901445727347590923853310912483362606124257031582558188498974654399733297507842771379005464147295357858840155350623066463981551903460959762152188975499251396602073403895380138655292502930867663791497741351249278446992037807809513597187508395785549865798614820453613191463030022714189654786860412301019282280140051153961854650848234981114327735336535251471830412481389936130575053823149485375983128219434490415547775101809958762967513721446071481423071157819622600973486963585619880812530111145178750586339790349552375823070761156111797443287487875337172080218146315207606243728325193749336576558563939737118843144209067528786648093011372185478083959639516475243976514652440989758601260336510316044283292167181156710067856867574493015103948450196616200428338559861808257312877836837310011989035471062275817927741663126582480899203624409060546450586652500517690500679430560344928742193953118905012082298895364881265413216633935329166629222640511091321991384052976072138379835968786822143749297525603909968953108817896486155711598903059018666820152770859336707941408394798250086898837334985085235924323348510185055420797102991003295403361081696621534228716466758277579524810425005669645919907171358953504371897951385201345495595914625677006587464646810885647719489393341932543505619647670731854952780538476593694700942702100207733046361457519479787824138191448054793964117590981341442122516223506109098067326706833929551830018392483934388584936844235370818534377745151535285375874700551121408975355846799077289651571920674342164880999134739844911572759502701843208158815878969571635552939428633151470348813462706675640327699550464097106762865646261492815877246447393288553769765570981461203355167433667406782644162663883729170401465235561733109227941905587655974439529566595478438094806150218129606078727892359852426530695229019383001792826931925679141531487331460177430844312506850782278456399012749686842646928529666325592007144897442008896571205662915971089715405564379136769974365862500176698174766433794113088246890524159657392739140275395259489434122649753810318750741030803175012524831330340399021269625584388664469570424680541518334317526489053024643190469233615694799010257552079661256356060025142393782794584244840773356422211808393086161266457342434364173012623501799471509532201329105941617165597126457583844485230249463607510715453374670685918125755833898139791120214104845367790110093991145223750208197231523844174795203913392019973717351244805778527307991159967831839711401213159370987667815009360370951958710048992045307980616696303715599305009699002262438381480700034460251033353844848440171503352417566595897839832328796575868274506576482989007159866657950130246669882329233483342632764205910155532511938191708585269464282921310988552150091923239415132781254446957692199312132222828026945078781878999545876103653040518176846012038310598801637094720806460330722065869727081361901110092364130868444045870308543172862867088474731887598220626155526451383763446358565945847731809963636370693134029065850356563269299985710485886135427170174332491994868776234550944997925710163805311968835902609282662119127566825704735185614134564548003802428358599747328528633913466569821287119060105108719282612388824610585842171096420757825800678622030475685626372698012263636710358339052376328563503394459760444866641310773552942782512869259192820296224373876525305603720829984641316225902781283982655804488117702372430257422463768790233299020729332515811779223821190387051164371028385247259516396459071615458418209753865582457940264153466987548125800962215588585000337798996139661680664046634547377745262137635723022173500170847547360280531028418095950069242294088940154331456549863768005127747286544347948617681897123452622214367192157229553039022842057513110002197290493518871452190514388937075462065673785304683490314585517516546468296828958800095818175934282205099199260205455755689268728289621568034330237395521935819580865495224665698007702693122356543632936552185381187315474451765185001074100497134215641890277686312133144813935172137927136431578002373465568660500063956574199383583893631345601511055346429402728169082794086238830208716797609969257815532177375584554458120696680736401971381459093836198855552444271224520638668361551306779557502357489542737299968271829776659437889894680363299007898925757341006090727805849670139687125048242038490431200565602899745397103378498395204261644082553177043467128004471920186899945500311820837405761766600309359484907618249198923451198031252296819468168366893678526285685922222178298452360080500906646221294905273069945204433043635487401239431899371533256626889402325437293546437731944555129120117426239626028050070512125538841018769930397118384767104446474801097581552038101757650425504463808555621870265328026146651605810445264788134867111574776713909006627684866397786246509819085643992045483638748095129423513279132799718792646229933465327302784702979350433632592705014101344808296844349729951340018911921934327820032486532782305882012731016276400240365145051425081867682752943084658892059971717707874264658261099263116072489655907051649861757152187285446309669267351682145750532193819880580474695212143120968453834251084090162644190256824529934089259667001174291018348946066540686977874126807411643253077464428770685174968273716055502026227761247306197215571343815406798770759734448070558325146667651883233538392323746618992335026076937465212537717169868240145670888973531262085958623074620290274667047302031871516838599266169564672902886691441436532025825825356606479630485201868105741691980398203439318603527046430136771629196570579306454770338933118241592612763220209544739088414027699492427569566511458793655899265405368041573226148077845641699703414801076467810011100329901719090744969907659032738257766026748819618919467856460851732468739914104492838203960319677407309386425325047647019616366695545049762337946110096123607124382057966364539538815885091770112003534214965095169998893700616782966097626626629512286942085499458452393645303788907577547487727186254262826785148561497816469746718492456820878025109349698358992374917276315595754171418455277922294562369700286160510023597205319925868649904513973625651582105082680180919005218882479070721370620596308867486680958077441529778379559751748859550451521964143243207406756877546546821470967616339498175063140971934476238287503130594385854415160835191784737203953088922867147577403567027791763397369376573584089443983509622872334691009244181060985035451360494813084941158205393630030911829944340058127972298853433589977623779384243585567685979270290334168671546691458003379951533172685678953295377332740389373020486741582410495702373999159649353894540730880606534707464045835848890545595179152181331359122432706022498182469079477185817875321256045885664850519819926207114552333755195841174137424859491477500096641472437979585040251605829143150075634385923891864353554085880878044613693691963383904215863576398812310870008970959188215640821498278175037343296002076388560177320628944734020140162671713001719222356501649654667030531211283399889208215158893361482137655396563609415541066292731615069698117577507498491823996666285334474514820656599310349962642769321794220412678372284951250636978479758631234384747520437044861113273887291687704340621224792245741394310441320578253887676800369343577530150567491894399562899762952108230071781568137184022511690649162231612244954072527661297066785377125951285401286134683581532027871105646966906689829412681931203543715509999785696757078528288139204750080623293066810782900343790898665365245822781203255746309941259890202887858657763303184134704798425311196007551983389136206546136455647238924786054785823046779125815804057767509064124822229471502442538022369269300084937348768728766271332063691374942037891189124676846794381211150636193146901907084075899047084459710885330673796525249304480263688323389203022141487650054322092434236667629475111433999604359961907493949574215234890269613366526554447301761734066464350124072180058336432622973064222980929021836565517805952136189852548952942595423913948130691883328670534151326644051035631268463084865157359956722592482066884755071705624486356898220288515563684833520325927671261027799390370308203212371973900238974634115306860739201146617731124203251956431981234378318324501001931346263106309165910615958051952982681704144992135417925937886211113958236624997042881144310732967486942951681552822165655157738469558060801173516398563353230761266890106049410138906039788875230910253740980108492651243645996629784698404359176385203523815808230617307242518766655006332307845682348243954598088471031092795027790232202066093096378701494649512917626200389754146394053338864989172044022758921972422859129669592215807510048053615512006962387899830410992268828498609399724460986392824361797554790670248637762062805212312882317427457157636025222001518785804065862590576312410804922908010814487715995403930640808953980573544737950263673157525039360074123934361732685992246148929165623317912654807296475773379450903527544149155975474271880303808477910396735600559992957998394300720591859130719604162293741631660877054976784915680857106782836929066715655677897034580024792195184836891836409190810747873926487659223132310043089157770781850383780839035463330021976138006431353503365944008897492261878180974076119761982006725885691117716027948393877447102310340655920840522273489201784416982481989818036510501182039568018285314854822290273202797265396033849919438472413895594939934437480159057557659240248833832192585527324194916942541045623440732582156823350928595116429615595675232464393414750092342957763602799981104355415321059930238316586254557754528760398029124907218546826310379096157293792036213774902835073699640311022394123369655730250110905929290988408163547510640114294891544664478494398394386040452279095073192384775498441643401887295400680885431748932222692437415017477122674488351323866964471800376627959000740720304600426102740632483250755171886762304238871854239152521831540767372875662849381470238812542954650314027373876439508707317604447558787164450251147763696858147717739909418331415438459446745870606069814535549647051671578374981902059725296582865517334984576358616733589187282743073382285039135605587516855208008172400139046835501696085264496721211183629889807177433464686241389448771803930300344925791635654764740609251506256358165863352249583134846956136895272041051170600245862245518141261025321142922423762815383804204760359393489827382165865543911752876277465935023248311633636239704634694404613685583879855708832425992986274806063801736376729694111844078507675076701132163990715185669091721271929141257772301404885644108432476519282702151627382941305824676841567360832509566867120730333052311654653534355513024011851720803604239863444374986313082617712231765282206111525295317581709246119500177031922664997936927756546729158607102927319798337218651870146395397892513712565977633095333806125849189084946961194946619238487396720200314801756664859518382777245913204373288982345725455345320676430077639031622847609308134737448858794740056259078494919715038014983718422524396748765663340927825855007211411725272381365903122776585471681863532562157914588846450993361266489422139436295842461035625689655554823613637529083431138226522255119686270872837171002976923675317497288614234932619504117255611006853992478615119614109111706694098628459219581639839814137315688783123246237024913166236349374717531025009440245842228050698431790304554462337001061534508114359704535605719015216635178374925316266559807115604727498094974958148884111744931343527010428217956285498111572464919166866896148104714194492523849963250109020691676440262696291601933943096792928405933484818773377621060660191622645396423945781329040759996901794413013706614760617092018443490775285051293544105678093737573728671168404865881480303883627960230524429027777520976628419451416239014345762962686406951204062025493103972854013127796094064746088596090941382562810229812422377731908246400383567267916300253679918373906734966653086449360553023389254175279236585599862579523391449866660090786740402524277436451836738429632392857296483055135681410602711350179240606765537077271594534213023817301720450879558283979125842669109738673329265177151749243827040390492204455326479953282495255724360896955989697377212625249904835508334378119933019568824924933705579690995595709699995723061038349408616969734005288502850043230467040114625889592899023905570444848661910062366883785713104077833366947544886098748858440419581115832493687371433655608361528357137571111667816624327272785189126182566987366649046132590563526878334234114814908042972603351379626782900288406768533830087576267255728529226074744831571276876248756185659301086346702993954704296640546946090767333842826950209595243122330299018829241335842846827308372271495990176817428417441410690022631934290427226899078353510646754537992057354119595860224716881195507096933838939509489344640719941292705086225130922066426569306137997963606037310249990385314261154057658003831771376125967242880584492058870889340320005980088791043605166899051961763679141031428200192758904082967983966618484371887172833772090334205442458717595950143070514942975393030259297337848916596451327439102248308027786715520017276852650538389994947202698456990876976820796740462233520157112011389793444888208067317284790621300133781091183611194244089124105828107381133905311991147150327529405552972337584542345845824677304131757236774392950504699187107704123623008585902164724701313621703835520470143637699076270952991146015821143784472838159739572066574458032374218295575065415166979020297740807094980431901156855479071522611186448938395302627654962061909956519093105104636329411433745043236278529081862707605019271766687379497269180871586376718813959756168437704355783931007488333578292631214049955753054460206285716827288616081190954783680926090598058630019078752142536007544446331875250725752827408930612178903941584729795348910891884796985069364749500887781152959559731965135538162270915105448311940752699369643300666429615189252543792707209678044637211347677504640997046820961544938275331402869098104170729240816441471141635095026554262800446892699099627960960410616493537628572033906344387055424605194530225186885074124105486268862453672352447060780749958431202161551864253467727808273447098675434886970874926568110405018946656300753235900281983603539886151995801866221305117275611466911687912147516929859477763671915083462284118960898933222950959629714031719627295275428288698384641318183233299920134273803927083063118864084609275551400789954574362969939226632886024941961264943841222108179835013017942983689226706746052358648908635914454854990040946602203788764260065259890931073940240494728007073053159626911746381591365684228105958392167299961560663384000623371988858005723311052600668301426160069116287921708131045141525985843972079289547709012561179724250790253132396348055022498442767478981202902319954529093408652010924307938414347130744358176042330468130365224501888131129151264956923663586891499091212590048573293845495562260672006119892543803669144108932926153559399352981298896952582513525729041115124883247030227180665085280555202286882851081529450128131459994271174699310498905240318590918823313771003302224105118763669482843677995034725607767376485028363214448229340125669263968158704076918523242229504172997796266118991801462886086485117154012478466292380976494498834857353711400032232758757240208301716853954655865882072254330531147205327461258553644737399384463150015557189891077409347071063981516393108092596821184140644343377963064528799199734057666429061989848920111157197436428225023749927408264050323059112072011118985301047828935235697357288200723767025553038427699396890127979215897708468790137553349934597477199056632272325149334211396589625000809508088599038084659498730933286834174787741465338008814374613894182404447948320872758391363463323355702025571704004694004761113751566236963098827987464201444691513997421297236396722443773240216410922855701225157009034624158473357023450792437775622779353039406607815079531665160445779670718871817674474246318073356702685780350140124058935746743979791772037651692044136041835242175729608335740250653094606071237303262068160721986352699665009810090374268223927288148085131571675976224883664241701154036941449465206824491358800237279325663212982681197223498642640348256413570572483957644901496057747721079091560328807704830694595153949067092923323633260981040942944518132701025625248115751273081647114424659249607023445315883668138218134845931867063662916104099565273934498196388076257502567768758278144435378450137199852649538100708036461639299764904410995597124651324848676832798084670607505664153631527256560946314055995383335467190081375357575111314331181206212690058993490193375915024860702188273763146594236344551102123683024070244278677144325753646438243276079399140421725381576385638201008091978846803174250077279308692191382137411871214376144365880617609692858749285863200338041134205376111309580003233994697332859377644240386974789697771548962953140979061987246926926542162575768603993519445394642379092957237861962710826704617655849006027419142210389577381666267131434586908511316158096756567660445101043964180636861665887113531596027919601821617422229757201024186613502237919360359597547203685868334324338627972218792480725871065045451530260032489032117008310965326436751375831825569103721671279991082079196316622477159866477747543781318057146009923350868850681763827511322755020200965319168173089707682307458869350112171394164169440247847735707740337529285966438947158056352126864287690066589833143571582904018020915901462306987218391113555978601926623632857511150697022173161495345322140576058175802310266682659811718112697852887923704108521507793822516699972142109477382684436575402138910056951905146142579080063890121148869215122201663305337372015463282475720449495408265596775373751785768848231796415650505632489477051635114498962652727867914126578222683956615061396339370303969016678358661499382939997785210976784982003393876455722235655074395949807884413335878791615328967329639429700484242243025929202133418008361077152089630441057004944711404320986012732189915278780400299913202099728518355811052009229196876080053164015951424174366887737106452223725115483901419689098908321260002792358761986141944309934714156576573112282688872814853053929356533914562518743148628254274154928663032609163727938951627340526763815382550688508060840873462537170390878743371464823380395751465811959805921945724403989296051285722338242804128353556414261578703936728222599443682040771599530323784464183521632713384221629329856546221692652700608662888408335183606784210463339416535004415446129904031462941758854564873634071509627221467660437415866458467053507964923426627793501024148542387321333679320506553164113849854805951328926296004791802315166841524994612246199075084917961276750162842368374459391573981362375502783630291342031920020247562348997898201715589393274487919850383775976574961528918733537410980586401322690294135854691758042045008120568958699198283503595339211155663705598381279019912561154537740776211276782041633446294558765464006935041147543320836611642914561136996799679816646039501916904660763508081921037422916507389847911093042653776787378119116908537222729480229721882060097706642726086011012521968081745820930203279905067847804670281262705950462087341399985423067882648826418272806420899349752515356802443481868072789991125941922193757681113458579220880899743374336469455066756052719110765850795645396137462525077934630603946190862455099438296913943132678201811246852252297804075798058747459080664533469316360685346500742134552193461084871137667307209189965490326109765460122327785096240280871047775186786213581665195550731871973727305533332276034895461845032037761543470835484646211076160320722889546887424580621121048929645270968277887463806962275923004384046955752178923496699709340328123437258661855467766675649349108984165778095370328552174920131087018849538722552377236547930307140648768847631800466262542634722525789212561188621684902087002622838063008618806157738126280958998669737941896267340407447335866608603994103513634970886952853159878968924878672431928936951834106606618476266707802241590218678012998793116119688914646529555721941723442341467334851081198863623895478601070591518146310034469093028050038719982438712332686028397738711880707051785996243648290338202296592561598717601045216418474266553471291478406112227753583650292037343078849271598947785500976571542820280090600217195336757954761354574364188025872871141327001848328298292172502503012482079917871731404521681599649953923393866364383301765736611617461838061264566092122163064120925818459850840347012310446062948732367530407326062241347271774615012446095871574418971635204999257068280674090231265136659023146305370720282522269290098941183859016464606327145937360170939014588534711720494068386965603657464471522329797121582082010857408672686335757123779184547509911705600409843410952406093547303048130048948010531540927511601450719171120520318561138588161760412541283609796048843367499401739249929369676012779914357268952026564383300540176464161623368202309308948885037347316288961621661516287907619031121119190623231721836177477866890198487677124247310569266936854595597324451356051809978045701308902038145036708532242348856818889963190294807879580862911617010544085236894431365529230182556051076093002899116331034124792074429693235950261082476607837228365498232197906516788376970691191041261732326134635630624210237584531356228935239653072183695249337845831578559987815376340113545253694649476167323961236406010820948873774086094182190931304605520813538888022160269062790558917926605521814837851421842008348602187819241143988809327206901992102217048573426084211011705276902701136131375555259461028488510854464647823615097616788824996117383330168710802726639663958852427011476519584525603922865303536088484161721284087486106303566321273700039670425514254515624511862631597392332101245854821567825188483739172915756579999113928603956107491136715723300067427908740669005538428268239298415582379456434972912285386611214944385971421901394647782019515308131644283206677976593986901211250336078258307937026614710406950444685046111882752325401768985227289964406916709098237013904267489729437169969467578243710115605289023564422669291779911915319822386253623944902696962098069625632446207124342435571008553514310462156986308579688909586803763476920251125863293381941327163784731378758369077798611773663405343554746962021200750074659937558400814125702353044595151379550634772462434619402508007427173286284975427728730704943733203745245264185731378296765980043104414698301183606675742843078111590391255065561535359982868488029293327819706263876251497051112993743315564042447629195805973238665164170256940027056826559315712588852798924782306234320596060089240514279758790662404304789353914287941527079933942137929218341958962259736603533671822059411077614681972117125005557058946616842650091625376574574148394999032984897513165080929701083553020878399803480173011843080530493414577957605952346890065850778517412819225498236887508897565581660640087057414336463336541315104049510590811812208762343506335307127904149821412899603234434165158316026147107793070446277805448291720583387317946850220056389335434257543749309642989333510553791211292911510873190247659246988489490827166723806658108243036391144569638280162461256403191770530142842370308881559585087473196957741229758337793188181943740222469576441500663260753603801748723586468787985645667845972199935454770528913981136808058455184923362907643504875499773117962670861430905269393865527189725184819388362623217150288646254921406438187977984290445266448205025867471864461388150612601534186114142563557372909241787850759994393562048447824460528939841758579740450820565664835765671325145323427417322943946551867352314318780763071956463176815641628831333446246772372215166865805005285241474478096409876546202930960753792073616422351334524449371786546027342362808652944355210382447934716301873068824390903677250919052774675076137780937953548363231478576305822641115963999295437113848390029714136481918986115969904946416556415232510302912144333050257101400140421339165724864400887897010213216155427947242847575548636101684658741889804702212152732806886849131521236055885152678077943360143053659262388005459564623479298320227619506296282925968550467022372225849152696636757945878102302868233758519026146474532520535540470957186125704532550758050632812897458150055969629438398794290778951883796790843175989925491180512966403632725118723692768844501715757514368872525917129818358395261581108994957887088909352938912042948358984766755763978317157953062931272700041556693558457389951670975781860987825416386215472694319888990591656063761375231432646123653300616936887572257312862833637499796300025269456252619235541093677835804969481287806397614971260902714820885854273810312255816799402022360849674732653888801632463630788133791603920489049121072834369500641692561359261162952063026898999786786195912159515919507177261449564385532695803363955887405215895874961389808099296163992918518867732303740136177012523915798041904123572019875079043700553900981992391548672371758022160756097242897768336188265320387527804782803760724031161442166085749579382275975522630654747469896270895855109013465525624284207265674828838072220806547233349426002067505204662820051005988305774793386024501899338357317927936351536531781874715267427968781953059283096349911378090689313639343211595581224713415936301573884303088104820233984236758871020993241845642357503818432179374832081693280502854024750844019676071311657570598103876155369873619154569680320341563877549603314648352152327436437908312568519935262299491335403797696212421120504938510233729342265672654495904964005800366097887469784925370398741656144449016627958073674849246314846971838179106449985893856834815562571261167387766276517860016090501725697557200055058692573080923137034709488740159535117291395772517097662771783628032732345509630276573740121484614563654919978970299033220197179492959228022354337161125094025578055807050439409019449156119066129875180307642957631502397104295817366615384426854255466651379903485802387214866121482626731947528797748829420684157085492066130882310680071387655727030214336204121257682735099044212056121674997952026016214934791496554582295213861315559440436541857357883648089917257251827408831680692733186339530451831790890594464547813096873656006942055377191062476121383622089105088351139273403851113291856239137389762380983743008337625268160846265257370378170006372183230400247778646649442459578921818680929966232844601326477259469857678053671918127687782382598764641519147459401700571538291819565747970261289507775266525256507316537113427383553557351857618092139607445762155152260750658150952592492973497379416870806776724485929737443025553761842582525199814402173468943920009940326868077197998976305656314146861188868573371884020590326320207413847452605385340666274505669739882397722485251880478796728056340408424233962632070343138276312609975664258752953628383952178106608372910769210939288863953725985413100263743475697449527284808503377119037469220783963463388473202188775751636256620554306576413463694894284165986377825391259529512559050947992179860741305124487501771700338767766712088952303169957542860564273781809555479037949057578577178701858169335092577716513997692046275926217253453857584769376863400719192673347949279288083799698244088887506317282738572979271030302651056330253716422352961844087459270974906941906540361038269872208210614331185441880692020356211782932820397911618157454555532595442768461041036597129917950613782286030172320691780145320485198035455046675411863456618760293064120941194742899902308930968764073611298668334513887924022596368091129567314712034725419718751366686417552243321020822125603627396825394069113177131697454384299854094716444405516322800882905385588425077606275378992302665913203315491501950537246482250787529523014709882790739921800643727247255177846848369598763316045713294311108619253522406331091153638958523164773876191794770974540806354497442922358164500498746673125522566578321793174748389212344879406975274150832564914733631071744169775412553492674835897969356998305022124050561700433570429274031276874885411380284022975732464690039373100039164858054265401877108953635847440944556102863977117306006060282324642598231995352781877076352573860816280224134962176743306152878473734259753990043849569856787406157085070556908009655213617499360318077212471882067541959053136262895840149589915781412224897076624033979085966256945181962278179697103061151952781819469243384154748155342736746891815356051520157067416339128494100912419016756431545771302313968519105706532069628047265496066413200364496569942251125313079565378248640096704993103488911081656554296303852066657755445160807959283603598945999129561042511561490490784813665718647389389293339088490989319422792751669577556424686438046918605772953244736829043742964605370334419199930781282437958505722342679710658033899279197720808600951096967971056105600488757671256695607387656083427636176411955521451162637177543933822893356375601600370259785644725177395945349875828235319853815158854069334334867957056304839335388027861903939454191121394231895422876282109818893345955709139192677778476548199299145427675703019753666855491432323259645372834072056217807850723526728675739075818056556165677551318259595990994108104737951459234681876619833221250753703953708810139261503694802584607770517949850980054831711316289782116616763675688792505626309559545947464254010799521494457445833941486022984839395342898029586559951286583371092033149352633835540485243176016849999360502191188294020915233707206156192712668674216897328087687723561188715319610862876320865975945476788496476826597737846222961955037204466693020079833855615824202444068732606607783953243114669513815907554717365354260550832366723537829229352225652001397875073960480811956317240596569827117315241292294084006922966492094033311260587190268657931090123822949565387292690227090128878202038749208950086304976306008477943889201122698208028433416824031277324955828124776000419398361572160532643795184911302665082130099936201042526298077528690870434739560674452540961086973788725988520008170997525305597167757578718094709784571191296486892642295143501211439958396620991029256312385900452159334366169606944521178270572931530295006053678114500767395654117695689141710888492399788320042175472509577752862400994678329186042908618275557290281201365010280412725074944575537479764229584769687331862959732076965510904563194062582480936308525775143159674771165693003515011354671774837933462867319492927306504331206862054263033642397909272959122447245154326277226249457345821906613377102481982145551392421851335313490380110148933528281118577442686977046576407966230176367585552084182956623035468105416528740383318051581392043178207128762026026655015593553088490115862309248163977382009074805888380834199260398103902030918483401920053739400054994855183199820871210130436230038948234546543723175049952913326890921725491691152785064219593068732183725814538792760380027729501005413088788316130333881054948939998881072692879457645728288749405292635111884066299845888307910572332996168186169186169277684665813569681405361908727976441888742232347236503298515969329575877256856304187813959121435705497356914330114002521653107385806730201327247562170403562927001931379185013742035993144227450528738705523537461909951081165707088835138870027548330799781331781971049581074762328845246447781348057785545562383953550110886985333782936456288355512552074102933840888248874388648383652867748247973904983565218018461886772932437194563024755416306139468632580637908751456674282787052624686287736788854530573393927226527044703224363788898407587263349578842560049518314650365338688724616608330155800883280393213560051851491509593662923830343394805453769719057937850702971689737258262847619102864252811777279483635280088782431657732348824272272915895873619222538340202651607059018355704543155097629630056606910207889604554324299596525654596443530062543259889678260861079063037378652725164548743625539698304938920119363756777351510548153536524721630169197265335050617435856508940490422817204950273883192701743890073490839452449594442044849635928350088440657294616564826479461507123859628292604623567552302622814448209836184909338733298462497471951251872370459884240072352875150678776575809376305502183318855697184237957550620465454985945442586600063316560616502040466155343111347145022226782023819804308421874508197641266942877713122595205018065341951966287879464327163274776445952755572469592211728002975898911143818962331194426960300163334730283563066664958525362177830825710962660806247298146730793079741138476289683032244051729451556936702124522994115819657131490458488196805367288725015424675484872145411139501227375298369378404959907583143844238493602418247288225142387773682906131139258594580296748430834513262809570835939832246043070175235446673315993679726068215340246462962622288100345816957481236549585604217608934164839867271762595146485254561843963619068625721320614242683695930199159700249737493160652300921272530623655995807532829434909240578284226196275816772786449928052428512488478394930325218336038865861792376277927272401338745707083400791782938697468481617312633289482477854645183422936862023789444993762381450756003430510014244312626247184248914098468441527791484780893826073327612540641748776756921400337806182775915620728755887399073492139378960079593658684870646155939685919650170672649488874057187555632863479323468297822583740438468141836057545753790770045820830871202146703781317023298226151598196834204583174663930936792420275126447897407488209159478257878477063462621429113810444179668718366142756502336773735763654288838624229453402949486373943748932838946945319164852439672949265458728368484674356948533839559949290336110378122718899335172284855549537189298132021551555311943775621991635023469175488380876792999961300731663152656635023765446144897169005713239713764356777382315966133042814987207243016323247274236693957848506211597529701400253158684628319880660422391653590622943318921694480434035776486205598250479701667848833682697795859390227785052391752824156646615271059060624214443160611364339480792116633914200910599918024796325746964163921190781844202673974903280499991409416250650347855802330774688248441050773694688680224556598165519451197895844090748301450145813641828206385730381428828368305469409234138845870379294815885362306754917472558947533113202897338320481500193510431466161176261284895985522536140623568400935179711385709554977025969871304184365516926998077417378785118823312221512026002510881815631504294799350218800470795324492258807017981561515732237699807502321750652964277235595254343309429442234808112615952309388470590887734794096880947632649608873640827829985521899950142731913902437094452576510280557458369502163567806844840489326968162539122621999051149044375185152202425842759798370885284876315104143020653672058869970117228039828657654315117163999293632376486048545249744946605160416978236971475307876955967010007007646304090557730384611398318525039820235490607132757030508263900659191366189935553723212390383861884628895440061736073333591351475213036202659017329048852872577225348137477127577167727674443057458127161299287927942732568332297728232882460542629187883956217269114220810500468336040767602943540798560917289036730017667728626521578022428434976698018338279699995089707946944391934425298940415877574421956798733687576112647221717210886004733954115180231703909393429684461949294275597358599368877130942842032329398599711320976631268653533530058114839991267558663195339360037806744314100018726403292637196106733564345982446251737502591942887888823939197171722808945866884557414497758473058361768705407177980777593096080928915714626982262363582146294545553961540110695453164105711422110993150921244766854648262194063843916230447285939366435809287106019135953812429833948376670923330043496447180995062549152503154628918055417409068047496495596780065483711561595271721022145030275032169099008139879217011467102062530386289917599523781535954583066246729207453158454385321389376111647362670487761834494601492089588126117847004292298572848219191510128752044092272875478502321990890770734814086460495566789195062766940452318468702054918941270133785716594150956230630743483739720842166062729037777417443987060821006947257674459512333923738798680863816140134827125741859387428805202630348825494915569332821625124187155649808280788714470104449076432307904578604789683615640190541812051035467743310711725824951492430617823725752458490802061753748303111385288712424375016284915522808551087171697890266740922215747818663089459565282994563023287404891722049185774315788299456112772984524744123995558639079439184023359422583964663340833782251640153832063517286644391498021919074311685392971589272736797307441183782979520903773451768410201040074513916363119870261044199659392885715132431268370228373627932178062467778666020427706026935821024815323232433904286096999733004516636171292346761505609431272710670265066494414780457915673490818419271781415772267647899955387885988006125590270550479013900282436647923588161724602004591839758988766988685190131269163769185891537327058488095805649988727870343535008135520012757110864774314540277107390826640200732996531489228174885853358429310232829718313904904996234348766675415161045902168448059860613857143771076198184070681317939134565269595796380081252474355490661535702096735026079631732575009678680357475159237915635796334664358616449604949752491127155683172360395765122753490442733588244925471885936795624657170597947864944267999900847979371765245332283071904544335924498883532509178020942334437009098786441511875075290477288767824993373980334932515710921897276283654361957515605913995898035406450267229280798191239080800323900731510500598030482441478995232321089874014460980981814154702185976974546645566292835202839022834362864380688803594628483493796634554283898493849925047208572416230030646858475415969007036368543229217134048520422310790169960328415418556682592302375949866682995736451600252843960709554002316115308474089737067050030131126100853955083220381224452378837323098021812879504775352037096331361391076786982440871988082924837549388826783954815117021363119105390395945581616523529712300559810311786116419997478322956013779989642347894485110216096403029131820097973263054151939067717422251898569234294259932815758473512987286483274446878910962302653787894892887744834161410098142360493489714704756042042506982950488376396265014953089978217770553522287613400272356693264286029186480728514990978499099870214048938528254923957296016890893677980155210201188380175707843660568913849389879659797700173075009999786934332232088444578416162014823615856383203269307209966989952519482058698669318817493211590761923205965254985999022730292430237406390898882416825117569958084873875926570986523564318941115989965574829693368752175236734351083433356161835446429919157214078803445012184436812763193677584159451599065662696191359939976690775996738176319062020803753757583442825358216716330920134694266542367143352090986782381048075939458098004773729087918504370098426218197397309467602702713559895484238376628683229445376672202482407768554514520020735068966173954519876515842183174848148562532397169369938022234983350447403504090296186350772336451610677061451972218962330362279259843708218715104308600029808903078872163197123723059906159845838038885416658397252064998190463125871608775119281873423151771382417819751138198051611677396077281556296230472314886220792405881715583862342272664377106705897593005547473327579127343334421952609841096044049441149545532429157209071112315747350167777709078948230259404248152695413512272173210856181290801867570261860215785469120579610508124877805953020260436719713130447690870377192934302911151865291267747502192091714749551161263770074525024614021100119727216366065354101813322701728372276522108128027944289827428871866803889612063912067441581287723700182895110549633523590862017294889169946484277525130464654263967259508707589383469045061176979345087710038627427195658893983975036330418871118268378255564789495172950841070479676270490429197189038711646846273486822964309178868321610554288531644716591501286449762603128729358070177226103488629244678550604075260756038844914078250816288205748578652185627694692272920840088668445101985634053818736833378882596413113807912482760425595732179118699991777758929971999557354227846906858716120758229379279026593219934919242789879833672468664523947640191293513348644567483591416843434390413050237177524638613401126379327399181608976671458253231944948517890662181245546397626631117929325437083335044548466018117090523187077931443607573274349642776023057037170808199798639759437452244504540241641827509143754489794103049532910342704129919801130847399550822596686730688192678340939805794134761105435665364248880205952786900661642303729735351631339830117376187094983048067724873174298802429593948474957670437096495679146270110598853170318863462564923419106923217681992359156175577392292239466411842255536737441902735990426401216339017329937487979215501767088607719255354657209327658863558993767580215007216490879433046680122717115428237160808718891160783724247219573672037656791365610914740587147081402114972235533455035564384557111949405903196791743750724899967030589620373915024837793582689810215680899942982922936722344061644768668287507159288755782384638126097605041921095712671855170793612014835856888395183765185293269538543731037938093971006630612965775873902410634919371401257787095122101196499099688861937301516558760437455562822726415184953629550651210626324559275748400993089364679504022386859348811342706083392242693217380256650817319989945697609328253833998255797496436925947982104935949962894225473030833487454251019703225265901043007093519176212974244697828556479028225907086582841250849931463859484055559362700626469449485714627325752886383246035435998139020897843385099642186297958177690689599729625312236190512822612207558795084392425085225825070559382741806461096859702095100804486715971376274333414715926667463579325370745426708933263584326437951813193870981284869691570848367191585598437508000088179963601594924817270265278911846630625682781694429276190579003314933117787156090980200890567321255388189979478915182792247131972747557148737418281510865032038891829707083310352494527977543148522781976242825639165349301887175513098183340806410164197465135963418947688250594843740481296904251658945347943396090880157177445187212812902283948663580516156061420772301683568055759018803348018546769261968826680727249024559567704169785553006396997804175751799592525137537295716547732411795277933826887893541602948926560528633608990707852946106843351065917095739098061811687008215087386849830755683057308281714064851798415105382400969851197323328716368200688961489153373638551502965472113695483538564885852505486469688251474705438646580074984295792979948890982104903370840216130109499708617703126502210588983206624431126941744147736032749547408561985392261367389584397271237543307601396796704445286346835765442843988140206667492791136568769985853580804279353602416829750968081725360360424358817016420513963766760561529140720419526984854703437444750629938916176347529120441552207778803100960113302533560887145019794102930851299796646493562577013389668159219889535523916912492056539304123276909605831363285628349105221468735758246718412576690733159776639038674435965497617448707231500829969336338406794540514584197077320708574864360490359390003280603113638649009949768558179257466188328752375677881697045424911078056519739411144933504422711075222694349098909543306949572490020565020650935192404159130707729053214805895520022305859092925988067032674505835266275561782039379487217490912315628581711759295124996291955712206995404706563935347614779708499606599905945941166107528368068899967497012501295561239995344366244485796736202078801648649905606135063971244532000004439882783450649146030496552323821889969653652152892692790461329535702001299797781399444849837762349911755819999870349379820363501347195296735997029736500453898689424513205355144787087199288988602108892529227029776315943236062042046413284960776148332537016592627497783820644677689022303078827922607801422895388062097359804029874684328142012461451207768310897296409028945218965001506031522390209607689616549468897071925612097540490921554061810511682244415397749314520551074301872137058439334303660774029964441451987661555917873134410674113871107295066640694323803225512303214290693955379355610168313047571006146720809785940530737454727004270348941319487176704317115643089074846032927123057868189837400328550949732926252777547536086858591703959309303847399655601717336718813485270976854844193494294766252880257771037166335467590011419812643668743515899638669355682428624872161186374646715536648499251835758255266498921261605298496770496115486959700257786136735699252456439321979118315903125664908246715586840338161841143181412570649107725255551679661783697196369072922790018913982615333009721516181735394561227180921775120344023095807265651322363702890775834770921714333776600775616766026503383248970085072127838968452153928125374099357456710191567363537897463377065976667560911502964932277119710373492768034556800584589577176740107768862491590421159698084122215442906940201762259057288283791233464774321678070874163255659675297228850133465607207600850373456223608705347905535845261080922442263182819744715083568625716088778015091872415889147842610233257987468471322261364139406320012512829371130769192499056937601824110251430564279828549722075536514167176667502521983593824843826219657338948763982318484930513574003438734764445384872506183395472842057399826895392913448458626744893005200459419474746130370199697917972503285778789244562573593389712207558522473471143972787580692025371591428537985342671292904386847130566466210563485853627230918411754364516307616495116147929264633723582525545288536271391695664939495117478829038289972960954825729501300852070795264943210981610197384954437385886379764953732227659067895923284081015766688630557834540624696163609004377440728596008267659287997755516844882422837557048215840689120386796233899056244301950719399916288796024959367755682464875704609005604451789965886766233960763450436447189871436146112917041023689471813552002843459432365076521111542226571420647243254325929195665419883326609625649052731109209632915472291168819000691542439772617558202471553458253078596898721330801982030293494754149917592237564559043274039964469286572527229102103789609401708566977049844882270412388365481458051649104393335006313226585720003856850633557210282582198634913969411985895517513214562157177419570365492935601637380186024592399541315416352953373830077411630205403724643894304835028815424302522008499539693267947077838623442426407397636650391439912383837006813451828082805068404921933619199478735059891169998742292330527331502508410783148971917794126171901727726429874829214009246893868765483763695153912745288817770232388113456555074489011167185500770794592578450716989983135235878080853276980686549152053981906000879828296859614859307756576771028983531470604372998722312266450961518901064896670197349640040284112571001359222224962564160293489001609598492666891469052767597891330106386476971790489299683434046329539206973084721476036965540708926577299802749388811997960481799016293696181522416853165937606380046077614070417084763015620866049088075251210446933117335403666777432234088141668592947499862182464033292222457094886936750202338459079052609306927201871987185810810843579593762136662466797031343928205966507507069590977545075522313535497560966697546661671936783309106813752872781668969603649380971342897713778423091555673251783281433109080318243826610499604371194005006300205921926859661139304679011837990818100732758608502403271213955462938474836641521131190831747608822961999915552523475876368537613703724105856628176098263258446274135198282505568233216438019124925411787988084626283506472385048552159977109978382175284645656347191092220132184012377364133548783698654642833922621019269567290811327466907035467244211655244537869728874688438612272189652738592253135416921331298622329588461507583294739413262977119044896057842711467394271935788012680917872180727689060167752630679975820169747089428772358743012311970325543888272670020728054835862836102763547434910468502042383751335692858276546431300776686970655361158357932019732087888857812239805103105624431820309897296484663930370190849105277141545455928400028159758280862545080348953759660268658539579122319637273329261947337480854352092301115429074640369385422002108200421916513887829291240356476161708549594384423136861855579501067240950319512468653599656838009812711716073805609043366650105821058699675697898682406274452540467246507971990635849886947884890566784852169876920558673478553467003375515728157888855001882172811357377633503856304837405399946369781442793571616610119721842263870750404956792431146736436065429003473848842579259127815374421004429981129355132018779832469089912290435509358603246205994374249565993878636131243558255224153139728772294207263400462394539647529461026280707827553309388874164907560904807766100868358367513733046542669810881382019175008886736591576311440230935385960008467218564419255310055321846404291955635567238646690574784685647671281064240647881892878903044135432700370672973070398848372035279781026452728645420068165093596546575910211908028648212698642750526949709957871043836040455598125766190054919074641844893182115569149915020781533586452756509603685530387592685348302074370292905256176136432493697373925008295244777417698897346709495482915053334098623184860660706088875537825883808634714755214872834930041066135761032548308327276342326941933208952269077461880302735218620754176964453031064646477573787804507009750482780065594420438364306166813607870179023859434962957377916753217847639924599178781213400725424191861680734740873982838896693132228434570256889791782353847198841323591733319819554413943664478953647939568124295655987066068737278751474625629909756395186962616222407827118754169128396086110354894815547467861183524203277263574902107010421239185002541449887123370318229466089024850481720356994373967365547829480132841546637729503268829843071270680509056301210261969287863977081187919696398393007822991393742416691915989378253641592270784912862608714011256674079175592855673175145250005679497354031800079104154199045685874434074770712254107963592411141513739885174370691515692996859455152555900826844067408437544019679072283816210639804281774139097332480495443841749566295183968645581835731502772741033294806784979705186925159755205841136132026736274793363952531370425382090557444395671312709799844719789070498585367893641915152106759772257640267986100012528386585960296471959469210144573931155207779800689584081591402291598790073078227089061743701134939629204382784622772277984733619071725722049563931626959539011590974193158518202422113549936985816654406779216682761820340942741668333175192220444720530654400303175833878738553937218560659675993087888827332658550569838027699948053187665844974383799777492491191792096668142547988292087593100936892163987467152978890984509402430955508038931005819366661906011283245389251863312465089806933409023902793677091544100396668588790440440958672125036640871005152384703447811218263568723337535305378132048923083695838190943502375277548200402778327163398289738261315370225155419831638411399369653410823142912381119277244763772853069379014972458830437407652418846421910822805481300706785461307589120010078603085031375555332063170419040721056672832349398391099624776743850276693394432109164223210788107199197711123376982342483735768614317358991069202593193255938588465098748919127425549355295000006614428847537975695204906784308078691590988169378030270461959009194840858068550626083930526510514068121597825578776476130036047024860985503217461304738362684146356160043553122202864036439919027159386256916781625392723244317616773031074874778836444021938563703410402987476847612160764308500696955032757329201982454986268430302901790489246428303024350474568664704926959755312610939702505542957734216785168174053009124619183344258595482256931207321186085374406582720808652765459309356216677620950692294659430862641120432723473865655855087253970332648318477355897152503537481656833209058371505527360692861283396633037283876045371341189282584668751176105435234890566662541307785615980467741662500928281536715785576452331652574831317434098864451938914889312685641899808022040373120986438481242213496490661209376141177871769698377636884229469815113388191673629878089255419750302065378763753524089616866920232408737623957496380331600384204490947514007417504584689992772685741584540290044058289537951500985655634773651753270589560318204326634347176957631449376897192586380422681676904829562615023405072611841751345127186338825206427500630878908818136698473446739387068223461885633904028838646103983215929322122708567486767902114964913273898829605554250793618267546448840286280866720372186267276572841073084923142901256001640910163287913652125912826700842895925999229657140146216891005452829490487831348071903690562075637913437570037831949569951147713653131488757115925879579206723812592410881148223306212964272707037291573660387548634424367332657412247912318414824496225660787576557504465903320670022526583393923225224069142162802127947864520774635922679659980440378273145335760001834920233153908280138055932572960460190433244974082492158610165837825501807256860466594599187202809281930464862236177778895270101511149235824820638373740690775888555499303796298989012650122589907039640513562001900876648100638765449633559606628757135151103560770365265310544071730458451850597927680798101518204977365484768687203628037688242904479515749238723774531832759521122562743797338367350922952425268730301924999644108727151972262747199209647259509395937928277366925692914097049013480648222364070151469263832987447187441916521943209771363571942518889771518300812347370376143199868413819809733324661516678076537520289826294437753495814344171180380451884841068763052997028502430916076693771303975116144127808877023754288368614843830220714139453407017047466860299477496655637608309647559073244175586787928597216050202848899041402536185137580455356887044610981505280111669151859199926797578759353261651106554450924991582354316296236864103494875754186677829549454066975190421327041280098676179054280939285917273159055924465497880802181521838520003565670310734563264264574679116456047712473304135445329660067521413205573475507490186337236442978537772567873264255369138377468037632835092472465833881151304259414252125610749150387048868799409075122071928829501471042064056731383750535148236574014607526249741881459669827834352400824465847151137807290026536302583859353095122512267899695867320710042926644902485763890309883046349709319921395144909985152519815460976052666315374239246189537554897731795085030077480807040211405779744499091364784081824154020499100786132338284083134008572410257483326938732866208819656095222529527902458170889490442326007465791423916175060509200015458318215194158230496010030448282590241741358862312758484674768514661428890167664058450121605323898579290926487761630603139786628423587617992140374529180543207313979656276996410096323270894239827311983050634955451655358478658194660953544153861982016628427766018610219097688646068079507438117921450771341719517792047934112734877571715496306227585376153461168202647135471270254401473510906143161845161456878671662687894913319224318631744081900809662720372147033507306589377830427877060760304471566879522311789692506354725871272244991175440167875204432972507175054069285061091050269124855854985247048697296795072276716427853237055198392337614201469239784815827997458449023668858299220373615826141412279815181539069624406442789397406251936241962495667764938858641320581703772366274475856637600402765358515938974363499863206773080383964331535759206886953791052209866967784215049136673232275172459084034490885568631250376838327144478152189493121413966920181162148335031137773042268961808183426110044381876008887030589585921597685461647492879273800336429733789940232856135362647771663359007931848299718270743933364737044602342368824298048197337316460743076797199300593919528526442074777179293758864095875152025882709898231192763570067883491660677889461126333522837213850016859852168493845504180842194581087787603696032961290013459973674707664208209870829901592794302253410448443793775471184252520967103259130780525669502579169064431451340222437025768886542317064701828332712133109655413301212990954658448640572849849533708915477251744934676385263730033094097400279476589428955298090626471055362414451672504083976938648812188325325101469830918436387080521374877552356296452711607264064868372667027928153419827505640713349597162934589994796064923528157705079301617529365787323245655196338705275828224452917134650844567516293567226746295605907208772152240904991507129512833730807260710527657773952994464907870765252151885850586524281424226498583347212332112776344995152702442613336316435339194564689269266492331047280664300908467514415921561538357908700123339829355576206895640757047339577562551734361204824146699819192480438877993623003002568069812823690066734213235077466120532972311867808477250066668900401425054883318601722361162996598783214959652213872925513265247402378398953140094750252371670672324210229103608800612432906585940892968941003950681719449741089429912770913729650000598491507343122082145903350090076876625920374566261767068936162958224609398738479742462180746569596376516782560797261122653564929807273138497222840538603934589962240860505289291815387649269090915139836221436069143088261785434643842549767918073002578081915510582104303448171557150701061420196974448145204043460023487211756224728467317142329504107569419811205463083004380383399386686378571607126657561016861580007780255736458585900448102371883316463733855230152285281914741140404010610691073895308218947868337035154165555134687335125744292623081205978013062604173026195358646689998409195030823087997902454125600152970890333596298957004789073188278190433531646918103642089768817752579030783637082650243263857593978704712378137230318077489970934860020746344135015342046281807539028936214286986402410462910318112333631234317183284718503125104057221715491367411812654845816527863863970138973147283586907211287572220629711801613871405277148892241793505446547427813655653960008544671871047177381482460076200741231338760031008254241625796692719132158697974301301701172984723224805792070036921167606828975423426519309785358429531177043231822020282778828047456108330821053300578058119494436668558111446470716849410545579318462631142325953116897181927761485544770690957763385844912581324900006607158885276062599647890091050070410074034840580192429725863397894612915384948501899729028717549120936980358598795803296420068400286738870630086569674275390863324232769132068544497619722630207511811614184788633830945673048430300012245679201018539065446483619056173560736942533247891055913817625365289903721685746222325010170501451683583991997064286616831695621437024614563370281399756174557724405804285850203375962580946292333940000369548710519889090505738128387271535277775442214670406603730552280581220992145121981726570155164969885725459245615710417618571502507457169743583529769732875633578647048689787264846801188241769862401075455606591655970964164886118026982707457118966627765191917901798803654408463431330561479852305273176190914897078025225190645772213391629059707811444510311774091357569192190807909661914257695200140079670444701800102469727461709118151697957629016696523046671820929481288230555949140612944255448160058451492839334942094993701822720986242870479488365660561183162743399459115098206101126040671131662653413806921544486189450214104424316971068641166664662250089707413169451326183826155409850710992410423331007897157096803066631746065425177186141934779732010376795504456975263080729474521079221680809969701412526261607127814953263117945533076108778634193113148587623210654345733764353047173937990176328671192287436748606326748882020426749979511552575776903032337484652279549163655244523133094646629037785346296712128451802250797964061836467288292316004635429096881454832543416377934065626836261744627274415914073761552640509884738507429536712418121181717783751303037817724292006466868335786355448463058321806362328966895319818647128121871180419751851403439407871949454159317941704803436546154455596158012890163543107620095035684565430285120165966558350243477882515036110918868674510876973264182615805497697471892020782384564709799027662223802088938977375834272222787708986910757688265466458251962782023517229160616840720922083278359921888196050788480849339522177872689107318000625921295699369929160825706272428993934212498509429046312624896341417977005050680845365224314423379618422483237596768494129007104822700800742325114531067175906423148348320703823037291100399919917691958117438956046618638908436577097019070200713405667442221433271681685233928169512569366303811314413841575320000636584262028586693930069929604051433427851838122653661233939130543708808310654196654917783963874143291776598856685469897869524934811833419254075768952296719781905617870938056107052513417252615509099920189733811864852665811924692474553080900318250076451946111335345196722783024633027664623399901361928690918734874570195875179579535390470756158209436244002577312570753979532344582510646527453351669452029011542881548845933564857926855601045425196208033136198806397160004997204424267365404538418392975660381547685624483157556052495848420386461500715206016541336641875252644111846753910441864398496907163511275731219032760248127292102418124950415061878438525152556369348078608353330586122012509494303780891719301719076333292961983819329805577044914213482621908685257499476825603592774958549453680292599140758731521818569469843383799223945806911812078969523312943251209331159777652535632722994271102071557940135526836606169269829382473776695046277329270227210953292203521158385098382110555202439244832402871462043751481289926388695975747939047411865682821842685019248683402428985241651528811887381458330642884340307811855008738128377043963067489863587480160492111948421511049525928907114401318087006006087984357340608683120512574497102712172422435496621988185158562485338385305455090367447473876377947756869779425095012664070196286836119043343726957796862891226506454515432163482912768078642415851652915055390053978844012170955962403505267957888882738734078460435842103635387386077830238225085145016593553037041734623564625089501408483400301684912398114333307383375373049256831844548862815912345301703454090769522437988547685809620437824578866269770342882321651274081117407418214990482744028844383432944393971846197678557273883338786334372928494299713654508957203132703491898527644111906166530902448204906590569506832919056676460771221709618389195228207288299156447122764578481164255143182202170203335901563347932645574459197837407180293386320492717866401851868230004181237113114057712172461471316876825490436073257854705311603677476139950148282877875303291467904688975405488960005858277120076760988994018990179713224057177794011596999250202178524177046745605657377692136782767141313429584310958596768655017296717772031676876192807748058962374803074572628067697032445066205260743552092623261032653369605396668626738991063922059334559327521170674496393690889585729260324329025513353066146196630422158444367077134078728838636056169159172768381430258620742438045787247803170893779768377901292354326318485358610459020698256600498874941778866799140708942298184666219746550516619156996577300598051270773593132687967416171601732654183527848340750337349149085536526295339142181950991057520426107919202003283514826975240828806263365806281317858400940646757561517595095542704089800636451616763581194105377053483207400329177668004393756444190590388316792109172434660403335019271992478649839018425934592152558350361770084622192234256367024859955973008865294801266973152378609576162344382341439731900281931976997122538177787464852652195302991048417543320043777560022201341958459644834839141541395560412141564868456407589222482195296099164747576578161465073442447767628978110281872002774694612969998749948815359612446452615557159824555014235961572324860742223486824460945327068019999795498031101117716276435969692009534205026422527279045869202993295502920483950144001958939406989722299940171675710703088787059945046083037651621077678333857487783399688693550394375167772175571994858101740957127442860738623756867245120713016178243382339828122382583343802892525027332075656064127457654608849121665927614464571862648293459914100871077334077578807105508625799808935341518807027045865229909504040934756307826891710260188042158660351428819198662724995404898159246519068109324975323825597888295449674879336325671455933182508783836803186178160788678293010552758785092503869349543803961172936508070278441168530711325182396454911918228974318243942860065102174811696004438875597142125209923870451004818235012452011555540458744548659327371073480167687070393845231473123340618139445875071492868452690414552752096430247947406449971899287702684610189115443985105249862961275850927951131183659290911982831402710304294947330111782762342919373325608849319427713361486268148633460434275930035691649065149746830650106908451718838241503092692474508600123852469138284800123729994921765805947306190673541961221071061876109597992181107779980002014232880306507729025431096950559522516625962641189422351573454228231295806652532982018487391647145490948794514053260036875630089507430981904496879805499404406586743214678820757092865248784135268700338103471562812705168669635988560418180252039843589360835392890819576229532695306063631065497980508092339848914040027120652731032562979143496858321087344533159498655754786125564294913835405175004520397856235527037432006400038452983032952486505090481177630347453099301603870972156079678549197921167894143415169977335737722360247638707702394904381468151236408437056883879067041522712171502037328490136199610923704096271814873664502747173659745866942520236211730916715709229222417864863131663999027263473790733787833386170125156397390856362194525021281894470860631332095966119172426658423659331623692614393989913949077091504900410303868677947508557486416436699641160513742290988374908348880420040305057625319150442324826229037172302338793041254079257554439441545199281792344841166652167489139314497294983812883093844759428620194368363621609073990288497600499282307698732429750815097079647675286884626216736471806645303818718981611309988868885701349451780418015273135204801013703949068938877521807555696686404241862868873221488643072895175998026046258558332377893021747654912969413229826259965561934382719714118973581487190265641091854665112949641268099128115930089572532441337972676719135377535371397233128820556375664776443136637029959696458288604989121405064208390091497421245826155174261950916423851014525957443463959864081021145512431141004503217316118100236189219571686770273895200878938906374296206308140675517365569328859973318485839081860919524122544498839069795342972768975622862147692195970513944905215461004713500067060062489558238643015159331273793452587195653119143773441093154512502063713179802015931813477541910352299213855746986615463542562835620231193714030237347455816205467869088235175578752640326176063621968268580193497356277012724562369040828137994900618785529868381955922909375584246843287584349882417754410810163353170345950837261779382758436655947067014922877532173461357122654420491221033697339595168445856593619939182507957133891953081143587772114883968225746770794048918939510792853670407363387561875359656606443017556880926624311761681097126421989852032537092713044296308176754176901379768095273888664686414107565896387701941524720225604880425350610365707720965893969466368885442030196397552872124428826165693611204315175184323205128540512345779104388811782297347914375774953365148241257261751688289968569028980211306900723480309264813327785881586959039630914619018170261788839484118363131728268513266458157109595699900967655483819400870199624189299374550091196122909485696655487373736511712292304706946476070583807932011729400903317993866994942059212799967152399731398950854779957379083339903442746902707536016928068098901864846958485697943517170210126587700064326099957130825101904501430191873926737859247267172278260006723133326345145163246834787249454723178075427809771015908206763493779299071448947660416834341561242602519956507231787302315294035107805548678991324434370468514319151291104154355391218314725718625664553873738451013638847478605647403635717605101376473795704713285039578630186706030374399260327092232742025860394343471270564842927973893314643264917579630602641446862795668142205603169546909470141224991627691824196954352121006357581156580644144901194141918020689052382685091980090544613108234773924883900962594485099468728893547074683466383760744941180258013343410779456987072753234432632550299112163185465927406258501425439089436646077450969262518390834261677941984615953267194601150829094273748604213277835638826541995393845148825901632638681988557225898402315558138189022393548806622523152433988468280888287062274705895417229603225020037251499573909006909577786391933684042787510095085225931597826201672533709675550844159072813593548504043811143323662660418230687588861644032867240263819979214768998749624045484727075532238300673535985863862987233941144372584353897640164788631330992815562838284142787889548843001557798662049304268219235397691805575243333951612901922920890541477604181336000140501023284613915689496691030124336083486848737724893898189176525435220796969848198912024636693679364250806368836480112886109353663075035019029520506489943627979027028224760191147525896696378150729124959179584939253317036183732874069306770952811879692664759854779061592781865222753151840747624678869458490946192342666770737871302786798586967793384567608933293561116164170443869229071331448598236291697712500780397841949953425622328580445042221236766953375283811430485142995423068074948582803721325542135676919813628021315705576183715499541609538840772724011173913790012152126292105333179644029469182161230948915828009442019775151647160615876122351269385645476594210602247003813374542401007524056545627428933765449402376298962593424554556670308630202145069891842576386977987834437081609155511142613573501538680486855910604849875114594898684251362394949559394751381058742344165084628436984471816498822646343989670062115848541878515790006507650905517298557897444901250937231236377775064174128802688970478350860456900036935990142044943130025508225595433200564276938741860564177712970481593215840323975315801464327519697431783448484314448966780027761351064948894314780411866079675335427806757310182576328500782260845830705139347127846724511942623216686453311424069363408611961280742285902487637102119947682323705099702475643153313625687412764691527600230242524468677196035274741461209174879737457365185371334946779131805353247301613741400682324136552989922603719590812380587844939073340419317647636031882911931657823538443105883575655921625805462470848760919715825940927384948058055331018475094377135130941878273833674062616739170816214759790870674647621322051892283037326849552467741358166722732313310494086370039049552683022057840885202136982467723891185759840579097025909962993375178692495212043599957092533118610003249338213714922097120805131417801154484354894227955056366170894202608428028513516395785264039624819156607453658163022570366758575508239059977782599636524310004885237420306790102814243053326377860835299595030931421600448941093931911312286485755535367431642394396413803857596083896235263236971222714085215042613971768360635851789255856442140195185565395716069786194683987362317404538742137461062250350005895490926805967088440563028479420163710412931451441899844718252616016506405180941442224518943540343579675964395866784959200221286815687533330406186394933909553339706128421023090044345536175504830698146813915396955422369874643896864633306079961213278391348416882165121592386886019020541437056874129434142747859988059542189594238612597547541042719946648099912634237767107481708448795360586624650300384054914381531225211617696621427031241724657553416560714827038554239747982483727943015187274463328424859733412620703177312045115387687586744977138386201752079686504709265895190916105779551332735987126816859064614159439892038107076208330484804957345999639600583272071377473740957265653689305905307734271113376093260463976431661088672789492127112553637724362439898947184146499664363577351145270473079573921209199185874601872414739637356104383916326919907219271660016606531753998979186829850966626404185140162187406997925565409075105366745428942961842469410184376951844588799575943245860187624594721552365888661088382840575389404290955899036401508021425717186561601562585380741920425058030149150179281423619796911061350460480809699319173567142683914937013500973810448560508368816109002133334098351527968302823163776359614573401673396454366181850330848079669301802186624503165713706048028531825925880478287037419809361356717233616301965253169407187015571430400868292142659728635573150712982465029737993146051342234588856570496025045152947650701896921094919564837750805522890715755977007313676743332233205696560958408966738058744203797274670666027066987661211654252103351505557922135847044206222915166941577561561737360261798821434050717982910767395132873113147429476703647892343723647771313517719165942715641654711147941815111647727555895615501191679045611641800439633802708102146058058418259876138074988226469039615874644895022538322700685261283951462449146366672817303557783900389891163082172830091368027953423189571338760022532101182288143212750098265173766219644951103286398912936425961415409628865220395945658474436433518308291560413525208011604047782937128873967136841381810099937797081915499610906375701564277341601397066562495495847227203373058250405086330906408148251490677015458130056680699398432920351719655258393582611296729076271480739193405652350420190782924758794083477684128537609149838830198361156019368821606230970686844876738050224086910655534108292137468144080505657182676735020346770641500873187354400206461491902492262262928490176644107550811908872938833180277911237288175793831263691875476238078057079828933830182449961202846070305594026144215704291341660786004685110723775407685067412870187791663753708124454476610857719273744687668545993938702883800769294633712551704881953623529825050326997798155916496681223506425076298531418376661098563863713039021593302145305543694662915288425482488014833791121445266767462788929001414171254090502277246749052197229668996921797563897038240667329046616311365991315030478759655265705032095319826760078114290962126816726317620276413883379202052273918373674110925931632805852082143038319457287336078320956697810031904104713742260252610865084907728776440282338300079636217576237520842191829806566168929287642326439957125197722201349195758200491774058377708116580928458753150178369347268173800633744228128345032784837767936618817717583235532300091371080760352618987145573942621868755891268687571400188369250927378862368884025419720587213763472229353062862004324511590954892964289455315021826790564231527981294310333607049428351551222102659340831530042298275058353224436391486915680936946705461261518533040139808236295136033960539605724024342243197781290541740335646584552338896325676229429023763328530603843538759998349180553022659003143601578540019828346099632068899921805395420099703058095983138520063806758967018010601139821192114585077069150610486361237872055833089684921592980011536774868570057734977919922148868167565376599191632009306738994872936845031124315480205582570036224070693947740407590699664501693831242816520045442358779709491642206147584052188845088623583760394605946075688732444921286489941006744423811599165080772287725086531387733489129874968019145913361674506178204606061607165878982378325187102836654960583300527622793169645703913609120054599899848843613535427476297943549186906808669190309116414642713305173116565617005009841675038244805549329104980430277581890655876215226495341391431417176131626384644870685112560517580703064227895691668225206040755521240469663418473037679535755107791737149535008902778762912317859369028443932686548530111246525154368905583415498813287581551794655979311246976071277883988500132056570622009651965158527660658975894107615384829881473870133439515932705830800053012938801313461609962900111725645071277024713936350699352333773720070099524140356048711201718017338089817506636197704387258708197861040315412771228834014663605383802340080034742946898881098505476068015130973585408634312251052535754651012377612911656101716700448182584033945445814577655000392970552727656653440203782233837439839560747150996996754477971662579847445482356382697674104327815868064122015405271947492784220369063028280139984138796036046108714791573752070558297221440109757901962570485630340020523006312143878461341489323440840730496258630819274154013864013318873680174664296458820228701007345192363210316647051276103459445256186584463170648695883094462622378369857473154592212085425919014582626242769827871650853872395046160158783430617360390304830735536321717456070184753110637826244366555867357417146255527646036585763248995059747572410167574482566590611136105753877406351273818883265484827081925786667371896383021891847233392795844609841860329157170715407574517427853489524015777838641087530086648375911877423143430233220896930945296167688727103170611254062945484461532235845253981482672972744100405777581225221514979725208084477292346096130458140186607099858698976637286451350097407306905256572897031912506483337243489063507573193745132880540183015481248576047374350865704661446932373271834805450001097121873551954827085163093510505638039338814808553180688097889778456616431654286123274241228026101811529829642636062347767239788603821702622963025649135860444012778334697929983832316612651623847914876050914618516828928936459514804593723193933960497969374980878044984720762694641550702654391691492139258149883035417841905154840621744512181115992629445570549897776377880473235580724175609302884834175044039348207975052907251046298466195986200927066533564866730065563264458783310532996174894421901413461384821017604455754134792166639048705097579880550258364584102324825352580231889300929375208618777001845876490418647779920876069373544153442537333759233593947889900405232693242711635075736869770503268934662802321829933038301417494325255022091955491581194479492498679980283882200180278851196945702501567939795866362673557377326809192643064296816579764796738267881838946913823469244044128810181072116300624357592350003184557520492767803487839853203431216056351704214848889124516729185107592660587160778669268885103811218599529461889779472379396162616430505970913168007965079496370608839357832724765385386735626017042731217443015042398149084420862176930251703442033790044778411672932428238958769874712217921457465057278823107056835477081348130616904043264719079482872391708479512271756776727961596025930630703510453811166229837368613063042436446192177041624852873069621185314905757257063096540006884065939574512441559499574074559378857144517734547890986944284986433187103694928645826534155968452062472932844858401316704080149445493455629404814165413884036195027511458607224931491557478393034880058289439589218759831083741394011626262802521182768873306595481931450855639321765474927364587997080035291438777122395588983539823372490450775324988489348061658098083223816541785326771116049827674502023065256148985049596426689520280668784349643826157215512761182003666010220515033003606676072526916440007925183375747231939762930179096436126227001290436717342194303071112324279430472222427593135429639125033247350357003540762062584172489513627503159337216125579539270771495148426230417604276517527053360593987893491780125552887230055995261635833074530904335556421135902454678999097794821462361242291592305189902130922266580438388388686317665310265781279497219600980813313262715645780823438989990020306565412295860437109409609858604224176065973402856663194820973144188100147230105826738943368256457457152155607973966938506068529899973701568715400098101438683106974951354833386664855922232303418803046337353353813503522410585698207431015177900378319120725938944776976752275767700671978158084595788856858573193208801064442228310486516666803881712958119433629702720787222221494341252162761303432381570700396570956705714335446832251452730035072354470267868204718424908820242718214187427583255344713051365868100137278289267670279098294709600105660817997492600521295899898043801448934725929765906655854628500927427771411010039704846898079042681636466281425559261555114537363186968327818672379521209570852596910220439246673857715883978883281115838060217546548148089724247378524170895748286259837162839049042692305464702883170699156258257575961443425022611421861456953352683670200952241575868081995281408000834671115098455575083588176640318801705425158982560191294195088785548035161211899538778252738057125270980838985176395350097037924686902288503486025953355300122767349762290832347410678843858661298061011803863537356039491771119149930184934060277155300625144180763287613883191629711147902366208911213505212731058981526324363276031365915585167725551272372802554689746437291421140179830016409744665133530373982731814196362710115843652368223787199404916852840370049977264148780133659860093297375666480236403216031129436266740325622339673155286343020805092253444614683359726138106428362981218143586867892364057852881667719561421774844759103763992368155657629883723012662523003128117434197662033854089821319848947413806945214445549260143649147886536585425648372450935601493160293264210801974453552917592076976101265614110292373604300429167252290082402501246496498558892361038545810379449666141402261463111402064175087090110117015769567567471836903434657656550199174060416887408890992829859044003496276690591591307358345031667856163659128296475124416881258765278375657909728694308404194718689569279179952568000865169590741842132735782772769952427036039875801421962912545093197571157310101493943063137044265855712629537057480764872932600967126624375112338737546294461778800600402643025598119813699666823456106066855898071819512752132362045806125930221501087094983249701521699395566487401724220222864773236516368913050443019423174905303329642556937542465889113964412665810284329921515724464768644678328643953874720182613636826717604364767033936665246790426798215937108110419068341614069605536644924468542735168312455529766573398334409095089072632124202442336810001395053536395292134288896484618517490354131571141556134556280451564426852701135417714806811010526135112994058815334905347165298063109196858695257952938703715508700697700084763558366597101288635164602656658359204536289323347236411954506224354879751551335712893222759879313612985654346572711979029837982390980893033422028240963335725688303649213099821964858384872817494594305522270614498752902431041485894025054202921726028086710691429580101564864255614681568287904127010734915765316336062713584368028446455247128403783042313399386622393369158938163008368256374833933984924306102030304197156233143289116247024827130154281538351252198091396143150060874043271200247902880125724688919065000121025856903408414028875958440274661006901238990581370057164773316512949761012919985690406706663089874300431866974304785293284867591732785210185839552769389580566117424408089990963230047162465847228696348915188322722524149883742221391835963101197721193388382672509969919102904176839398885128258401430607435504996265799268207314269655449049312035915464078411917322027344544154027205385733589188331417155425928888991004724408206910182553050585506363600919259836622789312559297274130763641751826811980388132060554631063966864833258062249434528549572716853026689913135322933671240661639509209298490881654264399498384618694591886594730819686994010752998414544849249963649932182675870012050085283081185596627080624779221867985219930098135979553033669449539725275971469846527297435416094566436663616824998467911042293529065605325734283880392970978290923371079873160904117476541832599907342502019421016590766845279528928207775571695862892990340693763981649006944883857631389173796254688895063789100018268414681133682742277748786120007786894665923066502044412289044741352707292987676097732116249414887465572117164569502172591344767899807553874100584974065357512370637021054822259541804172522117131035355386231807247714839634801855518118888153772020916499695830065133155387068673151239984184897435961044553952910913663098193372962788541518532662127469154625389578637212556756158923961952165740814192102634563357343757637841312656501852910707885040796437439957612594930799757081487386133154336679359643667849575636405186075768497901608229007017963300304758055622082882558375197969769691925358442262385530205101820016699303965108563942966250597242966749090210629695330074344030994215125422482455229882173084238460432971322334827125444366233280342366781505578747649272118937151088460135171051233776819810412554958054026527962089288870446461300657905058106501822603610905833581764672279583493839180118232361080719541562225940691245125537660060312922164438736023665020021569547307867732430769156998249382640973337452618940814085140870705179050571942516001649673924123163915398057688926988799593660299022143348524283123337673727987217787022527594172688232333084099029881435053689085428301338127701748083171179664665994055413697004289531189543926099156112396905139106204527279603077020861572111242600975222125293378938917278514425896448625073577929434293198942912266719451739840876021356663256794167751566373000105967771306674905405008345748245513108741772156963571583474094773558480536637584674492303950443078876444591303202986296785496587112608605328595497071932076084016333381428700702476160635128909778119053485889844650274293033943837101147672002335741875426474682952850261700425569967915016537396742160570557331472263184036447142769108339880223922065912355635201926118049975716890125885159424322365183841256225904172729923254927220577675725531398171857203418510033269312927135324315484735712535260572145433551800033624969726973025480589032742616526172704179419073667714644917525904040681979505081170262532135303442048293951802800542915393950428155368060107161107909132544795389975188348500406425066590284434447609670500309793845694836307365009837382334285096697579636053327262549907868278858760135626405862919603272190790818470176240624701357570623021309046168291919101975077600291979994267986732984797352303049383646252762453354240326221477219290430299028627986533725942640353643333144991819280521856902545536289220193626301337894759295515012951605366928073166762299185437610881523929080756219259875292019730267976719521274542964145875222113546900418180586470828547133200869904240401642585115764825458755756665368434306389631915443721941379244193613843366219692997404088776048260956416655973070916091039519240840014694861021329731644497517688196821889477698725298323530366061230882213777657814926782760189218506161436001262019790082108665222927594787461082870598872046206314421052536966031538393886914033436606746751638010588240269075474376079406681351962561550943511002377720801751859758405326707321506319455820964992241012214269603099081850411808597204172500190118364605741012418768007081894563431192833426932278253136924262049328536700615027622315299160389738504079314062274394471891823457201591143976173894610614782628098073953499166187436803996345214876335692068002790846267366308345592138936309104117477950081258399977732707655646569175726811316265153863718309467114666511006727726414119263192081237452031605577355195634965285305770290656476437787085439836833136163298063387609753509663662802921446500573945467306903466322312448944206524047726732537875827979336664307836780020467077679552316406819823674798479309707102035537596509761181653722710514682854655627462008834927842164652402073768190907024522118067839664414189237154672983039477928601473863124758466774151562294310630737227775772791145914926206633994399763416632547302508962433177497146866135791102166506045306961939523715522638179480236761335966361576668070992055359073315566987552911817095929611948619807017972023871233504552108085245073774346226387348775549805135595710888650623718596684806927987721135203865313465566041695239155605709995037810399505798162781905143345833741449035316301967907279011010083637273699834012031124550692008699950020544880337717865451879376676132407682226593441352795203201838513375289138676243394723094819724361672611891383994080467343201127440505392352451518170385155968029535435232228660706167249498477012096792367935689584844160693439288724315491668181393556395467113615914406623178625206201003927831586786127199001773263847814248362442362236721390257049678357636051215430838755929971571087079981142228900146998591719355548298462899055192560210996273436026875093808899790588100454865832696684164350405386321943469594808344693969033308507214100648137787186657764322055790653151581507687320517106799301754469825360880587050752177208698597230972598183459895563207419804704697983556664569375436313160621655609033785603999383244567913796766619853021767520038082292823356989944635308036980684856729093961480588596201160122699145124922137900531078404496547842551029522295579649419804077034536588076408207490156188881650551211525720303022105092589098767931400673674545983451633667239423006865077803831844325125393969992332295455930508783908616175297668117241227617645930756537477301520134122425843518785574431462146587246028904500229881168223951491318142871164457005569975822904168723260192542664429141569227284883141745354457069485884927420238823153662516275252557926503731310348528508598248555569157465197104822946603119279343973662577856816014796671745988562616005511160059274741021631698770742362694916983827233045866431031919476819109675067123979425095093795807370687773063587950260014923491639027212189453857678096986409698264044834337709120725560146652679702747090951398684580565433424476963231461780429044016594875311313310563624711317204361745662682775161787976900965742886687964290936255387150971731510271542828330323479038380260956419087797869242179181711589527515988113905845975638962324186239096507782178526739616093177694587084951099350463777801793979715513942981414803528687082965031916470030859579659219498284618148123021284658892874501967362882541620163482014795306413254356856312689161077635706525071698294598587043346760137893494626728832504098842271836117178508995281059099896785825138229945853530983960323553650830539916399719668142387386284093567514171873622826794803593737286411003210328419843706681515063353577543528421924577371991552438339024907269423535879686342985922900031485053619373100968573660103625581768292912730957531199839123304980558823651093116517636127634823300029022034580955641955431287210900091328760717520905727707931371989508542078125533373923251958612242993390410783002018207977600586243565558954331999240073154587424354608146966467954321091032420255765796857886303242544180899558357514203475709997866573710352066776090017581009951698769083667249093242090590774652551896868787723473166196915658972654802153753927173506069442803706581875317726032947629418585486788848236311829077516034147679906088901959748466021117889916254947689290364287484999127777378314982981689664107244376476114013575199377711828467147489314926668022349532568585960861336571913356372392398296393329685002614640396842033889618095664394397345930702327574759365249102753138515284740227671110400960250752076405601245648851350587336736347300108997075893180954485484083283487120834809792151520526591025542305653880745563363467743510167725089794340860142334164894387507571850824991258342926809368274083957315685293552941687998938551321455126040475028235031813777880149890860284462834386887175907303574095312358362551813578669277588268466192142628494978932940422144623748272835202329783447301157438612568822970037831817064936614006233793017679348647193540455462478395926253174842968700301050688642676757532448068097834471329795102400390233187663004807495773316893933106622337413302366127787753684272918878499631556037662120349031812375394508150475192322365458585008580380689817348458316180045561014483613164593064738514547154499556213452199223449845174372666100902078711665877747591292216400249282743241148928461608075942843738386828526296507791723502291592596574965007116351764733109886864393977663606721455029091498223228758432593303017399185470425186751948161426693827576681972617391773171491625018980514206584806762717628654852748589070129489358426944494015497782763253504326218415116419873614010617618302920525005457635682523566435010452454080621656670140336612339229557804015120002838616647702597319620127247552516432149294572272259778138027651184325594521800575387736674205787489033944090587291549789974791689371972037403799094624617914772604953528082159389193668088741794700750804106325764693783877053026204267617127078594713188143131114270803343201403602839839144465192399380504423539583376284930214557397023954967363295907553486352261873677157092162253852502783570539502717798397317847381564568622718422002077309359046984147538031316947617892240841738683992372924871065274214143159268504247040063636017956289370316967579640290746563096079785052616480327125278778839032306117632271870578564971188472085391844978776370611765242051835803556383267934775215518677290109476938183935233595555379040269950999300281526199958174403088018145221443400253319168258504464028647229833720152203815741727441298780656355345637244750920793910827833135688130139510422706890312979224154717026063276049487779946640442763842471793462205348502990683512033726948367299774759116559779559621337648895135212680143629129128001200891690675518369353244030980579747670790061106659754282272852611485398363404916399301618644706587496230764926790610387485507434768595010850645020624078671655567195507363012192365465210102522294705800742720058806978801293982556253147159660104153324436947493589302566101031776286086099317914751526782531301684378460558372204629440224402464010242201037753938424790222734208178045507558726943531462524463812845714688030686977072125735406132746964546194959388422245584058094524061817565309130996176090172319201673986722828915043917179434823575502043964586648277520118230346595211210528063035619060159534235620562921487707906043123641933471110727295457715059798963758777070037533699451025502020171005655507811533401998034287336759786107043939138628410268218742576951107425798534905063811106395857435787906082426684925414237048323885466038410950026233350712608282766436469637983583902146391019909305975428661473741026725834565984679855194091168833341695543349442626688175354989058880556758477544481445431202915003417475440776858590716683992722110165524601363186478210199644957016094227848472112012640436523497608917733060869490553342484668780021293070831764754897579394218668861173265234668531009960167893283635587792511913698123411799135799970646205303219567591914120970012780053859232642065613045157309334407385925194735777547573017169157136030332439288011302186747251439603758553836308464203953352978815751397487255548325066911326242462023455826654414298600006668705446858152246424510438276020621897991003939435441897762012955683396809441962111543177007095913126609907583027372263289802849768102148976302925866774968048596336808831856114568512400415164199631193824733889603987195778624123107843147654788275232742137682467423003173143733086824253307822825205797224212946886924832632947298893795279254782195099192297175863443903709856228076708632603265542462559749115402144660283144224549149531369629423915171089840425585413121526965595380088270383172320336813030561336346674552699404576688317299110653682172690276692050311594305587239189354786897919265000917837368881601398973718698316955481983156252423775821597056103783637987910376835279054615506615119509161222752305386555553687261751600385574460437195250220452547548448557261287545024469152072412717759801637215096201939265649938994201143456570355476491554478803499224122435886507180429418648781771278460700048858138238562121169844974720611343243577683565500543087242668230826791457769803291528699227233925291656323481868625966571491634814091910475459852353450749320759024460340049774499917493712772155627947398196498073651566898042576148949496262991002201397560843199947044076034453712038577550479269677091660177040841863737548587078776843653413460222081053970180571689690915090613163837291512754653922456306709526984246620118485213470257614533851435661820099873496529162038859320796849255716531287499874257430169277826061386902207218269264843384372929948635700235957169161217869696511053587756968987861327729880761559892092968834820953836800589864497615094131284718324400608075176851231629512550333373936842699894927923515360175712966448731087874614553458740199977054586992218684102964102694004991579527694198806401649002368086585038528013216383112742879375702469374812160860313239614388234771050225247793509232090844037841155601731893155491746906387329142409479648239453889876058536590490542163203391282838207222299548374508479650329143139602677905609399633498718918401081583283576036549845015441091487919245414130933879375787630767814267635984645352681826551330527514739137462078561754926682563041913311969200712696143494345925746918327898149449800677261119083158679975023166573999005849217386606923677512278376243250620616730988433610442284579696211051301419954051623392361348967599932503785508091232601367786815226497976246152338402799588816973884857166534650123179804595516800166242467680111448066672833684253407403502372852328400518786789242228349817972702682982261551389339355179678893314396973393106532575446598683020971322993821927513725557193355149092314295909586447161080000877026524608782662886532903069489281711913077680095378281709979951022649103958149190847488323541257557249579796212153135012076824167173242389953506931379739955789973506324481686973630961035652016839366855724195728464417990820514847819109520903698845960390133340200258636695204445900369570945890488046583952916044775051033134975540827735131881323210211331777071962571907616061192231635750479005015453691957875707003607260017866116280087118873239901068016604503903866117786871941090371760141519422901125548766041316862673095281590373327617951237156018342409535254731151247833210883737577277304531407619581589799972142480491417252227299085653269098356817262243504325197730932640987186321566349755482379525457848874475601323080397301368917530665888834101683804482752072564615821455644046796452542659278558416615742549046432498088959185277628054516011240514564473083039667008292072093935447076545276160950295725879131137215733318039627284674798104656291035282371385570595899002207798596534914087957150228017479856897581388027255523203727065132067271649982126097283928794660621292078710466354367217088201352342889254841610024575659571217316950958108850018319357359531578160249955699435261706762032205300003140100403100107617825696695182289488550844869562658154429742118555239268647407988550190322171840666149629309572699459306636559414403405351154067384386516019032814416079898674559056853545725798087093027508227631782925783025330713450797703885207623148280520897523369942255115391186199388864090056194753557024769758004142169503289797836048759664450215199944731084594042552513900166092140304246552699921280121173977639171717082635739153063030325552829699363005838628446029638858306044532844659142191079641253871007794734823217055477771891013418492605156483014729276551927665070465032423191315079569177620455164821480534683035594301495785124045069962813264808209169246324189362861356322751440994266604989520595707752401084175139842386526004463494683616645258860192801108307767096396090734334355141925242407207934436433005118319145285651915617836426338360898562538648528122959777280430198910237845210964110884268988201007426102192183757181772238574976053353214600081084913708448294314978681663399563540468360089571233640778573911295481771806596603575904825880390123944649128450940357605640716306349955352429113484072190513254412002402467125760289708177325626834092052089366322218335322968304538176932567396215666499491573616187876541563171165546429324421657706668948799432154117923961184193094338777217219868428628564704344856003162310870230847298739334111256924237554498063628320112107147066031021826745501281597264028065958628210238846949019685327339699349472686795123018695502454714825308780777504273339696386665091850454685561469461415625451625447095606109930647438875326445292330073478165523630658382932545664220952775563520637038700631429079408989855597011041677161431874479821046278273995123123836998377385474670310569579679383756529800604509628922129257574839880359087887428217184553551614861867959869127927852632645728718407897441527646127414599096113326112014565735916563408344811816666629303942413027399296987865333030471685705822427796049078140479272143360927423963603949797675445341349765835430470146308897131910064245801079032759190270471530048136001239345186268506713313089289623585137085178785045212943350913554631963571540764206756762409680783755451722854208170874828198782369005537058515494842288775754986368377338253293927330043655145700780054786022491990310809369661933587048197078627510151527454709110006923937226479963893694853303505043956851849978022514106812875564298480786084727757711300236247966475344240479918605780191605565516242870729283753092697442202797208608674677910975413505412264151782505532795949603288335024773076356866566444312316328034690057152203726431728599231664696066575231473710936899627409069847004993535025751029114671453360786936687055289859511828648736863742118324054820458794262028584383059677214477642327379545871891189605574071195373614064101118173934921572919599731869484936267447489429525326888952815491639582219730323958294021381715025864602511820487468334620134201876805269415763335756038944104500799513329271981380765556597112491487603957379912676648074471468146218489806804526825681653797405100409211617157216544378265626672099587035285609562620739161775789420153331925557981907149821914743838864480575397317389958948705447657036196313794762666411192906012206540765240762090954789294029670965222525460367927402227307838723001143658261998024735573775637877424370371116519410410193585238479088735601067820237756741061790096554575705087311516089981620103042133429836951970032311776513203538312575933391935651515946123931453066209847449111612212822882699159547542468984581573853102383058811211284081062067827020573357283084726366343403507813264961867134963620317546235389438865140601971986920658919699571295332799681518004448203118707355933251636533831864796995771694176528297147855816848318760894251570709348203595488923170851908651363335643729048337596084744465206559114878121580659517710273177707389480548070586072162220555366292394316977598586817736978544606537507425838937750054009988057051734257931616378995203905367546467806554322573915560319109619569920383920801403288343350902570942172690461883408914213889433433131521824154341498276259657308708342303696612126569931769619307827173771181744171290777466370884756715770649782239740395079211685763876716672543705265768458965822142869117104964139243147190609968302886545195343146133489382617270200695243781681761931562080844781635079017154231490555052870397236558805208723850481113797008552050839173596478418092726524276349125861896814542138070784173989333648127556042449221779045652466936410270736197512022780854998622556730119319504886773173263493579537681241719682980769966582711715162857087120776404390685990325783877620265394891414403878499339737690317269693008711489909608674365328471066307101278204672148794543659569574231969027081092299358063025398221786235378922068419989783868610060760465764067019888434631355483955646631064956998897098223343547170570763656693374460044736488791464750242751559955515979121461025482506966276988409756708222854320218481857272365736339632309843805609368348562516837022577096958490949911510855793339665254941472746417044224241976556018087447939811668667184582266544771996716651618261748916433858507988174351880163626043632346617617788925224852318652223626868781731577089411053206652654173559393353933938814189208702015011387182007359491439290548663620602700489634220951699808736585022572096623656501213646499288668506410519718988323570816795416187784143455168029468382128602326531889074880283750319588160346501885902698272587006599974396602600152587238933970578196763945904519700745108274797501363008170822742999707715107312548008829348089872019896365302958736536971443693877162205527779231200525178256081502750127117915976562286933204348474184941239922576195254850235165630252121218489758500550235333537388100216821006487535545501321004647822322089961532511435671644635666926165342451487103184823357050649926788805146017271091637155867918803135248130195038215121313199310224780288969802980189236724030643848481543107536765759675840965075152397599761522103727182153730237466684833152332197566059446861499705631988902235671874923831067197786892288329467368773191661062430092977840398537257448088159000069482044244993250488650620282755184426229814418889662237327965774243750571695437079357897090905393207729820303791189575766107529280206109652308267902844099822326221638870763846551148774735925485483802571452596758525053778716361881844209508297732151218533861398101418040699683243622608033359052278639575658557474322501461040974034106919019566862416846420447971960865182485519421903737938330100224211920263721226247367564238766015291004765367986433643594957175834010145222002863867831673125212868126433975958114646233694069800560402699164525197396239360596884638018581407580285536385507069319057425763943048817679749881073580768854373856741035370088699823670744115850443609266815716089760454260139328717101302139308308304080230299288662223368444291417696849183378038305001601411075986592583257694875076907139840980831600209539256007554831827062440013624408984510781840591548543388101884980284264105369679363173721130163268669197317640688795117739090401415409466578180768216897704979326073770589265141129037967884513637821047787896063895152050971406671236445712297067076511153121450110067461114159904907458201541516476695467010451666435345002424076784299610047399661123261135044933541271348350554195575375302886448903991161585726189508188821191866877098014737793936412582469407116274122611992151287753692674113861607814139580165536939870568297213784789203098084439458621375223050071199702856803371109950005213293792632749254607303054699976089750217895813605548011887057592769045552308238989736051155024281361670207001476004867930559715445915319155848109101349835441436602752591305521861195970478895921755838679549871019805966201810010908691916113217654826448237156571866040568732589585314499922178239292111687633485800174500126038045180132775192079508280814008549413806867233940926248052051389414438735978600429056311662584975143588150456282830747727547867869433269368038348514186803938527519557351565073992895058162879244372992755186790115625997110156403913939758555444825281864746661563562791967889394455067170491255802848937932228585669432453604449179161119800378169510477534090236484290110921542086907052945658878568782064057488429040424659342965896740919872760490387344044735474608554821533936954299103099659348182735453895592184495731256248119060766354468253768426438760506294784344113565246507815238931496572973039303400415079749709795725140826613819407520187719343357659890192007861379110280613945348442318467987051802619436182607538449790757134102648680307046303737792570287025290615893822644564116934898468422262641913326436489409439795571459412282934825011988137986635507103554070188716765724372813943475561659331334239135844418750784004180728497835969923082574805996493626625009560137228374106951001138193934496576280102002848829664770116687809764373507649884611375699366798222178697661208262099224488648522824044521585522747978739725155102887515838468747093480433354390329829576505997940616991639301769970148033827284891455239473407679408519883915254736740321449392406584815449293815960612506580950224066479185011331315613850745477737326863902295770574092367408394649008284536805937754744369389520225348390317129806227215659184496444447351089387289126277618529867106935754735285935273804599962480960575020479014957483196404526005789975061279113835579582808077631950054392923180838710374050873623202812340900303774778452833788494063166867725772824574053146300494119172002866598361094022380127247311864823171927269110618933564062445226033200830719058856619960446552984490656316844538902573276156422110132315852215025065111852998717000839230488438641335389468847959476732402681617521518419305519321877955579542486681920742956323640549037530725691585060224162149514313407137836886657428691050894474807480561781087830284864420976933375559373252683262423018181337680145784031288526674094453047477397386204530971975180740971697821889191902776349272441608261339199043521587500882721979560809509087639684585521995729091473439936564060850163716238935059656683364098081129622068500224395163818592620164305008688029269069890750033662823446836921447289472647618521299260433502389251023954311357025947626983540553627277734962776481320639109973574289976918413160556279033694168992589196284988874817410323406955552508560541993887697851467109273856886575057251088247672395583996945604188712072739588957741501389233165740224503500024282253765667603987390471369012883556649880944638935218739558506390153364965724119566051154980583504397933055522339048448060204405651604225372402404946907358103601229506238586215699675644503131652251000603302274507924544140748741621345578967712584846930393374601449773857103023763347115507684669889922288430531309866444234579703533651141412436010751782593792787516830924456926447621605192558843635815636136901184376719623652431555651219058823303503319163091347950612704134750581873012032437117217823329653232447222873274026310797787410852728217518811352643560445254626689340801788216956328979682736608339437429744041977583520470433819203641144750893656939180175212046505464063202525799625974513310004927149492954849151958094780022239777662045843248038155263838236452585705933516874071526940354770485768258127357955819456158644330547465430375789416974527031890021082157038492045455040644413203944480211172866334135501672259218848115082382739998891998519770325568251403849899117450324967115655239348252503074383436484405219272747378343459666615357347458675462673396100361143378996399303225602877179771116481117006345433434357029904883241205812300453479256025606983886377555067067389119123666845401809668642817644104768084958074492074471157845723211079114159165465719800421972047636847120030409427090169147469165214264020689934923645908469608309812526535430699353431018058775488142374986607325951835008263971277095770446617510317117029796728309666179386544597488498817835848840581213837510874172111552003824547562330764681425789507912472943048974987975572576314483549932917396621833881137511915261283513185839553797084280178130190718578938067850464467679187799524936763550646155392962277478913170751394762820811935376156168849651685872813431610335357541995034954787552520257092839922057502958024116969181405312598557946537960526644759675574424306928952036399166022687835379678620945669045381425421759773845427506099918477804931459294266777960723772221174399787957041224470302534592964602148609594541495110101902577296890969619974516331873230193104321014510488144122684189346866165885351202248251271812041641127960568099210669152032605912915033845864811871549963671612714207861344364506300599455529464501551628483933570684717933508357683330339481008349706452029769671751590760131837432597892325457051320901016904011093539726789985774189971982189148162255522261095388796612576036838025189261855690822516413135214908810296366906318368280836621801202127799261230604472830230192880535812178511180458856509694272422899967392055170874404884020361637012981544600898008474118212873148274140785853661964912028327064885572375963382824930907152137914385262534611691212803321657079768880230059926736880191733370671716930281540419499154340195589050426639085124426306315717677450527088570878580963589372492288023419571724890516612874220911687834723560941629013325505951816681893544551390277867366660570566994167319337667142016824156280836390521430319455708175215111144141435262085628210377626736257799844790918120755226782665859570067054312319865453968513827241240719050020040346932466044755856239569093821915702407814895152841955088168270537181594728709551424268848572601491424625975227916427370487212939825837726043542477363122587352399291417594382119313446360833059987284143563485329881871695014322244680677454197296099947453611231643930937444710974153401575130529387425912861559075930453675021454474133292790204286216927293610689717694679913765980348979667211608438569388765398091106272621164469974751842072961697569549615343981123538868331910652953908929125029481008654306665992352222930298633508119736338934139951258560836854103359458511512049506372075060063021051205036813487438888979674906410089168958829005044914331176289844477365320212598912422081050979333483924669438993949669994596479883511344839366552254988740489615291569599273613002004171205925917281111513370165514122417963523237658664630248943512886856388642105840549531766790047048322055903772091862433355449595872194459664834368449881558233222842428322466852311163161636821647036415541352642822688877792809117550319047804151491951664990642802027909299005486489021642840953163476766048064711298457249134680320157940404057058783141132200237210600807673809538490743085979760316317839827979967878861042386236212762353581042593777941168213987704091636069169642742911987019768933740036371960590149524973039522274461960389626216628391052162534934855529158738439584459242668103270937847574714551103936934832098679766310981573658097236973448240225672355027826669961369909518838539424194113475699066446401526977390338620962378316592081829180497592785775085581833088036050097741444845455554848229521304351630401699479866755617187040412608923162120344316906647499583382401123166416332476214691563625087788026582635021771703922659711191925650421460668433640732682581676240306518326704082903080393190302627990507734104096428513734007132973684472185865906719259190243986720669235285319647487998572467855565345493716270520286361717660436291959364395543280182708939201844754691970758639930872070889926385163466863089132821124467280646510349548381400309887149842320776928114434052679741700526150923718283367674797020042079996999398175380563241402213838457954564710310456636332417107744510496874699533540449811617040684318710638053013923453433388581093403947585471814846998600447768203631861933812404711730374548043495546567976920448662783332520860376311576708039380275694509101694411815664264477701076958188845879457412929186597158202683269608701318193659284279092820132329158889117204368910744231347438927722952830211990794827267386985560786314006469645214081218810830524912731994621087981196604710114499205069176813298618560696791758572123664425120022206217672834468551241679049950559160549912626378872080156789269485036850573191649334998692003426575966511948213591224665624661464800022804420708149559450869615123123840674750080655241225497257967580614344852610458766651985134225917592417029442719662024735714358775661970576294283620987474006208561414867726630748241254128472842343599241313215446465780338869852266329427271606832408932186190118325610147920034176813043782115712988896034319902061433653587127671917220510551241158052398231100181831918901767883628960223844296763966559851041722838102871190855319763200593373233220010392200325347498407991403095993174970503194484297771297482102160046922252157261052074613443954339145777127578759828213004194708213102609763152170734865398991565014770790228435790583877409237123556763572878123098062620698273234911951235792023572612460339851566454338729471520934801950437417855192217715997860252979023705193445765038018745776486352518677204589629448376038430600245086150986581441214241536565904360284320090085245441637823778602532900401091868255125584748968790944131380958236322950864441217617413149068383250308141572694068466167109610833674250929933598211556470048539178715152019148430497644770246465035241580683819134232487143927505942461828157942645226644104217363524830623542189302571993469841994021718152084716780329218434666327408301271030681654326010751654099674687822743467637598699672829292901039113486018761560441663827340310129408839438687868291613779675369332638471364377851330401287152531109381621976850839590198206619327487099799053927308600584466518029885653858808693519329007834791471487250601775206431034414040278234380441755744743753940101735677212148794755947712739755498387998078142272925504053558760181005104056834393943176772328653389479483154014942706047290047716234009990065745630312492918199341382508073615687050011417805353520463304046220999287491979543937302900039255019404161174287880568190399049423272701048006330549413575070294188210423041892816749302906138603156097600551731418170918692860343147732785790455230324002492665493129945842288390025904539960636105104713302492839438956736931172972133516073744285632126729537234974018588395137976849460795101679602326505561588341175457026472123018300020992557081081807331963231399258584806427021463494439816449491534827661192326375704452756377740635116377627683160727633350047814440597357534552003515027109998631318364389975922076552237540929609577462327404556537600648342155152203995255646573706951465011443342509665166069751724829101705419371123222496644479965784800504048522442798531171356701054437880386633060131037939094504469500688025281487104189454941171854342573472082057063437047504934792586782626833216155069016963930640478790584804883916810817689871902161005452763188083457727218694470664029459035829448485425054684267233668539588746303299391526625272780079788970314899888948775803794075780603453127544651649816916459902472785461501661248571215038107628302394400241659102969173351946372366396733180212932733419831964698674088988511923964945837796403699805082469741601730187470169915358337291109192831259209466527224150586887876951086249077648424418221543844332936642281711524957502928090973943055244131658150736468834974210685752304109951385367202577261557625161169708011115647621257350366816508523558545261197150562821359614206709152244135786429899345243534523408773208904170018589323854665639183639915653410222258648847888152908520532135944520635966274748146693844676589965290569599710904715697562581235912043015661841726157152207434045455537211553403593003409450061997706016415457714039460960860201663302921628580953239162116127406080768785077874559127325345407071232036098500876770922853206148614495509106331752790704765853111478672818479353023819082133826801475133284742582078301667285534490018812136872693360883179888809051492856509776881678312498182890215586314760764150608503222413939933178754841929379760895583597021810529477160299216878781311050857108461678807049610728574483114222537245509105641185328313925466451161920286019593580620794056020208978552197797947446455205461743471019692491928406469710810640202617503630660607756185220534143138699830480450551357461878778708542126596164943900296053712840085928416291438434614638127945424346259118636318170060046744401173106572839190642471179873698444520036503772886773066037773827868154407932909083007861495071126493001534433062052572929884447110618792103067486586535910066033525763746405781881696502604045262542139346362726115820638213099173604926778266777417203084692434228480677225783342117461679572923250137661187660009159875354834125992052739139514336433314334774819640008973186586699870155737222340636337544001251740532295635712924611674072503661321683972640290218574566424129031408308969464516977201372614440859884502076135049189443089855509423605499983717323767252290621196718572939397376279220434431897946758330255359995910352913612773826568381694091745683182332540778736293547244281497577286156903693205085471557568515254904942266670611511522398500861827257638134137499530910204360889402827125289939831666562959072588306172565458353576370195683381323083146192994423146604414259466773315677577351668369185793465371803726169815072631042674800579348674241104421292595323155474801378372852576961360793867510574540945437552493810856783421384448461779587013681744350909538397485061917986954248623570057266953720316000256899957221164669500414758981747010268753854274408298095692971211825777052100541121491546462273421042713470241182380557534429314536411761406322388511313026639368696720758983353451183187651789384988331879338981868697114460002386626178911944051153982438787472930304289499462100263190517894593662824236736357411371448185678808087301425851098875443929442242430141521896192356489066848853612766919579408290962416150589001868380712576064400993997902093664459775434430000946820786080000473916681465508475746164517110087591202871158079533345503865281807970457563312407178793615692780487434625210852494370127616233155979832389203343868755973514631636858580546303796147857993718561537166694424548499770588506646996019164396089262204550750630654942326190690175112861847061522719248455483253282991929341412176208702722074680656774507904337502657736930217540569292917021471826527314699026394134003819950045123881323095756926996924925591322153977709006790346691806877741007123622241422287293083377758980951515250216289563494332832273263123826739488938729987457001651598504367474116979776983188436342741841960427215678161295393353494245082801922387948052791899771021882694250029251919416542957046623277472228916805928133961770957411634682006013611557969522043407326583019875555633011186575227615385144551622849437337551814986823724791540864458429332315886047254557200860033499372929334598671162313443088251934340725186104973801859509108720870311291842907900654211640655144899210634040852001623376524545464523590096153510703976802899791569170779433086378237668454227686732778670888959832465512132838858344546491599856853977247381052303930636750487186652492027978554889148031888513937630425951383235127824273276818829726110771906956014521616430405524850816569994789821729090322221118244199738611343934964164034784553720441990824613896298886175047810414247454562239140165051844054343011306604736460820920054903130847462548648941142261212740452657017506801975606336135846255900417429954439207810142526559269243732823960635140342213746801770856566997069487560333569023272685316471317701854252689142442736740688601874428193412809384728984376811856927708069366783153515656509028506443713093030059889715935206846767481289020002546001668527843827262267444109312477918332420781257291574533403000289254759060468286261849025810896155243252583159612060761800063438277249371805692229222042799029730775763866522395367949715619155347541706071184917877272169600195731791540497453073657404639628419330820714322748452962829213230514382225343024599834304366449539039286934588778759830378593413789237465673172425618602497351638349568907931139329323922075562061164745089369547767161523529627819849856405041405389111135580109487948259488268109750293433686209560141101600284509844742117728837207335334195170861397833537470236454026237356306690605193175568574749457318245928612261638668938910321896511329429856119754087132190198639990272840802007811232833880466561987635704541824839632590656569130261198645150447066189350599906418516993150047223187218333961191917209865930111262154305260233746835973929935153943875189084993406153301665773763811766384882089554878994273202639827382293735630085299193180890267931494644572195429868941982748669532711401469311711576872087426520383389138527119989517837967032876900609905994120585891765054021222996353310682116092717166722992116311691418217339084713205732668700773330638976895484822466693548083640088644574583784287961132351311351804703327604222851782853710374811916344111264965738340634549762199866621441031604183186031472924180334946080164446049686180499372816754710804504993442007524437085032202694463032117322068350158120936604046028648069606595608184551767984253435549547234553251463433593381521823486839983737493913997557109826997826830466478112880880424215453672889672643345501038978213196711307817010988642454380211328272037834590098722420036539175162766459851479114298092846523521166378562358181342357911326702440916366394068936167291751968441426877723116990469333015786122643147998262883190109415142282056556888447752644392703679040547769905518499820891371271781349255080087719238806333874546409223791718701550282744428906741702987192628132458396840178934090153998627672792565829714057203785824189805538234441867501343822495042638473616741388402981628754238693915648630082626355138728192883718807326880987287876061525908861972122726417173935074672702484159049247914089146660501947837128358457337112309294205206959761854759014572568566465574876503449389839047817017101456712975017279144603220194514410032983143677093855038267742977270561079106197484036078480200041215136450165493597826262731176286745496782350889025599412809321061242378562612141935358808957138175436461472890611629212113047692396778689040654393672361900710429441945174428906165229789682744732128557716367471408858997063728396061322119296554648828295579664378110658649583342081131977407882046772938258959616105302160636681410546284825996056275921553983921666120826080669130721376934380214276153399067754067673953271375112564080500131268289926150635093154886459505922442744311190275877629726691637105138611425587103329084706850966210279447336251207661587584219747830441847202586911388903009679589675742858672863713602928313644159009599763991801395116903005989613921997668314364350678504451298866868127872849398666911256710226113042465937357807237280876685875248157610070008637072403202887086905880004116146056145885941999219042127886788307016020752535836272083839986639880576605620789781922937706457381748894011439612781193661001111280293771150422196915998184293853687167607664883193583644820774774241492068920911052213789111974450058653049449619516787728927972558171669346029887895592472163284588002661352334867267739077059428103740267094056795946662114552184119039168356358464475418871722030707238086439752425339456566905957480685844128846149619526254212639073682024396127070691165642533119488234207169052617916571113870059645865181836683762433922949243143420988647712117724428370413114243116280066412216781927021823319871513200764717228230464555844713418871836283082107995149488643722281578022945564199583353427444977955254674774468996896562680637673441381740542468053940410779472573564948472498489730582907778563346344737263858226588546913605934296942643557569423890360117115035131568405637173949834036882582860595827454173302075118344212012468342627548642446499531450078321983803891807148166807100502689949245757812909709210285926064302845150575863766781795128240224670876211473017508935983532361236674611613450014306679897064105044125401988584956780452162733529374739460239000970357992194351451707338473840382124745300620917233451652023532013176206740416035024937537380231829223052885493826097446544303766240009459633079115055573158522870400482325242069403216149882057035005974661624238709219578455212421317599236343718437550980115470889283513876098405000349576946380537847565580556537264620744440110277742541223501498724385058660708090059090013420728455924005536553687632018445785967124471012422990441830966533402718543920829089317097263015195645814889158993545567612996913948572786966770611878014529630649434536494760634664869566909674542054411225074523250337429973139976833263768520379330033579063735124404008834355055954138984124136669646442398882427270785354004981789915444849715367219127247125702027619338120073723169859107204678552181284957290198608788110181557011425907943061441055012965941271812920574110375567210635691615452135609874754850352719433297700974857776040733328866770426001291237621276969060289660752085716746231643084216648397822303533161169810863045828715544406820535337075119372947748550915263177303821763116126334717760289253979452800352256941953082550036615531273711978606751158970529170070630101092802319526892512218158054412591619020782404155187753131669003405760172311684316104898095650703122174612326965818439094709509531632302805065881592488681148378078669082182404560045969437183200019394088844077289737188218730131764001002793532070621311046783143204568973875347427072593365718941495260901731496522719104588138423622094251220345162946676852980513912327171121350935278352930084298624992115523256739669879359787903333080357177299525111356940998937482547340730730388956524738128963803584057950436216460047878246613689468466107569966019691629460035152341917538522168666750664793668446360496380028048981427128228883353883772733233475286854307973811853539275049028027737870210615413426490611024888198454238629436778816479756300562381006912758984097794469975704563657110572396693183277051610652005027009206808962131965506650020627327719088114330421763474561050077318001251939913838204401082782600826272733412070321941832356175569599978207143236800827715441162240824496423556692095143358270579725757821675197997147525272436670878048972286028555335848497943025384223137689356568738022335291422233673158410267250042438075597660124603681543957743921877358546702263392028483542949907733171440536156960721017256908569795828382383336471230360187478787564708414714122277817138070928806896861710062756432086017102478638928328709630326723532495310661946291589345542484794330684858690210808300324227250164504874145272551555235192425410697495297256879487855112825445303046054101162675629794043671178695614891077508688313966690907962681291992410849624453501704611654701496269708078077564313923442047787141285998823133313963386369926338234696653866200018597056546241666877961722565868216631265546616612680923858824301755320036616471668624689000436388635565996228261673754710570636190541080882460728668363558111886301358521237385382607350332898151216656410286364534392954751152863212944624252565576712009926018108390559778726499974058541535978279332269233715139887111692704532787746979995293806111288571461249148412808512194220015211765330060983222239831065637604139578275623221242451236718262662969505134121137393906261941308340911572651620244253151121099275371246783546636460794557971478104419841647173947084902256848349290312105634557016718127932896341737962926373613407365897677222863110162367997110747348749705698429477636779071947368197463684973596874603801030517281839455292352333400385410301722158632644884500484666137423500158905842253372880448835190673685527640266443213038959504979592685483880775292100942275695146212371385651039011059213549862746713152911388415301136307316154581678675617125277443774965540680482127940511767176093443479165264352119569355561483677493146540551947366654858401111679475844552664491560109623242371382172775195147811046889709607042354489976536358195346924996029588803777962182000313060088818472837304746652432480696363648352036495424404831577832458807514192490607876585443899445419423110719889648190099503131974657356437574264654522201388773005730446638447673210776975725580100668076646784813848150701511635081978880236365016184119565886661346647934728765596511475977574209509215452208276844027307910041789134352505248032518636615750703188681395514744992861008044095854505003824537731172422635379930946151964174782663821356647043267258015581480210291265832949683505452921998109599553767829475821386262443290762113158367329729921233892952013580284498085046183613639243858439344852537880639812276997572974404540409768018896080358968772991583794799535234464249091677708745338788916199195178337645748987472213511866128928482241061358059730504937777510764420313039217901493414086147769995159509661224212746882097843950098481417192327802895675894371534741604771788495615311763020755038150110646577074647341461572017011129328511469466049255545445865742398908874477654834620372131164336627706838578598765493965630475764073969081093082266032638209558142178734023250777254791439931811196171559232285536118826334352281857584543338716454707109639062522048558289290089611157280702732804019144590054248261215129382802242215743386611540973176327107964517480458337018283252591298343555075724519050385474887136531096261771384120376049721430289173199458350514739047998069443135070875193433617287202270536088032255405760148801986692132273386009294895437629910698620545709103749466605321561298808830904147514532934053964603846176410829643056617568391442911080790228676351672382319089476496413442777673937498806442084910681360624765360516860782042843054674889708946307218431812026462127253249123683068094371800041251965838979031181662003521867726520003399681292393222801494649278297340014490098894433267656780631331850695437077198925991292829055924429312991146405158990336639923013653832214967073301012400415235224047348672191233330108375459058803252921967165493832814409039731917534661002158226995615816727997629515751053129445058159907025697110020676919256374777275785480173751246772322310623416408879375290464641603881310764892530077224268737470739574058733177192283329322616690915225567529255415461860345715830210496631803300068211203903854551622898328240688235472275419228843246244311397815091426950910814733912840982243098664495603880280404612391597957059632132221169307861343014330752189785687704877035369680538881398439590886017542657890606518515431642885201098087421632004886436527007748071985915462363857576918420249098863418285706400398845614358385774722207550345655256784596445228431433201222355351708872728997471381674554241519946211868373945997831943330863917010299834592121285703275250354793521833998165937628840972208207131884028283278626124405504788941745173556271460495813509901161198171525734210428032136051822056845778489713278612771911300941480675616581005403611416962936172714808200984495556983967764573315138859124223732618512866178004279763400309678181838509625913913317328526373532634097451390430152649705973946880401876152846767285958443366664881924758242156137861987690723725102134378393511928216094999038822947820718181933532184674973457465281314744892858150475406164233979044558030427639951791164141835672232294012315412835932459901455265262977212668227313851574559807162770605410924623035930919050905249534764853268178650924393300450148120923584827698290973320061056510701787142242743507374066944053901415484791368348353311817476222837841214929929424918883677592779109334654039932494865127885545230218221990919458197501422822857861597590921789359344955404655976495556623288846869446995646306684997527942508170319682386653745719888934694153432057277816261493529779811488954532619442905188941399202550860684533720341941063670151306765786651246482415316123628128062748684761710131542511525696632241869706815774415936136639106899287089291666055007156501910794483009700158126839820254372115745296052742866105526314480616458229784922391081903896454335680107531728879228663951758699612654432142159369399819681240291529566441678259592051617554348113554383637995586125378567725958171284805674206547686490693507217292272123162553332583949044064955594524243222229230070445582823744829439475420725722644961759451856224057270831859271131894715412097833703396941472912223915879566745166171124238318534610198917421825715483672825129151773614418597487349598097257909349364967999739306912008440280970420840628225991616571477877046060182148509427787876344707852930603817018502673881684275558659415607716710094435956288077232480570054544241949981911878987755772231697454012266786261893951158461366744158352891048217102981156338182515339807790792357514967585985170130157786188364977301915443528201039719039097378722366001451221387680439420791288732113947851276558273356831884768294928701136131288685060281284064008900491896606771293008600863711139969556645469357386811880264059499217773371964413293433513458171848741496164398442130172394379930272983243447463993635514026120015345429157895255529850335323027302247580634391943372823282335069366644311478519347159837474944956147000970817429917968260871121142533850525342006134440358798518476460573566074328613670666420054680278586411976851900139720118294122430249015828387779087324185126295411004656810308370458047744063908622819003292118028251765174298337057371089942848217123936249231251082936844772164395682016491917574462140124151933045678468508816392908989792022663284703741725696150751625527514226581432043297113313818075067180284536320434731289659591975414136578817636659995680988200647972870743946871736921315548921104623334913694393828107015717174893184563197934121005781997651804784242042926542188484623387569716385915668255573661825286705332566104616215902772441866184173695586419688080734100500146917949565547854539744783308449817260003945832239739742418226220275114950516658544690276006921726348088521298681958756569556845721171677513996758870218828605626608234176129059067845720105482130958892547128963945766457985262738820381673391367848975432155192953440916064854658430009803489586502884947555087291886450333236480362401804574469141747977446646993807452862318058887472329692542104932180915647748767782495814225443642471792891885932088829756023253979348858609187077598499723055289099584645007184311247462143972153022544592209591004283055158224210078761277096074142251362222397969958433189515982890346770431438172818573825876689851905678203401133733318066319952825102469389789238272773499151459920285603523405356223249501810528305740544873779934618312766517472579613380572370282371800861993087649633096267973392558818146975188550608835129253200455005444099995273709399804008859936524389399743082423513797059482890980659605552996049867708217084623206556410755839938013310238108849992384218187070167995381305209849424661167753408206115459707260473154020036791420309025168729270826595258080028396847332266662788306378013503216012260451649292954268633266877031700510388724397541080424205051312904214932426389448485115191979478981376933458594921087552213070983905842243233075733297918218554952556917411003219064617924264723495978118643788675123266721362846435233453498382125984871931114110236902998195691115443242598612597932821587941537469900772142127622445355139952203435230639329107522624896883734822176744011114495557720631486780190124548417916156029339436474277607274096424474381288536779211304842007807834879228485703175422385534195658202435879408942510091153262344144504050394244745115683471186921274361442968702490333494276478748555660452887390290818976802668123692047367574524371061338666664391287672862195086066321359050565352461906639363473434467441760438000511106621006089446191123344226982992885001825585728723963680962611746316443323760061850960971687287210034188224997293561613631518912694201930264601260982591427925472791574089258278908511518408702265821544146802393353550575518028517679239500885741368066946288927630857153771336318329571320831793247542069841549335345621232046019428692258547768922517463322387982379164818095285681228744250473331812064251929921259512573778515915939380154112318647943749998278512221545682706269485855184440957439433602018817130507580694420923738668144636324458253980799553703080488520446239180425424950282887252824894166994459021791663643696494912007592102266496035600840904234856104733748074960331118885643934826313822077867858028990424094843178310741760678668855127948367820211386912258736349974406698166859109889549260163727763775610806143244627054444706714999871460256500310246659857673535816981555310131272005976511157713903197153496790980261998725684460834104793440224066017322350232545464173356167837203764734302541960633595579016526981672568919509875459717372194615998745888204366389346833249033776553487999408551117273762140329346365665596157499816677302111329712478358041980231826278702260872425673848743647839266943015493689912089828589941410151370289392243382623619625792567509357970573139342657361193958838199547912943286363201267505386182177945697931713137728194750253658752751855010568581578629606608528653595904674526429882632828725145937478984060577936450636956618707292079192724523440148130399110955420877748552303372065841034071205840858056177843783096434523003671031346854524758739663934104466795075710174917812000160239597102595279776024284841403952924653190156206636536627086255209359792764869917519785086257280903139862763179931597727585585467712981326299671091987813642774300639112561970062101745020778468490734708996992404386519857201738577110304299407024449664040297185322519907798681941791569428330372027019287468268396794687875000386926946028893958301167399333423105942373709646599502872954882622022725523109742425753683010225964825083998668142414627294914997740667185788219092452453706692612297910638734983687699155993033966635556696672094457342241689068353942875729028359352452687243003608542392561011877591538171645675174690139035857010147295002166454944767410251690307713492139270944415018471062651298824574351983989348043882690740533671006639960665822961386744019075975441236510434988781798852286925209748696382579808562574727854926847924540716931807132892236693299948715596759971315744251926182566806951849267984173220762661795882909695574893641329518550720419842748223346920830398169929307301648016219250098974498588157130593913734385832806533027082987879906032968215711587547922044586152559667499211329153369351022666173504331825345379483598733402593843992219222283215932228030779858321415621394780402366915322403362009742012147440738005186532746255593630646646024202169543947387748681555841332104070426144134891421922804013187050737679824506265898934069734400593155358163825070391366609319659262467832306471847717497824303456042491490189593927238096723745543211394069366311452768743753735554338135280168884012385066012592680397480954512697501621577205609150170301239242440981548309171131892704655794072610310922036393894080271104086423142311940892813457316407540649704958743727970296728000234678479946435991532228513025850624806199851483083637630207424026903852281261672368398752380900465834879987552966039542177335992704846531520397035600995236158113382916498503763307117982270989744312452436813058566404741008546566709357111098166479165341234546703798078301679377984667556441997612136169610317500907852869768563933702923198458196642555279449570109859269509567055246249711468358944155599448884680159841908288258699085445625057992439098972810886121065853555446678366637624110184455838284631406637826107182155436241930977991898103840557515869975770262738403052858846918685529225887259478795951825125909035512983223572516832216450732067319651416449580116261992206872516226323399246426777203477661985576524828322440574158892822005007498559271861201330279949225786744133066483449758368509519855039336849216738814222194859083987629915867391614185450272709063869300010002299540799843039827276208855940161696001591043475080222728973099244289112956173221912220238193654152246799708879407129055594847106593001247290829881872272727715797166841328691896868654963914443346939253669096500326067656151925529846808964396057114464874990574690844566732341860135993999398848546640280311453112614345959469053924522698181225234635919054017474507460143076521933123801530032593496071574753057180855080013502610518489265767359065514499270980513931247971721724781559089399293366017835374007350401981187084504352763845454924017555548219312973596820324836891582811914300563656057276226312505858558372772656994071204071941804741037316236701727337192508001893613914317665766255979316649585274770708580463995406441914157734705744175110677942153368691048089135276343898707677440372437131552963055732905355152213355416802192309331671735933218720549457817377309797615675443321705339416902235941577755412696198248107232492947640182769429557972863803281397410199586863474635245307626686170087348260483943399521249701415179280597326730227555185947243956203134565250659260216189754762234019204637863064445928079286272466312387132762474419810118400618401703510408909143303585386360313612701880164311173049818396718968695081318120876796131838047707149741670395381605442185726131975593711089985789968207928710430820979013514932155676313399334181755344232783355258307934080157641741345535022877473977817977940624674540192802472424887165964333951357566147472947342920946134835780643769345959645080531899482640145828304685466211067405957774331178347812895366360144515146474240129079774327805124310431261348238856105223700329301901614610119930446518229845283293816396228958314476648833919075759464991388388681731767704269801717675312333555177053118907476944976541126461355331908251903127621465189992936121524690416451200161509192008460127552107697438402284637794157148155712424634372822749869647475258819847440907447098630197779795654744927574932637603775881888563389040804491164595646755789298921504593753014324940479288928662007251782565562775825332082381523419987001771529180622674354314727485176843629557707400015802224731055675564394072886486460674224788804098289861726736040756182577280954518419176242990976535307445443245752480355608733725889091938867472091248870339283784248093545617652581656435676527067646060842959014037245933301525151060946723643087259033894900042275771690900021326527171288709783792738763211826773503556427346404900120301547044030944025417810401072017119664375239751857642003275190891660377764452207764696138772916109807538498123855507190332368840549788275973289917878258360147413105003207628973048209407033145059438957749496933738727956232847178045409816701516907356381313794447720924749073584248072374105050810731256876191609778955591696805066533989761296916535388116584709383988795414357382838047202720405247395965084119596752420112412251767933873163691217112840769792969397960084285681280215473963298041303170024281796542120036639141302966744213474095043618025613188471317714644303364728535751262032227103744861243818959461172993231669671874161386973423004881419065673157613590618810509683121774653755142718680217876704702188619312079421253967096755639703802715600560648361046747113194373792265070862886496178728485790207729323783956951108848265353271781579514157676521350283865434804880894642073015606691432267540881979953841772892138839743337081495215242701203668545177830374521280538462838987463930635196204235184568212671213236082292312872412375068212333534626127085306885001075559477198156519748191001541713407606136595539569083524238916159915179903926243741462990344692179425270372359665296277196391183074563834920322449035569422606654196376553046300897517208561279992112131160984076203208945702583469486068722976478581186515493733372220019218099473104760147403356330223461989884779291311601441889945561749103029707629152753353190259406986879208690368824111998248675775690874211944998871553291156796810572332655215598696980025740657544630602939486272952941108719908396226002864484808410918774752543722128203246279907634111281549213985825614838696005775741948824209802033738313174398136774130006946400344317157781602761796982044361448325534025835310990729123317374552373004656230299624827285844322939013690924292218544994437708255022970314704600451454372429328771874631720430758814722738966819554047405267737785065083498418273487197507991916195142202433182195344488491412025181509401249155015151853048037612119116502274680750431731224858182319097485317017264536761648345530278035884467823030616911398305255922111998317357088644105318095194680157511961705310338212959692614218614666003525405349399097116181891952581834746758688999176637495998842764010912992160208855477229690065343055164322656680711584844071157495302981623514505462812638801622913516064275212967603758369695053142584927701028484295337040197498680580496129573868249854934163744058144438602020185845631169242832325461223231535991743545641816724162894193827431622193664644752949698324450277317434887364974644232919235187381854847435676888731200608322517137406240457476216258550865536810329385577695012638795518607431737861881513437470412903755428101250332400651760287270250370006090551251746452923189586149395706255596359036023363358159241578343790123390662091202001854388697708655606696259754596172636869540465061200532192985432108738985408571051683561996722983974716964592169756439259193839790203887579125145085167486636365616666469908053330626350818448601463302613232912699110437860323028401003775476887874840240518614097538184557271419252738128332956117433774837539258145890856562676266280966241194548129311022484657488454029480648758964866638762918554114137613254422711597042200322560843439385701195319476714221183711530291885983935556503237536510804636257837716590846511079790485728451425959460012337277877326181072518899828011881899631037060427725703606623940447192569667962622527345014013601666313520670058375797096909651838961024159416168643537035076212613573142494662019434943097424230992917242330975844354820157108896886148825439319851524128432165378394020320419887695111060608411304164598294630079091689775147109583320517875179410887881730551222991277759937175492578562749700844548306432313322950686932383890054709943622201204955571111144390793999155020713481575474862425241395311006305592945747417403962240544002097517377236548833135927371656546851509990419722241805775061569320092494993255974845234970291076462507772296596059622040332570125392587258913203447516576191528960434979070789932968449653279727487836748488464806657118164275953555987070711900957743356900400422759857572706140156982266342890732463429342588522997481543941243482886696309833673530463740077095226883096348481077229529414560548335387826249425510355897234100060429068410804211850326133162918436512841753532605559748744216047559892542477285260174661539000613533114358968271094911737233030594861361699878035153297447000616063294184428082780409604408721349039547036542905364970488971543343950265210190045715117329863480094969436889597649743708947542350083942978016909333068502663252334854335792779366754396717230606303229650103332589465122663268385364296227085478301077017411264543012588484747873547795485159771760695327417661334247089189719411651726060877472130904305663593692688779111653657796862774133200190614751683337583590298377936433230872379546786269909310849369733002278266065732337745764171619103389279244058626609895802280707807665126480288715201319559920891951710816612919692521413384974366683644106171018903034598638440300148963706779429841387695010954908101621620371112437393328928448999505172253316124897123866732568617169768212428935126234557871289555603782935415955540641623600832609585597955479019986060649014385113059593882946368168557945335617384790942749230063286151071084756159053638435351529046105101585187273410194732049905516229842069554463684971904408617740534178337972403225354965584653797867319947587416262029935703472544207972501355829773535474869428506687492686195483798167619336688807166209939378758426924849124749506965672050013865878613832492926778520672565178626811991776840466763623961767216361755058897229148088990381930466680248709156882249429305890331717585622604069820889094024573584733481562230253344875707385953438031301693317521694246004878936732165367797089124146233163396325041230737463436926746687183049249669346663468827888964776783543692086817173849751968061130815983466205092533594029087282774441667183377761286168095662056326895500090008094328139144375264246674563559617254947891659340388953378843956207117491451462567252153770827940073300788594345217252844961582459983649277204505474831432418009304114668020015253096791195592900470586815793639878611409857828714133114258148786548338607418541919236281023353889819117700655247000211915877841093458992337335753934082967840091931161228594533351580465933682826809138748246464634540385365025240219537244877428579645290761102590689030457770892940161561068299011468888008891044935586495988205468539668483476882700106595685839759863304774344454594299565798776331265199039133917649099124806047545359250419089384249867362150059393944790489481511995287129227130369354996474317154014361604473633068430233970189026784971502830274171059624088769687662681018589981536313579422628041779695789683348953382321447205909811055864263999787739106810589207876582689712268687097337266869491166525490017161503803266991733203595872504485046795969604527945792078575268187822686414688638052293245887984454119079265189296533342717935201819114160516218967046089525189699315797371335028400026690391809911109257388388664472426892999313805190899144779406502292861959225829448812618438916845902771629146888988319694717512021921704860169745869178454835517671077565040450474608608301625944767709747135826453947706853155074006317720676377260821395824925728541060231065032771876106750260218551494313950550451050520666144565237212251010288071512452931791532496931474472380737941464483216434013388453640223687011136068463290849186019516908902904690686001642600230422442307239775257863584186873015416882300440438317699296045756945596445375691963281176749307986748833817777157826812200060344405165727863956626333782783044064735713904385288357036678020253929104573713042166047014059994665859557160052619260354669930027458571216511267172137383739426400252193941303726529608379578451102952613796070560860885639885814131839819111238212614109796357874724975266622656635375312389181934067937461676990751978203554825930294581082110708989892352118999360860115842468301476989844056698499305049623107248783801796745709271747640487902085121193853016574955045887529190601605309499925386905625925314762902297949034963653984997757023036385850065280266114602250300839021623422036929669399420805039976427774662943555324611793849708243646202454892406344142279559931832304319834699715710355713555989212362015325422073783220797726882515068420736274213493761783059990583897269814329386429016853884837031437308854714354145557638092446590591987960443799930523183907451372728170535777386200194388014304894771796395171313228078728987921663335276512348860753200843564742685812801230296766047603383971649213575358966659733387348223048782761970017974770428657392430157804809013067590300341897137047574913574158424859146777467176926836713033831863899934238370537702227792127785795295118521655210623584915628488510042740672132762989229645322621138985118075010570901064089548117377397328445194547413861313485073375337288490706312896261217919529542893573663083816674056409839212098382307062528331448928017721433079681640501334607644765599754743131776051842238582878532659625497142976237375735742298661560275227283367128582833770194274151390572222438491421407376966587485744980817913371827550402975445560787954867593012696192075483546638445523140952243543001708019377021392306597688591422382955542669214445868144972943657107010846494218227685970077394441439203163629239186981740992554816372822950131024710821758876993286824744887476155742125252947507641195161880790859921968544121392374157431022041777384351930780009248988290706671728810472976511415083417260137634880254193016115634959431288814887245738826419178347261831002730258667420304822632017419811673776080333258585170350769017355380579420680346943948909775997904484994373449081279635930177747060077863495131580412056648510667537012561488466518575412822410574962582421043848027762546452199864929601674291232908431160941069446585295177153341315942276438553830832709459380306228185283603696259202188617377922103364050552747711580875458481310257938037632859995380706414735587480683473518346614875849187500576161287423486436600490346956810888540970938225864838825314553070085627564000409243471320292758636329887116546449295896083174585713667318290649158448964609298502460147784087620815114836059829901445666739918077703259733529900551342767851897251459136273991768671693630924712915680738004241549433162609010906927375770354171404874260469425321154014398756653641661227199096875744930135001974354995566708598358455321505927828566467935966041518531895388302957546031130143061861058425214585146646477260125020252135800034339314765949748325527314343775915005172779083127153037009444298291070455037254985268163188137028752696080949299386371722102040675041592765406064407976803418202485741244342414733184214937547027012950250650861800409909522565334952938489476447365398982230002364975418949529786505036894684256129220485006445514865316133612739778461989260692754871062451240249944207709299088676558705699041998227278026839093850272200916037678418193499335956330545249749791802319108461105250444310598584139005074866324500867503111973087213962259863466707609551432385423677329592930439113171409638238590327777176075800125166335870677129675766666366330634592703959678727588986424444508888819316758974379944059645086087728060708314173800013608909596691490878570138186934537955248672963557014036829070087321458261481461028346069350010150460693711316360703661824796909889641244414564345060964371984734562488426587311293409367919608256046778512018322302388150485303166911135941514939298493444526616830479668551186995287321224212010937904370481016415521832084264097540476789117522813368114440741746073279384038443996685901292277303555262308493626210297807459252204213622911780401717812409969306941425118215038260636846334606459818440404237920772292041959843197413891359343921966172225487840347176285149056864931952026864323034917709821549072354409820318243296763083815265916396838189575358639824063070292726879905609858438232089707251601809553470016804852840329245576278884244559559925039730725582594642950565960583999888568324029473513079702792678414976564045339057600219335955209800174037232844596700719691734420911177887791105287946617030392178409144441885137034301615444746709799910367387279802391868229502034999436541849686635144905835586525468977953849630056512006671284880343024490215244442386313171109076841413662581720057724624258033283459863572612286235084609464043474914825358551641502884171882256401070524847239868964419949179146363399165006452698646097939196997308653223216574901372291827360217017518859763796548727164188221849259767479909652945428378207271858732901022695971947578154741751300042300872201807035228256163858909445728783314658797058902743139816939306363543105961575265404185197154791953727359049978604884542537121491917725100441663277655788836876803605542757263961754661640217275498687032330791739015458858393817677935555960456963535843381667636648345889596303480951450155609934664510476722731659205018352018647599646078921170284289114159041913974212812701966061454935112363090673903006873638430814986821680404214850208779765994912582971507989517108774141163661284580469161082571023387001394239598860541876649817270213653670877949492425090282558797686459251125008698459862074199897403532708265255646039658608946836109813212279339350692014655282181360903526917215468260001503900901183334674941037967903898504601685356761783930612250509939385210011938367056221053783731392223712938379711414244503174075548037980069588637863140283402383927471395255729115742045626793409313083145752839554201795368510470849497311056877486123004012709440551058618127586276277344390590473926772958428323683779278098750683988027226156490913131358519058313008025377104084933842069555563029049885801783895493775945500557398224886328162777745130079837111216382576794929952072545175265529227898668088530297839607053803729307883883675640635837738593853194461918144157945840308081133650216156788429904686370283353319951816091074498092353332833063556061570180663378751166006193790824872797647283895240671549946997615089536270895915722451762850000488050839731181310247281698809398802949363936962485982741789007416326989164379536810932488861550629490595867871318291430216017910111568379993391608980700965301800665524659458928246375444746785817430733977462667069552374891188213461029427117657671663123387824784238036618063878757284816294287632294320846992086962168927617696494137187558280227080402629216758058696305332251926754934177347822553832586340991856274080339620728892977038356479674525704121487167098581875689137063232535990617048335082159852595874976174176976172705858611882142581613623134203698494275237870542457117852129557430379632962186038432976183109396808878657650706715294310287219082538675798855857026264240252146448028642261843431616189575807236452972508453724001289370092751858549646170886369405653046033650814772109625437780433825204634412305240061543285266002058345695699311733337828664374551374362393933530400420307561792647094370173341671845510783715861659186886650221636233766247357586366287876206491217739950355760561882573382174328893858885212935517489170592928448362426016522782999798616158367423498232885783638259727936322277458298322146097293947835534493200663635404174420483308099175078604587784029967223386630133594475821729041535991447785624901334154460141887015840732227548398278438854691898894798192976783705725957580596991894253792282895332766256713230294744889597067899572081307729245420588189782464676606954536298200571724388718151626760144752499851700692779776675298416148675722671890595903871827945494678349915508099962972135037633441100644431086678771029586318520909214643398193976180004411734364365982208401623066086238637496306813760523267484730153518903730690471016112980697716683117959097368706444333752124120222124348143984903199405153550850813185016347959052382502316822244415815248291730819145444129675322026358909720744838768620640694643678994176671294416690107772896571088083849847735975408531581914053996530712967680309684086984379226616107575629073727383964865955049935442056756414761145168595066677212532687713611582708941583289816736896027198178390932514978066976266167157543049768859511131463014682998678982190913645036953655833613320051615107415350179038514517665585824323563830217966794327372088759476591429616288042924289795947050391456107695219946351783694555002721280792420359567853118488236255873073838228775987415458379505172584841645920772680749444214997894541796872862930436547445821365231826626405543475425594982997095763433808719008373535133025902520007960384570837798404788500981003621019723794896226344576077352002719048304644129659642033191731439908632071180876847177667580025761725360941333665828111083352069492172190614499762034882737029123757962043744222298279977620936954099638006829405412958251684600540396148274764030189116547625126872763291438425101694894962256739052636308583794652668915030753841452566801344615691889023416227538152688437461589360100825073325031385298752082905063797970326938027647227496998767966487872847405018746188856438497993658301435040090162967326875470878245955130980070583487784233143722215168880833161168977664524442954368178024873015755576512995108082109514427869223905122170703517994255218853048933973801786006919229168273442567777319163750748456379038027215026542341893512892740739755270388635566125846028841207892590152453423927944290805395703858132081739041539318054745103485419603902169052549441763147715657984065174826537538779912122937205496930717467230014195721999315961636750744954020875717376485100281980797566183625417905815312332509717735397616038928130824665683982909310665392452494376994942793623569404028730723639641742055813132155800792518925143363439116155082474952952657121068074304932520382331980610023846665823374384881496594839434244041677454167284217707115589886695512826944804266379092333945126243842607231848155705494829680025675200425141956652575303696975166844988096450400586394895441939599400417426208640811412618213810103634935544468160169887200188218944188774564836296400579206198331890418535042419614646093495479808029805440243680367680130477598136435620687418266342696006952810468352278762429767465464656322630439830523864195007410656293918420381345377883850227700688160353849882991499127269644978605017670193980424862427195536489535595614431798209651702734617062965785147661706048535816170694321464357402597313736596239825069311239789060996029568349137964360942601242004657238025742888907686877745629768613149315487476734951169108892002940635480778392247360610343105389267493589812497592757695869667724210281071612551118576387704690434364004453141931636363722112210112542814028223753278471986001365221290433461654051160650998391681717898496693456206654713552406133733855646766549180253123933914681640041012384621929814156867588396956153084954702109608361561919844437682089564873148629685885108075177067150352232459869428860479471885327023942271771498845277236600686007186013049116325258515026919218421847478950190147812134636769947418667767330431627748487451054562429268532746317496554784958940232779995927159422041896875243967383722520868978943119958316233195094845377469723789388950484782640300028793091160561840320515543217346049960432513689025554375855094666458645010395276946227663219266570875538913362850392591842088385922188509342334868202440845133097727456692541259958863897446986413739633760073574782247857083558282473683478136338013193588991943641748437297459309259820245610944540574555143214038646926817287843216521289150585657245107115534570832298031512635896928531014731121733907054778871716693706763299249212812894782918800589682071879853376752119120033822447022800110916078738470744583850408461664731855749312640108918719404276830356282221672865514920443955413014906073898295183812442915102863770817491464759909803952982355737467721140042255154206152679778111500010892268320628472040557486471110409972895210526804140910478142636203663547788834879051136105400775320358210159678521438359401663338979246395725630695434470437195915635184395603938576816267017853764527193943542878504902512309707374356457256844885519663499884815177355481898020391568305401233210850808106897278116016681922100248792715433216113852908110885166423843610051880066636184660997844912259968025904339005068432314237933781969734042633487085049872278449378934761604469709980233110509143942411851979897442620059880045851537801562715123407458481756256203775013699883878744324519792131138056256385483511579104673138729794943437306787514820719125469882255019708506020052365725651065922548827367033365218670746720205995772293356941898639514225160724597118096377461324429239228150835554041661355803523716857784916747699650329972343863675558562639559398768626014826344426943338366591009898016483463780933790185082478083734484632427272319612842642796710732484643875678709025180684284076570288800750053701292321768260962845524360326964952979244142981576115019376376991566441305289481773293956779194793489596077793861785719344589226173126807681946463383644742682249407281713140821704107838131540913463525551057005351698841065120915428736796333057282413886317304400170898076937426140896042586544387663509848976852519321652733765597945787232331747399301651204890680558208973256038440816973965229527215670038929915056384029155336290732016449256257655279495796570485175520931545841703628226688262317834691047834331985773425575259853521181373131390667490333985028127517830233958251731805925675593034083241123018784216301497842935889932058367366985297286366585460258010827864243858067973403008088063040084625651339383017434944353461436307822454711749623288480581348272086037023628739198532442059328092252366062406438512725628311871991512010574942525068695187159172958555536960967887955437308007978468486606636071931003813032790380664807010812786485665989551391030837623400754287595946701177520871192724134083673337602321947263131996763424563390310195013953307794419922429473572898422903801908636244289498819013680994912344718523142750113082669870791811513943426125390448905846521720205370888154002822799253339630601803559600280630498722551529143643104632135169900894232706053145436195658921952421463030214031190147358841390861305832193014306944535340190674550573185530179723202813265621692952699271548368641836203688162899029515049167365131902584162592780502981119811580924308840986132991911783047350017378044833560217456949545773974513657932360036959197393320965096045472757635348712329586526674926753709127039672416870270400398240960207020682736484240996181689404170190512733409919815460867467760961925375337900344535039468821999580297407447806414421427696040956139722816805895021180299911991154749287739198613607298243630975809991686297380862621723730809569722364910264922717424638031249273180807868688113583731839489004709785162500678785448364394529813770020569638856458544917761671731921758928929997964958502025287247910453453659195966841069557910616905544415150705916746230791680907900948175316531424797012248246957150038249137566015023936480534859777596563729353240983189485229607335624976987043664965757446867458843689207630737067875881713386264870353111754890112813020361381126489535345212379915821679264432584267457482179658272888724732695740492450362230468010157461010067729474858545334414492797970845113747212889841885081062562907248672536893043596837781443899898377108111894237409841892401269189387305036929534624467814747578436584156598259074508436097919799006534582972028952698655849426435348798432930835520278937501141909841499383593435290631966401981907389423409436877107846537747772312372717704353512519151444899995573073058073488511377707844054794311352910761814296689105218694364688696268283343063183993563971769899972596538027866238511726261848132579926194797452883450216643798194455857395827888043303309508278230686030610026796965230965487530309582742640028267485336176821897507040264626252581392909612189124311234461691879557926816872078547306064891672283341198232234088242417504968133934569148387591623409164144402257785175485872322001118778368121589603398638304330443330551824059679120835323394120827021436237821106128385483222609935039158098961014774632908455748472305584881295978486627625183807336555495303041891693498513278929707906292770469919861486361777487744857435277875624868030891857175729874027962206907096409114371596002372564700777633302453311997993081838910046622142991519410055036146550932526715127748428171850223104786498137394097598578248485941067790756173305913008490994192837309919537811479342891696569785512441076878856976853079426546103198671384648542549881582151184693526167047164463053603703855133890117929300600441770807921510722350539223855062843732917204283671275852889291420881087738133552387593437074832592066749498080237723241066402997005123084157835944443547178813831167528081996394834258782925690708816256557286968642577417690631954983537019129416809556132505944732574552867210460647243346984970017005352567492830554185546978578294052393399644650055259822397203654545997959690344677540265455902548192605695098141537905628170227673949876911568115860662123089450837056750924520877571381133158853503839502832233081223741396078218810805345872670973512703836918099808936363553064828423242767781853008474275099909098347850230781554082614752629261544643702677284144901146411072689177492194689430699721716514520000185683847790227620851393345921143667426463851235385621434225948855392800880876692771627970178454758715179662688642854367221853756274261904166479538559812995537049795001860283375730285200264618383684085409500889165449083997660165890799118589615319458673365800439247431003496505472129589156259781299536921576273314074462325419673966170195461241356977021558236728781931333449932970967442009111776899208037617693648841985621837121773624184408132298330805267337035113199525471418330966061851273443940340126362382846257059280708157915066295307049562522754008288149582292671146423405732790146722201909027322470705948220696928043553424293795300353679218048175525474093196207496633456841319414712824792750692507341212590971924133396870578047824748167473812046114936751031046827196412739333601841025213659723235428247197715502786508583011717820937319353577072845254489601923410948584389675246726210503485921507057994704661503662790691893263756477086877259714956053268036944376991524180286177048133051255164637230667699105324026199212104533498128099030380963862088917363758443082890327925202805729038763425724635495231659247384442312670158131392241958331561006585076614006835991285271633715419951099831925846671214525797454972644164108664215218695693384092401739082394351906486791636737531131674430127462908692713509322665819320315296313791518906688411754372110862809541465853001782227639885519196348349433666904860274897474972338389708407208387295196020521135492431267933261625892872628444377085340725090849093827253558195807155145184866397306291185966989520199724413278251898820988518228630902017830661793593326620998546743975500502672966683308807193834131808229952408653699634255697157804126727713892593270615891160831066124544048588185034525142598021668194109712009387403052397674534932678080787290160819305172596705952437196688638646340217731911156413098125350621694025435254755508473429228282911997546640111782540910596631883465139550451455349953073453564478510606302663839089655711047990841673737993636729843054552554528836251850449017174415950959781984330262087433448754396122620272770151501753878739513143354777581943934030205307475963241313084066534994179602370842103722946230064432871855408743266025639392268086015083566716473129191126433105011797933560364323846901542264345480644646417352491902409841311795492116047568066647358717142045784269849049401579394491213532457053375811977100353863615796520401413287174775426907684000996271092008276262189107317919518492573266626321550142891563007125124149768172650377090839528079937007395126721906376786160091652061179426505797878227088695424987642161842019457674055557834272105432494896601074182351347867370730906604356072813902504645587357467395375946348425324162619857761704609515033955602055536667564776195227095398901303811530320142764020553883382371281356665614344472256432892896625683078302040839748899992911130008742107215209309647670251303246532380299693784747466470217735056853493458815062799545101149984524131334051120865783290876120773634098744525462424133037621985636317104200626178723592149399085339597245756920606409963679909148501277939911213338615196578799831481275728788002692927167669188951844599714097009244877442128710735592062701210477086436297996602902924978052417981196722855293585910164174141484981590158944091414168210528472690294568896912087769611286129863993773163597274579931775169963088879496756778269000357798120689397761214470934778747424526064268182489307513917517735384770191591345475964864905641684990589901017158659162041994424073574655373083112568442880046963638810333287867787883213536945350923758443632962585907223057425703789245709885561125504523584885008299433284553692712321792486677953279622850807735095774278999761894934254620694864196616172640512090938819428589294925600696849803392316853176500643259336574219292337125489709742886409936787829468895925847194068606764720359825405139242445479364717844800103760773977966595862185421443428710953269435316642335801813351077216732974344985544504519838084733519359740018639229149772355729761408641572956649773225887367773022534938789581485153646138042280750207970448721204179526368292522033677129114061410505174472533775743339870612936117307578902177714246792347369047645465988847086584565368674514344759020294768700564922705989786110212292466114141743598931880902096992788326000677909301892463261248934150694292600854497944245103356028904191024870326017187091441939517478935654020376939036055407907088319403394799163156621006824621355557024432216975128990286968603186688949709294051664157995613400398753304528430377145642938897411916872708192515183221148089056490291525768315891862229948772671356394171533340231904767919190918105329956261086314579757721256501052243060767045587870498752043571524371948846261991374236472872270703143680822323469975359674921508367856599271045995426195515762922736627644711118026878400977633192623064885237090442288508925218939940456445256096499141261285836338274380578528650590563718038663169713568446614262859182901994603581177430286176379554498607966510585897847347711059063197531657092454059139113379076527741077250755502469575961165842835744017649947670801908637971164279041560102641086938795876668821028512515190786417864867523122738273314465400640295024051387912851406819727961073413349392100896781204434641804349876757471800146318015313092120177102534022364686080912490868079488416387057856860791961621238109178030827054349023630382671558650268165914723483662036445571200222071792964151160666077812669059276470939555562693337711658914921833672307996039733955589049754817567606300702557221094366152408083141348442811127694507510903467241206025647946433094767755540421787937233353409656275777744968946944253028153074292360353520135675646179663844401286164416161065389843199068433274505773111489201234811557383265150345868617657319435253889763047850279330613313478300402819089742340240494792285542715121237274963456875879237142294532964780135834400024273416840502783823002429803923530685522656419635996655513231926365321107152888843385188790031137886150410394526350445055498235857564473954620080902725262530264267428845948320938945373326953786726643148461711999100170459287601290348496437404336732710484197705844104206248253497070491844829035870695587176437518412380400583605667768073708628388222677636308879959499495031398154335695327199631213776269559706698935800190933201744770394384692979432962163698254319241086821296519511195516694147576099408870122862928127271342286976048759372759775624914116371440317755851075012095045979843837437318257043319609936705937605830459314181487763013590822908007358922975894951612340390599202279468385383276537718241743771258538421583615211336399630949664665394545648568784582571685073161204468994425199261792086258290291245876822111573085633273302118178967156336770431927235669263826056749030986062947849526186872088992288199277681343907659119125494495011132283431140246116098299908824016384172178649645884296716092778428972237647542735307517613248795802532849688746778429868562671549977520612602476215711742572291867821530707779939726413302933684456346478775356808077802572216242216438399040542572066996205224246548563966712322435950748793392655807109516828235935819704410569939662006707942876442053375249625065255388179201062395666368293859014835760147410136478393096242681001086813912690373822862788063495262135944831700105093499655094884325604724163776900281986210819594322882438270219465503388993611156057924615207327476154314874869164849797379480682293908576120241690932648723954895972878539049395464169336005646111440996915328651397873379319634594479730039426964066091150636667740803360904870770671007481131423652524918742486516463199466847640618637963457120583499902082993972003722766001036075734457002334040663244034554595907415124802779722743411610706575110436969172366211100352320960302187256358407786900574538790794622473390024406030151903413376876350866668937480363461317193380883824739426217082387709550084450637679233491420987997970239659902836940701087421833499239834761088034319896736340876930563398370950689990335827508748216738809784581372236229593037019483251138721041979611928098458342856207161601858234891138524171930496624241931999851354072223320546655639137188838289410227873938319141523252864589258350991119173138534844845296798506134305981348954639987964778643424281988498873724364073095068695665722185130979344003370504402801414213807403716610077165255896836112130870803485239944842971605853578675305301626888674328764188960986820737476558066388011981381732735830492608155828645931110920500456213830815808766796413820327354640008240992974142094399592481898126491380536920801813701024278360548323421318780730969515159285800400783367801477918972315553004862062624165038710232803353241268604540168825115895153766594392464889268059492119723122085623504377860494747828913665481929524794427679198458492316620254068153715934884288783088501472292983570792696673413136967859207354770932592388701963210531893951842782506612094693560232192398587386609468082705098071809653676023457052064915690069754404957739771728944146083903988676210810593609973649285469242744348239299254175363998893812504932201905242172003378409256226638856810562890219077065365066340376334988458288406719660442687512315380344068038625719367654750168795828919330506511301240072769427969477744209662967296211616294056099197164897342703346780906878951935432216721561244158625113577085461064356078945678381959562448087651647608533967324680478031109040296453029465384936064969137160850564312217133570028055175046525677516388080729523499184890345473791807500866726736315554277788990559831812217738812420255467249073527804437052133092005969276579057861378107170162274859943899483241473117640578709418208991240334244782912883514983502646385896141561014431891556843361245331721237379667928591110476409316232514861524807512879846780786521400474288017046381931040555806831753437769545627497918020828548625158448437364592284635663240942670088107672030320731245408265599345451853334231081512503612606818378384285489771420451818572891722107743629108487987017044441853091736358419318749556587125708835752416792069515428438252160277837268696341424728434237503502591493916858463859793859618607807999132395781018962967811084684293678651545927150642666049234430202696216845282594204429404644091398741434677918384208288806868929798134709526486870957630481139156238573540553655586078017406744951949608523176679599202216474161802425210306004700889406100393156153642685878289032069379699088904763736248444375438246072117059082790590177671316836151523642858212959061180577489687720780891608154341445217274562648965824167447078860412944974228481348308119434234750519745353236931104431528715542156348342057597073844436909260309620707468486420002738176638902791465541727249861501603507138354513679036651867789180457609578199860292646087453804773022202343922312397555555391020952144237016131049693420705661283874167204488497722602432934945407789167907117597116841564642205501589676823060778166702138862349308954505292610994219007103195821030647369724277054915271852067121584352712849350983492168473974270872143968263944353121768166574034727124966518825177641140175960165657947819095064387935935644299306448426184384188406290180326152284468037440317529159645585239477931177723469589724679015097459951103279508251808847596884271597595305849396496201858432513091496741702099503141662015559049706983861548592568538496799779273847104277797462776780706824364193138242547337746750571828946762161687645280792052243285397540780648590038876244723675324267578597826465612521163413812312423293474006421335310084133202299387568246094055919199687013638916129264239135469143857946696587630618982841602170681806158679433731784497098783553800123371359547328478904746124477156767846942931513636856599221156655068108813309340947235724063350237444515705152799368897709895741347300687399416779890583643631626845165457784722579019342350584276970277165086119605521211653208839834614154320874465941199882815659715792896609067477871614353948844615375166722070763023944630829667721110770946897445604529141044880224369575009018509411485688073337422856082657552982036790868323954702924765296842288279729553107501716333161732197631743257874725792597329840961926043011542872284948136539146192052519747093672233375772560007289963881985190335164440578020227181916902129714728310412961611014732280536941365862296508534694407181431986296029057374498241068635717964885076759890497941284936214313045763446512064323892846686355452341650453718441099774260283506545506544334793882856586714096461900523068600706599908381169270046999812635119481454364183928199252877933453125483148157399682453974667527291222888057406450367677718790273429128148140764276773134085477251500354713101264741767875253845033314871636184015965398573712207483941308040923374307510764541641127300949563784423644886020392774813046729053601599116907736554816989259786266189757454698620895798923790878254289065909203622624767594235475488966199422374457654880512821829005416290534329933812748991837315412691940502634549912918412581021089733336273779736594872549472267679294481721543860825620010005217905769257974295565868248715791814897503847007021398032669010899208499123988937857053237813811776558251543304820285165281590590814346599255284212027626937706074597429093572584970619268548944325517936412414043819267335971813512507342953827879320879206544889983351920813593594606653988349914923008306985924844720327198910346430728850526779189387731296940260193207539319890139409798474477165863072122531403852961632614603521180624499464266861995599639931816014483250302318254415184199916397665788885141647091864465286681339224103306301135843815790186082441697037377554223442573395113864585413407740946994899981459290077452499222864878450369644112148567922166600776699752648174223908381836413696154003211545607070679931549234823657420435936085377998160115189241649050011763131366490163711365333285394463290255945984701014899144040066530922468509282722961536222082169033676520422164850569413103048809212590785651323646982898313822550680308467298040313092513012421084082380847219983506668848902493097303744915497958716946529417057537559751358924324654527949994742076742969036349600638472362808950416582516011958986301077260792085718672079021154785018822063551014229934194564507749596725473407341231146266192168778605482175903873573847265781706965825134878002273049055299031606508302399613118045085885195244582068566878635723282841472205152264089926230869995798585121429315766028291020429938636526087882352029147615279789901027831356969271204046099437897058548501961600237327855832725440021467076682525230269429876475184755394658263754046670447721472409876676643480130386290308645124353983653206318716722895516994800979726093391940403637597127818132017645869376427256873206584047835913190590038596551997135747461823372074814042766272602357351558593259256113892032743397048470986191544952079303449973200854768023846536631067650131119181306052246747856066762729332423393962106207102483979208950410306520991505777747663834642270258748283373784697826690307723276927408697755295970537659687695106069366492578913427403754983248696378530228824861333470754429136608630290623512039816500723648041354779974049026003246901510587523493334936332205773921099613458921938498379481709816847780534635107716395899586311126336443273304419797180743541807122168625588562722712985130802173895691365043367023998786656033917704402921223258763743525300151799500463357132421356731072505173383503866054659657019635010660130102545755324187147462163086316391781399694881390149872513091632803979324205114682257652004811636202249781946907280760475387733857609965719171885968718482535749060361277568639757002904035844204253524148279164062438492897359508510177278635224516728639844180710173656007877009458903838531015598612621077837768906617586523328165872453228344096016307821548016146760465399424821780680368561714804935749617837807350787386731490160033394866704124476876608969120424303535407326892457111302210955906857088864125074631995392036280661297509928023072230073727302348421703901150978146142206110751572377042087589003046953636261784871437760284921416686242434136239750625039546751595938215858731719279180911753152366187846975419781693780768633707350870730527789200093715330984917100733725851118163473440634361694353858460121717700431852709588890384105067039975276495446718942472876059436402953865712284483490017166324384437866784865509061029038017484725245108590735937455704776566745486277441583866599463320855662343628415807468577810179611941167608079109274314993517824281002178269597605461051258322247166799467674497571561065546075864615145301190700282580204747690013118447028010226726519771669455884744320742099093764750029797533971957323383272736720140442133217539227548159007114259551330475173151895201522663768050874650077406515585298459376772109491713227166896632513439837783505305936400540521579455179401255685507519516448579674270421630397579594994587368859557683408837075058222066125615581359996419575656524730518238952064490782189317662405220066632153448195894969220704762288357303511002068010108988527865061509066980562175780297270575309672169689970248474712210503162142260633205795633297050415902045963353119252968602690248969092851133900714269504889610200609783544388837877479652371914869797334889474369278268431866189632466208155143747092088780949335716945400196091785261111777458729589208946850273890940962458528316778507924886737378774291377744551114397273300699041042129067236919896765207378300202193099553708974274827505848560621542585925519630103902030591262899068567173836882794177437279482243604192658124201596058487174634020255387261844668976434384675320311951495029664621705149373522044428915915935149571598720115864629870621902750217334847117703598828313497242572123935119126791724458156695845020396506072078598714875955200724034335019338840368958807602439534832332246074851356210668557194872920941627421927705712901590682814119079952052115702776540519557958335827204094096758252721946710088115343871474317115580832287701755798411053601792724555466326251446081425518986598698649351005750067045792257546995484275059865171773968281490181733794561215100698356068707661524553886610942355700697753784573556283426208046192486882992825153569153784486776799281066852620337446791932944732807497217680154266824346369805270190044154590080257332996738941036140021240463220889824715145861788758165583542940123486019852142831277222931089995360003693415787306735554104517448444282160557558103933932419812694019519527756913896649357389539505799679405364995078909867952057502163805906656698385860019121287803266375248866560510406513263594093249220856619562782009903154789510676317487628565064980682762675687974761167939520800470527590025815961274184170873286766429004878708854770921879800985744896249697505796208452209143527958270122773112256358256789764425829595193475650108056329565367063707972972958186679557857060509884419743174138669415847410046673530819848177954022130218004854529790875205464279625489454418114555736620286966048557121545019940981450654314374955333486724679876603833362661461766665075638600316541330812739437199337985294452711470662386747952336391112963116112547289776029061947338806491756039577251266912034524946209352744601066766388589603581625763241344905825793021130518939302099169432305396489537128808938712397584997981956656849688397123160394370340802648559192072609445063353159932783832927967966210461247452533644135265803158690617246844722857504405203146200945044054462093345854667632826168471460352132253935663186992850786687789750414100054353128329198533419180648619797981394445742102828314411595939843525959667318009103814154823663962499717867954575453622229267134835582620311684438686823019117949684679235914833885360803321500834019523021560450419626055438820992561301812261061181409889525757646156406040334242225584252690770943567126781441743633477708631348503658320296100738106497956013192117833862372106423221068660195118751696092656172018181558673306198303280421510243739161441368633101349799658171728776369477007778681809955839656721878058288487702983428855240680853705808410917738376571201603001931520609815104229214977584955888603616404257291800908075994853128793607834469384860272070535605774401364286461201726855720239926501092453874117111967704616487053748161245261601883395350272339675646169355119331709217828622458137574468824733752342821530174236428398951645035528905703934651687836852643795816927017605161281257962049315818959938384911394403919965423069857971444009121465457961246600837654794735712535651434235335803236471612142313443651645104760285856286015606878014790876390122127671377676019023180100116190139591979362886417461409753375559418171341222835984051684753816589707302073508085476204805807761307464049354725819720464812829015208863869963235982085031542442969382663015519757908935143661883623427911537074845047521709444524324450687560102932927560579627324289539142253029645307014478428058485857516103303149215375044643669900623823259501443585413360427026353389578308642570789359199546414089842862273512479064179434949754353399566419935913230111046497621517999615499732211490862019193447477804769682288707975965902985935377782984319226637659985768386445734584818072491800364091547991486386351433223366426800650560869632329976110592551266869119087546472905431554941460331461941792769741675951770021416136600048181926378487480795896570175075257977888590810372607379224535871858426636416393929737305310308964327259383317488216053184415389408870391867673419266878371081122037881906243518830777061911878810850243806730603937783925960517603617785456414468829271639621937037120593669090124008454898958361869826258593992735875041993900013725439864720616218467033307349029869502548052160478758985655153278234784074863763411778742355908159665464566506937799103987478187063593339940683443676456943063924546966553283767570951142925975109913103333065923477816773711316222219598404932746033216003139485886960257521695468039463095967934619231366541283157826263494291660976864574342822270032844266684489412081724733101609091357440793078536713696654681917498766796037674764558027130531407275880554673937416825275236504314803746369327941024458287259944698288055628943397559619739524461734962444357148678750002147002600984816516661488201461336609978995586475105009880149737757269701091415708269547708744673209703130948429165514136331773866789137763446909982708596620849196693507517417779309208008706550117038248870562679513424465954080982448069878461935733092077016356407267850256582910796515642159594282609187078969038349677960531043541797087570143239398233613200528313215767708063686101293654216778468649693488820647194590098939359477591738813114115564153982026042064285728396198978356350501935506899306298691423078155589223351826328545135174837764119234762752248144372878115226484603749062084902200819671859039972014319825323880464222428012240962329626783054757865943356077723960316460912988956166582494760928082224682215339146154126896281951054383200699359351289558171632195734573833640824408834443718291322724938854867092840799709432964151206182407428645230704332249595427926800079285880560692520682528618454253814067160435211364710319948768940219230866860024375152956696809087458757449131693045473415352025589036839401970097926421500449705386944691442272285406961308973410374532492412511393935303088651666090156861586516597446877913977500726794655068688499416317161751071567231076144874455601187016124176030235675233251964952392470534181649633635307043105491034914505705859300845944202749343374417162746250678529741233955930656322408924363968522430654306844407843351431483357571323063532433296103863606386304183861441917802780103189883220558396169801947154941010959952767611133391880403669254856706288969047088949852258781477989186517142715212077318093750675810099419558359249817707323139106555782298051916266697543605930194689520879334594874185553877723763463030897009051284934208719876327387329117031837113572828272433793368715374770279269765320418730395001229867745197418177475205006299120643792589111253700660318855344330165960817239382086946618336261731549806127447165324255700128612138598573142962442825698251028252702386960443635169793938951814549030297337033980629527560223098154833975741004915631749136262360992784905447659042280876222703545307720313373053797972252478780049331857144376376275170646038299367630735963493686350296358663287870700584579328302144798390257960981118978962448698073005226177244958226832351076958391819747188248120670790041011713424222522316138433286302093124811966626630154954984483353982314807714020700340953757004834274821892378570802650693199303148387032806048902881667998408810026163185248981812016734978921581697300780711804164104986779633846965412623245790637953091794064166844862848462216563567514913365700494357621875558154556891650677993298110673900099166472451654702700949654455702914905219142251275671286196022977288987860631985227851184782893140708803141246578396660816081405905047408027202605387987335665556558381590053118956181173013500812269434636452110867036986764399946126524284054474408520037936868848858709671623643616165642884537624953434001221495570160573173737742287138582123090805127306859409956371269315306635556457116678841254215652799558194777835331980214493649950747382728475674993912982296153046426102624856061423252362574494948045671509431383218225379891508163602097694312222968237298327748894186182023201142942444581580928712393541180158891835386373432830627531730797690587220992056409388962659822293016732262711505005252970602146786002673211140647762889564072944802889949649109534500836690756509220973068559902445566994733285490804799526207543436117740669139709088648400206493774758445679655290974139911090601518665327869141674127547086466483668739258570011008582140639107637148620346795647878984558560025810433418500455276778628435342751905949872687991678342335791803363229630383315661941629254575901357732971188040474742858239505605051426499889822697643031013127623278840430068347889512131774248731699904091535891749388101686780168318658775147331450665946895033418344436897239396208632041390082833814830483195920356392742461627882616000146401109385324070123738220532380721166631178514709390609406415723558096937738233444973013417353692387153050077382788246407875495471177573381338618881587627210789529411148598645662006891874055060295185900324161438532098809783441232138029212737002091703069866827451730300199638011145437087091206739131058071861190446337040353684747435441202476798162517668954289224068351390616745093555328463332021732587588029956252782602038904733368472079997504439978716851215984936645700763397248805338012572450053593075656053675930299507894987479137600294485114275642171101991552382509107538786983941906052157076150993726047564736164455935716956211077446943698766061437923600468684853691454631188442897920091648213992798445522950522833435644611411281911221815829636447575140983643837227839053446880383264702576624372709264653328909833180463237435676952984272414167026442979908374937863818163304639775084913972033824170561995234238230789734565141965992223413273368244971399082401283013048080019796696997170782988778209157672370837758834077873519284266123190552235733028782969380443238626531970762113084043667590613633292277957014639643808628147033369245674476230938607886841514570058353735473984873453526264474202745977080260838447580865442208930916001873058736662308218438184797431085007764041052542412115593260544110362376516958709124161780788549376466380055068992695340064950095762606895757851653601396637262718560729364749102318646182826028287641948409222593848360701885595029952292399963178231987758894087116626976601590111227318802467992011546960694945143943742956259778006473317682616164736178205821665401628034658892493579739669489899544743470281415482459859815893789790683603326537096346692283284003275462003969208388869660831704284263041410808703091627826102347466583217578641826491187935196611115740619382474308405923483504614729657966333793100779045436641636552513822007536614557670349085945921012881150816766376244018490418198721329132046963390540771277689786823716658216775253122670958230835767600803418082348017694526354271662672443358487686675089728898711069673184881383986847966017904883342093541402248981885006795315222242924624847671720305941012946548034254808094284409234861910924048111243515241675355092729293595118154166449858913571308786498997810856574495336025383914722986947520490708674963663162052164769389716171457656036078727693315448375990192349996608617205139929790711338078082421712844225366103529025579317510375409786410254051401061251522144295728018470430840461204652438771376740867468477067902445467096719939290660452643093786284486444129282904242298250567940125914295456079318816920216457816859515936123611597012790791322087632932431595972896978911477272693272583976019429652952164759909463834479036117038680072512383990564137764853305877007179581526962881469216888253542913096820487970677406976178379075206186231657524411745675116217494250358462983452161332513658702741004710305833355903937848126556466902677568291539537161958920132563216771229239552470448377086444127992026299887357487769776826198397336467788122868778302239827991386304831771273154323654134498029891695831097473822840302109093437494709792992285572788599568363104642167574108782909820711310923639456994670717924731286511659195886883298696283607364362670017417777131629373808568285419131454688409488431843909043420376052911201737608709344212385569882361808548945991756596270510106633414055563473708103265771172463237670142497854754897574203828188254425884730335721001938389777867612587662429113935814249095123324634075941423853890152404445963918526983117728989679329034176059476718746347983458710338398789405122920350891918301866900508519738182096074909168832660863032662176129586456311471924107731575232130306327069450132979127928910261027535577812282002841739689840088334607795638896935027506964273086821076066733498129787559287995606869523377136600666308028459885990782682175943194606553365540641285942069915543750466887471421058386565518346742047127938925291251546678135246643391631766837786544934179240203841285897339652615537506878390516768561867818249278044923528119988865240391690509778711734619701656509629653180406350129902945199965868778701116683025940052628863128791392270333175751650709142241212962000341077425584191477097137149749728933787940813243040667617172319263897375482660086884104400872212232495380465668176360859285725862989156087195928618973141968597236560880985216480529626238935878897806950454145308231005409928415113691746534373863371448404714315062534614025236842162658064085403716268653523400932063685236125100954243360216078692059863507538731237113415658826708513107174315195108827870808497886653030742549201581279324710669034883841236502980645798462926764743724261160673502861147678026799416435865155890071255393016015123047828969468383777390672740596795969981297924405448184650560629840759924002435810310234023362039566050034978824496233068698987332551265913316798263557142171309036565350141117924561972378072842970871582621584400837232915464999746734237355748824842970737207885164319808434182259993682119954016669976812275046293345937891080049108202333179878263356365348506881443605154572302408579025974663898920159555472892822753598436777338568455327402933071091874605558104332213491816512902000836546217649448720680827642073303282934100542922479579528486143234312421413729147623379646793922380734970327137453127325048207574714286988445908846362728645114374727377294754674921666449543076635137809290213394709211244752108446170943138119030018101935037270122911353772323678359140883641414748961732554473328637443504497402400063383864470279089822395037407204940134854963534025519409894820934948495067137739685760660559550624370774636753768689852513059721386462015811818127720347857061302359096583351970407716863637673405573434910557361888874025169409521059316391884474315347501504958210912773251886493219046070868882708599892008047526636184757039330231313345070677989496125934937340552102528649636917043351178272951645771234815082185529272843648957607216418937851497895843524851595246192204997726306759128092618049714474315807953665961716486379462916778452013454984339488956202502821129063295183704173169400091122724616827151770605458974334920631827142036932506050965324181692490669513301212517202541479920118233315623730814104642620602602514817134712028476136805968269463579077387490980608059240539294054498947004981589024914495082665260299953406284726095413152579264260675729949671241230233845404336615228893350561258722813413591821827047166382570410291612524793305725329595975657989139981264755850812548953815623208878367379943252305915650540454662257302281677524398926855758092755721675234331311143257701239819520649783683547871254095006579601540250249271925058247686737390191954313656915759036483325170936399351212412304991014603802283472682748998324159831474773499366656265855995415821353506420096211795567447347578662664029871462672093683289482638859292461818695402199962038377305841261291694492594923622305752835406560927117369546587711312588604045626754209623907071351361648952254083273958846808882331398451052261685780417172522332428967460529016791387026924956720910634423017992836252028146730810615199764237126389396621079961551501452454905733445461067802008734040857735002834470193087230181281361402385172923189290404237840117778838689815437940424718321176980561897962302710346953805004415569542563004996073697808419292950638235540803045403748800657286615753249263462152822358926706416247431078997886447931054130488063433249745678906913907274036199474864584826981555988258626504370724706221511798083597016975091649867957410759815620575829487658223220495728911715786922756103181692131241316079609238981575656879776957803143937665232725255534146030682150732139288580701907077610617080714208776529013463785691590708770560392641798192581486951456708457436600996714908748083850471679408470987555585309146752485916273148607975306769924523751490687666009976854141078121402923258614375541471078113917801689583843836337250597238858101890852980938838843720094361080246503519006602309854300235407498928858909236880980452151066939876864246689718391992177139933177090694611604934828060912915394318119385680654789310267146372147432170886625340399584545884479495528657153683835316510294519682504757845475868690359590569937152286504017543677405459484054092536946493559872011901818620768976075454385069540671700375171266053568615030310558570226830958620117334325151635375416278699064947851017001605082055697253939272071183229566654182289312460347601316504150023618781504384436264027331983474295564196578465134603283440460665105501104245477098516757089927369489172328931556431851883591563905994323038599569417161827238782093765494888037890080262290777827818669083767330752841764348648197680168188176666183253596057623488725184970992065776939552989327847575887155289512630468072155200031949582626316434959576884168340660237954743194841746287392146710809396787883986935708435108831686403707508844309765621171674687918431890812841147994543854851022895181230869851988501962865514932685019995603316107886717770036245843013114137255646979218110131924044694436290221727980836049183009383272318263228708785321804134892626377393340402181218295951449449649835794306086377034963681273491893062709305689855644795912115550044428690990012877363260367791313378808353212951187764220812682267217310656424236737778826017085487110797098722915908954860820878064953981568256406765709173979462887131455416217982248635334790910746814851452629537607448962830838605795072460347398055313843379432897793763968812261102088005831329745273961418249824845570641843832481152808765664755482074550524845052125619030132155494908736927071009932597878287811524734618042698626268537202091816423897043816331527655727140470776433345178745507880663642914457344036059570042281918205228106489292827757729325083432961210983162393100466634607485032437523405266669551808739307225756624919192213376895276585563102429873701304879736798842549682630883499073683372748298528332829057177192334256925061825301445912354600001668851513801025255159878910827238345398320912829021028843222421097973712656776541537106409147944390268895814265708152327871215843926111087601850224673696856734791336540112858734161555436087541190819548645405862773645012043646725154421509432440873293628582233706724467128683858089940675255854999708671461968567894961774542953590525416158574667573207734567224483986159358254902947835465202125648071307837796392968533675122552739319188297286999425056554310929594063965513771059921237561528790151917272471250349274400215594711521104559711691532305658390355401513233970394013286381942879077643860012843695022411208063157095795772091555422506093705862039987648116245032514157333895740425308231350752655887618673203165394412018155228175793877241119768383645169824366127832765990031435832402151203525390530632761849182678479905069446866793655757690141046629165079815353349905437395021288514611585516979989037125014278002327091251110028016673943162055247093977938229261795023636303200346471160773285121231033895837403844139960589967074563007105538745662541282959577498906820195360110320343829407528501833912956046618843182060993187130991722860828684202512741630232962299728401553094927861761597605093773764615275458562244386081079613754632886675975156152227557046189334621492120727261245831632717878592955277683429436594325358029214866928667750583785362279106669685904170319958557094751026255716000560902213062311656961824058713451373384528008995319217373381068709281226160686638723542836518425880607751577483130154612579595878617106561553230109462748397719542852548360090077118131833825716259483095902309923754662920376866254475493884332007817744736978185922045343521505324866155542395861930350202552172100079646067406216374273037170558053755803781652041991495198453062784153259237412105481109526566486747067902021790462894295231114468603858975958575458032256686037300546134143689314974954958803680736467309351340939660078004063206102151441350610226513116782531374525259939852593880974887480601527242490007059727919045169825894513586777795141414430160559200409046024527859120940952095811488102419214381175584415268485444355689864944943145625212751245141887174258278700002989661447553280321748687213135396461731669994378869316987102479957683222472664537175276742348947182255470147384151771961677679498562903477313282048320671074366739872231735263601199724449623840350517170176589679943281031452413338546102619617696300709591697325873270246162809951749460400315374100535592904091471998765216419035716584875587722972494222358087436913319130548155535855643661936381300679998547721531998026700039134035343769201619452814187122928249586282475058881961728270337404522412288742343744665233492423026464320502852632348822156398124003010755330645739881737377003518776051479013190201793183465390813874418337557190625232972876561128063390700865629679412803535825543452285358219436211232234085634910943955444696358439281527432432602973270587763157162731829423380544112704495557290257752505202169522163372743810117940014661664395251556413115922792317556476738088563211557080958023347345417907367102897818599291375404891651264485040759124491646114145753670581145076947206463053143943992219718963938839690102453435698827200142904208692780285143326689007553837800142026927733385232390046286378340630244776636376393726680648503293782265613120181951281004641233276374200005181290816176648518405111526316957500191980765747515735506257831556260714833628702447998011069460973385595081185644733388908121927556587006908245861868161706660666073143787663651688450573816026122801201875293513818298984145316807090922982822403265835921106573138771371362990662031185732020615247443434109028238379838923011319947514792697321514798604287236908403599215959854491534648753735944372187582866495500753030894012607272953348535766005391876727949881781735729738283105573988272153478176690470946334065403741881657972925078330407636449366166200455679766176362473117470304569141131950684634634123211434730716478162244979266641445895388024379708854952784446117310290345444665788138172172945457503170399009044729524596348334472506500714866056410017669669406387083529731845365202283011679403284826622863375302867913629320624477036502235393671768653761111978483816009133008155670548890704665771791930983617105194220202735192030747572827982286140669246236071785149400092153214463356777416203091972566994056633908768855053530158839581933547941676651740292082027902600147182633459372960396706439671256682552340167387889045137470340411780148058031160524103985377111095479848110524534385458705638714116448697616817154857678296988073577134052697279898275580029892215799968380590111363010250463933337716420727917086523180341218776328844293232323802962468694508865002655607945102860191591772934546048596306525998011829983908940659447363897299100638364380785864631194397654616476054372369643183112619730570153829772070155466372689136261443887199693802436120949668459560626803866318156434074708343685635157890716676450668909725660595432278961105608437971429040555715620862723189353748805118891236619559207610503918421045956172865999661783669821858289623739542918229665391856600833213741886704759041163673332328123677571908303964954288369043732783277923587909991017043972777404178832221373572677606843325951134592435725936071598275884135990190813617073548529444179035894886900264421997506934550185526452566905892689938595197115751150245282814101068131380152910781828496035784440749463293844262895455632245552105789331030097146219540922281833741931597692636132528110124959310689800479649836939388741181098619399766825866142903273647118927960259447105684785939304127854982157413396370036906035114364153008906042140848696860020661582879063472673242034548511921670141868935525353501732733574398151456007325760290159799341883188253335602064721196286026458756967795666674723210814335513822686988997273836303283461744649620905858174189910403332452730343196900414184291330974154854700911270180106352000871742723560881394609268882611527753699207492147308063279073957062265074695143984020231189045126096948155528999505178917243814128558408861058956732561325884744685502301321082192914097373451805997688088354842404947161408742562972758758054169470058829200436615448193159401709403435259278253843847095154714753294119932484941642935410956680554678541378960720935238460000888451609184771781684966577799076768914949100876803195766578837723244914669366184131232943242085587632028116887679615421525808894163166394761840027016636056964731858149674447006085610504247930891130188265326027966694958187628243492711264514516851616473140077910763828607508999427662660212901406975976785614255752991690999173200930853472143618947622506872081780133684847373027378652356401402226278582389841788849607958363297093592553757586144552029888019062269501059756063300024078341379907148958990364327871428584069159360989808177343697532427008010453754878850828559882339529730317201163813981737801312956901939813489920945014225214507058074136824163300707422291984574664518234673493339326681924500045165619049919529408839575438949118516596202923922342391539218452898213234714258078112919061351964663983320122452984400041143789436189709284775124930032957719671463746730336170133936512850981878415857731688300174708800084917167173490514066408763045519271433234853187823754171087865395938433929247963230248571580300432617361913009961308019355598709672386818146526299183752583985906088524676757295752213814935512950425449002134588814092875908498564006959186233350620154454327942834467729264970463548139068189408752808020653455634729549787710685029363199679174559191997934179218367483280261772884648758657914232090116963225658708538828081510026621339730931384327789833665853389105150934376366547767799257581180964050933683926416782796970046837432523968298839331518742877195973243849909873071350904250904346727893979247806712057626697935790227908986948007118637710496412202503330433850259927152324770740565906310550302930146866679129755489835235254036340840004818513614803622270628511774200004687062500503202190587398867409633280569746117935426470224821571615722979136234026482489391058642968337729253857956150360495342981844696747620941144570728431650413627075912096589813179370196008305711316881684955484749985974573403186747985765726898691096602369384805113620425689233106398181822751001452095412224467831017589057671971290030648159948026079577894919770213405365990272383979470169579372387827062054001989185948136799864479468864004147043605358740891045373485711387579203432700673984696378050365283675890782835610264953015274571618049498956229589154914622710740268723658377625656743266647246777495101927030490943604173838140929156354129751349897762107303857017243130505157993244988528939278924049178367413488350604838699090269758036592079922194690745639090603580851231750015078346363740590377056954736416069455528175557297637985001110211526257162347290218155704954959034902662415536190720146579119066539088493620428657568104301907566343063726357106307417505317672897856342492527178348449516024166106370857712839748378635900755570378926499354949314494128386455159262320402376350229088280742504359591816307399379427930647228930207454250573347669341371127072568587987559941307267411418046680748546209311290031136901375831066762345341920786130372803160548189065033589936161191709575512644855111426670556517684444337320772734578434107585060025461628889022281707770560722199794050688606168288058559414840946081805033990384410021444166788698186955839175388986903479793055053317610387482222395740139694531258568595652372519510224878179081427599117803627340963331925418898182750030347250006599919651729843319084323793736937593347333244840948923490508495606331810893713495325066465541891285943571998867040191052111838754886789715911887488661585453342258105206227851232173026612689087532141176291361834780017373799984459872875650483240396100150586552279096917063208206097378602070649284442055493351146126331158299339192177125144990510663714847529296249472512494991095011083840514278283862078282593096221665492089401389254421442797569125050558680089684593323792436329965751686926404880853093321226852461536232885286907853382375471815040100773003624540345943577260759110007352901101412504506844787433202300658532577856273200052906059023192515096260127084970058775671908939633363923784771863512569494566555672650792523904338212151406711836511569906836107618997330114173684181042278751643447945570983653495690690061491174922865233285086978390199047307997304611945930059946641458318474546030707147035576672386334936325633484533086113699933724372146625967078122739184018132033989857728688126427327652741320045386098669191321259297788140027788103908909110434641223870006584579228721463262260778090405999414859424874457134445121380324387670347934960991950352492321565764730810169671255534049872712731293022289733869188555089638798671577348285244111897044101876732011530264394440854264188994600643174375776428070483272094476247017571907890788428381468307278924288048563953407635322804596882661268766884008159592549636271740298946690784014109573084965178674475013356812491597513584364481348835114792088079396591711631039672339357053506095623787101647878551738979682773790799146754157504109792200608115022578920838672499545309626717993174822268980555546135556787389305739256830775345628367126560927078790470350785942182671337088535181166387307664829199925342145084010356015852438739192960026724970646567432762594631843376740503571778715827181557568642137766598051861135449828014431434072749422092518579864936802315520334935735500930160018986656720277580459235179402459506978419652339665833663830738078226510145102099312249704807520642850455513110677777076138619771887205274594780661357989220045522097642599859558349384681672626359537565035312257458043059196529610950747932268433596764745265819084182218527058218017175476991540476563561408764135799821931258856018061757359826289571466656767876773659138211719962120142213361277965482366512468115525500969391047601582403900066202801277981045900588164887493188093139172342721717617879939831583435388388557184966952825973293944401557489534588484876377079020808005767591375153455809267311464352900923314028205333714546880901887452158312747377979053730021967926279921905825555983807468505152873351891911536633702920714422516084579186614107424644221348786429855133786814914734131968731631190213245951505826962513569992977368930805646589251886482144924379783516624552511714580548558409289964807575774270691430654053130544450775081750104462373245362793485903212609779053544603097643253412046415902125876510856263496512285289328657794484140331835578612401586873548952964286112759925871472133381621562425939745192938911411413248592207895766021200010977314576948690115018620687189614781163523379191616734347430758336422611252593331630540308083626538037556749710364263123619265449765469104777972471519792927841130487835690852837521456672520318840606598506855027477152193583799332129677838815571778574690730697162185747788157870405567465325073454258918212662880987134774104515811053159600142687888884607026756130136487899583126757098492345156490152288264689798069987566267315618818529239838992010386010044354473696092165834932126155968768765264709267637476054877181507739895598792118521896584513511108326523378472447820904356487954639507803880466769163784352345052871987027664621408541186661926304950292720266736451560839831121353247192491364262257664408562479568364650023190656831738079163751564144144283285170133508135660146108819552372315390859985646826502776257145325964782750563542900047093195769162766665136864392142008887885916403936974240703153387879260916335516513273882263901682534748032877025794827529285957179474551505359749558786479305427100171863616499809583511789503877297411571661546621633906654978922113273021473819303039406900684346367418907990472268039072407295900379051090508270056707165051485860050390196219116686145290743024058588547902512621700390846362446020609767075282960703856554290379945929135188684766653014657476578391972454445273500802700309510487077823276961510728167635600794775742239896981133688237379337402219492551860854813112097409097185335755781381511767344827839865833395977476237142818721254175253798835669107317175064403684131654685372822936481356182336599176080314567367789069455683990721028858161929673204335564077865678425158839291356836914335684635982001715817787628267945498207316573184391316033695336883904947668060498319302002468599215615424518198374627128299996577508726131044632802857008607987693748671301419790122414268146206663961500730737889017961490748911704607513372326474076948941139987876946895613901513140584933174813372936494001322953058908462387331944146923149897414202887304377320578798284468273317117811300883003446644515476263989924911253590752246555051708794481023812583766316327820975542172816335380208870224276192494946168266919137181136088794633973435808789547675381454549586125879819267833322922493337261823575566164304131307427878868892378775803589468344270224793627636555681252566373001275152048841513968775607599667386097681845362834777977504441864998502655936178653439608162235351051885317671010989874391141681150726059851155215310670166080164829826996509808477171244172289475468516006976190673222496563206178570436312977499380111344381931743880382988040383397967396063604864441774783450256264547717906895921531918120259448326127800017507586300767921274590460303961506805300354348169508849698633909926869867829367834497093067647851390869636785176866865929639920324875042624138316603450618888391222557985974851022291718672348887048090529807529918701974625737436152010157660588694103723251592349417094146193115634820857657014520256902630640146771603745012897088821872929237408529207783041762196973212539704956177367682071065047450345449859894825351877953096481920224616162589251260902516884422456068899794425863348704107713001558966389466439296658087878581550736132350161239844345042052336303066256729403435134215374773186089952252238637059855861837921472245484291962539016403428093021810954107136677766685779747794780411545158020197209222818721917498135688044599820630386987950924434119361283286555345478734749431428048696857675073578623998248168932324405790608970734964631930095814574089944805815010635714269804838981253611338885556222586076474740911172998529529467473499198155586152844814234456506492532110196249910960534990338727378428805762073053408391757653111555042911711515105876447879658006185774363265579586000709761930950353922781436240933239315048578071752496377297567095387890802744777815980238843455271393929801046120021446027152101867251958227274700671052465703766758693046297093504550364020606268084945289067453976221847514183555902956337970999672488426749179460954137958049876403567118612755683722386824193702219280048639948083089314668238294494055943942183157042931702011238513094468073725268526447045845682166230471918203403822561460436221707894547201485106007278185975320031834861105788459830482001988380727945552451739407752889044775050934445918937390504064378564251850277921164714366114261961899999854585327213050942211707589245732089081411531206415958278816800901518998586149483065057643975989165368620347058386743489671741341513391755870079164005912052642973078829934294923566451722501793295243197335320016550467022343484299955874594185972363046809267170711025225527462487283646338802765553072957583692264895596574606431284992475911596057295242793224325520034309998808404746525933387156846400775339719952495645565785456279339395973044527441544615157187133602075569480091743658020711802335077665827862214609636822538154270140323356704719127646449687517704288710199062462544420578334179914855929688709585386234091354804108837580953856300971052141575108567390967548667632848975458286374723250189491822782996270175242221730862323521665910796570847754720177943007469309425529769751597178947264609198823076260524047232064072562789224250858285972219053102163495490136210589138828681711441817607993872307080641941685263350334742715394114052693092592993286060072610255842635750457173095644230286768628735202139583210202055394703216466279163405724379153090777060076928440812194402568478118639185378424691715494200336034674384778020897538897097712057145326584206373888539766059276599060679968716385314376819800422653334504350021221799766313592966467165446284403156040652411035864090300407146108763099743910420880263079135551381468978391690235507501726770847429833137326056845945051012007737233743755606399825246454680667227782138787820523621325648724757489445632084058744817016583927898054454882671773699510595278026912624494631673429857915255115396010506462337561997989422240828024010094126130022671483958544524744154970493406067955752787158686480593484927465519816338293404777912282064384194799833250384550188649915018789624296581631686148709551550683770841336571047839871220228720327027604409414819136140600255793224132860848704228101224587618610002129407943175339481857274475212955246814870057066352120183413711095749190649516778297502265016018810497186587089344220705212523148403969587502481187758638034828716017742388903251617021729790843043313886701399739997811989833168141967495221029019546741709286637347015940880944551435603498906612156155860243861465348379264066154877748077734727921387591924072434881858782822442977557794647283682064420802053199966660036333150247095414656562217916037506754512433701545717619123623886478489534628658068148181362192343143863444913780231740218724103617251816861219584077610434546790295531837048265860613532346990140483035926661273278430323195890589113835791260034958179555738004396068698949062395760986996194013851675101379050553753312348101522876811692192336411845125280932053123377691236422749390784989584685878217843873643111506951144626917368798341214148077734624178455230968321323620479963779957927504023882171652933521263957158666821260128291298837098745293900434182760677550520203520483314165942379261578013041995239272696525018650200731230983767716323436980086166223172684983111017973930510130078860654995619935476145856353114925666984421530952379579887817702530113575495972084202422120444558319020337610135744269748525708873427418058434697764711577488492902762665609565244315044438034412790668616893576896416589971355666757387620093364321567158006452331976577248098199388228947328361454991766440033759990181837276472513723234183729757302647980091612284114045682717869932874545797958704006810219545890287323226902637939844774747415008373090184215713808025169796510059695847227170211795436646708827234747511511960996010827695772510957985679240939513358803018692059441577862076023272970725195561611570666669221008863730119679949051406858871529938677263588347496939168574528824024842835079755065213387157441325335861489285630204187103513558491317347091020566172136993570246604090933539588402759825459355818604590332443564726724357839339083012720209599442945242592808793241905166987773075111212668119346275722729748101722954206510200599048012187484865728430748483653815824729345913258948639855450102801601664771514761375679934139472967779101324510124329543123995257576619361039545143542759850413002975422633469621143636840620813554788770066318960930172422107381210494995956800579514183038020151595407234641799704393783062876360956056296381237817742071606220749717551883492002617603098658796199650187699801362327131936265630974652891725473220940641835901123579945155047805256188265760533516631686948279047645783945975272537720623482629130912726445520637525106253971521589538992246630083643164010435326542491322039852390820659533582891277980054674033758808915026165215353183634336250844852531777631291244289214122261558850130650070401908302129070361078188021162936452257247579654739260161661565681581380479257877788995053839982195026181995858844642689814424058400158639250984342725688694138621390996493376356021446548698800402000402021675759759057098371579535205505762796398546726184446273339676834832520496359743224717841924397136353566777381468484081827404913691838016617491161274808598264534113543417054157353980376168363886215945908661991760794599752253130755287255277454728689243838269255319459301922511604233886449180547440218995673533080341862041014735529997722968744179768303542424863200031171364143788445712587768097274525159740472320131322619803049071523810423210782218649501672851452998216962513134548265576563630880960698830689397531903235658221100895372970891915837290044832872599271045379131908795410996551277114873469329262311894914846833803169743885030592382665980159783557278185423628555293926125932792189998498379439644906822033766597282501585542173587729934730854725264126760317074487905526795072829358220807132379837215894176568259423368045087649432587744397502078593082715885571139646590465037745332274795446862361296948600853438270159253943648933151466059808607802444763798826733993242375502313823205356401133134441399413130704363506915474233017437296788683620050548335632292942153521311297502220011960366360267115356392557633853743891465653727033904583865072669216750926684488841283996172112882687071751550596409665689892164432897529935510537127118680125536448875608772296149278885527267584003730416944383334310308819257956816583390073056692344560691562896532995982420025263125705575396496148207211067088421032933653298781668265565499076210844832947484506851479710033175868524810876324325261085857214067627610776697394763193148897626950336384769621040798343616451919407012873317976083179335461421812988430565042079631316095413658571853958797942641013787017792859453053622439841103100343878602272395210942140780372454625390993126728960847237487784355408265916147165005023552946185623147163728412920647582082020025420944104677900391302790483294395837216607895401165384072923303777034608961793732852016628327701430265616097998426889581812580197911317269046859278856988728414147784608532590645243708545266004157328292869284134565793563782721917459140441071555244630366024381394060785162318377900050260742664302201269880747793857789141162493739773719025518673529694040039764036290527805661528465173965098259342832632615449258344848247668127551760573628405421264063775428810749131247596761364464090356437398444959602718252560493784684253090684856461242535397461967725349504274360977612228387720226440823548683200058927798447453287163859469432745661269573191106610516956686812309886478999932904501860959025411354309799709623894430067383507603413368818293192221565810773963809553150131371274435329663180575070659146319079700280436637124035668095863710466631350158133036383267154638864838564168193124734167602275663141391044981859105145735407797740367838981054154382938969852054319453009082235781191838269203723264741102187968300682280376501078136903396806853290986293478772874038474501834840559146649747144877511427800280325202564134227379724474240885547996206545531496062678155449554719818140234733069141049326252752105256374977940805622873329044387908213984282805683257340076229605457265063786845340115565633321975951914505147445424784238977385838560588440785822166519220192183661025389417183696566028845827035374516374480987552729042090540650441389516224872552083188781268261299547873364311261896103572798075868219313179585544929412009617829540167783118158633368327666603243836915566788884684868898809631190690286958843311921144432676768787783685403194861475559721289362871228815809902263886588419678792167028323936614255472465830024466314338216207927840357665853644830073260718734320810049623006156738677298415217979472330781427381651220708441761421858945157174626320309335604308711266249346428777795908782544743443701216830727965510761043295999319678798242367324863791269075567694136985819997543246079598751538534177870643887607726246823875538857109681214866797828902127848019422182354879105842945121097520824806723840170583313362726452848915905215549633935904991598493814191826721941126150393106925877965703822444186086416835491331089526677764950791882150829424491560144846671114341718938061013472630373894863733577549207253833202023029002970317400067060805770348029638554782101327927718337750199982823582650706331320781416487922949204687157952827145436680288338472080679283922258670927333009922035700101180320794601708158423977593008606863190977209977798078143644112821259883035272086522016845169289883080030709162020801887586221159741770565455570385726891532432714704984817243095769897601236472889180809455795589897781120281332784988087537577891722434314855071213588091692055567103679877643749532819635198829282027210536975380926838875225510152690566935532226583066136930242408776779616265774496675944937294998177519840276615440786493081535167377824237827308067757041166089672546631100067038604992212775033769550642946619507025849925936157115492674045219435925338378678959623119371684333189430282118425937668432190387327242450010604242165140800935019840569569932834733524152545910831974703039803898618124539959408827389493238306121733553161659531329117522828686701513997312562826374511071054434668030701179428032680726630316332434934570804870416856948499750358244766450798874694517065169285984079055790561146594974291517901674258779497442536150227729571987343791915358141118894303165599330592156407901491732860684912994586591193128937451029781858361552013060365353310254530003806308135119369975046299406809200378441283745325379213425001397452752043184824874856632543043011076546893286149512518323305370723182634408960621973019772078671970038700299513879765234194715100823745258674248673221535254066583993548942205174676854124493730556377763902261599114068851935899071207937039573199140432970721213849501876344473133927200854011052847001763125574069812597640655851267562271314807785342307079997717148870190220790244145976637179074710028478955438440382984626481986319182664156987545080249572270873626914755689530218224357332445992108032996674000215796127382784840808743873458733019378957428936531919218549321736261807829151845090585591599280361795405634650703513980437958286666361336784537193677904620401388600502962470639302784123144134928044942729935881967209973906427017247034582249563241012066274645173845973049235167149693481994549779153775111062243111970085929039074267258058293295510489823996540372028514373965619412066123393386681077212229982975236955620725532309514789696974045289234028044281393586728403581586929824088773239000434441265393606577665444707863373235975055263882040191990188829100146878040930693900393828686860804169429337683543856842668954467597914009384712826048998953431331518240986449501461707681852462640988650305870790586311006177223309793716138251861181093797957716168876018371354213035058304918161319050966015494393491488176949869757189079400005526963826073630257533573167699784630997366612150985860650751478153035999732805091771571057567633373930455518531564974461703792751641241774341252421535092802258580131663296989302150319348896496215459846157870248096350050554994928213754031985850898343339919048971095992034068738843516188641570410200117592300854248881556533673447889958764318736773462709780042493178120195729597088421045026510065967746204480971719414764974160992597531080773819849022477706580406709211248632959315684283351470348710528715791876161859788094049476374791017567708842714355375806004221279162628900062549522368161264100928706037397383500773240888843193661016087568508698981240749941633947080976688816133018108738127237823230273717425615657543765912251997812894707063948434647208669132335688158398435138457914220433051486764865660984586892386787133960264042689344764477927467238519665546481085414418863072662226642650160463730899085584831306692047365124835310406256684141450321092632939157579124271646678430332571382855299019218048122142652643854276450357203244577089747593492964102697340686038136931811119934556618143516369639263793831059782822929087792423131995594467072698138758867433792744987267060165139617853584614944596468729457136616130811701665086566722871286397861405040738853633570224721093438205906490132154044013582240794364487124804164057785756994391841164828757798683139294952857861992854225723181165795542332394933599335073311053720855058151164513529009490009657412155156755732015274102016113003683284814278362988743929048884661196424700607845830737500546023078412291255553425737088469309914253252362187513790870434153593404770800335365487742823671597584326933272206069804653765694169342566109935299597784432219697460421098583196015917808642754059233861187888277101418129922314114743908282373705883862525777384679154434941450408164676214815641440209444917812446278892914980328339629306741969094266003661362586784564637098574869833540444577485724696632447411169532074759321674548747836631797663025506781984640995028799591860592054311056641404746743467302621048062748660328341825649683585573377996565841710277623460866832093421006168517201430745752308217879424796057348667208671251823898802140591438914990181555632848605080503945663888387654623322766779742027005442669795857681697233306977149507844985760547902015423063950026668647086298438708291243217367493482213472555274792680228712672481697109653844290257645138027213208878895222643421549212694316635477801460697134903365071675686032289019983293232363755404162212104927085260336959977200695846418541768435864555138418742114718730387781794206605306891671507567041126246652364929237160541557377332933156487437855477004688268578574477580572747235144350644943370407099147079380103192218301392285296110547097935263953744771681916530644662989458075820032209927884562174523140322331637896458486937538144191723752141739477381536913339374557611028713698264908403289464517116307239904466932171906774580125901056646518382194544985475592195979380488178937906789740516286912100706040793747324034879830319498110690067612801366015859939773770112532010064095293114258152309926739159573190047670441661130144580908569378522495221114122231320068839100570096955656305399078950422199192417143548993245609954646775859672347677908178319402177034620525221242288510304062375895977785467871114580699211993936243187517423716520883501300014482157561611635350048365488320503649521403772943104014653726157566123198165570856505240432292807791426073085344595409618011470761999179948754018194110285647333497987489878876881141394658171712112664455803858144613789107976144655927835189709510957983901477341406195114443247312300976371105738823413377956915928299279303593779262161957274700417709717718658687915636061771626307212730754985203559675626222232925203951466512943363896036607901813095926026280762028843687899785522909320240030890166774527722595862564735795381593315124364988137486628964143066164102881253565762132359451163091970977054155718739167100338189608486371998932236157507406291387997002590309831343112351710782588246562655932125863101014383264718590167359236569704088578163719970893615389627913006473180082748182885314442253815788484038046413033180512203516582543509616608078063878488099503972837455212942528788702459189182942725031880512038372736623022517025524787446152041896480530680928492757662453077621884111703324216293408120590668741940234582012591409382739776527305432298850227873519235079234120609848023615444457188141877058898888874185236888012852615133448510021906859103013957321736357912049357099281049250729366192405915268760212809491578165614658130645406265661364968992956489373716526424668347308557480104748408267312012973056866665226636180079015247994655467705403818293625824576845144173658377262733877509091833214100857973857621688651075146554994003476156511007483964446225242429958778411748983923511973066149198760211115159811580553328438306344130732729227282056607137626455321908645800592652617098215056306632596423734972837220621151905707548281847138182529580971437101413579680774871688513109776643216713247933576049652041699188025500249837874694953963327199252146875712491729321927752165545596040148495789709359629822054962294027611693210341170630028774720359513335323512457379913907905933379125697232342419586361436796747875065015354744536693005513008460150644479443138837077504589413846024262865272587586826512954813185528996084275512525681507227072474364318924611629929145546945659831282071284009910735591710737568548778192784505207767185634112506559823917342453196108625513615268673783207796342181524932308901650496291656941554382887696157978450765106781282647494615016060864560322245986783425575505952096273934587204195001305400361845658162265405981334769317699092602543625910152170133373446532897382797045618841428269653031336602765910002112919793449506077849638986804469032611729067301128330992058207371668128438756029042036972711451339212389455147141633285189613768485224642966761559866729626505334599804135779127255785576758815735205089632542602127908157619034018901212821103274004471150812478420669758643238610043424993581325307548456774215497510295333147034335438831074312240345979829550716530753833241598158189457035518312362227344016190747718734676311373079784215196846195142684996374806279689833896492098654042363908988825784828564220555286344503890725527540326594732424474406832646322702670611984582325086117177402380387794356659383139982070187029865474607981570268146432525769760418352146990202951766446850418411045655538842778978769350527301739907768184795886602729678917893421188657336646160184982172454946556749685182352819020556387032896260882636246433881662813258195108896375917098879970458047904598333682897056316107978748716497873476087374485517712121368228936068315274725933005448390497815195786620960398691794830025159011428480710090435222996048969874800117212653072030259807212453968938218958674057924239735784973296383147791687819612539210433284044296188234470466263494009609344857391784928149026684590633664680696316593608395079342120008728684863293360940085632783413005631609475967561205022149411344019432231339504696802728084253275045121425588416987578757015582154802822469156806727880853559887450216173380434927927284693392836657442556929917806830710972363830416965678245855490744954866081054801754531025762664221885195030639529593937310792498196885824907060579479436396833476895256739845255904531484895276754487931729403221161098636192157338390955230897958100345311742731390621276680099924804757206130377435804915667026571473335149337745507728616213700853076529128317962236003010356469125663288942599238656485388185566341820692422954757924140876869534074854917680855860013759514837887215280596077212184298954550786916620671717255912401711851560512851074102243018212187552496580307331292573725971250241568034012794957192576891165911496520238373585013709864253157221589308226048947435651093159214950201808166209685982457539448822299607596604506222655135197135012856168967114880855147072387644913399964417945873713787151846916939857658442800508761780766366173485333597657796047405980325398842282811351785152288683631580374497266968472869306188498525890316073810068892478218550404683911529724773692448885928899870079314338125259195174321782602059133162086761183260473999959898996209262613676311320696572149000787295205009723307856141346993763969183464171930869247696419803638820237557596445815093769962212176150597651052591470366952992754683477674761126968267137951659103585643204787889706104014162627408937783095440397363243530687628952949337223960860862815794743074551346265008321677073095607854868488960783098363563072175918947262499442497433625113479162691947255514313745539865878439353110360750218079669860191836300635941671703985901651745553225996858512158656461434628816666654482034315952584787534346377470983453153169957586182903095723354091975374383776933364238844160564200522767068963272518029959175193499887610016619780974064239241939412319174789060703829782275826280664028131291054840913180189985350210861621198532053416301589655045803716059327011570277784729704884700210959993641621583830408569427507563603968013075481730147615276604898081694355406178209073285014182665027664109343604783084029155319934008819946788249311260394118741785802992007979878473059551688708815335877391196718019493555051625372262371595631094954342452692659959008650564791742175283400177515643522148510686831080041855141995488860494000784143237618689980846488799120934883464172656069813883362617611894959531757960653202483876636948525289167496473448839321313493617696575317357874134234669962682782934700002283020003335226373635990149548224448320051086942244869794123521108607983987233337150563671724006081149177091738948709847410000738097740152967301521213229285437798885736928927419464939985572889243906748223845800233418356201045330460166273568102781634415978675349989995874247241196646628184325508705911482710755666015093308423343039729005482450569572053557551399027135657492688430330594383573463501322090051193227645121213253751793959151436983869380286805105300143493699272635152407687894507155523069518441597364734081249246810481257953638869244061870445462335010190325391957322688160332658115624604574835171921741822931498248368429526118582116112273507498192681080105343541396614906665294930457722382960102619698098044048435162781680385251277599022427025236430235400900506826513398300915738685317813314528184688731852755380822690927892963361812816737888059415384170765407162131455860480132805442416702278310511319685508627373343907953475108270965676950162021617103700969839981431404182620440088865026256657665992477018632356182363990369933332694540195935070886012691221527076525527172854510905531225676526463164309895458980080561790157720814425180612275253680620888689787806664634243515219155711303871249714888526085767138815902007185161844189673186460718740209609544763911947484841380809939682961485117477264170435159229605982588731876851788233018206193865004788118691059253154634036744776405135268577631705004071720100548709130812984925409251343963809643349259032502370741494066318472432228366832197393913886833306064426269028678651911361502354981901939928333739268817084080024449736270232397655286428134367143123655391713463374925114535223010425150725936638963711004465643834755783374986304127693616745937152630791328925153938036946407134696710491106147974062304314846015223284172617253206184813589824102632088309816941749263569618436958708593889929814524568114569726777959727459442893681769027310898561313763549538467969034356223494039937828533157866162138865065720299229973272662934281247837712149170360927512973785438868043505255486353737624868178924787346291290541087746262911515988007268316901664967609755564521483249362104842012110360290626429978992905322003427390568889568469505572659748248370669541201727552987793966367946864917134864701392923814468738569970037889710669472567191829386445813016278752645743342827454720487162622664366217081006367181578471025415377537341113066104113323353224955654006430425359229845670115087395272657614348662093286242835375732362031053633974183932171986398733426058926909665580444245911270409762969242853542748705523785332036460633836171508821061257836893126401860862720643540514560035912774194191639657862134053471207129741620852167841248228063727353458943430389105663204816759024615533479184645848270557292059263940731407144104150019991838285196774485095819733290700806412033659781676500858218999507417596368143258113568742751952106710707882559611395565979023137102756730077449422270560559296834641493851194647996115817339304311741606971481962135737849840976541661359832413974017670774803352292290680027766124176213179519176749840228736319984120379940614135901966169724808758144844455923379847320469073603179062446306323579267751898015580661227386126518903200309541007595523539833053768624260087310178936578410267571196626673400603860083087113058452487859857496072517910492530804160184026325747285764662061805758133045142033595043923276881370606121587186661490487841330491521724055081061860457549418408574634228490848646294906307366874396052470746487372022939542323053601783425391026975726321362284026603799012689970997934958148537183591652488448515735266637194426288207719501883623050492509461138502521267294229694977925134643293892276152095876444527189600573108935002981372365186785226128570100397017056358864122502529358379158127149494650259542645392205863668466785783428018983214642406320003656018768222207546851934909092605808063853792575394275740750616121602490135858830077115833597146882710454774019988281605018225698158168440296898298552596783263381081071944803295341078456148141984215680143025559474362758911318918034827372006649701449529415127128197965269979864875489948787502992141375634936852038333984997794061419200375732649908982457223848156133559903454674102647664622388529135079577426505287130445179893546285892360710726320459434863660743529954949707692473715993702037960159443511827714217456972303935787424963829568547178543022876166140644730077603447797211470807635548278299064208778650744105299782435306268055161019880885584759381810958726235292133978319756671608157951918438943795944258571097397598743698342794527998362346985461169927621907740224026728942330256831647025290660624717238052074372639496888043194241276638482165068827214422592833814906757632991873770972459740985253412385405180641340376585223362810835682560448699996283652758355759208765537545365937993025624797903240284361584523193923009463555645071027152834653316833734448995369851504383200234890033380665482593384184993718239293765118567381596279416726639803189010239436245329897396942806073445073745771323903994880099717187654749780194514805556441796852102202898565123424275900243534993293638833629259477862762014137675840000305561993705234311183390690135599666761650554799095941869506377951978548139211309877336814059678464459442197349810660403899870400405507610169820698016205510287825343750376836802821712547578847868324038003496702700481884780917830283825988792180931571052221225901609596127107633799340787168938397883176647199361622890708520278934720290660726295248623483653844573932737759979895165296301569292494168025553896760560001243132536187066061051698866529440891928926179064973920619367081775750434593916659916875047513351398481500169446994532334722790451286022503395372472952097754174177810368929903841515234419272872296670351545925968229960214327172078749805335380080614481418892151596931236620535636395539445775209010732368260134467295290360022970604510721846237454508443762951350017735756393924643100821701750063636216566668975535295781089492130305161508058798080138984498142574829928325911771525367131688347088674689778867037379950261806876158902925442657102815018802179934455073050643996792595679411093977373412615007674735612348733106341047772378483656774088647978259181846584642221122899554919384531803353645718659537993730246701835604939856255318724145904149264107786957259182469872891652089169226089207761517445359446562773790294192697530750668158638530367932684267982973742522742386918901640071898367871406838472653011649212540123708961531070381859705946515168147490279282013981827357301084798046316294349124124634325846108706279921757416118466577853146133737857002124828199657365211489316023680492301387990760616071455058197046478777739048299967354923695335589214393279650046555461567390521004610984408616842804394341217308110649360735639551667373593736101414981410548767772741335155713031787162068163812685739191908056827834385577455351891726434582583955216898585638218350523255637318586472652430264289096530959378828380556699610680093450418464719050706148592342080345184179680279619662068086437343469198790264066298451425774648797942065175053806068377724533478395763811920098420853867332730971670698636499982981238174843578706102446043989595740992604597675442010702284976974400824260726096083006271812922619360117356272692379207121921400346681225064683038738185703253093845539773026375704835047202922967409119713345761463393652556035227037085598187658071235997743776658342918947216144806536290267116509211346404004684058383384122302624784856964119834660755331177339314967930182200129830263642733906099635959866551051187734448578136976064710075594229829385451693984655722437613006429064961522360298727277831335781049486420305963556583842931201316478678340162729192868327391573426949728394208949202248714517540878197118667986299269738150948851873797256257416335203754796203761317120194862205113896663229784101725888163700641047182809021737325519794878844992474605913799517764122841549647888892695717949916102003846557066044681395005919904986370582801387063957189824044296358001149226125265634702537553407599545757480660590720792365153997580152056470695098537215316325211148558408826123625670401486686003460234479373839832111003258008469891680239260079000156791567575183227380962125065492674684866958964610908698577921301912913743734193320713000133882270804268662048785901650024397010866277087303399189530023439207210086968855945457955431983672623328756245088851606677415420710832579395908744348344947112562076007598725297597471634468905918208897634023646763336229131702768030608141432780513692879234330440871507217413001557866141057220087861361920002852030096799485084933371283648426221268388037376837840268845316019054282849208516049720729462430850851946576914871638914590704312221562585032260978534091937095837906207895312004267345478664361547831902256027100755363949168877085471689425639428104798209616787500456530411443749497117281200863971425536707230424334694448867013599515280364927857997185840518244263404081541811498725935240707391865310683123235867925180147465414832632444275903064255131941710600270479710335157520589056774578776256539046471291759260261100310301564499809450990024759102231658311076555472960095413077649857889615613310083244818518924860621293441411326938658566078385373511521749451401660246104437727750744076528991541438701385930024829851062857027992066099801870758860923209282717724429971840893221756014245135005497418746725387989232844954529593430362506328052812905524110828617374043592310924416793035961209535018139407497461691578835349826871404688061419021012676463650910660284318159563946789812898710320475865203039179243906252158190414957587158142879856832545738592215073717325451943916582276878028061764295858679947698000680957328353195485412591402739511207260896587534736790858454223469846250169231330286207621338824514674554409758224491073122995412142407168534632627150982243165536353638932841565516819725728970922040596372858438447527153409488278384941351231876880607009210039549755707171361054931159963012468636015676619653418488241922923393136782653860519098359116403888826461378037075358626582458456229159663126722017277163239354230395391536534672755094260172526626515361467206450959706100913619202580091448074727308190836425288053539049699776646684439466600656761945681959001756224339049408047271381589064354441625849357884945018158508931765555314294789170745986304066195448343168252875999894217431326576302892080207272331582340381852068702259937768186382500155357432411488011581414252968563176768928335501589722061970259402885212171735746385559934346999794431052574227474775187444304641471132232152278194333923309835174876017739599413274210441234113830894019111710835992128188634989644568291591033109255399982371335214364079903451975982004239171531468216014213432458048740937766591324643847424044544429701376085202997820324315979231566028404736052892439780067096899985036789604026767341624802414146357727318043932104105212081743447131457915421291074412039398881802481891213935371156267738663954256123979643881619973361286867274235280000234718866690071545141570923595377791092072068741180292193958208370872852461102555766676626023890846903646366939356492473416295708714780042247153912966271683225667166512557755381805968704380428952797743922764808065146093143271528450358152790313965601255354977484608873553726559999951329770542595827474475495051258486084025314945751021070604649517676863579535050297811326259660097199662956897311321397745419504121624786830371636334085781431615580673034963582520784663711046701068865015723378600605484016718478087450189635026288921730148546111028213819023612745722932676400458680303803697212535435441579543612187275551696006435010555152409991569281010541260134938019100382286944586453319942694917590094219883760197182370923331697455381084660213266036201893946602891602563630553602626071147127389212316677674269701444142857284465282923932342520442917931868980514005838410906552955750489764382251745782782416818239222573764289040106644839535825725006895794977233682684176802913124973300457855392935051544415420099792511057204608069115901838522537220122576775121872804542051373711053509404778304088807841981909885796131979094103111127267566458253765139770123736352273165300127005638939085784553336972499043670546484111072949928294346459097851294281414901435144208522748907118309929015043264199507616856856712802378524292333305277928877308390870062527309674843294166394691769017484676918915621894186241078739006561832178582937456255476010359986447368578419676543744311118455088693084973629677823457278756090859227932045422413575422325154979324519565256239509323283798563943179402429926197264719882737206367277905340344543320804753731715649897471254883463923194982552052036408794536451902773854888613778613616732724088708479845480309134250667063069827383532327463982195169227188586722077316081308993780564320429485562172956065893135442242458792340109129467882425942898201556918146829595693009682643973125701891694262364789846233525010195193370979646522407492062999663607516202225165828567539035143933746815009429974995645943342123338989238236034117724349478600834761631285420923566966657638901331390952767018082606275290732086930768810090801358446613885758845325086912937488473546988254509947356720784997679013687261837383548956037940564496851045896940732439220924486548644682704553941594119514170891565776087872380944230429520677426076513156594112734016114745162691903130214205480277779215515919162619828830042626133223274185740791466449678530480575928235115558528747826749025455012674497870395648951256174213139195795845657105266530894188706664152311566157225697188475161221358469015267413298992377247461364467355503179423447043739396766045882249192640163848383946985802690429646116467261082694445020020547817942695594852822575379583370237689790708177195425021297566661277571195399652101520150371687672135724965276807765091660650653962101545189557163252997969260519504042691045232980663636371104828044093923478276802823784097218614303917700250519731301696310973588966820680723470999647085365939339855766547101143645338199713553993692164318025592813852950212633888095340241961065229710869301964012596673438758968297532864183394652036087238133488996650544289173642410963782238938175028842586729566118508067268124980487000986444526285347540979277189046015385193840971178733306458695014907348650984676057269427988301058575934304820332206867349024346113115681519407231381473703858973632261490230209038699831194805212527278069753529386564116303167467673913388513146237446525236813150007164677072083333933481738449380677521916386397115054586473689367333488041227957886271391308830484240782655665939826085929358634285394700845837589946284918574707478784706199077100666818405176392327380449249187439034719795228065409183898641032423132291065827868815258953861424855811302996526419791436228615443887310256613675015028790416149182147592295738576695196656206051918960366333169961804299208779728768021437556175814889060659699591974261567013695387290617797163576127641015499155888386969707024796042231961959213255534669658522899294467612744284394994470267931094637086909205162423823588357665279688819155786011518343241684533359036763473274325875463934252737748599435619269983930652019875214403966747199719896100779085520049638963176991287008273430246059373388443458408673311738155115375438793979294891932921494953330529573182930205325802153442315216818401313410987830850767384907406067140158648778327530595994738520811874107280184088975815320008237009930024594810550267440830181714959071227383201980601366584932520466750492521067443298613647341432061064943793731177119261151647326380818020325474482460241114652051128142246442486574988416672872937715357179363951476729221313139231137593235827957223653138296446444586262895914137151732387213977454176326887685610798188928161437373671788834822720103045856796524867134378950341680023458856015043323299765158987816939580843119757313718095222804279014657990351919580149709563845988461628300863077905634015256536524898980485066619878469149735998146571155289850291656114471919918765010539420040245227585653538943414013429944428179024850328879556809936794508730542892458875625918580168706456212400781283158359879849669179165239317972052849612944380024461761585500848518999443168102292734712984392648851730613344575184860730035124851057191312340208668291750972904954237676896209700850074928049397316251257238141964686256564310308289521861797558407797629214043913445912822637669358101565859924688369693827790855900802845074979905057164463078008806617558385572829928560400780439500877948233584928726236373576154815685970412768206786300516003393045844544818888449969052285851663183709537307760537591553757105497632341865222998604877927748144930387695150598805708215190088353817049850584059503760804865104892153854357327801686355722149317449202110319900469747773185828326538525507637345204106199059779885606172446693150501084512875883163472759787771367207013874641137242112730783398252605762052519914537197970386127291591099025489153539495466539306301947855123004687339333167244592282736798177433433817853857533114733926448544106328287833650085406784751398593726789504187669046203693321478062269077826312252115933764372511597812046440396614180581488533704570371592307564977730758513931506857497423895186439838379418241673572004458833751778829379796057351159080489428210412717485507847487150066076784384233209747590986840234833707327488006695745419384629863876754803517784044805648595244511840648407717569926380141722910865101762070234700309319247691393698695402134249811317347174604787022894243225337860105029203561475683400268580407007209823712772347379132416790860123020209489290357161590523517662717398772721603583573075998845913209734349622808344920908123049820534061129122947108419990285368406310317882113094367755061640379411498218991530971222551738646443765418375370118614577921581216573352887465327726397039685896087613560258912294371750237769109698802524976230659861507657250237480181141942884695927512434021239445847334779896036530769522082774146718216890706007784573970442931447024254954999409066151585874417186097741787255476237661809110014890135234764556549852632229747750602907504378898387482497759629830806327252609335056849026063494301501463856180410392096597720850238511854943951445506041394418222325416396102724327301708011627742056521726529152968854817187543532503219376768326348182862343663991221048228329228952832200419060888444256588212781087169564299789553199848033511514094442037681145848722777415742616236960618262911732641667755988125024552845408077598007421663866549300787441741362263874808716590318320001165163444959376497429071666529518379986201205414683846350105264799794456650065528514336461281248059608288406405823188607432154071386003906684520657190654035770488174755331682075108546471278905006617242426512881992249679398304356547970789200797444330057783017566360336117902591417887020432530750697952320345171147706019334534986536655448727746271977337799871715788760738459883009665451682933898624491973706386407990255480693827865657873629786043101788059130559093523645220563756416437535962682357506597851477791251971952938081509873415449955023660711106683968125459325134871308938449932926143679074163685978296035725741139718132000212473230867332218360695406364489844848692193672878997228309822941042831090425334671379836424521054207373951540557906695034988047680429804890057906496537813032968829660476964651467286569943192526783829853510085536318780492012672940646307854376064209725985489580167804033292901175812396714150554870619662891276120564807235987135935471815634060468337932067555982565953467296902697912960600886734854919284368533871620159425549503143478506570157564668542860458550587327746024532207591072380369567122960060453774112055144944907179253159881931633263826257650567283065337914031519288563273290901369770877937261788313635190818207337490502582335758173559620275684917544359764773638274910648565941934992594722771201618310836483852446122725580145596664498624289717873297946486115293578962770013239825201455598973115050392219212322104833685356895525514554091997727276659705927386232805657500359190776834366562573584476931474689418373552366458886000957312080184977227546099025708128580455110941462462390740920935262538978512839538150485717980775824930916942463167051173793686525171809114540280757493416140118034233874877685278233444655078470288764111885883967614493260520799379236866035804204423371876244077297623335760610444510672767564350703824571305329472834351097975464746785858463260367851971265098214684393443085832871913943493951861837600753514871880229858168350406445276134899417564003006900332167179765883074446413316415421549949002325733968981278736563237544488602920327753439841753772424185393106495832695426893321486616234916951804884666113514163986635739745840678946305164385635163113337470937725486758426253840895052771063984763306079106163440698730353133888122748086790416875317726039338912957530799177638927799347338118950012998005565326339986974436977172281848287305951699084413634904083171186388286357509116942442428655810781579818070133099271591757709545740804797948426783463812645840465800713562406925431153715243892232898698543539180189305606833000098244892280915068993990095187977504033263234058408596860277572590614823955541093531214098020768847302378141166214454198764368385411050696873496567211281512264856777320049354343207035576869305601843016165297918697049030881159421827337418158693619549632995549863147385315281447739899836054851896441517773504305325576272776526146485964146164211613973838728703387264872759032526754926985190561494779119686538367566988863911965616999625504056071553067631609331555666081587948913838379190812307515827837199753589320542364051646365640094373787760794983148878333643306921297598664532158257029794379087135744199143802768266518043721250844929772591302507843824371798468510113285148178207868649331542115778447526340138171593354376917902485218302925332485457032084475428521514954290600339491336520611633592541038913641215417714011020506406665536397413840736935003192171131947783220356319158413313548423292753639778271477136843801500924120550870744654435105564497691388122383222848849789047188206222788732479935668924955621165548225508198711254250251700171099112845342046642101112430277021013496553795076878053739302561877481989501991665102488380602899756279691095771627680876633064090408166256720337812042984826764549563097162092663734539635336372789321492860917559828587677207841197932419399790926601596914495731395542667605264008072299846631007559804071144580864046652949376411601171918615781151145968977692032756147586006220416403441247160485629810387583504347462582951314130937633827705335251619897319792201358146701447350239473625657346682450819655545622851340017737251800688893502362617983012981535145165623052964107823109569033231945083073247686368803803241508268411704331660719098510164063213661150876041321398995575550711438115545891101888953795077547744416424342840964044104267068123345728539011758133904520170672740148435165263217809542392692413179740151206663696408338082266102621150088298117096278301427758724175444624248686971409207759086513585769058492900623598660570149166241041514397760767196994071738406227387377949194237814388105413104335218751305851933188747637744924721495314235004433181899972522161568181379394428754037026770816100072386096773371641908031875078764988636893813844731708367609001196857192155763563349282462185605832073480693693828565208376665867700576182754902926887244296145327211286543559493159794192403019741238501157289848876821399529810723993062286000665123840894078249728131334736522274228567237326210175754155863515536030076962948617049447539141658316027066287566561992795133525153905099989304351031132708580063157050342603792425035629512334673178511381469372711025813139439030412199273276952579937659361803140902636914287357809887996643222866362922332915825810509079708554242535806462303685960844010839133101040665799407503366339471803039967624464521520789968171352137455692689140016500498440347178108013537904546017950541083184276908233902895721488681856756458825001723645930770522106137389531705217668545346886069932601344532751570458474548284479031947779370971001028402079803214195650440855581969072043698221261364904776360220774184607382062285309669017999912264871523985206851994569558197532977746118173940341962549890473520503607061491140978434346148674180163058031874725266469789824843023119192730824504206024275942895874122498300692212247650156376547103552840848481198494759305234820879549200371522096779407467415966708366880172831717915492385408987815202798975359523687380370492168172951803662954859461179432677778656984454766712190706091334761400560925754174391641607195208768068738715845527193427566045146295779910958370640749745867192033399965309501371708765904628635169210272785971541268640311725828359319546745423473028386189334569040406154464418230511298401288167418617769433752812801635891490004419282332828928371967342737267849414414303669946898372652226148632812447579344102956938479310591043195692855122473588453745846636825189817334929983446646656174229829087052697205611748845195467727856624311413784373980744717839812489424343730639130473561091271425664279416378189166178396461363732006549856936748424706102500916007063373391721048117917045237569807370793632665982222316363820987165106093410781965867646638116103864455463773199111929717620952873483502594499768101380893785584347465207415893320008759019426161339550242792502801972639069856232512291110520472640659001735033168922540619936989050637099478926338181655057937954373238653810883346603295221178716846787108766652897082257368037595717592148351194391672104878587044721672833532826916042017695594270991905293265889721874966084193948972892961925377362493624623719304291864810230101110641722635769496370024153779659831194363058824313275594784681298217099970063872778184482000093885719035407302904584368334338155888780517912089816996325694342362420352180031661529362653305065043957273915448756438808416950185606900320498035812914584930787636076650352847956357000498248245967847704802156273453119346983535554247645136711361104696450986925844270527716584046095041969034867171247586825011509042666086906801419974037191535506866250154468330758024755609384296123159781504488595051856370142010585335453092078582119274192777393184367559556732057303854487670463943670907463752368123479552969756228672891119756388974029690738687602692111346951292758854661834883036973250838862108542470672221491129441973741867134780797902082235779830286675924871506636095336530589540659711649245354688804960079067925702649802943238909665514708258997300629026205686200860707459838695795405250951280815077560678063377133103554835037534060770388812563866180703454394797129230060848624955749206334728579041086979387753459828453456146281527729599115287391541622889354308886939627831266459431936591601434019708150208111328047281774075270764488116713449910892183606018792480805572932434774195148728672073212340234631491995086801340842543184121268998453965801355298406592946421117107482883359857721340545589327223639988921768583389159609244563660584317129626149874747638141487479724466818004685696668713969087075855001122535091301909458834017817592584749933846351580309253173712854412571404831086920488377744023918345133256868517158773603003975080067481019454850040095628031677718434614234934034344666888566856297296804503752574808996231738027754801352946710412754012965379723900334930828435010821498296955941487763774586089532909447442909957285363864064145827524171960907738430656700378092412012726309480375443537728851985541119074975465378132105510947035032369078311573804176285193301861035850961372720168672614038845551102727992074166368718125542780503451053853560106802159346398936092511072513052717135917066912093382355421348508944811585296676101108124262842987374159750715294672878089206390749119603935536977102242550803295073192329500252935517613164235235882781394262728733537712079628369718111861365599401168358944110650566738421767965736679178829106987175756657685688825839536263034111274421955156980177115781637883849769928339724583355394100515124798775221272100869259923504944207829639707804428504086845926892143492856838620832071166632602414882824028556513742208726760839185968925087811845258026420650548080665453851580503432460369871945845033364006046734935601669203742063125957857612422239981806351191880365839190196138347514753269332558618089461386793041691369019859933011938339014395440264488582739013065101173955854805144092132987888953898410262637195084637735064135297410738170210807612681109955815702628468421303963731289878275828048589872630174023075494598324490453873711672497229164925002613455406052598075111421750919984069845497380225519057771757851933106489845910855247886491938180130573529390481377362475952280746057063021871562785872619439873177967229967529862724934677692684534706664705865761271903019791771128577490771920888901789145144835683565126164692720662621834964677250013705316872097139770462270116992297140112347325844913219700517334161954584155853345425822931785352624363703570404705004844563787906381534960549449376273284820943281230752846788017737945717846602965258668250338480367785054131741454632225765173673903371683746152197595730549766285263064557277641510296386676215120541041283929530077112964198451901087893291812490994411097090798499344378724930046614684937388715581589277173128716976438007071472787770039073458121717822727840100739776905810625245036511381457932032593280313161581839044215934011880260294086666857219489820397365016979011345218259033554613129000449768504947791503548320484643300983237149826430512220708640961317677867545800992813852990880992228158470756036723085871025250946387801463873601619336269400633595510094691081521109564407087739228093845807087380359640491760490246472716421347894548013686685038944745823401312461820733567477464810748805763031030949848392526261752597707789196169265507658266756729489325824121055604250412929680831616203026186446383204388590484533113847682279561210623012492875288648208979608793799663562586437786090146991819155697833039195856494970525365903532759933765763885934870744497493356484930210995512011629535296010826062975581017282743394773650644082527774730946136151003353951428775758963776930815613744392693332692102726480890798250408175340367774484255740311054224327402659602138690404801343824593744968510830434283796988564875211799905405127437370744678340315733794106540084714642702770213489588955341486875199193721471996890807357988103895589685800163617706698699601223933131358338657118533989474652087164585232738999401771356630369777045045057299873732408854825322485768383746482105508548380161075481887441739307156383005108054534206922867699968621187645872105418429891294346885708590285990816154919839412004928351085291791767735672857398438506032760230359307876195696952929802623951661602267134901298409476064842806398060687057856882620518792303801288150308040121812060633409112881916767311487656645430896647138060685144231186515162006867150521741070933979469420211168023935198008868961380363232323259353460418392185022861588379778031420139263555684052610850042207785840602755977545831136605999041546913171922595754610210018110400609224020132333247252131940197537035165812624837674746700395254742509190014324327802261464590251596273117891641917352799791860208494487673919213334086345662118338814071158959757201612622618370397671711814895262862347390089505383443675590879291215292361061454801734360344079415637049901251804598329114633888913060468401252192293220158611315430008352385615019333676130312309574767709826296354050548528085618402166189722491202676261558940197259781964621293944898740686947841470746948329970272931986796374207889955941803115170644364123415355043249711690988844325685662426543235787790816675960751255066529745886134114699908398746457461480797397168174636304158160504830900205971005875206303482898849987061652418343168683398388654070920920038540202297426206360429988121495661371765562622075470905563662160005220016209641290174670268160056842607398727432139585119619131960259415026363369750445950099241667873409922969711150300878486998335041553834448031228761796932150891492410110952268559310176756125978807468682571935377244492397467435262201291929825794291011664848695735917938562868381795768732178050399718945332230917185233861377829344081667582445304628725656777884958902660582059394670467434580601551346624215834465003873651057180128316046945719196041364207871557838733860267751119483419454765314720148261823184446997841204992353257053246406315739704886722376671893725336322743008494662916151482967760758267235194123968232012999841082106920643088700431094041235366225975541000138710267019322215068024541687916857749170978874295607216680645007642228401678897756967500638501808804546561645444073758033501677365509218229916440326112200944467973045116229819838590384895272659346131394552734985441767054234306499623231755768533279641483911291855668760373836768466591497201001974801525365119254140254471401309148697719925148368316813101296927159143921852552344839132452229647613731656395220446734934552253176703161856392407726752880665835525137755892568824035586629445280289669301902251971510887648890379729878561214618376647011142755226739043272171028118250624909842052491683776141233333465956539941878576003444583989979909185048562481095088253144458320397087120930575843029931562780872506943187897553357459483887239444297257622258988200253658157718166110490191751991874222253232729163633882291279408785516060739302905404096473930675115288378050555760481207396237947070846146593638893567815288086051971986054241556329248209215733515649377690297950285891804182218310395257113285646084391399275594264975456581842639003938632531666244029155512862149329529615542634699285817220231335845932673979823973564570519995668323821988766523459768730871909251203074839874891048251790781158707599494909017834474960308574757769099784395344135258360868795270994279737933935838037298694100282778348502104523347333059290925210684398628339841354692968383174064257517085255286387350982656302669639616599246066654948146025787673936202535745725475352068352638868204196496307833317715564538612712151132471248553857988992665216350121803728991115541941085665852354200135023758804935599361632627801586893876868372438391638113896351329763898764335101411007470573927527038928676239347466304780975438305742331762264816592184406320081084757628836483359113856003122963080403944922068994118107699113215661655870264661385398612009102410521064500656474262430651760005008032020767735367719392458195268720800288838429280188556674979894221226486678398548422718694543093221866112727166295997259203093111679932067961922198518505816400510818443906654091396818024658435043622476374960361111754997298012849146370669835046239693300585894483131264954870354432949701899551689822286903015521342415817819988328051395605862643474439805790856676051171318060440256309315115779095336083097116389280537838185529244767570460857232519580244130828371195710966932652122672448268376993660998693641824912776112278053147910616500534521204497528584972374571463300421789908660430112741576953720807896934876124109429120079729654983484420743547011998576238750384345315884393612174460162176561441836436443173090621507650530981915610071475175198805208802322901807799532362437581217084909650059195425088607846826094126873305098334906884939043880895310469679775650025732254642035788121666961974010319254092619278312588525738092092216203795434894129400069785864214293793128963085863414954808786633000006888189518689451319520111843156773095824375130757871733588644110699228044699045011145673383737623489135166901457434967608961979903575879023417983555551009252066893983948941109686550055210824239771544175296755450533393249735853211912986431922921904691854480768684211704603504886048967913351772788751478169232343480105140766673493077259560243451641612647000941269001037416424701712995981038706761140633871296224257925654098510049596128743117904352636344247713204716228103264024864791257820357803613743695860301704720738249668744090509517821823743539454170028843110345671442780194893286080165957514881131110686392938767341254655693687955733517989313833537624429084019223471581858655790848145242584889088102469986267947154471346144290460283044840090332262467334088013141865339861374944519291459209767515163842157737731399226144454474575489445574177054450399117909350357478946169681353507262676798372443545463408454347919939986134346223658946828704554179033108825543281015909695046705385238757213284865883474314718409688258839941850780893174747948970112716108266933731334368639509313900704134125618105644122922174228856653589403027403054326443619813518582363979799603475540494970666823429937082694938137937461850444660118539228297678058332833591307258343303341498550637542802008350217658696860240970256248275335177708810085287271497236076376795072122363030223758298216741462539253995626706888128778689093562899045320794070422557532714018499744050899232405277793248940608970728331028953297145933375790773756723558183808496383809459101612775318483787368743919589151347609894727886263410537717791847989250624732025847084861242328766794623399230384584550326656726423036828206843315789657984060224241815944299500537607462066763284032154340892215784710990230929831130079564877880355831725883101000888611116744618279869304628338198978626206741446470365080298635982982271524406509905399384125473288479896589503948164171895238304114728173132893664537947381915031089521591017011836578253233992493139734624041966248525793578258479641538503391484239210555388327031004004822218990212058578491358028516751286515866270743215685401053700684816951511908759514198334921989119274635467979852396019440156163668361646545224928750864256688737680729961615308305755377871151218407608459815607841396014484439182846450167494461937080333404126576565517325802588133205377726123117209392706024808181606541582924078989980340047170853931877325699843644145578717022450203625599077930120149459630668632262505155138149303044474055388164394887903959757286881632856123920638054242139537466524954421977383671741292895167314811739067403025335438952157209411331885062106418741067651826094128539473894787286225801065100014412639857146612661410413962081055281388262406765891148092109588579851618322098782026989911994967238219081078981416686772589333506799230071787255889959221357356903856392262137370351288558853980535814023638313807601053123952031738778626062973723358291903942934670467861753230648220874534356704639573812438241089672387729178591890722678587815496346367859764248955879045760583916433247412453205506182588048949847826325002388880801391492984526812286678329283624121284128705318561186202562364927485571545731572020725130433440028411796377700990409047078791916326692343455645662251946018786122864307488739193448711427034769529813607144267667892742167178114486672276641704516339789116837292096448854758328485990897663348159842873023389294032999954106625715659202268907232595173756551858294401176543299837296904278826305060811284706648835588376335533887784843810530214932012314816144764542939026861485366317738294899222385750023802873788227429790857691772741930034610623924938607269626214830565310948064666656946285000433621752970619012079111090490050753754200719941151265082959249425298205426564957354121006844090823786717496470229215635120187505961868583146668592114358792821356862262690837332900053643611846549989639031071633477150188969972809837187829858131884946435301084849389112896961034134091159169332890090878611955176962755107987906940103809343661478589647042331202749084658308776289466397360318980665932149648073449497840986228698488185947076945955566197996050830643434457391335299162764995225708984461255680062989639038917311743920637338576304496933514364868804451245525390138547782056984809047907801170576089270726128269742253401062112742308934861501688400727309168460281756122777699691445455628345591553191086984189742917607387640409391281859115453038312764866249768925419088521725735694674753266311725067709724108845224436469789247689239766764456389008290059186666711984614857884347852020583232911949837815421468059083073230849458723588201414898268051720624045913844031121971581774974396639458596711709141556261436431073564348882880459411441756002888166356342464365525221989089060979607811793838370211760552509848801121840234433070773419334727005945241408408096810680306272499480665578112657972000954861629521494696811246180789179053258828099814451534964477295710404635437406114857810768735380448365298469046363101869554739104755931601604288359895480764493549167410914895330839649455096584228832873946163126561258397461452213550219857689583831316506185360206833068630853552873145102436609397398850673376707360318875546372995998680455460461727733577437099901497082888260594181384456791086157992642478195693780225794307716663940231359254110733280145248073723306467054674500761689002223676178358999540112071892795996626621008878202334533858314618826348937393307153442923615908867929453530520308948984554738381269183853095249374114404316289242351049531498792581487906237928572684915719702968515217070192897824644589560459669832630000167440804603737156113230164657687817389879876438062585514268228763745497903035412546661164782508288200491075819990485701074468609210628284043957740489530716377049051752283281750783741757878593701860765674213254913137244488763971015115179255548289473013784254554979615714032083311481625596951372099866250275842498887714272404989712502816956281971511386049151971753865697678746665032635371301967303144088241692147051739915946874654903172297195102989160016611195973356023234230967264710224023758388262781023744819757578950492038536804097135635927186374614758541392038032234814379043661183571346218497238701180578034282215162712911981632237982200664316621148565574503337936802247654502771558794802973402609205397906377519895180242223385362722471965277828425113291068763397184551121873568818868114847854851085045491064923288951693276476172128956071124873622205523989017168635317217352599718591065364241932663882829831160217411806973547876639323896762733663592509262366881645409451193207942268746893661184041844293437705264411620599741178422260796412260551404733149202295420949668307627939292002717044706476091807876374970551242870315951488384288213012795490335859765310676418989486661141461563943705604741655183528909730903735825483109605823121918303191848366414286050624831609497449338937261278405458048070051080529364560573490150800014908203330383666672068822749924377310617597014935082027404552601942856516459105107770557305524517591797234638101894665289256438644509428580071856672294536270312643058653038511753844718900317429529311827271404506796413992600519549647873275104971912428710626459705246797578869510034030316355116884418876392726008380990450625491540117429882856054484666643170045689364937732610837888656893660903968033602326527351748458990007435880252817541686757739752721646474125841048924190261023190842307456937053428042778341419572405050766156160137826936853902211147995638453141250193867912572856102277780598803384462222689404143177216357077475851858025543900267129476257535598922095439822026337033312385663819323488124839135460169719212499103106182057859174511514964733815620640630835512159890998526690764730739891328316412647675389774763134441191890337341799960199733522413327256276918707196601556524622812804828837983860092904845535412749894395109736525374761512014052147754143585872371896201443832530329586013018928257970209629591153445961163226537968181716502350770697257971624423049805712916054942916583961633138397293073404928833863714212273250178683333917675910810146127029003822258863674573922789486431228910717814761897020995852999508857928579988589257206157438366453649630579600652876876308788742453737464978971776093853382325390849761150800134555907705287706859097638771999539307978190591260234728306460081556679556014505288475150733948585885349388472379286993028635420370540964648269498184501567180198496367524744130467580611188612697225419834093071979279705066828753092066660786260357695618527500114106942868008779050806230671689145106704919003743635313673120675967779665241368657091327243644875757689355283243961248770241162926849207232775711337740745972735886243660719039525684751102775392745962974079968920666739757132498785798891277033278556027295777190361939381222533234428903929189477256931064751728857556703898166378174726812231824364181428153042789510319499248627325109162032273712577755838405305686097134750025339019646624241305761296304443529585034133213456587738782625359211644245427897272598407771936153617640277204225612795183468369657901264398678093107561433750157955500967260858638100041731439437707960572900416749337840370017944521504393630593808721752298421017241927414400095616777069714481486831907213854206517507851263963712263225854022541645519311814595124842004145443104675872969199190932919598453465070809699095468987717842201722059647011316555346139199918636059757864860781491936043955724426562513403974145132892998046529433129806979397290106229356174414440581995497596482986552953839329720314575451822856270437462880804800443854142398574834335418554307367353397477801114757950919851806835704272531184370037838833966334733582509356656289648489301842266338614076052645714045513085116978387624859907406643480984562020789752780775386276726180392491670419749509603380821067368472870732488312148331391728936883045613887084940793619665650420312416304535932728502474544988364102499072664329931581039104234294376949886464814207607180244369453961596486274906544537812848429717501044273397552125258903848160069513219426483671241173228675724820913224474813704489718739364605354333947699739668642337216468707203142402163319584835671938114769858543902848807309122500156197404232816756021787698855964401231812189899047770777819490258581652199376985734292788388278151176711555220886547986366607082063792400932352013236508635229115831949922093303040594150916930080841416474149551617764821592790128725082796581732112797665848398398573980146864777575751984404267848098539278663853929720429236313501037683562510415863866775038083157948533066372797191897103274047347883811342511207641558755677304295112079228179346008589479063958154696170000142973562613018842906037109410250603192054464014416588644765698794153297450282680520290648724927130821531292757020233034602083226743451930964841663001545635850908005426016359438705183853230793861211766013384101159771912923534961903471480468588164251987095158478575056964437715363185598590641526823042400488032219542560604391989449914283246255572209873666724864399242243006557200549901715403950622535543160506743226440268583311982168861283843247185427109451859870433379604316174059787470427448726167952474111836727840792316035519007250385398066351422004272879750599945233732062846744918338069924852307471689081577547251790864969554263189738520263339772604393446227340650824802831011551351208973495458605932731754693667893861283827158076094336048332897316177448954235953112236859288315929787924772541031829521725582262014330045833716894422496701763991865033119570804359531940216413968367042375301945556889613432153264336165785057031109236723279736631521124614978053413417967268114818409222920518776886356783301932497379250555509144129705339442537026359929547206006600983150894131027723418789393147173549062768494678370473005375412539073967644925974998128916179099113990387403636653231703181754888983803045887087118397233362503119670706324381190072570608061182082143095148124339308571544584175825551292765449588908520490668213204814964844553868734775330082620573029853229946813051417331496598114861631364706813016823729275538873285661475097548950962696796869467288465961688231198371773330402197657552880471485330974170153464362892543000844056057287718215979720836699956642818303322416336877183446098146250334005095784204848428846326402312935453259681985594628604169014497759525805342448425610328068363603794667649658738275196217221864486364295354037317398409185877749978170576108881245675353006341497787834396686220873983335018012372122774415259610777812202052653270722226053997772716156916667397159959535975522047230525233851884702752207568581912538617876712327961156004363114034039542368168090325939140131232484055140927139643514649873165054279509916582690297990129979419411870293644107478000771474691588028587460135162647687913255109735479003147756780832732062277394942841524369026682369071076246417857460759674196162182723404500207821141765253839817481715707625463268786761660543704016261135253465088990104065171222213429172715501540926162152796883954132698376397087856310742626490069119130132624903839864845948331158832609368316125703713114595150595505282304202295857237541439659580219577690188723503125053367185387100928497516222999687935444664322247725707388608923561215380533124319673972821739880513066186400563972226823798019922323141017745993324388457044265883119925504049988175058647343653301279583743931872304019566984351754941664894901767171033139640605336465777747912764032866298492136125328852040237798709460243651317507753912662580921411159365533442596427586613032360579127929887260978041085517111416571539125484773939860544312028750208956843661044510444738471989612357016489637204594686247974563626611858475542099427808450019663964217468740395131612117089076507440419159865088214839606298265275049337325377453683515982544727195406113268796010019631034269876377892332761741060307832809906340386174048192490182539852931387008493622509098331929378710115333739609329806292975852672858751498032286696277524938709176289354360991826554072535683930980795678891631398448754993266797167345911964528529652169041190002875173467489430738202782799921933105066489870287855884510326155231803570849452947160750417910846002040412963045612984478829964877970950219122919814173093179080538430165015171507052797346433866883037979051133444530621971975771318017309698315581179172740491500845933447577363426442042337517276132855996031325893741103192568688438520894628836368492551731958120958639276081924501823746326253317873274145691154673883538600486729830469453544002200380658340426796135877262255031325076053156304796754160703347647686911540371152347354353449472253770724824808127749699667260889671815023655381759195832074961581254681729698621670356087418749801695232005663011688208312628459508674876562468910128263327556629147825175871682549817748050512259573104504368220491036500859936291461289329691401785917540098778790092257314076857648315844361495717944406367501723697395683541827337238181133553295125383493358483372116679613120096327497769648142635088496238128475996772780175327949761808980348396825684221061515714192514578957612596387530287907222889922438820699194000784152447498577236369484838244753939077697125776057509501187299144221064379717238002265083959973869674721688202362189908648930688529183591707197818939560873419189984575158363322412374400882836578101250543246339780442013610893462726403586200843808131488354488768058367618573448640080478991897192808816722959245168219779654510637396702903698437004937456208533536604678623023039495607334442570741544121758768871589695952315890537143896939603311762830615062576009460655597474650098725024972840134566204916229347810545355087907543405666608503919021756797369518699953920993327683050296256333670466889244258652581709303096243094460249929488285942610917540285968949320037956131426016005514696644855085363640744414319254608658210375040931853753574549308610882139008269862868000415346961606360292126087070349413811445215189675994881670037735823623822231628475834524894071359443441662059846706428852093249299968425785503349489121911867928542465148686370764425241237087732104018236135726998853532921836358423019365999456280357343182097638760252786630351067092626685288315594151916104742251054205720751490226208525062552487537445509080762119369409048844363404202655072781448048610816717753099034348057192856024728914572711071446038181622876362943958384751189754578184225781976135513409301887130376471015227391659613175501892830965756182952334411678325210029497705437019893088148216719513598344181908824464989666154114637426894114344153002621227052932417819316666008490224088839907689234420356014691465044122286299329186993633944839091427350580289784414684697496996017899222415720847031456110865266844014057502162003374390594403480388011518055199625716306439184644902701149271167324034904238123487089703791263218312512081540696089584632974362608864431639991025667594515747589168280886851162460401187508355667194356371930681958096288108716529557381709706285193806521454645929553788787886537744809022197485240618799533294760010855777325330628515191531234150222766263841028710468695879353643987578560177911667788573504672184969029596418803887294603555965776808877988911150580812913943562477856097296953552773088556735377537530456013131054283133840616755894682878557243930440383789842347470782638674945328878910898920125791424978750496217499850126724705950133058230222728066466536537492803761853696265519113034654408881267744065450974975993888553422247495723543071391071780645409334924457746549972971007625605363445267261024583810535034448149293909516701538674274589454905233650501275396603864545657651908088810707852601862418016869355968678807060299666928631106836637151863020341690727595787801467466869828727324653621053869762280439634097455759836080842244428747021284420599553300422022088621818919006459323619396439148221575350850903999494820785718522356806396486762024044410634867537903412546896573409579910609087679435468836140657178412950747877687674570579792042577689166264025072057922120656924220652589448788743447510674452936496857688997723490541910049375723563794651969616002525421673058346125203520459552313115124035966794836824965671407137310975496030039511104506398621288557855892792508280128803665040028444853332951182823320248282775062537687271103997938203661985391585623404427917765233043119890646745124319265153904295446550610912868688694284718056117981894799485881592754972020137724173371546597740760664952268000466561267960476046971707889199595749787075583536627717702685187826606623900483106100075537032622504058612627416972876784891603078253229045251376616003535292414962499419942950101941789391472699889475921355914480215380981700551501761984264939145520821907868381108657549261756104270647485855744619826737234818023655439407136319979799117995369012587032164010909283456292664717141697982997400812592226016995576215436173573522678368756363457625492437757448483440258996132359846526410121151512458514282024795405442209872226101519515155145684239411141216324668075660262140560868196914945993503739992202474928195568002859199736471564284350628143396324129720908450501453220710999863725077198365680082903047223420127128562451316309090156522430846938064310504553147474113392925442708420201440638987560456505754213626147710545280712789006739492292625085414946210367940838709820800608904341782810165283935779699674946210046950543747174354716717873040082064647614803302589651428367336330284715662050800451346299941744941912996316460822742546176463629268164234538632342781777337913309515851230002729514221130759700363160291084622506841320204804496789489795422837246486711860165866005439243569473534198287171826887415067078401657952263217704437034202778979889748216267631674193293929346182396301094557540933075420625864615357595567082174761408327818833791928030156763126019798950522727487779361506803372646712181488905296989629035645531989941842396965349689671522132670891856917780713134182289168098801378736214690645400283940969742592529527099058539605367153464972347970924112913738620496450621626814638995072369339735250745569793406470991766716047599357039803871471594805853972100383496592396385100388040103658456704111208398471843287050830377227571730696971169459814194855798178058923577886562867271660421220273727697973724198077694638641755075263479265225453885231058278120840066207624673106581644277718963588217098007196226809414064809284322107749241490557817345769059716908258372687435178490397776572373673989415667082285638915445228100949461459650418229224729683278236906728374866727504594039391710090116311588591952309428190839320084937287470441940782623136011018804305130620661317167967768661781166256340291244518625827859465162680265156995486660226485961920920465905051594589641988595276688538141554483484126142518403008946383505206902455474941310793434653343093493723648034248731774329765293581619793664947392793186548726885203094551128673449427266262155720828749406788331306418238085405502097802745221567789549527700675406438294043915460189042690544109216922618242454926771637758059458483402329949691234169413292552718153480876803604926892187880936492748486882726832216786320560285573470348195685076804464510660670323489926341201658882438422082450700860425340307259973947966775146618117339339164572277333038213029295658907751267203913706655873625915937639150462535634089128040319972664382205082179632787696066321597567648655047143953823618156417131122112493282585915285919183650724238179881836195600900846887549530494280757421191446258609272055162147448449611777871773419739285249954582808686776377173767554216107121315549715715474172329410128898242482183844038815899441486485511821842564751689829932870770333288468621458522765807639882374887599525889637169335273973531090800386925273984778810733657842783326369992211527102044417780262384331159010508914421280401988275597220359943409148094073246688517548672712181266967833384212600537564408305333332603659098724782426101747531966835449665743508409956638214930040078401173445283946813073673998035830901384698335008669245204088621956692019436258936532368625510917269976276226122101752540268380066663409038804629762804799834778288693826929091563460502246498442989777091497958438737103687250202934008751030489973070035522819652799048294920133210190125568769894328479938230552567283020781804235581114051276221573235821808174578926444738816357368535745467617722601391195143411979370062029798971952479802138018704197064475719531244415124773589706212365221556095456957995157156401954332819306515127555718484969048183701831138094285055229834838716472499226433916020846319172512206896309800953503234352399795221266381142625276076215372538451710613721981968087070363184958394282537480643942272532412893388230995993059921748554671640976118966876632962122153779898314607633365359305589455267500039551559599898420260021006609096479251689944154617282342809209638992148188282957817257402136138156315091200398497364666700004547173921820567367843237682559208267134877422658640349755159626412984987480045133255973277032414437919349132351153526727234024203127079473566431841372981608954846987953001623434802281533329321342868958205377180625038036214239978069346246975009789372729073533717319318282157616479387658592519653559472265073179386317962109048842780926791435207518079155530857882772878874614322492989278883798226890746993988671156427909964572417753412734625694957878985202077941667955500328105208352956791724906771194107202263800302069092009067886605333235097955617372766942135858152089665030755663382070540437313045249274308464175217176697679811675730022686951010503061982058054506152854893015880230271846526745787084326913034118183322143833490196582461344671074155979850868626607828976484178713038267876233795166537025857255434814634864546675564607604947154886740964837161758974320070493289679198480295309801058031143552701492256213290263963372902476895900829036387279290818390954485211309759882426640941042959313523541595032250099064691406361885457523625944263240197555123564652270681364124881362147666672660008173702174229872680794167905250604127566392407123415889499381703317597586227133356591238369593494587447316135976044549325208010630158554277525888715955717311914526205929633335762941172045078601103420687453561911040816991707630975863240995999798638124009925096377260864229931382422610035768703299220401592886473596201635989378702074262479638382450959595761653640263419940598828407639121272857712503294769246199804468993217714887823971011386801938086995813192974374411412819229066379405882987846384036545270647071408579605964439323406067748540898415325670638102011916179121132077780199196376219712435848899752860962174058940841056410653284014119110649738553398273907268805346617490710186830789036589029719380400441917751276911062463419491892997345976442017068750223273378246754795240598356120003330437687540063750738296349676159050392405888409422616910359518999545451572219835242173500732665767700724625189213639087815900097791708079919242886882171034326232403062501271457595647442571748387388852883091571845673521380912081205355356996492675070799140153473527139814612304490246625325988599276884021898302638906092085267202550070615947819255201283452612866947983461128541842010855737567163926599692149578749831746662066242725447429357565301506464874449083030845183974225970602147946021504215547617378861566521395895933122282385610391867940538000826167409127646951935789860176654815945265322409552089438105103683618295848705594164708914090048823775380947787428656307683613358290389931914809050974818679131989597447836698841065822786134084318252108924344379940614391643663304661738557405662976922708054342159659344237815090391750765395778095608849489176996965527838859681203386606189026609199286236013188512037195298065937946987752608088249841467224385452004831549137230959137902915776436656486955652856495965599950771709917407770501274295943008099231472916144300779594800321108668752402417679081509335841346307991801415242885930741240941578436438761592774221578039300371561017026169189604651370454110755922406320793411605817843683125849633835898075425608657216202681149577354401187681525825814309850229932876478851559788177914954753736555405470751590986197647581027651382752259618139435350268548639737932958377784872508941529858086320287308900985623176902486743830840063542439627357992581794814396202269264812869168270255288588799734181565742858699501985035176903818753515410197439547999688817940228839948943753598914018630433422116143227119591062552756121258800596171686820933568895729037048663847739249795513307340130245878430486210507118761223715798261334180533154104281213204582939585333184443457594356615271056880466204730461453034027486528755014316139151501259322033771542648553053335130946008490374698137045029686191782038892968145554019588490323543112669925280068181991389128663169176245261394543638216861389651372811210738310384619610659577358531525096293474521577045489530492665694628201705958160778803033505919703080829860101881013988595908880324393101370757563356501250974903425279069393958708412648642217466426613060569722599450452657775593136147005215594484317158102216791799470543574053401826733570496963735848844284454763999514627321534895835644237182538538835336772713465904506122165912542725463524639621965827433263953805938927739038584754261207812526483592043863318756968027863016184944675706309694733708231603651315442394810748622670791231573844992024565623244379128167416575578006993930973965286046982481100455699020538591499380436276883621093677090875797621117990089013585104278826192743922833316692755962415445942773691131718711806645798903095618835372826730468115647938491752308184536804615278193808965608038459343645581714383776353989016758901996685457491816584418021389544989608293696360633019952947280046555889711622547614722560335794023251552253424638527756233775439193549348474286125888037530243079324801103926915049142807928777085340407289924002809114494600159930286618970820524680578790331529977430440783245790215214947930123986358619075255268045873452478245400781707533877113789352313787427568071448837236612711967869472259367967094286227254217357184661503929735383464627623851816107517126504827555492182275435434794184288407594729923508351339284334244930708926406150251892901305314763189600401895333786996507129500715471646465260452788435865822013779945017453429046761343437597804940091290117492173616536516398849619091914976244572205679793822990021288191475525082959953037285552530989707946628862472704479222377730533566545065484323129162357086283781240490743484179110707754299358641660553812321205680337488145030159221991435224994286370708118958231335089808079579672779554289354613538510379159871281630558770604348609959685441897471923465974558077143851470860374450101898378647136424473176729992439160435513863420952027179449936799196550303160985291647775783054590794938663490500689067842347549757668999461349177032956119926712610690079247919514415193925329835539157612524710389202997747187805398132193509288083651367029988065964727570494926176297109751946506187865589055211697675768151924312587334345607950174570595601294105822692687144570551509398746480488579109885096567110766044401530621593755967050264354124214206205231665852053566706521956441816555380660243235104920443305089623965458495180492392151740218051800907222165821654456148381450263567878249969830324398187253946471204521360300463905607851828915552596576913347467805420454604362080504582594708351709078303627395177554606732265036761646472880365120317725569090877743930099378044779264197041246695146628786198800217624326209693037576822606327450656436488380021856635691090235605279932820921032810060393975613484298255299641407606397867049585321949494686317744086436519897894217781056306903175049407903421951022815874631261375499094909021430434613838500770257932174618357519922964765208162425609570717125907181210873833989810275670134766392235459808366090250231802947942085168754397180557814977716179553046965659126221137826709867793701865383518864273103360445098931680821826542174106622990406529039021137449647442643917582828157387112769744830758060672658369173388741807066989178797157813065492359738738853078111022382545363270619049332046188600120876923277298330176655738173578148512913027159916939069871762831385431010681636668284505854923376742549149815444278197117275811382565702165979316085515594171739327253894255657002375901804506331358110312759910867097414218146169626297517733530751493128109688218861067815210867697182973712287710720204602010521776945356314851171138376267051169080091903198962656770619916632979859177777819964849085083717304919274432401971305023183170486305681585876388583138966223614540608066722146378914501902388949523891618147472889699216164653820002272667400369237752728831007763902295829080761263249250235951144280246619224355605232806058757903889862128632193961817773885945547945485702507345318519456018739162212198527505075529749713667607451210667727724274968188215180045501595471584818554153284629863292002829104447429212402029023444618366643703937940432060089214353633434153471971500084167374723834022822906015715190454279863169172867098489011030425408940032752487225056301446700816946409784495613606344191668404732982447827562035133151281745063018791434322849271969956115109277492022131713067175199389157021423016687080841869741794078398861838161709515247964294780632573590043352022163895800127859528752177667634921758452013536014774677359620272776195964496902096673522318112452637978500397898531555263019115674521703035644603065541327122670571579906264417738358540000189076452958655775876329555300764612374928208585427449926455010676795264769774917662461905511303946694570892815861088361886387643734821532152889198408839156590748126801159130151132980539590689549202295750002255254987099763508971441326993090234197294462359446234242847457312786672872053307311406882654383254411766916155902072952758004845362023038390790073456034222046205119438290430228073593507653157604701133809249108805537743609767454986457649947169853731280699943903648215306086581427001404216908644923002783456096349570264714895723589588019202671557682835204156999708635217454794423521590888579648029750299041804389888304729408739705779591794001902521078277411630310109198060377857222637755346069619862041392852568802372813074388562112948529672152003774170926800488509074372146744319050343862086189903085265883449492501468292228142694220166576692541413779776050730054553413590220905851332552888178363323456865565010518516211268831552897037103909800378598765741930177341441407973467895314331368635619876507987231078457876305507716002397705461307975429600438811036851302561511138819542141118901407924541990430572737404625747384552513467832129318971997088511777271892737090627135574794181945437524785201844205681511631328333058358585498817148410855053034616788392049613489517701024408511687836445542785459680178919420240428773619460233807272428282183622387884184504161968482266247729642236847753384369876516550211331113213708900044599469730597064872310703980339757711808555532744773491314411908260794738169419688704807220163083134396783423631931086849973421600221143022992489147234188532470679798693688632477156537823040781792656536727385499068202574146908043008832269824094800624515594718286723797234885685273321113428946282591480222675014439815046321426581247588253636518400427516646009368658908435823666821378541469133862322107105625929968779207765013668803553414926732366231924315286831072046232017742795225612410371122005906906678754248480764783063822643539865158750887117274782921276000428749925699152202882185010496470815362136354802312248190837626374633359791949609646915143419169617146531858228064242308799021870782121604188640195522708982060824677380323372274555632534359727024786283592078563717340323646653560400423033431353183804358868799590014860399923357982786913552163649537863564661409485780931060633395976564552370737908049159101457202803804279317750245216425103042442851715378380794343926210475497581693224999344180081097478373777582223619095965529956099329426238279183906483006757814400957274387925636326873938995159654399164300414435016192133133933225834643885976113027224248742530748074026775227232125344631113401911213648662703249321646418017927033857180685140079389920219342378209992784274020510784530591673846963639482490433890295259611718206511678456316723814597276594752064421225501846194649606147126327289038833240218072764822204946942746076344544846377205825521919130527818653878046980299301813717503259351081455297428443936833564422514749666356116122986757245414046237824162621972647544853187253476749819613894063050565687360873670588818877118649379108017661998741834578798609352700192315254718752547929960619406356874195763453774351232671186317065733426598924724989061068788332607823549580258699568599499099304222660989971510421606107623655722552479267874808189930079512583899862810586074492475690716820277926160145146906663358482044393358903575688699330054675201816585555652816726619382200631227682545723199534533848735194820647904202071459010795743791323555265940878473802751285449696473751683382090965119355537921806363465479476934492483222016839435512506395522188005087451477133864693738632632170605332810155960799328604314735843927869784221575676907500406558377464840538832168712890298679977607200571424046985921891448734882775576829637960415425406834901835627119953821393477060610077642373993224662146987860946303909632216921426106489653206158467395865041451423463888359608909913710010785761480662362185825789139018870801995786851927070616503212026685576370361936997635036774854463191204394162897731000216927596858074348651259039404077433171557349121712434202341005781709032884629182705070865506647887203888823225629588268095811274910514403089166212294160009008709438533282510561319169477746326243668292948123796781019635281729097924381515906833977479353818174333246071504583141646367932594471827929559717282183177451408259739024718038337006528927013402181004086225355297794224874935233583756289755429229259374657980027048162314789159491636408763818429841470370483959045260439153803463174654980399404969432622416804829887938594159325680128094363693710452215780202169086583705623327849969507041770956912881388558699102440682176891266684744647872484809309978732733521168460972384716119356059446121227495799235713958677792583124299549226812296748770644914637879623677242629132830560326276782124422148855830086753840802053247215689128366345998145770364323152264971353453993546945410211546389695312984003339918227338336873729886479608164380751043894120153140787023979484082747141126038521754531827443993775485511253736975298968747453185091321896398023579608674666195793894492584022510104261786370293408047004230416592585099823062498957279180034814474982592470324830835641608808685725879590609033866414810926234585230125353484021212323652343210882245258759997204676684842198301803158370422922338672297628717973061944192370843672735659536602788370468255357244189803555618972144317593336665771542135072854118642387824971171506697658416084108747616836099624100297191739727400029686363155368348745903232765336126721165920253086468958287253780067654002333304995510923720584885622812272761027167540728249340940690066640960094612176807528986008216587593130023149149553004843523500267339594831320054607952157148294276450806988328515986159818974543284192427539903211938753813839562049592267899718258725773809660924409170527816560504008956446522270147364308178059108760311842394213164493012979847648804408976728451161885604565732384069637675772326778504197599876088169238147482733681855733515789235245185713070627082393177977052489877311058119874193895208076873903881771881113162812937607293743812089533214236004245607762662797177981603493713078112718971902159857501191365286805163397267509710070260168654338883404880129493173814286027596099669736419556460562105013249115739692953826229801956223500256281906971016675812385774407746633704408061599589916654453811470890145451663895294382012562663378936608835212526045639126493189591797773227218653993298448170058171176561456032859243524158119678269902928771979994600118313092708134057171673046219771894944705017062584786632483205034595522037091056288712062261344939863750659204769897523147585175529488240969467705018952493461158303210079220308924669074792521189447765409535175170162184364347044197564677065406527558361481175075861884808032271762072982218645533645553345891848981675903432059545035997006053944866228954199306452031172113922181506479154447569478010951951602628630792874259330877559561118573379015850521320704972850193374406345348338004106556438661684168286328798269595906286765719587576464613663136445555294100700329284563160406109413730488714152234289248618162773246185541022069758858263671850566627949042860124335329523841531051466937995460948756352174976035760090698713321235680378845246277624955190571898283483532835223477236739009150704653773578799001653180002948250742789276560921087947948174443091323547134238952662321689810562416319530085498726332976991194703286890382020828026100563730665949544330684412232371814452694138022823632941360343834278303920411415829535249921879877380040775700575079907922049207364086317273622420971002933608493816439388607761354632998832982080049227049393860352974467890662540810352899129131617558207815160073104244551606852544190766416158220998127784457854202823712134254585504712300050015364814626656485764832519146122575076975916608949275388098122955760098025844867527544137482035585346170518029428549077438800987913206953819171947262501469375016220242929183007706684320986626260702220549423723000648670186654889482763370685848235226793308801476366984954224886634915047849752587543487918018131468518447950348142712441743560979366332419152252863905720893814108773162345200442928188650424420485711001061698439207578405116126640959061465366200824469032633291796175933727150983783583399915425047699974550353154867697019343040801492876264960665458669775669902020357381146801226999361611084281324418014520940837725266122533161918785669639372559806101999395336909892135626084150739170350952887012586746882737917289213273644126651171762124818143704742241250960560313398452366431237593172690076908373698110130763119410922374890343460115723320910676116612030562251113711222780041899221709842675899811494802158456915773133961577944146402377466691947502235521922893378478178255936366702111648537788562590468565262284778073220732485455028558371181247509485825957837320719896952561747935760867091426886329959882625321141206539086440438122327804924312265563851110726887387594229128325157703389479708291655543192410316552925376141528681307838288008053506523004267442704869268881762224211186282809385758776826381703110406046201160620092228337478739674443112765442188933558325898526003817104167416830016860771093685894616025637013435790028399714341203543443579382922151750565654498439369634291615650626583177263171417311485190740545667690063959303135965848828167177518771756469080798863408338385466219262696140637360054437159245055248215518533683186760110848961050210541257820754761815774455488833705325171053245448989690900582468141388533508158169292136707320008028259234293254349154247926947744683109053258399178809049173845382996356215133670583037088545052218892833899439534627638939453506337453498219596429109188070570620089043834487875225153815657317732902119527858848430623225741272894339569998095241378192814973633723879666618501991377838965415540629983594232482985724919858909352986298278989244566981319866494047173866608484546292833434183227578464591002845568331464519940078233742645903856093371212200028454311637773818619244916092082088328742008210710512707275715540867093954770077327503404492086864361290960459753181216348072071066820094399673048723684477798028648674079547198365440154480985952152297955256394173997281396548569833669252918937953514952483216671081322874183067024120350498692122445386755665577475452660575265836432413792310436602843390433343499610139218658615131729204248249046388531598673898749089145182066128671149981485526894779310985573369058708612016116371483005144176602148074245569917147165984459792905334008979623016325933860859800481350799233763525608594684773181408952770181641101692036021642442084323440318403528371804537305352337579799133870864244103073863903460388048656011298407025132217676848748447621046780099867571549810326365956915662791893214260384948891467246502546038690492896957797363588766117569352025750369891131321614655462047136172767248022871833792782046670892005843767081333197197320669377815147802085393139081932031654757374673738992617090972434483882023467743001030622498043250522979714080025512932406318877976705886499019712872040211536497824570434905716819680013733145561696576267552023253552317786976631145484447171570425542816365398693153547853811392204447196649646116619553081890375078272125575050516079324061227325602128678738221059414725712963217011080309195550058986038649428093755091721802543256160571503880668285540451119408668790824274262702619337453707468339236772398806251007906178354056720696972756831452973155062521576376772369700519923113696669519672094825367295633374269815607737000385649860596953603246213088601574716453028649435795801517666654107020366271770027768594958330918164482010616785341798531262762190262260787025944960556787682728525868897351725060115144179056493915850578463508592415441492867044854298323917974946804222145359374039228587062327702953938367681847598743985269426045415517105909333634279560162665787647769580416786885731280195336792373158326209583020169375460532830544234078162750770449524764533902001750015875382810718332533070291247205381383540768586606822741235913853136849411580704448751687353023691467629176977963753013679582120050816546022802914202418095759740439165511465449932392327884360836134574855384779950097559385867522314664094049312961790252024898262473486957865028584218128634204788869181828451067923800450376325479655645723827087697758147160697639814828227295349991823126844470094179825219299515866587603479916691399200078425442910150542406717525657737676781062780305060783342911250720651529497419522538835923029137469199392247719221887354582864182555483125819225523249169268029855866838791529069038449992132978059407925022387043223797197017488116970785300681566218210335428506785009828577257814038630898745235527153603039190797713020361996706707886959380525775565705390539448535345365696938140235844644110948342022082318395892181017414311990040737486263394183427244814174776166482404982041411187766717935953818515295158913935935170529777187065773272297412493430099304961926000659051378699290875947526682423927384705646090664561378294277066431634229598900860143077053616548814110250535316412175825255440118234191726104177208013933460898285172825117663923666211699633971104048320787556537565668303527699943773505799609748726049725664003016767358518627480728657690114304698423038422164802817665703644201767491323100519234879801925291936192352504349216876778527454670749084589263853235242501472317295716609171816461984235227267307162389461625162099369466574792721803737023822251496158824003529855174973256058937970957655040346249398254771790496209497989348943722093998579687497552375518541821551211312264631646702578162753607177986960523562672531858769739896072229502921158167723684993708525753286472148375214289458556190451103651384726546016169130132372084064068680806477941580523595331802878355574763422864896850486565400970151200563462045330715308041882817518816968047410166497189570258086036815700471594983293245660005928593863100427493523221233687742172692777085218130703671285521475377045146839825095731236050038344285801892747125610581658983201385987985552543800587448082531001863406016438509489729863077004341559500230451283788956805375108037256659281836981312805597124112792144654285883804418755596653157415331225710919080816720837304560728643043927240390773906133135381427898518896150376420055633520572345599766164423531174232577130989063449258560691900502441021468413891038514459267487672880980007421857191906777968321466038650944233855814342271421750458891835948364624294178376637647915967197014496542913795634352259313569654887101483070245854360211697738819054367772444759291375085951214875844432580662950821939839262296907872354087415016931455318411147962068532516201117415368428973192148836405676577314161733534713444082992320229205972063629233072167937855274442959660544102276583896240176866481829217712734899610484606803822844031950701037024852077010536457711274644868425169350298134508501617525647658205712139849706587166627706388830895623344446343021972694436720071910037324348773177744583935630083675355995045290915784875918706421102687202508687058874717858876163606077119300350097560473511104694582208728945122654622398800769860329855609006740253197053284652951003591974973042958622568631393236931178004993472335092142763933449578642631842716616235401820636061879800726290707880217727944306648963040830523566394216438167624889150953854010477115848311536144618223220875819433681356211865676427249815276627233464002470759730919266374598888314802543474536237490337212769905622801440302902924054447413008345804703374511549176559010693719490577826808681698706272291084002636703685180975511346343691328379331545651066759523865842183894914187591487504877666006490070127026882463208031080036795867347380927172882325738901445476082832474540156144556082119786938452399048494321270533141507469739423494961057504861268518695643313676749899662838731524004753758937485117195766819468441918489793908065766999393985827543265929517278754112320161404120063597741384138997403826536983170463170597708104459270331163245657327994357094462928568443190643194060800834404688959681485424257560918950184950592752996369517037128011357421840594123095615559563090244596962859654834101146311933140072874382690720525825285776093577181506522648000407077600301265719531218598030567826945662150755502041101922755460184377453409871741729019467834590752742555994241610266037718660484105004550276631222428955186497895756576576696172149996362527458076444847296837292070650035659257396876844212916302784517349170625291776364427297718605834867518664597649313565423008219507124734964884029946210685907742483251245093083030249827350611100211520985028577372985635525317175357684432965239462010866042620998585774324529390292288528296607065195492000435595573952534052591937060789004327416029774693028521946986372321456463996281116634263664711356403669286030557382410462778957252596948044562875856270570158958696075922383455144042029258323029966705400689269731125980546542847605484600325187733532769095867167964537608891421527208360771570267526086635607187930421025935173366189087379711154932209891829534077836725133215942336560061104110050984451120631753281531139675392661381586140704681676836061557934747506966011619826962161758594625612790611864168474221247746757856551873216372967356511672221971251374689313127750529855501510840358044670661757191626226819001982758605007494744081236187623672573500453637552476860413194875217991505718831417987328505877161892298713345545000148283478581979069333700363507130581540439549465911062938497298411216507626662494499798333094510458431817241013032220992578004991948108278827614476468589803853665109396176461422765820591340298764973983618468432949302505329063687548340020069596375138752070152768094032210879537254991610732777263916605274894066207753894253917750914481067176378583774372308184059986359226552081012343655564667499119650122652266459328350754867867220562204041002347371650360277116133154434193727556893582780327786428679342934438834013890542098043473345475784550424927985923003205029690596256925033317675302942232619769241771589974118386838634559368472167482822190351223393398948779455973176959360382306851936067999571338978463488399894821801906713265229998511970412005777754770703413425762420470117657200913870728501406737239459536938464876471520531379129358103851859979778679044230696380866281771740219255897114437252605091305896980268928825274898315841153454151698005729679659953661991905322208152881525373249546294984350771420853087284758652960524001002530451093754696301563275755009605503422579469416304888394417260203707229488316799544961764961057099975935605886484175102486283708665709871818200036887689383473535558917173621384075260557782169572911147923540310973545719218744045753688131719484190039253554107471566384100287714733586879272741155182384158419753974772643565036072177971637683137413507612810826168180797472248169629840471286932076366087794899823759904871378805075938221280881577561261734037421453225936340561588121457354637169762497381499862160723336850166695496620383868368772304225520170108806498561232994905657078622575288975199382727673975698816781911978824419699162970085339382273427937684504776148759099394706871503639604536489031575465334394828900656665261288420026093333165607048006911619224847108165898724569527284389850038037409120165256372513415428404865268703917729747642261788855122637020863362937168164802926559573252513738168559556815297103379726243115358337025159568491855492578616942593466848768992531159503165511116150723448186310023640372174620625113022962611280173414361324842124422968589099235591618983169773061659755023181388242947205798990881571086734505134646314619976199258570799388209443641766588698251549676393263855276072301131546037234994515037571986553995508302302475212872581597215110225440112630236531696747862399465861259280940176189078462290015887688586825995312049829137877657967831286848461315468366353444789937669050220690751828496813870240487321632820862612766874613250628891034689884839619414895446303631828481386703251164812119010483748978845215950858176323436572587985443082719208537797153469153306750181547927609424613932894518405695088585939478535812980314862025082201821914798688854084914658726683619193371700788830976510215786662123674345538765525889623339062309901422266224390251580199550538076845933419581320389958413615937489523687153595601272839592213283379298943793755877674535787319142513492364881228151507150380458957931688715008149385735672061090460009965765077404560759406679656032357990551995041211341540822850411331207832137647849275656014301847526286477152106500573527823726609612704658122938063659387795987490385122213020106234916147571434551236901039789063183948927334201144512129877191988371404403122902437117236802317636768071653374126556977759330316456236432247723909992230452838364065663204078201088210310764390861264944767450435005642004164106447636506889047811368381349491992098840141643958497880081816347837714184619009775865948846895610288610080768238558433361207434811337765104913042124874393833991233463943868632603878993670477300242264122618027454379113851876003851295628946805790038341549706637739966762243521026015526053856635035870868799124340207337653774213670497614628986528439877524133241749115984606996762098445953465954633127677283185203136841684101135196524822715742665395370070022512906653210843745793183280010148905714135796999322568211150316767733052064812820836329170006525397611634650962952312497269555765063975155487601146713560958303541548327791911731593300908811802901787248308391555688389079239861922143847869750951188484246568899484428972626033405789539307884687713935367909289215771820733780072928312660134431296206386764962654438062914432846464423737513420071918893113704800318397913171392764355358537037354887929604921976007237174442219051366456341500926422850238828136536759837360445911993270535067604043217211088287953967788448618938770361087173300845453743649374797992380200555255563425085153783174758470451342919441805461714713601330676800953776291632003108300503282971673716939493096167741823966456198265630471136838923445025866333465979701797193576189521017295373330974149871685157440264404954978099828384628616216462754840083179454553012334628206875925849242419540383765941361371004926681017901255022467909716465038480172246437166063593881211588522900724291527625137346562228166343478894993479205683859790015441199315250502535761260809417668080683220684490409002318150480544779538703372982881753308972188744554677422899702571240808159636189056549532149662407172320443422276752843938054622912383495392428473802553376291023615628541511483314704059696591986274875903554734503293920677846907369813391299704279739498985114795654640517299086290398386637443454045666080561856152422052281594172761979686985749737972159846041451338887222999741268105725391990437665425894732783908874551274735733430345563749668043950970580567678282339626697174919730570415097872041493084410401089652643153810545548968249991778919923627992018736169040977145981343403679658168006194105877160599653088920704093446620375257757831793535073317707961021418754625852235494674179932438068498596631683693632960535778463193599370157133488434721546804076179312751390971369397536055516768822235051954053972486940963577174833057646916735751499381034304615601735663405567619025054856491152041099087778515390544870843958559093196767369132028310321780595839569371210465561404141045374800087123054981930671284266377604812120697152473967126475981479034286463059667015161983595105856353511431832987423145818677944153098503448691993795671830752875839304471531989151303406194403358690188389286118500615228994697915777187817947632485011930757927046650884199641337764375489815229145193869179958597715400202092338891516055702339550465979200379338411274739804774927919610270917294349993471365718283545225671029206879806559016649003203672057684196924834206704595273277269957857722616305906635821480522279454220500920753872027781892495255751762153225884435470189842655492606958534349942164074404522840899813391246246169274789533503227431912009891773674236865766919894600475390015457190025289406535800607239348232605822804584157100685365913709561545886895735270051790799225709608380979984053244667988884913854149897471484387772119470188730577994369514217741411890427472776994107563665468560937166108926353907463657473901533109664368120213914560932884458831989059914211168137516803799245913986035390730943346148487449064191781208822684917689100976234051687391829152074596427227897827345402689203446379719329622353196840688022676163279737062921142902766414161305806245437921362410032589065734818298561928749605524625049257866567118740849284432321998960781940907407018916261172294307543658774031858259206320475926106378644969958290525940729861176810923802288952202857141478747640622422603404830839677133988078048510112181375538806986132044319522572437043448608558881054758132966271555820928744446037930555271492296393059965600764126259998779084236102516253884865811197254515862077300086950356525490358773409362434520158289743445521478415654283969279780415134144379763136806449922956331258691646371035682117060782685675231300912391896040539581949919096081978573244207128268562457005261482365092923662010715420654356711870297838066466419017928481755747125133246046562770204334148360820596422003801108602541127861172470226342340253163659485391186767886226275942076717973886415623104138585054402708181347471408499153767921295229211187092762369394857220641193337350189363943289560251364976801871120941087898215431990494531009531756641405060181087928140533116288824747778202921355530471996851105661646089520848904724645658998994908179105785580205441222971797383897262221332547748693337084089495725616680213972309549503232006566700045788086266676210891182774357354943716836685013843068850139288804775636303151458800204898174403016230312971101492483857354705020484701830791128637008198607053373428626429451566602881291483651844990128842616090944587052709980657963909620418226184553294858464308809013012861947222188342196291224364629491288934364746910633191269820705543678876663480610798635621070707951967137371641780374411348502749836002370605050993511458032213168970740413130857335950076234983211851259690891086178836379593011947834793298713724106342178413748017059397812312977053433323595686139063511818740439217660708557478719573940569708269893356490716347906140497773311043629467372001012175952294440179523551891310235039342936749397732168382952886689609703653387263869552227669166240689483099664322205793256153276413087955883841070047523687054916447500207845826027189236053896774482801478524086751752734448241862624231690928596714120324949251904754362254262500478994306248638796342535823061653351341509717217144151175538457271413909883280427576634662053785003689155559638702652123523212976811760984545990299460191656961910265973232379491417019033215301649105415875955674938797163443996547000455300297739761844251968762631933663226699770000435701490394038703664666298526669643746123649320888082952955707399672687236508002104861404679705512929750512877069276441291810338419111481115473506990980362149042742622898970504090053650744349761522293441885132150983161264627976241719281646572067830718768758511296287620040038555743279623627222295777546174276610463706247890180920670374955975050242293461489667672322500896818959276354888809549253396430082291469296084472268546621577125601633723936781561298373544439906249793751251679979635936109482332363257289378161286789266632953155493754251389403218826415771717985788969323468585794686108827809782984191581068102857936676853084408000564617136521477174382507928421889953804716517913726596142264804021856824979973698509349396772512391950567270479360107668008362940129860044591885917791332806308965423066353991174608358322386753441266449083556273751516333404763163177755521475923736247711988153813537740272725309534000608375890325047937460843468670462247271922262065887440054140752053940771628055894386432835324298388984152507948623127928009924102584399996074791008447456590716571450767619642780222766375324173251554142725354762116417285087147578772136004441651904148130202384906987063221509921345754387738295997094262358914733036858246855613467583842611431659216452716166417349053637280057522044297094900884917161864978209124473723572213592771419683867789570319904220798782199530684850629810600693803623484736775455219804796867169879874285832474127329582407513781473929064249123660670807020493454486268840262648739432735939686395526932154774555773670397068405447101051974123719583272702308519131518148646669670144745814582701213083496736287933513507012350223926783546524606233448160478913113501448695658494661059696953980408098204717496595426382986073272502895919549638883973466065327067568739252956123659583394095282998895931967094001443986850241603481676703418583310094152108454810010023862567051056096310510851087913562162562158157795502522860721797950102622337559060504512053798116500037465465571707488964829569425911575545539187548362445699535121898083842021954201009528220745400383051234642332031565716042028356908725038654733533567299928373220964471976519205823913490397486150661937038693323863760124505006101834027530669992304428837440210954278885071438638464015896780602715726336392779519495112835870084583799993407767186418011802689721149464228261598564927446428309024000419642656256764220502689222844854549265788173341065163565759478160527383194574876612363902812120396934170934984173879451633138463418030793940319308960661387639773124581557072669099595536325196177744284985832254849264075066616763388827712861026307516839236902710902357918903565983693648808116107972809926840542215271998869962574188608607260640401826535317377006652543298050221871655489548922157276291811639992174549438129536610522445686101599068124573937017137309582506962196611182722368864632232285207102822466903003524471515922247402286283656598216338340656113739287626177865978004754732251313567522484938672045107635507400341689159587839454559841567698459404055067093472867318399926419250454764992417677564704336868567303577387943708815652098596757678885268311203259458721005912769774735919741904203541263939009471160459414528873355508689935756392752147638453258824370299988586074429248961649545650463168599657322073287820542594275323309436677259543856656737869532816306809420588088663282073198878809230054137565714723680186846321993975804810435602747537056528716164198270847515648945567589370893000830395649305010032091052063006030663233064595237229179744140382729573351979479834759524631138832045990194186587860909902458122577871849576597247842881659845325322814330274201589580090102170160914447657443539358287441076685147187985179970625363774484622979739353589714712275085741897784148763652924627006054988162453500726510545162490239063955666358347295111754170361754027274237855235136718284046131753849754050001453554239034876731197280332854895965135233440541954309427911119290180252319017556221886171834185636321818432786730585850536935691680454007281758995053818639440089427492699551810100289209034468385833965510896745516294615282284647684243195127044447324247666415733062417662154465962159548494545690216656904546487605465740189753172656760848603316206646081525390743946125000114119808895202787900460530963825324376094270832596109371068031548410165685746553891479719763618107462038885374743444672668975541497185693956404421711008624845609676422430567134052777549092857409437272708480405903048079925522317345779267845602430998890097703032107749619737386347611654024641023062802903531819856677247942418370242281526116748356110312815684315120237870069895720327044026881230125509407328758332189799247540221734322793702092371755519476164343187119759053850165293630141845716376554467026351380837586965362263997319707589067119454757122069684536100536413178564269350010565107964775018820257364804988041280514403396745073381157597756078227601591614281390329285823740581806468001741263235867224909265792413466661615331389174054971793076271274060891210717650247293649751375753099496027108231662321529652064332431804128730358928808047254337970816872763065418376850753162973397331221765200806229890296000978531548853264970132213807498512386726825413017768290009314351612279559863104972857435479102970831709877331980115669155378514435536660765257592295444159546180456733706181456491539355282231623294507110352862584856490276433571047770001832075653092776991424022803364336658739362507440644930905175134906846156180937223277070412068603135025945410066682575063653600287092202084714237339339851406939714096780016077968099376999692111858388318624487941489276528607870747720482488208224110160776024002733198893459587993197950957587402926397415100203555212272799338044484756047059308749607858218825679336890719959720256378157902911108988536367020536111447314168511043462411595623521870372172411075584824479831466660194247219078307063212944195857647787087022356474817300279493964622123079725163706518896627092984605143854818106553813997487856755134502102813154271419266758909929035853765434346085508017883096622448884002799434340428025268673518633687299169538683485547892668367781010754932307630242344479421311974690698419799364884100871550413032716176830450036391692262520327596170313684258543325173896248366429718429789626598299406310446914031996665618523760209852357243882918281731811481735406673897394785471914408152649305282189786514503198998566954709708888955753126753970878972438239661301102893778182521150871055906851635498582232087173362174911614706499022401179866691328086578715718073715956737341151429841736239884963112840406389919557314827744447468753640958072646019009756597664305859384723841437276239167537842970290955675165019980706376003913664268198699012576893750718363229913184599175137762800709911231610590091786309608230650992414415502287027802668829794991275776345818826709630574146889396512915803585656992136537821584253727549167772001604715295437184333057243855289549222054925444848162154514239662910464691845072802041406403953727164181585097625183851980248928444293809569198561958677634469259734134405734371639603443866094023737526494784258049472429722239711709175328635647378052854466537326376797718548812689089695414317527322630071905952002965669647140478983484959992146139555360202302875543019705352907280619343712324065280883961938399217518109520176468358359851043162238418825129468643382141739010518866464420389267788642874746639302641626526423580840158350252407544319693783506909736553679535357695395982677902461950580508572880832562213677329162854058849120761916116753641122660032738682604648662627372981123939070807835620679103510347043412063578685262606167241873335005221668357080993147104929714026871497881093397710506763978198328535984024474126041192492288918278777986980536954395959465664179962788358448252127385502314365352694619059312245553942473159374252186361588067590647672370125959558456728692440041128999292681738962513558202404356525056701179918567162947458749594800433412297197049608838368396810362558338964632546826193502443851478300296759893360137913746098810982662297023468322959838721012855899355386182118511616032200780887759245678303004058877254467130475301543378192437302526181196464499936611223672310256151585926560370801894774845368337794467164705368003009738809651236663365013445238260156057420567260805268254098782895422919414438774691364274646789671460409421663593172886813900887980630485229522636380376760946747923698322844934116712001267023090070118993176598752359059844053498149033162361459824754249106694976769568420786385967930041165987183224704661699784869680370326932032820707363073850041801008972905430073317287142338925139144136538274191306235018094387553606728233124105966356617404695442339943797181397422294155848604278985700071493530245712233393679886798597492947056379728168114481013688942246886821282375229291331647636199256282978561042324591154707215146460113313005417367489440067783184979861976814673971678277708717273192816893213334704736021953896990390763668348997626749858559815760640462599904116579538544802580707468796801116636671194850455781589800696671469623832913251831942317820931493656626134014123958690760295881582858725999682607072981106285736479180285671076482297087907621394977953536427267892962738591466167212768902593622793031398171598132722391190042002608659879890766087113876340477895923192180654981421809114817435990803348206065694410656389845071766358889608233678812435435393217897414640077287843832606152478755704688681920703950980024274034053066707844827458909059808800325946071028357138258109570275766153584986283845328713186805686829885665500292533058800098937986811480004058814510831118063688377351090716402220932841461359738700091210700444040971727924226271575592476737179758547186459171850901539919676116455995807544237526188265876270906252664042197031329478916141111415472432717914416199043069590505318679299267901561554834247599699572778992815665776084396475505439381150030333645695499907477220930896476543018894245631179391708398152880352618749649269413984545462242365811047244117610793441234705236128677780502844692340149281505025180563529466088703605904779730080019036437141486460850189144889769152096592326653929194153707627357333124784905403563836638188368890779771504818774359032569389644924430082412107989445854265337181452040784049471446049667197276732609817203681184394321491207126252592955246458783058775597079816968758533225411575459860079129495667241107389070732618607926508135270771911825193527090261822826927473828208613325137348653433148541289958063356280030921702962071488323762967780404720916128332106835385989400497345254402100338441454044087825308465051290879852843467008462493131282794191908005716314839194334322841270033469219558398571516470481639244371151082851639431337570918494631107642453689762139355570450859888558265054555045850608221315250885741913731066960974643051254130348240737279587895474853287291671833576846957355664586114500943053308750738637992241676263580978172194766178031661413186378751030397147621779272704958140645410486008130171344947509291788841269820167714817954007306565570169796214611517102677484206526760852841338796032873424427086412793575876248682957249856280544157491659048449503091486146057456033023955567961712212696383661323884990857617936303347277327198219424117338484800927785588093687859878832263363796632985784466462583941720619611182393352474148234321468549272833358302683142860839718775691036567474233721444079766635547292236124281970890156674775624402025057473936296185626910008749064462348670255101202359773616043480706780069742505572567973980699995500229056440786291808566536291963954565080756622428657554583301102902714569024049911233691534310132642978286724149795119758694594004541127140431736507790510931329132054692292893307589724922062347772492404012699169850663951830349028288063277248236598114375400470439073432578724655300469227073627698901564373635765115873704859139969833973887219053627299489585889135436744011055449234872420585918756808442342587664383128485649106844827988926626920037898359709891412354875323822418440873380168107115855147454278769273484775716389208624461954427907708190338507236201053357024975359347983462366201620267172887785698984889252204275970842285302426690876612392885651167442403183891393622644201288229076944790228208251845704377266688555630198304460356525710163827602931729829648931111930932155912696986238041705138741699815972678949723044394262718359607629273567532035205698753389598408037320998591103720559541596489557933650984376784495367100930851234061452656385127482487622677299607206814238297333706172309666166986018355951729994513652199286849496423502443020021338675178898903034946862430092213757932508070754259022200976383944270247873311018316458572838278604824641458198552835476490576292359812136573137955596961387064625401461438929566499454749790709566870206983097969502560056142735238532330839472979767956844462319035526435591659555180552961349036560085048219841008579362522601287786730400074072529635965415252897251077311898588225827508164021012972021332980526990529941438578709925635102440391995740330904401737147794323887424851709741559779010884792529855213891988974028894820838209244282240602221950039320870613792843112432471873423244409494188920390408394451162970234304525689555199898689204492580885439441893305823431109484886168842806617194506346027356306855125374557499561345916032135303888348584317250838536408236494316841424942658338969287953741203208364126922690019441279598643645892639284044564951092113133286292378200585628576871714870388323858410294726861848548140119525574612473719569497497841734099728217708427787575383981862043085399241362987686389614425704209161841848882265471501486973704893085867218474074654339277969579052554874726942232621536819010492208436404427018967313686528959982039974968743344439130344522197494780676470571693198701724161395969421052824343945880289379561268121442674653209314143309629061140855494636316025139959878883252378667178500981474495911616497756723220690235641090133123741846144280896962650111829556174979824134409353086320724302053062968175426096131672230995724808941276740411944547727139155571052139002810612715176609889026173962014496170849324720426425828717717122704878870326462129567309002787184226223467277644979859865777642852780564213821163716011652901869904273688241225776019479363925471759749859658604686089355507243788853948093084657061563472254446568161514213715613285010589115825869900603488983423394696963576186078301137165389917973649350668370679388790252039296336744733549662641446849496466831758475528508446872441954732486765419933265992399109881157538617776572037783151479735457859373597645271893987553237381003898679364520722187348870435796524138806372893810659642429923436289326682965923398413152091771299833372884005380690230749748554269330693149997950784006568030521169339932296856104417304937107020353630937236109116460668712432824885880245076781702724413292887937986173996923989291532186385145778093681384455424648366326933871607767805567890908102706761816156637246562395163271301972737802188008340044945843045628237049165678985319673689555759430243276512023711388833693136382158984460074871043185229065227638704920791496077128920368441868370864536573250967963928967311648737314146725549750053994525555981424711492942744049669307134623683515978968909508806511586678192720002259463267512691675800340372520344548172426359247000807549905006115597211743821393147122794438522236376282628558736175821543328725739889102384706155947360727899290113096311167703062820185471364273739262763915291390537180791537296924252990896936961745268046802457013851110844317869269556721134775543697024332635071250630790341020264542720967852129398548704362414265225625477953101043934549189490709862249690178407928506402370621610144116622656994356038263519689736820206707382247576879040694712949562709201954422077037880359112625637758059801935696102733746443470815386882502661164111294781784236518704205083068563497395962055308672978336404535652370517492307697247540011055829834309420617930685055955148753071249416776463573049402710903528891208601051092827758621074379027210833800556338478826122023471446830245228778847799433828502699456404216994421008447301119602606307404602241661656253887973432098386631625434319937189665413678452652452945789363839976584323513604399397539942454514192224759407563095001115794170898864998040726097740314435935860259281376692870696616104053822290888122428109221691688391375353287709324973947759535583844757398991906321219341989109194234508878027812864645329202090185212747370129762739671599211445020291619289232547413898170374959116555851955840466377069642122036176601710103502640277046208753806851761657948118195701896683335542627557926102062107754850185619579705627623540641302555162025224998179623791622511770067889330145868078492804184760148087139894396244964504590801347577435022420205163498574557982512985118289456044290494978963995877132860647927245391968207836765958394532006034121426437763026171506702553050512409345257958925917447436883559971379994877587343806806819444174330544555218125962132236921533499270175068960038116682863058500694817590504970775887440506014721414220100330436397937961792579512255077836003369619641229616356983010033903507488187977680799351731704902128656382608786547810093802913801266057840116553822089494648788763043513216070650119338438290071087349862965786552426385539113448470509531407651628470215050831920436005530461187805735622540293926146267816482982149453204967053865309437062179186087572920607127195841872154880592194236591970534163278836134918297416420340287289235250410722879706767240329708791735616469862445943860495674940144982436959449827180174983010815085077615391905395812976631200144032486740176466543200448523504215698319882148222196002357826408505872929570281953707485436034184200541210745747024376355646483256623180146463638054646674007278890738459815797797523999645777880486203653176814590109946124382032624416760343382678938810839745677348809313445681955260973799761723758554617654155205255739850940739100566072848814043230788710581910581648937303246047093546963519403095412697320932800053368332085654805575921694544757056860739481868508013673932193777570046065978134213885606133886627384771822133531613476313159529885118097564299580936044162912753167721657145859353934357476353862279704417619864839348731682290040705095232023803524790797152859347885447066005677293516531633622706441459689929476110439125395848690963689886448671258627927596161543838086415759795880902524468206223154209446052551930738804974053959038037818197209172069508041530171571830603382336797976755874743142331155806922831090092484073114968124663262337273406451421536164504755660863017751183057488708286158673809061485129682309544869265309853363068647459734603386379061210833515445588263725462108757341165513702212740732446343620574873601431995710678528609021110020723246895940991015497124621538365603142891012166939076526742229869598957001552037753100879022735415633876240561561137790286274387482625241379866176918507779309022962234683733357027678334454612234558636075063293078814354689782955460361474523039998909193626729485728133740015652824468384860028241360079947822824595994476236597451727960399066032390094557191478065216591227584621645480312192488401152995290824394077362501425723375787422862231718587168657837406253155213769895751472820679361409925384939337658365813771105449407178664384045513768481819322837189070244990410403173924775665205534440890832408049378420706913472273851876072436774252898881588715445440106616447731697427947081201265797166413677913581679752054272753299137368481522703183320902896155325610150072763423118878352852278994041850188708699811483484241080210769999318479849024427662756220121587560099414977145048113675381612367101750085185938408161226858525219299615424301949406875032126967896578878704009927520199455593537836728023448825750422760554992636534081517817733715868129371710194051177292431370004295019904844086636554518601821737712782146269752601181304235931193272273372992274196465064359387872487133124308770703368044223147056364048671623929868810267109877305230076392076985064013021533002356274746165274033521421651779256851008752677660522928634243822183608894284207449155865634644152585654762425850474815968666503745165890960666954309144259214332931054359097541299351665902519986653050278471971534334996518864428475016405908325131279380849744204384018051348801556449615654686809419886759207843374768543785974373011985922368924371194205456556825384836990523168533520726303725148189125033273365007326179379408415516511957336003284255321833894876044508896988713062817228478794757665964280062656000758004893754030148833046803985375735600940695878303889930086926704023846991647271457038225894172923396985648546874916206362196636006037731803597441566145879452796447485325437697494329848740217685238597074057524776254302930404525403621030723299385000188630546810774509838868765922478399984792442463691645331638489047661317872341655831100295164230049220049403536384232114330083828008619103602793027375751146928969755664051827223368254868185078840027669788391922861482408101264365436456279978981635813095645376241710774410981383529774614038317000219221414069205658681036476707043533482428053916926756497357956491482194785975944049553104806240353101534575572273999588579338907421752576484889575211951827554479855458001320553436347504531864073342167106140144869544033922352787054501606281939348842420626489338249432857921887634282900312905706192710305724629935171178605309006374873711565898230359844681793199383011514976132585158347620416923078311002676372195050637979118270282908277346328398652025668966880356961555136351865104303467677717640455480358616497922678629817988673300927202728231718962586581813942673321777354258577398852833699893327546577705272392523373810988242794948065196904729551621977923082624519345026813130245520286432402949497184037771012712450117044865248614426973632346972101407563156959223846719189694408185483301367346707995253921293114918065944302530678550435526834699947482419918331395859270151155350025335926709999500783212227055624607908266492465655139130585095216760763731471036652055936841892106081992363881316181818113652117757616482137949778021826054146443640709645821737669145027524171771788305637961332579198339637580679778347456804395734579040939472904688689909544788081597788794130508191797596263077213194354922942708413309473027433809780119593763152244224263114125100362753045580345100178281334504933028856159564147370772476679027595912792103669571807791613679199215835650969527177489101612921159647650376553397109670639417018591610387107089769268303883949303207632709379859263806711362177587446354361377428558016953260135207130186498619091576258448535171465723350650119062226976698696394693011714037694158595218043113547991174031266150712274105278921144822908580633144051429171424342243443937692539352827285983423751368482661334834238011246656450925471341166454185953623638591377419948280780621951751601677235628525253682846935020425117274345552060716416881326522892593119553156076994946568585868234348929119454989460108225394009309148153632568566407702627921157891051060843038403627275051173127218703466386276714990637044402856037614795295118414777869464699140156930410938698415154816770385469148079317415593732136553067147650014538670682141997320630838735578737206234468296523016880192727189120515415322760663471839474548584245274420485867646639390694451707462694599744269313250271281453588936331596788460614569254731537875267575296099348199617654638832940049820638949946661484150960377053089213265685669116189826062149868879077860470542698156386508670940209493504509380388529072854337881759130803247007212216303890170674758523710191798174904840096036093436394506668533511011420726671561990211600728282279073381705838268863570072829843435655514932417634123035437237835913064185873476503693821673318498529691540954609348137695490676999130168694551662507836136132516893929673661520404361800634600157334906940163731915816059427441739189750170202923157346153256804295807818456456885896987547636912743376979671976972866072578614612561424684003234084136878078109444935057886105752077520339545042897771182668119889452678279695373434572187558206330615617605447196105903786368492984669893773269751907000113074973863376274222723634912428012019065372168382334161578393777079041457689650033409713363325996562339690933864295520369984296963932500640611011495329254704944977015827571365781063264090612689025896542645740661718110087017204980963017359095407969296728422823848649621880406285835123278085883880497261011000034874155188646390466479672106123533895124639227295753513362049815268276343563682908380867259152900894286068293414978704209173506045644226328329160756941993184465915274006550313024301503241022277958853715661807291857698115556956655475863122797157140178563846920722261341821918351602445599727987410072670047515633490664740447725072274869799632511260955652391905056116621172592830639575824091270211291075390981807688030200409547446389728027038982503340860409249412652515726584453409065103089159112099839161835172798010027339901339409649544867266880731658534835505165676491556241002288625278352078238062987539737447577206726612733664212610671710663806501534713964994991140892517027048764786376319147865492411262378518550896475681388075209456883639548029094026994337360205418701181345522173014489611672500777472122358701661901501255677774598906976123225121145013993534605535776944413929469542457728275187368033861784245403701728741076842427965190379468455454418492981041209803277173786256926199165840641486430477371255464241506413705909281257262041511273196023248907377250999670275685154874140987563242335812411957311490942431947831558115722950768376939258711179778541170573070786571238314967200527415655520581026246073759689886435396903411058708448616555383078726555106759756389578519880119672149292950787881625650029445282380005507865322506369561527421694678334160786337706229531661951963704122781111819799245834152129136157774213071638541232043736623869024950397753724162456433841279801373267469389055523065578070349962611518475460823975408299951647052401884526617570423030234582928609596686877169869652498127166165357529486164475996332997401603154593273182491277065390106621163592918288968695252319505817258295443948359983184233836154638177140819985261845764985415039089716242383334958815348659271770242741680308660461854164574166516345859354216817822663743479733392892110805042033473439605121054005568499393312315336660930595099035865620381633309562555871542257899133435805163107819771266679043573015431090015388344964031632987105945787983595196446357880251669108432686610926426490755044737734634553908906952870293436105245925925442484184770732623811410544396505674971807377832089156757415136753175930252810272001914516349239556122566167447894843352678614763053508825383993534578472259909030606423069654941006047726677158643977109998092660414593353189168020852599847997315104669046977746188132566274030393984569656975941017331901123593818167903956010550059397346242184393738575103593634117858731372217177943814396083633453541138868397337774945079358759860019649719447321306902855646359630218225705086124271002697054346682143915155871115427539631170188439258000909045865515062589210255221520341134246623581318208171287241471271995378124134695176136221597002867984650504281111889306951229800595082945443893610181203882680045790164279873210672149247544860593215972867450202668326598288638159593851066120210566817807472710548896038279294424564643226042856733551930061888164655442445208284810538561465062492841769093813618802016666889175331199208362765326774644162451056460093089659170326648524478358938311535556426919511865671750754036107306792755662045652476777117122369411526548799646814742302944644341101160431448970530237548757235365341462504260676363775052137914854117715216986132794854934713582410670860536618768154572136197747172115762588881660509864358635199324781219637056498691120430645677812005194758079294912190888347337396763842710036212478530385093069087077278137954739086295197495650039849318630059090016769862087977868645714554928524658251226429123942155280769317823903171675641345106454094049634126536111365460492527440419935193651808997407836310116092682288445790954471185368382521235825918182571318020631553159487873894833824549479623726138695637196164028745286710593342372343287012777816308161582845490570661639719692226949914907541522692808604279018037238598839267486508429056019654604821348852864831222954149674146967668532253673207607378285471845546797142645185704305338586434636852959783000980600657990414933230589122384931935026769417821289637321296979951810993302704719091991641048392726092849089438039339827981343367303372202234633618085094494092933878786645410692883617779278269011315508331765328219853332912075372719432797362609641420893918406640608505785437648216372727552818564617925826300660775344554730924836002868573528977735344371476976167841224617889136667980431749688776138152455780725839591181672755145429725269572973582375044602766529734747621660972599509624124689944745945017889285786076793838643650458662029646938612200696684859118057123287736415707934881568419376606404488221353712574060775701945426841886143938418488118568776862608304600875273643066831924967936425256185538096615871880654968268922317618753609150127601999486447477570659555606928865527752061012688239613442035184690928424639629797460670226341547016233113879915738987232925094207813857612499775614538583545629529653965299521826729063474426723691140172509854832587573207154158470077627700135821442494889916135018679405968459995327030605642303796464507796805519913512230694530454136026073338847736225561254613967105346838242924835217798585436027590755979846905777138867329389113507331656748782231469334723832192683913948171829643610745738744778899329887154756472724387928346723401273669268929699578967061429719764147595425411052232294333299780146562819193378778285482682310528448584583457706068855370002213815874059496702620232784425643399090629563705669851116508830345165528416833265407122873984680065651069890318609065608443099545383927106242375087795630839112646562994923907109025460199800781801692412673717343295253815423500128757232779691452242388099116028040865305890164607985531877957744109994358238744390520044882104990357913961909159384903709649699861452516069036748363083657328358774619626780611739501091189986474300516950757233469360801303612077136290675404559512350498169722352669454873374139939891976953817474687331113399171438512025928802109426831112692889333292649697985310673372445943322104693927698359922845033860241785901213370528380662873196585226594177329619240890275632152037719458072063866868454991292475129292495973525009711844481529558860847229155814068480809088051582213555530650297841016310243023307644476063061293010294056758630675120918641343141617360563070807605226769024213839037345616104605342405667418893421718408869478948825573706238769092310325746451842203865695615717721687819778875106568745391683864088330349364039627764840718929267397283824011805093142599726706541858902685767911242307806068061533218137315623138618822034006405342530847574302509157040536646014466529070889672361953545831156020749574377497812804426754337461059385607485984771778356068263078467300922648276131339975370574700713770570374328421139904921143424924773900776303576309175009549895653594176019138673865412356459193437514768763886270747641924483192808592659268759583671955711116714424357085282656106061176267980174183860057287557711701634065626950859135403310956048630205587779610588692256910824790907202309660724710880758135208734173583649562700584129595336202519692733634377836559331542397236315507692076482568639592843964940256090091850377785760087150074842126378603878499052390116806658696006286829705555643077836656690183871079838888249128274121377120133682893053782229643532593256015305286205869278865250338982624173759788572535659299584302544137834989971613519339902468321263587273261169848653286288134301480833671633653733861686705976688443990584567218457127933636166701648145025062791955747580781192846237473992418129407000424411275082846232209017263157665368811253798510123543520824180613637773443401534455811764282842126386065976066289318132359315576601377367915483037986657346609477804353529382657636084351866334805612798943764145801667323601028760635520014661840628866839052202559297021424964088643240353711337741384839182393214773439760661819877190910053830302489367798412386456863193538966453239768291731157240172203584546564825669067499934816771057686708688243276718383246756039580848794257622579362254753990603452526928444384698104976314873064302364586308706862759310287058240471469308750689908987976827119546883395934137902482085464730463664171132564114001388179908614623713795093214330436682947364649180723223939215404847372474757876175507236875065458629123871102553910234562952635445661720237969248790547913655870081593120485051265901740796258419500489422252974188034051299950734391873006283045675430691179956560802389171295393505443277447158429163720724546616659162735297780068705933601503741074955903085119195749650373138428839301344274846502374895688123229228147759906260982095496016772998402278932118319316967667968149299383495229905083749153232422589320145857596855282080701377944385977789297583106022649256549099786196452674139982773424930521703928371531758389149257137142717468371598231470726167734375345965815260664648708104271022393077204175921486255853939011421749610311124534628247226507499701336331492725493324126477808053466374183736303889960682039941151214477266341104814181163951881108027512513351958709648916214293194310013881110441167564541741657876876578811366028859735395240954283988992806507406521891308960715361308373500759123229443281273406376564713915616546579218091407174024695186926000945119756423343546297618181869990362169645668275445817201067075713152743655139088867330137621159036669864331606726697952325536283501246433171943898902166602057399915209533762924880186001432466519740360846044651653466818112019838728669370138690387035527272433795831762479114899780264556315707450342858118975856859360517462897627212490102083277796268823522575642110731812911003466748306046417787612223222828711876649577047953647322184417092848596069820233175844195633297495654422908791813409859301465337691502680081588308589712015439285576521402048155983993271431752506519704036517377417328812740235917274175179025045641499767118173010445360109355225811521539984535419633632658190111140262331079834400404358762875557552856292124955608993838251690969383805712998507745226511209480139302325364356504243704816742211551114034490544370111707200995435467757141695933899762789970693277276919981103280241932933284581898576637521655576507524809773416063924386296065315287782413440534376734557498570341384262843513867719993767598588854135055682075573411415337948779900174621435828361465338724900477007631585858758413895280708170655649513201385488922575797341945890221377122338340990940782988160291608615412419243836787416554479184583498026864217513105443218014153484927986328443740614556952872109541014412605747904629675808698202794291111428576594299356442708709697318231196395469534436328015420954408533030268982258032920740467733384079675418676747589747852218386705952910081724765374391034210163952005302569213754489362720163092437180758373618646535369284063414182964710019229680573416024182900602361205599204915781430154086873101769920875807163520564504248544533563420038221355812720701270999004029831685476714477214312772179882618997669702585672329208707770914614261295308173463885941214486004786334744340712141404445402675527202450385372489217659967358104912546045422150366881018865421062797583647465344714343424967893515715976812619210433136267845821281805645873371962598481619021610998230636364536359238698730974689065443536864415176015985259076356594685198504484990498238787461270438556511717969484380966519706972061529305223437748477903050092238789810074104490776519309173554800866025081616019107810152222286332581000167693828511007372797193050880877128762081227577147402481089204588303534154547075743720116924425455098067277872297226345958355245117451308494340903853594368780944154087400297110982293554474322106486538945043265739140158462521473835998814183402766380090934891936313362739716732289791818879915281700775783106860972532204108159264569567903507974126027339813989812424875465846657323714688445211590898070804641014183614979015881090794524435083178432400819631699996071736294564285343814754707149022429407103239101684034752324786250919827182040716828040732039190321425386654292526338325419903142339709915282038981814237061453232973531678622970083414509022355638545011050408795873248186764087389950020260267832107287156821444236867956477917795182362164639416434613266864022501176543262596778107541656624251127505237454515594986334150223157955213673881191319431482767048123316748649555315878973724615147881305990480656508866474522053581342875160483401071072723203231688949717931720993487817473491896928573557838094412897169261364578935979578777710403061729700975176806024363719735740447103089377035218068435039442974855055685852008868814556216837856089319093125031707848421832891275895491037816024381843497119077831717272847823353367567965211514983265955004201561959337216799217481288951135648677938130964963898556928216842835982270131842349417670977982404150088350481076473279114124181839634536796717834324803964821070316476732567835152833165515817528701031100603550782458587631438719230308418145131429117172412688483181209508089467729096766057493051357845417700740114440035730598563598966410527856184345415774524743974331626150056104627193553337897576056949811540239053881012164431489569943028275443718904059647826885199102116858095275728320528417326394123942590519970000229400425006446018986985383740184946078310149693222329922449509286420576123900458895200760131048008847044706514847756197528344350223437088013054512876089140831277363042003005013751501250434019405873813907759642932769026075361776830435616954639252645461624771606942797044938310042539235390893063018930995482353975059056177236711048489699952371941676298906039176161012906578675656918474514627742773171352536566027785810741732430728799223389823237188359845649355990413012903233303996493246029350704972311894189510197243544950801220151501688154919883410540696068995439153492742756469307234447963037230283125320538633878420846133664708763983287574034112208430260054975100874291191163486766865807555186510811173608257866575868605314370619255802919744883270166565375193120468888927783077314120354231028512904541711306193611442247934536098018209428570931868985990678959597695899773144310909445277643480852884997044038408478977333803147401370480333946000936351010535386449923416700062362334507711371599557673820319662363870625900835249822840497100703441777432146017694717583827726311431882272666976132692968919324593480214623486943741124539856193860073492762173611351660790223324363396845518104666228324568743644855551809851649747277592600680146859875764706350667591566788526861774318854308744809902966485627436741144110544150002546439760874967855938189948890980460575210805486604439928635326757520678603850696671143448693209498600630242500400412505504297273548781399293654060715843400057557689516656553502288320279881102997747679180106967438808000134899401159885018777725210449999194164338087098318023058191273776326601078522651994572670103657059543187734103755835566809914765106992078105481980041105928476771849981484028493435721021622847038902998608653059257913598405332892280816802528704657391546846383955443360670909996048108988908155223341853691491315910022822005546238511459004826700324497428932481584688550991991244514926276582389954197340138290125125346342068959961257277242573162147314381294713840894176383948719217378499237269236522013946903358643235838874638725525920949461139094299866070885475952898720567369572408797500890693901988078511954595499500399914290492875730872561249947570830690446247557864954609391384253761183409919944975426109636220570135552049082619909627116927139638439430974167223493408622698227176388737725191409585816666965016199053742935850242753283090027934939122148848002129543365884954475216001289428923665029476406515171067284939608294490869993472187119876042941698671119903116707063938292413219848137421558300078428609357449740540067935054253659734457637446709488055529908803658763747832661786588589452822058176430173430697270354100433218893568780543119361830057498173823910118997376772678540855787518342928866698592524263687119395467704609848485387311768024462969671254331115727065186419474549011405680134673795374332495571604072885232357940475065400776995165414763323824851926512358430176503719759889373429577458081009722684299972985843441894351287421989296200832097678437560309579094433304208573706351965545301572308030432442465328333562714883046554299037652714987644849067690881770425447954453223916931263581699422935203800539263456202079274677103670493674194302703173282543214815231458098472071283761772493218702430455378305210128477428449845363522840715474908775559341793887773805287835299617244795383877318965616421236221594419077101323679628174042714567968543794787117607047600576715388929222735347165228753453840191298761384587617404583801595525586992646042983372629819025032663352581310865379018195802017844316660068282714719658170170935674125785227354401003686515491568684935369680796171311297881273846989922235984170545308498179256970630881175923056444806450113711790601712293107924526734026598635943655913153784506401494115909717400064746275509312925624718860573809195468551621872903129233059515205321803162419523846860091429540917796954496024896878274028337326067788503807105653041073776985628139616601480371604267604893901205590597920012963628114125960843833028444810542357170634945725689843178029827956217374523039239358220570396743154628483670128540070078854492721355157031147785886803481009267551328139788405995598187367074803759686109061096421753154277958412884202989402066381302197478295937086077237440565421568534701026261201827496048074589936577824983860453274839357498674996653105664448697429948026370863352629915190007582182654217565803268899498095445041620470617225201434559944648709768187579812454304563201876248685580579022900739864073483397368318911623840437931078621422154748142249494362991671614515902444557354042731946520591107271109748694418024553667583316951962900839119798732707073346544843108223820343848864701525565401582630522751659472599571598895204632869243357565493427286347202352083092405750148601827086275162749429945144047196655393262964904763460900641982284103396916266034824359211719613666646697186633560342917937066835191272073729987658918620255662104704575318689430495108117640164419364016487500485248619756734892866018979525451859142291604509319803468275630500909425962661318084052364993767211920413320287974330947709415576474201925942317823578798302994201087335981202100648230357866340640624494610703787328951502906876166709619737324686410541047086924731440213276104279990379466047751958746446381632274724807849219507938628042236546520829959647994303557155881597865772379125546174236155435829039172543911173452772243825461036723873003081196662827209522905583722950064941754580192337453176045539607222140357170720958087352947591136810242124883769572305951134410677314826121261627972074140753930465373182786868601872804306471416718802779066328368637846042728271890130028322741186102571455724879123481085732852807089910405499485074979440886204982974203992756746160492583193362060671338474159842322651063645660309216354560025991390122848165168938351644992135873379950383074341494017235829553273459360495219413954009593665410571276850582972622038437908930120129704578065553105486132273093334263802620882516733699537239855152013319013012238543251388638276673274324182726768535949914120180433589045794963120716354933147957145247907280928179191198287597059256558191406044593623005686958139164427812152001320259770248573507539911872146088283135952719202325984452537792764983366561047236386696029333092093392364413247417836718610401165502216192733553128380493817100613921063620020444439703736492685888600301887926976367269405353418596243624839100642521452946238171958759620981104240887692500535501011362066264196932901957242008016408371104830853359950995310280729219789412265640400328851274744295153178094801484096280217309628399358232605005775269000987321351690564409756393683712925615456847554225795172725924403862807713088296065664020982067773377151520210851918337354770201368546583052047527372516745562512007963118525615016670082974112569921621318859204653999830003859175695040738712166190877902989102310298142711154835388408733607394053419187160136322555886313411224298557290446514651573089086585723859754538325626432182477207507815590526513441026482346834571442220633946874445400741341571351803766264369114245197345417309678912478569018219425757609957642096462847648412231544351959850162081111169028083769530141785176465411499922512480114024266299399943624178347777369560544975544449974881276716932141874162169096930373921977451714681239784933305764779064752302592404460781410790044722919357220870542013116575263154207035499851932103123712591861842746472041088871161094472430056725182290667790116903501117263287016099578698064166238501035726004113647585312005903060787552938370475962216890551313027067183235156271262602192463422207999290275870200735982902895489575563212805791245452656964463425208482594987433428958059735719824822416449758268853236232852887463780461237384468357446912666466796677377143791440055879455883180152848945929907487510479639461312763881017116850280615649063240011515578450236571588233093738967944052772101413065555958802162063947615384344671538193707674881652498079721308720444133310184270355314156145565563568825000889671322397559754842969702691452955433037691752604096198449906765537419530663757116889310489853029042904278260254698727123606581019116100419039527691623917707091310551396999367290121434533515898934569820977112000193773329050358589115306121719024333905989524979666749341701797416733742536898078294205487468449078383920493654356797943917252328710842223333139143503117225008162350766319580105719099537447773956278387231272252449041809735181157479747899601066466475279418531353254048650035193734541670572159832463181093219680324561267222154699399859747853892487565988548598814139933170034839690693343615518083808483615474765440005484533099378829573315629146124621743458714808158223780530670139249139118070133186151897276111150440228995782521568856442958496024266820968228727346683182423189497004126617592015490717314332164615709428263804273105514745556005716318834063450709262748680641946316224626013462415956564925851028375824556962370453005376246363616218738115232376009121073459830853278351965830545149858608389762158849607252656505891970241553864469081058209578099379610753263974818984691366426551068069505561736084666596391244408411030867759438655782062896304745716771347265171267045711115367598362304018079113644903993731963741680471884598488580503026965113469419621866633371483159020957077564577638230450609383263457205521660857423602076466895052448443251194137281089867460803497835499192892016349814255775969552483400649758759451840807594350932707938716222458253102561350473040428088389271096280115190384677938155815110908135427286558536389063635436716948160457941156879071191250480573241329126118987824678624083158468626571120281991665584489980132855319897686152661159042896714320340237462991192884660309649634528770713736389013367623899271973899363392450452774256396653918717998825594567664253592152704167611022310101270707580964068710958237078438311698699337907703401917521784935881737229608704259259693974449033471999243212337903293586296640507281569540261194222231018598236606693577634076267973755430913021002881894995374201899275152921498272981907439456405747592981916975284989487121062580611530919425000845046250028895783655158319354960971048564936709039806821388075323607986361396270360531796768154311512281142085767200600747539008025431496182254790283391950999139251899462814292148663423008067096429485984015341198624634505961572871233652803210803839609449573351863347636675707156100096127528738175947659087496093890807173528629872272885693698319232826483171980325661640525163394906444535988605709178395183964079417564451941738005448206551804265668383276337119948236585070273407287895838142315915159443690758011429452781234994862544272511183237775912054707215120188349863853078446940344564493780873160585003231109874810352120436090220999434017629262363676053866882671506729693646295027216949824026151098270314528322151677295547070551592017258640353012614308798772227337489554561213068022009352424269416794423209707574057230840867557584990181888358351576667593114677754243416455929689099772437167035621766176538565334508448092850634581138335462967284935633687893961243762668953900299628906009378382475712425060255163514068832373293096883460737096709321564326892270276610527369993963045351287648572835550443236369074161300117941141870845679214203354322089241965104776993981401221095009270339315486147308624020985505558129412229157100524088159397521568849848930050127657508204099031474594983474496515902005526118204017361323032780218331319920881775282035857784028008306614219399498173951215924234374847157448661332785187820076853512858226150081428395123311109298607548753005097304779878757572105485197740988659685407860990979791054247621004065401746053637284331673888335592876194378126676367769230191926730462262585798795365472976623318943988623748989075503975080088184116635210179174692116648671444830314284677104482970417210521999153540174361379041596056245553536381350994210633548747169396328053796121434649352232198671842902735586390805441448117320385239090941461940651324423080770946595784605495678199175096655491532348802329891132882799905389330970037614631101132667346936732541037342178284410621106940490055729883617115218901987083994166182962882110405400532760575444878809487975006632328576763543974132666771491469149668981514711734732175244133211949085760644858596100192985561011531649065288480081549827584608884409033408286396898952466927973866683780538774764849165169970534211377427676500323318463571144136891814125690828657982246433053493158518420127285954009497878536095840986762277259158834935818337878252940084130599378392893384754622699259644943619231553939094772733624017434696060840175132298032813175771994152368776803484344012475522122847653936253527950033322307819967582371860818058068565782804989579511379511796948526697909610888095884125297599422541205435208397157062505695369730312694619735301801320155344311889858513089923874407756244846771643564725191504904112868314828729469420527878951835846977020638568686435874376338150338527378398325587302546617569996242780458956013566413366872888478524511546061793892905417933871969770184911777768992425148015934650656329181037590494170504009645521379311902527030962021604963600941483889713863696169445479126474974638360467123819386327601786086833143825878132524434505963101268220484051167120394293055461186445341626035208003197996637793555847589763956126218514483026860880557554909756664078507526805834072389326519931793546597168116700425736475197801723222088338677284830746779868014972663888328686095181216038753458961780403317796127605863742635431171088642052574841045726948807925625440766681412818565269320440990697229704956981277495404574469243215412546465118804327963090402780010944068871880060211001085480044174692883401192271113772361680354521349430234230875877782668884727852762688966412291424706236520654581371224684692522139837152317105442459615864921442697865678301606911108379982606226008417130643603132158125243865264162164337507823662629561275651795435708346468026005940891235505836102926695756584378412893516138149869841842335806936493316775186410535637145887974427016030484899099733432078636709958625997375278729392671973457259932839504418353496873601175766114214729962377403815923849391937657284781149196966761929462491914417553188033223090106842953199535006454428654880512390701948333700745215521251600476273340552179619969191110001245467959831765970467591421345185843235051781342398665665139626922781201510099429214685386834723537459258141338638883987039363298887582853235855596013138171815218514545029184138699913036803414172497204039196559087750061876688662061895084591679633289124535776817458525816539673369289310917130879106725814497157189998501483532628482748874795960966560978587111295800468559961255290038133323995533063750592237048371453584010782934344283108671134439380273217114206350945661927771293106933931794587271257415603359754125839826505121328122144326513070191369313040170246627103664760772996730534299504444421833534411797111272747281554307306459877361986362500268523282093242407960716890256836312603154716337008887381425717412401933152447764122725836366336094240383567808035407233869992929907714637627272302329305967390693188363964562657359929269310986529915124318452190701007510170338090546351239796979830315897791866932750324489456101913894698007371794821896157906972712142973798216506040136599345112663914162462639638839833237196826139254963750549278533904367840876488032333595771648973719638517756384698520107449979935650258387799504819761957200554300572752293135108318077088555850369896958637169317607897898797794913688811008436384623687362785043670682406612686187562038030987100663909282593918946387431406287592957239218400642086048443615699266588276279859880823375404510092823655830428494212523486974621138912012625557274229815660631699119148703372274004156987081464680020562221119867324448289418718228138249356665136832052291809053545977222605308992086404176133234436986728830910381182962064352729002757413781839109877877918429499579142856154869233400680660775558395599325377124220779729038761964429660134719608092083105696723911999553051926082811667487942678992910727047349596727255924210258924678917163937055860962854355402372919504103777686676748554495934536785427224138150275456127635427276831891589773559923629799169376088993268616866285901600338277041538938453040638679222068332962822951849919735646156986109381267505545408704600887535667267207400010469952799145224626468541891345946353730803079918538007351513071137946398949854201135164731903414133708277620261752247040592823067415432387196899905675659416200651194203619150118190980195233936175667554150337899312761541810240592702258763013949021520338221258558879621581617770590244029928149495174192731420063774832399252905753598403860222739940251001402926187594848967952325474716745831899010460165313252480595415551194017477159235054864861159269818761831088548406455516023144133018058272917210528393365963966095852214197118882796871593379102129050769488439318152136487027737901524449094231399913469941146172512896841497741674657215230405177245262855656115449770743952455066522505928108379684318982675765312413410461904518785283047673232497994997453380854361551862331288080127097703349267079950849787929521870007619761073248734093976968820746559254990153045034787845794654492205338690890129472394463762674552315318771908221904805986661509664278623534278068845233129539315914005604899787745964648281710746693407538521687720650999573706205356091704419897754389342187874607986852211850110231013474989055368127798905447874310836528774213574597686000323040701253418748250688683431737231130466329901786116001474947805604062196183152683798466477113543214164119603329456481793575092073921540680925093645434481348897933761666704260769659589373848550007164295768810725910373950594454529098949168455263999460917316619102189336640165898567123611861202031571851548366330599203638576651124901944100089594895057827333434809885277561777978226631413165550605961811569480257687864986622835992492084977648694562078849102448682878655423417251049379254225097203784767368236149232125705007630335076155447322693313234684426350960985759445444975228640090621787004634748490175402181430443219273782218954467316648330407832648910981512685061541655133659270142780505329101080732307614723626303881245062679989940412815264574567776406266370937803597537510032790691416440529260515032821471483689560969070839512717858374132666311951720884001781275737819396991535346281017330985726934866688793862917107697456126822457366960932761719119847318126269839286824114106582233611655707245349044095045398818990270181723325470009106836842157429630570977269036962548701748365801567145226299911096813697473536967674517167130060891455236550224308711177890245656343271247362395975915778095122681933527815045008589390772122873676645550248102043827783789691358457392905983912758357038152438831386630774425095594477813637136985141438228220260179098160018079268630512675750067132441900661146004680718438346889327404890959536633777310013098889379758905860091391225012953596637180129764253578913016415049725854614158888854382630202746655047249763716216528554141709237380828578166588726470307767684044801581515605085044793244216646371338621019811862940659555328962474873991293990081499959563269793386847309499940055868968446301079171187199308900968839218940203130885003166023922056274018355317573676804894530392533690987587064741179733105386082011544738546280598360499392802873540376970221685378515462277673685537015235643041264639706701689812952250369355603854579589307542578740760276676479821529855618731322900153253939993756848367198585187220185432912106669215425251732313351527868182042031440374407193208298259564189421252412955315788604285993657075215143043654544315630401256296625183128082508000127554970105404676239159848351851224182640224293818532338980194674831385260154771070590272391587926535441346000462671170718042363591567263542684207203019444603314450296327531693101229413742363572736064969513301493889428275477479343397141751253009849672625581022627103794612991618043006255472661392160474253202340765252350883929681508360473381124818279553982349785445425505887150838899329148502518838370744589726661650323459845396416665401960435981610984370091646973157228929972258656220854067732465819822216860295063803276439503332783124078248445932181994611645548850087030223760091777151881377856813027157270552634980417016228091028155142404269470803518341211994112689077030307982600851534236514992182970071520646998329723549974115954727909506912417975412119399997961261210394882836579677991992091980876388611023368907304789443472932878586283181090488216197446937892619333844690446148803253286453823385422717620186110109911653605033372483664381071378114021378710297999517750848757086391710112670572461802062957895923421903154411389351808852691893973702320793455893668493467420757383804089088127935985475725305980986116694450955105840228347713530250298651355875793424757571866623849067174146426169522826443503113474031432616440736343438427452717147888739393658763659909997140843895632291494485652662444518229766192269072473031866393802776615414424292434910177410141137450395271643187080800280334249686188088185562019123233888446080498770501557579271656599608953290865111806289588105746277833185893568876811072974483247046643539066374066471402069911218628528222654144796435916108318522556627662284988741055039992753077780320822521977694942331394886406116643780902316422040817333101182412571842864835005974630794819429864869464999842806327953854848694935710172899732939745648628935512517574999400038024129305184611169230383445021552347006204977084930587328517316702547651069317519790369575777129053647457747163275355945394942565165011357233805442043735981463608700614089121241929191021273294045794538152584745203579102539615513936946295024607928397588773960530218177107321389623402655864845278064438782797197413233183358740138219130207660198446017051787666282853531142283264758326725600003340038131923913828007665274569172421766720460389989402460520189734945204341984207072656704435249599456435667130256311458304653983226425546587007040754513670428953696862440091634719929626613313094629200707976712289755531865909246095783504057178447679262429686920266789605121832967571569596303565596521869462410102286495440097802291787734017933971436387823112600779470128325881462116856810714818827000055557683272810965496888677134007538577718526773986094427270729571631575896664675634052806684764365994835275543406679145606263424685367468202286577121952913758912008341460255576837534828830247844841358588260354745829011292277528303631518696235926748890003065597341142407291555423535781997049598265472026332974932567527089020357835181360403322213860349999705982549943991686917138061368080085498649902194072972920841660153438926041510287221728294384492944639929404472104551994516997536176990622392103418581658257965953798469948290047808367083655437442465370803463134139478469955284627797710560095946195771945275941860866391264469586146805266284266871713656081723766197129579503367258744292616146419712694499764050508761143008930055155394116023560118425986521379966967925676749741182473876457923132328647713040424766848887505055069387441569914146767346016440296465690542189459177892997955124801522918383849922902582285243249517719981577332186997896698886771148063747517331271236669222584025862711356971184887816252361235518556332912689325932608265382057279692036496826412078890678857523527003093518819316978338022890025486774778462442837119453948596290838155819252515562532054322380824345313656003327812892973147772405947505766358764500695688711155971761776563189612958203834769791490288418975416334610866624754989411253124840606063631768139040546187693818686616021466932840783782400305308834892235346908336915072709801474890637993781896411719444397289832200740107573910761878909048244405479200541030713182591743554149882067429686393267877525759515867580552042545607031578620548695053764357262886040752031155585863877699436452698968957009997769256860701208906790337917313625535594050370526092634547543693801565704699635931002825850437665903560669452729283792204996846484077346247773004120034705732484321649331907862016229592592547052521382928091533999960694712935991585198236799953935138942487488763952283224087210964109866890918343635427640304130426831374236534415041394092940320838453085760205832440394127678616934219984903925294529789563760066818865688981110147835342134002659256247312163799577159187475371864503149029327889527586921852026203769346416052127531911314263185896842962787573871813292007531222523044103225663387863958961651668385149617486158596599665511683014345020232314374725690796273696061657968695115436110409923503376539120304468967594751906674049459392237872035550628393631922666125449459955165332671480725664455489490963059673129976081141380146267504766049579373626638090921321578894270400226535778746079258189201735073073470457716711118197924137442047726947386974009065534333160186433748004248365853562879003534973459631985209555453522089412132196270831066427150231236213752053880140641897622315262021044343601288015925529043252210073412350081203064659458786212448421598625826698704837107107784962540041826313231021788248979456742040873854287103874590070495567796076869552332305363518274335910209142607184914859648984179634521441338585571973574566226213117117102716600250149214968260256779751064222882661015981803820859402240348549011108267507866255618120873800760144648084498433205983716275960255331391391559667177382719748064780918621070117813711772389693607499296720227918218063901270355773855105095000791974698950917072776420746858156758925828389892734906562954718865746640856629719863161236866603637824277630367575079269681298270870255254347224554776418237727958492579699805023160665038101303135287436613702398964646036437978863435039144043581853814928218619316965841843475448455276789991901941651153960295731171884032035680350704218120908137459852530745938312704102440606236873392458078386266319853395931309136162513102095460665472862513160153405116058321803443228964572322133175378804402568164776177503381492055482894513890538259747215281163770608255068101251856376106764435209130924437762729508641768425241569003681020424960174404308831255883835495864815020982743916791246440585908777781750426343273498382156782795721569085685211619436528929652194461254279042125479152698883389284027975790552324521402860718243173259342062782441922220561406628007482163623017371304034106477743889524774273686923166888588306095993476868734252340750276270653396196726620970355312865163510206940071498641317755027773301948414126654460456587415286527429413061391512984033388628265022606792269672594311570252420047899115669517002092102037381866388623043704987763628716270184882594198070193012262723738002536806118914971583160666947857612581898032867523454981896862776270253893990674458505885080564824089620488876121477780997944127822462264370661030964508720174443127648327851129162738230594025344017647050422339968274648950472882696669333461992030725887435754475876077263852492319313094906204300650346653680058842340019894102069223731988004915145005049629448264203328977619131080042302628349140444639175420148914929730831227129642155418456495908353656285990353339776814832155709131204472265118113896033164761388578527727830888812129361250975187488549536288160210515162710565437313227139034784715994891286855927275063027764105003868621599852418793335980541909394157165942131264496311354555603870546408200849880357686290899380487194697449326821004929165182827112611002437984441159930644616431529378087074617740301028804952850980454441608911825192016551858614965736006130901272880219121578793915254898068898534393413701874328826836623286412868093535630508242179136588296858960600951450707844997191077752056810235561352353701437027183445497017422594765717344090079473857483670275787127321229592505080474111106198138011320499113447458569532203258566115622282215958372535017187772603572275340727983944231375411760781139816931642312406174839555390083881473477245803561029148789309186600987692382898599275482090203155880285856188456728792579771201017797440719058641398046416148454237475509926828510886719700607440329046148970572339384178992648971709158866572856923886321725070396659840181018731440386262783819130950277366009659178305445575029360001976945429944131195457103741022402233549361717715768313491680637518846320041389201600541890393930122621255082351172956447829418038153488532444685826120322536032021338856375983025609359296383582667135258287651169499662462767085166043674622746891442879439046814018670680463356072896872963760427651128476566167969415366993087719209973327881474685044196361400787454862480497625734481420535184074799000164368197655626563464640219075606265590919804783273624580233917410633870553585387463392578757240087203139193772169014558313653566599920042294328657114405939778580619612721935316978786748989715439689132398861905664436699659316246791558519868397486200942362185325337372009347439804453272819283393169166222710311410723826100099339269822650922510020204455487132379489974825461941245473942862748968041215129978994797344208922325477181695821944719513254034962315237882209256277033715954360518241632809235075584885132582037602702493710398305610620826564959006074230105966593122456797122228511967511335359527616008196720572938655740156321145277541434096245134084702344472219741225307776665439923249526831987060741986969613037283683595736080902970727593877390264215734747961667074808823357422575673822374968375588940524123474042185604991621907818788999623056179712127719493495578740348347372603931239639729379843952412497941765586179262787714853047326897607532026939257352332662688454217707119228874884287644372609313835681743171061315991490556248619263190457012704561906738558075286976197670181327045706330353263000179785936528069863041401682437630249509809433404363300229449106231096836613084971707486163372499226286668173887463421320157281558971000872059129206373637182191638286041215000238801579659315395987374817592010038946676800669149305008966328314521649320255102980406920325608145389037457886332783066481532359015298476591855125763081361805178019600985910130449817976949978861049966916845562057751128907139194144795888299198430434254247285379754672620846750645422876262528204277195756137711107898184582630064853502893718537872566753555407229220562502368361789965989539866413511993986083481169909504849204384597539162232217599540156269151732515792897733657441836937598739552888136723510950645925826362160643237423421221839329717947217802701528496846683671489507795760587709016425442641694605998821684552858948903456985856036955001709861297763784118130033406874894633323634998436433697004717461538960127945219199626434637769758892483881981298081896549193875075585604881183916026538375580510512138888320926715335087046871824279551431948877162948339669539759180674270145587265015710046566013461951793443789360622274865700520178702458358655749878716861784367388443783436940008104716571138068182807107841481414036585273670398785876866409859728427475854227755010323616889420967788365471157389762827205208154453294346296841843742700593641333884856541341496660937258643533759723945081665435539266340235300672571048141203141249673941882923745769894704227882984864727934064962094857002743910797083519079931848093269705075193370696482506901005925056048167276477622903567706873690485172127904300953063742324208811764164241827317896876977773562193163629562640914475625207447187618650881184075855268448753787032271855030522403107877491835363575874439863728044673163748562335208613618017958233066033983052745082651876228625140536464053670289410888418970304619285555108896546229656568612725605206663211569848253232746132033089786246580321168081944020160963388422382982621447045386501814092805003328363540625537856881524010546149275381147593318827266793570796786133597935401684631886376517809744310977257919572064969196265439965761814226214616617620927236132787069799086830556375735239002918574486461988939192405678329329449137061347350872574710800129119070962248887260331027607750776893938591141394266499081533818661197437320144934939738178889861159056182647749351630841245754857946375526579596153608094823639125432755625521277402821897511461360409604978980271590997271443622199746100957301996954915143764317038104991692410762680248831675972412547151497185568709533824792222489493026301533615552398643983537603889102851950977447409374599416342236886423770844438497002841059890414430570870630372985493392576924688952173428536950100744825723180837769629312831229415208317730138653847324750787891392094383978970207677396707368948463877862984631570956717939132551669334826623953089398762938986354872508433916576179434202268524878997467103144821670702190878271853136888886657826535190811131034663251370400916853307832689605240999920749746620815008775529882740113180476270087838125611504704368710935762623395811754545721313178707925924961487180563457713183478194332591002921493213837876941293506384232403501948853303450377177390830794109434046296756434231770553502720650764459410138211374603648784917438488154856686984719484179561853339960190760470291193114949765412497249226037510225420207169191806913410352045966392110328985113652258450884355072426101447538045047099248952321764355059102225022920219312509459276259909939629711309609231039194407547795372050341799925202117325643488921834252353536475662636628388338568245820604158533500159356752686064139696704520804372093455272934174842840499967245294613527792343577783333482158701413047250906450829758134257096778848580320313282924204957385661985220179372541881750314577284889617545168453438333683883925148863121552691186949931294024443603971180063919423451957675387159672615237922004302561093278728950591759999074370723360745152063156358096073897353732348305263547825205673750918229573224281380004071479984545063115770426260820338533499198988640479010854379830017040483838140085838522042410316300227098075327668577704903777029357149889251782403983839359640354538294852766398534013430010905208111047196193799760834243266139200477688474144131106014169865553319022368291820689139340681672251751931010203976054819756504374945482931134928507795116843271095874485925728474227946445963397274691864992075011887553391080939769616540693787172792467878032403405097759692122509804418481913894453225591194465067934802216725845669946571937409252669461793833391250227237773135545897355768812136419836991291463148962256084736278498191538862304510842031121745541884035663257370210339737002885239189866285944699390897616699903746208210144887428642089358165920981729099191741131321067393324103149924491385075060113934618287655409807609678851468967134963470577291349243446037677682365071425760128418593407866994526647559724439162333116752132061344268902113932017373278505929965849455972744128282939435225024188632263734064019032059027278546928627334888019296749064912694299325053384155473705686143361407330130189648253693619950476347881175166159498851439711662625166650096078297450052029036236205592193489701279755730706364850307882695813715640647651948308020132281198690248263054834855614899533876293486199094497222941990043954239255614541881683569619998910508397454889067561209809306514632133297949489809086407933675864274482987639319117807791005176155925227017560398595020601477416920001092791110137048440466758590547461269143593839974059761972549609802857991998799166931925590630519175798371528938916234559603655805574763320009386116612051685466233768319562669642614475992224067922187033690228340477074147560645541440415099380325252945219332225958532340677807049938490053947188983076274034035345775263420209158411247606961005224636738941194053321356211022671403470176976931784851487990991720407740413450517371657401782478844605768802682180684020737308039333925748528778446288702394165223110908316155573285882304706915946116784908309302745906867285026165867423934726381928957928412196155598286761332431944654463637055720473014635280485755471234446981158617819700269866525054934223509675682681515131356812514461225070506390605747668628219152690437360990987241001531588530846764016233954069644534088408582607296860061458199703022893290374407537652714882491808783963023352685675176461990609782593160885470945585755763466029985323595929264401338953277908339454404255892268448144166293992689358174648812247960764881133709435595587264660124674366913543275863557192894366161081155412297935220520432637460451730708274314800900866465755706916528501691038046763658146296680042366864435304285433932648312179119448631355964841873386743348210244811303089815356637879752244098496847735707983862910725623421641847797612048278121674174375620467606790408845627294216335101900137711225590838225027651878126623893380666204915588801422261515369517654941117149467666102090663416753304484527241065689245087252302028943278688357831118459808340889986479913780809658935360667885181928425604734326976112041755563635474157281087266718935352498032676606481692855319286126352970020149270601302612227613275207067578692573155044000502040778826477821392764092889503436709098996809038168425729048390060959879840946242799416260787441723255175825548743101589242734213382191195076825753586181593471335474892346659525137959518318269245422177512244956334013915215578163993278986762459734140103388330147632498377070077241945291197756064947032998110081372067769361638550052856821565210764132744665919983415117814508705809210292217287262560269719118994747657424527575924767359793965144820859699931765339144392552609557618629080112269009763699339826466255216058540033575891147322107045319707152653688799695301045295579786665846215540696090657439800512057809086817563068074628223796968225844960354278163585429917967055624780201520935033833441509545910051155513156565874231567464066334741654411657334876141031563832711155625321403763781408985356661395836113940689806842412979667512782424291120279273872309756128380688587880442787696385159959541431260900281732724555107331162327582621222135039868191423904533762995223581937791046677302646364397600829254080482034985093142652334010972799596009838762831681923302812378851860880361691719040489990497840074334781879277371579101380861646919120869704572108981926609552519680234501452714112549432546589470207798673768369824577135892469412496300885617255057266420691200296729483602851530614736784073218872443895376953739273153071613433893868722108020462830971348658884134151929338969344354701588082617956715931689913840740068849582022632633535898068273392983403700679026145191157848209727840169117915080131694177775875477146123552769937623277825446450101151710475318947186867980280545365054504227559116925065318240773489948517892094663044535612428019079105298000575401136755100037529031062131911572739985290544319437728979950379577027515031770790800629000423607460536479420069655241886271789816945108959193890942697757729940546286157358688316776726584200706193666018265124254131436936863647502307229462179793063475071986944348529277858812130517176189596030465121131963765405601437347395945640303487647183703987287472624640918416091678031286607858547424596280177920637141947977758318213438700963226890127204448072973080116142240570002071559320771971879884903362028612600789025143831068029663573630095846427734667687485830705933109095283519780069717585489761883071627352673546908970827220246438989263876495301288605998339340001663518676789316743820809762068339286617098460082312821934716923195776925204654729473325088528698260322662869589964567604497568156762574674530093489109205419894106750295453595825833500429119609133876567421831020968079326322128029199506332968325763501279215216686659853511665662626772536244109192160219969875101288442972303812446919268169638587641396634225481846571109024708972948209571878855654483008671412534188600244289947683818983176023425956893328353090658991392807314423057030346962838335098924708475930938450736531755350825279690864244806462466275846368992182070872981837850038649221684042308748951791965770699900789438999434530841700820293547019506213890564395466223910305447794713590307797665481356299619731312487334713222090077813010586108330830967113814845286904043807084617537144226962220931151303615355176801818213526620335739414125902285659648990294161107871932869638347519146164501913987282726378695124278333586514862845276638156602441819336960108882128755914816366769285764134299207698280349565323093511096461686344646609178637238156451770712740510393041264890249631363189788141362367418564794468002835432416789184307560380335974089578829360391473428059361235328299428480134334893894530513484611337417549272971902221820663163179537144451642693205770250459535887874547535529257112776216351450130728096392534938672347828694018869822731202464820100821197152584393418300785161481175327414114927568497518961444417272991792438358290550358363619361945386668393362735595953222504430256392393305605616631243486464971714649292572994642739287541455194547010000476915018113288823604019031428426413751267059476079131921854489487617435900641070954009243214543726408275261153235493346308751259210670794109148967065045446961859207409374305610240359620295706347779879136367348675295382163521179532333897903130090902857979860210815312784920052347791876706329564180538467326598479377167468343267581760781231047853726949413480982928733969221842531117790448133876300963581612156432763851436220898935319063311073591535679314677156850628853015982743783136569112007658012500701962844633981644295869684346460569273467697711282426358706641289144314858880956144554562081064970087175884709584547665143845817613633880200673104662117281007727740234541952032656595658777539236268985642515499248148718119903732177377447459408075613124647231272569705136048194072557712483928489935809851831439717733199855345373504275199847650589450101120125076339114700597139228982716938286126784376409683622193958318243237664647008054116717247859414195214192043303243866359274871857208524364736037809073968532623546000853018347943391796883965809262503339929659229652819219352074659166163981984078684330162688630279654528071047417157036237150355695709941423349811220131832326299737553947724437701282211876799306551384940508167012975907128461508685467739225881742091517964811436795520369004107568287012202525750212580692052426567781274180179143056474048507628028204844161524165483773315496627180787855732877480662450126538946928439076643709142161076428202770426297602461246118122634358460394824828662964129742362752692873477154821463451730639734584316834581264332303574858050510328949019606505295990751326400876019725836909045790990100667106046369895465424443946239241512136290153346818026438068123140321207805370606923935449867637982870157427864402853416346837472554967466881920456013114958851131124736500376448977068900448756954700404221737383177934021969078372157810446167149542926115187693510614324028526466273849835644830289497938673396179124147278540542332124671023946745584308239822089313584501657048230818121161639538261775998016469205446491147609114684897328166677945076319842446201151934814566749456470608628788584376767054789637270488063108971382640088712286319743912514089304864451618334984050646243355919110986594011413226126238169294040253983339516233926945345906974682106310150566110518253494004679988800255258441691448540599113332397436994162466700184669908478445106262960681684512687876853001027314057640071350908850704674335273427450651484097381159898391775871703270967022463072025103914158174914130878205228592264110511773060599540262827403064605253343548690799376246847705662599177615140255340482775855215728647016544592762875203914902969106324593953439604307118845989554651934265054375377091545243121824112392457276669598241083513705853446540288060696749309481343075360486839040690370403342591936238999455055970326067483470248232373325806575537718785337211028867125118901777210008878059207915123416124795848107976796721811293728913053244535550270254868549211113068420245205720176525435763007177811115850561997841966072446058790076332934518552675616863211434199845965574947075749776426997920862177208422603478595448572642380546173350285075846776324987864777418114770254114281048433963184099937707732577332742196544298713069809134231239724636049960251071450424201497401438524193778641388142522537362474149832928186105286063090060879077884165333782829832416490984763143720306936906939833912006339667845931653557908229821721255504144600616886945347281277193582211124701244569048203457222602509843085136229647313375050003668710479249984885224617207116587940440905223534690140752109551061993042390113713147518877778204423356562362455518377274495941131064864582341664740929172784023338119240288053152462925980890299986695975344372162036256114125673879357348108082610312739591796906642665354179418548192655969489034094482796801916441530089887769615189373087007657695006151282443825991674214754771642091806984534407700341134853103799132399794570918424969970392821823761951522548149857320223961404955782809965856457649286167960268130465099275641216994109581973828552747346790793109351876607086954819694482096362248769683854420128773679932263376247261522371091760427023579135613242126256363310851105791356006991613085610209545132687240145199689469336837387384349297667674392884464912784665648958095095159219933254672665083519240929893021698712314929096284064746175315423122694364677241958568656899458042311146414303033205660010478565666339242738487777269334992978575514998452269697536619930574280317823108750344915971956742796801871831917466045923353126992708728222098462052823090465441801935255172970492507774698854061486319931558187110618047967006618898730130760172519623037162917162561590924352117349044333815273581579311584776354858876311475644923148156334508803919199116186118048792004355663609594541376346881507417050758719408020607408302325405529642651702254125664918415487776791750618270763826175272435249573210428747112115631981626518762456707269684283917912140163133831334967927963201231096278352154736895418971410653895529617644658332477770436095439428445422562899351067060526760770247622313203768532818420246723987229990919831513744216388893208067213761546777114703978662791634614587935688258416147309223978625603769472200941544213553295075463472977704397321573993246129805959869651085249035679686908540795022477660154808924298316291779252847822253874790644643271188634694488383442702858656898387861393971784666569586088523663233842387628112608336895924475296892885363694617535752688505402724042073790457242080554090334934027067764801171713790614843454493019174433841654265241127886011957967318554460577343678997183312577801035773970488076147840448271068963957515669223522046876037731403898375250207047430364933518696960370816372124897113372209336598960346111959339105109173091687464047374746268813120916874478951767413612174271607497120177809087959751808571023975114305876007646588916950376813893496998807441336348427735423917720810398719227709308576848657196018181889376401956918960882363324703549832532793986380951808860186319085008566465396008797945701150762585925760198254194915221287862874045096720693882189492439055899889769493431150112946468275500203392061068699522404871525421428245012179205250988259370814781390811002988461620892585003751589511826280122657465062320994336606014603082801143694334341752362907586472594656819784737807905324060258077656669936625233923435036921437549072958185026508316215743991383091828931702915226566441666280017317235027384110676746113707035973925109290412837618307229298498239743002552762661990871512886443036139096910085489844972799375237792663859101464529893479552957222534470881231274516523865399285972937122114791513560457287615845901655065424614953231250325037010408133626048118589127282435902473596167017374949481538900222831647813827779177200146628503368529557537663751101398790759977751134609309899418839886354537341805172152237403952825778913135297394111509307410212892871252619066402738681912412035874082097648255808882063052978800339968008054807107106263948532161480353702200247468476394877008878305327328148399113058079959812264707580747037713599327145187009757310202985845225436720226218286967660445775653821005563958189275248956258313274857939341023080449287193930142148523944272101825402350680323565332425398310388770658192470454950132234298622633909122545174543739404636138045537318191605203403449348181255128722893614367733400829676441832124849852446223405210098928892289777497845455396874385165298444723275168424473999299947505645744100162285117288484102330320524168430953099237356982627907595870940070113425084493032189152018356156554044260317982414997308512191011188812898917818943133858042454133745242710142795022221979473667991418679461659455590288063434615120906769155266811512730568812809111344307340188802617052437615190572432274232789816981564071844799312533026877139617872913965279625576529356880263636307992766901812114640467157891480310455400266732186628272526710583601381630148625152326410111311582830919627724431564515130687774589383742892210221525462177021170674419980104997731535627193889581935916432417096421980262377037218503885215672956875618957756574540157708791165629350774718978575193621768586863780463512521743321578247310447959271375318119227577944918650562157409960121031310999401582234918090597194950138721133027419333342161808151036495128591089295616146464332156026384291452666632498072199328865008483129276435889888505365067255797470771671080550746766384467631382453949785063164327384860617018794507894258382131900387795799916506901714217776857309774112324136954735906162294065494154562417794383760898731183425836725666670614098192837946045689268386643755544117917829767747263630420723316623803272945410675648714889235835939762702487840509913141855545114123414728315794500342070974882043272426388269781010004826351932993112821698703181294629804664981909731636931423967800741733282760193132643172477119635727746413486779916713938078900863231248221741481795534383219545626693360533469666971187330677122381225696736386104230407158935188123705306166538857497381449007721016945781468139788891607784230635385137151345359552702800811552650168214211108635772289143364625898193218462982972497396150726792661721307065282320704526820253254575192735895299825910096929858900931100347398688318490637744700035036155953520242040925986458155681050852182573284453953963772780276269467501094529444890583678606382786062487951448987241213046230479480357367501216152228978619826126911106802521335849341275550561924493414759296474853433722356489391580741302711050231414110421799967435939603385681111999876644844939849950395603980855571507728692201130514597132522104095771964530884854237727927761218981399286949247077666459569358733956841865964738055686374822903304533928849191247271756975112772265542329396643426426043597854730850040679209530814136302853082825453927025215440649809125438513967932621745702567746533131073504958500238515211896399046092888192393071108182217859540222844726736110125564862548237902700663057876899068605148180740518644105408838905236408583575859051815447029295085291065750356206383249275433411241389481320130283715156000635248203432920590921749729820597132881049050201983876459521239066534338705974877786433288454061313677261578851850410909940440740712581500782499283618356022904307197741918523655421430269611037370701035948606213050319766231807764672904585384367521946857350528938014128043586408629719142086751815908501060545046741642663637262038452092341025130031447036540381916003177247466890803920049907609609233166920004217901937196415711502959990484400365873693609290522808546457954212523481103421215221851647628923215412021441355868771486236037663900819149084389110431547636544056733635300422745733517958386354256772610406337368085172582313467043446045627999680713634392277353830876663681362147885718787695000379884165494728290753448735730837858892204501838862678091843342531318773913119933261278272978012837285013881996018904159325882204995646295602726203921137236504569703966696034375259015472354312786950345768123357051748137420641921823006773248005184117472954726663758857968443179137396713751067339919341149132972614106091751015725072833090409158289489522122541648340248675153590940827181172142693301585711223190130824166737383298674357341253993219954244134907142867622683214653685637719621517896223854496924603056254585758041062389996645803406781829190893035795335727102363988077104199830533673550402163994709548531976301728416998631163175312146107627575297328536575993528586049316014689743440813931073040230768112219949572131755190252909653704793908505233654842423134079073119049851941555915353711505527376396427550432761731523209463198094107744713902308002813253009589601240391375210224433767700734004063000795644465624114561314582859630645317221539273250735177625627455604814409652522358171056039622318931201512189638277520031744663124727886233164843892904667460158832997466261004519767826295213732521068622019284279159522819958672801222333997894148698387237680513080585772142143690313106811133376617005428199580724792573215730889731953180966239744328047969483696043706073041183987213141556497861463396654414131072745656902508220224358297946633424581241623205013138463705198202755100352816087551748100663200156584256302339360868088022405938600122819855915084579625922444488442459835022621384034538813927376226047417027083252478540628576167005698220491306103667094340249666462739468955858914348947933139122272280840065480180252441359417037688576569630437993318620206702890010387271711284025642332141746496328548847715996303115322716778397897779411818665487623604074339740996333620118883335374379152797549206117249073114141101893461900813004593564268240280786589798537476269258109277453624421412957028297959313385114535679958317670955890799096966034143103162036365803998562022150201053377557622607933476277307339554891758643833003698181736739163256276514836398956037302316025594958813825988235756800051512940596829649618461777904993905164321021345130910549195176188462788680345732754538452774107954241850357588796645187142737884087372024721971107179098436273788801633268002256182311729231170702644386649812823454541844878585849533723208088025182640226228417584490159983832162075548307610604959377154540943893814848689846419519285779569606965613767065588153246102133480566614203642766257376499176308378404919577701514889137082151847535107179312450131743196009777866169343313385363134995521981812287546093007121365550680758620889925045191894494093499142548525663419946715430245445714466940893062709118235066759687952970844438259832967525114920568215164068529976934249143317339552077855466420676361372860583730072452138212644099362182248936727881231787022821734613712364130940181317968823766487721298794169179071298848449795730219615796691717808819011304844429134637139850630425651115833858905736848588632765097080038202731673405132024999167582060409160932396708152083087313771315552278473334577790512770718242717502778476913281500451881906947804564249504959522321341749907906840748493675274247834679069659367399637161657582324944332439604618333537793448036129731208981386518620456679403126111010412682559339616457795322737644129076919486652008497171021124927852438730083675170923336523599382497846264275215124688980821067719620864671905233744512303961117412203979281503650529220175408043405171167053003127465085265314184266090507171632471989881610469916018378451353310437701687551641288181850748636746791590976629755021143547226865839820106566501616856210731195239717033233930035239275054444095445753588045965862155869574481299498231446234099355431796518793803954001533488301467239239340434201843330881339209758191085510732386072695717881117162479201915528209411627798672783541245073860177367963803234221808155736596366120273520890522195607710394760281533248911531856350337056047177817021710434065817101668756049117040538571751524050145139439282116120730116030499777180200789551272491059073288517327106162703846701211493400891640429836027348853310804477347353369056984952715806196033649765324275383819685054041031041931027953584240616872787062112584083982385322761802334464168330762580366538880280881607253466827109832690338879120309322280047502056923211277241353466369222665586549611622683060749158822951309830743119320367184461115741062906570532487275494448052386287425690693512397390076989588611680613513881187102870314442351561294645975701927838856936491592978446145999833913836260401631580809112364138231201585049195262715265564708098098042013558871246447810765113689820882481744662008270744621566575531906210450747545396127214633988331334738398731419606468492312300222340874454259208024687839097548573351855448325064029291564328917915903947572636865659442511108322866098159918425564377152416452622346095942289033072517944197796583643308329894597107287228378410214517821506201147188916423227139792682257639946499335539817080949643505739569076607406443092978252877462985450370222207193672547952695137365209476549649790112279250166043792970202146655893582018096202670956433070051464222375723844796874398167457716171134345705919450086573708505354843190018665352636205342411506291573443178666385414655041068562358928497039752370747058751886296683649654314003207120996595329212208067368561012064335098071727189344935215304698977863806891995366201951840970604836961905908359455953302886435040640384322784565975373803690934969233723100132610256978971845005471190864322026495028597744441924206749714532050392143908007858279927360945569061711609727413240508022679317863987053437241936088801786610874091008608587989914838322964398568892213208990455279441956904591606720231332584534543757236852224266093907360103662776950005476516568427781820815445123429479391106608977768784004849766565061051808450790859560270557011530058170742489993852903404342980350518891190558874379725149082062489594813974094238299944455593548448744694576891379027073939481577177491507685255610866285084227075173557739940348196234255573296944988736530065295266811155049097244429686566965052843048841469300447913022743396339771964221178574045658270059294430151880398938104930340492675689450704822236515999624605190881999001122234641092698477919870296029672707872376912451010291838296907251942944702732931549983279353422623408876268545469291455638010375063369446598075263913526094272438750820550786895776767074192313812992359038779120746247985040888201512112211079252477938531362675450430100447915319072837572328089151648364969484023496231982711842747473354463733212385238041286998807475887183007003056639230730574654897821116114470860306142656171822738778489993320197792834689768896768039581202289798926408916178359841542477169251167267566397292594072249090820939009939327406498143854755513456696197934234629184188310975324222533665376209934538109471520573947285296822269634220322642482753724215347041408104342471499630616772488746523436004545497624874556580070529706649710227239240104703297237911048430323844619193698221702682929013469386089647062189913453949449293434978783820134114389861824572390935364028185910066835588771868846887654911128543142987883131470633551219223146637662317139020790990448069663904822398868612363714865573071515945745071747848728116333046578255594571689962112155368680572268733412406341764938103757500684038964469617204162507229373295701415622749729607737430267627198880557336071369622952054859032188611817832638571747690558569546707133633986967356778172983147022710616665445371543390349022902049934542065464547118514390159108286486645605286107477517885299057060604711013678684989968065173979431195186686594824004242652161427881105813234494059917368294336782594157139872830024004060706319033806823602156102096907263890703654904032360236319034701865184486087043382539825596102932287600693821348801375885450328675220967947311361661872237558722634310198473149840954035876104166467165259827116306385002753232136257663840883198842344002789289750486971679933987301766522156821844216497825204000552487302312010954836152918720920693031326491815786718166342039624235735255913470198244050944804729239485272952501823594382198142731164621750791896144761948183782321087028945858715907712083236696744063413452670197074059477719540209921002283179061513644819271814474911269919158405877341790260782343827030620499120632728423188270262378150097357103638471353174170779862826573335104558510974003195196316097546723412853403369868085888574173982805446425403719338797994120676040364375157539573562824516490931407102695771986773755146472939777157992987742848629228089505168086409898790969291863034413384041704591107645249417462484973839160719724525233036448066925883006970418005990867324273661024813977785178764504827071639607173412948539891522128085899340572144112893544312351599718871592617756565394831165423650272595792496840699915877716233161711155816669264471073625180560200342076172927626203439045617295227659560694268879603244232981699918803148601364592667929366830944542957769639602876641105650606439148713506382203944077594807719834999030062291456321120036406123403509835082198326941979698892840025889944688054764754348972555313449620226872082901016030144251549153681697830747340820578090958091016849113206713859437405493620810565660430424298305536658552268643287362107990437776348127105208327556448010997399327548813652985896565235916755353185672585212778838260332011240346645558462891780007540248497054383235859065773880248285769250854839369657057783842635411406481349503324394131848671227916859387897689795901666471171862101693244512444315618982967520649721693052098700757645939516185479703947273655538494272948724928893086545148182306520393459661201359178938702833010884651659878631250765029865878582015461741517915622298497546666770166269236949484300245878407805457817292600885773219684963224977864690956400016394447768620461015719777970157924096423962580678422643763482524885051166818155191888604084495233463822501692680640556793143379378866729476138610532248431043566721744690155327517702190299324205492390757468563148616285876165187462315275527310373744969774343917311050377980531391236269815675587692525687986516469952486695668982621480754862273802475922025858390094455259920422360806314268645703282942103305504657497406114804114142260920335540232791643566905638927741691449319000997291322758796276651803466014796133173386828210667342007141665667099617989138663509524640124241021276846356581953156554684959873056034350904338016129706727228322651371774845894737792281716777871423657119135166587550435158212973425277640957233722788279279328213246703063010839944194790586367055877485375969280620464740587946406504070145458234241119713499870315264754374326842503055970482813234720316167577768990773660792522868751649318397034341910474209391459285014822968939332434131943311107973063993962760913477246198541574270173264241719746214039343686244750142539182606151492412007437545851046314603996759808858635423897474959812123340278709632528364079542137050251222041678754286945029446397203326294586006753680576778855463103699699935004268246076658203538603421178143392550268226775246611916191684982520165903175260599361872233147286999896205037292010474900499728869273368619508052774188992604917700298033252687021029330192021758087949257337178565523399595394349490122847003826395143050382911095397747574122467465809231318289619500763573541699416130030629402223650484158627856051535496714373811266064328696702873405370786431996413063373588986102523667478590961370982635783989336801261953721465222745453050285485049885725908273728981042381116159771413975114269908491694048850699483128716544738307848222090045806797495311761168294701087664444721956825604240715625734764476864520915070813314323151472567746541490752750741770826305643466900039787892115922364583053726605462776082246236564871820801736436019451919583884640754829730576168862889596560501023675757022136988649444535657364874012868235716109032380323324130481857450545950900969115473484867178110279980507238037434915672597740434142650788824462061956992748867641456208179332961293457600747287549172411877572578070362731155192732290579492292822115764945978259169069812973629564547848751355888736803443733940393808304635602412112503163492279415873372351276122225621252555900734247207849071946475092456817498417362166625850345692873616907490848624975788784471007104741612155363538550616187938866075936250179253647601983635185033448278182102976655158396878456153442080413329044237256479552382282999523628191753618094217521895161170424610261915092538145701569552514233462981717818007645208048314733800543878245683553690406512535019519430578601769544978630502770384458932778688299085727445795347153712858236083416268910323720535756057115003838234545755100288746085331897746676849849392652917281662136735716954845816605715026538618150935260106127595267081913514338697514030901791729495807541012912984630901594688491189240285450008293638014235650266689215151651215022718626285252239711184449918868791796093436135980758252852500523758892034252710285049892560971984287380578748010604100343019962416189745206813946354704881060085836617269856359198976703260750299602878572290057036290579351433484014376413674702369376627883225131815252364291355955448638239987035280168160144097842972203974455469370622116478467528009256339629912432938933383057466863413523246378547622835408351175528029298328268580018379706293205695695163116483430821473106650151923409667914826158958699364031667799089548445273466736211582041025222121273690498539809081640950394531787995855671271361247750245946097061861918094578644338095618944538885243824227756747799233730954676329112493347473544569982825263867396578534311668164445202422026073976527719621902787799319863726929147069910592682754190695315705727722765409018477540149639180565908433814239018429157924442119210448006419899511956162584972630276499848677242247779409371673120560912548532128327972448967351544671048788223689104267467393394513336467123907253389493228877184404380460067705261537026101456428737257988409249502768051326066542414106934437780675410678110126422570447677249510252261698916265905694611766223159295743594964270296260582607741323687304163305866415109979400834072652463864239397899270972565601723440917640485109205690292403177138342464484992617730462071164203036189749769387510627013990758115906578227243880980946303006058830213830309216222092909697504101932618744105961779870031432437516336063818076042380739628521178674142297104234858780222697714580758307632517067908688193343574680706245810029865229017360675992097285835075797247634319825002138436593631388326905461594799863084361445841352905412937581814520324962060300009768199610296878096016795624137313896990303193994068753608594931129460793862423811861348009916372147979005404294299610549228483339932919061525548366625445127204071921187879730361051472145318036886478257418002412737151222496709435555589521273994449868294027852280973323708999846669658567651527777294537359297058244571486924662721151089583044938204686309116331193977167111286685820196588231766518352695219522221431895059530184388003501366195544446514075914623666463121667979210603839207007408275666342755789762807274702465408603249740040127104390648917250760750171708100173662745390252610901647619191566207035071836436197504094280416168493912507761436359448052558335895424533817906630005610675715503843223374907497842375120200813929275380898417250710787253456858421218015506496629337706955449797153843217497615268630531326996076474806104174541829475756192869928717322974445791764600704849715598506488238779219822231475169430069696964976474435056488243290950028266685987929165941652166722866961967342967035036814477265889643891534701699862378364072013838894008225643495779425619761732686407042962348358906090412255318741453114130408378262768563103447332478673546505094955464432942405221084548129726487174971283623032171028202675511591270053234324808957519860919843077417075878636694298785446140226395738610876821431705269604362855417093225211772310300811032003935137093193532435404935383528033755022493911794037781033543761350992502945061006152409346896471703297810996788911332413138084325928518564051990651519898647417567151265131152217989393352560901594693450446701584257234555119808301660099305715552564634395687758649635673968605139388349117118483967825218293210044760972341648919054787899209060319935777068390585964760997350963654906635476011943040489933586896712273216330652716096166280555839397162195783153888875696624695003042314433557014559045613264140023132022295159006871137281390524169505052344921239587343478502982004698816822406507968300219748659399075028787140573853932156795069915750100102822067657273387723673439395868943687894050635185451009869915011582694487787796818207283586982349518074172124517332516383637992666165826615877150531367200907319336035362828555001539647750548148765607618215281607626874346410692096864824388382755447743690494382127882404121810504765798486074304350405874049119275724967215816918760950794001833599732141176523404654809997549404533335937286981276768400923686417804622514236750141244750103939124406230592634156853794330952569886720650425042700826323345708810570961518020618105310065912095991053820183931602579080211326651135731255162372362852621627606884335505391558294626945669339008270586007560593745980711568960788863664013781779792048506921742688060674062736150178421825581002308611098152876294016556683266409017081343900387240669383482166329029178350788771853795732334687606635407127366463531317878385766260106736927748310441912155814318962238911731382801466280941438243680044996647553864416510661542448971441528690086869428173767924528296127698688294203439790834264911475163432750276959572312248096976982728176055664453769856044778938362886728491636730599418194439617097400193604219875601321045297669327383735843749317777014244061665367940269442126893153570541386360471916585207679966554054032815473338942615213232999726942209964273545830392795048086939878611788392722685047851681721214608661308966775234951566330674300201439170318805652700000680340661460385387831712332226538785365188538847528054202771286097218067982374373595318773155807187255406860043363816591136240761396375000189979311839062277549796684696555646494511684054091614670801230370662670972114676015351584202764581358868504522841073202139058223832263518179383892943625052364177469679470567240894136722365647217684694292495145815350474618416180852896426241388554050812194099474502423383293199088024743050456950664441740135774759869288956771575044157791339544502244699926118683283383178777889204621807992665361805518349724239611229393130795863208472573348327728024693791253294873458607009672606393768190885158624666899799638493646796796408578085565782821852972555226990325699621384733287018391480233857700913809522791435298351080679919641952003688610510981342504016014070002130992305352323219488777159383945019576185569868251144807932297760468587570103099710695869259959031824364174449641295301440578581820330251058185043859496164777520771118325203759597161478379666648131905645228157654133911108062475389319760031729850440622601861664403821552734853819008715104948576327610081441346300975780068426433352890734437079512666084942371161189297597380142917859507636536490133146631665342175667442054416766395303265707076564623506765267473368449771270942684614464062014942509237322202258325394601546435095948538871349906527772211500149932164931988991846005743633030207447334542175064825842420849813345642185140330116163209125782732312191356756554929160760782641543465367483565320112732677130935734456637541988360184827716536677896867510042000427137583905371793684983159026109354819291252899986776014380094221606940021622292230763440229536787270806921051943021644414007651336627859544626175019325509786745185629773516349621665493645161001575135155259244991618741187702373387304705205060164460970384238635291793755132632276343183042240976570905489112280333703124286957780576204047263812451183721297539669571287333501633055959672355866317882738992931218399771692002972690765331634500675703659993608247012645215498001216392292972994606970288453987012495193520636232898613471593492521087864031580863312968902402108679606830170821941102747431119710255195884826204688965647709468402886208137691112867391769496679064493409001038021497603545585880743941060485576465646041878032198369596873606156569253589585267729948969843585002152172830150035445945551493150723241049336222576913856203841447182414782083890807517694486531127756899394391439073169338694610675796853861888475687854113190402672498315344961854898870791655169122544458415573086937626882946993068798223929078295299233596137862829475724384116590039589932546599586193133155994759319397451349028842980218246699623263614792966228057827936594066019318245833710592603960767887855916336108765626014861769070774285747878960631214049535871242215045038291672157439341976250371994282613402758854172413903473868081418548354545265376936470966047547355668819222193695964252570141875161615895479415710949693118986505914701119850911249908852442827563261400113023519279247833162253406692766282973980363841566445024970192742566235361651613973688891363874848486520867184100264179458823808935766907272863771814583624669773999979216660379317038888783767723151476563079818135198317524112452662390152871732995913566417672482797161404031717238178646309144815634075257295148164672201137678947789631417968315638168930894465977993242325369414480097308446111271155743084412250377112311081121191555354356654636257593984103748037204842609521185365021454509587592121767460094483083113624540358320905479230114876131907204087366818647723972087522130677574718464362194363721154098768121729069898826462875998881608545178694039255867152232058151020512865353546837632113464151585807520684211140004222975420085364751236989627852797417144229054582877557182945097934466353859102038525574029020809651766779889536874753602835906969562270795876082446983209749841005506470419757887005603249242926943297365316450773854642746865746871677009070196514345710144750036358524856981895896105196654406474000033509696880554928745331462094442969525851539276634664004611075816718451653067570024566839828443426322184062723870703177030753174636460929009284605701887783815749792676404361408952230451787050901758785732008860235643966486796972245651493231513124403008875876135372929373181456794301541657474041253566051086268586350449303591335369553973161625207608834094852026990971568748724464755214511206582845634399743037810182746152654161581888009853200215936979718355604468891530952603371329862398794373488512443072887967663444616046103749456233084584538451192528252737851800852876051008424686607715951442819229390042929270686725038683115793898676188193790601751495589855066683945257026796196611324761182904279536617523134058371828286865301712704618406098767453329403195530579814495180006865387763613586248113371825173110090190737660376818818949350159457737415913253560474018336342341921896843754887282198644062287632490136677513871331928927327445906070849019830478407887037458696650428296137089393247178504858072242606748022858681983023223104663798449125654796951923296026340645602794687946534976312414507781826210929036405412653044068519495609702356668639030570276286985285117381032435981059674070857190101896383890401428294223593101464505851812850618683869428115487889001152694326133210078517304130147162190257498461300047489591839867997737038479016666946696164759578549891773504876787033334738591198549366699386764083708417846872974478171520091750681734240098878792032586543767802083617397364563889310399586918309229569848017302849433689198820428059756314439646494598035763660209965070561677622345157693834011641455424800824755284580079073278834889680347528835407897451754404261113389884899734691431067023711698110790080233332505155671827901947918841730982481736148036840454426244401755829410444423946668179826857544700661445169661324210574596541770612711028990202520372617704989013932887477392016997814677484883886832450460209034027488636236477174849242810290137968843375711868096147235811014375993804532628274690612513561442990994413090739817817116610693057853294679890618265005309811999644038513748732123404878847847629702892465187810968213210642820127615138028639187780582244901699942327966264409297892194749217336562373351983580334697608798641922916533892297531568174104969240687435854179674646348743088407081208030908053892556517446352099019475385456621034761512281478427325799005956103130705331475914943335320355028032927013631753577506592405543616460733900018154218540857900052707099629009119587226822414084022219120635184318571364384827353093073546075164963988380713047363059593203522654476976014735599764687309774313682990672753555574857769194068692036592976483128105250035360930003546792938608533680336926911569864465264944541908316125353947826861200943495036182075109279799602849397487755745528988529200741089116538180698020705144299265730594871444395424857209975494890785966768174218392777812378343865341607429696488142920591398368122637670492974994536951244631125914304818796069643434022552202754778843976465140283957248416999548176229664778397976149876645130463824008216744377203255438441472181298963071926132896198331732273007080828152598670549988390678946466117373799089330454976777844287676361448317586357088415915929120620943384349967551231449879859184645010376228626086134550301103413750880185694617662259040749380577158170079507515122231421336798905022884832028964893562938032491965870229466152768288941603735735003829472105262113867136666137198230198393001134038784726941544954710935344734072245149440901541096183286828506944237359294913281024282938357548967498520594295454937837182005713738475738077882192617595484038409004424960069297980122641998098288384473170324260294911321568557292658518538519388403087537096458497720043499845076000634876627568659038833584189926477149710992465649586505045854535946069313022887873328377143108970431739294761485160940738226147167491219350730978046574534065478366048208076659995411871192567187742566343797491453298671007613595862507310803678429805380518194350686462402792031951403024593780148046917096236411187547580354056898374323403566643217940555430090000945395182131924539057296594840854885496284530916383240660171844082366731279738069920812251168535256665754819865443098213140583355409936149663371693168403233433061944824542187015203908397350359811673151162210096676997885593848978077647641771060166630060187218390787847509131016674067392510375171982410816105364621719027477741300986854771905320050599890344592539065123054881643602128572693779479165252389047611954057232208735154561369485821209038894120521315707907257412227696254959135286603985140632434626324772639674182194369583794252953591954307366273158595502356789809218403404714310408517615196285296656237260781297590822764394804833631161666122463741743292674408217334848073695458465912034216177477892727358110553982577447325371517911611300624787317200339257723119093025753301287810378716346064989708721740573650492111564183478315199855922397097118878053563841672507374168299843235108850343073440680386201871313938073571747205565800661245913014177016687119760507371210366193328557533942089686423474416589671137055222711868709639769888782866138443196033567300037266082258483074359415271801231613795420939730736627415986765015438537292773529051045458854339928847222283668153541019530789518609628938035899881373535484814018677015852623034684241752857269260817402981139606969192674504163753888974697226748795405296893992707021098307769544157566049601894609988862157758543560204432666908569830656045015497631491091582043384639709439085058451683453841259017574889658168076819098006273626195170428999945766642844539519916305482826407671542419740267074530510333992021709119082236802190364903224566314814527098503160191550752418185272248942376773775019652363526621130970791077655858012578293403152219889310836835934855814941827390058826134110511926831099182499598532063644566343345361301370965770046378089158186599313497839001568620292325570387515542469853251519115014188421026054657578189360482882558381109705440739609295444906284180563138706010946156662581398753953782411447453373842492108749267185305608138110885654541191052617604491889638749543872607432325850243619304697279776695950266836105470192999519427482727538803553527613293470696103838178250032795662892564435812171548804260520463306475014356909214105760462484900060417484744040511595478118299780089064217824402133757065390509762235957480259337739826334738100911276608414304858325987500954009784488344570635579646852698303878250517639287894216664100950068702576737582469153580542365089056314378140581787308784553637429407144860797502423274516922123380169835023422797310790008161609141713774104106225695987899004261605909814801361647727674221354212965063991169441590292224353555237670464377154348852963648461062831343341827556114630855979176475565284370640051441417331945675711080763514461327565820995398302786799717486174987494625452263146675808348654709488343301077483474974556579350008254899149313200448838821811697863224217930683749159126576794547797683271356145379531499724133224988119255458194649835358874592536990437281774617966306490011455181424899817038634662850926548264011422183923611424920323601912227436919143162427663739757629956482025047626127443294758819278904546853125439828547558959974372988044552418570744734730794977184024327984924161019851292516790796376313852479251069874155741174004786717965197692439782470543222822106880541017455574950117369367543851691731073192944262785775725865366457194785248540171854860865824331999600038902760461141262796607752775209502380275821505868337599169102729509557387576283606429002199335108825131079135592009982193613752797238355368650101875234343457993972018001059877912525047586983868437117064208709497107052356662032791554781883964545527717139498909994530813459636362223546546622696270027523021095504696179821702301359128293864065971604209627530001951256547111897443512870397488829368509934796832522807842860839088547002240250119243306346808347337012147914702227378706944313637227362329725101065132179828947886253845927030169550441245024774132186757516391208803793009662714701443813834923161952412163733865594050829005884555137800984347203445453913474845240584106885218287156064718198944147920500630694688135251263562861844055035283133815425103904079704038654350854765055058184245323314471647412683914102811103245690184499451104698607314134576694896847406957377238837627832418430555804240807894944500810083598956854297876908054667359417695575205774459095744018776757225838105147468791187535955033589955861412270451525140135055875880224377154598485843252309543801475210932366416348738880141707118320173991019397420020452483404217624607518352531886210007486669852774910473386511026104594622361502385490968375744489069793189014551753638574576599651618400053016257584123322060925156421297934466095726735064493975781705946694275094240770851730503407017773668933681225374410968725472616807411125244974907835261170663873737419881029298786816046410047198888520205169909781048060774818645264751365835473216368748725244824913837385579726863031450355215691371144795989347566971059246955551220125819176906430848432642154702667383085666626138882539542684950849429185902784157938820392630268208411838448248093689133437523020128740321414911155659521585080985632383012995157693479264823899780924862789095603127471263699794902958221931627977107427304680400897759360309069094005422132856625114008652888206043414533990267742782014677010101612443625828704198164060640877657093558726284797857946092384844064435453676214660477769744634579686547956435473433769162712892041504069931910903920914431567870886987727151730610690872497783705284174757381660946441110179065253304385855716253650243224561702675380212764069564212370416465819210612154925763926937954728847612571744186652873491286608048480252158584469748330256680557366685812049187755590647547793255687120826519919989567732675137333830849179622060468259757701942830679263399398925525419830924496141768254568915128175868323516091429004106768674519307958755591535130885337483887394379574561659683151872546962491247885968380947583061144055687317700193620264227229788789288063499563621136365783768421610866048746602869011486107925478840471733323676553556634178628558670911835802036120595536585746661730637307122920075562041804923585099579321769958039950246632233442630624787843789379996027365614663542372460645913424783289774047179263864596457103251057484211886903741460208276843898441004823704712001670970935380462396177271261434348408337634157110581805663581414107781801715364656278486986688599446670723074983862531615931158405085444753618345464482705700439404201592043253497394196798056688708378724749956914914780074528961626024783447043981321064628477622835552539967287292266237302676855342078886667032209126080240624109409654963022885980079880435316889209957531038868710852036443818332931693509627804030815474776089809618654909949023622681464117917315715588957284398964138227871565816553189080423666404244071231913984094610387286728099165654820228619844308575947120257894688612447718111723228152006612812760167028838204044321741461015448182085615155176595953359920479642558093824377096505986409802396763116143112829011203174058994367730792446020581615125400730153252826169163109123907103724644012345757388900713531525545483837331167917293338747157274081560141885309908748997603844468117239857145220825987681059561621168532678120128324151519101194954578542188123750809166169973697549617107140454686582481771697056248623105645964621691362045746271795724240399326002034506816493527919670386879540985015105858298427315037214848694404023693553468867955973105346026788329629316375187883939750501151966369342524710364789419831207980110872767262251464578626681950652539803441059640719274689661609353761750305353218056048354238290669291006857504684240927948480606003769708315400521656337822734779263131854580894584625134781442502933363721423254782615968773479974053978732733255852659397285038359405331286658110628526625631916951997308983107623038374385342990267232304568055617438448629965266202661639379064729305113821038063427286679203097514418220320645785411491870605086289685861429692750649994026264552057679083232041849794574542043571394126175670391941508904838327257802151959402018951965401489240385400849709531740934319170410895564708998547749203567583391198528365858623245526026053505870607559297581755357138304619433961805501242640021398332348044513524318439311948733527948765401797166002638715281074059101338925194474906369454861326639912483233951406480004450470914934422741509927215713083445451174992855338194537930846130823271834229798250891534734416943835665126205750611509868738376028433128611641164820659135185049370968301995544635148996442299147846530763157168129006809484362589419954796873154218118646485981356903900474042395255023459589680770113909047660639469260088506895126287616714684678896967208090173479106195952777023333078009312151612593110636542970659504288417935619338944854088673428486311176371881567427912301510102219832868900980000532700147798970427649884811345263824188205255697997890387206771171203442423554492164985685223904791786685351437610029548855907268004662875990472623344713505608547003051517830277811696631102282887077109880122537024730196191638410243026022272059286245509907062525423480770306983834895587635856639216844313588167400857461028428107125459648377279661944477254231732696319761708582041597495604328922318685622711841505258842797970821722857368894717124955017716295014678873638712622160866446354595471098589557148466278568790272319555481165965163294019517826592507056663989217524693635022411210872444816738684348204517391629351632328033990866870762240554637204753948864063063429504821920165644679161642761320791887435821258370798740001325957006926235298767117065810646117273724315225648230687816384618126383486675143699001855517095417293073829872758392969150589392686534386708799412457069620965415855931707605344556521326486539260696134583317742320215115962602915067231143364439851534560968049524868860787186520347861880377106061197997564609070517655115712048394626408010704560116586778302866553392149126215259564792437633595535446667859826012925301427353661261702552825466477385900869292459720570698668438714834231555505808972113296800214687515845645547956040636514931240412257895639927331438790662246965493315654501702204385841169510330063903494343558974947192905445425778516527347238054746113590036786963669045874510695715111442046613131932563451295563065056074894425318547039215929885243397511321264323927755428447269580102665878432385132389053396928590184202053801084080043164073484352575911650135758467280881236217119056652507006488851438917323684874187351014090399949721779326440622771993111498567991771535653751585668179868479952945343512383098765844580161206438745782850787460985142961350954749882188432557256117048255779628904968397369124836325341885337756332381734470096547177566824843599322307298777876059250327608175118399337950102092864181291807602091393569933347450541749639789293806046202716169507777725656562354282824511110867139886974310315516832647995295844595471907978072752271940683557783062525736745106638504752070673477082950497234528149040285802876880971788274725635677762470874270158400496137825989990163787241839606279218872291785476504138171035761382114321268683477179360134039960698867625403215805123784440962864150857913020857212476622286902919773838231718686903225290248303666359457917380394868858464771578748413799276179869273373199430615281033342137291529256769415208199712965092031627678363063690977423480924145361281401196310406128183443165414718268979477102136970117922079071969851549381392456739172758921760873091341943694080559224448454022798922988969121040444713818152896390173038704391036178383326822576138510629878401176052779807147789680510105421448034887688255413674563126712823162731673724914115579593811234228602018407799399817107908114905511362389596298760030297721098662981522258223235534294985880764263419598480012351753692817427578507070761622778190469442160069184513881820859414985304033405325126713214421967949091632206531382683805066444735159596201073909267211159443774015635920507103100859369711039074917981015182559044203962808168080347437961999791155282687008385800996854684443207806700850663213821933139862231107791122056756402870197446918336048909561916608942326442970641808439287743274195682006981189707338859057317666424453672955934455285491483668883513877619561116905446022442145982821977115986927088453749339891418103083684435854842213708591133193723293571624123108565269243856889419565265723837402358969711123482843672170341812570052735364886802618156841906887652423725647728079082784989937278761863401395891949187869956208163944321862463926938413755289847551637725713174148229787442059609586158197611546702295883503732028440372120614040520147432249845733780980321885053711230728684211293063398934414483916733345087853462757727713607724326149686434319870155780564868656362450368555357980543414319033225609262193953928869409521040093077514480496936366037501419476250024778283361586858556860523200877917888424326584372986792968508421732479729373761798748696092990578610248089610758273075186961279521518741561777062252336082669810981295683195109153189124243839159350298813135851848912168885400799195474222246921193814748730129401552282719091270201292061202602626048837708751717049076871435807876018898539164859028005417575774645460885985294804486334463838585730058150410755832034813863682485191934599828637873682169079046394435362200094119170361643315744111109537600765355019823401818000176695480337029814512087787080819064894652615591088224041817088518752996661445960763274706367164707838136693125566001167115842085838042421155756088301074858579548479072930578452734728046040140183787297005581132980411821147314378912457118736317204750973713094697825179439510270472651592172575811484950457555254111702437706586061994452194896558637155114112955375912931015137635384809387238808172825569252098504369388657570868706856280968588277665352196356748539783283878725054492826341595087285654659469184629246844667247768706478343670028550457010376980735332503203209844040629839541666645937955790151953541253158471900769776121056040465841507435642046831144120760204768506561514117778260291902823113103676297562366044355817395086251467228195118613947531447193353045804871914317269408879310162261964718424430933948811180108556494608418539329062382080728743914645168804664119573222541466885600030210018792757205611940857102145075877619180659045036461571793443212458770621943603082045369235697878521852475988295970538347429693914370262455562143407780828710000281412450505860684434626020180546391516379084673185569541837298976922325731326746112933349617005146657296202003000189215171876705423777561392285909291216490725597932754758808283592634571809646158881564150293531435201122220529115600013015229537271418886327840725034449261523584262334916180054884537448233388437292920261403576512165616647747507873479220621162972906444515746296934763455611222638987379242275903188981288487136073967931881959326570886770953589483908585445303381051323477789558403774166627177177679660164510203135778325556877474304640178861911341118507994735617363869702483642759658433736269387978229978448465367424790805928529308073911752345910733928475810482278186353948635789484402355451049558751626011235189972125755954878536723556278300186192414438457197682084198011891653755305846695878161220132474482026312278664934711031237834317094163736554294751582219799968126376824586627024904724615174916671273866376652988238642411056536903411075762125640752059597776812633233966334331800517549769380197405986562131669407682053443090759252684826585384487689863673005595725639498291993166444561424850007199472869989540311562788335565275245654188210410885522963807183705152223295526701755023015418826955906559976264416182454866625179175975808975081955846545423200791710824098194105838845961903933443754107843520924376087891413935790759578291835754249223603531865115283519998216707072583681229071494475341795754423081763219237222483658719860068083190768546454927704740246278477295723889073354554035902758000152428652882856682505079396817596090062777343505000515536248299580772502703877449392856214057950679089133651261701830740592314861511926468514110458544633750309302289977051891288000273314888297814155232686436902464553680408797920526757859245175714720159433490418117726104418635940064579815505953628562302009626223948178239168011724222330298346031934077175010094187404777542968280579811397173538896388852681546453980284776677359287766717321994940621495754904544237574783822708189882214954468495469070841809491870882892799948094231061387971789358299337724852823111859351128812510952128669974157362136938195590063941034226634001383670863533668165847684090645300956451247172985088973820524487940040499805891626993194851558642199573596336555832922016973045959666053220470635627281936384149032103289257636604271275798387758642808193575271846391324316267553072228140478582087689207635689384529828500216048626971808747631492602366552504611702370258109944492344935630020157454132335429058469132597923588253216064800465617215269446810566978648083149764828740003773222205997863038562178789176471917325637200297334145332970488541670416437114073054715891131860120671166916652860451505056407604889439860717910676727602143781815401871574762942855338308988479463292002099550483342818752983491508026770072873919458016297130085519716692329644993117668252628772111096201052447553382557978911117592630692725968892232378517147624440797255596106134993105419328438224091832411295267140721574671379905603539276038402577773282086772475897862522717008303294452440546981843475681412051096283210678318082346988274101784466728615685104336341879947929328154644490153782781725162049711392185536009566237040970580025513234782932910807136291366532692192017379776372096573777365746568219444920567175702144863967897660482276028758304905659991238645310249359277688306417907701291218566782218669763797325107235380612172623521448210057341377739942857151983064298402928809494229125841404045366701614872234778335746956670863709172011084026217130282217735174485072708000289766008468819767046060136475145456515602943171452846089095865550556176977398402130625931806634922564595489175042587885637693531649011055245769789974182688717221255806494024662708898554192256484762624836061105905709896210728669786742088720433589867875744754756173452467257052195960338566900199558902589228850740454175397210411488242024932880150682918551116605125987335363442083620917129733851494232085965576573561189564058371805834935503476664169988948286951957816190870599652984824347127063521198138342271572656135107221935431785062119044611479058977208342089376251060258429762419253798956782157401350749004305789605679397829935898799310400365654609658452854672821740756112550520663926495257891982818501795699614661325785050965736741463576973668554203848445024197320857924347459841852125838268147674807741262318148154292544785066443926432235828360011586736296996688751542803311613238950410726287789591830494039419002077009462808765872098483344441954301737813171199882253164036320695266403586644494831935161993429144826080439490542422489124793341180983676197490088427888264659849585765729258733240658801055344208658049604787627632117486150533613309733267583082542048155374177543935617544442859070083127981704516473785322671969738649173784192192811082044292494520559669087334551192693262156109569915964400812864740218755637699036440975505060433180526412060391973079397197794478231622826977834869148394820750624747349440865518681098983292654580758151661499664314641225860900839652908278971462897919431939296637147504277044994097047238690994735567904764286053671907866522679077461588750367207996772822824297887322412183346982706696162530196252318265604867708400543572761515557286443392156739311974970191755163115664969846622624181271446455906237692376573580607042716038271593649121163261072199193060637466690967692251735158210297854230485607214850062532397052851762487308773455178046824745151474385538382302951579445963755613475316475664814529181044050302429278693441124268609354584889681484315459748244715571157677984461216247880343795842475654350206615986893158941142625131264019028986228747081758550952260521190018096381494559917512196972246205669853478188244200860076389342455982378257520272277229284902389339078842605513119466693695467531336641045104950474608361318044794933026508015307252048854898160130477265724987720866675654853740534042025440115944394819648031012521497328203598684298437523608936044810589778474969835639178394847658228973194298192867897872632452942205528653776171664249584136595524352994113819714275867114933590510938078368323765910149850657540758161511525284129392242776063076620341669694263857127124395298292118628097350403778876807270943448945433586716224639443039138778950782079334843062536944433613375447389426815137993374069282573598557158721870777543633440796662136171964282817454201537027944858863122765892243949469848646380674043909819806246454989959456506517852532242329294301572529939266394325808626973719895940589796447162052655985473222050786774178124039883627823234137099873155079903174012007276995860344124139053041174384409614297923638557747493857061665867101594223212665150098194848376206097092081201125658269777282920761633040196938978252998247618718646228177163263291924943465389210699596416768115941941294477158902035326690981204994887593783113404645078278011378152511667414673596171747906805949367546386429444099810682782397438169968963199228652837046550703700940967763607619675062053750984066068254854477720413341439142472017924130304727436604731447894882671373672932585743464666136914038231627158262304659833301206907927447181410978189853938898904885837359691771242966024719860967420263860555029232112289632956909279933832111067961135198262921363413352059008266873627048822175254498969749977736420975893294687487078592541024718593288450110004454005728496842988705713925504164253687337285519812074509058876358587797029445854241245987087904764367019410559014074303073844673622537409515287265480286605852689756572329577524678191991188078080530357854912368407690496073569036004530649848108370397086089259070182129012671642534895336047527079269851253201150796631765861083350387507632392697106154466087744422681225210215790592461891977658157588237237091543078033112096713468538510458868761848150566867398251415077363314589104781114050540637715002105133020444793253013530576634969379008352966909212200865010106515323692372868602796725320317185717264366580235337230208677799736260713663463338240617525964988039451764928798850260504378551787733013021231390718444943316254931080804711109051128029387154767768370214553099864804224002737069507144604104491311246534575668580372249955489623963568876489332767713693644321450136030706372397301506985916225124757396402999232342063831805459002638348213187125571224588325037955094054114589264231418162527888539964122690623813446399130759832772791531248265684817899459452316169234834523289121867365763031237734320446505174345486494249565037329126743449756988921259194171273622406216576335347551398674478153546521542253313205295567020441765183861680728947184378891113649678991272369871619210845446249128445017239825128713127966292800397655053627951256998985672920806162032557171534328497564950027265078938194342584726215315585885526065350996769436322544768236083607234429581845164985131195495498201087929093321184186776541908460689894991412857846755295941697555468514029059125142551421712327693686908029654710687100756457592866160856828742669079994540855585841222289546794612129792159690355703479001989844350484750240206186124879444468232810794601854279113491057709459007132463433262436819475549134257752012740075977390342169012519658695278960506655082077790754231414525671981670331813435524527462048067524589998855515361966083867869116467660782920993090532941278771967838559833827668345158446185356919192454211858723929715308508896446101728219454343335346818168167486303725815044814134608164244840829249212487310182891253219459055908790650541939144113739044685194608165788039113232625457460897378135355302230685428020293403181013046684443919565421422592892961501643166045571003553279847741454978253977990388869327650575530016049871034971292555028707137273243887995021259691564525207010796993458992435807725163721333019483889306449628057216010299101661997323962418192345389299213205913799353073378681660278057302415003359282127734466383309152578929312457007598377468907641567307513027634595253097103191595036214845540960498689990934184227590666572465490659251074628819299744964177052445077520731931452345850363477081789540185938816687673882318849959230689668082644719129241185077633512095009109695435486150400766817630027265592302017272263846432657285696980826382408022911924015544302166540712219159539924955926324903499788204909105199938299684898128626999966557488831402379817783406056783463565948870455991648385803733738522744030724289083695776388972602906395702005653239782381145236346964393945363539655422484712842917744930815981759953399298641837760710215920063053544766900077252276858794672117795619726542666729583647936451930892332047863264377951433240273923434181558033731852950998346994608957687056192370446928160751140864165399447376401634316762957828454221768886981059370306842854210667263410769774657346155483792549490973269936629240368772965890556470491280828275768371433735264837585275149799751284413683970888854164414624818130335399249051187178657750186078676246672430772284118075691149794932822445009999777738228421748207560951272185363354433539455611433928207016894336129192502968974863652076779152038104094919207941604220204638508511508469669016747682777199881579293130561795939516476418362961575269737051288912996076350683068987408365124997582844948207381975344555249085014334710864474390777967337154620283963649559626090509289794021104527063346650918209416630717270410666295972274408392445915979017416935931808415626370854453719430970944675629141549127892797839635919994312913130729441596489282886145818312698668943685060278240121861710175629247469762589848940350669073233894614674163104954506117287855223538940086865511619092198252679390070033938834052075139104512693991167935235560994260302100323477619618584128664050930595534238157286705898097393119772508156411682314675052577376696312593454185445587951353092762247186982599214303733168834624716224503793900794651925674101152349033313684216294637498905913204230229836343076958006345484992518464213009372900392731342401308664306867746874584470787970538055946989461119506591382357433744989255284820721274897239827276376436085935992659814366897810433604907033047029516528096193989457756670689770976504897754994679151450373982560455696700574375303137070938283113469889248373418247051623144911603954330149611789142807058214450701490540059715035443344125776582040910299460286616445845379113418776248787402157900241759489050276432400300536012608775246355277001486361608563774664549912296851041297886640248944721990947865931046979314144274642279783160623374133275600404104899524746469229643188058357102123597755254100309576690274162851400022118627008453586850433834216414972899996119342706234123904750006230400237445900004474388428004456368908050828453413343793459623947350486506257455166573220425117658089542703105088325504375623970776587697334492714123662445575117965789692568321877643261245142308460779064905056629985181337380042888540379867370484261759122029994352494507150484639897547572598372264014118420206574015843454906244622712417510788843953234193604688879308776819329470913526994507102950091999669455947103126517424042506821635780269990764050661751831042635505688464970471489807552024498562875192553463232048730137532630312393934809124806938048962786207488519896610736879837504197472103341005076805511756296739792413030775059215800751360817621649363995933395251200889359958460520720507241970936305437678129432176607339556197499279652152636609340663384775575565752979404377852859827915818360179284120694962231106917918370808774551671744177183890294409146248376468165993716549171245220206558459092309781164152924398540752234023971338261165971089182160671898208500893394575794354658809103415598180023241669084859389138968111727681139488235909217344861859832792186926489077528555261144212712946096884506646672515129539957162801450751524604869859260271288399318684222429082053929260767388390352175281061723632566883596580125601682099745466120308891429075709511441468376009274356872102785739876395254258601695499787509231903473313392886646649577436670195681761856866537520551692737652276242672248682303281112621096782130943765130288139053250176122959461321504210786343755795273042735505775179600663631417252571504380682263301163317688850287689160097778087274665467835670248929220283151902459722773938913634724764585161118053186053124717753360959319612466016237380492532006920484770252492048808750567786909155630090947379193343322354240717654350091898166296326123747268284518085876477447519612203023900274321201985783982099178988997081907201127871343706654253733754760132628473157278324923379049689115028041024860579281982432434662638046945121300489397304894444670544829228077528285566987570935552488418590879277326639719629697706232101295225179507769681205133310299373279995869778604869603974305932348916802823248954536752246204912761791792504746326788516685907330857572291278188125072303039241065856995356661413677813111526483973548027617328820096861910652678904857821366812079759157599075760043397440199202969407854317939252105292328318070351711983307135893402134527547515454259403244405818131343593228942532572790891594732132157936098361258260351716613674673733363952992521810218635580054531054500269932329969673312942042687821130714725218205489474622066889332339032622175238857693587145531966226244862084685088801217711333793620584472558575575641059467822840489600782631325059580106001788173035203256545012852566524517414824863949008429156983053190376871675196083992305952370749763214309790007377964341300401394445995630560914646371265567862072386169176287784931228908957405026197935888593632439825836203813340200179009157225284890836092407647854406250213019314146850182163734464994376533174569763932121885372197118135306176941579287340892320318772123747239589744759470684083228267414824496616768563254025702695616467106765195398248498365602996152149438223005513866168943456274779363532408551519779986549498657020458140661392068078091960067402577667378113933647515284014787272485731392579226382351950391808677451716086026641955877449052658233137083808313891856008052853690660963584907280792533747297366991361759228362131069074169996858308938177192228497776529266325880318678261300574425048756759368834568238640887782502567669712236554807396999779513770070729917500747788219035862627266275078433829402172779916542925801928886603720927433144429865616827442794926907648214297465933304572815802632736452412951163829908267880009713302391516281878006113144892347663232229545545446270779380800816102025263739133934825175208597323376369073358881910698379437511275624024071690504387859285063655608223357587919929507779501782183930907722278862238663721566352913654437232321334380907986421919725027131925697014628082112065689961455665648474514337111451017405733405189260462167576281795727343809173673909626380184819228971940931245712986038770082699495775580959768725588713549928751412688327393289647807802165643096530943288629620371896611287865717900152141826748227949398850341610098771937777134359782911868587122086770221421210027689903158010152430723355718495420864766944382442297639644871098158114043759041713259543772389430593147285335654988782506653872410210763196994342854176314329566552312910990336729944161981376583187611014883338370463577063661697838882154231562105543790992452827127984587106611489650642146926130180188014534137863500960181384065838181003511093246556841638179458146493246659313367464300445465984069699522336574791122017444878438113068463515291132983826444138849735448954171850818838777141668559076129784537905625834791716521219510717466604689689345718894429683433180595069305374977716330424302282906085562825718919762575127515090164726479331254867929516787847091213421101564327328344538575024903438801630340718992870680491480906245958441359429654963432415532985640307086778701002290843807384742282577269704354637838080509419345140923129716503487635363904547201910088104928813905545730748204704917008960664301168405934237288703717222340716973269891059321139311300245479651533096555238929620220218360237101714065772263358626638260031566045700164969056483424945035420080891382789451717792594108080242630349605125899537375171446494921974287485800687077581144937524872027620149645417726958452650162529041687674945081642656691107085796800355334864514791908681819818997498936934887587804151755685238252944501049921581773544053584158940955276309731718673409231698015262039304469937404761193274114178318954527204576880667815631373880778599019514549774941656954928353559586815909795966893977655725051785171474047972726395771915352625509944761940537049794528915910642553192659916482869134100075491637533560927715800816408782069183924050724362389878870857105859123853804061413114390248363923108886445764377535732801510463543165867818923272682838027972568162810956397029075381425052894801935645326385463640224187451943148476913301641366776017073887152257894548686544158415287502081848205095605843270845425301084675387781993327953645295767851179398365116422700679815208679750931613521561154646266127403676095107432778252212884738908899360871401132449574058908144035257717312724910184006006252836085636561715533083825065486652907114135174030346957721371316820508845513334400340832613704697977897855488332232346127651615835700364024399797016534623207863898574776081128358069164809930067505668178233975072504324974536578182238877377258397407547483550796078169407426512018185794840580058353928101214955537120618332611696117198988022957072448331740666502723027874056396789600778605525522661793123682682966057005697646034707925875962568615326629443276575014964141052597824015476576570037170456998164723639890298577201531659179482739318382463383354992806950886730243202080790321467243730373348722830548466032442420171434979332960244783580996335772245158742664374257598988708501030069091137473402426561085574625168874559082726482556535492070735326414187390523921893158998929142051101292007601548418567104737494789276287256114297943053122508113535991767688478562030356497228275548413728831585705393678753720382831308351646047931624800773081902574161240979950506864666895559990127494755247328434772633198541660674497739390408461740241109806733540789614997416509665924749701380381761354717577059245173928524443917308537137725896526902302677097716954002741204159640877108075578975690934118963493779884888044400014706339627776792603942140790425601775266758605137886585382983317472061541465045861016775289861864221577696979235823069356840641267651846291143254150343895606852527383295562246882419518090791959673351180201356961808578670222259212409633891305098304988499589260096246483643833743242769866027430936330938448935244560523206063478256712477898902521212299046591118355185266658558482985532610071583877013537252991870687835077339457911642174082928072734629109504264052327110671132310442718482601755721286038521075196334224626887455026881667113419816200083295221165957317354274821355170812789756363230683799134272100737950349398507073342018232859725725354863332730041914750423322861488040142137912297390362081567581605717840467647787413360845045999373017224000919157048613634196465814710760740826228104227887786482521987297571580864253491301258808595951029158560529386486226547539901748113026788485657442215732549821801770866482389677974371906130308165427652489035719137321074891782333929170497573166366594537489293455625233663519190851802189281025842781596168732590493329335201117180514369482215194541716529501060336149171024963874790858513478364044303855693902249642347920809392192165183515790739146323396839818956380561208581231697268624988526477403815692929148703672959432859442905054875773927576024900773659409436059540224741568475710481365902331180899468223381287298586308103871825596218947387133377663040973492137816004625848267214025572789648500407435264587926968794426730667124281365899317386598099018613715218595980871490835531114196719025437906709653041555892658919946595057509577049497727065975005085984135290184637206206381589271078639041743478342940507171743181658503362140194539558018185787419821926380022628149045539976166394795736456764361808119893878495011594882699463233872554784616779834270506804985417275320614282055328462961716514084916135231661570163532758120738217641175492046013718966063216742029901081436121140938577936521001260436838896810719355033781284389123811100221099148973104866910763823873283836312563070288692719231207475452468176027791644688020892757186522268935393028793473448076289468749393882975727458455472594467328128379180655062071198729873355735440535423182838470973880960237633727036076228083904760763231708285837793389322217555438492524813953751151787208508509893099103473999289453501809906703441191257533141000322171998708340173617640698519539147119007831284254836088644483803421857859347096262905002416136741961687988456243779866957427575706044774553567854087114079063158380261034592835491425286882036895779478281888493386122798380949351775797540730617933661395789575148868546249299916914107496050397150453097269453375432956112278926829415286082732694812549907754509904293827829150926823293811344539010489570192532953433280514319712964985008118439657228618716070727008233988642230271652341641467628954835077110823967373909338455665721204221067049267202256367715068730097339792401138337402470996275981369088569365935083143268469413805087931736106751598490229727583790899327352750703728737078353101558664570542770928532604472217452456640232366663147834444010586489729085453206733784748561912213820596028334010951182551290077903452579714649679357420894216033126771597381878287342420110708736893518089696499794230411971609648107793372494290610357074203117922893422465382195234783746759248393394191916214813443706773200939512589518976604471318103083895907934147730128612895931713158676190577432270623399689514099689012468022776434461756930697813801104418272626853640720984498997545187702290987216930437936887340191837175244979393782828722008094284057758329255838176145296718312774607822364122088392889660089579264751971849282013453925594881015156684910096354008169836506174874789879841419962441978970440892014695585946025927607656850896843911789102048900786895637569642723182160960581303396547377956841903098813769110569012410053943242522619594047495300292628234061919069249929515311855827985107395493485729100519633955513561009436195584752727912247329264328086745459481491537178675537780421162179454782856055503417331240241677057101733593967445670701543409316476814511841480567713688772727480561053051737139154415436915497344786394461852551385238103939528537690883121002103396459226674557927489986351990489791742963875605628547572194730545016008339713048341819160473957350453763863918309495868600827851696833411079726690392877170406420040726747432721570009541374365518181959666572705412404288610670322994784811181366531425832752028640833097199651353474167569513394701099885160952291459331675896870773337868964782703484238928112736560675244597908038021590018560896673845730309718533523497027785868161056952610098119244607273929940690810736337565221927418036479933728476808653355068483900469329161973842882063921858135822882192969267964130862180068122545958207223899422220192452217778976263335029388205600429186789276844094985829575227895185180475405982288933027656420709599006448445620239149479888254874353872480674504615265037330905124052215402320563154258216843364558099892363928019320245564137134415126201610017229478427925706804159047014665300914772779231971633543256313961947593544507433076660244774686648188842342760601860375035903477668379853956109962287701034148584252000910017582315280057870690079824837538468513984426450798569984129576521463561652640000840121458028497719469738730841475673788874415542671415366263723782538378039217096779683655617938465334698950224202964999496045454478817655843958184182696068093230392767732288510538936146650493084014237236316690664945118867323947853794013792092859643075641490131482474454669546706988109586731536253874590108942347210157396026068758796243557558576074562533451161476484333669251768980141875323004346035808382062343153016882146328033775177077776532070907765225631615085987065402167593000341045660682949848451349992454723419344330214493324483517894085927041343568099568106402716242390714166882429548604177625099760855654262285860705679353472296081809967075709317851935418346704032394935324481917881290583659280912036892507931479567564997445387578196586695267051647481814369415222137571617489970878051468865577305719182020247038531415350977483451256610496982731266148319570411895459485291312847291789668171302019845867302558124938337329800506148294699280475152107054125512137589953504712471054268080886105297426554877285661484413864679480467934391793593857579406028219025621164756757669958999883492848704474956650661349175771523630099221400630668170312170743966393183651421405785557455599169847351270478347668711591459968758683511324816780018202095156467302067934222787678960424121389888313490686703525933847053049764118363401354698142394167378165646657087425340818532606629837924775217769260904374857540317714116870198269632571225306222729769709725372477641504293564618822561330775325049827011516145313956232674600756736166549337255508099282140686871913987589920236425523242296866599596784467472846962684903143524151848781729620855203683015986546838901776950803631598889038279774240048298591503033515895388609183605348287402811378129277285957704585238316347020422656043083923529675451266059191888035347369246804620398562604875316974816363392268868163198448371197907683537437338863851656727238931610429706111548791196602246460405024634222433456037285683904246971495514662668266629314024384634264390397647890560500407795682033989069192403508948899321345252106668616637216200448505559533674576283969659428549489481757669314519568297085344745940082422640902348270041645742134689110687531152718313561301677492508510897605524919577533287095465747047963577297374733741837401976460270576152349469502546979323323511300392213344827364161350195372680942624813832411078146679785810396880271016268057410632207005030003590081138233719458951326154756336026014462414034539826865285675093101879894115764587888734245758011587455962671690410604062640032546408328878090196686351402207355310660155394517106047933136497378518704892834987752632089741378436313319679269531536643869842263813588467886383199183376157091747754326168094238117131085384780282094203683913395238218592721927426349262878637107632552896043639598177507155655556308988403259888583067432710667441888042197674233039598724945512036315699493882523941235289101312805381465200443139866311964104857828722238659944128634823846913398458718919382548813062474161765356549201564950177659761583039400724468087375425154012378146764523788013252985202882706608364246582637665653627936732741615024865675555418534428568899759041934250621486499738421013155569311172158729268987699658517120073945572219885482085760036861053672389517228908571062620489872586581785506216973326051885492509669357366326283375829649032649315198965927643498111836445723019096699165651233953797563734043560464817890591550058108248610143718379736666607958143334993832461087504506528317466599002792912411356821739121581999805005316458779242606229431207638924380059116714543854522215492470031083493694688122638247107880659635875975683546502241929795001446098207983712259614045425775704419838691269330935196101449880662924478321590476036804113838491336177262569583248047178462207111335941079500864717539689154119945832742920250105202830405827613201162174807400572863764116558317664545057376363225654451738100937481009218520940078237446967888416892730193862478207789781737582751930210596872878209814816808280846942556676215167709746270583722008568556457016920387053398460678067760490598931571061988372680879124396295732117225830001296168716307906391170297440125331385771452618025287046200675223322814776061164311024860998789049438055375747172602639583394822013004358723383801655043746298857541198165054130689700571698662741363129503975833491923062572804255366125241312616196067192971668099784801044777836511117284729877816873623252795898799109522296953537716398036554720235582024482861019649440978158179594213229219860069735363295905759357690298010024648332107942901284847804376967095607713036617747694534866505920041540037530503693274393274833153457443892286089638950016417103903048417063721379702887194256873621027838425332245008139211518871873355653650866020785416505511539034226740088083058799925044667024196831135480586604482310403400759360904606400145022607680956548898284923435988949263502760905254527925200834372125140745291472749555176072214353104031556434838184857229744912508445635554769492647336144188390434982244737579125258221031652228885691415796586297184251010966088711185429556780626464667299050315516154234388634799162857919917262995991752770229369940299672488820643083017799090128089202846092208287753151100760592932599376364223001455222153344787066964483753120947095537818774551720391964778046446676836697969915278965489906618240146336141381357423636545748630528462317261252858056794119525837692035967999582038474625807073175081909696842498251624345133713960550029046099872802247098065015970482653704698653182083523116806424521988600993285500235151447883039057699506405183498327625921062519839218818107459194521770795375587356325770185672313405447316726651441465154463843286135249190591414478053178336632427300988950587855581292662566271811681889249793049786898585345443512073405707796848367911090533217243540807664612450995552930210972380028645516962700076890622715429813001436856636197762187641242064561103846229975781379091538862785399745646456231004016021170316952148674830831162573964632127148416641868462273995634397701109639480468568856409273167657126742466411504718788942394995384058574059044661601268424348405350789638590978930351536324403682913522868034090457144926765522760998880753434280290407585795448470743160630189124958833491695362660225394953046102722853962159030763583040837553232125576866395837017810230980675061333754291998211527418747544861972308167598401104549273698423744912374633421241628970639011690258425571175014000839268150276859822985255371710108458840753823424013088326509268137201353979533138318513465657582392707116575203236911956084301077824630128228889386096736149920138498565389218474916986462571045583456783775034066902850373599927759615494194122635353726852187463429819783034246172923130417323362097373098537717475492981245946483413466401751710893094439737082195799376900593019586632954788403268128458435927293093217695131315534163201965343207663460448993835066857485024828304181550166708505459505807047218491841093501595454373006823945240567554842775193773970819473686732485005108224968154562300858243954840152954817590533001081928330158505519133811229865438043900730094665271423973682175493937936672338148464333164286305890297209449507228326120648612868655433208403830303904357774216073761431618182645676822345218798002231471242146388742354983923271268120910822854611075693945657347957221793972241710158169693443492078742413895309294409322199278159343614053728577728760423964257711672934493680294611527008490797040877708217162614192496107469488613379566290095146760391383568947476300242921850617363364113841929139765256802869044325845902611511699457001991522575052345246079515946806603221453654551184232266183371840942198175058947286186091554179011920432070804836187490526116817343491240821952129541193163196077144521393106810901592295075099107486178358556451811888072813650456412522632323106200722479581830142805731638072881886974096030669602894258956925021895953708463940749872927651914238564244030616632670040866550373040558458269536534034351943299292939999747218880992645148537352671831846660784906801627633154099671045461265765301986005435370071126324851003054184027292312537189200667763160027567586303212313614186713992891274904907095783116128948591392205187136207016954673364349220380518585057430512070738506328314304743070429772890815847741282865026607026406304689759461962949829088039350438140036642806098982643842949834941248171764364050015444773769512807621550582486507208013638517366828975014508147245742802940246472250025547300210638107460664852619306687779784488863333960326740209569209106592147963916301086971929796262660502468239509739282155773030676702210180041167481963344460836269392260658040775066768467937533697955100432048346154238214120013076816230623749464200024630594723381038410028094353498243642883810082449814196544636993358711514055544464627866723201983023294844304785243429062056669983293231654883528203100094117858131414033047321264853920562350843777186217223798027359843207257701778947339255872440649379062066553432103622313334773764869750522702676995437478753229429773208215728112764952529516421913318421083412232857493317577118350079375123900550097095585185409047510672266093894482265553643359290924815507794152919331928432337737384751096851613704039388933207447937316645943280226772069374964295539075163013980745243454545880113364575092398162869907383396472927758735096138040149012450685758318967714040076634376492122309055842935772498865248265152747207346820590047478132258582763556151252857509480481642295485678524454126853484599535223724332171884705750169864218115477003178461571953594995710410591446371887421183960099298816564992971525379885501680759905062946464763207057221549746419734291019144932966747451346838363765195914726374502752201789170957393680195072512048836203101818454767347889059513631427804924604329865913023207189101699187192610827328597244249978019938087944357380609104063613962383898583433033633953689708993607666598319804715398902961868151454512466522656992955764388506472208293400313337775482975569007356134349398015588416280682535503079894949212374809890904202205580679200785855709170575218934153792358248727284418895896109973032574271591178582984066803883141004726912862449293797187568417212674606215688828460018162587041729821321962758019424300100744195188509750328888960968728188792647248687060517013000878184469784955250858252223517233171846293089588758391710961315496706934878124845765423220596653398147218999239613177868693478894934335556070550892679234389227929106515983615850103472168733783152583260767549189451369048889631949780581920063533140654627781977928663590123465881989820590842259868903949980332690485379652727711229951907009538108672474732402621283012401915548748938576491996940284292196764949937172652877591190852597392749141689863317955062390807707408724536509375054793918182451952180540314389484084129017177721976963563168551045424950171089782082666744118168939892176785729338570616172556957302333428989164929528713819343881704962707571941631813046466230321660546881817014606641566334893620070471583888830161538376262934838605680831063214872870697174589534298761855685022206350152519296804050347372116587960117046902004844637094560193407570337132893110150778663810535342663392627987905159051005126547853979687685889331919474206879786620033604816765448768683730662618023302766380957284579034780947620021050207581299674167346007120068909399433973743279040918732017377425516700632042988524534419802986461199340973367616813055858734960532322994240758023926265607336211343042000752089041841931714349399431905572317533132241060598212267896804393510580203013833190211364336968573165359860154732235471414118795705797496750005300652861410842035733348783803525015846959756392661739724313380878780253764190622729766577519126617909192680299518370920734650788794419521694024426982730316762288080513315175211129529540958464342508156566129078570610496065574593025714261564787614578693567283142782738123524533681838176195303261402117476913679070774566893352681042840658614209192263870673354454104394486770483835499249462703500593618264589376963764606954904471387884171498903765693756309069260687353691864717945055865549536160624157131791856309620273136984064517732937684722770883410812237138811454296525451823569615947976825348750126275247374805313678490781853854989916489122957439660025866541735580111998470113125310206137232423125122663222195779507986042005500562978514424476531048195831036573607340288455669089227958923030354262725048713447077455198026525452838152610240212998490614158240928680194236881604731548132162731062125348202706283218918572195731862735115339101370351866783032856558783222684671541213863812405815468307548792470511140192853213854616585628666647551777537467747471702561957392720776057326201653751756092394574982468041445292104332020554499969914662640775890322976713452645528965448095562404847538987286036007189721211208689626796186942795130420202299991243296004982238291371235463533923561780042869747651671014075521472613825069416263673037299372648809650561589064590826194117810028844875338686521834958916193740762956746282612604595094494779603315829042363988038692725984719587934193121037844463607126914206325811037399971206098285393884006590755097347403377006443752969621719716156065232474249165224047879785083087683612259477688483156252406000657639352151577311889861700319355369585927450472119312076764802457149336770631901650457184346951211344986075552317845423279707939517494002584112382890691039293825489591723459936246333166187131093167456715377234869406345993211999096435314489067978902069367006370753648190151261414627812288457338449963302011106232874376956152536271528182758737022718822561517627322980798194554151166960587031965154123580791337886919936523314310948733046884758868525634431670809501756820934094451426817001993856246556874679045190821179762076385389628260168368252815125598135898493062664951265134698043413303862358048024289592494578896347891065688855538380578358644959821000487310336931958911162504470987735424153739127191736748597197395107205386846355357770181076090422828926997800873145146944906317329396425971893597351184557971562610853463152149194295405368320330953683446781848802828191327699495101615353598911893149964756420530034393088132299072062128490889261092493508435027139687757704346965956097649270910794129651361701057854889576854404795796944917133944359231323814104615236804451711559428797723061050330320825468195590335459835323328188100561171051526630906539080902093582179226225738295143960586032555864075563952891087002688593038354326353453728243659130937068612321891308443427076673814821204761591823113080635704295250804599066968306719136229572695717120340846454190494892576534429535714480723926675938533204222781608601133879634622262870083166245582279001598233627379026400042725659607605737174254514550551742025024676268951385186860317310700485789762072809742532995795710321050238607855940947131784329101437451587381745004996399132957548531392324437436431507689063427680862037612635040254270349369373739000980114757230761026810234765827007264714990895468888568934336318178742171222315232951115023036058348172368224075149551832266272743304395304809615724993058587460257769184753380937718753503198571557532418545127137043734620614876783569569549972618268063228254904938639680170996886491099376772270046949731310123876101750028875240684720841402911376618403285489229897813744018844225316733700578469113645972746020082055644340116291514430000883421550332024148170959484375567825367584651512239812822792592979054185355056716669884779534328192115852873578145449451552137408215335796181993045116281212279964657223524000870110342696273355359459508981431463734634750911005638723785651164302511069434744200055814901111055373549164629058292294745794635052052525638326782057055667319967333909863127864368031453265554735794476289002366842421526926520337049226242273829598581687900367633215050695174342448767314392705526978880703801113527960659250212922640953565083077400289653919702270463320466016677941116782535073960791813726856676183712962711704584889768991236805938626626388123921624745434928755505303871053496899502174462814273197778180788423266730150104746908197190239281903708529948527754613098433789647594949471061739150933714947562502414440624913880679237047168528708447325190783211286496939116520660260449993086992934519398445524677465906680316452138878243659977723218452727593530053487954094043499406713457663767601053242473800083095129686885502461680311641589918944688196212965711807179625294507800922343291862536446649495944060109287034840157744672062857911645276433100033297997128968318996436786700044280490743991683100877039181389734183632624000564946941107775730264813048955447911273636590266192282822169314576462710080897489765094729242163361218710431877108488765426876264728704614281366478906490762337860114039506479545701409565102504237059568520053284213740716511983394017690526228541464153254338416926095218482649618884859894534707204964306396727332758613108533323121395944458239789800444293918770281423799237621738454325401971072852353357150914449421026729645076792978084639179689552682446872506094565592512761137200313000113778198362355326185060836671200004126346292869018068770629841667252639240393474600754868233319963821224996548814232759626234459586928619133523717028579483167343389263465346398068227204727317520704403279735310214476215259229365478706300122431492745012858518571124060428789227607255530314554408774721568141362525541941012863306470787459969779244907171188196311846263407826545555083500686829728780498619120805551255204257563507733018885145377294677035743807730162207493538532170515894806806885429444057319106305159543519910505625866200865740740863783211357505759073420589760053807079414997047244056759769553898916518090956031741163677594062411508255308029262368629798010505872862144717796621108188955010755585764371692947856100005269799306819178661960826079019548592794734902428279937579990994708017640607737066618817785343076917592153600029641005974068632896127703679959553412911444402152755506865540791716907470772533079463851576503661315540976706167427481345743791584883283618045468208213194327691445330039938422807272924256767456652214617013799642820434453501503126343965375692815383022010330293737835271524536618081102463172926286465004088810221443231108493354750104598260898397411723199933544807349421832839832842410667560320891457411757412998837433921353113529313499437787830571625064247516362518125110947304389038909475440709309303576615675621322433116409715564915454117933935390109807306044443660321056315670505040895063405815235900862601894218368173780603027946534889686720977401863179963426496375287379803707335655513685039583628311556026353339304693324096454396957401825646480113930602279149677351700583421039376269540531428991576706546873473393279810802302884874438729094578025932831344241871017935689258780006067232427028602848055269841461018622736245818172633147673682021803904466783256389758850825341215796928039128523758003146838641799013419100849872107097101913885641098533409625127982117709305505507240281432325662389624854345740198729566296772852907485918358864912995562130697220962263845889773223520338115740815501132935652765924824706953987136556596937155490304751802889620070920397902414382546385708699951874289338904974208819089700609637379311043228712055740113951138605973863903153018547745989209212304625809706301815940761249179175630536262044050651684261358455154339806012080472799554901393980382474355381368736716735229717323819143759840014539052103156114907493111250677312377867920673643490338598014854589809129896971210602640726249782227681301998407127350960644813491361148223994357990959149768144975979491797692796508688742281332788847130124496307765515364989608543625062219157850755742465440086628640011559775355948326472164171260519495541046519991150468523584630758461695190428429922284545572502562858794234819511078440979281160137554890653648954613952671481466655200833475355236128854356457858575284632634401974713666546377808097296185153188942520711667545729652550229066928203764046770404008728312795188366838387921102349275137086871960757452247438803862817161781048556356596696821443418053467701837016031338838664228044484192420390957026509433765532543371186570961240652335587782362767961214144687412632649917737840889352164180762414467143115620249285430343923871476444587946010987004171649600608818940037561888876032282989274624959022272007651504651251827793454970909271941830578056036209098969605706542349868914847334986461174403787811931472038265159383405863517353335842393503059964148947872142972385494446906275892922359383285538718685031191763215953300168117827873277048379075786087412840097339845565204735871502651277309838592777317799745264018244462638011616027359076006677558249155850391103862712051648521671344054432066308919758834246937146012039622331116693079175361791891050180028758080984252117995494211990313651510545495955039871927129161563035792275197124026756148239015261720001454107691971084470433252947365920307150923441612758517588832639734143004783921001863650170123760834464027063369005115569640871279196853630172233991319891041410796782690366537106880634906405139140939772484193950989172209999306923420377013033479125406684798922346600137686397745310282772624917768169694056308792588977947600560390688547615000834684208655334105340102593341447845952245273405606428021590175553190568299216836243127343188631730361821379455793742030047290988608628138085278572780653520476303252538074335338476374966238777865033700291519036468826107550769055954684589332342341915962246240798956094937078942484869261908370654171749207159072038693956841342795028313982769033616795983762331549939276544535551357650025025772116788412417519639748296438738156658258745671314457110382784279804930580455554535819237724542525730906725775307165107202979630123548601129121897311209038285622580733922703178494199711593613018828706058811675662325859485312695208905537416693579237641022854347888588358707796522842751204259154216622040788531024704880565958320151573368975625003752895577037340304586438104694761465979386704700493402061563436663022260652916263269111016320384913406764533001076488887100556242399413981353062803194006316445690035417494837938576513088766794442006937823662198758141757472078761103290084256714307610934785758827430009675713118105538994479398787538498811903365558577341754775338344274773065842626169337347540179494988983221744850090846653664206069612474722907596793085479977347869594977305138894290320927690455283794032098658565778789928991272806882431885004139755186275598167293062296357324137966419545011407015588360814461236080906268464621037610832054916877955227556770930186047492292645200408360038400317623721515622555293627719230121326745570480122918507480545942309714001663324368283220466207534678115281736105220800516239515587069760137341088993745269858055301557692611930895816577232194992435903990042335600983444766974411794023099181050375978274539368958629674421240086779814958354963461366992814818732116243468402437135844625779251800412211389942309299180926315201499943127153253831757950000867963683773935304200247400569618428810096934201695480984106406792283705257976056516427420147606071537589319342075565332900217089139476914279864198830080719749811567721842633775266500573690776363077594086733414858263970393224735333324587175634957599785434008690521157693165169557569053621263359568654599510116642001872579658737892846402966111622961849000776399809422325797013271711047739291182134138160847050728377143215476403652178475333404651040111473023451789856115954285534394456703344811559476441577685805201806412435493702001778623572419952918197150317702197613873886798098161760774385860694277450948095062734971532068362300302831701545740328667320548730247561983839526214164470570173659544731771946870514499057443997279197040050394864972704770695601878869078738576620385110024112950579415981832597436240021567414380315695810634668321481713041045892607773797329978091292681226018746673344872859382796358778990818995302188355742706664488593462612527596866783276742601172498856452833848351883754097545526842583517249865799677322483187399545346980610434934728972916627286980387975106483421560986225525319586797585411006598542968555317744653424777428365208311332015654151600439197175878542988104906704900257136194377571486422830520788121059291990236055957557944381277148705336830322125762178045789557002111041040141884386181595906279187685592379314776590914679398486909901371987139214760160467648663218876432494238958767636888733663115374777146186486367658334426677641419287704234701270121681861507679878384142714196881109508827158332346297728434188907804560665396049660540890788776163569445185762995594562748564492707284547261362949280156425576847325889564576418150831559711280392952715177118006457639917011842549993808494103193634430959537743158538873926075604417499343676846248711570209349378774449275294159843871030467377890890113825433977325781387561078848538816466878528045510550001593035700733497792278226451134329794646708103501466471115311309970235258678518345592327635273500640022431033028163101046363220186664024871089023578524365997392986852074107458578108809730863632842013654356387859201556918024630923259464134571651521129680978887202610447021233473600622129532870229053689225536798188736216987798730740850001275708371881680889449483863484701295826764488825906014988101031219738523952861349176004780493294638227115079259138412681506509489949820834867417981381190884322911193279587736223011180785248427014915315413159725698514364270830336959596022482523333939239865910831856327096198256179961933109911606583511354756652755590369319853204107768523575237432444010514769257057179303330087983168622806615926622411997073724721078675524353488856898871714151874203580315991136904903102269956658043316785019563592940773623699033750091718353250332682192902296289156475505706289334366475751283442556120612982241911314617949044337335502722683062861017613153436918535401590689810800000869956785994609089164513765943281182627049421070277778237264911980308082014538261528912479493315177812535806273313505721478397912218844790624580595844400369115425884371519872666060349214684573122062382600159919740187667514514809203888660371827179766551189916309049704009704311308082142633348321400832395204065098988742196049497359434893314062900215585890350499022176448490586338887351628998059587037002347638922993509757058244257542902060226617129515165401666573576008835932915840248535678253776923878039477678356029262738181599390521723865336520758559299870071413815190836917705232763408919901017973013837386570661946330716615811613503456451763215892899658760905217285635912588174194778981005885330626511588616937414409702951592027568158008775000132933487873473262330875637956100291057136106449565206228630033970365868431007162319216169609219795040083240373497751798977063620805593192023381884499857014849737573595925789786777211399609403585034395573284801694735580899921681872268553692347612437602783456556233871294930541452900259400107482784538315057587755946388018728961619677507850437927723339436312606045597697398088403818410747868815215850200883965071565136696641268040928014674735374537400826470446440311104412896759582329317262552883375172688689602426457499500755572422000690747785828528106400467507034758665016232641442283092458748896378589027181021818267074656472745788723785223120750895377543242934732894277640285338546286915596713671091683364075217327707735702357920288739335591889883297489345790313109576175396432593872199400414645796917718794179643162037249004890276176834933049553568602450394747288197969484762581567320438134814771489660130997349893174469633771049726103850877210144125959675931222493528156602046510526191390042368427232252480568007973802549385350734711024842244371435734347174718110760931347284548718126817657916335171783832608314364597833881561500733338112805775963678581263695642212762099326623252164030296617331766881869686657020683614881578614478783630226884679976902965008427796258566143462084627370303424162763685535123704370119935744982956952136662279141950912251218557458416897602444313223357873194589479918409390170656299063363737328001729913197832888095409262308532998518200270620980153039239840368921443606894689411089146969205403612524403970690033868346917005177092375051551636766258028683410851114030160867434327749747526688357181733694744262750296471441847818024267017789730214776435229924589194274737022212887771515811684986174201894924118236338397258202897636153440255535847289174236569109045614575474673894431749895651270697302055599156289283216766504496308251533690556332607710790322011775030351878693468760118835980110931210893898384788417636206045024174414102948010026012717554955812126339035686196677685646520995457895982527782263230360970332932244538293764729755809253224415734999892771523164017537164271606209280120117586028339847091943579327919794957949282963263453553994179792107973171011509371403755429499876942371612471124875495280751287882474707078873395206129567647999231816526851571536327896324502711633940181367751483821068220205441979794591214187418881503444778734288733230305622680405133922845880992927812060596882534129594890869598947416924522710797016598602304305911803387595362619168308680393698871463630132542383628834305954291158549625747707494963576173192762919112540456102275562365051563662384435978447416554932073782699287892302599226625624513024971014742988395739947142456146990882172085071164701571900480019227899920959677519020006691753983060308890187320764130215382854669136368504353490594650172991174803839676523594882406452659016724013298993146718931215798159956915843039465847853016889782687247101940463072814244872471248547736772971831648242511386403115895869766595407179019716400380389896318388675957375756826723448135768996593991069540344479772861399996052538668625062692857494896256276695862422329806783760452146899415298721536787853098237254907934256428843502307879761745558689396335856174362678257559705034418060601917569049621090315267448010099138858405831992989734942208367669956328309069979849697245754409421100471980873154395756296345033037814153233870142892652832495927370940824715473375967190384170685985521610237416003189661481053502123282660500711978491965798467592722258467266628761289892911184294095461506245225341601135798285469797809775628986193428955062659658392975329853593330769888094629489345134935750424428576223263408381906843556640573011469425211399634128013527343279057518304757965459321886602591334097533427642677673674332457347416437400789044108057702121316124736305462783547457528768415595312430065648337054478735541929924654353656918877241381992313518616418292713053541049807692974328826608147001926617164202862881766044346365347209565887801289317226046551886758983113580318539199601290033332433798142833057814495198877360112212329051266983071650736442335199770765728146897493243785081839869874427203087460544761952410531958020477913816576184703994249528370596502129069056857934540288241823363144978895658430308718027862668391913713231889204905016436212681574246734159480073241587746024217695050016669823247129303428989449030476542856713025037048195195535917028148188442046362867835541317239166405625833074893961490089792384653610860681794469667781345660172403578813630898435845072174016318913009640699607617896250729921817205457181584519778069565895415449875673504340529279645123500171179430309640368491701806211908445044402009232596718237714393469940465313530731941358611170323122931390045055747164816768327443943034808182315625961550139000564533778429460462573151361667783487672248408219950780964606970824211811597182733485939286908522598582412775803396548569732336182518240104485542361302244964630105559938344249552601855031859017174324209386842778948212464231067318492858864719633325878538541366479757873013352686147394442773784961956158398099741444826965066693999806049344985066460696006183387802855162354187536531658729134489796432304198172226385957276083365950292430004158702659393245803183121980814858359557466309004667216902788942645744019752154557709238123432937757751803090758689435132259358094527069717590308057952368386201030813775045831026874209480774047697665852349866134477496362684031287688789065159613503869383873777325730074589007339957980215479821642864283714256782138912617337143110856658015012608147434297613878227684499927821338478944888031860816578029445909783367838203203899311979194617551971738589192035815236174426007422307727518097672351374334802475788124068600990385865761433453197681642495300220884624233312182777091128135778026456381026170430342639646528951262918933684030969872777122097886490030826941498085044136444735946813850272319808770144211210651657598502831197348315793844571672324378823377781791410815042631765441871121015273799826218404936046697885222686448138877339601232116388380988707437098625616391309349777048515607213911048629829927054768018480446050761036836025974900193887104773531109181419956297541276005454637963465572535911007159241009438450721121643474423476694161438487028270119525722286963761390665908745658181256708180449979366630740291039651153475467352573404013181455860130580136732643791372799678824403670446526688630563063987046755406411948642890879619792968995123763277745932914438223865586392075412444761756395076522605599125678948340450858119435682094718616416234013204826358869390218318937736859199646390717364902619020567694813286294383094882584680800968846311426276482592711110766917052481493470256159487046804838487726780885606117251651019724911904859062670541166424059622141150527804985623631226138639805663679362020074225199847652233436222124038212694817856697471676241066690822979133335381121313366041702053652511681401926014217531109506862930494434492709956056232123344923646143319006898202436298690529410380870404930582481018043026620145096342193958750987064162956546130254117853586943542043404990394089175213612244263600110332211457730736743760695207845928567567381734726796366352120810121455431570994780936212298555731994904362728775861307350894752899724389145777880605014603065560626533042847859009816767037343042055506236573552035585426664486105355481419841607770691366685044187999854556077663408419572143308070703695632794346405476947147399236717186340002995586767325401399181291313237000717613534579709283379867370339225833716756710815067529775164481049945949673354668274065646389213392940177057419414266436347629765745172423388060481120577574758733597357084877354143389829960714793638483370069594073702726248246601016821046151663018347712455971547606038559312312961584696436091786668151463296926401988535077313311341216102641817899650920979634101838001498882194137563583308369481024352973704985485399464929560759646072312586412963426267441475004168815823828643452210857955679140357421048725776570077080633327710419712923146939945005655769650904043445439637245201866219467464809817589309828581032971848656357945392783427892062530041037255857817974272620271617886617058505030319191691780927789214035699791959753018699973028889752083119663564456389856951167197898351935287536409272307206786410303357034997855527931094817019653340835808914645240260309926880113397322119245146342737970357606444411577767864926740922661502474268733397996331989369252063890665626687150438344897365868877388483809012330583464367731687895880916123731835475132066040366579592108452073706636353256057905107666770561560391739589210531551736357902887482388829278666603122661518163801148671244919286107811002689586524131869334228450622819504056289446039670225109000482985455101891186169421106103904375310641591190010806509169481819993010169958989936940862574340193467774222495600141947959700590829170560766799687904151123305448966980778901300782683591260204259444038444872993449457920190593828660945561720338593452960809036982375542949235342218108599514146001480374080394866739964481004462624461273808851682082267219139251673932899407851934103620074186968562223477683584370068949904564764553356295170622934413228269499433733417579647561106650123662839270026312562883172108071835826969269726743588285950529015396126452509856283073211512639897887043088417589072117197719927616711234854537661038546143740434451602616457269038521962697560198815814556892216994423027018151478050317936675127311585242258947017014897618009785191751403416912163911971321278685471059294518390099191492987261022013393379792976031107518590848037752612995647265792981084626947765319458585062873802992425328972380592091052679257845927871922795464464473578764142822805692114660163224370039586361773398259339352430547523450547776730844889155527664480897887190498015285875162992287750300928488129212596409036326009786420997193537604627048524551954742923862380035172680153350066782602508547701948804292229620568305405366436130605441760222075222058185082090074530882863319003500346112676751757854552449384892760037608100207182821972328909369392972092468980931299120113211274897713337296004958842858631141650316461113070680458537971367984956990508692944822218136686561870453715348276190762616291093364223360261784035156394494834382413591095259410254816781835476192711582667513869399178042728015729458164711264725973890811921046953206425519360709719652475292347729813448435804911284339692450452036935660596996847939646228054725300190095548258609216512708198915052897084395824070495335031678426367305057754446646687154926183137652698911709558333593012183165627486113193653423723135107334612813485735885656735280516341086642405864843282897362041341355715330271599087747253442032651241903230383654445623233551478208414030257381349837734714196268894590306869609809714661939627601274218084462439023662368019584532488693462259700919761952273887953364577509989487651321728797399390379966663394107256117795379765178472939044370698625159083542712623001957645288679686317575177495790831592258674640191027756968839245533729822690067280553233803843908400232726424910891471001926598428716963105915405690262894634853743251230172425184792433029487366604311532350065581591068162964895353121806897823461538268718988612690181562664074522863776527804661171883330644979554979253590618912558078801593870176449781796185052615532298881475841703684804916949579123907881592869354030900643277170743603811916190494304590213899928246986132323144030113389729731346154842451305760477410283982804630279124906057112189569414510502933819470875805317295903706511261570492327234153450496588259674021501845778895881537724391630818817112372196469545570112366427253930418253327531772252226168134410590985274247253109719892123195725340266107328353663147568900086561469308285310274191426338372721166609972671042088625763652202376759567790762841063315609143500086606913029748294846287029748235821349766679953211301847026043839871910345217407938749513092210673010072218894329687480096072937420439520428330584650928090112745795228676360967624331179158452688723269646706028099164272348147242224826472419082908825220771457818532967571274753348839865570049194346253778966117051107625962329829309935132150947697875817318926115466806896715947048219219665848782637041360824818754952087591062943779224582435962670911868893585005014548102276164040024925969265694402251814831680001507427061908709878841870286042524318383585370171370270241744129513602175935010602676551591116256521592487414278439000103724552767183627322848300768637525585544969507738047651806249288999287826902911725817074602925675906622618845923861079271739042843222097291918530998642818056132553732470145203292876761160593972909633514540997374903478538699317405089080603831588110656860249566547790476318372044902989160234117392424608233811273801945506768569875581380112897100031500082716399270255189845686695087687188664903760551751595439082277890918635750088214801536046535451758216503425514115042791739213109981399343025098445195858047159909625627356535546088484314718963581032293004554384091784532722363555530641943418503192934461559658249173644970173517299543486810945376544092187053176724499988585483204281071541821098750785468965369391498264131272214223395327515893823427444845653871945183217454516832169640358568693778084231325784677129168124278807267959294101292961064973097964795083210233032640611719760774823834041431966348480644449920566911731013204697009333334818132624960558220578273771503258878639175688604347261460269877730699644986857830712653095285223329585079806889820504121223291282407411741116225938805679544506632674366674615019114400785625867318038976323066607451626523692815984900255192128830513747174678748193540800296871864434296877238318771125606361502841778071408258176280270614282549277126734790833436453646578908805705298936060063125235792001113580228059662004205359911730953820237340145084739858626908953062652125885756679922100348239467953642590796992685201749893399261813641448328640085481455725712216125440547272523486835503314175405052218298957699151470201460257480423322809249188222590046558537562317784845942185213258334148487603914041645749711040665396024748933670374527552510019508174470448502884617723842498724648131836624814259910695159621731774797763836193990920627323074985840477961133694606678928132529040403709764067125077985986978875329774135191221687440358437486337162200804845749023832867400311588416183689785042300297894900167982751864252479860463844322726626062848959386007223674654110104802421215137547275834741366324997668459597934925967741063606708453063909589586202471377554360476060084476505612492525447130685752629893520879726895085801569648720875890130626939496249841704174522259437356555924859646238844856053145768817395954204217385701144340307916797763100276921521020362187941118517720839903134132567879973050650962423467751828506338754601885858976621714665837730025650990425510735262287262963339434397735654236814351649350063083701151898972950031693472060940286143493386405464059518425327503014302375983022614913129700457490651227762969239014402742777229394859973850311055280144747852518252940056279772270282627771137340595686602752610572804259710795586390687216035344904808208384596944885139310736579500590505141102722689233606644294069064165189528734023801686667749187144999544749624208461511129045713578422069590624027827049044601927623677973034037172196516075053144815180516846339911892711958453337930987088947364400528312769467704365532008973254907790538231457861030871578523579321686293123289727357259474798976789120024888683946256590879682004832993850907720164881303194720444808270770607182362887260415821821899184407636277236421027578301816910442955599227403294970302376392466269080737581501436376226019178329791678201320535772193205012166548672634565388367361350029353359882042954679352907523042751984949174051034466995096422931056718386607258553796323250647071714565991481420929962230055232249113417889119082666395591018952028213291288315581058764485489850257210783514404453046094778206832951376894678309089839063100436871910661836235913321116646077122901366794752340417452373764947129712881413258870654428895036671114572843932547314851703948245078485655243735315560197421931550850617272853791715297564803027576598238909058912969522150928386900757025906758286858431825930157261498197126606246886843338584575528438731314030855929489691816600870611823389667163733932288263406399074503150392731111512488875092846929086976943242740945231014958425106206474827650294671576988514304529241179572716819982392330648398824692160210132274964847053016741112218281920554822981678330438034543520280538283548446956917007153205370102477052966695701072468962191611443577518193275755054206069499503036584406534563379464485432549769015113588633731321275715429790705062550700463060225329734905227528136782779034798268051599259735560271926621365797448775839946887050004103140777612816086411587670188833822476962166085663183685157077663258427967642652695083744329835383950615870276789122560729372007417801914725214401892097613969610158123340232291001716237512138026387800589658468493722887242480968916581844435695204184044551895784591371888203672612789010069353935056531645774399965656925357517597899877793920585988110767767839881259369563081970042980942012830030202427096822430934643686310820211602450439803950902770056036251464369591086875930037002696752719294170377468634554576132055872691020106609323732011444399242421706009123144324200520701976313354666402617883649090747809604995296000306506794964567740730132018228201459812589294005305184478456354734218122536870529497877077133779346533406553250543101487410733521213689823004804416804422939195587136847135228089492455591060100876429401627222091188731683082525289956499391496600804127395662339459296896930675903948361094657494351526984489322240913994307870541562804257117612736365410816412072584545535902864997784697797033293528853370343482668249911309684345658514816273322686983455107153742802943167941609082253632710387465836429446707624977602143732113876608843382188892095110215176305754730887902312282676344945561148960682232663674797205843803687522137924724986150884961867271817913765521096189742114097648380707746523832968896011588550374991018307676527478978866628947369301530789048719070465627102405479808106513366801395441713417623586860405273026195174535345555058408496024158959507370844362876153776963945810685686201118999313096557695229987795221810233125778176328412209601802036258728358448078032853976736230327495123616413923924816394788241197800906040133401325641364344844198599553395617669623216964192892053168454331499606745692666629948130058693121178158060642523698665900825505508987128573330895449442132400399912066255571143400158807069248009200414200248631913091845733651157972374290462393956293026343856213139001105714757386111168068585919818936354580564871318955916561213335690178965042238894156594310254205283852131767944506829178568318879557009037757498020599954232131736483859669464012239721106537477934689212731340489658653123368638838513116774565893064170857432815671975489461007075055448300055040696257397354410655689270900770262443094802677144502852189935089419870228253715351332632671760051436082905563692885455888059514081689022826104929140952807630445634857702156630040588374056358587872135772141806709195656934717127477783542059894745017242693860834742344844609920886817031090951793965461772260971325042925227162406050594876268193602248520281386525233602476478740756373548143123475801375323583402980742940285560129438657475640430736267777624124581773299422024622473170498168418268078087299975398252898229205091416558629283324510654693205047936065913940610888287941762132374800567366806513879769480969958170506008611531682670772089349282811769871296005994665889789238649840122982470188257447179267933673818733015804046115316580864243755577596748698496918050372030844333637854245624882209146198828643592796584196745318195058910525022803009929651416098556666356073378168056763221068733444035213392433111565946678013261730907246815840954991402363366944033293567219916271761799664251523264889322901350340493415136787863061154967962732489405639518567439309983911453836350545763338722334759983660120572639301450431086095105115701533253996600557716794841642109428759410272364760249476645664913267426022180041714845089848850798257233984448166187475559473865528979976263419514153816782068820003991830768887062528057697412797751491107753051010674099587107451928811896702106475425620135993333135950312115707402208199245204201229241019189742075280739847274638174206815859387019958640674006137595781905079079378541496513884378541324944343258864800501808151596537425869987619153488355279689359462073019702859135370211085828704348600339345096180488556012921680216058995419496294329891553850542628521431350832586606403011670248191360523609970559524902975227191747346612491105298194485866382856971151235956841340041481926883551690752985831340926473098518455678541022445330904382057735119982759296011195277808481830162769790660754389414826587432923725218025508949734957875253909957993067956055166545599979531258949411770939808922944120275152679767514859478194123610445068017949804463028441512149372435459446241970022965804817097096340683932814755240434880358832405188513295186767038292752735570060825728566020037276929244325044433451949563167144438655794486133144986954584171832446127402350163711598036594433438133116229606211494438617005393442683304599626883772926952638287262821636179848966691378712270864212439424883336844476234615447013378988610821674185814247941254586963970586646830704989222438242950557125936753942780957649993266004721101405781950318723571869021990741382503977979696956825208690134145156284396894006416008768421645182785190415511150075136432289066188462061897888191309577007025904425980225309639578329597317133685438142675058956158019477102660934369399167483119697285714378333025259020878602689352982115028653378724643544342382362226378437528248323661484498523492941251882272254280952704269572309414357655499810747668363191417258388471442846085205167078708086815457988741050890685638272812161044577644463618648828415011248620622680621322975561789534146043202267422470527920358705864504445047468886261166368458387854075375459700191755084841750522332568649833737311582787180435740106520600149883596391396007756567077131813848072466381877385222859985247937742163202928641777051340209569212704782639961140232747169327839408793098956252909457735027561567702935661238769875098946296724428227370249364318053166041897031392826741356502878503886677691823948884639582087472303451961955073625040146290657670870277780734819744632122578598433350618591413604311376944049081607324438186820414155697320901234867625473844611093434217431345649129676198178693089376609312672319968214500704735056765380167248582392853326166750257575807725804247864072237804349870846833739605385731792128321353614793616222882287368054558745309673112933505977952703233541808928928733627799355942731385447456654210357053434210762608736917081128623021226479747594139986844249654096317966158769324641712984227715696989245867062178108808995777043269588015633877143847811033532205084909217744520944232312488096370131104854063752179481646991437645552244849570579611614649289627196297473552922673447178149761721492159858841551147042753871750579207714720647764022118782927078752292756964118996994324259586082891288167428477213227800275259590133831335843040250609390335968579685564980348569901310526124508639805960779387358101440197625205392020664005726726816329562968380821653509447774410638185739629017785574487824118309658642416924773765705900086692906764764653211628280767344938865105925792390104433325993771603277588563299864524578036698277270090545530719753303135285234953399652926023873129975997409047544048856060922990643689895525146646085114236203270660278248180628262897919167007861219405607581394693251703980703710289214514781403129364795957944106466803344930557497677407692570185414900020097909306764695240294319935728861731378816207193117837263944366700357244051302813815952471243899513464766961262030777846629586752261609449933316371810762942221925101595680045072123648910673111340375370818154398612910532726345761390343126755445491670917822188625873513109440161251162405841500130889344923053810043642221716645848965253265743475448477123028524794308822766303931197313345656195879087197231743487530881365427927767072899749688903565089323216618863562306206431183338676334461492805722181744511509740630486830866266769837944285916444578107410236003820896731122526651703447643373190029811618025957262620808955882478409454452395010886602331222571057845248427344237167589956938458930029632808389099806693300533864094445377028178103709176576808189997625451207668362335560557571394636353051950411840343257557780777649185511899382426200549414358765875977661518136736399502381416484189886465474235828750032709814846372279254040744708793523524783520056898955884687813086109233099269049395333709301651094186877444835524411213701759185235515838544135147319330635532070489701493218309969022585143298959223120144905028706073582525933342858889820344242335764998604297247593544345967678070396392259214022200295030578771060783800773360624461572709997560526914340854352558297416668674157859213001165993754783665179893953002392182180751272128511976036174553957123860426175380288160055377414886106941446300892030953884554889697253859851650825166047436065673456809852246807387428287931091920726020183142285731698118470188688004807184786473547959161848445855226206092768766882501683143574104136479474990616765180828177515132344124737415947318580693470915217368623811271683348519466223221511134962693637335885145290404865735089886523565308501333917211114233647937088887861196758409214970551923685483279874623727123360353566706177773643355609338144868844482760803138989279226316299410889751566662405190026734343036823893824278833402145336467433513938157867407944116175441798103451391162531273570303584361224054071250070256202957861644769866022938208214721101271496841893974123920124837884826863434104454737939671397363146173696398170343689873519099286246862594014042502329204350028244695091468432593930686296965831075043874011514637727971030229321697666583977916205960717252549520386037587496452729709753027487150738591557906213848047773175144992946161094805498653893946242066735914056215710981918971089215777887163282965404502561904461475454895569746440870738006950279092189713430615399411989004064220454246469576817654306401045898565344545709326097280081076230288547308964783446063277931478143068016131048709564069094658373925537857767311758594841582262343662080523048440090243843832709657718166257485048666315903858065770008844120685248669154182750005242623521855298895066009146138542733837158459496763817301242316510222897219622927893083834050671641460821880619890946737237180388123895588556102806100797923828096288510613165010143971104747147441193342325686227002610497315844325896052841687570542887148790833059521824053939721728525216964600842613468711678509114376064641814168650645244173861547706385789134795191561367195637956757508087646358035779668120801511861798548857167979350016144337035631092663128193375435185360243176362211478122093219483952465262479582957306628177457872835414194872041879017325273670524365001412300580046570920258141717850574653467450227399206399080778008301067539304267218135180406882815272418425431969634883647159640393060366617086253685176743553901411564236346895321822556197361806121295208497639268506990582864989501084492022198838528859226412694598431035068035168825921908265704445468143586140035559246785404894720650573300975250713783857021430844431447679061143446931789346437572912933121781225704596175922115368531268333925218927895891922500827218429307703006211385633099616729515434801531342012062231497546055740214938709176773891159998486348067469186365851300829280292580550165189912370906218793159680650228331042993120337192718809206663127375576177839737767242233547060654225919316259427412984600145406350099863273731739290707887508311290536168839903661639329700385777430497204289629920922848366655503314154936194544987113421942363240528170800142860966665646819540543639531998813386381536589676363061490574037159947570442653465975607108003749586899682405413995239431147063315578780120782507841475189414493600023650208050240339401290895354311400289034108892204935076077018170142456835828474396460831774918473673331265915996483698745395853089642560209413836376228718440411878176066644442818081987524233229598352460627315978540038230005649263238891302268458256677101852477958488990574037268103547121439663502813213892127676500434038518589561435676774780681843878758667634672997439961690734722474484790646720380543005392437865361457263920283664425102258820897024280475741259383497332237891022415628946376962227948313661870801253821442977758170652972335954232163951322174815164750437378016400272316410742837932558783645642847777041636737569643370573016592634432851073788202857166881665711270009669062425553955760033123660310369542787785301936922553049877570101698625356772283807037184698809650758118019356174444126068543963368986007315713485798418934427916516872947706691162214933182924315944585197060591489271927047682347182444405966879756329275215126861736747871843211562850359009328050356511778499667129013006937349276518971336789586582857083695297053434918132324899982240235920460801309931877808490009841087388803898378944762408054951618216198510111874188210228056913932484236224773266970036808059696684198710504431811396533370866886868219744793016318777931780455038373808372716044856921161816555196818059540659052912320736623747283113929759112001947683043926214317094530434244940296823098531231787713986370225448331263812858516449946139432771111585761847991895773863715283603126842304856076462648047718363249395713127628246518846709772862841762592957690418445569321963686051044771635125245791783140829984753702761666677788547428938146068244035023810534343519888803141395385195073315428034966135029978510886968652719660198755327233385173003405080438247610939103458305879513437433310203380922583326131186786473864570620605584221269121401375941982519855695789843066057174128521687059381008577198430817359159085740774569750832287885996092792922650514540040323359727664903915422152686377327011734604947406636109723368481094292627797469331348024790288379980139867653445754572542703147625940931933621186408538239043119161622899835731727584576302276541681497048246512047706079526961978781603787481241744165682194868919424409010947936324196542649094719993644197899951455493383459414265078024532596752525394388202657081967617935531096349623250652420740993201020086888021849512910769728719621370807874748546175618490784449154854277240481032511662629348453251161794333205282888920473483258901312739486204090802098043383217763994102954284226736635658568783527402055336521607257512374958999250040580797475217750115178331553950623921441251399537487123972396862651020929620979154438196048154480298691601080215224723418008157027124738073268450877612608145584377232327357927565373741652349999118075362526900614288456102694870116118025212611186807833678786109624487258536711825719600356695423466202575953266425541203089896932605746846323453184728663708135540537417693858222788588567443405922572039157690709909215701801948746048949770096070892819305117423757206803678127233501821401847101366591309617776970933526550042466157739350716390838187901744660684620635995901093807569655434126143688918845659037873536676119274820521424171552221460119355291788287033621497187878081780793005577061874475095343171883388793430019391567461426204195252663130486411002933688217749857428468617068772854383119634919252954182033941049497971998434478685391460897405222813087438259605389336422878693716881373498890542293261943490113658995582759844908911857336727196064819144654844733055881767115528587507256376363105569394540433988111083847099065296023063068810660049233238773324811331063572117688261482060676878033180014542529557135639490521485248610027829267807660326868508853120847408560062761257770114769223353126842552667049865837717369563048206869156585847026809201820499903298970570005058058326195979943145335308900023106839700875324765425061240915433995217461531536964958814067411322137205046919390764450098412777715835682718594362299848425297402972637454922393032848833632123796070370523630182558748302759014501667178064391540407137201379126551783492300574715503896634003333520883020704314320568642052265637329722247447660248289591406368477591011578128519736976960798173096290159496035520261674217681363196786467499741642385319715209405355264169616225795951103384982726264912795134208104070671195926755320099565825695545788434862238810723551343383465207690285882198276697408625405093799086606791685295401905285210690058182299581476352531753608577843799336977918102408950022755214384608847289131759370017242069498036797230632100471699883305792823360467093822825961151124574637103729324819378910932299809706053213752363504170298325220593626675856086929950500790120504215464992716125166935462216414517684420904327375439725759323972298527806210833802688476757177218848733167444303432469937596672610625382539106945694023377409678149606897770147038874761802482356695634469142035942229668314471286744885310364834766147955093255032032502270454395109443949328019468246297542860439500633677024224461454199558494579324399079574273560500582873084285724367193135415055015679875302465252058048503180667607740743644791670352209665143617316829730427114456796228699856775136765390231010932068775314286991561147260528310719884500738944406659993534971623029345450466654564667939766148683965391783966080903164507067385345283394786312398422945622237829053720142964846604575578526422944682511872120776419359800546788579036178725689123256219197190441839150579607514048550667765379403491813857582375726711006435797006719059281406415770372875334284908075265008216469244503459848848621628026700640677093810268500392363144246019890216732218746810051877493981102632016487224269509315044284306542468521355618109872533112877639194411290907089700591840783636763341678731682214026006582619578645202123517111108940967684803056574521689196688347552817159503622235674559022298133355351828212841851083754050352697353107530300237290012739811933093931261886110865358445353508029192843450301556201947877215764283815456932239233546687130217958313763377181365509160005564044710926327758593808279841500701141302128584408787893429989496652165660709021785386939970673408490343723330092697712469584944509568795099810498604793245145854599171170964626474065173520244968311815923293862710975510476747247513091803356859546489149597575895713905013087380913694815507776189247869713109105940851446846219923986073620161807090857510598245102985529609209364514280176792403126397753656412451710791242193559488240551183902441527723332522417865366440491357698281111850157149835900221889768471169444480337720909216524980142171533953287802468703292328367105884851303242400643061369529251109982014008895982594847096550132821087244804842079358600682023590342451121595740481733427579644875767073168377880649250885531887685648131796692913682835745489331445163940217523090495936715665807963589540764625171668490478305596279704045502848950126445712892100891697175424663960365089788118022143274808801178515883642065855268419176296311809596017672567741742820671921211945097435265516421246614017841244204528796602865893482683170413209687856107290665523416192208412475249410945159182587649685441913054758693759279015397409573508073187490187123833035356355083304195662376616434181397297477528279425375114012687078125207173119320029641079852091956079163362902668831791670014288827675515813613089540252438469411473349739906564088321653849080645039934892010812324881544898100619277314328540560047803170041881387320006004293533429781786098642875176691056063317121219558543604783869549063904337484556998591312266489491097982369400073554207677721773578972461306998418157631564550378327140472251832917344425987457161384479485871739855799875819080426635075030891549019545240112736526852950047006977691500878094903899437655820747093270130107101353814704657717806596430588842406163808050992039894726581491010168086797427217078762797026339599675420244493650534685279838499373509466349107350405161857668838481093880120501266541823271577929029307307449529969927137758920248071658397625202212435023965850421385677071839451517690377458532714029172653276873383770170937907835242511018139899664555864012065051956432631154358787832363027014779882379681608493269312214576485285907377916615153887331943981091559710386432006937066349223793785731185504222638302635930259500394312043617543455153967677944715827952596011858516440941759687414690534696338959607075389376518299297361360682169059636557558560277343975540862500179676235051067619909248819930692711134730768076085264948234746062501313036136421404311932092398054581095421613674375045744578616411015932249029167081129638967974757040267115400593893532155454888131669761391533500790466388883086573495591750059456049822057750187858486495812171483046782758818613631317025118728611961173938935100489343096389651211762921662575001456178791089921475194935720685079838593268266184393333511829378918684992843459616163409961023934981987186013686699434512914907900446888599333943482725809864786479787395884916826467267584240654750490985106358427015975019571032303514952056639445766642858680927817891850508146288023397641789639329153112712824004018809636704372204992338642919958563006896143047778795613945527076583550550155533506079083354611639659077127431919142732840626505890358701962569086910655444839862464306679566875743347901535664998207324164815415047771588488967606252063277796397350608074303868055274446125770012627987837136397984106916361805544660634276051758359346977718681380892766782830118975534468806363570261848571160997365032805498764907119893330844128072307684258772487954595112615863017944898377241657535207462608003586444223056044051164711014282712858985521911206828698640856619259919793109052452749357041182698511630014681443735394009685290196109953401881863094674593224645981172871133129117267296748428008522805741817576767328598998727488149137063917428372067297855489444959439476361718832634444657129216403058388691066223824375233735126200025774179068064484703637327525200977697422285139144003099708995618030719016113353975209654721921503192696917507739148254975090916811359307788094249993433696894191497608168701938526566385246609604713058137276523131814618486405714179148903281638744158613377399031492404365972865820719684724571819924949821616623845227576907309041556318094475476818161465153430619759860736401861642745859272602023236222883303094078279429869631445770718981362759257151406112387371386967872894933397234609153109748560616675217222597152489571690739168494546118545073167955559819884762974486999763658337834392704987042897654877357080154219250687530208895582139434074317425291876936753585124349356090797457932328905766285118741019308279453279341107414542923193727789598081090338096943776286724829623857294726440548181841573266472638647272812168933601713588045278446231765231178004067196827919429037943665097648862982288834202796776071033885825776006559784556609191964905196879293967152614995433736918025542992039035017362445768407507698762011333087760603431892497091021622492544113654774641749778578276875978388639027578264541028424178354355146759486638504208904923967137511567475424305721855852850273515528116628143251623815726048176477030073072597383483066578962255626386824381831342218942310875378959119558516192258950188261441244078495459152863747000495611189134365544069478272231408070335009710691138748590872931188484651456942521251312656091398604241506234907797747969114204892486947170345090263988557998929951330801822387722226542956579610319161730868681714170798615389324819329436263884574115868761118391528622991829742927103412923991089542560024597529825080083024442759502326270795946204027195062688777937001068195880936506391195637505234966970229360372526926570298079074314724697590607097363852622666874218327643658125518266970642435898002769974515276432046908348339836619915349012816230823127880290658571732761001069737584706765397504982837822937535892613333855508327387743010418733432896397987645226165237452181696970735505856790228629575441590159589235985824198270917941254132409220237569940180883959975033757649134299735449106426482010629718685796102876796833340873637271393918456663346780654119160791154405878406898044765661265883471797284218811331239374862492179105386958468609434386268862266008022132285536937538084251012565414309632946873949426321424497776102132891153260849923793553284150108433253516560900803272894563140807373430173705131225033135368006398720522383748529811188783781581004775981240574675641710012643898446038634204212475603608797294249803566260353043505133156031770809658605412192239018643764090325128863896588040581624916533284646244572679010891029560114313577043782015514279044627184126422532389605567581143898499653639062407187501937299366707692288613825930507549066982235340230982451578493191793605607802617143979381267770663058878889187737625731206463681291255063791970249105186858743585906107440636556697827828203058600513934254000212499973158966514654042449040918568679292191710384390938089307120926069418342751339582917163126693895821419020927250389087518988005972965550693448492148242642397173761852245354068165109197584901806474077379909270394778436633442122959635832058936838727673739537454686228512861949122183142667011652463978068955110738675346700569451645278094519953130936769292441399728759597027309632998981679709635971077339043714143012227230910872048311716889483781454342210020072984655554021079541229745388834759984978823931743320677867654403035167566453157493549270862117211839977066265220146785666532492262064771947136360693102143990102315725245383247018535241107093025277520773810885407982696828833486759452984680376739514949608619044337061288655829057111390732990014988658627294131394426609545842874083380049739669387987822915344792803230922550458706720164710542261859038339408138704031566271874810626585473464867248375834614400661385920352701773392065035056207121948817864740851753829373828791066522368894761697941800907068342648452777164169133369438934274780566881101123202645141536170732178916689878068193275928744050757691813875140731403692975684751956381251396190245379928090914898007913775737269819703906069336092875899647513153030254497234569411965162342870862580276336735998029467800969908941385428111910597100784354341193008814157579225004273737548619433635268119458287227104324197058198349668888825257956833188440209948134347292699869130995435533470116936066376973370784414215755101322749403058808645221541156273740604684225368507128343791914787515138968728523593399663079167479398755003809292707237720654657952154265503954848101591859045795892731401070082536975659082640555307186753582721639986546072864845325356188176111438507210731155974551660677740687059153663291844754934795397278073968543361918563074400063468294345277928852983693144605404558550179035866153981523935498934184991181796620600408188752389621392262890597005646672100743426433222989097648256963843000109266270000273505071205539813991146970559073033209479914995491628476177655474647564734769007593355884598264126444218839980147027011151684972416899598813993999718664471460858620008044095840330649075211373786892215589735316535132900295135768593622604628893634103400396650438079239761776562481623923258410963093263665296295859284736210824031971159578444779442719152427139768137441674167602257012898718199172632181796941284825267251973452041531377761369079691671260227968871816334317954315404601933896576299471607827359946614760386236586690983323576857801999147556757931322627666126749811617605918827263106464747697274730947258275336403308018419574119089700240622941437597031944942546119237631542133776784881803748606295703895405107297926836521218368282468111627793679296083459629834549809086185334301864068547473081432976430973770093694284127441226304628594979111877044933397738655220384502966574639771959778098243880836199018047907749873991187866273201662614333828361748668520274707798284882994668246547742975522295071441545324351697474136026287828132048742214630968790727096874311783940473729755844877326430649261872669304199549570307618174695505879256117865989216593196120342608163536411506298834107667946347864444116952396983195389255469354005571387755773280647650024583884352526231509505800541168091286847582348362950415275081749002626581344371486796896226684399518669144964026026577285752540954811165231609918121124668097882641567699967400051220078417181607316150566448788777993855511633944961652911635961087177753411303931462294940069776808963684246473440356838113559639026495095548551509640731569893576158506540352691929762432071542246266910272147378207363072518193862761597377641802810147055769107877378447451379419334860541209595905043829137694870955292911260398235957985838558274082954965459542210149413873535632761959261527906212965710237396398984284163728005221681119293351223778447919348891467049194212676215276449974731559978307614163192473355181484213262673791382436773191949479149128165130851176917569994243903299555623787567333823045088372142188346387150547961592604558414967207161623728436138270929359226342479180135408733360857225740533336527398310964033882320909767442664648533120249292075482641438219640857584480832335692824069472264407897690936171591006266347284598167775584108200384536172026885977061417051661292710050080236186566497102227342447234264226385611161518422378885268015836441795281354484473515313911556101303327831899136409115195779864260273615048464256556961730869826314533181834235017852706644794562684513683067590182548004352256187966644955166031844335752448153616529059737116540713600568530613226528966429205797107856107156587781920981936496296745553379149847169569221190318071745400383007017544941708792087509867370563874921840428864037968480718443275677708233044145777632289061239196148940434162628801711058965806052897567214479251820056402730236326793944208039643366478135549312051451238404898298187631337556239289111874201689665933194790579251566570034726635945609180285579055717698737538338060266797020284901100126045980341527427150647180463750512603853181483891973361448382601669456870049283375152825640067270040125980591260012378478208338989185885246153849412152188551512133649723716926273322049163677238804751441105988839275563560682971546453234124932373723711030827143187390451777123981401765209131264987553269829739690753232261692392206858630640091316776874935315678104663705683505080096380641990480996463288554614711063665911632841176470166219659243228640067854314573248905823708872250962538145571879465731968387773706169693163204993306950460249518648460007559716337006427776003998240833271459370795932570662659737487679282250919628031552771347719648039588350426855852856471874606682885436644654855282431524183803367064845849041420927342248412774807339615727499157513305607172311124282531671619663720692826986471299423289689195821641309153549804232408279777153810104938416031762601909739462218072321351708707219802768960362899734639488728844278534206435181664397528642333333436520077194764441586449377911551908799836884663265631681919014457357685125125033232871275905940763523470557041778116230066104637689809288899103276152772756775827478833643458403032396946830871347980127105676491258115697720364372618994877624519420071250152500468696961719856317251477008122648023510315388230146222102188877010579291178342123703929781278791364082388000619549503915955835908310796666627589316779717144509128694074962806919818956084089219200319205985287353352944947091829003018575050775163139772573805549789566233301570524751294638801136001153968496477805724786970564422669052629014041161219264521605703269050899799811064496948845896122249654514192608333592445820990394240386246439769941045065950635889730591260767748034177405722243586817450329684480466495906003870743518513663351666847215011440705417557975811609511549647681950502120476954962854411359689528131724651771558356762976790903418077382586867278843454032255501017350512564339880988341254023726467182167104806244812661390764808456054101209487745671029520883514715712368966105366675938000616804050238427936942852939478825996263120205110438910724199573020180999782567409613842441841032084100764619112424051867226361979509422590639734467511841552776577068625034888612526756604850441442489225243145826219628924152020275721035401961784516859370297028672459288702707224211553511757070710573109313981548934712769270875334007125808802574730743922145799734518340667386917169739163187978206646131491289198213280218069648114736607649635480179095976587453906344965660901311383585407964528310649625513651623546196180168445956749284861263301732506982863230706965910675723977678528013077023299294030918971806957576641566074557988104652750357893952373172732134283026675491023977014216189616488113206884697980796082301222959235835205967162802145159391169086422963556239488858320648082458933334840007964321044708056096904385285442584840641936771767887733440010231154258205192468054669651149862677911301520599811666714118966035194518730624688430310490106391345064080923270891233372995128358869982284866505669996250306016302994176251530157818577001094815695108597825716716221909384810360124358336741264492868248377899730796879130174499373266941138135926651882906292761678653656432322884557955129978280644114310069807827447508740788376472751651795498372728644867133760062610546456616368033063084869168178011997455077039146681192615771491676360178322143268153752738890357607630934770031360498139926862597413267989548617936306102232490771083397791976513944646645253402244995106957909445774193623273338943940957650694853291015939811857453866867483183657481499522377003616268309398796562498161839088376897806083028192444591810505660421695887402217280139747775229049986559854692027192795180959677189749891562924278403240877644751060047132596762921364542371903353975066017656005912522275154834595591497291554061627927793506528843159187632317885193702304705458912090157714101925749524168775509149515230027908790030737802858353449496150519617224259388635110905271070501255699738687904843523560486993973145526225709739837080626045731199459411106654128473840401047754965635914474447965902801919095361898789226909514474989677920340128676602807216142262817026548379393115031010707606930996253742664004661211785670339500623236349849749640503121610557618020690730627985501084863989866620614781941296956774670136020764176026461087979047322201688838617214622589848535506192475910875624703210375875138197294004163609245124634689774355765804382977964909353866219710625324909925137295098393493744565235918474594338332368479815876964328785709513389996722439333451822098587457751503034658286738847881168471961803350002605445561830731633261242552441865167002555543928711231612103358047782039317315383398267427248963574884620044576991558843517096898994422437835345748187381017939204821121515844343346544750174203188402178233030478026853740914424773779093941214994864740655157944247386632469710684154663116857209312702195751034018022082021724740457010602577697442329023811038485025750732283995749449858988379995805382396679501252638426623196182081774718658982067200055556841282944941673919267370360112949309114921789508429077743275260470930100926477157216298424919471025374427625866530997428207958548483166395508399483852622389580563195357800500609288831919082359022517756414560614918936219960830983895979946291738019743998958483669920822604607499335803455330868418130522179699537625280970458939492394884540011963076950458052498761820876255776904286500869470396387839705285383397364989215670009807605228059855524027056713405995866880958395311994772827802746952317440607281086080799383426514192150841566735045896193499965767298650199034195106075479447700761023083457505677027088311312930475928661544095691990691833539540723631425256752194486982188224162125230208526551019164993857881406197521044185463013155375422868591963333088760211064770681903055065692387527373627198829308433879160235683952572217090888656797642714738980039348813645782099856069263829586756230693587050640843835673634907301231267358726645500623115912276827091570651937220923268367348120386687178535139010725154758749159386765723516105669246800414412604085604296461231708513052704506983268834870507651608687036535445227097918121520356650529603599876177408396211575995401392445401737587282714004686137663768264462158192685553848102589980152502592989801490624301740534575808332795304794896064961918852354150585517501446140095594935741922187560325832041538067751379908476838983894130118399646260932330057042664304252038639689374174984748755081219857923657682633097284342521973745331965999356314708318860082825567912892793732873823889749039146969740173581765397976434492389727364450876710480740845660045511722016163925178599000976372961459197371641165282134838499149927115140690194869654910747495230052377610802608093344510491767551543429954247196588913909989881688088098251013005665111085777616048163826380693886836089762934029430901254479769394755932258580273670399915390244049854806337301257572450341071658451464900693664002386164397243726529850560461063630837775155066906261345692978517031644973061267359724205186662786751463359208862984413477532505060758552326669773846763371539646169640092239682965493319431126800466276571910999204728068682460891382301206347448410803223373725015643068505372607677318945118573945663026010388128697296208152390692784105266969909071214520247177414979782504623044243174244217826166358272001484419992376776335445459148522009444952286885628394171061664571810347627344952355550236264645025486796745360355828041190956678623962166563150102448686975571876229736400197447962029811647405285509713814134574542877305449805528116037773627581427455826339001613482366945069136331949489179780439839898670354089497041484783678583139179687371660472247929674586397976865089559197643407473237371161057853339954590178577735155920617856429052897229385084804116802730724343728362551962104572273139092509673175999510268789004858388007096962209809456376803249981509442512045857470404401417168906886959033996803314352219503177795182765788131456667101359269317950379083713617947335513204584942568957609055919264388679328155370728267482098101694235593223059166819185810944138397872347173061161621532158776182765808039710709499247209755017622930015912778522788908351153470919922331645736804132528692395515260431794262536365284321626580024397657557542762826208444888310110688837036859824133619434351962001546735011746329361557945020190276585886110165692620844285543074019169349233370758804147669658956126301396526627485604821162046356375498255527475106570501896542288179109732865354691844845777467297410005849296789659411187532210455041809064623486573192422969670708724697207757104687389656749381148732218812038237951741799897996798260705848726707121933775269223104709173228803850323159211867427252567859039816174742581660876401189492879120997991661363930963600875470617783033905857233933656012335447853521705086184996771357977061757768864801972381233724546631294933255046518681917915789849525272753242214218139344458728978785343876277655048898939769676674755900290915207465004482912664499795984494643802665586065360466000660964389120956208685153633609947995584245422264227129503351732678093434621115432647287915951234222611941046516965462457760036796065580235396275939193873119057868973202549128303729422742508551137702208119913505724245192653417277684789746927893917614462476292005418999760302601694091663259431536641971697657681257433258867839085423993459923224556132085508263206775859842065399181057344334158133520564950316276254931739682497994699795200940747975811826550092473914048884323964627720322875999828108836444776099027890926673344127338437376800267149521485395657583750902139700509206814516769977356181952203878435763510543187649103932318535378890322416003626296180211771618077969301390409910718261406901623530724036357687860027649214166470748181760620169836004947558341024416544637164087890887664902572072063358647698210543242267887762404020976688769068795216813138000239550130575865289860995875668425973416077015080223812225391528022138179169350330348994630041473117230887018546499550050408084016755039198459501291048625300392238706306452648566675949401207573149213317213258621611784265441332676304828217153030821303880826908291733942459097585644659014760015590119965016367207689383542623124243136031719372026891666689008739740935156667919137842098709507320230760248420486753888876759310401121141423484151760740614417241001119101615173417349529413436573512797568789480800205190026266451197895413592235580574084875262826131217420540024836979882884394672011964841404175674850936841643301030230169264456526392795194879800542602036275860069918556064747179680530597203322502970993011745899781980042772566624021107398946102653503664086246844803226111369623318939616024273983820857431675574422354311464291886626592193917968016536280131343136511451080978581972748770012315525339756567993813945717729673274870519606154658633541310832181374942204741682771850111507950101174038587764795251718640423668029186656314311662124253058599034891947730967435566432532459354920382012713514266008393786565196328795309083989811681953950640074414841008280543308840767223484157660301505173828875651858354949315571366826661197013779654989446369636318150823390892259354560970336768676531153951310342540596462332661982917430437895787200430434353340951613366605296075459286543447639776512170146696092237293690533599922413151271780743516358246856902474377063146916515961044199671607376951470996377868174252595143783741783775781957711563095078460219844301003466661912357769541041595025259668568639181479089164782289665388547361503379683682881769866619321527313977459802176875993106826339367085602779152571870671073859545327462623149529824809848675255805422927271973558412013599789088640451300064891413746204940973830915881435767378100021976476496075182316354996833302905093275914609535105840404883488263119025877737998633984271830438127107544025750312546528913551813740295863829080508239139720423561133406713420309170666559326064497700565637089327929219763889518313838071585964579941969743165752580001849719195010908395340763861801278330583236779642030459587862100116368938793915229070244946908067497808557768670543087984869181243176123469703434547123918189880993538872433470834379570677572555066064366041256801512384178836153407650146841753405233803392820936257105558704826282888010342137829603080478123773801258860154147984831783058975225571320955879178296343051912248370783317392636201094764999170651389524788274353040850162921194186282844387612147740040481766814177903224580343910506321492245982478306863998040432781614848034877773336386245638727916174915645393446489655671370828345952370344841130787822557919614204827352408775627200803389140393484811049824883018960869543810168155979288431755217999286757748248617079623656817054486492241316768512742333527373791213784296527029747101626313565214849364361928882801369687997511689947499016649088812789641585588667994792794932980523726773922715423035793032642531973317164743382501791154035488517991818982494186357149606387423493746518018115298131463749835382571659433084697293524995431625247623885303430306180312102699398468785598956721368282272054576388256487367010110663716684799894530689524178797209816208697360188503275967107477230549570445697757988262048331524634331177742834506813185635350854525718517364217242968627873876891979354820235706812800975044416563315659110426775748172293551969885413054249523106156876888015046203360370199515143573247235650517075472369267027729219096586023635212005545681408900889571896880810992459019411396629431865257400226458732091434260897379704523542225664501746681908967023155275789272042446046982933546459335712780785936691594535986145226201735757976367084168151793188946499459732872542942633726301234375460968408643037003233443708758680202396213502383354563678820873806190506167798541535851354271373571592394133998685218322548007126590181591492049881243589657893756466298766847506774260383274330312185461812616201838860384620217964329991391495055272910908910873531102934580268096821360764595597310197517735577601392403643995996492301503489222447470906253028971322609557934534055141363053567744767067465665493550721606318376860563067193351175431431181777634785131520044592978066893701904814626258688321919930926559628674828968404091134668283241501419387294368236287734411024879731333817543741397799599645622153377493336061932091063401871971820811665569277414475014601860744130015766893285719028184473543175105368505184230453318074335615017635502265590032818445269762225219482599757804942493053553410388862131308028917744063933155492952231270208123277682860599377383808179385905433196783000318120282245485413730873729319649141621822997674467970483321349742541069578334453959132667503110731384047652109601487395347752654288544154926697648395829386758726791076878518138850117338971584740812941009918946797802502043077697310781803867964493653306822814738273171555173088346457587613133451399816531246658442210934082882305617921980768667073168147798148973610100482259465049780094256036645011252129657503503148001935678959412408765106927633740024743543450000764709238823220062051167070893521513041464469212071955217050812013727915218742535167786705501403757025495217753900480659157803600439795066245714594606448419503307992569913838483071346058160885847416387388625974600356256583636888555454310103357060375962786880799570184839798582718243688486245122632554293823216676278709782741203923280805690537926833573798939389886879200988774010094955382698977303981271882605312910999309967043566789283935752552005353652048316546811216249521198024425873527216946031024266310599510547359840028243544978966220350309879640701740215646502837793615096304655749814298867260285060216615897940888547300286638962571273319542423261748449232814864179297989175978726109995108923168955196742743118592531819738425066213284219196675720509446598504990715368476151047518524160120801201444623826620244421470004704995379475266992809699434444933151403747059677235197279211640414588866973484444972029060056791418950714803001586784583387155420906086321304899933609255044712167627160632326246446265645353560217203573568091245522273975631213667201971927682182011654029872073393198620345436414283228575869226430905234517131277529346653959073267641833539976083965072359171115706064066678396873735530632670026526857438220644825868179079552818753724023368317745107599625844131791854549251508384945233069234432558576434476847172914083550874292419951428923772619444667757997433230303613471718324622676795003584420737147968834599887987290737672227399918565919772582774365652523668371747166091932873367330590368402944024959562978165402350797092200865429950166855511318996896513596213219454947522606452521934644339740674994112718715988465220726524912805106264528096853405719883985362728210614441618390765959053472652928877427630439171169874814468164448507553458174388087008026545323116012051603905347981364949043771367885477017535925740388236792220476129313790893246097499561105870102369234121311518760754383616269524791921881001675009195955965008781769270694311955729706994200087282327677907250812336608810575131606813791822559650355502413064073330852267497950644600954916653527075818993216159565938230727979696437187897970875463325969093986249367648278057617479761068458715785489788240509915389325457800695536383007373336718790771082077620754544496331665879725962490613589842033635153917040347824050475494759412387345660099160625090972640759239883146605338585363486153443032700172528058208189213484308028193646475730731373841606026960149677435302487486324600161650115420376241380395422690298402431376510606423925653306791024286209828081111638514811558423737011952910804443484158787525489158228908256030397241981641878210795649918214500892877498502664393717258959175856035143609837442937621271757986179812375737281267324431330216385817244721495043689499099012265766119540308006239421188914185433052045093514725257881736659923518289728129906398850992064431464240675757068484378497458030299144363375129013164272503821590435180761491935528596434126686047226027566956234518619607681383412239465405804365015914731791495190840583346767060825892998407689431333517491084316598629514866175988417548415647291746022126610004453543500069351357173052677841837936968060235254729070091637907583681051263660341000230894904338319538960106917448121126485705228518302244322979045233489783972220920620610106757388255248371684902110778702354716038059870535658129258912349087473418945175895591442202717213539814033387744527363820343523450057285656330595671822530756147989404193316167536679886971780574908154277553652216036249582865273619902650459141294711955269555331975095156027215979999226075491180868477524512887181597309859593653063798979649138803300367689116297283065337749039736542580019403343062429641996437985180876863488545929398853328735324573771009115347875709598872380424759000939400276668460909046245327349386657609945292466955199922699556920016837758137796308196731682773961460898228488074334367817990226596212331089463438796362056912932067037941097417179296145055372424250007966548836367714799522044093373882108642761656424044242768653371467817976854678260937423797847930735685082225615708852403739865988157016516513937736055079193853203195496455525200788009945726102295329308698167356576660292696063711726157943193795758709565470790863811486849434508049457682339386524390107088054120028873442958553151890050270895181156785099435411416293312656194167954709173793688783422496328806485516629823117243878130656213802977962472385227337698823763120964304226046783191213803270112802809464976696121540193460872939471773218243293472161373411635893167276658090790147548007077580773156894766327212845804479789672408657094715340663599279647817193516082181726819960644775851370539197766200984786504438709172620540298730025720223982102017926106133922430565530115110386172189240984466541206020428136231374677299093054095557537500007522573872606377821751075638451034195676384337309047083212530079198589336594330848063309739024873511722187179441289693835523280689651884148135090007204016612943158806069113805969914024203466796284571251436148057017349152260708771838801334723418770596440137492862313842585953427572886860073393676523950828818413645085371530859805158925894079607196964368760220543419614370965023710766326534341495584418022281489804727113396658194052143932501014260817118988378791750368595845180216513586822229813727883634518480899620185068461910393658177240011327562256893794290442437359254960013286994650352982129783602381101848123387543906441488361773397823282701624318050189503021786731809662483494921938609594710336447563844428096942022116459152632405193464253658405701833731019550658347589806973629063724538307115621797271471022851097998981022848974394723116852822105515697812356770093097018924419818649919772967502278319700577646723987415132905640518080354888264040512842883873093197523099471948284523260785194720375228937631668251426832440417553263999286797799727974001967637839297716591432490894783332211346453312138037712878046771315473735422155243742330722819264006497195964147937785801174592735279057308588039140141698726291912970047278081834120795519055668532859853061023985767797346995568229734318961055948674575775682874254152208688787766393053051383033922483003127034902626647621829425336621590244518290144555539134893255055883094629816823193907058810474604286956470873896787075923047175953110213371843742159404896195022544883209554704267998056361825677661713017966412730097192468475815243088079704197982826488976621191155862913936501215602974470105374399723299484496334196330049543685203707934307525918321441395474002167026905741981497005271735049638365334759782471205175034528136653966920552153244023807646027885559888170479482746265133745356644098051853686440797999465868392983355166459778061563584648928369575109458884176086398444846580245533898311538831798201221799391148693909906779921012668698657377448035204057128860009390477764297785599506006083769383925942933357922654571254149012179951772540213443655089603846265767162047618048559509044379992016976597208346527106899389941368746464467506584126451719484663545055279170973956769066314526774220559572209002703383147347976774946927161535247672511848875755174192072386582164418147133620650040192961583668950139234507976936234658351294992246407095834826708574663510464784544144082318464312654758005577330958488631018200798421512831292512515858031808057174323773095925915839307968684758476027430858734020813364586300450615727814353323486923756601286779713786658893048436484035820971724330922258398125313226108110478350056588674969766681971469672431208245083551759672201758913000072804732919024641388769140322222702841554350826087633505590379186847527986744939107075003946695863599505275372015612625752039421798429512533736167618779315541329579640107163137981663773423825006583296300338454469175463469226301545111831964490306533121927748841042680781683011717976821366961628802859835441655472399544313759719948338602763770000622176296176632530343328315615540201431298873743258243181620918567152055685845421246918869777087704398132215468413563242448199000061505468419690480929129293994581399101299941995598694136086298989289886615497226984849482293420457678929970280179426325030447544996902704357106067543062418342684640966115332863939277958103314400926770745916155859758658190432101153174200072124968620466649592546730705826890182252983435557308959727652396642387456039662285593584047581403814259987370053247870504222530617249232947885984486414089925239494296184666535097196403848146691551085659624737869311069630310709455333997009263675267407285939027116092170069137543785525964121423522915908145852668922804746651168686040247710945706519630964862646765553413741836384022874085747038958906966471649419321734352677627481222184603929783433647587613271014385876384477668140232243574115682220643464220759674279862985339683569782149896846772120294103268892578885748097777442085811221545073353919085989668834683198806253456802798741648473069308877308631710926857181720653788474137966124642634048648149265235095519967542770345373826101116343948479848127437820490104540322795739294816347360395230363307576901637882587775718366258370631987660176291964246162129954278578597861655021206343166406666248452279924073221084142803242801324087257587905430473981397009107007855546702260481615486351007520678856184886544847340917785905398878296325514016989311777677563846636494155888231173745616677928545216740949469424362301322963047376359137811496562341263125245887229151675423726124271972655333416529521163263901789821554340081699255984131198085608936590610136413298302576295199439161838446641029060590438175184582632737732354710116690683216055779642462814326447719553863565376834821507799860068959279551432802192208557524871433250771114218745653104088329534562875131325209939593451119427270972678645542268721703911541339629781345563093861275808493189927143074245733708022403228980706006222229363353424874676917200324938595792883736460522497067540762779806559499202446291880515886998619375612046981701680074761762306049153548207037481501899745869095491762683135950848532286195429648432882786424264128423901605461981497745624639937275200024283425325031153980025448741506445720850128588633751776490711318855343720018490630585038576301937535324992042198562447357080204143975194744248661101659350897290973578126512562806255628264169917717429936091813191454580142041011754289967632425585504766707358412437523185305429119097317405898331743361705991256212508777209561153802192861840654671434406772327839372261890160002107586759899741887540370212161142553161845503685215299294496695725264195975263514258363868232468255251123200104814336855765012920093636984884859333930489379840219593636957961162988559899272195672272287415470367757868592235408187945873115364627317064737911539220799291922469536998865084863610967116053292314930710388529375339432209047940320600246937948017959342742452960834684718422976698357773173333277460511079648420915386432477647483086575078545513224750010215574301014140768182632915701669801203279733510337224537974500304482231924273745828446936706803617640323770562638486785137882462350670426503127272440829598200683583799781056996731905682946524702560626692611007179923645862533947314464598973775832248404476040802792432509919198774901054282974162334981445585238790554346702465884188995949167912087878430998561491122266001305942091545765803113424432631579479561696112737003905944461200124509129968479586438287728347929057931626873835030433765516262400726516861897285655730131231318893951048629289662610097892393447129438108084619475796620940522197897126271986136895451722460253108205848568901217075068683671270407245472906916522079211221393493538929018959433233504749971483464654147924102475970274397976633896190967419871533962578579461925180094507663580955973885985013576942668010575854352817929912836589405283847879313296167160687174511251228740851419807581799872245775952480563026560082375921198690398377862993674190618462751423394426513766962397172779435784363501550901173875308510609874263818490154795522770595903646587659473150801149861668429399048203966490894258744757535961040225478777358634727205933260780133476317680260224727487858653890286421932563211331848459033519597887638027383218714596080976056757930178841236732332984489215521484260655251250845666468606437790550777440893911270603162279364934052328385240582296693107603682395272868681626165444925662122954332627670338078350820929850658965077922390798922954728049331552488194939431566881264583960093895349542935084115347548451273012476520573105366444132411336943506484514223545921044929540551032639580822701314067056435083764784813691394533010262922245399560791068318047087445406009307258694497504263981844754995398326092385935493233502852231242582026368554975052835485802804377289912158646689273179305001909728065631614426263380058347970401107249062972860903039117762502529866133960890383413561324161381598622472077844809577816263478183831172811529921480700471308309150976540289987922927854779724718425108853674008638098499183942921295953993884095296425587663963853063953467706373864116337963681892003988575023741488088954595067932067935361755547011889772959011535759879461764918909937962073674704507114937893018244669561905216566207593887739965699402469583689671452903295696513483381283504977065123458670026288715340073802456684543171488556930767067537513630255461641319811565727179817503852808966689133068000298132156967370732585907479058998312771031382730493183730921795156954192090953275865405608058920551086194442870438556467926598378498006226309321624179045833242516847053332868546187023380854150181182028365654503175805471754868132770242419614164881500235224665305945164657751115992620729946871195604952767821744992973349141425196609837331256038508973977668032345223176775042179264387935718130586215240261771862671445983839953664991317148069331794570842758223710092983236216527771872422155005613974301467464668227109623260046005259940342980326854755331122182799919360570894013048835055165262946135146861256450107892482750970694696137418583897110540441830287802595090237208993432544540040793599256702279157387749536382144458597787141331571003075961167681172878340228632226918235464403992066172488983382196283127606579555335277222988064500971973333706154110656247388950746632642085655003870097833583643996697501462728873509704111051891533353094831928306934814175444279112114453885635771824155678516397335169556092523085770378886830771308553592399663592581021579608470519919937156791338873006531354632847698083306224547034967700664927054550191002179297605964876483688261442188391724285487341607514232825675915313402074873751301246686761238757194564356888884553037709948550115799750092819783801577319835034935587410138289056002928473029787406188029302233603101164484308620847748603646433146167639957428732195862903745991246995282080929090759835217688060043627176683299190314019072966363146454299272966030018953772993709369459856804548679688064183246677463736058913710716490146380184024192907894704252868998188220826705964340431937973515200111616410226696558779395714249021171912029687575409247022654839247232206017562899760428943033500967181200491347271187262383533681695037845048038193868331396319514076626548919011296795900398479394067403948156519128139842999993718205391396333128191836518967056088468638676882569435552756217500005498614138874886337196150631399300093629576007648594048647794355981870565005535507758545111027849671242013432477067519396181274393449007046945409915426554378288433163165616341980711867407350910697525753813596596619354830290169271245182500172654879332781548257424937901875741252981851259919076641725182665378978510015618073640881455947897779918314190375499720058496471690199853607200162939167942800659018120509158970787317342375686215712321970343352535759199903457261321056159529475879288238192110111015470028884146177649608300953382186075366898043195420851143512166477705017053300186364028176477366579632461710898016905659528142651787264563535146126303770679877396370992499157937480485282281251317291764990835555770032457255119414259541383745375947047147790240685075206407753831819632626974801871924954240910365150050928193592770603393554851055424382941003018007974476102879945987907026099509644083175196030374185078966577275258460674085002811455424993421636934837082758066964005944394519159053146311399910903274318359029390216430609771548091888677728386457249361114813152446284592053879596263231492001539465599238279424080171485294503659503152034789437042997221223170457246564441497769244494000935291878426654334295954855310987165757259178002467950435969994636226433772504627351995938226885456585721814659243751856863871798338471141671312296137381058420039925112542871917686805770785404651935981442000568186377298361170683047967539812527880382555869578547086543075644343936466559853125837765874466242038466144397747997649929352232153866346003344909406442686331020114054453549908644834337464069395864787168667851866071415656499845452452373479281120756127373695126854219607590143563206091283702141208577627358188537922480761438987328830796680242982064934571551658668148245324993341444452072314899501092949886252985029610002684493507648251185451636699209350744806172774316135137422048250355330961280414389343826482444118571203654221988017884794920894328013382016251195585857658963920725123314671483853143272371128972497405323939552607509754597922201078630681627307358702543387492892594359604853217099522053231528068607400219252832010313760715624239283663113150941101403230132860735970769471232056271680009273203718901093397452388859322879389945170938067722994594569792468338611155435059188707830408554654437623167719959564352677341215171674318817944364563023592419835112491878429119718826931775086921356202896930779618822246636417755854035569404251665083056218201129480408837284306103457373596394198228225405463230006144197708864259181799890767153352997496927495317263775391642605545299857292975206330119050458525554032326417053336260293584355969593205495941691604709598534245466725383953718159221781409767223302248815075754645092091291066680198593681087425304492055402219399560167494346254320769183672946759036194307804485641840778600908754789367483787554867535171513483955244417539878469978649619424720753292066861306595062769374537918338641874308582604452936700380127234132593156896440979699592864309295757175026041191921413732349199297471373029034497397984237894864630421836857510466491104582456881447422626982806426428390945425128659374123690964736315409978324386390424284586694042835911714363248832703913520256470257257222326797044579080715199608678811487359964918097471460261419771104138141096266309809445888329990857987550542161970531178906794582014011853290421693485985090621626306795730520839702646498514462536030575761523757428418659037591364135459606915999576332735548101701318852708496556797330725755835604898958060187605356666123482819542329054820885949101533424718765171965986143763048347364537138678578647023382834559780730486325665901636288353744732235364083617008522866988840471032256446221509745498083168614243060383794982472863715554467632812896836310901300031555523126952658518532810090966595548224229837697552538708493237148456160562588308942840440087223748209727694752701686901981439944345152259656243621851887653577922866334972343760719286077131861886445483724616424566644931979615670430928952533966935951752932015672400965314461596498959100275368945391348079926024408856451516184480216982619367528713218044978209240924485767573009421321678369203779785691703946591395912220033454013886305082892122904636786619295990563679625899404676385238669273604224305818513523296570953620043536778603590924948796518572197762363671073194175736837317625250127646172226486661311589791262751074709411459612205758931599657262776115943967395865532061406066914655116505589313860982920862451296405038618803975101822894673643028579289813546241173870206943548088231605344349516257020995964349433844688617105959248262016514551140616289619197852005487528181781044664098567394716622493178085806346084905211895194952790435810646250459446405291888731856651039595093799954962246680258879180466794031903514113459913139875488346787068956389827144642766482859050577855925638350335185128973993319909122325938134449681558784671660649309094311725592465493328102353645845969768513098747067192280838126131367412010423171270212401861795042453406333174756956184091487315807825757394611817807994753932028869038207665122985456260710557462171325643006925317272394128734013367084645508080220032367761404087407487083255946103290415992136016458172809543386811611188846860034568584888866849200406400964612507800654254928097985760947642336666381161175924936890708392084077167489343843337729827478625831450340542447031896511566389350794857792753529006758410862902658212369306677209170281643556019689991951260510634989525798341627138582895482196288182075349204287463203815531984062933307938212860352016352786045352825709783508385395197435616358455629178791062904739294100129787218570164051764162868584643998773083952320475905851233592090546390398111634436926086820292066482010333188698093601745320190957037068428675624631668029155117624325382802904093314170739585195623164265623722839452806179927359094901775982667720113331309329397958293804295358639290218460131761933521329874679732403244301634249127161161132422348255276018900541011840224528838665437444628366949259635233085507574294538765455841377548773589746896020499578013062183666490787270952322316067463119817834106205517741965553288761464646630711304977902859483169282976273012003557063936542010534040279851609387749745543892286518144567119779598462121229014842224198423166751787357489768542789508934544886781384814042689213271434692629008841414588160774281889832013719113366153994764633902962072303597260176926159437028864483711396032155453779159561636774787634085347079659899276384801071749104980673528281609995788401742030377597429156102493977058516048292374733390652861820711283680996463504214520153001158089371683011503482492893985975490288360681630519340061495885204591113249118992066570420826690912581290682457660984899788280253308123775993901723841117412750082948511565399244242112665007922239247631723763057486263175875813238285291321718927505990449420100323470786370004138146845188869912182640381898850853312553861744481888259764788516828862404752801732784490986412349474073626424886592850716213490492932213489008770071562098581728602933255159000008537988244705660767580132461010300267472120289177689818468498566952693253554711721675360245123757514653530002580396293657410905127005596917869466902685681429919915601281789307739979797224631391383106359013507453548642973145664667021960394927547319409178245165337963942449922114859924393203714699635829475374012142770504486792515657193120703776757912134016850102591259820034936330913176335172962024658007912609317492658335860162721017314810572923493099623061326099463228396444332529398697958160421100842920899432721230933075360163062967991917910958719943456615356973036053153789377546142615832563383960111521860777653381317941083062316575262218035130697792092899951092052396452045303144019094544869227733446718280061154429150195647300479428831494866816328530620960891562384298960680560348031875715597127955097288010232339950346210498371561247334297930994729390275388107493361038196344207596906556048193699604110891319340719615043590588320271698390453550312211993239976681754567805734910692227440748753381614635883493253150106183457035816689522913160744144379055440282458838773795459441355149357086688152715334229630932570635170317508201235836732640509292414586175020043656534951157175447645135701561241854121847497313632025360034935732384219360857355337659205592536704275690554409302893118939023251504542276539148756349401200648375706281827098886107389364390113752604427055778815414158022775391931825247370009157648264613649465712691264530523225384754726951685339925646708730307856678035766060469017134224779266765344709578885598968537581794358411839359727608870171996418629816686930494812936809557461280814138451237579368462847756545804830083839336394174007476877514997098701273036484000944465402216333379657998477893334544972760677212180722619779423724262200416747249225248176219941619595983165002667756541616446270593797412477129506345101928147514499632735447570213675570121160747812729872651629921043521001142894716521874404502250981329959009281933307763998801192380534363565684795563372866058273314260562322432634358154210129615450073170603866213689600382722712889183755729338120072311997179686356447299718701142242162867642104504265587014393133038562379621903838916771017105255822403590066820651574748136710686088522508093182556934231716000666429800118356979908711822917756941198558141745455362715778217815171032655095257493155808379571110597972085062658522429200977011753385824551736220203066801958822735284166636823537245828969789518426626915906242334772381032836848572335481538453667157187760488215720890263187068119673812852099866550023936142634649087985001224215786530531133090297241877084593028536485594198405312680620231382862656289058986727076986416859679153906367787356378955930974460654386726637680966677571590934418768748108552092903506988851607060668987039235276548118706866229495106588557703612871935609607060782527607858281653053562564599245478544536826499675165667884127395911561154754561997002720167273902461855086403879932054118748699602353859580755604001540060038047234916039572761338959790679403476584882003209011303948652981393148628636937006717503014663050999428137764413702819799359656547460694173183683691132631018697859754368114022065997409132635647821466305594834558032892414793428041726053363429414769127347295630776334343415766423784953050088237987975558028481154848764206515793424418947126989379780581025676509682077512133693853308898565549401481493994325100409566307249621652665588851335381855708124840647144760956642081179342668456605367592693799426053566992988428014485978011536517436670819966434642754121098789935364782020020463205765745117221959754565720218450548841705630057995037337859685372439056795663062443519150674624618829885925936391560597871148226155015213085372911411044309810631415115704750031738788233075162583300330092899516407502183199548641434948840924191308324298908229042784088445781824689838787500107217369423942834232337595726873795243683972582767275026796827952619630894034154495985560729905684200433256341880808020321755097082452303542355631241318356597464072871974012242900463344941492530562152733869944235159510404034568010184944175680863268653244985445508129281126503264123837613142514005271991917818318720706265743364148186044000416582610756732846319147546104165961159549606313782724789375674721687294024263097230422282199358700507607986467242724631185699341239964776898526394681412674689014101994896274205195133887276737700962505162997615623392858359275260287909544151329454404255155152959336843651490794909419537018207949294470245100472200233036531912427630612356932426372194227226743165166335198852050970595962502182587536435361631622963562566664686014424496058979030768579942981432510442559205337803633041674172162291205766043554700500214292861825186623075506196203966804557152731400689479876473425485597601452927075589592864482076322134140513992874607093516183890125970442198166797670969749490949888421003192318274327940571513887666162293364227437736260242483193355768583292595803758734852637850050951135859487284371333493083807369433273977041526392342058448225679068301928057724501822627736932580704559585751830366493616685500310655665769457308089094757630801185138881459867235107426885172815755134231657805357012336074316464287735373150017650454599298249228399724560294594133158151822873699736590260092106723973913427443886702370698880551379268791939399044647096539089514293822635990093260370086394989680694460526225656209060995577748500453040446710517461231426694134087730841701440182262140803451721760825013558567207192605879988568218021973720493257737644866710842975992400324854531758958434464417384426827146279243110962992024176816077087972978632011287093204212187867389372943097984305484685221205155257573352105840389856136221450513693207814328860620716714553975798639637977644169681551024521335007811901503705174340166950754828938147174720461019887009207709077635382841098017848854128782178365159581473647399551598906898905780869847215155885930840991075357347810260454750961216638681547092142241229987310229801129584543388839912611315526799691544339260116343796570422380047470848127153900584906198385698133054122956155819996001116337932311841930430226887505776572381031148198555154850394846264526634624871709871184300612491570852655347131052063757844457213611889639006607001313891352775584551373526128949359375649238701134256845521025420262538598625084843871336569622521558259371885130136497004320846125440473844303637200094285726819600148314358029689579584860978172005509031141283921620130509165045578273280093778947023851482156329891226493375054415131539787162859952501759771846545090852928724436055741583372374490707001254318460096477330799518230326779737035088371665934606982527443205548567688534651411812360956151056353435570171559920902908839038736533673247566295121397812988235936938780335897977602059856940810787446947234558960689329751310923068599227104547629914622127591652476361624334051756037976626369860289768833096021698379722446795303132971631800239771704611278806810604972796912160959551164224132205193357030179987298608854337580410670814321505825274294473799883472153006423516056043052297637003075246135484876164420449101938881792754466114877405026550441582059141761673898406229157000242212373916630481787539763855488345012292458628475232571468923773267112606602809231058313513228409547580573999457061899005908581562616995774613692126421498073257657753434258580176002502998088623681476366103927141916997803862953747439911823815546034045669458885506066568666017091726260978939244470996636616712347355875616989807865388224088586416932465930556570454007081076617442019011093194018714097056401931221032299057874775159092386200522893269010744391820669566705470230400844199097138838238045751646151543105570610133352215907038075115908857345983141839351854629226838617242702255784253481102047287146572943389536107111137117517940984142219462514514602991104718181656983654491908870060866836667077724250519657732798014251186879377599911270660760112761693146154432233495439316300065878813923398171774482252068252602111035371567399304990558453552579630816907914708021115779894765439250177315813504242736548550149080436918146682746990622532736569234667577066544923935495785176105408342873084995419340528096111321042489653505843820434968049425467349267460779921416548212878532953121773162170850758053063284553024084402000189847554484919728941611386759005067706510371440071201353038374409441273911709403422984203589670528240951305709532901152829959030640589753752481065962508492032654139836299867707314790765630197640136410320078560946816776567186988135050328577013778037492762131716677481074464741155160993952883973715801218806073592147592525564530763389141721100112318394564377661089265839684288083452968529398289605764274602723166607116585050425117076920150683176994584473699932691575888443025298637208747915512482245636474829746647693966899496453783559426547704797456397215767536724801982623472674113224190767342629077626126944455541803454931501484912499772604108348905047945912473401513618227574081446788411264492118672259402028970012454380405055604394604536841770382631972974938343613314368775804606301749897326438378439791819054420948945804960664722061489980217580767057969274298106025004708852075788882941058549021644882434138200784391268202642410687478755781927583102839363370529658448308823518914960474641387542438213653330118792054034603099986860671639673038314539367591287648237965262508540070885664277387498873378850811288205377334685611612707401934513023752086907793146750204352884975592880453853190056687396223281670893683400251500386792608924103033355366712587843452115413574428343810099324523609167689230793529713088173694543152884704175413966711271665265882499217520531300328234548239710043721906723153157698848364947736934992751135749270028065051746312868239613609928000303541640445794762392579741057591538011744213914003122165273376715183329251052147464444243012781828555778351079887666327328600093981139142971848484212939808544917603542405030394856192179494123027401946783801233295354790123041662257251322080214702266221513049349165070658219650475297025213557269847493270012048900574496192206340839434918247371318925477607163126487864397789096111521239337232965761743238784704311281470047059344391693955949316052763872945741086178448562887128799856158395272642751016188259061457939697170520937035742781523675387122691105347578584952205195744512433003086783435725828393484050315908916036228068098781329790953347377451340042933263523571411408570866648593423105602246993958104532215261232477596876522433827282522966386287455965087651719475778093200943080164928415699004205141288979086887937747370779465967538768914447598745703894583765731635873867760593972131976699077770958924636438470885511961509851931670375771255608507731605456666627885603229910615288198178924780842409465900085076634497107035421530926340904629108318294515442570680645395893969626101680624856597747606306013415727984354455588314975371587564821803985234897654589029627974234895807190394114024223004480218631015939804646491658123752801477233598798784286906124847803992498841764993292138498552214968179762293921108838996543177482530377360227344247014011315268412618435808928151423876736728547634988218556072668060146860895234723435600031546830236867330360747417977499388354502009865117425142233194345213881124761896400857868062257022407372769983308090342425749883136223741528181824396247614308694571380513283593740568325034056517676230800349681260309851446574958320955225913537456378475344065599877857525227334345586759831096905079541356391688557234209758780145297198796207193865798924350230885478988140496976632413304780379082012927657412765851908255867150742305188650798623907448631937237920597872022471262047209913115081018677755557369738955117307114229759206586784894489193541206900159348969475611702741736756198563159086443115637987613287541500193161767106924266355129048502381785384014866951054745652401972108891140664115575901423903649272176157554485205539476470237285854054494284002859148071233397346773827161343770155219489346134149733022355043898070353804860109494282112258963343196819855903564922776004062073014914192576247410523710439383745923821133721464561265604930676324240145007080573521000809245753949781368493897322474244887324287490478034031591119093512668127604950257883921124717705120169802006615446099934241542065920753461384843627773497543277342607134668567511957566722203924322676151939425920615271605808190368285855257606991117846832898339439546400836545909148340603061827434523543111849969181182064940094224841142528798171822858388195134878260188101940381302557065479238486511158124940988563006874829254530834302142081850430193434120967624700242107976000553428733489743310833122482549381027823264154381160021591985840134853952433475740429591432478590652497416957427344366481303322900894417594491420824766582237545845377986283261825839909793175760342300823181339915147024289887788453783182240018015862166926200493839255345489612478988477767326419308008097837053384976433879206102515256505289409167915108942735775011497450884163121078263935606049107144845935870062066692342962480266320079683383553773204218046830454034405583882248510079014822985329167832089718565239956879501950321006460331895929042051019170263989465100114267358914743125212188299125617857520362508853401045163733456359952150034916959373452551786844768429247072784637018809514114518306101836423477394998884756031501375202895431555356775547218241248156678238189670614116125652985853997022218443983541429839616201144470363967955512771520414428764506020130408290583938734712981789304471328514995068344361712279267692702674820789860648918360730691376406096647364340275075573321420128513432940163938794947775751641211685121930356431334087168987079484648473649965677829192027869842469231318792170593811248777855764647885734921955953764130243993840139601024226253762765185204094288937405974961757350310668973372421003525544155802032537638884771294590545981787288799352249132379918981885815779794696947568724391278307301246520048936808613882975283805075523149694604930219096330398216154698586581734403419532161829531275993236662657449911813489094508639531545389738528153087758678731377680059171555555494048534175470254647252845184514234642339728742724038131376060387513899531341755437300101598849802877261044896069656134669674204773004895343293993753973400070260063962247120712150693679075824260133670022100746417614046742577670191581225978270220593818781082511767774699479460157303045938390689227743862192958968379941845403220788310331325600930518702005812624981250453808433127397588642293641453366485356630538093268309423347570839305425950821073522020839480862165847655773101427994563883016280409775008888524365344272009710335592404901584842012380451611575734644165196345218431400575257138289999785482172588555747590063650873605519830869586957242124978195417999383725430779983676397208777433295130722684438757122170287396364191981115483344669259989701590077506786684113664379362758063503537611724323336044281378847671810712127259924012182649696675966270714509655983424392371507427438518267781641699142255897082346124063923310238731892622356720472578039285871419763593749811293392718405390259858605203379711614521883502407110659100639319019335501024111786636937602492659711021278650306747914884804117749540208797140484985785823443766670838378192252226434356191931393452630100839932045030996885612943314259862686665082638498204242681938615785475498196200443326440895097086200527381009533871680369069869946160917417779355829604132900708664976706450027292402907884035968683475545694957049759406720421619509101413598365267678456038848767180507191761984024101019507613935788604272167138885039869678785036633670946081024095139015060390663740210994642072960081097781994787355905381844688890403567195857249328545565088302628542551700749397264627302463108962910538777660935068740172669178742595065690739326576211381252330171390243975929079378942027531950255499144353467374798876213550469691910104540769222668388572113047417465207633572679856231115877128324733173887221158094675424509704045976370307246077869007103731021997247702555940095405016202898429136258865364057582592099097361194015725005516270839719687174787542347113194388231586015233242739616287429804729733136335053531787422363212102749669514988301260426889198823106307223641715465034493776814887874747086676472490528242909252699236126887593762458993043253391606844551387412051968262476764150452918944332850474882901946799581416653514564390663142313355834154106508134123921418272582090296234838705921419090910963377609067085789543293397431129806506636765868030189102152353281301586894459101467420743702907199747587829094782796743462578328103639636336267430593679427059699211819411650968876735966486368355278748067562243432277903298467518486343594318815342012451744461088326178963250294075126055779333249242848355743060318884143834074190418159571188090486870372690825250966274085641953415268194556280578629257152284432203880178253578930903546248900123254848229970919697728021523645021473095067497854598102377503144748620180042603721303492645982536941008088745888948894666245735862915146699907778713543265505935119745446104459935554672050072769663354910769951296696955929853232333597109573288709316738293775473162589987788164762326678158449564426842104908078850577567255982396016901291947489734984026530464178216369770297845291227852942037940635056625226792807509064359732955783578741959118054717478868391847520849648406108320480521635271743330554643501194376208613366431314132139995473265456900122602456386362859042306317384929960310720269981801643768704048614500956829729252465906364913121301355071691079325618748963093162453412679607536801566182053758517459919795404638308399127864292714154102920496102371067529291735749515823138594648877079916973720303453362056463939838855109095862451272516525486435772587103239324938663152067119487165470686176359777318900020466315807986145976928605854535881065583541444095994221024478323121975757411695840567733700644066177442091303843178979965563030430404726110403129725323660306461873332129652041659927922332248770259039892670373577478214626054954757912388938589313101250869579977314635070727755902253656887000305428203791836417008388982202679159696413599791687437088940170874435850610080088818061030275394454467276559987304668755708961468105728451241467292801358886392895615653003034773911636477564177327134108075074584593287036307098097184102851098283045945484147046567782700257357368863703471506158234700933892743637074789859402553761106109502989079418347569601412665745712407797903558138596732306190333113592793359822656236261103385969888024611793825479590954406918003988920710957623666805737513154945897822068772364178270181924474084255466038025230994862949475553797010273279513578367573802362987015542410055923629744508021630794947433154654800450166350636920058928962929878146210867565042832275874635774192944533887586042229006118631622266833201745961907049238824667859148774570460455112007707934072239458944271429926197775879001714548472266891163689774016147272717539615028740564735350440057501092088671112966699133595523923240137427697483388439898111438056536708154382794443165906996383056739254340948032192476019700543813742861037321266128119097268209801829847157657087451285190427852938025124662161215009476835805689116571584162812012584721517102558158316345849943448805177818675028380007970655909534779012375244330974602397886755878715135923846534148498973282098418072158286727893818118291681309329990401832615414555597845155695065034657067560604388096926631608722542254204211891083763877381228584682451982499439586077485857618923138708424323215684290102679979701454130132228799147954346180516097853791517311301244466641769737982633247449943654933899792422108663455856453043487703646326664396888327371979194612408101939128616050949604901955201783820083842999376587067779681998555205675869711955967985104451893275142146416329655979934671108181086491601079442455197664256041624306529283113133505024668677653309271434955260491029423149369061444314318270480759543084880216571404958164523746690889290072869182382365276918206143575750480024671902400886940373894539133008095702286097902031565089909050588196085059276114239218392680139910420319001292509429573910825592947205659853695858837487176351882362850452539862016370979062302453475598314397876713870455938056446936717663739663285686893590995862936413703148481775225797709050826722958803676232817924139882101920774075391176172805110680728926334221551956618864732862844943896483629827947414798348446002776408200734170922128042668736848205328213551692848725846106687189359531827922936874038057340449592408876714973793312963221050286685603349211680586511875010856517841623941501338373305507418165952459843833339250448443599468982201530762581569844008746990460802937865723517304610316917873961553723323756538971152376048763832554523600148834821381423482303298839645622608374392092697807456369713408110930512410110157692583109753730778229018455094583707258403182169345730639385959927267421381635404567132140387041301196445888588533279778229479080032849730651741582273058685678072292463542198360433725085903142446312909055179235479407767366105264698022837600774964353382645544795363341498035828484163333277565481437186860978880823704041405160804528139313695830088779151578199801994051483071292730295734348029679189096203475362170757696980764459623073638478538328902130547514931515952066265332969683282526893890301701166218078894465882366797753354882286947352495797391909415683282848758446310610554778195246774285879970092750165042426530504308422704649741176594100496135634921482506233851511641383870608857837935467822314818907887839259849741588395867343971919894830295485951011245330523911058032266893450650657484189120565355373831340034831367016239234244656123801144348102655598682484532596037592111669340294814820326175218335276368072289017181039020076821549857359338653193997073505853874607675064598078603883823300325085732394187535121646170882659928121137230575299748732206323342479718565505509746318189979805971248846373049802707127696496300417914878916921858291196764744248538876962016095675513443878800802287783234034949550857269383916942585019029805634667488397631967194164888288607878467640231768852397821927428049553653112141637718205306384495181907149064693778395409502490288387201311908934170785857503467338028330072297429542496629915607823280318287985674588485068082562966624368142448825858596537621082972752073067023446352516860934875388034770796660219182118666976754369888323952206931286844507324820727873154132223403533391208648578075768964716410129607114544553272861574601875911546979069068879586621498709320544020588018039397695956370019565699027929468134979522305981832354169947360096980967950254353920066153357639244691390863717316080431891325481968903606360857419584893828453703545280356218910940270714682928395423423797858425538342269213559918523723844810313546518580438202432218571116678299981519167413406443277772098562736505185502746240770855517194125651889059923043912073319816215042530214279326967451756881039806982915725037688166712201592096514310031822595539338177423104931381951311700162688521200011651394581171219449165494277289714390943716312945841477948365862219220492281148550705192271448081150580760193709260051936914268463504533345251652539520916095352230300324706749679525009764705354599215895343912887947849861798759015111752933257289193528337996543600789123518459611253816802622890221655092925230554364662419934780365129948495148351219715024871660416672929576635309893742577684216698562642696676816238210095365434412688297426623252030128986583583388562694401722126727076883849748758986503391943498495506594846505427638008305720340418532694313487751371310364835658237505954017600917845394335435309534412285248069780343481828338290576725188658708970470621052382383836965466732235734406967898101913498093317321625403339355409370350134750905081817804158769870772691144405231865373760232581089582278369486957544662629845021721369657685776641567322661759804397457785990894676962767061385114748068346901140502827633563762394472048002307231210235998049228819633664637499490773643762027868901537791020640285294963838951768863756055764944609732619149105415416181274958529275720705931892826158476607392071607112104669334814964132812750752071066966710058394927690913391319246138984300930439913048692941888841733697758496702841964652988752693762170307553405812019976513510389470450381695108979144332464609392787101527637807691527838599095113788369558471830436255881588482965782324175003587602835771957980606096208986358936012733211246626643812137729562004125283559154912102398421388156453783522015613686594403885118579251607658418299947868151546574761028913570892667367860421066647218722079707848590161485179471064443965795838540510025988768039396203803741749715266906823742516499631356245621372889897789021691694564920446458567098655781323241600404009733896812829500415245195840345102428921964613972221747432381899781165277109773677304862956871169598087309671246312925110133229525735450942104439473333344536663717322311374929755809167109505881586347115799224083043048391933037568269979771834310725314929549197571750179476226472641426363934358384854810752392121608308979196133540923073641428243747074459796704425527468750713489906536934439048196767528025621780550976431611140053510009865352265037024869904697987970181924326165630328266711915505659781460900479873191544157645667628093435905358712131471226011919483078117028302910294348058888566222697228049909323719676028965349460777037328838634913618852269024040820266728276941085134424799958909727760161240418696242524391582156066210517822570030658980717273099002886121865955439194350394318300229350930786218279472970846389779878515114375765519513936456987801993789725805156159609444688998281401310483365522117360978972201857135476258641770329162496609541756647537307837327371461327785607906743925033929750253847210766002077758883857284182952085961761991034166034193761186677917817975477260490385538175762975078479662645524510002398430731977170581005424920521400067249361830112613723342158564994781702266616038179782473186464425620431413370534016979653883859905010365156338524219388301569361423209823850709870772646679435688735543186467659996672120600225266225540127677254128818255997953131702694556734391331489031728630801557199320723738460146682764839568306686323876099405298941358512021501327314630726189380968498264129370188241946845205473713853797243711284243792678952514261868605338761077033377841512675123649121498353877503740987917734303386965312843420014815082612430182551581063947566467019568156928373361228000423235142510733107682943720661346502428268696982846996664239291497163288075678958218612478123439553202012780180213819915914079595528131952290887698518649304300762662812012169300700594181455411846260089120794663789851187676627770728758638836313658897193326595604546106271864838015325728865505626076961456555571228149832296144441515600006420779091857218684299462126937834431841403056163167838466089007062837018222024804699385532190990654953525701734820245691434154955085603441238755129826332254921663916027247221620135913499996411037579625072378477521133006415840449059204871427774486336339655056869983176546293419267500580995166256325458288230777360179795615734005205677636528723149464389638470114313224392088465470688388381054042665887012847808018471089577408467479878087136142085823375300542392111343892069256206217216752427556594799654974154380384797454261513308241797672743975577762959990831388593455102386424495558848051880619084348291622977428733168447189001408567699435969506003479972005864040570030894714096277561237822781051424658517121160880887069351666212465217173372441930758825973659848499999223355691958914837103861023708151364194808482683143022006353560291337416993958395431857018018805774460773322026058973094572794752147927601078194596763015963954158998319179952636858204445472409747775096142842098989170990527645604235281513860585490323662607305461647463259318792075417248029384619966441944124150989627646091889496767369778307737359834150846021368837793316938476405732442065804539847894784841610005119304146128331220909804651577280821880771208196058342008915696437293176565534575414023442873477514616269478855038678345453401381950916625564767745259625002765722779145492612643037486495603189824758115662537585332260822210800608738198391509948238050895119961549534942449930475653877625494058336840084206467627959583536838109862233994241754074575070083282985714087761611232619046873486750541289997047699381866952318867203381437247869793604850072628995693724669127283415068259724543204123060298438177525139321485204049270472507551424867946001531358289827384874710579469370105090615363199203976212649590644897128377109495827686087685587239024628017905551843824891094102797930576113411063690538225211988083963372219385074589978976418729085490031348612455870987152833723803229218852502089112533634336139224818771595110228918682619054414895724253736692372325486101713993559806390810369255479849808542886161566999067377698431760397243029944075265126443269357563940335976583984387664336400512382809914004548409066310505155376092579237246117915276966340220308796256049437716682518223253750547350368103005141064739309578938449809778179841044328575619602889046490592722443228042851209215030979257345821244150830911626685638263261205803965479190569559471083983849456561815539996251098422711512521017952264809692903919426225029839480556708429476977586003555075714434414341639625788707813986475530175180444108552479105645648960723345586825268566631084229879841350551774426945929523561412639577847435849512665043097813312352944066970974833610807891331297880883325097746800764584043757558808956807751521592127640084981308474043450490545377660178960685383580111547663745166014418055144244926186264553964323766192832387740761191541171798515793091999264248036708972183584687335436216236108581045606340405985424024364284031311543911447161147914172983287571490711169908920072533570905643413313779430388606631144075621488407097541861717740262804004150956276543330758097444918893377225862332638979347678267227530493382225785781643956251768520515310207746417637478166203829772289304934869393897739609207476361606380389786717611242734064664755177381690829829389373802827289546303800941073503068331576260733509425838088949192245125502807415438707231434400184084936810939261586228877642531628244324541713103209069568036559331159311130045352627610073611582308461412544618283955741241597024751091064124897856751422305604178369646113486082430692867269419710122223115829388570732919915533693582574098185003427390789216015262026367154646219515327940788062981626409354638428443978564635208011985594204293234677061878388581752777283931293313928155857768440901176264388519446417232109346781726593781243421179120527504151197043129435325496462690813694434803685638348332473152078570514821171567689018068795018390050399340216402911715241394671464044234803232602943438142332880607313843474926033137709397310736410184856494868275928769465106081528092900038559678749227198900874785443663472225786797214637338927159632187817196958563392584412956212121805795094015290053009757316360960430252970432392022363639692684915652989059853265365777096731650523776980680120860729973564214380548612696673403165604294288152128200338400517356070966440578515618743006825683456066092806245401860648611286505097709681408545564417008753507670775989452108753850290008456154698926436994986796580979814602921065060113270923028955404149016032588249622970904572817815412454346904679320495389344547491275626492218966414717840808187624663435631322715171323820333098301387826212173497713843328694399205329593959113135430055495804135928968823553987251088082248052563706650983282202952062056052816636990734459206564107622473085357060651112869154916648090039995167927962846707997532462678128158567794918495225081643895502822484629062128510685974755429754453862072751845429417283079745848378952332229420297565365560626818318555029144411354336624660688174737559655032077286278623615339678092759953202672425490358340304946884079790926837859034583883865410529401411788511690971783141659090204030548813694395458284935987615879293325287854372869091467164498390674470063927789158309999601127366437286557538856604040947731071782015996316309074491050025075429938113616841283245853915150750969142239775117958593438924790450989308444092289017843231773295279424669756350515520380632274791408580218759541489261875913615802770869836433268339803716729681543544136814311131069532318362135054792963794696904150464216397835954755692439628408359920988668773102235817648947553511976972277371228132006850508350761885199529687032342460354048112191506099400322011138617306989292479518303022272229529110024130642146807866636531263358160955971737682486678226892113235636716537150602294910515861684019227769065868645428529636939871147989423744292500293956031678424627737643904812241665571683541128821157657152607096936916644996656478053998474445935064186911747822133658709071034600634258892797698883590218101448639141239668855646049659472109243950731771082762462430533846084350567070189268806846549121855500537554463243754467735188924201136571783943621978856141686751624051362813334047408022381394754441073612195149958142439700494834226521400606518730252863552194152161248944281963058259469905117017040584859372964002416897387965609937515573060222757169148244897472075137241269429911195394827304318512924858318303155785078277382630691525322016691110350556121130234566182503786256444611756844717163708246867592144249456078963072518066032254811761596037148264140303392645767719211792522166503845943994454024750504473063383805310471193559050949902378632605962197148000967850361111533872169824567878509995616117340263034545384338575369681193874047030965585311280702396298836201313289560505230506168680780769246115643160882018619819863767020451821334200610335035244659567067193701467609894567195805245266616889681888491933502145811808569242476498774678089846289168092816551828839009856756351748576628456627146113274062749841924971677514378821069661326428469454391181133365054177079865242931735927297673111161808273472435114077625196406481472341373716141764738536872808307568759102504604294188338914579001741945830147689469494120513022568564729820459684099130596830339231812018632678541856577336411347198261477148511669026645606626361971378084403696408139762399881071858951441330503078216662654898140930159865052260861202040151885644491502595161669062217363261394659967000079796041716555421420150074162060556040090362120810048684114074443185853928976229194638779563259511370428313921553382869101257589842951483105678893853497602006354459013047158587808740068287878159788934357245040638609031145562472842104752722768350669009802519715731149643233093784133585021232577334510115813956965562649107088880738523589403510347595413320299748399910944381695650690465510819472010401111189637411099465284968547754947124870304036103959026493537035320687443690846427877365909930155471749728246872808805688892848534791907012382210347995078239715688489441038459990023453949532163309923901803447063809734028578773833529742948072782289892080772858428846249758142038129978937510773324142086335947414709013513668634130741732952753985862410482191841242247025632921744616330840799666503097447011105124645594262180977272978399185817743331858415263764701136604855208658948027281358913219385978369085140968699176499487755840426292785236583128502678729651387145958665325404705247533069131857895237693460670778150182479761268035681863257693539939749807837291212612076473012632437232429139512274360000835871846303149434709073467001784273750367739570405185972538556310149082277509940694363678366709382771655677347364298211782553901262146342401605898878786149182134081892220032502150861883878859899085861251930317965130243277732999823295184943208840639166457296512448298047426081143332103619778779105835672656034203256106044201923622008785521666986827113890578021050950666476548163060603615654804950627502780624849956152357655383718474813535002831887398535115614497615927803936114167841258662247188279575179147791291387291317523113729885490602720558724094246218696281257585137566501629897427996175790078842736335989728604867313685681793758828456269874548543720004137413955310881805425124935241178603008632045550457264648533572734252964983807862613505443270461151317657185460611499206943106026615935732203084320548556428102133021277467726337262029387316388338318448410306406686132980322961435415796802411594547563963635055231833096062238909302041172713471920871532228458180201586862133754351351380170517366040961926852345543488549971238801945218618565614416629425642033832880638222125072926570011985812745774845707538780607348869503791716072991656128580278525378082173632840388262646928138400735867041411183853463703775255569870187217915599931447447759254631049292726250650846793470027274408940007021301534571596736666447570669090660969105695103344515691408598021774439357951301723798587548388188898470774650855026727429478220714154684280530121097678201894330377414319399604321228658059261029425083096702056825118165365180717855498856036759863183772719624728273945171109852081253433917285137242264983540902060341623108091089426896863776119500005408704261278415072902670005433014661011531075339887024319148056547551303534287660523991113081740362493236404554945303661965318976930898675210163424449280430639075321030042475299061957598263910230338024662438249337840899876346265223778373802035856095407030484677276524331724873774050528221943899471847244806763336746029927955398358706844887483630272319789276204549566927831165928925455401181884476941789914473928920336753545860288096238073944936097460985549283655532847981357385504958873294910224031311101197854499755737958987192184764634821433818301674768341811353879916256367754535208369399674214756364877755973785091596828886005798974355609515006711713306960174577588725637436712346883833253555728305866744575703610143902151488038576866357085582095956787707065760950363920861883643056474622289500146539254706114173318709050493029902645905457878716277770096081495219247466643184307956029983010427447793645573518869847895892571435442531152101960204190358216015307799785981701760555922389953958432734841477305433557745292410003725471607759099444045274951820463253190223514612235468515214827609421887238046613445242154318715001023668320213647954237404610467184951735390172189513762494839968370059295612989459844038102109181332079702744692282435741278758392638561852536166753268152146724385967151674990566656498798893363201690470935493373171389028174679886421127278459615067033173845162952592832292127850811557858037173488683327063313053986092549760244783135803779265056721066308714587919735590872732708499293744339004548164041649185028803221175853762073670281369026380863486981931467168986014869592339809732055588202858319812316866480737042455323892677764138974923173682676736600602943879926399828621373743158034751480354326899863852286662684486691555799198989872574083640353903067866806847265128348386665956922680633942706643440399902785030478437582134051485057326350696784067992627943758095728155176261834554849401378558189481094008923630633610978317283761970380002812902732978302938264363302742255496196351203309198580662784304748978253361396996387151189217829393853564569182169915751036869807400698912560733548955960169126942201428687409403275097483863426296827226664397609352150377860663696500212545809620830640172750024000554071094097051916953725635562841664771531518135876073778882460762013164598260663825060410380372510109489734181395362921939403471908142882099277032192417610803495074391850205613334405065555746379708639522332544748117271413090430942851453014697813920913761414349313728264166336673038614134445797512142834067441782995758497898811027659357126062534000203505062930819731581109802007264986885498190295839100159651120029050248158173137072435763878229229486323103684718635389597083709020659109060996030209835991579317328808669943928991254247014427854631581724394628385973042998504392117491804512398721024794877106731743216147592350782247589256045163678901071300830451998567622713849129798104474373035840121794826308223056210851197636408046361609009016023991511575596829852239041465838134507552898433780539426920305560480244009291513036616633102409626919602948884413714844826213025164508027519875100801051765657965584138608026738277323168440561605895443975205456445751267886838273706246586247328682669240801439476297906383308719796675738725724356944931351789725168597962696041830122618741585367123265683420191224223909689668879422558993009114363794645659078208454604620748741466032676889045601428954546694066707330811099330804933034468609587806980843717476793593741278501631616683690009714322417216786439634289733078838224430184415138160538769610149933446927103116279664276498396707629109885630091032682478408230571148149033427069010758072614212567069295277229906455349913635364799848957351764743416572058447410022549969745149346896993987230500443804051644755832104970013873788952545618280141462102489220474115851445264918651493622680826585310004942673189512249391357047064223034083276490838247893745155245280912920080001724933080932030411962562132383689100848527653924437265599326168805253495554436134620005039062801251345652845153675113525785086964912509849539735404234658495924533890504015606290634520785901566957277566378550288994305416813801035126447618598162580336314299971412052613834076033264333635553705212208525235994830407132723676204955344224144209218729196631512631492952840343027846223202666583408104408492190659476392996938779066982580455814837012859935453448981520169854715129512128618564303850476875450597461254721137205459603942675338889634853092214769600981680426288878755749125002750331149475198478907709409389832266811778807987253104949293385749645831967588944922956320520202421314618743874861645066033115136010829216794830904814047878575472544268506957017087259023179815346503324956495227840659136458024251699377543924862316171280278254823366890767749325599285744364935006672414159921579171300154260884512342233141658972652047138317067896823661717295302847674166251848252425944799595114868304547491671709062890071880209541995726167943043203888179364443411831553556916061696281918277720812049363365611463023579240972727750519671637946025818220559367967787509984426023813607341859231875234049722935364658787963057775990957584473042719312091170749407076879830877195897458762973128066948563242769279746462890069855046685434932224195406677559611565356108439314266843190136433297704597046461127593883708939152691447845670703552533180956597361404641359915624781597060537207213027952895768524833085968521401115264471455167522390714000464624572876686593661852852418311131446165049590420849823203325000481383735063745162822540199209179608336665663460776221185837425275114794565020249546519913556426962562310965529076565712987180838695264269249844320132955207047645566556174856022599183155163299004368049103965632763493720585005139284483530266237311867481161956694439445445547462863832559011505844171148386157743624322020043692161385152624071853694224714487049932863172562485728774653811947545267765406246817404148769746663164659787565407346775094090341264454361857730284548174037044590001076984221385691896177243304071766401193316968034949434799977965502599727406756292563017427350644628156516373388330365722834423291840965383779706893972093006307342142853316046228772092121162283998281882612670757392427420897089103081603043457117737774682421080726731986893732736668618642116742972862828671806900018890131202491897289910902532673347690210320592123557456248018590704659121332970174202984693328243350243452419896243665280642152569360498453525911774241997725639770053314400016085304816295672694069455217269075471120424222685572526951852847741960092994248563611012966870908649200660295874905035476991675321754490631324532622453769584143929046654525665779111519082558094615168446500193765357121493768954594048342480132743521999547494800737747140780604313643633065779511729117223130335865672719823864122713548903352727861488487547383045559533993295518722428017553861224735035918369544401849520219811978516155709545376356698314667432544907030496046803679717896788249207593495806727977025110874405512784765901198810554813725900488453605570459334018711601366580257436183547808063978304371490036335347557012367271290433554660674672978287814556084624019011949938188049553575318973485018501152155124598050838887037693213256354795579607594613156138386159423396451615531110301577815518795064889721368634549577460150115295991839606428813223400320055634938363421225139431307182753438424825988415390297435807515213856989023505810064211711348939233740040415488405141952435842060006552717230349716450709756174449573988685846038816542850468722420587465484034574852170266188779749470958681824969808801171464290981068551221268480283878050863572658130001121654773879493780839747139820627703627340701732574326639242187696159963066316229717749127779452688930266821134516083000532524364424735746079454369558910244200941898669518653958189764920198745941526630727945325351701821331345063067198168194053088446020906362612696419048433137281962619940178624773882966848157756938377966723491645304184887454286910165382360423968790991578054233916515414496497227251166137590480280499451523696958751152071758659619820107058840552974704121837163186837833148419273414505350988655584733076415695653067891633400032021271010837642092051207823045435794384072737195244218548164307208473222006279991233009789519949659570367386035514566879059703531800540115586974871441779999176141812829163243633138054608802335612036146727733512529478409010491795614140854743785638412478763262005342693676173472636302344963971961180845841201883701115908693693082177993945855459216397108994986279318726711700857393512785150251544491502082676872104560963351979827998034672061947556688434693329241869772710486244149222297604034599902541716000718816315951874945000641033035673174705041221624699169880969119836370466799502715680619322945872965988921611788053217769492331313665087194691309758119008329950225849788376076286273499403957628570479648355781426828185290023067554276357758066151686888148631104955824118326153018873401447218058344044107020859463315399650821588639830173448605036077949838004889423107498669632434481024186016315709577775811774246975615253965703915056461620998566023828492291474169246954684423266001978168246690090434328944177126429615426961731148069041608963745918680558878191253291555659532342656208503494584508903168495022126589278085868538597095530223914663834467541715557172006015191403981429438449514553583385701534197592899789014505133139179111251986951687010273609263056572981267959269987298581107561891967873111135285616913399506145942144217448983860218463494356447131252102001613995917300111655874281440151976489949959634947847873504943077699235008048706670844389656335234308240416466450475296401485553270508292050719084953148143312480024106638038534749283821207979418644071812583842601670194873588847417882290544685036983785094456424366649330663266361067366573001480044592761405165191520327998899212329009294707360933949076871930339207874638417733633112478071796455792226867849237450974056091166787978505484044496566626389035821596255336307390095062162561279350177072343373330517394555879634459040139326991770167400862423693311320228284326457745615231554876471944012487733696307737534414459877548634962204972544985464883206253072581511548041958006165965843047575397344209201058919044815193435875827233299170996639650703679923685048547298868904062646491510578141451041196201760956258725985040699070575943340777812443639563834868182845196903146070961292208123291119429588191512646813527700179792121050320039805176074353106364542947710766264411562820883049126432475600738529080889274788266294702465161643103670843912462091524758849151694875947895578195862286066232862035113057444284709269596546944919901397668039648938532650925524028868473533529056201986484940012694646664574550926536138229814607195747382888734819052226669350999141680485520597846271283205123212623226252310912429762311247299741356966251693243272773160506433983500851488596476914181379632581061589707750993857464120585850186877939790172580607936410622319155298876027862582560883234932102960686789864961400555600138003206123044668149718351690165115195609779364690788399558249457045775212650154985539949355283659005734314045705682857637583122673476313768511324277992963644801274700881834971852994459885218110955542869622708730456331048449033957251855746875064427743815664729344710396282679729354295881376046572462236907613189665646053542315109357976219934635295919945994165883697893538235187414223952617740371464185342614773147213801556470032476370959649175986483284250570393911239097523276359379789857046432287989697548771934049800322893002890111995501692892072057214004417996047631185657660607214351290024737073974687485703860665842523048009801799318367122104770856508625391563606006923778101080239761536245265812486503381811906847562227274582156974799067002841669389388886430328202572453875826549673995497116314564764042093512943465315585297743074568799870529105004386582273983988928470627736468085759208545286784553769197742658581578174985131376539348294377581226338954783370654610236548126813176604271955847529598184021928525207640417426057980902387984958989722757565781836333217780201808668634307146780920948861810014831659919645087586571035334983580350616548934290875288244433459919633076088659964769523925551343902734572394328269299146480414025291499844278996405651082578084868835399079871080062030701692680658953763156989059021240758662285754356935939036938164687673599694765021245431853159249854432588811975081802504590337816668444188838559954336831990971662571455460137729954077351027210746843883581907424520102094203689603737782386494988918833041370453362543377300358639624220217599605769627902921927630719689007952524117543722728582233881005154774566678456243959777788568034353428258077066675575908870560975461488378945271835173665488390898755415331654747861503957530953997164406913049219325622611476324534524705402938678599739203678734515967631963862321016912651726094289181311024495716797838206099182742189354524584964233125908590699481457271080652028935666929805164620853626604554512375136921250598900561092674083229947471660176733722477029226586808735486714976277759169937693335598673062857624751151699678612477649438983117452092121718681223637020644950445195476157081693802117834770150371036275370158247419848361375820295385903083137562742440159901485808058531487171346533590255206312976917287355248167225208636350064842062934244890867178795101178727247568217027096922403561764463086487819835695964372620340687895415317734638428315559158401520107690236199318271537628309839600031953059917109998665654252136334199358014540305293454035078651430290872198318782879119280425126047675818708696744092987178091960255689350165201263925315932950953421290129003310091064914954563682803186814883479181397932015315133460846195681268589633658729969183004655656348578278474873664953209229291881095436008050974392473550157401046219831122749401051789040332332297435934739089362335756720323225085614645382463882942583107773607320528933352888289728068153931435258467846644568196393923602404910712199769784839238607249371804527496317075268385255920121325519310606289364629127632698994972229545876882674753804243769824489810273908896706873607514236956372676669538664746907367896825161793525731627447371010111091992209072113724095821107226064562672707673739376862920780545912369432711026180104775750246178360461717004706146729012428174357641862106185223200029384598807435150043406110116145412977228814440391334427077350572426238878575463294083351846490744315111008524484347590247740138358456568738881491810932234116678043056940485387782179939493954156695559418497840879417432882865605599710742546325667268472589886984338863320870554200934102184662816144031855865465291266586100507612788284840068619125124341742569875433422396973306471151091908201511474746678238169462317493681463282384845509668641353550730490883196085317368441432363098192124927766503561319376340825018690289472759866084858000378339128617135183011309188633521465634402583163610919306095560797702425813119109230372741813163660374013123913261396123583060829702449054516815403823554723368989608570801451359141307019148801365286414730127723700670126365009837969362386772269833939467090899356206928797798876713259159018375044789714128332121519428749960797322833802126700056694459245607993488067035798474166983142596306006165176512602876824790011755843493419723696147205206515470775143616712313071805817909102359580243427511942568616140525832582964297676232997446760786842130162682421910106978669724685572097338801349166455615250587343402953848529852197342026122200513243368471493572955267768972927826001685313935396863903740007391425342104491868140963590748711332661654167221354906165822173078574813411865979182060680076848795681791380372579379425252677501845555606905748291252948796948039460803699566945613630956347364082317669171377493475293826882200213304591362797482691361333569647895712144858501872858126710846793683730712275664769737526059666326331722284028465125265392873018354925206545993447215214682888228184587342664931028502158033727569406214346305710493554053582660908061920395331894732089143055487719107984715683052814502598364898737020979619695330122443711505155444199584060144389354073088442557416574461919881487601362704632448000838638824513209587562744068579634264253586658648635085044336869798288254584647697422027301033961269493241400244805806661212646049753019282737555520887720363798371283834043482939072647579964180675709526565868521039507686498391631360192949247126938537685953601499529343046586112630172390057591104717609291814649831401288022462076381175855078603626341532303688047736863068783398411318707421091437761944176649733683647731224074708448310565365877781156270194446228110702394934547852147902695405422704807183048728578384219827046203851875087468472289700991066879722888829989220586028459027008157557157496220195142675836077387543067416056705490313675593264792202840387306063524327766615654968424286849244073783189867499132056210521071557653947564250259086162920046040563925357494358468074668665970869337755377863865873128459683819604258874868560413594249055607565830717603500192438840129113594976291752931390555687756940320826625497694386166980267778615687231491550902772910919461538388442486030941843187348343723333311074216729929812113265678368933288296309992509559753560385536959427601954122404541260467417554175104096011537430421533170863796138982540688919074787006436113367920318785058089757734176962757230112422561479004127895561552097798032240473116372356689039399833174333466684184655320942550041943041963434134228464762490763740207828197857672185812878933770389033056909358735725291470066834180540408373140895785179928222564703524274692727094501799274447601910686113802993186721959985815901203755552475982512033415135872743612958584618463263710350154944587736114821185949290850335280129456702773686315658735486669841421989298064741036654246441041260918736664397118051789825182732132965522930729307582817831513570081065308144397812147599278946145304717816804822490214751473139621233114763208808366013554413726454511044779018925759739157962265758784106799338447827738380513864934007683529876412629896394995832093857360195767486978214974249993270328328813427208198681808627573870505484195451289136167800501053349977482680905418029290764194679151438129881209899523117344090053817880771907113096913013649481078563833744220186542951609859892059204113610990749717785975752838791549718650351668912799455977856125068674187077841787789150670992713153445781616485813098280918065953957349584122197942473235992694574275304802293440602055920831852401582267770235578104856667065353687899609073061008082033480483482801195175254561261842845292309551939049755087264101545478999415235072608265605401269097666354454089337250791862610976298218723467055477180664346711943334111942282904253307635078124720555391343904321039647695144223752152001720739480721672973913757324731865497583521143776455170590032503378682479824635466518285694644489312262255673048735156886043839747424742543815124084534164673946645672266982309857714149471147567916426767504300269388918836773050792725743000604404386986873039170534346871590430433064737759677671030321070058166720677911241566401456914290607663547329484368059447614185435356725708373345702543348583658389301535814784861888787781517159043932856223906869942193497640648054781275235503410143205023002593553318674867113873318362271674035656811628523535494546866292980583506447158509910942603296539550941959657439729433970503699415640498910220194118094387644505578460305105814001781241419283179170201995039186902602009072810512995984171707255896093529589482764961660020203595947319117112437889592386307011315826942384110991479759097514152001453677708814766163101063184507744774840340793217249800297236682061174985827301653670109507453409598086849313509361733844539600194439713927024862110694947695994215818352820772360499118124570481333385909296263192199298517289267129908634471811587817526879757587003966778726127520352750074014014776342836086008939488343026993537840057557966626954393467202736688325208747495106991266751517892575928458198798581846997328390131250540004530827662994094015243941352524103594516436543023942707283176749905345450868691709911432059707484962367652966003424583558897482186721094084532095346768281989452049049590195504062510557978628793511568133995385981612599228177371699777652995780131859559966452526550834322575277217518733797508084951912092337846800132984401215869664309944488172992121607155896701473060465828463607526458074451115494131050891386280681235052522736978671719234223199954432017318144017092683568115230854330974168859158612945274338441927948721676450404957797978817028522990272566118986703715384751929487061796078537223178361855021061797434166014101892897388644263517307926740195205688602003038863836067560878304508226300457478783945549253765686129791822536981588461220213299438151655819970267158451662058689270587933575391294592702507258505009086776134331168417113477739496778850862465297294741545000621674594946167097697970016791784469184093436728229935432782674553263101596563521482199491620492444161304413061879380108066406177202776792200191380058903609750421310076449130646467421550256471880380766675539599613411189812000777973360416045665813113858247348702187168391651705823346946561506911868940772411462403114507100939435928219386343274768690121858726772334457055955941269871989309026524726694779859728181391605224650188652816705816743552542188114533428590742689795335270202996566186217640082468757303965984989789392796014721371577870694273259072490196810997631459095382329024712783189161214277097114329004562061225089401483922613312776397463923967138921236252719963603726906217281502078525816469635571375232755737475049722748644214100688948609284422079057732536175438048345242534505607264860743623325809126379989961109526993477338198188808394774531412292129890527941283850315098842577829626147321701025747526881684101920684905560955697349298520414829945244764696119856136270467492154003014242840530867434468436397649152240568272850338177571390857210927716855073219614289263429106045733118597646154006987784631808244587389488263875609798902294140124348148661996330365804998743735519497130812272012171884777228163295416088667957758148696175773700686567112159261036615785189785246816124483160893500048051878669693581319046059640327239921413990878132970147101779247093790815075914327266186762956352911977509159451842543707506679559615401021122083783877705346157000247710442177590737345655816695800815899519236237716377615309071879180381319408608632817963368555612619794045516667868720716342577447042488453417878194062074509544705594098807294494967983280210690619732948629741663897768770058901771821284876368420688111773654788350025768718714407298218248906521416025894247636756397323616694407861185446305848262520146555759840244919322594185235086365945292621329981892722479345662391526630144631046190524909091420688442069983732794237063226265752879894085601945085495821333359014665086426328474263413298406694831441921417009238540052882915845156550667960303583942801593962185013220363626415723782553582754205170475448431159103117281211477414726589735483992884388944815010915688249626664109803419348905956906666286909222652242449693142411511638086033895838862423702628193890490113595161723269728084115110481911565009333475509278475668917267136846085230545320526451978310389172597910100682342045053258168661805483489235874171242868207638967468057860702960060128338942489506481650249853357489854801070296659345934742224082152585527481483572909745881005086036508777821486324880354905818402358719087282920538828441455814139889711944657268146554707842797566670730297192670905557092300933552838366606786190724175668914007603331770511909341315505336719705160091788342535559319104937525594143948473729352370635011530516022415004325931012809175572762193766889735268927129630378645834044047997905764836387496345509385364760298249759888340559497307321208182472689386695928121514090483430947526943975977323578302344128330903830144546304353744864917156258774572100896083802914030227437866195600969089568841165673914604987878725825173702058803897757467276590760762868523911155496838712093975644591237811596260451916889222938951231467122221434636257971294853803125355443528034999909270434814276610489680350541975661020930588089267996633845391709189577735074839597138602322933018930678267849758424685196115603933145685181903468256277580396548783099721586993238101854762312035297547836974496497903542803091023705333167338028369511992572345407961954151367693069514472092425010436499983694258864505197499448190217279654909742311993848988443919468961077788603101081331986518631659708696925830696910063071346944203905670795879293070261733756191559475919208616545414234586257711445740281983567506232490212323501184671941394387301751571829832894854551895333963446753794334853088905605398391713168716273272158580426955594390872887009730396453151671531082929149791358412638058714607565200405647178745459111115259006014184054315184913944245258739346673452774070947720189677912212319502421298564694523826902330586200601555759602846631509378853339312387917688514146602146553812488001523145321825181989414334656118362595877043849268357309666306125859222978216068581034466229381264070977014095604352863583098386939445943522112439760037841029398904403471679886993868092325959631877420909289760421414543339852617323745795368859721782267014841022069668559652216732998778503061183631098669147135409208056695027301486330391213866210682290081481522043366754611010170620859353924395741177312300612458004772476089998394794959518897814182118044764469127370830642394535998034479064431391624963254695342658582772924668602568572656349618540766979325829435312686607747353582301018987596033810002780587973142103213841922766938472227305495715828480916188910770518096560736778753475050724154582958597465094869196161609571099141382010206211741459606772339396873565541308684533036232733275521241176276644934653015566675822763544772049797983684425872413648177397078746985403650071987132659187327452687203612923856858720467604181079298628320384660409564490799235304895222605743839764364328965607927671301471187962095463848955582751135194478472472445173672797112439521161772229678761836124936841286033115062719270578253287933479612635263962931962433880479460425231659000258514452836015931895219399423057816304929129717922246873403518096976598618694991046103872858329923966298441445097788760483055229337192966800573143641461376148064933506502374340915016258694143100488208025187032964016203232523654402810124694333370066179900219441965048832732791043768168293174545646034074291614591737701686461342389385421648572601230930745496422933326361278166388863273084809588715801049409667686266037983171865127145966350447738475661017358814967241357333785621659928007746787250578688067098472904995882128663037058873613561385629105697789275192734660182677299586111990027541817912099410166731203441731763028344784249532846320167355523324330719909107458086722253355677419159634396777185314876704402744752541642945349975800800432636084911728048511134131071502058141572154381718582068060364477915899366825685580910660954829813163783009364128408596229844634015343931552393831816206880452812241437477030383697365717396490682651127603517413309119144490033595042499864784023102995830372917958533259544167826363655773416896618750082341779688001432144474682264869106947903738673244580651575730990015844819504321609827634427467078746247206856267197610123010373173504014986578010192845677469735428291951677989489004627252435772410758969188990093985870090630481276565519359258025976570447976125716885055793836845041967566799467143798941018141654895370123514504736855386848615015711831268862708085707015621747806648738741176644973438264115749178628678440370175735359475290655971985160806288258909736389828890394077017756495953309672643663494600327258728485950970719155558159657727119260202308647822796375977171075807683905185740619944804985984971936679196541354790251931203402190522428681936669755292239080642984762311026431932053064556626628728515542572289920425974378887493281709430738968691163309764175097208560931228758568899719952534214083125537634951341897237878004261718998941818033876651183795045715157409563542276241928303192138123924374455459703436735832395415965389298846090674125340848440525637948141576080079890557959839949176032484895113738212785885036434895930088832659631957181753929332048813758052732302920829045871328126881400668168978173990634410308997230116577350387908447914287487173060849211464316242868405339400122905252734627242554358141736251584859710855882334526126649069162302630385633687624187962433362745103722053780423260770110962411410520598030489785861755964580559572914705455705732192441001407659043081753668297825993611657421454320558731073703055194476508620875312547456987189051392248597843352681414729683735668310753796453298424516975072379657259122202072416155319217342995217074735160283172196044025230332525319332858910695776949060070654946126716763002776778344831187746021796280259391429756661728189272931173551801496347586203660249549528521621298604617632945250250459812579815822345975850325007807380002215883839934864376863843804650971523488255657633064127065475056116776447836239628645200641105133647564959795103840121816620963105583259319417124803401479992488919905146152559170726726691255246326723097100763647878110378158821294107257434829744578667288536962464356306757421305879330135754075871445100404006115263682919811402329716707193621607384544829637943730298260295422314347024972985548739195611175954778952346176218456080070397934845783088071495742913148829398494519230891208658329113257671720300467425578426822857108580372854755006016168607620006813174571210981015292776346117588676913441853192604428937039537751020018297711322576908856310988376298898430625947156946342791305976959317854515822681766803115397133414007448620896059798695857099997876018359913578912415023500522068661610538894707523272516907592694177132997506462791703698817542702824715794884335948060342380836828297589436819237011575468487701739525517692535643693671928831037095175213065721667711674149359930708010501890330177954743123034886236795330556913336516209164370962254266589066874829101297275195353631231018362980031057418175450880184111600165703035862337159896134895585124862929108736542973946338926116613559967756862290821574699595746468587126137317240258068008199252722079760182292549422797421717918780031548357658972889573910714657275911051093082213328680863443861237574278625213380211191322770363340638912002747784337773844073801368059636636495803434320844197473621500686007300625618036398893740480868691020069335032394836652952547693856343050978467372920679645193169251582596275999354797990874951490466916683097037996216339740508585523803769084383534827756316514851239177299721008660995666275385769904344634475971877743993359817202558044500174190138422321781292603611912876920724365829025918184225014214641158993459221395154138320137264579636588388304052124699766809757067488872749229573514439305532995931289692059736181437158441438004661343869144085923163071949869758688753199427754365288460450437874464725574220260127299713541462992702764782592725607269021209586505942316856496634779534537544759791183350030487574725727082594278257015846058120510820150133567820216865063258911031662525100672242722995336893815058767728319936227828053825021587100151518897204024457888346335341735955825680707311098860243875012600870042301610189342591258214526594407728120166579921701604719823804788390489556927078789801670292592596068336814250449882477936568350232277481156807410243757096514742027187137749706217208992390450445884685408545860444078750370044594089798947266962192058654983972463777953434329752944778454116112525322880730980623134668861061386330466574021957145827877858173307986994751231341608396123746294896806497828313447083419337188968859845209121631210106240773579829072336360562074793289160826108648125517855159716269021533843059138997942055275630700695003770348029430685758876539326276024633727828758804307257979003095982874598892115180308694203170226045393869141174655621159277271857625982580113378850230234588071341086471649679827649382923210921761987662494945517073133805060302578212552507407990409750521771863910640990116715956125750347401296899650195218824366584701169139595527580421940461624811409332167398515798217675821168363277308332612897548070063062224280855128407220938007163199531053179004047992876062714077774267320249256504992749636378302089445670180123435956009791834928938351297794682594800854636313028714665898297864997646431865113660200627592610232742723962248563298942519822260607437506089665749181019087561206686192736398194648274568240932510761463824256421415180867571435075231523525538054114432093914480506308738999769082307335406542966146623822710447584002269772314447209308653349548026059138021728466664398715427517608992793276449229908303875855049367195130866058012005095297879347330093052525605139446720775496739878661856280716338273401164945152179914116287536321428345134121151229095309869075947660397396575887886838462781563579048019537179887175794468136767201255172888954165370614590382801574834960045415231716428218184663173854826277529354033386430944100787604909687716638118192195016760785444258001447284545953745383407369665026239409555871396960106442633113941053164190721974893817541253047907303927167526182181596839877128832068310554365117697856042550831025324546495169747641751073070054393282285652858135947669026844362653416557474492690554311435673065273518167368062678112497834004626799297855374752922900932202872360107344672483121415601568292821215640218434202462341249665624323144793520948641376498592145429573224001895466177670895967637269319736651041269370148496043542697809237035132357851624407620270244128408889214850324556590004185019965521349101207526589467352511241210922730662923971295590862620531879232858765124883040725519391278626441883734315731445143888639323447182768327938216960052064899090030966970540951430246692874383094783724682389591212657867113392008496165880439309274288188111433665892794835835876102562131059400007542375806106158806026659592047746794157274626787865078253964329993013851890847777131427566096639717090381008994744795601364094324056493184991682664482262432079819224038029729790547479675629345702974757229603086922935324534119016283058635458675441142908491143224341023619166703747753316693847582072473029868696445665135748589562004012535796626076918865969297254195969956917996486215749337356891919242769602016862857939815830526102386718483288897988659854045387420562205227649629399247858318293352042252938762910236187828599054611041510700755262811625375813768630412116708198464506317466289935850670530069156257300379455786404646492073179636061915986126744081104107669451272064520119871915792029902171480541432105136465933466097071797924829693835435346339469442782670667629054443727868434796353455917205571590157521833642936717060368856174065403721102571163155447050682235168681024150864673586281539910050997088379657693299605766398917663503149551225832895665721613932342519882768573147077153632849447572744947247494368373065515752401477235622337574037910905177144337860516359481261136419646507617089268115849566023338944878801227457902726748382711529981758714154618666086463858710619433038322122472759216435853950415426772896739173730413326491718577992852890909455996423836145897593868036703567304790059339440750297539671580466823411844697438098062685344045694859128808887546682543164377749943020669710265533947916463375554669520286157929687096174058590143030636069293275477858839008908842306891042199471275340301337346360495366512881666705551629981096017116345041997660060523393875032630913697184609545155335623971212594949693467694638378614147566258351691869991881720647699856236164239695995406003769809263860684435549736172437860473279226080025923417435022190192866559409516238186386442114814973957584781784961494637431933916742830501188363529848290936496926870685222028712498376742653016408618666045808579853128820904095677592287804587969591633931520876010005619211041606449347232332142477520346051889917354097805726728472463196944330643315620853067259389493099195026907037895166258641485860030856240949681297188225949875589086258938896739438296850762080244180241596670731338236535639276249711088313583942946736648093333845906486391415273492509164753063789831897987947570471028953562011597766256373994880698411016556724929755164610742815806113787796089406586672155022974006318732324833296384587662742000041524422034278382444450904089920340852693716137128703514980499585359161042363927929901615699425605485271653438941227358389788180982624468811701263076945763840505443749555628357822698877786523436093029384750285100177077474075305320112528682889157154251044551643046544543361093284465647635500121826741307936143868333858453266623335064316128493107302751121881952803308298472629758934601062921693803381036978970864893356883163486626126936662783946146164830577869324491115239027630080498176963888177890218087868110923168929208191830458318241248345933537267982176696918178611736254103418970180643505292944051140654640431497166729995059440650561633030262329293391560688953822862506025443705963002378426402781769270019618131456792869610316374093172864799752034285195754418748223521322235902363438010385351665097875030526863935473431311276085741771116047454513100873417655743516994151229078003407539916146858232165760520075526372583961320535838785910450215753565403047433565854628420364586188920024971057254236142027487272823465731583920981696339552810078940356210564524360879070943337437770076755542248734190469671470009767070227803230140379468724819888831355850220655727086046464877740694478845975764330107864376633050186752949277221416409009571238972483747810386388548344507718529395820251878084473921528233615467717302767568828120684878019353955024704408797050018914439006438169974436280049794886769413539078632652912782792964729192571097397430700713526508752575158045134594214134982274469152200050935913756340609066034866455694031999370436332907854097530744520880809886910903703880228572114984962367224798393709277542521378745326771275534902859881624970954581673211654220658245168965413974477824128221972701152895361048271261344508544453264440968487473183191869575819632542487584422654499563764108587424184315531763878723863633795417618963296800816407393189957256629933467646572246316797098322868861937546832354160871108003777775346957903860863447079826013904814122003611648467869742628319494648947534872107219318006124986575157670871535760872628147532540385848465576388283082923656507529329928162667783788372316855103590138527036854881702074131407419036780633812821802017538720108252764200077913131878976893307452402782732313017708384098774898518018933832754238056436356299020295812850775467164454054588967998856110476760902026008099075359966497998054895272039424750516746936109654736525766204456408008871857924427749825824584818089690735965066223447110916737494966387103049991980013763130958027494971217336262256223814822580181843307596133640799214169372006840517236440864221050112685573147706779266404607696605191043201288769388439106220893925534242654206471057617205605484894770035076824182760388865191377187856029716774880148402276989601149038367220784997059841837424789825934067961003153594101414733153379091400180764666603065821410526273747538486778498692763287741956884671021275103052249184550972076181005685473748022631457041349908677086010823239092822731497183198770767193555439493998531420808795983812844277085264446984883586690619135637300892944536693809593559455186705219194944482279305118254903851786653121329123108346853128100815570736601066352608211151068107186168152652741156713795551551650000861291807591110731443460266621038176843835521904311718828097300585885008984450684450761482904099881965900543009193411775517099140847083128081209099060225519833292106558723154249628644245483234045106844515805021720837937588331620192722250410367117768525575666012233210264942441682248195601794959109607473444379531880566522032778366224641588086547417800770412313769065603411943891733836042261135443872912925209059720792543075826945981553872916971987756816964539485285061961596960441607604537543584542107310081077326610851649873129234384580431491678966620229538061578715343021924132272005820143048326601053837261767614568158890602196022395015274616975389689476214352456205645887436193779366196093223465321899046672046183138208309051891354789805167163338499994195766474468884276705796909803341912053047506728053904299533155641627152973050087175288807317473943537422656670946995302116413098594504251707793236937372429326436558936281534780766394221339145168512261635651252437809080638377816563064971835952853464023379982564801633094360785796992574629783675442655636979327986977035286677871385816895637444839728006978882918382420349122289999295549413639254809283423887749378909379676666008810767003870121807898234164580146181099733205519331746474558952348403776283796890038801898748998348254537698051755951146819771012663169014625575636340855933209084684943068421416043291683001684277015821322160307968585622032575057886651543473958748136180424454261086907786896590425025298164087822238533498773097055807722417113726720450489980629203558518614554460105717262711479899752456492550905025732479238196360648761731197396500437558306495026261068797142648494044759389418343473533610635052898613183545716196599602874258465713586488847145581190217482731643508589676326003045705267041172413247471170158472104603055685561120102667366138976260384540169523302459202104353125066607562520219899384568383655309072319690971056155455765461942837532765018486448390021372120605359920120840638153750551251364237929320302842150158019521904104540171709144509751157956763824916648243136448408945568528933345990754848890473517706809779094983069733112149915366585806120282676091041474732419225588557578733076556686850758979492975976267864149085521843918926478087514769790180203431302560710796386285918602949059745602678965230446518190741409508950642723468971089292150717736324883779376398571513821202353950201001881683847267785483645761247372591136017417274073042042984171486163745351256532242122375452869889071125782611937910855173136220721244525758845286908433564874327360182931521103710034461776237525126757405606009497658625076540613235346767587457030079391646343381516355195332893178450194960801635862026870950974386067926479999207501356577537903098689693260230323828268586428190974762050497217270220406485594300843202339429883926494286547664023879999140938570451452409813783110876663255606862083180121722810855773671095289604374345125956251880582643317712195820855913348219246254767868555654582937096663036477853530381471617846846972290834584956786533975292346552462284318131805881102473440729493253198328296765410333353343924715985833805152744022821709905145051417046622559097382626104561930264232143339337581906780885187549768452652623043162817956076841179944952247632982074512256063051507866434108293822408447864878410139145912374985160879439201083278415348579804707888583899378097284468931285172614815868148225751837878380591358537470967188058501244269672061069016898650777130463857063879021291352619722145605806386331358528523816893364579182185819297790442205881960943417246875027421668245783191327669514027047057707259379618906170595464942783671656251225038971352671172587051523905127037733088358479747565566164576784560676174597321483865462921173608502342827369997611491973998872434439860619109130599367896738765151680847467294117233566945237751309980406882901800895134995250066436264594332376632263755954972383923705601517164539147604302646300360913051081592662536263152114538314277704559155700396705074962584266097688585107440775516425795011233782002303446603745423460123165571887938131175137283588807874763931114510722934002230763322515006606983277895449608913074561749075243778573236620516639103491941160940287573462240844981143204736213986502458170106145256270915649042552407945776816963477739845938583328910978392293936896735503446943547051923188011326312056559989858972674524698927115032978885920244428174101865721777583909990357499281323837459907793865451815967939005532361153286408483432572899047461846941967940860653114084792732935538080730520470383986145001089113652114468866518598373640672889702671448168012941312772464987778943873657441760352293522852074567118717240756518247650794699650210022179242020723549777158196674547714865635207086223088187645297008083366273091177086572032937138741807937680566150633078803992441106251330120848762413177629108952251770911692167172137396896088786627463494306582144211725993501342169098718676512704528561071733270601253316335508839757567756066247716068456569143374450612564876002449813517552562120478984363705896444836271431258303818959042317743255124943630510847072212263630440299356220762088295931316570296569343450269719219234257172052001369788294733710468084284597111431302618737188466444976716924020751109486194459147434194220927021474854433238294510434978337467243596008631399969194232165619706480001092000205731098248372590617090614299935372904292960630783311258619810429971706495530557407330877629520446988537535330547047417337158347134550179872335147351708821178657534174447826544154042683516387953273067876809675812520310284696723050300621324873762598283892606459008130689848887669959202349714819979963001911416867932429331583197619690557973520255636019106670324832724663180981503520467189641327409415701467914940325453289548629691121297027536686479581768033756172402453596533511010582311522524865829971103019815784184811168671753934010861491925007339059800106789781204995188105881798697637893061945170773134450929302895076959072992560540273933171191125156074162212014332371614698657585792847219056305309228041132874819498489210682742358401364067377029048895373763099799266276435328518465004862914399711081372925560324263875133810284086642504624491900320540835838769830888877684969077200972520654656405525721833111693418678489583588860043962996740294093666356578725966668517577853903788609470334966522195767246510862053808463586467304351932967086634956535581993361381591281381741687428989779168344861520853976021961416315806419491850138354514941446833101562671626151825920904728269469632026019882934736509167054593278703929892792634765028851907184213511120016249925325764043328533375493281533616966589864864276533701239270512353324656280784879914837433413318648812270018599007929321593653718371047723055487943287291252584946115147606387441666155585106607399990387160567121706116333295257590720343985544738172575045987727980748934030383912825370728317376961681811879894689475043592125122684228127905759278338087204757621925602988474183406399175179473122827641953599559918410264557166362734434974776120824998649406021882978750139855665108175675927515722126658810326151299871262599883987382152268354984097893332146937983716644479930748972434874530420821581277361657946007868620860696336722186428861340602233441409625909941594057588475808336121429620079677215277842203633354415051246200239809423530295910617473845595685971986155307829715190490974579570327894581003162297544913852251108537899421514353863235517855328921523569273178870959512310658271799682793886689955876156599038845446208569035224663303009861562427400258331355850149140720602044808355460984080461231156488415591174683720856930280594275113755512631018751139305478909752162996607786794158968281426179587811633283237149661325056042473806900534078506933745115198397896882463819654367552797430375580733707763814726021662429466296228802553062662073610881816754514064352820935822115163493674752706028151723230176371238253917564397219035342054237835456310499343612246076457710244895918302073911873800223004476258467511271199615976653806188576937408193325260469849338204231532474554494904065179250300008625887454377684853693922617434364420799755397749285940839407307977428284975092881190256798429082240831105892402688884615040145802412069174275209701496305990027819758711652486648600016760853117140634649849913754470866075664436949464090801347882777053739478616445516553455434453760799017662481054733174742911972038891381369064317213339962459105021349407159230021683058792299283066345863898985138502520470421202198547596159359274154757771485287511630336048388249933832156154286865460349680103378522467666215100389800457269918054906039175725313089311924506017237476561842721101153708885736221755616266899262948038152257522640870870771897338942778622544161645960977413194213818875853347684998015454058919594754299564079275096105287762142361205570546531825859914180474876413391675505921567693429019930477877511507891122632329577984166375347092033325487323604905930545185473312471097109632607619993544623228041950616695919698615710890864429076920042185641469741667555463709839828013219448512731854490934512164690456336776107333250329262791684711531432623169646360667135516362739337670055027504684447182719034489955238245116524620178729214976376001434086492022207955800745988962987733033188055351843331929366599693633260390790240897604829287177746927138973936855827333145160122017951227752538096293963697450880411169780376210910273543587171070889969807754076646018385226341337044512243803719409691399687273472740283436840936286202518196614165398749914043677967715215069392057871370444340785634468908270075691331723288819328318685931466578471107279027042727100959757723471109858354583958480142704586732016053668197163005246579813443748498306841235842561939966625767300068201473526793709468059125865586127326636333645976535274615481887460381469167017397964563638334125415048897675695692906870446436371758142073123660637191062572198545626574834981414019479527454949393003457948026690913294832613932682845091275751950618469285010909008729522337214433148937124962027646559627632876838932035251196756352184896749116121524862077101653067187542643955497602496857405778402412993325480721429559821141841544442366537738323993536689906115753353070678261321524284767505797072974354143632909105307414908079727955797299960170567683605788108419425300437030446981614308450393857292760591076271579692236950530814469185005532865800156148126410146566678080642373168498933589924024853548498206082508496381267146593778694632984070042265105429330669772871488577760558997091107938437968105194366774179888303470703469520771473753519811652430153726190029553087594187055076157370249791751298434673589199160461926662671347061818156832718394602307493038740876929145422533043958560870320896205393719662633985691851919777333895613221024101950987527017395796752871938223124991436750348202584669504653133575574678918375881804075633409709693958979063378815003647541566646431936186968115186502067129015276359855362534888607688258262123363031821549340566688193782876097070967239252454152873658269165182590666693172170433924071051386400082710027858615927253216937297175582177494847607230823632251785931311422826890883172880410775505463579731988605363246483946082926839837049376606767207422175218902824606283807896286321552607738755163769817902607987516683945139043699701933091424273323996654422189871355709472571135334914740638585637450946932218129712279405747460581977558919964391695856180448705083017387048320736992323838511827809266943525109121559602297162243983929404377481531921296957820367000498007320626629663689806314237293825099809448547456452055118938577947550842997862329723630517393863935842571481261796636964270307722413170675702540219703942052604567309917384198639923092734271966855158252514480403862684652946878028174068264292876900076715430811190499171238588758404207399780900872403840384408197994923846187621472422562395472208498460056994255234546827164168035356999539168062935864460575698298633337230658221509139024253252041716732233190604099284934925148120980358965067246625948178108744189863459050632531501515301427651040026664792759076487525100922594958057826544945246170190107443779550419587389581119164894056710004208763260859075404025955711370105260108123422188187441478292147881289839336966559025369709484149846347271795038904088771269677753829102227391369725084434859796445978214863846708750118178051586623105985396505830441655907400047567925733673669855337601604115673071428390016767191123908328399488581159948937894507367410410265684642840165319079373569404284377871381739831313026129255433316849729579582517213026413387781148148309901966737256326102465178479210224816495644448953956746443783860835148703734242412183330988825818397275304509317810315146279402712579318059698566382084120708670734451943846587887151248330653591790635264165346552316901850524380586158469582686643878248684729546397856469479905843116760350655090094644510412799562624876804209387132616099999313651152053772536450081983501612313269740282480604442921149062200822154852755603173395922994516636758465522406383313351953797327538129522646889347288370537329956102173412408642113800096998694372661954030721178244393204148654963889515150100288062273400508895145697285319316820231832928748443700889355278015236034078650407748998971318437452400489954679765546633956680919027199851805194014321976287763199644814277626333793926045839327605930562993611417233619538709609895060309902792875732505771689484865297974137387742302435523800103546079772965169519468154906392552317641538672192582252593139724152766802819080628514476862887759625931930578271214714007656483849588698121883577583046669168201805540537160593763571255357432973614722681965826732056100273672037119428725345130394415395043851016064841564054615232938607492343042847012146532279418658256459865371920185619934049491949854143128389566600841838157206124206585743298654214882628099588847181020389831138990378391473411150927923570171663814953175089527012275715732458362178091968708766621330249471110008665975147113407565199127814111605237772068133217993828425388624179713223332946252704595543301828558216403895140707780776209577417730214811569927402029840199595482872166366487938193404116818828921235843733161308223164697777511446840443849477924663322380050359300423824982548937970837904476992731993624623666387839889645153901736484470694781042695612998307360297378194881154178979719586348026473482586327599951146419319293020380211901175385831958587475253048701556498069586671811564572263605238656853583168680761073763417282219768483662813936504156780765861715823786641934743054319416901611486950909661182739031432767812663576230544225036580015451950757015103202193450601697069021505201968990257356672289353053277947805249624008842822777845403720615401533045528701775545908256566619471204341862483489589546016988996704172961378130216960393463342968626525003180968862480600563428119698841685068823788278064438885630313892433144909116098271769910719942409953027122981646636670736195072501348970344142478192087754994655941061576238304215864104885773962491129288555297320917251246637336006180781034117246124236324876614531569079418503277223507649553627428430754019381823518411248656409341748954906460052499411905090150793567764153783653210477028242851105044989704356713991986269519835660935873922536371807967430478545077193266138600431727748783745166897814237047612310007894935001375031776049631965680189557811402248189400692360776695133193647496989746795045155069371685486865797654905600701927963350909965546121067530602285815433109413687129310457706097180390390433946186391094100521229828401612749880051570879959199778874121986952484220252976662140977514622187406851212842969894501992240101353487195309638813301071314461946651011249640405798283691063860106845837016312346735859789662747007998110886218029099397537734511735977289780061887207548281584916302825171647368049069436732202406376598543040451460822877909545124251489176672795552275143704720703473549593821517579806636365441780169477375906452400755809116192704299979253497654122058590009664378207288467755659012288478156465434210745495846918723110269744869481652230364130548407125977113759476316687181771142487025005420815644858447697998922078974570509807395819708809724202820847461899042490285978504605693403950596902963982867957616596070808927500940222414836382529685436073649106234295882491096504567390047214180996453214713718097373532702791374602188287965489851871989137972776693354073069495295524473864263257820319111848546601779133872342557392753091764543386954812476547401336599215103985945396240118690241264970907638890072350970575679060800104203778196359732978480899730301220124771767074105700135157211249860695944641507163837823803764360228854292717320379004609623385619295924140228133288911649107605485740991604756792204148372274969714917943713377449124461648477906315869621160729266349735457758762091434569374359925690295559894877594171645876476607711656585391516318407765672146322486417853017417185385665637108757865907149933951157572150010654987362484828286777520157977506949225573035813609451628280319633795071475132762935695612687028022357973137117256592602758386913444738624431604735863987395235870965809747673298821531233746088288029097872091693845429924390326380072127482066380398892628072161094229543711324338315440350686325120189041966439772389722882166930988913192406146666552806473641854074868986049805685669982135379678185505973432654222292928596950854302621603636571757997499883896043850296578091175883891872720175674913268778795291904935174119664662437302767080735096208216317072753700569446755540679514435315654381856782768132663519164607813498537712514727222681305045815787945441535310676627692197538167626074388631282477853760470314336424217876573150122364626310268016632945916069065575550920437116212623684845277587189931561053668478415197197077771825826070012274246036084174781574561788830633121717677859959617061720905290558389435789461151013218785120313710806608698463297183948036624066883869844347118264707150002438765535546795268919081075940069193670476959958437653494492738309753973404957635343537520241487530457326729535405885620318393569502807611282302823703137648035937365588565681343902143447961500535403756094954001438561447951129699818834437150973849360089952792439785317225946989600999469343025898708760599431400577853951182361150264537414014615651580419413040160102121224508915169725427559062142399343245697773499205807272697298810510245964062355032857855228250746360231943482948444263250110791695793591666000508491936670152614978839730951923003176480231725700939874834982361917139215871443605321136986542798232559441875812158127612290133337848358029129818725184921968396500918062388349180044878807122552626853650114523113399260973270410952566169171258346977152508420246764363284012695415137333049699382817699736084395563250910057988880279366289574766282867250352517632987744514588493560846344457631050380710426399942512371171511910380276457548330305832650353196683493946892853114139796373896262637621604598734340239732056335422909108666125832710324701543378767212241590916481223725843450523659471621900986635274161737230965684403875283712910056732963639593435696703798345933710692402009425636266795499724421729121477363192285027341482066900787577029422933466231618784566942158110242751584356275880296072373483361157501895945108563135296136303886447222032227766382006771514891504569212384363486287876455609532460071384312566745214860406171401782445468180852016792457162144374513623054453877626585039459191280126364837870221367544478702163125437209993952890360171785865556706758974840855305107417690412656223309253737180777799223017422377086092493902751370184747563311559523695958603298467434312063956964609836839882383023266922080015543088408559913612202146381272730481830212909124362200820868163202462767997101280676254356217562404199065309040586689715379350846633893463372395296462467014735072845593723992188293391283789025416012510338312401575221744948013573573237929496971165492731742204969200011985767701891196457138591079920759918165375363543069514032560784315193326343994867292953794879855690864388355993556116740957202946535959073983982688974152497647053193723518897469098224803802626573106486325287095719206043888589566593154438650721563585870961372078633124354926478719029178788688996666424804908593735549292411669372770303434716825371350708093557645261794522869842169064495378520462392599974216201479368364942891399178979308207038355917135085073901164919845801792503197012305010284712253930350304493487474610195023246443757808838385914587848443925384896867859030225262829447717301672938920051627168067083008840385719266421005321043263656063459157734786099406130642085249037567098506452959195797073556593151768562005786793219517097477348832065896220773653653734756235470055132591967924105475279704690415940438459947568807921966391580304062260404340939811918249669415672971130457456153230416015260873269163122156862319375698870558594561470676106204264095310866189693407252378080077687248803730858058162743557686081125614497642145791824665055059704238351125160691441983130568035806480264965279078826775903598378439187427326336495563421462487219414418120304955827316914294976355588284759970888510128737926023337143551874709519310872804309733944980028289534359262218123681364298112980404719390208211860030830109908333708874830168283596449445060835263145747512676170154239194868026695723912511094891687170457237595505600004848052380134767640845258403973849570662543750033130056581139212116132787226989918861708884958089802181277007146054607101010262425920388977769676814073777415889358611124499747302888749125695498029161499999707816397175544670082725508128033454357412395726100430400343553683587022640020995918472354215702869125332077814370245294097406255785422678063105542665529234025642068220050664998204728943263148101876918114064823344596162566241145149560306695853867737130652392947050192198402438333952659455452119336431262504892558136528338395176396264789909393469136865134197573415073889012965744343318185522500399282457489930640625604445529156781794373030451839473327283187781485088308218428059001368388961548095507276075130219337310922491362589123080491018430417213698536405023930123332047892016060116784849464709046610616833050029844670938433138922164531036117269925445591046209026518818753485904347607392147932989851892335240746313726275162452884467809720351017262856576997019042488959451282283959447450383302401567606478260961044476263188713290188983141632470854734244217628082124515958385212702012611128430533826532668129271634316361037148301865180448862867301553484884914676658386198375128313422604126486639356673071487826867021015861474756631945183883457295458458574747269656531680590594091502323008788499153472608342932084730195265710981145171785582001308849492735973664830118987034557692307056658979919219135221705321384119460469433630221805271547282955308354332756992539527117758928392794764046624088772965616400514536640683250388040103317260728637877847939867765484686074070638333839975495632013959705293055079348453306780093331970769009119395746979591211861868780831869907637662476638987472794092949533218601716760193668194240914836702666596980649763090378162915865506903219170845478099614303521115785799565260478953222660452824393687670804382164810230060046355396469838457849230951831830584989527199223359019321562996649479934723946575665831861492294094323597075053466304774951829506656146658286774573348046182356926626171397788616923231828694282531673334718322466437626303371626054089022250977212127403119228595139918789061785332860065691608203975160581171681095697071194000574381958558429461778809687081627890588191109372211761585597850029691446042144558081340754455651889019359750802059792531230736917954641182841992687832539007014288332765147740126990567027084318075625110937825318344801087592312911685143588868089831359116175364791231071981492034607131020101499355776814114337688489122343288527663205226662499415535132370076646351118365707531112318199604173662891579876282309909516975515074410808308472878856852081597420084604093853413214561504848580213670649589877660986112570878590652235250812713954844114377514879620362167876577146698818662128606259824024412232836957801628261690811831843160715754836830948651913820932516782751466297762002973929536097143569797618118864917128707691134932444228959925602639631700132405914624890043798048647020124553024585154946205359868130655143647172437093433708997170606867397395611670357927718582102755827774944108833293746455277149648887115930448794712297376893758436943597163371918894727168012170212972858296121281709450929650994159960533148377158991706477204621729032965212338336117520846844480546130971545680402948377185111246984173482408009061064956091343417640608263965031198999819506810112623272533948716448776906149138566862890877721443782126707170436211690287587259676041089552340228474352529753937712731241024123489816252911605972071132547397081454858288517780801560130833754000758617892934341388506500268697510320919567081167438371457716082580423957456919288426137271399529748896811456799230176560464848159053179238443991419594694000610296221992446177387771851160081926964173874573442209809837218851774296816568925845474524606416821302844296359725990725289437780665289676322379382188308094998179292258333484280833864375203844603242860986508031538854947665965428055250812464627300257146025623625446505799855232309743665605786401142256014904947517852536403094223668534795859905915397435865421503233526941561134911150174504056862662143588189504066504275735148441204070914861455214122719884398970256701438787084484860861034302388536901898025764321599605386688771559437963591133918702725069045797066653192938549466201720042705008086766016885377771907562611117245841294652609493158448679885243808663295637662538964675270974587012496115804721975538414510577368804254312847190505580463403950903135079009298610706926420652023048360102809932583543873869020035386944078531204114853759837300021141739078983077285196976593007908760516326396378749518754404965943021276401694262730145460186393169877674873518543075220102108726566286129537711049102658649247906060617486451094382497386907977584808664526879707476640132776324084747957984201859721227973907921239475270737683530066670359045772632743531158615917828288027428122954008683039528349618920962170857342215092334468072335075507053902276122104310522540745679606988987427478483869624242224757599310898314635685251148579625734244199989261533435337419282201936896746270980384268611512085092669956097181261954571993594794613555245294653516690978230310684142841860231173126336584566644065509371244738425465769802282148545519669937611228181188691054111562905489261012526000830223826568535686514900805530040389128142827343547554922018033400168305259231682466106237073120496970681057603998012816999400392719210092776255560131745783885463989589585493388123728984034226501645429333660469852284714196993409001837401080743308181990913082883842818777010741523888454802136876529232846126864536624401576440109209217805516954095000123580305594646713649532449423380867000671874598833856609001717662662499172739785566704123335658730459031947885101544191619439440953066397527657598981338278780944201769145107676379162972049694505198731694856340797333545414164357966862734671670825359947768205003255391965281361342181380859179511057983575818261585052769728076499173506106461195665351461987763999945626181647862654059700058212864761298684687456207492534533857310102652430732563621083142587675931663204529335559782471416613160904046699828096570122374725396295213367911843581743057875079287484755812410239867856259095975717669153113844761777757278257580814672426237981368685138591402746552830562233848925393435258220059540053651874356007750782827978233403751119257185498879096992158758984141414198031424198641258665995303672317676873529105157834329975923475290890463292777323530817604843440580530383414956500122799184126993151368733970883255914303276107264963563412265026032445203281113893926592540116734579890500525209805453811945674299214997722631235514009013834437241078007414501311649000578030115449156246523616560854824479468779405066755661346841959690578394456858340365440252511382984947907299968523504771159739590515403039433799651237517556698567393552830995596632978692446673940003183985040763593785340599482219999136452173377003789354338591182649949702455511228028917954080608098298118562864013495257270932918383832994052054140300802812461522065045844021585825739175301924630043415319680915998403084303890869828653993505024981952024804729318095609141407352741103472976432934738717537043322568921006791786509471184979453667735968744847381222877058630134656258043620293736197254962042203777168327497462888787686341840986854231035496978119749755703290905011209539205478492348405186272417219698008025994383461724492607750653062317019833229890261902832311125732667887693037367876135389728265878682924857588687284671712381050652166566311634825572395088498451046708241925131754966994631080327014324031270636321902159770413991339340332982266300186617149459012335759909455790842660753118181266885296093090863505856425065960651393325698631874310566877788322138954651745383574144421348522976931488534683093278749526012072133621391987331053939084865866779943204460070830479309337885233026494392223788869362096918110096211394002672053600852532785688850949417794797935469473109736399704176959161559541570470922138953062790879200686305766832826831046323281071525113361311965104423657112820329471028434506920766822256800739279241177469412113297713017048085701146403710398368162283134031100969492719122603050521865748203272379103178000538950714175049782301987650891741943228709218066417499906830432700028573286370759402071934258698925034479142914151848393085326967550602866727380184925159931407971762206728326094723428761100153242658362114132404832721721032794434090615857239279085560484422500442765922042047550561011473913942090914449467553891610744058140436954144185800901433685996006446073799167406048548754642907258419122416296164669191301197879966903431179973942042416258750829998345790085354231543062883843274132396434622887854605461889584080210043858303147148119770258199775687716111816664006070700481927935362593681023141632475837477281095937541377550265516084420579697157141246572413640735476521329175525985789610677224216973112208455053418314824223627032717723725867277001671349006738852265382581712827572741866940963436061539781841639267261829769545993867292354341117886200380920481011148645068358899662063373540031595703742028705200816042780763283073817171845290568340921174006300137463926249093008947968079219537235506277731541168294089393201894503639683313070971511292489919852530296198263688011552494366876451922535180364384598552953894804629550869624758273186180377226526134895370232624384567034149718114950777599395372716307811704149792555861107307609586067453736242497661158333288943062440326728748229949252408106095652819697753103296793407394430282581426512119790564341906756702075313689919513093758763355628533088756883283664796313962259825550362954876818919292125750624838519372173886675494486342391976989958184198381275099380718590910432780505097285212277614070447778848819377094714531804004708687875725574644271246684445109585305235758800753579331639479200091312550588382107460143827640128054654541898618061527052569657182867296221628726219465737354005227406927855012073589584164079542627173953046440476868024179746887564325975350431071273194853670460339912666998491310186968950829168156048512181007621778204606848644458089326621961780457021674169870184957961455686525212620684753660786031107537822211692917160229825202599051421167696550575013616166056663188686126071135285717710614002652630811281947396955075323840667921100668942888654457375243329231346702469965645564025520556946643318063495281150180363418670311370240245804905082723004728688296977318760117647089895941449494855181408789957268842698695707935839290720556142255939257621637995161126964371392558743379367855806561194445149206739516717212471400334898258787947151378601051359409531835498859263840967037950614774879341357576515496768623721657183447941385992500052062416896147945505983625792568953732028816664407691305710316800653019907629811153767927268483842456273310994206353697751534404761517846492551523468151541976152084475806074371886362797184890861772841788956322361402249372929243801624382217958436388543008828246071110732761127168581052490168446497498716371948131818324588001468839075720232398985506159379161613741027183943775667062622329089938649718554892520763780772164738533739686108496525365011512675335594189418147634611434268418734800472531645313861572100706921826071272060931430472733468584902280173517600824810006627930133192442713102830709801350603468011442575929190643158480304410098566144152878789535046798444198874306987331848048973026701286861707556993477836842591478072346541494981507805703318025317441883640102898382315562808005811356373077039673540119398680383842088931185107571101914022765799358956551191818533393437193048115318979477777704525888338345971614030478026518550289908551299839318065725629340209072468665727833144960031030545934482578838946323354856854619606754269963417867028867982651007747582883462129247463290493351953386751834940173077607309353231273909770279953833474214213263933206565609411755277725152729054832644467980713220262778268673692177561380806929676303627638254397141702239874648154965270920155527471863022636593527714115697183113897784013382578082307502772298186255799899895686522881516858038384742683902268244416809556837907956196396379906229916155108512085133920342316507128136452613307469191822280643575377096865258290675124316432731517925903112860442740224740731455062621587370663834861246615296746830280458250882158436361221645283205475758847753440809435417165953446062269508438722102535319926572856912205358169964693033525012392046882276334979997417783069039029978569839247529143793361195451427983017087793453959918268482463139968724775279290232161743975456646705601498792587541464070639845788182074990174988359640039194677326479286689532874719323149118350426018373050004305448907137275232499742772465550291061999722406811510704674292570775031803352737000486308771855770371176119326393967417346041260368120334636261752202820027211800759755698091389676327694843952479577725137925266580802330380979789839144385829265311359352747285048583543354086895060822123905381843499848687691894234440055870437704098609221299855361318577109194279698977968764182147230919223563870099296502315200343071151820768864674216319252114303452974172979448100255248774162549795121343236187633921138570137782043462898610561787914887458690672274612534489680823109620183264781889964198936678214471059230755065902403844116214076162667523486328813230639375690399160292609418007015712512226259367633287956650311287379200923460181899916066414422128072569113490563871888088102845338332940045705303119712929333355878738172573193732602160570869711993695589695236636245413478518191544809601529840145717522194573907474691206295188666446528448964848836393165917885348199629276406930427974099843541768083675041203624361674792270255112226527804877548485392033655930871682771301908853044107456321715722244578529791110800332016331975966618319977123322560030067206724370121142204623233491128252141585535948493375161969114111160546762354776110724472697709242464945505066739668076580590334395477590428225425603783823152438887608959263635459033696919777594919381094117395240145570264183860640727420971154112714994766526180909650616913747821099405062220620661109468962402794246299245314910210812070525908381168357258084173662507858174782838012277040461161978593153593622119010167336746822879037456381568735695350562760065060354177955088862768873393082008802846145507293460137491777427052266046363471912026921603635534468308550122952095567785671405502200597132616962773608862868816622512131810044167957608172148804611972771610875735205414403912366273275143602678236803047724645810255593101050672188982913144626915637555645373137097892635277122702640203461524785885637621929677653193474411352698450102657241768128102749310800274352958613330307346260458401619517078273772602116571050278190154319851725910339259699462443409631585947832241606523265320582599836806168378183886407295091371110258742000066233770861373257790562818792822363856538070940586426795234558544977882684553403338161970355775024129240126492636727462270606267280863759545997966954602291912887617465238795737162509303533978560978536808644653079289873418094463923698194283293727866337530281120847600064484220514405907681896485389605053343744308122747285497735349725864574489293010135184909050037266640127345076572644765276811008162338342906711889765286071190379455751509182873085266816513373046522581618664691505726099698948362273366040098326777243065173098536551173026284785435117208980013054146782805055922832209700774421445271131817962116831031936616600582664443292125794680056175665649268042696038068043815073673355945000336558448909400379867790306262465248930802143022409709150081129914544274497482163906724261920028022700817281043611950842197746562056070583139144041927753764936299242028459189159812148528372885590468415053946867503609578863357636912488410778756109000269506493285771423470646535986838177271245964927912882304346990244396031702762240299762332128703936066382331279426326330672575212705237066881401660823523875693694573679271283595361691205572281207163891958328613313947080714752844318619177717943847235639091940093998450605056022361022519257710593583552918356405466343328607548481546396364936129842103275477667587781212792030098951265131807579295282856157299644315815213351734481709929613540394885068138155319376217636106895236770948845729847980236515692099195776215922767388442119365711179615230245660371736964627116872877984913258171807902828463044496455692471365944528288651392169368048172292595947481285754870422103086392789108362669811416354208097455471398082277714053155173801188955530174159576252504142909974430552703565570778854769856209110833935470908778087392917097241014168130016704277539828687757245543446998194967279362202779423644750341023991661913046831220959325022134689942732821888936066079852773696596143716080747479028295595414084912613994917142627109013362976860677488849454036956975091155741414671880466510340579469649267672713379220987066672752448714374279473818392307075338888313953594955897578932748717756161341928551846287898810329217826232176410837842736201472395014785665718156122665278255161668248152434201972247273427868688833860468080979011974380930717918374073437897037847162715250005166512659769183136420957752007877650514486469259409958323155747968348542590594697605090674096887680229764763029571375991556791688362634724549581419232958902309397030923326713813570349591874677575793430512768296745197763396534828391126390175490069052737514967871138696431685072028272558656269585969788832034790055790700678541549064396813740551316439397037756650165719135677717924969504327972315754947822545715423165407985251031625068509351269472933363994560872173710581872787844623995172557626505355805828460246704031981313445923342438379874180360677705490180436073062449040004490925789521209354900514956477081112877933438405956572595361113777925286458128852247512059206842202808877130765009051749585279578613117731443522482460165047661058062964565016043703199546838201645184625664871817030059787364206828601871039565738426949602082144864097557687705037483552881360541554349377633589929694648210765522036306621789500525504141702107048554658485556242976235154530453549837210390516619772493824465347779713749890665304773539482463668538828498581554419126135707535634050888864065530648118154167103098996590917033112704344032276850121144103675300462465753099117171642625781264984317687094170676828586608171301330559587643701827822627974333374087342252717069650586449808830178802189821692479727455461951463503048036774364671865816676834625630965133418131953187272169485749064909236095901589118296809852482444583687743934268723750152798341961732463977710388306347204854234042116810456148596077072122834777300916860743193779004015906582029893590859766670198431581756842687190442725188388334988674647841818616306102455419963367848120182992500216566758778964695550471830821429450213619395679226887302721463454611798313452161872050832466011228757619561613814178307037040679228941483479522065686879642095721832461372235340996825935857158422186223603322892653412334064242242334596592361836662409424636325075190141171875129401230186247905836217256088374540304605064972866139244548773858157789034425137639115431923519818705830571317704975825988160711196886214900209350154639448903206284425776199229273115547854262675040520006037860532678511577088101015095520819641097826879457140543573095479312037471927560187644203491466023841720414241164235407998689114194012749632533121180425326137249651396779792735810097296681466726397656572177899062667529535626322107926294935340154644713278552887940936292219972963385388697458543161704182305979919453199964537436848987499103038972787042187522066661449087986498148649721764097626475721615643045321284330251781360751544382244561351626158564581262132905353221837089110941397427717802827884653431011460510729354287625278725946621316498615083204025034107030144346158821633901277095961111070810250314336362480673757204140769070511847861627207017326120045326920948544042780582640976785201822594867701493659291135372628559015686201428557980326900718455018177110349655189554930896567702964919186779419257072524343798989785755004102146833099653784600548024162337751621239981324580635894465011520138680369550593658188506277136690683376559752234884285201171138307461427831589341573306544731419974409573560126247106492987597315267221149724588624270513658187322611175327486865924146305993620361195679119886384264246593842053533435959531720266363548750536335797014758403488004668199885174559324379509580409332465800951293879394840990782591246121892014470911860641525897228827626485545321029841551327921629247987912821963061917742458044198272010654794599308433498589004421711393092669352680939942680685424439356760572641745768228575047534628454461178980163366660983797856298685077050995172381987440204206147158088107599601740356186987023179715423592919214871413699697982583612853898391016064833373408464252710074134630923656506214661684599333169886930397634381088010973032198242394503089241197778748400715397428621409437271417749843240810877092376749499055636819023777883937937579125842091054300625640543057829949780419327978006557042698467970957017008663255791034869607484516725161024086437975217348503988731668052205630060070989957476563497181734290144178296477866097788621740113302226091243511288785120693917533381596366704797174971930632329410410342242936760204034058579114576786723042289111946472138047521336991508775206951431367017472729720340424375272441980543370598468187506211089057227146997551134580343570586692264211260896194635619106713715085223485874756232795241028028840385749678571159626192974234563403336092652522493715176417216395615526362444181927018688187349469297697823795774158923316288345068221701593257556259888361999433884374322868782928933845119926048826651027483814598142425123248526249284061582802442180625044265169881251656929060793155686374277415541268163356822362969627951081850430815653398317184652351828373141163832928507042288707726476447332125043263169961652362174002331558676973260871368621527323730361240658038917964277804262597702794213902489023346011943922664335146748440300064071448039640945476602091795295204462101617118118769648524662983585169426408033990056585578775497783843704373757749466701853202789003254934894491365643491752113797309740076337514833307880697915753544992613442666005428531501002084860778767996011278482337261738953655922389765707850405907689480912413046488833807009804307236289647817520585098584896283409416094560324577683815332720477034294787420452016150193753814343554854729696054717218973570516967769137715732494318189742413242600887761037320716139270779673012929045831154270559785806422921245136856591103000159139268535696588490688155405183451022253769613900883367255540553985573440541400754293928260250033599884547459851299348712347041642343213292121052048381571142441005528482754438515687401516445752753977988238934963227547035372973555775889068956232433155792619668316170582820261753323125503383906990126238003362980655858022617848363886338098198808081966741151950469498538915066501456670165922146872147881584715927097720599223801099530690868634948364676767109828222225989429518309847969448619689327486619201424619579445414748666573875210352217386602400672391074251887730931763756448017484804503621334718238331510976297757008422851863086133758964453014547478683497401439247307830617636920694419800952775141215460616586484700732978459614441127267258072515066482792610375331454715992510714089266611428064754237180481298389468442614462072401569611730743558166812067715698205108045526292240880162777111738092653905734554416092431159550420679072315895394561863748754222167021129202083484779876163875092899320033365912282873180972679045726018205837903635317184477461067506870043970274243031495469284975889589377060531310905107074864385609990370634698765431061396466045408870847942082967810628887577293887278350099988622232555825908408725813838615043215017920122912097248118911575772860368828879302143079869825410946663584144264217084851463332058923686624978203024385635477802119765879334804268852220936718196979397769736752489334618756883740896124267021033307455616388693775005089959129190883455262088416639996432582789861549209529246274967923803941000179351466747807329051648004149957802695847156057987657210288288842280221989067862839727990876798110491614626666520717032411553186952583588787191030109271382522266580534252409655773300486140924624174307734967546419193279833580491283280943570466821901529500147678612489476765992444771599527595324565087083605103710940739746979067464163844015881284178023430733693433577650122698780865084158221247510545142643303284851463621836235869321862857330862051688388605556096887334141462856051408258333040092261135914148562994006600363778261647613814155834623658072097233523577458841691439649254997292177065673515908782692847279952882206215362643191092186401308787878736636490772952099598441708578922514048377321959081047473846091948666730853771329328443626385626784180676936689967063824806102936184739397389824653801813471873802399299017145123374756001321326119004232224433579009350400358093894747630785324464984264161059966016322395713820738047188121344816924581937076140196031989215271766121184357593519591448381538198508854903031690118303062116075413183564999994666400353655203620106364054488216447043657956101679867114025838961412744987145419920400935168228127245869290145046625494852155697104107693549736060478606588645927861617179816480634588207268279363634876509223779095181044036944967141503439031445703941718264937847528809276557499604831171561747555581410127114311574263363823910793884695340070276281444483701418844217499806437591492057161648932521042004017935000097841718762874192770489852263818494736706941794887299712402807342672601926805275932636958451828520333523012125057927212718368404228405950612865816681454748146084738828109981091048421975576472962366642261515035310462809588796428055251429064209103013505915755581519168821383495313681149289878297587522171163103972758771940520862242929635507586506462485343924754260889090705535357841127805429650145243063529581225323455415312051651185127987061018740940358318281998187744126755835909922616512766935860327449528389134598527824128574418221348620394912017629545736350948030461920577227518731771778008823464735752247893044412172813181421582410246397894183487358175925810571033509051321114321439422727645474545114777624202555462957625394028194903574173047444484269432136777415155167634633019501694570979128105627119297606607833692384819030742577259185932451823466474874175260173356289833491105682518687103092932301866047775652363196254455427628659016106201145903358575586822902430322312120996824991757612564217466877859876231896566449499092199046739039297707375915021736100560869046630835762972424550295439625163009667063516548853757125834379790078820696894050826770029603514051123269237217320293522291724944800610038896754907155391219209735079340526865273543986136428537349492715383414120167869497206107283848861487020264023019731030132635474410124016272514174153477072553020651129225480930837429605252790434631021235060493101068503205641279967522814419547593458714981345259434493289573342640179559001167078282520116862921692924040141777079963502044746296004942542843610466660906445366753639729383551682815302586632757165951170993677054964507442319913551691322272826762678111708450279484033077921171733965195612930718330080946520475131577499988922826744357174927508847033047285686921346850405903033190563130469880970028156414507620646624506648702448892483066308069520414332372704194591182058171092897239705767642645220615289510010811637327341711884851515497399103471355340212731086217098467450980796969664005443917299912136865977473562421605711849136848521706390249997061319039526428171593832677086431830701074385005732828062874683754157496235075439240790019175220065211028607577393224718401524342714993241256041145480884518822392102780428638110537823922467778197819370859376311188665038977268710687121951352931378782906684412075485479633720488938328084413552046231914507600644185009271559863271332685602493614493507878525376644435004712726745591273143668629983671313294209470957191283905673634301886270222418311898724337803790149018998826272150884798900728818521037014637751009342098730792872981696455384734803452468316849934916354375023855026567308674748939687461379897996496433195101842710913170480887785929868667608282847451499768509530639074782073490023672678213452958293441342964176491648815937710562591064200227163510424617281761185230757320348427359080340391350355197801154329266758247016719933851430771402072684124178136891997865496341343309186055881262620569130816846795123519462633720828039534778408743895300548403709801184474286366604753831497579892320320457797122372632011745504442513659173078738577222576957868403113112757657134446995722443130727984933559700033083350709045484294965812255285407193317578117165493504958287172302851671473736410746022761387413012882040825998875313937148139241441165303868657502532138592919729795311145683029557606360637320683360373599472096904557799394885591573657870418186691137289727405589875527314207494232099676951906163715090259846727304041051125959501923550167096725649673369738363427172797810306777356477074065272248354953094710724620881623993958951107241892701633829060049173627442904768144352485226180011267183098593041899024350293681753397653008706761982393149173907072999382138787058157023423081393644690499003147300155353109617265049721153878338171759239901458555988871956032901299752202908958149050897085049343956896076494843658786491456780935147844668167026548125349603729306661875353679381833100197725801359739980364113312603898274214272072748359482489987650818844251062474443532761002841252553861911647437810008467825284976914865334621377727420635248209056251017229497528712113964224097161512734498088211095903721674019781795226196099042229934582470085934692734801910347545803609736602857152310848978804083467377675518944950924598209737088152986362758042512117725732067690149755565979580292564787297782419980549164126163396426744988330979803924714752890326757575168034637519313957249717010411484427022076008055979192767081896107681588109120119700746283281725553486358968202895999492555555976365572077577042359385590431341856779027155297598745716361781716200665439514321996789892290753056138907295602865905764522655426153755048522127516922682625674362366330856050605839501468721605830594627440300027255548652696966041502743264098703213967228125247443570107683847079951412128150276951749053121563287763144226027679739278060177445785212357246201060256738844681424190842101639902102586051445002066320534174691091263188514125154452406950947348680396410809267083272138891342947058533579800830504686016250581000079145566232043044338796451752042141780842863859635298834076846725608360278304899509999972681921784129387727194057649821033780883056950636906017305119262088967596916390028814232461086606439044851665244486923468703245215800653741686427430046261719424729017622816651545352958876115450873912316979828559845942370065276126817638085503620050644702336478060160002879444959271035211040968994018063104885456341360641638709467069808851987036493322709910979108611795803356501012411906692983160298202229084430715908692871345563512185247156784468999624645233269571548413580261762870991265888488444495439554809136333733402814761170020862076576965951021966814698699653402654059173657345698991717456586835135799037838022291887123104363625623056148545229015116037202697817796067629277653468660624574741683972262662785927520203931495708835507150484017334239564436309842684143899208206016367966679704750383182180537450913836229077073312865237631703299440119652623444153547606383051463100088928742243578272223419876846458136663166944869795392145977698827520409104427447907586154993928691474840955077542281559710983213907601236100265485852443719152959321564541071142067898821874551819890317410051770720590869934111519447494465939320394781893665804954294448637529328119659812647547086488158644056935026201846209735146738935743293365349560111979404960141153280838066584034479913581248327111066085307534432033910165335119379909438858976881742655121990761769137646732404716816836261173592362232540523200977537080977447841904633508952110093893188098180645754083867701683273872782167014624391034317751859972287633967276425701617348665180057252780308285618811781067547489629150220609134135407872838176288389038311187260407292046610502630171417393767390673881160664178134667127775427790878571168196911572934556573001122185055559288145144674719381069236057923036486151140310070377587742628944216105294031479773532944775844799662098261582914750504549745349899912097265743537387949031081734338736658823268077038432104075306867308645004398284765658140562700354368501473835191154749040610422113547229317710983531308713901425331383550571775451808139207382641114905743546764948300459981650089269440966482354553441514862259713635548481567106224255681497867577994920701928838535359900352248337964979852730809393116297471696592025597036545861305655891249752660653171636513867032730190071775528795088047160231238453427251019272948827248043191024734246241728653851578972054657493760903930648955454832950283478499102900875454627275870492741113053640687901469114801669585719724422283647550939995958899882434205870582698435808098826866480223694217770523392383876662678196861925458996542760323150679044736541779113758204589107656704705588385177843452220764973383003200774650892633141493101891791873301420643302916987402848633972833298343440277062714669589259083675968065684204511156878594776191085983116650262166285773730342100859523986534985370736520098020673039679753197571206917924701087159366906326465377192312978673531887570363921596262963554997591922386707609773589447140655814502967711989360879114682161895808840648655199922110977048708799603576483975035010141769929210651554430846013693870291858536533652038665363918848076267256586194340581404304385195612374619661015102913355153053606241689007678724863181297647342362986099021406565366874730817347742619449089487260594533972904397213231662351023095793452138947949749291191303157745193003341404561172126252644660601901092974408431056864566450413799628132738917972445342093136861717158693566450020236736692106930898860190037396449060589857145630939473279416760208372575850149382180577561032912414647633612537962885409958508471393048311214720244996146893450567150145845889594603002509028283846060902269120212067088453569437464366823691418056822013004147403797202814768626478177317160135799684998098570669448704633779220702311145968664313935375514854735027109881052286617590986616945513085773916008034480083026680270789802729058792818325514489632360305090815722497312719364458310485126858895360401844782167546863782838829916392719728549435747934753962932116151089373282878520060116253255574524185534541721391040001812793765095296244692346886106150389406621052670571700741278599116259144796261481279051153991193515127511845938506155806806712012837320360683143909313293177166701562117418941279459392294601933455385716577572841129617825903984811708725527245765576119009069526742497660413958082633381031487373547641575205778979603093689729068482191134133402799630389825575433701609792791755078078626866342529566738522228647361928329392013400744556388151668045314656576949179336619253362303325718460302126318354339416256407930398429217290756971088963255525855286183894426828964081728819290969283092169346724404110779505847971875321059166346891304978276720793293302159701748292963192580655965021139397482102785080841364157457052205357101428843078490741723935663879108164162330410498683582398915016382237775731336831577363075574490123978013340749964152412279381564872682232645892923352848350096451774705773074249966321696176952289183952209741743271324194096695263861897096059022422505883715238866734258234043122550655412744999278562261867382118660412692802237246995762033046396607733612888944285890757790369457927603381935470944999694487403771349457532284698990353517305960649023316276758727420643338921321094067491095735315109677425822728530999483041831710644318932049768343797955955411262603169001573277353765460573408682424058089979293174473773352358815700743193383089930792847566231276493203554656477192570491576264510511271614531891416519843747233901404266284616590520579494393856805933580461691229631527273775960496551940209673016435182803673763653059077955039854283815475387071941803277495717272543210617097394024581008346653975617671727206004637993267569243365881088654084030573949602085066883416939558658988971309858191110449235797088790370344280959588282779214698553797833138516288569607996955355676830034235095243494988042090079510722305713490999659393916741892968716694192578535801352301335471574985947786489434211147294535189034697296303865210535393597081959738522580812745625435554819637045031721273139316833804325889240666527597801529270864775936131063002828018062417293002993465532336044879891245645757165080640556108246192629047254030774867568809105086491876234197728359212966262382017508688668530027312202079139000473228759254619454701552824371063002750519889053147557156652155760488847875823889538984456746566658186191474919410425969279853235586785317275853072342873791121537791480619473324745580598267377850698042746341546574782341694053978855662010846995959946554583959935598967028772109598196857386461454825779101863632406497033425066998414587696442962963343199766705758960161254778270689327414858113553579045093952604644422587327381797813298824466196009883831926359384172602193909975900663142495884008889927285962223878837448740631941519557773264842927086439988524712230706684163483075308720091267273510448072886723886618780312001625966056471817197720618626535696594415314271113825905781213559903055138525908773893259477100955439700492108342785840032353254013954464632712789413846482461225531113292840893334705425138994857245497949076750494405293193496005775850969112516038265942751319808737901676125747989389499435828826260743292983306318513134072865448831047756323377021323581133630667690435001194375889971333671551483346278408150791016432364287402534566537910981740449554326551148829501463347415668896160287469663875913449858860629788955538281823123739135855644201615034565415173599890096667175986293794156008506992924791944157640541398703426887306741537408980820265429481308065350485174838615136338582468417964648424833248861979169354985998312831041939487902685999101560944627485656609300930519704573234591133809108994518626713826959678943935256288710217342778545827088418591710635219738860793607559672200645615782731848790641589075667397009973158793444887980473883017487344441271250282194999977308105776595840585670452765961723270286348941187109570424818279466553116394528734824028588833480503285189843928210842460072936329371900359416752029241396857861907649497416766894892211523556325970846450426118906449886393454661916086922874485756972064085064382993717897727301130782000417113386595855737361841753725471305005590478504924905578333368489198303847699845488472522634218606731008243435591856541213193976852286565699261877051525007675908148845524347648740092782129550664013388566780697376513028205838805822089671798481297772840612369381969992198157390245408834010762416494477478134164161444423746834947096616991170004524564506821047620342562321084129178326520066435279779153975982872032111859263846030298528453708518649213864417443936140028839635067628167793562545495523942197765658925730326402810774055766968506054928396069430667057544148878281298189505035076889064363152142486598709197510040085332894692528314335630672588003484718138021336315420674614282546369511195195278894604647905741453072198874635839221149663552999167308042324803342250366716198031414643072471024245780105326179396823577807199021743682956032219924053202640233342090374727797232546642622791703155959610158450840427672394444427462596704311103374681135091047127986731617888329867991722932156046286018464075708457038436438594777986606690229385919529259386662673926837747750078783603121705190399018430969097263569504439511615444805647188200550483669440520132551666277397532982326951118950826793484169967526543582686777272100620772213825359437733680127350956375384357082794458771999565803392004602491613272546082279472596404878153645786614502723203514529481044883113061778893326268307103971627871119647439326406343450410088531972013469964558089054397995535102049001726914984479246042903154880721303807437943989396862370133212602568764626338884872776580514296055267999857999875071036244532670251438318062795028485163210307020991756310010059864006751514309655489804545964074936594277419962822151167268766104080934860273327633610522862127428942443642648249034139826317549290826985981215479833083985227386418210482254463460769424621717920346243642044324540018814911402345279852622546722125190451187970249475688210845597403728295017248566388346727270281984290820331377116346013593264482102882944015442402143888472730935493934810907489501469128247206899678175910931153844394989693232083429856754339877164707042586430306828504421713576739365928369412447497957848040272810869259291179955728718807769485130835342613523206309234880903346615523199710232397669176774103558191082389553953314758082730548187229443730156154960403526199101154188016804610845690537932371204526839440103607454236531767570833652656537414751602834467918297924064241727533367764600496738298926494698305374918400168078481099598907921179026928586291667140722570672768576591185772969810065776635685416600802334238557398109677875339225778502728855169356282410433378369507817128045455530710910440803263477987073517346214930303279337495264984962353793398531816119201555277873215294552906935346057179980412507875565458543656038662975298557350296756334430392714044105848693045945712433710352222902306998201703019661799959970211733854044055391371643489424883839743640623163730434953175073388220308885163953227047395555053940776324196539797460004396818855495660705823904803937395472196648895968553689695256757421379330185874756704613835161848831116451612525778625552864071098269223880052900989887571542575259074626730842076108832891033537927403710693342561150463089444417080864790651294038837372342759627176843895766467809619307119541945965662964138938114820180827352456933945549911136432740035110817392253545903641578360606045819062284582269638972294668360189698375254971784948631068298188292610576483475916846362845595395035825722339540067231519833188434996069348609279346932038575571471867860010342160016216958739493574832472122093654484557033911711940076355170256789208558709413430737904278813069994405610769536635728417288406001136939735626989338752818857391296101181803972899769108173029681928475397298861332827829914301317998670694359618782723593951336918092590614295550807518139827771844666215259656801836951615719873538360463820999494130754719751149748460372322059778469992793389604049176325506248439072009733747572162601885621622412102813905773884825527774232979713225107072905523206867990404184866364375086615755578442353962869287264942248980661365834365555092396634102011138851909083475668449092112823533920416067083374843796746023975008689071535748506659301200670247435910162829510864885465553885400572362116265192589766717802284713889218273639855926952870283907596303333197447456585016528678129033043621415766105363740440862709889662630776415627043651317444508548382104996074447047960505641876995161878892619098323045927601402505280015501551873117614609912745113372312111875752733841074980970024402216110894042486970006445807194712468911169118629134825431477312384329944399812607877671635087781888548694362300617142531332054097200710990209564381642654063042681299524914062433333519419246669416014920092399494942373268562065202902359879137693428106008485465301643797746285052626562240582611855342055670957009005650903454260038738485506300722229064614430561707278754980711485350154471206330878036701298132893284796179656061640138177260703490852070137375274704940887819715576101418744710550528220530505856027119182932052675542548632184542368405045147377334678914249845260079215985063395432749162305905187846386965746630615322994204445783351092660535408510588586688811529615586528283172116255308991983755905758793259136179415475426510711861149853291884442100616853150811714523899782529028057816254934514929058863180015445197304339713780677291018937261825567001533174157284968511013544568123055469313413161577460361228188384437764915758069290971319416573594641583610310290180954386806184936487075178308481951852989456473078706915939574734369810586192243749846229363144722244875828284748055796334731997967712395435727093141824061983088879318123979473325816485297731253873154812927587168670690069728499935410180973453439869003415564173266663564553007594106746502846832998901340225016213829693771065342030277493174784174060238581896190473500976047322617985962769264761402177112790497453719062956180362976072256350055760471760179112538642828582244015830961617558961066054790794200904877798780920283323070384310833054554654216602867525874953131020873043507196468697758875989875752593594718801540311164536617041141865501690728798777925461474203279203622027557309075019316770110359822689853482557809659917033650762496371346981490550421728029451631827222433002056430209223853877049269433723277311555401366959350036389169807201070716266605983550687154589255856717449919870211212487615718332167722043908092403477958192727165437704521073520629388704231404885860037660984477665361622466883406405045488256567131406806371878597125778692500535872587432243806739186175281766670912707615522032138682776393191595887872618100122347632803442999936757930696721085803459163647885960202025909648718308053518961041110257082506755865548189625750026981974531796973587567331614842595148297894545028457355114107957319247658029626251286518548519117428379859180719947479549697131246179328186264231574516004356236319587158853024931393059161420981493196743826114574155360212152560596772525417322696452503322429171446216239020383054379264442110650249400987128438553051527764060099504740044078766037344706376831002010361723298348363552858876643593441587786664248564600895687710280037387221855472364346704010693668522876394429448323022525372717829447060547303191335730305090156976124183656702562267036983680818928215769071303893512909233872138450926344837163971675346801015893036020370421478165815614136100183433427628397330317757165681986850022436118626037022881582591999686844891903954720269210835414024095213422383140099342853324878649238122949988401570520693217134234527956168993794685614574335818367322439096175532916488670720734025517579698937531024586259089032124017472687807314960926992144673272919054027027412651805338828888276129070672809918856500799386635223908986124370875638982460912009405978998456969668230238372469874347476151374172590565975024824024606349345705331283827759347906853194508735063455956749910618102085412456577821933539366197914808641948002957367061536021408478838680854239944414360993277879981333756171612362882187311830334237630989189423014480971268175745674800332995295328350179819391431166353961434676329970012300603447530314593513420406724027705993289894175767551388287258852104246216164131252073652386785299677566787680204105670478968116971931684819336559859724189005179353615100059672010179888941286246208234601564130622811735399202233146697244254558556260590665400069307583826388785757560890162556098672512155465122304815212140034782254071665297159707477862880019874277430231265238849688600045131293120697551090862195644249016552128365822847359970827963147377028559015394335098951449317489512857451772444141152276540498137594974840419616210469482007531713784946831246086675531940143475400732132334826000400391871963735212965513615126474734558504001881093280839083455181218680649929333442852737694444605250081248929453065787675555097940890335078591119182891028798752261966376641147820963399798552192198982152461514137591370133603295033597915269725656315885567971984817416284975200342867453027211932620513480524481814297620202645557357717236561222888034309019927074619486295967168200006568964960856127942837208633840851363027701191978115556076414911183975735047460494768364781441823620563173261783459314481684690602877847668825752691194515074541506582320236061477371518731949001405178906105783178800874125735931263205209988493575839915069062040021186711654047924954656088473938508597982894272139535018936191627588687387876251431030230414891464763453336529222451211079887774386638786130716226105869924141206104235660949308768787896466828662159171868448195667883192539736933739623917862593105457777099556346371210345851630786335579800803708881089419025187795681698890214874739532952468857272663807386847149771945784385558586708780356718199023737620280464853399650769330002731323508299473342215039264977172364784750738040718139038185872816635500440325422657127846786854058069751290400748486773583295666566366633017772299343935128360575438282270626680486878996138740702862837720895395562634492461596242602394945536468924781610378423366212097171381397213349662541310447874604095414520063872532597395742409064168300412879268786691093858186339606493371008580794075377936637701931418392527696380048548583796648058965992528934212846827867588257609773432032613976729285834311638778951764092876207318578573979709304591845768959287058038012000287357729321150137935773054390656480334055111942082171361527995193252715054381633034919410017658475014408610756065094661088283221041930708224551650850684762253169171071195361147946121545181130659160541878260600847604092459059905883046974204369448480329635824687596005720379644197300079582686855805677036597514948521633131381647514261388191169017311537004338613790073631825136611428406385286277175000296141047008912757437628091410249766849134147080544205744281063975830606705369363725375523001191784334991272980047743493821100100837676376461347153424537679519964503743113710478897318144715026010105453737111375577015058144510966644477237778989754861477200079680695518355397702364043127433443417759882682084529994929654049714179404844592998946566132465326520195230812239304302699608308083032826160266837999667147012902357138859566665967226372124390855992650975730962374179015480641778943603875917171299534798839040980843057203799379684020894113468361581881676122634146895251755420063119699981870756013995622134459157408002698111772698081270678839335534296032755344122258227649981960424066230743154472689003983248083791734489716578809511715582922518055384158556537728760434175894903825973601285970325420225495659567963174834366352417924172405932525503821952787230488205351611414634424105703429112720954425154524385511465105841468620782418994409725411847713726161365895865619428010527970759710606267931387069388309434573498405030996787888869980320165126089478600396986978426298703205153145421876454101970896859119015690475280065456670590371964554657116151434764971239458467310172985023358473993259507828874898277524221271041648541220627897136670549070567984233754306101315879311837044528705937847839937480565463753582102055807527066467143885626236191536205543434820146422147872778396748577946588485660422813973013289314293297580987481061556576866122152067291849409165837619709539939405347354697275022868798499255539942293518477164507250375575184212397708835707456768916264189330898694636434944134069883249762414895859333841777482118948665860422623627839035065735338737996033875773692610947252981543404636278020607126657389059870175114386600131765568794558010946038994392363514277573816485470312300048430922947876148795062034855835544493807508955063308153455663107082772474774253441066474037258573951637711193065463576377142078717530323101366276582325276789497540434675162166193307830276037228182856895287666267742760569179810223038162794898830984472108354674686135420560663020803870941173714836068060282563561751008014778254923773332510232305742615904719693116194517207550161897543153882090793212022184322341852224222692502873185272104080580956840333458122553611611191267714086891473323176468444693836607652292913924971962082524868887611041560512428891286383859639131183888120711411237521153765656001915873878153882305141862168958611600386923555641067399494198459858766843770091034653883293362574193185431791112865351322370934073814554774147938803947483367780106973713076080453230071250863332143273526115923471200199564216014780885375404074463659656335965285980780116451574251677761840214541763560597956250915140933734715782892239037375981105163708208124923775523179936053135083215007870094686778442801855289082146675590294312443220187402768180817889503622896355291187535561503043589937055055945230388007110328642034257738133331402142331121944086593912709295658610017991169802511364409091397498907135176927495287303898727922095945553916487182768777193485655012460706181919111565036207677226495654631646297379119313519306161775816599699617805441571223168616609897857650449077835512233495279194326132643348219873650592784085073414746149044391140135125557726053455460979428991008923029808906327871769068543657427668602590259397512928053230804828511831165410434399225944442318258175328322215613286822944083234359423411780366711376744656442348360514828277196993557679660322768516692140972921857570633584369609021595839430341989566809200575462958793451333216422710148118915716387601907208726589360832830859267967723995575224117715691785086871578994169581894360246453114143567483929114553256833528237385231585014017886018044336411688577861538575132246585475019913437702889789835838838639328982564714766206587359059564208249047650826257629770420809928710648050348134115848418890685560718832505967110011211252424735933662401337300869648241500189297816633529059948008811531366535675390673931703964358513089597305281252414914393709667090348001790489685685391277211476703329922136918121179511222673752995020653120240951775468528642817182826453899693694189971114360304322601483992774165980024382251368560357239471980037569348075113890149824013899126947148467281196824805915710580422871637608678340201116909729887403015302329544446776181723085835237973200035710201654957355524272135193722650220553224150122643550013292926562377544778100845266162835762913978821626672921746787476308183096028766910864346739545601553628249707295545784199125101092965617051001742362122551484863703204547168375050119065978033155398647143602213418809586374203998975636543348164841313132212989065587710479244601922513542678254932503252312352205485677649692412123201417722696817850680892621051742030746301978168070738354977830770967906676278798325034452007967992252862267517047611595282297129997904276374586402551770063011355000833165446397585131348084260542024419088987469842739355819322210842743437110225849632177927611607178029911669254317220128648923850895928281819999663941424335374890873006043035849943102068550463639624381935035859460291953638207285114663276833679656628503255201956646005145244989857023771759445443618907347607644743002902316649666246703336745871261617613690695765482376048709192707619434483328108164134112517650974943081201605824056850126647231129393300484321971139755703447937588466577141059648265501373276314483650157251010875266720744602515086662059425721459924563034578077077986446312358934664798052488317764129885777446328142996751040114994972469380996752932003741328734303721390623980152512400694928116496088720113618752190883662298784436970291810171992773135347744491996133818855972361612366380892541397061456586567451802174080690145217692193681962209354551617088941030158304026138587493261763971776569437804603502922875383186635938900193922603565401673819137616534144557462785850542978040287217447778035357258405586233366109741108932599253188476987471237433413509496570865756990114542302440957344011478624227285896695711169963780815458869772754617641841768627034151395641945234261623072458008578901158360397883918515801600807132040646168005881907133887343793939869348282942135473349619724780532161237400321426235429736116306006002498984102105407342198093618053847996999386684019938149713497640178394430339095551047286466395297241247901760931737875851597825432783700259386435056767546815368109419860589474008325250083823935010317987071438019080863053704728141981771186436105369226798665651408497539394135890165443530764617045706199742860900100116388475008498782624044609206249329591128498471883543603282351074434162690530340342201565753027709014412753564411269077770249499791752370541228220079731599128652812109384417552401332103821276319890033908848328251490084191743326737636510557347019327787842232797575743574007525747035814931075882906348981912248971545139221301661464155433612746319421913551073951947780147517902834111362650099691745174547629657520245664369424908039074216040489143566489012795499621085461622824203210716434394685744578781383714823043758358476431299019594928807228766583502892574371922971494213876238639254521133184125980041355576431955407429456307465434252918092468691548662021094194608172031318322710906010958548554484510935312649479980422414062698777016566691068796485632649624070683339642802588804122718975398486686977956850335702076007450552947829802308596175922669354160805758651191612027347191531753855301571432480340530327902886471375374081760235432031293291515116520874406179731058464213044022293930617208094093866522325305754216622273420403375323541920133857882621675281936857664617552278326699714047317926378533578649315426815230560113278279947817995835424033954143753766014386416783843518942419122987752598683444947023141737928437086417158036895777971997781733985539710786238154177938485923252067459141686593483448862920620559750984000919545882285513307479378585574549381545856165227664585840847597483662043197877897305939357995193362625991064476151404374442924152181927485745591632542044382919582324837088851561183669146438531690826539586554097639787876266479067032698606576136243266374667773774482061798961542809944612544124762982519433797340135771734357351898430726193576474000935812675388071871862349296538802631682022573536062769661057243059188794901261152928179400285357696996923596042349263132624493794556528884937247026385462712855907959243755028975080582320550627007896475630232773854671600285915403339391569973904899582422860441284473015786520984985360026247144830255343054580565235687256701354080280138307304523438666641477366872728490773997376345492223464918896194565413955571459818602386550766485279972952056957481299972870327453249553519453358758158926308054141786225449526231801653429970748971010128216581444763522924450577302746634585959072622051376284627138170161604856235860847413119000764122916461965153920134435725568116605600047688824611917642507013842687023160016616604616752426857853586340859986850846963512512876837062564066114572008312029539818647871407468050667528990492247373436837715072159896756503440421671408375205921108944552986058018446103560938938215756192667880878130482475571622140695822980626409001161382387045010265052465382982677208449958191529794471797866468762799266058735479408525974590190704922326736986638536883237045662249502047698060352239361888150360643389582243231699393083241916978603883058549269166533077211583662067677750363233639214067226772779491554507432070559711072592742150056019258709360769167974161998170316793997398950633773828162387990208325442988974771338967280807421132162304337893564687665406355823892945318886835426880648240854006234722078670973769607013406171704563661026382460936519298601448231353513905703509286630077595815315743269154052043006580315573572994845052511729365101937936288617171445446533152867842976444069169590181044672154393222072345198661810268235315862612577482108810923367476233869182447612316020654635832947059174842450501608628955385162571973612704887306062416907693769686169269686458467679030984603399951166326869210979687625780978595918647584561650221864158854977829844713537615142794248615245165734069272470098486453663836743926324250740201080312567978094789143267349838693630671172604124892368096441841254031093892782356614102796435056542999128410248538955130228114539901590023315055910272857401569035679963133105053051979699308259364620383991079666442549359355312361860635846697566415181870841269198046195355261387399196276894805636773915679177518600551333549716288215378072771131113388764850223783361669746205707235020298164126893064708683811778242045390533259891070595120972366089636293245986917449912406677882312547490956223598118099201757106040281706692351120384631703559842102967005339125350268119096214722367659872247066734083356529484374417323064017201166138265364454945994909061039931443718712532473706953999001772099406218206125518659295579262052546452710569957709426724287469253350809461788845469582465499782094355205264913051405699408239202812133128317874650261303810359192150442652182956921274850111667370384110927010781025751472451209617663598264177435564963856996138131275502813450518661420274938334426636130582597926628776440378057881611516690179458414278857828295727996061880416502233928500671588153801975522786315601176102221679453616672022000055285003426690924208502922362631710178317620557289823036315807523977935056242763815822192321347338069465821403211600959344578761742678982615032325834479351975469946803871421052881321429073185571955022473011701231763516181640384509307542641839928858435888354191031711545436865372269599313482999066099272085897076554856614906944212836985008570384349855512924467112255822125528889143923877634919220130812839075516712456531415797706684065099798995471604312653716679217659642858936449433765360455465422661342351587786863987002286304380668886784376683603878276971259249874431491512144136591077665745213746057490082289634700750569738905402326863212680388406907770146808170135832263678163353009370151854830615587001047526713721928927116652218996115667753514872678247683938104301694870302935325684457782291468945217828020632898467656510642406884089439790299951382520784653451313845400119237009227871890169501346193498849908124378417596310825743627739207307975760053750921275324775403945238974356105092222199674184096692317350648716500300483047742066439390595275797884302345714374704092332895436958583194671435026411651309043388167082404001827864882629458573716498490398111187374333442820616784750837655359203736676639075031320364249253945613791035028967866032780296290645437506778099722647734971866238634989112086471463823042482619649161309569207043892524400817420038338223289071506315840740914681900043024276930616928870246960437660807564720850413609633236108248017145630428230498482842967842437426459721447719248252193939361750434581100643687899218710622545943850338685086892403546378799102885632784009002547615658276348086617721300306836809900982767742831858274832676120084446729181859756477816216363358779366512314689830811768819723954765822303513213254732224243477103830483431137694249937585226065759795943723770301915059589916050452220847562187782634341192389556046525942029044900496085933624604940794338914536655555862520898353912065998806982887550479585828012899382416532260402324562630533130319280443775078942318157675197899477657981824522702865576142353503919913778810210673137120225287478391232837448944978567880560225023401534418742634046436044340014332116365972442390504679298259646581280704838013198381353280647503674439720121734892132523996083808920848327869115148570699159576453542292911398923093873126703248911813382667758215738018481638882169064677794611314276939712947554047740697738471790824867236394572001069088324763805736750346456771773821924436152842424122304531381929490850571836527499570728009794483880113431157916781706467664781368797106296471191965979897987517546769558144212558866833564584054050945960660036366410082740057379583355607436783357212394501064205200087921680688445405609004694016328748308539064939909539425614202804673807144944320984700751152089171563400841786749492011537904779127253191276830951709333079252260652884463379350387257802756292257630308022324706571621708833127314198970070287118213611252738970538289609574995652512736039638167732949373874438442454746448052352755448581380528211904002983659532907185492383963128712827302990158716903853207681673928250914522291564676812358620090814699757377990679152057108887385004838607254666188219441605570518015521783857095100039346781372321851619914769631879860946223553181962944134951558235553796977309991149132943054739332434922003919862169546840197929988992747411680890780042426995871578717838463838924400995109664032300675853274091435812586637890991086247552302980262710466658090846015516212877537786719275466825881833491100078327325226831371023026579127709553218551828075630380553882044534867449380195915431064082093484377056507118226848777138847407590461429937606902814182135273415951042354399923300461771890172272907674197441084130375915133600320610856562031780842252118990569493992030724373505963821403526272804805483900485183726882872631659469605032809317943486462314852997029785820496857551249859032809271254429875641857973280229203600959033642062653927970830371541699025809008356859518249423406616739358743277607665658865912326006833538495065365508170346324618916600988025697230794448924276621492331250442692274399347712964832983987909499072989723022111242675448160394375249179700180454562447752655922014482551907078134935940759561944231104117655695310546254000089729276621522148520951968578410565940553909170664706699550387170402676441935886241068909272291904131477791460759653637869126502391671842429589419939437613217447895728401065031168362879999875418356026630629342571139195306276055777470481922035066789521581764341804862676496821911109526103052449560411884279466667075861087841008451606712857705065229312030944992399476268206789065304556731000297197488049856531784467409347263870646581679353677647243069922906313036032828969493791284351264099371125429378728585593503462531639913346745695278687607382423720012457528751069834561527297125871149186078267915898059044792250696855085358246341924324761384664338584805201731215044499075234647046645824109519446117419349906305608128889339863938559527017366903072189184240654311948223772702253126879689624501011754664036294849846466023319318826085448920504829187028078787415774364997123924703378672722804474450289379270097694114146530277196977830604463953228376690008083324327112673657539755573803231840870636466949894424584052757417095248341817299196566647710911477355718802440322667307196617296867970785673263243869588348694805651315889136465722569590963257408213375190697737219164073233520683158090564722551829688424620454465416257939319976231430263121292478754102483328348756904385897493086624040155913752762292502501553118403334408920849819730435852750029149534792526677234036672938829230489415251345924458615948244533690458761201291980883936434685881921168542592075612662173844747288613513993440819647661580547960977299711585744276856281455650289602467070717223579188377080720429085771570786648742862776034208812187552831887800604901609898303700913581317449374834144605513338781215744917404376350749305950529148746511399103059274447689342793720275456469887719052669941542606406689448429297774793157657705952034193698065674154739867614902822977844362033978147078727116268355646249553305040239052242039740252515574851079289024635571960895325682241935240862505007581806222043068753310560820193580729263463939479110988440440295044745484727160567261810251917749477690638387052898524501722675551032302795691000836120060383612150511702779045079005602235381074495699711017162966485188082003926364494208107002775655015551948760183701356180430652055591722126452443809117722319696364976029340036144857393619270094796878929473357036989508498580514721515988096181169376229806472484065513077256307900499643586221418810958890219306040394590141480579834643470928671605326068932150110982967521727309516596124239994566468576171927783763873121985052079765943978026495030744749335433813097616030344204727328905579362078669136562827362932656406217487729262864837098506510643571378779575002669819176678763211405397069214784406713139332042999375883862334276881764306755326368936774085528880177035973173885459059559016417449552981950335645034884449084359815899095974842690447313944449466307292486504688919119202280049004445033565976149200660737809561307576142623605019108324530560365769914683644416382594828957479336495029096255850372083711731138302930812888144147857568240034581362890563616922978563221111817282682801360073998206935046370985482836359500180874975679991613035287547769584953107318987777169026597499540969899088894481478493648792556928807789421997974797122385923582806930746461574982551461814341796949222211359095829484836159234194095230081821276825085205907154736211181846019663783328243957365982228262058053123731689074591406453148832894040111564285793081127978640406639574610446137762015696356491257323520559828583396220238725454306592606623230963565202756989597099543516334584027146538990853335369201712237523576000273906616934724099917147777698020219640834143085242130242142908755453625775961680403916530546324227323177747781986997684020709733494203165446327098078589066555182074799127779834557000817574626077302885394590326043395463649604012321129458859913407861788744161210462973308218340148776122864483149147188388938785558393366014365691105828674491401688969325766502726961669602902869943100892871909737216520750605686306200227356364350522854369324744739767949464726785700794381435255673754838467212796192925405704950700302111720833777576876991777734761439227211018898913693442896987848252577862150451498847063424022308345549422992394473357328967759193783667885703407994188045623846369497146420853583279965530060812944193245766257206241093568254801469806613391431467128245007119669940310433799049360632518116572976720278712666338398810861892170091930293828748175180468383705737282090269605412279624543652544314457261263635354923283359182844891193980286121860878276952065974532876112228904952961350606997620818432041718964847373627056806139846879500959709850250535798523072202013220902910207048797669700801573995623062572551077528126461499487791922654534805158014294281280175390956181269779566486114445244286614468708667081405936512588773667819498836471257362149722478119295809246796965323835183623640495828802281901415976965213387675164941883083585680245129703099624302672784938248627532043565762935634091186412970062724662085445019812776536919875202007530556051870729324509467606277160963839138603260324103495409252870629263218682703436599148250270014340655641412564252997048863610555341803352232749838707373195875801278959357491351042014067529359966257999663939440985888187481535415990200575199476057630309265610653714508407934799733693235045921263160224026886972283549167231062429087249027675572592454083828184482846398058874272676235526785900944614501343042220343964433571177171539268004743229845367822341804843254775750992170230513248409434927531989041165723297112011940231606709103452764315114604475107437997072682003331498112536316554724225368663682735755342234550861711191376455379823732801177939823251717829715938691221428264775397624021003303672586077611726722045466454903032876552604187805285270301355836004818917472002541256173716461890275943153118163587038952161731691783625646467874954069644792304392675962202433041830779633264475232642924708504262749515166681551956909106313362773553762562416628137999322941331530935147104775849601273698382555858000775865923554822696720394711505530429372203546682081476031847722182880032108917474482839438509000802052543437112239687515768894863272745835350309903288170767565848620925803398604380519024698848178880315250836754402297834400833048370449130897948677108757647125898336033677253504513480335210187441259960559032616799064462408904653140136077731776507689448836086421855028299059607068578280243487555363571006872478448086294752333854906563448106996670524019565892642880571518981043376056789301511241896494966937108585406305560731899211333384560716625585277079735671053855951986746685663505285280563345898254359374897995147028276038494989150414403429352776946474749383372262599725260565149558449058375588905350121791055601712957324506449773030744946673333180798538102961619584278375391876609455190368840272103489030706346898511083939645575550218375644362154223685939144160963211364345172907349674401336081659055636776554611751138987970327908437620846599274164155300666625184548752833496214337378615086549284884390721325171317195812373969314313289818653820109230244312168882978398519780232784423072698050353936285830844397134367071009353457054488729055965515581795855927763919607304168132294886110124016638227396180936881769541138378426923824568693459711778109939692920589970450383689898970600624966726278615113945751641171498197649467876798630339100988903930706359235038882432794462377848119579180460999008206149739302356289956680641235945313339970644807492135854536684718780021696995706572925609557138008937934136304120530758743804412585541150487873517928776285041920607497331858463004829428069364631299096425181821253498713995468009550036349473481519594032530832184870221146740159115895401881711575129439773384508001329408742497481975906309553713790705424816667146204345094691613998852942138789446659884323140941613020323779835289432695240217282578350722589280566951597425669652342745303644853472629812740592182180926853874800829668735202223711986437575686291175004644134141416681185004984203901142624443467271859342243241198986247489432548795814026555695469804510826815378479800082901632990545106728182145200190154882974334477212929680979454323774546955968206465006816500629235390018756905539851812779563651355155820824271194467935971780171940441525189023681405346104074534509507874834125999106364275769356599493439562393475328420988507870928341085557092254034032729262990063399968074603498362658717751407848899475637411163189220995814256510738953428844550157266585994461900409560212197801618178546376840028445251889418993598466819140000591676098159179267377456465509217452815685840392747347134127131120191134479112521574866775355067935573513587428072070872257777922593292232020012858731005048336121072738048190290054953224807512808499004345973850317516870088487916886171223869157881904374819000923147953099112363199847247499185224590865390765171975030104271644991983003626117956847684368792792309064429816097214648203084298156273037756241982733114214058450070319493273890304388387498906997825385551881659468733779427301303022482371179348507316437015008912635504286998069652314417159506116829302424982328158033947096971139293900833860400125783589981779049646564601713552692937998675594199980082195849813432464959891191312893023604294965922228145566905017039865623784882553509868998666711911857265252530916631194021475901991182703114441847925506140052257567756441356367338340282370533029626404297450166232648450916486684344333548850026810218240632132649687888199860490589008452753577729749648884011406395625039736213463303784339742613841447339966952379655000316083911044524713924750334898612992308000389832269627596874749172363206989838998782863315182793633056495068490227785429985462295746760032594401354684232017043189383784455383745636545366453203463728199563010873133030279243060592150419048491730672522455442242484709346436644491699103083386234529540171329585841523106757082060669149614557869920262372188665967614243226228067133905365594463051520013276251976081845492046436693645754970966311118825606777271935959295150756808317109605057680209465290439850084854129856324317576784985485155725170052319891718528766551580779772641764901126859652099431771523146820478246757551521048169377446076519979000668852710816520540035786687554123052024222145521525058776506333511785106096829583446687382859048837874015054014504073963088937183766613651581380302676371922770596426525171840068492488845432387093194210672323012150257908983313784043312371655042454245470031412497947296862735957547164659369635098775745864953980288462133255207299094478039296106868917044804800759155664133659669892922213712719145891915666245141970787987942812181644743926549303724241766914329736467710602449086946228292808887164636647267441702509249140802420377131644127384896694449881508880114364027400858257719209509614036244619255952934133042046387942387518170128188839747542172270541527565856645104884296245593127155602518079677514507508985589050407668818765518599480257629629081562218215029130301753729963998293273251924230724573441612767517527414952591016779396003600480676375545063341246436568280848833965384446465956019693674331850622912703122748217949384027753241269297740154879964374180077202684705383649797855347241246831044630887220722246819195139279843957886223873639128668713842808931523052006679366123333496305924589388050899553089187487194915835790874921247151298016076255222003820437056606701866221970589841821501267856716285312568283813489548028252934664738497622954140510744460745219002030497296080831682356939434265092148545352802472807353297852221768334895269560266357343301434407687857165596013680799736258894993837146119208759311827981111258246609421442274437465750843473407677114393188662313537000711357750917318523423827279809628515016131598108046168537387618053628118483583742807642232380967728562274506002671852374230669741534459224030088192982189166607082008724894749398232951061840415075427585158622435287362605480924572882370602784604581230433834845029669998304761419304290533151288581197083730425331763398578830071408621312896833007815424019808468653984084276747376456969234152230779809219051149475291509695442593492025111427409807603209073475009270962402488611855188811812218325102295813519872565065989556572248582958652778111425236966449544125063114203007881240708692981171829084181080259826189867524955490606977477435100632764493019163918636796904413302039064353344260095592743716674624003065048114445939669365533263586322436103115953407662293937506217327736447389830149373856943561142897196082068860127240811260586875017356816515615793772639275688979690360588491614452364084586092885338695582469178794687967490027381418560211752223670408544285697147342382159896017799471217134120382755992435803405586396949713854256271409950828463900340440651761431307847399674995721704105094894986051177813968574505641859758549526366321653546369747295794570648765092810675123049789873886966431928965908274527780477342320962131360753588361687145596336371315068641168410739342458621041334406131323104910390421382847161305724816697060197197489691743727609982212405915382649651898532346591270679120884611630483660877996266012633361966869559265920656809997119423231453997395184427931307079280850978395120755788126018315500558880263614483718100141136357830083086915115101301339389245436154656808005794123375304471590531235311464010393536337306649924382049379561803222638268058215889342115029387029941077038472104111600015312304594455572110877864635971461590774558483234990103572804979071061694594264363995659679891690824224041841714146953073924536547779059502832618858999772686201940077242290374036994534969956011673053794759426499042801762649485365826937092890087617192137579479574393258629182651387364650933399951315951169983713702528755371983729765256948801051956131446562317669752696941408606841310819029090910750501866780854022052920041958778432529016029424534590878326127210556499939133042696414534935325283641394800450964949437510754868902686599922993322963495411419229666771939903185758241945606272352999620259979375821285836232927600318919393929369769611886197372658490019177633672534577064850597842386224462913820929717082488197238021738378122107595208670386834271894083861376363820049887920411849324946494705709798121704653934248394929893498637593055494989908456758624072828807582574422741353049849608676321735303477977014542479786551871491020879183252427648663712625008600722705079660540570342053763623521034011368387834022205575002034163765873784746130989656127844290387646274475118585601180672799298661885474446224638696697503756537027343413847947268850716940130346661254585511625812581548378753055955000018820027643859419863034769157201533819929695507522063562541355586375278130435344848431323271073431242761019708624977801750540311109618816191195971803275784342726028808423330231088634597202892974201999921357057134010257196298698914569616365450601884085712918224895553685277991296873599771396319508282338711277371808967304899665772131104951782486587870449389131612153677087250217393387999273023608573638276983163744128177604705692800316055142214673319027979724613775884638999206373543085745652564214735131679548875363791195725020443818136155824669962471507496567382995008766611394402742114097023181323026810630882094648895496212257779647587679334478897900921560157309260501318669081165686966994768431397417403470509555270852441426703226914592905855420255285152237056183315445672051129368862800920455232969095157263451472078834327902085385653737178987036363462593478031224328303361759519785346591119624061606007375789692168197700854780983378029438305473840936924317906228269576011371487587826749028728296374082794704591493709166813575996064239763192217936362512596000388348663382243010232401428748435289532717650095913119147413065053782243553428078124387104431686163273206269941357282407370966529521337400856918384999130575648188898807788355388029053103204481525438381081130481696320808367876169793537669192511287510888961561227159173734171800712339386696747408743396713791469889273421821457046917925457960873487910334209281740885434017339727002773221080300873055675347580319016537133806255223292943865670649277788798459194510360669085904843368309340456771697065408047912004891836089706235840376844456117409360526592652623515434513530521433649162237549774850301029524879984879388504098702847595604255989134521146203992918663196273759037541589838867289238433876132719802453926546301420950196658145633086582691035059337400739570402117983513722588641999189034046989807442822068956186877967195245817929116243851919184100748986702153485162950024567513490892922971862140448106435678326530640594928983537962892978467233870496937297435339772684676047420725408881106540347646667664549402352198494824597088314062678193214199377508548333503118625565242170228256421143489380540524288932513135827480403422789942057418845968367281058773082532794773215529509953577952832451621611448709762015436630203886690428893471587021260706295445960296455838961990429081869212461569753757037495304844242732948490998288921044896238685706804001473979387629542185123372675622568246507745215479489057934766880659995059457255575337133287969255096672443932667466778120531489089112465457161190493752620533102809888878977560097126949283858764947248120766269398745488394368715971652417433982452282488903740711835384055018087645660568699864223250525982560352275229969840440617895093336690441193830699890523378396944009106365909255362982537639834198440656323252191393197984943087597982772710065843248296318293270314285238415576572239971715265496419074948143661017170168733901763010443899795374500346822409594354984208097520205315108681316703404488233783517405549745976184851457006120502786244006575563509696465219151355272080863506474809042111135732963675765499605246710059539967167323109517199592255221510574058497603327334930870221970755698903953107051619363411281263532311698862762125972831266959775932974285889762419590811395445972150118065944131298412237083645383396185456138975068564998190141228406617330902533239123539753361752258036506043132977211383154186756875941561176805891282093328332576955659310400911010569034496701170496544356339597891775320302664014734979715444349934444783981244235396790196257003155532182510488528363853666944450946171848938919277144871099821236112162326183521258578042186966297298999097262265750821127288141192501061913747815530153733266883978374693605438147091667289326942009631296120306304526582436754022777846342046034563086582756216125217204525697205737793052765654936651432466255139090087761701571516993841846106392584287378362311516524615246790815838963950429179141456372923595101182571514955325062796970783585123704519333627336378599151624013396964315020519217740734563391918214618537834207068312731957117357450806062681318310109223500285584479307439092000412268399515975121135428748622755557763495351820924473829193591949547013629571098268593341562559475191510471176665581122753697170483515840420092513292624290913790777542646860504919466590072742124918796838267069048114270630415057535036679762378409065863078391510834691762052494402088934662616168331537783670752223475123857861462331267287812438133146686254388414512821833216326529997146573801136200135836160293094539178953101775134784493712141898608315733144314829582351128732031432626428328121995727037863104009348213732063481016003888087682159183705139748857315559793661443183678795664215667738889924273309232518964843076317725415351900820468289977752027702044379206205261577137768806413222087359606537789000753107697009249558841358955573924386181073094656366380534032425823957502177008577917256807021000766770170311849789037766288285302384710544214868232222660876629118045446109297491800737193130245090110447880675518235340436313006969412819953113338809426229775282497725715020761665150823214883481895418893320442073151642993938267634568806581709824271136111188864293046973445520087832150781305786651953778092022526150079740970700110545513340721359012598168682580092314365450978776719779426999285964681000174178346585646439103688716476495956662033032388071553873894894605961876291842941403091636233886109161130542560227091828030912400384173839065893311793997101021053095781347471134455616826973832525746582663341310724691943858955344277136299641298523034577787973246213628134738553629966310101446928583362438929379413607642377597963101513335873546041171584326555508017572792840097711516377133203992507052981756335860938677111164209509206397109205205127445207439816147007780005696489602507155082727522352464434481902866839256794221355453114708809232597650622294532988176089142383617059566768720394263599618469570350830496763348119109970185899209506145733892876239763742546710314948414829424615393049010042617057460136653349005835045959767629903944479643722038674609466903220143145945027456623590015429796834989296105617034089856316111891781543100659556242896982147677155026132012901874353591564693030812450629891520510261391870398838133814309355807293959578997844340014646778611972752292147719519093928740507577453233000365440526740838608546587922801260729017757284533900566970010948671491590321657703916475749726720261539439606582549047778750238866151238267492745285059799977899885018310397961510393349514106751701829814916181086473418439116221517037690198958586991762234529190183181887303390895501486715463619631173941149261809213293740406751546571497274830659748237313830817675328369939944021687563408727233971188065744224275314959767115551821511695121590299542237632107628958139845295534233180708059387849857722966601048076915857936691643984016962672265024790521004288007807759811677427984283684166614783605605288167710365106128882585584623369684994651499273856195636342228802826558862473115105070709598360186929656938515127589051964959074975126090561294259863716790356753406748587584623545041582348890805741791533874692910962339008730654315049646751170975695084653375673019673541362050971845960042592960665973113417253670903326332829631086625166947661713317651721826363199891037510255186610346225723011766950383646564209854870924384089736660603027596406139793504739216396987882493894549214236847164189785444170012447973602741683526341186542487544994443489360450181407337990068761763840131550089029158177408440988733417999161872742415446131446195153648668567345538269767121814051306917322464735609358328488362897665697386608830319572939066398164290413937466638948236625095694809655883216881371123865725973854193916997327255777359394688939753053169772203363195590184522622008995232223394149883391478368574163653692241909505534565187813700488308902345192732894649819257814516119598337695800583953622661153653272201650825524101667355107163569357275805098765661465790262015985748032618378906252767169010474860463510083820464274115492132027735420330655702740630440816716746983321170089142323375758045409793662009685397938020074907389883167772642619547862246887119982249965933654360069633310582965133961732031274185842621653495191161057555078250679722735910587754468107403428440170732576367791289738166821818678554984439827214309335319228818865221719651125429489642721124663308640214526010034017545799035789311213628143919056430747755434781217028254011986021383816960038171616293854756163207296838272011323907386356654672184134035281813945222862471884738761555071028796195453673158634721456318525554829976995957941483130964306507667756125801474468104519843226093442556516152009788316492645264428936710806713325526231907226189733613393105798018188505410719705105844944271392266534261056154125684398421168807170976261676215547066890114992078383895873695185439229491396604698849269376518809922855051519362068526301269305403296642750718176720376411706778581310824769821064966019823699285669039784248424842201352489408872547462609529771346900206390962231939476812559835816947199316825607316759136270765586312511919213655438144174250333380091771229258018721178721974852107380144587489440362867714073522195157168543931600075094758653739873561463117172463933887943407595933462665888949971331593371012417162687601597610655368636922612822522745294012670767058344624172602167005523423048883695965080232924924710089996320923008220153457525677630009623157713954710573771288437644440025325675972762427052731660318734189667111852459918754048263827157006834929579601181281028696230001610387731906807397763118745983446779730886596276604745373382676605385833081025618569315754649378107009133331539221215710333348703636353595784608964976601486512175565619913471014816638379241430979109775016062444540459366476797927713215731907431333359114529896895088432202593336935463546188206883365247910094189186273862649448542661983037699064133289707268054319531088829541185266071453826152377282566063908093999217246262725584009575290847541785429533557519529866218138753242197030078591021952131819711417546927556707278041120285180442241330833284926465158928134089477359911083137639704289061474614982248815645886795965689590573797404550964513777446815861225297380905931330796798600667895655892757190324019308074528702178535016872243316686095363715312758738151610886809952974986166113947568632509328592985664200713137890077482754599758907259012320119007250764634432731601859810732670524086317384544015303981339965934585248735116628413562160049753104438671976324641353726701187241777035290773612505914097692469028671234348927782890648130080846099969488798340085215933870530319776973965118377243053381811632991889628028533554654363995090129454496070130997560728487531844835444526338597461526607674738556264488064053123647841758938817197377175075560132186687805791496378383937299671345901525234208051397458374327589659957547865687975027369278437289165847578788615915613264194197607015288120789998289577580959727370526717101944977847646238205306998774203948143760563557273309408044187298292659410744683448638962956443026362914470829902207359983673462614862195116856556997311244386474210696301693563747285489759118806715428700628708094709222555180177884462498849430724368071134095754480899623951877108125890815899088169065866698859513497521783611413638658071988718155286089505586679937452953397625646420455251682928994457724524225739978246711668645356295422796331683223847328015001834050709464636623716411780342580032146463348112082151836470028992566370126960128904417063875309271864060741697004877975469473973242430702193348304129307835677506730215707829998518569795691463019861464854886264989533855935066050733909540797244382822972149795115416725567448149290604780106230612479531549896981790450204546077366064478949076327206324018495570449651547820012671173943581177047281386229839833771577434148299879628404538085685052164314094245542125630493551276143947366939960093317216434678018984851547622032268595224155046173681860724649611725540048305709951264871007261204651841087793585627676739354961742304573886696111166982763731629953441405584360230595687582918371831442453489296692781276717150214149820342780849847449514466310497539668316997780985860631372831214319963201127384064363218102686273088423941767630892848235286532545781678504319696837096773596180438628529460777397129445275800465919303477771721449142791550149682350655471498738927986202590390277542609868072753542137424495955527102997276722498617154112398683689869488791586671612584032140770472008672229513341671287570997068341854139451910578193497070800441618351617555318081032170832336882067980222137841549521969638403545736314093282531957133974051931681781672558786279746029110750091968297409481784132911124135479923279847360164054224045914095493312854115152879626987955517563610517577655195947686842287522924535372736448203798097420401382511366455172269933617568217256274664160341094252714026025791903209053087490546437644374510168271346444868642094057738626366469225493251920736014279320463636329518573367998032388864596169571898293444931292355383708224898408583360000905590522369576498090528997192898350905952879919994820360204041376805858584395965473800540944589113864180479258985183624730319889317287761120376621859236334068056155813493153135599176864110566479132171222925338795543012647379552762975559055331253844502970063380188878383645921823101167372700757233372255761455522146867811656058845770566185453382487964075015143945638576637582008177945117854239633049077971337465372315507708240313959688843048814693201597100735445239822551712491341235726358438056566308336149389648618790092136147551690138193667793253989901766032774628073715249808996399673090080407933121421807829335009275285488449658595404810640222648181152893041817878932133418952032019451420870792790498524240557292154725299302822453587433803430435195732763047223164488767454325788895778585337111508141504684994376369969959013944333065837182224664306411472208755179327005016614594508665680800239308131063753393630151893424233874884528154843653427065723861318645724170302473620152419669122485625002641438028971381259453673483053039525196811972655774817453847725704735360785592992135809072766325015090532772080137450719079897544262045199947736354768729801402659017891586285971308303423207892467700272866770937620322955473173353783609166934202463337451647252452937476869235558297735655471618841924326367145561972507991492976550181623773800219199650646503450504150992529318115332414683269719223689915226404818305357573207872396579911439869898673520784915028607187196650980626560307067776351170194386966257877462939568837571407952954362346241397631395442885203374958921320295200546907703601224808719028599918757376818444586438763817372669291741063502075437250503138157738962066279201525495553791211099063613869984968896439701620935129093995034337804698125152966118545531073834755562971687384578335253458818328166581083806803756359873303852002286850248444909663278423482101761863075094903872608332960638652727230784020908909648475785391436526652324268532525891206373899171180278533273064204367810487417011235504580795957059284875216318284421542184399384168114538888222739030438423937753571111249384556111307050336213078787999636020747506209092337843625070941857478939369467301285616749219496547595002294681174471970469200438309416667444561247639231821673913035525975795503745403062517759643303522427379957260114767580860584227411056322048514193638412010738010731720789693685292933646690700808418350103283757011662983112834716402081202389992740683230505476281236358260339551671226043173829024617955299452086050436019945064450471382518287801772809073190017799559968775619935501683551178041014719519611036346695231254563563585728955044755208331523664919211072898068737131096177154571716256827102356553969194562615851055606983671760299317077789033206072136369199665866769240470808972833141878318586601802426335367747098637183607723255175897577854951609696125341839299947658011812529270071517820819017479030298450106381506848030443590868208589268358620519850259909096065977706584443878122184294325487047824551327950122182556356982281899595553738892686904451614042072718491738332205592598133998573623682927482292340496738683500136071750230922870507049973296573020768671606496704450902277982638853576323913395952825438366338775372353054348057625313623329350271995206380495763394920347952034505948258636342170306545433116178003822196692679996260373099679438611164568518976720530644435362289347718764058690832485369772049293393554769866297056428653189183330420952808560334263710947254971705663483308958244774793139733886939964939557390827122465926553727364868855885154846281370205141285642588345640451819541828517897774800023927441783987158215424607955405295535467783692374408944754258376759332314291666855830848594086985374053448880512941596306497912319751657833785105244942949869209836806106353518814636287293450403338175407620234740466261569982656254967928194701943235259438242097677483191182037727560531986902516500957461408825680099915150855705657300975470831033390735878145640052295208371722153506234666129017329045614516522970171617211300957606053253583753606500448618980283079276007633670077223102496452837578354927203376905267174250719173193842891415643341091276317932522420036780138449153632421932739586766189466503042514780066789486795717538492339918026248643075999298179894050373226287859676526362337601698985955709488636148023693962255972044113109373516300218131815980111830756731709789520543997120402456656895226900858730614559383499030185217834557795493166435383843511824102823195472458605599189297351689991954062120839463624291450701696622902531846511371461448940591368031564958882661932739219340535700521579992629678247435420763043830944527169603450735396859142294429234036343945372021728878763271934538136077839080206647956303628594657952237448675835230423051247038340482258368130000740895607900310828853455482747235684011188498830925024797346531389315971245529806292863415591735460269634378443219831698035636197123950693136272279623358342350682528189766515640566691265511021040547299208261457662993099634684483434470820230313211896867853277820380989148710920312598250312275251234594068623557413445478531687314047170097429636853248167442581885156234214752562788942985888517716269119581331019531680955401220854821827286662005643451055451899646318277220729541662607730022231160577173774739292046360364540106127967081475317957319201725441903129627318224762344623886163293663814790226552755921488365134203700487368649062726749637801443053171370061784659442575995118580343885280908423411298276037147677744821513700476333414829020971000954470571498682760691126970700251634953933530929420859575070952942905131836782582300200967833990116411686063163343351464898247521953630862270634824834646768462228115754596142099966247552903830780732527322983251063543192568347224377804599439180173478244675863505363281319571395884017784762603950814455436175235373851197991304354451377114805989476026943819636282475183331624340696862680166629829409404586536525197458336613122846088844172119448334637462262861664643756510029032413384994909241288388738789826819423693885329525010158891616158399478274462872461424134017016141567243513215285599960708248610123906325485991206588583266422103315055435990537517689823895126684817688247926485923560471347468356693288038460050197981309868431619756068543584659814413393196359539818837678603367147442750904299986344926963306367324865379835140654300500566247265037434188628169826591636051401814063439476400941048644261888648321600755390207716675462008806925399728298500567553927930523778250730651260659337834369670890776013724002194802755589814386969440610608149558191614579177893573336999785005139557899545716648456975421781188956800158078415004023446459383914098986886663745949304459965377069095921523491286005233560602912223652308353836669233399570445324502893020699306710205527704298715507812240050790093377978240923539688314927079112303658589313689686412665018179942920833143428478777963191454630094556907338446892575613051888073415894996432989015696374485791852042961040920474489200230081582690088207906353638118569294251358135012235805931017224632313733915121609725333704404549978535184383283226475801288551256408951208884259152976254431194080316214750223380977200446730841751211717047058264882575951321124299683167831203850995341757814205195423251741437963839181679723768849148060093289031388315992472298753345471925986405709125192723888468217766317897822935779315503346776898448549260352924617254568340805044255341704511401142679124265770098251599231947884772896325956514914625559917312303670612608580326047937866359349577158331233702758495577993727808022832314351724144972498123421325075070436812959449805480438081793356277214468961326878933933091155060642641684404658055335978832474752430397805852975716297542395061718619282190819793499284115632313149884541516135648917850424966280767119302874927941410932210583232802838406501128391889992940267777499222612089263279591912996570826174522097934479416304534735135673358335918933488561348375919721610376119113384796567273873644944548526709508855688813967553063170263085563505359902676570938604556258417978053184861455588218990451060623376380526385271736980457998241216687354218509885162044902543108869683490274333595961955111019664402810047928266056059687043264552950869179567920025448157533538780647755807121086792056848692148586267088250772783637047543426178534707048470582424240036029997748107943106155126488643131870202698525371382710656638707454373570423381759647367143004486562961473605041227021994476757283906095182233869364844617451344664335416043953263047535537448606384404713120555272944508270768800968690584273906595544419943418917342718479899781047808730339233885006800710456430021368918578669210520991605872468614795342224270254411419745432821463577001786755909645202756831776600723117633924343024980944402860320299174815704024905965584078967256585941487913295717583296704168129282606763324589873371719106357234408690858040484356468245594459404038511493619157643731254724653559812724466406206082150054549394551716090265339093899034736252534450366065923898241111731792966487677152281045764525288293356060469468061946971694964651436163732271181402941451143731726907927399076190636524462409870725114397565330583113273589959595425257602251929530820623769185096879547025323123730172522674667593528892923310848332879432376781494936434568902289230715956483381998588164373846312601823102586109316350767887819722761972227708779811541900601718194611600872541188193736113270699647636124722786890310993627239633119036843883901465910646596944052487042979442495927345201021370576458691933412201225902414940588116635884440824759616498787093260725671187189332579163133996826945223606357797028146501838603951827092197512568942500503004989019043965844901285520672045653894475200453084736110476870378544466863014009829609200185885231352742162943321743448373272610133920909926734444291751499347324397522915354440180160151298276186235095084107583186225260832104195105828749548474492378366694729151919951660438392285765130871710611792590727448181431969996101573357755825437086110531680585896864721283619747687678698589746140650195256580947917029485106083000065729896663427475171238189010971283761053571205578312053223847639289734022430264671961613584931505637537348024612455672978962673646539310505082770152993121651901908390417692262486594981220057177140505402586960378574418720740338601689408456444497529762200141826463635850779625662545670611720170553945155385708232553979884798027828730662965927296781104280494150550543691916626620116980155169094050479048622484966001556443870145628870437524117123853041168071131161968806517703772592258383042077962922497974633670852824496182636766981754557426333722633773604103717768855632892328777349982900590773725679005020959393710926914017038236088196223511744781131099583079208315870949790427653181474837451756320921890600739731192884797329212676111698707845981438214327100633822415368196217168279921754269509857585873504395146565728726301387932989350344296438314044131050819576769707279823721304940640781194526973688699192822141178060100301390562462721373119229691980467871399905833170581987320337518110214111912969368918560712174614569067395057745100268058738164771416253834032092574344777719269823761241274444068857065271768310643154955191368171663596106266196574789304078206892772222380389650075686157339576588683211913284775154855640621003099068314901309927273020308563309152588469288507985904520312887902630151087282707912626489290140601208235054618338398957438139235214640555731965116746941640484400480302570307975485813897249443051189124009995959309511324071512788844058762948125465041328130166476327951077127080348071969888528005319287802686106191956236276432937296801578479035911146369127874889293237096670852040139217657285872258233425083138450824165145193033442346641043368427290081430740481734677130824713291214385353904800077090599745759901972186714298056870183273022221591336133951954307000965867758615070545068508251290215099044933957269258074435016921747313932957917019004404921376496201535670975982058115011161178462233461100060170605900210629941654439686428889759879672582086311086436777446774836939642937829150844908121990498217527783918351912562353393726505018450668272348024865019615407159669082247543204344930455361360803182692579206287295656855151129280506835887817144652296647996987850885057239588562879463507529498744001793444344732475610894319341986393612766723912906945508572444628613043018877684261782980172350992430154771454526076578739457771986606904295669218342256773721614609296774153436085789963270926948067127300459963085833587263130675579732746510324486826824883768292744985847583761445534381739577040737699721716971563863229598216221440853406800243309995621735261458878538007001298845341268302223410858469016081599726776638856023211635925666562744094674840511975442184546473295965542977281777073507350338767926990782531604654576880851998198154491783068058113100832399380955587828528281159536664360634272884104958053272919932576122252439585668126514615673947315263091845766485124269788528288355309372832008998568888554570235397156810288908641792694288936982882319534717968028933668877218613460660888457798487652034492164097958210757030010839533712216943578196481921418777013038928672589134757867962011691161145550880697278025538682782889498272473990543782591376314567519075287971525427407605817060444981069009630924755949309693639193807015856987056900450507854146645029563634859193297241943502962394805813767384605123163028102908081961679679527271086550389439394060125542774831361012481509626914838672070176087513129302853444781068796180995826516602410123073279328329420417130240818503646262732019751472443335872646851021358088867253437726768870292618034433361115292422663476441363913856975207383537718469002931112872791482446982890567915914192075151099765820824805606674433055224424733467043296569525314317298117658653856060993160558422332012195597658071407104063386091481428374553945209452509798619585717027704083226110958811407771067904642063346244144200541867377882227780177890142566963447674110240370172962665541309262123763017709223340932188668786848300322776094371935382158689414028299889571385490738745893072249637635899594465973871988376056503625414869866500912850965235492178715215266204899900900199903102363841008366836374351522456054845021412660339231257169525926966410334238794009583413496312856961764707390004781785362841145646386112318024993678524724574787347373318838666216698113472187041470837947158175970111016649035604703285582062979818481929219468035096658585558212773127440957386367778795663936237103276924228498472245631028639147648705426033652884120980340824376993390758878890520509279686166966361259184521075290087850506319323979107998933787526666107413296383128696498161896935674493335875272864105135500817361782132486382601481550157829154652109397023665314777909822623511388014567870158825330435833537398925138597221946818301985410224449935414742665005454671912339523628454823165851269425036923811337621437587070768009814421514086295140373042343351020717777708023124139153691679823265844155237999558416949491992054887018344102502328732982523733568590283788206642748903900544211720204044704823096457773109171630744340154182411263014409051417440906012768024540341650120128646275831059448143127425174776194954003877580286031217607279351864645068737876406169895815079863779862122659489699195516598252534123882936417412270183959009639940478506978534318486244951036715739893081757942229840093386051797229086938025611772514918813638235365838065196230801952100992665690782490179044983074556117236463164610924511989066418079039401803210936470055194126037803697103956803117339029100194468831251406222895238888330900353407971031202283791774794399286390204195891139713778796084976316278879651435699997451750983477545790792820866866533592774542219150855378493344199124162595878792631981407831204989809750775646278063816813802470238689997503073812191712326362727407868473869817010624492082383178815285995512461328094474938805705312311848601513332913961311144218572340654570357292065671070416855620726117807930474005890917701910377713916062529852086880945995659298335685419750831566240198340437644925432546392646198990418052893065342332718388816141142950811849953606137429673507366170063876399292928691486178212671801921769455941846702758792100682279506755694056955650583881316687522770052552801933338411662271471396922223853156358450772260124672208748687397829177956174718160797605772346741137991899841126179387251994071219557307422783244572295857536377276404679067159191656239164930461309450677744221919964017425315599941310250037616769303734230945316146583867608870294686339450682670588428579588205176174947967881352774414149920667196350652831717548456263431257066858182365883875927451464520084673662358515402536374982908424977812551342564293822856883645513801465967864821179714629979519188141472024598400894865097786678558540368688192487200641950325079326252914955580899134609228183468605587459808465805313840993086191579356251172796062399281071517133814005637363127949434608667967815624677649476898996764171469874581540972434186099827552827985444932730191372628196574608957889379281988453432832365828334289254859798530037973730172438962274424821081908974849751923200516663984312067426259708334760269274840243125388845965097743044460601080710397399902375525656260792401226998408991200725920781157519472319050934403844679111394711876775123638503302079503998973972583373058640780482828118092719412674930425687819196883394177962325796545005894861226781043425254915283971480966941065325902370277638006089431973836633439028004503474612882407004423774666591723801638466319369317074783731670932366625541302754926598068023155984817388022374799436325790184185216631151863779319583875315104706314783158559162413186326351215559219996407819713876313433651040405311877729570288105849444491646827273625192252026619176161308093822871837409524945195421833362492487054918247391700986563850078505969319626250274503359213725257776239687399543495836052844116559128803402368839306804286914430896039364114868413396312201567856620802993589397737333433413293761895967175951910416403139999133168186432883317712715138745813236966176395701999734435152957336796236190921538999822774275729110159449714191535855348119786464869816604865402821161655469130186955529895663216589575494877837038949017457488493836886057442359018878247296568630314600725208293880410272912430103947684132434071400237387449385925371402919099859013215730689357650693558249651956087444778004762209176240114752580113204666279862709248277238611396324250659106153958970979342258236397241262141173996285415861374326947983781064104319822500078935103271372584698075043630637636521705347366988465407243786181869916555138426314313030788313534485406486455257132875610750414346305368478786961508275159898576488768790566775788652665167786043669165743859361156341622230865574548034705659166295315517136552945606315038043681249927836838929123541015843280495886059763465271130475622640954798031682924368168944431859763187320016975986848707804795266091772833577302403705577116390831440035644351225211446863629404697984722568166180617336170874458750809463946100976192681307623852883195732730357328016854002498729361993833124345625902542883144150185787484813910241542132922961180989986429234138699899468946471487867327803952650629659064454350157870427798246002251639683151280769080289140099211400840654742980586713610995677251238789268522850861114135239543611325317848117633576286243094804799408825926688975492217626007437010851842889398731033114300291605719329247089788164906790329040619592038669684676474850571811357994010539760014221275367731059038838868341196325007874891866224094629456626803594544600125360117121127317843003042069291252609506049943262995057757319260082936969124905750258645033607917470716607476638271661661705119440354648829816353292765155821346273127845841112780713926126891182343191469531195644474980868954236769906435224010319575561679307298950955970457210924546805101022756407493789444991695856730774607324661935697210859348421028833385778241607153411367315147898148236222597700622758621743900296448350911317097863654329726131788568747536687309960008360851702869127433950191418388043882927444276225539121128302743458697090570235660654815758133283225954413005527952695310065894813087348237340016970342667636695682315750274631981347073277167640528860481495397978483503078504010569445162861771823196972990418680731515237321710621772800622376424891580306555427935690106406006132740480605300449467540746885762166954005545232093530404634762921546651287887199124441669040887613807099369718585870630966197281542800849573862201268125522805488146931036451139502489233337000545414210767107272723605956814114703761116890657701533418182932428697086471706470458606599380456495944171150014853153471309827071441382418371847170215454308443216449260248475769821773304193869535659558817955601375461235364432059512474335124742901414079505300797508344916718285952071675489088320216033483056826744294198782138898110690623083834651967737855477519865193193521045585775193670489726404512421856576572420069613340869644728736024005758751631845385464609860274591450983698489921678789625756391646660740161905375079356837813748293546924957088023697892709515347894034083218672382676775645256135160177662472495233620937607985291375058333153601762993045986939507672743972660345445415328045885720759953115100871853732900349231181145931998523392195040636852574855196879695031157997242691675553766869230050916481796884853744541487392363148221291895349917763452951678757415452137885676608899071699965335577118283022857769984702296250859868322330048836156052070189368349271048486580770452970652519324285563387039070776417550182683217429377620985200837815471446487933192267191512246082811390484912074588355043312376731475568854416214943977356450112608799221370836327690834662621539213969998136819458177847146561097881528091180319627888402955905383537102860051404640963282214297901084394122082158816568104042118283088076469380284434261568800409069786052143562814318478379980628895143539079804328693176703982406234157411459922503166699453404492115479471883992476054944869547000192922707431556315247977552976267575712764569326636132706738442342295753576552878316249746933901932724445218768176969170958448089399134300120279844027496885576588504000624737805350781016871959966904329927820086773665792201836370362563853957994111983402662773987712776241307711030345655580286358739601970147686993994205523375391282990822926563929466994786041814219793495413776099857569660499296101435312298066083905489099207317673878881669558807240471751113000810135892536707151613295841295583928127209635019380677970923639963238249832440296343753429652323712746367896213063785646835464545552214295395158434694809188465190925462182597062586553386491714829301673576306365679910120686482617018436937281232397850106257310098737549948820577868036126388535334278130595751271621420566265987721091060355390274588960830437120543196468161680054571274142527987132149697482285137642358340997314075290110562677689083315851327078346411461105921153337895358969680285134911709050673055465867366120063515432070492940537121570719292009001426725953525871251337792717249714178256360477072798587449269121102234982225880059272291378359553029656472431014350811555628466210564648504862997013209090504145521932908828575589440817664637938726336117386832775166686651559891307666288833020252320633283118816006359324247953983389414335724308031151945971347029969682331394472050823422266292445896328860567907772553316967907248269571772263999231926702318347379577068392634540640552421856245831516729504539100676445964122080559035359128627575633222232493078508039840137433250874878103809197193113324230401435598028804403977555516256939515728767475103652583528889290777800584548804875084245355468721471709107091204617354582416444142409819351511114230129248358787624675796740010521810377550605830848850571371841614534666016254125473668362505040787526591046330865559488546432062834627603494066311813215048844342042960202029645065337132606314887727636485703726791117147692511680621890395327793406793583599621394650730937336342107599234946199971523070209912223244483719582354249767950504484917679663387283531866893132231798331068723897652761201081834324281292511110880148835772831984232504843895069335092271626477278488113412067564473408167376113403769723335900259880776576229473119997997679311443629925098708326867038628928220257788221076356422938186716291650897597541446578837304054754309687947530293552873495326864850438492497881461526662670308870601717935510306796626937536992876382702560814191530171247455720298037684167713031846365402100950883602297722679146753966291191287657919189078732023696364878133562798297164110542749052565305312327369304085307600191542245084442237416105783536526505140099086163045338406820983787032012527892997118545242095721933713823329133022468510855227637941912263799485774870053513975291702177253197562322259649545458331694722354888230743034341178975792539486744271877610696761029242517041954928076237135359873739569345682035267135672685974588845121747841044389085839419831441711547738555364773580656286837298152400133333740317292789883310984866430708921724890915405783052211300186380884106978045646782197932236765533193848672867398455393292290139004980256907060701654544237533286874825047797523028158261459182722759606541931965358134908725822171812228661177169929039837201417726706053280070253481934890209126718600090522873490350487664404744018952203895320349193436998526556764535493097279080081739885441955964922236635824727394793489587933165715986932826862139210559617791232359909745697592983678242087186678492307390980858940656414888236517636416293452457422678349808309422751527047312134692500774545391963734919265177153674493409217065113524511624807438819011903240149691876917705835511793368733472802380392574024310728439629014609974974075152264627647737465706567966311040268114902509536361928483294691005663017092909266220830524034001224614667117443847606844895494887705101089070607038018523026286144100979823554192289640979190731762520084162205265047424128316387622017763969923878978930863345061290965666171888754337081919426095013762536270972362318609816212069021294715421233104022818898766337726209200446619585333260780367027576696018993301330205389895138333153520296633557513959283608627693345729910278765691546199520387179243663088024921645709236108367819156427702086274416996240666366140811527317120204659599383212452165282210459375218861185259892568851144815388101595416059449269375801457714873157196992724153841437790462303712559388943311445665303699258092137456200074892914629285178443588405592783466112465726451006056548415954060834176666555927474434271682930345336475939934032974597401931985733837920887513705219846693066131533382597674544113189614897244243044229826610870215291600357572312786735891082505015723485113855664502352822163340530059009828733011805246209992770907148160924789132449654025712164429343005065395309227948513162174283485231113312933653704271855744234052927379544521635251670424164631212584215686374952186833110573076312661185002430204533326164559344150451750021147729900203736301150547766872652583806499799412505527132376075826614144489881693748392435772639847564935676779980288111420700080680485581675076230476217955022312411942784186199258000087768906415053160334998982780717490943437305629214557270147923828640755885009074256056099570177165047221736591800549650775698191809528494912599136135256513438837987725993125873899264414508367632879870553191933139600436645179872914653048191924206867707341704479124339263508936387128925263469921365184062418971023682127103875532097384804447103661834715630176763823501160511299354475493079234028469873402237678082629559960793459058859453258764596288379792346250010186291735026125386884042940963485710977693217744708591292814717041823234159600259753967236159086138143974416149583402511833264848145975036784865361551591091573175062083770873647937255713284715275153530543677821912792499070269021644235731586983818947023988563769969809704617979360050537362419983856171492977489886894366366429624009175033642521069694751052746136830640756755192359642720653402430926246723142356276835878052727958912568810497216277387111011502606615629700979573102257666176150963992761573613089492389079133925385350951455796616453125008451779010662403030991877886832618484264363276717800473694555325309868593688064136964825499489472567034354143746967462626010953545964780486829445398988005765871243230936916567177056943472432711033649885806586976849042093311323848308867435459037868516066666215448417994871371303453484533007777853347061290589010668071930796323479827107256891249597427240933097619098618102287279008472182153177573447189217670165425535028739744624156974702612601276684827133068895745649240307791156663815962145199868955679365700796164925590556522595432992408573580039129669744910750692797505954884293690086317775028542146002042956050795077749659560579519096352434888820272860056787156539872121839365802272809450598658460713511375680436441721133434809178758909964910603269596645792754795147862324833252656367140123611827560676530639590153158545379712466065873910487541322518559694972217935677280598036154875427711078644019399055640528725588985546216225978864834715586338609864541153223504233607423318304684951192898688835686177450946187731949894121708209724192423711974638210905502414467080813466013346798327344184158648911013390895883826996814028154843442822131213376788633228814326536083364571052214527994488295761720693672688960386853182836009654415014479440342639154777390429970994874742911196999940742885077921783985896738962965180181495348716185080368218746660479492598627414830095354720762709498250380758783624432207046502679568687602682949036052491842560255860152600080267581081256885216564824670998425305540805269278200467812619760227342974719011427377889247789364043355340234669898919130601539831883774685346344172128519473526664808968966721716586083821090298151230005955689812048600922580155472316947406930941128164481256814481890106276406197838998016407074228976259733458477901529242073190940654967748324327626593756563925992846719101984823682402482912440311015157553916751613771549942690017254823058744155491735340278532514681029706253164894669670908010674096944368687255982587963209607362173917859424284871801636473988741856748617588078384247669546590914565170471959064842122712524642376493678262361614399661494728792556475818787605364092767094508655717318369943971693151509592156851365063274839556993956384856117195991233361696725928366489163910095363794961877721673716355247673085545805806000036049344626012878392839671125237950521519888407977572212710213309254308393044107083137359378575630910004655592563852657155101614777125239916491649975438732017296511552950578829574905342221367805800586340967236537919236305826307126116982478025966580641509853318582579679280345278860419059151301650740694398014275185567998812652017591382828956114703734022516350413708028890830282856118653462754336791333167930368447626562730909945043673071857822400946532845619150674662922164647759813953711555806292370045761987748324899589753271694558413776557404710466357748322610610219497275429215858651659241616394980110130252761486808422288930719698887094739553260702215434131804433479684265906216265936314421988463587082061569018567627669457889038136671321238466599944359304210720452479308307761134603815206422284158357331148162476300619627830412791271699679976616237265353842731637233992119546567716636232925925369885984803089942163139461029395178592921529598996077553916321665225789700353723608135485323278771785174015634557085826485832330260756244714629031465242510824843872900747129433984330586812915829603774216307104031733549454181328913963379616108489971060206610763461732765903346256696481840120752713962761157454942289288613102511315658508225003200148890564601376442467532498482864661380558083188276705667712342920155097314550189219944579982933719909574654334644154698203913039430174507895921827551639557381533507221670424239951570595671412941569057191462307924989087177015895777374124225333224570951335041605504265018717577875432803763233673903974901621847482009202876985735786378989145647279531927281359601691236628837218031854165590430157545399024042984350727586308456165553729634761024127668959678760693322526936478246003076506345133702705777592087084467360207453359468308176667466715732932954497202956685292996814985649078429611181669269586660211840884859155659185558423674371739380637435145833323137559482700243938325348020574698889348952026138255363525625642645835739697988978227071684970558447772960151807476180322017121422763551570063793580751835487328137800938118999833802573823152231218749347898427203756627108634012904327463866509165344845034101181531758507868246956848731110334340054059629172705872254924801002085820032738512441568409051637525385878054695998439820202899074342962155626011859015823847406788894302525005515633286986832981055522386668662923255543212828332763658963330240453478717679836097371560352452070386791242548113008929560470659344756027866256526282071937752186761884837799389723694491733370441750070234836901939262360992413879762227985249729451233041868402463548372009399752313751114360362677630655229521430905414289182816003913109412431602182953568214764390608287561547535789651952905460806321531289680858673602910632458810075647948739044823288518026563141018780046496426186117944753564175579718698895158114598707662968398215957184132051180136002217747630735336446783562169663763939405498562941304945453434632013211648555673875415293975799524775136951369867190531609254611871489204580010423419549797588368904232482730950020821568138789379604923627200604436941515362160370846122202861940755222083859438342970063761432596107493094149181330394892497636586955277575168166764005413419357533462251814899061552988747588018549828434487827788656213871825551134029792735657934030640218870630667047434848682527986883700674162546695469544869421979461111374389145569207694863873416451772529210786663067707846176436634439373093488821534073565523781723016837696959818197927797166875152784524313081271765216289292607077996875942837440118393695592939323328466078986970298639635051025743265683760155351551054101550759402476612441903902554030253078623213699782388684780246299133561286856112592709480060117799309649457199624547395228088313422278842196795115252635051932072607848259808209593302167304476069363228504670649080297088266042488551756080907924866193108395101350397274836955679857783883465139615970783948168161009984543335358860685787985324325845063369871594270465538420279225514769166799781117652741971590581891005668236064559140943042270198932955642273633267724087511197031874477991997628200875381195653744702327287135180955053041921973311257113666448041007394536613079103987771434551848244201136667941137345677814907500890450090376783830422842528322824242315300451200588207657848416961609397586417497311726724048033758808914067762753909029879186383366877711031881855089302947594797014047563321449061052192161999069322644919359198314521708018000948716215902773420459529006897505268875931593527970793816582350741521228832985851416934430774724102590059635836090093128325642165831377903126571793815845159432116463783107370106974302577047543068466183649000375991752119937536964604408814442234749246834585828291608271397867691367697686965938344206047806173103817651248836407969328223515781557549675875762119385898981852831055586216525213282429306337701514377220200597995916441210480431283575664950702808148721752229767659313933255274253765503038152344198760366386303634718186284417323777120419035454379575500943057201547946458246933264226673257045430573128624163779512707991574431728182602604678565764333690346508879193408814045098749464169694693664031852319797438029809296806422565073745825529026776862508582510681737913286995313739279866244801269654634458977328337620335557805225803840869595338601312523421323999024588854030028431194545781246369991307329786202274952280547098961094205263696065532409139194563970969078862373351430911416946199103795798673875236121869523365251778036292855662147453690352121123420117999876417452744191455852240293465583526988066090897894723603645647930766500527968103166361494786669459675465800787609623303236204969567933962090815871308755504704366019275757760200448674964959005855841341930141278985241082057712523006215574739286029582255804190961390225967870655959739947866534104328340951268408452453735481060081934092891446342861588260536509020757198119314141048834409444875614784619528077447358670235720748838222207215925617114420272983762105921834438470773101568775533788234259028991938219556319332400571743264627493523474131304412086206780604896545694155523582103249895697526054111334597786141148903199038376135717969433947284591737917222140755500164048859616620527932981748620644367139802820783036311487517643384672208069291534233247108508120582640951423208257226235191078387301022109182138365805020165983449030675336633808613205344385714872539072157826930573809500963330371877203254947407858227780197916989989315911018068413138073039550179897905783700478935816430260397667936805088286514460760090664513086198215757544643083534724825572678128272939003665506486280660359737048590226756397033996799992419988931844016564856849484710130235186872219031136201825306161137206844025014991703334432843000848988488188524950043758629758707240307167689405037809971383969167896953099730452830239035983445480795147914883789456094062812617969422654855743778914576824073963892246653158455014721192866160840303835701283435101867588270968599808476682045799406767329709643614108025364765522494771007975390413473812203482393518073748585077974631846443756687250034814664967620311647778695741262283588215967965396036646505115940157274213684135312971672187147548300819733087960659637374836963238591476645156362278394862702664235963235357669242347950656476495967707594751450286227584865530025309795359504205169197835944729172683892134745578514782688108997814800819505304051772655349522227959399123657288280740555047868694602126194165002611232049211592906426028532620515683903974577245338833431911533117383188530650384022398927518530236627105841437158938009493587929354792233401182571638748213084432069417208765835289425873121684997634124891252681632119960841340333680838252600646810268403399628324529683857190691517817332128126082461873070403842984326162650181692941875324192079612806258084002234471800550179528800945254588735199960691913938079806044477181472857811968164928122890857933138104124181375377405263577025398537836418546671537358005908418680417036448638416449025253329491071517386420200299589374510253118751426922398485511246246760693970774064048459620157207531146514074530762611468173383115297036240353187326713554404364239286182888336141625480041845568601004265927215553815045553839777194106363962529471406400309415492953335606506166831778380094116019728663599508887778618141889158423557572977392776852427391307652578427224700763226938890654166824081968047566329148143651225826344397302900907967077028001851948536692352062820040145776954245933785727614559461227968188152994334746307502131132363447056091477213453103084243881719289454877528893846085237561038957268856710196846855427081679669081618967239183400993240784301935105025906705505659018891430807774846209631221813113596448830955325683121432233577837811813354165808873017495226240552157201525779125140238858376651171442120769245011028234775651123078555415799187096512012117534292730766324477959075469076396566810861268590231344548768347705812435295874339244546367131953737124919590816163662940804953410806290844580868904643216565498854918492959912029068534519637588244334979378465433082888114212075638166891816057889153876074112519063659940649155586918211682972076599726632201715363478913363771786889095714144097359330032200077003331720677212690661358231943665794049033861006425664973253235623509815410348493295381366757223946979486614301841526927295093508713885321300556556866699932350497513423936307676714527477320607802385199710442867104190293513672132306952533496722473192084491520537874093687098901589896371410316715175730768562568453444151997397757295845792468355070987186806350555829810277905554477739403007327911089849076891578966864404611013357482229979209579614353563285067626650913110069127708014235647082128236678183834158666292819377755603972792552837060737795362570402604158779581303053274736285745178509124876588029264498587354762089880582373250526135792241390208787257688556215562522204894629600459189921173784443369562096424627286139733690046781533205376549431204084969573297894437237954502690337764070759880228698055127205334865833978785226018582767927129051917094599251028461639912776433617146386986851537548165473441573762773566438422556832116879679816341891789472101718736689679234765545201030077668694165407760519685571504494570245100731873676390729552588689134865384334959117410367085093986441938234494978314604879893410290006375529538043287161091238113013596568201691650512475655876184464327962121193176748282782503641000607279260662584914612247756311911564939563235238825163414537965300436624954698113029370193304934025331291937030612097011517344322835609035830780731101926471872430484403581725359770660578976990038624541318476967754098402583961671220160288668786546467088725804270375164403924265053023544040043781477084652983074913775674239087949573915267320838251411343273120951776119048538310805046723524928825469014532739284017390187202519701865928098753750402073076791990543310830404246455357328339355916095983660759374434972480616827852812182743466691602000734965603746404735989307232842573241967707679479031760170733502326566469937278693297366874629420326728228848266962932216032999773364215367907784714599444463321503177775163458627687802531791002014273280538495015999532916460989311886853389385504646421903306843457055820402722555143626399417360220996038782361442112024548138556032739165271299903758305168644436999259209605089650477408913145774416084606060405298685408862595962617788749730044674451335609134261768851758434160251725997874783545229397840419069729310684216456154552132605420314603154292823127932217245388901472126641560711022293605786704126783661838273765206019430550479593506786459055323740224076692612003528876339562006054729988345277856148400399765402260113228874135790060009079169413725337105097088161815447465308878266319055072660229304376036424677196914873629789811145042464918198224991060173993364939912408673132231673657195340310754104808901385265303604600744028028994510295382741699294938088476248530230376969076636867863659091399201397082521387122177887581609632647450589021364254521600305551062516968266894683871909005019467603455693759537196374944325975006552215995244246488054097913255994633149476550282267778508948917125069133645601399832656263111900822436029133551164692857913363763613597764480715779220861169201134162864043951850354084901798515189838726349043094877697274688345573757921361554415916171763018352558949707076104985111689776159522142277918803636042233672024549541760366041730754684040887649786436227605253538568100183275779829185417910792077376106577647583712921966801012888751130051017603379321809115041770673752451165740318399053674575853843673128487725394637799076076309186036048542764606158361517409353602853227540167128364175240580437444156714307898153913189108316066860959793039862325884167879736298878456898863815740657518771193625397546230471515328833362501069359992901216721200846751853086547232554536366849381976803354694413110706992886431383261233261955986689830293132578975149265573369325384088478990472518216273270541127477413141149249885534485196251943363621108848069005958921832401807363285601425094767156731410783324737643400356538504188917023956756425367498279779027765461881370177498528851559739495065902198258522680289684496307151957060262169215459462797099463021075668705207331655895878643065551363427608230061008029780406494626407442088059121567595436750529446232284153763860277664915925755643514303115314157036756916349782397110223659739907250014132326291523091373255055297871209353622736384291063174299688991218837717576384836151404847677303217860362339942677538320062164901503512185445433009554457450857159885982829013363475834472609047391601950155386449930377334628008255247693712984019172172156252437050561406726751216985032928429504662994053563006496868107512445118158690051748472954218864798685045209047121705093790280713250193515184690992261260038284498374162371996890123114186331097119323893215133851428269320170474293871478381663573562054302418967867304458798764270317032563637020783536347949447361463406267529024614525626724616179455922336603680489057973698981896558703436320413586596053360691167643726298099596741472824218314895343103299628248918786726634999396254719299743550880100003822421137029124583319702668021249169012991260015677805338318696727313201284331775028845491688242153688382868286210047240812597055855525201094296391434179313031087086081956804715315176019229962367106323850962668674679915137047483415673166255389622173332702927943563430251267712873616111766474939122876258346880015246531794861590175637167225506960932419590285351309209786007673889673015350860057177598202267339371983615870597202350680576822788771452977748199017842908750601492631990625242758044456579057074347298518894899313087833553803777911170336771167459172246352522396168205986333272788347458590167286098136043520209900395552182897812773465201774499028344123580909927510859117293654640683209567424499535911073357249773445084194493820726492437746158126200338968636184147012970600342598290319087950003885379388535719937096902821006427721525024257698978760705418698850218352638976906380414285185675095383398973716146073279533272961527937218469122226321496325618247592044170296112565510089734648342238658270192440957886624706517277808536492416009124777814147862869303709323299887280205755174497778656889862831984901878414861468744251756385564183431758330970642714693903353870574014103677855111220983199540105297693910334273186905032219682279822216927908341376416570949643817761680377937584555077709513554980012355877667580632306405793089808086405377029660188614161765493462059463410103394679643948083430104205802172688217214663162407674813812837671796064469655028683383257037934132804266028074495634435466833440657220552600661242365135364658794012185472245785834458090078262440512008370740126501258822425201159002320041791103770018578647094652059859792574415895357919866391690809823721866893267509661881697003374829814082343728767133484782896387807004562476377102446501709260267915548694146095520219424916289514079037063684195840375469660628506985964166883767196459182815538642090248572340132017009448109646090832843312575870113852332845158723151922071135533257014951082873417998073895398807539776375457936796974182770208847036498679586631868319336655019887847088639230973643345720900210809437834842586992908040737586369877876331529810329747609881054937289623062761537359675621984732433435636877675214784012064968639543798834605859559609570618062562664972251091800432772423596880728928449488190734226057219169810051855286033451517749414286605427328221064363572965300423531613189180994914181626927320003846193659867794290249261976505522057776820203382950637809015158573145992629073253844213064266378755130925960189784821939799798590757812505736254927806874291922921091045159919129858655040899179889347961922237059441939733452761804187798761974003291559197949428817174327047426218507718667479193020267717417490571502679712267953084325869776719200571103520336983613961235218950905475883033418843492095806933129821856601742149753935703894474238590142918739745892340683869991385309983590011785729609594800066507016534880939063621942710144106694020063017777866893557910304352779706514359485076062173425121555399531073668106806773636338500988851541686517710249444468753545145997473382439441284177033141110045098361672122767682514027728835257000508057660955092176808046751658836483291853983280494619293451045016697902532641938191585256250657636772876942312836536780543148176347558585420690886609840899940474960787801218175838267631914414636324228914664554693695230793682508275007126264151623070922294996404891059118317725300541287941167331887640831230552194964107538952639349310100001401940683789238886694455774113824287116450617070625389283461950651983970901746697007237283592931559620706088215379057966666459525639174667125266442774006515302127140524072262496668397039059512963729123100475946061354687158866790060935358808328486973247339217259412417634560365512234442013156881669656137156280476477756590547354686354151440620621532393064298340244636881423346364799175572855092850416050761341600279779031312813385447174905532631917641924311312631101387482947566535755123706221733443002150267614011852533614334693119386561848844727030042910116076719926509215246940405722219130217032691785154464815768902244237839981944856845258554557216172679501020165711490715244371023675480607350574362648145696626459404477894576768979243489075293804723554282972732909495253330715276007105871687025189898773083020995005960948116607515076340827850057763868596613787167494878820819834777558945597095556422393890248665042234102195111333464938737770875277164838975555972323095339837423433057581223936282916582524591363272608206647677672034798863592205890785537022477936873474229828414579344595845085325707677984373915311639792594146257554395380018514047188798186757995359345613431850630407261476480543869419585290802178324853601839665200365093390062805591516166941023597123099890701415903691853831125075430540671517512199794258706125036383099270442483564885848387269536381268142759697848566433159553460232704132266410167904428672915998152142795605442260422484554536956982828526106456711156956313951658005250356982419736975571933776517007538293650713234724315251795199684960623648812314890344037091014009266760224820549867990798067975282353786988335655559897979205558194645325242259962979402555307864096268375296792221334188525381857490573964587982929135566357094051973316423796476993663835803461983446472486885123716226088546455045342652367948261084404520756937069273533701756845817775174134452278906266556525791907826170686168718212933730271563221695700332430550672206267282695377095991515498197077254993706181762338168060261450442720019789777703570393752381663391583543556963812587732704703821440226300607785968383775629080742700745241446518967385230935425000478363133988825724113082045797567855748501162964238807774805858292779187119004204796140205435166698545389765262307779084136055615962123793740348061121944702929641769176058985755654127567831573918689326184298397442747751027756147450617707921748186146106274523512140301924851980703865314488988660507808970329708643008164140471610309615380071628895226423222825357804379832255735559138624479251044549801704877227022643360646343672811571192727529067645477497538110051884721568347023576582085401025111017405678048173160879883020411048298082991300460129790398123786954876746128231320676556061026308361210701850355556768225440273139182101168588090746003405261232367938870440701049617933552983587886990959924431984879139633669608708620813855131865446579847215434208254575614135084096207807545374122299334143701307502008023187627938565588953647858023343381085174244272360967627965450579077440921019600912161584814411749548208974706727549673274207436435767358691194526903103540372507474679291804849565026197682887220526114770941086852077092942383038834621001858524369098935167938568958471002345712857364071493539899004688571057095820368773985251879318518818129489022005892513704447698895721253535590212166695039810267855047473387983146546786670550256989497836802128332096850228287339439751240499736012221884004805411615445176626033157618235236223308547383666894158477155752701338415207463922844586618190027318373318794845312884290623206118742036215205303614365172593598961164124159507402233537179122026322324175603243990595465578004603237422630994068927586560317635829968197197135223127805593955231659879300524356453551355063388358294294441631928738698596550740779910331566992791532660416168246196182552387860917400900958835099916652785296628190260237480901331016654535118011678556135886135542079313320057488596396309065174131130863750951157970620489603719712664276932096518597808147109484835026643363373879471290326890741611108344096250729027249269790578271578000917653365669481180128247119267628633994888808821407642130119213136662375496469114618452304057367116100227432050674530379338586821390983108537131994958624724834369520792163437183947454877537053719614345964917910530776314152466020008454766552687102120084487273865162923264804122363008644265155033621837627428549693028186441480625347307527411046119558481591202307943045672968253642932980133628568296497251499400324038408753546034505003790421605999764898799928679045141254211355813375628828417523072967508531749076094219335178809589289175179209945479431149555626696707947744748370918469669244027038660216413283937077370912581946155930808980118150333129965475415499986333837820298544970850118705843464240940497642389640877829476951753616315869410377850798480522393858800760912634461056583934024507624377301202832047814387602479792351583339674290352895868502595190022352934827279616383913730390134251121683579456968389271413147620993759363480181230473688892706751733756655487909472358976822645286541650946898327527823713276147122301734024156128210884263182857447183671170455090978946804373596459966889409607343516788632897364258712939181577602418407285579650176949427657456858141028279120004728522487720534627323701326735776045112599476759958278507073415583528550498138656348299141896350837336470522491170302434404723885460492366347829725953559209826147772435130155148261270463871139440678104480104099902761301593337360710511462916334991491898412635596071266264217780950079361411496965510755417253074942582473768058813520951680721999849011924771203419303869300884522377648153285587300423325889253667776229437613357788607200633365926772801695969148562666689824052452352727267479983995704280082324450077462701585911142660903909318523167911493183440467021891310206506494736808280026452011570512403193688457477426203537874223405457076153282397728923038109574807559567481429300036070430951623507634965623806255811188249403499837744115411631356629853963092428598740568036903321159160369503738908105054138506130979339351654086668431146311094287963369435457827721110501152426370619602779219098429974337706498733606597267662771886692047381691497466995032690779626286007951704659390307937359913485821219130842627981984353423855188080698991228515495412291737148515034396850618782474606425640588877979119100973226146217192866157618297332726600341358807204153441940798542270278455005783340360899435433132113643102021718563951021268066997351955194286130461298211236194032070908995043122542623112633600514110590346233600153098848977667189004576935858862463425972897274269920338461805429837682571018189992752584459273706650543448461128204191010177028318060199448426242618115175679706384177053487632395939969044899437297536854524076681913144665176945075516976545591314972730755121141823619071670773551179304884213081978568172180053949916859421621829037772333744372026200702455578560047328479759905847288323487790816685388033434900174490769644329139091891494491781396740443275038563803662811664294515419851161186416879751469625099093701554242728664264042647616831875559272687709486128096127082122692509957785303447198880435138798696577244545115975561689709717967124247713967377174198548451745994302397710623596148880246077059397524999316988597587498318663656213803857401641915476176791336739621376706414914699290027954359548179816703772712409121381565578786275808408665213308897589614487997882332878743872079534642745199329393103377762383853271708135975206607830989997185882156852181181943886756475155023474223936559859543300309726226577381768210284347508864455010831582680836881483704811631301575623696666209381199230435569736149888032262991537163617104102061043719948867367838469171620040488605313623842732506670114289187454435561267444036888729671861595410179448564146851921042958230331036725319348648051678417537006785967518240431328426685223650185657000437411897333367484962389137438662590266475085709259934865686184999722396060799763170284907924641510588596390176893686351698293633439291670748138838756618375270650109099773983589446083087854629472735519850326741139197870458925011890292173249901787207876385459418296490030605212655298427261636533946205468582020475201706317700465297940688532587456262313678267443369397536101876715415372696025251677433918310577556249988042871526640827645336089036218770463525877759600873743349957670236169256119292113869123859364598084557877805867982699674811982533600779552006879201818480669188900450624879258662631891955652731756018023008873676442591823130005769075434112409498286604040258021484805201340793189630681549586451433154378207972169722926115780066467387374703438521517047384556855433772687259766509135014468416318409579331437900464695045407588773409315910459459278051578687126288953522655803973561158904801669825318541832374897812891252650445851042797020629511074501712792998982549318724112371263264457101211172622128109083601468046607012178445410529689748862807568447308813279776861337957457490565551109493882017586822308117016493953877218604227699594419440654695844733287632527320995731814653589296366401207167656369949624839370099260783178068379525016077063462903611314432137172709167133075844577480227756421684855380402519529674169186067509440811442615918207883252289353560176368335867170486057957257333548513444050429444304389923376203972644607504188768662808255588033284893027857746577454710428739441904469443496046747865735796526590803446340305513573122169322274016543843320684858023330443679267914893715269707114363897476317354384242852738944655323267174579243311581805381630044674023671817970762789285256349395691293030191381948550382632035841366060407117349829819076140447483950773302654109663105692055845879721917505342025912685911106675044478609048323938448094746853608229929178909263550049835968300093367935441280233061975392033212897983572448980905220572421709868193949300856541987590176558592347470724521239323833319694862247643340359742752851648147659931052155269332732194662422518693558928479129399861636428097933121743820359906283628296732600910823173402595151443512647735659880566061674887862245738886668016530098396947560498643812662821902833997341817375983722453103900925280184383482097893980057098851485191726832827552055509997549759496157866767990850908151282956050271702604623454331347028103230364072939894604119274973618587229834623196597883455361279179817688415904546130188726689434981147311251063504269447063526579696570945381931508889313002411699684659988131482941235735539748342100673295264070776644168823166094712166350798091467834531734601401426524330739503988423766649224147064064663747173707806942030486395370402371144597471674677770992135339218835134132280573065733881160604394885423288551579307533143133060784730204351041756242185487229088850495467351524314100614625712383235272064763248795788648581115245612733658169108589758411274952397684171853212481715821913774166455689521718967551791701745624202563669753950425618115302196323992318919990778839595034940692877547474229288386771744329584646724802752922360796653779267525368566039789920195208946259449379937864397434241236255434272237483563332729754879918858667065909565696109594077708280782890715667485897931548294131705490567977144947692326816574663717694980790086816175539372487598413466129111664053735155857121781223611398663685177856854883313622373403808206738412499211341438337065550169629065135082656235098337200138488362832258767744909682894734965678809356293859574408384878369879812173860656531518218715501147826295956845008281577045268570488803525771830912763687076310481571837484054237461794157733439794584236875945536547977309579522305875645744043385733073598362123345213315663169321004576133850583305436705025083376060126078620612980365035425498421040509559401821400892128098335564738520795098290240023290436977934793952396712923104032701746591272707476572052933701065832678500294257030072548331567935051420307152585208132294308615933400249324442381556178579982223299088499190577722315408073518091442720028016334543660391966530516235982394888170088398797671466236214566877244669322727693969119037799126845471007221438894132724712467971028187747490730845142936332802783245137058179985069684092248191254494422751447980666253557430596828652991138999212580805398465147016672234960873411558300639683179719020291184500067355100454707395564584329351792716672835323051472065148200877710695549450592290411266324948680372402980781684109689845366437940567724760344571423456286320943203534133124590651313352918795440976553428265061202944980183188527126040721799252738445741479488538058370849037498345929818228897136292198507321924426303876075125247763205940978679859331152780007695404184396320654086067181961416771173111695548519182754480172796051277381844202543201738812210341001291675241045266966612187191591935768377834538483813913480065000873298713255905022241413864320268036508237258405118547473223939004998406806545231981547806239395317241378055049195904154729388918028054944571096473289225414993426396801675001773584088913562475506259092265199984702502987112616592044845064840160107496311901832819174985594390567019088858058461337533362189860097325112796075450116188443845201282419429544323282259546232179545238240029886206501712829250685367732876214873329468574542844149424379617966808559166097068963851078275430182752284810382525497350950032238991253698892812732271468482237804903385249560238482895030583121422956059603196414666349605380650686937098632558205608332799128686201832342879946625764275119690222926902416639990355214538059269172030382605462397052991658500159729379160582354316028244863386456358401221247964656366491078851321277824068647839937384978623442423731721170012379669413192186513042858570033395447759115076667116650607752634353580919639375387180482452912273584728336174467083687126859184577663024514751521234691579217642393323347547445334314760829850137276532269513006446868063468063777268087414424506685120831639532718704759713700974975904293087413053855617203434530044922749317195085022542987213865526645420110698876758797309812180870995228051673620849229838785610545307133375655263861555210898104372175713337575064985332397075254913755392641513018667661512857661662503044310806486680731582174775799618241113012586731814082073867479619889582660157063201791707045873988464888470568181362364050881883601305653358076373660962256909367915961799618107936428845792317919728879827672413827060473570541218745322761291572669324267566330539927211886899818991251131388164266258185183229725557362614198323652165924033646851425796047842062767256096772689579203314611005007198708649526902669171907668056919028508440169454571848463328709358393192011869763417540116097593957283168347242058017172860517289580382525586214872198887187580912401282054471996799465203337183816279571399981896027278326666343659874918748059219667335713989644455766343615806425611217991834272178525226335085745838999103108657135900833407376875694506011321209213980382432526340912936807007328524710397472151738359610556848987159328707306502918438824618468284530234580795228193241713679918683969905357316226768068753673048778809393117969169082337951339732086981778041576034715699458269066873250812316921072281891737807113593691222899280576262050376945905469123716059892676519001555287113091552819523389644278849049246439746076119091103796360505943803285447935946658409274446247953199290482895683000415638701037095112280380358527752187256830060960307591826045726568315896869197231783421720034970100276097231218020734929258732825604723383121992461220839167749582112443201489990001395964875595068843296024847317941681056469080180702526997085617755534124174708374091169959356035440891736519190293348208382851408642360097605873262095885501096212397565693749919094924734984061705451646057332977658948725072458678490175143742697054157133381588153576636851261013578301099272654314217201623653456868891940979720487236301856723388565896880022599027169918064112800453077802956542553089162021945743179465401603206227539707905508471187013459232950654479117236221403446157400959486278579516816153957475802030107302796724609145566220012145130112337569295655532997386407818141548311280226993437505148634094633385348055460941942740760688992075319734402752848958239826311430173747355102290463343648672425627194790347764396311920885694323394457112030449863737373219989523418425506764891811660413979823755560473704371410967419034297157059503361056073373258152606127807360452804569693201644042195020876477231903674449818993877584160556831262910868552450367186128761342142082847348321026594072351816219905888841458768308340140348660019723000982992571573199500335609562016037574050371615312826778619882682325167077016242386772818378432447334184528456336699757515431115308792449069424097242423612482132305786867193136664910095394785519876566267314281120349603458238104378704623275078843014288642209548886715637874399481700614690288824759203722200166824890109719428682127525325485531341536588883449033507047339473971380825339657735189841801500635292097537163866954083614717627649278606297363829402500468510892947077903204669224651550705576054656767215469588542722254963123634237916708380747147546599427484103758248920434043082871283515491806397194642026629146813217487967222725836521177871840780616217195634263689002055178309711457596787086192257801917536033751424326526964294530653167091219241459120481513868779804633150463155774761281693847504755587800898827369162901818679853386840680864307904543807171359865283365919325529042562281463862442227185198641058100012573127125080406315925576853151126316439020673762820244020351900517797102318942688708509986636621216794842321130761569430263456655775634549614448764926628474416210122845375015251982441316517254975839778641407155224471083261288983056618161281635198706777616316749935865332444011341551359230750904625144643534289959582440516892083587742888361862303900895589861350768057345274904821396083745076068626757154031226618957976016450833993411067028255454671734374696419144196232285570735927208181579983720172632635994140344832588656051256032778280955156187251163029591976641955110232674431076543741156971194263831488807764815647580498472057599334105419456077278473397913261920897112514894753413218843823405825027882153063283272265906958998961210569143388958509361441932642721404614759028227124324842124569665768060704680706383918017538601431382355733132722731155091657462128695188924084259595385978024854043216800673437503250231907887945760453533476041368548014196149354531916041254446007501290172835022339416721708793897111939199740544690457243232026234023333109613173934808473332505164207723124736293017517346735554034648153735897310019690417163309605109092118919261946310919857383251926467547024482849600820302319573031818132283095178438407647854378005141415984202597014688339615528328519078392408539881379781463119806998806800586225534255269271596025428822889635602276829300150371595893107894849802754517743058826047975618098463245141711409250771880536503909979389826740193891961718466204498373578702567840748791986833482291891404094658270443169333280449510802349087332673236489062444945689484521444010813750705695937923568671669081977696805425095494916269461492591165663731656542158694626165655980566147846247544459736732782714553097550114873558826256372779929960885961419819831994960116475929450076482799831995119272088311440870713819416390498472701493959322148872172310855478277975057999677872657590724183782597195735764335337448234383849961058092344229820095247106888209850716477351977427926166564207095338973413289544865705306541082335383345411124841008712049951565235229639271804207995971935735231281941368871176353381313888750793703013813424683480820059657476733861102359343512011246217346953495303081498489150024232825128424361050885017328240139884837630415241191011135456501078721917372216858997119985960592342476266229616068075605982562436541301400459519704401301385968797702709495559255337875037307653929059271044897011616751430792652871532661765255769534571440056501668781214737309873004355351926534474681700494684398400870621559553389915357515524698685224329369275427786027484870836341279025711695555041467507025599798572724173761013627695702461089624413013495069199960520393725371527051772374670711625481826446194383371922336475455448320539415936493741240831891781058002127662576854523675062135771842183180681815535012620145299118575556860542652986648605093940443709433128969556817224339714454583860296111144201660010280547516156848595216824950019765550776359815705951276049071992321234967513351106598391335144714012884496651940354176114370629604166728198625965478158649769186193601071527741209250964108722446959406377346646141412194326485549050106037626126577011147073311337517825068291133738073552327926310421915795544822970225698716812757815576760918163775702719435805894590839117570979398183362886708140878988257609132242733778388393881372004121683158096318248290006730280768166745659119052490994833222231300758390255197359794413173821602545233693966175775410704083072762762392031080671154466159524565693670223875306010028617041610701240174389986258677546290928376491718104080765746820463390961342957408400806627996033830016844582773088475262901894969365166417355116366298863314869337761814321051923357210624816295913298302222273305411418773193283384172258720164931683926804507591277163458983882594139897471403791584330573469370692005963706512624280785364382968781108875657164100854664715791491344232679356589754793322586661484835038148207948770507466598889215032465769654746657318626090486744249815757051370766587978835215171789747446522126634758718959809773436900576504156283758643052669174011331946854905960363450615232123031625698129902973666613217494600047150726260996082930893495563236399523608704051443393245213350636492794692856947276849248250628944139773969018528959934959692937106675250257779245193750415975333828195391920332073024763131766455414325117876614804826888863734398869326792933221036119743189445666992637996083423695130328376388489631784860223842420147853204002861274099864923674751931819244228207462657675876291077971600561928670899523791646802114406286087611249738290972357316116037432166506722702116005557521007904419984704615741351408531002975116856933989076523072497163324260315130239994208230476799849788884277432431742214998601851167448722459265254121008049387804720022343632878104971983371047558976513566980600619275930465356929918207237576358641704570852053814680539502106975382083325320424307507200789343196057870982017157410655398198012492076491870103677067425077727517125074894517336311495264797931973473041860875766157162586209986788500995346271998303425613596567954549109376056537287188993373469664257275193993074472134026461659336433359397559013326907832902136497009517807843749276062232274505442569115354474921891045998919116479418361360273632318769113275779395621059266929305072883713155734625851225326085510033639691838316711455653859846738258175593345915910048192543231193923907152243529584475545540210401437366683800608065637109408426115922551844814749333102494796230188066041934372081582696165982327667872061640633364842515579169467253827699783559430302155642490872157931124880189213654133594852842431168699449026776953135090460019696547012180570824117442262457617647429049250654154675048835390281150967975551226025278684116527373222417140992215596111480788378317250874007643322019504225573493981382709557466629916803266529069590302499122375357145424458203932664656079458299662870559638346095418261957316780153239053344361525106582156981182985135272100582256192693296667750554767493085492754884966582487500715452139692268198956656027348449923215237846369520478069439746812049595867041857363221156285599411062109966663156791272455100376787228424509882632171532383842716752116252971120699966518438244436358638702090454234017259370359963394858281821805495805510244217982538162412316247916095201025374291411959378516936782646710262843006167893545793603281635508144743537726621039955668189121957609640940950119897847035556327573571497651495562106755674233043112532083962837982651586408767064623396323686739479495517030510983541395215827094135788718589270085092575504299813794418167765224350205726811515027090995111501637334545595738756917037735831384233364336048261023341612396890114060740612521773583554402800337724677942658924000273727703152290796665720004038168611500590480955539635471953684226703684879959434020074785485730130132318110613758170027643334220120364030747828497969029095678923377837580609455972175391634733168298379407485889455498156209453296113680594278640370350635513410887257146308707629953999181279501089731987184271506198180756223919578755207163963402861690640743662262176549064666938496165977258505137491511904730540674189787694179120648312646835328148625436671683117415977470969450808229591025700277379081007433128088407945426590402381833501166243992618712504854318954239581388352326966056263923553069574345683480774100531357691563563381213570767649997284487855597036697685006715974275157072460456690169059478744337722677296955673660309879836204807147624907758564906158988503841089030371352294747934981977387529074983808214634452508633302295828306455224650385695474184430080708227433971103434381153396263060466774105693403170331399072058293560686918534480274738045817172917439913262875132162533754937192042192592450995427627675948014838972592719163542738958890431994287701902496241984738197316452299492221286258789322067521540421874766100486669404565391109469534332711629141765100072094684618106152031768876120777055273399464853573330338323189295371114379561806199357201648094154346597727655470790059955061778653923013803464385037982910736301741860574904265737854659366790269906871056023505467461851782374115413488721970446875285802779729148181249621852854014546730447388100732783639916055446018849227087460870614624570408167471173018554256130240674324254327810099747026097502231595854768480451230387154021123258997654255613803331676378083007732077166591233477062109969175211258981001549495980223651050438046666749623633456088349943194033024207659977270424592755211919621225163807019650705887333671403890374666490244413049947549677867468413165659324169481808756745706664877448664823543114419208465940339826206158794154658112933516607005931187730874411971384149048614299894251288831610293196342114212753617846204435096608242373801737840658640077517045250249760058433788365143911184646066912156601252212486516836913018978326754633295163158165976531008633535610601014671228370014861195478476565890003887147580072466215571686335509876396197493428784943668280135731653143747597547088294394841912362216840380353555358142145205935233900817142504892528568237843320247736455299279837277341973633867717299514757295998480901361110401210135797885777151150824018829133426587513795326772559776074517332337567713231868038720243702692924391473261325094067430023170947301666188372788250394649582926807755776858437237035274713301504261474316307964066075804233316642989915686930413125870690114528171734662474494130886211612391524431720604058723479624450907488875975842389609698617819264160167235651350441962843661158379547674698720618765973386719269235125961661153414809824406741172320295466936345994029952190845417731431528204923253674587452867059154965989507284354205447652767957253550461102267483782037787476683344134277577004368474927003781790241784703549645850650033243401267370525432535897783180689566400224403514698953627146474926753194504783930223115086692588567029538049092640945328959257166957496068388946705746815559728816999997837451076643224207269937373422702651271646947616258484955619844414954278034529258332214172760068099202096967317391521214712305341909330350975458487193813963983265160328605527023768171460511320652053670691110540120767278033362060609205897356945013314899754724870091786095990715530463457587106059469819269634903413549349913718766071698236119794627041003766139937518332798567470721461204216593422978568488042043128588836127655429611902347762155239700967796229625709938106789884097403339325545373735413484494281336359641790757867965517180509755195711335400041158692027407275490793434534819954621366603922451524623232151849215986426315768232773037375071274321662648021876704839719855478829268329546620661932364501109564988044107618620079835681923723960297151920219454139983596898026075230911114297534263982546342551204333543522725404428299737150548157668476328411385163677379171708575684807632398901676628243830839965420259534048982119333146639677315532972955413755877622386153962015708154542584968529976819902400659030453407084386000821775846646563975739803310313612053524894408681483590857909145841224291528711214815042253701027842022488411655458258234936005650009358497264581825096395358609012481135993622201882302581022908306592141451837061923303926221834000136926244029283143797209781010496717358622246597819638056691100797723841825561206434641495739405207825161368115795703252870931105155555554613126539836634532070643481389082637912921121667180620697694573450225680076453488599770830644482709835309391222711035593213950417578942809487038078797799987162591459109518760167397863809785317878418009002495392231517066075654578915615318416978384408575915310743046987974773488830266546881002980639631635533880316038667723053828124839818413426018406014742351420626567420572366307034862983436669441176592731197562612027405257353814490148958117550354702747788956922178977212096756041168487017520177235359727862912212959472613077256751894195456591575779579966988185920442100418805950874114336089472267099812334610727722976997551819658575633707210771633225912861036107455961960301671307929988990828153981598276390331745122741531919734857394787206915806196600065551347076049591574952173224491559811279134079225119652518243747420203780274730291824284217030687889540517632614368479027991400645986967081847732018559656869852668062421684868076723672390238472448237378636799148215007681850939938578670083561572309756671862101396654079022474581641128249037300883584886717110895722919487281567869927295557492198462175555740677165072127771233247616960589229874991654829254184276568446891456879916002510967010687581958813880766584064992650947021832615509144917726159164410336181460025792024062770204200051235659861465774065153130736225110424565113126229820656911927531850633731733063880167140997873559069382193500692790763734193772041711534480816411908886004785178692390102545110138526297362115864507955117167660284976320544438583365709274769426372198210346791657250629394073469237437039119080494234427804039938137105742789085072923910153295966920578295765278709892421289483485709437009218982128318176918783325896563357973268664312423150901684176222930103969769549683022063790599661701413114593586020980678172515944652545247349720764954624858645325578225528006078812678239762558954695943468411201576425881201678071931955735960481543413974620455032105691117038354939255576985288508522391639440552575489399492709359495184803322237437567443925280272198288211894880509037802722273640697032840554540439141777335564474969013850195192482748186075161791858432937333591268407772062938607678724161829596175412301549373828283558308804309002874218157353200212114406817083458043633028179149938467920345871634595158503610791103250608901535264008139870081336099730669417023006395689209718926489039698203726377370983898314224333127971422161932597027653325284438933774343044022836004897694040519148122966917435099448956901140743922897288762147706850572907740698959154106435472034530367385150910534038510839366055777765192881316716267038914557770858628315379100660601373762264736443556537566120605069223587776906200129345236913060307128376599760879405810858812563476768351692795412267226965230247714297366577989611798042619400117015151982078506848083972504230385858335508742087522210204495127234473922296459401075928663113920695355867079177402763197529539787200379091926267579200951777802583793659535089318250087463736804148267043773966615196071918431824063201151736031371018046699148959721939546929328439696000192233189559385247039950974909446917759720955507874795662803811461909920174571188498247320804972363059860531638679113098759526145150137026359437213003248668493137908698994955478863740402408894722782670964465498736117980606820123750632107483851381576463700884575189930315769523426210014287305586290557059533812473154947100096784726076421750181078024929009096566588789931969601732426896022873901694372528529397275332614864758440985771802592515689085744252603939816390978723233979140784777613791993771880616468700458680771180049394001110861489254229310568139476462026544750664845281189842296827602000803832637476597781644745010598618140296571863915728350533354524047896067453853990040928518127688288813739062602718195033749061168348104054663019255144700408125546738997746815431512914779020948891472241477430133751493803904022996780779955671937362691203598127835555558859472829926740560419436323863088027310455981300472656911864019312259030520440635390563431414720889505594002738295413898777107881720888988060585055382439780652460982252566507441402270191737751047801913017224580399174728246424356371161135526123976958088076913799705729478046495137301478548574504666451140278438978959538785864910313377370372256333203586179635684418346153490169664380249933769626883530074402661890599778347424800789787370756575185204648262175201489847530418256322587207047762265404168802185639249283992754520985145675888055480862202137769383580284806943212770153256150429242093103925601797931892127982832334128557897043304277850873039006406531355861448463907285653909411779851124801234824078654477629422529698470502220177040663792048038430999595154771515104921912281187134521222418060166171637492224373375441386901141113662663395734741817425876511373272269069606439865048078070963092458226867094195287895156092728949582077183592488085426444194936558428420510196291664760218087880670659800989991268577787635532697527941299987593167591396310363052420063321584900602114541040770038813388358350963886456710026066863470671882154210760290307345950859986105546441488362085598771871875962819692936757779991089855623291344327321422612093184947892008325030495431568969413644748567232547216345911764536171886081565534164486811597688082373677190298822409447965364057342858588525345651986107676282453039861264782792446274747978894896301260410717290437459305462526420747481231016449593382252570590636858022551766708560636751613738822946109406759493060230302961749674813780601254263783198363999126840407703731488881435174550052173634911865707766557674544114074553978024676163653521451869280444623108357154572938086437233769096479134911128553648802808608455026405571562707343457568836367546986394331783867473403051127066283417571651156072101775378867683911839019437006325890160455755626523026512092524989773536332902518946155193457818256373789910140677979853907449984789521297302210023294804228985684576828616711250326329469004511935825256902823357679889992561271481021076786919723669449368015080590032834492487636964599696392520454010182349005810750632434754382985752750414042958983011775994464782772740411618022973803677160753874135962442853612504890644541832270501755828093978701551110143360645942713315220326702701625010579286804072932183998981751550071912108451178974105562750318141791670740775697367633290198914412986532685364729547605695312006102796573049193598178032844421722537362724690042536540130757978254599855491967000399856642078517140016408369304527305065405297794033399034541521531970399690418725564174009117878367827527214570367800458006619587044013962140480428262879740876313189742324982510748354595684294729155783425286676032203405815096017243251844716024934941911647567493143670899677280899828709998553696851542957664373558316211683845097333015265965683212587880757943443704672250363069429247108369558479097223992171863752057672926330227753558625998104727831415355904766203346743162539977167217732008874247470509877115734451930097840696514558864000355168039456037170074706573189767563955412936721683955956286167548747980215800095388257709139201452797784269739782164803108186406854371681239638344613764949040743446339290526348682780384416565136340319428092688956993594549338451921974978663511763299934555364037088117572410744672697424645465992681110104480136622543034498267378570749541899353396229897071202985157013875403981763750560323928247256000598597784760907247035463237186164286297703186649078678264316854108189007305844417235505032719856181778461231082710396496717575982318720482461119096521080570819119548012327907605158781930961460772052792028333546065780366636961159986303610582992771283818914798240214225974183443577156733988732798691324572990202589897036933078903700357752784483245689007681394756811247638086200410293849363199737755771263470016990831806832594337891235335077717413063262080054259136933252026485353438772817906994479994336631093916225815106966937480135890546182697242312141652609308261044991839833264746892327496221776218535564463418896566790305213905973527452250183210900544935698407092238555892762895734958392231084547602602035695327836770553687343070216125495866336794014465260648347527194924886751006521313605336865288207636050975107425618720897293813973280091554958473483521139495742070896671778071576389063318661063149207367809926692569720898130326053436898382618900822049594522160904858985239098088315759637568714918249795748060341063329024236560837759229560635843923413963963916079190755133919885980822263148003029832461027403377136976955090702179451856330074325507632057879709453599469153507318671803843361462015523288522806222672737683447853395335970382199025212310623035195873581358237212616595241707866737629046701140145169304581548906891328153340781792208169267837229070008380714197522533085049744696736200039334646295904075832268377315292084816143413031863472144857434030278890507692099705237863937729398829217314468952659694395724281122125220291612857488530579089883425867389604792289173119335663002672410217464915983115177489941948825337307766787148313796089046053283195060740467341970392379932483251612734839357373351475922409690562767644740123723217108158642920593791598003797204481010050558503542886170818508222911636062699411229969132287535851298083438464707882992994230734242495951715266779435839019657877153432975359626804407579372578569947793374072014177199530720457183253308832750725295862614068911795277423942247389754682373217120328914823673761317154669989329882821832061000129025034170208232696566779281165338022117606528455684811507912252624778371583769448763078755865278720331243912407421400888891626900470246618131771152094632279771109741366636551940087334232652037953451172904170305116661412097051576213337054318134506364935252754792753797877127218996100201640644653605554397790857703045964443166431007732662056922424592636885740086319189787480788995223376801883499218009016443468310754173041874497238902348911927399213797289728103148898295978736891632920812412238916888189252823679568235081012842084918233010654671523013185508067992694843012662744264079012034864138991598031260607770148060507479104396656363852323306142235489470828879132741509971545108446355658919275859242047290489284974442961800368192240606034764756042531304811226551117753436248912822718110987276936538281833850024569757738665461419557144160093327569337975072705504441235332743757420918630578130017427330064286435981190287518338911627669463924674047751381527972388487691320340795881784371400912008283555810248821825604743062659097496078518941848626083833715840813962353049104281777991879886243009390694837130546520633958465561709534623314105074189768872567929977797442267063972546553013589689235034466566795047422701041349526202479488531039530551692077607581128297679326063093216563602321584929774005403338195123857813526388547286966994972055455291170033774439292151124164385834681129218226468844804406243639513682444142799735964583323009572581354993457572618358241250702821812056008297444217851168662071869481552221744593618591771837481122024101115749142284837145979215391133528353893071170264691394043452776910789117591215212901555844017854772039723652333701931004288193530512340187998599893280532063237057911133055759944113752407452679065341041176698755934908164821824031384529940959712422027076708120396965071408201798353209203290569496736860588747531720870621464248865405368988331420415006482663951286778238772003742192669958976509822464642395376525643593906513009029406673051291866103873579377008898183512604646190707412703706064780509719956422255930944590401193106138585912073217093230097592473516110655625986600742809499293740642104837864724395782117023569204563248910757815792204153385358000730357228749278791629512422075785268311412220518350986218640374772966138253307561300455000317975908188047534933087069498204977781007208214770910594107498656865501571717984011422746617397884016797004552093671607322448255835050041343475009232616902548042414412045503391347283992175101504213737968651728453652969708655315633832559989669659709342473388736240404679667322613191322991946624285773204648036527537620929461090234267715318693648762662079927800782497185547123888471760992347710790130492175954304050162475544254543055560874204680570891836764373039339644229423915943145796799577919329569943571447468305158372230680360996743618116696413867520730206413455444827222686728448835444916341479678298328109697926252236502669397737092081074074747639122233595904110838791655655310868949341460786563412202712786929424363630894698106067703276678196721371551974481693544846719456473408834556094823771980918361062408290685519023268259293035330279470019080692732822288472396533916399989779931142717815125159543593142207238569984852570130160731266227746360651171037069918152482062449786971076051752584427179051753774206827115494837178254874212068804644280691749736787772394165548045749752382928250213021346358375503652554776979071139022383606057113245466770659259061997541625681596196305350191842022867639932253694611640428921527631679273815655831020673047992204928586040238882589965764644881405314012325743249437623413314617158374894158699606891187694387474916220201671654343922997613384615172054522623039246283406767386124837406416298386867393436911649026507214647133263422012284070651457047865072208400098753696360400712266230184824487516806613436638343420150997599275485484696695532300245193397414603220008028120788670304260561038957050462198985139573940684225886019940908970147884460126547526439529084017925010301337759803319007659968408768595591396586404851253135904803811050763485517024358263116326744483023913485129270819576559536876558514355231530755754607011621425436395144523074217095452456772281873505307967285829355094399353538517715940794034798117314477137610342581062228067915137254077731671864309351174239799365293309300454966044553137125421535516239781832681776207359857445617757429691578321688748291248331742042002609976166809524594837367160876501101509786808153376452936684074812516640664109776736752736861905658329256893447256981010972101076295746048797175553247801935179709908647477388070488247407447101316991583641558182256719182309710624446772629706718055239831915072250290540478484851708124736957918205064202951700526968368583210879960213959188929326508466649587338626346921044893364807542715499020720044981351323451184298060287017687372051601671154128506539541659342722200872742464612324085523061319651853576052870082193065390168011809507234805657678670537893371692103529292401229545914676997281485823444094621946181292734219941272337926269120486535569365810807814508577606091959327161413943042004908452036249974207885592107585594661206119171624502331871419039199921262651749014295750585336809666147566278677569173341563956683535057310230147953734132911606771412891851520890837859681270180156706505172892497790318458497221418210971662196768686099589394225139724987587850908669987824745011721749096125196768271144417811742102184602499168653264858732042405805625850222566869512903149915776080723191186917447818732049087128830435084688965317492857059531122594303319243590819316336766684899794565416606520752164865668988613123547951651952036231468551491591179655511053785808474521141953364564562712928557603084466063197810580560592880907494923921884607270114735415050474302380114758201012217837182573081790561928084337708236853434710799119039732408702468945573285024634466301680402846200344167073953892807520855156609290683882436004567542266085754299881992074576718196949594575838161231476511073592494423417772708100790471925223051592247882077153017007956945626947329227337956096329859489609125363649315559613028867324037918720677334423986524789843382939372978131378943868459322602452018843049427420362558296041159757157198131360367758205735090559053017040419446965039432331875489165387077631869679029388900152705285123530798881782301069201507772823001526488371836445434087006986833449686577151594716739336972997358800443222861151256318554879729734421489598625111285671186230576329020024122309114069153941020040387614342409385713894128662528032042623989735268669627111849848247887537203214788083258225532578694638934588336012108985086691273176668178103967398737043650395959078141512057137796929455226233028356794862998173159914723380178995712991014644958467698362295906155978840462847253122170385796375285299996895169691898168807409228826271745943344975774853518441718251080680599865745588489806901768215975931018068726167337661148415214837445479783307038993466478664320594416525259783879078272192380766438720117143461908890015348349317505434448281319608118052735789587403216656955290006966864017792901772759513867545891765066802543141898217756116113352916940025923370162414263719224944891606433333717885300205809176571354174210573512675432197211869190003880723086404007670542280205910403876350980406610816304367837949680202026892630124313628636464570583203553842500138734003769593440549719094805645425559481381909077616016040565792810022422542689932682445679065895584578924562330684720044919977009685684581307838266780168717416225995047911376366407251133212193530786177625502546915950527757454254949264727436629608131749333580413008853203395938775509072227351915380504846692423608050138380385096102681442148453949758574321660792987316508063583667487876576967363900320340642800284715539022474142402884577016485245677948016021062232035872354699702358792184705728698540941468469826593036382081673920557002428113800364077835942630207683588432738758190152804885608189676632663906885524549429020496355263872287330721108210157275211590559159987149196148255765026295031449305225489603603171131508417363777828542866114185883037103208005551063661240173848846516641926181072418589539198276706021634698866110968455004331412786038286978613143628320242932811265827267568055179746546480388235978637224807707300744077541004939253210739508466181814824288559922466171181908346072504343473124938863022339226802546428719334781608783776328612410558418365547054491351920506742763624095074227644159200620913720946181926935544939786683491567503041213227834815171239136673082774690965339776467509801735085381206235520253050425829978427178777155201231447200483583600956852546654352441938054696683074870158160833710127055172756007497282373197958110740865993972382590642431655961043254901606076428773444967925907964098988579722331188282409162580421518399884056932833361817971599948558734874777449967550793414935087302018817880077477314626666235725283668850273679323710507802517271149463449562420122476732719113878665101091659670807312011782815406916565190366114040265214529791775104267491479926649192499238649026361458434809380299032852021894916373011994922305868424229990999302737632948527147309666841573993321324656296790474552085064279843070814111731857270270711604011629341492308647442467988271275797157935708752480390034848535647235579464238324362788071396944016363338066760449052711671884530931989833862736314490014938668273745437316341401564909310924935050849754540513464626756153856483093662692138171746977875738974798686368514240495066772463572745053552106298740593930328678952997166915255575869900246620717713132343105007892650984952271145079077475199317960473997982841119676077456912647671853456104396056754717417288051993033161447227808970945592956404068668303049555309365097568787402485450777255248251723953862751657141792382697823006218634492906870128098177332879714438973657486453401553368086477947827404026814533245691991396440827704486839267714600044027888388603932512154821352998385074056174717786169153037623157232736220444179572429365209691595995284580778899071794199151476840356136293436775236813021480322071585733585281884296037555699465789543657078072378898429758182787775283742875645859528748997553760776147261653374448157673673743095239919174552318575592449035214170691008724613671410951129057508594934677841170280840890076749273027836171916446525029438013882191890623911876199807834519044391509072449934930604845250487683129595701203806591652117036865530087372772741036882974214023940850283828899730282853648032692287997310766786279815014230210746577021161163673552741448769696153128452281206590617992785875763638118499876808072517266058050762988778799652901412308803195449774088551780140984610905988445203819066057235526558656789369724963575839381180143558722012886584759067059672729331206072271170661026261458029527746508936575635223717732253861095911862672989384604067682436106220963807467664204007476350672373784198048440282295039020395431525042922872262051465358515313453441871923470154922509368230410060232342189865505041017066663771340970524894487198729342370412381006518588669451507845391599461759682077643161486075042686212355062828892368756076694666159659710190109177408708584465819314946969447879760975643761083103653981162878591941390765946866540819096350541169919989767990977978884010004758744053601635312978016531292662934299441375902550381259198298991732567883640228075026543753581299469506314444321527059823750979726775129502663037966692276359700815964657819149731422870978280194243066496898284376587273154580342169975112027464241090424215731290797502135672373520275257470693590230932712891178569896219414606166279175306607054316302439964996174341878202150829847206239889317781449805010465960014215890499269214124313572411645578993595047724890583957911434795857603148769957644429493608141244356912616145449123109920274997816245481425033249110672876519022248401975462941238680915528841352108531151267023862026089141438192416305603877686444876529378129438482274420445691352914616509963747198577614098052491992288757273858223217413273889180863209565379270338081564293741027502780192694502363493543636150459683239315163782097161790547756736283528262389971834657019730109613282109769960890641823183983586281658368194091194494522664135994011046505182888877705703045522301612669195087483599096741024424254987252607368982514545957699524151956772831433861904266927917554155840725994108652713307575264864857180114210235664870496567736564390110624931243332439007243016441148752518711688618278703858828877834838554227134535501089969068911513687113826785852648696751747172869028220693517628290308185879546117218894746796301378727588795579643273444891410571826246500449337249531943741385719264506988329333133610643771367226331245905171567124574660268528513901257408151096065426136200174642384723589572126626471099349565377143600452397309610648281006470292253738394024524576051990010203873641807671187168625003075299981958453100210288038416889221279778236658571255331548437451223643418221532141825640896016621443944298982406885956577214127806026201494273469503194772501632035560001475603836509798065146490404549328064747792937586693630403225705412985343377817965582821312811966311569842003506293598003094376066957679808930866765290892480905217242158495297246634859133318291298141175830543404826777979509502243345091414997792103851592341621209246198542776200730731157835532177359068135401326271253658843909667199167688250032392309336719452019012036590141685873319738743980891738658656391938139109051431814668290899213612066984379511852585935023462398994189752966038800994734422491434287072811563743259087805462682837717718681071577473827984611292306757730366079413055072073551383684782123658957129542598658247546233199029839213700511989923145859423599993104882281901816139357140474915363936673892292407693687541073545967085394468388218080457506907911195326044355836168080817872799053357847869190395465185239894191103451716355536956325231502223292340639907332605444693561119098401785714685687512351223189039490009313929375203427671224213156744314898554154847251389253897599633251455605743978864738695094669759920525681053603450606854804766259260427649271902470940425152054760571088332680286775483844012601001013399205288899903217464155482163733722563078435069943256176178592077055385477785171346459455073685452038841340356326967516079161882857408141442868089416054888420030734666848049918225698166937452178285200342641297308966543008835651244007092728183797684935455142949556317766645267541589275725959299864885939821534251966097283892558131466941067326676334519242429804851371885559375965738997827710979346097515850585930309353674178891919211277657426310881703631986216477741892876005672220771130154615047512937022070036944940188761732272534376147181935997429451126524846431165536366191939344888252217607415230146080391820923513657210814150463960841445091264321884143801874203107499193841088488683110448440086197700389011501393094610258370748193679857415005511325350739900889561923583842309761432349187877735542752684839720464513333848339462956079398455925400847643073481088713275034174030222293312028614150211976081594729072985663496907575345261276672301010151200491651246497438945519482653750031345236928332464861340627978951744640909393684752716732004130630947998427442013353001336195182688532945645633358446428447506019961158050175932569141513352947433546731255650442573349183977088676395067406770437652334507925528186920436009125938711375312104406184316829948936251166411427101750158597905964293017582657186759886956005898874423825876839874466431971005195535024771508080099403256140048968002361260467822040161103592247079063293941896601751974829014658307860454511358302519176579943687398599652167678154516688776288172984486376189986915822958786310778555177687542548249282742086067783250169090032447345830939401219245834353036566178811751618882425483581266672439644892639561608642451283759250046508481073790364442875921345228533508100452219609055052616044645760171845148866712619903503240111948529611282541368571648507282642440469540030960303532246311933516297423544885876666617675588946173771663551358119520190567071885997668452659476868986179864226320873939690283940785485111046858809058989443319516517242407566486513424751019731567826431135706452117235894283927621370369284305834105279380976752902944311768940100130475340293925331824731756169634074097217362922992016808176894134365648330673397876079598737330762071083328180009232744612972871785098561109508996007454105485954644330623536129497414794294048925363423622510138148243201216550541770444332536765474328593074364388398236386129813627015093289979086419765356914831012770810616108988953804574768566170896543826768521904799799842471078522599292260412493336114406232100186777769933626066376365662160344526653995042757005986428069707385531369598157148454607334522817209752632569299913287345969258076283236637431799967959801326307542495546388779458077818319536154241520366779366768098673633545664223505655667048368055248561535780434687030524206366752285964174876596242331640853596729344196261289533490764780347922186551938626655559063544433965123151172555652024518687639406113745166002722016417582858668682085551648655472295506195033472953933031446942719550868117238085407967946031295172198398998688107128246400668146454125728222631216193603554211996756561272014302484682936735127595899909356944934103815808361302090577971020243590326736971510987143399364102088823687776095651350860359069682387943199715794323508993856411613912615870214730240804942520483427741682870123959455097105796547279336966518918706385602913567989065244916509191158364027013010300318343923352147785869661932712903683443127912924619082024843542646624083140381898980002083944723495892922650466860632311869707646931962128695192859712238910012591211313966717190483715824630509145424954668199517943030086764993155538042740508807180003987553153450320925290656498750566392085730114675861084727070132076874609902962336485607805386397663269332733122639708428242618511119368485425598681058250497651671450555438757113427708062123542571472946393705593526319607733787520683668022786996156495359879617452225685753630721964538933645979844323101552934032595709919037662794986785104076836134832912429578130145142436700644881712217454271715968792877599263250420650006747435702743454151538342174044445577687106630352214747467798887885643903073766097408496084536047842173692243250015408483069689864543400411966867254768433526983761207912229786215047658511789260377660635895232626667992102696799718366616301534553377035860652278029917824777552483031147866917915873176686796278231769397739373578008010698450924824663127247181377119231385793152939653212074382056058541641033202618056951843756907517221153623751132198529484966777733700377794569252942907839724639033943504936740805556472951806632569700977829495152596609854177285440200533655322242155621682729642802718146527528170164299258080159637666504328832766685138811790302885875881238163582329968705218284794790360661887261419625866998831534300208767912440974852393870923623911795001182186158461919556418801892141208405437821914826025773227771904767240915154564809288388153877519150873340255064824898554155772408019573287101774087450985946853007674939021523970292968899568461237506991880895013257202227762092904550206508778699568901472694012417128485218765886039897054242195732064480704027155755903466826482566534309453922475578381231931066879289641860414745791499902698953321148782140285523871335239164715684603351464548387418656456670318249187143951140421316078542694857745011411795946327770804991125793697932387176322025301104809470071206280665740227167970291754226992141674962035196506877833143882787497508939922442127927102208846291670742713972810192589793934364151378949694782193828733569255194751452055476315923394899208460070211964140380259778952966894460805257286843795645990867469531623678689757523245819214901833578395228173211120862498603890869120239387119811022072142283298491400254390071832707270385676340156064957608711493273007852889512140715369715598429126063398285060764169499615074408036226538683116129579076456258544645837504728662372679813512311875484666617671747204274623859202872797208785892109242896538374881119123168801183560219276000010511877068283025310730203530039311820103715602687657003011820321876388950509915880349060361658126406333679823051521117931501137921955735062482313531791704749310788154352428668740929477003040986955451155542266177648185900306826306767705628703595316692734491169220527547226040715060053950574634356406315535846832634335327120569901276156923073132325724432220908056712925828870494521267711904201100936389976930626458585028180531198981549678929607058686304847600079574862245158695580816938955078506785712351904623193562236469799544199389581633085506659755465991172499956522962762247857540964732531820535229315164051569353106844963560912732113500514692781357486732682633758859187618092227934855592464899061071057952845643521578473669692196955210699562005534672579870873015504658202724317685900010959498802868271515899283342162876178525490238779036384352787541680622667580563416673174185400025949572169602923914221091513323182588616491481961342455683355937785892645833888811253298366042370599815138487443671975746152967696938469777889850940092828959280656522773068187280525211735756735468258912366160146328155680420056990320897175879566480484110588226952381072625630042521261102553997181830024068499261878115804391005401117653041047243498743788591428367278193373956710293966800036252849456282016406885438094234516830293716531950397885952536511920311346866017576048072258317750215172504440453692146575942875313074784166515020168787259237394140149353281709101055681349193314483305589781016973721559437786400169452497248530544233632837275836754366537664835225029049355264643510794540253775101740259529002916821340862102085626960748349433074112516254849028639429923218773479785983901855091043595093677043920706378220466666062970197458541693755510835030684312929886618588061958577324544614286227158833353625049426562968430530805673240188765150212009735162728672115640352333361294305671281292600404650981334589760449391249518282244978464549917806134800926657668422825659031550523876779317743530042257167862722190792379687443651424629194681471623077126189002090898872888951179526301442943292447555187429756836151617451158015605259918392078739542958694420895609614698131948295854980643739987164505740258605440667040135117733817021136797078044295847774188941412398530869565031632814765697627133053084607405537759831412547114044776413902873534228036258011889377455347367849425874636575838238462362077850922757563328529587762793923674167888168197199519266076430438566312737595501637593028613238483321711845439884344110050880634230825744634322107874078064923864255256938978238540308713150964026232361372540633260509713013135277056939352622337022371267108479868709588938588028574199400180871604535102086972784105226521947398276927712721634134763046704228045629365187410352258872186713513466228726242821517081897638577287613388473998630552039341675886401551415600287057351794072146405817931480476467213787712499133307430375740039339691630004176798383379177271815969541579421047928722884611624959020678015730565771999209852674356823514506098494325222932760103017871397421154403724551005230230801496806990751357457760983677718226201127315137507859784502475779830397393987200887584067114661403598022082670491501903550981656569870531455454724840903674580568251381426533928155457453919624164179200418509842597351526247271823001265906740411268913548450776855633274247551100287223107668988046905462053421105681946043375724651658910576302569239749382334191910419436599066428098503045102569738958289891604492380490398154315746437166067089942461311442322399089027227104896008573486347481806860578584562592708274645499376187308942807278906263558870392314806020322597755330719087150012750889905937248951247240025979553069859410811614448154883715105518554970354971580089382638811848839948071708704885721119225353243413173666399674796905433590793286944477799257556944679044407176783536729013357519903625486741930857148294445774409952700193693515105767341125515315767877493329795702837539084863962787559709600841017058132594182400123649166429338468598720790266292177696318520287343695701192606115070920836939348909772189866117277973348874875268288673102598018765301973623103127793038675548708493969273258482780410189743001122943182549872618313077797630881118848589317791845009179307210126389610194745983042868106008776812527796720054564911528133620963679447688895664393692591535101086615288451728544758439623324183187586246819389136524447997605383076007995603512373056956337225456246054572556318397099857664081753631574513723512797214708864302098711143004722883076537354471979813072847582633707881946006658135253214058118653275816452898893639237004534415139695539156676524362418139021011258743811229604484890656238318554910040256789604046220981636672055985466900441354818079561534309428333945702836679214381151988081621669067017157484069202874633656878574094320575365679909984320440065634015788492774330906279322782885069080544446764199280917051512478005633317063691895168584794053265447469300662791288309121896552766197219299464555600145122060876761668426711021785793118338193840151822371420338225029772697738740527191894554968804380432578673035481814046352459809420888541075805758951237762217213439058774132160429857994416525029307580494958006791119571793710389397225982134317765688302689306691677733237409314391659150282532530067033616476329559958198890740366951969654172291517401260492661629533648552459806494078662289174021756344409852923750865649870679398529687695352673541793293193602124149809082578915847945699500466964230769714735910873025720113272860841939370767913947405592901140701395633820274175074273904079210943883038964931124980232815623299047268781096690375762128670157373454176504834411376955936815175932606443263490055500365776473061107714861322050678118850610061778632438759439697454291005675532879377691280150585654941225300575973899883931248447736301320254942387767635537149805258847417909865715777266236904259244167551677794115491624965982809077358834157467005221951544925774703434135135904490476636531277387077546667687264547662372876419240511502198929688006018799752440831518817352386959006318197519999247575972458262287780818991042305555625159264066269015021759074573332082948531984558688757732216583096836481822956478524197079098801115912914346637217050643733580914198403709427536959274503107236250359017237876237542323297669625755370851191747132391076100964257735078378952069430947962799984740752830016648997524216386419133976127128029488120141914442490684627969256386058158137775013564611257439316245317528642499825085563441890575556021457329195117787121724651253546720249082719755140618048135427920522856715315901956755668684626675400710276186128833305833783215209789321167338720443308045279917233917120810821237749497100425649054446940455883290508910304732831581619230593917087662478520865436813819077368646969427615830375777021088292501172135499143839305786175932622430432394003359213286109780872666135099081970963315778303160235397468566019833250510080685334705588303968498262037301053600050719224789680046262114833459812729673965510947659483255727277216514997097214119097788318415089579133928948180647663864502583435750908366630975512109268580896549868351941158091871772691093892840967984569232478363725030446781136276071484133275522828639331960141411244684336891337353066348412312533803820741155572949772271550818002867092799867420935419930552668128518811620763836423754119806531811228867874896413640525336151074476928907368264210494706689014905727611144238939893494146304505352575556111837158451026348006978379994911797987235095304805297898961942739241206195560898653627079199666630439680174343529816939307656772188640712719649231545254760128143387777265711406741315158552320534340226401865792017430727382871950288989271291804009851841001282146851363611368646635633754485293193530634053520771483159428133658827389574047839223573384431473205445302042975115172545520413201539580572745391653735021052900835982820021583408430202633378218249983503398343979979503362525735187773684582402616408809163004127134946301061668444187033831213197161781380318459003657763180031032745802180425686709852816531631712772327119184838955377139796837269411398784720816816260035709006103102786157391484493894430421608175053809031494431117803072002140834724906541445547201953953680468617308189099418705140227671579759471182570273499120228436450259602485781985583583933741440374652015458782432419712132677637120430564801796667435316257007148818620919642747954286857058517127233500343354544647721389326366195957500486786354668364903539349728281020462284427927029316961332640412307079320494166897215362626976665106570075210373048704622613644757894168176426176575596470519577491683360686027811961718898070196240355823878117089205341197346981280176260291986965424371642988762188380892461165906755729612976436919033164366035414308901834677528560775919300252595291712176222725752632777153431452581038191150630244396784386540814196471182377275823384969113941517599450745451949134759491948859868184362444708856681873557935001489111685152146351035819079292447221574774319393827436228013515515080623762544136873311885524181233757687628097896067724658913197713207479345444122039260036832071918804313310318393353910841086003788876312233701913726259502485502281867907724444413551633289422621035217968103957578766886421613349018486801382455509745143590368197900166487986400901314600280024297404422270750658503064264179676560296462331780021564659671447486711253985150824825019190034255570028341954727766075230687880320766329640720503664209979117731332014521465067454033235495032985282619236341426872211209338954636501326733592981461811599804864826327007484563277998065748851189062795230614166900917611791553040443316034952100872859868957645280687186556145671033088061111660725157031882040967165113106206646466143659083198309250212208998104769648668965332954660513860668919611908529064522050522298030158674058127858911262315327125639104818969504285498547405150452420472505741277074148837731611733578198444034274925630043096367925939610674528912079551871675182867096412957948500613931880199289311531096010655919507640254426229335954139925449108577774633825671762444461508191413812630492393962981214484660378893940140962760333456388801268936927241466914974891614080269686705477851220066306349047099087900966423978414455333788583305181985151927749841896848113452184464278259633591999984577131190377810309637390846006832816829242112759370056552355109064566600955603469906493762397696889377684064291695111033671235545442452529813150942774920722099582024877320421018108173698379669003411281173136522491579903322673230956933375112262681515380183697583580199514557490608329610938243430211166596546968707067639758059736482774684412491080182533469574312546801833271293510515292500308490632880855845472642557983412419004910771355551427937889993436017851494847505357205127627566870123678465289901661760529400829961142774019493872231706204857118136061475008057185128378776459718569767838125360788094725662504223413851329435091523482445293234462175512442451891218684956300371301393423741389183706039622626124073698768080436438201395401622830697188609419347153195920061104036162694463000584868172160100713183208178652772956434404199372840894560546126036229394520586308240986028620725530159329120292005717454130507920416555485913097833233929963770017815031257082170812488845376792725689061455021314163641277110810200788532175516906840787567465423696394444007447873557135064629842826021326704032709965056546541262495100297163974258842749393787759991431988722504230625807384143771623424873270751362613339577026410545014669440044195459748533315772559803448311313863066933941987322838109418076465051509728157879580557681912022649859765202314563331723788557583584284978670356833807194414184201068448938041960863561422998766963999505641535560786298405927707924824723112386326495856611582743616650635964823810061588318084721756567195524858949230454368099851053217699385798659137875625004314644392451464487358309788873733464680444070319059074962406657610733821609184365585162880317379644254671084147183098573432448193170773452578428243338371118812624610187043039264923340944671937902419438858645089915493911319042374590131882038351058741626303811934184375397824733376156063925569686616879603320051679154972417179490619424570487802736642524579717239723481461841941560836625246116905870155393980451050016081171198505402718411932747360189279573037003620730003915087401103142211291265122298612001090413709026361100416261006755436222588108820932144575129019993740237160380501498888053757253325596964074964120820374076518090030158398572510901706659246430219662690004055753097225598403767167735491372344615341765892673375508068345852595547920781646485572881541787782063377212617353200189810429904489388346566994147926496732061089254474555049060193539508547627241435442214453744724732912875410246299218327488839392404984656573899809480397827604391145017868435822380604028751948649589287149143113731860499724187330987243578270136070638665546173259955958521744938096032368286292309382568303716433358121110912178269550918430333470290479333376660697717246105526986054072302585830724314640283827164723688783942599830417096232610513460569782843034174451182783996387039332721983837292056557954064856230721039175051134288233160852624471399219231108651151812298564809222312680578157843947483672025489324867892435707697118022941390185829180736109955508082890622939610666904782216628808108890176098720442950844293938586397746143737044784606598923177928229821023454577032211387311045785904445982540746172044067086649853317989677160171025750434846046035750578754009764214759763651752000939153046560120426154662191788470191689240916041299794212810065423509001591069680018403942060542088701675092852049026771230476048561063950704620963160921508737856017371653605998644619917252474160865837867063101647315882764755263471483807591913666616619667247590546737650191150254635538610871381204017716157700567496575327053567213847596658843716847230288753744898032160780577256462958103480565109711894633182447545307083398660611230335417151613114745849152434245839333090864796811913184089845178024716869695477891934940070992726826488251128483185952232164834685694694062668726821856346232913138834835858491395095204527902188535256663364992188753030662741476496138644624903928099656381238516967944387746057098300164823279904144163003858152834851841642680050921018082705606517713571713498670386454231671764132732930398430170738101553958629379186377430193064890414037773084983441223019051543721416415702922960568847012260678966231415170974552915162837272430286307058154132075408747004827779386282249548789752549082022744691195421928790553708708525856214566303926565603902746280185009818764246025418088708207073605490625266715065853269929972074438531192745379453400859609200238419676183778435241267292340941423457093420621715463910008255134159208313886343691550316661536846860391898595426714061750832061476381570946330191097178988709337463896630035860552685352830480642145816662978212937439596074571571219688509917990014306560765069227911768664163631506268132117023684843031084781693332596501038267393615702489167523920645297541849792326486224204144335795667621156639798545066262106562175965317772963239100028462263134096652350314084144467735749020553260935754014482861017079963039144301964401152701165076458992039521098039006826820840316540357348988287189004854918067681839271996721270005781152978054883253662976507848556453695754574511487695205599131598794720473692086524097713350691964702605166017453514278965677712422014123613597092006645329395464509201376493057157832202885354437208520331002206084458529312423010404040541215075107251073526869706767168740471354306739527471623115736057059068142512593609054711893464390848843727595662389840594455602994789450202056260231521150799258879096078057445183437688088106946542354902929495957074133224697148747695945712327468508911469033126669720459116865140450335739792843696490689521889736671898192771010340769452856113202411762943429137066070101589131069541069226922835389012882790143592253307603311162304845983204692525593200883269753853576921793934308783866481604920586320556017386744820854926977552050293652881513500547683354457114894694916168347580921329850529132958352727965696964891982455412232968074743836300356850061344218290510718410587568166274651995366291601726624761484657680869507953855458557040481318819178544578140022716098640991816907778117416216170947356614311779368776221004992340153840244826001632131844398671689254968117609754973050713996697108096931931761062974422994463907676370875579136600177907659342366058034729521103803933398897313035200416971640240545512013298012115282978554693961548304163081838888212084633750555404063937382452904465017341712273612108683438875544095599081852223102197149538406131863594580956136350655384113028932735065852960524534151499586045276814667037123950855514223394935396050101233742627079210147921152928807618570046821094850301191715065214995926699991824571095525378250529227814440384257241490645745808938984647277688271125503534122400955311784573380053176992396265493941203425009825046667584509576165507187832626867494101251760200922438296097567259642890590856695361037132208822732169095386178227268539360747440848357094407020004283972944269778539016478693683951579677418633178703756112137695616944274359710515380158225832936387572780659589779795733638289968486819951123274251013284615636828657038014454185140999193509250056578251666416914432027396344924142336005307967186582646949183324439952124193172543022846384657649195184139158712457512337263318351340235684740972383904120372471465955543056042379206773184409158931180388366158756971872282067027314471224017626788575498717762860652691636830719653368530913394030996597480762770389804967395287946506445783712131233224944232779883101709839062837275384398571607814377066277278579154618291032595763244501835261144801842326787984379117911398797477512963567949993399440860890236319226094791579228716260767908432973380183920867565273577851428788340917405384896779214329008843834385209604135922359124190326746381847577509955250780977708785218739168964502527475562582321600844464543090345299634234011936708321869609957848076173793467525470470849961298086626402023544697230082757605912060464882540841677421918594500147295789443464593972178175651333768122830845831174617588495651941079481434433551523981501729243209622472285756296247256953562570159369415558192060150407165725897308590095438648659217448740603288051915269609444069461453911289088487581740648906865291549777187725437613612660649985539614952552527376048013905379614355474409092926680932881927408423704217167732207015845553193204875742348096728558952412325812628645550739420245976348958993233494846818519579449947810492087028435229347300064133994053098241319305509176536586327548012863544134697988514626142958570820944520002421739071766362330585964167066916589733748860909855753098138245971193557379338960628117053732735145948507187687495305400929555949281353005531618272157035601157452182200337782140487624271716922287938814537363336672106661993611050721985902014213319101451632171271910324209718255468313992897240785451625519200472536592589858267612725669631437751646316453288153884064625688846443416134012928494360827609981399016393251495963826702045226902253370308391432222325275422984829283349525331670364100023839653815731763810402720888854534868279878168400493687789079088302729579342776278175280960624398513920369903755733419191929318396786975962721280530293768284470359489039252829374060935869442961251419311347412707926182448879042132287561150446584063927960405727985716504066674571493802180418212844481345322482196126831101542772217696067050146010183958768430137961307489566878639150032252187201137547309821227858160687868303801874383443652319251419297757136986111973794599760821672051967102717926821460951969461566037604282082823985866811017406818641284696044837503828913341626560083833762201962812510901813694298330910773003521473196122277577346422664641785903897285267291208645715148502464150622073619990334272554985044234581289846625849853152246247400967157404903624654864733155487504135520254430509348423538022493374796448244237784097828940087026856933695309014891300149106285269440860542255676754698841985763081302585885192430174365328873056299103368892277393112899594540407080122256287032464152406825865155203309853614203781173714720234780589257939018692875690700975667391528967036971513277430565854572728798486532737283208448475475429351472459902154537044062977067167486988630609787142015489939829784650791756747835142321410413128950885735425802231957756901488039904860513384762323654148321553409907325551609812763750650634277188807879903089251795249592345482521847371453570604347686641606676826780416366330404836999867623326982741602558779616474909144722648191618830601783219945571744634543074646584507958689686541539372225999275614206115418840761123473893636408012854392738533303069178298878685142384506790587516532024044943305716642480954849560160909180552766869457458685625540039264964136733453957908559625603246454329290450307288477803417238276298227088278816007361725550663287066537914770765177757207464730325277215073250208770500884872492082787359126222319963607992680750252587903349245821877816202080484825347651007103906701703966643349431031099061358211516579372906548746135460018103902950276372574928381371903336758888305984777111386381116704709029562051915218973207324034175837427383526963439123303807068766432935051132189680080806091172428205394270566380594545121058418012064713559530141182856650882690679274129917775811608108515074468621357151321004019066911546160864315474052681538869477312165575786926623100784255090797674640308225488612540658907847146400548473432735966275686050872993152310335319458213007498902621828520480724424505305807499329439777509489311165942218810363314595709940320960981426217488832789110995329594186616793902716541020078333069100862399640012896508606805751529588295117713508545282338531636720465767888938518821995805892410133693256496042801142885605457165769343121158927928551743711888627872103273569858097176866973514552738853854776264273734023676401899403964534425907179341359833614446175721419595187663593256376764664181031407624437309602623969020767789463864282517380064490079398067048759392918556862048076913588492846421849697172301541653906015314023984462801965908291570568184948343609520249434558395676529968713997520212917079029323975986073176890703493653082673256801624588022833925095004507549474055497115100834227486753473519711443887159279029512339137282703028970028959681085450964432091766353286281360250283308088217348228015491552581443373148539239481896852107891234858003327718380253234634008148554979948339911237407909092458092260684751121657583885681357326127706586260690657480058378725040977476866788376561119099003224070487146745145891487278750707463050328239685860277853617630639794356601148164553913822105819172895710928327137529366170849374168562410523652697514167317185891216639910042230588964450552919737250440104317877483880204418371582289817929316800442614192722451412370478450868849576147604582596489735252327424587295874978116088765645265410007386072812467791830475447914245784858685157025197972044792012501991070079066485241274839909314444676608013144963599962838032412243421941695989327707884142635375269240389259171278287972587496383724897237962394645494513207927215919564878077230695013061377932223858980055300535403240981356946126549614948447726672308043778464964753457596457657824712487405326034751801289434292358379783264472218869410153006146266826821996380517461250404526331239602641772596484783832404966694397989433191877780519416921722132013641650098613164648502930212761679251186764079517874545985983531886608141962989581282307431786368256110510254169928832916237271972547237644102112405152889849302917620488741253856214164970561968459712094089981477104687164165757862227963298194957534211937960450544356696601732013894297332943964660302982203535057631456776231355459123311858719987561469308698486152484098330853190844762934808782180771139604517172498186830443299358496951441794652321383368184150357427993479771807106410261585439081916101997381903249122244103918416662725294872848155807196651867082898326026292112740903216793416351374401957568601634207121365050173201929414302102054267407219502295125115324606009384582937108382747319216523508599415326028566193005133880556540410759472737409932228208777703840158552942441594095338527804597896084410266857863945716291573347424436522753463582608424663033893129944093278312227583651587872090114925335445174795083670831054794453435709792236388772195616727807564936085661881877938754213807533170980659796714074794103797304469876805297857890692630105971674560340779908417600936461913196932162115711027768540221520082468373995645706222238314413705314211924141306755881274394531044606850344121589821314017978640351436977031542711389889431655743962468994744259385250314228049518172757453537688354648015412359454930223867430831665735336896747241596936933558884026636677546720657899113269628902418604765513687630383031449747023507367218884530777439645238121837505371254807515294152485107025958924089227087498151382451562495256828863248759647118139074902995172630188518075356634367889286836995377455775944686674643319721058660907154171369031576834837425404540723200521254708675559017892185939925425685406692688422893946666840302812273487632383570596371033667358386217682404586563496670855238932174996125416258839107041632403128909699995161330384199091895961813186841273169696556983118910460008822259465564753986811679339769859524710732109360999856249643650861877905807698837100868071805775766692024421448430803476717854849084343155616950336827959533759259918039031554099370917962965057119414417778453014279045078987076242026225045142967610521491391220047401300455060753927475083870406939441998447462859281387718786221881962970404943451668946329236439796178784333838436031459023013583407919039402534517635736489968468787963392604494064719608019878585784940567855360581553056412334400379064592297327412795208949893566499499375649793426237826449853918960138080803865524368846842372577869020066343365810574255546905264331488432294132494199251118551113829956986310302942586036468072624954319854940090513080308418672706219608020632515114537850157315041436327837852681109118186291805312718787335081142406896181833050662489445906328463049327710060231675258210548141486523268072117405010095775187286244504088921116491046269297043286919528337166268933898041183171694554372305215673515093192558807622433604826466309159936426706218066460903696336584280390045495575680896838459345175411479768617796502583365921606858484520021814849409005801221498369326003078099539047622194978516143586804179831213246703830683518439775372942953418976058354351205761077400210026217938494589369248860241880320130203539794706145539260438019658890792686511263082823375184342693457892822617501078121851162033396058657286768644397714093722501253717543727958276662903924322943925626585167378602263730534026097890653678384766155458494783512289584448448232913845179564986111760556716878695048216695847321293680614930885081520472146972775356403814814215883006534562314826134558969550508206808520869142277911044260191370509804200097418156294545753027062993972726013210597607584764406857689917190195791275151061862128329869412533442329876474498257268293339898857873225048793307553170359164140134310330194242117894260123248217971415276580827008653542486305626172448031253391468152729267363870758128853349865311811207394977427696095088413427657917487644614567194699311951658244798060742977756027711884722958905946701896307652420281112190306158072612334869312026693760880240225869895239750669796107448490162371840750165378374133929400412153566831049427633819493010718957469060150548652034622373832750427982738560409310607102316337703055165816370931413681720534760628963148640624782098819211515522086497008580606617019932735046817327515023178901652560503095636865114467717665387965516720690353267973341030992397909427638354775954393911557595342209442923113621442218328292021617491386137042365502351513702023431611169483361369471124890131309062580950742101891307280268363653759216774395116609386561536407510626920151411159034626170162768321517008503858362109084752481996628282831350437624677322569513874788257296023423421953054451710241901176543351098760392983110564467409485777561097880269652199117360065369167635578881715476398248223834302880902238851066075178264518394163388936953459523629348457065680539756542992999672029071976129550974560565143029085221345613915233529487715351090032637415906034284554543071591296655039613103719689675237801082235763105891645432074193374187605433999279369080352152282265623333336117374994760844928434707294203527608214084506377416261419881805120079033975747599553885421953637790789485563259299276350709484593973374847042576105725683390843105071520650102034318014175048366338976612660360676663694519633026539631656324483486978568191734585701170741528377119242429722953799863640439025387241700326784806361194648628879396194169705542652474408138481880803928957924159533614943571383119882090902721313953899264544123725407567204362403464853833824035952026684031052882471334227341939441793834754339900220170117693943171236526453859355882747175903667349923039632044362973472787251135525101030463365524333904029354539961160889292840751423618730861372704492354482224509181343347212627495910980551950214807830438502413319126805866174592640024721070241856375991556750572807378039578328826659390689631808472232588352912861330757658273227567229443840391021296424222134904059946901540860147089550460435079944873767485315618225531826402453230633012179645143302465181012420662164334977378936059285239245151186429731185029832948986164599426483016584060651964847472055767088832543737761728847991531490973852502069903274037986886597547687922136742998423206078458679812428528856403226216842417625414010421841667762919477080584508164470044385755771039430932417348468856700414134911698665964734204889145157653491193866397965007994402933439096899287671352712806771097417667215003950846891041594750918522779079730810884634650354663693823624900348595283656178057228194656291946831792811625531260045776553083784301808114723163721065930377798975466211693229505302533033130700538836183449223706097450302439337208399508298037386575826917982730494567243096195809413032831369783569725003013531623041951124386367970327985901354977713746050278861238602687636608659960330188990222954693191441819085891468403052458691379485815541104318989862938513497513274660541281935552820995369119975268425144287132591820297339466961340432254853406940920579354059921376425779074450015053409185964415324844477266652209262984129053122983157234230114837906440086028497528909420578476660759317986363986093956361553676438726555215362318101603399850884463811489394294826571850260039508904780133781026601918642521388806885348929156644268564981500949176492327337263835433056428414952701409794098106597480981720037552364458762129279812063578284913474520289137943485573777606739306108524376002415259231376850691404565070993957712336542086726656063281004572747497234482906708871637709365126841296167177637934009887296973464804595964890310909218603274183402524706826980596311408891412637054013894500678865767979775545791932218893161887890196096029210534125972668040164988935898692109765281914926723661237830501179140631665563760089529064096267452633390571961555992062317296626766366957063087969026212176874830293539756618519554937277171345364876908715307708368679648993023344989767749082658639727386093667127601715025211596334381684050130830801016578980065928852368324418236719128611941555756437395247854419515303693433495450921336361384305236860164727364460984745264578653096172654572716548481111899107733295708002927993969219674553329249179227884294486108693992999623289826359065557565747701263448029177070788976411514576700001579095457257560224013017550737893825826297355782018059591893341618010196226754209036113231719329698159754032413566201866124559956276680254830305554185819245280527228643110313993138913103362796291854131705378290750531127792062963722192829231500020069743186155076180508264752888399836004274157172009238614810934709069280896763346170713748897079494343749514596737895543712289626508242305131442114240653119676043709010056656858148209095907548093093837478926747568804307657893818382060119784597046193207184842453491178495893546301586183815438227521387349046763289371218978870366349891152151828150400216200268077082204736410074295638630244227176365446577947514772584307114604887205658088381154343687394963375701610871207808539023056774735107997201928477257961552358771461861298449062053813091420460847912697367069931995544854820124690133224427422450415464331770624541169674196287814214462560872884615181032966219761685313052653365275447524301606288875733493953903805073326930203567658640527535274259446018181387670421226056445352926899491198368465160294750684412262192619262739841515240367706197010339569737288202290103115718692871048305780239704599502866743899601977123462443971420994200033849797337732585745380523670277734716820308827933632841166406340017240607622043689395026223021720470390077774055626644389949546615201783694843121218679217533689695604602177424757723056320727278770146678842904794808419713006081209471104080717402272668054479352124384436501271123627200194089984468496863441045719464874042202101041925005954056913882505852467432895439478796397548398294694754067399026071568171052557897099686105005100212520052900984247256146727964752912354071856717027698195266176043351520238773857391172109934229228703922509116892561574386330150686196644633802443499128605803387243332822946331440025923720321414370818711212048694387386181264730542384042482905319764893247531957805592190382938263927250598585619798380798049451419029600962656263735063834165854086886655263415896076165549031260180837904955870078358109165697974699666578667133042451260124028608607894312944140010347817038766248655256104766904026143451838822093085647988221583434703690299054118227080481443176297511279858987929038960845201438374444206638836250559466870387587623425022551916553768499680741655179373882857734456483416536835694397379112613251228965618545853598083776330228544714435443287245238418422869210221538061204977685821269047438331018977886040283797671794914812255009066262715503242555877494655221833405728704602729786344620591681400022151616032668246320878785709806391222478348020768789333765742838538968534754974680375708942575505699359626619526656589169736618296845452525748836454994954394821024141319257331674544372829991610509754714883274471109825169788427729802937093337709192474479755999752776198791784443623598634857345956772445920643939014710282275110251026940739010488819360972436518066840839185836460619196389322656682837924869905170292880293860762668446238491967223961035836741953664406489724372303343774579803309983316347262896779119254022890710458476337143931699065379518960727609032478956493755943075442540486951564218270147467337387506312395911601567755196937179455938297859210663352884538532822680524497517141116021869286510703627262830186569510599422133972391197177216452256299678464732989155147195995285136738749906609050456366845178157984231323442287398189975650489244933773608509988773302882831648583390537212860040521724014694680102162528932387180689853580319958997710180489185741321087951241644907139717276749278405764419838162440000020059368350860251528940185381699566720263705059704201207069615496236512101989788339756836286389541220423677315356353563280150762139349835259123247968326582903997226721470949662973928757117882412515340592220813827688476382798035778709827372246224156135043326798692613385782058890568554700872945041957839854010608468781757175096147771274600498090895024058528118015318846341468118076850996573112309360935487844214461063851583014349489360058491422661936301855696697287114786578796749967521701051067069076889696864884088198934534106486132703487370043640650462309070201137715582015050870512853188867832634104824310181590523002505276391061040825256879743129724295831196135253730135219533519708464034296005315645922707310883772317299889494539271194278464142221417661360190994987946317314149600438704436202722849610016963788713282978635220812678168896950589858901844452945159496351906408376603291388697930057845065183283956094241840744119380906135271204532378827250299917548283225354374798301293280076891415417869737638743761653149293099449798185270819327454105208328964539812340311731233674216034408832855017158761329160637437855900136568684598451945578752709592802072389554521166292926501266064701098903303201013548580660088302346720395892561458968855783850948503420891452735600925260274134598836451144356198367970784553296719872265255736663634224658219565609350114004103841753313955963539169284772582680118447027334133997629351270274808448065386318252025786532356290226231069309989055311052466624256002824606189844005237428884174872040587153140623724060593441823026967220155228272667710579917220101934463101857909524920491614066116844012514088614252010583694121556119154768908132896790591447363967449931388044574694321018669350572733215567115631168094334227762612846063872860637357053304207953354548833058350280002320316197119280601468670249233794128853644948943228633239185412639894678724555429348980692818143149625167381346547212216712553658739728421173327329187142862124454387050797664580661911038046943200340286715878118323482170127806055053997633582425424599506151331211938655883893012693676234453844108038303548571831651593917669885932795823009577778961579840297744426474395060248857785906603394915768854937825299758422580536049183753964421605047286427274796071443052359715252466514810713118448046398978245165730555429931408275069184365399113837927779306816353214281892313792541142695024690276577714531457881829578914523457842009141591461428624474070736546466256408815381366340108079965198614238788322507642048310887429689969743798353740406645681443628537818958806643019334285785093974817125432407139192539965835826920880679800894598404690949426366352110157545033348894441973291558306919713323477467351618340089614881673876817616602479379001984782972832256882457834887692104194921880932094877495206667775259041222065041586183399990165089176944189390280667192185462645701898268271169655128406182462085465872011175607686267230272605719198729007186989856161540986960262657112043307391363685914855645629790618755690669549734348506170914453397944691679227076013078056599888303058112169863256207376160177102705444208268197582870366638240644729221401332256538048887808808154916494414735305482274307727777445743518990497509666064737514166691328253044461566415308612764333000329657128926669236702408628216652657296051342092426758977705192910611214464252139707693336436778641838478107187802964807948192955965959311111785393367907646536522808480129009430186356105906000495265527259623085405811796218302026546594849922696835081965341501095385108191561767715399103566498978936427942875720821867757930520867373290240360629334118557167738729819026152814193249606953039942350445862877085043917613579901282548515201497291485551971405119875607264959138411908817139497510384594722510172189981489375686486225059031223685006345185848547586084153635540795834435386242297498955710890064143842213377286855953477583854174460869921957456212302281643474395702495223170178860944823214136108859498899145198498272050362615669058787928281015494446621085568171227089744647029444561408145007559149941917846888435018853466639708384043585458609484842671349486368820502216655877900375195782160653155377450337324149579203684248568562239712796110464168623399804062890041326152563486069883041159530052926408881046077941044766319120168080523859636835631358859032966419708045877693818761172715232375660017051573325958065782631366072176798656558333519459369923654277458111214569021858204040482819422931522948139945429777013791706956643770879976863856895374623989536225348750295896671426635240822759263253586137969072781490223078691927052258862825495720248185662947912948334904345463342383442031339945135399960703290611044234479868707391623011952647365459931817981783554968357120478491660326700658715490823054045516433395021159485457891035733037018629904997087516013600034330334431975703016730300734877526323979492618038313262687935461259686042286060460759250448515814203426226045164424034668597168590931619198327413896607932464105060198043434997386187085830901137216502488144862556028639758911112133299323369624445539013596024042141636375076110255522951397181870668600954572024436225146227683228082796475046139615204630201890268320038178361872125512822248482884919072638399326291389173115884033979864164781203255604661779803113519152834639903880259569688920523571207033143364682164139228967744444284788758200827614818426428650454788553845499859014091787687454063013467485697374588287312046311337576297129077584886334325807418463996641311864496250548420940581953784297314354395042758650168738793074068527855406463922585016625261256816656983963868896124598178416775533235167608521618679127217268781393214276166492614898438650250175494618313565191109628558455547736760409608889844141847619600165719379979876779203794482178071866367726247832664610910530908506264242036525256639479972499584095227134477600158161610256186141663429942576619130535919952775891366388893559021716205337718030936777535843079575713712038865722726380174757772840936681834122608358450784394345628750267215467083381922208243958892242644326462650372959830997954322573730947353525569985768186020038213379612426772867654163912828391198121275608834687786614509947134872401704468918278272701364194150387850382574220142913257084649504044626029354331498764222738164726558713362907570535422477620311716226688982422501578147254631302497464390106365670373389967592888449150059594300540225119140785217169112450600153331246741728644577661046452464307086174384357857439348021278967300420799302653805627481825599282756782884973963169547390866838907618413906383719058216974456090742089325483047028726549105747339097235874353133891589948364399323046887715135673966017599594445812258305014356275374080741425718547811773426785761339969764091414431754192659271041161913730031705106980722649567944070175271132898414759279764049926300904069194166298909280432480544804827706023296880372695472108120483672373191240199175138360545586819088875975685251152724006356013686392668023377933151351362745543937965129081643916032584179506172807594904037759513730170906875193978695169409104073011198340975882691782100751202604704630989228272969454525325779547491040762726189670776744789984008421369030818419387898694644509769197766178202424692838356593972306372303100547703348237038669125714464688969118781808224001785515529420396199619984948732816474592784332049109806985759560669959437748981450174009534486003949201594904306907923146846327598918008714124949154142395837337405180908543737552202464000475350520595217767164345645481565684559450306063657051982832666851991776785017915501541904770143469468898869383184564720058736590162137035860254865152358171553368233533392419119115656581304857771520941535327078645175675867534007847441575313094580753731601840831444232137665595301889189294166932083043119086831947539240464995627965645495626056364877626343548430382131278367275941326241666395959868001065544308953580063740339382759139199496074873785047283224994404774811866219545749813152300359467826280260819412969077032220040563069225711713029788090179075542643208585807081433446308410732031934104770849747083029055541000905171708051355947407511414517742229468330491173384773607735216694542499870221899974961141464277262535469407378221303191027958254587826728522510240105185425521475913379900853473238590678622459730646208997007192062712733783191225635943438691990289619508274955268545611211974948573170225428727964427811578404610522385536004524106804818810781949118459543109820016204173331539975370633206158477865123937685357580638338597061676906391461161565279739366449200450840403988095828120565079308362367188603433508371882863490365821466431230416343045206034525287285186432907394905337133585967951696219298330223230764594293548884577576714688070443323975805459427332274292456287455993160985201829007090940174387643661953670920892387900733845467602231093343605488410474999440570608441726479755526535467421894482984601710791274553802545651028056122703210781974686821037288672807963498331235317430103914172471322251765777638459442615032465074150169320019914375222591790826339118088269631750657850849163358206977094198285836607512342640079390532025696391388378101936116643032721364302434873932382051012646093523522060209393974519101202919508076975007709104141205323749092534571921714300043819786060406913672347139349001092668064508112323917158613382257082000488130726431526344101313600526384881577345261660953017286168804306589481259411855854004483264146261586147021620766986764782052375389502751876760004159203083469532363804445051514186145159491769680415460964799648822733746188393737352138244498059759469539063691178573985704366415289307885713083681019679730909718991680957137815934664009432422154456958011316247548180400415608789277606918008755919517170986376390436832078825674980669903567742757718309415423562819038748397983271285903016984717869596684400592887181358935627761712937178686146832671904327078108211866381302506047539395979928795876523432830274335190137534124007621843508175979151416347839859668485952305668591730372429844763629349576487741488534776947621824235440961245532736412730505790951556224295158215224310198490153566952232630543394079169906055569736213677099640918974585028692605719383506953332960276772639303713198644846388674041241368230150918476160001373220340894368874044213161657622123054674989062510298712445794738450300272171540911828924602315065310737077345020757957399619320637255632161882727709302908108442587695229403042198111034622964719187370576272417493320093534836307469170051539180072273280971284249754487093244116805919542631928580212893493070579346752977474500349015752666277463108221398329437530368680778746932238081006973034740740281256340968489614045413577030859342979378357175218283452560692741295130982332605739001529586511009137879011252966094367240736846806110220435038806824937992783506103207606273668506575466074649729390766497325395236011707561267534089300974353572696440288806902409591067108156471204212394598337830431750910879702264578625691630379428137625554001083535553091276992571392761204094437341682090187136774997086236758655425081832582657663529772712636122699759339824751496717464476594824822345877851370493509266112424640433752659368963851913915893793476320621949502280437186073101732256300429310618603347203069818775268783334436228017969719368672382949459201492720233664447513708684367820692657932710169657053186055298869690167268413620436051642189822365384463782602968765941822953756343942260932253306480792843404276363154577271153392270220410520320764487646021387244372506971824807683823134096396277092424247518843044340694153177086239898948404367185507080443624567954289966412556702095037822941152727504825045952807371188047106387839531401532043598714785693445251061376438162014680303471320905967035389441107931120362067669963881658930033816683772959386554152893289073106698796181718538835820457805108277540219692756793775040509314831434845531351336749367526806869260718504379437924204036654274349577897523804675115438736382666897174597629222331422986838912870612973656437420066188685801122424793924451376810287568492459811590199117463701530957947902601292065991775917678267394583596334198319236724416303885194271725713508077064095838757648772777001930674718839373261401276792737065088195159639648021488259826494877188715430993028564581247006074235219072829142513649984934061953923657100507547909457203288259558447877190503875894590530894123208919219025388967854664251099265978460596640701559386018280217035052071323448345571507902691210437536139869107947405135883991830675702454049255086934206764224361595870441704810126656097856417104160905799908947379328519951097577349144675758706883088613720026738746684953857193924960975386064142687850277646516986734829106173352680328294874537657440111888030098065580103505979094038040477681876118394464175445499934557923695232004039679373820546891792532092641897404037096691609292673726053316100194440832924151103363793567504024484757557133461729676648486508352226339567157501596237802451174666016394391876891382426905783422267024174682277679524373818453181942959044725357353083234283838922261517056248411609097696567756092574578176117904530229747878616843413881319939736037545247516908341084070690379154642342659496916037054312783677292645275391285892731448548928913297620617620521063843694827655104472068753487967339761198284533591523704632064249554525247232847660372315245168678650063430390791696297070292810027296588651819234551276480510578992434254848982136746603416274780191469789088072692852251464277560077632249842461569347537178572293688031852166935870488871355351314385439943224546852206942515253278763390467193737114243479215398862422223869104069441486824324567443149791401014459503283223411599388553215371900547363072584194993491245993244498718426571989359292305320499463162897338999670850057279971602435455424749421785865358697557682862646448861673482964259385263382754184801418288139838216842220550966061947598269063860920980236644266441560509343907193756942993927112185350199483618939490047041080430546689747060350387052870639832634930405684105418660771037516698994596771300777090104980815343038208244634326790797512799540917518888901944747764291276848001779792626210141472422008521183853301848650047761627235493455760689318931122377083322734462353149824795686322837779906385345514850171950420826739945490112594874689860477392747092339714977435509430635490803647928608185128675656073727992304087118968296583388564275461810328241355242700697675608361363352776629361990350394555252690232097064415434207359792300217165566491580921666115752857002549106386304521650842414778381035567791677727313118759904758247950612071722979474342417558341623885969182358694985000160895141307547331406303582277725330670895796430194040240932779581342115120963693788137146770608735438212738091590371658420362827582078457514931755782768941460456815690365140367179410383396467404583801025785527113703439433265354300640547662817232026142826352438938306865926500879355621232473569563717507335755531694209154755803412010929495169172308403443642951520740374761346924359447521554742632893074163216711327437467845872243033419220711228895056557382069214232428101445487344358368425877049526938119051771809465817708309776341541057367074095627044746484605978319136366373045694507627296872051449612177952877878443200044116427512213044071271496734250214015930295159078861400497567559528949798295284544662163470458629847904977998471053602059592216941598913794108128778050625771392192044056000348074447781106512061874719278825106779689068194533360784235721805366074364427466527901270743632913550109312251701448683126168600043853116445174133111419256189902495527870486078711848689208087030621582289175967675231591859262504414851314855417402338304577928046008500731534882000163316628655553235626187756111884200874923206850918590192180875497911995633195235953513297024063543421969821362010874880492212188271162968175685721775147267197244294186166161694671544409167898040472071943990543216551752218791409035479670670294628328212876328095909905076850825908922201836128926049965422330300729379545568184640026894705833252679194557171866187530620974866688846687531628394198081824670733919444212209907426594236524595941251885492770073182510591531426519612050357555747331543798862740075383262819888741970237537704342031561094937231897025790479267347538399627251220443172817368321861274144687267045328637615681306093641722322435934189399755550099356310924191810645951546319179665450139148419941207977867530161708418460382885215031492258202344658452903869226197759404185549223471740221697674901202330751273807065718724667745598606498868695295099304585520835667305032684957589449823069491152407453490030140982986569073993735049386647896697689951326063736701147649828810380901836285890323534139606507099819744466298732581521125026160073977492229619198443136088737461855558233557802265104860330752389610291285693693125964560711621429660048729825339462101117991995610218096825956274607305770458381189437276335986769762858398365763570763693197897213227551015337028640873730556690118803748207218995016257116090407743793230416549302269992824877499684515312560316620104060135077652159296056912486567364268541500830202614925479371061799052390458582709790296051284682086697641013946022431236903030784723317782280130531887979172462106464824779719432095187788917494272589549089528120333150239718934820150768117956520444164939994395570293370134666267887578206850068914364787411131535464759355030844457082383011866318368735811854080004560480471600858237539255319382907835282774926779560559799723019811584232239318554453720262394588528454611749368273715183085317301929700867808902677572814169138670380046479697463609333446889109240030139904085623843553699544748115282459964811209987474563514519980176744092826356271555819508848894152509825702344630932413184298318796488238698023520284587765921715256509502672326632974307531503059300292750154939481367658767082690405605111176585423448181728040417618179902299239193589397647979821218844994895000254550866983565635688282983260969317370563891735899589008416298067742306193954234186618436681346346159423793457934964660619158965650052541966864498795084689773003674170040025503228647458836132866615449243485696100289214121121353092274271130478196587429156306868713588755112923689795431426934239010925838254351198835123749587071338161916022350707025468283133266293936003926719007581614053548052661506330983279125046720890487647106729205106969723848761837547046945069960608126967485821514758133572604335006748526592459930095635474350127260656768364323863890368785690881457970910948336910269828708870717128152341442512779207062509905019514076120235801556826724699630349521013425890460498008133519626300296741569014753366585416322227713778636163507416344905508881701366975523818555198163245554294559794676547978306116499797741854273044094097212917343440474289101015310832716603375202202717830290079276530016253693485802865515890327466051059379255351452150044703041821022769090611564341103318834715995576267441546290053111299318594621604132608583150974206647282558360689946024068694702150290267194031020898223020228440537882703009283341180253964941627864875748307648144937830163639733255033415745174504366574340561858354400341095826887286326311669136978665471668823620930086840620410873124509624611509216098980330375899434273080407496298505468600191857978737929023567941681302595841197893167959762173702338881641072161368703358279793109599473356068414950908055522273946200582856993333359099199756808322696692379183288786140349784290615302245183267586558094167850465153324393168203845755391369831277964088266190722566614691291501745145449640979112133395948435331301821981396571983828826749622537881339470187760553958226050061685197880376606093700805870740401482363907315470584327419296560341185937579947231194347039187885395360441021350827080450988158200103320928212222548219330742960730620886128967706736183841767998498202196073074330852562775979722341963446280323994695154092983520331247785209894962777407381445419303776116388093247387407732450524217997985164752744720080817946617975344801914831421182324209829214560036159458049958972640199796928977052290386543488477051172549340841186480568457701074398170602072350861497586520270535420484858195300767382639679088808686782025111301480789562637934485758315514749644812089038291966143759396282917898517015383514178006470816842554613877448115201126579424675661726902559806551029215918564760858040935174191903529923224125383749881757787451176801983190909713414756720475644686354127073491492420408947554498007601200658383443504640646334730690451031404348768641307473558466283468210564165796333103867749309395657307233141364849739054759021747753025116893720636815251838661340637645248359567425348925426720379462622269908194676325467988479900748020642829296315114140949117820093724244383013780667754168647614341783053569570134212980293253461020726706383852200414438354554063800615385699926404242872749557039386116582581229839781788205459805114770814157112716975070100666700385338748020485329929377417986115081302676758361022811484187656967357914489208351491237591680147692845287204327407732866431521666732877714112681838174187066097074412775692011760370202068356210834485942661365487911496435902185126534755773354662026371117953833566489420019175920499725542113709683733541009440032670093683377544442744096772259539417493380042157251058180090253400697322177435715458509371810455182255509533580506469336040582692363018053304681082445657917469635450520773047785138979044901259185491597199162231778338373963490883260563697222496015748280728230386564040466531353663929481263969251419269272977779503408047810883566342789711149654337091591423929706586411807102844612035521770859107812975756622497680971680093200960276106345548917081526231941563749402648959670877676147808740148316153296426508554648430742204375253056242509095092765920786455707063094049067370939458211062154051930715652969544641002550545528752027814923345286219597093401804326851840029575087626252404632280944924358664948577541563057765317295265317288797463869713722700002113185530388489546439790883796214885574550519017796440980104884595269796970556957515340554905521780775395192677513144754936253206322845224294602233227725033082565068486332959780330962805047846960669897129981063445889081347193204726597595259755112703995546699359444944736980527266834145710059721968719704039936438580365806821763106722811674351432459362837291884024124313217349490474582004503300544256336614106793802776028127996152259873909517525638829888791677076676034781902428668522683123501130148871801313829618692493267797496800437871763810363454830415397778617201955128778828493746886850422937287657498817916980138034629579121416489994345812616940175544568540958656677736028582722135636088343286632881228269383318188921434417671966924424061913274356621940126554840369196591414121421325750376184283376276550049568740537746264336826842646401173013754552486427139083752921943111288243412717169225731717799402984676057524037283986495394088286885714661354696995694393757626635263205647116202923830231213505384931994450066540820579641715830280599710122296213905472453785737629787564298851921796299897515021515741716201533409562007978750252054871061358416319278802571279566020312367983861660165513469901983199500512634501355053385556083550656119880501919501350903940406628330539184159493214728161872204076745790511925368122448519931115483355800633682536341191012053828579193035762170717701264412969838124720806354647189993807692712726463696232266543472553053186719100333852069572319219439288107105712612982574714747921729329059874394409706282222862054563764015559786366040266769264780698161712428186097446435819150990872853157886877900907652782230549055118207028756139364301553334442568935077488529109811208722407340406524000848395328642156095926802277076077023419183031636255231719060283975447869630641563703703523169346992009782417148733925092714522127363992657821715541398005381502485714772055334803408274819456297949973185701307640767755611984593909453095058205141299999321081528161898928096352249999643448411199923363474514459441915047445093587011819854077641185032517253252509168515903265089249236966169407873810593186831755988777041401669028028148907836841603626526720079927060294889000345402485212904032544204235068412730511336121025681471657301735533092330468006929273349083611790202058765037351047197021103213493261466996590733313685085045838940898351809637933140886943157225662623959175302682154283447129292723202150628493523912197235140353968971411840512637283400320775054710282080726426065432138563889334430275091467020154041440473500198008027080646154106871937508810880624737389250038078431667053688140293541823168532481045773605171245738757047192172066410827936067619566901813514285989982281140952847280063883765874862842477563954280520822147837125660954473633295356453378011610304080802379579246097418449454659707784470123798683544890061175323536810815967251120747285493842438204683469578770693508624130208503289455425649879782171088418675310939349923789350308243529644831412625892209067096432259712705046111930353528799394428551884829585940383170777308180940537169508480477976899572449757869652086737759618197381565460917572908061759448031043112856558003141949094788364764174751536288914772203560652516323171712566722249132045152197036637046698691897449494809547625176685428604891279929595828383847022291514730004201633944246393439705432660529394274871530810055691370920368247123683360418856278423480548576783275438659854809240022638756969079596812033841627653694695866215934599719347770118103531761665554701681257189796984152397253457066486799725370163155820436348950803980646339805786112764681403147122705425946676602683472209530910391980213615205287094159206795256385346934612802991850417590362573075448034568469515040673314726880587689849843069336110000847924066738166870899029730446604653168212159911672542239192039784963510341984738017554783887665886509960321018861499268076054507870673496704385030183340292576019493342749333268662682397695111512318946855273710133960324952116969954494044935014214618540635348278635120766068157443811187283823345547401252762005470125539495247724428084308076228128546548248995286956547610135350599384785439163125777101565874052114747132264910258960859636343063473352614216662148285393991180219313247890641766622734645778931881110661385052522435959616304513940984470279748063749867185919419266388928326434953041501898689690440638180170009699905085490557520697635301159783437993452637470345956877731280709182071291352723311437406539527521956473556626804740893197897531998052049848533134480254739407301682930074854245690152408141967618121674451737216068422957542057353519846021736565895971936379760797323242533395717662994394447441947325645500289231310643244122632612168392483259307829650718020546736966503268624337859906122329976768064452199061710792246314978903548251708969388885606652969256530436123579248931800258017712247979941870781927629255810707749713043471939389981853073224100765830845559446264198190631210851882560242920296621838518299139150629648476980580513625680557738838174177196845707287525957615912944038305924772284996178138893005961950215840515145538943717699031036053002377309658977127481511799193651954277214198428451436456458405590595653011350607153121725390665546186019609458152362459992055557038343610278131000974986814057623148292785324394634021205163482265181232637076899605844521488735086742998345720883863456034096982166220375920355511772547894934302063586657855866061040311843026483291167989430382899522333933673185125706086787260102091057837388985422223391951942441788851187028370262069759777712429176989076892498503251609827003008509831555136701625448025984968330117791549398572999009845867472109609063536611904968930713892221129503193454078670136459997121678814632799719384341454635965163801531078900147390400317438490183255131039638058606345285953635492143026342565072846092109139478958463642324255102409841933638145144800784919611850114756306941808017557462441983600334913453849468225031308727202158867376428188272415927165601982151212976076093710737934616626446390943146352053750740153465897432397371173683545876953124829353416262485813432818816863909810296429305218455415315300899043804288027253036104854956088480419840415860861332273597912723323961872495122699109622313509697195711920768579284464092613361016059605146863946337734267494583960324399103766177415982147564841808331301163418078777335563149349268819017587145685045216722952086048013260915622451059304418773731791056482656059445497096879228163794485140627169712938146257196599006593164580520115463680152055780385995467658562392889523554873569448045625837853012537490711545776183591779067760684934143483351377618644329324533843415922108427914756738037518561194635256346998006946832045006802269361558477805236236151683932672821351147593648050723394191727358085197940303664210170067721297038833448385287173717860225209960247245507973418448698429261046162111172514665965345921427481492666054230627676784339154859200148696517611169397471522579404235674385385640851928002315638210940177879985805722588889431849443366595014266635040062911879449643373148089969498421585170155547553928162267923120545491516168074658792052207665387629511507532903685502275456089345228172510295972334033137237528032763101099284302774412578074196661047905123355172505029723047949589189749771693178687129255344791738026252210101909650502334646189937378690617742350816263482492000134418158583656647533612534833775708883705860798464735979091987225600025360564853872295957929419310373495456137251998490612548600635385316279954498520166948445455197870024332979600972352773225349713651632674010138530159749708913478113661967262273985796829276821026520766483948601104068684281751633302107315949230297525298551262169744621079956173443763955836600859215906956098786111217821007207367674162330607051240465377984695660220339164107084415561583410993458522805556875148412338599997358640006701604036703576407983438083354753139602232338654256777457165297488201000471337896373669700105896720976201627573453615780932445015835761529618292852890512726736892752088707029641375475471331862591226823724321953950375496016239541322106494574030340936236217786671563613419528433096023815968580802286068577639874925879359121078579343406934977375434992004200036465631081396950422453141945588963196345258016569581054077833934750638556722460650897007600051022975886022492968060139713720128113671558356196301370416669655417082449802563786518731323734541372939760800188627751871705820967852136153996606938991086700598972931852820317826903445215691781481249200851853505700826872033871084334966669831983544148410927676604055273891286158007969762711679516761966339823359906766897995205781964107638414750447783699167185516201657303004192728342818409779108470134289742211771270849265170278411518899735048771738065176044746187863805757927877253174106913857964935188711165210958283225111846701962933907347659601557724691154102809518570862661381222622613992502766791980097497743680136650195647928343147169231803041155236885939948084774838024851857844376611577513321307690573029213338649892618859864100411627269729591135348284243249182466908433634585375440045413647936530928307223488709831440123405303167509110961600591495102352185951052331065308849758627926480701750630480720989672554376716410631313330334865213092120518321573621170436853087023331139765174879484949326801420144299760239527186637709929088007947028339207333276378801213002181714791965657954200386782813818376907565375188249622053563275289655763176329772525444965861856729738044408313402598314933900146782818335556532034760764666612379179592819964558396271030258749191243016870320530168577705205599939598115912096844037146460901124787050410979888588308799825167315095375911089891723258244939565248867893521825249542035578016374852818765060392242185231382786145745785355362897743055038702113510586517823141737572601337207793445948104870310196458794347233383374429988900569520664058480274926086295793064652843278239916901012485750364177485762762397832931779348264085797317185840271155917494323960009080974399945880424862367042726813126743616178742197911162769903840650126084132222420529952576132635573056662117411108197430701542296718800181475449109270118803117191429043608501756185502549935092848993192137622324934213730082750155498672135747550066394007218404432781970595146291611054683904924004874602510465349674293067701979230965832116447082174887722799460238208894629671907401656847238494276534231526788647309911092999795613382056279059536523666328635385284561056075661538400021360213501051580847249670982043108990277744489696621433385552940073853119412037658834593473062634454574172741793894411865036480337318866432144535413557122671010804890683406889421640517442835067424132470031058283740111341516234962912290381467487003244121921055001660316645768980427063704319848592952739592208528843679020131189630624742843810079831699069385292519242132881673334460494299833979880729452992787691307898421452474743843600110179358289623219838586767356123745719003284804534249026483374772438444525513385594078335365896853521636437537140880107674976423791063359217234154224901778740438676897768726787207825317839119566621882728601751781851327763717839765649877526400232010157557264747098680203935715652590781814194691540927859125332334413162995098771518479741988759305289343120584405431546597312918507059251593219759343524047026449835364039186589040749086857004191997062213975444797255688682411137224610174468063339035727220572545311831661889849905112290157956788120796669288303308414474305888922455185751032574678708323689901651739246666311223192096320145190423871436460974607486763830352587256407879501122927147305199973358674027611513213579682522857899536628413945075285335837671747460473690632633335405610612179134787948020457529724827813020324911311409604607775816495137931032807100189514071954350354263061493717269628179164000275181009007293552768515907253779482979005450686092356383146713882288739187191079924328558050201179593924253192321391708911800527581164325219028972838198498006276278892056011246111348704104075936296119031102524083424787110884482553810391582790978854668435190380037287316358315618009500653817297972272868291926457093091563342976671944399625033361134060676517456519862149673567781388179539734547672325035833948025566951273761463354717697311053437774212705477408074429240795561860717975208266885152961445627003205675701465393508860916290970061538899341898248050352051620786934985061950898634619358950723976062479247319318939130160025092033891216723897304088680231576387867578197272010799896649934925508313402732399196201617160382630118024351328518176611580384785796788522032261708290501713162577568848402378952728031750770589657763800580794816003474986264733659716737280644385567570848034903489879370202125214327370296175844905754322342573968111948010707162917015692847463532225839978048959029506593701348653076907518030644167875054222825345657960016642916428400595567661634417770327509642613503223427268926077212914385377573295522216736998683002750910458724312574881126742023700817985007766900758130725043670157589882678002393087477433042770935339255007221122853197849456611662989748828988835080234577453156665582787451734121231670319661499165307724783709148848706854506213177098507507193346671254825409763014483475973915600483607642154891838901890718544414170449560929574169056267650040018980811915528837858127656484140369194538651589859905149439013719012012438555098060162651553442755690449768630941874094773456698055630316725472970504999839696267909963661756341086350680714978037948636369473138301883109926385583483399184385934190215515681202410510360395057088252503726235999602241736594265790179015095212084461893940098191347630879309840303035097097648962053265122015336317306040607724380964656508650200514030148892016637276572429242334922259035824774837378015613403348088474175465511214668004652484202219919780025295548867503732160971287599743422432644493355867140422539869759045304665267132149750696515849933630380477269168038166091385447388780130075183015529917018753205974677288435432657315158559374629467248014338135980584767898423428501127632942675211170991158032175523102437259281733693787994527854982721521450621840408571109089606476016129805610867234277473875467870777709362327447272919913723443942810348169276554563767040414873171027313097551406235486638786265500667861680264420217910385741441910480594736625149323122442876827839884461005314792702175454022972537650084703163447526699499122252046253577334738954775659758246055369554190468805983572725412432546672021923348710071488168353064527565223022858655264827636900995768673370847601021212268110055870220217743310996307846547035550052572679285820609540936701938580367177171479916726202973256047941248884153565980851630037580198990784053155507027885896504315676887236412867483806437589487702088165056178417332650719305522599929642842283009459719991377878054100363323619462240718772169862809020631880498118164466457796099231982758247961760070189526307186831010823213218632965855563835114712264804988640749239440058657622224492993155024909377365104718938573917373389357758761255530185739094304909356553260248826128156156504412064089419673051746136214796646653630812563422553816582284106647831873142873948479683480496495189799755733273943659660978345075368538390797523356988169858771798250305100734243511809829983215909680090228250400136072459218670787211179211110236591410067666987252282978761858444816380960795865403443441270493669678605074005055128014142083906147970238480361044553385995540091014957861181026233738483329560199199404670984581329924579054650353943834321369201190907391999836147109052343706159053221294170951950096290923631344981199679523979747606603711149211158804383694865008707161915158249279340215600993001351214652659679075562088862392166459766523483865878950525770162490244071298445305704757365188520142088406826382522045438825582023281985355968618099880560014489010752514471810144580757195581211005646092810412377785089062703548354873004301479318009207595992456880093322423874296167834434425858324955260048313618733777344857989086707205784048250655321646979622580173733805334386056005877861111750163238514347134679951728744714029570243484314950150367694311739186289492416772777197419134587627201238092669174577278065609062166897541328251886852940251817362970363007112666969084270249841449136861965781248631657106137749281149345599728931632007947866513262212781988301220964190473085797980591958337070309915026759622258400249342882169423193130603250841887383191320846659876884274484670837713005851579197968199766541020497798862364854199444063163452161302133281258364617870300299086321777864263687598563412274081552271737406757936981205738500551257416637872659930759392232925328541711936701788917616685826708849278788611618996895368440809552541929118243162224446506138535048163092850878953167451568898473657567502770649668046095873331776499483328170474108952009319842852367549985805743860228619373017428548356265628634435079008216689284303577618277777849721872428926845415522156899269338766782437530194104441707197809505030830023615866237153604884916863286509889244471657464134108341833583292234173781581531313005619943157416198545227677368182872282547705866603752471122804248431759743199953532622387112751668573668331190693058635322190518897153215785258142545545828222292229294154423680736060468177080532306128217746233765124818954365174829551062184991088243829471156563360281178633751471544477236459516069459300626379265359551320882469226672828148703582922409558823284258954388419742058987091681688250746117158635144588700626985399154809443231247199056324031099343048721672630380726250887714499028028727644851963255178493446401742955957918453262792656887081347368141587298580706909061909971104575288815695386090995940090777931876381333845340652318968061880655910436006091270317268233255523935588201326268557603455873355575716962831610860832094509916486266760325339221985005581791587454838800026557802433450842819726135143473473107763902140203103345454556911439723031275852048307523339853332258633866613246875765420578744930008944256164330873946949923148525890070059643235699986626759275575389959256729263575557512657419102281575340631664841168488520184468967421760092039119591252606197688476535755542384285368391846847325957978255408729877154438410643945798662444053596566669776049007094592690113197178550471605004507279609358096831096058282598627435802150350856331991876988389908284964641404493938759324473259837861800970554719771794905560828698295569990944842115009661105042651363305485536855289145205526318477203146939923673395027434567338947658140282368157251555022035051426155077625268433656700801551580782806542772212830746204888677268924540314564584629314319643938032341948891268944083739352684659352820178278930446991796186337265280460943755468224153480499557717486162295512594422234086650856831015760730945776269327434911444742672835634639842092021148040706689733556569795991847701607281568967225248692770185065118456981438482627658050064706361284915445880132673220006417128105577608298500410100008395713877729038088912485969697348440981600109621630950758521949776072123517535347919567110128909384031218942287411021848678809545569283266454264998328769634372848132660477212074821956513848535994107856101976234319851185318455139422794963235685907125692517599601827648577169128992428366114138114294241143402948886732129171770991891298733070383442932959592220584589388315313463771059368002040760123519061723128833347547425506478895810146254837373478282440615301885616960453892145331634987437621942791539615973344897041924821307523579763469401450769678309547579637059542614210683483760861815501125054668665283007897902971208586327653821552188935902765921908467263856161515925454808900054046623074858150536687281216043975970125518371072516632446367416787076229058974489553311632372513933268038865347628522224201359288061207538553989039960797956614466693550748818991474407752373453016039979045756064904478314416414235502647011978303434885842252840943274908005869632825864781519922786170341284529984978158029308847314153237597090526215068880910501916178237997630190880759469203212153742046844374006997947239531816811676366546229082933948714450343099381647290564795684921254957121641213397141187502454598372242110468306588178354366516915256687060175736299055383650679441774769072149180118453009292899574995048981138014282324652186815604538972808698794876630934927824878946243707883873762077005556588934103843147727282025674482956487918007367528796361330854845924275452867832017682290123487792311496156431820690462006827180145630310062910360651954414433368288105016787903772841826759485246859503036626814946232706117090700818863883982736566584464720355810347919409062461475987117584018948508028497717058273138303749221619978017181507869904349631763817869260370317836488266423222171524154044801470172078088537571391466479812530207278004539373979448075086512193903670809615951521592532844798913512810446402884737935382547774070074580481401624979722655859670514972577486606758947977882218323489585090711644073740623550793662954617558191392421348753403757801576303258997389134150229573305038633819996937107787801463174309118400909778338474092303984877308293022981124341983699536318667076666369934520476953832466864786532522141641164752865628995189088605201540207294443436467659307163125354798687405887763921841706422258388090993641317540554427030334863609469942974887311728495149268802165075833160425455938686319804269135707013706107276995488987372360865406723828156123064370033401701751123988671857969353597176514994212102506596890706822195502207397961772410073990637079192093923338348385239695035661475478521250726793330968288857450165738884508463097962693118716366670854595347133521647346663904683959323707599330496912842771970134524566885118852743466142187500907454947492942774323984825156342141847806483396017884192888234637766237261186035805100541532874738391650027469587354362854359131658098043760625591351567474385890013513333964994705970026639879979285663472637234816784886164730968366007171975012355317585868354503793161770289520599006031398009369323436713366089740704252786771422059388541891905107599546122937600497136477028207393288042236971765748241665527132897637861010183319655650579722962232726856228259824223419919645013892631565599191677257963433000694274501131866814487334295039771315506116492900750884956994952141963056506470674588744071094764916342662182443771414468358846330698471280152909380953327756044661789576620430350844678240092737582832201814771515937604851647865943219215663776243301850005773064501659077725642823276787504521614649126163936934618854971261708056689955348643423716850043404323569601407660960711653879609366523120504820830770823567667703464905241683900070092694487023564458970103506511411003408605951352575347300749919584501129260268002833483016079758285213716805385332187997161032026539394092292006372539293697369695262396376237640051818020543555619078059822397312778137534166593605983421255930787223210573094334454171549906266530816988468519781054016008234611115691536614843783787626463254206113004881756559527806262566997470387758310880455580416853705521917738822447631648969370347952631031120118886120335622619780683410544827486271544862409488438817007717069118227811764860780471797235691362139801823859693624990982077060172379195423976081046341461132129404261434612768352751874382624448352987825132365315153201861882320182660723395822623064496695583431421512812588249461209663366379553101113794393775973572484396958052501311689340448058725373560781884106952241865440033643936438800985235392013005623642887316134935129690304452894019619024464147471127207428954662966628415196558115731762479041923737999724871162441823164399928675181679677427631985210794583608457918824753365967952134181256425704141767768037194681909850994949780800383899339659393338494608241511767511627562888598143647331788477909655003156761362898313751834802341798341312635600928123828656789694108654370258380399900323432013036637410213800194789523083114637383186651508866372993396607097817836347095668592561617346438591841057129816850249762310737712687728154659629132013088787619802705909456010271121603341232907882346885383239393938762796032309545884029463362939937623381913789971749856368655861904785096066235682851252922180060798853808970947562990801565453498790104923777861912932446830865373356586068573550278865453809564933843947562025566976660707002667994158569241650403827467814194457866890882764215596269085915128057042237621819558854027303158832473780421572471766344303815778939924708052757943183887911454583859163605557223525400131282239442525937383629249650539881776018682108239748179698441047091438181485768295447899035995923950760412720330952640568362345279499798684962234333476422880851215952651781738939702540943490887735954521311967106396123410571294630000109412389088404308683334307380860269823307165731026110265201331823285231693356961945001834271057027755519272574582861990702112989650724961789664913545141076301291020750008337950195530922304907268776928078099767450506942850113829841682852243189144916830794103057739417977710989737836858996823470911153624281843878073560920493945913017674641924447422382518546098725068525125178295897589925273197182172911142417172309765051209569162653292464518757794649917352431406539736410669860407161479201190399984680707951535223797383995652284396219592267119168818179294729890581443480650665437209746873253458455190026973132040615426610930955073476643117688064853410513113621100704229204783332370058586442067777853021685142092956468201910916920700809546541124225633264269059750047369146663645419086637494202055806486678365587950547328472036788042850733268633163138692022849481179385991666760517912468855647037814654966667572387947957066741505994250514685098639860396392382306417372474069611640013790068968259403433236404783784979693111830068768354114791529572300261138021612941800308125085547039882442813325104191294674140085089404362134364806383735421526221705980468848251434371622687900641160719937112713506607213971713060154543229608335144164143869433628515695052898840285993284273236936726105951172300857023716207715304530974751895445288410795357388467205474214820282106831579910444410510744923314165466937160645736655899674036105412773437872248044324632930289175386897463094788075594353973766898022490879228633277676781507757674683416704348019998776029925078809623644323510106366856575416549496840496960477626036760928025269050953648855740498382486804858036516840362753018174506161435783897542006136652650748501921646576240635291488296479769861852133088201283678576766144173457412861378907669558230211799226420521499168652279904990289241412668363030637165252270761384845287857720978001269051224513432639675101889324500368502359168989527497905789181897233296020444238617705469358055318136593577008793202107597031730747761741227207133596752666318172288523516707482146975741359073109786902688107312278559745772405042206509956737345939085422408342815411585476907386326160013914029480246875979428184190810828193734754314315559370172378741436932736537582017281181231209530589340532520183732045933932710057710221511144690340196150843447597880728053329974923811166291328896881429825865768251722188140205982866281371106162726347160029571760892587757976463733394521765129543934550975079817129176780688984796548320492140444080859019166366950441358237211421145007586510623571512056844643943175227638015185908838636151629126339606260525896204373694987484321617955653950138763960137699877481684822674339360941656591264410675928852386616277699334267284582481904425898855412841663336012442493745113613506125451836984026855109394526284413263966750360229011592881209942392486840807932968117552351575891744705316841244724829948777355074164901347218432314741392619736822571024553549783863911207649416344644418033587001451825123567726497967427490181593856363550703727525094134143011352004862876303192612714698700523091926255655059256749842951984930407801694848595858301612439235851939542370756131453907120252133395065646007082343079525502989352385847846650245933361913386301195472929273786610158368147720882470737772148984483586841866071801811497332538036921275409966512424518957194341366376377555912320334265501676248847619959088364373808163708876756312895651107797942190888177790168604901758957144277441495672695034695347141411970954103272738812105475095946531550913295278899165714349173803957406622380413014255094314810377932497074469806838103284517328720324280854700448844744429169722284697592019399415488643086487728917923853295421984620284603079405122477430831906283218630703136541216275769476045789981952728503456098786716528989781737224590514983470400170262032289200758866461546602069591298959222715308420156183811334474566706993133466644235541179186817494230505436507807584550472886183921984156917979354085875611565523859777175260080083164561564361921938436034458526168980231551366146984346424175773112579212804712903016593392627496146650837464833778824017184320791463677047450387181871290055078535579233248195589978611830407923047991759322003138721132231929086489999569306116703594118728419566318273867584702063032301390313475350413290022292413103816618507558699700432446756616727862527667615988480944283530054955466078215396194082384141479968993785494578620531645284740211110167442375317593077240875823106594506418776597031479560640682108746089135084417272027606701570066866937179463612453001564441531204483881201412283817078573326014986200068161381253325507052317883416900011377239137941876709217003008767672431509071472129451587984562590457573118866187782136808746656618720018473238677124652046243471562899413633963310969826527217268988475787756016055001139301983596866172514808602825251898445077995281277617867621664398538801251344384552468686048889825687937078428571156604466266495360719272260148725251594256201197577537398178523837253620319984360635656367227460058558162911303005349565245662460554088701771190586072648018149431112353724012492144500640071342713085120508858977233821923212472244038778967318502372904980051022875504937551207252782324791244382947445635747710043172780494187746212928429905503667421706794750940132559490770924682028044623644958522852200123393035324209751981283972484982604459631486580929782363850334907325307829899889364610820985002280606614254118791737263797782612243803211403156541020095599116943001342277434819654892670586737857823205302373538398619926143769414286506980757473094787740301680184175540225614217422319564779129691329767273988915967403941127922460642118989995972687347413009592990323249045881001733980950602399720961954227635476840656938103617893983689019459680730206323590216751596636209247372717050879700967531491678659155152758172701422399292598420806662714684726559366732001598367374957396908712459556926888644892168792802580281490697777769056770972303243560606929707437971832421543361063056437536496983770159974719620195038701868415294038554326340198046357626005802223334084600409952468642306920448206344378948874577994939180517966286836276805274383481290078694615884431904099193912445087300147017167115841908458161222164835027716817109694846899857678768983088101672134054598544054428625348249022326453029949459465549213802772446340452245469963430850368550888008765773768746644415076771896683304435283211618413638908192678093495455613117661857021034892136270926882402736873221969127541052733113995047562316084828432380039353167661562752189870073727189021448730486840551080606091060386589436961860232761280306805103078140965124630062895286727773178802375228065349503772527921541451623311512829814225496342873400492000958697105867771328893799010375552609309008428084097744840142292234329011244438626288237361451787916602914540657069349553989377212903095261430712808696212181585560801902138356890784706226088453339220963127868818816466941927724119885458771375711211931060114663749415295810185456689571263854204820666468887927759786532848890822814320831100687363691509688640875375939970340907198161456119844067314145917367642597276317938781311148546949359613568498857867908510732606933036736235356028759741269123276045793015057305254308050857996364724548257115560804558599790854057700826861410796636760028110721204913216531670980870027062622900863629592713641342013228915343614000624773347374873713080009146499313055621048933552205541105734282321370069566408765938732861257816415532520810766416581057140647522632488787766714243954576045232081466055519826497083428530607803160273105008324220275722624526229572860011256582969456487664617473537546787786907397670679509271760457690716128790788780124443497985270068429214273016808185031375686169149693074778859563449960563572776262131043697829163594612882869368793078166148521565821589555300973049323117177373164974843331604698104555315216875297521101307040145910793589237575210153585330349271415497655759955715873364673078721853505020949820260771287189047987685312781370949312133701064382754613952092832343633360303391748703447030233658369735452864705307607319527242039917040770046155710298392434035677483090642647946908068901977755715138016749586046821130618505498916469924045805287185641592931104908333623250607650497876302701710209744826510750073485782786329946702061738187038444942530244942446323048594534972968939729551389387302404237577240946378275724593210354663255684148971455961899299407888409118728720321575237753919996569901843845853646402914220803553795319768538433540030243429858398090542426003879320844382876627355177569593336577622546528535209376514220477245146911012720970055231566339353368993293293302967723474065495208138351293439762756167442435018856344755940028016401793815402632636925477887405488122973961352937589220097905007060874257493936258808180948624182412815142171997549505218496184065657340919966114124832110920811020995346313706053296744881503797856730190953093770895599474977891933697420228624568278126964693811419945302597140311933830258305834893530915478907741659294770461925657726989569782943884786668143799491114853110843394649982832163938541005461527113186809541348794094133358351012021876425289625680624568087575212407207572684577339524228013169882914221567808386941870466868100530322681877467989241408973945035510980255167554843937096223683936282167420573324438265992252014868868185167490004245535639427838821997810548909701708604880038685259480030376911337044530473596098084549729855051609401612422504585174999658386736745508412331247386521027582122573508465128036616412420578305242218306017792720412508207153219612222281883592795820442660365639300324445875068050281394931535934925841211556477467351771478841516922198555221052461842548008614281724980034796801840891557789594089210912961912364960993149621418830821915799809138384809274414753114371333679986756546843667960505576075079457302357622349812080847544459157215800365451051234222374662949933430891127004216275615056145006255375825543868709616263364809001094562889231835758419614953523156146075167614970566315034137237817553772100191566535226562175596173559118752443687902524422195868731538333295561674279391660700283433755886515983596966355108337449746053748621477971166734364520712639397618763740233672485184604544579989968724925813075082008127832954210690785131690281065339833246775292438933140505717433587777888638500189583088784737520308768663753256531822005132204930392928415987158170602630188031420799405797587268414260499943816928063885456773643634279687244720664501751975131055544408111980273181209770098207901738939126349203417964948943348840359115767078890408929364901859745590452451880027425465200382295055293450960162897196243387003964521582153039815453191490606960455109060524517467714280465865142482322051309521758153987022972841978099672768921521307179156999368820846075362347874114329251510080171384514851103290907662970767297874855390555726692942868551019716888383378209430030678062119124764057278889068069345566917100452310247115597609752941068654698936351159264749130361540595742602381996613802877974117298145206018170367860667314474165991178099210767224860417114541832452708925326372249767145328520534285036727284651937995845421981634554608863429571957150207021617695274310206439216165174773702329693985295018708344022429550422645850906745172653739359389837223536056239362058814947582300269210460543517807659806249688700892631856108389637928954433834544245683352829679642016143181862892239878554591103248527130029291912258743092089835505040671351345939856541448073137465035621983975998737723109471453510535935487974281790655933664931164410181041226061928952000021144866503082310937458563304594684225782570983621609538420827133883022809994216352253618454540823660367307952142333659854136780657894949530624530767467495705939804539870857580860693798316301599381574239262546247978490966803559044102996955858973284292490808246848472623531338951059252993666520969253772918850299519495736322330132526744662236458720741900137968204377047791527094786464713026002845594692614040065473263630273570146247940203039260984345435873766737227245596031832599264400193530438112980697457040836485136402215100557927227732196347463636736237783025691441875496161227630243832147746224340917452541809039436846478391856656094029632691529762514214178755916553684677521668169234604483012298443935861204710116283514735566056527315878183215861094782349108781869976677980723283074903521081627419149418995398371878445541412792744540050292665746964001274705522458058459905739503832932597255231061900434873276353259262548601305651829639171980853263075830623489728711557763768955629689714884150966037813880294786660161140686113413078319338149897608168398335784011010267186937726204782321856420967241004005467513385493596542077149608173778674860102042795991045799973115851258218038437876470980248213872425907923778736980562804099930732971554986011125020542454975116212993421749266451727631277741926435800849818096137715023356458635140912591453825660882998860957543143298799336019243918069573006702239738948324540112249136343521345649276969976616048788128551662913056989166052785876674026278412597579232072895781394301846888069419390444549571538692781124517477054017532405389132578571332414326286122753517839552294565333742911906686593182827870399022530309907900412330118086172807376804424089669983325557797091904808677209160030804606381280646176881138430711173257829195143608144070808045707184017039368894184717450765707513106254853204175429614891280252462150660936863424161015475690362842951259999071344333076015126674374349429646577029954329803332835522946966257399180958085460908886183799680626010322862739706900437288348648387997436196145902789559262941000663917108857682885318020334866178383697061015840535554412968239654548968895741268698721875518054194089083715594406352956470511426080979047877444756803529449395225364962217292916614785026606674723552066618446570205023293099569404854699903352918777124177203670412687855926560307848760850715020364833122683519314446987084434107736527378821943039830585507850441192913825642458009373850370184258438290946683054319687278386380130564767548517243500029708460251999140724491449418008492786857032388700858759920681630211346944335472504062999703635550638389438820335409544824411477904757762220505518620538436790498433912828316179808630300246957257361511320112296726432933724368540006873861200584214797188318902122973938494576435058629680498447679611035064682786597161127257151849830941350202516150784109244468623741640764424435964868169675077335850277426198478289652492548286502769198252839134051146409391257246235638064281245889611245870685516952088193388878804536093461351425837600467776050146036019130467866119042778913220639949319047617300920576386180987924661525861730708976472151971050277133042477320973093350430433199958052971687546210699541496193085066375623776651704128962355575586885888143404907385927057733891197948444267940258363998775852893845755656187582928654036946442262696575310399997200097120277345629536134546806556709610762234951325231040902923218195515090307589769153989130196961031488173097285543741902010981548003042162619190365716302926724412625327032599896950685074297386841485364016882383557230074954456989949636391208271097823511572926284799002341604703188134825785640644044326497749798943653645740388985036608052251528077296990329016551154861058369819239766628086199878676528043561453430180812166337940066688472168625593402889464463309503791492003178517503766851053298056284620230539830764029494707819648567391277524986650773961568980321463950132056769513662347948415501104564051959541830385726140819559303749292084519682229172649758284412248151277363328246134559099608632244186368184117716865237787264120672548572377048550761219544697519537085616490773388110392993601261865679316750566724750132607560845592163527010271697069296275937220100481561890544568344002085968704771804574780326260355015393449171311339553957060613339965718582689057414132378344464901269433282721331576746756759951510921199864373476590814075840546285199744376597661540797908936464491015970590599758025953673658365244528528339169791400600694342710408300297318527088197196776069131607064864033396026196861437638888718191755256085414555190135617524830643107377599132914532248021866217064313754908263885571353995024985097715980588374358223383641309683754027196522649704328828224498039872068607161133995611022078558623748347341667411622991229689148340193019959601523363752634747869521643361120753840782103686447074936287830263635012372475971619072566745808179150255799659689416128524908285082459916560385725644806714178815572829041538628003759355950798920609928945760280953903324635667553099925557522951493304951687825768150911148722466870508171636070687400101336646009872752844295805691018128046319260858732897831474780705426504066122498708271636264732806880141629160155282132973883182560459150188306237690826663150815701705337022168651750042009483635931001574906550768484675633604110180746944692528907589513529716797508167581393901798070676109266944094030576312670873904061390641460565610574385180143099756559465385519379890101644110337141209283531597719034731125314757191701982308188437120109275878559618728287139366015434463857070159452124979624031865037276210295252507774944131347312894396632853837230073799865311033950789191540312348013833153013935861992629604056435370259075685336324347758099850608457765535822320335294844987937870871765114536207701098272610717743157396502537492291169619087695169109211076772298481169570134129012804041657518948168887054632431078402632826327859744201045087778098112292536215406838112494797003045627923731716852033968073336595430319301778446398108139561200470429443003882029365435376345430222720493540898144097269161703467868020633513118219617666644591146657412042619032628259380956278246732682618012579318874369939718859049641944079405401447981172630752964625269382960768592156604111655264196043447928313838759841319876349874017998548411910911448255602992829084178427652833154964289819227600058359252393745976356087571786148467878651945631112128103490154141984523534772900507582410667141091395788025024849410558090104006472251952894741442208847129746938198749696607438883273581505277264845840045579861463490416977884639795670324352380989419368317761987101287743887057879702576115185738219404197671187083047255248842101978750513433292791395249297755058562526774483220117822664194140862091780935165732480832697498315079903912038960575643449160374039702382958959563273140676433630704821911603990559721396873695496244870495157928734491733511096907049683360752857412998450199140537168414402810453808540460992538779847886269405461211385846147303975764367938718618225305475910491768820253988557061440402507567469240134338308151432510333231333885250060908333195649364342314324583505700427161773314677120547725918399550359763695385302050598818931392208444668394419212139451058233321034967663273172601711908343010721482181928103246392873236256411422411062921742006878407140411501132683851141462153057719585804975134464558715356986758006125890849153682411991464889584946068971552265155374128994527556824595152787640047891292652078614408345789070985691494871055990888260632874416384126102438723407371946048114619740095851110887699717024554394809652987022218137150675800807265589696513491910327243112870020957616759357845902157122498099651551780145079649238454615715348710242257483129917058123600690169717082910338546914625813141114664237053557278921240559402590936491179464622816805544038975111510797874985947212996740621854666945365768838398715302598636872567418323562839912855005143077764338604109255865037857867450955304789624263405651489940084834456011363523465268864102056106429243597453225998684661063282288235230073436255862945091811655617117113134489283614981621404948317144355029920448380201250664082021319389459161485562297214310718417117010473266115314175708480671557511156727002207288397291415505482616954841364745585022044824236423827592702783832635977314696726825573224634326568848531650686388099784228305265267243953160182900397275518302234472504910618137129233203104132602704105948258382034616933764295402234916100763272818321382502203265664971394828111344576552487089891351835336383248877413915181283985182010922916038700659752660716211886355552101031336797061152878857087811636182294641326893395489831472816417295359777721134581883726740901651054304658256604399101850626508135853717645114074643583357216230741588907953249922906899443948059552444501644807860481162723198226005511184943955239666830266450240862595663689189185052076338910571587428620574638079218822297050539579210386624008822302786278466697559648030439315637067479709200183979409606898862473065100937425447346276507610192079206073744792144332111010206300265871170168471391441477240523212997993046513742365257278035584843400500421639359625842292551750722045420598052826928975415222273750724545310170557723915556538710517351062496081740997900638593403625752113874858544577817595903437749839070577755923856360574855454808641274401274003898681090071743966812124544876642418614490162428602327649158901575742929942158347620215172625646982202039584510860544676970433414489491539034019502130969813782239188109508994137468716388418237252479275266857253198871511650587077952017812155141338899921872672050975048086206319305523516032813289115586633365714070830373145195611661130921636185029604141963311768079915597329891069042476520934976242176763346751378536994570691920270197140496234890677001151693031527831866373702287540351200185284107370895620409787658406082197790840482500440914435763720950945743228110209033440133060364075009518677086493127750256113108177224169676722117037924186894105476483670054504558933511634479837960100634957495614529871350713794732639151822070902739362756229731285270235873045677784445525050119832942840050161047294100714461186611913516378831832022124983626551971126400087143919573330324336508585980031967174641647700461373666548459777034657551176376810162458837481931778563230251878900910481223571906249286354459257475691746278891087345574209347315673411954261066249904544161263707156964236143914411904618962978638494125022701496174842748106917338720991822581518349605059684563369865973855347559138357850619684066945192407106186212312264217780664920714442808462613930944981312707958997839226326079200820898634734413294355097820661580693670113871269392137482152199710829141285061617123314332795630697612681325768293629828701385515988320820492467007616729995001795155869814736884341959117550467380020058183176910376371034377828697452003228742955804418266786318241318305503753486854934339139287068467237299365154798272277703247507017431037129968926616197760878689367049092680154587290317218135974002284234874833386290728491989649227126429803177709333919903607256612322440269382912083473575594678979035256267878264896007679738197607154092432451594498071460851822803718361171880160391259165007175480972523794846527236327594296614282845173411446075150082896569964196905878742711054239595623966103219215260267942426395572610893490703610504196419643418930842693243885738699645744527233222719699402927676815212539500585671166586374192636415413816309482956223291764514971231597848239998636439627568785581458921852235780261675801022390968130058771931352058007462246977939313896477479504083988053167753671257135373393907520062163184590449054477745206627981124463915228945974863601258559710657680293181696855609137102410296050212474441474346018990817050457038832275656484600325343896072804221515254228293079305139030418845521599292926678310782512488218657937473914776027169392294029283101974357261537118251208554996723048441242760310301104773937360789804540187882786287082025556727396587320910682050866204899328114435520652547831337383889860073732990528313287410306636841120425668932425668653099359437942241529495413474374480905413738702755512701619624605593533356745243730517902446622233933804755890979366784690283955537103734753622495653736617110696152099407043747819084576123123123297194739761148028394838947852366651550943294816474544350486122386259850797866408482093039824533421787636121268698632333950332972082163247979274977973544390748451317337352688451321593725308620976713049732827371108014334402574621041398030614085676367358600566610489337748615650740026487737831897401766031915263917133680375607453049181994650387928711898745084470156629408920960756234110062298351015367118195291625093084133702205386674747488685394656314865540217960595871528893489730629599135868490755096829428518794077808263705674776356628555901099717012316672620588940601941836082585329922463975525944415446562877035361975845380871062528282374149481709782075494707634659467989459290586957128269373405823105145489814804754201876533564996623943059150764867771950650110478349394664419190125642976239754824431454425892102253021081177728651349765871488031284598996410334232590575393644635727234707091895766179178409379820701264107896445692507959665151684038930028553454502000682087160942540613233847694749401883093159346785218341091403370906885785820590707108424762761684089820099958198077339353638126064530684945759098382008433792357816854335903192928218145467194600672779835008821741585356780296009426095045755923953000345656749892406602127078114512539316097614956310604235729236956024581480710561678030967098014778757896279144167426786417546216263963362613466586722112246544458865577048709442821230558878666919549645937607609303993778899599122671966804112453061565239668386577935741490769310447435648408686650133216979289936207692309755632667020481250729917869312962601389410662499301867142654847982939710861422780828013919265732953328466738787104023200622756730341245511449094906906798701582008710553112238820645297888647438534717057021870402291623289035815293389265988665096082280516467056661049835859627635393294123450407742017242240486789225921582664100399113878599833784224606184177223600884158744104196510110448611875353795976758271600004922147981737407823827846216007839349664233815289236260757677172164898408822885538199690141396319624062294472892177378307343919352144106470498301487476460875195645557749621243395738742897578406550705915845872047181628335590487253306270011976476703688513544516455924830475712832831161097138169004802170095934752335304290212284405206077482275929143252045503297645460290117649473497037473805836460799608376839243761413625627998037360564797928926447547054827649351460322438510512703324724652753514960975135732822733504168072914551304584605958509876982096176224117036764120072980480311507735658130747270908879047918591977201743816125875636232356638763319943013064386782626840686324068052959922388959793795845900133093892637002785653765439195551360242656832613993971916886816325623167068256068384444853310585721940863008754952242498548502141249863370939153112609512232630858602215158570132168141202452556323731811537768760170458998130992776154422739000289956892028768747258582646857988056351377272059794383732125591890533963968043283109979263137308632107154323742140193001802490210351649833842365530079328355625510900808083029716674511665874196399651645628768048647184173282983031849924335874857778265030735773588056781103724586463831588408352081153031714100543207600510451675681965444575626353568124204981069275297234394138208895121047138364308174483796119439458194681611212511911569406865382349714090704924048320688432203755559684061629375743333807642215189615194401566429542701153111253742025465065926228325218680579178662981509980454579093734321655179419642823751280384634319533866456707472739175890555136649591772634158285182689286882965980115781622288407333360810262276232416583652140024177166089984377105604469235488343751148299701272374525519779890039552932222591006851326623912248986548663042425272291325474803912345858789901097437095278819693726085414085897027754734153743388898284752778423134599014756739190157507567510407673619827824646744989612092730539546796920742712883143632743538733284676083772549134560431287304043453528627869488886502993308205627712872706807235008905941145082255644410396809252537765231666750059087624856626612633614405034754283168737874866607222643131243224184416635275583078136921933617819065556553993409974336471400945944993422203876079180941838584635828831906739506595997641991322885623244760468184004180558346149799374840371876453917073615419657376198076267033918435089015208396428416420599099775625080311548768614063326396764512661684438855998566788445871661841337778964540295148552393388099369100616899395280710378443453892656221838626650287890414902781541163948107125270372421287466865121111321748041654068754547788025689824409644527999680576208605456144661258517536191353011082333988970411357046525383502985978860919487282251096608533939432706482499772506294882236593368112567153871716720518089606235135787285127213417887911030231826348592895005645983461792272004216169269053239503368728449112690849755215226729753945309273957068284798810352833097870233452634574030102991420489191458278311569468706679789773857524187277660546052154858183779433017406209955204882013874134745286818894862831288635703575393004629998743572743448946971693334967172607559693188990506975712044972311169542073925703500972483818266769676752203476699349741043957272156428245234687850733469866299131387668682943977552652940619296598117306264797082213130870569734951544106959286459929811438872307265766172939738449059252272174539813821416174203612964269535919875352891988691168860382883127228597364827992394781648046785819445931155227983707245981114860718361713956976908498365612486159612731029277672337716607408103861853582360896921653362651965969976611213842302015184363886913939000667113053688181943368687449284183528498569290325461492785122073561276707871206570563934763991764761794254715608249949993451132555779166199296952262185607692000327888171290717496928770747213474130529355949883205410237560685234048628398303348582458777161354151178380464276225242191557037393510559306120878466313223192300420184769472304022866188276992787705061245477007656542728704336232104321249264402383585579465676634876121223685788018713870492384253312143185666810418014822031051108794039520697033218741241338682467128242882510659830843288654303549962796441772893548652504394463146065815997240761991095765833347537146105311051408662034665233602100674507565537646055449775329434113205323186164494547724766091945247514013381640257444440366854304802303657363415501731352977062988561941800400775344746175708361656259993722971827007580728660131268960802198756750679598032508166006243420226457580150690906901688021479086328533512485058599113834388707644464451079142622087511989843754596064971921286114891521009342698087117703137345761592038559284350369204845875244181663976524661372313316831652237233089769117848302280049685090155456667922669020992294822407446042432285164461454666938498786539211526231530342011516524353989307268880439555473202468280453130013756701409197609408034484942367877571171843058500121302073717493272712772989369347270110742689759288971665638153289817401391070768278916844667937765203887069839847477256593123184591615834279717124481632424870408743937259061149917124798280798753317565656643913986432440980850477045129431116762652889510919085451026650050653160649750940249353471723482300162512558750337091516755291146240547007673504264614732307356248676809578562519237130704937274669200013876061480827930697354429414052400125254462762154372676540660775392246116149266605374050843954129873073637326240686079149013271628721509727089336713279242761232010987253125561546047537074038821234867996758417996135613442808052984043362273872530976523567796524191116846530117670393403126845952420675678706462860171643877532364547444559349652069099021427442132805184209101834350033883703860972014190414779704366275537928376920633524542454552242424850434339517780612113769042998348048834876141959192259075384977793589012081217793371356034556877656613845748149254478456649607402390407564739742042784575137559771567885096756021832465953366614150275769510635098415849417897684560768379733624462644952482967162362532928324012054594057041206522159100382644709238974844045796651017432573782022343034855961629363045949423552543523604392202949616932835615230835035913734785062022352474107697549058570644034153585861618306387454764002337906731977152463911898905921053139926888869444464257096585348293635044989566222130071987343466300739423797974311898335839100244494494449444381614273892106388793886476740506164483696552317436320414395815736105856651716824993453054431603908116753716731858035188117990956771531285436569390493932919934403263048378134951655532911375028236469039149008428801858908201087482794236938678275924667590596255906479935705301538213866489598416240694864042917788334707647544846869429258347821947827632613453205741589333401909844535075337048412966308361944703725540614597403068759782751777154094523897652987408189219090736662104683641274817625800439357358516784667167185244474600952235335052881029970448478271221628470522262536448058117193614854958577845030230982246359142786461477622998817595982777058335558616586743772448136394271854832332390355717237689151683891364836493469024937334616696006188793907550092904785565796146273035464372402604115729647518969152436855936686299373365686941088005895683869615014401710790641250386875918736517864706161579517093571134685164506586515373683771791063034701691106653827200050716883686192268219094510702018564318460737348217539696870941440106413788104188598161347948051582338297220993853159807174313734519637861342954326071699616105742135020604307113286488107273894154202398348693151937281001350859148091247100902121528118421933461206054835469681679160479823155772906237032659264702677906476722685586671005942334763525061684389045072092101046556997418234412645542188169076403223285376935826430176986590864548957953468161747255743275766489936721167857523008596721530517094227636624991633828132795856481380460873347084783384519330458195715272823416796318607492691329607252935341713149914529682243172605238087831773168680413950894805014612827327500341111960533802907915829782036744437626832690129139953097774937797328269465814619380871029270054746934376120402768070177065404706831338012554421785989598686326849710262848135076918965967872851020153223699074032379458122498102305047587512571964860554377334736577970736935804001091739087540019027260891923464010527264011950266858999854228716940447012399534301081870318976602776514026909942871692229289284322665042854360134383230858526291520041900100899213223855486188224382703653823162894345996861445532701628534509709167461994996928381548658833089702506091301134871546818328996875922220113040458302782146591529518464541744108570620054608204453236391839641274758819313943354133380353248982299366128992917938524318490319050698923976357921667438004190784698158241659872002632423294983612441757757536078407131676360700364669709972753968713207311875547252831391032452147293787586938701379077501146357006089648717139711907987232041649794528617160494684834429460082618349268015471924642201935262937857572742300404327729545254583181152550535741716409624605359581508484696143278218870289484494029560335000264708956737296396563476651865423180321731667691397529372977878109627205192226438418398024553169873753661850289633953672304983160575623441441754413638994386464225883783431928981647329261461114454450393279863126372203386954841218149720993303988417312060002436971833196701282625414529724501088004514922848159568273890845131480016618158974935604100814722554250985537009451621572377086417908268698864335147641332698797150868384480823295574990366353066857672457528569200851485233356792880519526219300328808168047095325495816781214654814148714785263486221116883675564088453194102466692357294054678049425467808040257603686617494783105746926214016579953258201351782005318582500430405199830767954393956270081932613541148678466021030537727100294495604054496994679975790593050546912410440184118804641821745245488489023859001197514832958750805368589386730817204052197139010934809427168958568756115555105498275265806184660869971840624538152548540339987117278748878264044489229447750849327520666018489793282504606860626438241780646588982109190391443163338238447725538912286280223218123258665333514257873128168671439009279114562702586171761086466534065191292238361295499362388325783027524686051296348868098236090540499709641474786869109218616555819862459616948432946168429103755010721377122337435985624110087694065476088308021688961130792219220424899053091075490752208785872668054400944902616106926811023197826015205794835718347737139291029613564639987723414183218880901117396650455508459519326751966382884477504434200407017148448972118790299085067818696027936282231360704748896954788562100962944444245005944408034838029129528937252011280017170857539540364438913259820997948327893085831365702124916562232061804558674777591973430345507331231805590416005953956906583843226787885979880978174028775223938035691385870118283306672660098735119033360482864503067790528793544958622155760547130121884295733542431226783448791623224096585695393057942702172850125815054659978286441435483816140058352577822798011352198365388851361886794415621033928183884382719399369417991609419627071786065373174112396991095882484544166322412270871681384753873392696294191800089602865287350734621576079419392548055744416600274602445775787729229653967265172881527441916010311281768730945502938694067961216779005405730186060858939805620459052049564655659472527445248245395160346942262555464660309781663269084862991511981650204583456828377039706581233720838620658980411216123463845352284262658195670508966096701204466144718068398328825351768818222463755279117529130545199769515544720170063802141991030604387181706084660374080016024675748006996111691167137646811013403752120478095157057624783672983141337791709960864528014192371399780077203068381678415154537931984662649804012388333151603759014594823570964504759112675184903609288579447308339421395117719481196941387223370555660363310530166358266473910928976973044478928515365845270327602857647582761156994042818478094164903510769740081931708265710371173703044942522312269634999878270819368527307813716620902106011424427857956964310838359674641035047161411213536275785028213606975728165764478146995196073120694094136786052343599132249957532462489711261206377191294510249254752802060565978839322874223368249660122542429511565230134133361284800682589671804612914116009660348290404311844579266486278307910604054781730133504798783020054461746237355222655669484092928950624894965526812371061485609333992819501994007981491770096917939314045344074989383376825324452387835165482865077988608210320675639971058867207743181168879634301726392220680377281314430058634033727577437450657982817549531412701268097566220302726063900365657743637766497900862730679376986457787975809853799884389335863788633337178801976242361904647660910745023267479274199501839457238061954299395958340433265069504634668592927608698669399865102779122371383376495536602270412311946035074803466006912339637719711687333871142387462503421342607806586047945520100581038138168995812325781887205168792716485195923792147340343485239740816912738112819277430770705077024266152780845156449549683331570815927606590165353541431646660803380726029282564539859702202213435370950929542230012943048857928297427690831718428266273668960228224904710539775431539652039432338857809005149759044151370641127404092321351336229386996523790313948663296499372385542060003237703485264921466162857807332787385988743748098831241730630137127004886595377375607794012751341567542749947437326784926422074839921486237070356373392769949990878939446856019258359783900865437199316209002923942714398303424458777682998796339607771127958582006582684877280465982787693480092998189309961555423991752248226097107127588629198027682006789459441815157202112512617873314045711169075686868352056414376414828843960622605705323548560197264734773289905285778919089958717973813776739917687716743203139966441749363571120215389501076507073135242320264685199516409267618462590059458834422183495397092179744724385619481191467151685043304176944171916411737155168991262016998056595900679857496037420920724322979333506083978541551403555790101562005729912528706510077114083574206389744741371129320345294423864945539799042446286703831881000631398651318124124037103740640437028565911957808742369379501410550295453683335073624997455438849381033908018186273775370252303801288732081784949772448929014734972963973498061109510020990507035144746566746960408650139361217890857602551872688330338104961163333268004577670785115796498852594949063439936615292466114025864975942521661885246098513701656622086376725118721625845459276942077740767118402468066630873993083311735610255968526135797459829896567947238507538962681122204695916766191242900044082882642437917103923044605754970187866825122590297804023031027356523507121367236742703210067888394742399873590563385477446229423712226375516463360001819212079874690709897722249324373374513101038726556239717160283040020652307468388232893111886168004367880149201053358763510442700798442969655747607216384711469751571011085012837580706483277524270382142495508405289150990861957012279598984149738320613794849807560640366219456938085769799108047814609681876300236561873390913347737425959844339388886076622811956023212915755631920077584981286785132658913387341943324423868943645643984252579084162600887694709640685507962343664360273116264961409487955181216294303445238865612768240112305868086924693229572987377462620953300390745394107749753252667430524087635606915969841979880709698886250461611032559923034968042990845900666052614455102780507218467901771608362859450451478870465663688642195077044923480812763428957350286588855145270581503782545807400766969943447287837326116039480680416306157438009973645028979466044438624710753716733700873370654125857328485660489511748826201621061331938513920397201691554025434834044751572142595472532574392247938773202106699712419591153131731856146977613936053781547336026674608994049042648406619653887772024190853153837780986836068916804016518245837479461717599314816217788844323932279422080323645271247192659925916374836835542548588977690135343643335554955481875883612642766411914888488997705766778285316576197489612166648317006274854276725743819222205249945610163448691700723477927065342458432781333938830829530714706117180965674437311563266371895528297257050851765745158539708727998011408388458450185120361242379981299512240432877489760340979460691730842158158572796446184910961661216519858630921910680696423110825042862559638272883764738046267964892131578651042625386364387682740556359664280239020882505829415949790006577535300522720380278106201389700291046619690936399545858490070990283257620364363949999920118785579381817083046668488323954777694408111393289777412428148889632700510214801888041654723066232977802606354833614218533892645187203641871373655666460341713610902565362324719492654490110016569428707043888365840973370143836675748627357784038806070550848573803753904584172451593740859243012178884071149101014619441517676231230975881607551988148301803262022080576213750138013671143932096682840338940694650157409777170650820743101480482222658811303076465187296452209689037088893040466331954060015505562467871992767437074966695660386757763692164984738002117778830968889764988029714961686371360411328173566475720776644624812767625444174717738944201039129362658281916074393619158191159314339571121630666919794369624927597395485069896699546656886150942068121840653597304402485118219965178579216834698249566635023432965408855997960068456562357260547034527484351925934033109062285538725384126349713502636432178176910773763008219554652763972469671377380102960119548205970000160215368460730994471727840443078128411880755147765396146807983362218129378831542353084200471462842973483595881461198087024373942331882871390909638702077244930936365276317623049611679177170026489585511960987297147001944451644708485347693614015418138808634142941573519435783541318138141792363795504014295018787104318790642265427455796689538483332119192705186736691218221105878567873020950044154337703253602626670663745100633379788598500959960751750252339859792268822425772764055379440309982742982506513491030789521311538977299184651734265561490489955588315912344218471460283358900796510451460957680620953590624851739434790760711010772374820078952910316809651836858302275341341366032672324864764313171386773337959898443038845327568325708852734989464607911300845089572334901741036934838145909170099365082232580302012698592359960201704002229064937272871204451685213621780812713178972005467845818074038791271419019494340380470393672455523084837097382915744023573436180489974210027615460572272190491282406142386939129920475648970324236532743729328890756837572738137962503661180178281245814431442367481500053144878204132974416511898424461100023571420427333276876064125802400832417315965842334769820194406567138355317778944417892181414730929905960481017001765909541365529145472343922191714026121509352824689274904284230466592590906718788835905721550019644114220065873941279538413965286737303323515197799327396975184521000095699276759334866082927718374576351420349479235598443995135072131174422552167071701353018471090622522417819315482170851418744030892053661499422101123846549149291205363687406962360295771858322034301533944036007203798664426400502844781454079230865730540908807341619678506315826445633070031028377250708784751768923713750008488135320211639200786341725509067236483208173507461402098994929827107531739803693889179121620764342254299951673571362753854351969600009697628650936346096678168507689008586874506556706574791124424838076635252980198431209869283847604422209778483941662437245781190099678762079078493539170028110568948964991020400552160412983847933191753235979159467939529205556860208373167757122806673487961826953795803211292295751718442447539202045257256017915788946761920047956073137615718709814405244488516321978866389356844479664181715447652882188859121254699678924075224637781897679617004115009781158568996005190207809310039315439858276086456927613585196871484678488178890463591314872240785342738486603914821448488668389840562652694584684869534286904315461153058886673098251231171058151112021030962770461547219383156271290280553993848228471939525769720279625095640200095258750119126379940786876034037458908189263494781344127706016597305049591047859381400522383590024971980590083508763788547087561298197263406568769776869221896834579422094018085093479484684742686046377199809386737474182830881000651365448804512812848133144350393897833876099229108751473257707105820528754632654911858274627451518684710146020969612437335658416164336059158432787745686255602927359104276536749013761463209240140901596808963733884656952823301452360264882251564426879381932599047912071011656129256983638303924771620119038438466124671937430082333378454137094578393450188006196823516731294267435685684214670139654262582666076779333045251335400975412104477706667442640651415110933225170987335177686801678889814638305327236024923216361236383619900290697661538645515884827557229525927931995680980013197314366687968566038405151159150177190005442456970351713216133151388420578726897328738763179101926269789445335357242550220044522396940289437367168267638004596204088187668340680911138943196990102526676296931276818678061665475165404563991768441202616083528535151875224462588961598516484976596355360563423254216646168181561910803069658678335795568563565846256947840736155196145217596280445037419647634562682572036489178108564024856110161669476828748691736995288278247246519281326608060857459643465504439772775515976517812696163805704168816528579089014207627176954100067019490876415988649407389283269824458539243112110738435830388259254925894243775061779558880010114346891392313039130657947948582842279111194992325257871932337576192526406819273581699026762072488116792589926229823446021830145232736084910065350551421638067323852608903960530703845644471062179449096813447217784831098987272707015588435501654183576172841575746546657765916437990771973054848537224672739163772731249678723567125824916492367747781204913011754769338324189620634331241475999421101914457585277985244438587185347984487789861222806677258129982885181973318807904533300658446528216109043563710131058409676260678883317403269582874338968453805783243577129154800559493782556895441867657822550956575928232895030963222074812336952529879815195145780015329502134309353570937888419140170080204655442070345813353234149304374314996949233603383011714726636787011836351777602485095155892917670861651108083306802466982879638557510838098741906660375128614380375152307242256628698218550208157256683778973385842940946284156096036944317187586786429781172665662374709934751620589472018866911257071835845924514300220907741389288330540157622640251976551194851874040410880882250633416387341662289798764857051254072628480220308788064014545756947410162541920181702757728967739226543730781815412584765310804551459547875661029206103553058133241483830499499003688752003464796568983687743369838274154140421451010586784923308774281079425005820650105588413297210844433265789034543053884375334524445009165896586076059308576381186806202644610431277297389208443099425451433894419101861727681727984588066288025194029330523475141231235948217679571286561776420976237430464225337661417160945910124865802370964502026519321600150149341260814669439785464248952892394503818509749296896759291608491665436939770157900756901229293938963872206584796718891870954955935170813117968153182158440180531456455053341333151081000953381216392341271342799415663164241906354121106248609329601822377491561957921624679552531087461949535684126229055810555611979821547299463332432517768424728427189604834332086549989385596137268593915335148175465833112125625360364856451428161425753820342579970593016609096519359861406407973238396301371488645721808298913915104054179232044075502775884744935460783326766458664603993161704762348779998199628203503361784324438596200723939967588621635084278529990715960180224292313556358400801950640683109259686540797840579633205194957508052477737689832730901837575119607251680221380341516471464512613246129747402970050019306255157951051468695997570212958790362975012548949618663984735523439121789676955578522431676180182516158620021530040166916001861610578488321477861152539386543422311319183102016989527392081529376572337148026864667530022471937623833471436205995288723726331839858625436755120413602752667151441456449584472074311568212086030856762894459130069150854185510464025569122953095516569161119750344656325932051339318763470865811914587881895450261242260812712448299886075311236660088138086897188499052783872971519845666493235673029543931453694944288614919148815210003658849918791990533568865344523890335777249578277622678173725380740074289375039479359378911206856961270232394284859391472719044214259533205062273938731379506687673135563270749469901067539359288120365247537885350019421694219904986870061800720580135239648307567552774485884954273129988923726599872390195208115977660704422691452044751424704814122730276942891281046591525863323378815765652515428101772482017086998925225673155569537019082984465753654650455464372445857224914130348561896444142901157192381589897064784986689306124336237648341610953513752727294745739334974940798988937797855523323277667810244210993105182380316110236805732703194758246904751470968326872809598768013878750347532140353353553417037342848721613856832740339565145868951371607526377637323061098048240029340141225768643259298293925786156456906157737546579190555595040662997938461682956068377709641426658748924801280239395544181256253343457559662249518246636125305608528277944493189052921608404075553712876346402804227086837529161883277304983484704342463492535136367857725735938977372138367919652276176115437180103046169513506430736905081161606323070041367415243412781701525288488546383437362941836308025753403472874329088125262217760176176405861069131005091895947464016802279588936148275536656498470113971756267941803541518630013005939648230346582586847152283100334400306703197160822746082665805462192292018671588142244225446090072836036479513987589599243406654706805243671323428117012049571438854488782272262437007828319459027829632001064898345112077524914812749953662235319652991146786451219661441526879453474098591386587046215083634525608769022857408001331213413757203880745646941720147468952797111653535773834010690521163026483559037774522959328640057051020310302539786828637713195621186056722730245474992980920913264738033813706645640323299632445832429762871425204992287083880012237644157588874064352909336430659392408677111706141342533720257351174993001260911130868997952913862466795118183656309897926502368751843470958392367233304126912943761980556384058013290652965545273739094728435817358739268659440781329989960003837974681053649970472917288841826158134548346674588421188735095327536791004375345123340046846738325182889642799167866232397288332309683971815962635046687664483091773437781683011764070265634511811670394353433771969416497147662161073398019462817069406642131689285320858229970818103149459904642341841883848632551610319189922286618481124919578787707290031326561395704918168689502425434091998721565774040759336211974714593409280732221303582845046420856402746946806493661229432280577119236638021027073231484584737912058143394768849545448729863690753256615999336413997266137243674729460619656983564081112419552151475768507446133522515871802111065789450570289991942893717673024174293823838055838395832296934086476293427801591123053050658282921546086070941351241525026769778599665438085103155528287481095612573018857814328520778741459747926532705033664558682977140470649717814623937185300350222332200914920145000921299822681281808602970310455127707061716670360314582301600494355319955790888851924136963495517031080810804252335958929995522037281580090503991710846843787093749113181937335353725517115844303963409192661764602207192303437730201774639823800485805243291519398866055994966964319896488212581243230769043357163837886559665423538614592823480002491780059770624509357475013788255002003084377271972277893100638878767850120210914631748501855232603375744541109674346668945298820025088058451307810121150983732625132594278924188669536221866811298243061299562269042436230016228399528112667916346717218683486716741706184337174131762513873261376091912014060751584353128034285234655335430066621530146712902610895923106989553465411506181370748894893012376263365118302668316857530740217478993905190098284998822237424665373098920571787725717983800770283918514176028179990189634208784644209964006860314693615865436190354786875456287222647683111572207313788756075789266001117508096495503136783208178583799734177745293311436030610016566798592645598713930111858813451929964278019768447037925429397241376814239580403444911957645203064405826023846248735620462372804433902187274289721917106837482971468983123445794332502992394479394857583841767112342735073652234873320872259413717682557853339779888251646802120546780900094182678029021715037744623527027533829005927024867404490486443787726026138126620195578250110382077911532241924006763321495097592792290618224353109803759058865191218657674584244685610547684649157125653027166734407297833337454583099247490142270403397474198412906702971668327960645882046977841246698159377474020334384447678028793424685295812249547522560231532072791047574779752163428838941652273391695543122958257832417200188295202238456048856214272077496707848656622664157707711394681688974386703947418334919359454601821913391154335665932859122473248174542943749992993496271494140094086965945110924061012573440843613856178013900694229113680055866814200806414699620650888039293482055377211745536161783691708427200460689990207016489603282019423391786274236957824496107096834733703799972477174029434873582177692829846976662100946575879700743255714419607808829539344446659414437220997018098953426645160480463928607457603666032187177629760302489365023232576015945888020975532423324507957732755924571562252625311408015526237695232637987847309741102310703942964999295985743426530951102343937805221127557937016608227663613656497884086486190750640858436653589260296877986536036193180901897752248629225941457384575595690544319493617976234408322853430405933925958503634911565817857184779316305613800675409699501319612591397974058488458945069716697249937069303608100653925142980011152612647304751486899346466914225390284861202840504864773347992356148404169855658504244606206992158995829207507181929416692198881883778910510097123552530377506003804724120565188281200846415419025846812196000059894449363108111010747851370529821318467053102578692582864242929375715240774990762493369179612164037883915851636509630071910073764763952904608669650407055570777230452030887831019632445554241608939821253737914160035534780924573718459016711114308893439183180544909848180595220691427029836743287911239127683232306853343442731371177437304509217123404489868059173629964773403393946071863921046176395060852197498209043800229558851710075582408792098719379187090472945976361189277296142141360629292600141728572086623567304655694976695323718174075835091131822981281696797675759416971430463527994414635180477674963020243293901471494648505813309560308509895749762369577098831822706866535266549193063444675775731937978365312568407281251653391407662975918384980367438652441350930946515860859628341001786927209393954573295368547178407082717721456649894607196007244031091719651134867157507555739642267506057272525678310104109010193329638544122776529632820043434737721873850452582213015927733886727032514460069752447011234725649774857722101106035686633719583325709472697532448157861964433071710991521267771675222180526510546913696264587091088738185069953437960847794350633660508469602207564179093827454780756296364006193811263918706456554463321374124735615609160283360262772622878407159704388851719785559141204780267327760041952805838947147782147013928539415710046631975044647629568045099588446455227212491661175783422050822330809755024073270784533543984891365004363217562933533533654610162225538976965017317675141178551995900618434974767869541554331371774942301621583954929890208602356667566578735664433225371547729912137024914382138692696798624327035821076290619486207496339295157671413897897488191454549600391462679895156297357091078153162477899809357773771093672899042390642085718684554499252674787842800537026576342073891469339650839240342298104590202844585397891217744317142237440661033542707933977195766483370609422702321209994931850038401968061918877105135554012079888153581700490954037903952256505632203240720562890172807002656896025344901977643274628728496790384488504075090998230826018338646592349447229828345999722604690032789313395123830115814468735476692952349719126073849744213848125422526664924491807826636908833660266964336295571675250256141245801810726022067586484127701746849787014374977325959205929343782321740801796387895772068458689694668763697990878557546697264296885834693340469055943712169967178547700836021535699002354994231570245839755054480820332913245731186145290695450957325817821684715261489305232769142991909857124679668412942843267639093314353159085618392328534162631340900814581274274624564599825290289063817214223188363500547187854380298540659736606461398803429738194995676146623276788355911402186479631822534015196517590399551401769373548765355790020253216586679537059233666876021398208742221010740340997932060251134208685688447389675078430659390727624318843000738937970525693636655671680756306223623640824171063091979726589243966836707936850038378348217648490259758007348602053057057906923869230374778003854172403167122948283002453548462835071643046338465650945705167548842865701264169903832418239409530253143654694914835734965872389799409924069172216823537772897477119271289356124898472882599213120677902079362104123705100146121019540444578660231508015325585104612803223372452982180357725739900991304810750749738606138271417427056641323107315721878396038207800593391657363754517317261211093052771192637116369852769576940755610989272725436799557034900579210442933117282856525610120197409698193584128761636823052074256805043140294489392246809174358267452119296208633659906221804143057165734941681104698396387435428227747190353866076670197611968060553452062826134323132341087816419571896372997786563896959243796033930212643335684137177737300184116814944921977946050052063556251353090681016385453239768205779810839819381288683634716791349334070290873120613286455765259047826439172060645698559074639874480257454755664600625616144991903970994469097854612200734277810994391897853381944577073658788678793089936355103441341390457753721928613057912243837022380666009312659927172462043445252858112283851802627867663305944221825598380842550836615621491638758254934788964580752549649681183486325376805505688996795695991468642121826094383110759329568549279419768405196802442105769906853752815946800898165868152832819329048253098761200642160605080857119388058179630915931566013998760465065674857187503605613799256715277395975006050905859601392723518971047226587752852890189572232588850996211071435893863971211881061494247623174016150169479445104416182539055177934104346093879150940529217454759767761524666745939072723870621648170912941154703700846384776186446976105750061709730040163093323817345602884114385351089009959833192735493379259829349317843838296142658594955889113156745933371448025575346104043773874458157714531198385739962800915600270236202358196514844518396954972268302883875581780907226661008165181658413292078157180042406973598345361621941682035186639477778116381931433599991379781605569950306623407028269352843505324402200665944791818297634766018281116438829167358557541593015540560995591637701374599341968259660553457393506820763511302669490092569641007401887396646940433707413688623904603488672540346763841309819208690258835386921373101723986095367462445114577165557972476209165536145037995695359282790951349140195435719730978035642183582840219665085306873362013674777777711781084725440418463202915803096321088972917732711758294899738843273226108583236902831441406802530641299604937389546284634024981025418872669355962497952015593873231947992400078807094905980054550440863785024301264873245069120069669662598925105185334670839768174981298899110033814753673205776459644790126182304597502389992525531499765607969221992259333022335806572850889554810132525522309052249460248417936382015670121018032778517099958360123176514709892212805910597541141044013995794966042548474026746634930202452327838980145403893679837665258192581349870361079780710411541821216317964337966995291455874011465769226805757454347287564048058199626316251435379291555729118124669228006405771016781711438781370458185787716538649513439607686475382337229313026985522366282082286694398621759488617247093581916413831932840961137410013032641678792054382032203861845443048467756803329265629678090880453123923961677469730567830986701856322276903114881101124760373006816764265186708407310158215267760350908878729703735059672685417857775835330741194772338564132103556321870596192042272482580275152921280364723756268723829533982640845098880022214473309980507312325184326880691507909632846651570961930730303660310380661217395425832890002348472867212650141997252416927965844079001700497885794983039159032712788622715383120471120630486266368009198634343770048880161812569900721229749024183812370736533754979028460248347352065182903028632783381581786132781637144028450686435617590576882025816309254596531357904818602049339120629835894462233542286583551190460496807708379262077945600307236907105015667111089952512302431493845931510015936582367603503423791704877978482552727717307088963169225098591120771135320810257719034854428822106395212146301479913054311650864589247661220501942930656422897500355920054849422673190657561367220457597551687894813584691919582577683550781806655570971021159713872170203653521168185608753872071012698653347352701148990849978784058711804327756649209637820461210610033542717052695400239766796331245102458869596820726633561947500139717257078356074071780054673414811422789534380801594656298788370801333368545377937014697461454149670832877988008887798693223368238256208451335956152621888162001970814184705061566203938299923941450345455957595761272955426562771827459525880594312325187512443941393072201530458293304744135032400762126576243457029739089389066736270772250603478696525078398206717057954517077403325973435667539221505347649709582753487310653331446462988906705225315910512440649154030929010351276349568040172916232908919962035527960176871104035397043853727507104217473175651431096260067789899799806615142761407092102337760917549367251056807540457376049580622331448795880945511756778377366740624438644375713675619011388179693832927132699525903394165926869077064552225195257434459599898116043710667127987245178447217809091029367002654454439038073897984546013216426396922625298560892839242840544382078856422307558713713566206299608538749833575619416920439099746098582158425166344483368870028150849646494578979365349056899205197294018071213120929947994977200812531400674634545048276685521418685334585227115089539859265946392313478929655775257349722658851293574111303385884992514201501967348251878808393485457179125391063565408377560888146092259755461626392376427388512322078223638125358861104434549850300149230553442810087497502862828273335939304208031149732443454969650906412064484971072233210348216624702929928750229503652266388411252736168996622773142450402720067670741979944344232612685023327667427587570741548870427216275273928701818287300643458316993388126512598174036175005781765577044112162693001816177223310336198506683525553249025411858221526814628333176993328621359660338452841623095361242449733879819363823726798354659947955921313531257246342248881591359575413984857535302715634176915584687126457869946109804091283422817678792131602126881905565944187460042368311479025537680629085647802534162709943830627527312451909826753964175212159522020677084950807818981517409958929560564925259247023568866158457318258424047740038443396829320430878591425531821947479821521527928786242918996289226724678953565743646476543829218160940508627587489912546715851768983255942539377203491960710901412935198578172555121378775343295753251208282488124944141435288341787832729162564731158570558403933759121662039156502285389491837136860746962699905402330524342805668489236096783018952945042478632947124412904227410880422169251549132947919832587060928946899974955585512137444899782635375065140799991934613084782182000346618572288669833952489937155681983453383383399159824617843319814488634289504641957999403893931959900256776301872816754895180463253686612084533243218252009141215689173570319414850991053132922254824238785723507270663140373592302667222513352069578782373353935461454313233615295131595456651387315891442660375402066975011171769463046243555281661700301926429642027951119720610617026973839169048592193887030006899931760935146652261579443003033563791745225895457341386603259267245022419602270172850774319204878715214263768058054520987790099840825814065963289069117850002161175606610731566045613115444564650937442320911414752463609858648462899028832333063955926558167672966328689959527624367159314649063985252773017530403329462362186966661555817274861452402172191110008192514625913343464324494042507282528514592711181327379741755385691657015074269689671983187507803634174131707824123519421877010030231100338958440863391163231194872721865256897876533540813747054854945858387804139472819818342728447280375872847986184072968981817714390002589205756537116977202379032473500809943660954160460712420015126036171596438351619779218055769110277963958663004722504746121978183487552865013556688150415300968884585126628519356569470030371883067950385830746035836976982623955509704418196351525769979128369627454712589951094135039795048525409106004351205867160763853498216353337289223633044700124438628727733075090788928463832144292816096445361614880073356117241228503555381126351132315586324068331358561404613966332291409837868626845098126937683210058420251968553679888531182228177079610169672491597667617212802410062823711126899091865217351252271394244443542575435452249618264833247736654833661128045000609335348913157562496573369854025506997634950720156689330361762095216137201422931186175044267669653614080629872631214493621645974398762387473456169952101793578051212773398932592230454010346984703976444751502707610054586308016007055972686758076714852866068791738270634981683184957685072179439657924430666096418258529928615081944934025141639952471715946348880122451292555657292036971111983729139026381296123791770173178730937018390581904583246926322763368283030269949926272292593868862508458806594199527307965854731322109578930621096826482716415932420948742229377986667382585742530767498304885571016407266739940424312571140692162471005553138661928721187821980188513612177970392566970559904690591284352003670194802689735596729803439970655090171515612306050557575614513605704507315736859511394018198325765935840489851902053226254783032824525656724990987409959124674177788050076612715748219512808438830927158898922811675990174217045941356454998034619904853384057190429226366469115176433303861493251582689516772155650465186542569582991046734122660513241480563907095356689051490798920526320887452829790034960153877948068463905206316713485983246427010320538342054789514918171553999630401204276830996147212497474089693865636360992777749394618816765602487905926946982775192593996602046766617684382508605803256139501534825702401657517005846835979200918366075315464781463755330496498261585463309999902334235563526938613429820000274584891576134232263979172276923691985504496365020761328896692542713128411029591294443220956250353276291021944907296696087553151077888440708255009021519791733400006868793056421354943017036061402147658065986810471141258192866919502535667837135480498869935140454884192880564139264055893082772606765894745513051593360260288454416386897333411400301063366890093873147704757496703939531867047999976757639233118636088338245071465299218970682286250395819995793331632104730679559034782806253214270562263934441860771513259359465006783832138357743360803835649100802428410131240046523247412400351863229237711069416801054174699050734955350064864258377354427511250459973059328571247799440373720704571449783543740292959741905427710233999961248541220433980061238289694814797036496643038888685321156176180939064322547489338037320672147108924599145670829939171098980337027186542527001520574652577963929987830128727641987609588304778092697163988886214098427852299386394653542814721553112780296750246726613469700805236324529687830378168586018902053376109183294784356028981566220455434065922687624323775482856439751557063869330686068456087448894305035652155540532007674966260890954420258434304313481213650268171419173877033574777286555276066970221280923627648914314100948907472616382437065256575848444937018724198306545036285087036977521266637818021604615592437967854721993698080266111365058852555110428652112085518541065652895846228487325924150034459997171849351159706473002577683058344000281155267727392284823454321349726773716680509412799905591258575563805024787958293332444694603506510829656828259050790703660734411127103796615535415189203731931492080721312712661299606916968022410252302094664797585486199874650062767328773243127752325367315598632233785978298943504137305023884640936421127375081912788133418584123941432223034004587239879407101297315023285566011430465452050339759354643903078858700029602301268992336437180326017909752321326436176452977858801169631533756399923012380859774076329024522066073749433538103417557829903029235491533272953605729749721226262264927289115793317119706845852521352029451593107500554851972188894401653799419277372780910978072452712768336741425515852661580828935714412824240448392538727785824009946842332708589757698498310965961826032606444303083647435169258448985002542217050335727358438997905867325211674327934376156223686861495035967298312125501227884881465158167694329650316992999558878573833146595851040342379606125803155135264069077376585105053711470893604431285748956309465792075707378327893473544093079912759277077635847978211626430075210377575265072488996452113245846654307984948681110986150588218481924533217241892427864177438772584613075271387086542103228876801297790089358505046352815984408382114139997571586494666554008241954135654021055072548567815582609539815815768731652572607133301474104697406971813176061121523418349733434530813521373462580650954340249484685878078096150201605689229258613719348565306791499869433092186191996038373306428881024774319600660472385085212242524638617527982339561738178524821743238031619770632600397810750546100429403775099565852271387587015435122579277772133952053131194484605503222537519914634624062012345718576384408631082154043204302925638065759552568658947866473582692853828097440006783675460937001779106964883354423770815498182232879215729176162717987790039570156813258723196953562411850887561246300889889974692354972282438747672708862042076826233734631712672751976093897634930869306811952060408197529350878840095182928321003232473790204153066404679034167985826463421178092492870043453159706807342149089258164617362921166110325605778773167910416745926394421054858592135718143303903585620787404307753212900600756984557315619594837232212898383771615749989379986045913780693701473616711064322768135252677558322300471822604983180230646597158755001799634873922049320878988524366772965417565953785788095125687316535940881533911985421518858125213780609039787346867465993067027535804880207299460080401796857369985951583524266586792838827914659966683554272640623098499005786009849105730810911834907485089072498491584416962800096575729363417375016948084236459767207781957084171733198004715329017520953595408339675816927151938025935079115739670865076149017654248220840097991890948146821904409663405266546056812650757623294876158247188630479479752894170323314657145555042642982135571922935573197585503722020067803053192062832670743263806265617731215546758753240135521790977393174120445355644642363972107270145159071011600045495618091350161413388531128066859409341804300518932206197608837175394248021943906828006766458461504911710014128830143209897397977411556648188433190677432262883908597534278041475087765818370207945893868279841278690266411071799269038603344414656729430471895211267558406395614837573282988298866325383690925486612006145052206906047326479497301416443853950337253437107957436655127070468677729083772169077977335134057954950182736770602415281375597010797813969835528948973763621789205288747105448601498885561667498344709320525325576288918557193884253452015698680000210677640042452799730804077060870094238928511033324150159769952976067323645434963652548638727614323851952401819184209586471652729940665698585719206994207123095997519250436430297388948151247090239380953407327307034720932139470467750769978338611093308544372603895024562156964108711230750328041198005850881792192704313443992458881689515830937873593056238501369801039049345737313001664269746122169216046116391853303833848060150728843703561587642523014753368481307673872495444828481376470923503316343581858830655843962740556309967375621115831368851501600428663319990677624376798613861391692719473160276692813733650829750303736897279693493209897325142896527752634827160639163017666939173114509580724462542316222803133843650438720966309629586800549970873873009649017503283766627488919771022221892020390203911808587439884794228766702103458398578390000403393937513448120763870788948281836466294928160748585204786766145494545175149485045134715796536074166987794845580722824814764014451953053966552014326242610714728366248848175532579292614817491290590765955736505163009102480501929154430846792766077576370513509892383414264395137617081693026622021470599637780537789787856445957315266863021171783150574959703964078623369754885658907478062976522020436444349313442683106740959462146478279509595231412128499824783815438848085589501987728995290358808098636091704044664246070344347341431826747685888394941495274364000834996563800767903606449845525236091609954648082013997145796503583018904202170456048476027927511045424486985023572585395375396468465002565634891188197324925746433437384486619281358817587521641565938794961931889569953578646561312408456677957503181942943214115531181109484692812766783738584139632412742677179565742874497716172935483371451650207564422691249614015526169694725070185127922256250126957836053453631447888070866576258660521550830496672553997168617293446233918740223292302291660857199215536679074751648015680713927052214278767572896306173081432398997690359608817173420560307693706662911440365949937618093149434558284219699434910655028373782390551487461554430735754205917767072637215448826319787298550017556699858575331236762766941617063095390209067956912146795349583701222291846099670982275914208554401469718058561713568607904471553894164257662175180423198664018436791255555316927053975935354800368723766700552916438882522595769273901762535173568387569121013887744530418844063820335961020414570007791425213098061523255817000855223474851165891255163156007823915740435663804537036510108713632176616111533047598189576509149060612177275765069461188838622097869377556846376168199509130137405932607508665659846206230583091998215573902944230400645783844443953916565149380882666448955247765994382377558318967863906023413391159227654832565400836203127285637031701382597002848222249931451738585480145417278402300907726175486609615516994188668824285799606919936034340808305885092330833192650019270458906837435562890418959816212445754005100105685759299764335294426665973711584606324994474799791370040679651639418448411749508861741419328152409438063057204056762825163414007082460078729117585725053440929910307590827979427097106800263887761063470209316046284526783518390504968863814624894843977822801314209304571551203401327088304887354012482639514356313541215568061121013805433065387961833626893616143426665723450008817369061398084059325009649457509439054837181817677332418280408435538539665916107825003326596644814628094134579358015543353754293681621309499516374651024183057519008805279944593683474986687490626663958611868028955114402229875991055755203220741005402075785304002938039765186608848391590989392925971004226920209218184384799578771702043737891022548579359963806060350479035995794113492361519273940237592267769892783757895725059657057854329139436983517111713177007662385507953869758359965812195465393079805005227075161820247894002714138823566971128289341154011335769888659759627768417338363383007786463179250266409865417838449527582270586043780867132992375978941475516096035539129839880801641563043712245322996774685053010643561146443128234170654413697890007106967171049716844596172824956030016441530956434429967361694935248373018977456900976464644220746617980163484929157663403763309401767844755918485478985281087540386137378289062879684845814304619814211032712799768319111006254180023253283743172533513013700883571207899241663726625474856306093923648518652238519942293226276834145271140224284145488583344363900482618221260580156473935670432829244459802199234236932871913700379840550570702244990811166532691235953843661226103804221352735691581001709704211579160092365034323367820561873371789205495147819720655701105881379917449834421747556610625732586314770269183214378691476147298080202558830654127369079231523082477883580385561949099032941395841402223730387340582441307231929429532306515744704234882711824101634396561507792307435336900210821816222631688869286550034065054207791697420828763626077471376849460589439257193251221875427947586661080755651723915329597757856039719367846805073066335854613273744138633864458895514985495859264472788588989862682001768667019032062141172966802919964263324886135705609241975033544030951454503024782483120165985997370153191703387877917803248178695835095790157329246251587218162499605391089062592553416724443042375298268892564050180388900419933249115299056722290664767635045540970463284899979114288701480928182275516774803919545101287985923361406618531689125433900851724914463862606842191686642007162990418404567175488325363289463699496419831153610713264504330129035409248861947286250423329427640680135739689708347412407558448884225277455951615329027564940512572594118200540851594731637381366281379441384385332186310388521189806753834699749193249816418145029552352939711286164426598588783352228801289808627803110058348623075756583032798104595736612549542800295192637466070367903020629985636557025319467135578303034717541549638477682747553980185449703842350396613138450155496575703962132795990397300979741549106539015977025480958655397531550285945955690699668441469663989479848837129369225383588134988646613962834383560565995167674956565530020695588257624380751543865891683839344336493720282319544857824571236582381932438854501223370252064248530738215264341902740447514872037761265875261733953144482535929193497609024533186724963523451167880144006710814267575592397847891184673471077905987978784711067956193738525778063162957552253219465902257477631091707195641489138196857794198407984393440576741745656239708188159749862529030291566846634997138634694537549732590516690238973033064775525826789941063831687668489079080364588675638081043035985896717324131571268856228838743592557209738346779220272543891830684773933972424587866866495618351451253971737777063324184715630910448718931117399233283469809162926054786381687588339327972684985882409981404695954794432339667653166757913378070242436709338158119346710950952100622361850526449968695482448790820133316321700595965688165389849104010097465744590166497125663609657497684082164766868287574468917042405169362222427454941648111335937250783891873129343562906094332590169208048058185191737344869624132400330479671506716305098602601891164527778851450179637280659787097010541739455404714133341082391333602521518305049479205524773059898014916334118741457414593895215192026003228520414332149922402308439245527519801412852210162541236388468298135318670336379235140297764708031623386980385351977310107411493805471102878200585670902417071645157885199905399274581537170002621840724248776968090650533820781148485340911228960210321644980584605445868998449965655430334402047673778222225911182025848855154761241612660721298117389438906775471506960739963549021999789750706260607594991777005075578071126063619406900437548205223868834842332783919018951775416685723852456852034942859471968834341428631428926473146621197088648344733949768467863007471664103579170337556695070004721118720258717082690550031479145738997031601322645238925140731409023136509638204970033838645495731330836667407398330662289092434809125977401069444017448240552289429322427851804641040604000142283972748857118042720306977777653387666143080961740219354428978467029791890474599958324203862284467657380808905071361129676358407201526528231193828281564058504217567702989030571867397694783167617463294756069988671248173721566246680564642935748087845988727438395037393602178734872894475656621139507584736062109107704429571449157706387595252505576702346774629193600773780124131926704867450976204023652263922854131543524151620267145851211991897139893331414450629220256490486545273279924898258419971692437854730258595752970085911730073481161660434140147634342084071509305985026044023634915177154791595307893381081118188908960636450553018485052666123208044384599260314129740418036218783929009560109402473465028915684859331311065751413280500454420270859884050651632705181779754046368056119632157098202754349338526707942106159898970349558392249641301862383513472080934716951359601006239149415792464100888170085480121146738483635210434130593835498928196518573345339504325297359708319742986288719745264321944953989171946477297838550663519943272754940326254086095480467903990796331550564317508604757734222427294054562510482007984029214153468184753449748679457902471412562608560287505734231261383261781543514249938151798066076117441564655142358805576353799478198213336837989203376833100625767880437882866090944289992122849870665551780645099439815163521320139905489538852387347827747419183288187499673873187215427143583835352658198869739219928777397070100920055398809702825583000078929074721275471580409802393030307805188235599124675730584281285286306159144924537551062251981426519373289184601081108886065281054825933305733145785226866756990855505583961802481079704967263663894370972288753691665530990723785686180919268613439203022750186142288366211919068450827602420947833748642088475390244103729834974016533824118130987141748503327414616151322097698885244296634420034733660587682211832931722813645012341101037195879179890408379706402983188797043978119147031826728685193892799549341988527353884719989172915620991498040615954211967125985549039325216465043743634552910126780829335238940812159672620180149134315060796153275305973799536275345355351515722988035741520391187769346404880617397998690079102532591459852088246272591053432890664561729398252026901633757242844666758910033581969424381194491126064831166287381913604445215573507329666377670165588445979430817019615137458758602030458014084258753915961942057711793639610907267320054749495428640070641088790066119239043852556293095779195786097049587634202415923021429965818024117817748352779500609791498354530865387220968767153390441782556808001383658476997725448718584282188098146278381670856301556880363756447120436630198367402073295766471857024273367429148817313955443135391172895129292220262598666963983398705676163943088752017997625185255553477727781784110375781636799595386818787468746642487218223170892277159949191665091001527231620165350216055717065827511521659903010101537723929277199092076046515863919409139489562928102836168925093860361785273640025051971311983147133723908610467108243419007532099764230304846698827002033554253509310478784482485167994519717307475490021669060459348337951089018691257546718934896765261080439107087266066624979499173645165168408591429692823791162589220376531729149181437282943603620682022994198338807926097315640168744086085221692285982699617571701163677838687947379255615609578909920640037085897392183521847012300348456921622483762441798856690801735308897561344653067382412550497859596368740841302208629864619338231448084657824125504459204318614848792487227700222142033130808051394396439332255840915657984665242605362826575550505513318651921813458033401826465602657923579646745263307290804357632691460588052416340187561891066636179348976031395950686354239708534820979060952916541158388733332598152422256388872794446907060158991493143508986529275286118525203871838881064987481847436569322934697351910847269646443682231877743581732307292046356307045535111440247464395718840178548728759647690048801547417009754538609300891287054762201875704433482083247516061403914544105624487273457040169329302750650681393447690791894836481336875061827188799573778164211291549836896929134550154734633043018960197008696470818893372776543833689904137623219085048148781449737894441362835585440433971629136407517465732778621539670772209649917109990055284914285236968139734302029629751646668274543064973300662290368410546489499557903704562330563315490804654993360219785613947203231291549863442325547944380691942542200544238721284587005794917643448379048248712325209907990049128138790601031155866597276945292499434151974119325690198709409806428143054625536241088637098370503959160675561829860673351400243336083243418768082740349435707853347679229258692457141549717113670801440991980918982991819718333367500435836078709734451980555332244847183357791294277224335239764467906649563692731382103361371103282365112237195702924249019577712093703386796351400903011230063249870860970764171417225018778511754435501595171088114255086230457849534237989187161679792463880890721221237986097023733182752542290223291010431657255557422438966532390742741347813429467602403909426298869041790063463004568193547313990266908000033366910586699682705891362927259161194988517738257409341062129486814702675608040304832408640220705773419105213434466449198760660399118555404767736085248381160779713840558316139613183841833027755553932127548418284892144405337878717562238714071200463589921593228768687014921937228644667783318961256250964306772054386612856708623870829518107292929891526603541400191774932963994582001575805780075510778572245822622484589781125207361286620903811563677680064601490672138013179922008306958627536386241531561617703282177764071321368143266826164218572288045674632946945646824474705869728295094299768042768090102152208850075380526991242897161923360044137697832434114346896341320150409486305138174038160869550668589962619592053883591675119829240982518966560633639703046767648953471034664905956512110626211888512099248119873933692978975008782541372976150209191931213564144511687551805371604012706916784869925006565406082368944147856622808893562962306186110708379853447590571875851294594469146247149653543819129168861735808255173693562644507717136878318383978728357404117935987534419992770194449871138113725150974611317038893879540047942328368652386812122605371754958607491154660300131594494634122085662889043474920883506305064232969750039567101238871695087603120838851707769116715384826819886543040478220620279986043431489069703889393412427464960103696703261866535473557345097252822129205229904847085076036602843932211527120597430670615500566221800025168422209484776618241658357735794299623926891927976725080169825401176399781416398587443549577956651633521335971861794200105586596131655305837619702575942787793256896788636871692563932840515267898950734035445316530032563863841887461840483085667960845343317851237678347670323787361138419230431060884600410001929728600196825163780871272166373204839005205947309994743426584410436509287219762314899073461484290724361517116641795552071533100531577466284496668010561974786088090543769117990150264953511964632645317555923208957557533093201889847649769208273553491733036313264802031169570495447251136763675738380807678246070281857996906877489519463012904095688010012741674563331777988803179329573883246152084084353031141106702963037643947379333046614399727733178545166983751648710062550045580019448471791331532898200994456245488755912928046589497054799665121861757809001767486040370265455842347780244479569756712171000210818663133166254909683451759808902311028835207164204856961310496952861864697673590946999163621142749579906618814306093672166676664376304967461704407935258792544392935719888085228250693072152591024346639592150725592863158364249681223302078877187655713214360943212700639707182909043924291575814551061167202954346424464839649970313553562346311973409196183605651194860406774130281409198593164819903371279433777906301471717895746312641707463513008971964560926145195628536308883920962521941766945463871982871718802507099676859210772232371080998038613045891026565376846825958052739208445702558020213365072868453107700205524377024493753045027106459089910534045839683386993235155306284962259331202375798571837085686706804136648585079517448117708921800189590702145528247826257649722678067693566220531361772305702955788509127209772021277612593779674151873768867669931613683767998587260283868004670520799244103400471105216046823965362148102296913009678786644832105475537276807154583790303038442175860337023269525975545627101190608205183690471590104742292668846862015801309104166307810721910078199432165343691599399294001829845287230960174843306432763856025993781090843547024455908297168943225795989874351342283855896090699857141242232478551244246407853156806060083479780972309740925116626041109233416724658968384695481865340787173977951634699487786666804135411796539300624396067285752391005019797308752593716362020643588645201529156305727990756042067837785976664154878232925789319108006283956811894013788780381739465495249097071180377146655976769810295652564713271735346208970218848646914511821380383376314063278182370119880051976932827984106937186156022923312232694019103769110501703870373946518577276153609571529992847497565408602201759068343974219364651944329913459153839943426760071964921184646876318983648149957230660215201527124485053150433138083227359566328346295019973508109688424687127148757984828702833734697799388521929509157671140792724607521332980166610094326900896901627542391590293309600453749645781598159365491596628365435095698069497744270740761241073544158250003421002267170459076960770159551134488014663490510432787728133365908423772889995612658748464781011360180879944314300025339400406398482970584264076119733721346609893005097067288148192797389814333478978291922277288763657419480959368193647268715629062482897962036066097998942772385849628624106313492088432656513618321987648843014764381671867726223064419822583103270660475823584385012619437949230362410849925592547497272271229637512857858356920038460822669383664872034034935563329484416891467577258580434072002923033065129228680211557282552592031374463970799985310161440435420367201774160980337268853517908283254784508482065853414655833195847284851015523927155605545438718831664048031584807997106750922471036462046037925502095214637471110043286553120000077096118815785483047288987630455071979421837095066315270203864201390499025198517105997311071675380542119452255512807779732982906013563678585926049627701290785220591620340790000470560629071173123814650957395940159687211729365861913174057838538580020432082080283346713288921746044211959628150555622762414949365033461506161369759833854239527691963009371916668341808655304553797302904852729499550223313076542310264653530152912755210603037606840303618781175313509943157466432432266547510855747631769777386429751249820222960457450905796214287249382782914240135824630949191737277129521711833846232644188242555942536422584575320041255065271149766216674206423976492289787742944776107855859951938358474545361033245090484050935300473595944044437681417626673797722788430279275588275936233892051454046591888020032782229244842542652339105666562410999577239106490809699109953991808461387668004258014415500271547963941859216840654126848862405361009739139291073327224428629075328216921045499634355412972825725829195291137803427652024419245465621553300724607758372007234543144993043405280602259385921717772835433003050788589553448406889552755635596522186329872108808842166338043886685819929188471636049231080633276579154815323421552121284987671024883630800073844662008604144239612932335919284063211797666624764899495723846595290530041689965831649844601272391971807119036828569346456593045518281539246461604163610386720469897020063497672018895702854284415302968008355348847045049266814075864293777533053008925413286450390062220389508001605663468137294904265257524646241055914614068509089124641546736953664057193980044837612840653668798900066562082556020115980248899779231109046133426586671576591884982141456023219039944620969862447400805464270440772831519108681543463520845628676398964740361911026772520384349586015856718877413250889482762588727924417010433698412895745484154306624518600482754434884673354761780096050587608720891418618321858901525871339989310158167383459346074744208137329570196404576656779501574290815075919124172541149508118036052287110873043436948966579248146766436742979875967624125484985510311615421384420715791837201109554642087765599695484781070396453178672650667600096345822981764114663299905493376239882993861509637425162688082790169728505767451187629074813983179150955361455404026149443535560061416747816608407864658348239565410412062729530616460963663612529134739546820391695755554214894500133878900290790077773539025780445027798752841746145351906956216424876830584490995409006591684297502742850901733857270075264763222533039157231073840212656891756489192742932391725775542935015777507785962555827537186432272721651824080899701351619539622783598295372842620703440430218079460869028914404716431650647960527407981024714774113397285744632027653594858286537792966066156202656437218697612342478575725078068752274851760041718732126939248720306949866491461626470826102708271594211823703560253451956483683585859624249879636931480759866033454769567543351845993791874818078496208014785324706998227260558988892628804913493074526447110699916362497678862686202010546643285928606276373874568528250887734287155130785886524720940853877310772807492589258820551560511109921621613252052440976709672210972849324440141225211530599890297963769809054252275474582787572345384231484859485154744623612066316749018106969470781340483791737164398809833509197120124112809119507052692190191781552578371451644076081062976633574854418346838168939600480838385954114143959134564558997033376744237760812642723652211275852192446261188826933289226568848012750461120452640030386810892863273543421790109457401895800643713230154130578626641709475286116108779358120436516270473630808840160700831071144251748210178740652683946337390480000237797417366693079073399645729774136106262927915801101231527241239789772789098656189418450465777725742700002585568321544250705997968966725742899973980707254429717262428206294408470425431910334034572157743634450047613781345167613259554857313964856513850379113724926704564496475087685665246132672824862669321781485980274804935363691604818228612688818402315288668306180691619322236939440472651771364275985045843285602239108095739380028004575526347604769465883428014648394212845719685542074668411058338098416858370901843363715227946710098995710850760278407000016221471138876341894997556556758644267813828545007974598651353001102451736392384991001680657807703546582475621335576706235861631733675915336044157126544958784454371986913274619803074520793298006865624989266207238132696089341656482961791661850964933341178122159455291148750730872575455480100578695518037324379531333169742441816691893156241476001367815617697336834280151166058504435784068385954148089353297717961447025716753154573339922454555153232962130748995620647559289142213679982970879952531776115765250040966737707232117773052271745173681377187584267888522230549139346063358900006791879105365464688444302217266055165757712724074566398439806622507417152365226129353501112118119773095936060483830279494528867337036503009252105173974593274866768460113299964944364362841584004753180632623968981515515278235413959801432346457466309696626967834337380627777752226292366691653975669127051221731801768491900293837202799961394937834853162352789377279001307938096327218513995989017828111772311911932711373608140045187145533357644494926056072086149961435145384806388271228994280064814588853297778545235864390145757143926166491759187610423807567744738366697786875921679440847325330861091211910425041678729562743786992867127023739375896118506145455693711822514641607441776549952679872195470196421310339918753394582780332230050432611676696402208466554660445898747078455337430493431651116618391238417441467514301582369048927347731171512236409848791357764084416003831700828770012434424734193692930520017757519423498051926568902633413242020033665249407434319379679143455788301281039980976557802831613892854029553753493611465443341230340413215351994986561236981595224720421316883821342840456512205024035850642950616286438511052502326207874265802066214444789392382217829445100923660592887858110850243673313965961889069217490169087920084200314742843882816683583721532808347541369789567394629794086985670188665897624903036077416401549864091764676056801374553660063512683635322941006843630737610121328288377205610691137673679758438340249168976281373223424245016548800765406293283695264556670806465538313336565484391368742940110818432580204281081859374613451680521022917371419414154113167457947249487381756760849214041231158684642568657923413614181707721098957536999496470630262313051766505562461038542321691579638981057284928467852883302460635984332134570292598903708317801472878615503280082470801616039158459159147682313228444649153778319631744073324824103570137898295766081223030241128047558595945049865928165530496687226214838569173415755036259083817206968560580798670133450521906231971967022437238974743546788466715207816470529246080792554202452954744247812070861426164456445222572503097179848482267856484614748286069776153507943705088430805171503057865522988226798503464150562570492523770828886162146021814106091227789807252763038473945004975841064908016844126390068009610218536434469730033382644991729088508742436937585009328419144898409502056061181498363488764398691012426958338152272665423562687978813746364278636696180230503488286489506100707231796251321564557849822403735448843245408494047472973641304422429641961221022998068202025632611088962814898954913707080854900715104603046388614203901721590987849981336514954203046853347447450989780392818676459065978205982135699476981955321408333303134629242298887660816866074869090977082632770546389652685431079233658189434808430503893442575362767106611670611754556325298466179454984089454721929360614948912221370301268695922314250102116600061865753486817997916085774800799272542601384824080634193956384279274482515687077436787628737933228893509290625529889548181979892349562748585092336612647640758930970613104691370553587475575672530922300108161839657764234555652311928644203697169387267335602705458099946112153661023916989264490853624185701554849066641477314333659695393286372308099533255040632631869087496929116972383216681886147520474105209963480819269121407995117545491915221125901877328586480230945577689637255752378857154333924787155820706448544432573557266700127002384394911841399904419672728456050047634918745198684750818376746907010020465996867616597865543131921581284982751184987400211614399626637607509638727312363112166891358295035917936741023237607764020507871539491857323523441507942051469958338680155443027503112030089287386049357970416825568779063620155676790599824389181027714815438811685668030484159412670495377492884789010949647917890831364838713241781569640155523557800618577647582828594781686521068726750738768200593366969274166731558898654007343989128798232005937284625964220496537114436995324984823789886237980692249685500362367866658673371105637071074593435611949167845005059328737226543585719695034100194923679478651243815992094901019884638937464737385918852369116748533663786152285217899520825079723338525537202607506325168932614147571994730368016793579534539202997405672376693689295708541280822548055079500315635681750887223694517309110447562280464766373704535273383533242624499474414570188305383581417312713078733083673089819460960252901473952697619399204046254526738569547231129167845484271430556012082122815162584489765261339011289491600687791384420853486280809511337577053244519065150390672563013770881687715902160223053678190098415224946410452035397371535231260084054572084399127442380368258063160794821290028814140569701378842334960570416048606318832873753880069841940693315442870182571087443516389600072162577510260098065598158258259743154485771118657638246902912078465669536846085946728158885949392246499722061062552490477885844023796546869772077658565882634886040958590322228830322332304589285211036983155341910812346688832447465224823077064080049115409218189647195032364914972443437327628944596346032777812367401356922582483262715041742042805596391342076991567808580525440017691285397803793808110945473133697752814369990999122439377103585800392492256058068272996614614923716406011049011163645853959912745975155695451528070672018257597887207333207753341688730646949132752317395537282992544716203427715880547760188191366276997026329749216784929984508361565501444159027344588743460034872722176192209858427885422494798376545223539479739123265283587518406898373243831206509973712475073835267808853760801760368702356685086590108179454533285639977239753578621922531529418730765618059096005905305804900196919187422902283057271985362274985073983281004844144811148450118382068433866379916221818446865075267501485284808772596698643289673914904754177675127162997451616250382217541583902524028002607241039041280934939797363001393522722945309389079150550938680946036725434657140258013658666781084792870324871647664274369157937273049071443036490244696785871059141355572025074775283298657567650112553790175907232347790856808554374429421751977628977518132199596935753118374001615114466551282813714835879251434369169481752685741698373671499783706455368523431866769410492495757721689537045768857827858021487914489038162875308119551897048805122905500963742058915996900762941655490922408640239898755771773548866962149429458191992652399270585137923817489921014554719874946539483301416101129142234080496764280722763903582482443768068695113971883567737296232746163887972930295983403599082397450348697084307842665043729797619959712255818779620960797805770214731808944983110813573518457788524184131541729460276198665132491118572500855638936185365503314628003718164638978849670988746634526689031346039443029282186959165318898181419855912240068783590675524125245745376926713738600590514496809003897985556588913027977303328015705983849543417891419958394146736399767769584277470318995489716225237804003285097860473767522696278688748382392587107103989487843173174479210075725544535346061792918239278168418519993142295998697606900090731682478724645758695926379638129191657016109574041782128132038815204094800375619249345505076977201536680573748160864330814340741534563984100703527514452226340059232769488298285223881248823294092474559526192257263631080283066797080693672076927622822706651488137382148946978593621672487214346733325391720276392887061627467720171194177485433321265160594852311678584003568616012455447141688055524161658991313546659259078725382027323758063880065999240659036751592321478565259583059558191587605834807895190956073021061855947561319870312694406772900351791961098224166473500593254562327891423231277825815470254920198717637029701962486226964558788773347867908717340371050350944935936850933013980025343341930640917651471303718458494894745769130572018047105227470632441800684948716364810763983522938592640760729050351560560876295250344118500059207265710248174666668048001151113339636869849387936765659272747970153211507454551242818760112138443076111032966044005500526912796363785517312796530540408500508595125292511579610739319795342268976779150770649224853045009990606707600170512837852180981504787417268400506464635584130657820492618781217438486869846619976585216014613312331871576710870728246882896866541330374513511874312885114717836137699884517900022854478204427246479496738458069787702411734065165530426328795814314937924601689844517232560752523091183920783190606054301700198196386715298809795652019502796415647774947168303075486865974181609233957922860690437350208234373967657604934372215235950294832480946728884982428691281146050079769929854688740334454506492921885075907983514480358454320706257278865313980585434239446878550141683316440393896950357353274558209916493367611804667679974940713642838774990802808096825572143482572857546742064215063548790686000722263398142590777587422185070990196572877395462917904119101087411305109864634518513361032014080596170847166583918706381954967652471393162940663443638060809582341825116939205714293716812135557026429374785511565329901185818399634045968921444414473333838267139249798473293963869730807835069595124338733215444283459744136241500132758704559847879999565349975757556639843721640400649874312952166491254803043425607187801574122836176512571178166923959334184268509226636982003084288619181354500547706064044465009600673335028812574138953929284427072558220409635311632489206675638623977100956273522710246007555985776797087246725896294337661331900764094585075388713137594694368027300069001559904067772728573505672906381045513309522461720363739006421515587959406048375560281281575387341187564255476876959482951543274156950749265716167071570337897258680524396091681406097243101264476451113398554593906485322570828705289817387241136503621576768533478822270206556846918817832356994958392981278503111161939722456927050051367797563769210929063121513680414916213690006726070471054476773201873865541549411271365997134619963627805472717847424938486118109770611085596922020012882138622295041921784271627135803114613438849801545007401882376533670100175248977698578862298850469240270607985228784483608736196922826164813497792058735542604595869858402813177174030602072860993212928562155025100244753225382944470080698622933570987895853621421081487284115018698825567265640774978870657271822438825185688970344572294931744597596439498310433773302315316057576512051597211978726025453923166696309444775520083489812025169643820770823898248545547302928013058244379810327698879116068096831430124340372740783055408219506243643335486403338174728062765550635271314530290072089933818874970578202823373850515071534955753494734943542056648074078049396045946053162439360175480226563198159286680670845763602928315435722326289136069409706176748917659370024735013183255327290328768463099074146976381682953556071499664494435492897058048954105055860364626288692877483153532532201828422025514515194559855639359505140269532900073421762082239379288520076903431491548181826091446247159706755898534384200920924544600422961610446447766581596429496753824432777984473029580694166322930613251899663373274117908748637292765188405209586480005538369374790864510670199689627694273435048815785862705671984159470987217017589655999807150371134724378663734447513106889146331509306782853856445641454710792690616496993266030170457004192649184273251308568901416120537574693428620232039979470758671695266638984940280863668149950174376909538398206412912360394209859836097269665412985439385131898812193880226987773221157677936904706452535078619940919203866974794209746277564840788450861940315916078678400919343386425415891790007188307412072669645333494623939138973656639729471375231374319460634571321846637244190000249324170241408772098178434238374941197471083148404901148894550748320531444880805977455910323164428322786787168245086776546111634889644684865388436643543139910028685699517324299555094805658537321266499097226316525376176151481078508835716361310253149161777671429822501835902578790254419825792655489608018362519798098309623584982013300569977816363517141342959945676172985936259495309390647302991829081739062243948785537391526253815728741619837833168440612354943708122718892934229308916128656876583322259399638484881282493876001791044317107930456986990510362741484619679546736067535698626908240563091337526708988165224843923388995061781428664766752560107975266265213316072222242884553848208375174414367091068421061724968584166697882021063347146973912056760500277293932994685854855344216616202392102108936324775056050673493015148867301064917191530508666071411258060005632762702988995447007665979169257670648317710626885559582408378601370046573257029561037373518906766193356073511004637844632926385545036064746434365339429464924430092946527592681630651778611716054672783043528964679031988161098217821600160948899255439287807619400440845123967567483275071534907673606740632641670372682722241270624788599889622851361216022555529959849828018800977609014199911412203392775481085164321061175368534572878713245247627451961663785614661313267977946600932303381341950100763012107535111487701132116809594383042028335277246686945727988121553463218903811112061062312193175543129507933786086959192463770289987914827045263055600724609525156580145686291950102781143803986351660077444895999738572494168876890491594911933223019905729805981689549931567991825629971021416007577833743433523279236394932392059969256194571494436502202145544200089345898236426537184624173368844831227541904348675695266679656010687537764719104781156234583669006389324525283651039730489396166900367352738677644294616080852601124533136060590866753496071719652512734814250034174239019294987942329301867481229151247231664435631672995350957846321311459101073436193882062447764255055259312411445682023616863716587275640401069378501138022524094995764128772427559047523925830900257472013939328311062809367163071553088717903241219119488732146838237016831325468560148470439553478515781719108034197275332518361165584051931690053522637668984933819441952331904199028017759862023017111509471266332377855173595134858570160610082843659232599606024536808627869845888876085641292536688642637933700650872103176737600291914927837861628906956061659628084949724262556590567852441792967941521231503004915332220054263670586516785691651300666421992950157035969410382972376658925676918668601400106488924311803973659615543627486912939716490711812362125687507430689784299912615630752702261853804133852229319409830068791106269548471834784741366316241872377480979441619955007655535148419789214320642845261404331135537898600842145543833809143922275792920599402960374613964268654361325437131504666624701587040662648047732938201812361577963130331922227100945588069767773252813059984161815257752805639233303857156829090679990979317586564718227359060867143666835996040896314729349325013518740839271709723802928225490955518151070601759752339787586884436095343734946443533884057764866205286138329309585257032564983216836059792152207116410620040751118853615459959316693859295703015502768058650910532765350478611357046058011467543346488118795178464384685922451396769729278295083183393945682453330812532403170177121047785960021056015095353069818329764576598650389183115034602125588405606510852544168333992048981041431059073715802049387512435320382319815615411778946678896274819780364843556198780870864157788754999666446865312820561949807263266703100867465011143690694748147261625768633819552260741924453975820259341792427274155416466013767526229008362650471708243105198391965416176921789760313739167806463687018152780451531985910713668692723632965820191872673001531437352381070697422338835644688788836697950901020509090658518238096530400425159567223039688615897670594817233342716937448785866519656783762548482954272692110739445994968987421814986260508874357293302762357405267305762294738539365125255836456107166331483791437143755082822142061639965273572573671940552806226490074531292656237815206750688017488286424274430266431600296936666062851428786584124797493247916734812727341227212075159454278414529642323354233853378276125413761459994070619063527851396533817469246195483420288810616370277133342881596592714474984189044284829288634353978842619456235835447855531310744487198753969028672497957446852784035351130102536738921273543942625705575679385711062096963775057462788459759074654565256427787821510759599787907399230438211774958807429618675008621595430329459121083528961271326329602383191628459535233678479097696060879555881031973678648660462365393447641241929469864372001864954894798464242767889131425072659393209484830963144757295332133968842956728388719467235339457837179930810016100416573586274356572885073791154555145571881894593666563771161199259901564418254411476978711870435833018506650885831679085928474583387015980957928612275919161619574965486330451596120290915797912504748815011536247766783125443989147440544803364794619495407788812053386153967814721339143510994174544356547010279235364947784335394111867660561709367823107994839160512949713581158428171041151192885181213675526824087691822858648440183464274518345998932825567079239168021117816756662715262556341656957603197141175074743456131296136721674801520856034862700331038749107538120696342834090191553463937595844874069500132314385688019628170821433066100196960627755058682002141400963186914507921912765144297181688928240782899174539286283469990683006077895443120745487682481059364910715947715334804967252148664964892360312656969050915905466365797081732692861155316337749874847750699352684468630215192904862547516947070293577620423092541283854392875764757074103494940452289110409122252876905067957326930659467949523889406275926247159547616565355628921602347783652241316871940530643004451770060050765582363346443029834100199336247630447193603071996383207451205713124002801787420487039000787520115218559140074787424755770653422444731895766017120774707099270254214825477595368384962602293526083071294257544526295773316547823446739076879138524836211324576081565285764991357738592381501995663121540405357981392340468546351031752548497900793089925362942048691350392717189284234412317747861735484074661848119052335205691106058148219409401319346424010628472982331227280121907902654328713658786239373770041307439990516769606229084642285715650850227667466273728827572066782126813362447411212493068135785514162520539926340499866476205428241360243231838096020700800868877069533149378463580716931057927211755628805299738868120950729648130950907239612549521434289601507476228027444396118916105629192501771501345697977152171521775843295684694407162779255743301760712650612706878761907016021149432877989449493615356122093921183508871264542118567234581169951310530761175977267099580696644779761443941153280348772282180657654806224990693800443116626507375379640726212582127808812806131912228937955141261179721963236839333834482468996600905959255888151987070716890198516866599249904406048460140614916395792889821020556147718919584758389811938939671899131697189649126061658626756089373631817112306235140319801128165231702805258873116100326967827151932917868314737923430135543469744054572875655211501760272282471919586478202155772533891747533624244171968392570225763490921419680173000169333914093822178017917325346212402164087821370755709120458875499659339411941069004784583046174594961671627942564907409668558607694831328440581892373317739285201490635124063507676240186582467873571349361000544097188713862624513681914376759962699374536639788691223953761987470057229379475819267069556601929620792740132696322577717516539200039450069256349720773249091058631317059094037090426333043131376017728858613894558222663429963402411693102362845589725798909966690278137692498158582171061348080327126567174813559480533346070191524041518460236311482368495202568339550590201127423006603789613280455233394808841606401601643092292532291437070318718439570961392653545392051809990758375646658672084935866790414769554132585669052844366348429208029548664837966865228635131992255932192781345978433585570016280762489739219543793495839077362942124850306136844176703316450400174779973124287641342392529669770280462063172622044833899805282507805209294369875527699157246555787726022929542894094801539538526776591207205082411653376241831491567634914451465363089731108740760830475174219160341490745264488019851866479711412622009086450469731651990906104625966078042477765678339120574937790469923594370570729461172896283095383908890777767225698533338772458110844568502688360514288717468400980643770539186779786092301106000088421208373602482372434492812337056303086218691358691724527023372473357243840807587203387347577482844220879019945767885461157705890161774271086659941883855571628291006051088384989583986706748232823514397829188221058132112631509034656519789541629280224735022029088097671726259778385177478106527925328965182484644985339261157255539415224117934154007317158890384349586059519453090293463835218059791347654640223656833798048574319715276710222919966999544443144895728515645960878947563416419391718673328048560434208485671500956501549703853970884359091954430667280634305123918992351847069859150017664005951455212605939422068322688452125231857674894435182831866128614156972335556109517992647686333676045732113325991127576412901260493166283646491006618088509933741632700990469535186652858868508960512357266608909075007607974616317887496389737238836053065894788903984706809180894959903820478427719619204532370882555753154549967141548422276640845254802977668357631410955438049147637230024756982589537822560709699187232848444251357188722241728738000072717730280508281236674780451702955104104225226778103432796667987513659853082949409378877256143375636747838298122051102227181011014440651936040009112789373281609826317615742691407887602152478489015388498577488887495747290582226407334872829133240770543879425945388590682631354683358000251188652600007839329834137097653177687056391850882885074206826681972055791689213100332523316722687992569331296405893291984767106506418660807556039322193839205196128683937801949343381887165760445718055040034615870679090650732271604384993997295987133485605541373462988656342980279964163911350080367716151948594769496629445636806820476673208918232157859350665488027883112401849930107809554683427087196891432538521518093968437099165349030296372398862872973015195058109177853849122849571309923952800780821715845181724248452316315974417863061694233307332939068864453626268531467018019982030025612421706571748808709698777401137714042021339096544913787298748325169488511092304884413491681941052448623202108569765716427127181654595402955727156413649343175663048408649275662864275313401868719227811931160220431082148663067700795163052261791761294796110206085600061799585366583972018488244772918109119928493856118048725025034772639638825116175930832491302130857535630210783294823629548615530296359138844434243152125630842295822533053366581378479905226372128081337868553834528709677970665584964184274731296007709342771752155755759143700740054163606303834172453882498146418576769254063971853304457376527971046410477364066410468155786587619141187625129193337732789452339955133517922612925186135112389413569814240500761740164868228340757409990019740596203982051639088714327364849787009827572081049930507166378272031524379051467357086092378815973573413413225601877624410029074414163174534140668219903978258150874245568621303364723929254010304617459183345868096576568782329363310817814413697966464891678604178846907121551456638537631330229650482201711535494878252931431812338652672250171086542172067011090659512424093019071718039667347206508482562970845391683095027655810193665505998695822392975703923812403875361741584438761568400455552721700321648135816766589536831700670886981065258095351262540002081001641462059170484894050269998861397558465168637531836236042112702359742638953589405007188809970050399573057872840967194860933019904502431046311954476157326484661385556237964336839636942217391125999408650426966992297288051004321164974101031531309582190237848369494654494160567248437669269384840262207056424663143001339943390888496254820094751423021712720130364290062125017006652130922921708138811135717284059059805057750114941418920105815874427581973443278168012713883703362621145354816367651911710748275386387194332410842490764597108088303859392418250281553766775468615188225372739120312853932907306592301029248373324899446577939602863639675493572079457707374754461601780320152117737534669277419598091465129633198441255011792204024751432670471621498141661738354546245843803557894810976972394459718416322409777386227399786580909601836270114210143035680326042979834194594462330703962296157574736405083937014045845398499176294481828334420096861017367372780987114554775068789974934889820190912833777381435080650822976765628874219012624612446215494055985417605991387983083426176719445192887261799405333104134248397937617352530855880921258610805674675675095945035693428049046836783665793100593591519945685158343777199220086746408834746633361447181330900732289695486817005371802140807446858674145177343458961432097311464117326232802988454843162022222699680375871914305801264391286317595070619626623156982807502650353329554406624979371282316385088923480941399540039992519412330934983327926538286954489885774199127552501190516907689487629632929215390655779548403316061525668740958624849228319392371429585908541369004833683929656548749343662909845030803689234453481874852065394190432003667927494930034998250262805915850735883544676417756444436035325851500975587873957375407021924150283260456592803098676691312890337508915894787541821586923184163438228630389873014104184177804029510185976829093221588905868144452170125984128118757234768372841462868514827237284697841487115401840567075326016067358474921726775273718675749843141431554774627728698428827864945359662598524792713688025671521402143076639587112948395197837693485366883898228258143128284485583502812774329309051101250487180258392407328757401411518317375902928722741138340392076899391377445899721922690720105790055023712709554170923553617466194912122294246715772283039779759383770081080871765892820897901693502992015326564400297244433607777234771543464045059244512896748318733571512081438212017213544317188127562619499083662502837685873353654832786827199593617332404609393436036884344930066279034356142896523589810521081179822620590351375887191487042585304732578823241882269793154000850586908781066148181340200250295427433663082018965020807450034916041321852165231324210402485091913917336067320120471185342040165195780699704551972743023370481486499761555434932878584113208426015010211229818858430514582354677556287689484535591950587364653111841274054386810062624258940770475438230324843416751344791609292979861641440176364968586171720911359654869301471935188700695291687017720389583527795223424153596485568542464711003334895619371819050032728508403193274640770192924780018070617556730751408879173871792360352535320712866699543201741340087073337375107677853065969385777009205511621160169879914860051957227784286392053890701595593478817344708650731372626515651959157171462360494787338788169809788059404044028594980941453292555811432992615286332246234806752767503857114825959690453727904049800854041998482728662642524140667002547993538781115156351449049823258958696769117228811271560426689053788977081461231924141127433036063373359648885632916238590602034872684691064136979140121795058442723934682638678706378226971812770972003191427039748847071672922322427799236602101321801556513990142512627042575719866835731377164205904795558533972085308891413222674560051603130355328933223985437256627241617720477482237063056213384798729432206095999042826454144472167465320325527352194880028513639733715356187790728915066386479979430009280698139319805978614535609145743722620420171568511679264447209973521896431109312766444362288742254136657412656426021340094540279421144190609327597452695410853089978173366046292329514533070951628570894808100584248450670882443316622103412761954910375425660562074430374194694200546097267820079804091423922076702281832395989749298867481954154962853505894314490419334393500084426092272478254311266466188249872552488048388504052641142237488022529444530062861374803903007708876832151210459465013458213054207145207833189401979097167216748579832570805549396636268639735008277002823865737961262920170255789274067672217227365399929605216273803894158298402227567955694718887050471478122147805472978807668691868375620219335080032384163943484567162731554728694163428070102048656076842557254813787018340508088600461041209466021026790981240304268309127921850654211308230735261852398408901287787040652434095887194011481436795682744360009370424154098527062539446041824058725403443857735020121050115274934946966489581954722426091729183395919071639754987028683395608723784378978906962260605249936170186857349016409288894176127691822541318034266656060687921706419412044023457425769035803667446804988641019126131458019073906639228806230219962325048772941365735079954936925564315726019732508988818845728278816822346106531717798414897993658277320980176192968987213873047619671297956778835917008023911291052061538311126352426514194275059289932014642613644081188321375079309675415709410071413041985556114174503372818756378382013671956069256101032027562200638065122391409426139471228269942046030864765027895765324282893159174984623283012507793568556127155165874079288646326610626587268584407764165155454316425486066557787123220033442189647214801823424724258693045776941147646022428261516258832318899128588768816630696771203681385435125968257968935791209418176455732803506502098411699127332221564002791933609371788030110627759288780191384544858254528359678564956917726254793504775781283128600572029653580588784217214167019961667543775843207716139723685959825524797222398672033120038865649034078060679864628472543875397178701865222179804338743290365738493777062623465909192497037326953364637499157247424074941431861293215222684697798797412199744278892130006750936580697719778412876630942783670977597111921157304333553850910321080033990555085348157383500236561002814272618415970822680024192163764524668688210646699377914103687989907222645758136779629402101065990390964414084617924861696533534869555267063474964306003827507596086725678753555020390174496049154151419643389875826008877295521688396750088312232790196487198993657181796983812290010466638400929429217415030031351100908839594885983444519285180975920543953893190143996997150124503443659936440575781692537223768006167048400906093412556531777057684743451894920755194449008224920561142829919917155286934354843733843887433754606352007690746608426234189723487042185941459420505444142091169189825009130100401030973262950932387824919817109078973883080237901619595907983366984493046989715563163837560035969088008853073136102046693635961691257030032928323750017955221469047864844994895672096326941496426167539656324167020907402778676898863827991730261523843603912510841904181481244982807722582664205117456688904957411612161576746741521832307877243122564579571664298235840369954835733186735050518593662381364242972204937887428638868153649647483589018205677394028925183618115359333768323533111759729265825929082801413199262995205033324078313553172706582182091103050358391203635630440711359663692925247705039647190034835999255774230772854219285065767048174206718154199378650928821640314089425826625920613134299227740623580459672345008302314635028111314189292752559561581425699082808711481200217329681661272483256735325958977141942387239426317870281674492158297275448863551483778204981985563712118354631631215037318651492290348155285284495676770955353950991269005631035509238875505573793937123038066907678954061429806778484868337436907002330966126000576772708291440216470523612682259098274525293634270308015422640379679528555296592005184513317534814045951626742169067271978955878782592290894066054278085081789512653607449401266429016088022787235679401240118778971444406385510284209057173742133924390775741302393789090861781040698800441371557709523793541752641385684566290297768892032268854586145011935769881975910919063099698951341255545197043059186862268142253384033295751523337005509898786890498292382014852505563925622933831566278210604311816048814441789496547778156407668376994617995877611347182794926492275473295231167035296691761621726258270024562718133720597883303018321454179769409585096415608688323720853860585748181053820480584101844237080845507680846815484762646756743032989418683512865554197394636211120154857220167758000938528187060440779885796098496918489833899846461422771319252566065646899990013779668950389337062249629881239564050304108700322269768116850325882314132943824464724894068681760436683698037150914570073078265613398597567511362895504762419425362856789556237587519419828729433389385906818578144785827361159539515171440887434883057643695132974152614877035540657366129640019739933398139969254650858840772202342043257919486011902074564984479804475178723248193863181144375072084111329565968926312416254973192967742972789390619901671476491817473929083117563050806258659293150895772338815828223445897057164527163744628965413785273393495867747036182336823784401397030121560479709140461004200954792465950308989731122390358098375375921462914710992628797932064145307757363562100139172889010654371753762860237505330005044669853969699596777972242835914985949780714834419842461907648054364460084347758945152633645574744492878977784690390446895017656004829375336756695594093098954735295575118189586739703799035747426986575991271841220832803336798871797531102455692488076955834754832329170483669470832703477339201482472354806353265006731350734066036274679716862455875945267186581214245421021776045287395099033287616556829958005968311949839334594015999235783702721757335065336172503171801283704762647476873883855922469302345116248284892804766096463515177679775256341401048501652141393333838461783873107928490526590159703650486227367660191322730222288973674886229181675952845727480237369018342268873840704327927301694759771361975819802527195141327266893519049951690839315331357583829816242266598766545420865932635181188020675391682038873650901336956130521282204248507055934857449804668564270438386671423700817475818196642470257992670084208801696798502876457282136542978955078362518123006619849561997475442950936958126868685385011799845557478568482285027073855628220946036844586983520308961503189658703423746293735726261306706418493665042423262849192963184560888846869845269734893498969828735423569619658904772829767831051420132858169679458432376758137428126425468570804944496091198761782238712994954619700884840759393388085397724109295562238214944407460214140581800272394345001476732903996851851780427416991155598027741174916727215705107403991706702558119682576758214441217711869899654444697812431630659443670885869612020972276027864430729247372302194332775772979242454027451346272676548366473932915075687497855798293155105206082851518760731918472814940418011752685851243937808623937707191491041353263305835251441935491190819347846753022670889823195678575695105512172077182768748220444108786492275035730201743701926558634301053921651252129366383650557256586542119274804295707603491609168299671006644965232808455718434851366207467511820676970265926807595117731909138692036865849298589892540614541836700463816074090201509417842875271371793978295908705710341770514029747480977230451497670067345889652761540127403967383943464022583369220257256167344370393051458739129798280528108332618726046897492805191155289822795815457402301609400685241548079031880433022255032036403315973460511834912752237846847061815965906254947652465108742271290463085487260312994132702993389772628344845206462070865420819670959748806754473026542099096556502351720699451297317606660854271561927866403819695234996928652224274265554198497899356983628176930442522971183213245215797425867980618788896888728911270248284349471358376736949018005414795523347402702973560395352209382829586221399316732563288178933835513928433775737315697246673770692836391614016801705635697504093430226298667500199637789244137538155255883275666989294011058381273314335020422645276640370427528361521803196013662662114266673790461833579629766967244899952904935633835095524063058116019981677679220866160854634208413688285452070287679123465917045753080323238609328163456813277121102909134589984592379101515080122243804420928285398842064592826885709329814858013394305128052915518194690774410955739764758356218120951608192324213667008155928719202201630785645928034496723141403214643365022410008021670972513553841344966233292876892609428167506996464624620060418379051301814896287709545379445670203243733637375890865633459272572510386664347978192080216952578330305863391057885130280997609822811666603737357235474509318993468575369893485512929236066758623381716288802947940886518019581584622881844335090293518615588023293878832102105942348757927531278870093650160650012930606363842667078973365706344252074194824852602467959069139382184260398128204500010540321682963465593417785813424201029413719507608826017341443594273811421687136450836368983329650659901226298811968025583383669123336976367856794085162228450103528251385534452897855955804194002502820822155718614494921426595207339665894740739262391372563634100183491948603478497572578535666214835548124674914825633424103275338397992421509264778527833565795900609514649682023748735897274679887068963909553345095187260466281114847893216701490307332106429817104043789478616305221177937866182011760565648812095864400684360281435459229302464618273713770457096055530333227455431744754295133418787075269228331983706151521662390483319040860254858238646388077801781444592317299710408091932793766871031385516884112758500158752516059884484536927807804882766428411175879123737482912576949845236724386066070046131682303791673658723110441835994930964883616136481481720039130139101310238545810536585506564911754396566407201164486835125426124607174782276878389180179791436228298526437046821890412563430871129711027491656528810815046419086054597750395055197660301627956644032644191107993610902471338205854592351159060221217821366114667142856446344576872118930712741299900463914240977631702299550127504237875815358719123303114274836979130104063206817934706375530546817394515171884132605194457354134950519292914561527063400527706220752118164892358092142890087274068177941485764009901793250760277181381553929868307092533304071612653840902815825753344784149671750685601180095929010654743666265874524781863711515228349750298932685008733604675822187290573112070266439765819266843838137081272572607931870372429132047479122468226510706449435638695222996853390245393159805239597392045102558853892280488351766361701983191093063992786227503617609887140766125342715338267318402294218042879358682878327843719152970797956217556823926902617476719061293227640910910230643711184822679619807865671941898766994257728470308298811869116269655375121329848161704316348968718517694974957289138222820560217286649751944641558997049479882204287955503153603539171381899663674070729255964466427146230586239277283226474033893125970378826831139814545635612288155625886914660597872093088692293960389654063207742620290950427265927246868885541661325179569976667404149443879912445331875292638370811550216670969585845186386307223929154398150003274095456669823993429123592780575283613650016868039541505576957421309462999581062962563459330134093699925967923087086874852140707362213958860750214452523053644506367867499667462398279934972321789993919793500296355262139563523265965054929522146046446067036820938525939844095908902153888229199067320203704501951024779656675379611284826208234705504173446360690325720773371074888906976996045327959101552170872310052656075363372731211500094650033642625676386348573897314550451277962010913324259481993990246726421296797139651194406288221463993682175332682523359351809073696265157632181775819880929324430584419566925395689324447192112504319952701590002409295567399429840628990707516754194726490957323632295743053877811121101035489185346603139949364023536570285382290702081587252143406332471340536288063610489637856354725756689222462880200846821104648806716095811413422006907841425809102992991220892543361781117731474429016060024916876554187140656048498710272183198477679802938224546541728493290829378077454329826754677535755761999082420962497262547121017191032981883109763788779783247977174934639437216015861256801962486831278661725857268922458701679365461718616699928670976626652047964280942533831822408933323829117316115618024591135070008456829997282671230469719433168868260092552121718036919799357500851186499670154264840178021706720981006420078027373698343070934672697100638890783610945881915556761021316916392344538018831956324597286578596700928505631618532702914722695540345849500652638417959228957817794977795267471421328167158623258699835378870614744382617895341000241552066783037099165662084440979470974648818235964851051300160846992382591841971035941560517593180107878812885360609397821008143902295630717505839184050423610817798370635041133849385859421692141569105103171421669578267047176718844920067495047806261622534187566409256725053244488168323605726301906025612883811596637116400915627241127263196419382835573664767327171800866396366898176702622492732894164791710950979487944187655370647173895358347732479916479471796485199706987993502506993435966258376960764639313130048952100136203262636975681094890340443858097343391000700446559481471441879752730082880473202454633534691387688109880581564918209850292139105591118597058360376766345305543551510315702550670238202281953736892897951021138248066434242233652274925426071423630745496998843631486741984620765167052046710432293748735053087087582265537722310488492350189748200221769242349009692034445270078625774233940513934696539403436875667388238653037375320224354513751890418389938440741225536520308125868055336033088869822338138588500123845714311375031472243141251101084592245429256516103945105235389804838352525147636679704449540718614263041023316603721265104259588854315864217518643262174462303213615594722770454340399817178799760141139788197604874850580928774231928525130496276255802311003893611442471520634147057550956527058643354328149157150267657167648430180902349176308221072145516781428624299965925938094506342938716359844708348956580596331254848545238458727860475228258521510144416930991898366143047023545860078149008695521888856882348593418093470067711473247096149312717854589260364840223625979244719419317282765179923199299885099495850105727808918930245562456498400731719651194038204478927297206233752969353722986185204460475793648482816616220750504516361969724871173199180568355811525584836818143770231401597158750310393251471721241796643226624139062969194537664749231850358598496595481763548823917025094249562201711663352792343726196180800716399052550530282281714008419073538100317375688130170773527990051724552246109252674057166083190500755993901721286460577501966261677670881646175859812226578891229216099835444858307376266325190888052228445228938822306925246612812099428216743878059500730397980010659435296176992086133732544408284691581605965951529110540058389306644689472001993363037618960895459886485939650515015272324040186298290817431883242373807620732135623935566355828053277156582379489865850798324752461294598242443257837368109554963016190013840590939639975550812349727923243021548375226860626337412873736821076386901674710695980507782512615588706915022046250860710217913171269488244463191627024027569600555748763667237991773560992046542002267160503788732879393639167200188442955430072973249950363672326660181851046095772076436732587052717130748009468655556509166345543606010567650816095250754327224782160452705982455750035214070109079470918766581851452847139862659459262085410890334584485972790811722104141736491986338433785330335378980452478619315433307025961743263058042166120925096151732009098715581089817838537613019353341672673786286964527118722286059907185951347566815639750261172510980303689476279333629703110483297245554287562075415081956058629716511187476542821893256080605839371499991342456225282264717264766477277871546857331054463929041177114630202333122918115355964613638129616764082339506683233423947795940012844256175189200389536713259479242726493965013280860239754205210553076123557989301299970601412010582067114665217895768557859100078645956948652627839944532730065097302446766433314837763988489901334083664856035911094885953586433562456256955044695513857259733409817989756428493335964848618177076618689158650519122602768170884317448363849473154618299555108714033798319211925411957954655466273404028869713061966681162018779461230420357223039882804637470316600024602258870963232771363816593954224448574657021594075213374652128324800910602583028757685537249667282809418173239872800332798056390650350007389183672130245203897438761522366383883954244961616236557558262487736996408443468971111239577788968379148334753256269155428220272415915300263534277526670998782189514272189385699291643904210698663862225580150206849799328367429772774629231899076982806030614553458718896146954095494532753925951038523606530608103011399828042180580693263502754574778376129780460548150372205378320898391585585996541030278749337160588032179065211467763248092739687991027160978154285914806433307495950256006119596393361197613686354129210996457437868183104392982646760777361646641178753244660330518921971245763607528378898332038105732619981714145295839652915543763333862857163943059236627360728366584193091370288675260289984066531193555328178334383860150305498198730676453214842245126892857992389120152565436355026325004605374352415644550398523683439045591739979539374484836188411743000329299096388176826202245901086762953809902859856974510394031475402477622599786051868743933589629104769392544974848865219311157097480996213310385150341979851733236270447889901030899908258665760394018811011419496869036140500120452567616049116902545589228332025277180790093854432812747316579709610820731623886023168148563597767438723032970364423297745927792747149771304231723976213381363109112235834227922314348258123109842053171116507339100521238069298538353707960662915186181035426798477888097366606686078376360321104016916393537293457177392454225835942150556344912630813717459455782130347005841570268978603897930846400059702904119896839945851880606140349079219161945964282062772643089385909801990928285850624386268559034695876731546759318179666167052573577665278854181184836133920189556924542766014740941283956931468368778853854584949567597261357550059601351845904294791357026126911776633836486833028699313576099621049852283707487392673718197595163914372876355242485101084677669873533373615189188553712661902068878007470216942711839002343120780783755700254848874911303541758986884653561213337105950493794956785530509843901264311876594004487320717496561843735909769957584628514456780897681662708805043990196462068267887367584506392652709370707095350969917384442540521500245132091575461890144577366476034846385392915052636146483786887240191220737273489387974121939369487290432645573548308246405898128727725564297570033287766047902305323031760148115703294348942969038373099737710666938175678585325740702111630000633920551853415133046937354745867001062693123715989448701851170070086911792583118785865480870346725667675484843401250133829389667462287990322813244648072673494469968243911423462215776076125062569576388748498796502334945773908419617673214409472159204609983480141235217091652929272247524619941383916519807825718100047917694688494183824160178015426068832098957793240658540296078155432437905976466515846067160853160661846919045365825963817215190996459502714479161193557974682682994232426997833128504282937005106310455568782405372471975645191616303385861806143683890056854978873155324330592373306270148920784884215911253108569867706139168427250769627295853127035588957581185288684737625888999298343694624560896722405859603003229399460181708779523011718347319993963417198842431920817394558093447624603059442319930243633217591445555677729865597054015927550740380297803105989678925870816720451786163442035696907343755513741245272255542957037998615265729773808410202724397546028920855066124064482279895462102519477078087708421774652683644237346003377989607610986424143848619006344792563580849486045192911932970736298834635882318758723215937071331162622263446262459289518026270691741708962114173338690742504140645755260841046844080066577566855374960604877262175945441684825641118694260877739263003186978328064128760553290159525293247144880280012836071764651657224608551544865065796055730614914959649473897585580433480210054477758676905808126883562162321176719339889996382238706405760110713246936896073159832730486138041824519251709286666880755422104450271670252001100847748525668518589261633215757625750447396581379543782102393907676856073943792415887184123862149833700943609399991460507682187243126459132903527172809621446227376747208724660819756396161728392020302623609119518813154553528708096711539216532872282641738198951757401061170541928984527366817379788938964557053715700407683850966062976154738937665683040667666068637630161923830590567095567355016102385443384765696817835319959303793665878230768623959590954789184254241779860811229968449850203464755209398754349757429345454559868197384939539925108191215200969439881098497647931988275603192245962249342908690000454036936799305045807794762749848584150714942381804941791218150362850244509103304394343339059651626556898788717944008047763490158442390512399291839415248108735608588161012610401282315045970610929591155376697182705546086472521090815345723163395574751276774475565567209437385320327510756240839860874022491699912210583026966995452252407813212209602913133003440242746651485162854360460126609477255851181891823773169568668411355114268102403598599767803156531949194125136596157556911675639257808119607399949000623525537036527667464136625872878931928332378919094655867247076907886143794849378705519474040330335915787198335084679949046934362981011475679984364881369310393374437139800906163830790890713805015422943461873946123850967555595489783030440782397407873156376362170637104552253660803703228336303414396621614428467926447934275187557329074664583514377353850201931120474460682382143645572753358484709020226589769901157815245976216700956559456071256545170389049413865222081211322699979238126360265054357612602831336947404072616006307759379707233214901193593168721012901657747857710663930095716493566802883248739909807538833634855195273307315206932254857021976428171199934982890290629496109498311727861740006937582127165673367713271691150575133766303913314432126035777491031148384183026307492846258194292352401548178553397540754103811867066419907667868438421131967623940094429104554442506987877858998309987761279586592102332998707076144123448800678239840925272029252205927811970977598888562319890404804665621392222390325298745418771334344920953924066214853299482147405485382301129837762754103025663380318302081170623324228559591434164023648820998801312861461819541024287962133892640217741830179813565075508030177522993767074976609951470606098176165806333859633019427423792706942888883907671471104403015352219506626079537632995301359802271618997155230361459116285713944414742752731648221023986125227185608527356294408673485345593994537166687186805585038985785478708655626257808169874068724951889825143253814716351248397030536661804775831448909280496896957448193679805250253435826200301699776164766984042179323625254560293815654292606462171506538745216244711479587014492507311465469911036828882020641407437456999680542639918581454737631974421458799229263241364523186675507145595865424956912539446716620493128163510000343211240152214114932203715379089386514560526787974206875247192281643268121694260609234494601823474762229848175856895259334210504156533908965299720707646377162833548375196809633651375396437920526418897607560771038372522179482595566759336499168300443695427507887990620610941347008553229956683090463791836529452536886380810063916156621076327455575171537887004320311297799141272030907093613733039617880697611525972638190422294505303901085444633048829211129025473292075143350867357745239097287748143805044110123892327982760735993848869490131807308775695355956481756911490137589104971021182363756203275387559941270055898811265249984514282566957495552581316670863063225034152627399577081903738123382256213743109484873040476747259731150075885367655120965710081146557903966521449037766466807986006516327997351832120344802054173804412701549525894380126594563252558427540405549494057051664554072892801300098359784728731230527774807461031561286835370848049582228681179482516631509060517491478369484775123969488517766784539127357423071326215729634090954111004562758778523949838576775722842450125360427930969017490796796129055948283593223472966859644529998205177901716408294999322051096279046551827136913780960190952561466592642029334756860219978988989161526233998730835865304374922072968628821569186601612062301554720557147947531277202118051179082423207577805064836614213428302744630036794364368272342704880343419527432454492424220268883793324696421483573387248477648489040736429370240669244838405595342785266280844785702721445502548020418413506815331172042890197477416765664214572926817262804161471879739085434610043599838000941184293125846502379442644800521172020814225432485843506309036340502760344811350245447094988978783069408785892019205831409954859126164920662383632471929446915347812435016754196250224227524789122132941368204335896896893967906363525823815654478917938523068923555173397951411842207282252754735753347446483505644061119682431140884037796457525492743531592791571639468854578488008039116169433618145251398140317943828481986828170964172610246632848624882612434633990866498023363741312274470146379958834762675323222263536194415246728729396626646900110914379460723881146277621411111833340588315315468922109059981174041184334465489791834189191998455841105141468216399954976834042094601378264991071318518766222358194428735908601296600432437590273812622578285782518704024457591314918678233017509050355850543383669538932518162871123948080633869067958753972520705801365958821238100069078013473496308483073208472090950264315229217071985955906955326657550689159728461969247432593730055518827230241111667423641070562445919226711754638961445480197223639712761555638982091025164326295939230009128104219570314996722988797919485031079637991170702521411633060929140847410591528471653076048184676945377157975271222462500095196717850118437345743315117107290009919301487570089700342886477365320342770099815915877401938226662141091842399416300171908039826108025528137810816288030435083758007462502160193531150790091965741302375902037104517094009357966796318962691622047845419306677640668443232919010747283604211030327103500971373876214624564980894615298262657845647613830096951109751894580121756628926617164356884824538285293573821947556447743319318272096610298072586969234518588489950637391405683146933699762022154480660950767067356098304695190871365122084659526765659573287433456721791032645712833366955315356906515101716749944145083470143190223312726488032954479600585106056273946525504569395820367418935978965262308446811188097826107230819788887037109839039349265964850569265165425862182890762393153105180944135132186150218789196899443672931316662681837437345059070406209965898697111055133490855679030030468586323214164963867612012808780946341804420398793931291227322883840542014458141251970692565570236116878203047676816445132864909175432478420242741225273503317125227172572515750476510940994569196032567869268120336358752773090242251700044900115883906162509589247431464743694437280187000251209678083035091094189124652527132917949632875220037211003743980303922180301984022784957346039866388287060510084337510625098479836509263220650192009434965126014402038190009890308515893858807953283695021154630843588029048207639897536792364139067944802007671001351838176224350732511464441323135806519702352482050025043281476941544459519055862473749438725864067648009134074370195304844104726779459776673865973514090979300213949315901446150432639499624770122717236779900171309797585924315372006440403617212541261776922419770971376832585075009406614904783254353374308299965294220897029210546025312769922714306559172535230860323558242280792960036800610054773494435674386580024881059956690557395596683706489037384989716876171942337398532201945972019252337491606233690247609712368658620652617479986583753632472371379401312929526975862690157362247620872766763823524806991194660515457137362147456886546095773004789219581247173458136482696905617599974442139704180860324590692989292229673170054646369169932490503562892563127237528616341067354899492223486948769600464337513899022221494507254863956751861211557597723995060449813757633880580316095210248351582220746607071986030100839690251357224982088539051383759833321311526109897885835663131983885834645754147519992246815924984268378124095507362060207110168785630382962921860962656560020898841530563777499996526324410238167176944512506457499059401873598569615730089416734648606528403875639918878871379022918879859095938870010467730122854872799249197965155734453331902555319636231209218655987919710234972229979310090493372088772672962294313530995749217390354709901493721327958578362803349969729597628351311853071779539069663825669837663531959364764800445947052369295562356878998031371213209174076349799184999107993886666821852154504308408124056787190990858973202552046293641871817489538378917336549756519239231259676486572774483973482665210379064727469700273683033337837218650632575207565816493700211947350359486011818285243391205037119203902776558388779100280370640686656981127150585969761340176595812738104676135399222352233680666162634199160250771915318836617241795897381174464898838999140380718691530026884920307795251797004308450924292465965635110339008991819017586308667927585274510824873509674609626594221123096770840380734981195094130613636697971882560021371270704077535154946799262256506282210769369478309154108743984457024042464162452503382163073128175449032761458215089639284931641999379633792789567295089454061988940353804102106031108895290297122256625605510858794221042940099824379823046102612506628978941912025308764864428439690713002371287251584760646455415671054861281805420782583627994819338096116788746296947278984803088922896876386732934389651955088755658165291112655460327261407902645294416537689679194375655484994144782913762791973349765429798030847009937712615187728113959828165195552037673979105278517703196446630548056732747774085376852872757730980361276405873068890098876752758484797865112267794014003407348977735880938265357892033087788888145339557308656715514833410943976405303780298785922836279728654535803550554490812420175262477459987918911983251802112067111063061887745701358848029187504288851844396708188082171032135077864321559518771966041503300602748304154491588373372130517766289616130757550924293042789201770949232957171918507405749206939308934010121678259459806519401901181622638036100320939047738912920197215211606048378556799521903322932937497696944444197426948741399874845339972491440240891647817114959601771448302688380386995346578388419577266931322954348149535524283343097029778505788479171146131369057535313768365023047125009501296684191775858438819825938393898815351707802707018702801603834504107838023094388183370835903421419679416048716537731616747188265476248522772985881001636850271890805955292017374684903258460255521787625428227837177525702510338077807752776871109763207867231587222700764285405144115491378192633344079794818390779862308680698469591676546650505659494225604694967410918479647634333387977458510947310584684010137226419589985646097316458593862413246777670606546322983994767960674279283783955186297192641215574995603016495677859762074568751394928118941841141599893487329488354045831848998601324209326555553032638953591112359178712256115820272509619421326571977673587398576226106726521602628056670593836569493667221919582189772034066445451582129158045329480535958262517556380955031139815982594625956806520997381796466888978071216584104129645903037348522343351673521689224984170500395042622209956855705318783182377643753525285551352153095664891309828681837113559756919805677767718375112029989607249094135933640698492217418880066301405510800920920987374995380836186779058064737328430482982176937050170362364559036713379463137594486127834698483628428267909021061156441864277462487038082759470121380722275850181525533387270184579613088177216515016478399524230980577318105500057116039302867890900146571557073483705540882658020259188482047041963791657632459483182327057362120764821814981221071628957672471859111488791063464697883794895925568607384527808908003906063961611277459973261265905641833198209818931626294309518341303521154800148872620249454669054754126946928784095464769465774163811576606422970640148877363726730448710980447764235674343385214936292436706801333173441717705893466122290786766169113377774774582555854854744130371090084743162084286502641453394855122347983244457326031684520722446548118074131659807417000341800591456384065575695430431343095016121508866404282315241861307844822450814309280943311170280547650286156003697902323154592700947697858273154004459831158393975721401060310502093484511621945240059823637104839801971317874981489374774380663450757621197353054212987439474293686462301620862844087440733691696087420450376526695548856032333205976475616418908630995354406007248567346267157461131765580810056509306651864287734084657417716251621821492887878281816936181485360531091086845368918473531794908318493464871736454247090302270156704508771022333172165680155813385597263193068557110377025782112006178811278552264164300596253871032773073378194923377023992770308299792134459933165863597356192051007973300633181916002062700425862394503878857145226463196336991349920358752730644613927984897256113678508605850778861317735001571865756421987221316489638029782867777517251954754462245592283111551661773827040297997414250720325937614477292481882712707420704868560712548199287962590194317046961502004056372597746935694274263761215690107786824825402803269037913641977335773798493795954102266889065848121279971519665059820744073250128252030431087437142271258547694181870673001248699321863601554648350511170411604489339505297672614355413606062226974032928736297138076426917837294347126910134283760268912385487264538114654467584560913037009029594846469917579136237320228689779239654300959392858568325353428584257811619324158002733192652020066438800250974221125165003314558689102015025968492663075727366658935893850784289951776713452442254625029284225130343861156624967651744745884126012658051413493351033612495957953393500116613554285425454942708729032632371773523727507271945480202815278033947921038804206327454977330770582539369401213215819377966132407903043510903446707865989668903216225846494751542811822078658252507367746863668350106445138013580997123119725483190940626800806817218410099302744786845031820680207916491868575393842133610459040429808639141109349316320971651221344980111207603812645730896963909163675332629534028491788223998135695663385151174760534348563393271346542425829000261136041202130046810444311065654988068834674470246485483531732580695088378835971221150359007637992010385499420118863095235852069410623024060993127082425613099084274137779631879411572814290216651802613581212667888511064423407773424100925596172736249028198649102298657897820933309432735065908401624349480218246222332582925980733159897528513508129687352113495749214241714691182193018626097247421398002476170375237365663282584934536013708823069485767298404134517102053904237128821779306932752666833324590524048666259856635689098621558934063655430136965390131531933438937792042883353631449738453090869756238011563529812169364165012265477708626091565630439458164775389645739398298888192598451807343225856657270259950978587253011259027178551310413198182242044610846798322757140079406539696495023281961591653653404617099627645970118861855902877875894449571803040949460590982946619428121486366476304955193100681857891069080339847946395802192330837752615261570710321770322788000866639244210236622051472379779326037705409876651325524599061234131114279507429613235001766672650779922618414091286116530223302620719249525223455322033387025529617531979795038343211311548791571487671061431351355613677436980721912386770504623491718159594428770686798527871552042420797046327748693158177209772568653696231308093427246422863253678681133704531104014715903853121168357202441777628388619615406050648690975286457805446401219930679603137781973673629445244323733095382659699048994076969891266217182996118785121137592505648005109843699118656561168036480810671950788645751570043143947910781499204336343356564412444058332045062662464777805384083502271774819867030056590746322053606950269265657045534332001567001469530313639144027768710514164060632593186538477025459542615734893527123483085225054190812668110714085406501099820665974372942162371868570626024496855319467872561365728093470116475673351069268191012687559627384836593039774998422300314026370786759030246154554088078099602388578585705562055286887643348076312035442105275454602866621421876124564651305206561006235204781482293270355506738635056863336546898488427539299513805940405842208970912205579400105204765352850082676321650754803672171920201794374607965964648483432698843967515142021418031351549978863353122017498702255517019966445358831890710287716004887977577458490411474128082369856395085445726215570159535595004356632022287472090647212160431894695479867775374247885136333609516712578591926732480117650151202084558077397558114689440558554457327324213408404924817178702043594022438888052343356043710016033899746433291652048138540931119549794071367321053521626499125967586870390591705093491118090763274729936400297065763583566054286316886068792898079620002267414392279727709477920188236319774960194585278115789310313695168741551789514851851692337795493084412436726105616185453937427181018575373013980926235167374837445379911543335156163200052508054814683622527686934382405406236627758544955637295166049731091584936617874933659217157171320073714797906860914549544411798867572393246270425623528699714686373531778470050312026977542528178914959949926210082391634633805230983253689091444380672652530188664106240440950601194286225253073185615352191239529597474794103057274659394171171403183877801082222174359473886065425281630542978661775808288255640561519437788398196055794131667147182434891214610477645642023160071168515729497962717491996764065853513166422023157029196433149772626148244030177384244729748464374520837663763250400902087079090963253504547359503698524619868479343911185554270764829016821820110391009753648078401834590907676123522172389723811803676916112433745059913862467985552342746675464444002212993808625828274973338877943074689541483185989891436269171049613749645378799543030714620514305554877334372930756772167261589007415667528498945298830754768042115312439247431952975701502124327546798533683825040944321980772076006237804874173171766021435107272858889874455605189620370893331588646241633720158976834403311130035840392607139250594277558577670942136846170506656468706453405304605375290336036569383746573106004459137675327259962216550182279253915002996736499099709092416085108303785946173794556951886128053360857458890146964716017409878458239731435535962637530220286211515860260740892477285368292576109940043082203117135553094974010037718487021098313989925598126131004266042237249421768719359998000569627069042471681946378771144354349323045429839356697568248586989916087687246393963698363498818520371834434942309917783165313451611787709114654522830535922828173643020202197355292452729057381749527659442925166646927843910622417352084131199050400551320252343662322854284608270408603417665670631322270083996316911636978094013975892589528001532041416316714828225139942775088852221307635156466800053591812317879961845644789901806127389652763303668104228397492457726714578690387838391130803301574552680963536019522067330104116373739760425314480986316275186453636325344260848079077907919943222675131682378632962350735467286452082570499029189029704457824796858089794091216630952563414584250744256462346297145917534358361196521246663514910798817009235103913349574790680573666014581556996555867776234033957763790555963067858831147880440650977552494666701917012938258742444039785482821350827525747641597617249199032780607457461098549566245220136347547325628511912599164478157854373088077361233492757336018741329484797639683366064908022818341722450513995968354573853023242821342112076835490155139107686544488791611548703919935393412845458218177601487540352243697334602406334756534119646176341596670574912025322327298226561742481415632557893747775697500709002209383996970756007019278582100137330356940178537141203652871175723160020224531848883330524196556062590636291955232284874576291979871937985504433843478541290180537257377419712610632589463125954505586065468546616077328665900952626858298954970664785234545211282839879045924267441593358072876558753803922011624818550900650246665919114218433338922350799898097863051532860356664634450214496897646576187200100877080276400682300790657741754182173602125256457329256209539125014067824396605201013464432194307578309102222321142603363546882406848284054956871002750824711619909060390124523437922803965606614237090315691405669353161446202693328630770341881815218302571863248236878533826411367630817633100960245942149917080337045557753544252661340693481665807265476554225152053205340995848286868241684058488457471300829520307581246539931840983099820498753448603349089828054894389631251082771678128793301164341557482754356619760140276465510565784834743321609126830507410170370677433654254184492970072795644150877016893494350070948225787982358193330612974324896954752458809085367481435977824519880738030113283206117339056074209297044511309694326357970507563300697680087574798101988774010611237911300870795522778991151067339649210391572504356637851407935563697194957444381970203829764187713359594215572478872378038114952491216996227401265080267636276331943792056816680851604015233488937604004065946025415912901259059908110257888499817933274257538955296302085665003387033634304458872696132828479902350127656202923629660886704700090999459984504641068049497262109827554726974659794400202400490648143649453808408001140859242375354994143848068891294829628404595358294441371614202269635184563852304399069766618633133244407536107582155221227843020735969103594517956313015267090473938344934503559799293764990750951518648018665739407953888832282227034493834718185876853870660969192927131138093088850105908286337568380208526150731779809730997643536011670804679317931016151521487239441787265744061799161017708073092957649784130196479367514163377132916170740882580808309956264565713311845166616483213911475105871426263713819290915792736252747568930622714707228142339349414307841284797087676434925563162035581929349788748807171821440480974779392086606760230308948802250472032868474690377547235566396621687322791283817554720932910964471247414508690260753734887873642937764574190049893167794111391940959840048109361983695931976310275578015041533172035281937906317614807875526615957711467472239376446111268422540792642748277963477681326911988084584635566630161907075016640642780466442306760002053539772266305311818056621894924978549527307790911972523865476159854101206474635070873171472728378692146703748408765429961380222008943551998849041514049181339638651322766139198521858231293877350473717510802487998275238559921661179459578814714873138345768015928729327211364710330042250635491562484634175515453535722037471728918621690212914834748533849224851330467363055561753058067910494796397569715865232438047901860934676636247806882496574206152607561169798337664936682173315423090290370770041491938924792765606730422775002967558950675665873062492460774037178498022795634869181896663292098041859403877359214557971304309781923178562941426319541547813398462914223530040223008800522790723631083515236875245088357109042300713773317167730917373284094572138522854536875771511613840227512383416659725266649350819465136919598062583192951854004753381381987652875043633630462850829589271250966603693717121580233565306819101223523376237549559825004983852221828518700629933827559896509625402219488112335689705982893288051271352644802534540936215748086728666608816892186238123728563221564674817734461498898858676102251117041056628310007664382169469223671771437941966516904273574323647120245771582692245152384135830590348778238753128725901183323149955288586365254439504768213985445070355667207143481378100325320358069895250289062260273064322900173580166930973418185235527255181021989235919441143848533913323914803253685970855165275686809805219373447720762802468128564146629065251882294603933741545119902853806127677754838566725022356469618812757092564567902052953611813762935864784640254916648953676693125960202221463544918216345504098527452371530318572921898395848483856789717190197296734701897891507833210651842891632998578450068457013080998534706817026994155066283736839949680502958327049662789062032203101809229992005811627565970201284222099243164848574093163618356697345452284423817560510563124817009572448897443567156863414060317040111730765426679175790116806075165229299896928155664478050717877586360799816830004914983935822093647276128584942178173859664271152189717122753349424101171631651362339290237836459871732449029902540394134150165505569637470106392288047511517347875633867525597777044029175346735580950935219380461671168947481123342950886354824486902527717977896766423129030043487464414803324425382261164583898390920895736571854163685422500826616705365987442060326075667269553091118433411274667326630317162650456458012236234833553718964828878752653718055268579612058124164245856691432358135195657672807535241947596807794893342046703954281291397678510543060126427977190122234239296913360606340311404770265128318164460919013412292496645588304249981919201271494241206594865350616451038882928771910810470612086888754114962315569533548994973251310259415752554603707840351161848363473118424395551131871963037664810951752870850283449604309187565969362879540538825911583140812660827216087313473558744923997360086412767678118925507615067286190980356525700394979350144156836566188059027769878000441180940844177581711321520533345645403208210438355870648942890519363550357940939126506116354367059136542197345040729281254453085368070915831687710605446011570631055374683187550298817165834514059065730595007696243235504384313910297572107142632083811972641691938612821916523855989288600032022562038161506929511344680999538491339619800526019837221206900252632052866876018930902899288457875477398227042114734773367878923758977508939899161625853826460335347728886192532057344718009444829753759275206351348935331406744989774013611026714687901376163203439752966059123601859319783252146601925791192684658091681380924106966653945976346528850368412171854280768652505908668432531073010524620635549515388752552528986973708391950031960385902659662587952776120871803116687947747841107799924157300009152711130980694565863387427906165958119221376490675925114475008735157593563372789915372175167757750432035275014965835748561611454037370369382082395963745205231737855953269525984019646623617717200766728128825307230898648736890972331503698946983860327319285662204258891948367148084201616011944349743431438432841144316298848338323316302245089270622147696615952845666980108461834277296729046460098371489422944210205338676859018904101397013135923691343383823722751721626700127658364207444703476653488580005747504660274913011885254055426176716790959143846146896924333030398192656113402447990482353390227726007286891966122426542372444200934758485206756163342953155384057707234929504003782371871175487241309191822055468250936804665156621221445189133217269262287500842473637862676941680801655330420639967591251021682329924147572294965731266274954971175271833311925810398190652205351597171562553346163515474551441923184871289689225450554679881275548184384297043465469313414197929828802675766262628959663354867673337447016305281110157728946702606900444515351806564549707003518810778634385798944179512911238033657139147427109789442269066832848457530822283705983749873580996655159874241980400540898363348705626576301040737674438482424312756469393026996775680154847911200558775057295857004355008487794939911231044124916375299314037839139135477504082744660871893387933711391281536814305606232782468106505495545001263290327726204507258273856832364406032636034274786154824380426813994771891174677087587227713611011507787537439991480205489948048283093587993811562908147646613243864072942455004083041342351952063823689209918065523605550926821857406509022843190821187075229406551268427158333719099161690097624954351758027886865088855348763880403605197501757216475938972523776943226349286524493661864212420704502191140039999151712170884842588835038054602676272585371193044312410485436550868361990816577584589463094356623270049061060417114255695986300680168210914914514233725272363125569013431385124619224878978233142418453522774892268248634591676878802205846300856058773585200959133658947378831152337235970320362634402267495271805030000767127587072737053422276312827342835585263177739855675479379410673406452544324606478126488450446553765367189791920384700139036143430736517778174570362791929331060752730435846227125643872757321534493301887878298712139093885284464850483001563405630002780372677981911826990292163432978127412149108048896419587466202885188467266663591020925567218835441720158708977839986214343079002170931059124531321290946391545685688394111810943038143144557609524987105629006551529688242101849469775232966230666584505206371164678191419847669708850372695263352053868624683841437501076046866313287859620395049768809622655675556660185111221670560795533703906678830032311484659488896348486378115211250889843235933671390665604844953118034577329228234907070083700384547638142928011100367956580913594558732406270985209417494187574679388931845117210548897290018049210479205862143303583402398912287518035769744203420526159329973831873983409796216101240078307796533860715412886121323348659701397812447064091686487655271791906271306613718493577597887507065223332872894312507593278228066910900962513751137247524138299001057454156523484344542376936754176032776057309073567238781184042991068303958913866280105926775486640767965217746905155146170018197008752089476464186416005482233086021244577257382533404017552124214062879363750824540375684744593198636316393083913706719150452116437515083469315940628800710171371803873758960136555275747280176961635612881222920003756348146485587792584739762964427347245367463708134097407887052208061564438646495954453565138534788550224956145414939221917666536039169401664831236937580279144823980080534993081527604533035137609195442516047910427169540580102378824020528438252255915871242531397641375072904694902047559122960543247025883059490480123663901017857335712539704006566342457847003210189248056252767103054405600796549425242560319324953827457767650737600749535763813437890906877270175906842132255858437962470151656565299060728879922963556176809567486240125642547737595803557549705205175185670728831298433907251442374197359907645797381393305734818255466002602272707849451350804891212954666894483962177953375537202961067135138977599114251663660713803130112172499379357155446691592381476605734710680091406280806996435627627533545157120923610607281490981317546486120904676805661943276118653824696550411742315544486841663639481334911960376273568908216006735400438733329818170004898319279088843897597415363605092477465698037256893093066023224164583857076399126383532598114010361867459226901711868406022788618756180478619311967623912200516319281696871042307145958909616241791350821884401227024395990945892971906256044471354679142328385316099616464537839236597990053670630727899343976303512428133065232277877309871728228778453790652197582148695001145908579658446879386755576406442542343986728546379463198230928944775719563365603100724593035950347305579574437480559127577310353410760585869182218535269593621285618615526995469474978537638417055868904951493049795134514933250330120010025983813697948812581462501001363538153839033410006539463251048202227706869685878794019637235562234143483638370549685610170517083604411918688119984348938677333876500089879866407526700306335245739891351044549396238276563335350715357671565359018583429115122826001609547724430965365786304389074196874991685207340880752399615747815552223571367664056637434795934680594459611354736989889177843442927242398387773857211125315916694065355630704875506943982733242151945876493807499372108642861429326198417050593124354454267968348492559195959992252451297052267946114494733092805771614011179313234780899811172738347293009749189475039073591571686037000244377563094874145295597981270990570157271076198680369817491707306815872022883552756553475146130221134169867098390589824649735457310031438968436125165126496125710206312346319689877993129752264268599763028776724769432366208870895581304946234588792558011613263602002563524568389681414515276639874757963549146575592367543066720772728158288499388409896284191727309782517414741921140659920616618357198664403562919860751630610908698362384835802056360712585260065898909489225189031129821277538565779070747438287377512367411833019076403326122786221885064199110775887386839540471379889742376614667608007325436155648583165731242504515760645421757288186111212600090576952425305570804149653956560145026493209902706980872430798360220420213494633752776867962257827384649446969396068256208586221560832077468048476969564727444245613257448317664754209733144977927340791496126172495858485268559217385196839145000593208432137169370753330735498804152904268313338471146091237529840055166414025956279774363442889026877514198689774062411667257678633076948716995961206950259662454772200106465855051572658000825452442117050974958879515189654016218599226466954952929892936848749336077715461491495989155971240049129338350538201480811796870086073564127812123840811971017403657312633193841403049372388492614286377752455986891189169955816717374551603523340688217565440680071710164308011704384094990824219923440459183814747864701706180753903899781559274892175777562943879765816000064033720308864962786818157919250773234717986231966335933278124002423560280655595423544949764980620221002947619637978440522577261183591657714736317163266993176399747288951276232694429694288634554441172367370201739702819241545235896359791244484036186099502716595166772927354082412491508151093397424010970601974413232077427312941282773429771018591092475368611283600559478936705439414355363590494849736213312891408997477420520522525234288762828472191133928485282477713922889285048395521822320794811460946594986043514958296644415037833209934670208562536375524167168582619337157514655098345386630384324165895721742187346697254574400781925239879010192513375054868733968277281470711682107770506675675960958695877856806986856440974111298871298893492975150202028162635749940989931570016508023886965008056530807276087552699881360409743655131045225868219933656030811926575750760914507883844882627415160594418898025043858455844092709715969426345470654241560953825545032964636115778864513565693325091047554655556336368831936462010499558529488368668950567886056354245306506216627677583120670766950998927530725779892595123294631871232668419729573046164074025433208276175207766426441417547404460061795646223601254907594199290476036513213964899421432292557725883923255051531839859529725162340219581990452189035863290743386949400560225719942470149806075727232161537449729341977910793223536304165684621022905644311612014439019233726591760823653632487446124140820003727628933412920266607958019965473588034302811945100236099895175182790271419935364644885807536101176222088587840500524966577290020655439032848570962442134479805135983121868519292829892264301445898805191300219664659054122258826215763782952166940647996258170574809759915793790109141946267315054037425861857635062787660821253248655556888479506452006534778568852409692849497863402491552832151877361889299213211603071319919659277131054985186940975777785433679429797794567175617248125773876237100689997828211888913794137017430962620852136342501634722100050949420894242365671666102644699847884110789778337075827135158990805121663937343687514374121727723527621457988150149260433696428249018538460734564622242039105766758036304188680278575009839553611613230098198015475432856738138160044291733937112311141241236940956895158932843422023385912150991855581683041065412187998979837957107710317214026283273289189993120584836013930774769987562769462810311413514220380884430560535146614687251014555810826519000107784125387347579796931077442370104780050371431850080472179173181478872694684350245144301926243137506851315150983120522242234477063179039511082943480164397188541108910809123197263611775291242892431635800820151147254950905581638228030945812059306307936420163901084390230786322128646448914447005936710954382434160353571241647376261114219552082107556266380261195145016853830207291848727188758609147360346927794224554666826495107912489478554619158127550747360330526934645804930850254346669057772058083273935070252394857083851934351802006629136042404691190322936807099941228208721435088621266164826776753779593851350330035359950845485311664120197759947001063775253804439013666860331417261795950271050181662965334090855405008911459765442433864338555008867178795296403489455009967119052643446075399919121316236721779782860460433930059716520488571838530555441918898468638009100324943088449106641611548398187700165325545672917338126336819770879120235784087530672782578255073457390969246233014462065909837633421188576311788870854099250829577356890675020709916344723283962217890259941745790606273710964381496863035057568279253572392838001838510437004636137098419468447664354795230911173586645163600215006274957080005422929637841708287940019036514886411675522130324170937406963507485883097727160156685912521551427324397829235162072862948132436237305195544989143644866771667181977270627793811198055995432428232776277323768730901601016149212608036508744275403225878310701076165031142547499562058201125331882012759509264311660863948512524346647517143950222331286452325111187650541595563253872584896521561063826622346162627956540035471769541536778171252560291351519853979127011943306760454861771943796919166272383262315774619105382142644159602755795233856360962436465238030989198351586362578306934782310110570862354256659985570711047858165691609128644636932959586130614948683815489066707612412498759668594028422747233927492723940842988141159499854178221111518636276813672099617359715468977367642273228919979973659762763008391098240135304517321970324930179290055505031328216834575909715283009126132202152668486395390563426628346567086597867934723344481893706225330922423499880858721456731461771756768904255919518414334834382724059303733034203960392879925863787845603535145971220137969578946451561018941656429753416794574775682340311648301994697436563504149717094987106781676790765064716457235146829915410619765333369371897388597924936775735709512874701654066239556823600686704200509028128805917637761293708848568581120548924705696472793939853794524837683939897329596980866774762640890726638516680517204491212734407063595619812476433587764327636589853303503275927560982777084454329056926466057787849178396888924174691318483085058031225368880189516645223635510742533759296995380983070317142535264444753539738738246576057506061061621946627632355347560930082968852610192880222112921560873196850554879243326617998781127166050702068101302250536737403659658879077100397821036289734113046808083645025654967559613155815015178038728201130196163699009228858196007531168016695364551655008286261233420002374560631277765049123213562964531253194700928139682325919313114354641162207394216988273830410645674432426795169285501275712827908654344655819826840210981114184938041674669247222142583058702997564886028427442065966527279714329209561821793530195135506415671622685915988226867493996094136240365920594005986237985056206150387365330758235359956457401877901663896031904661007964022357171130892003178096087855673170947473595147490886293166216677634839472072519859446406965198898594380351378258341980859506924091146494715679260228256627715582696914046716006535657318256602469046860086391058837956323881862045656504661102100792283313669927483655699861128386261349103584361416383336964112211004136225661902127988012977927687195724865537770974368170596664372242172248193260030242386026360216917812256620033027569090537978624298705010084211380541101246741492856265039648586468222969412425953690252165120415643952570319068132746296088680259548041357071888401822126394437627647529014840168140210827687288074693852554927122039183145416912772663646085108589709088084592921103379938734133404447066634497219311820847257985171600445531281057990815341849075159038932309997755616275197534458844915084971553425735020260773139975480308734128815469815307589312816364414690547349354502464781673388362930415627951267607432029366244592711955773374600250845590779584624790065667865369004712766384653993437903138836006590467168556175526548092442324545706671912799981276972064030554969684428046358934695036415300478620884300666548486923499003365212372758852125002649704640165235951046213815566987174989785956934722212034076871268442295767806768408213830724032567855024306803806604604383316766087239200820937455766659481615929222099566861699271371731936145767969142228614624814431975893908101108443135562306627558769112808714050115884995802342953940085442661835065319660139427594836421451612281606552976106700217683068964932554986468723387353599160126607056592290729521060276576251285299418001305579402931491767176878516405255495795792983502333682840167298534854367626693337059662423088189287314476422358258322888262170368081162313908638617609931908286285189766219264952554570049713431331415130550033210422691164553141891729057287529116852066414406974147637127941576680222557440008204793442858700085646000750122451627525345010707935094497221166773461191950553461826943820905782855516070958386583636685636460919466786112269626335281003067403607174830113022928486600636993658475786708599257058220343865693927486051793423908611209049121972369480471507123199865774804068802632192251531489702665477436272555941398804962609020029413612929588961904980116936458966741782568322648190715939007841777528801695663824812537679416595717282204764771914199389964255746283114573417703449477372132666112222302666686717670137908387672189759487436330250544800521893245895891350196105917964923980674496185888420123418918870561614307310698964276115336554248856136083418784699190693638694194797148114258567002044841856070354930755611371168054119313619148387273715623365326043195593229052914893721722322889375345088680714815945240572479256940672920779906719979558098451748790379498362158559867171172534287487860609411308444633553705751492279019160511362456812360457198817319054646746628706062248348561290490909153678319803702369189224161101958969785261563785274263127390518750121701694824503327000596788234156198750450674282252256426154096093395868410034682780651797266846776019987582425689450049457693512234543983292733459204859223362724299728324600667337465011069556691451701510234834444839230621106502197631612125977024328769709711382199548027754029672472311191977877977521313885491379546493454493329646411494834039279327834225562345506938808785504649340533946147225356700421506922957075773419120888939308387080479138205499610597420605253897384005074461117426588587588581844649494265902699311328969940879535591153550880949192045224515826044053233017269782224581707496159863958796833009953159322251622590747139806976877931371833247139955381626803064792608899546131662334565390149553499290776139199606652846433958590255196497235910326879919438842365675673920097927017993563724465262657421212813000569711766875732055048421445915545625612405434843909082600890557222022333687360667042978604530419899756187681514184554634695215158596464338406261597859154520654274067453803676522131573355686063822592621401855457742214787504739034392440680834753649933731324109507898046289109117508296824189565623835738782366456495627992038321199896325754774902115382197728419691884968101036749166591267826978832174821965656283320687144310821869008749614581976689453768412382589769810474010360862653266484275869002742398536773241393524082539043693473047634213061505998837356727199380413925118543363824367519063794220532584546004819726828096983460500949751778010221768100715414652040217365207112750408082235989667857669435050267622332027963849185236498576181958282194213959061025643412147158261719908362949212791273448818421533571165662571539340015743305834499986399860325257453322698731902176003515239519907623295683718404685511679608195809001601514111506975641427188593580497259932554139353544052767842682598715600277082023784996431941908846867237157955026396513342813145344601609826928237363664305256301833167410129646912256377837559636251178059950653654366339207607861406095718126473173457346206549798285138048340291345748915605465590768427710449146577535807849434620883656258087712310928272670205575778381554191665799192174322969985074137965773057532603844096324062468428593078213323632740929597827214679231423161199012152992788325554659462293576583244516387225425024895739112209664397862391625750997919315028317865597728089090236397922220198577136122119878009123359182965804260948139452692499003517011256562104742697131622708592012924070600234697900563121971989063692886595508486018734305116871344437052711165990338688962383874263215519515512267958889172487375079221508561614274266867484290411517770821369836848960524488058667668210786018878855510918420014690284570024976532603935723046983589879023176493889028125573373145033186017585126455091914652287827237059153084067361567279758106533868536403072953932961077744420513652071358745469792201228278428152481144257909917420133096671683749048159348606853033515353123475906648684002510534282861599471434104640849677812550883658224412901475089340281540559677137044666478539896425334081068688944805587140123200746971936218874714749449339990461949303467841853008027891473619491488155788490809951245954139381748001550442450037540275718954306731098945789821870130107815951634083091772572190787995156928804949748072669600909891255600923844586767417875957207375248323946161569052425580982846749585531526093001388556483963272865654891592332720784511658329822983218238184238931761443203515702480679707178230673510578421692842564628724743331568898074784196150728289619893089064690803125949425755740194944667118325097056340268360389032234693380094776536955758103028531965302097405020294206933395895580200156494994364306724202631207261660379441842339511139129737596107950958619727944287950231417559359230395995717102827353836135085371131498243762320146688978707520449934837957603990411398546692431242700177203759427471906055559522770153256335574317410817114754087691137088995863369603393278912816279408792656765590605259569079868952313187130904200999108446849365717291442813720335894842233829807987248429097925103158516845826361810738328774401377981239907971790200812542601112927756987840894560314413623746859381742235538373459904950366946538923487771229890267160330543999220837405157315000743039452951469754983472600492971291012767059634124189068314863327167026657803932496051155081128726681541282320162433918570414913108286697758510720230640981820656840380738422815481201859247263775058802396541578045716414595348519834540579177830792730940388591513175918277212546112958689613369029278011263027999914309828349089878815435285776085897782793792852146174689698383896811402316021068562416436839478465709484062865063568435587379324275464937965241055055332137871437645021439209080372147076195711753297140452864408138685722298869399762007839134261035725445191371665262067743310943095915334667051825098433802881261240552797666914877327228684518456809126787151462959989120841469765913309065809554015592578822432550493003323748444596934652686816065914159788945657622156788197007177298678980153560875720605516579776325472061949313818177859071618992873773497281944042808606971096490658887717000419789068457480838247830648005658070334423999753969394257865089197625925873659426604584002915502959634182100791076493427038503101475178229521308252147575702313191456404351352468366485627156539728572446521558003142072941669588002406112507445024989639601037429940915038146317103420596875042319552029008143272093076073208769568912669248349655057710840355571880455115207777707559014250461470132483053532845378674283329285754355751582376168084779595900450216097672148227263784688210461795138866650255685284715594909971742686835779690696991345240733433382803134929141792549936786287165937550868093199867569062856835772086199237652848042183777015332574952638933458243425777300912165467020533510966115412877255040358269613807623990273928173925912336634019300402041532079108192535179133564475220872262704610483219947871985618838439589497703278417352318364240571952825117156634370465583554602595874379375184151829716673075252706013677256879884836669473993062384818682669555890292599062902083234232816202748140007169591784197926341255636514569013149682224571794366959741456600517895238896694429421873736562655879517025798115400860742212980479066006829332792387079840054003474333399369810682566058059521085202855065820783986825114717745293502881801774942570311022330091246223397777690630080198439425621583789063080821423862147812000488976100827674629409263115692300571517465521446180301863323976747941609427777425391207740248962234626978264977347110881560901445188555084918290809640812372832977912949248032352568021577524041553498840255069719251397411156047846778871032852515513622066809461198583311077406596546176555176595644125856182836453050765296565941767934700858451160551679543014776944246953292762200473745472852515991707931605226576442456574715523425018239159583897116604207282980112808287249121008365733381980610072893283218044118561293288611594559559091831223829771315640363361336364981727049035997942086381348714565320454940344877018532687301062506639997556683018900051744878141319180936548842866848017253475561152143483991417743444299549523505041656558340409604530929281332217399432159214472778296253965285849215004833572743144677380539320838436630295601970169454006859910975845181363751672962388771945761039543114740490479849926153509968715899279315295135168119861098087158989044439100059010252029605177107523952748951746126465731661164781290695591079314063560616706853526714442400907828042844773265989147697812199670602436733874688443065795075926374472363986281045347880839544670072218214545150977153662479970780613936439758989156596681974207986187065659667201129898590600252701509518363869536582625424564858667043533945089287365833529871165539779853223454614193824462294621029181854824957079906260043342809088592733187424362876703314501621728237008665993707383611915108752068360993704833350314071335994692977696938641243451707786209882522224671036337515323531979326406818911441537283821994076392391235353295112568027188180258810611828775878855709316129336742050516975036432222825690583991053757997937347762412499738106785131627411879525887267441021565072598581033688291021216902733935411348554864771220408819520891139939380074718742657091998040216993499236189099414715235171682201331778163414048272762416815526798644879871346826980357934595480846165743948807165006168484334698943948910496471652919640032082841132643177134010633728447473734318400219793075704074471831754818506363164051884003334132448623463574293131502158337877720293842685558252961924409458390060653764663818361505282554642280003711893444839981512333091392879709405064435506591429110719497919149384555073303476172684770681124096047029151016354399353971763972558822727400569224154523858412044358461337289490832577925344261949270914800489034775354728122115537493817803610328968051563747271233135711813798081337014674257531095678731235296566996756542178251325192448201752546568201297382716674503324755900516100380262914140527259293159941748360764740719128962307464777969888094073505466314256944027513184965042944471099245301102572316691627010054330170119165988552172687254141101241367323365745390628301192069430460700932064755174650665746531080331308348837827643404547212629716521931835844482712795510113197472219186446497469438234585739158037377681974900822921789660763487198488850675636589467972412850787995405427091982271068016386320429685458124792471154898923422948849083969918482550474938506310733844538994898808847492389171836100654065886378735476075140617760691459263382945631046662796697766088248634685654674810649202512119044521470155953568076183271977705847516566313395200786911636255095169137802298231905178959155681560286032007302602208627387236125901391061293429214274206496835304046040620102178988749998137313239320645188350947387163842955037138816336169344355491391980300045141748891527380559758705139461989004383824147980622265991513615451834819315556365982134283810315607450753222072299434376449141407057933596110957203683671148564211804352298652471695828874094653217876773436346881157202338547902043493072602299329797250980500400882004335466758696182817203234118917580482733019255480384702243176144085295760618080185882964079934836691053479291078580300825458063482606184301837404882004776370582131877287121365006737559732806940093181198172034505278167648696188784928442753716211276131238230440453366183217957612621013059198009462220136587412056364780537879985660088253774102926717828653016409549373476501022401531032184717980741090322810601537285411238048710884140740926133700935401229229533964214766119512774164949266200417560275525103458512692517702296312903758217706267416361291648782541041162513439179760691725675379430977894641855487714229465778232585926006944461436782072626522295677840784677476087297770668230576538757471131189683277200145896166526875279129929124315111120834351198361428922553117651160479779244367705819629419375393416510828862641954026271622944372322912452840121845105142051641055967792057894999515946586968498515598391718020923709178237167010416328696697825073013176862895909225715701853115548070948388069518311041267641962179953612256308395122373412732600137467896435345892762491816172131238405138762005457911291079191227260092134719757967764743509321202242903537211804723087449468720210494071551767286125712396780663275922452250961391344222556207641933886626798887091841191770200321408645072347728161275317187959207383804952162992019838005959452368527441836675919409987343786084846283081250238671299411637724496680000437826165117205825410168632781467028235323503581882289818672335721531929057091086673313724521481179842456252934234162781323932585160189197362581109409433983492550750390318265739957434949307409366055700307998906949566264903099864287920880594729270300184969268110026098522631125642651954739705530954366168108069567200526848219825256657952181708588991640711075914465366876941839366964618761259484809699154451480515846934361292855123425880413954098530748143706654027846977482204695173061130700301413709117478184211793444860276361694058061189217899828076168236990793044483687785640473824435845331351525216999076536922685057266098044780560064153388481458141207220007577107033515738968128664767082247394891361528377097759536954819846974627116057856337247441381542074942481605576068643357264373356079294999654813233723531023914040111807503293617520212280226868821971359429764132758445981214319617300444612342351380941408962693827843857441620127954102376412758861734265166554054177075899041601095393191780981583307805971117211631137196904447616541876001233362852488952335849036123108177303168511567890830334236885258098058146183333332716208535191419547377540313475721352324114541586913152065235569957137660098719823160009633530954760422610865863984222760920828691292475868171468453966404946398460166804487967397352016586281616795011580506525950229910820156214388599469781688956437595150412269029970889888131611966155348343664339796997981398218299102770346382389958205697207629956550522547629977925968713367060659519454852421814002222170438158544907925759495017969745982377472135475614276702732308408948255043914683339339058594721163165739477720948398114630662788715253742690692005650707657472194143883206316690541083085097865046549091766488151631379714565763664400866617464351181970117211288666082959032851832742460038952207807156594445490809430918552151089821362915004122575345987549297786724009196624986177510729785202895005651317120607846999692009569336071774808000974747133873458474507643108298578812401147046615934392538761541514403012354499980602560782716641110526215790743559354732206970654639807605077167823023895660221876656875070982405913674783637117400735539520147499423745303429996709673222259773942200302194450810056921083168978861179718339046102487967937613983216784342054888628036710807806996590469352899142908286679414277374180047792858784568918678315226112396838634226949932868144232829823391290311314360693541566280062939649748205852103270593852892339615367103337700964131206138718297980806297725323206168863288425699306496554406708964035271952411044642612941137395770606569859885432895857441255277683164348089178218903548357756932010131558796501410131234650720891395608949168735979872920201082727712633820684818431423538627634121972149160340998377314756483086525747507153740087543932709414338335658603048362745752282361761305451696319205057538188020967776858875780724824463322095304205346663406318317308589646199407414294751350085873141218816546934821098830652124587307000125702487472305956286885880001773645508124565810045609940957151283379186625940474265533182074610368745444019857967413572827415939561416787937598470377916865627550202164654306450358819226625421089006334734424819861973417582657210578302878758861882592884707669615339097148418103879310068338816336766615561498734553427532008460978424362650905666831486861466147008293522694213108288404193741504616000369224548870244146492967668447143700884088226632275931082317223520225172971478074289164869095135612438646164113960104744162538885872043074620652450109562276157744340933523977745957222027943622008195867857409857458849669480467123736574608544817350151674239926114659141113424724344316313564620181641983288408919431158086741623459027086298973858612107229018126755481357467230911439200539200793586043761935657123546797980213766492085410430423999023718285093647548675096763040909351720894289034926873972958115370320259150026574227713126489265733682732432619274039132584593861143477680270993176676562156696267680529086642603941392240819347026609922202627039845408656630929943804250724280409763981710223294611272718884856391222178398708625365685141056298011210002042570430878537015408393368219796424298544705342570917635248429404736683735675817431512528717749313766833306541186523212736241042493000666240639850117599844674223055790264371401961543358342561671092602453732635156986238771092494504874819650887955162732725520132264142262306310801551601285210788379085569002383257520577113527992769008522042554618082167609808375625611161583422399343491948293789140581861213900583315265191253553643885088845640967767316159174797554309120727052216507102001729307785181887287831200182962818460592356656247187052236195676043613415979452171177026538895196359761714961398181201275763381221016030500648174358014746928026569323435507490865922645371360393324720231672131767067759094945011888368152777360633994279610774329487411543280055890367954700934208242120326982849901258156214070409576490628455118591497792323128743615410070118266757516725101695605959833280845891490484549908386816725980244147515749338208464296886599282274781923794150453365833518713195042559559405991309271996346851508228425210367739208514886424732356984305162527303760494170867794649588818699483968681894477601892149116656906524883576992204923080686120775852493823926996425515614798935977829608743498404981917451123081218214199391055754478201302464394194800628199302150682905289052026392396086718041951073478618739848201552910282401979594883616637320194119779466233579304870951120607006041651572415962943119306106317744624500928728180710556706957687519862463815173612786437711877420028142385892569878702197581357970102200036517309704531903857869607037223642249352059326397013580892410635162397632152194515422190011043864784190414317899901006270211482702540200456395889806796581349549863514750410721025026551026808471176574063932209283523660356521426440568340515494006427044741990344709934721148199434768813927505297804764761861986899940855642337374245779486098326648857536432842106764424776818750491055645784381740783154042738668908428224921262507308160525365695002928971470082774865225222159291793331648088402116400633617664189099983958450178324383073669036479635898935309320361388646064260323344952551011885035865573561346259152222576249723779865392536885500885246241216033485348641936434760433836817037538683505271320540330988254798452803620477680138941953981812878283458963672649572388511868321556926804602895563185997155566743828438501498446514595237505441705767387397545734176606827376977792311336666013434360198465116194744832616443653779761611520432174665138500405713096710240988465235854599142551659066264439022000646106377729277642670616580314987568682843671421652895368570967357917353850075671848526948514009374763359435269597842978375795001611317733265905045081969409003801066456621527761290103513377537283205145605576306471554287975915297287653863594007788334433299689623668041071880397456774799404434932471502251390702156400944373993687696573825448953941922672646235265418035235094417159747541851529048641149804467932187182468013141387566972457493269035616543961009139776213376904167437835740525380758642413754126689489441172285247899284947477246110090277665245203837562743082467000063114431593349720132083633693530381134024338901567122609372989205050894326159594366761187696088096121636804092849017083880038674552527285553144616268108638060392917611592379489393489639544655407426671361673654748300613242224480674755778359438890217984208687449213043163499093902090124429776802374071245173636268061672317741447545904152727566152247848222761984976180951266071874589380884928485292502117764333053383057187516769351019766942507190179071149887572790164377312602270913594111353527030902058430592061836641519336016995535584375582114167833717979970227145955844113874613660847091983563275559354480502237823897416009946014129816755712831517076604816719742944800599395173251951026101616171317247028441353852820650906286514691965775659180274181659061429479630101860949555306992311315612648952378800603637370231574656914224320431282519039916587740087634026762715236466451076022378021609909969524096121117470307862638148734163199581463931094234880362577616932569184694461406063265212889931779069440004253634373173509789149111352668160271053507331466415854036196568067410969632594110639022650743550890532729525655852471050923996191216896278861698238507479587712964905607550018522971660061605235567081726210845116600739707689689658517687041410675606627089130926491637136361221038211401786395920065875529100275297404904760569700367424974397932429768152585433665712512442185646790324821518701937070829073732251294376544685261282721224088121562760970805659419299133334987897000206836296370033851599207284596866713776143810363996331114545800404041068252071457121546742228468944955897628021465940370963028186452869707473321339157488002836349654619977483867452419227770233086444105644766006261695220666188495356593062702517408833819039991790359020052251502360505476991827603567958750499231845248591028548491855478333944255472547021014163665437492292566555642854614844423691324566115741288520207961724696813338162330951275551967884186768336768137882812550437723497326215174070197073445665876787298060038761347396962269382778696661806722292430058394882693427584577528938573618324115800387427845328243237299980808385603864434608831965617068021420946604016054133121902027949841385756781288840665588738854105166607280367395438712176622986360678655357387893972025817458446766716807401938432550332271670295161477730715745103742771036930450800786027635090439507139023576674074248127072577473060680468645064355147133528885366632679330719424012206417699345721759857055218648545440114745557643012241072611156372203717532194053150117655504129367696405111364953724434770571424997079098888348976889880801084702624755160293665741788968888183853426155185405557142769929628199325148776312868817823123741847057695967831694097572018539650520190561592253279238361528982877721488966542780874117084148954734752431886631225010200017912031653085541937147556967350139140094662789387817994440146825978238598873841246056401362074055040283891713243853804381777980848491882958394454180337351288643262223988592734666756675374380382483898761259992101653043746313516959155240149013734626566105471149277668704847852523898003169988024097290137909632230026229449133895781269565204779007312601643357388239158740172013243692938864106330061058649904037533521046179088282258283909393219231552985897794694144540867410037862227621456813165072638023412744399995528943045490668887393915195770316051374087929569677509044121835538792107497626067855813190853869896855972525386419231196233311593053045845317093499378842407529376195344006024566128439238871648323469342204634997222525283063496621501511078253059482114252585419436303272578980964287922657072146511262130252697363814384882905836439888251386899571129920401724741401578624238837771006383330941343706952140114457419036139886481443624334176373526953955147600507526546082206823786852694943459464199141498744281422047680245120015267226605268748737021768442406037561685744201489960739959430941451664402643846808117000048989277162791989294606878964010944411567171923283275682468246384531096460320673659293098351350952454985842086429069499326550840034978698899393676678361253995188193220889996226041229709304854561700346752874390720920085466232672997393570099923665389578478218797358117656832142624588874856325395044597989932561604097944633785405693337416890439678601888644946081052555065690454810346208636645364767625862935068328622267704431808154516087129795390268325145561870489705397214690047869525528249256829408643854155037287090344659067533240913772962357603225512335672838412382473896285606631776767188764592201188041203668940064038775453223367515849235912735474520783808944290403382058605526360729305766608726006755031135782635932985352460352030893073770814990091455275213519925941474586040435492289121997885948957032795545532880843385449135494823820491424755376064058756971685779727928658592834054797708654014498107065802517899781089841566833506567039663059860981713474994941099604242924610015002668719306885884250497826115095177318402496546780974742753107315373518655928679741084959387433580001870352479241966216689103970625896479068152428730157839105030705478055402162252522000401770055098798158766258337967793195505807651199209230199737656306613437781188660141434455866723178611461588908559649610253028489311668263795317970570405000752119251963348633833779193624859005574736577754232259439367364553571455062250151451257611009486125663496317825520091624291631967559084174072445838669026933619501859968394730153376982865471306588894821587157323778571020338674252135725997571461911886921149296145716152705917552724909621229331323859131328603222253985775363363043235868611641421769377826414937131658639185403207180399550868057473382697911291154711120451614507381538909684876842758033350642884252357675239577594329994950240476468727686496251812157983033055108284427421743963691430568599374285660078209904887532019697067049206491345739955254694447307066041576085383695131853952549345857988388599019882217586382747944092980058670631797994140178284097734244620459793437692396184818292423089559696032100356283581427126690552599827430506097109052550335703700616832409138488889855408311906164685058742154968018922184793469485273669676900787605400156073901510082906564590088746001777084869972195568935019047596440149017655924993819356888150887086750098593184005964318753937288967882332703021296645594130173662955031596069104715638282522640007872345366264400721151844802914935068802200238788720917606877309454582923258099979608203221695775043262201104450576798656749459380798987257232968251237796164977380446528744502470641950466892599186576206902215387685765569805928681672923312866257528619271406551937901561765691756725246659442202139589016667503081934719042406211748580395293114438475208941001217364515878114764405171043596603747327612759336627417268205195526555957877010366438872875985321753100425908172580595172492576918646385473559768329437649053070939434998334549955186673891795385613304532165484214534611653336332360849914088082999272597851629231204043614899587989732105887650930194109269011084121537333025730583302953463689063007313305733385993296941159767870137965422378087431599367110939151545450223452592542963552757757286550573175998474376232132854496313852118721146512183437024273800350023376277522131186438848372100701117981503568776052399663777965742940608830685891699880762642541261518000875849683969076615825143475041606358955468540225397646239584147820771016623121007224173462027968460809649282745206591789593347354615246132662121579139410416092490745065839648358603145585715564905105502782239795261170634025698917181092180257528058444366396059207439516297778822507271000341763715333992199930886148994191885506664353401174849028173647883541796668371507372397766717645238873541728490947957100276267962837940429658431773531219255897266164523523302312964863855276205077473983637294473907024244636808174269513723218154386428441393678768012563779212120181073918283982060484481616488798943142985613436415136919460086754319210102080254753595386233439997495888384782068301414961344970931997959362470839151455600464301181770655837633036164005307280811326991078902826587783166437100863351279160769620842637118924373771570558338764590382317642527722456849534264440715546769341256100458041781403302243027438172130081464118425225326832051043097249814923571808123315937757160261201995605162722657587001211199987032393163325220715049866265935174632317103120433111626029093414262558256285513124157724995833367254386941938325651517801874307209216513308318680713184580162049882076656415910019775884632274193798820937863368794802444729763913697383973504643704157540722060993932268897442799448849307952012275398799996008389264642949793379889804167295498439157567054653031533778188711417185398391946740437050708518759145055524466495962224142202857145291791784785841586446337275531582774580599950539293689225737247685571361379017655285817353731715355664558360627098253475946596093457985076233882136069861321571331401714455014114301232117015284341198989256947497123713845375853255843567715099695743741895262619660454360532997865380899433529417146680732836029714346390028742412947864383167570128511150457039123085943995372086144036175030031696899245363675864601023133240921958061258958902364144988995481163558281498151160030263252888737374546379207265327133022088173782427024038133922306557764339878130760271402863321167130464593094437375999193786980488466350782292694720576141942046571037825989799728850124175543479728866333694697102079551885334903911563615633377397471989536435993978901279442902724881718661207343400602615351879388801711902396084643789750553071473502461702524268456925552433326564340987886566091380661498979354734647567733166083610079997555943884739850020655186657382092373979358533282598862844333687441587780867660401455540957483581517263323373850714131510479225308268668421842614828237594910005162963853799431771118488841133676379442737089958362589477628436722970925704412189682159379156305677263678004457900981823099759293861250063142458139134169385233785692012740559184033860927423183265662657390046756995176685463913008239903496962402299290399215589304578402543426695265522339130258245544245321812951255482164375360807695965882264970263669661192296803764772824111211905089090218594293524550180818853383725535296887559314521856960872839818138744130093777360003734690494728295090461383094495546290180111626295022319327586382004600037188220267982826732482841750936316480433146111779845879778341740765238117730275068551281450557515438358989382313605001285382045563707912230961888443789898781895997712138448633028657700429034546978530265243683522510735873748625073443840580576352561018514709427518629169474557285814021399203189432327481195033659116604080381133763540942146447264630615483712844753482945458939451265931522962608866702577191857396139030807917748536896336120314745214872308465631244531762325511059043125910243200750864817526820341625446277355022741538733896717189705771743885453373675616471520691361526933696200267675260578774963518152481133285167446947080705149659735095517143884817517216624126789619885454357451685763018938659970309620429361608449904229383351855022994200189166506178457360881453236356911340304712109281466230177133867241489128167474723241977801080328861981733593112675570785088649056953603290158009274255097781412312951860563876762629552999028553333764813497728966891444271379484252373703232991141453873746672512065490003255436242856845909604948702295226312783959761114750980063079760921507495140075457846225209499974965639373029885477949433497939652347685576269988582052926030321493614567790201450614261775030664797986741064107104181311577368458549552890369982283080413138826139339266697683521094534058873018571378436503130825926328673621092908967446541290960521388567779222409383133450686625043958703897106657241201468925924498934680386950286098182589183325735149723516702555183456762571958391893232389812450630742913835389905981958597063975630370642078523106389923430954389020573525610566080021715206186054602944801071572158275925709251424109565324193704470542622465176892804539042453639564765885760256890209435425044125349947774363006890446329141669274570672821754703404406860590291429451904398784235875745230060644633780234001597875348868568606415117174969764336662153103710181760702214321777226642571531295868399956697335831880557583168911047529146249869127154719442653741708909421743115773867816192474955504976242847410638812873190225634076226437052284259655024208136713559280358354497316638970455721728647057377684824140579008618511301748799677209261262346530299536822769204790653681751901872626305098727157941563406764691966380977393155014943519439533223963560600990502926664247449663419275590294468887168031496773109067729124371097705638212827475940819666424834656301762544054364208085329060456974512421974216591266755169531653809659117001674774942029868803966048363359673350666883421228859422043603649936336482589000092306457415298224594976539191792190735626314716023872184344267084738677858746546611610295427050485039226033242654819731297534428352115821210486946728013498821759988859463005021328586236961647949143900664424883778040710912484252144088374646455075577207301045254018444261838646073846340692198655023992217544370680545593076354918293654976003312050616617171363277117632771154675883087113804344366795159757007515668078402666329787527460720886352483576875082702445514378670909611221679245810318846393761600374924539616642199262431692211587410025293412648875070809220747224498440930166327937204662127662785349024699102612903887291005757952236180253305653650324845941032229840750751388099427326239682507117848234642816810713805978858401648883028924383093030639101213447010773159869989158676375802051859344432147395871166219561957220543486495928432472465847354462561240895190882312900896284555650492114451752792131276659264976986500884564190762968586329172078262473416638185938739184445977544481316052398302913064430072199004703081144174522277189829282514643980506266074541671360119160507002886193233444709968214220274939918192814637917197770542505134426619754503832804089451189290235755855767920463281628214093440118067919260071540331351966507407749444840442293486434802040110015165483540976907843107566356498839564531103769556725844151800386951418968719208063910372317702402694380662208009220071265640661428066332531016060757686460499840153518832105040805544503244066914209810557384123572672889591384328781222991223308518834901553600692045650244573531739991571033178492518794915824245003100499297441195670719824266200444266884294925506148683252628007398689420929896218464066417586744563930468326417956042235415104386569168008826630562608376925630339920820848517754189168237919690456841745850572697616194011089294452681775489508680553773308552513998357407595467396241852626189478138355787810347374071718379780376349606203711737945200839921106229380197314331834087841572694557562220560237272018887762002547475861906968824037226836337525671489221077825347789309544026969501561420844882550832342067783650400739358676663039103324364507594242720686295825480284191886939913298403689216973216938904451454640390425816524795079525303297128454951054745497627993747195862413260083726296032199322688893432914097526243659694989002777334691178054646418228257336017791320549770673470288391157746545619425025598164864609038134483058206583189702501026067636815677866607654060337412391701745204218768786494556918156959854824023775529798934128160150282430746973470905223908035647107242009094031616126558806863151210290725654615474121458462986263810363396732490882989080501928201035074358335881189773030935377834150088493142158272484469104888604914085445247111776162993048862311946088138230911609220416015459906386464700383441293666605996229999217565049806939426327933709011553955279577126972372485270152679286881872648010679464639214908925948793131125750426455693588023836411478106476813114703640998050766479339628531550292004207815242427437950684679686470762157115285938121693800283550530392038010418949327141881403211889171836842475154342724931840037218105759005030122442770780958204457942573540978943465070399907100173473539795232559246411189607061075818016486989601733203794747787942461090039511903633047934167427612699860647775222350645139540410578785849575321845647070276962129190433017663129901285270576984944616590733386896874680249032322775418509299061416746779920658942711314857347136073271781594098910928838087571010470753314194634493612462666026360144484736099011629187033069821648393743078230273437753321343275165274979084072816925836953536201427511147207755453890531873906348083495145039356525057402056374958868707762563940334716906603490749827534481376145330388696398103715591438477521787785702941031912644930754106066324217673154306502280487902618852416111528692792669144281340146119309819586556546706021634444069510382437533288577680994641618774779097247063246867414102998008859494133903825808602397785268225020691582974675324103230395698507537810075086258946175200026404611562316987247034233244150128791088122557122845044124283244656127465423237181916755836921465138479656115090973710112358051826395171594832727317875672090316250545207817322339366530444906756136617853210701245450266390365985735076140099792694135552079275615337596123510706995145248723690478586726371133998199134758645665172896986884008697891211556890322455619855768876320463984416246994265381848599309512591047112069666299592357284641085732830268288823544637798322033152738314459867470841838694117829499555107892383291070549584672174720653491507105486459771965568753232495524096904079783476025367145497359998748191800685970290761518723348072420574470120550693445923533091133096546864334988567967778568538964235436831202989029991702459615752387332676843225277263710967656446965193343730137190819138014645549983994300302180726612846267012776445925417471243090193519600303380636064883516618271811410141625959067415274377675379385527262721744563025709733899322871241114113603454524917981491050883662152164329649547734848738749598728963460572130648134705497200358841083655643847065612595386256488160122689831418092275628704432996569907044167957539650998086549101039154280593482636909268547423867400635444881216086225356217655077242394029930149934334760003042004225009634580667736022207333579251016179838925009567293310805339990943669654809044398363664497226935905327867276450053942380718299770622129269795944285138132451344810963029219592766480096426327763550077018105491286523530390999308211562231451064204148324931359795260470957962120404945881527070407085962118033634772978780773869922068529897338026731911212189430803897202027846081414303783534561750809606516461800571991555042013877671712827336691149973533974084810784004328778607970686953577267083043168348972319939255687347881766988119338406590936348845350845594297588291151201787583958528597318696760475599020699312557113025248745008253979968552576614500730115246393743643790419087996468990105552884561494689164229143616365313196639497884150645607161273235100717448518753259026405849507872900087520702130749490535133906953996588203524670221423858218111634558407784217672417217544988062132218233034834859900103552119230191708313538920567193287709128353229031510091289276922677360174800985120572079517641805823244021328668103031669112263236233725170596134667784514135669871050520571371691079903297170947517569368555697829684015309590118465436206621598373951422092641995682309380954077356402660042761580202346878423069917999671584969924467168419042570208699047615013800817651830801947580534339446189279597284663779655425545775566535278581516485036535804031204442649506063425160600848437342902483980233311959093119910400905172914354421403685211248513685938953898336355740652778068388456707841693792774171944863401222418161580747327858101629247028321260660491911146507022557472500866377408308206873537508613781736748703556519612516643403113409067793720287976571177647870172003481844646448824782845088579314063104212919294884228178479929692309146030664465996992491491790956690574590091963900604054579892467422111447299218186523359818906177519467833999374463517140022960099837231575672216057565051279249894583910764677070214178188266124507422347686841944496586738401957592109679713021169025869390559930639306507552297945373113341502845772484030322071026608114355501786727717376541643821774819841315196453942385649474500226253383207430105307356249520549004511269253845595619410920319977344831652418881575897260215969784174596860941270593559622168544917482733245458573300524316298554619647255923879935996375507453271169990956238016494099427101158674778456594100968406485055007371850707667023856833540999773712850455910697020999757083249435490132834644722889115170598528689682875982125028431509815170128498153498695992609820285911080016018715237523330249973022742895983866351954412394329380039655164556865657770470606257038564171825174857449384539505935560454851229336801165561362380634485755436918997958022527293982161125888472686188526962577557512232211096225439719487582424861351964502296354150100321381551167605793752989456618708093661626108758190820430079943713448856590484970023352101103024601606457935982388144942150104953728824599204884847681061387110066275137476803713811864666491905907252515766473755410033431762354587021888857610200393184131881178760569572298081142731376197020688145060717712245619678686725938908368176699817577563685339098054629685073275613924626743406419392084886257816002333851034930555994869090798504369645979551216098276210026059166170394108405893147037650315449797159874358494780077113659880239160989891165707834247757885936103787976561105475857309862035648848692125093843940087133737738097259593800010466654979964719902885688547541195335447778520643564780270193137205747826729957172486158395684030680254092282578406996413764128453380640542780822117974423058494762265351559662975614003179316631321383775324610795465122233502735520559481774877811491174846189763296656596934068668658268267374991371777521978173134493232916887408550903533313321475274091285569459276182472152971887572934657932777523045179701868225621652890897527095140245612280850365393565354327813050375338048013195799795342421971925807660735704405200256577688047029427909041290991392071367921716674436856803380699422713999986620284223824027400765277267785645408561705489537174830179137078216441659302587461877373532769082416802947716935255497326186563484624085255704703963745026771348672064350862269157567155857767727048308841625149849113210652665287853989620072599185075038357361188640070907378567800416415905409056338929845192198096607712913482174260869400330547548208305802550409796953814159323877634506954551366906488441630198797976188062204393467869968824489331356499409092967797702810975243620493180656207480014987962651417557695202084514920264989947509346903140237186297906109398246631894218113032196169899467034262339327225808869131130726353449548381495983770936549227996017096141337827443125810033533459221363560938083634874264557826612394536181089596265092555417158433751164104046735952261302186120491321593040913009744703775137857355650584053969902072883184845274160354338490452866359268937145931315859396008327105468492369980815915279426235312004812631458928375276835240923070022213905331356110260652641846142101685034575883492590934103913545893193895426338075388263809835657231268497112074514348394552043188055556912971643527895624413907968376256519787454817612080443089151479965740491870128819859805699800477605390012316151692537986280048342873224863794855174989685249666406021249250456539670820341936276625013244535946358264470783559285280011464283604978007080930117759044577334099797068315904844776119204043272469534872366147532056563575540420768352622542157949001410174593978309416510348946835669368029866683536740440704064281097047866509004912305558685515606489451534926068773264119775516382848185460281715856303059669280579332798287737988723855861258665160543270850055456866158351201380184100797427566539062276250570473435608509831452392919367535919839619873744512934545317351315623793268750360668940477198889392629806553581303753501955899254043982505183663257128029479884331491296870356094424013421056010905645599131167558164398573853184927468101477180874451644713577697788739974560678257526552601511664024397490178439980162705183722063166197028830118650791480343608698168854988718383748208643680719690455726015253813207353041519595263285001716506281173183106660788066870446831572924870541445322554651598996635590265452657825150937409903949358689707758791441649177908606211541935346609624203636062411249725940968922823579904165575076197962450551653888346488064773963755010550890198448889361797459261495111687050110078315826253450037430582308644059641611095397395594342047760856245814672914548507615157461996158610697449471698998257459655062404476896433234999885344832908167641614177934980675825578576821916054137921884720631645654524175960999772444115127039560109440315266121225546686934274098805284157988731782752056612054703548562996931799439294740409904913890707840997224716564550071271669632319084186148457284271325280083173466307313118916161507296458495202134165608468909470801540167095608363834009064140321431997968111680780803046274015778250132891932249856126159449292042472875008536186230442117634286354181956859077469821546221928155851192240610238905641503890095347417794837048412244432224386855635067330420452816301603777810214046603259774114357433896239896024474141320530459699214279235791243649848331125544919072759248884531519707734102047321639871088747181633300783515312879415133117310668362335395086069898072797354434552077242324385952044197548305242561098258308043501368365868181956379280234905906756913639581141151584612182779506670535148045454911284721767301291548166541199219549549001848608856471427064947737998034120106214098567784955346337419454179729643391859823595081228104540786942552125038228800836446212254736174925675841285837187239834418244750543439009116113626597870782254380374680157451133449609282358501014754296554344551130643205968885282878754448341371400875814379750840283466439685148940216594028730051517045683111430752864633316573171134191565056397704015450186196039892622677901260859158754824815522510751569221962720540188601267977647106806623371810400059662810959617029904305951776933336864982946815130424183609035088040188922198873958368648893392554257152445696837400678685939013186602433271532788288556451019043763011071596853117899420888431554347429595517415670535868427026952232331931548489998090035182770541822027634142906388273676014788909561036945946275739256220673213270951635956047441553561935091494330317247781787107099289435989183611215066228854608759599260768660629847359250057704505373955936703495714165843288296228671737535674806186613487026053105205901787111438427712924474043454091567434987315737261519976827991773180298264344038301349866501943968732135649733402991023238543715804412728898034343613482262215589307236235371203041902360464021816822799871795098877835342708236165909645517900884978958735491772347828518479069832244066297328647658617475177014205456752907458776876295300852598973629153834149483689242300518512022215226715740641562565569912666210618818924738604752690711639446655531240290897954751958115177970437395595266759586434767064536100035923264548969747194092227177303354186216597630311108009199088217812655092722872055057844239714176475085567730792460259466632299371434375482501720407763315430089905987012563686936710373276404802660755341943773951042053633782624711785972535829159315172934939238519499156200956151016210327611175536030609994444346978382474016595654556411858700848500482392879869296555399835487170780798247917769953541793107114374309185697158454740968821360493970734007591588016187522120161674076966279387012299019855291760866729544797753242584862650658509282798610509741800149608137835517468900136564627586296324000852063668683685419213407991968047666992847326574713071499078611767712512381740583367937432230764981557499624092836349853367388567562212462664329787991457735905638061165850131098094573307484194095405527806351782797539276321008793051471020260178350686301805867683597805373253549841950496609997243451690330033470341151626160613794816752958189050786461774112678050747419451824410513399604871442986499474182281042629405712389913458735340125245172626424968104439350998294575324561892930588722450497725857536338469703556247771909389273026538410134186629898345591430713296065724505591453277024670668377032153962286826524997591228562193060657834237200226870374683958973619446415048643787487482229209096454714371315413273596470972762730991093971846743125228918505314902257015896944610047350999146657967207574842239459613563465348257138383782639382537654942762833483461009283103626120383567947532120378706840816026649157209209938627909156435731577154398576879886262725598704635811530016250514057619908297037230400584071686050338507031992580715005889297946036182837627314127152455925098389443132668585358289411313007711842077334935289817357755941230816698792837353760711623709708166016631753846689354160282088616844905335454112215550349355788161930884020334421692748239796301748210906160789142574155567946880981733570795789170926879976926797857867915740163173625850222838379115055440941473946538288128047957205638017475744537951417993705747535357827006104730668784653638293637744283500132089156644174236772451709937279271522327680427727528307473362427397813409127713269430099004980185482846624332655422898425539181452307399902832941543477175340116948908181877049165985872766713689505985873350005266033641731370263255651992852339055189737324281677829631091818548577663956438393797044732169355872486280383685511496985857471807664599130059848119129755192137853393249550292866195949083592121051330468801913327172143529593405858598562037082844780200417184037068302853155483760583757454704454637869947019258416058352537398831206106961670560354982114988963639522344396286441632590935375826882087272287818521942436910384662297649652351713694065085415967635554729180382332105967699008901805340835886038580445926611934177736951745463010600043190941108361778835454788891220752829148992080483868143184572204727415765413953294208062331320980830159557235571608922727991514137456833880578981187887418149515678300140300000642106553502797328698946369160409207461500892127662171471505863818565765727557810717299938616449826915157769789071714296036311582328568507788675591501479253542128151792328674715693499358218438008037464455463419719896561719027725141952334054679762971775135808873922758788117640376767033166425328148179025932774592000219784648596405144309176835511220435105723220573342792849740246645653048320537277907385262928806477593465031365740948858862354761873299359217968726577706743289423386722519206903277433699420557351367558144863584949826589802170804769195554225874932218765951526666438486303591507815594485287433990525149411257378366056822880450412210810718656250445306341894555015160964432352715162164001253679861532216577333945487740395459552294433220709708123838481593273511034553631465773881355760662573081279314013072490886166710574044051932110550723611226660418775010866246322129210194846258964304981076458311967455154061391357748800442691841700403106168622351047958938349771697306846616888262828216748122943894752363807631219472874262725435519737943982292635458543520823656865634968348812917396467292998036010617983248673144813752511266039052330612805838879733998381138726830004820127714665614641452418738131927862179160583790594213358404532322436185387249256157779137398942478039920568756526211930021020677142120394570790843203698013019286776028407526756351277550121184022353470349329533456689876615917525427005411183753962694603881259678984340294734454673091317237780782505771713651656033646106079712961055379988690310148581687649817525535395773325148058511267433219709189886531451453934635462716384532533008330430539914954359480687512571754425708445995486042201073229014419706379764239743835489296232292426096080763293338774434181328083977096373509929371151943772726020005253423856222947518295151378287385344460054447536482526141342207447354949816433906614805049131041013168951663134148700161731540865315685546904247349070122668730526246835785867403739176018704209909760698466354379563696484230568877387551630398951313035559947427858295205654363864535467735631036520320086672845069627115021888524234045423281104417384808934406005891743864862253486176245039806560885787337630169499976968196981843184551717928331787418887284083620378375605806331923962471067496132587429973106461789795181189092808340742152639241259128083956250843348405684395851952252555188858367513084005315953339937408396590613244845018235304554449306239841757644468541968731807466240823431563642310707265815790166973232277959071569445751773416943025585984548359647391678274914944922894786771129230408212925597824878166514999480787298114274440436747188157036239641539228025908546078976817182396948088122824222455374450565258519250873162832399638616962010476516304878402865765456695490678283831214675384596266822549213791064401997555259542896565453700612870002942566518481641691686422393872905677183786829275893481771723467715641069242832442353720763091595049860495380360078314862949791033996853844280197235877921243091517623780138353467206849875787146130523142820184311760933070681859943226626668247308719696050173272623173695693870224618266950756877497337484820593313366310129747617761539025975869413426409351290126032769305033427047359170894947548015782380530275722053832680990729592572635722580383952192727221252495346177464637793373955026323592117543800802346608988570791929531171051064116181262313070606544626433389802145574003205575700205826151104456821527759417620847453545095281108756926232507135090241684372264294802659641590235753299583915156511456739676630571044985579106697087568967079070020397870319837701169608285904178805681270906649732291346011250257047586528571850880928168805614425150202931503016798403353626436116824101378049436413108928184902613378546102118826502289665946756336022536814127060117964275236006977018954481193114698105719826762599913635257819999070281667492300466736843876083774916154436198758424428436113328026685699600326368907799669485515673031182388563563266146897503238351119908362855795816194248632363942688887161908348560884874386947952947879853154423936172226440923956452485653350859298409776155881238288949309917654820689655818288628800176501534702452944450418508935818476723880576851042449380765825211738332523761702320720753191606739066655436445520980231822267167404487355437293146160133975712447304656045875639541714369508452187902542116993765514645566405971042444426766724062586325144985542496754049391019293087251112612618618650408966160653997640755928849795004158960701552383200945342365298183193080822501316116757634019324674294322106991158638565128257230836751728010665990181853889534704072957661613381843743656322848479181437201402252286880745033337665899475427049030367447899543099618899243737469026813167916429220269760077348111037932232755864497601875099862603485348457663563266639657234205065417667012206887607847090661673652410461906819048856775768854810677423632433228334521530568431412398385618637932911018759883731322780561322220289205075050451277508276416440284246307102034394892835174676307437259077960586329497144036830324084670839721998065224429428031649127330800686484140218919163894776239280387191597544529469853453724811545535750624870658908600695089439571465822011815972054563276893343867722073693012508017187160768630609186298759048372734676940800588571071570225155146424249892274500960266008251130895466286177147935349973073661420928999546030136262118012760135693512388444273826870003981048179579194637817950870616960185897329263192132933173860782497274473798330443291261377571254441246151443003055010199757335176333734571335925569387008510227746970524273410034962113526564773254951863598139551803048233108283691912513996657626716292940073817401053046795552125532778698307324684503610817430087847696245172324437680822800718292577517870081315755651547639344429137781280321022759867514741354179761084960345274791747903885542075275455520689317727635618220418109680974817604150914459050016258904661517645229071443355775761147778201924858784182156118781011118985726177468708744098499505632312076357805642397149591546223297424013021377503853254895193475483706922636466183086743603971186492172391530161789520685123488710908034187988074245122553321354361004077067260143375380417149377541666154607877910191959186871840648362462093511790567255515411416822625473822241653955948580416681501999441536863872477817939385433330281453412342541664384086143076299305879000154005691016260351202421415922490558162216822601899816897838921654935069708320038119193096474098528739501114976305326156529119407058951258760610323683280801024789673275595254605213220695891373264785289554660257738009274001549060823874704999774513756664955969542010090172242312377016840766399328889246931577556729663441433748719996443664846383880596171139500509626049194920079195496405190326278691569055464144739036000822460339837987421127884401076268763070733714008427777904731054460228106314954485676393377519931671180851759003720794510447081945037071478264040594335546777180604955015260262545689888631205818709658857589883434646523763036818117581125840944226990779153947086015513782303330978585261960401602928502568372089704535625668735242841716204399971301553308928950177796738898359498524526017200758210187672604018978912293366076795495778253752212665715287471035276053615907164683822691482057459800074917330491696375808619544817809158073382778060654459538430119909298504781783648752351326114290880346794611938502487059342612795920332661858585438747357544059987904629255591038492796274870899857989716279345261773615768225493430531002598713867285469928532723583207689867474193063230140860434282411955279678027939984059719139382836710929549175975041228762932123962270369826517742060505581612970963218983085652480778752297003336293287488476912806698255744380718263070549212894292003086287499024912755692152886851723913165035670128846128695700039277253296188571160139738546189079259598460419481486002688180877305835961699173056277320798843548284409777974407640123623359858341837330479599395780399307306332002367461339014638752448279491445950406338781032574141233059170088456985759430273785249091183409593742754773169708362523620381135829755468183972984284719028340566155972451607403330131618807013012567053517233351926631228702248633675637797045960786056831187170536780610784083202808041338620322374386675366994344199494451543701934155912617896434934537324923264816326379460241686042693530380047275766909307104363062806511635777791160445416167491455790411295851099962192382825592449654267016059951193919074454188511794720834914461135031279375384316437020533722765871224984932527029006091963635043475511591793868815840802127131925574382294369401803762120474208848520590922445710005905175265374668946132411697546970996230644605809720945432127899913247487780831651573291694839481661115093205393510993281101269526157859873759592215868903935524323406148591629342485470694773238929339435343095651726468116326187448438750536236613626334237169738539742904284566029241699482787667375432007638562978948916353752197759521818725931114243475639193064464523300141168993923412998171067732214530820235020729850419016478953857535112121780129482893866750484132334232380804671465132562410075877607420632614542773690101611185978387265980046780020754844741767902402853532007910816958397459118493171158642671983259050030374215173869477497516494148413843095965605200871628562487768460322515716713110648870605899066041654307335204143546597069532840679453846866595265820454068653589638442688179080233758576256374374546991997407095958335858623978775954564848266304114447391593939223280326458345511728064428952041839294054312410812435897837727715161589009515037174008046122222725578876294725775763823084510420443641110207565625356131945938105004601104627581756379020527125267341171861773507481432384045475088832020311047906515980219529301658945348312094296912560934215735136765610126722498950388244756146170793698805486933369939350368291321470572876902652609091722350550669705843456507695634546146331747828869770714802145083214192365335641600588103240967460432828041878753454195873408109960388185079167704686920042535095744564900853819184104323378500372696307903604334514463761902955664173113946932397144354887442085510329860506437186177926290858826089647685727612315404967028282212804393964112977682643209908436784164227037339910372557530348789157516711138538153317792113375964211194876991700829362635834369893270318852124848188070603043676244468597385227306477895162564553007634814732494906949883598529820903955723426809199883174925840933515626058601962445422102373997100147711022525120070979388338620899762582327300416108277952444828896583956003874883044089374122642328991499012647527821347638034001985035337431329380473271424614046469515486807942180889467836703366015599796043844344904144910963989182554773100763814812769674992790487998370250978990955936797007904167246243318759626446724401159986887311002938300904241621635455898887309499187499814948376268697759951074266792785108781174043095069626851598745413329761523385371121758946590035715756618503688534698444803388689037276618285017855697485538475070240259553472826415968405223333146160519374270521588815485601330277760361509979800491491567679354150449807701505347805065255975729955066170225312014050185377353321559651347175582384689583648701793012300842537947298570976833703778188801704468798449423030865876169555529825551115186311475534730465044319368370479166924363667219388268850460818432981896524109684036468049607330756103185644617210503463277606911533321975078033759583021746682055290982061505812567758517451534232492801720018753780759027096560189310803675271250742691660179713735592602774388184311096504169125147006068374571659878537022535540131804194875352766465210875295972761021087780248201089746956670396337136861178863785250958012043859298760401269552956834920393974149044791428342604743191610907279394532918069387644660696886839730168550919890191229825991965631036544800346715984748837501929393432788657369228817168739335446346792272779514216707921757595507192161326252148894329916012960310726360942625492809077318046593474016230675338220895906625603863579565443203481886859482451233734067737919369018935497554114448672999069584396962634481679996339164304325699745070277403169617988541453421259721179577584279570681501827463547573508687184525440143538929146442733016033962429842054871431359177229092165273355681727868266519504293995149189797903118787814082820896649101504302618930553381607615432101620610753182977658041525094102445799789235077098358558394021195412420903760915645876082155527782155492794820482943937291601039933353513352203068888373307697236720510883931809482557187854960657274006158172681255455776342670699863263578945724598779420962957339901344582310398093260995268037007815131302444893950353125700564059066046424258520134243365102744347946191451639763073751737130442277089859997778705755599643484714479174092733138083216936582481266577138574681022734166752549816353039882331008120837860728223750851723610802912394085954442675661955508388774146561624999145930541273356319939045739788444670015024781160840613216271529293529199300922288782141867189952506460938724339041560047465269351782566125742902085179185307226855370865680380354984231307369186811409231139866182735210484930657243013853383868698012366057891343278029405678387670000560212051150354395463380656186791004519692863363846332435388085814704876375842551452191319617089715622437061269461029799248069533049580992174937496751142421951125239876815614008954945459404967189294227763719374020554827273813169665934477489727802713446774895138338966270743223000051141505597305059323164394548499217348142435116334544477814639387327194690606818143616301113693301428947788940736234716517731003197091655113039299087519892485963323322471515117813756993204505535863329156705085636796488851372072331471971312388700752122471013544840994498749531608805018878657623997322077203323328344773923590488247095433900565831675434514489692734818288154264193255379064314736212018962603695367620408523581713623774011057386365948078626217265401676638323974190321203770328179657812951048457193548203299497544283044503918656789590447989921651102105732101261841828563588545579281786135285062008959521277559281320755306137673597077940620024785612115655395289328268652513392307427626720317050687000143535343942454129636685725166041880002976791639177526636766030031787116508405194914833716938762608757032022495084778166397673824144035252306908327535351593272767374648834010894330649216929699867558164136084833517027616934288301911200597967993029994293936676416401453932803315335873532483601488387312622844271194730549860692658762570149714534491203204262857136657631815428031295466066001869025650543901051465080390970867173670629739009791709712953784613820745273113236139900400760515183898093025630784558424247567670058769579496135947226666615991795384365912643578605609427756692272595391205573251471335644293533999116077659863944165616678726111778843622080822708867654461457929198380463770305989650570331354942340719524309613670951951201453022644916322634270036888980358397339376646272687853268010528301073548792229248617578585306527584411616320800057118806731356232445001081044069406688466215304258220929037923173846187932900095444303635170635028440201534647683734891071884917641337341759504089688878507027661976233447421350694918746167805773305491451497311827384304155115825278436839840963837551645180230768329096184655480077352118916740925569195381887419278584686733128953588166870711802230875684792448469598514459263178256151178853337248736892636136127678484669057788686681871346913976366839057166624040872312799369354593966079356537644106017358862387023066877130860395244480304208048142913753692295128184647753945035643860506781451408960750698654035612063689102542881127718568419859623562223588041510134555756327485880500739168520277709727378804729289111934757739084766450401865431281824178385787649353619736505665802531086202363901646998520100332092811552298381102021212846030932073765283730409909106630478300351979312251150452250828082842988355772761932463548430458299030227694047772880269575299719835639595652503679494922936245367562355853334493336172761937589604927160489047977552911781568835294744746920696519011925248266436285182922057131706016318591448285200903690065293723455500668855136727098050116878570804917647377159496174485295092939166704120711274036605676529161036721185740842266525627477513626150379299914236905073682671220538199360473636701028835987157766619652498213779087288643426484009216429251582142524493782183272994072976163148777844478254350111791638037048823112831238255925801815459697583084072745724643402614024185259587339444372282739373972642162108203185718189277107243986406330585107440727424901976231821562970918290853793327796174444264449740028495756967366474522398942822223605360817707333040143870740212274785850217862802578546149142195762330174257545960891464263355567306680924237131537233174966849068786439506871295430684341119045611553609011476178602574407423850059101950579979717953443848509626367242687882894202487513416236044780694995137105180063209183936319444532393823787460505279238511398139334886407599248069454572096425591310350263280170205859779080326934291983495508141579916091086230835044082330300937761017273198714062765429406407358229312509070164599619000563548933353588776985426318081084224118691958422734369366047641251703833703323467832776043551300184741457050445225839551293408871972574234667435889643878236584910476517529880788305455808228018063851049730788680249136854088902707741494506565222932285615654392501529854376323534770101003974370756742473245010022088997343664285539694123026555874528066112239972270242091185965454306285247604605448504646469876063737444244614753325034019611383187163166246677019420766651468571589628662452302183556132472293295160136976643732286803783654200042966371655073784770451533806544945447424664660649133355444616998440873526168191652257825684676859619715727661095484941941640903272316217287594236715055125593076392238684014822600941722270988350232985094840126497709818243817346607586419422094111495682284502769591026556876287701566258262883170110688670786667801245410438852852805711435928181958698506360690020462488095579879385199751839290742419791304114804516126850765668768900882337529073486364760052423808364016688519828267519020337830841665021319006122415914850635079473644808459147036157364439165146878935477862332754740554150697189335932648465532219977145011820999722593411251272202099471123869008912103890908816993308988562683577907484187843142508758775199426651437561962458204894050798432347480690717603718144920668719871611784594283439892853993586528600080042010375454874139225770932378673848584877180686971233327650244169301496493144253034203934480834889569752998908914824150063341358003646170656380841664359355283092377283403153381936197739522700596931025033520613285948816247135500790192531224779035021785533849276780250061319258396424886024923928190593057783437426795608447318795196992033632034373847107214522983866916552423790889404412230604730663030689148242077195146592280488219003375098985798266803567521425923004560778314840885118445589730529157657068632715184069334223939736980040937765704654462041320695056535793256484476659097395984784902685139541305532194681228427295684367481101265835846594824151498276185015653266613668744350973752590748228860942475269087083945507264366353168338780246448909149488948896126960780827229826540424357774633617521077870071338722091594843348841499218884380491993894667564050697080137582852465001595536839116097365777559121578296752050330051248488663663502165256236696895072058616071679176441704800069457189111297847927122692357481662239635427260992912947357340481131072136294463083572591069148417447876391454728398452665669711395447918012380173623814697765661949482530613302948324208349511115012785394745439804784177305948461998370167934446118211956275511920585295497567388114108222027388352629698557573308036356890354967296018488705641470741975786197849293067630477973995904327591785313950055936169639804670356669375826769165123542098684454689640361214925437110538056507642701598727464150248507158916864335383949173573935973442378919065295612735619220643678615362174354035951117160901571456835329538732198864212828138962072177028858010089194291962056161967956968843144254165630796462596656508669000539863308885663660211622315377366519196528633379640247448888635301033819821949089013152738244985158281922198558646949354121284715577153326259921427546387765823488208614420401734820144415267183833982413507815429061100040599214607463277692347149190852551410788523274394761652161511346339466810420412320558849361317012470723539031853809243303140007599086662651171027414439410335356573840685005678387871501190232314051706285129679069681888125784971479496142353009707348931462569839883144736600450115701692468447982130007964271490618223089236506929314836779100786394409783701728691331643697971539670846235232919085652802544809562442803933539100097195338465802162418943316511557444030403995989710442754602095528541272276214380128397600139880460199465725121460843625345557827295582716452288814088353291760899043826715912345815753620943633416086269288543539166676980059344703627097214649404092860090316852676703254724442565977920341669990927809379105265585709086262356070341893023702333557228928005694749739533354697823712210974383830293063653482650659644285953480291472902367355953946024397873731147813495051917058620030876834420873109366966740890326784206291230693664800765756569286015906912391962269032276037407226748438553422574906590196036399819580528272535780837956834211178992664481320060229548879078471966588843770555044332999365740379204048831353404684569634127726665387919570846030684105328516963437478756639648159657988304125475984954129845436567807217055401582348560702447431278744121467778791815716048106897508330213372683367388427916896529326370439943348112327715820340249855383634033406807006849765798408461353937636375107088661493156238114448311121573424742784225516447277208332848206241846839009250771957663070383517729612921801566884256592154652672959678827984192814754684092945370934404900869282053641488926145466027597017433572056377305126508910574288910332889398990848697333326880320276469757210096801562798395306921672504882931323696330936852485175697032810388635595626506638800622786388162007943389415612271371325141654940374192984952528299922136835745825186421544000452670488784455195738695304354647786047407298074039401114346154049127366552007676925963180568983408295004421653223124197694888811422692274153407719467309761514079477182915326352280105158846215966451997610875269332947314058919615220513666690100553083148726272063029327640540026880737032108226849194383906148619862847655735296158262891555762128525476802675835051296414493614792875556548723840454774836555969367859751511251787809365449833866648002223912630184341136254804924332282958963773294119441358863511375945146527003944519117433642826952462805423665263403454994090502514043347897967029485316417833990625203872519485984303973339826823539728619715945511242343912094902549558030851621210417829122158932863280596438549323644594807453142726435053274256065164030472009832510055266065868880969118765406773131671903010632790016372234710735216102625508765257249981695519093201956204713758893024262241861540703430897170345475304075567350893284328168540056353315786975962135081179724307241669104738497076443554046861516256101594116319539816107747422928721715865702552121349715408961097021193045086522975892866757114810950869760563320031265998022912611016558822985161795416943706907266457426826263666791001835063275706165566538247251058265276569979838327890917123891767167355770448719394997327280881108933018087341203998061267097123733191010558513841573180906251940252595202246502607952741636297833413101342442002442290088914798628281995727996090808188147048790736692489612236606410206898722508846449349121856053827802224884785631355171837102945730042793913116558231294080648307130574224094378751639997483151766800307908951034956681345984160297864991574170013496847921169649730583109347064949581794809712324174595594344074545900889400785674713704488371938217407362189070446916697612030333876334758378288555203123288016672123543104590431940653723684371319974804123516894233180925261118720583852845938423918403093542651749582939734828591023585118729101395363944945670778410496496021860212409390425190499389095219305633780872243741023318956678870592215405780818346118878161816148523941377393503154432715933169591417746806872349798461261354270159024871441897420409646902510146572727709717918092773232933491190364400156240338103841785364031384214790975520870704501882993404242992730577399612459664306900146407363724283581075667637927228826177824190148837914556904128674317390398577272559899111006165167973854656132088560090873999483940021336996161287488973848865481275993966558972448608718727277140585005459304823382253619364001305795971390571489723013440227338615772212429279591036297814941242787899628649806877412950190489423842858560893207364694294698295514144433542276091784664980207535977885075745891388844185190016676207218329998393782984626475788625788394680957753820704823612711723697898480849870608783989292056257324393169415474413491716039058580992210797050328326443685114064061869379117667533334409926727870208605972648197259264187705659298128882013483550330688122743756501001634212182616866220350702969019137588602619423887118186921978242981476148005290703182842206257460257213813277785647828731678268968205615360376666681954191479538271172933505322982761361747677649783467189790716607217837209148534972010110722238029635094788564563028303343789592099726578825865310626715063712011679329596449461843033431640465732776084682095802092075705628748076663693426726473635612446357932448753888069327220104469112451773561295026739123247745857349393820356314182963110496006614555669565295611052243848314228981988130563536404950058480308364979125169375812943601638209432530486601202481093447478662898054645137977883796836384294628536874513016457567771321391948507299808891556048716608435978889690683847569539476479997281959511610599388858531052398556075782517150587865695092303341421168955056455166573959788266138768846763987133476577161006265782205614721525359148913161158965114359016752176117464531920100865093704268483640618601330688465298717078890709858593140217011065464058062350545195974979107576905494232840135380981582781907477083916287782492513648612389953747065681615227252577450183790986469818682091575423807792780702390431435230705864569435426878494273262311962754119168434567384363862576337747403019723329341839951768568045008290872513874616333946659315405652755661127548151455111621132319269952272079998598614294039830295918712432232587992849358351733728947960945524435159104302049065215065059563497971429262596465028373022826110808568116707589684953648383583516657372562536281106753541934356928986060725097715243914993839667811218371575562256934012186041267586177318104990398746193570104260449474671516050637906174974845226488096002635177704092944003290366759453196258262748311525640756776831480033786632796429558971088402129004760615559338237786591876514956170378183886412975621630726528424495222795986083121401943193027884433675854851059981478621462651660528556655219450166168953443465976946941031496530461667225876176259793160759051904404838942732804664637818657134458102702563202198943034513044059297893759238358005441838043563940803551903880057648492161765106424328518639842382004102187786035790240882372557687059116546711276803342302967381831600966962684814051268180151026256147160648241755658241827526510844543337710295373177397267542211032552017537181646799360170977590062082961876982830081848784639265878952907969247443824014117776270649305541955369776794350135513248536083481395469768937013592259554315308615581454322229248543981025246048705581274794866785941504033781414798677102050944874925822406737724481281828784815439293120784890693374812600052802349220314734992202564500369066015785440650435551988834172195860604753506930236218250557668859053485777018140640518341198437965508933291452604646383580772873319025879032808885909080738273879567609353727086375125747500373893692572634578392418745491876701166345305336415057133136153494438206920674909704809901945728948782311846173364263610244851600771775935835795362745186951647870098011867230384891954145692393456713261803922693107857149951737943004121019900194596688781867416382968960415034276316628748578859854506172276541915033019971005450103238038305245814311298253212879886887583760498022920515308938051725180840832265609830692810997657431736493949625996048844256125298418616289925411468479020748871925142070841310751612936753682839344737649265997555712694196461294571570380629314218310474449947680526538494271518567177637713202637519573416775089349066685380050369375181059052776894280045121388115361684843122093463362343488369129340841892392962572315810789107893624705402228114008752719043095292822576773196656428774113101658964392350455382797113793604767769584127647323542080421697475453376116388554694343421271016884533157061298407297061295394369910507171329446269023260069596405230468013395574069004426927393725810711195038961140148729092567121827468571868656860748117207464935691208358501553220150317294581744022461516078123621163149332537801591001054475707998383427984423076084926444454692787081336675551205887512366090607730274296954044147731148631987244422140945912988798831073666930238741896123592828013295306895764156517128691089551269278177816764093703446893074496504234839439305399811213234534002531684541428987509604302305692483672224096108177387000335248415073566966141873946338853675169021069122951671420769141861371722734279075182075457805115574384709765151836558615377708330860805679590546220191218764012368952786670350547919856795107448542142335212043801671453587408613902251591619635558520106205968210393608618704282218643323813120986472255313063543983196248302568732553608507517227244779183555853126226707374078229516885799599290904108305016865993158677150737858779923872334844369075352525326920382840917224613527622487610341987154624485814375129723982902174716393089010027453779564423316285876156059433682831136473343222176177748305558731196949818255582673306950531114567356611501269641353200566312357818504648899457326416351079335337985630695584684487802478801152553326685564988946328345801380904943863787837822982161304984235384036819131461368971861809918223663364041383914725004339192348870639000146211835619455555712828281996799616908665961416048348837818010804094172467438963811645212397964903630568013512540168578394449503463098238591133572648435636683376277861675449705521697689562871967117004119648414410901815419881227873865209340559665854766187265826834979994786151920453977764611515456035452974820299365326772872041017388809016868358318845856489128175083261611554854440026408529118541113083438796535263379926035165870899390190647200878547250442255836131767850658509851900393503954546537279224983010721425661350482615192277628502158273529558993535584709124477414631490718581068169430154961267272465209235271391886453491511926092318006771879628491072232758868170422203542677943825059088192472536489339124422893414858790189663532594842834135506402871330078404398651807058329711688404750097600638508969312609809381641670440882730424797018311256748842898556757551093609524846639867401693442352732557554291692243018808411571626717777126070541413508724309620386260259630545765970681200867921076512729327289112793734014737807228910212738768165159046552806020351314349716519314206217339187149994254642798107302122224704558508222105854480608571535686632437356929914563247625317997012315416178409773757631055517659199728386942203522263091983283516788999012030210736103750687942727890747086997494382583714311559377342995165575288615104913678867074803192970845552169425560521114682156327426623483494282967510420751177014348729850049417774092645059711755338909790180147186757707819764210398609179289391419954045206658172339863665144619770152271799589699555244698600742967984557323167401360927845064272918762256126027109059682036056435541239128584012963886069627359870517063001386325250113652117086469511924910159171843021749546247365876201298575904124983872019964441566014561372382965904099407016426743773606036141720865704631456227702453815123682031918782568841454412177550736936549227569184498162661093155783258203360721069058473194609179019397396700158090270512078380097763731437367240080134392324272671958097063821104833202969930224851019981956824096699801590064923066000784554013364495351225206249209581661865912286498338636006903000663221428320423387786742474142169297611304102835919854147579192185778659584375373835214594093510913674849843193670074127584569107013196428083724913026258897963608728153009001155873471222636049865536892529347782605295581523429460160768651054553187295945696422603782166362880771943835697421236904743553496408686566431615088865245214364753424001060228289688587399656232380783098565188411928049849317177935520911542158068356229053672420905823353403104458522328467788223905312628303467900692548847767235959053602265196674769752118154279538113044224839954402116757301841489590109825004154607146076770620218977837710910397727888939361921032915563021423327199570157529570156906013758200148185699450057015687640852810847708952763709567971917940989053410751592476424757568650769367909387960616155957120536749223661501729576202711756798630587252872214720030718956614409725578707768225402538689150097197247252745024571290894359839837085146942603390503142636087218780916223558942730607720193839295455062217016083894496501654476411080296852318636320861256226715470227506107501125806573877408234478764236657095896224941173440837395129581932028643855022337980689137791465844450436326404591837791078727193649943192978677068375049520084945244374903587631980154022683646109808460960013534804099652274856647374248740895709768608307727994223852133995480131204159912815145835917287691110697996358872466732087745990504500615671301958191522622631711068631596952200868263677297286464824484375652462851042391235894129388342512721610488713094564408734937051753158343798605965808699843143885501204475373454261033889738952862040642450714802664662011605927913291004129499532860026271465210310458377470961722972576339741620466039266319535769960109241330458262594849026898599723238296585931432334109752269437692487051513461533988090770266598697090688833402021086280915424880228932543550163993033108307830638485099954055680000177421435471979822285157385956922096697876907106935070113832266647510148829903008125506496220090297930432530617717210883838896279904191875169820656282756824312464478667363149742482405693070707321783262161299157134454648429909526660988929105127634814840611165395522068341541617330342273855467621540378174168004806280855697028887463999134800769148941139201829405470109125714499707168099084683922976642241569966025232644963893366487984176592685020358138978853899219625225461589686364267104941719945060382630396962027674305698704609194520618670428016709617434933749289956413603666345217093493053960750563575299398153098314889153111772453079372547765354838334898707530811876547202779116980843288163067587732661988146434023081420674316748186207541205377672659791857877642575035405964408147245394053254609311652624633350410255568603470468156660259860680852147951964289505238150088480904528903432491706416831032232831547730850854731924895258805376143761695634853427208531174736151843776869855107607853980089375449525390999464680840265159944328916982621983577256313106543092009310588494031064254385632280474710420526435015263274551064036822789739947256541119840120921676102823479443342338403114479104211048880310437442540981280931050035268740584804296688706212043414485896953902477404431226924851527066524970552272641010869721600172120067293855470480761891912634920026368545815971827813051445190734854341247703504725708717141061017096020896881233638373601314720397377017456799192027785112234855445535889074796554699334251274306846330375024706396897497636206467571976083678177242700924784012172173339650373399329798262115905781584607346126166054410584375454648215882094573684304663675214610533033061475251904074598377027384302556186277047131022888568606548812943649977734960467062161293448205843424155765091051135274497803226270553956935780665455768814907973019386364194400663131487786087747865452169375185971383006048268775242692271505694488286410136962919242698129892760923877287087017653180161229174433173211743444615659032062923361110528811264135400340738870496004233558144502693122166323148491716518892221947281186058265872411479107053289005060371747511520840815168248660615603036987155686175671418459861630136726448865842395677186907678722447030345950967094551112420579775109061673965848773858332438996713444556998937324479791188056359533157881183591868884319001428539379758135401277912814799491735533945893493505508780861322224782135740169608555968331033918936808993012607592361203750540945221855462227627244002508067124864885563666852756648332179389664808151437197820708881810039295367023179019041752498092784822111332192598268390372926894237054700360476398072527309596571438323479202198751271778110846698384814713849979905132311710215095561929105400945649298375153942417188707144431782642297952088498472539135503247016322223283352915441593310566368506696503691619080491189849543917588027548762776542771479828946368344560457686802103292151146970881852829658918060036800644426102370297018428904906487210096998958338686396866422236868808443392993973596978236724724104755959450947669467153446917970953565853919518206106874916899602979856434618869136122547040100983280257728272062931091999028122469430017095937602282073138176108693866672425595494984269691005741594559194514785778124495726744170982831737577032946188526746428155761196288623960496289586161714310519548252825932136157028147955018976237759646286503263887811016330889038670108920041149315952461664536862637011076659238863766388779303496667144433416600182734526674919630511404120079743571259001926034059863723711781887153532519776350608909750556750652762555160852056823733212195916352895302540184413405272264648000744311869111122656547447802125403354235147480978728888464923450935841606225256412782983987133475668925290083004618953806504817583040304412746203340976319222319603414885363731117545897406064000400796847824709083800351341656001718031288568049348214264036594026734377406657158791111723415864023587842273286425555736501035003006936831573828321723940980458389538479703101342078200899759727626726376452954365196405207423545393468610996678085610650240155078613135649894183994291019032834950608924633155787385278025849040708583294659910031482004883166313687122726405805031466174044016550092064825208537905169317075213885398081983480432955608534870698070755334602070962333456746917151320523112851553769692658965095908133184451727385132460767051020670263652975642091267921652767275618358059141454639432846332755910733537914424565226761872156179320289502397504080664215585508178248485842906537879518175897142754807576661128462909375166354435118156018458758508471822544350806883079147977058021710496620915192084031692828427730573869156061161126660661082242121788911160256914097290547662613851142917081685424077698044870179853389975783593822192626301654117217144685860653796163619657943372671048137834877634934917353376814891708482811663056363344174408845580190604974939843919668361096133944258246805316905367680239770505185642659420419424574926942913503510713828509117195783278086836959044291996443806690900664424171171772473788209979732422856542964209375409315808987318311750862671820600007166360989035307093954117386547533298687859296077197825541002477731714709385888081699932863877193078002270360604224670371633019884139033487315514976237570383426242018032828671576841278879054836117958267806149998918812947297477780665762478173961776127075846609364766779788098130511821469373224701007179894471186341976505714147216352323351630872781682525830818301585852102325647159755306977763515163477987081603048135391503917152177236631372933284258402285352999474682008590865478278909133185807269932058177115877852367602435302845471153540010559844045854839434344544385542582779731065469856800562287529882593554256386816198271293874769320609646296492800094391439870820895130931855659320151736520684567690307623377798715398233154995280260337648101417435736721432831723574554444179250320243885551483872865857073882590792949774551693762729686058594630282401317271722642704193617740965319997974955304092258818947964471917628997460858767561530080432967786448731972748656148946562328925549552962179653374772722570777494317116607416448437959697120037815497869617486581543529967162762389604838199861345600338337022686733230957435943190452029213317515383447208308866933066551988498578081000633129524844678719433337308744398585181710508626800537824824278465134809832804291971605414038003874274964440763227042884576858820598587214778103946902709559377319978551992805410065592068299619594541382771320565754228039831563751948479426616444047138273857767332884581553884047020137771408092933170295139905256303383909669522940627147986069239827701595417721046193502756726089807450185024487153717488986807629093181538532756136115278275144760286369063143887975275403769784466464608352193725694421524772082162739544897931435374192686880947682810208280826566487074500361810401843406323131031255279566206033795836837570587618119227722417107312819884951200741408565899674603489549069594974456232751856762695348020029385065165020475104875387044840439923785941877053205281981253387341230775616152600121614763494506804718259800934593095203032707140166987126726924734752626936105677677386950538301726366131331794890214805419363188117523530932909405398500392497792808157770708605497670311203364375834072571138408215964493058855521150193487493192798791851067481971896082153114732924297573650691613261112524947771327694299807271484800576247647166860636216335298666726483162563726727339103478749765719864517110395182873099119306211553908318571068434556482069521148061720073868276649728872117361975100407082707820148131291720213251100404636105926040177687551033703030302769123370534533503583695809576005490467411326748398848217302626533812113310577925207992696615469411082704198339887314101626192710594006950270166340924277381276732973511941410254633161228050137681411925868530185724696927808581752825661427514895028845183952786817123674912092856569911162748563683947709407121761878521502373970146595737801911306222862818746829180372144898537278933089658640572505017903929799864916538688694959054834608500657705299524551610411340924152592799154356051851125743233766237865445290991460804763701780836003869911809885194360157044672615669037813200144283342461375795090474459529419684254002190806384396412868270536685208139996962539351856989204345767100047796730652195081664083679556892577132350139013412265144635302844824592857897521001610189629721432295402273541098209527870550470421310213111034367449701367638826688317572959625242078606993237471031295923316873238296013671566571545851140953288875887437542811043015263449651059362175227528848285793711163375958204708825325340806885536746594222846727067675601951722606405005272706242458561644836671653355708564299697076982159091272994235887568808598646210364946495911887206065078222638810639038740843797518030893648244897408217164677615059363854775082538212602093047363427587793435012097287193457965179639420137100839585598160004068555624030113111215314880114260172318344187817506936649839050517232371462933189002660194357437063295205173286068257612096999224369272684169758529506414587407619419044920025753319831703409060445252289209673882558200929931330147725441795811571513293741451730362388233429974284957819308780504757216006312372098043131206360801553293891085718556643923266558637008010512822727785289061474905394580681943984366293650361463876041518074950078873061781850117683529482497981528576090096127151404346582152587477850625390242865879298837743760580103415079720432736243380461323653985079428435069156492109147373276300733358627249365390210916855239641894318824960935737699037685015015352872821668415322178986359795777619479087142330160759234356307372875453469714075279256993139752232745907500213138312909880836391382159184193375017538888592032590438189213944908361265423616576211040589054912447613956838934681339256464254075227386744822765867645903508710276241837741369668606602900043039602019266935570383280174937731532161453032016982026952482284447951186432524271213208248066272482281993430352206324452188818314047094304360483350551530053660719310351766356900863739348703126865302007715793555699855049013588614196863941154714376950656261240116504406359155046012198607331852099533381328260425317497891255426187438008428973484518465825645939994801505728088595923706803767681330702189259529932695363067564401644948930770842139583573430271346265199390203123897065691754515502528888966885074326921923314923891875074775412986518781786438530413504041539774899076877563365452199595988508513214424891527655072759748449357635009920218961194875145613106813833500218119967891992274811534702663090686585332500251729769851944440960832081819792778599996725938130219736748949997117374798841327909724607280553314881123414225850299689803268459224023308032314439310907936214391276141831382851052071364428907586688389663478438480665463780089783195570495448397010339614679990895467692788949071356953327863905025730149334896086782144608464320310774651430598913911074044850940480835700117286344699410701809677890172393160350360950103172005013391800636064693288315230211821151146458236609551612604077718264053132406791107584498571887318807946389122763906773876040303127576460067000327333631035636434060174979889103090627902873419591828319355319940395662569197474298903831228282954608292834272946528932562694123371171039172758509134454337660285983411194527144751714766207390566173190453262084903070684003477764696667675536464977976829891521890034167690185456066466569955104758067450042463478259822109404824801109308424393958667542454062790565744535909513097091199483334463802042773192365663288426434817021311306013062648720459723805451381982682332585613260736538390376116903344807454831199321001843517959534607900276389469440044362298940368550840021798341120497386551738038172056898697494248543716870415947753691019152110264157782127878470290964855664703690424276164452282244831954529235389828709570745891293443462668612116289374293306547939332618151711849484937267339784078717026246697123033110655101104975577767175752115853297096087286241560480892012585984360473178701223757112693537637367826161823190779419180909565928628958099530367401012270662180475839499409087630628244646654169048376645683162135115828407381729625098851255098746810650851079715239431753516183615888701428261210500921998709153612560630335766273195570167792696571166204486461294240899128935317796517500355548266076496045467728915285366020971951512069825244849849661101956069622621251996762941827968507312867260281305509990876897301062715889147458593367999396549273255379770330866874341935104825457789892890849155100618427019769364044229076399344837804573246494871681646368453385495691705687239476303097282299623512614124864546710706206808383275348193878441907891203604705336072716781251975023328530078705114419481518753446204531930318528669069726415530748315215649853115476460139916713354189593794222946819492910387400541159504902659337429004250626741477650944166007766523311793389928477986973394842218765716620276033852751498753158278952164774232032734166893361735822253313700706430122434776000660956790825863390711324626533022894377026165382730780880304488344997094483443276176349164616610371439485917580743475173435274248927661236925990371534150378443575001242633167031639725635380277297590275732145286345894890912348954909174267535972034658487322083191751397320669162142994451098176935709819925688615523056032223423960419728304777744283185456220364425199887142355361015028038632631566848883031114180037371890596169484798745465783403751331231808036648979584676972045521001344722879399048531176887817301788792440485812032726542159870776900178127541704871451091164754641390146017543245384492943295987547419669764353991781770741508259107423896457344529361152530961029931694271118894769815865883239959904554032415564264441318277781269710774464748233577347067347124681293143383770796219116700985629783752526621413359897600529966647987158988114530308631270527079706463237849444264773808357001808740707428085778185658688871321801804068632894355183835324197710204588578938953884844151234316594241466231096783091563202003603072765556495680609353494883848935569047437189896267227993272589487611032910979071712790888300624605909946878287898078888808428581640666489409594200399345144436841258727998887091206079353682839981648037826308184475634052371438951204758206966679874104674623027843676288716211018809328851451678336773092488269310146389223429887930711214249646222564183421487021338808611369666803097451048458335175148094487999286358210093337980756331803912573231442527831270644158673860138396259294818735062015690329242524915150778865661992227615827634991874649386839154464448604003859265929887040715413192408707297485148125532279888894889350115663995355918525953602127144756886575807647124671375002064279502785981701944357388989437304299839331765735465759661227940113245510942040705032006763632657749297746622756727095694366805899141791973480831592940738988585959071418666467128741550112493141079521158891795793458275888463288284299557615688675486164077253985331341476776437516295066722174109230532059118511981428913893742126153014531249314176651675445989753001081001277363145723294034538674844730176869898339122465145342750871612051797814768359884709280281694400816659869807915355482793871173108684063761771900947991797797509285658107150536243615978696483975530769170231869618992483405833730900303178274358600417805517410029536875333178530777746022268456633576061408550749988227831345397281060316965444633968968229303116777932356474283415226050964255788490197575965775561331257869500771102548364860196099656579641587515840639656264494630547267433106978891874636033236372522933476186484299184833307019943687959776441795315159768962293431873657378264520453558010413655719599903387264067768915407593860895901468713912100504247842159202819644961320303872984173051134713933456618967965193180203571270286499743115515825469813190856021044781085061920750586768868219525183539745345448130206028650877820405150893643716681244479108970876673861547438933269033944529552662575858002506345415728358900302691504676775276106688549901175005578127356647300803696676217876388997996022217468620093948482762622727324624005413868599218331310236682060605374343143108716173243989143264265911710100611567946375635772387832290454825646116158835176570524930526556706348518298305026919929538416845263722143408694429655908378952304414398462656190978221668776814688340596243561197636215175362708304482489005889994155367847346224310461097003809715175968810372910701991181758584045602919689793214210790916176156743809815747033943620331541641876624708384120040180425422514479957683165526510913401107211502108016858630839545613231229976537363739439645869259691616329704028891044554248880119126606114828340145310272833347269369943532775285299471302176617285829384649339192458810302868452001426684264273284238714636623030325054583650034612397010199623082185226292788534979720933319135573638327842415782404549913142069226506645444497387746170015374733818204875729567266873430371285543778079820264980995066496129178304587141993250115132866406742058586555436122556118814706723965978915740795713436215787852926943841066717351804472396655833536778216941671961460517571537949660997540960285237426034996702524063433742932432256681540531693682780197600398134404862443216001492567937787365521892384884543493507040978605807427042090792268104354211610937553896702747034446217424011850300579058856568021663769359539029598297304997793981826197120067424417136602753664505468889660901789825360989583904855120247174413321114504659918016924342614712781510038212821015422316769841581423383069745332518239998444557535799908366401025584157407387300404461027051424532613722163684835454045074169710296466025704494423832481460984018716417747111289143589010261299766144601586591762242581403915464053934519046536918505909085160552186813551802073153192004996054004369618537554727013009997190898372956289995554372467463188646704476765347826451169383817667341896034821145510234950991813781213644972902382235546551479490637965783898322992132681511683413471578885537856428292741434646724618136355934804773623011932911163214591178773171622867925070481664074436888646317232659476218878653670643667511558772653365195351017986602868212479796035459273559919892059432188271930262626936404121996647530158544300167222244794016993334004476706031939219258070467632552428539864500886044183692802700911303321560004717216899710255705966118378411896022685913319405467859932470990552172374581675313370679063701914634963680321069560863559696117697126595778027788712689060038784727075930716351403095881245403926388255332152993041840375985143668482401612190882198133975212225816425795442084093687248202541396868384675802551229063495515272615566411886633197326490133646084114521971112564551802881077092011394420320371704535428979117647495870684670136673892065009777973180562335719472288270057556620924131437954573727643953840225967358525648256841320342706950852879859871753697876823527300765648064429787689959492157996187812817412640054927462844405769187610390991958120100063022609949475805142984670208014097335190175341944860984854968606790520087487759928565208625724924349791278288138894302278618709100018552136810267373654342163837971536408583027531979026164482134189302624868405258230274168722134393843355989276666464180818391400875515499808794254560361699834053612037857788747554589742322680581931922086881385532841652923415707913996634684578470954887443531549927729520053939735972966358085707032662062040448951179712037011996320690294121485444707133255186568832323870903560050170617826291367221629642984485424018815346599762233828907032147928108340231927305261096927757896175265627294436168081895458898140447498174607548555017867160221764472532436219628734471503288920769928806521353914769781932667732691974616022022615572626846369764737999433570977401768700959123581310604492779664611715818835699635938568377084914611032443088218921154159441727199760608231713987962918305157908513167943057773402110486722817390691657505918565228011288033427763197229597913651099781100173425765502489021986143454221080100570692922107096708065564712935595247126523942515374798045297538639814586056255138868899628363891848881789283441274838802240038188479825103696049836078165527843011938360662614429609872553668687830984754835867106345714077208553914321515043240597283347603965816236324384398665284306375236975356133149119776595039683692575054971300323100443090926460156074084986640384267873520893584824386954394371305756592636591218574739813622363924762704233976492453642911369957451049673878251888420999757718304057893019453893324190482284903187413564467626745782397271977332456302002346812772070562566256479907771503785835928080860085420533528191804901658194500722410405730514404706745408417239036327811455351734987801319862650486646492764900919617712954624122863235081214705379645254452642015203552422295951319441731421532647879409668402727778982100830039323998497524056597928241547189234243294932889926731460398273428940008854944703571253992358080580020053750952825072639106958548247856583952498248591848067987799424387831285861189210559984843879408856798800504159871845083613102640240943970837944232864936097187641425201454963713923643473128462015811655750842938831924917772582682186817135176600350537266057883904453096938566192111027566737841524107595487336263064442977653535923214260740277793127562713556582508802757576289461091133590420712491372292711802635391444075190471923843799903348839437505025734049375188999035716256493574328758122459378840133411855957885486521886721837328556013404288709658948241326864892410153524342844930212330108564630048747716721642302413881177729561198503368023617654724967152610207639814734378367961303370486033797107985926265523943469202400903392817589533793352720245832002655081062909085124802705606745288455684919029233795587710850528305540857290307481009810654253060151744207854992897252433550347136368057022577562259070207619921460632062326436653335622424534391657213068486299168976961977486754107937857832201220890839817669406858197719939561970476920939814208538299094174995483024649874033255193179593302384148986236803262740643920634473787342823386460225855242227685598202061740283288391398098610153754964457228243544873871691909889935075694527321647723693268435895141451422112253806588597879528067430456448477310144208030788628352515764836598321147005484620276162274823606764413421944527750552143747077671193375066766573514832435102385442217343090974811529557904515099127720817496692379401317809502812755140313362054303690051717953700709048930681852926173021852901376514009736662003635917672867198256969411590537588750422503020313181731947955164646071094871962957153262373691434269644650697497398240762784941720308538264189422403411068584920975516061776314936174103719429791815496170339816784205338183432510670628542617121740627583354475834283528537692749380543785413308923524809059944409418785817194350380949360890649245960756293230190415759410126163465766846015560626921293930839499572222045416242371017308191900730663008571295682167742173625373318258507827215266330645564003357106666643684454985072261135243921658925138810745085247850578972802906124361838827005694708034887347216637026732670519220534763737883693274735238458477150432581570129635556893942288358758046803035760754124856517828226156265051676814297752449818392979035895470485075795926503339021092712829210949646276118302261761525858634204859215096534980956264549685157950943427871124250828465587392326012439232372953064567201591496037612896191914218265710138757434850999284637050548098868566807225372430496014092460906706038698868057879623934295299124031702665291591200383739970413441233840677723339646378856378337944705287326389102921356656758582903832837762628257985153036160386948186988632899113648770323641542004292254656208820691897907413686104216099366538869503917556416109552812098501420934974894020431361154626404055681239182164915422216738269410875311369599893230165561807470725665164161536415387737451564897549785867852728863903837083341478568071290900793918824733158629916066191292891755998464848271497627522846204475833616890319128127841918760062270239006399790295239409535680110404382749887955341993874956922396881582667073705075985690705660173254669507185174892936151568147380031739587097955443093320633298059388908952786627150820871404430642894152443405426899609888913484494107102088431376548807241639743873556810977398554650597154855303676089519245765831174770575251670009916625849199431350052282238894403562128168273307160541296419067558121369397793235378183080537505967016719855884091948510078902252714459723834417569785172063845665170956069743252523239753485698911474898864763882314132489776780330232311145466004898691479090814397388023535017400737732912285927538239108932852087266769066493550001668600797926108100361147055582554120700745332358302011834805230143061305089506345295457529726557542854485971949926767211915501496325470850496033015502718968271859800566835258635146739257599671288488944496840695743399896157844448859514526419873599806320787030518608166665329202290646536239071363721968037884764012373464812679389338345536705975936944326458176649530786258024384744886513727336545803899916532336956287249975578774887742300693820606940086061135373692961894209186723981580929383220636392276213831883783205342890673636573066062145561472741008701079819551798438296100721509812572663176998897249888642447210747481145885630125411740745475543040483087233345089699603770965734714307627294825365187045778985279187600244237305618907552001235039262021352752174046713053767148275032951210445520620213837220129805533161724769070911200944537217323441979264480971226038036138298759714165896342228197758779530620831293811867573586177984356963845926959121191320997375453645259433472776469917318293978953303866534618483665373963350495049609171127795194247649354424546799151131258355832650800586545584735176159417528659889870459304738058299538084669960982545048080341360169182198812019005991522434900346677931070351559005206146559482123459481035254609947793171946484031122598025038889714301793930194785135675973035831492949178661536753903555170257497192059780586378909915015148623238203864308335947061797763390039384338707437980278808155547232781388647736636026403028268963947202386088460891034651960685117043000610385558094691563679436360971141202583752749061824511452159923448497259493395331202231415089204456545272772607319458229955834683481947123412594348976064843330775287345016297971966844777370500807172172767876448401622058051215122365336288733816460217568067729401736547848254130627134502848559305161082932212341345798817748778154051433938084366433090602719248882201940343742537355580210044463444297919260602830757878526823794468626091982893875856687283388618970019103698447358878557552118509665389529938856364558103862206438495847107670466539601580125999392938656728588649976106759739678994097424484875082026909461584992264560376964584899305170510046077490761237474459097020952996449107267438480156290125688417808250642954606720814866974018587964081935491700375356063961617699986470268947334178178555112129884154729647701215738488783939832356673104596579862095221117285916732938471987895564585221372661935885174645031566313849259247547620256426502354960128951743749330652143124717963174112799340188816152563949559177165552177720066888562631079997077814059591846203999666385700785003919545308498989475431556911999414619555522871276539372323196727780831611621904746158388568229789497627257440095851859302296228109659807207428834476767753017623742798639093104740596618498047764851467601277900003423088744680539166441331416327733196025363019355735096227615575687592907445541888444981486319319059597011281426931397270354547137302324557928603382892601093060982349027477222392682463876550880538639639691919588127101824811873791396618455081622168759803923594187147885654289544262095429278558168663159061177129230073079982157557886032109501387782049863773806296082567487810754282785534636604566516213477651589253165032383858457015633325562252802819806543010760152296156337614720944548720121282242030570538493185047957358474937433293705166386761309719917722821344881351702185127862962509344053936469144686977887040548962995563311857065886787998793157355794199941734983920410672297914019407289202338792548189293200294566606153739514680146774357321248947170405162465642426153482310925505222675084814483183448247989072563422891406408654725595679633801786428838067206778333980182232915494108709639739901014479676500269166319494366664747484377800622360334664708292809306019378579453465070944967313003525673853017282501011981048577767026762295112243619376948719879727225492286184949256901792926659289227233309161518475799031732776658803258552254073024460527745847199855764087049184628471302234535414109961442804758964865181412665765174163622450567860028626703355717820619435237013542451300867008570213317050788344930846638581071627967120743094058020908681437864915747810271699065679173585705127638051137774609072205927576177574341949772477474535175811173550491461522361260981486568131942187018539547188611886184965500215207825537009052484440917638457996334089765004469249875189438647567442153626455910549706517970628127236826988157064543774987984465011861142205725522517487896201226302740623500132050207734260404389655346479850149392658257256585471971276762276120873690548114044707783252533057919649890620824684564895432300852860488446989062756381401434281758887249611419878722299654168644959211082267702949631136803420654161834377304547197433182688805813194270601089842286539085987434647109409799083365871510898846775530569410735242155990142698327322856432410034733602110296340811914728267296178309118439294115444712443018434552490608238853254206831462830080292716898502022880240721184369942075064445287501651430074725460339623700130098539577814973769418714256503286983409621304339789381076843890513944860202885463043097571510401179356009927051858866946895596012715369998987002983837524736391257211335370993142238103757646421797409273907037978931231747734831898240501325311593250537796130622738098116978356630692079516685735811383840626157135297663562183615142269349257423478633232657789325556397244578885991028694298598727899140399410505991164717545363578734317158939500725340548345946619561169330494141198431624631654664701284020075450562383798625559324462082203631619505546685945361888252730789569051826620096878434134168004332525037423426218645995113117531256316196713526829291067893667978683248613629217383260672036441701366152550029113800278159458994813454108539515001983183746950829091838123633452394059724689941713726504172730355047632445824631681575764287291178534507396444318682026181909306367479134424570496296787571692686236425231849087689024833288551100122833972012386180792414148822956352727989793974385717905799843688474284611542828200270134076076699478629440838698763226247098083847001227210371960220347888103882361724141590746920083027363678645847369413289753515424437791503475012031892503926462230398526413875171573932567749097405940317824883607794567847986895746485200179765279646766512832824090153031005696217865181238042241577454883545271244635059378702112081581959623062356095935448542786874760288224956329522825513483975161818272947540538762890329073927599550577317746639227093740378845319472919861040444674246966732616019800076913226948879462946634638713328511234184552460996043189892742372327564947316630909100467863619814865322027253463120430022217639752846412261950947271226805105045082602695055007442949468506044013682736543743431632944193730900061700497258587752572200220708553510094063483225381405225453466626338355459028793167919622319116025787902402833328899467857233272543573527793143586401277607356788983123801440241523080242554296265780565764682357569303222600081832863052565734638218744469219893697790034942984911424511654963714475172273965123730210870457297576594283193045836827928040208450618506409977746652270513541772984158238473717966914390651362768062613206388927218643666197960342796304821711483875671476312271868920217798108692112294166847515557827885052027696715507503167209291125964761046507528997202763387079833421104304419408890346785364419212602599955733855884538822895688484338461808674244271199281397249933847831011267087648484992000014394743255466364955353952267327965086367102385739075741522719857989134674214008467605795769125293193232433122823885568229778941736683316020141135557045140343045153102570450564628558255951161610916386358993398194980494783103433036773034205656262416804200495688387442904038390028613234684026175475350885973856609761480589269547018523503328745728630414898668228841456929055590152105726488343551747712804395524208521635138249601261077808536705858864547234400025287140410085403394397544658603824735332716802064814437065083701951451614205005768997196825948049802002193274135869080286903108177590837416233579957446450199484365427053906802941960052947222294863997805931592172608277056604842991178817579537591950204483889740956799682834122757361026868538209964730160087726004043712304751054960723350357178018270149193140932441898034974675143335107987210777917647021653082707076455920465987512699437931496946850213458041244260982571533572771250546632918838483044098616764799418915823402173536748320583028603637602283889970825543454759993044637443877627676316843438604713866406105369202319896000381203017283232963942169850663803108375903661409699401690963710903758539622817529931595614038127998151476924660542462469003170341393784064379910426168496992555873909769871430372119599444683437716713430647100249059202115772477064579755801822721626128864520168692402412305567636657471381763976222935752879737828488856979345664084854379366312289053654561830533571616744539284635275060567124338081187972594508197571904939552798873703530616918409031424805351124354260638534288635223702500969567008809368163248896800161247433621087669252941678042885320713395438231098770073132764665922767342525416667823128564286887700231103721335310368838110170453922756601774192579947373655221622411411679005592890052781567000994292102530957426775696616489090647353221684652672432723976547101447473010332728449614222045549151614690864490786009696273327639652391928603145511600204524847886465373585233260435910462631677572104744697674978281438737628053062591087187176672737130315389778388178757710340312848805777204841551014779656003240041705342545200987922766898035365040717437101094556271235246765233855211752247743345400690455357383904695056745620814909276246601381980715747561259893862656677714121953411741006472654461650922073212731962846064546989782603634924986105274944906092741703841799998594980705969103193443813184818492947921675003197389504054353914131325507327802395448688945814361479524896686635034440652819723011027165873605607687399618429399429681312843419115638159246979628239505853988804147049319008547998147902018936569922872899755610437260736460692076876404902257073725729023778343385562524289099666185776489323088433642806101554339091681752841808419764851343944315970059069669068712285236836492639914878864296228919050127990978937778000562650653401088856025017799952008405313316103935569193922728401339116117088632134232093065787613807604269990687762686191584847853651662826542872083340217139443966521223748917510784762413479637130383105986525249906590698014177016388941416941031410491448709512543878579729574836423823581380313320568470018283350323224720460221772589275240461322013574309877678256291739643082381813962872414949062676784404325857973528288656689778839203331862169859493408926023810198792259356435563779429835685975703741082668202449470778837401719119360720714069927974968702625232082057101374213814600104282453294792263285351462906349269451793493494183252615942940939469440355730155102252745573313928269153151936435027076430445107923348040057121505169164620324374669660560075600004301251662145107456712143602886340995663056129454381180427173860720184422206505812727970620608818249362914799041044703486257932276218447732561814480337484241967596736887073972987612703279523688311094094755224322515355024245022983151677092230172150233244466435041422697427537483494987859230762661362001421589605655034569440706208249859774703122230360497326518489208178006071454812034627255754240144233207892792116109256335588937598259900247841464860914534383113356355848215100830353343583463491038288305352457648480661886354198517851415843165700601821592150905020134351504942232858492157413194762584493342389822535548977765783558247062344920085328254790845720839660592187864745681501982552486382244086743259979730975713037909194934817712452584200114139670469133889293162317222137876381183960939738912548850091544081418022279796408677438877254861640544564393638868862619242395576128844457838924533095574709554689318433419898675593909735990117475295591666633994425248012276219601824753990568383847778871995278806451769840448385284380873959576907878755920424303888143913568305658186796737760498686377830314874813281118834912366200544584616506701921356406195916365947409742690687803150708306962233657227701532566606551654180615620679758597864590372192973311913306023585744553327995515072786894217072898981107683834212410063086354719555694822346634575373530260671209987450779900907532956869325432775715920688772773748204910982297435379634918621524468813107652142318133131474165074810771700770775250159051249013477837907023537184823533779193903310283594274176842731019457340859996307039435043985464316547356304541361131216476541523766307012676710057249510183906762877913905473808921435753195279345628666194012220778880849768140697676986543122211160446307074409962004000514270834651541517933474202095070083285185161537712397861349901088580779994124045537468944441231652435691394044450634327536638975227271650353936309991740438752920247552061843525135204993550173513909047439466571833725653471797457595308306039429900474897630674020422506539876148266370699765548336935599520130178683957112645975660249471548057716560413318117526007481315159302551806321753078329865470208110015871585389040979155190620163743641750739133520558303445419082506735557983510844749252103864413011097680245249884255106851553339699142972286105440987595817389891385593808098024521348849686398396304563758198408677588192466618436322373034258237659525775480380691421967514875036272587233033349745677825313400622410048842277163052516344571937042615400411923472126250677444088398074867740703784811041398932475711172276450413489951222381439071344418458886727269877300491735581714895976141697089692632739278635839592384954579028847968716661314670771656475571262663110443435034301050629712548563659892249462171026560826724916018378190193124627857339582081578350326667180462635591065520891440131945949393146520308351490084649293808756484567843597745173445699980165866333172426295630506533860880330704672502889415504247323090238102555043535171952878711020602274048649409402772028177570812494681702278323933860096834483940231148621146068200473646149930745459768978566911220589031617826626191471576561842516973323027008689160377137901622968062497059161522933994466678101851751061750577190947046226833716014538415806822191748267676226060651068183069226606815972157124683071559861103886917945561929344339858788093457319465057556786757616860143716668024499899096855109740909173523584178408188955211939996360207791774918875357633215361485699396013894011213113243345245688378236047229008638853748281657798044213588480845277157596682784051644748283488797210623582749669107648056737518016778447008488578839122382785507146376854794125097548211147223492739186206164834544275698683969434077220302807879526238409252212306513935621677972727413295296755166884878038914120991505009752432626107923894856358970221371944991123718721236138905233848683983590499208287473247948388114445368274354657316541734504488265626858792982724136157221233303146482114227061407440666217431975528462326658151723625712158849210285226947170435773182374053455439730556803891180577221400893063637818316893635635427418996508469916938287445176907847578589363821358850225939413865975302473764106864446042715162238237650380958769515730169414518653934063518399501559720556302591985979633523986899351828698139841914853434021108509376819766902226255360529525677994711820181625657502365449427183980900103265889657143804884213765569936869106858145368566636342920205935075776952555993214117173316477082960245217122041411636450204525837708352365165547500652257167150415198722552089432699823333833804670837582770544989962810179332639885605104569279068493210804526081455322331595037887775269402817102893460567955639379638082599501897384541281560859342916524171661464874571213428430699695488993207340017269729977663117750874016152205997624843762664382473611479595927991827119578582465171576602349886980539537830330481638342855160692720411972488050293964233211207008816406419472363679161671007031675412150585878062288240724241340202808705376458016412473759342635951990207094617396766894314627826829853725497334395301367294890971251532932405167824223394675368358077991030609208788975759793350936654576184950773604735063489480503883069159823861100161964535262056175147008132592401615950731095960755021107895704117101601357385111797999519414318168164944933309278097402108819159266241727018119482829768454901456004536954549466633404833257374153024811941997377579714790999988729777474001496307231678562044854965112678462346351512883670099729306474270861853371822193746248958433836109504474452005308248052548059906259234074518752141421579782503261467337368954263412062452902148800913852218524868474697903235302698696277560558565920184601011488706000991326467847061508691083755360466734784838838118845575359437291440693470077220628530629893069590404057841620144825071218204012734005878329344829012120348007277316307535827424770618960470257971049380766782038917983271271828145605499203577566592775596488922596902074716519299006031663587882584002035325456192970167952596862026339799912517725020647776585364720526651685271695844725730912845102107237100264869797826576429026783474870809489301794265992601458998472913580352098656586019519633313857711018462989291488778225816212078084652022905528688632696313107500148844050578493296258030752606659355681324800450422545698363929273715638278441061481821075356512561216957233995668972704436879581478916817497424274877042235058854953693569201879292612179479430961503941139279485346760654149962287915340249956053634514352664405210857676129875866890435857975459593223672260648604500501335491219270145596430301447002811729611570059569400086456499915966944797328183528784199628478297206721079773429599507289914874602724851699771731493018732851063013164499645972075219126480193003283529315629408345387896889647169080468639165240811455651889203971316561380222042690431655836160907482834056370296324654969599307365675071203876962224983638220621523076671149053787621424758556104688358814533505399718458978896340820081237210470858462908096666219836543943606060458517185501727729383483975025733972371463746563380453696461509069807454881487228246728417582770054056009246244720347533058838410079789386008613889616745120984881226579687235840156941103057299187829297097062282704473553687800917499849400563148958953548017176428985700604854185085359966228479816025592974639044221111677828124084213919664045518161618496868783942328251383353419235105040764962651266217490901948324553343498676009632720924988529767072691748124357699633440596452349870117364736502912999678798898598941389078135792549309979568204611626635081960139236746312372397011105543477445430547374682804681575165226571076648912865531556610449802972922130176304663609488851125752300991077135077406202921106372169226354574598597033847987357176478354296546408081417025326598120581669424255823304961514761928626939574340103126327637491143218127982468665902680093828079976833101275626571341321074054489934345236236864826958694802061186621106052669939631757824560928730012095282756802298746104523386626460060829427775450602729228515215954106526788221185066066991486486997580995381669829370585568744609530783141567643391439534017743329972930689488651067812929956265511950861833521634191991745840707780193668983385089979115066905698884388902425932389165172296498333609725654584712102656871990750848330823137916107366575676958952570728749521941197522875781775868867909534107287741727683682594667701913477774601136354616641030551819885853066058592161660625059415844236437720107377484458120004104492855596854075647055683070231871959704452102342306086568389340075333995016060612443259289621472471203011836172219926052273912234252294658315174978704563955179417983029485129401412369160662488730882334567504618436160355250381357530922211428638773899399730136923620426220600788380335022955276783077125271279379534289134748934729693608666237926615127639032361634224593631055308142609637643321768555685157908500576841519234161230750169908860029501479832593526607918088112883100141678431994001882771096280431503280662206689111491252006244129268785891321616545618419683899025002466034956082578113678914816739139337024014057908956595704500356342011772751428289345670390544999665675421234639739656936274425722069764853402279298369241536231752483739282517661434038065200956741129078877232531196477205834567244622479801982390008056639674897462685949929280203958839178043659508684933515001518105429061037408199979025834188694346609014159393047968493051531604352915685443509532422236343741183816796729569519419777521888629094341245443414094901261227187367305246654931110185490160961576812662843883468054248370194028369246319547646758268234967458451258663257734966728858596827597586503429739004537574787382230085725596349329084619547023607618853194184795796211701482800593496940000242599897396895006360340275621796737923644685820744778285820846936436012834958157158280789037751794482541685791819693140519366955035810093147201752976371607645212691538909194102581547978311804384420118082493552012371238137326575153303417325401259429222645365656633442439210576787384210486841495304625011132455192951861124966009982397580047142494874082620907101706652116978822500570793097417950441310874668702604995573002230261965038641632792196980370926102488437884448958440191506733523655409009103410311862789008697959208363863173848959321579616053084417498656675263802000442918196194879514980934675224435189695967453024273062660370850210903104681195572492939260788898298902076520180753732143541217240307225401547657276166258783956326751041430717569807545351129612419076786715296875690882905758211941070709015124552540403003770228302103243548572042554753370688228563119127361564380328844768424907920938768428937881116993524523306645706771741002308683090727738098326593879072404287113102179448191492734411499443936432606594097135413649196204491220189426950112787683932349446907408613797576811512305720824496698062256081595734550724307249869717467908476970699325474641037998626679625877882456975461452392841873926018088696687563436144989048362406849852828103959089733213581564675916901659940510201333201960824767603144688532587974599221859091064008012051284040679092137589051856120952531570047591488337749701923105968766732090166092649671680008893415443734732221578972337463692329731876729882443902393944270081179783385069765233375445634036661309277163792034412180871292948424046657885915075979956580030874431539795143793387366564334159572673447764359221295427828693257621897920502984927267297119867126085892819647560615349146537305563661253977859104175256598451407808925459407394265193789084418478987690137417523239108880139109632272487893819776811873199326432989551380349487734947929451853874102034387947072358833127492695127708588891776374422249266025157788800614401115507227994158273393983335843136354627659715233442970744999226113471830262127300952142427209676033148010022423020427117399966186825204282121269069539335453155849690997008478275179752321186318484189741125509888084357426525161306509798900628989837398809854259142284955260692507733367499080188295860627199331553630235864680908853962020627311404558349056729888627390281366514762743948307168750158783189429318273811827078188185310852588704875263152581128161745324689774597270142377113979979758576915191818488975363681272207793248363283977552993981406691679109849702995698090992004952535456751559824404587414312284175198425606502268998656387557840377398689041314259765216383319391980970204248950050698555857284199429258866576403694722874937831037889065771993459923353885963242061773714367933216394114562579437305440492731548630379356307991492951546068105597932788561562072381348699705466177082772574890737071658221005388291569418741323099145259574863707463502158176991009860565123515918000522964062563281516385036393410358169246136026652559158141600498259948208645841315938309363690446313680405734336156468740211786826666591297951302311127540855334519588610560618349872417562196970611394351455527130726866883083657871948793727102071851332448921419674989257028191764695686536101663842339704155002272490915729346324184127099052955366806886324714616372989684095588357951668266861263455632516367651850407689248999398480106329782851621807463606555825894378921430801756614219040233876943276601365537161105153609165551792456008797433863553203478251656912263013955722826156473769103335097966993730826452416551291279069289318725529094172831436361012059890591038043590269508184427271068275692013022155586418617003247830347667586720967333351537435653497857831800131912292914778522327850204351689927654822138211686829497498701277606120642644855337262885372560325334668133821947336519747506985453072583358229709721641031492853038269718383634778978257640461971754290038714781306056973915417799942648496835561377559340250628230548457588707790718129771193278095684266756681710064175128586545267485414915066751932738348735246181490974085649026360944273843393563185021248417448750552052748987455899904577352423995059414089398666849946086443628732634352594843760839297095121480473882331251633563844613391527929894456963902782281382802410128339906192710942954887254953842182623824335130918844661728406420098032672415382736873848736959892346065909821336253022253014032264480155081532592298647977766389011679597662175497313852549616769540807801073237990821640459131048192442024596122139822046255785391131263490708417941713966801975246684439231077914575445434542455190024945253390321961505649211448510334502650845203421336501952439589123444987623051611644974700802972837647815641417712980813703920598034219801947413985294940346319433332125333834246422878360175699791997675088186803864114351615514137374716845064094089314232745250613881134519698164835609257954023105234488652552442708748684363377045912095275063854208270858142806056998599889997958724607903630096014587950487449606067313269771422139854148154092641466226491624060816102824933208133805612390358238515696641054657978252798431286370686644640641279112563956959246968376677030723452872462086741077355354868484653246300022953310634020463614648695019294814392532313343783925914057845706223547454408353611494476612409867764991345301772026142723492691742239113959209027595825301328333815852724012051517001422451447346730515042017480506172582357954177041754480172650125440182475691047688900176385140563821658557255710857239982934544679010195163246977346464129621460316491688501250543937697003969617474655512416464734228339966341965222491959189646101723358865859869718866770649787258232420192949467542354965124190527138995667925489048189363793818124079391579771620924368188058370612308187389793329424468279818278646444178222652766576605099409851949644243869436506656699972827750308851608782572341962063319282910650761285110612191448991019399022322674873154949676327630883914204076176546769798760672005574134580901796032486353209342687652832693038825564660794794461317154462808967979506673791973374925220286878187557309380990220506163417508431116455448287524159376676390221276954161234271252676564605300355310143600023010914821104609829050387398066695952584529420442120360500031607072750214343040792155635241879200458950306065088750572556709842384792522740811276377549139532595266358400976473062799175689446372419034882701249490585238573361912009754911068529519593486758880763329765707437960748078414333901947130841822428999359648864062339309330795979539462829286236982872854959176790257793263791258299171358302569552956484074294836650476002910913617200138414004680961122600887853172275963177167715831058004617494277058599727380638446914740664645226129197028318466365082344517659054709004303738587636757821860273677740440148921611989608955309238197044506175299523440439218767635253268730791484829456887299082812430177739098848903311481399565574090082389121244427049998038035359900374792298949995296792055393447280894253063298038650980624441627648181327412999898683930049823749800333522247014043341851500112346971724195637411213185168606447206960669143576351425290707424237708204535922289247035572274823103416319392648905451821987494647989069055394726034730975070800269391990667555797725588717000006656834293830982930428186511095446772543982452580625199827971301621710941256075059734767798099247875184168248036012805925972556499047607083307340315451496136043654278806810005826664901020693646633769254082083532776680590338515481060456616909176752122486171837509749225023483438451989527691345689637575564101512627287263370740285397509741173453295684147473420946290985964424655729995003437624879670223556404207491045026535837683942562099133891608524221880440440006427192585785381091457676238626457028130322573512035238942055175908826420897267963747532054131939325462833325900927994761353814395798511521373064989194124942078578426224680208056744000540012082004278729435757445452237927294146225712419262621079703331192247469323031859454305753531282557192090599565981506906525970270675963214937071690414924984801718347837409012886920228523474570849831891253962267816314559823409421556668341801850545581817403628744087060384558599366486087613675913288993753935583703805430255289212748831619005698713214599650682738424607311308411486368618099159268093163924511204866506705769834062085286474685249726012393970740125703924596074586834899435662568294228570217641819041970361844104578695658795722989605388608890100132433226419368462525238272019921729838859224212083490761221148957014740579751289077448729058392483083410401369527712054588366048734074159235252215027221299552396065249254681915744622176731262673806960882326932826077020459247806362264918771764168600693032478482012455071562096899926211378774207802155766616661149877031067805188673456149042532960671216780052185299356536172651446653957034604797273877964448304164066910029961275205022247574747521297378004489829279375293851702559940641436157783831645789190356246711288557088675977029766839351967805466696896354224271352099111820678138552652756218051249834001842875906142962069999456661580278532870295090205230108073615244589105927865164439370508222663589610669021935709035187752831348690582098763443008007780048032759911833888724663652223760908593921711611751311698833570010542463386760750133520790129682496163189052951526918638384925649617670602370672189482250141773621799750371266636385936169334657359138720662447737114577482783831672206736399275927911795914241070316123129150953136620591373142820890641273111474675946856116681950422216319278059276254799923218624724900024385193361172044626079187176661582262520642896523227360330718635025054279466744288669199646163459065715947981290042429307958010646246495842051744305761374443725279798171847896109942717113670855523013347054408023948279602327942313228700662924552521531134873107408790584484575055462790285344378535703323876691513161066517095544635101448352814266031120380115429979087196778734176115098340906126774551985275272729617163283721733039837176988202853850916811181719045325275220604527078002749078582682599331970613988069494270396596510851631997876978049052405242622660236321446377956057858264421372964731351712871365546193462263812408397439509396809641408816955037245990065939698706768175590338536248470076634301019112684865722452377661958508389062178554450845428602367120570249549797833226843689604898851384965591464003490606201081411436706909333322594446218158379273156965113912879046488068686445500570301289627397637152754439301533986113221034098747009569197501789600255796710777733541495563419705948727223822362251620315689238737435753863254491958259200194545318224994924996573651874610024706853844903659950905427124103219313951463501366635840501489314231964518298693125138872652331051073390743925666503629674419133152795095655419901134322302942012132450301193368024435786883296410069876731302500941237399190142934237511777860991104975809130073189687347987030833184299648279637781509930466283688751768879500323609455545121037025162121929173311162708936385012007100371244869872566467773712268589372480721135162098136468865975220344532010196548883966765079545927486054030001016147884227596928202740811047578393760002319264080482149448678465954522623151629612841928306713266629972373238266424455774206580980765976938411520325946440624031460170602280193595232560357197185776910742045399913664343993638715924020294037222882969182729170305332531811613497155719038942444023751048447734907465972133569624817361831496418070630686697821959964984735816627482103609881309153813879508583684125930035162279856997825289734865666438636936857745727705900204990740265155661428080304570657939855221835512964362449380186654192836193810256438531330608616368055018112915965471288940780153982962117841740191922544525292045175059066729007473197340413924429480379243567988997609837299015036440347665550580061855640001556546972748158397965936962677471677543151523818319114135064204319136861045810385255763626491744014698285573860224823089475259917411941371586873482872193680215072060055592464894480934791507956088880861206877204555625176459952708341878816382208326555735295871741557704543457241560521160033060068504257216704743911271152424754435538880352026797320329935227453393947696315317990732541145609486437811095152644183574949815499495736862211395605640549168092324464260518416892111511127372610784508896908315030730149767483115886405588652929042317805233506496697803565980816540949645779857464331586697862138508544504071704040078457047105354481705660520766616091850701740737804992510664451410443848683753395498100722913569132750128931093158003690231542965370866325140629130775084620684048539888972405515289598249322586185809287723139980204472302335244872781525066546137996737602720127603170559842779959283433749935893560490920894632130824529301337643982721528926426279751883517237097613137579247210169007515166791420430817113817687584874607360847133885963615246902329402942481973420273435998767375917079299601824008333015730305994384907261036255843582772415825886110045215216640198628224097306633311787620049041096702744876681519636086703301314477513441979329766529142177182468955421682321960329252382972505519263722545876070904826819384596372041721456734849234145390575945147782705725090333205632725219297026285561274889491058840033391745897322394610688471727660031190338330549559659624439095533674172797848724938787126736549800174115840128666450408316985207273947899777846099963284828357812304218981177290847998157718139077502549631352214392036045966530999630341124485913927300830047758917788923724713789830623353299839498123751031637803185677282671250244439156924747385907998811774039579008119461425534968874364062630350524598256631484609799940271795092130254658727070799003922958123207577136696135590003071336607294939798075277556731137399422912236569932544281333122964933725551231610014754274529291276387565941366020369963489399952282763492294376009705916959133891613292033015826010613282448052021135729796174893067315978442481935668367323509196929207393654969924111243081708251054410641946955021366443056472657243954112962357842821385443564678070108440394203644995739282603363565156434459690529353071954281253791453001199562706828491902855217829144456015318348352988823431534940034350162405334831957462596318807885444410391097603288378111932552740710258768047066393262424780444275111350138593414442083450390735210901019828782849357543083999622986645584011649614261476804612377195526528505251279650932442374169590410910874011214071799570410499926401235550832243315356378746613229312705612853210358978967465060703434999369463831915464622429844794002310977323158693819001850575616329765307556776453192782436154655150877894346266516253029524526389062248427372382657062395150713430368041033003917518964359100428348264869827204946236869133885256738477671534597425968931622124154889426151828984843488250410049084555206633512988741203083990358342525682818841319359954316373733711312220216014313661146074005021718029547743852957539727399517387488203964815977717231466837357540384445380266961900601125761124910040534002467624128603039821609183918537380847380134951796254929139688971109955079886906023361799407430089360532463928989679672294449567283020512790523136297426445720016326692498350941434625567283911838653566942798349017698187545403091112512288014941906117222461999946427531593699298801545278998106903947179424797629665419783994913208690874994742177721251907122025725028550092173949126192810135264592853056166678802103269514115923709819116678790814879327755677529245511498617055086908971138202570274770757756082012750603062789095787728426672996944900541081362883638213275933009312510928045262951981760879415490337563748467702857591690257631644890452230789369598597156861061732681189880484306682535810923720255667553275642295242946814291508599818660918439839218345654951643526743307624313504744007334613593658039073514417569997126725404218814782320106453761500091376770113969644955786172300158960614872814770447200748810914659391285349390161726116085366480321558460591646695224936262605632245318825515739083070352425261497923787308078684463583774649120167122866635163566867276650624647591194923021993657643435205502729040910073689383740786062064350756070087272015376710394820335427969646009814002138859777311770991281305334731765823832815529440052243564448531133767800299169297230163522905839852174664155803581152872749525107723183557566754803437008465649419734191294984358266129457243052568758851327934932277005721104679453538384026353230774049848454359496404302388311164580503104161124780847048970948216266947174624468153576275563741191690512882482819379811719535704233774703406461779026119134777020456966850350020242697355369209358309834639020873564989480520507520753206985899345152945901957967675531449022032457112344791693878018017618327766324011187758050324945082169325415397312804511057924032962356052979554731787251805628372144864507539693009108997902282216056620189430931811528744469899734282294131496683070662026575618702266143542883916698944974328054839198863631016968578607299305623190904107472763828917383838131063580745982729363063994541599292188360134131657201808261302778400918862002455795610660808634159448806121863241225744484805052935664478512205724935039321981795439002948425602527472551397440358244629232866710453478142438805897137832648887764413887391149124161683519314164158928764199879187931132328155538800147945155938464193037272756006645134108484811927620809988039041729493146574947165354121796593813539883042202935244699807224572459066917139935780167884244104722108739116568196804625215692526163574088629092955740087129670119451657787368443823669025339144000777034059898851909589952496578888975523727631285467401361096133316518756735260644449667507768133458234442037940882538910992194688956152042532578323954168421334714556391664829690376741006606166776466470415398436549046972392115533931104438349533748941523928543406245935581244712646118405820141705406074922622649693884724754911779538985339786075075990050690118896724168626956618034924792574726504484793810834059021398590711469776040043981304075255619736255774448789656813424015479380706391296034427811254974931752919505782336527524627555726562415041122016324765897710934575054939135372478873867843859911481320028928917577129019319158788123731350879820249043097239562937239721316187373063221619814450861392283862455941541030823750101853177379793658677337961283878024873400511293448710779543988395232678936561501742818439131167313881062422458492345273840302846245074715702460421024210553239290195192412012740597430949351551174320184598020577504472737545139495502674964975599720969402294082572239339112559095732797376289361370264046047535428562287059795157030063543367836721038717670842486594637076883477984333474044215091862734435004519348884891202156960065774807331213161753876893912156685209382673841900959139298451073621530841667574927068899134531019966310752038564110726877116971577948107531631738806755001715515795351871586674625797239484452904160565305260225782343652259926617861628222746268912552891176904158840115830829623617223383227541519263146404968256046042542926911490345274892335301768636704457298206812303218641354547326483193662134526421210516213878240399707549527319949733535667572623241699948268412590267169367340287538130775573682121724380667388626786472343656585942996694377034288345321654027997213762360973821347696099318491362973023339838476399182191226426336928855647652891673782887138844030272849848949463210747887167312324473504680424282684961010608495541096818444864697535881627177241674533201223276049546105541034348243210319587836077257616067459413460317279138875963852717657778874442657638718265657591565736141037438872136399478989663891652130756906933311402335188692739829876036515099517598181266382322515464359699720837162165623769177898931999691049696895574493190522077350940050777213859484646126115195467025582697648469882228254402978173962682083805934795334256353719948892335812811699013593413251622894531171739953495778689539488076101898299275695174125797729195762510859659483665813881310355038178389294965453485584618007768241555058460583498945240320413789653406579835395100127225985636627072307694871151177531147771050625507094236290225081709202815433171942130165311360386323140021377644040887907183312818231212526692895638524338433299325240192771172782896777479562877503919153238637961678075394710321657013809042674187713152758690478298069724767321646607749411486666726952912871157195015209662657556720010659497436094471115565963672548163460369835259713350912939831882665779413620004529780701693655412045849984832559753621952263987818853176648672610620650052010599332370607480454396163772245891805814539159257340739500606107927253559534922392471923164500570561702132861956650699681513243500781485044617938752353701170187360396898758599213264793129867149154971644168185153385814981028234515445984051648831613722977732369764700017812835498706343910711939644753221826735814285986976163769996242066784541579065643763281674147385170981321726199673388210211317164037843401426512188766962108830089922205747841549568520339909574264777467601094908412415338762502469985058815177622142044682615987895437851303962496212303355021605909837469111486488888915004513289511512477253808881300661444602524437287605078217652192118451549667270299093931620054934881037068082253431867355738223245821267104581815575056503928951658528218403523733335321651814426675047184185253275938487183866104390629194607820868840483450739696287768101263342346495606496332058305146635154397537346804357341546514870318125072077706393353865432140274615015871250081829109192986556114423046931379609311102188978836907649425937591651762944696611473327557006260855773460370281261136103748302178389461262148660351059005744561852429726021437965329229102542252628618852820224459461206199818480994451321884748364055800945861205226200671862056308885305221281541150802843639202073316880593874948257575465025888997827646221553416327473047612049464580134147010814119620913320081015567725567027482265240367532932170499628008694040710310693415068117554639394969146412003283586309474626766998759718764397865346886098133514872766128036920180359162833463080878484502309948469391506587784224874218960757820964639044113951929906038798866655622048203998217885366275107842159595572754265046209407040875787304704693432034396283343788668358919481454384689927040530699477395487356190381040949990620945778052085448091101517923300985826785714113030084648473335289117476645822141012126121449008892992029049763274698139341344503057058870985613642475283819268446050199613911253074574409279968167566425118935309445442871665383127482926561746808460335874263391920459770448664739121612195790520354305230979301431411229394265768592920866973373466696475512560893997979311272395615574678598445302133109687110665998559166370203023187480854903801373338888047293150053246589727491872146219195036892658345535366205906446173347991432828049932015928924463205332746603713173532862479865617257642843796482312669820476471868762838457071580101833614311707135124577219292639951591683172096758621892063417509588710065392567825429088159772288593735789100456232052133703529240275830646064923075485862761968971633526817059135832809986668290462024750813834637890575525078652537803599294033025299954076743895505632294226460074912891092117908423650229712285059177910217170471294169192389323182256531175518291254606016733652616991311087231755012272294733900240966534027624546193069512507549471007261536838861364972853333859670224139775628510262121489788625788565299344633255206480972987353691673997088728186783728074363566845857403700544844380609201614969426428650010496994562173590657266664919669733471683046636031215075110355740966694649878188660724787700222294724537319596691278915925207441423232412168014709743970159607372815066650757337304152186595736732249135168279716888240531350951505765550124397751066455479743101000296281873074796222086652003231605441449855141348112097126275415548626802462022556469859009768748106746972843908654617667948637707256118844501410119692889723400259576959300431992935764615496897451735104503210703924407147623179500846971035674724205863946002245509760142118924610581277533674850237019499347559322238171780643117486481437286853481607126261556968622957597570863670091149021308977574039414989565152516722233603228313930128420440003756101294582758855099083840683003166998088149030802547627167567540319288927891402184852270784052155289169614275000328927340905391303464271384014903466841973280281689654901812916646058475904536182247597296626626923332451730664401472755828058268699077820153117770610053476304707284180177138949515606942660726770506744959427444797729559634425147348309029328618172544239783516711607333932409001876654547167036374995077782453811512327402311133516758342349180489454018773068624817980603004835248619871506577808035742956419692360266533710470395402332792812158219636411326127289416122675924777826736920111051056353433517175544235311735767877395710945659506269788394093052742308902348747556685739739247741502093197318816830757423266174402381542845880203097824335395346540033692840355953044326656642754209645815926835189497003930154459543842197927453387871332275768540827061478240444937928310343079371668407422676323683565960605320782328380803362420565651213315766404510717307508364311352085963105987076490179946583171016773163144522901558528108929000609027603420184533819405431016180017546796952598307545198935080920526329610294573663712132352459915732919592093268247600591825475065389163005206525453124303339013939169400533875498853885212363445781031534525749493920723161849729232742119317328484123604916460111678683773013202475697076499172747298889181030982382884311322148288738000793265621624482914381025443092527218879672506290379858817540548888115553291477472324731035514792468620312830906191710953368906365343491628122419290313808389731840539157496168558334251020914985855450304542401073404941813329848707304183166053235935516759169171670519791792742653421035613391950729887143390736667002555849323732240453531897501238008581950733408666226326327263958419691344183299639905391959530928863553577562105978911683594041776805693867772914124027666899654753334185354346819657577426717021977845187705754007535042552861087691611144621895438576102157974482049041407492881030451481487477954306861006793775272795302779389743063702254383216361126896106882671072052235696095883019069602671806974592176710127832138775432231897203933973976428694236959432611966828826662700373544648646271745577269538147796186808187914619783774972936318116630713593480435089673999004026360641317586533733937800701272818706930839603851455390605105182166786376890767727583387585708408062507876580477341835312797381910580136587157235129960752699782710173579047697476926206774642558843063944598893380942520659168245819480564569845036169935447765976394978800792493755749448341214395622755960262344264884371976278784389334837079853848935761645490080817782490229151858082223090757138641475182044564326019684175379206723581460944190794783727428598135701314409267815868062112566750192372107066236120548926905956997264298715880899173892903088780868431235482946445305745162751409198123137569780754399729279440314559234758000015139017003658470162153748581527484755056975121192339324430753462869769958387695207684851122020316118186919494832446318582186316870136250490128219370785237844248743413707139068513611838732883614573372578134212938090678965239826902829594458104295908461025078082492636819374360462412653053174667112032427515564369584990025058735766640249206271318336005481305268667709913091342114458792215351721440770218628502945496126708411450187585328476793607416888302796613395801281286421649538319621118821866629742484387279285602879595845678152655370776643766338057576920797755907628089167716860952928845675244561950454335550308612859347417424669426310025840610498731756956643684911687752645923201895092352009911301179435095101917955191481616826007995200095257167173797818740542423623232809800819531161799146539788433593726415279560630614438138880990892708247198454772017860342962341177835197959202824125860067465918389223141006479727089887305894265445703750102602216598154325641171616583012553279278248118222496005676967477023303937933749964589281924986614644188511658589017149952171908104902237078772040255033704949726231707303694983604151429881037048153849922730822120736549063840714969026765972250719547744265114982225280470566439333278269399759716695261530179934892944492551200625698015459020556525150379556408527187447881072026679982320339241729113349144952283182495297693371221237387887102944689031951848767353079399974920239168307621171810367626273713561555523810923434453947799154163057728521863159175041796017217327878082091825345292250554001005302135463473440132262919491481241563300368208435478048045832670201163201488610783560408470025429580027620206650048319776334856127324809160583376222457729264174691485515296397084435391571688666136870842113503731819660527045716021079201715012681011673869363823667808450929555766767969817600639931215641062092850538195048475211017652168604668112231893567702627783716570068061602874587488263940373057343330536295456534660953768667439975812992284293270906826597727408205127869983380022602949144826351820606869774167406159704693828354267100304140690676416185179188299208934005349432872547803008176253965490828696253156832475899579902611955929690533386178600565615642833866694293908204059419335043105412315615659564240811513419321930184050880050530928088056541801149004161126688934215023961860512156345897290906104062989977832686670279917181316952805916897721944909461888416004304027983047353849101569876027808881368792171482662747194712634274176253032515061695428538457284097009027349827509161201702256545454395603846839209912226537995155578985874980247811786600223171686813163776975043029407834937158155317269424897529196534461161302413387691062905917328584178835218032028935635946044100358053727120734900472452811436785125156405311696792595965493422693978436417795125184779268332590368296666345573914293710435249140009066020783541167126760316467801119437107978399111457031372085981791201017152767632250013812967085941983253032820227840913149248017741331409125618563072302791454207513380693027961231302400570862988126682743374399234281786798488148145385502721270353313884081190417067958383626803503600330309728161328041943397830599913183382466914098967902998856808892013726812699807762522781686055769581600730107777885740710896155133144603300015104583331190983818157187233003119281108799323630309573031961563307750638819952613335404588866946196411729211664358037319941587647681920391157108195767579918315331828629096041657760791135473321768670374117719834962698582866646238227689246080955757232751964423963529537883959406774668785001648406150338685776118267083598742558148103965143182196610938863651211069404375840416793330362181870339773742045984958009278367769449180256327776245431605350556635137249147870730829540187351059678020488254855646563145524645865061065126091478890447227168414773308198388830323582386150046094601180935051946138915528939517255150048724695647195740706775625530619064381560081052772040986338722281734781886686678166936396347211194679932957868822404477165662079347036575903487084903188787792925810446317193293788794676506239052626046437771307489524492822385292851259882515628886356232718694597129607687956306519284364536695382394882303892033739145604454001808625239591757434888074137159473344124483193729108160466424909932490115259467913758996582235886420368980841863261857546274915265738319642468531960260158028380457342486726266005111397128814187127588426624418352779567819601896707998068024216132526876695512277406279165167854935122403891819242251901161727979731605129260270936161212258098897328202870043689327226106847213674929299024051677796330448256981435239450883726349449511677182886602120558763103414613692069733645344572933110563814334217692800021148640910636035198012066194839073970320209225264178547719041733386053881283544577050904456102236037386681282115901387237687260402720107115240664248580339748362703494826629662048748307651513614626645539513765327620831888528946214267970334465809194285175445381657133623709698749625582794191999942274591032313942398191613116949131348144008878533992799742638755903858231715414544940093277374035805144064939282783832914031801325072120937696995162133097942869889568576654342454309484256971905838928248286043217246219114865460373841837149372064611395149740293676157177461541851814744546707736423354150015770122197933228709829067889516318443752692739627053714232108031162480913835200355814133654653206213503207604039314009907979165466835855851977278837630159082936387591839062583812242188989526709758510339967218125658472105956016327682440280544712203211975008613432863480531974737558848074418055460469210624405660593589591513472305432654053082041392609481048175347550403723055612937929497541746125122187796701386551605079697180753187107883250136762949632476993606481765257113585858996936648383631731335307110441170011578938753835797805905312745355723692629562593063214481019474433746975715848931459549104849515563492190231228985874237167786280846849675766647887199892063407310540438830929869402153062613648562057798265188570931121644977213587764526494872209393350575397285220068490327929939133244005397314590781973871831108490221711796675071543957111073510076809232025788905828342897887970663895074018218435489478151213152203181511270473467229299771616142277132185896844509553145458339424283740424454426868467666253254099618451539316278558034367915186320992075410726056399911189066017791358936071778815229166030909826867796835333115146013243881856127878381332016961218855936187074062246244094320886833968054683058546068453437370859673163450193406467476822295405164454852492013617750668536829689404849013296591272349047166998327584592468011372949418229014411839678936853833163218651175610999356338452260009871724818928701856021571868595625321094142738310441016257650162429443708777028243043909941170586419876606288149132308929382062822196373583484446679682854721247891012569921921861153851904112703259834983355636359090587216179335216505212841197464638677690964868487750540189839449661721064952903500157635063834120689285975789366260401511237722548849024337148309297478753885338709724296597177056393499344493263777656558974349110917987431997075153374457770846007724026129627262025629529646640594343052038086789471717144219061425379062828688332317466060750268119957292720593078677806662140996485774651178322041854863532802826409084762006465122731701962276624195557932058781130961581556927409450491900297555772062231205765272296907545445910941811625144782879973885078293559895479318533691135740483028965233168191864260384546669219359062590633816060646952834468969945536830950917360698663012896047210733411153793465781483959140814583105599695327381756423237392958547258066301547039221256138647074346552322586697165172910766398882428758051963720817668361374042986128564534916039533754703893521989325854518591811895459552989924740091633902996683239428490741004805851636266690626127994848141352737513534874624529242613217315010999161655587738265749401026493556162553025529851793303074496586384983891961679893083831926209008758758953596817481234956738442317467433844021540704732656266006806434356491921617640188626432488034707904719225849200378073594564818743783557381907518325224279339308946029729473453112184694251977098820271059934611875134091635975103288816628294216365416920652548669744244023994992768611624936896766463480485549605362827377982795625653521876544325426812654926123592731748883737758377190021146425472904805705840691685725110162957216189920034517224306785525120218603707685614686469241334401171825223008498826042429631407475874446482161075779368475399049849452317724988531407359851848984651695839794543955761440834782839153278903062395188482534949834439195019093567950217018322672377679754125725895378850971077456406387987053176660839569131319212853921259600057151872119805920655612297340324373031137599577034201925378671448531216529524215343356054165079703570851166501801352025117485722450759984114761551363373854733881639168375196746144618561583893122476044455273017095445139093288238718094923985225364487530329415288123760274307902047505888892694508926577631999442052222826144352504384220826455261419131919538739056612194765458779188465202086636343781140517024546733833540928185150833582504941892396860512348868106146657132478096508954008408364865580919788008228715243242159712847155794149788033017222052883959241775658904207216905733461729760447223976932359347661820577973820852488395028999824122860609582432907791698145120833664708159654330870533364698551055045532605389787805320642860554518459541982259944382086094561337748214410219770609678911562720329770461029235713213102647889129284272839117564457678335532993368469061802241605157534473542636872876340079826750194574500310142662034156498936786210481030082627098075638087724897606709511955104479528827962342134156084751702998835196507475347389979388955146618394882988544384037695258484273530357221319174366307249145580648401176331847231302854815478964943751617863214648713040470339704695398663497646819737930946329955968509301529919497770293213526646691665450908927830352789744766975814375322895470854835153067077533036577697811663511905308939744502457539768869654943584994098854755018024520518477276692903563708794955081297494317361306904494720507857959188913742678104052805833104418203868763242202555501295332060341383287555418921346844249340612315588228413725209415682422344745032256409664983648742203091642018188113780227659233380287958751798656149073765592615675156469435178787847838414745436767714699309074979247590357280053072227349567696906398743510960790222979655703957738160648028358616205319630478695890933303426634647504414967362740499107666341735835629927831971737122520841566646210583227196233918746317441607250118927117078011017531441661839038232876406783232783659618620252221615294033976380963840808008375541357932561830848018415290938965140379134182330774218675207042677668235706562364452528577577995381258090818546541223909024152704694580992019818247976226830350237211713984646246978312269475021056812991602548728867077339889584454416337176450638368376456239256563977663879191468443951303285079331448129611322661090553272059575103809661323725150053880460016649084013059954716520513537035911650908172834681735085699772883351206688198386219246012830907623459029998534997717409880362980988296983206151626597625012201631492952308429053582542541701315681533933370250841607456709388740895153651767298825837828487891589397640841720387110751781900499971712154779588831656510124422788568921935122307576192106947195366202908774865045354711979530771081039251766932895365733405495221505990897602690831658280545385813488971031714822016535131046760312458089013380800858432291916183444101779547464923555482296243702371672397454998853830296082988449727344353661531756472249348043984565287817381517220586830851952214915864835445629942779673750453230793619055294319043241120428691276658851381665336290391526200087595792284417618515512043641881818062892232251260627944835764469138568085466268793408481774040923573299857854092393114286822846924666819282892434709071772590438333507057917269858377429749460787603503783685584222894230692323056635762387508500123890064055675545245298642189144568093317967570261928954291847602642451914855893094265521235513050170985577263159034541354191352848834002516584371526195257323399233671451871875628289273504047093535168671942480813066254613912083181682088866966406158472802994154673398167357392938895537330266244078554267231591971988915495734251057051826483920608166480996324344012502095289979279665821851593853269683855325524193989840433608593392842769652410301637224464286987253104246076893654647889289131069611580866519673399755827129113276331534590962430393890173586024913208319442244617891544585445936858778586197046912613150806701084447875313026133960217163097287819589802276160583897195286372072191215547104574841673322524401843945602524144534879505000757528738873638219194243859380377568702989092161096209372431815938356404614688855044312882266859699867127758334927569204735707948446958078465551012473412690279550524895352522169523590627467414553575876214717623224747427076350916336646281061996877506390346635450855805089299414760303459679903467010276442168076095383647022318962431560762201632978114029722837648544337827149115615794589870697680429596053097837412849725927157694823338815136013326194643196657788608714368474079812594647774303815296569231023038608209910439435777336495489564292643178702108007983800679716467731700241516766839688992573623575222850840347176738777927572950334762352373677341220229064767357138535152470375494824301225225076585889157181901878527618216450711369709003092507757845010612383059897988239641921717227985543716525865613732055580324144782408232845952482043396160948554686766073555659599960656117387660358176032031817689412433992828819969608199750359243206707074079455728231973645546339170498656729735897596187615197390720348623484447047564136240368487205204188768403991412778898693775847055835086570723389777461809187435932456326566135152821548076395009540315995126421479413401867892906249040941187300459099312436235865995668086439663501655075887419413274804866466597613719001116972230395753775096741125517421817950422398003843980491835121032396612962502663204616963542822352683514287392816189131210095831891714544655748988974037430969933645820826095555624665544120278639333486194036633046985594954590786623427684555597034153104720848596712288098617702631989743525465947673309030575285342021413031849533858101074076716232600552311072484303005638684240907618350470725897967428879125611404751163696983318889372533556367654873553187229244072930553827545533774673581582812761368786746940268562841461811457298937332510374991028828347906059732775138048132309714506858100469339659780088675617051786224917880824087545762904294498244489249137274158831188080780408819084753662252305527453931269284015761936636640067615960363305548677834073117229873665264055733004640822590135423176487224535276358560255233987914300704863449884060473947129737081129873258228933716655137828242636150742763221409857468927000304994050008203412285735613257180161764619415119961694507947380072736783718392704875533795552925406378304072067333121229221077360007464089008442866078640783465354176092900047995721804008382887583111925585900836448471025893788632440110023588809426825815734640436539529434546393121127004309865970627587747297810372986444891998307975722831480398042653263486448251328430646323198794375497225541767184659246234214244368460396590338777918314326661841398711982725671614361066464774259780588513654270627868141088155207082820395159477578212195266124349246750441271467737139154625904339468063263264760815687543199478578773600825464267941728130808470213771714333011301054713181981109229820261268046988950008320505171282040984092711856938169246737173246620653065103165360962946129153429325755695752334105591681291693933298390531525833725961762578385929356331150432980261146377439266465905294969529406746286540460262158415281609226651907839602461644924009005069580873577631870687058589841736331090129589765733863600207276644987855734807652999432437033719374405184896929051923097724565401925407453674350734052769391383532199377363426785559844707393514723961414556198161518431848292902092871300066074618735595361161943985580423687294013747231641470845404957217617985036596456262495529180997367368789578029044920318395253102406377702354672701715161047046888736866668972313707413635171876316909143912410473375182582389129301737898239650269873590232198775445668583141518152095761634315044602683320272953968164786461146538479482130437886883917635884817241763493493642006985329514085356693307126029518760925670131948309050411214668156252041268772773344229355766437382632647211078559358557050022266316307019412917936525084156621616927068421436178506200035696090386118044342406009606062990613942560243774120913545070595058167164759210418528987955796786556640680193390074353435678913801562748710568942542862332839571197898425769778901534221842420772826181290496163063495224504931765239581881033536941961741934631253120935269370054122064728731188746568623355663529527681463455173379246222427500896466482205785880188763086418703764636084645397622892650890799593320614418380910569850617031125944670762305384059289965733149060380936562110718998132857856673695106593319662334802004091717091071073465112555560250067452732901448159148868403387874728744168106663943133305764266391522941315589161369728069738245832960490885931806452527399122030034246119907711633365124556603207523408379884544236778104808733969887364912366622178805554797274415725986849357783411085153385357583319974341103384220638864990491297191770376932292323641780983890404087079965712960641402807150141399219395792629122331867995087255521823606651134495785485140748048900032441525887192643815273037015398045572464380975179882272817066770539351536849907879068948919175242741774511770401668720974370883699806752528145161214121253839059346061535074361210641849712779907287283117908059245142657167472879884637332896674113246016649563894367926553222143784761081115617959899072209885394285723399350463334994729546598285716834477970545248530315758411968573806303451444040201603302431061803700616370752442864566742114352607669279595922597784370487288878907230653924560018834370695251844991399806623121810351002503286064137234238891843163690714382143652078549226498184974287456004515930106380816770884648570715645515671810867174436829347247446805147500160588700265740151230515566882641428860083622341544030755795040946493209479985832967329527514292467629801091692685219935171362669814431442465643708732805032426725679640336254720344045410655071242569898146836965367496072593358983435580424707825868437575194059244250983689627985895354261316815734475425691486463275375996100498093701243903934618936517985646610225108583969536731791280743778590508197276524332517476593781134727405216556205283954730963689095772821685584728646759186698115354049600844062904500989726597269913996527849138332408256556178558804613385300402025834505584626862653389985582137123365622554074563017252829360060936521387772244045682254223054514051127012301221206796189356996870185544438683069199448823922579961786364662315578187226572191681431037005160110157987688960618327786158634047861548729511486148241175112612403612923003256448222136357907996580047383144424706199562513385325939537704869099060819273875640318896550209191055367449125171191706320092138470912248635374145203844111570981136278789762814439726475079622387470588020517415622193449330471446183488952180382073670799107495609951910089245876481502946390026950281583540102301659271043255129133005754087586109424203285708649786069760092321361868512342300566937903688742336680152694475872707228192569790486051378800830377553724788512233324401250577006841988251207934866047801635550191194916777894562897736375417847337266551559183044532495945825276727124987058086654378234070001097645438982118651034711213023958372260961468894510415382922325677291906963329492252205553482836041790596218851201665075628012415102271583229890102804977769351914497382966061357665617334695719671825183008696211860665138314027306779688394694285934328037629629618827902474453758038103657131705668055631245513218590519260221949263882663052724975404498076862460101528690780980742565240574009964228995875251214232271070236690857995309107735486658847064427041192517388306370640244561392795562043950240350447155642781827465014310626799551788089337656483060716024545087195942716376985942783255674004291934960530749504017338487814802515421659936128311946248216754733488664481238348620202681368583534855612235630592282847722858786857878743510217138254593666187735278923680516614651223526399577289413710796287099519235238713397325471766267232086606271579044005724335231414701172495284692721558528384481985712358031455145184538286855286553822174732251246146521789832046787535826508699638567485478931347071140321886544424265841565781913193399285148578253245282204688931921112452387128608862523019292287136700411340039105481040698457496486373914631740552533523760022481294072926946963810242332139017953149876916729647429024008965072892799722049653244574152777591898104899730692178397510532376089808617007244680299877437650123448502275468720296742303943592923151214454023886130243514848757073910741567814153371373896874551925569863518850901020546697831794616417894673700655361117451817130579857345469149345530736715901298220311334534043951528737452883843677305038395311413061330079067377737307250097507341331661656000405030564315109338690411341128311772023672890362377786720083627657904004507029318610581531714593600260701991187743304159481897393565112148206906780074563305648534979525074718235657676386904304223751583895046610619439228083179345755517991662850201665118174791816184955315195539838945568130397541559407883390986534176232513775961507086009653691517726437661577484419516683815728248864219433465766594508565042803394632295339432421675440724810822551466357380997695699409014172803579124999039386160539896386460136205393974028257360824354227575731709579721754363168418470990102825923729368230693440072068325319316746685178361246212859464153636354410112274307707152310451188924848370100746086558469721971582360008226758718277828357942093593942416696811029510432125541104396230101140693293972999059938746141972284589267465958762967941608823585081600331931414479585122504475167806034435148181220513897996464726665798382326408096307768461090309127734339572483954444148800110241243156587371424323741958500835899658746658334266626699074407309504757467840999898563376208732905402637295694803525799993334941797795260493024777592510360865688721158228751342255718560939651189579633242590611368230824731225440063703309144833228988675541873228515052291579800520575627004184410565293034325784821639213210570617161237439041425513402772342825254602080523343490434856210997829034780301104444227650672940647585900228180604102687117887250995696391743044432898913269194243505024342256639245239774847055673070126885338286371101562330022566157213768485796949065561180679369183705032742285303875171762162753219741174004103376112903777477828214509734439103277118045190931271378902367164612510616929103335360409488919650155319032448754270182087822312963957021797207623592121962640427508405045966260787695765085102999483614002490052851600596331017322999037566691231427971132591605939302062754776406488184768626565926327649341387114577818330857799384967468360548537100764780484626821424504480703255915239728561154737624938384718266002847871030883351234913432583979288312855355086621891308264556580588062160134482756503582993511331069738802311091021558598592389023141549854634019029152546646268828794789601547455184953834397878279134828178436389168165651801542528243329742718314975130099990316027727107397771759765715535771667789609060241211811742765121744812016628092215410354326608274563920285156714619583111357707296319395687042435518671673364181480025134857860238290290392117018877864384045961475527874497340449373210393746959026092112836385728707415708108482952426545693166030472718450890491476196009555731445054444994342598954491941856014456835097360108100984127280853515780369891165808789497090229051664348843018856166225210114133800215093974201989237622696978108198839917058425413721153210695374935881084407173269405692168752045966719255807433758569464867925261718645331371951033810959080634772755933787118888290390221897580134566955736447255292865677236477025667408329667941554128951544034019935193831476801786460466185347806054998725708674484642284551058912799166501415754911663153301123650697565689244597052828065530625789372597418757752065833832220670966799079134504533313779162288438974052481482254710671237147716019711508055532120492215781951319523601894241432502683563919018495523575827572597173713987121920185584744597054151827531743101674509760169673834201936966578781928061850402452857164195283956609151852215242017282992161808188826096059227213559326125997628827769168376290365139032429191484565699291551770286113450023270596729655143298359093089867298746283458786985952650994284971528934506117370172294159747537776443201025324064498701933878439060425791894476172146921945078361072780899586456008495024546348734549103562629793108126333383160833663342532317763747275616011452414244575891918635038839598130026745740468477947395537279771051627050993627084345766024898598908817959131736392614739455709390043172609218435334988058382479492538674221296969603964657632669447948641385629813101613656732286996792108904711281420386828509847699112650099248742238419552350886389214724672000000734734944776648986548211421334461837545409379602645806472835355527667291613249628758851407160272307383536571819133338964800447112723695240182666966086777971364748121464865622733495038944312862239132840885869156221419865830097429236091423352740785914706985822625931431139378757581164580131225816285290146426690375710224788799691342872132062199012981885820815934632440471659915172395872556942690219382479898875689252568010506217115680199709384711362598588486217105091381551814637162524382291922369319904049094590384628526869784826918947115821279065781623384543804633299021310216950753600312857612055145660106679283774911997199435077973215437359929770982076500008862909126099125039044751044582678272035778085733947043341077011672905014239589926133709701498251380822158694693431400936530404917482172550436763723987357690746708010589100336907763711503798240105011878600082985327409077007749373023318184236091298736458444264092597212957692594403656928563589470124547819402800197431884787513765280330126646282409728488920091679592068497383847935478167466604785927615036402530592507474730563427920303428829368646437885755710411099907420173158455646379174040143060202828477992101014738858309476857535225777243302907227169291232066601546146673081226231541663938286171570661425870805030545575049574140340334783654946991264736630618057732886880337269708462653316015879438217044574471776528322614896426211811145495658081792948713549817713431726472382006446906032568469575094756348014698859079175252537997187578227507318121996662003881114125233114081688861414506447831467068479184887830654603512588661151865020559931041976910066812688232609793979123159257087209369519071943519737379575127055986720431128813159694252394694606791104608892174869282573146714902108553713856004955447845035021819038039537585331025229959546152410829213904857933091512341593544862405068796144083529594509447903591823076065990587208110791462330867164617522377254911174621772717667481912577442192174429490705205299822396087201035949644578416575714755782082529317292662867270624140327875072827926476849555240942606141284006996562621408610858915158106327707635728692630579416180831280553272282143342994169374652177488034981989659119080247814525908687610707521032344995512562099730737269074586129063977193732992846934400010376681768892074843493829839867785945969813815711737917386199043319273719016485383023052131957162987138411626977769105698884291677183196105646134102720621837723493030277027135462382298091449132927360866475535973003090043801637244566373418134338714630922130116671426032510928022676709168780400543699909031785974768277818610370233773665193748586099671691752610662518920007767130184772720186581095461356113434946854016331813754313466330093796870609423590579934429233565767506224525240116345693303480333085386072483591194251706054732592649977430994620546709317524130062193278265637441921316301403831065204062627233685205076906353448329401846698733694936124812835945802699884931413082631287459393320547560925261543457255656699247620702692759604107531215724542002335122742739402194401532664952299849045071186272091307311879492156678503579857490195957912022396884617465367420347672506662656170231475973172169528832248649360725658515806627766711043310061191697197314599681199607617654314368883420256528747128372691416033921054942568726410623128659720373855336431930608065601182787190007486542887313688207165995005330581238622341340247062262642954281857907615769844145630546351579417047235419019297166427302642426728767443843259231466483032829061606560108728114106042735411530712733126518113675488173350232230105584687648909368827744598667863276123527252957644229893383981931868561137836878444030437870076217930729391765895087517545488545393780651096852053674778758558130113322434915427874939963392317350331566135801535050915978984760855106874999972209124801069126001992665524065156119216331758080970531048829402635206121076933222887139737328064152182378128821963075108620171898545949501786682822447961448805251355886694296688014227535338555220730980337626613450892134459301199822000759556130203826655735386504202393550942234087062119293801013350909677432994797493679464057955971385879665982747583666896183677009465944739713556691462657600681986250324447772239917393299927795897352331271984801778080914837755457046726367427557092720591307244656934209783515425552186170671412758245621524784755040746755969260307954130773884009491540621925721015197256239580165271197696698727166857778654621317722059305900232330448638384899386193209305372617600027423400526355157952472762088366644022103549094281276217183290100141250151416271288327529278147313276787837217411963543726018799612028944774278319306617923248466457407880470685829747882467202510642945941848856798060112148165738814936932105445444721191400735970108944969703636598167525789641346656283878990226559941695186711937460110090072661082352128268977170077263082961338467195939552932113217969449847417820929174084488827655689939763801865055926952873934714603137222800944076440055482147597930259864186875530708239946891884417804689801536707778709319186803694390107606539843849373901233101080079687405321032706575051405201345589566526124192717952619686969106437042225724158525366130761235599598478300080796098605213350735353956202646694576926553918229882841017451876208112578489553555813668390836321248975615180697367103812335088891739948832318978388443850635876685077219145757020301442820703686685449876090117119650950793915677657618623411849624746843845733971004238725514595795009428437668513345958184475426049850081020868160510401524037719976710928900357735921933756195252617554653140422281677788989171125727331727056310951796514778757322286987642958376370830126349690098499621639255260918666542137549163843816440591820563731307347791640804821223721817945500768867684013608805738424562878464700735202907846491553978108822766456276680210302801177081792890598601177082457786977437389480923655634219990800609070044307555942101550193500940420743039581795219328495036153157954878438374856838027873043027294631036402196970440273148230146031923167170181424881187042389943810772451070565793019609122527504730777507659189735984767326074114445768065715534718698832274613132736729428090236067865808337526255187459607092501951635541620638676628934299499049506578171328847296390078926176128871776016289968884714710287694847144159175161073460693097423402393177150603186665445116262400485942243005156276322935572831047728733878438214113447393835367052904040490362690312494044807437770279613313764115388857928477449657944744242333184988926798472181206352045419993104973367052024095500843679661418599152454997021120588627097992379502407437074493713450376889425622694187088203037397309199881054503636724013800502129154603431737735142896532455829248359102456284074088143792579937317962609366390589301633187455284296847754976549272841638853430698945044074664438299138273185357310586673128103845717398122320223184517328710590862776528099249854555900146915941202140119476925234983383459282242405533015217143695028942894217643437939357938413571353522919369015338073104029872977066653644553534076118731101302025521779970717849745547291102634741512013206281365219959255158802925868949357080204976553876790335023585252847116593779605422170264105172185215315198296010437066714098481824859542684056285930716011066512836786190520687999315910286330745358175736734248545288738594951031383618534762925922891930394156358404714750588958448499524347563308467164299502308641286877220227589257267897830818395578351916380627484223950911128379956460294814690272511414438435002914958886596234480597315793106323961358774488372157997210197164779106077976397964372275974544289173700175454089693046561070601739969410133827874487231471676974977291659976055104744037363784452633120162021202610395853744099133634322563524362099568688671882099332223179911488897806139065387047217874482184718361759225191565886390701218231005045903849400240950865275024578119289825410571033416746515701607443245418588411819940746271119571280474906057094401881511598175238058581769347447640649886253081281863354953416147920538662736635042915946739651787816443543740224192501236189400463806372894425430898924500597261961251335716007588532772433070036104880498849928116997364530881390803561582590231343551970796028088300731684741219501241842738948878705465947092803543389507875538199426289152878221456779713090693669862774987677106829478290089658209267246890860052561902284640658787139480975354329412861356885544087141336406993815528540783261138174039441930698930836844109979884977323987535358275174786561741527014527067224914752643576406807993842638881003736075741422794765223317019175079006999501647503611182543439043925688558961394916704831248277290841173761812349878196455135425990459888509412367377304683351812113689974407095923593541991808190000856184907723765485004958169154582558870561866976364100270482398302962521233695787925159070083131301510349219988309692981020663914622009861838700544046194599877705936937645936432391795378677703271458032353652952212055601191481448708466398576364878003472047425895509194417199749907117194608194914005618424455395788933472236322573936194741011245695742391446518542644536197682536359403513148233530555388079990418822852345363069033679569416085796067118523614024330863076794379572010464775335994286305319725470396839536075502826860051949879948739465245167464842954285957515828597096138982831424021130267846130367642286533015086409206128987857297989405928993157040512050955939098187107399386491078029151278702759793456779882903231958159119478024855439768228418765424811354606630050231627006948976828324128424066687057752513732402770573718990785013171916915417231104622173427960181042012613663676954537762668350196931134687113482500686882748032675792533395920115203431088618795183199834927022325301237046044820275357571539532710569531974767793363599440558153600529410828923824073712274211267025066521255738532792402738816859128562728963447119012863415515138469800316201765218403602313259124738598210926980583270660550325518925126950862669828751551855932003764816364181555899325071599222594361872312940180923787770179457641906684418813194151067652768056462889058859137654208328733835980068230194906699420178980514533550897942761779798398052561736671864754091324669043894556430315736461805463868730343930311873524188391949753586898602022377781096122064052811643145201711685557504430574619254588335922547410370147039468742742575148038167806628533922875221069529530135750984729481274881282025693694382787904900658165808248490739559390872150851317859733340906033018147216257959095588892434124768574403678648144421336251412134536630076686912470654098367545682445020286196483742850098289580652258511863727983955455419875713766707897186504858547620575689310931445709885444733144978842351467952197137570430215714527367351328308741007607901905999125674791305442476928978123071819314538765556800107683251337867340744629980413422161317888915500103952312925791063292498384962364244121716645562644937970312878900761764899953698438961789860070711651124841993334224552094960579535894175036173706241633110026081016329726808364396943631683122024501657388959550362745747091855108240244716904688296704855518295484806580283980446394469110533486162306915430968628852225909757354808925485747025999956157824270763662082020740556477640896030066605613061008298963394347250883062268648111570307428691396974820428043577335693788732939672529632177381339733027025213429450455424017926146950221673891437605125705416737962363004715107231469588947156085056377654852176060003999705858120782032122860523155401152091155006475117215907558861994592251947879260552950681547770909509181174576919830387443505914332908351642516649011814335568184744365718835144872472358345394350399853132122091123920353049981391016757401617282199336022384803092467810785397657904038033379811678485725598709239455735431666695062148133048670636261401547384791066479028644605051240138084768022263673426615328510509164040033088782032609333248174868515936544219659049534613159603417183612912365757314461291702049481143079754097165114579057555286609415651713889292363082879291883730785008264791919322044642609310990883534511668419635448305610079968572789268084212517460305731176897690102864839875084671724058902566005260716026413162502042829402169454391660816441420165643310846977206778648730116065868979885281473249725942646734869103498380310320923563516592395044729066933592176078634443375798428826698233809134033491607734036798938733464395933391827194886702372446486765519667823917978344080588181446401145532027453054126226728207398284910373070966253951943861479100772367023023703679814865817583558798755626025219651528118101878070484185265077551405022370364004763538594081140853871006260547514572931718296744218551738754889609628908482402917504059522443518851478965587242556668136314335416795493461015175812773748427299035533763948515012932196150959812819150810036584699664727447261022761092589586161849816454251074368515854058197398556804834893689403239467216885953153577116258066818772379300332838513185877733824020683832733943602240842927954961197485347185286535186241067471884229237729665608871711526988814564350222313927625749751177443361746088389211629731662799324433220951346744078959739466940412621572751437046708560081671168802448775843261213249434353624377651045217566706938602381883212399117086499783185332032427997738341511489582425817501465645984343452509363011352814313746272039644778868816751053152034985258448753552776205297580806458403075055993290046714885857826508204043104544361622125617386456408531036141206541419461386427038637883880105299954367026709125133524658931240823876051708881538692502546976604666746766598709553655250936237442096519682589828473742779171093396484815368974287444888125815693915199261270936898843696304060920099804440762268066952002584335553083772049754273530634860256333158446335887768836412013697999455753852062056710165463533786058196854853538394287445773748866254155869755428727615077490669115496787645724595307468705354134763723182246668904684263757660794017207231960060157721779889469544725751732277212843267281665293827741911747921709525079140025544875162154507662045363987491207325941937269427601309171592927485898590152304021319418557897164293757066925615894624280300336974276106834219188924953932798401473197022004732199292000078629339885347262221837883591868881413215673506712017530104280611286449116174372224099212816078593512907463609822785497960764936592458422617555753159509308913837634311890583342800089606049411130300060359736737601366931569627161024314922593663367869235687920584552133991670847936697540193562073875901243093175079114026241579118400655130493014038968639494840910418362451852698098923008513557436332748142399096582191635238851582047600807695025457388027163630475908920018486012661219552541001597345455589874785564103149178625235548790693017870078501063906626429406213988898228146080879535637474459705655905568464393073878341848264980580484178561609888274811957783893139710643201067565079258750391969066993911103650409242415303215682842257473078740136847658775333473374563976980136937065463970175365631343539862669521232935198920736751988454749673479146798548773190650318730179341874188547353538415191820121317391329881889595515969628561341937987364531477811942222284690527753965197373192410387563824279896805074506114203731600760685089557755932452785747103150967060766238898813991406086630836700284387230582595926169010373759186709511645908788024970730729542305599329447051691534904751637098555572340899228874974338958439025741671480911309439331930574888456784857055609759242680447315433213825060290540717492867445185776848325254046904221322191214737031844656930967154151124052443665772551854251571615963911648959514068043577580354300448652549131813640602778322336821194811408816205377761990886168360015642364969048595559258232214040234139220003473817743624882810665093785172223070094700041024449803497452197037413343049662869952552765874798967668681121055325047287533026692175454184417440985830205472541220456682512420122487402556264051418362496703900382800549169273327517934461781845832493839766596999406306435784622804880224760475042497941717166085090752360585346210912318163208150312892408056668586423511834539513486982343148968207127027782729801932269896038667544521717990231770369072568842338144986054800464431349684436070195813451197674461044257071074409608378409689919799241758635771389520385045600958689699627909149849919544028333418833267892129108514463798464938736759457536865771410944819364354443632859846024858200569121670388605673891744689184675087507802800510414482528925859942895617769162663582931712913945558638638896039139830001791558755233186003119096084693551262440919896686974214011276689067553714800578654287459149357827858490739633392186700468245726273443433673917470151242902224223758504631735083174816696673322853623127683081672092169744266805236469817348134997047473619276150284872608647216094264473397170056671630153186307292040571824385427598212743317415492007966719592823424404479455315748553094612831597035149296111679085732740218741450658651772617948339096062793319155343434238549412946439083315496214832924634323830996336971174475340474723831055491292680803882922328884475110580123398645939948654111448233479931180111034850446794482295988886227425348549853069553918107612164792216423998199173128393875527769644795089321197938261150857723607645698545149892934308858081023907390733443779116978851512133785348621045073379182837396696153138809102489804283722443000534360173535279423447620230949854074638461788567269804848096218145069389425070427909152825568258153909877293841752535766153199731355207966350805292239025456358532032971418317786656404951532455786056299456448934285529760141572923644060965825721624132540129779735389002696318659575108208829792900625252704415210354456508580647110184743991365158392878348683820788798698269591605560209419356545075600481003976940005691482175724968973007310142585388967781907215624582970505118252223504826150055004714793781138963348771211363660812213245021190127677770032430335512674709712763790213653515318294827538104328497451153411862680654999372057689660987454272593252436413700435146259955156471866385744998938817774139987291258725552044989681715832309321594686817171655338881927787230903419874927558440159020725831386061772302176577593107019155521255236674393737991068790116606628598697944079261277331083605559871502963819070190136435909683265419406726694330583691750928870772502563883452796028033401796826551424721336796162792835873155313429456964608443911555109035622075509995504216144069664613623545231000877672973589626358286249422107958289086062167168634753330980867196129192886933920585155628661943625214030141333407081536518236270852095616134939007290522696067317490889820305088756082049893093820210022801194543622499441397745263195685882834336558514307047440652559268186716901636605083554353656946750645234320592721611334302794817694626310930387081363291028179838798010861505105310475811155732893408724690953521158813572521482406268427510983937305766769897898387632717000793290504645036362709353961445740308684044406761437466256135497844357328204806360059132392115484708563949246125605847834381095921932909224825589343657701918393096124685367109954129311575755088376595904463596916005946952203473954368466007369565644834494990649272117493760633811786170964414677447861629551277163014861493142794193148742628670168706926962569198656415022665690759637471400769225425586394319235752113483265839120705822642041243348169396488048994197119453680907418747282546611217948524402798415348857414878698033023161745267343949488477350657425488947489121745388012379679217509462310815878825795513921813966555420523599677920279114622270623352372086309611770154014954102859558471703671429350145029444039467837809808829090460883670697954767649003724787371560727771276416273676302722272356380375208564028411125574454765011813591703748763259347612333919199327180030953903329180267475058960527689943485433111648971663088490671477671990918112527083553939960467179301350814752673805943723770136938289370209441488654657840582585450647710023797737099207590748343088947117035885889007750699035459474011786346050656366917715249437050932554493579424056264214830886921681324868558729015646747768850266131270078643618317602157251763953918937994430975281287064135927948653271731293058306457163905878564982510294898111231111981747894185517957416217340993633622919625162889172249191174023157839343776480118013097930781409657272840739573703181915722299963578633355913090019118307540373945609260173563737095426839573856879866531447786036494270392031044647412696738401157730050936563173496533607488104234777571115843881895709113999061545067623047459020573317056360417659251184319649292770180444341861835971891877853265866627585880639314838226136899271367557688117506235064926374101141876859142472866073491607183772509502694194062633892321916233574951867805368852043765689329378821420761566082748347048199224936802697592543341771845812369661882343151198658227223088151503088758024870241774062250514058620467544196147984886718986702778822155406975015990979067011107328535308428494640658562504386493039731775592940747735265488370456947856053150741356646379446479175234648846207057525337302535506368573598448519886129102904408877577484396765870350851149486617825198560733613523474724114822644123735458729795966816946871044698884186847945440885026702809212381148104006721435186716094920130221726547420041565497360251548284493278585910613627757707322681609215811885594537229193620725472870917178649215019777966847361396916585574867636197781903772912635116656560509860201367522340969946211691249854353325135536548382169892052143903583384921870738256564472581181503342975284572081074696839181717847633834214130626466384250499988365605777240315418104055534344295478861267383729589928708537983638974224709765364329554608419947070443603424664218558010076976663050084280887711989232177966803027820410924224573839295347948501299327582049457314953759862248713126393269631395594854549557121957727494154755605780793104694622322283407624381079631733834937916141552661522575011915441858698144118858437925738433487680563238343658067473543965629476743085171830651455927891895101267292743267975621364797662837202691753285321146869118253881824745796915154614728878745810284433845850804386849003215047563662804203420300221346951734685884823748725303943454345445397483481787870580217633542313277896707065431943339495142722608592111299486568056185629249272888603848980582007563607893289543455686428026866694321970101641171151920413967237502963980679865748733570954906407501058191770451885439978441380950422245601480233544225876726104480831161446965367944372784060187651828779691986115762118615853579313884304875464356259131726409379475925888369016128244402572254204062986072978495336515867560573666552124033964318638537970111328600499006892831985981476458918963056713689629987899297413323497618320707845793553516793016292844840433314170129562330702532746618938185367796869971882453504420158637707396778500765412948140506216355455866463681185550943922134758092540161686312034788739084061928964905155817941158994697011194060369498791630333785559228152884607859923304136764149349141569704788006567146652741095315764062875526128447921620779547679082381965120282901401180448340103567078227564061652355035948733427779335521255610962738785171961210432997372792270400209372125711849602827296491684837834727365820301161340985774097523709543382040513389309267937277547014613288523113285176902594381772642875635950366510785009707408601624839170615015072101654719042717955479222874671680626095561579458435929034691147236667302221861895707536475486049552274950049897570332983597243718146003165033509319630713707177101254469046800881556887767837882615145798882604084815000754037226247729485040665971635253412873937310139027998969619420909648894278676836221175778782883097399729096766925446874741312315991708996170223517036186315648300588323135959790997696623122302507722148131496962147152394255525892742525215082051302664182690705093122840029405787636337866198258364682038086060563966335994373098920102194256507772615515409892444953701537304135619350078092919732405488111984457865352485983293715404966064948385884775202501023455957163602141128245934898225681088626037966788535535025937386225980851602782004039107215260480786088840391397158580001673879184300551959949854000626320565565012347826398358954743724043020890652911950378498091775583783378644873199724951397533970130560406626480220281134602792831171657725520603674507028607902108316522034065444526267481297881202739933263047097216068278528827221061138109167818376960017885341535515103581403804613720415723246204146335756977828317036877734901753009675564084388173853923017849962230632396525391650346560517312064405586582180215164716580757885729998594285455621348291299649612906284127054956191107817735878397196998708712725537559223885403676487053464500542502316570349455487469833021714151499106342730003176391324050187963284525984500820413197554952528417822158947812590004512542163554261168780259633139360883020511527378842689471447623739389245396299077677279122904050602265896722540669758332724390413663516049546330465719090749663981512321865756024226853398603234546041958879091003978497106550298399187985263616046127546668014672394162975539500414866263406532450473618131275454531154897283154192536796079880656794221756036867543561575448395354976184584583973182042894304692250339797613980957073522339971647497015271638705696590394058431955530028185657441611640010627968690994436039341323820079799276284281384071823679549498165001135557327753854753192749427830781800309085743036114474725800212339903241220120599602311698188724697704784973976742832433141913206083218869794163268241170448929562366666700716840084687971926807139559563544716535642610266279926786174523769662256103186643791240247362042060023356689911631811632569891941769861136873829025326575570835867923410372413685286618312751225333246183151098672557586921922620842350987143832386765711549121967791828142746851215198081867835320768978833229662690570888491369365633111910222288476966997796062648289319049435375188231753123909910178505930420495943649086845252583472117783742862344937939048630936451642989697893526586055862595570248306529123657424009422665959376006384588403648685493473811079370999744813744551467391539288383398902267685378250548115525037349056275879010900391792608020989067193527420385632509684439577837887056654436511533153740316079091868332260076127839090915768548677381755669753607698245820051077488114216854076710684140342787544627910083071438724647770275331833322349793167500615439826893307908577285996472891005751331525491056977127965269686400644096645656527619350242630924791759188011934628846273748780189314282699701975325135822436880583310462749129291446334430045177903316247077632378401576269011724409906342399324595252515717525912489768197800075125585613302080210052001306374881325015427690998592840996504847043394966147958884483318619000739898574229183630735979653939313601797422394367533176844538171815221603350584977564340713195603817160321872591417498095425340938338503970775873011085691791853680953650001456416016352023697895312073274938099729939966320779233039349276559320978302332389257767814653657983644880789187449803806929702944210369571377059380490271583627504201170168631312669248331954184974923501566694498037449870711296369700108927502236617302635281635923828736133215698974301722593247055728785999559596110415916251241626340291156712740464712772852846146141370401431210284036967060967916588588675944801663603086065356060387019619446376935449848140913084751934999631197404864928679547445743349397079879448530855496558196844884253686218438218009382002676438778094006766785199207222939781004795394316707820317537819651272763459811687603564748555464835389031957995182936803423799089119848342624435767969109403067675999212904537765495442994143453234289837683600825401652199908244502328018269376675811502575404699459853170240828640566262871028749479291672234084915070364175334854783073951283940492082557305542757194079613272518823992887961033619795984877406307725981884153027756033351012905141105832703362978251613782068213605553359228928174647443797644697946289682190553172222168441046330903915596832739891007946134590503095590154225014070474651935869932483246406187866386682449206723197674609336408458695304764083913785540773958269841261726646883979653270925661590240604429761415454894880520313023639676988699982794144350681289327645461217393065508464582914334283888487812027924352172398564274349912453339026841941030160509790409229946169734254567764180643560523081330158020913504435839098207019795074359654674447519873044187658008972654486000133931678921637198184181741183949408866986471687048290463363910338935267903364233438235471061453127583247448628835175183869036870739757112929753226044893325416603107417666275377345293170679728104835016349024897402053078042549673490879558374475810151445017582644107545931925739795387326258678105198049642327998736785209480547613141913153965787010886491101314780213305262647060630370011485979449951368126032412383792349171983727761790736726218060943398122226254862795022701668498161265073299612956904983357199783708940776238822271862541233564307155476938192022731554482269590638033080692254780121531774389026324710075365774237908279523859281413791936077123627232731840055160280029554149918115995990612715869650972856355613740795967220976044223925598435336511032193755759210620746512183237707023865433408374530244376888123525338327560086581131887688726842381895997424285057606466285828410759305967219546121315523246335063071061062998919574943143671985837441358661585003465357022488261551269909121348561454130911176174446733304777342519152286184682169236398403758660931713782644374689215387582040412035121685630495490325984379483810128255046358367022946187339850125998907001310224678762213617747294073895531423781115688137775361369462927908425657602967453911431020030057589221664377770111400940980180707299818406215167268725125162090410097388929535729362184881490882767225041731268192819906973235974013866915676746169183993941022163568040844594189588299148606546296810713122506976834272304970569604776119519263998411416516346842978888322330703033923199976633238388371266847659950411163503776099029798593537183687566744210697996942796770998962180659095656299916072848757281318417522484973281769373545861681816681315289427571019159342659194698262062534011260885934359149671380656479439207399851784643026455525924962896428355518196086247403865720900581864911258131530775304074516798659943754080324757903084419318210049666704138968144368214940375959078102870406346365161413346684017643904153742870180168354395486940489765267811725440349228269258323054710330507294878949807580775584590922513048902546057801893530434772405313886332716844830701625138484568247210902421305616508739259585541336921672979944502745834223709600123460274545097606626518905457380141056057663005421531659199610981624365956795449308140578402909839265822925005522936201651344269297602802840018693130653279105479443169378349053380544400551186417844840325875686117094221987960802292830753283567789868053085300625762674063906271741253697337515681294394435277947622920034903792294820924762945193910961328201965475247028123887950085688515153512107190495839016654416978495698250657931711218928672378181822711665782816390842981459072816239187682072858035301233268650529610799933444315454600014084344753102114474384029245514893325008316806911130389488186222943684243710991030626366702848587447448886227860373117982288168652592665569559975070237836581260711598323985140515741569368711231518928778207486686883184012364017812950340015978707041491779720759383813628272321654235688195585613263735123623278335930448786021131463549832932159829670381487933718506993546649184473468088142818927544325093927622379997571304720752543604369266751909343157519120297563338614380714133793740615954444155983540303026143216584081659130305482070584472128194057721507312505389219036105092291046210613473632696525221157884263599365465487656596238388359586215388488604313460727765067951084436226228329066492250607561696748312972656331265240830817752975008302917343562146578541795823916919714745276991754070893382242133769650596079714753857783987816195756068658361988179959405413881990485744782363120433700694794036600645773296332958096410137138532212807385740309384476264697156998042353537860602435601086817355179158255467337577871660492508380720281901450096355458507707627691515249565643647822496529659613974060774274135851550075688990908791523239755090357829366872646393735126412474147951108278921586579746295100568534382586686771148122479744239985440182276683468966147881867929240771718013565661955739483118250793061960401079643833905924700264242246668711895748459425100054377323454867928576891325552194772738204916066511281804085107774702307159802371343247760057628318992401119940403502789230372777382654183582758108330143272193950619099900107086241372734467957471312097194862008239895922734014665442684468094990294609833865614581351812629024504568343294866334957706279487058667348421460360569522686936571203494489720662057834791286533194867387058136899064034916047700591341741290849120198226972126271823482718191560861172449109241610603896449413860425120893695318574408386064924687562570385833508187124477075103904476206765938172914507409142685015889615303453666311872880301865544214094904599238707576159870418905741500012837747139364188094982989357406021344297292841906868267052176233572281676306019669252455947030923492767460831640483613407294074166209780194883339834386837454580278254743147620340206328030880612815702877750215169114549145578375459351212555653701403713689961100933840923066681243493393503925125253004732085412881304680355998023300530283344917419836145132901809449535726729642684480795132463881432535583665288929925916412372907520668591872505528444594957824173984757874202773626423426099616044641676015801239082429380065495424414478361671355137465894201537284229274043320766678608779972522645058663092944394008475584858674324398064987113999020169777346783754032843812245555129720650735592669151574056298346822285704436682734262776972975206458451931982324479229608521356395009253324324066286593204579725218978756219580517360597136139745136730011082043958405933502769513717484742485917905030522747452916064053830370243797642323748972055671215980540554960616773836115447673220541551968152039582443311511182765296090628818052299989906322834645442215431280273503839855267782895059792505436010602379341768744217216303852644802312562604295331115428841748824229149892678591270238256140312718314029790901071808570535084931346479056046755752370499635409844329916386255098524116091950499344518376685588651716443218195833652073630446606765232831666078796012842007448368246465312141197393508691219315066015978998745858480891392328165472338635179180760981114190212791265425461607438984825867393193005214476147313990220537734927894089331892953069371045452368456140314302917125046097034255934911426954436860973347784135122495282798328769234409730457945777634251389137455811335641112483977706751786638320060320718467730916019636533305678350636082044657017585594450971629531150648499407314107766223555504566629902903164090063674326804319008067502752471673104035754116984156214554975105129833571890085555093502896304633211344420605726444541072148131964233866431860730787738941790879458985496449369607395192458739680312476790911111171128655250941034490394670025673749108401011518076827177802338996264934609673423667624730157768100753046864482686369893322779410770911611416273228869785066618107248055459180715405153442216387384317862122939679798242111527280422287073349973436327939411572955208482051344838212988221515701394786299817869580886794980111709935288183218408967827857895633018620870387523123434271322766459143690345742505954863810049344952736409206980771965706647956017440441623484563991279045663184648617968073203660246183157767697086365289182509962351176292796195942438359875874248022038034230123878144104853417787577066274952081569608786987379758393231015668239489006316912757870902318215059484867674676463557489839771177167145600282398410217367040624148327464676873906924641565469860785916054052855285271842288818875383378247931486699940580856439049809702713612885152225883827134520976167871697177936604545959819250947028118119094261544814158147605770910158092442795760699190278908012633133229402094045883049500947378655712616351781105330657569842180268736405046711281474632697128879322676393563628466965402925959816937807602099623638851819846202246031235981871654843369412334671468044068354884993458637692483055440683629077866487193985025535129051092377699438774408758942765802473129316171298267536155085061756866838663383991836535017459540722217112448247947637236293185504966762297305934783632830435085417009287368169490965702842791499087270177319693723809614697392860778305650713408254493627403265085716810388049579297908165364788367716781802702088652209382348080252818537970444642992932405508649741073981210203718509487104086881371060422327634257850124043661005434700594448367103411024992803292007575778065774079663778951767838251673647073278976971222621804357035793195915595347247907014790825981836884179736665825666556791043570355087615425113970053486970507671087061344433899896677792979188747800471027898897722550266829322780022852856212995744953877820493219850452740745466379131389441686902038591817681218883518000540240368253398698779215045401987683767319259424290223721644051799367116634908847209196976671042089143797700224382680316732510534056987414016607539693219348074920706800472226240205610002696830526728541934067755069842146556289138188633872750991969433144531035566065967843309198066000917680941699628030691502660020062871702823148226534994990322930225694328510093953111473989585384014790939302175889693774602975957960503881858667146646817317697062999883060677223202972507829733461205437578324912204568007411465923653291285808628055936877625785790233318917033249171296792522761978255517731578777972330787270998390436362235165185793056161253384849986208451799304510691826542307751836156644513517584335948484582221369121217136491389110284087414109936290969054065077580431290764448794634199497336946316408442703451996816975328967982458139837045804065403814316906522636274529978225514951093085225942852233041907080738325058146911563000077242039755269386243366910056765897559612111785163960759028347213775141636542733257361928028390997838406977630648471650160435611066239426380040427211342686888233379629662772066899477311481748638013591310985546853977186517187998588619840871322694682014955704827737719717851056390253567580712887269070213501102623760156038641176270009602465025445414022645324737667819235281319683641324461752533683913282864884750453848072947516767813965977343863973839365428719896008443450878803698502027757168634183471019697880238235534443276800975807782538175198972630643452381205547996054789515147282132505012199687204141127494997725758547774377705879364240694567248149034747211924565214295663069238513107989291525564110346966854908779441902050987907347838025148660494771935027948795735716165775524089468522988255376305924885495047003815036576645993612225753791012925819399558235498915690641043557129218247971219510121543807176439275522119780901714199418124657305573103848992170748086858450010038645384311849593700000950460470448939466595426615736190328789603966576951169483827876313882156814088559169541646058028150575288098652573635753014301803001324326713483983561655643505091205100696849472361713963912971458004436439628517024754831115105660152634421869239453206633885378545342102557378299446177300724699280141040968790680730035894561018512458959840511751429985292223763253511357891654938788582447442770614011918777953578838316020652236624475824298242433419151393726818280892173730823846218393696233512012883714968474692500858903247807986762375722259635658077095823288770628601146474592425949275077937160213260541853550374438082451334714785902922024453986290626836346050319275092661453145676496826746769148471494242413307727403278835402892685513771070939562724103450678386463873635056328115368298685016851807505650268023129409443448061899310063918453218465610272307377187108262911737070865707121645239589954970576643227622725853321107878155839128053843018352579529266882527654676720576818062059567474944535611534983564483235815883571885416757415839481064214303438302407847800799095420250898069260779968093760527794454691088835723071861699597746509336366602162220989083937033518497333231660163853233302906168358939156660218307066073919300579245887232665154448922340662953666226072682048417915048771621862136042390505307127603552156731727264850809430560315752730335318939718088722231149544289202942288365204502409802130911756911328226222595470857348474547860533774335576702325918863382545843653441866886232086760613412195809640000386692485674050596730007635435461212571650641915719066795724603648920601975207706332884690366951376391552055920542514391063648500076147319527468153715262450842725312172850515104705516832963311851189632867407662326454651214603886230894611814413125580774603705060646740323985423661176678577774763786753383127493275918070150786248403996424422020686740921887396626184386107257943620382863349208277547511289230687071424597719654585621787612444272152446904970203677867113996622794418036613513826143259470506858180622356422000181009455567366359577892831708365877136683810636509600778788488857385081161056171853459297919996304417281872418877507300022176647745103167683647933098061189727307252268935005809590244943447269347288661720345594052787317499580542393666542987212141030283158124697651073613371657093926139597334587187551088308564731430749499072239051094252770309924611739678965449038879177561209048827338314410112307143904424565872731958121858204208721063402496489270269288855849308665260935112806988028261775093057169968668549803323985391019954642627563776961880642225132802739606723489686384680375170106227995066828187370980813553927352655880444240935478396557122811798190340562284482253916469810948914949501238395286090533818728265948478895343274005287479257907667413492521155923894018591494627123022340718447089276552645901281304676998078186964963921395050941620515525704146470983378148104315465994873905790532871932717562688519346123866709803543175412350567757561638068565042050416955090975166726930206998109118056831801177001055945786185146588237952841355265918324336283697987185914729872048673128573119670259652796773629985197100310066694852701742018137814081731100767488192638717056744463236878043493813373547397270015616461255299194753006672185327221309210323205091686206291497286006268610593401675051260979302615637356235095050863685924803293623231793511757733726777708230403825727515310805086208063916700063788328702929155716779136967207145010236460308095200454577741256911017471662072483043983741264874467076141502666611109737098708805562205513040202399094659734296353983939968724461717963394448086980735969901596574421039668215712427749391348393134973268856623545822201913565104250900689774794888933545640632224423332556073855324994098745756920959207672268663906147046042033247167913439952306145205956460231208371317578626069996003049356003573481255880664203665466458958805032373178018122810266405693914020998524641020203483360156288425658406462132074970330259825313361124516104881076564346991181252354526478391493432761902942497550763986028094533357604325719597173119816243622257400932377762068670058726866967703964806128940008553349029187445051452231842588629824480700168375322629636992167019620908166283991177894205857872751444765750598608381935953866321947502295748279194079226252250999039304881408900726648647928159394256002108677599960876572094292778688131419599363995630123453835691848534173822806052516984039590437101092641885430858415125367675506838939302514624318614543448920239310343498912980652041370774662423519500282207766646779236290233708853158222186094179183821088773630061824851511024699809834409957767962182459137128829250242631415481676515197467010296070140110451014572925851734529365799557952994110673698214431965321697020271391523519345180025631925653529508968867215657379495289975092756578967626656333128297648718774796524273241500556218390161405083385308525464833341511516594944788322273645288520480887656639681066381755658930185021917477548467431510490190116889400057894792770531314298586800503347746097367201974934199971081582265571273806065361215336332637829947132787784978196403746405060859954992831077255151266044729704309169371101830935505968184448667997475663754247832515850955736412261173593132203634740007540526776256077853162118542822025212520170019657022131295589388124870038088322805119482664669513699895572269342826927878014014421843815963209710122837565801465662308890547218563981676825701383942179665931156640666729077381540051891110996206799212830085229645212849726712187673707757682335853554643859198562347822276165595580277311964836675475891619957475113118103282802978000179015745120379940855650391652560055581441325491442202896386983039848639688486718834713641317346949696830139913484340985677318336628774993394459251364294527588229986689232926788529050126579746249021274317716800652484982129356483497725474532273779181746932972606568580816949022743734173141363337138694552404125985366669272959145766660940658073252836926888556032395694481509092380931798810719096200149069772135668882329475008090138187140206074531028894332470485009826962515232362161043487795612945536252945350162508738630530109889638765031189485228368547134721905754198405773022456972580336666588437671407152984452688506497603256468749612616026257388756759955689145059401057377609830899166177222767363795195896830442064423722010025229367476598947357931776752157754693747557475352142574054222385312234408796807259843775655463293124555708726623495311147123249972170980616488740963696742892977317547642597150672100780159530919353273256807687043118827165499317924097214048613513299446548448813005690275866479847385497830981281116143130021675582946128366280758802715177669665773431496700940994196944385501453636223474495311700421656172381531123687828617907595979453375901245716732536464177813638406862671950432486438094670000818285295715454005687725304260116791346533130755400970982827098210629940997977407147451490151566675523300205250121892770743904682594766656590852160263729626864573202873733951220003449515481773358509756769147661251496133604382044656859837441678668110977791953464326728088959016196764189723169189648368541132928797619929923887237142856750839785817348255774418227893823980368941221094385599108385430399547271653712368200874678855485282010413729582965601209595659021531803868431403382336191927269917828838408895151267464626679253288141248070942479371824968975449509370693131380056955454747950959744646610676229486465853121799592278659311780818271915864799494697873692749756355430477230287771602977763712262871591505632784401790038355056420491823943331089626200504962409618381650248962695997058039179367448132850409990175624176792611970798459110562522708760638246154221097361889426640542116830190395911032747787356872899060288403917550528525885021460015611546820488455347543708861620132761496152236101732241757094166283196356554452607702526795138124681644705740007355543427886961920474057882582734179890014920455669427531613089333604906314730200386999235845575967706377089625664989982592644137979846904992755384632997981978094856431573428091685709377590564482659296013986531734323659977035540222277688561891304727736666516789413136922360716455172570333728354727890499555480890490024183144373049115624374698417224600019153362305189232985697953130839768360561495673509454716621480521791179310498509385612518214464126499960382483716572863402570803998677852094294683326317891068871680368058816257221476068717048596863132561008607054574117511098868806761394271717519109564465143572661854927487336491293274357720780902647503637327459338870658586892237620671774404943204980829332991671262323104853256674285942842798515138404580163675120417156698870389356704026583663387655181309691617768245492939424296990421384102290852324490737738870002397437762342080028146099564016659337037626103970638686626591869849489212630145566846444745917275491799414691722228587105911118952046623658794361830870623511721994293807785432153576990506553354662833013223927456193490853605489435187918389632500109326680063663681085547996610349852208026579712733486779891561666715920719226850134456090211362170761068749040142289366438862660462703961894615782901260744998383989261192410249204158024503097875532242216658298109332629354047627079939412267429498215704792635782494225815641295258734271816824748623135987807335473718947490768968489769055096417481465248189871854939881833535856615801942639478820862791131613146149728309879585720517660781723947776425287746190903226455795823205590318073205011306219200808837927601478701522099643411590089322458387048800419339188042987118064345402216263360584758083526819457810267382749565367678475896465466533335450493910739131874597321887747416906789486111049972852877091231081522212491092908815471794867969505437813954950061644580481002702804185080617542457120775352704449626523477000276363096123849985652436946563461001443565828083020541826987765821713646473524465836319469402070037281184773062904788896745016588794917433828956122810129499124036217256806322975238409526848605587729155400539926032910054079751696894943931646607368347513757601257869260759649915474101038793059887384092408459435235760073467239554420072292864882170761162515943571092731663209455731429974120057450941801303881265337142512319591629871676313926683064161650372358759285011263749687213679692246723874257379826504419207336917846279687303027246628803866970904360697972673841823755455241929766300045955994695882685785400212550697841973050383531523851615814844297774695826200683353130575697507909924380007184589925085230576301753473142545387673946010355645391798366419830957958626106364068376661294298112372956786253963374599411740780765390709112376259481997430388611001274898002674540925614346422109473161419547502248355956332383143212208051133752114183704950124233107506336869558473518518377158267938270295987632097126160021875929586948759297019576515682977468170953075485293029272268555495946419809063066147125089336596302113393547672949300106590387316093152063020324297289468909806519307570681010756256756908731921815396225811113510111063698956600250488743106888751381666171158203762050960656866162295115166525037115427910631593179968515461325572482117226654380527755942921370679737886841410605215675640470255765843063846735110225407094292980232380351090855617553184561784865510027545461176408532546319930008711994983295018683210306491042435927694795559252833413915035546485888583460456154207632151027718389495103768135941651240104196879491974680206843511820966130653999199641893240651667423446696936789411318772875635907947640655219135987141924884676858166141508015900643146701957527869506839313411960877733583969725245129252537096559309849074410967365255611031556432910590275205114932710204922540092064960247658564354518716123768284491741869454240166294846339635843324229911142881834193810682031353561861638876190131837205349997695534348154460641078207170194025959607710970737404882263411484404643334140393984011103145854043125281157221994624424278172292548822535435903054318588204545809787812211079562318103645665288330633470800542378193080993083245117816156169437068486017297214117982905811916666165888109031415908154126530753212783200758025879611873139891492555513709417649225060193999596168705690196981262018533035575392544141022470346878712424557821047148756044286191756727814135136874626577288490211402671788500569755118535813129095111965029133127911044799595075336173594944877580312985682308105948784400500876308116731176130627067078622585953554898132389748428275410967123575423113022348343777056976844094042376981897873834884851368574430881030195807201601785566396676730831938961575938949226565255367797176905037947614330289791397716835772642865363028809967767940220649858634862337201466649580457482479044696506464588339819519853481503031778383662190240192389954943192943242940587345087493472822702413181503699309745298437174222452053467253215408291861962111825034452307828934166905022910913118514022054612018849572962082546846931597575760503419868809136656921210248940614281747016925542492144348337455127944970545128695927228701682460345164791144301307401279584310492473657501123443883356447545415747571611617854224011307714393932355725076944184920607732874529469433104500117674949120733794959911805438594045888710328051339363502833632546822058454011598675766517609257430747079960130082330967530963960611143977400965782530935410043262299663384125429452041224790914548536866143993072725573535130699830130658609432186506588525614432039641669343841578119708396642791062658202169591176666912669871164345622235336234992495321830876408561869786057797372970693212941944514311699076125741050025949667519874167609636738686853494421047120608134079382214340317542809220737190813951453395111962224021892180756025963116524234457336504955332776149351433873931585311930134945264472610820795401383098217322926910695985174909657821780032110635296071213398111043400259489902038043558052717316941860480402388541053106608605414120886493359877820447604849724717874629753524246613719870259763868633760541455259950274850636371212494129788034343385163919707627163360689611113477766039912187413827018086747861023599594967448519782965859579990895391105917153692967256116686923519839908837640925043394165152973780637995124041940185303080811513695241524520890777921572912844097060552407335880510449037268429407013896609087183091341387205375295230568164801463108793191347228902870048835797699636119828876184812869837693836558736045714898195469209495910272569954253214573205201753473665869736088041260356171094093988947073371221844410622445482228327679388828981416836409753961018264565663390064732545959808046648738272403846078895042544314422381998168968833772510404180601923592405906354323024942745844419291554486040285617512320301647783061443010333880791614540240464478395733919165538661266701239734412984873565141092116652692184879256348354456405213914259230522519305144479635447968871718816906651227679430243996109112190461218288361280994988689556333891310870019613013092440996199652444859149793517174162970811675764644085313459225940009679515757670239116420869603708042657972370897906421171001889171917673855746064810399052012571365478466152964870414592972098056874940937607147483123179986714080032806083155488291389269439973591441159654651159866649310670171052929999534528846140132343547263057065379222560035663243186559366587914581913680388672145815936901815586595426836104985777962054481307331308799642076576545486313754515243958593368201375621212480199933704028773494905921007352520975843020141685060270381493605718419071226280311243530604490286463221592101831290162707360947352409786300568363172642243550289496032900471232181261673527611971445352384042069797395250558126819497263518730583717296797499452592054487687304205519760669804422416721450291098442242397296497997900552233580977318770578169041927531029558063565460338726864618570790547003463394474319758546321139650502668102071595397452484256101787332590227405644055865351442502932699020919660798925238737695714324195831624353493398943656922327214232585775455145084278954240722879001367633541608008195185952891484363341243773631592218388814963346986457625893389219986436124617048700680345066389677131018976061932912544679829593007225281328110938329589283141960227669244003546228474931112442166908667945648823090519139470424677654665440773349668716639675841063445342062323758580809417986902606019344485363052110469110670705091640138645694907274874550475149230868019871241756674722667276687297771404689515343784930775688486840197146426262598959636264125337673673761744598233775994509895903323607918708587913724424074223993862970254788905644154291567355411993966437425160109335551106351715098577526465554622163224759793951887355706086555001438490795074842258712754467477337399969410380169602214332830058459973116755351988347146211960387349339941891715415876063639868130120791667399422361464244939628195701332623175383435394830128342661187892274824767090715227098016232519550996673520112250027468468218108436162978601633926390198617927475951099106837408479638249333245991178222677918363172276448112974414152596118021347710112510367668941044276759156640046106258934686483763857264740678462153927230979642017670080932686682629179940044366987188553995094094434636723220801889608389591877567782894964350059056558028975630910698909202041495510506954766379773322416058764405459492445795325834404351956272957099995103386933088840573017180823865552994062728911644029704281074971441784015780395973245349908380686984923177387120434044742298697967318514130596087459373591058665440993375686219491847597938093401400413296197294797982799791305562309182643192128011360153800134716319898868650768548589674872630701889953044953806573607849401899389892983647917319726174282480608893050188384446186594909859726398825582453198613264655228628940428801429957121821810925701600135526438836433315321169938872101166103509054869896373127726829045328187794203080259016893849112716232009877839399568791282689943489430267358812498290168965916014888824112397820318815942116192251002723383396173881193662099345292254246341563197258488331036217623692785197908352046150956496019193074787801104586603197208965106377202590904647268075914797899018796851912257727608338127608620544975573416312613935670309931359173473503632526460018169320604796117810696144526972366631839414804687316865751126849602439075530111778547845281010957243265184837854572275688142748622362513389903293724801835044356116732859955199213988700731958666144494683010931334287889044947625210838345577774885626002877263298869090723985496924798164954500431531734894720113907482736378155761658169403926075478696279202928614292214784743238946503644510644412538789349512478364517840550424892553559985047417516714816692809788109076101226742304286007665707065140223224955199710996946255296455918457019684935244357486865360882086900844944909891230289764197678036297480818680301469224528989020904191224764313233332090140568048534331719151121642105488142617795552023043276601418220873327349793149466800589963845321892603451103272188977882644053267872433462594531180811466361253609336557956911130005664903837745545489454855054562635945140641961542516987797877971713323936199792094214361717953994762037936105033222107045191509696861347570097623058381074276949916520751357539865507938508014769443432824668088229385334379604242961021983466806371061965224763518045420374420324130744473843223305111838370160716300571172637356487575096488198901492778837238133146468628398896553415896541324951963398975724621436301911100283153894531858888328962196394725194422757563727274360831778003154458767224559482490218600126851355445456478162533924846773222938370981306227324323077617547541122186772305075975483405855952188389934451138298107180930324166359410871599851424910052952288362809468457994252771280812241909671310123351001008274274302791656161386044070450517213303232152628721736598162521633461071200080147387183953867523066534682560738105367957116811344494416377843867686109788658435414721739681648631950991346917501812948552442624412591384373866595382878474640273446507293582863121616934407943869747907923778398653311122228029303466540274272661448830867328770413865885683378906286265477961398139103605544315781357720646321953342300137760458245212906397075198095021423704274814677158166334609774976355070074384268157800305636237573755484372382864249490730872511809828440872708018655739680896466308454102866956535596973006956267032778503353194062327999216216719290215302623212852827016169175273411113664672353140927521502931365245943443094303936340923764619680774276635042672460494215693148293553854976125872790380024780342936659841402105111696515752259674246534857312577130863157566334462317265968618985954727096807250207249481186749433384669878355317556387881336254910762260948460617566355750463286711689677597312898683711345732367038783394280729578881712523158296190736174165496178205607286976032424096471785086579545339582431225465080827764721316094178527006169529054130429259794375673136904513811200460978171230236978488763979387550317798143537455508129147627408740123030822530869459604639338416216925588452212336560931075955343898065268889870524048141389740414566693760012363126262593965073852597080315587351586071500174999419802819715518972411176792132343284272730290144930587494220566303631258040386570051044145376571419122662367095096486507349550195701047460314991884689444873980458517732368029136962300546872898773128911008352245018077843035592853632436985501875541216215012317513460764721491889133039377767917390391565324841552537409262492449618645346689267041731020201572026628458091746178716856044754817207340335118462929067429324473541020669148006172401842002019506776291904422246727311613095072634430420757592609607708673268046206248539986695123869052411775310910274968824423005730405901509092861816033635496068318802678407583322715383674863451127580565729888179460961651481491968109752481811763418301203568691045531549955981034508803939419499327363222942931683696086438457963062693831608105103004730932727776087618741094573727554785411786977417140318981649344374557961066886476059066184316824316044733348271033142585818546265012126357207914874353878259046134915377392429203982050434009131771660876643915748784090805893874760611469066433532753006238410575996854439861843185234244092133862799849820994574537506267395802177375622686037355987122967636193166069226790319651300644925865911998130574386894214539415529292338620854098476548870174821507022284471213155546702719961738841697967365197512798674588566960608087154492195904555385404436944125479308843800400798907541893042236330651262123353319668464598356951801635475816172307834528154151281162313811775617943024155554278752264656266351612327591525077290585445879615130092777868405819235991718537040606887274131317371715865950980075734849927015899756236470367048726443026307902124936216322596174843114511457769819394407034519393049232057999932987599557912807801381701380835105362962412658401108658617517358364788883808262131402056558349906321704505802018111575774461443595989738522142587197688367586504910572742070459477843143062529359873259615048055914261514874897941375830810953818599163961460939303569654562503639716138426006331873954181715395172308054114726467440492333002788094791442445123184955248730353956937414982343189114536699867855691162912444893504331005772972888845428980035912542351165472207150128958064292303753946857532064625257596803936161631419076274520289720047453288910734737207313594709431421185159168457222580940158741717572080126776272372432686869563075708661047621666402812551597609777789771188096981251014588830821407753857631847927590010444132947119542194959496920724922384275040116773698133451526584080388864562210935187194452885944725911324082613058430027297999675799350933903600957214188842233147707091985379719989386797787448727265220679649883738903867223241499020381347235712773405706390856452325161831149140327096701621514463362531072543750023908487847093850828164805459387969427194921521689592682523430193326242535669839638581810121017502208979540618494784524898989912723918475616297035375054323585488812368765410703683340773748614832381042138648157011887800590054698971154752790496723034783961203863952130549080038627238140495907838826306619823945694171502802586853798050163039987527920978878480494608427183575416961517658927945684347390622588340440831180095410705497929851853967227236461082281684931190281242187981384673201410770843642531126042479981122215752501161420928929318260121734547897694081606150866809887783646956119273948520696434877228940949473321622144252416945591571861947587479179491512678026261775199761427199594799837849123284417555565572836054260167624085835901858802444748364195968354419890798389874020368406464700398651668540064363699690299554302372996562070290840943042413138220592538477246705816713041610412037339102841930845147798845681526328392248357159726276291902728509539822908675973826099978902857581649901702076610956561336623002631646879608943338980104163039357060203270984696495863766150387905093571333101590661535288146498133344524938411459986619498235988453318203722905456717275108422240255339973915387835016939579879361527059427233240172379599617347726438784414131295044369259831772532471966643180607109545874431984746383645542132740567090409365366678626833810730695695107184015557824664673179491588732208109572632802759778020815572956696980712961142600500640398035096113375909418277383505488744887652195705418630976305480062997806004454086007013156766212335864831904914748964092185579959362490783249305161812580542658090022775988099051832695426146013920377515970543423215542117510451570341186954538860199504896980358789127003051588069250754244457944063496310409872075407171757048342576984228012779207266344744739034537151535034020193510999830299043805113444809597393171365164083448514462158578922555903501115555170363861600082885146852290160951481319669669757270143746216883327424685616382870731732885373485436227699175290455893718526067642351494964495656129606026380750324439354733500334564761593031379147576740661399476429002174321129799522430373072640327806474035451875293184256217437293549231618836359757824400560430039493258733537823754715230948871554041824777718725858204940756944948091928246153510193600273954939601091409261608918457492530774110895224812027805694859819645847015980163066302902491592391504447295072088934246462077153739471210578794435804534050990107482097081430937607854744135620443868791733625189641542494592130986911903901175284248391561715811003894288933777722697554670205328127476010978239786559276248567221556023195003265936631560391152566510160242970765103906651472105044887065105700336166796779335925998258384197463132302323226374349889659928135867951969874454943722560487813165783074207994121558238143589755887139465525723154602718625488168798046879467260926778393568879737506366465994374697881358578375884875579897380601067864952527059743924354123322312795254590552335203715069954402637642646943472543196145008658856539995955629627490354302339300194907594615168683813753905054418494109541483978879333420094472449093200449936550796256204515021399513294185942748002219295885419997873197402303665512066604204152305811675419073554969738744667359698057648988935185845482504469916496410605131737734210469819649128238885457464831100373173028989014107614396372372197735513771972917052001075514705765569644582701458966449415949248081484883153893606640150862422991337502234619287457983346132920381814391691263998208334532645519717073874467549510262565709420479447361495200157718784747323727442391089220666368262734427961735394245973244907615776110758039167417622918490980294461899517296379444051833200063072463105733135529234448748667256258014433161333906587530364629765443175675560996557716300680071754697682170100053283591121957929699623302311442485586446930529054333467274875809282776935819520725585486982271524079929041766363074747922677725131720047755643210241338758671856999772859167809274750135802135503622302531457559730362898990512001980166358510336346571931360767820259355004020820438606453087731878447896099347461586568166367671575720110439026253685882944776485505255419457470486171343085016893820780393326569762673076389199654194601875280634232683399214588323464656841526559281821464404419867316486397514834266041054080610218955972774964861252877332495581188932712364621922089166389408306681946349693441365268244377771160655853168439136975905789311529428338009253705445642667701151112876942241270616940917747013874603413276743359044713015219467381455812381529135431837214319436155501400871717921749009628893634238186070586629024772135836359217144811695572679276150013876753299306028238145946843174821008928247008728160794073569052016573836870811080727931725976352302450980710805685254259704106807374448627041676869526612262255525160276117439301471083625402226067014580437096673792491582010610733710616618640989409526639528330367933693979053170144418871750688026723733066965937081082239051201300658563231392232517876188007787198927593859864832531270853607499009097502562637390011183571191971104667524076027387816125394648124295291581319323681965788844805829940377829858431788319695388615381705232662047146364712578146152499972577211651440315505797903916151141951887333761925700988622217167457703339258540903694148194972538112070807910255994932274082294647347508407830053499572346291073486476068302992802324521407601121442513294262247814376987922239182760694241960082501734255948530957309603906881317020172682240540720834731963554039960659433835616092825589187824974250191737672515942800506347970552915729859310441916625555232820442277156304649505004137796422326076330679570449988163647864707816262793694340833898899494168827948888642482911536456085705183099690046625839060313604130198324143062742505894488377911087371990027307672363761313821441979982814440803851575586466457912957973139789369823789557148156131101677487597068326907519368096024519341665101839404733756579563060122474860049459649453067000310517904044862186370648568427908918571590014389429878008960432242447855689869735624408242868011230809370816375454219053980191958814658852480761233908746915387163899964852803363330109171696998814488585977158622902464205927272691214196465884105130192942975486831519453330773581377049863554532761446229511636579373326425957499746695354851280349313127483597374541793459885009047552965528675332751189036001503172014633958960049824953898305330418216604855556182364857487478779688523547190796488710328523462575826303315315017389515500457401952964002045768458677459848385895746017371543309942119830894800832527937318044226529358403916488033213117013037902034599844300754237719651502800714406850396557701382329025031892236278585591178037700838082370878657692490515475129074156978048510453379326788665362531886338356568058841457096692757798325138909911589662156343371654993132583515340458401935207106240073497432588539294824813833007837789766897296507761473860521254960664808915166682395959076076258989742716925955472858449444364544862212427824558591228823290898320274096806974631824350799599566564386231561560335402476060482841819792202855517321479633122754411153804419402670048872419839001816254647805864327321729664869502922419259208766038270404875748818653443622506366923775921899679093165822313522069305693972665360471977348912358072475475430323372218438777059504486984622056342549565138700722167918210462700066144946456200577096809571950161466236827689940155253778891121906613586391124663862420933137448050327770957213001257222609912869818406592820259890439148302703384529651958190547068591618597174866610664898415195247004636612202207289162186515531620099697501611591706307964371843998263886072897156515891342483592179337045017090259136809851597256008461363354516529172992209426060327292965996636743555340309709732327534230093525632627219605442613315857125478844880433532373918688561434861355846445914281932863791296425227997808453108286381197934389713676535264702277537918379413316432231740109084238195080868289982158137465753692612378336634613514419901638036879320635554246175686665130777856064276107791704174636616867458965911908165795569749954273899652774115990123243553531689611098453807832410794153456780019430340299953040272212905160990355375744516452275412413469860137788537199374090116427707661717821919817579101827825250621933708828607117577965870813872331970977158928853116984145543424807262988260398017284054021040360072317074421273322245891752066485591668293933099253701404232670764249358657276227555270254160458592534388582225037070414080697214421274075220983363768655140310325612335364802575372226012116876536022170379046452468806037398645757144859840608226770857781092671921107588864140915610601413283535969682409119602806532245363372994513733242502520684130931691853109388637705773878722190117669384977900666670874343206198265804203067225619345695762493941056201016053337421274978494234052171377139257460376838876619624826459729468041313191538337903047557017516515916089573275639596394273867263493309300767020071690910872315020736575755199080766923801132453252633636626531292076672165589022544990872401113176692923659234486025863108679063101993235455651699470940146501378569699333640595297951094718473437437254643072971849805471433836622368449514249271569650810979243241256404831580462969612868828467437066309875184693216535806541098223005654786000279159830314108585256976831993045647947377171781573734947628705396979459226570916311689828582654787177622318129180166690726531669370146101503706295692856392758718517606925369266697657954641173905241074177886831025834989438767265700479931543718421151063965243437621723802495895909916951517705776171888620007702423233498790469766186348701077367815145254586104123179084884195694394494920699548810684645891465878734263579799730500381606530051097849394998926984199936600478767041166172327298693670365752072197011452558869056993850906671134014469722491066702282644032551256390337084457661338702200458044370040361222500990777887324195218967529828350238783560841576287968420627361633883665583304327297542330288858391936693183741370399229666394319638828688956470705050906294240283733328929034954362476530178204230757801957699974840374083606734620895790766738871202619808549000292295687286679120338685942807024760639765483291110654460063897769878997267389830013677739406532301437385363875366597646204368980709354579483804241569817383114156059884586468551997254706579158150307265899349310614098957929048477911121641378477113969949238528378325101028327094196407247662353734971413314644819059002367461662082644171200155947561869369300157924317696902511568812862151534741254601987341632250920293346226635883616753931503685837948467767545130532989184338057221304364974276652429871159212352088719206407524822148703706557606191422696788630804120822042111730536180004461436322937770909334686359166094286410733711753595507212633942723953066421458065765250876574115344953593817910090612898603211180993316577280549875127622959082038820474508063626464458620123620093596029773745366271863141464225438363992034864238110062261079591816829139850087156873359199441886859949509256218070869305802154406332169680068760656715963863463851018360940367776492638023400622448117367321239209982837596621580792263880454167442829337583526346664234031058802430994276782224636172167290654610317287610121221656696310425514076038875499034706881449121384548345452857270081471979952023000774622773224606468912505487175723767334551686792316391896083853926594354791281074724256649902543491370557115926227709865873240467195786190376340302877138344022314419985299801723420993729312768596426208500118735886972582417632445550079751735559122974970058417151659738594989197796126535343286633424187096448372053359789492006913518811301842057562616097177443106525763125086496770311961433278958386559446025382943822393757894739552359937228870153824259005979494893974467231536218823169734395613670274739280712082097165092220186474837238965007988938277752459350901482225593056610678719422359967418032345013535866989054591802071702153777721046314542868575668567186695061643761508573967779012184793759477477021530631825951395795629816250361139359748151765090098712609895041670363908009083215113836283460237187212322269294710234582706536599755599431365155353046089175132437285086892869868409777135381014822863783309058380277540867842286007377369643197569249513029569455996644940367303342401338422685729162482041626887566359302918576588562564568715666341045945809379157088732531499382039505253787314193632353747927701983961540706040018689489354838534917646717096386685145941803731872401416028752522035046635040212353802614752151915959141974788411758286193306499678702291382797824799694358993124992107131209769625935514454011204288491362640694061901810042283080412283146332675623666015384827024342998189822363928646321286086069130381738789017949878183834206547653336800392890413917639048063892915084593842830590633875104397476978646535964243933980139413378720533485680496006789865970162993691350356244081114361894021022037347911430829640327120176876114594287506886295065364434281981744421856726997253704423283812820209089613322283170113033685663141915593381560059556566821645737409888268420611810155343758584585992805092544195123465029909862035833386072578527639104158168291374499357036832208209460082973576061501409452682292528689047698919930680433484326652741935540853058667322113906476249041547985622629263506996903600217342012574103788287695856096213561477684889190997281048531602396675826948988594421617138579778896806775718280634797473260938144103087586317513105555485878298493465415099137254885622558304059454607429295744297210138077305481226876560671616959375578326054473907622150555458217283958414827547497557848184670528008833036654556537552923404027328473484327573876880595258796822629833490321806092787255720414693200566704285118287611237404803282011021618468827081383441064117792850482340247058708052119352983094365881963405602387905054236811987563919622812133766439770917527846720923570642062262164380794525619143081952741043362428046713289786677422460353894253711411526325965725776669622069805255644726096492945099616955285719942901164810395319417225897739922072393348369166923971891475043529235540728950887169258934514620551270166719854925230524753506867701253027112831018939047066680819220879003441886902337874770472459531821738835257697922264146786911922298978676366097526785340101449950965848421892937307199185957560703215386946653340578629936387598812462891018681971873110381847583686913172685748770613194055929596655825493887979332594909301975271679371719972358199334263813012682013971499021323893930682090147990710284849441149435000472760933902302969038261513485495854349091201371446048488537535926880577625828452048116809221813775617991114971284505757603411137780122259952189905859922475209278669808152951236858375970626190005627902694613543181616943107259760591348790953943344872198937249374778241116557718081348067819618763944265002994288670429711151245893814055288783092133921675372594674645082699983709747916557862851210115661000118426953935082110642976439770685535647252736277175274212227246453330824285335156842852386537170361778187953587227412037313201670740723715560983080821833077891434935807074238455424462652006616779994607064730986095963766546227961532143429845925384132076520327841079189887820683613163336777287662392422035646914049032423140661223835410825917534095040784112044007404557563085714696072143692786423390189037802760966013850200018602946890233139572272207759577942275101518730248612695798179522146800437111540925481296550036860168824612149486545344528237777533006778451258122821967393097666183014253829586570592713768236875902927189334503445082808771671458430771902972151830676180346610844941360035756095065447606499059484126469453558578991877294170175383749074527345588814824786744283001971714299840486494302459023109969386396552176080196921760040574412648769239951387989172245730884505088475275523919163826088375471038955907761527561209669307015665539401520268850915804100352679105636752079861225779600236958232139406711523372657572306839373391406346906422552530890025628409488513847609414268151615312195111869316703327848462238964820415661433956245816068451432295977436771129230450889628924114608811779691127293074891536470833343009775751946465473177729889791476829247003945020071237500547250597795590357738025581948784768060411942299497975954754310969541303402319208915240407428851331948011917920455537391302081529871336946839643315672535771346005431798001838736529656030581890573424611012093809485257883098076755012066218797218434786278377339074969384285482438227463190600496715073449249995039525934384619645602429557409932758040992703442715864535406182389649258461721710993689242177376843475959163258978106477081966062970155616773820828128313067340317903933940843268123188599767168330241969088071170940816826743911620928709666997859155807215431342490594189482552827394147763579018120660942908443295111751848594370751231610017831783201919480908910287284109759333290188854184250406793228287792059545194410046105566148271860343522553868176514690290759057989223371084571831155759009326237213694867664761394784908418672689198024105611263887867440504822329069477621833856518844490702864426704272795854772941469885303218330515572114352130812674824862092745746487564408868176961460364343898800488683474472737179093756643620924931376620934806110435177609720206751781446447042862283708834096651750565382620233055275337433228612933065574476549372461364730382449339794810157695916916820577144199584870214295578120043149703131881734858072456032698418200301342024493107762512884828630031475319376629357866789608451342273510410700686378348536537639655929271171589250359340678768981237769373360661737143374939166872923580177771045983846571011174472306512816704222133108591450968232786279053186989255780225120698578977764323202579459312066959004877031559871250510616830185008310797995224087202421549273666329106943244982972592509987396954171057251261876443844069008510313284875478417551181676704183465077155332594073971232129499385106095992769127487078405044479210447305258273874502061216911446636258571290224173890932513263275612327193762531227362049411141145541646310438885902852380351646116178646617079808944932256832812868505534534230412828614398792022199929032835916709727164359966398793421444237906266649491696984837661263976874591396340248095649658826896424888468116619419344171775247463833138793731325867983186600493250667505949912127807552713439498710069226436396108644546838574037780326650875453297573685558600728876733901538050660860134083465006174119384653043324865146936418893071224109017446379071299302390987618601333629816981923412320824185546680295776219524455141080078124458627811092924522896128637375865469981913459395591503509558942614835237818965135663890079508645581634149401493554086709903022668404846634757461726441726344952153758030868367552090050578401057460794219755980746172508904605136098326038561884307264848103725789521219795302658784786386617379215470643848717127608475918021964200872727164439044228626744496309817258775130412271138320606331347748970675368383036305134024973985598493251278167087626214934920218031294172344034464463770651626067016727329591991745354158449439135075246060825304852660961597992522476636224800262460347177540827674488675640511726280088061026532540550267471176043078731149547090923771901320449002275490352062206340706030890846701137810112661142590672269937953043065183145785848044116055582675237837289233505142994988143143758553867554024855546602979232868630064688507491463232880161627150924725316580983731896979757217414875965653675480392466093046071487246924749566007778393011604102773576544322397508235225423174054932006956245357982534178861349558285306339075768028414583858503785083688365242891859412149647593564654041304433529437754492171958750630895705549142055216548290703883032193992555976421696364050038976503616497179105049102072096730037637322190887492778725140276178389680475411597589250093904029623680023173918776372388656818831349363001730606377070611127462280748625014387823210495321821552608177222344766994600880704751653558508326841679046374327854952007865138392508046415955786062226723190218061476528570726188745573263519930027295685599772352272641553712605172340164322075436966541673304656713942693374875425926970133189475895219131860922228625953863844932130298140315314654021506309106028839928968205789967329750049192442984285656143658683995844220026513526239815430246309747335262590847616310916781806421977355649360689293505470823691047966192832630070043245842410778443039850572694588439568576180041612149057903972736312527781723651981723362979702250791571606987451242545088048739836527351345771385864221325460170334609200071048609303074593958743818939683936890108456390031213807450102449083873312087459400367376449703759544598806437841235525500587146137600372992271197687668697237413418517543981103134070074680541657463519675169398604393346735127152749270717387110158111902302570482383557905596220699549558136021350127666993455817493091224349705033568214846899800152955101614873186099322950770250841787549356906692277574293716248126487470819048818912119386171076385719703173418077401848409968814316910215168404880820658781556016142142097530939683357991389758069763630290194032491024935731900486224897201949004449042573150022186708463266970874358326631563630287566045178414656016490713118709362852307035557967470592799536724232792133904151025729696697751220081332100215361508442996595919378724248935916139030096711170745580445257006425438592520048281024555080867142790845966847848850066818535158392632683472839032719951419382832384941445185583087713801871662882775253595556677739635434001637915241541279725891401413691922127174414544862559101649259155354590625255159349825622640175537097464841518618564618780360803296826309044068874731352026629782649511998590454325262221739820891041408285576205745597307902571722984678226178197414970974836431451716321626168654054774546652249485952456450265674173005447598192143812527194611270036119453391400485781163471043634815578408876000411077973122106849280209370553741073480760424863045433896402136863205629898640061233649895893054371693294223041163377154827628143040661487873575936009801171803039938933333603309580886114236977722648537711624511932442037472641708599486077475461924510318269452979786367503919405631101447315933220570641380423728869411150544131521107904023706513908227477329515012759276608762134623895308478524441748296328857613743842315898842430900052425252536816445925557830607589341105089013589838423472276926395893983231136179417918776962462588176648165710670440995850924865514546975628243766397826400346070969043962895094591116952305942401516826777319541628484245705638045784363607723110006943677284467361975122936899055014407281677240345573312359318461713160296755860434071088046005785984585623200223948033784877971094054169067882589654423197534314988901043534516621787148669724114673175769303778594679693250751875804495873387292175786814059601714772959972634238339934412532009531489172650435603466580110389665752315134869338882336744731077967110448965252078494438767479489525774068926192400993568704251276690314250296789611373103912459157524003150283994848186731364987003771421922278554129403674379181373622700353929397695608284914061435514489396035963278741955616511160718841189215420860850768443671388331985522347069582379908853922361227484685080917528648168838092712746433466085877805441322124129730865896004348012347404785964828708840615290262141254217823059178117581621556390870494743691324275062857034662437514720325175777418698849597152528804612281811245638803195837692935001934711197426537457696347594317711063806431804116333609632551827707052282593311060686572792196496542212914466415114406939275342101780868397758389094487284435470433020142925071022345194888921154778482355558373813048914359051213942037883826465849663064481378959321145312531443910000310808531065366807736001397285879135675910810054136569684808135943789801187543478898604592652963068599937283743052461281129676701271631460720369656060378030992100428652208118118234056370163621755022310528798461608976625777464055088159701267076981656103147349071294250584732828692118396972863347057576208131991837906474469490492275047560496140592597625096027744308818911063517063850983650933321500796983892210550781495871980914307927169026068140003232014162763696579363744623553577700604251526022997529432123835630902358153475965620532510381953455989404048854805781056235893497143638868644372572054350621498873949527752811786409900459541717507068829349256959404575784606527329946524285116866110143029929809676486974372486755732343720877036480905939981056027866868863401247068749205697889676198796322692410651705898698713598028589544677167711586291576347337790831816105163789331394180295894476920126819981986108262693669664223829875573830087751859120158371785707237350806496711552715866611906399630512198069653628370268601000585142046410292771212780950199506793553679977115979328425964750583395704721361642534947667800139346806349238075710444203129905332103025573418269481526425262533063918147494083542930059544136237297831237141287434630867752086200521471670858032364218505131109464791140265264168887414291739403650035696130019892425957602034447803796810975129861748383650336879004152768515461469555627121557908444621672684820266438179715534021712599094796490847070462691506281835995943326066525629756858364368296796925652152148936599666748399130554133338669520013919197595426221892505663526616927175335821015268808978796369947820633042101982632060960067101834371800832532913273364293920954474254701584450818099208599258499098946046282502682532853639611570877008685152484838362133900547331948439364051949128329347044543952150886135010432922641191150120640489878552773271823895253393176181736805599347603210545893674307736105530316071063778353638642446670840913256183109107605326164967551279339571333109492485275315794986615248343793465194450200512314345517691180545958169165876499024559089516508777434414811615247108141531655974950694683114534456889838164224245415249471388329964607356950857702330489566865278620163571721476872408715659968607041966984767797122579680486713312652811276241656075763882448869877707279848998135751732209344314621412498603647692898371045747009955954974109747561048017223245596552076767078647027026916892155646760761075166816944475537452967221632298014028909931879883972566421006062212657966687357059744900544256225599711267381173421522765141134283924916100183639290846708654806967603836255176673689094182891519491636783038063699778304644467181274711969979858889747082282411957726122254847299878883676083137065694715546208971593804966801217515423457322326058506152371118810975205426178080779422936719864235533880853425245144169457587241202767979715906997927073715253832402289114714871520178255556901724875616560109649883469060890158958970291043246424559148624330808130676957881230333854860154091490219725433057844670299936675580736353230731407308582884390086864740898417095481973771041848297562077342736672161707095259949391577753912621943591788302578553384938722655381771512316449161335429544125439022716304123512542867928301811960443276632656412332369319859357864244833367556069904731567844086655755335991086837073307046788634308159194019278642208136717170425947346226456081674273416438083941838870219618825614518941417772050461584435851315347811842934820046449499530996897048793106163627052030496725763242629336107300965526374189887254587120060393584760541612213179551244590037985040364396837506284421418247388036197966460067324534424378539823812183718393244985699786798332054931373952335911864914326527492941514819082705817034477696735555041033929439382593674940365661043615113675624398216529471411334734524035517706245241795164282518342018646245278387414122192930783834060470692315389532072030488588599735530869677038104926287481465510265371360370479324977100629075274976447397119899094183986574238284323930125758975332261664709096204286836665770999668106608605636157298074000653036348256006596048703787981796510923710348547002734845758242585609087111218377640787334128025864766197281697545608507523404624859114580113832891502427210370398193771137495503741704227556334081381859529494090734907133488422318404506311096310544888214066907166769835338732470192732682943780990836384066244388661054638888862783608477281081225416075765615806090940477890091174800496168657528329890342342677907118561080822269308017532660819926654237111229493286704785879275929426744400073610684271589095718247752718822182295847207783001021579523880736185567182163426729873613329268507031956296686641200021429952607309461947589298312537207041953164917321724014902103973019236802177938412450116353894460627996843362881834052952517618588712836494194154183933890289515982161400983362392047470864046049785784569991429651811589648766413857401739839360555211841082767148793336234048624120512467255731571181124615959346826471880608067191933277665112525184386897156163691699961632064774582237739806126857828582426664335534888791150788808030702736163745595363434546168876495003420540539693991927202057345796845741674263996846851509865279917900171936278537481773792123701264810517473495417467242747507305377726490081496814176110872281506404042259241533838190616465437384727993754529533771377634033289774308502877269653237476235976238068318094561071933385711608132416230438933027731546339650522866588666450181474550713969377519829222430285779752714001513793955618953608745255553432035613091501682571627049304205270998758053805493911990080034153450993548519878112371138993474991559364214867976666339455886410878276020529556809775219299033696650764987455087701803790019954651690546293292998869388633412723241968237442511744875650443791410661573010322223277711445393607627941569039311249499422214044329077023515956189468610778127414635848320126418786017756537737156551138802966430383385828790087756086656172965918752288081525744258721175762809931836597747163536838746399619535792852450683390201565043593798237814830719425666697447123658237765422078220058200367931673301312791648347152681732513446646520650497000215710503259770989804701634474465520549976264453679499475367335724676649550462420356346301565018967402485062534937812272847795581277692181089410278661244910003559773928097956488115615531537752495751707819611245698449921030647132438002652915404711160327020063606073608774165444747653543839621856139931322755855489280361008274329714091143551365653763976942718652577074580342742654648979574424189610021106552783189745955719850434763073136233672648545634430659629311571669909462204196105403878134642785920702509049164582000493718544070337422598892416629665377845573688626475147429806997425194660086633922837939274641725688885592814078774817031197799143313679579588477670211766228842765789334742261560558628831037234676221864281336483644458546779460626914286875855090031493428532897805356264435759679737917118528465048323882067775241799904952416700813505703855866743912049775263773166155833109175226542190152722579204567360624962697196875849526162919489703017190124091780603284181268132927546788109966194787937011455023624680325841062769908299525786788129488087314332725218764857103022830700464062124736296204456205483628099711867021482809843160163345939220703613144168954264017808707753991212887000074411243823882072374253762507215267501602625453092352453743682760705203697548631674100756645520437782611746751959228935409694857366657512550818782583320816947664529058457643173536639086255025365645580673982732384468133053756905901447889582272879636647211562473279592599382113811972095368319202325508847492124923181159589508540523784073392334457307283549522013306546389756354089203688239840259143272466016525728075027472236050707917313242739942104299731025271341019655841947272950354418181966166317603644104480473526495301453162684038198714448661330377863030864023354726635973202578082942968927595930127706522858603781129818601883845050303617411062686866163326049825240896892853407821134252791621612242405438624472148578052700781714873432990007224870290916866423976822751296860925738001561556783598148740256353802023880931111886752881652138738642279875247457323667435628713785651352826811575870474470127602978562493550324192361022226998234186751679973948591669596150436573575356587595206829061364306256455092359323621085221933921644404100731395111860107063639007391408258932933850645917513456668054977459969241296259054020116295977450362345613832065580286983177472680250608247700734689466934131811628712933514971474384121529950848228053323867060510153503820832192040153859135075511908181955968536105149671515675423179594965244283331526395746044590031485584329163430544256983907030653756114567831265713570188247104611702045628543873491334028873491618264245116409084509525654821491755141133099390225053243453989770449971197470917575251601822012968626963908739408794318225386379853917786071996914887229896211761960046644384412234695407565514659852385899225283183030303451880202593259675785549789832497266290514715499524366895108071920177008153842818718341008421512679562566751033141322809212699392177977672995873847327515765667363151162391191060538052196617115476189160846337220424802254248060133287024348822697665920809639001731679704123362060634493283062136216665926783928006247449170425899532174659889351746046185408558596676779616996924995657791112667673554325109511607475446789293583198154337916098126856070017921874504033819854211815149561442871421223162026344123614434942754750456984804796458405152366686444149543546525893135220030023655523230359779372169133079794870339993793041226778724743990149738469195224749662578924832542690448805852345391883470815564341191787990940621951412193154873998682927057322352345810282646187756488781130748571918278516212050164618670222597779521898975390579592318716292484006041514281816151647268746234717586722964734785650556925969975377751941164740462791473138246221462461586618689105268207393135727135330848181626845266905711908197709838710415365924536401172747009744717766617212311776354684259895303493198056641271440347594382926305048509186294766353557912500007108471934569418070880177275767406200161815337058998725157072768066772305492037999641078625691659737214066121282970200231412345106293648196885436488227120758277280429199044140482851502565922076213060375723314807381370130628234547849707394945509605537488527180500651736416805601000083036517179708621139175295977371234627757322727530821280271127143238511742274539738316740365383307752250757197873347750110249706718641538232668152011455896653982901834584146964829518325488853730422421608359414738719652295835910224167543785360606983259607577628919560146483199499084034625972002904322490107728653724196375079548688823984908675296556835600120140699849167854670706049857169533105077039774483372669636690142567570157958452901022726482337622556393161867169020581098666627072953554715526230088582552621345734720573623432617809008173631112656293932014840446649897624086195306196057616058406582117512120301103342952065254718458022347427321368002605983682333200286210668387135612475750902756281012704838213325992623409341107682969312737137377460912916072419580288629847647783423637014472569484034410254981222524898390619402737171725863238730604991855687186448436670675892720200283869863218265092928491258936688469989477406871658233091769839701552671351931893754930540155075042470201710147254256742233251369847097000211734443632646330921109071421314809094983789144971767483007212361584187461709593483398751802293247996105636138173316639237415490491780983372618557832803507007568457165910772543040810340349298023495321714735377669336838547014149261300598722612432243898375185672289051779338203116653126529655986268358763935292488379567124485645146341546485317293472432231193990508314657093712490710055211066257240504743609682473641078792997836748824712091420927505169983636602674741705350274385764506837904308337337589757696604925596914513252395862281063764213161516547047374854300345700768988010242911063977171440677305263671717224699659950862212466146457158192616665175283785540158077975780019635526991847262669382478264871521216893433022661030378546581397778493104626541895728080218364248527156148684797976815191053492574499172687937664553299723029762285236773695988603302171545781467025479163258815587464498419858515616497146403075672275050482818088195697732069946433914846785258355554831928020851057408725214468998934097461177655396628966178024365852596923008791580762296568408102747612856316866564681280491658366752511469734708346723433449087216822293022748633144562794336327352747696493045446279356748101164089755833373644658046902608699102632967003759510011576390596770121726035459876629268382381360769773788255654374120280093754317039759151908597566679849278776401745381446900436995339014144338529937494143824654068512754685873113678381631150148926732368207588903825043874693339062308247431275275268276529136329911939569907527907949796200239269980020356418936688412764517427369139249997152151636144117369608220573573239669429449676368787288870796991261333535245835406297140365088617354674492563643331783441559638263694663478635943397905363538383439451927850605940150102262140072248461763752843854349596160809465063471276498421059082055429489293004317700211863234874955019890848465561480104761354454909797751283280015178046417308772927769711547708539465308923716256552049578060732326182897132534148051411125792912571588726094829342008701142436890428064496805572210519855337736526023727290403967425523632139262153277845846950977243837697331953881227901514058761128041974672346676890593520944214859079726679093154248545760954596719920996595405792317123747822422821838757883888748596910931011780035046480587438146067868663786842048749401801071604255971862051532611345892497674066889763036669647650495134846712460259951334516218717526696728573048654221266548153501704228177073301234170959868250629840108815552210056095965437420891830229534629786861792820508096461461227369914922284509094597976394757491468270905368518990351113032475233551352754503158240829645826851480795484144358599263376894307781971425261925390147458907021891385209646543829034455531209355135772287655158605864657777086238319563813436418231480375074196622612359031799503019929557074787900008247379542055456723248117695772839398509179338815796234555333208459866875351266813515601871410142062548624171710878034354728718278276603123504117934064462278078433019401912007128841910442506087570095465653206241129368466923688978428494241794788240120976257769861089914284879122929804655894102303670372372101709705704836090504962714325774169547268452228352418696578486535358658893186604443064492403106215962089677147676270636327027989077161869839973844068628070682005464511674930084166510847005900359197583962272333013055048749638926959536755403180349268059559787058483841831510608461574909694954325932547619539256754551207485956215521595720858910186302201025950429117994161991346440683345498098387854553648464489607745940108876245373381509498448066059945762410957298516465626882237796418759075833361139256312813744572080094997240138091074617000364020790643515283861010542736209516170130169452999723783479362624721513526799001802197532574701071752423347975967159003787764481696290583931197490800770733707540392798318387684869015867580536663366151379516379063661206905282451875579986751892598149471946814612907426548348413656031540347689714238102588466644503158704897724711951178433370090932298911534321875010152059619759521906273954085406028483909318173966881428224554418242357491617985937441478032283082342652511721133527060933528354387220155562840188971071258359943242788725517497032255863583611115746033930829045590772397208717124075875704759356612281036459134251993450318803051849110841970886004488508707198854365958677770756640262446687990299506466411139427502730358650375521659139642067774048594395952039900994051505877052917711785587476724564504035782542963402067383507317753401336410698129383737393829291897735758484284405727603599227939949867335789824784678442137246878424206115884181161703808832178705975181026881189381218297582952644586478255999894504979368448682243973344771918882376903874553010737242615642027198194455484220229658417212569046835621720490300393471518304867041173089618355977405553756390824457087381800749460076505840832473910164076810810715023722353799706311804919279973817571004813052985649046417571756138812496900282186411495898847224405056424110766263986557894023443996122097554425261515011299658324096113451161328544311519625224405272584849096520009235885333325798133637616619604018275447806271532745556229766012400808474220858334009960949754539471958677489271913351834535942590272686445144406727689825260479956928622028076563043373624504864676501800600335947641564553342540468244110934139302172882633493880302919334853508208291981701842876551180232393718657556420049697813229210658043701027593632629190391366673358097242245205477851158121074173416934474115242627662722297321803808313751358105910704695937561902452050911591638380878571692246685375496458602713639346301140559508580107589223328751517404682736896136341573209231926136449272490794479473778882294737814557270031676971143922802585412131636722579503888602887177377183295004706360022599954721113391426834039347128561729044973475649651634979350585440591571214642264566896966582701107477178815296750490969419831117156867631501939045689565399003005986239098181735142844190709306653148726993911380771337025938347441661669436641833329780160388540508832683600450336340023372971445712024181500587504386093942561057620306857791392701947225716445524144437338303249560399931988670327114029268005714956439027276830308229626472858006923643498799097913954859664709556633035317064924335209589956312040474160311939620142450846893494162373478229785925309896686071681522304716726914461027365079640759598259130235598689059177673885660093443249113134638555179835922363716422275050936785529120530193587762015720499884068273695652888434269981940105356938072985999677819858994641474417779437663853758542906234005930374078806518821248698911509631164149293131500435521306060655053866469647992905672806798752886805394204006173582992907104491954273155743255683993693692205914896162521558956339608968817264828186896289050910226463231123470122503809733192650364431658819489951244007835786032265048897241366613472293314198684243667808635966434224009277131121333136044096251064976815580327958573852720957936766108745720647102321179098069564244099848798517712420408435880781106974854645361171777693299191401988078610610037922883223798525366400958407068927083092019567216128128448628488534722406997918069192474672113270794855370646321853612364127985244927257564634975048091398048718943285463076639080311179816099204052648371447826456075355857951800755936456781069482874664029271887317604202118822082226015280783993435821677482076018510713341496394669125882431705597013122713263806140893321780539059679193126540221821799695217189591230447896326160218261534071589804123549338395001823089815602718175431844867596832081292086667149160496289078600115400786482603285346712695440448310891414310742574033554779470564518426690503634215339193824900365560804130795814840049134602333921388790063737845118319878327303550551564634423798662997084554031320135292049845485368057141164197220171234593220474738858506663866601146292469709556268814970089493331435962444587804343588390036376182512265792482963980403070618197389041863810634549272393643034158113032252697586474707688664541813000970687096271093215989573821165920092443903508176800634307476325638478337147134071822659029465193130191160175787330725411839298665161715856648420464838355386126346502004498687540428637656697009833920543296647407173658232050538682644699779999317068458823915672966539614735627964133179330613161360131386445644558711759787693448082190909477038225069699704018425513246004652840504201852341680515952249165491357469818387075731303113616830557036950502198863189792954855729235676633420806855543472365551948074758718292242924617664445447101951274442045745323526178650560355140293006182278626126179441108023224823712065466797032902421064420040804287599765964020503191118424668462595349874949734780036753895066526490807982768211107623711653465690152793401272087746560077827191983686348868760835528089708711028704885561824839557867386334201030950357647585566883265380758105243486014548529101488020108258295029604647398117739354598624965335238413440553194921197627485452137697900393438721121612295160167376609914311441761416380376394005813571207404233492461320557894799388784928162040294198554011172654917483633214950796088564498618502917963695784232440564145155161308010134555676642364414414742157331470575374726342502911655147670454518866145110596921666539639435723528416957937904473784796298382149444047780024970662950592591968558348547005292037541986544019806958373844021304114904818853400988102448326911423295122909602677137976699639545252529233392904045355512935228127172370055761345157328419328716077207776694707898082127731456841824803411532133462672294580675958582336253896734472914259629487487378513546160734976888697253999374008611710654025811370026663921506635464820267653753911014898820649477196394767056483338358110913865717423368555148950903845793321019493470562054810348338890076670144639942409247591910916798772978822183005035840983986499718442827267428112035813095707949250831729416547501427829513724561522903143846178254482845994078503193162911708277053566719899041447245824560160573384706748498267145067904666900653466158029430504429439899017717107155123828891356457681185565105943545784340486912284852174049446547947857153096587280359002304678724900789460958374480106719762084215847856275776122670801051894818658984371745857571280091539056215854169687042455500809108036658952025096635525947158559625570392543194641613919466973284818896525644123312957658909295181913341786597739858264837178788704855486138084604427568991894394165900769968727286200332119056909457281137440395423970797948564376306939785551949386195786069892359722245637477456241483654318305951984405965686783673509909303463455044584629100268321308911293054729843268885920227134041352221658323595505956111286103867744270966132478782429127456819720061376102740295414672400328792503690609977132135852154692271710778638710478635179751223886870443670289480134540085074221659048780011221805744009139737717661151145016878995578770834908463013452672640984185896631758312698135631451365791783220407112943234621354081903923583683523889471522620419738263538551408928232550745839022110504679020225344923099529586240071886982982939486085645314894606440213996927873924770195216549683760155638682458657276065248526493981652541543529039385387120930145358001589747809358051334589600900824920374917007153487760148384375315075450509302903422549462018353389964619355645121661235482303047729947073032087149119451094886205210373624800921494537765988855572987958501099008305364503633520144054236020338097409540096848789226118283332387473944428420762731215180595142693813920196056990140949322281298582887201237657130023703747115881320975017865400654596048412938289865651949658550586798924981652735390423867708174778376422453663991481270879215869192909480920665171069471901059387512915358813767455459470291839769940888168151615743009024365843268638441339149046489608262809578347109978466401670968785844089015443262463418969727483130744185293636545799453903593369885227589901777614624149705971490605612869309879188781573034128509699589711890260695789735522957680291415431938627609482362580569930387121234478536454080852882526207561094969174714217173920866052978985303120640956494713849180010394665396346781241846363465184685237864161529112917525250930890757767544785684995196306700816264308383806209564384050440751479470660702622031947060307136561919262276752575078494330935905439982757975373519160969114370788707604443437124961389307284025910501306394837358527131832409878624508999531897524877902387098169030606217619791222789970409397074663241209440387485509292514667495835286714785577638665424728517801528455075934944470500301920077006196541147105472907627000185696698042150249577884250179872019627545679776459798293285196422028070372775150783460459942647201538014577029787968394959078905187473616037485284628542231737919089052588084501217648199744056171702662304541388898300846301224420916682362490205134512657870058496894414993983637394651952068684610048522779802841966156132174088567588561289006267314710527654281589646955909153408225584199828439953955794508050758203529323028352342506387430924177537459910823729098743078686654840500425075403003638415854651763588774809486126793320273518804024744124084585034298473848814391735890093986979954579826623234286792734511381261139299676568161386075309154680346759054403287962238482056777122628695633406791722328876524893198107757391137137917675140683427800270970867798563691138391290033592450283982787613553431740608641131922559322133943918839881778759291187160668615797937476770581982185792370424421324948075728661420924185167392893232357240858060967528662060672717255016996352141748538789774919777556292221358026491343161655267339778948353319378666403206284017391998129995373261765442391566614352948259812944415298449230835123695594146648926862930880435757905296840904059271800023677812723234477056677218839085043709708342582783986302893593771670949992650725125672578616649456771620720227600344369951285607179052753667823044144578735073757972801205939078311165288609086921114826769516164497590107312679228718729475783523165365420091713204778008091145001486544568996037608074881085397329426871438274732252502700834223575096565768556607540643871231720339006988041011620443231777827764198689783008642444434818778032508308442279345942400552382727111091925682550516003822609285320878613712830227500206960069778046501453955099111957372771820942547193319711914753180476510989544718731445574508473201344965244267908917731280866575464192746669090272224067382600007599780835903543131164677178482251687614755877458392204572683491356769910740363160958280034594226130402900364369961458374606128198902852824215927514924644290345908410660709582372588946219585049567742616285228972463339248681544190471212521191704508079977693078710559326280743911739326154079906357411822558337118670027920661093709447952059915933489436457346498129606748190524046496215140006476974548238857757826628589915006585956931317125303369604833390480194813066033704409748131117870100531497961722951625813324154515453822212514744230248156840888880546410849847050661251832039456514344685854890574761890941043082127454772864586353929551329076540512894176103727702242498437830580323484575759785141749160433071519413183872389145442508068281391519282005024142640848411843128676065850789536915119044188445824210369141604615991869632612077041621071513221314099674355022449063614454035913205834010946373294931860150823694580050485612110940237025087027297140045578803964144660414296188259480865804084726983567054406983173008846799053167251448546644009701632398633560398722902572950833133589278624268263774130520093359882351138896091976450128366873026715751499468846763016729038260855364427291718729458890698513735385040547427748470516826507641496103990952580035281048808244719128955982299625390320949777601333433324856068032403797681752343960279827085754542373511074082058821772329980182857042426870515419491365588654207416478775032110320139979304551484363310925617645708059490670266493196391324405848798859241877348639002459090952389252895441559191039090913421711252023391363291666263061847669393309274122627914817367930766016550915209843731684413470246147040531186992884719219138471569494996247764550381082731875141631255793979192526193249967004642655323161232995621642792127637194745465823109391320536573711120753466684530675973320933011164379503448286040567600011878729724373379731728295857523942777000099914760210479570301120575113892837687298196840011581048897325926946475056717196321267076879244060060788261354476065838319439858725020423447793677597760887039564859864513560300995345685691635457426962114265852736523308258112734054076089119693142510784823916668436855159145009787729592430108682644443830790695782610002276853143684753284600363654835427817374930709897238709847876073502527001844325724691611277266518755556842542281412624917082588610951703133035222278322858782324959246800277433767647336622992108217418389549445929277835078905225327021029432038042868130328722912326713121559553373458246145938353185075116647290470264835037158662178212555373472525399425989126985571262497454466660139434761716952711186878249973882087470825778597688230753361227706126012181930896652120275198353343620134743305735422389241604871480996419580752198981706782069120414890927156826301266517925312192995489454590221071369657497376889136007427583243026308552756939059891627688187914137697785222464097365270413310083235210584821441541463274355690625091611915489414340141588749684930440812072904146813101583964153315252039054792312258902228533074991278525731367098600946850934366313980065376198487389266162313321428262237560456804126382277589450791194520793068660277027776225681815739227592097770398638985278698482042843364643816964268246972598449966978319609505275702156507179963240870003393720486613104518881952112565504878527274958256177908257336405519157082055983136262797970296045666829515948314363764998316591841854711180266461611303852422473148462155462553621157364549356070349584633095240710693886395247613720107946235238287155751967027982119868683053259328385041568102114119351578085469040100508219035393056868428813639452214701697611631137668820412663459889927358668844957381710685549013873468793819429829740141432558232336958128666876922005884008690763267741949174739208357735282625253786256858267422869998977377304495528426893854867808684578808242528524144072573630205660331359618100997814433249215090505616489633202116989025373825824044745365724600863018001005705513079611904217327139190464232400924032362760071660249918360508977162952540758924991156988572682253516546316432897973533712564373978666675210655388068587047749228705587957108011397876346680490127146845560228383447472025750283096065725612959118798089943791079907865925207784202508178014940727089841132166046732030251212595008167673236196258149259398730915216417710284173824537049942916459754416786138161123265438719275380655138823907059028964922436643108601149521621855028286379948849894506587173275585014642205697260221794853990603630418318281293932552829198920620444636914253273260385921770230972373756551259658995244022340970858440957174080376027672207252169588282707908397402070497595559119329139567524212973879072610838447737001470293213641332187755046538040026980708474922699082866722947866754052072728813933606922251382007672926612076721468621849503931094154429085547060033344563228698326488520387151260273787080514682517692088585597971281011535886173992814549131623386103158922195678852337630680409338982863544636582876069532774001124377343280967923620948246944541563795277752045097478330862372193494389416260633345628575498239401397862714156991137943629732345817095628510219827380094320132864516468858711391968224190455862666220785920558927470324264748334145981365031339974554949641199171926448490524019278282892579558146704260691678382027162875826450347415278516524064822638067066944845727659481452462543841249338383383184465318896570490137604918729457482801402402726319760193819812494873087587991168026700139397530311457878262957654711014405373804546265509492851521337410330786820388210411560465757812676594590019193759223216265711550553503763370507339193064139708421682155414380950281240660233717855659007733112174492617396850793048440762636074298772968068281128946726278490352795280288446929645289136001811038720257665674533247660735398996771913812786768308664261127388411194849977189500775103814001068918258373497689757965092072287244441059483582933107450091004120967085626063059563127931731858103265801574706232249119462252482036762027749412479109902173318229406919325101969973988086423118690483021352919733066845730595642395351396209150822554242314260823543265703535083383203691865032533453704908439712196139012070695433915057050858512846933219510561590306160497073915939786885023086597014355028016268261599372496097435983891744949146841535540611059682613648150785908450199366859571031609944732345868263580468961855481268113871192578972500223623127953983153824954983497344969569747683924535153432536654621604996976274560765133503971378395945208992122946160164461508451764513927126249933311490229165565753153680777592522271480066049840565184839145857542006329155277746883758381687021784858612074305039967776710788556274536999424127229432327629146676531811203910691272612130990221511793364789289627711888957103019980591747468618507815516649647666944553214891038174186013408028760752181921531500059709828631581961109249863830264981437146910148951493134992129627935914294911795790651896812968327640511018209341959219016871573209864375863574139407667548858016657462869265322103033808798415445442737417769162582500920838637741610580960160049876679832445236668231743809662051521872641947836892370758824563212648547839452905045005258103348932953115669307675103049456270897365197341821947926180708873969770729557742464726948163466719075517461774939459191770551649705202217676002232866800975010399336802976437442823366379257818290098539538256475871163196216461255897780645192132177389237566276826407900432887946769300325019422425932792203118007240786059156376434738861903734169697239414138494309908539441064104004500272504075495006220912618299975285457842571847403119714169739058012176718454096538571074628681665695267386826777377202514731748520997785735487341165363447619508137270440804842029140845694711808022463228565623202202207122701518251166805404069233501262379367660709744357909009793206640735948645801937013796343352307289806332659949330709950447722355165761422180142463951196809887527158258141970294215573062936358062493886657038529352281341291078009065904146774070603299139559715766056379568316745470609063281415871079309027246428437735696944531807682276747864603356140208705586132008621338612376266072536979995310218801580833249995220188572552729099079510468818231949153761081832184492806836067227937270423688692528115239245722606635932547200838485515258403088874393773015625171765185146918453973548713828146710933855483309281750636478095362310412841948253588692644294620825736906064466772139793036154297091961501221857580320121296858003594407317337336899964120953117286353588409906691427901946172053770432093332965216144039028500239513977168490137498632430577049070350797247566700543655991290960317314356047560050310074633416111333971903018970859743406884393675169079355610292147380349137207413908122155531117252495741909075093218609952712071439548712735785948957222650750779824039075022310507375625841264006757371401262573722090505208730694381956033677333490974144734549512608947698268484219760964847715562728712792348992414868249089332993956464653146633881977950283350038723708392697360402026673200329270938410680142218714449760571577869762449131192372597711464926647385809191065515389690089267336445009848976742404556952076807452349492337865731891764867267022325153857072470572038983321046801333800494180665226148563438573976432340989794156559984901269185991886428441522949696410597658244062625278731702792573385728661021806208194024167708740792450499107828721660079831743820743702974963818812721496115978066649503495247744526957700922070998824369934209005669875623744535573672982690355027382584264997861668127480438102246157160555218110552393831787869439848803795465344699583915725150926778708663149193775643661233934516557700556864088113463316761281865525160011248531641031804910015554847943373156714184796592295943523997502040532261301077811825733672038652308392414249125289602628892963596522733082030934336439347957692261148122909247571846418436765008683704558388060751651758875825051866611726260879019171290669713886201416935215709525491806251846866824279607407667309263464764282544803223464358745808906562433844774724247713375897571566614485836320006997621751054688584981573219186354361236377175944027596885176822880330519626303909586505338883323183949197658553692196874452203245771478885131661198279425927236790285146594809364493567485294659032076130950606940806345999624817528185243606474495938070674849388832449277694096740312119026228159994151998318149960240061437603285955008837930114635454549991716620926854767450146549610203929564251437889523968703476107482705218792872282220650062924066669946931176879919379559689324973802458083818076486540066335228976772610926513917886753450406613743226855302572435528700410814014470820155919055044767469674476049884398837218761646910243502448514446795830320600012753552302352186776707897837946008532958510608397895157727184488562295040894166278073263836077241211714246002467938604119000482203769015236611181120524412228370251051665361538654350617650417198084491483982764763989310743360036744966746694409467699738540767917671717802256037737904974382982914087948456160147529617575862897869489743378937700961752885607298947678591167827533717128546400362036117060715489117901674547489340085425547061270645938623100914521963751027375163624538028951203219026180024928915390397698178501348309380277780134439353303282191362684454284003962179982699660467786039304047505839314385732283228093559749792156064357331861518465176252978161640037264298303139530563113894621391971980027896358819444157664641321139167808120909695616825088855615691331344730804461403488961502473376920994811129812543061229977792235084550143994095554462626199309052553237084113325115851161326480812252499480146795053597301852474956884051086096125252539145921393035510407323876847823847831538700974040876157798308812134225344355319034046920657385965602915231981797425365012750392393437809272672608422140177797362472087191090617206117507554289588612589349415742615066825766879072630696788201612166312278247870715687039045564270070181609452956588937932516569558799115229386951379160418746741984533261320931795745840077617084681664789684785963621663841695791854973425880647944977070807946588767896426027603381004445253901204927224896865039958680091007648860204835077933808426345302130415493451775424198375856234929361109691947279491237862512360490858830192415190333957573760036051269432600226040310872326262944869433570568397446657529727445376016815962503963476643820416875093891611553760317700239912840805768450065500855410933465857954085306886882606325880122321650015869884360868542342722323222790612240073100308426154605879942347536330886123744348534026378535235400983110489158917322168068042631940870888138038141068767833162015796374694454776545207668540428444700681031097551901846777363841419354315936921571893914954426724907383803881097500311191391948538584108666379496645024737783532231373697513658869550869325086361052094180424813291199277398272794921314962290290321281893758877960780840991602124541797390212988751877834586805926964774595812186650039998510348834090365197589370480503701414987795206910484719991554810725269053532127064218407287002011427691084238667015947701154020636983226955819525722990463775589224185225609856213801352329501711133095510819305865708803207371704838442072496003730084642820826025923064372786960489651336976441278403244138892976116322559669702165299063997112269594857627082168654261920185572567272274835485472641139452557452163051729991605171254458893670350834599892687274410762263857226930167479090586050220286263311421760920981603120834654872525421493977869219905643800168024307062966773934622122248494716578117077916799817427044606233735922895035551639964705480529683876858218469703405683122511461427587037390514817073508365094441564238615274415975959885630153743667352358855148306165859861117851997148119004454248952475156620044142793660016661979125061835257048810064439380905754224908929716706064682373802520741933095171911990184298411214964497821564768452077452173380379700731207002965601078443882285987769889576652788368470652509148387296636889183859600965637330069241468224374776024891577460719256980095634659841013574145343561975932343501873165952094009461502363035763195109324414008867074161961263188074447016982409026604969419145278928660893030482550457207131548838437275642665082515078944993542856375078250024244434595924715226169208511029388580108115577182342502410326021205220493388163009912099738412500723626487630555394696672629390151067711190648103364644927394781029000111746286623691661997595755224845206593509492091384222234186754198057301735160905396529771801820582065973665094003257707370827101422478326364309879765527701191568576398204433035660286276912920868693280054034223550698364469174480966489141436984995753027541828368533405320457490971368183993301970330829416246233781160192688507760441274487523741068886306563484727170876046770446303164457609472651908324242112653322726436053429780337404564240762148324018002682132264751967317551959874902612586812874597348388864994108419640895487618123768743071176267656932987963791335239632116905020496422246352539130241938341737620547820758322155428499273597559938536771111330039891079216619249255657504700940745257303501978604195628994749082967610368586624589215082033471401818797818124237287889019456878573369912625183401139962779946470683196407994359925970417967652058821569975208139377115909774500413113053409512812870415728311328119771339279099957903311900364191294407724278458558493055893820518132310238942268602518896994102781281665571526092887889032868233648706373220728517756403359382690062376578166588011803631719635137432440229254029477181117313122365322685604860563748340419835961678173207370373461825700128630039899113383854459132420260635470085157223335455879518473787601354363380146913019987715370872943443296369662850688104640690485501268670331035444700080070171633408545342512396289112195110454380114845346578507537154681529452730384786501305855464029703736472878526631598485409580397816370112775302055968115116052759504535170045162961646425733749758322373186724403290617190650205641710567590790269639023835857829002198293608062352337256140450655169773206362391229964969800216642651809915226338327654711281320070488025678434186695991778535030934385244210966252450643236685129349633100674412148164826112305973733096481267426493456419987685781762454972651077414458107004971825795367666701343587236533315062707718365946853223977127150119708273038181405396453587729781087502567596668843782908550710464362337013077528375980604942317959494147861418238968398470675710849137325112384543073507817216205678199894060613781786117641659985552729435250955503296785230242008267670051320345622031249731753677643678724088025010407117023309896709264947914613296495863872702635040531471154099505013749677319394252783055354382566983428811481474093748699314992651873428081050496492259784727103327751465654017495899138433292349320882429801062515338844876502958835634983449080155845791414626803323400149797303125930560811632987565632608687482836627409196573743974384288909012081044386901122874186072124431062782407315605598826648913352010373024740553646448428915949125782672100469475368517304820129023790829653601502208047843774860563142263169137214171627306228399914930556671009002543721366998716352931033213851812859052460618729494424154885496081113001312707422885808660135687647119512008548577526571341870889045245373489958782579447365189294919862349288163228903397625062532472993696608242499018955133249135947658595974513606895982002657081893480552726408307143520434443495342552561636934641802943182394885987458214147678751520609529507247006342290549324663571398267614504594487850856186968098065835052254197902202783200222958510836708658954678913197935945243345933942824730408763750880716932058578648440610455912270425841434760692553054651815928371199013099400135102921314345760927075863924416882607068952797883266364662159783452689430684584763369638131789207629105157751700997687571345566507027018889788007584351695977250110059847288903548191810492285266223574431443786452867293492988576208856129605938645896893694592121985738492223168042582964619746015285888115299994420560496568629461129186891176309612728952768667157793662692565983353648762998709577662879247835090436454075294376807130126378692611434102152641514375178909875670362705169554043153059584296492859143779967613053344311476579598760950040208732377880561221140186494513922725691064580601138601998731244357414810464803600943515810331118138937896954663578723889448446311371226913234603266742199664112829991829247360230085063877488458049014480616046977778670998864352730419718749196440969869548276033921905467387056117735609811483428217350696286217855890186141562981910949700238190113324393586101164704306022144431376061000078230823837914678207051697678941018059703370214268367068938199531136366911923903632764714005461958275264685024367066020187132268837002053144628119195569868359144882915396554514225152409147435418685968869663153429733121521133659839749899554318849196801301770240131758506671977911926852331011262391406363733180877534967156054267082275194739402418457159055308495291642678095147396827113279876049892075665017087120868120819734587736674137715795814456539449707216748302539839966074292520514035680315766540486041918247341160772185332138828205283707449374393461604376459661919877249222930827521555559321836155535696913155034530121848350158540530342813762897472927104378374370722944886006182654243368857463125748165394587906866760809679010981353019111681451619363133744531240967929718429615230387134599016580366712547789468166985826704152588299761527012665247209283634170267882942038630381996643614127890126546309989222276867882778855362891707552757581612163139623283285887810276647016606017744617964203054636425245470932816275526178999149053445456333557893977920517573971459585178842233850186713387044702470354927976913388062183777307715460010487243312406197641326013841677976670705014057620637290649685827060197987090415964115381634489091501919493010520915232276141147598366307954365799671299709491401311180767371500627117487112237009810424576393136559513452426475828374559001708665502387892934524188290182651084618915992843396647927729642186830806330096724331319216776882698503629372286407978840750561519843561279975074107875582196928317259550914639745473031089402923375996041739920659378833824327240058155255484904007953145399444990692447150944008617598046089278290800246920303611119900976581141014459257365952593580253040845348327103463663111803042217997601916876797088280663019708792356279616863843772812032361628660542816393412655557656851124644138383268533678137068811935384845248088149170040410435308300143844110400523728382754536317781405444116652480998025105195909314632066362031108125297381288706990623147298851006493758212555814384826218883290446844324983336408280908240799783197251235408022459772364521655167765189987469675621619107048364927172004291521755187640910034141700848857405730596247630927555005815970978786302408284473617882234503606676112854647371118042221356815873630613532307236646479697510979200374725512375062477324255597191290882489797789257205414507560468221888522808877295901113698945847293409767433824905104121089931674275260915248194123142365871866817642700988613365896083529835557637342954625253107875827940634331933925598196643046740691580900422429572688076724267897608436626764041407547205244067542892442570203211058685447028878630341387560682694318437334010503939641573866499536427363900673709223690094093301110110900802766356134856949647322436857231483754672052192914508454708294864726979237816941469579661128231174879270866309543576268359613381218480214656753081852330810170595383135418870820113508585126324640352209601817748551889703419190878893322924984815858721504788456659246832306531887100688168619477969187365410458695473227966339277188625055054073172410618641977233243147388308065158468379122834680543584392574371684981324865070494601001912499932495817800479060222171621409844156931666701203675105559419004078317547550221365722327602548562090181555817485986995440810420281967159988772401447369593070311577608607489468230946586336091171937452358163690889481230666373902768062520664298799809822692934300890285984681254066261583493373321665461830088311084468862205462321876377891355021912106602248772435553939966305710101281558177730443648192843975354030563628469284435656168137728200207631323094915168310234229561982604415081641833123227262422497637529435503870994731044475826894413519606003285319178582672134743872089218407361541513456543217756991944151475012745120656509496286499024080230938728217476092317714591356741746554717530042777348901411563040951090105084263071075127702704261580840586247076868063744580018040405493658359517227066178588164471779722468556887608288599984635942166049845063741964027436102845790130355858992895653155381523148774574694637958498208416227413965765822178582135300195847635968016545424807493330364684372541695866046850038619916386224299030253498625808666215730047505243519438285592232763500091253877866017324916393453257693480256148521222943368422972781741638494245066096979970909651016758584873493411960553170130654614986298905340356258952138270058675947207400842786149169745278193092541895771690112379210891354059869943388004938807676283558144712230349138997388476319111779223144855063516266156322137218557897471131230551583368083776440857384936660650066951749365784448123382778092591841639516339775504083308076861170238392110943886180571088505539344196183241386308955804763718090876760872312818149084315224843281539071947446004195697747862135882870218993713869009281114119653989273036204012743219378107701164714409494531762035030070336124481834770279497408968493080973045822272104948755269810990282890527768068298649322092409634756780475619712565939356596707701009327872929831995656719367889298885415357201495180323163564751981301877708935111492209737792182005413919542856603821933105720263630065803712361975619457715938577792829429236003866116014370453780470941879788560712234349708755746204344305980189382649300353569722197218753741118249956862452533764052131369142125406693862882624597688259251695742235110243601502100107220540934469085174344656502666415142619965180524885246472200760844034894566257503860771296271858187098656014630677550870502267967731186290789652955616699880281834837649418539123772150959463240798013419922302593430517439703307741088016608445963708534702598118299541003116294619941208724255484237986144232689567203403688494193725380192112459830438842632494756405232501720787294990742512631355406603592174549558714219825711207178138519818030448673799849396755245284928601842905500210983016777267144208284859807984636550466713854671696795014913060071311349550288139685151869890111012758009734670070083392728587299631531791495534934827505323914832032130173793927087399721740344350620587147787974387313404371186507248863880933245029764031468551860591642319345786327201872039799607127325148675211240941921843262162582004940850184696495083319931255164629259818792797503848865264530282020835659977095640089284508341364338242959798661894423855091419120441452520499616819268288145646056454904439641881094469105242849380963844597709472760332442692741797995884790105561753278991955595494815151018032149427723459283454945259653485109175596709849833960423297726235986229016293308039101427918842452248533776075893956421977156187507665737115746969111942596686170700755545710785447454769179343402361774795285988784521373173798796906856472179071143918848451570659031382924776673986121069471063328379400660932804187814777793372328331068883412671615074522172414327416807482355140241576872823247155817743399517729256752422960694872799611669762402464882589875614201207793255516239276926630961412793546524490988891009961916968261868955117423870524495509932141969995679956919977215365198147248336785626331317713454344102077679807059993137168667091091110528771686993315070320156628844741479892239886136593848928352947637883262828787062028846243221734526539321659372228226331051257160857291905968101441787034002495451051975035756932735524818756729023595982875849079629598417007916806325515458568752579779925119592667228250549283668438932110440656644354779315858848665200952315881435431212060405859495103888513996783821245348985947628757986407391085222287283643644804320477632421554246433324919713833339419926898891490250125733775365059735042200944082939530897031969521089821210834428574768066489772020931868805179415993190993517296840060000875226577113733778078608159966375624681570767355148877990202586474873548079266448373119874397910602901415424628520331687850100414997940983160588557214174507602103086325003193744780346225236985818338389918756788231547458228795598830576924106481383418219233778405557383638831708355251564989052569645794923608406677681147979420740408113771890178925708237754223340071602694854969670708565182855486961260080465263914960348220283230825112632440493225559342755843107151374262055240056138767291082860315900673004956890966052426164025495926123493637334533149703409924348293957257149886208351343797577666007930750806784108947144116679299704423340143580109502200348710736787553177565102760407581938953366384940053777703511217696798245089954752648452848058161142108358052696927347504473058104849008568531839609216324061767702251026248310074723179473172075966384666072284577872531779722059591765759092059132675239020555037065666814844246970076475415621877214206115036782698626226014469917413157730813229403135200310620590100030511304937719255596641681312869840177008778991419179110795978770496344209055407490215785749661818983658260165307408848065480446878140680515468761658959356562429525978916556164838228555007032532413716900226289736854267044536168389441868923953210559374909986606853027205065663889622915265232864334508486541252866976210439941536745120184326459534350810165692278908339504004545158439699687381039982546266703626970593624307426004681589204214591516626081991265280865684159834950105388263013220456715302734349106752513765272474676453640810077943469054738427177872328941298599296985773015534156350171952991026680348662765861979755014539669237588357024512789649560022564641204877804020848142525758625887411182308269009462754823691301792856068687929525581836260392399300118804586734393850574707598171599169673977288253769014492322053730368289548269810152446632272038344967654182603082497716991171482909320137038268038543751062478190262690764266648285451354550641379643240317373809331115674517549309574035039138632903261315855545869673268743945652438375167998759367205418410631027615775660256743782033441498292356966232420063590909522403322078224629247410657161599739593187971698081822314452757118850253985584940198416959666750834504053534301292855744954908400786205179175759221643898589782895697589139307007139990604468625575378471934380284231769005940247251185999364023540430895438416997822915476497983421422005993935855066519204012938098511619422938371975913620913490735531028902100186332370071476415203815947824980653940021220556303553104298240231776449113819437727047962137731707145192237999876039042717430785426465576866340694897069979802795612050376315430353613779232377068337414035950057456097821724507380056236721467321127664253249013051006051655678008296634496814469082292877191487618648552443333754113072836489005493458679012032151931335771601693174405037629170755514944231645797712732203760224505461533345920345294411892202738974994702509519800904384716846660979201715392652498948739821610945343440158250884195494894892399356072362174031184573972381355692810912828148387248260765995380933394949779744856752258070401367064111089802615539215369290524778634936829371727251054397114763730400705222465813211524846853758622913201045900103795272459858685257122146357485410405130318906727661802933113301035244157154984422966935307811401045993394469310096974583699083079489814036521126285703172050942661860175076962161868467952096836658428775157291307599971477820072041999197121199712780434061944278313082215939128801928651411732241333031786225852333157963617953542669978761722868047073020793877191502441557477489259453197691794030376554279416953992468337893635991634981047402462830910930897852216793129480161141587072751900075105230620108629126301460815366015705089703796638534799936813857477319251916444145564403556894019485162058629470486678191741379735666295670047617250784944078296446476541603713905322148361309712747528231885895723382168039280585407974398601158171997114771283661577647455293071057500831808914298400842281503042433777401973502914541123035496069868887236905708803786751372237720522790606974806987158665878211895152030426638473362850464812580439977473974420683213750730694739649185439147772891414574260207811244111624735749291382002272858795717521596747398977041546614700922023064473405126393918898711718282307386339417230651653238730846384346701714986629370891769850349051057837367756680550513143509261246725119955685348868288229753157044186792286758363820834216148312031618972917598368952659490748322690826644705510706778230916793469536895926280175311461954498624980832126194370971509555181323411491760915973053474944456189064001235756683401711986968381639364179129830266756563573706824904899341608648449623730224060078348513147221909416610713481905379686959408987921160178720102744933248826585372714151746687767523430931702475336478968880507892776369782082224131717308121518612711873388118120540895433797725841497750539795124278996345010808778444849596980978313693018398639636663551238307175228318660624906040108302263588984767386613091144265395667297048074772184501635903525501692873984153142124427605337198588050891068351057955004341061363762007083274515978742294188384989200029282924087895584304873841217634666749448025958326556086208221212598818474595707177127487697149857154880911132228425272618661382747513505867564447469358146803610500846397964076624681677091307134293541209899989669726173549232986562409413656311933564067059646942574170465777428325310206672188645242012758018781399008095790655247260232816465452777748640576426958902452290513326181124360877984544410303417947816100367593014649720255119555679114890158009148427479210139126904321045162254539973757029462586532849248116939576455811582745343491324107898321053933193685425552863784859697102662420707642841001124433656114570792244728902241245308584807676755248686342317167129826379976833913787052908401479246508479472861083568339415512209796900330776905215531417947112577842584077519279626162966460963691435767169230055762113979433467072935211579360732726359761978894634239376411107346002323686467155394637803763687579853623550328848402394358972136361472549929206099089731711669118843931237415895334939618757937088948072772342657891659194583487529049039153563052240532566143588695896119949944235969670426809930575837812919152003801283765248266314643696849027705939357352551084542439432256791973206551946432357959173127650619607213726594694915774280357617301594489315588740011431717787896011985456116497710830517548638439331161695447250084903823539370054336492812303675806449608011354821886716150735802258604361814784289839606137933714239035002704256490374088096491746591505609648957774976964062106768111677539236105120034844858936426374250062328898081846613776331571224560162219968498783999445712244372080723864846724809408003897033406525228341099557365228660188006665317174730180526449550444963529627737679417308444458551074024348106575387397899669300231200296578877273788553667008516515193915827070384148411747008331777883456629534194788121640700958849919857850702854146898508120971562945755751255366920995506827053692389615645382759513433560071757677784658827870430341542013028290575006776888864846391812646056519021146010357035426429453070171454138861858342432074575431990165426524243369208416337673102391856871114720206166626146860100560463417694177131440213993333854177251733263124155208032206310142227202584261045491725064178692323044162985012750456721333795561942971024983643112295504909629436150919677623501016190380612352472702975124096458807352078211311513621055250020385002402029061530584873532297575634251193974655025675197269050043644037239040647392800572400392984334459597003539235918532062210696503249852847692830436754974175993917752902450656630800966851712652302424766322426129040173863512197852873534194610144515040975315937609688533665917656618666915377290823988435669330148445534089378568238037005086671040794431401569292701985685698801941019196799677549735453488940600075659548283463016034567170644980406786806587359403161746537709109007015450672982998580064483089480209492763747079714701112545515559855148443079806305217433919509400370518493671551249315879632251205014291639263999208388393097388052756258712636104171170236882190298756021614036594813149488740227815877216050928668396844306112809647528805003390976103654035818178659551347364883244556550370581454657911901495211908828611140888922109716964246678862235842077913696311093394258148299651761292877411017279692561538129504488730963657724468978430304343812733150731534276521646082216028407586108072344378228268465578467429558740426577317518771697509803711550671200880369812620626779970717766616214687651306979769475834088468616612702865486137569482764539315022167427484140335420795476572559105956173006991624729468975731494167837940581781150136100290977883889239394848950375335281538539973050490204727841990433859085097270309367214719368732280779576134625003303795394709641550656572294196822078594065664804458613888384058048736784233292501664327232870175496294022414511426744366279832162314026846562408418668743817463417146011286384044398417140829368864466432469514579237318055076997327149757003300932552132806111565324495190879781497831828373214487991212339444887148531046214422633975991183192829670728044188452357481123651900154791982955636753771526924150398470686915473700941681620093119622146098927882718969423274260998585535908666306382132943444150702470790424790053193756790180191831720238269427474335075716896136906183123914395540790910816604495778660599279355840190578750990687673198441211154300883872902551222972550688304769973081943544277928831203422330155266256521793161463695441825738885889943011765895918388912511991207907031441550163802857827250250445471668185501318038290886950339575951322222727556943335729080165053976809318493817167937110944705111566112087444552726865998536875385926801627607849297580554329447739030757893833227029568718662653987600857453148071573513985154653003548625330510908051870207505550423358606261102674176194405973428673367193936529363935752097711193040142660291968601461320587307821670636616162910064564971258542212400051457597393769050875881548216573724303993466905772761525360345425324175929796193859052595253945408338508976511946274247703701461265037198598015671025135080089445424304283094574290552896952187105847676272995772750209422520115284860585561056911360535365207935184962939322259205231931504342947174476893621632607657827862213665752099715064676756513570946414220339120353230261158794658460827742507355419870719958185217949862241585379270676494049306480853316701694868106778103065381059336108557435310807743812221328765517360681147099920643131912768975509174989829152436682888020648333158425040189192203011105941546598824241391827872297894185957709881801396856311507431138305555019739433574896910753298862242554253707256878795842908278796188729934138341366643746871427123582098091910474417526634171440139384390744587924974395869813082899175234464904416161629028178412256863505263451530937438752713093666379807957743426699490166517356634753126292343037081106552518776952870681347332197479489403558634116706027587152408720546777658973645627002666186207810141927861109571072427314459070459176180490834885573462154925338811625590363953006146710731159498903514635597928549885481791793507978770345211602502254247593252734485940185794784956288491123140802963814168944368346875273146608656710103645583566932240128832438783929809030419728456906808755916525738475475433435170624267953277311646850278168112121768632070152012709649500011473137898630167437144530924058420006247584868350889301521352233620162249433141596303908478095047638551395787331984062508111061842454472580214911907826690239928437323311978389592919992219964917931784015257664652965660952501411572991750048664457152079604300230823525133646786107183004646668896802248679007442296922065464022492618178670021468204624618989891745340065842129905347515721432620205171654337949360964894240792884608344497803290845707173795172571820798057849090786856864716645300031901565277939782554166744551061880385909760786010665133270394307730298731012427972368513241243035335766015041766769947872087003912300970366270793415794257966014397563759848749601656545930701979074486996911214832705185257758713348822972909862424529280611469765297580157344209710647380028269714303723001565810304532337816054570850553948370844289978489235907954208125072589264283079378983062143914266013170059825099043839217678279866503097961568137672988906540120909248034855925318990818856110495313430877281384669568974066795256070143247457308564513614485621868506904044438047861858084398831970871419173052521102409959922935602360982318613697063444211147108472930690491069551213552325113586559023564027240738315898491638052706663180414832288456318242141522110040618999924384759470769968268966751051851457140804910916568816168417551627859313723892486066225899347145423933101393682993542241199784517021016136034296348838428562583190482606604866250298843370265190750911979848157726225990702866407084133077185267809338176006896552901573770139467761549603164888759558508667881708634735891594167865336777018585808824488239211703131071188334623694209939827945561101221205970902529997795160325512995747757691137097663951139132352147216798169020730477510701458051874860821715619355546719962132369862752011752535329813284800553004381428578242502393814858066598258242707532666090495760680917770629892758223772066329128767947820699265733004086842387235761902529481399936486900628617202032263971742289434445367837065975516285533822598480573281574790203845036474711685843099982314523261804539055945419485109858798857194143890659852059862481194268357792826958288139912159658324725379243928024222330228636399169180814979607618962180174896555963922548112937470710207304842179053008105581089530811094228374158741938456519342580240847391121413949569036420808271122309050379949769728994532783578146846548174073659742862674533229656114207284528043233390021092933917158532204143114350323050634908110578396587702788451577154141158940685354210004823626159284190287063167589040052315581187770123624453665898472173317657036952130512633022741151899846460076035575157860382415135060447720335309541111604297849297107321450557625801615908726022533868053083113391488504846199570589983756549811721218692948465374070578082921751004234867353796988601595042304321547444353940738012315814193618926311178229903722412420075890171158118910972679677099973166935407424650499173258711280638793453312425505433068803506277723136721325445168134740007782969578325519042861989478918869548722357723587213724295730084782162946160527249513202527419060147128669317891750395062476679328618973893191717696014315309274350749104242025437668905495323556104174713769535544565841105162855085057953780344083011043438881588992822274329109984132719077272746760193980669013923280097259009483209757907677025308247389914709810550649410230034633789241273799695275866251323264102718738748722582401255591240601063298190711323008606623140903731852375682506501234938375604517336627350894909556163725074818987361245233294049812595874793067111279155469101927291836643010976100237747288502016915805267614025303882071230843840661466063189767470102555079140846337436437129318118142207454155619749846642725089818984141402930024433122796578097694182155306574702519392755064272252872971588584802569418812605565658449517366953086467885416301280608932667535240024899532111430749477583072943359035119719085322476443524316862144633957298715013631500966919731162143426621318812953601828449509048112503290667200779179157715742127143365627863171563857736045157303524714820270173397360463727494047504498896347597414399544167193430724934430276604139795930016798706443380832674205838960852988865887797137532341909625533044915787428909861055507207702545875265982587351683608999482115073616696405858488136566055632385402716576593008441067679997857231800841836084733963992400603581281857965408984999640620642704779711252628260192522346308971419963155162047669306010785614207695760008749421536200731812116100761735019099708415087216276569291561020991438629701060487735765229476478194716682895776667537374330220887673297085962113085616348920388050320789629956059935456191135521497051583492132811791554498634028636369601163601380131120435258083405013233202266761752978992471873663835259799502505866629708889651973390974703185816803882902076579588658348220980480618386565370074348402248394322166363805920311263348026085716373720158436233508913522510725285192054133061684308788810197250226949096187823594333431588367399415109693446113438862493361371789151084791022915961983828712530454567439094342610059626271798637798268737116529573492152217365329141296399245721100829226309071990396275037009431028486141695196261562822057619863645714505206012245446498892669000064102175522200791728583750663443036695489629097460010783452088394857199436821589337578680773483537309805865420129171683721705893871741671174994421818549870301074577218987360700658804150696867129591763885537044415772823450724102042323819401483224858705786147592819383694103230183598268713209285967509082586236542359538825592241437822275372024689923383121612773704439827289405221495067309049674763793839690809247983396533868771082876752401970753678392199424152130395177632564793805536730507069130220348825853359405545002662530822417318509287368440113893190650199214826441733321730628101469134839953783844312687052632518210375949434318594232809579775826040643523759213651751743548131587497264719068020450535789610282112436274748280230716274004408681082797310094348537717374045469374531139344521045592906295879434615277649429908204768197656253473146999718356053549315418606671464700419744485341487433572127424084686013887903978707474150664573409993226211028798301249920402246618169959000279248981829857373099039986368382118724152570673193927908227993241210381768739784078884999241364975771470893227070498902988034923717139771308727112310579966843689035756458113093699659899105577180875975237855745797040169748515604004816295695790359707711539318440746582007289565992270626118881737956158648650210318177099593376073065162818552514380991417053364653669474382732524832727984203747554803737315639607615588363450276718543239300306360584995713206392567320025145433531782987869686728932838038525908974895182751293247323929624789089321716301113948477892066837319973608034906121084473370620925358704475630899060650968073697214888756273607882041208948967426955654783039748486604295757666678310883474197437548053460640113672146752176097367468896732407501576008612307699334885956435996826100473832103614578154448051326882608471606942019411343971530746627328186535572332189472425778485999109008192818368522916690491427781541227474270772352035007619348847099966714321806753165905301657974259732073579571546377388438876048936123348757660177375344780271412640964454978218348393331727224886780731224282228702980406150331289557287201302629121925765484446990285521274321829109016814654285740063087736630634877083262212099367707011707226012286866621027434149089668630481895021235700397128642890638824741255784772149392306592241305253796464846470029714160333730535577036462926809535424700729774562695747437570575102413499310855704857977667353574979126026566006475858004657632643102753107433456812212051382917781057250607269822818047309030192228556210411141479850321166950407817663956811559665506194165834029392658560684011602521501226144774831957221388113477640212043621436288484973975661392868182497541332286605011939312995491169649413535435556922041008568257529101743741636819185375529010074407611507654281361678044549060258082432666441622558230582706344738968403906427891660188578996205625988666196871695985562278932240568262937174031663481017569053305791772939281489008594915146071134022841561290879406467604023795854253868753694314558285344134308597049507145260369233545137091277239880462515649988561122128296303726157216897042188599302119525873390901280267972103384254132786684175517694682394598877584151781323205898361329807632894121385838108987962344913805760056358243764180227617429810908551838719061192953907549884078363429590314209822788321172196422808143434063006249157948693255894353878483057958648044286720643574646005169973382295519747078520618137764062474996417854935542251477402930844230386041461789750014515638279149734060165502505758659046196607091516137030405481207867183201826374264496944595104880412660479260491035738779151825072125210691277802770203765166570307197376546707607741748616037024612771535740205982643972893727620839532801459591766093341146500486311770210498034532508930337290106409350037769480050107380774248282529506118593070805678786751338733391755857091854164690171664918324382336127950513802269948668743520348896777231721149799187802455364862713712973571746182898031918338513720905261449471432542795085151140219554878944229959014675576979847660631467614369363841826808346375702191570978876519998358353525134552696754334148510417340437706439270462718503410523386101779007402368320720387339410016651843087166056849806953716857632287865571641632844317651962708274659755051366036141589861038745148328654936228699646128629384830034400970015226252035850913531611829322165646767045513501822238506678743377258347874157312713241825734942866074497103081790217007284028851395482440032696823901692147685503134869456532560158580837460187923119201964929168440334570229890666607364095775774240219737491694131866514401906153500942421760935235453362026566560093643084058928944150764951318378314422626615400575449072851893099240138505271907605300157008186832666928826138828093860459802355352947662822454497657449381084368057207760900683456665686926967427909804070452915227186509785646334960857628210328847009471546817463463932193071483176677849422921102588087582597163793002640858659700102363411507119481734601119100157771602111767630390602344349297465574102312081051637718619966711796452535743026830901222970237996357401654791608556655004615341413318111156158405527973348448342112773699934682347973683362611665090341442531532335340340889195663113919536370880336880598553215059601230071181319159660497291644936140757257724801339894119141415743661431127877189908951655426870611736896195853569816364145168921762486694973283466097270616090160021793744731452793469334657356380335880192849193260963903984623452033491223773310980012800103227181991749647975911421277260113982725144641975341771274447146846656361925854174823156070346915805095834725774533999045584818065754633366003117438068407977044232983667072100706596343479357951316152014460952533078051656832981340209700413146967727057973443783452397856904267269270842783592628683606077549858651719531984641949235520562444538729317599121408555618177084265430584832620751637891488450905508925550334916178678574424945744614311719368765856801379483628650697951063865871020160954471611282501760707057255788178704051219461685808020296873232276533346450901320430923360791118313388949527582775882491279196954350459328955696026268668783336296249807021945275747333950729435222444690949320956821745118205448124337111896917747396366278138068149694437136363210050456126560420850598946587717350478751387553079321826608632508893009655490266682473628669747862924554027470671887876711240506068235118768839285807308724869549744209244532330294116553595069754663703056794699997462793961423613076701913515726456142307784406869193492866953911391477728875570743326741917033673408337763860336000405211745311477836184090263378529467370516296155099764613318876920526735159653961642219657241995164805689680448588693804684215062982134774570253469850239833391216195683005750471327381161886621857381412078870706085518312048547194642582649827145248896184818892964032600615566483902794227192489390281396958341465905309436170613119665289867896167031674485125633517441781144275855685727183303024406071039365810801207577915411614016392717564165685117308634791610741208857594378690795759820456290347360868714134715733087635756813978837604062764541378347543225263072569594447465519999570969976798041247243026904189551254817838431524178486921568017493034255852592586451353570351106307500620374087434079409701626046527907850462554342573721117947809566537927475461693638307047047890456581800893287657765654139644564734982302636102858505934661901212186861405913916047944500843942630539167021809381599083926525065830129002308788583377345106988107555086634928048765690810006953592692507596425180540588850011806379952249960446169536801642528570748535087305228130072632335751655573286135761523975907025549003138284435854689451668201267582774183031906386030245833639095794703318095505472996747190688513281122153154555962917370319753886818294074767526592879616869285976931863341385627418686055904947141643583169145549101239514409575044764900904603641735829539294957827892030943304770386665543165991944999034566835482550298713103461618345295626721774657417725714277562053348296891397546679241801888791926024229277613233753979918008531772771482906498085418309869894229501183561634652061457526033575690210706604216678667809127981127472711534299665744356528266889698525415268658760902109468357502888924152027769128209730174618284859488658725539060578261782106817999903233152294131861807614114460344470642919360027326882742011471608990733305915436874137961316376984870843402763823502753395470918782116269126152537494709923909700217003358551582534820633730963219242877918511462729323598991570109725505765567617105625850365053969793866877881814277236982482341809257022300234731437081739875980747945270677682740783772512063290316761329507217473313497066592796086628744938225116671031105019144596045398908593798294397931924284841482653151924436310931543169522069910420767696148291214855045245769707391117587466425125988235321011669913460162796259471327590828406256839011335310813652945426916791975609441073312209518013231487564503150966636538822993932236743963835593627593174814444297860539600636301651290237445496363101429050490923801061797593196988112867501676459806903102818964376491254762324103503558070003475893599981747376201623473180964598070649756614705548328807841116385793569604969257148978967448707184566373590645224690219209798375677681635309511848176748751717135335422949931462251691336930607614079718816671615261782275926527883097219977466907437026865785165471576766198116863844980101470229805824875928454839529764358006395887704467284591537903261464716848209025503286743887879757105598776970509686310587013735670104965331749625424065775275048094465941599799233229102884830622866240107117407774218073634283648732791820428639820776394393102184616666132884395466762212274371907605149782014070982541870045997089981040970373461402645308724869935308805283178885554401435956332323697421605825692885686703779325872713203441654151805481623994718563867044411615192691833804732881628454721369225843434283200477940717442938529710602209809386320217437202363406865155428328197287597042994192207031298797133154208677420285926649518901594530036395186718377584787681715788735632056770593994192105394482604847690636307969518873876694635406157388433971550498605476837036379678200357055590914123964465728873414433109217588920923168002972584063190542473812673664713207535654544767279073230974547126599902051093269451177863535302494583059515860107277891226417885548559995602857841699638763747233759215035759372548084637835261163599675543730318889992863901237859354956635213433372309948211662034009410847063519483000324809942650933550365052256666276780344922979831612408930121072183168770662054603649028321140312572427739575154993388365738755498552499881950555887191871183636209456985005272632145652865175370836338797897471251312920688070964860876311794631124397481898023508685865820427598943471397179073373063591769984933277687682003335765403415570907185169074607937399258161322598345419146218385450449194654927864563053980730732034327122633237532055766365710260366671778806697441401547310596158814947137119162741227365511784731345915329515011971531001575447700118616770359943821245073670333776670795827992156539487012765594068503795529864742508988305727310796236275691838068243645150953412318570265863997783295064598623330075193325597299770448906396023343433088344324883074618243311347540671242591284443768584703118639873877361522917268177685204078257160883882197620861306475390690682209661602660681334495401980097288272422690310685084572189943071876586777465487214872558393427644318367369901202963988019286257328423295343380803006769745441592656064206989464049953810110881521614254828011257317868127766304573662638886166094217566852726220031161782254715992686602255599296080254062040199867160681063346138233937531886098749007032444423124180645789935066236678902353708165861821716224432611499768094595449346566882576071499201333455080209250992665314284980116706849039384640670939622914965500722953325784935996183147735001634769897131798418419269809705838508952133002114953348812108529440866684456127572367710986496450860654830325290005707218703160247579337608537982362129201673728937515261309139642208325605979924521430299828010587943431496935475989730692824733032584274076246576795254863139110234835475559726255076906349481421462151735920172167535984775740567865733958019771856272636768835873467668340843470523159846211948261553560038202051860035314963523910654325036902763809665903763040211290358138014028782023037921450411990602961465088819293319691061486941169192749533824185666624739781599975748189690862221547560511429482696634558747583916571699810680664297205602335335947169078032158932453232949715336503055643859769845590488622870732008580732335828749819268904369588957007894944546474649236643141351243911961965327022566425336547342063629145594452074001903793036428903843667694232692217147524265227256527330051394309672002673299622338787317043496440414443207143727832410033330194169383397310477722344673952114853082346724183987197132989987529440969751048356380865015511707474126040835794563354980690747609702464641248329650667010884266229271149305627677023452080226447054560919661553167443984518107494267067258499175485173341014627009671620426777736926565482018001835381099383243439702236116719930606160027622033881047205592259217992225518697613853243150832760061356652880643987786932637141834604221091719996709378825409410844512688563595401989643299183456928057043857832862932691003175258482263596160959208987496799763072724754011812140884891576460979621806697475905884730942894323154920014967974408324325122399054727461067051844225812200761119695426628975838551589861150905150243486185582953173434752116964611414734391214976673054389110640527146865845957459104514163335810367656082401074988086123000124384719763694265062335023572239165971221809285497145801845373414081421366613589662889007653049043955021822279202177437485521396642923134562923371680984537666958079979176086298427853259123784240831484700026214541374281721027065437008456902447088227079679078079622997600762249315148314450438107574367489704159895168850671071217439192356008107654332943197433039596490694070213185011787203118615070366999143635398943361156583400020159645983569756765481463811752025119647826613354432139579242839377941127570090720882744784677631343054726907386429608214558985119312968937242401042243893367979364736601955003455913474331693570263683674349701154412954895639911905688682028685478988935832195225253297535772228192269754109698099504848597233055087754656021298216445204985913610514954101564159363604127250389915812511967500131704099236737872732183549646184285283455167986055848580230607371410845126288881286647487424333139191230713134529481488651696032930144010273357817018260432976280481635007470036946007532100176590742595146801369069810023540681613744812131463082493998902893829627936348194118840430211109245739487273992001566320526263620876781106490643526248645817558775489301752506322350847907984559584476673930930843995804990344067751010582799156050946049400810375673477815404692294605675709400190244302292881712466917949227773631207069767785504465017793315873931804489948950603534882337437875745529742024882154777101144916197661568046743571525887516660705093144080008215932245094858790659011035697684010541104269264878827673131487194376239813320404352087186090216022621763914979046577858635543450862296029982234576625658537927074896353860936675224528932105288114775072829753181725223725290651990759177380075555887950650362472363377064848685783456805073654044124671793869468310316581901456520795239009511631682509739582560178522896248901122039949648890935911984564034955321122389576774448597649308700573572485839218372332795668555588537453936452063069812316734800393390022894195295521069119425654931306928011859684036140439139312633440229995157841922828721453856336000207822886619257205310644191729726115137916235912005011791707030421101873567748848806683244579863391284206673174149679264013647753516512744877084616850213903905443355129778720112086452814996255307666351122113068002878341485657036807526750247026210727681591621813153644181059420517963293871810927731643753668300655804715088227235093637070651368545782501214250416659518397598617815319511966239098585991444485495489573052667599064168382241947634820196217069020137929785116659230224977387344393362184484230340493740594839412419602845389024634619622510595834545396781123863525741677780713235022471974620960978758358362264924178659478201473835530689283534868135394842493508486919068211888992047696990888324041061967358738437392222420546917630301069001372447664372247708964216296337493383585376318351429052285033879430210239846528345123099139304385241717407766755613344652023051921497208277295960415772650379338482340709640174620637318284701860911246753139185616574621785698506268612900235237242135204455512115582551330290162597188209079774673774890457261791717002742634074993102633606158933578418672775311468323847377532770243884095569343252676651875075557678067188081519574297185911275932170806675813646268102599955817156423691919598146163548660147342235543854094729474219600265644092624984562381806035233172025276169479551257640024022933569742039921537972593461725638116641835887731115397793415803651719248418790845698853614587117914161486925639853144927100711873498822366643587939643017093203329748497816138109431517788284064598550285919429238810103437525519327116149202063261864353373558031336395240990664446973370931455408265281265983008795166078758264710215142281727986729347297912081570832747190171220531569307247706924262001219628792902589631276555614113535120075585386008092948554479487370645382137647712791139256692312754734338947286388269038838331218697256496716645975464421942792388064094738937314791243688563983153579105509405332575451964857737306260634152202951649882037658515090505169827659311091149118203221619894775385254039521821953965622800102238984823629587162262530457213512465750048291369588247141586819317753013922613259027182833720172767471467842478282274790579463554141329290823382553041911014798855306356357850247889879218792359529100339323665239260453324855209321460800077490876029831427066350290566332623831575798289586118374193348287961136825154489604602413688010825192515697248527932919546505280868221930304549749361744234860987076226771154090186657905265466894724471223481712260043727053861764001624488942642934357837078114410133264754083186224624927873380154139130199155347145264839915340735741971717545538948288473084700446502213437220776923358994257982782479427325543843597023592749650688098215893350331957080491840251969992454417056021545900349869765131150025178399557365573715002673798129555824906836406978224709268229440370395741454538008454094833899311782179280687587910131651016881819212598511941534006880353581886280465958569926874615016563534151586887688908933041551671058642580278828786027135604652391812451950926767685233556588005122061396369308149027406241164297951617480348416395758729024491153112516947418778774798187362760435251295935968043573962593987643573831646418698496162987663249519924399953026061700195538841163244341196100463581521573427405694030086457613416538877063758827023221677720084975312283129672035220618784692623072841298118838739897342865854254460183698537698855861997538620197886888603585009000939873788661759128417727834039853210080798489160387304334977015278656524718312217228516040380621346636161160183389592743637822893357444817395723075124108114092024955438974367162195680441524006592394853917839904081135185113487113152536564406972881561780639546782401304032407409540507101506877680602197193597638882586761301235909917620427155141271229096282434619832827620063944919018478945469919447189649991146110486681047371484670501105786801921636262875843623466348188078546492922738050595974584448316622874457020002982018363027814955595077844631029182713407712659404786217286384628175032963917002076346166250437000583431977601968587878898507876086023793499404242310540648970360787512853150737763606157471752230987630735605617709370402918894607618349134292426254279265592266050389150162295588960302240174193321973371759487810599290031312792781776298398505247524780059893726931996575441909808635103546181608231005165979310473830594184513374260718477554163288179651128305581353085995051052879939621703124907363194895716039711315117168354702221017884637813920143027269843153124050820166709717465709555570542069111617541244349063730057328039486190669574659738847516839284511249256010693437549036921588244028630018855942556604987614218178052007062009663339370931051042756082813841956708207935416785127028545925620625272351806609865945060975683671533779862232092190219609845368448535147574721917505619756632268816427091677810444879372910188290379432420049010449068352650628320072145583797502777196007026910136521442880549895974412430944231177681312110936664750478371035245646859996740771030245610813533001929582991354179521244849375354986869522954640636661230125554073894892873141274871091707350496597724101681927932378106670644759391589708555603544028803642526208250096255012778622681470999253836860226046473364541610574540381396389462864885572758549368471785811193409495441097836474488160024629905601088482127087123966615223433370017009389728139162789104314633219583662193784158163243174575614535466464157499755711871101279154160128260586890760454221278154957481029953886808242682775793538848377976881922439007034587508616193773749358114763177487382106520605551390371611351213851603294411322983028274076286602412400088946529837664882466175959238450827859916916124357229780669321968314928057648641223892203512389388867618078868925823774695989786327120232604104178263347482086356982941469146511565806642859773944971747675957076936796347184576244940669792982433659335283555288246795365829906919166098170739066348416579498261085867421896842509492939292725812141158319016442133928160313824024650518215500654930052143362685723370223371361431835152504286633695312423645687141354529830313210878096936056703173843496613819163044706708368502701698174092641149931078747370520990485266415072387369330457761393034900167638750277870475590038570993395722237441217131365207820045961310993847551476929464083719003307887760545352425728786383921400486894782712505965190566313934738937671784957759006549035566614953930623433568115154526155833722467934278087766265287746522934608046953309976864452121575749235110841361656758649053441158854229194978453306652780903379954633089357704348605388093125658164948040906511850183989039327703938632826460265148979285276638172879211608526608936952794063408828215063451290311859280232531216484278612911667197017635783873262938462014441052547501333778363830801204843686228856887813335312947860648917814960832062565599626367700074788233403207513912462736954981557359898149020055982545296227146539759086507313705215138136846959643757091847831788718419064322740781483727455600841392406396677789571537662310634304551621116200745666099395511526459501993730035754585436563094692411351080915000357865653555735220054517421801677970121897850604360658664525900929026768955619216081846618853857000019459100211980517575783772441462541258279157545320186521795602894978412112392472194182683436668324383746767470872102355161973527757345773620942392330665203852337879539662083605797821156872125678884243685957578630558879485928171702756625645606824426976825096068586685373334780319241003890772074102228861229330814207373690906555045628952002096375720088173846009348521665589760190769340436954585051537613132173469644795447681048079198863284021422989014186375172886486951615906854868470637604703894873036242232930083526292765498267769407860601951426368274661624471620747568383340568523688701396575577914057228569217518576716920825475502485762533508283659114773876381776083870974357005609458775857675284256572655118616728183302435903286451592368445001350164426023182892441251783126992046105207527022202998787405559563666583126953314604107604661859222260838189696966213079464276601559541547191550431124362110518000704887641173194080870397086532418718633572258758822293729281820813221203186944625596037035422911998880722112152525930188482094140366460005028996490768657369793324134528106447413838375021543916588632807688676229585641329049168835644717462005596832342261304936413101849512323545476912119020178560998206225681264849475210878132143693480516287699097736860126447666673211700126088465800766586016122679750566299756887184805051405472000287847113175373278894825213546350926189988628987898446711721225475263952182062761348253565314515372373664264634313122208430818136213593326572268265790199478892167691966290492377365124650200970499309046315485428117180482204694544987571293046465857148856054954334507059403043147506075943069294686103364697127616570170830192487435151578898012343282536822263006987761841180226738086727821923166460710036382272320369118146711013307317534035175861504763579196808011796646216380978800355424791855665677331894243231618970975243577665533639186493238030803140871033443461818480721314878468930676669962824437438519152789710267835338120279221976614417543963870367085730477266773053804613757750119800027240721991293135244798403505493014653878123805932701240168956771320721494365775982164205499960360272114802041261159765242830032078354421585587178482619513911499403917425770394187263136300759707211773675384976810918791067630434208521994812935889458561057264152443665553703848428797001865841587318403153043140133349778328025696729965906306202604661841483754711254445049143092595759815692487892286556136943268948941428047544875586381859457480029508639086878916215379762003457343121263116883172671325176591496833346665935799278304218981716349452114587564832936688875708268590039854255149774181772342235809318766781911174566366079447329349177380199050689406607039854276292864960799078532554762474020334739274807463780221126467038695796848821079563010484454615889748829720629172982879253087480844920390945004720897485250133364534988839826822026210330809439455468472427724343778727554436541660252301684410099248127704406326911189081968393812458124367176268549216539468049762952191638567038712566830289036012527332767937646587860505109651412947792473187183566802005685841075510206945790086618188696126527093065835245057019790895979845568540662879233039280469213404809257623611764676035159493222191265173373466452326784816451859451009672105252542838500905089059338955394926952352344139870297021578191009503728524123625684027718492744415185300345354101119151098778443393688513652521567043777247716903351738400172243941688496939488248566170390877523562956159704739806102173924264525578259602924536238747259643264823970483592995631310897760676905970724752715798092012537056260756919639840942559645404731964343416654899864377168921076339226811931609606605961696310010952692604670926584070806820653436913643840132466636335268834843104194031784510973369609747685396820393172997946528788015452259590220410169501036979681116810949719397003308370803810419196906617153984690607392665704096633169538075817408928047762528009533121780351113752714602269125333436338959508434313052109179829859378109650628658476633593314157637700660061085711680157059880126674082104222384014951983172134016670118842267110001076723647158308426248712922091375289185020711832279887463321681727101460187618381410310099285419482995849785312704028484968196020041719150236197855928115075036197671738754136997474092163430120258866274630181057893117826636838375124963344700372053140806305504097867198824274166640715400410641683851663836689685498326834064027705014190403447110759044850117031702093419722543873410464037125233667270325517341674292549298541652908929118718199183070188564136620441266169109022028327679292509800675371662852928204477001328497377929620413955500261488095013232176948943735348960646513861221709134037332298953266791866833010382555732854500120520967722325527223320316760659097041602764471914665753536721897504209705615273096802171071402249265415877171380766889860341311285296759512208761807406922593026906963890827059929280199127201144858236193319419929029614874816423806720939764434980163410067428623012181586969808900681305659733181314225238466177039350100066978453745000888122217581862211740997349099195592111755222993423974192175720500952843489066249346118342611161425663396933537670632319027542103049180206725485189220984353986132189689504247635665857245040325732118552444216197220169929216907815666605424652505487017326517332023780914034189218703102691175167728027005200067988977833375301456499916875487075134491636918351308261298788331205079037032133057474500149290502017725507724531314561038726809407177363255557662423681942084423942394402304906879837500743551065190003792508802305168181508455067847046729595341928960323713458024736702676438101877930754032925473990065555435083824990848469107661708014616108438798626816238818819546745971391483551505787382075656437460709900875310984345566541726493549264150174351737327957402407955451327612756776456241792494746180510201424863343534980703224301975742031259880222978058968912833553043244816787790695223506883336126280494595232147898598922106434442454251463909425582051518127111846168942191597562579267234417315320270362482447274810667109841562435218767472736060354992622538885699583178398345361660360971376344377932392164722479607776081496703247949633256503312120242004074095613201673282559660131659779397310813589664131101531555862581771507941313103648767024646986409553630133958523876119550297941893410950817720806749236430337827442203879986297186926847232602992916361148540797512221721306021433693022959114453712453213539750205391403166520632426920386006222994567859844240677949018968366716799380931099639893000527971100907360928496852117656381185498260753088412270655770995700214915210917303954965630179874426028272306962727967322546562925710099229304270054887198455341689165331558404511342644061121905356397028352018135092283637618446284353073299192973175025561106011052019487185373231203861106731651486849910091979609604826256197250912984003658883595782071321776979649105170097346664731129591949896542780049179279883196535408235333105836040765279378533224991495363641646928867056738260579617919729521614273280702083299994243529705889703686462014454004733119196176749282943343951268879802332647207991296257503884692187764153366128077933305795079389538751307287244625820349618280915519979355850212814136020378208992681246612056564149067455718579985390011226551088718632082114907185943573002822141984510392540595237226390750476267323684778016711538850694280920576279404337381776008119495093855265853430452897714443177998672303751583098289522922149614508259884908683742110157689786205650983871205245613084423863209224199351885638461024869026716262759937681114357138246970289943584826000519729092145682385803700112437094660375679502253982087757061834201218291218732240865502143136604838789036770272023181584406054412542494026261518957594617690424944201172735596790285126942600275173443129655175657756511598481349662675172225205350972458303975626454603457949299587865137189407365583588286807170548969905131836160762980707082618526892388181998125406851018460426138058640853031460048734612478996770305165754062387542169738002993359170957419533478465131698747651428888802252270795865042828410393916446227544426262385805745860775204420848286447364580643042862340597228607716004111846101547506477986593951822160139044397481519276414696029934889862379096886780018753603009051640162995585667100205966735546335014856500596763683879405348946435216700980000758898290081741866938124636025041700177331012159167175293600125406367628309475261435212787974469819951137093574416281834465081460668522228488944823048159700172409224693235447799106158832910245281103926836208890355494629490977075681871966436855338763536182296109404965375084952495193534301533204329921446571072101352859741840690106505470050153979641577419870256427154924440071552310499602012403493806815234447995159265090690746178924267609976398401933947835407521353250080065276771426986060699022102572621510186171389544087944136159958272723578991482822949154529350771625417628718558932541365398911018904812430342424110439666140890001561278513402508832340764625783600596403440238444309097939451663656933152193383715225350586907168678930863237500656887296436483104450116326564580251053819313706183286607120949590945378570059648233024935243232095526653183115199111663573813305481228089859598443163429326264050817268295635463218605023525720686316508032497706188494518653160084996990155100736871159684490834107750617527264773608446204795943117966506772904679990508197855112713303689311362233304179221984495676040934658526409692735548429097222247030504807256758801530689370408888373773869388521937047932823306874388920215894134055930452000353840966315126704556951488077461998626473922728417477360675951239513601300167046677336902953215401736794207638984245829109972411643561406455538918498846988222888704714176573770058906737033797542541675654472202062455055198806511893848531090612592838286126042505910951495725636325873095226134777191067523467474757448277369455709031079214962139294486290927280304604761151968111187175935996281497964880723619395854435052882147796472265704344435365910686677636801787129268668088488647717548808733689672863573994411905322782857112497017362858830015828578388707611458980410997109976396066202531219511799216111458759818951632919702955334552237199824471950307001659472624154659399114769754014952814583441161891468455652228552566243911299650328672422071901627651058026290688143482749091367653957058284569398328180875898841536760453585477477688234251541423085499587149589222452024041172608415917387017413897159026921463899250619209704183190897110973814410763590673008000292752372739994702649039231371189191615343456725356706147317015794876752289260783575821597978251074943983038005364618680960942909294887873948959572453973762128568169003552245753111353016785380984235601876611767255235826872554785898949511661785552387099707936023274614095007807912658433812962596392133627722968862993230929946379690582867865164186556754420755843524163624830175680171383113483753433475763698014895869108835404305840976275212199384928295336536160990279695713983525458873062567807186938377910177793678657258067253053023157925164460366913885111055659687229694219660986347811758750814192486782338011171429166289118968432775072181585393130107983767053019881099790415849154377005622646816001117042354404872446802348248587740448229432751032221520360952486153611942263333420079188875125543234310368387725836102608321528769047698388506742012367903344347474821932023672854855033477605105891539638830476709327420118489913638700841447565824037563824543531570900180621933698673162353124280914762699703220955788630435889917097462137169737560155603209751571691462399485750789956920660365041095844902690999128315717857261648526185400730256758497309751562703795211044703497000571737733846692887205673930421416568048157572699717045949208775243413533794016295049698473320135934750207807462130028257105909682399601554224964623805659210016015693063737869851136597523083648108231348250794371305154539635816644176374814496406982420873705670545486979909336321749922518592451194637309159282113292982355797208714774228392876943677536744957478364250062845709832438059041799960763997852679278043767342351063799300926364585978278877809624480320727486493261375366872967366238868915892622440347722025418516486644456435623911227885761202233735034504823712805400109964630892940105158256746899811321524999060099946724352410188601637431853482375513684117978382363405745364274086374349464659663433950498822016493684356556634988220087517149036095158672485124285419976432172101824161079673073030810249412664048846311212627309985327455339177080234742458369371473842659735768342550314111298902344686208375907888873332367178474696578848123502680588591676489585007659197845416391982672906487764123346700907481046339281587522914133037068713615899746178412174003494615493732488625498125257851486981030240175565748222002772259688195443907109556405159208901854750794686399000599226117383032976574404759885952390727473650180566031419259265462602602704012330022074282297409027280469822240984188282017679824413616909348126475414395984228617223014250423497723297887935108596890421235472840658962341543118016878676886774520560562335804214123585942203201688953837182201032862996880957916531350715072655036376954661295883855717813489637901606141701570181253680593725195041386068446614402530924199101163820925645010741185780981749562966126770327526117758888580568485939069841804911209761052269054774458766874996602293017062714508362253802696629776579298876125889938019103379748351335922758276739260047816297489821819660183173496083553584489034815992914644683541984191979785952188441836068768331001422114344042632981204457942617765126678623861145977077025402926855978015770728624169404432978371732843199237581171672828611244011575154061280233989714113093882774796088910161156301480866769009985830953607378980100359150083287678993719428916137610465309154965118274744960851985640146710134901672904584533412384148770855601628702508627904127870242844318349741394384048468263993981392134747169699304672315923803666521814468488231168144027912462472894461828111145266012877611589426904196537631001790368351955881771350516979859761713172824839466925399762331776401860802874737923528701083468739400958501435935156939616522953156365498202204917520608855308461500945440150627702846892473428643279789921657167244793092146348756237332111639141579144458874447518420422069014301886986680639664027364469755003353956788531859893848791221124072102484832686377442321634082447540134719563987834036449748368747994959022935931814979975849607273762221762104376331913699676785729626026475024807014136881912907134942888642490773559231970951664951440003653770976710468193001586918921498261973854871554340931054292711162299485768782445137823589294472762259236399518181787427324764446604628261180686652810459292352048917146051419099056738572485332365935198836030721443335190973511290692626636042985509735472916036223447780031004115319927155564976982930147549636697119028121779445409325234123499450458264965436163282922451625393220125784644658886224836869591925770751311878184083710444491611745435506490641586657070215699240446889328139558578373810401262802201605730836321362511050440338669045446388748340691726610876734539772918675270656690874176984444696621380395421242565398521379465334706215406946664408024856201973939592637119699804233185898994052260354495934315808789125129984486157136396639286128821583429778681744808225436240389755592258985110713290561662569192865131833657941426331217432909578439652812649145511857071854969409543026056788633111549533550836063108159359952916977592368419391782037125118791131890543807910772447432164394564328602551897870511065306223879407258320131830578215686632150094221432330495322552115466414551596113567586851346150233890188536233371633023374153667550275675623247513664208136666007215453206882884347086949220425426117111460753408271822484109002814552362251867463840267219648756191096095008617414551502049154006532598546204078785014908205640908599201572264992325302933648383425209229776898590668406356524761647971852193670934348302301136682332961114336785322841853992654681496676006096879357362955667385017144623023860769303758993947752120495986919461476824785408260815648140043715650436310831619333617699369724648959114216066580569077703624591268583277954082216193336326799127110717007098885243292475808111247962802624945072170006718795505914402334821875788873409813326372820576944988862936985312245933830505316909389132855090583121047373375845547310355656264166155616593127129261158311679435551880638965045109361729849272256509501937374868586015223659550833180886423076951932994943951438568479627541391067818100583307249284130122396883906889199619110363106457908307340473461043254304643545215248451816576630884251490070812795784213256544719868925541548273741817377944956767320461619936297700685933952625244196979551008623207404764974413557748578081432035230844410772232393950710329582436069872719778183409976723793021272810337153853084205421319765319548615467317251912008477251227146695192489331209194180389825756919241042247520470566804812557613599824343495982729711964319177544294810395523680670885973341602508880393577990255135286176825255240459446136419610884701560234680430170054900997777839264273737469160021120137589806797320227291405041887791804403941995928583527682690589732330236886461793149818065466481773795771595444388266731595417155696078511487523345514780875576153186299778037336637819199434672696185960931358516216271104487463048897188520540625520751283973484619207783006990830928106279921264248665418524989411435040413277675832401014935161835801338904829406755257926509286669124722691992168112091646853367106667475304843455544984409637020317283370130405985540595779537796279729800360257900545394487733516983203105908672399438938146412855680817203930548396971377705972114343337099704243918716987442493575346074500567191750721389043525849065075214305125145965385648867031593359528955575265090416455281212933690538910497055772237898539950290749561980969931395088002662794704083163574598029533931797324452364532301696753709712355104255062799039296906271625015182171372070453864033316745637084467149799017770595350672883889325963868674644699591050736000155762069005993985413043267570530396442343620240341308863551524327548947030496840577147002498293697543468383767542628099091390257673341622581245108618633947980751299681923241119325963548504433155309819038009624236667014747855757720658794084199055600130187986022874004607936878028983540321878063360904299370543476623921940533864844263253098602172255727531348368104243535619924527297487234442529258601199783074043067159195196796105830958754358500163103025631874707769501412853101996227783811452686492520121788802714651816519905249519060410350305493133007392760457368821578973500041802638027976840248845919723045079072369020297868387964771714397715588521707422690066883105731556461079071651109157358408540852187666301722202759563805236354046732730640766378391135172888267007942250722980216984816924417222484742959356137810791250278501409986955878647137393066947526064387014835513208502161650678230838865442769740336599139772951360859127502128639030686771591902425023018252084207703607636555388934354148303529250888847069854493380229260166800267647330647037827155735072871891107587196120291946106101876134275251219224491088983674505421948120400770844504223591444039946999990805394933625597244805368129197282962955910805518323938779738685455774270372184836439232118537568570958192890926106138807452858783389756189835960398590185640625656976689954038421615536900173776048551141494374173201409568862644232484704357837066595679858418501291800565801056571599811982094634703177055172465303264648390829618876673888870158410897505875037822317927185860048190380506414342787205948215764596028804526523614813936034402545505784671652191326089126440922137008458910492639598378606336869939117630161584111978977293676686092060140102295442268251930431355497301542915081110346309918605155372407618650388440534633739680973259366805991105754525285291379562310050100061902494299931964362700657830906395984318775743450886912146438106872772052405618737115233490581728752253992479507482869135874432055325688195773074079910671194647098545889794635758617564049401817697307313391291092319000260200307789210662091690236901573793274115270189908217567909793726410094308090732259964303895882140838832857177917200188808249806244267996815823517671545146581825039461785539028748576802392677337935784280617871592499714904731637270589856718971394287608497959496675890538483983109684755601197539491149088542482351516951116349939904742890124001515877526918723530774042657922134284892560576499479456014905938825973600458251288460955065044865023159071835689026832724295278050694673938912170136447831620150262916524635703032922258308959624901220919176142067032880454646786512460928416928332955308673530281257856801366805334054333714395109194869712164044730810734197728379733731743759246605265871571389645551874434799905753137415507202110377157331433724691145358731387103506799815326831240198900001731761274703147759312445409031141171279525944646424144708535065653786952759839014236595504790335808149104536924842663248710139626925261213963799703794177349543241075135376217480904658951056272813538612992493498062625364826638035929363658979201106367985247159338483890895258464030119270761243036267257683620335821685796389404968107366278915660505296567071268320997632896868320715843575765768497685689341216481717481514479566450282812664489854140362589720660855817896524764054491692718912817977936130407189174450943255846487021878012070475654794242385408948549455850888549607822550041581238801658728592762596389035978214098350431602737087094227161410979072944233891094996941583578826381355331422989079490596977587106149447223775577640165825447278839845732244318775984568600958950639175550026101731728326692144815804893828626175230352561715120546351423567244391966323367071834373198328577197148227584001469875747340344247193583866264522868473833550048287296870865890710823631925445852136917603843291180081989515816372452133554977156593254955921182969964940707834661707371403376718128830538296113656148539797711512239648093280743212928266699904515020206971710954953107469526182905975887714813321568464480631180713839026984651675577913686580596994070929859315335720460464909941738520144790669952537475933676679725167644295063022920466190735779673314126422457373013394688241076809352008682842495419850361966804937183800100082349356630252219989085706332773412046832297861467053592240057325195375857302485175653880825751287153071488912654512575672292496433056410836158023453598221067406811604839838493552011271057291113728332729107624622269207955499525746808400097863837859847648647139807933888623094456614165507619228387423311574227065033288533745528226766867947567217348028624767264678038872157187650319232198997268229088139633525301692283077862793733758417081492112764026430237885279948595743836172065921045229786753369856192574832197446274825652901878912414529655556462640073295506273018009978858959169762330000356479570575246356100027211634882999530537397366848262814299649659966977504250394686595972648710144597426501526810083501313870678526888890057873373968636996040097674869499139387791157959498315769686762682036283699363039204108692371225020002251722926690038141345676837020411374049890490994788785754608715456278315125762590203746708955006536718213758811655949911932076434113290004481299578003745278795573315575861609267393188139915262329350622308736580056430155469983748883334824885960378348462273133719311674183917421166186042145033477488235804045753971622536057415632762452688958136032301278087772928399374472768880055443783721993010634690159496051935364117325958517731186884625713315600384034653453255641648992589204009141894584219769530435853886190956873250448010830952071327986598103926566040613986418832564025774099369806444541878372732574223904131137766380195902713811792430714638759747407421980908716293180443878857001557791278972030498436277535884879405102514573101924369454632588505270452523728352585343394995750058026683077885461083234114847653795645905734497003346728832581348001469218846850901379398618063156467172947674969167342342629527695037261633494929314704977835985237871020273292554567708294842870268933492970457563191169139204934937440203264999442422798359073825342905997550027370162775091821193425446863414593791370648437244444346102440332615308890478229460415147502441139146648742500295133239482088535788224658135154258597073750211008799855619352175604290654307359535225577692475262485674702957565847955670343348765369673926176190256885613126582868417121523790323655693823911144742118887144469167923247644123814205189687577978453276374356658423571223202887226563546804497113161457481678552761225464654222122423045133614150606962448942788784775255793163674840008644383905414121550841209860691784432462537451798525371268774552069099839680276934153979469771776644563910881639576398025467779057250665431626698320123824133425662780964324029544713334277790576758932669307422780101181792483453280120254646322384270574881486193504881085912787530389231176640486057988128236575689804259108538470002043971128812594960073443339482625877693278924389457571851119283893642961504421448698072946437214583775461172145603308917150584122995278181444920457937621649997007789230148153230669528765308681374278199480520829975033779476384656273262329929547940582620420336262154771167408725715588249691384532014817811829530031412661146308290726127843183636645565069733335259907316990203323820726937235978578680997413145412298720659934630484646109812147644290137866820620950403591633458930013811293345531058125157161689176525369600885541653065301224069557636768529559207439677427424513191754647395953450315597663185609851555535961460860748614233676595561700577113408331456064138628345282592864221471614111250422959701574896471950227323287921727041268300980700469567825728406750922998035598332676596189561182605949201506049064391762063778536490371392275568517634436958627178361239864663193132634236446229495439233238188856914393287676769254930056230968596818002709467130638669311262513142652713488571010940418554662927389766219361830698512521858259724856020948835839494359550188130411639588210531734148788122189510797318358332596452085797606499831230768292457711556643308159239072511026062948443763415027744502902881825491803040688804546413231010234985971625795005981704423781244513072976632386280976297054560940152469703122013092850642889562927424636620114190015811842813878230126820517396995353336293269372962476453618830557555665836994384876391277954312499266391020824527773295052698978868819829806204146502632973158209628988914338166591856097939799914114935676957616137678997283356698146619342471289344161637005001755280766780618886785335434801269318311450868511781848547269899687441581805837020303370139655529876224989924935603842261482581802965632100784321782978727169894925769658430317633724555890501633447025314572386752308321241901453917007686133640680343852842272292356698463221178903800449341348883728005212262168684195528362555544814907703638706253816546083702364809682622199516646173006940762188284720852504132047693668618757839272309025789600337029968945413433443514933443418054001737647904186022325816265705378336621243321595040913633102447459246039780205110656820540088043045052563087415729969935987709950064884769027291197508233930124110624032513694388132396527890409319934160704310544574375546262099706653125195429515369499611884887201708109808308956816195235025102824684494092883348515521133700760366758138766934708830054697741069111562683248412593676455328062023414811033671119624578354220065486173298507771467474573672276970329866695968787633045661160168170491088912628550549964143605634538393219209607142563061033459657054492618524998505606628410478988280519594318932052516632713112319100131864979743231974973859770017600449440369126487070348529266452782959557658982220191134348852924485401019108207892845395081779866806536168468220462085443460118815858954526140372873784372660945771985343648115223252240209708645955246933131983562252441690705090230804174040479221781938933618036662239773737583400844009227906075311931012864241236819771784394399846938760002891804299443266835649406166545341576200072902540205802683026609264924977210673081269771155561988122732316186539143816950210118440200331066365510131570308032459105844232089529921230763358790678423107377160421519515298790399634102888442370851724636130225302667566998950853048677380637561316820864208763006413581097855692294260002505048840492744496745038604474237825862510502657311631708588752522601040538789495022341299848101112236744645164747091394094989490423123278319881841602152455236429693996798050059786822168003109494489875271762986157896833299614994975591756996182010726778600779067731736276186850788719669500545539616938115509435116687877363341549188739518621406979988343158793156947744041261898922306933705626467516619976762870835420997697385470260119908095801018109484629287442401566531311603964441471976501374588898994695171742015208768526882295563157128014396409045190149487880060534892300711346802971596798732176973827632111703992234450294265935955039119217972741292714652192267495760637323997465185822928677157424960974189192181286369666209324018824316807910746977814752721413356118125385584333022458862475881753144795319068404012096923724705513041697800806348846612662385942830010529502319069110983506649571691843870489878886909175696443666080119780042587569199343421750192228823640980967310574524086566394629088410089554142783602752692142949883392931458417272774416326949838395160317347266793808672248454864548212794678444411052221901867867251880100186458087422022748732232837733651210748113446152336788585851065169699034961899482043041074065920965381839455637431775141298652408395425152093140501357905836241327226384169107536631463759860218884686482029754175700120931642696394459330388466360411848299313477956334239578927909945905989529476475005184810301467756889063654140688502600121809825671036229723064471172608319147515856784653945520329197658200041739916361252180058962660293394063039455700348346843437779582789844866673760708600781168117492790515934161981077639890880993384279107324241266165407315721379473889262771567220231995987603834617754862285727399910446199353790989440171009727917514653119950314309681575031221634561049601949360977705097615530809120564757692518527545822307488289508966620918747185972065540224047609995005301931352324395972156853094996325474442974189292758080770165781065993525433145055341884262098816250742197846821834216385012906613625873309503544671842871629910306685362049719134296517871146880390647877211382164155690574114445386237823733472611283966966678815440642795296687200053031181738958045498796613235927595335430041801408007180163289827434618330555880467679602323290534961428755726234076006172575413253412704500818013081553818168194665732598451593260980406942565282684215486168366777992593332771494003655460566316937359859442152019578467125209661893202821110458038414153578036260861963071671118793251524153786612051782482141106094026316768586287047411140979570291015943150725632376402033412913167869542265420944092809644918318553568222185317850068179221007012272176610762022949754162718366528750845962164841072184171409724420313386683381577664063981377523079533865990433104877938531966964336493195070280088208918274817338785422075452589747637603168868986879540512723954822816450824856351303662435103609989577600593565652933695528561711091364428255753874888332613264774022765254893804635272251896918176243370752224583797002550078466098961418107169157449028202859760135188502167288274703519720263022050130784902284036359447846518929409544269342851566956416608595388301894705579781951430344959538043823566950962257711282328781443870359517188014669654418296158249452932781459797041236366231699810527219506393688150831269491583410056789608408469521092752638381901470611012250079397025120131921707600959532424153192752461922904915864635081292405234649391838335915378439373785555676878399753523724044597079474548575503933266911911170350005069251341281704101056240284494449085566326397836939224149255822858384436066645368729097457340516179171272416840650816334974418512092203885206947678506421935646806235236724937390551370892816757240103929304948568152769331845959515830077005766817196854186306197792639415212396059295452211577556345657148157541408938570418949897261445350185207089100800619487132118730569088874234605239450647617964696621232010176193770751759406085024608099864034571779274327161716096963096030927058463088018067833306962052726875799228125590378724043453806519347940889735566033344833220163783567785209282876817343256198348808933358461697019683332765291236264164314079476319404054389424327318557287419016994812805434053726123908593117310680823259794436456236587119180394607703342921296667868736600377759860602605240634873325475082621590742683847614390721135724844162704336017745159419547996913131142960670711549168238635341638207777995419097580170366173823041581217793117617804913934849509703390452733772780307307724555496784533602155328188319211955384897672267896956756930927075170623036831482124374847960422963051031825284601289085412908317567828799336467476647816284913156322034019935426441229676092849321943475970355048541117066985328847867658457121619885476608512377357015716237690886508624857434026736314643672380103095224005298277516228132774424461775566881734180871439860521196353053641784429132801572046566609966888877223389277643111774027237900394300227276745374828465773144878464274641445688335505834396714870277196366462143083002221725038822888991993101909853391822441788348592894042752724896029777039815282972688237920322349239818496887046086486164576551672399045006068270692277792500421713961784592218526909266279135581863562682309707515535649488755287822250105611381172895620475245522138923546634132493310473906955951134596005497960992109609686953491024120463231969175966079367234659492456890208876781306463478972853927834930463520748607082710179531467864904805762800407688812797587445137789407316805033839885702060829041141918528976739503191713882510437076482930133898075405613718208154479875901442653276060320094704212219909052546827277136976407360851231525260712786269620848175960944013379843746924535579565335177801610244803667894813326508460270189791300537574442740009071051760373060083722960538282665415186959171708844528629745081678078761940672703021832138063435159770960050299635489869588528689336195701883556994412974741434347180984337479726998548052872929007462597257968834285595126816978345268808004470124484334254695506593530440545187615447767528301385011204585245512406757145897252514667913124036430950053722478053687951721346598443390782067673640771253361586082747475654439584174685755932833588414571521451518541351993840038232586264881941151318967947554192941705618926526963194566503975657629023367501044330012516781746815353153726199054487831297481001706896945149989509538117508517813632413024725483333359372124848031426776499077467593766577021555337933250215093206690181819521297360917528307405694958703533915947763084661606075640617918347933888058499065634310414661468862358683970978500715181139313948386052713094957535131776985753194204624487215286823084558613361880674022518615516440966022615271472914013961167273939517961423633431422848751200068775592697357728758507583070627291678278958176206096519248340041320549240377330617594033477758034780848869924257899504360532214003847564081917097526577027885337035341003419970257556992972580987968950169677869382322820127105247441279299711819277707114852347034809759538211635339092435086955700320304861306165536955804497957156276446095429645823794007792910105207764291993187442099492356717987322650386521987187815310955110320660009484399108085056359023284759584688918651581706550515613088266175652708941312086454729019538931189607743747220817514564252458832471198835359738769233070698002710626730048170039551609238309562873274683455789881300979824043312984674466275956791049966445576595556567893117621985929957870580018204978422221284710021252633042867689255192117581842986587479700099393838841907346211616926292709819630964705610211177663965687221734846736787577363541703510483912611749491399257559393533695744032125431787098637922565164368363236919022094440808547144125295172641868668571211526950139789611630516787146841146779956695755937942567567961890725417793070105928341942983231532903035237899980131694188244839724723772962678899871761126916895265537030919432053320009318413232344476178241585126146445007023440428156841247872972608461473239688342751760971668997955130075388068628138734321569584024808123389814542579566989555505044150691667503264390628295257084186976118258587028655996460110749320735215849100610339419554198909233928281385002713266474295262283283721900438218074434698789891249589792042078551849607890799562455282392353367731109472139010915894418712110472535322758117054589655921194513177918097284654463984517613913948139629469139912407142212691833580953565084156794654859137997518676331444333280744271279772999944854606922346044291332313534338346633001895033119994824185252522478008401767331448935828874859179537325453182039776842319182240920114905891795631190183812423175382447029830417649462043971113863753851926954101299115744528185097698993918061209489990361818302887388380389311329724394261097803534221650015971617421908726843411073492017412588907511201961807131729125425612034860376452189813019570518927571784195264109021136998155745174784706347543309582627942769081696031458563712400951986523422232398149378101119138431242784091413603770534377912700440210777334772537768256967437850555298080065974604147230035263784167058165127083432250543616424690115656227656942456088661836748815948754345598268852251978798446144153135561260560490113438194496032387546210374206080527350084890476029152570957701029044499257915902119310376462432650562022490407995528007633292215952379943135897480218028118801835011908000460828130261702778670929083918022794356828771705129926244004587188379254875053704295226270105630141665623974087883511165869038976050711295908431223505428047651924259474549569630564637894672160705154766295081355805095451623968390697144225334665206493007344608558432264507820756849745331892140850635167951342377658160551789053615182167927967232659736157698738511365783789049605902963853207538976854494558013938011712339347810977110175435583123939894155967444569255453098842763290952534857816961209201357444161221524392619218655678876175687667957613342187132711880825783734417634721357330548758955224805206777705240386385158090494551636126701676528844257175665415114685234291041398074459171268546775737747727414347544168203724477421729229685184778704706632863587187180257536996045878358672528596293606198561369312044945827559448718238969420109200603061545309151894939039261342999234904401123077236478406646271687347058177257449371114019986352492306849298987255327213473768746235912435601425011011699665650830365585156369233619248656670807139930041959687303067752462500465848146655556470427576446251930325998099757912469354189581530052039660650874527011907730490378908412349306072218052843158213966378755411940583371148338612424972356030308345470183374250944117927763550951997905231985725983007502391631354808147470316344481070139163158837882230539668492831945924833161737345941583914938094149918088240070941093546255276314119625491217465992123216325695478118257108468619371582625204126756359391071555597059950306568818123407254630654316174292501101179050170413965905107149003817687908978614416085081498135443236947938956925932325686019499442916817477961159310412000729306118704762455226448875597413977562191013354178979960011479607003839227968141737818628012616385395542448386139262848066173167307330373999382453530008464500168720439317897791570017336169535748577670843876883293733764179680140234151976770664203335752600715289921281970966067953640167896235077100299971148062293802328214406604965526330727841331289442564649984240061134383033481237281657227413826891345638564953085317298348484008221322928604314037266867948442719361246750915440705092657072300441870637269419289117845101289580783154634399689266447486671072618847561138819452544480959267783453037630612868075445709529988338687709864286453603007039112469038410234030125186667248965859918752117743317079931511606879741104144903939937414652997532984252572983780807945080530767712739882166978498345145909489178586418366494158353461270408395311636560416603204918772541073138331674679663376228388035516424816782159788495174913744699687192050477889884159728993299396066419573569547908813078810469977418420630563861576743047920854447234715630176982116578906842365179201187214356909224004802773536646458306618052299487281790048687214951389969708458731546884608819298013162342812341534094995706490607857288737391822261968312485668366136056969139116387021299221787356908412501793659325675452233769987520211448792249564053985628380305160960246119689640342460109562364698105415762707989112277014123246842541526774798906657080478260078503839865732527494012423979088121172913115200940484218611696399904224976683727754188761133099428007429051909687786939688014857742026763331434212291267584829264073171695814308024670555443669344513723277815257818668453693230757726987373543844702321720888278460626171048065163404481874337425189669781983317184002611653333338363002858941585584966805412480421711070422670748317953026226532225725477655181579480474018263865543326887802248121262039587344836537539783177033237826465000684079341998731488930928129470796468716259470383892934056230223454358687940874891076327162743438583960240441948433115479483515755910696781020995058073549472532718858015860585324160680196421987461626480808709544642203713293099328350633201938715520862311926349478868719475002811091521194694392080972660837766593137235297521797971129572436915145789505132498543855045056515139696625312824183782719948087509044553626344336914674007475548459938433998495156042172885436325379360126528149218615689742867579385575714243468879603614509263234759589778752204546927111354426371388167035660228266446539100694337270435395737335881629720864990320480275554030405089674805462330729234054155356473853397892109510449148355040142597725114796988777175530385296889849564263065637517737700133140782570965887276967215978062362798967410997008312751160886921840981877472864579083816882902089897015411840011893809005859975834487029014515227067528092492264428465455599333659557522949623343226466696417776582156979480919042252922529279198823259383489543027535878854588560735720441490725162499025793969401562645898984147185428251386006852476694211408208405436900288712076509830786728459347790511151602990453011984483775944673611975741342190154391822974855943270575282477793482821354139983805084086566459925033507183661640478207537362784826922871809123421956989159776323525021460496046736263649474846301711277744943893365011772154854359288133262623681151005608401068390208388453881184026260307215991930183044222086136609812930257097656569467714956263873880228832028250334120237729349266837935586009116371316364634047168823811122618556793934766488303651523937828045565311519867168625055556151234947356524162897249752231655202862617580697995889957159018025018791770435724404299169485574438915790907429844012365395849599055308518238230582840375982932792006757393261824815933294972390957322118084558299078072159254280168020889053246897106239979225755030164594593368046311664466952343611841307193663407487613478504731224574628604349786161044356901401017799668032386714665248223049098674181515396558538757779030642592556861996510070175368722314638620155177799107224447654961918820280680563810358956614254520952501740989477664068182044035467288122730557299526685071409124002050012119029428850704496789169628419417052848080298802025149558669880079014929767937990899382444585087172548717675911915329684378393055431347585948250711896817836915975006208442024031371348197297765783588835366440710772180394735595351511339217749523899182247611020241706215053297588036746086856294543072663534665786664210062665478490494971036058532053246962132750873954958827257415355614074657120052167506480550327041139624754613874987557028997721075992733027792977887031150280151986954216062498533643863464833503160020124715208664599348316511905958675343799368217536709103076244706869986795427829623438280126572078208398967477399293759922383644186722142185429297231184535167418020348705366333543595194828975791883299275583206503129992691673821418579635133896437935680250382698921611704679651604167822513956279959479771476989684756744993521442014007117949444465244010856206743918889021331535151662485789774950603111246806327784488254102364033860932415057475510947758832238457028588401008543574487490468841528387946416813729666235598591571477820374250320422840034763399292904038326954701909057995671407919393066613658600374350583799662768690537061320820764295517565177910143634734878749874354929573240714537564963654175220625597228216161454463443857491124269261354707385148602530047708542436905301950272165200237584357239620650057380296740663796910887131545511822623840352124981199084825616825216180889569406288044221079484975255596099910227100744710182345105035962405275616856438555648627961801035692172074379746603843611867901450956147766323115011047197687129630532444231738807269139821454870983791142593524067800557766326164526963918679319841183325909743056304847383405188743042372768944295573553739596996535537057695367476274024727672517910515798812833461334565424545986521363100545439914932368193777469790519317045626428715440679707862915148795466646237098707925815737852905085970262580459703078408333241627293384892843413816250471052079618494076722751974717227907305191195163793464280640273107087514245650276419070906891200941677460008484999407027227111920677080106771427641151948711227121521057417966088347651706285146192789136335414449900653139362903260137279715850256347450782711851774504140198741115372494372277044247835819434283708126510974894513463309542305617432554843779793226727544307961084940310083565242120272017961477504780699302115398757559507605085420299666267884171487293016771506221144081683616052517211458888112957984518602096831653335726563985406157214596184023210508276619011026633482169030448250416444740870324358562808344243411783417713246127026337422359120247712177520876112265642736181890394924319754611237673486332092227479920565793954335997835945339635550752052409177354728070170656089897566971975725414747012536826648163978194991216296519743010337009517007015950040020330780121428073406874246654464882646665879993041660018216729957228043880637219196886431511099884440968827536198729383824119607825589104680657261338136289583592971150998044476239903276276597924697228883309817218001666418838309821936090922327180006765229909423280114958125887758681750083654635126051865891409608339956107532041983834873944614404520047631032621508903600104618677105597869391900642661282660744230869868118021973299746502875626936212402354468743852841473246166856269967569146603012851855934434037365581358471036857098152852413387538943108628562905026256261546727004559153652455040256325926284215206462765471420116445885834081881669735816348887000884692575459803897554784613808380043839244059248705971151213800252197422390087740718943917258065779484928392793227705061042824427981475231802787943331354352299960356680720837964762945957220972620906062262716232979135613723500311597509145466695546828872128433620759838206591620664012104836267557770830103845233917880936970375466964655157276725385903317550686887053122585703329551666741290326521318992642957417784952174274502049387795162487601740365361692426669726750494407795558799546333222816481477580152656658480842619701179087318541939068044406695884913646925791014508005371890752793650243024304411662195411788005627887377806075847807762782171726613930243161390011578585408991933461335233938500909726999849897810412704404868071404505835368017662973478126538757023870302282516432034627453914615030895901982519016105245592880764204661748557213788835565541254943539000826938130457148026153871980765493764908567426574493421750249004244135809341973847695901897695775831044762505566300356377182744585959688057449652442976490155806115741931115891922169872175218365666646259959343685894768784919239929348287066713389856921440104242856914723430039309127970880846345187778184917801485302961856253911646142610883859000928973177791058291810332159375276046749505488892840912797233892252145376381596356970116551279368743594582090794404538856420244329993767906901415746492743450697096356356446991946948002349189375230262222791702567504673854580606884234209445649350513980411896435670971910214576460686841763967047564511079821240371859369792091556653070265902866798909278158220751062121406163170116739949537737432201015197077630282555308533332455415000088178656581017674997468117848658579108327203572407479451330124070185852069584169592758029312142164542776530815201575591566415413983196421366814109724193275525664747017743101544952171442866805755194776933187962168953096621086517390527282047703517589966723674918917246371450079326352335751934978648680591049278352749929475048892823518798654198454519743832498864994570664935662182473500165763740407842726434352304090172557824288100250153071772695228434425607524658633934665501392161369730766640189851750833313559639732593619846822388131077128442086052338486416623103776452383577311532593360368079126017869804260252308970187544482640887620919204534671242575908717823222676207608699752181702801830035180675528422147127361439745772164390229316109943629116315153320808570856176394449816989323536197192370854080241290729667423118108043532404539856413381375482957868400579306631350024676761429306448707704658789824364904546002807317304093258824847019266150651026867586841497366488045852422760986469752427268892702802255556899440632342551384388178388668643796860173209105617613849360176981074491961306512680413738521514301759374485112511698643761603306682373302601555959818869012979353993261564009740151097412623627159083388952250221800749003510165323032650345960815822276314720332364375080213796525748378925195412839010457867296292094795815919260953575778238014192404624133420578603430098274217216257889695217592332473394549241940296510437532305143740815622253970646673820612754799385869128848330978867666473971600586979678276665175788945000421973614832003249398573762981465713232553986644603857614761056817230541860200956226779836603605717097565234549323779254576591209917859331751353929517498795282793301684458813880787526454372797587358249765120458169298183965212010009124431857621032635400566007458468959357320583120119090525228469618304244586315523372129885074121738522322348161581485998872676732074082702746168549402620385151978765142940668032327783301994329390673034592557743784916292800000400295521714058851558455707016549768317083338026867725791062570200624859059103104799195386971623078890943033960915615518311185111355749800918673289814934684567121788142553552799910192159415893644241390430651151470428636265989907290462077614789671743464121076406609188510940628129870509472380097955490923421664775423232766990622267635947084758958310986534267748084699588827634590837024758665057907656634541364297516293591223020755996122629866096347127735226449984097641706955862851528570508097283240325668584524437001211309116105935584486418988924239888379732644839917914131888782257382391915164790398609717820053537178094714706016352336819011962955017010631086047958048622618393451104010900810216025588951077384100331860335701657638066756203860871865834170583578329482642695453930386389678649875013333659236451645591647780098144704851692913493984734777790192254497840864051060388242522099076941138331161570824501614056440930693066455179182867479458763034525301320319406325628532312511478504252601517016760402848844915267226208434235166575115514664470971580379875808490022983205363695213024090699531835581585340780587342577660264688499582813414458153494153967691048294697424015435906665426453895938151912796980365082218697593837183464355596181302951354776777378541045899016729468806478954976587651139095443592653744904900086667489042167114102219437454524286581579286876813603673916634052826257225590287870023816179345332389424532029030573090940924665477755119109544030853512187144391044685003190347254977402565033101588443755407342492211479495147884154484998900902453891705582939801353962554661487286888556717664488216019581798760716063011330660634033898007754887161132174789568490507663975086720791159066684556635120724558231408039108249855861038135340560334685143673654521553042925707803226305647328749231415183192683572666050159298753436297593741243277751431849543493739961127869166685310050643355861712861277579973306504012963042860436439171982698216821660522582118494104080773929746723392677972684851129165683926299545226881102228062404804258749136011096239981241800026653911990179601500749151740418538116602743387892520642494039094516745698331199234333320238490236488131354178432214894484987528245738198609148944779232895432810140687488450706302857568862925482187310103222685338179225674750472020219855818407919412561161045127952405144840080488856812317054020416857811555636876974704434185617505961098323341573300429733445162011563563147656307339108728381980662069742557673038464425130749239457816781032599742135945634613123098726520442149851920185044269220822273253006727379371724392519544327557124368524355022592265906242735442058245904546208601465464458253364736968401314508557853783737656814773467876099422162962960031209542176289442415919182740426118425591183661216198161745341157259607357424249351761600670951177263873942337005187885126709679401346683187235691985827570397678916528035729832920792801861069142576180113347871255965316090100439521964962769417889658342939264582063895771432299516930660129282328196586548305058154691424767876994399171466004354416230935098789617746789270201598074734766610206163061088749068881069496930756940813252232209966336918971687446663262843547224752740302905541427317441975586043177934001366509299670639142800654236857726004290865177576000123704776426689448438478864018206470624311574995926431039380889238914124209944565518942519517823387175934506619181501912213090873968203547452597826593602842281314236934430701822699234446738265232882707110235115712189024232054748300304119528578247688181408153744027477167625606736380896696447196151619453042700178911701346429770280659668937245184646847462726956707408930207550803465618787224826910284498698281014208445676306348526237618846119534534024243394517645261212798182333740617071291860108269510386146482567831678470773973294103671395323472666052327833953779844977844732508993923978572687805724865858467836516421286363008943543517544797620937646667032339459953671120326809120146474194261705806365619753889683644269568244912903491810390149498640095014364187310925477939851229683930414171391417873840860685882096390275079743896535122328665760432154289587216408324404311348978664958784382242228450277883324262677988290387404910285479232567659239778187562293791545029948451790828233189774056469729734962147580317000572839376025230834550234632127220297014748720703115523254734897256715931106203230954612593955642300880976800557107764990937918963790959174110255576369182842821990961306545618687619117817115175756403532539407207727947052441080618812183798244128889038612185683957814696258052615411271707586272048040245688692295679755884310880112267545621729717296585776158025603750055784960481745595213437805975209528800050775484592792541405969734055061668088717371205344208335287005093956036789708036147921333621931619259704749674687213068660535693939243935950675392874456795006520736577109486925852483468302287256441399404542014909206558252746959743701591271442030587471690490673437769834777269120148031432925783713111516369688848678288088871199199456068363035188225193109095058202422579499285630243436033964458761618033485328174904852990967111020363358099847412901279642003054412636559738724151804135069056450665279353079430696220511365952831519857951851381851972581009943991382553692648013551259061463026526596903954180746265524595176806307437493701911165218445593428249280911350504065279670739217457816431181301693088680562777636316412201674539841676254349577797455163251195765501672980097584814925938136715963736505773069917535407962239967026786496810310999308536398959462122165338459384421747535126124586680533903077443625828590283951670558797049746744713697008095542483275020066863397491419921924271318521639444308339230311797799208450344993632089878924503682942932978771548379544989903628178331842449037850624038856192671063557267237361707010914888372659952661998803829496254167654959216640236240419873652519104718433530963601822171862993498724097315956611968276659110823276563029358464415510649537283841828294164387516919285046988868940584083207421793245159012676448761125032880561404936743302024049052440996672657430289567782702150296679141876958324157003393150925072834393718679737146007612617507194230973653974412347987700808998176266383670607415286127750496961385306098696048981100446139106602252968923113645831015374935807489497654166964597998353613336470931956165501570652963166899489816291994543905464363883407159190829314894778406644470191059560311513960411965914738665095638265677262803229078758766383066108905957662854080543198624040631486051472678848203020486981894454907522932054770776408112193044760228207072104219537253966333880162264510151754624217950891320440706946784104963750024998903901323610089009422838183868572968310328981353634472066490063320890565572125848472217230933055612193709011849001009565255672865419960056829644660265429006151300539194760045168250116667848517632751073048249918862355700748529094363726290270290542029284758919029557495613664072073931697282745443607149225583827397855170264481411569756995888929002999855538822909262345580784175673603950287510400971312139088370268570189799524055387109690603612272941520577236818777164636364879176128675198728678229542071312754978967664210763033957959108653651863781779444919899412678712928423764907121691005288899350980516106825818655223788462252153334194446836612971489094772880489483313170742285601903274217327250315242926926128366604431905481042792677610416729394810417339943977463586375060217853914329488978936886396677253658411977029850102174555320220067395535123950346706919443157516122511507620738284661466715676138386367229541949832170778533244918915673939137479988329685657060259167151278306833524842675431125374835707141904734901441174050379793612589108633066840501377528806666874726812882098125755061763464193422387876625773784981173346546894341153178110369347065537257619281778919216723757478347736692584907396553525465280946275429251771241849311441191413969172003637872099678047388035025239450501356176024682224467668249311712982002435870978515207226916114778766403266452145144742742106228795540754127821945375432348936142283395314017956617667828157948598893589517171824504638278552029670474196932053368103332731688706982178350092079892184309958639419841440403631613628253307629884316250862227030741447193148721062443924539343856233090812429056870580312711543995471851727998530421277243592120202957576563277613533869998648061493064557597312808412927182792636178362409395402260150893859559631578715102474235225166880055993645253046835788187773901624115223632088992662385023407185372156895374080953462799172987620414440729942936180905358197309279450209776593555007766640653805870904039614531883973518537084143894230244864424250170045808376637614672183318446265123837863359138699704893215575818160331895285887545827437579231299129944345330091753280429681789568141103156244670586967919047138497459496024808878698521346160836333270472298635130200137642629734637735471517045145078540244945159285840582150032542684179698730337408980103017623566306735081535776136440268219455451992215497263995083207830484978569108534657818638151117575043661926476577909645493242369022841806111380235236575062045367176783682768511238917348536230980032449505221643746308118425010255356251229992004688631164713962752903382481348672552725773150021394450001527774430926683387619237592262656635893619071263163585846127695100530300079874377046639547879897539134020579043735875185023009599240746626220145229372384323888022945540936396223847523155437467722487945646785455239225359200900377140273105964084306934088852008787860992086032753812660612571211401560329793832214084228057593429395857524521717369914142268343359370587662674276160007902509593571504972643463036479945026973388466756545150881574359518249433082154897894417216627507618162083668966756085631381463148567692391120486397686165792750280305041071239946280099008168876851283680669270469377889929536028092329444982956204493933472161015234730329021624735343518061509147545594946456316093502030773196260305827556891267627880667803727801709720540357204110724105732542510936466601903571954048549818067747291162334162640625832827512407048061300900779948622799623504708516145985012213066128926352276965039950479599025054218933783767237272585263489973885461261283652972314300730457664783852941790578036957193113075081955031973874311283150286403184856170571403185284695774421919601960601818394363677317698649629666564928564773375791108324348548407238625488777238518211328670745093268660856502856542834535320171972979229860241005758031649193666239533680533472370979950423310569954839125380028828852761943522123595349924682895321605937398489920414301703121399769803164270179561266318455901797219295841012450242056907799593713640392786490812691607390921185387000554767885456997885272777684172230331843082954714466387018104558473699917403971176646625195843464351685106217925475742140425283471491419921047248977972162575156672373197746193817822061243596422989290215581927061041825009847155804653815399057426127052857879727050206375139854161560104741726809568381392394511549749425166558489081010612529864142235029418452798516717374966684761654570270904098483745905233794851372082182113712105519707571343587179092943216424854665388887872009087709690256681100043348333004948286971352255994854899850214265390382427658932652950089188784522161478033904916263312673533154375821934884014411727230445055920912013937080685744025694219062932064212577776671376269809579433490938694272723088031262746611249418609253134449407254032581997882592093557853475505584487733568587715078894806203131493065487785440203723380497761927809957154459234728153446614221531798546746990282503841240996477976908229639158049915149996655902573218223649797330711583917040105191176724433742735536102486141207656526604488287473025755877987368284340028938098727213613683733261923552693135303732419972275563174423442905282441774943808206323776911531268032966426038460270633929696692227995552646995147524602904995596033150659587823699898334367514343866084386231705311693051504759628499414953419542245596613088619478373561981950114268507735584066652406518215557513372833359992910238429831393375687810949097608279271780544661879289953064773867183884844857013004022557065295805555277177533500062869239683945682975409507359078847046108522373913510672606705790182732188100331115001008076441917977909707713219163623869387811539545477880732603739204534569667862042315470563593379224530746891079430719130234297408341466149819481753621928138240328249176330171869473999444553856260663303889166725138498996970397322038728328359175070995834948252022241882467453391079440286631062811771528466989241872463427943821502320028625803228476611302085133640459465020316699962558663054722039532783245523248214477568050778531413218299401768330907195705539692059164158623399335692968950125512857220186542173420067552612093126403804838326560433250875162935545104441752618081244012893503811823771363571806731579276433320126370250703209429757295254702751598335372465733143749704921834370438028194174055188014228096771747691419848171353969464546650607502744033940028860225564945489400508639288064413379122164775835854309787127322968804269358575843282818733112133879381114161108426420831305022453198991223732405726579896114610534167071689752577473928895687559501432835147210307674519048251434816795752449633908206786249036538765306342739445060816484190752253644196604960724150418990349727071400307813213864641734952867713335948641009134080352351367501122661800370328818425677058771137191711955676786705564091584445232838750945860009423630152922186255220489774395561936797044541255440810982127821077528029510227153153420412565980208226601805946929298445559747714094339008666615886228926964831625283001832944094518285651195328847717772132048513517151530928490386090418545523135985557852750927931380541922257481010453505888001775248562693481472423216108751857192235098127819139904057844081496930220240269645045601868436182202165889574746458548354324220968635298152844527553388803869736058869020332127603873725511200990615726898701140602437633185197710010188864586966607708719104547324167927003328917553290273101542384256576808300677120752101576169526026532238210804749412853908923764142066898438393968077860667474713280603779229181449810942632720822587143654785528256177811115285034896523112134239882257354547251365709653285234054848464194760766377592860248953244082945467268602203838398204633753280207739211597109301754368194119882238956547754707893073564892444489756947783757200840453980128850709852393373240529571129277259812114238300670413228934192886214186866092561233042647233424286415862513151793478965436036189808219350252911920797031455364684447046534182162382701214119555574806067983925984610461306163674686710284889051827885738986949261477874239314791718880889577939506394409228335297381755211213194158529402987921331377505065276685790083667164764157421109646165835952850604510046278556088941205093536589292763699514878763161930264214175437499113986643965989154931583378576167910012446892218219497304014144419132255218696328118492788308163423787900596714060104305449587200161893656583943105683004311715139014045257379270309331696850658334691539207851875035215978528435374099729483430942131976967976272253700855441005579950156199826215131856968122759962831874887705487010495689248254618342986118386634058914397705514959477083668515597581600058112472881513731898970210149617594397680876594593877072628166760374236116509050710708352880556843596638648885647709388093802447774221464135237050532506275088073011136490223025755518860849777605206220092659305383277544995511767091098886968444965166491679298574777845646487275195590982867658478133072830641843683201952589409958979865381292349739199080604842725051613893274565365271446005246808114138684816201330772858517548419000181878641691099843394903482951466553913275601866545458701435416881493149847926538336627931454489800609664261458607637676836210957671548283967531353222532265202373896477825122096131601009202706382777926903822618968571869114649963333307754602601024840133623970095761707267674824279544257414352332327040208355299342893671739347404295277392337465872767210548430599390976255171035132793598585618908795039653458432506533401233407526327312290348555471049868622485002204806206025474698354944132034631848707876853744745565325958840297760204863932825931399643972853880627922442795219725714133386736182296944880135540797316197198189290184021883252943076364566640676040758575628179602290992218405448240015535845914723992284854968101141048661499685111051679404173822757957003517119786514041159171212896369502319086954661219266131664840750655867095155506160923327651647215218220747836097059081654716190552777717137746876861755504649980335774171522282853690418927232355601241444420142975214296511185589308033723827941225149225950791561304285010955289183541990764060580138810905157116131719721806780980968535163108197635335395708392873110184670528285826415824855145601593146820277251568712718056124618848460525492085427129369365935371494230546835600024591960675607537543986612538977204496071904970529795004436868307199484374198175190745075645395137220202099510160406836911554256646544658140146372991112709251074289416642183908382219401998775245208623489514360133261462461991298377899883934448218567997337314341542328116742985025256124924786191457121100428700985909627020377742342991054292966226285224759264867669608702344422471216615617847902270372395822473009006200398340672829019089375883798698835835348089843522161107269351648997505737984058734732616598849857469491843103612570132401908022129930754897414478419051312799480943516564010144491733778133637443363116641277180277116921495627959466190856951829480444396686180966653469517495289155914912815152542353413239767192075828967117257003852857872144376988232165954223411523203329647083588053232576014142045449082252865607863647829266357678123979576571084771578250533820086676252282288538624791605161038756102798657257380253129089447955029908665300444741800007041594298191965956358573272980294667411474719220786388090461844014008252771382544620637368432309356627312617483390366056399481931973652599202653920444279634411910646108036872350603384939212210758356531650815263589882697941933094654736528144911101201969190694406607529940454272416878251569672835982943913222232147792864453350527975738702381526903513357319567787777701350962518932673332228822697851407222253692624891142440987088544625055252129473290912267830239770130510187067853720558866338801076696211432229367826106021694687352027578492877087503441661974468128084739638945513182479214387190409109006509380218303991814307855023909150452761719856674611836378169055211964043019964096477335722521364563731482270350572521914218881601624721057114446011660915124457388715563568430872871073386533619473051927237917726218859889714625686844028573368084824289219063948802917340382216648280897781444041049301043824123338595274507774038041684699195856559278005159922549434765565527333777495636611335900299138108640578002831391360948859870639492591402690684350789547477537122228362107841203227991612336347158042257405759810889728351323681631573104176514845359545687797590437861021564323343491127004534351403117974332251515697439817701116433070277058159964801651691996489953100510999346688405785425487487916841830215061652642438378387297518250132590006656886606136740938742751720804873932053286711331941941276525730371999997738914000415896361634556603715986443219390768960189638673349744635493288337261455161391425359943997753059626464491286936206004722420085379982761425432249649783791798815701492989878887858103880656418844615895976556165314429374267400332607893266142816424141155333435157150452598848580918482338901757580802528741976175949603263826591977563609191637385870521749998782332433119620762253925528597387296716259180496748144102331086739068864763891467517959852963295814907013653354846502630934684022419167223535753366519202977163435544973358655364859546689623752770814450232363627999906818375164718395237507429750820056302673226116698102364627209260400186080201179422508343639975627131517829261911358999280030366669602650262797861712667282154185350692095889155107935354243199778820275355813533631664069140111807066645065175163977390935014556375600333148772842632795346666474384101625231790240646929750490624011286418034578283706509651189348845541192786632176791620132998496162694059818613250120314842053055338651308513360021187995855499873207839554574574402935110598242169024379188148859970341772078906465429036174683022259686168424637335636714501684641075878293563703346226889813933733979478554303270320933129383378228608860949438881590826705874604665853249183619532919678648801113121324571453296346462833097388199054328680593208339482346427581204104581651647890003073362252687469421665110740840415030537344632426186629719509015662542287899834617708854305138729962612392617100298413266566954313373570964073495403156922507037005576306146146565200731722903216708666086520536419139922640165051540449822371576557387640294691426798098469627468342663052617961314573281740450254333331005037595834570063348793750076991165084434253164144322094313196416567163959764491038138517155105297791615808765505741347336798213993880584024839238311074330440407438752951837512362733915683984031907429266137090418900680278904228001851666242159306885738219018211137302405200363449833990355023815006709792974385133472273785960375052895704994309556443296116111983676162393498145328088382625380666466087006878075201547625147199576285687575136061015052699099544576458297145359850603028568671787417608685041347998930358658530051039324243085336018900525971451418403532304456803512062857105773510179847937515140833570336702106766531612843914718968822306785858539398150438614616225732700739742903373735339832236540496712820149462357197998761375937716631392895175523541579476310673338472179521111949083781354023981801991582635940731605639578170372521144943863727629771057722684577189596201034028132310075182547484096129710072249346522839089979650730075143469654009591272196145689644411516292315107031473751283072954574257800677279954897248714161201222154790805327940534876141665840927274952684712565480623111343563066080211840761703308514388976100427586868097758020156361952523435976409456147869899963526105087964336422753550857055133055904029324184842141171534961083292852915222939645513732529040837050314174376413620502791364189801191664824639769152637850236425198507380590245319674591753282316896558918430793175878133832114241721256498767240370519603187408233534806445899674863030584413576547620259331014935106523625199467916116899915082155122836368872257685878234254359070008346593093082108747432428167698080376685902161971932186805982329279214009491056292871501531319278261005631830631833739196619892587345032162709401270779653982669756686284181679032017612468745474157641585653134908456779546174237319006521229711565959390777186564388803301927700232902839310622080452439409707908369929080941018142170644032589030069556640573296816610480062406431071819208518862634842871922209607369634696723029403376597290363733679077706795507637493839662215851790157625422339228621216201528651316495831794712211216695418209497235347857838164042519972462367883595662518352337438064021630697502449645457629670935636070961741060033401750486979567493936150734633200683255890628509646291651076028966193527313419529928990479001046952756895624125246201701460665247047821588942440084388536595735023402941964150378305552154620842803522309275341473091675882099061192385335132862647566042689543018975197790953346322460971706640252525983360912097071541053920590874770719537628129950709653657507299250140319140028399443077002708032668750828570741756054691881822313218185166159682034479013236272124781714088849707755316315553112379994568818083037660733975239550288845810169331264834873198912347583067589264699100295245368188579614674240261018796727707723807027666092313836576441074931856372005529266947154768832870095334169865470802366867663127366092637080868108379460045716973308845161528013494375787397885497785319815765809424147796987457826942831100798146106241777525558911792514966479588946172897208640371030586415321771297763035065681620785568229447179733703859004531102494689559175599879447033512663205286015377593654468375544673907485161722953769631823944162818135109447760228607699157572935045075626578143896108867033611166711168922316257810365155156471075582645914447527570395130365614968150523035616600413536407051535573110444205512558012432146545729076813401517681245532064287027505978057422916035752162575874757572351121923734817848732224533210702819428129321329965308568489363575074333225432900655669729884261197474266432637530478898397715785223353389184393811061571927822499446091451173675342238328884024535693902790732083305905318671339266709425257530303592849230615827766755796898902602805418450174904849599585778500822694475816481782078725367899290320389366633892163249251299028609348736282793408273624485869657914088923839650306151933022779362073793162639298373205302349513074370163298304719544661701250602376780337283892340524779848770928404533300347609120883409503953816511302890183615424581086407648518825736503912804385910905188525916836791978966380013677759510417427330670929411801115910572415152370865247898712124357910444152522398066830661177282298688705380289913228670243624896337092165156129798506328326727424503864874689056414927506258010124307018336561415325244367754401931703978001493647899491487186121756843995024192792381776253762909148516344335797437045640363391836205472331725631247026762481320985855189128445685410741710012683729930320938773328293489525842020094127058435144197813509760320260171307463300835155490627757472377839181839443246153688389061349399453886518531279669349887960138196694535071456735107702279072261101545026703584756076326008919682137858542621660202691715595508677243855934777894444462204256149275793510740278117427200779076095250448640037423596059983728521198528734681415729565734747232637835295395613600986879845799721705488341851974681401819676544637665830937241873428454787748811776964541638804861832759804897857345623298630167531408675838395941634610001691175115208787999560183811757677841768715473270762177591234900430169222511872506452704263877653809397969662510072237590213358597706768221363926956827304982725189741141674089733527667471153915792943127855676312145530337321217377602331567173858576325819286853018634950885193842287944361176429356210211311169688487389642360898949291932746947223894443646815922236147047807478615452965083467895559712933147489799964315722430470834226817849811113379925568562530921888616681066190666478472834737664466140028646123801792426397462097309766939317787435534713919341154435141642825139356227633788203822614187006363536925298268709891317177149536319920365341064046212876087119216316871207133108374319213074701644144251948588461021695158230312038766202384949488929473499960506714538605423348920308137848822530257028780974830334691721064027379736764566998391293326020103105903768902264010056102052444738967309186232511203318023720951058207037921971666841542361624495194636709091634881441897482345901687578868423156778371107443686649020030707671584137236183706377889722828728243857523469125934306102684540237760693959840014771160355900618062406239275074453599885464785352568814633788295553988013787495798591584212790979667455719331804533535797218386961498104262892862680400630824200421122117756554526510573914482063167178912411434283171059039588915432803533764944680250496043709645053093910940135834924829022467794143357849756929530852392580498358698183261758965072945483946509190876620712334738802532143293967834946418769544685582650490730018828382900070788815215349516171358571556223834456089685926472121410139976845644744598876078578724218935130228973944044086197703949525053871316806662519262448045504993499581162732439212201943360143398201426204952199273566952726695252454132459823588340977921555352818328697523818120498847540733569140883831337498637248715645249487105440222657881869388136573134450172093575012227085404160765788219662349384883465216335367629527477668094950738188174867147853719245285798780752481269087667973996762436028473467278743664165606221941748247660923197652628218663222511891882040292126273912420496286574219521362616249667128226349829044377498938854496991665306530717483515766845087281986432475483662358319940821691490268539665043970445226389303799280747095362465709894698615421098159497476822138420864821690906180552716700017201337259631984847260779332505756640956405140339939375722105350525833195392756021656563244298561406563726439268693984726707061039207849671787223874295841740524107737805360824964784076044928794749726666771191029436444648470273515243099850454076484036378542285458923494977822121684292001186107996543016498898096601756156525537188835506195995813239304058577573839214399509613053968474761959820115909818166744729646150177083233482778729920134289915964696993609641639099907248738775944389811348036598392481661140953318598486378631978910296422925207658868279558134089884134713993324116727737087818676096345022240363451183789923099922432565660078687374575064468777507115349363379121399733493939876265229214523629008508378693058562311399740513835919623994402160711850736789006546952092410488200141258591028026110146202288724838617825556191584510513049375238520350908913194276567533876406080623461559473057750763468709133192883418398582002446302247386920065461493329352918918927392857841519358631822502698290623986671748867862077554870028020871319466765325940459296636211119344875969834105288592168014330398533064219111920979584597886222179774885128023601649787750056741243850433233918708683278897136954891184852087827008436766092135831565885056423549164497903031407869210825400109838381652836036861476254420504569408543366856138188380541320672186097627249876045966487577919157405146348507944690273358735085952517210068113932266033610299348838599431312288863699485242562250029562171993574787815263170536206293861474172421981186267793130134703405355708187355752907803865571951139952187409318328602210627919858430583975123677754078405816565085718968928531991866768013500711412691294090559677639877402688747052533185740424652273022733168201561620524723911220519174063993853747826489830316206531233061028470903486394568251895617788194029705807980765003969891953990100536790848856776487537757804232916017720756482734245680399595097455334309219525352239146916091732775420714676973140003724594669769367002551500411447035355987961147895816460454308394263424847770373867243237196242830263990163327853262224448519899737212123550217460975008399759716417410858065155682130271614159610865201221175811094558895569761190106042553748739116481687287045799499239056916317557736050253641938616715529807813264474066869587923650924999859139034583234926958923436520302350397945821978312317916151847043404170113241667243651616037868997491110427194180493514614229275893853106844115629945108737225663218358820751349340824625694429587922629107282909177656743761044952638743679511949780449626110342154334029126107326871664481487541869384759934483790904777178862965033317665900408261147320582402738039716368062283433252032659585238981122481651689603484185756016829169730181218172871683723731823775525419884960058069299474705032470744392186297567187667418756665508051666740922433291313586257609082347562075930509053785389670671865878242439605998911196078810677765236836758152828923458761669862585944009709611655163680157708399056793805370334068708961350782387796415173562255396313788180370027692345720081426309686164289527819791049081138834378601176745713264039675906473229271403030553572312247548485540528837079230316915356810925681429874504128455128076687251161833382757403103004096937231562447595977142039109008635709487001123445078647596711280963010485887115804204317653063766392062651102323190453966165692287018368021480983522620928785578490926587089880784096833399420649389126954673573612911764810954900735784739278719594485281622858693256595858867678342746001940068591511958444561384296302689532713395246666835174001278710019087078423687192141939908586468617442449112040766539943696144810849227547553058994905441391505024191567769720875900294567273757245195571112221574572327604424592274645059170689314362754987799707607588421945837277943968561727996976755463079443655822945235483579614667692781040621932653257528348651751652925439813936671669413399144461450165956787699893173081806152089588536039327822929735115242904119567730000963538953322644165998165302023814640660142563264353708890597605575507750096635851230582915501536243298888908205369917726542474227907322447861933084154727685735509105251743600945194676431456636159370422678243932842501132765116742769120951265772952461970413872734879254540146355916051904450413143419684607385534724316219505736048476557764475207694915209578917201957661910069588820627851049383929019734646180424451666343571768499168024085102656463672997438920971500406074394573449306305781753317752852594129646891590686091130777327047276564900415651871083147007225835905863535571875549604330213085385221035160805014630858762366455633924653837290917944166993344595296033448666556789801207118841032478026580400734198081754678453633907437274785578920045706991561454052710854270128831628396276389009567406024317861298418598424026790139053021148348013636141990686044387623143147492845945701694405602014017922222546446314487013511505153139929107242202503843345135464489523922159272650554796802941479872091427098996849714030733940011052141338435913750235992291207166210283731420702336552832628899496632244304871895507354152235344625105565555670991062461155765683133113542982258695721356740566495997645086254801432165036057027453381204977650442485403683036703698939838548760407884593259073490643729030792769629234436914806458289051274680020322831802849221755150876692588463405425784676819128432384871944175926483734202862495219815073144306228832680367668178232199602553923104843899721549358123683399470702602074433437890983576319230545983334080940619608728445607778233355180254099150307442105410950775458974764038116678891912673966267990801522374719564326389698488792042267418618184326437992986276809773053129765752577418630575978375466300739453864421069514302237083301281757451228737206818427189257712011591140715287897283088786670636915052528221252908312636572619034360536809942008719236963984144151249708298370137514690670904291064001633876566018800600166849848632070007291105593158269155066603262008890438784362021956427038657791358947293502080496830001340645547074185951492839200757894961152631553051446474246251142913114488018044628447621323293005581399169921120171947082664788579623843858726570410063294061108334698361476982359648985563934374688198970110221729038010168339402179650123063163499029597590590697740968495495961618909058606832648403480570428440335686245026535718448469402190343020562649520739540750359056360971663742056054784504445007740975991610733611118696052472183832749874649206452462776839614206990563547190065774093391040846426779937990865435138652545363068921333488383361441502724358681866859137707278936009248416496266334615936617657461448734639864227078896665148903330501035317008673421727485211246988575071972979505817410139736339625351301336853577172128764040181730150379200848365305007561794654080524196851054968197384214074475406656802464351973176362765160866616096101468070031270628077818459876303912822598123476683281481952295477995249667126763150112761262910286582387088061211673479473676704238380296595479108418217474535560058751058078438499786615058187714615960323060782028126095797280598938392759111158068998164775786222341634022634897251282310808276499945320910268741319074248086079082431662924608366227647446305294335727659471481282992856610918499054746142175307590772316888896306963485365755265085337446903224671868931987017356479320808469761295218590963973716269407899706504876741668388752340924346414337952799214458283374618930412214852664406384857435877693106140694965476177893736911458704636432013867482057273468378239461577696882034357219866980929931467464593888301733678427283331837839569573130338632733492969121215829004406366116225897280519662073960951868537822534086024101193233470165610619780133117979078907725509094644623975789638220174914186509652639089732940944864089950877869608907048926351862015649645172396687166771420929361690434096542784728054061313126620642598397224159012532117540599004377915956146822888788441763985290757693520830284632512718789577179729567936346043041288433346668579563212062288633039592335105883710464766606914107734489990452096656445684920256434558025567478333958671613058003481042378345326201360124642921309022205710825467891803463819253810125238393040502374971996489831937173028512218644892471848275198049173145837015899101488314013519299211207646962606072087899665960211682585010861761511271158421715602773341870820110038374391356435554257038227635190120138970299789625235545486201954694638570756913702212546874726019200095505085573327333811441124766101324501246451427017518652578014418475197683556138990006767738830760019119246240288986848437632317849128014783726187599887566685264586858963425647324815245446816420922473266510862005845510095351519293811284491213378253831905793338589612893462190554237020516290498744959931424116762739883397199536794328294186214019461511972731584787847771681166537102786895746433975415670509122308236596919525484533853544041725221613283337938137031111229190161552902533933714157604534059029697606216350279934943186643001566127294076164734772900358241387221880994668008048744838178829776153676118899128113367963411201313545968826146310889103871051845614234333620191152366270995578005175851271837433680091905318892991533123084051336449879833301297758621141794365598187510006653643944787710324096651824671627621347870319746594816823173070441790359731138538329715870800507752422931898217821296645147750983874596419163958062924251542461639143035917538388131573981573583863120124155326155375836412378644032499353617094549202158127935647557257224002160987264995068214802741806157536829681919081372592618843136646367905431105028388221244089184959323499539794852675369483113817039958414581070315027140433327599726471746502681521832906997913640527562891648052136016736710579470655486389156566464251543241940045754922093123142622742704730425979027189696435742267313414739532324695478516381004198293735113665891463283051779099735943126305216894284838831969919196790797397128889780815014590048804785871409825525922583046999840554152086157255009770104163837429639885894571341420197948167962060154266560413479199443041272822714101345058015402099937054619066322447992231450044093381242040485755543782642847862009703754837487451235736094187212205908047864302568148104685768121391083208837976313148238164975813742570336058839367908824499771208541120720208911165976771775384721076223436686752359369582264192466037408838590049138510485002038114861520343032898499738297274247817645961132090953795625585079091745973128745963968990240082547518809218381010579157209370024152329876398257933583367819384135324866869356580816236886177485449260621074630253369298987663008917241340262239565650691202933804371542630560842889340869713206544342654944446272208458617975875250723666490972685934516422903104108923774116150026062456945442239150237391048585410366296042545355470692961146504021975214732884425121875486535292270306295410121342514511971300953344374109504471498342333887018878236791429923190503158764139222805923633916429028770089781348034197753415203345215275903787098833297636834449010657823801752689454747416881921971610755600578215323740283033511383455609355727751524748877781156939281803495815953420235812326841909658674976205233295977894356428189860262430406986059294080686873367153689963127644278773012031790642908493283499874646494300491249835858082045523065782012179454179710505203399775035222913455997605340847808528387759352827125148969574523028780690602210366960783355475503974364385022723529631291526501104845738576429050585662632823484208662664559788506971196047518616525013694122937451986406413098903990018712394327740867639977173795172887106620946779575983908662372221541167297615228238439552324224797312869410444189030193235843210267886125101383258530898446439147009120313037172406613069266605606380528416103321315712818966569023333973767445293940897127486453887503678991613168315794309836750370886918523066969088702777448570613718944748163734554063980791939968726774119693808306323880461063362921170955356312331809206172303178863056363828105015433597341577217597784776368920851885590701064837640220368757045597280446249641932630801491193556921196369257488617675247001827516773943886904179572250563488045934581131712210691802348332988999666111535866185342849203706273006628795388214324666023647363609918014250399120829371737319559821894207285307433823753493121179608800366082596029251401672460959007408032656875987842591109949007189882133050010002628531649581055816423030964777672945888473282599874538967961393063670147599742084950599562480476409863905154615811855886316190188588417459035622496589458512223250418609061207577729440582196934940339098553847418698919502586338410006947461835393068012768105816468540841125155241850102977699668287052907291992774076339198776182820476747236992125622459244416367787822237664145381590828286402944471706992152064821423302128082262282752386513618218790032578007556847598838699405446313904211021822113589636497081762605016280942680344521318852808506048533511056648890612069529112386573703537624713677420484829310302070872169354662814927303470036035685718607018194413646746253934217261095252910390884112072913207150699837906950203587655419286229471476281766070698806085658601775178626261405995148564675358702191663912016882275884747641227495160861838490431173806978780924873408041493516825578748904509965318989259859347147515014099951538810578552970373141526895065913764604636039006236898203896964474971196284198271203498446332975882710651601054143098564648796191775734023798359095805343144025003386911959611046717140097863734566008863968006244252246215338463673149162049121956177586475084448466492186602325770418169594671114120393698132234610650138744680422821398980999116884266819424631145111712972816802197191526465687008721634546087977352608902943174475200529171156351753338347573533578184236069438418242324679095865630934994872261922392005107457894832852396799056487474002995184909531808926811565914366381279953976239342894981187420387649334116411955085279985092284385170506498623093470832886343143955501153527209918023766571712460869608182728231169554727399553464688289512660058225669995719998653226731660535171193871523225413833326484101396230249113515268979621554215893816987558375685477623928910922262994547209458412192269544618844454163065234754231654788762728227211872463682993507592374784213459470342935883028729507230426712869660979482077755779927714794823845876322239047528270581852337025570799968984828949242919349579087090050884221165252580676726177304274805856408477492836030046759772464085606424764456193046203780421978346447174795818001043880587732340159908448865262821594915057716613866321186225683714019204917858342865101565003376811421835429519505840507495486045255275107549559586815039363027455391657017095232729709706089633157479400351083402840835512461034325326836914777348334680908888815795143572664548375023398571062633435384925992952063754973626455042150525141749250676962159532753088944069860087651625899228050082081270697447793008038342153879876017839321316971254143735950967346365186741829138354110931238570302144515751032566906983313426463091317849966002417695807430669559649226468327148271021299674208889997639663792566562509324892412408041640076281891502939141421610353370848453733062966557396823629262453058230030633406600281301332271749358719709980169569748317686023066675574605167665524689113037285969066840404791531590515270156555516477963787179723217602715949690247828959789231898650431143618130772042703392785588247187213469910445352273343404752104718713402717821788226550876678647669886247555020224710416050911722803551788402737529871361398812254173151439137958985434356030171329180528405585883838519048571037859854286329670225282442040192727839267046334900752908348655840288292287262444768188208838310407145995496887325393861947229582853080373053583851198141936350673267023996079134556060590476581668250292269414490341420475730846815532806314500621596632993107452161973733179990135277252771285047389678752016910253157217197421564593107949343028635661030014753699015333048478413764583384107363236035969017719750778996571096488119078138626679730089831243742855642622726171573764877642190150178158447787496917598076693074366683342023424950541212330861596461529911980480716501658472507723991452640437096506082404592349785381147435486221933354158725453926293257773129027089924398078952511332744366364805860261048350839141783302868665901404059703139865048393786834351746555046036567317583657567093710748283277507631430339942595296019119547351282928401088599152318674993233872533710170337172284662226519329664680318094761402511868879635447629403066732455984440991451218724089499009723985036312118858833797131303496019348679868992725254328397290357536480501351643455020698701618827459775835519438750804881602941692320032209883527335992036976124255036961475869217186805202162823273537564314561909696911237110404746010971758969062656391440222600542291543397918905145576794355425788911227123779169837692580901121077714808885460003845225379300457529245008834674445038081729892040536696027710903691357786137715104264848859614655092562612404696212232083887751015402052534007761862551692958093398998018783838505397939976118573832449378456740613903432070160002651331427851739439314414921839156610004830676183367706727932315649322132527832705756676258014528484342369097044110815865243516777080468394280386988998789424381793353421487353805223071278457982190397450868818549514087379829256735197687393731407669572905758989265184180562963815381039442397273053185268639713446714884234791641891039433186346829516949828095313815927361141566067675365151161469977561217964220151919074606232100756258626127903716481669039767559993979095378699409279409685808914981459638189750251508038190022691710827185626296708506367774197515483127636604975815805200009290712799382359039269579790655452666861991697476969932273731793209233418321383003212378105966488736239633345982961877616745395268048281572880707410901918224439138524929792378770962126282344355688960390203065463652091197432355269832782467477585254064637052863894309422658198716357095967394268942422564784684492703233374747223431290711236672670928957094234916155395428267297477041117399527120203514230265465748153710982171148712252580552868281004074761487119880602283798816368839200721209257172417660884594740355812369764910942102620996279369525111071371390230542883229103466901694447478665281394843419273835963292588914424131130035499994387211715164507276998100432027992804729932713987142503731644440458036271942124273741613193119532103708036483213959941195590231266105472024222389268995477677838251648226913842112046859357619694407202611275499892030409014425927075385846476947247681449702338624531247979657907025974159251791780300566462197450341916413770438186728828300046778370726765039041724935062305895982542725874256366777869521665285175970953657037381680529236001243057231551375237077154311628647171001276346925157897075838801572047116671534726603964411251736911571550827726742769981365840873418960388782501588455238935010492282985057993960557367350911188938087954354472519871921449236581826794500793021918148282308026777552714701436453016442093263750727772321528309040900271551472066138988654915653989874407577573282687539574858134270921493911111990559382311110289165023386130924147207886022538751622354059681815063573131233868776039226155464524932768281161790842324370651429839544685846896155884307024697007109437228494055411642897181903055539167457393312063415995356790518082942982005063148337383681825480054869305825799239246092498507445047327611520264619611746201263320693457020526264630253725227353499091134606077312566628381047538435568604141104052530979790376769010123792902781816959078823327168218980240304239917381704193999918561361100656496845535042379342728231880361166907351867520043735928675590530141108087497980587229683562119560736005888503031810218771184194904812591041640399229518679043565062334803288392334883110940558772150478070924785715481567223209952131330831177667407535702655791562684190789768786789132284957282475018091859160741915607671394777417002271478618997394318975106694583026884107827763317970712748080447605536669479496133976238597331978641481787448752137437338337241392650004743465568307675082703716844300943576347026834660593799519530429057043911830080575791666469928325183160705976543974386146414142554074169335765899850724472366944217604097033523482067311362315332286939371038297270616398185511549968706056560666359062234832647511772190435373946600119618159192129193904167683027108332827033531456655569856997264358070073919430809939875968720461998571780594328352453720844884859499858842990920749358779443711890767020896668005935656895490095009928872076583725015671567020967975737483141931808604551677545958044606414564706778290818303970723876519887083306616631233132402313489001523656169599891813766049215926348961842471948398999238172325304809904881395067646019209343986169224291438899200782637566666447288576635736702504808658761538072286711539389032347687744391315733513753688509157252848692946570283675709160461475136516745889880591755157434185497688440783751339633980793930734303995913875672092985014888903960315813527324821699005911144590742669988260416659618027495904101915681464630824087192753401772357041576239578624732811669887290604822508709597452952001501441845362941932781383353614266973322828360504008250138854776238971220844872652695364249512373325867694460556020925292600650482816602411280184141512508870772489688946829446577594015963333866246121541914475765433642668738711386597468291540225467074282672140980074641194378400487386831562233927865312055565112623609503636990668729578050823892894170177322214179028192541645323934794899930152442941710332096068932616014999370044244818486470744411972228902740266938512754972496617883961179169078409211083982822304964781188541509833799338379075040705965451229588704506233465252468403966969257154881900718905961702602353386273255906632816374731931428798738918707352349698233466732611137703729186980469411236222649142127429656673408561817760116547860302519360286324188794428145934902036803470026592823916242949351404017004407177588898509506803607504010336515467388292758767043620808805476878394938626058761133308080739024409210398808638207233379366267652393450093927901750444664947614640182654430984059014107201681813258859914342299853080621921248548219898090495977737242727093729128559877302189862259885256040547048361586256833216341885282478686375731199548483737233835906099296535098072711901209133568707793879889424852877767963779643595749104278814263485653666494036710591794407432032477504812701523889808130621394150341811840886129291037180458951381923021272816228771935368354756957789438153829274877904814650943481377836042807226435722718925807848822807470232835925563985438590645622696162736325721948276859379352474989698673012937736789405466765526863070595604690485417595123855465287841409573627795619990402212528918240256474705972469551579927874772433812882061683186934668187968018423187709306938068885530311234576364597120702403434447344334030839610623934566115420216160925592111934034912784783525496137743065023806159922462563329836957387369920789217571998899157348568124981151862881412040121615925279517135972583501528333075438053398794866439882788531317658349086819935937544957060515211287026106464244181540513836392830582499655160005345587785040207578067669458245990781772498192651445982189340865528906451898953740458281725122520038681118961181814818710077939705347032482828265805314429302577385542639352271106517444732898688273841529706892920133172067369736866331081044522034166333987766040720662686076904919925212794825531038515985162002529871783661361367511065119128459656364487270677100327102995174161972371776439482127992105208548747292867592494620118108459030477639164781780879143050594095166042048162038460657647702351959033445929515282991403262099577200370874604819394717842888590891434410124489483410635334027231634824780079683170244390791508186754296476954944708097860148863134038318309577135066108155281264112402480924635526437181737062746281723640341595048139043541594839599719388905218446626837379304963578227527953508563065789864161668194980560370494338209700976964129975702854529730362522293007440898960724746491273507038317280959899144101205600034645659263002486841742685069825582603524486148405510230931662220040985369680003579587870997980477811568384188265481293180422298832683285278539067532780237996968498214333046895006156028185032842721263242307257231439362984626360537815605765200799910969308514721405035477669526494416733102127425191087280937443298203079918772870777970998390030104233208569465905213461890479947320883530682357820758311501818624721940179876936174477844316327934644797295284323167144620036798006985840683183330970514349392449599324081507537823288846208343710337074513707065982405486105912320045599878959546991995232636025686897882898056121971541018124148382630039584798524238821396097436655703869894458546659526085816960182657894678098895274026760173167138961083238536797062009527787808406326125331856498293211572890231520991625894403556470728547952925262779867287073012345488204719406107871581069129051369790248547048299444376747152886499370647442105358310978714291409253284325556551560200016957090969734477113222545461084399162524942215381001227535397865230317341192991214063734419464620034120061756068026923580698903732866069083411407429941768072605708807033108942966316891468722024884324185016465535553813901792796604694119059990600203881521474226450641292030865640645948927981605014931983649668166841461437571141157974922837262308296456397556756923932929092754676773264588046563400073210708818756973042995279539738726532271751647969827244757370068580095561275880417736936666099036519939543348264740121487855832034988427843188039635296562548128144282632376916839080332303609868358160595753993290329532313356146570654877679043160924917841094702452001557403346701163877625257478355683424847308742569903066031118577923407500502085159379638080107438708677724704924175481178162144272661879708208502751295916752156156637969251151004447299058951701267005635992373019457686385125414156724360342009024218983607751901733807453172031195646457729451706646189449356087743348694116376191650187271539273587403498115080232833975704109834181866930125611627521909638841229594531844215282781443105826528039416788969489974989254677764096148087217863503451633652389904315314551526705331767419647955182048591321947371348062844321832757270966032458062130343921961529791785111600021936740942396311847252246565171149852937488923502165432565320424128481290069834005682060116571986283412418626051261857186003723516817566048971486672911904245060968994058783544962371867679275795418820125372971703804391778499380768908857998475250511084258079709199208706076530937113983987187510939801402547468311831069250185723832941366597685472435266940246240586334767159199039740631154339375339495765997169801374803001209054106876426128929833605532540560554372410090930360511355463354022579654951353073939008409237688626366856811218347040485410995943739593373781063108142859784916085388738843359306694405505623552392253643342846423470641722648887514693165892266061749116278297414306715780267290479084276231563563582908534887854731052883488299206510398082036527505169396923556181057157821206755047602688329457341065220613537346611078981764306871893184323479275166358624901167117338884532538985349414810337941871513511697730466443112198271047936410919591314822537903499815393515654971867199632595298438149513318679767260241905337069477322727607615933224149779122459068792498009443225359619072698332710779740688415063415395551987381594883678906606942320729570212433802056471166845000052482219293217377800779872215168598086489590809203842505927188364185403308569766103003512061994710979413504357576090236831042666604214628486646590364194474830331167577770365586502018433865992563590008118899757093854932181330043448548769652349236586217138061353856326557492038618940541029379891534747715711245726230598407651703838530538761229964688718144319677884999694581725551569040968341462351709129069814840824576634085673382532287242565350037504398603077669513908463642310049493095874829248348345142447615574215308516798850170335869836509813889577297611414963488141956128721880183862747478424637369219274849121881788892131393112196778310219177520098824483084178664869480276126855692376183557182413181048709411138154243620880326484148937498247910243386119626968773962758469688922119110856277793453587042904871342199985403037156647747343120259411514358616315421816238554268706850052747347657000157014062397070594460349765768221264176847040019249460878495768388782970963875926561865601775574274729440377096499651548913044422510337038568545508999419896625233989254053013154387542298855454408582481284721223430245238266939856860022815786394024406994308186573679429696666575028510855975683872127889752569607333644887940856085094436994489218590145592725432349543538563928519910169704904109717703255564547576847002672287738853838108746708896278530175905754319538705469985754559057739935498786548369774069102781054519775121063943243206350679358088610084204141300140221964344629011726026854903868006177628881076604167596296767295381456072572966345663896345793207406929631103087158434675346949528880546146248906612336762318834669187620005641841332196595671667436544832072817454088235048716043130562183738260003988941698784428539592699772094016970037508014586004574186963488257126538703309654025830828628201454485468708864134836047498526939969714178733076963671061580083290709830597763121617185485149884372893081970555639329337281168649452461299593411076651877751251414355336063236969088907830141063133871053566643220286997095291817788825621405793942461237707636618911135046304398562590970647690167878543153869965500085715006204125364541754796748839443450727709469668256016382972701299172676050695590921008823912886041245688674810120388177479857339958040953793698416535514158418298783401894419502441429073621553495403918430781986225303267623040275482814123529141549626725007749791087312411602479606722361835648338291607260293054767591173142453880021223208495345907474473964519697420881306005825863770061008694249337144221228440868568242292020203800121360701284612211521564933028648199708534525612170768520458973985586391145805139399775630442428599525269148607920646422652701025636854593125514108989477970711799823688486741718109584208425020645126124092873779008586657507667048087567299992706890993553434014064333088648681728672042950409195301797563242647598465255158696890165903022147151364131570077917694522320049440502577726925548917523175859548574007843236055233538883482002127838312084660178202574043025850646291987279852146992370321579321672603640760992345173604876591938700048413478672417989278884471235800621239373452830666372966880391930267796960219248203096150444413041483906448052130803192348931065652854268730810008498215539147782657014672657874629578838246856495297860884865239291578411332322183611396893645951380639821658665646088432886444716447734062136980608843143563124215505411271364869349939543068436962544564653885449444613383988542665627739206825006742540224178057317546482813653320421515828613540201065161683341513431817711343034036531869962671861833768818587844930043008768018472812546070768339313341738929516479991824220805303816836690879191214330177341514578796993328963627894134765790369879817313954147299804987781149310922172604790907341850925842997635313582035574919840728683077911622592070155771384621424698322445647321554718366759293210691520409997096353975198756327428842673110380764748716385397927478645712442988212034812639268889128437916769609914682232503134398435871513761931752365685548042394175746067157212492479441674222343569494750082243358275236177092374171329768175397026791202998115116171100641288316280882185723640498658837983099883109456296131194089257688007988062705921444900568048339116440768577298784414858157693793166367613281440499689732618397711576978818207795164355179384758008851426622115306182228185129337323876775312996786583832929593428498616218065261625491225362520171268165504475077967956264635670567350824914731291614595476034934127588141883869988364223900115580755990233294489823595111033141847609742241949738353563977875524561096922510365390065051775340953386284420024725263531589578744257235785381869734002838805308589229306582975032660105646649364288282717312553215354349479082584595327790609255494310191880689525460744971121647524747640596604921570947626392119584323021180895162595548031475769297243791118641964580563219071065471861418509022205315491035877549729112307584215225765186996115739909470435853075529119162201600518228882720084726047554831236192015847475352687761065014375597055275454687543008624660584352420983103050057155613335111124375288004760155305730027078228144201909416382487640084521106868193615159840757818479447844206421183811408345230190838863250431499918168729177586874484728084868636865445148099973229487739749764609577987781169390392369497242966270425507212610812934828528521156177826411275713283090882772825546512515274223955068350749842331555373597450513418003329577124254677821161094531493889885638162252648124859798659484749347281304608029621749697248277205547759227010346398840733835704078932110158770361298600478847546103399874564356943737809233200298634401983289574965502889950119715910314204182952800957807422707372997328681778645274744251676477258197501554539731158112106396097416846043363327953977073111908388179512523551632120109400216730910698651298032432313267519075100419366981451766677678433634290768556476024259892388277575015112745538301833642150475484534331429962422746240538428247451250959545950660534371030471981443658131190803445900690130118594379888282781719315715247000149965636505929026871706605171432291618534333761318451845151830825426519479540470727290056975212105716714904012425916508602650536710176141641285593493444209269207046434263836548273374057672885442528668063065710749871460986785065752126507690271627510119918105015006194436766636796521902726924828527729221555688089549601464704964555365257856557679661871528602160152843109367768451214141364792237227608341335329911297162776226178031788734495406365879420510411625072448503864189251234122628119864954567237254740451182005390599798223434894313255062730663432876580078957089868397794838293351415528589290432076407207738836431270764580991227755994382973425642248800040021964660391183438575816034125882440178684994948441384290985810656184334066594649137148276698553284381727983325157781780742425272325487313656152952393413252193962599112899629989105785757979832791246061189358348761499641457778264037807283436822813091432757288505853767015366813608299614792999292231174236040820701493866468734336887057119624187327495575485393620676328263226233484451740022396100887957726431772150295347441438939832949838730356746980942523053493910708003860003304695370430854033154837325948042526999829818844957986916230070409233768839527010717673849324907671419643370507120960548226120452228550633305669639196834645992544507629990887288426236015578249462036834037374625647532258172276727433857112341426803352063280383821142591015643676512176496677980880582615020450458313456827451751555845813287482511346578197876602932394513406299794703024642150286108563255133101202027883812483860944765020260588316736971434699184449219033931409954479681466038283381825579275484818832909890691503558961823567010089535117853712144727882448621146913667992452115923000454778712331851275319712015264291850991263864212625167316846116600280968463264794841851144772969812386033054200867358865440933638026815035333626042809002521620740560913470766754969620227211145555560031255818692773605903861618684855647285209579271937335686063501759589507805819692161535581004045730516264114374282714282482965726286900006025068536110702990556247568621168444736375368418048328097880714029292003798978190354865157365113457676515534563165560655387450373778166539254830405290839502460974089128993572732673839847125636648250938253617503481654385086316581144171060839642072082394635931340287559230264016613870756384509609894922117967876778067649750519055000921482182267481833283328333850930588409827607487477430017661601403203716102146256850430146668090380096025861554358615444918466872556722044665594775662393764305860123917903717004984209104994531541629319127161877323343817145629363795967855303732985602781690726071709269693196911876869466618105933269776959034140574056652089230025761394094773773743959745268781479793494375117721192975063490671966902957257248948478314043170987974516688767989824749960089158095734012733733359848716715177179042860259059196607962134080359636015177795687627058437174431513422732528340945600682364838691912235195487690951431693750839184619787725842673090382333398048348444780771930525158049845203940316420508287607406818131554901949376879814340680894457802248428340288374223958638327036595752889241359313098298437288570864417243477525774624516892964685933427520237898027165769033494765137536094712522848939262207640381365214787141794328394411933166179049590392046960475800869381782743855625646854073155649255040820305351329392246972659369115266554219822846520335852965708864713404437253334487468749811934638871747312919738781627730850055660006329730038155529223239436474289115249332192105396808690589869869188300364845730651393565278700565844769975219193444400157175785911781126830089581327512126550309700018727990128201547944454393749056773766765498640277741081544934408530700857813976119803275441587397117041073286668301724258706889135807534703982195433123879231616729659753561792124226648784383101526164957645759804699822817211683004863432426723369894578328504619237627100757473721356859217193619411624242988273175694175161865418850864501887347124356794732106429299550130916334011947159564391520324813708638791247648255148090437850025947340372745903523104837988083027978176476264465279871622372855864734751318835684915341096686970197935500451123299124104432038132525322484901055931789126277647615963610922880299856787424620874980349041018359281310933774280470371903957731423060324324805640735122362198448200129890103962831331896624233302696033934095286812203884545143224583161729221158198052932217278200963094240401599275610372616365203544285246944270788481479452635808713753285378023472784947635092482664418394035902922156583942807876540146553839830147155967728194139896798741675933775312949279310404036905597400356014097077146188495181666021707866769604455718493037080665265444650121277487212243115962187521370521345890803434716630052281947294595262496356135332649606974774538405514289591499447519644323940968854106021756054553387973222445912855476381750096181993242436330505866784094392759028854157771468504560079572349247042298898818219569771696591413740834344978264537718612043041254319203690330413056292382143143813379980499951645016360690125272840116362292493330712901409468203299508590624360267406367264747407333288724867217418953496995594686459374520249802601803388747676027061757724207976134808711800991722686008304152505097182069931844918358448993201933416484663934095871033666487355525432100336283103274540528647107451769311663332045725848106039584529413304110568321148846362755162820615434920198017479839894678380607962788515033415963428140364316575456803929484472759821911147391787090162015498986717012819480419591144836267422296849286138125882951659303393351904183226837687990493862346776337052822302328078277654379504731801182546531531087872629449340880181723927823218422765133119077408803585721676550193961517272499220889931660379214249050254187999421463400598207094183213845417986019165611560651989254107875750056645150292264273850574013699784764746826129888028546009047181554631884676420650339575549006625922952441588151850159837977585579205608593673988738421702538560833366870614944225461376025061984925598618791721239772809533915322751275225034912500652990572538637885060254587468449746873961042482644878025152941093722223702379568020938484519680457383854469102619243116441730354238891153708762403855317296792824921487078114326630671924454040768708413633664750698060878067946906036466294470532246946012398532100356056092939612700861277467619220571382607884525097007702520908447765565750775351602312499948608593155090237525949030371478521296449387181528209551337438964934223865774235108293405970946534221475400819867644182737875374391785149885998208822472314630274132477656604360306662592644120421326940024157532543812988525421596036255841858255988426575341598884890216473879807316746255021438844909784226190271649954126133574721958586571734832825480501440765127725031529739606436125675940083635347067733169441707103793554698403682514568595425390311532513310541282730823568376399495673871248167930268860762229907264632070140514269847433430371897596354825407011941276284648659829638069004825750766892673078443278841631433806625208236476246732611296322915932111025196366700031535126717856273227351692065283881559186116856896281332623575134328974751252621601722350252221827677199216200025661612941940030862714777601525009596363379028625487242650434162753476761881628666814243777468578138113017249395611916074224693505798801159061092522826634660974392796255893080157449102419908216628331080641476653941806198678720661755641694497879728757746073696599670605392747082373442416145658446129685537449140998972040680371596507507667019339061580227151305717208130325538875147343101226128488703627062567671315804067601852679442530543262293745128772067394227087783932926250869311586450338149035966766624693671650568104816761632607282115077610541420005897888195408302163246303306282410813914915118028929061090260142966440358771513236736454087919139454044517526877559976167294843536495721776228077766088515128207796190632462442829302801294124348661481793073431103089430341199465570290225465342872852473789285697196706023587697101168226169969460640345485614808557162085032764399217679657357397699100600075703647004913979551363361179371842836293334751802185296946538870682489395130433630670926556336076251098821886091207901597992978145328066177226766571545632277241861037303249058007461834061117484628326039463476157905616894914509501953516388243478724715112779987006659593090678486459455921996417298243908392917829064901269950090447377946414381506701486207877218959943476652883236133914692078370898868801906915830441435772144516346986702948734685541758535325628211314002092682691897490763442334809567985169534008540977501013911747911206303122250209518393266848167830745247065280616617265077746274415007047560460141154439233988794107493856345489432900172491095223744722099623840377110010878256233884305078824110405308732235015218086329817751564800800974527633229214421024506187439241110997033343397792598203764490933005644118437997433789587527990630985550144116293768742309179059855834266309063086328952608918416745312862081013754901394194980421769203979911370506303745930867752468904434739567778725973089417770159670045494623556190692201821589755581398645064993365968642987200798998439800874601294006557848867712037451491008578786198872850435114866557560077298027673480704701643871194063727319763827028153379996868093288306312489852802769032876667410851780123339110964354483828159022125064944274877958926751401011609743395798113105990214772507882752963841582303776912704061508371375202133406312572953199200015562002338162579378710600825737495989385848586422081401763180871913651033817551636961339525098968119625990292224658589903771428119911591357839090524337358274141879865309969582461438662644759530488361076718848162717765574807490023885918627959229155948700531372750715892377946436919160978618685603435012667163582013329507503135680041224772962717505869770111381490330394805783639602060466300614159148415361100286779814098585047161827922487211854308157227858056678557352273557816262754413988320030116832446059113970669316444479644117201600210485532910622850122965193859229534820906762110763839053122968132603371983469018066379806328215425407909211159868183736747311611886349409678107390801029298406237282967643177110058582447736098312576162832148170865884424314986592389978144437555582523099973836697573254691094209650443944207251708996924460721263122700629599941557634314611477390528708939416258930818063259831359223294480598216995218156677692444854239236954495123042468483180489702153274772184074502440050607217495385108186451586769974909217228294457219810746828458046078673089941127721900614337073676402601754266891266150943867495817017750774171333525825543143307225057959053437264762680321243431416524594637784440381655270537330358490053614603244949854681642659459293203557302139187837458091412303635290253565195095177135426497911018444887643092799812268125225194781971180780198853130864171767493937101263906354821565791956753711124968572835986465126406042725942625312954319411625668489444338779077177780173033193928833982047325160875067076136293367900431070383727591390846027525878711298078037838235919036244390068301632785859726440964323024584910973221601211305852984638871232476553467562512913799322018050801700228186297570334165500365243798526535236554391207606388041280818713901984200236888296085315698982012609642524804901475016606297185305179952542522993765597407184416680764575078248091793250047334599524134137898696974505737146753019990823879876963986057781263207571219992877693448033914334431097656927406547262218190044824083044903768702368896116532508235945272716166037645073566182220528022181966780711748753694624369626650326775020523108984070276561060392086483113820953269832780765110522855818248533149101811939023943071339117089445144040480526419620795109565768204244473661547439617902944841565817630441802065264578519367650120400896821046746440776739218356910312745205059494769236492057182586398126036834819413915839935326195271482276943697583277004337432432781547456492526735299001494723336064066010242541932762718233811624137828290499791320700502237484732545143955001928736278913431696772160341899820013563109833435895121594775176804320932387637979169416397188766887159893490598897685817046656925810296430961048329275256102877202576347959158403902223484779086588817084839612135721579732179218934117810138935837085491680475404120691715608074645108690120655441374737467610114823487051304914697888162877770404853661999763831647242298671304818071927389231367170086346596511741108253367988837610807457626817394036237733982857930369164737788754740289051341672974330224057844368013062341183407083878602714957038502401989226033927781900855483298388222201112128861368497011135052174548648005419814476524121812034411436886159476014478222533123700153895055527396033925484921995864930582648761478712871951691405008405857284484972342855831570737983548516770353314471027838387662968826505179018908587808195610640952435245063286290620181702434654896416047558092632266700161270219253890140667324667713370191902696527876621535115802673093234131790561856068593510913503829740461173703890434397433227680651685928507544748397327956378096860913295902029907331344284932812170331546676906480793917681691902548640014060415973908352645201202352528356249347264163763068865934262162075189244770607378330513933385688317329995559601941517454097121254790465472159631978589140608645626859707945243404653967463214041025057806315445406621152669344768079108201097861346477108275929742055551547714723563759564113080641755338981021571527603340622682412828314224352739995571122725871011317233052916150416008802717137901664632273756065319201816521942426341622054093835192042868597871792233675198201161283226299333012110502082557180438337572825184116833837049009920211026416878458626827401782129430140575866508035224607079429942475639022936605412694391811272618138471704622330666630993203033617021225902509381066915518680742679770990682019546606630689825289393533197656697176422316991600298250204357778030078253001444125847618618203453227519609208657235667113030263441108182748045085634633198105309359301964775188351833733521875726556091093560868502067714416209083432243604027661532128823400415309761151871823093054662298399958472274190601722061091237021641906075551738543470605586299072638824180328051777091436509595380173246954862098877013465352326581088454619845965426254806060324547418667165014423263243279968442606228758546210388513294444845030305510847144420715093008063992696027327279750186406192224400221234643516379278200526928632160684823979620672746919838408858658656654018972247920991627245039289965129635650383383574561768349318958862998876716296040827547622219472863378815005793350214116880047895229652446144120703416619543574850532736559444593957215359590726252378893057175446915380606911853303272315165557428294166359462346006099694274428838039100992522002088104949269137312867970056391262903681547867097960166031207293798132325877280693435704702114705048641723739528395085044267999656392150613219958589226775092453159988973939137339421347083817846605269365008294254382452038886758819408722846072350743719918366608785428974576346383567796149641075351676656144070556997078994767070527796974385091675929578980715865194384598970251394425944657014490136839700317294624633105465445984305976264287340171001072427362857838335290085140954706896873287185297556804146525592041326578449973929925631065580093621198334085308359094110745661416970250323041214686680647909806993033385212097500872590131725416515234900482584956767272673809079677640568380186241661214846120678011655716824472948785921453874822204161492291363280995897188656987839092441437654306608149177277695785824769503724855962067531633502121217658883588527371541618419163797478211911382617842471268052178395922840257725421121738125758513301741287026867013471273331449417276878631586880000129122293207368419849071882014232687912585573738172383152725602372156617138372614953800416746819178712018583645879520835515581304165117255009422322344291352855982095634831760876102295805690532291351739164122031034923783987242949720381970863676304355611124361452694795396461576017049098724175665248914237178857948126050755615464519354478272330441696362172997006293389798760326095065225096993451370504486578583228223287469004156608869835859421198194879615391753872378976743496791879226193070839182892927311778791222982900110830528565495587533361080999379567490843367088199877112363734189703969197832608812701260851283641578421332579775449225938520244935063701346314509188641282125105166914078736030314322838879707384226218603735760560834993929273129304699761130326661981655002816570695364120403671282057987426563368995146653178831271244178283635875962973490901851186853873163338096790477010318193693462265823309099135089720679621074911224802451814610556340959033853058728006369008121284446464597662829711954994298006253156204638497781503122105222273323690833653100245802989660087674495062952343592793499947635057797304983811407134980684100501284333488072098273910338824568544659983378242508054385226958673503387247608982679136316044283256526652005039846501296421604228617339405148955630118294656889304263871769069682670739626979385589264800570972209068753169153462538612049329811352643620942780909403289343880921960262064418056519838541452132437321961264578256879110573794124604719621411517380408864045648969957671646884120268018492295867876593370257622741725890875219191079628668868287008579889756505413173409873789881057417408300100962358347195490089016657507175639451593922000848420551343830174310003392469842289772787379575146758430494506530155807092998251739332338829515116609689047457825199918849782130106719181705827571765892149715790993277558178688701377481706369026644116990304123126552222115284598206655637427854979497470556308144655223760449807024041787114730897124528102131707307553569807947155204545136640490340360849685979355370303653843771250240011107012703326003331530606637792899341003141469135253393990041492043964357708242685438267473386198472722961995119933968216623280471861913691352432735151313803269441687726203917426894529225368243691978568815682600488596620745181159963203586234908036828061864308903018164034812304298405072180560662184234056859928049884106822089533890969735188005390871721465152744963232852068537400191493331358055432986160794324112972891962294139206120626536970164063310247196812435547086897845222260993444571900094095666431613623040256500461654104526557908885050985564109466700177854708006618429682112434787095863787900965110826613013287155606406063914161649823841843817219354245256431145755903901027159054678378720871043136538227683872928975664582928533181755738983769296478878723267960102639101997410610213229149014151889440153853226741168467518934908886617079928396795817617510095077183747815772691027016168992065712846407957286022867618254988914971693816991162106505461269438519279303738591497354854281817326472508690188539068441353174356109275495515853981019157978108300952738765269093060879474737105122955909445467554900646184717061451068323637019960238790192529747122214861265611665611962541264387701831479921101900145065045002085856426271777837455094321729353861254288075830453619296513585168694115195341110030327014656584618115129498186357217476830975599977082243700807808496070232225830694360607202488070055445716778863888018052062253766849964567330697205948586439645246360954432926390526832528237405118073626073722776658067605786337429339251315251166442996178481825112772964024760739966888729748386362789821555604679219764453014951465170060116926637026896865302852060449748122096333944517362104976961009994008404846701247971162847435174167445195850471285237585503048835112376052090867004041915615797361175207281210654394307436592531047401893938357166141494397046448845678077615471598587835213934885006531872815622889631261531990363644945904363851257827590062968062960515707430365024045300136531327219976690851885489810171815215853160962565255116869805251902537701280088603947507974836705451437896088342345721144770020562707025373291341708815133354580464087810650481375414574251972067274851222568988547052544509105768738254485644821340385462179376179962283352611396699059102894720700037153696527824614427236055805829319353987403503375564497596129359468540067717700253644980275824266972348177343525500379151464640132767371246612426364594537949921905999123974710915186923856893137662030283886282001039870548307162000972387077960240543243167869578962018384469796498283517205619435426640284369383714320826035921446571321062581828640480605915558005170677733704787028992321055320698877738228185675352870298734162675075455772540603813318045303219265351328204381727450360379243119492936884391079574487675461988756928445302120675116541792806429126953552509006080705950165509957444580649733958083643947022422875575978801556738768709942407267462924444315432220113828370712265524828379029368994959848069928956732450723922688136756247635027650050441262191542621222382661589719371024618757678913819109069115380387177820337629322532511718456743826048240849505332212920612887437608606540380522242366198689577156008951453364036698209914021066161390449330870378436803219544188327849169643905268600317778966082601131377271520080473807028416515570374568579801126367544746348952328779501582843232847197072231701921595496525320815341251215880519978583760276383522067599849340640134604276357684235154003980951604560339714298126474014541699559334799664188793328135210766713837159484726636097650871113289411431622881081650825665155730452571938859120712329694559020285386627388933563761276578965989904666719424588201852519560357095335037889230448062882720426307105193600786144095605480219377853093584029591677438306443610988144374004837886654574025063994392158183346378258772833277446862752441370265734767421978446838230219643412879650467368253212432692390437312619673614752402645598190864498091354506103488096598406194941478379556591109877716032377216443520168339144150383472162530776630005713713463288360572077356139031557604300321045100258395817104613594236986915744189996082979366711386761903336055587958784072862385926835558427873679379898966708315998236538632989191372755217576121008585231509160125950350738074463942347248891338715631295406397461438401027193366327107683175954693793548235406384584036173604437262432590221455509422049469788758871065457739161379610736817960594849005368105081742292965696027415497539882186386591023541239543248657433999674004998709661837756130875812438670890252854242491822754901666046940888005610476691103793847383136070973164075354173600826714901958760381633896666363275428264632653771946516880071187872204380356433229757185351819665330914185936248613669711000269950652170867026573306059655389886316061049471933875873438799440115159452180574011620452389508126469170745040338033413729449079059895054581843252601889305633410895729242476919816141725970423801101243243273438200684041132113496742368113521917535232341273839539500507550038068059081625972315288831794228305288175319772723001410461942759700902419938177145014742647922927433401918582631888813102856382363556448767573207383034139238294397444380964261669795645090855994761153734033624417874504783893247370918133327873986676415575671853411473736842500475710094340103004302057332869994416361082485465274009398547829079622344240069109114076382134330685411492798002064072408051585412420691946666705302652735064268613325997802157045286066210678865996200140122905710538103387166256957928678507967043847735740061312897400662044666407408658289921353493824194576550684310693351108135825789311823368546980014240435840547712729121474963567222777350487649966806292854205691199559189277291259366845619742135081423537676861660537567879731770896753378945787605954284111194896325143427925448554307509942415792865022564582654416692215288443599664441199454533937893829854532743870018838463923472465694581233508308897764787082577725735362688153969752119750334753506145003083212191353316615645895311083861369222599906519024469226539816168436135134968188533067665519442738572606609654726658130363803523027504072133416333481967516419753781317792824556078719194266764693554496700181225403509779079897366430744099024483671477118891751436820290043240937611944041938642517098226533673529913796842896949663344072144135885054964760083422907881185540809624889425472018930804696375912030438706181954147292397997195501055799518564063725083021587584047953209883155472341113582870892896493135998805371741582763424987146256943171354201141775503424827306653214865917794204450126623640632889492577696900436195048034149037095598118656058600003127108020281170801250901739392662930393381254626658145990508905792419494559025731830500837155813425409358596079570972563848183317772830600455490423179650879229181281316627710026640260573967307956200856469281344271929039456061691183611072873619309081161695470698730999949970719023652225122719840286189627189702342024441084650621611472444233112740683234222748030980215499459895327101964030997579814148628737141486221064898018752052202783791796215204985656451852813508320645990598430529711363332906387077314045102613081095231577254424207942612995119162042948027289839203543881144391907844739688694628118780513918342972984105783835053536906927435937885909265182747334411561741789437708624900921543755570640812185429857864185576616664576424483905052695197637942884352849948059400422588905448431642795661764630533267963389020071817662800769918508105011920799567089467362716760292841619647604963770838943557292598713922181189208425734985046260698743347915513832235693723484452572403793435936972491808475571355250285813430872645870865658250859980763658598728260346406134956632467978753576072372649993033888084677771740738352391756331583360292288955028383663623614304840839344758354398706857155553071536158330401323648099066159355764164503401145758026664623369676165826925210112706528586067165152079847725613473629368697174792130042420562227245016552853290838589068010478641592402196128781507029017617788138825470204165315478030620584238597883267327342183610986519310297299457157364323349860741236407499427049068766840760191320882447832638801539654248270997108442235480335009928173772902441662121094136771314023071292160688335730819215318970759460489629041539986336646878724506472130861931168911794487590874540319105212350929865431904477998846370142967467489767393257468569134564359801002811474398812374444610573059113784994842234875697466877102160130892079486107274907142246049521004066234453605707413132406101221696931823693201840459956956458827336030135152159836185608135561644240371265265038408718704990149830993237536824127571017759304263145747475440425781113773039970765991108530453586842092178445975514775983853969684669546204231479794538285498667508709914301770147261945217431328028232700914586142455064851601160862085937947118264208991097769189257285303137713732938401238031801276494131009034824443418803953685863475425085980187065020748239223520231444392162989602001425203803541508402108760085129368072336630533006892511411355144775764559888898559099188401899097432909764512187897129494487183935324820582596504203460699640127902525753786693658454404257628705113394186450267799532941232853641390631184120808455792252487076060862007556191984840240647025883442765412795845076553593484301158924889881911907585152801566252455486846683121230537882885831888727430427801660190077309076197014248312338440237101032076207311784104334022938181512529540579251596003355164392384473096517658857854083537566451860474289517028921388811764160542781579939688857950623727038662785883713483022247229797515333403699990033505072230556216716400045555498459097114738827605909107666217288016937479561586001235689196474100832525662362191435839472230783886356346077128195023598889188931899468677876818179208905290992662607859586511619752425547646567626075566193192820837782230173355042082474227773345555784737108464164037727108550853801329626066612215117951199418510283930798172176576405595469741353488776771571189935810588945574580676288261708962830339020621513592463948901231088249656034268230248038906666835487094922745799306657456024347435591738234752006509986504151900184920525171626883179241281378732729488360060716838109520282099432943795017318328302050600338184890452199928697011161974941529638505732749211980433528925003154677887740166777012070984562489995254468403579361681961609538332400719621891462002697766152106823538965376779767861333547115385853362532411638505595144312778629174786252536720271635840126264586760197616274382320426665823572087295459755009276073582254000606794125961002530162133113433075767141887525958569304404669031533837858200067681668670721472149399573433133568963750298590658053290543869546960174957435501935878456661684754035906043088380193760121001467065415756100791444431547948207422804912413922650147399224409616001216433733821404861600032681769510070682367649589668673039101711791166354014235611130385995296297038471022757207103184613641075427238472433116787108395334973183435964620392496314973647957565079926875260667538648776481945065911411050368657919529169360853960348848040082785959962866581237984948997573484528674163866096788175202671412764881532439311836162570545143399188269205192529143111041640168644178893944495965996839282030360535512408160774552780409886983578081059311486360952013515758971490928633707025190260265865438497019422481142781705077105460746268331666842090222147938916930517398653385343353379975645775655858644553696614324736018370516227209644982240332148543803468568844078496497180879808283083057837720444507142085592781916022195411436668283431659258077786691725523816269591424476549228060392164671098149199457011585383872966070890833227287402848378111472641465826835185559747776736040778111095486057729744677108555025463642064243705147525114213765800662200733040769177876377937180240285579951096030819411435908202227825105201330859239173250663991597226245047728133063312941336343187085693135420369391786027291344656903971497656982058897712277984743232980288538318690429688928291350420459733018334503767926556996322158106667127799877626937127212605678633775494322414301207978465482521586660784671471604296728820777014095960663703867967342191360698147368644527013244390369272171887372638729347998102798284682743351261734062873038960713282346416800529768258292577805070890816578669037848844188005383229628003303211031432222405210968499371180468600158081220115474442303393161659880306015950243633491385743868722772616193321283700533610651736033951911996860991787098611164605578075049763525598667622555528923157518630574510436646028805817192433830515126100828590083664137528493278461051012947891559891783759134354020911961369530725403155595016582999704272968167286024052957718476298598497940386821191923822743945185158251731696349176082626905492694864152386612417761022883796732665451879075085051003751591603171939593997473268227901296590907842425531263106930511015279181563483880315805784274381410473671806358948288938181116404446364853735284423674803005348923354108313010619486028471614489542564191977269064452023375717071626179087219723887516459152057656543898917042851796318097015950838456687003815284919813502136505325350154682945241185156770244128406871137032801579480877980191784205128150109170847711456768108040554711518309297977385216312491848456783372370097128624255024107812967744717506469443647253907007630522944966813257353093870477483972718674401322125359918563165773719953800142282432375244666276404604417590291541217257193640293994463915382116902495265014343912978978474359903027852280533214333940832427636812619854030821173066186104245318774835847572014605892997019843478664724036394949500242466396099983492806251680377860846024419384844634233489994869400482813259195271660989527281277120150042214201727346510980259995891874100020380624763067341634335788047294985246027810980135159974279697464297137208295779229670936252281037315119660145475454381350294126188608606438172255242301602790025287816845860911277870059046437066748624637290780432445180310999250483563680599985604987825078961572371583569979097706531608917779437004389822507002910868116896211111938421718068516139446280134647805561062639408761913965265463924960781869301453658185983318109971901908759681685240117610398353394115598214170643960914270237456532274501726131081553819885075291364390818489131123903194729051954161596770161916690964991610943885249773125798327223949003429634946873697150122431469566617693632924809166850277309425375395915255071815227241568947530391188015564988075262504219366791001783233983461775625188266587034886749044536544822035785610485371094808763402881755830571535669578683433507404754798174466630881134393833407182009132737174077877532124017167422780073166584179751299811942945576443022953803198435120950553699997325540779481300953736626778654920497253598813283121705959785129545806828311932206535181382329735056591552546103895002606643359367371744818652064506920106285327834897515595590398872537258769293015450186686259086010204460783562305675291465262066277215903562193255481543702081970671546048878211325944358290068686948580709513384752136724462320999562099592836956902713436541060605794267759444718130250456268020629916104644909086176029057145079950677751743926034311144235774547318134204882713008961772185308652031445387480197630946134231782748090724441734501227272162008503615770665390345596738067257117124373372246736868777315896172504474351057086176504739243909888871627188906714528867432892765671260375658556627260966634919128787528865728897684365881049303927506106444735831300642102853346329316985892444939545094379988828537490228454838370601392207157057745638793909067576223208204609822037504816579494113937704493174262317370685665632563561372259785190221266278288369783367427723607223466199680204286936145271570877083127186773073489379410183227678138802903030321833645399432626652758268503894479945387673257525459302895790455628285713300219993914283312025239305466868870270875384097404432455447458409363056210313493491404397159543001894389456980025667635562970122062097358512389219827960865670972921299404334950839808116187091440449795341659378444412334926308824050826609305418369849225816173415202758191062692135778499148528042496289942039548855822545673525851692327338781374703256147405004105804072418401062846879671977223465796965167583388518534173412326715153640043387035545522452178740982128816085633764270225676431454510467356442371732337197529816120265233861802588613034008565633113619366997916557726198247139668438479537637786333263545540295534703418459832297435529027376389970490710316304714068260542228032812271232451740772634399381960202145496203817363351692358246032311574251482458243557228615711296904419937250030719446874023743379811387511538380465312582807358580559397136232860867596030091543825851686633074503479111176185737412939994119284399874192850708400278669635925042794670346084354351222604182063730503551269001453408229415934505488142289119912566589118276012330647873556539340115439434413958358111550998359445442090176156002958444435629546670023237779450910632716193191279996222944830109235421675706007222266559077357437529246730906501003112557119536189505850290982747052871075900395289044351214313024358653856923502601400008728609663477618583008720518375419139585980720967464212515201367679952518167658379740059117411084847220998360130814384620585495385762518390973256001796849610597266816306835280187214275296312413624707684222067291014483682508371329058704399395833465841086399282693085589472070224019959314302850695142082878235385236615186013753585286679280197681621352073311249551585935047859245169393676925801867760423052607923304000926579079069699133953683093485768892847930585985629552794860680132567883920678932390224654039464306495484222697761795037839545817423288436265300584727636916294666577198210412588994671676054753478581024000353513652280458366484280063250515892389539689092950203187135429928712495767151255225976362849964849125086388665162565678568985619748543244857949487118525553721925344874304089065944877683026172938562476784443050764840324284453671844011836110381573132026086265144736971623540697891634275371745515296207222155248580089108105002400688754541431271350640013975129688503985256797437759165433317448738328205363854522516514191324900870529565118138827257639684110317188875255762745062080129075937672514688330777473792380793152221378635837616065260669308408964398428860473832143820393430942193294676972845568337496183571414741665048423354209483234437938019641727637339930854677965338493306097509782244749402075870312468221952937874011234890629448816985248058652246237418543391142863048539192159148717579400668460032177049381905683170738904128820310517191784058189944431982825053802199442834358014782186381746691620938051285434357701302309986269644146913214546936445438545498987674165840758525130035527298727683528492702974967359594855672601646594985982292541181124864100394182829829661904481504167154952465242793628243591555508532879189003514181651990063246115594854881162187351422419675394284965822774610318124914086107314702871024777568187481892412203273195079174103107255357877308112165879788671299275699504931424592111656637957472377561059560086043422608981113162198669843251385464079183294869953971534634763871707692057708980757657116924524157238175581248615254339925787631920127034144891142607152420158978261517451197781502127333802462061615987520052991699846383656449169345251965707134158033638068410032657972551111351750622406333889334219673707393292001667747415707716620085307452606283001638758702181220131852719583382397823480229559292752369726991362491590770345673059489505797593848898300514487626253880956298992771959142198627499061275832261967515206669395659637880673776959816266434082219742460073530817500722221991812497146573172301108188108963787946125625459254408685567842980337378410239537102610221643922634807801883101054502430056542660071188038410532126237179079379957197451071610463490644991654742834399455261734705433209797372686662524248696543848927834049108145065051860367308748439987328224164560514416349114194305488609300991469564540357360619207877797178162588178229448832867331353682110265754298981015760290799138850273393691616532578686113251539699519655561628600107693117727035213090498405996419709274874252228936774731468141868476384748014624712456945987823828364923600351403474198859181284623234173951942767366219346945585118253478537506291854587650961481555249277248582853208806627861211757148584086960555050441523135521157361172231508398997694100755201524125740067416190106422963535696999425486160978218955530821868462436587034362684802936361920198205420735837097769021575021001135557026607786003663463412995829874528308897875911739852520326359371113762587475611935301011279003575764020019070919531027353780454734549564541502775873383126384694035813404393732441066243049386462196460526272923801576939220996923173838361147830967972450541262303875997703531518625168637743094952326669210015995156662451800177144513823523802233900100198523104654324899176043138316240943802458733699466764248752951307974499377769135871775261488336405666727406877439352092694001349594339066965647938525259859727344786448295684859185306473079926183256448724841070596632035799769871595186667670760490039576633292552191901849894424063431768155992903302023081212049763920189909712116767621326596502443284626920719355790583318717174508174643494128838338399121389458702752201684990436655916105714378283791895665860622998876564482870611516189393039224192359327182201666462821480120802294473108300107801953248795197665116760318522605116761695771192937828839661863205161191356293640003246465262277651133668952205777572773846705852519092740370931448769883722956936907066454184003106360254116750510135365236924302046422928321542667005648456139757667202187458837453487827723196784606714114049742115085228846067546230785150344116904671510639762885064491727106812463636800182052498182834615205052329080461425405642014943643725231501983428890176264071904715256678156661637962349659690977647787996742184107288097131802695116557155351130344731181095558603129660112561409681533106220635324245726384221204483926722666379372848658606762335583156589105646047836658489922755525589626756005233267252786337251178822723977369660416050534601911810000692767724563978601950357938188480742468534724670686903129827164236197329184194434250397777288589577940506616896709692931673551697755045606000899212399094604548764154709825495323528120902564391692778029346356515097341804626967811319322535606564915330104788592028722393294002187071466841219413156149400150054786572277200601398406021764701957816424068926686084219499500062451543269008851836200694821580659216163476277640964617325734333748201136522737182524315520389944216286008749541509399080436351336523828073948244301207607711528056668588596835818893658210229490532569342436416964954231410918593407403282754746317530443512760093263613395558372299013358141544929075701722473042694178114207502983881660373119283232424624171603875999944947893233737639520958044305001406598771693634310193742219435712564881531426852950870038167636448378920769075418243378874946918478836531165407356840807402956058283017065617082451195631148733354641074447750588652396877800205721196909592947480183075072408466767871158457976517409192249234062757915011165030076047168268968171280077018574966013663273457131181049810536789015642609235736725353169389907940693468195639177415307780095239790993814014707399276307839092353147249327249845507471401749103386765857292962931859624591159481954519941262226312539357284568041070786552132473871895593678910503425187677789930806023511960199517174523529982574149301433344305856004005710464243162943791349165326822783335623346585688559642996050359371589644025815234598238080877160691884752515974652643958687371083902020526892900306417006619199127561239999209802044202612491011267484741143507017728559864348858753490787078869828460719638304251083801960116541423616257488391518688728562427664562389381724211670682252093790321284024823544490326556919487957765814317768589574897363899730139183636170367169067817557504831613338700082084384836658060307543477652750232370009455206404179942502461766941703366925729271651748672766902221049768216570287325296927502591123373497895179816480732866835134085626328388509253380949631618995704719809813052903005857279049023087884605294434534062563808585427738798988055309882386495546010251191091687261123631037408489643076172774377703705428048699428540276558562073531130266406963093445392570625894399006716060541357618293089089119153791987075326602683854618215953193290137153810134019477125264852664505984064970594011004112271395369021534064804509166754486242338921500711834997640060626628345902191902131948981695768724895225691028344190730655751267905841868259980763442201661895766301235426262824042510673725170042068412946634792366137185494785589676522529221072502269493056430087369601126467859837400930888389920313490544723446508008191779893632485712068247212952832194614228664596524264668742811556808725412357571770181838946749371015386661532090882229123355779026329275165565483342972641666818857645122968407010678616435883393297253605772442062024172808958436227907526422767272791242047697204290464445968495109033479554376805689352908533604878667064253215278240331770110181567930058213598025815836220125859460883770136300673555380652545940213978588814311025417391698358598716334814093695172306012694032979748090728216368717921131263730206611760184283563188609894104753309636915431595058165312967718198416522003237284817645918506043403907081922811073208089238023606965074023181282468755866004340427266338939863389508861572813664023489446227322886105680784208814771024572348762772035541705055586066872369284893420995308166954627619037775204500734688361786812309506084579243640782743690852839199409694309373593817468989997507796645946928980171090137372173923474389212582108797856809337625667459472868439779979800660093781931665006576420368249191456905268886307270551311015430432857038361263323717595770798717633930396299900068291906359397710926070782463566248640981916359550157571700671405800275467949662212586624089944555342224232673887932330967576372961380802548873946782841512589972174819324642506850241299338700880993636036272776791924793478110424136457989899207610309155523033624978010979351893614582922742561797373751126336977413577457837676056186304095326793304052920641308412583335452323171213457067715685649019960335125403590357505909890945334073151397139180675004302852855016954337306353088953508895902343953649284255379363494272984685578829104273636717939652570100630134815956831715583340085164718318724558143154502967261780915793406816968660990070469450307244726702714636755938440599384262404390338363126621291913185079679902805601034159408793080317613926425214335043236753587504712711310165002762830581550798799515918681142133084804481928005093850336387731948893957276673228069024891697655897345607311769033941432390767231494538626651977788138895602201646283027062004777140910233043537493740829231972522460304958026775242832508623911566783102915562930688207839405253490660198516106906087416766565878737195492574124847058212845703063325421262798375970273619221394620323707541956748550674469198000232400584039289015914444797972535617859477306682410091006760441788521035081511518707544309804192399317384759484415553620117534882823038934372402899298562392119832343108871229229657462304162857737842308489114801087471605722475939038614547755120743021363297773664500769219434990932832166972569414644960711118697764095204381837397069408178236999260041946545485198351564721729740007983968746095412194313464305471359800424672449035318455111119576723917374958119392537661863258246854977177268300935778382440859980009622785122790775394120731773283619722543162048581095878009949919483632809080890175751177179331228376692098033665103649678780377189742765894825419635386483671792910187744840947721822201370494951508157777635210069939754493351931870151537818399547154732883787358532602850472127583107739831836730658132837190503203511927685874601335197902388121630132820893442150406183753288392260705327818533535617716478277070718512346417397779614698597051178286391351380071020047065245149499277058918173049821527529299184071199466824494351747946404432445060431200829727670710475606431233806240469718848270016421800493012994565509238381910868387779158750495405687673960353148333814144697928076009129992313881177253402489605217954327033269648327463274859322094676242852339977702430750977084593396909683410654982364476846516347039984035295291142745646915690979734065168004513057868688704371783879794398551559435904808557385596107116542475896905747518309051833320492581969035334034259070612085825179274018851349365714917801528935448813139359694934901761887904547837016643258369996226426555520142090075429501329939139304699185531333231115993152864685531731481579780117299896007553220585730906922301702950564249112267934019711289043028736099415433135204512071955867749890954448089268613329199665712676769589219231109385181814034436131278489496220905451831204357446821199245143962304676148806640893749767176512229992810693861521257348596622488244408538151917284935942768879993296027363748652747682121387210432008498296388724092254424678499906629614270951404371711415465882814177530616909978268688284972058981707216208947617727902584881059783806443872827845086213153860948349587944645529667497477217218272052045898303876822856925869299304498855737707134093784692717203924596317253870796957100631728122364713658165851326277569041856806096654024428862688395282333319390747024061055982278637991653032875820833145317371410478430787542873472840553053743230886959802233864214542233471387366765842195128962696798219260079393005575099999816479839564732578429756973021677044960831094335151306100726766161952122919218865639697531224976253047605462619809998653460300616347238604095954072561208005069541351425064691684571863617240175608172570130003154332198389156738548490541817466159199637653341933780745149993562106266794798992855906386281433203600478348957610317727332360413801725222612919408855845329929044280947034769298908151603664317151086263154522404899932768295068424225184690983302279123879297683358140575008149425473232069497424039771434757318808263772574319011695132272682229992440339069432993695076727222374141368335037721817793660520455657748873877250489825823953581581167887293840195559025621015698041842943759623542976716448814467350015253319667138804887598001697026514060323544967050113402575397606274771557515419889550274455265870333453858713599521609174443716818624889305937085244762358217811352971532915551277728842369681884020301938554593554098616096544536281451403994369642358677560833481241718530338012186036104041471002114391827035024489648521044806230933220143610103781590423831765388155637869786707589551622179791193211946803988278895890255034914988762821453232129328931229602884139827721156082702159499040143067246169872531293020595160100889806953545710033212818561589547662429610477570496467769919017612596874797544285342228686864619606043875512150577519276135580709456911867743506492800346076902421088094756656141703738256831086221055017704528463990837490244164117283816388783488161622833836113011287870660998424770858110260060182286329665086129506377721429465643234776356457713991764532345664410127498377516645160506389137621088321936634966759431729025848936412355894744112484772923164168226724836927781544726235242031723863071030761935897118783978221589837637506335006766080476860984688081817862008767488220379103561575412684101073521101969855249538082667772665201599498298621046969941149199379697471786731579259151951399001788916941306226579847036670262078134114651688127604044166796760203971922205086345883984422999078443652277743348046267076607005596963400872454567924802045156223342976988704921277485240290367527046068741873669977122548664042678453102651859698682777907853084773149871793557060283035795744313805806380058520317302990243176002659193977946970340966262612904347217914814620533781313784558734485512508080198618551010053961269773173098898040005656695674591655362870726269460482861012902370456076150629938372500388246073622128830672470616216753642653971875797909294084920648000983463277245511991664201530227382994056097612827550987986463455755219351866643675385740174223684704793334787689453188338199139279990250023175986394406885299796683592707281628636440357217439964209908061112298879868117316372880572542283071940683113836831311493616368980398573849838324249505006567663120772656113331694526061303650150022741586731443781507539854008533133633589306005266094643578125497219296340995948874218227299272278242472279142830772382913829405609135591889594442837236120945139755655296858509570023946753152246177984654649979184817169072316642776714105742682441024407744983389197147641272090642931034064992532866837502115127755513772005779240756886631910162575761828011237288550727372204268005902632161917090959348941308007627831686408670468476108108403636846580538480591663849732626527025788171771667968306534434919985046770094998182943477030975342104611323239520328565209034778477639681222335544040937384695094111990746639211809724766544773152653972371083338107964590327029545008972390170628354815068047940366772265566337265722580981016885171211300937020130309565412573878629158755130065950813285005784328935965905488172834354753657785192276795671633833185619288142223479307427244417536411122162362804754870113997449464299997704660458369053926456957721881456032753899780416916150383309544534449712022749130240975855502867703815739572357373941916681773432796240506249722709160411242290643651502339108034926964509527320054143779888623158864763496584637292589184507220887660075626687920859083375441918671913445504543179743533711904566181064666239089423308001814527510515961677249684499743914832529223791394720649634629959429860105687346244442891371740347746076709732488152897450848187393880365580551743287630629090443448942818134830576286719920469612220484626776179060996685177537019700258698747895245149088435773016063322554107168170000132935043687556522089551248773141538325692991668678279997642175412967917704305703359103020713340767753009359503885600956459181101310695181537836756870385470340771242844980670656753151101091587870252888428322669026279778497887634748742744269930739809866434514334111031752539503319426752639393895849690603776821034030807480411403369518505675856835454586620725881211491726619691692386924211345576959561580024966334495691942666217170686578783542012366267237137485761695543047963076531386208042690320496641085236259810158278551792653604921329507651905091897400500312462316645487016719758267992001164376196068640775989210077838449772109054987980406188331982243361226595667328917053937231738223704479981616466671641105597767769160331235516018460009613296260749314640285908077248634486762501762122645091365241731222235577307335432257211661812867302498467828257689861968851785242291129386842593747918938939910041608551891481000502933902599493106853842532638410168359341958679071752593855153541472394247446638059371206022072737910719542624931163925987752331507945808435472693387061901570230238138318417883664579419482333766291225163587989650168840779183477082593359823683893217915367771434191301514227766738451439476673935150180853801406106228600317063947941420079506360580311098414920869838976614888117629946864847122051395730623557889940866219387530529910651920912293645162807780734570005743393264809470476548273872188436769768546381052783974045635247204954315495697169428552887014335803301467389691450007772932511450729746261733233951067235075750991279075430888982349304260807512458571542893309063949771073435919378142402440360282521569552393120375071557740841230126218762832325058542459730504720233246460926373062526959331246669999336593426817841051499211577625930670311606297959285141142389629787851450279427872083039199715917834795508948860011813067442531720714367178868516869737257219574063363974582486495967619405443412892648608061566970040278456660756663492843826116912383910259965188404798713359830759614051848922478114176890931848710903602060510645693927311725186203803257473126902419710550505467004518825487164521062929897674300645550764848393171627426266012867861870153754664237825123044121805256519132804935494155598738976212650167650173192030771911063292026041446310258600174939329254973579356168934977009010983590436626153062261130154442216944544329147579092677474783718361278498671557291410653600813921644685470916713742730988931803277525674540048232087376222045162778896985301408183404046233271768244208514546200573618554446500860767033916635455593552676904057717900949220827309618954306301950409161172380719645755716510521058324316731657137468214200481111088833752926922107010876330170502253894752602279994229792741681182915713393187222560153525678553741922769303579962735933622284989870742894679476260145913875898216684367929372357346283419265476967112717202114672363732064273316256374981898328517229387480771956215146903092476720130028273562375957599650848919754316374104591388903528346225795958708476166651143350064888727384770314406759001099218633096324809231034924014308346372137972490883877038413003615793055112893534318619315476574148378363189413807199754583350604323721203926407553321781823009004330023852361946211682016234746059541888590819330410359806102602786471242623745002770556237444439334970863746682972497879921089220582200282840195361770580964707978969383313849724291153305532778623550915316661492069397417734620928600941382079559353255843769046788492734921710425125095451121357990389923210726846856810238540565693965620799849335947761161648794956583593016288344058646123704191920040382704563147250093543172506374383015229784863694877012002125673949030131705088702313390474487046224851134075926191384677455204427265703137314979219356017936974029377735825044705106078767496148754077342427884157991398637059333851047143325717053387600472168756701713591221564163042640534459577668476330426666329784647425634558944084389177270794691240019441637789477485644263510921259231977654525976492890829143278372098516516617415109814794790579118093515095960233683581768886496818776298049794290427969920100757595975964958288155331032668990296793771267866375451900962783134067199583075462938540129527527872116604467247767798184869056664225017667639608029215091103577985996708852188097792552996102619775524485590289262955842972480127743838320766874054886567965700011031268653361405202766291543943115579775096230553584967570355122472926065868049157273897483385746269372285661838168814794410207307850224751535129628409423842665970049972195502214371028651382019156858374009929148177229752380235700558964136854365792855028275082694172293403922849167899677707859963149945551727383826961334097105928181424145022347198090599930979016220561943623917097528941441857582719357051112921950155241267173927322140106436584915860391673767271763032564001569914350551040248355375002585725558219458687300806665387442623119987338395200033104360856996629715484899925408436012007466528773294304397857686880388949819978170351595973792707735005051267347673856203208421851269975364329626707900358080489387824450066454503308270160085002303748482936484079530979104972099505602835090115077491987246802332756340846757694797986305524153245918365185652339185441407420371501793453637838177892869686734535692764560398391016986157347211028174561304686277012273752567105113697292848474488390667120144777151757198829036528249996851560328459121031749417975992544569226742831155581111918191050429310265565753134982381398570734388469652704834616332545428997897625877085748351069438952480887545306088407505563799657352969256819329091271426992769092538546778815578598585364768475552055218435385491621768141498308295894135735918146419606264202288166173817395242169567164184426122873423274227001439604431630568744656352613193831620684782336101302105311509757165804448233156471254534396268581456733453384803026631984411893022062316952751759889787478601981234052959193580004156193821675986320738349826626348780194310404574540846358385366926303633090202892470235614296587583181390992611351096131047267765931071378378373988832896229590389204059420527286885434549050355025660749399856519384720273618579227787067927215039766811126028158838119180434143842172116294997005319237731519110800647540086403951515305871070850127988911469715747244277331897173290903546753258279873600845459524346359989943487250290252455264636156691034238064630253099531977571405073416079772615537080476370488052009462304005592681709865872199653966477141322418755391141810148086044949615889463229609579334019596826462472859059258276187615185119955849034108183191818391892239112640631280316219007628356602440408772278112937355832502122891081740503640469467796452511378381496547742420066188303875128974677884559348352355634423797618631604793529994688450844254384487808549285701333996616020970233311407679264297915027615003991701899112521785209262878144404053545287386894612044783994572236916644382211190643118173117509498043049987295626307496678381714006374302930922404823910003302711035362205664806241040770399711913899890365903618228373873615735910298728207147726799271130590286560744228908551785509521244648065429506836229556655337081815173359025752537401828479721978694556798918774330143114325491855461477246630096043913571952054335848718018405084347555227421313594122065363520011641282815664082192616687394442017082077978339414862900168162835622947887277106061163897322161024808509755097749691486372494463158640202538735935780787535790995480421838928153172466480579528372879218892453364204384679998532404255563553969134795497078048499166900334471726951488499229028311814076103587431519742589857297897116549639382271601726364722975382858139749992877462579225419784937981834560261521410666191939859965680955311207312917479091510259769627117206492086908086291567499970891104266072060823911152685574586462981439228551645774780803466168037231847027758605553932606597919359487555221680026727877639670587370080833483104875285671706231883664319488084115758388396767607893414003463526292345080054971994101175850340949148792007357973711243505159075942413474443239577848046973633348926126464749342173081282877754762676467873718423210462762753491086847904591340785215131371378498960988298943224665858563708736778868642235557355598186301393145849702503311874313094452014116905548142514077473560481203848034864585418212191800304728157936908842718272341979896664845999172475966941821493764528301431380142453076581836548596550843523975246812195949234352502423387252121431095867937844959556007861507033345975249226853355455970667516944995025742401959360373369111820968197233091744460788414693467276792451260650002452500643260912951114768149693049526464174228605042637834868871092533750842702847871206310559282060848742531327866406202026854020179018214825921423218014986892708471047334066060524140212971256573998548405635744887116342662656027014556937057721987237199882565139113389048874344490302372524585933878283773726642874094989380915890505780537978263831827020933632045950109680072469251339522144391669497990168612172858113573679666897743739289303639516504023939678627210861931905072637109655422020643909640938342133661735379898871373466794497014498434691780354833153332367740965373247275978970366892457151670141661422657401510930283647026763413259684401756565160882896834606287657855520431201864405135550095420481161178354374501175068659516772791798061017248964772974262840074682450218075329325728056101098051539904824507266374721901565510690007504868188391326926958517168673180993721773170461238677289977469791342091259720766548292569000608683105633560688525929070915406175062328669099804724738041518789967832120831273219921746464195034757951908345489547786905382154811675088818319753867333362769035622486124899588038010915418724520391955937124613280981788541878397253148584882164145309239081259395047524158411605750228963420453307660760622969245119068961026607236769090747187427937234905936519499070460629394252622499419708699486900216009350631639184146499938197252487437053247836373016943578908820559062320905874694280577376243450876186804994514250840453882027797326630008481404762555970351571710499218435040063947242494551813829334857187655170346174635109689499181126220937230045378044721926318365113109620417089154943722698018977411419135231243595534644945910510971386763755803122270590543557178936583164228930121952805368699547426102352093007706291281967832599009160357832161958579635083532580420054718649457086614460092083661851227690017278083930296563979912421222160619092737558216770742216895149639023572030155591012179269399801209996329276882707735474965074299532236916974524957891617249244828105753916517917532592343433025417070849255975543215393060010036559018500072833476125432425312512307010479980228550305451282681717329986729207201025367970227766164190410443094060311436651951149042923209213513728819846201372314658468442158386603243815067683845066600473933948936534070939718634798913178480817590723950836319732200619854254487491547900542539259601522945054732163946283099190521948200917054488938106909581529835039429597885477879196091901028631514837253964684876001007543616578719101084463106357216222921826765775948881251559012981192738318812105508978316417930207206888600670437518203918449616522384817339108893403899168828107370266361126400005016676710967435244648619837881576615782079156143539144446358745558915976335136166701350261350082439154974886490849112193692087732885569160941386338547866742355452831932605122852433311860774882976650745855878557249975754886038578189776948338897814673587502495197157812764671667537930944304210065572183708393662132036829354484293058240703896791332325547438723833386606236545203293583392251025052674193890038816148336725629667291748541629686808085913767172561018095144239035510857819941448371259856938787978617546920366433030044300831110492564184104478045642837052037249798090313516259905338129232809959523332222258230774911788754519570799973839490950512719359796464595675890063075151230006863149181579279156642102127249386400675445842995045464044050000400643779453051724477902395250164781558384536627690151560400595936372593910892729524063292849146613619760189306751403021979338913504401354238500932692514135962021326314222973954779992875732695003508985082818463917318515335286111930984414074437456796935487615918448011431770181315937620136933636363246592066288899769868550327389277298228719889735490636820670636508846160804953449487700421985328769105929709268938578008237713305426957071613673051323443722753150470715269962105020529238529512878101445802252313777187298302679713813268415250989382070242138965575539178284785584572299735151481582408918288003980238720507130445546574414006600580426597229567123752399933273181574731304202158008218308836406296837018849995530292918602080218768636774533443151396549284965938511591462324565747923360152499227855875702802769479611894697833104166580311964121282549576862098584958350269784187522493980571368219018390546808981443590537351798959561164562638182048260105767976695993533585372273163797190795328538668140853366191152558678018273616327746501438944395650272081632547815810959750019775273151213557779342799354295533073084963926988637122853438849852081459040370498095665832547566004358035411599416431438150217659326482090564254708527413966088396556884832877880098548466515685017997899703363326705398494059984685827015690659464132487763211932605994223042039340478168948080605418153033549466851303872017098756865600635180088760094435222001440205933049422548715378228130975065258091999890400006687413647305211886341036339319286321688071432772132373276286736731955279545956984559251124332056419484738246062646897478687412758401515955723210470572566899740592882584008385243848361770438505472066125984422643096782285303691770911834201844715751400313229153071133702325611731091567491154853218638452761318747587423908131721544012845350809272442276783651890945702246115202847681281644217466297660990816707216014180728122065509568421843353827857850132448290991069967888555148462344861604049390241924040562430846916444129993549880232594257608570404766033388036903637235496305800353732418481330068460185324365330205128954113106071496218530931095124966745729785597121322582831597446383467291300194652792315334878070177387882124348094735317107141133157245378723950172899777788977948413026576186777011272289348920529940282706632121187572733044657380810682599034282916245271018874850250740873077907366684475801931966713065321266807500259333506876940223503046605747713602786368612234619501194789004270477807551795391843465632771479121288866885993048771051200041506869421698709318668519061098179786897406246864921581828331108057689000090579797297972975822920225550768963585875128185016058360540443576040231975294147321123620129299308657791836469639551403750183260189435673321495343503825553307047379006158321665868062182053927895823397677832810908542472943879590055250199938749591221045964992025255327201994681871074786961200463951501270131373428570538380839558591228478563363663785466305653707449887143356766216561084087388657596756624321974680942935742241097056391190385220662967803312145183537279273673086041376360050195388075104916327583353546258037425044823193355749194069028402190028906257581386464195658865365142511006594494279839727131133605660575964768398741361813372182958072983907371607131547746579285663620878121328117513059217715496371619453858909102388438560855634689602046676624414138361914313988966845461697735979928569362677043840327897126393655182128443532445153103779870469717487029875087388914728589934316962683278152035323289763491258944260236055368063924167975527832172340602673146951123965861193287422805980877781796772144782662223036475716724402506614049307600035927439717771021009641623007773217600426577295896523892852448473367622970124852742358895335498627884711936685788703921735349816276203580718988350535030166665056803021560935391696337364624528145481130774382937223015182837590768174485575473462973450047888144825685260002796539670610637137708196771960185682130247524117780122976183384589589810017271182575903051453917097411344540326278664595213110555046018116873765515521538266182573423177296800625083225274627986292568253076534039536894481179396137838894132150670605173387799255572440172927730943788130495945729770128325189940604286375342846740448407145932003364245663384634462416369344150824925262643586905830419274764538170496930698276632903082586470004804891616185604049057064783333690569051669700029069114852058766081930182989893575814513409533067318366124897357937805191159742186477221137545457982883626344247082415520542900862716151316415280636745187824573609525366627283751812544365222557111443160530823081562827724661949376273479884089665404306478971983790877121014862201354634321324557703530496318484154394867226848448667321618595267870778463862092152248877224425900520487689423705060129559382081529251955058221760443060275625815410312574978183888992856608030783710560750219677920445569587952900104262603774288709833939941680382508104186374799574150098895395770037675810235041383486562500689286088081467529354331763987209184987683055627734465235793221796749433313370026130922321071239058955549488521811231966798114190949663418517546563860693447425640138041331757315063411529491571810744586095779425352550226248867013850807162627272302171652275661676118305788491998653743958324858376532562305004877349807403094172719517349282015299592057050246818167369424086927301399498336765268320531844540280882230817803285133019238492384241651768674308729035525150742094649676960965916536129568551628334386533420941351478716504958858495551610026355881552846567732872112198108688535602473224333575688909812348415182214818639076926139556008071255979318968455912812436391925961894908150396122265803213627869779249526164441003371463023426496455103755094805892467168127184628748103681421377896154705332024605834249510935269190189329343432872972331210629365528027493113150844469151792739948325907574907996717310768673380373385382707792266440919332731428878928791422089409652178015061243860506853684365050769495811270053015521384763509970510076819089838954900298618930838036752209027808348325028908044756049221758943526581938846207281363812952662863926155607130048190247503282476460835090375240854693623887126509646654171056145246966542162457884037454195626683256153793999483927456533253174167092201184202278213450518114103885943392191536157587631993134342740471049524998186986526416549123272774752693141543167863475803742467716422762620823770088587247334378048012059103934195214911978447830470789481853995142803167218371219995617904400642740942567035877588044747622917874808373402314003540207682755465482876405629259374647767948102504874406001651371501672875588398974979427509585445509821664652066204617643035931728633768513499126150643789416941714668858962000817262160283253751091288008206120427617425175181330726069003044360725463250265236224550658953664084367496343676302175155697624687809150236871360089680937400120966843542726034162848414501815191422852545158347396616509931426246919830320423863421866488872598030355725732522147722438270206210901868527587968766516106940561482212520670492780980806987425014561786831228210688786804758391015122754978395725452955610768936172385240248201721938786589467295933134381417305020687666279442182537392268451454065775326812998040503860205003376130071754838249448550339187784377959805001914425938817301134354244878622170328209552250156316495791971664705170144251250785666021809413074020464700643297056721972273555469890098026943343557032077065601540705885127315295780272942551259116635975878663216634890881027457356583964232050363217188512580874875943974440244906639525793924551064036161575609567741319432769894456605075822151481317724579212887982729956250475934001622704142434960671184758050019779640541931441847935180765202899763618946046908510922264045072344448685439833422963095224339431289556458726451437458013254356725747123024009356720289944102965481589870768811650136188106815811487507741445609809298029552123639709458518935234902845049552174292992831702662585443823146254157006781095945252920739442219447095649850295143965224033404738407404030832547360744680391668607576289196366684316315671277312248179752393728943006899020088503777201789712728026746343307757992741804418202848695629781266754913283115257467543762221667172193237667888691041846938193484781303409731245113785015040527014466969853042353670464153045542403090606444787065379125110091453863325079021137210276050610569021394473736829911059149254302951412942811771619522667736409583497358018567205818221544471709603901287301956433580961728936096682652933582272568758011274228160898150347471410604916859360818517792352962509353545458153924756417266582916835081791869241349429850754294831584691570489692828748396654732808279244357967250366918078539044602618687606855434700700910531837340654230698317294708863846693219702042919601985574848157487643504962983473939162673755834103575422942633451622032830285045398296407615309334368089712274302205517711208380677044056582970818468460180335489894597151258416642470514509811399171150278155254038595263789117950791748294033270977414954551160967020063304964400729285201864484824804637374119135028860357611282219674202479111626440448803475007821053540213313221601664070213552736008241144055389563225977930515922324433792576505524256965891685990750997404716672390853150286059792512523379784488783775559384002763561871997577881473586345082580043405258995578454955746651115043899971029153937842211033459525367956568690818728057523940631112810401803053034638745514158206330044225789139392797185455590163440506252898515981553513804343240081311513175397620659827474469724426389647716269730786320306927013520816863627177949540215815643555243906944018161590932272279769492727517512783507000118908758600630405840198306439593453604494725816119584161536519032323307796202495639478664160573616327464053217124792988583340609165084851949237046910943994993289877404404014166119229255176726162461920727718086934327666111877773110102548821852415004161343071640702357492662656435546266509501774585497675096412816380863045570812245035890261038818222751588593271947386293379963840437231179165783936283910379938053689744817106538344108758114696155577237275652826982658057277147206353515805265592897298867636056908013079627816954243084059238867715983294409704663833512346275452852005238118484017615022465386379893970538655740428846237150083101226534001051819834283820350296376347516919820917325733642028745558288701671978020804138423203261792832549020510635688695426469188974996528604340398172297797074709087595080664217714775849965124001774413870420748452894594438621079854672321192698348809115630850526155299607861340731524002328125222036190067028408796597494289829786793107883699954076511511796870177617659454507263585359522817650792613490730261863168119351426841674807766762050190265871168427648300492530467080589937062270022652977232697217246521012155823773947354517974142647172820162581623401437909961390703098849961794246523993412314200421703639776732537005541332541973267801948918576008165596096654951165313777061910755784062907727791135619562463447667588439120119391048333467198611859785680948464566478122408678121386102205589681920627013600435685906737058123603440918171788224585324417692044298688739004645690934417849177216950510231647852251030608511707776088464270942137150685084494131883201038338800906736484500095999016374640327929438233550299466132576829886988956472253853961244577518887136595076642002496591670774697074347311681087586143175239349925950889468375646516652896747675140958157477886302981865878559645615585034944836501074632910525026993665563393195118709895558205462886950445671256065548944746382619577351714419068226515528300991700264322742199623689189945560203683996175369631974112533805373792606019962742819755964978588691407580994855993506868093623166536399370083367883393645073579491486858351842159790129437656732553131988848646326695367872028682747672706051682460718689806216947920705791035772999957107581646654028210880461782594678591440685599609847341607137201240752656954418599858135219071368028214141437983476683624016531411195520664097923249602073048574218401112287484016381508946327308984968008254455407571669438116649328735044627726659635268334789538900288474782059684965118031263779060382117069990415734316935359864503831638555710733116525695861262603027403774427336032453330613245875927783723990017092185637032127041786731846646852420430687422061050041054749039001800086620252848602533374428085384055681870512670162293490939635547019947053288154982586770914179638743531652600260130179931552184058311303257049133334459927658869966745681959964233553786663347385243608005214714507670856360124064429622531064823770426488754394343081576680775853846682712064878429276311177270191910511207883335908116275323963271591121927581878780091391214764196970822150397145582909477433015597460752212203517183228067931727244990394996843879906285096903947655488391513177032051843097592431390771744788932063275590099483801556995862886170279853019370176834788839372768018300023021650855989628345595875620155856291191313379638467960126927710737957746548675888086920105013139229938294294735754705628990340580791289961015768432162666474242657076169496889259631354600554061295993630299324853258057050946983821588033606138598721709729703653810196582423129543313496011338326164061828932179287929895906443072740294434467273289999693514665081137162542272497556013246978087009783228442605479818066036541399042089302771190408909677934833049439853271152394263097481625928330432407151913089747216522558139007834701262228489700670786309446394336025736275636971325442892690643635926928947939247862030529695073031714449142507829918855066013246482241838617920186187345080486209044502982791818056811870685920922000648037568554899951644598741824312019203249336369013290937887258428524657327047623175543357425352499961343445168884844559233752418150088648863817158932794079807034629963843259532222026074034684669367620406056789961462347376210624908741684028410384880260839124773238470069770871592315087345336639577717749439623146237244839645319753378910692214866207354217745099495734868658533736562689954996935456417430753555544004201684300482478570517302207015830742862608188851716425481238001643891075514985973760092811604981144173954391198639392670628880642638479414215952425083232253484219754061206390828683891645993613293263881889555077337447003739041005103170102291303042474469128062326143269344459404982063385005758416342417071239343198432408105246361451808432101393572408035867479892023467844286586844340184736563572421906935034648660770433932317351086379514827386278161147949439531970439804052471736895548434286167860332913674293460989230402135590375760476384760643392835682274852734873951968768482118736700804649578979164526317623444783638079765553179390602354454606932863640466246759368644446195628178233362905178015995689299700410333442984323365564976015094897896008085923980912301663874764712614236482573423977465614867753707197993759249773620678978821099198725507626036861369397940762026695447527705658226775706044504742646479493171689852263997962579495383728727463767776860347216230782003062804816341811166305504525317222457294235410187137517724327609921803884909071355369719484711420901529107987714742902680594545382872040213635211036808369695930154427660435600080279679811278504241625354451687832041106481788239682749680409163875254730811574702724607588078893252916117446309488601897021598431391245707647537061519216900875890441355250736916303386495556139353437164020855343160691532812910228974709164651367145242291717999598596339785356957905170661595018626568505043966118469894202231603081084391145820760159897791666041829585622254293010596276347335212648487667993293271597292624712566778264653845261603274999930221891300788309262944329811769894998668717201151662990211406223983633230201590278964451823166100978449477104159954716540335137427780699621348478040126663864917676237428619606935679217893499097255033068652645698847596991713614400210756898026117015472329346291145845891796827259469190393170556913717881208266735962255955015455976652493543801532188618619185535088934755076255561514394059578367857894952701298563862791777925951943222457420326927212247946843066038604519557514841536835448411630279872927105796640638172077661672651575893556186812721138221742802193206264489060430335957872393668102873361154837767885346568159268710363946119044883467563137725970692153374329523430062353203748003776445430040929436161965041107697688274164609711649580038185735305266158999151503689725748500181639763680005394896280383312085225828320460471378151856119877948302097846720962241596673581535550342405842256361673125042354015872923081248139795406813170335697758529726804579281922903128212682618185194121827449259399541983011471337754987604879467701677994757185039988087507155794554943345949745941925065737776209130737706687216590074892427736526061136231581196928021097988918353451020047438924905702566474013787227828103404891420141478168074940171046574687275317245538192018442208909060370243235163096741884885889490761385509460724094665475805452105201048028227487253554046208220590333760483065066445180107633168910081059701019833085440850510209721232081669807323320031857596067328073487979962832553648178998687015089778317396724891650948332437174296365722666191118618361499429568127321114685142309355296836552265255125761654726024650010650571284948712897265734387655072080651691413504670334828576528364815881853074907127265122809920608629263762651426166168737094291377789522311835994329491280777157473333700498130037323806916449916756773505456289147328530908363559534870839081729606917779816322458523401218220302301923181673232756188744642494094908350297509599874047411777400702502285517335727975728351668752045217115925319939436209944493357574545354872119660317115236789485085673534569315664472580733988979405384889322333095955068634034317099137017213423648416948469277623630276550748210712333034647943113511768044162717338211738230530837319483835768623983844541297425379273879019569582348273984484350441335895602815223534257455717279950619555998674834412245305620962755245810560316183442303549663816890036164958781323501349849323622568358718006412417711678056333216348358220606155165848071960331809318610442277641150750890167485804028549386090810389982997868377525637834127859064169515479735987622965474810048442257331689782307095429602362556834986951165630806385853953999862933995367239636787193785094449356311597579407190335058126944623186277772988850160357089233584880255055908114788472641874267715369668056234182260776264799534477078124256746788770738666347308530516914701807307812209371570804518581901208112724005725101990209742384018065147901379428361477183377931033423026061665544789441475143760734587270115240519548693029425241172395603034999021453557131245920365630047340924692089300927876482815289764422624821179442999544769588547468714683998955231612523534237154618867702243309420580364656492147424646669925028620574633680474786065410788432851203540112994756820129414856728034970312027373679973295438307294647991982505113893671124332102379018741262257033053780040132838628232433747057159015404968323972617311925132853917217288895539276520202778908789803173275378625800636519575617130858951282054442063756166521177607515255782216821328885048777078839765867738855664177157955855019437851346061668137954717005080860549453240645176942514099036701053990740779363568611076535822805291572606078216581175075074919617383193883076292113139513371004582255303328907263323843990388357493366164454995524531296986744336122201148881909639267263633292941792158989504596055447269504222006849937183165764431493090421707531239834642295396498707400979751932706188873082836659722164625952917567971557621382823688093452144449533412318252766665275979468092053901622458718850058961196900619105182673216572492172598158675879224608419416941204089683021344671824419444480424782063091577277144042241482347312307513962509942869386653756553456907374280742176193014315456087118946635483938458879464234290170850686187814220846977024614767668596431460888013895086681183884723402669042468505686722854115361510141590637476087830989374875280933817136066393125256286586884686068031303416530946745348386218048096761782956446305583046385901665808653653868934529646476892743792949926033077981659271503287545590270318470668798187889275803930243332017602497491285845536983874103056782657400183452476736039082511897328704371453998609687858192413908898725372976203625640861690097801704652826670756473984272121816705725321673740810253029373961484719809691518873216643130022477485018256372115194925217633611643687392283278862124446146951528816335036861079874233645408849822648629611162805383141992097963596055570990779862344124198956094315636166189354997645119531959522943278303174378789804534456748169174614813529905036077685532548091196410893181285065678428281803649097434981740936948114424985358200035995001806759062131201840227050057724652025417462421532186117831694407804123342898455031725014817682150323446229532524856834265862224785031279250560829575985411139369022726582311827335874307603772689804011811097041830482915194214132205420569455681480154748913414413301275246479967493556634202880369488108500261838729186223190095873497848587817289501036369450986695999032387910509793104799517021101353936316064675418940283239041301416343917669034090855334510232736895476313133489660947252648012289102494132815730272995758230482099412671279475608391750524684854839436466874404199435852445560004079110824358171312821043395229671841317864315206236711354583962104669683733271005156105565725795125949838958540887461521460788018736127427647537104089985278125159411249028214267224702356780380020616611772459850403288506094722990339688658973095725331757808940839992785014043052658101953962973109945282692979496132555911119467408452943892333969817378158388596239079748498649779293250605783739773831728984331139262248566058253419734715193004739520589125435125413526065501671428244756981868123952757468137933392696455656135541128418295476474981184926787528454082547990239641739912853350204016980797413079778512997152919100702092962036969097292434272226250348970023161587348149031908799704644725062155482616924545502178350471286319706350820746927289011478412817006957922127328645940647564701392098264047193136628379110521417029605504438279661920418069719354226263873616889210179038608141673753330602483612423568847736604671225534061343913914566382964714327519748576106392962268129398381634221937141639349733355072030586466209696448631006473220659805179958327371374628641087680408395312575475960091591292831971422336139640619165466031739057898013945713745892085706817666207269923803481080905160352591181727928803974720979068518588308973334305809842599726308582204222998213214370670384349758711040188065480802289931028630891688767918887647530213488937009581597791275538295168071431476291786649864910130194580852542261686674427220025547437568071436335195699840276472029440265002061590465447198885666086643165856195898726408325169560929257718959333371441525375326401667368623893816273905505391294616000750630718972519070721527502510319793191596841942145362339112987590713439925025505311114788219974439756138551578393546652751810244785687298451406430389923391991283868093769595839557244161510558193985427426603200122262845415249638093768755528643306002117412502559108091153510430686275303602453459757444648549216288011689804548500376688383208344959629158097042576875338930315058536281048732364545898045740599665761252451006463238574362534804721583939701620905129435026438521554486445034266687672899178729026583704738209034322447763925477720353731225926983455182784218013896104476592076036997323293027072966156794169826089221372566307309482641535186565290436461756090259809266977891250446606609500402276907599731668828794259149744406270717930699397537795414789026709287696967731452020119450531905502996814568010243219830835950369875363902404947426518210233722617360708642752662739749832751897356415352247972073465975490036234578287660054052953058778395489342436301842420358243857407946827895155604335610126609547042152668687963208527248795455114924504048219803731851374138742281148309287893121573560390261910368891478726640128676318526577125652210565831804019193874941132754021827613538001451102287868869773380430843172766818551342676996672584285943819601322353627459863734039830054602830683208776755641462373201271527976930999040997123548332438421245662476190628574311920677731328956849293718859665700483360611937702751379982537398503743274727444921564538840139685448916402768204486594547083049588017591678237280752977199462145952410115669538230646406922864873586486296587118953041482979627367245260528493234175815860894442186183471148137494386217507634906926596818833829380957479354693943238954016657243956032344160617244259063010853128357186534438670955323754455402092493157457157784176097286496043577652158829550979668767071142721773938692154003687983249126423052151933368347757051222808789217553578049085029561800184251749830505683753165368098488960733508282043415372217755131448983079455936012084349061781257791923165241868957000224687148759900495558064645344057028172605089986455035057512856304213786252777596632431796448092693004341364312512767824995457995584498034242516580748390475898612271676254948816028956718073584838872187786628036692454000417356393649442090351885953379541965143029033406067060844650673235919079729150010261728404225162292586433048147536280987989648952102443282429407811937360829340188052529319417902595717013119001071099295592614863118177678138084915215766513480222572826780366011131583944324920397360744198243541888450756898271506147916943954467026782367021754344167806880940686791042277643069946663182483319695206681643159730546417542790937854534277472085063849895311137060740478967549620264830289599508618990508560081801110041818967302132844905615016071838874439419828270589291135250743073013764644425424650394180337902667803151565420206792242757274641283561861585306529956366534177724812498476015979376290590672599067948623393140662491529611787571803952804713777621845978704779150671966150559610650440777443290143634378826267177071430294007082878597248358650482721472713500964121980570982736988660947578530082016807204966752263471894674857005935660491038529375845028302849683952482494642574188174857772024665883136931329563841913719085861504172071136090108259471216250120120544328869722252994902776189294243689689557359002942156606447872077280047232604219050326221618133403922900559341572384399697810501157620501771043941278206148709248774228343768312435653458493604085789430710557167457164467754755014775087863610195257081643752342868213285660419059336080551550539671168714791519838780673229236928564449876547442510002653508459818229315798493044710648816386581008658492014308203294115906304201664289232450564198436693264031540374687417956060927326626722164515302412583105466317750277214548657559764307700483259654513931736996963931958183307949990016910172529741323429693450437003129788368604882588373902444025799791368128386183304707185195151000909137821536284315011272585995063533303773458745541672340369740949743702434868090944143301743090564021634249879310072890189487048236880733121217023758343648858169272357976256200910348942345672966814016972071260789445281730465686983758377892608136582612533422561477497408890142896697961534288895276004052504620714912968657814681865776528287096314798011307092438415070981790358359976376982355376444634837901799477937774453163685535164211805784840511678391660800345568045021570151756490237552204448574394518181828177746070834516178220340378630162536044156254081947695715629957177297235291606081363384213057031579142857186414513649569973184150338646135888745683736866370586669740686686238647853454540730949405927333980103472126167189465709743750041612918635285980687094381520522522214680748125356612798803657358964342774713885579581357937847759794194395385216602097694393118053414324863165415881618583914364850182777652768720392031515008999282908438240816575629548595611288919918999403093945929841394852979235178284437241705255062832751651623286833079498897629094812764158944112183348045344339311587890723464009729758351978591493124767800658740475624621053531231919262559712071878569228667961878018466348998666225528957098330022405838402280623315537375399408946875739330868880240052685026086957498621669857076010742823332275465399192459351287252783338287124575872645507937353705867852038568671892612149052340491797678904959953513990012749987422295203413537620871029501738297691710992818245663425771191494871520264281024916221577361076189555321077994883879486665002552657700092348083824962604731916815860057524535356055300435027138081466942783942220969798119073726978311617950556510048117015874586676056257279821784633046425713757884043333485245953409356099782855285319512604941527948608482539040643696881596490715906898745468459534585626480318231167889341199843375452501290997751282312538460268905642377602930991630801923052198257039862800971737096676927574802537684464976703499987356254647225128683156359845589657390355669074840482917825335748368085417807942922156693667198354307706466076547478208876298590299549140677908428836020567788016242147451392333078379544300955046571831439874710761061213523315389178287017197111513812814229591581580864740002731475050976230101883449911562285085642760393097697841453877651239838248706914468698415572405644230999341094484527581476904990289196921271434584206012114219988017505787970715476247875833301330857431766764376107881549374079544288917519970532969795773962723787475334446088600212135331647901535804108069311093213638930128356364804491624792798530419094017580838492967895158242351451172995770264413614466778861402585423450200462264667677698997730482197894719097838660970033856249533741968737514252063578693252866548691680811801502343999559211017268555948914396252604331208199907391495071854960143660182433370697743128210170081192995990791125460071395258045732252251996612009373546705453193476541361238391786309908595862649311510347228675716697995882519338253399092476078185440283971027105366512954550510738215215211141867356961597769907658051417681252830494062874202949318318784716133357637147651259238559519550294582910737231296642396203979894068656739896409419600728753053244344476627328364087363498734047797333522845477090134083534702072320977750762700710275049729569768572523533606011621113771836041622463992367082007630852898392448170806501957182422912272949763066039823809379569005490909078135604999680920364100021997178934903924605555401070085528302841872379318778609014392346107861563774998907943252484941424697309635996024578323535852546090215300752902584324582059771033015252643454460360965980447182855447822560217211659311704024535352227716789647044936182511827496727525336648415417789659553579828377685115146169590848388229889134499234235391254099147519439792317092730349971942641800188097030001297305080021116166633508104388242629414760470608502080794519400844088904528472194337380445289219083538589636644009503939780415661902245105176252020297609003529829392088614526942161907913972283187619957193953308823502324579963626846690726108850444584403385757639660570254801940505628498452836118295745468876793135637862631444087040647296430444852109718495248000439779793900587778440881427035405841041290450965059434412317185210885834859873042864578731329219128885060304689548915276689174744959206427962798894961482827542436718119814272701836180713697477323084938410733578804153649653354851701479608449977170271954606082427429603971826454477732524328727155970778679070153641443404956809365850989094185395875004952574194646393905601148243058314001280504694820065408712653802834509948699811693034343191942580360751590151398512029012501754053924652480649805038615471195761517213607648304548416742104403989763352052929127513189670207203262451483575955374897231967442839119534945522909614830950887535892100285121389925811285836584994674124666132230114715605256459711125371738515684167092413291686482114908609819618235270877552184928850030039271050441598308754660060955445588396737711342260764004176965386072426642807247189484240224535966392683160774396318138796827951754956433366633165475741336582694415910533966614127402119270684038724356565804394718699057941142091984098389206160733461889532567519919712742717535805342925992517516900976541626571951694554424003507163956403650342751770187018855009001730106457201146057145006981526130999685587337026939343999517093791793741024788052287182758824346440092378941162320913770093919772399104180695770720477519891762962755364288571901038703976487851979343813512802874917672441429837355818404484521837339289404714442896182187899184516243920579104564280431856109698124200929767317103766585679132166085589515581980308932410569264541944790349119083100013356065076083789243398625501479160615771489434369048654754367583906348170427162505441300941115485826273976321109101395094893255161630379395656306773056796238275039896052359966668451207744585585074653935613619288128604883713921538153012924698256311649911399966734171271449850194457717827774067787389549189113372479621815135622153473491142459653921338155113040474644191387431061436437421439189072851324080379949442869655793413173202916623607515349000920035360380435783120463216416759874561449788407892196088921732263223228137192941016637558363236371329241148168084961976115687891364270476150469191226327516819223700046552840917263214918139977595843844720379517546423775138772697012242483378588234696821586010189406897940612085419584027915302860854384759366709266972247313868101646201633478930410811669614991182048972559907194504072767215849735717165357685067312639164411077300374753226428542699677989605199809792516286383624265619890673535648021077300131577980688683506997053338620411174069255786776554676771480217640685597865275987653958285036541033630961016744095041292378343544104184038821780493345998967480879445693793753265982641436825062206089662095679334717036670213771169793230581725034713021447309384755693756398896972151819129004478761479777500652027410777791791895671470228138353261315114615059619763743253563124336982070817090043678047499787395344175586717522419115728676155817855359446341997115781483890579084512154729262365302058942125744560705189984133166787967284635032740538456455825157469963213125826285121838629828377053784659876757269075458211001157449858498190345991747064846613869853303779072243547054941325975375584568506650976540461480817473366082748194255519996254006718841916353958832371487434780125712422096543960568721958012119256515716685219707375600333213971753005627307304893709492593543711160911610312500714417905356110361190552385196921418613867354829856101700088952028649695706806577553729681997328654508456603558692555030802543589905320649778834893444233989381479829245705541697726683390166483294962737700080302676941574148667309071355809571941648302290673470485057034548451903350013963779716312541502964436445771456874600684832415016160310774020391672549987130896358230620802902684936609336503140242643604103683376125859138607303628744386476506583183918056067727853782457440512844783667222326514844449520378229767742338065720366152728811992466440650421958826738895869691130602115993042713444907542879969352117244384901891519262783032209259608530533627280353804887868546371505744564225223101696860550130905744832550931110620830426230315524720723540481418922489666868549720360403716123174873699972451072010659899046443918471283283061932725441410936629753260155209161256270956532969214166209427069675911039445451439226567352976912154105566653899582329095980287203764869662225641086831101996291298314919469693987332893532388474875088634763020387552641219540073836507174132803760644124612677846705661323018505872889867547485981181863836711721761484410923047845194183109772710576799824893486262870224141239586057627075700623749313118069153549499657670781923032199236054480122228279382094897212329555742114124365382286772176725599733092674167308302698819634550005134483975405931631026865095156031262050771921765129300754567442580889743300851776066015321422602334554533294778546225521903673270621987859021797099274338867403597316144399214535724680826928312026277002887991937359219124287609753824541130478359920217499902441942722297052586314740905976982437040800866842013990739158110653156154181101401040137614928373708426537267456303304717593411065295531329438732947201106298651456802081888022116379595967473249510663635299634941611117932286161004323430903728733942396837667355429201753633756490490856431999642790787695231033803248279105885025469237605475261980940782502540025446014025967357027505127604325002730616613810755088589647314704210760980463669603883643904617235592754143045053037008976943832427713246164974164231454321981897912207619340012885413212835643385778580128271152598611173586073255949421406557850400182526462108909740494302010051856732769112070167344942013147526189412703321277046970417564414295988691694706175953270426812810567337239360497692306755700106590341495368932728666468718145572570121950966319230677904257420579819283072127750538134640019981236793554791296169191703585452482064045323683232841477562670843561662631953654862747721855408823812152932866573863593293914031938246446941693301543809353225503534734669851839567077112828961540069265379355640562695433174707689399116581132657426786796191800313164344986187049838545340478882394375784109623024923889915224605784892245711709635673020887300294394111292230230760981443477021199889492508282512733182486169228529916073395978007455520045226140068937265597310085668548642302678170775336483174351158843206387688996328413704007215474275643110318465329369710962724667346688301464666447876236589536755451081259291121583716511247567754952347140728560392842676928767028515854859812821314369362243189206911319646777369531633510606730337817832804822227022133874561474796509808183832394408068238481424339793768205520682957800594819367830647492940159443030187840920725378125425749730642985605389362137787517944885615238291125349556247289649222742555290659565031185301944692385375644012145946111497814105295891439509425679383981279310084715662420838658966568500154922258409395268644101762981721937974944962303083164423448082739935972691126793762153415395119739878141638594258374594072198323646779929005529812405701857329611096732503894807580333610873945375398500867170737649650894751077419524558197556797103028850044961088170930428489217084706712595622203022097567969591177422455291363088268014512565407773559041302058749413505814467490237559405741391474719510590800202932846234888131656274258530609809909906315127827830517591212381581017800013464740077827535346463687192128197171865911003550839353764613066780914228997303648280190493531113620086504629836831223598403454752436580539931248601647845704657342423684212116803942315024628586809486073651067640216937798348551717338779491658958070002692091749771436007897214631138955764712371610866527865578346543075697478327618668039937925392652567567210880369654793175824918011789231708790194154372804200088099875645710725371678455784020308702404296706735235449562391070230865752929742596419920414868685191922491810037700597691556680309082831466320357022435997833316480183366966280296021426781883499893988996219338907543066902513348785829773147871617502198889385369663137789897132071645926091818842896560282541396562521503966192562733385965071916496391262157532571211531731389675507212016812713977954560630236450801706874299758931188902874256690146460640190666721980464371927678473887248670523303923912296010590880054686831484454494460689054303785310923339950333192857508204327348904674022947133815655008203822482369678632789332650072121904491084049729091730547048708036259872627798539823928703144327090239367200459363734043696631375625768191545454900351215064041933471991253901168425252571532354904885859547038546222480151484580162387850846489222402818795180550798685784563849051880602425149980446958893832477476084796756975817154219692327910445675487611524132213669252377852306329218841401488068299730847722358902483717824977198100038297753970344991722042982029017190770763358466621803395949289264096524116859342379128570711994177101070343592833594986024325212971833281864478195023105647648499377660310267671254171228684145717514799177076447022933541291186885934060295595406415510505735456515888777537244384567370489042414068082789586926878602201581769770159737282582365459530903198199178499054811551676950826422111825144408653384941408106609300387909834955991942881088842792042277372242766281560057211248331745878813914306837467904718829822193507845199681216510972557900363036758399368249893904984946305289941255549993154935165180120073813760714794601133169090430975182390267645742618542606752634749193795252459428278060591968946534500006991792247460447610992437197982326717878010513532744126152270321059167153461697652489771552010899052122371241958673659415769154065786295611620484750114627275413476151601776377520538244465916207276356254909955116220238324543739306220026091396642625057145351916528775236707373161835613930725765922564297928882655113329413083553527669579709494163421602492244250852333965956675428652002450593916078993267738750719966377046038136469853762077964578500222668441291316487526406660013037820756249233100898391056077436072159996111604066652297584460732628274351952323678031048556642088587395791959983592551445324978516770453671676160029427442941372073593705012292961044082857589632799437824539996365223170589967782292477534103741722738192164455949275486548049762235327844673436970778409209586107217783985188674756339092993376653931982533208933731374303215240388513265165189674089244650291681839640763723028867410305755820396874074358474255163802521529652146987540483016228848646116494661344141771206067313341648997438152196412760307470977618093852213153975922714160358687261610730597614213747382736475550786730657378366928054473358174401180479602098502020038368378425472961479556632472784151402005822116860762268124920903970282604916395564332774079863670220621485540261723046585814752393626933225883251920022382210792705275541738000407820037776180977221896863203670725858582108671227683015038938811971187097177340021828190692879198603924730781428270956883051620865032284297654341444264742382820420680456289580485665902850425846153272746645996781435373461460683450185437799604179542898846560440866129119574501105055488360069337076092124834244044615121597956489187532849743331079221366920373261154263208136177834573955408950210844787185646261559286227222102083817621022852134140980237981759932140810903275912184669933682721050150483350897424395154669100237490280373275086445214699735989595021921109342174035929203999072407849814568796908495948450332464569400218406892630317526630347742843582508584323257268046555403665315926347451770201439310342055013966206579483132293872081981379203023921046993279669185375076756762381896827334116463852905672533686286844958881239469203311528409418122663008862531060619451276500854978625422122448232846008110587521388345063047610623626931885867308946542315813863535916740832077808803071583862716883185572456068992820096604471440010720346465418201741121495035688472423257174064141010610704819986920647309203951235104120021906854635972532343505692876099446689815586674443970915277378808267032441195438468509749065249632080869643627646484800303533073269533779462788694210004854237992953114132194417507074978425357552448551814313051079290224394255494969900067884560209704550937943257516586183047243587224566781142776689407021883474508910098803224556613498220161790277975391472618900850525350208914745462604791420469483356563899265779247548118428947548762175650423824195890475308292366377911724046899421131094187455329115795474484659006271712728215483466959828382022363361939118446201883768672524359968901489853042920963834913095590198308597873800253394828417658077604719550428309233730325825131161876466413396328067407177068617514016000145234385737342390676475085669071274940939191744098436559490569435908547991935901909789096182326215379573023891673637000970527582137898288783942056150276634720175137087057332482082173691104976334950021170995300815902166021100060137728578925355316285983518014120860125539442441217815180865930086150287732263902777440938824250648857678651489183590408390887428153054509914296360311414137087748641595525511488931886160534189496717709992587727430349805100723289650991973606601953694331809367341304293480120181085431801465657907492262204909710293426755710068707190060761891567524854890657425867145936993765631717845892207787051206486239437311713801853524357312000231812825974868408377837074494909769832201726798082233010660973014430751619873476273701996313321271359664325455782069070969825310101409227008897585326054263750902760037888656429410251260161191886576210142674524988155944212438259842401163414124264886862155912565029007107532380814027919840181742984776225823470318141919069176491743806045433908941918571834159620690108596644724198609683562115200562646048327477292826308670758749363511460948808387350502533479001258015240482700545605632370523245611681462201865411892100321506342348909716632787874694034918532735190671667367468445582874189824493530790149642478192782049979387752456342170484657518016193434470739704799619807174359079468088394730620381884769963258200397001346012272156870635590648560817876735334403312755015795836714766186457840266509910141665749589825419434993003548696196492880672185948851450214808406142860146269310133090676441775158234132449242899527007570253796373927228633592615410026762857187521991462157131259132031383250180926139706569583818757033692254454346229010627383207032866788035060639270474828901580661357387640607059545404716472296864170286588190108319259422118649037132147088966294574532123697336160506436955302489848819495414442351440754112815532259799660448992335637546667404833607512147990630931019749679141171154671945823404895584248754289794882155035391499649572849027006768420127041591677583637837720456643131543363790879945425496200554726567663357749544279725819319441050332004042776081153789078966705679513327231180547915415204767737966221748858032051637084566599927320610280514308973681917951772283345866161580402696515076302648591199109841616955080139533202061681816712685592915958669281829010428900522849605104691229166280231418665584259319806207551170623059963399262201586818076406685753761199357919059625447529689804709750575235176965595344978909620216919737272593834741373789294511995257335507148045791262719197475683573845607056161929878896737708277269187454691386222634896435686889088493562102299234827019126280109540994121817796919765635113489931883630129965470447107714845013696722243276998624275800720603142037254688202071224229030941983101698143776653943152294245019068991844533487453818566724221794655705317137723680479693880261224098141203517506866390834573944160345160224564267807219489943302894028189033585790738785636021099295728531133668393751478703892301467989876241071800938054274723079103751466548364311325381069047337014934402442368389539187349919301534710030976803003765453627320299171321846621432518721439426423486841109649147427703076388519145657648920613460746508014295422526618756268039901265896423622755045916448551798337047381051827317952576403818079399597769728315080414266482400904768125360576977821104963392630188686906670179556485455602635215514454100998452417042999870997236264345217216036783092426346975318369229188625710712718414574032559261192638467863869380879261800286278836980398159291699860907214160733752657536545260034230040804954702834915037746520583848096853244486179122975714176970824536215845490000516086835991926221818719480023967353176483725260137021040715707446743324033460352027220129019412362933676392646594049263580926178257840362836496671254405692351674320999582288052226516546956290315722044890842020320163213801491732357723434892760084129430447070660952256367168140900436911688865422567736851795211406403341109629083662717130537616330922291974243493731777944020074785124737504753106692225451033225630309476606645206755122270504906360027232610350777007890342757162225282617616797622726835928406574450573657359380271910987145324366525771715591736041222820890743438902146230847837127261331587547495405299488375985137047697203387818912494848108480073815176531242369475729780627521666231850000700446558556793081821665912704177883601976529297553797975400029343909299783106519508261123365397826152587989138399051182160568494055511099798977200904459087083419914392834019862107047134980034859184299474003142346327459287743016691946572361919883314638707340787600407060543692879536968781949714182677522011207898604222435286253995915064077514269022868524543786953674007392045391447869134020692404812709536349165588622819774143621710353749560682345244456130441824347915947906479827124968585618873700729989591489575530168953701561629805844761654947541717933425276312467777575335300659628495952202564580787184069885824680667745364960387889336967457534366039457573207374907268801438883319854468618108657303492985389024660625642380076749406595785727160822693555466297308150853782826403298881601409895506743906550268018469077080800572956145132948132639280323477752668278428414908438278706402668883461535911711562423193611159576588364499762943922643280659549781998954475361891902784715467739472161099256351267060007299575887110164585748396865148144378562985584370942326279501087278595949635315647195284846160840042486961717352451147907486671361877121777491910343271329900010498391197171223675860696585896457965743368134744550245779051828271375781289108748087810965106194457966476691070899586461506120952921803513284224881472118203459314377287212390549753214422592790915072812073351326217195076902916031992975009259512896524870454595231530461759388719638659462256001409385544564718539290284794600728407804037172893719756910703765973280599644619515123023162071202872749928734165200804910131391370227096505368203218544355286776640187479291811187444184031822850341552521641263036858310469896682655868313299788264044213040697943526052248546633340264542273010868896286120971395070094240122904274325961060050664565304005994879197808617473397302416627227065631495081781164539152805352383754835056816860713436608970906007893530045506965466836610651405481071523838765599497045281451197277257795887440867809434099275790009106566316139143227738196054083263857571449820165141209185032421701392499247937649662685981877672277179959605732373470288348273661127537082589220772000710425052719977531104846453591903284489411506362267469487602649447273800431908440701508650661488649697281786589663690914134111356345852017886643070603151706242437331074388035036382921859909384778416464950055841100655233576270310283275930487041231095500975368134008527741954246332637284166457751001563318882991078617667991673972783294230833571562571572173919723650844069713430015057383056606289099663749326108110422919723838139263085516865478326127456214288493229886240932710475563896111555856482722895687245193262052248384589268341689124275130716272399466164503893494266791129951159119316927530624970478960260523949035800140308078061652963552715258614063874707780514532327381647442323702819780283863814181257565721483320293902863096317415275827541509580572317703705282001139491544193514987255967359880708595915006427468530672479471820981406217938454508325955514154064288629142772509758035264894449173420047889555854455937950190338079538069298373279972202630582785498764824337179380885717692829063202939987426565582956773200026691146564534559100337002137414394369374946537235352104461317802385824580406168395650786297602013588202463919203987204939547085803703053042479743628249230900745411094493144322519013579220493119112729820298894351167998838940521517852581192904633602072621084183811746487644558846153773654955362368698356182457551371330386909166345371560999197720786778331867297165751832987865302361298225973805696653689767294341666640016833160583650072186086541943252154515533605465879289011378573122956539129228745513493383356507110393295126562568971601201290419618113339483278367604407024364826486528223089329691165627805919985829200392611611459238313922682035246392740274007721199527462638878274521439783726522411095131823321839860702541589149385121470220539330055823085903252734931521877041197608452453237018735338662404041190331781375098248195256306263304370747398459771136272927730952749910930932985035673874966082045255085184460668241855925411869685458522685080723702276624751012519734461228089174080256324769132264879675334600881571957677069054918470148020753184450953734204762164974812748111629214228166669858844699879739504158265504782882349333586018441182473707879054069771338153991392836543259319149239231269068989262886048780514952349009469851470651182703673951875800115075331440845982214308206360657696743930932332038348233540653193392793561852575349650811156729588677381333472052817867104028886764485096812861840910379677579835581366114469765078359367491145794260892274421176189686959165163001695456758252080706968213926213809745267939755213144878250988204208363644098604835563325423992864992487218613604135440352171943268188607307160384866992654567191723147603377203893971252974615337944219022988363926320006401434522657978756567891552619301194403658207829900141119964321894720282269307928631419793053461699660072963103024291753808488849450321849303175349002573575751204581078546621166224481510757317898402285420438226055707140910063725773367361970505812435091466447879232743141489681287402126522929150872555023238145214726712433478047672285843901832684110916416617779718963030757114300366061030550937600380652176262371871927979570093689384020461177967818050902754590747971132542145883606309806676539041506052218709783011336769105148803166421548680739223637511785964949331408760235090015625146352014064026822063962940602531911170885838842699132187122940749073454532852603163316584172335534150622941964704294675420971643162426210814474111115410492478287716694222699434712491422612736250046306757089657274094501402812818359605893169084268075201426942512530871662011278747399483026690664707172803983973732945305230255930366155145193541567606623625309426695826363176385098526580684592608463768787034530559870791574560427320922557110417548821619593103368094919394424335459310842561255353751142004996775927111597550390659944731356038097995948450617539419213580478556753584406342389338149230605454355329141407247967046890122037955625735584946963406406307584270730372651954079214855130572461416272069169620766763364950090467668951054636917433220747543470627688779147518151514431880505137837450771689622520436529786414876186249470453752670408898267861415697402609990146089436106024277814277101921391160810862545394418457843684683360071609006918924757983188185278123648444687722605050738313582821137326300441491350375259686685374865459845321770423209809085842817305293793041224284792187260869058358560788420072138579377596575777416190190655656653869702793846743765661341492471011096371728584266275961532145658644173683905368899045677765829920598040775088676447575799859541107156553526909735691664870255225172365804929826724116597515291634300221673261523150843587745636201864240553293590111547957367067619370416407287929572785700681875099277567146439931762204989041441153151486475690042226355820754474236547407180867860173011087099909306914633050172848397141433398209136669130609993380826086195781008489119263856060093578931462642736462434854302695010337756391091859946436327316248848667868555057669524418361908018258926395948465035467533664752261309764146943814100635996868734869652512251243527917376370974732295617910238704723461993027372471941821850748664483540544630357709540727133886316154196792416435194968024655792394409652925341249947555587104196984932929223333147933778856226288540361526091881320700571283039929159160714496932844249505625815685516001875337400533042339960020582532909836483330567581472211004448721583462107798670074354119205981296672763612032914375254860784239051868671259477414213013917480131958949803237556115032386726272541141099966665593923463126452965542128456126687832513433456390503468303046784916901347084112673555201880370632763580735851290389400233483651191519407105079388595480539328969392689615516772373890939051377445988782506479639217890629715033371543676285556396086818165199217550975659609026304751219273087124310809513264022601651923246958587409396678434579975659313580149335570564006033348322537072145686631044269750025688716894811687999976366441146034072944928840955488840712626057491885849011533206661488476689958580323900565571962250252766259450348872677527788101182875879875326302237801498684335907388670792379289931007486959216136698790906585129708824114667765785227539392116430057385448383858954498162061700735287828951794453758233889021956453667495015351755645743732039628465736890412895266678643801773625545049304537383703618227594934215986292234209509297093981160922788659754538876030440396305575489806273732614867428456838841899826164057375666918568922861648761591251531853460388558287835956216816007549767549558762237411730012372687305883816235370915047536360444692622627341270382835289709921551868576833863494310537326864630831953518280330132607816738010365039662601180778731806967592107312205145224378753961756247345062161647910419330749379111634912157718820650879212482617813924241866971314226900885005257555851716155212691419965503326808553982840640132590280656048914083698826174944511017300453982194196545643081180804711949492367246382369714751501969784289013097513862476289409783165764563431629023081424433357486137319481106500159455495630594349464445432474795827383663312773980112014645877436986861040479074959605010010482202289741902555573463506194968968414001661422657084974695877103818361349641362016018369316082526717421227951681726238846000054478050968385248436754567874950672451774221819919403737765308075261736542484803345815971268752506480477718521960773111698424150580309975241762627647245881796348715828328739207749811486678365619784509544348769192793629857100555845027159800804942437340870327831931501337246504003413260010437803657723338751161001922643827128042368906735568428220589365067973020114939037258120806662803616359162746843734931854899395456462896869435265643743555887456063800007561537762154487474969334178634026895051359563552339598243155175358264387427509617940318401080747725087068989908513286062991007181218806845338385991669322788960801349727782469777113429579809596559031963207005055311788827665722718140455189316052850760146278159565839186311707366657215423158546875710524850288887106709561007455938180581105145991291042118631435471176472522425757066807338675822493493962612980272833897023962118233345588239644786017965936054515183255757641113814387588528224792210002582284560903126021939283700695774170631153757484205909972132731629979227582660437691514562477018881388444938050902206723155627644389845986104660561261105361807745685463346842859363417791786625944357194729903314064246934237139936716988796184322302589039914498891187521686853026924285460734680833729686931444730689583476281025897705973856780923215842522790943811846696305014961857929000457871763011861626547944973570443957738507820237219215187140776766556558628662319507422485052576124719489222143607829757931774822904730387412113377412585124598672059006903698769924588073531554574313269082135373740506881908839630869286490049040747812136682879330882752956701192848630992600569933406977336247562367386942229099037450885390655514862540551571736737973972016137692521580435570943262806158493997603579989293296037343424130319640973485362239031899243891448915766861213850307488668264060925887071362820742986570267341156925972861387498209675523718318942974072690934700080529803255806954204807770576799799400717696022715032233505227823345820914267839860762508074680183623778013603860992701825954777252861170123043854952911284865575080530276501234773917593905270509094316745786302895987508966627075037824765761067414542122339350481113907972669415928037886688018196046137835416844567878183472177165467173768217662809712771098133547412926649631121011141221472571092215330821700746127724356510745435070121623223379924034217768685515252082771855763388107430622657190050921596997525400039557306355841259425172950995138611048984285896421308579516217211906960831466952451781652290042745752570059375620611551935051807569900049768024801855528941063278578097418262630333789613923944766502355064237928770870862479692508885351027698078960953219481141788799651763179463189937687455052766144497387491882131234372248502139963646554591456243302867733360720018904512130730307742336772463895791687720801065217308246513024622900208220655420884439997961118966933410221184357752854564046702105249104362578304063954627894716319244054498577134011160389000721888973354963504982198467106385958088059485789582632871848414758528532698064618704229285449195079463778124056350306837491305169886760131653006515514470606890461030187981770012010810478632087630427809326529594255692011516907467292044163038032324638641355575694292517927265509720875829743421758117523766052876792141273830837563534575679207934228515656916805413932069091251120969808621940272115873229642459625110016394816711428482001601270937507672127826306773223652465420623496514492098815598554333493733846364040898710961523500967971414839210666484306149902272817799171683390539326126835894958699634521922079605163384897334498564124943102689181190074115601282669597272087444921172404002508988604347413887483156050196725286018164874051346239479393207822901707509224985510414318049547806477321354924768023490994640452158319972320254496938892818662483046381812266522859734070711983004380877582271072829060898341121717018659257475852142662721971421307333228054960155870360723576136427327845160051304239419327653608675858666705278031342997231936759296029526744297919093620986510009453175688449984380048968938347510579333015610654091300234218073738997174023688851396913830297204208329345967274897393003231212161805284647025594680744621040863235761338064865489304247945957239559079647870531588480075199466617108035618624654791011870012092194484901830012850073533232629452954136060842047233338883528261935315329294225628598019726401918719539025065738020957965613137379542418303306910851991240491389578626566563854554756001352225199924223909547262161609816022824180551990110938152349291416642415139096639811639177903072416999182709184911406600081584662586703840542555008525896019401613245366644089094171203480056121064230515559294127436340742819206131966880757913586143142994240967884672257489121788163040358270920661322168714838906484184437125410952881246664747049596882857209456748064756447606840939768006998563939786753226543521715341489438185305751167722208322639654929232286744062746336821670489775948206596935953216301974019651064184852145302519977266300855144546453407379609083144410599396577405002246897296428728435084720942794384310216549685768178151640527774597997196158396052803740067826010803066902644279901736496267353040103848846967581664107542205825281001491412804079493140714187830266025223478721224530654863478414179987688998586414812447012131390828751867590025736859789930587106272673962707607610101785588933699262394169678694105525634938878367732410208898940181190926364339261970843185562617013687681108423587044288611166836032751960979691388380606402004969083457920044409834455683331967032723721404432770058800656748021454750164344434953860928673209758053424874489243404722777983538891720233595903907110173523660553604448364331101301556334897219239276241877882981851778698827884857093728916920841313301569018325996386318071163538117864341897219977388228829370401787325863549880993004887930812143279232442656415690622816849441144862275535918218810089734812146351324231352796130016202321654461915610671901877745937786056552631539895653099193806796634010991170426055824326405478992121112801450652802411741556115042669569573020534157696247663769523154647422169929845311178893623943406991959776193115224313346063980363311200528981647638226300601912210272849663466233260188221959045166813119229416264268599777277850438597156715544936997134929628497476326004959815206407119882842357709143377593681672914984872976400163182144351812107078321068252006919096837812397049383463802176545715385153429259219770288176402210561263819964947856957173684114648503518654581574561549217737730281036887519646764763942528206139498383165304003381885773908802070902426620681715912930372272029538203921401992957186800582368161892136137190265976095410163472617939475590544529816481373725991262619825978268099449726891312855492852030355829426560877034436347538825642957422587702554541386608503410414314568213888645926459452206071346814070583529953715842810823529095028255998493457072742896310924336353974046832783897903358069350474379323481071428292412306684501139997681704206594702475367979793787028019406728069375888320427872527434850549015316502434925609989833020960641891764077518432915231824731522156599657699420980362597045978698004702177265265650543764681497368536822954968581599313965561285719535980537071091692515158123652121634173914729942153597528522956418196251366580918105113136398762815393213669983307539056577711738583310670821760011705173076027932795931004388994220314945099391126541059775221438677881920801734459702497116973309452455320418717577339071077558483042736420694831210031738374162051117974667301269693112430359881414506447119916771139230345341895714313855292694138345193231457812026343265748437207207645954582752760142462868843423972442562214934306698001238717905101255172820854371457636450937663505361637096085372700783926792662111056260863988109049743292916277269443620453939489299500885739416989183996134463228988604125740304107120795808554951562461708054037276649939323798767819581193806294374085377619397804853493772722352285538654068680133573714907106846496650918725538828767516159975659915709452863642366489386922121218988790682450366365093623518178171128580597027950209923782697961283569186163203837586394875824850664161358269690301845151243369944575662311623214251497288229445858745870496177417098858143452767363026708726967861945042650274902890169554779476924095383481972944911862368665992510183106046805128432050872891779220052337308578617881957593228931132153825716562759807423802042745215674122332999443607772408797631042681776871603845053170587916656309970242418738642304495590819184129092024337338516291505699982616273938689453199424110748992909963667726335406257927896008854554691799332552703439868182544689200223275526649445035864266024064855762009234984858855546210600387228870996136674029762525927676780395216357312786107941142058406230129121955545974976400525395671067090408025146547954274394955847756304042523887523146425170052269969276705998066142040215992067096184482970359397742321351576577923895314203420564393485634096855000829629528377772591985020822085673290167041006688807931135980123722792307860604385517746994016834446088427953447868072686064052240445266060495742180536592240055042163839897314104916879170723415588086704180775276506858160439679892499086415523907067608788954372571171955548886049226551040934112736247667381026840051803398922792996955015508587816192213717135818293351241466369458500679291889840472764187969574583409374035911952719159435128173847209809385935122236493955962873898250825521890607391065993994000726816488564675975233339906154845071898514196050097442293698533889670578649924239855418739397529755406917987088205061953610103918928865978203412036142158406391367300736077907704128541908601695549196311594559537043688074043179369847089320288366185882024268632526576702307733010767911169233881894627978905116167682521295859274616406879932212771816206806177483243318142020605013649750225387856837114231306086406304169270828546177628636250316446932597640393352077638336756521681021530844794972995569148138461008080681656074326199874024381545275305719691211913195083658235728828681185037551189143822542279393628919654066634336483792828439884811768493926724402608732865218825095221383618647965124624059202107931542805968119516320199690003006425095989906863654122898213680818901515174976834648114006394593817950619346543673824271190120045750527791266565071988541085836874979771230736123489542261393890518673221906047128024152421207667494231308633398762289437255608081812911169921552877692984660001783311312555254994857987419050883631138063051641515364215148901839025778278439277442475569579823105470773362537243018117665650352221876966233853709232844274961005954469398500955565936588131432564966412519104722329795859848595544249423242450264874902812017534974964453679298657115225944443147403163624804393689275784358355086205906419304137364506584825892098186680844381887405952686644288552541455750665894950592512200598047883503558240484921949426441997706068913883624548307316943957311068765941499493582961659986554900804608002675578289401576169166279368977627695660051579107965642896990376506670422654421324799130654775497423205387921965193400924502121165745757162854753863005651070799711422912502508292041059848339164787152468998368376430617838329707035004035358439044196775721281794019016652498507740636930329229831696707907599099232228317653682790377114114158292769562420012603300863459661455037399650315067748510122479219904114990250934283786473073801078520171640725422330988799670745029496882087379048453901431868862351632456824425989212062909747374272169134674664816817080140470980924588389867670354652399176556483370542003252938440530189237572121215567739245669001904294056511631063599452814762371741338825806334012186755588105939846030936240132925723324867833351056191918433747763568312346217082852465629231913357551011717113650689874966469262354781713972142872790514833098815135344534939258788101618346968433482746277526639524187479160359325361104025550079215965817525090630133757750236764743129703300787728477295839351410296717760647184874338468864429870707912490451038191831479411575125691629293019182577516606250156163251652461134490185215175132348004620679815515400693732090369764118258909816330566958199160503017979282553860662336497721330383174572327062554086667880902458983174098298624715566725040138514784984437310750903508600256700022632390441840982224704125746543347032039808448232027118009094151781699736486822185567383580808013177708990045090678031537079716013413278165883406886602985237106523210195490457551851597093778244898750527356884034715726254995661564322636037232708223155723969023685481185308764728113331605989119110389845207918249152710638738384967138747616302791687591660601867564652513680450961589877764735899498388764275991621949547924272310680807381217504596964801289181335830146160228435644763611040619291021046160918932028652613905191839639793345098202461896112671313140402146396039084328869204754332084688749226436698636359481150600217262804958918590876686034729959578388824510755798288354807860047173372932685275543909524578713782502064416098762301917449265279482762183364371007107637329802787507557247863943308105973623275742037802821473941578860640164436277052044377943809338534075893764393102988168338577350740789235549506804256618399587994496894293623025710035667086150124712557630531993272890429127663334831241448552058008392201234052460328973657696768031201563516693449203203811557858531441038069927258816612718508858954428092038900274855133160559127071052008970463517123736643465884039274417107541429012256154342924110408440020311049255774195278837968857003279723918533650838339375929783097608165022518311695657496208447785780891357873757782228777605687316023341432102158812325955365673756206108581861419980534785343532013871257001555792401744038679563181847277992765780753779690904490155866810849039653315619980050408950348583178559776071639908974510692881234221039770577134330187394939411129695136730924359017790527193422276917897590726487144988996176590918888984232939890820750774159155331555080197465976142973416893224183036496385127086240125987350004460719161667171883596877924092430710782379301836667850269496475242727951521138712965559428878774826621131746493209391603693263892874885068242901006328616690391140144540158014477970658708218613392577119631837399689192346052261901735344397398834648685175904033374911470404837702632096371248364605054737416177012326392257272716212293336287701906326428055868727992170781478283804056754405930645785848247598370049052038862367532682803973820722072405635276526346751736108709491133651838170926321804119543964663351782179311289763218632264806866607428784907665455797718052710007604257182392128998114795127811769037208240370862886359762020856864172461175486361817013022166797375558636289825710317126725168617687155972577576233244935022643074804198190519682358113438837675745301145754675678242756808026859107168833856506473566854795916158371799485200432125177016845707637217174548179235244124958989969996365196433118711812763780054690198118053058532692955154769366497188852528088172574545425365274875464397551393172806063020199313363179372537845334169170437475634075242959702591049448509503944383793894347130231956060764440788491880016797420344182250773424582930244553427682275795399986396629204818794170561539220647424601053629233108299100797084679368514291784969614354413017680744721628202871894539726497502917564450643914527549740490497937276309563148839799754673446584799760865562090579145046278843846575196903587416482050078624922122167692720079196562343733597148264886760495017842026046395295460833458248889689393011856360062307550220782870368739783203681085396021625669519473405936140049122207522406892872393114178008808354875621935684052842537652407372576413993711278953619304323162711678652576537097319493513470094737219064689967973117810215221800165896515429523636709572516141702818031889762460387124439455376648734211344688528152985750768570896047744234530103713007282998311717689395744614875399414580108986234053248896163289851236170292797961850079610278650281550815778299931065573999430107615830491952307838282783310082406259174021302623709858788985227050875035507302092548991078165179157148079743064654596441308080805221197306835421252128803949065540908836882977485048918725217767438428309435996580472248751922838852024213591114889850410078916360653952069280727200946655725517765805124902890058733178677451422717839472386692909301957576506749486213351824010861006133653526625294117932339445967375940156606229769468610883112784641208982628780287118973420924062015597353392888791755061740858566158699990594079026877879942930897426905632349627677412728551518409794335037510454829178071647442061677650583181675323084298444133023073811681141983905801989587200873196642601281435025790725256328442715607194640793856022017029845880810566433333858074321460358920845993152207824630417931796632338149506463981022676875389686472880582542856407943178238647695554536460642613069177541367814931102573813732036878316597878820695865625413644203223084175402152367293805644292892840866396074659570871922294004805524914345009265038262014719751310731011246732032728877996092131144356799629117585113058164663131525413950106821822916044173246502615026348112579105683326732460480932743565192807293952621715889151890184075787785959588351832849784048765846257753602676286446296117682548313954125289811214096264134177013587319267039841352968158173433874304403855564320697826046906797228391436196906772362666219799336252322994227196554574496750280744158121295099077377009248866598276036170473601257639795098520594496119093458965559505226347294828020914787947161662679018853848152818387175975508666630367781376750882032994547338456851790095427981790640009362217562388134185682931812184466671614823180892416753586804877529453353667734922712730382276776598943811214232920713218463470272407473389114858488813874884912052410270679800728263579344635914707428023523625879249469322198268466141308809663904583509978463737717808114387325771257241655802013737086870002784035812304106873146333660648189979310048590708695117575055403776455404882373898302020216872026135200603640046427862749488120733902741004615195685748940412649821796884429434819141827863652426959383215646637461606830174690963811126669955798900849120974869330020851954715011016247050606083488366714441297963844660498211925420767095733233077111288330379566112194693083712753758902362925755004504839779135164573866348792294760931273744929735664472576121897377377269710718590688916184880349617410014198126827567324002539360961691367372022522317305857484995089809751362514651542291046946144575505230049509548705287096096118747274202607433659409419433671555151030071132805567130497182647334226328206437685085624240456594301212375099259903315786402277012545543998104102361776126108879970646581147101194088720615916286703211903439266103725065939291726488426421225834768364630706539904901639571699721876604185679245059560192714998918862090915661414770902874740079665503013611135811117001866421661335435565805527814494495191659812889454556660584459426253450025081004668130650450880455995352375894401447788747012993172643628937843334662933934822008756094209263497646347321750557666271880295520463705452982959683838885467030073409608084904605929949291079446463018704126462941493709512311015414308915998887456791010991172172938994938405421098380523221997918423563963585286253684050035367359988174573861561987616431577437199576379613524721567393404241716638424067014572944688810883773528738724911365318867209734301595749056221273442703030578423928742478784597195248732512936908090858113517809144038604431759452660778710538319645376205891361508939195955743146451004996724356696879029539919324988885663521882321542640686432413656764174914505010670040453893709866069486150489348522264230538289157038093658990015522811016697328579951374143688323633508867057228412598174187464613791944279129736803908017778042366314453806418008810011122346299715158318943664550752489430492793451442898345865185898325279702036751211056093862034451079519367633492646373758505536965029652739874791030882562178717684809331685874599170978544583444308917873489009676857417320646958648534760796877431057977941800121669969570177036233040820060923409176724558136484295912206176052647035708809216412329396210242243099235130916246030014325758418746462257000549629424188341499395022252159471582470838724887391101364527629963857454747874983271428724516905604483325282679229654230659860950631075145342816861924629616783596801610124215766696078655741373482987527076395218579875841406317746465524157500537517524820785333940170887472983496586724001888857660614402535427556020351408148306817469064972581942867291758689131052635754179115227037926553568948729258288995258711848005868583789686481908204058257164805806903893207783665543296799014998651066066105659195076341578457641906578286398680740950122969141115736811657914068757173535580081484761287371650156157381289042910027785752461549170185551700232625476679189755117467273938486490490384710981040238965666569916875263017241274572243081263868373245112139466877888577850621354279182211850998216725646827038742408052741491844422479041985075767654243765808064628846030593682741195033683015341132787818565384795558105687319099961391223328869175540742489804080753012729294051566306986432585197908482610106049275120174785196475547022362953171552403988790735910734098615173038563919171080687847994185919764433819720241182878631252103952617523662731719728836328601938073671143129607714275638640100017889727585113958282674999399147263537546448839805121446025735318263979892631195739382084138240905622632623623891002055016831524289683718881057550000763209153749163972568399772505605373404640259307430926863706420179900647981997829494432789030884124830506896808420619472468452778168366097417614098917447103611739391426431308536100326816748839230387366194730898965110707691304383206543786842313067375146676326836954647810946105204903380906479447686013743361692383772521623351221822430615396317936639474443910360066563396438384266013539895149262019658707098835800258395350257706564167994550704379137130358207214431034690690943601284268012715095745000953461167647236295907392379800879314033203783397197652562869093456312528504724105219221580928903271726311726236764848116666830477146174772450189923200654477028848624519522967437942007644175801381072754193293230148317371215115881533099803338714128405082399660732458813614509969232264748283758170363728807054773643240126948792580118505523276703004099069255544065131908573967142155340138082628461949741876818907576444523120566434626737391726005864895702900708641671414147900167360649403885761746238879510298642120349374296934603942569785792968319015914855525660068225733544026665862238462433667724827550099382575732957537058144594848408562582982026949679752796621224020177070540475690901798030420879497677331649633822980182380990801295437892761868809422882967843130837114488533083015934991130888864729305207483249902010315119123464305039521113057111109194339132662731040118701800670770314198369805234585604190546067686325781308667860371678052692881456019476569238057367284939404678912432397454564576113207379039961746486502279293844716652291836774076278259314643015827082217168957641843608544009377351348042184309185372725875136758579928078291738637173390895884120932211276344667309302886002698993401408075968190466955701386162616647157882737459411725541842889758501463128078718407351878580037101309192302118350761813682774167251764956549644155393743710794346419573598982452471485090146814907477429385314284804195636095605797981001296421113064911459148906537332637345490333837166971891189265345892677190913071917775625899779108299585889903123943778077925687703610937273775312752482146284332060254119476912618879278282347237194884155532072653891377464455547445826679634463217333240773032553443521716075478816929175314965694259470570965691318497053923166658580831150871460258334708477964610729425827717048035901998367233252836708580607997289645570327509378139603113500668194873877110833692588962571831629847248852210902446850324136919479749495999026252426741439727978711235194093112071640032718468472471319323850501245767702715970919801431786597588686961086971388271273832089687873579237043511328570220462761220332971395703851335030691477957935634752362406884362340432185402245646674643329227618054815024632578201863738766267557654231880915081371128562225500423344367439525702014451763971469280188511544169220589029325490895553129304896211581428247389665527324516358533642575632212184600255647554847303517818847593881550800101103530970019154230812267365971611582131249091071639130336598646086685786470605001441179388646032748340442657934158871987987591446485737370384193002610457073515778315793006740367132501223093712907341977411898282525687916770920996237526293231310683067777781754745512153232787724553389362643527753581171168782520334188129979404338095227612840281824884709130547807213315888390653559030152700552991924836609511320602959065338076301326399562700167635504762919875016857072597028971011583313308101719770590149920615037156997165288538151837717282552823069514837793376058015927158740296443681055687138483661274731396655476553531004140227875714175473546273589800197923640211192298872542131139785128993475169118878088843933190597422718167672844146607094783221001190229963173593143246216427982644573217855608430606114444958256493027143550224224554951969202165315031236301789977122425995340923518433684222845901467259132004445738831917944955220317477328543555676170419099440354690326369334314138774965336560677474836843547258087168276621938509070387468361928611003769234018592834143666895157312643418214301545294685172471010414610176851073039888514977772573750373513568511184843663610315336633672465710606368934309001922530290316842162875124727620046040717983933788823671364559354947602327604860238443632109216741307123221031214917596708895546463611086040680450299278385135937507390626336660767354527335490475471563711693956153134675410093350617326602235122429265936044588028404511954785450207660365329756869644085559503688613900353349041347638460807584106244610585653736839327011128379702812635369272614963927083229346756378653872474546263386403246245310366563453429426376084111247791862127145610967556715094939200905048758607815148949820210395944233678116405237895901902387169139137664518443621786183438247076829424331984598016098862258208868232445591430404765087950440414327385548552835383278651257419331056643509347767804592487765147885180018315460915530660971470920402354482305754656373839025558163924816045121934970987401918685809976129144400640280353314916479720753520954938247386325903478678672102159967101332400365488888642943556851905741134859237842646600643542698351483169003398068615540179366624214567587165184408200423469240464586946244702468370891350655709129225158699686983620141457537547475951551168613158039367353925605476197254417512058988174122169024343500526235420629472450173850738568756334489823406672867259265789731440623266536454548555679248758551978175344183243200343432294362455273817903066604892603763221561739879533102491428567861949985252565571303019164394578200175845434279620075423837248569635486064904797403708513312867920579714589722975875989882930611018017920841872451109448103778379122077995376475670795182219375516326957262964096955946714976151704722765170908774185912680036509512191942248649708022369185969193463805735868404853812409648623588205806813326543908194420081089380110056988872788766099074555346217382341141429010030239075206012184358149551872632899564197385087871719263823461469070231830209546078603184059041592218698670531814390343138609832248876191126502789462786703535652525174994714327863907365826957995804257717680289940504681308167301859792694620988865856500776102940063552348739618593895692931708706536503656060826770894411310958243841591061534113255451787497228095037611200379306917931102770313164309225698301166668747889414156851702121950320844718997908268158011270324166006177369499670300845499759221255908281808900281521107096161435792913789469213361028216397732313792349890537310845447492359793064558786140069609314289488165891799865190766242008044278079464801235181404357421283181052108983716883983986349105226522265825980173885527955213599281647513270377729786127974980283117796493594450345703882954402275616347050711310309799834230464529609987641061761350733774868088891557453233240707285639494370517823714188307741768414842792696627775864806040264851959937077366746665820987467260722385992488764874414583915175259805648202388375099158335033700814967062690941025004937737806606398927447481788626014161320958090424953208246983899084420843793979708384401168256861280027156144546440559066608496973199675700407203687384064458244064728775652841112616869392046753476255830239607228559630545768436584773530721072717021545967423803197934645961940639664199766456512348694886248261709142685098895328081053706450209994645387784615359535016444414694647680415583609438506796658392769746028110764411954133579910935812072246960168030354795140232120120924128580970775674527554476448340271606109392792330425598167533686750898580874669950767879061443555824298590016668649931545425686747139396495064294348976183962199731276791980801763300255315282161722750805354480807081833402125673609005925685205407187607937920713613942849711881711478261565296547102158024186327067039327905335692574732787499888609159871058702267574116792735282606050385517653316827849915121572902216223722051782218972967880222903827971993007785133274655695937825728414738296390348209536933742632779203558985280554009733503473005198284852996440142362281491484075425786617361260156586610612080083751629868996630003863988467949110155732093826556947594852872245132376455507212655403032925247970205876177374513704897834194016694168596011907577306782406386103802124159228151610471512794009115450685016887787253601500350881329550212733166078908206468989557575206193599124008671041788121981133228565895167702408637613510671304724098818339554651076424599480233214454297714489298133902583961129312909569553812243278862518142902351544131310651374706295287056696298838264277256174770787646784427894339977772173428501385982005292386725316255417928430582526545032756485928220863084252392951751930784933865935402050583391948927647193914894839604562074314147124425562083398596183926267494910118248393585127917661931678228379677380618428113974364237455280427733720938537598931375869474852955314073767132815383436632630273806980277524130312473552620430305744662176428058855620229517016441926849986909101483422349614365765138048902109302426957927853776228323010261946116285152838841179533710099985222411666084824528668437877556488853343185365403385496695874599315653100928647257920953237349366637399930614957096547280406796842590721895925039923160502271788649383584514002058883334009906673848230502994951974891676280766501449850668105051176521784310444043224148875106873082921591353727488581932729306165365765678256399880918832343986303096563254689943841132090644487350823986442029818314222056495812025637263934736956764380064313022893351828634088903360448030630232821814937697098674159841653498280634350292405510308656999493129333509685543064579332584147938686356925080343513173358565606702264433625323937948018862873171322292705635220982650057185184614889675616416956322736914820835197128477614643106498824569098361571487064171873815602249693492204390878900389013232866352569789742399052247683434493492524388213114495592856099470937458110018443871736202910142961266930206421926798103775966354535063325687953680527196736316168760087924185452176047255918480751346655403939538359854049777931761931963091150216744617822319497451511111811896486693135972152537814108379824842609341534081917972644160387804473758874566545193654010981952560760300079884670565417617222519534184777903970950077368447382473529997226778553337118743998787689118201734506935530691074622968893058999152995840878293188412563349688912337909260063577737811078678030011425927849093536587412538489255126840142163079666655451105467419022884453703920872036630797007592540544309295470995284630321512648993805480816991811049639279666164596414351676017324129303233843396735606052150978429053016518471134092325620954695845602058439285327499237793643115860193796839917680765977607350658755203720226742255119420176502742069382510425453939299326769302276008320542925306045405724053579727287373772687156205317814570283566842577159222410322533831634712218065821202227181257384835804932243882437778805029706613542129067429788100209508475565225686048305820595713810409124952281748994042702399017840485413453488369312597500498839154002781514377811273752081043667341634124066470924073192901052375100176833232657537605322042708076269201507915352367918672089556525534897465730188515301118134650291211107991911468479854929986192314193700256182320824639765872646306573015928711799495603387968892456276501773606891758530381017580651815782919872844709207351705526358441739103987740703347822587195478059654732272946689251434829733583172154154354323705589501937000650899043092189123229384813437901278051562066276529610902879114255515139097035474104958294134458313227576651857460809483438982444858544778438402036767517351931598255703552904228491439826437533998158494651528706333098083855626740804263964360870704482503992736539862152512652544871073619140124182171906793959151210896615743539138236353072944926720028036795085529051010129716223888798477735326458093778836238406965029295920396649179623396670791083502210411219148782992361260737591875358004031739060609300638590942538030990137412106782055881361598957606869926832825567925654856626196495243321314913963495839355230193731135732523914354749462881667430248927868570052823652077256828670694019007596337597616054114245479057324891135612941634337080781601860970970378443174307827843748107410666114968980212020863986807048713371387362222246036511729253284688591878367818894156558247489568584324745695078844162498649011000755939686468583204648446581834327294958677429807229181618027271319518054215562350942898317744888686207439673760989219116760353953460969814174623229474258173266787385334589674092521899176914668430768249838293750845727312130446498790035833541761772156085120626592988620207120940117808125763543367984292839798184585450854505567861962705500497320853687306292019143697870274447711122198183179652893032845631862932237825906822593114684749326331508721327370587295857868384916898199852311949061299383485277846617366103281260708747192057963485075162394015320693468529089439671007966129907486463965706344326972636262115249695640734776840259465856950557329626103648399341366615279291327949641036861346642533877114039502192870194102926023779642686768925258021925031137562515350602093796600619924321141263815439096321143796492326797039101477573583612910763341648640698753190229810002954559131351985684327895793505983309851221216101857927553709089202015583794935277712802868119368129756515854378988960476451194191169118778985450209807131662057394727045295075152943563982285320600002488316797767053246400582625291219382632853960934916458098969197512794204688598681834622606420738273471353053423985653921038714674352680742836801012938599667955611756395434198609987863136006551116754812176516582566247738852431261453842331332454771098533507960557311108787453982498864793750084826591378190056146860048511129860965548782605917158023551493553129280937211041362673812157572987786960221000942624461864647140711327351011311785941581696771261803867446875452242128166414662462528359893229102492146207341295107838814713253919861792405100605502337780366377883230197407790731194871458685204787777686411842887671142324233599421380328525640404400009033672119982695429705953180264263973988183211389859113866835593378566471668484939085879742808209056943143302597405494103121749814873171484780913659113156610382759120975961665942722401299233899417579084060914824704800099749615350167239189024909714021418172970131592573237324708794628132982788721862156893181801676639609859709991085797071628701276564402040994517953328882068951286512370865315706693955019067163614916594013509378901415601428985330439640565589177820132226828674826902097406337413429610158769328800846348487735937211436532768475908179713763683423825148916595695005138913978413361434598152934074854018470682370897832735970376584724070919965693673505997084421120832660595283153451583151519748045296303881623750809242768549722172947082720333681840021321449810010555314413720963981033557463324630680937053766457102436859786755414075830222787035709825525599338679865819474703206286191638077183874725604279120057335091485970827863308970730503620782759538498388698414384641546137873795816494200995806922811958353377189889002685821341297828276838773707856025497225606728618802104710106014719494595162739076537311319143491251590150651946688111155545605078987121950555250055261827676660106647861378984453082259202003624100671293612004316275951316697137342059391220921120151068882327652196136052803931981030225208765956823827593179718156123209404022936212472037240723939897380963324938288036677280094118402751705969478883503988539112350199648659181674708857211346757873740789833730301763416338622811053739816867491042436725448651407576200360448060361360019127461324552364389031899428368454905870186181797443638728300302157814349007251069062943753340050527070143505605845801354542842141884320236873929711990183725358893806953029071161992967794118045964527369743226427850230427228037891732191323340351559205203537170421349523980833129426137389715392704904582626539665558613178930182151582491917340015530371137760711838956920489786676514196320742709284514579636127606094761737435472551751356574598244067784968505146876781730354899680498881542671746946952384302769004138675221923356931205504487428464066397238440159620985645843886453220641667869743991338838661537112412557636507723438925638066220022323636879870195880662419630851130131906089506548155725192614965891308284591987036521091746429492031752297077378604515155474873787861681332349057244266375548743835287134695409745920522151831117125083587778427960141952598449944576559031240148619926113991540691183262103744411013502213730121163241893474237713246663566970613631687942367255990301505630140185005746960164866583608120306305356371601243545076068970859283652546665482008653572386980954469165116855939578756448500254084135522964884454291707925501304880665117670573176032715075318816833195333826759477390690986172766522042234990071112156379716064971898251180642979020919416581847925831827357370968066828510459838861033775902766423641060912393354450837758600024281239694905800790855969643096207245964365201619122261058804778631133394124223128413896348504373666580442511237626225455444671318023562619854980485006740478632154470608068295330800278152348192766685685376234560343511380344701712081125072876828438487387451342775624228649434159833949480210681903014995718750083781928441543938994550208648045589219348882172121537218804694107983685192731837428621961568412165661084757769756599606419088738909540580559645958083825663807923902807352687325816554060264340927785935244948819491570109234562751121041118755704920200682176074538289034940511802025647757205624431607909809769609631533441013859989737607025259454902911365479018939986883898153082878786839816451161552318294047271237264005775466490042644955144134691156180753381417920749986268140278595717244772795972056351279157723362934092763408321566893563330508286499808557485983567675300843432972717957569540482658940934327232219037334130674994062923201151381262858465949659559717908898574295516383302562791756036543509653931776624359588399490470558022472182832128305205962286262908469174988992216798847997310057796990627285960713457771142317493253411482776251492474114831310033775713418727891240980801570900254867097432755167734913636998102967533338593704689223128398416693029413007990504107232841384305791629937159253274284089050492647514432936546015215439791845591688709215082074598724850110168616864944682789167642393427497036412599740950476510083991245173539395666984205679060420623136456329145074217776831825160088395709052792442210222454230318396664882600150948539223588105455889086446562673024471608021925810199180422141846330432927742020158139966540488946575421549862672503630315471260144182009644820386703697372141076356284724257432300590586144872921381296674114849364099771709990035861724638421931634453131635683631359713019577154783125141797404933153957035638538879420207230101631468254837751486468718468197046345391708773527861810875423106589327970046366014224071629773959966457009453762053825468406800733313449014807234659157947764006812806926543913211415831122011727878283845251830385758719712348696311049104199896468545416041783037562790319827203706942028931401315277445040710173817993512741510778591269122923329596815130531075218357868048894623064230821028501632645119517890531556496076304385023171428800270910735547899840842933989074300054094672829496359395403340858483072660106000946114141262255332304662121997779332748618407085292134399734481364698234916117032909863752023717706246610777907690313825941035446517394522471484800716647779235734328230426784783824416751845787247990502596327264646349216292302623180388670887492063223350846954850172566575994245653644225678166576350233183363985172674991945800710016177830550867758023798479315846350773432172204980026331434238862308791700871668202054068720696572745266483329415498508834137020152279837487082530334741225447482671258851429314885497802308677756796944900327002770090936356699297153399672903855395352877739574044525267542768367547227696514857433060548348058211648789163242042883686331269357769479469606508500347311769211814961423788517586863754204291229575986138092656609920393088523413961218762825836289232113355173618137549931304455761151370834119928624127064411788311276927932542981465416182740665959260040130070993330707424567323475375269779774340597940956446127423089837699985735104008314628125879389438238530278514775532636139882521641927685097029143465651506838244951003571879182210026872280461788728668410808351883156182491795815593935583733245041013625564544545826074889962299126240885611979218234087353081109447717365636557649757593768584044495859268098316066627186298922139371827440857269329194699929265613534973754617245129823111977781965709955572435129996039292725191192936863472285933083445052961592349155640530035780405414442127122199876940484393853675097973555488380678805021588513816931694361569278043334998372703382166852985469558903700858477871148364814275993981430736510329311698087062231758073836455905872978192434629541284057028237233387688035695561685903409705247292958607283337540331356472884262116066385976480536820285363265730539715063591529176415361196379034961600598379422840889188370163381927732261577172296136622933690296271223823717506678602560315753333538109900562217059515258368683065605606650958569621144649071062509224899992671886652037249592430371491570540234873916668773923151378072018815651141405518642593591160208741956783120113226096593647863800713933808718907134851975838244937974669057740754313668154217151477361278291978143940406244412292831718214391694832603569042517022756751656754119989451318863415695252942738043978712064369662123826750027444385780376901136736066825284100539932541587088426649153257771542697654515552311339367657709027162907907042962136934042632155915072131587849944550272630224714992740086467853973462904278969323292813348271331193386548909302569670084050727730053099805924993083077685894988094836904187032993951604274578114164656833556544036842886344582541584740147026791073926140821626114868120903953388371992257145423425983418334999728264174453154507027184920657926152198254445616994579612422766788986052062701219509484750606719257525442104972730079772062434061972773370926676724771135772419896449761610544490620515293070073775247566473957533237153040678289071281844751649697551802465537946904627485799528439530846513971224630955000183685213571823398449120270928328195257395140709732155549903138271957174406370009855282735683113029942522467180332665633371842370499582374427713253608482725801531248326475634713022357088929940976764336444836648828338352609383319786819530312566867688593363293235960138540093399725402573462773870223756613965304661308267111617791495605669877796235608520743079462638177182965083051541072258614213274019704762732482230024073545186197582718790402455846813431550734155095255455144649713210480911166039121270454170986290945444351584386185023916924133120157846494741339419902485340672555267911583208346916228472401547067376180919388420358827960837548729629294311675267849024767365143315807128731400162240487093076723798579247615091928209809259566879801273020685038825421834113363954568907733982449512193366059041067868849587894201046015884465745138041348035423823227514044949653586906917067621570001362398032186391039318675550854271555482212660530281559554491446421433935962627778752393835647778959763053146981904118236420125238661371101465267064981812320688776356815645128093776337132566984959456168135558002743299628902663596937333130497417170859755389145446841284980717029790867579497418217677319644622201572447683605191993863080890716773945108481501853631570214821591815740123687000964803590534539588443836913712261584331556650582074791434694935991482778040613247016857756206501783563157019976853500765202240162658913198659976169466814920288037960394835989903530278640619792020337444692898337728783325418558186597034936834909788525632558974320976785610038432398343121504510366483121220181988514389874636400363305722537486343484762243470648450678182504918655063275651358053944061095364725811742351101987860831051912536798607833093438083766848242132008822798292870822960789798560205308847113238654158670621219644281483138067856561067865511346891412577813530582418256950335083994547030249038640621359344266904832260263079798629934629411945061896902237566870057752968225338580472940744716335454337902383742238520821751369592507137658206901884062646968193225677022127957692583053378417836760501925064408126364959839324251861947502538650509851001830065520236487413933476939106029535005176893965661147912559839964885303519118700067774800480741774548911912266743851460745022374922756839693350984396871225605508956810867717491499977776598237062501471446907151969136449984203075044125562264775130589384601397916435977112470659704864780228717831042586734978400355775711180682363114014099057676332357092719391237579539664225129176454221460361440154689599808598057144845841528726248860112607967700493083104471636009668908749843174802118027796644264844929024336247308908706812795422500746316920730545669546976707841670860857515027815433403593543712893672937014955709925438530843997903667389160387932436322799891804919704379763849573617943292642543781564113353766817427484034137864939939738935220135154874873651173308705873894518189620170268815166994612673898895163285479568904525878025170760382459331216805412712669193920666985336076466996465339063128912307978261304646071209236245538825183659642616951506748448566172989494946205193201300041368971169066738675663489480588857770654527495425595696075856987235891883283683955837942402282260978303872831098969335118600573972622538450695739886398768942290599071839010813082033018489368790007276521608706506670974511948920804428770321277361532651324760551484932237015746406052380173861594978660254311744018099253505613313360091172668211705794340284455620917327301440129852474558844948676102668553096075964316293761866440389065547974318468257161637947905600937823619912242765063855238293354242772680179105170576799334547605890375014052724900645223395692742407667361894785789022095340202357936541226195596333481303592578669958127738622022665452949498350500171856207979453629242125910537869445490906017764191388014617918177239527345866828256857477656559992632888095620388146047375923158537056033039225605535186946707573775426839892893360402997818986249335773995205127016001775940802521265148425640546096167658490180436031636028491191356242366289020996740446283988691968671623322594660274303834979964122771727857367263843021912168752872188774746676559693183694548806340318147464593499214829134242823851827362531668924014649328519903222739057356434143347556026236475458261547320421239434935774001635174327829814783353705042508802316948451420412471021292896798433213163882024714755847472531472386589154684213964639933296101500057597093032419620113123951993763808214345042402035321768585298169988941951525857141560180803796336341996814919655809825605136129313110656378237028546427209224152311212320038325019253163409584037803178783473666894846522769344828638420474062187157556799845349180623903233845645879505453464751942096974237744389470678617235031237460160927433030145790690974481476736353554750590199499093817193190532903843255192342669702402586046274919018735359115365908827903135894656230658962198985724561926561401688792322192956975016461741403665524572476072036887945120871549049339536225623921266629291627711184224157783838394117792904525145655848106681165505800004082583987966153733587360254637182255271678889473134816095042790546098891878887534558188805089440029533621754060876199663026563415669527466696443973120620407843695000805068640969625059070606529317069064830374975401610686582172521960395618487942211119380917460299948365593558082672360451897073948181320242521994348447739301123526556588845146527913842826917561384225243870752678306475633986367183084831673792172382470282590192105892370361777300140352874054032698371733739699948295381995194092294627976985701282940698945222277973594310728578746872339701689156709496935833383057001747771210840593468967289102191692443720608407079977547673249119033904617710385274497120986353191906749118075160517926078616519396052914583771521029028243674591298931063594092685670500963723787484433762159967381106646926045639042655121964994352705945150272129960828826635542862103148244469954667686576424641782450876987706790907242707813953332875289129263221230938918393920876835756316256282870072343800757304897251548403761630338650680108672431511900461354555847991535813536885470107496174446374761637351994570340097387929197491473419862717343187440489380549217801694473332027369318621581524860579523927107467329820777406605841185447990147323210109929420212894653223279788672436677809291412152930004313963895832965775622874997270229994016076536152478716264545842862181914552000467165555207935096436255227124954772193868080765159254238810685705053944019625995897791195340063845056342858963573725951568925922619053303590579269030513156334101653498180810003380584339153625752155054523402274446778814588069528017731967696699561907199695828436800786171775001052763055763056823914121976480035226871061327289089692097644018159606945648426027964675703422008471853603121583680856946967746466831036621433042651774772948651339462803651761416754248877973270836543274014680795818652375051409883436148657014740433563240011209167176567740188964243813242427760568275318916438947102634803472126818915478431049111113337745121221642350703189500225413698340653636817858520913025911843909402463894436710652857903787190235764520959378685096878687475536773570670218187876654699426700014075099404590161984925929283987439819842941032563350518696217558977750916192986885285296708371435821399041815574977351289165106713162256818672668005992017136545635804492374044912322741808306382933320699457348731171456768945287338222834105064045581439216918117097481305669951883247172829651320751602264862951095609215149796900206744921897114315285547089053419899745759936637502704694129037095676406061397408170072046169992611068224763130694280331879437021069880113726368430978141712280141589810829963789171534892871837054090641158946717596861369864664134258981144428850428188775021085094696551831690755567974536410056909718695377075512257353828126784912740464128137653544023649894042104974823196781609733768597152165091030318654118439012988250045243069409084264704771001532844851998389324268586982237361283808043026595306964255332251967762095492392889835256255461752150312862975812338296059651886750098031815731164020557119420181285974571701160740595138979211215522064171904270270826899513890972439088685204204797584597128147942371637961260844894976077269731198302215064445411814882483577858905910668943264382989626894140266029323029756515830762045609417579449838966698593181386317384815494782716605426140980526195015955550765036848533759862358988476959856227288643229613521409176427506910547170676508397198363392786445778681729191458826742112137302324255010221111787571237779692123891291410584052251481325518172491612931756196757920757576310082161327160288431529974368861197054349345967204397443095483782237809934827424858160304121759348937671865195532602810117804813228326427812441244302142078610204271865041442172227748373482787282882518560602525774067538519788433346626471374869954847711046090724136596913220925040841843746023550106551051866581493975418866323192741232537318404231326394213309017010916887216029869306985984586703100311826653582511706612561089613288442961860009376755518701449269085674220961364423643355220170421562396403724185020055391370711597883781854180715561957435268978960092529808217863283006077158937181852768719142729350525880767239656503755384854265041256122374462790043640896920215848530790058057130252553727398940570808272922432093872819247675707023227804292237168296223445853234420960665983401866306004342779370694238675860243237969254743123421796663953063529660230091477245761432206343399173314159234698827603985325478652655225076275588470257879612877222362897853352570147578644191924144032327780614751875975086413020674249176208224606298817532348386213560874627686327433812352608660042511317559350010956874654936504880369772766888866368546622172306350623370837914992329132095953457376888540645225654106628721332954611554442184995836203978772054126309761837921822357092957542237448489365648755047126236032543073213478583840480265904604068971231495590431387229832911247983471756209957175957017840695262754712893199972426988437180198821112744313437434117025605396683623985244714794023894169183133983950579417209960802901029028333908898613800161527120083992795471228918721581303570669678722791290630125731955206940293636559308299999774507398044224994851494082630648192090833852800715931310608562400724075893064459579508515747103201830740420539711968203321711068955083915229939955422689957853637477079947481442972069011782233632285199854424769457988211704738108689366552617600162686328291295832070226708496106821664516234258697813001836735852042297733767512006556401564437929339412089840964068954260781626051324849440530909495225291108527179575289053617894404655671081251426850305612047504636753293182181909752599699084849952705690995719262028572527550969011052062871986436157367174310980226894738209139045287311692171987151912916526105505107826130196724250943561128831367386976158872528148404387402829323311927410002382112408877318599550663419535100097615806890983510150112825460244102522531740733722310797679367673635209820364979168129752740206562554711562994680632077755975699462452972159049119315036856558668885081434867688854033653241215117781709635891955730651486464109818936136225834321290091881823396468212297006051542010682502194022943593403855783790973424140028469836068180066315776084628545676544242241030620843152912632521573814721494397123816374292855840972420207393034507160575821257402416046031339483142083743860979539393384757764884747208924651807974059268999321909937620999492547797199496383680902420322503643725866985457196160619600275516514210606937428953396665754494053693743637154522275250414569904565815080869735567623295170368082899499755469849253279265739955284418597895239877131067179194192244670181086692369142798657026887605240763195042102731477861978177289904237105613414662119514793440469261878249278437824081155086145331850119906140732803803075315622016425939718959421018378320346091132155441642846899670005793467518609036387053002644563403486768767842640833753732707762973610164667490461604721552732408976828319387532649490797723433614647946202339105618784671841761580195426825198031976511140194687977381318797898676869886018769321201275119224427283020659516083888400524083956157308994986074271167472511685882771793338173756203900550912950190912054562619166177590705203001706039663642559639983333281504245557251989866073619683610925708161791461357283254976028102838788537249065599727657401339014832872949186561577983635296925590586327094832547586005583835097559453941305793852565613572990862739421977981234774509268849667323439190077321929608172151804419002895243782587449610209571382680824184172224307122846263699711741300254230524831563595140789579148065195125762457568447464286215207174371408680800164806087143204369957209386737327639931890371927916700210631742365413161806921208992879501505111254031189675278159019405105649486256331372167432902854835233313496906982974188724820719910590896866324284275610897701537052498754475668842421492824883598506980393809700829745425549781770698711323307239764316948226755120477517878194283504531548709439440365103134720638280917115639835441836123226805663131486902658334141515364205551272795750145685196727676342489894160681901078128414560471423141121597573687722674997463829102198098148817518491571014784308097325104927648051204260476407963947492107194991751698047132606418581158062888897413994098308594935988523847040722446139784685170210548873007178267667870366642679706613608212323103007794890722112263433285051172208572776575478597093774318493638729954149462478047968819928124706470426253468839488932321052503302021702259710493495287300585618705090651564307797948396998945713769070672638687525656071780728870635087765743017517046015214302925045539868223556775700886561148161298711489616244005339983349360710445283204942753806239657213214330824596756381954755993930391009656344687141087512047522701476313263267870667275887426825693689302409199541247151474411396889138982525645488416867513089305025456751816693095687936139830438812700489849373539478502585739105110579382364778643127814622665871403727658550190333339708436674847313342498451544006862272570215206839310219896315927022667470771480512492167972814542560638343610071255483999794868757024479864291177273689789326540180513050009143101147294754637950845282082056205618089774077433866330509381581764460114402584555913104238753475051465416464301663312273824903030453314503313886337710876152788817911975359123439725235054700610057196248932138397449334943893267759390639928779251451973286601567618476587574109181678303929517865425623302999487943675650368883661739647797595714150690438159548635864839413923249901331905298881716966244867918703218735420906032901419284681356226758681912343064921039778909269273605150862935914798174857371635850649989629625835200044488261776296154835210060120123354240103469776214304343242050825495870391058548144456361975070725363657107993785439027791047420598746531482279075074878860184938706259188556599517251001006105225005229711888000937818296261797970470276393832180949557480843275376492991318361078026859171430936939405707350843656487794663740103681552305695395093747425065464267215458974177094909098265022362812349572853232883350980726125673548320951223033263218656421200205800541995404930688260160830467985875058462556215383861189375629706252389435966637190734358838722604509847317832151546303439938091309675734515447733151772831084571272505700251255245960905064354126081889167803734392588963031240367535866240028158896075248174281755458727977882670315397246636393227513663405130809573121360719660129734300218984336963175198336861208717374317544938379453276189158638451467255252536536179128451123570349365648904266825285581894617724033412837603726545529744067700515423781986425771607420308139144311855487670408529829441628765223689941481835804830318500880094573393355538250230907467809820365394041024731620111008938397785632718366092743312148360958238301970038469150965768081807994888062191444887002192072345266433929869894008952913628130921833634557847911945655164109181817483777968837816910051853802414953754573331554846478104061546938952737057850997268841893688847971315178494559847540877782151997590743849369708761697822367498028743220740351604139533889168298255234649705478313386488052082427162996608035494940051585364457079380691555159292563909726603345712554475500656456854121044094476196345992367670604825268113120958830197426105853588551368281561370866184146993907935806899263951150105888844591419042958318527069506863202857488241697388517134454575833972856438668103936625226815873577394534646616259952392090558622307669851922383251241772946115737960134722977010399640029538882621418805510915239472967526613684511048957643259593418941069183152183945331544808593106111091998451166697537395458248426790214642171462117149129927472835457179508341945330937012652750522458239059982337179968940596246285564855357847240627386718670503361276595911985729039525358462471311278018776063716918159493380633421089076790093141637615465104496479284709468347798484533268348083721551506685999289914761459106731888907766907694769041231002058679129912008276121472367753516625011565526597767307250278996256105578580779093587824985254573653748081531383960788019603270192826379562857382640341921715069112470985492730558108354356254205907082077689018189725618161174772011431634835823294316882901759462198317904773448873199720241968437242740128955911667510310152069035694599559870714330161293563216349726756111015828620478198568212315087618878814590871618207712666953653949554987201019645442459424117810677573487078842284422136846529267719710941469647966661792880531366365079752041207342899069356007344217658112162462153770761708598628921642626470352508745134185579873471636846024759654343481726272458170164838457328833212954574095377177417088910489882657757445632571046042965461303932163304911989511657226813927233462574648380448519208888560853602801742939001940513525479226531523947754315500189918264602543976321122237345142307199377816666881367309663933255472322809160939138522624935411983619131926223559736000778482401839171213370160694191121491343529283886257465530957668895024815589849287814809698603705536026434021047184884620581874962648084434251782119057284096536965708159030853032479506790983543799713381108262506972030752064679543532635618635624143219844022293175610566943833805655040772630163155171921690512085858584732267040923801822608309254193479483814730711437037025502770611475478683496100297379444129187568006051596401189606596332637015193671583811709354350032798362051741912559409042501836202151644712707873057578253797974517480269656109829923230310722113179674765421613713069953521206668835672612454310936259648825603361455158983821986641709855000710847306877532905825528471046557508201892305662445862483355235270384501970689559140181582086661099546470016140428750070656989479629228559398956176982054077592154060113665359214982781073572855146881402687094373399493319068671666009448217984087243454842698639914937937345425574082197393571257600780463451557278931077474003927282909020730498301461519898216333467152643446026696980602345789514546156484381105728957812934561788367518070113787206808967402665095783293364114425132844207805082568178134857311808885336646156070252040632614016416622236053074351029043934078405040896133565844374385958512085285738047514386377668569536755205588962296074433514481341160258060049281042382981068408994066957666805019665955817295603425210031166464383743471158569740651257546793571922728534917573110059040070971847364472909370372419432016553305189764137113811990683306857359487378963971356389939333110319176452888676403475776230553836998384243074910332648908145071438361234137146436804343217317070133988498352594962313846981325126791211724605586876245014792716158157392755272119160429039962871967355919713060100062623840498569895372833142456886255133643181053112680274995541361909730737734808467813873192811147664907595163730287940666693781088288894828452205290633887112931438114757991017744374912635715916737506104829134825918622329948463835859957954181599932998211864173257917176810573265199018243137354269146139830738840610649693327628956619289833499800375409006522771229306480582199987751776947710630504559877809127136241971990192752715651336640105260923630468971712637227375268630969854809077384814263949314273622028470208859939711503511349237809252269306495834933608028120645339581740454619002065089305684174164990050560953114350882780719756123704978339011557574877503674794799502981617594805592020334627878704159917408905331253325641309427415211199555426225408832317639386267089917862128800270887776720429747426122963639565368438788368610823223665298795905773618451097769060886876720985309409442073784687618086990356053245739076645880139964728692131565404795308978845237955154793191819338037794604690538682546654294507618701016535846202463734176501235749146785796684125756688913957255233264347794592882340904082478732509290631311233652002292568971259368258265990065999297590054397493460513604758772356725916267147089691333302817321347990347282364326822864884153641812150797957223354184743824373334303484411803238173545747807760638366559645797734622798566502662546317881885212388116946634409275101087514791824991197008846770812510312862980124167156048499687796338710473542146428394205921957975664281616380329183061585826619582757532521907303900043024714585231274929389078828813234062538666068389793282758731721234107955049344745418496157211868727298880674897776248070489308252170143732025357376589178929794348662544228418225905694466541578899565216581528575460710860586715914796304175900975040773228302585241506893133973082094593921107182140790623558754832407145939109214704086515068956508397433677208690441768745218191957914097784183591016858882238125555447527457007346564137808392572367011642866836828045295762273067984098039226929635717919462981210349327943781666015434501971868368672155890362334460353999363631685954447299951076611971719114842493245508086058482763282292799126380350537293840786353960631913882391551595586408765964946802331826142983156114512535145573211177799172490119206111772968115215969690785453211680730947748171290816781915351437626759797925386472718004538772032325910704366388870561170197483742172434969189649418160015342601845146015642393589299974126309951967909707081538817220497769564551008909027031045063841561369085090382653758028421332363447569636829928124858325568080021257323334973519778908095489589482086745584789204619865876079578183679327425015018580046780836084381908791779721219741578899574843899865141964719529676206746556875535278043793855584790711568044515666225796189205740984815709104859117093043797834704257181083426059363686929348471678227968779940202797125504686888493249067994865383633078621160910953261063021712758890474396031782568390570973689826462292049642653775976289026799857182033342189051176193007414634920735978392824777485888386870287100850972110563002515498503225002577469947853873770527415469403842877591878325191888367065085085050557546830127423432971578022388256263403824942389050267268660543003978531066783780491605902185602802566455951006003599276972955087415652477865196534363160501193761258413594292014673036180830037770422205968651719901862769480516223877152010007159855812940266619603292190607938744962227991415233910527000176582722651660496353322819419488750697722744730941351091799256670165221416153108505629998958425578408474890791618769777514776425381401151904882881400857027607253427548578040762110623233304028392109522547706005669946342072295358166313888838603551892700614454352412830311100894980754838889369129252201814185554138284816916452759445914693626761096913456222226624756060929084557084677973836695082584140249148099623141302079869205230289589549163377854399740643952155499581406313675292900135564604761047749746049969335042121694576785620335283296857558189630163303145238044632914763711875510766228731347360338494429138882372520553346429736342615391374787467216039700097974824474640162346643963168002585961129661248701709847084610145699451764616784445954286724303047086619285736171986857327058448153781927141272508684491154026859511109447543736602604972188169242997017424820207317741871129554480265862523111734687479188082222364504243964601080199258728055937195324763098545122968165048557680556941534384293661976550433704471270091528065773526583599708358298407412176076936254893355739752417978510510547825806314753478961699413094138119459122174876195434861428727868811795612482858547647031332925219357290190572327150810156290665212996303209171412768593284442461384706332499020082303183653008409211662204473250936687502814239866577888005059614124456196534566739204694667752963535950042897383687500774515716841749895649072958999258936855170552710859947281534923176339542042007766622602829300262987191058222129138061478957429109659980800875264010494819093686612736465070001680764216559092798790558470079483488197979374865293478140288701923258884106600095557940928361046376798562441634316140612483710092894383362218325658755160413212515752353816017265824079358944128541515710323831810678315503429275889928634549774619148951075543172861711763298532648469374353343896549362397992125875192044063305330268003191007904506702524336804612499017583088589679983351264886640899066882560442653920943577286227313542470545300311121963964151152969959862423521244203822542701118727509917673822371456596988363250003946657738094385508835167456662914259583509827572110247453684511219370273488967841691323840941972108037761481549468124844852465661471932878361615535261085910815724728522311028708885318478563876735547233699665652976322716385900371201619597027696801453979595353460674065967260331607797452452754835183995003335145434584673670598399503513215762482528393498239592105113571608556623562220547721190943610799491059820556718008479489758322761280607240553903620357188671928141736928586600512042102352603449160167560477970623043651049710811110970580858953917800426771097382726574848369234291165399648201774203662415128257644898894447175222798925260643264956994944883375047708694246243577270616310559953705591588680950810211742096417132901998251566024074104472707498370510833783699777243768648259187298224967269857633341276644728847158702577942215669771164448068730286778517350461529918871972301223590133846492437761207671189570476732341303397381528704509201763602266298272863251557808595823537721586464380469719946158261598109935377632958117876514569425040516253250379829638727212693456344154130402735004789699467839753517004904827846486075116670829601356483918805721887567886415228880391482251588626945395880189757902032051255054601010285770443315292791474868244800559657290988895787038172060148294403742179396980185576246308752301500689856851527505473534980758321466373542027070942289696868346567273296276997973807437537285783090232829442282219718270852369962321688646677943508691721979207146810110264790115881764982288153281166903803599399903996101979430032113476803364324518316965986782462072353760715798747028753766088054948977895792403325783178407117711795780891822098794346454571417708177322650753405158959085896862825384303460827893057573547719779270812187751243347903595651097933147095173896272023535955608055682478065046706682239841288150308640314845002024935396396853247977627791501971101639711998611622122371560674425936303644213991288569497731315735957660585164903688015235713052645676311226221746847231865218695015172784962819590265441382752296141742035512125316995009676123232898924194312421102273406834126899538939600020131114054492661161257760038836114445799893202376860959329846498733707999027593627660969033675308432562251780574480888199561686425685608943416341205959629385573857488453359837314013066842017720984510292288732922239017241876838571363202557381572407013587492279520767831147971277188356491661173335470922700371342364839465788961152316530828779074990603401471712555459284372054357522434323150830576611449609414165375750884305115330333451818874800682433127971487307856391193897000410637156990234060209979687502745680353942054770031053455907173981274141717017220530953288745886441579220518634843052192950248388133179357523094434413438024379874723779082238219810024849114416946641530218224529854322577858866649483387454579591837024895549092174588095133181148077272373202124218481804083860103928708491913036786582084178528195561706318964689605205420734200244636758363209505676947073382103045933340832102479273360998869161091427656720621310519773249044385213273591254140437296913684710369584081938922129054456994637327936121705093641003465395653043197039478379424775169566386298559735404724096211046516060000039264740413366659170096328567133908335742862385132019185491395569245795048958885821032453568012256227082680906838561360226706926359824472227946091694175675883110998253799889627572955271701636083930577857201209537284520717194956369603168829409502586007154620351958060167875771483431050475933911267935612060969886420049926508945041227719389769520001649478964413207920075500771360024928109832503608903476468580568489213147564879814256417236738284630444052900031163103054252220585442489670679887362511750974787384662489500055154082584108500169329582463876077462953929461679203677242190043136734041922245107369284754157223841636002150575105755557278001599180931831233430751882856228107125050622213589005061192339295087696260772355701946127685756918782596026293327663008747490462723516486219393100476806212160395598529633251424970456626518342528986732970175253787945824408354466548342207584022426956700108254554114260807441226413832706428397211348588103369795767754641329192502455664390515603384775782896029786488875032803608763515762336764849069700359783477517657239746620140988552303043382993078328171634000348825061516287031692698090654348903379849653097181783817617172599379638461595092491269942256201191286089465242138531597128782719320372352141839344776530907592985221268836925045516956681725516352544642569190839108150609323852580735645020731189371849026781972287256444562313218908654920933287058494944453387922487045719903810284773724117787738985368694043084782003047977472509178775846007661592557581708168614343257456798672335836287754212554833160925882909151041971389565774178670938419587220805980962781828782643484061665490903302383843853420599444048539709730810327109450536802263750323176194908825685660490649503744945220608805411989566709840549217875431768900697883127054095910325228137175011953927399833395409588183129622676593405632216200086955682847238762466239711436022187694563467628180335229146524239529591403742089577803310358737999517406991604326690149394410057444255575083957337112336182209542378530526360257510082324086934043743878337965610315587485243009868132048148639931950200231390488411919460171744999398317036656598653446835651558860015858126657919335976435871018758315521252886850883744738554935047894120681554987253882179919195672838295384141924444731332232376337602539113279080143771124185593129269645352609196055118234123263488201997190373334501259467334029797998375402877043887687705894738530456041574401843362407072972949982857462698991472413562993243565624950491083971770424469985574795663614616110269468756918545660592303984263072448780114670822432612689900005206663098660254203981655827305677805150783729776089375039975816488407317001316240212312449517651538824717842369006888758134769051305659699938201230378438434198085638110678106734413356928224589735477648736800680773067757440242338443241247205397601302992840171112824338125816514937280761820856561124333798247491030957440011506942149185277980131418913024548520469686663988301840440703824248534323282572924501537797107078494198475508215666061300227555726208425681548909295659819872878015450085276682358392072481264615039711110467867064219871429467011747110538072391926451883049118065654161421350444192167580388007212536202478834650081332474951115290270949785470578135324782600401552143608684484255136333399937120802336306291104703454198067032707545139820745099476077138827026382214096561642735696641839404747416381497245419677071285909680448330243479743165940852902081983820142788487904166177918410675001185779886212645303653826995302776917644350987224290831268935244083183597600163417027978697774442078878062981975107268943069160043219223476458423144324964280522467520654763087749553073036422423236406632925915701088874737340118034609404982935239047849348732547061347529108883489812027591031971712923975490961780451626758990913655811531434480901254086951443894058293026431213333029062643778933649211430263608391049124771442537544062014178287337786051701355106636740442547916223029841599379412198102130128676091626752346218768163759211879875549827030228492454663130057625702210480264082170945620342569950017641636806844693698391362042930493142125085198011766809538086034507367402819130934563924667755877773122287969066293472184510460283673672881913608405996502632707279219805470411930148644244686956381734677940019873452543565922780963664790003191524627976474257728348629158474549519506288215466406248347113491354328412445426391293730754043867779386279125744748758321414353766043957346849139339026961754030718861753489110927854918772445624802373855130325987949069379807612369436488176289207673650466866089119114059279476323969595624899610477230011245354322496325821313533225599818263318162831805013362240785267410655581971823247335561634443204050590755358623830458188809204551112562087794491368702997952440365751276780030522143995783846909220974135837738196373398024618461446947564238204946128923250504762553761161689168123669687868621422356613769887341859191719054089569043556441120467490852214598234759151505978594627185511299693294854474194934793110934486217752109086221572683759844384819225059500797759214150478466957475929839813203729318915147507932097882517703254160569697741516999003405383281257746865181423729053655545363073841445015347949903525825586253884270851056656063683929889243476541333093329670937979387016785208091137373383582165589944820937867262008401495045980028331825943837144155137646643417605200873371212396002919011521941379290262848718914006501546388024622233379813407246541969188949169375424238842036512836943174413503154865374762095034361363044900336597710292578795580511756466191439003112742297307928875566392470994955676168749935395672106934193768270537926404352831371526475536277319475253940451220268613183811284105176555304495059391324244705760422380871984977419170256421675349415890314615150603866871551408534417366782059073536903457891501936066699258844548829861492359312224768202795282559315034199155214233301202576128782538110498711599379643058968466086137379317838625403654162032406994706653382288992093276644927946427438081479436917450974283621030684590075700811909526978655968239862118354235601179422505062452294383522340844762421592108684808949349688529538996075370222497920791247455528459023435270825466929034055347656818016012184407374797250662875567385453938008565888792045819005758867843767152783473822983740056477323132396525711550257917498196007981102608015382517075563812953947747805460240558278765452352720418373179724153533603345174852618888965795083418605605921571589392069235776449908718281661389899640029843232447375726814489591314667105880479447641958949515257851256825431450951585234702867154395208195436468377393258142884637756674705337425348109874081831296386878828079770092917225898019227584567967299069527170755600766498755989804454437027242198537024331174146318682044213026702668846112683674833288326984465136540161299365850928912945524290055662227318438189255787652774989818287762221925988995435187864730809247928814716045545205678940534379815481220777508260067970265713345518898950134952232057396011640164084895979302727248848896235737265060435011656847573551063781220772502373112829229338531007843228795226829332576971199059980529473776481759524733343760566567301119956860027285843603435780825147395522782894728391394292547010474512986386459946182384849591728117197774376256375527406410031948825751306027381331999731227960049993123207002077352768532583270201152718317477109921728032023531408502383101456556079187080186374011076493034547577662596196442173654515623680552316451677512588415477975141371283344005289377264006678816697003624719308760912863351846055501172918294710634054093841014923300332138584876795353433084029081938279395518212332047728799163693520361341486417361777442500225232613668128144534393214400338147231171699117430235819682855083507111438567199782444329302460830923433029711260227332926222094404067148101126202009493121814549613890962184114606980448839431509327374728792079168357922366381049302976379766533335072663217305479044050040660321758843453575658915387361938222506414672104443571929980635894713256314305791210871809041694391187382293421211538052642207006926642768129376535542967673999647445131079018823488494119329222397173023960720787129002056157250184896563138497362468428271928157203914361074382233741937715975699778686888162029357754495100466415511471302710992190679134773967905744777136386837694640346233756977940992211052362553992069356161930814274857003677019743506732007128975325141649322037455041658979039768909443998569759855452843920728849319283448047967356095622207925019748054590647777803389604570146377648543118880065195553402588352501510098708772744836133547672743679924550663938779243172670222536572219780107608622781480810680824346751272191253734752965252791123618558928020174916361239127384984578233107022080203331557602304119719505512977513419592826897306037013341942665761473352251908814027094059356238379760380039734804360324426787916071411413200418285727644826593627316048352454198200750777415702546034537786467622560339311123822377110519369112465863468766875654633803002711960124325648156689635087364332804742035096256334704489620010955719240267742976534301451633229007249111940436969300417086205789816777226014836464845563588795889931860827478940407872167447638349171683200845419940060032552893611089929796712867562996447694770935341761677932867269176182760983842954770528976765766208295405757360631290432038911777449189502721078513917939035305823551438972735070996041641398409046664944291858271338370692424036852736422663099175857427686810940826939992535029329778227218978875670232626704873787895596004300554188130067888410784823026134626654019992816651960988068404989140044562724016990714348025508441976812421024947357483657144403502044667104853382126718297706622672020511080293018779988265689848742004078635630573760168008317178633866084813027952878767708689100210707761353924244942118914509811611094941506047314681610543218816032158880561496688973660375178090755752318095368280156876760960886133136266847149105651677747034175169666215550781781360725560514062655319654536937799797528831530295205927415017397628182118947630289003879675944796297221790460644811713419070915679693231533930809623944531582775325694118218379993327413414163904762603099033548750949217382679650959224578937843298748396212937926057449471833714172994864187646446251802452924996658624339965824190704313156868214979654791144432733360870346875033313184976245669436177524886619539835875075892396545015198831016999016653115858621458569859698082890523893135760376523359475729103128591798689748120584948084164005166039588247616081885896395073998102196056280447747419482401542435990415474556274203679131262188780768393329785280185563905902020871772167230367709121532449461106635354093596060580485472087954958273276084437538513021231578969127391059891283740662233526978229035023914123719945785624058041799254496186767429990083420273975381529432319979852050488109930221372137911403665179886762826265855515630717349615748166859907717521429336141957901075728249458530516482452795801021143418409251471609552982740662407164920244278456685578360483371146362294216559808229037432767618264762770510563176516775713361278606232532488122989286351422950688084211926494053201530064485907344935612345283455768210540775437880124631939960238711978423504338741133732000869480106175870442443055833237090184543341291469552614705517693294144410853745667931737732259028593582918549524752735867939872301633423600694442613443938259587088573640184349510357202707496379332520459630584289402583787351426371230284692902792423986007011209291589920367817971258439252830317742689059075609707249512983837158512382423535011067895670373396579069506331844170800441915537075147961302119123798628596962016708955444493457352780634655952330652414920653399812481551971276224379120863673342714712766333654441141660636897397025298243361718473740718984602922056491449890554566234913019278964637807348649653550826266473212634962970410842666783035238903506682869904551391776751246863261073796788780262197464434706937630835822952920844757870340630529814818844460568980019821922326279003500901134469223733273033546874605364941232799435402151777212651825409194335413811051640838992185936602421252519102073758305553376341222715598042928944116759307612150908874430002018685346653735762623295872740120544823379791491225045943048319945251939109221997922296441501729809952248923313657969572555443512645130139929026770693643416507733403317313613702480970131608075625262303781446559234120982406699917602045741957926548550488766664320938512387258840643631658485480316400336290552380341131070901157993383952708866245578468779125789842536975518542080026437860489458120927863723690656818704542872646379397281294689506342536056233532386668935707889560962795836406442071144700303946237924299754065070430509629122341985682387121650845513337819761990858102861159703767122230890369616893993082473738249382927099082660106782236576738620787387456308411897125134499381080142996253681282237959085327286306481920186031199913175065898682654070514109140780580073283259922663563462165101297736131445150462841646574393164066384861208392064778036386497637904966468576377862701599403818243607110385171358588465184807755896620107048622730083498115640866724478771808957685528813529814533551425383333261237809601690110167820792846626902866291707799127770381480267713788518307963239953467905674728112518107217453130280411710626830216452717445324930265447651077667304141394281838463635185056804162305309596029641701465521519177021009048768856512768309234655944877670550885880618758341905769640296246449154717527267503009010297516325623739653667146300403708785476273633477016080647095863889510745404163815484888819938752565760785795849003576213176855425681438932419044257895008489464614566573280475152746793002723942002171851313882280622073480704446958338362043654663093969477898357216525924850881929152267965810815107202318961000254295653930455026798127578438013472182145908767928310712569618015546425285741047254887091078005065842570649401510335660432283745300326263256494307250282743662951862094940671821998835893113114668184259692035973509245235761771072660807938500160446171626717466539095574954151662027495374041301930677755141042204454015761245297457598496862041625130721350398051103566915222915842122918568927028660278984168814135198650860585585877181453756316740872885880001085131451002587638210753551186955819729457095588341100578859908741287688481783178529174421433854944888321591544320529268773472280735050784702035691044480898762954890391753631152756183684927312171668756141091914610027303643613739703574909500977024280593891235829207253504893840357527979289803630724514550654808787932217608073704157470489065632538276653707953206395179712313762866712485086276137049634612854513575015320259403992609271015654085414614306062390973115685282173422114507106794905931889516538928349515941083729174038856775157058208911113961076004643420946443480804733568948329440944224037286816391896052665600314414826864813705973572227330613244514156389077888744446833488236008456164991231960370296953635240159979891162055111630860047250725763942745514557807110958016199092270801055038387650715440693891826745912192050051198534516773190531586077316998271444938366390828982161314479798455216722761800943535129191769720617585899876058503475408439381741269778468361564616410328998714261906536094789998584314516124798156163036709513923127392802063259975694301086872266044257427887110469826826389345528413958890737307243965051443823468454899791194444805060313021301709844520464845950154351788769148528625836794191893751135808462155242197408024356464622454531615811447390849234035568161656812553091217709736338550140734520413813792228342121973969695368990297127540365887915182552242190396150196035713687100059098829609969411002841647766783305775179640134384679183844206220928137765441214679806631621437855599057089872417678006260190911714791274217799194769010769199142463966913364786943540679638037452430157145553715754517078095599389341956065463407490739830329831896338098586237746173673070909481723575244837061007734661191884289180763502033500835857229060183645803466297928278232891377544562477789975720230431158541014826092189332198954480749546603616123501987054425527188224719384358578788327781767441234574145396654985400203998796432468797505399272754497202612784798972711098535976641648117510926909160124370145572376184695469125263538812990125701112486942354693784448283972404649107384443823181346500644162419491041842998446766803265798455444767396003556580724275542987521873702263711577573156996553993905923954134480525050464113172844999454004570856170287088936059299177544105559766830227262182961515824386043510188750006783750226857321711555761176670511402966433623635548364314292328228153388888374102674452056482081840020584846782180823014819133137065636500476545453675395516330588730226323186670263274701651320439435242199150128585760365839712010213659007079992177277518788471437459114012982542978357130457650426329481460859983386893627847333475409421932790321629717394240736577682937755111074403048462078787103252269905860270375922351581491745469944177311879549888152201408031350489486968922017684236717117657710630055281866621183005240913315282883274432287376595546887182429254305955419187785365883983775904541942735880772157925208231690087179241425846650050037473925060202001891219168882637098217531015690748465231740330949676059817349880826968156196768110102023352643098292288291129867206114612120212619196788054475228756426949017410303136372940971586434024629761325850546610628007397634140422801890547279887821921526023576683092373961780992924573601750758625248529811418181714001472205551836621438197299938120556055831209866023923211937547698586395660807138059444789392278874895151824621305083321801527834950556428035066786051732834383117984548762757574077350446494518638137579666021735833786268556728949146461692423189178635797287983387398725191426263729001986594155632655180532748585878698347998651103196103125562604651011287442408779018617881598832270012507000790657029694022698890147898283719113547072434275770935525558637861252197054090730728621621944947306348057610069884144113114465673864005274394149957662854418358585512361678150001185117074065425930040652530209772632581278719642768012137105807838635049837706684566888541086275319007013032819447919505182961379465877043012763910502339247647121417606791048478243924219569361425877816306160065942192646482656435998271557656667611404264982850256395140057311117664685088867600445329923201275347415409754823308031704942098982248194755318612777572766580046786466010174280144921377658469046396945422771590192910924986929083595559803872898007145006803797336592741621946325223244392217333207067252583015798283281005789008259445739061028659027873991556345811061458032993003346257205334467763308497362129464567397684111100346028065299751330107493871763308769505962709147533160494654478100859197316575230452962462992381269276210232715728021847984975849628018355628827235931928845937953999541024199941743257441478476879468021846042650911902782927851057785255350114856241739864968535505986000240983464256508207837971118421899689067929019791586860644814239734844209223655648149853340938964628857263027453515010776753187973707216920067711653376382918051272002137775128408214129446631638688921952169988159550447607684524347183912207061671247574614266783241129329378146736756642513220564868770937163999870062314729438565951137457139739109783129257740459824444189531154181766510592121355754015305516721243410201100504777096818116690739369349334620114240362177436420095895935552101770149176719376448189126242788830777090603942860314806162731906772929737720833436703726018550419660660813057042567634945977700987363462729895418838295000852285710162576948222146170897384907320317173060938727235927346984614781946173725298707378988974890109637684551713738094514900080089488942346426739111030650673044047947545546668832879886628233969316855216605643319953614689729855642171199884930235931478461093855841710677709049686267101440783881301165713113825923720479241051576353870420967229262953256047728005613299178931826147571236345232522593444030775495734595506557863895325186223192392502991980905886674482954149805477022998023919119738285170785304237157209314490799932649136193649352204276176497570111511178010332400009343270561589105947588073989333580401188270135813335426954593849914003399098916577222939699281594696801501710327275390410361981073933819894677396561114669489976105464275981955338703776593685025012065662612376532411950575427644804847214105136023119448192424332362435305391965485222235048311909788272663788823496463681360971211112042566540699197302372382871433474013431058686277507096673249585295049951271149201524767777011554815453096234130119250459872044242683845610092393119989983729734036929090812054268034511505434862299912317823677445247512055147899284364642656510973011409307268473406110735056814407513758233077716004363949566434974879001272885749559367999020549766041082119375910719459781423025574257877063615456259982699359339414456331826730198329287069085870358422243476467369195758990714972138351285700596091028930375297682269873422857889974246533260126862764620664846522974180169218690118764321629384044839825764868483401108199610438681104304470815689749619158085397245666591052060721971555868099136187971867753375320666489401310739936466170178043331404195678850621768754137501878400033672024961554829220368449014976433778234616429724432219757371115797818760190356300883916824742435327967832166870428691565829167170048963523865619989436084728329554839577179003057284694449185595445505371624664345452543729103032008746159228611679257227366241606368707500493350421995581556210048205429668910616191687290240036446795122759899376753468354003079707958120756174110505378636891954919617612293911123000376383866030733334359109508486180423629466478529340075939900925694966401620022972402481958048334846583867071276892465346901882966249561294003129853021922644852922759352092404931936787994416318140705970465268583943698737329755084685874360209644429024006462935292173192726509749765831809102338159681276730128936072837465008864531203926155158208168168721993327523057959534190330783018017643788705364142440253263645141228323258999797978963204881682093112296706739659245501617086964232661601177705800808129605210027417630272817014109988206997230804180245438483750603922687377168310922616051761136071956462125394430976702589278579859060081947020135360177701306044265680040438680158671392946502306936390643559717533205599252986260124041113589746595994194508917624330895865235896770907089001650114250582020818822837091170679064869130446669279223000219271962594948435387024963669306890272697989625340485322664650054661577690546694785156850540517229217785866138427670160423836974931416041902724879599176177491348635375977410414433612783284799175611445948905005875084420793073942816742247043347028135052303649640712387394616146661345426444738975532711661777048683835375661569487474757294274135782340720119999567127834228997765532122938649805392259900914480366379548288350122066328741523072961755373526351458521219454447822429804493278984394875652689844367855073348570183750073345120679781858046582509007288556782371947649609123925946726988850596514001155201207505401443401812535598848931670112840577882782550633627798180941534440769621866080788344252397206933774408346645584190829891544821335292399788290579656348905230763672488880686191986817472637616794487632494393808466456698486345147569762323759082423902942410204189747642825576863138331037127353890649714431184127751767255163408690622153641764181165796720505277593489516711737052992318273015045386210689897361587396351102294268579923804041588373204882456598685467042400749014571424635917426565221214124112687774308540132232668017752200141938667125142490978161572929750022874621443978711755238860974358675088786840755550746463276686561696004134408589873619867267580737843844350873926458616561262458731076690497958912110450575892719740619080509908071650063206142384586930184294176029660090095982213891000130055506655183428392171317361790104283523410768756242695090005355966307087784706077113509162493754304339980135399251665804710822770056153703663520524434500146132158739465563194460256567845209495122816645368395869026306251149337561389447327751676637191644327109567702428095761822382304694008168941653903525826288488523348542504245951582101749327017193134748879757749090540707611438586417946173570108982085201100677949744439327386112697144508372114043962041169225868481382913561581021750587767217414409225889253091050667083672905840612630693397044213567511173786668635476013503435606628526484240195077246015320558356210278783222449387459618777734894198607422772163213470033783482345213838745342173445952726780372236118668125401592960574226588407269359543796227324111115642461213214559426853322750208828700218424044599024056405656811051307958118827434761232134909983261157506859146781828912361095613887967494308898869159318554121551278927060409148757296565922162303508964842227681372480113989695761678587717499299691911936385362060091384973267338697794726829076225798473400447986651819867417845328938849325075698499701073915715658162450758432094127574915098412751816750231850645100920516743233252690364221154903937018067117616797869062093257490211952848627150004100632970813095378984349732206063547465642373045367742902437801489317719292089217608629985681683358731173409813157047685926879102981660656713530892359304491398961050218800287642660882635367954302637529271130135622153977785658469564191837829063429337893306610303175739934424684347552055413646207825712281471783107176994063941703036842959901984780512483229901637856609495850409969141445323632124378639254198599048706602125325018533721991349426889323872470319737597787937041514010054088351913940384969247903760791130687363327834453255132303334913799513652395943268120392760934470480085467068834662590351775190444684125667459353649432260089661462704045994759080034251170894587061265993878030865449535562467587318075253447612659970723914329330509338163594884565127782447888320017176637015800182471055480253564138454105162589126138125662306277751307762348191165496807724227929398480772481092700383897636443879571909071661272201995699901052127744229112693055180654574669122332067863819595471778885668830106439168692614839556914153456782934434102053209140295139465275887090626351576155542596959469172701169312862305206233950946027429612202842903704163401365837952425164476914383337599418100323212732866230070017107690497034432394423044208963758909063354724629425432837499122211443573691802228287382660680518515877783297444336030041502860337091317314932572989823535025112820031267182530286352326918921626972623189870097756737524067723343756431245512144584552090253219586983104252954251479736677874344142939771343295868749074932396159088748594099827169142792398629173842460771004364857391618778372241684724492409465850116959094403877066647671674505743067016227340809320763095156116433183405800783927939689592165247664990679594619682497219055942780983566286031139835082063261955043496482968484530046994696604794032828798321751311740548018133876237504321728837509090934607164103670580837861479524257300073580310630575551198801046783343402100325017114645919219863989609120580393789042305724491251212385394621754658252684510452091447811409080915014993476333151257626183977410441405896066043106260474621714996794090363146035046840676934272294145076564404496952733847664719250857772473603628120842730281259984107721191033614446068810408139629394283676383179262392352929020461120321644687805754068694361599766027092342208938298871085595235977890809276924902638830987750726189908735917345617326481400700450298006568486320245857794650960073867170811053971354135194591436904966655277456671759966979204743183716751633587029927756315679681859930105329483137523285606015030296323621954898565475621713508453715386407506809096263421778115761589391502896506273563059858432661305774248666332775985399681313091341872641669028063884576525893506356270928924267919220186094749029028438783473637712236891675912639696262420337997841276118593886499072131592872565909270147968554796416213286091167599809182075726336343684773370852637469711159444882495367974555155448629584649350907556729340904084485276651238917742333664206797393618718987884022271518912836048769031776530199461442013096934082063838471176745325389704743598300161556076962470831681572455771271980570253254255892635097347695190137368875088205651375550735731166200738942280670988268939460179547853284595414811929810374462983918212890263984680371427320221340083911068921315872932471458743586060446453684826910217810664450615059187771849288962776829496720620391984987622443109936990722096885094544282867670302325882059521005756964954983609577827668415555222081698417205386763147531118976832541215437229741466306883492032807456084109917131508324486889931244608909777641080159966689570060422083798740623665297436716586188846202157776679051446252187535590069171745761193398700480226230416782131516372408253372716481267767731653078313321764259743882753153033864257443880152497950117536256927508568399129197281114062056837906122063903165053215325452237033785376490155209357069603712923759340980548665009446546315117487493339534357499255633586640806357981618734809216188906943580019712993326881615071179150448212557006821842280530135854177524326595141968586967718629163830722559020650467780847672995489557318858494222349726668686457522803015434748346247802959523223717224087649970423681349984539501238456874570049155370050120490181947040920760803868351702658449025361574716353214611189875180668750003051044877811638058630194792757480842544101059374265868500711947300340673602131079968463144099337476335709132973589558300156168165862948705703254668170091305226232031781084379409479061759446699390502964168412172118744529274215636545927136324762340277751901008452565436461589571099547759375765648208343919938452644122419680097347971121409316932722885456497829675307363322528971287753841696649574657438081071175591455318513212450217081239717333578786953399788923047632579614432910265357804986829278402760169663241565076324162992901918641568186844336224337442967129664500987863524372803580363097145773744645808643547391321511077977109508442948817331908960329272857313307653085499801559125644841634132544136087627220977174286924480061508148237184369453997439864491077339977385007216224655891769134198013188459084245029438095434200671162772952236569170157962758353579920874811298068698131627083780400944960009147772873418023784811641462002393606263712936438306216301605063376640791068666228080563295637240055023588672870651641138924829590475056168388509115245901016897155617207486657570355271172862321508743387784531333072155460860574682780425136086300975163254671492514907033991115831278161826872637507656901590451987850237038336802474021780373741927825962006847214103797330029023876175005155307109659277187020249502642909412636679508700635643035216082144977801663778506009683364281586571931227818995384103245405138282659699975969957918604343340207877004594943316442927990658005694619026819347905154358321408156920576024872465464649984145886807348817514946392833528265175184566556500999633043952516203903184038246393339410875617148244130616780054964679783041676598074348778159611294645580266023677671920331808378973482524961511511804714658829873017208083856256196036429799599505217808677186719794204425194637617891559783101425543194607785635206487136487655194389021541517089717792052052372916844635452576044404237904007235768730566691857602010385979538931619263686018687341741628479503734355006049458771259009115683353551967427001419092931813146842941224621451181609256537028864042236419690355297273527003665420755769170703490792088616516908436845615395384501092961145974418352666572143161716616261022129815942101977591043935749378493496792464369591077982105427680893456867023294690171687095032346863781552667972530205343449384463342501271074204504953539694428771373362532134743128220189498866117784926803012513949312544472012122013862267651492131770189721110642251123033258973167077436189980492231323716722258130769079506387626821893104905124273580161290844659218491474823664074264290192332240673702887274684000096690311703126453566874486210163395114933768265765041468677556155780694320741313875718932439962107261526431137676210150623172386766061750267116619433507057766621426992473129825965478796826558337434144439741617582607082652093040693304008344825888250586325817011647030162576911307791437259611869370534183158286694415129912688633142476513751302081515115017183135137407765311180744340809201584213637357065860146808758506381807524417598301550436913477755631840677381376143163895992279172933884542113001908838855856526941121148097780560658214286275889706554816401970338565481142347922253535406310398660220328023480950005585682189855101116388968741761113379747136240026595959553004567301285070344998662845130309457624211089110851489344110895174359307264916548086184953753323496049495987972851973759541981455020262644472532819701153607686539122556517506756306168489248865394686048192366659932584851773577271230050218068492621879629408135296384631341635169301769553171510932898581469875742745912489137421105477995611119979000169131286570698992274126201960191897653491981118916777962850364751546605782695286298865288161280834268773550993432151272474019220197298547541873625473730107695994568317940127975500798534380304376062694957803542764811484280661574950998457638725746849223206886972856107253355357501516728125799936856732390065702359995030416045430464219686895376887380648095983048362569300552583610195886645061456759503720004369182064433911914087265128905028222645662999864502339815511753253541954531367922189786768158043935556470067805918245543090468653931709970198417494377038710156421330642665033409249184610833081277594777062238195217279938851980829782880706809068930582892017616006319988601505630531947054385899407817982320034913714338644311557248997488865430553989274768426189951550221054264412139652159740214630626025507044251903511096654725978596958809031121587606995886580739035418504889967384461230995065959409466195833483729253733213737181097726840732569315268389644147030578528507797435855505297162506290772513032611529566393738039007980761130414878792822964891123032172303122868150063460947068174810890473373039692189861467327434650125040029770899122258424956988835565419721118476421055848962855679864177839683923941288062772213158432544654811724940651967684132442976079071454981063826724781589498400316351938663150385068898160380232187413405594471511450951355355574149008065206544296530996748596976583260937418956874223276411665765669960926757361176135990649967396277804050349007539634859484304680495805736474635928393987220916915852789633436130259883366881033139571291355727993234777526941203576376887289496940859428987904926332473189295416966333165585715027373381482155909051118517986607120038449894388615260403247828508447399344828819826208134333991310265475088917753058735141496437013527053117120726747037054570591475538280166765203322873184288192554014178907603837154459867458301763544124853856472963967025213187362044712447381752827881414771536361481967103647259012488687640037028839741352508347731018620133267252077206603705893979168638356407514095045951051210283313996938337782138026380316398375482933189465326497626278794323597825842890070012804934943146703286342866936079661251824096603598646390070841452162912970133795297836936551301178222892954256568107829590204934646596879443878210807862827420356275402150290477858069552884602101977012429257568919146724336196920905847105957155653878920116241709308601548357084131415056814402724627051328836606199700206512803944220881812420127812542342993498747726706329848709729343478592391767112811656300420287943738191228645857148240040249712401994112373571219187221586930031116894136658801320647620368618053834191368465071604630744694670178515029686790297806739454829680011200643652806869304496951638615300664250893405378364204402229329195999030551829572806399895430684080887397376281570383762616224470004516015850362277504983011086191304191543134697624872133831628748689418931743133771109579604306455097738976578922925024151664227418804759627474006436666159945869338139603700113711765452259408077278971516770830504052981451101988096969213953572829062713178406800897088414026745607483025583811605957969923828008889960635379294305802286564154163785659113655665363497937625167691401195853490759742522175560162452774520049320651246372390982882450775263532178232368851411149940963645905325955193335290303501054609255090565644091191694951998215403277060282475233812790761579492578056993348000441064430027802244222218006201053611076044985755746567529598198667582644006520161507162415558169649271340547510725405308557258194441665211544453662319896795908277641949593146057194881944860350576128758656358474198264062753521029180123237865249124987312464575870633457571506196370762353861980967846643766614919761504837481362171257085447013722720342324185790794960586603572787365487111987880077975837368753250215724147315635935041466090959494746729776447795118316067525463512165231649565297239282875984297618421803905133156652587665627126963221501274274356832505376393320964426168944534130676392248716974697345217454598142096929919867217468115907636815293118303615634916434686690478954260949447284852300145188342392475560917673604462147651140384040655033110110892996261864974616260104476442618594887216729398257590122790422146010283489704928480930189619611273962893500764648259448600987456393609740443339936581418486864730034542986451032269994452352487490685296333973860871104371978959258716051651255306913268029922530798364453614365959892525229374447683405655660487943687076852224479519574927082138122125877639372048564971301266152353637520096600557597431954072505725741634787483426252338239342693265839309451156663444056909829397903947849664016617425582549741422386654344478616607098206416262625510880472033097506264279488948185173250808143711000225994201279724444662764331287489714448228440550638966116654221629069404971105103108801720136203734745847277700849843356496480493023654606649930565074924699496345335241538341075673584658124987035534783571034210217046424654516057458776533521243434199615960163189358389616788107743205309541690667164117964272497183907333344184326419440694492479644898456066322278584542580962610772081127095788103877489187610842177051905441347476342946065378633515950029962068952541751969409621099388879298573333115621803890441508717131830623902982137474218379023359522964031901833589573181748893472119227512946117559697605004915338751584553410364310583518162124211861416876794522270854466316209164576194285517957409325895445128127304838981315129582594217045373467078135924315364277575695466335621592377037344565309184393165339390970267107858997925557590305830280941608754733487870433210177880732623014416432909657486906613101551686706742849483421285231043406083769785499608300389514713979742449955301840450175415923586231045266863726177313167670094057573004645236457896755751395660254114250906300497045426800091957786988988161611751338598216589377070475922123310145949853631245539266258028349962505776897246583359666427807191399738830266619283611380860117566385159495598870673049383902331432720884332962993815011135835602649642889609536253319075992170269686028150666014963352431635295598626358279916843898744999498322792662946560133063256906374135783181061224516373975642421999705985962580000403520815893175399999475429704249365806835472624931154660570474527521731745921001525927134546623466698947059261221074137749255346172648431972074541989138753907512782943054786216060458928324216795304241302318506176787588682122083216000984478679944359226914415819916671784654787988723304967653623880558483618655389756469111118592356330673051568071249240619527091147875764305942552986690704437902503367914248221550223800887969700920301592798436528066343960325830447540617059806481704177659673146800829018946370378247050046796393160763866699533166401570500968203972281759588611870358376445094970748638852356423534104775362100291936844027299367772453246923383269162730196396276843413027986110203362210467052634003012891302863077836858293847684841570673264139116918934329570184718430590877069959455067866771111520388035067599530306907804635654620461800506741016614591748869512470795852157525127124875291658387598020054286640810384642676499184675380353587191816706454654091868987936595668453808804779884159847822487559106929358074364108515390258298468159102571095382823518389162468657700835256083577929869034322480171163092184989459946013970887272031852286104794259275346550423827103597390487387734078539246246588846493182362580075353676787182848898552538901518484791441550813723841799571347727975600355217329401609181264114635843360083623843568159530460635747863831578483719143014513146032589925338637973921324276155780426672292237323217130487268370176431350926325129257588307744040356918285714836455357003127879068057206809212926750515093115846224230093404298466728868097361781983246225878104034917879299334895447444779825278495755976026018328160566040500443417732898802376595121367854685028752586613678339261943372576719244030251896657189820838880647386404169433280628171261998979786385407024125254625243564793919116189221585662926004433367337401583799073194292647295240312694965246146164526131563450697065461807699185026353414382027156877242525239403150568708476844363593686749914655732884705138041314941802778560736090526539340061271973042993562926921356169295941573028970973618932257320079618071996591003163676738937295871169812452253303756271025190893665228098805183172217484189428668877737827331205894229153050167018058146231088914818517157457371519689168944770933599182810875440883965226331737381983196395333632709384257508054664944285774189792325686250682827277263689294627189018588057523931820693610159446287291820610618383969667395115435308813275203655294619126379758858969700952901272822200932294347285447955092489424700816211759553587879909411913252716038441493762542296646644879147590397220651490011717697605686214650701758122136538809035179037079615314335198547712608006530736256990385931986506254631729889598116313142532167231997356443730902225239942352591766071805196953156637201042984441237904486622027414737778000060770436021952984462813643042454489443195237845072750284175919596439183034341524042438906825107621029348832817658622947461550649802312170369294286315556001105733412350042287757756281378918481925002756369113413090839831305692856190354883432993879132335902453512717982666101323764836812619513318299318035812161657446978480972016032502002760636380764276637164955547175221985335949934846186849552764617488048085086027984964743681050476761413910004591697255618859241255419830889119758128486739641792313664719345020356635992296794437067498219432225046009701118888993810093463493287002295121661353632183142335791947910840193365468677865709093920939277043194233862598512119099041980986984033144466393668012659365818559601726191379669488729709797477327400788137951135450884239189982133921258075074964458271659715969223322237611434991212879398344357331870899955556173362235696141374323247480960451690106166246735382206795931771967618322571731985177847780815848426253989771271832745818311274676795734083495974542374604330344756766398210066827408783214078245514430735956829457082537622092071342878175192572600786089826593983830508842042727802384906205277406918775453708681139211474809754503743668603644819917651230493374285958276390601289046277384686246494008511576768217985929880262094268524091221136759320456683083361786596251034801649306822553782017010319265488040976809863474409308150231155902902798807725170881644089577760638022038895976152545142132779837088451613125491346594916413624440435055667728793798966894525981570531055914936937154590863793066682746810000755429599853877395371646232181280152602975188685876793533261493837756640905025833778950326290492579970965308054331380111062153793541077741954040300032366095156768594189226162749195156619069817425678682412163067399702414692504925519176453313995167710392222689949326109809482660834083675972674928268748289020175625762827790119761813887908128336500038334408328168865015475671551364043428081099662080551147914984515299240839060073609453978105330416591404775571735992110458649476790680912254345473787658389921840221530516182427939754514152825565540642955545740241012671877003150455979164136350665681939878157190141678702955446082281437488946942833268381730938900441633306830465493611643109684265807130489199098677215274160095651398459702087770221789512215339810810695821854857888287732257402063835973775757895676245104152998045305045214544308259950240184147227540908968700568496847731351159674056509376544163826468956066871752053847198988677166573760170083560990804854659569303808366672406777253888640586650194936018107319624011679363287978853071098881913308188339877060775298615111063222057703495541390375181215143778640607230479546218531927312981358618764887207160310679223541585085394215503514099967035178607766538315770190133054415248972038437150757162505416835056850783953233508502666851653403710040175339559743895307446736216150249703267494059982828766072006349262599913416568615119559528898529438587575300759215405278655020263062067101743025616727485023013979956758434916136501513373055411030116029255185639182553123876344293553191725818817401655614695957347863962007150906725266255529403252854937984007211816423786938549769711657323526254877305305127011014464042030496069419984191807633450650894612743696303487564837153067487753610340277394247862909795269561482846078832502376582268160297258524578755018840478111267480535304938107081900795607361713182841817512576829554897729048305807563712093880811588897662980998818421277188570646917749885562335543318134215182622157555701649079401932374964212775635146083827896450898379157620381281245985916093207471086750792981815312426776211548526933224359616805634088801919334117906574843206957021007923690106011050656783238471973945964194926794238601561968851275583380958313629765886056354100272816183642169759849063275932210835197493564260652059178266691380662359205664952295753858485795109460412865138271091973437891473462687048324953368762846768571424470627955557579542498702629372926869610373540788024514494764870488940347384132428697999453484851124487262511894840592941932332751968399437317774021178206589963406477964750434756129484965181855390915036417556934386976683388354404751109200080292067182634473801647691479192852419060465008975673278800080263242531092903747758481454347120919881489572188927968666096150802485586609770262881316094305503507587128210206858532171831805155603945468683216146773883190768331259253233483895187367712611912399558476754062477892325794145499093934728030795684702466514279280739607515530670208810517286542468148081735902060936096115457520662858017768307382022876992607393818194792542099268473142422227230139651545587555169517502650504339283116231195610860099210741945507419385188289434908318411702092339563195443071706041373172001712655176375743013128979506729286033098109406677278854679240474056140882670850105169961440675931756655761528854835322378453262940526335787364737596817454420478828969929463553843543769088120946578223279234861904396644743705396821862135235367318277427516294430582149021047836427118172441052124993247006757541414318304713079922054694631606438890242768443640760681199824905596650103242836630149074123225721401272317385107870980008686996015359574928063976357186855738483383976380330986655956709441313545035760221033088657135128390871009797061783100149474840890641480570254035431888776089980736093775019371062721437612756464437781341582145298942034523001447964317593515485205027562358224774716002911355762241102613595974710072670713003008782501881445030142477651344541942988312631133695002012407952226782253818632451964000088543528762342885330589473477164252745452079056955621707097924067622067885056830163819175387106665187906449030929522664221423886377468441161185388615904259883482913979088531546359765617153428404630223339332360734793299427795452497577361095287088241477846256219965160664794189798292925191650770124579982428217337255647425212958399618129942161433410258627035809654664344213453485474798097156932157461620326119282464765528687624888346827056207608944925938777628325944056469183460953128443365243499789564284659676495304573987426362094801558188886033301164415369811777961051899886536278876651065210946150521317486946355702434162729956422618023718732595861629447417060788310969365143402030608922320006907810223723077747033008436694405492651510854778801697063737583424652952158920283624643578286235983971432502339615378526298138982598684714766029921367203134523787935450604060663352538170473256735150339060436961469307729862154180992411260930882212577493802219186007707554939927718140172002704110008664752495785935158744307464552721211756457502194765672410435000420354007052278953047683312219489650743149624301431886270748940275735325549468830893781475500309021788729100469228596825918577220655837949187992080754791234406962583409096819628624352149739863889899196139498748013358561279198246330328143768735634716499903563616324154414183101875789089186094681712394479579436551313956716575572667288333018250331819831529645387000401917771591391427399606945128754261456054789251288394613537357565448253485865915469258869522011133956179970771610932649177743854780007549265200304575679105791856093685436593561316760814835276617629414636206220250969522432812862575735336847709538067773101733107160119628943478699365198926208035366565735726931307213143167259019862557329254453397685913305104914939125726421652640516776999131293007068322737224088328066688915893479821954233740913849020158637179689608064289459520012001618854973728127683649130326671561848624806002014311384800388984836079402416222368693885477135612436179660979087294149756901272400437980446550873129131191528173001959356231347765123003310675111607643976046795339528304838051121027564677680947132435142207568691930774027052749922525665559373761680195633914297447591913072730661938333648851389792475173887783026467283252137378741803098875605563141500919219568989426079617009152479755155258790901377721913835150111714436380006986547268097964102111083991006271428707664875589866020564457347631381186695126613925364645178750985245287929793346743727603735118876343572190575474963966284986660800886108834404020418144064775438792224513879588214991545103886590449035296782728908510857866303901427140583692124135297459655529043662127461122367833667982466502054480063257026335562902832097854996928293993306142717848045905774100121198640100401520077337209201638294411836956220039936062829750354842687134465827943231811732627427482246841383475354466533580912532091065207822330634066925151386366924302300474577913570363338470191935365141361609537888111962189798338842873078840959842324906312352040001711981727073285730770720327989501526083651094538003097645284550041879066886419814635622650545141430195737608577052388019070323238948577403487790885539032202242253787813668954632217135760025638520279236157904045426710154363491328807842258549544045912748793791021145289999025351092504524975235217884031248819012393223583601525836736422532293261083031043805384379499538940816770877215070482199592123115987980195628263377244954560455600281518108093101513286454187921545767324307145482856951124895744248855999660762044870279005765474345422341178816289114574008093385458150025848987357838701539253528312163763634793791502907064352841309599935848205045838938102109753070047656481275459432387072223231920430907434868773133143470768134134041451382145431334087499729030791563587930904386171342411356600564786318491561202042496626003138846323146893693539346634170121448134537646086882087767587763192701668734010188055532013777223133078498398251285897947426365854593321461018478021548675594973908941595920504905558141754618657745120052224645382311403045247275139546012587222961145247342302021893516839239685776126650690665463862261458486246386316170192338641814095048636557847725498264202659470922583768706650301608809058883064337290481749021445833355771674107824253537660066961788699316755583918455732708849484247579536444179393747617373476067985298300263589956978777303962674073353722847833234738969809582658007800068875621380906603907999167851764159427175702051659235371851126555461503880939949408752007422068453727165654301489919944829796038724322895599833476060118788437141985514608299703097399069214203363515764757042344688183630461802975014498280866887909775477032739364051492071653370622633615914471463411922280780742635216477132304599283612137565450658576405834783330896075536268690830346311419328567683772431617636932451992280914949983557968420374638167877048284553476215863612628306444685021628619455002767540047381552686306503980443919815449657015473200591005178014796346624189050493910183872022315661802322821035079406646743024220690175867611309180515477171328438831212253350504271535606541765240820435857337157460361289424453262004426085712267691450935246318064147988186601859517674606744717286905538977705860789853198808822454080273962855282921943461017200624156417100091968932224910824551633817371917465496735931183803931588970811799596309594241662806908591699910859078675530680342058783448438101163163882849960974232960273311282175587167254871125831501034029465553544998091283559505008129723493449608337564989900188621258511055880571426604959384085906892290560737710612625056715386902855183396442743727891785288394616815115829634255940821303890349764394773965438469674122983994186257591857597489439894117045483325579422972075919501015508683347586257875054051001631738151583841951829830334504900326169898653861633124014324329470706681287766661756164145701391333896884208147765555745887645881498189559794212244001981633771177159171660010167153405413073129990042595387168333937682683594302302926993006901184986926668474523272718554201633466644782271573466918112032983189178141843235157205721310569560998653516506964093055307622580554920612146015274489424376623270915783755433771888080214796088778496678244027516304164582867621365316421475239510625817879340738968949273931857178659045846062973865412684190550376575050737796416187574985148165297040274699950294716080650816188600189663520955109717947598052386211217477207556680797055168435885636675172919914486605281888576476238217543562775842116520975077234416180708759495303045749109471941450033668400898411805708563166092245163091289173409135306615330365204052171809190899634754399361326378056546251350356295051177077462517839812566388886792695113765872314917912801413447288328550715928411200189261433547561769940587135863604908656599351073406964342859672892443831730864490890473406754939044574504824466592395451233058444217402226717423426658714853162447405639716005482142352151402880281476034355202824177721227438865515524655146794113716605860216968210715531442201757262017746134453424947229919261734335531900530467133381949472396677788142348358824175364462533879995686755560422227383165118657601347005774330334376580942696031949095694697472639226192522937048787968657060194865076835832767255749579409584991436229567491626286788454633191705239445214145521904462813266660757995203323035732779691795822619364859218963518691016412995920811081478816237091743759937484138504704188862819467350226568811871057804770157454349520926361271979392627446777437389578168745317541953082373761532982092430830038267852638607685972173950558897051065630818814080307471408957297213513633027748268551273433143447471496625649584185818778096741602756279190688314040936773165080079562115064359925902742232588835218811305646448968407635793733586401954750159677468755967550992956835048786472049222521844887287617971318749781212077230344382867846594275096207886466185943165838810269582337578914421867447359901106443157735138416974530334772697542377623610558866618468082598619489447999505265137933851165295182041922518625969358238605172719918342881582140773808277268773912161180780632473060570464555214866273239355480901254328741549973330856866626688731273709883751590336449095051380400147545282682419584763554157448884313339919536076119079159386896632523881920377066532748733905955485143931104535554984922053408894158497878190651491180386297788464886233368360210151088504639985592737162472606195622957154650130559417167796074129666612760229905770793027420324189300006688430344060341521155955898935822595089674953650991674230164840540003026961892436306936356826595985197960949728536524378794235627173806546971539318932785650765854833091149826849703756461731184093425326884292709051528395742254593578565107910107933861469667409941480237122002021811606628813310087280069008729745079724581232946016530015577247968341002069075253479564194295293890049246543360742569856164002515001903918573931454037177290583306953012282543973854063826344131710623229608105642034157509274840865829860585504539036748879965536285778977269189066205861579306302247563874455127889897658577885601278454438806469606417902068732422315495380094870478281138173096178113937031854368848460557432516485073657607189367372721456343461412413298449707533004338071370365793633672136625202419897248032863198343604029946464266046382894075939152749668925338472921927047398954137133609082656082280341590604113851803739980421711247311091587463125276621168798829269728643835314546277439095197985625997342545361792645546647820215203891637734343518401140290831854341636045743034971216077983266625208395970862103124259297979114962406606306811122499849810316123210283054590136775215933610845855181078760857443273908575802925065429179654690025664982140524873267295356234698759810583292837901281991068336147560179206901231309141808483905171560256841838205500804450258266339227403641005134657734911601608698788796125151479814935083589322192143904854834037455898006856368350201066552451975522360250352380918075150505287506562130687954640406409982013904087971034217203258623558601620953047107074536126476820286751699368822057489955052716623536695765953587075228200725406290928559940424075796139871532615186215986276680460798016272026300086707141014998545038108022605650541209350760421061006931109868379378605206016625162087256566231262939472276374905225576188701994186932715928996804140094670882540779896555594809312795652602988095111207764122499673713078650668740157410418756740940594549302480243132057887645210449995605357992576998484073203468245447165446203960953387063222679502617375097123811969135428608009894307361942142639203248050723851320894985179557063986227627781050092719086998358478074034912504171018494544576617630144086133866960006571729817472015986541820068252179045366398696303091474438780634502052054454776733890062961453497356162831355226420146142612397410738296641767933243941091261533903655345574428655281210433322428437321018237577399909358341409257337852687726871629215840060962238321632296560627654473132020639456540195685001922779971655864981756341446870629755926676563677406166961469197024155981376769966055732387879405057090696624256599434889980323151957997457744508945691591533051392371085954619930745087793631995524288121737714315926942918224359598984106483777798014426741429035408325792428059045867202957140092537867082493907597783006389238477130518332877736898495869533524068166845906849239865504981092496139549282075952923955997832350768954905073840623595958695429673330130855962933202618356773609875963465223974549659056936657344768299681652201222303370708909619287725923086529366601728296876245256582732692328894419006748322419960334194181932531771786804390836985333127064898672426701010996086302100151944042183846682922380595973865968387165071218331802109413267962400313169642557027527522536278635245351344668546952201213297888429133612744172732347287897742233180457678749571713989520041049486689899511741896986293080530317182267398233252562314859295509243267079030672074976947524689277049383778089976817847944636834441392637201737729488671441288853828274216536201462170251742315838043429226009295500075512662348361819201214581727030446661649307849512707776831430057317133994421564661337474402761893797271706229051367213670298520524328816168736262905301377575295355331296950667304828663727877897774434643856880907887912598712707127053277800834009914932610347267548476347300986558059345750816761308371898715903482315895086464285381675934285550379676553326752813976577523103260314832529453291222919503574720588922701703611419210490729699477764712978235261434367343850865891542697482804871480238337834559102931482811713478698759816537516814492470215148279660325500393637717898888989419348824223149312997331047360789612146228475451279372916071321173169534197964167076286970386803630215290561168057180004695832452289553080499831994349234355720884807678214849812577637927780580188548767336379303328846626411187809431196425920884013358260815061723996989946410548179619187356500881574728094679078200203851802823956010200939621681107789711342977990497016288203308231509723849344706459115273076718929584497137390995770205338136938755776145910984794738963795553777789126097577600716818829088032794276275522702570075584621313461372163022968855949399052170213853339845246819101990646093357869094660897125181909824666330759899674442294427441319952283729456743013844438394484859441578211516534344401481963587588579779410413909658819361930857902812574672797137914400353285502586664582690186162106504463319726692050033478303903659042060977268388904370158505778971962902767453386100442390157285913843390376428458102854938589979117780489094580554160583046005356742545519084381659855912407924798702594248745784285730886594258863486007792604073904307110930446165235837581355267670543041928405891503591371111668947088966884106950876686301414984701509810731168033115731464065897543740992603766085789953729116967190816973033607502680564682965529608171229225271357511139414095837818525430001487320430510000022552086134349882630224900142571899490921299306430363579798605854447435023985506295405030411911212587695258182184987397418654978752474499141784458679607195730535500965612084110249843180646314128388571308185628432488150497388340573630495016849376393987489012711374392937554000547212157916312657384127421973262766810741752786339166498445722829766592343156633941238579403841491731831100122851031313280544778619151464495683655216583190419924100277928977385019045637383019580027204801007613071357787488214642357086510587165068620089916056247284799559010279907707700355323146745220693810184897649385459928615180510044820934925990833607197558085685814910857257063625913480335962288851610293729272886212346343108992308709423015073943665077240635054046387296002510804260312530360627961328988977158058286776218835753235352203643362370071567479906366212668951131286133319983112803484207359937179212719683945313743555356370782693793652373985476014129167768016564670642290901068579065552254815345672914213029713355261662560021333152172389211758697485542953005542392057747402274134649113369526738493311165957714015302335677235825417199738455296216822390013475811220535851258464836207171771512342457153387269702685134077368146586320337056203222868848115796910208254322161156822598178255667843193688605370580046295481855969009961646148730740060949641001902830139322604700911452418953992779343843820182920390078850390891250616084149938804269172906517452577485226100982016718906140647384494897824187961833131055980280151028474641244444450154487622152523897223862971082655472987062605939995273918232472677950945567725846726370066180963515923069153995365599154890616309882592723406587126710055119811151238723050785824980412184373650992672382898431967502718305566035184650674294764617782068853211363611357407869089849024418069673519681171278683106129695767266001816176614691858067424863529703073820228633722424055174790697315779121560873371885025753487546495376529354623448638684173860280384147337338192572399321655829112935836636674902186372114714300849826321144767392183956072641229722320772123828418673373203483921486387198400533074311307333934891379763420510628729245549730255729620785037804051042371526577942098391523955057408914543782013878814949407648763974941196281637227160326129424266844968989874048846027929283818764327989521298684896566610084607562719769252998321088271581144219060697121905718954861419528989776473756806015104056243979352894757552164718889684956204849739838667739550962623320657716061210437566368188904682436552985359367693079846929300226017662431515739448963228515863332766743256453987218884780840587588227445896111997011415420691027783662257353880550771241639395791716091313622793044477050660269726683580982297837891329545034274002183298914900923383850096821679212940542006663518421939150358186936550659817121249674671724125076693343347052991624405037463183356831721217697837465401951705185922566154727625148412121933182260928665409119504276777126282461702860948094793475017335349057859053782648177718260021631914283978151363872459711420170500954890223177234613416905570354343896798308913711721792701574776864389323482658894259637808480283261676238116178916940943879492869433510212370029686036515072542339088819259375680612640969047824457334288090061529261105714319895496249708355654940272677166116926882098127869094908043658619956044768781127001287503295385647705503079326638572744244333836290921982079876657054094828031943402942464484971043932038768029249216639792529983132816914880823451482632830272359048817174190441382567576804919130409177112173239095726673736203489544127713469175788830959212088793741684389614937924233998105568473896566097485574713192629114213796300101797927458807917673187082752426684352057951785083336429535741921835218437575857560213014791608030057098617450296546498045753150695055763126447500216574471541869380879773629524025032515008228511191727841245351866079010982785881546366464537548032624582511681917897044660202392685910692944104974571528977836671108007282235528909460169782747880631632476098861644477607903929163714500425038907448188347951427168997830392551612650792890996375824785811681846236404294395934284472711521354745169328063742799001806711114736060902089588873774045214564886609095278983783935235073842898933889861504117742219859038408416564625046724737927831094347930679335404208534348998693293216747416563855021427051366896546114128497849760374121767406122742860230474168099355728272550272564657781265886661127105811213405137434783120511153099379169106402146818759111235673684374933140167868663990355063975338761327225137861638203200974854590970970838428616783136318026433809314191049118880610205362466045433224021185569990090324181947714366820445195156600914877988062851701834988104384704756416213606296600659356210922874587617831184726482921309178341602035893057347200842217520508683705780154054257492322886464771849363373150102718989714548763120883816926372033755712199890090779688271230092595912546338099745818432202412861044582593229448066422130026219209201621462568384720328471710206567965906236423075335371229558571759432139484752603728627943192935460378092352574967985916470995605240896417862948466895774245534444522264013616872767558663302485481237496380318647511334488152947817499155709144559140042181327998676610431482271474739873918716048571571215554723374605909955349772047180998416273285864952256164592122807897540154225342806366594977755973104563997028451454546452790719206889723944807898308298610642924209945936243194930167681721219906789333568526603781555111128664543691696815685442978056584219813618712895665517608649986945111273458700680632150848176478375993708054717914666392613112233777463134541665308766345642298275018923162038915183632063475115924874014604774631877644057361353587138285016228996519570830814115080752514571538298305538431455564462511545039803135637868716503451587481985406944464060421964530465151538427407590486271139397965824052626950805334432071539072371418697095292034646179810227762812308886207215666317261308465709751659586559791697809324280694740204692662444687377133670438183087451856207911705340575961738064423523042198721751057745270908039974626972300064763420681119543817811775004959829232148742374922198089328155963999660629917807096926129806312488462876199312008570654882349026863573597258733391248310716556653121944979568411763945072755215415021312867941188670513517208275031001395295963319176917652548245806834085810638980133569125773452589006381611487775651571303863806619738914652160274053361678807939124671827008578481745368146178609577014553397136505589617193924045979491202461219411156304813083175785653131346045981812068110704820121140649619831988244549531869518493631564832507097568642300731296442427925008712632636489706302662112147587675526665853093308646787565754399372666019700941212558768985283836534190758588527509250646709384871105153888279508710499082221982351517658855697360002704000479811022436578070808863647823691633185627913791786376092617300205745484336524490813647921051193092571304559639926298746483960145696549931385051207188036787811315192764121205056211768905631435630086261262556356555729655109624830815144657663570645936244584554537788337846396972494852391353825609592276288095060009645362689337161110240818633408789640188318919006359170029858979122075777612611124654691881058954397108352841793735032980440904200649465664651547382718293670061685199196666107535928886462259985842053033528682515675249699062842030216043391071245986764466164763378250743133396771451422514223609204365405978015478354921316581818327657604908363811842381563004259078609618568147237238143369258411332329771484971226052311660313114492013095331579551431375634788929892501974605243768403911744897193662823156969161822145815516418701646956046231397582184041239221855205466858972798071161825681697290004526880598864713817745107673109562829908132588565049403788803348883436559629923083852259794783398558127514821365948529138690390432394493646808317495003924834939656504126223914345072585692711517610893989910712214503281105073697754011296851631168338719478134878411883616970528224109976232336856493324215777552769576318542440858887171217796462844060280670996346691164746027502316032245266904299883563996273360765275470869536937367674201432530090960341830351970962942504466668069208084772774144427998006370144769366050733960874446113055837981421693751545410514180045817451969331821970721606604228067278161030460377434620811708992722120355490027065312366726148325984321507035987717567709786363386124450325430110432213175789995145621593399663903973434224315457233019275863743587371964460542751904235187629389983666490295228853757283652766694244741191862650212870291752079405889334717070443708995406143228976795448788439422731735349467181564406694795312482952608172638888915822716749196712617356530208809505363329209440067456088802767956225887535344633115811000304617921540172102521466328397181543635998441373892068918436688270185411529251961061329266317125906683436930514036545860240036698556197606485774492820487585345383359238089163873143085300417579334748538796843593161130715983762097580130065119113500520606486177730995970331183412559180109452003347312154441642420829328393958036601880624991048083038755620032845572048206345908800753908377410090583488079181440012091445634903420555970105070494530578824881025736649090704055878567097583685651465491099011723894154678417863121998236792244888615655825142987726028145068586705060960982296932377965560097363225075906471841168833498657466850211862861097371026675120722053688550556597932900127909107267774001815378312161511728628416793889797876501983751304145074494773461134800993322545534667247915104241428757765398565048342760149163963947756561801560424926138838600089432457262544603421085658086566900300901297002851876268191831412254026915897381485487381126994368422784342947262609252590609015539705440110603485093908653056924926463646842194724682925598020580492565660041069149959297673256857733147833182796285376957659239225409559454232169605449857904199300765882220645801572539811240166730877401088619914480278983618784993061798097416361991263943945533305811315943078003817538391359509563720994900320033291512812545132245855272911402753149873919855776507881703302456203919957629767012956025594086389631638022719730506366468828241130416861990900857343907028788983751284470636039306246995578714125897450566974085629652315329718631415265973779945874403693652131340886709716579557971068765686741304567938177196089508310862374129534777988534610927092758688682896799685950733279921007705777831808749385486377143265445418011333394228787138316192182356023744253630785192823063168547556676495729521822900571295551794187250150796504682639011627822779814665103761388916260668245316336475811925166031242698075631513084106952529798926470006278154423065626960088384141519901035370639880242249369234004507720172493516742560100910294955189263857680558089495556226031209656827905464738191005342294837232031949880274058271265248135611761321803214555750167903728229861587247339452148160124251306778848001542746952100506416657057576424640672826118472792836660547891484748182112751893098857834097908438168443414342569772352642837361789588688328322517132593767196297769563574160473817389357378033983735069984167295754744648751749953690730651055021168472746285557850520954888874507593016727411136683128170932358621216799870482203131158256447739392817101381522261223345448554463463718688324278031534883097499303835433194311922421166538895872142363847941079527677526211883685966148600812950836071908185129921069219365726333276640973995945639577286258929577644072353721398380563703398597658570122734080160948791196372690697958469353500699673159222316551825527302709166248577512604677468668080538850016666111268561795899464574109712723760324692662684339452648277503443191556151033500770470220423199127295757775028657866835721577850529082932704898234157727866738547148696414118063677957267422929602109579985966004313953773333662249572246394109615657738874126266097478100468165635120939689853019522091576821807867139985428181201566256217228627974248747966882335130543053063284412032410800280878734378839608341489157661237456891322837903725565024359360630283575497544804011250807948148026279779833691915755236431086682436106571722789742503409592597703840408460295951666539029564001046962740796149786071838911895165049585897845221073544146613549530408415995915741611756693332614659180122807692036559301319772197781407199111294742435462250044110331756269963096080218316264358519219018357389475106912524918676701781274284033357860733589621293983070577606679625529557876724228316036963575175435282521786453127048714479538364590286797971185033773131416128397699024391794768818066339157912373600843586746983044535930524051614563661940454270139241455731422910536830270271499639786002235847139064773263808797492808793715938867127548844164820763907164271694407360863409552668047672863195732925059610446715348153402247436057550337693079535151487167682050414023758113080772247512026433501897437238041713246171021604390776370663066413224673893214615066082499321492803556046494149494912685050317462683375710172572723835615787736981445575170907890465105811847665302438433026087458574243601379457788939900085299190242359869997901890330935113544164254224291026967772115926043896317979298498664286677192221733443782695595811906024558242079382702724255138940795352423246298814133126761265933990846320315486531866795639237369983460991835532751791286967212337601885760172282729946275844041301995391193107972715530277220440157758826239833289754481108578732660854399832864311083398443489473358207215405027926712820114006600218730562101751376038106828732831577224458213284783683370529524111800742487753137497290960957204026401238208761592462811325527585342470695154496899235270548898202653170194161378699975932797057522157392222505107879805500653372213486048483243049891430382088920084931233451866485101232670405076665676663062256722559848537677966390392656562778507354064265750747463774852839726355729777102720822372616309959134544564284098092367116623939673669913831159448747885818059627862417097379941060295842399589392568234036911125740223452430658891609670478651277304374153192249044305853324260987297280557372020530909411453954667695585208722293195697661865452654294983087195895094256660397758869051179167970706264180130916213726445184683712662695509932977825430100996476624637839442620218205892043188976368630911300947309090386474612014983116132126222764623553294906968098501253518550876311168094440340851229987984123632083234230071198677813592134663790607626284845728934395189974425035731875902624342013035675233675266833445804560856968681171476917009071277798863210712449986986172607018745326593479544207428728500781838559480254157428407492148344931421375489266836391197074712399540005257082869761732203401324789705309895495034129570993332443272074706997711482287092797851083117700748206611846228643162429915166493659894961870871169117475586308979305419875894435199046173074191632583524210977239897324377157739106573921147960303095900064227976586887496955483356751384608958301048437969336966893672056647075628972037502560483318397325828358749622951339966734080328208900241215963012851551081130608893122748193881118651459477216205021643713482409143275873539596970845699692145001819299334025004555744241657790783284692979623682228194924162723310975064334998519782530347589208347277034471656888405629280236213622053621815326796680251725361157861254608349505776764937531868652157309345735909604174856325249641145246775930919267367797513279387930787351330574020866426191927693361811244100716955623996712625935571151172490002146785703757281965187292186693673564876520670793115272270983204156041441111593339792242284762324552787046769891538757621729976046560385377765334233382109405280172269098703918962775149426497897889569620974030950009817344168628638875760128947704758412780136893388579657976662490586737117018907773250785015407624563983901772991225227211620190488449981768063105011017400438884866307781612811144142996553711629985143297435136193422730758387980489484694460666030174591235612030669564424996606473694714170673552486620403594383020146122717601739740467159541055950982192245095557520514206771378891010028631055072469284199760431491893393216606280274350335005210543839018260567008148339644133432625076477182909697326022745753708946088967611985407633432559710945853725300560230973756101835249459453910138817868204502375082758025286525647239702551942693939958595972602812747679801104643371278201829253822777781282870641580369148508254094746832562333514914225809180426026355827295209356163582881748223591086178706834287004711528343384859147362827290341606672176145941920684724124742953222904865748741107256224183245548273542153424106156337713353222775285669670706031017936099798461328903235050240015633044495889630542813235038655748586483484564837328111974378568486324227105314604631966250045476933687518404038474095307179646409041305770984225521309356158943638450941486601397820623157606621356860003740973097821773347895838105374165676108302707633350602233520728950155418685971496557521612302309344977523660396983508329457906789537156661769348324018884971391873914313286281057393867714573819509194501485389263308222941739128103324926195284216240433991760594232725210915383466852662463942691396571360718937055641984721998197996863096376678943079480074222781847056632911133347261677933189469697666859894421011190586312999614735913299695657193781497946882513957717197972824222942392353085800025933365545744637708912271208072052666446842386934718125339084179036755682706601327619624616762484186855136099720921841831705504908253550623140534783273613314758951049262103184845504760957063390238794741633755415057406045083462314553835655128404757055352398809395496843569528821322108222157260052886743552683804473746897854766904317898835197198749038046593935641046780231332480861742113326035916837229071988244692398662017689978458825992532151883228993753923999531520557103527839054970417692794050083134984752698884110513799106223369343724744729225806034054112242778196511734025960281453779281681838107241497894721053982199848458650496734565640642195093058628597458296643420705784559335809121950986722721260340665422343371232078571447884857436628368792817814915703408899323603094819711195756874991879412814540070485812338507241250095706625706782274677384365688769665652743874052371817861294434467689369283719019514682531816154785189332123878282075189401935464494165231472486707317755497749028613296132979402653240386858035345977080372484690106285338149089272145904787091624273894763399280940542236764726229525195220974400369248232424010309496907495892952982364354908361471636346131890574545197153084137015372595639388677352206032802754243203033272578622190488281777926113960477289286413781229405542229190580515988663429531140134269617267669664665936367989205697752365650006167514737973336558953302956075443070059006000922675030796818601799182113923721053867494582000871260490559908246884478571655537763540162738182014822906005441247767867126221206758643660910820209343252341378713937711552053772662227586860401686253311028469433743240283125053042095192706509947549593101949616712283351241368524677363518227671957232312946516473594460005669436121380293025907366012750584384736077416184824551613805618557812633639707509548685491689894110901926357935177630018859169186469156033931934242799234570758121863581131545523572880658477899606420200226887351478833543379826022517046569614616618984659557126016883287760439943337482894133149244081154647586045563693982890271799504696881155134280512614922850276056733307461448432308890433715899743340892312382837231683299350690550790227677082147468747205028377879556011943045184250297913869338700536259166999138649467495162727951524357892377316350578004265391668822940600844026330199115965600563557620567299576818797354584751696644669120717415594521814796016213660266305655578597362761269944237556105628730288517324207537348294442973527165067476183343459641929759537814977570366481938450241124694035448653677002505983498686332482862197804708902365243084550874859687662204196651620917919689301425591398902406786952569154488082812418981528001335535264895166658617377764055663062467937405394500492504370196099183877989338845657968202099236067116761359970785930755547755849199254644618203575763979747108673593469379502054334249956498831457989000166770867843701620549727583720708341994357739527863002785674760399764383167660337652157163685860562810917572544957032339621441263777576157518923010367442103964774593064061213912103078964089394365216772729484979745742123495171828061561470903024125158295598164456729749514487376784089232940939887637117428563229740993633764884369833221831006586747187229990619063321091829595495673968298441868183658548293068401663608682895255096820092952527156015967021593491623660464251927945843360783270586393293045014534219820761600281772821355713868908175973277305301610967446258364997836757326842445760092912534935788048206331103527225045412301684321322984732061937833772706990492644985351949294136383297352749767400724712707470068465368953255098922155947945505743327280619647013652269195559916054925388071858680610478715835383416774965060475399637359389094111343672381752266072112522197373985305201183125911742199114412696802173392933641043143769093511207279639687949867713469066850160159180943112745836348360151359915695810986100941821362510575800999429511377477322052726128943891539257760011068038827754088874687602084650737989407973872148380238831884068212998554114412206375884713053504529981595845328019357390351954806184708803569545522335560859887594835969844642482887036403213229460516187631630386264381808436101827224147930422711767537660017439816088555917756951393501808666066241322089503543338427288718759122811805778878388010275816374089176076691744884023762433824233888370677445499392164954548404042468634512004920644751811714487105034606746959221269908108678366826527896375442575870009860145077500692258038903457173926835531221328238094281162139576489457556340731599427144874025687062914373997915701251442107101026033416906893761611240694686625483825894468985013391535996421230421963449208360680879951209469121946730556158397894605873306936387242550192483835700811463144129206484025220598310079958961195202167300055409309399430749624707850523291564526578486395753354100403965882062323654086949719737281285252448924015471115542698136246519506100402035077514311882325870018283519231823682496811923793594893965978259231415536317904965054926780616443566596903870024414173738217072481135755350801109757681172353512197544785038482389109298224836141079912141028479220001544169154026474575693336510593937082219398006641756575338578225385967052877397985641063059779976281845493567704392006497228614861171883173070179564162204433538204707707097352641454367882921059813687860129202225755415719581185063612714495643209879556571970692866556656498124633619024923474121908129900122026791822255231192041916954177647711885264829803448063307020325703752631303032833871554669450579263260194987938102151785990484526953416355297205508359568715259186041405262500266089925869121326356399239770646827095962111816238730333482885833797944007707207690420620796028808494329843138442159239332147533600165605043473848513319990703745172349320526931709912351158528122794997622736476401935320571769670606053482538489266784660880703510943809197454002143584165207657836989689361945225381694544474188334829319409519655768587797384644652741886036834324663504483757586387198223951533437811012509744811746350640865649218358855597641889615974160339499442257550639111079819434573961156616261599277852124137533167777597344980114786986133261569568671081319204576226840149585959199468965860016457780869781361285398589096432583532897920510419347421027347226092429186323854700348219956306984319448401125704075004668540882853403423963670529895156564999456996312067304863419494573711126538088902956346738844211583499128269112838826370940616254051544269533898297257708576656707036805007756560001187707506954041345118259701543818952075151842276172452185533401162533048293947048397604071509408625089973890342069435408557607732938226714638676462169028486146210133837815996177152687305264946376613055163663862050201927302717650118059065012322007785737283345304190765370105176175982796121489805268595979643121947761288978435045140319798733464276529583573415476518285801018454825912935437088950041555904756621643836119534836175703191562955534815894625707581484993117882418073099918424837067730052670635412730084664371670130213872438777580424752731215589888904085446565736126368167103313880886950664961242284689207160477787947218368999194429937994892958987067537783336983710461402032831146903704731266550152835538140657530753245124443737651679446435242951907545889572692397783633452866370451627246729343907764615819714858403373494621123688163322353275218234796735434986091962293544954032935546496757245578309289448925280993176397456574028389737537612114257397565612313520064188189466496567182162239631934853705769867778965461405726210327489748383380206010739931967300093037539975191342797946117705430585158547597927872308872979936756161521248843108117161902623071076692244983994935590775401796559058997803498701715879856971724184296854508545131470233055846523815279486606000570770769449693140238849017187245440589066451870009291268159273880244409948660464051441353897955196256883725625376049982623975863139750944866832000126779812646788914146293808835460378808819245070231193949494589502570721353102102121384529436380023137726631215988017475270641075204542997568056623178418369029275533102309491897032177418613871084577525588378556345932418825808321572989249159880085593708802582698719746843527737407645832421257707580764330238957764228241449141128118006551545300209965658171875199595066895985034378416860796938119382761051116806096181813391957553116162443347001184646273759920957075830396544253558271956050003626901297726342566007499318840246441417884829153387945935411829555646014968757323450439934403312996491982469624286950760952512773706786282229942490740686398887317308080099864037625033439169389231138519298998384399747034285674820548227651858640777188628692630236608245991882425724059636383252504597946774119164827087331337870961199924830462177537091264733662548324230962560569032489220527106213029077538516721036063495686899324924520524209636822562581297239862539095991649271758749104254216005881432261651054803003653631534939959981461945253640643710292032620313562009888213521608654639641771800826073859362442064349705635325526139635731331282622459438460025493225443109936410773270272205643453840654414174640159028981452077498309962145345140281748665530815026603373952941466860715517454949650379155979966844798307617379103592256057008656293989806372983788431892109770489735723101004700135564954334492736867968921521458282874931653118876938072159701953660785338225661592172779742676391471790548031628997868472297805256267769836543930798876537396865354489405583294633051406885513853215735733185007772243544889039130759245858871374791173250603067278583620339589604336229680828796941408922986949429397772235680011597971832360932655299589950068580745273022969772540457798609214614704430050883781757017792703288030195314173663975636563617003720864924091304766199986446681564031890220618572480707280241157501214644017986246554769681272622573935923515964952552500537208587072199966711323065645284287544301261637250279815984938354116252527238787071830812127390537170942772639856789824817056382367098826411434353568076485733474458663674205787276976463396353150799400541297610925689300452322899402980965446945743358318599958432180679389914502525544069286473346165841821101858161948612465994920172699606070848520683490943817036592503681210789721967728905768457651865469060841894049440456905607522197968358693326308753834151308497280102486162973735359957907964481940597505083822256782390928738526232039655002139230434165717797811219972634086991358597469241259209266290912054642466606625607148100989546730234030082778043400009076603183811613376150398620636688271142888252599085764541171070051915369125362473295090365270388753006933585748096774397322981328373082650986603541670028093896422514878854068111881836056663125426385037266349350129394843906830875779115774594522639349166343913860538409399056431699151803123163467323081088385902685787921063966025012811588128353673639537000090517776580346498883266497657565276735788522365919678761291687285861002576995832971625815115930796723340571895487994100973132598199058567598072067137378065711085064760180461314029577214347486146003182859346449498013037893892029047285686438212940096745022258612428955809986026894991733093771822891957954786793792152181445425157720912673155715014394360017600142418493450237801375563754720355204782005605572401729560280856221838760485585384219300507620423812530432659377526037139220504360773965976283053721200316635437824524237604247799346967010783788608354335849907061320685881302385132265995581487283188135423566148434193373508492625102792758931207964477899232520537319552885903075691900351385274051110990249169879913303362844317251038737408667650411704429278210734312905977396265573631566564919893547248863978618027100901117522649047716962109397264584435000992088480014007338090246435799950651534943563425686368680844349755165345348934077787820264275531084458823850535289331949829595490786752967597228324122288214796966741640723054156552117634962003892991323020134202181495919010781343678470293334738915805736859337505891901274221167812845236393183871835734679331946847282754409643361581781421302223335762115997847014809517052633679635350659802720865553217892553260637062727427648631335293563210154412660861678581456207013152241195116603348268173523482753518256627268990001310293594405448246888714857581464418232533293407603683854569154730429294278087804521637971267804896172688391338082036405502658748230430352810476159786554252548648762232104161748814756179016785957345192853041647047934341700637867513578153593808974686754901475812161336272126957469447279973820632923208665087040170104461494759418799973430931692060414180521858742002979344558596268471291636990446433830002560141556280473208097147510565464382931086526349053042647377828547965687224320897971124237469600405939431160347551142070817883118115104343214863393145222881137267701516006990014038044798353228728237152052500115249695264442636651628187531904792941067180105444078953087218696513476421010769728740457358103952837482764090568509804526236704980105963394717867976339043116046965605403457224486025965695304010782703987777092511020753476608755421494871098985193877423693890178027426605283020381435905850093755655289833946305746973232356147414255572790306113828415598999938903452763958936505196856793310444425461111862985648392315344643271230165267239735062397576901404751352528597304225119807877553915979901054511820558363389674547798373365947861511843160865388293358132498574523827005385308261469954796720539666353646619564835611382642392693804300939023292977211283225923390447439907279858513898840377468310292747859208042229937332035835657986283039796911373637697382923699725216466169062911707672500236443249350249525786540906772846606147507661078716908662354716186248679501600815709387245249417959073595647403972388087030699981613526120779152179334286376825464896177924274086610739090250938111330899549789948286630653844492518376931163197889125082569064850566683027862857786366044529989341066972711502082955676385664338764243561173478769783059072473233480483191428683926677518057969290891374643800805222277160996543645009015324543239770996790026813153038595965641231228799248205783423780289371343955839778333705949870545063480424376725388262623151453116729963495563645643381503684559331215031670218331436811830559735880476363342545886078208097789795118043696786308244543166068484293666250302205873796984691053668060875852071892769442659109078874497207293232448292239613180838897896731904256536001438810784151036105444423468032753061668174245130715464361582711344297578393578910312393729052376502014047394878928341395090378798991244063919624417728851934399575759848257411159602255280668532704519476028059523940712744268668091374988140266235520703397372760221484422555748520286199487462532911437783767852925996730033889421482670170559267922604286138987945913413209701154581339688074357405435583762245451248939344875277429244284552046790795666008619394127032989844703935675505995235527634486516316526080746507232126603533253927567953424261379843924786148414273105661794223556746052711179362622879847583150243803602801492731958675229674643160048579914795738610426773865544999728912368355588774069883984718020666991707048833262982303449781754951462118230166701716644981771577927235845910782132473698337860092164572319539381923927292365688751047722339443282816585194418241993256857977743524358249916734323631895603559816569758125604152679623981331894738211959172835589763863777218128445058781682365784373992465468991576313204785779123145922982159223819547014310121221198565491239263203336048111635056478671309546834045289757656370173918085345806403536208644552284111130417110997097688814937926812222621895437995465871975407220329281278939570014835135464393423611007190194667807281566209033639047774779794105033295150554954283754297870069709784159787745519579761380407191577961431491442218051154380842447133685737365206717436269433341471911136674129358360550785052819762742779345858418505222803836229291778679068150421689997573460111571200103114616563176296470818640676831817644230355141865812293773296932734681740535979678133728897016869063997167054588159971540374818263101643379507647064785260714457931901226941566516160944240678893485720274338911313846469025758244078380994856121931862539873409114172138565115564339491466904777978061176553553678881283923278130214516668381666067762425554724768008623159814700977307668984096669224711725293282311135005666375905234286554428248241532818813494754844268394250766919023185205437282475093826097884989106694056980243393206367962947721313782265589560495805735389619111666942694426683067786951342107962472202009324982266416032091646109055310312289845403466773712189727059348685778647493960465353917102004107732317706752704904601588739474871120069364477223344325888087789085578618882337012665677534528849350613575722244865518093503423711267773884803921887176760534499625926374444899434099039403799451328372998620087968692275097763738746810402991715944919097889397850665687614652951142863363351868746469353205016407537529854892876755366423651443646819792521728366976049459912774448961779778447495281360309705574405545456201457780629393354207754860039208967011657120844157081051911217034698830332042646233925409811565148954509686094144363959359858894063730360784717686265737805192078103182200781489163227026615611687133804575072496901572114577934977991262742321847996501054203748595798210793872649141992797984162998781983387304689290584166157120701961254769383400262137077453771384628709013601309375612226191012068515071000121982454055950307161028371694145324346616384533276727467669124351829868573726934689557589931296333820085654432943062413909411989393614480071684309620585378238821526574038556762191467453514570878747217696859154425615072477396308085677968549904064535358246058903858047233117092808762657643404608063477743114063136474836254224718854873472087699152931527130987376851435349512968466997845043107083351298770945376717938219608259345824745791496720236764684170294282547452569636595454923005149946422213873249885478682514772117593730879389265177461576813653009658818988073798776801250168186100283724095935751220351956946190117126423307579833052516117405943669832463776905253289953766168467597417035294212421804569566105686327236603698931197491169082039056102651866815613122323204927325710499036001619586882127503488633805455630949392494918911415812702143126341051195189576791479976410935880484476548638401690194462939708784379488671717227409847906168122479683493843288800668302971057798776044377732369635532081000546942978006803204861895209910812554955145758344323900892224522413475345818022047339347215477506573940815224353089401532334233440993039698251025551147202577143874889203476580693120923770569989056262884002957737861708581918265114772648120923447246783802573335401635259556008093725600629289861229929571637729492469718541196685770901029012455341100923531202817641001232400644516915663623792036679747567150108891541154236788197841280144600568819525161483451673675427706577210370752397855538894743579764686832534082608329337882888768696484638442520837519173781102208241853148705573164011591931060071091663901846257921494734626113415196696186987086645686508461555406603933927013828684993517355049255336679179930751287962796390724487327905196528203663808324949557651352494544337998914570494800873711705270832068837482697840594660543124477199660952068938606952110691168855852027916050327953488742617274062315403895944324621760717722559331753333791435513471133989556384556781469918458451700127708626703391968194499470974717627528599518656334469789571495188407045952909673745930644602199976641548072327925817701085613215830539754397383892078584078292003272838827503645489945872773761531352080146191918624657261331173694165212597887059774689597787241494024697542065892485658736094167952267137217024719224170971760272844442860980090695766062185400390896277695483413805082926782773739132381927913579297010758768626427469499954643970324852317562104264136185187253031112332787908759333522577027315661553478612835466674101572233092004191659334424821020441830597887738793996131846209651494002776022688713021821759139546063222043524282282743416733567651347931840582161395949059570691998455411669041240820672541383318417690238687462414478081710831757428128364178361038820979216073270805153100102217569529580587499885442769764580895982666889652986312609645372914398682660258394882995025645129534522051771818510011506478401673402752279638458435448585132153987997374241804625441535871758838157041538167936268330090404519215260782243529079258251735630149120478834320569501363669789669346929630436608203271016655210214721733352088885114907475569975963050564707046022881331042612977452972199453146990110086017131153154087296492553496253543258145763457042611710861066271012533008621371688242671917532382622438648993197106810485513441704161808899779780322430989609560280978458998105523014857546028478356046854617877274932054349471352877361876382860249457342586809821219171071779649957243608457116998046960327151053088438170687121556437345474332939580804364688575086583369920808232840154522810445731248244750740876465084453541898518951159592878414154575128981041107567901162642635506531938332799124748038463438101359896972341585373507111282078655140771049685733921323805811571002010006473624093141582877225620008359110955196723257954459181590078066167401893208728144247268622192299075339054526298220418878636195415033448721825503183716379107228996296526314550577786893960929566700507535885702949037441619584271171983244581140455881351930748278274314323032276530991134614252098987593407677304949282200505590450789733891097847310147719434340597505643987988919770541563399791341389330359492154139707396337586356857935931044380523643879431309010127733045769713461571023170303146973835381484611485352714921800824728887367613772254600315362849350648626118810525883542453911297325764574485583855793306625757613125418502055243626668936615429394596066986821830510681937236386229693481859646645344570117598442239761823419508772784248452209926160354211639239658140601793605054880927466593469183881299529724714180685886003200821664118347493113676088454922368792844144017442160643488973811884673641399963562134351619882377317224678896535154549972920427680401279871517426034121431903316607973897044728425325370780427353652731551350494832268122216862148149845640111147056876570211043854341014302655532357606537091967678141842437658425996132697934855128899258042600089377912905384764313138365955751297836003093070747483172863732076995956788490265244568331528537357646509246920388230302568285052865431428483275250815165727578683920728080921673554811640933287506285463329973286721757309700468359833784330806686966401422607128615227203800155166958357697525691598357332460923584459589547384506865551017492100832517636089590204594605646404645002438139495595944714630338741626349045429609455720843747027054158807207284521937371239168874166545857396129941546878735910512418427972718061089825884961116452760783138449285342803860746511690807565490573994973509453344033989792937158898045873350409018148872391088679716168085262822805817355758205013994938757103791415085046699921369537747844420904759469860296501400940199103351158479143262882543842538637782019987802936004768271777929265594393418703156168737114971368524893372322130470241176939177442902679747385871694727110700195551699973039625204213393461750825133247186030031871347168598171627289349573883122454767283619290318126978977240277048750652501439292235914014188566228169089229143688027032589674649351076200940946488166821678786080839929658567709263345147607578072783255799891420366741498969712649130814865655854046164870050731898868767906934147130142161088126708023648442661357029960356041942538806243555559242688608216023920700947733121961832830394793679065304059792725117457942342518718701395342409856415631009985991280564653919975880896466264386355734867431525869969569742202608285362260554837728279043044508278675364961753059098318920417248530891712331662790737080510470109372363557708774797604536750122740183911564542299154944418081862762441016889049584970769829309194697165072328058163332231633370749074280459581049935394366206492821561876208436135774986898193751414475700416890803949522934201726534608407335840547826031828878399413980282899807383722302012944764632891723104919768986651780217737669626681323995538290814172281716387241774425788390324337354506206937717758821982085106287819111993609149673189466343519926965915729249273390730039811948445481185925589895149872911661908590691663762527654495502165150554316360763222121060960120612743713915878424578514054388048403137113311965425073014094277883783848433489496290561781954739026236075142186814811601866616937658140814058805673642771164054963554151846373913547075141924199118523689718863571890680961017541367550053601674864524802348330251905158204488773513391035753227109178853492102590689170113265809415423592339067113776192136248494631982338164880308001785566863146837207972312509070027898857858415164429457777853282473886632454206309820153790259612522210164372427961782170634400461758944464710564871603948493652595953689389901105021879105430997576647816716362280965239730162293553934640651029886337623288295971861199217087149394665076972594634991211766321610676434360914214468549620968521291236037812581230623344799613870470196070118017275544408504536042160828090494584415300923918302892038903013338358181411807032228080210191449833716770362317407473640018054972045503559873286054574750750435434828415418789886793301702945457647070360648485421419108263619497765615593200248432383827807750212955055681608575775237033330675787083966387820087947343555448608345372299873223873077454526695962516318201355813333304128103592223519444185568591680167128310299339199524396270387173974926420826241715408516237733203737919871920131966818772025116224640702401337461987476443037866216546823606506664192755150823901031095805157396833123025712892067477038021058521252182059911333411394730589420235024053876025171974827694150005637719703772527474679005744424811805215761831773936335225657567787625622145001617370567698003947056473929132943233914594745616012063276449096006922297257081088615943819640732936592464126306781235377908062282064645846769306952054473400554332047068947666259040300022274437513155326389608720051094514069935114487323307936972006314043440822931866766583706761148487691485556360102160202379813182581623931109197957456788309559701020444530417310306223306821175239438759546677187741042551835011747403000905176779070058538330569357996342342280021312106445769113822148117561019032916590846473319526997820050763600416656492364867773418332379592861584727437817677838274947942049856969656876888960677934472977166385022396486419729498477482016263040206519038651259547842085772723305937561526190682510429835702510688741884027369533770138569146334308459483974099155536854260439945542526127743410948635461001404272108852482767696132489722549955624635828564718716627267602031369749621444104012266431741911249175305503296801339345111844777080232630002940409764663832667819558924542820182557730798465200867231366175317187544453708311610725396457348215959141723731544110877085768983927496582359030700599095265994849644038107004730556933316050007773275549899190624975243729077499039387473487982420646011714197211401817665379719001597486930006361479580013053704660935688791640612334959584388031450990421841093880448524276663892868992954705015134690168828489276135410148682883049146864457130890011688647865259758114680309444544528389217763904020593921882377835010915458043829279095591167623781246617434504362523539309567034153341318376297590490777953525244577821586150580228276293419946321205264495407093012207516664828072813585019887834292311405112374681979173855479764045140212924699284348902618848324087785276300474453641324907973793636983198796982810323455091017122896809876350406121543907857691146740789094563467408412960714795853122814203940215850803288968367165755587147219450077591706903126080464722560830230680894937855324899604283310155219116436334686529418523592390759383897366593423449553678790338048840472906901103311511944804432837284296681779031049563710927427341376617284169968565013325825610387582208281222072881547424151291212866969874399143352384587285327755313618498078831627941942528625251567445554378795436150511654518876556416802270798776959119980900719293953896392025501445880098282612795836918105963143248293943133027819256074539231125580658574029946522328498764065895332947505095923005312287809712409098993129636722139776074045106153838473675093254040463322895319347408581147198621404607790066462004446033908593856986634246309411458737794640123717210364282407540606342379734315958951931454761670382952448720626337237161988224706776835434099478888917119369967791171130323267556157257381498170691099904944574396381481220724174315437816100288274541647770619144831002077987464400688832071170020801093008964074742664184721583950893173279807861453890920103104587085093999436324393188202236411071005575388821198176534864955692145143545097792397711922588413270972552506881757952773187244843078590064290197743056080855191197237381617731964548069762823010049449308598024431198881838702252158383578580305881977401126606886854466744554375248871926368612368255154492712905915895161092362456504437002102443089061641495544938172445407424154972912956110327526873773721679679071263426933722394799857878882173528927413837826618908461927164134185725441770621071316513375219242080870500986327075388196797909089856687724213927213374365282935874741440729631465296404741380773678335878384615879357171129072957553496422480255850917853338803204121142802844644061538896888669662107889402885396008237306831536693724295733019917282886750665736137283005866499680274910358022495993902453426784733760995487726441646520697277748552184529757477293292381227007528274407871128228014720497759562615599459089069483712597866610189925540565822405076710730221351024906252526792806006834174297997956668901092981405115517171520700806055126478700152439489868010911048241251247910585159060259356353760433376155407798358263789347612495786638792081725452886765295538451742162881683403813820225756300424774978571136576981257891640616517024902386992658386430787414573272062035763475704294236547421531543138157879965772754171167309050629899773686998421567957622929629442774450287211731926094367810242393604752900606305262552569930248040805051396670311951113143145955157882543057812915795947869575573272224914584614743197940863648442765424031410226809674124019068763390245020676163274891404143191329796781161196015920377769236837208853289141323067574954229410272853029638239483902947674108668118470948915582496952148803010674060159691914262792077400157255114015357086846978411787533677752188220551288388243285432604829136891870388214341122300435290698159290954088987454411893326111087405973338246971060158429819452564499816386135536495079765443060900446543606333855927232270167045909904506497408660636334368761307336724316547213197711062758809021005938535808060433441566614081273073871959223207611488796870558452155101573551743183031028471060066842435727861799402694626433970571927058374544963992353934006136799561194371266128289358517634663354656413480557958860533988296766665811800187118202538832776513227060613979446647528652592352326660898153422631838631373268337479315878727636704232928952065586750086174360698140766120765812288590938098798958076681708425678340216458054503923397082834576517231745133100903515841301759399987845016558638181516011347088369712715386308014551865440665207697477411747814231797006009837275133316626233962219309547788209272145692036012116403858024108615801268663891546790116762179522097848621085972035621407429735711456618383863475249919741956560310513470928933974416125673815989060778654544323293651363493110221945444989112669247674370164062568682161468025433044247535047095037490629276032718191733896895228134163535356812272182286892116209395273945851933352657888328620963877405087570140647147413327317525877723492834730437427876151212944549844801306826084470457163154495236463273332144457748015830080010137656149672838053023955792165419381876737837563513310832360401185954260257763918453401583966004286954016452297669748273004564439917725497691250636586765479473671600634083840008578918614895061664161361016982916945776601212185794251185166895077465523288770987412584837373811152744358700788557467791372289554433656145439170000283106256797069411870400883456752434697248893582633100609770945100931145043249452244112401107563220764610978244304290803611251772546693454200886434537900744320970208743235619163223459663443320552795438634950572236075107500161906830378504101090577018763891713608481187994808092450050631238366665687930590914237001385592027113084610990714860733532013189380235602504296489196827575874862321186556572233883993997288417148717829854997418920809834246031740371725019514019396377588121858370802161296026053068603599810192945410142129547244764565608955560462547974955871308672666715888668550621773742848260210294879021393794008215776100675415605477044903438284076729426946227614772495650942215903595455287405724238576542520305445754728995929558291608887581542899502987842087821845732939840804830537745519715595053747256321427947714564945508963457085490613858148182842963369202253956404353387807141017003897875237901181179343213304809912403373506782849252336194297980031249965225729276131081417112393237301006577866362139068530380752431657988376386619076512752688812325236597230586631685857871280855876421024943889838331977749456667732467398798613527179820491922538701424049115135994678539483564327636848183756661050008001535558084998571362368585442649535377755397265353280305391621867576000322253644289942512251332016624434160720389423415173599972138241661774627307343319765457628213508662789405114665946054040504776648095333226586548770382080885506114449381303518512673346412046868970415424623394549908792493347209316412711497873578587733173494844890162225684925282627981005943292843584308531002967949268736506500657708370848703013441709389865951374913944986321698351978083662572307277537238656821447781166688479345819706021874461804210152269671012142987091253502018138790268897491895741393931660573928832394992417808449597138526493663648549390835592180743715169057660596152479295479768155826990381372183400742872328136536455790891881629421103083643001051484135996645852751593989918953112173682775727388027001749127505168936378881378647922829353143519954361907083097759498163969561044837271752079723156273288642787295543595351612602616261318895231523416301931038471083210286979854813863011294895925771587775634158314132808919681538955679793091216127456892950087237499438814980328530536749670265024205752607965738748830423778546289238263650447126884630711605070099982653571230188552550101978451874506041353512457765268365945081508269070233413767487821757305281512189135361123364334873504380489407327793216159868663029498979193126873632837926096397178058925271388384729234854440538931991943935680770672355200483813747674199057602803908236788911496690604485814557726521189945588380104601082911268376082423840855122055378238222285117164747475782420547228250166313720190976102410228989132065759116086022227525683404525886681314047268937384908899929458417387559020672556449354813338036257755826790676192151411648138774535951008954693960916448338135434472532778836862920707976676860429973003723597421687423685080191791655459922323829447352096061504326090719666235045264891911108449608859611874016505651303641930027010177639926184134332667630534102427707354743964993376978634244088177292245119665023677103511647705704402227705858439312973881838168130671059627193690993004330151146914721271251676493963119868811585156904743834247206468060059336403340679430199824139798289556222670956658418538776809720243935451389552792836294553694084711918997058234573833967263741628824619732724456577254941694562053052791578196011184598074164159084160247276954175684954223467472343812717409961668662650420686452932211228910676056487410025244948084149169707899341913257087931908179270684106702806050048046875571457422494236986331704249844870651259029305092014220990289438146929202808014868554965478321106017434528531230321730494339651367632345860052970377130400575299425181344371893057261028600831005470335454569425743820045746929571039111079573335492029611619833214403585688675441994196362438649387391725546597208221899642638665841687970868168293722283069487375185976430162864150455562801688947707250617957449011676049270795980442409576230996978190309732769056979062325083932338981813804227269493220112659277783502968072141012249262916697383320678775221706606915497828903663999914154810297914911004774969014204320976844062402415553135720489415450853580180387464446068776281155081133960739172170663582843981388049426601963052279661460449030178052294874728728248868498871931210074702459784890302888252277868129688716549967087027184761782484939398726579129323560199401067832048499131760770525194063102494558429287212433822480956678454650980664571801320312654621105896605104121016695635937503447714824199200910987392994858788964636444488468506188250056857129957905125895151742048261418088961046043415279658995710215913256515295010711193726233810583066654230662678692404702292647012209435744247990806030646952883365432879399293738251500231449629069634219908612462405612090086452939023455541401960348338326711307764799006515700742868460007552601128354536908102752024180799602364395248854081952755431748106586491579592605093410167888150920421585090076460962803289624467501751367307895091823393161691606940068083363616439703165415009086021755144830216021786977651847786632596731217913281467678363925068819190770858633097684952954941107651990410721060920801447663613084063044986449788344959025195208775671710205949260362749697050457720125598314773338601511022318025351541175462775671624604529346196122605334234032732485399974408840974386350679236456480572016460216542411786779365124734996218750304224053463840591880092106687951379442900503658862184260345354416935571985225928536860856722276876707131845190462678341700780475256751104940595509907209616006160914692829608848429742416709475617169079459215700707658720782192424326496308187481406281782196960034258961389527902207967063408225443188766664098062620853505704268720160186513746254488048578230317525485724748541346674740901680069029280987352331210632231781307688520662299106208108091101002938927692127157379477694685993738979681977018496009922983130416670423304683650971607178532385911893468804841752653625090721295648926731474865916885457846698610324390994964177901038143539366268904680741839968107298184834620128145998697196136284874110112454082883470040671060602349070870641205427422997827223915499588598701503014581191905563211593752509304187830651098754658326290777662410686666294288409715102162644729629893935999903478151197938645335005040666992692166685976986095411930243112034655719319388855035532870070569598487941091919893596443276735512978089668628737305369671426946689198755537671843224445932155378410746522688583234647244660267264492732550807520295537309636176992939996368170572029615112160474557100483716741848151652762118409929815714174206929633762101828154913138294458899589079054095531019788333252659853604717111699204103200149817846200344212486491664603343145190677461065196901521298375870735573106499687343899833017208112429080294440242861629862829721181541926716387789556626134050365548367616749750737685497293789710853319311811192919550834883527875579415729706033004831127020497926433221046668621897852454537301907941797982239473407865084541126360483887432756118404442112418857292492480176287624184317828119420907487639569545787780624126110630038964780898543339223767491360039434630004717288546926839406594661976048983770849141292811719306838272648254381063917277835155095663248884256721647545006416253615711155634190604493846591139283839368711327344768024459488867706471991418205260370183736766487397869482448482525693341854863826197643988156436158953492469370462299001573013748844848558550534043827368322371681953151798986084200493007270509637922162175597291035557648163366367690126804498030891686162565831593977139907322324634388568325719443815707418692263424154746353330968999859389052919620449220064430161570233818791783401861069398141292046335919552140947053394372777466819374156887967598468342729143005369454373551875328226414681310504687187766830775952307658337381830386984929143539284827961110797445633865148837235990206466325574371105598328888885401979369870387708996318578128453039888628966316576802913413370054683161551280074670060335822901850212328324683547700013472365859078396515738300965933576371322635976947497259468074383567820298425073528289066674270328761460390182729718347489361339480878886060572276892004086520144876023835015920504578546862591946502999519438104970291521809452966908124941362711237003265860921083364805699927494282250251268769991636156857338776616993618534786236883387907273422165627652396051412442245895645880097923244375923639507467373096657666914748239405930142312125515952811015581374476354234454220066241885389504611756294308603816324888257290994073085197878432879785504933667683453743770983683568323247428762062771942831280230738922953710739119779773077482623836592158760574328307805341295955954107882492917185951243421813387897889360724208619916846523792807565132958603333349604187977042107476365002603323764760568238292196497189640168582725673705239125668200813568669321007127807858418940830509884689743530739120885403988017562379927108936050500462079752914461639975960490258612767061492861004443497210406076566926231836347217238521355520087872513007192691466656847660887239656374848188820065053895195696972281993955582899460169758537906204070506916228460572966370415090040469704002701867140892020317961915166649579107488225005499328759215308855387090240385600953920923689874728402911721177520887588184280114584184744685225220297599217759411457736125156128645857076441142046750143225815803509742756565705813460097942488724325022749938925389845709720577062095333438867329648950389037295581236580169907897294534313923232475228724792744868095417033462976724977255646755223433545785491223206739812028075411109057994963858207929213118096791031855601945708869491636571969447467521972478095112907529687010660570526596067657817469161804100083626688718121035299169991998543619169049408403156836194799765842141523741943477461609067670254530029789031928817711000550875986035520964209467510812075240985608775521829096379393403162530744761038765242276199527578509368299403056511081593807293877497164773462044637502426142600777015038430740944007788302223418304821697450928107541890656748400048914772343232465642413907755624675412852208979631337361240249246667775162340653917019229710669377897993901747622062977471042829269063702676569498530469588646781246129908179505719387471706390638975565715859594207864918619755208726955066368526854687029188074939689064357957969203404081646679433297088461463961946777391110229940516000207488347133722744714253061551523451322729035618915944177531049500219000325715464818911553640163622591995642463202807684635466820466963618480418552800485646605735401163380308216729608951789319139090477872126935847134894786999056961934558130470694239129985618917936013211993963164275772734151012535662549789487460098039096208494150385014953417215318684893023006476140727162772170273643384137171164051374280579168430337234582628008226384502859777920131340321530921585212941286655848021999413455639780280673954279906280113366722676903465805729024668394303093321937027811143162075224289770043433343725859389812479897715794403992853842533676527038727861799175047288978983420526872566311879040101714531896501226953101779125827183452257903142797781242298302889461908313244359255404420837644966173345962154254530978977719807647302546691034141266868529184716091772742463888640615528761522444386865288321660221586576793666908770446572393045963174870948205498592546482889700800342880608995355638491592708495669771366327128206477115736818592549410884678194034856186166414844775583350017654470460632404857814091159668853278100560162446745243897625352594539445437189948173406699047538659461647625013577144784720374960660680054558515527003829068001955868620237247579557407095649630576905525468250337901459064002425261940954084393326969706050614821740551340700977221100297326520251823903735050787309708008450260794346671258523643462756390631742956517971259199231297632679410750703077411856237492010485140771730215064780033451413011416841619642953199762292090515532489421649325939314049133845742250841392665364181922889791554153880756253152235452915114256492323142847772136464144752822789819503835313133525284223739768082058498260139925587131017601861232571089494397998250804914111360296734438033671244476199453847279212953553608739299810863012131940339029086294949456452970818328728892074903668142013440111334358917235790849652949780230052487245979781143405484146493510437877243430081330526524032399807253859440976576931928964711392776162177850187333576668049458994991735105563589230805854036781665758085307942262825876025807858119725741959521283443266325772359679102867321891627268062438599133151818156448805642012112123570146151895603498579963689467522290905374723088516137603774179480503230687415153431644493725217687505027866493539440685155183293302934389990760773067403412280586053502437772081838507097481152828009644150878428123484727805142531562307064634590572548582401374969389935621765282078204458198735888633561927487745516117203125730099812831647431019151696353575868307398807861621439988401317741850965678771968165494584121931896425369078910652896145968281711172472551263403418737666638945676078702810153466163303219513906007696060330731402883280068315639023498820137406562232981264292193487019057273509171213346651920175900800356042416775571153494646744611350375815729098289149147638155636783643407348674927747646404683822416041142405052745657860619401213267600762165570319641826895630889615939202160789662894476735702130196344811249866840158930896315529338594963385649078620103065254439229594796935963230662132677754395684026200566480748407105048508422374434207364567368522228848737475475347612017838198846739273218350361182727145502669740234747526028837160378749445523997166741659237912805886568826541557629401488422740690185346643346463317812927828305383349334622972832880933623542388039222101909140901979756377250426803561704817372274962749694147365733377195408517791317095809452470814635197385229404592993867194069408298148313975488563765510886286321469616184531806625954596062302245863419996745657085777653684087351294928368384748425616822552863851581635021413951317905842928693076108907372775717295714684958342135065821747971828268591697039782492973066818637306899807625552391654286834359776873986303242333923588830882376904536017887639999770145419904033531449848761156262308835087479536231712186671189390065709827281049053453857941348401006548653315740845758619796970527879782319091742753674305367796435298859903799897986640845755094435605712854387460344778522104992020565183246476367145831105862672606512336772512276194643084478138367803949688030514320613531699419120137821114219435908493298206500996529823390745406177435459020966318081678742831979037222720127698986291542619588854378718958248503924791889644291977768272728163482605602146990769347289281731240308221934235470171800392200931049595155026676413291142373978772718964161278946805975356216261780968131225758367904213523114959826459490603949474438967899397181479938982731011156611669460167152410905685091536721502408300946294238252163682579241156911139234479606798732682763808622635825393029953389269217456197018663967566709495182017121911705518545715379609758970761905245357214081871656331301300848121226640263406905162448550933854355462762319654435118964270024055102067673905914049088430615512988763317513701869252532384477239705287111316760569452353925212335625142088727237436354719546966707616011729900327667052113997762635800896331613840107780119149534760992272408260968305440231150012165364586420386973400483373566550028197897827880651064005168783063868888778829302974396939172331445104754567437466360893891017693327631537098091635224519507208049418080810157099606417700995894729541978770121883776864464810646376956432843298351191019693621890794489377969512950976387639934894537569675406633070576253914068167154665751303510036607378249785202008508650291307894704808915343167078091399158526067055812576810669617021356451240815871133818559096129743936333118780255884685334216723030662886092841593503047207036660140145164456989096282733143945462399731029657059827603735491254342626793223817595572084595142869800416756267391442153945762286265541142711020654555045867887257988510720494579278371726568165440737506386188795309073655713820196605418040780365649340719011483437910443228370552298375586149647029507040519485417806362473061011485259014610221882035395480645857873051338969010916332228829642481541941377180284016533066447484467767359861736370051910671297987947520950646950073969052805780408221634082917589592623897242181179519583690887473408460526690472629857660482651132384874414032318530313925277394775117045087350344801389714525759417660932818424195214882994563510839767182771995014837007096433728250517531242736210432269590892632608272558106328023119745611228838342585175892262341548959283966842514540801398766807737367891288647746456491055250217729795530752360872453322766715647676031712112835662765350584045280096282841681974156177389632292092675706752534942314171249600084411138536400130441980391957434333962469264694328328219781193171671447474267161756757024337253698889507778489935789109604854407609755556114517522468467269273451512285410768772237039341378836790923118728120354054612448422413644782545823748786941007567096137421103827775549028382170419098121291436247157704186641687600020255825817515533574248303122222710549063863087652906786133674759613152937108960469346807224420441865120484810335555701242891530778217823486314843210032274027863623295629131058695189902263918064212922925695700195955311075614989822326211283344312365786137459713169792835351333716501151128432549513477092153473051907928559461852048050666418859684715982379682392590687543250900821937619814465906393638965828023825521091074716854980468171530599889606290243589672719614832207051087764061641009627636544245520240344158123377470965623290744262780710916099653090950251903065970352838766690659292192166215503919904834445578317998722307630745857701800368674792289217181366737145272063717938898346041202197993624060488729015659745811375068852335833539897659837806059512175453936704290488900724656255395760560467057480368978209819979665401944396529263054148789732445495595778649382600111346295711951409161775567990999298763025636182245960371179767001722647965585815068856902610704352152320549928290489901570524406594621557433489991285415396481726915578236300248975034140130668418644454314385400376225701909385626874675052924491346372197918335862496060553925701210689957759253829179448506058195730711978839839822217384427664655219346447638344604865927202446240276371570283861755042452899132065608511671133126147912254172509328417080864407591226695038837057870521129351801124658245500904652401043421921570224489573381775746074153751628402696752063696027059231339582321261115942470534221591530631442961933247204618406035654281766826250121245756642340119810265057467301817373329413786856079512113159042764467853966342919102391598205243254684770751581077175586169851810324825719141406758170329486364060869291625723601008915514528166944650187881843859407527125167003905037894958417726507597314602559718281327166281423967741892120098741065549838900492077979437097468573925805213920905074155054185955544660796839915709212199841054546026101321861313156877926429649791555562343551952069890704138944339893346511193399304107486585195659799171208209459047369685831012197128182231137613426648593824917721950942742499381688479201431308589235378848881246479274567567014892367103185994794525103438170110595973260790645743711223259967428789771707928783494122910876943382661644663932054502211461730399031661773952083478538838222484528434787449389132207967858524775465099140395205028964214513944470234070183349879278283324119995424305996159425259131100432132382005192562265888286759271038435095188220504979116488767564020164438213041545063688725839025731947555825011660884269001748541000160974658792524395342464794405732928746523757166732507803489000189723810371393696043479314979257701997654127054071927861554028602766354295762583731485853054403872871981620801310813050599381843556474486583024789147507455554720523233267304808782158206198760692070923531277910931039558672261926332880802795860562758928928708518590387011970942805088421873819187348146307006668065051209822390614384010259827705901719591312122496845260806624190169477448339942933694923114914668248093164565979542319699207780400070482082166805567214211696364678482896728920431021404403727876117493508824850518812518689046701341519766559208560790667897537065357301835213879180226936337794489984136916406205623935301621200503595219339539597276666330508721849748410364493540542748134176852227475095663933026248983238362955435602661744667788465109629177970458643988849851804575286092474835926096770687444859997208560951045836386151210491363277366141637094293881073149898775246692103562376585684931209342713346588908376598557388140108505502303233356134134991014813661420214261909352277632588765283196644149018219991168331584302072381638372521451770892921227067455783770171196928433748034730455942485300158621129682483432485146694116494925221453401225875835221210301917500227558339074228874356644692447121650583517618284610041836411229096705806841417282395589751399996701432049053995323158231904449655301427301110360713078346212381047105021673779834106115460894957262110684314908302129783208550281646405018389655909238157044816318852010727413778803043805844818093941026598782763378418973564423543489316032652991088514442973564955258973788166529116038593164259895428551019228140375915839635483501694743261924783402951970602148968370955439821821078210555184582835269552873844741826078563696111788103072788315807151095138434395365488175827169360154749986357549875757026418006488591921875988617999058000643212652593662239298870956651909628202165859509318960267344050257559500172893805075525809756983241643479199349413892204958133070111692439527849308051944223496990009737392483826256814649365931637752641768489834918225961330793067758439745133295182691926979409225904180564365925902824201437687271274238791513273191176929207850669901542124232210721017330645576716153744231485383007685027794606832543196333034283380004301035781338926450564039995781091283940693014508668023903460052243890166467865122718057363252872777896478424001342308076128036433837433117104939329616063026724126059685687383101600132097230676390784095399934179153414906367983603319902853910447155066738585289163104616346409601834434087390340412645254243028356903496059516009034840724686076353330112394832616499494868293871266211793660707589703357282773091188820674218890832492221690807048246842267264881064535249848196318104110610504996471765822578442695325426685400111057651299418834161801090069120974055609186469707022862086675847337438521894586202209931752252762656536001357724148320497932518783817015724394744455076360153516586593497610846751203971194526126512348687542996953935505384590258810198267915251062505780214636805389491426748149739298735675246449478332760300450523979431548979586001512282726309461446422426646093929616905686051408154414350856761526637417186046231268430060668423590443776649052228091654012605971530633240083509306243781157366121125032961592431833140941129547244186092268431396142797484236928398541727785067552071840374740994380389725504279165336301231617155919881287164098206017509571186969569325055391791795224546394736785467025693198397895507343373427229289682630849304440295588980598414611974216650500752747261465848819251349747261851787531818575172667233761919996962727549093915419187866855737213473238286517467861116017573102165144383462890329779407478152168473684942421252583838418494246805821725133912106751845977333079995217449478720580441488844089833057177032255877157702267097694611513616840444236281194590883015944900387446021955875590915896492928854639292145013573645537555956461763633942539019229942303241419487188918464496126205928827494514793604888085530687317997004708834959773356233212806249360129481470015260985139695234784814411941976584078335410338285001905875154598670895455138488986433118796629216500967785559307228666659356071344877152105012447198276798910095848456008128905634200305074889630860717953032831146427065259891406176585963841369634300541632032101189598696540738298902534478757601801527870938078000992071223298461266198027736908489901011207027463559241384453126032554915597430948172236608033003729814863089141346920393725548459157144602193649008451105445365647614468670534696993212410698378925023735233447287222672260035844315407041812354084547522483102732093847416977630443517234429346470109883228449012000042441691954143283309919131095922173771230750701025438759918686439704435739757789170283116931112342942068008998069069866712042182648400556512656071581198044277998578854697528184985471568889070904348672409395975301596161513391382998697924927200465869632990791646063556026713764422811054512358020524139048823887436221982192600756982262513712312344702499334591782723364122668155372843984570908891633518379046374512601641588765586807690395875671434515681574469477570143401440697287476067208082698107681311769868642638318383813213022246519241901349414057348589342117247226801439642467233264679307979713738956192919749260827325102597597640444362384403828168575822137568396933451790651274419697394185221811234967966525937114869310208663832833308367752864786698529879330883243000217433427453340655458012796755522182675351077041260539612928125545912527879672957845075330003654100420773237687758327237157192984316622461439732642443157356059098089227650533279881238266114648314635984302921582421577852780368750336232466657467684703798476783865858604445071468584976008164308148009304293773801325377601860152790672588781776459953104339623397186855846209366995801971615617223277533046372785151719520355492431476828113260555014028636831460189973633958724336638668573544327154640490638984825834459433438024267902899284666137003210578621682771953637961207523101346141574322319584473621994750529873132805640496196631574476453845350567933713146595687640775037233017189643618993994236434412599716000937876464802672923613133536547056864092741887322173943950914218839085474402329645202253842761387177064375335966042262782738820577818007665523455309928222122371224992656223223058870144472107136585127720172004865320882012274886056644124550779450897442553386727578699070327087373801620461509911207809451228659892423512259992142499303932421694305802936085706565849875185975999978766966131146321229198102349938011799424008527013504271718151825299980672093164836327897790776983295077074538415376928497124888710184168902542617577426454470126124949682416286584943168368478252827748562840909324927509943014937779770768198020817945194074502482454191862490822648747377406085305773617227549009955189128483696519723165554463118308501816308139770058480084186780911835628869186383065422354346957111238276931503731669789382817258166878326091271377386374055243130839187839440025145167131185158905383009768998154147845358123343491827300196432328755179692483603580435031031804496910420186209419231520856374032305946399506912354649839837145548331941792737821096118166844673968900348543440275097453028048489872461628429958313807510711850078101124847983365635969890518342331239189342557775139324642092141679276481319032300292607655256193229122075624836895658287312257454543368091636760287703102643724131380647205830356801613490539006358881311910026349004371916816137826729554264314587992156841886411108548230414171387719494842007359460380046143415704866519524074548551217498315942056796464899800368165460124837827973016890141193276529179771546014354946995492020719929315307804157184280671456551026898309562565032652291230574916196841058935374490171729767543082900012275986220614403573147469898812167107708567961303092676025721019866578630258252608624136802347502768024312988477719709435504850261409166636836240256686305999160235367269114894924785224442219887661170448696291034254935761057152288703849806968303637414781513040757136750707660136056582781289735129212904818906834765076711779798408538719975305838170415611202748401797452040349870480622025767275125133782164673888246729988030252425144895748002978563282474426906729594853562092465086252337681848664114147490746963514965930926495155300630734169399134022985180396536922318062450853746882107966251241803230705994518067804699905551668560697241499769585072826545601063974243326468497594080739998803285143057524509747658666014919019840667903069954807791466265568079169149254739359223587251318374119591144655400633138498664350750025883506677691981129092302012313450787336452416440694649711902915682466426779422561425468141877131901648522728468160156255226368303356477129002972217031713465544571919690822675772759740925733248106612433899531426086769433754896986637724217971503987811407096722779345918468813441720943933325664081357779501991989522324671355669143723494667698820088297598970785283136377905615831381940824923763319063857703152372247756238518552663437271405706843536243268566547882560165592506667873532760917661294577738524417155283182632150549134445925941433129504089868774475497091102194103229930993089884695802974419083680204942639879672747309021093839967124527958170320813880760721509300559694806449819005766705268018250154923199392434969864435595212197235947509961830476412855765719478738603561876230806586413750319525305002103549941985700469357595604319390953498932156523881743596344733657245525152155239408533457864877516732796335317294566895578378030694652337520175640126495588857253132604894894589783365178134802263171249870571934542683801328902348576575850789200438498998565847150330935628570369295481020727451851747266960217469932116672839630054406749696713258539700172009947311974448939356247795973864915749088950163402133245446977284395877814002262972841739620594812253004134949164473118705249153989376584775221662098349828140428671301917057980279582097272460530316252694621640657153737953702745934653106018602026866604207902202914864540977405174586361808824326734156567582978907854879629008774144682005412777300977580331875522258518591681673842833803418989188316344689309445929058959917935858234401216000384208375989095233754281122179274505040533601079171042024563783545275587084318619038932121784293914604216961243865675041558077193980000586828647277136497795516650169151971745886036469006627168895342416271225129811633985384558107987501112404304874726540623393327237751736004625165384392061416962665302611808932117774610201285148755854957284584693070060608752503823651325907742398648885618126210769837077941367908941117805944456049264422831053387396141686139246275902728114351458535097326820696879359358544946385375197001738708698316115975791964681459213618554647991233104458947187378343921820178521633068529245606790608993929749788955829100452679542774404450807386310709396517058834122479113189923946911782252987928770873036314816312027934220820433530543600382554282232989445229120972376673603799076727573030795425699328561354657780742922779079428652331087034283894134822772329014392365886640208785261825331099363051913216631254435865314396085300669233190356146913211324376678938366368773430158064002898452579197119476212548593100172958270886756886397196202849454569670134308687882554776527747426428501878534842887131518224051677383568637662719583736881797238655416119826504996924562978103730912954547754470972253454720236288966900014255441678966906265357303352518075677545528111687361765254524242639979032716671401155277621531998585968166095079333407358220725087697294144521053629417401703190543380762890320874332596551335269291537269067142555994501631015155400891358718431506474843763540789407337815647073730660758521008465667381852219138083835472688629045409818305057074957799273906324085107277521051302958569349691318022583603288166279221702617777227355527546340341838860185958626698501728600516542299546637526680489865422437792389731186533885962836012534379369193602558070006163543153862566715027622663537079868197240262523553232921416777603338858998844906142875587999560161947436246137395944729155209554785667111838085866727149168618434230808523641329980598308844488967551253941655728729361877504779151345398814599444773601110154623739775709050258014371466725298458600376681417368851445067568745317678717284196665341480457371577241883294048557430977795070323458691189589142619486316102359400412271353990634771639144063261048847976479211933581456374442337572392420016162427272097561540676817155789468177322940346128563514210494115770726590884408307768528147049559846781092758924378518486129121326859096859965269573637762495147879611351265464024942105278721055058225012230255283858810546670665994641216846002261215586512044151446983921895947526077516219790606539140507427896487121815485036483205729551086299003600626910055248785218839999669757550326927255562672685049359220976269091875162784281397825435364733335850755324636074129337896738772728651605346054427794693890371598520848113041470456191195134277000155742864305064451143176176825960857792448178677816589132371785917006842186025280035098939318766584633066155769760842195862856022698503816826947984991100594784883820681326616426766707080597951096576356849968746019667508870377548555401890351060110096965513136748950613266359394205806300082196958255819881488055748366006475248445146244668081303570365987695516978220258350629884015671689341195039556886424493841751786115961054689529056123282216690537577800141722302801088773055426498657701860984033630495870078552448833938257909344994408056451813386166310531544750474680980218198761014639653849023175923291267986533111822823890555248335773919166009344917902519351464819455859977572140747564542804374213564710010410101499683664422017910263252762494717057762898103341638759369542888547346178935862566308525024352125461557761970104455876971561709597902029624418904427230881368813206831309424845327274408305815291958624634820764618649098934468208031696302384150948180856363343518919891398963952586793897140509723631538150989764901387503716795099998664348306011926055866477857150449242404756080961117338734140488061356606554051893927393039608600583433906492926888963080988817397000304108204362836110493667111099125104562896119438635121827342533797000391520047320092661092588056534231486540364715666276411729713102474640228481643489504936577371473668959562976532742471629448337288201904867868208525766940899216858416191200746933449322377642267087541801240189084528304767483294240887288114982765207255049364942169394294122198703780202818563233597472970515620444964045171098457124375953094422852653935709166396270023868943528975724181676817652790174592552625323162065221813360068613569564520481630926863838223457816738704983122690804373118322627010703510140497229443943915732362137183206008872475948568485489945003552061188778553585520478494519681313524703290987028737880270767989449806128134616256981161163984644110615328980597466295847081665526430424244628819695386584994316008682259016644003424875247284735308889674067389102841716957872557733817594593545777448459917775351013030311211427977468254959322292227873238651969837151218176306743580556424278069431569540958556449343723731665642672061969216079408497384946543555433829367721336062610635913591376053802971366886188704479175603892277299808923504977320417922735118064606600111874489917916939320195738342653361910418045883172727739766720828041839499105928062865247987045773208857682746684991917296844902603898748078438722468560748910161247646190975828715380167166824679157524625429938241192906721026375701011832708067331849281324428985386003749433935709351920947264461000836092540332308495993504948231740044365681329270322907402280177030617323884280704691850298041333711802724696180107140278901683759686654109904078869473292468720280881713277628862511331862161819582998840876543075203110349162585785376797371388988957050443283822434807748992277974866615287198155398491650119328661050444419557204882641301616816007089775744305818638441181971221549550136856640595336801030973982762484226443148360198137926703500033982681444464077710162211935327113960565325727087790364143083296231984705068697355220417497151110585271754128404431156442104484750348429013294608612196224622292690608818880463704951081056152782526749491973625287874798024915517860943932813144259406510458898427086562270218519371995657189703189007067074457298448193404612930306719989464793544386307958647251347918904159530527538201852685175671515207705690767910969394093220803541146594776681144850658968175162289771578923278084858543683780549086727198483181878789069122752654846947364632500348112906134216708631927790260278860090522955445041171905132711925423367232220640373375791591479597637261192902574304393546202381174449216652846646268418309771848599438273056822682798960900536399574638963188225504228015490724160692536833672251019665285852627728815204652384087290792915713275321453747002170937534134156660504040207025512079326037368850681041817883025896771573048683914902446864619322037284473866657618194741392323934719928040351439777173297153592365894624735714996377314240460489201729278170584295275074986357098873419941344422650277578106319858716627590221319535576090712038519320299156572619050009810032761099480869030494055823466032643695691991424328764363818971093487166293003019099625946972259156816265441340119238558775597300022371481060947489838637396434308741738632018925577941767563238800374256850888440545712889204898444628578188631234487566331761253862216985906734757489024336906799794535412376361856042536851112909073963862269245966843664807262388391564457156372523623366919503923095617479570848564805215326253570872620462640434890282674761544705495701930389955115815574371022479842412566850283136153222477475735586556338443321192335664550078599281284947866909196640038792386767369709435915899896235462888636731960840724422896684170779161927761726229013003996512929069315617885565234077547565042329620859623172929811991980454023328658238207368433547986028160635600075876007991480471720837898770274036666694967923898672433493814486963751332042008751065390982624672945303406887933628000256901796751441435624389646811313603449843964343540813683060188985002454802617390659752625600067385004703447184608361919502729748539351650506539945948257639930832609867892684201604987854438306458721149886444896790592011985833791132126082135950896529679113140556370644743804332614667593947558829237122630136117697561508388173834254962225366269879539944527940021658024627795177292456510660205380144130856233546586146358626975068445302800333052762802152051389755079989920763452540008761916192642988336854907202016158022877938247274597844454736126885931752650708021600473277683485955194687163683032636910048252904423766338125573148991461443016341489692819758527796670390406963076017880864823053558375756254719567130636900696048488101951416120609111575480611545364092317251477105478010289593286684346972511877771112485888010857163281742551852656445048781428811154351728434412462347699095208942724406891643191372597517353571780212656996682411854813091446284012557798195811164263389689262848563748146706368365699170091419244977215820996724407761455386886185198233358657007421579130129434812530785537170502783345432726207053235954272729568572198031064934921354342519020198440166559746066000779832028237922763606888269147390885860720610279800728791772121676600901703164140712667290616681377538940827256463007316407056887344009171876297298825126940768533169783142106401176001675722144982549871393695484486214406310744402916322134363907796162778002855617200343527880995288560505757621045175890369685901406629212461645662272149354624239633884385158478347575136919988202278213840802581112027491827352667793899677603925478861992299923034305685077856254660699886849222172576974267300202430205092027016586519337400336489774284342012621724741770758882397854003200281920879580983519432336291611892026566482800102366247634239027869266313079855717737370762724244198892505954548642007542405962202855326772071392144248493476060128161760654606620252493305402409538635704271748275666164686363031463586178054710395642232596159107770620418681019391463575337506849441710555855943684369484248340412174958226502489638612652443458988435904088441566042367779597161247829431149334499055830872407649074647553499249069045048822250899994390565031548040319672012738915885570250934601470852315739459579385503430732193212264640572383085247120317648835345956402899038944692513509782465236390296800342962863109075837366146485922138072694800758251733951192282763366874761577500787986453130274349879292571270230834751348232139907131446806651201944479839763166029691093633921966675469561177440543452207282480336486470285841308014693924687562035969286309570974532279903048137497527355882868743343401296323536761840043746014981470784678909897079382768270527870985918823259431071909686000096864303389727742870988292743403692370340288552445681368732423058001949811460610973556461813279944821690280893898210038092839358343817160823229746798522308977206632951766516157325494713376218567870446301710071814411533764575756437820572854506559553123734476117244154006607358010767420014122189387348291025306933538811267379429490227361282810449655557506167875644186654032651602359006951472579920006213645851695362253143758481355903781905847792455946483667053277704015894661839133937285088155162902551794704873051976808675375484795518406271576160439633817654307993569810560663282587829688601948256745515973656446355976938113405420112452978501701815978261227856043584566210188983288106906407827890468741943055713305752910391974698721882486474673382140851612714068893425701182000532026054080870434737318051717688863612548354184833739796115331204908540212512205011219533559583812801209563437264623525346132305430737791689009050852745494692864126080285709702393926509320775358625788719642486703111915895985734157145532871875670209051133352208219973054305765603580857765431613495077001004989866054229764967200947629562424178910360455485204479334992375216610327875071354125886914974608587414984347705228883648090607301030558759571212611267319786381561713248115019990358684921600780163612981209705525517456222948889116504451387209255803845436174877145031529635086005356251421058719202155892328710501022417291224381648895099378494620197376044673081608819643495734647094854161475840307733869971367531592423175847028279155527004569861993457479335358000808447428810139159687108177287473405235808237032249093669307721222501372801875930034906550633947860165758457211026359952309770193099740923002361805494914380738249415596918002740392255089274295581443825106397455602649083495248881435096740878368101180120476112743379192479073649143263254639596946994990110498813952021545569882218828220872963334685368021371865610415414617296210944149693540768010992330111722877817446607343766254199557630465213822169913011720805976265793477129776391019503183591752990020669454466294367759594515899565923546118000857389642436303653149568753004892092629384543172091754994636549252428469505839256859513543780113193417588770315306480474024164404555010847847073141221757604113500263844033547883756364271351200236027448746124930745537682981438021411441949809474082894385522782873125342576401061408112596328127609693360129327655640282881032827522415534941453810414129202461570938202246730343680418823974131649001642743914785498719547118150215933284531981425290517124190370390671024541353335545452680864694628409734458005452405872309302367816666691269802591129439224654527168422499222314856048270612006442973232564743884749060310717006810557405831043512885555569234313725124710901325049523101073922191445564391651318908637496980540605224633522817708302096323871695878838363337919240174552390073299615299808885677955911736070090349386663243835730159577116291055059697399515801189565976103841722508234226101727736504672067106994278267240438310899980045545108121227073458822824693339003733649179130346173331865420908170304250390913131120234728604513866373914728863949730523067512223157054919317413629713885337785943940211582182239969394913274047717963621939348587806188838413851188707259277267131379873075022903331239737947588075320041087387104573787007252202832390525191317330114134497963070823928631731599296500998367207168714652610491177654351515418402775724279284107620841811987317207294883999831532223545212689106698228088460414936802166954836645487606806612831356201679985589758398673947785338403707330041289201753875151167384179825088547221157807013862217602771664502053160990464419702308185581045571445594446179367553341786252640214495524050867660244775560086351555411985498124865251801248286578387269999430979428676384643922934768125473727082456910647117905121229689912521351826273850763213836145231355058189293468360825787970015328109479415027620414982071561689042149201424117972739438102579273841582772209658838207748057203806898677513120015191206893009749604887679252941971166057689806842042093210862101994909930634324417694359789582345347729484902209424466483238459913943807340976041415849826468097895594559684533577864389100034984343623252897981240586988649289946892570673686065541276586757092754583150851028313704321710228801061889694764170740515558947001798142679303775792266673101293683097426660658881218002048241401074449379357055002716414293216352635068606313328557733358230366137215534238349271670015234301376650590293160358827746252288524595157341073588138206776797437251495455977645343594072823711253383425715012359328260514583461668505728105675190207117436208340998383846356672928374661188701530760417410936294394473903063893053141751603961201938164202615252405882662209556422406401181888185200168971850045132046375621180050284932426030064728814418289198776384107895105451316552362140324013571485240835672957208988862886385248319069504491231986275357587621981410661414696493281737686144302731690683025053634486624868999809091677417039079568418636429529945528100587793392571780059394610421095091790306976200993911419188850718791655243148560649773574242836273061043361154116041501753521399608243051204683619372128653938770183571757270775649221999483900096487067197118034343034824247497460963220612570243527460199191646902337181579657456000700988949006675258247820997099834925330091993288831731874012339217686016000237485090177635649900672082041827194264387448508788933904557504525533122984700924268190362161156279539342175187328817672467998239742019978489172820109410650754258798139527371325634383190290032908281064065606708656843212778853702928612697049722598166742663442799557145826719185101864355031898745264277391122180384417706013029075315726408100157207589300211751833587657941622702724734266555579503940419329255242009276248908987751982223772647386931010252189062742580090271274542694242570323038182276161557893687641736082698077984611631265644073806652809236504945040001347680109576351803031790933355538872268439312652900519803289222082642936477138905657271717267623230758218534311681108911321773572602579902945091607700456863618619110236461448934445372203640248480695741992347044574446377809259148342833597992900732629723773381541096456523696114527355181269461322023270803224842456902102027997163539998508798697666207078050275028374501341929551157811899846915339326581286438364445483297591789576198371810637357822312163569123497072299572139018528010833122532710184864436732822950170658838747533031130850607101268245818725387056892262389764223960366019906482284445706352881594941862781240230596687691831092668280990399173732862173470730414728484612910318891882331340056505920317155464395144236648663168196029593355467864634560811241162165208997066638881481399317009626754914198910526167375957024156035239055179066100544002860687369800140347969406471538102756077310340571129938156043584639129965365638132048091519306211528744741820025635479853438752933095258339890784241689212284178877362110123946337788964265904611891055993103758396968106801007006333688114030310071673569462112736777139620530261090090627372241834716782344462001962852182362231513165032142755615940537411291827145861485745631535710577418436588013709373988806002603460516753277207488917146754336547582449532176992158572764797064149261954136891768280022631570263275011371797756112080338797899082951298427302015180879180956502533047545261201818867258097098213696949352013236281784768668019215331359720489844885598527323025871469426340934194253317324921377846324200899002028699866487974528453432855036359161700273775311843837394983310087388814981372380074776517603676248372835704013683134032646140210954776170929135234534888901184529507437935387794817745260666313698968871914357601002513523083595047992590355217592692365228588700133962555599476042890862501083756737951043129993657469020762818459700977099334982822507201333867630690289494022895633906123843257301585589212415859450527932523995331254831927395233275345864960890226060297906389746780569416281251888872979298638302199702386629165107221244805249230881913801276509922676003936951759827284358604028546011640178922766919376407294127187058734793035984561059674025556358740352565157891986848735119949516302082046796576945715217631312107533815061614788997521386515299729281617942073718961272045997784607536113317880982954769381051970055654397445627143629286967048791721069258582476839927511938488974673636353017976043987044964660565587311019622706660686621666249301116822455364975696004519457340357317375675059249956344497896011877566197578115249475691021230502918799278449996021419427890968921424489272555238508262533197750571758546100776368417469185625708297894146133074057197011786779727631566898155001994453322397881608601453348483829455095886544826931360697081353576830744659946140920869636626734245817638900668729651554815953451370807103535425466562144307626295199603839120355151883387263486471549914248522789724662845410186604995022648451502192396935991541299187499880005088419722394992318029310179548314183334798664843342356451637456924980126762911540642528293760550998522442125244960077329897728382071986504847579754671730611272347856899466981301387683967282447489269834064430238235568251935003244236139631545532402888316342099948348286771786095586768743952394794960667388484228862964091346014821968580052805662298731060390306208941837785152787061955787828651574626699038147335250174188328510263770425216096283276916297145455381559354555645612732122743973140325963534824415580583179238624228864817324055038141206947699231339510715817491938047961537819626685645700004417939252242779447082405124605430896773327502971543753022574519907363533536502847953649224717155946286771704546448899908436076925948683829801555816480532098391584689094922978094603344799668925775711589961517298344406152486357437103822651040866267883792906006991616796047844635403822532492727107876070260281072483001438788046845666629121894508482265531895276087706809655616194034397967890508964665491917553503501096914585145090610099902495062661929830964159107839966501497474394290696789307228887154146787826593875357633460151833417935136351588358996158019576146318371398501905472343103964388863200218317489626126687951424168967717269606996932824944325709305034243252057090349434932393794679246488294406909458846064215821718642569440447390692055787787834948255623000655610364076720145904166242456548554510767080364323215583560291935818343685978518538966669447391512483066535026274786339471622318797045487953919025441074610030878049201644406963281261602468918390010437330995284284031905514282324434822887188349031531135687871559311946895455817326329365069624003727760992440592684073930793766984192724387300857403067791257804675852342872868310108838641767943259547596811198978633070742870678377481886943935738034083225719847661224073951915153686292768657907613330240532416781528094026531839786634527091127028600605886551638851191251898088166767816977739975875971314441233041069315882215599090655428852667864659309059614833721783322304505462672372135316928160645281505362201908968205066474938579477195722805678938157733942309844030118428771378827853874592651866736860352578935236174726976679535201584660679749667937286351972174952226262181686356889199640843699539019102130796033440128338805545552098440220324444619846105118219947200026036050177180023973603717245117590244929838567752171204890365568961665209880825767851085236009305842884696100427385529122934186747807465301664920395492660403848213764392847335236040883167922518641578258672985535519549889272241750055523867766403719898469067674732138113036394033753306893478122098561235196117375139573553928539951216258667917300770679683798620559913935565322796530436792960828072953730518726691464641782440902174989675533163970276874028694676374425537155911933771193715758262645172509188196016367640965911229458022963161365942533344112146653662893336287303828778665619190350543889898036116786081415316385356850411555689723664158601394340352946485271062999227943242137938350599973959963542551707874087948385496577985959693894756735988785603813606201284389863955803021991326514590005077797861590890357695776899366367296869840218845981494501304875556386843009776021044287173325472211792283049336205618323528596801630021099769495285875524708330167669247560603311069084230723351492476342209405975882454132308807606709889171840227113896391898396524503605253609980477785063190452969066647651108195034537684957081274339695143372614573085737026831880746397073710530471909932258488165150319291094783896536625674553521726050140886865349696231315876943616199960836264928405461475843261151897315121550343536227830047669069182519579648564548764915878968775941663361991534036333546693318672243358486016409088002113719743618315174403253482148032160814441082318006430865768560739980979339200000181291583606418899532142028051194957648678941316864571737410475760222454665900278827329659062302411095328478769572695891484189340388172637558016943125280422275207251438159848908668185125469239314111115553838400210918229002616892585299181970976252511039250639810760401812522763875012742459699132466598142589620357778559045426741110456905832881710994280410276662744678565475133413481868442556510057641461907307068693531560949240204562466498295670896336553205049750297659803296984835064364969826484082913002424694275726659391571413143658663635276017546194275926844133688228849167355521387223392360225127513251570945867567162188067944862213364048952416227191139852814867573475318235400091696359766798353177225489269232368234463846306142106075335976572237345722320686560963052758539784263130513479501448387031587591329142004271656867573752750672851132254198746356880667714693173824105250684249025806157041755250414584397562833470465651830687078009267420150593163126654627963390623625108576454196658495749359968211651177842280099648452521179546782214003168463002803120402764612590140856316141552331057191672261905038400953135538329767287550373179985095023802756591425873872506993101297680789270806195025843158216108693668306206006659309692957564333746374247006537848247520793786619803057485598677788115684989691471549703797920617513950468561510143581859705173497038004379305374745856481043405426871052590700920975619295783861662672262027564624235963967432363842636973628308213922661189127039392697332856689534736797666550704475583030851011928293950003861782956252073967247632989248138253248826284116324929972014482021902893631900682830609717815874892585497973447089675662936387683419316083385938339160676483697739599417726343884422681244589189595612902769288387151459991378310386107199992680885044073605439040276483973258553289040411764427103653378194245707961044469347830111850681814247600276004792170729365037312719019508170631732598067660320855501153625476991538596908166048434168679734132349103506170586246128962713903081060419885407164985047597439059013508724222490011244289676612255410580904760850082554898342035893194922063638792851375562776098200136832593943510745136733157276054797361141240011619920166096112966262509542703684747012951545487546668825465692296752502301561106650192990300895258439342560840525343022652229414401266208305369257743955239494162941284390846488362244831514253843751326306666368634584708402488010281891563411639507611917481606804196924299107865695654109551750734380085980708462509123680832049990002409362903850436917221445253943402038603655783448634375454881454241993219023375374385724526420675057780663627212970408920890774530952780512216103637718180537366239212089581052586562349249316848505479826271401751126548626135549082683757645847771656437846709727834124705666171557793863471187039743634809133847276621557793287923116036174066744126436002321252912634223268940996801982834385875551097355255944617145593865743746387456216464465617739200706500167797932556291505183820651309245547780564179128441874446567364403529556316371273078262328868604154558098044178473951224993279971422134363889086490774142936972653330453111601882645514821787463950027749734446114477675747787560082698263213332389682062098094951611184318300331357534930339203075252673428829712058900620775445046963033507702159165918016155317282669312817107482324732936580698057600469144840081880597596989042634354378973586994714278028728707844647261664088685978426038295246651338582482534507822719274166583008439789702884590487628297132017961227195842252414857685445710778295116135957765827772218835879356495429615564698818392067917407092011203131160713626048947824263393145481678619116163144958947640056139614980874018699895568494237754809823141166098935288508129262636460919487785844874376275033833131352932626809974451830312020939896389146761911691639625065178641312514101036065169389962575929377644148685403252502891384593508849162609618367638427889699675150977288197137294854117075243288449828165170160268805037746100178382668771827652534427028785212396840907846748254687596413372469871692572013374756765771506716231670001324361501237934575046212517716872208925829773659174202772743823672250789549178716109610507699046487655257293169336727056556883703256476968772686434628812965707864208423462447880723182520185966086695205799452236986615356665187164563708643081599336934129859153489009658296252907438784169607612472116242311647504895242180024379155272753567073149406297167166776292038831603544138088804239642765339672192499819323886453712656501269958390570576429413430014556874239359537247665251953868144195612183521811040292368559013843626671803324167879274774041884157330915020524990329773728703740731255096000172063068151754045684992036773231170622875781353009717402665324429960616330045378305984985759704713248109807004344685546754887243869759722350364805931628267122700042819685140921252202002857183472829353439133697143988766936644925973789301320087903334997367463714921854818784249104059686177551027608741188403136521819979044110329630605042500283662306319175004905600445673691296755817607253122510057766488088370195591762059924431679737767393505382927955534831433088636805543703419241806973333239504055585174946330468428101644935677214652729807925297474578259474961441566972684234487357782555362621643715535223855094454096135431437698269950676825144673962694745654293844243872838901358220516475583914782472150590513370600310842526693458842331980276941600934640859170428185968254052227494841882706071201521480289684289895051927916633737001253964523108341599676246211667069583262847630542431320985867288010634738828205344010660509960411588078576470858855795465495712237508061643260726492386200156935894113692077061444799270331333070163223104013860707277310049183130172131602444808667861156814670013006818324114703877929844243447964182002617140083518769886589755630020017573695745230255719616957067884287335389334268084149066707229961944889242220154255733843759160471371700870511609835336756733476531693296481838555107344983917949876330363295152504245464861409069231245545007551945720465322736689359976070645659233763087546565115960357498255769688840939644716457221385659394302877719169510167398759225395787361237546197409187156748179831822144898440893495604023578234685175439883718939274303235331217857639489167615536014447061078808415277814885667930738977003162055697976354152516131216036922161851675742990588205862650756451550273605140268918715151267476768589066610546869278199741652120383729954356457031599925894735451840724125970480547362809004889421008198073937116028719858992864851861076027515142933492325684133826048790229875672706153405004321040666460519390590466110233679366595435237034289375188637858923127290823131920940683270133667583388991130226429238644061008474509038575587018003729473967553042253791360194115263219170162811135103194474583073333358670705031416751692261522690523874304234518079652100359662245345697692457768912520702053005260357341285511600426366393072067996419550210276970864269805649073264480606389091436073321367077338931624384112972058658070453694155524598183256489076093497770157957807412686296958336599063360386091527256958440897390466963956988881842794565441043472381902756679445061216345474880848433616436253851828167430291166159648853926386490677477546540626608497974861868683984020246361382759903589011884079470501611776937398253917874533159845941945303733250874463036996970795197486222540018439941685823052083168457542002509011360741888039565934749118166735600406494107454106244460137600271269305533847234528567107994968681659422330692609174851638924088282023014695961610232797398826088468117969747654011410914022695788722040335558739962852623309057098745024566425864148466540171066774168818497797842575048793759551052255577694826650872198028999263837735256166955489792390849172207956500440457139485139397666192158338100832084702512129617717572578595901962188821563106346858898323307230708970534570280894060754163848272305402695784943542500082880392602999417226773908241599317678585373658732064704617045017772408165613852259836947018916903354759009750123828907009541686751672526210201795079974632470787688286917041739458526659742819356027244654861407765232871167554469631023737954280629543113039953413464808202253779128261629819290021384351350858785361601623276795414855260651665796605355347296065715045320134586316501209442144139938889591723661420455099900050563439194359962310967982513662608326398213930554159092554848748116998408659598030926741538795651810296007251056165682065702617240755094776462400798021331880827046001661888386985782820001607916423344649795698273248410653468226694413804009957823495098579456394781617465038414030327432855873237863496741051657438457392100322296278783035492892526925013915449377201339577279305266055644936656226501976449185503042376374896878544215262349638147281571576605747426621229349705413107901989838199601477457316701647148545212402522999304272669735012759486331381041970322323361252984555343906380640467148244348190163673355208561013208521381595907166517486127792697181412054900635534555773861798514635934968117199748488777755105171298281893190847267607966723666853247843003145060158352620734463863408436133852301724058635377761383927183438672335963660635305213994024293946498479254025472682197547922690858036410472940282336563852138476089270280855008705022342134745684428745832585295011035793536372089323611916883698305356893120095403224462448990019298653437199366722383390801899291162796094873251100001470035068353039270106091152152202589736644495620281851116401279163642190708359959688998728266899812974539797319824823565413567160921365898493700049725375840867025014851403348253702233062783428468264559939349956090425322941092056721284424033499443764520114909780392227260102625076472148387186932649207743647815683295707676015511475523850785920339308091198572148828634090792944558282141003445980186103328913232612693479439133575839230361282214161775767825163530713153108556292580133144448174212774017626597568743305534694956307094751861275725916776636013063528784735095011436686295939212405198256670413109158835777997106925554182541636790271113831845802900549688524531903208500048746118362710715459376918902926351389528535342095545895369448773466561022086146317463832409293853337429076826732011872987088935274357202040651133053411734023456553719895711434482217222077857974520576865208841585554731161071251975469407286915489157953381091552822856837338662842429762459303214790477778115230139134845060256198958432982674900389937740024389011411065099443809023546908633021018214775936687666606606664522832971240074227418257069538263323915636369372791431112995423691671349633038350128045273944816161675253848252868489633491439485534256413288230206721296630418695469501723338244725712015414088224234737362619839399868983353080496011484674442653331549282101855986268332577808614635611015256146379106273663770536919695456136678596020069713947940297402614300689529232261557780838978695185185337642534506210527749500062620031359059663448521670624287638439646108199479212499070555218333413364581019590299042198401119271054631084540488734217243257352174892681327810693491732387549121330800384759831018477752161523777762218473275501078227207560038309881297893581648295836299004625536754278176830773711563505078692311042670911475901348053183546288360448667275555931023166142179895775715054431760482657255733621162265606796338331002176295334123948813885532316200391706143440107268415609286490932286398804432436947204963706793268141669615241994655490726613879941382990979023255300988274343283740311048283160750794581959136206650961510714074112612822848889404065217652859653449602663283516591251388450292077202138685071247080382646418304846524973319403996330743913756960875336172152137991825495534433666381076746544818030287801755450734004269756239185066377691234356596085827001329249464346982118001894441900573637260891505382286963925738082237079907808067423699921283648007419226757182629336644794855644627444033514995849247461265806437716057470266962461295548480285764607992355693838283577183837122316137749850186704694859938442107827735763280003549107288507990928268708011053971817361520686184161813352619846080691256057462728958008218047759746051330599370467012206387593227381027292601668058271110421594829111425695930859302725143980687342747504223713000332728200102158079409243415764482208227201047004544071332693771146118807811197878463171208039480535545934689244760960902971879194041307280536804556518543213805914891274020729139076772551399128064996159850230770532841998601191154264882154607267056192515595397586229943064940233962486011272650067977117390084142364769840912863939823529486343045541895434234247406805152011339118510668861516175575001743616548709146702214061963700398632484727498380290796846337536234112316623973198362243146678967435217419181843491738034923954687819307988081366828558782854209681130757917894518163042248660103204665715567864791049700314074491237740133058380661814580107110215955564045943841542051661612512655771837582736186341139098432693012537294633642817153449346137345827378933005951988751363906733504389593852140563817013340198387945495614281700148344955461553226393906160272981335954475819802202633392151592778183334909650254217546180016915559398199437481782122336181135860637173976374959419178413618162723359622813968476851579792879259528061987590758489855628094228605114654106640913231443820941713596201609898440071837881912910769769117926934576067814284034514819781939602004271440918435786559908205077840248565472660873367531661872727942229625784914664068152424006553794507135285270023754109436511125772391012582272409627516550674961956990228688295805966026714985599264282209110339475918281232627743416755068070592524578890983650166573103273388239670632068773168240984512709181718491357782817045513310268467286919002299585100919365556604545497680080139839600792907820678874010162727309987880526125338737816607565494889206941816789856717270461901896716507901202811192584659845850804749417046852240243089271009569426086109660956002298716651207764140769335566541986639018409304720140577427260019596354024259907383656881505450431824671354605636173806382635233833662196821319705077007140218728655754056916221298668418721996525859823004640521881956519029708459364750836597737930648459069849211408494966179615848631078353701433299248351514325448737726495927650365325862217114474974799144256296939521723044566353858362726918703581868662485220213337099770998344251482688957338387814245450837216352962816048275159958098331070386835694446685354460502059341893703133485103887846270647549897305924363405608779736105336930131586252970855927866063984855043223602165764323423352911408556744129187321142720903934416371197307508989247096225987385328577575656715937890853901086021076477928492214955953342139280526641078564493451953969709327838129320464147549167679975384714662067458598537728375139148839364987370885305434536089320003043453663822990237578298042415456413473048371610608184679542890464146463734728258287871253728266363736919304186772115310510586833654207892920104712083262265487493746508147787940453600272003657701773073167915059837845087857561683503039055875349114258359809367611946094310886304364302457523648107907415946050014530058279810812566372820009904368346490079267363858663862455480746254425734164562015685879339923464704753322605550969915593801741232283479771728580124950110710553716643928149919279226956213164032363333692945408033479370470067764588693368911669810716076341969059791597711773477212335223379244976839969978099225426370511897524795277780250954200121570063132662923620353215295598247755649100364729584558086805149558671878274167749539039018815881037922333547937208016581688790729252269549049998683170748918643463002915174191785322788413915013381290449265649940918154946985485347229312302313611056087536456465624034407479732761266112679484253346311622022532679803138611418850445088027123195136774930308187588080289904363654977315559464234073963451174244062484698264811866863187352978178415714693916486838895791727918399145021597611022142149364333333050383442880246352266521149425144526605916339183865530624295161383887341222888152139330400742500096199773171765967858215233275953340250905587412838335602171573363321598311515096648613979417841541119405144442777131347984109284938495934047839502328930958014334110160016885546736868227625231970423381620076136009357475745520783857309603159770681551004511348391702000025198078624525427912648810208268488151019300424281222915115197464055253598734090720098507167195201284024530147281972999522998624723336922083628429641230118837814329412515529173799966710012924890505050882919628848744916820102769239765313751066205604475378608729105474200432933564527181441924405629397260988404146760477590574547341934444875949662754611383213295017558951638894882530746959633283111285820587078483798675354865717762925165909079580922982562821836714317134900439432478360651904889041708821874982872172984153677940698623487329888920063531228253998547313260428664225552125084921760970006521193698798368572384638060418378863429525307555223927552632144586459775366419311715282655516613491115710634218821073888095583419473755259888861267326035025041788690067925644532737078964690741290943120855621922054062361094363185703845929238834909078930758005856228406059581153752085154433677321137993848478982195428873381583740837646719419606751557700686286018096140937888342786652859755640068764281801752553060131406412431265252232698917995016438245678981183243157193362391283212571709043360672960503058832517280901866273169040546486172030979499697528917864420002177141240188339633337809602930508054638436484166965090659124588355197741300781344003626959545011825318892232983307546776091207587265576822708665925243726706442007104604374033830246974807183471560487815406514222438016257965854278534543889684984289192643811990141312685371335908305130112240790025319613081826096581129173584895715002474715887981069118487017039218112453309542047439100430034032708678501221606208385011945542762279527507402308036199632023663369700965432321831641274401518318295880865967301177246863063024847050465074025568378999907840387533318352445247507295594909773147831495335545554071465799589887871301779748554848844379457253988215110367725237626498532286968325671522201822698214430401245696724075271119157992573015320440787185174740257480460571923316583841821719056365303089158608913333640122800751649682837805889226503082021070160450301188833531051487317281844600201294467033123593103846273971233923845766585114232460643849933051500577207347368069031583077157443986246889183709762507910741786268129817136154890576770900685787054580774447505457772680085004388059218458516367792359837743704966660219159620611291331614934713780322545728677543336257766494528445627640097434683933516425811853620779884295808299778380433191435698239140420798502015754293693046115211318485994925059305334086834359202113919619289199023842531647157942606618924150969272231273855860623704288443434707791593602990022415051979870010409862412937679877010596874493561099677109795461965679374565709725587330939374942258090924314543889988166349502499779568368211931277527308420673505441958368618627160482781510715899359597136234577747476245475172977060364254770255821363794930531926453265388628895440414881432920525742524819348975527763307935598121853462873507489001240391520825526254892416724676867507084009112261059334554802249491524720919051112762959374288294018578053097578728034612450169224849073181772686446620601983987478514363685900233797796898817432614798394412370972871787634389912054045826950337508140906670556139888781060457037805339150198591296919748625025590460697255619795613392968966804287559808258945036616998127176572421545808069662708252133674336795218119489712137970199113134776584607575508974320025665190706475142587024203518086160230380819739221519171280226788926602257189547342774068086266712253084627343510514257244993785341952799591602089421233912321342470716141042245477703613016590129351288611565424216012108435868414037530257412809247357068638354173526567370100993446005796874076439097460180162180810326598106587702041773676894461033473600634127718841494611307581266291825915775548476619963797579217181116235425446335848234092293673673336166419414165403156110854344161248222326405297447404857975095238526811913803762642954907416726356771215064966995246502847199574085726252351499500041065862219001498057247689565399623065833640837498489712491872246167485132762418952225181271673990959517069938715461001825539375060021828442230732162649182854507539351315034185906481019793219779998932307175170481787958569725582322565669569655837731433856715783727279693532031225458656830443155447365489458396918705007152438321443718653333769398940052072999644549677981294792573868951180182118079876271205761151523608314366399155048879451940345335704106870837449017832882224719676572325443238138573153521062142611008789400457016851341040048075537281877487646823089228264002233480906192510530235056424401928515450541405866301839100221348862478105916759764565262820197073028434885033986811080023769340636728984034135180156856901903879701277910333159587678085134170623977647743105517562596261087953772864639150519310474055783448651093161744229211920633549156933627987604878852302254534726742114989498228307280419249042398881426018864675704662617335992593170881853812605645399725336401801898567947914664140372629807352372669307210169260895664745639445451396207221745354428300932538886421982637557076449669312074067914060969489911193038323084212994179129180282881725175811032174182056267730917336028536631942981644918148593825536413688693353887278326628215403993062660190995544102290385621945076772732347260009657562504960991307984120631825557001733971899042154401109010909688049663336018256660917742511271316698079764254677864358948001214469339164791985209151579939213748914517163924434998707658809465705655820070356402243018937926528949360796457835499084635678021852287055658239392319992117072768044956523372257046684853684386072887367864110909267844353046413878948045193369738562565154707750383559861107984212784606310929511349207055545906743599175959144827196078655141668639924268650195060918855430583388306948851292309587050870978155924831268309924023892806725559667611441476863567364481065964085811841960134691243663793502877034732082966646550516124449935085626701529693520772743067699346126196432438392533353342566419016049357538002747788241312370127952448179714176988802799053530166676850432588692614452096068735689564425487824916478215250320145659960875254291333850323772286968134307307364473721461010190179971698488261375384641353516194150884277588730114133052998307632512098089745152170159561916965830144398537447080596352350448531352668790925891648886182604164195119208499178577696427842246770892772743328576334312970440639183594287465224048477655464362185815732272337516286931020591822844348380121613076417341227784476480601347511204427744984359801065229535424143963178497199802558588247639815961855702834191016713444329690399319771066894126927248561697603025949620070092016227033123051264023619496276471076118885305516949709415922620719483055308111110169472083158887306663693079131783318065730783571105303589986564344593217284525148676529671388024347814168154522627482095456809260660471012286394974262107713112674117526402245494745429439481606892867058024024257527581494595493205020339718934558821307510537763095810255328322664730076388975130182180340299761821792235472267983833577374845220769310347099770125757074750722298310939717242755040026298411361150083826306173703623413970308701770472068825591934924722985555776574961107578216225779554865449311148057482628380612692400039499843684713125413824362734749820600136023881583715653286145337422496143278074818444921666900133398684007993173342762710362001529803872650263513690572136942452046848349546815775676654847362726562270979736726314505865366018497864334290444346951583049823443911091767752441355473253596541287208581943102619687508891388930778753808060038270051549194880197598865214540064251184585836027561650720610010980360254933646648976216856330408893162462941708158958988406274814244996329133613107756492829718090762501758447853671830421927734843695694614572529694548378901154386827588004648363909126307310468943439156229472561725758882304987403742354461840942712366583875648000872655443517986711076884397761466083408096152684897885188775246478476141513387817685775722181256323256806366131680806308862292425817833135906020543785096855555205291036923536575509127362948406272368857456376226315281279968583044274503372969750558195550111007282032590922199090242283430489552175822514903511051926471860322315299316000523749163401061588191225258737855640798971640222449476015892184408387344003970850544409961358565523868022642208037134666561543143630693205029545251441340389860127694560287391936446316736638948784904590420846895158783192311723570387706600751598255587956997228183510424278784548928062034459372003570546137829192868442661595441346494843984728594483012227381469716391322844917992563830921572964927666150536273285006179862352412429925482678755336319191306059585261725009274084328267233404779544896518926276500221064238060387044836034753203176071229774366139677018857518675971394407477908606753395203204955067047292190547647233367256831535207848486180615609157692961418769773696938105984532189540057455634963028948894878136369775553596848623620149254852013104826714010856675352671874295783740079117666812855926991555198708362292027359309129307664008689354975472506872351400953294296722246675209851975629331542973291000617818550219846095203148839847533524808992848837370697594414815834304755701981280302424199004914440320347646696894334972175580577934144646542646796596807662423047818287574292512065854278211788364420217210406710490919632156000994728000702543193214136709426879688353297178895159506428913798645998309973648130517486964769163502948325827293471604975477667036438531760321742730367140124423805057165023702050839589512798910094879422215636428256158737144233929990747037654404079586591192568688585258825310917903465952903893168423650469448985922673233145092861199541769309819823797840168727666905696362945448384789922093123126955926057220194948427424300299178572678013265885360261600121312228105264663413737864041866953246747225721696548033251390113600344480456276666024355611606142098375761236868854436818890886780065002172977311424403387756580934353705189316628689569490480730096489610172010369523399078239845555235150087315432449639533780183593582710559702298551184454402527879605263255697630918939877054611034195829341881265983122573936045675480699514996712357609886019394704460121105053818309322720907601143395528641024925422430774443879759779938053187310644858241442749573155213762468306606853593841915363520139697955164730667386888645522907635838416491232323725386683073797860046794397380428358277326643297487853895156441448650675838602967526774399304830837686644108942407570908487871634761484256923841331300803944833359604699464711981912731516630708710236654535249198931887800617888356897043428691920386747487323478528683301124822327739660651114862932696689053897902791220780419306351324835089565393093860291877988036592724186091317669626470870394011668132750774395188886112414486565000068766323470329151595434201762535884387585489385360035060278059596253373905087985046808337492915855515164944881665212877472422291083447494383918969074766466548456035298762972821471121860402172633637117514457238743141665531184229032922140789740892903552679105448302530296818758391209074694644487192702149144787512238793432520858115206312638880814706125352291481339718298501310181706558129244670111985680263818345019047779411248766374962756467815761930739688609903389876946327911920516666941667942521216742849472140296519660345592613108046121723348530011429818131789026880873675992567211280739354845470629216132147131116712284103858575317645268045807719210734250411707808236723227076864647041248736690712856867359404932845412187572275857815907403246057664257854732753879617167151163617752671825595850520245986898765150712748454925478440383425695678026720556508724734503804314264049197198901870017419685672184374073055054210807006455926424953306432940387045693067609431854234004030080414601317556730604008010049365139117278284436199036869139093606112644422207016023532228068743067884143053751173744132380188773582030995223525134508099735253047167665363720086233320068505605624933625510560390279829437749456722366844591755089160760808571216522938185076270932407529444456788983870211555943926206032858558220674418907736259328680311682511329987802540344824333288455207214518947684749696355770091953854376839373942260888621659843325118239238425309985720423503538990741643124474795763436511194953369867106423298715252056293617565726502061750288487733839814968964593455060236857040770695343113875391816177586138812315768216541489576656797959388444549972785600330849180846419888216529492446922872622526194539262207256697733045768657643541501939234389924093554101484287305637768737351401635316994171511241685555243300975554193994817470568705203881491831631802928806873722736737328172417585664284678985018783938036790395482098641045987152418996897537299733643332540210658832961992862032918314407763061394736184987604614895168723145935455181136842117109789100825112236080314782166719756784879199463782361551926643865878204974416734945781641575975638279494513152565906630646455732190499743231111040089492131056480830991834510416597556988186562759668148396882488593563637338534235232629905343194722279643644388506015241717684462817790924579890322919186725487767054237847466702498900788703289924442681580773743986536888419770951322206299842338996465765574239331955604506663839140713649810761554879224861623360108942299381302857927227677581532950439939192873809366318586176893152714372733661321575392833204624941927729179946005135237062646147474130126774563536901923618330177699022098606246050798059207743408914545796815915910600008256704696196084469924695437403708818031876151445101815198368139125809338294813043630759768563683572899298021083736606264403168866564720701904795332036681216582636883620733598820086865803479125543715904874759872396352116715827760471892394847282472767827000526519847396538187617704010939320875980276050997177140949676952304478005868505522199793605365086083539163997293425668953599759471680401115476496680162529329034397416578947156409016205023027030680240330790255561435693725356922296445760415676636423578242674592521252686904364085346098470986604675320677190812683674863057502664829796564290454959275243480918425613702139086799996035672241407087782074268536840532508468376634469264908818686155107241746171549441899602572705063799901168705719927091829770806418722368531409692114009199344959113786735356159040184052190294929251022708564686370987117640694241179034186257201540579914857647759861020328622297429610109863763666149494927742075140940236551535347145800693174618858673728689301351170931467447340816926147045001794080753291423687276860056067059731376634758883463273810208588463578018252487508376573896232135884823811341674920481845787081186338035482478020633767623873993386044070719561017823670163731576739192788955404689986241099342527435761439494055378059128714204366179489543334535132867339680558417518802354734596471501721180856421661273677217733315129552560190040259940575716660724522873476911711302792768592514609002768696123766876586269958785560681852018471208192272554391217560101891772692046641724721097528730375315489353607238430610622086022231225619723886759739251686738490399913602079053356967680402131057362260160606097949395262070107079650796336196801082334861580930638345135400525125980296691889990031944126874455512150883559265520302978403787742591787459092803488919466448658102246765001477393659793390056566668613113443830209870159483007410800781664023642389538382909174444513935960042358012313466138797698205880421745270747789203806517590670251999684893555256867864318382242380457670363880463043186180090487114766583817677196024749908815862608668648497126804561053407536388436806812350085098564134358769353814655070408455206443351071133674982550768168310218655265802886918694649770261471028031308759430294447787184524499885845309475650309377572624102604235634726694678074561568287817402998821264632932433776167019881632465582259790307099353362755420591897698745419100205240195070914104392292375079023121400328288252757892475637444342622487627251481165037890004080680885382126324606614741707201763319764297835232053765814821472399205136753224689392795568874799109154782194565632809313392537493735382114182339726431794030569778582322098492942711413803779121346413838916077074226992107909859353277786690992820301181151522401004645067681778263963580605853209057466539555244454867424933323970686217060385211087932390451507510067456362162647142964164967028422120022950236073872550756507368159177163100820259503346607695405761200861166843039320670860809387324544361075548273975947728408801087342320213710522832031227129146121550259117517984041379670941249465533457092235770729442121730588800932447355109141203074812248214134041794337288692224271232290209256042875288027581935154467713833841769130818451127943804080771931278194089633183522994516089140291172069123672789041235444525890369374060723942885670454648076781750501547177804811019675805964576869190313821033961531414184216569600508714183713730989134833636751358956454765750611850136199550488181631515790932852638899880231099561419194904387038914439601154618856390155156721785472562066445734027104273321898051770652767262684159971961414275382537181260436866965068226684056113118086852094793061404572627315568282117814823301869291809366100807657239063362910984286997803237186256110844020232190792417208854547953139228854855559512062908500546434012376153399812822458964156312983221529448980452918977273067314980192092858510723070109332787836490980054071489439081386815394633466436816545884081722141487695658972361634820305923911569447373562973751300326940883812284029976255119194897149979575940784800984148012736409625137442263541189027351933343182363819832924355810358017166503299597695401430507054610211152931975973000231937551181553435216778872511237274131248633786674265576064257520325729275483638005039011319896505647989135288639944397923710255459129757210648610651579997732202637416242645909173401372278851989952277742549724605913251756177419031133806333360317843908366227731226462231752119640965280260256217180981624774248564318930916017476428338440420950226385919278354386676482125687867911152000230973939144321547847877661927045891252903978460562426609252360184965820277684385260598616042653534983632634305959412847220587528848616857068013932969646600345159213502784162094179203777584676836507005376925370136355097749897655227035262721752438798078218624753911002445656242344139290537619081202951249204691588781954198720918935584531639317493101636837631551684919623196770562429947526269860950645820366874880716181665261250567015951502857230559888863931702352732193998293342264688901451003191138976448775000466152992840680136027517919358674214059703855154818675584951044456930052188813801874530727633525575684150440266915522511511217861056787093105228656331011063281560949545896304381208200499672765073694895768910502020416885264847627983507807026819739509323273646214876247663334987542495955723687120909081703027154662166744215898616611038046691741222365727707145604524640140496028054628086205921430277944085936219774954135637352320491130215941490371513194665332846040983506415429808757976480575656113283593440871039812720302398473649505556354074032263270585786590594249971449438049514813453510132600048670365449218785508050365674125284180219611780717722429532492302850290017574939526091620295479703595096140654715021585239145433836483940186816069080910692847255430356112084414815338406468043254185116006766491499781407191256482473183620331503814452875411818283633973275650277726667262126599532041595688331792553308198794932575603567891673430993250457565041739205083847488942130020158885119913937192509739969105146164768764797124522817910612297936137662848657242274743521286497822000440035888721568423584432014902894082012876354121880070341463086409727923404322651945750733225236037797712675093081797286873026968950063120488159956219369999175101649962276847724156263373072557025148433039697024712085531701695362711739639683012243150221808591615842063115114109622748064925367190381045850785217923781643818259150240583061042519296207328402541769410677865716799530772674535006797119214042592760827621582484223583144074552654014347250227535693732485314492067428017837477658470472410053306913483974302162084098976639667861426875986397441574463886587598309739180119084141064739349266903180834992159269895089415850203917033185697386743066302347971301727389940018003851066848435357660624795143172300573779084588409991939111101505747169932444145758481517486750226345829863103307882053030696410712472124978324110988250989084770210327170695580537280127920430545726434089348507385100430225809999162978152030208147097622974997952679226770883353120890622244293948000429703445730820419507777749367652805812106549150563849977453918715372367766375898121125242086421041058708429308445531387436059814414773304216717942935390657608175824655053723758702130853122152700262710593683895898261122455603776243360825150657630232794942810738990293179229580104935447752474069508392670280581716218741775246940465283115104404050842041565048406165018768656182311894251540584454516840770890571359673632186469563481893983454411284824012520574252760665908176328120477574914494296639711243134049539603897866457203737497551246659729118040409569932671260355651175599506937867628067962676414211214687800429479752025274832108635758176008702335341311958475687533930205599823419091885327109785630627889657423313797957927674843594472933551320532760754867686312002860692636834370538206456546355328615514863353966356826215971923030490408446940484255923919522871658076007277004345374007278318337074578986042017982136974368164338870165104730182409087303948269980286386425721576027205450208935850916707397425263450383141721913788225670113609798096997456805036604446849751399195734624392235134975765665081257114255979865671488726279347271782365238716694704252699513250439509926455870485182976454112304652337550633467934361766702321335447884996041746499856869595594834177106516780396856171775040373184116815653819870863772714432597920772138371615131352725310865448354466038993014469525650126936644774229922256984065974272890328345283193203916797377273446971671299162324172471257477758652908879955621757200932084664092343294978510782601252547312782921791769675377468160170327383790868409494332563077851824351501049633466292035841970323559407301055205473927588392027294332200905271861734665141965274471087132431517239984825508324125011640971401458470442697279837758905996767811864226952759277577409401734977242774078126867339749731104444758812361809441373214742288941563985200511082846104334381036485312005526016100864540576733868090374712206101343051411549847302860786888086604128092449037562260581793075902247621676387875899625001327836814967935259681288014166997801503433538196793663979363150464947583534214796290689708169996797697366860824295099376185311008868433797471436821425000281155863804312510556026101070720048135716624044065676252286444417899337404923716562639183007228591410388776097668685962060695715052713583837347601413196775391254737760997749944009264224522864134407862506130357608304860184292721384273625602014781574107118767905154131107974492405760196250237035241603401553969762532035910660067404700516085926163290534870732610143456821287108884990770355469832807815407516879828026735908800259825799618129200833865887209189775843165456984493003514865188875597318038239681241170780846556421329081943431540280850289510920916966591505664528208865293376105586380154404282075825744274967499678083605492654627202433075497597201719201240067362004942290146139794039716932567418937609000878122525647094187046893520261581750353378779742949048130951906058219556337485563943727019308703478321811733955488225533248414248983865004882381542915980328704824840888079960854974238840490019018961826374122703883870813306617445625402209572760982887341147110158717277899056161272676090255844469176377595295956874204124163020371188915849027324058324597881044883289258457608516852633216993146082571881816373687907394286674439509308298880904873158388894282700332924840577831248760918802524826533762324948408216973144094180544872323592925713881361360452740784403316798852712842930968506641991107008038678860422161441817081002778420136624764891481224495984616323012589060099664171678698289102704861767618418659855836774115593728696188136789367591897553465543880451625178948194423179331105042641522174200426547889342326556733662153650367764448635648754483375366977380811823841086312331225267790378272799954946403658677271863359456322741367990317831162988638449899262754087262402000031743855428819543026298835152656896713870006394315837256928243020919438128791017065771145090729462348501729217356668294004176589589502795213597845196367748904024375679700783014867585470150107603202936935020214422992176956460693508485976084428250288241719340383200106549724572960718483377858968719704040890969940546640276109678759411270592455881826722937884428601458265523722480606629257689489405935880918174308123475099586877908674378704616256319600511039332411727291352531777345094705077734984157313455133889393244283226209495064161097123621470043948246530541868971754379631979340780733374802557949302854254119069647737178885326417891227894385860979403602153245024724056566894654086508285764800864955960369918057635613216022547600708084841622735365520451799227080267517312986026937856151876391656307182477448902672075118504661118678652506095707784564900702283100310913159631601175574021656133619756593533588601236641598157980125010545810054800897857457368344970399084765106539796881958059649583755296320623812195525015477726450829920904271967778106115512858510499120464011095824571123975720300302930365425047522830218565376733680175495640119685977929493743000034051996950471361677788878373038453522300180302514392764203275735940353709091662617654323853065377428547191493927876893273313449891806903942572996906747268035053303193514578727239561567124875862899555039783994205361316095499346888145861674296521455033519773437591440833879273487193548701597777501940424684663397711806663031009006985389358264576755472052776397471325937565050517658134638615659605424534800776027866390371925871906292283781599123592821223571294216059905403645055644368293684251177480857455527065138764608553367568690885456056107425006462478196651949169030214974818372059124464339830578808116509815459848174221403495316652729180504782557303405932108922536738690940753856991904725967241463748645851277296109815045136810344928806112728559715382750001786589650639137575285738505769327087983611397544158269437717372951989203696374710468873314635728893637148342383763554192342745806559312182083401671099830096098950964203216784757041023530460804374791112233312652268886286856495549891759670051990113707427965844806198356242819760782510025529449031351169314193701272664292797337985654624329851597888432220839989404206050376099744405682270330388546629339190589987383669842929486911899980618031652518945740815297110484253480739333222718754483566134414015231410537075566017377938688095612230871390866553346905978567681314499422381483035713204966013187403668893953779402723744427727801819086459821872936212384483199913031096854409080184505144736450398354497497430385680528775878598482855665010580981105326778302933421613804893618003339392766480653796021705282426242134013672792992312713860781161562439108800399033864087308964728614227110126082085495828553125515436931448511248786391582113669795647030007335460173575891812004157685438784171868652666507732069386903426503556075497746687743056549844264397697140384376142035579341414784467860407048532563078384413608730628010906835138173890559529675983433425075452571542994848153726089558121533472204687979989163831438262197053501267138138497730466036463164882368884953292105459336389250520436414584016878916089853588077348279088740213195389972868267289967602362159754877662089899743820840694592241223166994066853928188669603690400954561760083651711402236338100609001659195764966073226843680275284476118084626486097748830924215484796016275452568902662063363540352268926978645810492734315141223098111300819296727381272159767030670916816675140519657643779966233260847013580933054954652647365486170832908458532438674314586850777561230913719030482353065378703647892993488636985604252734155408391741819170675750559767465806209335017722293659428079168481660350739718552667709540417088531917967297322014713976272639830283582640336532591390888645415563869813507658460788631149752256141531906624507281091413938118841003033962139862014904086400585593541156739227882644470118297465518108506600279372457993622057601756192678029946240422045704917044036688793570865018697993798994853928086829938773551539876459177785970569715831167923773755262575682511038395026798388134284395759804048641684234574802128832957493048887136840571327702394110333372706389915918055440213674474737333247310863050307853753780712233142003647633830027062322550549366213182210650994104544803705825187430388615565717189553011351504885842013514384482831645348100358939051692438838281263758738755113734516803364065797519801881222071352180074483311707520029219694783002020926176237151584795931225576108120737641477192490909949535795074808853578566401310766157746628971200211761434293325823497942740073594887380407651480924853606964507863453317819599129786514824980098090303315781910766644167535207522101769463086526428770390634287940885689671277142149621719237020406715193540280109369952438644790953973682363049216506627282767440341492451114406396930414244641772479530041377076595805696460588943454259605842053987961517330841236853020757330698793889215698905685497868263547548794514375996065951920663397440585940807661098279179444887232061965801489538746801982626519758293106003223711472329515863284576765351503824449454309031884217410030486231012379482472460931737753759897506909145932873499110625382433471964975798683185516161218402692995564776768434131214899440835837088748751701511163795777033280100424816848343380991291015193507961259908525746295859272229213036283650419252180471310445903631789042991415567779282568561828501898613078836123363323589586862765607062453308247433331914344901243767908291599355322351368501208195615300812219700738857676662416637986622209280599128782652228660939328086350969408459839412929947857957324365807529398772125405542784499664445549925922935493067293532844801215914441656060810067929708734263247972062414539215601988253909060323858640421586008653916146743363669389001098162343439009041763690736936142600416850534157126141853715991976195747305522333112591497796694104782910357920234688491453822366854250174777008400856999312675473796887098282107162290769188918997930476850610690919230009925764974388411805256858567983903841274215608745915653688733489727682857924230593054989940685488073333791600313734713371987172041105150073823092632991225551300298694673729791202741575497060340091540603740185161701576206209798019420333966607118583514261627209824585209431963999363140183515456732179508837776573725859394368544299366353510380232574098612027620045882986160337076380804840389675890037957720992830887831413119377736121746120887322377643763242808806357661515005914205945054549387502973115041025360574820607617451025245579421114804113751637625885340900586822319004855133356375131905254185074020564069697603717493595274402547446840526199665054505307756541455576830968717955226854791813567076926037434540723596068595544007742886461018268191424942818225081424866158905802058886208875358025012502583457337352715843328002140256451547268955909695232925784701603384299584191540292313662024042907200244797344820436140713654431564379351176471115150850710983964170354531356961701102450577758205129106380912476969606318041969802921012524936218262894010346158924240066012528874584569529467579607988712298510679983786888788622576172952704637351406525044577503123119351348826375875061059786214324620898250312903590860926121343478842402984367210810531471531727335555071435261180634114248368091108738448819475171886079843285873573944309984264357125014571336269768378493963449974145687900389475784423300041573098177926985208142140805257368064817838567847044806101814218607934701588509614552077554957530984893989721869037491366237297070365307770265841922559552087769219690297817855830317444001647176717251224835238926529050085456528721047265999851786549019648610474973429240652574743714092742270413605013605949914713724457926944196456409172329177466083293560531297691719314987148683432222647589515632765193861411891295003965324495255528969033288952589458794007751544322914306058690778103261908128619067247950173886681820856201446621200508280577272991595568656767383027305623079494476991639521475298287880693315792787541947844272877760530373885070491158461885648673336011323373878620014467822065613991124455877370376369770202501498084546736031887606878734262497777065600619803285849610820920500444932458110766616539825836571907198280564065947526070791535662218648448058930694215262154983978476919918370315863766813518798666195125984138711464179292859761803081162794855348742211781476186309824941928335363891195201520469132843431505821893694858930523767073009566916989365019669963014061361177418964781505981097371131362213137831094088527624243518520825616953084616192409075891206019006669269216398842367577009903771730277452144005752049366172202333791824204644049339820925103969356397355328736975106866660204907538164409074996775760089363029504015823135144323941597069768157410636968557152838917238441479190291835347448664993689538576882621493368184432883234486405892687732968547343301256495383702492765733519942322032876702579724760825143260009358634877738540103169497785129683887627195122633221936565903326328928785113432129831519793631880013146627629262864238692291963341291485571733847920175532933580674620446790870313997249130303275333472473059306588926133697991568942195874923918604848330139536802542783504056238218832070937636369847925908216196567369202830199906245138684382635233685542872499346976104403044977941569907676413894440269165173671628129845497247297965389045161500073017993821584476381303142822985761138596061574273498341150474010980956655914632700521975299240685929162381530695672993773058574968300881786332060967833872469527687696696539076154280840291915571128012992420765541280330347741442797613455650770619841122572594105471116909458483930710549134505884321569720974547456774045814331569578784172385842271312631094592506241566621498827838606663278356838624693881265249753288983757867739728041032030648801285548585032884882444123061268899142483044961178755189703242893215821548095287477830933021160787130051992531395670526335586723829213734996595495708156210415567261121441725907953375587240178086378806531752154797225077219396217775203133680692693083560117639396383148057720673364259589102017331771536452418393961907556383845631309367266235813486609646248937632136010584178115830591639627823995765110353432300244694757201632959333200901933341913673919816389887240494952883088841376642481500061569531062794026159499489482703731920483029952128420705329065556559270095212060264559857380052342487520107493034157228412578704522434243323799170462815595885345509067675645121112174111455748237625283508211270369459320638169125548352285865978520003729955056200903034680518237180274251001776746508783578632115103095289155852718198798102470509548434709641817172090285174293613009715351504714971208968144494108035322012644251404030651843896216390733644700307043888807842300598125332930241802309064642831086307907668039209306422609553749628150231331087024989273982765849890812480183956207666787256370538923568861486126029168717717480995086021372624673142280030201612089182680506854496919724446133885028109697399941655198236239978322446448991395804274416765579766666087152523860521064582892814032043974254395994749707197692609324234012434416609848354120267402659154653027372064084781766752859090930779301954177130261645131249667420240962536714522411488866252551356039046452448574052070029220610117771920357449360318220085001598199716891283444225367421777759328453214432875610092343338683801659037454411639128160319103309606120295882746347676304783155013697443535054527648912470340103502874286402373118124671546219510902336868935821399111447862725199373418831233953272740492359607548123464144564224986136103777628174343385438207109873806665123384397723590573064478451201134969260527901194810666536570163804379002929715097843794841810571031455596698304532213705773308496594818604619641957987630994340786020750778179786896751880175646053767925656908494681114430585149889435289613199139598168830345952941820136333489684617006837548383928987315812301931901163462088237818360550293858992084348654696677028919784966860426093458250143942399654059959204563696991144312750384653312366271971968745239826643360728215540776782067306531672725042146280547325168098784571010592185981532681759338661003398393330319832230314215647690813944546494893473516588826767254527284517359082685969910478286378401860896092860971369397471415904922916856188323755390399455460636496536289397471697552369227589672315424267371322492644547677038001840829010839967287416689168630738221627644091927849220271378838275996451340904286835490862214322033231432392060909619254599259955945414716205665698360941407466661173444626168900066585393685613359862215498034881690558955709502000377448363051149792187784885165995683354695096841177315348591894203274041750743294293593005723938947437324650987994032134490781725150791011202047457727319018484133320840843917365287963619400014999831520247396074719109659996894818900387729697324893633984116649793158358249469258723324697698227730236279550066582058588763774159397230636274362835388364236614430975712925477386587802103895346099436253850509443864097930840915061638228728013377137091239358884574622748304022040147209018582916584135826453320971438711608127230050953959665427621917174885130263279427896774674120761836648993471007116469364591492776971688323312822460770675767398048020805724915115863749413529900366218690136746612473880512066142331027400199200845014153912262862485431259389215001721666385596168192447454735109320257968639710512725834669445102137151298207956056619914602610901731057462636146141692476848446605510017657333526481531649244854039536037841357947450944647460289640080346135625357975112698033113095450804971672189840087393652937538888015615609399827605867086364566340850246545638877744104294439741812818860747407388918354466114608317032271185266707494221443903964018683652000739963372817022016085207218238645969243724365215614210769700835473827889196221500177571244921690409045340144671393421233461464900599071023063864195195786884261148200031247349801772003992489044429638477553034919753012518828969141298003940495703998790559902727199171054812408833655715456271997456297965726346517140986947356201200152107715503531599897154454003208318614105251357869442705924833035053078967532570269201142472049567083780691216274655238646455491638373794122171632620973009921542307226452389930430474465591500662032573081554870067702413802874145649039462912897507003830514084878774867582541440079562610620998192836269532290982545327686833444874695163186257598310868545837552442724252347929327763601845888246189990586941045865811847815318271296946347880581900342163995439661225850419539804445583075940139529527990607848505779415660547320164995692925128356112372399398851193038257621655962934940289806033270145731321518534298587952781864622751966654318535924497509873871830395048113958814593669853103878523650167666882902792458218063080107639961074762221979392014737755809848243952420961277182128568144100747432594342900568196045889429869445981783865860096901646350640521556708793459530633523623889808924262657327823193204460321222561201679598263117381850140557518319047928523273563605953400959430275895693042910127765402711249792132844109466504605568122034693312283070706858792196386070730924161199026052871268843033873419609807006381095677964383172286036671318164687358262806430835221967036877263705843405280094184985229245237036479106751904035643655813652998101402269874450459236459360604291556617657777344514204197770589786408004692528749490661369331662896219553167690417607395360228238228215982407004064025884745283065612585975034378297298093076880691948098447551161280845955894354551243350991484918128996000163781059365240454011033565283913460908136222939053072530686784468088195417103596827275049024605181215852681050364954114070116111759890112510934662533652059991206116077618961659073632086137309297885671740007676087407298875778154148427483153034522442724861767272639197718845085543373283507309679681143247625537204400976393771187133576734486406381761526100336134438313589528100871443867407237999469177581174748522139930201858474694232243356328296444050028025192897688301431857944470517230159459251544272541109393960658478511225427607785691707790246735649208146603473987256292409984626268227474814568254082147886116816728641449699346580270654568727193582241203132552205116137862878964784070189436066061854486795915869522418939942445644964568641540327408503708556655856496159521313242273297124847196989263866274044043572167494528344001982198351146426928892363775346845456797971173615312413766279823180286398763753714679250076547487294579961457163081712206575908850844688494196244236412905050463244581753933375644863131273831560875669416454209793535434004616602642465053726535334781257982180943656008703134855379278220950891560998252992680385105791964822725501227038111375573398695420824720785086540848754058466638724296899918915434923577286705388126608439298396916955021241438667823816933531381512301490296171612978932525592278029634329675756664588033925883379261225226565195949312956188422828963446179469219572983161067918327588427401283794584458621923913099593797335763402237884648685024348998985375194659309933837856427048087608753982199487731748425966244724744994505572202396680436535288595616375056844668635539487994789156724783984448080855505320556751165134655546453039258099722503723721365398330516498801159274909919093705835744158994681200123992953510172200997929370542578093534387031062518820643141674229117286345356533716009548902039360822326334538295249773341782334684063808063656203991981034812343092688918019719618545245210619737004406515976269221015621104432255064306664418708081219480487458089113802329111941889707179952190156457130190212560625657912341883229979282168451162165595546364951368379649084509379116544030790782402679988958397322686042749710046354573296198807411472590755526408552327675671756887446984355986940792240714029316288344552941920009162193004535881598714506196814239412622596822825095095273924570643335039887060281969344964678538911348408479661440249743964654577108443764337169656073973257710494904157166742226105673295189048095481294871564177557353325378257981214094821678211592694280965356281355601443692889304784981892997546296462267597814498140896621059914456703790481446880237219734895601590473287336151867922293708865269208344992225650565256385914097286011075708108949530493923665428924541054121115499752242584453247575881342922921481166219487079161394837197543338493088216138224004115259725873695965598201170896645775949862667522787041507100195558128201039518894713732068343406085210607577302389432343808663164761325040562790190756981054705729276720609046385626279888705811254994525921700862225072821360666870627487191440692715434794562524783453116860881063150106202038619264058041776407380765501809233371714950844303809633426023530793035187205986946299698515464856389196788945653972256594313594789141563634835928559734766280498926184400091575903293338897103046062518518804985165545455299472437716340396470712498369889284076594305087662913470571713222493045155459397966674632020685378804103721298962263677827403873340753472698174082465681273352722806754322461961915950774675897747997864735776177507577069956216239610538343328012652554498403285028362268934626183365868719129470586446391884264208068439921495674712869770987233297106822016263311545391467276892697908659104137540828255021549716546408057605894804578163491442755727119336820165560696456692777617989697635651004949355235041068837649241800812815680619817878876740724943390406198277131579660449471932453498313916471630636569434747008230875586718573552103937016966733162889678733573911259154116558265924081057387909082340136584920691770837236547454662068557224321390177692766611932156237135236404794045618026507240089916824487822556893199769223582118399679839198056144126820190583585231981033501860150149816322737123268300653656600264812598407513873292578384909202163759301080640714566854672687440886601302689286931580683052855769528992117524970847062889117615859039805907059022787053515050456410444768825300771550044349662260771151873786234596527510798006575598211926046150393163010437662962688650793487073473971155631934342623029481298116134434558974107788787114326906969752443923512342192856553244999873979531791916289841652426323101688577702660237398323803541728500189385173469815515063452191678146972250673809341206675173740922348954276896950430762805963126605276629903339494873126002271725355603002758836766463993170454477811533052614387375397428122851631715958093767029977959912869828836797695199035524113512995732450355672643324009458275651168325384234360696475824869685626429357267937563247517507642232666408545971709472088437570254122517152070749406717078521671850621316369096368496384148850858141003840484065693064392899236170418924129091768487117356148627489127471116299887709115890599520218785228502971560909756723615016816311541002681620240233824487679847468012419056821400115170648734519401078166086701217849589026084406648283419945734552568761341184667508836181322024653110995159926775077336527658305623898221510884883094340990901045315347695293296778034884610004953720046384652168989359957577125168493134809101220326000802073506860909572416153703900620090025744787667936110551252796438081758516651170007551208011489786770419895315155419025770275681356297710309109198241844427878571619709201221372309087867088796201131469735798755315920158953044431005350242044455023950137839406451133852149023106619462831145873457818183781337116638549955596286432599818764185729644685325591106777197558929252698236709916777611589629708078931267083788019644228810754742763121673210758865691570808605948677536456289434848728613239062174383731087315241066914853861272182084213618427739556317910444322058011516459299683162534631587919416965988466567563674150577143183535842871658268285850858165806139894893070400702560303874727305053545821445786242854368185811412671916006217909982175344578397409932222539669325425589299870785362399599163569174842341521361694939097960345751454227944626328297725088271851949548813514588723141862162120022923079399588726022163830230624643036302058466799722002304918452887373587918670742908615633616571878138307957520199356353505096685772064514562113763948131103723952851878670026946354652761047591417608600956057662142111486025874295287787779269313692605330278156477352434469224584281390943412572880070341706271151042026562883261656669524811128982172327030094986785738859400048452506760730389350916524802395828976321145859428016134710836786403734331839074265031482188215063665664533487273516087766817533029217531958067059531678979194819422304613229925642259684225689168294618066449184581069103659204925038232691464118509708827355571355658846736589830082448265394297902933089825330465137687464867038632136344994289531691965307045218786381069485827074485653648892127999256513759303720721422901597297702509522481851756881340919063026346043803056233987353731342433551912036614105849283766873413788714026423800797065972819276746807985707770089826644887006272434281903209687199223227789839145233499016681902157379293895033586773067946339251142726284250953324125941989093351771928108543203479948701526729371593073488764773524841693815504184574716164401394444013967379732204355738107240335969835287044933613913646536214800016549504286884338787873408625557634065091192582968975494486999749423187803989501130073272890164379698911819680645255611085965285443148575813764463993658804778295504319533535053892242972404723041888102980237112013439703643806238773241859934115685110355753312694217747115097041823498234307325866499464001687010106542297798786755785395201055656071106113586208975918924842464282850089802937187049080288420274463574199869122289016981017057190234628000248232110542002288450667022560239445060421739796686192745738416562937227191576527434060907099224255455738800035159894942553768971156132809066255534079848699889878803831053997507575538589061164825683768244925315898388659003300230583616731708929242446150827597195715011106160583025120748096199794435865532617685538585284929092207237728840110853003151382959212699538186338067670497569779473738472732227096249175950250476530651038954544580668456365657907401024964629604913950387052530216559457057825052268949665563467569685357597953055959515972539523122911639679618984487958405899006138625599587058436402677748494929680222528522188270042803785342994985948195426121530209084774502701183566991393501829421966725531438120938473198442640936992530320253026258711108850397160012451496458773107409153427857235096686347997311914213752135618226973679856428899087339668782077588480455510204956951970908526738473855754319077712606171436279849066520433844194159736521363967698799611196241393193586340659697049637853208442378713620734779495149517566278237778380778101221018751458020452297179885424422965907243510758058633261456255036607644863799652145465577437248561762078144674162121700049968316184014900084318815058819283583581249066557531148623097289394459496951139479284938454833640795274496820234131214657807258918655020245239356523123532410967450709126622013658869669051231124245921026383199506718790668008303958799125595554405715107894575954555616330691130631969000387810254458866530609152981491217253812129395498039212960436728050471823294190511260207753394783469177431369793118189315580056155868650870436859348396438369456507659036687480090026917219160747671241161992861482354897035404000285769095797720783781467711910650352307149616871371420536428935432124741765538067741585228575888291818921928075575947657522234620587310254702522328339211726201178059208229806181708815621058741591159449145034251204300171664180587331141392604297138954116849122419850671003026860961951725580303215830350386055408251784712355925910761629508661274678770781541954368551127457957585662662578870724309713712577521098547219951983457678959805494861513909808848200734772191438637999308118714448950533778812543453141965507761402679688053123770322251117092872694582204243825075391753630684638874454244737244445746682601765658726558434001518906996657965211199877849907208116446692139563410465793553993070896414523287975982368404727444185561404021615632527641341994693845067392529995048377151196421185999505603789557438170985403058628790175659160946389126588406841104643790922861918431493749221449727925590049987708198865790177613229509971349224763185040033430485178911227312926970940438416891425674586231063985537834632604727303514748027439934991145694974810702616232654153075917240772857652407521718915429038259963860407641287443023782897144427909135847748509734817942492011471505434033578853930405618425897777173012959272696032994900043267520228332990848393424086811048986985603738464791271527104111130143291986148065305039051519933251344561813134681583024933434351387471503284824621630484970561283581539633206418061089245639142586436094487683279709839252879000316089648729511907194801686603936181843997227373861825796139107992712657298299096147508772740387270311817204360333852550773288599107020005687242003969197867080622707932782038354905283802685096036409472435082945388256230300822648844308338960951248396546059864734103622528928898225633397581647975712971549946082973050343512292865044033404654586128198187186050085995927708742205627306660869786870254076283928587383148041919806534319962253603076461151694602258975978267956616107755604835442673503746378442473859769398902952429739388146544824935904512638485978134160436430609791984941868003919356967075606234687748345799819577051153922654960801901077126308574560116251890747256522821508464824742719932099152802330977740176412482008973692369159747385660117245507352338972111950819931202807558851689925967232527705568632796456994678948387816185320811946143874429757610852990695435768416981599503646819575051060454121129679479916602760562054284531079006964819083286041662706605432378176876242498975690914181601309934437480486615536599670182999369825125916021770968918014997216573978997598332411442485466335767342832086466463448303752215728966453828784507468681188959512324935696601023775247420440078299410041080229089922016898371724305298062035007754736368548671657735864193986450534379937330670329636159796095270861089956257957860489563830844949471160105730421070314212872517215085295779656871689556445173178360367079396364733527154940656295108583842227447866188284595301122831255771691758927552497381798392176033815088842961909775784705678959773987721594099724896501118241605519620891046406076614189043429786916057120125582857414578458033942801151381145096167961222115420631747307517593358928516042607651682543913204463960576244696689513242538266743209589950401647949396148136461891491184772575841221171931274267439235242095321028022695076584304026767501885024546768847276883266140932441370919702536559065953701253264354119405557977780407810287252724394248534878021504290006625165295568613874581826384399148015400417292419473728059811653421507926727630737233811682435461883886868575680213738964665535034381440139638881498989990168704220054065688194632147057761339197651986003111113370035302485596437207066179062819884355627672598102075950676219928178089636322692656291086703820467107229729266395727368948984675333750575474016328193608096543018092299040754508264302965639149697774004670467340170029307126470673141349422446237337047972941475752368358874797650050306805687974160554323370497463301134655195051585170412518318436657672102943673675389834786527721603039013533245391538885153240100885768617953162991411599066297485715497303044165392504743489283708539963611964105576551183947557754571262022769497811459635518754253403825201955106274225042501725820218086231077668689155289130821573280699041633670397870754364003874501322478672496783017229043876369543579029588144379880146161927030986137578933686333611441171249831938342248421452029750367382018042629422294000111240201117088803482723681340507463290567199164737660869229005328462365466150481068868077850088596951267556667084544222429385758708368444861710027533722896238327737817261529142260848520657240409916079685738879240845937927103784130938680388172618635060610812928880644935624601697644021355507370370358726151757779748807736239806844946549890859084135238581540501879464187642219169817469319605758159710262050253238495165839218012014026856328186563143893233684614001177662709642139306541552848119630127598812827390915159249693801458520110929015902826853778053339418852571948642371196182244929103014221878911213245657990344540403015082697523091734677484080633475733393188202537992038563766955705971520940474647469498640090607782746795626444934889709852205245097830887593208250765983613461283314757629719243795819084958578048235906736986682894034396065613070387209211793942965169330495717729258705413808886548631863599407928725584843310772208199862948220236499660964748855563599107727588501030249214140006179822503055317441096924712311044354513491261858143440036483259733837702052914599826917319128093471305992919678159139022541203261958079383739249996071633710713787366551733855716354198265388017465147196233764403101292447395697241018667511313942370348304295462604806350881791031066872740914302078220142721407506516340443191890495398071450473310194835153456302623232547726202048071033967124810108196068717217151222478611415874608612912975279181599884196365291361169071522931603439917591877881026870563760378263459380242885887479162939761402180437270442319221942411570264521615655656107368642426172863363201386875447328935705922847615564242225054792732219565188775803061665467687796313652001431365024045291117643356539386608103031189006634689188553115802325147189113734487514505572829200767544478480057253600641890985499697861345366367933761360209822854383135301739031240137673426973195259448905534104059662592442836657143157606146915574738065910320552670210837230182360863312653536446675136285010992069336517915583450012266300442188699086404700202170053460731017335352029648317263363095321767485020240527888250523593251890200309074202589978564870038129995779906634537968784314801640028052473507193538207077173782138868702198926784039498777919643311370040056644372173471722128388667384047115251806181229767890006325874874851290286409679731904422124573984736569251094073643642252596286224857572295973855349946628814580810763410116582821031414499116401828498212750437053855483392576582310443581164278686724598116886221698400782635622714067481887971136579548895920223678274203344434852964854463915281249785424539262812798924678635556242367647199013527193449428464756284990869602303995078659156210037759806368860458914351711200284497455827141557819797832167063298214382441960163179276363740638920981726903432867197032046426515853897143663882460066435387871862288030216823399070044551917170676717331841929586738353085033214384035580387343494192108919635044538605841984780053236755994811720961480998606866274560999244058213824092236772230257531008546631281929791912725983812596742587132198944108870245605605063476776828633019940845029937975111052980818015038079554833208007757447172301627074459229641750052071243158714185378866874398484484824418287591678048662659040237096393245544904879866313551553052683739020553997800461596491396355823167848068858090325561700418690934467821460704959227678670221298971652251600535337035779468235739778551963394546189252319081483871948479161430081862031802593226961535003032627922949485975957555785996157448173781044645420704392003847142123615505064656530884740742007463187031860421417302530841011543952443494965800689834933941427903328272368287215945631216738517780395245112118623105563188211203721236515506786305390550105022646676167818612008407976604403249110987158574787842543161013516807086284627490596602972818119383303146474582709455303701285465005027725018604109459817565985399580365569278325552021512540076118527826911488529281232394361373676064885718800497442968368781644554112867664299456673195482060071711893826259853263111590904232640732345113625142812191949304476260376611391215457844119017856477608223642848826290198299014702847806607965303056418978759091215412631736911986586412049102611791561913567231905958212488265384481687204115986746259076429585847667378016521317730887356829641332190041341495173219931654565312820274492795995595954319609328139317512801069581687691706497581064837343762390831324677377916517176381298157211722532377224420125518756161870206804143817976777091048095081027507663116750788826910626267488449081829096543433034187564292086430028953728529856214144063442327359467531420834923620273319190797345185025408658519746428150787996817847670401927705562181689281748839286207475340485185993687415713133241675367197324017818143614215777253957498428387547459571361000887504941492400223548594567983889970295994189930526791973664958726355497069488936918513413288345689550523953001875447618199621562495425991266650007358666462515153190454424456116666120465162716603819896482452102556239995328138459255618083707483956857679276588098667233398102805471269904441604805753166321959334767319010109566331534443841599530338877257104969249656129894677142047455083509528087540870570453530701148203434775874300061298530316968761462760425177817481231929123050442726544708509861730594100302431538929737563837634948263982429105377394502387549683039325854310858711203412995574711487898302274651195873388452948911993432125452901131829539705199785545016849771515976552340312535108907966752666860842146466197699887492450045122701418880603048463446955300046275374524614543243067126551924113654504468267463568029488965578741575741234908908490469813705643545606818185059823834564436190164579503547613041739640677545803011224413842405361065946887452165903836786286086200856759308118712503495927522376444116002218583312311622111588242555416463019086090405138229850339093312439554458312027791517031044789319764251753188252885983846048297758073431098843384447943364702789210991789698167270216250396690630985098953981960153298449073051294479190107573864122181527935375850397683203657530827482143428196528199767310653544991649768356201509938791512310742004787285233044823391726953877576139378060623328479588299205228267238733237776949924759077942290619499045776632676567716765940545564150591121513195667471502359175557384550207629454888863292628399085109338223452786075377071547346408342291627370720063503425217764997843615602879528662984417905221376799486915047103334232752577166598482090649302742192416069347880295033799403519506174573130886442623966164343798563697021822567542531701454264795225514610494558353896124097302620453520405403444553190067743116403524483421845328505006082945661932138517758638679834834438671621536482566184589493434812828376616805264563162702725661349241923242024281634881483899463109699260528092402523864889511466617244617699286219642771802717833295518301562077849482036045697036547557040394980065233438184838034380526643716929716382535082585777846115608775980175652732600361934404033239872122194653788440197462586146051375317978353373967382335508357362243501319284181265672210317717435688270908814611439722912625444853978267706597701566677147567803278366991851889104223634328819139918542612424238063572672445830276656230208926333868182206738475913447361650645697569155367127539143261619871182173194473092239129158134708615164039269786000714957066016740587126837932947956757790455199268995665885415486502014926997056237208609990709241138717825130419412759333917239398471578833220613335545705957867425315063034914252395235993529627893453728931851142195786821343513064589729280243185257648536872386897773639607494609891941093712944006781006724788661959168786113045866537036420719923095841440706337403073356909429265769437037880883180491923678485808222895723708480461604156210873449570675572959483063499600152546315527243780111940525238115892931261445831013541169084266395607670173284899950627472477957970995908851166538101882329621724770229783673373599035468743186901870428210565132169352698703560181918434971552362167949408483813074162055139723476305267817450186673392460652787446890391472208484327270170294297151462091422402835209910654036726094010482688354044391449072058027754729336296945017445741811021461828126397051950490283199005007844126770035445303744884596702492762270748439847305015485262089177045625879361718140740787754475815264914846213866316680535815762782484291438447064922829659294891052501496629080595293615770928752769445449834267206573859949118885854161421148820775593099413406868041502422159894874983459489492910472956522790868549672690683432062620302684623739663332756038227562832358815146241685453769727787675377133080631892440769708351777778341344190145934911890716317777378272225196464786846344454699094143918447109138135292844990151087789476021784994013504858576278265686980898592106049941949393271281469804207969395689220895597025738935483595554263333016664723706263390022118382740934985765228824761754051976301225706786223190811868199116839218838025142979125436443059327484126106428555423853312669056507451948201359602095141721868290863673592699895670307173556210945930296053511406980414433333641598477189243768851369759999721800138950673381522218375624478302522838968093506734132915549293912718924557007930548392789394932435741554460195830622421691091684669769226646319701087341568153431098920690242133076210547588715565544000616798767940802041287744449978709428739578649029301949956763516342655244608553787659861313918444731971439768795477161734693835984926295492948853418996972155008564194499532754888413059969375372185995779225247617907606179541983124941648798465904444769868314517803818121296158664956196912374518522473551996032848634137452899934456484343711422878687231865707479409335956315315742810256914690893186095557456779194735722162301595933627547771351785801716519877360115599503962108445841985241589694469402281636543124114476192529975739190124142149772346975192016671721888981511716001087002016048335913817325868981615795964835003024380654407604762815655558782991939701398878694785685028335272676416257388028673607212952114682998074292081291923679363779864238482028237404508260560731428616089318922632474525792845045844390310066901808579665581158533002800375708174416383312512218015644074469392255447047618229019834857186178973843813708612082978421848012946566719597450038792093356633060937646068947329187218288750350254936969716989072388031733028043486749466350687417016880987015633436219308509743625169414093136125789578348692348774865290202923822748560121756524823354227473761916504361617051309107777225651053493339446450306402942206217425797442579474491402669076492114371751620074798788095570037817668615326292461784732948194009303130544416234791781869821547482633047157111398901018021735256848307691828651818891421806280280857970897156115011536120499650016038527007128795763736159515168365582187948061362826011219350524104076213322779268135360242922527737933006694921822290040179481453838323377774551915126596534165701694359325189023039926830757215269280922625042075873388581209959016047930093515835726442266465257391634386015151815964954649098016732258051270388271928796258527881322151085022170465678826012415478783086782686960551143059099590637554902268024123786678521080843481793931713826261464678795167514119045058273768688127586251251170340630651788977711736756260397726790769939506434002990262704011803788183287256862863827813079447129108963637323299992604833388354301354130880736733257646677659379808954987542164269649329846242204377569929994604825276217669494589082569184072022816355599577372694064622714634382968838787783776587413137432878592639683261300299852099335830692492673085267678536556299450750933941592151045458100476668716499729614338240639354872885808920219031877078185672641091819820134834746725542664535794680616628680382880788379810253244912249793655928985009294155039198392142077989654684003033389928965186421877735612513289937347051995287307514419266649611397587836274034293874033068393372286002788785183209841665408725398236709892037024643891250198535382048876093101245808783812711286819143751006361375164446087354321041587142050621202732852973148003933109546087231038439413640253236672291443821709856102227169395747075243616058939912307046596587105757801537566938915286387906979136696574393931900859082426174459297621636721943755706268179398838804635069145173542514514401043274631694519435515859686582979838512297275925493951939567182898853642057592968884048183116125467977411559553233811709393776014916062960400749377342887552901198118340567442579206046822250361288659499127800121948878327740841372426017993610399398552802069814563114116671179887102866192483924319312610446201036503072222563947373862063507782596760218222605618036777821825289285592583879851349850432849921684714187980005750071120067542936562030367779345380358160342106645094549546359317491326823222744524745782027143723374543583125663039698485081826429263803745020813225246218873632228096563103621595259997435135955846561510189440387224337301341985841262813868140130909546197668241532981860989982178689657800969214611484168609733668169324989818022903726237934627688529007379397981613749812378328387096826703285490197319619311788956155894137181765920754079536949990993868499167434205789018280278615175024586958958542413038587359732083275053068206724504895527299664689495377225448348466349457901005408999398960930668418732153232038120831428742548187476499450535703479131890073403808405389931180952684250523620119749535234913474689293928876625568070676689854480740785897201440459945921729078932507723125393439800288598275760383031970036966814435265449990780216188317798703075111192732401702725615245458833543217858647825947074785618635691907021755618986687989894387704890787333167902609740866435466622156921181763434540052227473488683608761091850809469283494869781953678432932413099162686702625361645046786967573541210021828846124265961477330315489325493997247370836392650243839040009319559920741480622853956510247546926040393718206665105144219864547778908147700607733670021498707581244937470001931686319522886855003526571033232348141784056057477044574775521467729836657714291015856625726970822446037166831683798498015098009759631742425145609545776707753156162748879423323875477796012929293948698526249616299872570882059994937839122948220955606813273886706587768666582694254753742733157164625458112094826492060529819074968418324470898493052916895142228714621643121019013775924023731272777543176697709672219471129643546209563159212821083095453620469712183841672339863452437320165862283198117482451549967631264474788686445452989575027996635232320266653267131484957935219850201629329914648643277431820228210488244251597544160728050773614706659946810172177431019964894061383764834882725577293753607542909471506765035404658589831406294252887874397819583297615833354606619925975762342619349286506307821599371112430588134224002415677429436648809235426696372720547098548058714676134571461148975218566503117797338619477696854615779442215552588154610883076926389798668202107245236961534623851769171761473087613124482052784192951705368779826447038937251931813518100725432077250884289615306020572592284574445420019284370016676148072615953542780326916240588853670494760298316436279205194852834550081355479194457300873805885416525068461360021727161893696678089540558009713933063659155592004761663902232532026334895951928187185990079110274180921321484873845201128390826447014316717944195306935636400216556943213155512517201007906748066610001151369803067446433663455140726368224700836582634893093416679992872406093786790888952262215903425437445759685495202013583478993465111722991844294910898268332394342988742919699080130868739335370705315290140673929333511101103232274977605234982632031425056035549146966133948411283960412276003496542171387041527381098797169488957164449632013737633386068344145742369781012855288436140112072634226085918811963001574055255011870842810433577081162393120366083388472818503361779927140097360479453987784966048660365059546802884402394315534910438778702119519310032619637259770493265295679535949558983000692680574617539892392586259811210853241349884525221054368626894305713415459001985539546402763249413959398346419962767570278824567562435487558858649455089193122943935772612040140076326369935992483614500934456106165493511842673530111549306032882847015969779679375991359206601835177520057442512738716615008062338076208274489449745925150695235719102912895199555463845922684890703239616044464056481885611653859836452724666964553971932676364895546096441030878461117342732285184760017921688325058827780150115707479564876747125144885022623682650641756242079406218956054561034737831127654209188780648936897994472085843084646245538738864776746138684225589996535528776017514348985030399789645869174743837020164081336493163376177913287212039016156847661839855748816340379453183116861518608024949773711697911110981289877553630940752135711911327640174902439866915482493867534377258720298427566948914678448798069754644346419657234415564562394663928561805995311214527151890937596428449270709087705205351248822381962845404002159368088383487199150902726206858449115123181141857889202450846089397550322905487732546424533943593433435628124252745617008156975340706292534458655220894712992797301535199688010395534722308402900260177483671604194487490546966361224661000437701661176627858475424863614162164911501247075390601421818705286405034440900868235573466745991972935345836195181283745335891420108354163722261115470861459278137800717234693184950252270781853628917154402930564517692943814404399613211286782257129847666488829136128346415375331755107471805191263845390011056052952673205012184056169715276536776755966682742354720905751005072533465118782989436301282060760827861452129996751454554993186678551973723509177237762308732337518402911848576757763650435022039490444401819194575484783616476134772892054914899326171015265379501341945425621437176419305619839945608077085155649208838631460059518324530010667795642401342337086083479520544831049546120356332591846107708045284468850557043862981482892573796949189017468152507226857478370702711035178376691773375154045068588044709140462784592635502840462278150594513657475051422057011629714160915767485399262246212474786714077129467328148129408900875724703842555181717878542815256044369163487954925930977143549769823678118390638240360772557491024640804248588630562055227730781506870501863059662679649454123133620156924867116297084291837816847704829805343214476538586458980184682211403541915299528874366252864102420690952302932138814451858454366155556198416736750285287005188304225239819939450001332667363448253048180367325063592008178314915651283983211462512386373375605306919791354705658709448608230257946253164881271096895912327046350854689570983962103211795963670127834639580187972089880841351927830440656352592309378615275788909199980678742120892517217550660389061588909646931838113504458606375535734188853138995825363114506408711947816065706772359992941328763659461692524878241341568287718055033492646118226044691904856869874190970287569307528739473063273971204486691598485032890658563699574737179843939805774553382742802012460575223125301411547262227167647279112787638449859828007429342790096364872872703132601428906104116029194943227731886561308761050941103262316586181461207291054888469890665475079392419795867586169941295569737383053137200695275598667007312180373445737575001681846239159572853511981115709447561671866979983287329245004081002945415716555442369469704137290160627330031006427093198304730616291889235377384551445540235269288259686532970874944438001847793609048865554681364433908006305118196999721886620790200266730520936944825056197261000657130263626039200095065750884704668138817087006430414053189126046357541007185615920898334103180212649180912237212426272796057610896759546961973008244268686595282368818913695244237351862584806039963166445468091513428949169302975760163437861750771207607962783235692696604764708895442615554903341219126084196900745474502379892340198278873545686810472074825825994696200268975842939558017459054706734289701911988993403049369400185912404153883868942075498003483498385254760408234322238975819293548414197529902251158064519379611621751303707976179616940494056816325128003339067945344741912954238546350511448402913551465324903382419025032235640517494740940990159203870771613289934445697384810852742160253146343158986356074722965044673891175594796436935886014137500787295901674626177886217859708870481251157475736065432284786101894282417409987650668507501092562825103299619362595225629382536587757378201168340306847573826018498381561052715385616714942964440779298749079412031666596736846565261875169863638130686752467446498967754758065752321202167634783540944171196194060990007797290839621941017758384298468170153533359500244512855099838593380680445259386689373082623617229745269486096408172220393336161396402569500134865785022554125937740978152670341884152370638089519479305479803904434634957357343363320958706806090053557213804413665654201976891485987689555035732029330038442226071290831947123728530674304017683161804822867821220859070399695858233681954703625280429315333850572065496906117528869289749304257716263066948545152704232393388094523101803556165181465198998421996691533359653939913945395977592209197657221721920386942436784077690632521121834365990653260563761258092436366746782144357268409159706442096082875247329072276485577779532951073585182287653264149792114243346855325626161839143019796948613878422005148160396677463558247473726155170138095614925444633622484816774099161885948414540420510390692065394765685707820368233534252937351226237669187643438969765864363270213887520980805940234002440548647837076955324206255956218993860247303265976686015473480277376326397433941929365537721575353655731398133505044979186985971826978312761691774704042623985229724402428817450820456738453722789511325830033241580597311617799771594485403742010666991415886175309654640684090333441344428426016785608181095080254179461552449532352855576781553153685364673644732098417109127406912407325243541201265352793866109994666169638814330019987438642507749178835243478011725385861945522253442529366476001642138099901732680246514997740775151500450438497935369877780515891917249134731511848397958058174646881189659095876601719862161029468194412420283370489362484422465300269035279662010552654097935885355189901285734772871241910146731431937432961613914997815629144403876689796643750594236591868371596588203564346036380693450233865558635415211386954388272432236525413879105220174388971818111714794478932853975837541864662887510217155934118756031027618307638371654665577650716089085252862666558252856349708635795746618908343262391835729847715634648626598708819331307024530281210140470118144582878359889195601920443396552728082106080610809954219652892357916819068357008817163482704279164412329669427197229225866715118283690293584446496404940943261271381959153462234710111146777995653064961621391162772112303544387157128994674518106408263082037005401617413281934101786625333295214813684723457707246680600466317253062061263702084810449962830072236769553219628945846008208469329087576703864991431993648251857400033629044830183580535194616551551347152861769002779189507779465944568024749824001017353717172041566861666914818943007580973900487170374334414928427985228809915602988213633939749715768618905963996208906646688466998015265078189741289156031672489741417751336134489981000739256666004117251448885564860350404888158545261469364378054965072329023069441637889684006989038746750030261929625536030560185765574807992339088516938929059840810120162126261595976226304251110922080940282761785123671726727283076648861744380963292418446508665214377984238693614977496362732158476751971282597577960816330277733640863698594747963117432365927772572640296650463124141173332127938573997199591827385617881875735656324557424584166819904786844024373399840187954716430464504565377702528843843329390874338932866880974014806935316884152190398874754726939624092854067405757798711263878353031725938783378968309401130380677803511309917270037098012820699081262542129857888103502638324358688615668566577058500016578262322967244530826747513582263968545033675196834437084100516609176396702634650870206242811080519103910519749550237351474351241143139942333012738648346989597528026432126802264789053420013233261504004975451209564408948965932670230986719790491879208153919068359398763072403593196987455478892308530714038624584009547432479514246125647861045810527047261470192360097442600063640971826776344122178351559245051335491517688742406163406522289004321211714880416020508443703582998942171012675167036434122616970630913740343199678958064049260654972981392161270431511570592047110324703129843792211345344050909046753666691708076436295685939123532665472410638815338226578987704746744844695601507355835283624674009171802221205988242811985826771427762688800128491414796988673819048457901473278961411041625191481983277044999831631469021667851211576893751519200287556244391038741923818219784053903976889009521815927537026114726460343463214758472397355322609711874314869221445805663293253853457840991867035590071060169544729615440476617274273293617190329162214289694397386966299881245970742057165271157281544436731249665395277473794591430746605608032573723308044727163026245996411423565222512840378339499001029590003979564098584098114253552472991433022158795692004080551316611116350632683752037274761022593535300917503999308369408612538967458907601408905262078215832273519117008705686772361067147903614893349043138796436488912092963755184103083222009089627943540849010159439883432101230834318585044182096734365614044282585379671627828076509983195005980417102002166937858339680608701343173400768079138260023049438132563423749194216743917478362766868959881649075787079531027633107307829248361690705156715357919956631249930643856074853528157575394405976121617689311887038695699629575801191941569620295949392501849176781559832666254250655385949263436228759523666185919918891844857988630991619215939831680679818968898171716221918530850579702210578270443390683314891338824169043765707781993900859923649874913776233564270241580480440079080468184347057042778094124435917742020643220875949389441440237967065740486469788043529376744343633484382698850786242578577780016640858437085104416901931620232655312726601337604345122603895066161719171848992139708063869697338965035899606711504817537042189888651300614495821141668003766747034164319304878827288339405722351560166078435456288526430531155502054522311326518649288543086724634516047898431044416257076806554104238697655381582947087659172059489230440921285057125001683699868237154241560125234698528174212479927844580690250480055291193563140523584982889332234082131941930178346831531330121139917977102753689839001349299724641291141934359893527890993909031627956456793154326141514083805622321568132753992681565629614055638360608153124976270738052167614809476163245352249531812953336811087509717579317772791290036948454462475837053243911669441763262931199035991856101804464190492997483288157154249424010488646503530035675410282116312232091921662742496392679662555528273000900177635589286250384467961347038321553599223842673686664095838769856779710742354587366850888889873306744341191849647981115242729383007624082646439248412562775986808944701885147961790644326491517499526048373219788139928793858000691012748693620353359315347065350819465384390059069746095243563465644144408628900556769165323713539639850746276473435727649659769115541116131567641713656588797927574071133077471655910920418078995941137382801678057958214750908883886074608891420860892981814903069175347713608361070437075192356191143638160877575600411581072125252554976541562128958014974141005273158400692597908890334729811938166930447715812458794511449317966315298364310725546561400334492667703000228690219221777819070642453043886199312805103544589640654483339749756801842405793643560393015912756870259289164330742830309109580321244100534816561863108026074314878498273970627815863670890084182871904098377187221694643191801899650803292501338918361572540337195825274096393883002724973563096179790855580220452833255563895441224752799205292356655547945367167225182139752031149151638464836673523478248644152093522187205151453069716287378733087291351086518538405131602709929203720648144539814551862402341498454677365803895036478090965981037757140141501868446555515491088481452907074886930350139108128158707078826497295961076346370262921794601504559308889150691757957892369538311620775020503234135231465758720836683870687124948819197272249578272521086967505062036568896905437888970990129552592454920769111839930154191689691637248442132014048101078462280197927627482934580600726329229484685547129560111705914135611652067562407908612006365468005522680187880630861854794712681922672604201289161177282571957281308623138226104079466408025819323265089210803450132765064224116321821848533321958160728292574118882447592564300224150234553979668913240127755360678829460515603206940965534394298147584426789624035733807201226078095348947472040837208902755952437552750763944989096317918077381843694120981694084946313186400743739778815451131029293699815114118453375833753092030185499759934647527849522563781875428370057583418445848897196514765333040163023940482555622685726049272776208653701640187255882749465762301945804512401860902297815543067397019084392299961388153338648764929933787441173854315974170167662177820775296061780217282457254556211974353166695738727046676046421748090238460268323831029093030597556504097890373177857828950920351017628709867213561281114022444864960647375253783833235059062742717311785173713557338727153022098112016914255987659063561173514490032639940704595607847820802385516469520182699417276292763047865847888287609448011859681266502219311998000978119267841422761463024884011576979760151067943334321294232442679698663715209310889003814078065401666115741444917265763040619185650481531994312035806237274112905264891162387126200841364692379135042534919777611130605756162656054240178809284597838410409130000021528714567083228793424021196868543713973572313400631279159725782852423333909246693895597347238451304329535397653901937227039847078972801314139515782761681441852429423782797653616738281100181464287057861605479722529699650666041758599065814795991482316017004256255901392028242054261856468237802900978052882565101979159443780664901233131793624019819036209414792186850000966549265927658941028010966625609032012651248933932788725077954778055041499915948061942672252398156169083840677031810938438681326863627800797284559841028421474389307960881895995429556520971795502719218213284243154518366523569194308266247774409369653614621659936776917032242243059089732773237481357942161711127346295162284931762686071890464321434134930500113272090638074172770809194103320005972316705853389275218444782103373894780631896263182894543747928549914859809614176069857399743250575124437867085089305274049570668243586644968713375500580463829296790317226005108667177163363130624295096877020401795318212309726618308116285120914221934712655064171667893748903958338026830953713927570050109813334174852250445582688491353553851810714823033292452440433699387342287671742872257794505110076350120455139804301011875630744059226602285271867904361163960780716569167789888045897077114285319080117193815929229999108179208685270694796399605534488146798577546635384242021033014464875537368759255901683810505807117324337912837475060227769357966423916609826419780234070808367327745438254223702386760568902679484613160012012436930819037023843472066511136450423389908867472843111184258774008932657817895773676835804519507336571092762202720995538201207157732755418657719536400653678264111864454847515463172682061143810624154672899576799099541986157569484095568442648974356475751841821467704006882168361859793954786797333439144419066414813780670001565492909342166031203218938500629801598352557185639894304115296948351168129879213719001683915599294878232331997508121940994166406753206757739275399162748787625437064741952694705555167736144686144029958902039577784246380957561003436469049165054846230199329517842233875724211853126561130496923549133689929594104321524589617266219645814571366691400683806199811619045654010755927657786456004165589267011813391284129822876487903867151320874630837301022020740258577669037536467177626518028226641056440342832762855292951501017481344482914362447637861451113094171964049259341743644254268655238401920823481675216041479649017157009774249864624560298914181328783372521002760856273024983533939730927477390425681379725650492576884209284296051473518307493158579445412965992799015766353431484125247080855750330323888384297246067202465357502474640016237202134624265884776629892995288001582511511978066725997120895028930041162242571241648698475758585502953320715846140109030639386049322500236779081518492964966291134997487809991287205237361106097085611419527014632864493590003211985264858585495656790805416513761341516313695757773883983441051767834797407750021702092376327923839505806781773798188339162173293785986992097960643188902904203994148681305088034479252190121922009913827223318773039732849910246103513816793314846061941338104376188213870405760794789396584248399660351674582831669738522077205191061692269749717607263653560417376701139272363068226876904462475370263263459608599350537725409421750014470731348037986856850654037762951308964325174354121761494709826407492476123557668014865182820738691364068998975314675414717222177407552657285611278823940413801600767919570873120832700932140103572561558671551561577071191938263087201468759515888575588963707987670745377147449165422149839990857184534406207825807857039547851778030674796366590549044281082676913487209320574405724905461833770481276834675790049353406956866008241290903382317472489266138592383134653744983918807051968329229787360792325327855887356825965580639277850970172871992676421589408010612277156348616906835193391151605712261356083463932326944335036214186155739308495939992610959686424471317841455457870182122726486384345441409539153526548817383858596934009679933792017057250330070349328284738909434446269240089195636712848774065252874089618563219745176143401838111244922370706632124744621197133074121856403265152770577020820467328770239494356834562798246732238281271185446741095531181679283141273676411256851251532142273098670747416043845921748171643613362551041990209446605358488910936767261437582560589448223070717337785958858986804647203481907322355584291340930304229645589075102105369456914842777855667669679022762308995627575487216549074417067197806874294625474835766065170385941698117307796126497160338068886494347922082450476935094632665256471616950210347265221403947955057721099210281199043098948020624996718185493137143865198319268311638507526051679701953810631469970578524412348957103607714310564882591179635201519016356005592188650867932457113374318760042222213607810839214824541203596771036740197279846755668274761377372676830399304073143169571674440128101507997581556779557931268143546162152926206538499558718928080095128618595834876443116152207918289151447210042434020333567961808296388359667505643921263634148438299398790195914944735176396495357370880199188823395674431750401147247887275509849603650781911055650017198150385290532130937079398199387297198786616773522508130764932826239294925384527741311286205263055920461266914871265127766459256862926954392491780732592069319483899424343763358761225760816129060486585910503091525542667314100307264405887649805801119061874928891525923349605366238244206690549611469401285989884103332600657569073032135044977099375380554150549279783957030329203160843678265440017298092690630146585107734763565311549779992846727025134213859876351548255891578956245013729963438265647728360348302968855104740935161886824871637096741138633380469319842150694301369470540056866057128009505750800675822599407152743273100584408423189184381677176910330675406036903744856535001278388181902176380381354496556882840345265593895932736461989522413676029796861158068295958775806204316124720357342511939494504329260403212836688236268520079337299509808609045804799924548958567354730397407814064929302940150872825051619113106754371527806909790920567711962451580693224384553171641892151608701347381746073881936087027020767044511924375476250307930937738888911423285814771461040131075148864300345862033859049013901886098631966390596844800399390904073864306030147449979632416439423596433429465247961173264372717562941077486022602453326508304271862083796149134074114472223780242957654978294756234140659505264382526258638622051073050118746193670747311635672595613722226465869391886840314942533005558051210495855254868248880475779053481596881451536851542391527997405370688660813832731415911723828993244746856660650895165147308509641792160527683112495502089024116681487638906824891000510614903500441700944439551713190741230552572394275088065922201046508649297418165087559963157040081905974650670812164394247953503202226676146336647173041194590236659687436617266619368304685664374942541779456471074201729333573206874836404460618370956107435922600269576895658631690863053336986005002724820048462921852326319343288924074457951718539492377579099878369193840100958281178759360549608563174378556321190984359400302207499356188731615898305656593655253232992704095286041174205929990260292150260518301405793143070411744794868881923939259247930841124531959186980651050804692664305066649006043518626984572970597056757199808455068312537998640571012224357959102871511808418036655304939025373556466830708740010839882637905796852623630587063146950111715480928898353471502432996209866586970636226417627501823647792974879291413781408359859262418229268105426685405351116461599117377176198721507277731114448037115263648920366458697067289066841000366876252019778775096554804349589164757922972014199875209231472647326741742915489849910694548560580480300434351771570964552508088464190468205008038506777049555631890116504783263670952268169071203755734282729835787200012795318619010479246380629046434775716712832554278917035618863163800304447608604769329385374638225653813435561483006677136386195352288070180326863049203594453399810085260632435006151722425323222774647046433950193119080922912083322949402194462714306718229482856590707408667040875609963510643502485757814326067686653721540316380771998888843916393791425975120876372889882576331896617046370263446783683408145822960894422321034702877694068278256321750576256065321529287087971598938878049498678575432149731686081643435508303396076044605309507708541152673701069115930567709763272081006957490825847752217768992127769611222419631445943716015346725657338448031563619265600262684564022380688959257799950446467906349845078856593743691579040656069430274812674173653299523148898354334613635160514626871341772037442804334914903493029629254793909741093272935710134678303750420697623545524463006642537061373266505550882220961929806203642104546254087730266445731900934488468923764440128137674422797352152934986049245637269077762417350124858671092684932893499118335984785447479252131553996043520222229843796989910379256490648183105937004302630268174465694987518661972859075941934747083100064646098179865088126423660498278058409628466358101534204776579862527319966042298743032949841596932769482396161731931902409969169006383670296424090830383832515535214794524582196418306095992471710833031271218893456573843811924088714291848915341203850238548683138952635575633230407463479525177466567522422829922492836943960634530069587464731103060054718788090246260472568072041417011156811481593296501769654402899250829747939104021994229313483960095717468961450814347008374916600425270855641723611248833927528832188532553411892035327575601722896846112947584831008760482041907887010637063211260117460159002198992747461222633988652893023201003416159306335060717161719514541612117445454894792254715770425886478248761004656159975488259813892934457609608488548722871788008576823746666202488936615657438996537891005071584151907742327164153251156661853062267242426430294922567365157479169837670103715326187041876787442502542750482619017887144795975999024468078295866652716294575089878467759532428194996000896248126594839262573697791563492107511283597174913495595690269018913688024485103102222924646274100775249860742612362783400949683235974446089364634028413930020295846204850868006234051964010549788864535455480511192255495670294097414768155923347261494827484697033212677560889108696987718884740818084583917614338844050388150167763166028473159710263361515636844863015811941356008499416159937686598859094024745830680096236583822511636707722783301932134904495994909010641726225153860463138493188019779386291505791691963177823522755246929639355744901609830033714202971015218770060062091337075383416143654539984774369495893493006495824487769636205231747332072324063885189931391434420035179842616025170204353903275250571960156457634996246966363874286338292778118509148292566392443683698477909097918771372127103344368658348130225841755572954675626037999724314518838809083297905487846758250669343880140597716421990756154707136624560237699877238308577456223580915504073850543185426371280367496506183375735393445090087356466504573116682254908856446987868710998864746532701925868070433532636384865780943038272774320092631925392993338897551321492837463646221790846880822770847941306590602927064773760984096574200669945730108654593823460705928098573895295540598036386161116408426423144577715224462220459296324298256294603430758556271783366844463785958645958451136564746901964356486477339808287036344178767518038626697343031953126083633149577666592738954797103475796244019247714995578392682187498859288213165239962582846180802686659549516219271098967582445122818417683563060248985158683552573930121923234805995126413941122965375968135580923676245364258181863663527601639145108565757593428054370141461747656025580713396113021641150979518291556567543135064137713557719960224058117985765936359328870143193264833451031985020234997398870993970970835330640131080386972221146274683144137214391750667147647197722570112120461755359300103449642667609424564953736060397282200190276499587293266302743852120525454190806109499247284408094995333659427393363651110256203063277296956846348934277693894694094497231236188081137304585082732072552615610976293474417345075865040936128240795596629294684169226774922410808837753201331711658372067308269934899669598614895442056450584036012255106090393357568559308341860554123002053401721075096612185830766406728393164198583425092442578482868141009733024777694588942803927036011562005073601399740668601610892641949853125910783081159361363476450863825433309722889424584316868948637014735702532958373427163117913563360907736783702238752323520991771514101821749031428246253328325165939386297460984201040288799822130141838418516482440252902069802567466151246166282582170133423528903702745981426138406437756354386174584674273868325136184709773977793324490404241001843650734713368891520629849209063137507889953643664437052549264938035951238338077969047291178399899636318451854341194924795518035956764625351415555425286526839190813363613413862395734829483848926681727185749408437622722253569995713876971810792807251838704406647558718052517387487281428858419508063753315910889275344770821801699531380255755771968291250380651818053245718463007413551759987816386515267530171656017477696294352527253928854108163656248525292252657529585748314124045463963547232577269786482752897674872805153389978980652631077409097192810508826983356371875278424612269379961758987461487655761432031825650283863182351366186167933694329321152673484333554838900261728698842530015031586489656989866626994803328526221055268528703241461813660698867772358770667767156842787128858293575850354018221159739275384577545043100254822240194885573482065575942397652223270612884863399054327015901949767778425399460956284350500834773093260678328589440808171059902110879011876906343345445771689756812779119827612412483723777243874753184536373652323044570755852729343071795119526605942344923439481050693237359376734036469506289439624655582133680459335666812617998257859372441824731845566919039457540951642748869482166847285466642770887886793782999963226128639426208104636216504980687720550527125196169009843513158527618415587304883751794102558893099153075430724265119690020129756717786097543566682826752881112704790857141775333184101810169608343471136433858142914674737824832725697078188847891858329696524211443640164132997966442180427289214705688026758548509866004265556721531832894529859206593264726999810829849482464263256543269680568677622705764480700358432612752959251049636413955388373832911655058436520198960867465348506872906603040612379199005603827961018293745486954668185771756082341512526430584535696508833531613652274655541280043275889558082960240722064931181988379008985652217535796746236212271236820311656932873904957939158789872686742346278084420640086028751950420545624789814581755424691243280518717983426788947606231282526776210665964484613803297252477606718610740790510240304418107897386507336842370087112919671299311455306986801189206898226846960547167420960969837581267150122019601975188878262650085619294997446709081401858245172229426473779810638516551839497208046013920678822317768297703087019634370378480380813147646527392584563909036721312253442165289123708457557236010796118762757033852434533011688961575855460276634722022697715346047119486469822942955909075200066700968433334656712604376156809914794685014022064699814687843943171773232469052650598960572838182641053799629229958685213362959711960110962780042436262530488414443928315894607323926732764700524988630070521351074561471217819135670191106817375123304402215502498970508807495424364764844639885885310387395658330756919130244641290037742094253965822152012286213802868066381839866069797708108525882641015461450113436161256791351640975191467509530209222565895569082783322356507963608139494974159612107695728365051315621367187596173051302846129028369175372527312794889382873875922128467052387271728578301422800677198520702994820456781158045121946414601858828632920274574455250978000491299430633083087850310649818643719224263137998250395732790604051459827587416633710907436176405692209200322040840242502294944397753862125411001173834811262176723725154222767223057474163453610152577360029740999406233026952644030111276932086012394892537623823706149709195955233402955765323799849090279470045217252528964656963710888595520622639850936282571832143167198128355423028811194311987335608676796705570337263416742605225763797565236300951780787011407626906859588795933390334953668079534863729903532847168391050024007469692966256982877174262171979493036158780950131585412905783718606656775362045080944936675897771764895334400878623473506665959104576915651372254676385725805251560821804752503136006611915998164799890505009599150504643794593917261309885898472792252477551779104141163600296682234412995249062862757304948567280807171932929325669629850770982258873349261595770300806137843634638295919123373971450287788155998574431481367069966062956711676371432405749434918243419311578900263409752494973132631671191337926584499154887469843259663642859980798348885754531228742366217291956158107323103382042210666804474484334162586689540736408126907875598862120366264667440557236781494225108427244056997180340685333721421575953334182491252731047382910557249305662948483008630876211626478569369465742147195611593276534298251158134269439641809132955699915566283834817198429056617808317049540170871486871055185832669184484374786236477128831116101459488966266960224881141859504511928748179607035481461140562778492052098662463828050893421439082729426452644686862147517146013136761874412298957287093936568738947905199964664056204711439871751422695622999337768970627640733923801569970113863760510053465617267216706280969830579852051819540641000728466056705554318325342618191190688659600160920895672253478836082628100538811949424081120146585298194495886420281957002720971382065701478682037454653519971759989267573131520673081455808942725655411288248067702124582050780613505324955979679353611987370462386137848875800080685484870985780942588955842629786973591352123937583487340731266910965021666094367083596487985998587694837454775900417364803510171461584903790925757713331709824514216658275909510256671075696969915647851757205173167331836817148332885014709549933887668698228525748662141767461027489304374564545360111068363298401417296830747499853326471057422264964800761115968042984259003087595048809506829372586521868633593364706254112953540143158860242061785302915998170946899762990426387174227002420909727265066925935208697786512510873383401049247272362884640023466573639559231770825207396866594844731472651327436311924244318056480754887628251891662880228946061206746588423950950240559413495039955845609233325661509554645875138051661875911787128469106516913142917326628224780314538899332535622650234747982024891648977361351057506250470733863957395120403953672833463777151211156814483508231118241218684213297402513800645535419556190989377623215116381401193230333784225155750427013965991875858972963183294835753255785018300827450784027794312961503798178290203475986392452013517460536367125976523851816074357823260340880522001139851852246847155401056897450388513288488057550857136291521014751080466280938745242647495832119211282739141180592373478278303935195276169474605025786263153569981304719807857171071649163982393620406994674855806074551232015423892082917633142551603890199850452831392810937268904488180007208534875205713535840498822645492984505690157568424737766842280263423192818208939950476748740050006923584912480161582722330237276309095553121405271739500832700192525879509273594388413783629897238344006160524473570757871083384022075111620956077739018165598650131077707912075068802647317185667517843652678743935474473099925818659384736675953138543062362112830487221564406203650130783024877386286708344037972445012557486941445244355182407475692930147039827794242696813110609848414022813485660736753687379064109751344638600831615422069023978854819473050547047862150022844543098974349066799873418410369206699307785527582974058688999699984167975733901851585726869943060684138670884137438634959216547461825646108073211786109553551449257469073695293776728962845167542817675016977634033590638435164811743388504664486406597784100814769910745370180764952464292261144378738275368266210137011879272246218231031044806402316446363231466111128332254130035861956744981534905620630612158771247349854403768712088759670747707658231686067188204639386498002315127323677766839132427174411544081654168189469710259828432360814566976277278641172644914239248138244345231594314447490334969384265050418073166075284582661641436072940203486696823845284127774587834377382676027615451723520307140761236567564052330864558203423002742084933759588749082716629827421046424385462037994416965034054215943794294590416980389411001260577710247261360520329014259721233598624664550759940597242254105896950186877222534500984406324950654414772482767736516549101162011401770204256222065610812220396747160533353897202148597716786738734550340483761476801345216013234379591430476501728822214664251045969027073253044200353739765472108986935098675822742383627223606296236020246100875051032518794066632699034137539150866498437088137863291290100302362351055516206778076483575439062722401111506636992008674954339558962282318837251134042593472813360828981518742936449076516350617035121735447888473011285693639068043727752392914552670846704675909371533908803891083865474510356015621379801678182958219254055907087944886336370837167469184757601566528704328653584988663142247784838609419290620032639829623235030444911932047684835532106127411391908438185820616297836339097963374822444675443033662094192564609366367852977821171934481823014296211153782964508899309432310630398992750167948101244991030907027991856337872029802056647029056197956389132119290594528924910913998492102755166373960233884742870532727421589806064164271555996722857886855113540839153226927390310058475941540844075681244508656308435460973147257398916449440292471972182319648515913950432475772771409491950422838807265603985412038347905923881930589961513467657769778979222531079270036674328424814823399378096183637775771316688288315372521178012937681041073881942282314426700836988582394467136557634919390670637579519178686349843757913767559500797054301187906057630684504770666079604472613028491128735974954561047603818263329254103688598518689451105255271124082091100330880913685180372467005028257890145924007310168533651998394950361595154347271545755961570588729986528122640844322612380952896526734374273881754996533903387693239743311335563886297500857153353362890377551512201447379568973869025026398133737280241626270479495898428183905729191155111584395810015213466995019669045426541070596455226401199258352047247398111528540685686976920138282726078087431833971731244416176918267060454768000364672355068192441755427328781340835200905630513554713713061048408378542952475144923345603786457616863665014945209379246266540343411661060271373246343742752262559820485576114291142011420723834102388091802366155880080509984951331811154574460412239205547931589640536133872584130944770307472736701403054072076599249732339666606206652854735143250300232911441060479504970417201083004360406492321605530665034144590092134709952557102107573870466794867871434273738104805335755966994956299511511605232532177147657661895035008122719849211713174870321296391569512444029200433833301637895306902777295029226910872722529841486566854568352925419813507654376878572672500669553211851809787839327723386260225187302412919796457395718513462676636534318097952243144806235641675166058365547964021711359332427837488697230845987171432158246752530575169397645198660214448662932424548119248385429109813429501571983142506509147564676190326834471004642645057525261481833076242272376560874694464939414102928309242238580857110759892442065782510253235111962112851135634117275944501503556709202734240263337497492391155307245851902539535478562479597507805445170262547790507942842871504258081077059983590275077837835221252396013714114803848951418155723593614201186905191516918529751656903894087260574392722464166991979801347470953975398705101868252645735920468615646026157447107670968468993721621171115508536239249248985850538946955249578577778103725261888260403996797449897245367406127621170528826208749947482554187472603808777402409925619703285744219862311049854440492064870644540281166208418342393479850691724789959337419069094193375225252844142486673102754612163316122644217650358271064703325351986199169386925235815306214367688959359076470325081145712891590164580807371802287735731229150455815289262813869977362884453074380693035877200416978303068133265061603953730923058524388262823508258992638453720269400805260498145489888972959871153449479496016877071017603339857066030824581613481881311334035813783562288304449987611384786031834624871143621865312402328279147251919210761906734550472280638877976168392664947129826382806990784792351040864311160771453491375259332937672748473586830983605835953813338042518424924137737712073143382054706469139384059983780091648877558055507007622240233456844201239583622280246188313599365891213350817598956836751909120375072280046599719832252332819904061597679649818124994944757726187661804525526131672430504521516045435465190049910385868328019747868873045670189649253527969065529786769162555231911255386097035123160007158754558435451433613997966006663434975892145199936014336888232144384768547542255314970856254364808642335086340085173463834222331391854998356730588771550393806634138340357743267786143421683718134261331576629795880166086478097075418261008940442428043907447221179584602620586177033077228132402126103611198755434878364649138903664046167450231878054970883051833543028365822156535013980075462351187007330435472327835470099919119818501032673971108991788330629568922712787168292983311501066940202693409708321988977663258597859858813881356017563378206269686853586846549623152811633077412982421490889838381887305462539366585098498995626673963099102413383959207194835120777973034226706932170631965809338486342490637443471526903376433666993806716383659907252373950400372762935943164507644945785622787550923355216371083093596707947585809150814674765984397835315462691766830134899581439726730824255913588794043523523788742776886459587142681903102253728863132337546709106218597810229235824671110927570710652191338971571651264962678246605798004568949555124387589059352181181677149254678986148312510626031741320829530885318516578368618965855164280186376505203813943512340979289378050017839205857557699300243885790774593409389593366299288023409127056762778725704483726390006214810406317898543132550090817138008763052438107573921016324436747184443928128045683956621160005196287751537551420587551092916578381072755658386932418662317328511269801970409235290917155035652230758310737991515620531204156296127117909735772626538151270497547940819264713604383912416855896550843029757919616129252605424257683725843862211473230478698218387501940186239907215399962203512111910696124809193482572732452513790803984431515935608386756667828934614039412992675468087920991158363052515091665836150557859133973951725763805147477621583637566503795887278988011622912029333863928160289100995142481217785446341549742393588655233649628693765900172607711995881572831201621284703534893601846617776026125844343023470798099438701850525514874737862429030482641492830615075250761530949882907813429623409745549380600990535215790000683417776290535487664789357457921148277781399582086744461063179648317420648783993558689433874117617299661014454410465506258843512583723094986260690278034811585620286057096112578664385380700531856599824034771356737919800463837836664370845518316674287697506831811871967836946896656696860334240371856313959996876425574499283405666537054327084583814820404520698557662981814129115825497040536218102190043248031841087485830358163432674772353355345042287999842866488785207533905418096772272641221222185957136221185285600686141379716716878426897614179062970336926421919720224585746287137064782406556663711386432017969633818982830055340815173004950061037135198960766394615970431476679846916112283595373468847506747252287638828641492631301599773783050747338018020440598585854454934935956188944832743349026469407065530905016246407590041012868998494902791174167273965173485506107374987154779930738532184978764524213065446265772899051273767356071310155711788949715292128989026172359327763490875615972309284851199674469959317865716960247434490095088431265870988016570177516269134683374132872513263448984165257967972144627865540027048076536316508982075335590114807451376590371227763274717016324119345299393074087771238688381582386381235226753659863471372929495753655699678021542957198960046283146312804030263113681402166261623580326527397358878450539688167556818256593865721061536080487034180336319226398198388698823488457154465665971159855586442659388440410154788397521947971105548101875179016015963995901010344874010585955420580766948368111159938601840409924981358692043926539415593270535798443993014430027033246690288236312781213605983189772166467911155180679687973063302840540413402784465962919296666540968753027681425943612276537698780946657312303379724955789432012521428940679781465205155899991341101807087434120704368038745883206084972896913884005658622219670995688184071632828194053945100780435908224989985056072655636151669041570549455942593369680626973325886720119864209562683293657491941896416898027442541700206880916712454869813382699893404520646890875990053129268299346664287619429997061135965867013395312645153111540508681657314823243377368545976092647484342717575710761343987394810349058082256383770986500155065883489960431383264892684017699259099825556220763895827292682666792143600544749012320687276375369054462508940239243722404867411240099806833405965215286583220531730804887322174068163673791792894803879773860702930618285084374159907893001507934226706329294765856861145052981819005351340470198262509639699523201262000983009440088115420362829247128170274987970400928562394472227581437172808362948144333501111508368971485598714418606682093737271699323146037059714043652158329011185678659271188510606303278410378945962431510053967043089895092461302974864928070246883732412487377855330843712129054524738186996098850589375235519738186126334193092404478633547250686767418543316317645246498630803512170748033892417276337568446274640204184134553561087261720668864031105218322355047486739091207102802675674281589325862914231684097148579243424894536042542385158647879633725091076351555801847076117759762694871558654347856037441711148375369574337397051502962647277085852927276027802209370305320200757698501605971876887487095925469521951038864285914472979484815865101400497213845340976007738033500663221244263644937483678223532721781275210373367432776342772921475704458676561379536732681005912663435076575063936716118600771284600865169653148380347534413693045066620101915691665598946639891991540316623162625773269776820364394906712699181635435903665886881327776576786363672875702834779872117796225597994232007921148259355188608021057962008785311448972275543530912463963497169464422630581339892808132082939465986863904723861151105519673155708321028531610783760303360475516272440401200559769321397494343104203277549726309093576855193810712948038972615528317976761268746228967256628360270502842254524643138399844842249346115325958571643112343489437322066207126300411857512308381436723190914995567076203045911790132469506818288095903161967074498778748925880395164501624054984155092382424517753636449431337302519636336735022668519118339666714578638215422375514797979581175649307899576633230017719021627456416664000849789669469073843960474446146135185431259988789569474688308986323361850812197970541731495197131707017207241940095560872811572897278291320678887680293957510312935853039946220430835701953925348487761401874179229333032449290345800943499860405403892653484703582092878109290310712039980889814415398772588575460847366370311637922336789535748739264671978217080366496960593723468907599225212575299799414703572161569639356949525514269410364295455453510532004512320185479986782542374082087956828498973148225411847896827195847539463880716470244977736214944466492398716354554363899383773947546189744832059123676280605978839943559313153786373283318660433565292550494791514616398339837433742067489054531131307939610552027215684403286442197490191441203717630349577254482214903274494515749760979892278225991447551794860976373029085956198381719132258432714586423792978322794375608584735954995266668035687383242331637133217276392850673600704532624795422984648080522781129025682556257610614811257642156135700373056119195488550379420259849875181299938843814362661655406493754174306665412601013628951657326621094840521959709728493742894026610548072925619336646181793624568031611668188839862268357642812773119043528259494271024037878805974603906178433470947194430073004986637489085278717964075354019348761194502780598822069849733563264104151109224500805997433084213600853084353816687160539244100016147107230096297068600408492568860852506213152080457634697102848680757040639332726612426780047747877168045450750429484441595863074427818183733603923425070996176943917441431212227737893081388244317442555019782959755306152758204607684039915754451281058421441643308546576851841417007017938416113145412048669263164851392150306081511363045086268012100639169761366742272210083977800949075405068334901886505192452151384309750502122348319340304345222608798524699663661209223065627280902421105007215188149256547014273669995032748833492610506271011115285330959282459642370287251682563383408033647172484884229647163538673835430732344424089618185360128716661186829659016129036856696433277221718774804711412468684361207969799975474155116601376386974752543941279894615350038728571605858599217635472623527170676571665346680598925361448083407133812825986697911628144019587308151302826579450473768859372406199746383386950865453191905347637474377014517015717225287962495739313099319553927776085001700412116619596470388490551263025603335569308998439406262942756403898934980865125674294921493495041016565908281675769490961034377911212707126860266528245756773691715476086106547703705577983641695119055951786769169395857154590265244332516887077260456914836404620564174917036201452756199495159771612872121390061454689664355235786031304362175191409852223078784334523646003217467417266762193823193992502266955502450484548767550719784424566501241707933283261326755750704919566555482083469312081268775372851859809620653251130838977789834296072454645519313834057524493764402645902834067542128377676153765157948377127511150821082237426789759971722873615086466794296418151028533632741006990191364249298249091431672170386336617098012571055273112051479634251136559877216733646668943511886983559659959510505558422071367721034928298745141590927854901842494113024073579330927231619687213350648317362834950947859686585693606547577717084035741762880866661854553733901691452155141410420865201209397528881643199771910885111776435424044643126037176757873495500559021280324354076860216006634917166962160111412134381781497518402750648074831987160238791518728798441536768982316493730222495749572478959513132786656659831604475461295442331616335719194802760342855455224383792501910392456891710958628972138080837474616849163349650525809251598710584332381090957441311383630517697355991411459182042100502705041279564757814784818518770862016452296723767155760039388707164415586348258893558753509195308946104394886752947230271940940694290553307694683207959624646625746522774885980690885860298478177876692310094503253541863993059777142895764524902502311291557219582298621504914847162348221859669130968892959495945601379220787090956331468349525654054399303511209978738317668062121249759831638843570401481671188549970311806344438929652849719536374056265778220322118820480734515250600564480043404670661370488989318312146686700727638359748251005772679504895339144623294942282252849130492021899391368285676448367856321765813387031875229197283720596209115848439107685239342504735624571646077038138547775786317598772925779955097990717494531779503714977046756911110180825009340138367132170712997257876951684108243899298131717066916130657055611878201792833033101908663991551709811132012653048011719547321965544296533325485886474208316074868523952753237952081205427806358415207555328661430174477215893010165990123577566767059551026230188393297356106315480771229485012616440203184594892400277604244725134893344343401534009446411224625637205324124692712325912154213920901633751595007402083822864569275669970911619821752075837662679742866118643879074397989173507917406457601416489293499184336603122679459542378259916987797517563415479620137684501725070276730538079069869392941629390535806295258322506705891214772488372530770407467451777858323602928839565038588281801410656653727859075046237768894458410202598848770169113987398237485812962495507379377379418537557770848902906660130803773256223805584087384546561127003994558968145911694303129245936047337494142057381774367070280797062447815657032806145518915974825537884444540985724943414173002710313253309922379381393879077928534550199359365602833078270390728780951501296054605355443110790115092791553124038446538317954818882464731945746498595756011680435528116997633645124422753152024398675465546317463770978770384894637989063565108933619540020419937010040462272054614368261785645808264108528469220652063541666891236468626495007256578262232737428199126785940236548713285558063254963817502221466142410702298631338591154838239156914156322592349303505897465724326635761855844965258035611008546051277694135813953669629347607303565042194774292009869330590607955916961731864093011536010853614818688829235539704316280029792881094461476139711093588013453789207176104835667769572494845789613082428829049540131568837785798552422147539308003199163213705629955856470031865277790739713571283083635203816711232592901610560207833974201012711240183576653772674099965643028818366575913527773881405549342211223331063300324304099947296433024159191943801667512901663208240807894178221092241363915047717321366735688421228122269595614960445568675843292216457317193796766895035409092095286301115921076293668424434339486767716332832852927758676916394202611362917921301414824433492797769352096063711623245906803317870954167843221362518643709763867220657769730180744025354693697089085704198781565424625592143162360847367424507287967658006471599311001612768484716499490182488375623762377388358789892569160733825041754718885170357836757553810043215931139460441942443413965540923136675614543610957793470546157604701949783585429408838134131329384228862312644048628956118472742079287340226385977527369942123301237235917574670470543474315686494679291283384033258522536587578545984194262794393968028368759629161126548433118655420000775416202103127459103939075830551652790801631605168120684171759834784580033464951070559598681979898719477753176350211344699427236290312882998892011201948167351168169959763986572333160712916833807992528533498407692613575188984161404851465108868002207435872660433483850058263858761262015378230994787271441109830611528949975367312077724154906712028134317223388207447001450464813260669696901649991554535735395972475014440533916381218030021763528992916161714781614198511482959184132641146318964752126509081275061848160110616017451891652200240071810902703100602886000823176171541607861504370714239378876967132926911065657661075299938185737198295887831192208822489931989564063445071529680707708395306238878237203377096192272164065764035485596451910663603907294574978575169406211747001030566322249842239987879122099240347763342135980444082868789397416177114978874868912526118552172666594057545673943823145828443035983437725282600730826827826608207456817227128982626043560650285149208641482190763565652974495272478647473696506335599965374051132500225034785125991035844205474723576920990059362896385592827177621405235549052079596427793206646299377973780217732610259325020950200571155636738705743842051631802450881320015895601270062294516130848483410683988653027166104734547009865571656463247482814517617105921380621122213617115788213865568479089522882933638183839430750913993991543579721078472996539967227070899997825770068097036408153301515525687393972862900521630068177706185378506115842932444108644701881897422371494902035111540789588913843796588402655223625352796760865030226934780333096537652764570239928968719072951235057767345739192644901553976437421069490957364183059042249080873593438479635319959154831417846265590513249194307088929921810430672076443952205083063612105595721464935672376308057111286253400484537802236984870020041682074616672235101102165246986839401552975850823422790109591410670481127088288595710888711803982403262787578717329260220253590357366838427680140811368511659196898370629685177473298911847411994771778306090194724114599045743343349512766485158802862343728134867167983387802813227834221518186206784517564766846879124337508966803294123440616871820753482499996754718255084365460213631886110226316910867839393710688190818109240271675342398919137468414762574475223484250915183228109606211929487901798610835769674863474299231012749974212722111155128874391510506388454723560988484303227271747723821158936691294107541442048981460493832962339965243632227446193870868979027022652233074533501411604390164901279012446112499220201000427536124960997994746917328883651973623438076123687329553906149556670936397219857692991156398257079977111859120500607844902320404213237650652549458139953032907369517856526377948495945602650143471952134210723179550137698268048472135436694161750216678016700075887288195576372729261426437549742899419577066165405868269006692837581242349900906526204234381719163915896033924711825025637934291829025281469991182668247556868175298132288100913058217216716665000814952713930160786924116292146277353177448877563566706233181192119365500266220342163297571338242377640064853824662150737210581644026236184934229291603606339066740479602496345665617441933235212346363138787265245118878616669231687487862963502800725041701004433567194338090759624800362689553629709876071835845774535926833796496136238614992691402430334293121879875733915312163811461138202180072826181898428559650573893015469253878731071621270962720913937137689982958736521102656504777259502205162312443685936801702229201358482484583971218601703320221884358630752815662400136110088451171789285913670165479047722651751450139994528212464233110030284954258217080942737962406991895872528947017471695877734149716800756342326328666549244096770892460305601005960106918665960335866688187486425500423001494199072934819395449424993821758888828039756284551284018574600189311029598341644859720304840190031535056622669401600974892324471453542994158323503872603258172935808944144180801099457252222219534153118470728506213128940301189762415149461999414276899158274296030220807890049077846563635672254925642829952689614690357249069138545787001462348503381535461009174710388579476534578925352427321267581202349620192684783414812422461553512873303428801899744028548742035871472237422962152512413972269573036694117171767911827309897719574400596843316425886766176522825819113919389293806827694312159006070521468344288535944554175779505393529245227665782639728317884791834732511081227074001211887266007328833978362860481710423992138073138419518154615020790459660931509825837508433275216773143048361762152724024165951181028791192559362442329581806699004208736306848095910520578536729224808387681486608244176163825659666465514179636129273562307554814078861777776738945655436720926799559966403832873369976583152614948697006559299244980099527584964778947136738429551124165415115952837722753091407615785116095349217801163514688690343735278785731632618815473780599236633462042647100874944001265426300836361518855667610028485337466416832243609617418651326206390067286484284033868278940939840778629423242619740912121840314582944852272540843248299576002738070332719234749946638732274008627966545655202965881559199787908311766235205093714266510537126920127730445028997829416104498459446020347624230526533551527967088198068559437846252755592088778142054122270319188005328050618592498391129846614992393106910993020997836902126946204544267296812155579363450344142216946087049510540674960510402077988845895069227650837425495293503240316212823698283780392551033663071640581735436846175488461332580351764912963814394354767248335902024125007968140598257631508427123921438743028178645642782226091807709317126337458579413248300842230160114931314306746468007796035027062362500472942863249725836748415933564976584183070678418723415162168630140055190835730995192304824458952995309324817348573183947772472514221043435876813454097379342326849690217974411401575193154411262330500104815788020745062462528894098233145363406625134462797876924360212264817813232321236030236323448253793514157185139997236710921655625462649830255510071847114853259344363503550335829528787716270587046870683736551137114180537090698083293103194945357794490593944428553466032754253701917159016848065733204953069097467459499478135947838330820292568393239861773041066457479134488786026965424551572525720589987134381381074069982641051592706383730437591193626507795887153484027081836256011611994350799382938772372685356373178749034254778028682039943751225561563030143730824914388359344688450093741384839185282720225596469956515067853751143372690737403806315874701771807579654395158734855622924423273848934686209590836389487890197054695500154798222790232872378543407038151948432065291617927655099208351828168019219576229379736832086139228645107165937620769594004342371131454835860626743809758050205334281337293522111330209999141496493488683106428919158099113361598768796593027767453466295708702611289982444683093763640279915768411397834372036936223627211605923938542094486316277252810931801430519324824617318700982732232635622135502435998045772573561438954053534649689398315931990429489348018439065507151957903379655258098507027500152795149803174405348367843434676324422000359313056132154024043663615152153763875223414266077973144127601318051712714576659365825154906446916363289247429416702537684238684600170953672043261332205339260399107746564564042702535240317658176806227868860118722427848069979417462477220240188580583727121977383481734519849212568459192050149458346082770470309382047216283470377018142628397971157279339576226141142745460352234613040972540281350467778049521994675580347860429886426838831480928904359566251572715225042986754298526390400300527102966752923544792496126111796563282198815043284987801601855029564112485678177153250139304663515241499402975022978848962471700172065041151953148840313776344953342180998665556350333034303692424403305548423680862668767530743837220321353062034352474959995344975868719527500061333783120860812956749651119555030785744276675250484789644212645037386835520258743664230486692377306336020598389718530440128854459396574915549159143317892880031325765895288256268699050256497759208253643735377584537302199296226003737984692985297237595021178918804359874033543445504723198401428258417574254105088880725144988937038966108546062586836117034681435229337114350014897923716967412496213287360372045865464908902058998023932554907620331035607871867705435897482236459032643018440827234227465288521199782022133637054403718184768021310875158002205754832987230234106232879889654284107489397974398468832610441895898164845320770929583412952014755658017295757050436252864652554097644619721527146609120040658990711547609958122502068174881624079555676700855023007082636742264764461712472246422750382503663851384933079614834393797356416311360185301750745417005465927322049310837293033349874838382275190494444815240755480878188880406499742208164875023922227837954834227852903146798704664795593303306581059143869778821850626523375748462426076684173139925656385275992397219214642870398697229566364768919942115530879329861464551329732346610163821321531398545872687466852287744865538057613541630737637983212650634964990700224816811770657919638487502480737685175103121690310615880916883771956402266973597715799908575181316732573870922007240082691393474121689721083283129068603688569877222665524209553037090096988844688310453963056566982229658051480913053871657732106790184132293319206993794253869904828048920788227626619090435021142690754081590739128846312059184108463987951625393493935385035615138867608519286705676673451038787629269724637497123817438568826618855670950110931760737694734598817846807514679083889994915095384008446839149279271666458583043191582617125568811655205757080552721026064082890875539747992836017051005512782201667656922417332097017318962932386538148071095547226041748783791666747740392543284091460934980502788559684412138603537872901403806250437246248919231455870935301745342064013482075453360624222853872431893070320912485531630665950607376215965071484755315090255330857102883064368813626992957423064413785579612865309650461358642720836249000439612105270336681199003076143707966353136470477376410574756739365262226458802444936053382728344131149817321179029569700825979294128194166897733456560770804362850633379322347396598172519740510219136278333258660099317041615934426532992856612660788437200239766614010189781413415177458562837718139186122605765480533990129440235793073667325668027571739183585864911015569697196363882673218323965143181701772826251195826138316013648151086522398396161499620294850311439974839375371565682029096799779948883559956993174593769419597728895294809438354255453333236589993989502615944119767947972700882645933283402837330073372893832853774057949047586000360551263736066572501693008720120513801585035009039597399073880046282164187127072652691435493036315314859384340736385388053043769732740296512260353382478241213955684609587555850027131672459710248135818846429750036012365449100184332560987696886110474745104760997923756709723215555073240721141912240241620520967440406431869860388384649776627005631019912560839196740779817545757710595987185278836327716440110420990989703344598390777078715081849303656052555605587594094711647486340702238964129587633757542672949924847240077285886036765580545631962336363064121117075684636799430538027546623752876048800085838829232830743773376318321349971590230991336618754912091667823053634875548683886973619297018841103949664059940218116257216953715853231099278402384447925045292626754624184519748944462793076716655090272385723135189043140960479517421597488672519525448508777606993876849937534198786879954385237269787424771828126493151940148707701012125302282003554402304261765094102317777627492475539022424745214463792123073949610349603793254586586505344190906002324935298659529795423344015430489250964992695797910180302706353446513452063009966561212822775654219015136105233597172969828453093814566757681265212383272759629942363956143583937943426923214885084418523563993337094144545111489285078586420769063001275258194625307382602943830906770178078293855158628828775630054186475157682180161945744757927694327259170855748629993461555355991600833832726819666201432025618933859460391818938282676211933977150621454019031653890211987919289106693387497732283473824129343714809815775504424913289954965386343593611212974223221813817119378805722458831490876750686571673077843473110387545917835061275036843881481907510442544753955081393991937509902805243486314599582601009840716788177357132470383105820209058167922563044071551722363012759981885820344182651302004823439778459131551814095212419133133363717614592171462197371828202658686321180836035628228137198638712865738137049107362497915004557676323484680142520746342366226205613030035969985847697227074963648182713041559099599341693668543933971998354633586014217446124817508638109369891354770880686934001215835139882082824748825267868113355832263080302489500071412032298167290358859507513101552041954411051818076582013463211357181790425522154240361145012014496881685101414923272755397376530248415683496048507420789165188701325459942726062386091310170002970760589283482117217630635255018238082619780582289665104826021276767207620937085103692724388423881494707564357270119415708208449995153347186742431091367285109643565926785208935397111378297657880377596826928606558619312212201918135713854783797670177503553149045547954913898526476502565945599137244242955139703201875402461331260373305127407501588458636996264817000925805425363076354051565541260458101760000580943849941609550383103186179274179427475643494197765851546568488825865151161652745774042334011915716659350001900582824674427540535983487176033689636358454230740845886383906884330737183442592677884839650444497528669341527454390179670915199284483295963963870883611656491516092843331895146960878564115316850561632058297529244894868210662623579472036399969456503431623161076601694533020789186057993634864490594722691553581803397942874017366681863539721895617194425629013686659669324659418601249458656105689751734356632767948479266401874208550436049792619378535597217916436397157663779429062164712905019607953280097371466300572997717018325870936415854325748186820143878453049315629537270780858147865989335796294444165459569749578620053935664513452518601089695586079146496324394171149837228170418598786602976575349750509191979178744902102176831484625873262242634325163016799412175125325949395316498745709241248235241907663766814380943114931848220454634839161757061097739587247588607234700945136640922327670166869478032227588411717582665844774535423699383605245178320670444500863486597353041039636855160734638789108021362548623572692813851387354633015538674193683364032703804626568967786246326946644720667973937874371794944155425378297098211014861162027006194914447810043741585891192767441375982440754672176495499079677710118351576333172226341997907344431100373962309956310503902484449641025144621679738438134863489821760727583708351318004102013153158731419731226540517993281195870668458333849627317767118310286908896686554102115053879277640878736392517197715188739346827655640468871647612357600332088756258269825519531930050766043643831572452637712015100896944342597373966347383673453858552740069954136390199940759077283657457841165455440601240023748183263272258293861850613256535614710943591476806524556761555726239741553091321365988004504482543005247048586632943192496796488077429673247568441751550215946828678683726932657020931586578684303054406074669043624308455614177644044652140471656168016293435723523255815878500776427523694693213648318973220010848794679220106314355068723326037028804167146773524484213615476955014080493960414752015614051601988197996005862414395036526513724142069895430543311783233028516769657478519646559710427496288025179337725712019798473846367838923715538345808721728929423681000275436730845437228515408988426077443311735161223994282226646879546468523456351917815074964398564471565022875002948604674230752723183357729282996343842651482911963871642836479386104527868090740356647547907238415006873907974122206576892474193491429052750845513627249925341273666026064212593231156699101101156634506239015980938690655282363065616420702139967955736452406101719288472204478052090363318880296967706251251217628291687054561751656363960513847635915305117410533020397696012229803706229495970604246179002278126145815805515549751200280057787485716137411865196070174346124027208179791702001559503880649603418991676708702254239526123632868085682665084262459853922186111587762673109893186677690517104130628554527465087827254666975235717493776972760509859448834388635919985432433595283772911995705303045103549334471856674126314132586436912861808046157456841510717218735133824214762006544604754621231263792311748977438340446506891398640894016759525900570939127782041931179833436107153721847195764174339535296022656510525167882267845380154262885609922932193705249089050985448740137194272922057307399970910290331510682228276693744734045726589870448340149406690611140062488385003783644389933143679694281692354458614719613583969478782482813195566188023550844315977631614675520812716611276289079604651411019888049521822490122106689934131301974706821574370701253105537458196876477017389323756780315975144231555424605007032713020964401768049734345189153123870134284719529385513806664116742249995754365207998617791856338898839522583741714819205882844300090261915809533097046002009080634731386405811545340186307515370287825359467599433536916526249274692088148609630189036537258567944746285650966187870605445871679220097912035469800321726030900141249292428825148678551917996162290173142059773017637302955492954004885677956364930271632785963643359050252344179987688081828013909681636598948247112222281097226204701407106630267900261079014454290476696614948143844866126623817716569123521168613426510737258039571614783609863829009337612892367594614237438440668506099034663914813702791332752522147532249062930211667096855446876187672611124165853403410161983488534158907133917688294987486610598316774243102701523918437851106970526006148393541143873705649172410120557696342214329866586772874366109294399785462183184610392600595663081741643298259553064068081455876212197081321386166432574168573824211214870908289435049813497576330275631486782600188702704524238888787682352688663236280377729370455394128481984848628054275496291047451678473705946961540901343014281814343284473130101205336019346387868379385130654794342803865469713171828454526189138127588927305141992522008520729116815615345577720791842620322237082641578296823762701731373409585100637479973424027838609763643836832863087220040883028264206864849597735375824217445528001704956768428698131433366692217885239965511513773421216822339411391395076979523321820005716436545243312494441560318785400111943175433557986479918522304050184917698871659574224885136600562785586372151646882647625190626084767440247367929036669689218671443299259188113135464785342945412970774793062572284347773342622081824678976454527399729554897932385387175502967975382278685530216233253786200082836999833690491882271183208081722673681295151453066266643740301040146690260933558349464556243831240613815101697419069153296463890008864724403936356047521324710626510499955678381321742836439214110560916405888663110598806386553663298290762169139540927350497974711634649753280166922244901411692132091292686849809513881602540843690087227982019109773232992347259008132711937930771466880371298534098740510084768425587593689013118115195166998904439331085380600416471239245497812620290611786027948045442888976082323319993947218641696777179847476884111427434624137673281822049507071279240073955640088414443151875704195310264864201593123058718206508602930691261350054755175248339835296215804250653522660550535665659047396925933560880279703582200798293514266222235590484141780293692354847292056805372843376189670137174362136841967953271024026754593850813978042206507041510668928355705360194885624610413884053845138455274519548906884918676863129600629731571931930356901296911631664776204040661473282018720346105485225450408677788617074248018580699190203185125457965714074915473835398502911368386428010698641459230942459523289436639171002797688200177233352824792953277116772200811703195015178714852711027055369129508033820041271238078025447796347904147515052532708736490159745828836511011187995472161665367858184768737914089993301974784482069824826792405962656906434712568975680084076146165025197635674780769106292476639707479994352454732778236396619598983571593342119384697230771570381361454891312560012567697816534936137635269221117905701444513536446792328877677457803246933158097281037549831283891342116475470651008277582374456817328507072864008183917587863435165332039139363355770562456012141174491819979814481582560553577964257635993621201692123247826131379583577536980717367428954861146484983940216996031498179454337076096571554515284786923325887526685413586799632787376309560322438658455416990651431039817662924197718267863099761899783203676806702885357647679444332958721205901971100922829846661261101557317068773022688928112653980458298681532111386738509051468398314409289256308313343387820221115597171870744695220929531303867619174215159357035285587384087136876803764521520144256967252932580113139297155086624761023450045876238918396476875121197420656525650289269911344178336168899348788902457652741890006163182501077494250808811418597977038112749413428586610608536917860876705667837449947419824399114638955666299107923213790302752687873474952587585057490091494155833857736712196249403068948610607211950712081136961258839014354400751154216512970436103673526643461972294687815883533898943844278228895702704566177661718553500964216308982928447158317466979692494486027386661921002825216940815797078497243453861582097003843453948736144102407804830854686034857878533763743359554866937407704272766549513030710947199777339847802541936670351392047517328923609396658804045828174220622717572520365756032322052475552633157105107264709977541648916168840621159143001321240062930091355971585518403530332743942825570708292597385897506711167956718551429641084510761102286419033120879539336854623954690157373635733003985578382192859443805926515806533823311520410321191331014867708651340878622619997055720767366782579983016418926057490739100614934410795295280848733501257752903759342652536250331831143445493210404215767287236240018147907740579113412046078054462121765532289460845467519476571329008498596327782817342826213749719035262348559188412143048826128592050376949625346589499837090936013671587642643656700844989319297474089464618357903381147968471924177525605953654643205848929641731594820243607353062927141796415814441129882414536440528448278423670121974757592197160875036305583205979283083135121433303495830339186811551267109672375063890583542057385450763782221628901502290541054988429211129308520830336919281528124081388800981522483893527574181542444346931314227933037836733379491814243414865101984262188427808508754765834406539452415173787307859731266509116913518511433962325099878882046515288936236351004753225065265827820737745121973314233391451599934748654687402294839411400060338858513161026397782389315324240609731094679296736642546935693503614713278442958590867765188635229148735830563034647144698510456984754094312359894184109782757095451608071585054256421443315452521512205837438822518060484258521935825535502335308254189808353579416724436352928774136564104968448471478528889963259279942536763220447659572757691492698403407543282532993940721147429352389754902731494404288144137636592202210486640365194224104367785306321669370562220318168115030467262559115127652307342890510033307836204261451537528671500213128504365563960632996606442506086663277925318798563378782604496411351755703458200916043210348152532006923602067365556034195964250057803010377525055083677375430764732461367032328064314820275819867674582962602494168437303255272562292713624529959611426752672072557382822347377891167632218145601175920555550597674025408047819076517945514677950994545335178642802610445653401404915962567766962483281054870745628974202270686356367674990574471666936241404177206725535266089459116958911957654761274255842450016455722198226441281223190198896707716165180977489174315221809734101500947440751367935635116493643186709501229685755914948168209191907762475388582758468619384439629122956860716807207163916312370843437151557940844275346957036232900422689884535938150137289630789896302808134044880496083039589002697317127637019558376253098606949541165564340564900256430421689142683259435953800582371696654274770242384346691465694116919066932757556362244534755503675337706085775198573704358898736950724274175536014589881284883993545276737242391062928990849640823900870883812832542447758442422157619044988907636496581864783263767647426840134528596361213914485714657111042383394587280278701102045688113288486066228513722749355235583181249310034867141317991431348402593211519914310879678956803239566208644837609032544153434897794896531204143353402182143747351068828841869012528461294878470915110235972394393166510112844191704722159813363880834433478291378620345867125531157938057334731120192672732222521047023133912666813682382515664060599366398453845014365053711430666741468184508275926974325190423339911128369595649669266590105558155821478870972796526519982530415172211745985535985902614114563804521482602729366926945440846112824534410192219797449094060033161504804060793928493003277957642582938071879317319090563995491194243412236320633685639329228491162183129654503985753129254091234506762041095571148800800097218225089065877411010019506493104800718943510063570405652386029857308750947240404094232418426434984309547914752718491278989083166270680854751633952403429677147001325279162819844355188884700286349946147600035999658315974855901845821116776306033418267868412175961151520927847821666858746150148783464939196271380167610592124772785589793767857721919335646280366923002756883140750486672724635741927355181717575396495223037879035548233747030622848343368718774576536835619880533308854774471210927238651777751269209663622410587563616055980832641661627674917297999995627376995900453622912170371600226631238930316515656506631375202933089165995470949649904863215457165593186492596632608775298299111295445734881911453551863679418200590974375303993580071774400176504552425160424764543859340558659214159557329860267339920449451325285677754640115209202411294605505033731475176108363011999935944310144349469659538139643175297266323680323590382220209007791607659241014137402152513600240256472073485224632530504419800392215844097883241148264225009129000425729920935290958152047756678030001297843566114401957175217754249110573510054053702142735944075441013043034980499079377627724327988998731639437254065840478911089835671959835470245662453298057210247054421454590242678460332349191604500357847744579059986142443801871608474497275192960245298026282298483992452073503794830514263486659101572271624906684955950897141095337399946411727278133612461013858707692685035503317390520547776984041491646681804307573355599823019216215971559503204404142438003009856917696402914677412367010412465103309221966028774296790977571237322518032042020942805530956733663485111708141361443336770373544881684204424460937425452795572416374181610122013575381966846558817206211444741369228620561779650307019561303203411526453772621250567699438915922055186828696720554536552878837048539905493992036194833870859066219929348317108406196795316027676565861356669605320974025528095743520255435690180734492474436707201072537638789381617432735416502457216504717124738496499348635972770020252221499768785812208252368815344388451450479300280783063162222879645060477707418596230908364127242117002854875033118841038446310724585199079831825216178934176353584755889884510394013811763618960453084706797112316317316254127119446003169953321523332772128991299658977654542333730219726730847170430920945681050080527120503408223994553591197646994965507775737614667273155704589329450667340454207426194121127533793298434958403102838986814540920503397750743393049922103910331461643896246459680356847997312243886407802983998026929252144246058033179574641620269625748291200171101283775240732127469834719546935622475826605812013526767771212681069827013255583228188041145719697982805707250994600737128417300635276754432751483662865765696496524263989286253564882503245186059994328882238215431364796736008515967294050882948292808235215072927168312133034122406948618951772812092425240392631106670495502323291536757074614844463688898166808058279330399813791169000033472631980237951613138459247293513067636241642353024399541228429795792795625773041040447871068825469901332798148812340532784813588664847449820143735314672933892106474548873780437807763025276754962495220078451074382863589450892374732391571858787292078734765055447629379890036354134478570557360743673981026275449158538029060975481708527748039396860310862956740686835196041446919080969093801341337053861448660625319553103728329317782165972774239517376473960241663793293528913529419902269058252295932241295231962634884017365700487860721394762443702463308929844506757828315807120235549695620346954343292923043596520447365944715221001000266166342728162962930902800839742460162281316125948844815117917203167386381089982158054031514721811575849408032680449185427960400045695426790952525766568790597154654778940511309693486764882423197267111612563180735473073539385424726193552412719287014848316969469964089472361423410468768047958792044579259917179536047533224566878226185647793154213723053375564552422855100048210840350060855928577163975265387848725448586537660793208102395155688465461374251867149095742135993115524283607975584079850020649245498522672323806047363052179750069810715287162823283837012284929077614639612007581862191558923529588492983026195135942576060908547828098319624500414997126335047989360519733995471924101353523967268493673870918567854574310413601289108782211723193625281822495263714157129357818156374173227448285294267728123092309721186759351356985599837917688568214585212061515393817925021224630152523318362940832012434207834727294720732072200542863171832503100484498994888248135988886893059416167785703477410491641752827395215016937939336940964714672229267219357276122107505152514759683672995208256935663998613668247218698459098694119262302986982853140727865299310663583927562903559308884540013557030165571348551540638656840880026800558109417562629048495402359473660471723658209868104228960050192528905424329513311859900978975549825776501194917635002495717768795520136064563020319580005857870078119130644636717330353291213012177128918989827965773568626137526483368630099162096196058949378918077651331099978833978719248119693645393347223303124814161622702702590377787215490101241965844757194063022362983731415554134337644956353704988944800541860720588788460018565614311810771270139925016199932724574098377510074991453337057317095479962739338186046930277870182736022534271130843514528075963039162330249400712036189587878033341359760129233327292753535560972916832809354082477776094487357905864660616328193201838621609191783731592484969011071499955852071408988233073402700496464848456838674908122489160183367085416886963341401883091336661763027714440311250575859481410848622595803625435678447714156764982730259869006091280716910121655576184206586386624594507639291829425841608479745975160530685115911398043167907485014754485026559269519692854132404835336920574010213210021567032545537553532900967801519341516269389852540650722190945909482154974175795703794774831620403355032398505875445329517659569798407821361033378663532450987433852538538655883450371378820837196264985047672055620823442158214639242951712764945161944001293855520199999276405553151761168038855152300345866249290111594325834831476691872632160444524056417173501044503181333761448427723114129189558236084736561654020837599708762041524337055244122286099868205488077834387655238139404297853533901866061267166600200938841321943253872751055937071069228392663636976348402086180367995822328924128349011069563858068029984032824082597430150958834619646226975043983802165166254002698184955550937502852844409801134771020399588147746466872609009416517689951369530337999107306102067874459507119810061441268080003537182956198383044539850394985567076673601586715082683156564405871454265955634227518609191084854210071210366898172617209484835470173297194087533253884265650491413827858491677933304686599652529429742703561750869408825191528791427425640657047556058327099479748558549485353672380605851377558300693711723780021378704011688776411873117692936412161933939349552296379226547829463991184348168637794293665832253791375539529488532149276362660377623178387812043705693099511867280413074067632364502495009068941876413378672660696764399890831980185844525521662324390620010558148399607480028819484268966937974269862709546511203256612806795031043425158956651356433190081176909173764733331390408737816361911422934605298470763423940016126579648252833292091274412517609788339034702682466183478406222394236894682327454304986922433104639696617778359041908956793794191671740830977107706267999337084829554720944474356330210749736919969498075440842334721476580322840033137418844114972561444897348792839956843511114714122122580531806807895310945403234761315404205759928782504038135579763118965323102244531724808100954827369799549821224316664909134365103933867832238509756240546463950684476183849911433060119653362502747032659353100896692297031182275715748459624605431910306627014538545321457478623964830115024299432342610521342891990313233429688628234435338542978782723067431654706414439789059175006257996045409425951678946390848099880609715321495341398929203770676714965141087772261627472583525942842043082488112421535213552770157507609280428851753341303783507652861840749249062358199644126790314267207527155554487619504159797265891332800189834872283254119408516352118513630045164243235948471361495109137909216579012277584100220189434779342164094996816904873740143610315749538889041670842882363450408462282533628546683795900778632334728336946259882813559985951874252059158503531928370907447418434185630829873206117293510112590938055931521175521730514081422187436253219731072134713764126434675649234474813834519104108175948077383146052968281579433180298084006881094821351772818104506498256432736226398187759635992169633049219308983708738090557211780417809047930062007280091007800556935026971415597300076519306050217737110593464442868688500566057097825699390592161282545843919533183415239161916861827828626897311552316945398257732972944770551464659635834156687611167082974814663584513255272702164084184793541740057044506600267034382702221522904448826486142980855269178409736795947476356919335973017035850933239831533065034487944593605312887086503558493099308531173666134746287829835122145643897313383796951541356759011170834609733072284186535193299041208737654307147939071555100928444969004037473111031575844858165745991493960269415312008574195370816034443540440068660388395811223705666123705342461163406972898671713079335812721187342485233153473779917193726062819395142688243098077428399819225025205474306204639986708361394280136337363603716345286076129059342373586806597851763357337670442853206467203211989387839419229217391297142528373282781696179163166267420137925319630086880800793883430065605464258946301018095789255373144289247265741031025735529913460973921453408892902623798600810383604272371382020421084604420526018482025241622870089090010184750137730881134376377661032288164157364153151687412603960112262528339550103391138430993431366030566440558550359136519116267324354213687685400382134224747787787464237664813280572140415886280238150455600432359784726113285711793548304516624027042544098521049973681933659410501489011315031456546061778709828166656199068256252718373318583779489927593541360457714172374194849858516683694689585180803721923494527601811170074126945139729344100408874589576326718048077305850932855316500605910902228330649062538214162869177941547251399136508535381945624116606621096204771215300381805753577147926275540168961846800581277788543208686983158664785945221488767256299873089684903529783246611629042929335867810018361966057274638615062753617039266246016290792373249209132294586157465943273352093952354967750909655378528575468442876988642901858028606091078595062885242266167141948733228585309155874682718375777207185343595374882221475231018676987106553252570824018303947051962145003460643432413048237396341834454680475615890382070214584537539704455838938875502761184724742803166994786092083066428743659469594683359047864387914066903229349171157734676295191692569654734393643305285036119500317493036389515582753588644355739165928677516066668506251897581081530969642130949571230714081420554878205591955290627142891441440354543580216339750166338536060316565074786502635509854660411257000589790841138493255675761423585804738854713257887206313893027661879807772103483893264052399859383109661604343925270822328995806180972726312661461228384645048736057641766703205738475285815742191321617649582593933540482790529134558169742568439741347868959336160750224216712011353021143540988513042526125583358891307973558850429233777233517429742569013288557077638295362855645236072413005641515754993504747270227342762718705194747550959488824387892095913344805861928139648141747988957980628051980234658964646452322122319763113504472812120764120622474205777029542419782318669396312682433097415261274113660373391971699402141490091078608724852182494251060814811933721997995150491396322763094629805285873638296258064700292566583794760344221752834041977209641474803668157846488477978090086258768011621768414837887188217508876666340697626149277048904815298101137917857712670202520387045743699277811380919136409254574957019271345142704577086352574088700522930476632485526469680429856374248900755082146182791678835031564964375296499715210495795658142314126741984363325250227153691274207253853742166445900707637137368175747774941968548338618632706908965115163641946441805951464259690257077863688677701675224610287695328799510389220699962198426895537741021550999286471309952636034815072536058300567321736196243551663397569175263522130248193753076548697612522241540893867886308308295279443802761380042162976026874082545895592790499913926670918234509846173389503566025056473147342717000984212317833248251783604450439754937562686472456004786245253988763553130820298462640612727590158295718401243985533198362113289969746786766149143081195720252771356621294144517222603811178761952709288368068622902738177289638836295367860806451191643937713261473230712241133232123780593485429936845344891764112037691282303835176795363332933133918999959579936643172076825251168937425538422471883168858690372640399598721264135413789274686313054275248452176436639747719801734517512507424308234082690978166582955672657687609941124842630874357000180252318582292768623010655915021923915062990662255718767954884038679205917157693327676879982414885888932311881073449007413810934353434418915866800985667228460875261169335591039353269125928797967165918823654868852686536399796954103725650880210362452062396064387717151686199125451138893100461699518263962205853218389480211994487306569458670573964762095241565411619603338056936701338191166504307293325809292335023670709904612188559329192581554946275914880932250839123034392974410657800346974651651485966158103354737378618120074400593217958396940258103638838862921827306115742319025185888999999014352327152738996483956648875229981071991166740151546435376962176685174522855396654449629859893492652654348304375924020031945381531850400617865138485660147620462389402341798975164766504796123817480174437376362689129418706242470215204160679561813787385153554312121516371024699356078283251062944327148672816927147198306188230113590696405159188307155257289547282850344753047086851161015144743703688600958501501676243123447074439428291098849341488008221234909854282054307260757606702211768652575933838882361414447724719049939011570472943533421414226101352463503015928303032262601999734060831877770546114554488093003082113573345853981729246900198119253512228954457483173276014058382622748939341123740445369177108515301749576418560528372646084927679707196955821496609114633765211871534731800301340285783333434266024357124282605020048051820556923484865986989275765738264964006110381027645730578523922273337296381022019442542397069772204076081847982238910047478544414380611580914909269834471684390615608828314652612415500677843203387546103234216716370507419391375257570351607877205077458267127482592317289848923975160564794276539068842236289847600812828047823846608403847824055178756678837906061741050916953199510095049263867520418166790965869850567900917561774756854838046682008783484766831076439427928200669422347614004733188386973296429580728884265940257397108992037837347036017291714718503268374300726662988346228908298274082921329330965540322708267444679825258700473477717991872511477607261298889643218449283016321013341997890525742310266020035787247590956309306574528438032650938776768779901630465035288885047508759111815506169488283205941244629634534222154052763741347628183241592606419677568772771882816116707144565171847216734621416250187643770801618048475015690305515559610255599405045026308744071620916435980985593307013058867680465888008895447387323202929331429365675966097278249602595471830935628345034889226709021226596602809665517578389085672717471268496460803597617473071623023360377484897401040492449512739800866509319087665377224948177591413951503888833797730219096410387076857749973276086420217574420407803226215704356708377421241739830541104659021469793585757538301436834033575147910962692570481672318361501603297172014094092335482820158229101033046256033906380198987766223555372881867771998890686376060092076629736459366153153790537573458688205165317793094871338244554012695326217974033690777224672043625685591506442370262822637418786425791458745425144288088286416179480133110858219870677829342569143527179847085723272647838497803092223361590662445631440089033184223430998769679085047914525992588469320038977907476154146529788055922298763079888313738451516514824544323019209741925062492655114847803211631337404252523165661617103259473428501492467349260648462129880807183274350724279862918426038186985191217947917586345004702982926097402860520312556994462986367660980901001883562489635009839044178971688559110825139958160251783103860501250361934218776052306686219737795470596389439652976025434965956823609135320407076682313316916945768275343871090504035303484328155890420427977597957150806517962142887902616889664949556227364464451925095343528877591808324665945806383954309275606934659460850625374979297246067012997001023875541306675699859476128844435644807259043008585113145375122542349030784944155933008523700105698075260047243528997783816479031339888520217761770895987001982342606251232858490908326412082516273586332254297582608728271232656936852286147316917660173889527458360956694698749734907365236938885589932012695110085802565092498827686372615353115997187111334517485148803199565963778843877241643818831055597409866206643568451713528554533581953655215668487995963677352227874720289126783492533554727958869979062550590184773388260874903498155389425873514676767657827140989889678792177500680709413945451248544267323210220525764834477386148942315282910931652372338971237082956360936213985913166199099398932901388199467200359580873050526160892322317473864276946331884303289728961371442479022940422684719786561791157825568712990345225302756655168062892107847161943905429191267699452063605013139523707601590528860638541391221925090213558126533438769120687259465279431423040444363693407085563177780706369747435650467173302501659977372713837198284514195202272143007424043915538816468940920912188839569098215725480453412958176423273436854484454656425068738671032974923626206589075292496928842300919696597686988141949825223806406347806761745468752960382572750784198749971055713390687386002251521680684337182352760950578194540742955813650153232192862129334454098441934535713616062655102045671815268943844740884473341955627628517183052638282478121000048206896641839179182497138505969250388128307809758329266183431770376242974364216567180988716055378334504367765252811593881625556906040821904371728183062981027723153410473014243033117899480208164373546677559760697249701487169599341069179335190738560123818390226596652493795171549228882745186872003807431618629457156019670617739587037281631008514670661085851226674267160897317582516414816769547831891866735843227376894138598235029419100648610585260591296347969037267262019107961359258625132462144060486646981650161227183140495987948708905534962886936605959683933170075927771597523650352644758038355598916105687021662871660369990124841640693269122019277929071021841737432771408884165505424987239735287544779717387480794407389808915250407575934633988969802592153146284125428119459094215546732944511555690010724070910868629630448868525642109445424168767782628388824900672182878553056385595034958862297683037836459985470766533560897590451523760659106067018252434397664155594281855209428446247729482440460847568145103163457903379821633971274702764656868447656583258803324413689404281126127903091395170690577967111912206312347351510531494540825574395979717606717275017744352257986988857616601417371796699473406943423123260029504796566961393056221172749199250527711346894016103828153039811005790350631440279783981575043145058685905257667024874867353492180476105275161226967502629832339330136267467189738393376986431337156756494306923947552595846650073326371586220796850367791692572108749694794819048742694433237658606622957556312317044937681573665625973368373608542949783033033077050276572467163423389066090049185876607435009678475317888960978424386876325255694937540510041372218661845478039455212439069341240270342848910925490708988924899659801827814032385866956024862060053603769788822899911074487544274797159581718200692102552034449430619033665880944563491489936381226617218093351926547957680875025394579408643591812557439852145448809749378303972585425358516682073241586534336524675764225844379302414018137267859740898196944074838984166310528528615238030160123542939348944648471195954578070638404056900694474301369446169052953644053969169038120553184526872659803377461380276807200672374603500737545268832508254661248605410202382604954822154241627769384857326999940824281100942184516363181322366843344286533738210212111433595025532875496121140545735244508037410616121871012144375723562356539237716729010170935901968869299325389483100396721604464478520305884990390938825090032443428513128633912101500930333610544520946157959019119705960828665947532474670237759473450434304048835910460974131846576342346914560701641541700396978607690113095136234308279649527889220419390950346912650091231120436818955680449424119515714539372544757595558427784579746035785146064437733519180558102045887221021278063401203551123341889618143332976259535231267108069238358701285061463366964808860164281819356803261598777970148394286221029872175823557307606195637323945007114610436448424702875262690350678958780697213413039474646657367931573747030638195834736766863702105486801094749237499074593911876447272648585234634977205144300248246722300708200087433108842933612748618224180867573299932337746323862796858964510464654603253478156772804323792444576674465523050951925295346129284248460884405110574987389727025044274258347484731564465677035971561391814607713246401582293118991190699674538754580015526090390475068742639218710833636207260149078443756177583510598273312665125754593553166544899451807987622271723077366749538553376988461835199730165952510768759387907772207576514927550431682644956884651614119929600377336700768766037787239436734197155743975172234204409769073428674000451709463658601840944472163443709559630584418467544957689008075144215277818353235839170439374614154131399392032212586133867783217860643228233343024142290291246640382969223065866073715344800283641532312615582809144774235419675526429948899748817028047220847948092016483685382441136579751805868601179262215462228792334531709625642964549530846593668845491724339116649703760972829699075476579487547136164768018575876246079878464489996648564025226228423074327110039239391354517562099873823004163080413308976844369075421649608586467323831523244575720536219097597897484838250138013570349810762794376144057275370918305869922531211793490846154329715872396805245438100398555982538310472265935789843413188264332642093094953414781654039056611688262228228231753748903161108230376138251467481816027496735759604181199428746714289498773969924469302578988086844470344693464169686163620673421824921050412534954172169190093957927578449639337671501347008530475648935214723590628265411417972941568038155074580720708282530434104028381531103563961442397047733166077361885176225066756889700404219073661393427130058735099181874052213507966061284957236061886297818165953293918401594316959257207903179051984560653533325943637073560514020885914471871750720200591585597095277808964943716900104793868437964363130163762557835909733322016129151161351263406187426813902058417341997321738195122461260802023549193954433281192602770882694365208802453588062277331029663819881977710986898409642704692158129309424105279361396063037772877556845654863188060675994296064381372399410883682827446192680145219949311787129794041932981454634948297148318660145495254683198269115231468729385311399291385945285315196127207900181032628307241226746766854391917330563300331154978102986261790486263069735849115517387714914193409859580118487542413674378761026162847848108109880188796013299252008383505153726248129252709780356225316990530265570306470870523408935630712093484675293909853661978651783633095797299113309121610933377862759854695397017555604581968353796775787522745774401916859319384464247461633661651809510814773130921321342339469206726705584886469088972373512017109995887568826727625244835245143778173845857584005192015571764704415063346872531351654865441882262414477244174781786872477623860945019572357267638880639932968633181318115376136351149147935902294450685586305620693209096278291340870080004510659480464539249210077233766878877776305910633187490873019467931152206108752224100860444046156916095684231023418752258447742205900186172310655871497375465986135658165415115756330696745130478304976848982432364919686984723944843897954258859486476588101461220663702924821022329252904358921294542494170841480054679260897098176275785283055415622754378215129985946526135357920248325979992513069307380762997432836821636347735925013742877876630223939105946086184228993138615609312966940492392148145921096127243203632089045298290270476379363443429644528045243017100811610442212564895920325282619173139912758356123969118965758214886681617884655863341763424164498010214197574116787132322311017723057712788648369219809943918498960897713913447256957443167258504311063891337403572132381848298022490497186978089804370221567000898013222821324036717523734711864478943957881243790078646264575967503106597432596582926934072544749517319568464684817515213051669786155459238147842144276284103902935452704818183375497992094623432447765637877108200245724946588612693398338439097369286223325787996690457921792415501616859651434592219097977060274533219988714577258498973619017559071268807996065041772360365445404670088240896384871888378273590467435092948491945519768388217125934393195316338516804092101821539888203749960800596871030804145364880001090273003381971159764850082439910050236373962775945412077885026429596358539428914095440764225146885430908123555966957322953671659820551874434708101089376895023626586457790882384898481998625133403310363968748838525936871392141363593701706479632701293257066862256871920682117674495558306941659658493143735996757542637396047629366138676853923948237634019962249460775872448587447477328847458112121756439489407014544050234252040771886063546849649201384597402230983538981832676128684843488317058667531581348146907486513063862777663247258330445949502079804195410689799990783086511896161375113021854309700100785968098143897292024046210050264169145910214438602676367263247049357267866717690447668728759571055455303570309794695193206016503528596242788400456344036885075980085669717828312781986580526285779498330562384403273764858647391017710710429317897765018778116365897248927511259323644919689746049101617152247907265202910606594699248663541670294698528535581532372812195403272469506936431839733412883865935790105392644564141403799742322413093529690261033616389007484979637822243784522101005204723838052042066032014975183304139290506603627356978768833749579802444969257545488552813686157840300385811480490995826014521073394846581635096341715812477251669475311714159134719297034455206109484358556151380662918262386243545641026628976054354611743305949154675281999140407464973314963205346943552234916359982172602003352268901456648470012165405279074735168479360147516671877628490710692477375014231842990523121736854438062609141758191382903211310149290078314084381397270609475348771688868418168991705515440728486707541636334831363536800553139853465129828132482733727968061776257710706082695795940386871255831570404191360661996488990010440870987288116685727123517321918694394483432356801833117200660797118288213901630078427180061254875734139143142019756878684388686963858534710567674954440768064118453790226945305134866922332913813781676610133491886967939641137819320462337724429397703917512800869923909314972707979687872896809251069949795594578139513107228542970289599927127817554999830510715684082921469424307943643440432849314061796729238063695755101694755232904680441348146323857701925581251505865288456628478793866728471242130261301592464045576889045888056233675758627238110404603240176483582097390967783271457954584428579803410405859290606751390510734277171544948610711941937806994218573906301943375503576264537197992788338933701278950833721749305773530015256287122175345235937407378185610595179998463543544026523116793446342109348179663522019206507011501730379963524603476054967411215584037583804666692908857507454384992866101031118239600125853917480841104088287762859384943445277582768939645696044255701249005800782737740056464602381463265670042588353077204415173733282799184778542130816138761322566202357050949225045723123492247850819026851406456738718673211804343361654009130402985677733252672248965420520221660380624520158598599418808343341302065536550273285204613504807883875750774024906942518307389523951262420424781167863371051109544369427537819622619241358867431322682924061667299353255152943483925910751902762815417060566257458002767666527009499745180224061667274441456939323493495718447887140970639892827040993411747250139362147550880035193157702087634370711043866958128034666459995983905365494685034642498833880865471502224418568513062806561917022210129056535331156056699071374993956184099298348200651055025900230914459836023051215480351621104062241788654646857964718768358301109942367665625345366090500379407492307270922660417965043065487754849550702703826585341160447987187077375242480236812866246471332568895850760718210533802856611704856288944387571690610829207510301939912007932086248736981827204625623305504691708657077385282949018372486772688410681142418867218107049816180484462226888557400701506551267733445673162450635590022750424097722555431371013624843938638279860493790697530713719419602039517747709057462418055276307880804491849093344170177315587468809422077065051439868243648097787778891236776777595594202623204874850619175163338198197038253691807774254036112271682758741347861746970798291398194818470725073136402013767060153735744028994170206449293573737072276090288465248777656595445962736973067603163385233076330129412736467237944953955640550019632699904209590612833256778709164991751406447526678801140619706949949611195530599061497900973476277410657502310458855641082110319404195691911904655259162842384607904193730531510716170693315966293469287556080870533563459160086063692669286289382787730639357354693428435551976072060916010169770784126542077645270047091191877247993389099196870220371363590099269337379374315223499656732514463491440584767299124957519679050529832532404645811506074101841300525246958434762279357434890285649002539891705967087366994388092031187398817449171587708435405033129955443864096492480732509063445842327905343612949397116180562950187809354697382500988189088506069990159828964740704631636653553276233093942461380664999716723997264467060515622130542685142028235912702395125396857757254845415599842938198983758598998222712888211277924351696615701918594486116203116197958073336502154615561253461114301540022752834640188843215550838113915003514383099433532322745977439384638506472413575226736239719153586041881639456484100569985719858071486793605266720234369555852063895381212816147026940638789526084540887325443913235242513335069308774730842557415967900140711347180272789863548525399211168275353037141573262394729444232946684107149333490101575938010922073266466956156827882815767339321939840177739765645477666752155852323028041144886122602256418817899653455868582337822756253906033631909001392183266232042900243994322768258472093609555048723779560557884636957290285796123685253502357897573729595066980258508555344625180078645901298460404767466439403957221736552664001178287052579317776381277411064450256708371266425397046104270564277270839348833345864027955381298872172029163072529349724910796246464505738371119262794133484712091528186599848445339558839617728216801749811386006583384093109571603485601919163639859348981154083952469242997163250472287128435784711883622615884829734436549141496914480559066662371205727620196956162591222431440520118075684387544230327967905789787678503486648007354302299599159978647852811936336065400050696339445935625123170170463381225379851536797156666735149011577329534180613170059385982239821829438710461288501937860382572252508577379613841568053260559894451405496549106595445541023020883966981015291360325367937546756117400948368583097414807117298295250939897506981436248405684222645817852148833886682168907081820034612441352477606135904705584113281036064429770112102187776331535896094328552624373157149991870416948881178984333922166000906717613450990509191405450190042076995027041668482140946890206143837709224448047199810502383541513002110466757339914600593022776527480636240657351778922747344688107969434093649466658512490596370869553515108937297443278046938060994740414471928851270304202108609083477845797731018647015912729191846219131259656264391270188740623750410403698602076702432961101273341070121326167520297457140709409642769413146323913832394644645263604829235193172589959211959862207811177836455101844624669604417321661315455889829393403165720196099942362479359629581170755867977128911278107277740525040661599434246724143772487973867756583612411820257247647472023385679833381149531238188633633000822863775676381712369084217917250602126331755230823187214333093844142493384687088129250238170498682804179617486539625994958188743035395828336073950463057636538898296628669950704865092364044072118436036849086742571157622201297121527500208085981028502987995059073654992850486199299931025154041616201680534035329087919348707190013984297332308866020888088407706995803849796118177628510391388623874255947355843650806525138771558664584974406671071799484227953157261710283131719483797447415236327848184947180608295288003937981024059202873330630162464018940353300164906002201263999349604708316875174644615192394390407889369604596207938035825407484999253927174610023781975952683150292955290816938458742231098301468959914442431652440779020850050879707751911138416899309351613905825942932839718018765121406113917114931974002412596067273860472808968941678564015432460257344644178427820770296385833749673688862937601355052054240149824622190386155873857329986530870566337816194829603691621613079427027485808488416631314483311993846031368837309750097306755269634617741094352625328481964387056909906492768393046966824329514220309215076109920033869265975205312488993053847647208118274217084612142294808761045209636093558771535703175718845215176816562574692792173503714808473388617337112927658553957008246163425962805263209184168667042949693995926892192965683649176624216114543523228016661980272057577176637452208363664468042981600974160151391859481990272353880884754664177255775147373323263263050105047248594592693751022621050336432468162726647328142533890655558674221427777624648374613096085922627455720909847734429256687993024738297429857674433742289297283600878488440465392576972126991625532179785648675019141499647124473320970398001363242359623015647284907565493358324656299776610375696880339759308584272071483682808976580884244074319962562342057672537246646074858631257706670933484651007819867122909628983179543238999340748043226967532014716718981860272581123179586379555940901343012800991114437224055158389374227705544398155043825673256893881115987040968015410619738666546995225094927890115925753813488968906690615959528299739205088437419065764816371293868094187679166000480719969359795454594287968254015450042368154798041186659905339493554248671237834363406948713487858201174343928247511961106482005176395029646824388995984222730582793666944229414565546169682046930138009610815777252028287210824150031823235594410353182926528592697204499824835732087710492660935700349339019429646769181776720690988410847958729594745792959541206790241314661214794188050388238565466134098601198088299548445509003037165389236644929175449786602041321485770320848180289858380840363251200199237996185938697591364105999938161034238183052903401621771462211687575750954514047048475922006389919094272482766453763911056401647267879542120002101097338477344653073750559056897271497989904247887841862849190698126275472074377804638680651444811202729444136339114147949596986651289128493004773368473256407484311831445424192357871305722548733664788863233840138853324237827846573896905066406020338325356887370221467411456162896911109294761431895673304715942166184676581552590900075878953545604420122741007395068028882496637528549691175077321382892048994402426138353503495362881349552125850647670853738711446317268287829562847666271331764902317683021138699004989003890170947266161840958650910436201218792969912377957445616496532255415548791615060450749645106174826832490913371492683236227548287377212290338930012956903362599195918801353235513103270713851886555647662452286665825696414099991798716929537060220830915233100513635805349994486193765757977116089527728965284741121664748107179800064927329432695207277052787668749979012570862286997248971651105213942987538445344164052520889831865300894251409219673353450220389362245293899614833161258966907003354281211918604329901049937721536329600688860908018019224059618974694637322009462938948314989963872217313123377742539395486233817285746737427915609421542915941237098114875917841031634000343415800729603910979901058317736325770254269544010439932108480698337100206604585169375633008197030735657316555244445155428715980491151998112991910867584947104683842941902370673472136886841272770560727548920528572896194907748387423202992218933132677610563324592769545323719672530703015520830751713922556509582593320359129901184592877939944693699669317348926594548176439921508961000938781431207478909482680875238658197837663859894481814465881539433245873796592254955839768770685905309770275417295644542751680091688432978600054026347614576936762128789762508074755341005864845240669752330022561032798005314973653390873181665922520244825536632192919811318463053304900450648411453567656797921155827043806529377237010629282914937383556490793183317780278546262123648336854661387998975513279087269801554861624988105099796911962062162247707869005758184368753052115237348360168283052226695268637680772138085054921928335542501046073770110684484921164551066646271477737689515240317583260248997719322386488445644002296764598994780672677691591827066372818401921604693736858182481252007307229707139308237127006959780000872136805080050180863857352079010683860512499623009389707734751538134029339249828553613633058363125131618108221648636759671641078965634732947613306754003522601819858547555449343854598976819543694478696036362732929525301372629345681018299225926832918927136995889197383039181264185371246600182350984460590623720435837682944765748424097855554172479537689048841140784951934211102783044025175018668421783437697511526437224528371542073031591660760078306120158886437125253477613585417643167228556762110370573395472397749570182781802872887562024596302271732115883053819790988190445326610648856922557404689202956253316402024922868523680173714834033196967459808625526268634575310234124781794412432247364629963823034068157985525050188639403561035575624984823070859521011911204129256268183843368148011345514045470315448801246579609133972846752946644014249367711536712177541962214059382324382039902016366797388777572103532496422753093822255469940239511765690915169993869274487834340442066926475495848873555892043260735402475582283027486106882453109290036305372305853364525537244614266455611686885306407389877543045210246813466953639447454602817890680356469321602372530457365226839783420465098569454580869719576817143938591104589421896177562707164605777244767064546936538343891331420456790794681568581085559666671834006355900534426791891497485366985529207714969016376005464640147835369969016834593552522484537125532224669045676204676584089964820583912902749144365576872690016371435538404365127848603597966372090953548413527976865770486412622599061996397804293152608624198148868833836252390344394274521794229802739194034898036931492583765926184315461899167720275637171723116947579059381221907030642302445381358898439092870817855537935051180700171940292128261845322322044949070855600030167905675152219792877689878460592947701598284423485623473995092742200713652311222504114353229259488613208696106211773936887764047277026792052738439415576521017787176330568072945047465846731781757833667785665426341061630196733836000460552153725964182748672369269272025807768373962049392867844665195066507904555352101605221505970400626026343236529609995817569593295336328206196138118960963233232726086314951783265088932227774642109681819139923347244773571072854603186646915950467800811987850814072520418584945874632048633178144616087501109753279631734763459995815382024657864020931578213123558279084116880327088550334009346314021879634262685416903010396836820088469263728558939851945368131444984853125249562366691362004324377243437056915395393258814087829795285803413151475023615584839892521394775688373295069423558282049841262989882799134691702139420498088296352124434732277220166159074996542121000209416040424050526119577214966470959034595067972632992108970021046949434487581804961371424678072705337847014795154693165145254091721803499246245877461798470133686269625974584707304333598459365197071741404956209629866133328656217474412398632884808712687220585017273378059040864907713809577888610991763553941595629866756533991537225398996593432713530782963803809195900244486512715675457959529091081489564750684593897244541682736833344060286032447392198636465737954797760587606748434038573664405466628306599822856351612639686519258316248644204688910181126266494724974348548556877217664878246620322848717225961690386854103629039068001597413767231859155707020289183807726143303386740500412122994670221785311613783300307519485441300157778904379987906819263234243985142699180263560074663516267231667471136919573672310774595440536307593390704322817992773878619270328848770224403251863580991961862307992640897563844216945179519976271139064772541057849246200681614501436879147606124695966821704191637785045369264682930893237905641568664505519905703967266145855920689112079121915451382740878740040728586265173981178530889810914709981619604687230176360568065939312877057547135764340746343264078543273409497353552499789612676096885573848623340362310942907674604406077768953936189706898728828339581184094973587911439831776279763160215302741310187709094052383053109623748531851337127034438232032110847494889187314802369959168479232515148339089826545444097186631850468989785444774902012070965586770998410297305201698529975675271077991204297608023358540735303293289931355828363605503299051645306229187859826398736418277010508798130005616371191965892530336627109240514189730588639227749825223225348963901010196068470656599091229111493410922777922618255070562867000467195248734830378275168895204910693111297372358396186055320317104076315683045938981782688076845972787791083311571670552588185003183834664217841703520863867141106335230544682605664408868089876907141286827953337962249170695598468071905511417757671044067202676221001815349366097179792262943907288830943167650378775830385166483841288237486055451007641536949777805748138745999527961505409696657090820042696044429704410998417410163693642000795913945913362164723249205302265154152604660085942400551575109677577057898342227216050440982663837927634323498479118753341409889026262724972073576769109576905370683941949918964348423642072229158244863013186177601501985538232978581779195672110869956333572772217090260633559955283727924201845818405445746464080178094580583984245145216932499915833474935430325898284740552614693964311360996885122956897977357426099391198260552360542680259256279585372773102121732168432110998135551407064737167886376577657843786635484352311386869791399058609620909220222996125221516612777233643304508120406335107175178702013121736778098453455885574559686574006767276053655740884867235708493900395331769396095241395616465376333538544534912840726974604968582564793621555635301347122393244016412032355996985761359430459298670447506269241297215098421434840993936338588947992952246578279304297624168173328653756041846280894150256331924886421527027310063196808814563721570783558225028511646254384895198287209023627285330278303117166225975309821183284226528190604344122656046289139149815264424672803789354706645224839735718696536394565023985945740851914910744673199343281086339326639879456334909004733707327992092889515714109517213288534890644561704963336332270972865928178731475980408206048777803317672474706123641705781100096462037173601115617235998812779220188853801278227347489589521497834965936197852131621853595524088386899883548148657787278906591863611055757283018492131444215316039098681403201140650459370312742727986028794206450814596019351149398572174293773987077440577179928796851948867008564894250314901804393081753071608555618581685181007212276615918619600557321418260987016853129986045572997576897622878824237510909690044796350575907135314540128946389724253132344395480619445339810939363372800226466741160085477411282295336203817780585610190369599764989176974530350736620798053079947857602065569198760155681016550529264421531623339825332958453167748004071785526276741929385044616207568117241879840901130039308486427348157963315323276045624016853560510676475261891289558810070581529363922788975157361367707972052197355733234593241258192797512416907664562912260521382451620354113337320260473222304057593695054442023006483448300882873519368545073421514217335099039644574144715500654977736442846813782883523586700258410152779495275400395630809502098050196093859164005097962011849986675005751905233478366814365193081788834688267884311199608549860780080430504534299150096019605439306862122617032822469681628439876645890049587319964566968415729407223870017073586322460565684115560850570135416415604298126614249473852966555757994841369563897685972391225266873620211988982834455355914411674589510257592404657325176224770911718503797568368751166330400954792583741087822979038728241812283906698956340364419264543014063301834828355035627699016341620367912847312171419180575975321093376496905256726216124210099440359568849813019707210152963726106746690429037958074129371104927834482840576237559816263804276370050265654766397174819315396092659606445207303271609474966114454891155375304263824873882545777921752685313277859300890060532572693019822569681717463109312246900785172640242741247817828558262142763805994181641240160627387051901283426907459862160922893918934174892619376711341436789353180573099285616962533590962980244095990223704673645189272898605952963441397626526624660862371501531658912485579427524738760934221653368009617693315229364939471506087420015764750882836152725909602262884311218796617357379494345893252378813527234916988765719016240224403728529833340314210830268658424677270878721999296922242718000804446321112195720007739679016121609575244113383338781080585949004391698648462125143861730459362032828818579617556922364693807070721775872166436261741471418662088148234158389301063661481269224533132705890512678969546901147688678697610325316697487712944000794171531990679895198236668372181416051100549579765051974164974226658303844389493173057491382261277335770052501111569554614919326677126200001521796717957247211601356085423735260325981571518628127161131506442650394585067199626129372856484643659534590036207404914851441975860429639951139285200510457894827159216528567462869044050058964894202772309296290393078266228984228979155674775268722818459203616908296635291085169387601259740301752129511138279260311321930574040250359246304274046537600209387874814817374833268748360083493277437951861101561926676582384076915114962611259736961058853351417139875663804429014614398479046108310051697339488820810646969200226654474137604686646712133335526585235389880400640052898804100197871053534832481401295484285387232723620469832210837426051395388195954351046648754636368435129041610726581051727431308035513987314924370993625071601104999345762754506755440015636353731491895817870758449550387287169510748925002758647003833828369151251713624521644110644601128628311371440051690892514344645465654624473750273503685496971606174356439484922283142593806464069347753694106488500272763789548333812206621404746929400305681236724819574904589012636005652017543326636790867352590661236599497916439328736751318534973928018169080966263973828967888278683912060267149973087215196401616278499638635452456793123534309296313164049463922822896795102732306712653129999280968626290769904092150402917527919238700454422203987335960928255160004688981606350587545018969248957079474161655849028086709940464739783919711530533617749342519775025516068570959943975073410527457580772091099102431432652706879479629059655990244244024020484729323775953465558740537887134973067552537500720528191841405525150799604152896970631679759025459155963164701783638252314116013732133767107754279359615325736087728419509161241253906878221972361840239746373410223110430732125177387915746493908778704898761209826049507354398745249085100590024304317645554190916265517432981482090132571232252445702617158738141563464291064493366537381626411418142250864947922019832874342693608715594161025318060049296353459895730473151452892426431397217420475515270009627058286431021581715653538981390418587530464505942062942510637646820826104679333136228727142908759702056763746141433212966115928775635231123380262631105580953353253172743768051080501961923931414195681859415863311422649105271006002392870283505022870204747250373362928897192056328168559904608641110770607133730717107890518512467937030713414552939282617046035856738666638512212463390517239462096819018617796723650055659076562879855007192959618128590438316959988716247932656514599240083345556805565260296077019015388618066584559927477416174929641893322201029716476138947068239997733513815817753241755724679846200880670760536329504606165548230165155736590205841237737920734246576664155663312476601328889933280404065392318289773110701278796699227449585192254837842583014927528372920597316284237994057802263988472643173601499761677425256474872523933063084503948086797046852383673332320434556104115758776354215432166074935185980527841316751300251491544291913981665487350460261030033799525533818839928963140170419269674655069906270599068031211356316583838438902439296848466967644627624787249305898724930729897797540974857232377112195086947857691121997768995369346219076367207184638348044644799691370580411878775583417119637421920813522906632368766738652226406523776922323505868747279405780726871531982715070931047464762746413420040654709353899602820252607216163866412946291924485516147761252114417654464176486054739586447335829197984478202136133655152849072677077909213540068669269830654614585812041018475107308908207711214400116096511231916943693676342407633423190017560018630867894415314259557683187075941929592548231377817518598145672864824424213017753776486089362692474922237713197256302189124755827310188492384231827657770022589614741451477375732373720387840108544547405264688801371467590852183174490850278114760316520797472809511593235378530141285077499175879630231726922341375169480141750025493813309852602760299504538300931850786809207564190851001689599193093226173875006881184940666421844981468973308500525860691599392650611235217018249004372146925340740576066796926752405535540780028651996882653711655600214763661272053464113714522797571239010538560620894350409895091355606083226826291668233967560023416617811066376266368959855026823197147158932237039107031105016756444383026085352008395118733634054074030453436012196115466082043337747376535310902499413852721004333652098414172127105031668577846686985184957310290188708660066887609799020871842428304694106763356281434063453570645805213354112272402907837334923557312521559379154215026612793336190451277101741014173242039759217612040588171736365217542708749524793786721539777329260493131840912776044657646577086475360348413566905485518116627323765114097785384241562914142760416665541300299469443066858584079639559773413013082722048764653410994551331954993356433392649077698512252659622163318083544439217245983956251398548953428558008015460421673289034791859490383682348190039482205191493183073189076307945591911619301260921521953044408092576986525679544276514095701661516937310286141090420895893520748235745221479516933657854449472857193369878193771302317848616406634277312917700631921006405184228563640104909725308189218302964094788725382785681909833600229880240107899603349024949457826853698745118919377437456058760788465675947733575241838747667264340244434853438443706094508362792949707935736990010008283110391561177596573259750456071518577498277736492146830151274912306527325575881933755237544295151005772279416137425533867719202482698049371003411503810043656461627790388477743348599543372418847299482811213497030218606468042545375153405584855596171802333455107066462802876702583900103635092996956145614878003648203788123656675007742648112143772883457082880817517966480685536509927907163318092443039037179611837944387170906663378652954351121647540647713657787138355332793624743084457323895316095343058485061265726185689086141444555464072430850817007435846253199728194776972739414805186042719899906855649476179337628892706112910391313015677737092513038121163974230394237026964927471132944041988881262088620296738678581457019833256992233253457683732629853429015397630933337625892973959995903765711127573485205522584947490496319374745975645616322347779912415924098482654981295191224904378269082189549462351460974462220885920884497458362643207143752374865654296705986770886966736973805618320797375483667170754413653408079741428107066832744610685126050423806459246252433438170270811238831886832728947547036786071416545655405094155744762133454903006898467897369249236930053171570129343121960014608230146857647106145461543656201681455497662137620333744649220419758293659356779949063249808690407200793219027979821493910561682689925531165008039062413609405876661868977386225588793843576801558447012349171594252499075700011874505294238691132969323585228765483964856731225544887977954831981146015463418322332169587418388126640654992678293886613022624012673391951124063342861842439598334878701655261038501972178326967870307142962340456108825048816042791407586545441458001930034630824379754987288515812621600560286470549562091784883201092033287271023172683450949886440867765734654633449413065513888908178858205504822235662973666168967409029847741753801764492747494159242454035455932317048360152932998521012486170063325594186980215710863829625756779142241909485033251346696553815782803406250515150756161523813463991829864759006248325060204267497640250023050192986894154603635699416177232982540740111498024829135197747275458532964545060623353168285894969605582421068673771094129551881235497017259419766359748288339700029579352553930246331036024434637521662941876393603475744741566580938021853612507298332123211143505507545156635063732703473847541288530236869783202481012346225781838094517125520808781778889562382109845653101849089937682904514780320259767000238257313716531973897531088946789789369495383302461279497345111484241600990692832739878640776827151665956500711253359804834021093633252307367074414388244487047243142105476998321865790784206139104235408795411281311284576722693942863616150641800559806927629608434773586155395000769940758224882949929231974354856267316070035658677227245138314817217229567474041476191280275491808938168236124751406015181497778536320120685358333622402869251411988004760804395095274115073765687876269700359263778991695504922074382747448849567624236370506484716511503271673342833732903344237715516339737245115926085351293308043336415109032601217009947455011992199570051779034115474656113425496876782405716027012279282036647609556148804776882972821837565783807822919846435699823510296583696191080337865020623694073253369550820340594700199177623339669180863872758284739425995242977116875598940916366266468088472318982982291339445487067778413495506239669954586796513927790924882837173376570945084697333322469267988218344879599352939956801000252140815851079162637545672833554375967331937620209331300599021808253627271470499874756214089655350235589559763750516434518710099980923168114656550390398840819217983726071731395262616732152524442808898235864055860982183246588433582117100675335354624112357611902277636236138530987897171303065986563452038478256199358038810864485056861742422597974962334384280312468881667146754102347930913625038995990390458615756986727676557842930221361803049911929832902323688631049221864921445025547974069542066517642159963937849777850449242149683343994962181470424966974401919914879973543584144309470737549420661771521673204659623343116886866417105335021386324526021190923780098787776032780650792539766062566380972738852555267330524193620145802634891585725085165525404012836752893930377167572139846976189018543128019543863717410764076633392835755060977257019185397655801446881327552583996713403693615624075905003334430165760394575045912342276772742662798820715182778942073164688488987492323414248824641298136872996466226421173215566901403028373001698366431876911918777593573584897534041836249383727321066030609598449531612515646004412029553878893111019957218558101440137293652731685131390190095874579598541304175958337458938143464160976524275314406953844620083517805605242810521734348516315178294497371189381899783057647646490203832001259352980184200119037720378115065030626753713206453586006688032170863038197949985357731255043845600701010879652694578930548213039919491455126234399599298596340296945187566794677906443784233861608593345856360497303718646547499870272265698682082565569056229135467295843418196140444873846736024208486995602849201601642276566408248116743383557182362934945515609645448257733676711976680667869916054289432831761665162923094850603858634548904589203391965230493803296788672596071160788868322937540646742215835737202141219943703921649642886627454605628270200125565788452268987544560733394680597043713771592221002785334804951938257801572738610647956553114363016069131906490777521872904231574467280276022285360717103830474906772173108424299971298378883780026051817562488121996188285204996416731023060346422055292595891826883491733044799597009333854209311240044085728470709329044698763552164104656949540944093885919021511711598795163503355195590390234603222433450685992736499312671623221581514987289021851957005304701211904030428280161644829635638068747388643274765313585065503548520447019252849351070850341918983036196034782532420836792147704396382871806315414883249216770992934987841636530055043743941320815905178031410061183401328166933505305664032577582025745540640280964782632800200082813133623122030937237845452210776880796621856171610769361188707174062028225918383299092786186825130691381667630097264009260907911235199990473676910217885533540000963098811245350616571906527762690605611232537291754758034298629682048056824327461967137961126077859187074245012781194584294292271944600735516328978298616471909739366016807798996611436978354303814973975085072122155356466963522422235891003580030526909067800763681311670008380613888796606160707126106662336951043322208118615956539583568004823415239766921266342165291225395420080432561471374038144702532757447706904291689384186775326749918273507658799803972295224125619965391011329077453250197857813888117605547934636241565593576432316429946191122064996398542729183257568642405807329997540131631408158618596228170598305012973666007196407338097356445000388795699878422131886388144517983402464762196824998576279120380058517564941229220959213355548015429456456456137067152305487135739012719393082313757067562666193384836832166578523763995048032133262767869638454434428833991541980531209251819891690903036310176224485801203527065751496245187581684267850960025727371845426652968110132001165017900432973775259435010361288423466300587242052093429662088043097137258098701263946321911770017158388975757490521428225525670930256964537794789297734176381013802946506660530759977245802646670692143507147577553501349939254269703705556710341529937699917079784005860487083920878142218937648399280935366523141705980506492406951564266092516973354355605583263273081359185176594241825444957320220154589139979582965506655777002621355656395948454060663563744550203625592271678129255324909997692572883630236474280320195178995768129037595488165184141906421609981795584914628067844283849284916065111737387115598185166740937824720357255415676883840260557884048804566790562169189384756136539966014963711164959020409309879950771057738976963134488174465585993911154188446649753833855633791221249416445975029862668525316466268619601058642869612258158674270106473576768580761117375989173097912737741285602011749171063947635512695439139604085805768036047436369627539074028971987263083711110367572349805748890494617606576935535528492379629515597081572901909536553195932354702929456258357651354346159420543922417603634849253212634249557255861158911572722575399657826683631103065809104228018800010026321839441031196053937535608284414476693086586036779865601360065584839819401308444319204023423856106545669432699917130325112594099360766642000417835755931328663972636349430454586397512582069063124696758995036124112710935428135209353506633215484169000635951470134146984217077764097124331306480810077964672709878541241979580735039715555614382541224364757235148718018321365441476709216147455822521850060847940001260634285071551236024731543489065868184148047358619883800324618009522831338539925955625485312829405631068203426807723427808835317150099103573340297027070322254904494318047030474385517427985997911627317639686298551812502425625233319890956842755758873386182176346708269192402992195062617567265787678138510561241494804659144054109380045483463711878423355894588349237070208137246420765219240092256121894721675447760277207933858832640515149496122616249514253613467826427220538873759444760261945118420779402615776938241956489841703370088748193798402202208789021391786700858184612772910626756907664008901765280490805251499727042421758982354463281322348019632803897587505797481893112866726181991925219410179295044757925803689995328015846024427769361710651995199649981196466129629584933075292929683730920730938358362652887728178597150352253237876336736958892018559416343769762314240419541392803316747811961617737334313752848544004391480467031074863841131100909664917464412874326308114717166494271205033232191648844258681225065845439687747743293026831875898683960663380989255879050730542708485833052732408846324939553331354731087955080883571034297354339013178444193680189876216514205939959602121964997323511435390961668857482852311485018767479216172754283995042074323378289435827786889265961441502071170011654976058828933173655375912055632798411348930959786809560196502069973476518131560797930238572703771467522179068354135557092175900207450727591319815361271913809255548570646022675334958904050889408179606234135378647789609167017344314832826812796969577646787045093121813256726499165088881175956076231684757589578870303778108730585609748873949150389263061173835034320816221198158424459728135549462009924755340502000758012438224453648648253316470242873082157093753454143248625726280285974297625051178776212529267296278811277625218238759434481346030641114850277976432096076403968040518547795268018027494698532975975975734533571793679424780035817998363010039555827246635072193588916625059026949161218758464447915065791384708629460904734266156811074818767193366234097586190780540302935547727558287329967444306495963332751691261078850643762725527982741118508966324964554302643815890077388777916754176784579652782831388129196770754501891318761755294302664246399375737078992842112940765944518700393375054330620642498775399440894540605806717703082621274412953187722300945198307741026468697335996854975373533336201553843477157600653810293998108698815756748994269939123144561848515796178453419862862259800929577092635974448971727006621182459964750613816040516824328130943112835702182494611381436641557819967310727766093190610238812733888181911174418082280975395221792150445840610894638635497248527826049107704632483334940137986925733052144236888046464943039338865260779771937845638064111614298312270596829271354696972765475615684711331984762334170946252973000802059412899323905464129814424078118946456531324232908944217848979329548078628381021220087402961319577606778242885079173240292010702584505751419433096483874334113187362092341961156361035304986886793428528700635630181232798161011615617286196022061872257211415283480652329113021479423829507579549504786370531234008775956132468462389381443239659461521799355265235240654550426614715764659542498761411803902833750475560746338499329220160666803059375775215910470508885106968188769559856773835612353109784430140713980186873417324005595900635040143069816156159005973113707686076334317480708328265051684393242767913745893036498590525987082738939585893170198475301212116007361432308034714742934798665761292135911529196666718969759228400317149229218294586443694337510183477459226298944183918719761347625855618407378210521175369672592781302345878703458321384616678221511053673747768559691304793130369786226991509904925756734359460170123348779249646103793381500852437495566886547559519363640184045754515310558037724448714350069785692180742117414682160234157178291400996946814306221823693450288958648234822689468725609596317063794395429686995155515420506852417238494642202881773618957331674412291842545824806527746621874081068677092498852064350269030435350843113323677943259713669117082880361769611924415883202273739242431924413938410621265087343601342877827966089062236302020455147240037810836531211768033202503283367202819560292309878352288371084194321844092080803808391900967433450418545613499296533656339970817532042076865660056551135361621999594004733624485744101276660293333421347032279251331639701914161510462807929115368744825610859663248480796094053177605508490681827933454969842364207015741507184024099107304602950017468529237253471174814793588783862621467045308381152267902105693448103365403433103656887829833095681534307612459276108512956369916739452085119391681193184947002225551043829225802614645422109623027360297312713943081615520601362499533008719873734139665186957250014507482413997798708662981023558900686749997488292296015609873969369487601780102215673076595049145668589558898478728031005506895727052168402280404699704423993570116480141690114254300170421041725442876735787759097121288687754902841489191520377225744788060904246371175668379872996076572018489368738325457047980471195553990657907109641489688484587133346640013259926347266512717714364692577663092275730039918019629630873345938906337994818214153942353546760577411562122808997724352119980408908381567033445098177983301967667083536553629251280287944621284098578254020376325973427532313499155377168423195447304591677803537148739983704465014079893426765065301836675941453322977643205674035170510407432749000612545537094899550047099460098180382053608143787061259424414037754292757466313719117482012841525743566357353307088789173520685859997427134447111058725290601198581127893951250855116856018900895425607881054301968286589425009691409153632889045204274604354933345948993931664742129302871098212206096712019747722092909909586031872540945721245254310891962228188141739884593049052180102304471327011840947464120254131236196948844989601423877541191333526757076673657999820813410484013208637184401332295626679522762372358372831640003786868173619085319398510700467285380699383211598952522055431236423859939766409540549189885568891221782367854681600059669761592555350630710106918125844859109929881737850434018441164407154526185508544268246369698205651103751389963989159542901707653635665679127730215807724933326731710336771650811314005110960048953922512249524958929422978983386788332457000180437516975206790790376957451280612356801951682610778810201072370852883651627534699137096539040397516342845089374219143351382549963164379735969292435578533147465499059143484415173756184901533520155097066174788013908383378806193035454089063751867364430304603728512876898851184943512951827244336679542620544138028356890255608301609144180946571350478484777369872357191292223962262571198721268809578565792962485269048604576153687711924469112662602041582276865846771261072845896869420512597333147194498581333052493223790521701470594246276533838960377162078672080925254730960816599207617493783157289438269846992376732874245020483900579119870778864893309426257035698269374879914149402340282428686969887887005159427689285645439535298372232236253387152616516857086641945222972614085600615872363263798399031949331665389013764634269023149896895357259025447772415562861389361681550810327748077992831010213440683225035538648409710274633860601585438813325204950283620925550045096699431402018545830398930452083148088761459481726711901898059089361336368663146320930467564084221850259568568353047538060254285065709406189510007853218542142551596493403739642955989040529350606380542271060115418164058437017495950130701803049294412181641433641020756999484329294638727712125589163512066720804993537414536021643939490759003833706802154733877362314994954327034900337255770860367946242437521641671870693574463745344717652752509522036231058360643546381908032191214320178268999574198291278146447419769631594347591033033757034846759197887386382526603083255234356653006670848819547746490021775221642020382411279015309886084637144955560166834267431351172674681823610540032780368101841508206983735602478577591207112598320638206115977364997858174357484578253377326511048696632552093801457736795120572368574143448191400868073139247645699915158155631309082443128791374501374754218178856382747094335797681655710105979240495848203922859943949570892307806795502177787072032031077118417332818243933374858629702213762559956847478738675743778820582370280261765882055223290391287922579407958917727155173574153991372490226184295493676288346289712385118526800188055333051712547732794088827278874600957575018706379912170744041034281894105568286143878352682458206241923396403722367947462933253125910429881228225765046759653897566165746044147157999537145198460101978530073152958714854453322711163305283601293205721357516094934173746130675088879792967571145728111996306343706736751885806402853732575704514600397146426346701205391289184794305915096745383393228633694019987531171476826906054735169712977279695981515942022648341194555758935780754158275151716399221521056889640181019358857822101525154886994336963153877487027265289492178359584695843373861633234951074500128280051669471777514663719729952561824828795687313218513654171785908907976260731595577769975721759172218979409891350139105659431186720656394464918650748678279160183995652293340089430049233244975318907716953704825706881239381603192073036780865269694461296174769648672667685018825129481741834258356080117513484290828025717437687608379053584295329093908956978154984140077238535821906877007876290474321911640342019599024642739979024208223463137362681740277367775057535844574087060534050429621402089064510163500799398496054343627140542094361085420016438689889103519580905140336426290700797261897615856178129664383971829622699680969316047542337904008635152332292589544938497355556340153554873963226504020320598015049640771411163933684943167328456511164396355360427657433215772983974810051084097428252707620928455906656891199634211895932511198526094074972500896320548639400646777726322587409935223179641495560240779118542871862715610755181814002210032928487999146315327929605721187460685326096516564902984980224718630629698199017535701761720985780665970388661326415183997280796152235563427723887721895005554163071233629065318498818490849073369186433702809669698505138040425796164626818659006074708385713394553208159701886651161393538049428491139885548830210115198408928516211241556920714774019041545764288559158287159057300878944467226504781274696524472229845456549663384169657153384122073452752499644004582795708054592794818186647413074607310186074845247808062284143145050378827111318302614475843762696096257294625045439333066165472601645758894090114632730863526204075868089703646502959587410650855555017087586019484867374516499467291815514259465134741434940786082687685485003548822403589272006037579658611412589370841916127317897352838386103926081118595820432089781766317557542346446930042824790807124641882052223602537436071111547657171994304211952531369350375459286500019883265821736088196112685521349554842381936840473641220804288728329803219972853473050071260878210998165677107998075806782489932037427673505662101335858162510741350569367769404503937646218792680864332584027792479484109515157206453400275910379020991786549226006763633022385329582248854562120705439202504937973191378989473836753379578708083182431541705093771862887210036219579684552882945625045908444229223666474254059655953611602666769225878084315386036160576134805688340897676804029250333830524758422830962866863160885031649600095829827282977476023096069235850403656624548098859474660480200264945545596500321376274947977447994246203773696479632222126451502570812950758400133705780391753212924598740128388273294322133817197246248832591227354892121717704748543126906242197981756543788424685342531056945873660749023475576735628440888964551093574942338653531829476438686856253322518325293378085940550431124799084671612272701560495387013980530326862821762472485346545860266108612178525449723505819053876999564418506415563675937961261374155172377164412847931097594252436697391155327296606237881808152275378150031783955479125743021965827251288226837725682472230310211379129007348225968360591408552867105960744170989884478572403286900642808031337517389595895400750517235254359891690511502052881675670562853433346608877626333099910587201521063874946409783158262859811898272467032850148568189532968088608002559148707564963432303912083002920665976247323542491143061163420820099084563366624756634042628841177847573632987309186925780975787224558379785323963891748706994705729523179071646670594013112742897857416191240127666812471880304227691758811298307275977484469736598360869952978035558922980472318640849439248481075151856419447793796504739334152281687157321310950758922943490161181630079765542584539717943225610439813002530554184786817120018918892456180296279508786174285172878881804354942254196907679256593225295053058186294204114336893688536918262513121250050105948446315004318069774858502389524480386571722257566107544965092856745804957907411489899082998772875825460758691944787210095883109605719345759381662235296645649275218524980434636455923757027843820763980617932512496640501164733356905158638993408551924301310953911157808373525661593644385456103421181146864553228022876016587113678877225842708640770660877453728638188600111512751786872152966264428790671793215753426954493482339768869033919581854464368620948158189001107817987058437685520436156854399379156944289110771041416409551833392691142661824792551542446455218167558938696458645043022226121555070346610655654354402378789733787561314208537514485849361465836236587244256255948962557623505190137554867158527549764541171412098411117982132140237269952199042342443285673448002269497818343009403104349749284002444558530121797588132088068281278694512392986046024870769449115488185197551752318912080985158952928950148877079785653695879360102276212986656913311119091924536275647166754241487127809642870915107709617488725706928937334402130442752889402501417718033998637621429022682145449173940060029980366610371240752287042427845315055377308393118841152117092121653969040003620801916683328826248501711413245100517433032852885623006011998731641605390944880005265797555750241825192273651341335614894366832345068724269598795703795734471595053744281920066018678956724337328924977954042619916997357832757089994368874606152416438412191863311631656045582083393760364729454536888312481637672751079070017183761592829523331439874571791583155824566678396201051584750995186359452838956768721236053264486120249129947135675423989332054834112885804204430808307482163666744982362101133846930568190039802304556336738950235894441108851813284392109491423741859946116131409141681849491965493659663895211420659564797837068782209967855547836307068127038234485327816475573182241975541936575492511083892794746604038112827068086791145317899271638442445424189553604729386879972519445522122232808663817260802863208670622292066405211790570237533349816319374529933679785521141286831065295478615852955002355125852479749742638487550119079630680529351490245588343564172952340197360592353846866231084958772471672170980131060963423100682598191818058229576365930686710707108919729025438651449015061069273664348279730703765022435129548251971753277625446916839302943887522065662772889445801323262768194081842311911239164923806301958072008787455580463053694848208497052362889997860127582058009226247424495979753033618955554363863756030442007260349073539500736783646938952703073612438706714117505994099845929997912254599020686723206174157400441873964580776069988733506600138854476292155274465111983275533322169703902218885592961448144254250654649734833379923433272228348656792571502983899311842771468767887558732250822614728984102453053830518864380623337278550861826871252115029350614978441419464635226755400354895981085680145052648532998498899205790734068696558343426261549359219640782305691605781102087638292566835097913298823364232232278907090010453868729289483447861228166852479214278542341753643269252201823384633783782473105616472900958125174150713412287159823455582020980291826501240369871334940758273774486608281526134799126418959113925302007158760276471707857565764113265680690783781705306917631178857890108507859385504388708711690207544178662036231822963448104569456882775184796054293827589335256812088055106156970155890067999528637098880102276268229149778847392391487555872039900714881136854415175813511413080949821212342415767189675067871624224670444028123309427833393099757995200276977023029296507022395097981453185582063994703858928508132904814373588182881366214979689820936036437124784577727625998648307657908006550230115350795677910477941616210981204662152524780171298740812834049018716903293544914065131697097116203246483540696457838710678584888108363773428892800074801911289543678811771702847094354404794418079443601628827588546480854664022447903650210688735814105100594934432191008433626882814699924989569300060601508409578828051849256978010377189472063604819490589348401470476402681586334112730994264778658756752094419605030107705826101300268183387092136354195991649547300271382234776384079260920865161551577717316835886895833869416792329715287026506560403565436807118534121735804418711894822071841416388548338821637977355891572445267492651833740648579541658387473356019110874463066035764557305792432253970726414248508108002249179613516345016207267359062123157902749027595800772269887740731298613266358072782454655158729797118877909253474485018396847541813598037417518717774845248913222608162719564981943322613327763783227342067242696937473687995253072061042993025245317370712374699024591933678615719895577189426703427208330964856157944351386992472371163829163357750659954645091180044833374870863355979450272631212474949039770247301542255134623998791027027531060374804651373712013202768735538019141133374218229622443366752065176573340703916388740898116004768618763214832420973909972682102888085090884890877492254183522454627117228150575141022922719063805247696974879465332678403835893444425732609799728357271128936081885415442043380831503931644648226522840416153958975953914386265734770098341923561062348723805271744919628572319618821187611866492529026740978047789442216986830819439881387510179443450159257664774278940834274260242945243309862698170640392565368527116205446277027718457599351112730653279900961110538691005721226848238683360795882847130425638556893877564938698185418849344227438666039433918079448625109918310358336155679388839390380216907132957153399021318356225291285299622759719278943121026758315264555030719218753090143045866244020259816710483000618398035768399028986494141057572984958920637421189328436576670509431520203436857256538938975297967913180862231906427449016002199044138736454972134815855351771063468751528525442217530908581702564551097452900387979662077285254262017516394088325954517021477821830626378389373428054784044945572472121848646349455411686527266311034824107820707679468952421936279965687258732996718155053909533100921089211518963617152823454933705834006437039696723286721556893435200449179359854430093698576389086374433439778031535859242781432579151371183748391126398251315294583838585171784518085615960282118949568000837815572474935471842431638888967285265212068357750181488650695713552608966966747764422789656856085355155129714006260493054211516444039705213757686711157465743248298009488137025139939599932002090997038303758015224449129769700373185846554423997618799453807014171509705778421534541025896644101539330978683557348750036841017005032946545448868276716157995279645490792583519666319447655703329591548249662743668264684483232533380225635167701193280519605335168884591519776165719533621438739768368465720158691193951431756032359737008340736214192753478542512120789105122908337850582264811930563576570616530788763764809841165919940080019544028649595785423220950967017619604519261978884750008098223906125487054462744741110825009901317377696628273505952821146404779650426159915421449596562937486214448356767620469462816147936106982768557177156113499544717288792365714031788135701533494974056140470366254480615738390433392259863231815587448733984793859019282747421844688432947546457908298805028991002735651420968923077428881569597784179439414696669194340806508702546685063213674166137437269640330643836251444320796577139197935502994160138170207321262980900433451342168662468145909494645847753905195369277482039037002836983942411159863494987748343043735471491162260436638559243838812741517196672200910077924587062959217890841128650073577291919545872559887414197530017712567749134341084143566834298648872113442973339783155530526701060904126356376797056793651596519199248764481121739665136706285991613679043629720021698297846122039376929161077520849425706631590622220064041751665721645612824038287088386424521771617690159374927828139563521059378094624952367513781596090372456536796805707741438614472010948686145852410817134860729011992163390332113039233481710305397582872794218782066456693239533489385137557085814429717286487434096846880696197347456371903255430958395265846782332165443957712149135941574570101080388102960692041908541117669261559517402557562337885434735850962685543137314503166540182687562614625456367519113600979750714851501968600743368825441955915515305406897739718350079982794049028226571950627583730611182730351295569661606941555832566667595576250777290032313229668085369635493888707294383276265381238862952398964194114758102013267863363631390205403017776700080717519114953910477562184786991305652761901505143504374497623353959658864591577287339294447577664353369670532748906312836117235491666943173955702574223785909991042849573056930936540406939855665041830170752773173836618181787574291462542299681640295203078972763768247786219465211329794468448538876975877818651268669965826700830529705287543570453421112423386931393360756893058930462249674568844108832140912831263417136576597878947940787843871632555168029893061990854012546736648169952913220930087893186058001896791642698189334830446003124850976234522720473992549531739675924172754667252394296506955533005180271824973953901715421977853874768296244602612662861830082605593893454479213666398710370352630300041052462068673649753248508833616769102097654036604962918835685097542418227953648253030815990837055103881636820648522044648031954635189240897714818962722383584651841640184824662109972034687569531062214408871994561040408478367783417804217543224953335175128399117539045297906879689391675472600356866311670136338110501086519856816190786144372577614820327742084201378903140702978313224189072978207643172621310742935710019389063071562097950322437641046765952707692134817767185481391731110240948317427455369610061128689267556663230251067317772604974700072077579168098197974509944797799912981132150678228829196213566160875659022023004345356764862508643556568626288447221008222221352481263599644016703192130412240358953592910224333393905352764723227330992166239345781197530179540552748122363021630953479672041324193668094843854005351275030060874164779935133164343640617826078533824057943594175815321041533481891705741177354303158632948692390763399875080668691754545138540228925716023603961319148012112028838280896202048198990077608905339510562717294280602245456066803339887399909692460029816105928541394645453700630487112288659371289376952556241754858807281741977868766187378218797400444444733689499486575117922166534319764826585955938842128493834426255076801077215420256874724350836929387098355439020487625723530237986710279043712659254048449362905744162158299888693012997691451045081626447773621864677405402331156936627525267177355164097723343491311689224813095135461444071671189647966456456896132960206462246079655577228315902171339375443245396461176617479887594250361395210953578699669720538278350762400378279911677885861487106975894818548163148730730504421875031251422094091464843926494421433306181993137676529733132914999439922298332015756210389405546253123284021882372854407249776475230394427869919131951178085806148602676035079292696843752755006263774007038168630539059648887322459359865705174335379094921116631846337130224345200486538260738848185019298068522799946877429952259961380203941390069864482520832241910210295586603347196300117726446515400060472108457446436934090064309417680609338254118327001113816468574894803297093568718430510573165746916239383320310942181551245715353612017222139213333824167387397179284477717497852416310877448648331125406426385943973943450640370079313584631158350437474952558680781950382926353563354294356997464994813138823915048377985689521764266169891098403622153131649994225707197364169576493295467769575468921163479172306466957703565342770117151715524887998216300300250330471655855742364126199082421994647662064297812161165873083197621529000844265787697128987997314804760425997373113834921238163697362444880852028792764139706364882591759106876705569837962390324330929464704460591299189338865639039708325490300483193109821502962045537739691040185154353436310630298975843029889331594133040352662957113625971835764170198718259027616534478277508688271026539239180814570439578454699663360271752658565277712334033130021155374144186413649163851905301883829825342335936654169041865876349529372384424888619527055482855641909603311609609175037255279765556960052180817589361009677922720973595361222861795613224913386868564426111120917350414170818003430299701595031437071612268444613865548680825008029759983937123722225766345199638919848046234851574048675356211923804318118478400216145941151061156101337940296755387943138117003351305061741949949030678872961723571008653828330451387797110564825932984221378006355742688104328153881280219394903844945660643951803577945290339850419339001558782798079617089894807282095280901298844551927305115343428780567114595080971146291645905815711288008009925117092306128985617188398308209102762825535756949162206575313313799366917943392231659287684867402759602500565173029079963073615211074090769288585411374716152280055110986000509545688278897016271751770556220728531090675816133881077334503766010824282608666035311984431393243651909616163214712846012633270198574336167022953940517078121089743982697057673240086001980612441350353270570791228626324340213148748455364569431570046141092797804868693818910952466651134139246560829110135674755817046713942843482262283693080890779464269386108707921705153499148198669342428236982375284415177613211235153594226747522345812386555616208169575793270648356618263592013511180156250069665924839573401860119172665456456304841445686046183082292613038542811495913589362208448247253609338299070066233826300094110655061415400985149808569118746777046229215276007531203163355445319769934902848220503308046997475429499950885975548311027849080553205265418793503296939233515462657980259878850270477979215704950609997692749170469634871543210142696902757548702845938416027490916174621351847356282337799246311023551650392362795315834205088784164484364542556473483057695559733210411950841447344993449124948690475365701238982001317133060992075649554279869014502783291791385935379140632001551763880166088596000310814485052726743774515717014706575615653246876999913201043056228839044983998142178156363332965606826694156928625589584403249483918503430083390647097985423089015781676845256000807523966423106067539691250713477933445428377413035293760543002836279254396647850539252563094493620617883821490032408989112050720094375447357695433619826421422085475125443919102029995557878164227948267577659616327817698937530139967740364222439726195648205401931982026437171587732415190482827879314857657451287010534067240064888084593586621645312666781818442649465419313172157469263327084257428844550761988300377707859185089093847709275156183728948518888333534855017217466827068108315716205974300231004867953631138964003105301130920555299399312419103359014705111696935149697346161600273184756129051627063428796803368715310423869957338641813091011653964550953557549330531789262185758636154286996087927132687400941127549076624886108552880451163202192880304259823753298424814391673332121991955476342927782960006138430273009274749400670392658810318050034988305552909072029067286200026421526129637595592481420947516084611020231616742864146362162249828697638041469173561324545987003120935602537185697490547579344206219270908602956462292470854351744809711567674228999422873699581420577643281062112510713459885218976872882988018888774538239910436135722010008417042847421649885591243962560771782127045564377197507449839378932863817608131304973418378635095743013468222847560990609308033058996279686302069117461087929651410280825314322042140609935183191835559715773351269813052321109654564885962273309024334991568528214870519919893164032523489126353280568263394007455107781583645573906647290488155184940772016531951870042906667656854586404935016076819583276483637437326360467499209344921016047855672380183158431965997902755468607341909129593592853871437326162200818458494294403044741170829721655687110819250339312898734504575633829620612106300262629758139302052622844256460456565922683521030164714312572034499139083694210148545894004053009471677723694328751956042168511940115363757365507361321401109694724627004463852957657962723700674918561878538090380776156694160744337738142317850532629302371596905895580884833685142729968007156111353991958841104500886229380277258327124336332715763262581572456262786231809301685911468838971875830302551404991344100556752608803474511601952183272772378032031224690116188619683508042426548125993184900291076308077678260057623915292272915723122660704678537598827052589164302142640873893893456979087216520967981191130817991078386163715752206152859445298795398648095325513028255780021501160931214094227806857604298810468918626686981745355076801162757029535676434828175460311009713341373891708737492356257269175902856371969665968650816171862107345926125407091758449864853633714457990960589196151960761828064545115381252696944665412345903156661047863878676666833888581065264890602877202369529711801165218494061703586490631488371348891548774310250673720316080810513354695606585898828152214032537376354621668358643675350209693663741450907677749769699178834262511361652181266085529510207631615634297775140764472278275180125774354834647502389296622654623091765169933293324740243085753827994071194873162400273621878921753398349667171690937552601880187947949728633260525530664063914029308416046870403646015235327978415088553616542960892445658991118279164054280133010731063704547253607736480306460561930419625066478451329089464731684789477656043358423368820915932026680676285756286043169693990453406799620104738453475249845029443587984001056393355737417222251219172475231083376441131276675398040377417315999021780883502045797298893387508477833890331072430705443244694959139696658430470232169651765399565902402616463431218141808065741443486935169549299706804259595726632327597134922962147651443379143890568239944266971712502155875283336811969504538644093275913484368607834117377727682598095807646283591001211404569124982161701378388658806539907005708119929681448062303944333090369562409024643724716171173549178831473867805697368642856486792560472531802918298451191684643513640788512661829986058075207957458273273955066845129344473472472858462243699603173480108511588348225677665858916253558853815007404184424574486866526841407563862440750948651887726522849321946996948158974266407104960722029287114092411473023806231019848172911103033191649259214945680348972773767100051257010826596654629304773944432643432437915518480596175459494298973033987913033240706845831386082381760798104172618516698690391220382264845764692281260474442787429076548528871162566741129384567322488487018088488175566008254297771627472985300756116053840489301709362746816629645086648214015198770901797808966861779657899507086970786785939576332979355622248589860276430316517689820095395299788178356307783665810541678833550604040942190068533196575673115821710935705664497602246636531415616634367081211029554398670392928363048126516853970601085411808742361793275643075385760397910392149683296689294005707731017277196787357696995007192521109152187976015111622020310780224859918432315611585323373328532918842828455805609809010790663880565590818097302832882396157394910139563438165249588188560891964704070468387682057227643507320793821780064695996855761373512118233602264993116571352345644790690301370435419594349143867800908345698473046740599891689046118518384770669849039865403918143380111489628630090121240324186380918179434268481791719486201107440427705923057660876671383571403868066234578881931126265427291092986689360360052099810799002048431915188607605750052575891555787449019917143331423010189016092791309468729494261617408407725681859705807737847154259357419320548559129603938654448483131823539332962800133879152065999322176840393086656316321499262568368397388675323964342805097330967432130957078623061088540497934529326810134321198233715931591958140751333293283137066845692976208346748584972238459077975274151239859496313945575865915779374596966736975295136860718403391069761291063196209205500883182922659697415428416263592405444043936051206404889674935834290815322821036402245726812364329236087481932559022014805013973060181560538861343794482437600666559584469052940035190419292180844278881521860626010462757731852727461482700335063708021741534175949632802073457434680495464083825934749931185830058079120889050461089589629148508884997949145236989127706163485073221747358786846577202296502158312114401029214764045057456645133310682514932268328170559339947510679974714930122957824780690346431986581655281707208083648117630669041929148662416773927483968094771678022398953232934314419910613008354753403426487645334225485643028382780069359990178068580774769983516364943481874684577429943062086600909639152845905017316558830970485140226678243787224139056478363843968988898208477845258310502793302509346054260039512315901781863224828919801931691022150571422163612988620196324631666749825497856177029649166678502650814792560558999404406034016206196097626574899826607031657576885112791394841502048600736394020370645868309951485902769557647462552593473730699646413917254755799011464740214545890235447520377544658527867229840296703896671119430043247462477160125083666731633009213181117155189251016330053267952312269094484952131141103107541000455950537084129241068414182889054063246057675609185238465813153920144018113516516485516840759133351684901082632094907212565533675756498415705922190452375128954127223330356088282594392202402480841382883928340614887066186200557191057850276413783821988722998747172854714692869851583142091151855217640724789586955400380173647746564231655753851627372231496470146537952743310541340402200769760471373325766117757454361155813804581509249126463539665858059231207922021162454181940208636319987285586187458857449358568935537329204078723405073576855143291494463372955223476303654497752591978822728463859512904400871430905711635916624468478423594707600324989918291209414185136331330721305379200575899379300180255744596145811362741129073366884567158794777127491591314790172959344227944984967137161514744508918715466446983761057060219173756454487299114823463842631607916983966482196486040606046745266574619329873706771911761075195517332968888830460893961409933384844588279329807789455021456501827657525913679675121473493448315645652364519728835115749791060774102867482737787003779021214216213253248307452106468660668435556891411936337993694946875210752898034517496809414709431061948248376898080566792106181455590714529153299797566817641032219833160056865184657008048600894361779380073359103216390661482180413480169157731684045220009155614537224833897594521674243089991091488557972040783325560846637609307358663213783101789997472471591233402581268143089666926052744526042948859167688758668034620573194491678437526165392313483906982103744476202592365773074485391016347129468847083495558334726687946061604169809272887875642448656364419800225924056332546929129376651147727952602859502499297465096989879448541656827511700893966151252871206669462725208689147900488579266364971941967108472339962431001500447006936274970675863372064066937413714475532481630287235221217918524243988266779379106153536987385202738579511738168786307287269714927808599675362813896334278177227961164593997372971920093757929663311216367065558277053615744622091345309466946507391999044647135530561622508639808993295667943840903811065124693332008585697306217173314886446025707999310756673786834493819366057510288365099043485904772703156346635048594543077761369636129249205348308144717775700345157121724345269009840989204663155033120902188747835673486240994705315512808358487774575396645823462108823707933139372392214866483604699491193710523067733667411713031906678048135188213543082661270530884211708224061795271703932676228411720493161644177256165596591923851258243688338292991801566095530285439942137731180012505911889537876930636090909530199811519187275338439874029376314480474146219041298581924895847536974787755006590555030267211752246737350484195678747793903861914717777736857515299917578122388494371066636148771346525828715243584069841387200681353153090024432743620349731021220108101308245164601768177653419229557793702540845083703794692383634653507885679473064166710077844493829142811328138050630378492195599471054374131867714363393915869942751524106210370967298986173667199853440951520282261794894731768667398043501389398197232913785924808996040301117241626848870078140511950927226949837854296445957759233941717555250265776855860222944353861482353287843074986115353108721010737053900192052199265812420516972808040868944564351132473996675933752445880499976560517137346791027269958809374293259526760937542137890362826305292751659770403341734667742419423577155912727200360723068564267295009680349848147069754540141351878718109064045170888993620052600655659286949411054157458637279943943565006745876855468916943759026541106082939227485628140224925090200411184797093670742760899271920788513305769675927634822708412217224295017510518772257430531652845796085190266058708222360135673384506891703820728389021809785860884489229869570805589531600591519088984678483724458015044436047760224556384574881877890221707199026853481212693920177435945844326514347035750013507530665838671286120774238014411418507774666041244437061571411874543960332496433317945549137400554806075037600641281817044765288549456470844492846803353224723211294402542610404880593673625669098913561114394224970903794886674312853200887119419390606519582408680923696127042028760306336089912493037719194413659849125920491993146006949858133031313064748698761286890206844774765348195714205607629049513883984450344624091891602485689679006667022124555345419433792776219048747130961515171989753984279468989147297256688360448886563474777314785159343995844661965599671966385426283510893273724396110778169398879418026499729521631236814176002744182995052206453239974561758394268764293447972323031290230991018193746308564063798472491807555661156548331425659839096908451644654349174298351603990983087731646753063810218617105493658431934933656520215075114746512915336886530602877927192897954491608738409454802035034629003066330451989418156360475610315517096258087632086170967794077101153297242984710897750107841593776463606494467066760351193736646232843152034489727969416710863103687295845875679180555313716449251547967502044582817124612184659463004687494578315998108666733918593315308422831417179792859568257234665638231204529549349159077252038880443167556836831492337058771011488796916128160141148918181973751247661963339809824324357165938626251439226759451735732515734099742213590591115804375870882112070517887319742004558453344571889553556373435848734910591196569629988160268587145691676451643153092613931536405666130479642793631481754287533880842782210825055590614705314472803197261622431698202991544781606488854204011875779866228965628215051348821636878745720418343048913552875385439443364710941867072456255573591760136114361211604175498073241238014142890801480457220153007746258639672472590208953642118652615596475010025935960015279895888420311125597321408673166493622941650823538741404639025383191268956131821870025882693572550569801289630535068589471363419485569578751084490368096813841580093271832674838449461811766418657087135915717880265144048670156094142798105380576552630010020434417529975290500294570105278984717102899675378792282141896924932617970503839522052963983055071914742499164540647988624733494455435040783828169459946223565744669173485427330011400672987031984622530480437240255209170104294093141519470023090578493909995974938142448979297657447263747927755924546785053552637061721459721738470556635355842271052205038558602585790215345900382241390332195282308400937650171354878141727660562327650422142634778024844003234836427312850910366410928014427907254509557550775245897599884534547600163200845597689318428601788826492756656876371451169065988989771616409478202844205713856601991687900780411843990187145584666562950337903842691936403780559637639064076858585295965991163431212360424561135062741511681336968726841445678627943824455862387327557626397819350958943171723886374671654848604682793767981856431967478102891844008096444383499569205014108781968347244827812719763397928343782783588634037262047033339003220761280385261027856081573150023142895321199743207628907929582792142948197063780463275093772296002634104060863516611146662289222380697071231127088020075432540862995186446211423284196048607986094600805600708872478364521822906038746860668437429834760156285329124197914662210495758829782728674110263461102132126309687202536228765667846402132062572632233145406723355801196785449740250926618408685506704187398955270778839022943940424471156073768881123252831720445154423763279738706718362350959726566687751065318101589326911705744698311996557233465684470816837582129960793913483078616651933747872702106419731576187672055258693717199652946878264754898045804095637229340012111046158139074442493533143272442554344654270807226760069463431865903668612743821551525475671294795552329358312131290141344762522298103171826994026798159001845260044639029151462777803178789573266670710355647439716894552389839252449920798699653639528550593509599681018872141166157307392411274814354468475555940590487498228642321494999021158871636526783393102660083508614697937600412396219992014233321999791839169978830295907800911256807947171007824284404116141534258331062078836544134492914055091386776978330876059391306287076357795453522493719608335079314768163401516222800158046663811545878060549095723519151666563715320255002752403089354482432690794567130714529614017407648248581827855495977335148942986332461788704555543997539882091190419529234163475328803526556987318450259795438411778102891122688106482653387054998077751872994431844407284589605579427570829495128799481772918789515859994974538261350733185346446190161282289522197245618928870644477243521306352641919341696470228915817180089518518837878309518143543250438374728374284187422380550445531239104194117283038766583958178799274139813658910555401159061420622387302281780600247852894441640662149372797926390113686920905074657174926120642310129831836217165906967367354586137198783228551482983550630398945960415925040537253805121867973447164603216016503757510757255784615310436456877922067286884482158450237588401400617043268279360790258445988056331589516745573383416464317229160280092379324139019240155913564495415967325184786143724726391043423468009174964230670243287364669286577367441901876313448246657561487548914959261053761923504336434013055043181312982694194082926217871956737343148568149629566545033726436657755556235808886748914487927236255451594626445057508113353701469987682544560897530510324059628626606667041219772076497301085511047838705110610108737719035739050065768750197982593794199969433715439673961046074166865940193667750900927537270569996022890227727148940597175390875938241836802771032703919844747164512298641855308984937612628288451809287456991950251259498416381465528895504337429565705079102896332787375121951735194549823987893439445572027627147394826079199800999072007651011422554499002817068392686949182190654943644323008106551918652884430397292587456613994038226291530442258292861330455653214396979167488645777907220068317894503788479038445746310188674840249713149375035765050165753236735462802081755464544209168507570519627804088202964786713776983243356163580265851552041893890503430165821999032998674621750671733445381342549592114897433064029598541252763544834007677566173268915411272041302017333471295188802053036019131174284689408526763398393820620043402297876333297893082241956612505857269825137613460241697958456554905997152830564516634165406796449375753556528737345128316120804690726112566075716415332612430108094989515362283025581246127727848411951047478600710132885489606832146436077681937647877070158804311435678606611458832530375893573171244794164691242273503152873231540445925580939379085370771791881294518171192118902866948809860528357108298347634964355301105672276898866096093047449570435471023354329887324959748468826822596211848206623535274534534497432300530735819461747778801808395741321230307559716647699743615354412465646582757553290807285892005767966809925622571942324439477853669297147671023818809219714776379581326741223124561476883264634488458563192110167390083344474970988399850514915065243378876527089654096791764009852956614383365774814461322693431468361517341105242934362402540150182124075264884121982981128684770961551054083774724683981107488404739978945259727180499981170884728996232762266604418163312387606906762040351888104325349177303174636992342731028615805093101977021711240880187408231452532364929089661764275455692795084464824983893638870879461252863538878075785458433732245765164181821872943655316540617853736002470456657274013109733627898310629896634784301389708060643664165049400922630554170756550357270177530460344637755312384509983478284889726454439371465002496152143087024452418210941763285711444531387446805268728305100569574897526520537103012949475367705782218880292850893659163454560062404531155750584610799807900658254950302451035893939046553955993236776209451888683666675608757486062631458815814212257449309198706742219873754536896583584139410331779236918267781382748130891663455652252137154387212850687549611189190487803878036338811903679599234373966357312646348309499242971245089283018620979770457747588358510379242805322950483338299057937022139364914616217620393630584706774695558537991389801922234546255125870114816157942385118525601682296516378714426065289630344429605465548868268280685901915575005980381129875378287545204682253321850596315145591220507372998621234298681493342486608298799482061246459659502107218069646918499525754711300323920501856754890365166030565450046142180481251292335900222479640189600168546105505567012140986741290747557147465840947114673095614570955663223937970863681338951351531247575058895154759822921658435817142027804100670504290103081806956790318139141588699875723143218274893482782013446391499032085475101732297744730430005888521381458082894754109577188159269706987338437715177506143108029553680168573626631672093229670895335011490563651265410262506278559590067796927196418955028029767626865341481051660699749055899099570877110372308947682673274167729296717482333751832844118044213743011713748981111216799779858982487213716723669044169380794198152393710467499618320808622647255205325249609558669091481122148027113388128746651603240685617295699071043658404487129564478130777030421480220416082150973118752144287884662889190984226729201298908137506395142508620445182736922066356171833706244486994266574030976680117873534107091448326584807476661465238887596630451364610614220658376822848315465142575542590096175445463096024958179117351521783133520862710730408282756269325780325982565429179134146048406618091840492456610028611800968432931193157092373736940832533498601632927479863461585361371765105499407987830093891529274834939812895825205218948796834401459428885204829600660529786372411928538269771372344390296671888757707706280012830007526616464675368622236369690558601444620150567596533232859401349114966365335102338234973056151089607275933156696356743250884051842006061656467465627701092376832548116287571523415964492000864507083545051602168249236816772760439171669408506509078006523063016474143392843679391719837887190679860992102488154545734129595989719040661895638470418584769798408740970653671935557507414516276860903792624950193027989727911640610083818537744137911473719923852610303206278619533999662926476937689414240063136183258147418314922383142424849861122300875066876293630994991021910627240113801689326371878627016205846623606915023293048156741844060332994967057349529421939178010344789138438850699785435901754141276585712505039892101711468664414425648542085839189381314098946403587618230344831566122795394139459912650242578203277717466997237451092951375718341616630919242495950040524396414134175126493950277162618727601461342765348111493110353449225851139073496153798610505603703860147114185156523131891479099653839211068398876028745587754176088074028755391007508063454912935682293031179502634555606295615788578854537524992832749688642958316677363137952358146603861130045241943843320489603359647715211127872721927867769391248733208931630570703218587618114553580531075996587682718973380945874140354042021173145351510795656787594913618388749057537566394484095678800742329950510423831575797357309766724256460971515914608844238885394076298943088073128127241350001978114004516808417942448003963397297506141949338563503557717869859477191512576872785327270607361432219114524891081324034280024020795560921181234336598995632174761804862954230572248031143898484495345420979266761606823815589075439954385186433714024802611194202318059959561060018468245385051514434165016734749053939261924307238450185353234943637620261442378874301227180743954838424683309763757633986731181568486529460314881485073975502983536481124896958650285327824527371279127169435230756549462754926317699719465974521698922213146906964128879659037583686760625492716547464972367849235700449658217229011654241365965431425830623249614331617868293671650048271749190898695124963867561258596048080995338925769697141550509413501980596190585315129507363052072373873553222592609280215454301454346963712451262787874992328146881462354510388030907347566521033378437410271564973547955990633586242268365938814499105620842662947580506290371610752853747652097260560425177726683154284408373852478191293460112837543965717472763221202076906446987973905356469180002363555904890888614847702094672356750378229546528002672734374996355572493321547556149236590198276477188001608848622297804067927992533108785332304373545915786518687337157524939947072049562220866285761348581130103603325474326954257614642970894257086436647109719650631111653238097700713342269413607353528207696973109554330124539564909482822283451186251934760794236082587130187290992353134526018126719569623569557891370605363724288394347681937670144816028586590553025457189244053445288744975330698887549312827726180611278153141004365912015359203673899727733026499341018369713800411339006513357174222209451959827984320438826061326102321730703446309234411618610873745114722976542133985182896555115172712997169161424072032050455936945415284493511040302332821263076819239621925968297047142733663993979115252880618005566746891245417978594849158459445409465931259913619141596192561881591722397093853547727457242225859847177147530607017891572555647082642015580969562439266289145570027068365158086700449551489240333954431059473127169742766151062006931840757695221272502096843221207654207062695568587908412965622366992106098100075086838728934498628426198847139652445490089891385102091354493385739844840886230714128476645175706573989376575117344696721637754969658359072763459069341666954921317345879093915276313289831882822625964462056837510300966698018455464570668969972382945021136404622322212075640766168750659038702296903750285497391881685688205032860364218243449170892820575893317146944518021498415389277734984825405796759813114382554562673198618253625907652376724600872217582365076304077643157843614682392868579123414208399772768784360480793284046144376670450239794169120393436802299999281959088924318757258576213323303446008634147482498168998130473315385035711421295471316025415874156431875481706667911501324590816414294432737078124185009077946681409094824080759277815415485413255755946180425312014153572158397803710394487730011524698794721200086502762290387963967486345517782192970962117889013274325459957886922729254437542824097670856676088640340104885902672625673804352733454335112807247478751324192969133984802538190126338720673017177454824078867697228154514678685587878592529261591513479799595658685730320472745732424369821336304027569328960643811735860099286095236074290271372810097083728635669848720629184320707321529632046804465895547009109585232597747331462467275464065397003530257701724425156719469671464825491659718705317184901386292762601208691259867413271014007312510233345129659312926065162543266579537284625473853053276461871578003530303930814075207065288448865644124980054327867010793592963641553079220762134671207283231188472594213053010005881448623935012156003524003334521036264463440488091582541778638247994627985472717591628561124097366393771021336626800755585046174756836376473198158112284797296473169892687319110676677283733099801649480560689521908624944265580817569365933265518215250420198802772234106997630054889144525311817803291218174873454451749320037456366024146421014223327722572510182472662809010439639836616219898515923548242170852445038350028534700798562566613755772113822661428285701188058110389320139728164119515394032618784682073885771244044628562818115885301213331360817827863008224272275814590190973643198028578453929853429860232291924416273803597118969296800326394752627742719916013472995326285796434783089669608244325791635478649751812866726179850512700540143573644142392432046833804935974377028061808472541033873870021949087580097625313777243996315355017835862031168612243479164939188307599888274005098925884272142181232053581142150152406935019987299219052411807709355057108784301564220043943890958529807365336669771591388097949557503448624852257483027426687099861352993399846785810145381596404890775631190280502941959906061050657520961429102217632067244193595174089915207926301170820155018513084133118519076579920131064006075700966163978894857068252180893559061183235026451032940422216112058335558317427399698543155472743237210170557903837250460426465564327436420543636112548893889614796232732889614073547294484029675272287104230837053353253617174644839104010683578227110022950346957868608138640123359555168456527933460908172838979626035965198007269902711564374402390281707666149050574947878485862868804005036870645807984666287003682536906030510225226872948778359092945188693020938343119917847267720095224770192817498177115900136981288736070914148800682400218740954540920002411360659059788662067846816296619708990326499743095406677554301220843595407127836785369387951279982588327307872726936597658451408562952915689490930870044692146772393843696068821727954154581267721121195509273660251845052895688142519964813969769433551981145456047990226779163333345880403416796009778612072702963911205199395808311999352729274643949100626356463699110716549659625169522030482594935014206894405042902508852272682692655765237116983117839973637482383155251708073575028392065910709773272199576709138556510147328087157591217263738524774856187226411388002425410195715519242683815010564956297895742613598880689161074797106135175107561793931229841502444033328659403085898383693923379156942437124831596428439440352263189612359493357569600949851694443975870175742100809323392424769643144976937117014990745969702743910527285744078895114794605196993124101726450089663586675135630988279793375992209972042416047397676519593822409547579313346148901948326823157114218469753267482413511778511126499574188914865816590567909805529906224584817536733201691186435959360232267827715762213306505646851380332166998212763436084069595348225127903523666243605541345447771390737019343451130655475721445635460710993474362993158529668899064829058303077310860437250434755678846626235620769557799356016839828865534379068926062609164793443086438240023602572426759723484457909981855536159110305399257399404067731403968964729013506660237157363601061462055779668929997833972439663770178712227728021896463975766601396657435978737287294644147674900330499046242181215553126488570647285280584439677274824769421530972649071363233657234773145396374884992197967266235729117296059696239032816756818880930042161117637266099952654048722650393478575642266409934635918443484807784506883583582214656796294018568007534123102472433671319276999314795526137749502651266782021874585043744723571065136359200666769858516079652967642436082813585075760522223712864395950818948832885292215935279759796556282495093742504809198341531132808568598112152426010583024239591870846484831686443403964610684060803198456776128814782374056111224032699334149794114770759629630989857487273308236987004447528864782002691461954884077733563096656179783031783876385432041073890271886329842297574254830684280649383788332033336371473892199105767376222889894974996935278667028713182684254729676911077078440964081995635577470320143091834541439839909387749284314243756239588971957999262520474843293256119578530035606897490530932158000887957245587595673966217156225872475096964778284744747536763058336372560870647499242637886810379851658635681640221909695246649223019369936305045244856375684888638739273294140204335460526959025179150669925646574326940867586050618589405579106279612062034271457043669250039358126241049282548256085162895005287289927977728908462608747468866631705054547028849630667395871780270406612182457277852745363948324976511695322826306466673646902345624553364030695881320302793932921519112915787883533159359001417385070516044270801562461982767834549876428231826345390416491007804825202447415769760719632663021535242520657846600484981945947461826193189258629964185201812846101453928273103509165268569574039264865424357562799578560727272478680744095227738293699347105828645708976243761587562868735370065934987483029638497962765462224696401903739462043599328639982222268579751881643499876303055941654948849016973070268870089430099377133530326424581270353771343202566569409481639063228869457295052081966784215095822492868710257076935047588625288642473644168419670956279817334342434244760982490114311191239769296031560055186352881700228467838350649262215958932195440695225970531186085499096165073912457894895768109106600159782224112390231208917978096601229243346775645062736518929800389034204606539590758619136980163444547486839963035397125871222625436298366100737055943202827661932993634888243302283238396346604978984903167308184206202383342191428185970653292707382355930072499084218549961055148241348771908072973708841190363049524336007652414232213617944706314534924726627272503665740338758451176319583948650762731173056721352474425510862831805028108772661315062054277928245503377602507474953375669404755147641518678370439002111688320126341346372057107097603117973045413793098883484593761148745130457514835753387852876707745683410841012071335068024577617490814744869040153777977083815729736448268571909893581021575967312585417182552820642293115590675849983467402594450196131222336430048620482618375687045035380763511645252336630686191328149989219923071170951312774437590359800009363151790502239415256875442119129737374077238484998108002819618955302967976398285821804101754157264417993489984268860933616667414986454706285621883122255124019311634935777494686630853352440254386519690182692917101217838028820187827869737802860223435729331799439140498840908087190363699928951802622064711728362711384593188615134951588583182608189375507126621587769994246226668493425374543110012866108359735705486007965152573703513384126583426928830350370527214647565734229353511333636911216512327642144035844992138650474207312632599862938572663098575625436247280323807965406326381409110385936180358588920851275736979109828871396659665952146587070464472213802343723135144088610374385182534074651720467552852477987092063488665386774061555947123578788773191280984246958425349117220878895201155942039246355116257273281076869068370068241563395137775787023955667223677685019866619974977894573689296663889605575407129939076733812825257785839008317499089212097584156636818926974801966284456349587078148779200878212140474110623627202263962944517276172724663337299106704226054636236163080191741283284180742639387564676496605199119913447050647462355083213000617882299342581386337569085451758620145284881557957572430909700074024811300468434934741322524078799682752435145854455585696780870379186256265339049115283178407120095314893040858085289563490581313794694097872869760559004450938202210832285271089798132331920374050217381543655341135725914606765699261020427276560553300576945410505129629264410260509453265625764162896350520720412070662838034916859354961261424319728699712088769206526372363049338589992140086534095268977342068154709232531965413747623561146569921026044385249064036357271264785224198980671511686478270523094869474182141111698640342724236802327489421661003389907511509045967066679969899807010130195244917510914557215878945956529013014444637917643456372925140270575087171817039958441718803195646717974436354739865535576665009859699653714812531089610531799698431590485114184889387588443336110931080649463841221483740243045446255841354310085196076371390021488574903199346201871578840059684283788281021935977088924790593525717378946530233537967953124403367806214697122184775861247480735446475098789848577658415210726247328982441589630660167227312179797460299726259477212196508965869933130801922670529196390093163680153666485007701909323647702321858446417721262824898514801471987391717361143239083129574576845446940321154364770900682528922907264516873927197703877662497115825384663882893999497270558502752742550511124652946877018036575189587788617171196200750931170121424937402603121898304835698940392490635665293453736408100232426626483586936874798609982906642924798642369163781756803668072932135377907642909915416851629994278668244166256852759963870386426035136364429207648052074973580865532533120455138319058791472972404181945794433012720496164704461183812221791182058297726459605449429632066876815292887280022575993135797762291695397053812002526667140653973381741876548142993462834806623666786717760485755325987468895714419393387121502106633193664029363362602618773620594244496919493468220634238744139610001721821204480047888296812071736358703911136426412614739507757071257346594221809248074455395003670277739167766652135834436277675278046386354115965863039280482485729808077865298156486920512315490416541951985385909975746705151437361480753113745144869095424637617691855521987366942402956880997906485827343614188222384006561303071199421254361702597140355441233534721412599532781845384126777780308320672437119561627471083345032254356178591316620710720208879490521278779101604458267803144832409402807257476279213030679483208304272122993568631375409677515659180107694251330714078934158582246881642417528019752152879492593632744830107058890189527518844507530095380778722392556020068328685565838214619386314537086006006144423946132385243126822484104584023585773527452636691238783920911558997591930238105355810798277463129924006923678707293549458709051241073922513729926115354174724782745941419141407329876723858112173569125313794261400127623940032309924181727232409105403072838739984862033471864600754510893451330662561555560647027582559432154384280124496659907347104471822423168920125563889170712155467406712284849211046125568910710742973889856769704670565738816929972152066290186413639116400031082741297908121746450257531678608291205376455736483402072227285223391828490551957067707887217607568041429032665942283530114432297687970799176861473174414081854036720508827293566541362466809303800410682396650288875734128634377510718268021221528455475459553972301560799967807205342859822687267222621012031334973851502463199853028985743841394628372757475930111882891938840837228901072122747786532088828294952701089662174767508721299126371981190836765305339211466183657153167252847575960391422746783553820366643062388115053750030828575849263301131737413831799229358856429522727128140586282537745621183647060099724745191910111391761249128882329198549283831692818172334039473003467613574963644501316504495712410482834564901462096292543914587499313605318272734433255766712779829867066587622321998679115351457632423501667441757366974721570076927048291430396968366144795108258709849605571701448489350605029714367622014119620223649843691405848300214494596335548956190219795098161137495987951400593768460641495189468483587583962771701133859344520714276441254133071559385615882745826607838873818910124788654505949710394555039020618083761588909028278104331034052423802410929287537035614738916348091339583076280514439458746942264885575894897596908638044427855284630440724666257537166912954925877992270549051538587319994939053289164425688670786392878067736989227596370812847885520581892620538594575079595969147001793951434852530804737843070229034412318906057429580867044591736081348950366455737503480216783040638890644785044173998276231647856484322485886733283117572427367468180576405507147478010065340368553352176561962775121220285437952888802181335298044572454474620062321112696155753694413925898529609672703736712754065566735118258439049900896964385813750712679831188542435090332612532288643953592673141439442380722793097049239574699206630875521202082912222450741668956732156307668896859689636718661938417068310277848514623608856836632934501119402591538461958790718765400388287325432800129874611595012770704749708791350306736881389917563718400799842912668583773348206070188587553591816491550393035240865602933479536811453195778316757486795078500534219090625645337144307764738836256752950605267413393333051635205734563059840144801032031165662699290476120581740478251041931298805834585201731646218603755313326332994290227785295902613722486765396877503622178584369142583361823343700252021169993747110538125288314965405942736334579871532074118123069736465151116154076927442164267223681357465284261042462711963118282459066171500090486881740908165461320477505662873385657238304284051977782945956585140874779005417282494048235051762178683177167109479371348798655293182748654209489476729514204614404634990249325541162123362220010451895415076448824522893564361232738496274184480319133122357200473376226702705258046478707890473793891517593547845016355008274025237934060657041782669537332794617708041671911338380706355989365211015230822170269430815944256690653593115122553891389284120585915406121476096755060573319152045779050388888790526521469629090164649186377962753827446022725433449612361197193364833556045906268758762730667900527406130110862044175660362770182495454890716938663577036788520234724187955509242900772655427619363180373227826132971572231504423497681686523384982606277450913513457578281425806713576050529620211060847709835101765522168102309206180615980843708253374669790232568487432532649236385565617347850710073966649953813882727285556833004849829286113418130345475497353086444291213600235382911932670039436339214676329776912642770395071923465447774242490545422597981654552716977342718458880672438466347638803748422757479640057824749603363661322070414912917181617589540886700401817650977928525830588421883425958387293190830908195867950860954520060724867274958345733376812205852644876486479119859759262719566450866191181109381263454938899024622854409858458805759686404734860101111649964273845439900184848479409821277673570951954287489705243569274960554453627912155224173655625720656444362295869022965098329099853048914148265208573806365349150403879124181231285279548961779374847740005787931159105455904384208521390436031229358108387550905302276901292275150577840836456624872766787759364783439799771071988780975409620686427965137057124969382596348065669951168493350079122983440297031048136312930014792968367260900882963842780318565257773153399489451277132635266644817335711189890709583349970362825745853348407757192605534825361320868633172652338948198511990259878518064006346887390034488074425465474674485070578476002697006724483328721352243265039476367793250779433510923950600049999595039195233047089824477332158434642801362810837560238472313848436804412402773905819849100144339219197359763685195859826207756315395795368905107700690751510425076789415753549774127966277107623020300659945755157297570847169759516608632905341001493299079496274041996361065578547805432227882696122704798557431330262834259607888032318791533543781438540100035453312895918534861751235202116832700324237847675867157783439921876494691585713621128654280508264588769605420941948730040474210806779335533542439392591201678130840438746353225960462185112561036745628610317363995618672221030213347787766360204431225800669141800125533548179055081351506727297013903535965527533893737671800687741992385854802625756674619172940181633869637478852219051391043656607301216722256380081442016411762143060134961199507690455854293404754949504477838681361399197691027850263072971001383109247210830342496008901524294711133061726156387739501824989744621544538744477202679849713164108644829134704272771868553031126380161662301009835868350366435659282643446821133816754631284404350693709087371510708162236913239426241255036802745128624852972664437470750109900785915976094798518199634479692958693352933712418957702477085814954519008333898456367022696081212540938160217544636663177635937558456554775447414256734510643877274457060445486154881105212375547901497771166205501071870960471975748389284974530713180508173898310437566726929068659159526526535161280839297907646304989674511011329014288430078921413890361994779096820517327126576052416970058580507559533802860079808629096969195730189287181486155331270635075285254780465979047402660637334843806153075097735155557345897105936350374746189946479482456116617007266600531172039126545482277844456339609120119855918208883698393656502370215999530867524597885710720409665577518775069961426132669943140212861172627144724074288045631246336661143032354992216611112474891127426444051334519851450560402803947001083725086791136465907835926883306771468481946054806164270977766713055193305659860006948117764215661402691480553846841122924304484441621367086568084214883180448290393804264465207255134178570006531199604026960377301103018796360461484891526946253369433525938308188711447897669855090665129225949513319479753560108031284941036855289753229419560992473682988521374121392234784554544109601903804420289278277625707308890858094875607540379600719618517240606431125770617838776339705475727629297395774623424366898209953926043769549566094168693082016714004502050324699053419016666788715946330546061439322184029412756544113777855806362534754334134145765702098238407401112162569841569185842718100195241533579524639672687639284301254411487789826857899140331400100376679245411607658749016284375568497674136977339779640172279473127780099390501190316786258275407939010100703403433705274014600951799769321826154025964922145421746616199070252646844689250532346493898415759165613577340878340833922528397577082424447065656774747506809629644664164211147645183537394732234853323409570869701830598439562809645823413277779063089612915118418127844801289967486655436842543379369537547405187055203648269747662956234985935236171678623228040417800507796158209312111415931926029185733459594937066941794336540207824876814455574631665695564752372073827002978054775642113368609740698758311266482063999195144655852224200573141159103844050484545872702657542147769518224118634330681301149351631132893896363960983358771204807546701085924986668790848055222531230353194429278342867435286867576570545979968799342489908717456936500798903821764895743791004522389638013901026435037386387188135668014491383093862835428660609329611258275122106014161727512163699743400950424900942393386792015609686501585130970101862981012602502757031611004472645723658802028082159055790398681445671989033956452916612776224162715445852212553240818285407444299984133558840534915302907950679201236150856143345633302769543280591082609989367912498438151830128970767690665963893538168062739267343618562154185985325745758699207381547915751653776419979781925842170714628200385196361530207193851946261034963808511221663429872187373280839313877083105248498216982543184351777294783743977043092579912439803480306638390624944856081934174137852570823418235920746971867453310891407385182408164800916340554951476768224483785670906456324915915380763915825377784322784768694536966233429828574909551796480485865647782715808227513829539921749320250075325060049294620903320303605071634882675991240201684036295790553088159799433385199960542863587500975872872499955322961626492220914170205703379738793582239601946075202891775677071008439333709405029725083574924917763677605980493408978663602329408865656192860769714298683308520416047086369169215537439332981569778666201170855418479824559315168366040132571213554247941730987052945904894635944781840948678976835720167664045363504107533201414996957387268153683448160759676262954815888238538520433100749446503382440685335902797697794642227079041642414475820672180095518207345305261267222846912193924039125994817968342991946539133235333520208874679285949593101782628091749863739387041497686212927966680112564364988915891888723537601537105142887773645323775570796507631815543972004465727742738645650130968085820141125026030446041525675581706180635667516158002087376538650255792175909118262074639275709024185625017722942656066877017037112519392899111992981329240339029437577299745311115340805299022797217258468836763656991938480909255469873252191892541938334151158048220983404351834341697849076200742214605146798406700941566029536640592350605253050883843721780019522895405652103217790992104785596705738302768793614109971935993067392956813044710231857097955928523758374529741410150986102762717875546105474577303802395752180832126769211121359283338070572906084979773640132909029363919519180550588264401550364561612105791122343710631513607683867361345236075618328727072256429055788265332282768345914081480563376266189013476777661213341390024138244508175416814933895399601427478786824055521887750499979412945167505065527530078611616588243017483727646746891479780457372943549933456248328227166681684261623381981522317578233680336395636026309058343717902079836283393102990861839570042248258396732005881650069277579598566654863009739049204273853575086217649453023919428403640804347672779296113602192933589860846859933192571134254669377165147657124745819528306511623562120100488846081061013927951887665653715164625511931071284003828717272584680901613858765712160622063147754893430346406002305835744540594565327963999949441687275891194181807104102324220790473577483899172620388038929072289508475336387066623917911409911273358986756943200565498857093791572398891056799806436648554390157745749523205833950827011095849336294815652175984286466114453652732228681658627001013520021463997027040623879498000914090025667341035606884723410886162915577480937945394911969854510174139754717635619981735566258057727256468177955217368530725808153933766739120413797403713154290657806057642020868191070149201682275250029332733196475609449449310921583697811186960040887869204914880435938521370049858228683995243121454666905507380059951078636098979717512727908532515794142351746569205210410595463270220103391619006814621651858985123848664555397001479467357356748174856179936798039226216653180944943895048764577863601999059064282340428966301675053784791963943374377321201653507933666011980261584965603413657914167509045046381915447508477797277300150528462819383445348562385827596181367438583186524947569066758286201957398778873294803382613157763751252997466555918604453826988818037072908266814163117026062475738654572093223209392284304268990403336653625814301162561066839545733862024164503603591803943226241014069435648521480734099212333618483374199020152678210555969651112503100046903993917753507593898658699966714266577105215404337478379421038210099810921743101395024881358794579746458912665547264285982885579263238289713400217212753412578690257697421982125373528872508991754010629889781862483065951453135333988571057175044878952869473259426993990931259572526905053987684447180014780063667726838342047335592951809381692737667750327304270974249541058701145105421528040726217821632845731980809202238040035023985945596163360447584642051066022664952210563648748731790765226336859270626786125090134220117907409147326685635025903628274365010657926611635177872415181431682111846643447188883249552209398147229644680118384369869453349007897359865251190815527098665703811291112487326748846787660771686280334164968460597788797253539287562982296075486452803529853205703013909492638093914548448759941399507965043311634426030477620237637719419902910785102029725805047772404540839015612792325634250457591830562882384015528382947256915754203756624307885796861394411811856875535112696320652124186370329703920675116458378772523287749404886197323596491488086954672501892154692459680508670305413505946866226701833610668828744657941542180654563758906820989255701972661936056181602370223047414155675063539535258277814153601440626754322965639063596310231138186395132320407855659048126042698803007616333853487746711284529666430911259504391470059573309357719052584639987367110222793343275372573336777485895751700556649908777967444843074294744375071761934344500687388064790488790696741088991780032674917699527852806193678735613614696428328484046578907818529703382026201703226836340486418920325146436719096919855482125986214515449456518585286848578119984593883351993325850923701768040795924928360931059236208293752839004869568089036424298288362644839752647162894684272900970286087186471426366135139398984799294926535088240588272383932936408521303251444419232475158236308775257943568820881454006845606522125828516232597236500611748594232381923504452572286361832944819475628454759204502410617884709416158063135353954698072038486030760500684744583490715015093611347780561728410971538627339855015183437060790551848097095237458770659981638609642349690627300316162957579426777868610644823397820575648908539857177791578521856971435561102903442966911966664226960690683766694939607607916932627099341871843458512849913835714060228676548270243813069213095769266123039106686869893487269868197556403250813861061007464925597370198064097066742569462014026670677982006711437229189367146159030428483903825972840510918221743249862311850555316182236484176966248974357783813170649660440656834790892709153759010026647689547874063274513102246238864506061168355175575752802578944002375238862873614872413800841526871977328744681904630870662298583285575018793441667062493238303903197448029520688153756445816727932374278051987318855636924005527811076265324635902738282817895044591237455598475118467194121827334048699781400462044568622083909313081698812658584117344059843421767449763347998088844185580329320020156593408022456577724294552634273044305272569617642287177077868970262736911486060276545397867343021207300393244992371520722743358561298975270427165017882306491762584891691431360677846754335300036171159277332524725186543405872487737485292087563917478614353023303886818099805663768956600848726517908061146694021409159844624777569701590468803467070426575144905090160465272482454010294437823125215149226118605609083065469421433831673674700724739624383175371966851546158470414230831935925875831370634053256401250594984661694830426622916184517810269082556332139262245091827878916569685785004191836108074609759095491995128762656712660933092805907769103660754161294683707877269784328621365481903881356224148098537491180431342156515161534188527316479482652867580878447510497624994338521551597644621603075785320314465734967157353994996353652990167348921343137373333870807723343662572174514409075305102979597721375873673854495848632546990964259641266782690849115155982311621159449523017496221847071286586198428663120571289771347938993305801759478320359988569318960621942301481676521139470307924131407768559931883111561034291537849544455859031777605626179418490853009335707943997887172331032110807740455412377588463239941464699187290071426430544748206066619332190950264574514087764180227681284543211737461041474600801022200809412497386293531534815753561302530259476218862455109041267469107351533258309455458939774917161637780459948284659888500551272923848983409739848452494004805730539048791426917197727246788834959771109574020647942088576349827348823758923037571079307761369089940483865750416739386771039854560479804996829488295977677118089059755774179781995812513338997596676606767575146748315239093472744240732929671339962830227837788867129669873092102278054085404317804189022163441121746411609687475034844839748390474430217922802917965514169583274685757906012169664344829563374079773871884814709148839503063288125133721663149680482765684625245707424053016369924888531613674645419307031728069302972221754042437087684823229689822357525060018874551436496351577075409002936636404730736066919828368515326465729689787529058668253092045343520273410738452823888719699380980485776625638738122428435207610206171082819423911885830944544365627179132162600496597248841504702224657874497648809877674304792936795138590824916819261952016014761707191116002786055782197690179766969569999967347612509868144390057126865412641418677324276383001818084323462071809582244253236251670111857513196230053085383265843534980309557635811793921103092541076970919969470103676439499623438972007531830412570191855311570012186043602253541987605169240679649745720421777945215582401502764180819475191025275493789099038149317826028091292491299205741591134086960719263605015568505101497971773947224960299878707158346431170019359746919257022163322486874128116566346293019953939984610475850875114575117273070508351623587391424802701020228256328640054938352847871535210541830815808297641839933271215350448034304646023510952863944726089355914858559316691122784083574289859979090281909727811552161057280194501298633092438155187298632293874976168459806102130465351196243549323348296025549694801877744519726816503635341832115588603049244872308292084270756630243516930462140647383537216380831775583982361122320932978154490465459301681509453100186228386684896547016011474171036846507595362402189258892322687407561127847234972098334575067009404666515520185349758969683556656969935935066072807050254704143599052877416366872451131344221257829027839783887101416614146154153713474265651665583021195180271158032837246068634670146594177259208631652491599017528639678424899860737659067701467834896978929979203042688241076238621096174843926841626070977721024498759975313862989132297499193837270285090546759965676345318330425305267056597758618646796720922170893949074795200342915297487080568127777864009171583342423975730191726572516748772624009240926666745332762594590956617654695017561385056919316026508367623302245283589317728052775725933303644664155389579187726179466436187347781463723626545228464653330529438840701624594586658140330330775964482647260589503070129036898720512101649504822705338039918621131885199123021504762469903572827767396402029855090156136501584330372213650413576711018207232379316495459282831094857268949372211670665581328986530326322725522152998897116639554806451382662504053216973850846268519701107238172721747063601327128131620305662233042128034449731955205400066921848649521114377374586327343743165121413941268676149318712157476711674386432678372504956217168931730235649022186648572502909018874073818808876260482339629549912026531928851113896043937505077754578179719476712734285270166915049736634629131879740403960079196037107213593232381431863056962814341095255800434640572154592361805701891607499085088704678108402160521818214650172100149956323317423326574490989616412271377148368604935224901136989797254667713167414974989371285185893554446618055038738742254025651770275077790053589279683230565999694785577997134554655222413379548857108522084170960129919326114924042558142681318691279522275237955439113589170741585244702523072978643312530555390997613933394837284767928226317737564952134462035577851754714136703735694024905856014598606329714908183711911293783357049040897753117053676648589887320081687098598251326493754505437491867595771213879517850630358985708800425647596402538036570397148843766278326085313040352305706436319696977675510408257271668927652575601480679193649636842353740467588452320508928655435030396652000885015770493339767506250776602889904813066185057332402337145914668204400989700208736397718341699243766017515333634077637238709414020920945231695731253138064165396137958890202137920109820569441743927931094442982526261640970413224133763903257315319703802250494124891052312525864909929691006278609204833093273652269109726691281367034657847706765501499839900549820509441167690969023367810323975888887663558194985895149932600531750738990015183148443764856373340954782822265045122970178762715097410596628050778522497081743888184744016441570007626379348072905392376718984189579215754013646860058408294409057783886435275118272592373973550101680036685546137881292563071986821731026900113510356419274495513344590176164264310546728729922686937582340757953398280994352999682040412950240587075388801881627649114042699338923891627949674754539774670713905462039057054820917975647053867535063247349547677202018190710892564572543726374535375185424474003708104406914950321307931786223124592787132600752846508201841933482398764840022074286559873553817068338722592507335743467806543917689210439790139601160192584338822889258024679114357490737425779563242818023635283075022487049064115051149922096763249424749749256240996551820284084155519550016800756673132485138574280181564073591163454912973896595223006039053820481674974573155558185142635043558234733082882147382869994790167459047914133755924940047219988641748855721381934797658993401521599372737667100196939206826532542351544381613948731577768459129850408566288183484584577321271737933743408571640793538155177796042035013340699216150050160733948326676987274467545572707246523166756335286604081972925214318965546652419995536864801021165495702744209791206977235261926652628245947402881232531792420827189882340692030972758527871417318501154939268592025055610151991944218411573606941623573016151929040147602921893040115438748608820924267044172698357639082027145710987016226943295616908974023894473476036616375943033209276269065645101579321597558456563246681841749033693832167513829566926424063967663263577021210303310279677329478572019416017756363556301833312226200502479848344696886864513573883035093366643832939402667697667053555307748026985142289171885015389629405335722463805825609366527787571835803299785313800899445957808739334873606218053115316565038109960902250208906197638512770378765004549518187040248023359559785860342994002585043672816163048276467420743685609675185337347579539655312652517586548305720656131114658123373060409740023337263658674886947159614706232909364053253309848151186567113543655502409815625620623365826002904473807708371206172977743891625071696670942662003142664157030916890578388082247827885277299266417745001213298968219413972521393055861520828790699244926359228348680216815962747963375094596364306727184199944284700568180720404003950796005766229209250445367914867515655928631103965345903682508552880347840210604328671128907562233760358871559526217065031021071379249456587420676604901851029792116976256928069704674559157885501840624282542963329013141261458688273937095775859544739224705597117089514028871113259034057030593797084262007905920568527826367513160432926615976067634484731581863294618434064812217657627128536678663006346650237952470413151765144855906979176080088928984089353058798327550278014099077021492532355348829046825596580955935931292759417457765414202122996225254700629832200258795416765270876132704307781692038362264016016654051526849899477268337288390706047839345823915106200806832687231883547990486516501108789065120215126777610590684581584916044967394906608473056094312971892403835893553288042628107028549028137420372370228178068420027641751820998268087698917850902932377935835489612426970485536475613427137551871449910096160674740965262295685978379913407755214271552602219344663841178947736814190398218149425826022967312382820854057071925156970643261456282621031167172359381925249457565676125415509954620665153664716992299229644549070208395476669319416059846826761503349220727305891451663641450179617514387840776096456430921252726605816469184674547683783613258173782942148501807679292783075337326176498072761433476215135046955258200314601377639112997373173958954944281037285768289815556018300425671243646306411420641786981185205866017154929538555464991518838743701787264706761607832273323168076644466716602877981472211170164227857502614551498499567466203442351313837319509202438394835398101006431691994778296356061633536363130577884590675977441850366387684906915375682425913042670489064584408909240779759492055169381556511632722624587141791012254734414224356744740940156862504703279262149106067372764106616900561243524644600712281906918867377897565897715738372666867598299016284092480212464969908224598060672349264203891490557766203583426150375085737810121552004837289962821407766460461717969937640805107210792706637688815501697018258267241952758812372881452737249736696477588808747157402275803859358106536278452483781443084613372730819444791773942955711163147366332018136240174539114912723419515089743735119343796228437757453042676214129238164286448062849081297180497430122247911426167624903799242035928407926861634337879976369932938350281557188551387909472120838884843030052823377153888903338410688251808345794841757766055375282305658929068839409650874384942107487991455016501266917736783171494500387146266699730990419568076724199065931795686447043385589343800024778944871035610901067028842038753554696097366298712864417532337334038401624947933732162138935633249636493180594761470432474168715443130339341318958410482792715437552997334715773922262855745472962183574152939729011277591079148868576226730398490367469840910674817797790393061478194875483400430163512983474176332917264176070409654374508566367009419206920116825012898435884123078431601900805315750614280475850160114772902941692662366313148635184557817576439954546413281288200968349809303925405005823074776883258660057349114121484713502602665403794318655167661165191890682702693267226929464518584138349723097235515959753168782958702191675361120862088772988336975707443210748458703575942767277351640551274687791308902482716440226713760104306480684872413507678169106821064944514260387570959248690110701663063788142629614027159589906072971000422345133930704533512274258089021905951957279077356933777917977459793827313039324154579165395180306935836773006516067498332454630924288188832624895525714720526895824280451142110877944483994086607577529814989244482729337292251397191909400677960786579786074556886599156229765374850795595409071234037019541609585438975846758107158041513800839058801302935524258317798403313863208660946503485912120397815935673967579717466027709832257692451956190503090398811492633100485171176323913521555078479298289726216711700500730049435906904550030473516098508051957828042584431298233490677117455967344086700297441476073595320215303982987069407023598313511854746049353627121362462206875390543256274241015207247020080624417113632752705068805363304542089194904103962750882496579388095600554944338206748477366554071914971794129657250398299147085750625949229024268137299301432820715469978977709681733838455757821858204538905403948750632504855773586730012225248025914751068447130219453142931792637548513663280179076399572012477121011043717098095188332250144185198205705348662097693589832410480531020268714735379733423939783236094629118970923801595594128238412205159058904929130976242436169368842165858151788885179426899138456245724997430017041767681385364045680596325396471457256193956525592295593296335249390856267001618572105659178390425761569850008896884442912290010656729673063682412090305738536813421339405148502316803188739571761173805537469193131597157116233160902933254758160558502984429495093975609642796805398655937749687148303980041726121547537120538756264863966530368629090695525076542700709248678195383108922512445722041927358223392323088055381203931587635285752241752184245864889270511323660920653845785085358570316068279494640049541547305138776807429816980223603250943387778207095653054477271247954352052013183776352788121743514391515270818091319175489467937748222278936734879014177146588002295743325538402351392891519184221731038797464265811166640113006426123867989650931018234221063696026482896237355111904179030782075843318472688858623320755303516778800670277205654862827296499238176049410733368186578325706013512302769588923612971191968861472425774692945861478348386467040696113676337887376021055225105697490605143474923375487764418345949811279088631020814335717258672775969624837956513047445456013130424212436746570398146439514964291061578402912232476709786678763387212758687260747580295176538376998854017449329190545400109193671209471480745471974039973618673398869215078736663988973876585675736998799091669728515298369577835720186933535306262939487132606112774614391953592441963403488113438058164520113444321110084441781231506748970346835266142279606877288575536600648621911516658908430972223235736873666348360577466846655364680446503726848737967637909732137829000541837451745292838144226577635319768093989876108891823387658861311079267013195189865144813757897867835903932857216703513788636060622865637988494261133392950172092554955218878134737821720131772987336123868986263735573597658742920407645702531373422024408920571806727885919045225433546269674818929356528188873177405040165049005743844912924198931899271948059403922806719990409820358782480952994901525696829068822842222387906331409170543379323730493137372703443027002920029635953442221463980550296103745357038470760271425295217331849274938300641329564430766255340213624123921449043005273873527332099549885193700313749831377653895000887541564860884525623965843036619464809527033248910318212053458066131827938067046346691801690741024064171467649782778413676415058709461357729436090588258942372704390421001518790222342659926136191678416767710006938114071062370657984985396464005685565729080276089126668070187747677800150787955816639820553415432737669844575972157939898395543259704695745327019738322270351074300589740241909788596112449522603342803386106071291644424661639586524475393592776079799225210841198496657139850011555185963847846751077455633459619580571392793595736548142819924775740088849626118877725104703111174718731818230956651134771874262715623818331513150247806749543478436970996821883629242093489387467247874466683357991245998168438808427037062216754287450438844370385996650063717503946457291811285067784466749484881720507848133412775032631901986347569571827377969794538956591501608764777659215907532374030497536377315623108625449343950557798295454402122154613719146443859986646132284001455502979305939506027174096625989316589098380757120298066512682507519747826824143655498667086774064421640843689234992905731038770571918365726974166695589958640695458586899748029002358432026468806153182076603581342630421920029746339827269782783945899538049503952143933494682077778490259618757879688767502555384811781901862507961463657631715945589709694081096865284895736496681552227524685797166907492276196181585633006281175069582967505531699588350401701638456919717899313284469992510831891663818831697931357802965119848540043296761126145667588056141417699065353183221126756112011338247715587640018070908819915226608257958517540555588251124369812751495375625663320395528632595616934115736245485590778285869024726453076720914955142094899549031733014494787164022352845052976872780940308038582048887845347417716716402610410153780994788783546067390809264852978312051518019772217854168801115406388749044907542744331139971683286188205961773940201965034936080887143710973735778454693851625456064156593158765487905371527430902307876564692536497147104401462803073289676835736927181490982108138427686932448392053958806419499089373862132580223868852131802401083695498786789087265907478253401149752636941769716879166376195547344744652263785751146536696915618313544172030007837149326800688435932187659867153612081699770184672094612233850351184850335104263849065921657882608642809959118037556493926287196130688184161876089992774253601430265997706580938904375733656695358731636505923440655719812953374349305711096615549224331281554672375000382580669229724358490032506155033264025691741838264136623221972543854809602516276910752424029671153391748080619026868874094520110462991802399041848957651070925129694540935651087596998154644076662526962878161512771682421036624433147906582925537020407915068380538299951711793370254233404656923109344878617959157887202579565665847959412126448666834664253892676784855358028756283932398592301651245026924586686267332678889993947100439455769615441909426305537966706123667996525083107931157347037698165902690663300369466063151876270325226693971147827076316020374418577411311751847960303299983006464700886525863460167218152315751111582857258447715286059938999028498726011948595576382447755997180165113613173980294200603875576233982976268806860801713274588057809192932536047794201480171460945867880078537470525909618428431657529852185670580239759668974351499760535808958114668901053764137599348008436708257879243246833224735835086298033056980541007412198081062392919579175055371517252910663736556608597821280575144492998008585048428401353366194159313616709396244139328357705040017644496301971529320663985621244169426264315672346145205487289522592530512692289247784017739343661050590298127493418804588149240121421948474656490341527274834562747376859917849676129892742362794576996472416389390267374832897919105270841749261533999859266385919024288321433807152680595123401929498243524964232609101751798597692668328888983391536341124433734710976586396935154595273119075248561331509007477760264585856570934889585652675393835101757599676457269748177143325704962142440731518785680326081010412757775240098861508858280727835063562897144391189194328393421947997633918108596340578551851007211130492634007939547249607459738063104766171647634889418434205627845916363414505171550809672513353802027312699440518125404556802794650273901110976753825077670846145046663153157409869014811590579469647730598541500573402596922924826242550317976885942958088322683884204488660499224907832364223704135956535909259129220279724277310405832262454588988349901556127315586346830497556762424174581615401439222025811578674684537836712032141950192303383150533570912927293455002329407472827971444592630616949522313114855718787164407799947085771731052383281178328159559647514860685813252975426125008049927818582880593689927438630552821697248552724363745838850395385892470169223133608910408466944930573114008385109176219169730729256556631070910268613571609148625425199476275624367505242540415845452510457948761870046061392702622468117881485340553790127063302428029357311222651441483814778904490433921582032775529725962961208788435396193216980896158046348942778872343338838018313314666295060508017863313811499614155858075722131194766337910260722599303402170716371655652956693022906111553426670923074943020639777381555825527038564530029266066812208496859109404543328493220243781981581545377718494867748431820738683464087494187976334048589525503653076047054244319860190667885901169373430988960961954211243340027824582166542704917589069681596609838108936820434213755930210417433872751900643205745035963174242273920923490147738163584882065821290784950060423637050466087525895191689641842287355289336548569791676423155440575359836169512560892724413277310751763420097135863915439277595965133615235821229695488065365619566669864995718458295662015188122680195245426206016604938302221631380083250724115190142725024286814847160297403434992455872127827090398595805272574524167170150066095666798925648903456034541182288252437322765059858488273185747361800316905109001594974607416315886616626949868447979166188042497838469808592563173681689067938865376379487643494872487121878700026084010051966407154455021060870191507049380723535458931918112104808015156684148085659405455377262830860588123377110205876481171425221956800871342035991235099144401308178027733717571272426908943672105950037987160708896013422629870047409351594230211063617064573559029636562246610566529890652696625978361853612195261731976875324410130440481086431931688298898971555743154808589863262641823244062945069090002087531711712365601105448648116412306456951022809562970688143188228177939050426789317635079122224350106185220039243489800493447570140740999956932134700025938614748792179350691763261695933667662301040094806653391403238355818441639752909150225331946704124702461772080031185812960113596588137784447834127440018155383251984584036861288955324803218883281375155042082297813426168596777683814454957828819250133175727972113252513322733383511393272532968181372446317457190279262687439193111108198908681440434280613576445245588238200771885043341900352205207500134598856669082592075539954823687214007070087538748280921152953348177728341536373809570260054606295708325025405327364894225494022448904000759071682272572557170496102332269382292944399230502627318839848822888950053927697565997376970406405480403487724819242803663731563742320257829091615892344043769804577271203257515696839447544593918191869721069391767996005485129712978639145735013960002352959744855058158409230293564437771191245057775939552923217422670606789383047687412804963501487174930695715997478163569810268659079124820365698696999621503022265634577319998569608535609904772940539982068489163873396683903896328124938531214925894439204238630136512015272483896592573146268562485209362194432338360563341927620380731820171155888513672314249789496347774708261803923292049761458129516469102414349498687048985911988618555943025937395009724557354330211402707299328561880675863016362829508721878181783305733896408835647562462866323839820734352695883287690314551677715391997479689875239356618453232817373313234522089446734553090935192000208275016331315673489772303473231048650653698838474114686737837065095423987572651212772822796997295984829714567343721646427092125083693458172635605693973312421297519848397253528197908386880237920444781955120199228506572620077408708269000736430654912227105218942953848815498052141681331140172126043451876907075120443487457733746235348934721664183752764736254712232945200194044391270571210296559691888530051640354863456890899145203300008695049186064198484755965331383843559645497750248810324101876947217665756792707073445835997492542237062721506115282379718492902576758258420703691211182836751195657943607047421975736811758294580868413547233368300557762198011397460083151605586804763037471052099352906477849508031076282957207420028913048885433063918271081953938658837757001991019801639408561156575699197360613899592437743388336299627917849541256974778784746648190575249401771784996163562009374993222729510612765776137256205051705067217548450767468861072251209347033883589684145945057768260785170624010528994234512501537716594546192445738653238178721866122777489914056003469175744427663906035665441184934439577538872325162377749251263246396073286978353246018546022214929796257803645053722901778868928978923117716999833524457151319608995405295077117746477078558214438518785694767653037610160861046834264791255729205204648691878134709024437121890047588423673425610176379161735747172096427965982081924529349154531004398695550138227830834435003791081365862990518852593137996513584206995025948864750566067474609192984958138840057765550323645733372606819328524451049184097949834183664136775928645431234824014012103184453315804133481878772638642425336391400752236026686713333217446917008154149480758243988054164844331470650359506900799239909999220321584032095050831329121702596448603286098197805212504605547773521374344496902350222182065844565873400549182039532250626598441171582431946946844817790399798637420328400425598807088391445309791829174861581568885701062205823935838829277968263508367714548301498513471741227043728077331985538327283948276853963510965579464471430667692748841481216482827868350946179274065065802740329953718369199453297869152772854534687260714826136741347981446122785754502716292240767677861101240772994361472518360884221491715040196477821313490332283147559233519806240642522447724935742614001099300532959826126679880417646499097192148020790971143222426111078487739241827500127350969034805590418977141610582923543358916133696117838597871198147460484714418629938890189736091048408911788691643311834558009920975885204885806679624257324395476366801607537843700831602237091372826770985254460366918708574581810442811911543516580665244436245964461500015942354695150238096411711160322379541201832163708161078421409271097141825553995013250596242912831901646065358948734276174035166580331956825328680348116005298217204361687257520757441914293566316534175539186089395071314781067290958062453287974244060536072057150244240447122248455335056808376385559661479831224880881977724849143014388085128997013169966021302250714336547587418755652739454085067585673734678096162918010588519387625220648962199348351659088984028592117036355273212802139361099993563133528375061670116476373937735682145828078469032627984738389710646536199178082466734977388073830828142843875197682345284418293531900899768774588198035802977756056446767360015804721431029227334678197403418536465875910975832034243880175716093341636492989271976084015307905582038713963162107372408931887015125338407949496781146791178386521122451335524425733283123442111176993251553195145329366994160634268657062640336563543122569503693880050804282627002086420017305510767673249118816067512592491059507325954669081396461152670490621478890760468248709774407180300637678062662080053391467938056337290250909227818513348221768731720319489473774516472472542391731947917930900183899344647711978472574869400120021895576223754191577285626234055872436643213064036379154188549967485915197086167310890944023632776819738620811626421480648141769164913972921031471254456443403775649661096116381477565867215178709489726194812013332380873121329650233237346954231185674785606958887689070875789165748664853243078988857576219094376362575382706096648547318704797576508424062739637705164428014712999126044342487659248152677245488516714862398091962520656356991035361001461895882437555189615102721172305509079529018696070900541551223367802495988808834610479901716941628069684742909144349074903924935424501324791322197270439611892452076911050321371387170430102988936019013566705748994596827706758510096057309547039131176007938486962595699937940795357325329363423946666515124028381033113722796911722551179558266180111894889166644819850384632652524221930105561633465167158412864495989203775839493664050756923695682739696170828943968165169183949967889525734931337638247865511831842023872952820571530882959590027631471768587441853754017599300987295305872220539158313140573182372163502436288790851398577503871100825755762918442257201765867645104330673914692770778577568797391076440413372630956263473955805446594852860528092271277232383145972049747313223131426010089547728093349336323419374418273587063352002981720777932417915754690375071185583310845295742222025201530210026739498440600759795381057343584132326069213463316256788351910900803527703398901205824397198552449031940791774418914526513705292078604739947016556716556912110921142929303167619583592053293868030177161969202920616809561448874648904361749060537060631507518713654326828269970314102961316130558631118711839431355635873574018908384216580657194213439039132445040244401412913205056664673811887182708239227386697257732952093775508795857314650124249427420827677263522575700095057097837438015230918729529513331788309588388614446570161570989942760708216029656610070541325945035511197863559441450014078744624734542273723110630351197590691378529004195974329044990419926192234761145736508523048499852383885698276575224139831040637833246486600230835377000355376308862057755079799610842666642913974907394266139034792461337493930791648914758732219432460942362451986399161755538653826624189440857236716438513257805600699486648134886936038088388812102129532422367770412784090443892490764886529624470221088388587454975945121181059613183829389344608778108304522378905743026082323618136573941913216865841025297299665576915800142075244984192865206772704678762409373624052107684734856628671500679948430957954751483337544878218597462540739601813492850032598667328009444290736600528234894937697032751914045644494295685904044298750579094918108656318056264168741915057469665106793569230770094797304894254462740941770042978275282223506871589772318965910715663631690198525088095169102235804282548092475247057245633433753332113875789407115554792011022562083777978439938073592127378279853639509410091871988571391771355512550034076042206942358289036658680402629854911739310699825241308852505123156265933397934468886282517855353936887742029265571536214069607634918527337882632063488409203938962424336591719920195132219121824240340621087750759737132813959558465129849104745808120478593136259882135820352951103459455003630924155572676586168488201452423015648665882156918879660513177682135683134996647570576652642028763166929316553480425955972224159868945479811680550680420657453583843114413323957531763183796402372471950686001520452981669588213519872031835154604388198406847399334548845417379456204161958137219408386096036716885917310710895276541400820822232453449825733947422745732081816445235667400429700551535764993950436681448439888656260840633865066232610165480811446010354412924502635813080739892578333937266356253087249592310850931858790350135402980929956449276499408613461926689708624471120503367051332920316245867958608859134715296567736954779818359365533357456379102608498364337516589734762455072672823953215419399105732104924978837858725313059242673776982164742409857685816131602974381256840640677157858476330006234431734668505019747317205166271797197098269569793776111919821605855103924365403904177181211411688538741152638039097771679723312723128723555418737829374818972417084516702449363405073680724355850608478102862875749818977333645130070545659890943305444339627275194781502217379867429303738553905327564877832320445625337268029073375506698582986518904685713001346258745459602627464682285632251691228672569413887099130289314706209016888688143533289339532210921243185917172910485085331556030935278342625752105898743922815263347528614334770310705362247906702298795403730183685862732131807327183974757019537084463218861883343011994586927957577903596438825890146016290225038228417672035270774320887290358997525633455721552077677080499336143804111333124839825772985063700270786562022080884606947401868387225150428869054319902911654079057543245692693731277738752876172830602362718558992361609117051646429645536332027773294242517225149182204878473370075094244813798621593339344743265200626282139752712284098522295701128448131383092049676413470928918752545082042723980885750532258075629812304809051120538949500108646859708055990632264023181549857231622798431474662365181320449239478936834363347376638910647990808699930518283894292162589726203598216196245258518898362966951380811738407840065192297608231868312347028882231150380622426399074835338666481115934972153186328553309015137723443454951194391538115704731060934951732107259099885288104771406141800555112728167092822622640487081767869949325944766364610907879416865484108941483484098844143105173202270342792442041615477161091920490851346563681691481688316707081435143212423838377628170262555113492026266805993915772866778419999733165917631786815289729606752224358201658656920861410900093741385268124641175282286335726836253823215800202233317125923881779081316447936047852915767563135287473142192808852614233969596059983343013668891242106346025919545031679284389894247928168894586787530719812440515924571107296184424472470955148838670654255090311370288475948747380983413763797212097283382343457979573248934974070272469183955363420770933714598727654801390167805158313909298319827055292327410524327277674544074258228100651678044754601669501864595046787888429405398472813765470955555878041366898942341621510669088446051717744022713405419801119556436529425909059853260339367558538636348508457655095657272371261082781956809869099950569285032744122732360618593840125364626304110530354039033872843045563780228830458987529837693443280764795663120023063606452880324747212742194383951623584184828585621725959352326506801628239302140879024946970273825369694863343751009853979099287163088823051604429123058608005505600445162255436970992516874561324578085415288358947818366481855550193934486827471328309592965167513252810895558018615811234364130827898991310162503504667478130037726997534271723697412759510358859329936825252092509978825903763188487714325318388167517429105287015208778808835982217669760715621857698502066908217678280883529805747637090947018374090773215942134809384111624481353960208309508389658183961787822801154023690179277619187243026533076955525853367974422789755066436319194759170552544930631049188550251510699751315542497927075356707701006214232307266039069012271562163034563027738194173736306560353649062439056303307120873003169300715279453300784797929563471175142658598820734353513978289900165344386332114581695938857831310395093594880436514838115694004664846185082865748272484352541468923084984931236560480236093231464093102005124818065436583515164115616581978837420202181893102925553311512779325883170483156572409493067010407067776862035901354115524084847222643279347560659207522086148910841148039989078569843631754495657233487767255640065408454291037673021029696120291351981365477308207849087072415439006149807022108240749577909069672497596647944550276339116757516947319757713751341386005378243437554936560313981484242478768613743452264738023133459868970360477810280184250255220400923304378350146491888903498971765478575748972648949269966363988679091706813794837433033574594535987701645352899070972858021392863920261707704528307738832295268148461801279784827636143589251647048638199640034458166089466212183561253756747149795753998908376728796665460558211588420474427379777946885788039625046998989105279746262380409205127385194797976362830189691839967778531168230760641400709744132773735834221662390184146278547212765663085849167380133765439743519145355130212083763820090530561541199545002086529541241160436713553576972224314514284999171873453351930161126057103001579209009397578895611302873366802186931871799758768584180324841470921416709071016853979684132666249653723642988753927642616318964886192712607422521662813045961838748782347503900971185613459490454760961383204287033053827687827159081807068735301609458092448511233395544113312151243975379640994293164305673637005309884735122452393604611478163289913445379501749288325447734422740842430835826073824325119046115374511676407465875824349749185751224567226659843824688208884763665315736444036094034059364916786678262084050813041712244098601978826880679278484820921735420998176916602777327719848251734056002281258850784470295346500632944393319592103717889948425133116887289173655086872194518648108462969958959996549072085391669557543366723107064682158744160347998010238738762426508256468548907816974477287978551801764623087373295267152396035268493449395974037763513421163993428038098711934223030787615710693121525863063968023721805218206900804229485572170126054375845733674894460905817894399446966663779327329407063063485526167181251815349185769188116340404506213755690929048127964402678652446217972053695994054370990043131859005479443803656968035851110620778346102262718646439005765888709739718697197714103782303241252689301028791111658574853787340154105906817185862180931947418358032432445796828322816433617878737644046278196718289710915067141884106581479165419335861793176801637771346294790836840943595897905553626640462249100738668202713864854674873574418515507381308055361048238695995992297949407441194954281624647118980026680897134977300172228759639709218541606135567673406319963257497294763199597429961247440586724756285861767169438059715045186538904459819608907762955081084084540614360141976970122478607007452263178722424101873430825846749793691725773452854460366741456465488622207141649963829365380122689195809771848972354213568441921368330164094976736849600536635757810525987580619882793928049858265404232998961978980998511762925878869965538490147738450041743090853769402737598820475929353390769336936454077544021167420750438407112066225530830352879292571796925822197638542803598568041300534323857940919213806448396072679284135507632634985691912554677779851448210736776785712748475844001490840169413159069084345981275724751970987621447410640344717577985291219609603163805211074085502168174983679174585099311586216683349728443231930433708117247060479136775234906445139846127509075340268484415168674638984378465699832581012958598266006404021072484010780577706097594935541791919131293937280950769227359804133580558920443054447394046379812400337808434326500431262849433905428031145071627058708383573668511044125939830793775373904762422186501934569115778199098205570467128848640267784669494301543506492070339786405117887408118019405836372775725976228929024735036170517778390176406111993646882993842019032784808916169260996761265178449612547269990752214195804170797166886111469748987435821456025689484465214597395709547051368849665884701037998178738410917211590184902878228392058119733973884362513348896863575158944507460503439390919968009890202747797330002609184109570667512475272985411543688298807415939304558061540443595983837975580302454744820756171412383754797901465013457428842950776773357531577368213623170506093843626775641580704263070709842262786317381569971918792795842420098190847262163868757650109720693014878435636346226869992248658864612765511446801477276806246940551543687442369532190407424549855312426621782000455833438145939510759031134562932085629685460968372187714439643984806251877839929414020968126860289523045968691833619494825989176805213359206247462601979693248760453702733644221250771342215430635492114615349297331110632730975900108229343482845437418605701430539005263609923760965376268951619676045363605683016739127761177194525670747420409012647235688105219994560644153162870462679507454327050224861600038190345078753713883771918213295219305273135104862388847386736023651970033158562847806317816357291679545385999065255359610076506952653983150524248639850234189647171482563558148409012317138356538745510182641150661235338614984606925352789994374634110992798928249230804872619621981070251168543052994348830788049642250636802057692269835392052900622223157659799100054898882581266827250439520410502802564826439514659926371801688097662547156299182914238472502000403522208899152752138468545463557523544115869454514635740546900350548718233742463431725261662192571165501259142463439153026939422346325418638934017414894530995106391709239323426822214291728865168955667617153423850377780020901517681410976382454292092403264006784313197147994829895000129382093728571828439622145928225895292261987131530404179351716750860269450714535693188046275111451497363906117752128811004834031821271359842682935034097288443429944933316238556165741647192722834860228221070229226312508598102663966193796166619740371397276110590631684843005601549320856141311432538618768678625736413412209673014085202387759043464369841158109710037804890247734518919751086264745205872301511640894562903449608751116554761684490434748184993904361149059392841553897323030407314336689477936601317075824313591627116354671381272051598309311305695597616916271826375103397972981817635815629930769845530927718305330848743794104201396149191246428009731231841180598425188695955448733157104506509084263948268673957554541228087700807883704324497874089638387912709238877158143568804611745278861379839685816452811856340893203385740164153964836338003425482842967261648024878118084971886141100306674589635115345725612168095242602339562284811675138230841405343199532487302153322368759143305116834704762866910167774881544051327097257729422113124767651500907099673987646512987413384916495986198164435064109237436969751618737346510800212612822007240588128106171754974755209405170840183384342643175572844240458442953928969255427643929124668230158611919219134072948632154572416352217491341589286377210098677739437094364647156541215472088326194732707482173622727949961765346969720431291162883111245745509285738993900933828163977927207264118606541156201304476372887128655560847150721820763516389073306694026018003069760645890368169991276829831504247971048074825901816316300423217285203222502959949521988509368068141060965949095533148068548632604220397568013614397422042643010662419188825757061883670853000929406258476451853073338155325736187257019746279287867695524738397768596808328819974168868989876574897494085343076435839216300967993038555378705718788318279264380684219866977409851716681215692798609837091714360415458417190004869511723252613134846951197270789689357990732531442454659747514960871885102316605658041672650926544810626996462260531605823244789020173378622754656952478361739148043633009135404385981954872446761119741537209252200755135279581982999706858963971768854307045104664511563984494145851957708930309572747959840407711497800544946671318637510344633695531230705247354540713610600161032199556814349475574776621680082322692103846457083273067311721661819265392486789601640075985510095157191933464102700371471718259602694075153564592712604837565749400290891059633827475210439505831683195318627433560188577146849218845748047196173232760514570273487766819672716141408958431537154115746242657495694009505018578180832021466201508229967316994315755252920619671104476947077409038346526175632170700944909951231472532795258895839588051697902487789259074367968672552500471694845353148865058229455073892768969002563839373839874718090853513049445464813224488558850835752055722450579430882487042497701432277514744799127719054750612038778470446574058660020288675402110851222231794471956343305352784516496535124706062069417300070488448941722649268412240957504264429770700600874660332122324838774702527565190928894147358890123587333163249056894628876299766038421488295843726061510862289048208934114175378197591817839500981481179743332357690749428804430133762787710194884749177282915632235471674298595240760859074871236628113761695914612626527074691874362321640251852485005049130998099117684619327418489525250807258859926764734003177781830147315861968552230774309077979500926548451743606739346023361834612917136270951554906474920518151865360054134217336576685262341014077416937512564780275952989675404932006889845078589613111682085038819592226145443503577279171078202961937928337544185215495316244749362522555856766132205743682095530966595803970604552806878865624992147991395694539537019229081116201028219421679093895631267048612025210835694399111971977935699409144546405719706213236759215475690404763511306658933417184046177530813327492267826823436416246444329748959223123185440263728232061577382486055119623220480124928640391577747225703563834678202353252070875978835381822332227449406475157875589474666697852602505986495843811375277961813283682718336474599201138297891533549927306820680342567573821267562711320884342854225649182133813280742154116910373423073317501767980175765532904549786752524276697267593946881904918647728101247999367616038484897012070511364863903107314071587043704055789326502654317731026882712461182417290333436029465850135691704039208673132987272502883726287173572409608100399396483267168854256135259290219519872890042110913981151572340196916694237049845779391891099712974596138847263728344818020608548545920264737691604448187765161777817014939570587910220517889253440057551669123763272037933671444549350322845550727195186182771658767471078497049826201885753980328532396102286886316784852011656836008115575013462300747603252092139246742322413305509671807822923271087937049291472303157254620463140799730817267112271852911547999131406052185343358548134875850094402238408284333319918547278724903662628958879100966315535037607530558063884625473938999171766233172513707386629187936099374514010561236814035023380338474897509227784429226166189799288783930650538066549528586425585526882978569190112284443497106721873151693138186759275687901058341304479346169102744081185821403068031046877758058136607015335982626427325786519515891725256200866364049667441287216585830006703270227702672369134676476919448851527123298945808848559801568386862754681794934352339795405800631994745506172442672765123111874920986731486908919091021664118743265638865572273271562556678806673598156442954727245249599558336178530275785459051309872373108856887899669104534412107154894555973005605311725799442342808300081508902368764924332096235105927034766035948580233275768002897308729670767365288741280836470644725340342662170779927688208807116971836855471716450308424507782257839938898866382377404605003163106537693498724929014566366695112803744379041039786163343970653511338434397833385282132169888448634097849141142357788642102161678329396358940199548713304436028796175960636013254338890126496466765410605448453002020844463606291320001375241187237267952692453981819226517889064917420898186364177008735154725825392029870684286766278664722454322499556376466359018578730738130978958672419222074367071124164212777226449055831456583642487919930172904094278013246243299900608993970249884047353258599575244284755336884340275096992050029491399094986699552065392079249667345690723187194652215203592713088856025085264718861391874558724634732073761891690773117248541258022129425213401553814872577675053832904031239854421756474594130717870657823024527968639081242215844891424333264320018577457145471203394825713772872337569948136135846297663670415821698796312931650113489230794198296132670376434993508145570492134561169917140794145020244942893645690033372195004533389725281929765974334669106433878302947295963443865353401501973929443547154213995497238961235051580281273240598786917611518252085085829349418743955310947794501823092403325145208754739187209098995168655697545617687792692482186914622810287535861157926412517192907032944382487386772383736599461193921419329813707167814760167057071600713829515705230265475937582085895387092845267016908875295452576534804522554879356461620678545218418445472090857808912802955816023498931602389837032849972480228743170825314568367779293123738542429997880256516603344455837728087978237972522772910626782458786350716332419783844038514219503926457289749655287033362380479012754540241578856911060131800548050158411117777641205468687028311712645962023203767913719628853529164588650503402254715918292829249354909068586569485519034768171288544494656776387704421199642786334464573006876915693320914481046949869504279231469458177080565265301259497356795717095029246118674582206305039189617250230170252331957608437909121358375359891841149284997272309293505020476791653575782748242479465053523091070132763556621590198016995041616909341006153653030318140956102205624183670178209820433326123347069378948900974505535198764770760817502964397123319645738810637677237455101912402883946469445928397282256030619843507016746522288156122832906805001913265913596244907708367922420475737510673360401174137598060585111329838514699851336638569308164614845172987014149880028177678536624950172926457276296154941400361317600966681554504097717728357075287563439556760979507083625103027705543133921581749925495710279621827319276655094013239008879043092863740914098934885511647393924961324526460431393517154902697049159741038335748255193161882488485803949836268070797239690084761263049203769243131018013644374727234057681205722850642524513378818782037527193306635180508508354903222086715458162256100814678260025927187214245853657476800205795321299386005604911867903671466980451339676814786232057290456416459595673217004724868201615952756197212965091436677351109564321503928973381221506626943409831909715971620391407235831199155402526090318627094340837237403565910005525621883687936026386701950961183160952620319268633915096968912791860610577155856105554695654747799935947690413919122689917055109957607016667940797628908674823341437257448439725149807625237924622144556837513771212250522095051260177716661849047999022175386907480487842142733649463880785978401205812040357935665927280955861853911391710715998586106316333223605391753674747783608084839498161872238879118733958747685284731255816480333608857471901653400720636888134091361566463280960762265065347729720551684446486745158569781583667235992805295249350496487115014208870611733978053941667266135140931196626331905413049103292982354793016663296466465932475153869041603617225434222529462265344177001815173096849934115599255337856168604524354624344957235035901703750358985664446658166906371999609861005061452133527040481146427951676576844014653471896087779448155437328332103487551002994141574203824115998450032948293871836975479487175479833150394721896821097479432265774592616856669384152089246410975000467628955010715604250341592642336359125089787271600545363483783221837271565883165683403800761723908330460963331513540559250287708499260201573491225078064850727201192846128700142913782371127085772977389443259383376242244948595489013236118931511521257977342685132453172721661108817451753715461415435815354333525819070265283128073504547452139330887731786334052994961378891195220561475474384728116307892675431634215200778805268114110483490001798819153177520606713016096958237244542075197577195155902153681479478969555444100266720212400783846499543270794977627055174229483160975167390505846799815927553841689844157656021822350891234454081480455008394778341414235439896126603795892110715147303998146527878964227051267702500960080774806955949221898214779670253798968519663291835986917641023451375485009225436278501461488136895475547055514889011521713196081257101901469044183515719588149900062279394391378639326482619785294801456016797372840913542686707900258179879287842750715178552658974447257498860049022471005478376237374295682751121556678567686355894899861771785385476735007931656664807409060556916944424449495646366061810617553327107875123030337724867513000207352274001873347695363171098187621261783995310595095382273649438365915101290707307512294203449114032904178630685071263612141175940501951231222248398097094274063144281023575103741231937985744042676171571960062200064268631601748009955063194828989950721614120843912152414325578984089236222144283889091531466978276299138791597169790115155635285688102606352779099589970092933904005684702255195264793939196093021273479348584873415077029356316667595822883707137339555972682654055129089182286301348741243226615968274968496440612355391884068508713194067843807413105294821360272056090705346019398606926438225406319886322923269214441850002379159079341777000213217599742000259160678640965402104724163454108348627721916153621894767303830610247785698111617300068025300158689214346070227925243655370890868353946689464215065659094872644033563350936482625864465359530641467255573842469970620605369187763537484438713714836875559142198385063039373865708018621598980348547631588970149526584302221460308641391538020026861474998338574529300826320540493611615538972171513281698958458910368833036658324989298651240641098297972842796167258752064146806544646639306132951278049005961542565972912663701331380823018091672985933847877383949513678834557896509195439242167790883751269637150939017293960392328597424310518762023835524441491998684348968711125783925022013127229408853950733238743699506786086971232445142149705112576346366336379220548333493698979371024533914342083771611622171426025745358471955481941142703415259063844133266431464658989970684422874437047333003121747502220165472945962823696108267903741665129632422167980846737213521997350091834044638126509585992742792944425869886109122469595139868192240224355415346612706804767110459404045668555387862309364622086318636812070584193351412865733337645328111487404177549896688066014341471022644508067280717420654200880083006844966547201954424150490523941604041647998154605657195643813050558192985813556094921414545030156762851301695671731957061901103446110218431878796304826515957469123838709318379954960676047038907856211522302338220700306743216134554943849416986291500969542921454017950911532937958939590109293700610653149346422578118372856015584717565120829001454214525815386530033541563533817018363001577348379074783572499407968471254314386270734876200303721812325358070271855476211063654167756149997426499409052733426804920233881710344312644558529118209783276504057734436470703891162046050441233858351193157955348649987200462740663725364402170675684452215043013170706823861189614396108128804887541702118430242929630033188784210822718196274387323218805256760197317894552639535233481147803597131457638508666465720521515859850232402644343396189599803084513787490110944375253013362965527839208373381183662563096621225406790309025440314998056139663849375814217167075219329807275723590908353146196279750523530504877299183410611455019994002618043703253154256687343270006654660854662984814942625535690463676701751374422497181427711921725531941861278694843444839255271096830956617900694946335179031821676938968978874989472848022136823538894592505930487476482057324614833088891896194936330469742845656747667677648921745156106870027751489374680746978132577768476868194290466841128210540883112647092797519806232262148743935412026915447397414339567741005751627627809484985913133821876636182999619997388776467627283532967417299482465933229823858416250664576967200432511757756362621772337320327245423058484407263909278337584199486584638995805497541304530266031424488733690777844347531039813046064756969202425161202668497156673265247112078145742001920578797321747698584588585371502453589564647262194231503488917869333048094691566689612626095622005273640013385953492259503916197960014647972788407874948572534592648552174084718292525016071839944447385971466852201890268487040102325247906884854899104945804715268934735640014218501422953975651912546010724921443216504568693766463195514336040833739270977545079134696980619211020032533850121051246128780858024945989111222687486722384239670101496006721267110786450154200303006137103313169232499992804732361644050665831686907193562984190703634476657014837041819496905591883250022586843318832657973956464549732212197867423525654050828635766636275438337710729058404461012379539155680345814604758549814604694531372760707242427387179307201079900524979100978920587239627724416089382789848263876226987688135905861445055609169262621607238106821292027921673607825665187725938629718913394778391102623873950784969415618393650926515161679038165307094537406576544487256095203971436911603096896686279786917084708146342387234348290854254595028165450192666623658821308466472621846938465140564671237569941035645473847667968748772099627330405633191444390633930703458859657209961379838347307476516934194946220042520430524327285895111637210526188187964157106379682125632282618810223343082788201798391294140684714696374632906052114331793106957294800790376045278711131567960096805860527654660682515815011031838667323672056011441145624526721937251126371201557644892558731010574762158012796608274309779679329825108301665774371628638425467203693940693098537790296604689602935643236705883399899787032537309528861983420687584810976335863878816447516598920803150089431788639284347261122125217436180629130169111119951061467503791788226732111364150070440659341695175085577254852143566289677074578291427321244642776503527682884284995741929996319810099890966264881125843609194658113533884529070112997408117982282112399887477306154956858235710650118256982166394667793507970772400927761230972356050724756421054850038784203243135129388942094353278327641111627983586052568144364161964182188955304364838386094152777247847160195043160455201745731700446568427155475154769687955286100337161958789869992444843909319480334822777480479643683449450661742241747847564448843223298385021668949407782876404084718271735508930670341997507677953721220846098334719710691204334747211644216676181528504629053898542031863854602266084010858401196299124179727625553289467899469300389657563213496351726404200564892410580039887039169502247747831347135370930800917863155909826964188687198592131603952679676814953148640945518594028070520094347350745577378816926446392474609258876404321833495169903758791980361547472995944326047853875434800686077004809547606020087350243328074711317978080266992401374546583595532836484461026365541581757106416200626868396085414626289089978095827991409199415936018547372675744719874582976470245863381077574599537786561053406846973996306357564976577695618306847646245640431064300949042396805405763091655462234455327939536887272443240812353490961441628118472004487144453492950889939052396007263180875589323262006054817141668857202245825797862744013053939875207545917667695088646571236540910134324960882620334074942279792287353606076299990093918395710351840902655127680522095250555198544085451303821752057861288212969000346959399013877724216629426376954537579488763074218875012834121720947818588054812752994697513800902444666314889121606843373852639109962835640345182914986359235092679966474262686384406718218565425197556282456783052786567704385959585799562923071575079980401896715456799607839688411609773081335140132992911951679470061467259066858719483706059687567195892550807032254873841344196206590519542117832748570634137266363202419263627729397662660310150330212132800540702499708368760311329149588868208138455145081516137844924212273039507988152548387393229008812316108334635145404839850208589262605488651089409470700458323629037125540412654123357725352937763945428270003357379750253011653721122074462107838164915448672924008673211449583938989246167012091283369509947574438055848484677312039498270443787548092783187165165424388364681634766415346051329015010080180008337071134060712433851003694158797987911076956726827895582968530429051881478146408756372182126495520701665510321228932829549866268281497652850925233375653849784587188009293501714143839971703121878909447255390941814279361836099168999436537613124041088440084818911525455001296644823328739557421387839300259207056110601262071620483054891399934129272419271871790437790907456441645673068062429908187648265908388070736749217200929323272437777125324488460062863142110122433165700118395532205118368562921405276645621063058264435349644369026444249801908894001597259360014019264258031534464939122017993208620583242482240198878600647462251779452046902184124867389600663426290629331578283156692845069672590540310652454796127668589967666056643405090915375450306730703479027155214139309060273491599275793563862257121561940560252967339219158058393687467707603499473363116432632219886143772230901266880199096437315164384822412989069025993139924131781469893692155393492857008047582606648138327131974416337598036659559257113908712116984690877223844809419649240045924472683756777625382369066767768941288855772297750987252023128976198896204882938189621504516647637373116458964349226889195650639126954019227935884687734799893380896233402184793798162740871033369083161821417859372892118055903384419168049292880837312495963892055459644634687589577866968525553015850071369383809256520206058286965629818487500360321223831740388797304155429748573843932724665832310031223200130801593037176397646795980264038918584932956732086714518909841313027043786175374565793459449185802125199230992293265898484797737628807639774844935794409782274740279336892494356437094384681366703610510563297895992319111517759703618323791300887754994721946685279620028379123302188726334044035182527640298690447054112188708518266144279601319879403978905707622610608601902086370473708229869826836452569073170778147241213914611672935191577226849760329869195569629170189557911586480993496886541492246905050237387265052490032887121288539930087754332424517091662430703809707349838211490368101790307304014615537406208872840635913678379820778993293139646050258627673679536422423010538872676782886452636112125948870999421648490736689763662241880010994069513697895184840650718406262453456797939336344752284200597456934160783776862669564539940955063061697296405582842913114604892935022821186813986364173166831263977501690106887609295927825919755892254580995661306763005360197925581116307286389899574083136417854423739312951620769387662694349350402072155139127461902366913371012645549315380523044510431829451680717022182106722410698552310965884904788432194454165360204817070418730452329568094907325303487764828020390966037481581099332300581954153058444523492572031564299281230102607414929832494364595798842161356535379049522523828044791419765208398041333957328062519135209166020742580867459923219508402744147798795286004350283361571587262928712113326852929637452715616168375785201297259474749153669525259985470077699898156447501592780510319607557335479112379786361354787161758903649471510824005525854057044610974942950522282780481736148721242636309517525343232294862505679590943112043306348770712978907942045789472385061884292777271096692180649076106465314120937977401130933467555067683048443225154743256573505758073349946770453410817523161199239125630118881827694659231493692683880043379353475288391886020336075210072679300850564043009795516903709368627992201767304146164532238523290885845928709906237340386654254700087426166935685640928625745692399567768502747862403202516144378934767562054962306157757841244421657360386923346017880094156896368277808671426429920653699201718326358562369423559790974344511030101825557021430236012865463246614575429314480718136317815597812220212911677534465883264259125012143781994932138481703512555672654452118195071845675201877134454184360878798188177399800663195819758514001230121663088033742391164248112922008441017878036191476189641804476190572157816111060811939527912515905877474851009460976590667276381262940323664126684283928960761067681565146477160588490535165073601583885871635577439566697883860375865548262060808778458713154979949784490151874717661734138974608540805188752238158238493867104134349337980290231957005010439523124508763438569720321584664891475233087569922163538583221185174254842901205366404045107282217792988363850719723573078110672907314690348991514718536876300231925515206183901955627465540973146015457263533986273871518742975530923252736236512560823426549999013488865473737516547290511992111685705298738287844673334167407291326839930498931946800140433323999797482695113257906006504254825446573660911609338161910938637969484726002699855531320593514302833171380807007990342408416611786347707006608463355335232560003372580914910161610571644449426257294036693497186807733900588595054113938713002299408284967382456775081150327634868284933228505728013872561071880031470193595006041652391294614453368492180123578319657441241740729231711897157687074738488128106073520996306201134834274661482937744931315123248883451797621891999401234061465470052384270039675993030897222298024879891161787756350918562138626945237455427704938194694916000679299976148488553356078069660021622364182128685687361257521294077778471145523079316982865045796946156034401094012578289160250065809839287867477767305089343394588626363096427933527606099364771211474619174679664619018386371874504245707329784920257103379902472046435449461408004641043250841127628075959794094030787938555568194988963786302136778069575768233721540577177811448229030032104854627370451765023379131448103118036397893780857896459259308190848873919187887025274212585430921071858191815973875609538336089777688907181858198250780715734944799975188245050664127284631537018210992925470541780829735569436669295846303185782353223553065126672137024938624444564739919976229909330585024971554923727105608593957889173102473690223143589437241590098505676746413499054623695206223083740695932537536740030036175470173415152294414417960693036717203361171206155493530638428888868929700386422285895995928278583488675415253294133968760532548868131035020311289956843880457614463985813254935468052814829096555157071681050830195141782720605318823084824081895362773192556846623021099751372032051665433726408554409893294200995844770259065804129517821706525395366446244516496812278597338529453614611841033378546896033196748036316339367268126498876918718952948990997771152461952024701287251128427104853213055149645201578516173659013929467997136444937952192235340069444301944789935045627023987229459993806235835449535697381706989632387719476246536967621104760132399141302823815441926354103897187165520336632782953653226927341357030373438292171557677656088708238572142764899282306488005352119386328604034054319146874682573678582162256015825404382273505153048507164113972356072282614860293052543915042162727768074271707897000613485056171913004280112507394965490981646767451288317567643736901687061994273469025160199057370612952111355634004035637072038638497606209912129581181959520213609135912361230584227814374503321243800499211101115944136837739163442443317894099881889125847627612250310543830841380068881876942939098396441829864551573020046666420248421427917615777077268079967179228822321975901537872894334949112436600911151189088320745032721896941477194192305308935306058811039458346354512710126542584708595890057699670767767755138477677666246491837826492206263893423683283714276481095686104607470942645155985169324939555222226783568650475344640395260359836623277146947617267291570854433563151212116517459657206965542265938637321840289287988497414641379931372395063260401292255541969240416902640767396418914580338494926977753494205776477437245334244945949314955457185235914694173814935447654983031549471647857639317610097169509633029066112145002674352932686990266410269188557137539163490534556895519771566433875735936330100139906267845315371131808353635064846584487984698764291467155449326606482817804802637821229822906076238943400498941875380519951027629601866744133793095507362311095022705773559836420800721145271116628559946217369713155508657460405403111801828599320360696802214811809767665674985629214222596523697378855842925973682681760252702982417745122149847826935715721957605637345072514338616828527767307971006681219782836524210660056126294206350498437340667944607681146778751252513252643859312613522087643679303637650483995595025523244223744276466804229872135545347688936029376614510329568861118958595601897340609203311715159952854998678007938766487590125945628057567978830060575846352918728515071819737225850678913592721216104452609736559972434254939456694567349966289739869762584003178759301827952438782339007565772891845118629387477306626200875379888129172742202066356101073528150967313457518917153509100585026364660947564318526961632835057898925138589435884636380311278195238909006321890064225855056527977280056450251188491949621732811338167344953957816457683952966191479655201363046285631949638527902971877300560738406730714829434859079664466818046612562625809842643802436620588124794742591529826599545722729108717739985650905309420542081312457877484804691947214800416481052632959790663032707161658400996072522932289472431877660112590158697053785614848006838415464230233767988391227545211231052594255221530285343069799914771568670594746811219350000316281985348237726061993986010902439366417829607452713636854508349583185127279419834203872735843935600998533079612175410961149965632085269949015685959375320283829304690534101084411730542987089940371319608836464717903773016798143921506024746881271431954752650442121404686332531809417422126632357437760685381497630737323856258099386666473333828036014971978029419588306669918107937387126103611557511002345757773702142998791860140892284377289138941510502326138139866388622486832431972680580953470258587010889878452862846106246829817764777809152375294579476520324775271294322815339673546915388356819287625335110235330135287590858657373552665226902309938849207373795270474638257795702676439081993541961569619106230498838550575501627113946760790621127246429531265683271668256563964388162960569181387776667406112843586816423925184669645030604992362942936254826344502306792474694286336537714395136998776821317866513287829648678624530274117500946837625693457558863770141401261659270884476265230958445566519794400812735178637469744857620822062231633308825078053870736651834053088257294304224166060247282963224697773407128512315812124078193694942021328487714513570140718620884877735379809069611306998391864039184009452943098836185648940203374426097332479083333964511025042372868012792802845771867578538051846944492271233790157149848729844599588521463695250490313391372008942200049407478203674609010212235129699367070286048517458246153431150584787949024605311123593358002959247066584921958294529334952978435806670498605794310570197808326309521608223320731241674666479520360961754998808653018104534649745629251677484722888781496808664543214486730614049452273448434897935155756791181372729503474575481518069551453694521757830359515673153697043088055058015392591900729308975519735034130033182746093934807284728263690200425878844887319886249939878010609235215360098541904672000971141768650394475242808213238924803393518312894242216808418981011597768345804722239300943810343599844025552524366088608483676969046285614371876181536167426374319481447434296217973267044656906738680554850198448523746147021292907221806537525349206545150207946305210930998888916946798206645640133644014243716284398019076316184918753620528291325267295736403775247421669616992618073974521068236050315713821519672800169304116588455932988995424348802927219065022863495683099787980300289013222811661228825123092096180798886046125880305066264156614337254127552277095523876942953396772734997463727017050918052358957427205418191960562400134257836845774445688027441842408868469850587674287124086374756002557580577730837919436768585108552693853676170332552920710291094693548282346722038504321243777649928594992551409411451317046842149466632540682387850731866903675659189861732840597550848899517107850136288086330585652535773001186902100766584137804567169390005486804302254408152124976030230208429497675789823270384399835471836079319915075896502280176043818447646903952887674296610130877242319559228138341697217281904674931693180533731697951394545045637965541858647477732246394118157784754005545030621591648310071876504458495308164472048902880776351328840604163109666920718486869908916635397929619675769839188166011971579860474528423920901692267876349190062695170293809551087974226273679205938642726315600328156878528973184687233001842110550188836602966470621630273763618656835761565562339306332255182540998671046307556088387602174418818816352710249698769839485937428550746953898316360028090688910532851440167196441455624676771896920647163348183789386433598400709521486564341553096381948165225324851021756010157119738714277847456583999134438570267347852783531726759962902165437899324670893790966060757058997555613942518373277069154102588816832284341551339333795880764675567322839278835323128039181910422379680910381237479035735778641010077313081908919574003648453725425676405072221183122918612816212673658203441004719532863099900591910022614347756148110204559374977742693948363192686944582036735466020229827124975817749553765563268100315168668878133837362206397585135208368087230638279592513502295063739566416142136798220982080329189663984888273654825709692785429188745188149304130888292152016654681009600378357351125423638157443702434087566193233979712801957977336150720606661980643936615874327443413176919745881556261861225801237586090764022106986859806114342878170564255825583634178645034881281332405230881690099865674485704322063814363089732484084415779209223042706166118238832962172211488210055194398642307941588922250378201618230076077248539628238003871483437273218112334862922400677258207101857704711109012412409819560514196144379586996406665457205207869984604025744820828962736296661821859913172498314455968379954193533399533307361586828112719651464297329763566097169943690827432575022690777964834352092587273010058808939629762383545394378900983259463456864596873398382526464270523682804121336972738960200244971627856186594587105141644261088018620354201907208526194878306756634974491175823747808401697255453940527790144194913304906031571253409128509963218694178867237157052403020388713845783940402567716081247430318579886290309723233603327740557118569387135833262074155844277184920388531825648942956585730719026421373707092111218978644696819447052776381507961674032846096958929103838038359572300724903342837817516349041809849928543477917900602841646651719151813631533975846077857797737058596758657983371775877309230326544578416869878926173831115591293018863032851796882828268980980441346713222679763718723129040157336396075150504508503540995040544839847760647414592382753410028188184098729971207265307593230980020537882245097746066550172949791651850491480164876709001809460537795285902461305299833087799787613040369914029540548201905575732679120660218009714238701851258912470500682686425125274067688804707322213483274338152270267160251107055281701481948295374502019251392818445174160217432278512977673080874503876343800318206599595445048745307031269020769791430025476443352958881454186009013459677469493926129657429738635211597468227022151599641152383670703471215124034572729562689115645402002010083938347839342380797786934801403831613338607749678008522925399806099239141291210458217469566067354716734774863158651465798765602013030844405630156098700722858508515044474984740307103084200624594720128264183454856248126760530323948508354668049075720371291294199432662885345275298831349280332234053879596185302267119483481425683246667383218106470605693023608533857406220472043929496802459439378715736578704091593646635022529419845989177473888706951218621865899480148499730978596996884848611306861628913172128835868004750578818372127675049642556348870719990552871797717828461760653362144903127458799550107007798453084453794194069285937856760227382991875175773850011139180051989340871550781013820337172220075786765714444134693450390409287655566482737237462583351634353267390345104286460300280083442706185382688422360992198308270161849994935622511816577157065184921628024880021965514918803155407376885178150717088056661396580390240845146983015526940179108962855913357303874485915160367998269705511181447843299976665773770466339401621148666367742916234959302997237975769679644765614511017440060997594041492796015553646039540543038081155557289500394869206894945714950077290767293410820367321637010819869454381109371934989286626845551858074847662879923262889634920328005797190654090253944619735383176578522295824356164213230898805034656160285055948293799517950905475690331991747517702080711566444917126292816056020686970737567530635573009436061967994531284856467314920974191139218275568936390637895801537604333627819045570624615093878693954200629503844423320553050967670234941996251167936276948523234663358940484340835575320439319915587587856053470036882100993538285095638655128502356932347585871173280498251908567536470969993706086228888999684744817297267402003791006256824462031251474598285447649397699701949322003333274124045029535649983003866831739168120960326929507308148706116661337878625770253306728550035950445878609469370440165224478808713290916705620913736152577586716469314296631088289299814209167541240133625376846996007262888439957042746505807054413342314383388911306399790057185314688899774663031878843549721851406578309344597681579807545362967591842299839916382687003513246581665724731180398982559968250534866006969044009191409461895099447349222135867702235323720784247710706998931573476715199581754314999785662120336576432236907486533742858593777533867215731551800949120799254520832238209957192715576325984126682119468000325355494520731946334596342676703986257214457241907796975961155051657398991266522548817911713768088999133475295985960109657924000414867749425207625638481919973060695809710896105411987825595298719683253445659476119101637707881832206975350479757522309308685684195365115439024303340696746888777866465336189791222989506352463940812970500043751458718236974444253389480916389853305378647758053240105297831905415408449306694397427442574877484033719016485588576709165068400685686134433630948664253707687912505738390836674110336167120539318355549140306156664361594242512920788329192023035271639854768669302856154996845081156727819465750335674762844016523498836837165631933922025574136369793989654568315723717924680018286720600251809862438225802173028815496678108217439600602950405802760253621247412618930720607002609861964253446796363663803242558633254388451509070444467400395626734419231883377758322375786478783914781641888056272365399384267354787511947491310797722238665746504267204718285251493506801712105063673996978915086862816558318617999625826485827643642502491692671427136060711809708354437703057019019586440884606615396722168943982701069707284578850162935961938335621912051282403577164561150807357683831311475988086248346831532107031612520655458069621673970850713304168492262410078528232531864757985729370157281514136368168776540972660577615224533071213718606439978182570283956860065729483860489563248215730782835318135190467325634672114623940095742940594647030473256237741764936452092116915524023274915554398287505777155223865269626642107628751504141244053787810659390157110129339806725242036718699781563371806025486382217836273413525087365226205176686130113984665858735612806017469293591189516785156661673313951875460781482932493784800379226532015515345657113647040018976662791514246374574571192858166611895024742859186930046624999169024381919551928279003995789202665596669474328772514264263184729396299125587682287572385339007734545422207012043824758521525311394923950066621900844419952118699625374873878601248076457976129013301103059189498372035573330608813298629519059316022391752108128355955476498818708501152900269068580091103842240038444410002384755656004614865162314047570251317544973570850875642660244141410824756548885124962491346080651689992255289170376160965258568317041430442550452658090624558752281247517872263184054283008044954849104736720518155343560252870721651063290258023326601162938810011049286011623714655235766918224732351278294587828681574122955380468799237424999263793626504702034942682523297790173441558070550807966713575912740105087925091442560023316666323835650911250080023697930656547474794038957616648098534611193070381915418399612250019379345751077130425221801742278325423989316491174550551424615198415393079015537013022874229360596504945723170105705228623854124241563998443474860934086705490966512182463918044431023230253205783328116004676230184634232008605759184029506681230565078240919457157516779569651157170978608811497992050140267634484677658634648048803737765506388764329330891002172491876227145037573664159378801896198080646342337903862303151080047145075574031441907449460196610265372462127210325855653531016977511856665107066021051245969357182723413745620565407787479278745369967297167132139046901710596787576106625402535667921576115713790005477277566464235173798473986694289778868292690397043249860307176066654863518229277081685660918908865089178012461775208204212367724477058891688495002805834132810110369588151110817908923513689584410230233681041778442830099770946227695561882861827302456590758302806190788912064166785172963960834823117590413711028316478752272427496616156674816875861005447890785403402063131992850016942311638898518298399883403101773755875232809114273334564738409272381748563602170355701762351457682495053311000331281181395875084770479778640470420464611427049759688523551015809990239613908893572360608633830148817227139747111756986653854680233161022593947442207576886182658785935637248775626102449983183915906576377305950551756454084914199305515328869008757088636836652964259289942174180597188747253996541911222971955078457062175754758363369984439758212615778508970024259186323850813857932477852851954558254446925058575496906966994856271044924619071779541294585165040941578967697984952644743967169314384312701272551840820946824025193490066284549915550367581848237304686346677578870693126380441914758877496658941378071296453277776144225710235031147063680410293835393316003039383805618858375618438272901318939902504486504699912663619791946560590861148945583286274263110113931300116218412054364835279903447264840710657602289530097694542181618709676956697610563031489247615778809472539836931496407836303931932260682804722369931639866676109775554177074150735861703224308715574253830832989020832375042704959905945407420956577226259025504459554180149251837011467835277362188808781077122747729035554167697414491703519173635555579560661000590130560708460530029380318040187414473646081566705906542659123185548537439277664117992968127766208383908496653476149700422837752708319418691911839637816856797022944598504056719250352919738567656432596680876639533499281368319038944039104832900197222027388436464347597557925554247741955539905920534537105696644507357291000841112933467242626321812711371369631109648100846647500318916193187158664135177804214154006443050772046253952146507056442885697416980348206469484570659096286653995910180886891094827069214630573677806877643483524174984116249306064909039629989299007474880831711982111020916471282423743043774849606909514025872897269527424309947356391413984368630803149473084716503780785625082970060139092988844636862297935024555179471840636140992903857390486914307215408445507109044223490371613429236712549656928541799388726499660807289434234877671889088227715765687745468245178460261964389317517870151406208159841294593899956435829808310553647677010897293409197398613802192143887154962658924455302137196509396353957117126476268503769499727435145260382527227060279368318608940275572449367774842313788915527605509797094378948606857606686108255088761744951164375266721986736814276738616364769702404500628940213928669989492340728235186626935706071686305362001895010887552401819540621233205012783947140914064583025286541364782618737944038410098044188553699285057709887497397166944989565729050404648542285008207530542070581539015730153236683454184101602907364345576649824373531135054257447380553884234621340883885674541811597979197319115392195315741504500155038472981904255780530979769566933880546038412912355319110488878408320141702498729285379202459170577121144967400177652343492534312384711833177614787540437736212271403515083388494204701260132916594772228405885265666217465293817217133922209637798136928899628134619187290698943710941963711947185507898797584031186726283605930478889001383132437342739368583291917668074250855795703152955033441184448828471099500156225470563981512090323614629984479870915925564242347717591419334265489692795338596046367080462592157801324281295532341647241473746205347333995592153115546350795457679052911697268649204610109708892630926566854962129049846893011359390120637074271473148004536150187074055581290390612646728551666758780400121379246069842854761550510855451880578625884583689252464487139802036864518361229058844184077561401472692696972654876562177373059121461759382656163710236467910718179171575571146924427009503533793366163155627905116435299422697951077182823946051923554924344973095161066549470353815685938016745442826502617631630133006162601751910570511371813404633935742110306943357078728039614395400520565921442879766076313524139262030574465988839811720043500462695176904882814107562308147746235944437900573142877204465628123242622752847422630648544539264079813112810378771233965520171876030574476125067264564484877032789406428558874272948146795072041788142551740616767127543151368342919037045592590600471948321064396269854325970088812993547130911203189764302311031483308255563543705670580296483352549860586299809808179988961186390329112301143719658824128225624006425513619421052217461633235882415759910142675437329287099518226230355277768477164154037218845166645432575780202001683686176031345874521372487301538334533851387052006404765151098624136627512408349481068952624619068876892920063267202154477886562921248327594192023353467101758873758087028872450002854583212108360276110899293584089785022065204531889438285005033598169410337874981151066925187299226558221903663682398075719600706655332041152800976876213754766762584907582202482049205262451377817713588748226622397717507351098031183468530126148141778553159844011378314797302794360621889373571010535438682193096797732841539015752543293076575322789510285924858491812823231659485050795676628880274022408572027929477243023071962248915381460121996142669443883905958621274460210247846351154642484633492539210231300076182935540515081738360343474180580785475301727554989279022664574793107379741412281462128858691261336098086549498941873748785670154355115559946350453398300527172890354350940743126155282826986518746605109137472939850521578696246253930112599467489669784006351983601197440987107469176317907620402523334398922782015461220454651152027130135241117638296430685456509080940342204905751777194819436084359441420072790209346253408466839797401049030234168263749348960753527468159307606718208351499227432299044361302225638779965379142150086760069341890647076116494417158464235217789680434773953051488408237451784643360641453570207541922024444787212151049950238042842921074528781533352570420508529151316286553957159419886888829849265371872801304194131663031230133398665679676140541842710166233770673675874364366680398240252831718215112643732812273374789714479346423588222220080215413658160442719386485634708412159641829623487834529832238954188391735192966223341211261528206790592143011757107412670642668626699287508689937976236174321305497018853501772024917309591449015497063201294253891389550610307156156241815008242090474090798300312450815248509790770159121692876028441926357116479827497520862280414006509173115507866914328849993165708811554637405312637325367133555599508891464188438499904293697394407058363991433488555512116450891902035163525452520508624345465397767794340611481257598178069631073971216547644763450694102606962363656675365536792120910404696578545407528641705447053393036784587996818684416503935703259860344860826301705625180958810091527178553952930059853690829138010887269190678100273486492815702305815681025032681855033250803230523123871825747364222940172610679174056278900965049422282620752704728134591731075273976037778718812901650253565132500088913425792967507314250318766265900373541564437828897322979752859920464631402491749323873365781030645742364211287385310583095020918376197172368084827292850126950313727927583982100713540879345841327932558180710898030936510468044054515354872188805103955981089656194287449885640784092293038698372012327497108945292410621394239581716370903752524168186428483135679354984762663011956648928029043690866014751790549849182174374883777756643322002898075351007652008663840884096457202423661608491494719386261788958332522987197160556899524054927475757816115452041456820458651000205845340674830936671713093549231523322976373962663779773841925289562389302756956444712386847622508191460836667623328221117314819795640218497722721319573818726469558463467229085637965641575629549746910994637388794243305263876027594949569645778289502188277068293321706654959896956237018267123891816340797585428192215678427163494754944758368314753681470043367260863450456988988339937409090538213879502019155698245300817694532210236560525159570323758595147418158060824564347630598009434765024211461350704056077396977729333898679432697355236553125928114103660941719767008208039720015935449011388479568377247786015809895929664359359043641854969774745576824343401006536424792617398653015460183720486284152423938221466630606276685060954332597214030352688943371539307695419498493137084816326348183018940769759624017502314843037261360220012087633929987053179953207070979639658475985273799188667253338023510601842629444108864279286637635582173593396875682179196208666283182203547508881754938172756964226683529735128273016986008691742194374505590792907221407790285721124187568625484377333753271313414296557883941109573625712473950451310622316370902861503829356258747206594819021770326903010206114761523640155907138201894746628979493744957533046390152511064821616846062085533389488919216723715235321701542863617057248602695875293887237234410549887828364741825407307029185382641803530719908711338062597760487760358787248039801901731015942548002960584990710444605085217395133857942479435487321673415907420847414745956171087096575891966910109195982825970185502447663174981777496339861207262372432151599287860957943810701940488912477892415624866465233192098923799398979209015134082868428694284389976994547385869627437087673456206343119864747922163549006275906824439604190037712274793587452108622603912279886240930334127682073139004984910613129894732724830564136096506497794596738751896982977819886497906864285237624788192589724324521041936269803573419113578362523619284684577181765499537273546440298234861981122801378935705967920080146523709479986506923958121959885274645926444512458426429217307628590846479254733754976909385588386834467390528015684923062907656815938530655561396770794878192467754317993096391791078936910037018040208643578466211276301886731600637793286196301466878861928221814628071066593951829554546105302907173529120869892381861458153465703015828309680600493562345391408367822682711739964323467234148322028267847138147722386659299245355256391580648740763087449637234038886965104245893542638309372677056631921581293094690891012067254152697488859708595433612636312651375959287787053365306632604595763003821619174474025061217855213393296131864345516625503493923180389453264427850901476632783529202442724911728215678829426358571088401684010084584629121260173247658872915574423770216406596041383607830688913399603311962250034852411834949973533349503400237182286100213335529708631821725055346358114784516565098021254885024466791782071367937794974578565321732406482510208829558349748634141965682037763559618097311767245163848375634012633382000130573964329924831188116699172404583540700044557235999402630808645084715936035574956818525188659441159863385321652150872211228356374230451445517770039742985999959143535507942383785705619403280842465707893143422889777895698800421217517427983719515354852859120305999828021007693022534102626160946784400281192423955085436348416456402835696208563903575299241066330363445349346686494243382492461266536971979724225883289781787403864470828670709252597842203761690771950249085441348243389417477448600609984909472912379409618978501988334076824601298771128768001043134144199495966528388639717831025590871290845819063339259465487825648954965612025421462429265177514760793516676783968488049142022495648953561094898814360395832392636684354625530947146665378812688557727874752935567773243164823251648241435953555603723310678116933194942145974569638935164494985230369348360799402332939377219010894054296088092916376498259772729129651107880566963203173302371598597138779757354874904080957090326325805858158435682804861727582665952804691735046221412629424690100401245726756169685902617347298470013726331714747714448072645373603427307074059843970062033983537750573588020199234970728774222046301331454085288435161846920424202654260878771790883228444973616914628283790678005914644099261547749034264764677205368596725420840405614722195660463050507333268059312321830142995098173056538162935981413051210024645008049758761629216171504729735467810519293619620214638918233978189287896100739732467100945454218933436890958143031175507729505146020742946124931176371312113924619929971303910970768111248684738745498005081884985183246448119248584149203338884764077514937151426204993169338924502690525970654104785029203370223426497824990734030626603511561614077217420528461634460680107010277860500030162069276435305100434492504611965980602518502327942894877856837248248329077189585775459358279030885585082453194660993982720164572035550582266097539383103577682100073810278428339828720070871756967344383759866205258431885797398957295061163580979750161422200617401123713689354929414754481935423007180059077249405375768092402783370906439524267540191788467253665243679913505647260164619318832729386583758909063289810539420381298153852716468824722367726245500263485722858338726739207543042293713066875825333810361075758715276033696374261125592841010858097973825187669794473105509368282826120482902599737779750659232960106470288786318632544575375276044549557516325273869331841937126704722780759492344263879906923749503054568382057262638575349078986784806084208248593296601435982812973426832753430041267341161018028560251422526487670522323676943763484897846026617296499796957385494340365979655497169756112884523218365850137710108240135519082273677556217864018484998744711579180973082176283894502614259336928351481392538304064077774594847658896209171056152691980464101121645162475815306648768154045544319406620990649128750601001143979329849600195868610811946460951173403330609837251808089178345520880455463043343472644557435591899055914502769582728350882921599615490399466629117307444790647706491250393477313018859209298062551958063132097525569382157587702180074732986291796752938322857923812618056892372657277822842957826626512138190076408070816249296493650848361816605242981138383139871602581352222201124032649108177338049799828100726207762245042216787633932626359758089515040960856084028541842373147583962360281595988381178552871658586701011049260173786446076639875957372406557590026881319664048672191847569143639839564196731849896896264312409908637293547463605729936237043918044030255301290773594675992633467941610021742135536597016752786902587414213622883948368023238217616839967656224913488487909568283348858059044870483720704793875400693070508623326152371616281212921434548637217505413974222233521538992427390029299650154696922040390265128874136733168153417555552161537413275574876266144893627132502915779176851795883671872053204795604307127347675098260941741430606376207925704649294761515906800439297112979925306418073270202536146397346422545762016888029214874920334273294500224316178404233787068149383280595510773127383758257360088053380278325479815025912437254484758371361065611468303110301200795394940599554020895715659011237254933522334218297497149869692413478058220379255840869960293641734661633628650987263342674231977749882178115164383119119730738201994215961686547902536678987197299121927372257360344299023647078815057739580343526374466771313215960353151153217441777298166877679954769325868933138110188822380709102618236043142635232809253136740738147834963705040236734860530839158443751818376754487923167963206971837355064870451130017326066229519336873784904833344293847640107349394616583630017591754250728559487097561726691863449396818023450699702487767271439524788080402012476622423435130988852390717865950892671198661056466560930223520721817108959158133370636463078256707609648422970501229381050914569295561685940689792767596114558949541797598312188132762332262090791962785658734990364935907703127117317379641645202396347074296779404634542429255267821101221109531613474131430138479014603038510546494656216407488866088149414555750224652921445379190946267631594760161744220547133505663296395378285822309462983860903543565987065930188566580049929168629473956798073468093790258879738767411827945404544229914646774293247146987712752211815656635083984972453942351087598191904752756578679577711762253393161383003617721314911899066016980014890381427796861734068715652576355490647312521549063853871036015994766312645505878503655128631027272292280198824952195172380957463932008072303763285105601274961944863698630857659083181383354952777392482151190718745873404443996468045701399147815882272060918460725126478395870446763875281367000060373314246507757051021567166086622059587425222486841632325234943155478220429221180671902161568512392503904404413458361320230422537635689683781312551770539821564662191497111683818634658662094893001750521431313027295172227774853390919903825684379603456874174121833664958070776151659018741000036121888776223584650238997949636312240447011752773151039241275805911296242518287774936385970546215190742986745626171201771390502279996453540315719016469276477909127776172738241365047805188741131989139306003987888477695365387265730318694949144192200672158243682959747744480021582907569214225987732751780254577270169263421603503936810083914803710348936879600747941745028473125354623316554917339769022858514735597938011496035574991682972027978274055415545570396375641275908734611498544320783221542153188326314015848792072446133041038516810835497426882785974086758776046406034910730859111533471621790712391655521826664750713866504858565125440362021118570858095484104667537469489796936718977182123370714774488970991713504914510650131609181075983323643434529058334192338777419522970202079784743870970359507715282674969545901385947589158377163908886115845060176907334064518757926574177202297735130588450131690414939696957003053044465596393145433957619684746533058783488224277047776056139079785748180062659699875278638426010081212905758078309551777900601162230701183053237286715860111977556577247748419867233236437197297205349119067030565187423972601592120932483680223060638254443802567641029446687608989901505273258622269735221571431341883078319467173153959450827902610545302666745126252724766064215865245335398301681617390932944878612782793207366148975410653663140564190216709045894386024594090643393041833055821941471325407210421502392474912268941405207471066551448549704550234244710928446590374148749864638400178710856696798638878230028127116072452888359921604534140365600471129401253405696759024044792741439496996245865001487436067497407890876456416589388808680378168034509608010122697220457559666418970765399241708046288472437385328589268729480501576404322733551088393591895551992733283074800235994973596664818315285798742978003614385023745303295204304892800752821410666174470826882355920891918356661342621284297042094995155861782415102310924438894205215621007374483971424002348615082430032987436137366027446166276381985951011537810311581639477842163871696069181893388293329314668475909480512008298456019168673089662794101113404808521268205865972883334610576289930680834010643264534050842206069615959743719805920023227194859515890885990185419703376947279119957913113407490193182700050601595670058734554771572340999466917720439685579872452232594465604589549399122472503375984383377355517074431300301363176875137000120102227383148273620227396654397785837903113761091153547193264184227463208646772980342086618332292061457387097474735111027441098313953771971283027616608436844627259185803436668717112912955517577564944488968089439680936203945090172106653402790103790249504429080467711897994900661256161440182129189703693765286059282080690270087265541127358562309155927025596375481868750785354671120974001757889848139065250500197390886690902174561434059191337777310757887630020462793247157949735959051407735259088964054660209390646285680461502446596236916744405320997260698210916552574803041500900039782477381133081178598333266333652977500344971230516180249248500644937479918546915404412085414807924342498968782125994340694737863092264463790810087185332265196616997177205018533901737890140055500373903803553532977918092501999881523254590972416521991500701750568661666007759090091091814365031659413082983711371607777150501589921553988215489482493302145781559802962381592562959686787407596468368702592692499549735267696209568710038508059958331946220533101011107183758273163117615854217595352575137964131231043560755679285117595323806778549769923151905989092079375943315631830734812613964631177392070376751010464352558137907008734782336043094083868983795668583138353848140463426108878193462726355305430413740273397864806801919025290238047887879529215698479307139500463392922293680496732414537726872854989671582851346050565434152499043463808298128743599789206557812213792371368925311062875505540589522804871056193245561162312502991869402772804267346668056302138860392772474053278807796770876550191151407334899544497820485654787976974574606145603175780359389706858193945762705283566183481905418297620406235112175961356772179328213557830277161159231264377638254437551320763349405417213820928417124505545532453828701867908547617760286436443802248936010708941945406491858137140166876095921290759799294390738151913552852078180247054487650596313771499133643285754094342526841492313017533727930791827982095086539454715477429917490199821413910242730482087929011915592279927599247323202275387517591018321568955855016210780219763467260958362617990031188062774594569860795667871580522184919070127812459125086791299170986706863072687364041944833896146026350336143702511102477458855587501007174157283675042018903908387032256884823428956903467181341606005814047916798918656249504338450270912251990818535885455151096668696668686759337487965762790038262071591111829224722105408498606783336172318394407590957057870445535891605153334551294424046971865717434961416389368529104173624171182963644069757602674791259430841798768317989714510326470554371309831305327894059455083113115755539541863128906143833147545027315895097602143350172522986881448510216244571659705172866678175956274089808318427652075117313132133990436656439912108097758276657210556230238276991235533612355637438011123195799478754033424560812788344289659529208813223582079306378568618415867667491790597671488919724074398254674624566761617254889662039824035507351741139525559102742889797370563512998811365466096739536391124183788944854229543815731591864768052995058418191864942180140720720616391364194008102464184327895562677749310910815777134719499051673460470020153827998725427246119203534275484859727965378319573434470596836145917049233117149065897038062880815001292049678463605143607107105843677395448812047310827375012137911135341125590066652389979791711149420769580425334416271401766747457257494672772394514029221744878918346101915850489787530069778598246308188285095889982885135270276498765635543027674939230248668928656749599408391034607046979762092950026513504329643416888871682568241946668500658550235383307866205285957713106477502362341083409763299441131836244053303164990602693793693290907326066535964549679389569488348953086932303609207170453274020725258997826092669050384188137275669444938006671881157595118432448875248049918106953106340813769549921495219884374429961801973403555157841946736820206015584604570734416190464369436526174621408689247479921013511756656229475385985713523180252289371791454176214215513130972661099849278792025954870815196903423277883488861180232840804742719262322833231554177123690775721325941582490002871132410457074052759426839930707366917374690344813566491129933349515780629950584596132416890771296309437671280979542078077598541462227931004479445995289753929831159909281597963790153834270498684433405732602729324319882768647324551207342973621276920028007470196110248068581746335600935074918743015026183544899143774510016306275919743946304862604047989987106167988551424178319569088101864704824708554539716631117622676233356546728364198786546374654564729912446683157373852445859200318152120934185496584664993239618300761647370785660562566547115437721191871261723903874007806140177878650783927627760893636385645566057667631511725716302319153106077264356582590983765878572744987612939659824481393038609215962045926839427855087202300801887851084867743082727491136521247786203002546028387570136786037057910816717348876243886117328944851870805302426237490681701891087040293579133299285728134082903751984641840981440607127604338195100851619869575001550659540976348732071188719126074271013061878050509860442542231415067921365557306883311332338488046658826963558794108104643294893153561057954487102151721288201414666285853873438661178720883057150201025071577771014198668289983926580999212983561308590155953858027745814379704334655747875987736093744364293156874800545160500496911451212328769453255460536057690493473652954459732842535141677122548961946420358635419757648966331214071586011527880587329838741518993383673650988717340111082903167335289951231862928056086191444985768615745268816460167552033790064596402554653584910172170550358173790260202360428132510565514091597297734526285937002279738214693431371622668425584490580608890492870279627878058108680663064298415466448204740738515806999266059463371603135846254000711709287128413418662017727553166089402125599303947145832748337356337282962362784466163550948045057365330562368888752759944870810841233564805825351234326263488206279659820279827048649441888045508228439568511371781854559156587409864298918799145938078381349493095517799458570533487972231709571704632422505535265840340032556759821134106132920878193725808080194273786114644518011408004051984193507248680407353449046525533244115175596589148206152741141427034452686645308724932228515699331069200417101457989531027295116174613097847101338310718861064278805875946741670903255718036144308181758502768607299305596141597662660303419585560462098397864330220937111973794702990134684444051130468546227223926151428999400815458207548824295733865554553280764872239939117620445319690631108893880651843709371714262668134981825938260741434886633108121395923564182536791654771600642333482962474587571033038317819088479860679040180952354897125784421931028314935755095751611816217052609673933408814173358953902660791428429490568104483214200221266384811620387199994244687560506240761631930539048409338799186468614197993330038056839590549281872524859246524514817325034581959237857157127787617852898827340286486546039831507007014551614201753726377281381498434917804606951410703382099474813261912909965546715117512042877938513194145898457796498161281193062197837067588021609658253818628369668623746576267345736174666861639167064435154270777389239990819050158876558069265713724259820685325770915535527737620272094543276441460213349847574637498960547095452400097114111954161371453181225808760091384374865497981902287711194570107719182418807104055211646526707504246912858695949251806975820552467686094369671973561143730917988102057701994906832579149967507752297303113130625071524720140461821633142545311912139323011515150328038188911751034702780975434730655950379769546837259099010065794597331297102759737158155221089264339895929834912178113049638979499903853461989302261764056525043599768888291014255662907763765996762039445309891153971861292465284089662665299539143201785626697706258086209471226753409217221816551814672729356829025785962372367802139542123062885250373503577695673908481483909057281547100683741843736498408016432663745142477864840732982528693588392803950787138175236290236511092807439690955849734731942449779571489009792937775110641244037806847564358985858166585596932823133068377519580418644177187661489700504877892907296971702354611664154238497841107431372496640465434680132562895476417578918918855933513325419792653149939829885716340592368630984517919980465671832040431346590569689250391386389002525403833759397006784068233683712571676801186117665459996205202624764550681127531881722298477482580122887205898052380641319647806447248171703406375171047151894118579880322687180764329054397250107301791561062940418596906307338144774318736155500729718986162001281379074478628805539493730781882767371538299119771432116359240201114228393850532120065253764057060407990154954046477846229381334184003404238303877780315137644769581318465724250819067704042905292236853651473862727847422689205805957964960950199509730599734912975126887407318663386804173297817155147003884036614469928277727102926457414466171257184797449080504567383557430013735954929575770982692090106906564900925213187977980318164976983903020050027375879422456875509745609362008097022648030489400526837976834046681942449213821035776606180970312851115865851907422889604037066787443792846281184891502076071142768843241627734756279088867272767797344709178593327386691910409837354440147158542487946954942088294577539690542566461126107709515115824687685729643107724830831709671030699176873334142598477394644615651639784269505443401501457606974159171382877759945630134219156490343638934854953301174554407391147351780580844763308249092308195122880826162013811346770232807594865159725464462534864366235787293053421359195220514869429744823665789576446631351881167004651260196568746786999342708553237678725948519720574182875311935518397954670667188373636418436162468684987515509661670394309869393201367051680838359399193519158810977929175379354413406720696539239635650808813700873034680310736291290214622286798843991293351605009059621397412785786299722553844765999902697249157066059502781117819826710179765778991572591231077731743581900542135841914611872743708820856351845329919728497176464989373312335627706887555354695582795431032141666211739900267236258038301793353806874974343541828066972118162030661030920050495497453180504299367818610389810365823855034878915022785051615782259429716831604369479707833275228224438445955529467772536387533232036753222405567880845028477261258037937752048094171344773855099958268172951633303418897649619254751478149551190340577251249419735787276739641263183147170163556401167392005700641967868310049346375228486431515866071517602918908619656555290753644803377506676368843225833501979774156899834073756908226894715121658218610899843109180235692523581206479836765397720594039562326658746033205450311201413019881054781322037908820381551175875833736247064328547798163877641610796464070140106841960346165513049021346304371086106849261446086902640569620158040109384473999005751313644826906771343535548043441093597580694690751302169883356671888929618933126218241657610992090014286912293436921201431467244760326557579236780829653699713649842263412725635553262863954092722127702088326395554822418705006422862525006730869234234835412525896048379837187628106167547851242588796867673285372348925391206687949234122361889540995528705015776923421788031423441005966126096473329467194998149784732714749124117008755520228111391364301806323890874282488489775890169877370975000484299780872390252513548701056990217700761985395717322412011611399040197293148662680877560403354682371828423150615809908421903113106331536594064299119731880810326699497236007263234769792879341210536419736697219857010627458340760110712623339612831484832680897131026890286933461304946687663992633196185458977372359382450245845889299752193202188155755162391179432035243200081618346363263465503168434789418793453251973339270684414304633537005592851023055612104340258645517451662299285693318315759299754536270475939349606964829553261524136466565131756355305265062600815757840491029792833555196396795579843330265586881284845647632968645489384199936281226035937136421814423265006352031235371385718524428817212111838443682381369173799362488140786953413501913842602683520200063900217428303986847107051146526322954769733880985787886199605083130644878202952641395101037844385456255301810384021755684028359555770237543975230688143484862415026694495453304780913587355380796367676526273097372042460050396705631865654023527690607703448904108852266542004197856947934411922731436378470199215876449604129653635387773540846173168376686304328235939077371029880139133136598715121056417508289625427236653698168930856153980878945959458396077048753374133111238050299487568874223408120881693036715975436899577226990728960872487583713642616127520492784457490746539815633714096951416103307843225768026979078117805276941280596576839394834893435417756646502147035866956747105000287947333551420277148089830603377042580469905466816766532631580606922568350220462006713442397078218324593948070680963292237196496215236598506486624101153528149088064100715823786623692613540604649966956444663810916472480938379141641716769252511192697710813168344296143986456312288392001364316582558748145678215970381032223316604133495911173556865725696026968449598904880855894724378830353436421963030907191540338102086826383904839443579501200913868015077887855819021172626967669989557656494755730117599023940857928649581829533104611331543473454829294787918233924096416660768691669264033009648335966344961812867389533760497520633273348348261734622158146941565778047542596283743574228974274058592328637532213439111528256665118279439664401141568205620123876833997697906797677785476567945136623240457162118524770528488732698960325834847414208633540473380736488117588022911266404018636528875096060748797233924306858919340481506477794074423116568614354719179382460594815245434605933124843569720180851722844081424310947721052026467255871558699469117813923191904408372461428018149566199837469310937782852881969130718726602804066474585039333018741449368045854333000440119193267395727792066240305151672058649804154831544586764918973136172674071013904182397368273644920172705977738117369038120333978609742074840554100195340725108418066768407257449147309767623802582081402354830128546813889129387678178043744863629916691803383652689585107644408228662526120350421040505915977911536174454525438345677459120574186915749656052271256927212372564701491959923556348597327077632774918186927132686381141286074273581378655585899234505958545842445164751532822765574932415070152301800698569064369885607849501887209047377303038458328077623026967502379828057408193498524574090146794266747839849682738365958118364021564885981367531458780060537169768187055007590568811633582758743970548713667955936993339304122228924823475445836139505458802779348252643871492755991231906962586344654344670764772042372198157390757946484805375854665074739838448978760283554220641186461948415099331566173134924537373665286384802600982018037825051922294190725157515780298141896976103588311426471371991983072984761798609060352694590124184314099322722470734755524832782724431026845921563626326741253825478878443834973589641831952663910357585571850649323671263469103184644189376540990575955386462002131365953342257334838589251140732952597448373081905827815557889350094039240782622221319694526309652740517976618751969057521563893054872999437990017572381984162975394589264440186488391587631066158533208825049663887712203983522466571403564637879903253531564382190428573571751109039970772692963565077659159964864398076306522896780545768125558672542407944398471919524659061556345059880597348474503772447616801652590607589161216729990245294898606825197696704821387603248245576418470268108506714265192366280518937438069081112603812184564178044874617294977072408308999717849333260518261062383933407581479095834821932606591234508862603593097581564317329090902752310169882436581734251385979622994629505873779171911697686853462643793880389490864231502764996743870578601143270526696679203510596812610721631188190889053919739058595845394488353111151196343883485597073930123473491871302698479697769548843783534097001459871339842223397669554399648531114257661359875301777983352689453217432818232390108698422634141163029031466128179310265725135079078070713428854103157066198521935399578746077871266890556405459189826212593437760762833823529746020501022318297169247235409444645945145478970959123319283668822419774805202503175442878513635572140159526756366996815595003863465564341783406986544961908059997165865578705133913661711788741606579821400077701558916152158557296452827754851880048384283253676488086314348457115349844567764232322788052271704889650457659590601652498437419973828902067515922763400980225178489120964547176450459194159994194887536883095820104797544910713347843369284628349460526110938281283316904112718879105330332260798741996559484405069225264309194295513751107275940310776022943041431573431006404316130304115599901711208223673759821097039978902081409183051283841559160854333144266921711148075846999584218072659111498127388603458449083368623506702962902423229718385205836126622290394590894350724083632959096707788280786018934614707335931159610097679279939054043135989031036690710624141821826096987778475326196068100024541637086406449832262091157757607281703327230581692599996925284905025359050466277962598149103279475170635715234832967672402762254860182302396482967782560430851747753824111859135868545310591622188305453720888735258042891019879964807175526126411630115724040191664393171915431299041782330764184205894553463553610673642532268234305548045168878009777496997033693387650430517731690147861669664870029910896649709430005327030830077482747093417323167579129800968404228699666051370992072657457281503957146266596379379971204821811125468155128197470435162230403315911972285145089285390705553664340493861676236069214734699768011187688950804908163006028600363220341939497925548397288606604797548035402451641255743038164540564164295419266648293478600080113105827485293342542197232534706825908291135783670536442576634769707284740806198903359654856000691127393186467985037238690730685245290128793407856178351330948499534850332916475857402291816754155249793194843074582226112102343653710365179090278450189378406440371711306524863578997850250786443903497035042396484629867750654306518366804419937774415706190995342520890316986944918593687130424200378747727008282034244804272819515332419802464356639054821573331429137565160407896607134829091235232823430306107983150957254138332402998590721503714383041026872880613176964537134208830555275224927721166454008285627048089353722481760366400582289309928255695008527225533689856539128644208594162862252372414248588553184328853709080499561515581206937002808502031037523340093807810978255818646806774904602428306452601145268508441062539703375596816833266181267338583813400607048951883888185137286292232329050768786238540320648673792616472340669894466838049994238159157995965525831204313318620609529191260283113770072766395279985520576418755800772571138576341613752855733078093961256905781343230554889388341709478679924269075159318490779747919373362793968866879357094437912451238133193389740649503057517310375826585813341293120102053480381363328700593461360216837907605945447151780109160455039847005661068769879743834962244254226847847174535967641699455515389917367243685437513801315153865771405010393485982580654577695721754692781391566804644875723911413926640542099126210532631837195347064602023683488078618771610395014866058887469656071039704752714745266098685486157642922112338418627215431917562711825640588983069365895118589342825523036565474466233112631855898502796052625321455614776271976763458124561717616776539483343396804231879998648277060274928222269267716658690323827433342917697513337640214519390348929063698180420394981911577081469686266163075095162599622258300169242524142631247521899575655398889839408786610265897836998594922914564593028075276196235660692934601955126356773765623105514484550347117921931260203789313469081436126099900850506746859857082466619828343192345328001389797521497611961087500465141202037650403453946811502654539144458037304147669859603764850087369074046668204525568906790534331972574737157916896931236869851984031197546122671091865556930674432801745786918915964753383057880958998675954076512257232474401177463868691360215261509603705694730988148715796027688840523026625698507616861168634845684285487752745742738760660297714300454328897799065523420084456535363556305041959337525560939460727582597086225148439504999156702798675189276789771785208914158917492508922635861421824931626326903651497117732824145121233912710778588902311005688024419065938690944421308022090299333697980845274926609598116157388403972686359956300065856583040884107093080004719589592185980661931402968992441919032912981423607029662035906941412119867134478142558540960442913777994900505864275534037733282278229043947337525414466978979178962307428521379683721525585820498429795659427187517092830032293329233788027721699646977106371527480435177666751895858123842893583856784961295044485351347632766929496283746787518546272945283567196775626633670990053989432357903259457601822823516772268732531157067119375891559044332944232170303857339965023057407449307639784632978092488944634476412505799180299378005534603255714064780079419170697669146887403859275386588381378308798821274852464962811616258138776536255682639308821246518338153809352952397320096866022279566392884221822233886948209036270566631320712783700197344366376207497338505488878631324095852153108560318866170448459120140083924354738259196249926588811402511896368562399559400917085168159283424358896530180286806796950960425800477358665909341412175919094219191646940300386474104130861618074275163826031594011018505768300084124355828386625651062118931631325032877564872515500910674597222911819049742021720741820610012771060319098264208026474563185892624473291894622616519087450438260311412033340199153614649579241582327382588128894254421887003227042648778787929301715164953758009257950671308280971726269419128639033032401825371890992664089848835896220554457031538272673643812722693625816829853759997423483438961945184035358275382724318146846086461870816831489059478012572760102092557633213045785750393806676651313058696640340543178491117784660715505622020303467366234587934396351605550448869049984382724276787573962958391429148447592490554682493257639944503653521446771475613360463193691258031217264826452685526276791399855596085328869866514534925149221960819997029497519842175609876815972099053562057040770582978520998332454248280166879480781226645226710782077171824894414159308610149459448166318267834894078766053212253786650968786620504837787652077002176888955148533250325371521420880991554521481780539857810570251384869755963665315435998467339732889442762300800811001078150598347916972390246072551102308987342452850040612193705865807290785826082880365482145301817134951062434669501066180760771543967522346945790748759428361921597171229066840937739891849088651018538119896856696067727894215741453686290251854515393811176426162827772489701190330345554277448136755414221223845025155635611191246227482610229378147878116067939987522678953456705516606014514599368808603515939474508827823922510612699313772644044201550527706423156082882959801226867891345862486936843869542197008615309216632681239597848059211793467917582116961035569699590348708354859454954433059861795823124682171403149952599620724672807717969103213381873234904791674344816299211850445706978615050562905416227262082267025692727139465529314419528241816074110767736897894867875103837368394133667569890107986535916109221501385734008830543379287974968080640201369069183870267940961588712124162509297143872580922834999541683945595711122064030401795119886558046429075857243606496859046679932883223838336991354436353374914278945937179929243832720670899413689281344090206240877530077699972783483180479592632999653896244201145195694598941638777249801181029768466597963474854740992668695268967191790276064120513947070581405409078939019934903720774945318086558801656961511982306397529473979804914308714543274561283461292871798661641322819301306109880460437046264860874308282827330172426879763187826439587459437726547533016673082660032489873683932599805033850906690998365975060289013558897190510037219096325884451605252537877309993987808094575576695626718627518814944074782844527261381979202019004613006283287806335924293823331125952760615628446773946840082123073513134880490784962138712816435990069562809132219245528024345793498938423895482111365823440072921386785005411286984552367438008700551697367471390680303852096604164973470230714184522442455357835438328428312706613067313564173826593078794893928173926497895471297416984011739419843612921443630395469604894486257513777094281982470438699522711721919233794973506631504658465861549950358052596416603473920434835467081206942096461821596166604536466380495011823338827788663552878502353305984340462866959746283206264058124580019064190218599836367049495030765114161316865197616723202818665275565345084847983001377214426525556980619289600098392603578686267560359236746535899314168757947665006433003988781024632031900486848624888835995661165310388551016485642920009819226565702609662845734963492081684476146597855067927204666810188913045124208652176447082281915024345434471431450579863301884686526384237838240913706877401217088631182189106786331470168737061081676573705340149100402686765100804952623143415384246776883251330717801878620978442036927027829801276037188050573575820271617547967442854552139966458054981015894400131694813913618722443513558754311698583802718179570180656653043758802415585132307417639739284692585007071452044917626565270178602114195134835505324258404476089867210575114777831686566049764953801241227246090738021653006628297511314862097331380410017649731749063875365803308088903459100805123824284891624267276952349531156078329229539155575612131226721899861741529706416594018478913516521321325854373695967149764011166202205302457957933009238273962959599634861041629765109041383087632827104216025556877055889965979947053798289087728455933547295949539855567549712018594621524852742823333247016443515805991462378549732617858761250236716500270359430546328728027250122208035884652062307638481996849631210952148429979233535654972456866505448675096958687729774237760735362648297273858679758456634673741992971238423852538438649973862765970300086149079901026294413770529276112321031620434075266284495525418948477350808242001750008228889450887722578224245178326942060123474355752471385967970757443796606420883536597242386864793274815368594003367568996469130408876917984806703027627880020888285710951140085298520058930121532014589331115494429553655260343635997084608951882852153853653090817662059456955499501118591415911438692761058047699164070018071262922185757217936761275166631861880915776249543983373207416911443631115017621497342673998406239216250466731407997180599489411340327144056556140962992058426648975369816270859906110315293764326269246853222303247977086791143530835947581207871051622833952588527442242931145973100038376960069992977354037599662794761226282941002534375980416966868531409227021405172537370669778678310723767595739109212077728292355180979259729416124430917934981405629748949947071143617980643559957367910528150679941666850295253297302271005450438267624375090516833780023405938279766611406588013833446010885870094910117885623140907661409362080850402236250697704068551365576465029722561031401261986284621203598341059018042199267006865306476183550532973662531249825517422666221692485211080840600472838070499194134749939191890782931925578682260605418566341166984073118175227935802172717148080603272869176259879057760176892265831618514075359844192988976738722163536828700929225140117830244243977517060347230961792682427009347256225480625720231562381872795374304784050260228467504251823427520699633189868573537489986617240058533927114007549702051757614364619029331181830574320317006862200010183601351487338497529928134465602764905997652806180133508294351890040612466706182637033117623909859166352311720708714879374951979930922280199176728310728015535725779484177566062649229663426472032691460392513804296069092771256402000119956346339421804376435732867509272696295706718840542329604020102638899290939198939908718340368718884646184369600194729908588295516078595552727770476911186343263872477324324392887871311630560213263935979976091984333130013351544607181184343629133354187993170791274898817956779996158434368978776177607374456050026555151502135399914512989082255963882607252330516584993057338153229666941461100109525561089148406078209557017034092955137530019977983295027628826495856669145108723495706887594203412321688280485214479365657330949441079275919193644510092007114364522385649277638338082691456141539198849512241242942067118344563694043568236687525916649643681540835421253402286498488588967732766120715206386531338030777771834613383420694913608229412006083278681255207439665304255668950051612800880267407952237326799684586155569832567513329336105359662457201033466984227125092972934911305838569391303282780111413268276899280663303033278311637898692454463074133924828372720111558143184848880374291972480512594948282905430132114192531810082799506466549607525524752842586195350971050695925375608115707589565051268105381706289445895596055701621063640954544329291666734221335499997691594334881167000686063246038210553977822311181075848921241988515478762238122470526445701931423989257961970179498777915072140175636108425095617023258461040668282656828913691321419050826830768800302475603578480607153234047399078614299875056951550621100817979850280847480931168259774530412767248226032433426715379552543422174807684480732384126323907848672292336712172603094643355803814635921699290847728234266029690180268875954035291502561915983702080269307136713676069427301711314056546489217339058253255806641880642995420915828616514552347776303992260883147340510123933694616345472127558166514203309324537409866599286150946275416699312137920330466990557736987239738010520988572240090910018494429783303811795751906880526448952625269698192211455217257815202843605190473628461016851196963382050005682992121013610387666152199912374732433522654424412376542785695143048877684679815368053658434165011348528850944764028622428153734279710081065426095137540413159782034620643187167269480334619111842526348797165303713375239329291046242270813202512709257497762334726633749855023235124736605562013630657493363056235747755925263461731188559711969269608298103417401498566611883286681507667332482901533819006896717618030225085837851636720531083301349855319184454036787026775055428516146217717343927193000147067948905108560828552562512594988325392070411855552136711210713515718691336485396791194420762371205308815726312883511211499388370798888804291328933046205523288574762730506067615247593747972096059789751255019868505918846373419494646189417482896241276951759861329356809161724916261546663307822653602339358941715058119533220228253750629332226122669559278360795199852655192718344351142226244737450494746240302805446091582796154024505835453895740310414541691288737351067222615032636643941367940992556846150000121448905653881960325240059910898398363113654953799129257170234515445596553562386076973730108048334602316016449558841326179890099451000318799906274314144937859077583945950405458564989267753648781460533338870658524480702960118847172019262944123476765602461776737666363687026029614198536237846832858212069050394525767223493949213536281640640085799214728502671996852848292918314873657715047746856579465753323063453868718672296874117388725591483443415260072612014086922878824771795657847971001861475610468370811405357173705393798374748876481513673525246034903936344984056765243169482492585890365849776439321007368815236734787583009239145442259088831222655037611462569021128455813079240837058006866161453822344384598050951578112734608501474404817454965320859507349279970253025392221632955446801523126655747270991438360328714699006881522366572657797107984815853827269150524055135164842776467468863811396648925692791212406877134375744977113658207634339842329372103238036316675621095362971685019034703399781467335354748099667593066335733808153053903715230026936234982489239497261666807172057541333616909417565115620400506223630254067535984793308175290273622309035861503412587275809945734601416428570712248199809052773077980085408800649223035948122825358473841212452532925655962358657358669680552039513563655565223180987667545587273141333174219660480998959370277431827360918108171953886723320220237578552240474779758538295018255496031657002047487102860901428127651626380992755022286132679181094526676517461012557987269762655635069257881979785103499916294415356585430428213178278819590984515582788018987334212221816590642164186650201458217543260719447495453461476303408162440402659292813013748360466493418581227508507362773848834401900220373132834910962283697609046397902504483642355705801876576932324875393492590510635089726691105421491862609186367468789293238222706360190137360751438401042436454158850810040393358653165126786619695321980267036910593169104263471835296284610834670309519422056912156101095769542221097677273958038581141909420375531525553204843579417747482889177558444141686902906303317324976892242225722477549468256077314151995508171127725038188349401184539509975628820006297751422730522536616739213081165951765630142007359562966357406273183641398579695183770265715198478805366031876262557099314216829992139834282035999663085017435503989000975686676237969748775238394936475255125812549786334268745525076108745688967728855103845296802364659037161264260645786358803130304723789114062703170286098076748554410789461130272310565993398511445993246030173037586469914517235098408168398124837485357863588971442884788697487721710172683926646440009526962280810104678500835341669322594281264731652163042430427998694767731678631137067674776997352538360087422368638247571367281346298210915408832616620387427912596172528243648089165130898823751503327373111910187874561502042382652080432635613578313367319371879515597831520333031920538199944530564871863137094473323671984045261987556561923573122757186898619684736137473578919878456068374474877346551124805291882120354475523240148792692246660502919708689068903224084012577567945453585470369749720987186390084268136708780679965443647412952558579371943770458529061513784797944799740041454519946551453573959736923069270587364234443208181042060157409039257861469756776308338221918914399735560110314666388825483817227584193437732522402081018148539115592561275781163638658688995707754975654775866978379927102809264658513348652440484367317164798804690126751407644252657726907173303920797704874515634539999173257679340322053124232546481036154038798162899393563020499239958201286832272516142970972819295094371917849960298085613682243154072097556595680850410237667835262474576245399358039039597760919479084263503982911427651415376069466583823023961133943112720142702964190575555434124290649375520510526621660103719561567457310381382108170951180304380718467735512407298854142126966915591441927555623631235533120726348063373155038199215688887304861158028671193179443390469658394006302556969930728116782755296864462881616410657674515169440312812503112898452947953718740385542230511850231200659734538766504881396253096642452541610454792261664242777146691092099143972917230118079278534366300039050935964313300074708691042420888223031435741314321952014140537119632604589157436557796210754829545608448294594018761070230737572478081091126129182284404172749603960524766903697417211461110435541465409810314124917895043600093673328129748570633053322940786050138141867930536408577011803560686337883519276037985429290016444946816511578383750686221652233129416639661732412343986770326550317225283131347950915666502445808743446088135821386351059642783473795076127627606068166916510564312533280732171702955608705830891579636597129421125479840704701015181167436428126836718264704363525102961250824222683556908835517886163858707880043793412800821173986694788002245160887010872658733727973910780711281094244027361789883275682374473583945704486583569955310938100271343633662146365510996246038202860382391445799097402538834071676552039147719596960073961804095514903668438050304282455949864622636244207140143562806907792682194966548391387956321735739582236595639083105935135082791005929949900406053732533870745841188972307760765002197343354959948052754356568161337230729703155918344840505815006526496561381938514786271352736825493379347296642838671475340160705769962492757854603126022217311675112421917148388907872969984692186144549186572339636431778377299200822442403240535994805143417129414097701758300654399458440648922104432757121409403817148314215248646984641727118928940189308519154997718703276876093039085018705357683131289533597009991565347537360993970106362297030878080320498542256006919245181810400585360740630712337175102188052752897154853070319890894493562556524610475141205000601985891938525826001240337376594726612583320578490169877344535666336132965093606110018568958353207231325965676795215580835922095172910062809110347399610849023435348772583886933703015774345560347083874013012274416684036487239788717937840384460842318373765240714417712774439659945167616199769178076782600506841115888524999573257462168635567951983782561255029274998982603820601518071485429033702813783312041112973840937856647330849393568995022012343442848087508601394647555224014601706115676041377107032973514180554398553008294142640461443503513466703992465835816986523931255843435161909360227373277121032097805955047357957517450490949354145647898537726627769075340448743597566326674056641246476007222382371431298942452496791379020018656399325836710913993350787422263536104946020211402034055082784807849709699019321483449716090638385124719595644433527171751528796937668474106758164133527120600897832594391838216367372214375859011918839572935093750698841261207545868219896168112055163262714315087055076901954068775872541718616579738574724045864485914766228784852905758921779183568269113184884466389398525172272711964297457071646681752907512762889590597565175601238818641241288208892868637683836164562527404516160584809532826427996978933242174214734185954945253990380021138434721376956932742094648134614303469237017927695825390184365806800497218312604335428858221821044102649881555992395894561864810512923902224200022300627162680169796738301569229593744601566046939291968222988489107887407886110771976487463602792978455877264174980044931212928221631975643992599207975476709279734075127606860729236920558599704926353509037022988385121054209478450204036331440874477880467894364690762584982783679102219100988539109010088032156071719906405184338050401521502948920832967008058680911901766644464906117599828754511936969838029521560267270491662148255005185255795403228171575364949964218516699060627196679821291169899025672474085121087669490302084903192770313449323958236436502390185320343702709726051614048636136567751372428632495822175273872401999460222476055852688782403613759000293778189483659881999353412362819813623482924340600496197838921435260950685218909775699805245836125709226028093847994690905958908636091235711277430848849596749976881072881022069321290592004604971846824124533743117557511780212065580895045733996160370033675146592843379469266995918948986044593325365266223279883118512342065269122952871595039781456037932669002174917334069753691412428457168410294650025883887456243909655169093902302687618191966190785986602662183895302876801473826826047864768133524288011814755062852334507929651208825546819023607092545518355946682027697201856192673295716135591638585774572900715653747901223914598003606183981909026670373413501889811772924570606276199156987652377461515961381244921224118527385859393906447407803824738952168137802487310744727284365278234213518232180238031621454698872400905233527302775863919333869008855348851968444599412267056746216260211196022866220839269902859919306249547792058319297966664360947933646038414731106911994503141076321862685853119658117876688423517315611429588266766165800122177768268608657840881639659900448468282085133588108821226316188013781332801949505202353913246635132607638865743057011155633457944328120189423052132257381807786902239281046437774043808371803125414068136287593066742771546729879746235240240513991136764894059255011485629211631840258923761561287021317326216803472292016044397573009272044642918978926242189208367444623234170255929700494851845114509147783890697348348741779915097808425506639441741587953424308664779723388165843594932816833686935989475216077966517700930481763573853268192898068389475975715170592307891710581728647795939200836812957115874077367525680511597344425082080600611779229600422152871708168089842549089236373447359307348700066189300983644882665659118876848967892147659170023279171582193761911213737883720601816481380462475693305442206572861583490492878733813210814067189566601328571150247840685811461426805538719091766076014788061687072555758141843049692143114758481301014320435392088362878721927137807677010071003563608427091176432459643951100215846492396786775241633488921895355107247820139416541662583756699228306940287581192374934101444887144391924002511076763072423291867775726445844990395836246582781304563576513547449269332458324907692767566146146514331600174797249436854094784389873015781304472349731659908211158800462837625103532745354005022694888984673005245057830494844412019302748612289298023668910824413255434575281858271290484763282100003400071720895273821552847230486566663683677644497156395039661905310595681911736093276076580526829739229162872032399618076290052727938985440159384924388331891455240902942326968390381501913218381990978766804557466598235677906229411497115577478988927136114736524950416865973846123561537480558994738526439880506191108543799321846137882180851322814585524635611750657994070016574007198149000266191797342385819973197570997132476750206841749512925872703685368657598125369945900637221987757014604323238887022794368601001592530307789574950763645778026587081156563979114645405832154735993712739843717533995613087328869836463727581253597926183650972486241307619591041275507681825621788053691622590889015725328600416233016917763704903264597131230977214184598077845447359994305585897659870518998891502706724899946269563432228714421460401345943345012115111357553613521154523074532491256508401559551380568994796381745528015208562903136762024016289522449499381372933172417078072857552618856756613925942032438226535119964150590127298377167526490200318323947710377813678878410798199892667582876804394179897084809653274039446959089121736378436606297350456493295586164169580859966884863800547633735982046728317408503254123827061137739795022396354814059851634046356935404965237495806580190238326045505240440870435020221946942004833980111034279543855682550716624829434029335096295315702670980026387386388247515386656744173972632296740237944815712138281115384758725203263313143637476092791376316872774551933780029209846177071409445776790292242253067891033034786331664241266493058341734878424933286184108532216799938430138997851354883709175587387457882214933686922127103747873027726330606808264052551981319054343174241826703024969041165216984542058072036411309669651819334950898525193715611945284388212452152575615539839706821694913999086432005938022111946458160605583881925713437055167305804802587378358499161945874589560646681904437355590765204669017319039976149915177034269680339624819750419713845318916617438461031345029867067184485154044461286186978767280566924940726012718370584887483310249374399878307317220470488064876982593346778880242469545383915505921004252679630681188426577676634582483943652991953128511098522258991088869143764764709104961986170199513881859155306889556486834319022035976092763149018476523920267842438473726636565848740225210425736018845940982226908968805345616628902863153293205342476716001727288085983183584039175732239910758630082886645581191190313729712731761249462778046161925587489700169066050227624601483268388443658258650177562849906647757278289586519389034923133649921220850412298522650448076744807355749915790393340819120955977193984936346556859940714273714312969230441796963067377802338858112921864728917072895616048420529348074529983913348998650386619114123159338020076376417134480637816992450078569626659654960449791365052095168411184869968240268216271164130868689064938930344912302980198397108871434154125088011221254168062050573552219559310254554727219519518223986337804587944595861996071362323729610234631144216982178179573481794579059852255991498251195305481574336589850671558425625479832666974644887927514436136976162697649790054952259740510025923054185352649067911105030641251650534021895334685630572452836727653935501856782583188667941436894502501394108947187701342783336371666667191774457813430167615552936792006554991849485639964319336076608637940059294047291002011361935850437548828777594072455735002975097512589947922145730328204642003421665092689865882293911358850560787642083634537054545487147828901024834900438886550905189951106716820048394804822248212417383392976155275487951161963223676151182343425224070875799478871152483227876193695004263990650837755646140940027693920618765074130587945691052993047190933416074818504613735654797187312083617930813906729522313885636794252542335758853126116465453038454744893957633637621897624052247432839801826276473488497106625321820110075471858250358059227504063535596993983857700437106185391986610518127658293164282482398028014897233375870862487991303352880610859776808418989321777928831997060658797158749850450355416776413515367514094646973813899112549530842451969361964026378351905872780776361905448983651135528624024470434605138963152135653410941680870837475835036851712583084778817209594562146893006941285433672773765932053999755291243241893553724019370860780148111536475183745720167699958678661737368432523739505634818410330330487390747897719575567076210278412924974472368802293935557474017374237900628297400857341241402692148334153075548180922657466866712053682978044961468466772466533103266104632572215441401366715430920091003236939482056816400640956258586132552103236867671561660786250746952829743496192555730188315996562326723790533747254776607176205092015151526025399461314961652516231563978725243757386297115487034886778483688277417679983118024957488622527783205650703327404194417576972148840852617407327896233893698119619037331972183292388118819331263368877952316009215176647309240748020942082315162898868828578206000111076716356303833457740952704683797924458243959180320473607812140396003250182534255399814106578797511032780810091463710232824623882231401797050461169148876116017102798727382957821486837039671556026317036546493276439619335120789071813291471610199039942719502837540665225995592054058645563598865920865131644702898491452291842318104918511391815677064285699816493200311648385725863854180829575828662635022859760849523240923337195952844503167723176516296132764791340893488121404048894049973098351385813529992896997046316622575534936251827991414750778814250373547736874768963199494226821060685042516737136076695165593719884963245724169460481845796204006081483897134540813675751228028925764020517556170834299474410617008992925502068987604671699389955688586273759462207030034788397589290958972004932635450506878216781417957330450700954834111856748656986109201264381122972611111949474662979039050409982353744582782287628312122515084109753827444230473568300499509315751121447333611999763990823920901282428454523103603393112350125071793481683413890341880428811802746095152066849025292953692939124621656463878478574566799157001372364371681212230644078879096751915122943921598338121595490059760162393506528270909232513947574535687039602856738865780305308280415846912621105809680214300637056159793220231891602190818736385470157927160108529700280989828536386212215802335176909519375606213317378687234000225820774349541659859071535348210960224856423553762724052474100349198515418899052493035074337231334625507626378300313256690930814335090451569791223467142946091136316554268061625003134130967889664651946119654615070754895426295999502774993582083115981659833107308072602467918388640454973427285261559698518300890364853555172964779145994799470632678069380775105179900928374297785682562241067120128553700792709533274125924604452441399656586441166840148576409436149604498573111394194756506713272369899773196126355264635112175941613436415483093401737943533071486986343294803218637344830269837867714374445229053535395578216070877582674447173311567500209957172392820015826354729969289615592262086617532656334846153517149791788064408435580935488224159645825288185055320493977352630879764482661145777311330380998971693719678511515833877196501112726481562567530271013859201529866383444686674149678185386440266426701565984955835615780497853065047937871282637386086938553202649676029727660239034564738080334072725832666718064290877360115733037863469886993443424939820841023785388686287578142216949617940012942939010482061988362982345903380452286337994614892321592292011853657845376901944888148862608827916969173386998982024283638451351363264061954070367827946886803374945757463655881821651760391043531709971909687781839335572069708739373465358466966809418471191874629214282168009878249691015778860353367195776718247955355019406591870197120594186755148675723881576615359581755580500200316679147715873516225163654297057290204911558448688731151698649980778482632956442663985521078034019310798628431832536359515643335394647605502953344336503507035540401252756141924102805609537188433329217713538062709682774303127073786286349513377305948487906642886089631377983055361551173726075644195301473575321307975963153302967781827659813059718756072066463391730296171995412863724610062115030561367021624477467582286085449393802888586910575746261777892435698644552776110425971318330279880810737981255822322439719646435551187975254461716875030800326625095918906330263177612709139673794238515358292157169980150470195135516624602510097771601729369656756530028392150994229986420026631465282367463106472696698577055937944509055585117562606961906361371486256296164648467358561213167991142601641870313346294766751109074190349885283727377006014156010894401445217419175699044830565121041588213506961755038455818755674832101502238600744380846960009149508587614708175540385839376672620928567873337183379065071639179770553365575978340145694930969246624490140110142755446593088847477367363978191014850259617716524545245567856110475070280134467593953108991358559355739165721770325230767388447593446894571112691825203954828005127569538838657444191748044086783243615312016838779856130182551432497900522285040789510956461414625331910449243579047015218952504240973618984211577631448133999339158113160073449750954252286563363391333525408453320746576835287573329848015179144542696787451008781459819416220932215336342152035443422911621937215826995084005893887711233773247433782672687464146186082920774477187574775528970116680081347146977949557082453724360875366481074718338518892746433563317737740222278802768297690882236813217724110761960999183267126227539527671114628665586001002770796778613667244040403103876588813725258276887817775501875963565867575489071773124308713384470708605698425885823566989080647552184498449759692949141263689214156821981553611917770467654587086464126245863972719085942022102447029415079532832880143613510997018090627445761070794894491493183115981012813620198684232618059120194562919236739638435189567789438015677096266232624519260138801638625868468419371681643719187025867525297795735098113770204020526684633353944224879541807049446812654389111791710807393775679464096575012658825805845584899583035128741138716879062118044666922394672436261159493080768566208084779629602925583034217605683742576036717014925242307187104711445577691761790233626022488400956194598891349317611257044399456600732181134410231199858969134888667935825698182547948111486119680121754190905661738296627345073281236877260739123961819805072063419450855675068051257907444348836028118553796096140978753460102063808520550532908667864129702825686634743816558367273915861292902629532464952090051471933170831967686387649855019075283045099423113377943608939236847811747510934657253119939253391507753849260876169642228213384810942199182811783451864913762838797338110192827939982973615654164009005008322155109291269413199602609464801461612127759816395537820898275113466467310963109717793088162243863215505117928387441809050512724922091676912763191746070894929145915618495980953766480075628969372368040897964201736695767762313078330207339740197120509482466747915668818598203052528937187003951782448893454710212536299715454353362919953435195215065378580587780203606536927187874926606020585563219058165242668730951805197002250238437635640648439489844327833369016456723682251510380096304469812057207431177012822389141263650975941287987529408517196075842032822984166016216511615012810885547297111908788713223530326961736850946369126400325609137941764846471851159313942800365237625273104066299019974725458166185300957704933446237808312150295149675165440952431756082896579075797149285079543082274009658524815192484013404687916603171252470965545718283306035397118425632863270645840555684177185470042991452166595302400250923562548571359988797701504757940579213696275882642389646232799891007786895278387543887335890127128259842374209048468264013217423805910381211095897663839196357051318921303896445059782568309092279966327696168710778721083344056621947072002907259369860409872850843680575865186602128824616104262132772460599580161858888683509431162559700263478561076242262275038410138138859698640787238461787171011241192392384652392122860494341245447524428925703252775938889366267893106354746193827514322215737801351263071112550625865049096684494865811164064192147972828497985873443248232919931373436418753083537913444341109236688910720734226153146436339943539889771238453755662034348268473876310165006110341414387492081339733018318478909739240985425783473780659913749241417534063550080193146811324844296120671918345524538723741858867936956041706136561841275013846098073354116425448114004857303076310226554609453772205227494944766551954847961087084043433630247033183166645960533196800914388708620177873223061027118479905791176295884544072893086473714238768897975003606696269778852656849944061376526719623694404076596101012924363554523815904765206563861418728711519848559686644432042277408499498141696139022639363992512225380129218859849540029164732489093270373405322681404726337169609270136178654659588317020794402264031802784244206974381077085766808564597306224389113042936522804509484420712716529346193350792730766034952521040872053420249548964752386095664754019260073836935101877946093109151736788507215815589291251227404757795091289454319244235551220040282027635315693691169204180844581929259584304303106589897305902611518660348292579638850569962853283811300248535227623956675375955329944684986285315324349979872006234209565349560812552853861565476926832767205869879339120206554781197419435520538154028417252533345658680771459350884380269726438548547818114578126313333364270495007783863324885336217152308847032990325427590207656618331909978842065359387840490221741439887762190869117997151037179142083242664854027740448023413197819732385936362185590451991047422998032926018726043337880207643123857954008268793464742477654221301389538753354098765184994363637616845639808231216504318797276580022679804835659079390798643081002227385264472182925778420489313843934757244035798771633883257512533072702247312462701934593591262723902257979551027340340058188428069012410547420381908129152999482579388855969934000492897311524230924499570929436763295272202905415869397212682592528500189914090228021034089647027255070057704956128165992480239639078023256431402859741407790390286630768485690108606677065284155799345989141066776891397439116594346032760903993059532323163872777467998936292418883065944016059811178595754078526244207544813586317631183183257582656522630342157122356983453376720205291148496798246370927199446267476407807176286948770049860109419508018687875150773749566572148963751571536081122305910249485817933511244902483231024975532758821036234597378993223164511578526577741224659415360972938876894229367071488879436102460844770502394517527711903590589020391671192019686294103118421073380749079180925281699513557887693331889070986947560766231577241954178144194642584278722809633965833627647528963801388797265183893503553822727955777909225608513602536730375234456205104308174913571421398228939410385130800763250894457381887870639330622866511924625709143081811472119387068717240550570215281001059944625242887200771360216563635288713496868569872670238257746527699886101983512601779580985698467331569567349389654804276858773556055900369760839035631595631299967187552365182101717351787170668349887375160166642042694833395864836052551413615902378890329772613315039663158713799940061711107077829205015375182261981786157070253643019056535557017846557052707712432126236246103951153127659143005330183325656493686732728741683657719158511283523358958718623342473028332115717599973056005353652955148353535459272065307598381992696192822682721938828568340467551912100961741655975916048741367187967053173456461241730847961408463479801151282106334287877172682116312264837421881794444437189134468561566631692493513037100292397650797529535457131458283865449750839990740847942723332717140697668519134771097607950682346214250727913083237304095082484127548433761599936595822169708139151773607239679400884038537102023381627365197947468909240535796946318245031237901641485995833167179161488357611898773362376072214573725048897693410911542306004041300683806527830057693408338205873722000908531188708864879104360019822663632907018946850125529254591229046312762797033161443444319697801592608611331040365764155277974831613232101636407852747670701291751366726153338546558525166131184076687135119973258602940896013359459670436203575765357529041875346185263389900430275254369239659351016984914650196035216005718298910202305191062239212099042000356115251633480865970861355733829054872186855638963202565122752594637753853975602684032993346868480545392753866131226987954991580333383830598905047774363941992150893525723847656746188851216068880673894623599649025302025171538923329029928207174856196763003701330114540722457307281931128530459920526527505337839367498887083509153367275179763302205628301149496875677859546365474044710286818161276218644917082673801294422382440425625925340549025507241107387982942841662548684240595491267983549080479488563111043448921772176209985251217080026924101192765354985892041598880424158984596012790389930339721929857676432403670249572225184540519262620634782625121011268832077597288686264130838577727566974150600080151198200580167559403279702688198815419343454911828898453964069624388645047896096144723783736060918394971846299893987115876421433225346570315648362639815080198163437972638101406149886649207991055124263363521194358206325011820504485182503719358337642036084299239613834240950550508991735774729918223074217213610106626330887919588870457836192133378824356178196764764894025662936749337663992218174951982043609584836864496816962991954897211129345585676420124070674902612832639255378308800795285281754704783391757098025906243845127173810519722715720289312137105674121007324683438951940571901820156624168888437461547405095780523897283259660307593212613986071092962865798927734978210217672704216114908415014173873518140103297390431967936541045295399134550579226272936010704788513086589264896597538094841526640998476652316651073383430994050390305940479067290297545040333765382946173957260324609671541360385596086956999045586302887123824026315009957883602755467209114776159965083309341505650383322295618124085419751106936349432940226381812725449746049407181253459155571306009074979428495482195422315797597547274487748573257613815546969357480456385400666089486912286646870380770725709410334859518062357464447257758647455943474677117710138104931142809907323689727691963987917249242994817286447817334373836836081779233475022945261628005439323564393781574779881135545141274194733571368191468219087663488568409620695608940146714514474748308699526171200162688137848469427477866857713771258769641467420020455679779771440167239786670870855655239514008782862140361827996900935428372488687948088997537260406079767550232907651572274141769719540352606581682983575506310536443894082171446920555734186482871309859047458652654169847006640602903406070736403181806091316874216463238782664660009307365620342701247684959668514552322784097386070203472859637534857188543758698235792281124713365012227534966431169638109068723863441302908549644207590612301469671543235068015620160309626319577837649035726421994363455966073963766134302208990073973588709195353015688882407017527212777241538601572873218670102398672398800167403968058206778983818258610581711731203861698533935984721207310584697517964730110643699384944148613584887332194178126532311856343745843688735145428956406189036188946576852381128382272366182456893158688987840105021675229696320492094761132082394152639455929430229006300781494556847018516840267402750888265514352167949204107764093864461285236060912011285904470057817753877042654705323454306647395378040426537760285248764063144767251948895117519358315087064597885445333488634840900934444939226698073986870375475726195797774959220163351292382643594682754984603569881052869909896867617144665335771965975189610891873839517075134945432314528248785080484254917956248487349042629550772142950910531933683023298391154411986191490277707454296739859661336546363842735949358564025589659838258005790458365161685251984048393458027180159148953477149569339908001048140798888902931461620470767353851209736889502901815739331794215883345766466060856071257501828470514243208588839173335553946129175633061332690134647233405145588071692228824143375706765423544559094681284666457215889145677767783388490342637694922992182654668304342634303690925264798026731682228176003105824161591906660668156414717401726649258935908400784142539802930300771205444936942098351534283487963839120043309937200628507645350682628215332393711893784052790390417258812417709838447272336571961559896673505127491718769225888863267509474202537488264997074109826392695847295110630372063927961781200786902405372971504686159684689613758545819732277870317504615037967780733276776265594998001465918231740083161690301865089164699151303668504234138370012566739446150161629229874751223511516746561247219991058737413913387254292140514669022693095646981241881902134004108415627463184866612062347049639923888917743651176980848839587425723209087111707530537279489564269424760487159734686204572155595310354965705546318201039652141179402871049748254414800607531459113791319631259075794194404527108492828918509367724219245695295639717644025069615960162508897022566216475569432005866783948431871168252536732474036359970873307856902553562972032718270847638777848068513429873388661085084963949768528368130307185458008428938185472810926355813705119897150652441129081398276656132672172959261700339436706278186680733726257450755246524664856537238128834336604589547824244020273232304876234603496685509786165366383146617702441746207903829711796961029426669441793878190453978995323435843644206083474086922349522433395589555228371481046609498851509832837251752255945806157559902958707715002261432415692127136772926073344500688910119203478638713331145684673788998251428914821501473385052434173160370511509510503722069852896870574525563779266446332975800306514280103108755862056675582133588982605135228253848955208797024796578179435146707107012060050610536061171736766224744454025895772207091368401140979191633758759054715285941453131896027778361607880738629093489372195259727014406392613823989777086445455039249088418679519448532385990465872223225589073595442969571605079693069669397548283840342546703303774926000993385962711536685432719560235249313065126246194693284659965284739198072394879506183726059705616423419354313251430357211415077358619696260285289124562369186004328413545124637998467719387575903099711542484752841076046416496492951975833135903451913444667712592181100704238719031405382580928939361950929173395146382602698366093145914563905781529619569437302980613712397889006004122857678633527464217645183301393045192841211861893336131262029061758101752835939082121013276051178630134516394432352838000767445072741802086598512659951651066336617213943591753984261629246859618439157431583455316535859639241218907346992288279460893085152670125751927981561512295358599726762151654485544474492331136251552260299928950393406234865316871415110258112355841951872374198102674888003488044165041028337524540674500515188596957091270321580115098695609426076274410440919755222287949433935556271826338703197173035277013963807804644559490803294466394364104654782493256793560273694705367439992252422533642858743079960876146668277976976593677979861086849628229664892553225188374409622007350955912124614057395125661023311284801001461621438133007189783584431753439171264370887378797496569364368258999441703545155818599645397742999858806805331491610257185805651625957067272763336741863580991129913562422850847522672962137862742720830343703322048933836545950711976394064698321920261561526880399488345809061061641165429634709642195914576505341288810420020676681191730851304420469900144757509351085693247472309798881950837617438977277333853235126835480901648130060913130640743163008041807256648381341519087620257451293490803975294476581002490343383930039889589179935017814710172521428353164697907484944289566317128846737600341746803943434889154262342632315858592664184593546784273589245870941584109909972718740003279747755359205985556787275310485411558715221745564685590203321194317598767001025986246263970336522022249792227482235791949199246746360607106750119917268352308214806111417113890931678320556058631027934608662931434214671989266193134116528725383886300513730151180261797698566076414077021825509535605135275835684083313949763653241450312350710829826066001452240367207708581469877988676093423755797218051768875656900738184952051375735187435127089676758304771651617354680980653852004715611007131164978589347616864855932208993411400246126983531773518247024205596849999703622413863943806133940142989418939125512526637770748102858231290624202666325189685163070030603625730158620753878844302885500171045293442552716822201450165392782471476702245287850235462368503131782204831843381582274435621816000230318098353753504579532988147827423743897183990996150957165986156519891695363628970517756644321207301409620918320042307797261901282470836917794397640534129769792707314787252219854432872153492785274765437706343797201185891287133262715841689608348650352185055179390209474429109970550102197838414182244313463095212618935788785976898608904422530080229213454951417242788175257235785225545522040772547991814927376786879805378294976793119159058671546239912792639774297776826559124960486402829876214415751815613329790175511170371764592541924517387541787118931428281479627022857444680247703259131407177912174816111585343390893217862168286833705501424102604606202717038315835630067676824610248014126852852741890968983766122198636630697199545763244070592450535529732326559702612299041711650308390802661981249723856013230779156842724005225197941137903947861966897980494510710447320456148393227719539503592761839051258909269924320640921933497474512481315151965943174444212209188473060781014692319762639234911502352748940096656316623944038538690100844566173631404735562016668638665057905522418889287367700388238544874197375044725465521742189772405617071664385154848729950368166444659283328078272553761066460495710832140830799022999370677685557240762974528310082164633985664222567406729431883759893961561388220777567771147752547737218223531435675540792540904763184507624368580454698495995891938224508347378901402458629711937472355039612026089028860161384008278920669952372883230746572369905992644477147893941984706727404240197100780046278286846214759382553068672055837654611473473774368908885511047831828031381644201782594977199324022915527226267500210679641755725174463845947108581514828046272303814471543414815394769117520986063206074639429150966265690397129693530179003571373344049208783616734287191461983966802434541983834770403198406098858331456648144565275521893847058375960194552812061726736717645749050870693557630516631133198606376535322983007337266929821731529181266938113420952894234980811244885629372740977903546955260009419277394903994057672554465184273671487654245856061366275918828446446048541209417219964770310628665561942187479503064995675129883047081088192765025955970012498594873927392236308631304004599663740672057506722560762406437498146672645890163333963146253998786716934837445818326468604075713135408771165692800446554590752569035393851933106156529265674498812013697991682511788207840911027976979523925819203663404231422427999600499450560494563575834549916340943730606069731317305643806364683830707445223963248198234170048657191913805715790860327957952592042610115666096338807526365032242168027955949184212330083496034486951899191999441904253561824156448853345842402194660006638803779759317304891338654523364086068174333915201504469657812340715774964014738656669242445484735372746520314670335395306162104587883755863378892856301993736287242210367172691626745576322209926247703262001544643963593128285088171659534637202829876820482780096802916561710014055815300994583884924230028567301536950717545363914145083940780552013543231452204648217254930982723344156256469322619997485962174893732778711707692437965370935387206161818128100950524445793809720444134018444788023153446742152262366509805996605242420314469206513751604518972661547757303871607079176339921136974236040669664094910361955225580775063567875764448731794223090958579695273058501866041385001729817446373298466628295906436238706568154691192011309392352126261652550992259809212425901218959985684343901741574746313298697291583010786394313222663354066944869230988278556625330945848622862290267753926791612847819248186985333346414549563234855574817661480419339281754027069115471708048742519728537018783505911946304280443691079529711967265594077989335827137130859279097770929228974854799555168100480218642023874368001056305068707640748434968008074091399140357411120215475038162907641870996827074904076151725993905254019566595463425519202646056325423302539575025900159802249604123667845496388706856763066180117285126682190941332292364807741614450913749113069040430028227205913107017635325864094122089186171140804394522207472656386796920312921133127746468304730596529620543012908425283191887424145507394089229113048561882181002124615423126040534484683472615367242010716194363973537253823293108537862197011122691801239403710546368704368869134316010527634333489516392161498962548438319962238626840137464847733312486630306212611552603837798636675103509652882732626739601664612212275093930909733820162369482901142725717501875697224813081610638603594739087961465587640719220843072258775354207163976452830010599564311453679513756884280805203696869742985326796615620492279577952975946482341134688873058912918961081725961935091750877021340728561753476746235702501369817575507322644133518448271556673625405525830729461460658605253947817989397667621252528006528049858923095242302321837055540693719413292747749998139087466717476876902356232538787768725608683734014671009961907871563348743620680516067611899910421207760336045394612986744285066984725540129478676885181629394479347880650293560285946255192775453212063758495703022043424354911057188260267900762710793835021002569120947975665318546999425198237383248288817841331459271679051899636818870746088040964165649978420800829431086873820495408709853089581316182873193631135176062610285888079908333073878642091102533599710471651133791492621231180164340065173290314534984525455885198061633637689259144846104861497433810559032486082977458074938137015899948233250061074828615423440281305070787808456364355643122028859846937129290612761015648897103881782606582578949048567503830228240096551515658610539323837962112687936044210543900397844935051604142681024481842153064905236374661675150006920403149383655404232730748527954982675029542491406296604929664612855638562758633150383294698890350162222886182835488780266799731043202013305594704243043729512751353232492135401268583098758403893151674832927547774813520946895459486712672914550256621197109329371583859945629751413263592457682826975560337934778777417257228041641161208507811207016692324232259308633697931256160108855459949638025945402891170612161860493600798387271964927407210047296198564400004890695468416523545511132882540322879701051291297390916902093030549017610770131356139184317764502405125499270198448359660192075240065930216878590078638997347624466321579218176866678795347069074240002811692578217804892839903494855122985752296136373536489459860729326684395688499954692620642162859970821765300918293603791783094278040309162338776300361623894740907904689842486295023080194840612095581728617744506615225528085586727423960135193182507452954953204535046864358327409325501203968616927669721071711246070930134428505711320940173205000784381285897553986471255824622363546738072826726725199459761092899263485194132769429241387641614514842312623994118399911391345751765929740999243122845803418475366752770089723610282706389027019000393910457194416554083633013642101223471141513848252259583476066917998440478855431148807775835001042513335231576881078425225265031120365231562076254016403931254604299716386788248229102725394326679739157955134523133074342219079962060403457983601967208689088261158258067217515734824934466094498388088072486443161685001054214034191207096513529355949520703128309662876360656880273729188507401927442937868841979534848267148271644182204615487233433012270076839080120753675321131632893994750424970660418064305060066601871845276181423163878034037136027004114208542243529222481051965101554176136268708687430220512230081755953156161228026024015519827916105068420652345053029731781669680374977951085799505186681219012798789075764555043163888199574502968889490153217100230587503372312916691155897929511207085484655118888162458998587560528944917998433035970868471198863452303423455665549904947498617648491369517516928120749143257352998229893809713415058348528728213807486333502443963987234703662123539237699695465243541049707715973699500174512779050072283935985871133133724343427030499817273573148643968108277104546038682197684479700697329299137968135493854188623607687814010073959734376860915735702314527928274599110139443390782567163136292142945883635808114095162117860343708356911010463996813619273119186343025234990743990144323946962615455674793166694015716880373680078074522322847908290965330483847414718556903978904793977724535336077712462439754801279515288861763663737944318192078881344895291527069727405041507108986242022672107637873258820524733303085926964575379514575327380759369220444700011653925577369947576838388214717256447450031921041244157029953674835944981122319028882778104882758579601473999347813875177064397077607295765430289291189343188764886975082824852049947143865074669932131309460106911451158968188557033170645516716184348154240152872109943709443451396445634298650213182109627882138534699719808794307645382042652997063755595750946451683615556643015642228422432711570331507535447058449885254132618416488025397047001101925989277983230172869352511676023074898634135404476298419548903971977379487955037173470156063217226221871429743071460676308005168516504714091616048434841139798834095166738358811076308826267723733874106072379072549979945640774267911931199959720485406911303310829558455671856459695625509564882469422955928150593386797019187655451462429210869695368566447186897921280971750286302423081553600711662568222707030057993648423099269441724746067303160053480002510760252015405643199705387283268803661729392368127928485685900028986044626276271435672449663289950171922025055049553212512059881768313141847017937716209379521348627291798767526492193695138640968372559232804648975511581893070661169304302241481302309414132773922951913491684095328553120364591958199431327976801211988462586821695866892641759527694092774244631677116578023028087696364722954736832450294054652475885741008360276248746172782715434773606943666120652038101578579491441900219203149160252718945424119705293756499823445235335259589713246521478588430849239180525869184377853359610428189513451973931037718543297387525713052560074507473182806017542149221340337583462429243940661139818164562018408431121767418412980036092216685296154611297667205164754510838132849275905604502879079830550435290470694603588083535638021392974413574886852072673689690338858715299121046437545449235971281945395951600364033189027939377248656575658882596454013735316291006544473619603283600034881473113835438097120397645907073121994964655888547658064174883924018316397793556733604101986801152056627083240766270689671671565458192250996053066812302580291226286078288955043575041705934136113541256277085825406132977001303143146166518871181382122747379865520583370778989935296053799655293203792836448663702964959396181409117648892817527358585697736157574012673713339256034041563299470058835641954139758171342278440852476865561719137380556972218464464778908608131687752720360957126930619104303961999271170794449717490310061136476681975490980086009747543807199408801343580840981102791278543401731494790928273699106923337631525343950992135932811976058681542426452713247777415163106550529987504783840412459276377148744809457608222702906200798922256616343013606525911099081573874628179843116640367398554879727652025338519663935912130213249397663651523182784539546519559534413424710636373179908628902638393375896392438239151262350344898120070238604176168401316640234241497149143273895089720682094595580048630248519002688567523454685532058666964101392364714096489054650422525375055926750608045092565124173956386068134745020639303427966096753853088395803904218532884716602939400880943949639588085691238088334767281185748615804377798502063730214880310640779249096950670151732839240111997217542148511849184343008520368919075229438670772700686130954916867926328413718804853484414848752472124837313287011232721038225951007150342046215044107176316059198986072315976793556789815463941914821907029653281043031647049686690266650041794634152771200766004515152615861849740973215582627399369127778987118908481466857941432865869207368003094087708480977700783302540641180862334054140470525233331214973433692366704557124541387174865340646425672900054511620631154220947434310604968159873959239838336405065948804330949540673695372312759603172414800267343371071829583215633058152456904164265513012643697489925540625288382713393844484518497782698689527015350156087460105124054339664732369278375842620912987949553999412804180774732340681475886339509555223258706791409460481432867918140578588464094067601348701115229204108717326943535864227132974159696673838724498274626562172223302455094375095660484717280143624290309437211224004582880153844308131855788299572978977596900122662868550033975057413269976469120480488694817231053424536276516399882961602296420521839789401706757746098321759537607013045265806861334876814516538824964141676630280152856720469406176843008463527243125737338542339000591539846361967791842142786372576177981946692326320355093124137388072200874111714077916354224290645299816358637153675643388555824123438383009651794734572465941272917572380928616719232450011599711653971956726156636534697629604877983844010219110407997328526329602844698985574073344943869473039427704108352222179223380622251360366776312501141355142142799493905536307009600254473674471365886793492646053882821023698693207614280582772746443418696315591166003722233667577862309348602639730772521418692932923483724407674936773407847184858676962640517255581009608089792682039023242974046708617711683161942263341678238627270745338378447806179775870562274396675333907343300375876827595951508410981449010441048701301360479629677945106901817749244480316737933593708190805076762556288214642234054138874255655488643887589597627068057927469394832630364447476395964859699573183107020894026423865015905081370351723410714160502865384085887440082115470838527239608735208921225366989254845964841444970221363512340125869677427333046842433622436586666620057735005529553664568377017179898706877039946222094671721135073745117959338680856996046690747219427170893153551108794547328567694913544174463560283627373773337333191158289575779998901213293745822121158929041985659262926989846716121670171515344881939932337338205437424961152379127402379176738355494127210217753909944281135545161831891453153318559184697174443235425593641527573582651227515335195299605341985961240119502918900975391342805379198681593647220789328932321270998435499338661216497581393680730104133409318288618070377413471609531759361579631814998238391659337696628350196793615358136181925478727856591958526080552129526111366615796617781055198645314498215678962432004658827022577221303417568529083567532602422649784003815839332479193733173070989508732487748408844664393994659683695054337524310241664858995462644061120468525865373422024513279098062803953518615168506450276729437908352915615048737545857902854664084861268675701647052877219440101003940275917899493865673970916965073783304672719722327302562845105078033925246956714681144367066430083372789637651078299181610497963722858232084878497858456263038601280322504141745833178257156322364442843636635521870031190040612835019412750462587867837864663566518530414072911575770701367470423545356946103321628433501304823393036339512462144881415190194865189889037120663877659731546974692317093151048328830520903373975937994858303493731919033534945563339252086376800975010478453744778103365872137374086701819808952940997789586648437998685989334137678250839779394723248624553633610089513475473188699820126362579323037487356967669729694245870982176239831405202990537555180024595027516517236840417236489315008762738644534652828810965841266261078307260060990369569325226678991951276675615307093478363568111636266764616415588303556378658784782191834781022895272592406873541297248322748613381652708685620964192407423664569413037342493090124555566915837109723300510232031343023931231962045107423370630265941064831422595818922345123777732299755500409930230483042352608452745060679563640619923820476092080336407498742542307068561152982400207654811518858205493305389873282188053008792585198563514228370176496159872082952550351608017746445969629745909981444108441605235283626047963617404752679622404229921442185213545130835490321882391797594430356534656157132612996991835242340753742059858218979351812404462035092954050408468104547768489842016000416817805520757638460456994403427882474047251446891925944319369717525487045015481754097675233563766784001625531271102834490515964175859353839275658437144133488779431482825077022811572430324921087193716281146627433390501337404337882543645755248272158795763529814045874443855430622292951603563833628970111033751548604537741467678085082415672205433160969469729451009923124504978208360633497467883216524925781574425087532420476675533432999807642440795082891612424644643072611231106731109444323780705163291761917708981830732467233221400966352127514679467112728216111399284465682113776662901906463424096933603714986550579466542787090040359915855226730345012277893778616444777219636414109057631108843667874228713909518413265566149556654680181354750765763580853371327815341220490134728104817343889413588381871939834254379052569802261177042321353980157187379564209904270910227078187038586739097950740885300052011035344689050832596717408411521823749708045274567343714311654440023051309155928639037068455417259367743435348741278307974559065556308650558480308576677641524784577419459954905074233149494911249617249092720549017784791596150676090025857797834611253015297814387654302900552411986100631803625723631065999488611550802295182812907206934224564209995517509676987066640718747346097600414113434425608425973243345482199997031267747441037034231714122693591427653256473831384343487732492318309879782923345582571185018736291158867997685225044044948690989029880328079470063858289678912209674611732693600553499382238741142286136925091064806999390653503637578036427822477892790905085814522474447523738374871384540423189238910503236321433168772993230264713470616642377896954094919889358276055079314398188077686444136723388048082288900034023286161706138394887501257097010589369664869539132270876754707687285527614003972133534042459879138484813107008518915411998753098550427547809962948577358492372303279591026764010940732514576670730783286322624134557893387705251057154599965642375546910905489143623848599648349859878702891244815171581043473551443855129852748324956824472168183093030711084133311155417358201757350287658042271783318836642768899623167795104194070109831914909931262863371434109935305538981363404758012345349672668034413470597037015971504634961241422730392046479742176150777359741745948164712561880862411367218383981652002238431853352526759015515643478061890166288207686791491685518577154720539202066308418189008582890829261704716724064218779043174677935601955671392475841658714552943839425481373519795766555074375295130439797003862366549055391267042992422014844845157974949712133392874993717299754997306368086238724458158116832482137217223226312651888960718340626605868180457551464679455113777359759272432982431145323838651623473873589476156767440322806804956862175668728268729484381094862930212454442295332819128147583328454510285919330305592409951789415011750852682927331601372330324729977136545701501286551213240032617121979736492298847812506116324985062315074677539715030160866960900452684857280039469584127829147913954848176422830897459725994808739353699586859989098001303021526721499272435635617321705403144430266800035767927692038032169295141475092285299910769527793769147324654058250266554787241589341601515358224205742227323039970137935324496644969905614089380946121832903082141082406705758168950519003935352396947665795810781155751204933735716594802644321027425716439609246451730273975511473444435696659895687757944589386506327893318105986773413423358615340646003646214038943190546870959190427003061224189880114815903619902446255321194114416181110579763268263857694533396439274165163648504836870054838855485933768404415137963729404000603956559286871522354943580506505959178728965864876508149061794388292395932291349541289078483075953075173726869399958599622955771662196718130746993865824939995084806365419561428702779400829479867657064519763445078482088064939068225322183182881906271675557288688032952673814783739521765557519993239510682083121899929586956415832486442277784634754112063707375386748052886407818531686192133564653607123372747623083272178792566104821456375425737593626253159266515508919348502492886348711391402195724183271289191176608883739099244158696999610469012070300121351847496201272328640933142857211490597956644363792822716657469307767495466169879402407725544847684228668968902584992300875021121009076798017713291281740802560921122854563378893733419308728206776492755458763138949376306620809329472194930452281366132625727055002418501303707413806895691293756141949944495427034226038181796312452172159795214428025609759459242927322913248372888104898396116359786613687258169026071139414984512521363046728679849905218416057252693782887102562411129451703820292238006594716151841398756620383689797380410268839911778091793523920129590042444215493415664337199081602829773922822004095850526648524732697353733463769501841000047491994623744947181157259873000832709773666872292922770763550176726118782323340528989775111786403062136504567472221838825473622133669746745413477144574574747724839952782112616893990706039872897193722172354853572254922551988778498503711907057402513536235943803688680342137528730110188441768306263290470214457341277425793884750059133831229341736239163437285385115923624884472163231997095922576290968672034522255769781998330485532914788747996027960942864570860240334914349402143365035188938378395140973331198950259740559937892745272679995572004513309196409115444085565015771618811696177562875558442912479879661636098931125490130095698299335140009160665879816748015714086823463467643186824841067160594811413177416408906725773226932868763868182345822417934348337601344336138091592167453603681597961840214238644554787511954029643965490174748054705892897345974864007764191778547222575889877470146369045129872351458569004682412749756552704904347891261462785310175356067817745615023466683188102214986619735573037279939363371773224671421807623631749921852175399828168436671916444110385488369314504344141339247811911111853910663166901359971498614454353902323454914367424472987120270483147529036208101277975824921119259259254317149475287204868311256985934444377174693321136571871312399933635392636188377764971464606307647728148921884211561712519226619003805927252097964515752546437117600983206606043179913459137039282007080683708363527950857471039056330065184420444257027069552493734569562970574839905254966613193897474934511394322604805234698262158337509147254015820761003320973829006258520186713976065284083963609867335543453210827221548962472254413550662513699759126483482323978287232751792972080072959320107646186627189989486849550930444573037399949841716098955023735627598700582787959605927993942663684402128840886802513434882239671963374971254650775090571781195430973795032497088461509067168822384003996834787338338731933496179760113579334218103143603733166593752602410909962177365405257524688709311291138388547751660761565925171044121096105109415253767302416476896138766683701376646914638302721820700981804700575769317690106027117661394113697057183729170581368593892196788906746671077955244330479753961826873170142273897427835227909731067683749471562844050806239694642632260291775032303579041258170188421822039343896616759234174641008130337034325114553728920228772774804814655907070685799477957933287511607985435515218991629411207648795210193411664645365404625182705750354374619274661770849895660926621142297129782812661281971676119947848984922027752118758414236901679022336912827096048564708133392367888501225058373573656331821188061294216023861111539983730364436859674543917431023116820477684216182676756051779362678149618496981880165110157426631903968895905315608478525563120682585213637446539799175460741134465927997978615299423131134123983644881984555578072589728046880117472940997868349859508340270597134459331081041161314781687303621084008154118714078826011010496398250680279743094639508966506136257623345649854855005432253958283897512836836314584379529707074984675770066004301403997622628020150024430318921779854159311220969789188327380814783746196438851134591306617064099701826374220543396283816978149947146146363345664555538695161554214276151987719037863521721802745799743521130188315951071551546449320136348098876190601446488677302590426874002863555157126486763847022416014150816569065193622861163407573949788176682060465719875024663878988317920355257707206389125457944903686240039399615243775096458848745557711394976286963713160727313802139266848433685421654869835283447101220625455850238105100079645071440142290903491284656287493771272274224137097140411903813768483898445077181160178442934281096284394816368625031138243738889641318933569593216255836554737537119596909627465575579852320011547750756171654565301839350662477691054228334664979380528203326129229969519275894374463859466144509803823831426699300171180335210654836947478630225335119715172951134178782921656772214375048248840701673682250612967676003162925231913155828088833224977515219516800085435193803062316353870820913570732748694700637955243735643890667836927306899892137416765218215350280510987902386016219712675276180702406233881851014109987897663230193418032532419963213116765012110179445607804764289829726318659187403055826180897504612030392159507802028046578851600754032658194534930894889188837892893464066936462611236110614852621084771789916960804087942884027963484880273929328222721138705907188474786207178441302181943783256663822033378689757225000186898395779671379788496168522096148075532437511363160142794169932776705685853828262566065468357098537069282038097497397055782308139513341601636957372955888725911682904427650688708953536882349802864862153408956699061676001278646340876840412265429768988453633359585564970329790468600957128692553229522540160870568948420777457791932493266333967362877598480221450793007353504243160864625979027845490696647935405776849404229439864986020685770481703624666769343486911877205792724930834298258718819356927239778510467945393538108890007691758885348455346985275136254238622496795877156277748657330212600310925827315654077694742528585405882792846271915636805821347011651761627946154458715487605504571329772520009725918281585249221630698591053656307061683272330696167120783390045042388975453522017122892217446297878796135427439097529419497473255664224030500024792572353447369020139908545880623121059349062871397799096105943524425554186269877234899999349513555004148760186677449913696726864529920320271830743257291580476141669438896356669520770622727941071393947869464233236447405115075266044881638908357594878883544880128882525054827417228996922632735310130044839224883296724417844249945323568720634835529781979998630705716226279518334604462168968892990945559976511000835941887004750328123142759918680723247030383864273855718351859655053533413368350903813284600224480751751088626752970677963707711854957400202983616497016196801088283904271821091426285906038717725804718373601787457701512065060634755970666512078973654564571582034121815823849397027396558473949137638504516971722035911282141118211995810155261225762522756138214866771272057019544042239325369101362831164598161510088770781131182639436388195574430646123614008945033639347037722723492495078721416636358836289157874342912562999169098113524481773945269537102685492354897316892716991653312609516791737647668883206012760650041513186312624281387939130740081037925975225816707913665346710327971522320265672306673208517734283954074920078645329674339251144341783615572220404376443284194341202756275319704024548893507468237187579455185081205189227066830844038432449432553655978749384437036028505374179382216098355030184624255936666353071457930053345201313355767280149719542855482488530365160935350485456847076999504135163568120666332947642045830026361826467814016211272022205999708828008680481131773198782819944555108968112705945521496040564574971104073392333772731878503939404347253810647240258154162750413807620330667417562561852264258437154372645439376439595355341939147442068347381622960383770294060721704331849290556281283556847587622413439431743730481163653346764202145664033798763166192058523107532195890342989686652938205291586042856428155225267907055501135142223750796907361037677450226339991890744620049275554458250721752137840751989297359880068385553574564476382014835326790156225408299408857475356008806879641186103893745386726684899558248190160445588423554249059138612154657694643897859568978295133657134228440728506053281455039840715839579964771955051090009327779993547869761907388347566293306879651455892440568038221464306768547117814834009938842187955738979923013509192806474280520255149916378439153325011988672794331781670906355106794863955760026705380082859008104385431632411649977038279704972688269894882414404720023005463802846512915580864763438375835438304994600145428162832620493282591583493870387247168360466421856991785219362850068269718684748983331703420654518390918329011842910541316771245167767018806612429319730642632949022183919766034728257496056043320992117341862521986264491746928676505298367199200991909170534838314225040065724368217078249945598252449312287181235056950219274064394893601810306598920842508738170856280438095288231095270135646384980726912265508736928162384230854396370689801433163830364175608748827277158574522366879304212842053089381954295673790971625780726678873158021541878985832741042226439509330802975685624883185581996438275810359386936076769680738206188067118484829814887764423869308902897614701503767748351757972937783067684294430239218090529970700775842664216182251067700422423323315089207212699064174448645033584169760954827292135641397072761484416184595741255811300725999199112037585961501490788309476078743425810283306882618165312732347841402108288647971349719297367657639228952320394901979186563292514036124647410199066889119210068705033285405683189525649157563766825169690145506322625923689823565507982141034000939715413890306702819719676711699718597132043161095951257749681127467394811475650999039776348537435807862127234621171341112763530718804513193655432326334918505542462379088678384152784413921416028298073972017446782733881852028533453731409997790924293256849337831269078975267586921687778100249852927967964007726741214491055914781061601367984527294426728749130929995690226628765590900448883197791212720951060219078150819059133683298377014060658238679505212426009694937269574525027868869411463478145957700326127650455776248877378428503459917274425251783950565005809563923709799994461467372640667558659263429445659973737595629138310337580275501599791630947455569145898225254116777272427978175113703549038689417539413208456298888112753491113927261258868997984015387874818994607357281542867186164221361452286719237727523329515238748558440664131609349882235625786499758788195258703908455661958903473898021575691238042236644273804452890917467472747793333106058296803494448487230169377701903428194837938754317071657245635710757372119813910075506077989336263404657804092612526936698494997514594069567237343238030347707056471201790330597955612906832527255145756629698708927049983677200039563355707483375545330676670315138723132261091208383698147808866222983241469573045834917375502384981029509373408291740301988265954749387700734952993255654121124012540709129641299969275314197887562509825661033335176770870992332051587786673657293171354155169902909480737606446267707373968934196146585216946419926079618012556854284617391631856177521207420431574783741887779957539448827885016978101387395809675798493215438110353296568012687430546167581100609810218634645699498857008374640185822094600381835446722749381780708426821944084285172954440291546764576253374452288472593427205194500468600787405717282325340935000151389933147334071789515462092132210836749297036921615857372666762877600715209877880396330503343697548274760081154921416977383951711085374324541307381201053088473076995724702296126430903630990678374807714667156772897007828099711456520243874929822478038934840813452600302487433279545055944401985294695562259612439155311613578315883060876724152402376576315836837197157576225662932087035284760472151131095421446370615004450841577835395849585470487766503505356804783457487582928970440400458586301305308078793676675685049935132827726811361856903021381611024399462298578844006703810941688786641255788213333195760948115117717389919665754572702649883561976677549388502320130824008780077385761662432233033892161142398699809784654966643103536175258820192680662106357131657815910694876533491032947192437511209949319424523796565865434888042039273610135954267548056554437908943495400855412229251119168159053628432021831024809568524921430255611897415041576267366712435792963564597317863354234280147420068714101828131118570353067841490000752268570772411970589049647692905072405879771333254277208853140095051131366197649546121599548956502615244380419360893994596684243569490508087570061754476481768886567375588702123393642657519345690088439556212280750746158748466384221263799235995336585684543783120371644543502802572501107538553945172051408022946206082806833274011446601282689811107027411537697888597309592568361110401503003507488865555397567218024325294178844115010509176464647356456747042517410333101882963407862676394086979856873558748320308562761175640973997594508230001693802568849011462418731123235646748100560543021137414785531696157999301237049970290350585759965656081080457633147750673274981558053500160344454783229190645303042256085319847898737893273608290062821370785303633637087962200345744448882477094206248736880745245584017949781569984576039865945342602997175271120048070696298613475325537336586005315002866338804477125466078002890615057193208565585541644845404608517692300071431056776127289499702385085638993597593609193914944510725759956759412978355727178020795771419159649324827181577982014163822189246362110737828052930327400139252078687144473631935369184722030651970858581823302420277493908356702202913968563122325069261210318050000514196758721643225458181933963411622089097851653098219556834542402610281171406140536611648834895436678685927181989901596425311049748330248918373487174362295382422460039682274457284879462996056187496125758338774746795844249714005256699746574152646861738406302918467360319791689502260450644770204602297292890648387188329221922931321799012953590313874466409521785442723406069911123774781608803519369740132180844494476766256033253955504649070734135357445387093457080653121065425366618556851620187223667892142720078693997095772284200420588110545493575348667949430212523050643811815044365986002495084837541204227769129697836354502675869195470660999843438806792008959865323062155998395575248192023585921133126886847043825662489256900478600406146282632488098149825370480667871770050507521596165041829014827334078256986783032997149912871488738051276854829897094309374858848514349145557361625854166565884341456037754062474040089049144674284450129388508283295724977321194587822098441146024767641360468671570009595301466351038895884712742094715921394001867896298535369652253655202078461008882963911121193105530166975222102462161968359364761436428002101838759592659212255750967388090725040860519650733295595882041588534578571509081559650789832878176002577652304394760650537400384560324898062589576612297679160049632182752954955017094664549496056186141652684366890783816189116797161091056387983758423759666605315072551333668799901270651162177741370033692887028967981921378090173558793670558431367982139475150881573340553041816734229236358648681711839072191559864420359726969546664011004160088098622313109005972030121064880014199437239589791327423556723550653174102451929591979403403330454919127727666328809467262696387479833528892357701923513630267346809280368280365524936588517135989272685679962966434078463706909050615420044188312639111446764958093178354543584208735187654372387908656255497924266845268073830826484172103074023606990384353133173358706722130042611063522611316997033485212630310441562509394351396491078194377537861915932691539225596965069514410258495310227243832957946732041258238052908348451978278400093259609765782733320146111795956307230457627315509452967454098370698920820683454713242796784768199549810964164644071865449843970529972796642503213863121881285633988651865050652824594415287494558580472226284575537461616638846098765668069232652538769195013353379538452248455996392265215114267650883652998016629609752419544478844119260444486097005383988685102765173482603422927225711833432556522235117136451781576088235280562541475336343188814405079282946908101848783182915076549159140089592622230657734510552385909236378913040588642251849183691809182952810931727146035019316372021832092294168669376086456507192095780543570681343337531605759381423943099084177856212599850205617375892868659917726859196674067901807037869157743391552603864331782874145584424708479137865476918992598407068881989961625735266253708142762529589370829227342465794248850181533549157554215573799632399071635017163228297374734656027930567849208784863939671089149581670538335392772968274301537907183607477376719165650589716295478686443815488627235144626390391854115249842509275270577316314789923752957843582749897317963046444199828021369346921406087265166398503936902161431386924323320854582225259099857133406106103881298343586278949629060205086551425208655457204599190868870060039236101518490133810166887272237756069425436681292625952092190904965287410268207459532860997003296083571882835427904550371345333127919665057807179609825295270831737270703454732770375522303285702830008766695522893979707874219768224509274861930574820262171510578444957768025180760546820726711206524309658072150605057167329017473012242424919469832947020854768217216564976335755683327270351723344163415181649654998540670976993308590655480583455466047690619221058750822720698615220755293755999856374727881074777655608880683256147929103213068962548197273726443159505544990913610742206172430097931682449940442865877020278806829951630486907226528285054497624312319523642177369233968999704157142038142731779767980772521406602634450656161740787078506410321688061694289853901064558345786177775343947888802758833352918230683720642492493578937722971567613307893994178471331754318352657546448736306014512520521442887328677606891321028790350334720487402288988650517368459487541070312794479763700667403742381113334705888084522594237646507250286942338279992523295033007445599970183204153909280288397113494336277215726854946030661461042230133096473754592267806223709592175647802290605343536903370723664689712500388716023242816234880839009064801162307593336023592038777977996474441898616648404829958975055796533892757077236860326225010071675050266370253195132374293482387515729634345834515338313773757109831073928235925023077514451606624355962029399103136828904015586888931480591854338789022894859744540433302988891740177065130981134841170001777503856965410565626943701910815057852121313568398312455697561031306245047057555611229074403402282360290119580661821633319188701610146539477711441663914934791373134252664544578944152102627114723652991781856771585174992459868167920829421331942852853690906274985634223179547941120641864298481346818190091637596510268136135326930302736139524383405814762553490470699079375275491707580673470558875455294742037974213177064987947046045149347549967026330463215746259589928924337986812073290797056366244583310452787928465921059001230197437799301456358552004058673087979695904049094445014401847645458344991045405171059236473005349255030918986412679038530842723646366421506049109275129427286468561015012336511256329581283918226034039644251847117506245652513111441184079847317988063114719344719499045675608487129443035861025185858520439679250443402345060161879474793595665594358509912753504409548981751469787019122121895837474294188571733947312480571119162664303122889441095576270839909917710395660567083446543495817825080680320690850675496447120381455296805032669437381450621125394456040015901922314135387449414382806962769851253815665947921572247447578583903539337845204462318584672090193500273848011882081264732614973268846914683989973184970427613530077873828240478270348530198980776772137027797960013513163249457126226129838748891012395893623516369254147493062961195974793032485415120652518322924923331093493867635084343350551364219271672044034132259527909814519820749594329971881443890107514364463236792597930268414734286032098507013769225071994490067916428731218022725206096200866665502474686950758350730305015667430191275157572377504603708568226318968713216936007144467981835721619386110867126758687650653998540553704422612625197273887548185295746718141751779829158665359255526207916589694373894547578038475563565493703465520447640197273282385344528052394101612971062197919890462331873961469343545382750804802943245177032019830486147724259860343881479642591569603026513938745805919143643315711521190023562285916110452901388561411471315747878973971931104205220659024907514457421574180142145599072809985189956319903317605363861467698866974248264206143389163120831832530343537325238863656208424044392334192975741969705755572117694168921021981957459487989265708000406826421420264676178253081090260381817112833175344782453941994035979640413133405033421500923522849078269732706253867757570217783995760681696124751797880465551275516634001687626242850269209726773205979537746474397292432602423884163856772775690702362193720928801989450966074126375939478972614805067842224098948984645370918666991106387423289103237848508652761466782435406622795004220752409855595256620499114254802284044040640593851966707424760916808581969163108028160510094809470493547285796578401202190938435493312421502319943362094156431444954379052534747231904235478623029495012311057550239242614342330178719696984966546761646052036743588231900430260864969977620647367175052369178606259360971076969333681853460296797468979331666120433794357273996301561616680159156247284399229136638927120188434983638476166573877020227211986861278501936905941670909843090452916666817680306865894141489695782691979042579604520765790547991467347929526363435953217015238354149559140767245735909606521770691366833010628036563275857733411722624377387973838900851880511087453715735265641025081327975037849507743618104655913405626825260791279372787226028430931029424293496700275326236135507797866561976899750739445164822485067019702381101672113188302543677652936506135891256852318747281718603269714368962383958290703837476856593012335383506342391593056649544036340487015389099742790431494816858458151571816866924794082901553394421563406848973843941471893439807381779924615166945503381283949883002681164082997217875218982152159275562464771118567332802450767558444795039638118108600943408439986017889160875115922010799867351551108139161787485797508400476262003004531107076993017595125125589990539350933570144827414527233632063251219759758065114899901901230128822638926291007189111554412581902327517932690853606053372318962159609834687462075335369038010279104262358333765425934186708963755833887674664705516221837005885724137921122690850385183661153942897794954915018920260681225039212161246113496490224344551199496816884387359082821576820110285974444788687657445844970036397777057209528437418804915996469182475070445930487761917292688699899847002033982508663635121198414100358707579225218092697918556402412802750905940826889604143628742518205617658267975958878800706690330145877501178584045584479952381882564721863066360161188524828556793813326050192655611729768396055434343601234339022160640309479650094202934172562862347016480745761383614484594972329657782171078213930263198110986442907611767898825295941367095385213378433918551628267639336483788680087995952970809348481540871783570974879134459551165925746863910648269572709048007884725894139763501086237705260316588944693127483342737450377475497890630057871112607703195104180787992996906791333166891855364987937101299838937056353791496631331991151282131851955231051478645350819523218666211711888848704941253168734775443091189782480051599005488265149590908158881752294851568370358430847616233259230675163650643580001947383450417336995560729235316749756823522535199659512024253929847847494889390258431795687963822652108220772948757151686497086760154528648404701276197036921035888955837826437909743499340631810172633796679735585045866224146802567452351952100081749570962583486885955460875862731117472019646218598076792357511028471121152571558263180947371421304628756457337070594162985406398273615570950835592528241602126381318940266386154211484529027879942439135360854602379990435218667399371859906430281238476055661583263723194801817260307885285461248531076047411218768155744970596324917197763747677689351599068162940064989803742251881510022128616383946095768288153046181294847863242287268622014540940474126122241232499732433598302469719437050830190934732002675938458170248340527431922109590525520777684894414718555091395390003724252936748182607149058095832642603979942251740426865760549191327262063342775247339410574970150983909772615140694543295668592800336513608356783283006560073085038386398761369900603604420293953380032088177774776730798321164032653856477503156091950269782870090672939866432821704891331264424264191829842054459052089774746859275093611272418172812077356102582800156377622896572334675821829488108456553414697780470270822969919450595432059381518062299021515562526083456649814938649372019345139848113397437715790642153282300405822025965900559783033434987918175028466197621909785801821888916677374306985159520586512485289339328125536434440419025604763455481969454069662875662151781052387630395601825475327908808245045194605248825330344828565223122259477101018277102009996540928544271149517323060723510101987503109067534743780362041614020772037084007875441393667357415083280575652579797726278516836234246486884309369937417676193065699540157767235850386603038218054181304191909717929391451550530898489657919422406053497705844726223307056863458242622840344818144221867948714868980244590292146806633902127975753888421577836940298616001447675333073413576446605722004288179463494988629982657571474007594162255159729104146902186628494076887105713220635594308633035132828613691166364827384954662179101878115007737787109880192543385233832898153581378026660115059704099633735226639214503163741252985770511345208594010631285321412951158970821116199112553341372828356526610371246246811261544206919621693734620720420516334632067810410384971546453029446733849651560200593280615866557906369966824300389574442838653868146576123634106480563111065358101117656786173294086680719897382291663604532199166932337560655147551875141116208262735602240795937488050334208429512082741214868702140514641927946377123596626311420721375145164161936792874238102101710698128571271836848326989152274592864118640180935318941846470066500447011907297060620953219938147904767540297556160800642026702730580240711167776893364795569975303489243781075336822832171864715898757553985180678529185431942003877826956178710817564322114601133317927462477515627241359693987412324116451654246760242191694501571343876393811485676138486457185958614743589028831475503221591449598522794491932587475769424772642977632595447003771215512701412602918087728911250217214786345695480443539771651438635125346266341836674556037676952387432804503927661333019070961799423015056188524735988802251772045316847939125715721048624190592827218192100833284815097626516096745699598868207759965417827289697170916255865334864464435452218517850544342445751322988011484819767703774579240431761861000311807246429854578554745402991439502447711286649799034232303052721074545851960249070248646197190451353684957973832389369130604662934547048626420966554660298637869454316293690417392030076430626990740232346927123433642906203421015392664543885646240252512524099632739407799890313139515677408975777449183035286822678587916827079864136735478400697957758843003274314769032164046544252113497350090253123766139426871501889129942545400817463389799820771110413509911842055142084058417290187393345566372264296009457729226712117049919155332429869872333597450851848694937643745071729855185825458708408932467417599671825936124684574613343760108394665332064826727228507267433880729071163629090299102951877440410752726359850779485396894834407986421018732711095456353123499243257318771258119346812372912980323344972337900674028425830177686291390032647114395292973048650920917131810597608301126311659229300210653001747061386531970761537816722769108035161081904285123977985584714631053863917275573733534376612698589000977002771504849871680923532061360011609536640711678638493155187658081148207908471592226685072734823350499226333515200807697062078327277572813579497427259606855081590070846248964526399981419734331258861331934677854528451772055201836041785753318521328153269923017818387511724303640082403699255656849904612582644173042300749375082140842513540379472706870219370685583889429043339518099583857638953700329913385263043814516263820010583296339248888033313070544148788082297147887103252155036572801736085604531841008074863007552212087296550329159545078829788173392919869463969497584280314849361948594843736140342603574880371521771630458849333654191002809388566373319513104331351578646300977856591303456035043248589595200230642056905204632647416634630739793191333377251685793421359199340058062891184878197810447871264871778656491467194389368984575177265809249406738632597472091620324918211518310427373780975146185772073520189878648069314542578044776268680267113367645952276232666942458294062509198203517086037391911170665564600713546978952780838829230781627370806660394605074563658843715445802143809256494480934846460641830206460865970097117007121452905262374612746573185905864658104797325611019387779906953860940868738654927320266921147014966310044040639013310217865883034507629813515396809746488398110769593919526300921779832968322567528536289041200699209745142077223445748603912051232648816626191044956280712203205155927769334715099190235966642529766998473546748561218611864888675930304306393158002370317907831598383771190381253836208908133306630074763318976910908877397968195655235641834556695420266890620918969958300112977680137836705313686359473640999497099890837903741317265659193314643252662941316984144333516731122479527862399800038077323298987344860431379872171764409662089659996777842600372564371593680454686237634215192789693341718050155527066453372672569571008319286707663231404785927672782857489302045072225791100165248596218282511304185067867057134888354990634325009036799860971872296052082367448583750139897118012864415342641664117055480564939061839991263024986115951409765552007608598281470399006047307957552874493452675578780330954861183377999921779318612589947822051078712078287464717813006986979186433879944737296934304163817869643844367214953822738228114840105795171853332846660292813329737733350869741731252368671239636463492643584751286654710895415706529352532730409838208144320090350467918156093641051515481003943258262401801207742968136359122565380817068006626696709322877907056961178018825856056588608580629896669422431909828988835453725933853933920864366878397664593452809990335181949526768665330541589143071218372235710707103246792719103695101473239706565940496560997488278734765398525724978435685806271455978757860157860205718457091013423858495832799117499541315476124107373150198464800104908565471771049920001706334768366799653107234052839064946960237878230574351615449376289856179383280169814175457113182362006698659719277654204692135506678295233286525890626310132419665020315342862815235190178690637863864527812903342722926410524858165661791066845959799357004203131008781118489863262390157374456530788474397173304888663303081251824717074588194508021520683676834057906504603111619860825120416131251084091890257524646221458439371215594843989937035558204843232502182171050235609362730493284079209910964964717988100845628636548719346262901186855386222862776864802359598947994857761283147117096247269561468231570446845734265775799443087155124344151500590747270559616602541124544187467518779798607447801794654258722562202834352869101853909851971396371960230743450133228314387105063405272593586948865277454841644352743120348246222722708667246162422125679254564109768299202675033014806301114275715153259951072460578149491550129729663717937944866939417499878441231684449723703879045133090007060528144629224317452638756982558953956040106206217903588905500485763081155113468659758786545959318474079704242059378038844822643498755116366321771489094469087873605161352012636486725243347124522769774653981064465585602969977346875568460307215627475282514446853233497536309205250661269007605586852506304621105588017697238146473714933121602306764279215035037248458011284816849592294740471028091361260349949493415661213746929656316313236851633878119430205927978221682137850527339984416674006533362785270556029337229558908049952064144907765505784618198455838575662240171746750247118410010209040997876715517977761972491396134732224210852928657531706871770504962672548508985242099434538405288682988836236303006532066311896561275174578053828190226523421917853364363412453128089818895912782304158503689671892546920545489064234562103473680339695069669367418296405955606392369392978506476423716332515338536476107083017067543003961143074266477730398962126213104008180174993257968721499731800004573885818631635659813193409504377974769355178033381994252461654403337989556244992404859409212506754735800584611825300119258381755895549286477119101553829984155947292735703925593744598830800650615845928636151067565320697582757419949956959189378762872875058465394579585615671709450754144538957444371719487801113729761410064131178727122366642923260087476208444395448259622058715969602352324383475671795607881523376175312689859831986250274846356627441162576076943093944282222899792795351191749446462212677453437671721607245598446096950862975416990071612274563390666754646584396957811858877163051696807062280314291919200840264649990416135572558319558152410335799090421060844222538965599647346802784420330376407856804717324926378523056952522268441698628325737817951217709560904981913988922466556687563843165604841502872879962713231390247418137878473447424927704488774672637761879565689827565196213255914126760322073366271868413147324738194309984814271763596221236937694362397038775653474527577073676940352939506254978868578998349635702460935752364637868379669875565162261943638882742497212767830738490070429508531490466220806781176913146901361255726374671246974279722154858586258706622586806797446697841935452439006466705528107778022317019461731492816576022187756613396611477373035770697214059188996690074717569163605471278053933052703852025282055071908584339008265347414564003352331481477874537889103220702003219405227701628603636048996223048981922064336451784391776751590430302770074510318263360630998834397476287566856942106831747824961117561306101718989066727431586083138443563733656234472409473072445064765155150362024378670129456650406687633209382106352802221045542943773232657063544862938844420846173594538696512514972042593299484638622667251871954372437158574706992597849342870524146810232989739020774132307097197048089590496002458326283294454661084199274845367163336165427632648326171987118860310933194391096013501473014898865786932589432616453510132195999129636380876199206269597771690746970693781384821005359940838048924928658786021519558744773481898307647646688076435632305538492059445572183797387998184685486847401551752043563094543789708915255927036064538605122453282442022261890358089525591254941223218997847078807293449817589109482913520281776289868776075949848673134663995978698120194417794854792317117708450521788871052485614836111954111721478568263056645882960064619015146217683479791295489452393220093861257045895041370683097537127446301863749714797692640652829593679526948465481567797019954660442361226165423175111684686630677843647891361973264459391152297590891225277629588265473625485663369923893520109741948645449149309142793800995429662212477529225815045481965663546650417558680799401987675110458540219903412455607877543432660535341467892035400870106966131163236439475837528747164451350188485941445118656844547921594263536022008074356767826965957596311874252924163006824505275589257443038963186881805031574920887076060714264931870160456938170603056190347902113167321885090535671068237977402802125018539471277860024061609512647557128954665582791712634599729863109267492359582333594820011633213205406447836620352010737903341544935518765428045182881387782667075405638488426773961352619416686988053570096007731444527028370620197037435851476154414950957305021073798519544575499471070796866460665002120893677677591510979674235714332400872497523055192173603390669716969017456827925337361701180796799891868009191431990022231910873217372706148410444419023146505918285559486000985952833380310673197518910147144074923702352559458770566401034859670983644110469798939506430844463770842172906799433910422925979585022379435919618438675612319813130302971071964191423215125448617348502038761829180919409360619934126887045010649542821393113215103892583572105306177349844681350915041684188864098298278063422864584906746333649356377710779786695088501381688190866428304234354066130232006126292596773037071275902422411608143460121351443344075515819459455785498981913074782873013924155465685966869970072296130162200830479018471214474347092481023628996829592856305589884075785282116812509089601867155509058264190339134588684592849659997439534521762895945852015306610545670839747709335291102129064164358262081602944265051002188783945873770010057126062663778689534238547666758374619232329304030524806226927166211917210281883528058872709468131690420714623159414413043505525476612414320044642474275435114381631924279811856530064663500009196041011980298760482363122870946130976198026539780070963740893163924317585382981760575701683186909788512383623340380859233109980148997969525261786815151609914924923593577451756354855670438378810965690087050934600580469385271998508827035950300128641758299577535135261274729097428084996163817245684402614229482400538721293817068642407088971884834077029746231654442577015968548507437800088923708661482454216676852893294614918446426398236175697951960723047412523610764713434586538842502619024456924494884564013653596597059604788181493350440859564108009391250745443513198027723046668176810656855762421074688984373346251747729146155956080345578528781516620759455318212537131325880082457578181920611292067937834516752468773197961813591162141830606845353050234750883609420138626196033419644655375267929959203269320833092175371750050579806719210756390045578733874657560542318085012220867694097701083337624350384856444218247544600226488801512597357505874478160158981024442885306051049375599502032246743125337749156525865925627705274507490702308383077565001493281806616751316431504460074732437606575041797769872784775837498278811778418071121903764931681438437230632858419177105280513349974022330580637788710690517845941973001839181754858522826586113736271593645567903759752131824266280249464387940560146801048287629960528215291207647024182420947955959480987484327026883647692366185492011169425403202757124167937520619068087663102396910187345621416330640884076938119788492507713824410914515709813980678289600889419747518536870725008566472345706790989659993614112283195764633224249458382606396885597332843714546648539137229758493391671412933746013860435764451889172391211942603122646355384221241272967650108657806441450844480264753346665791580371912201461260795450774397808182992514758927373533224880179041073561718946170371636927887103075404058284607337300102952139381784300547077422883799854071205997270803981780330983115934750450053524674894370519693713472954381796457788837610471881315132845053939989038207510672028851822503928673517984848734605851918688996328243387047872321820290321825795814751711196510505553156576008289056044932700406911968264651046684675232707563094431643670886289749320864750890675233090643900233967617567198884912790850255552452473579999294500370079053833731859672640057490067432588269473349877191101509840613674472054905162452531990211401445724446027518948847040800620503132728228223050445784236218820514379587423767311561774705665283511808431717850482816134565501814528397263972272157606186691901905379664425175950429510161735956089673094486350474389860703901305724749917754449928810840921277360484962935277613236184677715467136229638301914248733688899713666135275672548452286379107641788410176794842225278028695802492849464389311514870871405576901013525403916922498533295712504143127765347092374603460231447969892129684248282063479040122656092522514515808688587786174854579878444762625609657762176497480073968614801457707854383069763107053526457764213653652665239667389983751231636190993437441409985147399397964922295915091666929127306673277902792217195252244797249878850323098505323704207898363743282103532154875249756813894227805356923269082883608542734239782633755699002829540082143404369574952371644492533169667200869943867990959163893583268199590394051351588968053428276059871113053108211522028142712896970769573848848167358854983069735724995750669438384177101841241240717750404385876532147008366235749413581635515826400608288155153382132655865592665127910562848253062666819878736506104049245166096031905179767785854814356431435050792680018444211872044779379278309140410830863602765278530930380171763384111985259907520598870724195179491098927156335940292859004597365578230769230635129541056172022284513401768897225973393936965512605974721702111864579082318769219971062241848372380872726774402865055650355795863764437526930375706104098835466867294762343597425737842999973867917565998252019440869672980771955687548175163660226691066710413529590653011816584009896526041044863597100470566597039520316527592555579744327689890266557819982085248007568318397445812805468491968826437620636986520288991169968018734947679288565515092171504802581846154394689586447899464291603758629278536025205102400375659289571848150945842536081032708494218688200528139635900847953742447326929701280833360944573029688284329863211229583047926135801852926034187013510706762504627914200562619757223361746603060958032604227094635506382111736034333702597220942936189243254820450710481050001066765305040688689556348279971068789129695406993300543500962596507904862403524575028026385663514284756951522704000195502548261621607819708076947301893547456191920308459336849184618601834136902859518543223252627746073766819286434832469728957633345416275916170760029687478457224101753150611790687393280727021987111964074002552732904483130229054863167489072761413891849582332587386170317412480066361988017474643481596230631653074316968542299353752870851307274909522341956285775211415507274265470568312732517489543762100041056733531551996850430562476620146868733371726873435162109570918613971792995270602939941744263019982052540528206464043545896799978700467819679933375469445531079863718881702411684731602615183844657599337239305468115608282739940324980015691467162210354361511161337228624843834350135101546398307826970580244647746090877031963195612987331283612005730014708056339657900520860089175034842389527738716978771267071745327999264196389776340525779001428596528732129128502452222043017967614165715863089283149926454367341329317984234103954408582469858268742114207652747370702340963264183364481571670817894850627252814304483977591056222337957359206282064005226073414447265234111538941330036302628260014404437599296838095454998217930357476216776475437785586140887191080429713944867844548695165828648108277158024835770466668650099509878124413826649913843556301882875362235788201182618143922878686294241555455387824303787961286572964995524944480511384298142419303461364537067238563853195438925867335533859899211030371474390203798789093469025182625568432873376950357423819156770794358432651211672056656373919618251736897023347013362023123877090646214374787716227802626145856019151600454638182709605848520256268139579967429475523261937676256117537733411466973785196460420259655668103521133621073333295625859494277157400122055713662419426998245703813720043679607732499856686627982800194107968715703117283228047349914649834483170696380569740392222561479174764742761433537792298881861190013914898411376351335533121007997609129113383510788237815064289261593605863551482080710828163561277534233353899833338172926166112594711085488659655766867411755126317330594618647613136867533513319781677613397766493412580999122105710010432872372015014248375305446036913021337088007479062625444591654442309607313638016438469048415325883978541406124034371240892675497346430998248722706391399993461975007775713382435340090906955818419610159354796048012926720947440293802209045457163754512161487608363895145880710090619863243372346455619351064886861159011435204405256877520245965197360982766105623382663110331156917669433946640956674844243341701896265333662702279270981968448946921113257430983060386558370182562799051380179200600530799537410295172584058236491781672112198999375266430200590662436035833184149603345159112405617208818657702496366526295734261748447452744973083514918807997894548917757476635989313876555144858394054139591524946212474145769964417018246708712188951770547365098342335835930368677594473165250150376067021433023674257117215287177835093656465961647080912932780962576140161934086279191182054645970257902499193919126651321458793450257432518556505657266525941343198089414205318857389005156098331871184328856351261093113388088755873405509488343970026059866394564532901106199870395201331324055710030684430283481894567669357548365224055477173186245468078921698597814117836753147971419822791450527149804191275240537016813092335941733465114582773577316478735641330739778039874241422653527210829310029883103576497671128034082778867062916665796314049360971646117090280963583369083955023878897708895558396352446325431925899784460418261975476706041376204055974765258329832813579228152540577901990255077400929152513519638004397685763530467247882710371409312606555937169344063805557499924277310384761433750213640989957390748667061244317046766642432886669399849006253567173633250945939967193970201550970810776347871589970276791790767226492526713530513058103629506144082783941224014011995544280114578096861451506398500812253843175856980937322557299567672524268313239078421269620304993845721523028968756399135075198433151423202521501012294273723634421455550949363235925923737065083079495180206325922178360504895957211843267334514830742588841425153555227391356361057463294142768438280928538425303862445372665498528041973638040812667955433222124184924179259938436967928402936575007454043054679858337946284321736531712672328562850379423783787399928855577053790627943225045829039305861857979560664895846090860351672487233790359989781939822980517866664934487028493473518488522943178787457032531946619256969441259500574759413341897739295544878387142622155444453401154372673342627604093546343662040485625670592641071157485925425271088030602039116775419763951326442253443020723546867422657397779967155213137669037536503821073907735438146504077955008535500432258934214470830773975226910779983972948110489377806436651395960825775622780543429519466020712047463282611357511502441330879836636855560237484662237714859448555281117148143561879877953305723669951435894415919278103102430609271292878328415419855408287806020653823938025566001678521287792375191905900690563144194684417855064367765086561369075093656309702480318626754288122609179043776285657054738671330002778253848506613128239715569276128685196933187233504559428358197972028147016783575642171381068205069422353996035731283865713613100145108392048222623334441908879234779664558758328198384168802401723159188489748258646937079692603073256192323603393928528290728433317349058886453356296538787566191486946455099002449814953589043400999250533837238940885320615268521088486824007315213266107261347468615112315228931756061511277875531871669045419242663024633457417030119325993353500987155224054355600239979870937694115955220541834415553111483364011347699164950574015022793950975043257312402870776683902596933868977238218241395801947802930508409996634776669104867718559420759680856081311334443292730346378029683684396779934469178412270643715187132885130457653463311573207230294607326232246639684484393719173076195478506411595466853498318180501408257689934868603481191549654167088702254003236595812265623561624124029366582664807878698418086468977722811809272942074912188553762782781549975158116407492978201182008782856564740995987826255347935759300569774490335045128392233395157589143128776824938925572835827760351460055774403245022621696094175006283547890562219530256412199964353740538912558944659123060945568274592859895643488956274577015186137217117396914607004492766691100812756352642551892418234265953619759373603141335147931089656843046715048625787059777135591800573339268901109792771373984967503350630916301368630391697006559273169348737635913490717149530955557501222067448200875546701911666422770186449646044901612441381639176946823889424889264152452305984733608487980737443220744134485412393767075942772593633932902866370686840020631888028513518173252996145683508478774558441824636857630466399868076280515314392696918099370116498240855853424245523814352731301314384637827755127240029438871447998117421962853462380181320468207537110030906908231344076067291678677318578405890602909453947793084715126211742899592035331414482398185654983921479400703010777479371879158031401143453474280149956189678523562125132485437242593151038374303035273729543964486021239006634630082772198968958674969000184907242530933409395404069838058555448637620886117951346096454760619834761711439135186955229332880418956207125326994145459608233659113665789268259582327309884980256980053760742316189442693163151748643496616871798141464290410735679742693960416993035257706174825976415903302018616664950994436759356912012900783146942366599533069634170021526355986441026144591224342180143391368745599794777798072637665718661293074149053037980225321257401977166924955184161195371758280310253355593422829778372868055763015608724342924469833781485522879698665130597398335389604041801161077688274346996388023267043023523585677322685485055764328903987115055549085142545163492352945111211157994417340662229636391061101732093356709348309263395058876039844372405967357145774021234120091897890385692266920622323256898982547827461617873964693035031054933727199383089579058697949912422438039082952882486515930709720799402630448205904881875116346097071175710099769398348351577694093977165080866316023356909901727401040458825736605263950536073169464960883660244213032344359663985210902404449362596121550490712546250367822380945036216501743897018199355167294536912790611894917202642819211078941928438894169860893129352050651375180480220852380067629938772725663150508652360402998480575522685408037503883176009686008539381401644968713857362752857559779021337724683441480113121495830810504419218438531439349982914112051804557716823839082176772236763171194759583634759210670883086279701259771154304510684955218925244374716110526527492986332031416391746578258293769002920535383131000809203344251974022314079611850581928086904096006050821554360556020574190875895364185900094993937099310054133394620813091522073032409362269498549850936784466449532267885233806795118488518976145555780042510935582565179191875923595101674734778884362653174858806489769708138691612940918980901408731259823423301289291739515454121736673208159587772330417811449260052846263508129230145240057400688228768850646725306091803350649754229559698803739336033139322501939313585032219211130280215175753424744496922496375595040677645164963906482247772503446459826283839070159563984650985978265862171138161730364968861394807309923694746832131344207199285868626227799541471526317681937588054442725873249285117116700149623135433465866878648747541150824306284163350373040563778595798171380214017774567910389175238038677331897809353811758014902268110347209241960934795887651073818603113724388073744793971846049795611439244456928847692407971743817325220059819210839552596132779257785874935437560048664699572194046139141324237151415976998826458543313360446833757387715764912485019221425478662465650628206000709212697594502150841964003017301544141277224660981308625225712276927197090195425405614031656843082779108548367051369102860948011893393232951822877031681962735409535241021548606657083136508669630875062932982943261479763555056281565250399788154619846032525364913166265049032837917724167310480613199717041891290664171856866386367359531851580307369952410856931740790994019064334453348293089284118791730922012279125745052767511658902902047426675481435443695710115791080139430525869642036563922997603406182477806110492535148281121361650759824948773947204651236808412584149751677370979342921493586539676732238295192275335366427328665090534884865319362147472674887064063921818349544044856632420364889000462800181356613414944436018936758851196199248279800657770587944878764349166682888502708438967026445491546689288525608867769927052284490925367896404525416321102727960310690131526896957849019044647212045833434900321283026674729163725992760847636793091493566936628088113202478374746578423106999329778399789929340321712244772818132585058559203622015911121053017878117264578629128704093093211295539419878242707781265792981198174634926262996469016789176792179753765140084585528328935402714639384169295000872140159956934956603978323190135832702323263391125964706734014514289704962407578923089873545290023034532073805442528326938956786734640836203876478660189371849126535279573776352449960567662428847351113267237842775190558783371400209215737698929759830830743921351890960315702011782325859742430286674504531193562010059810096272168223116470850799765812519636744750332600371663417515078919284156951800871812887347697836719690539251984559879509892211903839123352382210414872285337816963437226441565947138478120095199146163216443558633697683860494642146679780327712684017048997503228280545806559602370843107649240314841481955978067701907867622226430711056243008368614317473281370775747597524909024268721191214990241776482524876767653930144550844482083250914971571796926839324738381502814284039734885480988024995276043668483311182861947576303111870827334108852179225113234602049193976819014780934214461832446302955338643737799215583798860822091954607317297104005457195768365625924805198543861207537173661546132854073476625863997280985149533837892448127149746325975732560676431893305999183399991478000968935785797175342772210070014027093462691990985475451442545184854342572089681822523902361546560830922460341715433099405433471074222924453928476974815125141370558976217078779464686148111719301189320820940313863683771185756728743459954459704871407369459977210152137166095747610305856962962397453385941367247605486754618031509966636513595079898930365386152764593608988678029126206081296587651734545099263145409851212001833926409888972160000291668345286518044801067684118565755506153118227357401245590610864166738924937016953364501347443944489031200292979509062771019307270697881718805086838429253922378830329940803477562669751861682786345526034130811978027154043747335346802284102569408889543342939256640725324572252216017044744120897166528900026037956184592659911094046158496430780323618236300127468732450740733459709513398830432302962765114093955192867416721221323424513786499897263611138464171893590344329362461981796032769093500222253917630383787637166314282356655622702281063079333616848284943492293583050472056361441946009730928293960471003028991573113953694977715591572246087994986816185377842081113181723226652117561235588371081821918451949871549693229420341600250897125515745866554476473083826563489312997483930439402194419090697532759525210569060522631878053343121312187583737137840661070588995003151059093574465801512474794478821551896559555861015382995892153200507395612264942525301636267280078490031887569126855865097427749240665241122289037218960971801837932539599355484186611791278773239770252258727943084813900640861931040849858368680655339856854885741089164750759708793909442484142530827024164662627477951922900582042811952604285757230251229441103663114943273072158525866488117986851936965487680809693586441709731268164907278610042708618526493145506246636629831050007267314724951546242908891222408149801994544068278603500821366491965661118142278823199975176728749211651858212143697285154926354383957749806740638197153599099533191790451923176628765445987113390434991779479600002752090262117488465355588630567667127881535309638790869830129061436718025759125406923695145049557869757618713132060920399680124103760265007999371154774965389510308408578820966348079832580919823824559744151473149432810055138197815807034724373192493749796942460525004229830040709168842389073066585156251257710438712886479240521523396880169193365264869113342214686250324069811913914880252013502284292873773861698107671106643956806387586105857135771119750428641062052588194029085543589264203101718320102518930364508124683471287621099570263951945940672256177718109135444525835581267145755057855590402047755386656158283049575862556361868509585759672949233782150997262366430755919310192353150516856748169962734767366494377708023654035786779191717961320271785018065758860233181166133531959205399918066258878923050437120045174140805232154940915937815866364749508858540763735243793080344333326689954166091322982201484230482516484899801357248614056503536460629330942707132551070624585537699465164436020869749714573820630773435324252008751779160756312505123259794444746663093802579901600436347779104560861161328540013031063739258083998149302241552424291573081808389948208484222353094245897486258149115760257490883590951326690689617848267975069097742296373293997985554930066461464762403480971666254848880973958710994635725583971370899393924215366636850719430663031727349104070051978353673065861809934372752138123341194823899508879857943936134867294945139297554415773701939360337257749734454629683425908012415659842759858316181462614214293210069872303066334289758356452919170543581672378022584085955608647539640837134687185084425036123602191324206345408152026710226927153786850938944216563230745682271706650902067236071538658556952514234255662490544148181746977001171556403090543678417806393656716662324347651201516201535883695155526258539847727547034859110170934499855699520979471405998842791046837943303749373051170148953828059587183419208215285806284793925133052504633441375775736629826915369594335078262327758228776974878916248164545058093008516291672323005179984412281888258759506647073050953771552088275202021781354602812272942190432040977655512409868807018506245873311778960264521026666366152673107700470186355644728558937231458980456703559357061437434979392131663937439773698615029493390481538684103305766561770194649937734008071575862022683847605616564242134891584924615426217471618718543017610281603057604183182446887119277563808918519609163391872269984852123895256327539029342600972872144164604723244564927733972051770377698781597986383254552430968345356505608619400876410125666404064406426659283606286282906821646303516394058172882780017720409954944726505391339979129111503500723394191223788163431367986565619547498417062267937311391492837998095296377245692623797340583372699100370526527213252881393027355575941986564122828461133875098148159743826804191900045480705211802750905234267975150360205779407574619394378607452416183746188676769292821126931114133519700282430541485461280224152896075295249176096719402393451089941539231593920761316591553749594352177957604214895347063092795524459795676797871671641725248603753483342403424972890821863025698830420465509469694689833000198091950201159144995293481573525134006020207531892418713533461792178591148786492831888248187274137838082215819105179286602591236832023617133006729335973772504328962986619196018814294783539415655611407680950830880634666064150465579722387189482533949278399589534877572073680537285498931316065717837136187094942045624369288750053489525471389046964068684914596244846130823849283657280192183029838217669976573410414602421665230713262767350214992659972993389138597374908972275179348367639823837196831373013953875021228427635688835309165367355287891164619612526564184164611778216318341179067326405881323120127103425247843881204428592794725450657630650443560655377107510916792212601281134496133163543535594162107838266463687825596486278463477692702263400402369745882982831976957602466418575826120571650313062764724041554325666775175269086724151150693185146354148498029475011152095890394004304884985486640638302780079850868494356792101065941017834355170115884265672114402283184181979344317549223962782956961463003006984054420153559758880854324073508774525459765682597473719970370759795740656943506293597460122712091652120587799284825078031004892552839774224402018291264262145078137032418018981144611988251573174209549811629594430535048791879634331804053218682790439641565430137195814827077527581346356386656197519230534683012084216492922260813907982127291566640142142472154221027367295705008617570621184785741957114460241334159120668341608321947032420688101182340172285029374089481390273565174889425898035171577152457340734572800095873772229357176396539013762790492582900251702245244157925641188624226740192212070678977825731032820827129914653996994613737532090873105073180792572797305787879805340401804827246150682832674153980505823527724595982427700110231548478139328251142485433959363661579198868115369855387573112492721881466254280088194505656610148585422147936264834674901471660792049326347565948073272086151564606676802682573243404229475926077788480649779039686061586087383406777815558195478116971048485505655192637894181204305458049298557632190020219494198119220435347398430173886375945818100333386299735001491543170868214124754972610327560594733105547124587497889164493547608244472393188654168830090611780535401731216820043230967670132271991993275610184108692390339819813097748769309987908032111134992722290192816715655123819982836383033005453206162139104418625275456072190868172630317815779393689358999909808363205728190247158815518049877118865153037724327271910727077361441339829301015405713267118210820007818250158452818837451799768564484550084159674719423147364913900418028946815666911409081145555586489995848800060246896489274490932688279881016569427362750028677084384023191169580482261054313243573550238510343827982998969217172653385666220126923815753742061597842721822946401998780095361209823013446419064796232079394588917988838527534799021567947856054833152301528782011360660112846939433696322077228066358527018216808121992974296309444084609547846146124439047154296790265351427914445008636594499607993206611798340102883314422890709316504382787370970154966295467241885215655935930496324239272505611842582126877377019798062431785761579935373619296986937741062617403661617118517747138307389935411784486064380681900991915303526080023429548027640863442512428337154150530094392150697799349376914741034982732983038474703965837257774010950311191838904852151122610738578968836756484577683956770410304131505459156273612232664903677448065008676007445698939376378900050240362007590533202447364004694683428451135720592828477405979728359639982524910215488653980474318154309972161495182667327188331285126752083849058064745957230854757359743184843265559753754999752502512404819056063047491528160981590064183307100321650787152803343388568166913821226778404168441517542284844206511653805523598095082389735295139105923687273841293930245512381243378155726021676615024538485324212222908168136043755845813028160039040582776770859990987529415123161823848512399915775923277539381965448531185638013902297426267841638885036076068453060711124128819780700973098974251695172893582407365550781071822600331742055785946326422484166418279188567179266238831857767343583461665289135947672297790507486270261995809464427273263912222920964486622909393311989479266446074092114973308900342251702426314972406787142495993036356835338727759344274574889779390667880715666235793938442794420605936425329847602367725572281812149482620561778388812616772579531701108129165011117947166273008830461758597485905412789947481478924937882901654187995919504462140091462678857343359531080008543347473987479117323654587755380417700832357687047212703037800945336752376760248958643758812346257174567155534754479824823869551498040056646643622032331679106297839583349574419906496700440159420175423828698456778906408813188795801864916614365240828598016715396673672099313648343183057133523587650982673626088410924185267934722630727219864965824864267154794852784697930825717721846471656172606232918516536934765551152795296998642395278711061603220253775105168016966958927193963503821987046349363775906156337696299565292577357192928006099029604152036352333767742880611915599552795837286748355692677338704798775728510127389897680565687831072280492216855138707728531602727097495906519518729625851757809625975379985240865943054241279995299491423525031319466253989339625866374174763717304367050949780369261380026884188561256994685644409048073837735102144881406051267178220421846096667417490286857566152531635401453073690758647397011952156157090870112392664763760583710047042395547761715310928722796804576493359308117235242343817458949732716860457820855234025094058704146129997000031090469936244881793793546495260125868547708080882918744489756539029975746650236065617376389607390869183271995107512098410445423649195138722646091762323203286045485721624028447019492294120824784443441123187789765537939589767412100554616917516622232494486466848803594129658584852980249091758059779065375086553102674866127083538723172014334699025479820033404684834777942006524709068534533844184826737088793946927054684873088518267679692692945001197986228134814536725284234623059251639178534185196902813123335556756765081049757872513081057865990871795237084581607893839900607481941753290724662287664320798638661082834827971555777012796871422318346231035423137342146525531879039264153479708414296354082297309129300738696001286695820204468973846459463639225943759866171660400754652465684085815468567980317777676836150178567101134598543273332104052709866329959678622884350355934582958250295866858688512395137315018211053956138960163966413313220453985561406253792831121399489051229936687204556889267581490263309525566853530037803442375720860634476989152551905935075554573782712618669361044917090142897977625732431694061835318205742496538799303015065972642313592846356814950645507066234795355269757630674590178361961666307124863660946352162755217161496081385821174913460740682071874639330287890265049713183812941828393350895404224039105805277043389621927467651917085146324158712615455068846599650489133442539397885225553242505543649469900152765238405594128924530453967017401107402261111209958887030864766552211885308791350285764505172814752813424062621541757747084627187905368045645699215629200203413401258820261771834820796809278434217747015409992076955432448545390003291631236303251181624786415674815685065819287489506823740150523782002794538419241482362277696628639210867316510897929220663915443855321893704081125403940961036641704247389967499154430651003462656569819479575885539077864139514889381975532691658861422687117311643930502918722356736479699305569096802208844821173000027209163561182291032168807973447809817637959584634231036782745705073162089357159890310055332594089911330111945472390215845826457722327589553009669577034553503559538565456042265379185499323701349997339859363184951927427900356558619147850816848250174603127907889831101642638897367943442251728149037715668006090625444354819575031537259980154624399004039035943162504909119246720789454386744616872607734814019686638489102926531716804303825923190181408573646863453023258761952243202836505380361954029603228639788181411548312664495469887142981305788392738537227297924801466963006641681427483253234175186746732979113221013486205760999515066657881357582238701205503278188149776320024145996395376646305832307291576810996490544223599692868680857078332968093570406965694714672486614856576563790585466051532960470876386401059116209538297557133676932195504394124825731246065467714659926796072184625658859293744817415759515965124343776824912202921271681414758128321452092073840412023798601245457053061220145646438078925519854192992185494437862604905726407343191053861930709560023905008168618008235470744296436986651666456508871860844345165689193836488564685070255825801630848370257762791436669047616981157406347645226462796220631360036864722114235832361391032294782705836796511155783151305719684315212020565223268568373181330530359595824446891637033992238695969318831784823083412454995483025946672154030265496264979245211016944908763273878722928133935922416527151205654709180263645863244926324891453050211218195372022659187801269461343005597184070804366398099628489482971134751878921635159636680006176211178705837355162044404428829648986451153320791760908191729525851301634025569705805880936324375777092753672646465243413404456656289099385276139877449456627346621126987670633016010722574338580975516644028904043135166618578250001651734085061539936339714261732162775182362827175075770959677583961290786427791716378239874103034881704307995436057072728009579473782511238135815175306637728113192397524602057022028270134015748100999447816032461695674154739517714999686867129780890642154036586380157831458551425744287341525123565154680287914946655311281018960239737904787252229892968447921545192426083636359393927691733079770997260160217787716644556694519842661179938259232426363029941172836031254842335858003512570193625054941834346673714746123819310490797773228858658934303776644466011529390166103795311429235266140679908730945165427668385941704020596721759355450805649174557172071208800479341709327092144799621117915716693372713916463156388301877005038917281794675654325023463804626119430041495750811690049708436253332831760421531873416299210755230730540641405591360099409910979889978962318902592108866318399578042637649195742441498449985089538997775933821133942682621594887215216547322906805156565365951827750221938933909797664375335352277099114401441347531569119994388560552423484505357211432588318547881360321865710991944610383357556158183695467895692368406842257279856892760484294971945220587731534982826242343298937806606236637935479007666089028464928415623981734815864292487576863168982253961391592413596718785799345730231951142665674571388180053313118573623090117341453385873100062794857547394548043060318506959205795005080197075094940722414715653863923700111259086443543614238181722188666377514760900536873847441468883354297333117290996683125196499570233708973320001089082311735359624828546525102476201107413250804663955094144648769702161078808759108139709847798668827218791531320898969906770640339187282784907579998034560174902209381303040575737650353207281673741311058945750910514617923560487455458072727373792917312144964007479393433548827622162333565126932807357220146948927683767664598520593526119558709405954277923081979718054204226151242491953224532068896920803282674205170842316909635212765753844740311328151344277938694567561413595540170954364916198975699642724870553714488056300058886549001767061715902767950762269461756952566011290135147342361649691506042068217151440320487898533962074683364510305799398713326995467985773843205037331102661989532117954507869677147435260407431613466104117059971934668218003486109096539674418696718481954927962819354401640878448220513019596924703715728955024848540176780385490044829404380776704321547932687350018664291502308382159344295819807908781009944650615166226461907962277401052126483689166818202996692929811856563636624224969821575199147714545789726906324175849858868691480383526749403369448152605142759395561258647515288038199021332100234415627288860383021247538355580083217839634116158869467400813452246616077015745284326229748670703512176535302052270436383435732700702971183135122517833590111530965678311090653336646447815860708133096871042866863555281704973120012366076395956009420379496141108036656721272594902516160786108880358315257841779240183054577965203942736719106350510597030894245460199849903395690531215430339868151312883920352473721806797367802907150514097539939376090591918043986944232917604410230614609520324970946243007924228934176417367345139218244600408203347802262184199754451984462508945574377303909967871028823277377198722862505345712704979758339593714108692842791509400367716307247143901396726027839300673606563457680470593181760799704615506719330198864869882948591055817516701581562744085394574450292204337515194656120712665695497374428965429997823507503811142541027664521265346657075526489573533902139190130584069698212476772585883688460577439254072639886303710182083750605641146401035941101181379875173189135206125583678273670215410488478567960539871484249614852932109463470698024772663927388030214244197749330173516249074299501931637446828501106769366414738450569427726845256283333623408442415085161043095025272893427037966249380527029300070157569380867424842951703388091595288686978356302562023115338882526094880311984911694120676166305403676629199400383887135107155013477509749243062385025066827407305081273837196885557176978336879181889525020492313625319100069710587457243512887663888563933070196641803473651570071361927059626986974358261592863323840745303658371334919896166806280107829834274051780382097370269059552146238231682721056053957903062723537466808940285649294386920585586788925513948168680572838695999096719076156600511414710718986764785123294252529582044670287671459186679823270925165165583209930625497138486855245985033162708367059003479817008420257853126180350370055828888959671707412403869593969491045042105221321428874272468906889267408214183215838311262632011637283858050506232519700817466110921628548714922720079492385978686440239933666543566859568554318941031707168673804847366570827179127215247445996076755327975141603277959640134255117232307267704565257353385057154545985963822302375246338879278249345008999204499693244108272377724155835881627481432039546979396389057794439121353015907312692808719954081458948648629438158178362504023943457340735948821283221345622878105890448975535142070601150664338131601066858152260566285302404783011307848913388702527534282196441400775338913142725552757429733966981495376986237975030457845673703668001384611528421266920803516396856075893230173499794628840030016434387177994961198808135307786014650668425690826723634260893561787949043723316618694717192056954976564536673636809852487714982310642911990142543633132581215236189976022124127074840154852416686725063753131432502885217389006521139950435441443816662211638844103665250072127212644696022624024420583613461150915677741098406087567079345865115630359991505959485115124471801781178929588976396008713422743323656011539993362440997999548494427484690225112300516419747044517355886461256208108675693430430172502978004379888756247131264015756748920738451050502300799249669758834690652278237388797894453428778845327262290606844569897942843050409759557569809947248320020937418164059526136695500447498788516036091203595277889290347637664066971956732875629390152794495140098015307336354653368572909585454412223477989544597853636465310786480063554673229953632070261905564879435283446877863159305398217971156268431510028214683614658055787431993440223894193963872306275078605427884232416993490882643546245422299878218331745828173810270939744281587286618106774437754841011872277391380100073070194322494501382917653422359160371188621013596809144649416642604191744116301019484412143173447146777721580734054451133743154147330362126201523943583797624672348936728105231408286769076865857606041032697351122359025914939993000664122765387989727601476206111037531197440235542504171689508830727810845041573243403293878965246979101250774593720864525990910102296743920823360342079870187582154916446015973716244367039512490334804097943498236278285338011283536047641046680504094718052291657162125260192116122875354354849340677238689325330927495262469119376212973720226321961354058765410778201452662792580794070319263519545615139028266650672905195829989123496693990497415816868124208325287159388846237075517914029397229239038756897939819314827681684682358977381357206189912703055123327335376236977346022407753287138553034841253423676101917722425956877870685207652467970074489021514749167381337959782156800564247299346481287690362542407955764305913176415327761195850640145509715924407656529747235071961373146310042949535669455349564935435562047883870073103536916083395918686901964578335459794474933142773362860711337530621242420796991964733512339225129183019744527706186721251440458003539545505814651285434587880798862547467052900222713259907496306051690294499629232245102969889613594832687752958082953452558856288095648084693791515507241352924835432751410005154228043551055538731151323777829077711161135434537605998231634419729947737135180499724451231017258443019296824642306012275175943858287979497619101913544547953947330054450376118455695301713515567177064440293868532420516153765964862960561588719750538808221124935175601119182107286311235224237936574202193342322639023457507367239070336195789225312055826816722961230327061586263057124590882340939346910600354527439301577671336498525431928499357086313693958593530382009845184503367033259294476102005876347069971681224159846045734313549161282282223340298039283288758455048467878803817544215450514374622877044146416289499260721899354075020128095935766057987165673558450452843691645227906847711677449718866967791177723159508002564818543252610588642471419853602613768325098311745088511030978429620768283699128601546432521283278195747959474535755343288187393535835998571320083815266301695796614456926716597424942754414356618703873242965697890117293001465452062164333912456484064662937968632110350140470314720530336477752248367747720922197568536121477251282516255426318000590872433093062748697899150861499130108935488114916382354749481815691631366952842162020612682452788526239684739169285363652160832144958564255352794463603454196346729082114273628784810204074500316810420151651764506813216647530817896689791067651937327162633498926957815586706389031858333512504028595760100994322445895590394663243524137311786627722098975256838317791390904627187326644084377635987270025223063504574116193618291458836980355706804121075610259006839632162577055933934149192220515837965419152134616571745761011291061810138547900926286924089008797950076949876734236833818631896893673255019845527011806939524192154345775849694335950160679299911967758288970920349960011212051735464731287172984172484947319981530538672353900096069109900364293615567062249977866573919423577041144936713246106130603221273181083600872416962692297255833727363704483454925790406683219963970568252497004387577554843611499235353325755528709438435159051828338428474969355978021993017419140269688691677237323641356627823460361250166159578680515345944103637440725903532210534111808769001347069498548382739358927322360402452044275122733108045917989937416947090905189581168625612542187609843146911386632126903451590351199169136448735921531258977143619984359472789633957530129971137626834508802907322788153069045707289767819675319961742716544236246152320310220313926599607598685639517357601917155276750819501355991140203113764666398319819917408271034361206911334839311549953916584791197881609621208004876301204395812206426903420295305885813180777751084512379933653512735179380503502079231945886162577780905966150655568594771406894784901406036921454379767692603723088468383890523819206940497205044393119414458741439075170053418561506533627835870783086856554268295909838591516122607501652771229819963470454428612222819567864367527722651405336604126876283299898573136672294808909795781921430554452189120953090411538681441559856909379802185840941485445362930060668821871566854540411330317862595933149512416758357131069274160124094157316411122673713750067294318979094239833941484709844084583269871433037716632760440225618628145239737411124170817177327614845241700748852141968256270523026861506659233334520858835513840637065101538659436499762515531890653527251015810115119712662237441547011667463434605336854011139817400276480251936673489544461783690380706437502979529628610358473050198984675277637890357658330760946267479439535857854352751405288463896406234117537283090445751184349440168609887876617633539898476077137635844722134879115738476583551026613104408118273088368228742408686091345536375190658315686248778265618778973747829948838884081102836471935022922742746200110797985812818251308248713580871109528592332864137845832149187889609965921037468122474571532932615489551647217506720606985976951648221052046021879894027537173750896337079670612369490411650034956950618942456208784004558413799596366706767871331031112070964704078385227958558438972158376511738192517396324312801153280925166503749393235543917706581050632650443648658412706258876165908375647721475348207479001156807654268035692793065716279910794341638942077436364660256441862653935194927964525015568844917088737572812651516173839002816616257086455982048749328023235071959316196400442947635144703252712707019761509065520824532641849851771705415365147412339856039255871194540563722866918971336315675051504941662630381543927007252137454003391958373261271090070202053129606078778525257440008066685374155233810963725488900731311803290834775737053004423270769125705305184947718689506053518435823016878094855607520784115801274930839080773020863156664465323860552931957371632393920146968050308292277382624084709378286523211540073236021300426706606310576703537863729168649204883180885645309796348730431223332662757719590269734995930133718041487413639526881716570323787990853997497941237596240971712579237903267447645658514320189627365975207858591719901021502330839386749660088391556230738036985960158125193442098244351633484549957884684721780771200990995631116244856645026557314556068405385108945721142372145629613182856207963475779294516482686566380421649519118103838674075885949417160837598194687773236245969926086796447473577953898423270166888985560403070543305711840626009557076465326027762477959684848001455522017617427040210956814231791863494437747152703690207034723821894438839469729490227595995751601040236239028982080121264790218339875732850164939442697356195098180852528595862657564607279249675622409028863777605600079720513355381075665297281563710500567509924781939389054314526078489178578103646803089089747438905137016755314125191786592415915055895327556272039832416089596855284225735931431132641052343677189697518489578555174507351609024149518576338593554146738117491989765781689724674175196360275229136463171834196290154939224980678008532152305772647064692192536916492184706088552526352291928048057929966308542984845588516023251831982925763930767728769899779263532579342911008763015809021141964830915101213143976632921537535708587253883820061323514918369500908923826860970318868021410081955913104256815221411206305892026737386086072992956476962472518719452139085366658627172730213374732723621076170489534053631797007712376978059145797033034400405197684174190153765452620908869510068457954638356502676378984370427876907934173215135999846225284998633395183093277353716948798041962285746607208793973167977590037788558248415196237928321534053735731747372627579022426221793143298643884176940387476952992139767872962348063726417304133431180460223502224359561443504407309725555201754510313388287117523000751367010003099331680288509499017227816123976683443944584627253604868208527460797157541168832159085584986960437502931130593048082566829383257121265488429520311502996507157502437571258378494733266540595527534162653035635161819019076478323255848467773419918070924036242355286182850889760701484252222190344131672953307958253872073515367975532343631307978263501725673700271930747389620033825539771619593109248936775566212462403668799827796940863411865507551368795071309410590358907601526633588475750865357817871456518784858398287366614867403191550214793786508729399230824702625602814582287452284633990913696242222138551331014465606424654394780184214447374436727442488202872042287107394782056277599951531905556700491777559653513415955417902452313327297578449213533641514424212006761925760564285078211792331746045345667320544080567318479339203751129158338381352392678478074767347470038771157448593047977499089331286312519896085534539680803144280292044678997932856354293392191351396105914238390878798807151451827283169742842638909020773840520479150780646725381384937591643676220419103729519141335955328394525931490450235567065211939110599894611513994897213935678340103879197426714938022493498674799881266064239971926300614633160499325553043454112638208961347410662966755075297237304161302656398265906003922713995479172132410573810546733748544238509879146407518315431048536951726621849015081701548679399301847054086649383601062100537013649404792779666793719576447004008177245421976818162643032844169711719856453246627810196142637431665918892332111597921640560239552409401227054273232425269724612475369291998183525855710656650366779452392388323313883783950306834545703987178580812023223189293085703232735261260758800009703584141991885577453525948506960705337265885193661660452466324818686929429087154703519333286208571813879373350199109211573981000559511229948288808280587583370044521994133959353926635810137997300856192737418811102414939623573589421455572129447071219941949755923195720233875793166194097777537175370435476859565139473803974865404368015565954398960715243351452247648250792555116522403550806767788595349935848692848207992997644042451367393038221380829720493491729158698155149102267149496368694495862579632935493992146171427062357886783801491591164852604136381384881049621574315061642606688654794185874716950106954233123695012852038466756271331102766142198916632747577623799474722477845430412553114447780215862657656727893808548412535186227472902133445662305220323445204826387313256990479121406992532338004889183662400480308688152531663762592080388001104764811702212689540953358441505621834932982985145456215554870481522071281418459894016399199988462566306593375649881031730867337993845187447443592831634909283550634784668365322040956590212859156214278751554728767062408073853092966032826150222211804823605582928527558494584530179298137580270808174245316560446428009554813580700361969806698321306045150969671114589689101440912658819848174758722006751438329579980265983143626321808913697366162327296423836684395872224781587225457985660758199060719445445515404885738661663913439906747666690971813624505762071792468165408620752348262657188836920796063657749426501177544102526337437843159908254488318975776996460600233690448588668071281914238923132733260898341177338730065740933189829156079026353456831018903085823554300459980136654283841944244789178695628194867942814745662676265676608427857452024312147298397165857553199461993270540787039397821397920098782833524755865004390001727353863858837815402739504789916642245760417181909518269745212987921777437928061753503683499383138905432492710331134510940176634322063079108193721610103317019271604612353591710735445227313423245361262428391593395605894167768523859801196115092466319196064960201281166301920400413114924769740537580138204448796290331759162415917376111920388608663548337726962090964192060542900042608236840350652273848617499378168476537596038786071247375608041044808787367298258635183573460105324131291988407991174935969946963708395210817239585519104966029622111292769114211083908913495643596387166051524259066939684711758506424578007596216231710684056917905561192188258781123108606778714014301696366123481098071175685996529345803238635496101541262569409350572348456378728838773597820232531783961613216045973237791925079031933827514769580461549429916399142677917530276404406287956982597028015791746722423324160360107425360756970766837799254364828998984557114553491519067703408957339230283855403669110430653046486307102006906483945334636799106922385490432081767370383671672702607534434602018220843422352443907179463147957259318916921327812673769871803605238083286632902623402036690845833786070521602234788066938254462722956182572856622302508587578777070289213435513986117130100487244390192718401084489377651388808770485003878837726350330710177748010801759665556104022174501625108542064918346207298847902422794333608927226316026651307746967958567908263139231999756703826381142566744359519816443191890421081451856505870798457645832165046976860669658465463363191216987942660577524040544764913942345178704600258127838489974312489966762751141004252537697353188956779318812689285678232998567033711745976348830442057810562619175863297935431077443913962100810560421076916091685941983217415111411523388842679365329846135447908749641685150127271213755795807645824108002856495717364341216737028988405077239802312550564041136633169306723177640829848772040464425232607405149499586580633933039964128662229507953241018304386660936636377132538320027041760124244099354184043323351912710350534287317194781322196888340296936894525837228799611649601887093601022287379557031096486965063429982812062086789781129921462424398942314727471668257903140155765713913229962852651559729698934676776203910984371180167381290539348646716211090202341957840420254751456768639053538804368414847367569839086874638354412984849232289475556530165218068384521912736163907952805367074986565867389714267171733564013197439272499361251465989808989441444152148276442561953180571581830531083605546772474101735847077946097694109269010273344558417164001365880407071354178214743876270989969812138067070380951723230574501833881705697999653423868188813851915160507377814430825769125407947769642340280628540379046466055751373745423571248058031581381647335164601146406639577099117192503168885013334620637950048689753142223085748849116132567276651634522804839265967261448359457621574658231354742854186584108264711892552218314733717844850910251444615616306292462193038305451052836308500545402975500792758603106638555219111368027806909687943639670898554436031368808128908196033013812086337842611316643405341745288500755886431118797930689895088828649731885369450203437629517490234419466269573608474931372958317618794275451315379473913072084759749566129643147254872506406464815866398484139635078331459356710563773069555889347124035845865050219150623705323059752066521684713066219785826970952508165598342619182008821693249734895716834083118658847005312856185120586461208750692746737672199022742171067694223622712351333997341436130048462847416831719286001441684324524210643753087450925465546910986884295556265602473430585927623550109416014012861582399432058221833758469008361996282085699135674818810489883577587947743136100087597936459896408009603685691470753296837841701736278339971111276544239901522010451609794121969509728469581890217032213532999450589983468630930247849382481584639939634209929725470346895260193827089758029290928502198856029245189696579994344302693740009727638456219194833563869477169035410853552781572451324147260406916761621516513887756935731984508023117149770663860590453987988447057244187237291120870368411049391983770797936193158912717788652410056908773956729657104009710646536144339391856308350994810907441672200452961677877551880561319759463521227697505071917883994279966658894274367433621123378213823168592740372768711287570750916774506758383731244487706106310778969045606037124486786713663392254220421709134242063442760396041308122070934205206290847027741519097542050964664000390465671926890360670033286209743764445426830248354241034593611664124147535174516028835042257050689883344595660536937944265691523262487139436492735272490201182847852197493341323276898141227682753469631265780773261560722987261106400164843543131581840216431003478180406223705757021331751652382958596480468699583934750015821315243166843172103179625474633800653625570393272308498130598908554760864471652590023904787678597796929550893197582983544578389603241631854614533120823377125675201594060158310064764241434424474837469136301981462401615986927847003872105863269139235131518763293130491142578034210781701681059165749305256019915924722983927581929911921359973783449233714774332500987849712764815279145783220463259980394998859726784683265334203872115256565662078656414074284687960914799841163802907661159010300316124721792218929348668234825522362547547023752002318078316384027742956123924400751606537152138588664539679859887648885139697752350716250701438855452132808779741041249210089720061787511175770594616056287624879383292443170159785816927092442981831863329763869313899927050411091775807990981804513700132891361667810705485683382988275438938161492698389671802309988120117688497788005447626856655119752106133658725292423717456240261329676682055132284218425367252095436029090364356811148886122485078330401023485719838649909796716586652800044838655975522279938056694880229977690370256065437891071124741905242591827324919004263225173308870814100461159529691575963074783999620801181005737164314807385560697893882619891132546350199166282422276381699520114585066236072990417333747384195972130833198412551825373114571435663591599537223077743516318571038916654975478125707752299211774681273642074245592340092300146491514106259057570714356313551822775645148401302903743434139987417654085660979654578318015602999988177815678978651460949325280514620829909402604725230032847048228272011632686672987639364069889249736480322755885149222888018142641220335155314241832467853022018477318755935598440649395051515241812750083973357436585793033291608076253018698189987162695014117356119321523891885881254991937873806147405853282145453252358771330779758734297111161713474438940391084480941513273359830549165060030608551518756240194705140026282265404234548301925940117038988502153924257254432776910402813710992058160650901509787864035145015572794995036323883513956947800720651553710953115346283271695576986236507812049729249872478210240225859987350219938318034927906668442028682952248066547213638256505775443180076530905973821604086411246879891416181728917650083633634386505796861983539705278147519824278444992482499983825669072868102576320528819191532267852957485821473092718422914101650025147381083207250538860122640633734126747904781489099408069255878067346681454805904793378220054826997517747122873555244721829771978712020702602129277802972912971448026629000215269964456141191110277813645626080490997590962727776884409833285219282213184447556073595280441651581279413719212463074752182540622104097379111199051723472918427966320569491865617215916426005394591996301670712774235005096124480277369146041496687628266618799164812950585654026862041140785251455956728835067060424978875936441222824037052656249667668274112584028187149347932969882827456867990236471270257682006097532470837092238265196573726869963611485773678530801475047286841829008178904133709624466816791182368412074983565541599222628656948298202064783178073125956396236529852370576427486075074013555077322842951695850251017849892097698199107681542986554318587482806574221234617890569271657293237093229176505241635053256909025574331556403657608905340763139083633164945811150505780077526546651026512871622307278779765140555600661983703429451847519132710701046935398368846368681329194592943175947421567344073007664062879680269503838261557932520516323811820163933365001205198751866525498758008493492887528271462717683714830894116432250010250600310086271101615557115400794110694704296949048820285921034876645727094881798009071187044724876629702524626275812012197496315065231631457791809389735203891714415051352064683730680813250811233589236053464087432001052680096124701106198850683852679026197367446167766581332526340732908646521342656556758179182918403029882757205814681925396820789383510546509267020945975875164547521221692668754428806291060363117580801449747641641048502116505055475396746617943471071943013164366235844691363735553126455546768416990275561734368480377323066281900413712885812995895041777809406795384466435643168019277358738112455364819513553195641138030729596461207569880063789455288444084779552905822049448288174869368425555264605161171729146889497815529445328857845430581864469064023986518497187651560124648645955447598970580680079432741242021610775249728022556741271761838361636772167027125918654855520005792615497645212186731452723758652752870266595653301788970728267254788059563614133207714199468899125392485012230149663826204372961608780480555901049484073049878372032755426137329660487170435883892208066613749634345316573272696516669929899157709172895200990721548187564109774618760587390592502393832667199689782084628688988597293733508424911543781849172939827677215082475691631480890790202703048772203429323554443345811471410119851966298662184636146236229139135728509824206378025455702651187005312315883468926648980076464884323898159960131028978048179310347136431019651923803486313607494886427653537370895332063668225822673774751137622741015124807549263961459308010438903216945741986174438635746463342598428404368073518410560034165507708891707559380406330694056616529595641152859294702506180020654921264029974659818498008753356499675061928468929425217763410205533310285907482764745549733575347870800653515665813637457918988721193934541591145062103223942398529064752196576769884012533534246813651954642957008341190534061999671976855625394933328164670198834945086230649297676768239417465334962750402918509572108718134469265971661207645333016222660454162918914038382215474129533920187874961442605006754881074249667637163649233399266094376058357985941367212450584839807631905412425933995845201892297505546822550742266565232042958445221522626170986663070230722503864685915151268590342665190652784507600466578957807077932775070567281889230827840958363349967819651888566440592412398158171890024094765410794445957777642339107554038044219015952765431231189985828424772414709642524687612807445897898796883379225614718299673830249514932400471591491217037635232465355552761178387558810164380225544569332634985322183664768902917091380949247665924282562995550363287761421502650142241814134972534510248612168218426755724537968945831462801040201340040405358318415496742543377775448371800147746077047573774065564327331402144538846874921701559338890543888457991511452197925445781062388097762248906678417538459177330214755801457552680987606985623450885158136351020049875510841928611559115408092375393678593588247069264699206477370160424060357853160474674595552193921830510506382062083455372631812004934900100801417834319042050411977784767950148315244856014580404804399691253347672020216199603060623550257927866997249283064054101011449854821441210813897834685587994193747614438145817039086880963507847086830309966957597549585041563676603401294386434854037525253843056384516209666307839273583486372122659584218853205718014794622553768854478026171699254297310375768223592097360680456348666742231505024193542651667262276721446274710359428621926502653937248118081273968221954679439369800160082315688986578885787538157200403720572243802889452396908399062881445993246457168864317310861003393211596305589853974201782723776295264722565929129751652732003354583086018146033193912697666302966253787970895925541309976367871851248503725771063797780783476918090571035677829647398847963126516372995600400454867332423537682688578186288240647517254580532685853019905358608018366860575506349871924844165350800759372180431478863833212978265985530181912556157190519457450724778231967213330740227116984149189158586794889890041208463903495431596280445379846544199950101880835053170909981663932835680848131274635897248914664122250580525387333664911679804549165649847825355267333934574170565942284098641575416362908111846337804405098401973146248521965297647881867005783127512689251063760604719102783852996929292109302045349339476917235369265029475172574647282315006197451719648060636671817573364543362526539356142569968276453914983348704069864415428982577408317166959938345872753667860007934950634140420831562242645326891631361787990031833678497262128082481165139839050675539068341545227281262374431425075544479540218093227230430548862563717630458909124281171501695978016275881496588757240677165080905099737981857058714096175325704865791767346464840154437339591738456490942604571964557395379814042959920964787632223099140025628155989188406317499202090633682611888104403546740323904889734356647608621074502700045935433746722762115488281304016695227935393915707794920582859507969965310647379779932143944667071219806553399789302509292221621759818022909363390181922223459712802960607841712567128202953283922978088691123804034330737147966656772037425424978447773387779586906536836152902723562027561864212255398771024150430533808153091350659263341950149397632652034732203124464127168518599138955301765690705022806288630790458609671084677649122859764458394803267561815632835276205877183531130576938558662068076961478855571483916397518273252829060738334175532218499469201989501705519826405612407351616525832410890951825855933791816173065470484787108141242113722280794437892322983942209337584820583757692404521363322939847991379793398985751141638254480453960795978282539110344868690811301773103820790612305098013117566578403981594060514831630471246428578329032258382300015421106655151062299684554951003722968408623803991846824053921580786714442095544564507022557036829358873781675113750016852479654265044577282413564743022138093687038550919848569248552834951853355090791041388641652220665257040888796861065620568286807174663759005596917103338677533730347923815393933251450878255277795940250232440500752791454490737107632180765655230401614992009105041218551575015040433415463191426413690016609367566034576310967027740055651801167064472487248179436635705298449576167404859232742615587281588969868488764521833397666330125410146801832988173370655228933309569361063317605827788069448781054629101411167926262905561985123937307269170657785572640296637829440250932340526947280512384782970683296234899319011869018790748204120699803370824952032376187786217316208586768171560676259105337527728589174844795087425684160253019937839525106680431100880278571078515250946846286424223243582655699335769421879857378224130776328865970361334774922914510619090752265687030713870849504560181500940328724216610631808667927370357835007373425247212589962414697834811385971862171388777988381090698321427539793754633810038430587215059661645142176503040319305460217903932787110701606075649151572165162837416716002157068037302058857387628715148651702009046104208153194646497276841295157683724674146711483160480254483208761551133594338324074763112750704318245101247455246233969221149675422313334790894645153792836173558421447910317696274220411733672617535927690520917361996295030716886337363347120429651692713920392023746604887011122642814229264196810665422152244731775704649184905996359277786781812791645752148928597129625881884406873885353886761668343759900872119580284089093011292055838884792400817252142542148779177518174854383779043293027591014974599743733572083621841714838579744579941593796811240373697256104853861504529948354298834578753742336175484591766871321013116672067925801038098477089507984809911959754805943169205463128118762554377122156457919706574474522598113997833258316224205707767821211566834592561771643606800082936379352684299154111446204064944422771257489716208214623563415559657012820967033294571321245048507535635102808533837832007263861655158740548380968912812379169603191171663064188758277979751969601882742564833793298761207913854473022224325485819300939169133866401367175291435450038787981695165718880436655899021965691500522539600193414934811784810201721214713063023086216055003846694016638591666688153611162636870220637568396036872744583872804021295071389809089695145845461208853019732425607763220582213271102373734777371473413239314619297135216839538656927038025899489109920436842887820500701416234563980788124113166689314862767607110338740770142860595734093656941344742133686734534712588887023067267689009202423093551311705344088720581700059715738006700187219966303074392577257853449610956493050374514784997932558966577231990425445342488661650815949035371812902795578623545146213101901908293613656524328810494413725090285769752248019901183865062584515769986424150916813473710006831158710595191573149905040248403773501247341498357903279419336912561818881260433137657799436515791926647695940921424767613872155163355602833532776927834734035773112785410432904601602431742719532869875096731733468707106089980780492134438003990065794647133612338845260331281015112669179648019998818818791881796151204460131151683092178395729910126343653797695539583499345475091756050988478323844285540851027300507497925096151774886188241905097343460271952448849095991168899294963490602620707560032102978978991483561633107743429553368163623686047647716011977242406926221438745325432560471254675163918606183515111878658212123960524711649062021538517065786883122472946974368474078292614226401541484835997613516657846694392404716222838080424736265543379802503205058381615515952503364047243898031790957170512706872624644646253980111400145052366581601926574340783400074505810070232441810680838287057501395856342114382912790971676931674224967605019808597752371314830342138846347874099976728326932851029209621601571456485948774585165135245808935721633989568194009577184994963962921077125023022607997088799658536163459326524322094249631292686306618585355775904458871297813345076605658837101717181146634919045473172054021215313725714049080929712435057056067483159621508262951545333527284766972018086181853899189001726797013282064179595578883514403952763318938809584180713700365346583152093297561896222010034847194291867844293676253036778533995612506643119301038562726590116923951546836426264031968251840795902097099093182377184222926521750886575828834964078874510384657919677348681592439455843373738290319815813922003069337611151509367479570246770840924851027165254188628378985753276015155658175334836503519458406649384181974726395467692223503922949769203798450113865211717107557179536101713622362962534904811326834266540311798830729275225740230112622728227805908686409795630341874864201642183107019045475945717358022257969751929447450928836463660459223564706004814331645248030868284052027685821657973131327515559706397330235984715805166528244308274794392363188753621102645051777763623011091595704958645910178804801609183141534189589965385735695837906668292615013909517411049528107777351559937198835124286728142153046696454606214340302854948978807917679332586266570664153234084492939608749683912892292899247419039969096968527368704351222431218995760582994793545101652737075138622573201501282296258292568141431680671877028135029721506636818543421734825070526267231873643956772153893109597738910262736286837220871988930837352528203407824157113348583119415498303432888159045566589062124786177591599446814073054036965023710750216861705039759745320116536273644248700612728807127744720436640350201277982689159993092360102324751960978383796394160526767658247953111611338735275040089858654606160774617428254628241694969971593013071677358475665642355895991594817330640509367155916592143086613948875766087320804089090290563500451161784774788816811102741953669101256231031095792836309271856134220247149146501904696025946751551182925036662045385921796651074747589121538737528084550630677789350013061556372331678869689774297935974236642374157944232033681991794961637816957279145104507547523833157912647923441241901184667598409903944645485440454834608959881607150732173394630504323942815543148655456239393873667822639579355442676258723644856889267559817258010829285454837725029731270260814093997368986262841383619068353837048296505511744074109041624720952994221405114377208447081480998869924636866291665916090767790688394320216094009525203281345295546897596833596661119044655676061075567570286344676581361469837973833490507399475039480992866684763103653842333477791807329610626255397717878112894336597494688798642372115913600192958584417517401977936747663949976880205524810684154220028867808510659725908694300693620716302949980012048673159038441375675147203130202960777385436559464470505329574303361337765399340525176485506601101619919529922099016924499000592397482394677412841990323569120429653629499874053731544871451653657835176216137483242479724227220103582619441614102340340145718373226623076457120016941200916655985494668902455313034533492323786428905944511644199124244678348960748818269718105597870725407720507255398242912792186486915610801240566762406960894927822732529526155792867483044205963549602781669520500650707615478552758006481589879706220474764950103806901354180738207397339381558912490124529198552939227503320963998605052777180076146204641706290126598048623138364891183326209284024319090112143154778611333547072693850910941089369261242725702713653394422009758385058199835955346398956590079439040614052967355606076533251189762131560527986137431619966238302575044871889239811631437962741848023903062831007378062145219679440036958182606554057468903298297996886529274593691085853270312142933553788570502087941992234766054040070207131935689524249367874910278442803795322020558424267157857873263053881672088609735892750491985852952762687601662998678644191686332858731861145339432360465605054400562856124606702128972518236705189857773676606427591694448536902865729642610074863785176342561369013636461312223219234926773604195078901618399711105331444048611889778150535356322924508603001730529565344468004968829794819367343914846316135119606566447694168864422188178087939571831590891075979636138163913692063083984560825274951397483182176114233872907929554507458968477648639196110891160717837619028716159790224425918839259182246257237045853404966363169609946857656513345830102486989997160991151706123070942713623465699289364765927059659856642877375046747924078626040008692229176790152946029306419462613103395011165010829567231451209545000070502405200581951087815736864104370312465294661951007437126738214571528124451985137371298756150783599648766226279741155119638765543383054340457610280873464987133668533340714437236232670633986756634151712398950931394241021394783537178659129976808288609533984255400343861107750255323305628124370445984804368225347252521918392991217391847352565484799684488583061825791992867841325001648111473326325129098703649482229511460903831410114177231038259633078354012443953241885581714582791508528309060359320066399166375658960152661200445583519500132697282368405683471480749485578236132961288638984155529764831434883984172050493076214134784458361649771826607076045924519732170260076167113913387055892034784845239528598919771515402975479106786633923791026174572099500864163713744668999649767415801264465577174386681738414238770409959234554633355043147330593822886177984838772195518034829874475589257048585806039803473551637389212071724766963918303106354446625096540815311232733241555373691661732722566770400542392436595470308320279426129082133184378475945752364179799410534555248356212925388685027853883423588644338158124860153277881398797414895656641607770970109176495390290045849134873960097355359009281441479871804648012686889287353967134332318114219912017710883853594662790946547050056350957791741845682776188842094089302067370338395381292608319177931375546350360572468311427757918613941332831814096886650690816756430353718612507882985603354160853864401320019957704865124100532558530026192360048064252267715420382090433902072741537456092308923300503828267055763235363139171010767953464098493206377455143972162718131783130734649395322930431031888681361643372000920325714640658097686763646793808342041757361983005930005169601561801073805975533036438793434677118179700086810506239907237011703321354783763816996400331693153359523787095116182784880911852471206003821395361239868959074869280891105324084589403193655622496160938250823084080820412892863801035990985179469747004736024471175062826718477699124240768968028481505541495369743911321671053344216624540367620551400275175733309293194852106928700790602070868766872745047470980149277745169429913009257050195857860454356381318977161884404630870462322016743766146941606499493214460526030438570818041310519232943645494814056797083305664467782212325425670669043043792446309155473035316873290911101685534617966597399665748775340052484206252375434843088726415388285547350277781919543636613678329804274929851921605635528363916792654191984603765718083640213742987059125991196613178595121479960417826182583869237504088335776696529989140560521411646920340076632556600015878958540964085373442250695728754353265215757509887052171550259109508872585018507998423486962126295010274396590716189567110871985149987020390671065947534117813894248341587041477884224285386626688737460793653803749648140175942484877744238426137782804650234343832980398022563939839126439214610320979917274212740671759885539702243569184727086835221221004184771473165876617309352835109045885402044582056350272201357324848966702457901641345919215699415657861904338983897412202967408438180939841655064005411414548153559378828658236872440416845893683620589367734075100645368261316379682734411807447905190140280986077611709682876404906437240531088994695257416218128459706073351328606866664314061825603349951072582943029804766666188402065492216022166493478905014025806383902281797505426569370174519008811935696531916586600570158636941791754899498461087404967082345769668334023328061534479981280265835064856988279090766990997377420914274083853015211532157286237578486442845693820723375012854440401277799892013181465029860384009244838382085086777104908550866447351829011432627944937207693365872825263167565382175743135473004831044500176004260807154012163085879523468198092398604428252815764097723158355899038313204209835786246858156984399880267768635570306739942977400775666211143022642425240701359103892418533424311553082167764763807062005461727388994671483357889746386911552883897818590876691706718135240327730210700140726322185326666948916034999304877832193839068784328415198079258097007653256106837578481870033346058210698267851183677910042577695536129850544064074734439973387019343647379267979247602322003745933098165234090694169258228966828599686148952514142148840237665611827368405532259517382653411104913865524027195484408131287836196110699149490071394421837452729968311366973977023370914727438991112334596653687987249052070364305730072011586002706977282173583573167121184366924989473269689081227240844542339016477426347315130088802349508289399253187790272919004786539484360681474006122635562004935552268066437173059617703726019288646642600422110416108440722178937862705152333334436488373718931076980568457311960074672136287910352582306017464380891994494920514745929718708281687085382467032153786372631121703398618357263223469321951304544331211115423452191363698444602677633194430157927814332468848519174524544281095858125109606151303958315773190445485271068089854251831899130971988369772353818308617562115141205733302560555573367637443501657337759327439436825578265632377774600177135166375237456503775218110119808104440295090401622243777766540908131195279302652627477338259331877557579787944835546200801839308547638323619386414312604130008153790020998231315198234341731550026922925651156823067405068118820091994396699978239641817882328323851294810839295031367681808233040075032136462120439876255135384595522198848849111634295842209556040175978461093182781513637690842871783712075933280019613837027603041189771360030066172444324943200995966724035227260539490603821609745982726455734947100503536121692098233733636366269501295552795713997399555614795741956286320581183907481726800880935006572767453475495226769612715268771769991543919943813352937071068719284425351483069956619890211884341065440509222615923542686584692875344646881362827888077455253054288301191977375828989127079500653684013743913571591898838210238358638784157083388027111197206661288806041322992054340902879321209542304831015050545574318769569059823349769541201324260212885813957007544133474023913426413329392798764640532269266424796271225685975386242063362150853105785901631347577087227247050048153000498496029088769320369207830430579911631375079674196254113208382774188458696114522072467507528070495571285096647580489834116188302905660419105672450529262875277621568071249168666614304681250269797882188979787540527078324162838005291739473466708629702828162280611755416422366551298665607205764707290647831888840587022006575163853987026443769122433297148255871118185477912711192310606154413247292710570499671512684634960271315601570965645154719226855940084229966349097876758623759435529231726086944490912095082268273289557816081878088168292789177224605920390622239856419380937120293358234087993531003044174468853492906514956156865750758972590642205856737253855337864425701357186101314247193112220094460947496761362968013546296118289036565837414877932130132496534914052322380058029219180239282805610565924471848842907207067860490384979887835180930455907998933971124157938396722937803616305367259729480676942318320497511644787929553746194281396708431161383516489776539243622196339949469903384682088053990169354618503601581737469520213645193792814108110364471024890895463507325304416877254804190906540963701112378539356829977813764153579696527643640050269126508336937914363751514796149450776578892802415604787376293022602791886294987943579414596731702164047351247773357752298112741350219243332136568527282820449224876492741867462156881172269871224546554261541910714654645535661489554041252641373611732660881076173280591779577863954561511958882772643291394353993859925874884341809130532397411751039816597833229537497531296858437118593699074712605221937473666905868128106217092891808099138873816905911508461272848011668957103371522686856611673353255893642153326193750109623854197534843748983358460320837022811239982202124028087711942088178735602384977392640942212214598222970723159465128823122224653702870002716855457643501520211124625791219498316628043561763509584206056990200177405863265517315752308506133133282853596705628134232791502736155238612998542484483364514297751746002626021534195353384353495075701293623918490178132536177995980159131257336759381580493014226056780503221796333572630859356594499710753519999183877398561451737431474897320807496557109376606355616922713584365348577239423297585438121494625224574221443778512938909630510450506149975455439178745903736245516174131493512535860334138134451941662618030278522776811715985806261677059318799275592085774991137987381317928321441256631780650673224473725619563617739947188830600719748760074090446312505414276399550310683199217013488919301308431303658992432032807468007827528495169683586940326316315818198368223815444626094755830668281684952491217351455951897039487542793608654871678727104425473147997650160644867959310264800109612186931157882835237601640605643945374570872738527305592506882644781060260088755455800126183233498397970445169570580534772359641789516251387734158845172792425449208259097258989744842980075700223958404082668306082647391728949229507982277863487611504211211669733429210078769327146030254580904197718785165892979701561624252081839142148608102703645495376635450286074165876608851934643701513171457786533458618003223354017679372191654139467456615717375756092518638781578428017431458778818420370925029113733302426736594206476548814333649304063676389213000909477101553659158558639876623105885115689753392375679692608013607363618813916508677487590607053527011652448789168523138839375535931230461076951944973729121313005101616720606149011208394689824003528675705666084249974912881808802737646460239764995411232226999864250128519069253573038019119879757794643586814780799721017410449897858255973757764491928795232914509291402379158656302857522214737685717885532897930865719636629685465344249624959288831946508291826717200632838681127568421716894207455904910135085982471559795463642635101610573728630481209489765135345512052603353676770305104760708221614247667724860058148728968801897934069794691900120616787481168634493117695751062544200748070893947442015006992712734997556900446794923322549997954978221532304297047403814186766970686300127397010203679388083056645052662039572134876065941727140767012893121235017380094872169252954301416388005642903070829555960866053431420122044861467418341551382726757835802315175657243147539049090315484230925432474052071441717582456951128815353481649629226836240504018118326195812076508885792533627572248418866587311766557840725293238204656602503122147873320998748370927731161134722494774947261558887386323492119865062626037122175842719935701386789373920363689097175423140974919252263441199184537299716205601093145154947326743515013304883443795395855086147755464211719137617751688957744038006866111802322900108999266588153120938404673019941585300231029559094559019351352272843297572557135149296554523959031486333410679548464314006879170279892620079505255549929395232672539954236662764254236670453795298636693140140602219114852631840599153029635492970409060561201324956223999687010316248794471068050527403040244608043132200006339493035832491712238478343602068380567993130814039621185782691099001397794955460460238698803667409304711609817454310280170024870471357021888333532277941421710367109537662099735276264550874886889458509370559227543097883051902239776530449674380674581169829287647657983796256487929240770202957658617372968718318044470096188172361382799146900685850391722397939238213661138594533409707514373470361654219504526344163580178474976836181189882721554347438002752505583516796424228515571879010152122576389326121852492919902499245447597478041396255613732563783304476100840191326530777692852344063513020094669615426095252335675676560268239549494044774191251106442634296484004208723638514600718519246037320279206465596289065408915342928560006519805904058073460643189032477761203627863465688172229387445854546039302416744142955716007387084951046060797923862405808953367020757529324413697237670848317604600995346328142212040659612788887870463584720299650852142483650374943672312154467556647894403376397813988420121365515241286503481503910654214307626983188123853169538797141335405194706869533233091502204518592721218413610225528224901252241413997153274422196484916258329768329849501576836130030501565565464331288959346813873986197420513809487959479680914485708599216406313577636103190387871740489447994129708320500492635456862265213682734298878628696181790259128308888588314415879165365722760888599235054291923654423143416939080021578950644230614681332489946446080462040906348596749291706967519453672288853437551647872392063066890853967952989790283216775545085743006543660053694438810733833343240688246907265115244706562569168378967933324378295503891889108932297680577581913765635663075672991218031560401641452164199022306213605037532273472754563767526600224492439612745554754283294328592602446362028847831118834202372101164849999511599641669576705429643493559801897543021841346353836073757673093341794271730487511682399223556413655958664828845122692478451050326545424181707188636016455194662936731646636512201194210706434905256189133177496696941007853223080827609414476935805669353968876015841930111544729576555230346627894146421341707858196990436642547035512706338077770285110464387059950112059042814152908926379560248854013121200557956599263631196249601105997088119881299679917346902060954181819025038089369247005997623973462604122355301767984347845160639637735560507898265884052383284905246753760540663516414423644286613314571617660488845492582366492350429988770536520723328207526606221014614729145386182820786967194736785824262858820195744543511359750452642113458611219604240016605405340550785779486156093524626282215631101797634135447528091571691150152955607414946452472469903708237692484228317600266706474052981247392082586638230858195146888916948432042208997649607728029326511473949547288161004059471997340759853277519794191366973280681299257292011925931926021563627052328006747730015057046165213836399357328970759236831855406120240522815025206630763312671095268594852935960767625635599434056971072809384399740943227217693721158244746107771946741690498563556469572395904029039338826744470948671506399122966609238775988877619819760806867750072150695016048033153071764298334396107260429474191613763092780904399955973596543066401951767954807518615175219916157375404750185310130871668524360409112075251124755338202027326848967192416153706820680625946707711275414986803659914402612123970887228385821106103125893708708316471820247031029648634726425985842112969131143650827288966515910980557854808289264259198250091677636773064586583224462820944138309405336674328225262556985291685009586766373583305910040470100346637440698152704380775971323539015015831696107088292282877272030993949065852368959614937188694524753085819585446121550472798630281429093699210963761305574873807557732378866456350700230043722161887567224530835119267682225636671331675379026593197158444175679997084186343827680628665139108573476805990928041784516955613817560374539240697003539602996771845392443094814971757898171658852925767473982401951971332216643579610007942361564298611367040349442068816386434228075679282523101754713240122014162661395967173171202797740390764624249577567894505187375690770329653373371009199193541780231951438620320755925254669819386802262216711568269641169175139485710236946858282914599720039719605023931122138129075347055539239175351060940485916921572415500767270473600292764954492237887257621822010233717136531796682034619311340250800678495913245686613763277732778114235722380521400544895271336007669752480542195211221291310670083205078836259577875765934652885853532645752113305347052626286447366620583387941003475072726532131316130535004266211226622583897903839272637976523427667823540649603845107466282714555007120726019474247916042552302758971840331119106836748352167515043153703919815645479885230258894492931825995649437710377320330407301314662833889109510219428683384730452537341751854581267427769985968555411375822092274698119074543862888607182903921282966705585386937067723557156982829622889763233718373420970791836111193966015846195536741164938635370518419817973545683504408182952166947971320310351223775839576708659649772127638666892181255198591756832581018038674995115211910715945310261753536713343198288866996109639478362357614438239141697244263436064370287207754043437260180291153956323031430468152052089777136986867014989803770731620268112068657539599020009684980403142581688680593991240400344332225881425575485041877084741809804858365531126733654625418420559276208690086398456300307565140081808566034788932395695246931054660978978391793174753128706224138040216516844934151101734491011061665000724158340871356141332132211829299614636004259299060592001945143426782742643112697969235232493138111586287238193877757515925743496277674846456114467870660064756430827976194178788050112841607296894834007071732498687865323838710162001562387190675802165261209184075329355712746293037310729577562895153644560932478272453806305717013244848014851090099768987242066408955264218355492376952754382807849499880528656420577931470080735063620081861982950372155773027589842150095730317249288138323650520832143329899997280834303495240205306383445908427451023997757810745792613313170409361665948297131421885220392394586106549069842737487264247604665596290363087084721788992210829123066050678419534073147441657072280681868937610711182637195028913867111549166088411668603394502411763451535854214108804749891753534875635157465967325330927640188682420069561119351261947561995987123685978652838684531978602406323893755430458036652994114702772856676376459572890209257913472971471624963186014109791883734597553187372766764660042059051386554304854416299288604456757920115517874081853194767198015226423084245455311336704463420391894029958487079793592649788547205823407547460320861611895615082657487478302306229561743364541621232065618418437221453185359471827600103315312882856216464313824727619987593233621204882867394332922909424476678560458747588061714326034728191723464963377374379880130696937391533623263445565025369941468714903946999444245067104340935433338418110956882399542544806320217658459731188706274765203431354785296360354177737420052697976550009913803314661239720870946176755902386488702581192619408867612009252952638622061588476521174269967831914457839444263266721693332741754015604971998964490077538663665947176496807517638146342697428072333689642560463444539010924240753325901059097147934121878930716205135876661947656404265645393392615153333344617330815590876892786937808922236154095196896339465283033978096448533432401284416735753350053128095411959459436080348591574847897212459333309372446750224642820602687769652410074850158646009349294699340120811844603468901233076120937199220152445345605936315228031165339214774711929247891592374881192583835639463674646960839947059494673832056384457232097811796122042947437573009213221848053680161845004530779655997092316261788770003615679861810896370199371118434130628227960173595064368208772941990467027561331329342301181134316274353320382042168258976448351235980594825973618121503771308201873568581795070660301790344178484367235288616294294772565627489703126251959692587224194266022391827254531190414299390753814461772769401296507756697115467684028746083224414887562199475770214946524014748284006652654325058422943556481761832004906859393132573794653845129163221412894490707958451139420756147138316723014878768891554071206987630806780093308364613348503192142973139442750743550889335187852020260490807940042219583617039629198841309868374107035948948148286171315649841648791678131776071746552957783280386116590855431793429336630685470331294318301955355332237579434023306403479905866551268076712030723286977425308742915926400356178568299467919414710301373536770791947228439695079529241680878468698412982565070035838179419999791723477571041698944044072802992295101648233318459426468437454383102586908125198312454080165007556511354116437193812651951510059615553511139114315926126638611176535620314457636063636365300565771023928917603981795071821134032874236697398497237820589484996544750964666189941231390733675919012425983621001479543448692011002537396919436467538184836767030560071202219083112062528347616979905882774092989674317173550519727431997460140395784648360636477708572675227140858904849199582435132277289201534611557642504079933689167763430589043229692051333081765173343765087208403245439899328225251415940965040000980747286567438801243610379893393620557080919886605336006250571163995747310607650330071373303854257819160924665382699216119114316681069274263217943409909117835503648910902386457973788660672077740595078139181982202283821264648746822376744585496497380502371455168403614290227576819630139151062624038430390583419935604904908376775430421295926303800351524334114451325236186664046643170591016532063280308308554921209659784307152784032170601216249509939872773968809695612197567699938525769120338581445778014569812020877355120375061286033295230210778138182649897008372198165334014437915219819317949848595969188354944987395090084801984677897343142542027629743105611072156907713313042944820338108068737097626840768752797243623502817704637835789386385483137961458653481610874855944294052288002220223262633330739450941517375883074009053187330868721049610044498291826208470664023540611386316251469956449372124070849823209444730413354872713853586353323445204154061687782380090633398090984742773682588514632832939805634399864937117386161747065657844749062808063025959465498174590209871831584193954125089128988254937584180693746309365800564550901077081489621406631200452088892099595037874922778785399959959768414038845141498573015978635704448698595732124961406843867487305430775180268603357183332188552102923205296167455570670483877521416520745198095417780076566692784342040602352749051389195522713616478946269884479361550563014416948308986505946151341611189693400583819818017682313268675710793216077161587719281981075779231634712015906386253041050211658501859819628563932707343504156793242758485489638609309121871706548872829151560517435903952239273279165204519162021994813295924862367756805588459189065930428383402405120969262398001113177063563234976362797363225913317393571805671882807055498595769880808266533421108161162780016802630581923213058250147967320973865942458041211673002072643478490698483806703712718198282041213336290682587252577787551363438353334162463723810950640435968280051103548507701329258475384218616782378337150784839432093695305589328690598647941666694037404111899490985811884359251001250016657196004988538802000341506293650279892029053056935934444422231267859440261275523542552453666881553157712191207302291987917820995609814370277853223534765827371150777984624063204575205154686046167705065633200649698896675330665696735241961078768517207539848042370648415368904927107617723638359616739674151317122178395295123018954617541892031423140193779299029583911467580915838630484559836641616831510254221724110583507444092205747805002879543202684770257617337836854524735818122795546931944172091182565232759321670114019746412305960872836399969893789572109614018208709176296854603313481598138691002633952435338707723664372929733983365880038666287919731829069966240873065046369016524122468214498471020728825038483078937258903151468008668431430256965733200736030300728998764005890420141791622861731129041413593800053451975774017787889778861319752869353212343313896398776990279110520803756824024907305647250888542613465395024247102706889499273780632319342703699213875966344190535931984447252361394271003633718442164907848651673631730533233276073452190880143265395278454867732395796146184383339752870706478275054947690113470966477524060608337955138703400965097773327977975626924537866150350463735065560224894445909277906863539033190226826485912230485353698931127808940086356855496852941188107172162407401329438601282812367644244192187980174703758567644083095109971189731278430955441573571230663528226516733671947665725279891938134086292175336463911093326269216471178193146217229236720851082362254242847482902112946497165673871983961350189259890043999809454694501802808253381854380328499143895454137117873838923750328214431204230352309603298003814928169257339221128232545312987008742135549578655452198409894971465993144789292797888288110253908083911917585284858766734997881715894002605971068790506323002552839495919329534978484467967022955560587671465209697719813251955779115117907529760297235357147319404010145064160561932745194149839655678838835810863560594321036511963241326930752786488733817904013450021087773955936562707252738819754102199918170567623092815186383436259855737925899365920999779237579452857802097727517875356123224809618475920952417121795566817654738362068705672026082310090392443106842464925639188129448859569887905249393427415497472463300927972221579765483774658561756294146277539274141347016411460604866369798969080361276313649231934977654654406680094444141102239932739518746646275602729775037764094228878730180071462125431344762258635338377919212550405378006263117179717899438240848769615020546881365358466603969360589761578502691604604696780886704047850216915480470212277208034864505640567175529087160982895987613129940709185839941705022044409840433723430162368625552161545588506374691359289427755431709311540386744324728327072033683994700633191987681987960320244651475332643766826032972444716999444504322669449326038431288153928026160224171914411320428385607169375398356295905824955204065635164095328845460682613074400275236414457416310222951842576375753304829882810520682459673242285971934658875697007164297871980812585754952531856688497174787181698441424938776451861312209712126332140709058492980925043088543072805796569044359245695192265813839625517003135982313886527602426654837892308724078676870573911152230223988953503431818025920902251498688569174253298622980783256835201856651397105334197333984947964099737089144505177072581914935094221557164096283745423083471974629472034461371698669757021049021059074273860259987074074406583888474842057683017189130401113795675091843793214115613478034146962179657363901805902098207950827634938364554093209093257872296992668078252160528596442339118345521604532659395526256414841452931318789151730107340737344227377991661948351300338341975680304478143541494963886207429074292120696005699902222690315919890772201689420341355059789064361487188314535812620548963884223532053994109426040781802472203781668627012475078929045016505972693575295221496527279318575502372095869690063191027001019831141120996783682174908227084400260476397474832579267876611001869930430063645669118381843862065885834960555521113159172481948614299538515174596638778748588559986020959895751304652488337079238090777154828050091814958955766951165342155863370588527069044352456418749564793451853149828901025595046192119074319283215492537721717271297282007998419222553355134807648958079094775054830175431978501534330518807430213081446067922475828107887683877486190903894013020081472478397772228821583715224720898141522759265680717831079327590586070498689304812740722539979472784951941111411658443388056130571710567497002562740536773653033593586669531327683968361189046900772968263603575250454782017102547450984623801669681110682402485884832726816229359326564892784037323346473751337425774465472263104764700546653195190236007028235866529064205184206485158604211808082520247321821024019652584413188503764358695195414526945775502259430217361933705049150178095512899953358182076915778211004297917632322622943304366545714134756797187847177882231609975986818300082942882072129104003640183238181532677359790028268525469712330742119256943563466900971844452332319779094044945932039660776587495732835105508258922505041720803541128641776295169962497261939718996614978275818415062043315477352684427786884434759626908341332939419439953801827766909323702153159997618937181460730418729777130118944252713767408568808337784226687596197475561286137733467656940811831196007705188383965001213792709761371597021802208295655816618691255349869764040710967886809375300205589787814765304989614424293139480299314651600038224565679676254142939010277553333602773610887963088869418991805177693971492274207465425529907813070208103563548393014310833591873525790538088852806069452646948159200365992990530476329828494872778847558286988574429085959284536313770334198831230465199594680883973277839434045528195740368634581404441038648451876502527486203727106931740731995469644026533152365717388803014226622490786686423072734393763663740350862124580897132236789921484659106661867885402375053465709124398651460634159097370295361391814699848106278415090965091640244914742583330271853035920842612644685615562774383235800836693952822047298511828494553592928846737918778880180042143431454190890884012430558728848412617907739468356424246921502303675474990724093669759898211208287585022992304948747728790898568245284357488370290220294195807710285645982358819619751629293155851766580640021021261971275827170217633367685355678548049108239390309691090511911758516348517820851039807925997456944282940742623059313641757536958963429804783138744683891702119062827658475773135282219868780151898438489036455345837845690303095747011731567950836473698334508990514975314920034905303735237842007127996086374239441570499682838332642911738223448680686843122036069930162540388401621793159379376875540727898283798308959699213656054292727011236033875551027348191885568540897986602541273892497586030767993687918347608935932086242531823896579492284658860657870093048204617932042404668309302293533478724512207539771699661895907964429435887862229164934434211197171362993152261115203728568633822648135666376017343604391981211032660567906409932476065616984528170695361810097500318300934715530759289613635228890074649028910582166437721925043008034293342852479875024735238051205190546321145375116841353599993331351421407724264937081107789503969577081159677385585393031408221177464013033152962860912088009239826966075298632972901538157417861665606758832117288017880828381550320693033415688150912922209689192061294701739276660303735906384850251551181305477247998142794501704894085405188969123149022647504761487007351732779787238743473726866972271101005362620940773305742633407041898783455175130095177796807742189413612279549884393909887541265918846582234808288230441307349163532427355490990269462928468455224148464914210040140237182543123295869874178168537904802690359429672248353297057817028848279336121750348401191122311118245422414251438889763589195876337730746730604135744059721184439905756203578022138003428566181707138246600966498506016391489749015324913448239349691332154635571055447949188039034419181942039595503236680604202809262358844412116309295290662061640512843717811556970556920074610515575803542626269942090184320668457363887452085591866073812226356258509737898063098408744352138531884106972055396288541370786608912617498094522590647884352602745789743578051697315939981168170265189243245713180254819222382995010710035881912284685811462993143824152796054562538424318751667988114271473130014892435428696949692479809275050787680121390923828693507660865040271286090080082207551326529172520626894439995729000883058936405529243589226430106500302485732322904563594157396361188924170208080217799075806367593981935403713362614463910354907062108713291986499413566863873169566922396071447759655430784904385976493142489711223576883232033750480938957278848231082985976952332726867544434533897590540285008677185040945170959421122668992488647257392724746043117005747349304500579941569448725713060077654114453748861920062317029309891583911568015236588156497327624685681053484913529828267922244495159014293671085781921940826393453644442490987630197810223172996681599943331833322955606106433218531110828583736581430109130249772560860885439834820956566026914438454025650844360605391019271367480133377451258617663276099038797965842647596040316712316904508697546483218784771994879544910305238947620394934788120242300023590050880489208344227875260795200334739593241533694251888307646874312733491390042006832891030880464479486865914914604665956068086808899652705370406060246380484870290004023951673353169902480915750756549335466444869577718067611500934719845914887312530073557238438234123930989395839970139595523611655192395102559419221396291957432770568009540328166223502038820935173215645808060000322048540440985441192293074980782182761772033253920997917662790904830947102657658914203676920541783888476472460826558075858937646354051119687168000190724587375552517525456418423960575189223679062273003894050965165188124924327590127599689680180679698267709086996272991685461210304244796016973099591213415438659710014463919176602050263602608497978212887228773749069117438865815749360897627957830745155978219201253700355412333795284249399770919975630213673457549884659773640766569214538287031306940245213025992259878392344718895298485309069241546596003003352135077622113748687978787350262662330251920525361509661839117649283334682691658583343821165265556922415717625323394106184980392084447947326883378763518473754262433865188084146800796515125146069495321475896712005571151060155000018448144678272561263691044186576384890406780198694575326749435878912451557773530992473873191605520355619489915123203796914918510720805261372280183873814843961291625816673594452787835734556986875150583354131105812836330296125270512382005068367805198032232262900398605002906233391945617386607528564812001483083895639037610074679148241274682660503641496198189198659177025793171236318442683892802072195012547099457107903552761883335496021469091645538396705107367276645912531738762348597388187962175684683773432318657730370671368143737008906098861862047645743194849807005495344394636672893496478573752443088344320329944583406285629794680236376215111168519975141376103651569703518284683788276582664658298599514489005379453991281793609137606952770447256646474328481553720739549083816230239251198655764212251703969576068150713003263836413531529249341218836193574706070982503885087623195521702580940805598520962607436019415516267408094496351857875802070027518768379231931629357378082016195456937834564565682792010123903097040230019984989807666263378316574898762170570899846199635445566904369892362637471415438294447164708755864188717722324996453769480453211822243598325995860656448725190147735000758005656221001892173522248388203523739740489322680476380701796469233360448344942707358943177669094217393985985462637106346226965593664843605899861009289888697517099845357318642671889064423592199230887747454665549958131057241362508326200994347062172486684180807929078571135326005019055462296557399689744857621994914166544630022412954029626293568135104479726561759272189071019328452373598492987446396813984382752975797737330143559163231489366680472416414138071930939231725325031186837269734693922382431554529283111274078204099629816498524401605882869889738744681457442337432970964868861009294199927872339366807344523887715236734195855003369598097707029103967979171888165563548452277403359966778649563960278263782397525647815501816374931426706091657438785789327981379363941100733485674277407917152742837101333598085522966731904168705949487916928197440678251622603010040103062134267359577424147288006901139055471750527170011422924790087477920703655860686009098045539522919971088788789761680506790608815697936973618855847006200692189668270548416925854420370810572113976798449102098633026167628335422133585776701691843287509108266912523809034324470011529600797430111498156488232191362082288110611352354995903569910082596665160557939993537815937066753137447489546464030248123111661538912073835786896975056323235512612607651995413825858679613550698625420623565382022242202884136908724682886853188976522347199997442988209807471438415697605454910018947016402327649933324592614563018138077284845925529564548795186865287678669132943372152184531754939335637323396750006270653812757541850185891565313828253761223378906154439871516194319737159680517989792600263271646252923009760288624070794729750916445223055783471902634949318487152407474785009676476786793235362112734578043138543319386530598010797765106206133186059899826760268717734313557852361754851771561561651327435147628735877340317002344415144603408543663400396303204230883697397325204425310664131899848073517757120899858716389366308231674879783096264827896748432312095672191544493254718212153466045305266602722667140750051448926627983334078767610863475747570565132629574389205290824310519038428363692194705919624317480920872776674076076462814512348186419486101082767183924378285245693200686264844280894462669467657103341125057748618289017708262479879182515781759361908167384673473862273930320246268105280526168424573734397604895589717288379260992595343392779291909793206993858510140688444442428512245798501212394715445688353524337086108795019688619673256256344152616421211139778198369230454639346744903594313215840909557587218687937505753987206597190126608649766614734644833936180751479645264909340142268638103836483918691001641089281283864884954464687862583645951517792631766288760540917339886193670688074197410730478348306721422312440473426622475883114022884583506492836061444909171068229437730317904989482951953334440144078042839622170736426567167505877058107553286008522949160715521784221420881887635750035405813464640951236016902674688095431783899474147325644351599373851260728314187859055862441178676007840891942995211542987041858976719594812308164118090029576478508330805144928421855131738419523536615336220662937655261804131270873382737620627032793736717195262933421015740011499214589233324124062903969325163339797794212058128110296798415474445626214384841650224581554466584324807815459308646200915945972368695183839118336815403893605859367396458300536378355981647621456721769492055448136138748492203867507645127536507612555023397422001231524387149156236827665690015675783665062030447946319354937221663825570363521503528539049273470928402251272210189414869721169056155056097689259741907738813790818537091938020900793638676939964628809259257353195739108182762724602612226593001658996336212522111950731949783584995174737369509543528915455604263902104415212557661615978025887208214406910975905308503720028030107699532879679901012273764902046334777572555343864615565141378927566318325174020142342973478905561306083756732687100252008434658741829440659767907415617108412317823791433359268124268365622770587369356515999326956815175800708867060226497325519987748529209391803809941410512195178496416681952484478927314296324779479615067504671836960578111096653799705962852525641931191199573065170852426332862509377764188325775105941335845896438112850573697728425060944081097691156053167488794022696079029959976685755371279356024206560551014747139306608493183282175480036025564563996197339658619642844931967241965503295361848437352988481130953516516659780020681973487295201193171643109751903819034622195292547939415653234250407566800184036044165191513433160937804364773480420635000377755792090256189246287478021339103027711893453033515074333365736217525866402989967136075910595965119958236625246905968782292490775486542895002114077960457561804964242739424776303336070848162056832944506498694606419572522304666234989279902434085984165673975597489574939546969156428206557554698194780900212423722294587607126012629003796313325865744821905906177115048260430911378532071649707442517474440688042077597856968334920283491499377978949176451131946283921400132912616966669572289579281507783960803094052331145149302662264978927616051610958335129988229737382876800199580203867923216924576346207191388478322038653061945739371597999320072795503187876802526300607170094243837017387728730270727999695066621279498679288549458289654106276375375336987135187273265604183396982900458184586051874485143432349074925661732277420891180949335883984602095905079819185736919979834026501342688041530792373535988234546113381180220244417131291913669516251173675558527208002694449296165909281986765465270311404288115854205385073592501173109149002447290573610517311195385228002666995942661701163721178977632853365760538579661324325852573511521999264762253613824370924263799446782380757120490872664485690128833904045017723288149815420736260626742074343958657419028384300443155130785393553073195155497510514353475239850473859153758268358431526449230748207452523645556315648912230473379735002071868460416139384292438057166709469642363104995788873534696888118143327037419101474405976880524368395698722469380781694706131858571972707431158079189856692216302105867832996219010844829977709711331090841337586007584822137773287904829173571758827004785589171003500306570414053681555937171415501629986940558530211603100628456162957805330149577577448287811379017502421959829497228779283862645161820100714948815570443769849226331602192742222459097886106362842253290811728544869428244958890307942080207231613234933121541455198569548911611841687084400432915028371547383128461495460361445437688080967875241500876917932071153488441068074517560798502343003902918516490300085937247070225700569152485880931005600376210502098205088121239150324060158147308384475421725428428466600211477423764606625427627698325850252831886158630509218134766830458283570778368527135523559080670377129979730857664756296664115277794355381991923615748385060972262112321725120873043793775482525439026539886604248252437891835559566306790681312732637523453748946672178083917891895578784003945585410792224084129507546721484861926416988877086811257540654025039878432580831382301191474377315963381481433783983464411825886643522894661212086672082619611450646963735123412201740587517235665405766104562783255500377471611163383652588091928540732070368120451345176079302198922389713944460226062430213060178713103939787327500737836521685216791534497476278826566217135367064554832458356341341027139540033732944117792054535693120598003291127660355650795676999488215620000324308117909589650189809075199752145475172881225089074203645537954969290484116327384383191225550503156812813300359772750090408085399024281095869253664752243693057810002655198215090858600944168321198208684375248606781101630811353273857329743641545043624473169896979067543207511920889999643578735871843150012239981695516122393055199263913279516526812502260676522162740797871859709679739972198371832589984065288239977625031057057680884731506314318881468752580087372647298557207156132364370709277633147936209400803464231352854318553608341638687353366282877462039475493213213879808882840070731321289147304287845994663258076611128146213887240165663366064971630432245335063605727741393744034434064825210242253221013360653374991978015206500379104587146039858792860559706175992781535126278553027993048040524877744346854095748374771010738231033818314206536576907719808253635645262753770796301118101292520806416681893072195177531575110820096408653385501771853688097416907073910456684440992990317765686460385215018810307552082638370320869667410939073871853991244606865243046178476129076465850351306460577994043863429304817905404814367866068804838350779096860367415666538506872440416636800282256970369661631164443548521362149371163664619084317247243462891017297575587698767971138420533007431113391660055027434292477959626811953516776922909346948748396417178386539681813056859625637919586192454138702778988848416747273851304011218871324669711944672010191849927577100540120744346879589712901503899399800471691065882949365352787655808281439705265286292576593977258249948335499826999896295577899047475134519284028081170590933176299962717054102433129682421462434330006830423590752643491756542440848843843778182622511282333995241207034116883090403852190850615456975566893427943145441703916806765179114846090364469941331788200577225141111742899373147274266521445423560937605905893783138683378588924272997319532898940636191536190895908036580733552104112392959935135407517763417189222207957014591164750887604841971515661467863358839656594336358754036929886027812631033616849856884626866732911979780741724607879821339936901815781514924061995811033289973159621441417092012844461208923542847161721693227690770795046772149483068759033706264790302695520118655067217017002684193635010763811646022396325638404168157805209850930666348616413124088539730629353387714187317064353231119901767590049663772925911183638640987034999983790673887079235528106073219539703949859826344255001441505142408342480810060972376302551109549680581229625061532883754708158917546677666182505035073621953073015398537228341006570386804509758758554324861887933978956892325081165412571994619915961686275776135381623227815427083108458174470427433650025570636168975901814472431576485106832032922914068364039385312667353973868920163670999398457668773636586392456930743774313144602017286937524605087422423963912469228493788311923539164688289537730638440959142016641890349637703550554649949232627860740558123366608119445864067826211500033402435294701355486755328481413889871705288335980706475847854264725301850127511588315558659310476158416106835655241616858681047270113382691808610457322672332794428108291930631947844750992247284450197999130356038819927115325615831382156792000848068596438520051647258420901785411514275274909540965561310745638660201801884766562181179768587512374993557315704963693346656072302476412304656140126665142000904271649068352668434106872483287438293731022113031946398556052851808196003536489906397589867913392045345308825035656611832679850697897678109797544616814883505630799950792145130537987381247117391680389509902229236273278736027899601534423612613708494354428024586530287219088972623594392707254263293227332785699018635078194596512822754256451511844830520256795570942204485421723930089708159174942870253094764062273532754626640241851512326487910670307145729953838266774454039264389513443905671948812641323048002676741099306091744669142772361494452578644071942915754911058969045781228291098555830542149542745236914780772738180732932979454505998303691759855856923109421319465958791321021709252844944077345920145928469423576611752510273152282469874904349321108452576358135396525341598223643599781972743876245036701494022681631269395219533108836248985397949137499087193839043735405277272225207868326858991124582981008300510909553941021949880208885915176268828823913587237546057705143033698862502861305701991496773473059408525562845874766693486894375526982035417552443606625389989676802920043171338728297936154752255586309455391656248401412618795306869071841660769569189002390394070793904574999751466039493388762396915065093021940475148536371378550732961595923363581032939574886074761814496137168583655341343873174654582246821243918846108753123670624419198974873098045771129710864948724259318816451243818654434179777796303764904071394156136013534305063255896522582546293652583551132888099800343848568481816672291055033866805879460200220222200437633156962429584969003005685147032231823823866631508137824335885649781941490560900367650654046845740133771073974708722695128622692598046363059273174653788950759335890026632611914971360075164273489168554083765346797072618661020421747267646611323397754594647049819210757214868968925920429746755413043858084077824499608376072882560532861998604212737884740240090580818664465253734234765984386935380768273672533720179101099363587982895184914601259760043985084129860409419392458741362550059766194912040200901569670394276543330097492879283396936897743182489064952165993402589409090237024041329892400157726320359345374307105077711376333427440548824745019819829727126483302894978406147564052586007472235786573370997789919882483221344970768851043961285519667226047189357237061747295268196423621007792376314524722912328202283691212985454806834688153382246435565217773569684555661801090162039538997138867178289766989074724973641085590080964120341871475461592429827890472287197178618994070640321979506690557963754178698356665234277372103972155232168864680268508297169810405861938110968170233282872954709171548312518321112511042731175689351261513235663952299531732984450657773578107245604758433962128793254115589897890970791761656516528602378674767586603134954492778549689370699048083724880042328425426352578399383627884865390385382700721713016628964947497424533885483132234272530149263466633378251283657704218240001570922419256885293173457434511830639164386641700376035010046076806124363689168121844091981539637494869101025113072334367554844133442580595075391878279236478135888416140326367420753141517604737155916434364138632806921260759087013750014243185754511792776019026145191487743792144619328627915409009667255224765410375604407747339448102574417023114282539487676405531410753715333404307411327769974680006367986214387676416460578168339169559295797579375115238758514175200429416882678025272103709375594416057909455611256820943232302896948791586049449069410069259860393329709465413873759538346179645880750503013219253078410745495756592357662859856422090749588047903190814947672163444842131974227193081027150289854431852877451677430943634930898930133642568822901427978618405616537244933315981093284153640064616346046858504034973855287729317480143379677965569827560180089318464193138028102278726414888441476011830732553673944086274875619163974199118726108017717099590864055968579210503052691402841723953952779593411027176680890062632296276555650663303606935475372184607743704100063984577599904561135314592503013171466957195458772931090762751391968483259090437113114346602399639119655637153518284250823708509198221246755962747253789664501158116949390220871270153786188394610914347619758087227347676678504613778950793471739795788661854531459395327774247021768182413041122799136780618874642602627361437018379281886365466913060558747829417192867230871240801805904298386913055244054507585295322608013475630572147985508465400221204583059994290231204453064851103054466811271336471610617905650682680479425565848687945292522143668674105124776317918169608742831013500471861580533487727615739230197114191487933273124941084594909736952392910179504306558585751930638520290872602874623394250005878416265056378255287353001517741771284529728595378150722351546759269234158333682188616115856096280740438983973582166622840766347755091061829667695907877260716965190141927243127983972178083483773707182037635604629798893787993889097124180393226674448397221773050249177961568251025772733247386077375781897892881162782329856045668862417993619950357472733120573737344951789869559695267118914902540896778262971405671259670163141308749792390307046428506491614494701466340862871379038939031429843345219351931898655893702049921364458469051434292816065453231423252627720744342345847394791109655487791525789753283160621302784035161268447453947118791425338073888611323371665190695947252923993729057071470521877487780580093347767999007591619735505905150730888731938302835186677065413629177543124347399717954423088864201372246326944506819324894480408796483923802851768494845145675417170004361072469643993250265532927174051841770622809276342109776197172780836071176855240692592478762156213886075148378952821007763975435518947613337565922956591031319997400176354419388567984961883735530032207767569890955899844004776859996443657470315713265316359772336568138221916192079901216997461295962164832401230135246256326681947436565651301245774849433871658474901180385034824274219481482052056572538566563258756810243007927343563585232188728414216301534576060496285738803261213044795395175156140416334987220333059358024542505255797523766299760112847682127009853579224198877363682289117466969854496744398592669914669488832161121366664772622804406526157775573226518392797552276704578574953354168937244381228836020275935061287139872996011321345240213132338650570314463195561891011737994719348434566554837182530146079419291985299352045518291514646808135673127102474040497607792799935481962965640756995506861027244283319863732837825700469024240472036280329797798177482278164759265844051285022585976829544973841171870467963411361927014382260758938872880266601386192991964030756902267703061967264093633404923786329233265859787745955339309132883816622614515709011919247687607437015392883499944896930083474352621407164376916342660477220574405487321998560420898914693398932080672415565295787046301005490553390841822380955839679957702771915316025445918503219336506545660998949886116926681024702522424940861317782177041626039612605932911884825173608256268570806039708443359639624413667249126186045380265346400018177287479582657586479044885411380997031538315360878042673584718852306529670270684137866248710845662622674981144632363887037177987079362492864020876017251965680336252163569618354238301288780150083078051551640797003738249679656042113552384325002696202341186841514360142860690666448321942433277923178835908860980818559456492315971184493942958628972367390396809491206400120529791736641769551974153950186594043570284233238872731918651728315150890357453267785973728371677727398786925767394991627536487991702920020761667404243923077680311508098680196972181221345410444045016509183844252133169896800151244902730165617318656913793965074087341739893437738860939823552508836812981487680493490095571611386468483807710379354997149901757011787902390827575312407965355024392688941681681566392181445343608285773926025916960086559444361847831541552679835664017922739665793006707363110151134376417268746695209422254306042146750181795012593258375900030538559086072742114784553414398797591859279913560201689096297853733625631929630528620067675199944562792881306649766002987745382231546177056061358004516242271403550004389641110870316962831814611529264305844528291448393026286069138908880674711163923452227140716860260382100461883775934314831876331955689961849201659006357717960360451032661243611849499062037527143663632994840676199954420705146236984622271347237148410740789979803525599330665493357622516951893991024167066117579815153195212596553074565010666111800001864181405284243733699559775556734057240350487409129180670162585144795706595373262635026661747948057735097209468370579254362923731864538227183041392895960218138585802684020009743361265091581544562290035758856507644382212050122477856485923910458780895016567214453599101076127900711307702861857697039500269888974001913636726720238643940210812132153031548381414381804555030302978733522184217342912603162099145912741287502640261491071828465073268862122416760932170476055110579091266166097531084780675611310291515666408340946365588615720638625461030846417565186071648722625915348962119110754118200366612230137042757112143365432446387002682432014608623021492954555038315029124999346709346647910321076890454291436307666623882887198579942444805711365757622984065742322976493516432264205298127267249058100551907339959174470084453201747986888573245112655202318118200072516165547207270652142765479091282145739413785288912793147556867913609265236372987208249008386438952703377958657490136855502965597245132577164530617556515252694979451179584986434397407500863862265441429762731749917173228631004436456448500306913698885384629333288747892845418541403528590676390392348315908434083052018904899861212801865971940068327049267956043037636376494085864936991653035298223068157593789783893565979917934190420749390834836134677973312145888926842519641176958564426852806459481140446130955772684148373445437945443257494785157113505730793257799958775145289697953552272119251119539656126540599715364851358898437999996758590584188921767277277884407797690694379710949202276502441664367524859375043700855866271993821017499431156884967654492845149242889329668698079576110775102749027547610124404912599589837280615547657937668558001621251920237336177773105433819542726325203261925989673489219821906417047511094598341160860407590014834144001303967601876911356978000270947291222069105829090085290518618382346119384309091343725563409993125334854536924833264324916909392332890820971089249233151401767512260085282908427787380213344753591053284319517247987106589592965836255030254641854042827379944880273681018642650854178830655078020217704187219987643246305552708026117325037512927530218180549912291395777300196638190537434441411347074139534755452309015946464547811349199933095413137388202751870878875617221481862984071907043188157460478385754366811186437158668966034121808351245546214565806782088793019811453400367944656718465369604743093395149959064394870012861465217586174651949960743648452392237797625476671705550302601904561299418561343613526229458017775956366433903995773751705475056779796018047240809299398091071789315092643943153431445816086162888157965942168520123169217854843727174986218900420481026737330776876056904802521813442930592591306269602757620082524553187466997139609143518543643812692878017542308150851034164089665199126731419410249668443010984850149202627928145419271144044140831519472496983155786134678798384370300340362641553343317882796691432280180674709256756318224821787418578868354257333167475387508843054350045406423892380706790645484917280472661333005462820437392869272845453613261204438576313366405696132608646545900265733414645249165265820746760503564039953166910777237858481352028374248780098214980675897112319609427863363992329563534266842924181671063058168816907378704324965213661628245526464597375956146765636844668019732822725546440757718093309209701238001654477113176655615056739481669856744593108493372487978636116547825088210659435078174353120801603483471920369487479291377377617825096643266513196318523071369550875624733251369917776958517168913093485147155389715946957750355471891002608525595555427967790061757743122738668126841667761112600045075590339582304452787135260735046831520059117169635508321198485414607169352267535184601465815862827272315741217490634120671807014057649970175994024484857341969886964581957425755894067049807628429443199883117934158228199431568872226275943816422351370952491114849189370300238765719476762087464627560908113047202364786670085100958025624753875802654343824528239431253929179965217014434463927309263002506226843939807898279259398676869712514652731437892090745664982517917873439008979900578123279478641909972390312571437539327531481756469323941111805180826889629720090183500347764270818632880261499564550252355092019179067182984346955634803175202062227188246127035558271877771006344761369183829215739955924405820902993651578191896587145766373453834520575563189811946124261283203493480419470012249302313820506827334914610148269649194904788958706756060889482688222559885494486649812605794661772277536496397287048513507863711602018321339590958337824574544941777475415627774764309192939233976520893423486841053549130335977791634378278849065582463317483778222869308011245422691409184403917154376708771307632505551629397001733296524303809293130437489535200165724162989137548298949255430896351321613027796277112056011866520024175161687380810932214852683951598188606148800553190904204456094300879054525562440497575328149974605914665110222330336900464057984490249269613508002977664649470190781943605706550109799483492648930053692267722114329875817157115913763994737356157238262501497229395748961073964426149388632797968419240958343895032681186036804153568849912915369031796398875876960986362361467833370390201631759553594076089231681300626459015435126268717423114277649120684131036069828985988819908008177022018079841172329179997260491886188100152765958591928438009446340750139016378494608484877031374886775052673056720749857016044723988604038552762426098999805823948518910357241531754391267721697802336048731011641041765426450970059122193715830064838845182237844735922259954983035908762026883075819987025797357327462382242268562151031236706975995145418954507991654155687877841187958349609550221763936693221101804236499079254269492600986990072255980731660031553103477954183170924628784589526946887624145030108666754824276073796306277843528107722664015325994423634617306251604461414105919212781503418698509244137642203521229675501625613030306561565987359044941610467593432676253323634723716627974623395054738999523598596518716312501516282974463860825912591718694562900760113397929361971725695342269598114954141676924672522966836342078307007502511145802432186510988557565862801241658444055110276649379455865017144753338783711594471431673399069014579350757556960986222535325552645343843598827078956516673209276336433243900408290406408493073517488319339674680759313238378302416475384755911318473682995955679965715028238519959751092121001760372072426758446520606137767347857259516022588929489592919446599018580174353086949342522470362143302525882429562742435718088203654800268988372368108472597883374668417623938959813170830880236574403535746421942382598805683844257678193669926438296475857046632488418631014997354304413870735865102655461111479465697146140144835304713395254017129218184010783825191924412277512313677393137904836732621829190379229035588748905208821697226043252081069649288933766479541942917981920991395139920516802611087125950700682157160588895538814838422528154712331037679424401765237726585009946458926000489550937834704494666858238747506434065532648700815600691977585425768825387225714369865310775124070901308244920236575401049784340710837337629820310981895616651593846663940927765876897732245717622726251560077905193392581100600708856011574877502655383983202351702299269218121942824611102008634631396665158936317511823248356981062587541570735730811907967032984185007507819008574546520500168137618910654608109052493330321357577508601746478139067060821793727872632174184893733598328854888261185145065401076997807329064590035801433430407538614275705136010871659351254852678076978807279495724327051094137634117814561484501948306189370149991776262787923504963873658664872712012442672887303805442116863642879062326277742485075825729297863043964364502600360749239546389378514312718029658628677460880066097759086085591043641495534610924561285121189747211249311109659760711710270874625869130802796098920516779059817101155737137751386705457071316133143577953654839834125693666438320848220712633587439212546870030818322906491691718882110513565292353225286179821271182291728692855047318747151173793999533301077963671412514579383335048318478795163667706359746882095493312465773435321905189281449298549665770334593483506644038932080188053259989706690346887656910302282592638033220163066554896551113868227971064070111549543193394180732193117013948037967089736044793429912031487371080348087361195268632496714503778216906942302508015152397110451172540232846367235550838274092723450192942042686632628304561412966116176822907156345319427058275221846319325535468880538620652467510761447121384584268288013863936443835390485761603320953908983943267261931567539321272652444068897437577862057978523550207069964176525893627931606494278435102395250215680616258378188567790684387632503501451043572030461761918759125675448390646407933059763932013945979760247639175350819267465261069343604370476801660075190167839977182067211454086556329945781025436527849496083493118729614194773409438809671886911250102474058155738655299154180553042708258084518861723789293731441938105036162060858554205503572034752311115949960164992283806626741911691422026765733478398760985657097211441566879794726631095453128093825609851782363535709536454284776068333473688311452969240906321604671694927015706056750267957973140938286511226337812023644148966567918835362142580618674816268412185039385420202455949074928664583237617510290598281801681667440732297445799802674926097826464096075419477645738761281742214033678732749406805760089416683075026552946318277332411160895526184070837900553429232976995699368320700182184618587357302554693424841642502575922881997970169081115166323713409075611949223034517787223798464504057040200109507354753403739228746689752392349104534597907913300060866880330961973675689524731082181963629728244143160553688981862144772302302821051177076877305958669500300771285520309257409844641031338446289481137011334736016435576989330795699650576978412067856914457785945142873039299710716743901223937653812837482979634990466382274915301707932700460122951100751636677991642595079598940526847885812815648894807512789828583238579589083624469251767453831811258374242530338449938721064737616599435308954125465809238208510443546973204814297970105589336685829260751121489178299347220464602452367109797179174116982374826688039806067731728453114324664157770133064317836040800766900021469758628545713053113712360679363273865448549401686453462435443733323607512311807907778191183729459983685871653726492926161084937239973690816750852161648397946979656162589664535205662067404180897922136033101358739482071862828016756884953655851981565061030670850153287509135119884366942359633175900579189288041036033702507249613870071245465499391106663983828240587859555551760630502413913347135923430733868141716118838528160391868966680558553305858910641536427531145699823821445822757785500245774233993756112532367419828418894774644076179719857070172793991220019788638575683865252967250587435816923230817706458907633709453931453843422835695760293218934027408454025870305642022634730455519471256894636364892190278790759032218259533712673254419045136332130933268602474479018809757962157971626812300892789268467311495585912361494145607276191020414716789599006165745093485682083520305222565896721437318228765150895121034374877116732115593318337370633280692735802680661680504284530603809007615906024005134328840173726616140627884435767982395250688123127769351318726464044147768379972265989684666782923785744050634283920814110867260095497595019606929110333383880919437275024581995725623980122313660370578748742057007683681369290498851344456346122228152994292521435350891693078685572475432614099483255478703695472998319842792465484848409941098596012412479970291561500266215703780348626285650833478072333869847423427811684590127365519300973329351038151626718526352261621895229531318167579082194450880953972466047746793719609743644222170873039833755583548503654364439711955418369003887798177984912745368172624977863915676104981819100519433609238294601079221694652875395847034973641604630676779117082136315740597991725726281587836878169938566612230853335811333961998423007473661710782377837756088896014192311590453942262459966528422905781187849927827158207490695780698224250946470598177487903552463474549609615852782050838262178970822338853703295443317557006286086594083541143214786435816714612363248281762090095336365164554561830853512969512642873403585134139328948994709781520952607832798658312470614366149887117223882827675409202107395683032068440291837691403539128702414029863415025438828814822172031334867445656103861928110836857160398087402313910279464091552126721924371032432805475227198810951535826358023404013893020432220666913342799671794994061530034033539153806683617021827738124769384353157866101991220105686323444252578177498976773663786560873020067066296854945705757995752495536775354959901881445812185164402723342601534830110474662973817926849162176152167416291254378645028839334749972851232167827020474488791958914743832054020685432826727398885910278411627391558189956598663407998930659629414027292371361645932382670478375429491560792233452462176654613390701052650055347729485193064878907847543769947512431146710737136232029153726792307971447094067229102385554580448763595818017148983826075279541413833031771010338262776799838972457339080153248911048940550425068267988172734005333277478079416818151038743958968786296792714070497907568815487416257701049161056031759291942901678827098947551800029382402048623309833120344606760475273622392146979348215958322267851267671276536576839019777341581036467828786936990788925724215733396488880060307243126592950422922690331614599375178952274191264046535698862585681121492096353920661348816867278007168117106688252289985368259953076641405262951264435077221785945098356972889438800041813162103636607436132697056598937809269767673431241630318861357934102322970308193117999331370661849406998551875128033689886219001744237449307716123335677404983307418012974414881544760086402383401358349258278454288343614050280748739158882812831495813964025749536760375179150498649392419006120308932577242991477660630267015743171530720270710934219504130557137273793163802583213450614647503816643879753745465980458476034527681219472597522067185329208635251880789239451804178378349564955348271527349684324701076760149166396288249874794793912194312030656836638687318019623137181153654131472947349608188416936539552122614884643531344036007711362134598646371659379275323623369082771458810882976985143005480999330290183824003857044148629485596942982903950069785325913355164892041520323436285945346011400993722847978349034885462796335190350956068013482114641706597366688613194504550893750994058314827877571243186046652809088538358554737551200488405376604759101672169380472066004621652926941858842753123037005738492450450476304980507535567897641359598269926407047725503823126282050698888854725869760756280969088787136157517381229799846678502608701042493639055345029980717667823160141045848528456279559994476911080533258280042669776515968152006533794738006115635885514762439297137426996023471540416264055999288612804283940563541939033184584460391661829773877277341418342009430884109354073983680072276680226467833765101229886500401282573558263241769643072712593505066299989090995015272918436507699281135803885220968508878715543407190159753128102738262311624661382655610242236308876107304442527730551335118908175025449889819909064755003301537762821645373308255302294327903347799470905014091412813118298768441947330296478795134103511266311356671039846255964557850904040972462543763945621951199471122952987127310955852066144975574571579660730256872596017563059927940712942343538557657427294269322357872414663850779021846206074986257205070333360976061554889492005050479937743588131202395849227455597074549070953920371881259326533375687729416721757523803978396613046168307910975686646230722420196647103390117137784638000713733400917852693031350980358658540760234005057454861302962553799217922936966361673656461259301848587303177066799480495548772860934679681511637645203967228084430625409094176531442804607426186871142160707904934489582011559009172912435751858489073506310936570687426932166676764626889869210168245507300296407446185160282807014599714981442996083465458666445582030423813216862828891020954400170446161762145672061857897208680320739789854873475738782644537717739536569550402626501687062796150068503691882574845791301583001604641397009359867680926300385669274791713978035072267133096760653560090288321835985586471133249782453274026561415016746585138802917815867146757601395683008237881146099249872928806541746809555636185581213874140927824999097050856028568875930935737340169850126389848216488770416623199509178756647438315820218486491149208009081703620062926287996017848094963462854861718685404160076255626877156572196852830221100390065024459601111569472322577659667574135607936990380774724869719430411763674551472881538579911699317102513069443932089397150907075932612965013073381208928295542486232372403944674484875586453378342741245528477048085779160855699459397753764823700691818551931684612184513799927361196008406597357452655324469140320275686194800605138165233624789811860753380430567759731369102594835291259349932233368308576136817628613482733308966934977427625108499012527312299585313738513794065654276451303532454512051732170097122629743351628268671097819768654150338516730080478354612119403690660694572244356761066421931017849217507185422499541543014676575796391974789599568487854052969341580893471697460235870470414896153414677892787289350516086494458067039588948717637312448082255223569857302932067933783260774999586392084977619203049414378616400158016329256435922565490631263966437603352556193942481807318614438306891163042604323426834530147918903129813195186456724584426968016071065100759515656635241278938714692953907362422096840497808452666464603182243683477974799123211558709903840284043458821860745180720958625705166292318778339720362137442928948459876044195417442671139585322068231179167105884711655100379528522762962146246550310681737280537006938915456066382769206477341129084118372588655715204424031733356274578314421565410038501068231516191758747518278523498678921430833812301226323315946993905071821815092952408976065649923522482188991001767459214476998775672976828478775684586479963243114737620317468128030909913821404032498268478889778205372249290698910375916181616089775335820084851826930446162504693757963147072405842414203749032222957195620110739772219594320139190811975089860260404449898549807040063907621749889215351126077421963203453777676325893740951758545967208085807303766687010965563531049808482021428484466174842955872122239289536063314638905531297268820658859888823018388701780440389203765455761738485112805013166274662232327286084246827957430458096673264412656782369357719810395921016065530994874627212103920180323692217985748794703299149374267247343222402363613177879113853009681859997476806267525127723334860566604895247805053515192787315385695955807332722779630932586761071723418712253453220812580487320428573978015406992193411171235902094622483757564247967546309974420160151196502475851390929320677721620977421921311412597693842124338086631927738830922488055237058583534062294549218887870277335830281075561659418328449821781683937014847471598192565044619748392658658215355631998390623928010011497822159396044957577925844356655862903806496638919246500220210421482640608560131996737581000774429976733417627299579677245569472440593315363713176259865379663397075598014264592916944588864440334869206059800048576238157288979919572933135073857371941591797804829382411174548844722773213444202534444461905491092088426144589544504112499944425869146671310622243174809576975908943780868832772491815594794445546149277405220015992718477358192817106775980318809696598238253300943217320956079589789896413053955025872665814790708890858826042666759990491504591239273511048328287656667810799155965244939424085517558530180409983488239456079454421892019741152924073721527871747190287356533148964598375978342690780017008130895820331269216431584102137290580293274348932064981820244215169859005838272460629013541460673084797981737573198698711097503731882557888646426508710213398897351413991160360043570250700890042201190990122419966448336812660563737349942583278747648821703201726869147753344385361940628970417984353556577538410455141572909690925150273932516170545692542658871065358575276955306368120372357476917026687180330675505640027012740766816073686074840768484272938896743122961675638153484574555575884518273684218834362060808938686827920078089661588614226958195902742620358290542348775232460729522348307210132089609658718663145458498754622276008701001249228991467330831673532313890345918290692964387936199432769518113156835466703207558720295736922815592657857583808063958183677997480145166292610970684448135946927400695740747847905623285137039616586754089021854955935566431854562833569317633131772357010591688588976205054169797565969039904952356613119068640647212755747483754668631247453453654742172007296450711695974454623825073224069145570556191378262686314946534204444202643690150552972632327464236561386982968784971489321934588084445842004199750617486578793290968265189002953954273071160116925796882174912088074985437414261255813164313254496187296892888271671170419480542831289790262351446693974495683351974397480188033464638355982661208168655718796671899057423043324305972508490012394454658672333940816295878055242239650513790610866084456152867869690239873995659114988244087207958671590227617625528413510087212739777343951757650927298456270723964570383115479260565326656958265863907811416139879675850196167198439117154200940035525927960107114711975783700470551332919511293160410818381686159769890750167705258939719911297392311780056720936995545291533162725144777641429693436488049809190929263496125812673030335838167159598994960823433320237147125996371633194755368581005552868070448367399278255865951777381698441655389865713839596294306946453527184215246224335911453149102839446112155354788413265826520593588581472685007722931630708280846525165530168266419102251299826926492275356607317331080315368633396911071413498445436150940606830772039038909538805640580350537511686648212007774804673068438770606370829691798898377346066096989839019172138622219939088837686249378113032459886963293316941701126128574667631630514283656355399593760696591467090979421414855997154584326884469162000546795951834480886404227778516133407694887446198714049850410138090881748396836056650300558423607041261733140126524549473596755970408060295798021360071833903505455147069645758534393595914630669366679548990038727453606839685263703192586498193027263097605973921690750894360874716405098690443405169962112458708412149181648686256023207838150903051335399739531510681586762500126715224417228696893741659932605044975306153004484853792180425278645410440636577486742637552105340042578767586804882788914089444554405746998216399090853913453296026212016905618133201494346194580611795530497715234360873720150869282658462118639828942254162058559031970909144519891088530930834328566106033008927194534279287659545661538786329492551170922212690665895112101421907978620552035936306719563467563919694397334146309829075161592125760453063526869665361070980901278369583377824654780865577068400314763788667392506883864022704601041457404909780671711864515765441221995434372872422792619749906550871829370630534291229321181910334404845356051734316837445316226887359276929135242838360972802304518337836501247634630033632489513177468334376398745083915731591349811312830733359598777255155472469939669017465904068939215607934579799528248984674285773287154824974854991725706408514825617241013699278144437353261177380099100671287444399159266911688859065273332767474011737744615101988874035548923182876506229780144645746576281937141047173631299315787082319829491751857587542870971775333007463278493901544935850470174052455781214106914223317062789502960349153361895253203468543595770516938292071841897837229451196142422737688933616607202571977172883679328647110654114854259734115892109049900418036548495128763488389402580807752808285146754440537619219024259598191052437044960450341338066492881699008749456672842199672452482648660170533183755830639399592985558743431064672568306073956591686247572453012145109464062335454221082124399809833941971665336996478592309592679695004650537968266748900330022062203307537032868223654120255846369292805044932696952060124584900382013164318301316186653944291213443535549207568161846860847620343916331256542715692080941886106167437681570263766596814775405272059622024972774252205214355388544869313476845203542482068044008749354271989504263891798562670260850016346153106582667350593379197640407409024783536295631379674904029428478937635182540600842836911910815867046800164106462200253157599378075735098400505781920411181016783980129800205765707637480685782409482846135651055737486989330419869609579572197482207985696797916295110300501892992169077562013676135722290347920219573266899175954334987292657521733302894243761246051944263929623132187550973837504827732839202951987941796923727310402989631265432430466605972365288321292375992846289859864762564973331909368526749210882115047930925763848405472284668677793628864384017306840888105918939442278591400594854682030899611170488881400525478206917650458392483979088237897135508807829380248131352253084021421216272343562232293306342997985966245132094234958733218274473802231553419582469715607149417685661017151502626323693646407360507471645137315916988769385796670952279883642353669391380422796735084629111522451725014919660804085811627803050902098207464108482446507429063817033451858437681442543304691408812195733855992385141811682791708037170460590025435809109226352843079726098051913701219791216780826626984719546812625404916105562874652739261091747443807982411294906183628076410889535765722460681163282126325019089975542920499617324968016545000625364058032723098257904595106830507142752598653302425463834030922387867121088944226255668021159372342158667278805708162865400639042561105770361236070302799733392602747109830854380310355917875106892555145488210629235032851154601256394887505645321911202161465844502467995087900826774191550400144103071095168147286679082220087869002755586071804592225723366686090858966265465043472989446032785151938915201065439109019065148384422700400941352143758402016236145313469224299666366533426673220424383909236190290416391163680565814164115904933122769976283715206250496539569774222943383017226204401833857904231778641947499005879293142762875347986330789658020282162842474234335867524985274134051098512289593059194390706209290804471503089606220089173839554189160580174788681808727941021717856279931532767796432442988059158593376069788244676914852838544915112715552471421094032488620573348890285385007456011017858165875877192739510840409312532124427029773841394088031543959690752805509653782154705827753232935715760268112730812029295326107487556178447039137509809941440653910222298563915429145782155634452529698459703682168120004630743264027725069089114718787431917587846914249629852069591683583510893452013655807771402536564220937877016018971733579180711855241281772915156158835881102866093949862817441852663476598687442460564720872138368770427417235425690248385088353764103135939892698279914632615873531409244740864613242467666543998606306947506508387261282657688314716916445068430132314666176199171968279795392135907915090750341800933232272402338668389650411317619410370650642653315689017699756055034007191695967329501727798204269872495912181300063188767283347198473246065807083969051544868607188029113872036290735091032128680605306774006734281883417619177826399905310632834479591403603207432548776469838877353862616397164608929865702684573730179898274358465757890123344915129158164492172066054282810450625204093209299276093609444309754264875467466169093897132055786466437376701010111344075744251497133757348056394449634229350997424589520758903797181374729079371240313922367161633223535854715021053424072912390936388144809325092854737841888019514410355675699665876776533623404163035376347001236359325666528402377775632574843077876386634023353721969862176093831979968627946112109508875759649865368890940527213327188899363217699859652338314765177766329540101974658570916331239030882608251716894617433379329249124348347029897268734463808731338055733784168937874469697074813769884291404893375130195177506892335422367524667329983364534961181505173580821907774294949988232134864077823325453385616341303434055887216585433980070866256210444802720249966684521398523647218157664312231725975953856926314381967028770454535374095166452434094543098133886817123637121650281795961477237188524495204237646728402256878472412485518273850762113402823900037240409751208923514560872650125432993190528538019515514354384991840215352629093439492743318748043125116754004303373918457146807925410599466678375156096190914866637141214373009741044249520851659363786502596035531165201117504722011254702200394077396837618617847800012314396282035981950419996297677056027540620617220187808132595122905825636106805588734187178032446193121795156162958886863858708653971424304829616543281712196742953175082512746688047751486492842150524483600468265859431523184895719716039669795983044213922409164199821158884583734502063943328710387532066980175976281006163575921612887986021708814213080936493415835965311297691119924724531423385692265611081942732979515231080897608768634977248152105033265825511530046010335503443076109721913251910390616384861762213871705311063376089096712629020484723961246944350339880407364180497820658816466357270690674505617646808493894006926210180847306635620838832707209926296015479478914551454727370170039711236905291718076905713118818820470131535858763678920818893399905449812110628229445171340965440398633825567537025044314657174373526407465028837121573900703912032336557767848742121525903171512493356863070044730688335685318875635638320864759248096932703366416870422697185479694229335048073109314728346393883292134953390648352404194843333995438308400964702488565489215888121085955958314880200994811782464289745447044089563937918222800798004699930366472571739895092311252068857036489464502800971153213299419271961451891288617771695444796659966861484280328057747019437035482159793782709318025539595400305671053303071784641913336557710887309234374794753776645226926173432498581567965121520604337080847800752197655706939145502942949762761072162641835029135103172987118888853280714870165871384684171495298812682211454562140651799639164903319164010594972170198443924422951966877539898560197929880566286508843845582271125989909279350734585921930038697373435698031603779008932724253439272818832230720242764260488464136918279374260803907683564967819271230783763161436952083020799741271682643623167297264935764440273756918198215888213374770019662693837765716690937286806969991036844889037711604947466718766988352495387852255704284200298622297189353633963105350937053666890562750295225053025218338999292869399459774047126337736232666545977090237715156540932310344030182348712822622957163076568041941844388477864621962777786606177640486820234993219863088232353218461446218320616779729126233713707089391350362748243307273758606851908297531149301165455706480574223295640064498366253915264708391088630416894220935968841895947739616205234158758709516462989916518322467352166614036639834702213773007993036542321208207910662883113433766123291590800381987178345600421043216465959030633930072389380759345769039302921499591568226009261144300214171582607596419314254774859995763065817939142784250404549223348629409550079819678388327776167197402583233599756128288621545133300489046348688998212515364866657257465748600890944865120799254988249150354406530946776639759250315320617005942361445378801879312819192109346131562854039143309751530793744222798034843501586146229964364886709927864930236072642196664872960873893997283640306237052817557447946014593039222096954590699880929461841030315683953358790837661173270925355107719991906341316937699924833752476064676619589367559061199914313508641746296907096268386152017254975858799347897402793105719889577082810803017352208752698589670509297776366541103486891226717728977983469471249112333831057197823226684203836179114270917732466734284304018445900713376789956025980415059787333932090339098678453126104191008707590459983027269842479426259764109313473454854836063581057372619962266386449672249608888177897185023537541282855924215798860025277741400216337068240274320770835450506710582229926097924067935139260319905840124229500176189318902400203976357708545951090873447910065896442000692223588334613529421803141281926146953979582508917154979957370718746463603798094838696047696714093733277034572102270386517612017364802627257709773506423562751941084794923599989919464962182436826298172022516066772493725721071417406324938193232443519471012715749705986230664100920197418438280364226123579501763631001169222495178407392799717329540183844382120943836842575491638483223285792278624639074420912591887707449847770801678925150656892916072102451269064278177565960331806210976865607058993810373557077382718762960020157431359522472451647960009995672588681505785424132117959928542438788441629751104936673445606663747010739798363734250839712188961710600849510021959627937319577108052001258193839032075884106633018067707831411360266974549925905734299067025807097472796445660642254780753351271229155192018391633368880784967836795592773567750565214418876793806696864357258407081999241769144341698367760863492764244069017416387803720190130105577049740200973856911092231880037205894888241084058453391023152179854319214879510648907213781776556460416278444825314663020167798755598903678066581038512521021302248847220784147359639896112324866569931019094434439826284558599012256283949061565294552514131164104103340095132091744287704477334451856925314338439578703840180909703945845624473771786246905236558934136994827898310434590913337755115500310665329055869761893976946313399980684860134595636408968943577560652687546359321986820091104373521691434304761366902472459480758288353569606336966456882770741255520093319662550688476681774196097762601661919948284781391346941326440983351371609604552070878570492050623550411573956599794341937617700950468993432843123018602118241962249079874906062782845285230694213415868002653133267976152167495319534584914040666570873183500340659004182070275960441871438332246858328124406273785918489722445994448540177710342261940610557690550950222862589282463533825141950126232699784556334267505895504089978525087025651422373917233004846949722141396784002550033822582845040950003654444532527434910099926443890505380707443578883002948936142757499398864666499019899446522587864491579405763562427345919320631685007939461728837222332162825279733165646813743524889156887071380792000557152825549224414432761758115492575425221452872064428407051114191558933094918932434094804444146512900609968261604703720127386635866819190252266244404671910034156066711849303504334419155141978452364258788108688332175834731014920243134170243996485071986604854184857936600129343780515444018054425896366668113978621567232708550773941065667014473550855890187560938744500980024725968307463499581949180772434359939585879996987321960539097273698288300928362062537042693979907461747892621862174202147504623969804679759284438400019259823816029239556834561598675443258275800676103812608160073424297192973151273610764408276377665330989924409655752127891828674674141624284716578352382104857426679162817470882645177918354780731638837227180748512373032645601522354374094421884302553970432920272549944156067761540151798717393094649293886672061656778794758171056373649250955924703097610637453185932038453823692370707968808902583407182074539285779009404963651496840823630999209882479562751866401717029624653514637932581015082538528711976367348501206243040676277701499251045826965182754134167160482948883452230428767682214780720375184758199237704049251999956197998282005962626408378908900944140035304063644992248532094045817291309907717364175150171591931886384186118879314095335084039652651717299798188792550826596722125428080220951530886754582113014716091347450147116812557951470978023883956063471307933722204472367675352140078303227591533232993761235224015046303242858897205681984524133192374236922645066453348058087965227651273916032792583413754905358596189827049981333713812293492225874648752689290036561712470680359501288268049748688027481917098082464761537813475671048677016237184558391960228219056522732935734913443284440736662422480673302236505322594595275997297713754957770216180373097569193848383241466760099355753716252514402275251311044420494800436567544786521908638793289392251784525498246774861410476403785903349765213022488197914607445064829095181233400967967505668155721627209651310590989568241428833832457949614187214299347776010582008247812993264479432709668518571795192346090393728845206561049816086229415088272341884109260878685563384957194630854182156459999965414120954588399432566170588527957341412190059311358287398378763414608663663275948881434366853380725404392988206787074543853535949927434427748558381839409255082575183944428113649797442738943915731940123792191742195459967204253624614297193842458581328318592885719612773959041693871167122586670481910158355880992489803798633531541759152937437260072714747007518869406168602302642645210025554291653452267389543819575184886133844516849155123136896197047234887934887949829662162521898467370905065608753851970185911005542824244799862106360182072021039155028904453212976074746018486470823243362768643034026149042913822197734157668834793111944843889198043306168595661236122653266341015326331987246025823059847665484000963858303231497943357413924593534454627266441144548672334809257499380342033973344622897697528873365742143457336643020541633797003560056169276187608760328082052277879086603139381107857929736443388047848122837286038200806093061303860369346093513069386591754316993404779125903329858356356349243140232157060805808450077922950366224487831047839868837386868929318937423831981812548504021770600759020817978429848256859755275846343374982775343778194184076759048707873509508042047267406632986635895218251906177539366733599289648922542100175611373050669393287611884434329100688687942210972172378333835092957901728296914187278076793451156999255932237388615115437581305165058146651028734335346352043242775914688519902413976424062255848912210670210269967185552916227185865978382744181892143628037681426067051540484169946455587495082792466324948125226958581047935590205029732668381498490219806328620431183266579167955066577240804388551963539086960284054466212513975369797992596230390938340794564489078252402251010044608923546415402426967575697613831725066954175638335071666133698211906409143834250550459585756150257564933136231723547935815185520742484004068373402352427420416765390410706950250966815220937511396554404924364485166419975681524110710292180064671605530638199485562604919246983873689714941134968984168611984687830383718598845600464552668059520035048622186974520989303777758407052337188071557125169619777489993582602055780856038941380101253209020458616115363144551540878467743784121314150561808128465280816919399791622611964963650168234867519597472264391806811983831272465293434139411331111317346506348798635029005714961074734282520553464414140339820163684800484749713070467001286231712228053646516961321649077613371761908749198836983091185024637996300228289155639587417940562753671014033558210171833592801604139793681363391683108185015203592090305114163174938882798963710298010655893952482340103824818326032931861793302403320454881802716606553519743085858832048672071701634229760332573223453783597056293056838824053901186969819384350584682569444805269408705121064896676656856969329711480743663356007596090708622994018386648329185604883747689925514883343625088196361665313184013883081318379677114573256025281351598576295634815648695827577606660466686611741635478383507296155356135315075689132393685780161333281692194787448618441976571439410670688108203812241402841539455834260731002509794428093227417002437994290744986436123301529105598109399098610625725814782256891890073936472148730185613399290210530919283757648892445634465076685013826770347733866625936227299487904002821675437076744041415918224995217377010876549314793299335904631809110620899040271383245754980468992950839748054092720763936311515988066863956208915732029247090619981047083507592922417205894199121495907263779269981528047457476831064524437474771010486076151031419840266609495932270988804204615902854435071266757159220093316604597732139011632414722717490818852270522855440389425751103167403018572897615661912804532111201627992869707903276200393099012135655457345070034534130329058684449137478370624515544794348396447461186989027668043720339259630417288504820367735460448782147072757415134086394516428427024304611483943628532118888046320583025822041197953684713266202088708071691923637831653757706856850430659790560621463808627698750581203463738253481259141037903158634611951842555609049369719175721982364261463989747590184099364591857895502054008863560298920178613788737905984189316447487693471402465685588014893065109659862079064405700286173441006087060232951935546429175557106723884181436519513331322343985291555612908207340252222881259917130980159569918712162241651739890567383373635324067923505109901684830594791532564985900584250712302623463319735473007264066099909616812430193312735027899675372204243097077831754624094616132518971180934993783200650091770372831905604276562418733421989035308534561978201009781065882290398806076490830903342315215520802930671615531910489133078190256101446491750209655954985138131502482275055614115980608601041257390859854116372545773928648277689009950492306922403901853915514383022587394545882559892360052159523914453061986177394340451633301768190752293950464922973092350797998409354327720285678801863654101824838626146228185621210086068145108378843413152445736382468070629173031319179141944025659973326061384001905259527598757736029679067222472610859367509867693348615126259833795747838696151045648816030056298576015945306399127402143623775861198585255075803421254541525900872652321832533899081969310483148094823926716835743863446672309027582295312714793286173410345757703190818792382702223513086288475687181808501914110445520774191406212005892922200595628709633902088571745827880665278345939880069850859611994606488534169102072898221332245776423545088722077958803269310005353298594669627560332329629443303112425211244065978280339504151793894263391135415578955362770994022760700901075486123097326887785680307982405926997405607565337486075027570103136454649584826192102780367474668848077699096615961944401122852456100819222497826367805197944710834662969615693607581383410747731907860801011358433216199432816815378949897216483068457438167422276812212029181139964669076378406555934757799723017098140474717633356937182230825941141237996336749288005194145404941887466176098295025911768030012231254554220045134684936596198858131583532789061048267419426684147274395785885865163733905632305933243854899717925152899037491378540686706619918030449376412290573324266512695819551353809889807330563662268146670586352292214187252703521879026529277618692604741537593216399910984752126242680877128240427366795581106397943361360968474985320890293433018418644281496730737748298180401024136475849790292264733709708903022655804617252948182292626177151274264794825726671593753079683521137011815696200591026077695412325787978178439894719745947635043118543492737640031554745758482401511384622201790609082136302267043021331255000136387548574610493555549019169094679644910306361096369327047208781901814552743325573012295696220333914894572764482190849727951621101799942689479850581168831351912955735960568190059604823854285921472135567405841235859572600719096366686190556142287064073088373371312877621448875689657421319946277900072102039792313168665862106441987088106169379942253810970464514580575551143392356559449886592425586418659654749331261994325600148113936927569441888245996502177360429871610284382454102096707704052477671540042871833127058450560050515693719483868740093999402970330467320387034325910847352075003066658961205731331867327657215624373399411889993184187791498929334137495718304373181205649915268168932382713536966923802238506186869095573832850792999528917067883351013545368587593500302974711083095319570931487332416972551770459596797935234665121877958156243679128169982261269131952814401722438820991914134031034306581887629830423821473199023898164984470720067219685744303183270409696548520826791857385946745070699593498791530766864816961526839030068317301783594913109111990999438927246837521059287949409657825097625717530939493961934711675669119933083743060594595523132516433628834003519318870953509855713937256580458249556837517014940964375943825399917450451231252121969972619790536934419283985543476187381746995111434473560325134964938703380898609990559610488531965052441195352743374308314901112823218523073345070670673220333133891541023914208937381514694278025807826298792985555446329183707549856337166129388362686237525200439783915200865115030858801062587175487278907753408569204939368810743717146692764012383766750761341873485778442217080415702027805456385602070790939527496599547815932884737341427409463331773268512283477829203963366041963665782733304712873260248474117375085015005535380074732742628054570348181533516793311958450858992074958347996383634294025153003007057385432557040595328257507258243012768195257430596571665116643569728505425995060895317905468502549503369565536133972666074289248724135002466664682605963850896656093352281512902509322067523293076323794306789745026168785913582090461026853186220582047789997257922294612096739835829098881641429069096026432343176183255912209892341448789262964088925877244780518213012942106049181777321569939436477608702730202295511508281823611939620579694208803999802861861346494423284212413199951385623114801237075776880277752220816789263977226856732258293179365330175906394132462636342886090580495750117831803671559823249238099419431936305617114599065126719327841871815689271172804161043785483317309459793923855637146344221124842330286165824165429557034538134420168809823360013631323855699740722007421141279034603879299084043544825549522949633583754681500066738307145672747069875538870153710158835765340674342897132045712020765980406966636021564738246578067845697306322048930817109308729496009341224508917891702664299482579029482198883859864134980566479327109718504447640627050022927439544299986845528364025842769055250341503885461131569489001191922850483968862094524002902020966309361016338029587980440651540196221881019156373715433700590963422214803024453645760484090925915706530470572645383403612246630254527001578991963486598252375762479278255771973019989256044628907748263349916732016516156718024026819354415871806828822652199623162300920135951317200605225805052569828330288539379008269987730549760178471635048334351739718799800816045571537862830483033957069911453683375265046581832839403105243330544147777257325707146673922370968599972649063322359618096849911881362685279250442684784011114275503722686610867207884702787820455018779123889189513735977338224732833396641465376558496443665102971833218650533372423603317339514505716597622933588633981128822483612364981075375013600933226130364147667068778040384264214804790802292778571704889533381857314019203491880736815617710472651830858338037051174178986784677315273437664583344631613160781109395159558694173326407244824753345678078335838108842618269340598593985837462497695180314206897584739046338256636277978922078896261637286067758447848128748951988210031922645281575407554657527004144852104276285039396134425383357979361876308332067229774855465316040977662622591195413409881886425930750739508007700187608261022135245580801062706350128449839133166586728069237914385814227755131071256450122420291312423501565946840167470847945485969500406464416505948914080044936071980661408543942783952199162498804331449431057547580525651120583013895278370947688516756657519025258368598731508785773654687085382001762817675357802204320283419564191824415025396128891782008511148164824667976284784669432256627915958206537450822925363820584684218586096883504474725100599029766500900543258477694628278013783137402518135236502656543458196164657979048076949590895535686965041414368639425306922112868048246574373059466190121716288293418180078228686916506466956598877707655482136063709370641488987620612706913378442137096633166223984804197430997156354665228197574794872483482803955519678296469246903599002512799031645763423985202652999756300955495807991550668714881281771700927753800052922021371618731490089454906788884286801998915476509566053098725509727636274258182548529444840455605723039759420721613025408051172933400403145429733223044978703588674497477754088097049918373154119436736381731387447760315676149787391578215988186098578646795781864060137009760341410219095000524749972424888043808070264792868606229090572023504400611522609928438941508447477991209831494437793995295955360977089746290615568520624694635887537324610663161055488521610403276385792721896652207422890250418438692095225334611544752083929145253728059457642636302533333588041017096425730937423726271698245113152519174598309106089314894274360102902011753187546683168238259487984088544590270147609593261437028663525327022085662075575818203177467707765839855488343819768467241638263685654213547168776183291194221512994702437669817612044043870565196583446575731214968035410571087509697331916291521476136674275343396695696277484563665408760078806558643322001451292981627833606886232650995057692713960470920765523769451003727884362612261338465552718791777001956584669099437080803610786118397174196927701051404528237042874584321521841115607174050228713939153399952420348228739854573111750292676587503369154054713677499570971203426258441299840095618349923708545434832964199385554362272309081616405642715015929866484546951617805685875029479323465502958425163543602069420369635508216234890241421656296446158457690544907061015016933167481325051637595586829025399808649810603043649063424987839606586178241193844671114822370499444943466044444908942617345521299481892969190231181217921322212663913516883193315522894276430633855207503870546327145967105046856130073379155814457771163166379228749722982255045431479205303479407924094702059426076197591179111473674538812490253391615687161941872820636048138046555172906873289816180061777568382153997047621679280849610873469589764253147112957815781306785004430031544984750479187281071453647465729003479390574847534877746095941506504285794375443998180636148188299863990910669562192600979898927053871100007627072561733956882426251310647005794563333902743117765376486442932247725689230885789417031183317750370501600579497117688048850556358576163418538149104319089939152769620417914897955649638973577676944585506793635996434476468949942405295841114466637069443525766525414131827389251149730946552871748596303764997330462966816534398663213249651266891074922711441394187212174337699744430709188503266054968966728280181529235966589412956715868030409220864148923614566623342197617067787592145873495177419724856317434713409936287171978620545711808358352446970743815821748281746891654729584220325441017326169325766997257208016839587069227133636180246387023079837542886314171418192766924341243546929189077274885622564879401517618923865561512000367897812081170879823538043091016047323915367226471349841490508649150473204382861239020259681131347970502831530113790800223791633872966014905394974036856221634366644872406893431864277637236042915777721624448567534479798106989466473141858272535721855647324336764761065935183374670895519149409126930902337091412415887982502646139335118750978518167516595775061745579775374110172763714214777718449639984600887380574556050246406153387603619066468781169670192178189905639891141742161958563155267204495616680289317295367989826598853290631752698671872001384085047591189941781316085746659147872266090593063846378008863979851338958500096709622745646072245815434181520169596371901625209139502585106184383980766189608925450558248338229082690505859659544056576657585527569225567850726539373782062474964382934500978678558012741123648085847275804084332358207958386901644829147931045017569890105338712043425379486479295837960440639829382077765736240901793653816753890181155323337129006414688498833682756160500556801649314552355285307561287451458512564184393680466264487653063518393838140139730326123950041259073331945210453311360902535737038442956464338152685244449659437818162250304940966846647198738591888001480545254215531747329237783649154167563342528862851092846158431169809850492895317059521024468922113636271588494026084203237275912542476752768990947032294142953237586719333137944764133006841554213380641731489545289233988465019941854663391011617356796490360329299048525594339632256754430980759052159761524274470033814582042688458391564498523143047070262206838422795431790912820722215577334387551727316801394019335215644356210356874144423407621659110807221714881353408381447088276899094019313480301828535986013160889095705667518697991700298121709025217733615121369321937841120273331109914363815571008365768221063110510847935019703107279403946056853144634854814016637620990021020955728707781291661472601014705009190058263023674830642109292334299909360586137910025774280815968636584479392390552408596673467922532081852358257351723611794911321417631547785393004925126136020470479088024964876930220875752297041878028861914530740945018371355884470446294869958520495679995356234096198798232049691358910607168332827887920168832829595256747889750411483462091456611623798773027751105788280918402268500631932383352770520162530293574131267035159862628180250072934277966639521134152131837148257707642495309259885468186248318977359229533368414025754971553540336067391273890578349111094880819442749840984765946221181870594732018760362094823461573998051205119339338905473785343779511528088772468385203011142574072483612706168757425791029033380636603972726502973512671026900947140493714347393356958161342374513704532195759492673016761191799589233652290262085218490807255179086561551197413277131047918058714474567372599992095434983560437584889436953771664969573122373552665243225431203438470798527131926200719460806356865511742727688192203452624656644588011194359750309010602939343803433738081250197743857757764745296575713126097006015995826373848697849266222868249321245810391303609848808598995532481512216778022245774890837377444069449838765731628441818037193022125585852947544157258619281199706015846675933529323530672324403965084711241863560281448926552138657650679850507664319906604530933572689247270902456453324819657756874520651655935300264342143164110560835132474854508499137909369696842577764842050838372765052432837682988229266579241724177812601772070711726118534069609188210296932425317039533488553317364618266527664261022889738710904937263770095072185059919234470265046304569797737976742718627955118797760505278944775666472782793759257104062636027210046101179197587877651249701059087896565683646733430817592466275915652225832327871136864977256756750872513739000083224652296949364140028601222450550039884936838493418651536216467502905146496249478354594927259371099349745229580672643521179896072595224484240593268937793652913707458491681775384497087048936627259538046193707075597820712699031060346699836888771984154332270916186143906877897596693568760262190489161975211644246363838568955848771690638771288990039591899137359522567787941665083930404240325629466096794114171470626659776229772625163054560078087186015179827249777078756810115439272343906936124861575925392199231882965337370466399835728520192793772800460280627955889676988098062859622346664774582745319776504977423162071531711374048838080047292435995701411671399203949731743112990079284581823520781412077198814257414487558293174939278528031847163363857509953362865477507882338094829421635142732828976530593897934034413459480575473039976148745029033510786727994381423609714679127040200497480448796220864335448183147440238603193207829164114764827596970187380646745265411156009900386594677413686109334629511618914426623998548267215901725063747979763241395744127977556717452434281663989348836611923946222648887977272377399939946130862023733339644812274531037093252976411086996029204905667380804490301614676751753878470086093784073898206220839643793372343890831175532003259115182410431940064327196124965011120992011519398661807052150905106642976748627586199377000638260118702976322346678814148933791187793829638219585360904440656544997783581640955733892312577072616583513404570333694980155260384228718632707489718819468262241201274669136141554383737565818446232750947302108628446167590720990240532104161023449738912062882964653012957500679671354744952076093136489241477371659350171795715703192862961710206070251786720410290370465886814686183834447071995425560031406896246725083057876494477169700765993421808864573842031015306965891119343931564057549269401294685984168416305061563071994219555273108235446693792865716152157141742713639929154209528939752552701460934131084266112531059293714239849082473292122400793344280384279551238646267828674240061158763406452363575764000606519039457522780895706075474250191782944545588037752493090615929104686973815035064704098481012480900335402117366834258669931730563914030744654152854031033672550826708133582892784555031736793694673197974994664070081231422826890863434920025970648267812315445546135701441404295654966217526646886954761230105573704642646051236532090405196613563978014174785213511464650819355880724848344468526482498071195302740604708275975719438354043246393638815284204278624890749587459848481014944490577069463832843686936390012793553128908719303040658785468178030466486663329037714689193638137368251366857282901348432146172874549324489378592846532160554444864938430871930729955749543381141744647787998280707115016654811547319854777327781499220363500909506139407178154251202929544051182861616254377081135345880654749978909390405357750707422178367902912846312066667097978108549052249117219927177125302601190374047795558677105123978328534417543892410133477149458702386575107693293302634130424348879995376077424197555171603098478800576764557498378401234680549868011308832032843092370807469817233311837708443848415063581683757124649558510862028538063552015264846688831623599441463853742555086031054983931702198631449100093691971183433757722667989190103202321508268914526311305746504148827791130605751236815609045810796346487438531338015959894450132891104701095303852041968723367095201048193194638591314483644031391640800382257439996748370097550288956458139430321338964543414864221384155962830312781990656537775755350075382544113460217767819073657882942957381739021718546773758370196086565685344878616169702873070334099687588357263874293202055272053034185323589385195342977418601859113887937753977183399811430063109200966595923975592646384759742245091622069964837593135128877214833156403359285226177268968792905665712693423268271031336941471266626856180345921763455698939485555431416180829124553752332192395711035013917642137491823199340793667499979199681559246399169401284212739190412928269537523231813105195134893127543136862761008996098076705683906223587790372806784320859573316931915352327285164656643381275793700304179791203509101750587084345899026479874711175142180352646388921019329132775469397525290063681518350116883019116438733238738710829491657338052298711825324158958391107707003316257417985693391810907202280756365513781320551745792229610672237704631794354958564064407215690992053601798550879581092813603035591776397569965380997411185272254866410312218271319921104753800214503594950073030359877345444781309009327657260722260393919692938124524324370998280773343088206378000372193092022820417910138967299915032620575084556362548713074821300593332838724023938736485505999901012115470015159839976882110742257846008467660073121984503203006660730029186473734825801911269295137636561167785773556986368796038836556381627500834450318283984354590367631332058001658502097713186488904792719363474012053549846492498508264915963245383238882534867460382714808410579690791237350233129577307597602795303675476508734879916774797412490365963976458961375087340851128007314783132820487915675115832715432165736935238214663352040768647318592440240199675253492915122388041455769072156437019499617322645486667302558169312104802766023247339285213402338701173711946227023175818696697393806332961096068895325515406801116499307570596004105670255042817768071448555380017597146273558546894696683805051118211106784577103850047301818849554632380836232371106320228461676513396572515986892579091666332942497882832731250446749990478548691359914987085508295815979173219659603800879404941062559632217348895721622958668204353841413093112961674339102184996014460820919947013279971901164314662602260483186699727202202712063672246123517158329238460558038808853940276749805685967786868558322934415248977030125328785683263051167992660764948182252677395664126735009471449849033804731008718737977921170606931861556890761762860216154334365520507502745803915307621260656290975893152843756329092000815587575043956376702018072712409647137268206653216570555398392974173044114689148199068686422553842847149812868663952813891518788724570950596251297582425446930653575992296522488642545748416553671280951812268360276212597518917063287823244686748367507667892142228840724617531305718953712986736780513180317308118964157011197912373216426494811824432735559966504301595668156318797916527035508941572061145296947757135388381708870572248199252054044602393685261826375962370829349837646994488085809168066535212753748821367610691158162823593563894604710257175676146153561079645765846601962083412814304439358403584409566591472242988427910319737990601282845781682309359100122111962500585559020537989562325350103283490173508615495813335079158434460899889289105569311069938647166977510313322139058958059599501971652489378110904208100858705729606832350893258110842253706751828265969181835578869326101177165967391117959841346415611622241241044164675359663712519880195876115232415185596435079846372278664461674670794865202108369351729981607380373723451434187056005293248427616876723397885084308659687132327030835225361358613109670906345551485959023963464802982857869439879358056152089434751792921702111808297158697902291248835551734132338595499580759423187453181161452848007676083912657375295540786594174156522975115915535656802980726099181812747001728248550482451351056434755662553254901706100671420064827373960790102130854381621987628363311356503062503001955276404865698252657317585754270999320861077230275730358902403087642051674961023839678182027438689042202755257830762001067903945673409177084356219230682740722609586239022481408178203015516617647783658138520247773222327419398501988613144972088310164672883943050998583439468651178352974019088773274489870183035659581883046447869118599054408567204881988851173930373942689963364715073822723050906159647095184335826751201329967199648326815118942692279663940221762203530692081596849047854026309353521827775495764571773041904284998924236923997293840601368889349264458678991316717971537005853429554205731962748883372338717883585378638555072424724163849864798841951365666617590787556391167362359672102817435041253672529449721868683101188960952641314547684588131136506964884708791285803647503459539053429550470017786707874956023292893100019167202164272381220032614639293070719459054650763585199904027122293590624345997008437427906176627596248042712518019052323636152163751072673988379970519700023708137156945832016691397946568179480890591177675453930714180745684363381648721439941157160803616288744034423107574107304360472497229356920443808661923224767336487978489352813969484598730783773795457089427391706533560594254090176370925925593341713416502863280504233000767698418392466041552873756125146669281916710024637119358087554976217065128740104059080824113827722529589117828158644443185294196896078804657710705781215943701228640421076264773364861732519040941288462186459977972961961207515840025540560633749047621178973920561130026439794472883585778300847594647087722767808408191533509209512919479761068939883759829327970456959158999461889546574683412075039227233929657342610600385809852388623442924688463730511276482301319445700821838461073510799887732944682632216287416990846376694690386048851211903288199449868129550948545901882744824361820710312954139933238844704137250653114196432045553230601635185561294359524417186122283544110803557566162065980780753329265213637731139904902403804368951041172316049560147770034066087223554098632473364987604341758738971031631949519927104288932235293440342977968810244453073824892143054629752765174816515431817640810530213258079483436356329083376171955355508113236172080727212672750580002903961531239836657555392917062134113022478518307631486537307293104939624252970100256496364094293008087564126097110500111522512950428189940397747964760995545050458360278551663620574920796311900835070343061758020725065198571835341263619545616043113784546080870772187825526435741779020353648047337673495785994397640885629787687668491593843327540163159597563925405773772184262339746359495930092348897139748495884627625905628556983143368950630305975882822675644849273667474021231939155398199755875804511836184510942425257148531170417315931494194272782178497026958406135569613148621684120208851781092134802536033944952243112762320241146033004991815356870411891723987582296941031233940220705714027729585223254604667725519015995552964758637303087615750449589426851381552854087924375304067151345346453415203178227489244443014130026047685309582066097298627974185229563858676503425763607432453184286112258527320724303311030647612261241350340095481105379941858451509039556492841894605584202112761412026530982749781083865140427559071528424376504704701345266510433886958933309385196088045228945128072652569494462946947422939266544308513492770103714699016075297232738913418594952422741306054588161809953276473180938657332286893743577232169429966064132456570024684615019802617384613509290743400449334743381623581295208762486818827032709208689191137237568164479361068160777878505102017814664968764476048503571672789948958946673332411058435490687380716726082921811165963294435532093138240003068257743901552974283903692840456410621595853438948925413095701908117654885855061009701083231691844106187901652561577876093973745038078831814788850033324944640205373882276896026019083437593659014975528460953264434227775611789885589441741489772477548536479266274557111907024936076950178666877187613799049548121360463979903212765347088746761417904776516694792870538949323547119063619471881916593995257531564592067810611990859296084315860804295826254446138131535073788578917996215850518813206410148203955964867031037404989052091732253418776723485319970320537518381925569468269183617401856302706118792267878359369582133812345008073313415613880787831424986108695458953007051074699815756613574133692021191294688604337828470915526763036128146286710059925543640195892272677292294375536013728520387935867154287833415861228375163618551911774610717802523882760511343982895225143209451905265890381537887937260277442508031387125819701271832596361683110244027394303222670773653983552246615024467070369075210064518579118643219557372153842854550810150457319649176857907414132425319189375265654261113618512345434032283421232527144670086633591215623451069844732157818369664835712890283268308723255938012310875069180335424142148283462539351577905103234773499399362024470598390950267756993929056874125749920853449715163213744479562730039857932166729654075560155448115692109642662044551355764401060199461762490149968229830010041190364663498622313895203703273288095269101128528032062069008283603619575905605612090118574861029790035663087549805755025301580378399974556582027687764083273053421813849826598296457012228371079653102396823900642046353473135488108556676219957574757180762210785986875321147987132424561918755269438629515868887362182593745959696806770668672201326737170090500200487491667632866280328695307691838045069366383061199432300013795957483417466598169099975243445925906644222281818225497471168064479348908954422652686643189356175982143789867237712192802973472848764463879203925557888260842425341679822966285025994951825855727565206837578182898412700386294193031685443432926876191117679624109546002331195548561973327416979423176474473531839732312790060509172447273531468956339596141402614684886694454869878933497888353773118923364945628281440273965608060508424108954847700515260254322777649788411668874839916978734194210679282550997509197449088928749083245818697997669293566602016063353303556701858307513467915798642037935671397659869453408668580685189002227617934207534818539513562414233201062566443717371695663848665932100359698022552664921178665399029648490445158734473342388223421115916939545603411869568517480585926881955814315311065676837346253657706269609211323610392040976882315062706367876736856959439163559996866148177820109050254701585882928517392180784850550071293527683367836393268742424077923725638356324736125128585247723524161288882045119296963083101541362271969954017039504690223578896194552725323014801688403729665707433174735153939579898480866644982516337451310457312843682685670066177985929395995230606686420022215128797046725421806103557273194241009233775372520113786895558735016371396259498483057898431755333086318794993599122523838761993698658773814634109566461199755970750092086095486404858139918270068186945195428212513536988009233063083143648954143688754799004119493386443228900102036534137646389556391701565564535897521374804125559014117066080007224396775262953418301615241880158299325967920968005950198285965011691111124129602411552543508146358444570990902267870218129994834285506178567511034504351209214791880457403434913716540950835376383025080479041756734714397513339521050885397300176071736649189173312363302459111447076822938868741690431403294805372543440684390916319965710121382106621248657569655964229452092622712164721620733570764440876853416395641775015141263204896267870897045743859572360481929145516047278532425751390191500645361917813258343246204733560298952712366244861236885907070184503761353295118579698266717547007788039457435062496239094449865267925942999681674934478915131242833692246769193383152285023812190892389690387244369729194227444520507775607176060293105950547214071599732380810925051885446214019198304072455340004957904460673494786606358577919921892956093414203459808604050974682712588132650053972585578737607649934812433582484344693826153187300422039221594160277895779422252702522271867155214465040136354533582214565997407825020246122484659724689406595846362475155006994422669945114221433659481234430947179368014893411931302333462231706793010770393057149742086688615074931270066187307152442642875576921264446850808804073411542500244162775211348108583449148349936820339100326458103433674209821961653032436834742680063427719395870276679760406447160188798847258424223527815670757770452948127224972448010974402811963847198704164350952797114279446534373967890874245936680106459891594793671858471918274450457048649764127757435423123742424754625499040965381599001739207007880164254453943706530827236836152142452633209096737323806847627452503622357207515912293704386305723218142442809623427499058806154457306443727506421308000235520784179034691726587311795140683237991569702676323788628284264870016216043451701974917870380463403868603439135707102958456283003084460203472823400387757463079394676976793026088174160057563962100340604275912246913289768144802804663886677227210560986589491495142200724519094727282737366157098455786819440603933685954322297969991236390365900318690988518280529963573470039677810656596550474939182922671230970919847249439135019897485087558263094888624162666409221685989756053166243121249024424446366878807483322629652275795928213542149099112828496299975568913412886632837519473903081199268815875020643474440301021023874806644711641871652959794743949441031966414791483364837499451694659630409205675032316739559378841026219177041522050300858832190040403908399429467151385533813010778349846720953255523508785440106010462900327082177955512908822503420426969561439734949740392358888062758259781107792160991101215176934607984950865129589339656466926235302342965106965702535118518892298788852766699310977156197495514639605920462705553256601307476137704899685416754715233506703103040670969896086840107226475241159277756116225944759606110994346790479079116486693804334949746651850464506161083779390271275716534885050074603915067709143694758003216339758867169711248167821372331827509340717328300660286353281682401272613712754733409599803461304263124628690313426134049233307282180488434649406069543074440088755085219781179304277293054453011758884795815446114122147791700598748846514816897771711706393022201441566286401824836176202592612378763530778527154743211316571463018230123005139208725511818831147568625569323730073324173286380397827487583673214191523966054100025288997440643074947783146979608582394753836121630000240172657375248111477625411250005586237861754716494201671311086221977718997883399201540742286417886016691679842690400156248759072846476454448427248021517379024387001779752421954393473928272682376852889287194500156786383666096908571229558056478417221480665456517837300882697207840086983541966650201700423982492030363300935778775618160438517335632566972496354083896998994204103766170323502630621859426078113000748276047252565551953364213398571044148093241749575588856347935798898511454718173206290855150113688563621084635717035258593234319366061130742861572756677746939125078120802685681357379046933155678818935875258247163346485131091153584848835228805200647105378421544161318728677395889759496278923272894173546360429523281093721252159671417841256908027624348048971956228210026261075744473330854600773005325526101015119780840530928257563016424176372454089546681318210236968050391238277070376641835720225042034753830622423868263751491197013490983976385722476386573289554408060531599136816575466026494914043278980018278119865004486184011057347967204132005075924809420104149235887043250574154523202753231108144762794778451396523815649081928601703301186890016691180807930950092590381154909237909414983877546298511421268599053599531511760622299367733443960818029663221894309542273303939993310396021315111934431799042713045375744382175892823129529514393594848152306211597819789668588267928103841032381672022624603864303010830358216308640215047010271103798744846580410184443027229658905473783255548806501328369226183957336425778049276264299570301524683356148090176458795134164507147445272412027812524880953378149596622729285625229137946617841166317763069378004071480615341883326612118719884705963496272785633719473325413109688526190832926928830046363758162126730253923065826746454879466041004166934207321824481768689458050334473970373634808275948061891412309402733844104790943297988558856843619099354923348271551888844872359686649074733950525195117306904625908881898787088879057219767433259019801329518750961126099216242026883785438918946870235482942202629844469070713443971073630500344463834491740502703527055223700416436426473430881996681672383097357332536011999108884061044326032281541210797517602303698054602974376875697198298971865135206557853102871352514339014831006372513814052165172977875049318900949888853539488577816090366027323204145337169981371741919149300667454564130370257946060090249845036983242878742764249049308156018035824176176471263959261553131513978875686524423571694906553370771926693632004641932131703887451211970741444704473898879407483432052182188803090516113435963803421020089742954669524144918020458927699167080433396992653127834452081372698349516131453648927511744373534173895428085572600379933363948216263290428226383974670231778398768846919138101508889578340206739466382986563787265947544212024261340081053264106872013577195204019625241632684508752606293395127732532995782564468464412111668448169189295848506320401493048872358137016585985070137306310414758574085470842648185071548597072419109323771220401809421314486755840269187528827647482788768634088102353488351529667129637374625961519179031008956418346521670011358234715926963531880246147208119053297172519726300749295211587751782988771971464772847867580126821608139635753237777741690066706578340261729310509418352242476554374290577742036116082006176226836169079374162495700143759659477986075182080243892414320516791660654003914240639058788318790144940248505960642324395266224210800433091164286465333081618148302352380936257588166706154869357681938995608045613032195196497741445504447908752608724708310495322899920404575893275128322399532486841090003339682542212284000375552615844008751305384433559477195903720650559335021195612041286576242131473659257629921377466337470175464654150194591959054614611537681959436948230656277199466498282693912837471069521784195938832312687875955885473718534912551484655861100291290695058680920647630165286314532287464256551545701011522659575802915294224292056086634763840963831220792024220969504204886227380286152922291174467336112684281903654868150369875220128444194779669212074866809855043286711714974586796824251421871278000953148495150356645411177810149372407508495659998822213022289064464435040781146794122505633593104737474056951834973166505656817455270441570447529770799005805980091166163314962837450691635512297109400872365630881652089363640236563332509576170870266936734885620507986372593879718430645992484745345740930438711187434005423333310548744235739379490919894310606620145013721288954364243070724433566788009565948685570601854901668887529392792024505582379380017425623233217974564433559576563782643180158366711425194654571197734365292980080694087013097266312660017517208800856745505412827227272049960146883689754382705633478859308869133747621172116382345701820589813812422526505315049081127328839522091608216468534224880357398903879076536808496343161102758262565538094181760454473505863492458249332562106281646736215411543644429759545510609119814627641024227639974364651295796680246588210461484996312079335789538140502749122860198934225695618918644448749891142421858308546544706695956392184503774110456840822853644567182250785913222303361659353208403164041306019061203141387568938734212423746084451392686313338587305121987895067329402951864821658275451713394800457531466105496203190893966315556005706026588831273066705311211930415856676686758803799915934775596812342970785386838189891598564528220845123043864863459941083236480954691654668918275385504244939017587667647019322181652694497290437583741695857566503317009639616194912727101562092314001080746306842456410894848631868812006660556798432311073916538552981045325640652419095748322624959327084434998411236085492902969152794926610714348781538136292533390510224087755923485391799893306381632754234076929358596232239772826376760192623118188312795653854439478188169699085283916109724077305371624616914251327140558048849078083815244390996980523426811615885980959303613069758871160134107876625476679290516379267171732166967815138203249121021563553932809124852885671959199815265304832926438493546173037010976123686236181218819938829388020590696359714644184196171801446232804874247610851784492718932603069820985824002974796421129363944118446255499166341457712491045715863241688515316457033573327329595480084630041040878900811136396812362466552429113346490405801601251175722000011916832844341909853644356202872215235572742893879115210275199213842669365697750017997296079190922150439143053445039590243311914478751398832778092429242615372772946548379920359120611092483916062996136987796288579200598650747534687735784020456929398142950113602934306549072528179747771722187578488899819412435863702351487107233115117818924027887136023670680740304288081047743942190537936979726538988263707388782726050568898825858649127396286398144910722041842624202024974320168151842386122928545053119561605102861119165155224792919984291300084305551078432792750957690022380111387835676839311969638590728206394053645545751316346083278329362564213550486462496180638293176444930368116107876655745353444967946040791900711724687041727000086481055438135017606274282423618625729035605239607940437433742946923193745053693713311423464904583930860192860142634590526774856498376682972167012270861349287404224128913001441166677537015605667043215478350738383490819582743648380673680040099981496796929131265190700904250535819085164698789047720780320624865667304478538377336403236794105069844281114523035900715529235804472305990567898236774206887624227302180977690120403478623195566946165959959741587060710257120512985157534737410618098271432686421143806913880132658618492413607056000820998247732301897901900059086494654489551164868865775255155725796627304002723953238267464265738968241251901898375667213624944103736734559564812527438787198051062764580136821298242859098075098192692369969245192475128579492383684740064721807988319410817192725594187557296256298793896703040152939667189570020991911146908472309981127620094295593123472485676539349928075573225192879165347857300603803390591138608832842273206544499436088283278371000671272454306387817265013165486626819760151385650557212516323143525219950863986815304334396822931613683471315976008128129324192484046274901226406567849755564385159985154864155914736785541143601953735384941238677281704309105547808101032514303006526660942194802641164942230794268216149254348387476151892759383725303103942930038702093950316117665582272888951056490700110647597386993794154396371732178635224645942538371695665964699591508620962310694954929022343421534323322669947645527400601698366956534705108813156132099758431494886445340826455838702035731458129808713286542906780176205012963176246497611010750992543381484243991256877393562734240200831206235914989559149319893719161575271888407182091633037957237071596287678636812893575444408851816708527320070088922476756034193334003335711205403548714896627135739006409498397497028741692958540436726169733953295479574602965530480673231568043204673603665286634873047174050296230701853768382784897150407920264160156102552764376973578338544632626537715813014530578721463548657272302063466771871877536124623950845413469384890156710436601988587945611374685918641766575693394638237664510432686350572618549053735196142185113624936179304749492760759933871173459128277553600311641790047563398781541482070128135527145926713587431289423276772169582086709075690606603439423300042786746186547859866763219881145840036829478293548059948752162653686942441221035897779971140759367637597507322228602367265210381924631823065066588888195261886141414797169126826841309497460333332069800505841624735233012709415886882555577858804501640280719102601655358935595051429222635413255884497160606520785945127195533977612594376037549277364299896167508016079015257551623210778174833627428514924223834190606170992075129927584814983217377258310705763225390925039834563933750679206041764501697124861166625891406692344239334878584365648964465056850105107451811272677971686242922570313652481708403601386864593446208286482642582413569821580386166816593646728471793271511841279168017704744784444703396221598830649257659670637503194958725137038143880668374920703757628851023377685280575703439782879566372775541545868841069723257674576868088126243328897309109395285832939337796540799494832762788080165588683525971826119175632564707825050688284279267578633664331341931138685678238081535219121666692140470574716908078388207940490828924158002028303317016070357487393395870987974808935096972320008295607586806833384842413792045169751486534151441329829221212303450089329824188459368454042356160986019718399265407027854845363616454395216587159045593298511242811489249625112544105873289536880695681169188769919424195848703437142773165523484817147155107200437037110394753378195625062726270642032045012977504447128530655529506486182240387525764415693275932328608827820056122290412766242200433162485476647044976107061966156884265631468415882964794511903545517279374019543463278185606970273431045207340381272323544336115976541167382505187735728470011163030420274796813956627257291069588823043001425368755254581146486229343162551471362450094852433444511090195786594977484787434510498825836095412573504621720203394862917200689280213768184274484021815702247874976891174364542496581219049634509122447221098530812109305600768482875822827182200162214613107241853695503372278611678399234522460760846679168664784392734442145756432737278253816804878412865694924987801118433157933133134516842538008988085478548726967411116423111559632808054072412471265255852931558658078704113614435684944879902311882181497229762512206114923173766769120518877059645496466163708279882404627078596822686965236552024563843151507474323689614361978194749111747566145442443521726407247012009522692700948187300907324957139734958921761522497057323625355198828979154562796765159122154899985647178442426112580539342613909373244733933277922380934650651029596954174588608266334967033607238516831674216563902050515570160028827343892204150551776391385490477648619099783430353631752389925639664259572854834743527246405169498271810004614458546688518190128892436183243588540296346030972291493363580738629738228266688445321161854493368123615826758897466330365824291475392499504325844414607505530383166415502145625103484298016607129338764557085324570799038044942850277424683903126699449428884242134445707803627279356905451873905363350465587868286951662695760375069705034530979581026387486245192056557363517693042969963190701430255804074144636733959754065232612303735031808937401470814798011673752152196204165566725665514142277273359603602195504160569192921735144876414468516007981592387239249560994330939184687785272163157505834744476621219744769204737072002799835457281354503434710454529142599112634550260999735803869845878442022172111730473311373118362252159875264407906891537131685866340309387908202893163622850557454055605810345796561527241368344529467362989578886660519743839172887192556777358320355683407386193339719648235044931173467119634575294943490488563366676906976720057198463477323461808711135864481263204690141688246428199140683612280717486866957374141861874669384135940866713662459922249164468008960738317436829714352837530756243364439016689614974722699553289633128718162840337009289492411503589191311275029828800182430426898142360548870347302037133937653687358024484794130206590303099570326640646947313528524916526180153332083673440189931670136729467776556144230038030585363323236383951404115970905541640304763849442733572536284682079256719402851706122226872765779173054034268018042496239591239757607865855299102751180751725694774734065821063560187549611108194474540922222327950769623997523568593644408446888760040004605359766295057137896606569792276329591242427260667893296868379182919595382213151566849147579389136903706137026124548871668128814648172380435369104406489103116762165962248938864206498734837570905897910845796800419484282711829422845782837863843482676009385024897654624322850461484011877899431573330012585894065418626550483307290186088026471387218693363737625922946894755911145721933531653316008595982860045381467883891264707520505636980109111426021251079606333720956979234924280035394054003835669746123258616898106636398239659789112318783690362160054277041239568372486168451919663534665531989144815122386269856072810415060923588180918034817353797661823274801473335081467576195335426755774217101211588951687269179188675326400390175145452255086000673378107769592304568787021643380757516887121847843189179265392643044668782438864932922593496023843879229953694762072349743893932199933270946574298813775737443293400587180728564515766498924634450960837634588637737237145300144747901757896455476231891340608923271876778850441070422203955948301345311993023270087733814417556617622620826757024156302277770797835623773822325464978306346498290110259822780571301831775962836041544070804177754372002043099536146560212551967988957405439378658072632668375927790761801995097310549839835100910431476732381588854734737237434548955437961144827990018796502302224986418112279668135748161345144835050780507693462863714509638914255781916924923895223014412850515494275556368824124410522155203213287433351442121751942161232045988272727160124667446703746488991992022455107550633280271280832719901622762441668207394344693554730504193254660707104386842023191622312037466653956307949356213754028248962431013836839257703444582556183926110014477462978047915196657568615075795122614334204756828847532148984549426153856153852062005436378728273910421371346547073567635317641289625347413901845833825357984141356265385382094309649046613210689552150557927455442716122134373528715965463588715810122723235528155402042806140931512944549108951071589619039368902080448895247881158611867121397392480573862181793459124909834257687003188842388491382238721033181992885367399229595721786155696525327426620720423867978049822150439242367762146627740374282205596426867524169386199360794960665030385316925401896187008041659373399599099231064179393089804143344575798867984842931877821195004110171956436437676775606032074239393918927305935758712793903566137385680203294486375721356242523938576660100426927723220283123122981978360575859727559115782105908713374969595173836314283280645944684776389203358272172670954875624801014990559105944384523146940972117518113339326212594474612105210200647038522793358437051788133283420026534833457568476264647192382997679387068022411995790790828016691017803006410471722512867199890166467480201111563454405075055649562733628275089758926335156786343119728989806197591458400273551424183963381888817003235825490950419991070390390067290074936913051198223258185395378169322994773007552819045897070195396947624794003497197727566675284170097972892006144547853718444053786044177793477398441415075167812925026123383631343365085371133727523359895965505716769695369819539491314441896851618174166179354043102314220070045892909523194604217874141330715090924831691532629518765200545135388488772500664356188133575876018834560952389570453042162786218575080377889781614509489787290086534063577728598238921072373728908318919301636394950516698590910613907293104853266165858433230574196884000126053107552773720598662785307949581991811734282825052835305277377310209183117948603160574207653942594873017665092204905062585202452175096480525538080878999770107541034458719929761835541648956169334768899283835818701561221005759052563858227431040884643974374792386801692960808742170895561055903688768121365728106230522134043467626810802121755197304006034819783537355609461779783379882915869239972750968834508546193563204240675939318804406849351021506079719155929626670355033050291019367425172400070824818082731734977251813149826899484090575642203364656412617778017818693829255477735246565709168357534007214410727567593362131106747589989147659771406233756376061311628622677898772265912695257590403593662063900710497229148009638993150650899853117259567371828342779299764409607696494191514625534180373286913662078166966682309012168836372243785277606395888294324535708425301423030492679496744011898641074254714977491286381462138518663074116514894546924572478264185895828049045926651271048520955801698786158193194843438665846557897896450676445037481709647922215964236382021060125986458218755298398680516126684490446090090194675533947714367032179476222460048111894649477999649205540235304813325555666528969599422556475005835864556942688494343673407614092796050181265967825320999931080558588937838094915593719290778890708384032393622137857213524636941514120715280680481617561973705661755429674452979030428364380498619729071729134178922910101263834708211701791912355630916317364718884600497518462980156857348920534535580392230905285149214714728699046688496631443620573795518386960892419981744772819162811802984842733451131532819732763183361722691985574373194419081219266214948919114367960285601619012195638381633226642822350125191114150136666527148881773121474701889997129870513772900683564811497965711443418762349412264643502233193984942201933363043931088416230890112094229002759317090631459299897713341384617329577687350285101462108630534424855794972573244910856773899020227068020075936531755568326949931714124012168054551527876670673886297936639924714495318646454141832637774056161916273646718206530896732516650828923146147677553589738346664256275973028614869542724299700549737410576389594673753494441846944203028486945231600989908094275810703319942191069532055415166948948132978909554903553029304343557244150009953004268901410143594368879118827055198276555465310266043550179223082221925116122583762111856128608529354213571560063289438265941809029202554169373189832816204665415990970620526686446582975669202507197136094838351809349259945867317585987866787566367194671556455140853989378692840577295523191366106342118341002503540586808218939039142057216361210157889550690659274802871780853733614649398987101187934989344251139354571491867414920227916734796920554015871072506511294507966642900577716540796263403911826760512805958623295571997327608655425256980504459217359388791515588122818990587894204089216930854741142146920056581500647346226864465162261403991954994053351960655206984224210290429567946596791660054748040592776708172508851745124339912886029549712035217665390380702199961220148286386820407615473135204522026134147018325166529437665848285324584112754646666277189641723726817811205426557313844059628649707130814092931213397746962920162006344785096862083201677978381292037631737937664432956550408221504187618242456503384541424121813518828293458973935058109545365207293261101931133524697323483410579058904075455492737691478829666509145219126685656557149728538549825070302377284481887385277100114054006652888765621573522453622021428556573991354098480420650567686809289335681462575946902156580618696405862483580434788408050541885947523084236134506863862571334906107312464405763683513111984562233860247221576608637170262348988017393973861033777745349151265756801266638101417332185560627603515486516245130440011331587778070737979190368620537795842403627447631622858836394089503693370906171936474534136261743733437336060635459336215657501771614389337380357581254863403697219849392651280579065495384828682565041992448533798038284832062689995556503479763858109876869296418941921319888961145013776221489558262002387378392855097673080367294371732564415669677615454885032127935758792755179074900021240979104767309460225721219541036608542212356756979581485812433696947545726756779546341770093934658665903944698207405606037646590971554390372996325830586162310573158343797896010507415091638987306380015422328459025718937571414599391460396242329523033368575311233006895873817084557053022740141792674330020099241185124044817954436838813256848050859842561630907607423457607324613829554519587124120099488435417864902430606243215237508013138562472127758576761995767245869532254941525480592773785205205514889143997100846547391414012222135969451720756345410462152247199790986784294531327966721944145892899686467427242140990316223232453260877755999352383413250011129933853067303416233246971267506563808909848195023189894016092071632869171688456669350798881911422314572534202532415289543594058519648470546363685583048493909365064610773710880607735720828485497618463283020377535908061533259989212263414760777399199789618489837441088856126371141526444596700190768250259380359429269014969096879438111030584856941124228385484348676714545641109800684550008108751931448355526354344287003968588765954130488579769339038152484552938735131670252563960717665723561560197847188642164954586094037405030210158959956254163928947686296099124194014009051142781542451249217992226777135718071835485266777378617801843437964429915124599066214705227661649617451244747332797051054907775416687108911910666340479908460789143564839480502452793131367160192783190625047906724992719077783588917291633066337027511023106518561400003367699465568024147369162280663864845127757267267420748190026166086341525935259789294132027386641309765214186665717520867271385195978085558830295780115377099426689017229425699593429749232360577491684180315613458847498177220783806500234755044384293117792910849964493795286783706301753152050304305456183186959908289786295101122144891203448842170200237685252665761485843273584309499145169233832246381798473699472606944011825546750453907200424511568543602326795266291294416310574626858380405612076139976614043079614275410804849133582991076511206656525417216524658441320682848598012376893248475415408256551712027221388286335565918846714814042131341282969565300106858710441158882029305529066761068239293319495570965695103336779667616415206717919669446051934128537711531453803012393250573640485328502206049677163830500456632755095956816191951392666833416906835728488219424568986607456698624196321124817639430060189944798599822633062568678270561044566790890583907126104933421354244791037348909657939816202520226168656139099761199579524987534300346657461567076470841955095707105509264038608180818875373465482736295456193108064660423362631851802668564917968164103533805379842116434018641517966603059439600855663348942949005154282440442274681348516773340719223873782648844640028901585040384619089326752258175956187074885648157750932936199445572707590620710617942889641871275592230243575058732595576557470282123236211329866669437176649105153117430410566550677367181654890090092663072196916417234085906174013790294182913812365771576290997729708291407925416519123754303946767978507893773667375975757224647392348090310333605434641933162329417471327609579396311102501757219168191682041891398698143219440188175026355170144611210561691020182840453964590431693104573389209608599777082253117921654293811373168174785815794353887185377025547698909510707172718148261017294415299731753640556201701944386490916290894281095216948374064158493537868053153390941411887269838467147785736943531920271727651891661336303370202550659100713415574826579329609735143976369472627279095656807124649301806320468886437481240582847128383069836322606418127301303290618853613102069497876299705168897299554096338519446755284749017210358250638795235860342227599093288900427009342715305703512076443803959349149905694662222154121040577773297480283791000619226433513772504561212469904504751432848052712360745039391954287690418674483285445444847816715567571521057304024599477714839229753855340188263781784915906841269206323948402894434204942604815854196473817350470342070619098153543667506269971657057511365176875302326587549480895349733553879675025732949352989610018745986959959453718189291657704155729787096939185405231120562991247839660230771970818332956929045068187760900702815626316001935274889656895039264095594521881261207882490311955939601845405978930167821188605385650055358277064899140747216545118192931287717153301447520456399048475315569439255430999312767383354958975056870747231049946077829573259813727098776189034993654850324287052608978663471616504727330283990692264988292814099168559115231945559032232748757774715039653255124491735631615598441039472293430303262317921262083114386743728713228554057251188579632436097790529171050583570417000771694775498252290171318371132713717568071534781123709230828236918558067829570500051312034021465086635485127952049607936820433490150240895810198007429597560866714745396147755096142525921966604131221833463832724644744963988462130940999205029750776266242714883220300540059683027120731223898573585918608607915939351265317929013567562863753557534051552646225627623014629854041976872690285042283834062771481178180983575928531671099301102308434083106451218460775109758619215636892661383558728089662187336674631293290994116724433280344411591187337206869259077095428119490845258309007858872084520726937647835231182607491942988503368690074347056156387589698679263458917512584445390457987208981011499128261409618051567532801476646509965858742530062419900707025023913068906864088570538837657397957527004686208956334524099953055732306648589084251804959464595040342338544373367630692157380448429498404754185475336598309512631208831026186036126538264848848649984090664449384873848114216887893722007326342958414707583565679836719643331193011478037707181788680657272011714390823826414331614390646622608885390521905268060824868162223486378818594649151977852379088136341856612839859544039172391104684624276765919951731516480419949737283523572571242369051819063937654618261698578536179895201651758074632719500205542789572142618994041801351119541502985085168336937983141122191324845519452906812585872630623422772973851699884931479176900517172035589234843863821094109406594815758863845692154954892488824185685869544837970984202915975911628458103292144199791381348750495860151435297525064925918121473736309767621114394064573942404450670129083224567640665542569057775297357061730393163095604487897117602197585964340800918371401599058267981725053908067313051968004402395414134490001556883921027025208122565133835329962587314250315369221815599763223168770197353827380910216107425574534134949012277569248077664565877928241062240325251185893578468628633988612361116920355476409436934682154586935964523204018614498659281436495447175303833818938203555717053179825520380498985815240815036099428233262905124526905739937087097750019502111076903216042356379979760476282769142889163174712440372486287010902439039726991757406868507972836264240223853980514038898623673273516820204378283050663694772813547838448864645769785971324733989006929012754848791638024673504614569067969467065623906560467877837676730929335564800055261373390595820879021453259712915142316792410920666190910715621077828889002885114393063784621400435713619139430681608926587034191149081069983170392569724376643250609413608984081664985895982890143325311168211155791644769397163727482537553168940293182918892022216730621206913654258359272445952303651987197361989412419183162850621394974608765053333009995419530795851810170050236398189744483068775280171297359786651993310458049315208870405023572003031665468838866993918542868565081801890645654034067092421122877067686163770063933180104358786842258927886877302629680984387856053604909952294418858669908371709771732390146078481699108155619637436729393820259321246672506540464182132052153279712332859092125557331232297420895190900723855859130546587284407568564634971972392294130428262487398481630743111200432077925864453329234545131311804654999631131402153039940145467925334572325420779834918670555908979073561457874538815177925602352196931879599632369762660688421862804539536254423035059023509784196310523966943180804499099975114092153038920484186799501253128694154459554792925183060078232668719583750821382513324478145965570368053512903389933047621511868438962743905569759772541549212588275416550905559321590401034235391815348860725678134320038782600107127314479418673082302603343589446844671357237649996236754119527274978239399042330855302563035145738996120267248461188920423705142141370118253909190947172157674145984192721756130190772722824047087768183962802126806714754319057972425643223072616183572971269422963715651578381540544721945882836737730148463825486582846807604173545955510024632624465538579669849751932409145978995060599506115977072026953548000741203283816730775649266712414957679735838828142635232047671045283380774895657430252624515133184907771227271272618591320665980922909812234982821913901471929881359763111040994961335422945746075512829550044392872947182875665630455681220604867796481826409958632769919168397680147802589243390802856699175943289830380338938478413173292721000023507957246006109312094095295870980465438170642732188482518236579341988535297487271853998525924580797464151698070241250525896944065958982052745320015202367710968902170077303023960967188192737318196495369479308230262777943896766446842196147454716728068025180854416513070906138184646557559123425766184238640378206565466812963357194053109413839680061636605596294913296107788269292585185320652142946308419505449042589482677632135408653193184520201767164887733355380090587659629462193326276117685963830134158279718478041440633307672216549410993907241913499840245060859243622488251804526809771687960253535272474261237778086978125695978522645977821061846407218171989772643400912714938131134146098541857602796286798871707157578724779312900690648535536547065199119927941644172821149675347506097057357807306733465420505255158242350305189783771447421813832703455840748211937882613348468645196266565171781747404520898354143512317294810424212559805555951884716980096410114263084377653639978250988983040124909867977367011454922931896606113909069088789806453150882621351044273063078422802413217769094522736444347063556967698192945908602031988221487167466861442561299514795040505275843314393377315297261555488248858253353192437905543375282287909280948010330946187004954910099792424360900945449896602084616817397445105745980140620623357169988544273764940597434335309143617357170226247588610638801707142787234091608332650106846901719007984212733840213609619521123902353458597161729531113493809413961420371276460859113515501372413493268931051366492547267125166802507136822502183605130764912366391878792372899572211759770489868729726212993386607704915277615912813016348067632204595319324387631737261645522561441217540889997466998654331563828604951230780960301069302110810785685079226847957637324182033696893202238472690985386344410555692236173619126844400835464407500105873567204817492225785441920604737908270770036432689671072305590172827214227766449095150703593505185944886572250173167842445260948204824240462467342640219002354998579621655224501282496655229602813704956972030090222511040375401464230842251327856007645363437587977767850697528927238530837132414754845384101595962979752197005899403201458823096648618714976026444950122149097210876638107118081850125280860599970466899067420192374101137152245593638943014642895449295483957303467884547787267928783936590058485605035730538108558479409695162950226525491135712790012734239814954401031083116472949605645357568595584892129280598151107705383482552024923025545275234238328756458349194574271288642246235263592570633669667027087132590449925200052434461654988845324230086092533734727550636886643637284605914521747837598955037962057301741800336811511531914811523850432070903341650223215039549581201454530916737401332726410205589787213535654537397072427365808971717492377167812640304278839010452878167206557322375418290392394665566388998081013718168146662577671639000321426761140407258145741297355866964322182481167326811526022231944869645772954942970215537974246049680251564042658027150201249823827368498399505376939807972674758699360980285157552948886919138260672233613177426992926943861733900532749043618843601940847082192309291361441918208091434101010523945927798014799858341223381067568034964808993555568799758671181852358221936594135003346623313849791147420423401000753600413382047352645184492235686872926293058570505165147404564549957700974415846045638259455082637940962856765579329881478364892786646357858377440754434350962797689097116646478106991008389975940259189901514136801993353897960450347439420093356859709470534574858728254230481160497139957670554326455937651889338289245349301948549287653354906091108829139073688159456464666124451103627630966173213484614767084008251426146277978412608190410756097941763102899308437761356220136534099711058789521108216753241816264764435852080689975841327533630332269250648736101543890346226650152037598297732673056896503316433331294948380175943751019549093355047050028845551995327182234208296580713398947895668992783954167128342735762139503916228542720054197089059064331929500358210171972538980588988785586083151584124790048413451437224431387195153853127872579851313621249543444797327338341546295647557565939432949914400558734226735054627082379513902027978925757694661700896867662393642625594939998612168770489996195159332382158396775791109533755238025193533360106872468530120560191434148274653920285758913506569900153689789167328325188664954712212579169731112345581899315375178019844136882563294327373231455790390597626537279305181465859086138584794836337349969898980579196420037202560256974987656719134869557147289636203745489174936677501847483868720444812990342757993688559028661955514929672080198087787018439088359952189649544831269251563678167286379192400535896385068014433756947813799008080909217870789400921430472552737489245404217643434595499828267626551294877624330422120715377646271113347679911488350979964757333291043332925582110035624219464923234154846665399410945644573529463254856323354943200830870073299776208968411698611474301315355805043717025871127083138084619639195154125786896835797169648254708167366818352536445950447460950227357545661540908308457745538438330430016464844150636319584019296807440777107653299151526668037248514531547303252314199186491600304118607017980974998784702555947152694104295958795644837848399030695137298582677889041963709082662504852611319754162152933157061871686766112452515881121346967906039517746776610870572582709997084611675594236198348912913352557073159732192052112207855531694773789611358585134669188970593307028150240466080224781719876019122574677276889654921150187551104716249921206530830051260155587791007641259999897818420148131139833956622268118712896395787815055776893226122155409526348917857302571059774689234133843131462165575115225408902068965245951595613908160194243123253499416096310590981328968698757020714898339340850398657476616660647211550161219610948414582452845963780550885916722993906919927790901617353011313142660274413607340950666955131363989585944121189415204493944738255244710538860875154507701336863569259899425008208625947159784391128071994096708969016922102928533261219257028864851648420286378162915496932016508589577990330318225146646935515466469492788430670722250149261632382624658811238665457967063108416793653528064136291552956653335539431017668898929298353214618591549311857083983432759087756503634807875933393843070014850497180023573469388006216028637625421806048346374512658939007454132675508039242927709040407752688403570785559806481897427771635176226054849539380680930153170527754049506348101469471667537282505746316028288697742554381455289767979150809144339325957850486762612067149718930232502287479256031449356366026488955170940865966005105504795658618437875179620120630783858326962655040177193071194914295666572279125530246024895963467623858156531086505231398919604217135095407307393895667151263271799942353628399903231812680739370279833352717257611804209015892875415929905493465170912867864026975275256130714690660973992663461382137571465634643887436263135497008514125942071955982571267606403778870161704371183301675905223187290319455437524773070739060206614293205946917606642075619625434561366050439848910683092614584374599922231580538311358730587168345199845218320082486559795279184645989483265126254631792537821746478305293564481238877770704945971523524472505190954677234410840369720079886637124210287370194570585760326977208045197084981023382202692927780770713497895171478656087567403259902114637757236495601897215393814725010956502307135327033759634504757038572986611384335624431835552517811761008883608861295537211764932795881974154576806562599471896973382554639284577655710298335023624148223099920784240848719702521507502274242055864034897822547104416931334367224548109835569158976037538939587737766769414359965189306701707703408124136960242392356942273927120006905862646798585932234202283890289831363451979945948017815947682808933817295154062075288643768272000504429802439016258995030988602922654414717840685186787056364087986919059219419855572385251363854711784091144529922382215327279108093528913882065872887821202538197881618230207226036747020010564962034743048884663953771801280693056109304286837875127104294019777130816463692085594078775145734520892297711472163807410890930589315957427690607492342393545584297683574579537820946584557164578206734322233169889274810792799813687665174126992081075537293974966069523875510930697736857237869979963152391241145423784795786866066830174199961673018084571387381531738915226968276169791910556931391466516242682956827910591295970215791064907258192788118670610832827051251640491857403272193304296414689185238751125884637000761214252662365288194021001185276304123086499496652202552054514776292427339316567460470966730581733735397007838019702730054419906643855200286466444315748361593222157415530589038916233010122894505294730448889970610913023444053189328175069475502980387007473321277619288318341345498309510195000349382829337956838105710769710000573394345349822219292445987011337847558270829189427460942978892616332979464244343040482979647179473921352353959308968978926211631254693744583156912234914610442365897329828966146805328479354180093363251360147845550158243122421898064978952551648113072652998332108167577611213482106306078538932523138025166793891449789385900370105478570211433621379039572972686314755235524164818468040341021888843981137198566340123180019377121469564943889069889302218616312817865941163064073324473363341967565054070039056834178394350186396936202147072830371988077998541754425481840121446275476313058502623805030956122405117236840515039224890022551188102082437610678823718460518853195857667057647897507094716565983436023108444156696271626133441559989711885925771503508282068848210087963166697133630082598368274813587248540064639653717307742848898198307438356099957317576790729492855808564445257538535756495319125960840675947560829744630170599380916022082278079117525164677545704588281865576929404931229145351034631231324037992564475565341030742047723448647661113317883685372752150888581513506875671202825546813477166824598851509287603732198513703322631666116940615757287091954087902002558461684488183566584456225694340991128114492728625769160415476781791252831293720142019188409827305658676767033958874696143611090953608252992130176276609821445975995455911776142888419906765761537625769903253499298824336168522055804845767355884657476901401594032598015659934558392156603625914932976927366641101465729332201684439401575108868720021004640620605146155921321093416124801512832191123388149526696714790915084960031365502121824398491635465940022738887540779004573230338012685252708927568071365131257175027071831331040092659055112516402261499573483069436181915083921968954926822413088993060549978234846974752318719705291541460812340434726810353343163577574504662397725509555261968386940113082247552142898927227346413019626250473448209044560774439574864666172947197228418960294135766705747974415729920944937127291356594691995531320402506557959127575554048036608061735685303860965476804130248254428656526714781477406209444245848253774362438588079638347157988256641479387166248386793965682730527960579091750942474795685473243673946211213560884355826917378851119178170384078977275710752823895548098109080424533608185569949040554158777386153518473467560256507813261830650609965158671229441213124169491673161906217645199060678956257273022791215185998722855847458087422393016304530905532748216669483229981609802532681208003258727510426973585239223926511955621725872280627133444244153819197082343556622058882174863099656210045492928818957823810758635062310241300654263065009736248228266663734012413557772588551785651424413674673127175290191803048214805868960947761572971667117346800135001560530777389127445011178379707883844643276665286248372498426961462573756626035024741841486040029747011523075174313868852774658303493028831336351708315052567148929075568703791279494568559868943386777731051602543976790800667616400176457200912386227566701603110421823058471043151848378509795777432168823098305022127386654557542895662762626510793831734518760565105295270005590787657664423106607728435734566676327927277697481707785042120566859199968903589663363196458520899816278870428272124823375111917151573005627886637933794629995485735624869528875592363513901550727219353122507507511023830532402453463111686687551178900934458971065967804531650294575809875640122138195787083413534791776116498709981264993656248396605080543194209031198485894446676707389247172889931067813714499768435743727252910545500236698296997762612241275945028139984894029688123917798707203365192877728070755951215618465265908985600724229935392795668049345835306239637978859900270955889549019422647096649405033287269006109091512096311532459803058581068607729712906373471020064794631059360948429820888106492093122064849627912314116188703802719545484124458166015982529617811807760978944195582380355591259320211445156609863436281876143345512249750343984555379248139704099424147704806931815277405591781379627101174986948481146829758669479872318356865186458612838805866472810622897898303965877341821246591654775276656855721318268713602153844825977162179770578243008371112667117698008698311244207939707506124376398779038722987786761324738684119429381304123483535671575420014659046997888365410221453450370818584254265683700876290066418036097263204189541503040551688160858992885976373163741314015238314012034584512541236081646256581849666420650378057374407366483054633533699812666123953021638334224882540995708243810792051355850065752994451879239610356100149925965696675638225982003358528846540657357242322715384894150184040680335492557188408712595550316570009834247744042610451799441248762132734551861190388375694261827736349907739770788082162241085209701766393351589183056287865349950427272088766614091670187073937411147773418921489030971173885799398118272043143539687046028269053890790870088688202210274531780754946717758767567312365117224137804598176797827619135553808248731036966499214128002063860889397732605574534952071881748485863352115671144973035970303954898287689060501225211957900260242006139835808581003880136778376762136982652465878641012653931305588263126184311139880145510366799700475296222659833715800442277989493612245719416546512638461549770648059954838762494758290747660526710624362550657846829844863655227084764633636799825060626776360011305536146940711680243059951084687811064085253065005730382975433908431274680859483484341297632522883813447419020070431974560019585857298039542914519430897555647324826341562256989367949867519416833510541908390082105847592134881262884426078583381593480461879073342845949528877048158647797832123791986585182024555287112013066224262471233369425526773027529307996373059214876708326436617761062193678093114367005297946854152776182476451658440258630789216403095423944410735125862340299381470900248704836188033301679200479729430558282558504746257949921942889806443166533543835396681621317308762888885313933764063592167442692398766810922522722463030325405821341770007618552267072615386507152591432223851262551025235995350466268902989635502390837404098034460502510087896041913485857659309491987741484497623214158334162540749774504098786879718593417526774118036179457130863252776673171468173593339077021553528360807611764325395624321855138747530757139258550845994668720796495324307852878817480375941481083036657232852974875280557036752800201417699560624451433727689883033238395664244114759236256667774717110346141758374825620514414722527455734930862701938796209837930439111895455794667687631723552468725715283348236675891462689186751693758867110763785036944455438791844649649955766376303236340399390245592294030215506262839954167955518093845932312111275812898435911465196207426457513616408113758594201316983677217025065647930519601086905675712550505431887861694045272208072400992732236392568665707482385739738876062631712370480990949042271061547932055342885382374953139493264386210095058483031971757051048162099063031634263221152719328577754143853331550972451702304124115704673580550969860169238966943401867283017073678385109192617858994477500613645629689481596694608164057429979176378763172812897195954332699670101273160330974231327195185187502708783965951148083065495627079829026232333455640905556571028527263499244539209008708224686308367503852077386412656887437803380322571825619799327067671423834115660910520507796090070398794995768184801814755567841645690656523812837610851710558596904089571181550305395155889960959975605467738713531535179474539280582763179172964638280583533481346949454015827551560844081584101676048118660693099797419471697548594821368768314642114938597176920627589279326051411979256492421054082325869048533575698040274882541940712027508719830584845340978575177614084694373283606679970332902012020811471998353876055833498814365220332287690865426669049747309374026034648639187765658358822537436153845405872777400530305259998430482314651171117843285494731741301192530485276835563132637205570454872613942326388225183046748138163535461773928835113179011050446855079793664655513401556579356912436439816523394554815871964976553478175199351566636670045857481646858541351523357944386556129069401725292431808568196606132506729185044766319377538867344686580362043582161667348963943323700427285918923348816346801251485127091937674645278044313801275143762977616735727002834837320636606462163401463060763009235216628536383050140824896601770508701501072504460246591468083791448672922592488370518213286050331955646954026546367394421483069533574446293749535627024058515590741988031125270098527602952029153892176161356756161747413945927524405790582975137348394519439655460796244487277642455621390955116417259122743724580581598721498583596039374916277358093264085139817725685538233905867999545515118160620748730977645159745668416787097649689506796752496199336530322589617177974354507530243767316860103624711420713991725893550403193196765867275652867957548621695193706187314067547885967473901998649853656530765502417339389402963823229256449279906021179592611948377825404101887558234204266969351994883202477588889598628113684984598972417619825045017872506215603058557557879783708466736123425534179189561499289400178383432701146353940593925911523897352719762908463990622885059760873494151127131031766983477983804190443187592351986031440154256165041811806213752946672538827168406811840028451929169517510101322086528850792612646080128340051741947423378084782700571985647834047250967454334350617863206212859334471760225488259962626758066257855194281418646536379644336867689936618322393568940832994454863887268041726969817811386414846248412438365480395176291054059310676938972393386919141144584623235846331417879644706298341728273032616487032431532618738650416218348515902105109032497515546249130713790499556148771951851030050921989348606914144352057722505568818827590580220400987862627504355281135709332833358674570963066855425620956118460645933443083498451544275407727586171906015989545750731439968202563149466957887489622841349623421322054152467292807787188945833383171870185393181942096452306583348750467515269449548057800764855679962088822994404931640344884998965680019885245149867015823071570334747613848149195512886363862762071645746266779116073580025496832509350808603920547160508730094814508063022698533765503752485144172895528287823192347124271357256046474616725567041513952144100185023858301372499456489846529235869576113182778986704628174504830666786756675930582115492618927085217309070658943570935617635770532862640876966695200831673161381748454091045943662144445084038436920417543333620409773831892765267774057624164747326704943272520245046944758799349983844346875950021302550270921972401830087263833925320150702260370910903483917297289021103690863772469842452483325142788317377577447784555049735687947063948693552673029779421568708742880929556028947088807494521189160149229159218144834784505119658666402574772692895565909184607614496210726853060205218998348610503849636061172998130430519937196376240676204639364535924055435677457237839408258382469191468955257922341391434516803785467457984419408014750203443686596876870959056037512374637444037620309684462431308607041233447418241081521176165303714504842958944254355562115997332995064381862581103953640833700767054455256696019640754233625265137632126552745563512128258000428881025112032171623171463924031049129719167254926854768044202313146810003054933836058956639203191187977152731263466464108077904611364413019960961796034993681067789658673868025655172821097322745002395109355654556519537858742037203333575623571353623105016751900092716825137688351960786996541038040128881554259114958477412436810625708069582644217208676398904523942821477766910990632457187822475460508430198833209757606463125171687640289877457320479671220338601671675357802964157173229419959449321879704418477238996428444315258272847248874569471640943962485850708474031309607791702767548918780586643413579787891565909014881088461875539937636283490119048507115550410233042011538566166591410538334171802887739934718142441277549039047810394463514843326643398167487727700783021921712735661406079872652823089869402551490565266624150423626030392887548422555236938618382412914273056156652197344508152205745252488852997448220146156197206810271899848669064373416245387227763636577233538674748325940781866522061729818099982026660670361010136144692305060447441970253096840712279191534260909677899353940717375016792440420907827944802852210177991234747920043722277719675932194686052835331621584327650094298867712035121959261143042954255181029961222467417370322105452465119536942729260407800895311651780535671874804246139174658784160139400815038674423465904041284130033753638016200071200274705573275269240000980541562073741184854189582173306816823390064821093754274103382504972113042252951566448465875509794371564104745637314718790011518723980955467962819377985967182042253359325977753845360159259684229967621950314931975313975037278216430001387338057532895333732689311732714411399377096527912499485976942908743778137223981134538056687196708084201413807874445712933084201266459897390833380030808841847439002293868125492900762922079913404949526742573699084374929005201711190511923854837477769069708317932143999748987424027474340429061389518529052514381156398203578583815651715809588981549982717088329133197066840337552858305869062922539910907942596010772205072422115780846715984462640647604295387123357380417075699701325285385907652898950895912273301223072623207855593030728332863583222225929255344124215675160891545245138417825024839862544159867584924780874137939275418100659500231502638525630941193464760392226523012834447746602678382106695292107916140662609693638130895615097584625834339689325031689345020766302798410403708854180511172423304114910234075538079176432724659539990432684250471214362533806634293743858186838904908879641744301501213308666083474649993607582087803538104908937275436452718179250870843165658214628483135693400607145431102011197880085756992299122390828283203362347298062993534848330270904879508929880868320741364625193227648083379278856086246143108971338894757206847760798116925272277031757827003259237207159281780524164915714467669896307626956044129764942544430399081699769713840809621593922325661115498303801933535208497322155163099934880674265328307447548889861832919852526524171937769450534378498700709611723157137435933465981900131745189876400247120223295676285867439329199843586223785427745602159567841066683514761455382590520126812019066451907771016730494976166135036883360109089106430900183099930430572841284380744955922881375580714655145784485950921470083445962799397534129986274285381362700255832232165235179826463608004255351361047336902745539062930795474634488807830418828672861924192898246325074514212459924314034330485754722915963613201651154166059909212041075352033449739044401125290511467015155091915719173080872071666917228215843493779149896494042502568999074354300995334911740792772983020116111212353321265180346503137961571098356205326475545294231001634219005170607507452452491141111097018742501866325984583469577099743774983008814119198890713909891465486575939097934271063380196507249021598433504558822510321496874586717488688551129680784578447418286690915607763911510626840176448270274426509528190871205442937256431540982805833921868925182719180396339723425248202473278325699394280798437298344698325786273433855698406188325673491937701328674188345886280236360537877605273533148120401658697839388658274061048174100650190069452194700169505490926653796768640990320873213861508908095036178979326510125993703855907064907138801177948369649251006599454155177064798464242942119734989236745013506543948342768277454490146035981435341261704610904770901264135027863157098755012487056670610443249546865242693328934206752107425825884488613485536989189465583975610293955247250124437371382158826132009940643525891621692278873565693204866316943288641467232115063941778355154477351712259081214028065127255260112418834432764668174851284826282770278857310718286104572676828743036090387629779195634495375937016578012147804071786713150852410987983916766051065248046941384391045207106885506564839501180880834093466809466974879289196648879690670211605627120695199917951006548598492401142652824757163641982972030668164676057628216601612829487224930160936228887495520660987901617218149993069620793310497263532276992517892362386970396686875270461094290396874997991321043458804384040453087643780704024797215889294689247174228621869528642498537710964030598812033322349499700622841326474438426255000303308347979457400552489675685912373900453396365084768636099302496321827445307689694653926409957276760136391210747351163486262464783952566912059167292495983105376831219110868869656714902926425724282815118075818046693395311648339243388197035374151476423022628153461138109177930857236544104952574728947606317189116385812631143344434496714357194764341407193479400159827069806035947724400413199794532839094115880004687515058241710027843541133910709582327926892340917101497062089486455760037071987151937155801198805919679144156042822176261078197348729816937251724429256412892934010283927151052724375341699179081661983404596009647628884250029314505574559339205979101572479910392954575081290303884256864365802168467540644434969861210505742180514002840562074604052654564957314724826449089855067457989583365952122030634235346530986553389953577200333786265665790805744843221304068600625781626565838357028667886286032363241189767605713089808518040766898015000368744205925387360328633414531905993555188759414232060445390771710913688519189927100378483247158820767113417108490579494311328557240778468028392709506922241872005944877816569934781418146078716938246942478837760406534724824292490003382307449219465311972303596627163463479614516451926152903953869354001923864996909925980580926535273767591435517486854682257666125624599823111551089924100066970989072034876923342839483932500474783691929524179321269479726473058052197801918400881929697104222321019275942086263916296795516351190725285323459951120162410137300272998732889221595591913034966736162957041168159910779505890669035860100134223568953014223593236585673746398507878592303366459524495756676601594223912848935175210438035369301552008684066511926713157077941450370187604291668714384076373140908556007421179071154394533372121214277261366517024296781643765847951974539521768721511472753626413890325462637384859325909901491498359390581192622832665796882117342547406035440586707085131390425781041258074217721265937615411420761849314199059771237878596677132184586845214708037414775254026607333655349362546770680021260829217715885099316992630437591315731309448133781603282311742364728799170648766932830299267328771017670193754129607369647982885394352755615385597091404162488940837193723614150250170580140953797629649151437893704213563614786578482462377103044059665650101783585983004392773962716458428195620233564306499791239991902908724441007004154076770929033234659032128328109489642218456607341471040141098513349176026525529476768982733018446961447527455296251142166301373526469057498769585268418572340907203248529134027634866783588443350302110991029874238199497267863128798615304120988174778905102460977739280649576417224246939753329407343393883816326484982877022755167529383813822009721853254474019485896518317084823041847077618016643406805393401885632140298100998889874926526958718796504855471324504384523241639167047349718476625648552577898612822983637473490452741936189379952064541865948568540879084841416259799838846072989639482793881835965793484300728407246113632433442296798249034751556355975660850971289687024059810470082161910785636066114048103409501543154577412008373008274642150811351346988145284715301945801157547399440220671727109973387385174470479877843939507858821883467705856075453412368053086344322843947179606194868220022510606057045479290192859793007052051883135227968197195101694458537759594430881149096252909772508523908242597548719825993576748205356207460358186874275201130098659532549753604649419519184286455984341201883751184218933978548488206457498698394718596040626667565477091281253011406111943197491069370770661244186750050026820484882375428373882394841937569469130587367050509977361049474084550545497888206843925277264629651454359488390369374273483293127104761105101014046747590796596016725269206718013351821601839019943031756765970269497476751036292538286553509310892096425118953955880127707216380001024346040546767971858893436915111998968485328852067382019091242203000074013970440038131271009582417819469081483694724364396084194200839687958094683118034007956921136538832289693277052500020160053624003964091679660125368915446214980198406777316952678556169316903202244543366805634573440643664422217478162777794366067129598709092846292732681405774863333703920889271822700282618313449159049917908774822605806964695492127855437841316457140844680329055359462653493843919759009941030288965734690866406979473983448840069921496595117172896476032777052230337920318836402501746202907952781397783450271067770415845925249095929701996822065814296168792820521571386744672810459231521923585435897416529971734250541521289962798949045366358630810518754452698077669862121120431710697666049838220223767832444912559923848586668831871907197717073893213046176650725208148376133944634585231319100078684271986352074975545312430914147067585115351499088028922122534924782047965235977292354443034775966470245718739093277882978695207279365716820315442032597297316431047898909523885086028269349415811288857126879535227828763089507520276466562487874999951554934375139430505113115811617207473148966866897259491215040417274208859479486880540670006564076296668407826304301022931567456880095118950465589328218383458507536464956626993959052710731275136879248589293693978225027468164453993177042702116660652556103376080703195879453589809879812046790569527732196010732366320691286846960014521778985875327015838356120459814402514491848759139682313036785530742047069206180714684484851008808169870058140926453601486584071529916686431282413665296977728428959995503539773472552960972709754835023065686238678259104198809410407260301568271040372984550497921957027951147379586355188649005079400834108455326907491297996358228689054125359560274995796957642981345839948079741040768743056445712086391168295429789608830748703550941485386115053357412084822667914785842719187200917300403200977572597980575276102073103627041217388049674923544940229636487321814366823009562648368716416112926162785755384214989733354833674988733240077263947649810447909359770502417737099471720536254994749015940315670847139388166220021609030180614254731148957694416693508106777273076426434927367883819421463183603393807452042078797492061174311475808716697917915195702754539749533879383787935760976956433310022110410755313342405777518098484634454704172625016768388012787258659511831249671255882525379704777639740722786342999131847928859158970829220099996115341952098295912784514390799233540203161781623192422484700385151997062765491801611829082519229584742518491449898835020610928043077144916390713209153458958848886009239532738048165488728582465235988384682821920282046809409660991919163334896755837089726877972612096781166192313417049875513501984768626493881223134844433833503271585200344482788903035511120504484983291591893837469721559256528642754818464734520867804001109608096838892576642373743713956943956782520654368429696049737329319985208509573355217210027284233879747334784823959060007866024520736590063714574990586549205824584720842225700936320074726776934979262130322139847850811982897793706425427669740637301041652168443310241094742581978640650695309193095650327132545743184884174790914527103217138937327447380136688426317106104239627746377488795956071005571173334166715417567569263723146340598102841046841901997011588332385519520261518987751077910698201272327465374641722548173659628446882456912788000043701476736059326556349006366837517101615758764349670688261636510197493646186950720373211761838641350482319972651142619548630680011637314948656371766907700872533428731511010541262703501158305543774686686634553938611304441742266872748792078545282009716231964788842687927857136553986466420267642646614147257763078651830231607890698825669927866188302033472586278415211526388361292898965270854132963411622265872243357159082724097677234046167179690172942473819502999050137078959835690897106823655801307068553410386782030184238261299623489395822931238594560227877372227338406161659030976004365685944962104899183748565943449920749600846075210322927198794336396293898367016025822387526818659206731630946810635027818654532799487459798025509432750316486810859047809635410792258547669989427706329098883636469457976775404293967005171486488495051279701376292068185095549713459976622802607281848802975265634668255171616483546831313899079090476199258028797556689238874481059828884799928633320110630958626261843663504566033471055673150046789827614434172414289008254421243989087228392857768176678621560132596355280205267198601479633326378115426540414448531438224924898527360108252907318492393968876509492020694884728566838935511570042199951352639240139179003713826698862024285540551330466808734876902092175754835223725122887868174117480785577927272997923308496530805436687074371165304077057342828897486907578819073243071245459377782624922659030208235958495576713129379961515678516615401944911044658462666887154917125315343495669425333670932110566251330510094234218747229721263217055369883288999077619579105471558642109499814726332692028398255472504198918499851079869061800325683323777316576453848665816325352755126862095264330659673538373065825452774313483431405911949252899256933822701139306592498723734198935392189350792741315694822669123891868341514736834262617321799075682558562812566387196953082766419763255757278205150372486850330898411997266826133385719723586384364118755434812665162733328505615346123022409951596422049924865168594662978180795653826894872315724712910067628521459111326850664446754660367037211559061285176875224179477338262529466783398442208849566043245871721687257945323597347562706766938481313649146217317518228754826864597327941155123845904591888641247176370650569985374384095217479946075917658207561173100022609118435738543997565435306705529560260269273703906725011345422800729960907523327902447626420097077820465098308733557169840595217367475508886559733575718778238304177996238305694417657464132089036546877197593719841123777851253349738459923459451358705009370316876523226135609688592832909912984460416007587222812668124823856534813687004611526310437982942729622836096840630575956401428944870301798103370122187989696837750910882045550485671716883262777894704949682388791146613906777382031721356575693067519167597198798788904138897343926439577259352052336431595786048613423031595677461245780951955944587188780035791488945907211403317737777536244046760537926949939692218867544893588173504581402156659808879097043818547682165549425481818171944229172958475271022254221021830843357754123674718551818569784368351232104131535210794886350585775751049016586834917481180297946451727850791240384944944564967940933094435504489483811272761813317535021872919050695717852353631313109128582920962776617032382535909759111730957055261227211851548005102014228856598670669274154196648821205245354864235188499624325989437284834787134194949271560680559989605960714804329823262036548270145328696473820121476951568041472960944472973465876557577628439977569792502627544847457242079747405139113529880930673993032209777461981902917168238237200501273788543358793805245155455704876537026396458686063578958996475057346461232236828901169578904711852154936388801794075053566951798605560420171330429574907247285478895604730590763549116897629552624746927029325591408186067635221100060819382861380198379113978421835058124716805388435996929062178648161320239766711644036120933215022616756560754242166840886376621722745576069313926490981394929249451534740031799154754821751608434514211469053128814487319714685406816695820717699427538265465859511648095790562088685997071453870350341497332641972917562639431656116921364775828510900365037093024898137042586678452087884817426013879873673993530659282738049841003403445882453628982691915238997637621667148328060868947004727730187825921686300697432514937673198843290469476663848097464271011554554185567011564208006935732891275233407139717300618552734705565682262396592973324678774262257040041324707406990267071162656425750505385256936443693860133697877482558862871461202390237187550833420250370235260073165751665581483917445872422981476458697196007735516072066860480092801005898876254334271983260668245827938189861943506377249739914038182830186356932098378643641624545984422512739130077726051136941765968281267259285924819884335231389395908043041411152335140284090574456233499806688329241450379473359270416240752882001711533149844176110398896366818896426346401675855468189328781285267031157037234502733330829870990220484845835156766629545042673763814215374584108103321409117493452595848863234530628625548591112727135438062579285677855298545569418884034518149920742898133532066276478741292449900321357445734287526660790141963865574183585438853029615285378411195039180993583016032209310164156440760261463000943150129731407630857653220781265337569272760394792694174916463130282284851013362484070787040823936587050473018721266924401407367438265498525972711931228900990968688235958599406849703752315585831551748223276543248712172869790888774374999590713596031183126898300237823665754678125893157393792290481633368992648587175048690198777252902762491782407922651387189006495673035253957739428937159561012569949471699644063280930242055903155480030571544031333476223205798843587580439504131848582670133131881386472447833619590249459371003299346418489121814904570005302277195750946865004016284065085943207481988180124693665737275889407639528640533781812905489540368162078710517402056532694126831354953188308893188314231473253655437893712487089492396893082886735380626447644339506013880389609467019852647078237321909489306256425339593157223098374328954663556221248544272377857836207284249642565890463038312751843815557373723789078314923949723938101307994393933670127238761934551942190555430367626044908802664732840026089317386208287213159732202988076222823861199527555792347963396880631166566149193865538311371493658258812182168387427442831029815915653586349368225893364752611996221521636319007637685132190484354490126282818960148204031898503985173957234759506906667165155999153573732838736931727958766041244260274146394687604005647130706679875323082275194296397348844478218145920772651094704887869351333998863798489233503460722599032782073208524064309779866028128870036205569730504591143976977127923317642683701306950373721047338142870532220584710372527083561253732780989348391391255471287569784709031868556967384920897104317507649782847546621144418013775686263023434939261111025986623046544771573654904555160245266228247922515071949180491872236003041952617215547323200035345808660084264032210136062054879368835501874410759933417323816718034271477100632180661746120496736031108848582790397915704511801298827706300586319096574309584332303457098097440233725066157270848374835912865545120374198707781509694817698315301233321271907358485413015125184916897332687476634343894749472273669943580864227501298546908656022912360951952777571787411922612143338311608162271959100708149976160080135519717484980195794738459732455577089018747972904808832135409549463052945021003036246396184487879461990333550164794087092216574124357559672133733532711945522320605052325152639010651932482701693058400797748463514847085782528168674315610541082475137008688131174275765205114171439652023851950170650930337022274570897839563756835549400439979866400791363286061121704273807194918772011103898002999595944707811319237412190058114271073614234296839862696422413326689241365885002858274073677208232358156692053669371662471694421215402715614064048799700639633758648834501617930507362897117771004239356589627489598724396318709775878034380579027684931778227347129129334895455410789202937948303820496352483116932922990693049003908338971487957929701615519751252214195255350018971004317905680339549048031108290853833595047907965468096826420949734153367377664220463965661298220226813243503372155646269173864361093604752986078650437719257697762305642074801512581442006943884938860606176618801437382563012205664288005968003644011202535176258083544169900561988825351757336953330122984082620346592048487384149107665810002408389739879019706934544835213567936138325183791718149970531696139104140513195742993649251682251576876506995526384441358138071326223808684293834045112680495675393897270702310437450411519217359060184765775326733530531492698458103354936179649375181074381591537468080673947403343053226625852611550147101415071002358822818484398307897403809749329167147654571153268654635792332483633738598977752107826995568940603666696138060847048302024371626492242520507720345856326911597661411788496546177671736311231410840281443053672617784666771696479941847018985216140410546619489795831088677898002114321073330381597790899312944993357608465436497510892068224531789688837528422831481048962950075366274477170329830619533770087679383341286415011361968799671033389421005543771410072863494021770711014080895045053904222811940471237535470171915163713451093378547381989344945045384796003030914665351812166066397423884251143564357962936313774318248771508702310082852447889411010428228935564509201074968966730912273022957730694837238950619025107758485552723496111654111689966147378627558737443519900274115784394523329799529336465016237685905789973265421962505254692946369211158864985268955405544388607075756519125054445711627081922118943562777936441543632255354531293663638485264310061747896149178821293357566998507699809304449456565533844714904008569435180104709445912970673812796596184171182471962123070316703544272332471416403079908511907000577399817718244442655669886706488542802008951388893176909737687764845945180464349725755076286850397556518351276854866989895478854954911096171167572940342282400241999574116837494708051125216104384403671913827349639673681728895663707224341345219865053131203842674025069411788956247252440171547681009566535118264663247200637251195173967454578407471727303970818994378907735914985462161675728362977338740318100290843113290407171812961077167729348295707212352950917891162081575991883134204744742445264558832595519394534953433317664901965170781344074465972723086137129516095709029417518251714829967392297752271874423328313314992050731473681037516786444000640857738385417849608567409214771480657744838520147055574989584646446192741073830305817193477716900412175568075315958293678653975100868981819107491153259253938110803016810157284180890540207007316977195545841945472229388842937098141008538450086224583784983286706452206547416039769884273489821826139586629001495526768953288390046140994663536213660990721077319899605444060408816753313717216065665606286841916059393581943303762086656325646945782788661750179153145671437755588345093875626311594105623963588009823769929322891979410492343092700125084088242087937824507051258544503918606313981513340726228857164968284775122102361793740035568136883501688309648641630509284824607541859943592467250082529956205489099727261335922368969986333251093939458039606343339794623352503305137551740544738330168006918332253260028664019964564363235298845777191585331735949753872935110862485106321479590431832380081926455600843720144327342578613363367779721000980724135433658563171918244537377651478247562443083440848235434318920728086539996456548200706452971805173362461992683209299095373196810817481811623698886930636670892648175767503022507347864171658377028576937394591189154243671100315034307596064015774569084247421862823311423968850603134685597793443801082482009033537945876721120951196620457227361091022405870318616854278368998433277024477504524563076357796317855382518109984172515785526279647901013918555273165948973887396710149721506898703631478363361433213409576508231455139750684983795516721745454391418495854829586000363553155934214112272979736181327178256199121234016180275207590558593832640862510751233387356033938907605850411269098371286108280026302130951708548222844553613405748661432381244398749502798862281822294047965808122166870103815683844692489984699354707152932685624446580678286182043639350862760753373465706215159141051893607058867466001162815288171839047694159535268426824756921670292693613659539286058006918431457871762280228569421036904478954837195112628475669207967660686247956598515020126483660441449265506630023382421916827061003717608509513103002135462330035345361841421054679749798121313895424799154814356976322421962155757794004997913093828438725130409882279888519534485477435656467675194309889844260812912408075005285659474333773735051674470494322717894457921690446848643259109831942793827768204648332722744763455729761071053725311991887650904432024563710806438876783601272624557558664062776653312255906163510449563421029953636918325306191522069848809931929379342378604572923475316997043330074636256846533020566509070524130787740299186802925822242234497019027460287490273788553494757807637122555578147700745915099602449851534363052109655666237642661290149720841261017695503533639734718397761788355585812184298897443653265235231898202662710773185200927677382986007941088894261332617002446187046498748486167160416099286529755003928805079144788536056360577403509493779978011682285423697782319406316515637787190905951046522717701637874419697520120654418169034302107905159412440509073181317520137360840049704803894569824190801176998197596728975350315505657907117328580275567766042023895376074876536288623827424666965748659085182447822560742239995962162688237084523013091243462391233795149329756204253640814223552253038154569832109390593071262637102956704134977423785417345442103632283891318768654901833250186400678934661697640210852878738280870093161774494343599765582949169485966045802048070990512325159194520000261360702474199338088353446783152224535200463785339776456211527060017429723210908476603032688432511143708946499120313110587484127332402197283280632523869254656491980780581599390548628582134265818647918715308082683851681242859029141040494393356663864254714635673733793801067441883509453691974621021603907644578127733140463727748983789265165885298788867772561487340222229492836668399226327342029655139043719020066934393098279142390763937291046604437962224602810703892681657367246675317398572730934631233096735099112158392892946443396394317978347811352145622809412548771275837651831676485957492307233655527649269812042284242488616333944907627989675712428172463185049299067924433586017938379550027926909712125644275142452669666262603673264598891178313746140343253454304648393380039688586079014357660750820939526198750450103986901677910988533257830705903680231831452447457853514980967545821929589799677092104786659574228047627185216674102906275582461798626444023705176342414715583705836000004041931422307949840233465635949867227252480419071655830719435180634057503347058862783613834698667890463151815275436666556070735330671059993898756464371995269883688809320028275735377150712410720061495931511324859995075607906660863784180286734538353614131724205399931607607930953154216433341622375286694687264089503103060695469834542200599599355789833088803017208181999411203679073160172144871093714840459698515024482741915801348179380924012921984690524246015568469611776374368251780484167078314722930398073473625149669073455552526956733637381551334482756089616070943748021846866668883742875689132897697244754031624233066597330210710980222158749075782564974120891528689601653394409519937018031869247996935130184736441766059958412883344741281280267949585573586612688942789194394034685406013978462967455113665799490277976577229189132292715125973096318729336937871092255341092115476530930122272119357817272869131521525985033673513051381244623531654490490399823843211350114847026919974630988843432242165122339996845912158520103851429456259170738671020758283178183591457600036091677852588243160565005243573457449684163979457161233435508985735044137870270266261220488426544338544685278136693177348395474900408902782652248343036446255301013887420866950864738860775540084249935260493993512362198266133104808479512606267959113796738278135421349361289736341696306764763164609611497085333173716452642440681297993285264449487762255090749415799932839196578050739634427671333197174266715029562546041620710762014177765581719099327098146230196918323870861329813801974239775762297456384748103959932961439959294345974620625014777591121191038830429155534989114307371824895759994620907655695027639770436115212079550528145733906564437570926619146278086751040948364638324171445108416819846670881335595752968835165053951179279722764710256282249451913861303761694524474313868255476964940474230818190942620089022099474884558636435496247283743127424957882856936464177572155002153982600453384450568522657036406348454216395524946460266309204025498734869491505398724795642129055665076743758816356687128671367704483890406450965746864066746024864124362927628042536247736089265142797676025042970203962141526779825282366573742782915911269279674756860069662370579301611005682091277111355455033628019837747702989306321194559603303195340783068984917546282954615170957988780034045053654672934109349571810798676958851464345597165313482013783885636321550035949075521303301396372913453871685974883112195302476375189761028939167945490404083375417486516754424428744313474332843133287647755717596106792694047510843670628124065905099432557947613773493306820215537905658362352671921216720365749846746761154782765179719702897175668245774022478986600237590510898755697306011579948663728958306639627618300238342679470175773510727070880965932668096831423342920998776776402301508014214080053485838752190278663342578787863724375803440323786498012274024035008610564840840553596886841313371966543620803037628258873055452669003022578130518676798874358844304565711286398954070285961185847858232452445571382663592497130684242391526274302615418857788181237550381710390253778755756609405777341989274304476054331587832481593588537060872113875778947797362112013474974626192034754643692454147911260733275095255519029838567305260961174963263538958432646536853365806471166507482705486066229110266764347062089295051292722597432593522287487860861585611663055622940409866872331838576338892746463372420714703665678961633017580323449606124855244072364513465646739868750918555456937162192609558622373982489183668152822118878520890688200621964744038470043066459721718313537384633719164311592082947838340239380189752699478259148824908852073221735317916423886346907161124145231308023096659694819873277988345022688769013590247615104744976037434063251590532827627886805095620858551015652135466226636229049170314662768919313775339694340528883312913315471001151678673069341223725907891069678772845251085519130347925711600930747028138656842953667798024999929265256210312029320448601739725548438402965431511878353632432672159421118906847618072154354767547517692646454267235720760813805910577788966177358640427991816197266445079618554290172113428500579096225557642640208191759397690677912084894644589233506038012587907706032125385538854227335078345522967842426804578675979279361299726721016632529179661798886039635536999394715423375570555506860250609359629178258584304863975788532503902126077797092102191588695274639296605786873378654184188202277469752727644057153314334560439409568995773364130836567901367248855282645582260386892626119355075108506192687780138568851929033890168275404578675407607277041223920546680428586889329639400547772430768260279572660161885560160598201525723108222800929547284043039805199550092138806252703029008875169729913581940200441765345090521275174874363928741886651535031792201296046912110388113326213839648224886340627417934647630955748863795086311084868127783889896789276505640101649675266177136851776714908608323604430288182328902219508601463302463770419826202429751959612774561808297670885566467043452707718057633544851836121642274173422475909246553483221131001166170634575269249810755639959572101632693863897673744416036457529779430149731261704301339577951545895564894459179130677316339066643965683102655400949720912866534803064673857373126605291994501264319195961608818188074584002069438430463153358814058473395265423420401715888179016191787423189223830504396538103521378045257460923966222133250251864510299358568614546614580326767288867116292604351519812050103589175933724699920972316990830216722340855525711312108529628754388305060012146229475059219540642165457666851497082708840981617788046405995129199215582010758600436632622240330429130459699087670430486238918133494588785234059198910533513813776591623024175357962396306795576084686295351553564812272490185758154207666195437749544033137062319882435865052199604970002603522720478650997059631632509291816308896948811392970603605170912352214598165277585536588139767367322118519818442003914345862052767820150087139826611675813166648938525714681214935759646851498275130114104724825058729128708099529747709867049881969255221874725091762131772298949787067292775596311748438862657002737367487068980953333084608227996074435387376569123883992563992752653947777052798397386528963071543413721383046964270443299608568176148138958102566103950253788774085640962813522570571006174664404128825024966031101612714292915956325477382414316172048536914225075350163929332689714881992448447765444244840730648064544236978995927963615892942553708603097304297087370159896869451659874153171206176281432649832077966785227690616036252689542666303657115713587554834362614933249348798929227947689180695218906596669252561337919710946905265384086848888084730041187283983896483550571782058213808143591345330987210865665335581118388797311247481022460511128022062357755056391840256140601654411811193180004849131863827086577695397078469958850151179608033431314096316163859159245314221379560973187912169341202462204491487807844257109407542400960414542625264121937416070597425349383269937546617745334218688578575812214949695064194340054082225114203686465033041539180851886315902458669212696485773178669710323242129940900360979908786607140429933384368928690573145616989379173848998938406173259572030190797727075885942912965789394936281209171735755528441396496599297159174984518656509046639673971044452593612952785644162747456590630582235654478446264615375339180896415994886108286938085197617666749041115891798521868886325584166753467247599910394905141147844240413606649061440153362301408672512140498266987836903067393122142453048022299909548587229712739518177847579899778139485040152415181569994611487058279433993494133157153726902705250202005001123603036736587447866608226000570576416649886516348771596480313898511018601066999406343019079076465463728912195837094719903138831631588854189512750714084253343737134738329194895531068668851839525754106516033631295967887500186644009698238025761080311570031998567657857525559179572733338086219486306790543476651759543697647841679594868497286868976353807663192438044135461831459577884745271413971876797763185604237979170079122546012176885839835374205300354475887983766705177746020801433613356155997591330117062689573123748457467971441794363670463556565066832762685681791704513448865876743075145085533445990271370857392662500824675650267036129461707695739220836936369351813643258578149604654359981565533245828054881799655031879089121913419088714847417242797515261959703082131472441021484409829345303430550541086764595996467185927218511241152023591788045112013127281946831623116325579364455507064189097109159743304409224289151575689132518471538554739084591902184049250343771826747076334859447618419826019844779708086256495633505097080840141807998505911001645685692444496323304717050617259573704010710302608574976063842628260783468144996915937986696886454263060268213490146136763910480756744352790630553856646282477283829027094301194533495242586395208471103228417726416696798161707959453725073316088664317633800292777677162710255637901335851911287858754803513513087856843063017089567864310970532265545368392456620485727016534662524245375073524061945703594779361411776326893383684580464599856159185737473118015755823207618057190658285079038746017551955679571478209136268529040700362898032749941415116391328782446124395366365720561546786261131157015188681820611534214243064690245359932447138611304762791371729285599591621393321545890394075188411767278203430300677754084040269928741316343875980054316498485607403709736461398622514347104448323562894230368838652677235562240153428508763016974763184774235060580087641039894119252004016924988737951403292180816356359776419939563172600417545109163516587469428434150053957344529752547856202726027058322202883492099474801063626188554187522926878850003728605427252766177538136631488567196801645009605685304921959144883039185088611160021422622582611462332438989740065396563374474530369564398571167512862536234857008844588955049075232941148108831846797106002532221871302242038878625653540614135757019056216430665433511304170602838452599457027066895761150948689185942621116073420004301202581177508999141536934074347869305259055498518466700359152124824324893455622359520470970280710374106734698158236674476222376379599200298157871204150751857620790875787562067749718909135243860818833613795855088309444453518706018954497577326394469274724449661961574345633248924505272430485345710656014872322068484702023385165863641040429681661658275459588169281863114914052285343306922379593979301290805482108611941514740448532281922087437522096918195166065445304798104671791179561308337718841219670747001779908578172897645878010715570398782450388048425199153233814202743034835742606643191039135267514844393285579202726815376592184627795783445340288476927522231110265997939192297754120737156869759786161069526028546048866669720742571864977493130340000408188028222893113261451280746023655001562607930932594308025516486694279857414187128751497181790029647685714900092399238887440839975708319731899434730260619237592628791986593854225124040521138637674083012416462944763353516385703951075592313769732792597372176406534420417974117512991065648448864269544755042451671315321099020694872834173237305223381361524067163465794504706995991520322167913211882389320979757117169867850121447236684041645793827054785113640805536528154877233928687927885876902840960388350054755664061410803454893733660770284500194621053329294467926840197658236620654402906823944466634181163965617057317387899242004509548010788334543462616941417472382812770850997995322128548429147755013296116490898424871840932882651712637504136321346410756431804964135286168841543623204939442163215726313858073970023895793761863587108827676904602677049812245526126557452536733284138340123009855473204324448563461327588120790652272377142398785957891589284006100960644776064088702483795391823988259494835925584688410792836392260177241614695407882716493198444782847370330942532894344417614196852808788686200795127241233126682319125393439422935974935753135029563332287170365465611280466409823604082054503794401393546340607181827264463670152148378489366631336583847253343052908874530556021369832086897196794093365310034294228567872617864784407768549056481695640272210129828812157464318769001023266451424336806577058337829543735225853227459723297287806149518641955243897809076671779691517131227873941957482927776671127518566207074805807429415086796985772026345749998693007357256709511616375248588384833815238562443255113353197551688540717379567297924914200568064360740041811072742465679993863973266127004076054667657377097700773255462914471933406880106211776186214625508952271923029970790783579536453882625059813355426176702507624239241293326791826924720777681338221205926109896812848992934874117792512853591545945571974545939673377198418512125023303076486863025322994974731364466154357271229765642710733707868209265581348628045088780471858724332435356993859780671572519664940858420060951476631327855498909878375779843994971415466246098529907258933228490621324230199085499638827822896088328213263022678555529687724396423616445963263184096084045865229143046014518883540051198889253379261833977840822186812954511807033661662261019253625817392082446712422408959644184900224808982009365986150099751889650557840524603002790498862438331187974477216778272906274013511397651384515031809210115087735562800749756539686492773980209529084716128959290012172622469748708883575905459707387672102931316133280901592759688237476664976937539077311345081767275392719485396415410853007168978425582667384205850430580288063107959277274855824948720895409984510833239511467960386369123902429745846201013911309218069786856710948939764296339843513887385767724550763708382159185010035113074264949779944194403209170992251004373724339957719703549676595569218034085006254521387410519908296871339670867356288760750283647280780703560254511011971138088941662928036476381154993372614479018464239766901436055835035457695824952303457192697984130447885172710115695055657402106923442039351815296807425577611301537089294111407740208415978461720042823631046561588370271419351172601014825402747910650067799659090576894815504430239006930129241431279582687959154626449650693008999568072034230607687071796202038435802633755070848794598942189802112011996456289006965961609354740940458194132525768246394341861421088412931024903710630403038253827055677247666870386185465825690788670808367681582654853621603264419145531495517603678680305348750108456080970426486589846973287863100934717024774012771735658962411192624667563569673818668452854776601906642054965074586189755237158879267281959841787409916338787360665694870148170275315673607489545753748388196977680369990589921783243900157838805185597076966720472598791010861001138802660041966405697344751933627511376881184888586477275086909188447115638922173526404966049201713633130412802508417969790039304031642821268122095224149721263787251874365868991518301655593193566198642750856904973698066347015815503737359948464542343532718754586340753978947845830829900822073716130792700211550011939448929523110139263620488794303763222815341277236118967846066480111961927427675598257822402151514717562466310494456548246390237339239736365967868569206622575889045365618427875878582790843887063385634352845089084561579440049399498324949191857768121458819751021813245537986353247074261331496824730126142545389010320550242377035805358230667866249840239228626976403568176680071624429455922253089063649786682217475796559625158014048460313997778880455408173409366405872528436820466365227853328859764889613304375225215869538300109357837474947695124683300421355530700607069932444039826119292960805336605945236112683867053978181507645585608398796229449186893853235632298478991690375909028794534733209896654847498364159004528892337801751134073750319094274804646309062154001236465832683937231077462600543574682440791317736210489930863532608707452034602149863477990777152312250741184064502330729361899230480206809143725238245272544816377336714262428900119697411017994789442294195156876519246432942051020786795171126129518982379924995535384996032361471330083964669390797430816554551009245209908067144909544903723489232161069195573375393755009618236552112032914304501260772162407663343400071336588103352969439165461776881472620112424338891356688499567642909808932488698904428832383844043838485972331482232339751401597298724587860057891099705709731832867271585444841859709862918878266657440601755591353826854915613724303702802399540794385952658889118292074487972153700510618174919020652740792507351191210990949113845974919750828626964342440567974172185781891595385206950888986490574822879531779355867693088306805010743788347166450877958326552925552241230904218926713923450113358658891307117960874011148434834403074489106704930728574579975192173721107165171400071618734739991543870488711510290905129125308410816941053793632191684460934844903672533703035242858343484673051369264698143025185126782066311967356461375717331148122902311095702531143378587937967269574462157489901891293476200106589072169043222186890919932595609847989753380273189343371451339445966324741796958194456197357260698308812213862245906770749377313149069012093605411571476606999119158839878146794366016988973650348241677319590078628082760604508417210903402020937920498155447571853905794516436615088891736156473758664507325329361773295264331478287349535980272362387301275479633118810157712425167331893733996628639205920911223688927694857868443868717887551125210053253475344894220637086976366637781657313091389267802951245632041947828520731780877600660137687724223444663411265451804017365013505934658676267971578297358567490575289347080203990085644623563229575480917930735958819514883932109555908641941860126043573896516119787618512464737791180525253822615534164184321122200535228706258083128764031394422296270923177012689625918861069279650913312190322515876253849401400575579957631151249109631875757748967772168277482235672646311460022615967632703263438006144500262051689467739595750401918975232850900439860003785010598592129569562721413884027492441315087769090016053988099558462095132115716304776430541371543120227912733556332767323872516688040515835137259951355994223481928507962403367845822968377280092634812858149271727125385955647557418516177590384330223987012575115058754077552367114241151003599296611845330655526629365863356445494870231363275608603288908056944624674077791807170041067317782191742869308969762154208647083993323276071375159744684417931990497833393513546323428971905162895678592836459831274618259167549753080310586936041997824764143332417540753407227521529282978704412397644161137583860160684370140844456182924555685894621939905579396983507955100436059872124820510221035279949996714214217917927729422640851457222216815941447170476895632513048050397103215713736875660405067553494333058899871877699686531504791788826766135754893079936092373136733389354095264818384212867884464285904037642734523401598135220301394328994022715116930949166247887755754598755238186554521118128151965226662338047417058578507640403806369100839936403224467315055015540501944809538964455092202461215262407122619536692958512818725983807373866480248472176606691129823557063653367665668532359894258613735291964194037637612925494967823790073372764894476551224939573554956547483992681807794239772963925838443318916461456372002331867714000618850225749345620372784750325402507564076897322520506099240004518674699361638449948902433394440042984766665290094238574409853775892364039902932344029565718705369770893241459846850485559837284774315898906461721534638031882469537319633436851676556399509284336046768573302790501736622164732280721432921482040862195219717890584216638079486808329627247012570552752509550203771328316270345115215270941801234340681056156291139932289356505221618666784662651702165144438901831749407775168065088512827718895196212474881381111300073102121242432016681376041684147450422166865972028888855640089505997641771283438823972186040989493049606698701455925662422338364903303682429673237487589369305762298615843924682053359124070908342721081353455594404306200294336645084084863444636436882460507750355135458819905181278270607240163026372560286320031953164881705675029630414802556962623849682858865996697440269374296645394926889429838665271073338498049284724469179485087559415812462992088877712734812167437997853459959965118014631853034551427683170420501147330392395788719563205451937769486143306027342888894638560590742546849242332697820678679603742978133136838212431969094000627371808412882493640842002716145237494139952941401073762199169384137403992886765484717996142084485776960686256984290175705754539500237336068416202452421509489584161598662522947366559249958018668193512298443412028254762803768897139186474257261427600601877719773756368952424334314750920856415604189820699747697031188749436477022979769700756119821385417193914654220008036683187848681533257104791737764872383388772696264017103406900404195814719276149913936846767336874541964499065298306479853922878663940069889068269921123191217604019603297928265362478568444769873584138843679503388835828650282014268158720015981038878757379715156158795424083272757034939004011069801770628497047539210803457290846658912404593315806010618915991406536833356552804316810751167331538286214850883688314875633496957705769570615676077677478956735225150795085739186423168461892014271027817269696790621106583341457789780488273909471457767722155770169615620594592471853371308551443960401276949639505674352005875310148629340447976137302359233250033686019996200360384548738184840962177034630175094054993112060616210852490022103549111053810310324046093967541595466187685060321771840227196916973072154886654475153718744550339791967427203178705698639740403512307093156179714021589269009376075190557716275211245968418361320736744838028512381054373847303757984495714030198799173712006624685947463626804402964220688963297026670130825473759353180423670591239977970019419620859777672304968346453076453676848643919891169482517581111473782843313600632134839549646149518178372646356383931244027646260453706528500915595869751505972086186453199089459459975597880730978049335118149945841655318077293096848971291633395605710360459762567334718684788271548515858592238929977791217374942899651326075645191971499603649732178627280184426947756853457934244879761042789835281809186022562924389273214249944633461087654646991023426374010637599042228369892027683999092060529511977298797754841856924470952652926889648454440592167004779425908772240274446138114460540106775178128425622487321057933353751441348425968177110376964804433341392715346365812583041225544277151750180364039763082715548925845365232495680030617141100046504776716232743183425740391784271123763654705154761494678712481830219515749046258367481313808907555195250403825154175071100528920516529882549559572155938897804646745916389750311057159703221940634932934145542548972323288526238403431370964119935601314422457791905777913055383910978729996447331418121447057313680728461275134515738315340573393143884271851815488328564959721285443527746911072991313154466523097540046649443554945356073221402800063800660632411598203633742609700881348798200965245251314691855875451185876421704476758431206644183368603565824347884148713653572312726555377251198496601711849678737298359128648026542170333552096514178933115759203922893077667521647838268570260941415151610308635690889788767452620076101950235334570610303155973655602726193422264377140368050249159990796669419587547517244904339972423815287134611624020025874867724220213281587818431790492989898126749300091002910949910870349772284335745274685453493007407421919454208457096323536175167572421517091312924519428454028925567478882378938855116009341666942441966854251119321260010244629790920854584469187344977578603294960442101927384591607056489754785575781439545679740286196192387755691487477926515023350111576315816432875536343541620879472947124021720028941595375943561076444604651985792108768551642311408165575095682817919265005923426029260800778048047740412526773235798441210565666967746373328645774230911566148628411593743798476649300869371412168321491339282284298507268819115072836713152440520817901518102053636496880032102286196086112232333337414537814650019360033569480920208308851409077142510573976857142414892936615536610734214697585048322452372388685745277020848585841165384367396886324403438042146794430902206014039900945416533727030561511048763274022164171305261429475123691553461307579692798137983829997012303320301118163385179318347859626262033535851641396416961759917600694030919571485807842680436990391321281496839541747373311598169511123789060347913815512568225139397121672092598731610198436490381678183865496620821406704790050054270534510406586123483332076015786032166623067081304325249851715956795273768321990581728145022978206862869154116233895701317400764136877008442219495063297101938808737657422555818600372884709537406570535900365407093517626344799590019712118874205861159452552145302820536589091483690903085367193349834812367168363385491881056782136513828845623484181198621069478110266450697419903295633240710480265756874188783523684104502169872014446233623085012619416176735122245955497600013625129596262433715573020750280466401085415392909053179895628358681679929789803204737375155394853780883098300712263839613988213261322210416314891518392366946759493598834382053775412690260432483065602400017082328887606369252246181359038429846392466352418458201879294139985372268131524650132991676331007183695210393224617479274122006656806240557165653543549183362313057260234859758103609062323158645206154445590816950918088114689729605472661265586846700734586690896963137675156273069859283045134404194237284964420493915353546832769085210712928867948259083678391639771016502186204582553427374948445752788439094939497434542317920948531298926698415491796649565450456422146895269683442503667617890110686969988860044431639849255627818740374842481758693599816204976693006640001714036937793843004693056696844006993217092273527702054934723193679132270019684893337193490293483595938973087897366241747726714127971401938001901120851257074617856385948903696261697544897743732670843620130964959094452887736236286935241683885677787720218746760773821768807130337102491692555742754773581910749363933101499542794542462904460127858042982136405290906750138941018037121920644361359367278691573219059439379747290671895481225680921257685309551367714344851130665935474358399142665126356978788257644134363772877186787213343115650134045073478442020428250441112157581295532382177739994331292068977243478521344386164407184509091278510480450041108394008189047758335275074199171688367850972110038426525326899017513758032584630197380621107653078251424923306400527866719589719019697265719146586795539516664884558481663701662189858515101766506951481506690899087330739442422755940263971886904987354581458384198853734189821165050882622199808890584866025602208430475430915710698607132997510996103089146249819645495564806994468450973973097172350966130424435296352512315858590584514273880795823036401321986660259140103703963982305164046307665917392159713160899370747439922595922873177025161049174427682602125423242201075366325972745023914694085025330869413188392955482166611318347404154431799974363102313777173355700749556384749521476111332581765734626261877570553118851582001848079741448598513440454018925117699964720270821996303447864183399577644268475263026112985366907794548882046277625540330809942540947720446364733535812580035878010358349308989896788503340510269350195301437346784146810581928308365434437262124232203263081055965419444049160748716227264193641890446299506667593109719588023870556741665851943872043258924155449760463273207854785169454822603553185980083182630421088285014073002964789213677749083421903878501875756394676957463337882911688179104523839448321441709142405674700062015399782442585511968522653605291913521479997801697150800757258695698149278490405811035181306790724086866963176158858843694723756697805369328007326956173477674347691705366343959717362951455545483083176772020497854722905296846448277886978242078662632516726309016302201785791024823066857878961810144079348996151655829176303425393384942845447688354397250549330645905612863845082971779387385560499758922126814612943489112517223087825637223424268199647380834001608102031380778234603140886397571539017781202716625391457374504714965920369035748373582137282106354006849826567615422359770756825095464185531804794654174963848010841094172544838805139766430079083918839008794608135308099678255886600723253791008223726181666105852948618550350104573114295008490161886338347002799234907222339805503079047338936974655810941409632230449648026867096299961904534292068303563621456991307957391328709150727817847773118931764564928990431534197855312733522283318250017617106597399980083313328709132107374627685320391762436151840125602811212572287315068472744221092168818926930027857337275558746584991287325195891100593748099948662564047347711904221607133287927912936858941525746943063686468827005991536854541951567898723915136412596526769657012240599303468394899319080083552883184244587531209269804038897955868487951782018526286500552121680080131859023706452139388736790366122684894290316830154076744860619381775333661755015928600251121734541978510410841132211426133681594227675904651430483898105901880645487502511203681346984906087322317271060212381982121480632330853759895544310229225691378465387917223404096539999066216215714637362862250165601143663743211847905902454960918780452539070565835315636157777884966105551954946564001967116021773686817953686462048369582598004531849620908186435639101106092184472079890659954913973501650783272881647565904378322459816944217612179268712161613726860411988446613505163804389124558637746202441720678907105593260146918240672873463208405896619751103796823213174946768291194457853920317599016959232058181402430747818868755248088778779564171085551664315988345431656859178728716205715143259122511366298187207737655865219967485046454562504992412416358933266132498979439164596551421729311668934622964502734992959459637319450010422287369467346288430619908294129788225098269495471148121500917339556086383616240490106495089156364509359596978721190404324583297803482218743939285336387266234558801265882805045751609772461358746687846988807376322011641458836626388537896643747472182716062498538982959695512345265148811970911605760801715174295167693003085620250465682617386082531867304931138949863329999877403304570159105234187174124341282622435883354198875717027341301434041671645170763540657003279661386530512859807121495583552754826944505716292675758134197372426428980059092945529287265573212092140411967717250291757498638371189871115101593590273370037780310120387339778776188840228382237893309444860843717143595097014987910253301465533921861678140091311376958864291737763216147302346611156944515628412265433829596028258012068062465251846135254898377503744813487169813226787310193745979720700365975301416439148828135219935711593020060277100121136202773302292430005279201070701338337786737625970503960050938945721670449129937543986708248802857425599263833907650231917350203469227741750722681680280155608033417852309808713826218943563897946238010401775255880918609368059100599842527332983678132290277691295697921089524699074070420053333415821232111540397225933541590085203800377885304664953591540658010711562782886684999131818336972500282676336996296383092945311582124476871905402467201735174339549299320213634712304210620464745573956644828557529689573610064215097160959727382248808920787953183247304838821537355375131479053378527838075634784208981023673228961454738746209661386334083871851405084190450059803460214305866543428880460125985011415442763649759512669576135648197769870553738061002731751118103312445197450132659094411105157319676920390275593270580364115139735224228173796718462252124905859959812526883142485571843793185773790811974072062874925416194333481337704326960019370716643182399354628179932353296611313819232310696993768357333395330081203095996634439058967837399362557771395267200164591914697679850405123261137003436076807658083734959945687981995875734126334199053428335734246381523310008480070782018745732248583000969387429279300785694637526220132353926606845596115539728813493831472771863989576825050307420026205645971981252777240868445146760069973146321608080817287297403674355304981479541995863333892951799780138287808639178326768128961006379582159537540794174989904106957608422671833767549216310090693507959399550933310481518042217264485044290962493913342277088694445801975926723728554823522146175984504309413513289056507890464970231072343101405816295914889122340527743478792313937734463087352606970297310168577681924107202863256408707844072220583120824121890321487843193718083189656765562236296266750309450857258037047838338691659972757396096443208020461939993792873852886056379262348744413575893871530311946900217553826257422092945728288621689983713307283189376501720941453731187092154022599432375584767994223046131349580010244312402672038639174487693761798048452172988935872564081415797888829879306884089896365752311356187022028801705826065512648899461276327706954946482422024243097788761831640442391662278558847003945192995340730348730480117808660752021226143650616037167455334598867870793525619942993552890181915989743251393089098347316681020796352974132809818352644297005532697150152394811180708799561238160151001122545432191107811612233819871284673548361407521312462389735215901622015532515860429421891436975612230822030689180135872993666068087729862780933644017686469654592329134600382016778149721562899363162918265992117476690557953289068414549534530258516979572874914996021613397864228396581064055024088537802228676996816999942266168712915228075967493447179612237541396060605884104007212938265795990759394609163251738639567677724292564533196528480645144868665391892708547306075835549338908022239017801003381716156646605101884175540776197000969464198647579132311027352108641390595533622050178927131854909206838565116298647295145481464042033031218767257313738586287406215008309507633208307562370963033327920255815688742036147074749513007090195816708289883950501959804325678980240475587954020341194650946890812333321873544828579186346448207411883584837348628947011256426647763817263847834501893640192860322324832890926982693622798822519786271079527017699003890349720547200406148716709896460418344870137773080600386918481182144258539141322042199023812645552813960563385676203776492875347218983946833066884954588796147398599473848809296909544554957353569600249902725438015715264365494150607827081654768095828803521021689067994616071607242219286193274592163289540869355629295738168401579982973546943224654599555479109330993833436405731304700265630086210783393008186465311866698325836540535855010293180202774829321975305073164089139190737448430389991437467649053594689525963672597072267069397178601499878283854006910358412833897025146452621053012980716210410265714463836767368717002543445034046824709959054631606933220623571545358252771295388661166615006419313318776477915006871278840155561185820691427456671306695804844997228859237054471044347782845925363349073748170770655935046344746040603780167420540260502682950489810885536121009188080450472282845670934312596266286825229317047217816821524008170637731904227921291351221696588427198494935265226879637216206220551360172993500536199505681028149910837123654516785855039790179765605826250821771719852121737820245620902237168620218199620209525933520573068773910202200096536105291991907120552203363157782172362392280925943655905347591137448335966430544312456845532243792280619922924231693388731726519812452198342951017610701546863718365840544393823414026680904604264659187415994614230391909526197555311058982338553705429159854110003152828203872339276850799411092650749532319423141104059651326783488932116077524806090299551017168731365792571254216832695373573605949847152247869979933526592337577719005763312181269364175219738062711659251655014887253083383649375052253536462138530387766822615241702708888576831062018103768948114410959928328277886027655781417251974425185072008505604433472924505511006611982746517796423475501671101371577999714920075055110084185150750883580726605149959795956876401534700999525930915208725286976088382008309672576831663334459258371225043203660438495043272782230151863325769762625259193292505877632605997543107372009224429397614280364877542371005640394098354216014491122667568454110634061079973385660361730492719316061046724054601513659990074112154212354230195274021451472464747042515410913899223123523462114377391582447125133025238581032118914693989020947807416327178415196857652006019547964995437027697239079119148432015216367336804447993359978542700879753836692805640972170058411050455848520173460989969347364476031358824739472605692761443263998924102329029582354075950097979873181511213120152416068647015130172818287186478121481986824393759847095457242382522278386613213322086761795894837924278483450165521517041680382604113618042655636127281006800873337050655205481559319980642219615223537934598998441796199684568604794528413816677457082520008898975941325123422765455199138208718127893429914140369263346381314707262687417100214021395852169067649358180509867339159733377245338747051487895078009886989967476719042469295920603495847610643516188358471217768559705389966377936209660750637764350276272269890629140962069892025910638804958419135347506515269988084685722033460677859866632904916222516590351224480679568561664317646261725138245790472195249456207276358331049340324435635333292566421389154036342917835137355474572679386666191336257876451943307294809474328386899445856047558767438137631150301562434294495705923223455599562802570861336290456513673762323049564763055212621941983533428307721314243039048067991309764826887464114960305738829564022434883269521762287406289726158756814111533722839804292541948690543262667217333784121102020047524091366897014399966957740055513826397596065351769466880481536977860731505055511278173320693365177015905210838631142878381803436545804530196119736914960612552374786738432838574475550115738228579093132975709869594393090090475586337936455664296023550310265350887682533939370142447341859123930263353100886902905202959223518584943816804465232995518031665349476938682708667131210043536802140182174313603876056852418376520303191442769131274428452039275132456202457476173493522207401977163510527322191314698159306832176395859246148394109669775845816556468886805380261545622721188106344110073801694420149092697977055321098152380337605328903154511427985492673513722465688078678159080391959159142169371121812182418753362196058343749278985017832033274709545512635991348717367722577366144503106728241495028317185430370935526894896071367289399938996211209981646654869168452918360613096058594185341207226915530835861649686677283210935868420981545708725050459345619486067184665684649609062409626968731858033166941909185759421700336603920632436432151820492503234182595543311194432914269761862087572835959128987797883462217748107844025875138617466486526200118143155692694818438246347317415957950943899610378364714912220970639194687324472944280316765973371071710419803608725995349218164459609355094935706748793936368427352384261558208024526774271412951351061490761782837581200657712596952572044526295507826675137564824978417766370119243153207660057699543709059214131209258480126789318731449629328056231539660885614094839092175868403479219840833549815141822607793450918882392811046406723498359843554339555736285971262835863139798989161459837281322941736399317998969373396241491128976324486610233818364166925938895583896514951326919694317797198424364915633652041154977136344300206387193745800259365692558824929436348595417763725733566727231883959026009652762123298376832799163818380513766040049124730299438063346380099442230582721879474343148106038079937293798007282548727775014537985048661712295500742466510323118564744364222717963142258536134816972001560267732537154552754496366985221414699274209566280294996482074756214661504401652994394536474803497155285127487172868245804215916089998993596117761913719621360031790286623467008085546594173078910567778616117141316673474857186794269030166679947286360035262610331763478689114789144706732554469592349235317285209110723443382487750153325538812547942015420584333475245290373220571763859424313112237539050862354008674353853896489204982909821766186428881622019424217313038133601806221299958452562374711564385321328342116717326922569702253154640778653321810421716537940022130602698269868635709150759855268790096009829493484979524016804335669402225908855026689953696671600637189044021497129936377373562309884050091179411012926442894307900842497207155075890635249893290883366063061882279386708157731638129817426996714420364420100228033826794512994340334588247637452114067494902739255691836733732813957648047305527459174645260593506520407782535015908156289091037773665053039133730106019861302699093749026774551165821496637243837199612149766554487749990909473537065562920716581510196707791870773060179614450091693421929625297961102145709769695184827253965037112014097117847639210365986567497704433326172979007052513659494130822199421375788291839053021097501940805465008713765325975138539616510849893793997768006105834504513514951490545772200384161066486631742135462381366961097998921194043920276731849931061885368167307188243809418525521084761234004036794157385567047016965245889995959572560633171826373348880939372454338916083593529307813581402738427650872709546590688684951075342480892420366012093567982684675025040521010164568049736583054989645655861275424333254834230642263172593643531524482615539827443554430431802066717010117977638155058796148476752313034597849626900364492720899813362471331568960242257907311568194519041245993308609949244008858212985409027775948418540836585462513454889259370365184679454192959907926020561740527231195492351491095922172596380574944381813572245289396707967177622459697039252390148962390508078348711603528100339530356053361036448234231801855361895705933601627803018574099070549536127644806697000015011423041094972274440510648428230180108646151448240262061403997161798085364493305357656085179536193371003272654364124036796996806883006069622810872547126134064553276985171348076618116496898982133147635211052463216439375768692727650488901423558789187031064248423464079542254330830715673220228590948158872763215949316639225574276580920402184469323814942753841629006577918208454420025464555994389099193310647266029016813652152990865658317114136022026395847305035383258253729521906540232519430273907704060498794080743288920787719942882356097940674284482587854768979230613045170281062652561329224561458880154704242738276345670933866324270439665935542803070500871622919551456766238771006140308030015966219651897995677176098174507919913826000113486291796245400096436182682233694698261262275398656488543472207239599283526882111583746889028195199490555854221754910656712154968711050113423860730606788639773435159820341289868289627504233501170172849455571758070607408447822034276665468830733483547472486943118315172854263499526813543050694236277271654216133763488914354481673404806187429607612707048142203293402479469847902175708768195800242085385119299250967689395868513067991685967265209395844424282759046151815408154533988472506328958850078975055413659658680307004649091756794580642673911827859248809817782927790163290515644501746930011143011588499116027382477940649173847710861958071886214012793951979791332147284640020137149390708261117347929953674326947465571535880991815786394594501561849387651644491964867916052381723045502532658179017559556658094301459839391480113373940049347128343372688220404346457425048040638252759566541352541948948825121892894666961245139673279677332457361913173113121834258815532637019313531761739717763073680085818817262660016541296513673101175489556931193713690804233184402469910867871330771008355255592873681250709654441002637837513525488927289982320237838557272010387246948581069632034380373342890939137956055901592834184672187943431740011261037134553635039809888322539838083960681111623540244505189536867141549101856783681138516919473256283196941699674155967132078695565742858557636256379211729206564053722941040930504898726355811215605099530797925524824210901531046110182851806104090734199392607842606881086421967713939402476836985035190302203395668322096359502604632507378041140031028221933081444397983231609762004848444325384288119510859972354354581291561215626969710883211459518950426107215417939322361631510482566101172524340764943650548387260613196223627812654867478858335378438242357104201765091358675606252111971285354581073899938680153413526800506118299284473321970049191100324556367962142309223113020980756323478451140678380271486657908366965826726817768753652282076587298083526030585220105595373378787842655106129252861781418505597343568665758982458066425371961724565481346783342526562691786849077645066198890854900605092183283216154649176733688958923834776183016872347703073983584271637032617623982532703996485076135655492173157242866228217913561079890711582111743727924230647331432797020922168555593976964483806080842364267705730530189773570244579169214805822192163233960046840426912472482529511148484891855989675734081131656904399919832895409975482413589235996629112064850386370470689994192362074529878285171873345932607232770386079204369010875053409161944198005790448302401513525742687219778072312696986457383007831760625343431247190252486607817853745866640537147116026103494675818533492981015895577788572835411249592787516204777108667091278704044653019909336773059679876917173462791609548500200027397288807342648871539706864878208543514592666030139090658140769147627818157217218760420873751104715140974233477563111234487286691396572442064037520555592979104168388613936675126012428734833992991161049520540877958717144759565473249374153295793179675365540368102130407710898360019374017330239355162282072340848559319937222647293538876724471854851802666410391853135403782699654999369787530298149369423670491705299359714825024779749211810222862237925139694544834377740836400277814393167440128509410755408373178622845475220857299195011620096504409503163779247881249444526496108323048175277093871874444151944939853644077446710120214783021205364601799580791282833937082265877635325633122982825584091619469862150651395315814010653731405934179249590884095512954316056968288675347522581141470309041361404293531863944301087404062245477512435368945585588463947920661587968051028972368601817063696321947847208551558949811042164485438536030743147094177426485259800597452680840859492977937977608844338786715276691124034533619780613431185343308838209993368363870682595610629174956049825086328538917801775205916352104969001739981708943030039057903617841174633745718176414104019582894361938882768160381398314522532627993802637753689592619697304103875644708698636441281530039125585539281058774825656475437171480603320317202062935578187956625875017241413484572060079786857573519759840397269606850281558615018705594446781393577463593641631068259379520974851055276106971921423573957937157865406151579302939562260888986046882028451784788937003052878084985159225776774719946145734098999585405009378436955275553179572637223554908493681724857683418260437754645502804041527798476361497191134521072210637742930484196842730168884326282230943239226128509433212482703668887840319442044287752394940266462635420020242232932117483899899237355255359407982729330936160321189956292729218220732731832728923242380356351963822209150813442867611255453296222113724263312946767026452798938192520452488305468944251774088778154085804488240141960430563275306404075548037223702350522102382147737994834033502719732753759156536345067758522491122622237681789621860898576681319841798009134818108274156052207268183594715953729767490579137494066536615107858178833541237595826789368019594419457196415801807654590091601142654461524019791059978754321939616917432804516557345567965784815823428371052797547708047976935845261834158492686392956410311777560518205980014157911713418714116119933000952192273531999974260497089901173214578693526723717238463779575539968899384966937414172555967538769789535262792605330933888686701123390051141806964924287738399693137003602328778106597508121913802820727315339397388974686527642361523361703521121506946659304033825911292084646356691112838171233850384742554913064987649746218026981320224357953757661143069914740270509355113011992600525718724810348820194804577328968961632169701248644008614081249495820586506601595643554332939294922297780877258131147590929795205542164349373674200312353369869056047714240644230613308476024900197860393801511081309109898595558923435000187711368007771518648003154353388326790354699752629185250380228343183726600889640806088212072401362807468836352826573612876641921713683693484875469045267340222356581275137439297869456671926232923645366231790071674853836694607998536135591169811224254361548109416628981521316250261151886432794958068646904216258500710831014243858385269221842983003115303871490482140184421461613751759809888127352861940530456218443834582350458916076844836268698408736849068029979624870608539001926151207556260761611129270366103697818160103957975346670635601518183671266115885825118360183894197902475845183076483311927723111472358237098622564650509481545674518616815708435059958805584872565722194508266311587053388429405286039786324224187564973252822764427674978120195267499572746052251033733317172056686372240915908460519108279434024721087928235539940198197660697698518384993694993690506041908610097635197304712688192587847315648489700795512732706659676710677427772631298031846545206194823857705519855410846829043110326877122524198531008850506342989194398447504985305793326942996563373502193094788398607254561897798276471933303031693861067535297527300122696789176233856767750373455594355600465355200323537031008768763184501234713763790323056281702018791715409847847621384671558533918351583111495308704020009452944602351843730249976435359070802207612780600753717587345450652682676783422211362952523694844626103574735160262622638938182887076877645246533856598460625984891843446296589688812178787379299909751414168863618169464854548701508778148258136433721742417365662642661429279070085215218249482888757481601887793010021039543618595546400711618686041174960556136625527867102627373715023174097473932478421812574566304710398278842214286010868437970866173661396129861795949653142799510830614422091040976850038561369167983352241520724018208254932540138456443949132264610192711045094966602396641398715143227974081963052161789625807919126612445497241945961258916863514049784851397750327634491209517655087946390538768298702690667098930227670505104538043666279206142204834511778799647274751281510226125412590548936134800265221544035322291435444425260952155425890775996032350372453812258815046746111511778498949831909554014416149884444512584504197612701830323610575969853565508311879887114635228413167309223767018017407026472924484838324344775246440229769162420217416020855433926549171551593066737750528656137963338908711461091042825716274470396681571914736167198567925509857517549131798576934144702445910403747184420649112391686484682919736782745004963985682550439503180187485314372212007103064504586076848989222837596296770579868577329909894383918096867592425490629954690189735191481035943213863963680411864093616623194764186759382362375434307189836574326185690055915187514069423184383601367680521824091231285084977985297454737424276542781514573761487315637523141381937318961242528038295684969361109368076352348408504326911128679783814109464060003716933930227732264826793704668615024635368793527551786007343297027564408329076698593095610004882482065410152914415592551035531274375219950178667535089442946875911081346231197205029659808366804860571405354242503183547594474924666802778957514206189378559794637286896174663275845744471311187671722013157598901981446832774677129928095161533060999975534386380055312259557665526961445938040608899609507262320532821191229049288796018597758890620411646468123002874878877455832836391314838737480292728458561327462450170362622510782466189609328352570583661252965476568382317764463421088001211957346956806395146866357601009914588324997758355421170924007212762774484362825487376988748568346543812092876366330800009291008661870070672310526561180310057181431232159732906747524215629348215815645282901699295612579355074929400326710237401057759319109730996157554309421317274371322412649025881939265740460140764151127208196812191422643260135248643301462527871235061148029905200974793414149257226945316519834545256179993974868557454614358324659527720651752447612260882044234503560103158041431480323856598232112677077817888354525033787331949883301104723810475346276376839900200888606402117939121327827232325182462160468161111546559828349243966433457916216853193257978886395251775098089366439521543841553227676332999915197766503449537099113012563180038026058391800174998180044544237866108710132746517152860023787127408791834058455597382140408251693454957457772862416833376922926475702535454997880112492970449208588106492367101205378235487585776401957695456793496498368317635888241082009603921027167472544812346068503199833582728240166235263862153662121915131611368610110322213079107282600981838042240181205893825865339166168982943362098448217292054689531254929793196645617381232173744846280143254142239860304928148977794073607203332772281235004956899579211155503183380800861805990603060274402910340235979247157817325916580842968902575033510703558118084428024882857824501223783504602468847258682264061389971610752856345274155975063659128897364961802563602277371766472292720962579039896681719917913152493885763948599451116919213144100023224347102797283536715810158699714291007361035517609271790105703826130808867029971391163202612163000019790590074114169776599348287375849839169322651142170794718100634381137865121185799105391595542303151115393045243781193930031253139182094309018060451892365696964148104259898063352561248265625932840370225951632098033354148504567584952474998061752126844577733345680793317782313503796118066075376002552420963939963268719279483431175305829097255633779747762783798490161684086520247637677324136777397895173673571597872232677362713477106105427284936124762095492687160375355326483837177525847384395376267217910948601500836718098367918819182169080843732190245168429379555826623541548162288622780325064274935750841248455116767797544133171664412654962748196662160878528852181239083736466262910794282239971456477218607514389270021660684118410586435660369414248883175645212931128688391260598692255087800068831612149412963071318300109799577960735186895905253564585126887396591458436385898433337714949508313498287244836111712981616571566447134440172960330115272689734778788219608770970248427563616704951578368008516199843484527343509185362403590459235399434687504410602808460018273980518043491774522413813370537574532553881807965718853522583476821572408134735039792928309743984497319978170032158559205530905066538083590967365947845374106246390329974241168138997230656456441293393683260492563459087274762815546934739057331657357335374739133225302964460569445497095112974725405256751092059034996240867159804691324516037716347054385974275300593514128006968993410246686938176534848640988076257022557931312290776403290181596350086643052465704183164173746582591972395611032097148097219999516235105444143486508816398516312215065778346323362498742885574926046253203085341991428220723843261974020707706107742273466228290864926699619275990685168687783512188697253480216521341633119437136594398511627515181435040637970658853165597343074569728618630342370145744285396757754280178291690370794609893906422830982845966734273733233792450124726468164225058387061831311164090443195068082201636033008779337238071273885314984761635674213165928295428914470762395489917580954946828949724882487067705307282114906463239638946443630279884948985017721473392275041576256077796917723436286375146306607106081605159822369416683155818108248654831868704652138465036720292443383786593283850823325581191926009640774588691251048801169044183474390096570657846638759848952485150895037628115110645026398100599852733316607716186729307562600159862431430282120589910547436992715066253160474418397285742479168840475910337312420198393277327596761666118206810661166952092510184021103309712174461068857661346288731625285041818256591074522609376812059091923315139780659172930912414017454362180949794715724081120890069934342381688688831565087432889870411348671167066375376768965434010586344626728306967969063767499495348075277528006591126529115296388791905720232820645930522064203406552081028138024811927616606292153604039838010228690361299589555224091528218815849502397799169732120126319337766803205443434625108227770824184287257991896622567011620041650105775395197364033116769503902681931766381977536738904615941825957771329858983529026832385977527744271455599282451980561244694451291666765815219122573691202305902433307673715173553146380415159548763769840946540272048836001210072498370935065476621166138028288901631205032575389830857660977321078189219982787118326601649759558802342015083102026385214442486925764848457764295455400927125608404296177613184080451135818063940323110942890986487869878502580739937196312283046851766112190591957830883693020339570542976592954707232692102027158788076130130716749399474595252674744408571035085164666993855022458101148937535655960524962883912819237977201615501231949291559429028721145393142449237892751008339396344913091649042963220383263364419678859888739154516722771566591660761432306207320890727294418115334554480738809358291575937297449208679505015990508798032672012699376643929261747621531666557050602942324633048420297250179881392963336327279863544741026441368039773803245399433587995789024307854314971535482586801718400807489022434352680897917457732925938034338590703728508054774393217481128970921381898107389493964770336966206018244432202128078426519734994703356939969930071610413633481028871830058289945128690834234695050835607666323110092436603357029313529811549539207612686593792411062281333454164306450809245796051348651924846784615757932934178055665032616472024475001193498273545380510292790004759367926635205913298792498187812722006842176155345783527955434952836422516932413782824120462584806842374650428013321575595169895487907140670615879666196684096623742744197367739748545475414466428846580115171351764077009413299150741591607473175843681388521214215627927322519943356214715506634588843475731000078568769305258073712962326328211917375920093625797590658182156229064223744444270279271426833092935782007863393937493876829376072460113966862798528206576261791542755741801607201351324475446730605196018486137236026899275929962044102085540628773445581130479286213584249622630441608385308678216218300580647858898582343339078461525017252858662552523773221630920759371870390103274143885880403871840660240114994307610913073765457834660058040691460885936728576367650010195089269007482769107163863329633004119662308211516984340431196258375524851393170291070938144207189961748185845659534341607808904059916510548542121579483479992924738454103957716327564693594251328759518498007305762360322374642631152166400587129285954377442605638407533821088930163336705542928831301309087957233317321996932535773158631176530152962517889421889102788219555080915433723640827536880625832266957759862644894962685349264840725677684743083797649591273012907408461824657934463198692358309500040043340964610243718653556021354999987204058242157560461091748983255535627597908455742274441494132169386437057661104493055378660612047221582076602516240350410195681519129314040404952024492278871032636810665149463064165593438880296664067293882674896312344499587800144858880317277951212784529036912989878703653287733033359954778525429712364232483429290007995976595143301465731275247207030765729137794797527659724502189760979610720556754734464761787804453390546937810085220383192147391442770777254060977217536887395850091261814665552244092680303262692137880295451118264727513066316056285935088289875669153714737336461184392924381081377150660301254314278818243395000352450928316741471591529043981353301184333480573345785884424299406603814549093559835324880679099459681711787943497947645323205910129356877788375904063593617691272273878270030034517543338617684202094179078153027965267345764908368984892441560424157628124575628812239211084869421406489844864299099916818501814738027831483895492492497622614936082464449271134156041170250213474725016548054973841924476213161807341738709981241209158714193091601129934678272513587838851779024132115852836448018177871381014754929042876187628560629520411635553713501679431118511194906615683424209029286434176754931546125839035796333479649530027057414052698918619239126765010932196995250451815955133489740363402824115893882372075834064407890584532755199974494320227578765535964639865826464960029369397366103175085314270589975791017404219194694480760599557506288625986724321540911240182311707342963531570467600066031836263316050349680234769019136162822267685097448610592971203277647259148148734928498808712922931272252946993559192661793442453661341632779789428959589520244507465817851825255462393277452223976066849716629488385932207854271195210914385620593113747951904308748275120169953257471177834108839439299722573052355556143354068997718536361697526746538434422167494003812176505212672960431608001389076162270347568132691324259284883323663088856699775611738210875843991109964945889776131298964474558119350881224169084742870107942131034957443194383183195123845091032330317928227723008355874712904264993563713348675946836524871075131032315418809906623583861611216198605949121438323120253411008723695664745151833459732056967788190301764277281704010147604544849564048100943086174445618632953605708584071139696383727482124691871818525183744380417496122122476317640058934065519567064619941403607315305190237854850323304293436983853958770529740073901053495316214713109495716657912511802398153529296863843130148584940212616868773528155221447610493529265539529790416488561180663411764701420514774912612880408549078088884168466278820256981621127294005267440632807644707797352599443983843009964793861991401210051267964467411136828786756992344548029619621935287206819212142759194743224286597482515574079890596778695116888432643776810401232690170952369292636059249074009008545911233500990909693626564252330824135222711064207344352400063946710506680495058770467478883457318300610694670806186119281732365785470439295355478753098712941802780987866195516827522200587182758201579577125794830847848814582827185685070630951805912029822529260497459669876719617923234140551856026052881527003084996109476857060693777657400324594465305767365609650144478855989478157831749671721438816920870061313006128842573738485757309900488390959171356712580632817252590097816577421809274698284802049362402730253885423955825250783255504970195106084705745109844914001888245041323919111903386015863299122081592905235641801035539959365149032573704087715993435043053671436675353405406122325596514692499417905451894649764615950136367527096704712734337657576794852400130783329647485115311735062758408863000926900711862976540062100249603198445747994647255385335391731675741439934644520654931842944774293610278458371884719773512084153198365559596545359853459168665383709572573755560001703457639647410575694998733098929277874543587879827553518742773403862078520174702808495019809193472702721342420395943401378159598713315642083956655231510285686937901944845008138293805761489268001190260117987893964806812771564005250762682872543625763882097481502834358461562208935410106179100964129749290946514639469510452561601913835962087577067562332506921889729583406880552904434665630779798370074268944294057904161303311906556977773213365711456638525466856275340999507799771164041785831534875242040041287579087423600798505578997045400130515050253060777298162911926543350332163905386953293103063338732831965227026433837268315395939398471895648311586588417799868872379846556680126580555817138878996209788132994074499243533544201259095348434748699502821350936525877292091326019720360610441836707359495692876144105753260045658046368973147563955599942262502647319768983424123907671427481757102633714265400389809172319816222442943804539167085392773847519778672616965417885234429004140656830706426777340576062075874313602691599823471176824075973479523825464637250013775472476150668480073899923244583150894249894678125881436634472132360067501209829508083316404420388042257577783761799286923381779835900236979370693953962627586977135795871358686557204941251878052615343333024933042986527280552896881017208358243492747567801212881758354744607124745146264021487769886094884825418345839053636275258389697837572923927744240258390551238563937484233978405752101982518593674567309960936471295233158574186279568844585217534813710817730817549475457837946791036864860748792137745116407541702956607250420620533195556983735043669416083124924284808447406300159777007965687227023000550119631772975617256477558661493928125740743102879679748607022821459242369334467751501629177085312630188004646291657279770209012442830832561322433804894734194294462184220191687534715771467727293188345025227396226702608041706934351144280101157515855486635237703484640230465058389355894327718681702529567504518938181232546092269218657748832425580780839749914950674816581192066795065971171881267023488361444633917223058724305464209193024104387547506578059024086384270366258645820858786289258703421971721893818371137952131239479615659049138753986284791963886777644138842796381684496692786361532425755727914440967776007337492635622886697134817882007291286337045685555819800267989337751450678907151495635492223100685707789791679697231364714861894534687200898716637653443878669206615028486298427932761079573945721929098285374236971438610928428172703157900867322633776278119918739926462926306544375573378213375680368406593148408350787078507450625148015693491762415765230247029587857432676605365727411584558638008063609646507469725090145860685226594826037128377813225459853984127694835565560632314158367733538080504625562914213421267020783073588015887792472966184476440969711526986994504750667875002815269920072703595630422656042167746633767951767376604392025616233660609877559382539822362935329424861369345911421174099149660781860747206021272769632664704894327420759202167394988259916250042542633887540275021135428498310713525225030109737668811519316129435748488941855731322614450627554276997815515193012272031689759918906410185339727135933422048200437823443467262104730383544129136641150852642789676765484694190616946758908634330144971312632508533820843412291232222296291501141565226243561167901876369741366567822676066218265934128178051769869646376859862774983131429315635033099990232660569080329167320095788724203266266920784469397408191582939159938716366906842992192566077624711777896651085015738206166543225767838067278277234367826087415871029081490027439413196737175510937399113921324677288024069599390080629175008130222606780679499019558266125027808181679463013067356582633394214364160325621528314974847893655526259090310196492128258259108492490146978452974015430344894987771840745555918425831914886287207247217116817481100307746511081926492973941152730163020640544360040357333582466152863076208939370166720687686795284792274877733039098491441840802998229263965041358010397991107943293415511434908685182952411770130166580303179701334324558788041295152417757929783258422927985095941406126915433984060328751149935470873147122002645415235923480777202477268274288381664074066299940514252863428483462758211856606044772777407278575373235051553682108408686091134654593078781619929560876152816947715655402400246279040709634993123704524876209182373567080239850456710402155300938169457735709627449232564851124107573466681826500902008074138006288051378554364483785430628908872946356741412039951278675133541492612560837088166177925515652133046916973451938524850148261321658535584432754112426407017589746748750235534410613192838963717931943177052199468764402359740612584898617252404135821219385250068974951951660441853928298655976411638552494210831759169297989707005009103340387846164911525110745749175760826129603108118198686570612982187399546047188432839551334100710956827045355414681624828242480687931313631670590604288846501243371624986637164475527224139587799365247408686034887102420211990909085184222600024836674051840323003887779106900481475783530624620535206154709171911578841491129674985212100104020123053547422295663593077604444466815944253279003437659624396291333724689208040596799346361354105402753979396501570358540228955953651651983691735558480724050238712313693046994831723169435548931570848174660544148117661137484725191530401776184005611494510717717992203850830699618434889229250636767944997928577521402507549115689919509330436555541877475988726565611717288386475135062886509096148259790582100508790568066551257274519126583987985635305530319392665573861942596278612810877069468381698687634101128865249913296672801706389058463398907327974748094877686849521680337542561658591361265517942435459398970360749202522107889662395595181995659740757887621610466680269603115058762329986640073945197712229687311964582509224300888698318098987777080868284307877956343823573383489370722021856645447163824755492235403982606359630484667257703253619182288362382982790277300448648919396265121569690173123415716748424907954633363117635789322089716268117956098853740999237370271873887279644140666072142561031009570546426890506336807812333177920927462384811652788870445747257154743009432146359759834828639847576746097334698879135580301347955865972325452082913261338986377892612800707093819200379577736473469432829694633483596962087025043184271321413825214526806806581434274882667158071335005323743023807001889317819927757561545648500621603817959046246557535535451475280790173618357973041251163745435689890788751928052600168144582006050084274909592422697675238754765572904675975998750580200266041086980353922673842325142712194804541324059539158482407518964216536327266490017028744373550784746486017870920753768207076079119846761742987962565393804810686594215416913814010609872335800897155037042916270982635817887094888133048875508020523401562256804182964343167405728625962472967946138594087213702896954733614143568939683143626107082988906141241331003993544157063928913686448331488986219216087463925207554672448427716588326831923754303661229618115137939859552401142562818023934520654956461075285046291443300345989552293693867543372029573580485384541184977660132072570149813355804733037125917739282571284214614548338740877208132661402105398462068065062811204730008471072616249129564137400261954789855153979181917073357403381589373134375917301537376896810243863378844455915099624393550489764709274021152204014953625964990724549754309448016793279289940028113993548731065817929788327732201827170427247852233390594531328310656600354536612367623483962212151973236172180174130770498264336382539221164148064609563094523845046564643972440882025296270832730236268752340890990481619045822399665261405582217467148990000180473482570340783972262281575230903487850744419087542650713101594222641050544671207135994234714632675215634494517599965133639215009598213359650857027145198938194258309570568214081769797737994385380182336418348452309848021634565625071185836678119316948676348777637852131433620153572455725115414560253352883343411074405834453315995683396822188902169641935214791181414479100679336613250249560585751388596832442924502576918088331726654148929359833657291563584306525453352032417809355400001964934941841288222245626956454284573137076394795290869079527904256764628881522799790058540239651659219754243522333499787637209745366440667885873849137590604348694805319778922009926279421025659629057310530854747400368461620397586448239316320424283006350716338291479692461633568617457522202778378253972057448765095071605469116877050324289811812166323595496507209078874505642870138105509941845723643620971451382667267583668729153740534294329275099170334385102973325663024943312588322850278938457899278204315129964399738948848658396299972295999393302998216379299193713565926191330646699306926498205952225489860913790906553848215884962947289229967077635645020805317627850356002238507627183516960261609739771727103317531521093996931872045933703535089285502540077075601113183582767582077800686264947007261550706192507145929601389536720062659292928618316060220180082833821612423467700294488917887196227428162778932879987922821154964838938061483906957818004167028402283184570303971110728540000092209477072227852214204923939464442642208984006845446715666537930528683943166366115266579984393308286211982510481517770658695225799807232614675758740919789937159181678964342828402769537882010956222572193633560403225544610569773934174793736443301382376301904367432439922938442676019816063831561539730559125071264085865849796331135254398139345806870455254380783221564858260005133361441747141100819759655903379128304420988253983763287218980695874634204363966083728383762007290005352100600310250439242612459232728996223526644421994067119255568761374986096749756445217663744978736841643891686290782984377636062897585586421732039024702267733039537493354236160970629976912805267306905337627382476884480150277805040814322668039441586702752683102513754482004399096546669845364936687202813285423686984056281992750131687842279622271443005704294770556614220373546727826400222022641949858068032155668135222547940619277454335089599323540629090200586948475927434921010508430578741167260416064549488332276803309335286442934254421172720171222574026454623511545023364638100123137613146344147015995408447817817524131508083875893471567451510029930874739189275887725983763580127877051470560793837921386817357295197776462034973053968506491580810540171230997258069644617728426581867883757377253738280044443365430069127651567731389223129438938055674033505040156773574149039585567525503379378236878056874059350413194612888587588698208512801294611166432438256164569993391741581343307975100463917028106503298492174938856109979839670266248404565680988142155628763019393655528362252514518136167164394413639746450137381331831593119436734553187230479426534741629574078769493726666651644960360664022737234941196095375963153040895044869646150302470869829629268576633420563126928976444688066297261627289737632708769754080307116378822925967221308271646582226419643868510998144149644293982103294458344145585127284394998107970496836613768242134545937483798629782365380527381870254614760338415793697747277977537163490251857001999233863125348080887876313252625367239604722997605522217337345799990932920856258020978247985176773634593295606219595966889896914912957386394336477063122148826949516294876014746228295327448828509875329009376715712007625886080896708038721849525768377885358451680712820693534096650180914161391508675334731408918614595491727600038659996842344179616624597215902251783800525399851949897815223861136294426466152339875804682730223022331644904239766674747841318097481634437964325591309616738736984845828310804076422327691320865693526017606155352846246876558744236241795328813350814249841124194564391108143014324274705744211809501714234564453811073263480839796399227459296032831644964562023983103984251891593888976052041778660800117099923092893428398149572537337886373821331481335511990704847496164443719126452563966514455881454268905638759969408049155083426290543808421292895528755487807859591045518090559017174786936402841321116854626538474758433285844252553893252144232479475371063631714774552487332050760484825184633158931183500099600817576246558502376453184706595018817208465138213762098807249683914969843349179551460091137479429443101278967150617902173088629161978920393816819601011207662965616806336691283319471799446411353906098409740653322210677979681826340014946659474349343452769666734640409187372012024787794774290304192874036096967840508079228631547257188074863183304609563654100169321117834782010874843761128675153194815047010608121478475647326163070440061706935461177974142400343773236632823284319417994335790433253090730170720807335544285587224695583613429616003923196574377465198810045139905744261482203704077752314142812864846687105606086147600521970997414666593167262671135689275035732684590995210516057413304445445260177836350256623654166352109559231143751513513057341170893597623830703163467437157672124989292987800323053672250948070194594743225480622115350546499305979027034759990230305997391469701234391884332483851580399597854607124247142779147316577411281531267672748754615725057614621498271483964121828799800271602714762561040816780255843882311006729160015349268852086898569431904684342796130847530390444082353289071953233550438585090939089034363966993632154450070282438322848571410700817528104283330274905871041381419616581544949683308221645816581159865815595041350751134039775334513242125007851367373019940071187646110282960096293842095445739329088262491001413433857015532269056941779103367949073269484351416152247093063709947406476821679665380227306702725895498562217816041365622516422294701235435148971594464559034418162400515580341542166735064898649012407612877185118744045248582067218559612597883502298261457009425923561412859853561392804785562096318550507514121568117667708326685188010236282431661943990094467022485777089111269244395840779228425440553256523317592369435386804412186710352909658101018885371032761539751149094997965243012669704648935694211898460749611479787372473051624805998364345276983130872004394017589028929574088973773218660468083677774204227297056903585888973973096611579288550588648684728279697323919400316891925249012150848179276902223531667082496421585112625829300737722455559523167589421938217240235841769617850554061062144322557827203367179976361658502448953212048051156595830005322623875166888352865393707748269765496651208732807589972158147944482751083832913322351081237407397457652856277522152118598066786977502660427654890787207847530109758072825738540511984024420964314359743314570506557396622270428344031085303392288816279640078114075537290250347953494191802034187910264748135628706180915720438237877911130623096750874231013994059646935261609987316636052460038949778627319051236802024162549624492972510908609267927719424334234647793486994910961372860771351891951641479151226274359037202279515669954343190272347616767273603508111547566450903835379167627497132456165268536010478489784021452728969221853529867798542987613770849057540047154799770185712653432498211023935081824442965665674919034273195152979536807723666041778666431238808340465979423480570234056822633841646516422230521972287860191432386489354378051973864120332671043490679298828491206524197098344099885494216876087840907197160376089961509570691291884232923590309730045931264377557003474929875410046763262262997193800945446277817903513290082668884835388611091429519718969638171848222564125523468352146652579418419292999579075552487188082866041170731053756814493046563568119989501466944405388250121639312246757135118057134607864048183824566231732552117249577142047887448023927660356184169856174142120610624766181437545634027045979499285480246501578901921948401987519787539613587237105426640208600302051618518038025623141929907540523745079972688881020564122281979371178035662331859364598131348927866845342787243510900111668599900302919600400287151876135218119654993877614787182853417916310782976026233747471654774632300312230615738878553994332167864728145374495843921095767912874717764502813776524580961435791553741198542236847909522746073313316769145812173304428351300494320020605498831669789266528770531974932850974531964434187439651218876263670565051151337518454560283757484436375925985585948159733152693102921905332737486632178481413121731386870574175797798953048938553485720542842758058184352007225171173262948918346713571280784345518097966377034973309014788251513942468297570055758177123731732028718937096426734442355559717102743197991528174504271072278122854606055762299475756480225512603777707103475366360073776350460280328194225821472133382210652099937988089003836279343711946346466717899145771493058382608522416632608561541309654768334998247033823658850918989509262100793582786669284571564588768438088478979375672244929799100548687458645316206034836019381460988117001245068567091294484835154616250737132174879934033576364461674601273867763135499401645487355146281735053741591364222862599425896544804586291314010059788656370100676480486223847672695122054444639288874717515262269747668580339728173307387378392287092367171024168557261380621212657627531973047792639739014756962110614050009111713528058801668070895352110752841063587642002355838907802199778787620803441670016825911518682296371709029544844942647656685640435656542744959609160770184374303379565593264012725910258372797634143708887833704879589587454476503532524474413532132844733420443809463370143292332471802752210293140469949804836780165080199956608812159193217020576871145164154509934245995766337828729047363422709822939080192989539199674724927904240897309514539307485582958892238810674000110348734175749534979703976246111653213966100817989376414091160582075450701886476037562416779612757518766985528478871994885341051447852872127856879380686709351872460008655515233458309811587129124793561490733614831231143417514661266383773708477322206305997782325667943008103250924096654053522032613441822671615115626358760270979576420714061698633243000785810726918085369171977780421159857186536231170641158293305054905672625431394532401031178633025067122065715989883841731158740668069710514439500046937608174049338884780913264873737904657173767206223809107779598499822747946377378362750811591595496689542107894005206489128907124096607219418126082017718273530167926475300601061155697906675686119101724312913588713842095002234861669341824714802507521354213970526754009907618156791775339879849332973618805935193840923921903713490284499776643417046791793263570551329485317038923504702334400771092406142719746563554087031684275420856084405769593283531442722539758448910541156562272406284509445077859585291986152266741207712786408325132637261943715338484722573943311969053130711669963660576303903809209900967150876518736597595922020882773564100543218907180410123055631784021471927963687218005319091117460710068871369971459308363125581968886881906429209781325728231815995237770078655446165336657841979829807274923578933708424978078654638498307876147556766327517930896876008783103360903732060977388877402065604369309170396284104790096829823174462302398308766948720403558748329050436064268372915085727795132749807614737493848544486407053827909047215807397307193536474998360289843706427802695686551472463231792862140496028232155475011853070404102313979304220887569817277976570215749124751324799669634023554997370296713989336582475235561316395209032449470211202826429934629663730025336993317350657501763469439947154543021718075148390533547089330913308844294736298713646529194355170653831642842326190892119643695233747427118716626408713010174986844062010611310919201839108234432617751774809179255927393597473656911865674117093009738765479290922675850616025428370177284798057365037780649040184635827914453114557129371687587736589220751807532329814308454234414333201943469183087720064548355760398598059343933420451263532700697648970415680204332938037549302812517173765296475258914493412135995413596870229947758183316818010000743953602159205905435677022558274411823495573999654524334270149091988613117966880117394816440128848563814059887058477826446100953419327054052376966712467651741929988643636066543983597952433800920147035919818015616235619116294726016607521252042443292207669186548113369143165293833840425745844082600415696704102245261060459425955856789314564309579423603157055120304054917762591858330304491815873109144643170388971546061676243163224044214762669657048224095194305432848861327849695554171984705118907674593548294280062637443105354484703014113213644948405522536718441060521089770601671964981586359258519118428480170831955263277588750504280948239642961979804031718638096829419107662657555507715576062199826530666207391219291621943224545371230406224976481560423397989625780948949718898105336402939185991718020715475931088033938080701538882143971575566066886972602113240465868770518726191663633852024428997210684314493444410419860090066263448214332189869631443348925048037669957826535121171547845697313689620468209601799876682425316634911366373847784294928939699394526382762213249529242721320741505929194609723972093670599196997193896020648739946000249603311955087904576980372673573961401740180070819384512413489364337564011041301781050076576249399349189218187395227193112854762012009036591145093132543269971101503781175535679032857488139856592996026495960870215850788093176386376706400820923404546400571383631002060595170140295599226197205123615536896215473877944457325985571145538085874904954585060562166688944437585696158772884412026097304436971245672368559116058803809447254526841361474186631175078819405379753698268458487431051918210381830114777561411822157656444302631658256904844961121698211451081718069117351221062413645651288017992874757423240797279391849176161157785014806099863153915976348925851922779175356470650115925942216945281310874525985878509363769170014513771918729934700328520878827793080398376494545097642058806869740840168413428145154884638372258297771047993960680914946174236740583971610733381032358717524328706082057923351382491568790758026659744022481207205180045609337528981935990465957343434196583779575549344385253409763160753127532117284338104642810187238095472705543555868320451821227021194204344522296072873428738095351044346330549998969687384244764137986053493995590590641371986429101676254066604593444681212345495129809926595359177799503949120102804310589812911378558342397025123080571256812562678713323552544161855119129100773707166266198403799214819668653138774667672528899650707597586447462808864617237037293601453503575842646715295815981513988158186256257735211552670717727434657585435334062936755931015369827448876032892635547602518998668480874408220260781510923181123630718234821087643544492118529594885238276296856638629058119446629474781768951027214377153289994629943477672094896612283749839404944793996884769227768799669064365729432931027961632666184485649516565539654403579781744831481201526842883529142217151158951418919338135217508281235809348790150014024109477824820289087073013986664032426263111913286831779614190619743902033222056238372413100293817598344222184186393695898639630581542823628832727158215021258375314019991307042569776094796558598776630645656043921584658809951803079082459437709378234026176092985390196661035273102097604401585167073271206075549753883635909970332360905786916362047834926396924547864661794152556288174876054926209254453191535613662540614827826058451598463908581134585327529618987829037685989109439582472160461501531201476629902939073395298157046822108842499594315169810203030747878371638902027310741191829024248634369501282830274277935198325131636817253489262488490740026293530445567098692872782521086151979985975825142442015833674975825432817388440293070098215352369535312132755874684854148551898571245863277596274363913098444500835991807220429796091547350280700319319823419816571686197772294183503046490779330042097686468866107955046682954378196918453786211200380117640990903729417690371682965528919595721772307390971836022613632792096133116674978312595183533323998066230218400721353291277977165317191698475176340622234930730087367741450294144998983851444702418686389683977442984261733730285702007025474433136021886832493734755280725816939274307880408817196534929175236016904089569266768908991842698312223051724643734861802457819867072446423695747221468103408171766467622785064934331802219983348296937684974262263511085109434490284128316029475618332703465881723501368043811880602690352267519000055077951088148705478983332803979075903089640828274209786449905843458319304918573716590238874561643062077593799119226538265386631056652959504055182140189955556564645168086064442135956842509276986207368645406734367782611518171473312541899276399122318704572897742113562032850006708916608001062351463040751682514070398320090941981501042683283195982037581900305960212445675483528871423736200696618982664638540518227984018993597133545815448215710740729201035291667532354335473799645789369094756785370214601592344195706256041697158165053595920335553488677494292831243507207175921868842443296361539485401590076128753514915682987400470190931483502897662091107443862711194364953733346533383217442953448668089919651883124653283382456096419807973427791814076560620499002220969056554250157000818623004590080179642376291508330668004792112295437905956208901283012505102981647707047620262137224232650511108821982951220787105895728568178073948254804171120801573457433559069586419538098364387608505544042777314094980279097914971506489540902433369053927822978181584070346033858879958113015196845927414586026565226738554207774579677563168208032682113842571586003841798901804345029898667695468688886217393589832198285804809958568937308880508987139606938972490977201584209479982342872685879740308216628329343710623084753132957024548904877524259199974609053860839045642024043218941815783511616252893680391865520844047499979218861457403798866255519823547911662290270602738134582003962083416827709603887811317328278702895149624882868375601457075549158037177977102353061166940305832417834536838391675232303879084652604651853220542084845234278980838165661656151658760389155592544965095936774352589793551883968774748730897829338963465460475858577204257200924572434287366877655643376033595097939275355875416965716526318452240456843148847381630688499595646048446876514648656338288388101602284559938687495514236143114651062682057786563177979039817465135764943022101650866889610181156073048641678616519078951955595563911625654504340664655020252379984276593820710358805898763773931780289094355580051145529364602307789426494703323602655362179675530261055471437341468039408656042893614386421104383297835372492660216962844217510236576578210190526760822875568296000000817892535127111705450769250415887326903391916738912408913681385430951433985291165156606559299008582129145881463059776830450177254066604778438336848304645556474679547538140337298908214345875006973666917102887722585312700822195761388775261279514914021248339346903333576851990439835789909214253955957479005743464967211738499536458711432276137948003401004632642215705268983988240907020873308257650397352504507125364509765811933814740280715940327899353461016361505157061654962572854637598522747665695671070439341081876452550634813489730828907029578620208131760534590235869962440478554269526271317311329893495929777809485950228445309762053054086192774903519149506550210402978701938995875292517946278845477188341765650818377259286083619777053210828096160667954207664911369226197996476453912719715567354093444128537895426534432353165981101657176060717097589439195151649389760346502271585761329863571000231571365610524664022045150114255344289659014605338195880948537630090186645422056923748509889819909812951229895486447031775808515229182290664200203513883184213177919781715788816362433134218361074440213417620531142763127022976313432995956535190255945503974138062918775078155261760620421633879338389667513431890783437402292217036290382475584879498447328695354481066798037286944231068145602980151539499393984233081947781158508590965232901318021363456140786136945953953368681496402113965786976836775575378907772271895774256055403858422792650638390194810837368640178255193563207859263052903657161816948824021881170503596707812476286619220720965257750003692160618395828214211823703130863284064673559266608938115935849416732724209047008911512159694430970206401321056119960272054319770285234344585105769664128250845275101106829925397189250554273888959066841708925915395573661841458031429277728726459926145206693056334372117718336780180381096117895479177014706347635458036452278061630860462856263468819683281989994402603087717761164488248467741608291206074518787646680543191840461159307847268782168648291763573078684110897816000679380710965334104622958756553938891693164659854833189778101367632908802883835662797588744642422608825366732005926097693794639214031161724348087021475453510606851904390799294726577245057742511424167344919170211877737853099831926997327543245458862181699510381959848801308916396672887161529354236937958530853489304380217901267541618862630107855753874726865495475764160882789770386453185730390114680592543705128944039107642959939993191813729329377822502942761104796532148960654233048815002597433589739982634154293108192425931598124361956730378520985207348593928587025480673991621060560100443386202770661746436319313326585295729456623885127011487916046051320306970768429918286687553999167626366850066568143398400279128385984144433550525883216455028303056518195977457502139138970547642079155273186161028065113890215049585726059247673728216161664801552323939513203445168108357676457811556744673086548833445726302517727397007054716632759994956696129549191005333380886463606871167865848825737403294139413520889835405484346122261231175647804785993490072818851534574829726816682612385068158623500468983544272467163899222782735418994733861118921762986836472834381003983072216056298088946326660494949324624705399893426295636457579656200832481827242352709334205422852193724593062830095632450496253015151244718024460798194858577443072393138524738545647449148843431805075416716350357375797617901076613008012933660622022907668324778878621601539941674038808978652403663949305077403122240980298313125564244481377908565215799521572950609978895620202122445454850079154749412201426414794451482497955848798211651275255807988382739020069018076063086624835602284081042398379633194490026650212968575048519904303432313765776396966262614003680104788541290911365902284364348287041439230826451058629554556077793552740284477524636351894400308988709351027835747783817997213833697653739005447855614925113635521983612101501918980033453174182258824005663897821461082571668125099810345480109402218780111190408987442796460721059167817931764409871909018671543294938471480972174638189645898258906543983309522236799572383945593492444652463798020738880467439429862996302515496100946622353174549055141417836575310723101821425591180388263168503376971593568681117236701730629649255107849131258425925152087698788945653094338263194407056025193021452424301005185010004975007006515302446969792068996931812003252864210916780620534389875431254862863150988800619887419707567642841538777081996496188099417299198904485066499638333383836144262074272093941260356626350188726930838034796309522413724032784612216216945627393690812580544502665733483125819384423326765957604284429334171323289605772421144295929009125587109475716315835955150763340526779077122728707879676493270139236288778514008741272837217862470176935412363044837641606693049293942598365159916160916613272521198677092613686170670861422080079017954090933759892389974988879841101470131174012420854086632810770828176079780287374656959057391409517277191885177145934029451689565354881604469016324441642436253665272027246924755993078130100579223957938559156715790185513213829037843076045432416137411352471656378399754558753283066732040919560106671796022850896329329097125700459816106978402868102071102564374079252875882544166185107014308590218877487689509205454998213594959796001007756530934635644056488547866780069744648362626369711674925005299315008002300671074730514305144364577953805690658436732064986587812288086136073526461140694892882321375662712071639524098598697437177386825564431860052618237765573521786471200720351373389335815785029755794503097144543767963138584457314307547665168078059010495332218914739203329414225133255120655836926394360853220390652576637847564483451802680163348539453911277675837732814564493330253950447992157667807981897154899591067966822197468280787155285287763987750413112860268817832331759124156941696668636594877238919296460706672327109326042076323132563816708316403375061550391187471256126934102515108334226969712583851639342556141348682964239659975775142861303377550891218103954521580856450070105316815900468230937281771273336935269387105468358030942654480606625842191065049342381737235423326382420638890046210164560541847748881982628378882953659112105359293488432646511545136208815610381095192121605970245016565238429782838041638383556202429425528083177657945819018089035908127666861661480658680861666761928285317885133409586046082413966329253340578823062551667237901679702109260459182007168215750443045891895566068658833153103252295196685999944339980147265138647448785285084885213949606384492831726900960184696210343540118219786325215380306521706120524914223613560153097176346272844215426362255191723308183004345318492045558894517277345585266115028537118770364051998678127679907427449500704004680251213825763396171753295955083496664642713925494805099616089623394598030953603903336608212153674868795247806133344218391116499546240899394841152782227502767980129929586718632428771752455442641775441114392320773735460949931796047104709115995344533675926767201445824874914742040142984121207234823823416127013415085051203187081123397770570837195353910092504045862425122150527292673489740756659921171488807176548625858752450433113107445621800919228130623990995791596618114922260245059429704738288650575819502405517225463833661007196441101052676699076070494633423408641629844300403978955464699024775523691556229080789131890170616753173491646676876859451916606579719836865837071703774628846396069578074443372567458374991360824558142135459073638906671380446862354721564787479946358303413631610507096234867140537546287750764287199275471315658113244074555931268355269148703804255064021353905328029251069999023652422665269269450368976731186091426718394945225565910700764638722332099050412537268265836385553500279067803171125915708264814756832904315203208236793097315408234388082482372014305319146160101214079266115544634218060868625405521595384451243047109216184524627519014160812783964658619895758897493757368284297548029059671331182760802256396919360516254394391658973370421784813406282181484056042911435918167661086456376280718844619990482130011201190797423586305339387097479008322749477826434264282861394174439969695812915600876257927646864579239699469782068859703289387123350662278482582171322203291660623473433913868744359593991546202017062243996680294003223837367904744394404905206406570858567979739344689895403182464254650080394158245147620110417312947482853377873196882265676629618970237718977649397390584888431033609328161083106490920917677895043698099330844449042970357347336988148808231044133096203648836853331733944267165377015681605661965044455216405461207302416248059361138909627206062491721478237598759236454666821803526252643483701222270970907754938483181062502563324360639660947502813595768974564816025326140164007317646481533124673446707780122179989781829073495496920835444378743811937008775171393348959242042218848976000936128065805160802060202406308075080132701754056464709895869897016926708799108923265752204546852018177377908812847893117865986565501925971920945789998141351846297317495893028338944543224960780032059198448399691709122287180313672016576640200127685192468818171995431839697636773947334564731970536511354537166516560647633478780779026531919321049201932332454438955525282081270430253087280032691543918029606658684800344322592154273635599334350145646882716016238959102459566311826628061073512189190215048407503706975533950681046122998154984038340707184146921371612662881848122918861283413301282581542854215841559601401796473430708880557108306763531449916647492533910702123520537218946440644634199703895104413192457226533651399269971442302282887975507103619504800739972034250735128831018734932001993194770835144421181388365242945374585095609195426453738033979327340560982188028870897496850090453842591864880395881066960829601222116889599731038277237646723063516562104568162324157151832535659365514650165707394364398047851295361544358928684182927235675242134521896380038028205776330625463510908247230795379752880170142769743366703076350528171619698830602218607260417749593456000805123976164269268649884127114242195131438334581682863334181363078593702856588452765548272554600273612743131492458552187569586551731238297455836413278765896408839523959657147148215982450955952160831828905947411961584775884680133034362350796082242781398452110047319700494345959034196429925564280198336167776928702815118598010457597824212616739920024964412626814059023572059225440003064723323981990476625641260375509118680205984662493151091425566967380714476694157507180160995242930705419724658715001758933310197222320187522973359192919086739238459339044242652742430926484826544909288688086774221753544668192626133674294376736126889238343548647222102749992965724769197313430690516404804075622154881599963676444759812063042164476658719811506257063304331971203822801084828804609767645353020873002479341947391969788673032697326338882086319609975362937363419940994731709605294766230453235252254749566762811277861766560376974314437528215516414148719907400569006108691824223582186006240404979820602707965413888525426531273630866770283042778403827969782196985824975489409737427456799904007224799277391613141387959765014614647003039465890314045873236498041607419238168122159678521384856236191475052117894240245744210250741006036335465546709963850894290999642725094880198411505870462107314623455522380924687557724499515192458331300148704955007256392901010157054343402397008425549896866830491838577319172159982478849706968669805004699833541174222339433985015447443845329203938133949876662279253845879743608303903456107405717267630043676705365686341873414413108304634045586339225599881043889878067569879014469925926121303134651627012049820156031674489840487373320653868830045301214456443226011468003761224266048087048816693975186242723332409615570315152863018959394823024460305611217866587207929782256633673287799575027835198421121324515164475242715191711082603306382162201964928496462326626245103409005140201672225912769309630132168257165172885342798882441491771997127564357072886641917065736797725308148316383977923155557667602368110131402864522555275284468314610880222561882627495565687243591578151140112547759498212522154248785888050530074081311617244048372243782753610565816044890796260122991552624654153399213169611902785664378289520291468169898027347096425944778434015449998271782907971782244740378925116311656686191635118381506913562729257989894493903502782021925117366270973795464659262477902822408246958241158104039378739864000015497548719746921451336612435519274857163173019893223287841533646826406750735118075884794509909363649489186504196292822507913532458750944142434941405780598474292496517548058031324164214646978355165408267891831566254447752330692244548523896582866770637682312082315858637004200220128352749645171433555960210120172979371050978095505123963923710819343241088697341620678295616814180846117533190182354626678247934572711330023900540919511945906522380732020542319185377092362744877959680995336905933064467183405584386711447907890130355827333376761673871645609738086585587872245283087702801751589324384594933338920988999738081088500080577932377215913191185713874566761744969922301585368902209569412577747308577757498093558297657743838642667462727651349120667120860122677407033790851978970007830240700287730928197381742363538116495561301622781510375728690023621588786674735550884491412847046055741186252838871865350593369447990776311456374246786789871554800026219971099143971866608456543931227053905279558218570976701950668617457072670871859487456565485854123236550693965604100090926703039458307589232861802532152115323372851876036626072020978423888975416422818334881323230951079585882892094707817690046002530591315778987061101961297554460654028094728243103897834150858450379186981681662155001919112460973847827696771801770300109162703746415307094266096438029323439021681146208716650463573012132879986186401691831322748191979230344678146035541437024885060249735863075457895336221709264858906608459321115806558358931693112404259446689063790126995232663581948898054515215921704303173875217996277133641666153386871691002262088506828772335225954778724103762387171550768846424733387601533679895673879167315915653040745953917751033644453964922360317206317856029500402619086041225881964420383346494354232350908800884368934598288233828465863457516018244683858985869591539279968462345920790963623211281269666984722031270727952805987437743040170717225840386763141225894849977610143027032007459900280758468942324572555021348010642321844550499344180023815573795493252385417010210079983507671782365089923196560446520715157219781170106872330074743984748022183569288772146668961027146760269310216930544403856929804305440279752167049022537714998738626987154722784225468026796985983687810181501877831874626224223386128066853995979682522179802662679618770442568142305391554084993356613348941803732897444075237056874222354006573708700081551980083517491254687896371459611538303231455639343136110213788163673580994310831562625335584769466504363774952190333333311782375816648143663401207505833914043937066233278770952363460660399975331984826794317936930463711913698462448382901159427442969216706724400909536927551199563346386525042238318261753835133497053139721116042744497713606589856070602650006626280813169654376065873592977290539549013141902478727732430879414645165427984324967918608293133469157351973112484909211217517512207679950935278715791679850628562430983463435881886955131860417558919682059061645057963899155675630895373216661479578529752290654169336078511249671897070826353827736612761823818712667146742537148233323099585000979966997970824872101412713313278812253469153473639334808781529332875760372891248572685191350721890606102964112899697327900657198807203071777927025276685712368918521243990194895573652598124191721152182054177618173652263089805156587453515707044447001786506164405267869869719934210497676960924907681070906169899379300948491594615547208665019764566994973964375871988483637894779233161562981684611758456614160776063723042216626476618820165825710599440148397710784219531805113347227645289985194608824725649276563971904189107070062242035251016218017889695374614620751548473051194071541763576523266064333543838725086764124627149024846738592833370584427314801232761813504356442526969081059042859544248248822752669025358195922831385151499689836157023210433079345942664655750732021727695485427396047171041647340092115972118879941077741377111095328470328007733328278635565769887244147420502271886071756050818579723734846304460612073141375259736215245633625393734762529547817112854829473887603558397456701234704204280621915657422328526072712183621257275371485445300338579054865758145568142416563763214740047832817151185704887547438116794613490308639807276042574849846760310002410754291015089278009293477627076338861338813108895649187728967609278536545169170211141951364476995728822414771840618372080167683328589999522170846170231815901734106896097591596981464049215408411464946487971970629746981717180704321388613325034494081412955545113245502466094586642567578451762004199004206550792118700360274408908279079359645181786691414390082989384328129471744994761295860820613406505058039760555832512426881386248672092954495221567244904483608170533030631508787902396538992247175659887892706796900124369371207237615061462337072662685527767810053780632632498358653547071708235245397344796260649966275989997621787354159000490394336786266414782489451765694462771319888437453985311807141016525086743394874288916403391885203808005443285151485865302407985639762482362222619511742100179988608381098183122287277029268015950418809666113749943012846685362623366255420448415106403247599664679304699274858674859403297034176721400138755121720113103997117004647135464198994687880298214446247569971004844704745002462892915071743738798112698905929235996661143299428732695402325488174483463599833997659839937040969234745959658087598861559924682616298970674995172263099582505268593787078645478550398264445384575373268486777476101688373790094528470968989849277724518679898429866438260440499189342421090117415497282406556669320591230846981985891082016080509517665763744552531961323091715308274719405781970539560420355329915838010404716422583131499647423802109075539041654498004755142263170051833260230323061671620427964041076166477242315503784473248782026357374288565596811805800893897850478841416412226019989489680808049380367732944859347850216025223521546127633773233447286584224685594439079258968381569765910628569983216370006103412149559581469624448179718678061943182301333920404115309845662708318966311693293873557961018465796727157410664006284963700375655098503154257219282274091867560004943159158336301964828372604557128128197207730212389162508503980428225877511438191701283617977888817112310630541701388510847135762467435986536873863638771280783944429236838588123539263135401086672966575281940905415666445382691267885653130840218832542791968568722927772526148877969583260673186250863559912231022948901035359865394293310877706754054450709011445833742793932602133253417355421235269187086306492247317445086988797203850826844201143073723508976441720122216772804502655775565695200793978939385994845105163248126460991219468189769943451335974838483941280243523347138799876467096398529643829572062312472608061018973192490690204925134150803806298899253186995622794679495805704677820188148000691705643468426884117403946095139043094375430555390805272649833477844853295118265733053354144232313593559237668194975741154370512716385967618676194237422625831008520342256374076686034480275464262947223944691902357748944613487636440824836796041648674090808958174069976450623978244407954853013267340778111864468515986634243785013333539883664211675114517953101982761334109854366249726595353557736434882121898308137887151327472382879048749945584189910573481263179599182028525936150472746574715760042016202391487245848328562053594313373503278497618194003456917806242926492998310642223276776629071449653113884474630144510390782149504865253929770085464166863594017235386005868990639778032048985627916180218425208906094157952711647009645935231624352009850425264122479281883789051279368190283011604570648934571698724409650017320900582485376367382699435192761881714346233030736387898238819537501654860839592682278287748279013259169759272922599735725653376832285450371909671871792505946840714775135913015606317943963928872695301158329050527638019710029165210404057261461606807068354599179010719870272908176573787405735675117916066842964943859927580949304407948815391256323001823856539253855359008947938793400744061169077938388325729212517363927726935031796514516477178375626633782152033786618044548078872074797553724731153749520216965494727486302213024359140671074010523761334079061986562827607383325537614651254662509326849825437173751799658153915602165331618879773715459586304534127234611371690788669437886034431192619158741984948329689144699070020361521379486440048528662447829727314399517306707129496364153253414079272070251876855432780884610988193126492343514829732302965920949963234730255069733722974860378497183360664676793832122821849093674875286872444764931927406186135322999377868234023717939973294694797504759607657576193653835262973812113462290077919454730318164071290463429698685122871468197205960244450634197878970842356515311990622232264126932407198816486823117131299102761978212280022056548887209370400764377005940922331088742213061681212539573382824848578346322355462393297304561312622228780914859285900826819180287456372503571619360060947553131587585945397917707120018593690341658819704793240515852011230137560276891977268493709856155162433132937462534314450685588851779742669840484816105876417184798688584197348136072499580119437722408731633939166016428104001946229521535738270337829613637878323182519545540696313973227372100831459970069115970742652422893712131673293743708603651921240336258863087201951518912244249686477245318247220773158396621213993815172214604409637295357117006800795837668628985129005994146175985535680729013217132161741730079885822637279801845075703657574083216311370267864847153871892693388886902823968056992824166453931057285888109488659027424225667409461699006300128191083217493694499652125021221321812543317366773533793443278321731993163099441729751891054913665308460347735930098629199551959458766416848606441115792432073541725800710888730968272568886377254916918626115734612428276281752200212407520166394409107476303004180534070603312326086260876282744031517220892654931250171687634025399309085833379762116784921432392249109891056490493417187359800037825937714731918175481970948045365954412380782705579630553182111289935703041214063284713953554365648926905281663079151601679063270784245592506250287946872325748807120302785707830925254588482473159068761907516154394648764233390044419398517054196849998170075848618206504506065017013806573114040436517563286890637074557454201684588548297415547745524069871986280563388679284489017170861431319795896366008616141878504897954309210886537876072334780799826217700734011330732782555265757682386299031043452981020279601714497680853342227365093530872676955856354841473733871204087944928577475772092056888302673551240384638835758766538238933989846824979636623638636034063722484633357462659718440098633484013733405903782970919971254877035266079451430033709932680779792759585509408217603473433385324638686833691631660258997269838598947607162522369888123297846855269058442497635432015827530389838863377160913490673977641053136687562902866601725610354350104938391162637638266146993153067492785081393783672393568518692520741179262756125134002131957635338109923756563728243013869351401995857010239371004017464314849427515809761768852970195908956490154376715255636444202171757161934018434802471163074601961456535512993633952542166844116787638051669175727148865136842980704749571254713446945987152202346722206000511969495835361117809037040278556867330923491591789149640257496826227702177666578432232352379769453703080194382876424573928410715229196474672802801839891266004550968425932595403879527919673766840490694145767360809097932609315475468037001058796715139260404703550398428521598472972614720831931209976673925283921709571194152127788583056961593481900339451483448261970720256523683018719998110671224895771527795750834724413690175740305702503379350760259141512737840773908539306443134037110352731648610442120381978888131494079143829598005535889567794503166590615906985793153500215149692448702155570290777656444095410236716927368139778245732670547749831927102950770947219930846397364017225817812468221592339789872639428188898747850124945608422719961990971240277912216823062642976416576596608963849197349570195797814497983855236763536915022591191969075091570559122860397981521399163971870958311937181469523696475781589146591176058456670027873262233040524466983249433308627232356758430443148182658889620361426609760534876460727863737470380843191746612805815657796106468180020424947723003173906436255571408588933786378883382401013372335238940135978241905422293879686957773647945265924812090802729084106958530055738739955651300820230226753559134202609031633023214819619474858525637155261662454465638578669038366348352295532063273286146623822509611956345975450687501190764050113018653858564053595723708620121564834008698325678972854584836120275758583869132853008154767891816272217728283095706886715401310931955848501519519419850572837611224812658058551111256941151030366782329442907878842379288316479070253576564722522096002921486295107929043822424093716005280913118709200652758319201864062344899008630427676086116575598678973684886802191131558184324368714455607785125476768158867541869102715541431904555409703442534009213655323018627353160456276184375737766154351010930881212345717415061872366810245753594472278199917520638943950800864375707981375769764925460903385518120399628067872889741165052692694273159399226235076759538301278303739766130933672904074723886234162298525753589323762653544316877795038504159116106278872298475076728084863077830384974031445702069012167783308749168611969270229278961353263173850485970765074601133780249605597072117146864298058187194693292724745867570452364373957882310357947771206464186325465239261953570506785573489476205085028875346402530497864678098598126589020698590153109887308386584041896203130649682235308291118128083387084847573638705903481845816159775193810043936198381699349500455443360823856119304726486087536661827696172743258380438989492655545170290683718223437976035048615076954379617254919824718639372960310170346363701446463295665913932782778929004562147832446129231643893350115458573178416099152780771730542186354425460105944473550724493584465517519733991341636323449448344288300933947935891884697967935348685242199896082890997616429332227923822418282464213784517297757583979449107053608901251102986502541798590836779745987661642045011393341040660697083404655499061567006154804143391859657089817599453020071085356319240979902301295584980912070923604590245725984956703452495919433029596314077036039181948035345614811267498350165299155035703413931838835666052624679534524506516517255752181862637829703799427501656650185901282708288051583133297317812683936197950546381996759845447262816353398410232513364062238218992019677933316184838051953148496603122163215733581840416137123676563603190433096181409801688586307482384421690363184541667481947632628595364046039046839367471853155994078097830502246647859177116681034352352209624211414027115940454312939605674066778159649884857522940384831522590681099997851977327249386794182509883410677341932580813878313569445032777294399526641902560304860528637116330139714896438975198371202262624750714685689832955115352261174354693210515695244293001611235739512755177936072640474048514499343831126647734997972693286108293426055293957781298105441869624215380124299864752585810920899323021062605410016909519781468207202776066899266202132589933532693978805589503176882539280794462091270496733909383550432805413732437354186622582113407775655280107699160752534971647497308935219597890088322380491213373371673484695710672535624963682538837283235308468897054356657278219865327570168851672312170720627391685248179098656158650139071757637351811900973764765746889769334256604685171823016630548804684726031378687188862970968899993660816185532599945839974053326609401755029384391804045226035525442561994125629348272228905079983472890640451611512383895523605813102279746035611815006188455889817791993825947807295227663152628145842176395771629858767547832569152274169789624994716661916063839979304327405736601328168603569850351366583238149692463623036530836814300839381471163421948227153477642319815818947035087005611040205653063079030884799751489620508497561827206170955872406524010115244978497750653534557483829774574554906702114233429570919910785764296102274394861822496469699620603070212419988106882985204472942236657975709144184706733703658731158610088355593415285924588353552689593310480157565039240806649974342401177217040063941865067572565130943062606494253548051423634984353468625805636546819644038505045433070053432241465366165880560241712247650352119386578861418322452232336998858305781005949531729659757737712912740936762915350078514014010337539786258251631575833205105488847469343444587273674451709497747238103957204203952863541191470459087801652397528181737449677304858822319489936162685280996004755652109116644959298406881187940838386855881742345035051326132671897956193579638332757579708250424701755153476531231515539796695629255248979300353111500089834639144352446109954651506110755550847256450755787070395998525809578353106450323164003446984547137231095813487929744159477391725626089690393819313787556084299642469175801680670711398381950409666041341187323303335415230919178556381220365434721135199944577022508223787162996293739233683124436520565081674953545449439190012102477556835766846029839037253964179008140790858131452588688902574017414815669754765860549059804017193873214453758820629079828044798336742533437173039650237809420362980663769882974690709963041074567498165130907813908366164185754673171477642436060665567930286876518311031109570936420728034068154602884725478072540435012019459536932456942683937077554909503756361151570551130597721443308497240848654970198152799616341866962626522336327398497542538024549295621375297592572979911665574311693494094222494054955078882956291954976962039727494110957483507234293676573815576693669429027652392338031119290063416489105657827787879297908000981008024081839750383368952719308929741823698897168624599510548262189747693240275826396097663782552554588127713217331382791726700565305724621720958130456645023807042775052186858831195264818337625932773496537057564317850547820085558631205972246862196999965768659526177218222753762551036700419562052623650213450912144609811438921142345725348807371291660163677534036927014195710188299841505890494894065295132519410986897405931701090292797918087558896446016155604305448831966627878889631314398858335727976889187745092610714803319258837787861607996548605707607623481652630085930985980602459660534063727510647102747015443251878610156922649414834031481643971668243642439345622267390052240532799243380075743828854687421653518129933616360756637986245388233646058666881155451207722330122108343354176976253968963849553704852271652475096893671138417960587718741199795225726513732825014490055951250582910657721719369686806077980048338944645132665312481245324706782788710805464073703589361769669186335733500375765693516491788041798099681350762035660567101487998742161509688049896410953523479464280864253546072123913731215264685054363424543675038021942565579129554685836469697542390329162226484635772693206988393731484345774939417781069772087175811059600351805225157713052441557344647368203876298713583743144996294694300657919154736443331072302549945530969813845574331737796052094255648451979610778185127449419634269473256282530146764083086900508215560125232864917236812568236368165311656568866673487756866108486931513552727654183302010534537274125428306985571131891599596167245267473260754939081299875395782919862632918940491034636270235272156861420867194182107711221184465283187659618919789477250720045581926142162415475805573153915254182596407746859440973893807339592134136493943724683110471497532731258152874922714237476610906290374208592690582559403890379577313573862170028903610344724666761406475159654222831345369820406103604232459228562312245946000764897798279044343966568670680979653317282278476552090858916199656639442848847911169609697758609415103597536533119307908021859691580697074997905641702276196459015729739894307470037640066817279331665093816381020262603377444576307773350791347421996276697703463212591451997928016071131062625193436917205790210787338529683534304490506114952402983386730488209415737403383785058725408315640715396998780142059549287454247511264829014812628212954665224817858234040558288864644396706773802504903938058486141211891181619592443845682963149111762286524113914295577115097722937580835395045407364145584517602228803864375797989908087301066927118889498568825712339353547390419519264264141908908756898503018857796157416235612990940255885737506015689516893077516136908776176548392152900633126969093630811547951689952280953927187014309367900765954905691529430179435018746198600525422443650230485078054832286770678106839173736374333609056759065720060623681226927971799754046254458773041360897712863645451027256308867606501517400821617647020271712110141478645536027794196731623368824217849971535229182843436187687160779443132239116377855822526288439421064789291785436121784806746055323838538727521238264457972527050627963384103463021530633596034139803854669735980356293959406391366603692434550798821063283942249860052205560740736665985652874017555164242218705534051028220844445861841300442192110756844542435456167274728860049483763199277067331616193024421727245486114999104630332509589942803184556523961379030042652062655254709186070713917713514118386193895745738527031499151332298161900284718584526843086023928946129485732632655830972482582681814308171263886652155916670669777473709756731457437129901849430541213201415632208982881669777486510065527287744178352438306025553235779022686255079389708342302028181596164352715145027878219089561550872034061067525445304692088927473824144635420373835466104253209170456012361464360952012539778349568209748749725098344797319911593375672637580866403752746396309470499785079580325208281967545884405680418002405270224160176325197816746747052278670318696539837586166467872405802784779177402206882803558366771961046261706155248093745881381356762461018568136945231408143224387248120327735274429917212189526380599359752013437404125755068070107079451693462216698307750404112604223752207466852488123119107289211353512596251988152289048010284117831349628747508145804392095238546870326624639748799846223328823886489651048749885790341729657426861234848656747384127666711885500853000487236246090412544724446725268835098845241565799586815258348264990509663224543921165893316125326081275485686387860671427352960376905658831496663367476069917807707797032286060587094403965616346525704417146360281549332123038610415889633460680298647893396497641001345079215857703952193644677569120257680571495523416150120555001799112975099201625941166877126481496229503073856739448911431764486495561476359083157759616119445581764970250411920687377643431317856190545632810731308240630372477214582029886782192382208064630951068865202538721108667377077047732112988508119594612718451313158250612374253828337218201387048929295305335569773433042124131480953629802316185894236180081744750267946957021160280141780026798374496087887302011404514694497612003076098840377706700015852267510829788115437743436379943054449716626115689346640057856436697505142168427509649356048698835445810915022578102742037587727455623801939737121809540458142314587555206728550730856933267393758858930693298117944529594421963068094739641334057158314067628268468250366253892250142562728358336832076315307045051631684103545309919291258614424142660328510163028299176496649001821197604079416432815269427086675080889371327323594846865524882874506277473441728339355302021503355270919170025440224192142030031845218364541748020242397673729987466675568597798306912403270463567229004359517135430637050316756666480602973545558490404486901127166852127092582602937766984109401878817034807149800222572414047953566096313111456721960776602996043360867765545290292232433622612308987204599627603908251268636433404731783442477769248841200509078842837294905501594453803876416484485857410436280286055860108213129019667322290873965328010466308025953246922688861180888153044824784878113155747035903979654371784006947932165337503599232767329492057909344365678408734087295699793748069670287907959677839738989773804470654631597044419638507709785066482495718922474124213062690504836011081964316625661547132675441243757272406143661475392771873638501037356452706334676787479913375530231720687441805743111294150425646307160307898919180799236677665955871189892893810906827220957282893043137441051728332340049912691393457550233934865147683670014274183598779197135892119917600854157840269957418775073903226421704667775831024865650671175413110921425800577472691203846976968295989325743647144388137000712486734881589230454023546296661420916218356110940572115682103417261395069711774996338493721248475817387090905700252413039796764159189393997752792870184862009773894949401570326020595648288172235848262937587248751498374566710021011761794084189651176282917280204465843141141389871736366425167830389150033065775544593776397868095721673098274936475997978596748496746006612320057408986504169239558437019870410454763926377450047299633149120893146677506933981668720437596882812812363279542610540163440597652035603674161823637555547280136553861271604553614916881451699067629380949797229598058688277167162233251700491858281764823731636581072105386359225469428372558243839426728868308965870734759187451565546185129884923605749940757406150973462095304549662870558000016936031306743450690898866272516538610373969223294236915803386337334215232877969213765021036916308372498164259903955387803772488554901333802801835249499056145997794018865888319765534575123766923443627938311459391434758307123875654844769796916372122504533640265615209994265094559900532977988458578311978981497619784588034660595118196752958406049919758198096777162970554306021922079955458667363260182192240447104894737773743191117426896048508197258526102175351372054375596597835263592801717902531152233155336866915927921904526242077651816828481461264518869093202094449789786172319043800946546514824099731118987513152737781468815194462873173063492966624373458922467639091956230756974530957286950579695272935536261111477256663281741313887684473089386543584673493334435929809631306337118520782415609393283839962487811228442546296762969640745761115305145393247982265561349294525909153645636239894821059355761857078199788420621491512287173862162205378492964602336219518468047936916655355950502886389934955628553239535693268547812179286115988993122691242141460477957258515311110769885091285722769007482442422373091245260510772040144231638579976444796520243803515013409775536302130129792790313968138295870848666067502339033522910193274726875178298331773547472011066703091427495552694487236559455582990138518393706774492556845079490550437885885926958620174627930090499469219950491998249010591772434250525937742947422954472851020957653331241332199892399382818139942791021013860174861889896238976543776197016278751828300977622011050115440667205961710830736109137337604652509090413172880802135991812296451241063071726320982269621559023217683891992135650528146801509798608771145846104962917005209300772073786144537975887889652242599981029966556939393859696828188861943605691813191738773597703833399716266451565388245414371520820554525286491222562473010625983115138609296599686051972734683412101460525456452735926286764048257335519536969125071309548642537376105501475301325879499486637249118711787246580454522249941772579301432650323999830566983543932310103671372054129413900940670498177375693119966940851218685635403271644955950810969813455037618712644347085774661441529619259486372157177101072634061698484796773153478848229280309454156501589002588931331759305955781468482030675622971023106582641873537652764768479613987520921136082220388342347954092548111860364410844046587894937819967561117752295601752467524536544342282277452155921793253062193690322340766067955674696679069084200274727488218773383771142796850781641069751474184428704393041796374848566545989330328252855286722065957797211493414406426020925056541383329690037329855881253769788524475427575724299014977246278356675759149711853078430876031726839483980866931596419790551218371361857169789443221991426060717275335118750203888802967445660127322628008262599639260663828788603966572295732007523781396016085762545343847725768573638444249131035639171460750860949359861983569457573721285520771926360738503025443231186740344840694540883279467370543272237620748817204463758452304554444373282231431048526005169130583803471415326298003067589079538453914036599033558820521417360827661976816223916515600246517595237850598395493925993919694884154701946104283274742496809742347357633054442419868321244617653007745684642173479701781464401281362493503198625961675559087529531951875037662033032362766304511228222512263339278637856004469208147080527987680427247476723360236314844297188501855658875953406608308142816592439877078363446162815759865114553168198071562895924745451406129564503447315387966835393663523565577322481061480614366743492798970390224474319143115246663242202464116307519917643145419077421674742027531517933266071265067153524358959841713993575583054935386800489247190733067962469444998690607428088243184512632473727052959273153373465837236970702754029538979831465131443486252833032675955945210735465107219232309464445429276815546459107746479053289333285890425896324622171361898799384847354339794174881722298833036522918918497467252054467735075587130772248804695188543739313442030252405370608615702411408577698715517071465613780622124016142100144340829107785721586808641304199973634625476455459489309897277592214173815779721114747252485855997563397104432927032683015608178364637989564496218693336247560003225751885152006267411208876533516347465600764466264641045852345852219951528051960144729349068801253302850500708749646440116612296737225731347487452293229423959789494799781119531988114905165689842834449873442561410101769658009700095122409386717859306167699234702795890135788430352073397317430028561933555302169956115081436183543116168454125178143445949484810753805480391277244246412072532517409738754381910865350179788601804676412218039587546170614097229633002519199461071350695881741391049833379273521986897925703828542433579592694033266774501836261888986534024061294589423973763630777039837472184256416308360876516417805608008302190732275925471119574838877610696209976273269446666182712531235415973647499136709307452693853281700364513614557252482257223625722182566921532201538483527438307356984716190508765639465706748507066093979355282169208549126701181299273720405987081676877238099311385163706535635736871940584554882210948389013696637498522476201290810569910719712395506385990066383292860280079363570550380747353864183222770745345378818852466978752958335308795017898820820406904670216127891045790292408375417274154608379799134288754803495831907787447651317703711024470903202279367720806001511155792156739134136050517751137071298306940018574617025073074483581417201698682434370590238612377041377307840192078443502536133908160980958579553057663943029396682089781976992317448902925949453656980478796599538364850711593036454551662066358793247078558585756284315152268212254903702301774372134952619181082928737840884609894634425491711370152679678909914949613365374215983737752122232258525441793343737979300049460501514666932703415770684310649330465878323078769575595937429139502961643044020133263748291047969570044042413532358620272003988735728552012647655568477010477695477184916732419960903614551410958959495015677992583155229891399380256919017888024521168408680343446228739122814445544018348326699151276587877229574766854395796324793895193628826280249787108862116536616227079018552381948712201181523426643595613958768812751005668189657969320572488896220528899323908957632911168104708389512840321657289021759734332240135893664046950185306247120488997787102061217646085010592885092748771826262489715076509188903050801033078778980491745317048671133195864295588991098482740064448006481282076471829338605203302689672433765265354792865347004599130995890922677459610865418115828562332867422779461915819191035288355039970288007719529813413506031586319003984698951944091548841786440740638674468947519549589371451621444115144613042147589587516732516839493398443290493287394229742595929432735545119488758297299809689506933820678791024676184088626238586007318026094262767070937305870223999253763697239770714443402483745476805032476050598409322349613228644635872096621441972264371417627834116725693839751523878774690312927557175653660055100643283170832625999504634034155522683419894566341377541464928755015200372580561923585270367932957800994265023172113296246853474433660886021079491439087631508067315301820377272109583974638854378369320092073695321289748293997595144840462585579643826021172675289643006530162014175011058501834944824956292699512147658999015035198049797960879963383248995467986445432274687962418309413584359332770619576847711028328198204149020604703848729210830163951910578456398491964319289040621143877369275640100636665263985002859908510094343356768922459058905321765917850069913038980082664825071966777185945364274156888910605432824816752654248030572613942567057230942091977082849096854943764702702951814493564961133074748240102925445666724433898867556785213423536363797585206944272630408846866486844005558077810457406439237767947950547879671383349288002143909366528955976425193262991881273256421256231208647028777207689891053237301582535174431342308996218400366457062289835065011168017705555040155481661355225816415215912544035056209118898809711681837994795103897720372280355745330139299717944906154415377549124907347641468070885994920212459602639309500792503879983908187243373619442283947154877004232405401112994184088788897084130157222814748268452573232709415937063034990184712224547851739938028918969449932419497548681869114504243609554406275139687342121778030735794618073496259981238114876319397381282902782169641272876699106588646104928961853926144783841554792452128355273221231498107834855510946364305563499412273226744492793404272465972074075094798346387908780746246696542309198911256462182021905910369168334467769204365235705349978682508954373590587342099180251418936180178289243820218995363534128652440891033258057007420398425555974797643379471242038331101526235507391443176037733213043750133261589374045971405167992608824065793801344277340157271037010016158096203362903067663747720870922583256339562700263392184685850314560407334245292647919079949520123095948168298373143815764014344146666697489668382900862012830935749898429257045759912786643407983040564113469761138532592127490040334597040935842826397862899012128071127332993396316490160185081253738845678426018258232159718083990331654768503852980805442848759518819301639945188771646584710569756979607247645781795771542101297049905116385874025917459187874136516469586097027122170799704914180047411872010243955535613089337512451286483905440690976840652979484325862362555928813307751841124376612699499917055555849555225694500416796678350335906928650649388907265177968835970123338840795091508668761313538777087142172959538149767601110997363840675120190465565083541039515433774221204647792642691759135687504521109676909276179086918954460903384401464465541986046601785081955540482036468348855588155182166846093629449148879064790722093200076536901195736601427381759943685879321871798116418608544786742581758918522734725981371612822931391687622168142329201445827474532922784718700963255772352359603442430851766809041833480503508575591279547207992686900684754179056730770218597675920180734447855582312962993835410215724108117315590635282124171362207754714478192404659605330142223693820985899365068335594601112347619485026141696539681697378653440007437753188911613871650392638034468991760598589165971860704292360578822881708014810515646852732140891390637008238498641073932169620272431101810329467645402213698775314213827502020962331115869942356967145277228076751932306010203276051045030491556808028934365115038026961336131715494950137417930433359719843315483720186622666719387543880138505982613393409335021355918739101927446240067165041900961488101665552347769771731453737310480627200729492898743716682774500811371789579831218710906864368677558696545856488649754024798396867510493282005005675468184748294899185195770521619024149162531998428552824913304490170814914881301553969811107413439284146393117436624306353211267413348639847766453703004385715065212958384628095788900155590261803555361538947268749626107858244530648587711040753321557175749733857945514385404392593878729116275101419948073382964645803172655926780141736926440900099276478119250712735604722297874095518306423705697794649450091445072679462970770948966254525296236161030680059398035182073353707040021222556407787886615200265819698673935078897389332244503723687211237585765075006218699390260273516395485869397689985155257606529178724080969706453281476428774785819153587081155853901277656301662507767627972396119393118324647382090023895972998664962430329448815650888526172665585690983790591399819242822407842980961169742062499802626783633763476003287721107825042031651621898535226256191452060826898771619805578697063418902011318840941539663119346904392010364163778492616096485067447996504975732956562165842689086821302515455221394032124218571599854170241541211852421286918576162470460693846472795119412260271706753325569203569512501155535696542708247243731543820337236578945174812316769720929754645015978412507444632230643174134435756002688187622277697047934369617566181278671606717883244637788178339604469788683784736653815141095265028216931733995472230790770914142458012504913708861023492476841994476779352504920499243383085155947914920285992843984485687608745677327671298579301986470691703738862688333007004466161728966699897411026168458355513975072310093396533950935021918591447884454333882393900556186396615021037292340434660868576295531646542398435732157870697258756910680408518592181200245510685920583616903868993781139792991293635544499733308404225492206479742600520468761854342928554015975415673245265569540474754711741302421455472245609222928910162596537691619325328101552047372598696659988801165423518431159050174646546176372721852861485220212522348531700567072001231295249036485928159416717323708932549451550899064070685131324972125125913805861190937267904948867254543723761656242964578554937463832346354464176140917314933743918457556239339293865583349321140457221403547252219568606116481833192332425350962315559021212329398552167604428510938167628881756146784503758687361510598314545148560993403416908876790537038082605846978271553106638870302457680939717938046489443709108783376089349882690188550808097321599111150889059869783449126973592089348815431516577466447608748203606589094047315896098809947828999892772156160021617317469572704636746791361176900986161375952972978533502005552511031147958997660613061808146913699146633949230118164242955208876357484379513926889992511226071814550708888789424312902294304693192059451064989621530063824840157298719704678196725248308969503273252231301632191499542859262249594440748248183893323925198902755289833085396424291226092078517626747218387870931674360708840669360364472112913129388161618974239266872621137650686073691818860253976262500950828875153553846060326412171369286629391359055376086622709759928630477741811605617729524383972737298375022066937084347206444251722712974379606265282645708935597484680252872206643951222986552932428518316737244921396007058534813801022945088431215524522331480261822780742515727813017102749793189417232674220929598247711785777477312883371130355566223462694768764840598690315255097102181382584240613172766561430723938523754282455599896611867641528823059324683564604248141001944394886170759797332316785063134176277500007723867989160071997477407197975001682715616323617322885694853918432909709836144828039433353340224486524713917027263911236643559843363057384146072170986831906305535878893185155228594896624091586557877776242570645270024079991620076812113216642934626675029238813405354341322037022569974036619348684074904701108798202614788400536854006912882872911275479413702044131915416982357498498734633810492398513723535941848489708636337959656116248310608197224945616314811144096546417874248468486201910428191300726344712194705353962896689334917196168016865854581147054683648640492365062464342253262308212348184442646293505488907209953484292288807548829941983914249097266195261145507131747037735757761948964337253753806199707196089198767332311687842515135020762406288870463820498150743923524779950053788623855974866407752850263654753126165650386317567422321779217261442674249365148379987395808646517547871225341159664353467600160957745238720200985230805595377958973375605492926436163999311027009583409831397368506092974093578001089247252902203255165819223809758475044047264239740189503171520928360969667020703847781345841608240649738896978296138658748844670796326377757016172509015203994692968371435788035377271031022628603093777594329424521342046267308715375734524299798751674974106689169512975769116124776313919123328606695554448453288377980827365583410115089745916918796217814426298006119935687540459360608670652862662148618814877621091151991783410480194204237486402078540464592701675322273921011598928156424150918743727910656473239847870954160229547332265554932175050915172514410351986487331420010254109932364382336828557388612299820833107326797919090788737824373743238532132191861377389089915261025562094041412111106158726513014704387747578198416850829749120127297037825033311546834230738820225542151890492206267403453723488709819709199449833429636271471138912645482162758816372859448890780264281976755546113615730856739513443764250709959750172354265315896525285031639267158952865441630050459547042953742570722952883772865095754604229115119793762198824153750302282429096891194528299668681704146265251023306680572642643715042390305558080543956922319826191087035821652883582452732062914137522483439363720828507970274372718202969535081868019209280641308502407081566609544511058479352943309723349223451177048852186205596454014079541290344382235393549655945971159794093921846312857243801895184017027328836039251945319358554837722009040372991617301155701816072487457228739068480762176927903197170214831814946902926613394762236742923174343426156759376449860625988517412573303088004625580336561315158716915053328652275051822650153997875856537729992793339784568170723861153453289488634456231232390934789515378742940987691077099646473469258037495891326765383608153265646291105226414195906500567863433472879456563231700801507040226691379056722318405952668400210608801777844430789755040079804672544165861607985632168689323975677387526273045117008473662324069569751273378365541603072771470298243345910827339927758118092631417629038791044409007483505367853388419135528662142485586663646437863188018799717074833563847700196158601834567364705499845075682822897521114132156541544587084835955512341095695834471039123005350363795842846248361942854882542711661295293845977537811789598903573239711045077449582865920951434306835403006081751980517654367894061757393507464885339466918311143107681294333775149344018657731865836184672175085603970029398450920107756432678993422103673813364497923786034827479611649713001510312046375828600069373631320648221489863766317259157484120405113957225791932133841215220990827007293542565059599876630821837301378969425670911342753455569398212073804864169275527603644795508092203541088960275386897883643181260012584309053816910708926003199153546222907251292179413768179316740695322974020585116026197415060840372937409616945119667767115940634149646577227946210071075110035083421668322141746149070547515741879197304045570937842313959581148067339667645192342960947410935430203107626285238631653771865636062578898601437856540444292610673471443232954127380863761271010326846708059314904326563418035583345132163484984067154221383339971478069318353118523643605626429993599909012060727155582546110168161344665779211796676845094759577124154844971078968309127947890087457416483485700107117649683501521639333316397345578649913176818295910915606079292868755824145460886933871033667274592593174954615773334186817628103155624627023986183333636467754892406433960616348405454959582786582468030394916030679815092821733261556270050014687373095594372300178427384112154330101509008175294189683292598574733160928809062837327968027451185017056966015864131784656687855367990983831688908125097646026243367976027596632581343608259351159953903556305202154641582100277431335338183287496642559136825877379257340772978107606396849401445154821741844521053734252139742395219383504005353057907154518702126253047516101145239195652994021045712028850709166031015381155090875738370962403562092845696352867590650907131369752276336838998791309721516722532129046471847909308478745211014392513310212967696469644704195483582126861295729924789475223472633621444596377339223302627725784793625300256233689358461331745258121553372267426367282477589160524900531671296350109225530697814566136811272291885134508279809998936572929540903105227010599449171146979995711003562734440819711174260222417022091878971570231935951033504853600541287052669080005633520585552180544075420370717586681777347725413540145271467463655303413860794466202740883131165687142542128361030206878542218369334678519263902538505487037920065071901597119962626910555037412856293552607426261577795504584304761124334444334035164976764574602265962251386381834768355778265170500076224545032151864720198040541383542817109948713027062308357300505337803840453316750491481987326490377129610417299183114570658705106938658580700741062108705529401753349823455514363655619500676885797220644476602807337655184132880776615136423619352842349230933842752324064929478982997371023366314177561279442048111952518880654826038220747257376567113799486673020880374563667174165919109532021983071897178781604435763538891195120248317377680031059544808093720810292090055172012197016585855392527944663284168769919204312503401081672155560974795534157727516575336510368471415610534539556435302339271976064473253522954951407290067745028188776239426683914482880496506810421484779835353454159906118440566032736800917733640231843360651546964515616949178672347240554378602144004005255552878077627562679450049692743600702816147069689018317001968147768629233944983864534553655670920992454657024579225423695346269355118266001411544376988614245106631243651419812265148402619364358080921109675032746731706515873128713680810232269056653459101619470775232281629554177482814251031548937486503522430704477042779214351210168364510367121847374080828177869376695700145835077782964660894522035948361570274403088466061384969403498478903223240505676464818477529655359784201759001854299834349915680792027580955108331887848318493985526240055793238932780585672984475816690579223731228532860356806633216957000735678194456623499486613987353248883512101914223454771803725547520452713707808869508126104855920378573709855675133047202425259771813694358834827773472181617583053063863803659120759442293594154418484873018239228480846704766995557077213961158857425596080031394643795722437484954553347482291191467709953839517400754603575375385217390353014487567729708215674120279324995871868755348174339754756256576531750833949759079077653131342054671949955644654669058652537695058547692791508235491520558925393660883341180948346714864905279635314603942903337197412195375515592260856022385254411136839874528956694815362530680642045681531358223953021235209174898283002983881478936925793849678693516753500179859665445912803663594339088063106130016518137260170384125239281514042741803426274295331129120364624399185140631859568579601731159936203544233623226202781864920108727399882196111191739643988591081113398667477767141394779812439490349466857892472917351109227751486699611219529085231121590781284215249575793611498705073585063165754267164071345653306064827975156471002999234436113234917442838814360571983091022534378225953055901803287076778269347180162968082760949414423833755622504666717915048044843890337159165631286834239227670187486474692286210848225047209561584602862517748358347106869461875612464117501840949101966525098666587433514846118490164435041843358138273407487982508932190983764593850750122476106502103601492700880912703274357847208738391584534182211360624941370434219863182136562644825481611915231581946368863812217575657197378064434623732542408036426018828252032770532642516099843706235526578026241562019957058287846522043414619879131300437126050467194986106226028819213664733730236079176062056972742247839542402308393400535327524499483553975674858011914605413209693658317320882851592802824935134391530599507977332135996140005160677079633247939920712385452628854480297189473426938798946647984423874439753367663126257476906118658169493863111217542545911285221858687984684493223655941133355608124125702829791132116882828012035490581955154835370749441503605796346245258806445736655051358541969814389689064615158773346170257255967859710584157643595134579999432990291395856899069133592950391499650565945876371649672770509246093808195117083612301909690417186258269093380052689440821628763944633308956878978616691415858769836161013873236476099584312424873177408341270875332745769331148108384428822722276057845317299657659695329871255804575026014679140242718498739848824427302801041137099265698367689592374642708353385923504898293159619605722316169813366130735630996288610773464271748419049252251885074277936228897918221280048447175570434976686010788620227302431422119563682037651150926373406384542315682233783244250501887898649371379353138373431552392057527410358831535422056685238431933779726926426935316436983114617755475190297620792199172581642058671477950297110297357385038637073064509461218783782079913235289789875868380895928646756721625796399959789623480585636196538972266151568177024049963635531799146586517751617244089311321547319721719251173576173990137469853210153225238238331841263602764260428796033636096014758359898924840425044119341809404703237200484977652876492398040106591363360246338721603519452303072732086168116048509241244553981430625982283627848879809216817659995946031201061485799180821219601118169889720788236240560418489603536557928008988628461044416626188955303644405078793358491823198765743549754224328707382396131312746185930651520774137495643193575037366057871697987764880054792189962909356937797037521231358917372830721834550232231342220980686158831944366403307071409114120791479387260980599737753965408638555577498103009701151837850656645631835805935686853629600776612375394260059801274397957270381725696286793740479564134260237643331092319360640915087817564887974858710111860797527509761170734188323252869257131204880376958420698707900428567886555462279782334819740345904190860078733094448976780312588764043013446555720042922660899381988440781579335002036398657828385769636589597486952212488595781648869298493677044409002739330823334219644530508719126898081994993177048160745410114772852859869724219844864098649675507012609413839405060430682108924096030684708900266210350432861540858442743461633307555197071915296127139826821274650974759586346512172066692066306434584390958858776093384848057854322537160244248070876644313332453190828809162226443312271731672243085235133609099030182184568535998226870676789270201277297672139475496759059576140990105515520512038773515901766002005540686741409607241752928817862730218835404239785090113017519476692933592319101791094087244897125532870995297590315996839896250848797008941094239558966587673149200389372079900566867924979633944206289444398878849468662157196966673262769101431075927047663159630444002578070203611402062997596121848877949512935772892277032421650275982634884498847304580905285746354103331064457784481048252389832589142888839453448081619592102068162769856331485184646464136443598230978805065018152751209162699540198889814811922816174127258960117366218808577615531796482951640958653680812350548790121526971585537825637049991595862975794009539945782528898537515041519844609894714760322733190367061434305723623410209310812371437244508604273054678473450758551210684051905671765327334272349360404205975235893474275075734170389618488255591259365682928969125373626384008632519330957123804114918758673814374209201851575049969490837719350470933602190107578127948038617658293799080052495681893986798531608826556417767554048793771810699414601635348219982577857625647939626229961650845256564309562252649690711238767150425603668628317459040291989045013149006577555982694938091455487244395872284366059670563027026797323112513900085240557491530931449929373046098118676774384239592243257712989933369956440673017939807976457521540136946939319425885246458614850840607367212319620072418979896377391277557093686371906686412943062701840082584318409697320575332609671903005973567125813209098382127246667717422103762127631756307911093514844533799853911740923782594595238729561476388018691542144584249003516643337550169113660393564951402463119098126259158929767011620016202374648006022405637905297204998438122719076579119627842111857721350185429502354100736040351422370866015164739165375583376517863038012871253643042793246456154994226559531003122066765355558259238221388095489824443642094084406684156210084669112391509454389558364927000231828016770955143890815693896651936676136179329091006592954626855290881609197052656343704797228858816424515030081332637065041663840811622187450615267496167991820067820845228442686857130974476812979279646231472537075587385169821102964163812002183238132330523909088815376180938867701397456582867008843249436927684773077612001461196965507353980949484944957408828159611614391162498707056673881720818190981585152294252518908039873485554778917994479713593587683620533898683497068532733265296325992597856497455521149272240286182727726034433772798662869599336133186537059474068231208870366981013052693222715150038926427207000080785938893468156248518598249599140114543942329277958606438412215046951419569770125426993821888185486002659428891745254837530751763488333586555616120454071470836718669850526420958840786382603899322075040554594269751683127075430356534578130217796841038530048943017781821565286197826601682908934694243503768436592653951750203913455284363017033180611656821937655581965157555453346331750688106121116508756515390153772637113483925577897399775891086919226535754286590978164269588486163437023651228682203593106180048197090528866246398038637147182389389688382100610437924094796270200829909421126746191266787580647685194811526420870078822826945595201782148030954969994543206219066765702891918152996117121598287304516034324381747829703476963090626846359868129134041212266820973309405398676672893713596280221217764911787228221106114172792074227531662440764700869348122634803551253461756993215266731821134673016898752455770275338319247894925232089397869622416651563163773028195434361835324408558100435213969333700152351265096085779302765779379958397160530378017012976645995425760012358070120652890773549828738422335724122930690375148510960663919860288990590281694982470192803182749977339455362878999827031690860513125480149341135336624952066874699876266527283559489804682197748606604866091238859545327257607957838781848230362700469103848323580721473363482418681689104541990283432065605607342674977096848019055827048268639108584273703233547180694284292376933167668328263673229371319182834837318455607754814435643134837815470774077882398393152024164305961423929923593723060643373140964012177123959928683660639053791523412784352825586399147959442389507952812481034364381262289863452320129523405383675802801154926805818209247534314466660332014629941398710037474291086256751163905348038316154222325262533042149196786060337554853974465285011857612636439611704463705300139466890277685429656619183386499857947157805171891288255900597003570192101858362181689570233938852763639217647277137582753321633763872626937461635219946488277569872983026581083826272162460321285558598547188103286791705038519537643757375590776523465826454044055107945931264919731273803619408667657728424740640283954763012237954102965969637748576635358509979388422692918533924562895002349822475841094983831186213456739304090514190810811340622984057554171956677850291937631342538633507225045022927090180208510639171069068010847843094051522433345061057305595341599174186016439095644478593355260697806115720525752501501846286020860821469906600497048949101356699408851403435604031318376583657077836223907043987670284937696368495051443908012001042353296224986499682332399912993384713994473163416501609839314644549436202349736645009711746872238343385890656764670538779720871237410416611921047951059391981266042144887525309588199002205329769937870855002823709642496603115535684411797643373597477114909856903091585478586980821870452028062153296932627256084038560998686764514181414494438763996458537711675308538611279932769337496116794396734244629546677441903354710539194175155294326177434138142619378298141835165851883887950370367960825228378355943330723759283827135687665719886362468739228634468025515984887595845004333464238756663720824909021657838348860700338296744244436242525161931233182989031140236652925214459485671246981199981811409160456375438988247757980017610869079762220306917558168823364215239385127839572157624095194651778314187592657394570592001568278331855221241320449197642660647507812364797937531830123437461352430178306060682389065303976501050162623019619089544561795557688130860319636663046698645026283202289320390109052106587450413656252564341979382693794881876331034278253121860990538288459547150427882921032415483615548206756120127732001784180042193289965967010648059818488955854483186644761041266400339259851785576535601397676733821029289015997978893624651654122190195160330500029408643010117173632112369403879936644958820852352655641569385027510241823895507824853211545125643729104125372229771708317527109542219551432649280403115218372349802654099564098987437964881587199678672093751921671678188211027248873216245885319097769068183555498116527387467560962350781633239857654832302989599877102782388056306558068226988930890241873065546497936061818493314294717108207501038806970689631336119801447200872343265866409645751617196044105035325524544198334887963166235994892145625346650026232753048290186497203955779910000533581938652668716779963662691623882246904888725381397549924013745800507573014508199330115812727421963123290902293878453209642026771823243087126958841080719492761550633071812363608581614398197116269951304555885351352860987484561282318369574581262653372988863194259326490124845972686664805917227238816794452853578636786090037824308495976586782089641543368761305721302192933201553251818301641178979035090239726275279907100284946626311701285733885409012395773625792768477021051089420472516058765738161740133353873908825242026703114545209722022606361271643755009818154428210923401609996226541121535734621243891744598479130966268553901017047287151148188029333994773158405571380841002856139759863082223283192380826202699957954195547870445698416785984854460777666268731041980278881064440821191053992072522422894690007296966215263203442219643531172187838572935781299820723978300812164233025854022975457172452550275187345514597302544309413971496891117053804875744956755485934200566202953436486416559116146054125878989655222099125030686947556752559528332176744829097402202326214179094313990349625789388289968863142880842449538204875995451150296052100578264719369393733635467197414543766255682131130845793913292018967987564538890000620157122984596738788359807673072583898152150389734897498170970760450836225906426902178748071045089396236470326946856121525088685140913132291276896488593420196483176585777480641862879985016884391104577404931847755395937663394067958279503134088616196515102657424203640980311041215460865364576549363610463942196687959672018203291127119222481592062608999642101122131016639822414117331998278766557687428038725197771084797650720784870273119786639868794724154266175407892169918223867004313658177389930327563286581967047877611928896079362989959569596887865891823618460615714243622451140763242540743533357614815914763070082251401786131358863932271251514491260160172926830923783037983968887298477633519041215393510761357725671479962727745655622363737492203744794551783192034872933440093161167390970854530169566334483377897822681565539825195879794490936197420792196752895967420450912142704883090132941292548970060037757764027883985356269810240782421331264161403661685108786509989423481025083240627973739393278496635207726418925245866425865685679065952775910874374069468692021337294653408469988711826790343970770206229837680171705887410287887761500921414386669440756251323675986307179437458358619778266340605751003627613614150259804774132637491280658335724643303853660180062755751224513053553249758883805237930841148035332246003940702723248518297814550276797574343677816935470850102729477305023374540010588395693510911324647201776041233419378915458872237997284851058791165674364934671217072223298872850128638890192449678676836900726116040067393670848305089620682099288658564387255712659402194518380326075047859152060125766965033033168303321963487943203983103171627353787222371339418625290549882324673734673446443288007054730013281903929754724414628339526949673377275494584959163439751147776054183178217097237470455378500983804045335652655106057983401943152042479880501827786822521451063100740109868504476173743606117286320777980940448731434498146474771641975383043857250249290668143094044204975147029866437140256364353376531229005764701184655296963137121526888418818236471062540094759589699067810154208856311207904823078902404751698654547124436894617038507121330074725064318622847783774869485642387793964717988145438514711129955232432526301533765477473668489198554196246461634136832350305363658797465480366255726687453728662701224140285722553339478799260263475189580799017486451620023142881689182184323251052769401548794840820108318487316517244140897345491833431039599865423322438950461326339961458687307478280092147023095416081012176599720440157996588450835180450811262124841563887065112774111437448255871914606342673772517724701758632607421358069523221219201846933986089002480138167981607479354008091404568704149052880370270549724469236595670817930962010094786688843552538920407788066270967250180749402217516831579045289099111665513052802009432726382096730168245723786283988479926285761852644529902854333878880666444858007406181853033558761115864459109333395980487746541446758759153278123216750123664362684743953213286031293051776523882031149276089381393380706577910220344529248508915025480224748790070088625295218053155386945139318728018642221707931931481175793373207290503483687545611525405957582541577062686954059193514388761606649956044238897951900311484544068779730672559729226627907121500566948286986970514315631593214085266323512105501388165553065817971970978548829609654138861658143670425241230705279816583208880598259277647634946202314254424218003409865740752092419587344640339216671247104605410681661930354319766847574780073393397207947517916507783219816131635274356819382695363844006993633578902971084634841310518271242617951602842956969614465182064775312741425838913389384234328111334002589696910431683719951206733679106889130112204204544481070434288972983789883308007491892358992133118099349327937805405093920754670957752993906678701802000677672320935792687252883810970899414157742258997054986112347586783359966185965291807248624835750185847272208489566627962478041551475129098526068095345813786847967210190110756694878644890168147256423104945252250438421053868483716419256801854489759192405171368955797544884131816980965798983732847291179209735723872388339593030681538513861276114333410509223270726253468745371551056741043093346435303645449386453121180274498645533654979856790955301912858323620190496209795507672027680577378889401807476558738959207687467630621611514233692258038303146913973881018165857194393543185595136127201230339193818631884803542192614871630162070278405371405754966042325497883244373848497235153906598944604308399193405633911547065167082045084001678863930929667754395783364350073065854281262560604269491326791761020768920821746993662461947350907173823693604257331700969175823873223613251923683578526108789529869244463899856683634766913292720386391812772597012440917857918341686604450359978763883995361938437417783176227239951966306200594343937688564788940177471453474132319997264866024996133062894454413908241403712328927579386202650691563972061705326043006546129581867656992217845537990037624410819437485852133399785793925668703816959449375383578769833629959933164972274248646082682566889654022616020199827894062258491063319091750601454204766009151422477791791313586561222295843863354628105919290420976323762951820264710509806307941237039326615641525486171781393699822410006720341087202296806732811870523184430431934627808229318840087052110301454133147272330108016023093713958362238284291760689667191019697031616287703478178938686707063863247353896963757565884955207959587893069954085382316262951139279780624764622402865352145191891845915325889554462950527302526069696333849621803150242631904558500497415606263383586403681273771722782802454921211915338063362956379354446486241602223969508835163617019491428184724123974265945404269294040034728528289135613646384609492720601272620508569342774449202691055972791306576744669920131239224560255128518900338701444265910798781722495680558845056770065565648954968044834718162545225523292596510559037498322704288248993245770877216937832661602142318978796851109831496892400821330076851664382586754858302392001187947011436964689027327942089250996524684087769249589894150105926300287037663569626680266119739105613367656307880127431831391485251265811113457123143625295872933089092825065388764527216667465994140083819263508747904264173860676686900444875673916531416559385134358493581800941817456603046139344572871229192943235858836860525735337630255727374892191913896970660733218109521251174714953296410918209706520496189277166796211716586361804334187606020062746578532633594582024838788995565854097106463469940642551907053780575931632825192447352162898630815651726755302999722685595052301199116457241412895242343959405095458287904881189817753639637920898232949432313532732482004572330231165402925867956146493655878031955395677482274432771832995088287400764082218140221686490657731905248162693818572434641082712193026264751972055416879402052500203590693745089369978642723081264246415670431533858579706980806600937107704702188489195580602604934884752895833579988511482557675575809629344587785841985220065908904135549081049326741049015923773890880997094655913585785744900907111187422766020773284537477292611507238064957517659358432234322311984036887524050007445166579342400850833984665428380874150122504466210831374824769501102601391010749541966264378852471041852985163444071316374591361920830340186716121533931583256422113584977303156646680518455816789435676434478857985647265277421560153256642134127821168170393735848235749440499287712314207305370964514631759449471635044612367860242043857664379759687688889039348168093978828898899595642959757947026373753730830252866441016493927083159462760828754215535839883212199398525569092475415845282124156682811976885438170344405347344888119515226369825805216218101691491015077752689305733734584186321997756174146488321044490649190668566114135582878462961204840946506660857611268729130816241817030924440429537283883502000524316870142946348814476965456464502995419878466150860000508544073954480424071112136099443168065072876900445096740709340118353162637775487352614147116136674729995927177049354201741722433219469551357645881881159465544572091126976345770076341921667930279358567189250526588206433858387546309283051518392157262151410610406975568817172565053613469393719762352900394907092967510628845534444616810980742793697792426394877701625487871659342683731754025218939817468091882874423148996571445248074314980561953316136941215453373491030949260765452617488067774602117253719360209848354130897277378106552393100546143668797254073173916669308045135823236104724682759456568377772810729200441098994020939139396029944162238911501970785133707691425446965393161755004968361798972641082422320737397882340010472121395980757613503273700059981161148341634267496343962440071939534713357521743663876567078099973197953169530553942693939153454578572965332202355222480642625298753852877884211616321700133865379198958550309469808019122898217247846282972414629712420105383526730732236682669247094170929486859341015134249255356664121321894246435218670431050872526950283481335427059218481010445945555264000604651546843551798209677034096338817434524307870252481273930287614613795683532281150043320349314642028602895014783939364036482006343007349801829324909070207164210535648380941048991525272914478852482307458621372177446554562544719101073002166298232945558902575556932191413605580536162773232722041981193130972328391421301108071780947975850232221165940170683052845857129813297256502623222477065915591214638655255030661125938251936002840877487810804377839573154353264150018332228027210826999028754679488982742208342555528357735576874901712239835923089040964432371403759662736684019752043242368777933672977873239312379121186303516192569630295541979549838737105637335151453131803008448061817303699143213708175602205019976684546341035341514045107992918355924792663861658919734543909476494040654555197290726525632019908628320547333265406644883647881728938733174850361070256538855642157288151455142758238327749886839003501124714523039336833740215400594882125514859544772801439527020240999030878748598479064734570684918608667815768978440631376217322338478019091861901773788992056271361610633041628655420891456307932974774662007481765430849864252577223856979501317626411725963849927708670382212090207925913745174842937426150488441719916006005941214234867742415970996871028184680950701138790754789530476311965104179639658636333443602474341144096652711764110449649051345924545156214131330576032427766607590639033077338411276118199041299701264113623837082196478796463183000547381901811887534104817439217275185914294924748118525264324467278484210027653351897786211247014592411273287188260618824344934103861749828247354037971931843886719336580648268320908742390402744952869114279093726254990963894439173715429440000026119042183947895887941171221960639968869312488661322186220767783661992670125336272819822902087624797146881594038203196614142144961354954302799290719025973040306036635322910734364074949552593733371897325618253973820391928950791964717149816929291193203632589453501109183674344758790409437191424968191673920834291197342877697644635085843833642557205098603890203724964050107170963981448139584025910290467579342087707394275111230322422774468460344171450947268866846409780823875068406882942256168593030942342045554664397934821752005636769238011240743980089063751735253940646399614038623215718669343641575858450168868440085111859766429997428460132486892509243820219708871566533743428552543922249780690105516393959336192699838241077845444160723362233016430309338007689495943077281577235864727146352933865111053721315214152544332990554898527033859729688267986101508681090034051235851148429794178809260465507145078707326481919179627642839630513329632520679125800351973845225550778648956893140868332444989144007979887492844275653595692035537501609072730144062973303391366499727420927084799009520938175342961994442511878444045922690559513958051388733674270856691204669187912949667350370829651735884378519046784919514713997097335534483257767534218095819829275620567838037779657955151110024002082555643080249725816477179130480239993982417978107368653393519801069141741370951229224891612672197675862073366225332340156433163632980654399314230395138944443126413056214268662905575219766585065824349884804815260833552014305545867242475757244357252977781515137656468984805578137336822564502121253610600638945151020110419572528825782283332172645048916976677902579295432561478643754156423138412054014175935171848221425525252053190955862687661548043372741535586308063276571397060841714068019333108931928714990940396684360567738466343844237037339626614238408999931525229377973332643727559190166378310156490907199228203299564085863456358121389845280099978932279799632539802046723002544512806268427803329427613412996758441571803610422838874078987693165185652687530902581303213356658559539680415958355820702880412421936433240817483094477914499455565770561480518169761869872497432003301067830572878232712755259707312733804501286342611409584754052758579467397598134449732332004477000469226937065731770755769453672506408002318727810917133652940241805654148464379066888088007738943838674957441203120091438999125510169817297535977868974216234840564949854377306757376223462885474985724490795795574381222329638478333295054573897263397644772911798498270340732739675494512560401626497276154294840780447980377441336695980798712592430047902370943563299422475155217528978794334945005306204227555628980860777252310824617626104032087912846001938841145120209165473958164280238060846307957224407079725764024869057648067965573971219896211611783733356616487984573264709348319639272981133296296219046269213516215259066280889491822514756821892605263061098089225430419843170026412608442894111734552164415452248799091247109259903072866753095510561784158536653356477109832961581963283386954974392469673261456113600985692745283869604852469279052357878861473348739452236613333933794610334325454989450455388184788895604732863390189552964836197917917480660476869879594874784729409920248168849192967189670380542129375341442998540224385996085525316869856192231959725234501977552142129559616957774152942021789056279478681314514421898898623385055752105756116025216524449317485593362393656882982136890831747211242645952754293991525394932584034905172316302965386150785089035727228707541292217162302891759403006975969278084957401364849249612308917732024572846883565165573593306174238850619649466733507217957595120703271248745467601358942411992530463455322572771532021233329188894841440421644230748525457288141705504199932647415764861184107900507357845397735305107045453437752562548152147051567647541451527003663872139536376009106820194837187659971336730826697078828165144758977726910894157623361605736217737477506315073060695673579148596735999433266793545517473442136794824559800727452804110285315541282217142683630774778862715117484199528934006146105840389161300042720632341650990815024340553705065976932446833026627946098147514151192740006826508879095471974282267015160098678063562461047587312737544453937355956683695420479431394465103097092584921785143385782528314235837705457343108124494849274906299708593106882541961117865313403854838016941226349773222061357850380381264626657351882211538059401806663086715112650911282086753141945173793083291152572079174463039333128179113801544590105760490342407992067534119552178940120326465838004662381312404074834874116220383452667030990002430448031676944946149993642266304646887118827719850350436570965481899902366252253810255200180303186432160660077365011160657605861715365085847020903342209371706177016908521839715305854317675391883381968693945167613706842497761282279438103676559877729748869708662580305162722952508303006707843654136223947090582098259581577297958015723495600401468569656538505691051883485428798340991657274296914624561814347290538592963949651225322115274170625693036868236204289781670134305084546144672632932941775568872068989722365977838032559146606197404165332704352642893392240188180943588952064840782277488355267928073983064138783389469795451504375161594028598462630673381000823593606544350068497672781337736713414685028680224877840610690402532479740316278997729472917631948159236236931969473345441619168761150316700310648671730979970771875293790372613673173403900842175494621022909495508316034408927815078556331874839054567643107764254101632601955200260185666705480896919481727990887306130325041692679824656343757395966779105946111044577905372876073945013966596132486671364072781863406249691433270767312053033391576758269820670485853693768005540175212719633417714860756453906881646885160341404124447048470201153482750377563297465272638595182248669135784276762168303760461666029429561546686450901864964623161762324837103335305469943981019963759124191416802548078456515860552214842222279612651111961465817180644524304735418007400014593474401135174518927360375636064997131935497905153634349564976892548317264237734534857009788984075939881089614447847904856981737650296090012061562882339077160603659088006976112183473021360305962380527337616100841561700988444812944901499615210376404478087938637881672350499006639530611039503068014095964257194158468105268108345499957563804537740302557854294357652002672962478256926847289193512128469155141795637926868376712115678947224182784746028551614004662289292718571921137061700495114271919399998246504233781625833934095935519476756745851321835581853294254846508478467175094756602611886395675397292905280412770823621518288661717906413722309547876331418984142309054840347752355174936083189684009444325316177915712383075782647925609103928456237182458193876033383948286853756387590140978840055553090671890437412614511381170025976214644579676200013427572025174301238764537293012934965487577137264496726013273249005728154137777638412472661982950369844595364349182887521985481838536672140423475149739929601052026024043498767037883316357603902147364038350450209781192745270273355896986059200939716670639265884976126486506793310045411731903628583980694758001907511183315734036329146761340289469306414240218230407419291227378953501643029034621624119207123710894676731520129482589986748983383353901352373809368307056360184683302019453634019951187182824995919397543491577876468103087063336710724516408445803294294553272966990149198815822174258575840828913257342912967887849089850142433356412822308279423095731846072089810620305221134520769363801439557080365173304086620185843544183286683739487175222560648455371684854161210131994093345987176368863479955169900234680177698620332172379158636759497559208409402786282811025189302436876997542754252475726852867127606463659809005181404535436794449135173354757646560957154519163735785039816517786916606929685607201329600955758155357001598528370668430408013919036761457322681290644111571661757298015923681679316872122267428780619690025401916360368823265722930829640090649317663540847328799387440195681261134378443101916079738864207259759369868783187245495465302449544184079849634628995605389739079579774285606881456548476036591163146062714861117480515579113594281965423340563914258899752413420000773726077767153325913314014321619281476892853533128172354273892823763904183796971141067838690948468960118818908332912073750009363365131350845420252399654432787327635814144677398512752054274584568105316450620049799838674145702461093987051129965052025656101403755867862939314893908705310328683460313242246776507785994930888053441678205425919233491949556932474849644899552531130806141412103662838135070090389897769947638447116194516059704714227328783750928943329145114140818783109404351887839226796670830148940171111350049763306857765791942369639344040969282215269966437044728795117812286085355168231013431033115856458070068413697963201637721904434156274099768786339651364006638176799030834100427349072890397981956741679767232625814453782283023790017019997863523621656136345286607358054356305085396464619076374029044887991448154405446867984306489232575575972223407998568321172382660378365649921655447823239687812772393174753091645595030798106749072251033304509798196332377197754862687785847164618424918597487916685809517296538141719808837846488033140295190119193945748502587553232819310903669905325549697321518377219456051739145161438064897729664837738789319727945781811301049055969739324234531059669403251297856145896303874538213999539598139676059158755307258714953237459588259780291410499165145217734488142986562738719977280552668748070205208613029342594399682843137491567366197846357985299692707028837833614586749450765266716636769908635460021551883359495756500821079147896831959881264056444568492488762493353869004395075647017204515770084499268545421917957757513602850803971149281024530497546409042487320406915400151651791655608975679403562738113085333665094347073573061204917493980040413690957071808099781722075194137521659066553052757608024477211821117718249209671833858051354983013617197025971075372137997208353124808342980142203794862927282205814008082707164793163337762820289934923506893657997045277143913885859955837721784301323233620236211434807755772730069595246235701174647953651110962810225128529137056061599291131391938552970482495434079103166848934489984879007521691123041000240048852695069930811433753712718013797621431463741225190814313125138094455560424741996816457877925809727635157848899153935148767664432961349355904841789051144216100503664870743337788478770317720815253508191872759894056176168411900219564996673904560796509450956806167667330493971103871018015723365927148784634906535638467200054669249023929228961839501042827201267084240009349664726599794560985277235886092814213793227031554045685744897199368084690655499341275448973098820079511807149871584589957376775667621836303520956630350264702644464921488789713611320130948977816081112542190768442016428078886604788352065498236976730527543671780262670124800425886808477630895400970485682998540215951501410589127309719821726219011839463730118660381628197220285088310025677482909583899003561548034876128224810339344180982159405309866374511825031439836099095682582097415592554320501761820925093369418284351637319311548930336116060227367567511354194823756954403495508607564356329536850124610994108473534291606835426477605257017817337966851242290920193955952972013185242958597520590869013393798910814217200185324478581177940144990384981628339036448542206495995440213041739721556782550424155329135394255129625600134523313400956421017940115490392036270331531150087376811883061981568642857749032519708369488665876036528679036218775581788909765354617106200003779260719221339935231106617210716306163757061441085937344038216842812687872560005373872524752000905359435023816142441308217104275156360826742147057002722900386605814429914467685323295967781629287207501425323453755918874623374412117773998558570193898406541819366943327018789693045943711423938731261109853943639494501567427707447631581017925694172625974967203360610926107224322324868912987361243506246199944881641982366518027087076838040485392468765212429680343565790545609129212435562292795609529505621605535652913925029272532578737201179810916174155216800014846764001908194416677598299246862976923970874243413007988448857196511395248858456559558118441323996436776159982881685645366105953656160184153640853218186567613653937548073068357802385476056437229624035283996312010939192589462880942953189624790553920721510474286131389960145834654602622133766904953040471691772925339492749205961603849141536157800441948820552942407527489429393950764807315987221628911784473307239291820970151144008303207706449282289044555271990230150563493730604023603011662072766447742692376154343765895085783674538023129925216500902838149830169024830977928886487445616691835227215257759855689707065210892808172548273289601433136003554190839860629896897225436740027847749099219140198884185406337911216183562799913461977737329720821246527111551881581471838216414259668172439868795198581122193916606461766473875217298805775729703975655157570209780672577473508124893662530511980321557848480468276902076361864340445187669874834015639763479133278912340546865861278823853319115962088157546273463540196672335124362899261036551713450042500544821502468490341802905269778493472227424608487254317089032410772228317683167479708980418523956025111261328348674122555087329124942076994531118399230202266313637867099390224702977920163828097694311093166417837465555347277151951357965146117396906662080946456227842118166458342973887257815363596255822721153106063948747949399777309524732112333310791032936708414037343284868609075205838809080703512966399519777760630301949292459812504586939604861387434480862407388151688979132496044705381811260630186554720163287159565384108327505634790589502872975824803263047938036357934051172672428352499207347722896727199476759012342098292171792331356763786505626196278644009926365099803333984529743228806457717599302188490173516930138470859350134161182516961824885725637320706620928929934137740879283279133154384218715227921641121019126184291881021026204238544491674580671555431802231177973378783275163192031810486840080914540062864177436666168118587158567810093753336275193324788874441682643345368523413604287740594919260806680854875610366636751941918252617044275077263324449219376525563661409314149669351132083479824285893184049243398616954604639678005490841217919360037217154260077416414102628144637807612443891840985624228966403964925582482851720299265837929055032577329843153698938628579266541903218001057118297424591126312909311116640783937316512006112247478456883981893512223456230820728641973021135437408155499030334020802863041669232810941085798606474773529458623351188879973977695046001268251916129575256655595981831149572292561357404926083499715761223275406989165050176909148849229044989513291774443214553402414942359298166441646213531464906695814647154921572660056254358464642944143461939943614951118523966725855997944840913214903510876626397029489224562243269354996194178285264110420812549401580908639110995046568320232749709766458255762533387205971478427073238150939256217451480508166263445058536316817157879823479258815676291733429681134282717276177858827387742768976922316712207107342582752510195530755459646073250586708289362523087688095644058377183898025892205931592081924185652354765513333560100072135391223502098564281045916217040651650512577142908077792963020715308117173648374067094806170386667822067830841039705018553755364446841812162362726733175478567022508312201776624878560639461758841485547157005199031282404799322905043006155593414231623008893780618522075378060203145169837884989718949628015804130585833792479935153325557734057414929839008947731760341943775536192051859854647496819332202109423349338410598797277401964192804551556748407184615795712156300369404836023916415130575749526107750346279137434148046628306441492744303373127268921118742937223502594460826527518630134898051476530564242919883626225095703697175538942271679354235184363402471364274536040361729224499301979609945988410029062687545829956431723682923374454095446893220658876827446989833676212202660424232503662861541050931993794658159114406936304668007020570652192404377735465238690040718781458119174427265474529580121652234349665640649753622461501144147213428108242415746643339567576534485132299588830798782342253892599565442930591412086379965746756913838797694795184260040968825347087297526180370958064246449414733479830867779562336091805615074434797505321853057900778562077833175128807947708009757095491982765544208347446580207829522364479293770789091678244323324375202050589452306743605243590293217382838019744665929374350807067530028303125937695117496846512019232373344774438074416254798585749053524826922715141596078324755464809049565006904931720313714828966347944784913413709584048828461951421442567865663690613338060802226542834165455588284979127059715492369027267422834664553297082202799334138420825774806514174722222035402733984524181942757262053983525589625852568967057330834195073500400873354921625699029076047181468226253904444360101551366451978828449704761885150839354774706876798026197483061466610457532492269356504796112332620003603271258775126564293227950545269321317768209602185614834537064356063257983326658486048514223136050574398480946853096290115568047207685484491596054123991024516253575072233344577811301672086070815660211996296528134838410233012446326141235769085863884185524430590537109655071581994656000177616208856940436316464979244638324589595501155016461155187124046885010050943796844670035391238566053899059540352923737415020794013694317831800207570986981168804531846742563967697148936839610508432396734353020815801499512761182607289446448815625317236713133624767865827823514624688853732850782640624927941281817078598354409515866241788682358163756179010102907916452290150933353246825749893555568859301381973803405086244963356099563809591538955019818702813957872639714242365118684857899018644140868162215401346041687858412683656609371424852910173883943090030019162038546516501173095594912225041598782094888982996589350594319272646453842124507588412520302974607096893901803219175717076970640461134393118776062130599798265403206351579968862670578999115312832860946978524106220156740857095270147712060489091035591026014354556132204654866783574424314718455058326881548706513721930434622421275330880237166331075701813172325576141533982296126898742459006526478314563997218504646526024373810219006236694823832173033262862050217374948074971647181596385301383877994371893184640990964617894520906527212164943347612684856681350033998959170652959018003766867385360985111693390184020777513048004289390304047729926410860689344982973772808664837706389831326691833452053261060736815903794062497509507508575737989591864829554673580358292040035197101407402667608148666756636333005980731198365255271927268618432349378986069897461998486655446103040485736570966046037519613896205269146690855506678444276202670706510233460677822649537849047149744328857614916939170545813513339751423384656936341211459202246467187223514824904659269186154313241564661780023357235838850762127675206204807285130142455677156263201104914319824781384971045643318316869147682064898638487709129295771108328186077106908745081742254546991873287966008089827692162066012386438901402403625801411937743796246428723274327891207976534340794056071709191111516096043536316958521719380141487007855028434920628702835988415992525495419103069659749256724365978399242892753776674647299600818069674630630660291630965521504210252749030015083036869787043840375646887509084657938215299855198176267246187662714431025522856346123932909019461915818720011170673267653515651985536222674230528091875989243867197500195357679764901100148796832457717938937956589025841636976456397831305312006570008182199243134338694874229869827803936654063965292924405174473739839170505511456715249347586688658171480648245473890724094487023260426195195814633046114104952618239739467901239238734782538618922028550617978295159241202071968218115226412383918682009843635562691225382005497953397378145972048979220617038061422274637456416072820456220457048988109670316482535119701131857424300254507111391593975521886658488221058391036970594893473501752128111542494837655458104799039159307889833810227214138998389975014074729798125658399995623549441355734831050414157937728971103365900162878336048641784655299042410146612216136462629943712302147693511360178891906417781426329895784104265116670551351700019449316464367431936478502865537815433872482452227330642791518879161275061201222625812168662837865738467460244769003531031073522170584096652649041465703829440299598323735997711144925609517060966733481465809247768206651469596167352189792945561710443434788269378785085946964508842335058004818835633428942822631480219359459820378447221794149298846725660698686723625384142214318370905778014182802280502580888740743032500307055671784094934054627742850449473139064618303253778088649868884155945733493884820189277222436549615035532999873987841562518035496974288040871059178330184392125573059054742924407416151605642675572976204097804126062593362227813981194249366580602691033745872873050763261731726137778874988133233331873021421260417340733367978501439625207811352398227918177795343234879094487536504074513841944919425082105659717289053347600716742569475149248661723529588719016457994295442016602807771059119452825404783330622748170969189917933803141476193666299186092056251005343549085862134658909130826495595301370069574497058703834427338309657301333836519092898656739878130108765677335458327005477577122530157021911590056778783289195697935117506289948410636118752889356213902281152812797429291396021560295773734278514194582975051633943008565283838102279646840483287772422291560595928598582789057554563540421702402942650625983678126035526923695935657921687182169261798192947691408028492907647231068263729949211790617748440528683658388819727665898781879972319375211030865743136925655752372853953293628528015170591448507930284084867186741619584275707664238229496180904771174353593717742791325402549142274247000273753682618351554228952210550309818566993374534780875194603283712029137540495676224175989436135222807332506459911280318520168080443240847319270151983575097421434571007653186136859838502578081338856107122066370338790250368825497512936514407073992003638022960097768521384569974397136424219360268639934860897157272403098257085709161804321328090355767588023421718729483518550612898877019432633819183776611343187644337859449379208086824045533038368356655726629568364356302640952187276913625006693610830742333039591197339283122410167354125952006186914825706313745869956645609801648640569453926393069656476091941811109547256961287368375280956200815404489038025810993839841230996703242872878479157833099742349573543675286446037157306865429401571941216607937603609489686063974101192646267969223704285592299636296667679951735668596391230448876233231294646453662790468262935888755526153051320361823300736703099327904711286103670979808482351560369791548296844317166137782081509883557908232922009248015364635808884638148531601601116215280755210456413588668167319648235255749944526140036718431087557632288375447566020059876257753035201649959607851202934950657883531682816351604500119582781138284821286003397313923796265947428839851569150556406123224397168032767704855228395928007481343798921282232371745005271819692003722415251486890049372806210354130061076034396919457889418254957040747510542006662536189573550643045192910202539621453788861049462951378070039938479024483488958017979789128884236095963514337567202057034041924352151826711928864596276578704134923786319251144470707116654403821825932967757973072031339782400769365737986096481725216533295090435439746040760329331580168427547770057791468282653900626828546740002898308447237826135673907648644514665601663999577283850267142628640472036278503885872363945627871845128676520656976479342664685015514063272610282536121202275248299504510314057412794681435958534292141426916428647926564159623525468516340872088568803487212420101002033325418424165827655085864265051809013256305303398215367440239169330472912341199662497218084957601669158383803718528699494407113336932738652449327004870686941086169386159492919964374906256927998815895646010220465258935416119111889960785371741323002867204819271371315337682595149575470880722707801758307867754482294129034149666166823326792283498159794446627474546475787670246037043519184946401557034111567645911777668130781332807010759010704401889598996823776269587707549083813758981933006993402806320503332282798199789445656869966141438746115419147847619451160581151908501932025032327848846123067379923817636791398678973023809145878408233484733670432920528341475479319275725648570930961253564765034952644221041609450563432150159932259921587284838346443247756138310644709674043046134749935877980004404042873132633184863708594859021406030521405157960361198297496450253943086476540417511699438361797999184307360217167810759876164604582880727001333290255849236422889247304964566653537667948901822550741268839266161286703494019586765106835275849391642297828277442263558881769843118099178517196712929222518538513461385380895941546282717728811855320283602875370306640959967729677484428951404981202817599233367226684849511163790184830777456868851885613920806878203905503031753652450113960764439962772199845769545945058005539008766756671993273957153004969963256535260286294096969755898836233978758169465058103769269757588875190374248433119864161608662255023669685220395002795785241150798241859108957751621889969199442494205909385316134360532067816035308101413759159853771386558497401043609289148193144527006176761471032444862500072595579773008813564053385013399765115905739540278061973519372629064981970348926288694481522784447941571774114237651942122517266324985993542488587209080379652771208754662773699121920017973804867925704755613398827714044412335163681815756273200928309031511757367244967434979075023670845476731409983664585500723321851775365865280097744999320700211200351959972056667452338017589830176622710742715779297997467087893925765372744996113352876148055339865931270875091451180630629745871837629775094431775061585023567169240678203815500886761650410115456915998143869429429409531159844034024996109480341822028803385338947930198349422371991554024745596632640007016060904204476489642058809160700892348502443006134321380488472408342456592953838307326265075500447838169717636382362322837612564459341174485051554580763030798388939473717074005034599947700648053333258836919855165344599609521751227041577537211983315994333317169813790302135746858493122077157234893187018882349722008742618889825484849274585354582957078712107303611942004278958610436351006799621537184217123395434366211925976216024871925356751246774017502855877494177060095924586768979055795593801641243785336413405323982533308027547774939437644544530116025605367014452178601693914424714722185714075458025168373540523718317958859286004596310410212060960522188258076487415490508210549065309085162255776508395335950384867528033894101461160800714563270070333145644123597292760184875428908292347814922971688745568481415092814987812235386115369310796126331176226868928577231982714248342184516018201326430934389501970003988141394544007447217354783669492269951580528735287619954308574731215881805274348809763749064035758093098851500738682343145759751295614560578047434896479001442720130617961371965745453877083390415912418322425055028376092986648306013627634558642459685714247770240448705613978068900279741257213641561122543877492135620519185699546684001504161937437938240863441387026691943507041324139778476767133486959387717295393796423576871788542448216198625880519133056520650441779666499978529234796310573173216424289874366086093943602684547292526884393847131675994731111338942061987094454187693569739806260765742241362759271134631294529394994819905497927874323428493706282699042849501087107716614246003925101206890201163102776672337422101758451836161359603239655615545631133438476338063096140946548241594460859473896194092797219006193397298711185439472570711008377988561935972153260671241424622893984328266527961143709727834484689195440222182243907913054014740660855087196459541289096749694214249291303759419150988849319449270146789488401829340543751221000184890908121204418702727794526349042664077447565246878613828916453658762537048021702048864788765689613303000928434892355324681156296071619369985893472547382680512937984210107134204794671151130923706057799581608357750335198271661776680408329696122048644430718301553548843275780689459236797540677016422545826474249054231931603873260046038539458200760681362318809893870747612882923445539449258196994728538673493652977421856050941398449148274518251561737970524724568838853747677146185049601533018824324139526616882101602710100750047282727394913861980988752018556208975900317403107000482617700416692116229361273080813996526128459412284468448167717036676490993276873806434288716575649508022558243536642615897775155016514279346368904428313728674659325712051540408981689919506508409377903148680422219834699152172642079591103424332681092206289922430361929241775832691360565224474497152321796967811593154275392807433970217987146138616657176030797252064721779731882415811784295512935921966903267898598448941571863921160555422100096948764964048527897648367773214279886316081589059394665910055583858670006423174477900880066574367282380166094409724141686776966143681094889141102397345012307810007044892917804462243074682970059561236818078491421429546648915794371750751349371523765239589577105746179059298424564219001624108094321338532145394580368206159763373682553184602341245525596115270519843667241401210765402173807956971836525742994054423354246822926162090498520575221429870509333778980184625255341527462850612654264842689419212980515003595843486035252352272818882776651721058082290636549346291699841579061566078302590996987997771734681570589777210312015535996234802333687091687499528504154041077947254868509349705578656251657296535353349178322270924625756632887183881543545222800026020411523513439298095476388810073246378913644556684198968088084980653690287952738107120205017985815656436586030771711665431770643046279914937213862490049186715377060237094186373263603212201970917404784455419298612923662238592508223349145626696548171951050221238261527325037394365614414244421785929929047316738203298088278291816701638747316878716917345197527655773655935388697448301733980932440942457442767825832892672937495573400462468282467112207001814865507021055170709594075236642322320749507644319597628909661389875684208850938905611059288190014842931261548028076717813817147149481151108911111626542729955204737205404775706484961895912185246561792403426361047602096735421080499639031308444708155904679189721735031359141678970744424578686517819333193263753923696199002070792784134644597215258865079046204216471589688336006018075784527165938427781449784941847861335084104925385121335305853326013673564561336737484486358393771842362178308989470535109986638832512213650594572248427286993088251906711197500880758566454879817676434503209777256241303071825511147818225014356900365823659433857163003922101079218998978415368234174536279839149302140754348859783552502718588197260661028089501722878844153297567858797182222556053720808887875956557791475799008322412956296646773604607715183900320192544233719761435473202496332701378273105154713262368737246940414027980572776832159043715917005389053044273193215697826984647717133891689666085900140180969955006282884799778656166612152898737777009253970591147781982769155081346663802385566598578588631050397608842659385477820972842013968046083744286037783867118588416660976442268370248465942381880115611632071235505561780842241196919132880103531846983772935731973623150181815876561854439338751384975607691238683638836676978022354853293872827512778057554899479266638166643108361913543023036993289753207731420734708844207853327637673578282759514368861154258538835737465519793751761561759867639910386853405958266245012190014433994876605467484792148814545635656225116767461953008401040934869048399807043849976103705547499855087146622271571137819880831066192809886819008124185948393919470930361025203162927136036834363316028450005965691862416735505239557549715289774312275579643096598989556467649659915041229306617185240404115254706320736292132619359592092991009836127722540272030020462269295273874149660657021788814393364664745591730664900932315455212707762926197856539065358660843031542574482847423016263368378103979746345093964791003322595322690587072755894792624239826292182447182980058272691812881249721612013070116664197162604456871046151912344708195513903432520986548349223403348186176418154182813060238572001320717435155959011944440025422993409707520305833340208227752822726678054170757141906643534124947785356646949203066694677425745264647574024013649364978739534702490700328824031328888593907702445844638796051191387338368065033420314213659241977182514398007244431896801544066310365248842328182309889985146074705368330773452456812213901461768529979502782249054408183866116532526659536174195756012736054811667651671200638590631051758147755798339742108647693617664333450392936764627717498556674601025047630996279839751094501093213534874942338066058254441453384733445830431559571912823484200901863212404191987806714529588349438580124161089147813405004789274945173022590023915059856951793114024217601284984792281123939812631461312880467960085827506363799216254309538037762971375201802805881624009132120842823960212371148010670927493710494345599634010786969596225743430201273181705795395634715435193924317815627192160773119314193101871278700001325594306480458484192266854342795094809486543108058936634448995491726811642501088284639454488135021432538630846989239310910738073725785077942985938748060068583356182536102081197797264801060823441750572212781181804153226455655309081178252486441709023284213229173141736430644718236342923415692875805971357541052209011110153988682002846548659178224347328599768961807139034805436050378874044419788528160106269230247210742973020646043673090119117751194705094847934811004469482632123296711057393701910449692287289334953134449319016171336157049404545313988328285663102705530429415524554265095660482349618010629634943302819191388044727461930929026693261648460511080518520096035182913218425943872848712392740877572548927395852798901866112527358552029421440858480540791444464009782838687345821794515819069522480997562887713793917668960536043749655026210827240329200870097175150559337012646870056656077727658863512286166135855341905687184715944875311633538394696502327227887809884951052746200211197320228967779013927703572303506435541317602683443187011603543074827727418776730775846275401076093590702473978249549432894782695262057774133922029316576550239578843394928832138246153107018087513783958415453690026484389683561665536903170863969556972312967754429070282290466633963007743259028273007492905417980885030498006815095053287976066973818350231667661596028093797876403494344609802477136145080670670545811369700602279471077299790055073356870734179571426597665045276158861957585343083815212226260321603944932001208847371102095513649953441290660659378631474219841485786375678738876170404604356910129803040155324185307808337761823876333009551746492655308976397222739037439053698775432229659804541397216423333693557041109845989520760055547882392232964985264488479762487654724592277554092500150140236202111522181388786954043991254464241981643882557128263997484747326381429177573273737485764510130327995803711085273159434376365370865735482166896485096888383979892070732000070142290605459839877438763894405100634730002185957382305518733675878435855509178399388455477729608091294675221762548412678733462255496164759627842046388020162573895118716159458799554798521443048711521981754008069296780978174886954843520081662541189247706793996449545150395634016377964911879777726573516593560443494277222755180819783179764920351245314401864410645701843323589754837182903343948787251422581585034376221530762463872885561113222489865022537053155819116070986805667599709638153496291569758915898006210845449929733544919101161261506305698053029022945607091666171216085267681218986217262267250676854118574457388194871902194138777988323230500958991511175590563202390495483977424077988825799901879801559283201904480401229038876050752132336551599752895553817660708997087750815421050959819736637525866450672210309232332515913282250250290777826584441774044249519545351546214606093058600262126178884470356808124230070266186984659722570154219595550229279125235721867290667435834825626533706891427169805496667582641397657554021103847793219006784324285816060238109467084791251064060412485954948064499203166558319627435220249168934607148268289386392101549687991043842616973807979972482929071807627385049605455143267450570583570032046125230462337388101449514849472120759866693235723859704416392940021193049451999789336657893863827480826029171776583851305980351194103992797488697613830389065738447656294905656544861444534204088849076216923046744135607949790813923707949433333016661815311019221206506242555364351158209375494596770557288771295883089378609258448025775372544001233085727311968348140472606496389776309809211898462063766255413308779536034514690345653403498968350207719895600285439237138745797439382472499135665272046139704125961974410821231056749939967539566966676982258145105088188597531343957584648934204911446757296968512021786125172357627809035132808533926380995894493614424002326855533949670551858283589126391904109116654366425592364959085852424872521899615935199109242290965846783631078454490004810640586334262487331332661285878683664097882335829571996171631106464721175888003132058663046388735030650320711286111905270925480290934881483830468103330063350260477075767484454015678469073595211959139335499145272581491829666226491535370524624001259663964491994094861893084369715387197149426418348909494403870063309154915660928704406126967113960510937959375737345399561320984537487518088210450926079375528580887726313602349448149564393389468529985865945192532871739483127586294169227151799112908052714678324419305524468519662812674692448237742257944712938011596196527907922177670265111029516471786597332921923473403761728723497216818433041269466642284763272514120607719596111070795665663364622871360770599494658889120628786071193312003034413544659122137388181104574404450778946741057893581482735416762423542325567399571014560482210386705070741029346590619310450319846050262606069064828140844060363702567668009822440122010155745597922634876057789706892074968959657561730901910880822610129031026528800909082125930308900532932771664293138134190619050293208398289179751722139983410849557031065567381109214792741045210435844089099710852187411126153303749157075428188273654742401684530058474599717920015614363573449478378712775035476057201240370965319993045926859581856742661562330176760141913148457049656518893573824344824031514279366490334890793881327433227268067070126218894435818466304423045818196187839186094188735589027219911608599093128534412822185841535296745386724238182374211678321262229001285072510788726841507239759722125353915862934962002193582078606912340677428845191812085102824452879720196492583824856320040855922929606198267016790929711314235327467479083444616590382209966793176201471357540748930279163857924694290510293010235434403150722705998463090225874207492158284274290563749872028447340725355622196467688585714371571386734233275165923143888623204674734056297516220742139557995679144741517056992376423365097531402801164052866917071685709486137597227150566553483170649814377113120940409426381034086131240557461012747539730791298340178552895766749094092398827194990624047966365980445540161939418976834833710048589140706309247092490088614264509592444593219319416740431403153478565999527259680125256840372533332982028439786222663726119480698352352059233850838119420290037743631405030725834540268189636870033780214922621327182664266060412235771566649145297741101468022832219475197450026742704226278929410213138350901555817785038313082486476874948191305431699970729873080855521497286172580177286830776216396409254331368290375529260298972873811081577941808236175654501300104331091864204159201348815521030060085528122587907404593907741423671749578533055214882966541578112821245378897093121874527607883149909787358029906148498365547938576740855940082227237118885464702655227814723235180167039634666947349816872465274388002192777609759024555165057683178541458784914676867058676580904429767820327676375678085082138298974365099415251737993053245524369419565570462925633175990302536698915251049817263096937040054639868834480299364149892542230886823034729485817498502584834844302964662799421646684994415735978736432171013744829829712011683720930250497405810666521205836924299063362607102547389726047581891012812152498366388513582110689223769334781534441684508024948035080775431808374106996286173628479692316836036200168878603152799195960463078272238440935910849837996934775130809715829676162113648174443812500854533927611044626928622355324879693004590813418247782341056753422670832338748456355600741151166131131392441284102227699518636299925586608439405687187091230606182626888294469102457395356597943887718265896794829231056280833629534882829121875520421466365491576090064760471160731858515270826955752965774099013667187727382697442144660612810489692137078076961122739168466401775992369777180479097755036860060872273582146095345582297335077916915329661603985278653461722259767358206715743883152518957224382136404556826788401204775926343307187926049790358111301207413739136911872288471185141087525169064508105699679859988429893467053540077322156101861781788916362618031871422090730892634698193978154703515595258782988411156314224330190550082928996672734688983303642753172761776741104016149001701346409064793932847956893669341042664556908854858634487429726773805473155671849387433999500055783616261266792474108177624453106625625904360385761670229045656581239419269917669601268594673212146637158315319561801568772229825187084828153289531540592473000883053042521025687171208108980913449143410111874493462191663455566501105954094299598770454355002634740456286342377218479394659322274944373246639965079951392637492366661967233932156726207139730104135950446535987307092145617647023562498996142104789900893223567184256233782296153903656513140867785597565654140638645926076581873433420865523049976197225323793933103987776572241654367177490445999832435721471013488832534461752013739608224065133853765202892846516182215542317330584087903242230437844139487695790226429665456712624869258541613590232898763678669835579140863900579535364835524331348395824311021340811939883800139693839460698902687217664551744973093591565802664660511642501823745993224204766747000140802883234391510836589942389754694479352725363576675149330724507026171113362899961045260291766935135340403007926476627937979887127213073666166835527667540794671925474903979280357831851894082269410163590404725473021870960397146681804116031156440264802575330762027145340439039842669536873065295203011284828779325332074849690400345890446773937590918622974006284938878907878187616349369699746494403774717893216440582902328675470683027370555527207111874062616449410610098790766239148103356409170911585330747634451287515192000333685041366428399061388614164260819512772423744862213052341883162897025688495976926973826817241598811648548109266275708053371230421013678430327523912534128724730956468178423895684338574467943915774716293564865583876015706300247126191548250328519032240981208482584124603870391470975131533900242835132278446204345536017433152567695598807326147510692981118650092338669338607996632927954139744920335825924623792788606884005851892235552125312121761068505656750835059985181190097851232444573054905951276860563333459058932955752451195441468726529613474352981587870069770160172351238126106958485084439239386776623361863127562813261414027616506434557479329770036284451592041354812903472585633056393556475237021615042787472076749719703931292154930736645817367186428370463580514635804425729752246121419790310723574983361551357451246643881349751539460489899532597350789153902644912036917594771140768233961126253504994765590203408654218472696547278530062222073846001162285083046357883795590815359976606235663145136984938302673913333651287361191308935809376280251687239748286623788095431889493012484244793457170924063078670971970375085116123070544519432348084707645626521602887814214153221198198384811147245355038026931026958788746471465147492357980476173145879942225709193951009216157217704012724994950939286087858548772550044304920459062229707879049579007450312810041035175514806103232043037589499079658624190577302459782371538670837466771021642580447536626710696302074527553874532473705367294385058277414392826195252814349240116668833521969257627182123487682921112819737874081774317299128276904215130298122084805987632857933563481472117788532707408553519165796609789486794794895655612822570864917354013974159879527282455185586980443463921136560098393673810922893577176775625976835141731311025575770532362200833053410401974954675894770781747700860138236691511472103707024888003855883363081589772303970101676043566205734739893749741915558534804281170177098370113904670217317620327539537335139825882127250180140041273451910530402151017642936228862496926504528140149257953847970170147304442040480906068375522887318095526298781369613169527261012239368833664027008058896534477118092836592587599155681732515678548874516850612824143626933324320730941233661818561518531881558965842949925465266060791201428569236969189964177174330745801946976892652088989926880395067683522286936451559800633139715314038730639908732373146339051358678364039844918848557132118688026414361014321326196588221948628767659939681550911916434359988566597242969449671825831067858526849992392207023783403316019763010454364760143248088936602544533355353596861219810672710628204188347425103024488130813544387991937750902392381640711981085031154940136244975630289767918687015029838190793710847938423678782793819035974309384151640807595221918735408327068664576157663366249504727523733415199752110217119183958326220877947056921546560549747552255381245530048254269728609708371779157763360607454769326914214898528041249686319626903167274175354138326280953468279458273566717913538200853657699993900310145456135521242023106625537073363361990471355897252655432208502263687292532451426805032049353494349828525269099883134068764006382222145318628344901823348673425875475961871096195087875053169005008711125216858958952585321694643449632500555602095315487384154627617658064035107324398485963555694158365889779105146010114154081362209126918302350380509588920421706621664804358046067288223063287658502564946247125680055646693145031801968510376353502492044458021923526340601991113146055000775671131892209867412804138571944764360458750122704718603972340370481290992923626551351635991629043622100235640422871597908772728180372446841001202423522613791379414119069488384638765998882040120181969499781128345582857305390251181790446184855961772615249116458917453757750309249501264854518365446607032204718917691820952810253006836971633304508046514190761856311625011030533632056827199031766511774622036002129508390545480200657858959339818163158859770711308830883351628633552890402153782578057824034804164470553685462211085821494860512005400453406253972748710360907754368175590156753386591344534670519391768485894506851740470823593007304580134979455601714949488613101426738401092093441645724412984953696003582215585116829055074005561634317741295548855683866786319630134411071558968136168260748961344204067461708233302149617434443347092375621474620807786530439525698426312159791126831289507911361202600964200797985275246927913010620406891453885722372252207386436702834589030514105385678518242719769466862973422343244900714966119866197337838980656050910046852290778329626223887886742700205876305682278957708965521662531355473525140141659776181338857757114410860890395330230060690874837140730287693517897686154374657587303324680337491724045278468865872373023228892386118361986786410300605879150271280309487096349758808324592579710248293676584053984787768932117081445747837289181231574947820024341470551304906310146224531331766055714412479465995210433332352653326141887524887652875938195601900393515533176952766884296453041714830908827421378511033621695644596919193853591747365412436367305960650998177061833838078577837630785679709308417281097189793920260470123385185892510091660884441973493375502668815129784853078414114193002483657901812900718589666794722507031279684735835163574409962339271963856669000038239790947248606079768051757176264414417427865745246833933037929770784321328843377937104121972415944789074165794270306623695061559922797326976489986670821244569476427257220262037309081514949961982671017758886772318577790006227221888787074886604131096146658486142086016026632219814158585046272993036394436632693410193910375032236659028117750606324775102015778839050593243735315623852206046680683595984347876744541281329199696033812245872114768184849348710494746169233967472386381566301415172926154373233021869486776478130158258433487381091322297862851338502243211787652062779104107399272488880267573071923023192219413362211765261845359006590548726029605656479559787270442744779699931035227512566940382171264555701791781513606712538160140636521091646473223683982020784095105806257592965947133969226066832067677208759657893614768147932602192532771423361707076241296423489493803438844015986818850604078343855355014221129747669376212952089487364025256025693067008520873926660214431113290080262092332320922855618347589959881907943166189604996263600290319551376917108911410715902282121455820887428021888782613052981801293608496305729366950961194817417511931336360013567548990656229429627976872822160423224371942157702478582146912348569734337110852921951446503340937604459805184475736529026121261544965501728709067386081582116208828655937891727168326268285266928880831414068950292452542867139306923554349710047002273026031952446588979117655245252537221151442396904500117586282621588600762576673221261782242353590730157136555269300985267596222695611473417702791745693121296323478488788124137038452748111747514890421949679738148410816908530388782602243382017263435146424432515545503157993475914731909871838835765220823160297533491330844215526814698287437350236224499821664976385509297793556351679308763493141665176624174013803834711127366746868128040649923949006091602697766135333592092381250430299463304240989729867381791438855763529509875693455851687821879393526215780580106262096896351200387797604263001990495400011858376158847436340977318657633676203279008828404738299337875500734262085812870287712729860129030126633489724000556385751650551064643659130271914771968449453862454741670801623567253438614056109003945017058598498131920682132982082618165768898478437746375841859157451149052120728604063158300227923756338408957362162728531926102995514143199151811995574202118749792390867846345821479634994839169437714183994853166634893030142654817399385155796018046357465508635636404151648067787464475548357928981649323253052686090891944924259860531081161211945010073592413731229560358644616624483840950415762584077415109532489338172104031181550280906180922827220055060737250914340296969247233158837016006857545612995462469627000404343527835184088437518494343021267997372778356269298633468251780558103469898870144110493522652677080500976023601487648480369814530888077271172738922832088132979570752164031603338685844055387219601812462175618135894479957186052229840138240108247219783319475120383759047011242749900561115356587030793752230976272864100751497766281101117020651369411973867999685235896672221985719884420211065040823968478095689495554893671041104788173414040658526428841244727218451130426776686515861417080377876975754780612669556648761396833103413967370492412749436485570871886070503412383319769469818616150721980829492449421839726837831286351314033665813819791338398695969523555821196486370161554172779550966715628235380034021926962935893593599489331648306864698241731083799469084736424246253496264269988556695281767704071866001938059773341374544027725204656575899392561448687197301184563019748959820638288166048337736396310504317932557094434555380799430537419976937693031977093439216864465123980230050423058522259678323483181708060993684519846891348545393052506615859043258559299606382083275770359928138215325056587499658681277182372742015916559532248115154301554041170934291603711431054507190294003100599321947020762189319564014757941681065229303382882799446812025244795226533690853163156092348877555577822310034427200435050261218388999985859824728649198080473246191352028387768090919206180005926934366592027221477286643024678536316906640339745869374911051993179116753445572802652383111826458757918100846991884872211967060975934674254916877559859478024341712454116596772517876797760261513685308091470984008899500551197127553606304947408138565731240359513982247925844998700605612512385343288248764384197097914226808666698574431858725094461257130619396992790304326770519160635406595138330883975824724862986906368417298378399877534850022692457899633818781759350230955609945424824820827032335003308502374079703320661099133339994837687803267575860880601981254505648698830367030347371705798308094263231018285498956916775086898890752834504136939235207724172798685565248393316648362893003904949455866636233440826634234067535083913254499301220961607399116799085946034050552358408867656598806435145886455370672253338383676998357022847962041708216813228816164045565398557697471072024712411107777710937093013106148775990455800249607176138401905085707732007926902866855276234978241943753726563372645328603195827097237455016577743964225941242952635495318434810288767483846678643279132493807273488887291919193861618456423125337758935209800228576721774906095873725707015285998540404232525171277051353023224804460400732171235037062084843726387510158938453013829430096639839259142459991048772436496869751782549612447699591014816155275086838270960749767933462433443230290419506784700218043294694052933275543642603011298154741745457972666527887683519866248020778895779109178074327678409564301711346326342101160156953765634034301697071769386437589755863564066608742682958029753068652420330019497976654993925593280268577632534623477076767808785565436881612950502628690314399849455178877368449398891725121465393635069801751957432684019781496521407300266983333853898482738911393231903518576598436762040985952578602215124455117099011090532929139348517576379577257490966453276899311082091844124820750591801621597961408750276716937551901634377546942740805752005398396919312185428016276924410355870930685217514547963459782085193702141198143442603069193572944231887235390840341076242695726679153922836479017871673633082373176385651055900880836547669635692669434611453244273590285936616820739207936409772742565854614469425792596396118083575960956961630781782710071668701301348758510772029572125157379254167032804385244224322833285839745761487516329405939917739207634306909041306442639775446317813963708673891288696948375980128700377199639396238055995758283544914968383303308660689690404679596470041362767414021553627204374744309559730280393182902435515058282359148490594297994382505149151712513805397442393484182393123109707309699780325486975086299602691108391477841089184155001115090629219872415334105317066953053509172591414041577890393157256161722933949935505456732777088512602248782776134667404285599668461650159435148525542278001165825353234939682251673235257935870682424953739307375242882649522872392293379243801842562114970038941332409976060511509705765931070547588275498750608549803521621649897771047239399330281962314516904226442523402090947066123785782081807498662342077463062485649400214524923069673920187683927124048151369921467181529447603535211828114811854869869594907703869869100144367920940535648986807353183869888046916206942475742073943415312541448362141414552004006151461249491338187885610044184014888000610752371658729070882193311073329494480573051743105373217493876116849173906949232282982314645862952120259126136444840313037638548462811210993579722277134817275369813915872076759510269028662703811965728828483126903720968294820784860409863307857558185569509255101985653565486566000878728730736384748707575509274281177820290475590375227817046514525041105578659221626433734227087486071502696468525458556884125047740380874211705603982231171684740388948639310082790912143624083244731232919134384226880023413031407737680964959833306135800815022386988104373049230936135360670303867619495555799041352674747390242371460708583049909879465389534124770330463821493132585401469410945755108281738872850679452857829020453038296364407025870027732946067591082530908350189520843180292531661076409215032571582190957741702667762814620083772689538234944588457961892718717506803882127863777159896448067543982961501063991198331205737442142071991583496993602085798744971999337719385059629302797830043629087224615110546542222411334940112336066612537853037225137549989556822507911936789166605084977552594668352402959225369995446793839606936890102614681241908398713383087985636257539565941640877607436841731352102646499636188353231241230673249635826087925910583055962452706074077771009330505797132341046278766459051629424484163262152892975196704839419059366723168896203142454829952109048652867369669323101779918099457259299638674190164198761139394873859254247403927946562855576956451573423955004036488081504285344105881836175579330990763721472024059461674101054651098484784528461817148445015493095143752347974708746335683868961093822890898593015406795830977411201902907096490454081929239129137671656934279857870227987267433138856262344832390046643443539433952911001663664009919664648029571221402653317117465233626480892613625992821643218078686005473769453193201172207811840267404981283662404594179902155107529470138889460340378566021247564273467486020776302671011102242397044659685168568469877935899751541372023220979512143762223916326375295183542047697257995354372801153605976153396008954610396390611155595637124054979890762233694302774377572723641010294417637372384695313763818625740510801437916363604079100345324836755475891917884022874637895382005576900877833407863072050682108258667847010760811724785705108584595978575678209840191408372757538813481503459952074054969106989994277725702812792192902772740287399428838572250540124379278831109555479370675388607235972667918963243758715754751497069800241747802010813212150259536812466102994234550347661031654204606427033835082618983225305982090847237613050080704696093051828530985679363285450359706374343957623852231312905457815967780888301462045662975234289340901585433414451934002298661622213712631538216340088046734311938098566774719193812334682565117472700133057496366231790444685905992266008961314407191549605087021706021723210682685631500405487364353965298643369082231650885337556331206554782318826107505364158627289627160378530284725146606321624331062629403367975569096024422998291877222857927257847396086256591728489412596100723646704077491930582864703996092205342229863533443224333779910653149192951683570625904350610127915097716334462017398997364169767209484069567944556286782016374269601431635264323952995808379382567212034355802708091296535350863951304838732724631294231147205391770229048768066487655134748373861619796797449842737371738114801869189271738419064882605276531332713312600439260113197449892882524699424996932143697897115317682498032758082219559602186153217459241510126234685472327900575030808973291463962162607331885249310487713083259488356322201270552202807290121037855742857619665067533116021090504804556552419923278463290730776706525543110883888980050828160054286428520285976354336201420817166928176967531970628467621733009722267020921856479308081743819380444067095327974210409245168682956441633105228528419336771296595830667804942879957895540962159763839559076873168433504793146951219342108043307753619319640973078708246637019427377393337997986743630897190432698623220442285562214787421115558921977217950022096217512896140658333547189046873061488428394001362552794450335586942254172423964932660608181915284410128701120912159362238020116788106726269773655191575898962393867606806475933534622114173111438665283570816510687009678947120417913098107861269862781456626090571542686441963093248590870980696120021433008704271145078577694862040130643063339051527223210152863578833057097334381066386757603509747196652324062741614670326844636741641918065217196758437099997743877281449327780566304243511373851794072859763208085734478487464441702048908887591261009143146696734225163965254662548509667312994509505755815437714915912130580303058795997898312635070599821128543931885376510380789625692075235474852054469324106139589724642016184804947358777281628994836444995868489618737224641257742386400439685898703890137865325576403279863166561511552060293641189470692985380517746597857040279751594171745548140607464235094282028687675827961809415870765061588438262674380734732153577606021350432479048561337757122055646218316851200431733556702152871410149742018871959891663764734417499752291358261428242028534615537679769782381004624646583505509452326517252261719878666309106714976174622462188887021074947654093994152434645048793206733626179259505769417538703208027628583527392045779310523555909718765375621708094107648120832168294948715533385808165894452644347981878060993567964516305488961724228432821304024059253954547558622758442598892798908170460972709812906919894403040703063238828425355207340583487483707062173442921207113111095864067341734406668214900208445952341648648937388960803355187397209124143739544894794023747865024902884188422105019451505738180797672240882710296736566016185308785049659401147054521295239522498371832788527787389185852889879090634698508009136919270540813737562637048349056166970435294172204868144967227222898088058859813402703459003263092072037505972544685562164279369871310310181241288475507895402594818719308168569914450106327441373082952061987504424501900933746577959164485134787643491521729141220835204997805720028622526131715732744796210531027145225525498884725367858632041493863483230696914491207871667417747969412718362115899365600583787236846876122783532554576926682060991959633801595266953048040814401548886911405417071586573411433423739772667532223656702604720657448597208225581345856130029723179676088930210217979543136789370011050596599290340408253612977610773800320203461990032245054557665087272900095055215208612280086283815163861405982607905289920365780100763055904361124029914147588975581822092941473794273327129444973484990000911650681481042513064873945709624808897464607504902551340934711429401140536565504605309460532919264752870810663357610689405011054668847556243829956355519588493359977899260813127787401694936306641172043700485243991455958714487804862389928192011090258782533845224240612122613850574851108592678627876685799335562054233062988647936374160325662367167996331882903962762499795542010659075373647349216337382470073188029413987141542511799039656927983759596185247227967455405142883647080583391357935214381485818228039807192502251312820201563313611374202071888941285753994692122137754862376172954730364437746162899040860048724918405727107315535413840370837753704403822174639574277310852448904733829803441566198966741982850043544703593817714314764064903881868487495021236170356297987066818837039801569399675555275541186872486244171762549233566597558187088053794841471402368233471340163210331459314592294237308081021125666367496490511468600912815415694119480968159341353178338899332819248966489453528470839492479676657364211145779254478796733244266955959532148886417227501127377729530571099257640509395376159547905459281825536252778900939250938014266621743839824310630451115497267519877417307922993492966080748886934780700822950815771200345314184043598539346283955538889393831153033791825860689400680035565176724522288334425157019866727735200399927114168757079497154174545170025083654595192636529497473992124738568161761587793769568588038541243648681132052657131647578993254610586475401544279941446421975469448684154441869289809574422434045229168950621536409154416967145253022929519145101113241046475666298333072731623264437505282318986670472513427747959635495028289097134985458539478521177458200717054001217084389991658594877751237962093756928763644872367076321434679880585788148006226186640323210236983546340162904260684016669023222162596269195094427112441116607407156748166345382339769061577723722745727727694319571411867718106682910344264113908728994272848035165563305561994758167257315810568458205618014268876249796701622040712391307854529678566281085423883305029433522962787779866022260826594182142667654734852104330495401074735821247849796876046974378448663093614627551204940572085488910540517706279923140696087104561696391362059023939756958383556180206747983724750699421308284947473370532454059471583603538974755683316331945171139300652980890122962699719606431301526875314786691736403164269760409106070419139417969511573056928116429208006843393410924595926768861733669646195566869263136318725383076448734210201234109428244095645977153741103176585881396089648188156909337189539243661973439867327869519043147702687460784118141857289060142742728412185879280197230813297364119607032660276930366706007051433072889481354216461233649981158809469231362281281290849093962419366454982379180869927113989678782187319350201072952445375037027964925711341787991987780137933313426736992364736470752014160596577033689505208688465976997980715460511172590045209423858288051763245510280673679261945584930821735339785176029315726015885734397904984948904425585299432746862308585877760221205038536993826007098644608125937386578184163021374125783360380121261227435280591870262757997749838960279166918582377406901101870211476662265757108201969968189937400103699876911879091742761564288954215462603053558920256474756630830226151092342086386711962857106089416238468455625151325003621629543556645220381741239253510094148020318521873201732648121951330513586958029708284978680703192661658203496539415509689483926812159672858867001085702562355689692435467198066465385019119279598862626758693739835688150629823989440611226169918096322847416097074773502238937287922036840592553025040021111952447383843509011421622215105179652796051699260635367035316675693896428318777575469201109683538706148364491931451203219413735228141545745074208051357236247302551882213600775246343761053213310253685907677768977490747508647171596535153861677473945080965021084422568038828244543359670123781310675815848802694143034178726795631181966672379531805528620953317582167118872533249260572856514615908890597706371881939944610719364338147302184283310363839337412588849417704965559089036619959666162608816865103250026812529375103535048086637689988494287178531794084626862062380401061749947495011092577633587993044658110582410142654043198034506365712347539398254803466821836922385888127651346449109560385767061127878404188419493068908849064828656764094203036289852900474409261702810268986434355912168920457726410010130981988920663051001686875413887717651797367076480543849724161340033426497418919031846568850269750058398353828499706869407934583322169994652070556057753222257684926671714127514137383762355626120871100017449426044671574718943264919185152594182942718573719354592858391710430549411773442692847140414352724514974854470171194844364542204252969332245497920161042822486096441964234061625053438746674874979619613194097874084313978657873890507570773378680386335030916183148450601223953251115681689856877164491148701809974167089203424169319492466360996532875830066278579675807395552674397764869183615574647756194054200366489829281172870330203515896699470288766277174902326960400625965189652898437355113587847752993158642132325620389403884274897946908329140788190148429028037672880477954820343371094683155107160985282273777684026715160953704557920540227299851368454162777953378584985256875389432570125305843113017215107090511223984166188589801069450226291750497281553873818685256900791172523381631250867929756027043128680015687062961644203854623342175569860303893491772829096690941724193384319467991081685880981470048649066962717422719032047060791928607920898550283202972644401867845278326612388400679070657742091649060484100712753724031172700579169379975924371348257593841166384038536506376573453551579694383742623300954217830334363775539038305276551888276862979856989187305764752734501107814990885269645927874560077488348546180135529771877037037616475579191056207125865846590343329595523060333586456874018034866927777055227324371859872185488670697298969130112131187674319602601725786916466537920839977594600154383314606103154379135588997799926526464835818314508902517114942134114426414478814930829297530613083675224962142810537486326442791801453019109541975356957247560676645396952796974044912926229787967803931391808175604937658526690738923838765571567708110357821954036506880887202951850596298339379790373916151450708145754127895979432246886666349333270520151580494520059509871904668254406036017498375436212337925668053329305472684651097291850312510821741428704779771673099820817577746734448575547699586765263848491686619240887936085665441132604609251527827060445823208682741923802371795927585435479696533364357720092217555718160730958418279381064230356488360873683997149733301560947220301442179500621876461168661667458527879491917870107927967582805435243529342897952006485219124339293254373512460975890223538626381121888275322888474855584489063786983501535687545959167383596986450019209059715062741301640195856189894321531250891280539611911885560451217194116021021698860009431377920504019560124366095276987038485924022008362705007096430608580242167033336173360722416135054096685419096821336878949371397520982233754859085505569730532058558677338787600013454900704899017469294058963313519469394841415264217350774505528203360897433943329268184033357269834992415347175593592459594547674373209950073892809493708325431889019586476382298428214748586023278828675878223490089797337096544076055700839293747717248126605114544560667287854052339892220071888512765203790533996234511275078377493401825855527883510032143226036042136688361354331962432294761319302656317895267688657795284167628243354788034481948640705045955108529792744179790483073473712979872673769904626538971543869693939957175221426048894013626364075120014212610978387415628250603651943860102571393806581989055035758589086412375461231393310629018277528749320728315173157654283197202815793446605690996408627375793238766809364626963650908851313933788025771916118398747123272927509055169827300809323138972842275206407026619354270033526975564234166762141122440322655803286761559875081938053252949394321853635475249582335609721987183960258092524857055404503350808336078627637410281438423506282637662726453220398274234064082696192483676485433857723577061281891880220035484810433912151685359975573248545214825360343499315501796253801473554535568780340227379764623507053596406745724709324024171270643714771425614231773497566542694267185862814336487679298125206453145178622427331938941770557746233962139277253232065621992115532182441391410682275730862885705491262189437575173778798089175806669403526896834834332482231463595747732994779871573231586728607201867875244459113788809872451304764138510794768179608738713282335980233993646303421113717432866810708951957377939780895524168109668720939980537997797392978101268980830856245502543885779259671819588963423453794755462853575388313527216349794558381366258065320732218649906313188438247568427909035497864969071584585183352157732465564220344972327795390423899117685230261840121805633925838914452398946656411872983675535674906565433752152056023904878615583221194234699852936406191586974515193196077908019991591436414311793478342873247198247424811719067875340064995609555535600001112014202531180639766922343865954070708387723012042317534637840813997491713604049611380994872352908271147528913710383765091548318195524735785158140984952605830203838216534461927004275592573223005017092567899399312917004404580669894224898099217449312698627234044827829814706096206058758643319738100653790074496309504169520747507053272603213098260086272879391761090579561016237422305153869784039259075596959159356897848225301400071082568001356978323219491487967710644217606037836979202382356368049850113887169855903853928090450597766411338508225941180768726655236871207970816173535829785436143569542445757401891935192790627971565128398285021012394189307245479085708251395617811572746973953767312516668165210893461864039031980833382109437967254284236627995962029763921356950284344049661564307871375608172205509702541699510595003115374357431080572208627467945160778538098573547988950124792758851266287540756984215993363286218061307557686274612285442692839173700586344146860728690780684842742310759137705770755535523520745294877156282373908527709627719876686324257122193000753481356209920567015318148768295295630705784711520096986168025604414388677087100948864266660954224713415638020321344529608753814311528997890463455549043645859645990412311489387178861073215305783092613694736172612573413524634204663088885211626197893713475962438978009233345239715020828839397766265008688902546701399796544893219762074449836885658961400038456570394723847426043268146518990871462798614720165270651489691108346687492587455132692896516701898540780140712119696473346159395939925792451190278816920907471893828583051537042681336896030937878510797116044161478372791616626927178062847175959460751009922682406838240408687551272929498398737236667612220411932627370159729863762436470594290683746698370321722217647936712796236394240280095628232704603861219532590292358419059960904285865759659328534713472223063264217426664681662453243378044117917260708050241725251380558787590357938027535387801225559010237913665436726528213026287762888382786256639494195306352232632024990437794675755988967790655068865724627710562511275810159638781885080576586367317048553713727151673758174281379807136382424365509121349219117393413428361964876876885860980170172420894678622829949629324957365637255109658103718579369354722915766248027795895728199380896403068540923982220911585469263183051561362396815145859735238896022230998954006616653293385378288834037285811577335740370340784567492222805726660019555223949203887355115242343980401534089446653011128324063980737166603488482506618023638063747005688259886241032611485355859274048340585174776504270570184169545164951399833596598747991192189544764871301314966116000371699614106563352661426055460236689928169588673097828605877177062104713290182114681969460844240011146549783230602597517807615386621431843001272073183360225006712949808954626135076149117985379910495899962092383882153860064791362463018782724584059074800515015524809199553097832377416291867807360333174498313350572062508866457907045865349145135735517397898221032164319163022300511193612940681000538637466677091553605612569213362999990752489367920996054675438008962581788520129998405470839405657305808816522045703876473351589931488666786942348428947536837791575310438119403142669944748500382068750324166512497726852043394554294318074917876532942396209566400036821617614610884755864784477251309905029472928758757324050460129473470877409320348444518208406194271026316746521833116305618598247952409835914166464835400345306339696908999040083657440370262446531254701356088335540602146506339525857299144386971132591882248495584998708134627233125601364256041826672216544671410737544488498592251579718631011876164854800139225087982676139010915043573364399662139000982184583960347067943675012677322084040315167614767188685713003945769916233718311047643430200317305567647555613461494708816397151927700848451628918231302775254613038656758233765859508885760488766553514699773678619726826431420419105327896433741811080297851251159697949732285688394978251038200392462106303145756470003642314615212043485335834664042400271306112794852091236245926651944662852283364200395124457552426483455459628806726049705353696473621228543981927046120577983544851299389769587743983689573989590965451511031421190248675600544765129241406458374798213249501203480546990519564483756336879343225690791088104701710838105294508042691001619391799410508277440519183098739149194632282057329750576914212693880663687136375009685733179458041747408163971314789319637552903249092585226179248194245832933409453806995764963893163108810252873607560287782345294783008809113899733846993573763626041407034056578761020897060531966974990509940725886133004050732225653068290233100782318395774948797710741382878945492461792043020668232649968620987432781920013595631138766285657710618863669321748008000061203843185560773690687129026161717093812747587622521348887428941529095231262857551713031634445142355491051828611763136040685907100794830032715275313371846933821062575948245475861892508435117028891553064067383217424365507443322383337240091957761877736222444724502643022103692249467001007809130756136623356813034246558399709197735430858172970073442496768275586365447895075590076493735516397835349460220216679126438065753225897693526854733632447389118877257609504794364105701659630589189587755802863305360884166542013807270242176755020904459999128666380846971638933842267885755287544608126329971913981979990676989385832657165704734510402358501859927190922475524081766904615271988869894292459232107692578397337492919590028925071879339693510566383410022329061015398485566532417863227356567542583838377465623116151828895567734065553062273911406074959823866314133654173684866990528882106152880264729261036888984482709636338628453810674556795575650876515874417044797521343626011923841009600878595749619569008541449534489857235838325567376292772324328449019595655685631076362203625446929195283754809056381102732481089995896080210499942705619181051881687505176252913420414081387631505118026317507787707050157031450952072740162925776912323215069492891659554965053544811833731841953131335699665815465060405286300781158934509734205082871281483748384723407103093033000265578005075331157011451282469944821752927226140315224471855979394811709068359278254759878453689587617505396052413203258142817469297822692832635892723537085518242129659839644695633446591562916320157202869631558193780513550229626742832080855065736441618621209775166998400846917111024628794418337626501445422134436380396512011358966204713353318735006177975654440103303198787809178172113603840562421950540424291381062827156052433870604453496212289313527668732591641121111432810538242466011747027874142267911129015297213426205495473341696310000520035206710579489288559303411670444997953842058903459638816502802924700967588192171322463375883216207526339670430891829646871781399628641230717429106055735492141062401032734191963841160235417605686692978579051858021973897369963627118500010954418741742775163916638629928932387755711979516513650284309068261725852625775349390030214637990307424293739905424339877829414600807285834990157585492233877039080807896298689272846511683963930792774396355269643925089204395467609545450297757417115878991986183450138343269245031671812265634058613513271708520955432892692504760527569479616751211090602579663704184656240869758783962645892758325008679637756007486544430195002577269807319716673150788672301943438698189690653195450771298110417698124506570270936113225992502304092845753294975370612070179617469194429323718857341737462262828171250520771173100109272161564307292703897317301760786497507716087364163541719093835593132591104509300564674955076294497447552174643195192402274602946257099910207448686999465497828202487805608740176045884656946877666637052105077938059592292079080413245353355495663847386958737163470520847384948647093090140482255203427083245707902885152690948826543426013132466918842017703587822590423591235370604960704804350741086810093214039646095477429578539699608436672806669168682597584241505398771675283838130845867096506400073570845641523170799820124887934077473468783146884835009002508559186848750880133141930793708701593592014140086105955017294350099200663223802766173686806422747757338049213603216541686775743696957931391181114651481104476966824647996477494819026877305154760747672457591174059683310960860838104377356692608596124433612690069623342660195313836631884051271181810702654337681387093865296659866539310355738939803945331246689282433348861858644265236431221354794725465118435023713530822622564323923095615053668520455544032598518686322466944120532315272336129395441269534216816997687065726863816924948316316767542181598694020128545771278161755963434086249785509720725938942750438693041690016950011493364946143091579092599776369881478951375980731183891334295350675197963108727974581926769045727652843041251744288911934137234791000681686518022965918482813959391447847163579644222479645806766867177932939728563011135590973719352403323076132552213149191254842362232103093267393615710039428692064504082714639019416021098078975214598456162997566567458267545629957006792000268413858678780309965488831092472202963291901424745082584850886782300665461560391122672201329663197647683646522464274233678072413909992106490790860965805877120334000809029252536546947611753418767147273601722885223985783024328706944356837344192500536063203173471924540824976294596769443716453913253855659277457444502224281990395854046875296439167354168796188296751440692540355290649936084949086323677999029332569404337217165256670710479154658567536232640786508446050117768111358052938810143360950119082243845876332926182588350824255975038571304884775636452217035580925921068337504966192839637530350679154173562070300658186710609471891687088609416688608729679604174144893250283675730186677415284300667586654031352047447324625409685077852776655103382826604117731556017031942867500171278391169429416048605862047288048499137271050647608810205508497396287366190030214284477126480464279404340660187345771973816898544016267683664335730847911108619946143873846938656161457849238082848640466519972575364484194921647270642144206596381524216950457865170014830337886237393315105889158223569058779364357381493777017258201698846496435754583043861653291889281542019151929580905766016345355349014295519830682337578400381965713094256017444007465949529362239299776443429093453743629481963887124352366794688523864135807198509435011202266671929673685236840399478779018433516940826833378896828216713712985832341311014156416453398946369716493259452745637720329768368124221324063827655856945043723382368408065474907274564384923887501757464139489908908065992597870259992013131930826540264388745444795610820427652615970567217320485946993280020228454881173425971898915539322474076193187243173830538039963576239800930055622635735863777980120146675414815912697863946061954995433233695200284768040759711726396406407391632731324866992678135502126152277476242300075808812491422936404725777325934275014330786073391193804569567379660140280735280382263632155151519942681613868010961841414551802831080351911415003110494083557802659881515778414729366247414269028130994976840571076989069364818726296070431648591160677066952027810437251455994403994812785632687127704098344490476044844722647109017612858585340473267473192881825285614428609796045114423293312268123141940237887616099785341638321648471183687473802370408510596651874139822055470581760130177894194331577186053405239009439788939756904059559397391073228340319945304736534351507024387300978203928693005175222803115284216588268223315668677773250066884932317712965262975091202656978379460988980125089781938858264294309464431177408124656817116551735172589243805407838583932136680136548879047499167615120605764901572136262236146987785609709530833473939497816241853984931876447465730447178073322145529385686970626506639106814580227771378056031908895455999775923810252407149113114702130577077781508598758313992868445709351328610746664898093125993203897504463800865504438900362119434129552714734091582769061586508017672772057086194880816432871530283054605786677945305957181236811387399389441317345663003914490557378768993401728194411052012306069147699733477317011443743500890617427934637286891923583197656031122946762434130072864206540782356915957740393302154162035095331131701365533114414186528395931567045657010689695926329231369453223089203680577953978221838001837339696759871821517045583599376470887968486812428616624580654937698480687398020580691646916238022741096042969148445318072627077092287027910063514304393705073383399381426639348588478958100774095881911953944950261385291122503104550635515983341060082701339012542768743782450940012154104798090269527620401251683650367765636534566550926734379717237628835215535982423523309486169451796306577738225714211733015161686606350055628792996260148898583414408206444307861712684576540493955527441487684255641224908752916996931336115990539093304105988953568125752088777518335412697173294351552294856267799100299495478933075717643050017245741390831080484017433994249719563714632606548495739258524858546425916896002988529299775007373773606908211572171670086466401761065460315214415976785104587895923348668664122254096828282977430235669520856117008032004296671437212661632436184283938181313441881299038100265291085631604409640889465226873618035042140908599909285359807513036130523154135983342331586750546080030189907078602606112079676367522315314140544554233233890189912022636908926840142335882746611875135021680981326541696967140597781627111990397939334138447691631836539912337014841927657522610376897106169395277967374323158760700990328974392426961016506181549219461222709108134303999893900842233924408567555461245023762838120119806536250922019676261316177078381719026544749836254157719836024327559171167026962312755503884280775070767271423484047535418692861827527972236467514682634128428286338481197992604784622016429266996557958134230657790776085013400149383458242175375475982880434102413990062931320651905659885040917345495406252499198675479867754257770591906658133789944164133217159016107329107828315278800168094244181097077408043485231952486670193351137616564166375083722547658911545444197712505285943373720221071775861800752129782871085580992558954157756245585686363545577646538552481797908409574493403256990351213820822912827567553427437311169596069164072181409931835848129672757900976483281004566360569175268243621879435582618464349419580587976224563965338858508458324544731217909364398652559505261907560474819328175715070786110141865655537289672583256214886152330808758890414716056895796787548437826582651050477082365818367180521728700467132831036489377542441907674030011846623013147631356650782885209375444234574049692330858488652455625944938076130110483203340873686948571462754875335610163858881135188146686727050190678918981925009075862944597872696523772819234241832788308100608721036183908078761607044668493050745306856694154226790056241951411106395975088430124192038070559191712435435296270470796541107278170775029812846024959162536892724667606449823173992693142003480035676126351406136840224115233978941536438908511387736721951473023419097927604158243375245802861705069377186056182797423152766273807097590686684480421262576102195208122617480731127084031044342912384367716836521943009026606037119446770811509049027729170822876037667625070736231041398856861021266624784499414306933254753657506078117160069745161249395483457571851045215763622331706735407946815468077399864808620777517583982878198264603307741505605594192859114530719596546555830911993806510358288447949127637952327924817822237535039795042040731092032197802957478582000411669045067330197462388277943231496970377720435668242287479896152815898834406173976161930645600674141053087425959172778041431512058445960667368857508936401273800716025604278006006262739478002470660886108288644027190654963519274101043361192803607270180844307540220526059349097360867544104072043361169752742545623467413982637808281434797549777700585950926500849719122153616809345293897925169213825609582358424321266919203937610059580946458867054338641322791731532175871668947802248681693145682157612373519384755520406813065640432728576291824082102583622456503175212672555703895785961115213300449164542535274977959087146601204768674366774987001809774899923948895399845965184322572382920477709052997329461553622105220819183092831246844144608848208959583438039936706090351914323437382887248905245410721438743798998761730112411865613774097154433434940947631297599482888868474919538133660665356291163122486341086284648195109697363733881923117462411822792886628781595036189042022743932772982594870250990841084251808648845294651387795734638364772174829593205013666222144239585008216484124751438882472037591448585199684131851122212262098276397200945437698298086894780645067818174529335076783752622229186516682293370330216469625909824301519442459834002572601957837855675486589034678058399934104660811354303284777973882046059635393843697825543967325904025468592005215413215475035384310548614135667252958824980998553465658571446779821897891549990701863483670979192712982698158585014981489615109706927820279654862761031999369520907877834619822179517649340880245265658358432215823338531708092548377924400927367713823900828060105202792265423842949559489140166060256602145109470124658533097286179384948278223056951259382477907306201770591598532507464320014754706093419658332853135600693132302559649825378755197837073797925725993822782355550422268034059678619460055789694708049254705863726513530455344885778385801482047107303088438633707713051407923593321133672247155632736227580019626896777524419462784637711884352837559883083554856581096931196230477115748068263278357696833961501031006784314741216614679284665227458632813025539211236383027877232178116086593570969134754972199843093313380865859038029575304649194640006707446208494792089821590414689118246594979869732324131862275637852690760375198631103784203396244141762053367204371504247741417721160935360693832366720195974056823613699725755764782915102846091371003231976750571066577661623786978349797682614955134537924352174706026511540183475704673099333636010387632306133103697797112065477949179094728988318179987339538692099905925250898819410623611877714091448499268696811738362773941543069387844938453008566507228096777933426966164838126387800206147947941995456706996301119001176667794355580171937749179103214078826874756804607970154877184506074333709237936390734657274002789421121537195301790909368897539616222155566510048489078426674395159822358884452051058269624978326641356527711289208959475793585780148437781896305518210173589761434475583051693006422329213631735330653496044993626287568139374669065349331535033949131864399588145963735089795801736566546446690020067703213682714129586844555632086463540692814686152838338980608929364227715809886851670262118705384278349662361489607856211006121481756943689433021665875899444166262336784400344135349413606929223513395768922848562697691725391494154436437283816256828555241008138889204740489796397005779067184590973487825478022019213053508081024694537005749939163784726006356041631732656035520989437461107629510965463509166029848581899469578596632907585244528534343460371812276029110712736531202372910019125011680915728882663796008521552605552161972164756880564268038685723759511596016637852365227406556164137877407829102758662919211175124110534690124345569618507584266402607693459961637034805057880482718778962726717548656794427766607611668518103863869305880614054350644542286483696114351629966200870926616212045198186340425306286680421001472894651739882860550522464314812931663607172933079418803909622830157883182149073778563339218576936759495655996220840435187496033994771083714887103000565492322647195569750695700412913367377826424918916535624547960578486207486250720921901185599127993118033342389952543982069508216458398566511526435669067253093674658028388804179876492079576133870694520476986685617765454091974068904828776305143306097451112501075629726195537091089118181983607361419715502780857681496440727590488467694449219571335029692683008071583369695882920775158056531064319627962515602457163629684576774383668492838459520982355450726489180259197534568887982660665555986386069161615514038312676217992934069784012517924585125935508245639852643797272155083794375886636271977722507585009332205895087843676241707630471617062735420274427863764973566736673103347129206818823525570857911277426249452192233261035020835150907450705214856896567910048982626969451921200344656724163950482852879942279570736460948892472368743862007125378817813121693327430177170100034203470439484544381121172088369920110266251740678452000607353822010607321052289355771179947366766097396792861395158352013276479392933010349916836504647719010971568921463348220573068895040219605396353509779917972517130637704707933214237782060337250335547307635891254561426088097860333573644367282771848945424300480136764459021358368635690656485146716939331533603171545297072047270379751317410148103582894925619143871127184730077235879395554383473040003053899164107104907886778277090383082639983022882427195728362176711954057246382262933818735271495917073702859812252400178746114549313446331361289325182868547777208185512839028259264383715404352919353921933163091972441290354526051571637885988425023532288493702417137070614916494340211692977423736454117945028322317039816725178350585485801600219840997313829784189907444448287641174200283275810604045624974727107934371924519280355951052389220463594478933684308917668085163708291356785587507569367143511933313791995804896953046154692027149092311808662700112365248950823058378257161946901863953931945240756252115909548629745653093527928823713353374866667519070292916917005113970362899258032562475536630795170612575456567174569742955021607152664169231403482612918545655933478605014872291459307162191873233756571899539617676289604600522895151477937754570111934601614282698127581069653097698566633844709030975793815481908866608110504967027829278601315791852557764753611739914577650378313271290553159082223229982829520703194844134040149650372549078738728048108369025135734842957549254207095421168918661267568092164469972838580242553621134575273319194846945911737426744671174690961304598516666266926935337448077705846874218171753022076498097315321616977418456050446843104613107928334997185048384874380502355828223080509577057908016619410654243662927451967045226326038705133222493439511282306897040128081285318619832655264347777993505647288761997117269625767988001765546621431684995924642242185487035965345342743111494701507314112204520525017415775750380522626403450753831917232620487264142675501240171846488179677212448896288687577540251424841269743230560863794764128829059725004187341404158484592748972654203011616278190127924022885512020417983715337836563026971961369001657047715793833390958001920069596543722423999565541975277673888366557626026141036031737102907471040840318135942242360577149648631067476979865584180057394654855383693243779310739434085459029659747023709629975650710103769084091639916891713907639573763102911378262076166428818756201156669278894658277355667298346932015196330666043246139774060294140420808116118133853080412036378603551405032274084609511228431996915695057532192317398059474657325750738684185863158881380483725058670233522018575674948220606730457845843159820812598376699963486937837228241255421533746246250174221624237562153157045321701879632408976663389736821317219073960362392440774717983954519292763320779730088549018971469768763934449488154871981191038313539992920204136081764340461501448418048381885217460966001475442712464133500731757769015538123185104834691072683275066597717166058091575277063508528702830821847357305781178111527096420978600823334937387039194129257675404687669857524282856329712389478367017009445570365839046872819217880943735642879900255967443722463444149442222912339208152832736719630802116761407665930021338358520086326351882847437609883757976015222859351252124738673854967456596803753844923246843514645542813250295273494306646406407689498525401823744824547936250797633666117940379279960541621690037834392776726414243190967463724865369886178326560157995215711123827784532599163123018835523386504725210966680753587374717090341861175287219012790462924824368741206235109111993145706531408963194621807794278035331162280370562998090288955483835111555625797636615725611566980630357989792780759864130704532274173686059033658770776952698505199232225865602058809549804839670083416910800826425306392604355118377913294953430077209657851301760951986255535293477401276050395323377054789435801820851933821123710881732428072274283328514931612494321289692885009885934401067506235548275658166480513316497118601898514277878406496832124481986800414402033646828581371771690394176832563663821057275608915450991740253658440440627487567145029966433704260712379824070925066940741404608563707253616295786464018876342881669357101489772578644725762255892986861777691754846559035362167834771932463274045245618877364670973217090121178855759528999043122638222131403610542669579091837539523424321332895089882616866398989858743867572857675468752797671958359488202535333380669670515466855091410405391603509468807485584968589148625448698824968418514196454630409289648167851717476101258235891822210469319623842449044953583294736538665681279956766475605211549774186521826247654677947303856025108235113844932858491788393704321415669684759943800070327283260489930621452150679085025926776572717945965476570945694693866824375169440888406610409315653791069178046650589238286682219648079688690276922712676177376306130851252253841235234549365398602724258177609215764508018007474586442120803545774997570071670761068162154834401837137273803602322745121256799800555101088129362982925699908886236504114145678259543369604484784965493306322487738983941924275027196581618663330570710114313899841863816283392141664527526404517021857962880004681279050469361642781149636095763556500609659802918410937021714800531656363169039641797304709590873684000489626974726553542133307875030482109739494661574772491916369819175942899168082002567267527823636359273667177316620906203918202886280901287973947410181114068337684932370679365230493869366327522501475610553047879135086963198997255357188187596763444517655093019576888110148889968986259992874920243360167461040882531464863309921191292702935083854248391865416928084796786193124147872759993448442618333776074777615155601516119352856393786107757545897878692984850001319469380594126547177612029348302525014182937411144262329725759372693265068341397715161721440272075376947218407552953405531602239098377233448142125668217947435612702470824906537890887414990114633598167526118554037275183706482920942402937731073806910675374818603828606286148307283892992310376543416933850485908222036682801096468661221463093038926440174787837064652095881816920938420158334502365027268731264259949936457078813165508650417190787390077160601975430498584567682604857805219747159732403129100217351493760058216688455518460110970818469864016128724114266764586284224655291544615302741024613110821948449067531322722060854639630973553233328216192839390317843174123134850101556473389059684830429408702074545880758629969530717224017408781481088457056410701596897625567255384438360198990394485223268208251897539095048288516203622873179553456277874795491050271530392643552012843055096705192628689150509114953744664804864582364889070026840813310696325876624433315618042704263911481132682630024190545826147469963856906416703062567928610055176292329270257806242401508074283893586680528939343323029592456866652913807188421786987497192910589076090609014843581087109427272876601636610491724758589721981202231882207536462199837685098212298595139712608809848108621906708898455536621590680561421617517794364924511774979008769436416187093792966328480093806348310646535216561491990677242397885862638476150491708346557604466044465869214876023545752241997436015151926777845658915564726605722810242119097611461725220789950262987701496313749177564383872245600805025985258939970725182497402519691220856341161506404362701372137562366995953911058532659210737698061467395253393918244842066147138785831658492909020351826192527362527256156451683306039864775493012167108181960509415406998450920083887655005378245209967835597464513807213079743144192217340413278931560689532811101353371564990684984297004050741630669278666730331567439640317285591888115648818237600647238724477898754419354376499045381101420481063869813348152851340384396990542540849551611212029218296582685849664899598486347457930268491889473973394916804984505878641878349726484486964838870903214888643374472768615533342322331644570265328806881921680410214294051144536688304002958051155955846774870305567302604267134386476578024128180018060419444871464052706230349049183837245198834935738744392375196303719704903322022402188028584236706514718329375454488308954267732699315294508041370799800797459951071542311161891210669574312126448240692107030816848793492528152051427828283109746313249620071896747409203276284614294950524069191546720179287491986732873036393657842604764095784224693524850967575741771354075933864508019137070604176347610699593564149973018883972952823947701103533740247917492493089896293944544389248902042269764159032123882798192904042005083343129138971284436152175042871768120642596057533231925936651541095858548022359023562042822887484788225201690615174741321729517865028865069911971004626931063170102512309208625158772436250003430236494437971382927999732304101709831873722277001383609332376834109188749148108899803016597345734243448899183955125710315652557461929092110656250334742017157731830091004025547396552450401553091405346239431631717414070562483914804402719182016998804881802069107496872004959445426141594947330163544495601244618142354993929737663333147484025289103571450709902664275807742688711727469315717031673261158356151301773947222427767212398608782158647473606020785765907691092743299221199511667181020657537771378125408809113280723760445554731866921853441368101688932523166065962864505307267524800502782506515361107249659232578272559878526604869798558386099519401656963816426629362713074178890825380216436470864057019086573031434489228728553682830847317509148010563993899614066294305203613880827159348217609940769589429764225758750573809803193423458401007378712202048800568689231791968859837376139300835144015173850662185173825072161444942748045262895660712613127269008788848444635742394976678422492731954714377478251110513649598320479033221051210601760537859930764032565899150866066285171787480789266345205037223281864730097890084404773927861544090594090015694780587106781561730639060226395184215248983040920746398991959296479597363378128995812745106523998298758802773137182190311188952962477720182301419587898856764445335852801621655401968055993932511208751366429230735851056804016120610566039201515740969077342913476672087626971316567347801798078137984687627117283862175566990488991463811254849969289507270593365188916554101844762659439786210948441953387396280833846088389013601389405304288393140781846554492661225674390967831114689872979815905507838247787737894368126211409122599916444175474004607313374132884426524860365478793323862238144598814690707547109748943816283303808831156922406942998605060171948930184888423960846409481831607327571352965723298413432972520425017285310609124275443647976014907641065546558657383039334343713104641808741745829288968279624059882908096769791856817562388418476353809589801962721999138913189092297645495620923389854702025256719961867477034163029301034083115303676645762684433276014761052355179647333564832226436029553474172716136429656639251693394829114252634099145322052034801016398160950857915051587583733017884501568588565228192293259800686782888479386097080883797524908272977451187522040312175350088961434005446619979911174199483075605956999321592384018181214496858439502787754170570452591694524258239177019197283360186292471350885373027912992539385866047422543292817630685512956723840287238601133575644989013559641604771177023107300145087820984278974987620037184769806781383011181667512422073898999338855489390577677959620842805309910874704355123437213546021640597531664661470942568708077736159032890602746300156018845999667284124234682668325944465552727838797702683991606851008209926354394902824400277510345393673485210120287222642597738074772542762610096399027564159304675348939615386189844871723103042174298928141754255457853334025783070967822595918279046397371888762532299703308027408816869248400701574245060328980862697801736014419397408830019957344751914708298246356227494716188513413286692654186562912212736451190661787638847016412654205808879453341449952559365015678098642073954447079033769039952021031110954225174435830163310978191264183397945793953550834674066030681251016994274716222756200212290599603730830993301432221590921093692511258542444467663170011437748774372557679030229547678072480494782914581141099980729419666926741802267973892524466181251918031468665330741916678055239069249630858513445413411748522017069472411477564189681652680631764554675774540010007133450712104021551436879713690638808440992263591867242091211382981092455985267252025168192731972237215285179078331013571511565228120399480330348293656292019901727578661644931982041915803753305981512997572439911563599415916424272740933085252573056083560302496525454407910455947398947924906719130480421576581517777266188630482969909326361627519446171480767411601579919811749082017597000596243450532378090207553079368678143169102598231761976056287912676790451517744878724316787009712384711645214818603301548736095845476946290889345402187621012405294463575743806239124442364615606236062066323077018298766856721665719200309595772214965157010400875070558340483397737211561843464841060783461955100827061845177486749102474939634470576331523654362819223859894525682127422495092161013410027206048159045464248451612999937545617642644238608416535105055116482145862882886367373345819264105892087943958294174625088397501338050536349317804295052919092226409718274112889987869555507801367863380321189207023583645407101429642367827206644070517497924862684993012976596267720994437027297799389313923102579736072448074505419597222964113213516226472150564526361386763838657079720913622519573092205391830238157674432317285419455808900571461601100628747380823427324135897131243863319323068123235208471008594760518023575720140344135459909021690377018708299811506798880142524632117913087063124339091752702996977888811396699815723235341361896260918766460307337293891796433100476175234857398053374267718172131756490660319563213634142074077432348145313882181978967273411722180634450090640468620236862274058698674421031595446189620135579515094076085437069127582302013041369456652361620518728450459968983374290665676241834222305819861916605106270912835420979258179787351128004804750650814553494051916887847663712150108464856057688820369137714507231849148303529384074059119945450044553187312003797598988838713199686419462456669603145703284179288355647859847911351846359980404735664137535848122807036053074862994353671843196865914655371462521407664620128594941013898102893722288438118930914900779773944558848105065029249715695105449992570009905964016235498109590047121653840700076421454586972832097829505428446316524462067444165861803159461198347256091764982300771266983703025131630411770410480159944968953122279041548538449523059466520186936359404465511929881423584852752737773836573748811420704422709804727299237055747152665741791432105194826648954114635583965178439588889436413697511337670635137001303019208514552259555480217473598895184852140416893212005803399345279537263619277275211661938278362767773009274817912511752429980270694764165543568465687917599741407667569372315443045795228139189712216265808354060077496699696146306863388315292109004172525514572195857071984534553802450670255377863421990199245237081777664800653738785234270808344346564603227309351425651023772739759280015911042186979913877528302676240012742774752052131199803414295263876304327096213728772021943711766254165315437298617648605310826466162353723388561363148242883915892959980201667776418765483607099753989806508038917690443708960413876661407654812883801788733095154768748806409389832917932571355016862585752611923863318627419417927501571996039074247512900968689282502486675799628801295075290622336908306323394064435124199676805298986134723958759519153770281927709123676010374722242314766366450952511881344865262712632688650918435081681014155840799829040167970525790698154945095702316161923170714475400079548161376805652952300328689376463528435531571949193523211644026883928367130231891573515509410849268862322659557919843969953911696902640468329193265860007084788279478722225180683252420568473449196893369845292418188559990628212881410403237327478834728120736786712133051314478460560681635768041370944270100850824545397356663886781005865520438773261588426918391974312169642360299475282635383838292835607413267208859438288222659930818764202087385679775010961007232591013237286272284968074632806442202538312144143196774178587001704785365731277619624677404129136293993454026852157983519227344955580023579241054152164789949191630177991604461246209077332893702919670836307678220566775809137762964727889204942584946162924272860178738320355401975240779747828712152824073607714197054182027005484995454104782437235315976728542847843400776688886879236772451632166598452871527589786397434196175782246959757424686185710821767698244839717163707762861279107905761671637411005381767433219536039034691264643564026135653884030063906083133953948382925378167128851903088773892234132848569955612853461682159978274405689719133244860603741333254367956291061378285055046926454045197810575828749072185034347316602326147779210795585641713242800966121466746960549627287534093285567527755990532580724715871976413721590938814033321415781033504069099906376123792027475325210774752555475548031559759840550517649567005932929199228351488718607566400599502638667722751320965766920793439183548089086277759162898119145698833759266421913947161414284397807285330893934222799660305843855717703536308124419041594411977757311380261800513658893836661356900117560694939508431580458077802231504310805755833054897225578989191193279653239101456606296875874805460771180370981476791382782664158648767957726019309412049531873896525845383415594622401791309887537585800356567669889091349888284232279142083422105396399695072928782980380226021595573712552487364289839601935778133662987968418584556471058900065422039303452723165183214984317419463520674364863297067605183639483991579445717076453334921499575942058350229472646831982725860129877067658120689786655334317848622285392242674019315747751138459251445035620348293784795266795103706474669408236851429465333778732584833914924081822650545813520538294047831903677637497856041401049587756442207901916672221503512103323556475219959510739692675639074539270663823681207759445228074153388173762327956013483225392394698659486683608087391678172987087643020355851490761111454810516438309938021795776567474897517903159591000060734736566495152160763958423499879556765985638756361419624980506149082400349758757393801715566110211797757062085886191424570194393626161198259675034013391398746551788880449760039952034948614177315788772461213230642269145510018679352546871598253694598524963957866588476204479781293802835053684779390753348175208672179096236045113054087623721945913586453828393260199507482727627048978224257146333550429500046293025863668603828681288401967102468240819046899893834304793485804141686170465656759174329041470524738595434099285802470297154112056471135215325503766773969082780480810005941282640249010930958686874893930174884235358887517684240357557910308322743727616987247492692989567617315813733199183029302023664354608491682503293606526606700499914435131612102025350682223378651040182417961911432950104608040821353517193851871885891470131717346886883308905878192675520870770442752561096265640112086181680844585389776701175997914414121046597098581007059599405787720889395963912492493461837373056622995619108775303965278982866290385062655201218568546674065754688723096868862508648729291584590957201270775031178348110819006311489007323161063889489670637750456017472552396924547458059888962910214981348427914121694189872550642281887741132221982401177585635064888941865812950256589412856825864097226855705736944470420363522360536925776004069859625898546134355935066978778254283176442124415367435140427526388043357542184217146103741561343087503825222096589251113846452389183354128931287179165078636138801040892272713695242039640443546918782665338355318221302534506241012468598375593591269908249424970129029501706459634566637485390195801020144069267465064441774415100011390685274329657546467961805234012914577884756768558323676377915272140787068720458961440848212500866320844201649353584007277913980829980728116360283425102861942959418728652851928070729968628636097033608096521749032660078722285628527881805723094696014430068941600828211218670097467431674686931847968556883164634342029474100127298525151479213659342057557697167032423373694598033055886449082196087576681051789103456215516680046770372918571883913699056669044457541830046212067148596242779349010861270274100261911333403113951537950479525724775645092063674504814152960089714932147846454337593880630359677865788795740558051660711780115155020916084233999763386567000703986371362844453599165124827559076929758188462045612421836560097846777987645213923590962459275407795214498001653670373087951158497110103223670586424159377718585103010878802412198489783429312146414711552711362113182343353768355572363067868700993742046123072871742641788390140035948612485955672112174678929545278990837438652805910891910701211716143311096373738175981097582180826681189432727755426273700731277611771955117148919200136176200383754609071309934850902473463952241468294530399647572608333186847862069758660782878058797054743033913972144153230197942198599678216958001086741517487610889447156084190774652034506531132039172685014706021878054638598252802784476759393905964918841551101040961758391129787889588460241548006594111220686380703237500537432224006881846685569648328858340545918528657559503002540359907846589702575959250316691752819782126448176587995655145782725847213360157235249195977168463008594940062172077313114275608932026025844173764453206266777942225358323483576650822568747761855378623730255585048375779324971737233642120751081707581979680379995510561073554835111574331204539975185043783454460225953655634925704817547584465714822509017463559627481797053980897235448619467308908063133211569099206069196111958366548960487874918744347833053342872884654015241575892447052931051003586341753248637231826255902874665475842635065367552282181438861737082426308771027909641502763202250590329143671780507729728489509602995786208730641404928875061630062517376888837560017225849988840961775012128402810625192252347076908497548846299341794014866274692253405722694239603548181236966229041310104850881202564054131123239365345468550460540153086271198036218754499567323062493471159434863883287926522425588087755194321333675644502855599803014560242953927781501710918943855005773553664130222757215368862885406402154596061620445201873930397918270719701483385006938518937939287049685867778967662409285269487786590223605878235809443933894332505481174237554866545288414160381797808055436920357968212305534721881279616143312972017779200352147123260602810717169047071780720089235074684555718589566504280149663085612207551118192599772661096244406760426461302699125197311207468694394773465589379047794292767331879714514766605349067908288320258331815416191865274294884002354880304207002800580060084295607404849112281618799208645973361553837050659468625390954854896474512632303250437768079072418709907087818037358181743160554789810471594365717203675562097879688124455701872263334164675856256377291696308554809163205295490995894167218663640841773262882998758793892083231138360788577741693443612241922007051425521037955478368226306560393784201370858726525765328681642962747638414209004730175523306524160774674321652973724906905279941730585273682915166604851584338572381927763738886028247204023642248821809249933895250622718119900009378995944727717757525106375814986702465783128315426174912914614487882696261225068372639376752350083399252951826575796086802471503289152154093650659406615848975880751446900437523173118297943526266436908843852126278125937661611234311385333984674960392893494919111484339961014683069164102752280526753820029698009632562142224657922303934146220079370490701460818756055226124314348666512984555387635288414352579385738788566764361836875260400090856338595248095166841788699024600112102115446169685564499473063008699283667641210058575490123232135672840336982789348361570158300759854944858919717916977293120879526951872186088374511929937101780054414194745729314890338950858915699203388481763533627423782535221601691278909392323997483861327014519554066653547819330099503974087075962094504098592736046440026826253605134961092189119414117163589965217475535821691161395041873980790783151928990521183841422940310706172662280490010634130438142528939594914779944157653418819527188290502131971168356497002617017895778981757641127881298754672451616773028476005264549170860162028857203569414511849316759502438567127470994330979887497312942759932347922727253868000740219239492578942869461418877136789819992198875577195446851024830294151177864916821177929492733676675769315162135800286666290565608793222655272514046505420394426392689349169198650476840288193267540484407154460474379164947131491657744507534334922770315364892814593980166290958143352316964031011943833812620338462177047934689296361957178880189314066852064310599494795867164072788053801293626041329008458593348170831501220447701892681153406269580985577744413915633613745014179497495302293515119295630209617474183879486961645422428979239996753113058272702588499020290649964779482979963245018652642836218823940581477368327977963762767973839509158263825717331005610418788351869157283103695200797684030685132827644577756285700721401680428495416097510773615052755679266621399467846334150388269007732922667803757789334009811752241974513484177753959777422510873122409074212584081116237782182162640054097644129778072324219710693522043266165678823509059245026365010077382387701344891297124366537975275689620876335120411146002545749333258422545299361550491427447543989801245969024239882259913024660661626303622523111448640847969904961877116340635888584036656131174987425794432515431815055372379156548282147266957783847721831342596122080092638149516082408289871301896112713055791785254638723462122192003341841482570066213873109952065982874194920904368694997908786171658108635435786729834916248370723101288640992857939381512179878594652200735790774744776771260901515870981267369796293860792514236336950486718825272052339654693327314236815857375235219360417669977234521380372046909558458448877700772473181044967870900618366651182894736156375474784281260930898105376989711504797571666543022911013491361565456903178229992830381864244027244354820425956216598796101435730356703552554360535022171637853102759969688291939044102540610999021450727971051003771056443235539499936614150168782271041836153043615362462620573074051256684019270239811323552449983262091830189976871499467007972557043738863304225754487993450179630188288596145501518287941836558599734174723681360546320671981578513631005511828215609422355097155401345788641059973638388680562858728298432863747845085967813864516650564028556463885985968374873878620428697419719438388667561200216163825361987379285752917726584297802612785463571129640282303821245859434746035798640211956892638080652495310329183197564274258290493998073331751212731124637578705571489119538041929726307638387437917938945355632214040440841093571867859428012009283643754500335621711367442743004571818302859155161301664257791681489992316973318737879272041509939887087792811627573692269607998620865049236871284444951112435839902017307647160037809641982973402803977998331468177799100905247266367511929194235173167290278612475623425752560826100902466763597892742198894564883701185584233870254224123026911864113757728477927304484596319740003393539835658919105773865601903485306379413649234036712141552896096527162255705640876014876407313854569782658570184757225024504280760370602196786331687413475048384743293491187187587170674130691669735604571698889609359234160140259065798342446065594910989148543313227308408845281671446040152519945437814554600303642583041690414773079118561478576227594393223009432248259939258444115427475044559980832393264615133444853226728822858261564188044385577754671553834120351081620461545443544802970454529880968739858181198435419662484378128396888194129816108313524748307499128739180879805420694491773375518960154858110591519200859544056179582131076237737219192301059818098100223844462052890487026753045030322576004422365354038270787680127147876730945050637383152702349128325003434224823455134499719210725934511048639385209234157031207697365551772462984146649585911619151616384170869862554132212138333151344687470639800996022483383075272281163804520255704698258223350109432655819784703479820147168950389372432102341506825488342757851746894822790796376368056592358279222963695255805628589320206634963661832782636818425700815240040501936408621104628757778814991725769345414377282527853814659062860661859155213007604149045311017820323567645789448714385099184742073272208297098576580948215718355585175790412613302499727198486550143276260040972684505774626378052084389433546774951544612702969554470682616271110191982189757187877331766339386202965991818189327408941963175755771657030210024930788521188975179583962871144499054282842097004779604151177008056014262201147014491470748151511781054585201366756405860461111936587787700675008643930596929782743861576190953661949516126768052408584198800275252542097886898624485592991651927360148262759153278849791368354886920842005018305019532911523842064803228745002906020485012563941370144630998894535325384866477794363706528007364855067534813305694132139634219421167213439726537505572021659186411312597108978803487289574519847437613188188430850704727307720770912251099158996879004374457802976184313410089824569644784583840613443777013375049306760155688194419180251990578944881151056328932874716623550720997759987382061690192683159753707831228580400772266065069776220170517383828619519593550056734619144493183262764893530174478409146834896543007357713509292824062684791034315474642966548512817138795933949377902314118351392673678005152429635213606943682764064768558346552177150303882436211525368546245668682734240200372195880667287258626988736966561441371813110466670211240935790511899314750187548133771884914457477756934373514764435599572650966095008921121991974792804706743085111584082025542540406527864046277680077097218384487244157630479580466413600946111558763207862021224668526292131578651979772235040634656220231557829205856263399935302551383778493470660721509591093817992869569108437850596934032123372092169862162857266485125271300901736410567431806482752708560254545186011590047041796099158683852545808710373199958596438615775776424462464444689074351441071536197186736717247239518761434839348751040403967838590557514342911109224469202586002420825768474410304816431389473408833383970287643356879867251189330728551344937122661563975755187966171546644201010395385919093222568978658503767031910250240539993972578671354618908871967246505081593505898562355245504652577960437501434970037649377188497586894029579395684611823283268470995614386814092153865990634571623596644582369897204378687880470877744533882987816969942033327549424476749732021748732363376407408057349500810361983536445156508044837085319815715667490115214133671610244512390150847011075909806529865843301249955641846581423813627126933212105989889072989695964874859454302417660060174882565679275315237179561218187459863427998480670879158645193507939306892655015605942881890842295784152078883006988395273538990386908696054301583070944742612797727803049126019013920173713447200046257020743326656945454902646565763801425824903914043690638099368618001288986015851993860261140309193231120091312225511045121714724143904106650139930843940595419296509841838355289470874290749457037651326808940799023328629375245324287715239151700742598865999112891504050481823313196706739741394569718345703212683155750019908867489330331363624983546096205787373514719759374120681647085108072322685936478905842597316743135841319458518962895997715126332909645026874190397764446941744111860066379710135441805679498108048757611293699137148482153965484163131848150634520235401905539799343299007308846574081098938571315541617839413111445178588558901024277944374848827188317454725490034968116514383631208390372555564211048626795819468810958141726884401636550220535344323816183360228957654844838426209129335716027644648349049432876613297124738388990817064294122496169490462170732993871243141422424012738133693604349492075363709057817461873226654700502338952040251181363407303326938853202523319351080292783999853159912286351110702149390848986266964437828652122840416162358526602730273918919455231807735834544880888284211245389532412709972950863721627615632451280500519725849118253452463408320084461235686543376922520879281382510910255852228371776771470306669547520198908899365559814201055903826055153380536901979853426162814657438889338055983053811815117596117714325675410122760933971544904727764389639013903993090390792911918940669318646364653334230000266240838326310694454153231180392016480230773578905274512684326901602951297306066928474551009717680867834016754769043633274650346966877478762857575634285121652738325498257525774432619366154472364784684985292402906698677415184695553128817091071674415606973519203039250535748486584081447902368806713520580839764523461819459826617238267015542142024941239133299903115765021094002834602338740442348362544895277662279790769828190330515252421910133446999626013933432136971603027607547659319647312363512665241777356956180902038316768901291408165142626659367904763793332049358235113078132278187606020388521783919174722178385849104378744117414433644948837287005490019379874384307450920722383524155562147243121526719975872050548711287309326777596074782735675986489752681643154854885116647774932404811479736716569872121899499581424392294238639270046856191015454898663969510601168252605684215815556768476676170183198235263868618247040802580554948399376243188469203317663639332333401915676980998234724929600686345274262346723832278932593657643779680768760386864468848376880755695433318084852659613208248753410036884396637369403382566144527789685814467778895701096662312395935400570125544379737208429527137733539731697599002944792637751289640411194125664925330118815619520006998486349322339062544608446287449973419303646045544944691308615028839971735889219273132780287806745091491398102388468851706910230835606380225947649337326346442092694232752585563144766230097606710242319554899728887079982072546937179503109958059363082391238561370345645530771737925551841935660277238210090250066596879318037631153332531873023337141053317960588500913832825310065607765481442972492437282356582383234364015430745748237823857641199558956407082836099979831771534984807335639472348416842500823611876693972699481678272176947335204419420046746408876924467913019293826522847300795557593950303026158623998721397196342167307668038727907326360927353529932513961462789979718318896127173201873410663464644476665641778395966523680374630038880922455503210465407227847199583484932686482535667440867518140456626132510509645528390100924420124666194491602065185019052803599663119715013639243235523559623254828410232855461992350643719370956597373642470519847464980420412842839797124603671131017151125384391232683779573222805789355504795772312459659083140312198645037513325179938207279500074120270464204159389514793259544148003937760575449917622383704133919351386849995355284745790486742501834720999947786177670326582071716921355600623946701131865897976807949045745370096017436607456670475121557327870972103400774974594099914319119542771200155296525699795183912346290287243195882973371405331152237306656253063773652252831158369919186185285047370669600570756245476239663620158444999373413885149096250654327136419204332290342412826705690273318212689834270676087983059180625051003965529549655913203747345927040691870715826246999527672599990247203093186477842233411115193213738380877354485461769386963312756662696966432207247078070861178296646308788876564019761904471090899534461343145550055625628709663082146309078226538801147177885088352637136178895005333957718819824612675982137856747965906767514615897166075518074532838734268426971922186306119825051434253470783146633538917160530155874127002229136460266414469635754098237274222722973602125064648930411642385079615240763469368274623192924704960208029494903317179474630323583281699064024278220400975472820775339359913072765612317149755657298255166461173832218244400243258549440017684519678907863957709525207314888966405929402206003016941871910716384469592379218424267043781829255659082829449172733007214760557108191823233430294780154303022553022483574786319193173079664304670004424164336491743681860800304789176963846165946171247625616374009407323625678532387100732139586449809327519605585611534635133747849701130332602731164249844066379418125405652962641930579800688539371325872725933876070323748759466892305468950700402450407378812985924509561003457271491488262120688622342383120272177676422596798795529653549819195955019156468238525431299340592800731787465304495073530624951169996475666417238934801068475444840451755463041593595354762031322870802203038999291002513670777760928917912220523346269952346950688084599089879509115014225282041249476004170169315201145209849042025006858342041899592658053497986082301140554582745105202324953291079181152128828846516558937617862555846170244320654695017533329516867528529138026086247312044153330693038694071822406558297493724338147511573270662146577903993221417797285388668938430122334645143142916272524092440923645093478868067969686013657125912930791839900505450544486093802508747231291061287374504595046193770129385504525001445921441832486671662201658460104064488091787872276442226898395574141926162699604474731077213318279102595895681966666333071472038679053837580763927738519496494117626401942431712336585488347653996214437487351842491761158350946444810655948873901623756188971991758495322199378998169897489533660657916916006170156636666369217021297455997865856678911343021509127114990116839319691004352158589304315117067184234362479449061361158038468075502170400039964398706912076616432861046416071919503520492957092627463474342217513548293087442280862109274571360705712246290754655070921442912109372786540947930414237206306984193056092110656728269918742151640033453501963950468103494137165417757398221097376989144143909328593126737473099404710668328690734495502211701307888351479169824671780385989194132612902004514262494494934699156272441362036727417886784873501058711095363553796756177447403243547263798929436809707243219476808800522204448483423162234959868507856494749045990780547778577068430191729306155521582586547391553614539787129951347721676584790318590141911857189451381294440853055245861056375660827029946301907298161627880630755623868420866644928655043318709739044900797982804667760321182160609910249435720306659989540696150817774666509872816762301823749025959545855430564169378382711459523249758435040139189651824914747513173274992117855268397804287586026419621731582916750029306042678462159726617421653753774192338566557049038650154898867325690140787691305707521690946116549703878897993215577730828446300872125216811315046238782948325007207635192980586467943224368782486580731556677755103747447495097551183313457293767070029042527948544622020718207845542616735015318371893430683953065150060453079343207423248158353557417240028887024924507861829199932250450842013846306090420412253418035502325519993338745084567266986845105510031230556378914264864323769995119947736334192617946404359541687400166475242551230242139031211040618419020810202271606365934005776260505121376688904529263986849341229273857478144171838443045753804340279434264403901659943855034104893660365558286254844623895643720815580826020825838181709199344316267641780580114375415273729984241906678780590224626429853211037802049157705467757797093961961429915209250931603786400118785581831786337842355978828177310782692209127814492056726915444127807676894759480592488402910303529386215707315672488300176343619567115114906184918092629763169016738481590553423686333198774109836920666513852792500137515203325953448542950885701066481332937921270071057532898287082865455315698989485001770366236479145588131699541335660216399657769453244884579755040337057610270902405176891463306352988299298421524090759288593756149224324253968250517942915611867617050815854481743399867306072160139364849646483598144114099396542372716928676941925558611350594787298178320879531997026650946225967920007778868710570835113634560968054900215852046319442666354355278235819142023553009886444767395132880689272150823934206628348215387528835329927790371524707214989715913251750531759644383303180176268564746370958850172390656969727384848415077526505336424773055883163095910337615178307103768891289639109701090822508604398799253736014871700480041547233253605352157561762641804722657086913008171895445251165823293584170994446171163614926354641031726134120094393258879507131386461298451437798748709119920174890798370315429847404085098480285704833028721800664310514591965804215917401965009293415053482714190332023649858498044058393019110404578342693252603143039965478149214781037386049635170303356110120336685841141124458857313220119033516420204196367712965974653411925354475263359363623722289695104555304868007530404813896452518685810870638778383711623972488803134823061370796702811492632050027407710923925998736458640627469680818002958468341504344345363970537870589265577637673880733729240693737601720691803381323524418805958135050502281856597790434745397811807213626451868411317774199552418295159973935309123942334619471600603947083985829957312329006596849366720501099277041811397798574604817852058790652736137142080001941206868503345172011359807370271730675279400290597188314833926617736394358093422101703265238126359657760847503351038112203836312056665611565042026508572492345738095089038627966822401918832991706424724834329510561625389312739919032362230269234589082157615659797344704128470113833213660264178925717185702744085206179212145540789832534674396212299439340367572966447894792223306151267984437819578286816674863069903940495094749175659763496574996820703618949748800782980673500110498672256011869667677772227050940364336385855816401228243646757642234242496898261805670724811349089869872141525703500578548443081390657542597933617673906634999917681224578550591145926941748664267485425720655481972959680229033886135383463785905242053068075775572863993363990529451889095619063842271835844043377906748275211028979019604071165033908015329572242555521063847632392093583312273583238790189673521094795378792345548525883131885485329780201264461266710815122829744576532064934055746713068837631109732810708063373976244505987830054407026974051897910189999861969983830112073693163616848457553008033361761502647766493694185973941384623779534104680120343302454899536349165966509844386971668188505976367720356485441833735679914769448990693773615972869817699570645978393436036673581931406203364006242279856990073999949197599126189594878799383943395637177134255260640586054450353232863182949839321600858268269224616123907272335259784551950975627360273186775965186306570670963767910116136202043490051949939180968722459965200440843241476856343124382346994990333488586813373428761441887957330728905628722619375174477040817310351739672447891110167090005544007446708162380733346378250964754436506775531335624553025559300236283831616515686662677311711549056921960951270436354341544962095193027995903922625415208171347525365670990911320086680324845909776885805208465744142859446060529834647903759066612393951418181653549143964965282304635903023661029674018452163890593662607113559489326084410006173398340846885885258551846060864621236271521972557320657304306434369371977041464865682041179631843516968445136645188562256420460870266315855325664705822681106475148370894841093743483782990243485697574981603407323362053990388846214053856948981403517195857037410276589913017977480136711086293730932835559006472909011642189193170330435854737110154214334681376673367068028476416116464503962872152408732612533169531147884634593219522807118270142469728696349519202486476083922665759564094531309648350188160859659678717295149055769633823118977240783062139753850481098277434322179480816960436780971594622219817512752231973977502760385587695106682363299573654366734426095045462934412947222110501928320527559322930365455996406806168160234659859973709766696517341136556705886531539907894811993590383673073024071508036495333583892973639240755516768464699939756210354108606810362956958037332443201926097011824321920188124752283484988089310443190773694164256183682048745093819885897065735182984747957995939711994241803926029394039346174933216475586756584183810542404063707648486733136186138966209666523235023629265644513772671510735986890323226334296259157436149247300897218805796596984478552994770257266444989195427917263022523851045369486969177622706417119190218760506967714261546311612110009508578600444135054721444978990403020648949988102866929516852499034381835642750226050193673795476582969285685774230976529042326892406019662674468228442575541357963448992614928473719924528035520180098371915177066460216708829086860469337261142812156981782295248439249823860136707260101042574456510119691844264388598660055807626433983808263905573554061314844463008780885167429384769226566447467625877156573133307568429308414924681962668335362141583466119810176027557069386500477607092360813700294815091335007460658303755430778077686347852867734403291978985575736331588229417957614783795998693464150083462103345477152016679795704097698720518737555659090368460714271869707471821475381699404129062433175287146313514767612792276898697912881977266029065303596380884649671193506917557197135806855495485772646923353416985148542202993045934942837589316343837469981540362432068133285717824043755208510258601034629676380301233099088176068305944324514343287252609474969252606581009473090400822738512966902366987965640135467748249447636098167658812022757307180871695970506186285491376221972326447862336582500750541821994392268178246681900459358710303083561368997872952779563711911400945244893464256481834055478823279026179832224551776430349269377107558891927087480698606541033005672849410564528871995259303197737943268878171311366189916663758665642609059628783584635227111162816696059981869285029698025006401789437959508138774501333776173619452507521073380873547530399362532298860515025394123494224483148587223598848140681937880459499693476514931168001238627980340110633042251456716180377782298373479673810523694026570180431940247924708957521438835544045733318683559422928101193830106186962662444313250928084512413170125490008778241642843647253169192148626747484600976918292029375192357024841792359283232440953888085479445079773539725709257001895338770369604326921534693774796838469478348866607262508089495253289528311080448105360023532238177722388180657712198163035697470634534836427722020775407913357011015964487423327598244458670179355534925598241133855684651466015930803736034522873385566579556718183607051389748255198442076166137582440962176888786756677055327319320035112323012864328792163597719579055118265335778037386321425564238952437616830684003631312439202275958546102810759353171599725759627151472941470681061148510969846171465228497052600502877641955889935073349262309590512656188300428051157650123566450783067377407054982676993976985575223191737716277798021538351086013367739886570717424626447313186830111086688676854225117542663302838030882089466512401665987058076692567763356899401695465719975400539792498011624978456386617633597473021933115550196053954619384206257833651693632289208681041527261142989160936932320719117158631148093524711721039580668934740893724784303995717724220130364152782709539713523357641789652950045447793402861076419815064278756665966818892710131481528317257139556722290236481356089201808626038500902523008916734941380058031423443247853298948433960656035585055330142724886446100070137743659231327351692013327456208993349106199724143384319843046541224157219428128443058701430549362939407569386474056193820117214663787248579199455492205383599811712305866060691420591860602788820804684381484122083675862597616153363718400336109504908327873935894624785093157278909698593586750588570836855449656397894495050079488505316552763034649502277338294235042993633903757209716904479910084133546080690175654653561382233977951875843545952875918985091880017266924073515863855071806023922761953899035385381000237006895208586606461725733066750124695130741724009214065967180019813604269531125651065688103884445447778986628659664524790564874846727099671110140491185671786133775991059762917230931696823510599681898067506593153936500164588589242723617823710201727258251551034237300556551731413735021324411425757326839133923606978313185361709845070275512444143165463203245950409782534214019459956071865956755119956580252696366810436963660629771394909869575855414340236318494826318880161166548492503434476643922111140173629125932266025197375772567257015888366094213248786203732285333693624779039644938556402316647375722185770036117375208241581413724455067563239653209675591438506538333688401620912408364595729358201379442130577725692618120404192437723561330018327862047840299201640943547148241249051897161053530768212571657531306482193437332089868338673606634495408559005721066938890799970470887855510434496610513874942836148232289705964279275321878802263550957527693291128943874449270747397274315179698562319343988785870148576011177401913528062029095119536269589229203832443789581544052369738085467639131254663224322172237173879115222110272371658565852802156736574246949543329883931787293068891742049682934246598137833041060029392977474104477840656225824202762886018277351545811010716811652904001505103039449668487713610209493664223899529765489740143384227528513595677403189478037272582535482567041829679185314820303061722278461060830798326267583623694877650857525173594217818883084070088576796279260564243164141424827542780374731761878768547250324527812312476460727996256720695835237240008121828783572879195368031877097426820427150502944948302428834743844196793086515491046844409956277057508458433161434356815726659901001812725459185113574519744950729835572023083321677563388596930276454911078152304249916109051675908380811568346105531105882401177024645371192289278285501910201148577581246754057931672079692184789951431182013632725663985313199980633910087766256887019817243463030336464287333875844985293724503755215361195564234218662584630625489878160217984265958709690448500211853407364521230124452136356681043163805531360959486861034357077774513484962596081532893537630489936955570371309425563226049261702579146081382769292976867854357679010214609491716521578106401219184197840321391790286306866238424354669508293562427357154118925918067060946821481211569689022403328423176246076656088437653662399032866743930536448711169598009158320893992013968866006381291404894380546569097534978010239688575328296932069985291125418800012998060600456362194605080258162370757049072125745918985309912853187046034046234425075649456640111510534063268483699758673176158964845203664634193338275160923454123784865278248907659073746397084311966020133207081453771010256802719002560356154088944933007546294564465543223206381636169339616365812514619323093590355585592135591703559195155588268451974025791074207015647028381846910759621387371533585227770930807531699213481021657016654138998638141055588555256031479441590328151478730019658353105562954562087815345689998360989443211339608836693316306964571980545012606068754485879777633836850227076741363591980114921637579079385965188878755937536227883023750838899394277567532651730686188287527108565721258270720784774352441407594092775447797742349050987403943380135181607855145268343156753609884691843282897504126405646445807136570481852153907794602184524033048815284560113003846956337953548667868545635066416980935513914819560954999784378306639645312651306938117136356989991767220348067484230059941620751945009423661068045454048248035612176813203714624843917129642190404936207763757704184540246624638969081841268795431795659121437459266418587891514182253940714335979834063669193182789232932120077585786059865079486448103452281486221556921148014016617448684654181680334044725566870318137167457045405185162329729890221270524858744087655265122549640806373121668699589157053795386819919685993738074362670409450836879102808986317417989785819351678757625791176675632534436223082966511933705716922656785913948631011394869371514856386615407862816982642005072544748263014053622495915122216149171034966082131802306323373013491027060586363053775309225231401973260493871755994013436497112730200472927249106403829637505630254766001052517461316971825683684830390271782351898760290608302493334290144930521819913549513715693332042325340881786784827707653780945313740627088312937238272351928352179959827671929495575362574305903173130658146492278742421502116921276197498479993919071783901242112842875845998686407314113134088781667209078931101851130321201988411249897292891375849301227032143931071180522010400553479832682813409984662582629611305876656850118073017715252463248731473678979083209286727172513374187176729850151032549045167787411203449316554550783888798066698532691390899209387468960280047892813783691917773731381396447853507750504593586050802591383668432876727788025289036547768864292465423395641343390151161660731805971295515553757335825075741432845950579989038206655467875099907482861025546580892325565432843294913760235584701164222483036901784586438947762832015795256046938009904906239235072359736030258732336462778557791480768361610952013323435195420630257612507294437136280435987082322698702357840035505908133054461959858662130456769842298238921127974609723686245019966996975446358302856904266867736606839093613761719305576869271826816017110506557307185163982294268674694643543290887751406965209846257818013827422780572375859421277309809463040100656178825355660939062936601558988154063883765406501948028725564508291512609276755073542333648155167284398859687774648287937669861140618369085402529070420681948733449213537750862693101656858266799442070468516105222383882842626748318371293402974598604330855756404982452322562768467269066548466072596307332358618404533668417259187080503576950252591984340325763986854521575994406118669645115066109683783560225157746409343144813013607626380021903196397612092236861266475584459772519354607764190197088754886745317339524601482317665281849280533272434582439210673148396577756697010775609881591914272876673247513229257391603395202492938882728604624501577927963338128959333571982177060548655904583958876384562620129146963991345570898596789529927038792277715335805620712505286997317427645920636208064430374997874445400118433631364469191814230065763520322846744042926081416380187245219651609004264782420042986067652894465551390485018758473432899127767870827485893314491801120853512965214396954167490921143921730711625295353626354105229770908011986565254540949876913724002461413948079392440530590215174994798871885640391021318230843499043441617040175522273037050146311589078336540666044380917390970094513070227039910459764099796556623990584168591752046871244895884424239465658860480632101048085322976748621937696045701974166652384622731467632975359741007693165339950655755454539370191358439677821960326318761047939352938124199333409047464089596610584448183767842772295531246378063015993323493163592455020675605993057108855595387204448800912365397296867239979358891224017927352112900189419955717735275721788556850995232699565132782985273984810796894862715917440796989795402975813547184819539960188808475919779628245214205504341958109733723470057363408424587908704914490064560970654712549702462194297987177207034284765331633541985666508668665304573919809965295939106857735689955914287826013969226418212058511944600957533887248394991224484484181565011235135313151724659633132834152174833983438256787405552720442143374428011131540590557348688076355493205649968424511006595457602000013592373527787800981007693841121052997708513109062551831460959569474156010632895745833413176736990912948114553279659592451867023153590827664896570035865091121224172048809217586741441420113295737501304127779388329832196571098951716423339361802889999068651012416855844178996007440338971133613034870200282487609676808596381467769411442209602707334725766538770243785203247882370303288052416839751339052914180729650760304934822849683926635035439087286893736120749349994806252200931177663363252917084026560387323121401372411536959691570182952023897257632756847362548809726585038794996507890597975953338080909347903889373569316248870425933137797836937082434285025209592407113441602432540158375249810265552140643396164228033543956686062833369268541821493688710410573804983399806823957234024524667896330145451944365685741543099206475325375601868692091557706523683067367120555744006079984130475093067051980035489638808756392775358019499100299370349913998894037164271214416898001889565440308891180575660476866177806484924630817533632073442073101423029743896186191070951710820379093901279223567724344219477086202710981748662001305848012738433186517622996049059305935878118261652723852988004632601249181863658707924756233036401219588097119302011886525159454967650405621307624134996133917158533552140352341151504965001445214394487658809372517002499449941006679375138399199346495498869139525370127836735810598256548380569740743193086013811795208129246816179040947911371903187073445498314343620779005043036861221553679843584216012881682313704979879935151110992351745091962439452685099106935747062404643468759355165609632486814814253770134464994332136184089542481935252455508280331774904725402703096466316723318336273529875159800179720002588096087664957676559269318121588714578252365844438798476879464359213700326649801780956824784703822316998920839402051726674264510984535656863952401836565727777987045657815657812795471206924732776202162746468001743873456031399751857830069522761379849313594720294271404199941140471146254500806739667786087344362198837648333439819118986212017904000945888416032812041372829175158634636893153664614455145395504246691442528276098453228348732602895120275083533522734627987271122442666370254529441871812756043712158380091889088934448544560580964474062869800799443730695943551375606290399381940127573019063661235607498415805623713393005792076751769426659297995085765087643856446145266326523381796624002528773999774297237602134587971027102342177148694787176495148915078972107321173166433984528100640965495104457402454825517557640549312491637709946298733162891212177312739448771911029965973714546046548204215152379429360771164382309557775118108838998379007778440889262220133608467923289713017391296668855442350320158695174156602799014172912966874851405285421596720846823980755480289298179906711273817763645816152256249890673066867045426227242693343874451388300094506827163563028155048546343797775116646799018484447543254266686539233856654594337441678880741145600371748032936465260640131660968231724113250722097633859051825006916386534592819581857168893059301661052545021772200138713970522739280627740230518555592884682856808452619915043820639883584381761601104159442584705054876042278781813268915622533350850497892563631515138911893736450521684945774690105388306182540678717099143661100058637577318588630883608295598356408340938815289114451027677588138870878305831468432253706065402725540995212318885002900131621643156065970732102686388631732786709892594958865602000932560809326892767396932221611077115143538998379774194276983646854563886994545562672240383753678473186997149738902882460296101015053490857940634998102057758979646193385446953834442392766118820484495760957701221111110131552534702764021193118145710560785787128587414309662323394328749346899115248268911177731748729945590842302891674313972439021826323157782707138376608171598364100517992979645293597454307639315107601265825156527954434342685041613832923834873641973131205261930839628106911310544033447142351402001280260200858573391876224082161454922617080415550146378876822260497599194047733574500873505339417981293409197116963865205697134640056437342032966247183415916560928203981483147405354325685243542278309568427080457498944535901097399247492423514086276815993981718731182725232529667534455755833104610543590093525448323328657849196842425194642286375135229375581694656691257570615265399728045574986659002733784469638426697017258078090166229799915907080592368597759527791283909193966785421595215747330235804490221812309672919753491361037883721557572411708507041111311335085710484461735182355719969912847392339821888037854628581431054271566909725978163645404845194116337227300879999410903422014344183599306251818551451602337808634596023166742332015978193707608190011972417979738927310484994410972370362922445198222994305975253362312442013498342094923322492975267337332890955789262391946881329128228300599813069944464465674939046596966039421332914698827742494972053491522061941841966045915676486102897277664158165260404894940765548893790787878498031265032545992796407273483391395865052816407936299567451667762984042137293816770515269930251677365124456620264306768581586736137103074745496613938362280496925406497760867080086779731869507515707710339019417109096246992656675909573831484052187899140942226474764890572821920946882618700854823000133889281586295814810636039965287765671096226272303453847563573875956045470913762309219377324475357995151796287115318634890257151782628954245264923005920269664238710870834460043170815615434515510619074241233253810376829682607223398937776044063170152985731935251266537282570073373661141017948862641851312232645838148125141099568465634876843530332531836589170963619167489755415423547585116626965615981074612485073216688969167044156438460360052504225322071616063575514317482985156292354447114411986904541928029119791826089960865873760672697403208213444048080978681988156893821741413313844515674288795792551599168664757295006777643674521075561389404031281995773062446688562026925008764937565278921067258006938920690237752675205646504506448716938882397487491957119009935136544514665437055913237127181179364329791376168684718562758306813391127120528666423073651231376995279745537684467860713719238347029946402531581548398155500323141594877724108595352230080474613128995908496197741887945639680881235624664904240093385091000967673482999249313706585849848643414044724634772639052563979601880089978147916449894222830994599742707453653598513930381483085905411224460428739012285705809043404013201436128143066076047457394093447876603100965485266691758285502646810664447185400832689833521968055698530789742603103079943878980233352856144123787506948420719505689924988668989579569545174814805781602410537578401699418663268043088619748949532846418943748974951099495866660048552591670818983090667785687179235909303203654959336551703491892759568494688354624373210266164360253241654203580705022964248017527194052252400557665696492828940476042829684715082362997459534258220712971942402695514125054508277174795441169787402463047244082333629837691560891040416501199502156558330070625585241298255103061272870556144989008667632918730868634539985791876698247590698061507250800501169435564880256432924092988504072669544263753351543164940588672834653689750890077993336141269948196846660070134768915843740463617843295692917139846236082890406064666556586705677481753538252810025914946426258989689468223215667398228660274539006349213519644992597249045971271374871598091193317498707046949961274736156559202784806803207124552264462911961845404314811745585083357877743805142113236190405593597821422832629704354345712721943968062341120767573570259501642265934924262598756479463647342216933132084050807423550353972473073619201762030570068954937342505964406916175165993042293234534100330336457235233370559677837504783012862975233518152614275436346042541562653580061407349176903345947607244843671660562931558752789218206218359501813806270481966775646693252940750569732890654487627733358299565048949999097843114385973328326233883121184943773140844433687269344762606261818786037404008654698587783628912938784453118553965706099765111858296854707649776849260877108127821675472663976858144439015695362983333758815021449909049495246752172135818637503397857534360917893085522954423631344049121621083547003621738661001354316412402922715766672437483210640088052913368624740319155935818208990614993948906352401637105320779762790135688189737973432108980136992936365372966884975839945475079075304187690322677303785414774186961687328884731424288609317230477897382946153365749493361262118324702061425557936651757072090192011777166754015861365274575619948663866191482726789151166811111963058833352964802736392436016957008142004342460592002324732190936101762541114588392108666088944612927520488961524332650869240091073630660263597261607618969105688259129495981863876985712193522618286058005236776716700162514755468797254844493970378644415085937558635371372023985474336040751533202860641068465215827746249799942837531960332945655339369226900603949089135129277914269640286494480647887535996067874536140035950919406423573867216912336993900519545014328350649266028478854717368211722367928621649632582048417614814933891253362395033634197791972441710968688270538120268396267667265115373577416046530560278520783704870934826110767440080392926145601048483442566146733972233433510057222689458431071944410928393229907244856163979656300391002537414871796405982950714433105845405344776637894867047176543747518679556424437557475223582526256685540569695488307861068647490611756216406401529881262512820306921761227783533089829204466760036205893690962441954500157200017274298613170280110923827935532946214851119974118491241222398871889774716924682882579515780513394935558284088080689232658325499925681272356283811857870713643613863006360887458534305241533987164615090059051931823673587382335273914093218059152037795346698250486636319573550168900635989337734120097851869316246605037306037778974360903098356274542372715846925246079346406125836077413565236932148099703219179706871290104020807913394821207148981671651699037678311007880348741000131863859131064921032522529687691791289248734701478476242871667759916142131217140459223819902866609331024178748832946222982755295538094461093180798738330359418085523741484280685501877135319397804706133539098294819144744047145441813059959037838146295529363913366656118747235920167303368688427507654161586981616645652934123426532818994328065450320103273225261138978812266226534950227696421419228566332033341059919433422520085036371827369602752878649615302002688144864309096250617914986431060889070916925620294273058410067330447546903706432675887220135391177625116771748009833683138743505067349138514446554374321375413491115868838884850093643186974089435044502553291581576786968474307545846677686173053750140954358403459692135084489518932093226572216817792452723612349153759977112707899834784889625051677833792125914032855895680786764512710176447613684905406305314766101880998572571302838055166972574233906000892351839503508382494684604614975340801997401590613632681765308917818897865336375962017719563594033206470176604408591852897955679436203634088276324270300359446441704626878628535623761824312583705335647486483001181821671488066523068280006651694981107364782272176580333611275695845096557489051554127819796969075910233381965851337140697037551004302862872336106808512013688948356521799603295159518256786542624242677797978854673574755632857677207112656265720429952692714343600840817107662852252980412364015801291809843428886436505947904259895313390247035999142503325459267622827168550402442054387153977205051907630307583705522154968159224483055043627946040242742463507039660193097591181976768881627916141402001514171206812029717942172593972109575387324453515565026940864346546277344127860167155035855193714824880907824743886780354978343525770928022175511196669444294200385879510536735290998164155283534868954111348945418161278238742056353906647895811280928878841959710655056773840434497760920127357510484982851405455351617347355216881805382383428409798138353175693741677779200638838891504725497203871212990797693625875066878698891246717660470355620504501571763544506189656635859535463330267014401606881265736277962286565452100065004614980680184092315440093129808375829984693446546617771877074459742222585696950505221586556172131603737789521216652590998552656601024108443639513786377717997599406306627348137107749914887726255326300628988745473604426753986124096482484064474821312104981713743911684332515756473956802434723630014408219660837406919146230476095915364366897754981998256241573783102311879379377835954979854790311271067301389976291495162103383294545880487504462727283149753020568515118574894776845521214200894927461779154099919774126758305225898830965711129364808561877247263293180011398581438478726637969342384641631537401089313197705336199118130346360235406721900027169278470736468658889522122138573471967502810004532346204562768071624400224681049692887801605141340897150551860727234986539475938960233991670543127368760631026196356177595154481865895144348841118397037622475121689756280743687699388082794733698936877816232735227591883882658274855105037295925337219194276693278899161841690023847867806430711995919941977995936412729513722650986495624793944789590105830155841783564415831520249775352824990635485294584035014031510277646057682464535746883583590371804642612554216349583453566370549084756261721012712992305547612402013977073772944839834231334042528528176643960909753233594802770804892160652177265902648419017774534573049290468151106466855884864323994888559292278598469696245139791489388595803262965086491859930361905219479972330315548405891621074193336800161775493399759665679546042774099800760244898394918233042618694790777956165475346155394337502256739651448823634780320566770847520536833759060912547455872429221466018847882547562004313154572814749971481892612856049430742620163548986619938919386405123794230720075791899387960327581305136567204126468315364478926170542892052511976593891342028301124073255267178156652925590744072856187919557396634192976849677244100185414137725918278006085375946203008838655280272144651358448191965273837272650739346186177067814338337479799286815498531895892623622724666626262404920354408349139980963981533609557842164269206056268202413240090444031524686078411847708826447861337793058577329689149419389846212198826136288237261929425369811494071418677121974536859221319662676608424099318430054982616368577441489718271747813065871270708830367001481470766577143825557817729316104137393481635941498904185718176843053004114901978856839882050491317273084361573419613224078896633779548736450588617183804242727731306775728389771484469567572319613977909489180287412567509859541259233420985248646229044752481498847539350341957272502752473038859201117214073667862532235785738379201787795811730691851403402256199219090391198502293814415590938247516346370514329535175255593692726866697734006156283613993727088823602497047182684396288128664045703988137850686599517440900074574131866473563935398382233642773894421798863233382230339787267343926644730785982537234451217243641242905155765692516869615969881857179883340837364684780964423742076537035680452198966295319416005475972616667457693306626001786079181312200190272821253781291318788264508722451918395086077394088317935763239370839203084192892840798137312226474595733295473835686705909100202106749870184502409693453749165144239045111280872045355124653443874610442034623970358276078359033538744740051669100428685842445639371173601148084729202962803273474203320177595432771636182217251659318426910381661515010170775093898127328710567804636857308287173357465879819945434560976864997678779473603802900363489970901983029550108294638293342031236458584681003567200107618855604996246447111158008222353667498795825391159641584895735203618313109920936817059626644038058012384695526982736457533216642532782988563342101783077045369077411452776197184236246444387626920247889366377166889498573647958733683348699943389957095962069228687405526364155270506774549753268355504279966755485782895045892547664383901528500085481897339407312505080304129598542254664974241455384787737443842577064807975307587149171494432069950868709231817913031585574766340924772569065971545094642517581674401686008584619727412652379981586852697856684885881873687775869790467104524621410426480604307567504016095514795758261937416559799189659242987811734658084557975605627458215654763221998673981183583650134244478892249383538512380960593205205471578073164585762683926911764224147777766178102188231190880650403689902694434324505757635479902888178609543050945183089258650168585695764028141051183508549950509754615239551111566344108676018795986170517217090610684315984218717292381966452088255922304499099938868679665297429668289778789287080897123795787702029395080579912380021185903432485542015790843128496829754008559885968844788811757453824080184692900604903243111771130211499605389089410255146258113583954660109754859311428939993678176672019324499909367482893042812204394947262776828790155717972431768073438649299519536767728356887178023572083631425054224887861874100614221897314555723918147242871272856684745690679251615002669001583563937046216622548948289588377861873624789005953473879283231611218256896780156084131197911664952569450606443230926009121185577309089946517835896381637592484668270446098412199233499714336180764599807574199448991505119960010946549720320329118934031970774771308326153672860348238055663874797740667217891064819083831440162138716262886204439928674819977831036987980980405001322276502578701176159298783287848036438197619495714973512450514689543274407894614519064019184746081243256209904074482720311200912231282263321151718832329375730576895697550195439808428646746156979378537055652882619308621152846849185138183965775843163277182807891991178484493766175080782048660606351509119857125093169803403695724208899821572369758407828183002505812956717523972983190397682560632793059047843021609851805612482152039606297016016560482956449270687224996514261115361634637675351129959557896854523828898045570236224702763025582368771803408286861945081163192741284899974560295954369266338101225502834190994412266597889730972749572402910678636988050495680558138866113687411518176554920852836144754725159659159359089050366360854520885280554176425824437802893501111121991537767306432416498097843333293888019098584461628761229556984713435495892249324388635098150427151304726498768134335656500346671851184822046820597377244273215660466473920594593976181118319425105305493984884298741292889668427692776546014209825005492500368854331443684568030711657294562149278559687919768098756355473354598060677595104342002134093800841754412768883585116687267485610179365626639125349495680620647547336527334971258622365357042693834919895245473996993049173646166550459972935407863714172025201973679356872372945736756597211491275157161656166708228906638550985765445952439361191722438277032501671624200502072242902878575887024299369719564268659569897188874184811391230773044180541530293267162113502519614529536753918082014240622447116749883881884507676200995592673263443915779687085016910778488809307201530713922706808220016039786522156236762084412477803481013660752675809059888810523588390956439478319983893945032923607055950089775006949980437925027132445693257956301349939918429760603957603782388854141274171828777466434640033656232151771300109370236113501312305011730076342988339051806330070749264428271157584150660005591788515847256654891570313707096177626679859144202179048075257974964256636694069284319833920613052464052826475581533710082848287131681626631565854034020877344671100239361944947474791910362349458550608305291446546249010783166649966055764709251324690654529268433377409814103394787164130466340997097872571699506046160352509255414323519916635930062451624276344444266313640841446798982198714939735718312177508609537762429351139195460365164684219884254763382953678153194440240813879222076119425302430529496913150845557573195719066284028588524715172451952751514439806664721247113748718835443750644417359165628493795896302480848474272191003311159088835922519653335142926666168403191728721970562829362123255978082732176729088746855118982742629628973585362538686475829916449503087399836858434168891328297847751507891197680665912230987945265379435513059258073128958043072795202853363150591776281711881818974435534862535390715420623371470601395834879574091813736642627555582125872519158856850783992565989188579594755267276626427127592310848565854642639169011417455027811347745433806829418509307328592053793285306911510939307757943873920536897816912117788587745418793049529622072092350129515630343956644604682406105640704984759892112404960095769915257176332232093121247193735895442714003189764791309678157846964545909284336142329433969062260994286075424796674943645960443645854141095172462945695779795441866590762346606666129962482357164759797496569284811123332017012648121204978370724096611651128945760752057704200613267218557898025305039711283278317696353727569162993720101023039044870845878269097200006001189788523051004788922963607195150246299241654322216765091845504634266718930635591312824121952075282476698387215156128264718180116832227804644625613060969718916630374031580994013450682666610979545618742063008797493650781532803050287661990796317991990282165718271030929749831737117519946040258716637691650753271829399064916440883512288240883131764411405303029992432248615486000009478980088080787802331322784913784637352694245575023300103826917587855275405502241223816231936756946967092809001075086367254034059457448774640301363341974344894320326401621775418544849261771782003893917553847212579219989013224495400526899237243941343850160645705629841550035789077581068473448485200343110288581052099380831688165839341998809708430502079977447297652551214700569874196975741963898741450460274796908628185021228198023195060393462653925984402793632091155266394445439319951129783963696251074174939700354668807870542739777009015301942946226714705813685578435913027883172054504036543290018649217782092122070191284875551599640194080251477179165297807945260242122498090586584717087518133394917780953762576196188738155229382353000710058697939034503996384534784691210724132948374060108912893748425257112300607148107116362479194996233660361176208514100122888007133057672195278553064460314033978589314374612691423352107278238799893900857293917062602978424270549407433612592749567512857210940308274890340809871437514221338635410946809004050589001188052791244796796896473344820776954848687555324890505497824983300694764326259474363275253326411412958885899074949027232458448787438426142564295688148712441405347182527690291603839859769964900707034526574060618144132831455623111157450818929623671315848807846488847225765642381198524204286173310170583354493816090170075703231029814528226004321258351804257338245803972404973423842918683670523963338768192245864460328270345056827727217762359857867786763589933993915799042011748103602933465962789572913463597547443320002451359601334948332737904682775046399826596304172878182926632183030557199407623127189256915785394478054047999767684194222465601572512271557152586250906160009297512892380124185139611119618786767890064538055501834941364168612362873255943506800222380238746528072591971447471790866561981688210268176717379620136963219234458511428791342704780840034398440094020834465005357335463990917918787495939231067250389711982683791608707348662734969573453469904130807027346948732296790017463416524835710975054683071692050046242891607136189174013912161042386722199603932255627170784308456941901347400699069662061767619232350108519698720413163705307693189149153469716458690112506364463666371780201586929811629880258664702104622697312079414024909614036591164186830186414683735399797097809549790156438449596272873969957431881786886458197495890773554320010055479751481892709004099000523308248529096897601871790820614148944394238859377976354076521572631450488421787187481024712196257120694287628608423409396146519978247829124671661680632704623413130087996429884237674523489004770708786061692093051753248655828824381654669814439498055389601356857121771568904967617340681356155792168794985870062949715734647097009603626502670935384145709862164797568300238150034191996675623591106410303585846995848267881549925169135744742457121025218520961672276561392099785420250138123332065878059536833115699141635817793985348659887524440786916129454294571131038965225132752447376236386207340329509279459770450668635267559532535523703385951232242144921940142636133160871662552539903189286759695245419397609912764999948971429264608839413816479252753217503956873719121688134789128414676613243639315963954193038862266368030191075885140578545593286848589719745419819407685399475885707089927698467745734641392084901804868240983700155146226373338366882756381498212680981022396162049104012235101235481088435714094602004392123886747589817569601697754060118925609244749777233891349585743413643597731809254313861915564987094989845275570179120202561893135976236193520008980871437871156521964364261802950430636615605254515040244745311042688457981559327722886166043827438709018268298951296080004436310354448230330120167393300122595556334179331360573078053758516521714884586461617242581338408481656169300794975907712664285000700042337903636273173486202244600631868042265068775880050045707455102306248807451110491825262129138046492137522936498332822499113954533015252350621417714545833196141383514845596233393877267317529743860384591147076963692856582655222351254341378171287676273202785039008002697180694648651136802461107929282668523730692335329155120223715840987618165233760062913979272282435907688792122443581825458815531186594272939870746504551183865110145745305750047788434705559561764718477980996467786804142778552925778304690183225686448341427859463444416172057633055252288339267855930873208796058388942764581167765236820398758228020594671716690960144588730824497187552907680135489938852759735270430630450278415106482187280034845415273558040590074687203381747504373144985701684430693545317461170599963801785449207438842605862535185608738368963015096966373855273680421263923841440361086364848487063209479755807945523978021690298614044012154546413369524803582336521471896999715908932833647442403755787229355574977127660151378462872037784469271577393002441754669536261117013343623166701251586194856277826975233168200499897149107713517297025270345905527230315984754317213495154298343670888382116249828339929849338626096581897435905192131602115974582544675175901638471280262202232640518862472772564268361475049167073758389134355451653732864829698259532071707061254273871256498424809385284702624278647085508282009198692770520441752009949089269328094073446529603307367995602879224162527397750757624581085337014114496512718238200315347016468376263340547348009598407413546811265682750140545641856853276174300702216883892756558058743322905566697397909464149092356754578210237103440735997041124480100622737703298146407488162538912736833450503775722179685911383027765352565043538482686376905280085851390802689860100953285448071589694778028164463900619862704484661151658472036851357479256125341181224379590547749807873946427754516774762661717328509012884691346797400009470031553438354089932489527074576572641409770402577717162578317716864784277204557602650122801594409288926883318967784877689999390990691190580400706140653547496059551673690558485648814239694721677925015141774230219553205541376653324760297459506017288395828716739888932686161935596174103338380515340922496241464090122236363423016428541784279244447560062119941919716406444080035079967978851730878762302668547361458265410760043696994161749248984405829793301608857513866463820030284997560905055344263865018744013403982724869066552690203924261973478259500231934821807480960289810589412076755497527747858575649403962374304041388760462764992986771906641323855463437214938618067180000450981736731569639030718118322067315837960527470005195447931852457342362692049066546284320043688020777454289081863496565461981589386026936014240757010217099801629899615321730567230375720961747677497575133331522696410846532025424206060211851828540278720472866441212018905677505949329265753394215158782114769192661690826018533053324826718919792449078256256854245460017837880829221728198343199274826994011837996807513859117254583036002337162543085117548664869469723615843306831162181395419316816076564336040931943519087606730267212438411416086737783102312694163469372582361712112743756923053011997193294917892340321162006750038910587467538194926015935218036178278242285774659048170061126001363397260490353446304268444379328385983467887881220872374622707880431048631766683477837607030947463310683985356767245245801911574233520648934914537257993337847789873471608637627382429646781313916754733035334548286794053800394676572193457563161142770647785461908572934202848942905821015712298111501362633286615196120607285280849947518069058598115825672332112533801181693712781037624904778802219797263816528196253587021226163458178017353055016972497929362779301908034984002177487432029022383526519366197043337297130835658375680607471156306649884171819748466060392623479768254947122557178675370017720773936591683300116697348490653975556236756695231812064037997829295275943710815055882248900879508278385905995233084723798834097591390940407261811673155683049066837393673540918158028526524997530590196348760708066310695985597082616517536991778325468756715322735412310980579602022762964141583350804088006271738291216047076911489012268304635624416553273762249539885813812464001955054836147716428558904352722048419436321958138061542763045146729753998973570674403232242065731464051386185831793457821337398885021059976344694178570889704518706052974476152396112394649533015371287158273401019089995162801667466132686140417104582838175605924949060427365059495471220550813241292275546841537564070646330116357812416312620896645473271939546584798471962217256499533352006785306608599058296369058928796904693204842290378592977422486647595679794632625068299562567390967191082194822236159486598286637858408762086620905712442947449754742486395106515111330299175179343308841553850528024994493151494889170600488819939681429559552240824643956337453249693856361895727977809829689552733304718027648275973510362406038895433143330791692919063787604801730857333735739394193677754467514077449251055442765464936637401233507446780083449819946266505654305910866797675194640037971722636005367864028632366397419761677000611564209049682063158163412592048639734530134181365272746187787587858756256397369635467157126221487132589881493472948426447363924965293432225256642794105475060562363341859832802860473518878283912997439177623201539451857244812146919320597235166174809716653226646026319538299642345705099587178232367679170551166339557367215538247102305025144313915352728039110038762268784515098597250552407254175987859301006353217762315291230017883999242805342344476019875508502915577733111155553857527426832007416180496626647257596152735574150006615067414049670702988116586620967550715667460727220125593310349636343374820862688358359258193072060373215316303295365297060186871986124449872487455176104782076981326019764732580730868166104195410665083832450327789048141137779663049304630476744411799397338935368315158290762415503961518943786218705758987590583263695191538886917003676945476772976329362293168024436715880860747780274904577226553188877486376471956935070233008729845191895206149939781074808450062539771814347520757450709443567014416617219714433401323307305680226321696134247223849262740277304097351320418960335846348470153312911537326874036844146977705493169233286487426356151364683368141183025120510955296611602708280149878720238180511926399791937192435566013011041911316569795347866810234376462564673740084678258175671506854984480284594300908609002478831125014021612663135506705030739514503223391389297333799366234140737677146286541921699277978010089319572658091127715386502896063015344953712982083355028789042293069578379356948115796958168564237810507719192922244759742460861144366019596170419851251713263065050372669700654011441051971523229797291216277981713575805315443000377329098276072098507797721571630182357511616206930024910876851454604699673277910731881293273240369278602897328060910116270891655357199977910308686113058278783642945272716663398093319056318826730134890056570113993502888891115868746902555243799332509960934145305714310086435283975776146955030689878254599604255423072363240569041288828049954149986066720610362019096385678398307268743547174971280003019689793737481734377589822779055417310053421064983387745282620331163702812791156001018096015056845495597394530800240662185404774480988676884759631137837421612387585052625953386701902775653246421589733068260504986495098096012626832679856542263121305619511524957597683288892035340384169051647653323525516906006672816038897709398681162374120452604126768621222311109412476690768063944103563346265514474824073604633304086015640474924869871594204842033757693848065419733709487656735730457314103781929186489747278870178438633988644977905522000197887471705908734534965594265394181286365832394613207029120022993336049426473559568138853673679603656902053055746915458160170300345939342536912982909324670928928124201890518344753684204326502408779566485876718685779528348934168822526005236549738015854618924566475224942851402387710780276787142687818643440799320860126168140222965097451967616472954941643582866652275439094555637038885473587474787797383208500707280162375897096504295899141774256999398670303626916488299088368608810368131484330669093068679033519464763913360018330742877004276641677345381180475336099460695492561847450806315616903568173810984600845193389263393651630200096007999181069942539770442777171312097323079934054243836382184179339468440285538267279486692582289843742378041488235220558987544965387206527544513737149035304486338886912806554590720727940091396146384500452242345488613063688936610174023958963107266239474469855518626972226580505226781823516996155041124882284206955088119842469130572243667521719880396884970314383025270973702541329813548171158316108676235128790307770498632698357526503827489197519192789890019846567772682399775248691162261872058911156872782930713857088133350902383734140063946361698018409741889200429761143059912084490220713188203893962118390518559427907202855160456445126001385339475228247491942975679013356797699760310317229276466221524055199826662589398988180722003323204159970535407494468597853197318885598559841054463964403988823334582276226688209871163530121365178084463831947385444261313297016072001167095291624511287762178603486574209883922585210555461622086087151172896265737177492859612730338830256849873267858133020874666247052230861331636955261764383025048397509475463804457386490289738455262386470314448772556279267227923226519594549959840158523466982077866003434097887391403461565133601499619759932875485181741617820400359737017947471659713196939695189323535508080284534469699851013895662002226128747564424342251159473076279049736194552294374167229698138248512315517660842042801784173717205939810403150945930092021186410939424553105055824666260185315273268238143248501395144421255594389365515161276050623129366616184926981100301923276668988901225596059838203226232062128153738720328630611755152164344216017043693730191766943721632256897843296388647808686877849301682430019851709932831793912489301402957443808479329100078959464112301838361117463203624217073396118165539133438143290138666988874293271241723049543958222824149203977291949440961579995540776414836740359022491383491151711642020425134647737909799770668194947971039850599766849997114789460013219002052083607364101799978561555985536734564519246686735528873685984724532952222373705060079793815458578159535764972600835904021931623495475933368459489164938180948027839236312824427895011954245100448125015564831336155295616028442014570477203008057075479500579737449007711589143939585423367801497671459328983093932014576689036843519704889817265349132480465669389780192603656271794686083618164188692629908469418616855519559480998481848638441220878112086297604363733230947580491629194666332053955397945314635760751033537343687094575859779694731684234761789467090870383156225763295604938832956137154119732553829735005100320221572354396941132494528393927335255614967339549745158378309405501030774316172080927747705275167618973239899289933553774330021999482377385019158651581450150048570409512705765598535616571101200305533679714351512577518568005254249307011686313278126771415358869826483970104658469229397626884280919202251416025242648552694947827547238356912939373954315945668072570561707800399605928760952625846788802558093031493778981577406806129205981238785855524443069307698442857904570929797239397122484555693162472387705095207850581575055918601558612414382188448016889388548760908550535940633742011569740191663406097327984144507201569604473026212978072402628238654425722913221124212552569833398163126555403638628774082192848733373283140700160149756100783288113299807450480680771187661700731358033808321326618209810882558879107176633766311879155504423078241634024026175448066700385386331207270692793250632633204699317152087371275212762209109661900114210702170020593172480390151652326971023692572813056466358584184074635049986088033953764288747920807137291158933565756261086564704736525924590851508000697849575558115650252806068216424496563487284276344680048128320986010233685385131119668604113395462310383649877679375717668562791200899770824171725400819513160053336435554177970478110262374438914204111193704929423338523190425892097694966709108721473282636712836885640682987067314118686812074526593880638577063810602393719003165806278453838846927993765194139445889578987623249430143249690573986898751417104036216337346713925741888424449765447495783409684476212055174222972527710163640450430671899338765129104689337280814316334820343385467585445413806301241861530138656453534210738573973913007461260414300995362635033937697191512536744702201350433647157491391876719317585098048541635582161505597297532716627970061919851242676912636768296542707139752991883217880137382400235262238112259068448503084089177804519752996067482932169491721370862815486056102526283258050858338845904991634243888730301018089837574441979413655104407749466563563254454062418856963970101100480178224056264513902266453262700936750167551560750564109143384568528883616884953000165934219457021894375137518365379946653755470986755527158859947464916912993383821496162732598620063813573596134417317985297068689718892130137477260391815836596083537392523947418782879405026504629218546869339142759255912102577759969367274094951464822453065479341882778033807013358136639973147104972006572767517684770149430297726217138165947150408599568676670140882811563883551018558030390176895225324439779175308214100835178714640095031314610024397235134776599709126373422563577116489595761443284251250163462049929106084477161606267654575556914159681850631573964876488427540838789929083944538705830574095580327611152753590290179113867290864743055932516134753637433967704900496074151174697881625705042221774357251442274987457004739487976050207659443271527819736360796988340321141504210045144335242348979526455264514551172832519378474252843155464821780879689613688540941857835417940001044636822644893510184455508391949904804966216971326781365971158402784236694594136371619839601215687830923975078451735545359128678667747003972407027805244162927278933885488994173897372816308735410095565201233004923133998940507602354605197592271594796601935329234829656062029851918974086392562418724411724070723368120707222183613685578490990912163057751124065660777629076471126730276545392403364181051534622603758323421036758762571086930671695001385964429748674247281283831714179563050942296017567874987951517819940234473422655314293801141801863677834324286409094345473671250233143127565468096925740285180163886110657781602589076794667338872227972296945616374062172237867689273313736092706472671173659501901257582414282655726873825905102171749581741323475170775913944374199702595862597507766087802103776502232945345903555511073811435318610585107750905619673926772181944962017706450003946729791514794738600612279691611755159865803402401826373823151046316590257506993874290436234366799932682284086688454896958348034502377320141109993982574997175341252471872039652762722357533318720036470781628103740356116635385974915593472104275266602652880157656549700330216925604877895853892741339058220450250196103439582291198933078709601633287380535906576060183464636720094072787453870485751290059038236877629839664573492925187353018713634852856985624845886107883675147492250860549569587507405607022601341996928239102094542172954927242441203423780091176454450112822415878937301704956309648438769885244753248358933860542165835674911359506105943602318352458059672422738778932278648794159114270203031706260652311667406941856673734861429979697241622432710214986098202980143296347417602312044405783881102482528994954820370615642667453317319680465790916886241275667142464857933783571150260484200047983745742013532085826430022332021222145767801354210343047314623788861645049186980596522674216433089293082978293760886766167125002735964665578014338471164297747956354783518942250055240525152234878012599937908151859709734573324633675412935291741298551042642999615495825477121125804057146618477986973634430139896014349646162502581654019056701696001566419164001337614391994330018532558518897767697825848501682093998018668251258075372513291044987713980722078616511648928422945365861536610412919967459366154042108902609347738330484273399493447100089057797722908377698823275984096971493500313089345383112554852518052827279407590485637654580582356699119413254559239502071250422301327912043485747508701246621617486614927596513533312770826661314160135923600873278323991982961560245582184287108164280615551417060845817890711608637663741347569972584191501254014632333064732145534974082955021944328352241038943525619657508620246107099144118705598064726956435900341761164188082342863808396978483840132665460897265414778468971015358190085829009526735151274236683744886631320441732386968752362949374178541936350494239731120931290775176027589694166248125815500488699252736326072851317316548453605715560433003825400531698282666605250910466962165165868270256595524745824439843019658298352445376058074631826065004232611922014574018590156533210312472811850763820144172828206659749864846247974698247455374672827595571948796248263438344932385437661471037706831169899161920732362315989699475462003935385723441332729168362547738854398133963712744638635619227824180764398089111851516382123990289924345440325547349008356587132192856172047968740710359770090075930749992590942674000713154008481730975422458963994147860883536387789576752395125841016381486962026022304989990400847546462409766420627432187418306831134913018423380401149421547323792234557518435048296921167862994330567156178821381666417395953203952007824722945242944641558905298184211807423352683246071313486435887915153926236260802540360390583013326648632621559508693533643274711677270747665430969660203283418605074974183977007554950679605642895592204875689170337320614207726440653570893319868951134349084137935230285103427661418280382080667315447859602427976389855754458971354669338340665968162084015383636742837758233788099912696706995554468517788513935993178263725214076466654939142841965510878515505477834436483687344375994634048528902371333105368005466427967567541156451639234339070849729149853112294261510865173579012573090473000077748449865522344017713800973696502178018479265216335838493476337438715657790546486008565271192676369984550130659273542772420716072520170854862236182775457204604276063725952598649893646671549547032206830636444959230921542252046771258686696199067819785392221842379638618329214807377405536278839076591427629077163619151414154743320480784317961347502092190538459168458218486385354712553085910412233452740610699091699984097696767174153430183953822181738441384638182266401390334549368185598276256426471072006270586352219217123547482443213159175856047391563860388947449635850063676577647019434338632756071303190754429005458388464729714023086711034553083847309666723639454114619021226161531681876234846137895936453516143862835575700708193305524559576815974290689245581293610146714603930977819896645708736070945322671642816446968659669517198690858657119548612758120562651000636538940960251793337798084481662292207368589648465986393970728796037479740217393225943804038088035445574324876000510528820902441897863209658931492474200429778745343761826631784176998697554264020361184430773960579270482830798253027369668277185981081877477852639475178350838009986807254923489737931285084791918532274721081815392707848586349754018154280313502961936217476909140500312186663935225674930734732496166987943084618176643922393509123865509056114963777779724595759357645593351019983746251371807758006132901835999908165580916391513500498986509301620538614007078875811666322970472855277318374195617893745801274543779680530090191558947842677988611882164295307806788333536745958313347377042418429151216281820859834220408457483903681275130641055278733558221626902510302638466028920860130553324527432175303253792741754777093483269368454960451722016654931988436554554881993194839286842505692176484003169893718405803643432961441915985864993841149515287783237655180635572117566881137050759299509072158839809612585385751782088939549826745006198662990596238369860688044674152810699294968576286434579053711956957382504951951442797811553434653015363774318866224525168798991069282614493751721565456426308434911465763299720274647592460992366170716369310203620114491811407167517126353326110797100485521017484023658853051433563023098378139489449460801794076323809578057314815550186504508262033958012546658399588120347207397150709095003186771032887334066858562348495694809475197090165393789174799324629424565109513534649935141523749743537825260583805329415449781985753243821749631246205233831802511819400950462503212822879420540984757605721490372656478710692005585742929821346738851425290385716935748585729681715251124556359840019320773806468499601183377490661235954287240990635874580296976501053689740240731988518374206650174584724311396800789360046523016379222770036957582617059659852714890091512263754954335711226343693833822142298880449648223120956271427163961106410914968862242581280901117666491525753304547385744590072124630146999845779040820365315877369257803092830669258711275957470650599904238756585456841338022733363967876378456289375990506933217110719071992103053521809411188877781722190218506153463497565380754222380515671331078167156591832608177859251195694285546978539179882300358587688237383366103856207949251171476460559870818240273118215524384723881072808390844864018608032952518834651534138742693510131819066690134744168892215664801816917192004850626186264966404438474648761535372382978385328247046921808511837684657960113989599903165618117839512933561823852679707890549807414966261061296003864927102874121591091172910301003295451975979379958546913221157359855606409337055114258284650692244742834738829732298242741746098190024313131393950906697184217940484732118894749396943262782252518803899271571516860258575761842995221130037161575712962402548765318478130590099402577947127239459856762471446985386156662820841200311412649221956288789009025704583552254907111296005978477092740291017579403164499444690967303981086346406533514851828459402698308439695101418221240809951535294094171015541790778563155475130729354964116717602690172000703495202110988246609343893379462267469248821342625665148302515228711462683124691474145081703892519070999379402830791035364991580494431676089577381406388398558594216186409011372824205543658342779384865905633264396580867541485557209270710001969637715980214817877541866647009222270644866978145684325988362018303724511355099869160412312126347738490216042599072566509148358338853182822907190172974994017705592792312518383900217897168188602120593449693328511637176952568672000774267117137494875265101345045564591942214092530460751264735443236071903652075610821279926895427357834652860727375421695509543990021674486478932632214834387996972863630411739762815979283935690556712178373514545578448364167279630070025485890790044237809456878388048236951446442097551202936451358736823334676809030810500974122284463641770869191987809632059760867245401397616308699639680228257911566795706161751524781651057113399533918121058260435053097697938727204458190458850159283785071485526051893652171623288672345413175560652505669366716464348106595190890051888188563016317902307074984690811183785323119484389829868822842112910515181221960342376130991137411219749172951829803843836964442125648703046014636853694077662006110135238315220763566201795518770077931018718414159255332968361903384672542809031215351904381585473463334601652375597286659421264172730832290641604915074058240696532854918957979748306712820922317988970384509098275304224585587423985087942598711526850607957924576743847365463938163606023986286249558539827888669779358310837816692120288137628430099328870158874844300069830577467674071572627601241108194876674886196466176690552819394682157358584542801268361222590672461923287593740085891802486963286827118188967669174949915584312938559262262680999310327297847407869778021842088182500885001797038392352725707157978001128967154835186724582593060015101557741797793674590786315422817126926064725665794383736184103340278003611530960098818128763233157833092530323946018442726973650943943529601204690276225101544737250488423187498674602741200863021299866205410213615326542357691163971563388565375951107374910692733201897404876701153399103895945869841264430842133926347306216437678853149129538440066726441558591375874870739940093856602894754999716449978158947414967107872939714971560041589480354788086365957151967385258700561483719328630948073876914057523259459927289285270483844366516918136196387933547146017823306092991504819926111614089757126377954027898666527633604743307525841608571139711206485271419814350672811828929618548282681725283747810318376706794505692393536120639701135260362894816457002012377342146428391966460332656173935286787183090703813514614544256822234145846868989414145778723860152983699312245364585144580916849170513555148827378675292648586664909889750192913023421080039233347484711170180162754667712469965696711993558784003936374172055728845912468560917718050745430345632456062520737254642103102350903884387131438638701139973745380700974169995991472515550893063431797634833811289852690462644387315148880591453273324571868040042883118000328383680144459841756173585293434144982824474273357593432883968114868309095035433991122934449463333181236436758001912646559783473564593019329680158416504649070506383185562155823893815557371344792111872200384092143000036986607772475048158447627258919760327794210747319165336769390908900264107111873800060939606943280720740557136113441542161988525130608381186903747977688627616183124283404705410733195056734606121522668950149989427016230744456913743144110917332230141967865729147298243871907462506477886096693907288639104753084241014046598294403940555044339242156044152721062811277357121787960515501984532587821883650760076953494925300939789359286593187714233923801442842719825676884166779669581848359280778574511555758905657055273306903823390070939943708568446026703031524529172387436917547534669900758562886916118711668088424815717945752461643048285441335186586537690248902609780742509140478712878324202038975789366612404573144987147765319803813399161116934730879727764909302093666401501523922089014335017660146062603593569844148234359221600421980153391287403934301580785761533428551077031972945173910217556128299357604258312193430046681296364492116687961785906515840266268578274954710588428990688548305971234886147870440078178639775029572480885864712776152092884852936052862532689116136491116763514788141249165101320130858902979463402723439778972875486881799115411470371955269746920371416819966723559355005708819823934387015192052747115732022575892723524330740633410784128579094159825691004876701087383475721194965042844875332540314859925500002974855800363622225983862683028866388978235639488593917614979755486247786368056895249078969475574860488470946780154622104671074227318185785988048581992051357316375844755705008709322436931365840680866577048531134927385463766406031550784923207519917037462615249454027081978803767835865154313681481858565991160295735127647451748155116237044368503330635657469315410981849997122912581094593646252358648977798956142352673813707828736330663338667383903550685963698587451880168535739432769750654264971696229711373251876844549086504848466135856619630980251549237613851188259769110942718098122074075351063917166926720072486808540324451844327708958128193524146308149377953666429512418811331277192182653520686235438639402859772318327501033838451126095544265989064914457798000974964022051340136337613686713011023662473526043252478608779132114750219396304063361123104837307395830064918336975586022934920888021945281252350124681462217020515215537196578721533495132897656202203151521936225251235031476610669930664861790984107407429289341450502226755343285019069602857043563934651108943042219690570659770205416499751212169442484977775948872470502731597563672110193297855697653087881769161968937522383485790173669207521317682329467350930614003215135638558770967807411949492315660313994348970084515839050964901924468954113627242655630172236635192386456153465485845720434278624663256418930605751762701654991762480327990420370643067971445729568293571023705434649097783853360323627252295619558156392149956694718334877066496354544957756492561946536110514400484159803414702229402797088421686451136154058018618075172571670384489595891790614667507866542197920921164476245683858005880879745636770975550891239185997224375920267341026535591523320134274593290993905857454668742578813302892421885350195580812473825955454711205459936402417916595361398482721967696581657264935982936029786915257286255351837986224069945064600216925581641206116522489237818319874415813672375430437551606975484751083098107363204556860960354383834584417883720376195522788133636346611826843221873191373678616629681511720257246136155729675118473471638784672433177866491740018239406996732004605220098083755561062616887895064941978734695843186408170283439941241279670497318976716607826643465417123582500929261203950797433156115495468020703827268223092527177047385711821665414730295808973020426104389056919114963230529135715123804632793358663032619585014170808579510722257160116606626144923262772865812337996975086965503533073726282262594307669603793888146426348630145994166100703910376687276702927262462060865627778308930024693583849211284967447649372980149072361347692234973041766621745444764964928863259213505625162896482169936669577088980002025122613945837990692967951039194325247141962949046195226173390787511947763728739390868040121547614076382004663776799392836940653025197101609787186133108967995112153768247260560531148117459597955601673825940958138787997294543520990508268352807355757927049645206351201247403243614332390510981198944947282205468251165372313796242477529067984189249017678263937989226174604362055934994201658486264685140177145952405021838452501371452856067811920817198053118016688937721302584509128574553832513945408951716369739485069647473795426664014165559619856045873760358951452647820881871133994916113227117251822251279819641304894969320390262358132144499239335901297903828497531250226148991509840200030976067515598507839709036125482882495990610036470689382404354788111525955578710905929169060015603465212073115657705228156100714478126146115558002248913553777519013627133248304038562679018910763982624050316708205618595077503967595096904507944213549359859641603750878863746381987001174450881092040118834193944829033912924056725840220344109551408506573462655921513800718456623689374330948399684010974014896838839564412379453217714959277860000476835896955295592965497314378079325399847165046986048458284819573771932394635571309476077697028009910806183301683415901409094925100054533009161029448306949412108202491569067830599579892262984925480863175393168185424630953985911658178166524252521706950836436538105900500684878226872035673668428794860043616681984108426691673656842266458098193489403724541302739117406384732356326104140777741718283797724748546181412106060889443132753025773205923222548362776696537925565272037773327722505579154057109821135915866678247847247371751159186340353678851235135003002718200304246162571688661477413194372056607767601374826135107134428691919951679839875743780865117737206182024464637410745147506283719583556164725677565381518338329892054696750122863036621933808897342432578492965502973388707495124962122144306057684470581847433194337934748731844196010134663381181939229973133233648541181156544139994102523620109143192333245260718153877899530985419213883278421560302143345187069932887596402676477545994938251105152946162951425972111755347517845899444814909996504376001590752251437729068101666658008417377623132244569933701007067825703799370568334446345404151322644620699645899437019949861999125041512149506033224174311874201524065475194537705838038611575351568371698948312405387712602530142169206635979308323806743853897057730496406757685726965805416982429567331221964045974311418243304000083518492051664105011958420672021663887611814876238195827487359027664188555987541519181422187559581617700018158941212729895347019871591852440835229159374786352333164180004694027395470360612343537581282502104395168967504119189171311622916752414331073108738961293262570962726731475681034678311966878904509539953694789876297758998395293920952614906953258869821893048220627723294651652411382951880947331177938296864483417651741343750916239140271411565769613398130296156078372929522801362145884369754366081829032153808746922195453025689747649289775022106680805213702190863085504999011136451950659406446926775557079189192180094937890612217928337642641779448114285814640433152290998438046637105632451672118588963546365056306541626844254395528506154051891693886671629963120763509629369795978141264749616351213755331682812815477176739155166687566249563587909389026035187196725300687941763323137290418958389000048108738712980509480035460774581208799208887584631407569175550787620763156641256575935118106181196248540235464224259931348988303661703022355585913419595943502516783357077048847895483309435492831663112982993354814602223394258882951017613145047055325641074327135602638673235357602782233084657889619663147094874927756433188005672120817165498645197578097383702802242851019273771370839985937839223613877066838971897180969978982492747979224841383803494635068480874903866381052812798274858294929087818911448735714665971526512930987008725215597239946360004380463665596048285301019800145299819764678182473574369485018100454708348596950200979885531956305749208290568651661192485401232315661091715512117032150519465134349451742777873816529527775142091069763190082584580013619504812866652516441904095089857718308973411958884203029419717048244180691144429924898084546835452838318151547926859855596727839497167419136165774929596356112343697000973446537027290369952141548732710765860858730807608524228413633704744162037589763560880663276308194372711727327424968573440406487970070018187698018687309809283188461332475266288232947327668380832497808109950037767868432851532716945912506782328026402781860103845781051185369944828626708712668886320350093316841295343831497848736514496592557828038467864131819586029890522923346617112445032317574414821226564212065329930987645698795850964403940069573665041134909679945935507854454241663155242061376861388478685432787150711904735321293025594512735559302809670694933271435565355547192229470452036352102080841608801685855799232134931366562111397043813772907755644499478415049468776682567604895136986520012974552339632581708654410250229438963099326086084742742944100610235887406918381559086501986315836583864795342555644828122494523990761398748435005853708762124461607464570780546998222601356196668755133988167991091308919080281964064647797923554985665990842017497908531376477250888248949438113549781032678880881935891082334615906702852587450243411142514373195327450861894025176116437451510551471945080785524584816132882333964711010937515914184139995749212448302553886606889925862562143598382185479896154681901238565678785633684783746770889987506439453697922661256831927449203856427679403225948359051190705917615509703365259698588621280075543805846956323477974032649718709606721872006295339836145371504939157486460898440145680366560057591967660724349215068122974806733093973860330252543385533324000228092169256509061337951810813589216454331797026139513675575929904474957196899310049597295989206499536886748879177199423469298775515053538952026604063410286802109884057824488360647027829937219532287664319094971041328069186343860428852027257860568586873907459204529989653819892925903342061836567505137619281294655916120267804978119778197559291226512602691542879904767366018521498171897523505460217165992920672669837169495936090517080208923668863097163614095629484110771645043677942589268213509687040655614958078478001856378996024532648544625437388371481202240613708535249297391150937874388981457828967561542575945580404926898495919089067267114199156427929897253599673492297185454069521969731096892547925822977584097280520616402166199802926162338190830634986620242986448087650119809682914062396172661176177702905376622931352381632483174238609627735908380391397706630387240273775948333132632723549505427554738336879193216933043179179041917220705775492037485322340007014197601494010786949838947685157373697640103000092742312745005098599286074051227331322283063664646525360594377502329842843356618481095182684933649058606444561743708032952998045000233202545390487142021857597971863305849407567704690031216249567536720917812356489112721480384337900532357259892088360331662186726709775419348681207380699493473234024645643837286766819259837107812384146271868201348486990466965218943428407399966230090393486257753028508919915770648664366080157213996017310307572972531946281839751710536691095614569313562831365718921645823343452990836297281686135274583357090324003141616139417425754658460072990890503152380032904163837404100637934031902163147387352944695073691051341289706280445881030532386438790521784188126694881925678359751246557214856188449975128691139792753072214413260306533005453523705769429836219256736989769472026537913698068621516816236344046514909767863755189403321810441556356534055268983393233560962831619479080820176880312407644968571046433029218130141465721807739996283316708157213770530138068272641134423241063983645948509336048853109477656632474751624559384165261949405881816813257192552871160810913811801099918308560116602700373340394163076749625895303970165082167960914330518823949427314256257923395783582278518825415122765826606776496260434430137443841563333493363733632632463898451139475018145395145374172887682111944844074176352171670264503028158873174615223629335159402500729081632098579548432256291396186200967326613632070956665589370830304398026444670904742025601490786202341665397715636256228568919305826098758328429320273903775239987327430694359773205513657923843631192687940529648480930635414071211819436890549026188781435296210172331774617577937341905950778347949712342410562991507315665743981943937504376075082055634312641678050443344211798432071110089380064510753191762630591836919400111984897507294500020138393800911642640970377173687435357628449956927604749431045937373092792920529527971794926239803438303655919096458399099228540717899494225418506123490635438303305605501052994745555380656123795590500563720945220432375098349688688114426591964841774902397181618907808401211882991267491838201009944496563997518711508415698706959230406766238895684063085438436555484728200209020231204768539833458422402422494373433872574390198214906148798147398933530198028697700195025765327807792942562165231507178486753115506894869681078953429937079579875158176092429890609782590408945701848094441936819140673391070598191150039222208698266406242349957133640463621220450401605853223282216129465847675949731774519732583643064326595866802388767703270413528211426397555242187236066329507856234688747560859740579086794295616199267651654346028728099186922214300279968438249240313279169671883498653047175202319854531496991866527036620186599946129428147357971019969505881713723413751118340596271497857080581935212940977838209277632157291084941527269124923035536763903801490672898165925503519826849655780958324007141786540556667605364996669745473862100121192722600544149191282592943473393417550531617519490492786957565820453454717698894626095042972787937221344682653264345061185370240616894795975094405792636358720491136500897221411353319235932601885544242326607611967120535053662144338045766492603237021628165754116791596209796639277007876043435205976101150693870786768914561907428482906551332676375872491244270607139542385492378570114832269582876032185676251709010204129657862270538573398463544841838616380311771201331055497026900543580466746652468944800437518029129329299200442065410011503114090238363359427919905300746424255420349205868008502816959648284654431171485419043148968031349132800921158503293361466675094155427105215723562594286581963634940961345611877919064068207171909710643004988160647777097495066027477964592000287719533075902801908080350044058182261803362089698448063890281191855490733415332957624817359215286988551244285028116914555844679292878076871595186795289836651761396448961808198940132034164008305884736279012483211969093548393087799225910027815528627941613329477939807338411098090383025225968416530822008810586829613001102648308810954379856836585701800094081623492632258369030171979739168515628528868361755877165077039114140622666168440858194019231408618020153787929782310032419780903871881776965045684826983962556145610356452892297068867240286356027109826977007295254343857394390228573853433477712737362604802681060727957123988846752443982875211279150056156213060170868410446470910052563381224746131918016702709193608836831860483952143993537405668347526031351945071768236456616321231320945446666840038260342866593759453457393004666792126653501729878965035755079205749869393587639113689351768478923205536029465075021492007645223543170678663331442818210222207950480846651532201300993169175402989758496703876371216259747133895859794926837589270199548819290800081208147353340802042829277344254593271680842313187349614696636602763491392155589031785129305092012564698802472025522319973478678477903815062327177777128184063098200876503531370253730349971566633591729054886746162857687783907978499161563652043285814109756870733821113581758886873179539013152064355759473130867359234298755690953955676479840442595384433261305536209074683196683248653134133363136946112884031874023740859424024334145476972637633955360925375681849587334462743227501065975609161410715383049942443205347643966019032627478453157645029009670649161565869583723531219445069118149216251141494406327442387649323329442076611071416839169587339252739469654932474785154169676944010305254808841537469588978657982166644604688285700169839621935810167024557421467041524663414145066805127995010245937064511478601259640444991643376758211681289005457445274701518701283441841281717954900187312099882152684817668430320654590146919137898560247825705852502422780411787956781697846414309582778585298854900854781783933574615376124079513613262506539823260078035676858818741987467600211010714148177663170765437838709876633573287782950412755154134543515882739500061236960855024342252382425525241674521597359568984118670099778657250003729320727247352794996461254027446146116359356027970684431550383533032976323990710388895881373461517115219039365355590819599481985950828821855276518244638818906701464502942283982087994691419326131254432546740246102726126067423567456870337081290163117026154222230162715019949898288511469192328456791138192212208604631283468660960004462670791813141729588118672980803152249082294768265228969809700002088683697295084342641554331260887304866547363410509651272777509853164113157168068050653137925720888643723619748813592588931508289627441278700856327523995808668841599033046806530543801597481271353023608569796327483674218014139278960527496388050451761471470996570186133801090723480311743041501297058413315035774564000835267309724304518068830794778795373586702142529249853086385605693765402393450857196222643904057838196230321579913469219915534509936940214381643900263009204321001780620077661691397136569487920802938431115503637116069173177323088502197448060356386037618514708526469120324689265867640547148987291925601919590737380525959947574424933405857912077338285974648701235916651947110760957169267141172769068113170464008307173661595928253918787077412013087057928925929126477896113105020801427463280714273864575006324987728697527064467870355948268999439100203224729040858424552568044563724845918296522947917558767242534598427741717165081834937847567027387396317058462111783765384825392268944131574555711823577398700303822575375527739121466825655122841786059702440508125767773729547191890272558814370317153469106958364559109980338559478514562274927138937398498587903975689553206775618728655225606628197894179950044418560835745697204757352122005620477944861319821362647880629967513537533144363131574370875579232199855150793595732456903143945440402415753617241761436032295510461578564982690533902597233890694944096686226892749896874818515201298581490442358987353266871299317556769669421676332573343939142481365659210336720551873304835126333395349181491468737026872491333720177406564773165056931651226003227840284535980807293494177442289727181206706851233564754723794329353084357864391444747272942174661380598994053591087580384222249939731166563611613792007161817735307189010170657321399653911675880903896985413702511716020829112189138532579768807613257073127019914823803203507319589977755340116602353664326788976967835566633745353274677938375510928172704419885462770793383850787889199116689042172260713689258707091097479507415829543708164828183343439725263257089658086140875117412402366293558707918773335805906043972406135771065077275124967049218686054066511465259495058310707417728970662161881011413462172039428221566052653209894060075938464221086433349401747344158326753084507513535320010575257880144738112691878618205910790747151687643508406335050561498826529722885792776973037328017528913471377967067961114913194343548020884202955171811901509870625558938497994214888898268969161116964515823180675731616928115569833100774812304420318196991997420986638065608376574231480322663636406584771999342611387095563327527300406901465283398937168466902876664100155903461382899567898214609287843717687285100524062655788930807857331149781775102356811428318725080536911640181854986118952841326054483810509855083992950264673302584408631192159246666602789097201989032750373508214660550777197343340481989872754093534950560622334205826235480818199975823497028309089990642542532776025150313594878737714904324131848793797912053325631056429317887610558183688816394895279823344692119344790075764473915072949105059378606924381034385677879315269906262053438192206813921539485669082459557144910807793534688375454874979294017546281532449766952753427541601911378698779436649443380293195936720463761614427711147624602742682617659093566373731720668918924056608906840712930998983182030638609287870507391319154008753305927256353799813525048247682825436619402383376445788227115546874321070195161170108833649253530237702744378752559679231000090148714137377570829254306001777826416706605506490505773377733728367321256436605130240949139960829704790846766990005663181337637946114255089005552030867803122117451993312418043312835531174180296074940528786472716242629329500820824371514707043254367706294238501232151798155787708074564169531410812099973400453887072938194012515089541669248139493923093783784497761102946751729026258056340077267653128020315103682714808999489073959666486288605780807256337579404270009103303160325233341035866465045027511098231702599234938916965902405238479034874224292493641356523157647178237716970207162171054576885408501483116897668414256437120594636845705356434924520988225858797543241374859199002101961682265744662790057626376854203730975632142712558145392572599936109568855726000722942997268075301814122371256135991123462492009491161459932693449727557807502832199998070506794231669413915731732419482761693235023491693342358894334225884020945169770673387542830191087384697017132582338372400930610727203123011165990476575786613878976779924227901097448088486763998666972643628425862263516966497660640376973427922508360443754098401019232703661741787250399352624542342752746181969099512975522363669092913596165543331437901173443218998235305725122237225487488821875388051691261238965214920981342297782599305056264673514409441753984584566329608493987289501075241690583468282179029446485521235691676788231008486086504421831716221274830506206291022638843512420892173170639120929369082848591385762307846173997153377683534620823128732767329020620327854283213182210931867748944855564594416792548524695334212693320156749958596009158767529590419257133180426734276652934150462801682518960427009263211595663727725788147970450323180103777541821771990307666805900700560627274254422838697910261023995128661701213034057942856332583825926055885332567656239096612114609248718556976726131745806161981616165987726687236999030224781541826746325808419165627669544960895236756823583405960255498176655754814083050353994351277768198155004744684827115210970407738747270427113004325514744158084419900408330612032107467921515467471293028387202651521193043171680138707659715925887009792784955144296340745503560968401197212646769508846470666472063311532386814242343743119021764742757571881822539871447388884551249704133297057234033138229754761515398675367712751199006660626610680888037925515038693982844005501410154330763658149015764654593404750071680079836590802458238326444970659236795868635543870634547288127649490539679636069668041125282053724615164277822915085875357334378141743400440958621685196368601617929114180016180477230760217513344626571387620852068156841904772876532887836696758352342940050845804866982981489914378807913565779481521241584774373884169707741188053854777736053963601482980775237390954097843548789130276043367743228301542973403057246423031678774512190438418975664424077633332745982990525685427609970186815044924214294893491311697711266759759870199925783429469928839683298133300686826469745767360104689370525100642105527877961624188208336611177474932303532126298581549543328118409413683531669711371911363860023215636317283900327160440307739937908938797265806955012229054127320624989746849659887654026505833952988591846592569242199035754307711602502258106788065009832690971446666157655242182608832727375133802585062964187294185116576632241267545902297014662955169172892026521353893473362734912080634485106656056117097596247054240729645914943105399986394116400893067371778444911408838031265241705272590378431432305956891626212677100346127146609963422743962427994708034759892593249836711119104805972672665383253540974375692706522917611067434707694955268735683605757101777197301288285060109483990280696818502699720992194519840535596997304061290005355099898833097473918374460655510815623106008316745637050073916395614783155665732329413614456034371205254969441281369121577446297695155835776065705763225443483412752880054133138620097039325974537586252139291707470252450390433982566983848938836424847230445871363352271428699535751631873237969071163594633826060925192307396332491942405977539095202490217514989605539780108685608853966779784238468896226125594517430064319085364835411932510004787832785648798282988515653990351859345614307475721924178114634519069669451861568796351875662962576058762575496340604440023477928657704501856979526951307316638459630291191253935148103514311528259533254779887995714685053283703218298005689336523181063964143003860760548365542297002052254481489303516428408894142485980088061460688628171066702692240296166365967850362084964214831591465495965111066151906189466868572404823848654944453862140351075039456478063448376233566971652802282169513977390716902196522445673012504261969444845694976589783661828011272603833357715332675707919182827036627343601263224388798353535364530737778530328680069253309674165584906139552994185409497918199282833062061023490481032397360133230697759597502573926240825859328063575519385836217869539272976309156554822199189907193210213229600524396084349126514478266759069662315270609718161290393957820458551078497999228241871177621633449329226722915594244877648014307222808302326367504194433869152124546455267977117091114760805907596633138730540695250353810282516424255206653656366764298407514162118916182394152959604100795593800728605030254717460995680877963064782689086045662004111581163030516856278515866884728360930862829813630510502387421020298164554929207054942872282059510700043505585064400599850364308773421232143304643196521273768090128312242713858225666750510810520091299930207129920925523504846467067057228722370885697361546057101788323056294231260640598888044086128599459007942103837460526271274302269158049150431561636633059869027644306023042063130640273816323851246692272123777907126596914086858585008037344245370419783888917113882205931087636764246794736230690451305294720852544128616407162335100100731424660037299869996905532883169835432255413908480968504072159577842414755144973480561994504979392476483716098604810203275831857346511001540322494982966694071725022685436211396814475131222215982890155186344501575414720943293672961290544609442371394598390148707029037798407605948576072775373972339361987967213244307913195548352843078360232658394291770613959301152999596125895598707490123248840546971846408099434697643825189269033940194636829116154423562821467539912546050541509343347192978070991207195914829312180156699085198436405377678371569734180232149980069941421952726318282805075321798828188091191115955004479696763060673932617556175034196112143865190167280726153646436531039405973956804070069093945565986240973392670845935635785433911753905785688407437236193503730930153119051258798494692817589639067529479468660169561316384590086531091222986412381902720923021232633108316183454376225295950466353253901149594306011483865318949329567201665775805271837033642600313350572157295430504195048296609702313802082015315874621733188437261143378163963861336754553806409704954350011313435397343124294527785148051185486679294122659084313903185640790553703403671158188450978047240641468453961464448705435585509163494328728611497553946141907410664263765375735990642649042191841714198424756927453598837394959730922817310714544223257911714521964421041849684091922201669163462525460074220590366340546066126318672391262525152813523670763637900111139479751138724099260327946551486520371592085689811211385548846336351183668130678451834198059387084402677111676008822138087757963217115304641439623149688961912250118045304594852103139113126325186892535425478140535337224872927188287278408190295161680172052679250686027674321703043736878562801194257903294829941385830093682861578631307713979273948292510461185910310796579097743900613638764269335435288647104980411712184997235776422939046816583224772930093665578463646992959256015365356336156834453908645348976738818440575873782217201427568236029005068885887395258807040488094001340525123061853546918220253460058129522025719854611175790178019890438555874042898108524611251586744484614746304794479318006936352734751522589599966908775875115115069515655196026606649986802743009812166468002301341295231649137117555234459697202306223359743162534604267480930113122622303563533874330916939887687148738211086485201118575960001609522590693607003568140692643071400764019585766497495386203766962474437787660906012538338154446696869827630996729687621063137845447627534794899530695503221072812152620669742586452730535447086250663330359119856549898627626049972920773654008923323955826859879198739949425742664351042450009612772805109753960987680517828913532813190972336919458172789793650785627459537063993267665550584848023662095794190259163982407330777601820681372775100458518060592837169725333507051091054561368680556628531362366567803127324702393203768157778637789096479839579540218836246496505209688999514313491675643448160386386646325073292772170130697165033533672221885281425494958565949418996542921210768504610096549787610260954324914470236327988213453603948892793403225596116191433244253604227609919925952656169909949833764393767613362494886273453864446592278001908230299264749289534548693475424144600523278233953125149136688418600083596188853559897537723980446193093849903346261120746725719876648328301294674618074344016800999330295708329290454450983512194745820931465220494849695037457661612461209271792848347644207421442995523408324883715571932008199163857601996476523487913623093996955642591059790231738450322667359730778148685000079020930743609982398265016586982113274402801519746672199686116639726062392323748310058796888276991554223309504832955796772796228103359085647308781767924086686359177107309705671164035470373348620406520908810765699171157677777398045957317214976822819211283031418639241096637215307107076799885421100721979153817068183814073121137954633178105326648476213287327909265363883455695764371952328604595511326801728059556105208121595813270353661337453641948485161470696241016064021392253432437073282471210949550035144220456871557870359208139905725958481833812334612247133105143506102069289002496817423828245014518295463527951154588552248074272861627288126066132452124486513262510756056675232419538959472925042861175008196656493705420743857085499098581604892301197124855486560359619454310133367503793490711981849387818054748939239592183384730983434715733747250331202270704815258870682902836819775138172639728895933833233730208837724827098962651273766484704515436414961877709838228988420422558901835562134973571367218365548278296036386305574309592445722655911246019507342750216782338650065838720113370713210989901024911517693936731384456312852381607278711011486985408045712749386493366745117510249176713868528658530431919869572856328300260096012176482909797857575400589668937899973396982964203129096704225730230811678779624048192458123767081169251009573184157496361544667563539541025064560700639745732056615687898522151845030002939325097523362395746604672413835209950067959120185579458486614852400965813311871346192460380663995575418815749114616445349544645412686649773864259252017249888716968800585754566384591146484337938369848918628123675497483263749054825715734709897221069171114304208036487937601533192657770985205508698258143543151726781117509293087050494214607991864365800091779860973774624433997598986426609617298866134008554501560377430446478531489614879020348160421135169286983449042019906859452943773675381561452766183776875718715249189455668728093774186337451982849377139536593099125239857675328586535278709010124260907685256963170933934130325238198212975020516099652726906518164347124988597597163762142649596683336217619009278528407920157027755052073316875775229402485637042298413258852498124067462835991861137007682467856828859963533058284979536852047100953878437286005268977388314416711995672995192144453149616255377186904760563598390748768539757719549789805366808333659845709207741495769012538604097189447380654343576782897403997565169936656118710890298921306338099580306037063452920137507146527307207164122298894975752277056483982082909089064421339792622319088654620312126400921718299323038240427826531998281508535515837648120859070712105423028611393891770680418819200013825583745389951092263254600752425001158190143108710410700907570569225090090328817704600690000452257938847791034828343433519400174158934185835401292793863072148136593727963497213903916355837580600567237050276028834335969125827208626196447009978618973415639879012318455693244661813398323363367124837052918622740682616621919830728161782323389462984022515292496258522821202553447823324402572889751437810585288852214116423019410224656396158550642579559233370934497531453100649342294292256680929966800593817885365433056720901314573003255223365847376878104508404267387974936082936922218130423341467632612844994518523918873522102497202784473039985751735348200752769017639160878856577249213553599914743895092592362490750356722195520047942019080393015778721218067471564064735683927921758503240600379735858490449991994792330329941859380395551175149017135663917547601739555314187719113512044412646485783563597570710764862575712611470114790343233914506814295719754201222740803810538459818226032667590485290062196200020586116652338966453161175872736068390200085713080780138820276592551755752913036359386683402930186019403999481896964555543123480010452926165383314070208343416842079061293603294358945811930299161288219838859380312853143283107219588854570428822683067252054052263989073781097662083656112245241782026516259026728285120990669762221541727974494738071934069065570586729437447644120949136270500357630119721738949589543815306100789295768248804180356592211008038467315781337239027611720732590375975835496358679780510399995233024473746116729513245238671718869807811815612644379151708202605008725572663905668789680777101831310068914522731765081289201125129104624271313351718695565087786860750117154235375998251125454571449552732788029101743333666683563201358809722744085233212677062026342864989092576918132207590054801530640488089251243084863958860558524459183803529569615559089273904140820709872645051962934287580490404368515385746897616122603076700740163061129414160956660584611032933957469602719517506143298462093562855079153923722351309425422673102962097730305577495566698490410893865390657306168234701553083352927148129400665827592575150273446190881428992283154469534565440982730269136151008776029403928189191880203446433316556756470580746170679786874625640454429416287511417961969420487948302702930429212678148950970706547676497707419720841745139924720829248551786268865395294935295286532861599409956530311411672385198541108701483196517880478819008292633659898029575578893420709083432848345529718167303317515065114083997486666911340265944744581044285491677816095360530329220250490785541689675416985429841354894014729900211286102840933891333475506583386132077957163525879442707930530863285602637841519992247267343587231995963258524337743834574108796706934790720775937805676738667182792736475337275626088848828096101021097859986301052625227933788318269659763576279001559097335874717332467520913334220666375050288331864012353702221566428292515003051386301122690275535796883631513205673539615515259896800066433348537103697459639140927193920196244250934469337306196296747539769620803750702098032324224904571606577487746173605610516917619154230584259601379899513259203716400742672031639004753755665577099501763500068253828596477483366000687330021313110482266737911063758589058722892716547322806015719377712319055362456218274235459084407252929074655353030326062819778100409292039197888152117974288659608175556710529549446231081557817097057862786167996595870637063932469359742590296150173959426438794673633285079664670246954742408886493388198951593304283652763625802288693138959544936970134627615383258989308245156342132366945196706205704053503707996979111136935990567478823881747598353061226961331629733215834931192833262369499971789094844154615251439436934100850515331482553786795863714873113746088952824995064318996394594435845297308932097999618203153750168902722377757586892341419596238956900469705353321619593540469648472894076788260640586977626507871979345654616520497008543344178665198843341979504667846731069998254749543240658314221419141206613551024166931030270769984699907265641562724231439985679292809847188251248538857907423780773330319120145878964288496560644378092262561070031888116974759548836447652213434582052329418804546124862342490858138362494994539326797400807043726623187781436630950248933835660550594235303485971044602180340570229490403034737968750935885642241710222360716010997215124410669361383938597319143425598954547665647254092845522759460770091080896099756506832089561066605499291551816343471865468018599051546267425780154121321169193777825012796595354707514753815333326928738219843744808051333143474148395066693733358538119327452983089576834168191913017791366116173911535527071457510272789838764116443424343457382657576018368119948169246559173325688974045820128648021971152021231837891060389039647170441140329145020437469407975292249115478258568253062530372315373201265961016714316306999632837116509315865071077107969097702114826454056014508183978177203312128120914843647606680269021025993346675589706575385093581050693092209584653810401664989510705148030762528750174178978375461642307862302152441749467078934430960735399108206465217165593050107859030803382500441752477979630906372480160479355772872896726501890336037115729779266123499286115333350188538337989932592636856760670858662544807381721966888130652257051069831459463300858629880652244244373496041427123249174019689018984188097032438897119465559009785057332262431011757730860936306055322035605609768706103179039722609764016114584391314626829839434129571539222685464698106530895942782858711338846313366406665180899984138843435468811682735648161232539594775881161109703122111326677605595387207924522380168258356741965561444333891421447931471938423075917536978450590451862724489285675170893945656631039026044485353129069802772245056112355619542186024945482711932341360960560628176111098852145035741992393516940587543121841305522318294020645318531711528225623562076134898278131208562110919702683532518008070283363601073162535903742820084410366012966120205673601233779904850888581376388794542810296602790180905866948914327963045514838084692319671570451243117551067844390986971261951972148804793125623891461786994120105014047586606724286403962898961678967100261705527288035391929735069376945170570707562852319456840167588777629768372707608560284256874392985628800027778722754513040857252113897937922235966760389152636553925771123831454359821900388447899419882230893614249314922765545693706593488748427245018087695618842271012658248944133601441784196537808516813678302413604016860017478440967872221540648599914179271811502417015600444919868866514264805295816792379540034739727871030958914749915607760678340448831791422119812063134831842133957631357778281218815292355358377594186833134176822707943797546305565410452867979816079753900452115005491564816729107561310680433838692129139306199719669869329162695701274647877003215327791274621413657530236070298654487150681891443363143978816780798205270913483394203146198758783973262547613824127990529232937479547915564045605254989156794419655002150418031352484509723635912092420072170329754305719001170339461358978642706744659172118146090498988660959531154362838813808182293486392594368894888336745964689199662711117914902448977479766686231681159416894059466248525845149270671132156776505432303124019393781147676151749154262560876224789942827516567781273849098707809318856726118614315022504328067020178824011301901884340447711858347269611626575771710650456526010186444063407414386625184277858537986702679527485716836115937851245197812892233093484425555451594261818299446170595562031577244332937000136893187014376408738980144529596855220147855146608913923625896217856856552903887322889699991937056704151120169263150893345318244506349927158016532088424209047376592339261308081084235877354236884528420805645120186219022927307295148368714284271843323429837013222870629551270923721075145490913508064906686060522843335143381238685124799620804429900321350206539851713376681517854603630698243079993054766357521545250588282653905981508527053231788353785055516798815055896015777746726006412365551010797267743617071539102881114158106959583254403308761643263697820438536722411274915577974488344213969370119356740282360595101668577742991801642307507825693323665691590202384849674535242140626045925271164835018064088692563455612398723993745940086052711636172487177396016835741648633418114500557681499197035501254351412989625051729892885139893351261963376483275075116449653379893557247453502249403511797316777761726481536350095084155043149297020182904759346673160018141239115908130295446330422271553364851688835884400932152154165899650294549111374971101337844510290759540560678702841467418910090559574112999541595671269382348796311352262581043576988837320446956776103656281697292699991508900938760508739254151948415779765975045881778380273022654559290475921329670530180723103202634794877811335820311704187514869015496126156431946124235603284507460606425393459557038585760801283722847593995424167889304630611306011241821173094973441864916491923601471769169719850473603025828368491112345366713035159444362111403379274751636396728710613103397284995956553068982392982838664359335167189353495799649618199035854259926735358490860465258923410541192660947854943844429876914111840572790148955896502879953419131548212545931682075897165164731058808953612685454961812582799796087174834776396582385638300415908034074616163011036881559105092156752007603038920773954027207288821478937356921483881325978117764360530565913827521386364303441073469956863559489691468556456395063182907978202910186890389920302036743226360384071255476611151067641196744184790977067101163540971260492284894993213826904269124414149477352759207017560022978594586168740493096172643081685682415498006868519016534341275969133813545831394653118301858403744844102634198081514943007286758255724836086538029286227135145105493661691630814415639623038027098821966603462367906369041369021329523702088170548821717513813575239205793852156186001386963351946705995970328797526756885241003454910779820300290500052369939747801760830530277252866625169266248204230106408556617742779952644634505171973918565461961171003487722173595991117439984515811050485219401553589527274829507141019692327148684160032777908137224642265957528420935785799090963035565495944222605425572274469422343028135854700546817691292727386629987580803882617294991081470312886205590642734040382916627410848610276218873775714975107836877989434472699214338107377644349841883374379348464553531390772547343643397632675148664477523524806406745334403382813023825592320457403178452515078564856327582765132237006837809622821767878209834764911846642203674388692361635535043527409082343987591835816346169453954847345811700192402296475517769329829750437018256350088261567975841127199634775639251370219908936584553390972132410492070102212723783142459740955923478270734635705220641190703066470148959123687106275522072135262609364232161615139621186892973341026392551686911278443408531066186303754610446211467978734665120081527618285735093152175083373800376409583754776617387325260160621466261089936902594381070412926371667786647753840047563684945091105239051134168447560450518905351617626886913077911435128827492269118403554884763501957550680033417827012532981200610146820212391115531100633958643782558090454298043917600831725510308050288663030900332828666810850876220865830049577821127419526750106950802746098558949827663415011660938939497063624883601648848133690645234791116386645851894423524871980139958171161763546878042031517125516454073916783936466970515096474145415147175163953117441018920773205659398265505437800431068616722289345531706946032642426886937842223300516456216460650140515764026445860744121937282880187294855119316799538140969173623796442775615900413295825365380723699503679567184502666956462365816607500858449908885772650552566356369059422546492809175732704207439717219944046701907375580936576696911131874866534315645896311399936568599393955199448433626558828924095245413347533404806452570976882968580504605548056179176001404141608080091641160023948846639133282316531480390917930685936560610205337991315911171231515325808136719897779482228352479374583612173570498059619394560185201461928651761325023978081918033373923550223480949340110440322340919309265383412907817235633548712963418415038108966290774024531609563788007295482705974667210474131090538803258337649617140882186233151968370019673306152027011509498790699335465351846649857170286331831504562852720331208435991760253916783240281379045731126029829232366088274004030761079370932306304332411066177296770235550314195793970996683596180179846503465450276204603858453281309204016468388380537499617541903260783226738191768054399768704454942060926431950560953470720857280749910783825642601473820460602947027599589744517998281127819286949860952815937349044024306436600535555655427265244621580358293452050919410898462702168596426053783490124573350873761186352549214198736426260093532032580148234123233683462014882562190877560805489399328437474352633508431773019012350988516565563546388032362101878277746260739224096225144907772861325128884146900627766066838687881762532014944208441511069633719654733663690459935954114160392818291140736780157437957932289653944817760216059615897433971363832971728121507749236628565241378112713464564262100758407416029364980914228547556811514937469283559236180963474457571726121734266869695183075058413898072281865438952226578291127817558288977357042638787454558695228272255404680893055404510163424233540067129166058151580077670228268342636672980844801534270219432633751171004363046710179771401777260185969864778908249501898818063793712631494754949850176322655465012507191127426661571729753466658307490424138809257815609045975137995736139957081962889233583319394014669609955921216928786841759103468069374897482813148594146111932473887057838491059954551878023750570381236086210363350959141345478873536413974715620634766175624793326863669668101041940696765333110659652195706497513747553129483831873834362745268846702239654202412385335239276801226015051778491063291020844684991888403052362833112233224343456689702034611412644914876351796051275515058383282704200422499999525877258538639915613611305982760999084684920992774258475556574940050252592857440665533034631257107126869554322663369848175216542525886259255970009831893775661860544761055348072950986227073995572283217667957523878065125975017145994820031906274265680946442070869531550459781983163675397023265784590659946853637700962022772817218289998342283784190824832467899101003632912795972704988213204962066100929299466729650944105207545139278039624592109948337312871530738499625930756651487288890852306291948409585223297470329817116046163864077280348265348337305549808181268769265776889363887303112543238505015257084262512234567779980501168969447060788003125836545689714151176958961208446992758176802159654168254935327513873413688774923430219001437236483232418980655747745646388656984247676995475359760012274299018661774287502770301851236094736723451758420726459287770759920623755350576799443932630530472739986287164278547389873980067072425867060899878521062612494126519509292923272631333872492586008472141075389026013530319888282425753510223103087360808507790342667844973540344441032450088422819163411218376714716053093921191760655734266098988072839185736069474276617050526806491797734323805804450849453824832198833651094198057892951831639350635510525260079457886567703191964483370366693107315041314884313169385688737514662921250557583835835504234345043203204915380182086525146222493895112960006176020962087954571480863235192925401699921615572863818671099972844407988692763205891194241358336645421062550430729556348388288883893663531687737288459216198753021067243903199389553091901801208768450173713204239118860996620169858313311738127322738752966097351299821588461571587471544738279315552510539842714688764431466147775460618293707133019804377090580920018083904245081059411784905796824493395392941140363340680885313847069310514674867820107054318170677841714052032536812148657378146609753220032098316922935997653474332049353894945426575809892891698487699825315298727149428890492409039967636131930233479386288460973977290428563787457466047746391197025205800550364570767469328429083820780180362697099812320179910771764446739896837583368935897570524621436851027657042473095565682002850185103544480363709968605529925928739994627988808155342690928973875091002459204405146470097008078791865626184013384103845348735323969974071139826448630452370587405892129865455827282247317257862536913270631405165189060718228582405027374812071067082562019957592763603765052210488363002019370354544413493191323197735754019481742243670077196222650642055345404584590425864600654562709492632738864373971402201595898105653298866195263613661945729348807496616384905453197468524446104114800260278513984141419496636338067845451553301861792902685913534014793544531395622912731659894746895115344841811301558049568371428155330919976990653584174009689983165657251555251607511581560473222948907428322971545585392976779159732626717112044843181640541144862031752889593134400421508489900417513485591923286323732132892949554590359856254295612375007303187488612907340045728306983372346074466596916908360509294778880120232352434194974936050989677269248350975345476368295665850221146927110032051924038340185645236273708718339933566471499215484760656851385259698623463166130160295265298972577104598624369592747860809242429108425446873075811391959422094762130421002078862442304026917304890271905457594972619513151733115514912308553061176410501000856863442727243220727208642353910080366783026733996849044083538355029863880022486864305519288859989651471021659633934284885647709116970113711536634041874352036154883241986096782846386644223977692892082631110814669836878255459890639229013679100038142798987788289700961108837473030095341513985659656596466880563968501926601611039524566771558006215847650423927610843081612607455861450993815594860418284022997599915350230940499183778609849976744019454500084690565266443559436746704138541670023213973173038422601105271086240763160920064160771446615117266286037297643416721939328643287538895118630835839491055628517939987949129659740132397805655354139559048000204660684999435516773330323468618450457295448407101040255042708988064642963097685630606565491385211667480807143094713754473125215201387311937594471520005548305356319599519700821402385755998904174912673506580857344375019391015485362832288942092174949104478984968586967351135110626123024062344631563757932272381611197427714035046527179413548628127577620590283626062677664768841089085751697695224260295582485739391358003954175078896009085145734899707210374401256551830522199299685133465637031530731217935935180542231272625921277151242539282720693945785242178536496551827804730709794010124490593509759588917500763426300401990053287404844163879216690078559668340566548667562536202569592072878662922363578752940150805555451956604793528867226331349519858515947085594193952991958268120969620592337189778875081443974705109190254006228537061018290972967871407266063718620855824029874625959516274210703041976845416232972694227870036050301421243719128942643901730861521740409085031358030974603649613705265882555703125094567622072992909648826304959230450479171035924446821001015239564717636011408280149829996531741342041537553103938759438080517865093102650583050757993641321897762104898222831062678738773520885712743065992263818762209274728373869282653278497331755400575463990950020985913806094637888426406452327936260511544708680356767472199185479052704950381061778801454198729505138155237428219528595974048477985883861064316491127859843100792094497022830985387618705780976747567636514830047307258428388139908259297517973941631249771848245408300369050300893697344701354942417601887153649035201625012334552191779746766875328012173041953033008660876883927349109334344386088284131272070855019645926642324753235717909890518698919678459695221462122141753522941857265306334878285190784729889206855965285723874964319821140445180147367364620167742005110124497622680099053067143830235104850634484219447236888700551444810377042227521262946124214152207548575101875364261277284321631129791220696839721259863706921808736336746403032669529502688022592683226961467030301085378196006048798003999530881065528393917752509281801938813649082363941232094583074030962729098300951453708259367480933130330229473809326423176204659162474049750297769700709068149242105885823196543974732886586758115854262050766694913135192831834751937999338198358970055040211580774432635692963872806324176519402463312040600370350770585479339719432990979432984000476190132477018282682943121372032617043605199121533147728259194137247682148861934898978940245064212018282400278564628761043274880396318132932318477726059157399730505058162731976539565944656730608963596906995748638288877031139952725017912714942718846946792583677973254551190468836211576851499611178042539794453867791904362594843883279120678326403162779505968090372070013507157589221401422866828025891366060285163356535123752172752237139559636871122055269952691520190178902539119096172181258635059521794361793148255666120675935887460767524713283680010983074864178035142182680161033028058566758265396008736579892485473416237149997559827230131497814737671289819172538565767110920447482506539583958971771240138070823510149372766133423043731588706531364486042189063110507940103733185848500612375044612569565008468318670666348695395546885331945198007957440612955609225421277489140162986989356347565716614536082778788771487329336521146466536432804209220629831911857171532678596652848997969983332564318448025595343666474887098864325006543663845048577792887582334841650315837331100625167852914686811404981361410601689488641381079570468382643269169721483267472807827760314431036035717189581014908595589319293559446973041427618024903515936303290325861828845727858833377180384209433807502235349190143856213283315366572229903009693073793132997595780985366052649050740725288801044182801077262115087504203111035343005129802586441339167668290936159882557369191892458038145115523451066471275647965272618634003416797666530527684082124619918272519202760255758067348952841037787488778451427650288473195902014960436341334173181318337870803803559966861685403654122037921207760964799314099488332866041672167167602906711901627485721805137364150348446675271676424292166825203315367149141899356862747209179660500745066483920650808906023821721580334319672573304029501554512396169897936943596765789751272695345767796206736825192761349908799211963769445768992572974102856110768515909850004581974029936034300634171562830108833686989678461381854122710096500490573754221718921109750157396834883804336988267049365378584628031231984015396494315586710392161675157788875087480826479866231099417942037759710432254876627698623024556538842096327005767033213211645643132150078065320106486595772534349163317848064844706699836289815641217252040614089400496296852609696886707013133340101525299668417770574136672267271914746437482933611461015432028149854644802108153472970791278965480669698807221893595844141194512760878757225011519508009260672601779313181223533173845080334170444107663275347459107350571602133269333807674448863774921792316045427205452090384865880775274263357448694694081698541434279527965242585060190269045111521182284323745328142508490251836766220207714475490571726653077628925081533052579692322865611458604470506107461411490119141257339553763783310595017654825460450094382713490012003659882041604340801314509466231932793158033778909383728054283263601962007040411743803730542072129753084484086583296506273978131653550007178244456043466670472053880762127764733668352413373465384449223233203742735212128662787408307535426020728056260470279327529321506197065201791260261161992624254689606614817268698842278664215830013495457485290145869661763189550721207877149905568267583869684751388203914607179688612841730133079770136945898677495116629411443516530402080215609954428910814071519205531220424034213013444997190279330471129109632677461370393068774266546991877236450652592693573965289795752653049270437066368351202229926646480253238870301962972479788670914500514812655615197543455353460970671032061895514735082054103073207121566260947224950233154953156074293878037432622198766533967728764644629421738609067900413601602260838655806291076153760841834631120685116767899595611150607880448642320000538340764337944217099206254630508508933603037257545407496577496867286978989615690774465814454746586170545157566931157070924254701005568784970364698445113327276143103652581381980046473813244208185828027406724068557859456357661077282107393882281136963721146233565657878040650444361917075732635783918955165939187210272161993687888746114744775544752414127728562260643933175882643396819142452891428465628176360657794254602949047222215801329855513139531088633431256823990247250453677777816471984826445581098829691588012978653096217089426594003048239553697351387855677084876324776607047077141218097475283019749943969523962873472401400761829806907183344169808567890009667496491196964279663514454918089156530620923184796097900596342217304973556322316925868223479469109963735833442235396334653364288256879091297571446183929077503523810346424186480511086408874838227936347795823500943802557719144714117353123649189872773610820716546181986384101964973116485145301495467155306568180989756376886176134579570381456441522579943002469649299378919919553945007779340118959697923889485828977838688486204989954912793388727507288605839812819659596112233425775437557545631608622523312731641251234940631434056949289283123828893123261338261466758672246941248955456533162492068823180462325302883592038006430573447988674737666219588047360785195943388604766544828910076933537745469290060503645975247802521874963413620091569324024346796262030776775141541135067060734482855290909573456533508995228851386483684382883264295419057215860732915454923151613274474579459700754634713211697443063297647253296768797227647692711047724406510213296588952457102022324534601981766725346832806104749400414128215830510448039314785064141909994979626328980753141887074569156565188335595659414493409864460153031240312827614942266700846417459287389511303045993046479891008113348422100946965721986510762985704635944133704907993261218689826453958008910429423631233729682444373876425141697801133589017201924910008395052129464256936708971846988686857642083614052140586497430430531385410412700501604096489675284786724314861546983350642217239695692144644932390593518249872785660585056886911747999471284343158067175453355610396176483395500273781100913886476019827609555276058628566207851573931265413526871245000860923195886433973608754698881488692925344522089327637673755012690685500380298197596319288801515934680722872902669783078267595208559874757653116933304747747741814174588830466862085064296138857491217262143667732521749341651503979081527372916405845939861960243288519999292292733731966870662337883919843529227478654740210835638433309247027125325983131670932806518969763060698598130537330834882878839399186525843220698147444727232409611254022670598263119011767934384713892395636298156805845864587198248723604994504994547336708572132766232482355228567026171053597284607238043479635403852669199710791259298411051123001423552849760334980503972809064202546017578785859857132171552281427727487957292860910729038891256487621317786553014335400390934834900727408909392769927786895766686542031693926512896799470966067912426412600959050217234055302955729795884356189556673290989182505558063409843229829943462898910220705861264412460036628018392606790972919620828324036991042110265629191954318673843889379039112974770741637333223393494137435955300716751864245095001773116020643519226428319163132836060903911613413395971805841257545659438522588825670581443365935078712311070063131970537377971244921844739013305730431409579387633401974641812257466391487076114835452159387056278228748462920694661403081614865047444815660932172668624930615814493179689735562240498850952434069885135511306878074591549421280237865224895035308652504209936224230257539565991968962243350916505832518414104132337070281409886415753052588346209169334949658303695737638684761617744406181492763776862417124960283212979378864673747342475206611882414991903135374575780758159899324274070303214408611912404936350586262432645444189735672699379624011650878858475465770868466163515080791268776299491245707347728485454097940650252347253648644868272155528784386630687571973585333627337444600520246093935836187201826555363697666821816270706363157458775740398820319534366835422397102432369553966058231219745266605954119568089917086298492459068047814482870049984931762989285597501496146988047289521512734831219361887880548825689522355899669708985658548669656186514079181260519324172298008521063966481871768662940705945558749647654754565170919492652685215808093149109256034075617981395739458488974855046896464877983776141088982586904656480315410843884353296939821949430584706824888053291743575189426298025064383791461612348451622086047759985044216031869994071437621595633381959944559584693953437020995521061715862318955098475427496917081939182910788508750008443993065443426642792667459999316280219894960705375049674728967839168460557598971829363004696264415331290309795934164557622211466149614254870668870389592013922792683626633751374558748152292442084172616098633379343135333687592136041819355925735378962896606693377703620057454819886516608240056605200703802354591686545939349694262930434519785662761161593114567192485952082642458034581924677517139375322257195983785503417961916863557722662755913141847148448753284446333978669895608103243754971159298386345785699980105080239115147250977649783209059726761137555305312403695099774936234499328557898130041463602678638065753183036052314669943223035124051188329683035873890870316767281736805907244734880105553736194086982307758655259287906397803351449328581618521467943592496688964893930885936080340869530373679255711288406482730533151648921543079552422173585836159959581581026817962831769675838557296366740200551111343149104805550680350076831795357269415475261988646861194878568773333782629477316518171544810894634010707746465196763597406105792804571036715658790377628232185772361426346953312482991017103426364349203457317888308091705547627757743844052893399177552585796658046852073223748140144112984477101828938885126620831221101703604399781651564779533752496001438174318423012370956123586336434623967680737353794002063667068944877279011612972638856213475647342956661528100388035971249092401383011216503034251320181163000229479690846942687215480157467336616939316823601214309083173604616396335781446377106032038398654576920313172278203547959421561020748134533066935830978553387919507792068731265950873016273880254967448230385695976259277533738116026346690120451461737030205468628645214607591402608127040928272798247749667268480875975486427928488734714620716353351706213502964983512813938443751094382912100556761961519999090274309433708721085214141047071501783592500110062274741234171418297788281105112440278804762400392537218180069529875432138969850125823166223505443901571850230026352554376229089956031279150229374623651211622516809929077042105911225517892423843485376555583994715804218194315169295879077321322629303422310934767260008593000254324780279661881450470838534208231743792838681289775662604005774148910268207513622746166282197732518322741046474030887711513351453997958334298476169177633318941946816511723956552832966824156896759708908682145553478717184030215787713958893413220453194903160383008493624086459686111958577365546976963205206923745572227263963399435197967785725429037749488370693830415806201527753230023111783878642834830189495491292933443737310013353046265768664648236038830817552261810189033293759711019167111630616997615931467261209337267786567970327720072179237818978297540567724486633958446217908231122256241407868688018135978759456687330292646722233784835869986810176459428089422873410421616514319895948986347502959820577999924851581610760882891088889432390993487601715418409615929364450535406565106249709697050750696315304010499975793812927284227899830915744786097762576310052521476724808618218115034827298591255269602825121702954278788381302589129159168955991837207730490302836732290455234379652274033115939657169470421453516768915422238934806173229073174610084010406423602983944086810838006831749665310933788367601478979098423631010433884098467280738921939403222360980485192560668981765845740504905342958535397402058022088346739796956072806685678062231699358867992420466535279978945723134335994044684796552536807596822993545375032330437641122547998590714324846672312987434725737593250194021327745300986108269353268887063637456856541730362140565169011565036154817561822321420145097268573909535699091746268648354942467397289854753396072459014945861898541096043894101001543054395432728050592399557149508423414542259406753260410908505319132699061514433619713121359686675738501453805523255183000067115652608726877844511883805284139352235742531491557742743206937199097648351148328111035019226496966136732460876149619085233416651586892542324444360151413097467868052616676223949470865727877140447198653206410312292299477931589480877248890814788007239054687707604026765350739971539514383044571071380544681213128052120804434117409730126987025684457954334522227967468359372044513903323529734014520759120201468025327577082997770212047920252782129848578454886177073219045585327096704982352357830705732644477621926937101608119758070651631652682309641460625880268154187966337689147293776260864209011657185639355261583987143088072239046750032364640609362944477593005443897357139050455045597731419268787230916018606868629522219281464103303170168587892690111717032596186149126453353725455658655212187811449368918769478820582594428281399372754068733653623552331001122967227227852615517941124863071045457021843401327305191237617633139696388895053328112889324169465579923786557946525994807316495446096161983736730464703877681876073488680334975196269550506145145335287860735833046379541644460387977030105200740181332339537111154270268113674860431142453177777004581534005019523507692767487097714957938371977167015916642728027557841780162801056232204597335250113486925427003127096644229268175904013507983532582078550709101399749560840320791597343984006910086218360677899161573543551167468375096637416693453391968120902222597956957285721531977668696208440026936075818694773327780166286131966365683268456835347849140590576305377051097964473124445414734642957927702188071738696639925924705737056799774597122241461934371805723026952879952376491140851170317015716399816771726504735325408389696014507521130759123415499639163952617386727197144304964907645321498143457574685874461682022198156567703789297788354076915597260970355047313894833738613502454371199501277415510464174261881301308876394926840358134661882202738518909239647173434935471427318511077228553096161861433066891187067248539861249818814708883206392192683319497232739911117637688820763790513191688921273780487786012027800898005406461454982865301245067254981776682204601505757403008838214544773319589352049779686945501354421783145703878269780096787966463002067311165354534105814167808674047728561027732908526956288067428596470720910867208884096839472254430889866888466011909824963970203594452807537602172193756457690638170617971662191528300702049928450212863876856898737375056050908179066085759367813602494058401365904884570047677265879355362370302380433218306832706524261433675019841790412687634689844501159685412176061384886662775511547925754768985622496112807958471555965923838656949983792679234204847443335995408526222365847240433653439791029945042952428325531972343175883110611114630162919586553069479453091086643881539477107767472092777861934888927749318392625445543647771639347381912837073561949884397314120619378770164651991111688376691167528970592881138732349820899567395478968811797360614734891902200726151036907835168251746773999108904724503864620304194148133730697711373530041872208454050263547713361043769833462060542951570801477028907283151947454332175935860808860117567502444799002775915080296719230809006246353408393990852436181337583638522437930435701066957167046180673850220745681392946601356603314247224266859213711334946379985603008525538218309548841262503367799874663504259993770252197761671770971456956427996359020027612652772116578702356365817103519791083378150951936706993236404956068489698297754133173228274420270613643108770700656647339248286716622611715514682943838846650792531722408797795680536967303839269054021420619487961722601776962889948857878425524716553085008002725121571269522732151642056455741509848704716980054944706201157943495925287003364169901230017753903291924235090048185431807636583909610028257201171304465686851991976198147596414253728750830512195325045942063190373646627824818674929168067278752788977761300825007094524631576479164920516307460360386358675995710280066054210395150237067634516469140196120541765769830086631638057922315457449162852956637081558440615545700530568761464911407939972845710717024753289982561968432128735185831580270054638019961640878877208857851164249632497542473986541939095506875414622722430749004523010299063147595643055744527317597171244508922427627463262610207867677934689941160919284302952612203258747003181413198506987335492940662790123395973972941232810865762397072300388265800433008509187073242986268905009462213367226026607624060937808545281030357319998359135293666963753398168199766277957731903871381449581894744138069899375713402071829291131031600218582606983271088886115268469241334682580176271336245152301380695638635152815294060090164815826931745580639271384085533266998309233481299391917144941945565367441613019972014169131581031262367677548073985715729402662114982789456110186613278191955588807613702354122925905580161855549872009222960341341067454247487005714406464645584936177737100303423397545461243661547760234806027430203134777545851082522845473825850909485472304076751648296631039891043800390973474060131012421641081464882154720645156245551318640127608899821491598740405172193548494346585409781851977062902310170170859341631984004083899584064992387855592576639359258134200558675271625051729761873175573109640714575867505565087184861001770958354874032767062959217173204801887527584669806794977547857644455008399785394629448999209587745795144578370389812685306434784326855170674563901855551029386622122367039488390456684228110082862353951750165492626926575440190708449956822381116426026681969288679710566479974725470968764732727319566395722587948254466041378506258062918730949683777605441357266558716610894539893414636351220012186224339595434255513699090924390814090707670031819510175732612607667188399144483216833196002845141436637008594477825498168127813414730881555133229535569718807245865943872869312786703397367745823493507348054577129472821032321538613606080589387012261490107010435485358153874308304845279651965029673944362002403200795535582483213915430174547653824361877470058273959441078312935660468039250994715669038538955347496546354753505289813930411313083143627875513209558279925202547242042596384773944778546283138863049697422898981021358172998105760869473344980526843280080785328876353207811434537155474761087046834400269683859760565140715721039338214557696229609512540613200346070363371161879084024943204906751042083961693517468650324778685511477298802752252482108312372617450927070279186855279255599472882876647437799348018019159209529419179074240029213582439773008610859157319092754357849258530140366196142043643457290622519247595660364606225718313402193597486523684798579910313625572382993343970521475305210796497367993659533111031437928065703931595286718813414619842754327052284872470173035891076399492426648854703218249571357469350721834097770799212501495427205189945484042460910142795435030938217976499162875146255649271250325016392230959973028220749157645119625317549021274512771259182248617956835072351331024392382292139464064630119049811372640092466157625233547634203650156796250893087083391809597975525039965894132929135499426697413987455962549139760332546030468909067503138081029315168294103228192963502774598874468456406489915483003620866416544177075927373950600295413864217866711949745519761353642622198107718328545240990781327882095884090444717350377896876190011648526729077362620002182997832134548110182357969109968879949931001216133152566518022851034920238044801243964704820220045943089780819661714733449855004820029109624110001491204332986994489530234516506466044964792933840453974520658242972173053881307917305732640799234528340203424786986618960309999507433870291860465640331260254608070758536091216539615904614442427147034451067217383465352956906213327554549120097075584509533194616515961613153013187118261362538831385346259174862565668629767182361795473577410342787314059417172781021354495401716302681127115409718380975285684814677327197032792652204050609007561050494090623894526104618820451859241270551017709505465078314281322527836171289292316041980498366490707697814826645295648930254061016376687264699714756550375840195912763425857559665419561937502590839076067103755308272077491060227779839849245221382001724006659264048436715092630231819928540297782784160791785652577820224261709122069277830871973617312438084674065630477282224756523280382865724785877457441730716176679246364957012773783153085878065409976153325001399358124239580477041001328946243930973699523587389963107151205155877132560297385491306662063752353097920764977538106104209918274553454347134391725230153779287080381907907193409978413841745105399095530481657189425423355705298659207477884541145939071294998176660705076982951965356492976772073195207530217684010493482636953427185964073284308310324910186435055214315893400101830025072284491056503204954321576170845670256366854858573379481675029606290064978739144498668693794803134654957150023874436460573514362938852559730893429987835998470544647087450698627155007431946893019906067352302916097291970953354767105807813086529514999729583337074608253465458253367768708019242723822997273867782704704963938751198219196519269619919737467780128804054602033659072504123972364757966275686534772228505126095096546768623111882620435614421922809741406645986487820703941699734628770621121437110537109545918186473906530254475058124153507109039354828971278552931753108069604702075099928560575314402544903310178258307864500401263424530366200341315185556511779940451191804272372297753026969684169262372208917094111026033179048689686578085208398633034252231834569006281984296143111713405480171874693026300421025908792487121160733237602346823053644926286379199042938028615716707614782573604949226544010896204278383643559874762902429021962163337839368809317642901485033255214766982056316784658826958900006600793395334171249872506400370001514856181291318704702937441562584227874953787477022949238248689713937243537111224863978515154619495535020069521300575861785691740890037096616206774673196166286177056932802126087988915765696992113383252502574645864066101684965949328581256919276199742744335515426963024279094060893116736793715185926746365178120729885901575293470392452508829481981732231684748438358494763606379178545661977637881664705730756735148291658447149544567918512434705589829727395147392705665080140222923759508616006707064886867656519310079626319041331168818788675959994626910586100337713818449278425943573016880183435946663062082946413415262638594915443140272201117955698840658300020098548031801293009837461136267836047742493182150207603643571903630106791509787255137087035240754396756198891269632469831485382655633321536173953555610617900798050032961305973251547682602218547046596079883058930899853392083375262976676600370824260138004012433530669272747930697332763785938843869386566054956757502477960996490419206764991554697240671672281028586215451092809759244429200224886247099493267161616009779804054946985377094897319059438592485795054447082495155547070443940021576240575786007757902417861059632921063241941607038359784397942580286622599948454008626041402509002287645150860618938925448839518922797956302765784593034346758457922438610568754641105037211343516061143113950138587017328257349000754512919330315621783395351446253016747627543488972642190806941741591519791273907350085037237323933369060093011271246989569494110762687078267685940913352930383091860079206033711148609226362235331497502605832257922308426907083808191029557834974904378202045569769322217548358745696226142082113952179179890733828493686917758107950999870979557571341492669906154374905901398218821895877005138888850298578281935418044264658766003673269392600251672391896707025454607859453451705797652457431192127914444314316370616360388357893940617822866014316158737833600263341956469676073894691556897106671995235470886021373544727055139004830270777839074911539200107689304785023025796023693764245004781330262634388550709017736452265746922575878874006650367967369534994965281439418445559216974536229521425326657202762623654090890211026836174450880985456776697490514441913031158925816659618898169962801179955534800287523874318439289982685245985580948987043494783204275814541143087306053254215694711309112827588252965113039805012445673826136496707867376460909343429310544054571906350776313248682163638054516063287484306878551629643898266579042494175379155586612865256772512286784058129190675347143836700664493101978276228997951465811355496049875393925928763496044473470722726055141552787784787975034399099641684273930744405348161005307901195942683904985520375520378077262416261776227770970529601758228069403817544284362419233247377165716108415163666098916874136177364029839159927047200137966411179705203993095542087682218844059524495666524769470020791462289154974805489395984072031764386588192689147278475711024310375504769668529295875336529797985400078843596338209226269639059517702179904828447882856172105675418818611423043361877032865984385152052977153157479430310103087355392410054714581439201623037891621688776831624348012810229663456141223319753539610946202915434756431892969895337081125291856580084551768190425969404334969146816430720023589000382948401127526176437968893339606827741747832622620184009528465902508130817947882466364542741350217321066973924228187928377024697225012576517334555153116934284075172124257065570253411458830013589738322200392139521943219369936775007193194182567473103543701497492588476042895883626383076653426786009574368647135763986551617427062793585012429370828319066754253467806866507946837396837015826880213268891710332589990759808325666918764289911758560220302871976793433860460825808969522441922599671284753898738309216001879143903513163029829126014633317600112381884905969450170735732506943044870782810571174772823238232948015423006857226228650076707304214506363673387482313165840186140565699113384503960587316007882964592810801829348631528964705221543561330135809811710079200359831797588681825079353910875784152495836383576007497466770130582759643495885570847483885870730938195026955821662714494604454258907939534245687672635755814391876751366497431618341783099198884285486926847536626840439731244924186137578819810340052122167582710425610900391228810675634454450317154512998850698482113402278978072027360051729296258769121044860811824783060774142549431501483763490186066585473655203902589916413928161042093711288723402458179096703101222580403996416865118424056382727883474037462392183681799289619068768245422127740156263094450432032776185810800348140807657067565487347513649395471545434384992941433835120933057430024264155893415665713582301112913519729796735473163112123150693565531658703403249659491670276669455941849844196614842062937668775285023125000716236660894846668850444218843689033070600323406127558785519409206154297188536817652936211792859041572394741313936713677264228746403337527777668107528534510382436053301486417031394305064290770076218386174723619888363993332291603071012435275623161755094738356847220946765592517954305346177987532213079556419700496152829621740913679807217103265810773643254639932242258419135619041500986836654421297506500172979316545035765573412649864201871980580398726275801520039607635697777518854541945967044484767724445832493024062514175995679352927420250782604884187999541466295154403706054305809432655527661992502729817259910832071874469904985281285307969914952920822455952640179132682054780984026070416803729774434889356136473065741655989343459635812831359210167932435125474838925895999024182115150744160036582740798546636562239389753038548372806379276489424867215011834882498425139765400059325019782214486823745661363740393170641084776375058893432694978802499559990494325078189493335589807493334725811217147646747310307271026767832409060141593367267040639941474327246973948157270718768708137123156970760690936577424143147673147458489888762985477240203945310757375044453353812130859341907719825522204368900505664714345958568876000354844562175179968723993614926698585531535601514897892030518775906671625398551521687927458469968625876484742660198496029795711790237899401819389860940240001580228632818862774137345490110570374466526161215366080324545773262269720145218262163343164068776214029694114107018576963791822401905276330923328177607707617379214389830053299119032756915478456097172740051732686458200823068596539809599925844227880318267235723558734424930810492825802151837072325437654179643064761944942422587544613195798813054619400119544684985468940280180630017418984776920679538231545415296919780882597195997173759605088088951667843799882170585558768232760951859456643994791864970915301305483636022741288830137322272561704506502811040266830615175360033658099257983595129393137973737437204443934414584407260587155311995143157742491897141926813671079281274239886230819916506892371443750108403941420850012299554688106198488291201790646232972498139329033531722907708362872487371564702563187465606435066740164755407414161950027897548471750463684559261711353847141174821172205049495750183289686998614807068450927882065620953621220536606878605925644682756242988117430537138342353558284149448993329950236505580724285797656978210144628560742080258448245951187579284131646975875658374273362087145267335912740629487561019566926951191250302735106691754954877622314795040669739158711875953175710185696764675884499525818275644581037744410829919459746320593307900628971415540185165124819310773925862222034207963320167362196147043577306443411080165718609472075440625216836864290674602747255424230167951672911495623967747249515181072128236535765282590530961298002768170424254500438451281714270230331529619701454168323486981109873121697396912655892181932546917382915399141720291534380781157637858979016800489848457029700438905338624080949246448080326573261902816482001485965610276512695321869551721001558735340673454622818179705086113836574274089168709954487007393091013286989222064197875048675193308771417525175242481322066465412679800765048708284929214842488837665615941736001057918459665990052835591803274744670423787815129684825951156449279656582345166195386307670769193040603998597253196902334151280536602143404228813110333723131906368875945196577974241067599036653141200267637672970271376692653199680103117810890635337917119416337502515190424306374020171703799900392443603775303263657164531202909702427995866037541874735247626885335974599486617433136914875153257686515645210615798670262384998355408402837358147970274956100315443506474700475451379997014067591632899463369507553946673337430151563413885615031033582001014946586705667267298611413029010789752319651967138846126535191738293547751250559952607668965840848286758619146455398782512338932899905611707888860709598266424557243709354878897088958808304777348133395947529025063565380667898574030099198810905722871388431033560895339573053844361763842282364727527309891341840764567827047554136546670741590211239124498305044034246039826246284265356332311828273287082592635387461469193252964027567253320182797735115752275222201869178897338664470186950261310918100105727670374971450370300543483260041130939720990257380396725764882277137410754635095153931328918912761606530832863267103437672586275480922047475945085131951924966728739312417576973734726149936811157188553129801533744240428169523866794669138233704488808986812127209792891220817570910604546943373547304648463133095192926245551304602221910283426530329143824545771620324520065065519779765958799246417009812461706385930124440739211123912181833248100823529360029950241548467012006257772116857186791325112508590636007610464260943740777513462359493232728429432155101071670456008717068198604833911702632565182485779537593509101274466566874122216501766450567552936075926587260198271305935588665328030565157382506310231948311643090027237582829101349424192279441878207114913690373892121019418213154056339524026435764346054923890649894421033206120167675198492655335927180194953501242935832732294456802012772166398346310091227869606797154632423897550728747118351027961728850366637115153735235562934758724723386515345917033955052508536418203173562246976415340745198942508673653875279177962963167106734126173691924173059602218518305003301193297327308534494543254324648157568164918257951443383065890450682007592509358314683542227170733034394983112532527928324451549676423216214120769422046407040702546144139380450108715264884538219407114863828925206120149740773016146073405041173980648126496484960572639415844982231099509983894152777451021993583674189086485451484373890130135600353704264611434261022634537171017592882637620109116031277297974071670340597464653439636113190194845395918834380071065669117604796829113586379956247342512015502032788470842160727611821296656844575363330143260607521296976581714980334754801438127914165214314610810322652186291610500915298333152534424692386019587494227054651652027729422109015482051506593444360591898334652324099675175847740287027453510018947664792523341181563969429988741736350319746136795944621126920285208544546854776037740482577477994118450359107001761832094055031559323213010697543641165835180574720353664324232088503549978496943886501528983459520281643748609935144915153881332579171199069960809092607824048923203449571189548321052452763530803505879664936948050290033147210044732735465792710033060059984649169989218499061594850539676163378440595185575162729522813027108584000861168518467699176043442717275753020508622020218259773739186228610684875420710847914301313715099476599022920175612616867302457610868827524122270830116605904312489057046386098375059137295686163128376905010398168887126093281856119479112942344258553237580314766143299487104521779042972859404303702484717013680776451525208672262433353566563574459917906826052955195224849518448784475561305879275988841084646348656893922378555556988777691294436875834704389307304180226354442338457607745509266850177093666436844187114392187811233610457066145456799142070326749911566232092415435912083333858499576893545263014209536033441607155377945595667220903096532647783866656423914767324581217052929328889440012570707606964989308948998097503995078346285419226776754649506629247649262000112513063768022451643200467955773235676900647059831412395626642884495656188591906019184597954139856344337596274840414581233165606334075901416673389229986139704408288597165056594847535379900880646495631633195984275902482475560084406129725854504276559832335137647336070199123560868360069629181953585780930326772871012015015757265641875325779797680983896086202515931220989742917811237984942693135524940189859365286460433734245859695615693726227576412206208745314541342694927410582702512623728038260131348468253358298366036661003847000786894592040397347047486881094906384843897492182875930469267109031344185955431268904225344961754748904844391315086939380654907560121187399405499997064752994707621202022595295082474184248668064273368086618909820621770999639728817159383279494129885930600422671172721226515404340527120767876503189513163247887715857163659147962686561520023803167007964433262145169230658834046887609363662248511388754045147569690613840894529956334639482612158425091179625496698762592731321039562293738071771001300667367626388554275285756385030160377665994399668338696053907478891292895909226924548917025613572210190471614892104737494133236446880072249679631597048563895753187410870981281083996699445586490113838981252470288776309147898529799405343725669005179207043045779479011088806956326387816979241927977537122666343327591422384021471588843581739644439120012855515007289191497431867499038599369909272373012201480339599427105643920913062050841796495304682442966273283494683458163567329738242934951869954939005144496839090220347378806757926028771326604436595437730867992963422549512532690878487679184549228347520448910888218054710056751673952568311980727878905405002874242089282328127287516741296406014025704564369554361827449394904358329453646996117919906310790317263479494159227911493422363983006619138180176925303467000698590375940667545456588170759567446833761743766806244802251412947097597871531600579812083206819269194768212384383822972174061490880710805709560825176426707892016315553906405536225625132087799233230782020198142756207883643694137451631164521098009033928305313963793034921946278352814993498595386464471028374058917256458736544532896526389832429401151595187189476043602020858680429361947041078135324736760160414778815942553345847007095111518222396310951425022087366698684822339090212846457341259256574055825429843111030378501902635208836622425395379134224726917111786700241845365447897421419393757491941135506350985017700843745021307162357209356971027796620303560123592877810977008987327340991846661373030740192528507400195275811584422053217643765232666425354321882608809385701008518531805237326155591091429709328155229269821682977502416446241264188693355614104995501021995319951466916503366997021358413959174532640485697908830832662946894313288482378409677299732286362614720429872625412555815075983688595028074738837476391866410138894877443610897054708415678803826773501000621743644926902753295228052021600182932101738495849837590749859084591450901869040134896989389746257486495032002433947496455123037741114429959503020254627866999452158633361908434170979743938737179621098291306901384390183352320956113747207780978727511976542687516632628470937682307720510410055127065602877851527519011908209936669050162296045688118416529118524066920342336836475587092691815315233183362151129108598661296704777538230518980436270438336200769815184355822577086315336750038554969379860518378359208355169502135692943785006048792692467457165546222201923556294357681232627991110076973782922466479387385087711873581460141681167667943347625430515926089442492776415820526576581716622477468988581613143192238558441556956380234464255264483550266904591061030332444894802304461938940982089620255013155318901175877673210212833868850062072799655762456729948393840709140677294791918940529599023859438510934477759636627764621692316488375771344896375251257477885409919136834614672403057951616166008449617888479657597692945318926770407694921869168677010316559315668950648113928446367299627338017535353104981825839040489856187612146866092444011777926064751604496942901749898064109019486319336441749912043834846308188509311096111149781729025424321302755803231573955350750034419400157507333541790971608748670068775439573071721199199837222454644630840783456340811647782522663587046049848732714686685954814798322925024992997862131629496909244377652256415922351303537953283513117843713611796550012445191779155016922622189477185739336856336300409616511310589045397448731845101752078046971261915606018728839575204082787206982299220347101077363093121464820860565068508553374297937801520582979821335411128037131174621462720293848501488787607041766924774739378306867322237140792435296381637853826542719388203327591465957600278742154082032183518508510390791697584735454673447602194815963763828390752602984049988370310761183743438835921906784403943632187706233886277947870786352873222644899342595467533794863301047859727285827662382353182013621009594755365814831831088018010237450177216889552756442332184068233298650238951637076167888001424424510854235714760089683826003266268484105585169064597120682930876645446805285839231019427425065649412518779179144658985827340830013442933968601375218341923717092931575976112242576475701988946560879838436356990746391313824013887631888719248710599951142566063647237874619538445710224155372582422703250640846240765616392328052629322244286084420229542254368713646246568773934686801900673419778011966790968487517366308615955138704447095457235600376169792929610808683966914125231889114845091567898592767273337516642017919800470333114546921875951679724644797006546879767264787844992662806709490577248527950890217288567008405021570985656482678246335775955959669477775196903776928940911311646202951334892661893473451047365487575614894191516339003949825004042932392133902881218186933144040069725405031890399407952186512214730318463133175819579612995975630746385551111502541670256543322776237589025439225417552811484643210449092323793680327223865922354085281549856562021728536386163228271455637282360268205453605414580356028083220634979769140341681378795737731565866479264102622901908650078469796082502486610711457630770270602756894345988122178904690083112558276228174602623477560625197970913579444826374292643458894972505297866878986709492699656956583378931529522864135715448786887285515750273964214858184798085016593028230401389380128113516311756185531246874364469435670198433626973327530299717279794019491438808068945167949852135192429944379819485867165413447252983106935818112013780800369889115524395683276334003274649238578685438224078988391332761539330669606278005106012546759718111533775242165149205483862897576843510441029753641632281607516772769240571772508659287997150325062934434502706518017615942586695912230575192413385787203451824314188032051786704884296198269952180983101254057601909852281805470951166402696200667759863343557761768592040032882471243024534617482891569110987847767833336340991221266609262622769961288796347044393929524530582774387705193314479352870664796237962045471397498148397568569132861652992804308418314492238235909825128453504172635261154136549547381832311355576714503624779812912427271293225564241155320538995913729297726781599854513232350476120161100104514468351958045416764298377911259001952265474872552799168871162060270813894292091434505643762776617423842765455609717768463571788074326883149464667642177893562819355450438464514375987074733520856591343788447133800274614248661123226794979893034940253601472093940325760955413836620597232512786758038025603614899485622166134839937184474525222834497148508707804284309116044394991449272894430182020240415774352039347355832998711701997545878199565746133347216624652992626684917268625794781934664537257071089929447961602782332681349248038225258381708973976991919468378731787977704733470389926808647744523791341910940304572087756762520533871913966075857409817472722825363866058980994799594184702273537822416233307168535186873727911071518207790285991736298964835073062081966162776163859441035768382204868952473031197837706765900163481491807313142881641164246117690073861249033260090220521204937962507989514496130636167581839574380770822621085086420652266847153543699079718115566612856906045107452542928204320753149750106778276429679467634134682126417607542360044401657042157463549693254762937379367209432242403538718078645410784576226475652016608650966105616169411528921118635811745607733212705290646253847725781719090646415917090444696261094940324536073676712440858421430863365188124477266724181794087393086920897300497887030130620862002240150474226126000456533826386777410078894978871307872401127231491948246206722618486951362124020007723930983137563001946913541143510593251794812595594123948244737699715988969419587270487645520443981978064930123161629904870658423447683005744020063140462852859480825473213473778319931940333596072984930204206961114322266927034150048661572818450501671646843870220275574120896649541742618584963849221200712486782531497959860436511604422597375901787927196722839527392594033502152037712565378836139721534454520764721881718967023747296363817815879069295669764004237737606273053391597906704651190785723739298469675626119655229651210964320573862874883544177875633043548616572607275722807027717369287553983412367424885177053644428050772192286972830686316272894770163334752940683956281311379558028828667912787747503816145440210119635434036565348611763617493220453141047360254403500727053663104034914028075097003823095390644647487316783138220863809658374154087123737962171178206351411490001591286981601063029026347502187593682579484979073960296090239438814293302039383080148512041178213948729817996362197173439159469296842199133076978235883837099444697603541901778444701612933273601824435914372039947097749366823067838779068798641532176671979168097244453816068898769231989493401263630259090174734502868810951865607186940064294045349727196135137533455218788655817859469130749139399564617520092797249143353993775434472695747032165577874607961819675608388991653157347444917415422759980628260200176733906473210004656198673787851343771393100974607406485527776584821870482064914153805570411881366061692508220928462606657953170166968736928631043482717458997667811861589436340603806147905557646685946599279889909994656350443296721690158185999218768890145461772313812301982304652342652356146417038480758445800442540622552236512894558148333251117459702072042052555130895895189599325329062260928951037864673719067224181126540624473174605539227084879609951329211470026208621688113523615399285567601672098914976740719219165955007906033034523434579174205141627300777089340860980521764747907974600678351140665274935398571839775526067513792815834533304566292495928523337517432758618391245121333860267713872911107753053280868178124505734501725048567828955197173107736092287555400430780696163261497271405871541969374701760267406429727005349977666349825064911804383595549942877223656186582355555415743219787503517240933558304565922352969613278004022774258447947065457969409167549757352402198773423149599995446335502480286195343012239016528739723939193642816571039450370296418704847730448968758116428562354336233151860360293985322195012081619904965160108230464718832812863476411410387696288191020111208338322692857153486705006548055126773563542972617790225135524085741650245194649829788770303833216961399032496675486459972964401369917698051219465988199806238247358937800773696774019263752366189606757725099417390293976214765566790361547304514527514354872507146687958967422367318962821874677283739554446186141257104791830948114783831734561611640342317945616466132408512072409908696585012958318816431973716307027460910544690745475621099661935219236798229627433900925372814835279450948932551307345819897385132002778028844855626194650350894443503473309612755355036683726778316436200965541215782756387984231567283915169475655820895799361467920816372275701386587116820468666915841253375977420954786070521605281397171480640068485524785855772999741238238096287994455305017125877297951862320148481966158088359957950320283760747453392803873091531153194172209841412124803525764058826105836135856835611009585807772233908821829657316846047781654543239064156329647108480690285554093814276342109285761407843164880989471837173214930327369841802254989207161882439220414607399180095018734205154111085946863985076350757676402526934632764628010401144136036461189338390821165367378678739023395862467362576715789407868379545435740147648913868796529418986587169616472390444480324796817897279809040751408693065999708139430719256351408463831902324219912918656277001239564872137420984748163137581968336923209509019675740297286008086662688017556185245150993221186517736158776329283932256809233504018559626854948270544853499469580784804804833695990817854737958394914710677744671875919340831533059083619780091365886156038464158346954790322865243913129622385896791374973595808673497897767660633934257799264696544388497562254722612086407914908902354930799070362452083726019898031212843107974772533897767894924333403615358132425627824079745324989133588121937506177473303023027539460188260683763833479571678685970498394839110675604445594088011398386197833294788633203660971877842338237490957852249927014202017509543331090737253757961194011968683840343338978718087917142860785774751690246137305499545689972064798427127354666885195251278702314975720272848188992769107245065022840650207475478176160482210575388358940569453635775459138938720758549674071187302450680683896301602042819163866581849729555356332831227037966762505661017054612314563481979144163384058737645630964458749774086036492084970460024992666262808222876485022840905244526669568887390135812845840941742220391305969455803402106385306705516821250036632345127552182920459472286840997581204376519352030309440629160538325710508122958705830257661544591250203260829552005750655136680515952867628309668706544742770508773206780104839520507923871199526580175326543259626643040696306064768343726767687297935156367890371494630921455388085360200226510456966109334504028038907451036476754677171608248052217986934960704640661857111407112972397367589211718860159895294988866330495279345056208020189944334824774122221875804681535132213826536103329747777526593947708551994501458707800827141550839622553520530597767162150134532051463159158086237805853076119010550989377088708877389329104431183532116449642508948640980771753417185749641463607542536580488845232121470669786383140437247372890981004690390005847019430832422026045463034563375466554314323634826752076523655795858764529587979696414217516204500521412412397148113527309355461380198765820342289333155760466290635159778177296047448237912150235220935717192379803082272204508356241700400618795600649317176849280327173367922906846540194911593604801002221569760771210251852304770118189762261343474916067087938892368565810118276348203598199402532062398467202162630852110420404731902876660524693392598486431256981032329843633554451727060117977498712342540209435445713068041334382852732890899525171696545370775596809636755043281677279242475177276877539745252144930316794671089511842560671235766113194286969696352531042154363310392062316697450202561265614206133273390635282620397579740811174261450216418404376242030655020095896260805236601931395739684244928239841617913437840910996441558451525528287697395826334104127130557805162179080873340926660445175333706798336188115355757103687647021223473224066490614799550201487112530016116444911715438623509189163901791355288619110538788058786003437602762230401706413425779952887971707932461739263975052152612292846948215580013823133065039057732252586189407604597593293292166821525094245103721651530693256561145606650066834636159479435299624180597605416486185316439807464060125729657993489291872249974769207045927552717351090448737897812573253391455938378083744490761649271878186396905305894809320427321194484424250880758092326735134678214047652951584530908404008140213387272147346413806742428283889346305466934382183358982839265759753712890374087504461481505796624889001739792316852917425221486970831149222115688971697583842827435636274257594162762857424330872394778860269844245784344575119029520701262276765107803951785898139965109020291849527553658280137289243610127282154433889113913958669559421041606508666826972807530377995637824075675491899277999590639374746061445264699557340163858736484108520558310098584291226876768803287431424876711456593628512172840984969192781280881532914812788067617035471368470287062563875045522768416059352291990426702718852871898112595842831808831142500568314155323738105434901271203365550123959082552157409765868776730879191670401135035564393010490711623514409626000085580685916317665400107051995223187404680613383355260078101339244563610776192875535968558840864006169864414218060457250856524720606397632410310120437347875993922195521442756355753523479065215493038157348497798424831294698141003716481643511767699517872260526577597867642110777163421446079410630023274275780983748571195816736479337373021928506154512432517408152956930102270127216863250108221410286771765842167090892491189253034178716878908495112034694118212783086286978905184108072751856106219420977302851804681339065083615266743492086572293530187189439215887231230853772205073719305592373635977658580120041524512038245630126438957719076028944877414368977844358353228776170328066346603635827110518111685673369599349834123728188153522654483377324542157138596844026382861531337392267517086707535800151623878228030597833348982868623028243310667616322200507977802517182325404732825541437896631170434007928171962324429041868800275244910714173808404804984820458191446848333865863207658072932310503288871153698872824915447173095946699958487336630482958421742508391175145704587978816873173636481367464348970194112332996400721385111650707243357371462778378662349305706245218144056429972004778642850424006378234617983179346238538918812113645064210252658290332146605102197955278774743195908517046216634719839974493920812967196025201155297334184064238853121265683344441516806247392721651174094203114788089289928750639927398577435020964517136337826704650005188768351359312232286059009402116058776198869742801732582706579470424805833412632378168352116881983910289367965368695908847908169519984096076233316682390653344081167428532462895344424622233033530834766012752656837909255045061528916072451577040722600611534099158234205602491255116216587173612413342612133541881037607983869889888166849980965724869534001573190187461092562476254749109678419761347940648654647699891630905031298650686661156265138616070449605545358239408194386419134933568033770634413914395165632153650278602747129524043173461606872168697193923257792361204801646201680337983049440900276270984544147692349539014990071101739015708634864960594719710689147514026920225766803976269537839171748997325992552832155262790790485123476872552776758801718805272342570045775446601799799558561192340851318985544475881434557124084860559789180856325660667062682427660624234375324499401915213448790836505775624797495070965878160598493071641486281732904693212176628185538327047833136347165341662204052780001446443164752460609677973511282065838595470849299942952061161808506545843006689421667166646458110295224889272915830757044711155211869855724263179141560332709112033279351026178890770004555142469577473629204878747417769398508936593371317775009185589178665700315378175539843279505914272408490793546568364405138312812290649964781962350309350596197393886617335212390975781720242418670582099244915083599536296091587581444583797194664211005886043522113163910916053290842568035611347579966694550347406218986843590784247162050207122447023427179709659671226544578339597106398171895525314281574710043171846410344331254525711479856807312406179238825773644743840997687055129529079550013466751474425823158767500482720139745542934314058735276419174562058997076960152088774907041496897432240051543885617464484356361129934274398160861714282450381975195392343451641014360839856584588548029630763774273833266278028823084977003007594165317450648246628789562405440619192338952632814154254368573768337962875687123536232041096265609664734702069835470756684130966026161284449910563279055686088511515467645764427891509170172416735184506104271862507226947352340512003281746152217477666501184396663767626962914983091420016060187482595465368604803961885187710968299458305126198026024691516285965202625627647954671391980947540447527655985776388211452893550154908056789200934129794392190347773068687145782757757400311891385566258226877890243825828456862415882711276669913495077226434838627039792522830070758031994667569887811538492123753947174194569839837582248238248920195779836148625201522011092777916243281855024077830639744651289048784217655179350504881377424307731355810458635991573889775471875606226882352226228250658462790660263773682427859640013992131229685980502060586329197185324054894975305682490942249096471075171179401017390973155116109124721284738424728565787163111334849213023032562194930560433116068242710075290103761794456528097743314041663670961662746458822743217289108905154231192134394184522434865708413166342133540460323506085020256352923641376908274746336407369905776923520170490524516328869119162135501483475048591796307984863526553764431686036989625056653149429924421752689649478507555994830543804084893167737219500031649247692632868616266001764228523545456019547361538098275522980160978177397476414900318381031213402257949519927200484379633685768206323023836555604200407794361465877799785550431168537978337227608712397758364121391293268863459336814616247706731216921582205835778247295845672663920048226274240070381683558985208438444432176230852524006171977569212142126343658163555870500142439012912174504408480418531217267819237466698602405063761567312266064840370507519944313799389463007954807422921012602101242679670896406883419301051176987420270363853972490266737297318590232293843970936330701191570893269958353245445741535240848579514931128573672348405930032722362211873413705052509013373473293229088906389081221236046083008009389083406637254759751682485648682487845542847582662589108821006776190667170361347299279412694975970481593985426555934018136582217293761029648625434112522047251462732165562611156003980101687184577526104583172520715794408504694907101439537995969561178378142477977363774281809788976002007876480293502562344955971311862132954563118550610544485662106101071739639849393510172957348525293115936446369516517269937253013593590036645358887698723308381589232882321029041312748864034806837925012340011053072390456182266072498798509133611127497142435038444084524165201904983634345604063233360602704739212567257108731444206369632190448728181382760300270564702856234743483446383748709988327506282236691462850832527929159121016769628074230626913784572858549016184346333347904220972155973632778450911536960091074170454133309359946483818675354856823691346268058966051457288962407539111497959141027777773898946743858836990575858291742775118233374853437274973668975932577707205931297958056576467044782113212278210776595308625960011114055878479073816674322591717932497631815887878839293418519224031263343540248387029337162106278191439224314762772337141229013824269440207036433723316950904285422455727108924795691910045092618748056687887336259498851066438587494089386129247862712822053260450055260528133715929775622799622374786498518483569824699838390345526200314411894542345959810317548407614345354998664479165179130087710633851216932758893530953733607121409285837555758148815941427318853346487808087247753675544171909586505038380029788733620333899208843725153545206352939032523167142118167656659675029739128746003016426838079612829322953267586727085151505278400226941540092614167648109790913345693112874101713287487067193375704823143555523276373089996402475125288575330118523672309104288912459092243098246431796496466053289799502382253241895448241366511730202700512929195908051608392666402611543457676377173056802800933122955906186227872919901976488012005756235437451339794095051286156584508763235940909420514121322893845746785191589338304354445981940919998540687122202397841800148786803950251923944960998158288306779712975243384783684211715018782086301449567178709886225036094772258205995748646343704352553729034238508523630710489643444506385517611333433231690938176672906026198780937642037757012384939939574355345913016638528165518680518886938041686171493549824789775189146264498965927483644060649657081508701165007544771992344173355021017613738103565221073325013633826001742345089679344004221314572293467922332241526401545414038561181081613627297993882212537826241602274587962480383992599515828347708422243762315719000449541968283390388537036691145306827378564111004115799938610076959779062280085390256271879394848659101666940589501073812501354294724767999850148920468886510333085387091436260121999178959012970804211189624276036165623619131927145759129039105054497466982886601729268640214968570972775681528088224019078186804539873756700274286842911929766550974822093237711485492160247388260413249363206576337463846237988646194828904683117936020534158801093452958144625856105803666032623473231994532385072102869661828130530621937035548558212399216303588135268528743025505223552762276584726553887254755092039532672035420129974378623588952453894585972885875693487059808176811972886912832246595470610010444397717172167539537163971928529441606246474606029544886612813920124384366388525039058848642116836619949999919685754032320588211672664525480931344187617974647620422157628978307051592168663333616129763428816110664202755216633675718857647169773351715606472214768969487989941437574681894201823299737395492930474832522917474361699340735852717180200879588126166826736642611644571009359733258858425007818684318816066329712135084773324298445830890234520837816461523529602210915786026855040630933403197664560198815977411458211305236125404822406117295281760082527061313041720445895767862982295543602023517477991823756749603368452975216342010710206015716194299598877589807419895017400031440460114440008031560730439311667093670806392387013040388608765887687545262128245247906255865068397634761501204502531308559713393098377331030286341623834841856578140452954468421479271421245702856674974752465485394670004906359731534932272674490552580099201572313127474887721750599891856685124082545944744374947783482153848988281497229928992936347162525491641578850654635484389860931049618275299268806595772332231667650976213619733298096142726707702385104159605757565152304787335154969700200491914158547702724361889988740887291438035653819618473085881067044121566553005632285856566888745587763835769111841925093141344544381888173086360047534662821459447666853723914428690776062734931923457438297967720017478211642381799176765313196107767631909435160190809556720411048669228177740425598551404276411154682716041864034270204533742573476829528402635131548414676840581922448699255618057992131462543022076851453312521547379352953678405980570183542410054485657458568600249763778170127928065824947969850035513561332791508133746549820767768560851364596967933674455233482346036104984599547467523416068031219756939094301526770349290306423447370142538514404554650501747268189868792460435293674424116559183703300363677326594265343037789972023900134069615529937286158730389016060540018824381050093614533411434618533906737698091330868795355369726099670322908704860248896332860115054256331153790678671692685089076255322177549352250074537394752980603405267745470615896659664377994124579362051484580729730495550125129164670101185354235158701465555897924075481138490922003800247385870706249250875389973096387951469220408876233900337659484853146693040842462423751071841985697534411473698982798508620218032611158336268349817149106961521861542534112139651546659356368621909395161685596217135098651526630854289488509448140282331545173890195608721156341965043656179894303341257861143584483034160132922716386207469045014423904461261039413772502381704075068051185777970374012326609464389135504851723397395355323390357755646265138258317240450806984166128670429592139138257839121490571097514939319365183763179634123288324259052262560199561461699296768676885158310722462762172313198294588359052529468301318759339907811381267401100602511716312225147791851058714248037649899058852461525736425647251191986342994367323492471638605443271131065035230768576046642682695263392447914855044054871399093502771284778889729290063073719760503058013159940660141822179704036823646434163831038171685954380786449593618227567975329149351803275932472950830122137176314937218043564913168645317970520553286593496958979275340145549625737492928669257641769100392290269728764357218300861142717432850190565181225629436579281285067819125005192332535775202205378214163432416856895908452666368478543031597472823055976500046945520170156708298155112709331880962622636636116967385299269161808916090767786970169692336430890619323507407323581495169604525186216433222720348925220342869610863800105922979024157015664845202540586820123546654167089912568471791028672834281470754609459059062780691016270593756608309259376447093305333696927124313649314827146746384358618022608708716488256068468592802686377064363871775488773259306270131469728740949389402291360443208571416482256962901163352914016324851906599672115083594792346793284604697762904370115088739997214809516383840977573230216683396708796511505879002494413176310369243174421213455748415025561450242080010559192845261166893996919893840058918658328276336967189362485224628932478118249996050913603277847545553819429241698559033015354539010058686475267614081503878307532126120496952242214637791942518231886089981809965919440134415683500409297249080472977337151667219903545404448182413597447535792643029733289441734619724747335899642843319601852841437565606288030820294592416531903243815053158044590349198784273326467877222385586070123654335841650273715116470441702769261924393266793920415034532377366908527444951405403828752019818222359688658291179178011363565302617548062899113726458354161998869232699939300872505762933307717298919037514563457653187674549261278996180048810027874495580257546026120099887962424775671328381249512483794360227852739307079898719256223943277466081174494397628638043273546657400042993801868576729964726868931171876295777944577604687803026755312314502302742313983422103478851000299623011287852852318348134592553646674667664409304802418323437307396054955281164237341762364216239350793478098401121692848422112341103106770138311501379796348460316201475971678487203783091146739804643868718652394079172521500035048679113705658397156700419480537384038714133624347905867912215304697670110831306457503689537526388922521775441959057816490083324818853474435216424933890177010313670281071045845141997184442780107054287739729702044828187823406213387812642790650907641214949987593209700784377025751274142700189516164683140513790190725211658189736682028136046351146484006545559346963519061481424942442970892063908300281726997284028246874502567356239841566654243388524941799574821290967067883594710840094861046177608170289609803212964091308015695287028308348787603097246793043868755695565846058896598861347607327918901824877032525514966818364003068777719123342233288528393543809212153133854198664751680727831520031122535338466370032272808040973892719966764793498150382430649813768566932894775939913333626647645894110692689019035938542947941727907333958940573384629563821283638754590898014618974486960306236215647316607363050110543236278964320781765288041080266987427312095138584665871955214213362712273144518063633930742815533853622945442747949859360372404675673189965129645297772677756156016181771581084552738792152975793912502337862438024585859143110085613938059165696649406765984548231758756736175025823658444589935627553812484923422674879935438673659646338360019663065061643196825942734709299807249315860162442481394070866307280402304792657164059744223848735414336198834697401490218275296775196234462015425540367019071054941498763011387725902343100543489659505388370772838109677817753285146369783273474011026398293858411796720325717377023840156949618162135885971446077720467729330575947138284610586845927871947004985768502029735187902857196159801138846071510644201029223031751790470129405101215839539060345751287845631717353212499833727042194421264756959305242059878635447017947593457914841685967736302596432943287673040699545727017405179761990700047803837118394788739263058954852791703666850197822139150394917042124024106528899694528594811809025421916992731257086772297359067944486850301822513968753062312738842773065775531178518820041794656503703893544542223765521783050762155448301791038052426840126705600578764546622482975493000355489499063369501432635209968739341813253354807891741898747032634406086139579499842207624273911377837842487870234713283726012541991746516595392694285764425575181809230391782457325534646392220241257129902831444379542502170223105430226578685498232125878110786391976403971145025953299297574414535093823518876020232874939269676844955804308764441382440850204408251845005089157417037059552573007243298082484099080960665408850128508130903251536138327106711726984473078761536622483553451414817491047682914189116126903631686812375524522679782891666345915449607262687665700484811045404267967842904127180075865834521361939411959861029061260492357189484321577075605734349737463571205707200924221511181562035983372090010287934486639285768515333448984133006771857025578696450292519483408620670372504687832372862660184915051370456442227863913200630464503860618198330061981474279491089788289707861943458795526290593855149178116562068721449224938279731668720887624913961526996900248588858757733458402595360052134558891626850418657513781218080779622379962470665128236904534618307271181613220443556345302109904889553132782085920273236887276619309983896135823446880971985325467549072259784124363686569016264320337211848869531478625417724424439951761488494095114152636386545549901146458070288717507736817519663854220982732235443618739442749298402932057633248540228444717445852926660650072100503485979587953986683100562374185799108682353914150087929051181728160558359055526860337740352565447252006739990487136673434332243332947669902627322789483157229112695153472845042904642522562584186021832421045865056671170247950766992491998300030077304144134808740238448363077251182734820826348432363176856712831104117449064546540643837290932121455946217752308994099289862423407282891284779833389483235109444977850937430664867848557033293041938510538803147735933737519358339472472247214154419969793794519728391958209902508019400235791986733353999630466367510508681358515998133955336305247386929155883182672486271392904529863140763908945464882608041098085163792588921663930257497338402477626790488970660573550531209144051043604603596889760627643874138179330133284765659433685577299955031231738540143847198441256941241846997731221446116001300244764098386555603420784330502841368895163614919988417933912252227721692093461860518976949003778739022034567070884542256772417428598886335428801045869972943741879226141020380698444866795567444292435332058551725384334023301528151197120406680569265521337298093646975969140231572580951089825126565518798829526622302800961166127696006905713443014995103599881772459617781676341986624830760880118402496613752164404826485530978721755517288843218209278120755596143354987128020460937539138832712567612464997702039932834891429316756361812211802307474212608430600368145712109799591380149961527996591265630630624203845818317474401111628038145518555502973748839408222095650350996941406890490748801622634505782077425952278608890099353404617793745293582487798795489172046807214045568033648948098722751158465691842072442652290112513634637728967563081879715981452458324278214054983339769290158588477523771571205875097424155786748647564412786955770341356408391416483829267407929203921064951693053791539352946220656219665193081639796180501356333464164505861801182521932294772291817925058471558155897653829989167839858905799093622971001338094903940029396621331569118082854536018711428342026386862037854280252279739961006832939099222964322030818719469654509941422230417550449980212780179432607146546352724759743151728561461910492809520893506831962742174173907667530254857704673572288872057160585347950235456277943333061339605198632037011391313078113963688882599421894870705165264481251375299832731310437111345147643895964096943609005464273347864568089757447028163925106243174025592879190959638403097049211989826425237434486881450363647496708574150466946760889637667557407741595136352731298595079748048220524084323194199342483506796628140101456465243582225883236192789522009323997353608561731250355094316522226507941020547259563349405703886666938639644424977158789903967790107217874408057538405762711965054237134076374597438872166965630763537039001848529322929429975409880813849044994712670412125745585306599458016393851786760233657428787614017226315536298162302767416223481589091778535439329115747569639359955096251637557035927689122603112649903460489875079104334013017149738274656339102445631092491860436255509881703761899061844571986264962480992696354283027601676145864664114936646350272971328368070180709736039210099074015150226957371872703903851801879123982136239936712679342939058114021770794690619065124029433535844491537227723474826070645355978643815889350921376543749106365759992047679373919782881239670205291050700435018230950837184589957843420819039693465285943872305826958606877921135262043679574531578537087350301608238447760473096654406281566004191312264195931079603222713014318935277617940155375750387508572085382201224956931563299939185455455018169239496719098938319414694408170146115270527959986160121113140933005914050782699890281877357848523555532992961912776373421457957813456823842678440136221199249512202693247410784343036957332765980805088855934818509681191551965326242489375673130391129433895132264151663448950244856367253464582508382287496431424843499693777699271983678427554006794947573540669417945711012530449735271070996603160503526758749593693507018244153974071930753238705041667871897262952003658037204404530954182739088607352379735624946979542874121952973584180165710460515063847709517136809931211070147363540748014226448352616738608571430308634976611960977045402334684599861060133351149318399031205906404184720952960703980851144639373056194999175442258602640559213263198979313935665848933080390702800165551684284772567631097492486597506770436716963541294559678556690577698443593737024531515647973916446028617935432705359081925564398723071761716291334213994231162729853854456343003625841222138857827032389177528952773104154824757688869300362977606990983920232742884327164993918148606138781453513019743731970580585129524910495695040365846286859532766627136578629477654387004217276114504555167101163743524956010229501972398196911216356445083280895950209195158790986437959752792372776280825430091269313146200586829611294675111879799331574907808080556702201954582387164201387418150906484154912256848250965141733878095315139333517277902593657657045970082086437839799265299474580937210101300237848327123509208742649110910854096547878352045315015969611645815446695019494455923504803099421995108682039635620390382260805335060639232000966944220204177012969683109092292094901941473473423048902412574262903085777089542939896678020840641077099491518594104825823759278219099876385034749640391039212349235884746037423992879723872504055251437493599382695242017093663864096826713532467218895474919266285655138911591382481033398244049137221324343621096564106814769062105102313465596104546165824079897918215966058441186238373197736367294655280886550694941198483404652978058181659729931478209126494655648380865266968829522492875238892154448554732567847526096178448447090383841263564662122682627590968066429243332406651470090732083850526751758324669203863414627793767310921357041999960925086372853363662559928003645553116909932594031024493713958907687688869450935184625917930297998180895932413814638611496108975272389056276237495039988520778684504577607680899691409374031044280977339325156965038240062472465116669587312533035885477762930605299907478876798835034328104724951851116373922766051625957744763390440424048980508987090825871617241025046468971767023944715107358352329740392891294467265223367789588529903817917551806407527240747157238690686220135504185435740381223119050063321087695211865948218397343714136298620751822319472432357318283010421251838506005577880181062874042813264158301198147441683144256786807284444267081983642282341286744986295912857395370627696025614350559086647116832607932121459397120962174255633687336393937238251691619908485345384884796935805248736522604666772836116163147926186574498831298556001436388472230009107925104352685090171770375545845962175099963177590098064641840450628221447845001601793436761313766918965136051697493353632409563489410785551841612556952021225147372131979105485826978508054524237489140061170632801890140641913196857451893893602167188134339308238986450775600807374306356104241459789399413380674770484123052682296029870093495778918883135714138233623218133058759134039000965037153396903698677898533661108168048668361740788977547446139229642869393172763309573314598894681370244106522398370515591802755013094075546892062895630088303234534246670508986108549584044670759605971763483331267414278434016330476314738772571283496224710238227080161411142979409563292333307853896853621498914841420506588709173715285631697553509815896041923439569887794038488521289954775164627846428120588620857379946488243400195613702937164439833338811639962832887354733469323675225626873133967892528911467720503922926429193020136354831892991564562419534959302098507075030938456502928656786912302310388008305208044657890371240386938988496724428620220455524882771267476269708230560100186581385395149551541158817934781853723412636550357578954711985641985877360224212018049608584350334281902379745311017880408495604988146395227552257776963024778046179072057017936307453893399992220781238151076470138800865366576663876651274060116219949016106697720053623609538960537438452912647850948470149421910002720047840737971862735180959201993192840345585971634745987995332781958241018321079156359193751289852581762772521847861803212805438993078054227488958553452960181451975537882915371324277272145463620983813328234672228956080486978978638867766499270102190025947404314386754693830137140875384974728547701660924256838707732091324597722392612206689943475830731805537580343752107924373378454947931458049842919515631914347440598240787501534512004335775891471524586187095055073685414358731110841123442482069102071032955811922772127803594493745987984089199123764338058273610303256228043604747836974972317091643112027315614154426579240822247883239906533666595088096045871057959639607711127927631150136063147345604068105779322398795494576351760858679438955215062742442795010248628899360908885944065465657436803897541491610697491937078104013542291355459445339467635109180279811002649811500512338789150660415931300781527907775688650194455089802768319779990694493036846854920475130004807778360619274829953243573067349051595307223289310579644636279352643966701643256046673470050617680073280783987131982867247361038713026515481732395843236437300209512863218540191206434746775788531914558059473346103596086990575421336166597440977681665759319554558559499143462422446604117634433017576271909598883680275700039991732944455858818539613658823414583498545830304388962330543165307381441707032819563850015198224200502436538117187357951761112783210354191900532647946994477802875193659142928528719595717864960984736196680845522183626237092006556437595082790725173846068264231168294519387445852838140445895798887233699322463048426107525756272816219687748364127082177794536779302184047191023169727061110515027147749739056508820001467028450357346470200987188680809919634114449638754164233978370582140231002195698348070817068470676046924594179060884506519404869992238530218343610890743020988486227566463027182462725506188281267701442083941546889942469898499084866223206185854003431439001350298313179715572024617877482855804970796279595100233316723021556678795437052947954521643461039763037135755447930851031301548304222256463207442571758617323321603761059615052132326540397259223560438871890542657038502303427840498855368233832002546210904861715246741231989622595172257323513139039920766125428118588973300309274952141029797199268471984684164797190709610976786815803969099878232525256916664487083422701450173556487148542812827437782018067608047795214134199810128665291794888738849979743874802729175506423578279501430943957012500978707284719089099671311226977503751495803693976343172391900275272838419358955337976661426210496234006974599548009027670227420705508886671001639854348515888023654806125000039213595367197122808933740784328690690554452732533618139109669684975850631151229542150357132675940517194566282861723877517775383833893051715583495644838661586762901316319990203624047376446228014747090205922449293210956671389596530305843653819832944292298247336804326809611711643228641797735606912553422874300072582180355217848729345238578450894251700957574942144835259051208614013140499377061825586830785408165756509673986227273615081488485616544445823528131722916265116914861837833502440077527506695077492763290818113200136181723469896068406985079726919151702922940166103907463845003838763315467891154361629724388698463475651368794390896543079031082189035470105588446994718881026074810357007557333492416283414165250102760582837649296597196188615771343883931779113234483853790346734474975848902181442495909292982504686289202166888633718261045932410144206438888987301073334300951539835221962897947718661112551595245387174708253797269706457772283088102104687237016393673183013060055689349889634654403244918369652927738505339088030176257622851072345111501667909782058579219187226359377458796108696363226333730882973962744352193516203006082664823482863419710757876980801397097496982742047455377857112590433124691816690091523754012000334793962099853137171012886031368382405659480764950379160878837921282170694408733126985753267370065348119827272024546963032018467461769065755168407931216723306290946209112230640087822406890223477812599541238021052295959655438232157169913424385054130558871729955459875546302024035639524070431280675949777347756398005288952009849328278047090303387709570665090072341066599260265497582645629804653617088482070334111104318520216010180189240255558203954504128197809314757720447338481310469659773105249316972629311502479450236375395630804070290981071841192975874714718017019369612920067134486771831495979130194321938006366082680013044971780913136474345541753546088820239651884488154245026575305035241820317727273598241300870260898197245053048417676790431053932169669240038090895332631100076168286659451825500304779795266832109423709827025324609598025844933410058726611796175820441610860028114830027859521340389972710498299451432041616986839442873778630318614802148653694116675303553704916615582046183084588630729448407964661098834759585292872080031914288911015838206284104402244705538525352002771745469517970497321168320059230148604278657905759872107051170504198508544825515483693006275747425081168408879567178448942223915632748132187921831520908286318088947437664817720340684516060085137335427868208605244011570232855591003897906071749743063013148551005752407334017785601160661141096047320890992833408075843946806213548255915985165610896767723021295925048465321532391484279275992832646316801679944127851216106058682854431021848355708021241048349883963944657322756756538910398687112689023205702542570112010427636228948280823903879354323444343594044162143598350149342540599617111938917831918658770381580290162526687622182933022692539780870381551728383295106611734272792475850562457354303874739794592184538869054482586583388555326299206996447404145593371693085306908913551170317394669424969837707113561323976967028255993212153037066607274387410661508526088377810484156118312062944093756825663640245089590418280572296047448297926128465983953462684483223000876352905291050846988050036152419772321336845901579063505906021018275823667455237805269893318036335090302395094618073937040784155595880149316215926647303536703714186908800334739947758484683094534183321523883876544684159550324252932374842604855905093309461612944971785309161675478485413600548177479282835649607247031497492908797011263459178971438737265322391257203472085638727220177067842976553442332872641954138969957290552886414041805988721965957181996535762300455652259755497356196823504502906380173383592831560880233456659756305713029613892393789142343421491521057038633429380985375332379416937485408006545656090099473896693456455473347335960296359662670477788235722603502007976677517421897577380610434074425516234684234315979181623585921043257545832885133918651894797392278420180500406486846008538226924741884889208691312237893150441800578694763387824272779911876156065303016088999237188008410002705678009633203914413801241542671679114095101166898540591735025718255267711934386501597973252638984732200677610976468280225291896663492979450273454813824971478432252939122376635283846052647561590962044880176958353430435658864667794366732009196173374811021852407847122040905507422780788955549678608226471718195824767656647322593112163250723266651306606836399423383405123295932142496167898535306197684759708086064589211932557816316985418211158089853347672496687513438270261038068061885761158717588194295340032299941584702271814139287964898580874612972268831275352218001684853784833549486556230064323151517433056422135445946114998660795965303040274438382516411128031738466388522129284503704092593145075418487289943791513064260102183129995863090640510835253125103217891510974841746536347630085830373117852617975694964736515221269881057658498850600212349011594562650507921970521821527295359784210177538037456256049295614276348982472588509560753308461234679560966741968524324443100764325351495914807509637494721988654473882114076921502079829661018717003005021685177915006366540286748025949931917479474435815685239013117314370332428082023481173592026532349159670562384533647355741992912267446476572615758441128728690099493043907873383599909472407044748876130443224822913186669536421860854026181938284029042542333641914904140343121810262010021742228393920992034516824751474146236488864654927654098835743292782422864984007262257384315905881209053809197794471622636261606125697999118919566183748291361649495923573541168250189191118803769219739734586637580563712037091226702184227055434963337028628233646263860675927415976405721249337016433671357401750356054295298061041776844080405867990338507734667638016451994495199863085688832445433814480833705664541809375895740075554790251122293410290543552202110803614377329531540410599392855319047216964655449418498865562781640045677485707637924835592163771326657687808523100459149365419458365947319042747002494124404819961569798164030346112409491976109043744212156955364903807965350453158188254384425986285194815389895409601148935028023421974768907052417334886092148878936324198579148362453339664336253298843749291471033815513592149068674637145993917837451879194598037030251727179623720876198093648635553027639514425387921665434835114468824706960733362535608787401454360203804791240948874852344755917202246086029113442534693771734133474770667494013895383369272035663497297755827228351059507903706106927361519204937873011878432741768015291959298891040355250805170550314472148030819364558382189046789843842502679282548828239533457934102460201189285650557673850150972809461638425168119139215045442277003394192284316029714435087996530311107716052190439089471582158438440867845433569300449584880832088943213206088243525190310157511601028393962312373812627110630797406945347085388195244205850962746376416983447232361561155542200878849360259957197637125470045924109819704766760505208601634629521118271013596943098645444642587620619016493109791382293031383744982510019160521406153858852147126507802592208157205806903931764931871744659355277860478128550596044986853720344339036170621471597938199609548770306653286805492199341827453778019478843429296246747354040775620832634161881383502593335686169605194203598441811780661428602686816908940724035409401798298393996670696794098006213006227689662130242673481700977153930941146197981816708768427707794238397609816913761297880194003122950421214869228645188226092276139554308401409471847203505482426943190426381033520251004738690039353008810454255377457081784176336743085024009341530394621970807763048359106521469823609103253636430430719295139758470651764829828216080079137707558623951476676596496623087064898612298153923835142566000478579511786743596549432480517234800903373600339235322282758067583619883193214699021086480378503056233295892802830713347703902048480105488307199851552882404940294467128626351867307099545843398942934246251192695318420003389576549212855033390156494716071259732036307549799425635376806136881848059684208513564259702629993671237422123485982224235831773128061629896032466344249029355998189388211905948578044674365192362060920073284958648698985143769983094395435874912487999231836510081375862094682420368571641168427181200796123075806145355620952833418671879487613359106136439530790938731731058034382757712940116240609634376490436195362364369442127602834951024405331345433741109454658659170428790576975774137349438263346167184044684849492035219618755775755684848690833724610760892742790523853897877645124877892429853938918785395331357373955311314745823145528962930383095288634671781919616548176516519214382665651234871561980834940502602186543799832167513207661921263809039516377204473322990376406615341498825728069491720173318641323411027892054107078881979297863857850434867320515504392711375274826560410028355161105931086219404354220178097930436767350455479186417386995878516790996391000692208339121322245717195119541759800406203403564575153785114917486369416244662411805707648358078601029493396390899086791546789525652978325167401116558447527953863533759584177126195954737788411276711814664507420394102000332767265090804992041555173485726463858060207032486176704474967038606262127183564819352466055103336460704176140841732675892377694327622955950837722828580867957606859429393020195138298712477295872510931002548309857823700311877082933765863239595173614887334324863638496022179991179896877042901052471999237692083549284123018201862277687109519892528530964685725929747885830342461560195132836747012536354560198104647579776960391542743978367175009471671278106092959866364284058759060182260046273665690486196201980938093100054381522697946600510795166971855370002514653522562798813636525793105075195209649128684251850848580059394568434632839353205611072420627157710112526990217640077437874327746741109867467999989857171905414967262994175529832413932269555508843264694917541950703651601625018241270835150223802917669118535698579126351881481855078899017002118979448262996354252918462531631730363496106816400376914299668292225040003504769535008254892715671684346983467943341462373299816798520822316291344867688210986333071277015088688550933521718351286589352462035202698593513341572181014147744760784380548647393057662901624972532799379583179546131856838815491180015214844838702756845672329838553948936703664397461629606631235336219322597552384609623037624880061410999965033864426838406017477485187784353456913398556641919518194136985630487844992329014873313533267764226002020960183862637439049434152832698782902731076689956538519356606845736703460222823486250556576466930388003815384142753268450110969259930220980602900557341542288796123886448107399062332571652389049825930678291262005730133552848886197319647846575001354446264549042376689936239048766384578662196816117929994379279422875258730533299302968921237916926983228905979445749906108780243694137093783132220004635623156592241286241011663489481255095681866302624281428999823679650457262019650732334986883059040922564793930757381804246292615598208571096190182573710160221222797273778608956226520872690255092381899236075897907191462385428815865127026434830148492511183326933656683837640782431226887888701813588960443190561257570828508417681052755090920047366467300183187284307005455221087716429826964526428227025348482170528913312749104016409833097696060499276902445746373778741286029194595179880670131770222593661313686468912720176903801327860401009401259295125027868934089145791699368217352089006482915245951032947193127701968218634487813314610112508793031112317600502905389204381915647457538447873451807909001749483763887458066691801011249570553007412198851184368220012246513473246333044946466795713515854886092862756689588377405107835992450593330043995756430247400576850372047412067650628217180138839492065524367770568976821722543282503316183301017763980073123273798104154681201872444371139233067359361103917840710793053452912671942645930981265504572925113304971583249031448121316591577617380591057938929618348341176459914338291421661430312582646072061356992716992334385951799668371286351890744527299724326835615569854190114510477831924348051443536311670038593870842675243303395764511034186615902387590993595765488324058076415715809919894596649328766084906988647582267223884617394119736547121217507259496425245539697867502601397072912489105549501388156533594267202005197925530841339141886718308383038486645738808923265720887161843510072081033252500443527337716010034185227984892219301181010937022218320020045035557085211437783624033673835110728894999764038205085066575188830762612541328016446586901408112792212289655337197488595270242561450613054396027391452717866708310417493497549434151604166474618604279883543469001586035998898858283888556546720229349580210739231877025955398509480429509127252065160531381000617130653769087996492185103381034965163835692965442793352161879020577181504646196468056633634518446578012723397877422011141456372747646453338525702797499527603886486525600829347258267739733603422970052622200763332429439707569509716663312336969644013949480498946405504768153622482501245225086091658497350907848660610193250006442799132282640724707854606006680522818191797029854006237460255909733551773953275743631545548905660050424764046094776452558256192390330920672140631543131398981184960125369306163888410293400045213227181935037894119270267286909666997114348790151525310585327559668003275609215586036436666088122934742395443157378048572777017181448666982426018342104570622234141798801581473710095442186975653577346182470053882950330080760501380988055991631606021717378421381639829099366866822531476915243862797990519690847686591051949008858394689533879328056575585547382531988893097909509592146691727289778766032768756072034440219440459572812281435518899668934176225072833292681253113822286747216947976077559731874436767200609445626114430080824346644102878884854023446348421473030394338963164147028169998564455006855794071303837338852799009780930145934764988350796500529769480711451334523945748557698785391004285044883170736675690906096573610749546423660361937493776914304352387398566155357223027218328387184219505521936767995637980362555700044234697056173728045958039887132475996397684849506384172397125938526657149591964921710797268340688947830663631647777689211884429986898149467674812774037500964247589368682282313507778053447671713588379901809692847325052939551259127147081178783850626258095798277431317357056197394338177552295726783183607298920784842598157248291735806343445964893988471322872128617579003895297377313603055475405764393351673472130989567291879178449650584440912199549477540013039339420754961582091698475862316858403822377174683150660941759480640422287220753494779059608180286560517984113455496071856390922702141426291246590203815017880836193429967833918700833484034269933087466905616511050203600784594591242427667775410058911141239014850765449275099798551804308362723410572932819129629508826686841049157327816016529136566450956040146432479911426504757736342408856134759241258780989697656691531421716440567593426039423167415137033915241861366215886776746882042520197181506005177048405535991751808775002489630888388145813915654134043057108887926853867974186915198931029439164702339039942786640864714785140413811514682723648021053460428381077285972124013276757838773165780737393065057938481669653474523196887785140193431470670437728509524061909470642651049177459495688300639875013272811944471176817536596587128508405935645539041724585092919462160221102935319092555383142570696497767687478118590478469609305593429375277824923867278805051756463684929969958169258177671023120496617756757640710926095551651193413744978690369763132061307693867203389279271162936358248984417360765715130366831186404420758087966746084494617582010520138925101531539884776517713595267346325431308691208662803215129253709368693826897974873686501103128886180634765184902031504947518264246452660152516250488041589809025515529197553195885551456114130899633034113949395009987712817157845802987900909248461078401079128681843599135726627826109047549656379649363841756642482865289880946494502331816820587342179407573847886120872824852579443876491142533450247865888926359806442930273419156137616289504868198057047050416508326791424302999315015613745696523890636896261768514477958529809845231858317986633662084069631057119036006612521180836621734321736544281192763627917259173701175602996511776545804301126479211519845155297102035568107748293993148629840845189103798769192424590765629090372309542878964479854293452687404870609344203985740378816613878923243404516993609139383502626772813902534306509702207304180023192266848480271086412341950660885266432163194841896749336424842439527940570783930914963681085437225530278852281112302787758384728782336139362447839601260091190415679291576207507169040918648484092009912376214842010984089515059958202833386078488909449007101072760279437997815285446240622421080954202205145449813948388936388667033260852285713049573592896260817320500396173387439604578032246912975872434002216775540715641303873366291615822655635432025990552444927974900432775532921768134932293065772897986577665164874990220363679665993518979679043105367196461632014869623231122700793275975940887971432241315787709526129118770789643457691663326137423097112205703256656721849352896918136382279136644942766181736319500561559066384133695693798325329638177834334748731940974351999799737149879375077558592793234479908728986214165919711303355115620633343224806904642101401979010467296570389812716313025092306810345844015135128989983006827927788496459287571395280970509259533494782166446492418855798008674452932138384432291921522151670278602549808653387568991700937029941121880673313633100909009013956715042167459239531355360789525680076705788351658656898158207494712448647852424217577724997813285306088667547242413538962197447480290207793750086342491912412225890481449073030060516047482879812301356151208515423768041566179094417815124767494875734475041152723744803284702662793710077829027173233986512935951622266881236518111916230466407052797956785371507486408638341010311863303269678665203177902538603415211663032460825962701544884385818264369468753848102579259344738181391263482825924897510486696078894262593767124248290389006694950405178904071790392060163295615602488018714071266709312350779153321030459611239161208600310709388646215267501966102520297021179205853175138395446089899311046230401704950563628192943630010652028773837371461123898374545781170257053197242932480315212412900530478297480405448897360754818397197642200174507545237649294687887660104582420918844364726650858665689027166479786000517066584900558278812399578018231852925715874074787832350155782005765104979685741091510901403205480155533886407860039791575804444524481833138400163467133294405471269776831163168238964648976770305781141819042230483687141807264296087151840058805805145627373447283597382088857584955179153034746887434964565672078875388582717061407995460451450818970948804692999754347403139533850853254144794508389069530211869722812231788179210243710562561997458999338552063681750066571866205594257072124347570000210656204326659645979594397312790100263018549401075840364057389548901990964572527619853311488475494291256216929004638431274517778556459252657200217603999906255080534582472229349561279192509918656677893117214752057345396454363244007099436638351244222495979823289182073830300759943069268006259806668328160465059972375915032804800185657233733548725366068745647710349717816956178048660167469337344812015354204518920269810254458616949070556730280975092514692491387152744966078803250117725239808755238090690422088507985978465085524864359894719870942262417432983843063218441659415908925741062353370442397846017198679544064462396447252159924847603119977716282106761567671740595463206147962764156417489418111464789397555510882058448672852268565429997505454339128410175541950806363283906126472478836734550446749483994675263457408680284115213648881692916090066716335338261227614835849106692664005893899155889440530837982954755003462952972893908576510500940978771625008288588607860702356433790033711334631315106813859588958261290584642199255402816377725338422032237152745303247367131312987658961505879400707204137607641813884631551253876534665763005748166696278123302493678629728521201262773094721580462487139282566005002135724272870849178007392603136466481563585704988213100093277400764678674202953089038506951964913239410720166563897986750236593867915958797087854341957047152614563421766318897505289462654021154650689998814454446398697379952755630078324519391764629495939557051554884960041591675252540641378054108282147879358350033219881040276056436807368977388803641799204815886739991204929216483214712817620003868975114718783636003875166364359784189970014881733685876125517810975764092382677839507351827618223995551852541588104180668474661955819474124120272332526102754693695408840350501301416485179474455904638875756469791249089444694267336957550907475291875013862828389630384352453491926332806039186830399536469691344210478036775504148372534092229573895233253823574445644662016164190624092570762884381076943430922342216900596224759797966315803518558710046671277359148618548301311993952661083127966892520926195039169842672048826634921002361450816064306910191797868789219607951386750571787043278694379005276707655681411180657954094993606252415903821269477247842247091752138879639920958030074020045120215655237886648364524091755820923135781294862860810971682576013099861196980733266495596839783249138978394043242921486563231225709769152730026980775713291846062856953659715352467119264578873810267382513640714001592386457454444377383380416058596634124257193800100054489612468257740844714517709593168448399747368087718118496237292308240887339640677507155123857314094953017942753305973605273785454529160344946797285992908471276908608340830379519632973298160428906040373141237852152523435159919070890767947242657940377839079326434459790082099824015945766958875443382990166779839134007350257922851040609589753781677953522468739032637398947954314966574495848385563230974896968882859759482561398297386477381522370236530785952096946457244838615623176058239270992080319022076783023191134753970391942729972043976629856459454480002207290572291623509789802351021136875722065545152719372279310445122881823154372257168350728574786693795411602043683749331208152102576508776745029235314276284470608161023643287481795504391856481706439808080226489911256094560278330630146945668083975172796559436241440574213945493185431343132439789442949440898442948169045432276046054832131817022036184583524501030602036298867057132389194199205360334619753058179775678721103010077677493721655333909246517798029426398787395045003462114505131489467124827801377655097394192666339014338035189785264199577321508306614932095341086724127556507880784814142649773913214225478603956457523428922105948915025694969927676872104541498610171990145798631452882648425554982619350167040659111784553116192527201727354865406980771552193760483995537581104261143046444578392935206029251352772881381392862878575080463134272507302350123152745128700982780224684538693017591555142924479620988933750926762954831028908049917467122925207124278053147714599407416173529029218933725722052219631855820394367132375058378269902257121102227618785690240095426910432108206524413700146541482775249835498615551204906967673678427597050811274831445023871046243075967588685385723911721651200951780269900851371889951200397590840689673949755933785231792787786379514365797008514374235309774331855293076856286816425882557195622926814361724019804020901683534417337776223306659870642287887854088746968764731602690244496418287221119815486631629313474732301177405078375049423279928227729100722793354131132655547004154261781725868915378940097280637233840518951877850997013331169523505903403168435981799144319313429532871442164991700733812357193587351852196833480450007606380411532637683069118649185539096313195884669696597778877522258807683860011999107059186722690868393485472396821769499374669956683341521990846159725467770800473142456348012322686192938766075587036625833333318252619899608803129892139120649764997062800723773517046504896139711357441238404389020382408132729833515759694781549768001729919110925967877010380801275909098463729157183109945321412020018380746094647814872183643669681920365253385367341097424763591047149848281367209571371529653155252185798717358033427943159174253529325412412363420919920999739001455126326163741849545610341364224496191819851991698824978809509762523485535421714314274467591567307044325897868637026180249288833313592071859358679943899562527981263852471955555507012150696563437757887592548585424887109562748061841481715634553356250902648459082661279901266311052982727145353546832674795961026114936438638695322682912591893251902221817690962407594703532299772696673170944820523949650412273985929494563875864417389852257880797782529474677132042937496737399796051141740805697964113815713873907193605119548602035812085445730864232253039144868947462854595406854817259519025389234568472850387713543502798274736587530542393275606987817276474230876112119978653432432983657601782593103681813315491328364431452659886869396410751442293687570942797439783537438562630931881265200545092491789745895718084939899338530955890590644438599062382352024915042959954604841185784310826489390732534689962071475976418671831006187993563243039658275339901515002578603748280987823613599189638521790765332944150251775194705501742892024012055731509612764246337628134548878750107241212298212579714320891481162674938532685265245094109046102612141989945608567803294028550558183128710391026104854177790333115268207540070757709258961150413964285878108807366709465107433623623966374392846846575980086447541099546017223357318459274715162061368335039320615200474479900344819764554834868826585287633978717478189643305061971931123880474396265390572628491412369811100117560128681594858393033795007145418390301659802176533008720340174555913660538306387265287351888831095179501662599413282964582402144474525158325194878145886422502797113530712466601740163371010462088125513089669230715542836318969720019716723161793139144991674180412740819949388271593012940411774176923383734648681435635115437265339508703024625910394845160078021268599069828175819206184740522050062864046678152131067954836240192280477352591502759890734532522045841240761992128389806191824996107901811778227189699636826937900917942766139079000777988959186647518263095836187523158407145672542594622744449916351603550863496943051203316528762688620627685270548271671010357165301279638465089249874567395344602088200018789414359059277492016774487200177763622871652783977524311263450754504691290842564449707057722740620888699114489665913374518082607999241837930740814064588909816093520112127805856722334298343767611063265134964889500195638472706154499318972502314564244116495800430053454455225799435533946425703041535943566636624436826109330815388859434217699033811294072431785576315843974545298411530310846699408421520409455900667589485379807933695417833374083305737075757347671387436676435655917536533021631807999911053085180253440188432780483240576304582038386787777275716873247629350510131218037658227803026604462875255098225553805876434637540436638254166451162733567828295074286141704591137587125197607307279844799382705236464796461713442453438931798088315397381574347232837751788583018345787232685838617778785453464511265174167318240244600644387797038544603804935256655631440245415364625007361225166799685206201562929750218594171667489726349606390968354625336426986539250645665010211480179862089904494001026717757645857013845321722084641944101222140373327871608493304685885733244824405195680644971966020340721883864689146878182190267982834022934816813899998279758176089117213786705334041647873624113072212137550466717628304429557042275834438875200763059962172388369510025447135407957819978375988170360941893985134463706039749658908500973753880376104889178725977388478300975552282495285946231587068449354750429813194235095952068512488633500426512213530316481461618868092566538601116377261722190320807708750538352503694488904964345022020347127769248114304319917326933090602269267119653575026684808160951035824027569974741598267897744504881020319009894330582482805680751507374471346309989093190809302590032550768827090446366103198027423399395985367822105354043861046495247252362540727744812164205236251072866264937728930209155672169454820768321319814424723680317902642992212819942154611176507903323272732005608507658994110100228662350563353361025537313246560996759404390641763335061179959346658302672152596459537002203363373989581761225560744021959868601411778004906263837122198478926095903798806037563860280783887071582292402958530217101610456098584590620526228379362861877144219280353249112718348077836893079346000524225494406872412760846543659774377566224775853973519457890710914132557529382151822698531548230871585782265655365478397870673603127311240436495853975281069078263730229840820594226564522279439649850799274256900163816700399028286401086322647937930012403687026133594017594470112563313538695223525424835030404430553031413715313487417761296796279925467013700661202126108327791846595054887554366224307731986425646823954507122142897638907498650736435221478655207974618324601812576324172430229044727395705940865215941578234229738409641058664633335119800286813921556643994338171275976574682617126797551330516477325218281895836025566137626985114136335417530670065269029593349744380870442087533570532384624767339107250457081667251814894820922588022091683057612838088216399786538971946060707959020562576275464752785232764565640156079880753835202031805314459347513205339164724318454593878018295668046969485949450123013927473898981664455649353965348919802840914335049604900600812772539145503129126191075466708363859511714646001952576071657970052217222234330843019135239814325673312061251533844392575842553300196221953802474758393532704019478781081748698313141937877031904594581488944244198399200245461114065878782412843095658134713091670471110058855020224937896199613586620177896556901726502215841353589413150046497730907396391631740075022599304687111745128259260799657128490385306991700778941186571869724016081904435636042018151413226447378436609239630952996647335473654172529633232645738180847727660467919320260959981515290820086336636225867571744743852700759131813361813220121681225389481050583502999477127424246491117982830312795406679801491367789799248150219920362966086226669696040250020278653607773740667711329724079988493429603661912616660332818115368862688254510079389417952684430555701399132800868603824983524714769509187995045156087357838115712557404494813618530464856293720190835143749124185954325015257898874441414070792311094810572829818991213307592338017766383858205245967369038796831115164329638547207006461517904823792265624699312259431404100335607328714466404353748475350730133347838442378611941266751181004453961381492079046216768489813187291176875710299131372107534651039472794499817694155097712038042063478465333514031407322816175417198428060444177736022248569878731212394583986304685908677562218333050112503673999593446543453748120512324915720969071115806749869103139568850148505958426327984939170379761806104247784345065963200237497239695638355002814383959618828455910973847993561793054457169323641692770610819669335059073693219572362700454059142334214622570921088781964021263223590802363295182970284599823018558547871510980651296739324546787173790129231076743876095722750900559954104807942307558692541397182573845469692357229597135934592196541419424202232586735546298691497778207621012523501401047059336979778775701261283901507588936692360360800815269622107171553840682761085594841985907642280714543203414861920392996321968175391825273832329038752901954701064357687335489194365954203597253532291188574460306392867873247824250471117839452034905227989135631763943296704850153770162451431209539267267564928492624865151869647849219802589673650727988384502480942069377021955232780310859823085159129102074963672148132027571604394857351471851490733757117995131238319126408050723560719067273340959195781369545870796711342587736293716941439153415350061672177286904926416190444282358918852105138986304554146607498504141668750791571354666619146449243052035402634017783603193736433217056436333915766393437880754681685988115538724164058262699614618034301722300400626097032145375712659291150175672947914997970424280896747161387586732970552271352185530024089470100689787377498373178701909712372053131479187971841498203889811809266221757776208393481355213224888654161208295787458727460178665591275404959461655692400301849170990284735122041392308521899093965058628452635810001131190111321275488867864099742820509321037891029409157112079291063749401959661561563198747930860867170619816615530341950472398753152783186233535915935933522449429774756649482239372363119183405985230170475049469751596948803494629585697707723931897587804476333642610933920757364376503522808905665513975697796413573042421231494036769503861381426530320552839157863757588491765109812538194857319855883310725201333965472044724861158013993812512731311352713558998610574790569711473529599547168010120122260821762194753037142944741047322902885038524007719678314496865559808309298116347204832912042308250302802299132338038694904640233384220542272607378681481180627057915797392326351766342651748687550388339384132680394601571966064240799485095278813399632530075745657394917861711926724610331278852341001175097984380072007119126905476428812416854804399330436641964524441969815406744881510510008946911681975139629442400303848696465655527223405737984300794715888076044299107863503060409880067878690756980949985081629914675439113454962564768872952731162079663970312762654426469546904254534273945866058827330767865229647447169215708277402532618678414847053652210608010304373617900722967956006056136887811137836052536094519431854904740864063380935146550730957730083148158306440534516218876765016848332290723556338198001015034378608793599122092223588851865514782704110154883868584523038357125575781122101345376591673602310715997280887646229300226357384761619374601917494588982646751067897082526132240272176405521276790164512432364494878950515911607112653583644890141190141785133280968753404800469940862055728453544599577744076110655764571491518636534782524392575444475736329928468122475392443046515544139737670300286599970875116844121142058531460472612123453540783479569216497715717795703834951958553451630740092583033931608127921866604249178945546604522248392622500551832521409282671591465781750296596786683648400970037228062715672638656830732864068463858591694628729718269472349551028379204403461651143568000192809528124104605931744137053812131394420905239537326502988675219490765755931417217443751990862940433004641365615486109851790866972231822915546676680983276339992504996042436670575766583943154507226928848067102544781399645772807213749982280171203537345574142979893006362493669300783103008181837881923078824617194554908822678828514701623268013191025141933155617631294479632701762049355370258978231562334766346001668208532953309976679308251964645493911754860935990362494857906166215747064586078511587517280443530052975894317879141799538990702670317023529922695676315480170033559407530774529124883189707789870601178802833195966240706565831894504024985082398220761595961240043093182058138527985748677720995687441710796917228765779017880393249548543667496915268425765288201887927016632293392052825898574301738983458746946583773967474818444834726141517252555427421405973019533262150227614566114209688729545875957437532040785562252225038836481133112207952868456316836890116350588694816146669192841481258186632674929376146938548618262113370884652730010861742063594326938774730629264540534263532144685563212741813052598621999364211063434124309478332569786240773861063859672986375987606196738711140074639360402974545083023681548086733003057896422209170470028473076045564121309242580246035974378633319927917055990486818565410980457650960218821895375769221431956343284509018198800077613867462787566476750065785436957500351768305912894556290777241556572801502518820521576865128891142613371046373933119030974932345091670464039571309520608167512961502839521540614544102142436730114308488834296626914119763346699495000524460430285232725185996015058855160070590759564424297747884975642380629306825515792133711860570560225590077478611844334915640991343456910973962115992050789174492925958602925143721031829555157277400219652718041317592654197682834057058683023486559659606862583751315840522060760040688870656831832621821243722004588001102565160005999570874523306752788744120798819912794415768620918357405766227455058871975825225620545651078235831280785356048686762514645698972878348142707899195390140099101906293074148573579062930136336326163660783108269128571880850260941350120849453316895807018998546898169868440559629780956411391120076894474799578895295793848872171445658703177129212119049386164082914135382545829696859356055875584303572322497955782244180703503852284694810731176855200942893160241679276058615221745738896135719387811865940966761596613010270271077800646132502234727432111456479634552963482740373027571069450051261009640896632247153457503952345133291023390626062537577277694810588079905353506928764064914537037836462067157416518245572661667958351795777931459373764163680913705256379152371687524847468148100131290886210424308730741567034904265636007936454628828338039291280043625085553752014221924715879389620159289169300811326727619691185216950759991541598326989762588952458716669439335792281891287069611017450556989043836282506774703249494742907498615344566962796144510275455092228386221315592877795932054434356974032437748670406378986175026943498690230510589891431935106724313975164330353255218271497684234116965974783306478772671386519147302534200899474833221208963841273821830045002676579998870803371759367347638530936295787606402114770017700884373597277541074034785120703701663939609538751951848647346509760903054410336299825966953576131744526337414608060096216140929260803671314750272194395487106495799615133863633790876929626190231373068928805095999369817103540502341135380075804432394689934388532768691633824753222542851846588007980823851515343819884901815116086725328279427839431215349046732829000313500669675694404362232735299350886771746512023138395029475920399263082905155341697056660841279452000196851640723103986659216478505419080244227939447201922593626456289044536942313434534538826096357233375732561685986107226767978161440616775518718367885835288849779442522246419733606823389299809068047477123414538739731163958507172693836285303481712213353915160996322004896125156409547036080492174153942075218806555340094089152511810929687102072361782683220241329194481936968098573956920946541976766260614051117970625248289726157086051990168084897347925918849182874164942698069768893553096557637731335623971369109698266921631590175438045481600553338641656276592565014651396625552504199550530993768076479385518168486452714546196815461748641101936111060143592263309839742754455860177170171573895138576027607404105215006726993752293104791243605188864141579952065707954544198424139703368130510001192708985275728760637939115577443169770782736087932170709252000845871325877535826443333841180091542195415619480716046041625167701660543419600406467922300954882940328248729191870993197619197748961186529795918381490787225530008780998353453000932156358269873619582238614649518851665685111529073990544847838914513408753163576581982912804760622377728751438645563532249780805690171262890191794249152443591395380817605304863946920855180560791793765624425130284430008035009655496033180358722962963382046857981241017407915087355416966689374038304344724186844121230598844772371137404698730417846650908879024380970109771695566393017214299048342298129623997301319559690104505050276690913252254665363194900770324468986985789214342898059781974684328342566995286023990048326675979914732301078057363898174906504129513934994217404354016062121379027032555992895565717690576488489690952952155604569954342510356830793064271713141986565048187292161965256921426076874586356162165867260584384133550624229904345723820570665449506734084450508894475559530914570215761411884434389411910583133870461034069260190906239245872043547173231378645621128029953018177717692541150475784744900524176428121100084663047115689504240709361885444475345213138886972701055989725027742797244552474591719535408860083741015465268618688227542899192974209387142098980597795870395301994916217277394175994535829003088616977550108979926272763701988671070256454297945651883428344635056870785878277363711803507327608920374241724982271729966481672401288140667229351181866230178724176562694320536425479765885342379395419582030005686759462472647522629685097749518673697858723205770063728611638805137483652188591344529215308392602748556515054369199001256279491816982024206677249124611449333732648955554214233836908215925651512647036806016418511704146135290241972845823902946814155090082112476439721528188255880060698635211846712961885770639250646255152105486412596160278834700332163577016561559247462290880436132537939719036696838004667195978522433635490243107912587284670544033787030093489218199515919085058194927540850180248425428331707315175783845572839381921193203155322599096894844099282980164048912418150437777812523826371715126639845889650494426999932933669459023804274620795772847903633495998586153964792436465185517517604412111979698701555420688534815206270953355162670645616785661589582688413473189620022853788528154978597634976847238079704084895581347599003238391429566938458120721576822138054364126518481355217799125540091215072743769744007006888489973525582715731452518014372779524664078120344865648401568066433486104761374945331847289939876139131664293093044037280795769057771141229343125188907189852246098465132633661599209306478474155930375636196906888832915466840284453120373241226258851418637390587408537173605133603738704800438932577489089214315086095544551367693050583808477937157787428261156199208322871765851882990117797156594000253099236422646145067380197196733691605808466242307484436584093438063440114698921333103663603704867029350827051423984105506548371507720993395472423900580188751462572542942019983669013992977470191993358275424403432815336504860037019225392810440668854493079742542439975457913878344677232921449561152809658341847062603654601998841973280996894161281586654737014087237155753110842255527491423183174241840488861717901871086092684105003165577133388309797752504879136515608028998551429821227874287943370092790376331939227508016991398677358240561536924063859230312907381962688433660047071264479366243202630068495148077254161574641819790165179993989658040358834854620828455550076301809548456347635185395661863503776677957318614248381819129116541251596784308798084028196587087993454314644586153168957974375934205997965206480786247661901513170073092064199954275909566955513486593647377124736335918509272959498502302205202349312790629090556396540182907848515742733701127146919707650876217785367301064725046379961527266553085529990853936474233458913321836803479901516527685509799467459888927939799537854483276327212541458061060724419851558450376267534137502638336138673488078516397992094220167647992662248851695300391228319305971633293802480767240302894884611601805054537645339917508748742298381481367452990232692663415784421922336914208309522023568610320397839883480982447139592756675705087757696959324097312207758294837824467562543651125864152217334424001274615049606197686637753833316600107258572847387009691094445067292785694540548528599539689262064328300257529175152762561291268091478948400937908104564271371078415453147539964335302927509318681607407645287558520377929625229742599438069598848025295179943416441503488247813169725050175290131102578015038074402402200592973682119368126167779643041499076776438900150910445637199317506210352600924860027320543783282993672958360024034517295797778779956994969360323265727852376813007853378319825687383382562172849545203744124824858803486306643980596404895455922464282621925963970134721117736547262096272474427023111835155327258983185200501004092862533202242388343679518336564718086343964083056271479096256641943263417193573753911425259908729197503867510585748814666082940625211643006147856854731337100008196038350076181884391555248391672522253960574592557050316158705835620644106295369172866058539304339094678334253656227364305804024212164457734219081169629918073543714196548935089692952613743756075672847132220879591567806143951566439995680008719278719037545811665253946519632508482201754455280633864682245416951374978807905670253018789368391337201933966510945502844648149902659297992705313069601706336334898482256839475169488141881505728494324844883670292299334757895397648423268495473582189824853294559025257449554107977014303261223599104677085526479498021960319552926585902778408476546213346742303350752035173526945270697924681766709040672131015205204670955125795391462499261000239762134194539979806568152760903995133702502510414465791118097314792426915635668160623769796589742715773805624382308546257829164033066730405374548039603949766327470830725885519588211795121905339975413708810831184441277953273866527402259957775494319605656304760285808442129881922360771779119358079660176601317130704021236559135059222214454863991234565675818187531094902821870090477597925687946566255023851900179238427632486316659170404792962168196897001394136573783520056926175676237815399928225489958812325825816350508378242358516470103740103550974601294055825990358566306224141981212911144288077605076740817933943156915325897409122764535929073833250051062439610076527380122513859009201706513104801197540371804712091390517566565639270100204109092183910439843401446207509289044989648376406832122916633826830044178118794620812319654796258822910891899507913480134201052418076077179480797265746573850330414035603218111061423687588947118148127347938862962438442197768547706495619040216793090096864108792739348514907686059357210138414546072294743568924257949887694424704238919564928180834547151674559737494235953947427752511783819629189787450176965581992054392926590504047284281275879018610397965862786123640005824626172857956618780581101543283744766565990712765414231048912191636993888900582477795930444043228416750286153660754112128397400654507072717973696585706375021349067818938840426113159582964631970933147490300798030319052850534382465344616027732063788943196536280806590084597714613760826790349907841196680146057938843977645977661639998375279432575648179384319733278660380409339873522328603080210939140200254931818531291901805137968794557748204608476097210702548579647732407781421302832743036454150175984344586346321116740280620223063082209627471100288848370466819513113169927527752676185127460846970354344578065203894276873833668672217940684853716057237014863474174286146913754946323135719996343729185792873928330600750367557528549710244515486733070626953093681052556401353353620939073276999204489949621091160381883828140611558937316985945075196033353360706144969752491230846297024813095191488118355121097960051796220890395353244489234416322969922085981055421342075100124873723090716982499665349487162807292398643207749215179202702943209084247138668310360282122125002405853037332000156547166012736491536569419978892902526084767889146944587076846553565427723166454295510081471566853357950690784249941825047631144563015351980627880128094779196064059961351728697849151056978520745017131933890452895065226918320485536745405599095539162187767530388403640226966479258846270168946417647293171695897591854906554662476613916028449413297900628236560097147937013834440772439609120028453570147401136103944870152856424881138263987786650493674296514679116566196174308511866655162423876920427199280388014721155008590521209254608721245667857686001090237637352171213899211238722835901597022503188218536453586544325775582871313861504987587170574944755197445167035341541108783330409962869684731017099344505976849388128352517532331708279707133578643820496091760683901682555217137244550896424410943728802817794596307083105765048854648229998444670190347228551870120082032638759000730119067087165032525861516055443862143771480449807930181352864038769988076430365240954744477276743708236195873849105996133290688137835359259893668861508042162490748048142822175011332183122466497981992691992797280926983157452984129834102868724799565742961582604743927683503658365147474056939352800067701232358806605328158007195738148613383388115912521557944993620510078626754681572719052414672974612062585563078901689711806321618277375648990307427425171062587798000793067815057239853411815788731314592570354568680131892448656434142329275691218632400432786446131780899265536991470028000113572718335442734373337104615019782535292318893226587709712617341717038989990303727920334002206223532386898984077631102426433606824257937088109044562186101256390559666671367010915245236494616548379664350170753048321135747932321392958000482611568830521729399269181013099141011292786216355398043733697205605956104305205997844513383779530914646960500150511281450438209676003898284163454518702189137216309472497809754906335672546391138703606373277025749266218159101099630203691445121648224866327154738182329512832380495094588333976646902470581344196149214548212122266170408511537335859534519534511685134155575985533364383584012888612231010290877789498195952726445606682491838543250980342938610723620757393460291935670002197600623294960755976446211604135707075286628542025485186633037045182121430279208514265583663928474522784099105991720884736146766992050386190152164184626259512890578699699817583542068765821824507363733902737936422281334547101839519280694301950864715445220620162355587555355720168355428877860103495433614087912819904917191260163492232666452997105218177144301603439890557067507316034472047302429171049885665000456090878573975019649087750951996714662545500106215101143644804937606919257847294475614192617607518294174713592034687832219982820330512092373057436102686727048578765205597487074427523673417160731063909563374447261988839608501238260842201074279103640727284165513200175174672382101938873003555607634934628043253154102475344718965794973763867210044288166049366499552851330698652294789066476371759392874236630646870719508578744627779165859947245699875141118722345622896364445273374544158108277217620334138355833956698877725483317089867218517135581865491396569094283246840600883201157542012730575196279297465515335328515663852801205553716176919230430602412389817027619541605951589198524445100932159285954967799692038152558376424931329760742913837220689203593729070969512709072199471071267293574190142053588045965671848760579254671961769985994215497183681856586120137584549279825534919713275284180740183590386037305212501152814685765879514772494410074494147999042926046566751201375713538345689472320306821546053740940017251285047725436875200406226162031492887429445056957440920811749473560760319895771220314258313548710534930390053579465445572252668463676892935492746394264377999129421977084691920994771049982425065033669701101410207005892561487107617851699419211768273423852892607080513121437107196972416263321764821560787180415747126928817014955236235069520656504495931092450326251642122388549783162243387657978870155882411635753113898696251944581694716126861908579068858982295953793388097516932838092023867901134963004172568586318116232040787831846393078429496978682343458497549530173994242481417866655988758379836296329154749950929329653303524679322355327691526455821858820089289544077416131294344509921525533889760091812010521495344964899582463593166936804104519065590151692274363882928053524362938599570588793821360172006675794302628158117507029083931287001794254347382366683872618371225485246028024909938653368871107266571614059235323978657009987987971805445210870625448881624782508254458545618208852887461419407734354003501175923124648935058862267889438128088812748091617725497337523052448840591056100505339106696726276289532744102983622957841108621916312947422349471390290418171946759610451847189259257412514622251610859475667757165793841180012803612944858104451216670646222710730090157069289873884079290809914956644579842594694754505743267498647138741355423131346782649075893049561337944016434300711565459370365127206591022151931037745144476957137681490940912673484366973649276195103806994261169135590562485749446817428119949262263757207688896267064187678614463515698549020469561582108379755362692007603096392996659589405289188668063339681121992658680397007159944328139702179174127011488255653388951562172005532846799849018897325980618304741009193558932884093299817471522078254543545497093063168570531448187227793913468347473310777596730267654366855365020556551449162017481252224215736331355087861582400678001364292433601617738277309371429499428603359281686761038116788723314598341230795036950164587114345326748907181648335347059377052502407856195759954631824499159237261802554788148203484223250262262846356448609421427676304231898692546139903832606288826450541607261469877770852181901848879536142665450483835376843552111904663738055723092140459295488477078557089733619603918697304692835533434018999667930651146566515470494728341050085435185799961028833323052114498669048845156567136477376702838447405496971979929857678928209017687684616151534590399092079019679887799057009816404999614342757621806875280721933881749125860071156497823321881282676240562368223352274171273285719412572628572367072249539845832019884028391400225303263935935015391481774734934389144564255363237422782738595324697510337120881087752034867102645304096422830980313987558606903080208789641056681406331978430129598638565428909761992620322188436001600584388645773141196888086173133509519158359553571939089262945658837575714310177308859640624511344730461598758205066649838182622014257331964155716830380323116651813362279512851421896047899395197796818221027056732662636671962653769368498141224404310889175300502922929843492842270821522888675388303184928797992435866255125444696147858387679594848217745533886793933701932961200567786732790369216759461540629841332612532261216372883695802615112273522968091998180282611012072646386471866528193646989065412525390469701378523825099755879252022653666474004175904449892055674567443770016046677056802914385960178901903033185153624902561207499939509581915339496231618381245882641960166693456304217417509642004176764823781446882970821033883631821172769856092317283063060798087615113255818058670248965371125258266763705334542927522187727038225186389602669013953523100487980099540620404794794176867905829254975497889095268374473428913194342666557021183043677746818651536924492975095219765640855675415477332217540938929403156952072951824835217866621001774317420452963865178732517029628358125838579940685971936265215138943461342142003848189996847790826351741808207537241620370130609572591538624531379867414740757829979809811131679077392064674117057293105262258470990121330551888925353248151050740168210113242649295033997356732302294623173433092486946936953497013138574542709932858158206208292809013370635645359681054513411347611670993152614660326262022446073969230997081315026459667415297842696643119101675427873707615782293854908986913753706423218095285208257188121377770787724862058878807333025633248400957685088250199676803321832347293084946079285243723327625258889360511932664183703141951140423906862472532313860773098151656535386896590366193297631601717100659562328256632179020206950671352130674682029491158523340433905979141612986393557062722095874804085103692471520288007120017033850643241326480064094300306377042940336730151128521823410046310968453313574091906619281682902149299262494719522546137238981007102797968714677040825691061401777926716992408017733944850376874377903796068618728001016593797124077944271802926684684495449639444379170016350724795740195076143522333582946312595233813612489786221427899978733524859868651232457744670533911172121260659838454850124922571987932751663151105520090437944964561564576338936787080257272118128721616013360420331224889413521457193784530369281910210446896866309582610683501305119934290569944277073407983697767820008396608884681988222601492351045493123828022162309307341538821483101409277704811038441707342181289371351424241091941995479680833853029672622794537995604772285624955238255326497246348291429822733315499839026404979668189929769992392058956693508647529198051803039753422001687823786956060392027427711187992223611778026672867019455398712896557347713996075165254704132153178122054840959933876785761713100665806034314055822388024598664987856333733631197323001100073454383229106594376622965021472259455223176412802840453674501362795262708840271865997324602192639034638676660010251891067407647533177567256184861002415734568167686812187876317385423662276187327505042080991709719072681651758344878886220140259007831214279284417089607733370903345334607995786078783399081133775959491156289871163083996298134848110866654999410000221464894085116949766066486498495638735818207946328490942054920940972307284306299056787479179423855651540429867018940738259891687118791974036622727810925947207393400117788282141959250858155832474329538333739587748235146423969738552570176110877833856410697753064891726871693841268563454112727787350357665938323480642113910005824860306594202328153629625191480337444517514512831511226586338464424650993905788331638401430032497633302431298268121551151630919632718918683869193416164418520859776006925333655801857452821547796583274114125908790037395553773443461440695365469782823022536331586981616831436575263117034290116099481633407042720734712217761085312774896306618524086199811958272927561263264927686111638264948707398776798248131264704590783517660867056727102057971824985126153620052371738886095866974426843741115160063160163050101191651623558601811512158662124599792745319417758381526364944919811480082285127340820165082785546794125443142171844439297530579637344178298937500036573618773494825796096498092669023094456781611660692620330347164715475275548156646623184220409125280223302349309897836315683599310008901064026250288756198940481077932633585274217782821798006215471357248857314968994030294916853913115090330428645214720408339779053924045011415624241330269376057989409401409101111772023281213957439261172650944129756152699637660180959052259091071912243790843624161863726976805164524305069197005790507136177230370651610724306621916305219249363652438307620671912923755941697076145709470449099498432522859259543064835889949882047074196395605636220869364905998680546836296625965121057861855094976862745359757531544688619698140048690542117723815237338050762393873461458903257232411668504539272318035103133815786976136318785933030434134484711719290274783252281333436808693619027123851910145700906424197695491452189139733645748182599917919771731251716350993051210669639579185466047549844912050983943641555810096089077053643167517476053305716081668677459791037500847878578068041806970316505082231894496036955524953363924205502284338500649154914460901796878357304867607254425869899720731381613185071774848082051760405850230795385453228120414294446608741757414140086433871317623435520550998609823092236967210645928946996080455813422203264379974070821440502897529446330611613362102478232712669063022324046061148431468697455473505198507432215096062860142902985092579782276618167989812098041189790453305997234733430994679391721407232331664762104702290682266972496856151821239626193554623371809848038097969895031463152891779535515816070384350144921565468551737176338382497975112383909995616477054162145003925338302695947064359147789948297798470481083604074121823109223243270764546796137544453319474377687611597469151577711212572992901798889384351441177289295507925139032582158676524205684714381642188766546596612939869945286701334335905817351534338302454415137945662484136698965220704651163274278165748843668692193462719352953911864448287754054709093309957973936484369435013937041934350560805009927095244891287422709557282777262605721816268165865949191157308445236574200812184260227310465055170708356825631984267971994606840532737325338223424904889601780569698662578010297741114342079268747652645415954146749120122550578695429690414782950204722783220280733198060641008781641861413992874238048703238959475571386221330389837232606382730553593733282468600041986442095807197041061542502536005069175075338873751077641815414438532635149609907664434792047726708003145814108484530989960574462410542385260053403894009013994932563827868151086323490777166161501808620172818796684728855064439505794779902491487029134234670466995137447055861618979149276004883576606128301920556493877313604075463681757199523248030550646698806787606966373566508448791157640220539085990813334824961439751652759073996189431333478615005947495428980433647394416136592486683149895117367498311863275366923548396565473490973933189812660434156955863555990971748410125415860008217972514563468052111718001612343272034442349802216535825893326873988139509089381031371632654287005556973087359208288930811230729193300931785211186191411456955710157503843762323442274000420509948531373158098753830006078550772598470601778433787651312353435063560878240507546361851592493801227705189996964550580376926726676591662955717957254258474612558442345133712691509476343906794935940366231462941242044570815518723618840205059765018467887646402263766258605065750199056313638418748743716151825961500033437523947944207711112952106496379905722203526955405600714518829080072145833631777463200004021445844070114551532329078016743099888560631868755480389433824575361628198117643208388680532028001704425560293931188611545907050816546330041816713309249050512049930820032862932506209439773187028521888110102209489117261772350220870340293296137194026716651943947281362604027851522893259373460351083081156858356793279719850526795172594446171976844386318995207859813824977314775409142960916834224322821891645776980368581360662275595801117414059468404065502082319159726658861745324239348704839288309533666840939808245956906927466362138152985332618921614354912813619359454274072475268113623039494258615075755950925739468966225155119060450304710716321848966799323127382265019939460065992164877408153727967286478157159866535110239330367636404476101612329158994392087149909098384441392564337952209868604040398474015731285054101823421470499611395377510130025417619313240495558028029028997891864307894982892601563234049355733491309216296747811496171218911932749802946103124532957244373551300518797320590961160528665104596711710545496424442819295798859343189531084879634916234303409679964825019793424901210378373774382534285694222089821324856192766528678846196931050814767157034265685828947540540030758280587352814774732457742816802909085517134185970905467278115797109108173548443746292908563331147595583931267471936808176901763014726270880699943766825470062395175533142012179408792126133086170416904703406391096689694567193257525450614661718361400765059328880844625051667941381184637798547422234699022157428590329813092853135892060900749924195698574676269758542146328546678548194540441196976455280139987536048702907656458758478117468052566399694095302350933294976049919099413807419724244269465254100847052559888661796318979623276112429187145735164342111198465127319071525737987391315962046703212696207063951075241295890662303624516367995364934041534770659301838486616022389967668531644555128207168317486188258157247260747053137546113220525423063682260650717137407879082561225003497900091950074044265996536540502692543739567354597018881787686067675826182737804311842513582385153629105291061258411696040836174109291624299129084356886101360829591459584442628212560028167732476764487788751474663327669699853052411491807433990542081801306669239501156506990221286298437976369687814491638371933967077281055423047774770119498973711415953912244933348469510062901004812056843092192590659106418905084157074468439157721101678636097258211718379915059740172028163090631969595057299385011574122697572310217895999263573378438453840115084128063933824312306116612934076476612902447129226321909818606519477602545875370615465262822707089155760796601922632073268661038788777531304347832353630435629847365743278994420395506206715735775858878630487702960237255770746593966375583425906821506113765442072952807474536057428656999280627834192792148737288580786422795892833565745386462663301591020493072586964056251272438974489502666730222823447740691654908159748255275127286066397069261752776410318443266037320071147083799921465576207517690639098514121383622525267345330355582520660517818912321663468914814630852751311360111596696573225006365664043871756809911958872682749157764690035563425611732288439754572956182862806055748257909669671710832647007083807804939985337701051735019780499464588750111845838123670526153379163916469953893298686277968807506052379108175548318509364844793801502437765421900815739013770105256932000292450221324481802017464113021210780319611024122166974365384592606625630349155690911525828818350689156927606518080159640443301338385315741852171432218453770673555619320038568909889628241361100881567072349026249131995881108604209747880967348878242948316479390761069467970296366873689770549916576191417111201558511522254924797904830777700479712552745475416897354994711573965033717180919417228324885458524922200750233745311982627617573822238628587237315177088546047138905075240865266614679610583415749847287759403387743574151293663231086713353243691057112183128588164871325311193603640996511371262083447441702904601625472607327996391009510897981485990565973475943951423979929207449174715014074147458966322401728252615161866737621958558079618826195305881580968439598146096894243679048855130935694814347487805079573769871565743196193202151749405606774150861210599580173465874636344016464011167702961907421436507419171886665881227275856263168721263420582136653991590166993479893911797557552478102953885456981195013737677184252187169241943486780246860949664280063706664822164625016709875363470997738829412671620081022375315309378818216767651633514971953554421249341175253694687374355925931236548591454201660331334398221072282018890929262635622873793931056435651337011237595068828041917561751655462005313662207874141225731227602998686098246094589030422393747252380085472928483362239262108229915881107347150123149898815681146419310045659154956453449510523725282543537193522670464030135324455370960559256923294256791980248816083824269084768273002493747855197128263019044023965112318264948663134495263221957494781283525489621511676429972642480923541908980003230418154694182364473526385920326944917630408613731635118722982410162527530813246312059680134791246881054142332398622709036947888819802728722088415090146784094642448515111582066117981853044684846221760201265094442598375278783226601547455526971853913367584433313739587030573312199730463771497525470667555155229908037859313812698430782151849959283925523941729728871416625307056007968564409708139598251232008863684585510925858319004293525469790189714162893097128262685016895940722752260674019344448193745591627430074419225832849254008690296066524721014007374864763783928449022668120234837953049694711071549218243148189292692527137952275456002695927919067415055400045870149748912336836852753455245708762732242862588195031146654016913967291163796127913409848110251538591389601965809709168952835209104644447394515731026439900630426279433844909996668539838941625591345908520487498463612378347610669571517452561388210041765491104272762285847365080034274678145685558053816483230670400967577610278863868413626521783068002559254559479061341990318635554655189302474092722851730688900585486802552869487699731791033713120302822011063370185798740417856677626796922570768050428955898374235509335479808524149587813874086297583339538787149204970303703595182977620566821340453130512484420754278578122698081771159341522934424982971019622432307817621275698985318747553050911612537091172946529004935540677201077952559175916837719387222569500820201549358108039108179805401007202498247739728173973279219568156872244024199204846387454418544130331772533241582251685541451726621933010432490816526739466967670436238768730631672459048453047363766788967262425552521450368425140031178940606823462971870715868200998391446316364649720895529727820831452580898711212131876393802174304486649985144656598447613176698592738596310028867605559743475001914909563891806651935716309425520936879133799580756806945393110547292254130205577021680449590895878801267411957653062087577228907385742146332796313950427151100402766534075422182623097036557659525142049824530452739545198153349854563254555654847859566986649961308579657996584274720540336730169622767123922252154767498947395676826565150003588776344129975388007307737663014177855558874008153477353939930614646062915196798630304688343641619923398803813038232627114137057771820499747278795374042556564086599496671870980040916646624235670847511341959386340940954033624286235880226198681378031396362912244073645874881870765711831128907463168873122484016697054790538860837146297635031855328899625457256275366122080641882751645215591527430734092508494759617851120658560101161476070723700218040882656972565470548739843477426562734591811234095148012293915218089136548649125760961030808706338521695783197287094984414425421961760490247298327401478941107615815294665056100870575915574881252654577620493462803834125786813946246618959713433410724296245189865395173701549935807320756672538080514873395037624162657162497960881082584643349539983950047246756668683777061529811564795818597612704179917799198888713432988061394619389043566705033676412589298461563813302511583081491819685574576419795541795113623252349828617900254482734349102498906877661181412909815012434368368743870714470491972819046869999604883482385907669291253989868089437310846814920679039727234633015124876036761378690514249074990333484368659809519183544700321171715743569795422894745635432884843386870715536607470499364865992889722955945026743494769117396391853744943329642132018050694761526970818394688810764420356915100858639899698640395984246364186021743499900936370085059052391514146574314139349480922037176637012553405105589224994056524913669359596066760553998763676330080207535035515641403137962791223141972021962826646170274043596917213449133102768029062701654629771780367550058609657185820032457195891712271603744431474708590916721026046892586741158169170838662587905978086585957946648815361865623803514320943871008268453901431576481134087957669153083721596366057621342220272052262197052708557130985413025183972641881151256403169310832507302604602572183412750256818648422418972260022204180515663321403260464031857758390914566592312809516748465716181629045916566145913082089765364859079647998384291854750647609773300015163411079808505514240011655981897090221410515733426658404114219503075032429300783289316582336245320625917926152587093705313951354318949887105079829257652224349275356191396519856116478932674718117484347611601501909365609084094437742529788904513759067316003123814635958514636180727854544762112087624828163569749674028123181999011131852385857760873452558741113858898748711980088681199433169043924233536030740451849311792304195378641593047372543644355188101916658382620903236379075748683937050401531289875768612933524109473811509446206705164878710363970970602963630095547004602523227931762779762554065367145255228740348561923419694574527390881197148651903331494695081927036622865840227213332554235912291599317364319054233976948643127951330241747492558478636518599916914753720718496417156779493464473424142557885273094559339130737247408538180672566418069353198441829121620962701554940222892578008172747436893170254524929987778051182495443599827178260747633982899129022187760273190177621483299438827312624578924892117439830679307021360308909327397739052730033777406664424740718826153317025480132122823497763196307091906472296266541189519242689762971743351733622531797932177991396964331182754106898681114353857075105113417577948264710974769490901909017476571800315191650567641988594984165329221520271474021650141536172917025462985970806865832534198329006590535088750048968074723436120676017141534091524684707477454210611376853904200993730709297788391404692425445504016202859566682146139700187494158244181448911877676796247724760194128478050783874739476277269130852055770235112800970301429224204156211101580161448518234793521090305548041687960719682402966718333324934385591973679509064965927256662448784978541782839478452427170090061324268365034041312766790198715828505908068193665113253437598872187269960284371027667720562596692597695742864431443279971260478716899270872967003448838051115548046924181752313657411762462886503161135225950594545875979764984706725149761489115046354965762199525973463630603773565551681604917977162375439906117408565106982245756850282782233078453579888883684619025582299540820961242625205536057735028232301993608878653611898527501946497154630779886584439728973478604671228878327982081335540595256211011995501030017742004922388166641965898584063136345831385543391987765311330826323819486078727337138815011255994492527679687949064444221582040103918930003167736764709564782945983509307288898198544813786840311024654230625847516144228741991420390297839962321599115258487565473648907368758287771020275022471753485434801856810093832499530080250926695770449333579549912308833693542996159647090096523217225045336078657588747320959011180340313882791260137749888361383847833065538952685284284809290473742582772563686730813243400922647608695241299311113969950953412479119667610681867919196183455701695073688578025582818921834714633081614857673101818649330140681843829605006054545892862960240604987289415162815798340156753626601621957394042122398366637983554372508433169659266228435025765858973064745032894418024529744808287096513836699887655892586804651876290439333680441757734544906525732989337771849350090886203436419067125160771795987299578924474323732096285321851358024580758687574816294710443686444128455140332556236259996607457520241694748530100452233016935652264269499799504171331408398209873713769347957385177046422906921645431950889054801988731307682578558365173434175403535356854142726045728236945346040762680673185703953024453918067588892002184563535252687199027635900440201400634240231730067207154846740012724470901384966175033893299344664135454792884241130066019546827738986386260283186788161347284101127092391700641842429852676235266287874228168974090860610322940058738611149800744298406741909829232098735337680235980800641025610357464092967980100784451347661815488233971411995821204203329607550505992043891417017077065923698457528080939795572531962643935394374577192022672935714825475387619166337200527506702888761794744151089582177921320935396069283277272264543210622105572084810772344721254914522830213630725893760111223518163345974504113151724328511250213323721843504267974582493759611517414171795843299339907645110529355874668958754278126902647586065620260685423803186620608908118554828538184061566848191552128200166236068707222391235558816167100607701399515989550305900386599863484745193296004960153434550387995109052668120913460255236516577814288154040919638408291248301519082913847477343152192353111822965943283148773274015888492776095205268891349275716510971534014938264424901987411209928330133214958499679054633587635987357074855411489363474648388561496115034077455683464298033880720064338772345956236690630060925935092412525998641948813467715396562449478852966357668212290662007488141359887234442707952728023333114639528472158096867931750105633720931360168377547153238463649881720116900908992679004981447138481012430573832582917364017878951737413376164525317366093077602414013485369310260544641946745533494535511264667562867960930144930748945375255957916108446530257373321635710214810103022702035902296164517251778022723573615823865455259717595348929455236982349149526556933988697972935903772452769593311914859966115645697599433244706720208314477825710352597340300724043883190386244473549976525691138412669042459455247953540095319720573473059373932149357763401242264215767547279186000239884100488417907253441080760280458625539541060117189896909170675009765730430940035074042510323072714113731679313973640607789076982286936680001805034190423015271766238652140050037616441526881969233796166907291853494609567447982778305400827451414473594876797581621146938135683421657758031111375820506982621117616084749701491126220305060526936151695599539067805097108136068702974733708796834563800849637631811524873135756572798302905883203671242875059497087739638068318428191856094710992483442746470877624328908486448192435353625989777241505630866619450102151397284035171426220658017570108280274137074130700257482730111352839158253505550722964666701984463240440317326078960436164023716848451213932070746968879105962246104370037689253952363531349397355529903143557601939182860261257674526931787553501057268803602999721793273899560629933788435244359512092557872548958067677354115725960176209868235368008277466824235268108527396905771963313903602837574309181001864736720796078297793345673105071530907834637977865184249432502850529475847044256033900952097972588650936523374137643407062009063162231879724581550278246498394071430243474064905078447582159411780057339136659046504652394058766313798107159838823070662405158391746053707359484636896944113965665284797506310225271353969548491163588611549707694276451775714178150411587841479665818953571636343229482058554461365105095416966066869847626248395859908167883824706529406262292235479710628962463848621506175177760213370139238712297384486156259290126593926892345550371727249319053087899457010912694969636908322342068823564807610069414521385765108669220941559984982291869596028268716928254641575413139072869912078534714373579939285373544135463481608734839747620862386097410079142292791225361752536727280716567294566257852177360175982571444091285231655825217159281991471337008752116428906448983127294690179485534954100433917672274140926880845794258323462591248142071944340451640406558355812824278897542785721229049900050994905548616592656174422932281281886683860320306976357767956599942609856221942872859345244321642187623309096310140759432383869628744145152112158527962886196324259507421434488392694784249825938813583164645001975698506828182765452869102925929155692086171446184773759611596838062091505325195908783319939016547853946325642157671544650269046689155918332277116016297374936043605477072991130839957459457348149946590352752635142400892119923859667618910612995648491748942213815151579895940148039325086668933857269756167888460648388850374489972998944805647812281164646951170129047115164221310131873439361579841210856598133400295754543845660905182804356884026702631418121546998825420750323030377542938034906687340151012875714234259184738198380764483622017890825811081765602397267457489516359846099757798103405053508475123610991976679417044118751854559395841947240063368203404649880606397857364567930737961424929416535331425573592792641297867629635329725578505903601400933888843398392991910204063010355062815731836699981423909606740449898485563843906708964530714921123988950597584382147510536892119058909109882531701740936730500007717994113891059166901620188853835665453398922485607805102145670948744895630825366458148659694831769393998490134972121765433623625250216452268728388122335390899469144165506296564578918536898618596664837417895672141964719872852115186552224645576391219697774535898063617714751992314908577426751949124334212009655933302106742693334948345733571348630897894150496633178128555065867653174924291321471717769801384836339300387419091265783257073969978064345331116365792105053213671531721787893971353107594039336266009884577685349586575688856792825881152571886371717149333022257678634242066806504569553322743764834496696703106787666709709886861582638486899591973881355126059081632933717185865865891658932601310520194029804524284115426937042706287956462411177723251767347419719868997896909897615572237741890685892347561101191468364438849813326208894635125725813551539547891806960490649730115405221672815164862973524842066018855055913224345396628235672814960636942895680081767367714535831251980968985668470256441958928046440036711989369429973810811813380564347574271511783311698758571259919859597427021621011723470170544863478625340882869690788648941046282127908986332229136784718821706126721177759166080494649221503840100912296064671371222681489059241326289820823054510582793652700044421147089724317243658207614942370935084185866442881275442203949680843873013700738390787811625181882168830108902156141384296202909419281084119651405123291282558156874428008578757827933617851409698048720946739307001861875345442447248043810432050473506919802475944590408199337755434412816026087133101874141795440959185887816275751888622588581976775696738566352089628562384360696128508192668749315333179755309067716734127463237646133165908528536813511330142378522011546263524743267153907422909638795732207704324645377858412061208987278623871015466406567936829038232721067963711636168722124032200412921840728906761828578314008278723914771186788029215091114479344618033212114838897487965719629539856561809691605045952125130913727043827274969658265146680107529842875414723566760438372354277134672978813193319796789636471210603239004504467147416907167525003830102123636513557924943091743268265841556101065270206859274080105510702574432066591753969118876088407713981235813850823152117562209503213427596162813342861712944857535594879227234335352033526244960366570216369085377664223584375620758800899221655119794009442499279316024291886284299079639974023266399602032079634199777458631184669035805710504546653024232509420943938700986537371146513248560176513429058186137861112993787114055412785498584438061095491894123859959930974016578036342711764556457443475874564949924825994808810155887906962957902618957413571717119931910504281969349367145741942116247176575768538607573058335121571262158076845833720925066002011610601244609804252968190315272563668925673633977388697037162494250981799526930496837695387465882300039201988227151181544259732388687928706198332636860251818627334101981334549408676241065595808998502756081649335749012407400793482878580212467606449746690689570249394715954824727123413269188304740857930179879783516807644697336698559324353238408276806237262809440887576009378857438848141745792084500781561721975971868009402172823936671303446536616650928224490598495662508111659577489188482395407830066790721685284019065148745089101785092091737247025109409965539948823134321252403055675738739378580919848101270249648345729193019377994321345915513048591395509607465283038912263604758047609531404399331833122816104492368167810848341268943465125244441709709043629297062184187771225113132603231972848940007525136775858222354828746669112441430153628688834705703491994814545805447179235380506221715751092691556245488350349881431467239879001465205652812114374889204980902401047931437879961421764212789988354858768040643422004002738599974173031639677656090312588719893052659205551319783193231140928297407156516348227587885779795627494931321343057273547672498384295692446099822918077056180215765177357587841552649016509264766566195683272997904717086755862414457790506788374671240003430064008551848282849471908277149166279192499751505481357036454607051477807850550033730306216711345982389770954917339599143096214608120422093005849772528086955136493900245661876042191000808856413381083990809523497834871783355960006757512930367023351871495248401271123631905960268108122682763379045167484131360299106044890708878873341151700599456905128024689195859183539764643535145866994355109036098500945887057053957814836022510175343305249881180432638255941791735524609303718918010951996627533443658738555925170601082902686515364141336253356437698596858280415047093932927328807382615631480588634822808013063728372124167994608645810590527612542729886885989439391390819625192839119425393812917633155258188840751485903262617273086916293442423564780757185012618735034462916859563154425136259833024043513438276471129870005511405859950360685582247057009543317587054016708613937763330209244144552763439436204266302951784198564047888939495946582960650005010026894713172059861870084737446071267112873839793698616944972318514302556273333107837110974712373306263321970773262316146028007828489503830174884803253979092087394580404574708531604453792755189349130727413823341155833689913567013649247230351060897741548858218306244769648955780537336270042393744709985329915177969989638326194226248878280448809362605896980660900687514630381999925485882403656788206094266778124711279189860915237275456796424223463458120153931890304281325258970754993673117433005724944802836874254276906664595613843415753041074131475670004140430612113050250485911324375457656557197912130302645590183463437302215472036707375827222211386016868672510495460392619785306875893397715672451186152754351250309487178703072006956286788571745589322292005958007074683684605353345039201143662406718954742532225434689582498495059244774784292970168538045900323027382571434330244829641303129289133218605075239003167497733969203195863835394644116553789900845850865147751815950532336438594976373077998583435878749273821892274474962442828669307975295285348680137927255794066662526499022981572143791419765101516243624860205522962818979913310452835642920554883044157480994569331867557498381360741494346451559958705834692810475538233558931842083040603072493859905693701652385042529565559483906349710705886991387454637855945691855030045290283533056944564632696324101193976761971132281156009700602493891512742240184095265260097413095755694690125387092248089619719354762431020158989752420184035984927125896604383788168285285892602397172888049433938364270438635217057272651564962687909201767210309784270304045979442183216997999563399567453987272767257480234697493029682320797294465098180431216115627803311393904270601380681886604267513037118960124538781543014003803824171347058356529928412712571086906947654637553243886174516809093794112155853171299352590917748163296499896122687401288510365365903368559661885278175199528295983500910042362599035163984293588431241394047067304712027823505441662090454494519227060516888331907722154601497817109052053712016242881677381105851530835969150853670326565814417051185566846525990898640918721937853301717717446849327511617131654349979850769473729266467966218918879138562299081632762016415146736401645934741557409246638595895604416998765250989507532023909889528348027996724326085662332400553325449303331565121779982994659777449908681970229169340383777913157887188883853191752718818096264609837412497908635664410048489582844144505286840997858539235778067968876203921292290075831229781025432463249074199991670428839726389830311080856672043105170447226624618743702539792600448358227486141305620077134077925587154760398532321918681544788218601790312965094461919407630165359322190074785257510700177506774552490974040272801367970638462735369683338932879625113213966072321143269696354155032371932541711752969316452352752052490095481804469682862566799233688886087969265032536061509207611037738830626315583568871709223757101285619337479034367332324133279169975693899289780690135474443126843548464956476563691382027424197181961948469700503178367946890388920005280536123137183358417634304709552405720622959435593370262670473464438406953332796668649043271682034418265773735381543764577157768431370816031448729867940368150730984672980704296766051113886056596986605916064042444931534912469610730524476363428557916428638044004868033210915541415721121164293890624640824366742455629407474870420277420002883794487624362949017051277118827272244437030186907827036999374472717864069394365936301824696517554813818935257337823012299310862726028552240613418141710903232923020787138356354404041195532174838457933903219174671977427948625306046389393960607469745851271489168658062477356833719563398300627525930523886797937404405796415302312556928219357703083974861414732101972956628015759628918562172960100017075510688043944871017613017942051884025813935599941609762253650832455636381194626032303867226559452538399977528148024786779200452315669581508595337955482948245708593433966932606767533869216681292592992672082267954676949621617002915143209784800819801603572291956392444216389913421397900097594978144666000784252290049224709069205750212107178789659082712672741408303489061195493287575328290655859482268814123252754693696125545505019082196156074389368754197959772130515260843797272108503655333372516848215312790552991584596526331663545042908059868948000349549192723078283023289874802915854005411236918539346050484162831357056564262711378702292757588519354876315545442137915528414458052611973598318727856781659132672194034049968589930101391363599781268510896572428630540891842171274249513303524646969633902399184759485333155554984284889080606886696414913907441089409824951088554862744973241118300646447029720467861454355378116539707036832948932059909983833686403897830801679378584747222353756859616086866653629196519661415825211662467830029824830399818361829272142107646655679212262055261033746756875590659463843354473811401303199094544383397269589122512568734330681461707832890928879268057102754614301392235523016200182622443667973197831590204927461793089051814354570826143636904326736906915079729153636054295309863475985818230417757820131118479193019683953922820458893346906328857989507725602888330190716310123926717026396831286741524732486111411357064507707053943882713675707693229520324353170375627925092282272130013557641496706464780568359911354760941994522931673336579594405530169023338370137192991269309817032975135058333586799333772533012715595676365852566974930280389020293703233993549433669867447639850734322869179506577907888500340232465210176494269908172890643966575303666771974900430907204848604861751391493387747880692431735940064529641162325422637024735353343041904727107313120759911606554779149225956714135449606906948070817147253312748078229852896669258240033215676311454111521347138628937382011319330528650702937606624020556951104439997122102857648552602065843152682650748982338779098827352301011263804844869032179257279294258748119956231654170100154869276500604459932965631177908207723032570611001310616216519369105843262596489366068020806766663809712608728474492195264657299461705864654058302573487141152844078102448749754114817629306981149231161044017077502897599364052635043484715960185267792869339465263677440381374339765234955584716904946971572903916397570268619577531552835031590195521497692434538787018710260817525903251031270077570354872039131696376078114407043691985310443116161591384418052136865475733064569143753549337946554695232845145317131435112072647878414786748438541540533801700307926415210471486390876287502662810279171729452561893439520146071734595942040395827309909617501551415874889510008592725463749190645327697476932307444113060544736792290631436377414656107579490791950623171768322353802170588536750537971664448075307721621226832716356782652813213216480866535421122396968916422232880550039830179925668361221686019193046546069089941200680485008536797978593334971706804588689942853140868014856639190834319459192929981512026132955729425581515789318511599739610767710359213688923087672821683401791506795022982306981521251984389550958663388746169385414042379561300749230221866834120579691475498117999707821600532954715708121707049636070242118308457008940326129544195394643143713785794459417916907630688056995184463041192311607712751804486189140467761935446877996453847164144834931125106335973057104836945778445167307997985257187005674327458325641311524069154263588100413959256655049552911425899191380380354697973733998668990788675307566403551839540623583446846497427080543488307970276950288400454757568562081014045537949812184900595723375557322518003143894484677130129716426733106126446620541012744311895483243390366976473774195559567268969702306251368962170018926465355159990688702116702423701775084707561458439077947248272166348642138789911689708249189158532775070005041906173670696710970550660602213346029612935544864563838029410566515323261252817711080134450634211630093185563243449295808387214704315154752064160203452658212062854938615950223377120982311275110777660112360799720439284904154821019916140091329631433157642246428464891016111281378804395310020037681336490323145353053582090107311619978072476625304171986697679323381655484924575157934902319785928236878407453106202120736195868568526573924431221768582798939716095126387572052827907067650713112958487381393666979118547154499416672601078242572771720189301973686221109110468981134298306025993885315057341649042482660635113568562595806542434111595183402119319986535498625084421552614836034120927332027999305445269093333800876577425122073103928649619123463812547331971325771621782450361887493919511359499077525490177269584031499189897656328943001583375015640140278168542161492648179260294629367671557683906968795753034388476508979994596681687383400890540380064577856223969907551317064739051449516063545109259958598127993428424421620558897175030156664324955994841496016768558236135618773775858437804271779870569192854070185110111250271554870746680954906515066801658562014906002610199514432362412984663744454935019199902940493524399617523435656473316704331794489397648033671148604007995986702881029422706435394251556214297157386526781187025437998966120726715546650526067771176627710305523993770150136536335933246626246257851264097314206328645729525745553295198827161015778128415309327571388183650542035177272688943991312201909649037450207809970010341987791299112486117707647512951887233541558063080034324245043235767546772513273948623716684295766363623105467622187984061117415713018906125041519349238393892345772397374289236817622713525846756426201699973393447150538822474907016811070035578588346141128593503003391071747872302094210982956427233515447001570491738366896374222962323114618706975406520747793416240876189592979983570241161256516877951031118165156909222527692352707874349699486605425272420735132545581735795558913664310768425289018196191887510526095950581243834249197090698695881948007058109371964210153518959257030322959903721041274332477458389927917155055937616864462595572324291416390443399283038995581013125607439573944900221329489713331273375670825972007423046203775465201233091778089857030483114607313788846045859275424250704577745567380545032610754916895897764631677790235764838821025178276611562024378091997535525998542303104492247239496450838140077819340986899745729863677668787218237951311154767009300247995314473938338735586564056440405512415779905278613090500232163685696688621218733307152644987351920072250312221700036220637829714907352635797455283006498182206532185542995925867691085375460792618004493171886433170681438207450782790086516793109850124159023083014640841093193956924159491455352827901952289382231217220802590696964871033673075175293702123254384327276481848546531417403173909639573323369804900123991070362217318363165083318071389581953584810289881172813231306327922687822402132100572537871226277443244937119679333519519208491398489265361366427472297639803622393730562325725245890618052118158716472308741280341018154975873435453921373168872693780795158486359159882692246887727699130357764632803414571200890344800649903767461785919127179170356969452951443410430206950545129639745489348582689938142589275031597645809202523309398095759388801370608282040619739055298228754305100879416084957159088001476738707656957253375280018658711526836887004373857123200352971483237389148634313251206313708507456381122684112883895175219530968854704920185836512734491056550743371255307991270421263050459125143799223360073812439901873873739739143797466187175137638197009955916272998626069124099697911468729099606767911733278370508648634323128128595558899986055412514712847171974730770971626534641592557580412687736372730455075719886349030815865240111395576061152520246268236198841561947285981571944485985159327803535377174846280537741121610068203045230130742703585566053640070152647783719911733267545246163491267400494503635438667054288646758530438098568243389440140020003582390721122014803661744655432435558688802260775874343706035912435879090707084620635198354306271336087084854079411745160020138221692111591338083703909770853418043633311877799921217322958159614721728001463362686029783325970133500077706672143447557511205844529532990070796898237219616155513568165252767611689903106743520269892248540036392838056001233330978056464464289769608597227956271449606739607172447583207107658531880575525349153487900966425949531448016340808406786478253237099430308589425014700498667499712792695957481117379632213510908507218448707839733744971577211289822658861920285474108427914671352778657065124041621296280712139352183952745111130814851442705040002648804944528309758205773537343274189571527886004495651960216886094461040960444632491011088671175712584272784565452389789875250986819951246748658079409437123588895195644886855412019228453101977058422614547271219411052926946384158650530729887866612000776172198119155370372932157425452176577707137409234578277874502111878277075670990228725265360559748035088920116004760601919974772377809496808183857791412587951006004389461653716088198009025080891555400669218228861428030887618484894251773852775857547756908633563203525940481381589601145073394594466821950591568854386070454613473132152606826015903201443723284561713281220519211053583575024098579133774694632396558582538155331830311851007639330148392056648198130549588267987309425226358060766128856123555846917366043119527539882467868678075731699522669546002315509457760466983097918080173639679127702034126926290949132528759599569455063515566554437643388973927566436842889522608599652841026043051080304275458885842018073385699680047944527116800136893532124946164134655283372041331891208457219682890917670460540582835152738095861568522071717255700892449836855566327359411050586110423793401532712393964809937556850622689460140273338478284736673299011140186891570539451885788038220550286897717835292278300187557615007021904131140257280814423258802622981449653478512979276302460004412349888436076617159106828158600105458302320413643438856055479636255244352310940592858195253139105769507254968792894444280227742573174629730999367695418423926114282984616419960356162792548795203579952946443808585183357501460405861955391245909082815611470683959772626408695483746655895302179820226047379515016540270372630595881327880721620990434688840260171271747653279085078025338276471824732591670505622033505620365842306316055081393212467091226866231785794737235297115142009108100284582357932604655114348061969595502261592771061799797714739899855658129900461974150037474536897166150935353507676295249020590523271069798547104001112873914524740109211471776364295837202541917465002575477805802642866957574893637272105754325717732708950854855854343674210878313147080294579678420954535016442430448266175839882330865815957209560322050726452493196431414160643271120061249959409379003987126816412713093449529752448711560116122491166068541412741786213900766665872750635833343224542324249949262050650470168751526891956615305629397469758264700403900156259918475486920138823034836298113203477001809548692997081564491211467717388570882810076875291820310593117786353059221586462547919602866636007765515123235755956602475575416668978825158123756858314908546694525465867682144953752416866934514113376489013373093549131149083635035019495518453299455386680650168528912438365765725632348195392695713438729253908575540177717349763804337983841103274556269067059448270403930228189262473041773698716879530692318570498999138412377159782614937917093814724763876291896867809066852888069891126355364397100957317447055818700586356299368843989205846778867117984225582233395017505821272267280101276569832748156892858059580397987606400882363573552323444239978027188319933017115982529375292746527532679424373334263335274668083036131068522921359709934312423545606712794305904525734535870000729768006156413898282267600240922630262222298458158215376713303963695581030762632189697809695353843053618693719844486884590033506617143415073614962573828729694519380029362994781136137433280222239927739242159395153753052369021118694466748767681990873984193492100947123428431437982913778260766667227548097984437160931958306514187282540532109273528962849225094132880005272735062430832210174650162669783968398996926460927781169845013533635623212137256389984578257382609879317927738050117156425933470368485037301090725045578583172321103002607803262448034664126400618640716918903136263872076779828344454298248106641817303053448241171744894103419143645323302461096851163846523075532010717505519364412246410100108916373273611085169682222430079081326179200397503114121326988855955115586514325313306822797255203055507090637803883696304071436370301268228971892329184784859521614143586252271450493680872810986723122233435829468755367356053141015612570037016890084944265952152909266846070202764746136075491811858992379091019493337226750019688724923565957261769037017875945933843306087302962259503019649867560761033081943696020038431599806550943566049637766448657352846376362284895029596092832662680017550261631279901243653332614286820324272125698073071834235556278965090747240647167494079822708254799417507308589927870836326499655632112583224262304713971424656227965559835441029120525815603141826545175285235772624224012067016867269243668521935676081686317477015316469335768656196397206851026220997588444076688520780712354917650665018522582347995221940427433173150462639490604527644063062983323464204157987736229333455351817105897184605483336360578355064213707677689797380051430781581182179518869961788609736860428444562643478694068215216943889598041777468099890971158556746302340565917290494322610290851848914321802026625715302994623052840616798513786290384979376423299711426915605226824978408930100994294388435267622570139296497882425919880814079811250976826205525134065028798934217180716672725208074987924006567802694275679898452359376170599596456536417226972387811735581763849944777413287527042012134696896065157998942481344929846512712664526762125856148390474958376379575652366901848635796664065071546869859906135440916518287739752100731509843058769136423739827811187461569151982995048880895002366567481653768285963583892503355541610391512760306494270596684923686380482544637249001755756080974863651990896867973564602135265492702756116354642573559653985913988782352690719505088412755053647448931047022044053178189076550714994004722476515082797995423981223470426163287406876145072458932973893905596882354027759855335440657878198899075619832639195791251743094399063329585348509748301802525887841522918097335830088872344948186337077019199946514158127365342138135821173189178662530341933356290119147312440964449370674534598179280273629028229776800298557632990051710027842145086987143191318955806665442192655337664360530885954431363772361047838328983247553777588915142551233725067196332571753605429054807432482303233191800512381775299285918682600875364938772809928245613539023229340064073421409338875119292252016224246549223720424309457303466666045634898173676395815072240971253791821667160334776880015181376248354820021583457465370372995314063130776658948750627261022950072891427896411098328812490719973888868888615607103771422161827571224376033941698461104597204193689175661265684887701996657927276306953435102467175814809855905442262188921580567782572776331223355640266344892019425328885671428915987469437850191858189254624778154868547725411523741844295397400554604996796404794490958371154241968442331665771499653606944995327894637642759831620461782187545475238926984839763210853272254392744261548649287318540101005632286824986132620431559022506577854425014058075837178994252352570866825892842757129695992923645575880452965615387101431273576324811593806962293777108180764767755486732680749049648076567715909626768645553977406049029315285966151277151130499904062393937606437164272209548130178951809417177912748096416973684910984311157433904430392692661436932512092507364593655594363181597316511291576954643773471598857859624253538818989280923032440184631225129375009492369013585558331130929206809348538875419539708667803012736938620502228823692373542741680600236250793491513737826167408302670409593290677931574519898901970107964517536544908060611792685608887955703450936527172436444868331871705179074392122143878861375995342827845878777334225908677404791378874657631936624850880222835344044141946983176865402610522244667830903875302732759183243549075952579202395012202189783524778210589860387073326012453762183026258507839316076544916086902295552742544223042153095029124372045524325336013485325437095255167298752537919836636526402492201905445605021421845733363004471453461858413758863013026989095353489483164536160228961769660872380655050612325622372353458189103828482337854741188321436985529661229498436263859708272462098542451574449363688076287480685457595885901177089510092698645134059879804806718029280928098667602730053271804599820483181524585086487343313399566995926365566256645745085015973685179008513810373573050539994614578965899818190947706186603976016559093448370124072295973751804102663906011945208979254304698832198456428105131477921179558865243431955870010521657082263398856455927125866296434821749034528500138493286151659432846106337931733247759525221179873303104075001799985135493652990990834258372647772183561251562510709289179256271183038102118403549171287342839389967281419678991664740715817003172334273326891694600130120714341824121228977630319995280803018817296210341385059313414789541675436975971573304048639659791126527990267125484884881840934799904162225984503175631918726516566370705216545365582088799542029834060654957969877300559973831680095675458891274019765619176078918844072353518976775966269833220240166186799911261415224988004508797382526344316194722066103825005033927051412096756388858292634723969231707053623795914706228047065361120756271960789096280591102626857314167500280018414754260366781858630174848710759153902015674698326919891917532058730387884681318284590227119175653544230101136423585913237973086117635693390694437797901812885543426474210544888234823589316645261427170609840983594306739427554509023327080714965750294435580205402785004139312132659034271999943479472448900898642788859907390781722387374694136090752157811804666550173703084891842764097004264732906919723054359825601393249103873683266183178652918672437230673075850608449340537591222992191897831352189945220875606126971750558255279365195037249863029379713483061938340884181853806154135223764664535444843161850049990098279521290616863522298766473662598196743395708461144523440611926214626214056511356360220134969293993541814996983981164281404656913197391142781267513722471707054124824670436565965622874094308932329997400255739960524769665998100397214756036305262880489545008587665883462956269944504420503992819028843230616254557170273121143374057066203803557625408019111687354214109726804142311114965424956685381819015061355106827048813762031441416218020789068946577689327134170439805878495914402468350728747799153787269298730760765736106723887691795790281424967758104297692481975241771887935767093545956302445544664198694942170618603356466315964292718129864781465970829178393746842704800643869923878196534383776282526983143089371669719783800022011718997627067362555383635112197428854939574295649825820521015456220690358631634602092572799407310908190602774594304988423874604553197609903511714083598626202006821050584248794833411717863792769034357629027021949366125854036730411854849666556493119919629122350051953010837049226381605254000177190819060158665062359492309482654716309385208408086322340122691317455840065576304766216285110371938236611232742696492016095788893154858151574277271816017725124439941529416992349469890373694063423315837672527903361298562601413701665798976458031681848593945530715417477412824296074748914908319176084588928577094754740277791597675187383490954922680954935751183318617671000770134139833853890230196262340917274776915209097568413227832905722635504568440728835544798970008375358821373311964739348093572991292191806594689625021564167883627217278208866933038533161907273883865434011043578067899102114383377993007988033141443700874844135521256249388156539083492591811331556859180255732775723523987717416849046056449737532136578775317973625060670200381045076310388515056263370889641012657093599780594931326017862367743072572234530748228587198307743608760616386292783727019154703728388371095627741935517466271813938890943404291290686812085419419222161635463536759975273146398516318327905289114182766928680572646510720916838752828088609382928421511004028557130283564909861039094896735204928573755744950809748079780640193291922463632966121692937668626458045314105824404117299429597311296303043384360121223813904913906956449738972219602100336270349573776886573333339153380664288530302912117835572557368751015292505913294718174462371676272906642488089450968865974927840523491094022315969007551861320609592423822065427877547426430263983551127136944461563443270407241490915476789286014488591750267192336493448074903370489258352595008532718137556565508962716600423110521282883208979615770755545101248105002769721175177260118901699651827756290235348775374901625504357918664886969901924254771992394440109497870526105108578723711038850136967845501542759511762877901802179881393076515052296510292025180195337769828879795090681202820690212530330013443434282683823113864957251067869563542054696310413055580242986302986278082484414728975816043889694311901655915196565980251445622853160919293808339603627332986007915150602537538553349937253279020572464073522560825700849386473454494015343424376948974211638583755430779215423558263841102298811975841456903773380239043662384008548250974384689381883876643495846747818191494690584450278479282208178839647382877015637010012595670025161795780229184347648671286453434655470314997124973780556428948082944950970652823227496096074278454571022984899445822540752426685564870224950640007670744273769663149079142887138695462271284121488774615464366603726669203607444384911775593061494969300636084468803872271848973483206726746132072788254691158968843552111885033020975755513824461722075488416939827032012020561962084193373550646987016380072618854304654355269791893504818054506591336102282206241325369210167079558454372380591545764328850806854018405440092294915622210943004798265539743468814164895940196377780692930506001979502997763300060677940303297916038567927386347496236980860553585533632444273768746152308537419084156950192482338214269046680220217431328748358522785679513138700575391217175742332645506924666326574649675687240411589956442625798823162371205076229902234035085013453818492054666100239686504037865394742511388744137950347655713808224006381518887607042854139603170560678972447996834737367320759918639670632670480143303645773160398110555298098922502244160938206499930946107143342230199657966152105550661984268145757386684669019874366160581269909390174259719985187089128088446179308945954318068513031161356180438580940573024268778549985006776364181193477848768342285277445476444780243995166077760985708033084084481124946020013944267827582192808341923293073293271103615071312912354508091788202839319511403835652592491427076367648145433594845419767204244872312881245333224887415951339412397398704886850803902025410298228742398826527378571616034113085351188036731055540119827937977077594978226419015761234402681660458359717460889548006249389598712665608356652491960617540147827862741741698566582028273270457931920811331673829824421051907731070406323372035662111118320735160917294177781445230113841613463125490383926928260726705471447961723420459755912868685905767059099334810017153555756373985678417561524161469304757243679957445103401475703781793320009888188920159885040416183937573482154621040038982995453658996233771707764911698207636880166595588435730042662213167438615079739426389004697140108019633171305778187215008941297460589579256345448024433234677004020673902920143374258168831696275574725826435003999334682028447133545868305473695646516910543218819959014371448685401380588278510986064478217270672594696092617331612691880035890895179143417489714919468900968573141270404716330691168368354541448642056698224870410230357973108255553234234522683769282178629467912394933777985248528069102183866001813315549606139123590476237983046075801308560616038974445908484941692235556924281634408575334243564072470644129009681557503168734010168085051893852958106183275660675098923117005032707038034880411179181674277148149306662125543103823460696032733737950464980128966247175222965245857318818405196548207888018391499952890332312523693848639695422076637801972466365494126130387933507559671871692347192432340187015048212639327719963758988271878914013295810663107752210987811150010690188092237260591249240026797798946240002303629978665831732349625371105727784715971699673827547687234010286902251071309089462813535593565286213490695550243532948229917287958606186956333925287525245916116552612265436392872315350072491705677373843619072517278454790254778749089312570379030495028861038332423965846970953303031400028724838054953703005311796826824752041561429307630264545529929660924544370230079879542344159240287137562386975229070180122404823909091384554315050730737489352206934281621844882913817534429205208108453294621504056471026277201015339368958490331601887085002253589831522856294192892887596779315652126663247904569242991469456442891922579241912217108891662350795735011923516230577444015215378469793804747702684406867326411148758685627407582045415475557950265960540814765524676382068261016363247786506234860683131212113118212406684473442256778473530011864704910947563680294684626725519942746630487508802710655683644834852035513244325691823100502232555060003772900418153123054063990122009811293254721535347762081414471204110105780811751667133068770684266518316353964631774236975709099973075757907990511981707116199410989760955506744503501758045430678114083873656572315814169505192107018243329100881476645259322159251498945843416678698857854665647057230582472346337778298206267922138554229101385664740546073562590049430208130764093356491656652220898243968994188218796651636533978905612019871737647431849675739251119775957527197784986214819446623584074985348805592862882713552739149683925294225046314912677349173841712950339357651180940760732267301407492826228014404587773017905266077727381414855265150194576799400887981890823937224785254234688602476004448313550518328412613422149050787330949370739404167658233098317742777553452240089360082481173066493089371638498717682564771832127424897693334489751936980139961148573073580738304867311862233519122928136394846696199679134600268941462196599718227725906510566235147256251188268497391201841425283116849249779987313359264233376067849062397608840423184990358188131428406450349985240580323415275235282314725463484875689236741532015206430890584028520399110376515958411973598404448057338638666806158054275952417646579044526692459120174146128739631841542435680506699690352961560731523169727071431699514738000935215629022126154242998248078847135778784353877287463887928585626982065977476767864654304690823798185434143594537943999692583361273724985222549240429276665963378856817030937242800040442047723407994754290281753421760593665831985009800991628944829914674067013259450391450680180834083117498483320156847719323354337663804497201620920351923464749980998348704423779606760395810022381737970472860509767855820805638864444014729181159280731055505432591570651582258056008082373141251161980459534702408089831754395911551826173510473600077335684201891256321622008170852825815241230954791757948836761881727292453851648454208884391776682328451347292777798186283751089510769352689859962555433482416324602693791494592240058211498470952331858862079070591285853279484732994220828070875181736164744445044549318356109336169333042152699230325270335133329351995218544740565923150749945633027578505138764568608556985872953458326323531461462397891045289393414341843595373531537533307380361484963451927206407116342361669707545172129040509675825536482785052184486999787887454783692860851481379125634330094601013020543529330753581741640033062053621532584973826624638738888965549433881298426251905902779693873624495427367252116508876821612061814199045655924045319105642443649966609498481089066841549740606743190272994300730813605176528059678967952252224673480933114349466638441909803015768107014643274693884276430951330486341632203839586521758028425773713630045482479975077367680973803542270606699086028622186302565070185145159729432249956328364520580913573205618042913012594615919626598713842656196877230069626897489726811582246460485986449415305480772126852491452774279450093869905932284735194070533596794801684653705619065430303653798464573509638071009107881556932701486663463192457476341904656958397430504712286665630628460060239647361003279214155577545507042312967425059443676518979434886627948595169083419997837710292807141328844920558929898708561053505385025002038880141415231199368214100355948761990121352168926567757923142323439350377179950275844566153754995356254019893083675769778253067025161734629318035161239312745621879209569872994416998885689447381093718420416732603103693268012958929332127820465870956740143381278989815850597505341265549850168231826133559073535721267220618172796928315359882446337214110960958682514556835977684190302265480168437536376144894852200246809465140963840671849244054521336364825754510403650926065031108864110876006084169215727031360659271178617920333403646721804676481295799891302864668155829977080777477310362892978468795395316818867650587344382382081803182970647267814228705120130663936578391524567793938026167124887558836089036084160079386881785183714233042260925805169763105203858160848331125837681939922428930277382692777346420291494460139766748000977415619560675237531868353674060499539446776218240150641942329964738241333583673360137544784503609503495240248435217857147428819140707420721420627117522878421352835909859904039331583454581791057289658945791189880238279416285079033777748742652417838782507667337277145141331684997283664376025646986139883976911120879273624944657532103495860085912623323048436550375420921153297750839009936778092062534709421523814308118890727578799366226147473165984350490795663269628557489503380636487568026063727740647303298992866169125051348853358811551737899434895368027146877129641651520041534324570819633199716764067541848818114029968735082615901257551323121817954655418465836988972645020670668303859587240161238856465965191425906149562207973107884504475650463472474603685062706342209027529495062412814080745906728558212950403302605523357841175337597152215912959798902515553627806985007437611415201786529936769597403681751581458390924138749922749890413912113616337470388268422232895325287681198497268261606082467915994864105196936421319689397779232072755164084555400461784322363811439235254017335643374278983382330290920771645731602107768500319813533572360988972750531342975604259081247114527981857951100438046291626135330769122392950226522973742108907799633903653327055936960104795688885853646308154184107897634783489029159516822589504397040791930913825359436631189770838704104078669740247056953015153165537606193337660210810831260178383159648493798987966884579441495594143888817987259899581357169456027774295087774378829069162694054442063804318263820244959064983604716235440271748845472344398776405728608676731251520717349863286167587530289847160338886815982576533489166379856280319656571642905769678437184155088261852221030324796500929016406701352838157923107251575591784209025137185225144688366435514621486670809747567278858481617752970011918345473401326253293393179964616452409853436991825607553486312798892160229583281823532544041564899580727320129293371983579384796540836199776013423153903011299715307503891848258013235593719195966374734384065950703385618306274804616696741110777087612565248817509177418565463474853749749103190115231494158785817801685420785330316066646013819077796027551259049516294328538236040051594393715528548506383205060963416249359744527741652699734499367017980858628046344815763174796161543175869919230217508561582570073850181368153071082977141198677503510805984201684317936774310844209298520558919577205230102627616965767113530276021275079272048753857489239464075151110481328409708206853427895700563753745554005838006585003991057771632663267704095812477748401879318520515573832391472581869103270292087621464514358148788670019703779625171618884297072668485714136585905097085864488853768129617253182610641470343189436941424310986227689013726485829894498751647091190310679843355181428026538661237363469739286851740849240013121661891021677725549755540373038670061865488190740744242757869143756760059325601315179705850736313590379987940121319110600878631882982177078885056072236700697899223605484947262224100915257185391556960594538646109054859423648970130708768516314669870470013556232079202432625274781421033114330325758118217818392329967921244146934036571104214307909240429313606180724479644724022357712941423125610846254131755238396860174858085322596027886732313353831361920058242061335479816552616894698937469282288381521626512898428095320710682362858347139211533701013447378938933432881707571735102435169368627612095709526131615187461672783494891109818903475672646381030658426942669021504765414697761146172483355258367465809853267086410851626364292290976618197828678604533977691497410627713014304130183566280137994317544997126624460994975541690315567345737351005599644645656744857929229436036394429294295828000410774247122207018944224548122060852774497951638761712550663065761808996196307171794735658738869866281681125785230462817866365997423877530285763975300345556617516153590776254406135214592974576390130269724104850047871826958003090951460899122923682634936507251955058680295130795053529911672718974895778461220724078702550403673968806065907063146007355936162346528454435539564887327424876124192032169345944446860605044738168853611005365548953598413622015391498996287435394110062429787698799867492314543880866649319079379477395947514423844195507552902960427239738557526762657101263754541705326269963441324355885127422361441163286927482904068538980561994339247125255452483848617518766695715922821564421904852448054440711134075208115175294988290207716229473323702185395118758696573124291645121618072490179886851633615318461445641204014952787092311192543025539237423429380869284619338659912408967865897808711780733602771446134590313520921679400047322050560550244393610809575586599099710934405698712850753791170282888492761414744881380793144441761491857519834147087343662111742523929094793232821123679669011525750593913778713999298014329116743487846455502292480294959748970900088489736294134551883594368972142785110297389956303468974040959291459159721490633791379417661099321703477612640210748600657048818399228736566632272209584273787911958394781906817994967148988619196915838252771888480127572568988429972454011203757170827736673804452725715904636488693499129904548858974117813221920876607677073045999805752357015350142440485209172789010544866317790491734711033526892492034951125790566485316575778707853960663595283130666983812971756602252241166473193165136731592629762842461940515056800502096644292032213708210167928478358064708385567948520598133282512298431934314174352578647540273828328839089440205154361871147308526893086402945660178560578639938175755866580891790519284684458106095688198822315584533113329934831951261697183139875446755814832504074053556307145587707575673567568701435242091591071177042675341375351728668220251047596266321678174961456527745828790590979050871834342115522407909650424687430955846228566751556940978794404873026373232247090437892704962377310943289245029870161159054178820849960175681021488989515447875780842903587887872042858201940585092797259527120313115053882100833113666493461445280055165836611616564398830770296628394621243776645956167839881380354628445931254864791222254879767193230624118104384148254644863185687225657076109933016243544549787075680122465530853820088866445781738291000692395817924563463573356274831097908486765657874884026028190990071510772084897729071515692087826316528481671312795238927375691676120813868156368550949311300044572606148462353566773424561948538179916527009317295367466933582185065306686163746564124143812508473390684669678979017021455711073464254799170270331062677961789026544483687327520354562395557403549906039602096460932312268897269728630185923740574449793521698230731842192050055865048299961206188773042999478733897963650487258112201603951870367719117150759668344416759639481308994188365830030716290030265360533660926146046290822277696806073310748465568660159466686830952575071074201571813345183228675782329560685756901375987439108869168362010354479062551208547441057434833883682447854223026263407152290197929797880797700786800419596881879879876553755962003032162860038189205181833908219664515346168892218390758874558441673678912693030709756254563791968737182475899329854830704030388853541891132569043790640376693798264680376960967428038860255784639125242041362076036587869581793835958880062233409173664160355160806400547805644935406218296164821598156714165092647533286227856549491679620431834716850711272024422734015612948507365654346827566879650377371782920039332614114067699288429525531222529814595950029201560491350168958008039933745850767249129217534874241842853394439914255661858985297619973025720720889079465059699298038521294536499099952441165738406315565659111692370715988317176226142169688081901172312283838526639566325108224806762233418830658981549135276812449515786013940005558073774659465291256180823547287384813111543279909490490555976293004312616657948081403995182011336964906934798373504028137692696075335952638191113313721033160317641079593708344252041379415204892549496488237198579168741855775815319331004772620018392478410716880360788577692224491241774451398439483532549583779754857085692268558680525982832785438016672689733331382118159741430826938752247759601278981715379318276324365385549020249255025729994697306076779266228430254429488795248031696225235314249188747943581091256560712614308911611257657129034295757071865899953912031558336110853836572417344400614655497843453598248453789772228383464622832016499140409614511503464655708029643446224552599424477179893490949135310872415757571794239178533291073615919296814961819825082205610526354787636205859438744401323912442634225047967336752921744724799131707666293870857399058666719553327044664766444352043794747301472497932072097034282065808062567892940754042627257036366954084390442121666709401366200890523020980742867019468687605125577632912874424986311586548136231310716586678736765513802719592354673068080338730977545593980541492918087930374348200762736676700002336128765004798663159749992543733532118579424959980886627485350336014249541110401247292314381278065797920818222082318011137767735499433417045603098379106294125607069593883178939949488532238027936358572340629827989447614202257592129587805628109337935009564861541155566255259951940552869288910150193392026458552802370583463113154968699494385506877299731332541979367098265151879562887547355655974929673166865070122417610161576467360396691941926061891619146987430462421388306114376345428161251125921852751838125655309351353727670371559809245797189669025669128655520676916038683153457511208222746905994163485632108577198824151832198686046472258891192976093008207034602732157160026976824561833026070678198854085128291214457674990709532320200184318259205651595866560910693986151968620847708708458727700340051105477792468453307344970831185510385167118251039481974355003276076959403951806823728860616808187299345948528056067950658446017947376318598718967309244564469423350050917262345221838487804806928181980299170370281276113783001117741424884545872953942712237700578314686644839371872851111374988184498556468373927709836782902611203701491563398264770672076980472213531369716268124246129351846734199488563773016803408161661508191898968107657583872718288480549895843001531824716846362344217482441823282615694345202326617291522047838371883585616138921732816142447371662809890059379075329802238584028792789821583685735131339588459456293181637195125971788350742527875670516537799289366700728875245775158891060055753638417608127305032127797567144825663477236216543246526547287870961450654359173975563784000330429713705364146197442387075546881715409201403912617214517903726261679652103135108016291220364413675747898356661126900746055103817891128588091931767865686884172844044591285490151797852960227721420669508405157928375538536709023786173061737047304294277228315647867988343181553478490676607997478350597293836826989484720583352498918015066585890619612758432814309233091730734358232631628919224044180422572270294343046541482796770793694325653130640907144370746203363874031297546040061345860446954893097166821400102722217386041903571580992570508593410209839635747157726820596957437280627073465298889204077193845426251226858762650156841144422239107579758548670567137136672606890860037611363595750225212626170748037900073663200271996323042376688326599679919421925169844688497229427333832804281712618063075530030558598904130598685208931387698310622264746592510473545908300289984341394340425150995782458931578916755797189107305509984396636222035421310966359841935518944653867850552869337185039764667101664568728200331146684828894724921968471951758507120624183949993991675126177998546455118504500140171130013979573077901763300751328432497521382210455517514215776239465071592012874664389979640659429407212132154247958976139330386179918263467810464327195713736343945353552838303902171108232805686617358396547813650187790881308418934920744427989142849211287774267348268728333993265324687076941247118452140681657094138964211781359023444207257057155868156134286190331933249607035217001191078969543342574207777883039129728879729687049091570855670878468956798695269376742517320786570790880921462398011025008861035820899700448530718814123600472582676434187101858150423814009318529690041844359396225922269850523512773869257260640148180925812025789791728190149430085379482132580460869982733559118422053663450800658698019680432923474224672051384633405145558940884937873246408746626699626373189176948079022873337838474917753667168884429049571341140335758750182473861003953278295141928854895662096174816115501197340896814538550377215805460767891802542649204049978429265894058866087925088478341477384221911396047870421200244506376440648392179435738741619240019124393086767593697339691237658419989597963685554433612310479660574837481042754022895882659716282091750122757220718835005026597214466578713774272300197344128949024213520612032952780245006782857404196572261262624872066973104376501426247295697856186509911269131887762819426572710773325704890380182784611684064286788353958997428758267495733389151778599337682618765528313265181205154168722076759193805936924361087984182731441648417529942026620435028186527370880361585605226267773025958211660934668594968428788014278336297649571375968942861707359088359234746572563351765622188973562193965120997375903365441056886316311214706474772530333034518236507381355077360632288706977751276276235152201801310537752537897259739719891249398629447447534006046598662997765565606398446752320654100236717230203270869863452772309477546321053127239699398356148747894994592747076224115367015311163373825906900328700528807898351013518866559003413001213145800128037685589438707061070553928905158972746727900913292411397202342724422722579145263880200650658264969204120724470064819899419879134196581150988472791906541159096336391871243192916965957950940025217431911941983965793802548463303959359285871390410153341020228977471972334278395817410101157139870421178126363169210909891956799075050333730474325733262511973171199617399196074800488004353851872429307376184975642663150560065159050498716058165616724695930465938659340285525586015909134642059479408422265096530741171213779501437047562254685018842755751199546525782942460077578485819778153154167009505239861511284369258039858080082087560637698082790819328697197650065292204910731635685958665747600178020903075062087260780853668397089861454703859969919590557223093233307987074509897274824710482259519660816040057633391593463418313549568676423807796349925359474437179261745337396353464035917898427083904285840777536259583490578793585395648249709349371193083781367698787627692274633557667203602833502740235681009947300537907682445470828236328063125559366387708612342125535480459773120519993151175321737366428429465531196847598678881078889734526149630961334288318438294584761349249071952003063108284219765230811540279261181800536533324158175542431433039787166093911845339215423789945002241293305727749018733561675739470311569884956912278464702095893507821325355667077612529854997037336103343170524807677318746699920068307328910820964679880774655479641795402049270348675036193806520749796887273465822738246989373574581979257777400492985731049770667767643633294895393627606409108898763008975345375633990495654617955472188131430439479309583743640484465154420290018104855810042441900178138222021114449355976953174506775035042767730227775883396019790163393673345262219348413497492901470751924263061310538979246986195214772202384917645895442929626840920151263015861122245483400847449265594213406942774467715716756034875874663972756201158438067024943522150027149730010215787945685571680130440351104375252039613282017935219516865009606591404412847604466900494142369162362486914193834058476673402993043761847846486800563149315563599713892731469023628986031436040052625939292938754576211752534404859560598640402847798535546105755485096583950293831242088618674225637672198681667079565329457471886372352365647483145032621767130070623466039732667161176096301632163269071227866039775385888500723993850689652463359060026301135410777352965321184387920535872208068090791618001503935343104065565800363250945869412200739249535145976258819706384690992603398596823777398846778811747333555238307274564880412228838598360745561985176374282073584794611664226304779117391018353703372245952510917297797444248249086942501507301157412282734064204938213100017238156758579379753823266935309061165521235022049705866522391253026614331520132466458826986775092496626238339731018915271581617818979005967497369108732311015285344954095351368497477644336581952650537478954904607015255639944684325427685057348742132166694610451049463056042035086537109494105963595513261397052540446844717745085552257558397005257809135264084754839883246898963052529458415999194143844710111492395966157534644720869917620153242244845430307764458450314551287068392831321027048457169601749641595431278544091577122973176559714848056184107167890952666878232978875921727924907758047902046295108464531584082424206368151581042314684701149627014155604593331772298305286865411482424705272888928189445150762281389841126967745445518345304639539953067282600868818724924392491230525721291480495244689328093925011803063398390314201108785505644266298803342824985240317048903504774329358758074997307768213188379776561952289009373295337669570425648263580329230185675901879280035470522211570803813215988299704917665567873392793956980161561024546460572101700343434337823114989275004994711323387001838079341388753083766485892294933271520820882051242232255285697333363071740615514006208794808855565531069338622331609995182380162603497962461019676719204086766250854348484173770690362343073228189528954382443816162177891765786789328462576721771688607574260677128325628226665694168975641074193237125212066834823759258334759654130738895672724107010472662237204403626976722502937827360536345178783909495860591025875186707797639714743443698588308283578017787128899595157841882107885678442833014795880280655360593093155062212388155354988052919692207004910165176311783431758965825515356808654548790819438017239408406010030024988474263599670800330447650190641204085553443675184682255497677375154455629274479348690313801869281308870857611914315934387990069291473623557560949009795962836059996861058103187239593507895184783695443617141258235104581323977225300507216647288293812019257825889106060369120249041691688804006907841215468965722343483494599242849539385987550747853395281972768875508112863305327322449380991734484722158926031584862967320290331608325474786691361089498508744470619120151502091368790463140645935830497622714427634356994403217014769680997772844014500942679314803681441886863974935369707250971711700637163296882669537794502306673569592234044577454498975952708248154678109226088637115583335738600584486664713980303200383460566903336994410002576184453302995927272688070764648213643496648626064704406245473813308690387695571051333343517242456454296987090010437083358828234519348757545342325742673930746139805647624904031358174186293448944176294015665642773736886436331896034308203861353312606022565911685787734939335295917311550608604029205813720813286338109448644070188025267510597376547746830832626200383488595078129502755925764511351838399771523859068094459680995339974217317309146764727094794732486723051131576687122758850911311536391851311816942804913052731826897001061684069209827162935419205991411854657801760778558386941557172018630110637213583610440242398965843745390854664153726585187814401943924415620714309709191334791789740811947862506745386906908872712833751683769057265779009298210849298604780257986537290972104248940450798365806135720264647026027632634410356814138053504234885660811043300333182643346317631087086705493833409164867639970840253921396232503710926694098962886151970904822389019496460477689137726395261681956011672763540751853160483030273871459707140899256810903439802132765775982321708023227150897526553254754460950997361920387147281522338885017591633970159346411325831663927643214232493201499576175558802272788560159994235741662863352755056909105916725459919206457136039629812124341384873963829331928568161962145828781921469848988755612396527650375051500933959968514928416902371507064053827322352424102100178656233167792387072466004913046084060792274862288210804523299473719328336214210923540161794922014741447281445701229487531231931283869940821668273682839556316963096113523426501012363772370071416456794839648226134032371152796571947816986623371898986932987903348854673021019014603866087435975729678289653293075786884176994189468212272504453232259977768683039327375947943156499159661286909800073067072313346552207600488739991665091791465790687523794278513036808383137653374573847314885491801259852039458449448784265020135241082063881475584720125443119345601088463090657237632567431762728689133298665950603305056440751319812515953064907580388239606512542466484775870751750405349932327500525516399524608087015187734504626481158395547078381832668970107943085751217159026746389515465634805274948927430194184657604656219149843993715106277164470832858934285159240747269461019033534528107687109885573506661508086683405929186713777637457748566286009692171115391256083702320415609664090296696867248513038119593587882196329480421596013697900782751604295943018655776543112103238350440462494789679189300303636888017714384581585141372784988697601391876689018376052100073325943121568486562828450856758759797713254415889360744231522516252735267007534190631578043424585219894564068030541539189204660777008416312475474212590399962360687767195420649691898697839539478919588859545148905798626960980391014687270618701903423346068884264002189171178676909543526775579533228074373421079617512954861321024954895617729200547810534423951070321633114820263745709427271809526228082808766733422763084379928579010308631093390723827615467739672717137130018487421493420133954229609004907668126013103336500686561044266472303406578576160994906910152660097946447607663146600191535838776663159032211617125848334016525312435415986417427349093909018271446358854194063824115460830817787657827746847293379775206800185825409964556204822640330419491016561904980885701796511220040031001709657403390676710042258615399888721102987939406410614687208237718754977303400893178571108897167735823612131364578713662625568326480358695434921175684528466580193899448238789081403542805864863752138406098290784533236372991824778581600737564068494411765213080965173813026478050115768102521795835490465987635128499961358615986659161124571951019706855216408005291144618891073788615251034935104708035116117314094529665810508626580395534661040579573304631743471617494044660666316891605754878479972914163958311750775863805950457707710075429165952362177729443848433139361026789278361190683801030647344261424687554994189461863111394542273761402665754290996892540167367897312344502325300142151854234230398117824293983652273121237979003519955124100351732364211232634414428507530839092262196026922493218734100038513034934158367164836360780963092739458018983498790570629651146604852080989090907238178402969531679502447786502819169478204007712784067303149920174837859179483635251690677440631650839039196338219423124469090240230583356137501505838319501849239170824415669064352594371678124471612143341436258416001910194281852043921254514278919055355697712112513498213746922208148094877519436760978296179835325493414484299941635665612538762910262124262192318761303291496775007387008369596210596305293635167419923218115547121223864006068771037464784379582152499951489701964853170005685436066480709238296166702583815339726358455404468621453667550942033724143293789862142142469893817931314456238633610732818218680676194948580739074035804561559705168889373436034390821783396720046599588461748843329292880817313421646212075517508781831982597415983759241012399851228053199261020417078514805264154333595077509926068673742798831009730652664426116779351211697628815902072695527961084207417618665394913568633189355639804300767700127732235785625234228890694181789274780735184303965183442988233460782023131553071873874034211943780020168954222061365830683208245594718779314456975136386889385594333823511261462799964678845009563121893852668680853558389470082742520524608551926219884637107119268200075435034410763263177234580176846878769839444314284452851063695826226335922231972831760375885515330880097400456312751724203456663979388770159778849746787567052837114872312652815590466424738735071097464789507717277406527403380670782235854508442267341021862998231150752333581571154721688433902323610998042128054258257699381614614562302062951271315809899818662181099422068491986411222926572419894524477195188717712712322435538810841688890088093491780345595250709509743053743449419466615014337952715059085185402511807508118863469982368177724468454791952233343600630404600038296370173980048047550282702216317932014777198495637272471521079220131601388935722238284787228399552272341514727608307568685758533063417571672855451220142863816081793168832796155308378830904501629515634602199049809816751603538445882579799331357639043549464583400911017611918667529423066576636009668021404834897436919877826767574227550947590535049694148985431215950633479738268616749411910436936433857246116498740890345522406163355628724667711451631609538248730954343870932446995779944543215968991062642550122517192925017153365967560670310498861426479752846385673872083122129777492714131971298806074942108105693558658598830986379238249232367520227955190347088628913160231618921797080674005621304494068518174053841531650146419744870463231383695366894099587068135280142020727833617788788888838660306905365258664931418048030719444920489227498757287618244102597517828492140925182698316000507476036105545565604501207429815006698152377508789937121858177238442002981617539274866111401499497786149342393483951272237930904282958998721480106506671752062539210885279835133973121455425203496910872720988209959745831647089808381142754386999636832783808984238434932888714975965125997214895548582434801823260098763117278143109779563515615935509083869117633027690206500826567106590390967128241526651779715794243541724947965092516121891159428427916827693593772816091929909278526938889393216727813376871303943853462359799776038311544531998188271023115916610926854702129583450794917752509297268692688310907188601505952112538754110377362922037904288303752503575926401917342144228478168047791835440721309058012107538593564171379652692465938630322102587830824524903214478188363693796421503911422090313934019967996179723063639337742920387633796458080190176163047513559641652232513287440759721390737167166857735107602070877972304288606563430989546189351404803968229646086600134075866050201024976784074800147665800589001149711000153088682314046904910550048882234517250849549731723257289632245953038401716270919055889879131460511803773401166013875666719249431511244898951224902581843705343441685853280582041045627843335028228040459148321488173238334410388782602187769551297059694835246102194145135795587069999919808905627133730829855182594987265742493615309747024062292426655696325944903473697035799231825610431314315740355877798878490427859647686071419780612412081956799868600474507459261011934561067351203606129692177322129642293853107133973196009581496409472117646812607656455307410242719543556537707450143321579788958572640359927470645547375702908556067051776751542351650760833934827697766449497678205099373422876978762144655396180182495423283243859537931833256452229130245045846899601096591284236645781999297280380102593625477675498963165255906684069809071080514807147958196910958105560775833985706332784629893625149229723419390108645567882961033429345205521587922254843843374082538428712418897747801717117261680123315623327424476165384997589894436000558586692056676446142361418232385358262892085474455859039527059361091996984827627364054166134483023318334898958978508305801191758728402924163481623055258726409197722165408065170620824129805174158537959013953587207515274021085125332070633840767108066909373933674918446364088132753497281119224675750021328624143087909048973842591766487484745451442060974348154786295784777505624031949353371004432273224500932013829042548952324884969240173417271113937509283404051391884132815126277630308563718713154790169512149238908658705146401425076032047165194611981939275466068866874262347343363022203355702006684455090428443311391259141047706611077655944580749330046469682294227320668014821455100144025778055024071733748544431736882087540934610862576302503896291595637203363613357027625110778861732720722235960963127189902347549808977274361259717959226427473912238256976540069482972548846470051572218262923237410317132969827939169376162954833887482591958291672975535014522276216212676506078261820313908444873572587195918871402461561848939483918868998567826553748050536651517031987445301710442179757320347330779172834749905014040155568416845725784157381281385979432761404559286847243224003189932272592354474784622392715308213088201267616172954240537715019854425168768052306479950932685390483225724150152232219919673423096726731947749356806991894268069729862884478388118675837342973274590584408834667182848000722566594450884797929276541065974000896067750718330107678809013231288420774837203211008176242058802835560020727188067791334874767903890881177649211089532509952685812880398497550443558294155756542251147138511275836394826449709939363772525698338055331602675911189153480939333852230932271515015503671881091871134583517818895209503952731963159466016145591884285576059241023689344787302507955902969990285221547652054377611075582642008141852646257347641994922876153767332704932463928103568104304711026015255617805915787294019637726750663056715439123067784710974867506461620256574132578839026470151885357135469708327456645546628268133298492730809941527978954377394678222753135450236748755040210996879543663967314331101653275698704185379282583838250615614862058794713958161551814983354958331721161273996110371795836434076974723276874621843078576639385932564470446890629068467251096562109529023710096006255994309985680402767315437248799839047803788209539414630472594815235648815747244328990918765885671448051038015192424609298648580497500651309375679440769626325047888221749563930458504056706405874306935710758186040301242766095597972121985582065189395212778035238359609656249598053645819430519802694902985360954411280955725977389829116667520149585748465715252337015561540318278821196995049230667757438527690861788983245119291163587556800128715478872068315927748145649187369957106861003025835984915801237499184747139953346305893745666017570205557483299773551926896425713263210400155659369729340277561058865854949973790324056244856585772884993145647499696237754284149691073520050139846382238652908190914011976415621888090790418072583903219546605268836741291754525770577399245249010202711137664084305247573639078481809224915151438341407556093926503726746808201399477850516603764020077490038494913254488511872566172360917212643412224908344249151427419723822222353087524152013043086744731564930671221587167671850955387503543777512526629234812821311869398141773098007373377211413991306923499141512005785511925179493361571513273477161740976221219081583792656377904450221711464739982915596868656127580742713475212807587947586262926145609468078272917546976429261545731825751218503683570429093826129801471567804101449701775015627696924864111952895724408889595571068903406931438961332381397172351557505611582953428852156115116026565032617531013481011054575757719251073486559986550000306543757856096893679170359860202574969815512636650815877780464407616117684523697022443596183663197831777707527752075115493172102335602147472676833489450977437417130854871511903381009187844283067865635472533026862732785503579391788943063046925050774469391714468345574539948215636870654524580097787933262420380530153517071950280075511322860784327661184839308029321610455075688008166016856148785246977935069423407225814694896691681698668428134739899595718862349977415552890710177995779323407867306354597231321247044945066682992158755824214864723214198760216772613466221214650416653669768967204154927255228378005440078079264078723796755992839669715430921714206631666304573269870797048518071336672326589061598647983759739611231746423423116207977429447943798965402765760178787833117587915322422860364315701104756115379673179714613797883635240301250882601244850269167487742167989923200240229945538275844550017041356326996638237653642036737617598346119693934799121895532715974577692828240754121156721347640808452435925370924698852912011014701385751860694805297611632429816556857238284373108765250181614972254523156182312683537139831365846415960972536579948783364867062727329479019528475923664570452056039397794142436787051375345414071735821268148945182528386976141444290149522525952730783440516847630421579518673727452678063428237332715359105359819874203953474692522145359179532432242500903153648742455153364505468381832965139633325684753305591526405234767270705296122924124499288752602648102941554792131536740049912199468085395092768779836468087197494648655963818226343066201428917597551824082818848500539859952640535991689561794113859574750307103955673724851493971068478097260177155707952574484104639597132204540669692294760748702635521241535250187715354832379043088781690115302242412065974759718126638518116405119874479806405549965235799022469048377037480732878486083912943456350201694117539037815136872134818030078818957727930634075245787756905184148582627139277702445096303450516142083618829150070916095990132922476550475740613699590647333187987184676108141008036868341743176666412894282700119972157240152896572141554176355985179268593668081481947306133681821329868851179000176019967724927613492476337889507866817270690162303074606384984093339888703433417576533107905680970635740245694235732107044674016681218082904253603067015340080775368860460039313302230729938526798050866992446632912925565055320483392632352380982889451660625649397681550687594037805744945531421307647750237695506858040433303667415445604792581880503906328766835883873725787353424534161127104978764483203424056794181971218964031041815325220318313428117302669602628494599553205146294430993481137966963279958516616293116160848330937483767622672103694200298741617775305274445009615219876481620918068891593242912234494155687744321551770421981184034178251732381055446272165281942312107333769865908187602624645456227954778127879042442403515312475766901626827684880520925895488549421086898148139943184325255483903084057906332389413098402085282168898824141868674948678077658217341433931900864089097218320596212423177403669472174064522795025779649883460413720854450537732533382540758463860507053730521166337054679725875648959814256932578676311792801579043045946672404224405728562894859839505135490591785612827264669322242714526156114143403129054021268050628357292629216707095575039933388441959841289463218942694195513489881863742039468140720276811200084587462708902158121985335832449620248155535646611512658331886027000431883955024213961311800823447851959911675412279918348022952343962192960260070084857975086811124430703663729182434616810138313422378285965468357288808191186374888578117672516169553949722773693957706227673442280948662956941181750510718828826912704561946178344850329038142599974204247580371973027759293430567606648298045092410812020607167985067602661396382301915992393335532239799860825319203439856207853382446028255804380313876981696730005809995982733517112047907690160620077234373040085243916414267299715764565090878534581688041652847825803213033439507102395236982648024852951017256739827012763815419468850415817844399042771689625259967859912174291057148690339360955913860033038040774451787475028507312305999419245076367605849577407000615489772013341089138623573829732062076844265188017316633152202170859631782245255353388204183096806188777204475309764184465350917714798076078383862328197723596180689923567834673728301427205976803716249887502693403311070912553731684016087148843853471514156551872387116158342231131852855252635605245068817453889796302212929658725372103085133200070894324887169761303583821484486117767451314488573103729242484621181962605802007650480277800324000836693950540784251464638063903189931600544337082366661014946257091448262467771904179972887714594145048018912100908457355787533349244557590862435933714428410341054215421433859394028007097975707901382444389975651770760873163535551821546142159468217731414659996164679275401882754674105441539670314897464437890216441822751134966165911680236676616380877293997647367988888735523951545468497494876268357198469172197530437664993703273883146017094991042874371866384777831520559849585801769761554271356462917618551959196202439309972194364246157540960971263992299386785697747698612090235820077870949603994770673232360827723495914671453709003477175518701432764620474752682182344689125966338631020043646919685367842194918245377190908791654356886673359370860758990636733595112581236162503858739190781915001983179919412543954848926167302152262501287016127086518182029003660194232655206688101231886691533151107643297445648308513515247372653273915947851830173662230293779001392682162716160006486021622522394926395750704756732129710456077081242674448113581558779287831808379417325413657556339877708644902962224504916259738865938635061959586132998387181925612773589445624791649868492097159851705294786454944631655661410279458345617279114067461675418244978011541403636333870741422971746425928634610410116935989189809110046876711098626927433665912641962404103733849832758018036859087112523642840042418603965727521476719769434180434208371769828657487365608623218006175210899961685057062475208176716868462099354219271345701417170037882413529661953985968191625423819608071958817483776834938647953356586562402461702125808929278425741187784879772037198243167383726716603388400190817714365142222300045845993608437872146136337723036883627049501835984482995999999720491408874431292926278998883933643995911700851109835414178497638089978014183918236995937071807284950617161268820217040098596330483681580521850433387156910615281614059598525721610066243206282115970187775338426047655263309749109170340633830685065871060159313313545355954704899896691727533300554068459592942342291617469032268413582758092625117820442192679702970575987231390797407580331684700910224047907194525495027400425392922723719715590594428307739961271343182678377963110094469189230089462169222971367836665809603351079126136375200007367647569668495248534637154854180619001409507462516416289951272011964922506029934762016776372424564431732987140744309495988509378951250906368633451459763169620493549663274822426607129317487682375284773388188399671788465502295113201320116257457730023789350743746057029681585708048826412289250587653464721692860522772411647332160081007906217634117428487137172812235052318504619303029901604586454013081361483058015224824926235843303967470749302406974848732200373452374622748819361990186298356837638435076368635833523418465606348697708280920921904468358544250505768498916010902928163903151222503112141237413009560175059720184540546655572293770056759648490383755238785492504007730397869476374945080909545675705252954723225755108725323419922657399279401664474952549495786615768667196793313899113676471636945100812572588298777131133637984384876903193809749723281495270638159115756987350289789847621884372461828434983690862655773194970955901983058566404006071830779442040528400196050258115649694981303734436815754305438168268869865680414784439698729747623043103628547851736513827898775098132165861914933005166283526345303796587442910284291740019755228045158028324474355823948486629417184012154002121458561638583950274886548764363274792939450426033572769673150199864391913663531479118366529553764172570554049618049948707845414004093663239283175970729200723161297004361851902670356692986400409616555616180721325776134554536444309462699187474344498007093232137537687309058697754324798351054032659103584179023198419847108717615560141247115711137526995157874201244860616911505140809321499872919484952998924361666615991894735756511076891223680841298742373941277318558104545986559311418834130808496598833402566922395436752511812141968270718132426671521032819463373085848133472539641086221501923406220995072820620141795419108158498424111165913146105520441677413470566017422969437000628827325035963473142598334812941466612638230303499299783122280001636881951263974326060721516260636917638011423917409537012910930524171904200376294934330549777407938419731449950346706786720608179289842008891863692537810685789843026038725520365334358072815208137441823904120598399201987228580979335252041094051811093089188408581483111466449254809630045833558374099345607006983459099609963944456517850866747789220459848375327243131106271881859000380988622911430232987876451746560607809361455442373173181753732712573211564673906754695114537006145878700107884861747537430007155930378241757867129956061027961256524966331641620980266206893647006268741415931871899001800242983876562886034240732619532779287788133284535825153292215795198327986160910772384250481930914583558926113457024383282615785735610549423694656348546884248246969231762998974131196456387421919504518478829157747950216357136560367551547962145334349284144518424393492550769334366330374619365736750206869257186333045935413626869524311431623437182239726598797406429618815764673520621653216533857966263686391070421539481523624307356313306834728149613885949807259836035374941294778274958784373511628168410293432643113942401792407734545771948225732173580728480716489229596146669488999433575946237057499239224956160720262011874607401546670210016282134841381865766825746735732618026032592368104153780760226496359916695827747932625051119227896526216526809616290698104790201334570691022715432230416227246070422167375358821068315303130838129594668376821277657553304731134767312897295783661344015035105269007782122870822277277317194184873449139824378406657078965991755944248026347012122438067525872183381425574088524692067037655653859764751069387074505648500544552052651473887361351208644579335907559562702155265637294408931427331778262379468292421105741271643442393901585970750072602371986626304086291166046847402620149520486227335441210287749262455467691104476099895288469199424927314967028739109320857480048448273274366116769557223186960519927259803659744916719770822931314405627271447620768234615808759222975355746588935285152595058288302590366648846432594125000333360053983677611937372008705904045977926788168280816360102384866494181964623378711027591591569403596275534079334323771062307694613007656566628780117232734047679501508624208785460492118572056947581011933654261874240664097581167978986103155528431948974879582818953210414711693442473704044515475153644367449080394553188496428548685940229828870765306912435168474667398167745436640373478272453600943656364487465338263314611371399383005713346526317039319392821892544928621022486476765078601756031344374783532467956277124599905013969040025353640381130718547628928007902279283887098680176448074728400997337328603625190270877540343350935612451532432138048007546413907301180435109575322244786247240753995974703645183949189056559326116926596976148928286302919820815538438411618890484573095218003637131713455232167399926284205939549213741190366418682901110454924206668677789159493183907685255516626562865110238671668678938200816575774184673744040534387247554811858693108839925564358641464790282118418991359863708923460211616140306190218275968459683106183093776174799322980754195383921114743945235457677261500772610008157588853151184452152307381299241993863716564667258653071940835838269306307090207877577920859130300207880220959951243800937337519145295373298721141350770112254853090471326629025424441510747446736520959158650126867630370679358233282650000001752666642173824737859645523247597549586752077904642183421890047995567173449760392499814061216069173108140127156686511307942033553269697313949180182460433340387596410460951413326020451664525569858828178666215471110789070860546359333744254478294041232422710270856978130014897725925170423486131207817006914986886901605094303523813104863770561175102881838608628744488336646848342285627874960021531663696807691700786593049220683598691867834901586476391230532100045478662345522094916624676391562681941903547880331571967974100115370443086134291779107524621858140757486907201029349165249359968665861283965367135158687307810582085550484929152661967422711167111763995416616917258429342482793349023616506589969494912971955201645615317538388368763134395816053212536551789030217975027733104027987957363506970866965491769952268321204303203528407134433753392910410882949494519215996975274513916651789148988253345636042488488635695846486165730728511567079998177447025539522732583179377413867961735115527431226321314002974712445337226122295569096400215147278048409432779629430389933146399631446038742739667985326561427808465191530165767136977224226937292003511177778182490298166146092978698515525703290657845404348677171722280310794501318120790137054506576117487619667245596948083320142331213613133474525834299734327097390977440676833243434356273175934339586846505468022048590078197254651442752975521745608502644876242892768501595305241352458934997503993986040353414294352547417554397292609465999554316332061354617912352377775063042753450500573826306704230488789951110054210941895221989119263781282767372490940710896814996236879549527356381187271985112704648912742789928532021747844653717863437926275018340983604928588695958569412411465273618678588169828422826818852081697973224123278258997793580635065432040034702741137317803957913015783543986445991755675436744883529377077955722139792519193374159583117644953022201928444614509793408558616754704876016306397509504660038013604747857719782064179826979901479665788540378610828502885001415667952455105763521992343386237928095029944387815709859355241581919299621788077588154946814157535297451230663478633256224896655144944466925172551017495890709560479934319629736283428277160238314187227442061348821660561748855186298226005460488224606146837233219714914423262422294847268426257238889127479685454368627131793848333525516104505984235267100903466090811234225305578271992450171149753194084969317177748056404735279459994510735358714556130126163778344713971453996350675200327279453039948260734707356871253506838595358101228279258428508024912154632463252308398506389363450123540023073679482604284934341438114680732817740898610432213638147650178138283522790198703561069452484848057409270392836947489753279756485768014304999338363841960128460589145346689581500118601270704071539488999048269726572135732365040313438156224056218926660304464851580914170208187851755443465231685906646875714179052503282483971013788051576026956514265369466908538156619758379948841970095716741048530506300191857100466905406338894624537993826150884859670567151328714800184076522976790401136108552312197030323994147275010484169209350651784759508607818903638186364421478875158695718641407167732192608378832842096232765850221368730464333084278730884302371609090814878575342398931588152075880506389708111858160185268612850150955231190730711887575455996439144790757745421206232087791235215732917564321066939976020894367480436021283223637048109301210895176653788153058102818927870188930696332983028389902265435029359916943974305829732174227312955365018391234705856032300163038160847515226297704998223324432656517182442707534392596251295548831805934639291907286390371202404687439550996648235105536500854247100649383696723213523691656507335251525275225021441734282020218442596457597093600734322012497242663123585760887960597547756828144961612838649664106703198661999767899635079621456652790619042009886108104014166911379259642301614365361480809201789697019427173302439642665650088671382537895930348368798686030764612614550335427036340784433016045033940057678891326359715408773682050978050372755580467630340285946020976740039471059863286637888927977512338210550928983027325187076643141603929324330110028405656492897365952810828336941100911718928060564627147818092636583076900527553349162809311118319381474649916366332362323993268143208492349765074638626804963462707184858862877318113706354205556226089274031560365140598984834583697208186637690293738012130548540205376576021790782363246786107648404135470222708575994103133230689009570876611396578238972487050095650667581106679903588963369129048404698222501889210092648034436205663824582655839983919324037682971988196355909469849304545573011705764902371288477332698751996732423333191941136212053825976051257932203216343990092055376747457253459901769067418386106526902477536552299835645051601495349031232458665757529109870829883059319992997455009239566638852328545015030617472496732675529629918579953037440482526745078220776654769780522880682672533416362914150615262973155575449159312080135697068166687197626158275747319313030441829181226022427108625839146821096077181823447571017977398109585962358918076896236220366350017083984008442029194739609102473558351303087105952446776291601161856025852777078056263819826243314490719244689049781874304806546893559972626067254717960779053021987464136412613078996563734964478397960827531407526815421927774987036100920940706965893372812943069730105538077635092458009324241978337407970757016341546864491037056792678222779782679997730998705932130021492263428033108332332903914823396353898125754895931537429638630431280315147152342570810577332500152417434078378844676933576195684982871008239756597042210485700456440342571986406184025114359974063307354319528003788066770661793347098426013507572332359186349245998523889008571491758431036741606608132808546577226630516698562851993058001508739308440051198034275049261045264943557893368136295435854540335214701133532660662942221461669448430352418355114792714635244182282846216268714183908844505801335507638535562101346101092439225696684933934650899467880441363986334198333952945422949760185802170078695899386225057316242572967004973540420291468761312044765558180411425694947773610457583657167708910928600825865558856282197554682635257843642172726396685651883267147524769659712444419924639029073262690274953590736931175750419168055075607262867013477367041875883439894738271481706033679854342949346158359560368265998700512288002661846421160530347623266943401058047319468044354613565531428065112552105664533527970337577354251765386825656859045520511554393667673983394344281926739705553652296984869066826752635541561922516371084580234565513568432064034993648827647868207473338099020625436052206553950917996580468114572694161480148934726681090552952102399067780773899188306041453759292921992673647945721589623577654503885796558077339514611867312988735175344584115479658712654328488601137814839653710041175978838738732312817217734555951867975128128174131711759483912194120048765405337566296324162725500617758150262691636505426382148023729967974257375241968081151791160143205797893113598196111006545115371646192630912852228011557354753629169767379242454696588163233628743688040106796306295301081866783062995128707566618716326415612652178424351579430572372327569631731238212057822490645577415350391490830714507999518650499671082129400552150907934587332816300488362591594561718402795473630777161383936098878622735798180111682560388537907087996906976477743148389858616486801269328010380657138278679295344243110739473611872672238132733802625167746911579707387029549946230975232425733117366292619100696029815693505888242169600324224482959260776903236181762371754079625609693906610556875142907264562508836677919980281205971656124418133391318097170952201257361742554527494452500773140951199231818187945587538368853853954442636843411910713672679123369457297860552470105134578058885674020842463898419506853000941372916834715512705258372914371419524763953597489969446261694107350012277780092297292382768434128395614270625090294786823179356904983943007967291748842152690353765315964951330968789160814953140065019804314201399820541593872095485282050229770671645747311612905302533655089761084755566381145912971997987654420560103917396381011051542788534484426791584473980988288304490588366945097169881990849135447345524901580186743736501062703989674034435858173284700707605440483244159893244351228588436008911018253988299322784926448122998411394963282629369577738528716062894076311000335083854498690340376670355391186225473079168819222670988470412217477124843532539694242342039913091032626743969772610558459336961572899219738876890674028666429441722176739936684246297979545557957269466759532405452545408083772563271644862749695744264759691436680219358305129539111708648336503360020545291403574956653184456017271283878455884878592378417563775511821437356917647269852245175980751882928435590448310459828323710826949245944760361924287220939505644917591782146441888126396966582574065553504198987806552369488845200118697735282138706426676640039830116017462597673426492796732152843924425838917609189163517670974938272912242381687077150702018470109994544573431781328756673898870506371974566388844324061680873392358099443952591091598345206937820999639782677029931685699336387646767524040948251529122283392553770334542776895505919372634733281134006521593269853344186966099242597517872154421001472602825628873443648652077225595511026037385870437009250222420481590923640003937909229264502448274239316767906561600982759568943183316317241362612662673890403803043362334265789382455278069223471019445337529232591017607734774935122777007833882977007228098997250885914737044815820357507144399500889603856809981403031664527017110120637155914918948232829883068462028271614961678655176058978029516034802021627816643192628058339840163714515208773069610808611431725205920130297242804951432190933386936894813330418305383590628125753146836151465792309692167681386133678201164485141671989254853992682406923375871840976618003748947391815724855556192015280552097583836124467365335256087129082213638146068545867872837825303027282107819629411525631295966646378121749352118106703213082058445477385719145681044766841811494859371871087093511985574488454803213256389551519162937176769274427362329947436924446845734615158459808520435369497431427554871994423105588199508378123423579691487592173615204244991648521443206360954240838218892052193432354971015517266915193241543835056512866636477472811878223086940581815238410412465199236555521029790624228971059209028406051598003807259389674572830145464976616811004845992151324032033247974521239566593193292039328348521876646092564759100693374076004059684846592430442879170409937324646735473447490821519659927477309438810673815635885925681994710153738739274340757440758801435577390145226762514668416942852011006201531731310640436459330384314146300145008360183705600543733605584980956948166927923503443517696769619207044025724664466013176203958896947717014350908547339470359785008980227853915716149793297798215383291153634621051105244176780956289970504051655357935450413504631686305943555724860348222537574843965628279817631934143715549510441689466318883763978223346755616396208863637226272555332079943714830999776644048714780523163017235318083589162534574932242185582264528658063605160581457950261580907466469340552512735492014441556569454049255558414832871960650582292974018268927225617384870187625422761897014680691623878251817568922442922711689785946273414920684743776930067810150650329248545605168626489740862284315049937892067945012009325071800516032669603479982116470956004694865716115943267840332686270865679556724858239113751001322742595837664508573349417456325324034356874131064879075667197031573759459363099676436634499390724213161858650158933932889005906654398347239788186545315171687034250420794245436511361173577212545405528808654758548136318905708457212197271498674240484828561712273609431525269227040660273335368261466509641778089984629827879567085532444672544260326145318558378577344590291240954953555786207936775857876748268808065399959002645055333601117077528615056589410517578051467783137692030473717301266260714609431000793140461551280387000997279187300284117363470702209627500797014728394542436071237515690533621433961834654504917499383065776504272805904591157785800195159975918604796039460927844196800741654631887823862436733877435496652473329264501607242568046133080892950352284588325902955928585869211089727123422459067932815367946136759874744748895813642289161088518057783060626073197521699959017367204781278166503485717112933704357299507324576908394372262360873877894956406726452155452345556057804860247578292227385414245073808897913730901092942962515418009941392031535568132466693182988603640693751767451504442258878234063694710936982812325868384134511144779843670243787195746825537947874510221071368987946391248323653566222048778085643877027143460249831646096267609697032579145546828736350643375458426474834570292613728749055832382022827815301780264584156373437399346779407595739389092304167343783373404773718319761815793387063453437032320236481116313487567052998668364922239038350921529398311970728238469746572266258289651673931253041881659299636384665062358494763662706172196952023263561455560647172939677423495610566098784849040078296337460872017209830454642812650030279152888314261007010623722393575456578994808399049881069662244577078150161391346346608978631212115571728225335017679246547233161802994501459714960096816198064365256503366640335862612280705961214858637803009389811513700890587031709362816534387017616706961717864449358430086035283499499963710124072066334146402061935319706022526680242309149141164290741378804694967174577750368774134444961579183617156405018183719596292372871610592738266524917496322875228909834374529211129035855064320844036660674067931348709705314909249135726410759848697256394871551733772967119398836120923802463768321666872932823540632319824256004596803864545074214956750848194212238040669547340942063328828082844518168533852974350165459563449775443024449784963840104746989820718922877157112706140510581209201682192950396755103199533653494506395449624844343474433417815807026475715521708818299963642436626993649062379393963201914895242780203676429171518325329653254486555133259260872912525325462131699189679879032035729972813708410489913514699707859225636360086794083849294227648178236366813834663891111713204733644510769363660796629982324348584990416222533064689689563260099048379860199182686426493140326824936053667687675431390757421222342161786905799536159297592482457174127248844171760453308945031059509736739809844121252417562818546115875816446533165784138357891583710063068035564000257719837251320609415464340145580163806199794011404483346058379457168157722458614717475336551136519024935016565142212748194588107360937587966959925526978802829396092869741584768233671218803184757002888405450165605784499515335279718705108138671182669371476530199717503488496313545186470427383430822699484776204954492077260170140526700378691735453982500511234679154629593656701214268941143061642467877633179572014124360451975059261938718622444376838156973131983911426190630103419264899274584517751758310023841482006241205456539473830707811485829531358245503838583416744556800045813785916834328954949972076417830812861135692335497153889153572695852251247672977632281129603598897031021456923128932134048904876926357805474710303469811128580776426989614435260862569998012245429346162689738253134401825875028812544954321987778326600563773343418054262417263708616731938632205314683999005946159429133745886165851434049973781622487357223266930834794578690584329265312021621245577111290377424807391843556951350843085776988110574731727705642748642331976792823502823848849406423654306270985086562109361027308493131937692691506893968313209295044025996305964123157088876076895102635061925447085370712333820737221225579081999309836167572214798358510691968856336400161476464047084960621401220575909093328821995385609214237018717586026123643113250633710902827828048919617603992027838139326650136799717047935283461733929612065075188539490496874868796117867898325901092040646477840800016732203399536249380221486410856382669549741159430876465193324729988632123668660839551109282186175781731333555742182796917970001614652142678257782088885159033071675281834854962546071798833511571741891967037795706658775247117108476078880497200498085648929053489093125424183277239124991896231383708197206046051398232491571389338679248020038384039714127003274268518840132068523132106108976096999593752191496189903204205361887042521550590100096868092512482919034060530695867276989959415214762366129082018371969161117014380954700763759175230718250468343954432689313553196622593697851417139753181970798900782991063152483890354165425144555664665518664197896355241467980623402713742978505728493208836891335727912367842185142844224204272324153206130433499927533788007062341809327086126264367689501003762541988131851791393912536793598909642194684613435264573056223626275304875733060425173446565448001991326789583966416532169818778669738362170201368671410657125546058226983257005482436841640199580575509742146704798767870679719144423005717140611808624820692198488215404999700521085966604824609995342166786914904622609137588285221330213384738698976587792305578169449429453187689234173866695763019975166857648694374767762013205271207692805926610009874769639144521987503223777743960389921493435315052901798821965929628748188827743147158326266041880362306152984320148299222553629913281669852768375236093789412749021219222455726227257475271881906182330380624224037762829527506908264837249806101837158188003328655409790045698859682401628241031492245190735034196803444623930085206329207716583677308700521262816437453331671145767193688575274305921009380244591541455364463537783493693954786104097200845264922278028019671390148758216020895725910075265532074327425234334230681563937735104460209362207969402273110476587949279389310034224027761092657918405722712568195189346539754480886566183031639411674012260196891952312435240169597681656911077841919166449798584882522340596542011169988325934504665564041474381379334032562936685326589286910539707230467400658596970819964397789253744955582289457506941532075198280592259899461317783659493324613906951612997640159034849304904168652095204663470818777859741071294503905839211146678889910186965283562206229259044368662616621818353913920357146693161915820176372828348342715125152217491980675529311720398647452098827630090721936991718109156571057249578194588170684206346895592719819115852666041311873794363432530814517884327924916241575466025525054186246849503212716560494567063008468620492513077455058552660154620501244778512771491071423829478885182009277259629336577724044482621594563419153404010134288762654760833579865204134109630417654178167848751976659337902150173113706938266628613388731349711626500239694272149312003221193609101245481525858088823059021797623050797951585927543061155040343292877714902140319949110328708065573512631792559491177090452952578362610033208022929525520200647923922826991334635693026333454079088072404853769241687979229085657266076151074431534445933224772138165590685084542452299393152951639071531033318426661636987480715471147770724664459344385808688772796500981242002719074714683661541740439601087874297731379369863130790994657151985536210512478797021332623168487085685527283232915497246737473635686817281839695278468848872830213005172871484735651563704346585262101471441472111655356697474731921494809487316149771322628735482144326583221618289894523583838395982488931131946956810456641745619410279057503671419860571181136069811715684697551350291495997828023931637619080536370619013387049449528245044553641659946549097561118366260567689446051397624226029881115413250411916432390328985306683590247717487652657186095789502868354088482472830684569117177852403098673739800644639153647076155369115425348678111680635348359629213729622766190384599567459747376249735806454644751825925135760422666198512425557683308158572715301969165077016095262820905852707312388340792048976557070602829736364293933690015262574158576797158072374679190074170684958115579744230813893381161601006269012627393677835669664347374557972484202374868374114911547804693173826310152006155670955563233755642547767623094398723212537869103780047923397667649749702631189077507451710123067488694284619838691160953532703203069641918245706795551715476458851619017314733478917430349294024148114169646565804712549382400211460075368210152895634569449531420144284560222261110013634570477789997190054427962522503746454638921690688678057707464857631879493607072113649520514886038501367252939242196029201091493471122486017109765596720935178492223330181577002431482655528905954057528843622296671946732787544407770468202932399152673963754595247430004025699164778659666831883346556666560764537274499876788215003811747964767949021682234458835854142066915765272089163479158383994633410896088672399318609264233200384269907615466343115294505102681706266482448330769840766812083870825230077158463814801041554456739662179259830822198206680774753369167729988569761139504111924032686355938885925454569364422313300293570553812022183197275173723629428550195193061397937577035147770119947682354393254241664606864515246423702942266923674511303863944062319537845011420032109954369082977358223756873479635089520273042302917383879220835181022301697961184508658515258311419023294814243096712196406524560674576474157054165617721832288026894821555921594274580790602958107845141207889953552327694012167611609535510246687846634475578234329318240331865664282135348053948011492721931536742440976018397916781656264097640587652393408431360359531057362666480104226550772778601703672354045746041349985051206348878272415237422949001376479114974695941434424510087805368449864791213448356842702358974689415570415191182437553403370083200229812931531507925818295452735105028937635430175865668779608659379515084697527383339990856344973121299584140323290836109899571464681650541260724561572056148223265336030548327544371071166333712401072940848663122491712261617634214163436347521971125707880869557030177111745950766663522768663200283718634336795135942350618436310232635234478595521240746074854854306380283932898945217510348047133688959156672964468057541984450034202222592298967092497146188265296035980746905958945905230153569605598982185286554587463477901269067075831757428457341175568865981397431820002667644653239007563665603612472539033266663800445952912615623306356733825879927546821226786320328017947787713383971505060380323324041447489739203294078385617665828976777108114792386603651242203534475046161779609267581213853693041048641870866504295066642192148386895253822767583938013895673976990104705884764866692756905996514250748073762928126918117723823691084239887031497164118329494622790837227088550866864028396715485399678499013398402034663708624811960216103980724492912433180904429523511688310415590487528016924261345065270906899352223598433059544069269918943044531070950303202416424885133958978414027177235457401188573669330957174015508861338502498962450989566243329328950639003860387177739899771834739863975865802903303422762884846503093512485555940542923032764803260942943767429290793712624940797830382887761511862328054108825965534891469387759395068903177893164745892495269866910530180432030301735523599823102187148661705139240958301432483418929156929873546435711848936051545815118125967535713321733018772900164583280520796784701700541207034578671430480703129262592006554364226485093827064293004167958858412778072573621428838618407639647056461145583034701594821556354572471679468305025502893164728435853294874854647801316663444912589238508892755077478059657446510797524427816804942769283915655019110676922238862829991408519237158117368402702283281188622527150405673210894724341767294491029286916032955898041383816610788359519944518917717981268579272710362117691576382804030607908873954358868610243841869415220668590692005911236231124093145619905113118123032919927235015304476656238045717567230672024646878600588866800546991617611346282196980164907408875682319487450439522733644493710817479025964426682774247923091966039181373978059284285075708907782838269551110537812829570638257041100948771862425486132122307140126096974162398609417402280736633676188203111955651215584681873839627798182904004260977442499646332276846965528539202519553598004642089481291138949434977124122235568298694156732773639708808118653596343828236069485227496415268913936021753189505062003119894208669210877802854273343849433497920220721535432173376379289926300923177184435843248350262110382303405343006712728377884530799151047074351560462890422868568071063847462431592082040003629648191427738170210626024381554522257407023431988579050059377781755645514712971710829162366732912608202298199459350087448654991178095186174670513328293936220754528474159624931548134452802900836886226052470468863547300546769690431354821666469422817900829450186419430725525666833947334072584403133492770156669677667993693654798216729402703203064183796807139680533049812053424836018425696602291760833797278047124060500461456198664360852250119121345863519923349778609692801403547721081512088776801378651623542299852933916627659027962649835902703945102320930748196821587523227483074227962916895192631957300126082739468804959584757597402757318444543008414424591581336932829884674702224312554826593955019854470068173256997668723140736634612800779663267532359368480815193845925007004481493824965334208421917247345038653060358490291056553398788764742063038750227789631078893442572474240960514180337207377528119819223442626061114512051189669682170162156427497244936711428688555116792969715053213048282980015669170073553744090117086463531198369468607717020874982793435614580311654299172239754317331594098561645146371196452639825567335450490952638584038047459688219014457379971334327012661226012469419633641919966806415172890511839835181417118813078178363711238867247652660892154749279723441772166607433320065028688785598098113676289136282793945731055677224060932402857021338096841033392981908576749345434957148668370017595527501615872490665278838956051385070186846478941922780353426016223466263036842747638484965211238210403700236308967279685488154350219176619319406897436423202038115787753106235537844192035280017281470498042382126201534991801444498484933070573637624068124940520035662763578643496480956534234495790911383979273538526424101501480815002336724773247114647717665036791205674346213222871400269243290892593650467249548269336812728552126213777065990144873295548898489578466201914682734969201405222310326715954181729396458708834321007787088153154316503601744887303235542633561627325745345848909640809673523790746179455708720799792573879194992330580854507186890574057836518836726931551378371113635891833090650231294092467247390988830435340933938817716607485960117827790906704013452590669278190712196679251978745384485806012188368657155581939082499265183544214251390755745125161341926078874705027606704862777494376025063724919926669831961535636980429330705063330833549994566184844030088158507522153676491035200790783313865147949317696697987969861679247176429172552765552501751376002414640759701092535059858643312498462779635587209824792979438828566105670404711430421586441232271180045396038231023451909757449019449102120817440501964862620243996568933200529417612037608719993202414128435168500860274620888646924579229192556395860044594706396549538918865922788113391782420706445355337975903593495218114503377283695762936264191134328132992214030048224654169540549659374908717903987606984211610584750334357162509025340409586314927021985862064447446128274683797265560308072520020601363076903387771487557227589889402386529548485921089766645537832460332117821064475988001952016562264507654062834761540628750588854040207986809303499957123459836839968229173925712806558062876929808750685565928246508264222210852388252071962222022518754964273635876101844335087398686467574736635475723865146734474236651452671804026363037651637603195645721705150751076316362593647004909013270660710335265177393256572621437057403878895943119927656932376219971410460997442649072026803441844345986642271572630322128944538253199395933747085120742104163767010506741541470227053985952456586624476500019175579179183418077386431577296822454966101734062356868521003795392820738065783853297420647337430187076650357192418755376071266650447912148391726870287712510439500645727154367416093854443330175661829807782870235851857378791957531459418009411135192261801399355869432076757634150901579719380104804568754849768122095861553902078656836257544855597024428682346050059023046828589554632299712255027014126210769488354082944227658222034916631086711652030438774734131154664531122545385213231350209690534865125536683880819216549695822129901357521888682946125877825030408624642636808499029473372660485144199948934682986534867489056546972068416804145216690659142718340080159415885866567968793058799672277381162737821325586346842815424574220549759438164802810579470627824909774597155639540550853902370804607721818129629103592928545835399105834755327298169414649220370422110145622362847907399898538590403278193618096862593764886340396766587635382336394168659828999439715811225405970059459163395750620063640268753701833704678507370503941511425211949476014646077965027638013848968489178113653760859585538723354611428136798248975808825418139834563810083180364796213911689932183323413087715944355307505504288550751492045453990242997519961256968361490013253733303345184412348603953123123433962370517968933629743220298652810299034361120474148393268838248760410905288855488823707995499880121638155557014773555101578656083376090468740791077631456090928821397278610550021436758112785791768895675903888558796086024292413783302759365777216641876478765558637926310548407031332339388062464882059181568351355869541552548739362243726901849842149049947770199531591458966968503084523771894301424091028094935323489798563607192058598150939889922889516047752799265536001435554777485228757959926353709117535516256345507929819919448561707801942827945376081867135598680981855569929985341785916535697490654959664390627150725727653219141717144310970203962566482805892076039261154622322649377819258381327408305931063309208475794882041478484417297894021921033392977988329232395675514527793297845165833400467722724096541442021541022619888983123879501943380111922095467854687648216456135708173158892910296435324324513794641411416598454736152736328783110765624346945338562970302221263764442893029094679530142710453786574885262472860420142263177767001133357400117073615718325872713934202684372527661706132198814153873819759501432592087224170829294539792516856317639912243828524469018553735571800067715292360537106649058348318967662606727441401473267049124545766251036619905793865677768250807425504784364955890199894346334694794081024469512387124724731305738236833755071890499673512197988402080949671061317179274196722160873405836840707855010991371668767821872134251908358622467539504293406505428167352454687134410785696802453668234868468594676283467695303067487743186243126286158641893863838732880639822829679848819757736591542895467385196362753751400666561748030764296307246081399919670384478735806403383830385436463970110708082389959833485735081552453980032602344571210701071228851090933559751196587499340088505617745296866850420861642141320874579373919371009740313922505192773862495637121934794079708361815465124708689463461601906508882497210854539918993826788538358256666438815678708897435472880960782041210732648571300623457081207201651327712260274098477757407893998421866010161598916710934910244627670829713692822683457995954615567382056853677931642926683885244345745725701101857607202519529997548233002252722374069294264616559230847187764995775283879557755030112850692240623937865042321198946170259797998077127105815392443498301220409106761612572621425581240418839604994546872922107346052877915342613291204869720439232718137872216593048868494231955512927354095026574835150877938366980639957106982013814150651063685223458109983197814469318901276628697065820492446330704459814142680300804828200746109278830351732566034981861807544913600446907234634879860580277012804477168238277544790968463145607066958754741848709287905360896035698921112645507177095209128854308507935532760449358261959313809641140991648085703342874216646614396414860133348756135886082790894260557892425940828360886924070735707689431760291445392903538216475008327439381395246849493919370370300915998643595985581625525334415387538037621472670791366469885704768843959519981064956421559200920263167071803857201559239166071765564506827106262058541976578953126190330862900147796127108277177562442513656232014166931687473813314660843047937496270697063132752835246831694566262854376881408829981007471497894996526684954607421644199706804394275667843816366597074833805374238401506777930993168873423660811005312619771503592523037729299134656434137684524067549617905413522541695719667951746496557125395657415723139150496618666457212204663951963078095055742173105868656458729729129645488776202195898966790243292124607260539716482404189487058763362917669805652716279015031710035890766420594850349899954236374270078107748027628585395850644003486852513994422742035043670807054326945998795112851281996136048924911987102277403848220814028179502423471045262522583260151061744363879927785820123667658592798779986715214597528173399055226267754046588100201330203620075730071022720661665507741177629906511257533295290704769563744805880873468972109850894505562834170476188524810756884738371768961652459215404332548918645146513926616432476337503709561184922967487919605621720932883926075244134034211295826178214298509982856822548059823969749101336895157630061777403855206909261587069194573161340981582911621225184832110194098463843593642431277898360745146751162706973768408772263289099887449575497837405937825870549932047463784024801323313690014387738995735605028921824542489173985037526916486010968872349674773820210805357836076909738350290479755760374776801341909862297303938268444233845488967506860060255070868212219326100525655112605690534437570881057544165389229369279839496860737880557324884641202447358373192039869312581585039968104328262374163753139919969482049100819505673919076606843652765031398998687690805760261390215348071568082997202671115063386108942409796106370572108004091095447130633053624049750176252977776267747304297484302692560245163806906017265651362984969516748644476816409605356659729129843381724492351004984870756400059460071013160517624002994779081921317480595903979695501268011748691149348926195478005738985094165321670637714749203418650542539144110743407650186538329204281365590255029077948940914156758665493609051420270739598217173759442829077497549097567399076872203515104680383123958080143535408101658264635176871819832583535473649877488296482082994125486419720315188769178285690723739585180151676177195568378766927070670188840385019477514551415134407071851768258713820184823426230703190307498406115589971727394294745370572158076069208940988801795792377031909226717573366804878003486915948723955876151406913218048612775596628457013517758882151983603397234817178145098914174864205158981594004842158065009150357969134863948987393528900442330634479922276047262278409653370919813888702325852824766855176111559067959601034067151900025362335214560373914410642400382490168739138207595627495770917902420111336041874950826833954597484756958055589909870366511654036257708465941875852645576681291678152696901489367619995821282880938443944213248882951317992650356194305716070831306150586083670014830713924481250308021564035753871849173279720778083729964414643396707336485780021490427023751024357777068298268407635477290512457797689690497825375183150138052983062924033063749392125305580805248324845664847150837116993739683133736904559409709925637169362007801812111327619352762156871031323148167146681833035231098335733514382816208909259192889327896435571850227124082196327331778143411516660113369561802481322208083386407795651558700488444317089310610761071266486649344724877486964902485486983041315331205536380271045334846748641493532817644643722225359384600763267701088974239501518394406189399617156402154541151995330797200281178718047520561125921106394585457207822752564762767124229599074825070467241167240258719502238528994859112502042307530590151671211857092286043303939937084740100866690906102180268884911479041846427351425614790835020260456680200682676846126331311692994657819993880843199217329117586921215740283287760328625897126945752256097945862052539264536961107687800867132335425496254598613138427072528270514411218818499809707713592356973394615305849216434704568794253176248149362393174767609167176435769825841609034290513156270904551562300742536158064739169326022890904339459014443221320923586025464379022701338193448077780148694784760611849696391296587655845202881111519057049237452940550219119842296425508094224305102017677607415850952116949643591398033325197849450119114451597766709234397707136465429763186181949318915280790409329881802998321188924167994968002726434474244236947820813684876271069555701634872312703578215405068110261195297311475152560535186801981584185289943360830360629065435186826810495298399704665418428688920552076151702084057860791137571586136606897204150739063164443075944449538831226673924855563361994402483493949013799606051827564092037455248720237883831812301228522026290920835885501355935081117744861203797000759739842370415221971352066908678637352690491625049342927433900620796678098627175040627904981187609588488618197218600454952818321180371964591588006765985632340909098109970576816958898075459493368185426880095972311951718553221983523932026414238391811007033053979934760364345767905077988099239494934961031402615850524139187592531437139052916584841869900653124203911045341664908838968433191753845175263455030595698445695992133627398260252933313850614357329710650251738639097137822181926345517567379053042826190212628316445231073372585592847746849533307012763737726488954746762829717625898827916031488041743728048120264645140832114646187276314073031685230227966433523467104891173023939741873650169030939873251976559148821552461480909710681398119307483726988646870498896000937779723069245207920985441431026090525751136274597805580298539694686565068987146660709005736569591765329821084260823149380122731641920098622271107566539041035439181197742950775760134933658811984651564234490637714739817142314087657632002544314963243148821483813466007041977264179444404518938414925362553334083663786372530822320244669477373111641259213418306161377308212528306671592174805260156425885758977352060818921200489088152403438756454281079937988901199424971826054461852114362424245660537155900050087147206059431586946018472792706236763162905075788459455338452084186761280891458570386345441614821704497604034427100537565473848392223722844746607774588765916801679633659235607576585762495545845905848447959395656275396774302007176776804168724498248187181616644177577249175319342734717620424941110947198785444199468749289990401460365835717828078539771305464035988714795203774742810187734171778784877521304976293960422705411976620659291901416280775349392119330237619898032153794524665826245287554897453858912926139427997579238769959636936803558347342389977385507146073497177253061720896124367074007649503029180078897589950830492204067747818346526987281212279929128292721599501618117620159562307166883737388202693522457309261335468092190113118693113312214281754317394063306810848003082003472493321951434017877552772149243258987743581093409134638195963471915811508260669979029762380517136233915422744055384263339430017964743425022846647280179163338178764315759080275653260825687185928524717904258383968145184229357877299786883327103973140469600643513781694737673644814416075160215652377089661564654699135432839781705718477029130550463963256257990217182001218941815728891808296123628115698293790968939027251807200213225554006385250646491198007725378684065948794318253590999231600788649544956898410475326730249723677510275821484027097313849687128979075735655407982473313402697313132132342381882590739314130328386720788005215501998179052883978448458151685808463999974915745044263582521916158126053999045234085416569297650498574778505663508458960491379899325844365820617675319501265071809668575926645067017351082310437467781085004987160385529161226808115926184588877990922393508353126399643307949491384763360993249536751270422236883047624669744308527307068105864863014490970075527085867805927015814454172268466364110777111753314887889096304080483854537905847396805790258775926281990916363310131583536322547712423379117692740943828656619813619989682026563620769332678751748922947355304073577116408149028787880178894788887833483018484196739107783640953376185606526026110096033016801495274558128183930766659416785064016803914343801297860825823397664453572033745174180248563266630863794113246490302352681432973020050958327222253393760936056999306582191930490454615848010894503239111550583658597085739480460204738308313713243818990622474427294915481507897557302336100556686975792389683313201182170453385751385521272341868350283209035898758186442292874457588404074801889524213092995256246615628572763219434378880451941326546985972558386992713179008452207876102980080801030093970633538288521447836191121707052796930403837361521714082492726639467541902205309568984664612887292316440271858475074114416023826420489294916488414663666797547571189542839828306530324130590950302164073097027463636624760947812546415262255143604007511311124018608760941262200317848790824653218697827592126759228579575218035917621036373571537744210633204021671173370257779148457750249015895562895990893108242604568544147127058991701409772343280780468200226027012421384183083629491830814041385888622729938863875936728350232972002018265225266216846104205482973089883554284306818543235449351138619496031097933499451574875363208101093165447098709424219098477182738586946503098235016902982545212212367303021564837648150644896300670262281798871812090015377125246884697710140911619809205992720899850550050674279508564043555987111470642651536337703824893559200853422512755810120399616820080031039482220434987044547688333588871528285382021399282066910887319159582133575768619336534172227527757323028300410420082155845434408580206360417855913091057516163586268618745353412431961009652231216348308814679306713796420252489078922214060204534246095178919412578888889504236781873787931591822948548967362037367259050220282743899560617016081983771442004551556615988575329425724505185673892673001106189827801264671154359494060156781733150415765999634035131582098916452879488812643164187641956212462693898007979901866725862693999527754408548979410015013763734984159011051879921728467405874695954325362884162114442963408370152935295736533911973834079050524072125130537067598052203774424770790312650264223387681292515000356299264186499454202988625823072743424516354826676016733439013616477823033405713564982947457107487570965976619997941779668218091700956399423968841869574095850706421453154454492452204993080423731658875279577864194958650087026769749195467081558872677687521037679809715455182205944304329253752796715273750657908578303267633407233360094926064309640366413520672272827495907701468057415537830565302123865838423812875113810903324564249480245115470301089058240325448392895536603716049174775601627416314666003049358515281304077008318620464965126041221166387164521760455387748220842109988501625642856088606476160887108551801740627821303970376026477282519868960142602715690280719668422093732288344519750524341744123480940514202575551506970238894058349285573860058370445953590445982923450579149007147604911274257280325111172287632348923844690130954809638098454045316078679563750387695195045487366130232762776313393836171288515595647893850304441198446232816978267588132256560318290191228702487025138794762087805380565817181037372474860741099555424128451378566304849531190761636782117409286438271575993527261942619633309671676171867486578201218049317827075932386095862712929360700206666496407050504238484079241550948234090612083484947017374570057420733878286283700890012595982539840615661619130362580079389254302213954190789518680549905969231175078670265439459609520115235259610053438559762909200749715794064893177422440428699875227773688963369359167891390360823543004908666312263887152678607760974638565610066896835612968975844853163020541338119378827016570229274704700661066183095191617003838603962330610611576069081246234613794759896068763846834720022760855681041859738648634414521323752344820291703638654516803956250385817020044355020494306421252311869692316706302938443063800501643320452719429649060194420066480402508045722837105792773465172969220576376475505699338256439412974907307194590350544799457556156460291062176239785567054605573240147734309564819907262332590423067910130776359730872718202486466456135648169337085467840263480098781905167239775174046816769694477523429258999268794250572129805795216260862794517212392689054892562497292733798245716689865582613330768137549599241330304506437899385938870754482017990088259870939544529762615537871075462988152338093535534079700593423563754910422127554519825942289320675006121018971539888005467564693887674808910709123798377565871063234631618574953257569019626762015692267482507113179768271828872949018436097581930022132012186292571365374780661427810818357863771006690755115731382674923952780086092967102806174189388207440610031529970987501817398001276911485051866822949802993843294471154386479116992265373113889816527975407008405575129969112021164761805717204965452577596502258999045503118096702873296829636450637486283595161507404506134932609722692985635409215265753517865959088820246328196061294554016731374884033238766917742391531600818397449838203408421870212232108230037749211339677394194513116308044663357050587503892442754470033443296494716274659688743058605381878122741952764312152900557274171640070439220904705004527766664061516418794395968609879085870774444236797046584776500875784447395467689284502366787164975077103871715874480177946032038810463514163499380395668570282746617689840744974905000585758221922727029330441422483028029072653544489621813020826027652971329449741366028033431661764622744117052488784526861440967050631977488594407491668292173697908688960037551358557348269325011536350949210041411063726715449984297834615575784504735582872128591191736043873635186215881001031964156468124426343501940321627546783963557410097995600548400087958335256608080793509437711101161807938290460865924653176215700977189122533039072882362829705180737101828641151554663848287231290160035887130228216844399462606888509028771145604025719758215106426518077960162152799364762105691869624339278365830770731537092376946324097557593811225948969560999769603060896773304457806940005197501449572416322127480323586323668207662833441181250279503354389085301692299598059991505091081198834309586406066003186003858556892015718792617456860073894523370310776103860277411096236908939335655272489769873131635594219078709144365222171352102202109727427361172148205193852961717650643475915120364051981234128417825894127397766381468105942728708173481262358161905741812864066367322588890356869632692828390066216985217377344084568324868999559176287986695091268271890347133868163520244726106913150499440758165594145743157563056501399699547485875881302278471639256776534043648518929062382070271347675239028742667950970867746786828944670395157324839454958314879099751568485035737914120945082235025590252619944375888977816066091013864111235023279704030580959837573634634732590150922710837299108676642592076463321786201827614444615290527957672376638367613015040601789414958419137534731953388076173257135613452823218731425507868339104396295866107649638819491288361095190768599017148982685514269052257628331474186055668241019088699394220815505611652764066704331149896519884825342927560037696686378128097047069867555181481535112335766403281703127458514510539966823782054226873296338579498253105777650414828511824289453115184219280781976689274726285511350918734327171912285993201110164641604583290714176354895654996489644060945117259428786606653932898791603392520224649188525998886664334501063923591735934800489422438983298617039782235004052760823767867861849393449622695068623850479734759705126080434033723517669934688618828444618406893931182960169603418522790563673648891233983871920885794919322356111057723503782081023789093821499436889968651649718258227318265061566270454382887492249272263461716191583059111370403943635550414200792247388336637591950374794109566436765022305124041552434755428792360525943602716473670497929600348977325654564327544379343816904631604839063435900980865859414691774947378447569153767355528249548121297984153618087017948800247745435444281960482853996467587345987629319749890548474977744961679050601168502785707154335210490130815410283868232089124969340495165494212337665551360113618163859957007870291011055954883633361969468092517144872221262212845026666706907723656695009993577043473179515992840796598397054038419165437468905578046834166642572916233180552363010095493656705951251701884575343013846415476923723838434992223987702165676027615693454167453310226185578346968397675898074280212292163120829803248110500973491961124625029029439242436377629536224105207174152860384200200000924680516043630735537023902280785760180604827287896870200972187942968750162306335615202338182795076553716887878225188243618141954945119456993518669939042382676306296616233125848508431319817562863025539706611401434929857159991196032487052765315691178960592869317686269200673933372007570354111030018727969777806329270726484441247647916269758117047504970914036085301221187101313578325894571767943685467380232021905239583418172666864606996072593248108936590728445885267623408636425895055728576175342102787287287489156095159587640060268105420533028511742042160723327532466870981588425060424206280296272983898454752551495208405240829357741902724550751809392213744805874592089081472293805643811529363821271080432263848167403597164467007856795340946891197632062799438814799453170115585215740197457495951381966491872966786547832897430606016566152319856930221763200345410576038022055128153743921736269701491482813597108830596876912836695369451591223848652246810243313278799617370419200423592435792844533994666136492944093873864177571557303949954233966232638913199314117730170333875233176709461808539139713782126804845083521769680462287884765332094561236694878758545854836907205775895120527146538652260315634101657675430825893099172959378524234360351374828131269266871114380037757349793226202763219612984487872687957643235070572934495718652598546884404193970052239758984696465634652959998543852460272848719111458555495105629730880161708748499131468268234162037279379628313620231553506276829528750445495419990133050792274698135488793010764849755794257169227295624262035518407563392459597800303703050971472880279970436060605419806365296705713518240875887119213315576821577680374780920592262674663812295935885645850175780968786209069390555206548898904342386013886287752729122727351298087267803091426470770743557524636103342920981458765225302377351490875949886634385939716894243208501100038364793993291422216533747881453070256366486505361750146328744347772464715296247478895785051598673587214082075332422430773608637317653856864400678622630469153008838643031752112637218323409544266195072433213564859465669252522568836593448155262279202753415019646255333552233252743121577596537479825438351145872963341586902616881704243898265527329767223244479216598500617923653119502045058445056809551261124280865739974768578045230785031253842920725127302689155572965067325931005321180061920923268270851332769488701521835074985039933109832467138859198269908297402063682573076712454631702665376550201293791248499654528139828516032819141229072939314554836408692179180697858253546135263802009039900943018134078267264160399744529526980674462449207428069506731029175351200220105133681813659222099779857255801037584066572373530377811250725327446387844212806194988909667654404547053241674490294987389097880107489748621270490194010358317802965257478110512651439315575076768795785325596414902973395627690656144981190177564565822562547924391384815534432203013360150746135123307540871845642287728492704651057720043678351555895186158293312761379905261414145815170859561429642128278238198839034430386274233917624691107967810399287650962257847396587427453470299359315302223545114025695819653534994523684221824189211512797545364127762206203137058331835312552112120410629131933377506047559371877456001728773906886225514874569649187929798650547610332865686025073021779812585248248177014263888132740398799930763377867505395158843587727407074209693531505558817622194139184440743686324548414885225567553748365126452324164737914535099185112437556239709165233722302850536675813536122058072697771665323474149743658454857359544884563794975470181631422124612881339498502125973427624972884590786020239265011530809105482760005831712432219720468665216439058668040326254427519668517325559631393967857025584667985286415788963416020853858858385796125019787324728245969252939038747338879689736698595897058476705170937467282162628274042263662644786831506836947077926402942696169114184489185042672519024590681555743069233991869264449391044400330918534555169921302375657815957482392972142929898288901626895983186150630577218816880382799423237169391756044414759782899077359471880391304799329948287881745455269350543516803506001764907737765153338711719942988023060266128814133601178453003033158178703505478442190648638188953893635334765155532735220381567688577551384582380231680520699597509520421793783700892754981885591118631501676780266302901140086501275680892354283851471847407361476204969833859430604609511230414765102503990448826196924588847750844889256300268400923524418002520359853714067763991814443308307460220602520580284230647776563898367163275410413546960410318147630464948196922703499301547687057706032868801402326079442005440717271633184293120473693305018973815162971287013273280496889650309824963024528102383233891676037911575421285686066582823449315393459166406053914207493815954602032559001026611632769645420788803795246701308967212014802788472236938135639508326888149067592614669097807812164624789034379730849004621013044500903869097856134192833401172096283462708522591286120394461186182824033440532423399916262888999107083971904348126166337121079518604032543361431376175329444783106830975440045214928777737266045083411744869133713942561249574674375741452554609946610676771435569521949451076604353174049055949821519893067216596342434870391152547832079509929302734245626827830287910579814369610430107357019843105765972192966664187231124160044698076036782162810913881349945309163193064678605411555382480152567500042224876770021214134956191592043546095647356714696456309549903104796353398601927797446979387231659293122019436980409759652888506443868231375537673525574126759257419465222129416137879025388033587856076847113408896757340525751164750308022837114541597128528971790466321292235608758452841330665433679500106012766944058165050570633725205536022906777652556413601930849922856854747650612177570537326202943925925898177198051792652067985632259717258672766008904941232566265413588448305283968868429290457008860218406533985155283855533609450106331261380944805058764518412513569464847228043456184465963946385286812080143982916647620933438898083263849556287259650215620288414290895988944696891055500745426108218675591606576219208722840329328519995467330782847704367690893412595733358690183010652309255020017534307212886958944379217141392862935532312965640939488757530877454513158267721535930377506558070557175584904931367838750421798518600280906746417996157108545988687674095016708691783881509939063726324806324070951389903602111377097186578371139424164111857728911498550017180717678684175581097191682292466969719738615828089007484338281545043541976901223361114461490376094760003923448445626766351106664986355803270225691273054126669006782739434142716854877790175044687050537258368726428792620367986386628421944839117669888755734179128172526577522072940781095513727592011267526566285710080602399038367238991766680689595898500432281927570818016902855624774325114038728977900826383966590369644297114815047804818687286913585544767405729320450981985173977908791293156108294436652154328074223959523394871668583078018275133984495750037338396125534908825277589222087809375031537310198060662456387454853185893934661938849820854303083450167734876911480593204591999209716725936096077972856797966192427964784619874795274273332058500884309895198355590816954070877605213277935055575050813365229034234301679641146111067583671069971682156557658271581685476875451673841065899668218276087062525907681574701725076509230445272201369880220803492222095451411844830064399811019158240682960977371095278195017343882157176079319431511088722619130091474249075435828096519415002538555977940872795936734647196118749780727951910117806414462887815616355672468417841501577866472389065995414615718579477582872368637365526671850645030710239822551974659728721193549844363355398041899235818722214418594212064810125913912043996104157458654462757741158579237531254234512936293278783286782236499463284730338989397493218943559291294446664724472721227147762895243339208414490890300417918546614758970355872430118415491912660260322969758157120387658130011895637463015062282213067335426256985090684926274390374965717763369119476928030763186792373745818326529530711309772695844976967603917848928508006068627480169785046133728774076838460509982933789114351677433990672706385352373908721348903230104826740072890333163067830207643236832453261158103084986700717627231984477518785060847568039016979372330069945208970681536053038865366153887695824063504406740619960569529230115873301962233386068280448330555445430574310773011962539646451945430169602363217614200718215077688766234102409159057628453159725133565955481768438011050519166982904918354702651298748793029792895079106218395114393976564592909974636357542578136425845643124473258067999549170881148597125620495255858081618169556403755053299933307785392860865195502274967686614931725873915311513387901986882711871883641714897380406521623258957968488838839338304582387808478209213249292541049532096415869899903401303157363700118923845656361412354470919895670403982859371730481482486596732432487059445932576668411293996399989733874911779458211278125361344644340830698105029121178946827350916175740858363694969017788043818740456544121427243028991503777770998435365062029388328117239528459336823793623579984239288066230786046508116301889466563330765955806545602363959023858659018672615284071032137189761477734155922550269652638202690261762319690050219931661776640224090375038075681868066090398701144003680642520779480413549697618807389384914691039098812175868172862763891134061533013157541589707864861155402592149686159340954036363705355247363279853242819175987088634988664508930881559124576436287868935796313020706289477044788292859401568030327934281556885357165886998573227425434674039432749132134246977042714435840284498099183344067484762253703919963654329108337487665464802498084033339188424254297207544199193835567250192900471161696028936274952531939055814750031167918392311228296184601291190486769142901903157259171859807571463321178269654346156901430245311300920725213459902995623924258574734913286658722242245159036659578205594230346770249570871148092497666077376107840883050075403807331129266537001890776425519802667176115747474297710543823621610179497923008730763538082386929554484084308023870801796516837153070694946075902646545732089502609483454070168715432287815270555602331719642672360147033663433377774534668047185638388107237346790486421777316141782026744554793865043224560395514644698767271143370648887578236753729873623092503759627877173305108371708950306196800196997119968348627917969193397427151328790142983172992846973876986528147767216998808488067793108545289873132569166962455458480691860954052270979022795773983998789031886695746876424172239697962347996497772916851404257112718446271759454220321139444659485811946840164792565467149869377775405650797769423163116046799292227362473091602820565871138492556989523452268682346075627788807963076268700558649413873130534131213499385108684971630360470605424932118433255635775832465174853943113796982071605421060044938610160935028661809570418988508948034603060250820833417809753488031332199076554237561970836811557901183799832736209229632621654856653574096742559186107137622198677325026248621109507992502902169259465698165405592542885668791590448886858324606852772153108217914131959636103270525631662646931572832561821205372923581862219820946837536399536308742009534462027585297694686980441942392503595200045650458819841546442301593396874530509814147203100552319416002243314197035654743199469455166878120031870260145498104624792562202121471293898431299422006917211066955148490352738288309695925559341964481272135201038862630963483892020206579816118257117502128112319032197729925661160589041800582863871836631709301111127203230675517975057336043172701467948343771690105779817525077441658597723067548575862908084225611534163448719544601490467118742516066878465448768421785964122694198534295235154397772197945571245819227230246398567321542970266863649909931672005891430562672404475797619114505633184359706392121366630408694904930825614068963513533149008033871347067943559053201078546550433747939808620074822127863624021773529660018112776515552900791609019769276110375105336732203847125495854466576391014105865750858421848688220386756413833681706024642885382285285931870364163663056609804649019840208035005500955072091677495183112049997619370189602362292985896172244638780276440792256894532918534220631139415817777683940778215186784707192663293196011015069266426950816481486146838541381536373625618303871640255883558581998257403852588052604423481768979014560623542486395184141710325139751375060595840925511986032011397957879361355332399897590307309763399453335892499991181580262617332226369520846487694629000307842233009782425273324573926841032376590261653875294756899861470787217453746978377355096989106868367758011224477807576179725341913510807921304053122089954489474996542637963365624764933026629027367609074239369296077280212339507461193320241032440922885817109342891729999397297364711974507046360878715286375468798615633734259651180434164031768473737320199179382726804050829398802071999967531423392363726890834433896997644376158094026367797496099794308339586995975763346034198642053867550381753534666517066886637076727106145766714469572288182364370304974239510273136982236109219319442209747221048207125019029488128455144890470149856448082223023523512781921856995552777665814141726132370732223877435038620458280271048471606631882267393118423359579624659097352226169181511641544011198783713036398572221537788424505670172780664822195781448567167756066477426189370454496774343278074917172810028932272013024881361364754450850143022849549878557840679597779037749990461734651980824744144338899993282189229728013217503332068685538321010065496791508182054073015299852721189906182718566780348120386305635993204249760586136814953408705802868267715192601817981604121738487675925824386758666083923246623763295047506922484432524864487725387055814817690742955351805379132647840312143595758476385530773448062834117763762096775282468733767623987511434909818047188693466662064346545703311806492458515100341569515459282274888312943606006495409436639767209430136748360217911779304093517927115786527526934001426441478928206289329275574748952143587367827990216342558458622261273661790905615242209735836720599872259226228182575769503158304370903404315032568321191582791972914614832352165910918207431337960222103859739207289566781938117117968155637278006558679522757586878213340429580478541559508730119452278530865907829578278500080046692866845225188080590565915570545236229598422632069240785242961354364986018272732100938821062466030117074471171971479138123067990147729606242429328481402761566246321876107033621629893609339453997108510708903781626457654122118530714031396001340294568686527372388353688479966538401919482631518228141681126492557001875742708502758042563121261542308321057153026610671913215388793223008570292211484381506834337008493922469678296553930561152072071165025927222886710668836621776217328699195631688224349027386350487483857595163396087351934628516141015360792768941904493104548711261274536926714659402965744058601250760019595431732282553803135463537386651794052328895951002752309357412269524077886252856515723995124135555761436255742631634062470509340185316288531558781199659034065201497035308688503707222343451631046323605964280756466940994951962543722026631543935150082624330032576592404237327050272839551928572464256264665195860992859535163934236750330220092977994207711141786545449528714286530966526592124570456678342435364910497052523946761743821819254041329447963602547924115643919611596238755430644838574311647155540290879924021587613598551947631254578575003148843844012387117273768771260604233133661230423474388539918725836721342903208204491961785887478887782058062124709093227281641277792097258362829026516872347918620588780411167049086796282020528024828991198539347846119887419007909664976201876453470943877535018404439830365755153821735714457725186417044405747015863227518806217131696159523782435047556930237938914619497284461673637925355867086299978061694659506240288663118937830908352899300577105749968210894341236630407713791092888476334532436702084246988135232571256827482647102852398997581930420103671412430520497797810323016052632390857410821948778856441064566492205573994059033990217886109105420483543240310706978085446651514877207229639250777819878908019180431549067725587013929380108059082124079575941280321591611379523038796114439470361818786482900999592213413207707173354897716797281772428530667872772878037892344650415814928195249796331715306629193118323771591364600466261543259665773982383552085900741354071084097130486879358659338221770787157779813397169464160946646059935855146769312400759879418568661998416846504689103375805852374912446659188277317176391675425356570053957537271519756126703761393807078891498900247491395407870040725676158212091454609775358205050836998525637817086893340734038641716122750756831186128700675276348656283319796062103721909513545151806637651320475629820568492989681464921228297947976607480995281376032473650412831615009591971753356761360114048611497542623281775750664913738882887367016187132394707606292813231305224242267712756719102388068591659418871261310361453269228234708075806965992106291635233440062516109481198028261805438347395450300692834441984227860513535567773993402009622701167153015373941149468579941185679338210469988628630269061300058187714190220696948483119156641244385119393378069626275227465003283093963249640935164030160715293975078862811276796793728419381490009732711185119040633190024130140517274933982708365058556804303032086542446420031130123171506367418894679929243896829075254985806939406766920794212500493063417697534827628992384162762021982183964328032725351806672455395625967247687008387577753569378641329554471727049468075824724369080173966448046604078469336852742539358957691540621513651207084267822314614761422863791289919475495960741336566069661611731208309018159931856956390155224882190880833817725471307916100945397324812398141224565264228748084735208585847703879667806104444743094662171407327896625874174157780528031607409231588658346343471522377449514312593643462301895396420764659048549002909495633639444187011926945001134912552773142559029396392278897230050566563580427115693997915594202448731959115454615720385120311879442373551142578682843025501018422407787060262873130773912502127751178142429548659007137743750151237206268027355643923895505367060529034875795947908614486416854812320694677085285374591996258480885677204918440186599216395046428000711553783477636637920483280992168458781011002064199559556992958852287032938092486390485601365476016136777346158280714428198522984260892697270592423877828474019585607409279633766066180461019540310533012321557257676043654162113138236890491637626078098292998139050145741346292740075597209018844042805799527833904823299338862413702934845889941917267160085672910822142222811520206114167681491277835444947183405447430298276839233123582269795537226761411268373318242871771755635940753556299264050443725817777134592370913612476524646492369777492084567726359288994162455734777932610719517597351688842080765819512619392429040896543699677308768868887932082968943294737578912349845832312557219457021340215263672241762747400715973315056429678471996517566277127783601857600427246145155524808310121734451967362175209201977548921592432372645121788542618904417473899297008195301469490798148939008742031308709900913433832649185561663963773252832021284769006065343044422574173696177894315082521612699731979193873930409133107504307918548246613141542030233910364655338461536913979391341878456440787976679458856220969331310959297692098831401795764717644618012853693300110594125328393735062717744204544048572532370213975954469208850454270757111354957458933436745511900103046368756410794975855014047152511112097354221497173109630390872242485411272995211346801564493679626277261399923105956967498347746640435651258443181913694552838410563562955174615616133928931170627376065570015370441002691926008407136233583691913994262608352020872770799902883894148651345076611448080097954629931624525754338843058671827291126639972687728957895471441056398404572429051959549000567605922487067814847696098667185200676286330502995721373740009279355831403470106002505126165809700332918513872790542882002508516356564487286667139889639679652252851019965311904640280746140060984111137249730143091235923765067983201706198770332763367723366875346526403606796403087905756178433628092216153025940053136797702168143680890374887204274215803618611772467855547866075450567879254331999806436187036976034157819005402841192277960088024816248969982959817537604573021946667658673364938579967055976465092525793736174167026771923897743157283858313662043810981058223842910553373487989597924163390464775410741922849222821036878984666643298734798072982592305048764059992129035977868319380343132083006726348018958333441819273523827724150661072369642819586986587837687388558946417074118887865455664126237394953354606941773932949173024428818278826186447911403631572013495611275880650107029638907532227816003162071108982109465308300479292012722734364817753234792939018044351646937752097221781070383941039520617039944611315560049456979930930962917495378470604778822686372427924460430029983840952842532999805785144833817903939843077079491130560531882629293800086497170864253361749540834831589291218324309927450544405798631170667553101192532224102657819523195144926594825102297545927592514472819332370643152600176144313245050223869977726214353743863585198817786245764946332979697791558896533828701169709269062393212125259680172783087835082042935782395443361468396397545284173378065826138308227363897331889541787875091716246480399274571886458529331083634598605466832371468833577680122546609805827090710816534302224471922246943447944517288126260243067306981761694678624458413552957397569046291686795232804014222450869854371407751032196663915996257507931606620566012965816783560198525015854393253743442197477602031401821264053859867755543684457680132998845215542551504104182685417523768594505809686368517089827818830776749239412032734716894742855860423566858896010420380286138349623625845318982329669285133053048870355166471342758808497076424021717854517328448871515175372515172372561776942546449930228651262985149686162093582406482522973167366832882756781063040681963014603023157565526822839977887241639483470350503163696786056318831209350258912087677990344784776685756592704876404114150765406024749667011574826175444352014139831456752535990621780256663250467343366627412290341212260473673977702484953949724719629818161485244293429961918125440748795348241305816806205829216487181586272635994794177891858613105852279266109499522036509233485254028776001033375303975450216508314423862229328293875181658114953762539882540385634733769989588521213529193108337100519512713683242414824355790380295888326631377408641053195854995607990582955767839265982272658939366867687153579718282880905101440951916531906980662241269449370896444593201703001605900833026178251805329840668701838373205681067279222961520969646155625927489165717281503049093662058228131447074535071299951643608964772660943737349551814018460206222435942282086507495894228592341842166458732068807254275835570629025632378305930709810961741366831773352969441640355473175554080432376496270397047262336056685715347761478407633785777510827647487669823149531398627132977663010236452749238366538050143600810502577739993596949144831804361249576113891470461703824911577298993617273995496348969502071849894903990898551416805814977045761018345403953851649445845016343088000100723476468181651360138342549434265131758411012766589439556463461470995263730743476268149051355565842999385391281068626855184926505064170612116052928901959591134914759014325463949106973813699094451576819556431552916334478627942190658251557345691714967092184715468954167484216844718466667454926637892668875896348428459196815414603683393390732287041937357997917637898739910922875173555411180517066064698114723862202521330299086954634178849638923676022730039441115570214274188905236187084373377219598301996282229976322579333200950667177273604586168104724399971845831439015600840214621710029479142477761040728509398968881329856786701229337358957294570605654104957065797465611038306987728828678322192779290496653638538502856109904676561266356228545968550782268294381503350273358030071254094581029631557717365151441213590698432467291035363413584630478338774472051170226663438610849754415675352429811727807301681111404330573058119729416152981047797972091689951913312973042763340429466009801877687650904622818331712823253085205802380326688253059808523644729119301819449206503247224927138867481796580686631636953410404260363792307105272476332941319949906910156160211105818606357504534866759371230590145271788799158012210659328933555036725297776453908443850106607224656466975928247635238739627651122773790663479035418087360921900716037432313824583328402191800232933168589467129422456345503381303836687332032745344981393118167974842736357603522323786340662688810761021834245476582202790355916544976155194510314579487097548384678979967479899913146734449932407722316746213805266025757663985338082563399111342660806216043296781653149473737816591646283099682761663657243476961202195538646605748902987789619157202702566766480990708486215535022859307639597412738485421783449313284074392662100775283114425410794493543905786648608094235563940961114798717904354164891320108200907473070740623849927112590663840653751535354836849869484074952433036438525148853196065096747757012351845277748407103635514040544821304836302872824641007283070748626993777539569109415667401865585566184384142153132349629730677740527334227986131814755304541375957536847676262502344758024077870917014126871030681712690470882815539796475379426607609524113747776757764954111800112899834367941736042834313073300949403150936205638221135504306966010586669329119627488332747034984564340361139454493647028093719187228639056026918351992739118333686253699093378737970038238507371584909836851698845878185936379696629867598138988642924840782000899859993756870755876761021089470666893668838565283324361357236695673532268965212543614922365890815446964784262786399933264946510920286323247066427092245875708162539266700033630799373448669839646258879049474201625641049911016198932880830210928052531010583686046881297360119252766272021895336962425965338844520167600520157268665043414397808321748476205896393027799676616589086150029858123464797040111578185602014608053466528870342030937070459776316579088228931694782085289489316352209646893405889740303271470452484241830103392252012910818144116260616272805901777595913472463101346424722938457038761223556944528251202671298964578733471970992955082408035476221294873989000615245397232365098014082473168483182642617926620865272402249727569362729014889722610459406435139111227412883525939941706319408011242328256309261622312861911572410487029445705735985572410965167318012748390576598899402745012009051955836262070561666954278573818598232755883964555181014552539736547743176997520340441275286862813834212478393632534942662202077966355441747554848850894994095024185507535710875677276103582327324665077831354241088479638335602665109021709149998202294256753025494818582174501417951767612702488881441780573820972398464233944974262829719976934285842143401405626022516151967246326290050816792106662553156215786061781506373784837778965548540066138997042846679457260159835337935142549785893967923303726008988068237111148726081960964559951303836844238825986707650727456523974444715005685401878601286973189403327089100028586388789994055976540234453934263339869350448899658086584536203645417539674750783763074885401469587016096871361088961762581363221790915651906472314625433294725667469243906297486112974348727426785574031827291248508053337625712062899957985407124006297685538314853636233244443357904660837201330967513800957978550466133830728394047248307450294603130789387992727936876316594183558424136563138080292914390141532610362411686685168882979726955741199210753891639691570857794502263837198270118490407212610272862459371173685170165963235107064956683495809508555995521342530549417739267344407064153154390542393609821999960592303330549799883135071289962790145830548028238237928279147677320482460656146098379510647506698649175491558454233820832101092215656249688954011062286341149560190885710771438592650019115767733190983265550836298527665358405565319261498001534878064180495992819056064660929996298922329149275077511860793559165763880179783348096753279378682587943506979761251503950989591667127731809656129447067708676990364416196531174534632622066024476600982748306366604401675198052843931257066091634672187611610054243161942047324604421384057271992758764214626457949099609713574530885049270993002426049636013049661382132884506981980505877968395443766853373373104395990076850548346109093260214517111141181670736748840658367113658476787712593012311256786686115404378544084636934101463594470754480079692368391733123377856073509473760370881546718441867774644423238353974611409925170209305917959882551806603292587754902806570214837864674023746109283084368901712424606191071449017899807516313345009725558200595907726918937936952582964772292984697621383507384717619399519809334287586865775487745114633528383354031500864143804159953390684866430513011962097562142414610488192544820674108182646547240989344206733779146512002491941816140035555756522751551506960936120682212739640990936547376294357475501016386287848604139404071095635879885657188535434640539728550445378570040094079033198699639185291931952593476998534463247931623970860987508737692874955938762139783991055057513627130529111516180246531694951583942794324532207123984601685501585716343305121245454758209724891000608669140321726392961411467882345930526405282921932663032676032153665705799850117621663659410896683975130439047814456638736598075726268861595737544454615822146960830959584352510242378344164196914498760159310838311757244843879270559362886119727628750489564598143605473778735238181334868212186174119727897470895061222557464847519822373573938848488484386226916662951226702632561770288070179448626504547359139030347035029006796004255042143078668795776596459729329567781788439659981773146941572278633584633654654177066636951575040251942391006677636863117917615611311935755138016046331591799991225531425405237153826877216503059832179751107806470934451346102135005698305009326369183408185724785442187516178509669136741165040448928212206441409794883072523256203791258752914015966358258703948049367441109457562846947916758675382679977291051092885163125021253556766666806709921508466817841120747941011646505534967905325295226409672472967442132485380312627326993657118077213874563051787628130686558602384087785570063450879991191422268330811417822352281554391360931865388409411602702986001456645888363350293169998792065792552714091445669315256021648975176275742018898888088379929239578635038169900546547328689208407680076092528532883998075261153860862513118043222046566444820802143469560962331851351330119851490592033904539745075574735834197664089797733309860215052678852528392474937798180255276504212008237896077711219980833342335506960282265178436875286104681160787184116749197184321730416486005460958641883572532579471443591918731293475778917766228215475213121102071905980582891135349362688416754121467554330546944583461760699564576811972486915645308191972127371862270069532371089727339461905438350124599602206002889743252154606841367529529671234210606798192613656518829092055523185476601152033808974537717044390231268580204923510871873356037662047881782846794281204469459652946331934885404639307322973700409042362335253196187871890339750465872118117723685224539243894233199375251873426209099789659655412048925585240347924432270171808166221678413884407502680153957227487860576420288093752072161228788123643156560066812624269745372468553165826670892997920157878070443272462455709446470585598738059915174309184576519629138850126429699965707331063804101825257262409545493145288065157903266962810544049813555149028048795108795906847066968429932129474127795012069722580014745681896029966720437300524663679583793309977693856606614766576171761301496489756623992107120387890811558472167996900495803285357895377166482923018708311279248160658142273190922994192838109915753100569086779312573467407614589545478687150714613911428295705991932414570172907252869370047300876131241512246953110916394278307222237542904584818216662566759735121807212313202340936140121383000589332398525179224691778233856605158833751157064728891471713068248044434600112509439489583523227459917783453581137271825131707367838147374777306401880056339177406371478451981686837314445792052797346945004968280604466902450950480417905883664477981162596399832539212992846969794352759598656800057074914867316531968676638829254419369076951125705176244958875307271150770235479188404039382982349544939468951940389255136051168694572838339475947286378507837739060620002385505276011413220487480799356352194492470270153435417412863452958832271088832294751271788214291430819362443672746844654611927710327253482741375067325198078972791725161861508450301532400260545277905297298931838929390825185780938450845146174936858092168620363301048647434371143239031764401882923748939514534124695548483243839609475210449644602473764209833461949570224237855552710447078658751720333965961436701465675918160909437334875454935708987703797496152406496927130041135538469422364597396430873113221198446247178191448136346090283103290173398005382132301740805761453440431855857273097385737465104650299769637268800095490673198182031002732293300880895165530332902540932791595356195375566334085565737199534944614446196496416418758150909038034496068895172686912514869990028840791233148840482662601683276586438044540292591847078935592853324956888997877378934560163704128000434760527859278136656681736329908874455831755027987364982143856603340055162452747414710614150614444359933283184112484746807673411833439004028150765308288178066672923894288983689699634185888524413025160508758804259060710926679751643218171124744142581306094543627865355636943605625586404227568455410434091920025107474683874411625199139699164378782653941655979872813910166404885411022803216231083606034327887030613785493964271829494501523723635595353755290211537410991372793644768655170884165436593200886686482091583455690386777771732599457498455383494689142774927799299093636312324022313468238493802108631700487387842947843547613394353674501262885325142648356255439384945429772308139231712047986246797672052174768327180796606136664216795919026253661895388052199661798808935276391773884728956940390745110422269015379691086908554047418090459843581999303242992492053212601883701143276711137727835015494420858320390061338832663879090700204865434679928002246210391255300224502400714120695384701035052202926261614884462606428650314032907165166410482917297535301827471753790825344347260623172421287844774516933330726464003115344327520246094558260109508840376424997118399725485856950349540315823545987966709908380845063001037644653972803268184143973876992319569375966163335201539793038129731007413207682062937901717065848190817735797914803625759132836230531186433994205603991652493756959784507691964019764864933352069884996683724941857198244157848650154348026627828731871331344767215880217997870366124002122167111680688545460794484972364116460315624633379212167163239401474023271888435598309120591051791544895728650565933770732711887431382330968609922668430769016485998930131194435358767070785219832135623746627268947847077834699273887126284735039920328891419071891152999745960256751985430855293973650542636056877364789383011707618636440649586598605690784564687456639251966915103456350664333331723647869422737233323220799566782759365479435290227443981373276835257643160249601901798765790427543190522522907147117688898054424313835277877395890243464202443691995801268567393765111195874654327978416763327390424566966827358413081104072408149072171567157770206078525134766281489618206755739453372718891910351338896543420314587752559361365138909307002271856851291053195272187331071782944994113449496830575090275476443870161726458935543121458967206707001053756752905761323228585414912155764548388517709152790308941114343343312359174416712898254081942706123097110484639709585517992279134104273232305372092731583345824485677894847833205812621336197111821109554755102515382993235658536318181539187652863184677630150579709560610221328335243312307787012569636568306142646605330295720254591382167243734211015468563866019793847302381749319554465709587669052920608862366915705279390279610534952290739634181565020096093262977187015222446996739484663350365049164908106608937228816556884403374781618149334343891146981621762259239127146514318574565463915216436387653490836521459562327093226814102890638974430076291051182339680044681654397059750052025534752327647226696341913808773485129929645862493650514536899111916935421721154495939340558158295838049967971854697145498702244166141185871175888026420345084203789500283042329429105593280312708035864424506752940160612790165069039206229670543714958552510015132165397624332957800849766651873046953808058625375726213510470926583458710032551563516650623912720090906825859926941630449922239097918728554261295355354444071909621643744398545999832050594413911792766648226653906290326922129720468599994816762240635066772872682769085001515983717726033515712025444914598781660109822592205833834201362265095569984861864815647064741940643991724136413613143622669893718637395266241259554575085364348919795714501974004769316250046427764663709538908951913661904687697943991934014287100900975395607454523675412559631919640705487549036551488443265131547817082166065286086128798627255569456983490755374411470104841482372080777113557787708702515263157405997891369798816192165111038224020013449935430163572536603116266507690613863602355907751354275716049599771760643628926173185923669312435849603001698718786854034877574930935028820301009513488507814069874344931415829112324865508325923148732162958055961483156174848456057973127750164055310549516838017124647131723376992990625969007529632048543282353108345060915139969468013240686936513019167451735618807414796512418549390574820470955602685727607783797042545284148408851198398625945253575619088652378233967046266846744367885012014321214780927529954433946748950342583319889514100675626570920133846555673622935470814831420729853231408383023302397310805085147136728202127355157922177105143467841448611106063854906832299603884714271622928679412097274090732388470867743984706014754855564418392643748957864187824895270443628803321429613030834241603620884381001747292879804113324121251976889421372274355435405298804754482270144096074668025280655010512587290557141143890546703779878657119500098881795856464830826394024715712452830541513738118796785611722350119075001050994677446730041610450242725116909340430593929085597460337783098209525481613958200490077104742138918056285875973410259433670144439271625120578712098718482559085308377974180044416255512727756563853851848398919235967289472964008715705707686468650302525599525222637097748638505308748788086339792437736192018591625180910860565575391271273596274945689344828923835774763810684296934095166612412581610903312972575550839519857907869532338835682449606587179686890440312461338395871815834390933050433502021906929571029145337181871430645769658093687811052565715242375348296090071839231618886442573273606237452813048410052830110020539289577523602004077175859906354034005084165565011573212587051012457309407148872614085678712153185528737973570144345714401990153855885808133585738863863446321917555170610062126162762009881943904985907252407606315226305916634304833971997103113273105296875482555789297090072080399587640299358802392070745940997447642090489040714694566271777817120757514714141788956972585902298907054316822774951571008595022494199812580030656271982917107742725771839171161643579771100809888156802571607348219751709378872385455029453879477960505989442216772849815030332785277672300829920748023076568233399785162293655520091949220807214703331362849724354800100529580724613359393283336243813761245403355356985464864758803436438371389262549703308143546336534246870002571867241126400027083832319302017757181579435435270315283079158766674806659508565346345286511609532111693691640160821906034260803542956659360706548041604864892857388169872396621507590458234445452272695789764290152370365606447999920256354657228661963956289728891692658006387942158888628361259314409982587161030334841815007444032313136502296180527156573276280317857327040134755325853628306836476094211469432875547837324561594906560310358413974160106689092912333639232365613579727544101093654325451844406635648575808895984486608234823988942244281463040915873103296938266294210211539824704892591024411337166807583404500657547167543072849806041171246728145679935140340587450970151903366568489593003115319332549610792235689317027318914485570918766527587432536177650878300441143383597673910931778173459173019926067208732149595616584384528650974492527131219171939162551449696214685427996105451463157342969079865625555473936896367588653070055219437600599631262112354121913294322370893263567568438965349683334725788683630767904224533946799491810515167475523328420330620194283607392138933763392960485703766847138060058228445011833793311898967800601936599161488011784147731785165474323142218922959200160817950904150880218823635946008932350736899019068585326779494727566509366572659412151041009930614681833433392481516887265134817897789196309677331459775345874465049269068341383710895771293280558414826321858503156898134162310419411788387846373847786521578109712148824340664164802129143872116487334835037352276973130832283581601752813867612503147600990744933438397389164190372382247649262189245296557524458374500081382380954814964801038607495481895939564680067268928428400406364040496350180620656491651068167331931372316997440199371891608646624970053501023333728985661420726293353288686730424744988477320623865415235238060774995856827293043035322176921143639516067848860945019622646113604082562759969673485464078378516881984617382078749561483021612862087756347835006768984951863679448009340378449457957819475865673497101033681034631195475388041456565597142518856645174715374663226764647233037100738197277878057791369106005622528394251025667811138066497096040646714221003900595952491886340737605494928269150510923314922469421585711186023700652145598453505610940628950288816798610953550517943517725235789744341394857795122069747340980191310516868441773627909952128127422626030970277097337337247491434289624570060514575669790997816085454202962098576936476899714355755365572761806896866871267008609267421385612170975931854392314012556208304267511640287354260314017187281559050713524161716809261302396871789569918403067057321232831819069813578032064834999700424948315014862781505484621823046190225152874263581171020679133226389963290866688204066317663484176463229879099105769539328689632167263507035873887330164394219487857081935623552682760171379123956014271667125310145794698362385832901550541436003379775815628496724325944940801829486124886924612438060648448287557467905584902728280692286433462597129957941493432091924907860525554118276880286301700322553949148920822310411518986070480914908815798726271714338290536407066461012101488013527354280264387217269625221914697704906800905516894427623310762355140868123215261600939276714060296715972329744725031618378657379878865462473583245879053660884831601026728970514350348169118742256794686153555138889104061198269021983839720267373984856482706660395779595993772356812806440675391517400146358586020326298587867079942713606779655015958793253363020693930942101852820721235030363691397195885480077235961240524067018286860404718741827108956023021349502167460282158306584752420259648666661586269584157221839463776715676033632404509937146443237972110143294043487092514818933971415987764165921486852337057821857607795349161056144540170117302029775120222802953479553787750488292636167652232465207793396102095948100800229534000343010986299825633225360593452142637068287973613072847189321865724063843081078194538954855405908628997482193784404035746972098787151621913456337064821201998804978551382684547448822519848008692816719318600016184677329246823605836775269434860675905351077499549299556234443214593620306128029177384540998275337551697061019769173600407633378155436931028863749782071375822606785377011051820681491032237152358365240593791810614775881583045299597404509244960329993971348163651026540527278317241634856751233620696950117088655122802826663289545298635607381316888067750420436077880990099666677045433483290544951067316112128446616122080610882299489628910045764944816355509688009403437531152817643825249414121668487772603289219349928314387373202328605309262707612989353426523839850475577941954502896826653579046825315567061227482619039035476284627496993961380027519649704408304534867006206528569993432884337792472674788717782128032287778744842167223095509832562975851969353138902948067416681177173774893743325464875124171790876312422598601223918912469700996927016655983007160293602612802727138347014521724274600363223917228283967940847009125964071865667393134111343246024045241259255313508926182109205118684185627228025311682555317438402069283718446097344075155552597901526763175326466614233647630683267263819881339101877423965203844734993263208426887468970609250740462981211086307073263256091334696011124885926180753348686208430771126236249859635704569362680790473785614266170376713426614967720102584761542977678793899910073093675913129510393935883228146192408346392363725315537257399904355341754082551602586029592772372433105790500839777893256633854453128558403206864415671705159124996234609376242408856753355812298839776235581318366003985906512334715939116698730312031308210026410076671554104917731679370864839801829034808082869071992928181197348001431472268114714935285458990727881597192840099588572824706074093983511079243679839715470756591439762708379772380827727690127534027703385899680882112961758985642532791961140973684483061004468450925546694734192905330723749546982266003292290828868292457309005462067810852609731411791195566227645042745254351004667918819563860075049116732305089442540974923202455085286259761629945793216550245257328475764125665052955678396910572104971717699129343591881559123310329174123471779364067157827664485397509280891082154548120608943863683731312606035141579359725250018604504492450844132606921229702426607639908886668170497618857258557040572915821761245236536572057698851391934468805325186863843497851213098733622437778807344512348804362235309906681224843605094275154210306554136570060791357810081925625792279274289838414890203708474588573656622754839862626499479508862172095591638949476640923480489691158478698043794031282401316021899528453198572195222666175668545193336294772292365981063116334004802546866334349065365197732363934371653815018933614325003468802934316299874638490715599076554691805420353294669589887606434793291685345507907044983205979776176783628421462522408731040147838445948096322501458786503477842540215439942678716419304038633365301091383943946149067007370070651898126935656081347370844839902506853456806212129197056290442453399404778471362129823741765866449145994032204107558415853042670960348673034831857585331271223011555241706078783359002240156191853681307997845427317226839005580198061031698439972192155177841632690883175151586137852348989142897256717037703031059534197002768994436841041976631882764416945425686599346511446500480455247188964982094224524598172709639880152791739098837272931169970054464057841129651566362407624607887081481196029152422545400347245989496697343281519177691112925232921498840780011026014668768378343580103162309023811039686952887730735266585018121417705797804018938213138306846657078731844801049939403045660897631310169229470447745008092637826922672509995267180296041493935047725828307563098667171348690826392728628001006345976101329033166767938452681267411768709549782377290971019114190839638772063089143610837054171564240879357821015111240538336341339735248343196564653302498955831750770428922558791516158811783177209190115149514122892382683039819272125264389761137752660559480752201992069714931270682048026378549953883441245902377481728401276954069388304404581603251635799452192375037808091857571004302630099609445368004088316000019087894071387224989267862915562804141571927383854338239025752844035050649031710688777561185864574088627061149968982578384970007052971777757309466761095855344284067977902401777163702037658428510380579141143131156327577765331775630684201445546439237208516156728705202986159844458124919672815192567892389233560043918399728317875527786251664478995668515361572170144706377732890489997948159986109745423139565033103471610851908255872493130641631723394361105468077363965489803210442990182117929041929091573417368420313156185744047020690031008353450737198866964942580081560797921516834527978974665433306719734680084000947951234948675763215908487231656258151093175341300070728260020109115025865092860424131634111155232120193749245076275234578225927596416757748810544088991547493924929424982820326525166009943225712281926463189774427292331276160727413313693059610942518740242883526986718543519892102557074560326071865787215892463039339907829981603287004031802480796153933453797074327001941818583728583548697421582574975877784744460978579809337551255237355534769262763967883960093842301796956737161022374485765589780571341917248375024312397746536300247628534904809839224299736246834165911375589526789761785547787564105735543367530673187555426474856261474908097642657407400244875916366635775834336359622706032695293774937494421884728020708027167513445763372945667979767677084642182572325818627723457645424954858716292865088059213673463863646948173060092498942617361419638922581106106873082596654390514653590212080307774721863304058915004835622794097248838864031023258789250127533469427473495076777875955337772845882765421286071273433389570828712731425308773649074475987452802051257674585594886733914056599735249240858665620972292628793135184430152875023604777865640262985905206274148259222098424146516108086690022989881995897199870178296184549514439279222533968281443281091734092841053577551138853257651088640827740491587901305122752386245717955199051873634693891408941798620500413051179222930584492537725043140115635356913420134205608402950333541891675491166315164359243921400108344957514495036117276145134141720138144049288636036817812976791519475140278370011097533214289929836721422105238719616417800170870510888217969231404507588976027755551595142549969903002536072479350154144137226736506429621586185340244501072705047466913677530199010218121482215083707478690192281990380478625315293264330680878195304605918120700369064221358754360911680568829488620339109894086597357636524059711077660675734706687981624274153065961034095667463113781680054801517217109573345470580045215699557710802910323020406033449294305550046686434039109984382732923781030006437745331888667962518603230387920216653986971201744969299134811340294914845519358736257137026626965510705537793300620597716861923206450012684999077842265090945315028634882361618397243341273786057607076674583919023485237594010901255769044617440066453074966366369944898314272670104694522045450120266399780176843803776013429312136849746862516027908871354878636415708483774871724096062563829379888487748953053854212765583276220722385824898082705385603550898201309566957612057974465116344780981031361436715303203643880208932757921308511862200545628275130651443282887905326889465000028805005874360131830757607875047205661453203947381674711624908001083441664200990439760398582625325543953927737400830918535213825803912376930466046456996718228892345963455910228885575430236361602988645467648775554113099960414999402577202717370799922727812077076932535086592501143279060938938884160179726994170508441094841796904218429362659507868179864429686449674806696589611591822290257732878074525161594832062110885415697289012526769831954588193916627282911574947549346309274804296914764402625800066861776208064480892444412897789982907771323880253649744926214410421243252153589550312939439299162454728606501063996066115087664226756179186791934611876189469484817619523733619582370387037349993435566538896274984929470303111376320431929482959047615820243711186627623696849784423453245747841579991435860043268406892631618863359753374753238613025722089238337367954615411240428016663125778364405324340259988911599123963423851338821419742907977736764420784644945784534117402685713205022832018489507203463215053336228564675023850550839149399515850283624825445912490752519424530772145452046320619945722654265246784578450315448180956607929767567103473661143673134099489374497425620114484109726636490682819960225550125458197156443490592721808885326959575092417522683927377298321834811378667461255800222463244484135081651355333490037600652502160703427345601817574270255548006490078310684690462995580726509894337316849751261921168843100046642225478255151639383598150129233030244081910810897073781878523749445835404097706176866914552702365119405018039689187417667307852001750301301237209682186380654210794488512172528509995932738182788527440644230277567116318185816273855725814255913499495376820017602927694233759903089566811757629972186613323689963511386447615362238913904281866462164762936053012912987293458716526230802289016215816526607542130802678026378824951246111533907818320793251411314482147204172720998686568343772826563689115044323329282565361145453582432314164857314015067350518931386999811688817644301755955494259160726325909657040477394314229318583927242504516798767126527406805772984264557591154444005374297155737346959361747626162122525937137103197344273421801252259372500980267651231170250043948831422723444418876988102011644866583295906200320229916587891029364586121076863843928075340906716993132301012006693818941280791498742949960178979807544330953965636207863832780458448151778570054915003897672553634478244901504218203267697232723132328186481295767749634351306758995598207210480378586344639817056794294897048000887625782711075053943465936579164898448837691123583566575112552079383529650033917828701627727380873018741850377518424988197981174340507806660739458442003839665807508575631825035363148558312516881195503768402104629713274655083003813680966952422604465969715947535088428723336673328966964334656753191590364437836179204144885939274026378340067289690748685568147206114714353728362436326855970140027231947189125452316043193483237609842628147809057985040291506390047707257717663370296575454404453739825146032913945917369282564435400942338550741753152574700713710663340778688614716508430235949042366683786306517611992586749076837749659956961737213770451505150990376826013665080932154342310744977270616143934134118833988977811501986044543479948185563129111146940886954747276284334872221481709129396522342493219011402173785678574672641196327928694193359475471304254918994021157112290017401327168489815162590229999101577466614685949056058288151661148594706939171308197754352397075917524092446982103273906985539126772166828850619558115550951824752213159904250143999923026713262590072929542233683456918317476226967527680606874716841990230876517936417277557001580409125440839730606310591742278034126651417500858159494443360052078742664429177914585531953283544169149963562297613750380987550382970021453160694411085331025182782869983644643249865475641155177072918056196190020785851476887756042871256693004215726282740410804764424468948442975830286847821470201089647525023971094824439214390192702335331987010387968665675548176248163085796310771854474162700845833856684871552264014321972441237340950232068247990251139515425470315600108095671175803069898853057195827382312677905194545594219122980606559328052812805448782779810395326157595555494987331649175538929312081257181526113584234352673765903568723926948046452185178687908487978397415313158106636932891064144465518166104193134993161872813494234554152230370059368161228230515929731977507784645627522272880120135467695569722315229945662299159842376163407842845831002510701976982974717622348874637130424998356752751477596448826501335439626596995184352878958901801420927348370901939642632183978997957742833029632705525324857563446542997063014125564384095059497231667970610318488279881182338550450368795330834644115690937508570384812815181583607184480514345281306469663615629980971871450291679668830475029961708571885170626849944353123780637184808087548426840525937309914787310536021005938469481617091037314169550443920929937948269531184003287838485838042680765941177356702153111512468561124685927298814330921923461785012385187688428319595905780859194252930435556677076774634464831658679357459872937370424755555002177396001146161730632568601042955594745062623887902567175917342577037987739140768564283048976702283606533937561940950507438318675989485462276374975474468948138872594375313654133601705051026683800522320768661845150329044616723818921920711787474807370648208848363824031465420700423410510129820084959576888365614297806328435754370269543266789341843203250510566035908493009226465168348493431884636785166815340834463142184808110817079036261792500444552820131758094577592851133024671275658936049853991254389421963979491617354572320066848530949934867302633458699107802508572592469856753577846063845015798060985824298852183593688993672866838926879117332396403426059424160088109716290952716425819199783704854758907461647535946363965738723792498436418381207663428983015708631281094931107076200430107026980847496612073867914514472043383113284623502189620563765965021173095154553874569540381558138381241087410369082048627510809567392786296347943631047403749695914130615459294652298492802796656397016597289786641126557032448724308220464900591564630354230641459224877679286823693808292157004067101513384220252620793792252577835349153051370632559276215219208342927815290963370444403444375178089018228871174512779455364684724109523941147473699437438215720359376866039717260859561975892902499385752629564973886752228546456130379620246247156672501318530565296923449625005556497850644553569845342175685639162748250015774558741881759293914597631365030572152833955150735658455618958031525462199789754847677127591355237882055098749178244380762228666504114348820173321399283229712807830233585340689402737649406921825268590315885686335640044294458443247435399970142775271212099870657979278396554366601702722295766273904639522670720108890815757560105397893335770739256047690937171187866211987319116492738847858646248991635828818547146367123037625319788410089278566085979457760311495852651300918966679248058630624243193281551569351826346684426890739726742338319067751542870664882709178008692275268735295919483718602197633488367721991205697706535302093828306083072876729124540844360952664360783995057289910762327254782620204599568540692523917685832044773462719180930897220341846643024006212742387933675334842706090906037553778837811217589155889716686072609123487878621070077367411046942097399954311153480669516949296389177111781541456011685532788562342543312356149547997148069234054891813134102347278358981248080190626581467156989669466193689464187846133972601313097650335090822745676659806783617641460569946508456145226751617023634622618939860948350974183973082588459023994709532214573191273005265909378202579811606738080073568085195409768714045732584602534479104153745729187269505683938410674015524004990412274974350781146011634014328661799605992566752005598216019759798085338003468819648823473078289967055641444429728002526857306223412174385883659980239503496780587653535821255853851587027826146101861656168617613956540170949331411291408826110435412232687903182317711740357593165011164966272564113888786653752417669402726598402392537709408269518309725146910670596845636763479101494981238886368084953858425261572026926289670424624982698007377255455833046442208212409309004193266719461597128564430165232944055226740440151494342995884729916489509066383826409412119867848837476265609909053913715714818765913988529394837126515827420952087723526903404403731367183769439103462193202575876226427016909940997729848996467440992646775626531357002752709072444748831119838996190066424432956602661183727363369885269079599314663622781229521405041459040500941295198431033391141843125710774834750004467732514263941447626175615873777115133456910756553122506888830521493360562351912280646465103136074815144380841681885678203460346607560656423735921953452122299301845066115559797469721386626628148250937412043272607636028572487092807280391511718949457017950615079125383607460955157888026490168959859299628341827524492619218792515802781627940447988731428194989739817012470648612086315422888274521082444492824347205078846559412070715060578588841928251556868267922607264441013345273844540613990606074200447086468068708649222899160337529890138010723255092034106175802122534339118487334039826976158972137489038518495953551296009275115416959572313030537638311819713687260392358720464035597718446450859553673073408435644641574329996235895747542393847956873953018464895430474703713293431127668206897698779158794700632722753829309108738192485557296570286659659493366469892882863675774905940115171293237060140569977001478225616054016366693194023061842905219026585719808797841139535432063027037141343312152087893069119784941960476461226714136938977478887781365589792296315066192520358438604321779327865832552172310426370979655077032516055856575973745354832898743902250468851157940416287247375848448439158350297448712361209909803687886328057742641261932146656733834751939993185922295485082435201486832215282455523931049692290214752735287043014873172854553308732132707945966462784500591226634500801880481139869016392047894052953020264092958810185611612122869829552367790103449731260615981929148240151382684213016133517009342091147833202277235632812348466759711794946278887759456367878807322739006800674142882937582567345217194569244485312348224019426946119057970722567490699340822803089701175113635168710237111790894360116597188936383156890012547849356009492696887202823196740004635810050690797112584910711515077363532022763271760947320074919687459091621140511549639595442513950879466262281193093033908324910053223244836832388061835921007847503834237517443513662960087139830880605551144172432129464612773753924821376302600308640977335412378448701807599430562522870552755510621366441374428059712699091411400223774141233640706169891652159748716830095577842696192949463889040698225595653783671502356843759136426301606797047142628769956014531101881295263355143030142698782065335720734480756027214900654117305679599624368306168101555332684291454120568383214729341880699777530583854549176337535642218707174388455478306086438990491577107400657677180960905928641451428765503324415789285092977097754008461226430349379900275961359478225100671037760997490981862008866464308823139916886587198535618634957313091348518328776159616237966833635233390072292056050422554589647269558604871001804948939753314726700960559008184843302944812794132615714853531528250123182502624835692035734655619578067314122104026443753906886679004860637570097576664902523590747187732537750535462964551060549202792987359180212442968172054313614486059814954989365563051393127984293667955902082176274356754076118470568875672504284455446884908595004790501022962703153608992477162775192894564963139439580274420813357354613255811286958739248410175749615438702545827840939023724461534867621353538708434603023691195874159347209875338123706269049875792050631692233459632291721765731392771469283125189551983320608379841626161855440322190197878633359616074062566354352392346202949154131884430792470595017052848364583020236838223609811855958847690987358123512396683424329744512884290070722339367553054420374959195572741807389202261132729204236591461176248396672985013720418513452544050400515395112510207055387128922499152354275586680342419259702457988491914538599992102272329071112261087180164092933434052618038352868402688784596820908841776179594197799200090804659449625388816213789633734644108467657202718425138590080856617318860900616740568254446853995856001376979020234047673229032417940171602540349003095157603079155438623904300477528849666323648921692166545635052204111824395985966795184869773776449134689943649833734836129877746912877872303362804861662932036127025216144748663229133605584991008060157257978948934002928699325843994555508844155690447929897812989684974473370519932446539045760924055660077994377876439796816977255915125109892861355380465206878700502808979050867476492575822155813146627430762883737151690374408505881341467115552936436268445142241273042685572270484962966884392384261065671267063260607658219188195690589620331440010417194982988578993718061594754054019391962559419253052842912110521206261513037865988684956449052624137136998425466000975355633422018333535424584507805368854741047013496205722484795407660977106741946284952016876839651886055890037051679843713943591483788549329315819428818195221417139421819410473084989278870837502144971508350908510146705869473264067651482276231310424715781774060703298545710289502148919068354062731944997313052158221904336320950370012002017703588005351054594646299616391393712064429784304751712436023609119443163161142434591232774637627594769054603866954333315327993152960461381095647615748992943195309118740343067403966691664336000285533354094273941434798209021238025708106057778606780811444102806632681143580197048212219332468856227139169562676124189558527317368387386403447532549816295931183524554452712664263701534865227926335930584270159745932365006565136601892346398647618755131660220397034860590785680102490505791819004379276247768295575345357167696894948371157835902994561922524703495400642598385251004271909367742627621671974814616787362343020536673837530401333061996007170738389185205435305933340799209992087852018375927015374836080774880890675711188995930714814222280390049929453854969033845896619752266372317224317663257649542057390996278612583690743857534072806009263524402422505701960568223866479023151201894902333004399218094132248109797838675275125042209160150502557022702861143074336781110033793491493807699906191925581513589410949600327141091679654194371120988978604511646902695760585687480570029154654878554017945024295403008571166313207789876794385196560161674650125041709269067657594884419158708786116788539979549035720185321962110959802601874911422802747443642764979110420631340199843373654143791123274589079186517454331677848461746006344924198029109922745640670202447397533703679109588864257169075412010604488142918026184899896862901798686323670168406152770963771887879450046084578481689494927978642960820151170055057008559460447301420583394169118879481781283960844902090565544725534156994635969279437518045627727282189997448124792100370784557501215256993518500379213742525831850827137495513832765716308901928517402649289357639050777623411324370175819735636756246707841654497307617200878938997241127366659692406729696922982254865227036933696161656707070553394586548396497062896922056646639904839140174457027797627678903312545098400573097560775145514710877010358742416135356269924515423129822049336890493827105019181441500046191329874314126555427642513051585619121945376890183362580832585891990833486794928580606174126409006113984420909591829774261340226020916700326700842351619383006933007559643396103978149545577589387817683108574370621577665138751824054207686025341701069221809942694059014852231201366404886503215574865043023177678223074927137623077881146284908970235234936288127513107772307667125652585918982546655809677061660960177171077383476759382184538202097854866374209381365964758866803908138520935113320257627403023959882928628160014024883512445866836698695133101323073713363086875596822543562571998110064796165393597942952350183120509104647408267411554537055469156816914141936156408678611536875887430213483256377895224358039487808604438128027896122488711579008880918904136140979793723426930223228390336531629282683882748670038316226308707962189340308928490417028243416391648095296093289953553196332592713664466833620402976915857576825955153015602875067508581794930028857371973728345200681632388023332707016693348923742799466806697102700466065555438193731366088222519463770958948423371499847133209425897982766968699922261154695614139406516877401597615346825292920254455013691680878958331244531481760999707775275911791780330884117946471462084925775767028417599022580113682156712773393746505104829779579017748547568100770455991432900958900580154421655540957979287116671197517525340035805613824629385369772310032453157484211826827504884980915286116282264373539954927534992764545712939496642931985655468647400763547305106459779063165642869345710030652813166162776111065215376527440593078048058637075324428288480126084059233045678784923503408664495551427106801359208789513063259067905029350344712769969495971623259554154904188494780036172022897046769940437296038551067894601404077311179996347361841135575213581955483480497126407957717181805835613078094645463327452395101949341822280318419202707460708510439989733695878085849719503688491397073036127313090365298220054544040075209662570666201717470175377299987873224764718283777512103970391300410423273653913130419083374268111449061232478718698146456239978874790461627116217895875129945819249606396396658582710699733767271729620586975053183525285520714000896481023007329871765761297346088963336797920971879480145746562967041440138219282610335763480439132801580745026839154313359467310470837636827906539341946846317700165112125139074014614041964276299463596803781536663617355388030771232099385752595829817994487688568110804073507180712252322313689266944934780162410990214497224945119167931782772067972200817487118461417678698594926024264465518077840043322378995839265091807294265901662597808434873310489321268548396416618032112432898569531825908459145082367994163520034965750847626432014380993448501013334499068832937059098101591817483872339338348099592003806104080164653760487183857560711826024345275935875901272213909203293470652600581264140839900847413410479230664879757687074589892635253240357847028289899832708830201918859731216701382266485307488683144149732736436091601172003172305381762271708236968060057594297913868316087387500180128169152808330864119797015563905090381105593858686762695312471085106946229342972865597107224080431311604548896469157415330512334690937924842140773354120140390135437410044797753516867623909952024395312772780990318192958706016371334914312041213567734238686293631625964453276011167863861301859693947562722831606427572299994903551374483310287735705978481571686222512388260497230158251356633444558907290840247626629698089265190430226315119855150273123962491758419026835709639356179799973765504678274684399609594978944649406308946135552015877516351635661041145930558982485518004136842585117126189991570387570500562489465059294882872812710134051999909182846788267608986072039989523971416617592479930740837532927793078200082765058104020693843400874652305023834213774454303039484070875338325125397526416567888193079449920958884157429299975669766466611890229528745352980653285319937178057435042660145476607916299428804365630047694984594054138251808820723171075496654569530850087655991370890245502320385131626348540856251199471804829674322504451740356552305967890903807002731044838716579047885119608474260230938427074634624978154090911183691953158440266445098706273170235028930905015887581989245770211428416509866387237195898490661434136247603657452494488150744101361498872322834738832066637710422069837649526949335760544348427867389106481902718090693012739282162538255900420853024127841802051501312220570195134894316328143738346383774064276155657529843337277585986167707075671982645289719958966614642249356445024192836632538549988247192501017074689161373128340099420022718720770270895373270062662634839900588940215107080774260386277569173631455878200880278298770378321661030842854321498613401966276119865414170336623374959253436463654664252608804658813983857077096740625052589336211133829778291308599992278849354244942845582385752789673247431944324740516505881845895745691346690676260750607543264983826686799049149023342145551692320728346134121472432366856373436411629992525685103096058960052373132306837593304029399474149240750224572643442384291431180781330690541897883132816196057989179186893871299201952172462197731438189136250400139349785011789355102636475541523512304374420360890021567178699654432874303511123431250095141551928942671194627125955996432901842809718284473078363216219828685063685215228640666646431897257163373155886520110524611067087443278172423472399942706162641431241881545094603621957237101944656304253358120703326031872394828027340668335090969765479791496752286651613939385470376137362331567650414378087354103771321868958340366481078325988927818302246166081254156342321662021759676377347953151187813572755515361627610802950677985430889389109255500336281785695732050677484659498523461373716755143253838340807349061353087841755757262202999829600888489858554769253145482120535295201600504849064207238788979652979275622300217608315264983876209982221315177808929695022413353142630262762339111262825436836623989442529294493471653473906856049613867666441892361431620520212252723631425557551657332955303947516699185216933461381488842661421245599284112695194621407014012525288352940264067908009755853960435001535100843624221405210737041655366048993860086821415401407202809684925286193603705103118401270178952770024086339252774421115572908162404143887579234683066566803260723459876083497856422188733893950534177318222626379870303541410988328756548221934968717341524761391259648194971625297269082894623482933477704738051597080984677414143130031507642202317748219117959288433138045949584917660554855835601465661466493799449087978669735373684739362876366414812556136403679389878613915827637441100884601210844904147029464804755786529732979811480129756143331095979366041198816418619186752700643455099859080556110862951777968414646000926840540200329763097456305167776393944099508032525287238855390151207433314246551397748471121916872168311444913499740166974318027408013031235475349570063645029853324747801004758443189472717523943721016104376164583371583921212589428554146601389901183452076171390960656762009942160674366183523664961298553221141979119083949301989559600869588315463149942394781522965151720678263284243303415656032107369789477029771323124053676495526408206278312542012908145728840176973508405306517222524568101759329574092950436201649812217336212309313755239180119604127132926262764893508820719887058276824729811625980523057151161031085533716605856406233078871213299090564234865611731465613771497062614483589780262556401703872829869345123419977435014812722551271639042779364055670921201107847030503585368883120465940170615062722779359468259738488631275166006307211022116599235503227231248213551186835073759177448237467496217137638926695130081674256004881796553777493195124467623714092964366984624781845452267310411319408025604247425205165614032601319405067279738782155365885544848022517088859373088474056855596695971723536727807460213397482433201647910946297889336304208220840206100711411771302003756330327223673130464632053126324776945603734670288084466680833104809445534806808791603262918998765383778823832758259383608865175426161975028322103799740241247587354929516969460232208164364518690543489199496885824518065593259423383475769814953442651457231770362431308939414344803856782154813111079676450356489759915801591283836930508764471954531076648428492741642768043285584176223742072638441005206519773069163984976092449329979005725255059406087675210942549746078344452458001416276004987388212900212085887707148283324179814983616638424213328365762016857549726674400798570497146353539640067720616918681212095009655387651452889510870561174494111223756439636555613036117188224265270136896869352745470009222806822765206260610683096037046732085188271931389827915662186562999167102080382507484897545798567098310511264407312932351680944186027391296826402403196905018185117245553205936518646437682127556235261598034059008862599399720262783817289762383284377150041656582567991759387752756607183639391438094147067890548655526077311258673199035102286339581564444086120273345484222273805866121533575467981048533954879575855261525327617114895962198059682890570203499446962800387491744547956169795968449446727514367112870630607428799848080324060211229838076820833355957068891497828296579360611930673788124362273600097565859439127444939097726794831812309660228704623933555300254772368052076244919152306055731441054621944606002338078533539225477991367759053711381820083540811095197057399723025809411825331870604452066816646136604391149371919956782719515609902124783140344153268208228393421849513593493020476588702978247830018976941178687922502829177805457685007034726501129321848067437428066556738044101635125397173928789741206318697809446588409028644225606836311613685234230924313514045787918643804189844815776796957528023936291464244063250404106049324195944328979061588309087895023640956802902702287004733895953473633023379554358115059953993294401911983045839767408416004064622572322753153899196922467096670884136363251674668004867089557656337179010423796954234577732888849159024628257474362667282115825773366675995733720089783552912495877247249862013040668928408930027707717811186466220316106271773528413923323264001421304094757940681712977533803203952676669596692371875953905346619142742244527798204422346999527755524250045426103772932187530353818451956071411617779709706186503675018769279759633192932468694315001052246876417153328560282987655339861553815067561555488256068583507304619906590587703925462549576516774678220644374653399213445610505573499061280505769562096644933243232200953879394633265270102704487362610649186158664683046871708195242975433999551203687591747252582439157333761648633513462613940380790060748071942482222283285995194691031453178506754828110058626588721669564976401935464736535749518620765089778576398331341420533217129653680387315398254497612725972351599869575571456226448575143131034946454948390765906027595697024915569720681290048668000139082247717625168214291407690842724805923140866694463350322845407620377972428930025845380443530227281882333214612788018046123759354318986407870296589114736015742189006899519601458101225807778350167343407772856047284007827396121969679525162890015436569427544529829602539737355446104274752094406162197563684198058828420162644579165494587747593794339872469579020288386374471023864247584655522040158039705435042813783522514676316868023497255754305878331440817126454111418669670631235667291009383750126038104113776435025444813563521872086947820967384849544698305004844504522375921713039138104245316894848113305217471406624735936109682860898787439109128285127847288718693729646250833232007493847212952480510527102022594431827747712013431645955346470355181456189402831585640391220594687872035077715948235226410754321104227879286483497003187791990607910509205210070366174312751340326480628384486416997222254056263765009774663959793897444875268314040354334499054810450331328471394251218362625539334538969597697348834004602907957057625467018355630779986052753375852771039123075198753053586516821626602175299893245706441237417723049343430637250244595917587546801993759228774738901624489880886767389318192745858968833605912003771252899939030285178751665366876594880473287727832995769374550629576061933098925081636005837517485514480409108034844580167157053760526624115044642190901087332515269430666485629930831919361698047116580294868596102263976209616022546839626966988929950224186942223189794554514396363509247729668680200198839696371793686907811701770695258731598842872852383440653480023293128620315239566251115154379742468685445632131698527152040146514198833622167332663264234071572572187344072246080032558254417865340661283324304861217774698944410606592089154322257122408862837234476088725636604384176029346144001354614728053184525247535739049004484574927463989905124142205764141243928484695225737700230140956635601809159052801650011034498128339431390991597216272227937629622687134049258788082913261356357401741413580946438996227775047814929426679642238128405864221014663733441563317807232131891421952393640857464787824994518848441738848476033793105813558734375406912759672714295153829487156000136153373004038915698757737427419916749367202421855082542878278081985505562855271157146090525054920026166657233601839954813871668110490600277631341614577731607052814527643481819118889903433542928901820926320450787291318857399907720470340026231917638497743640048097987058456863205776358725745810185718059947703046826180445023021734211207040441834409940097507043384948876340302934933406116046290813609452305635574544962854860906573754607271341219477728107790140181253402081950505201363197048742223844012348104503361560673505060311241750975513510332176129340419944869305841913909693180547244085610894360270274252973913096035234184608640215833278820852735029379463908813630365677752481975593313969608279557668475733491736104539708510091966014157793701981710733285556897248766230365696388243054838600081359296762605776375941254409801037657617272841860642447738078470254106321485280253888618775890136558492263980195969050047293983418953469020281501027427986099143605949378707647577401738823514600142199905520396594659423382885284252370271379486362852889275064016475687872527136646311990754281807432942306197352162950810849315104163798348311555158271986698295102216729100272439745772583383466400404083333821742133582667443894633936811400234036971488333612457048317826851081454853636095829292251986722705686274584774024747063925093941304611966127008027268794590915434703436928887491816952256414346206945885618953923266350602269811362411672720248556117183505440265760137508309884504738664048561462980643108158553349226405480112715514878366332141917820367416818616936791206773250377699486399347577423848031288410866719515525370065890507512468683557367071504068816339191157699793872832978097950749326895532148329420319271489131594546528758209414874297930095688884348980720586643329656770436842534793436719402573701836572738913875728400738816626518753418375133100628172476055625453319233056622341783867724179899525687399677623313330920298045099767704061890083315613259519303079252675124700096577426953449025657699927465543552611183253479794642902981322252736201839690424430738056041073450162420025904155865573102948169727426304330869778220176576778604615726620250122822673661368545434482146030636555220263172204861472055542351356957876710141441263448024208545737772268645897759955638056185123926220283774964259790685305936345970439318651932621607855245208375092306737882278106442004118118746188089474029897520596438522731235687137325093797135027012579416130634928099482017872408023054685621950890450424863787344722111167198935738562697184206791787556598315721292131071973652940991337159117006767738210527941679028803913318744327375246687358795754175518704803411179808727139165433131569432888581000251373915624003015723899063495555411295638238326468641731201426448020051082326649068117823646174533551454973250851891225891336795417267602495158743865141273072290092090462552794338342905290070712694607341631422807229197795458907445766286821954115073146619834891382551139742329857958401028331698282369623701664292411517316013079266896258174992181848671168476537926957475654362365694440471600846220138359113116390224381095591558891125585611572915497727766189297047595763347432472015884723303951556753169552239082744121379378447238679666270912074160643322035721921142200456376762314610027774213515937066529280908496083463023213415713993735134507442857277913303158387975033585558858681131555563189477153199131843234882104802250370411878561825592099594066365113537025511244744825588568642010583126232341602073372843307605430564602759281324711609269434957059536951545335765724495707827922592042621463307603644703173012280101591905837329894338800278057321697562429229052240330567962863619089860924577731056176702939377938796535391229050316320891876268171933947147359378618256133587209469386733083941397093947277445444303789089464582102165083902979852096291909784282215555630315357648008361208684131402112762843005760321831308324502231288611260895823006471602610825906951020851034249583109829011637203624383635593835552648674912748774927177352089118507382110354962159498296120980778841385403364335420692405370878594124214938302379098239674817263005851221009087145779393007157510424372721661698229935138142647663807072593000212849006826897600367218223266546014081759164247029838144774147247374466300632600568767018366753926988395589247067902387310078230078052516235316939829105539144551807257071502356332509429390457624672383040098227618209839333263530494491038646377824141802964870883544174940326032241634011619539446296514140149379656156924748333180183587738201182228769634966972823839346746311129667615765467082202942169376431226749417778902285851468015431187524819211835471065091730660556031540586082962246731712688327651061145407719719484180269043330012157588865213573002113016618796287726129164318494398445006576871178166173161745962206558986184605013386871287286733912259399690479956991316114980610016249633919688619810673343098058761277818500461964837746918109336812492478388365312054147989739708848510119326059754440519003557480759082800399945764205118425937613726841556860232018775008465047450919605424148683862832071708795324160536329187303706323252759890838683571129876508374324149144893882489173824374017591172803426816790092287869335769786702597463837636576078558662607881923196358724730826905516734641642791250193017606549103658775680299523049202621448390522631866338952341764494574602839336821999045575226606649987257800232583345150427062038752424858112454782411568147169387323182585529838560053068933869064446719960377565527268847600796324066774753626417789060307947960465349650056727445234681915375924305398409884057645303253714600311697537398052117163658080901904328923509937316279508543248276849857589042542142840215693505035651305813815888364111318184211150100389908892737956515102363687771872437838992222591115641008068070606300408673726806198715246400413503492518234855600003779498418469461612736969137574151328559569466877327496544930425391278137981929136856105494147578567433559824270051891941309359674710558702226950609279925559229899906688644306108800440916058914036858397831849958889985694001636756880753685642178136704104376912673902137319358437136264523772772477825497098924060897599117213174375122138010598759158323149399926404007674028791354200133983674533784479132771641321330379442048411959386912469588659232229840415539054953469732037245932852501927996737370585310889619894673306298068912130802182037112636125756627071522075165906928254746613023992262642741407008986988423703928526373691275785947079073766537458471906577073688519906480908325755262523979556942068297166234770451701689256980815413481313214468337203519799973903822683319868525772365645129421850644526383698524928038722987647807840198146812982804405031761157745779430865325727253203933341067133601246963067157009266978987502254194609789154341385917036880786297418915590378967396146842511579617184942851548085921299495149574641542032060078049797817468494795719042380206708876253241942375156403015275129005163915956008322667822248871947361796247399927385055419855770275694041851746602467053682513618634005749629007325331303415158432449807083407605734781821597765103325630917658501913594630231472894902950792643233521038233258166354978566805139688675002858817971178333301336298229766826656666086412269351916794424771555451961738933311409670207039681174105663801731939878819245197385742856218397697959865367451108605474719569291819337987499353040229530856697608391415250995538870117362690229105734956787798103679936115496931673403532193741794913683768864052436213041883374073591827585743281263127775038935481991959028192025762100390425011196022417713720825516390797434018773401178701418288593445304515901699781519687530008525986148918600178395741151563903000941883400355311980275903478677963828504804517709437790351535910433292338748022540463724601451487691214938219490209981568258208962238903549467184416985381812953219129533579433644023988024621434625205490472727519852612665430722381234587762670632719386444728414705564017480822302476729207463024896258326164167950687632286977038436373770362333937292397751437495348142546858677281226829679799611637960249510506277116157824177817973648180464167439899965226147301146121630155187615328251493632829658435921059236197845510405510270678624796628993939644853981344799180926207264643606568223025262825080826138515309450668769191143388690652802803695534432409910506472646616897368882158837608335331767034767730250062906635827885088533232986197019789775084973557825083320463988509388610245673707049969127607183458558717089683896699076539727457874606446327014064793136953596469723963851567950398580648088711693060349174526926917759281954490499913075824916928944179213250608578207448737679142335047679516201429794482877339794582634189839296260604290870513156417323303004406160583091829992594915604215187353387493044791084611167391538114561899023711174488264962391571700784582417436898698881190853726429925034677098748188619801329451422979132815575229989768338276675778635726771225414092745304930310236638725708495112493058626023886924351298693635645266912838390544603582681343210143935390835245101875701709497421340749189651154075111126306662166015070382254351197891870614378657788502200113353208916498206438067094833229739587131467719791568172110077895206826645742749092794383914849233998461073294795553329626709937283966738851884580786512509904843984987398506520056813635442832104573560492918760747586128390567529179402675522218525943433562096118400660093365652079554314687622837641304702240718484811833553925952575764662045464683440343274119649132283959505220035250908731458183523469196084998439091201057530840896183029917868928261494446905947976725924107151299969189251656916562148051167838350796745991494587221945888948834336742723557516631728959823845946363093648572912424449021245017483827052080214900600939861124552552739924941854944034561808584576245808720107050541151834809629379580995460417257742216262903477893980562103256218800235429504261770324761452727407088002292935415763162896389233291906575371902828727492548878695376219109973299881283310030498139346992661472438154610672692527784275031231145719238080104345719142283646397617235450715346501121214887815060044368551675307525465753401901166247176353239031512254616154541431546486251105999181854076191681282357570179263122483911464731843666769238352772373709560586981981977701244864593416651124709269108415363199491851493668344552539120428664802344467123398996050753539867344554409957037394427853488349016618635920316073096719357398571316798685931144254558962152203795225580880269648503366312978082336703780255917816243799914990203460659963225759106413892496779211009808467580564258690130340082055041574488187919223504343656317079423929897355402040676806113283358749408050818891459725079729613260671772113425442557118565239454754551292310869709212330801329135759893210349140010119522517821974008395548663066169306981986678827092572231770970265110225793009053115156103035227450860714724949821947858224990280727510744710935020569602456434492777538071971281176415862065825594510027008185914529651701458314363682306175127461554017297757729032224054054444453827630843633763230391940769012219294840599660009162047442408274318865364072573708407031172501154964773844122184851879427852666897491576114159618985117507404051057471527362758104287752310030291849882888142213796014515854617139878682364344202757333478773819350559676156679900241214685844799439842011665366984862478311831682388467710702438281822712938144701472225624555264486447627400729706829724227846830796115394111798974277879728995854951738341110722685075198021467516416617467403659700088192898800825733356702663093948030929936357862265864273475416777255563165072607219483299174294814846506453690213323838293978818108953193184957321165760708494202319731927731950805709210025667610502931687478838177784519860540529336812626546282207800105586244537925391383353268305732766548633936155451284675494795493614086179131441268177562492718337208509636584436940066384898027750604940905196910787052557219647417257058999283822318170713995611328271697276354250644327080434981308804667991608709518124885815895099021064437908271240705666190090474906310981067915296419343427432085870977283375421451209358141395867958573047828686174358265050404936762998277055957442265381908039982306758110638476988111413516308126378806769242433313644920186234519296398378581164231152745572914934092990676443734624722002818936786349365544368916757384574166353563510683307890997830239935782429547902605794002371788898292827905219497195094587499450725452062885139069541969125207747641131621389231070958884064771989776725122726521953028119310369193102564392269220209566429825655177646787890004286670369416654533710186311864955611307362363732911193065209511820077531309400661993331048145612817421430260747761842960673169245010849080055177517937249420988260841091753592203669137990595167456667777442728421880644468456723513555360737733003420175754272093367917959963213833262355389527889759645874922741887232104848272032679995726316264679592422506706788849288788987996001524957951665751724048780201319384083375416104942430189804301099682623498840132173765712712198531882829459741598710536555750204298475181761723574813100662659595854715769125639880445230331967601546877370925572877130650162193736179576628875716826248990550430409821745071459610307749536730457674134791401738786939600760226728833595435764370316448241068199040095878929837559819494362608337195533821344505568747331899787550089532548809494380524183939809091061424376466948580839911026211935106586714697046408121047558892302953463683759604833369632670913890951599627678853100697822052436404432964692545456389479220327360212884377855753721312794204515042520111747190707097331030527121747335611195250274579778549435352271407195294674630620198095131871709081158082879958589968273999328353269063095164366341346823179555468395456437600871205704659789415669570236919267598004783988134079379339671679041109199355908590815562566324725125295239777795285965494726347423284828524590525406741356649954617524183871380114271922921671305288139577659562166289187285507058187946619669147338058442948790883929669996577007268795657342720377201422032391600572277758741013296120460727428332872803472344999787367384942247436620207995028620938055141946712653614630440516969716288872468023087918687880325598585742767114644800650709563553074368498709762011421623292501499379262764758864520012954409180127768389490733891527583428118830779787233089773582095748984490690762252986498125791302678881764293447120369200806043739202093495448384551482327771665884700058777400325493778832711864105940682523999904251974641171920005952867006006272261974641402752066136580524092430777845079212117304371032243904039781250836393231929835054493647425027485019212270839144708550707132065896671694740096442498870899267017567273904822292475672444284113255161454882699796978569945543462805705166636655033084012253486615453932917251530730418109773244483169654080242219675388338018891420379030549868196311622775380090909243490077472273136089649496904901854527966091315388988363594230638101336713338134301591780502589197590889691240642513687375784511762889075371473742110338384491294875609084474238605847922168347141229321138226072262596405054750190338592912886848387515006226181370316171394933300182176134739154022837985020364080590493095213105395378378187090097086799559224984696744388697993307320114045235011495211009910993410226023713843585186994696300557388575350308250322862939786229035282311632684267788037719559206157651829257111825979961670899374427507852927975618858173166460530769950747540202318763829379004567889076959502208921441635199011239444846135180040663792899652445639922356173001585437103833937378179114389618710597152054581691443035466150119895751703384688941634774761833501731461805448565720122224014361336294634580600853196632998655038423375809786745971069882518081272250838682684133994221458810206155557230037685160526364157874161978420023698077576218765836062375730605304022273459679736167343276056579614626583701016864046813102699562140389619511653967177786199478137726022340393634265665624990342086529952824366521942160476611893565782804592212554992629165801117049677362480885470495631495353391757867461851744543302312726208588288850951432433298129488191521578355744259428116699809094128255029386359126230702868344477220127086606882579269872408141092506239797156718904115187178103236526716818960191881896652641376092235700606859559397039861816755561280549261784979762667586897348362700404386034631629074087995327269391269307082596443539113213880385495979899357370122202963103731259561488784220714239398488330272503390976391814883616342876409348141231919753405709600116042197907711535973957546393999993566465763139912407119491100579284714815830936139029203888416075136010398041905111312101803705672056277602237571984435819952107200039723819555476521304898792598496484848572654273051075463748091327949998961510879157734277083671527303429559113096597957364584077571167523903619775647340330932464569797546721817963732534190253304199370170444837059341943902594748288974741202959172046000398902920501382646720961310990592607359741110365662516446831535699072160144012409348588998721681319154456357679363654066097475746905758683545320834660133742174791505378555278777947717865236886390466550214101813028803411376998054182386449721595952298222389494911018330350350043549215575527499838087802196224845001810251101122489244614013118050679273613662185320291295658256877778827629017335500906653412616037219897299476210140678136763827521488765669874270481698925142470037038901764498217248457545281350200264112480557761309087348338071309168872937003864420177213584684116886526903127532307446439551653086590928629933493138847286437245241444788798601286447897428964134578672661376499013874968552202091603814166343563548007584431306706333413858884486285751847050434359261038321980681263532207765559314894819762652179839852913836465377430615954406115821479832710708137294469673209356357625395638945522699927176791820093766646304244639498086776001339364322589930558732090264195303063083807655707560999027386384984876450212820591153547643597037021042318897454593251876471300492312985456987763967601952366556671443137522107951787019842077445560694645770617352880407790031921392014351251746637378129731113303412550876222605735999971982392898746749641551240059697211936083329027784652352737099901913224925344862817537226580898313313581154200575448337710607444692336668763888310895831886926369531980640500737558676361645600650633926696919259911895184779331352286713393820561800650594765046469916380310127480884473101864687895368535468487373113764255622527148318816058025520128918011875605318317271911200352392574977366866568245372506985682009443225377120462086619407552440958875745146109144192068234083290737247828480438429617974485969102849486029807491448313176165017995801203761726116782389437817263288738862870021749345358293847809158908186881297620245875372035721585010350556398471629671812196997896521793420934349017409264218142042981115761046730324697594931069198253304114847063088956701685513346437181906993492376301982892145593341875353258020550904734836482455144447168759937791612008911483414087717551700868902721495083255289523500813796740419580891280798844765279441505253933828104918456949063395706507203566896104304934482902446520686159887702963599699819636889999986822914579111509856261790157878168661761661038339702675109909081445464052292025728933051791124630779354615545863378662122218489616244412146860824244140404205524425979978223877341325611014018062441413777335694501419141523462239265115081815221695373302663145234457883734182565446532203685470783043964976941739795422514913492154167747285484768182787173276193769476843207968502489845189770115380422358252597105682068005561552970224395700591807583240460399620907001871763731437447796105704616326413707226827215817302583037262972045252401804729307015571090647832248864073925948020044077152167439252252664654982688295804560288371127729759730016144681420750813691212080507682204906964411901162903522024874997037094917985359002583151044982734555593961937383639249086687129827376922735020501913770228432381288712156286892834959028729674663065195707540792198054024673005994373424656696129572480476124479436339190908857258393884906315612759589520687148798423936755642993439595537309810424167737269546532175710439967189030997156808070248939356832197339846129681046951607105865517474545045287806603866389425652058308915146953936873677595719601459329545007708171068636333743392647446158028872907049707511972621410530006756215227719883333970581804556385207403279460118558737462390887221500235282020637420745980815964688857743279071686003316822952841223481087560083458366275527825270673418938031518144398566405485299328839480191523871266666830645426852091690391156303997473193193575574051131817813130738833467384002392309999567637136870059217001508175139078184525879480315284668028591546911971966256656141449307806878203742269697424311793297123648824728719572039221905455638221876173773893183809475915702821964932217693668034145981457541847555301847399070204707623578534649384146809982663136331491140558667201693529237077367044453166022783649581529944360522475381398589945289758297470659462838107004114750010360337982529701006766054544389739003245376477868651971747383355480734752238146952516466114559400077929527246403178977478682956258169156133458263965385295286874751023043764248176900778097970026630137604567745220667246194545979062424755372833023606023618690579007020449602578895932019925468793020972929282996780325703486047204530770284947634854796232487715535817955367415594410304344321295657241846568845981902002541086083536431759048034815521939772893718736799941675708104270606696497744762447420818152430393307545398121567484817583740195439196484961053036041592012611603605494013442957600622053851940466528328705111372641928106094597877050376847792042390585973421725127901178044295274303228902745896317196310301870884753140552443848719416588670857640161420831569304604076378263586771092061886168501658590033543692481223174032381185075519484044619292775560396295133800664069881329386867133855294176852802234067345818352380255768748977910843302222418298224355929784798416148758955168782333906821397411547847483646866489684250713866797727124060865452334670984175417905849911010715449864620912377684374185320236959387228349827404651094482156623602966430492177672755412642532105951239672832878433640933470986025319902347572875979385696812059103998858228918417671830663989041059145958647151605358334590741965317606960736795380018928039522050954300916527648597651863311451181907562066101811354922374707255056379263482277595273864488046789153013164755983766946924332041749331877792791658843583514078323774287717391177385810168757531972697661164539188883031486195915567778777614061627117090096028384327915078082416916201408287346476319534085201316903803219672845324146549232585614375807488411341245044568460104935095931836082454600568014506773547203208574651739827855019019654070758605440043943426850894022726403776392330657775131240065581104258675483134088987144112449466305443223978377938014284023066394477568664245525678150967867384654546244421879069458010354825395473353388230211119710693327384477177948779231248523281190090535876078054188718014157697206658418531845848967933387655203801498489620036220050766620371230803967313715484221849102104925758214716719077509071923883830485929503639736007831332858102191675270181575060216741390955873287513712957775936369352302965002990571159008249947513507691988851929946766623536324175259453776124580436257928499402588035691802274241246910881314801327022760518501167691314477521611291490820183144769874952793826971956388187103595166001334649444434165276581881873209231096799412623918801450998894584839928769052956030599178606186065903166769566895621024189823474431732804873798320560643173716179296781572035539365524256439404841889881668424539504702536697657711592425812512958341364266436520941160161549047040814119871100178600741477572961270439249538388759845916387456287814284631744328362760106750531194825989299936153315450654028774463475486484325288701418674236777597147081809040334956665798550265667166121952363535363451028508668441775605121161154866563490293770735993031218457868259940849379906758122010006682955603232367087552114495098309706244326862154171293757844882498479821421605034666641082956658340441937681675315308425364824062809604483097135040704309656851576214654195249640038249811305006803508831189762822086205595176562008068077574556068490358358884066971530010634156008793549961025026162150792969612447774068352609361565792416133530191469465179823812214326844438003644473132440246094715052457886781617874798200567377996888213692169845173109264978875174882221264271116257090594953002178011825739633362582905396315625178510477502647618237640911890468848852573106554086897632948200466297593177973528838429242868136071533856783887325784382330286539613319941160251471300760122507589069872669604133485563414587382368215495829644254630809439894709356788734491118301172260806476827649310044152350221421465920858796142758789983524380744307417182691067911647169463655696788697853821029276931292324680582414192445401315183454710351763043953601519371700645369559357600443590997634154545144937003080391205638761422751078550667179709829184497975670961236517634119446298631992615332403978892924591009687104189932781381362393713179400724132598011577528228068974250038680740562871436738098640944972947243191209063474477780505402423447639175573513288289017582114482247882296565589583369923183233516250650113360395381779260304731590699371629718863796176508328597895877826344435280222242686656091557336231297001115200818264217541976038775819799517384136665278958792199133963924485175361041048816059628934956716429883082749238285691425811609040458927089984188858403838495852569579640644334827244089002743759622830869653396746608231207218641436533126527620993610609093387618957546500494932161083577333219882995989522038595349161225145136297013687504909528162347508993195560026673345175456055904249002031058069666303138417905724029760683633612745735201186193994344054154707935173644924683618025466301714855772992692345745996111761034688015145268126039720378581289786576909823689923639710695498735491219427962555135266223282069088732744583258668047507102481853104222660896285066931060932108972602702893049390227078002459998919739100541011879306028551157115254500236732623576076464850985236622138314087276501311797733433647366853661965152337348656627943286165574949552058003414140467322007233416085082527004117276470882879781937144699814315362378047480698211923169148920401452771002477367007840580405710610302444509935656691536789006642652864272700487336284172866927326231738294117125679591344041589183968179131343908707128746895581419179468817505101050515698991485405483633862675866901398331962813747571708296098445779361362952020447783038036308251120122014937012565773412350770119805907105770425331832119815589531011938105931729291530333158836414727750220692308999200640655233212360065244481835219219792940367567043266376105422413645230241636197988752539934406484812453326025452881288161852903363009713840431253472721559024857950658808339040793884231109929274083722412977426156457387600145838801400246483114639476150310142213241693112558392191482389835811924971291916542110897745730573614935307875334205108703464197487454283501010891370938997222469112208666611209594037496652306710896782843106369664206836847769587507912674044848860208062629089748478397336833123326393830108396435623005938888033656184463486903745722685467930900766062781821777435941781188421770882483213887873923543223516713963455023199361384716289279329051512835042848670734654876368002275903110750841230924844817321647937688334296755352837411753142047564985461383904128507174461224727098638055580627633736443264249978340817250721440877497730003165433172405404371037807392770583196753977629231878196463180600451512460758218471486608908412204025696337311443489229831673003247121240250798190906666630591962753132508793825744004245399441859898660695482273757010460245498553262695256035314784718004056825375423414791607364140382666778535748444793955605116176622246384682240727246039807357964980555051847871132972747771572429560559766920498962529560989890408791203435500169546041797029637974070092987751032497377926614558507344334942896873732482147491599784763052292029015695034501223952195305711689325166161470859232743405485475077421432216295030553075089942841459384050335194855734098498703902417685570706586796653847622036596270449563957175391837254630501346539826945849421300658578852543394984954605949882864393318296798404979222400780908409734373642743868269958336697271590275031206633542124449709603138276471844939925606760303157204358213323061205699606540377552834175719739966658978328306995086591013665495478933903188198768351907472896583172616377108473539798898140571992997276632707290348585683827251742811942565733362098118064284195031952993306434514030186045696628943692839949975884385475810945839621917617279230334018920154330650858688305184779234145239352827704202201567884236059593454220557700267984498507024625155067629363777684702256874551906604423329542548464785541887068407795867242227064067015975990070520277764415241293889440287886978034581883324816693778352032146122668940351953938210600227014790889454081217448205324286283741195007277048010224790169534012792142750544685055943895587863568019804454477177457438854067238162988071989848414541279943914161759248283939488973644876245149176610667322909946346547172256504345764332256789469929183867490479424919319694561362666401745514475200082339406522830088625247209093727608249980779077701685991524985603066389189145345113237140072755973092800207380996502265571053303214277280649201088109033315201084506533268388852874349116085492904206472146069648191387688859369645543681195883172568712141698171004468208435817096892025423854090268059545225706927253511377870678721548467408058721559804507364563908808712372755385512467367302925713187019732554695780393080611692223679242692138656811726811074858206373681868822121755564947756489206146870706885289507319345102324328480245875754286264652845718867468617394449569682395118890472595333335417515981777364779409655561266043477852168267086332278931689287174467129312154782991350915523046911104836309319972350601526241685915392840483164176613543272293869282453746163830505480647460027979159130760979448294029085282722499662913731425147973479893666347133580689250015088548746096135885691989723949181702434566076998607377346231457762841101455762367381553533538724636158391059592270287453298574691846987373757221808190704258693880583161787163213689544986841529400764775504978611268187884862288492288586067918424318043151834018325599051543097692138643727748572676092790514021727231307116128607360516475044863578539158168734518454732321278333541585852814896301734717750234536041762735899168639331404369588142117013596801472565920731445061476045118388120447955890355400637343770513741047828422049948772509808812206199250960721195179789895669323670330276538910292147284535450963944422083994978884730024117100642645530272429153858533242082654273238187220258669828646780640157989529754341767217070874786473117076872723044907815441693016298608253990828366650504216927903642370133254785932404515013087439879232028829918190086995874506283793267144294748633774333122105366635701780812604115760286522677206246651929293062436387201231458853272825455417612537514389067339713328179420107688698680755610246029573593842834520767998866756364713461251573411015386332842103514574035921339466037969839741023828239338437118036057163094758272648868368379232076909333676335838316864102817303109294712265694323260986565901494527150454838058123674062028408733774292376457251412840684432709799152913796152239762837860872482749783224517480803846480614038603354263709187534989376543396322941633163343723167200856699011090691184038024306771495020759887599023275687712737423990968680297175223512282583317993390353666208027729751943904741401801379804693734694776486462811425289973696274406190593481449747908999886443336265253260243886907729289786381272020116036229146453682094075208995653164702108159026738381798693493054024025386490912638495522156033318903760221447142953293819951119915195312020589310231322688784978635573181690361698164930980681872235653264662884397848177416855477494983078269279864466449603620799107262126651405311120718109600321922390122666892806758974985789484132456028735190633239848040596979915896688129635053749711467671894301155045800128455367313328608748557007001189080126925144062499102883782688771158705852001488307030353929914191369323818835331331487518838152718532448611496664638762598919518629970191708293631850942681086821741668348443532094206449487705654024843671238448510761624346067014557779943518730391950808296956754989533311752215446521952324139648834418536676188728525809079446259243678304121585781868918979128310169726434068751038881011841476582729288967458998396827313212316941162824885586660106292135024127958924720511369805570730949953307914320970462313223244857210007390257363683778577830961464522488750593476730234439237398101182317540211963958200316635919507410849012598390370340420349220023879332243800125636143268024974532182504701802490354445761180476388270095416330021844928925410464860498056236471496548232027848232820919613949853421028465968340784149647171355475335969290672782804223907480674613088597987015056332725741551464118556962187719690251460489221316070268226554397362828488800396457870773079307914324961724382490065024527215457519300936124125372163549597782607142607775351396529287776399137790060810385998736294630940889146584471677832512532309100953838516805086509329855223035564845527924844089117801822628645815680516837898055308060233860453442125392910945155832362111366269530755270366478758280195396196651778824611181362753058971202587009164267007505601995687885936551619418397669205768168571450145852133889597767565487001501121979213058329029642220429721848609218044817927080174539234593850306459578248608096912280011170564832938299217807691974212093384663238588073444187419845241116979109199969007940833037718858475220484520971733861559985845206304127673975942041986838695392884589283935850461716224390298038315887624805340768098163936713946897466980776107924644373181423910359311464529923499243775082817724897197779594057794505261634836165187263557951665216292542799422901517816290645106916909238676372789410689964069291048573102513809934631855932378796969082446032118009107093092629345701301912243713563346057146739655770091010481083504772278911706252827636530229510037907186589509314775840767867363655776217720787401817261688957982078556264050077491241005306144076652811790122487722586744662635465172950076837573186168823321026364563616693193277844137958795262820556024880948954065664905476252620254762395001885651758554403647957574663159742851725081663966218270241490705636406761266091232519238672610688525936458250883759806340914679158005836344956966131630306864523622792142442885690022062346521214174148751642311646802755192344691863274546401320669117304291224988399148076131346083356654751365069933367167640934203290626854354730470728173398434058168249396351154064137459928595963226707035794492076545097386387451828092955477616024728076294080034865455724529513822153101190098092529937157849236422766905981901199683215420516260012736670939482778893508400489551142975765895137692989453580963854246955477154237307562038018187476960790383010608260443671897279600212902891238675641113260911851724792452286205631187866996793359997912079673425438134371956256539431437002031070757905929543031983739430640836277792859658802967441866172108271412793788174444480798520021029922254965656922322115123808301982720139979668188416049063723193286543297473036728227573369180444672485677417777725621706789057945891948345153894623125267452825763658345294817107512160570029121604973939257046484000579755785765183737153813808281429672011702211048179022543855205179788107707635092941770636296923552028245814086751644677985664646241420461373290846886200779164070840513273473208061303125420045927147265360396321878843567088839153042479545409074482092185857466225746024519733800049977073256184824458461167719370613400174185140083858902414309356326148979226626508677335979517118909568123768815513937501290347402149704809852752148739731158343561230533636567188201093478612708753583767321372214268895589668425906827739109493890392042760617943035740187533846920898517327488746433818118404099033298831826609440865596705952820082860312969990183349460378940505984251765823725705830149385260126901471598755073421877395390317707663426548421255833654997740596966674700990293044597221998927679198560469346960624015000928758886080800522910149207877799273581715139912465083126753013957113890508525048556598200116634490312200629624221481091501476135899837111122884921614351215924911043496181137022921066429588600672598405165770777112223131586426041385376779816871612714815920005373667153725305406604515094652474178449991568254119632741133544177097335523830816672509699424455560108624916500769672840033130014883224025885130432800013191201039022988744131516955320288840528840133161411419669211001686181949513282752981928067454019197636527422601132892143015746637827359859532200833990987106739774885471051577005585785330268479974203040531960436843132344307397053094209542888673406267298689682701279766612737592310885828309496735547418469263364580055879952377300235371459528787427396096372182641773044942862112505198097012583999873265972942682660122983407340269508336255434996990185847218427984979371731498051735894969103258364826153273191862326319185532266241124795501991379770310145689613407486271802074166357218214706003078344829968836504506268474182696764905824336217679039825541051608584350998019253986595173972024626955547819665833878931684459124929313708899682069021578443249073505923488485396412693902673719427241623702599424188755316972110169951236535284417785091427965990585188549076976368959597678556588382571212306434104438852519256157752268147384990215498846586016229179975134034443143444431167130601419684281139237962857059445697367629930450383664667836993372139919457452128174463422993874016436699116024809409386752436662524711589759533268964414474450510436144679958942764787175046308770003325866551621314871251817627114163637569254185116816404963529428341961789525980555921410044070289184019255824473306307353434563855986939328936338430656453549621714399281394674631224511132116504763367912989622561296920815025850239537827530724774229508863762305797337530932764432019866178718307303371510982215455407936031081536936709957385282559311100545319832246536773671117985502939090419426137611489231043151246750921968818500795512348741283602624449238555564510546246311193754124127669174294547660872859172873034580765292628815106738689275760819930126007297659165870926388452922426333821583834184489379219049042038770981457142025259891438690960523076783991746232150143776280235215130448677881539336454676981397672706824201798629960562200760580156507074967229660600489896062381083367010944713442277686255185843425481976134021447628344620891004214535041963327911795842234028632873319460801915259802174934384700380740024131166279798824024304388519655364846705141799291658218384929653493764564096686149171630318358151412990000596477399096302047659520817862535263164722602759051187410000707120331278111345379061840974208457024392125934849685208574573767196991181327652408196574402312314632788844600896439507504646142906333805335875062877993700037593084437973421165052163841207558291948020552665603879555514301969275356219459421220144147016845802489931904059570175814667992717915712567031615135020808731068700076008416350930070939644733219606520350465368350233113574614792315708161578346881918242717349336818598888461885738283985158045036924577991374877101018105816309090613092925035257512689915504669219961915040617048060589054458510084142729865583750098399601275041264130965164675751253713108642232525351764519855998635056013152704991312102537861193420342124565792648077729192578859264293204029055608731122526242603651303949427197677827132720386951034995235106742219145262093673154631214221626236814033640139772344195126230044233242485568151842032226451496253608120130474408787057262002437716934097080177216568822408239555171370290086769114075896672272828706555990383547611890008010216726072054438986984438715263594962811282209313689426848725853138600195017760065382974868914671651020165685404345016711406655171566188954342526617411910635058925991940968948874481876724998374231711954732584027601433270173209855534087227099899152817192702107720106332890797856604638303903966046837204593606772273622088657029793209429276987196078544007103789787665519615888743103041408713778036190071716533488990290304951492485015565781966345893840428576416601038890175452198475891755190959243053821924635841106515513887324170364999495657683389302054557983577758977790645392272629838463007853477272283957948513907660559590401909189216923790801179794603989374379255623477099609929153754974245588624193007376963813404269809008900028428628461236151051749960921156484342781193936577917830398616882897052795880531448144739897317253309505612247802635245013184288982193845935328962343775772458628150585725141379322584113277738133361485789419804700742642462326811755285439656800946104295905335023414182813310279342422012104024391333937264495230644669160277852405966206386479803728257171376333265347744706176479638722088965938729821617143933736513446676691899108156820113859455462551952693178733067266785120601841702283271142644191455440693847124533882571212182716812756159166646091742235248018472067347520238514820803191887795305498455338064126712837094078328942016764956909360230061039863047586337673552669577198829210148563002500707573628210894683665797628669567963657180610090644617538592741860580451753940077172309437647152933286602079167607751869662040732376479980081217696914983404875154860170420899131680694064048710660322063862020211948931871521428957181204722353197885371678513209092082961070251670226772631616600697352615355440403545936649320860765932743572808368103467519724508563843586616256746152666448949089676323697177514345644615662729555136195063367812056567641154982873984394889725579770959537504701044770418937793119849767184606708822599712042070539317870181113249549910039495970632072724102913493342478511750848288900906666398751588344408392665339234329276492779560177635344309039917049785548422736512692418337917502607183721281850120233731861767545141929162909311938732346333653976707703813407702809105508567226138900140356092606920661872562902656129072868251113066577215676145110578182815462264462966241121789822805665551990682671519796343124234021233412048485864991170394211918249950653854207383614981799827387263297735223594610333143433636171900268339716824319185570297987753335435861574421328641365659517420760759795609697885837163301563008650969850513728218564613077069926493439901199974079132164527299892528496543921100403637210951631711217554941172045718000849733886841762417087937058366013745138480529196834164365818637384749507945574035569554053232036369429490200257370431207655129594409106285614342507025435260863211813253535207043238885614488906823817817324175369070566344278763964085794932629516982267542751064150188274850045408611203551874644677035968998446107603054847962342887002033714892856046177050796231614005721850147953824108409577335847878832558235171361470833908844729824373621206521802740545920674716060588790020037611068019850620452799428546203081574004567829708770312341256756314298711182801708219731910954173511919217691650679481300240861616515960519515688323763553409162325979046010505913106699367071754455160679874672813547991214316396443353621393969515265868358958560202218008573137578424127400093395373806163618253142869891364315734397340754609482180211640632896686557097576606050206063604100897977185271758672213179345321932634937325667841286068372547219274399148141055941123631137590104863061998013172403205627610008676332403704863782205132515811823129577831416413923427495713847526982167748611524635434946307273078996395236078260310667103406505495691769042046306720273731187430304727813865563670229814814231053078031702900963240645354234945570955079181499299132133171137028465143593791876484933512411359860810426152087237578278624830027285294616505547995288488119647501055035234451650233246216873849422637783838125646747456155785651822870217813544842957142962451749125331442363587277461961272732098862080557114372674987930102809243958363157125742408653192415508300632862821863765350400253127016124164826479428748318117052106240938859367475092129825372844989153353757895468417981035642828028482214309197828338423537212191984822386988437877727795474426475104330913102810126573651869003606143543556468011877953592712649232451258402678260403372053714957369819677581693183338253821633022392031546151830264638844974509124854461612837739471382953863361566691808135958512140429932182347778456575869869136213840828020941344909102716296783217690079639114740172478567988082661857295446498632826377750867549862219899243095586041109605234014611222910673815326393301770288374787713850426219286222776328497235841585840038640084287322265079944943303630090597685958361107400175011051345217392986385182642424241121976214083956203473672283816943144408129639132875049199282157678852688681892089283708581887372147937039220881549782617339242757123676023160505555573483803594547789913057973779273998122256745632941472959425644480217521578892337142014330008995687700412172724621473853811956238322173299225255589079389783840551517041845731323362801095416771931646128500564749701860282992967030767862995506130278524469296108524073227858732067862966282626327055359499071485710499341761162637344560675298999162040837556115774903972602018368645042094104452928578125638621421202438060701617329140707504101909792062982142419635839300966856963563471484747891183107905195064436352429466807113694278488123732171498389838071502500098875469424142140696198989769078543152617864646332359757300613714846790505041974681343703019516244558309106605023727960380362856437735743311640614299355892315621116407223392535844225408341937023712652139468975608584276420370533111026726817931026544962479685289651268797852163505129051731705003362230935634862489835955810371269442903826238154145898917715126524891334509731513078045505820507831268241157914780082690085974596989169731221789714947205706046754531350895802233640739319428533125626170018504426812859557791382502003513770622692934121287215909748853944265152946561753925727638294049642030233360138195389792376352863387670690512436194892034121775368941809714343158468122757841539878310085483546734345005916123898899188685992631407422487193932905657039404058395501280373477353525692449218201848350196769533645735805361334147702545625412432818851353858429848798819835009932540938427352537445176194209650234809742220747772520464078354624909610102321613805689964727802779871703801584104934096598631306967773710794958155035276627566953494190297670705536709212180003521646133622027208322098606083586731389987756314797364835337120553652851802438136023683876974137678765017864469853812270372640005419916334667857516863784196506626631266298900491914248279402429764398337871623781359270049040115149244998500549424499969943945071239217826132727397587565768418513604791423937567220302357765818301531097827810994193592776862268837711058739492552732354186662185751545096960249293509369860277715826606648204873687266850216240985698511736612507527424755602688649585223338887608746312247843524029704099503929886239956186310564892698441423310219283499634924001668809591685336766348706387185452673443330505478615680068834207791490974752923622450451291525408881225318581015515604553364678396415918641940488720267619209909086574783443899284208421611135897820749152521723473140074489476874289602345225611517696342019739223830086854489584076298667696106627328571989152945453950883254289966837908112717068142577393486403103307249982086956743215753661418104831080722089427367889390576994388951174493627826637988821924719330172358486644684940705766187122041437424080118228270748193389301207996375400532583937485192836132359328429032161968388864513919560305646879031899455712907961062222510998834929064484247522114851529601817012666421968784030802326549240853514093586961536256449589683987834282401616945809013525596499936040195296526866105025589577668642392002607435045152882487621485916997955127668015115019558382476039848074884130755818259388307466387284115517226564995261635614485444090266310625838931633072201023103620711953060954580458189674661218890988220326176369745129279067505533330648663800125563949160777344764079637750156737022160389212826577507496872008493144618446064901567567284785944779544316790990345430693259712024328836758736021944125580409229003662506070621201662647562872755767093834712441715271662202563704928190157934537761846191714754939882512773103930696504451643441165672025224191641263833579805471675361517245779733435269031517147283656407350260018680032800068625893878568290457635237029608616356608971475919288020013903063231735401017477770495304617638223886927769563372612699144366294008385723091845261378752365730170181317569680123797234683619466632805971154882049046643498350951085506046447477902943541789334086238415691193783210337587459729632731279824773376299441831758621954742231312155785695815183983636390782090426766462286505640929087607100954657495938440667606219753261200616480647579743197335449014399399124164752037602185631469529064473970680480691732324552564996697846203098886433580915102478713406150059480979375905889899400024480807671871950398551498675597904094737555570943221871152063719888357480577221354870904344104359617782583636478467275790360280791845853905252855222555739283095864795235372289394486020388821731632531292706731276844483452206093402919271254174128223938201579145277652901162764853230604011178033140874330014653983767883202701390852401419169811894101816086727376517689321059044585331074571967664686697003098398697358910524420618176687944267353179481442483786205989732180171184904305325220078197146674411760948105505542055955422449875153736869127941245404864565813386192116066655536158992530180744987850154242983432133252803668305148183972289128002388959387642146167006086007307414579075286982815445818194369635206602909183963926192432204716863061496638553701025233584965585988350508036723813900779183862845584856546551741847622931901628471647903474546525662980920649471082702861620047094035311671080251327908847912454722371028704792125473014719251976561002141907968233638219407492416271565286035867694550530164316928732251833249643388025508836123301125934981953788366101873693333946160930192293607435269343337317588011000206808490230648275928146059089220287667290618737484789005098196964599535210369313708500257225086871437356530882065791194019154664439711431875884647641787781340686864262253442357300439459418216823876470071692098527909760793384280436447467943522664731633093767293724669226090555375234417435510525399523156870967794999836300652496365487910444077079332783626778380624775881301232313653653991972774971276585085883721112297056735027284271162905135806012475608389480120819109339313240364990083894764740598167185011647201909163148038786412221877368637109658912692662717501439575905380119331127014745686506644994488559845705020319034185014951895381070571696370694167889035172449885396639798311610644732948624579837593753638821249965632519801438638119359171686824180620413046603309395503802358289202752766299756245053547863252795165933971622669425852484755470854054361855903896422622917689329803256113889409787323280430231053483008424062468695288964540094265344080329895109296544266556803080433564923197043806865399009017840566194737206402396297198033586689716301832122492755808040063118432100691147597758609972918581525938882833823650379850561359745332868892300875885280974020916601018463339722453431766748380344298837910710337765726031208974654769416600408374908324041131490733632232251964872001648125049578029011618779669123905853693542769263507817485950818249684706169813269275271804093898435267753543731637863651500904555209481608779885962092561233498664248437030713726817144763552152018140815293314909558531035155021129801868751383995304271344640734453965711897601547230950680830940196607269264944137941104762978493677454612969468035495949019154351678899746657434613643542615340313935072769895789152965692099152040872279255121737924426698719929290319488096784088265416863258803953801363002014745762025545075544552415979157987302170031237654992779603061835191144006473564995064718125255226844824877701257260814663369930364024002397452399283233222057924626810978873885236191516062344525937661769357219773309671634455477738235499827971472835916414527652482215413055023655747306761911215397505339286804477389332470848669701507945848317252572540708684711928005661788051274774888825423999173403641699311637665945826483894336421805626668015854145102204625145505801791627221214537699513106917424273923590256641905261972932139036514023965893707118437113364753172941480176389259294036626590864316081688998432855565778198732674278279035424096201905342127082256222861736146924899868418506813559822653130173549324767013959994036197229206380069310129707279397046558651410510519605896915612602788596083207815851054124975349685969227771044473312042884813105366317863736462025611185505492451029074099644473639493928869608489959797323347370244243203567350657425383833813435450372916912398571704276981502757313466540903132207501840450069262888788696052229517078942376139689307283303599473940228374752683396426636815145379167478013894988773217293910076847554300375227198126876878551769584385215749163541970647147543946196046693326874382673573793065485995278374050964106923410092524417661680429751873135558124224588035817085569838382680055628004781252357851465368936303317346820049857604890502411404865730484595347239813630012999423838195899018833298372462377847416063098001980596403935534903060668346353872518770709317942017992346163574495184548884614257854874115107301819602666801553094164043641408943205829807940723475496384385774399097519569537071634864597094797999828914269713236923215156677535973819535223729967480288843008366833000852446672072822524004284954575632080590630218086415059746382642385721428941303995554049013334886588943832548751649011007774486161841881625358716365908863423702944126813420662443961767530576362253002208572862748111437204045270128262369791067934150847878876465267949474353201268767423621198339477178732213436357156347394433870454248214098054937426090651792242231373513182673767535148422745629525420240631599064838176148515823873087630670369576567885507743908712890370025240711239415291505298407989282143528889745318268846611027623862393231563393096947827071160540791400300614381363168734277795954753142430087257639193809417641507558847480262826517983494384564274894375114747209924129975241735929456119161021605445486418681379669543970411226866500864686543010050445499794144434069232594125110402524668805267454998060226420394527239393711472590122139073854625046865484365376665490612108102731731007506546052924940601388043033430794054208735309016790872421690244532305765244082777044883829338778584911587288913284830001390170143604648739432268978491385465503387586714299387461832232164279301902060250164001772931625054513673605882445439638977877795503838902432799648204797406463665458512605880774789217112986059298258305470129501993140453498201044122544981050243876289842569025520091499072065315474505099906533359981682994883439867031620038632689812615945976872492280867504305867238255292290233905107196651395574928984678075331462264547558402612873624035924257213379236138563897242698121021168917196755139337380295007505097695570705916588865898157546057803578383194880151091033506356541982006135847306448564158120810315651275278246848902918157615511151864068129018775694148023800842603729023974614519211047918874157865609227436284707848130919402382415470368947334308257648036188266448160187483379766423092194482623032268007716668139225924524683689115004086171697477671541013511354218186430027036017838675970022334237394520477542543307286569173826411824179248602575070561013121108068304953399929664241614893077164941684420940624459020767589461992532212561936881355875967524678562575915090838252462237659498948296853162215382582959889649932304375285030718278532943885869878850504655070490946308561254167583331054199713675192698542459900670465568065966146869904118247700785171238702952131381079481843375961821439637250534887370840822616822761358597477214866181382987147624605432641882670366804764009293767947891342863185834608714710840375539854325364312619166472608722600763850836913540750952936121699969867615904572854922697431303083803888411978417420790720446782224381870731312038183861245587809969312192932525857170453804668740166898174571863671412938491694821421323191397805184634603228604600199841183069957269244484316810932761906285129837433810487866214591067141275788920473288449673918898429429111623902536987351305205765924415138441576903843936953216894361775060834749080053485777379959124654695716288882623123463459663821842654216134925375542167089689955188377731169175877600629098800805372522124334102694922474689696973476068288256893637381657131661131594846288005238584178811526979262073746104603764580041081413438917532606890139744128824586114537725823030755603298635351430803756110194245988179071110898460585219369443891341244470922516937276823585808843711429954445719545049737912346257812555344882699459314772667522022710393014931237969366961151955601852985722905704752644059233542979544390410684520225226506694093990158349418197899022798689073498421971987163668490622649360737729786880598422201369829196212150069371991439518971809888749080479692792436523957680363876932777010481805785923539498825319043906854450275375394042282541865870564229301334882209765275345431698231488548712525322760865572649961839626224909721200226924827346780465255568598801554640912143669865549865172242646101643595857054713929790261294447219337850456579641222047175198423770422161107557710698612745962143175480888371838603314100316857817745028631021720787509201449343622308284627423958987496089256683286573159394514588117263988708824837676251506473309712500258225297426550189352851176448265428466289284732998366536084943990374513639510371865095164244521081454611266239015294348972690763748056658094862332610969198990355092132485458030429575432295061516635579517294867824311630593014233500107355317560405855468319483431607777953912635391923145671649359972627492635433276673194440544335770601230390715173730349720940539684382278276924560051551064896870195255356634283349854242481233966545506162781527519787593771020411827692158448327380975636724653417821085694406734132586315097064113538196893317109986687161523382529217935037074834863439447994397325052171547522396258609857689608882085476479125392074476576213088321594414295222482937798781457851074681018526902307139583366374674271305831840118124552667486028992412330751108120782868093526054270407949764200872389043962842929963895595441786313953726900716898016084739011983796154265667899233675814074522452144864117786195271082610815930119445853789026914798628789505920792157453646660774750443327040438454842808637060566288720647145610064026012109083292685855475832508323558181525493492529340994461231392115819753341817127312649825736624065981926974586734068064337957814422052955443506121205129682959245228770880737268188102370802122224087387776425467604205943826927121983772826100083354851889389292027833473178093817607451130742464123660068878937626908720729081503628558341010365237467353712468559507847286908458734572749537954450684007851180799786759373050274127201303219875233801252340280343973760930813106202900805296856842468377088479652175690643375821067946786691838875907531427400803306679036296737736155245309328285685785384233891429451030970848221823930603039850726278695673903068302087439888452719956982261318968367351842360607790106325656748995399306906536433070575848448904351068763297831632467186611129630163179921898949949387439995244489155646871000019063429783159288376207646391013383242053181619551416800952658325639757754011707234578342934534253495658745601004869336816224828254890631782187900655122414889137406193678418137659977659854195192046771912647227995771512096098482295475031170897023572206008907002218932989265265630998564235240893144579454373464882295093737266216726768550249236557760063780676748297180973796745222609971395150156497774770189601102305071646446033667928763138325521327274334864188447904213621960792172191623232888945933805684893806684216041941361371398416072242825382264255452569437143834321674292380442323129715115763033563602924643270620587592176619429651122506003595138344306010605454681967732601355415296358324664091615488739837241001380215484565096345981638490815648564887335750941049999064040061813761714226478471651060287292254920619635107408166333651242890209495946818595887626923948552704544869004150855912929191057513789996878392270257984157973543669396491388814846682172920616290776786974777069321359375007935418271551373055330898493798464706532511959030278578353372205131461377411992524192794293867575089669069392269554613814372302208170474106017971495120173849796202189742982687301386857474102228303624063148372584434737764204786282950811809854697298002252423023678228146963649078414428646461344366416557335607829128814347086748388017207983017324214745301563875108165899433297532047121063773863435326262340909958955621733446526177431825116351247921829226939575336231238195132411212860738560301591444736557337939912728218375726667030483649137995700810074699489234095452311039389591680571476958625785643913117212788873587552730196719106326326964850131831537349056349193918266280700741435387308828227630993813026895917119075233247045651936733939071532641673255334942750463490270080811002664511322436862373091429325427577837678287176837148084532666877869658514480422989423315034260304961879521988709494773472073396583892487760215961142174896129830494182580551599393101979561459827984735152750937682306326971812230039993558218185892016915518622005922707001645008687291038437276220023247639304890799124672210394037781507851626088695915213641403066603864912411836474586366287525242207887169106605798282437853560865593083625405658206344431579621247940348144769749876814179813793773153958183356501622273516394769658091028270627305161720713041742111638668761256526494122815846422932040909082468891300599397230336897345721206030234989766994607313183309189371240168302418099299465995817177439065490358329036781560907542334502636174957047028732618079960202755532698369358058521344059809524259379505896741449395150737563286391771122448577909041671221847714226725163342819003235704007475735488273975063969160841653659726484695203193964991703774082138401349093892663303580999891733735582658312942459312549308670152248665215316950318329752637670083231968123136273316159023904330492583046348434643374672411061021888363502203162669896869960599113349569088157845151334383537180357785601536376989518026214735901126135808243552409625231397702887126515916851002381278569505079221667174802002529151360099665166305918130783086372510260843648180366063151951915787539461277175299583091776005705813675360898226737652312148997202276690815452037254735917784611041203191582038878082073514989483646732499768663988377530023798436210343944955029328022953570405776941775824961999169860629953979512068590387166110294147338378786410021164167503544894178663209167793479917527745165482814118455332353551167742829133926026994663793334805831824250032171754220764283291029081963562152196631010444283401984874223317442751940879796542166122706379163750177052262260356866697728488868648372348952609017476490954316175681892083379826051352785708926912575865287796700491566634298361498619156889571569516793381558703506229943888285564126829549042351522087527925670942144416166047292174945481566319762444536065642776196405448289399333732561963952938516824494237367834192377598067661468553158641637037533062442999066587839324302888373764012601439746938466285730288947575403937104826452986554385297534989802897599429681710653846947807173037569486560899646475372777404815455832315534958280064453189946600286178868197914596577668356203046146934283504573151483517984162269154464119467316507516213995022357567535337682197407722647122163581603759588535765079030460589741556130140124989665461658215943279755242381237971726250875130748671099139184891144463454390069335674053788147156873531990423239949857044347529814278705581656998209084070811496190110062560138606534149449126885961351668538300500414067611869725000801791394150848670262716558473475100143626013225525409732066401162651247874477576856528328720433507970364586688505626702341896543144126067780363974100763501483129368601298485466978918736071947655524424008310256165939945433654021287156322025292281230217560171401124568226781333311004956327323655875425539621970942987535984345203042615346856831773908076772030514620522726080120310604225589959900861614657391575657173675046221603747802599316466884504720279169786504631556816173501920530607855860460658967792855295686129396429741355777253511022132882398335791662570797510851473143000775369659763351360497272301276551957183310180368199265339683101589270763530286569159705397407816725743570062156375623161507370908595125003299814775842938824642988011277888809313367739861028057116988423357874086369395395361379990968262248711135270112538216029948128263282231046973606362597029652068384574567656447961879789622618960705370953170854185788192466643244915758012937913436077168224896531750342357178580255791007227235523073064861319500534792978720811519701185653914597105240661521971999318291127603368271386975698667331933005718403830935677178600038446358552861471720833700765467436888565160240133411212002035683497932159374507554103319875418975133816863648956551823883932117174559919156692867406569517017326922353810567904795675996596666316991575417531879146991783513558571648812422087820963327166191079856680860913894440782847070356911347506086208938640979355131236577829818954694008788330907282939072586271015575784543739440127615425772444679097850918863707294277200013044564074400189799211919451250004604463232545898806335227618733453824720730798557522699521304828870874263275993514190561419364858554688079574224574599008128015066143741273197195547528288828936012852609398508417576393314874407625095559184162834267551795676495560296200797455153683262563489227762523043674308811438703743966198664389815747789253019930402371558596569481443087665634685414569282736039331843607790536973270285123962902841157022906539310983107741839803436449515306393277626258868912120718459749023083593428012456456201524777018892639755697042561710757933987009332628891889116862543950040003405785116021086964357022391934221005537761410419407583201091749371489146387962146027035341347309772158891876515299196200979678331893430063185853751707452009898161909208233866912339002644747309994148384421378678762959023923904969996220312996267491403709789334043247677848689778618192315854079437977398496622316445309428871273696724120506231607616716267396536150790896402533124699971396042072071685722868973446513886981888921865220461139854586595553655262540631844551367628146557371451063959381701701223463845915059142722557234236228305639111455956644039582208407661849792716923976670113568385167024057538044639793848226175484086351641222443899219123877719810227309719472555794482371775255480126843505539926704243703915281590753934883468363860478678570124129601614045116162643981903096145318699407801484721319094898261492584980743643354230639700627926132178976648035600613508975968525676397321885787776205431743998555974132310913460375386388935100664295627947230841443810392001410004752783224989846024338012592892422445396048051772967823630288304028077400728987873564412887194436202120436261178897237314242968489907224530942159553544455606244839701958339025609306489735226570998756013067123298208617265259405655366837944374247863494884415328051724310733247078900959264668245953594729362085964647102281082570392873544597413927389294901433498419606388850714562697793658895214653785065783602747036671815654306672786335201013659438658059240185192086354378073690468639897932777611020551200193669144426248562874164690845964008158600970502751792550987488655947502591576345731497913252853519959422045503807876186552475054041460284773338456545733295833095569694394245450679670481206333061668988563564509983762675563523426178471442254117950518731178620927347097096918423718182524028765340982483661232826210559431554324069216485991504806358898580251734248268421866763711875727851100305627227314317499633926843362333780366170961332514344396056260401301360359218333836347879495290266593559428363210538453075056879473669744646818557065964890166432942467805469796525642481578309588588720444547589292860135521572679118267087825281131169251109426519892939256013625279599152539461454611715278956010974682642476626785931401098379044474076239930542450184866098599871095053113665285663528243752732625452780936911301320710602274224559344263683919060876571313290683953107602420459410288047442727565958999574302219655059893390122600315843535128527416962111084170690149734764298839310175084960025455816147525870048117595530693438507422726698171375596899267538695135892163362021386127164251426657974057767637548034387268149479934031915836689873610968461015527446471100311174224582837101316002121426195951720177699344313770308086211038166152732935877995726806449421237567876624434504270671016062547196405562113426726514337725399895041875644215461823408993381435567002261099679227464463953170928999102013138293285466411375430760493692347868739349260021907638275043323934741960469989031517033330013994794051607993765148955900583610516848017129319682917748711568173326240327250578779316447133017262681633035752324987632728694566938849276769862754124178326906451048513623756641794115351734015116390997053473229551993270878351752389408284691440486094759917095905618956222615736657637251145063179293908749887890308682122307174127770581529742840507680178117175561174600465178108956811259511365273939096965342308200633073475951283049237576125660116988470662838500199780422845317648118814112062742130299301890254202401712391450522433446780239312681502041789575272550786494454466495015531248084220835580157257500832252161704259655489168222765787386956618969564934701343105768529642392441629554827379274391059729046658592513779404200334488990745414499196822148474267086355829831857696952013972029658062082998015724305462929059687645544974473803075936188862526904404722708745056583062692346880751517915670904696769600786748593863529143544689372625511606271614096518693904880360481001953125693032540781928149747418322576440542766918861753303388618198079769681613210726133436951078998435646532849567754774723526946230024721714762824768788153104942218930159696772415331635330760283174890878679427562932633336803026551904463300917013374370288540040166333725847147600393103135794528919526162118649519319895077651549328313172558746258075413915131206761035132380472808763558348447987298081301444301114632172940440116512493541579107414734624903701924370082884062163796749276668375800259092531377362122302696447011181668206580929621153554524130772698119953061495486258749740774633033316906519842104676071998133202334511194940946367334050776132761818896004462118739996680327967083545631097100052204675813202267073096870835355490875092924637707826544532482635065893449000243381325003608288438829531505993409318992794749467408192779089518027908491974980185220622041242684857343758172359163309691528815180919449749888384146292588722224078553452190877021604265862085979485849741027785574147713760874524635312299308648536975334246871664697567672724151935427505779395257238699435828845376704117355236426236350038867545154646762394768389252156926906905613207384919034826038974645786470968696646572326950028320242635759806426216074835555626497336904003782948140294878224234255396234897819491316509665275748824532991809687759270083526892884330957813314113635871797874514864729193452124938456431915211818958451785587006374958058481813165071630455250452902206129234111209658811353342605711569411515538553050012925889939156842087661844739841425227680681505530249694355986044632105331713161847100433695437813923382065185012541908594318956233796492297080271726975511327441830454416311153711433800173496013101254252968332073466690628583565513107809389220471507651170894277238442974376242890230810894793820361548952449617871744167969054774563554479139824610983875876260652937112611605416680143705497018383057625551545965372201049816845046569474508559541943545496481127939839519050426785942827340470551780167685330397474873026275188057385084078321921235455315226856766016465855347875629581194134962084979333552597944698337844907910865340985233511094846143000392845610612833492055013025744297909403439897522033732018672330545644949382404058964498250395126008507750692666767747972207270437694434336793082325679151735601865473483299124417379639392236135801056806718364889956034367640160478758835980304741253947660484526987985998433653628895430005630038541871652228054510178855287619563386900393613480411714264650029651914769571479889163652424213931380092771357959810063250502871266518872554915380155027411994458289101531183393918211931098579303613750894640449894793764487082921199809554077190177576434742748549801092570448455824860905785361545545893856338408864323650131416695478046574908029818080829597752555153796748382951726473674695786239241708256671468703992681365415761450111962096481266496851434887871231455404151457577949547114440046865999607278056196495730890330367198050618208088032226422994851413216561575534892012055121969740004917573462880394542900621488368118774591457146152672795484178530915366308571480564112506970136094002197015933255706379937608560122498475339750980088322110607768814512453926771571318371750084498105096896438697465332863733137492846191748280709991072187869580940215541258327827639488757781152186345740391072823945405653656947352323079416080011138458009724910872247890775938147600007164698358257361127388770310063615965507479668136367462355228089952588439366322176954663707886751810136600578146939758464459100661701324135603752398216645518569155843412725441045571887257335513051062286025179105824445886885963862928145027327767761168039170151751638779509845843954886175276058495455250735099346939256325663119838207033320116079247135300745581052499871288506185717174030244203226631219587994376732212054068946941348401405632252607756862337552383320758221952738682369303647134322397668088346141534422306466857762422653377096615448952135322184559285366422907579110114685880901015008294590786751221882106055050262207295249479804627963585012207542988978123592620452105719876306491283057052252127655578455348805662393169743754425559059918179066639626034875484147772331209068737821858804570548078005877398715201217644812222666552368490615359862411509452527709685374306661360999824121107755971420367694857500108829092823075392056933782239365601244115173773365252134978314461493072651054485185269814534309828764606304040487320870290411372935403943929617427219044475057207906233279203750863430435404270694546657772280138128811805595824136528135019530108174331114563060291031976588461303330637173041013471123462174616546282843740580523373955729690634711552510553035684972006685749515733534434314109304159873205424022617244750134589103664178140392981489064728701786151937951256034453632495715317079851234140265535441048593015846453959548983209619315881054028739903792792189284302148475513716416374497284043807482088455716429944809325708411960471293674357295039417884694727844099889021962665815323514219301221560953794122384475794999325978347315187644562629830363631791152821341123550275300594722360017552540605563063627988776604230765991258075693371706954000319530961374044831361482431491044972886701489277543634851799453040979058871299093695472707655394696968260683317972761753006653080349726780655871179344281572311821163849207887584707224490069120580314458832385971551858607085518420313819221457533773412282709138602189248776738151866998311078573436281130243740883996168187694344117048166923188865274016473643715864051219165997061742487458282404406093995021072545987927980851318222291404288639939431734507905469147456252594694999326445046906437762388620724845604275053038287538663867233602218042491954057162344037107397329384799939474712542602817866104186400702569307235745733495799818072408029331870414090969667953479369415501050702076501855736117232025459886104628071893188935778803233821111130828497987941546671838389527777602401683326997096135910428792550234916215514277490624714992171932998503791985875228982432476347356579285535190882406779256312808487762055646944146856461172570265876996651825990096670891841423425988407752655622030370048826170803330428407946114891860460424112011323401568310057873635477212479715490761354062793843834991013020201405198214055669796794648244248448793046100390961134599387409987379547200830845093575211355975095812238053695421763808433939861984044218953368816114586280116015857939412086332690439224268411022014291080358998267755837130962317153096613966842552326480432100040838567470188716685506235878939130412721859445708140606534923643231612708521256733014909541406924196057026536997149617089495302815332387964881632555242375207587760362803273336449770688361117622979428854446066192359957306919841273194227911997638279076317201592640408052744672470937570742687544969496807594218902190202584100751363567519779041991025790004237038186942065755776219852596935821565353428031611055756960805435261706708540641527938314707954910934266523202799971796145121929285254248851629800540343242975219046836253650267230181696452772528354328176584537381381030307284726189225664647261463093273406404191076253415177108503893754514182918632670340564112480453006773669552669880615767559809885397356909286159794628071201939507441981467317565596646182895738555658414890156296342642743455119640277440483302155924891206452823131910393496270802147384246717034996256509624748994414489894123367111207504825411686993349416029735678931161444253806705820011775447356645137000637839528255370613245058044988685523144727022541686720695203931712492795626496856139237568751401700376961817936634987003100903159555075433002592139668120290334094024109389124867863549931168695593139356581885417457609331808651556350559909026532890181822221239547732590790090761003966068420012434416399940513016976755201961131799893895068003844849359130561864079797243456720081628011030226776145290743322260819525987907088142786028328712581800056769106312854442411399491172312488274180933972616788022662801382481464411282591932455586505856988177540941764978916303823077199438211833394083804319632873705681154361317383715380268172486509749019167031184338191478672471297037045761039595149313459002372841051420504568909377825077698818761125402862541036024206279730534665547990109457406609118662369291896982547895784113746654426645993704269010796803828760617255514046281417525462808333620995276332356264130482415257284687223425939678868561904124845359851447223705129695569949322332624454843127291312464217248894985686795692218096041227019170810358374680767368890023639246392380064536878089200728629154706670323008929324921781930033746934451380404849554333066456332288157775374846204749135681066371647402645756462391671654529159581013679873532098339017983396778912726144318670139617531087762302832818399475294407727792644662909715356326812084906892872922648856844909280575852452859112302111439334043469702216081296315240477446773914652084909544284312333419478249361438256911740954130992453663887725859114889588790241695451338694905306225975343366947854980404619978215534064606318227996286783065614310053838816727293908874149152844869600191584867507334981335182670189625078794262563465136224168751002769190320631534927168821417702178537688276042140985860007842583342035373801276450291821757538786801623364222073889149202613382719258756372628488391826447336821352442347440418115768450447048235941448612851912524529726655988145247949291560776610237219068323814450966864182768380502175824093183474052564572370413213033305173344954353909912379154052962412909063719988761073373260268966268026368238386324197117281337944761814030721342424322532338414420324914905728987225854568355221653983815052774847111952950619316085200435901650312933476961744341798411795447055548379402525347003073030013863835731318355610718679883084257467388486210328248284189256695375824643383330119797236184656521576165192041965254856984975110202746461215530673523272029643760569312669526731608287354198564737610955012946661400020583600372936538239406731629662182576814475890194017738222024359073900884663631760034882929729945304086259671251564092408130657271008278519737122332158514868404854516270972865000696950661749322205556754858632389311789371808135172117107148008731964404254995664425681005570823533905002022236686748053071365009209145286012490372930956373162930254603602543904827794404705657997972286375818859802323742205604074500038641513176595936937617747421843075167269367359943895468005347945949032020991795057862448107901062411669830316951465502619484665670574565125253749487888429169446989080337332301327137976769626701400876901942658412182620586224310881879300118745012606095836686493285223631942198658825790702986475613809392581395790269100062684341241748636005989451833126743147303697962917377630831369395161373579199263513561625743493287323270109537078020064590782301479301894679028590317513453491539335395688937305202219968185560579982760274982039008567580305657452067663038437239678286725403331863105963797782977463675453984852278794811682432732804858649927156907492084271187784261252285878902070171430773126950786506919595781860164064941539781713442044730931841053628702267880369798849921487528934982255385178861496939549824229155297934643799910840599227277685627358721635090136490000742459566066269187856338538376636978903822820890250082271599115682639516670581493112117532928808756323179885417402197097096452922310142506300427459706053982820349297607960258138579699233407158940131726330858586900976319500122986649168157384745886238582810912229163555606296570917163991812740482627665451683428864291782424082114523030027124161433446440174578562196908269807829440309944864556583104374935441507605493558416192486159553724485741595267027479077164160863787466866952550960694920967263377468841175832273124734652094396225653969777547117424941867214100474548353535117731593232695149118820998201709907986135877258791148686988136246766106766416014150560367915982038814465634934918060303970149420007433278757138283478437416160888884867070268432315648086663655121541200408095763493184279148937846915125756942587976179592410896239066480423061948584725795166083953426466148192514290942298913252238203702874674561820142575357069854786013563374215533403165428883973567064475505116020709272201142888617291728914601230189187051049804097942915354671559268685950418547338847553499844525748287395471741366414431022022158830950473620421362453935863605510924144690048219539881517886695958960338337130318263114245249585111612519828942066178609181401685069077100826428663683891919712864952905049960518097585402236079999792819575396664191010577274338820646235043556932753134510204342378413980553929260754016473376417439057525226035422584985348270238537332614636088791098592728360095226271523256874246926287411128775121974179128422831458882566694782831615396158437237420453375422397581994202659997838079316401530114280767633251189025831619596506017175971189598127082170934159730140291930853607844971371639790800214781257978718627254592420417908794538873766897199567169006207045792697117212421675192221539428400230925170040805556570356887999343052538511609231823867754628487645109822728799759124142988814303388042110553302044798348702282905454579178221134421281099844431197827917945822229761887213336447887957051574923936265230120790165531317882599021041546023104222715943495602353324564700195124229309375934506092074650279192006448711690735512889229325342373172352852743574840054464340593423006740724292990084086742434041740829206504595949403697835075502187557445857373440380944322101190446443186680992392679155526374752832678670982351173299394726209024500779002421116040326891380457533916979126588013364409450514448543782646372181373679500791013481245166490136919687380988249104460873503030082260132177945423934686160696300831646516499805442810732761458706992261263603002808833736096586774559009647461709388843723843989098455535462536389042476899217696004693864106872671951341789349379347465593073276472460111035904634645812205078505872563905897129232377865976475934356143814808983411124614895651980540818684094387651830068884741159726938295798218354160449011913960764517246804476498779044009974844896198119501616556902617607003834536094684091517280809473218645178841058540554537920729759354722657194939738932682801384609862002698456260042301026428384312080846423969055029148587386927346827609780109019938517381748782396751291961100545983684922559322353545763546242722688063368910087206635062837502349289583424565282642728612772500297662865020937251637682085832128926866825863909387131122940061699606371183610882999653749269037679989236592502053600744886330227417185516184899513211982651960254485061219247724734754808469078118215167971375315112860882178781952058032742628567703252501451719898741551045384121682114106884546256788633514887522135133382860256122905556371735214610113048619988196333283498252696579136581639042825323412361868547995639969913612103262560630890673014205870107221587344160333764285877102321745092899579248548229293427480777149626635398853697293121081659735821459091998443216994591169311055178500193091132173495200181664244407512600482803008269043534855322337373626020573246299536511773063495516039447731911265754544452859261126195279274078950173360746569769281815613400936316276545291933402691029736141259830164817633962485240832555522410263759699440041309894855884097663343012689136192885692773975701321109686584590687552240239024856130121767527812321411654208966697856936245445804870496053635546653130168871823045224082815988918176048760647812868753036439592389081491157397620523217148411775272801790751108050504332904651046456332508272270394030211691925114966226782360175864035477861151613583642289632335285559528880753351512737015285749627795772191552564735377011915870013286898075630262714627593079114011715216940300254569741192186373299559820655591196804836693719919560222213647815627256634742847676993996732262942200482832165179056145219986303157950276851203394849039986370848487104316063215435753410997847427030828247092192126028280269991700633727029598359854133694186928449575255231782722081439402093563612130882722144504312731358699317518253894024159441186551369206538487928796504745064591927485989964544818770885933067817392755375411811390138178763635991968055393203513382818119835053938854343614259328150829432052917651259473377309624010626858026171091034088366715501828243590620324629173118589136833419642973546921452554987870063462800388001795697412882335223713823927768253493819416104462715230350729911653950029234434929037934159157524942343102227710893882213427679293198005020769850570185146798666839451722880329803498703008234609714583280578253436981712676811498904798954965485439064907769126072559405643746462719988245938733219203334825662430404257762332902461334651977815715654563023956329740589951981283076120535602298701726995336019451407341989373107919939088636313539829093802913507535583615709028381520557455844889407605660241981400197742815416209427826901407484439902542194203839680321684472333424842149224201281535282250867172830330158156551614956472456808519941809977191930420986476336222170784707033826462528397638761334871529941401631939748168133235669059107329392208151349049240315835368788056935330838477290516344676249360906496850703985280785650187707059320452034328273185271905622744911407071195995415816663670615550478204723002143625246524228577204114710029683400497073155903154583425666108186684768465427969004587877584362971574239346392304276062185256962286611998859972701070873474081422060461482957545953011563071737734009859142132948557067916313962761441623189900549377678165672555913571329890965990449326103355129287510183550477252161886324988277186627669475839410766323135258101729942072625024792894838202432222058701684118157064636089532744762590053333648058421660574644037958469098843691423365928757866831052640845920756468633576966709187014999170068439952878012448378292670546743583313239363109219792637821319077228462110324975034265558420341158525971016954457258935999034077485021180125030557086594114908673342392389371511842963418048496482069267354327186573435000017878991895336401342216930549970449246295899398260720115055862426170106215142305467380558662271010411853155198039602470618944940951411932892730765839057108780105324261981405111648150055805594930178471280390538480279148973315116697538935136705445478353711096812839847857703525743404959000972898807625459030925332843992464893792786206090015084617492562453841576255592184486305858269227636339954991470153408529227627394014882528790086178748087405970527329056841999241657032717050259140687780815126087069987329669829818535021564499460162706958213180572147665346078507482765879645444627565748914662153328495380968875343818940838499144292602490329784075218426429934027040121038915355443124507351648741641754769107520709482641384359425218109119543315373953047231606630578576759447798989146367055529792077263499463792543124320759637582335230904667258484275897253667821744738843187996196816862961826171678202445650039728544691580357183909028758184430173401650277365660435660133417157670702369656635939731839055145993368823771016638237579831206902000600460200137060383378419946418473783400119526272344903216977550987596449448911954379985483131550351989241888456237264124562191614741543814167530340009439745666242907923084536008868373625378483170775478466525983424255888127028988882703083174756441388347559075784467841328933547398060544301566403332035842767073620666949684745952499214019576023232422217146123943763536289991486248928939124034494072820428532643565088613625945050419524454210980625233407464445803773790910172526883146414618296516417267588794831790772634496058755185562920364890209830184214298596319274972145190491349545045206280251075072200779037003743154883801654931349697803155961776383623503940139027698472412971396866832168778550669382255251562569426801756259736054778923207066227588298122366779942397405382214500710694411800469773707133731689820538954136553192041363104347875314162343027864931628466394845868501709111517313585892567813936724554882582890210814972207447597850531209532573940992674387778689473742042978752657589085760630751394860620966020610354456740425476906761060217977675705026562829296131037941401874376778967289768534203910868395117287981952155030425178961762319072994440451287077696206595499732022224304593581178410427526505129426767497586541767732821766207830806095724298529224722970011919167878245357607552213637240080882314142829217180694018271236853259321000674176403251824515377504837985167283477561466873783536518915650201461367533433399606570649261257496550603055344204971796592699258945793702465981133244215347912740302244024613587436400541970241796518483566415098995099519976208254951963458362238009375563548933261946074529165016588300155810131513048760153785766717424600230734361149277844864283186852695137831926669071302255486150356684902453521378560416190192058186648483170399274195932075458993296502148940458172976878267168236307978981037659034605564520093257779529455650450963805107614348592301334014828218835940286108263790821043587130238628493476605036125343016066893870398106371526496438107501534961845036639064982420021454603177451696673938015725740941670168698496418969965219305692842336554940385202623715638881459282272637206318120121284069429719897381459460667532131104783260802001027329485337301106253788884876692555866919912180540476294416041202147164155602722555092057981590460097000420632035551792627682221647199000005724684206190330737354910657629080223170533281083836787064487315873161235407144725469446721475870258880075977627855295178188428619049794761551137988280604915109392143858703625209992499015643877450473821079478754321710057677482126116154092961653188404756995223596304779424571389331355892947850667160702445612912069320646875099328618657696510576782695553954524988904442744674018618115962859730185534745279185802350415480018043714289462369079284023495775830783581699053848778066235125842591359076317859266841711376783542247810274797876462410692221167749283942130661475417919765492697040448422290873619499008022854435725886215224911563891425014091169715106573642919264368654042240752070374305136276920043425432225870733914387010301438333396539079394907460248722147465727817925446625620552161848550735027512637389010535585699743018374639665818734346760479505180039887816560725241408733574082538695147949838279060673516481871034171062402466664369858965223920009239277210403513853480173893934611172623551551513876063420243008211079200733210591984814371473536007576474871769644264354217347081254913626957182964460051211018764643249777149815964555863917165567007136512041582464036278054208389836981447823552531902584681361483748807556376950408446054855490083394684125701312146897441229539392004028622780180812983934215575040811116720778538647989469601186180232731724285957989842251476654289724365354223342475508944164107931331011293695961431834586626530985080005320959500356596076463809517919582412637102593967394417950487164952511848066868163638384898943358957578959642596457859474624488909767053638288378102057857184925181068411056700532208307167995791098576521415396397416561378627133034172763085740499202673291649737114268226041703568991414660427150606310700867593707825805841430037948730735452819289099484234244906801763636663966061363050186687683650416968248558909521322478674082830872459800140355043937703937650097490665362629528045465847016805058277273879480370597166337149149866713837774946384132654781578580529020716462214675604484783016752570260462527216138867522670256711567158275853859307779685790335434429912092684316135912391787283372527986869834275508742406058311317059063661417429415368206446875010709579369927583307210923140835397901364502018474071689488173654841242033929004061766054464148269754288874898258107226641028127421419700370549232444678138146403720292096841888323774257573546291601276686351600347419050677863128794511339429234170275065613550025748391187399451172632739471500361843969756831124317298405077255760940733172475119590889139987373146726701195087282714088608432191964714097307594063679264990452829978681113740098934916889916689448142864238698666769184695040483028271061761698104213716254142595433387757286625418133127521029202600316009567129395141273151605077087413063027916864909717235159232411257443117382839095962447938031951084672886400524747425244981487211414568419243949663233547618767378159861568154868074768712669464258822279394639648674467320465891969819423620460153232815818226568107526932270081408715028066216220923806622141538379653509224135000744257235000662965782728190651789790476306950160311916236859212164368481381318380669535343886459365792194719680910923249072411979932857402648041469230095608928524397851681666951362916522560685349450754153679278274792295493784863167174244413332264790093165602672828073313740332223020788863754984128548697979913711923304352221994273180489773704826484639427415750173071002665108460369039295813761200695846538958783021136088719681142196360964147197228673391773799206103043906558540442982446624915383212341038802007002040490365072198863732706190982931512639742648730452802796597698267305081399974571920230310445468702665524670096364179987539613838194538337123205858264611533863656842825382982460674907517267513747348832196430590571607403578115829066363041087456142109414801020439172317650727481423114398879886504491954564435331250394061267132666571117410175621612703312869934003419196247229494301819591415961949984512460939989550230520187154865806397455347992878236407583866036253525249522260128896976462849349918179413430195004813546024259766293253972807736306477009663555908029192196112010365979053779217639944418077024351849878798636762332246094543227620526715854046024993975640646212948816648469311620117256800703833836909286252134305681388522670206756078848618982367208733375837100194776370064098436306731900371891244063749799600331998803603704562657525029070106651665366684879552083129028522278905630671889072049829443982099856865140224469208474806128699036046713968713688419138190556127653060114250657472088115506170383339529389926662832277853552529695584829647670790740145273400145590262331107150375534827146498615129901839129862374078111549377719052152802090725559619327942818073387644270084214148297069164000004299082292250117166898827605992400112207757509923190985031480785983537236519218903472652389767463171023350755346725505543543531817440088528293390411731067725239333753578665631275095421801838575888278498393987732084901395449121590605661466866627264459177301890287658915185250302166483610215153992152199430169665986907511319321660490856004315801034937417853597078054936081933734004368579498124991805668459824758441480088544659467831155156912337341814851903988844288765216208763392305694259733782787621259229923810753426727589002128988474364718670436621615415404300294253962900020942279948509409160207370314547003980898989635745550791146476803571612836004397711434022413435041377200962646737064355534751646061140981696546138337965659767347569056722304282800717226876777291052691434928620204106205063928060568846020842032831794702590758498112099037551451406343149076155946446719180526821988299635886895419999651355212297725490099772177909872987364735524058302928533950271880806589549054235470523808637229029420175429501433832656503246839780181265210641712350998696022679095421124976784563810351919673596601451786876788258657488274023291510056309994661499775161126346607504807994376560113760757450523930633127274602310509890497829304257854813381653630960362869683585562033821510711286425505140149756802713680762702955817610686394536937869370485634953783227211850548636893339623445325664150857731346853542377751011175749170115720042563075749009438220873391606361823686509118000404236914091253670764431528439905432952930452031923287613956118706524249632728510091143092301415775314726536625404358394848248299480437111658698490150618735944754270871683962766668436798697456596056246247557540728292899732252592696810371537907133682153355537729737622419030365590361896486730657198801408065290917877480866875720101665176432101118611878505633877092279313689236343834483472269097613750087402791143377053095522045991906824594776888027066973257513319857695841957182062637693860345442659659868667913492481735002907445772187988671862644036157087808947899352021113389801964039780791283801083449393427354108120046556896884040199710049217695637097867650169745572795005071791111406366472146362271908116132505657128475430253469331097747679310492359579913740184207838437532474615004096991889153105322138756328537001448469923586073699337898016734362902286215803718852300803221588555104600132498663146235990988152027000000833068189622835637968929637738746399357168506827989648777554101345949836217607433157844282522172634633189070695435178364505035984819455603335916937979940701939077404644972867515534956517139861583756408077593031335813045127955501077491854202685865841556515116217480818394971810837891927473923257474140145730255898959366362347824673840783168590906949755121702588193334260245473944123248733386973798224383370594708387637144250232560320491726404297227215021984990778260483601237120260093892690655430110889901391185145191783517331682655387021161861133153144836487900131073939416085924247434268938890278387682285733537673361061574070271171610433827569211375504861958622064610918769779057116558580489876727227782852749843324403885069956905156237482097475470576464127323706832321740353290309620055398396697938523575656563319334594832926097019058163095369141801174645260995788095676244890379541575035305033191276042126377292938890204317083354800442834478242463660477837976546860372024824288121481532791913499687715049044035420812558865598719830791641403575162344728685056677667133114980899323345350016207504108475712736348490308215294385559011619516731304038881744158333698650500875100075067555910064187102479157164314246212088510855687289828401161652491581981065290031679986496559742449469991148730243690828435807271445769919619767385660349522432464918572775300430469396286337462213537561002646508498382240481078174545278637812720303269056122231145854012443236101149944865430604312341945854209117843113327491250731845899112214477868623053474733771089827449893039134165215527425952137255832832720805540776330109321103617714207130257325112646837579373012895440859940965087467044820623314902254719552351117592077495310762760865391502984801955984746176794376290894114130340691249139967150658087651701657309055537488127145378555268116208053112822515783147905484720909553093600802159760890702237261318008395451757240534318147327615536501715827232377320713708470060276768487559925550417736368213610075784537116595281368704782164639676846364224442601692285530500331679207602981648043987419113882129837855515261865650575006035491075248015016225707094969867370577598427540400027393649137227778149705967461214238513165035906730443477684982041705867996866946150407021901523261904480263802072156701128794858158254239658260044322766846012170484231500618464532080383676245487913082546594500927771138347528595233017923570125383133366180002314769079656969343050375096972933639165585969964058263549290707393750067734925100366456725539749552864263314839663960259634254686908128287830871504275492952885058655303964427910410945391302731161440886234909488400753878580662265527326235417671846118935868159686800911148131479605091085738625934663364132989825567637287324514842371869243319219271392221822201166179365793368888346330355736953442212440262833440011529769464509247366222293931642421550357541678494494354133179364503268554540326223699232276518325414982419441058495629337666120811362479405131558468602309308903634759748284752540051488066832918314048810326479065062795623590201263948474418773268196196252036999335322969749612477138112362186791103977546067058766050203393248013797944829481414570438219174171277712167902693742660417777204427159172263059939538236448558285306457308549574805886289791872601307805589358776888800337808493346554142369301816945788672352742947240589938730650412109681626505392265838596219880546334199123967633003087038564237317501543343375777878079142189479471592507224691159181456496832253054589145607856859734577508623080879769382616263738111416299720787474908997973047899979982114452952216250366169362117123001476342767776524728858411673564730875396673212520550199553375113738539150508713113294223997368399835007181207524428747323985917579873467178334952328583864376779131136903103623643482360886920778053144713759410180966100104491356327513074856967323137843881865806677697871382964853050798321497741532314460398444831371521426817914856156737224532278544265134969746228797286459809911181760918605170834434903907778981712895143698490273265245575246403268913496046444000185128033303834466864481077271277345728396912480819865749982506938478701785625134509206372867210211347861183566815819987873497626868180009126554531880920203665753497068353463625833963376415792336344309474054639515022914743800743395922369099306998949357143912753416025230163907918144463092436411534039435200524729602106402975045573292260544803075162179988134648030372713182412066366372420870580225340840716505954282306762587087234826395969812304816054463132791104525171680959510826583246552487945039930418588191321930193592846169598811897676466873850008292884813579958532093211422137657472385393707472146614242105058698276951527280467386150409742802559739276737803697356061669723351531094054820602337749341678544722027065949780903970880608171319064237537680060831288870494838096896856061089808715884660305151911832108178715761485091299904202359266744739213899832794351298876364595965119348139070821700430648646922956029989976330546629239058703985048474226258437807432927289207053024770568561718450364400195474984317662947793843649083339392914942597891863369115408306763115611566369055997961200564029881093507137142853461625936161686784105900418752128262378165359571619768907077051772709693017625959179567371141743998401686655084494990133500293910690103838239963712793573141466575077583956394824659080705328761298396883263988124876580473498340666599335625201902990106163769682085766530967418721551938140676349372302830452766046455915743518159801735030304703618488017280972762697120217621066648263279443803148365745984683025458604220344606045067360279754413108921934909529506119063428072429964993982297551376353400973136004362061215489370235189048644960720970029190788252621698609349824093117930266966931329070310979670796640305396428122471208090296033286439978935766384347770252568543082999284742322888951718463255886127283494000352638298116458520421851284563756209709394353665999037826571445569308081533088872430891752180578929742745362365059061245226651105553967672872461504715901203937846434529455796434226710761475508390789210265541522705106499938187701456669776048362512515708162952226608455589562484524542883648265552140118972734920890333476060526955100272024027330694647388360447386268865158278937725434285959170784779024784123685176608939872732011732834918817868033846459099667802143523220221923053671995965807198015403285784818161678211707067905973102205953607847681379176749985846789017026687916476410807699629982116357355349452538563070442700305574278956088930652263249981992569549526004040456775156565467892779380263069329637023448566897981278923329588895478860574327860636720662718923818302391241557684835729890619905976005113591551140350949393531641571859119626271824370398270457264695227351908390564229894972969249853490445680179126906999911900032746389852561103968411741896741367864722402989052057170799704055029507617698578684491989305581020147694652506129741264193346053753530464030649679033797589242716026888459563713685922275462904198722761882884627092391562784536768842933394308794559517120733086257919459656571575528272112585040438453267770462852558101119723329231507447539704636658234327595848749489882263486331394533036172075473847639918076156319847431983895321133129838453376911505344783275617037453151375259790195726892224750488552709679262950106161628530554279708112331674246678829962059277312721079740352232973570790535410258171721650030742180097854096505438338734145961045805686236558126759719224604846627879309087183844633561919348937048216225965076433943026736203430825327815330454944210398525029209518749593263522382682041558048136595718475183744059775468120796110846566594286412546767724065719797352963822075123668806628052766158999877603216139047270492256392256832764697869734595195809244963691968660553872600691212802686759873048729219004957491010887302028754491250107070423570058409431866947017063873427524491374364586365343507556842363601624883243451010676325699937310238695913236412879603880441477108573499626398302120811542017817470802415024688697632492747790492129733818757400167003172368669277890101872670605387301923151591238501560502996701487104786246058799640859847521315612597547769022414807746327014773727026614492185174099862622136302814472053267818616533438134990496810397064275436532275409713351749035860446122740604139163171332967502009272921103912035661887551064897420172312108256793472405989604736480011643180544046879126882649539353567919822794675370958686139559173915227698196190861080715723008948560414133222854468964266983937663064303578740222054124283368533825462523363627955946557150656228659351160206248737344824350688654445936641593813113649780534589900456221316698322074501823766124940428632686257164385567753834804220854391656999934865508752431188686658617397253325759837838438594256718382164403213160232718363570150181578472504108255618996313974897055612230210111613581961541553105139270350080231162022046069174666526906759387097680916914609396312913959635031399198989831100794388853818065512600236185404050780570073073942434872088828857485272837151828537916817392237885941000806122809792992723348640760516775934882097334358793729355843269671585518043454274917214372574182820567201895177475180715461370727273293755251611882091502540569166272170378296313750419906734316989601913475878131375196103670442742284712534944586372888435059673597456344314506377718247527883961859021281926830760431253410043622003554984975026208114163657954114946824160186121530883556102386316867772930669598609638192641534840875719450878160671577269283822237647629587278589475152253069399025653138260103250172134097044933279863360327019498500070683772260889631486110708181175289934435940203043705163192572483283725073807269311575793214485845906637615765261695979425646134743993520383431289088589353341317942176901277629557814468122216342568640113665568537401099803291329572157676458406227865499323893802727927948431776738264481117220113202107812990194686367801847831382791330982868801905830936302666355819413329320622467580169042803744346489398217305375079160352263982068191554009048500926647896966597918780706920657672431445879070540527782228519791743024927086596977824961812562556567454579797183821552674099664875791950972453526987683298500543630940668590515242392194077493298283004372484219391790926085855134164695861216270105727984572558749356509374444180847195549720967324042115953573524530408935254205921820116613458995389956208088338125708920223029034466448997047584855169016241725308107772945449410433405907774502471552422983487162373052077463705245757146277857723408040563848074825469513832695328206996778383965302484065562385692771640928477687256186726212517253075587671941701514343804001289375353876017562897511707447944046236194020843457647419777787505330833829420537619845562600179166038690200396350359135410539452748400140880831635933064664076810235326534268768289835090360136320729989039933156485230568278208767995390790665483068461071324144367872853338108596625943219246002085578488300626689617886372492376386203847937946373575963673858375403558729774134813932224729867769310965249759412078783786216153901310095682935577097568066999849314268257714375439588136935495072007933653152243052362281774518540021459003938500500076565260239386329194152584697262212260408173876421794797367402869516239981358471630198097404766133218673428792732081521514531923862720424685081919124361746878308903026509100852690381276355737925129837874587345343906147717721896036018401770683818980730679370952037711217966540810725150040851731767219234419484791501119358025280045295979530540617808414217823284018254915662712031058368732800968033902182234254612930059731512213465364435157209962020573212365024791104309555837192280992486272267249082234383533311914501728839356591888298276720363203371856111294118406251919932381220657671881146423941324261776024367954743168469184152568341090095267924486581225690813843937429771394199828197653791561433662203480280543578996638542227545867738354026667098826905292838215810940793527987633574037865621546844239357291576717841612565976251947657936902505687504459076787963055134421172749332336466887913214341024345363901822212674299541838743156841990578532723542033409117126562887555208899271732036800131252053245842576756587972841310705907300056434047786524441413147741427489714506738215154428885115828470532232277156018722762287137662525590902858905616944098102781907239415777803978100342643485752947504642249104970757154276460349235015847126706609290774362042883410720385521399767686795259988748528989018910053204397175492070873186344516696043396628238733796600917489720563880133049240836411041922645576073583475154885726275121601440256926391061502753881255508414452080223346195174798873851028140308555170181811148030347311349699145133403918179730531460071004840793979983358081182556587941962416076453099922937524712554950709591098446183199445694893289947772691567884433549356940666616484175747693741182227197656639667388774534094446434873065821386603604647019536468280714534260298914198513200178901012390048047524889957484106481783370669038164573078967217911006575669985233436438933739293939375382420983177199887419579367486898812398958127441902896936543827634118533765944549339665666068474226723534292409184502628503738592562848771428650885029701273959746117161756864841032875943795071269158756868117718349558827852482149826726969474984376717851286274697708415791393240322799657442821115010854867873737140538441590014115590462704728992699183601508913675635031578336617314871061329564522832134704387792165557382563865040193488220679960322719779431039017141025454785344191752282400286467825199763912613906395449776476371804239241829055552125223655188901239472227172582422782914306889621680738523479917546944450046295271012425651665482826100488959074897534513630901867276608011378383523901348125118828664191782659512112792592849041069396543408564169637992893559414955720150087831389181328730459316230905215606122108681669695430580888027601545458713675544350238824963375557352554247212289054902552291883853109610330909636256529540813411733941572970480806401843599534729827360224458158785045575315193951639958632733988221172198309152403172871753501906871179005719553714635878901859175518156736805772950581974577085241185136965736227879527437874794793153899387601909805059424455052155112366697587265913987572710372980957497817730683576008737588398173439811221280771626428554935436351566833037698797244138354800816967360743718185322458312107525161367720038150403059339084683714674949866610807462060414232455518846283682726182809839041973773479856287186255550059109215487283230931104876984584704150106978264847896052162263171603708942619163709116189300725706356470781102609785324781329166982143489711073401027310294572962147213492747941066955307281047953757902402537218476109743866462473019677387743234495462304192724320592186108108875569743474441395865692394269945148830080588345408484110417064212849821517547763488062505136371322688816560562219567032600494082450137482769335549400398126639995484244245955596673999206613346995723722815132974559970056673878377273381136309435464949474729411526078362078624703394578203630778353946099573636245264528422696985633271138821284834370719891714287304714317933649881569565541944561414616618016695505174819649506085778411046026189652799411121244519063656586349813843597046783641269865763126411169133683360025148672291271154603672736186362984961584537700005382011053201791453668720841025662500207417569336874649463271137671662094698440515374801521544931586698650899123670761976310040995275594144778973860250919296455906224685526144610682801110913835069938011484848051086301611695591399208925484996367564694882746250043613585423301908723129732306259492557242608075004900580339973271412491506337096806276356161170865745409502739874215126441434101426846526895180200746778348149805259947459126224949936123009776940963353822277375610689027057997816465019951215183238713297100667032577105749451308342202801517637051541020570471143040159997372107364251036838387863478783518850320872958473083250216088705245905247894906612739565300425522004033391028615600153560798169428162966444269763135421653008164667180508663963631479693453290087463858698236967524181395037963918396045468268854763889959910609928499613759301508731942280434808797586527425212936738002073279730934077017585444565892604799609328662440500405950972049559890641458333574153324445539355669467726478424218662027784735269300380789885301775457109993787591538829009301728787501500654407539335571220704172802733152393328314204333871367151706850736465273247356071843167899565660392610505098532131503446675707985829691581213951016494645770455685701312388393425195965030638190412783596789729773250941627674371100040155538230741830197207629114963276891313293359035738273484910971695576135374617102771022516018326236337747894207002667425009382759378881610675781285955342015059793407192861568396769620133774934833090794661517042001844695955840210959795131567732220159934832585379025593811720994680931720949532550459611708998664223522738023081164903416262462963682255162836734991250569939439198113479388476407244994834240727750324994226644334133961932716381261689836895159497364084307932187563299875590643314781900009578334151820483899955815652300574869377740723309999687552343789895874605761603136375302770666361558918790651133497885215363801855855738542619441267386555090176344645871186699594706219224506067309787782393945164677850516755059153600225629945483606977595842677799867519793638868916879859474608022134270554894491769154792473184365975121512385976278878303769421200216184655161460471700283628306584416839883937785208515325718028888170099298568407372672090574877009960511339772199361801401265668953743937100054075884561480088165682631100199620463607028943846913550524763946848307823183271315533859591470171312744052513000360686964447883369038781249211355484095215422945745286351157488049776446118695667738760855297058718938978113633944680296204524273847643018522288563412593961554616372986667288521577898136417611627208000662119473892583750389323245555898879485543589883421594045456499436169427005419966448947550298054695356110634341943293301115567087912628527189586857678169069704908439794799457544182767906314613948374541729113750073496493918434483568857309911258785586732907024618982150195789148510800945442706366412523655992631757289817878238664505946379955854749227800372548312029492685941495933911195947726827744849449072707725435581351933625755554652008988002991235349662909398227471636113299135665928067378977192344000288437856047624489656152638957914207348393090248924437670981188235116558713022759027978827881198271812267999893777093846859278369406340414603557350932250443083435914434208958311178302110279927073625539378751203106735816409657316569247121623214025619494699112563440035830469363898631884909097471211383180130967118501647203771487577094353553651855590503809227407035813107350176653805811111668843469049457347019604335158365729707253375602971459651870321960799580573046321594017432236729682166440939311257180374017325788879812816667757268551825186126710055373371557273491904091705209880915812610197581796602764246156684949865241081066211352190380268404150833944778112880714846914107534484941855718588334556777385447938390344345898933738667558790662272052824763565368044465044680568189778380401396229384644596021874690907468145713687283596187536287730880016359641629376980970423826628661784468632608086079090970342360195973139349460817759088562275291556364065804341212182197590248026604907134433796188363356492799232607062537501358845780151986315909142057797338951957827989230977243388387856725622762935162155458317602966434934214127233107024785628396367233202890494808875920705226146009846206007951554923684398619958960778392868563256770029002341966555346062919167042094093413719204601271563167823073886135714692090797511141712694984103105569248830835320870609917140592880631031247074348944690211685602306235009283729571023069311428785813792366711017149863271809063230516742934420412428384091863408349345045437739896738465744185127910036346601677517082092975855988791092600376661812779419659712830817389711995581179044154085968668264552738774725322821651552341725235495455133228263186473286910420476882427415767938131180472104308572376222210745209198722702905305284818064081757235386756705706636571242163394770911515651720951648801090861944668707083129658772157835031971691491224722766583034113610960927842132289845706885882845354190472898699578083749652603522083321777606985171039265568760842835952048906063683925561955449751793419503005690618054885513205631332432803219602678481888886936784057502330088820426995075445238272238156583376079693796395347866739638933828998305119863566298064294675453754754249044533199574058556241124859350430063080748281855880727890124213253707267698753466993597833343638817896054517903772444474111490447528470647449366592015010131630600302099200756455892306081590125279811737725201726345971858066080649717738658398325623109744709668022680254572875061388172860170785618793451540539538440299964779655879036460436881027637835652754148031971525967640974315482126823422920015279603742596131172316357504316663628141924458390257919159055784170407382354306152716706843498098331007716567215101056075400789836476970325005910279100911024352734127116920331294129842642196378929695074716248612550369097473673013838335126004856667065346951111511890767454612947923150129216664734340743900520808898204035852299950021205054704120188612583680396523204485476706616716360156568145990790074242648050698099043179122802629005734089069280797614077433592965122921757820188431988558391147154387901225118036248643420913901657171598972515347210441863588716275020252088213804317649014453844253049180228587298439259428644134075043682300099227333034386260699720433129160583673436901222674490297490315931763208745826297747509317558402556703597847737928439227714015725125513514744644029465119777377010460057463564120958392857026841257235275469689106816910919089495652289713957348017498820974392237433969248679820061955697592333125826810060810235746854707780986471022264602174240661932014995554457137562863008601552337957027451203208586241642541924254158194471352213526891533686380287483434023546557833651299033176078227419326272867300699768345183827021398154710692256024409412101236987079256202797368316598887171921818759570863323337101703727063593036074227704233187756618795477999356491741902976893160559614623230071954395748288229790365940348511064055503182491324022865432653338010849504517210673452552935155560495077198127514974288878027161119252061884570208604911981976237430502755377430443279093337312557064237088391281315382187298474178442040458698638648106067132843304599515265442299997198449552804356458865826205301361209336744576829973392131414976661297488482249549703633234589337113775433537517610715933367904326239192228718306009102710303803581327234699411453717648718808910619431245262674838748784689818057745130685438203125390098645695612490322508705770388180208156459348756077089351878498590254130928788501485281647250943770017211035702465370984543716059119690226899517341255950745940565412615870227698118118257919651676811220144338422706052238189232577431566853249313199443528863786379810754238778107840724311111279417144477812534318598905106984860424193087861097985290761826458369499641604519913699433295821637184059077554453694049066941164736629520882522817956503084690280961985466376335100547143444421231331035433073922237535262681757039681033839159470974782867603689582468888436371435596513678717822265290464418997907195275890833116177319354764164983243553081721162710160322091717829750877901641724464934410062462422290825599884985999610966845867842147430662306372020421838109106685587261273540561189265774682829700390161333827454809494284753253430715881580471948774279171955156206278487832448502032914364932936566067455690725469898355566697827808391507157818339796809647503395789433836423261387517102427190646597225127349418003301406128180531253989181443645418078121072452637973610699196806392430132962465626244639041057922168048697734147619670595060208949102418478204393478327326469741165609807942327548468152889475834518324308595941876987063642026231693531393831554291914762843662923321698130389020333195533763006622317672812773444123171556634670098898427981816832702057626354079611318450281521738956480504006339823323493083437515951627089093600272731667232149527199992904223181989041793725701739654677248940841023140776435737756613608989317786277885468882909505541859260796369390160106009595791861685527974673251367654596891396175333037201799036877319127037361571020259713613029894162035654079638621835635573639056925462841045213006719496586829355554074274195071297291712458547492665871107950314669623417395823510886165718022208304317149463071487556814612655067802218133717981041922666014392268847428932728302156396563505683100817042383131416898099439989252254949604301468081433690697113102628644211194595509298175332481017576115493707485335616568658754273609260428096014459838562953189541036854103171297608614662492621182753786412293230608860113888414142429351742563827237749132092716882134708533861488196965287094398376157759927766364203094190771498736135501465382531672644916886379702655382475989520091727047926539927377078443840000223721280351999878724368421513083606808556564016367572312458866507482389026619521312405254873133753230293898901220669349229722814672769358418932917216472009358396140406835037593682665055339351962039454588614424030295620291983810538853004705127823468164180440559209451125745910005362628643412053654145516065893758160144482291982439758715728080163692372360450581038779238258520492988744837607802602440869059377769019427421849172454372104392668471830876454138681426916582417047666695977290175427417061697986180417289243896237066036722481494493516727780579081085511707838515362168401421477650137107140930604037808846761510846767747871113528945093929192452152108869877253753327977982892071419997434660563299172653089939376128218743559244105820034353424723878549339497360429109189257826305490151584603247298146781972582284647689044904285825983703712484277787697666665569504018964260295812213258255572557799119215418633672717646619835879751657805838743422213319993518322058059333489997577138695818964107079835557796637992741828511733336288028049719040739788290445858196236264796348530655199895141625473384966410836359905320280345381808221590130832161627299776723002060164172749738791721717948370979533154606598711461094037538614595851958288956896943636629774892794790495641385135986460914981005459439468314129248512872083290023647707264261653217764240009038254046007334294607545487687110624419942382550888499870800461371323233573227481101134560090667089277882324606079326637272870446331564948294230661595084702650810056563117054122564967412732392651364375239223930792774786581122402809347691508839227723263539836921017301008756807936690623720025303771591374648554083402696659665593471799305681269359245076417521819266370490360676358385593782517358115586158031800028103348290174780668101946233380399264189939124514735611138398092220967136392922531197028516665301882801671062084941048953353198733728001321162778873468449347139312506688062385832396153836544352261011680541741313162830400795591914126233958878491756494334785968566038742082215766457209311911244088433797228151642883636877195355739378398982885582932078039294734414030366268145808800144660250915736441092342389293765208366074049212928573645655017353883205049420326198380955542491221799842700958821830182398864476030755719892349473459183485608833675797081882329642932631879944617614375988269294355614056441483052924365762105416414782965798461692286830666998118905912391303525517685191071250490432231763481127734817409818021592590243813865476740436203322953279700224905717523763754759544153055524518279294080140983607045337866876281108565367109243768622649024134719769229735018037410121919507406287402712913930997990588486452583991353976284205863511841928516274853888031918126409693695811432271933335894769895013983503549887897377400874074783554078698461191825040917545589174183803944111244295866006775014431011243362947369274441598065238804062941802509914909256623153434195873832487191329384026889019553135845128091310161648753006393460416551518094646803735055899831671458332872567316457614671673215838893768263281942119564827706786622918569283771044769673369943590821261036411795379032238248702975301856468324768079611725997433828275345762283605162697692320411752399556544767220737417126629861645163388231464928748042642894906628388379235920541070188659181421110785132409990261036780423189059677247700789759174803248814187584753295994745969430401454065583311336809957979353269656670553762840020592117155430853171224910348585782172819612885033379271886704490460743635595287766801558600711002452942136691571983142298006595032781395339274232827754285562530633917863555894861980121272248612434715345305831493101707554592259241102537243407110775911172539458506568272054814093431009712476298746900722101390380234095918662990983419077401565021983663714688479731668886397600511300605204123260019280343674959376487013112438953341618338353921749848478041770238952814245608608385200560287192269516808959842307669171816854217523295504510353446925052019462417067924132580412401499740350495918852784976815045488241443012892326961994902160365271984549437540959405590469248545849121711544796165653637538325598205863894780874542025455810388441186512652523108176400227593428512091149802217268557635230013873091594287623887896201963813108346414936035392480104617584458944734241045118359675767616168458462486339342456579351274222763278103318220177012189869001900311153039480133599373202649902193130847037642173635834310608636712383252341947906619812810769066031359328959926818393271912199296347418713805972253906021598860268169754540844562464250385115984433972177910117056616963903245845771134288005070245509830183478874309732690410630643731671519776635896803434125726929380923505068366298308350816530572711237771871599683908977899795708895999878233331556010758223397626526247603224605186809937385786266125895255298706914546868587451727406469925478343849067416341017633834056848184094536298644305529519299410910233384713889598156561299187175173883575528412490014790137819871739211417734907452258629623641680482837901719049611927478358834568823447195445529535631671775872417536678718810968056167584265116742441697532413764494542663141910246774204703932613509791184146106319271455938469639034335595418455000136053907366781066956378115825762462775807723302960853154110318384357017140092927612352737454810810830384175792144171850627645629625236216551683949629472624878370530696813014587157182304881993055171891141392487052659288898388153750394704789416410008666929987046620409692781076800822758572513486436797981881443453412024087540677777213334672145560557260712886847552403607479510257459457327808377223701433311710211561600403264905624978514784817367755064195933477004599142731478777852249268249978038949169097358106229418166702210047780428717862018437906997994564238568484508311829626494103307936083587992624014928431641656484149497636009197857227386815311437824057924097114149065902661854491437711838386719104154468556080047612505879061303320689784417289169612022615018896323332397385749819146447689851061091762429764047084932467379530708936099819579048802662973675515962368580407195942660635299768442844813442430173981867513384071383747654233095845167923890137638790878129420717821519955936057921097423295659583619194386475979169639977230010562283226044722853784228374016148897670762700065507142812405458097944910970650898975863147059592112633716648704826395675215631651755303850335303344901933659516082920603151710005236376823685877516132824288287987004941886504195439129898844007796415014191432282434054705934536456172888867412489077018044116084002839989599880809310592756295124486569601452980705467305400962625466573068464814846449350101075078176750390485683021282444228357736758952765758252689869190173403143289849475173805574325056777379292415584625583930009530079678490884715029800801850097013419276571282384273556273858557239273901752172390664192564063668089932480984689839611497760431173232252342444293151783714361893799938839061293443093623786868255271564456285690204808745939035073890996705373877939078328761668374418943036355481866777086021189718805899800176051778567530608348371371845478272794762213375476480413699024336297047008144270019700247375002556043055566137305817068043653879667238920432643520349353080068858557766104351444542806047134665577314509258175644083353701494320788259386063809200921482859512830327224734797504865849423714748370060185742211204763277831014979768856730198200158931535705393694920059303601674608518974067379969695886072171228259994522669748321709225497852390741835495217933561135377959328409714589238872967412538524513827769718469105996991207335946113875679260593036701022309901917603527972028828658279555543675354575691632175147065815941315465809000782850880683532055968288573792229641228243027723197645578117813485298058009285359532970988287817338159272535527152425331709862754917307086442143767495065939851381866323143209012503668846691014601727850810059772826673092149578810850576641525618568936887468555912921277462583945400381351627319721951486828638659063687619042135734308963456450880922019427411339028049368941865906258297980962173743240718859126625450971474629622226792482075253219395617070475049891111164679226022898856631974397131838499824820465221095821385168168450519123055273511157932907771048468625693951526456233455516305048409958547548304636602139719651555775444546315734273502510802027983263457306757044230894818720979173643520924875276786234901100294752909208835776367706030105152324852805883976555787652358062743127215839288340910637660785317283345505158134943446684509416886918480240387450516538092913394470624636267205831113515060735585788576960882540274486162832986102975807539523364927180304530645938257866703177172843690792774948978708808280066654587668726913301674411621788389319026206443346176319314727539150694754526191027386696591703561923795104464170090442956429585323150213319844598013967975666519348957669711277441469903292344859632122352242583974056113362549295143222205545380009048490899567434755753934854495440046844697329297464390720814802537791139475475520646977505559589192427020035105126991395203080541706742735794816155158928943364729562910150375842645441904044214363452839059327531574998505381471376845641340122601647420615461899035558282853548844424157721312602767500034110870026216733560812604838151367781729989616977351068717351838072267510961212118227147725909364901082100486272317357959740928784966045626293283425641309922082709560627838840613409616586895327452862562988838812237225929920219389574548065106035867754846146748819748776224066477295222178170823213569787364335080623993616062506515863327413567956302557906779812489850393530308298659843066392913707674447729126994274678533634144521289255937491633410200841419483061754668720759193022361001639574407193067501900482218975139401159892882270325835206411311638504402826057494774413494194253357074072810421044618510117802117208125538478716847282783577590669363186087052571896534148045350789408244060977534939744440679192522686063391076034099035844836641821741649990882888446483786337221410635618125106501158136809385732750288845232545418828037134507499587938844645592441547796521436712519478954232312950374536492222324612780161176325529982343805274152283676204109033290005715906515491879695201960440557088293695901263148028018131271602608646893097485094793352333881317871326689575929940835020339113551572209648883078209183784483899874377581372088198576095111042439252804077955102082725468629152081565504343316569811197943603738221744915234414604000907657903493839829150893640359617804892609956575571738242797815035450680784665813379344208639489540276286397594313802032274443168668211752720702541162943419480916738801725531411140674365365486519693127703109015271886421968858219544901827365676577917328430976525401565984575287465008042590496577994287060305422272424643354691296072423073985130991281853545052843133225674090391839281418167712095393643724111448596420951113030415034751392756124407310016532255169831362744662304738942564695688352822365574733958188621060885056072713368164827597372959720388913704715000868019796646526499038640312908321690848722548382490151985526738483541728578318463242342291482939773956281428605114299714731178411619718511105076023224036719463600309759637041444858398339642449633521535941221875298519477385101046233419639279772912843245051836652952291060985108008201446087276261912207510646597994816205532745103106967749631426559227281247277846234679318858917082463911899057781128283992408666327842235595728460813641595853044272542478128116002362598078564488527049401335084392982799723373076100457973610959703727052254997927218434751667453308536633816406875703771456112054049846458019613664936502010329776587180840515424033743139198109725759027328121376821989454533796193786321115931973221608089951774540226365710112541409230295944555968377221779731121544055263438795825852174074388586474543504733686826684111224052714292917637223622788813417694056723760516210270252573672172232128273704241882995332803698860378711959495797577608932701012527903154582498640600131358303572142378846650482222627968043972354298613305339580314471875206541559828503573468095933735451644840254170542864132138693068966662544329149939740699140813721234053554818737714010538915567681822919708722746028314920804442673499070052174998026261221940207186280090826422695867756930459238938328619610796822690787169725735835292743180813761835853422409116719376448822155668706196502371274006208480151672620998223326125500079794650803751694721072019886371470141679666875201013652726941585366067668977926971518215407690625790173361487454246301123340261356576310104990395393658865314316850120016983488336799019065623295782063008501221589080724755907745422703230109214764521718681002404385593831506148519840944405778867711381556321881064389336466848527282007125214213903416410998573267697186412173614300643786765365720089929048345693793914703382118217737432800019881316418040872539304185609764218396479420917043729683851698041306679350701300767004202997279953593847754666621656543874462755238758514630871107268225409215223229923064134675468830305333036842527472719645337351516551205442447850163005557132635448553535484354802400464505802041546312047261460884735944306909178821462188902220055242368812757800252698326367432498370722521342288088057001125570581498075432874711918245434427877216957353425621062683425455105927117476050626039858345816198410203556869266272096149277032602198635202863999280188515279968484768885835205322743082373263909868744771846759750403510369032473584998924591021248710030149438122092596360679126415827373263196557094527113739848566035152415585802603167304572668937001212124947951202265296228023718704675870029535309263065728343238550681241010565925471297473996958539053981380370824869827329366935442725096823990085668873676846304427231189302009342545344958134417568577156776651643520458260232855286030186711389451404457821630424382848347672417801460679682602898046240093994154470406221644623869570550654297917989385348892324518146594707960228928910280872826029048220285692138639290429439962847250887245372664023659622819137198594494968752537268161913763352707175159302230567775355759034848307921356254562494670585426101625131945540386819050952177323124759259219050557699323431255746451357464521113516437930088197243702661727268457803178983020487479974315686241728968911523698558737474001797786101329994407176319644141368323684019420582761748868657430188451631480130118075115194256964695092894187086939023510130697890379960583466758412179425221079081021726718323054899745701480897093317940882230111860105798676269736847186853149291188163267865915465373468489124703299840664689761007846715528904555803627279378803742601733709501725764638641673328011001079002589715965719044755627461095859867984893038080077667127417309678517987562130492114420766005816701286126783225383345726512469935383364047041471827873540384397180660472216084474519843017590014260774213158203513981330551615453967810767040207098892586252674747566703931581282213587776284990331269924054708459060542370785031397115940807787881155026158290876988052662177313428325197852803282692261217018606984001698867705131759508941686418262620289817751926090264465867157981595132804446313745695013504138224128025715979047581228041374287918989261438530776093374215436511405451575781610868917732260907332636488569078086353623179296460359193712108289426530256143780923125093824107885119159987869674300290992905288686282313070895335715501773090661322462456846607086892739196282728211580501901304094182259424098853329893192549702462953984505017505550835854762273387719450943423170994552398053726900155886450272925783272727810276172719862588976593913828143552236558526296962614207920170007390328024521478329433843215322708112300849066656426004203657952568243589536393917891385343091328349328646115562588850733791125160702880710165445281782149590511724209479603914560608499764985765219836468016821539164537272903901419139383638880307782493894697991897420624339209299278961536548206033407851268062860543551765473973625900269263114888480500804138503177618950182383756879014518161853764555729436210137037579059915412499984444282360361228737196265015203461014596057276644984322747857454493302152659736904298659502072102869149804700199441390452133408713698412263663308136440265387204360912201369283714214476303983641667487767595807365185768901493530226826742587018254245290886006081932272554469416411962461177737239626928707171127923515746154743086892728755814533486665701857723946014744745887718038024179788526892893057924834212899553733360984578388811115589677657137906529065949994622531214182448396988323757256756243046413796040907877957642596105722176417182106492673504779259219215222448943788461659739281146359506954786323387805875521079901556313113977782313670399207811921026555519812339040083879035064828052553728873297216026633390703212754456430845920232277124949450729982352569728311112029506159513080993131976065661789159127613113365735403398697481065325606506218117043943828419874332898160498882421364556317450113151655756046732983250729682945174044720246889751234304700179215927689863489781588163475949598924236769402497881754012609969108147596366052440922109319219347833131235565353113814594638733849204086869221440201201759323284672612553219668110633128198415118159802402570398610778848059263271155853218839219114125386982965532822925259972616087528762750322927546889345835562853084676939396399465671791935266397170566984847359791145392976838050877554489059884241080179858811340063502498552063445451989517215939800808616580960725415837086609509995500217192572023134528527794911551589807726723312081828722467638957975126397553908889579788361041705608838642534855643695755591652619845180317020669450136284640908843394644700045600383249956627890836307354348096715827241469916689865533363289668616136972245995301186512968079925967907740170311576141240985373911800478980400976947084659132601048634316465974721708742332941387769864740691303631098753566391499023159586673794636309718326466297106868246687900858756638601319104936699301851807500454989148377095765515647450367477375181163042509010154798890616288785417118485240914811325744856843647694821667327961130876601945071767209439531486346750946946346109977893753377703319160312143409569420130264405353058265694028493484814295597805207676368606326144397288175474714937683054968459535650012328484734300286229252199393433841336169576408467555973510569086094526602588754028211548246599600138815648538345566475040952213570096625765501604908455778566723119028675547965325230082612779150904256810604822153000516709883856429112549922947378547074823842603881381331926450969457778015688019018681115660452263443838210516214440143931975767833386242738967796375587720058613235812147573869553230797613163360281461772747028916227549058969067785033222625163050887526694008832915754492423306390778289884770869289583410833295113716073088945702517629197955861445826368638237969595450421913525057309981733994691000727617893107639970337188246814582576251496532981910732918354162405510285223660335024789369970973452208098998726144205761173146743991208295957009722232374917176450261019104391565541794985689684210195042715116799873497719020142321285556641807811482400076668297523484447800980342521338741981123691533045651049728624984652823401762018853863237282773160787417135829030072222003283841488017973562134241284158725234435791356509581933750490131714280751854592364550773593617035506335963162644275044287710760554910794274565015940394942439497949619667155469629997406578565726658584998609749649517007825099115725023522820934276950812594630276927787475955949799435741064477141220441589959404988106592895004487030101517165482439831807989550073313134536994523136385981490529677256173625938420566501907655329663395414865085973309359595556942546257513035755461558465161602551974911226171368230499153071246141988001253345113840789440838584840141847889295401492658388522168898659856421357410669723209224815952115069588538729499026358352229235145749828447629036066526278954776282545538198598389204639559357694604787012086734696069305511471712177479129495476575349706123151512381835842140714822942317107152634646224889775684459247517006053670454146829811601766023796557917560176650364017962836339233817046424604966293640351398090336459751693702674729963479076530207422671193757361025832649715360406042585804003154664381607940896065885712041719599719567954829787668576268258727465013508263791662204711742134694099996258263360958981412563417605809545033611295641165077790828817128358143940047324170104502448631295042148417436843988259833887090626348931218601945575898020061500958139567353205331711606101910693428671871485044000782338136245366745093007644915765903753991154332901356937694551430991849414364869311279208586161526171741331165033583940689692222283023510639371140388665088768385619906290661073978189002293060205136517279814086090527353076252651123909515235346568388097287246404661075992193539728171519714812631373381754657079047393160056115433781767307921779339308065319363316492408075427907762765512530185920301465536232552166338413713486987572478814509965421746467890358966048922883432338877747056114391852874010845563270260137800489310630551470384017504208855525933567511571060898857196012475150923993812254827964809337057721363406220601477724785977920095939690237263632364683187630105390642646405380230225803954739409087758334943804610566017045988511573309956405493742456184223154833644094042886570057735010878858884689553779543137688424268961542815160190861131567118654024043089242738163490589464241872338597745884200628301040092986292812431754424985619955876275528649757864463266273785064174179309069863600426274846388029751734176113239419730760709658766019522598763284926736610902468018857210146066025511244902940923356515297957605433288462606639837117646316500202644699022363952288019640198199075671632679838894988590592795301415065832061540807382307232747067943877024595028088927278322004855166059458540430530365071243510824914126210075246645113157779663432349513030082719212751313063126619279855631528553504907455544091138194310898848388526797254646187024645149607485089107938140463985483606322287824190276901780732503527134135416481766088396529586627608625649767321672218819313481691464807590173581897761577450482541758256661941225140050081313607637322535156545578154914853498903214981946898822514193078539156782745663977768267582697020424493464491998618088259900275135751674604528854644801960070308435916216613556970487043658798593388718244161638279529792586675617147835535125235349369539431450612100071662325525919215239699365855961729498008204143553513829024527480883824988224130873853208411384429596254025093883464217592767149006055551573115148868515728887166082932292816596418411398125804078087709371924703103927571814138310404137254659214100532062798803118460997515829873905799618796765056669946229880530652803930868889701517863967079133437766061348000521193526891462939882760981160751962623852332519469695241619639690582713194063109311752963428212191787749831228227153689565981915809037140699175350551202443414762896283612620731323403945685614409872635108659790299028196342476601345243725031644706480735824723112386368660860516871927122358969323693988849710156010476847505678619062356377621281731373177067863418958331020175289093415216291919200041459150386230104933174438738272106643233122890105952875701996682660616856725894583283880256707015950429659572710650643871882083647979292505981644059638211183130923167148788962794079385762336926566117270119184202025472392480239006571453559425808018691258209737512480948702148021894255838493291323973097129233692240030841078467651878219821656541070195811381801866487962777282476978047657046798593016606002031321112805386039251617835582397578177843997740153939931421130498550872679245062822402798282118037555213195681678904576242894866889487185769886482635208474396140395587933078651485151964060448191227385967024492411467503693003651812703687234039205034892096050529622817620363355404494032280639154985165527183740100154740651210874797553555655215250789716986080676270819801083541759383112804060147790961172967425725677368309951234392731829461882373828267673365205853230851942882461756843866701243007847264537493112658673152708415422108850194998641090051754581059972745124714397928099046824778641644182650744654156924171301296812965338185419248405973944570581440400328416621059611876582537267440644818416535146028337296611056968164224346703667692733829988177807055814272923817315708556379960398645102130760519999110779632349728894821622583868564600693840122617990566678104562509070700717231024084283070873994055329441410434928091161442563559538644483620476310625746901073606108161712147074228904510962310033321216269463088844510804774266449915361853544788216298699781026680923397252455165089279045073837839917436418097304038260954398062639501769546074577546030112009927753714811518972548160934832874177829948327932207745301194087234504777989165093071173729755603392280270511083774724640716840350001328206019676449117322559418892704417424784270785205359833434622654025668313744817327843931152303968688840627955816732580450018739271870900883311772769912286318676316853901061970855930611744949708642751803464663108530277668320366125244902427643857201066107612746646159055710040981864441400310135000594097207097972784637431525483879927796041132690067410510932935102468088130331610137962872886660855841492816821530860979499719602542876679482137605223995560088589995125907497289115106475918780893821993918126175091213661638733690159406458299242485214693363894979611480909875412797447608819702454722688183543219918401153880317940572026630516683301604391057841537247389078613842884676651074430716498278639155272177828218114008859983216518393123901571602758840977305092471504511376090756696435361646876335754592565368386080371413863392004157984795429160995501879352961680392254671135382589617767005657527616656019894811830411299579142248549581086890613128937978397279942259543648389083697557391329449743252113165277939276259476630070230770383754209540135425193365705590172426255428085726864871938382683318656609985744527829862249078119983348977612356675861221594457002815538005974404964260603669691122167738585008946050731140008596356251287308513294121884028419745985416553912131078321839193442060776050450891021765752621666892125483130277149053516930332470802171141077867958568521067285751043679659364025694395846917163100867991912409598047601180025742197970660947000919642596219247483603981720720880324346314305099136671243812183505749211493847313349970919133042239405089956058464151043296696253140089753214053074525998314534521939602596715079349899354192754462981533040003434196733183069522468978972871103801441511905850258117747457664594248115877227880300329482975213904749581867351138787567882002991825455965878096541111269574188072732071214969453984937943628382856969493381448734368638978062494566564571522626174520486642424367720033320879055854456409998330931544841798629801456129605118914467611354826185484321208147072612668477435136653874515204733303592190496838687763410461021931216119564712709052676653661371823812927493348418171513385188478230978267622732342480105462669779417959065111819178161666597414950829927845388594362536789335458363490835160494074804573597361025960743979699131821112180662546670267207633603309079789357317301752239610765033644730815143179968651628681964095444609335904757211893524881488044258797794041271116056175979788839667542583993486704329221753757883876410986978955653914725507753028691756490963516991152174285360127298088202128031970556060759112146411432143740479415490608125449795601472963463785762907531963607611037151918574237867661898074245703808438807123392380177823367504190869909106857601762497321676780434511066316527514633851532066067265395606242098606815243358274360225205689762152763418091601996166346062159336402900668607452409377655032817622952832063650260781344909533330303245172818919217557446050908946039266936762810611406494761587754703783817482718487350866754218084800736278273945738098022344888207026651430517110858180221275805549786124028875063662270857446809647119004673895641106938119892065257195030898196688083780736087018760062982823939575492040038592102930172597585197781175143251622126001040159619840801239651835944705833092624887746737757577469404325300278347415307462591907522169011775746299324813118247368121366520524503755343362346400546411786666449565889279361860439372742319665379594111507705451226172374255194906637221787686105821463290003182382145605876746156210247393154669161245524352888632782690654550736891190458418877219046069865556355025044230111096654296508940713687645182134357943700768017020897757610425933061048434689098947572257052909692094244249770558124737408579147721843786300779541958841046214207084049171539134838168128759322796284604232255479118186096327363342906084573065400317517944665964954256791709068869447649742950571289667934121473795110487619428740818186177372304889528950623057537911790434526227984839321015244481361095935243179949054155818991159339727465344094384517605421637731844438589219160913303418954983176268750726688685925409793008349666636396780614871279773348532062050627478168078314536264653583011821218488538840103487372050808858739053605673474608407782195609414824259921546700758843850694513356470124659784417072603520056511288262445211312510632307276203236455961923252313571184561635093255259440490051229975381383374256855632658968772578415532563923373848342131190588893307717354957847448682058643876779562178297172226309144865460494764326591622101098722837696750431484904662070148881820578816562502484287256797035720966855016257246351258150743468756690289685968044786823597151829284560624542004560565705566511713458723610849231124398793279842858799610830013977645484333904621378550055225179596226224155814629583921672903088190623007566144984843450160141460282744803772013718257706544252172460138790127664633873518863750332351760540291144650966467211593264870244126374530004197250058311504138589889773305811569924790582279150512524953127636438284043050333561357175277839865637148288399522147543043836284984030992269160139347442567732985215816936122005319984408431319196936530842630617112340705890406438318881787225668527962285818626857374493470121651650181740433493666802618506103060783206110534740615496417693995419129984211840307000795739807034986011473859478922749198779976682996044160800291467280608338357141079820544308361438130191535667343554745132956436688989926138233573261594856675638652426772734775923309332389644162351115754428379131590838391734698337260294286018950198001122922021945735282042973413023263657300424846049923367894332570582740632466199529570793500425720413886384461348012553069613563730432708333156914526356519577172041078731980568674150890338163623396844419174707741896804509729782930020217806460845385863993398046752682648181799682886423210085117569122575307795182438622805283500560605965992998340888775728120959565175350724266875062867367369603409786311687657154222494575965480696724888672807302976930217265913319333376871351136951763390704630534979283603427874803133431050382176360257332083703708274842696518068764921418536370300963157274021516969503864939259804532336177089371432037864031660611036583242599597797823038922195029065920514660465650005058185987344533677601204768781522760302603985217062325396813608779563200194499349103882596660897039293697398107768118721039605528954363909655575536957481584412692101583572069798231109430067680906520418579178326967328540015253555434591336643631876732634605168910947542128799447530796972557477032104302738050640980121983973716448738101221710798420393770187890636867285007870225385308094197741148641687209700180875486134298208690402257692777868422720089291093145836802354002079768925727438589727370153713055578950704136529638681000449975148673474090145008843912079624956356343742699440826588639143187527649175776669545113207983408670957627412879599853065408565403671868675263441832072443039250695963376142987928372161732195386505305839726605291075129798375505724442885979974560202683426357234336160511747401774840753374401046039536324645708146771950619688974524679745670105084314035895211616605705811289493576724044665332266905990429692202277469309339444740282279564288561724415744299915930598147339568773120561337474818275505258556343979029618548022458119886601156941193256619660034215343248181998687850370269340423098891994750914781960604198632800024128772270954446477193893310783821861562505012947927801451170255665791016470625009851308807374550798941894624060767023042605901534488022254580096122388369804375000977465215353780197387135456008673036279836457460671947693044746563067647960346210067385754709255988133554711027790222127466723995101045022923366371130655150090574867770682431349340855849487246022334021356619891089513786665076686052321043530659411768420634657267788758500577471696709430688259246250402577850199828983714386008606201018160203560724795778121650869782252776071258659370700897728439646823564122942092261185699998058755786786925413037476410484576872103452460528391630264679190327157311993057975720917837334342033575471583471343383000697508437437061901598151478180245675851013553438186200796413103929301288551582363841086494876777802974010735230034699322074469389552487270259237524364440494064550252265374395026088393248877175725413558048530248469698282518115310320229153557466458905450433021886792810975354564739013467944724320716722346597996758383960105683010370384467714570891387665809875981633514195876731958746271373720100626676008900001542972835785094605004680562670640718964931237781646689106183678433902773126292919883390139352708853449132217969218056955629218151124199739118522706756783932832060623373842146327750697076242398325573991469552879009120296309850091995866694474162043459155937487427955989243316519030112780418018089278358350134090222513114939618684484913098978290081953690584477276045088730251540635848424204111208048246392914912556639650921524045156959785227714454522617757473454041962321679957027255315515716609289398951285416710528915431233856155000017398730801825160148311843828456880641885888853054543344184274182342041363453603715774581431397978421758551567917045156377399838641801525905854879665906032532750540463816175135994238281564708243782848267617990762569758639915139237158478151255658870522101497658469517856974281271149325030802988406389672607048848178824560349888428806093990220552501753700387670686124983920265110908221600323216372753668477556304095196044422226087995338068381226989908999330554796638206532875952736939968143165151847222398093506360849475462229365081907299892689873379893730428820815877466374952662512722289980305143989457616701650441319026300406325299262744059157223255691809958440180191443162891107756572034035447020991652427752333138036604013296314925905491452030902750656660030569884053891040990442858804620465108739526128927304691938148964794181781052868515264687433098588279598378773457232202932867629952366950109134913530003457078290607664999113723890433938951970956659469064423683198255124602774240850061088524234561110108139226403829833992972808752535870415220014147074322872907017384797623011056943903180616545896104181985860189189405762790182350086428404122446908227128739193982487562488506982871502691259700937919416755134962987646309628177409389105991559481762353878731154313249938191499724498347194897365173491962109464369990875248088775189174244983737108630429176768018326979624938257389992017900006594817575738535160635923907789057120996021278233088039554957775830897553628035760080739032960592572090440469546282030109702971101759112928309006924834747820672769137878361832641543362397320024913672401863890705527313519082342585633993963870751737913831546429896538269757256348032114010711811114215506072731957787849560746335952086909270868332858321178565657258459803880721061215111700578058008752124429083559880553015849590185333730896186094792736246157260069634752565400713966360909480653049576580981858194301570448562317051409107664021251617067939574480611805470171940474972437458252911429923266149573057172403946578592921711743271099542294032703330677498497305900144772490804700923000596241592036206639735545496736894629359610763925954492953941233335243709825141905047843461236805855450083925634261782879623259936026610359980897364661995057348068738178868160894634361689206718850634906191178645582580093622693727901798070801416592685957259184508162053163269880313540252291166824422311792475296319687030136994755668783622419991380012743327917319499221405762709068196666374630060683763660996367033925507193745665969535616236031096764412655225284336133733467931414611658227252533475027798842224598916731798441264209290266133915420345902927120357446743262320252236357393238313099394633760961026572143359175120513835958008693690166626713314184941527306457467037437146445102116670481908087016014758131847684179569156660113645691798055330515027204574437214809081572947056221720254934662315048474211377954656826558968936311925094752650179821379886067791432054112877671432001753183920594771536477349892334903449576182653388345530091546454926686315576820594949013434233096467025694325994189151482772851352980240119947362724745322358969647886469316858816830020429247284175212578264854510778058371674608304740325562882104666516550632526864124105759753469610198114878391744060598665535175704203478335786356058056039055460335038063807842824756431055575979674682410714446215545901849107511219147932444802905896764212776617802094104772982131322962337342884302845379058182876836293740814668017129727341315847722999823336477408639168578809527566406835962326725195986796572916751579269803775073704857071536863358208664026272789983428909849681113082120561038080914107131755041028846552210955501204450933539792410406092179698393377106622071659591076990586262459293687834166297080689837729394503864631433826001583489574083665730987489922146202973542652645901447625786143917911223134131496047454559035673056078157642188785282187102239907579419214575883270344292313646939826094053150682647688770178542194486251951011503370582206048304875178420857566642147074847695296853210436059873852964210167308866889154587398376232064730112483724219087462199545231412305131867270246301269362436179657034134195818922914155429368496287538143568878592419369054968256963012905316878940196762868430612592864693801460935362706154550702796969035935422144063724286801220009229012817099545756986695889328649860730086126235373794095456609255713884250254432657410759042665677413603238407021296719158437014488087587907844204772329531883398984443199930557408492138615556007067400931843928470610003820613736891845188735120126285029375624716041998336031602888475472094037474205182658317662883203618706845118101606537617080787166961295128999938248855608603222292770003754278963372949244426523639413684629050320611852485848812241278338937496030707685814616556966394652007690829235133074313103579962191833915420138704117885076823686628878692414746543858384940168745057455693279389032247221818554416590174245665628542945118497341517981592458105304029938829135813472630763936635491647066434410151354177667514936698122174081104944160318951302805575976781136930666907674407736966505585579112575146184679101690733183890731044276320886390192834777505447398380189954670452099310966060560136848350979186928695162536258788468932051944538350570330284166120576254179572841071338445929390164351884828667903067086040609654161889626142780537467239229746003944732335881192797600099187052994721066059281450318412466164371087155965941693802183414401591214104371166741890401629647212861708703666101052977911335877617768844264371441469849665085278227080688002199478065794502044749818208069762320721853677039036850501605193719774870497883087925429660451101815307090086550288592196105621102922044182782043729320839032144717384407489521377204118218586863755536870020359915163431712016310344908187879128666984791975824052639125377183843060313537782727693713308700834182454517763348580067142232444113765393014959519393893724136526618269630096156670655905975578711548021487048844116311444379474401471612873416817982619674377310488240909691509439332162280446715211391681941459334559273923622694749294031887068788054393403964920951275759518365789223808368152170661971153818305824236997611317860505436835706696995029627900763593332472801263858661866342981080488253544819798105930997993723766392561633174939514917645951819746801115689970008517406509769596002972480719471756295766162866347475660170912596826382757263565258607499571647216304038076188503486089226300200689914971610483462599992535260927249571043078944517473304576140511510296530300353274298204468214105673770060170339775249305471515045995259628958916415218809839565117102661553167692723284918794287735693903885962279239913889257500294984669346793243820374131251384871513839011597375514742252942172690750837854288594913608930652822712113949519543723686744691181062894548337030300680709172277664217389203502858863321507593633517533720081280641574721125757185296727627909982173962585725477542731042880475535501564953112630710191976630406457972508996281797971201090410709272321636486687438534111034717966797565283782495822520630338682651402193290013423613189722769377323334818904363830333518508834634219602793541587580610774548641534049863454384550816798350296460947392355444235492531353492481359681631646994256572621007263066918521878406612373393673617647336136461281912404056669750434505761151742091099846335890833490803206368112453049229580557961275089537017317302863251946150336548992347972446483256717295268494765387239901360938055773038814051262656034572793288918812419730447877477193601489656935388408815250237977460025837286580812938283585254293574645486708095534591304781250310444035963600420360805670028988594712218224706912726839008891125707093184606566726999623615448251125047938246140945407544609084978173978734036514341742873282914533284347115900255946091766593740963169635126597526014631612565423196517003554735593036553759385802770941729601727593491787341247959110293132081628183333791694008594490499739448360466931371264605692002901698970621235013553314139645930205415937743359035131490528536533203013242155636630862844474622112147642277282958668831822754819930676952003643067108256025102319952928754078253137062272140866714152198276956383092713305884824823463603504019037772960634834305174267055969776497037164206335292582568501682454372054352390722087757873162279307378443253988430072724306475168531714502017607614662931291116037308272340008242221653390665624923036706537568474696118249686916384441474790258910585125543354449823673384804947277120872718579977395971959678227619657127480843647163735582682974837932105560536262668131923954990521104770863782110122423381980630432125899659735683758716622691421529346079508686267324208175759305187310800384019635461731322631006509797486913632948976213577819756932369666815175662459312547908111629601565147324632292732697037311162652448029132420898222748009739633925839815862930348909913912646810991284144382585243215135148851179363761416664035271567093942525921485723865825523331944783962779700552459461897341031159035791146659212998125257432857124768099216295137627945239503701377262805775575887739639285307443114575126859984162353004832752915897486732450309056547819580195281894602201175211675173229118609801039310281530991604601071566150561267214157096276975116535334470804533996821135218361648094926681315938818253804756848502236332014122171729237260659471485125161658790431532411544847535420353185570504429464168411674644025467087126734630400738569582825271030125095978531300883525879023551491776343996899021817494871197348516559891837457501339471411599129595360982659245978205641709939543412157357117558226814358279110856593762060073177995268700792938494495336791724457368007594422014750521499950656700037155953886006454139214699817999828603069130056688611044056329163750174133971512066285863093167195922434143912185109810260508905015291799083905493552430190118746835941562241068299735572837339862735486123697732560158705946692071762659530112003285689221815607649418009083394536164532846145866588525744602896249735093963552816963003916230138627750367964746022747868738338422420367424728032275524755463133953330299766727516756432790930532983701527604154787736354250080122073981108861547502095310252741615239096481772272034401577283295292970298016464066815553849357976649976005868686814644298444995328134627133861616464283059842685941607558242298605929347909512692691114421413278954589538101876096237746557631993901231717596152704474448844432215740758494097685050961087803014891588953973526076670017559781001216488598844717181297207035307584550175447027816317658211493444592687467594899128547007850749761186969769217852002851392961436128115331185358258378572810189226852277863416614300607828913742230962444951795282263807089613055244956130034745426902826876940364069408738162909100687553705262074314892064545112204855410397088138366558358906540830588956444697301340579197105913470288542728158583518376576292876804748562056392714999781886712253921185167314330921879980349395245725372010487701980271515517431844929866625792674952217304593428112121447748265213261396565713135876081849852656546466631935036519494097025490019458532836183277254388193073387138218292107838246344929839571563979464942998893001812192249598247567514764884675020729322099147007458641923496335427719038671541384842555537359589382543641425286929904849299551288419365635236414025238313650246073469739580469383205524205414259194397403798599766942221633468290207155454510940795563141521090796112127474911527548572804438384586685099968934116502767460036801665796314923153929843483179411005192295001813020535857006991440395568106324063983784049792907749811637103737953973294697695056533857117981995915091247229993002391014184451824579006219340508125026474364684500081820432790537542807861321304630438966463606278663069277315421632325998610814634173830502106216148314946671420716113849270124118566619957739682325247714047998373019033691574533787808096829666896714177299946827470805533712436871064178192417369023579708255739765908230425793950601537658522298970528984580987426021840329594296344020350156572843007585367317518234953355692717520021962335720486292034865585140936484145857376566464146646397985351096687776794485085685331642812118421449489859415678034883803333496383847355298943898336914635875729037204996583532917045860038287912007262189847133284748005745969434645882352747728127754356549508553281240181881973592498730574099273150283705390076429336245107463993617648642452864461726810138667150490433249095934655337008484977235465600250543287856209641312599095940774077037708549233335370628643934267207062683617121411171171532691900264823105536987675969396153935839607596429221029836480496777556638839680949871932077386640318259159365307099527086712815754173895760166068962646461306172040271375606221709165846234853664839229424455282831176751774401387295992223086329522981134688904090725672058837028062719476995823372442612353237705590144343030829947306716282472298903342572027031335304360428892839164824066394365651053499755325020711389132227578862683235488506772732443248222667892126349139163056558570760011016250026036330572760283737041707601854406082200300362235145641951284089070558344375152695954547597910678672108618786246197216253684871059482254314158741040209317199392344681647535375861722412112181336021831825687418340562431707075214168046643173633358956886911382108671342369463236507789576366675356089340717077753580096972932309888030119024516825504413348235041054769900493072126569682355875157682004440769986073153193717955268106472040792697444829509613734848199048319265140908270280000080004720371848725312311305984974924709518135241991939983881099297470130166566063100481556188414544606739898129245954914263239722853504296648999921822143971280118271438581110243060381166530288237156394186966577944107652829045732696288851998420756939060634383354200623061123306238242285100185013920780783645376214176343646889327148174851500356254801663663637667080024664889234232335765765840593096171149008082583075126257937984800279893015178657583930771413184828550263821092750972560420014318129568352305266292799523322370700299121569447818438350894443022575797969985961136527347481690947867409057513875994027023838166771500646019260524639809366645710480742864264182079950242618411915938027861276658964374493638611557831353683817753920555411349330225743004075789221719504609227138086025815432383417257561081529875706439582083172300467887910936562509243519945698157714298156596641131733908478197514625712452424575035631764095778902842839026449425463021615929342417262547735781445933305521264482746362799101287000816615796777486455031386410411112439007768444386284832612571757607140247468756282647700866393646492691496546817506673204311257552843242884597233180058821490545166994465153729936452024039772752341025961605919449109551700417284965879278205309018422329851666542452505156949047982872077438749391684754129147571509328923902280565094012120641500850436952519400111751565241327992104941770095559695259289178218083174813340256115701305554591900667845765775210556342953225043294187496794244977694793815768277394193832238393448487611891212497993427763097821049972546465154050334876275945833306355121323179902905595631634590388832330744062338016917618900724297626544569969895882389027944250790080671088917075998275516321516639759111429385118690724478651013567346394792445056428017975296239358922862157517837489565626631601018943732493463057569708273198547095918260016031667568422986401209390772824393529551476383573338679374543820223467978737536574512592326030560472674309355816822167706624806292015470977465518891320567516537477822154120638369863110049141072830715888841218968576425385797189215996107730815451075093285492850894507048000459871756491707317390353136854261602172646234834518125263914437837505555279586535189022623247545841566144709586393410701765715107410795822330165695577669483661052208575779327900759364400122043302918717591794165657094109426638793869688548290736600659864572290606615784485662630875208886446797864410193653943959663000811581358037844208551280800469821915769713100887247178162261012186507903287752882962180543376122977287385652293114694078906491488264569351969127169391384936837583568462470131573524597886104282665425890034378691102689496561976023585905654158151181674932273494722297776025959379210893970409116968777897342273332029166867288376361878193562870621761523345664515565095083245685190465808061544906645981497250900649785774382666349089157997815774307004940171117263295392884849085742004336165616054257402372668701263875653204117884299502778696520057565289276710245467081081388295830170698738829002704541133078599089495561885345864864326347188667973002727502643810140845497830431105456683214002549037464817238956837342715014248534662232575760303400278473036829396626563157686604412946894916120517057264784886901467895560556862714985391186864831065503714550570486181131605637277611002379622787495495009031249931081035226396766341025638274947270604082909959353126898042514053359856274993837285431020441225391401544069790870183912094287179738641164126733953203066273858120024855696947231149827600753082112509497002783256138306157428488276843431973686836588814280065330000240770581180070459022940924266091638267945741640363048582695814694031472124562015923927886542370565055557323033482515167717846459382242797822328975969705148212407627726233473573933105705649265744676273170142429318035066797845653160922155006530343788959430789541595018415768232168661566113266394604556068940225570117561193812179821685995490722589133312183708507898505986894083845971153377867100106360560422589326926362129568931192722194294649532138240293344855010073279632923619087192178431973886371592239961332234490921938000162370127251190978629666757158610259194970500245893273741632196978646039238109202844418726219514438861854674354591030976012426603737352811869929701516304003873787904653619704464852279630714430976241434548452064961957065085149952984665525100158442672104581687909907825998435357531395753805409701141096268663112606744058370325724245666803787599692650916219627967919916842078115727722439466200983092913121316255173718099871706524715333795470585503402569826012424561292332312246136113427735372733632738706938614734890358846789431050761763897446582722460864995122856442321202702283133666251488350973618334358920787879489208133405174656600263758489404802972807970450594067383622758607224741642911790673364293069185420122035811540689339001617481295681856558528459667383784931193626976128019807693318409656871452057417441784445941739528197971580036515029785693098892188979801822261834591869258807412768018629032328916416687578844759039193943920831005304305794750102523295244089861922218521641459742326942445944132205673431681239872143112294341648888469322002466325705397219236629484977617133460235358467461696558984070204580761307478103533594810631871016101088658688136527728967245016476731735254824175754604509590003252040045248057026555374623620819868963306916659924517206258989402713892593013444678010153556236002686238909793432204372957567918202870692405543111787580063896136164539382361875044461091028316712808108515681115967531839827397946655870155911185408057744862243935421970787233254860546974568081082224225784626481181789423066175467318125224848214292990083233818369363738784284166660848761583433617018556613218180106534387951301609051776765586970588211658247822520760929375140010929667752583814093780400654034319255461496407762904714661149227842816652388952960144039382445217895898334340873957804405324992331685180845571261292614465732862349039099000623986357349687435617051383965539219380629925931302787173013485794572995143818511162961465454132620158327740687719312434901821215061854464301632082928991107052096845173814807761643042138868719797424782610855237609579899674010540598455767254905805193930348956066679345328846369627363807295868780764140334833598138390139130570997025633610853694192221597780188215330185873030397729000196733171053895481777630252785477126644015064704467588796578535211949019229907794259436748510337174047644320831580680642517138035606823071300642990185808242020435611325262977313115858656385163775703670184889829874247972017602257097516414401657494857080574431388178166103705370604035002623755737095411893577747054424021073445185178855090102590877006118358018264580546002661280155680693894737259354249980364145213002679773987966321173092528245978391899032252030587203004526670681475742173552092117764047734797399277908434029668841572462755451057069679420419661999340019191065061798276564881158142208001877947985870790154246159763529789478911206739586018269781357755714755774222749141375791314054604337798437218239920786015921686976592626393947287708749270187087971870822389498877848004150402089961584301347039573708083806474916471715678784008292985700715763689197099806909854108136507389528544441966557538119458304419565637365671983910718973595018277791884002712020968013983234297289791851195062147958428595714014346349625873457155184803050894240015819666220820681379308980557723878480966216452854111529064903987520535387435700229070132665692235954646444519081828819397725565881396371625863201882638608805684246972648306561321434344635479304666428903042743955255352253291955407859979453369048866874023769377942233501686137538407026057845233309683275153883104110277232701313071697359770751428288890411324252911048410582064189510865581915858345814363371029154832520047297920802463892191506069823623163723725235792606659912035975040277615591487314446601578009589639487121366316764508447649767230495383853725445499058121396383762094337427239214193291956788119944980415152283191375849608168604425999037688356841267427881710633379632130641636864187997878074132453558224780295978732165805249317775836566705125779141815959823931657352589680020939120072402973456863130034589534987295731711327229380215460039889488361990076052684534328232210014233272281183578243073547572466559113807804848472542626107806750985157239453235170120245342523393226351678913495681750772650024533649538092813646500902197740613747606678037979243665712695162050500823862783815156981165887474790809249827723985422914443676504757145331200181166292221922038861707278595115571661844556138437757687281113386750490229830418384119740772997129158375126822274946309418794665416146434920982358448458705972038743997649360704568971320733106588045571750953441853553044948170302943859653380459887523517636890630926802139569846818872091807533341952092857941954150131465284166134550322981614429863801773332133837551825289246287857006219653709361714484552113631648493126940816899357302206532469135736793153692312558824083479522419043349136150423791974722249674806352073257037362019796363241454423919498529123400468307974663856035022014626517774660587155309864423733801264291236352446696522670202148085866206537696574353424534730171843265093023421733295860230098886997937803911888558426628768636597246396996289057045427167371453655550862349323899903008127920910711963282430027965022804996751914513743084723385883625269234994150043549796356653253164957733712463777455804006773573591192591942828102830268250466637630056799383170814774643437723696955913727417868674197844114511033325115922092464935789444163755504606846394460673063984933664574010674537419649448953116337660984347632917838864449400423413197412413397633890893765688978567967336114932032698308725712054272970857577865986594737900296009866683285937307748341386153091893937579496104616119318527346869628252984824150208184109387610895532787386899432991588082618855303325089847590078137206265461404030733757715161306573375217477257205250941516614629199920928795519844138220196780506889624039212163982914014808354079699592237292433720535106357009943519279067641501868159128898487599805138666815147387084459568614615451306118608634094756885042792687408148422841304592940593820490386773132930283632797714464085921523529056675289785294868977507310489275145171531111660833129415578033230233821054196329617187333353364794356839666332331089226178698269575632880695058261197978327963568843949656302566075166228446207185421562957665709693935176542621472138179436161086506866398547777884868583849198805114559786962602837583240789099460620907978689645083593053469247795755787322356128883811518072799031682988190984718117487993496684417858930277938770253561855714128062384788612069702997049658367786193763786289502011362873324804651759082827482350572865938521725915013748206546430965019803719802279511956604845950377366785688746130352227601537392366420685640415204126871728041168303806642757569506033433543519124531656824441928873712116438993272117837361126831595073604229523369868188844236417268168933869217141592275385791733117775785748359647676581615798857630120729082950828440778262820691570088926762100726099305545622553570963180139609848069589270708148640775758863167954024932071288432523700906865872102730706326222183206186901636737394054522758014007588620545427419930952976265581609115406024463048457662548671983652374075829317419151548225007810099481256714078297298031970021122362080581529997012602666069244723538620091310747195869922412808518267175465152278157009210671814084396962318155789116818733522569896710135065413386824966782653667749876027669439686718581714160214927445844512945141917936794376623202683251212405058980877638588021355773705532136348499189997564779516799320648399927384925721991368636739315649176595579860593346101522378801840974865714671207653677067388666256466947297242690143440819040869177833226552756497999868895960994292934857981457952935404060896321052041884155369199979402058080670211626497251971531466895164491923497981523402254655795936642205480933173486134842870944610209642602181128908595131561379335667338868398703102059777576757561247695160844374142623955361616892358933446893953746602520947658496974260359267913887054826283251691455399687587425144658260476579213434354718570300279959897946809801325687669365144505439538845640630677322360863648513731149523704546746281156735294047225615362568975658630922473825198760216977721242804073709878311724159339916369892534841313192393182013237934043165436947413056648102382123884149270405092066919639863224226769833580341464589371097866708920468752754926236027381716084217314048782956284452785281599459747384524250820842251434172670379489984149246271119266924829769631205536866008272872860330932712118319620025111354851557585098000470398586268738631779946636704425553114946588293111713258605171455006292667728897749051134871435837851022840703142448280625617883143578316572662613886387641785644696260547578795761388008655154165920123923361637221587779790547742278312552816500220270095003172720420285088784682756478299821400498373503121609262921147392405424105291805319447017438294995616046431980210159994759104754006581004955807918042782359810243532845453919062786771520500478564087119106437684920519620342345032239771550433912627549659311065767695270520973010249735378674898220708130769457425270720748458545858739055460930742343412518871672333971682906917754131019886284579562127583939776832155675970946782405187803010737249174322486679022220430821302618110330477500307446265174672489241140402185233225380285082636238926064206846812770713226749603577174521776240740675681627257576789466735848512336846144254699907697597541318130705500984238236226618685333911090859158154685029778263819397273368175472446118921780581031114054452327361364292379755115296406470772873970883953617174079640912964392090756222372257540739621279446628693914157429273748010387655225522481177782893224207972206766346374407458121067923852137957467245814681121867489399084144354486694957838497865132240412048295471847566188253323318204524412620177623275361855469056162644066693557160457591013031039759963419380911445585659026801375368220163498091360657169782736776270187567777138472864163583977454792379983255394832264322002275853920497264173822229558857583123426238031044572103263097003199080845471339079103345861457606642956794459305081866358108418658985713063261271795287664789426270253676805471554817234539082311607417448727020344571009619930959514581043161453566551249471376443351422390790133201561464753574356742908286963214045305920598013365973131521071297571991037761014419197885829577150127792318527040014425815302420070998905267533043330758331865254301303901044966900235187740538177694328395267887807106182282884345046987672730861484119391143042892911346072067060281241517083055721473124869796493532607570545938971134339096342594288636398238213794571219466784700960235074167951482280997385344663258534379846297229484716703252841927052502800182676531740975577968533197243036815466846367304573676239654596003758336033836646618283018252280592618967044230235080482646574746984109413493066537076875399600530553515767733696267474408361238812563036469956106104339786977020297782594560721334975646671279538835349291247468814379819921752324537612116150744058218057270067958172244546063146200608385326436146708020581408719761247314737420956313332251080256821508999474866320097605901279074170469189038473455413660073463494771656399589233998121958097670703088764902117481357424037280415811562291102030983755912309382085089808763000689268057683816576603570123691741620378854315569627814908829167292807540006467996362021725498371256778763626823847272855025201873567937363549342283419259706983693911213385667026761721157939590306317392075325613044523154003564070774296739968281878804186340923024644258027992717177627554674687945312367395735353503988821160221232804077581464954731631505079276736563146003863540132575639009591924053713898369593451291569403192848031649478904970547342625439223114689153769565719140841399392936822895442080790941302170475414702192818319786511361955853697097604142617047560968029276939264505502188702843359627953280389191500850508468096533204293885343768043341262127253314972942738655638345908664221748083510971711307583687898503138649015865570917096202920859223102111537105914434742250359292397669376038710522955965377589858056832750692587909977390290255507318725306688970916439263430832537997094045061555791510998132954452781910179039188813559097329364650089749337924200900628100899825409529593860248071864297464301568641428335817527746629438887272807332885439246822272333874011825183658319299539685073629388004201150591825922267607128534740058932320883730923154449540661757392396663393932123491226246179006751925314656719162245898112585445969792989013792812346431277801207703317693527071398309194724088280591643525759441991244098491195049787774713485106224282528502232530491979870267048616732595898645071835581619916148166119198117162426713867399929973084509705334591831143534094225879039054931181234893577252615358275842124648984234888452140912497015867147048586876248905388363438923749060944997518894704905705897496469960947508776659979231474992557879190935551295286144098871702786754244340722736132319044420937015174834699640689266634903285191150405133660666229540100682435515493752728348704407411541668500404443299287678527578892567526644451552830835802910569253228636269218938898364152812066781951846424994854343102504742391099757598654277262050375925763716325206943424174709515282461029758560666813298546458387613046984023230389183596299068614378436127934768678367815876259770086490524819048075519605202941428576849899915570756848376154598722072502398549236910386375568248656993330781624952792893313438314063268056434207511672476881828477172799166649262662137188172335166084464994684722407439238532294945843209414436541975124354585064733784890420671014395894345345837939526898203594982566242653995625073092569866845011057339993791472664917903711486477675981934338499056746289064386494868580657950393595806260098540388638555400547781101538231017837699596635361605988538717729071505231594970376757062396703173154244068152671225699503084593652828839508979417292708595884844277602440326014678725944866267193783998556440658473331507993989104552115573884519828746818170154372064175567445834185637672878327381973339432278909169920475761070404774303968500304416263461181191273419372819436937805134922942657008734565129285245440486810208457266681209704077610061864759138331545533755673429831670749130983068196855820079148296895257227938961036039601489777087451877371710517567347616733060709645452226263734036952056938565071180715421639132551910345516072630520150955906568593751701478859320535503927069889923297254535692866185918731756747593783838782124563512142769038169433767709422034375650256257278714206830653005018981876495555675499708913969866163438580084079675795236154509957586756936482969477055909518980870935533493131615188649114944449336811346577263368940679171555049086099602748777944682313109876302744856060027066902787009032687237261741691874089558432142568800203865253881582269505925217554593819945291103941839511741572168648437552684031638348563447597245929339161599309830375114193659805421318745352774497132023267043021974584575366096211628892987398973745116729240374975835157762179846537179326064566795829278585015259596665465493536567177404959692338856635479019088393788550057375333343443546537501022359865818099328966961870892944352058582751872027730898522648641785311941516616779160670369766096563716366440251513970979407568116947568881532592111316714439531991676823886292996412649960957710011892303442441950372934764671371029558759343515532484970973108067576156366496542789406343267184531537466689985619127973561644481893684852173724354264173519825276014075351607055332015740162745514700254699627672008717971109097839471838246939112429726119963270521980633925775375493093599122789038302636815243265308826102302329856983683711789637048332421291413181751944932213995522700565627173239769609552512838730896210970213156817713564464353389962562466074582352106196978024324863357258894158126376082923636741635687631517901470135734551661786395217748946987917984667149549073769399377302498960347693378577476168377373689870475511556936705851858664836307029061805464828234999105918527498447695903260409149662211383542693029620500179710981575121270595693617692681367593229733430921757491128771848565690176428577512003324778029703678841057762711614019357583525392307218380236823395117289876636592305952295294856607792412793588682878285324304512112331532751815065307073689235824837325828620784686700134887794941504094939104723250828467949146628731816146171711627035443176264770382206641334635861769495751089993290371340305912291371674142268782296045360237154007300388578721328280451685166327189175846628137843194313390335460380347514195787556714293771231036890575860342523279740036038301792321339951472226357360914481257470409173546716502262208995912263079774019067373855585649668866742650589581244130341261352683706642250358255723605829651300704889066659612661538240891053747900783096960334426012993174321731635616612267757253862035131337236223050532614071672431251124501759548492574147031895594723395125864373848564193428648870449442672936992086761833143353890151351404467348358030451920046864813964593658679009863159417413499395296903520819261521665144217758682975616162430151562349020665193863329526051524480072623780008774867262548021403063459839636232065707693341824034086708351927902187144289398339856271070467401749463872019782709402942042593370891467512517151172723534615902112456604150226219545849981010605913407405292389505272593894904679618100138324924745738202582129820539151755759078596694522166116884326494193231983455395118372981109955326122158586586473306093631969413380117605077422121933349819182590447732996819030959312625339113425410312738761976818934186976288896281991418974976001462261073081690382884054464031611941409923275731930914361123620544399225351341571833055941240200620527411727813054797924423291835456601432834399854956297881979242183240938225965992874237151552072795972851833421427361426645240574761516951564038346583996139515700625172339621257369417743966351885808746791104091072016773794317889554140531381046844965154926230568344537219574881884948107773583169631919800208817512283074223442093568536425633777382082335963189663407784126108070927985456133900799986297408111983838617601096054998139470650848588612406239039364710417781672760680882941591622067306563889138332538205722629403973397730578512821113571107757352304220171197339326724612091375243222857959131115268988452690140186787916745855250689511468568691180468578153202007980530905160749205691024033842706909019461130862613535681180321514004377569150205375507406661493567616466062747670006255461355377033396031541516360641819516845370686135399481546604798559116877342267961357935329576906396778338328609387607711903739439183198955965141627388681421978846650180378423677592315978915640067920723484641924353963455532675595424660863783125501816800973418253075320069307945730348424699676591940934733474142236882964231614462236085927277781321142277352859510354231164995517006678932114330320614460986933103614321719420057268655539558470736114552938137315768415760703529158583117496587019042820156139459210609155044884998873164467437230993803790416751518173470787737105164335394543315192546495642141651805283075663545692338321177685620004011325669968974027007375150130680057428149786049805593808533714805421770757421443646381039680403229387029265102873417398290205698856181496144184925357575041113248290334423189437260944606325961755743478934221348069046928400967477759353257798955396910289290547319271630650393285836807387714076924368656643592726261665625905687923653471003866834136904815572817131402777218755523173678241056626555386980539793286152068969087279535017538598564791573615704781706970776798545457898373839884634222892570611469473114546143729729667705972641294536652510551112572512538477863298201586033168764517744199136225214641263618921796227621365991510507145727814047875912396172622155405565107832953257569135903879278260525355244345981408570969526041767875828504909847238994545191450406282978682667227094431924103676709226134072075753453594281308569048450422364798463194860215410863399435610673067726517651312906166391517471446740583235883974262298008006796237958734024205278490153833677718347923423812859457972142580560547752475406962372537879194777343906579242246001941153739003506841563614690715619225331577274001898846807464610247565139182512408347233950711759514982719475101709160133012873530717300652902091337590314452307240073453704035502835016868465958591831488625630659189602557309636488372251102357048018142875162175968702658967253060789757964885314573103028267970720395650841640239252217938800631173583223205270651220785588668843294654958316167530063477031655803633138733434680905414456439299820955968376366463990829109820487891573236596918940290128918073379641955954130332947112812881426188042204163957982533046026233565176446668193507692205582705844701712895495840422053414284820239972046240989117627824279660924446149908548522050333772386169545239549337344297440852497670435537262739189052215446656344285575588887025259170417067031486840295480258870182910015733299539250421669211089737438257694144846280415866102080135287370469236574150339321283481274711127198277549406325042948805422048574776037331787856355873609322646322072182894767572845810803674512708686427326861862486582103858494113715468720233543790432478899554867912411721366116572833838922121403078807161655194647086756635150399644898173188169663109346720243097666430982094499815395469099058542262061465726978629627102341305069960162972337564533933869672458634799551673954019057049456376189210179566927297846926934335838595046645875683932428195511112832396276878235691536179906464421608809019722757708248882863623990153730725704460607181679624620173193711720818737955045372177516098366027051092111327158948221329841213182401741849290530539603871350767949836044457209654310177181460383474957917977962897255724325287680760051824771366458751400150160145860613150323242131569029101782436721357289702093795666183500242891961421492942128154872264210379574209066143927377857400736666360601188936573994700176602111712975170960656530089215750267129997921118118280817155071279872370594644834201622330623076455219901396537804581043896711271557628365081430664273857384599170453307586518879371928809152824280491854476247796295358108229521700325395187320297962873433765828991602484704586588649984169642969414696406466040788161572975491231079441637855428763382663505098563068523649622748462979512332066249970428818646512451651957690596578751196555853725782233816629349299739764553610392393923139043159085447989616999689075302719909137789474675966916604492656555204011567352394490449405619676725110769739675229067064035261430613688665207468001326501957767260132585940090241366184369741231963702347960583177511030255059626602948275603239056415662401128757245057367873540491879447339611670491170258810525247070112200071409742766584601804149736662173717508001470849995818753731480561211453008073767997729311511098001025810169366941261195809572507488894223341357708637022558455859406735344451957715852677213635064013266562628626936358765394686567515389505893517844028069490624001539096119783248860661363126375935742681199657514595808501865803822932369467934411262647048955884426870396983747797379532078127989540897669949491812004585456340067592886972287593492289412075955660570876599815212325491216287189795967990620984789106732751785082327491632395759154135745202939189601268588968096969775519023189268015438744534006227809767063495568119538370567010607376858997088184822522812420428923980639956234067872463440620051498837997039511710853479404315787293403112236646874795836273533907159281723202095789785191341966169781400119537979226383251469489328890051804353071218445400491921381943153644651779282911553725150931264446595769149023024353026879701869951177894376169924433463760364683810994659099091417866663145295894465460813889623607096638054787476173123661612079020895636759559817631439233365920699233067218925408524873975612739342136245272124532673142733141845857356308431942716423579212365693923506263593699003220388608275072177503208948396244251093109499046308008032463960511156954078278147105652989141076368222094704799583445186171160809079767123386631383148323437987240124495956697980943916784600947241785506613711406120131012196776284782866220174098239873520142244225022671163094282410993060786564315864319234452539717703401965104304894162047555565543754303865033500963812702256042706432165428525591307881503258512167705623469371112135701132873789478200081326000384551611397542022319214990147663405754160564932924159528565885012766333583185407773162854902887433320448388308833038652820885833780029211440540771690820811235688615882020677765257796875743224720955836079232555005890531051539686716747433803217843999557295434211580338008031390645307469056277290675051847598367608417098531521031798318889818537580410986491304893195315091349563093813558050315851641225997010880911476666042917714659776128421127513847953053949140476513312782951836602189685620029071064825388482078665479307601356236753465460798094709170662385525751289939452015772690754383120474493082150983482214806279072369896003585320873828863377757880418242350989142824530095609712132446977738935154293524296685720545267650935829827525885666010902827465772115088283724486066400651947783324409929542713156269832649505864790381128836935833139777231103937285395891974995604129877705010527086942775792398665017499260344217564729998335627419908547725149903785799338032198498569900740348090357584536435692298128922353851325321783335550952962480041673888162915427564861897672320790672946059948619896326041435812778083664277232886046035443849039837179633406736440006361937341819711191288018649242701024412069473426191321094952974156330151294518551770642421680130737400660396739790812861816480884183978323282930543547072927618480485290039284193249655487251135507350059400921985914599318316697302907882752346763077386045678352496127889968752321956265279694744891620863522497923484529985369462698187784743720360766082648154313334646431117932124187262674071064403657279202685790367126295269254984283198348812914293995908010829947604458107336387726144177585066291813725145360557985902955257319060183957269417321256019932675630061667763261010757589404620618724564006690364250875820523683961267574746686245376459350926209924489105785399429158077632905592480961025709249415087884144552067420734033788597938212035397764332916063230000073179568150453418139023901294363594509309286848489749571574358969527000201064820761528349996647491004122452471928601440190214892348596256978228521418133359125540890608488184315780031656209328630923141202818304453631832243498311562867897524247833984211676496637705351005164494893564751607748856213430868244643731985830676779045918852436805589933421644761155063452231393024768262703674973394668397218107581990658429320943735828324449163489165208586067989059036896375160782179459347685654386044898824794036627890470855995089506999950361786308660990066190163333870627871700764818503820273616125879326413568026386241273860276795295387755467611965015829206991948102175724956870101199082185662255858415016520071342784632026834011777972011008899786529277457241109256987384714990518872842032081727779462658913847790333896412318988452622495293568083211092523425230236844964521440469405179145398856151165438728583724659705882003452872600417993517757437344263535822541978946880970171412078920555271759615850689413837542072875558051665291699153817273941766801908959051694973515562424771454644213519571269310098729609263717985829841532316313703439754676703707447544318375672661678766178776352279025057094033774552648786704101406481593705839544472839299212443419810184258749727365765606612940630788849501278802444135082465734712172551894770406253217559850479791459556100406828108439674041048260898524898405515588768415702184243570660676125641807712839355551193907230087554831724633773911941369534994224763028008856932966440674149894352450764272942186616687747522868837557826153750871591697137182267762710314287744293094229328092011541033718946385409186183721215774867070303105366581253073959801264474543599280246896958957106324490550718267535221177045785716608847372079154342721184855327614610185201700003183926146036169437786387624585472798642492477500836655405761898607294662647599144108857997546867914358252057888154457155213395890657350155307119360220414116329190279811579612361073137810688115443252215174810906217701164671887983993747450500487231953777961292028872206827647612442803503530657589676091249798127822734795841053544058618809711305757612138827406926879117803484431576168945174387081683167889636539533787389450275322786303818181414760994980573569430608000050010878495198335313214181357006090662488842444899047846012877276743038611939882838396040348230229510662015170824836976955003749314428410717998765845425342998191995771480918061671263626209859561204511700441944331042234178051184893740668020871737342373085903650418821790024437301981004964308421920330733142198698040560173821895999843564096797102359311785062828732022430981290842533946604628226691595579348686283119595307423769031484936400758541907013740757704895075704510500665328116492209704931315072909082566423769759283615639475553098143859653537269136780735180310146723802826014218767855526535301843609222940743447895915241588963328050173113575071829845712637044107690437696727918438337473471315420762981921671003664196528792063903748314004174524983479461782067405960729498004094114014406639786152942534632246337049232053789734144546728843613260894491082512761044040272623778736313395454321619912342074501605643058989844430355558710144546648845572152791557035357300917017317823759956612215633490106486733496314706266798139112078724196412151192931194084606965861523685966609757235273438738185131936382598702110720758702585725980661172915740969343379462540038260327081905923561061009313552350132320084436289901793375373160414353924088449098089269657288502179825736166672840904382411914049779494160272719975651484625791393858465335342687614883504141003334259407798267789141498379464571360563820833388960456884961417579917456788010807600477001422152281836633472986224665227599140261163916149670019996804993331973622527226633614767605922742825692568935699685012082632047777777545182989814078051623739859773617856462488615844850172393478290442061521230612565973034716608834742446485832843192394201406980300615951782019394135521553862537590709482320891462638209325558825938595029509910372882064772145036122296766163157270205210301114652347892493824691292043505425151731541040264702178887044965134313735382927231216277972918061105580821147422276875961974868562010195117655227671256848817295777508538990527780165972001759758714309554306868972409037502173151008978178783931824875498702538258093725216930043621558772756506767670263971175249477655738422950197157266647365904819569837023774794793141723335443798622832298562173760177833580297104850475224523796520972970860075521589851321240123344021305313141438389896849926637271072416758748681471014259084783837896440089841864976880896490645368172431169314036431714361857150963000548420715743176474870844407248295811109951905752885520381735400894006650667239875033182331098411414095249669969848893467202560932159867486411806485082050756872175813759049960779765150431041491742771047797989229926764970502068079482380498759074369847971179531576722413085362120389769954401584186386285861237821868370936351414322845508486704643133658182140411633190103352110097109421296890176905585651143043401401331575337991407811174450485433245151349647994440846469772598671711151868482332476254934358255119175757396168002418955908150655312576496029975431713162168529117682246734454021750519812652470222379509334086677246804325315226203471842810352911620887590498946915626076102406846998012645452702838762789870315541943346734020369921573738883289935890362302502102397238485923851915838742110939697881250044224919694085926652060855170433818094272795473913947042308139004425692322430274384992998181187441531167174919604920081645124854318051875916465588751866471399282881217406748032685134899360319006151234558266170535965121599306651386902770651099573257207568557365978662820983334186269998113257894839678486060634800779254439125948125769123955507857815536580679860442412375881594262207199036751879245820724217774206160087027013946665208332806395997644008157294912944221993626872463895426984977109612023676653730325922508536709070120094142529698434877160999068296520862211599214730599332187267453850023597928752824381687773776327677863463964139985089709761421560364122641302391225239805833130282411773673155406984695140287698445496466441444002731491570405521854748594313610150084638981598947454810244168148163674147592115723167835374697797533156365120455547783650252470555831413231481961700514617271592148932188872386497671578528968721695929705024204070798268504138405505941967158028083838820948558662880598082364886304289937534446275277246701079627110196054107979423886649946523047778199778489830627822300974297759638349204503402721624859222292688872382551698052722432356133257333369619352100474633865305881394785379572677303006187454764134573887859965208105627663492833860168526622501265875462219741488017072939340619710189619022785868015500480345289747498796468234900055198058780899169486216411751570645491549416342152207948917501694817445437330355655985374499422406770705178441107156743215413648277907303633890216723536190040907932058531013843279447762677607033939559386099393951334124681151668999344201035630308910475368023817363205391188999344901884827767242067228397125187108935241172882741417831530969369138711787899585826660442491380896926662919921222204855828515646536107992325996802363328347408467569045790685380579056761729437394951711449806402901450426397295044360219208403766378274534909916127949360965676345284131206217009842340084580183523905706299203862370267874145932442095646488653541828576313014853651539598164916972878890022980528538309978898918453997666506286887439998303473864663865991841923390954154973428590072141999843932594010179496754816661817292051542594954028261198185841197414495005407112621283760385798056312419970241649528185805895231193011727505462073449368359185265620018223364042649626516301511603695540679938271009076933442046309974595582474295072112947684408188836485562302330238540573490694736576712255932243559259621854135690648035620962897073261906568544417606847283631892045965467876681513710942354541652089160237168849461808002613359759657855030181145094326299589805514395848323201024890344129428531294358143697226159236058458368373699357473158048808341405979099229445815339849489188701816139373257943164758663162321714825791070804536381353952452151199652338083347117139238323353163727551391683765306376352042883697746529673154400298697613139056681317219979632155776493103756528442820407278243581320572788580023299521996775795295895144160565605646224435100715656363618368242753186863862588085108520441576104486538076081046191939571732505090453908017420354099707469972345124460886190443024152098162044566329346335004798365141815813115489559161716764522394420057153033435374763709869537049550774314869041062880300648144144917591035527750372351354230350754883686285906104634275074549963652146776428892539114710169511865215463069553874446125643881502074126087702433996445772385284454487518454453461409983579774466864727889897526337807162762688660513744544611463687243561783476112474961034270621088425545990380666447327567732574697580270153851961716693937632458146758946147458021986243849233246886456297652429256634631008404167692358871811520606608999728184168055458698887162627073769408783615730056031499428918651713768602452852823997569520060783529760881059689279225615867050593858723989704760863650119911843773217901219875923821543628746121690977161829051568254841060576967750908918702059569586739791948470962367104827361089951200978291553191643967758704110007372115817733317743573167412384167501584514232120346269802447889383044881895457762712650485660791625781052631749737099070045093001750832666328246665211548530675228053932138164227071406622261612414481642547136311248558277430681459937536144081343143755516609266571742504060006049964386424849531218211657392589312135991959112844724168587800632218366838047979281735819377174316983654508336254484917891960450562440875846173563621416095582405678380277866130487705516246531730003374565879310877759057961383654853991111199888211547866585447579820861362415537125488017002108402719399567067313823527137334848929489333200399630497630956685260563646552683374803528833720774279435494525725612950741158582314079516319784971771524122399399214879259537217000581654771919377506178848028884958402480107262546828801165636513106581664427689733076858526887083199003089988945883945552072182774556030118323225468760491607255588410830254809188787799208555850561991511652775504196934731751005736732853141121887756421712152539615709022536972864595478672039447360181887030185071240505930256341442170237938342733794984055252804764378110874772629118457580761241026173134615513051463719234648329761396017700420259372955124512253012451343623005003893913392128187968409606110177381394371423086342186215443955089675858407589035966388831305706587499878444416861555330549019579130265108567212171310899374645967102449626694919262762422395358712300244049649826083104799563913554175527808158321989452905357161818497055894411380578502905731398820483482056517979251395519851947871640444646512908130072025636937385558312885250731698504082347909180720002040692238404614550393560523308183217525294493347362938247005425814124059693615214868815178287464037625687741235586095046883401789355736248281853528199283181018340145587839831139612349488717629190465031180666192279020591833956830320053872585527716830658628792767336711554811910337465804073364128961394073347696811965045852977178732484247564964607476113036501024812954872267771582637089547338247477586895629270097688052288627166132362287283558671035727324722640284757041557357421721903291949397296553301100866730893188997743470477903750680687643268027428577122778010189107598972362271242153961265180120183161911160214769040697247288832766540328638285204251514767068235849473461878647681235115007188840092102364889442270527197705484554481359945866191910682859806192026838528465748685053291119332538139961136271741075850815505340504862436925724696575073387459187719059910030574128496701618134601273381579073957910315793841218406611503365690277806201350911567292372447513291615131571025055423209450895781012435476237072243203981236341437348081854513655457993947532086148052956626066361129635606364680259679588297357983249383857409783741954903919964251479414944142034223411213355465405158146324270977129011217373167467165574003188847384923686143577702120841445244984656142797311909148755475328187877674749742147299439118575932099833570196665000923584181781814478645902333544083881909544216922555869625956236440716636086471482615496816383200611985903814251794303348883122320825371034304913205301852523685474280485537335419313438216611964541950009982565122796167112407196227017076537089885676488426493306471933750919632477104193731986108272941958162978598964907014623621442804759373693971604528265750314301788487031006729049565657993317970091557135011695574851263741013583920518564141856152378080145637806066402929320985964430954140011908013669568208460675360528299406494688112575314443499369673674000833833448997497369103950208474375458041969286866082150553487766720261212034186081750154893944752550938527086893550397264205033206406022758345728038897094098553797740647567242815193937748878634671787831262604507708555689549032380220289120629684867326450499301414412603016128226092966111147225389106828429375149927754950649083280093968369491534206916588316638510036340494482643906584033401590061306523058744257822783632488100043614790122429115292048413336481726838753995528637284199735505524942727246552194049508369433277713797801476367643340554328671051590860143757883292589657504191996939143035307680265820192544299574636388935231215124348731927640673430406050254801021406350676041776838315629616712830834416213107190085498578606268004697089036109152175516617111357666121542240116344006267400568855474209509058814069498014470430155323412380271695304146026746668619216085374254737199749948414777636885319494230359959949821389896405265319671274786125477736446329219563392901716941416135380583007635227342963344293015888894060522150050240971466524445861040465275281279386418178766280772659107646234469918856670314313876111582742192996673889324859099920376421131571369073851629619389896917807670816792647059371025976549203850835408796585516019808746197079552437505925931808516852812597112472704248609788933466809679560533586034241685616635621500943568883707722043350841955750152855093358721680380180234260784589052000722762609194929393595384007038750108935800239575380081165101098656488495346367232925154939941231471448631520470175142043596608766578255486203124230702632299603606310524397912504105217069259113962372135922840163769735726947724004276399606556195516761418542442503558287970719722338716074061445663348817128550765162696138723135132964793763991855961667201728212186952321893244793673039881013110520343180670688228638791566936911746390571094631439788243091742426970091438550820301682449931114660000894060862798920077903857349088272492558605901960021106756873152575278068363403092349693826095026894660655483379255908885970654241702748356150371707619860444969542661578617776760530565050195526779120272532907438732899708832862671065738373415333623968958319907528147599400644441582293984746956808569933197015754842299501163467604681226976886675266806154679240377444195933090801958615930529890094187387404197377309243109353615571074736318405836986223616888573007441937929446147580738190481756928444570579763416562092066118338629684923885246468430537468125943440836154552488144557237976781854205179383757478578147443273197368049346846142353759739845316258623218747988698790928054524543578731551410747833771863061237492507490770130232825970137183950934585342752777974245255122931737872080441217812343853347855633912799447941146584458169553686358309816767228029724140501480732556990656877243019668592862564109301149788547094581635360142827431619573422583942084627765775786378302053898212038479579928571457528738122473301908194311762972780296768658608720259331568790277128302125906313061382760921605462535400992539405607257488161783346276215097658193804966107460832279441554153989856152353646459983085380623473536935002248356739158811907988249729191115072755858199830413936627796275690136007825035583252788493460196339947372770992791500366623201889257418204696307794508372857506616910111711203335315677637790074121551966971264539198637328865200428137302910072349872959615426958615701047531468765566020423401161968718477093482130055657236114281168993445980458344076237874261109741945551884577715788144620354856006815552725266953579078726550104428847644214067728696187860027819623719068862381348175474926112935700917990442543271116427531717142900332439797010887222308801190409983264970970214822887021618822025885905589520338377653026936617398096158180991214794836413442062027658187251878777460390501424802153268780160413063568988080626640732262700687722869398653060368708220558706694355797673229641961831531412036794535274225323153682017251134349319492565691622931507674819407746697757764281539338621909599615720095081050650940086050033535568856107669741176085938356517838807221751341986764200238963325060878041381599898683232299952411426675643558053569625567225846835184569152931580410573574984168881435143365686190618883941517733502773713421574889360507235909194134880197482270557455683533947991647167387633116076481586420562252407764098844185367908427306634487422027830712157833710112117507348107710953984441092514699294931986758445761108417569616581787400734670106080972777414819614421415473139373746970699435949857449924820309764210643545918625280959022625214236435094879612201137081190391679223175228225028997232820858477744088899542702668679619910598244799546317077528478757382704689506101802810298885679966438551879768481443802418722968798086157703352331864726775881459769258072127783669916727995494452201857129854308338459959537434270078101706981280720440318890855558914312689027918198672653338433055410995288246267676955608671617053859567217845378590842575030717232932849465997350116969080012216219100052536916774493625580309045707251906108938820674056100402183027904498252990294262311573732734237670467061512911507519151601213616685459581313903911103168614530248889020400670090593354046307112027645358763086395821681109262958943206565013880307502843366717362376464677020221982393747032208775864668565633774471531534776987360951611097416358162724255652847436606843090923798479912857826240551320817429358297921191042615477799204836576399224173543379776420421679713004170496683048914245741388358031655579946554429193319639293778591559657294639963310865131898938185389463161769946368696804703874030955327414016212246617552855193900544271967285114157987627900068806397232764435100860885763721544419583792366860937203493473229816197558418439125191427969301655777883622078505575457796299870199581079145885214492971859493989467690916604692398449413142610452630470052142355147730869365729841339765279252130173872046713348694126274989660668098933943882991884217036351274323990315907086542814834629912559963793698562920450187164712215118982307709821213333057724933412620804818435706384155061748200587800410550768257990010811333603360430005616278081647667395544214439747505674637357036613009205916722284898165533307639321315120095354364181307139303859405535781678926675410120738468590274323369571630427758821384157830281695026263918734202913530565320833834968970397401066982097281831653603317107189816959386763731884547661812818587341376873438142512973484968317660748568379366359720274536651481467250827682054245922462094437050824352474996539092166852388709860566220330659414967354186856419259571520323619732375631478869857920253212060776019248189726856263238914943886452806207393805809835239652137378366707865606174184187878810638289532365346481821962035495059249301734097580568035136132237684639064420712568463327873940124241229044285410452742065232478657425917962261696632987381332821299351288679638702080747741152508840093222166536024122148121959012952289452698293848835490914841683376138296971681211839695621548799013096491183550695103716316381311606922107662948225745326250945326377671422421642594234063350951716791313329720050921816822448150599609305904390162311964699684219198584243118056774004386026409593931502079097800564450107171661146047506196984203359602869699091302889348191283267369178264330745573374045796194241813020698181587297032128791526528592423058775048989284525878575023071465811499435984201709968358123394024277007862386975085269362266646705254057863341776092750036402243014178268244182386769954813963904261616728816130604553722483157446650775973792615904656115600527466437028501110850508956105047679491948884576765968257059388718706050612407194253307520936252168981845897676064621583136270463865680878263850000065529822637056516054970426289503329120560923209834116172068395176031209048073457843683702546360581440186757577432839173522274190808683294664736241238094595731613116004074393416304406345491742158972945979413287973055675894024322409827139416656292263422259779917378514393742082106866162920194556099810145399232809214170503750650166383697149581098606917611262353347247003409362857891501718286022679527571394311050968817857104159247971198731308468985873224350865117290833690064487340312091767677624465380530669357474414990473412977958271133475148433974046045408261217050018694145854727950693965397085291410942488445013220292863917322003422736389121645737923239912039889626236241769670249351733903061162509850875720643205432519355449508229501732805624519068693498643759038908645374476309901835819775362334377640182782096489333011884094889942002448015030538622231712069813594413804968195570715668733966773621791248464017983193812390295789120452149320397261665956353203248502469603101276833242539093289571882266053936620269352348802436263156717831027058901138763455401863231051831895751497826432107298021976218447388950343978390121783745168781505668827153735336039928656946736064495543021961719898097392326433220694886765541652500676604976916872481488383973192887343236598714795066824002876313853607636556932274389767797637934712545617832388672940666221047751384892755198801596285188842048051689872383500860578480082045828693211555971272305248361175868679529051587199742644758082012585705614484347185239404596051704601995922654743481287876796646479373712548482949072300719751088297716400382165749391896558931567906436897328432589323958928094685755537978992780235668620517697470931059205536129433951495581816171330558751444957298865548152824561962010245356819044384024623736737245829265059172756021493863016319469171269285807406370111644046932492562273909107582894337409553314191745773559498327331920935734393981687821632347677048048982695332137405711968265299973784741065423561209645243955788440004683410878166247724340697042708897452183893880669795937734615825977865675659454757756211647468437210822790766260491681636585083637700230138299374322981051038290444830517721345141585866451802479066858470064413799206278457262515542980915100508695684580701217945903947085827547704724485069750129469106170330317371742948432480675827125527619192813772502265337173026535784353158694060912989454231348351421977085209229480253884785775726161300457951069198604495779066452472395359621158196636987403930225054201585433070458141358226753058496087111812878085686113030978776754362115694238607259893933732209462924810635580854877157215621105991349310797300454687129162074628980238501794586165403928929135079279822642287537467496709394932444760698865709038176549457577874636709027825971718664993921167950432070495949355161323490549440812093969584205385467855073152971089827841440336682389936148916960804043173824717657990961701943064867848072822578536179976687089148004194643872380441979713330497640715865371364365608787780907526665949825258973117174163658477771568368935418539537636774975845256639676468170303033058381914261741527804524926510943096098157101497963092995125292509313143561794703593664368798480464451116871728822900351327599589492029607771293452986067164355084998916331526492323628285192879988028651753508508328060416746932493793268483572030360334867518740699310345610132874738479455182783177645186345045168359759725868650804591100626809667497729999100976653170185154728221106799626239407783807026283120683922196210872457537424819049270567673959609491462137892197593212783225761729030351310580154883301427009492339534757234019066148113167578986453504882051735268070727961822078720622005032829555006122788609460036291053318850871313359265012231101277159403167924262240170015524480763360042374000015541919030311718144608982956006581101048059875468544958951132769056896552064581596485299340855605301550127893416839754468251594802186594923519383443897760035984506881877791039060473289660054913779178382916984840320587981058231629423358357671998280824969021622057056503932934326873898913835051432983308612270224068232615165965441538786627310322247547307105932464451030139182710306688635493308521813555709534423914508206337771588965191321870130833569620975991038567360687451384082808198375709739745589516029324813759468735607756943634339376709518697988512347359348572700632668214087619101288092909891371023965469003083020112436611624297052486707589200704855056519134307201387381035481107900342209110855132567230872895396405970397834580440752834424057886623370310382335659625923118176365799331738669422371683931546013917490820997841591647116120801238975704857442260668155590620201866732214111620208781073100740977035540223249274047053948459023806885884666790288463696849825957426693352221753307864982935214372291586961995275969031427661974839074577187870422013929125889335648104419985552756015423753152008718527393593356508016636475349299458127311801056537593060326117538213938600805896352275471811141840476089912950809744472628114586734148241210182415139934557856118186918884630550411091845586631996846861803010153710713531672017173581541570969029245152652772759480014007549744801967169033888091179190965880060407659714143799341513543355501893760109413958656175470946831095328836433387752858730211259984077165935490664166745947350441488257539144385946368971825773432883866624681497620380230007847806142538412958241589586463242562801755896961847468209257227693952281070383266865544890793865484377527807653993738064523250149502348856598541683467727155405919394397118120261440472153398025282206008572526895357441871913229427304681863805982936842781213396244223076898622608758072250279964692749347692227509685189098488618512847826922124408309460595443731083429516546481753306191527190197469266274357529579879993214999902306072779574646101874148268593541107822220624505583230733220389145961595492994458996596356433658592160358449464307244641617340891926823127173195402243231261579179452259633424902169141754955279581851791927114857854581452106017858571839972609831203878042476360743748952027903269555467990003085291243632486641565109781119935092264895857439667135250307032127219031514188403038090297539204943294341866347401680967212401190459374952378852659278877141561208152334105996505880596077538148727551207410621198508837734383258132497523717952106019205210332493971159728519300057997157332324100982436360917318697673202099406960385288103478778982778664077405547809106337376071165326643533304092234639855159409019008795418947546958112296328116285282623578740187038558253022957397950888357551805355654890256590846312282136447313094065733390025481074846165046538795225864228428711767447891767055034424094992318713241719153083926661480025985862903047335212738856148995139528506352200609087248678253191885378844973926125153437391318951908454485739937270143747277886802574582188846854440471861520893938466132271370759427709038993130239748538343970845136593474161107306693886630547965525982073442996044128406938217258882196188972869458274976506178538615282367059046760218734360124074570243769444229692328904833267710382579933564693262787028728398750994070688373395699639068096615733309397389717188644403996052558720663283808113213907146429497022645386586571024792310506986473023073133363220461982346186778754669682594209612004944383319303563040720608256127869585278531189421584645140962276612576119941343026544831378179523074533843968842808353877243079121478918607138937605489498671239140587413197658706223772417097293785588042421910017106754247658176399237064480719864437926066848511153741766235493499205081386851303277200788015909554544967865675326889878622791027727704500643157562477691481727992657819235783956361524596829041152124734815302195656658017140232197504193414033812507403354153563480467742241369529511414254119193960368356506356220418473964256168450042254965609330400545573899985092095548232245403328915668548970525079181344281827994410190263263018480076224771769336212457647299045533356562876779121842873134810956497819445951396401065601372455216405161581549916871068214364633732200338060363850420025841641472109728770266689029626435294311636189104060955155528313200636816756119342600573006303799191670407613729480828401913435354434024259216965565316590587732183740863038218353388925057434606101919845155480722484171241910714244297887243766907064746158115492226492804842171805867445126591077419457250485986242775498287392791417330291551286207509264836216416922243230028930122660128774727547057249491893403129244419405747931673708286675806563871603062461804244356747930666971969733592026684264532702299500919288407902625642170240874115804903839903424543935640370383162741012734277883843539749716390920979919501612082525595283933135602227884563436810367355615718356784835265040631896949861886001349305826326385711834093540861883038248570340419597428964510814385890027107866049531425586562130826505470482885391650572987510400800263187053872533057703264945963159840524962600200887616142040045453508417097326608189380326175721975173330403489868611302383076276597615751917095163771616918492841306383630690998155032769501557925308124339302635034792993349160404570540950192556831907724994961342407773743658768061022124293247110681539835275267199559572347884221871028285356121870351551114664179576465597309765212332672840814195816624711618642473218510360850107380464379217059918131541503122477154258636148271265592936509149725364211798885246883494532046464000490620819027818006659745058609805772579022200982482821517453118309881085741226541618897759744425802796426000126197767012899423047626357157008750246540594131718553898360088637288706374748228446830432246791590722885548272326406422481073102245978011669966734596295462965192769437222391475834039667194217651090423101319464924193953653661345392413128835537782903239661279856912535394834442351185374189108754861828357914465373814899439008613741094071863551495975293048466665614439525803736198473264648395718847217742154772282405424507448389206423662964414277132680074724230553425688543992158108125842996578373508208699048582978691532037459659508316591321185958417524514915618901080041305057804365945970955543641408427941317754757622600859786431769352855104974230083144343174483930556190625858696578630736370403373211102414899026190911783334311765488599468453613425052400960647211676624442249094551386223814426273916553851884929179630625609258125819140043378958557698073955427954430237716457548688543550068512965720268829700779382142992389437856911131567109848714186238992736877297003482865577403127463477628321730625273457601819225002574473973172728917098756662441972514283770498447487640053981959498491752134493041095641020343362433824267608545616857516494403896703529003931008281392080546397720137743480719426133218905488877343529598663649059200035099866463925748932897799609563836173776741096176969520487934045170957484390151130337769530118658942479112328235144418767066693273883725056581766478743802491752224963851456856991362290723794452921990057351723028849661751173094878427986978610678525304412469939224682372821274275597884854554559930645720690914780246294336654612845649534586879456073321398888003379457546401101799353674317101609312191266084192071249301098749544883265428708051233508616751043184545618307099977051319844959246297553528662371481656830311509495871774755943760331632619637983802390540034337448128472522493625718279058719951487312426911782690902548937963163628205438861762783430545542340180592180168950558487266641393081754129876134120572623151314789988687636394766132309120873933564265496868712662498126621141098846019051799139705722121499830253520508279161635852915086667783543248890229410702090521719239829039499276383938924906117843673881687610081560173208052976090553497937630297050580593943865240361204040290801017094783290507583870586780784611448650458385380077371775223044731564686376940327148716599271465317083295756869549131667527972786074625807299227186144693159163107118687060991776093686942331301427072677146628507777725097006716966793007593303811870572967712494449547813721799440451195094776919132994494023424527444095801187776734794758599146096079700251671060233696825341164853693792802030814624386230327799417933928222441678632462333126797173628558345203352801434861422638655358367435192282588699008562183194008316022754999844333022359414706820444871486701949103165869887004054984848552979445348049620468722337133056377844576878045229058833353894156784309061159145100623309255289364970081125665561892383157630438760615375075781148012798417401749143980091427679404859740810555608813962323177366898573591474662648521578965115274744633512709853713193287105133185407950077443699267947747482121822021929199961809563754319987309917278751517961623930210281014282618116410409231315945385366354067437717818433341276898424561279409228670185364624820495281768070994253159003813084395516736638768040814690725907713049105338273486443111328354077216463593097735763118160858139808972416480946687828777933252127339540901611246825963941715706775798278740032176560033877188039155551451673678653334856908144259876301081281883516416054034909229324338777746929277257294719566659239283412220240846368531828376565295347433211909936196862515982019934821749474209284103350968401287499118543423813756688300038124121023350856201586429549259742622772382080523287127361861986361460504210161774674948225434544002276529405380339886794057921713474740633459074243573555960635905861813026645510589143027179517217210620669756851485006638325673177936016938445018677673701261355159582052557724260119340366568284795396516894426739062129532130041102117291847104143279747561363409651323080407294342307306266186040052502300020845474455851771158456087889587394247080419956421323387151017151524140592774685151011316887679556868246699701671825462439365659116179091997756490378472561903053025010155706727439107202345538710243489863228359413014176054863371074745941138046504058564300233910771890871442986684084689895532163776320751716442033925723606651658617077107660748882288789287467974711145821943656048109465863295640677381712614692411705554030904618167009828088195152743538789592144238309534885777243376822890605293205934382407648904467338263084209516110072255803090925166524766897430530356803505509371464430999774443015252099801972970099423878085902480325877884931622434141782127288067365304666687151979600760506683026044510528875692718250916380862318437005273455365504384857293736299989431721765981125849319520377420505762372651232795528184679059878951002177992861500216121905424619422423918262009987775320975581916565215451950819845557600918426895901989183434922660050984138987213407568465767828613604117298333714315836360121933939979413920857832006221141941388424932801645320916834333652901782941547050789592063357203169826951248232234094240102818479465798011004905230911988902527890062533390416643103580924785962091393199401862707070624515243459247663534605655445464887653779406505313238275730642817046814848457685752063215406790850473201364743465880263118011989665881876826179390660432193368965832483013195231119164026155043188997457848677798866023819367499030111646197697595302328888814681527406958351697134494568810555242744421923976576588943144709907065080139856275458079263486692250397474604563216631706408745778192730268492185088157748091341534804478048094097645779203117789363583702396721279154294461250026277214024671100783124568904601998777376756003800387045723066308706616997015920994192208784211212726959256879697696754562621603999093039799887609531657741065839778239070465302599358754630139067905076817541817630559803270726230781276205523616754738775103061359451782483567765986640645520448381145036305047619233363947914739190664067911655821397009302371192524957516601140956292683382106785785292855247728492238023154414345984125224707457300829813707387465522333057700827288431552012863519568383386925180079971681785514784949160387211371758120280566113840385226964928064019772372733278704344766508454159621300719025869637410064968402766338698811612488769612078751899298975263933571727181226880198457344636084253412000129084473490602338914406022376578582618623614696597429278726959424137144466740487809112048948120763261537254841008422389795068430667817800519055182874789730137537430496239300273558687306922377301873774309701393874651726288507241605259186362930222227590581764434314087798593249682146305363675171183750886771646552890727420389455098538872569056075438999209623785337861853176163384495167656950766641446383631102243634699461470800430581211934303306124102801523082366438615178040663240795689699546013572952201035821075079434693138433615296846051774954851701749082087009226055222580982168503308909979887276673287561795239743565297982594661557494700955555663924578374794652871748002579464565933640979251129408288475154916867426972525297474800813600486556204875787710812940924573770218562248361913327620771330156533834456346869809403270081868299044086613154887948459907678301146449282083710538696429870489588764886200970407236130658487639480234267742063484602369902488004537897515976768833282211593642250495555266514520120605758366098826105021592036684893609322675955657146978323983002353724709532499396258418267857708978987077650015900259223595480494465417227524465960365366921596413752478677188843465686491377828001041490903415049697293997995964558483044925958223206578186067945897055999798867750499488957929703750892809220900914879518098393509671838242894737039786926010682898000991162051237853730920197642600827438250339720511830723691637347656527654735798700939666968447884229591005130380063624862031443990722636759785854061841865079864323308855367247668268618280000625775228528914523878457717752079352678893084492917813542541381389942483898612154723760324984772813113800270715922824777897662973410102070273122716604824990017711936980253000695546540052002506557193599019860238347907694486538315541257780727406056438948148175544426908627136185057369478202699715966192199902722497436316555755428556045868452741719796983771349416360467827717014939859717320437362369055869014257729222810796956504028630128192654480422613379180661515341854121163312534571169822600934491439108374934700020447606969780477651610186539801050103855775120345402419103705997038662508529848396904279345833009665528766786446600181859459733000906059346247009023797642184894611592139292248398308040581908371111156551851368305693502526315481210152068438568619857420903686807983855259482599974130619307835355829994333432170804070731996544410307283208523768432297415027664037694651751680565560958818110048280406411772714852474763153177008978815131706157302151598767948926033959024141749897806954686299591247103720159143657525093750306348583867069217811354116477605481083668523540785592421310568518482955862933922938429528184017979649427576468836982905797850593199465865424385995660561172484132141441111281881461737332819184451685433797566940130396789935539231422705731287216483270841520615261339452708815324958913628469216261189929607902202385266941449799330602308907572101716456513968235022187841368065234506141953910420960909971423568498386718780529053174435068412313129243461259672009518975748276270570886786226987448848797884460582985782708308311828846359234738970531307276137637053805908934607646822542197469130550601627059819793234683725117690780019194010378226972549653792193303280701741686239384413606882926278728616768789164628783657493837459587468760852531691969541043067770340858980479032263384837918084250375515663801999513563040975540767486793648561116278555035901681333563695400050587967397865171476937529904036050267361261268646271225944436508779328644726373895434229038359486985222993757619843146161818621413839399372385499400831809601391040649633420219225668788375567021267825247884610331971234912667995855467295459797796749237213058547143943155473121803906764052404756583104344995381002710745898899452503708059420266321941161088944952214161818264196750608292439539267364485547432655229155698824954119134809476667698882524963557987491915841887301051752337891193409467262907450131208845315519807487497376832645638665752174644356456042998748401916727076056633926463195037863227875845882158460290589593811627584588322124954274264608441180891916858922448848583049212150510698759350200033811952934672342067315800001699021744851070850090926425378270554869988540437332847444012635142408599144123671155957000578692369416589123163588042913223224519724622852630489730971101516328003193827911000427654225399300688444082208623643486738015766097171501366494240955975643025478127374140876989668074643944669738999836110755801480403167438890843094012306065329000803493572668482226301660823118099715900253149391987273214360852167584192190350735262432184168638698056556047631579141893131452999256099180024105959564460179710243520105911056308556864422250799721191053009930751302720946078163259439302333031415766385611845354775711623418305402923904401186499932574688148256347651185408704517176521498042652787470403179841952885450332177534431414723169729103996497622514929723219054608304865160442227537543848548772686808102352041554745268846875369602568649325680337811624116201591145814386869279861130155314090187261520775000440727925152068723553686392146540480036902133423524694953801633593768095874033971276573062312927935309304142686840824048679163034152331494913914208328007291858977390881037895304700324169759835521206102004768356549558883323804595839603194393041169669734500458892980945008590993988588223984898618852936046958146238865056050378592696655950738822328689291270380736366975968381299025506742368292895855966162766591356324872485982639623079055701044290995863984085137871526814777792248392972910413645576530459232813804633058740251623352260244956045872866267519537656916621728768980558629104727120269081722342335674638940651192676504023897796560285926062873227350147417376821067278675518241679442709007419429872062954083687707405663152980443794143854569814971801537658022500300165160048191823927047751728530296039640907055110935759893803152459879287018332482678308032674501672279212325710651019926761431197374909540995685236937648050596570311512089187416131831600817349234512498293045829937066409570255964624346811501787626794374546227482861929260565034547454507253255302598177703853116517580931114020172461288347052895442351614822509325214686970471481804946682537891906944645101911199393914857666485916928690105351644982919741131045767434525821437806680888554296367311463151710085299591341273962378223618679510744095870485028949165806908228893262579626504574628026105701211516765085777925623193022312507311759960707247785404656721792915428855495194926330669724460907534481193617142740938638596727453811418032295005353355076777284280686920356023063579015692130014372292574107848475325857189540154541244869247752187709407587292780794465249554355652818604575214220837938526952136617597974860464368905077504563386416539524691210713954049590779887796231801392793450004975804381495278698223914872722828375015035906189403183093518084671574612387144236802658724371548516867112542854804889806151806452599215935485110890176837461451069412716905569612805603957383104976822027494063652450258039575878873038965776350813999538531359966415144154766169016356863558053070763367392361487351991748429021693360948213561352020965713952650283367608275647319301955507325640771226066399858024514572626122820584648353503066477844910053765657119583422816429547352049411721167726491184304267956955719604260409046151605418107355515731453608849933302551107370008630729267943772436506097756570098729906577703160224523997997350727791350172879582097293621015553889647460784289499583197139641557942085561329330421441168257243459811723002747453859905164414725682813858752422491094876462687116185944487744780984496845514850123584898282147184934036151874674458399339583576220092948899762378066537652812448401126560198720375832710484457121709889640179662384450666534322155177282955743625857228078833437370096586812076376588176001636268640624391785607058749880016411353084904465774359521045658160300215752324266624160587534597680742338422011713203813194328034448045265649040086127907703214163461753370428198315858884295555760218590733675515365323378744562328098869335401135481012427915085523841746975743524314505637126696946270018304388832967768656680713712254045284372473874653329040060394593774105339455717509877068766811772158242610249073274128304709492056593405504826891118465362686902989928493289102741808741405157857287345192706414258681904860106482255464297271278123104885302890711593967005732203150125750936130217822272356579169640863225723111753156653431847907180718613007801352839398828799275133999116536205112699340285020999986298215009619040332062478637635332194567035207444727885819162397245941072050862364904767024571327679833019643124141983086630603725958903474231431931089102298307808716804693475380688668161241747195740586283906139841430424019526138880269695343048406457939707928712793196588619284754700388047029761174664600530370605804959785004725192288630600196572474724087830551627618004729947833749446035184179289548029782587918529896330344067443233766104508742383592697178416625221408943807320168809471562664604582526958082857449758564719329051267343967763649146474953426280210629310035556689795046157718744290579835678735345319596915556613924611707969979254542794226995689452422171201504668018887170875430722983461639294673442680731241402660807070391726917851120905332025050302674962499146172936788671571915111483030580326365219687103952875379050556130062303163503978120925015593106277545390863981881735283400494061602923330590123540473739710745342690304952747214299906476956537815903116969167895982767187875358050649254464790120043979304171463354103640434659173262796778210744258133853721711712238848912523498050785958250996045639044482917131667125475058001270566408394616142121899572863674389803710712004511943951433996291935729780735153498490186312209316300447358431432771646745717207892330617458398434760883016331088764921772745124019544001800927128704918491179693819493097972628944754532603786849055629183862892185395637819665910213824281021127675196267940020412450053260069366319364190074396294261940582785288316403202587622162642077711463059010527294395914414928054080288297876251937572120271351580992218635497486975567658421400822015857721061486342673046198587163406413839814360976244695639172819809375753971087856451362585908231467855566532182134657634430352180639860703756421200067239029914893204057960375339082113947732364367430045042988188848117507326921943241249396100567377542615476156536809810631213970730325691695167432799081551560371706855399636061463185902906112339897772466562510501009196644295430275948559674170680736440013356067020248312435190648887934357343814605442872343717874267110458564116327468854603436678742906169644243797339656604020479436686469678274315435964254870757811406142800344365723517725078430958766333286751199753029331657898902001939233098563644768019815086665217106307913047065453747760177556164362408435044962495525316930958906207456536541252082151117000789979817889264118018731780900110905457932191290239590261910163169084843444416729202435716361462293723316831107878493467817584335068550504266903930801979667898914617601305584808424206556522133771901235397442119437691163224623260450439337036305987297842564660994022643341999560994787614009346484001153350448301132463104311555238579633823618658428342418701314970273360065224762850388014173216912026924209702077572240360851119502335731976618746340890627016737638999098863858662195613231356074595865788618955951304779715307404374939344382243101955927285149345031361199355769564076477138646749881903305433564322572063114624447216407828156859903025117813790055893924403047679486006147535888254255850167128432972743486018480155917870740005878570163055110404731067699282726502503899260631282878409108529084740664017609715541854870722290841952472733419288859651667515838618197447097558351198668085492639995909598739691662573060367326205849726057810050334204734087168059414820263862392482521007115005026760123437891235312492352224839969429322313938489480481245548256591923633126425177256855844697930459655596644205211407155917373669070080508686057816452078050658752226121961714860613226476163816020031718687743716658934857177806829622251211891330007908340736880337182252618177781989971963929953020672031183586041575256216176800623193992756304976683458857941791029339496201499562067433695533347360871819037008529281363227695448364309029956814663780034482127376394181776736811145218509107796750721335052311853726079319190422504538025717553590453796816971961873252903278731538979252944424641871976202605034009954340778523785706068135505779328681864747795808196265614501492839649950597411465940940751144826803205359463530122516534357399263474258147377900300577159738095159727129117179687425232233930323720271005518708099100054401729810509031931125973780505221574221248121474079131129287757188667923184617579176471665150868229303986543501050757763492140399123294839938113695552567234220379629483338888394519849048779971630368007048133720756606900221752888123790411354648450592538867041225987620619059654694310838767498153699141247686681086719579095920586666938260076348289901195817741546318817062884019119383426650186466008909299561838633895316724956084222900856881197554116126085522215109828409502196815330513154187396955278679894389433784871788452126310009982648912223131341015949192425962779856220290415903737571425131968933518743848521360916316855829900860431710005014275905637357400942994917083902747781067609027072838411695024388472732209453082640805859609936855496649931783120065900199037613759872137982334834800954863884291612450080779286614095700929308710370180199785381999775352499966717055290033052167756270945454036444410048937802980546084026980795073912976620289510441529027213501036673442624650645747807530885707541146944355205133895310261362398985464568571177462103063224775923602148822766032624343492443833528082711739475965318651877024780768753394224376211468346248165311385205493660122770675183331921376788070483195771440888090398027046373197730584042375178425495463224472649365554780016567091038860549602868387551576694696045483966702535301720110431915243190101281177041164397975276365681498989779258693804135657775529505708559595874891396230397617832946804090594817880116866279297516598839459703200577916056035360799479383606427684780391614701060467381650245939386576302230139806634701421347655190791283278632238468294512967277592371644641721009153128440326753725565490147259703418004972832347207484735091025074645820803656284291645903113366808327614185377331930544176035895082553137199001282704131030957058476973633479173408058998331563454405581557615615853115038541285063470400551388674961745695904571376896777035263261671027866197322000671305796592277153789328348424158280426993406711992420418171907541636961538771334058428718224831178797102932700557510702834625954847002757802852549343899254375954157570744385594297175021999430068858760100648006813744261846516718503763357707195870326216517042731236125454697637167569034450664725004086836841866730590098996306330431015851543563387542601326989616961143500634396972868452674510488306997136601576770222666183040343336993359904637494203133603608556012348232879855455322848022837681208399168571062771418851493411260807639119885399640322113986086120358000505247715553192672524512035345497001765916051141564839482106372727010141466790551300848243253389760939841286391573708135141501241474797071622494497343123939530401349568558091506054849037153417409745084435695323828090534270067180238516578426726275227894557965522102122815648825560931577600589037506514572706595835649983056243558913578845430882124042349952236592551452253367428767659666824845232295030551053555978222668912166943293610700317033432847897408889581169146278717649503085481339494053719478016822965696676956560316076677567917491740905922993954004713139676502464824333796160179511621398924447193673656846440460437424331051017067049849919859758181846300948997099978879192275750867750050671530036266507475969122008531811507853248970944322764575533822639775467021399653892716199910198541382242587030313865755632436103665243242281451085566469153986569911707938345299166720668543501781925800874864932424186326924372889634281799925753783928346759140002422613154125852376655468510296017476003315217126694406103185416222285019564872881183364182941952093331750989681886866934763677253190442756955862267981109725724987994550052467422821408772847029141321082502385083079956206314103360871673615804697878692697301520394126916766100426860761023179016009171229224493322339455693999948429712294709215434412086888843486839417125291098694428929638360607303319198183479043017151654292234560412281741885984248928064444713466615636912010869997815949640795179770356335871366541704539218100258143821427412967594914199115764276449387073618339122165679255472000052626679223032565923350997050746176555270821862796829695638555671596366820503907579081993981357399875921011514732778372913362744438837500013441981323329807579453035853976243921653130083792571411713431798134139912846000115429869186846511419798389288323947767943702367635604649131673832378059897596246330782607552466437994432300348409366715567359283341844936923488189448911986241546230397554181616216227929793993995592172846257543701606023915976264712654402424391205851252176472448911846693066959422238866198988736222818800760009222605843857677421712016746138925863836412180392983566831960608872625036700728309659554940381930047560196334066413015756476918428815956597772172699901988481076362470064882587989869712840549882013052922511052930374793482366924526085978493211997028882493408744069688533326840003808685252805568872193485781343358193231794069073612051774165267264183526680482441518708437526522285437869852379573238457568112314374050507351962378773758503293096293802304754475578146580410516245196031795814938967208274643838522644143986456476144614272083771244310400749985874942380406901964273607183368158203372775159521276498072107214913277958057282041444905864553363014204352162566147820504436462326652328527596622791604890683156676175258188715915899687517621168714190048540964927315613921741688573670337502398359508376357479151091614384212554200339731229815979376795296565911629207129215481938759061172102298570894520185509458419357554890271592368002095960966460092664793755978195884050732224756846402235625398671135559618772341553374343125825291555531646117488225253482747848438192428349371371359516076973195245765074430890493156028875793286988451647518721411428911122055210106150149696956271479510871879554670457645471679531850468283393441002304182323783813590496347026718705698118528513820451314139594436956899349289684600264567262351243622553555934591063146076893863761942936430361214298714803605829144274131359989986082577445558685909707118151122650816156872191204271710920972873636895780241175050267780828826540665472307950518479866085226273418995734113205292789244232738125272898616249025526097630319975457172492040281078670520597976525376976173517346992039965503966752181489318579890756571966547723936313295477435676121823491273016197878978422363052698508200518088267909040676467535368193978699218447424651136339571019094833826667027079556283908231946203065590230153682484310324786977954066526948925269193358931576562495034304353625764043107200275141628650130419146935276876127267745251141600045295440862221234954863337159967844169493174600596535039610722795479018129656136238442847496619961995828140889449329666392310850236359354366268498778231978540657730981118592842261318497321169494432435036248014129313190858063199253419925180879624206361285954287359253163004655268547613951753201753558741992864549299481858814767104962532608965678611742540181202755197152624083581218178764748142948088842611512052815103429644290946462807448824490021063233345832913566245213654598046936552613703875774182796911038790657227053025672177626711961997126149082887548781304755990938710293028892012277332863480091825958360522060308118919565229518067479789675943587165352859967313093142249427510291801141906231033741439848938397174569513353613162313460695529068322492130352516585334297958509507845154098417694779878401094095198613126053382159981594395088514362243508533960314471444052401980923731161986607941525442561941505317186739652914042375724593877872532153147534915285931052823855052308231657562660631837461334796188645647690867769781521812178125760936028215947315991975832953249299377732673921753911543928157176105869323938562494931699927692019672965198401239704729321068714147894091709536245686864164574170488213737190868165711538994549805256246522406238247045060578869600018363990349776502696756604601591783371664457504240856829382307694071703994799561279047507328783406389596274240065407253032426298495203338598296378876980899987119722480251048124914362149173692795265854654165605191493774008909311061538986351934883367402147623323133043068721162451326223700444920837834401678290662803531497784845376718960761734727021500050301036348904372982430500906982683525022877335879453267543723813608879503003046443022133148801183460083159233981084774528974381989495602543347861636695887165950718932594936741192813098720869097471499715341923028699381279327897384417430188085449830400609172413915144710889456637539814461962306663046851009081913141847703748442637974720393554848168448003914710126141146741309163064239033541090231084630609051507139238770336202515227476759169524028452096768317340054031444918967923602124149893561573123299272143115640677542860389474602815589747852843942167670732237597706761109755170953344308209680409870540775916563008054483950572413876518865136119021959886487556121630768229313595973983170095249034395519295827351718827693199246954202855423208227571649698538108160667360475358713683391066735078757060688576202940830521256093801665416475357999444578020533449209481874424913762812923317228144656754062355433313788522534598478213822248921187303296720904922271336584519157404377545349019114444804054833801178673180466741797655052734281036613171116109180893777403637512898089850074142343241944479498641781759048288337743783875844135014966826910620913946267189882988246627469309724717801337710772626925059928702011951747013322687302162336681204907612114340277509607502306388586812186726262179860973036888883082147059000313681397740704401876091880078889709933680808235189592519575230687033802131280476395661096334363878229470300833623530974803254918429615264815557467185891085053086582015504853277536245287778362965651171472778854385820673896636167533044652423901451941631968186361379670478499253005271427156380559503067601865165880684142104937055187809422295084447741333027453238790299408087196978282413755322841786984163752195977369998863270876473712504432585928158838501706779351209617566640581298163075523538939511082964335133044980972786148847857492441027818427612214308316288012740824670395689761258941508668358728234229637371387175492156493930391063618360101819846910255007104266991891327918919793455740383031265792138722461351069374800222555341194274498131423856400029014465293371491615733057271113146113410347296026286624538246991360344110676693561537999389314036819508299926890665288210203625078944071175716412086818323415055618485815434867904634296381503492923451721480940507965451000001418728596233790185393997166591128099219393332210916829740690440697575347347365236583588278055356949228293115460642129699893059325255898375551795653567191931495186434506042789615090954402307740718884396378985212247879390501478435698228381694831232735823264943720053608396534597796399369292607153066818200924910141357886720362676442510414609011955079933303909542441457179368840109899635450834305177815725282377097492517071757573495735041603125828095973081515391364653160379400294804109513946494674664621863424923248711071385818314049464721462901131306111555886653821487948646741479562646682550942761131406994165562947656376421919906985926901312993153657750768012167952175874549997035083708370379193166501318818350962946440800111909045592790830717017533399050024259410304729841985034422518985813244356314129939620255035328554335547219387205840552997322887312988737084302646512852930043309607039142574740611795643673470306224184145250822580650873158893702064563941146253282148003115181308208177653989250246938536111498496450812256011629738158761489477845535743236803355782346975684021962753398960620399696777502204557882372546035101244602035521950924499363905438811671674499472523270642767198252384104906936077459941311462884442877494406349841961173345366420354357799765921340966969140265516916619872274401753566941693949791830062855237925912340623771992378573576888243399193478878685095398216479563220613905719774950528480499194486236852423296049526071024098055864584583074082459804230657364582121021559143161693155976792352394150595027593468625510409599882233734875136401005316465361425137966860232032391558154386684605715453671753368083655360583318902591000410612276228214441850092472622723982943517880700996528280169141734044552124440410492169832772476651612051981497032407939962101732336111606715775187291706041008316543300989312245960368075610383216294935543144723964929927433478563580270940955124276963875303608448085390153062049372101604749153561256910292070387872938281382298250003691810473267370861355283998538399094270456765307295592357889116453895343597447574646691462373522238395148037760434861218453285677073169842258585096684435709378876555894710497428345169264194148042165334130835219296243049629350835585832313780979730491682814753070873226800267129100140937202927403785398785736994258691898053760861864035408441658053852865864506071313491640668796576855177754755054983720594399080823978632554076867720213188980264478981378079552121469544347003846961421419106679835216696730688604687477552374055109735237443413929466193203584880945548389519427444231187764504266313449151955253416402590988427561912632056702427095466956478774659257976244537647743619791616630973818948871455118135356569339783800753567967251506995496239946585053815340505857574330324964533875685007400882393364797193547922863070407099139976567306459060934834620512355011473596722598813668211649444505798369213102710479490247844383948230520825539309804592108752705080317481591322986040142088829544662082555276125775534466906483436752606977833910767117048499424429665557949576379206827087455301523904462599469141912972841892583727575187888243696082130345661615953552400084048384382593589471625175225275533329310361679772628896920778318462300874361798159669380786680997530219106673900623980086388322736842164585884149410816713541562428802385483794160384146463664503667680735928373028169171151807842039078397232789259691291527162604920943359186379585608418343109076871467075959868431947055249737006236761406080631023451889179906631548536855687354191629698608588667947672774962694434047772597404208959304940837901760238302474513920689757499729631052795149670622857383001268012217613846914783460574769992105028860809419486098739518507857590537646575202751684399910423309376023617472309776275055940930559891254430057743627668309209415030975028264704533750873732846514203325320197931607957939204414328088215362840139522428085462844543269597060703273832527572058105842012366840115378721220108828063347949720520700347266472138485934171907784324976996809497799293730937303133432024677840972159287266138921712217904298230688360418902252940265984605207741420580711074572577641133321827832683279947318873631057561380807635963970324986286312631446965610833158132172378815423940896623558299360863297937849550877171323218121188420347089997197901633158515635205481156915253213040989067821796475303919365862543374788273486464028921748203222904500499136554486361263568532790741560339104521859680611632161532859010278048248205556537696863099004830054421008628362937422029874283759065104142623155050052026250573776012437228968018636772871740191368815632271158265680423417512614542464217053135759845718495540909993403317917458806886167558895240993729731295442931101820314320808401306417916069739880186923027571363547565461595592016825437728400663068465978105095859269698910544131741450839225305342011614252405852766523225746346002516407574795726433015671625852183971169624984997767382238451320728179747886409352692796093955297807639232856403282162542132072873668246309757274863653046411915290898499942380270837998149250773308663793327744448969788529657602928445896939047853339838645765752159835068683069986176028339925705187312871628800717785443347750372054442803679026789739388340119063350800746120732657257023100552890521407231715841265910042102859464103553598212132244791854434812976871244501649785379049945451731408442873728751796918949512519114405326837526059395446528702343508981164668680579907427123325169369173031840215053078048588250381063482310258423671207512183375723692052614112714715676558762571874547569231743332965749252205740625939163214928276545626546981919032964859225692071239057136816142844166516461988106451235473535740511736962136068776550675057136915123276034285172980097253948407040080018937700783194736300330742337009268773093232138288105912736995612267748702961000544555126468533023987439862047654737688878438869421225693766207616461685390666344014475520431856100549167373494765108942554888403353333649051478631582887997797847046694610686437877555902794567864868783122236720984949921136309515717450189791110719157050616385027838384465682898440911853874871337086114786838357720524484784348874057652986982119949100341680076601504488767773457912277129918407136125589090718186136577960056500191768028270040351313315760983923896762083172273932305896616245231414395192787399393008783335150387672944159126162660530325948481332951955023422411267544561386229433154913052992425374811222522815573954166813506768784471905675913295541232668546613567045687617925817162168411660808666598511563906315021716711243330895856273337120716652591988722958284670999242866637275508587621631021593305521970147833245601806221626025270558585602344918982092458291529380232452064252661500933510900757489193870685831421367126534240741322410462613721589973569503025596892780363861337916194210851073822917309250828441479628200825224361004426598255834241709450919540763000434393585095292599346664557462028721171991799179259763528822243395708392220676095586773233490586167877082898965366637875015903542093421311652099112423581525705655586483488756493271834805610480396211210106220790027151065768063219196530892951138143455598939394510100964922564589883142009092982221544266237025940896773408668408451386679760967884293546051196536866836024785732112495782181037904862416524694319757976933598101512106504639551815473162789199519699372367093369483445447929003243887615432442944934417187236269344038341470301025338668602574871778961734440359949773518930489704032875622714180744563455578288358218491095293119913943151501946136501469341649680459373962417705023484855531221823590075407619899247918577338373867743495876371411343144041142367194252115786530346306214948207911028003302513745733695380956991625932543977154586952762495892372210038319018455814593195472351746235883903138212441670747355342046583647217721379896866842858837388382130493246476823192212071026287039911692417078300763602523699961862025132082140113483917377909439143867913275575575098156617841169610992045495302848294926202900888832127294946315853718179561765409702333220635367697960857717386145007060663318192353397661178823143110152523114805165299367533121062197699754592179619659323261362913026347058008616672672756090785362533526653813148424423708420241450587955337096693858153133399098791293838675372974283843967863628287518814825235135223021856224184822485907959940108454489173313650739930065094256404705826484308661573804765008100736124657006973879868834343884711334236490513762732551298650983510138835688302368329895058456987773553431292451160280059738977303288830455852621373330548040092757364009436426439105367987486677639472872108414309290248097518477984251101265172982128549229141897520692432829116930042778822630435789996044356312704666297888485623372446625916615525215340932777960370947623150132761054493107516048858656287967130249703100151469147351491208187437220180016380007074352328248657555376975790951063699949154879559670752198927455879878522471792749354048850286967588909573269856768736325197645768735744904243018356903471626667410370720074128974228003930507531484892305980158061543929868725489859362251462751297449777405529289087022473828621463700901235965621977207428858618470906764659806520042244022533749687078822703515984581986862368525327581586005152582743132114647162287051052307476572256618618726454659448104095014158208988155222788810085231631491208402799438361563775694155090960542676732590494489701879876961428997942294422602630818189612842486491884786650869148797839536061534542441110979657729468334995289887790773495218801033124891287509700424202616521526335878334450337387035550273980763044059100345984819561035526922259855606388726538083408288161465074771074220687915501605440465071602895618114760138543286169182061786329343552330045953159119639164036380987012786769236204867377555526530681497820239584582904501544393985019234236461749185977045636325096051961786293112213224455535860392194252407596150364876416978690285992066682113602160007606955171760009444780856435197065702519329424364070139126766297861907795442792448603553858188116031945548234448186215452979596186940226866347923511861851182595920940339690775256792933263585343837320663257979066884345375339446000632772049927386695917026620209155342946074517665125574055742968847592727495235998923515491004251750539942657102659722742321904657829632224782232670756292995071681136960917321229200619226351079858020346901646089440114800730278989501921568627580763094727004673367102127286728856032902008550424420872727138527757936057284508899670589823696435931427078486967879067069999589418700794753169425623017446131265014451188834562009116405478178155784879407365897052418112511471306912607190498153928789581442000134115346979682621040363590413983952826363843075680531936546765040735571400172555258238516909993138255787227176556313142752721254340136309145685114129078409987575190009655260267159250141167490609849531375710853125632549058334762153463006075827315924533849385008866148933095625396418363735509217380552030707767301068981637095132666382972646494385517391239900346944141353842698739960915616325269831985909938299533417446019962290280261280429656997956609178597551566792545004831131217275092675188131614947922876353464807127990805304592798242103722746456858676250133857637407869336798651124496595844311715790753595725520186322983208709801639559736209241653940650256757293193886958655113090273973674492050254845260043268630938114984762608437086860335684515705370490080669859312945144636504794418211100238224074351133700161994601757232696591927810873117413193324246462752004604623975160796055198334763824020087819486693813134031795044990080496232105165120606318120581456791507320410791227678244345102399643162895554627381240095208178609618643450751247796758023069677234620782298624005773220892702061167926207632224775929166467819421318982300245813465449359355655094371625400923560136738986152142828752637324774716672862294458053193145284539280715008840550833863808331184778287480095601069811199738205046114353839191493879300676484114020553283846238636026855288614818666704440700251008150742164438766344986451398208616971432324801820552679098104785612365793853549277728450766881322907707903828541063179372400538199535737814564158067541468567175841801901138456204981189290989533269151968024774891353101405246749991331647081083363393318784189331255542774707470819849619401128787754761391212981458603543647176966551992792531394642612938436676721602490958079963593810586189663122395095230630562648174130176261291455020600119648081595345568410402069043764592551335019239166521214343540218754416529361905217290357081117681945275291035847549554506999462034300320210852821353608723648471047111570694563146453195790368165423736631592671671659429457643239015522356286281813142214379547346157394679276765314362812446650692995934171424863255648543328338718851424969517046318395491389331462360317891355218961216741081889849645787227594161527071749458065125999855823798105991622079511113851023405823075974837039894212102159838652958718793124076788151600553438315892780222627897990190271413882552048172316791097170388158605898913053442833238401412715164802909047065807920360049979700547426672491683034178824079293768053812880087945971579111913647943977081586443669957732115693931120244231970419106106348400340389641512264139511106476502655440176584730588432653604589875978600571188657291888499793521455473898085395552259284793509179348953766663424170353249837954393575480851349404417876859559795055311287287027196539665301326000693470858913611842204939907339153962117816714381366475257015549217936754727428944985309631103156437598077412629570458086948959510376842414860255522792417474609636500549421293929471389573366699031605002759435641583093963815868954636536930356687934209899873868991639413756884842925388076470714387282124603414331671942018511386006405665396590348757370390664073405365740131028498711084344773441857255893323914201158541352152029908765381608555789215924493951950082838188233403269315890561406469691985251621680159236516198884830544864299810748772625477338323848646089999943817163972243442372415595114523301451938861890529764105189915200233670390628339558239683303742078580968897414328958880406223794827050845517705523635224824251025628236837001713389527935066017947260394114517734007366939554070027976876372449774382119765826392691214174778006388892271754446165460264957499855424098208995079779114515130767673504460344353241833850064138456799458610583696355290528750239215844165139660810034922390657689100139691894858898064014524199368022988111540872111519247255201335927656772706683738238082302753190736441445860983660181029205853398503682272994677974792885123639956973406052273198642840926696554478228294825809195138961122975887015744234377217904522363986501557443354095102798968055607852428544347932809338899029693798973612686383423599350731244497253143000433296023915607140587980980164477031926414015940973569626501445108270384165761972086000984758078034574141084379290940342760439025126171523709488416107939064198457442302859614232303679096148961895338049445117186220333204442011597543298439596528827318973623006372158219147047432587810495064467871319327572632300964853850902097716160323148713472552737200770897252061527161756710653318073137006032295758801357879844499697359599942542181085329955557397361134647300494994289356793098894639141927575549226727553933609315447786123051901969103853287463016056072046324474264907916192071327371330919883673023672675112833535333822314793607026144524945654674956546478648627056767395027415922952516331416115103078746467701338623614029457351710075438185660552085902518070297034847256003530868803148071836454037610700383474970603161825232842822724722598931952893836335873992743465176686427486871578746857419160207992570375985654425219754766573011765487606398700732888759251767111526642739490535565297226949001178900688615215088912579402124422348281414711718948565813587427287962984588473346262068572369957350947813420735158790231166283397584302137366501490465586005699164651693789215807271795429621992565061881416222997895461661906524462261495640973928476315080946237007092808516553545615335640444513793988651573891990381280032949188935086114837992166714052808717605422473888089701249633570810482813981795606545751891766711240257183119012372928509099518249486757783623613760991908668173098323981407994524362845541770286737486377530763962369743610470280173825142833893777051411180244819465063650502916103048136586118548135485109930594025753777120697117294727169807510473682200811938915791104126166153827767324927673241947524466612264612628531403123683986212223498793729113150909371681129762283221031148720423112150682570065820083403360674949919247256143777076514241303846939669140193305533126434183757166706909692959834224004721100643579091077655413619252043923813304984989385451630457302176882457395435928812049902577082744506709024843221278353269353987539361766559774135130301834735198537007633566391150362976346472584548123496701753305444825510753803454271537768287009058861070351978216884954950646048611789854455880560720988805526126336196864303313988662514745880657558217410386115647972797417637771596402071358539431951127985255529733803883892343338655489105424640722545005750110085987608221101221688355884849453399289253585139494283157667379573988610252275379825660759443136541724919904005360364796827224051736006104257811316072237193666258422510983343921546629760987040856669825768182622862017531769992510671348906082277399810169387340960420575017127116489918993302701839345919997922329574397650664599475200764175487862963909681561151277424913632791157283115824161978238139247845311162669172546949771593043326526632631381393132037641472959450224416831586318092199375424853148207010215008074635344133624000247356054390438800064807707581899994442862804908659530780397069374834152246210041207202386656760543732457188707387516085392579346102454823342969904970005483386436197594409955779755720501329361225746882530107354514078418356083832159445306479564129464550929892581254952378360068648479578552694924129689286332501103898910584391430360056561894089081522268950670562738886058691889732427629987538296558716479738564923799810460483961590238601365191982642234138679772277780374810538724819143716306938141616225715862567944364497911514576255968051475277167311068894827886630436137495518636416955453167977452394576515289834113288209806432828359588248179970841919233281970408930855086694444694445655259891519060017426946626870948092098724660610622480021115162293283211557323351294495028088664052572383276669284982462475941433045560033980373722883393844510520059423438077114535409834142702856178470259403906589919942419386219048608305457911670512646245024572662237872471658653599055471741069271181863833199716522057645311329227012235171390802695554651511634347177598587557516197565975946197166922061749065854085691228989170382410577793027412250280405701805557126780932969104977889048288341266238584713616671455428146647389366445648026979849401236611692640052764610623826717425652458954803146381466910902855480727617701144441199139106982717905715747493311267686436926388351031356330183618578985256419581710339765664078948224290211114903543697270054614149170194132442191240982344408738963922808191427424039011204455954343245165225619969987200763290460877545533760789563155821948462154779516775053929094718725726541228443743464905590490477066230622308171505573057286633819030664978648023686129304035036580447820585778874874908961900790953995357800257698456361754141401691596912858191640504587240497042870644294366471119034543523763768144504080993777313799892712159624626409637323039759494642281702686815964943999982895303627381759305316241312952077221108228978540567502389449234845560142869787064852438894374975225181669894129414328960722274475496781729981726871668051447128837366138428360115474450312472424667828967757587728379537058566084041414171257274216596517546506520389367129909594919947025556491496021218488721101142776972616519975277440585664736268647625443922246420395124786087276149944651877225565977766576833462129876912618122550401326310982299191445141484512197824852564780608681761321486547049384782760738622208343017057656943562589105501162196427522531958407105333028944698533813914486361002194153210101630666504337167997095912772956947155536359200602550325679259287636227517681115048806797543141180390964607760729648747197668087500705372211238799448915576939133163757165483445838088016975390232153346580553827026489115576307272653637056045829782012322743086327780689055490666510427636850121409375000274052317497319494815184146666168925830225718836313016048400901809689913378461572104241356731128412465986750008044732174579003166109627445597723095046894225997410735072294615055227551168716558346607189553898882239023984491365117745732465956633282981767487661053703630013891914536031243510401597120722299164889605833971682284270533266276174048314632515664373914268915098414325808408815356126581472278892888050032165429598719030825224234403539843005938731564923540697759341572872500688460879505274451701506892176735340380097100811220644167787203389130412564933657403962286690922042224194647422110712740534002285228530883075008894787473726843092000776471388607301867044832988730043387286439792450884437790565617570852182429503174132523465834496681706173657057388055944714170734559814760278158476543030377454590912928771949547291640824035425219967158410808983288345560065194210210307280832239103688701147531234777280025021893014736568897260619913286329362414411148126512813207438758098643840750586995095511102825394440045411259577264081298871611071257537133011435002169731439066755816228412403059528266437205290681205599548668180585867807440546957030844515033824904705685277540037409837833265765489747294598469291881927287572711199782964168620642513712848861384503885142561984205669939664595533753475245973457793169363447458483234601329102679140149914238540915711592171721857387234515455017108305052609183465222864000706374587669744270656281037225158683210116314609342777246202717568807106156669528297759288970278759475507384771516898559871311899805423812937078210764042842291377065038672260202593434016193701633141510781051148018737686194632812757487927334723290699583266290158074656257576891260211448098478806506167198677908585341750206219438285314241302120039327160710197809737477121571041460990093330707833356273949230885519117641164341474977283221942239489029470302369341827320292740915450619322670651346572790484332605702097705912845622319594416192932681203318942902802385823986781380664894113802508589005827248533944726178850219125997197136521565607481533749286226896178664975699808712218711441345523739590546067721606693671875882149267988366873476444323136201191437101701246464789950351443865861648965742829327316626265030631134759009727244589144137958400453996908007462965964936999784316729545056319714318471473059457264253630029639347203247322773879292688086556726084223825984753181091773984629586323167375621237367084637573757749027740289328483808597040203664842202509740378255691222946606515002389468677976398128092001937844980531845157881599893963698604261721706293402277526391250887268543339021479708744646115545947245129311741723980950719754137264668777344275343898407354706638469865195578102521750072073269790935520849764412667224330092121845271292903575552759030977743563492283034083745871546849497831040797720194022947392701301669017966536075885339531095904471699030543219792236953153261580512057766527948243897098590086090196363831567459174756782239706984432468678805128822136809621258940090355847733185523762729155394069857637559047924134165215458411529020124083789896256245818753416463554368071407353287588100547597733414068587025967234078593047724598739194047920851950792683741035147843380545284148355160225224791123395434468820690730170259074627310547196607492972913242670938051757419858946857222086340190122666312362180853310741090475837917820813426106241864395000507538091997098087957459554137214266814915336914724108922236686949088849218557148034523115663432644883492016896370431540052155293266398650200907776310445490285067971663157594549947447265449677086734209971958003999803416096604884762341656556969363469167361427518276883366188574731077600864377957504802461482041369212504720987080291016600478233502456264555811670169067526970868931770694660841235468365675713006924226940829881750181920231309885589064745982531597394377219389501509348133980554489871949737140863236762942461070503446269809056850994790081048630842598227304455480887494260855785198231234931404618007196138602370283550365953624012606674305698943463919100842381006339334236247021459760694149083696040893310196585878700938201839489242927189498900522624330762793936573890247374783729246468845061624694546316334853370880529903028904304096468233024437176045621482172392975344387212768542442877798524357014942442367514885345915804899707747120259549133732913133886496985621002126112793640558033770089640957142012456318813287008464847796924156090068686796368714469248059252758163209815381591492346224353327594551199706897190333511087220389252868242804248598977717297157686350489487298426526679667783535649051196708119860017307735592335842517924337636949577409666059739962249560873807834898773369205061989165513465760934695197420832574767025628056466811992269349045527534579463513497683873511459335586447804606160722136254659643212997130251221122583886313070710298140543898244841553258753861630818408529563792376684085858868556670403878348304960733559522272013932395840656312961158762895395122187934993600441841149534809185646981338277116085040582872853086627508769739264685559637406593937554081307577576440494218299612116166503053740686673246455873356472187976012336554791071443035123968405903392780977121027415437188728485576467072757070645925546443091306972958315343336842193750500803885916462320704028356663760501597874193459264713792265262074895453153246777100932008391822179028923371049610389310812170613584854923292672539840219583011488867245494660400232754395573208624491717894795537360147962525718772959476550185264684142987975923034479874453870068525816662135013932257853065679064281097351807965333218135164805478349705143723560340243790815666146196646823260222835776489644891917463366067298078133012567562023390671579150266144682021019217635972184901635011341182079136575877583462940095209832714285383467309511881257925244220768820206756363117579253586355407223517346930719110726756378783540988447114191562078297551540003321914214948658602925200368814377085301065751472072226981138149073372057686443943772630370259995023310912925535835069686660370478192031528532219563301482718392789388461916912126835890796335028175820541525375844052769945404450564549145648061708846911217161016458256495717445369072524421350247941911334089122477567673999882227973980620270678554796622039752866256683240906440394742942613314815131439332857437582805400793093029434353152559181168179645641721888428721659900277845173537083105899161728448933308830907108036107344574838254734569644095263978644071455485502803089410201717564067323450196990167718305144077564970363281386144627386934477740334067069829195355302388831728409531045661791400081474653530912518329398737020621194510723944906208811771640054413769317431928660743971781268138029374967373333513349569644261227712232705592565779681608536124665074254147186857684544216661207344629002257110038468045322356429984119531829751131027810217363067808939618936725554608875875061152619949925600632811081684661811855694401157440598118143561289718088297628390865133918475495161091017857609873060964262528166550144740507705670043012322950095384316609823190569188372882178497205447155453463398478966524167645823825485884295956947006519999115372043180770649929130456538192682167911559684922765166299419523583333288941327013932039727256005937849074832391195644817376861758858221412968263112966916747285703752271545694305264222135775058232413548969267676242162227782431734361900495060804649406715421593805291737826507961427481856534157935192683703100004842904272807868239241241257485536974858672777178221397698987960108629016648230000655930555786293683218977241232543353725134490514059368646741807057174766117323091447582803498766332378176125148425030724477040290391024504334140727811395449011183870413827436456403090285929033441039628089082137172963297930057641561366693882087595483478544595611275132020026515540720379198883777195135514271036295754219113939844640762528986867971536390397163035791436422926441188827476250799058115013414123116176431121942996825244241433222149940750696485349939613685690069101104029921128842004842708886653893036892847623050597093942355779997663491333080342637034681165164444704165192451508331143425323221264316752350577463603793514760444293559307590262068698893432337930672638355379894518073281521110480176951962682218618931071318988334340183105277287986889641547821515499036423395699643400801916610380161818644387063645035202964123420808419205332668654988170824110928100935125239215928414213451755256173295851431677209789010352508846431145470382623332430013389500992683574006741751806897329079551261371752816103952721175890311731638781841400504419437904155459633330215442964999712862259119861494277338067327853853115407651938631306182420082274710977669393525776102697998050477895157135476455895699069774235778193723337247735146120469879738485911324007083246726544479160663296472532046417583107079460673414457685599905117578907863959186968368448197549647550604857393252882656660737748999218940288359715900700060816901454007550241511753092827548644044893048550901356986442865756929584685927952499855882394050527040031379469451574073934271690930381495108409570779187188826657384363426129941403223304253783750452975149553535020963914590840380459579394484026026302292561733098713579775875788125385850024056733434964161317210800049961494777192716185061537470929743726789611810851270026226429789488303357223181625412065767690815080712579975254956180231478742238244815324001752171553526255428139094793194099851001780279292626351482933172075378974964306913780370501781186238567087480679726870211449424941914133902426728259258454440200443204556450875812798099297450168816828609907606293274319245705859605316963910114560428197428397383670939115560320452859801688087778639070021547592675366773575134858300926948679602701952358571392130676378205711820606182875365094272645406717332078074959114122394384326252671828038506926985469978240598199241602042324321093729052706012880407909269145533372611621789325660040376241263099166817772979345177332008395266603906473599376491491145622291082621424004132980596408438425160027341353614020575723953549131368190276599011783998904594199780630612289278710975471221695281889884022302039043066463200763254954844581426209349125214354599299858894419624809276874443217440402757330341587110514001625892642122783059658291198768358070452300716402976409677093716609498322039960275248374535782438858590521741135567840255101269866982397914758272903682034398585123452626422967098929263065618766380577404285635371922183398874702242311865690526745523009932568205100417639493392607544150819321914638406462296362553229767393054750903386622676405067124616420072563421458962700994708703163354062811476862966770399545749179762752933445311957996997991447521593767648457955641382488136806908027746880635133756846143097914723534579196238965318301881799253262768540318712805202389335171008892970956485714415087182455937156426024986570667798998796340413246662529725678469444925226433630192727783606468829714716963531672106636664355956061159048298807900753278999499895712736503145378677102904548556656145817107150512441374753853579556925581634363463712772695757629988027947667141092815139263852696212314682419303637418579709256655361732114853217014778163550489018981867751183134674739023790751339179620152704938284213841277336464857178211132848239599890992360034899001969381699921678232675858677031821487392346965576003719626959701510282485310628349655664240061900744428301902646161872084699015368692686293068927071470155465524930119856010879844828389227947556137967430782503880828531095260053143635744358811887113809908166920362589986819298848156693740230323965361105818735422234869931216211998283526768477903131545953667425601813393968707449567488550242007259221677208910035652969607797091612650287218730923224876456457245766738114215890578493434461351054055691062194271581433223458903116551773872851574831068693247677907813718367002931814207093868731180873555539998366024144264336200594365674843705232433867129252193738806238895416252674148977651135709201184107030938735015285812410730808435147988974606437903749881485581230434252478994475143788325598055599948985487426109026160617572017395851245879408644250222156641700885411647702401914759124127593786557856985421734278311496539486846576550188632284263325690567906999551713687530893840356557855599639066195262207799412292937848927404840833807166784771683033887247883431831455218154054468997700539929336086884561651543807637008092183866107820594335616381441350542024783747646001746021675943821013035706162083318362684387672083714410585134731238262999133695951297756935782758733926686657615816116105150181837441770395071565534910576017611343193188605587361347756044877607609837035597815065336008876210905001158410614997387441781665048157706856587844764818276304341210878612109996945038512845291649583569644992806410910165238570218880088474543549460609787734110053653184372142075880146691334094890754568786498423005138003083619566945178202103311402117264047132017643286269573569861069109664866853512828815787672298523147926579876293070449128148901838844880664237563024846967241749145936614829307055486034651958307335970993889439094401390078000747701131538667532738345179418151195178430558406773051081857058404093245943492497409748384305249679547788328708779299739420231137336091457336127995732198454929492035734168660292525934157848138045258821435416933081278045321234305424740563179315865112009105726887032329562318176810692088196781984470668913723537487181542531729409067192532716255223142553080623056003712952303767332121272665974662166920379318499936999951951799772372861709667665192178408434239364838380799317957510662822823057150838525061324936996896954692342444471505283114545174043946348734063805587048641425543563278866225068032920111573118887864803978231272006436859771005429662972842805696670780017082784513516502481777537602373922889547104819359543567201714786214066646229538924645979880585744448309445971184435659314909578329454748886297990840897442218878839855110737805337856188852792002856005878595819413287146230418000351761434958400374871808107159792390801985858499134674491138804618704877232333657458955303396298735404493851549099862563012395317813505902152172202371529768608926476109426658808073776211813653936714301966476011050484918663737766253485207998159891451789584233845783341265189214512134731135164739153822210373486942860027820609046995289695202864418028809780332965809169140133154274635413090045970922056797950244906667562160024704826285521993642316095906431480852275652438203057316170341756412483051228288050418507392525993533305762653603728002782054503553637185134054715922137331808550109031041129830459982181820576854533293438898164167672779912981791402857511376319840363814029146369155120872106530618496955543400020039662553462479386560034181084667166898108415819683630639968150319590587621716666762546249817967710162165609299191799737925842026301809419339942424622323399215900320874691029940856020140352162941599986795748697012067243168832621570597142163085030520311784078035087031618797037639169775103125798476486599809358165612897392380680176405637203433089142298210939984086529225785627861766236932239874301953449008496510903043144642238792353531459161493365888163920218061623192821921757271618509086339239355959460046080476327521723455611489724034162899682271740552158090590127802354526388879705784102445746090140999513784362201660297103844158385552881140503838718628999642549962897745391214905935545921028549615050404250232788076417396126220757088455585830991627269073043071971829924541138987166623009990370411678709418103701721910667764646171044235701296545059788796088198828936875984218391720811988343490875677640361471566609863730446648091155587181853024378396451016995012450649323985041216563232067420560930413484644086947288608655462387773857343628318385476998033669264577469897764743845660900660097558771549461969964073339567992640038324716240550271481337621813620329035725117431586052694387981830886024616097102273208732997001552638642871365620698934883924159012745627968852514488599898470645415744049080820621659746270735554963998378499945047365139007229528560266317176010829081739888517490749970769828717525173083216465171975589322312814864941819365722522871355129385546938065273180834146123482324228948063574286305171873631701694335707841812727564951790762572806992475162437758775146448924029205393968564579571909969690945021963578336785621342358492896369184533136268231178171574753444665231175453868054461862710757311033383817715691365917153400565810222236464973136687627454054584775488087626490445256123471839534861364441791723485734100854759693733996057245528826560599391604041734150455496753789270563186575557057288066643038544142861259361370195486622825487052710546703298391651710074105683473713962913000210386324563286000982912417989321104128896011769566193061187861133732211054598750971397331731205370084383620510609544516953957154542645559776156892715779811058920897971277869548177375140604257783920251833603026607529481335188366409291631619699077477451667764849487945141917787879709504296527634782728923081554398472062667396424827761909885874662239884784018560195773822335611870349238126017862547261030779406456552973508905752571769159076216887245704976850105235892402678138167824943909803787725930793513040874864622990892800139404415097067595920324720681276712179861653303498630161855746072218001494544281663669675672866044026868243077886828706068128197608955149534248373510751824675358216302517103921141087936170618516372291919939902859082092284296766290615447799870893740671323601861846906292062215131179522026156837642459358423916328531042982585406763817681407861825141333101369864886881739813711086557968287339775184398917638100016812107019585179792685603428833798317085834298518746944979580094593635901146174694210015872295133350948388427768400684770934230949576374854111595933047151106742657231797549638351475410134961567702583357417068238999628168476250300406449209503370337466513688249411704353296854715120812725716631892242128188873675450807610058462772338631226532824139985057461549881345071388614024063059497235225162634612873623157371363875218205870653736515385753430640411382813080288722294197469371342310395790941679692214225168495301337814453275108425772026006913974342159204183094299127520300216432323631387034907716882593780858422527258906051574434383826720294614446905463091278607470528656388076332463560723982085005379735190005643033947925438128164103987244322669674515011326976588962121400522724396736632752547533321915402580324479819058241965859839839627370692156981796561445076276598733762679971901622292305657483594585313013483815033438466170598132270831580555959272069367930187999738684373437686575194803949229061922429932909156955139513325496496671182676442442830450601818351851390159519845623153763647618939820143650288839524144963459201071110397940025859435161547776387528774580868195739314463673965001206405783316229817220449205057409433548652624759249848220067313070697570742471455352330703204575688476476639256553343373382105837325526478395296721237129374180533687043477076091791953604990228620282571848051773274306626605934653680398865032298371351292932137831223624755846998700549862327266424029922855947380869879263285937434327825063627712031482911062399594223026595460833743540810001612090637438135247965285469000025877523804823207328707134753196470567720599276458497425071128776158168235516415842703095014172078323168803125967680959293757391309495644332560926917639500051909772930473604680046738960846432427013945326717442691512951722052790760735301791725405331757419699956771922086052892082030550233283350301550685704520445562211878829518183122619661722032854060170942050765209295964999742135513714696811927606278504682326691177748596195637244012341525109671460694795096269914046239189602034021375803056361219824968077085584570783975531423844273999359443954679682492111262217026245222203414073389934371485178217835840804788606963238034540616534316281854336264173995474172994551459991029417737850234315683483485795906991458662334351920420100711392854968018565625421174773498850008265341149746487896574718351460246754671753165425592850803977611680251772457829201978761234158734909942653535792523230539541763076584656552028116785270410809509137071304258257240368564259169847463594075951647083932678726923980657459159030525632431730510775799876065942434691863719871547692464051244777718016032015876541811067935317466694431900631638869161308291645380715041536171027264870933632489228901554139827543276421664998597545754605715769358339811956577163358291870168025116796279710767011325668067854856923072262416469769199028721859304142150449394420289214496295708256222933873766221099882722698098490898774062046737740388478257374588796371676840253630949240873668449272330780899646263605724972697979480792936621194004870962557711292748946339095983316363522503836047761581832443263926648031620962402742237657521462082959232103864527492432193507678321489212665014798075373859722337196921920033079500979261657058701250005145978243150813926101792180664856459832449630664276697680395557252789648972609661305376023016482779157091072666185981230242395033813970767289739277095306951636517822397536652279788027198424412709952857820830587603788527229509066946626803332442294519958523783359043795019310533308568749390364201939362542616133527423715344339451900564130820239422796179509565030500929181871660678447042941572827431622729151192829502387129133176905679709907230655470762123235583651480114632495248198774829568871251762784359686275054132595732221959350755942470068849828740526071229966892503224019373392925152486898808289034227709104932584308684943108314040597292280280701390503283901162440964090851074207542803545423710666069305280378612949740669043134555124919475520055027409448233720588434490604285514933099251294559418090200958864375195015443232663484946948784406901844970061126112291520883287159489539208201215497667592277458318879463243587557227025857865883929450578975729524184358847539571060471042542589552443342661082080655850997574083602925114391569039769286726574765228039888414633406795087041897208266205457037379900782537820075908411506561078925180019956303828573100637188486764186426148631134577250535135435143833978551984323478986180331061304301895176953775630627204893547129270138072172943580844303390991319078241382341112203139689707583458980484249167171046222895990194971882217916374356412064298369282941261705509319883914845611482342019725241954625388460669443293907911658699481246886363274550205167547916807760580533338832223956420681552801401008865052935486695271081703467485665032402040108177010943922568384573030300866753884099898297895582359824590403951348688116298483850601718472444567232659525287756499538341348208076557909436395473843556618645223141518918884512346110505358245378959020728554275770165468727690253941836456207633521375762623448293161233249663554649633998170017976735330660548189983289696802319025304111974963476691394948303423835132948636333640997221458218636085347201403151325931242631886226810439761286233925174628322480717904129797983802036516499263685254024423793476505974657024090746338234560313040003724662765520165323901380085030193830157159651842066742043789327945817314203916559336409864824300687107782468270665586339278883063563443217156053746591522479562019552592014197264617159127742105047299949108499454856728042913327668753992746245299158917398891205539809143858781683312122009517516430658198159936532533270250447357041994566003038651641136197820272388791903907499437709400109945218673164243493466192745948099296996752730023376616264705173319316211279051377311284417552440905334143594191968270451480800543844821161931014623151743793060493954417593054819986466364306767450050155557603533119064370022081550071676338746518657537497010568521286245680728376566688938248849224973233432715599698763222243272839193535816860441174561677051767609800804909058776972560468563192438123192157234328588877203104826321086458816217860061121485812088025482763878116262613346965165023068832907187205780726907056009475788892934764500397349908399950845774277438634027845263589433397373963000239202708978649697300072527471472472146756336942243598319975803350458554771781156540907761066457284416871214112901544839038507365754404350058614308147958367300525296235541990421378325240910967644844643818891422956013007103042794061099605984055592100342986672153021024459480629061404146159492189204332871695545974240130028557227999164849018144838515933945521405319151703853880398033153072986387182387979500209503491949241331577322128303660335955836340546502370960278973461229827153934376072984567757697260083624714821722237935416329615838160099519438180657914282482440234467315135769926363544376715224444405966826897582495421274335303816680627663978398570151174189847849198071771844272303083545005176660165323825610328793066044141785326239867022059715642422931228587524220304114093547258886146494210544210971220249238981376276231264131527383208520729739450956314657348147922397047321866604482097793864419724023959137206334936201007858114823397254008409555955393331625315949265843079731631402930048483940167248146450171986210880459467502892878383837483024542172400481501177947189313684239498883642315139865129989220326874638955084849176402333831274956673150756941442323795467539111829041550017331699929917256614614919860311856832421074069391682853875225333969814030800590970738820899363570268635640295343369064252300480955481964090840330782153199258601644828321306460963202900197081890142926920212606614293690081180807130267695835375894155336707041828322894297820550007710997970577766970693880655700558832145263636036502107036898296628007038292199612560213037545241704431574702748085783826793341979951188287518366589621282925645404171153840985814575095618551809792555010535039463293604956854885930684935374314472933541691850038391301598458465786230674236383941750392714370428902999674396014128190192909108195452346201691673122607896322342668018211169467101810726945616216173259660097307304658052107546690641600589987260533916631694558237749901131628562033040098032891701281415973946612252972952322955546862292435027511532571042476271108294619123705940523680815933436948629364360323004633198764058392931061286723675329799355240468349983866282689129133431259535749046355664497025597982671184424594296425757934651691771394402132904142732879436055394519111714832564343852689862574710769300924014010666140205111362845370727076234155513962960352778053755278499975753480177286505877134200914964897901372041709645476737647158095632789810473240350551560230465824345236133735905505819281544673578903250782833886811124244600405262981728117436103612169639688501338620414288711126597786646996098161668988115688149721404051921003686354202982539961913482952922042295472640634883850004432961717647481180176549737039668535278042713942636120552273130349800041464879973023503234349298738748752652477246826830796985829778087324453205256913390661166717390283674291748008477190698385050965623575208692021175892809934403103578340606026692915496134828394263739698970648629739882098894949273725661634457573281081977378198496989752717235943933506581082891340516887480072978472551637880499907367497114084698679961795181151037082392562068835076271526953261046103274212909392248414094892740486887670998191636241035848198154786270564356722860340514306006336553897038398292281795158449418222298762823665348106262111747640351891520270060747267120679380113249912197528491031125753258953016205089697679220600601333364925454857377196912908328678669157259786398531575296395330667488183927115073935284223014132353019392483147660787396726556878197096210124970391546977062917046564828658804157279603065047257710826325422545698470125424002100691525539161807867025087866386211222737466964256853658423843253542920451918338944272024604183759613984713265226136136508899704698505593670496691435055028566133264158530350450283474067738922903537346291360873189697819310885882334280124502121385822264630596517346564036875701412020866014896368667456854924906331801876259421919921301371233529010702013549653719474399811498378028101338988384033377554393888567708075703379994534806689233855699061994684376685812834376408719544599526266987095149298942422910078945368051172502446079672122365746947829521915389145601236368406755566820419139886033924694267215385414879901056807910323324038579900643410314434999399594363220288863625452058747157010794092600314709106363849306729090599649225174186739346398501634176280980210221081824953877903565533589136411735407349927804031019105309803826824533245483317863282872639837249913246494378171981462133614939818304032954283783797415303198472807398133495480689256037720544398477427252407403157390384751126995111554970164083946778969457219480765185284275646916673757618979919938546202862927907633903774768529687185626641246682367024554943729417420638275983547917637444053549117434577315388416317307202090673445520815022656721355937636697648112847541820590837498743918359950575422496784239471861652254819216693547325207401279622327953716241346706021758699814787362514697546828686568551596332660597673223114900696722960598561803537415913631055964698649705345084809140615041541949868768111758153232090515415011412052301106970051834734382973185679394754751044376622264201830399090972952945912375101125859601596893131447680980692873334210155851018906671958561338423049475103714821493567381831724233758695148763969432029252322452209619580201922944907532695637211466820668277008162109278661261857248615621514663390727435944017055678841665545490737614327717350813077872878254106074382214591498872315189576562124060258627430058860856096775317125557804509676900641227472513063316971758995188663675513055686430989915613391781001274526844755588923744124769003767014887571822278289238536593767789819488733213363781217038072891374160117110256307532772291496197537406228346183383886901091241465209201490634326959615235809658251465255361022621520116826294594005920591889006713406329472376988928040163874664404484145141481271380179042630217319481932829220651893622769943789684711998572981235990732455465359524651939148855922166962308282266580911438594507251831497720542164348782862869628490086294609551914413093892475380168566006399095532935379647061088675017587109420227673444745639789887791512078026919808865812105983432612176656474324537903339193313251942389475074441865851515591622551585122184881561160456120712327561644843717677623971857863686169632966650756733325750691907631057787505276123554012248149649854049898822485715581628792971646252919054902023250526197815780971905247279012467946031243921850925520955970899852240377107839750822760807023071798359356314352363852377853984527837097185771376212514893887874957194619629401849006129790249174938595698882977711545325797198125978564353804458616365362413175765013059696015814657219595416660319831370855610496814852492355807392036556387158714707216402144583030347641760360875157918067469181360092586732701839676394473249530856966115240903478019156965789272961989709989577052045564883529815934436427833023429009144159504918196292405966349768486437672884234844650074304614963826544323801668508664973480492684096032098110463890972941679780375936731256580926521920352177529369488746244865015836838315807379698259964638157849363975049543959880283412256536139427355689716454056239457393565897791514814559781477747419893199443455748140878860886056157786589685308253388034456519635820974114864260203928413284289608330880064723821250595219198558170586425933752148137151759269205701342676352065141836878894884181567020989892077387881718035793885444883742240736552380706593712431455506081274453505353731398995017827098533537648126448256695489675359879958815393932566905908247814019746104286521373971726912185070840077828302845259528149588028926258224829837196686482925064649693912148598241833880432847303522188776720051148431993359391505505084347467519672236084805587115678589954848597805423504281452633723881840363912417373061506114417487346936505296908641226711713526875658133958633131241181432109475602329636042700839296895226289181323993960632273347533851835328551496990928644748537804586398597791967387653188847869173999053931580412029832705371672270619436627411292714847392076656720150204338355507717477985707770397353400258942263990046859339042671901205506222440560614750838157214978581162341495237390626915748816531079257115256517524503060649787454879597288418612210008693762528664401065986202748447766415906461422644465258100166152051623344947286591123423960969387852517769640088684090115660423838831414307679783838164582434814682662506957943237536371380884431601727097671928116107188429123195559929950280879589507752318298718718896012182498103254313705520844106149341648120906644631324307073517005423203695927784938193938086866158999398835555126141949199691204686603646668978771790404923386340258773911663846299316157487228740533828902034572414213391972261042892822199959617850436160932087403704720213352783579251983588194757763708949603910656864055410457788761782146938021268281055698573558159344000946557904687734244937674094493397834781175674238078203404451418789754436451218696252210582930346678787232611069389892021794225524240927644205349482976653950519637174118410419429938109876043038399700188738087384540827572748988549989001910721920807525189950581949559705366583841530502266130424547102734100738693609204382283407712592393493721607905941957038243764854574942173240438625194578502074907418874922469798320151083155298990064869270025579062266854326813556816587406930991907631088317306894936323248735583071080282566541764960787752137871590136082616904718636629011353525405000995123759169651940328212991847699643075604248337986283021246510766349262174906381119719382676228659044194721065494243798393437657665269325775323062918901753309648355593954260014114605647222957479989534380889673885263916807450482769985535977584137660094856279615208864295674331522413564645946188295951593770170509009372013499380870098520522028883246304502605209361194898651031404238288007938658095211034461696614096946788506009408360341469358868193588456350911991869045769577844974505120790431065191399274733856331394462560730571103120785821916780133342435982325503783477094893767241279149040331931301164771469150078321479772698232368060854263361483042178599234818405463008810220872077688344624603757501095838332310475055062266810282982731611041147631022629768860659875912263914414383939988932871465601097995449120873659657593982415096616055138403270217332441972247636560327208588391975436752551620502854806808276865311011781003580257129364588249429621819535297926671941809987327897406024902393318962642969117036092937312678342038576800904299521916455482707218716112094635348736939770407417745169284923349985146852693765691008074336753837492887920142773206742756083996564904699033526659176313094501440632618401949852425771032668439360881882181813417057055269795297350128024796322870050582271519258974901361333355087930701681829381310639219508257486603761867916377013671631109356121036277716693630839262230542152377772777236998618086758253934341715396282835845694900279491066126686168777062728398446202708607326482511567729802693978602377823737546962736603919942949573469608805905404846925167854883752501260331964947882162711996407393440836874618715856646598081985246135347350919502689871561519699791777869220154459181998000455367321320761761592120145606547308363901127700404196091188041515572860782900235822573281007589583235046824157371184302576128215584373769575286063102390469364289062503713802888906246139352821599808133786432712216796560540675320463691647674015759801162096600640279487625937800584856518194070431208569915988612504068893097450620948991079277849036542795635721121448763318321231544360147130766936003899898282771252621320513854267634640579105496629789057038996946037749331038568011407328543382860255752399728973423567035037332208688099306023834526362620837804621013276828857906677517648522322573202838820758479236682572076753254299679626711166314888421587247284859781451145099948006077141072555253131165251320408780249798614860470600329820266718320659516452659703330371596993930374712943137720563141523617093247786675337547465298719876324600125928918571308641154127777518750248753018521743270121675903754130839049873674611980025805600723531844705635268934570765769232542148379606884499379642800464222984519033240634224166706199045969280402660112583263947479703174090602541274182342824313516734565518429126811172672189807867618657009240371283595062280015111268815814007775158905149793404754240628970820844376324115821855119474912134964587227229630852238489321186384325516115173436423371496489529175794327317867425364575098324955572684595814842944295648681123928900107874449952928024282154704831883534849833370780407072408836465042426646609376720198760908038541076240809964968539679242499581037377495851699791950854518093105283160345796683995856915544617254389194734877448513816608866562782944139175375931933723763584154903200361008029931245259235831009802048939137075909498727268385803695986172170196101722872322704618557070699841365829035900361482233417461313936844011382329653370614762991436423114662559223806535733201032879300863179535613620729984589570482068304900278052062455246665869100269579463836734849395204533392625473576794486180275470240214080251204596351871518687934345967103667553008028468991840408018046553593128137140897084534401752753053981887452091880759409918553171280453226731305902988365573237453101324992007130357906725092332384591485811350716823729707486015256117450085620123410919248905512586854264951969940120021139359672289458193881864322082196444644924544306830372155091271894423889852677638167202362942465440192799511869758654892707844401662956690166808383360204056294379727756374161550375075161295564293452329827200291360006030938781689478228747936928574782841825166832395904089571378304557669762867929011869584479366649758846588990604238893235500561390216821033719216760988736761153892356867753657557778326760421690937323504109867844982629779176697995976398002171271709498862452883274435809642319740489746841225925634999357579138437988493187632359871409332082437642357968612370458471900763147705868221618012761156952929164724321596976342850442336389143551516574850622246830410685669844562112308021603633632740280705607166777637608608962343703468305601161173693856577596842755858591594861471729177810488349263373417848906132925280086264395430866873508466675820728878005741921765774247524424157389392977066743711846331337028755897420553720041255032322600730659786677140076737809325250614414649946437284639278817055633350275233461094375591692817881209015748916706614019817537063702272146070056613886642296728284918809573661671536028078345833710853864321762323025960266792374192234731206757886674245046099726606913152042318394391751600164536623207135629704678861739468630288916381877351973456535221988938947449230728062229647246451130604676928179953510784445913376877296704909434756464499783909363029802923262710959256759407884258236310214887819774031386462951088748426156692140431596481680265710858259122759713374307132234729047603480899925024123932469496911418621641507413471235633063934706109752505352822594200903552067940795399128702961304341946459170820914543399204401281784994600721502701003085505679334006710104849947362872125976045312217933890813468920448762172957219543743259128108562320538200358518619044533509499074647598950229715515053829916194650668248744725417914932147955262056069154092983268297725447707279837643041981763388959105697902861429864862163722358775464192136947882533019583411694235749175524257841283020299236570229313791816018809524410000717288695609214679890831286158826244700022590988382533268628502080720057049089321834604727027533533931723455007444672592418641615912400462896100876674897014783206390656130596680899764976993842971562296571745880585714807687469698173259927369327450718076121173969037738086362367733115440693379924554686532801661463022638211386920382768148086123613294773972997377192120832735656545863044162600237533231367359459505598681850015237409259859708053401844563317826147832033560018350457884929787994384897473957111817332859853913854356130226856435114064126462098330156176395800741093585344224853339115967581270557631585094818854811458225505811064430803669172728531894895379809066013602927183424256067346819800870775733033862816017292977164576274892798320100474735443874566964673014210840112180228175929172193402188585627452653458659604637630795917510780984858878744825783849570074883898623321695841269386877006149855146309444283642447643986594055728470002454653183089409127587694716271555479894060599726966616372669270499346743007733886801675676653023558889135323516216515831611390641256572703891941992885928651008337727064212958480704106241540925088143828464227221683965282635648428285148065569375150389959818775001979580756562277606122571604102097489336287113006252745748508684890749520286378178602269003157577682443890641137176542800438426156249515724437876397999827122614583181540869278704187255308968814792626642923781568418119451469502529957303040374359207444697701446308097636958387826574627044905049457823283096530960293880413285760653223760849488513527635281095085273527661864872847998383718799884599722914432697787255993657935216021353304170802669860728603214612811941331563345830103010881305383184986981379290408590233320141270926490133104835928590304213265368586829305777036752413178920187066993334179758424621659797838143708266290221174030837693791105683903611343502821021980460463670272518757824204246320467241039826780407028880511007433958410289676835904025731670182566878660457432207279744371345628611943317972374095240637964293795888703077272732387217774149153784638904149548692784805463432868548637839105171497510716087395871535732548246494798893101072248250972162049807170673767706186077721293211671896057928756328507658176366979673514326290056664541900744293345369372930694775233653758864963509590251720477161678555714239824716311463351398091245202140065630399296839235744494429131807782164979177934068380885323434131568111346092579359115645289190568467801509865919129619200276585563765485082664020650837984148351336185553741967608456564361301449389592105211190944887925668277831477387714421186583012716250834685266127395287313842272239609540264094656349428740130202037332768493764287980889212407361086811729626309845434932004236318018083695947517843836688328253824029059987366054195750940049019394891740002981233427804530775839980736905100048710488044922771936671099533648831641091392963899526922923684923839662427566171745746473900808894367460221179731395095501184078460340141279708287566005269579570139015212705305257122040694080717765926867667387394279321983712494355968002584515898643424735696950521678882526684441794134111694726604380380020840881519720485115660288181433823625718477110700248846168215169102457042782706073115517164037861125885763671768173189521248996011131779349161177954845450511210427527918528912708517961177381607270250033280117809880058925412057039345315118877578239799441055807160727461470629174662141608344936721431424522212597083356923304962673009343128014080888776659969067542125476156471046354104726483467437864075733857446877167173033688750135629345811294308793001790105955666273826052086980436639548776760875099354408771954238968276765019432691148461181349945642776491235979787296342662416913829633957684885683868940909573388870439575990842972923509523027579636292018090921936507551400417679154657057286539416185982213122717006050492008000112889073982785192227819465380602995547631364092189501915805940920173041662504425123023743163425505716791981946278879194743407610498876313080676149021057408785978662889260417350836821770663765033725015287287799948432805098726973417562933845654034080012966490436100929795613353721478024071312609425223890298528049862230844240886136929043235870943405541945498350703120960987657997642804008601486025492480578229465259406497359646826766348871781552596401669560018770876761861094410273726722955140269651065664650078220745682509121460529772769517387452023083473076242470335560247529889732918503695697969747300622348246521180594283709184129882872846551114961047660784365961551703085203751957012707277781444854776662786374307218869711247799490856393910452633762198727665423029249957379633320709928736696437052854023089707618792341230221793686706258013324367865612410462224797128944545590920423564781999642988740214868626506984360658465300243200033853830731462912330425940474445491475127531692031396866089044808717803593601633828029438459892677020968645726882636111035547462590624186762433931287023252904343804909681228653972475548740493411611272616064130459661353706828421225852289967156309438205976363991262417156961642818491350822090350810144116917473489098756860740681925616472816188957368165534767130003649779804969454669975474413446277368932001182523948664784200771895024101222944607113448517618590225432938279350425622919019226377204732781964126126255664169805157121206832485603868174499142649297582426995309261678138414904425087893349942969141950437728666077307748396183027754185117552269009412665670200210850234067947450859381836361478342273862595238797700338002396409043265873305376484634756429596333981772077389044688561032205379603038568600151047502733848919735898032826903268870899598366275539716020066499968759455994527022220698743059380753126007707096118496310984763086626069822429445216211569608943519632656438185976332676467348025845132302321121218150441584178781987930632490501569125081053580340003220746853760581803732614188897718375706099510533498592312731759103557627516945883771118915943504964491409863811637109156584185045352865745590727012669796234806645673728095830281712321179023766642302041729096911807312494275624274376973464816571932491199531034527719208348889793501377500927541611463224186252863673387045879192862786937322764103228122017492318410666314715371782587721864805014878969537165929619843758445294890493011500537987728522011543281086700059486335839163197244712236204181901089084591134619171774406762095480691796000633414073197657268062218083691243205813912824538233717345178364709352268715586070594552559421276160990441789891866326765480554155149090309280027138702860175956414533073412351783492404793401932056877739007454614277424829043809184969296102981220011724921034029889914580084479318949824869767770975284413221974869391970667508756553788863986437128163909027431733150293470734233876871547046600391411679122667568738426360944560368774833682616055451170704906978514467302747189433248049735026516882793834783775040928800944902713955991127890916759608080008942473314716265389167955826670375926365189555098030681004098616029343937859363071168646062702574380919478633040333600880010754476687234136529850131231238006354774957519866226313232828435942884798652533104237935881017939656203736280380215608249174736279983669460685840605120607584205256011929068228115265264946811950235878208620791997640586615098334348899002389712145894251308995861675623731210307046013666570666469019100126030583185432196139394224727659930624284378265236455662485043991776644817328726405996293134274237935733867188908606201649683858121019861818083278211610871688870476142009439970542445561558269029061529167396837043491159938901717187995824743529347350031713449325769231355328090475595396994492968230983754001678607764708056582310805073072231647570780719914631032169482197061786572741567760441552450986197020663856379342212344175987782060404034559424151711381363275008256927491749101026670872541593216839016571451685636107110553014782939746264048036234414998717412133745257365160491769378179370098196133588221685847871028390546565490908244953445598824362302417827713641927954167834924305855499025033671478224004162364269289758527015161809502874408350776942050909602423477140640321851425849412071143782270350096961495758623485364168130248822189500570745521649081054134813201174904366285728778003142016802028200699829954666144994631156667864179674484562737247757082679814027647570890352693002762831377157097336299116271795014219059172931183547579870976851473201203618799435069779413469193171149612680352742768871565488828673336305293051159459225782780138406069427967777139571781313578705433390132289159509825900189675586706773690319618905747347158029613731011841404254691242251011462310449248152703750449816044167269864497384211822457312555316060069599932150266551239452359402858782553145174840692298040596288263814504038937531743741199332486970879528459909240878916529735156504947881132693450904900042896000217421310157170427563052661493929008029615378596931331635357410818569571249125411124560157183362814038821240190769174288062979561684571040478226295154479096449326681651911656293194747546046269986871495990505204201139008181607094873287898632020141109483879374324716861902219752719902464496413606867699808246368583346583940033332701398829562545563060529431575282711898361927770776286562153382711530147089939498712060232439076804408358525359335396330920614116734669531308635445983585251574751401119117470207458510704016971893893451750712149843491672301130239939553697485870733018303699545478903238013891585178828095726564378740204592167221943526931191941864442101515948574389561167586996511524318496475826543544469629337579463412376263859317597325408816374328597316565574143226387369875260686843123768876407053585214238008581282646254486375372878481104987112049220912830200662024573084818314759385911939691004061307639530627362406405202293712820398865787677003428336868510107917183601739292071828868610847223355184687863198260663107500338062468892664011224519883404238768500775267598901012204935632974228679735388178286251144740329812929365417360395894188819337683352091971222849883497198409020299291552609997844813857365324147515227855061381454355720101977634386058672371436973151460829289581355154425813830243835587408138928028944611981227035286725744412762968262730609264879061091345833873844611721807473224068899746036324829353716538360982137362165374551824470877621464171095338455510310370516484656056117276494213029898543994034105823481387544833385681778861135045047028100061922004974350248256599165399657368208767406514083455198119355274314106780128940673783025920290101938978208723754152218986012296005301672174001167917019827395180814641633739291146182383393578959484100563066380029083478951100117078289928869411105434836262856921793591193091118321750120315247667151650473904588599794879087466499463665278540397875504567854281868229977889891426948885013357240726209924694799894640500058924736848918759083827969933411520781984442858747312130286325812956052296151046031349005425518011344642572354657494787105676892415502368583843568883080843474727920859540649024703008266852987579148003283992605081662727438946587899125142859998872977575856730583069507087603185461202178469754328206131434648885371554703917005774812590936817424677104477939167821199215438347216427776357664648772099262077650597161917333429848751588652059621829772471453736097560833240997046885887996468924869910927478088455893707722632453985678310394832604363360470386393023129207079009807139772494220403432876658413816059551625394294513376272895798412419973201418587991252535282626112942498794196566984163224380618728993237936708749363392191791025505715554042416559462656665914222012801731786985724885820461130961671526238746418735955459975046319348288839903524598968404089601171477512285470427671975133809646202567330188470855309602671121353102643887305216322643524025631516796337385579558843318093614412549511758035837223021185482913776363489338890825205531094936415899096631651648649418584957090510039590000061176961420392614642302023919088540243161476017494303915094251333512616875264393232126148133527084210749337627796958612889819692844555160549308355072243980223522047037511870238947015094486493153178386204165337168741746775574959301397659017582117223678402174205558028906072204611766553025067626233363825268887581067079250591118794649407227310724916942834220913092962710010922294564667925751523306190487003187111683956905876574431218993930943706787970157628615386656507051848607842933519469672339647776654871709079421702060741721441005006361469215321131747366644438875833105102230958259732395213934640407367512123739848375237897655053533791916002602424469408141403813724043503560996016594208482298760979853762451565437205117053584065350350667828905915704697466242853473304867301491931377952109526101400161001134738073102014240743851876852119744573841393946510096024135086634820681144387437732720136366246770392614260957481964180745325230425084556535279362794752517922902083372036064410196962002249064346899211209511792107274433258443804882294969996378929677119223365647670304371725772577531192888354819933040583261754454448477135634212875557703160077290074885239183981147157726207380597769809556850939056637019689208425036631910449800238032954031914284176043570918712449618819640615194468072898727786625784129304728000961097936254809962350153929399284575515846344659819467242552009914716156457109424272073214941416390827929373376338282343910687921308325972126724769861574008924514035407626175635799982967448203018840254450362193448389081699758640925149015460163670345963484083975495251762809640835612815034234718750400258793930597084504100377976013530537577553963476269300644677221352622339411845124711565425425491214088306470403334305042536622412393493658305278829019194708613725413264399457884714654256650559619764894442069284588909486489741595265403859817369270985666008012871054777716333123050618873083509884717581929703156117879612975565708258299514917103902595990137240238800770929403747368907459097513185274999028136871729020686388516518589121754512485925668196256023714632746241740883146877810022697949299781243019534720651280165489137835793285615330844121043856007432093795251592921624510904856096139683585390678365150488882766014295364835580308873506008534555498585905248233610884752163608677811951187831769192820586355123517860156393229568452697031596417371696618200332006901679541931256970622163385118131315377680412505362238146052796685418677538120219335774255931883459165596705615722566939372801962057333215506320767873725405453054195064786877697496220475917231492215283466177037421059228107481524541907742677384219343877095630826075983747050550303665910182862132144833568978433349748206674054444227444903148977009456103807247445817854517113081791133142959991853170185885446424209666354223630341771271589414576055767289389206598139530561565749264064956119822913203003295364274709986780540194923587971315852314349256512555195927886232816883726101391798924786938462770073738443224712266741879854756256802580680125688560287937840778920908282462953133085676831486060045508676609495129546245647345710483388840893680445132665530683589345132980670093049100744900965596972211287874936073933265228414333282948607168117434903493756439872656634683576064689850953338788493356501815758720637812848312653795494027192611879230698137604723569592332745417404524955338124974103850647522855666760325689743944485372760209775777325302980364271113659464374632787149944412458362303055499556612377310017388573030676639398484311730084998431117813813729628374706569908588133951214015828473161977912386503916010049647537454476839541894420689326076287806604340863336867578983961692950307772647010361148328376191742189052079373680658061666016920310664810928105570991871026463518557635206123444055258972850817905946203603931820697197160011541264814046152736622670358319940679249197217887749303003342230383410625561690187672190636660628906823354567383309671788473062070184751748470718757217694119401622489025913613691495287533075551128201034876740501783861221959790205876138347787115942879885809373234216453780007467895872699941374349691903662303723225927180708584740814719859879379187084221226332849949090763325995165053021041767621212693998240469040222329050028136189008723978992419463422039321050859743789485284628102917438478830601043341591360084630375439259138699267522863792468578009870635921894150782327679837407170721210915140126020114378964126755688124916305007433979185791414085545847439466803309368099385290460562233947709044888287162573767455828130182926822888711469959569641634250459863749833691241254794769713653965300016908774610874879636817816381308615329570187328755451804691396301056042018931011484472613940149458250199512083585454164845191810980109090191925733536700727192705754010859437803543612500345247161775823310478841845739137899182208555648040053481477617972188890369747096583345110334389235001909393376219991113297786796456226414780954879426245932749079036198841490985806034273028128823786706075943302687458657758556429421799807969099904780769065468340590242827863567740539420921289469015524139995613515980721909311117609367894974002688826473666777454795809234952942043664310020113396735586557738995925900360294189438130615773519604771687080445511680950362344614933812301703218814505367478561629971344099234029643825147197578156022628103486398242385014245455103637643493486782954273477847626550708398857829177568620181963864573974696124875977202222380411348693842240990405738358758874351178750245386664258426549406723559815110517334378220270703486865931095664575129254019471532175522871210584134920971907493107582845003775793704266245115549683764027640062508331717513257359057767340399629008850956511604369334927275200376533187452115249709711048915043663847173377365436404067118194248835591166792967101792017603085838925663147012275218693075558704544762627110264677968998442942559802641295019219084091461690590050156909050831522075246605501207627696649874622625412634249180799292908329628981358059598479496810398553406988860557562893152450902051996529413990624606237611737067342553668506501871271162961950215710760169209617837349770915183239434784063285378586692182013918817740132915986689067146048809030027681169170202390945185995902985775243911965758597849027299712430032302084276320445354416547167163908013429298109187076582414579840875561557030710061692058114206202469079195145275206692088323330718910819737779883432485256474358133769096857047383348852637999445062684774457547709563777841494532686101583532158846855654003888663243438315377376855760232301478973447246776803466743624529876100551464377365701754028538147327395754221183627036463404983307910626963916250393595005159375044433210799274560654324834948120995495967992892237384915854841227975051310359346280361339496655042459498243114565087263205977119665733456937044295776972592760878260150397137145198909740109995109904951248610093847443262039236376266891695526031471437602159726580830707379634314318570224535914391756199998876042233928761712178300481771849064620823621780857156051195513443519645044540253514550201421475794865951762660014848579014453388739581685908085443454197530029821067930404153082359454440333479646536730697917914604498225259108793119626902805079911978599484649820584581843144833732067650508301993799973916140189844766120634485742014900909466313044798899130582990467420621260186946788443873463876160271770831970785951327989820315201080351281014610099627790345668057367599350939785735850237221769976711001326722087265873634530743815157412054959895329292685180643551853121957915966897932603638510612214596333663473139287446698700853914984550680461089242928489851355102545916170408444624859980263613446914915087608173804020768517698150576988821768798243914498714846896553603314333439763120636446166869875092612301493327965832744837350465726756374364055999347506215991804050204080423132487318498898200326754530591230549039698746315129833097273176534849270066226542060195117025178088278968139049078303906579648930307781063884111476867767677321399684889990598878381158360320645415421953784611546860253611361463888660415607687417079781140651985160043518528324817740270217913025269546879752558842822193269238531448335590976854741150137440517488496762526239959149893272798760347293860432452687144531361833054397972812430938333044341360550994295442839050991959257636824377299897098204337574090907422194943694965491933314514350243905572589302547829786605201685495070663870620453669829226882760730478874696524222273392850220012501629762972531693228204798171079081961723861153919475106345994573432857720399586233739602197641289679665271988289413641512340396858567009412411739007623602779774926644851960634446636955553301237827216337252291306755633817203126761928539914049587372640205858183935146510714500239553124158727970938062263892426187079113534130920275704551793316785555417433289567828793916046849435975903655988232319883115758356867146628321473660155774680304161370397278212959370928197400301736221286564211906750048126123557515786388175856031783135850470495984862523892879911299325503494560736435982831277595521966853339204100864162487173963907009045860003594842509129962839919573309417443613443772412186515650526914494841363475312343405992081694294226127448533436137702900414277293524807084746974171114091592468781903819437538995967542937417965081072929628915394358806077837443940173788115913531314781262970515554956925884896997257760270385965361151586193541511501103760533923103664209973826639952344328777388240740917325423551740966877513561388645417297182454257481248885669485251465303366971718011037970912509994849917540953126472924819108243500214118984041769586679282519738688256905927846870439294775357638649023745318572167974867819715330541423219205452389380462976329556252668713071253421678014584045613136189335682748793745837189515033450978622653944614035067790721524621808643335142677506505273063479609747751618696977384512231887761590591003376126113880140392155746623682426824069275331110993273027932781935889932678398881429863063821109516301172557263848183511038234317624225488189795834198375047313714723505035244920438537995055821904588436870478310249085614096314024949090841797360654341067937879631511334808333718152072545498793825510876510789260696026149787759888293013890133078640821802090291388205173922063544271311062500880052951600018315955103027199372020471982659397510367628301702784258213812151212726262946016683913050181942346934722895226725082432287613403590992059767586329415529196822199539841396071133378471112465584071100048615268529101132332844387239455716355825355563852665331841482405356638428644094594733555290236738012880024269136377155396571499400248412246969515985024473997278625466356460747781807664216367832696833293997323720515914257579042872507110506705105570148822432028233106532627879071761626058293387054355587950362048932262357208007317956284668867624695134384107464480647059756308828484488974335111820811425824182292852101868513560204836817671965592412715434270704664509768212209065888399027126761730575077190624647134615373644755891562716360496440090036081317779371145914471742348310175882793322927851679976413914415699178112449695435978274676620525360924171107757697898942888307908759641275148532728509184892130109119627082888612280046696984391945368669935558910127943508011758898209910088728264379963458591598741261619230578576849577286634790100104125033663341109188295125910996144842958977121662888459783746788721823492270843955299534653829166300844506844203731599925581688264520835670039599457627973227015031772871122581765780133916732558237169996640602708796014425397597606731145944844284558161940264910768165548913472423633498625808045208411127873082306726086979537576469439061683991047641839294718547427071816646503144095690278062924281039058557430380767182106020473407736198726919765990673791782486348297776528528236232291926931221344640749957966135776071251313218412758401501458589277966977098208621757985143110245117385166424083065292382097338518857615410023168880196636695779364063152652978428818549415975322168675724479311015890754288791438426864111520671459881327024100758226180778488209974606483340307978041724141770222933053020868493998047125397836076327653402054611808594388079285886863667136375847696427929059326097061939466715524474510499088253705011288709379022662696314447722270585215500264123264522889387614791959968593982148938914188313219913226502671528973284528568752769299009001851461289402057439109609165578692456050625287902030918941866537676077848386801987134257890781824233065964359423157599902678522666558099692700181474666194545217924359129063023681961619828760610428746677019190661874218999727763500656898820812281598612041287747864226257275352161798803634546417842508310962568201428921852815847435197271478822669262463227545473541791074445136252073877385553797516963818601065750078406193507540969194369004630298569788983580545104755654736338617073640245191426144376746901776529928033637142400902306005773868953136229942998042327921683135271205720060120074336862642023060946578249126873651191271814545252775052604396825107734792739163278759658923561668193875471640222783149369974800967929758981456327208763818175966075873991795226989786453022536858963672028796166561363273649558643853924507769199848157129854148961556578289454477283843221902736044894024165300106711897166462429539115035101501873410873280607576647582586585838902262413897322072909356935512607405114043971099109564320440993909986951107695914126617582530187939633525034934120157316485202997229351879299397893387862655290577156837595576902633351947489489038748857199858751665543926852310989543037831699919242193394024251343405291515475457750354635650516491511474733956586623398644483670871910587279831182895118759463168640746581742840338349921232976307646251866862480032786213446075865310432003049516907391712741901875733923970219186289112249817285235401088781856312226047119304487041673825728230657845082963380079378059595908736591228117484487603263406199764565343426861235793012983382931347054842100650537606354626776598899627501842216929328678068137504336375368711876203347380410397685297149261289193172621582888036114421793689904045640276364718158717021137375554960812165058487342963476384459950077943489477013814846040725626735683685519496212177851327843626091911232840060796787504536139663769874760545026442000980835563736567978548448004400630807063892060892144844317791224611719859964847021946209974930782697773665729173516437905394191138559171225370768229502215580209548158132428469291239535789959702511141881149456562002483509130216874344364777004327999498343257532689655366813992296414915986563598857719944180028656658688251581361229650846146785015051167038795391280889947942540350630022735546927185088136487486269625155238034277449669203745996640154898175945151893258093805162768980758809938523924810126919905439264595118507653830310945014169987057764897350321343769525445368953491050947068110435605906437307102408574003094857143214380581095150106031870508704439463973074117015015488880713312307989752439790235285810287484698924068005132918399144430483957928830234907861448783850821484735379079394259789698576742101103867519081097648083598610070002402284475771197298718571991879550813505858909246170386503981633195837713723199928950399711776116535901013510097763879887780529670193650267509404464000845486144527358967707331220502176926604089467710029418206977003533548760736926046908359486106526175931563628767355338502442400680590753702272136446836954686556877835906469214510988873756820452635600903770270335784468751726162554344632431644246992176283131410474124313528802898730430883333853940615498988331658581739301610666757258716507111968459093797123572493917357438098427333987036502538960781011874649190596080966731455314063605478365452918446089886122053144979430066986318674796275554894048530316783507086240295747765661576953422659499742701471682698967169642664636394073660768044544062836895699638146551115426757761355966528884439952911350262666699382948901653158516889446165930979882386273909145482893687492948177703311932879224073775343684677136112946605987320656718533929774217910086020031566368361751575282574706844300313630136731696442579567112022279879645510054150774064473777623018618349776524043929354514322496658390994724850649436269978828809296014817019329341229164066695421483952894471098267069846850059090699734932662727623587085432130775135164252152270614759475770415364812710325537629955043039178764953811559854135544601235939164592178569573702668832802488141950294399800396481829958456432723646322412268976216089462862286765974584741084819046931925156415527328296546360056204044576815723865113956163269990045875427857184519063100179175874557746457968678199883705905644438224612548439486536171158026438279477712140683641636267741309293045811554585049499676690362978108404412239626870182015545831380951544955134373368616445078432527262211070622552587366445452983875221823817411210713336773253984891259774046603881360091222805338627826802446107385506332467248880779305045569230316714835355841248103202314254672660919153322520922410797173115670751444531014402001831974017168115965189490511535545834995570378593227496362888171551877803538143374576760023820039258252060128666883608585310022783607067487932998244035537180518003536532803262981235021526362203650667951354807213560195936815769471815716707034542965423702046420676893753179172934772680591174366034236399887796724500580371846080921747034169835840990561760030033439545254243931823029711256486196887296327345768234943655168917665900285610634220286926761671419770545274791858179682731577828501527131592552367942720521822235779154426727306754199642723798709809624343409018196396784636491312893689673951891472868594019259105675966898296831518179729074529652846399807623154682229796851652405176680052092960762252334710769792683689623384523384901959608475820762296191476523996576046987399483647345641959508697661265962946053575887099607437670209737227246319944200742287915180586704583012700719092320074873424841502373440826780901626427868045660676570213637753027920214445321655165259577644947553433303686544571860507986313756787911028600986540746283339531243482254144270594895638384639024690401955473902958992063341401636901768917453627869353470043652437574722651859424000877905715148048619960788440596971561116157505913262818227242922434729767797104080770270833964025880001154595886833743009471277582441040556353416642192381474015416831264544653942154871057364064936704533060485128987217996803448693340109556405577730426766028787800374806471809162299329612698124490778231658040183272948049848081074521635158264298674888903655179819256993485319733898504821921475700365461399367871127850028247468908070160260355194582488826671911912640554631865632316680198454558646306049694513193993972922407998881796920481542195870987995836565679564473786305565687985717516632343372756986533183926603545997664990301388348186231692338778889434080895582896696205675925377447343195874054019560657162823790076739237044091343519975393453037972628425612384245344826674083262907960420032208041481654483837260627414807207629091113666856019297522752600798329156285031929610765643593678181900437214286257898747372884254242507272657566014426284237796851779281852417193793595060487146036010087652473797977090855542273278225786792396149515406376379078561952251387082603100948372187320793253447705328761113085910017318061068773809161558899934426407492764186386768784280401552333149192525801222780127503591094999947317164514859219833490542778984779295194999563697670454385717734539856166142953016218716311541725345707210998703036746261245225683498558716672901324237223073754608766289017894735915742760034071958992191202328834424671793305534488249949846821956871470959435370396014748630612969510344101319167365876635023718070794520947000727453204990580241530741748760879150433102381701069635855168502326383970923665901583885405375398005308779246451138486115364958708131320001009147746030101690816260979878452969933785460160470957095767902785939231905189832302569910895844171325252478565689641169960478101744037735554739022793990782812364590502822947509673629322003632417388780074201967864727447778662305586091581723745908792194051524804650965906439240746260324670283618669977464897869346264517005321951842660531475696136409759534734315653047063134601546480429410880315676771766605918710628479481235322525601947753250888499020581220504571910291683616540493110651067886380095608907235220289780017199718696930522377688893606779618874277635103472728956476798894468596096848242103076419505135098337412822011142978782692127577614972098007180506620163454620633087096990858450853275860096182267630984807518894365198848721428346140049504737915426959668460445034412510970943149353783014655895040348695705922923124994885658324247344361032238485312091832078307894889890997870445808308689447741852569255915549935405751445445234247666457259113288613035069532520856482111448609562988882526026646914801279544745604232253968800858249912802205031650556509840443163205492774791915516274308828135473551626216317522337295116316158827579571698447005248285505101258181683396062471748659941781993858895507911593293804863961665602698926712375426501518517734225706425016957974185862530587491091966620938747498923679702620580328001647132921059091878952592034300084683556379520583039620588379270687738021337331827589583473191613889010053616579282454295973668699264407405671236496869166920907170286977616879693873839163081846899288377365965647382198136219705285996956879145811842221561343197354871664611571670503830346591454651248627299179559789481332590609859047597917487476789952936821329772769493025605880906832942322809274916383770757082125716637293106964485405292525288136404499784588584847237557853845697463777799311805110382499873835788469447067823885651273433479596153598546586039647811219104027416388026747753765150896350015054969080697196157016633117069251998017308302416751545492585511936748880811759617643501775579811072795037445330830454122178223766009252124379553906674581876797479301757305136865441033346904301195083117915550921457324400909569673581723392800633942162245711965275966389403167388323146601983786801967774601183629848031463344371228077084041892820829493746869862504872062663036664624183400550734374712890421727259114373615572995056186710819226074079040855662722904602274396531502924868968579473252974561302777381670589880711738877749005093814305537921686124685832169281500597670923600811008187153294304838890517811362779725167652045163964445473186812910650091306067564808226905208244536907199939425914990150851463448491132903828671617885923736956551463346896699065517269379140589072151534736597412296607985596217086433929303437160779391251098025299089155801448575602481330895551699536468620291944116177969376309545084744628272404823182509008290868544076808243261787924622034138551058190309660764854593990312848681551322058084770016953256018791045777598919102215084661264022361902061395182985031059860309014861078431361456524979526986582791234012654638484145967797493654443415062770718629504171507085517408291004479545910186817374512653850921157000945817533536256400942593860049368154479788540249966563370466000510114649969935146669391767728642370967645415490122117191917896732799460933401275306048111305589888619573497906610225215590025344928739811034919526841710434842734988511851528917399229747090667075972623668177024597877148091569808184507881692246921589545214183233899233879037495733654439714963731693926153867362766660420360060200696364300887441005607220156316958621188410897836860561432060765307863382331865441365992605455423570586365502422814602545340249703782933880135483074966668660809632823316442257166884062567780079332007860123421231269899550786494742807711873210966038634360314187152172325850811237177532203836442220497574813714584304193061593765053471777520139799722893803981844776762239534816960392599616360187048324034637613481977602538677157179601785645529067517210491943798453416558541339043243837467111681730655855587099654204892315270865430162283187959830277803156046441158586599031266296163849423974627272905856404778087166727131745657027141652941584077443975233462479166129181853690712631372067983536145052356136687194067746401159068557867250399377514860572380406071562200386717033026417410425348151622836645286575817773824481754567847997808929099019170865220310000851353427030088382527349561027835305556386598610108977490729834588868478971639139461056908172300933075848221286203530678374635811651924373444424831085474180994624495845871531198215860622399183673413911662204166379371084930156380867396622499568075496233477049914825758048552214492418092680411406566730461999357887201604497822717780498511165337778150466657697005260826228169086996468932888174448590210640974566934142876910606993353422950041799127778669201605814631336851799930527075169102305025737404472452728769501033055616997440242723307819763474755868988603630066390843454248341710870997480745998084147046972798338621322936531029900640536766954279565241647449622025586640242163261961290733963128653302009055039831364396429797637610432960599646854340810543050151785765152970920531148386307231433629342148987219901706325202608630727275327305204977875448201042406034852162278257604367440836824915404332934463978312105295648694262356970254219348194254042629349683376318143328459487058678551568030254671885325434542184781848820566038701451334030423043229416753438559681483595376531767578896504232230176876166130476379160622537887464366332355522225225238882935244053515175264043527312081495747047885942926142208450634675606636739226692001833124163961848048993460385806305944519970257455726720315621527312776239785065745891003082734420865277556681016872580061395597409470547929854703955897608040987138395252125509053274552131004785929869909837579302453948551696548036504552568258335679298372317915612604392114913129544401402572471336725160429299158856834302691901437615511536939487157585836808937981873158595921007037398511670555686605319760814846085916308181530857369026394793287159682343629341319264748677163479044452976766884993611674190662989319580019401712136967321945876654311864620470802668487136409251251095974903534849475237077861873743146215449746156222165424829728488322588964189987313788944438405163163132598410758145062400119979039073885887106201238928727004639975965666398666305580952971147794558109391649745419420054996200389187657813674741765765775259858152910978806496559296922271927050020380684307279207720180311402135392087474522308223818789271672986995811892245407798957658688605123408714386086299864246189535700405692252755403138084090521384878208664612186831903252736699038898540617102405155115577027311435857930413028998698481551314789503718015213287249420581860377805665728627233099763436017771974397881282918545465027750943425061218825106367924129320313980513479407476464896518209528129215543200774764785483826080837459462479310918022079124447609272843101207389485742000982455096839254311174094888241034181570634303065533702337259934080701787072322735912119621091342599618397320044502182105544470022142259869493069564343612945846835344347623619742619215702395457343372527920579151996918526445626759810973844700656144531694514087717396248337915903117071942617326121197975008995520874182523629649432453067602832677423878381655222223860534792247287550572090751479375111186840207560340439753689603831603555356067594470186523756772563891099608163339139925732862390330520040580967422314956538338938090044852467270689193017256496030934029919509259848583009588666166614672420919690030412319984106838692265660489910730824430554502525223565242748084930372526682049314245618042514987118925107127142866902911299087862158673476929576759528099380243325701386993126139269888966943650424752061216490394289489532389149559989228245979792218762171457232752624028617071025475736695984475495375099025932567025512529301888728253417493084006563956998276244824759706201121386494565210211557586558209241913837880055438568920723634462266892978899450127939240576171089490594812882618473218527824889268315760985664063757204655099539776839677592070414951895070834538386009781391153856635583790498030112025722641211631774117597166584785752162180696233060653150017823754517652225149636950010640671793127539015091066791013839910848646542075025581622730635132386380030512758699379276237050871897470890087706070942002830248454778076919938557601620236182936235590323741722061510915364446651723452341685765943686802592911828622016947015592632474127831022540427530886734369964903847573247578854069031912916101618381969063765112063043624418654922268498484273732162241233969842005342695195674243818729203207990680187898193491681274018495328315831075722060489918708861184000324145176885541646632128530056312163542103647992666215923003124389912203205238988794235754440548546147902361011658275092808579722382165154710253677572675661851567236608143788999728652158170031841544191312956968511044136181129964046658624018273009134807749991592306587593482562697454521472591120656848055050374563140642174416438425676775301071390750738093841631071035511966056186954677141002483144933419781038798100081136687270232431484695512743124481752053578019294378192451070766211654230473562407111345324262806119192989450322597963580735703571809093253286666234664432487811421503712506854864403991666297176201073699812411171073773055413350682122425386865843920889078733095365351052348083951627412064041184017499122363375391125016248411236467508146233917346890046610401227510401825944835789529855887291237055786066378346705984947283907951122147745406397162972734393823779625440333332775872189527655144157994571067325983993801196789304699234263392664384733552752625363467259962140496507745773750262732690730730929297910843777504738763124321774299931185973672489634994496276384995050353139457719494223953810282071563620622350567246062577761426278278322721367068648268017604619013799275113963998645606389216828798574881428538127570213761478693859929445407241702471607767130838446941757527359105510651672428223092591239784684187702586770307909271335138271548061999737574406879905667206234667163003769714676094356702287364704705236691321712253377809890240409315666851985478296906173302747149705176919416157881200776517973906219530897033323834000500885109745196199548578616721044586239799440096833196347268383083060788575468330574298377943125049010006351831335063461353179547386819422558142722974826113432752380313585184112118185497894215897585765205746695987317997837515159597303353528696785880712714586525910007921206588955357274068133011255475967663874765608899806091200582897934793994322836151417415041388321210938406944997937756137283054658189663534965340134044593704358582203806715198578844816314037451107777615384198074096398527529363623454002988082788502124313457192356537884550466071947417163155025082022087405236808353097000495286384921806817630604754181703433259744394594353302668785775425779839948096793155327496829354269020358853650086241864942160907428483499924270481122154317650689902530434043223303268536971800324966631255419209432092339522171454659858469553330407315521210521745056411879099881309760916220096202932112935009524305510085250442957143008067800343356316091398350382939173351783296819051790206215746034045772772688852948756356314070583655879093436147627426136960858270438189161487769747803831102668842899504184243628120102387161236164179159441137339959069594178726362557358295136756493254815671651223829211997194739037422172994720348979042868641856822706390925869583661115975173034706209103256084601925663804676381053447466964349707737876228645535487363241998684197488168399560090853946155020703226197948641073512165114170020278472393359777239571382961758502751244893884998761449876993387582335923260886691364302130194908521633239856177984560987698949541769952614135407519962598494373732883796685168004506729935710153786171846011702779985474450611633864639581655044541513440628728731716667560005852666677656599771297681192390535826738783278741241841536926512248484503930324638290198201625856156542268557083548226820101571433451625916749065249391609254826516768735147838801604624440162021220654857080240497148852533626112173816407601102176068133220382493378621610917286913566601252513616765572545296320476433377820159748084412135959897636243190537640153610752079098457125732945176046217921380665749149725026769240663543694875990334460703990078323157687347351851306895278664308064235192032974907840553698479379301902542182060407153262889070511268553800526249100600337071270379197208630811464901371281869092273424416612329703549143718634552497413644217422243287897985797023016725250608989832383506201275180383512844193727283383149308935760132899760969945420814502927316339831536716390855684281186157356694715698994225539622226308391186651999396406897331230431587889741604603246544297189782059780370095670707218175603090414796844101002578204452778476750342176634889577885985596482369797346683437508161539030321425791024293487360069350013257814882790557815562774320621053977530804049339741675759001017749478825929478091432024000838543877459178631439892714550749022886732387984245893123550342306214221677045481461648648770555482082894301805501734510110433990251242843070656243482183797627616654555586861120004423715163521694191664510216953507408810161450911241848110004695639924559309857357264481416471160518042466234561249133447218275092802693312377395786814561376993976869544280204566853147974468778403467507909922532936853823445125353970488516437639165431845107163041294662215857867754223169586805430243723725874247664861821096220966378553218584391535366688034496265672070863907730411941337351815182127873768008859282885064397123552633573593774636808819368803242882407751341821078347124103976126974715207661289824648128779392759171852347281756167973090159462774500172944760359912452805843260992437280650052332638960765771599101370761560181141707867662280031537522702862946373298804650945265964468973492041708095786363453578623294193187656177594650843045466250550527853506302221904819190793526051281930124315074560865539035509477731886372790724346318849431735498270866633402108429999253408458538966282402891804048091380425026870254020199578164527153879760884512715499731583504716560838983908409942715630396358694287323315108153827589292663695271528646943552784957574536367925405870506955124159580852379784940021091004316169706360083464849484392412927878270458252467484456685758526308480764615302052692244621548936465746266080980765940639239570362485937904296645819063882467636306614817507421334835028345496651350721244616143624974118961853740431913121469984260258038165670064918949634601765817053293474272313672851067506546120782625509009129237979007166666173067447178823657034275039979018470849214687659303250120937663108073085628783969960812328433751839958319932663769842662163957710799021767470141356024233832206977623917860828762222520225412717242501078999654901084663438309229465766039337207841626914683989955008844267729248573731634449505601514283519872790350962923897778085250419721037422583245497346725785911253269365705965372441315284548564199439073564534547991831465392722486321026564663677479576859585224030126613689905861700092873820036855085223666551049559127240496775659875606837714650668424018034410124506424602977497145275345623991423747391784073268667422112548205997557767091497541868959367211686801907517233258384113025813504511176894553234698307075149410558539289044832809215768754664948556573091226592281266979315461552696122575340364607432945931907371677378776809051972390728338941267995246774932426839450977163030288527075193631320338805109879237986609145564664606005343786102041458893455481280801961135038540746225420573313575446208155673411738664521126018886527326350006520877834367907245938789161446009663777029235151278495318771350463029900037696048237485844819669742608132881125677579976996016710280617816593124933483699972356090354636361346821975409978670285422077485059677869529873095527271557122941257912240042877875806125007455849630453856835248467937777680752006074396096942221704475849546943369948363480914627701243940417546382589354121309455745686711394200378199676464696106221241953952815437560855862576573131419549340447880910136262096055004490327951832830755034612250040105339672786887861360250976333838985881468498176032611313173490886903809603405438373736057908187016971145690935759353776135107982387014550687424562261300195158064151874608963247646542457518024951434616979464299581068604730485618090013308968893409272826987990584551279548276235240339191324088992279029917396016597642432766543401874021973603268189901294144738245355158646570530712273682983703002037447861527820510626812655985890271090048729901706396958136137704965802509962787230100863375982483454352931643581045652118544601207233209041541467817748928998791275528385445576443781491598088574809126938606886846785529667220406478335776062184461371772388770407530741846193811138024060008730834751072815289605233540442385872806093680023503104509208733248908141034490880484622965248721220240729754199591503535063620069458103763653993940701497568471309567922094081048866779567706616981183858193032067662670451452075432271716081629819071645480936220318775928733936015208717116526601849166654351956480275690041902822233126386864282670004265600231844230328014121960423029065829711879219648389280387946856330678598595532770425939265910063117494708295969263627081597349171632988921096823804752484536637090285712444533294395190405935181177726799507275110696531957439096776097222829217678289275226287469354738776013716096016590041815373646268029028288251226321283895368297702963868870625936473204812634025907723805396858133112770181816921862036069664404172431194494840033677590026303251578232185414538601311239233910298773520496426802279921339883674281463324239303136219726552080595080739662788005915313914421523964101969770211258839640742508679478481957726681928249990798268596272452020090509555790233169531925329489675280152241354291540331846480325261009289079408414773089417411830561692789626089528472115885817038549789526888183916650083274533590153215985418382356018096516738751458285593316975823315002392538459014585528124763119897469489252034832707454566964826594644704682732747372871247150192111091485169334803697229410337666311943380014974795871880524322714500051150147602421326017493426589832959703541023788965969651208243364764907900746873000269317144897042746388187210297719673731976051646757031883364221482980617388064467215463866906085003940591933869586917369747977198907583024065214996839423899026170447337558928383135741040120628915246697438704296289516808303783786863446785788658200936680888711048003026943451996478620604755230817379661286971235271739379976780721844855632005809489025844272148007238661423758036071000037235538582797728006307933001540507235648649360614329931503329717144201482814065721023122027940196317828377373924885902598578827911170719764210278422081933932854984989532375806186415852924863830320791387546156125609704604384821878463715280205589705925907488718793202723109162409631952161047932361941645704583558715587970891408538864208340026470411569401923370717232882107422841358948609700498193709916531764429745424996526577168670988102932372184581734186275671006704283829343341085947230712346153138225538658851011951877283673358899546212566238818900800154704373872700365575460152698695819763332682526619280194499230733225741330910206689530948402161265804083368159886289431869647001558788060326303470280032705208552074169180303668925912863792660825591719155809501380020667589412348531151047660284287736618464572151953199155692906888995796973145061062381906083105388807544628688331120146403835843364916525203520436545052896276712806697790334015074675448010107128826195843899319346898323075761775701606639168943228558024622609131255968965976707664943203555410261891706081684025628818397723385236852925238655387427874015723574088607615671220136443646108707915441322873563668622696208588912950915309181891625621649663661481885368683064157888695372346467003088673785755393103234149869222214339790822365427596325120954194987787840790287937052599138809180714896289187376735601875818739377918734409444902120264556678741980342154775982533066238090213500152474260580546968505274974033874678627488522670080170984068336278500355285537274047033207249294583297657127815261523736499703603189140677460060077980721475401495239798384437497189565455665513147088264409521047837158978978499098850645997192636879584022745106833295775503378014669558619565776553612221201831435091768999034007576104536806218186117624885990410715557901560219873497221643747736378519349100296929619079136537521713690085087701614326018819307074520522229028757269688245416277683179275156084816297783539280483888112442731287541319132536265670662509194399231541337911480437645143715974798660578915306008321639555047334164135612595167087776035680739187568079955859905803737363610174495485298771312147133969515823121721756325144176327600152019887591292983652244582561395848466848710624513031107367058339250628217344302569853208647930491574516553501131063166804715503144432945792788531853529108360455971016880967018510523675522092309044050102127761107022384581370219061585836551349870552955599063810769255082539598506240502694869059674479827710401503267415613079946773013162385268666529248428763564647298640944403890358686349602974203167176822723225262893406307364697115948511768190173064399027586331148155015663223903633359936097135647672836993624584136520560572049505753341529249733023398019055601548765646388929906265655889782153825773597497092002920617986252636090806346167141877063979903392407105971789693503553744304682844268867711852622575914489013065720381982965579594151174693313987928550598334330475855152030502791029053526217484576369824207271216241830117549677475589180716541902040147556644868927884309791839422715167172134843435028643817568532122991901740462144049013475811771091274735131313423362950900726160527219994884125468073406201973803888079863531721314323591426036570276564684646322283616772691074923908423532992201514060342865367830508724367303826023502824352055232328460890256223200970057234897818402601147302428349573894784257488428627975029169608482316964345168397512701752894160598896544898872573729608650740038968070108600145698526653135935746606271827314000952315745498494410158139278717859852701758568530697524818893088203506715040588044087496785069910544418028533235918525887825079348891662539966980164048272984651320961559811639682493279502893136420236340134438254937286106893631612653393021694649004182758590377746184706768028649809768469122512773965863197910238875436993947446343453709081264134655837984447268322483350581793442315179252498410086482704984632714536050633904057248592495215750577766059660930792314717941487732649459749483102065954607560611422593635602656957167572561300752799306276697981161850982500199285725999239171629251610271652987496979190677678262168949803731624928980876912129993229813916656370993047146203838566150822177903086244883921282866233345352180922638746402030869959977402128440366503277580951088438948072566500968221311454913949187850023560724118238150365963605466348385897529153476223952899881234547069468201094974076270923829137224728255475641705838250941078633335054980740115149287446836236912658447293205381180325582752157185660676007273465041032258676021587545860421442516832116534392669880923062020034408142742793278267814217453241640449437630552805735187231082524230082324787121351708112548434108118176718544792805294769163706703975417915074463653056285554900616452225692848839485315486585269855973234389085659534716802990205622198822789327605584203618861969967808498567138621063680374027396167847157481791651195792482508962857351310266399002801607838708473331536107105739236745691769691809947854048937555877511524641424277673382716232110871167196743891451356932336720576201798096119655673344259586744192660161969751759876020683354394583988831252926901246264671381196606868243139935723460636209599886338537230530088024935263923919186764581957567839934591617584102817707530428198595782305875242292964602533422517309162263285855623163712921083518392739165913957126399603664746179356252245182881728389162264826805918068488716443250645845592427492584771570044692680020859076956223383174458536440157739683658926961442405889634274068165060815561829036762393651356033613069910505009763882515608576319901718056368526639002370431345769122263618463987479510411372659709086397452738301756720685972970261158992756900476571099272040654425862850407487794703560513060462858229724200472289925040134329911929405402545343862263160308774332022093889418926955628080571670379671666707277931379454270174145803538777305775705105950019482437862828823407344338570157766909871881558536615546756593576948372005628459867062315213014763799291269226925920304875707666362887769497372809933799469967298163947584388271744936171173397821240486935937790440200485286174609467616629565230660738761111497402982256283629093614711638938186695945017631833389751733855732166100055985088069577440663181714992144452663130223499938467260476776853670336019475015620347548765577768561144622916024272653891387912275858870610401545647086802590092653895570052138614326817598305557861827880083439447844787178391758828872396882458572440778289323739496747447717938286003646049728740433154895076436808026966551252827868190443917121285750570388854424408481245102079066596936698944415137309737277336274073396340198691133705704275292859596732533229745685052976101682225739465345210545821755078411268291719724924887817527357559462604335714903081436237458271504619951281391304058153628895427582344002457923918886980507232786595334607075008261620347609979829912841152906161961789568347651716716303373428665340775193117671467709989815711538702943505233739630792314716048134457464903385154981636003552634480654055150090494623870806494783137334986811724824051650682805440703286586332427065051229601179208066833775490527450379561226287113517861479931779077704944236800807573732725295195859751522691742137341233413786100032660568004255590299236671076386818681791548172363764336142812577941356705863893671242272379067887990899895285023603337928583881900207077062127032923171459379765767794610175734882790141830100854291477135605992266529075597391378211848348691386055361604321846881978786775828401400273713588120113063556249723587662289138220021261575111110749878567142264490266867559918072693512333372253946694869489023537455190076910649801346793003698136955682043041694273018716559719380424001551782747829256767012029073639693220312099924248131094455213066034791752511930757603809940607927863533945425814624600440939970009102052725403455453229011910865982480600529744710735609279806336950527492973223408614681133075645302165701561370107816691751046397699532057827245084214824866592766728890101972821747143259957878192818237602596277961238516148663501733181587682909903772192931756843847922864689872087480209580684524572312389408829114106496350805135731648183763490547129584974722063061962381120216183506417914625508685699948632928343491878513155412680034498422009208017859290004956591655638986512480872083237112403377925359836254315579127235200896808782697435313598678945797976166010652597136352523772219888366323160785295882042263399533407206771541871744428807102986786697251262148717969920038939165311430905932498493616589604229918613910562813146688844522019774707567976237565124790338861203772275923085004813399907722554076595426761285930995332013165192132016162392256352972685141034851544599592863620762178781060082358463377288954588032383666135698937856511479855729387687455570952156125045260655992276628396906833928222239348654274099595244141081114965110523404968407375178194601974623600586332652919616917417166235152145234180739131007980690603640850283583630611383207594795879535415611036209473188654760102025835509837297117112673034589663863562018500368227153889309695784156571402181600943283745381321648541422352940310561460085223835848990143342167081491893610769009170654767006193019658671833408047105896993239062219009294864436735565952876027895328149896227461365456463078998854730720153960392679976849236260613795808931071130465265969925041024127855806841997781311065065795033457851104100146880188277809808023772351577125704158944528664178509598767244473732603550404807345816088332133429756893126550695063655145856240478236094170030252190790066121971564995849693298407851571027138592805291968048698467822917911530386342582243621725099989227215791746500648131909257535933896405136228427352809825700827754802198212895867875325564395735320069100817999954747914170957643646483007940340045914200781936347780543442218955274731923022220516906202566379926936479791261546719602952543253595659777135272735881187664267721247551175628433408825743472317708460841744164615128810175347942573477670325233833951589181670916550207452692359082048562154708227241223902996817351627718457689404120130905641667690453064932053821335070026885554087065297693358175235950395425395781372884782511394777404012685344329187898997439666276587014972112865629245290135397899815450542526319541981415891898826984615161250738169378689311854572376247559406449468151473171721783772443112240815396411115582870618819387931212299227036779804676664684657248673462097944847347336518801294238353424094916940921288057939996872999210932085237299700846788738117486847491640459522817288211458047772232126522093505162560593612290574168777981900096529572555257182577235292165378980246204193729220190954883256851240315822277958357572681854453064688959612181157248963436551052650900285686149006126615123974924554694630176356429068844073294119233209890496198023103167332130397691261837539546185536237532846170902457080435807323995354867064413428763418659300947433770812822815892764263488544819460219729742791964346261007307225332158537181870317705566502646407087861338679106707524329404465929191356081373246709329246306047387007894282170186140190319238494677948387286667619451988225439455803843633558886673988370223974487908067114056872460857412294512655276081782698334187789540579966883748339911410520048081279334526617919985559659112173287139931255720195002216927467815935365792173486814780555533052090779250709889213760778933366206450255519947007490503996841677616707717866043799732396555535932397341488335853125003230075191274598756314028485124736931332842819382649953769667128726193228619335194802822010685928997310506554851967071358214916761337836541039807418662047343383475091908359131950046313849457570421602389218762774069636918780911123388691682091082185314671016032080697591923754262504181490491865793404887999547851618331158117344801133121979803356878004820137149202593452368331282826284816584004595803112398427141904448504471900652409538603787338359031325884707860769498255758345643198810702619546760059455031317947408657692047780764589421030015294116232345480134973090845824409100840971541463908010173263073421071713870772753964565263807047681284823317723900987100335143786762441531062716073181260555606368434392958532604438001842469179602854947901436567157378231250640724350738223155685802197296266002979108195685871580516302020366585885835487442735811680928195127749512699997820317049500524340375413150833530837583935356449189653835943218076927309445507922951482083084540780173426393695111447258174324312196535134344743927588760856595273487797977735727052436529624013274592866687805991584648887746084165029633873765064059088769018959595141190827734412217847404583375762776609091328710548259633148194589684706538752135210968319296430552841565368020256109068766844205185044004042744153208275815419733621438654084592936643373140616406535013891489839385252361124111478492370358142202904176236285784774381024036006182214273759959040388775067476825643368811157277518472185676405987906555517216046583120082739992947534432258109992584611748459116430467237358617378080307517894303241877359651611401747033044279407143396706458316994917758306450578509537377781657349512674822882794813622270118410063238730267137917162036271969142815955783626389789343862261234767272439325187145831348359350165831744832140138547088844532246090772583629088225608579670992049337478423165009201203947803883560768083686681761878912004551850994045475741517234165469813328646674051634506550911682633643800576856071854295221089021955506236378821641465554863098210143130378025919087246040112757690413588472865630097304871398169227193334516266531646355549749196051048054984105115343700539830892580056715265853150971387906736235140027225211644643112518533066120416843479616019609456578108072565045423703805087426525238929279933442319442028762507287989035142993537556859405243355946617761194053053232354232665993919617037800786404996705158334382288579993009313203004568308052899755441191074413056198903086948326713016719707390315148537785458989729535979890258740782174095775897467270690945203009563545756989301162881925682818183661568969336072689163082593763547545365958313044754892260253462915425688020354497147429528080673913495665207630437406813373233915036343274546286105903054196160151309656750373189711548694405552140784148155912129955172631689154403054792165115877212891321296901650091989545660586306373797217856756390826031867723361425668062082062623445248874059782258783266770346152872312199383371711682829282939270621310861812250554329573674787320115594627849025051621191528566175312186314989713035571488017937582508025167619435655859255650096551787825384384730533273607161824946401142959026118369910904414936255574000548550876666124523796887013927943733605174165596237783162902666785796937383385413968820714611631419195814877256495424118066944251509617480370788160505394919796117706217609521561220815494410809633821334020533313785351273971233665345815010589644093003876884197853357398355340188885250578382568891405381879671944819628856451358405425261493462152893933277950570820733670893213180232722732877301557816700491756633120342175766599233148495475924901656469624394560443181896135465634860198874214805654736542706461490891012605458039581616342169957103653948326474774035480560261888422326432380166860938796202799156016713421001861461336218808368615684604802402771674107955226822594406210812479576420024256092548540078467583860396952551043164322502653309765578786493184424656007889567639300024865099263510235970388373571848708365169262840822207662480675119443160564965404655068067472594783130996640649739983403279298639414358254187089041744814413789600301664558064062452563251575614162737714389933005860186755249175174492639315299177809575199756580663142627833711879984892929108126873619872652136956329763057204106038380890543854876395911566760803032122717299024700880149336076579758425981652802988700777794293727260449887809895189304854391377242367987897159132706363724238953033169224625691818666522297102394759379040179437613786852244603321494906497776816652846144762709093985765212218295949226712564377487061969014964548330475855515679606284548241657247212326868236933375499284415234686121379066898026173660104509080745066085241855437802305791867124095110107420845192274481509377446391792099379711562319273311983362399782373601663001277903220458834891820294029464297875263807462433605765235280662928180529353872566593344952706092640317172822734313034680300466478542138773551750707349558389635290246074660123586552050983200201077003912321455268878410887065443743421466043728168257292639001341720990337421428243179863311886936804849901785064287148065335549312882009076422431916259327693996670347833756048891344736492035942094752276706428285907327047072014542611776789597143365070293458862735877092372522351967587385691996199704913343183030812279957668298131830746602335860195412832362689050252940378754603019629322222570211871765962943953110317953126452909276539490805455954147989538912097722828372703303688417087798916728880327407452763130402484426661720812220265633422169218508219328904932319692386975830064940177095445103054019954910963941357922874134152428488363051298849114121548292912754640780691129510330267780707903638360775335120451873757823814055031939717565209340796780053398532007369355233607503109341793913290437814383933697512358531301682160894044410000215024778749583812828570435832828561788428020944783965509008300696487475958503511548418894887927574024081273706316287928598394446778800354826120136132146222108422226641302949075986160698111650946408677522985795513491547597597720561207129479131668503450820690647798869824002765441834762165279331799863386720980788258079581705537854670936179059476609981318616474829438861112912042973281696458767961357455797408311278347413232228471707388603005813948537204552809228073032283880118901895905283417257922053027859732746853586795101354061599149440145096264705845602014574789527057844362081134952545504706347702815265019974425227986295014152813540620202058389334444348051227976145286700326947219576455370971078163151046089265494627429039677694258016238694752458575167643117957644405497307663375853650501324043191964202939405675954780090459751707123033851522994798136230956977135349736119416910315303741772264445307028376130207198920070077812415509310312447889525319773145183791344681749184816579195318653332896984458984598343579143974202020944210094962284916344353893504793900704670723414126949463304840534038437163314212939048471874983410397915425725726213611220605316412356967341959773369796527655992830393685322780183030257868479866736198342116034186083458719256488442988716830872279316939102785724994885487682382214679442036018091553648937436210560974320152201406804460646794545132175557867518165607770928003092976353970876038449434916320820187767925437658887498790997822790566328956182480823351074221795110061697992691975129776129653912096582057033914426300779356056414751615588889087462715407375654723768014735381242853568762420559897719583877890966657722914848672175773517798422565004243485545133674134080681018317753837354335159365679706642950267197326500575243524414030685096610986357667708605344875556198334169904947681125994566000979672205554750176991781978469972135892892626373638926217771733406710184765588643199997065261359372622332475652612795315086694313574461122454091361356488883196577423928528885042368628095524983370879660273779348427633263458417919068226934309030214998907301357934279633223129852819102655733857580911682059278611674712229311577608515081447743654462556850949133652911160672752139871762691243353376069275663706950158522718948921024315704444756014760469354509781741690840426091224169192730206784978194297647767024878003288978413335488438636350212740520665060130665654528755856438336074045147955903631099119089379204053278130330667021722529063141915788358979403458074021347279188350536339797405086665795197151789583290525950147640681287371503739975611611414894978448968387995596219769360421789231050653043449542212361334001968674158242607319839687568978635530660662836642554834216644066133231844979182023848056744389805560305187442259128154987314844466496243067128955785152497605428876797257086407152454599062197401902923806383053827298442577944036880572025080929101560401757018968022403404180565231550533921671111715839498828047662029174881610765240042864452430801470187475339883018028195210237927841656422843357075233554462469864482910648253411055534500280117848833131550070865199795919819517620490905991805921107350283440621651359561125934188527519110558596332418608359154086968460675038906898946195969853017869313830135521573864043450031499155515139760300420722856416451812536221138485028057287527279905693411670417762700806920589250609782297914596114071065815720785086602757916535378428991238628097987078962222045348325730956421717814992421515838143507030248017312726580922943646404025347410533793956788570218203477325417227600249099765384558656469360122903773374291537366052900985294301262336753069735402471760271073352412811498156319747597497298070226885752569302032219486032129946941534016825498282300870803623090312287708696939846173435457231507861385887750676455875077984099897244612053894916219570314087965547386782217118555836395880197250183645263115784837605466161550208735174628047754418823029133854623722278422612219311319597547259512046747814602626787961669919755203508007690952928730306535511109365017701018661941894943183323051558344945198082668089195069333302016009973721881205677410715683490942365755536438464755179001872172272382165777196610802346627200245167163710735831386997388760293012284945900814237702049162665134916795248503595911825610339107635514203031871363363089239298849145402050766603991394777491342326835802245626348437031759698511194063835355912031374973501517344218949313481811121276411653423270286161736556185948224431255903320529061057932829799425651619312074787503415454451825761083640321825371638846489886187691731538311371840311721860797876031359526754919646324648861529287179143188209704834196555611692405624553442481328787708580434202245153714983068376188168543203210778490025583847368767088090638665152999188640172690045225035146939761384632297276830726103673743005736458734510780638669281666945186392639911119102753762759025698288784557350654921192731689338336789788327673361643428946484237617128196338075814078569685426440630850140127494676689348103455202729109430348547314375187740076615370136471440482533508433998766984913527420821730483721428858218574799318298726772907079231633892622139715599594225735392995474546559245816946504117194198487251228324182715874763425541481593931838766862494179043605313288533707760166875939939902337523827868640421633744182778449665740892254403154078198861207179578369899130786144355857947414283986064215172090557210983990188060739410944052523345708800310142532502945511770067496594421674444295116247186929413148951771988036842055258044228611997591646914968222178908715785184927179623256966666283999819713198535024266483916152277090409740642781293103444689151240868293676275906442908133250511736540950849016608020479013195624940399106499832201138759519815971391062293203522221771430961349085999710734048788311088708818276228279571987559254394280645118991928036048228076233953950427804235301082851784311155604016046191534817305694095768846698975751124878376267277719247078277980461454991315281309238528730847537453937612832429749028173139046366836504530083613331292907035070664964738741293965132388495635329591031930555200010899679305770420149371882338126646556900373353583828537782355131590303726232405591806194869142121961936749518817257028828055997156450439856987649324470542968506013272244598666312979043940609853500963162217968753966025231906689534007045834461452500952538023287934712724158960275578089382272224545564642161758139835494579566601069184317222260381883918367137133220626032460216540547671323619555069373842687869666883122589519650661413381982510652038420081777606896008532237531463477410910176262177516993866083392830042951031089487538381149604873044729725955524978021521095312259639806568614079522901679567056955907840872184176400767220708976245556145095783312693750076827472108441597816518616089284051015360331891796800859606488485978853353263795347541319248716787614693599211560694729550098706627234576887825491403587698464776377791971787110710298800604339755473821466213597163113471241171080094313277904826614898420771044046930605768643890325036180306015523477392864046760250290041652712767620121816185655614848293219892600919154730501935817238799525926264991312643819140526001694411901328056813142200772183535007860341894981272635749685013816304017740515489040262584014201535956190179285250074509918474018356562325484593945149112496300127561367249594109877771754444145637688039124569841330319328797549491392620752256473803943394619022096484852501476619210628567686722431030535266580472916336675776219302107948176204846877376973792599293070374663529641274694339541879528891397022313073256375923621296269275482599406401087211989751716918462125592567331896812953014714170593026929071017883698984121022157081033597402559439587606480054691843615060474080710112926388167419752495656853476736944782415251981080451364865807617790059464177188049698239197631603150921066721269526906084064256471439668301149007008513193555245497839775477482324477265497500370240162972472323188102278658189496501737623904032922273033302451108486356100796280158385667643548203895309228476825963728165728748873611358938096271179855723774402806607331294555241404015726177884431407655862640762373918441084893581774143809708151813630191595550712571682038233153746223301891423754138320343356126750483263100781453012639728079391378395017730739299310917284809098900956281594255622051638760621182545342966946814882507536792355494337630957153817461330075953026053233144779196823781922131661153349484164036820856949218799594610956046538726713068652291623040035293177100061436527059278919618019826683777971956103865411341932337297754862745167613272360850431518981663908652690160167305620511990284008224465250552404545920076867808996641870393060547914350408845187583003401371934684446987007551161222508297152366833983027684414671402664392089429771538595923326977148777093872886331163363380238321066165997547557846414828181240915257485912420801993959624217099787990362230591404196951820223264187912429100604399761669281751725384490660092867999241310856474781575532010152402604846144554283886740470090798372602290127313454293591974706350528688971279060072021503047871207603982999882418060884096165005505200904445310310836386750955314586007213016571665164420298885399764774630811275343558693321305079902329170556609366714613191719100802694467042164097575341511368535374474922841311068533700300566124830107121951503295166947148614759366335939266892747630450200604176469221344650973683867123534013130883761019391870643438461735449113658457292332446173488805517924261784374824544835499125457319572862732212419671026098072685104481391069549815566596047229381386205854992752403561327967440646243058703166015821157409204928708150410238056886139527541303605849005880074722690823227426154810731200594154881786587335793380160758786108416869694063870043733047724195765805670718203405666810633755155839998406724733903731320708357512650491227408649568466041454339274970494391939414593904529985570251766568673250944234160053029056038991347005779834670523945383358041365141975484095374408772093768090927860566220846317508938665811035962776652031023824282112464433848256287363501961925241684424849555781276295858215916837378985286843355282519724502207601582332416190325521424511545485995205951022663508624294674141183545111375237425100868203419083385672640137478514918941843595513553863720801974286710860310401824571338306424136164257530675369324103745399127727382017270487466064352392880018537039267209035105262826170380114361021347425380414475742972122881299225552976407405784809735425288488107091909559512401595069765762473429595927596836364229213331706270704851116327117832664189902352742607780893678937723568465983392420059919055549282788564839577199466027598514517446537388166942454529950935868398847364046604128978945006801138724125178259380280260892762661149720813541487265775216577000330131220214039100980916114593253645076347804258499834305016212595910307321362677101248924271874165815043694112063257657484681871914699270125310955968927797384203086274980494300280809395949449358045417323979870691916358281156404054559393463423181888280251205826146591728327935348854804867777048845298156296159816263006772850077928394523062868962547385378819101077442892927367423705789321265962400515919814732029047438475821556652737564972731124828137808738040834457857667111772670772468263861690561695003127095734982878074874714978041944163620823403574121875333560639850092917708864065166187942691883427732341568731145829860910676622703811636990211338199315982313230537215707034969901338139117483451495106437984267535541317371528206467812833289729835266766535397247362187937676666172859825989119410093021101863178681532663152557118614552739588546561716493459452692790791391977924173694928725027436048131448043151591107151211487418533925986353592395145077887997716448847682289720891157774024778513594958259541651069440665399096566394906978869661779582853769863943444826631213782546765775134226889236085518556735753332500829362736511714764664167086150718416050454357858940011023162858181024059483545732247949356598421634967106713207299952069430382065550929048278760763682433395924060711974272709968247313545876029061432859506943025479650544191605684238648045873372948815052362329186689407165414527072584995097422968538791533362913123812435410518992363747715155181250129749045116534641460872619560903862805905120577183662074895699279690900080340105851552523898795365691289836099396710399727265690662555647679170781582972451280102840936736191542639439855782788364277207481974437835093558803808026680430477513489913529327003080232527683648149757549314853616958281061889428368848499892155556202277356115158588834396059997706906746393939076996004255747199900108262348119599348202230447471853481107048642181320664052565675706919539810987147492980751440224032686387442621284785408685354350270675443236438672826761173578208906246555510944406571452288975492758550558594496027708032929358288895862849175681360078578519121996681608228200613627797594078165471248004671760817475962001885366496129243284426602704699432318076807205400868062807506109950780833762749552547491656914604380026858713588337132231199477105976246238974590630592469061385517880516002356093916179617582934839342921298303744298456551915469918931979588149510583858093916180316859565069273667308290320111271989498012973684485277590712863822793869915111382996077792966879526492910601560093345515037656781294174902360995780818136959166873956829897013319391774863137870753958295469350190424910691110020816480424309223483900652610339090245264339225471277631566936287920235097238986335494399705140472011608374556468780280609314420960705729610440992651740177394912835078569364145993931000554888399234086539324451992437920514487891024470599920013077614315047696560215368462247720648352834089053473366750047613042346067136735006003711988649939251662243115784797251601943650941691921408272273486661525060887993693900737742624302492722199714079437365967729042886856368010851967458560792160354387008097996535437999839344346242080508110238922246842834443187406894990696802955456830026570578777569203461214601483867750454656287699636523559360829082237349027998400618168005470296283444433096012925370315545429946948582547623766821025611864960021964244542855092880403081056428505465975868084373481176787443553594092536638333322180537891813554537367168008965496549754379551978645538928258153080055740946864660386626644652352457474181632523831486289266889790958099672140367707166143401918166606938710133713246647726440559040593571056907541803518263137267763693895764783795838415229027216714050002267712319572838921784408725013762883510212005697184088857234711083982499035655936232662215198417824935296967775525707083893772666381089952293842778468233394227814042026526243925458469157024305899247123050619221725724563965982757512355148520491686207402079566030711335280157722820860537451895631534488124239187284543033428643318277503249064128102973862959525051111278930849876143009870867998042905991842694731602328091164885492959047447067263828223346678735853496860465754769307796592354849595229165035323403411690315757667039926384582884141259992143026398042189417140782412756552060218233673476486470138714379008917936972992144034983947579708412136724913515205639979643801987690301349239252351651955024485223422946560102712002171078631558987771309139543570760794024176785443559689861371431477990253641801563284515250741994302767958024039528132337146876804600486988310082273828027825665444962638760079107193738024562559938295040022103282595200132167368175725060865563997881126280760935374581647753533862481861810558932100083465769606883089801946909518633358528069259985611996164582511854343421598699991502055017614554329757532293150869761074743281838273926888193357061695042592591852337243310691468981083828041014489347155640084333198459289010901034110542902851575923775051943268595124652815792341135076739359789201866371116831953070330060254960146132565017530599410328743522757641613919632692744153565996827876465558309683184397001416483987611143675651224439767080767743455870507302856831141963281967188732029009210278149966312456498825644765680535354999198715812902380706319408306098199246191542416875323018847158277785408982455054034781335364383261038737502282542009054500455327402594188157478432997952603226856073031385047907250029127730125480630347473302219322259334426324667114408509347212677514671316886220267681076960837985242369764266032990715755274505707507906197470464864899442594303615299724658954154734768459858616217265907237753035171370374258158230145437495950134917382767751227851014834370278610580611487009642907384115358214438525468456931425491623031810796954142726555611725639262402081976460932386764132435511631905273719588775090422822727989742988793435127630032018519790968906000572598252795718010257039025987730927318082497656422270134582376524368299369260763701279507281971600305758518964662750903807098690036748766665054710429302303708062399850139838045679702484628089820087492201668111568217998022627959500384986280332885045709868731869812332055101098306649303520738741771684051673843554713764477772737093403642082559626223832514255206309390452080739380968437667624972599886233557051618637486817293965765827418511832855940298296836143364993774234012111011367758346255610311152977769796182581209133259234371065322713695965335414802667102986647520195843848557049244089550521451418678107589405584811874000529769559934875146407258895976929254493578024507818406549961506617045300323589582258427765819011063509564117064500269424952312318772638716631008887955736127817419323032824342718678747713889797999515499445384123897059452778653301574266810849701153032937689692504783936712017712602366489362758237470315441597227244270862276889382387645336196435647568888261393130112236807791017023883349698415322900044199390329962062130637116606288442634633257031589787276087029734483549475333786731202672689373182676149778932499398357632018847101879961657338065995930177885993213191860678403589265968334254866137014386446394052234383458677468264183830989445434514967673231928601071475013190231902661181551460508440569873291464087237382232281640060941516123257264901911599030883846445423043333440397885893028790245003032478979830939239637864388947332762389417490683457191220995242342988036704532576783981498509314378599519370677515630114723186465570342981444468370991571738115757505349461483645787942768168212608488283857651986824198867291283191796866547044783057298628887083504157457435395833867255660529934234693272338827044028922405354597681548112925589810842090004316635620080034911628625355232468109742596097156266913020567546692061299489137210464967189310707973259932547114125947504509843990441624184584474462925079007635331483635789685757503905251716771720919258993746922646245094385890904972253956549842631011097950130385927464650875720754319449254591668785265870395846310057087058086399436701182972696186091378659236463916511722740682254631518493044041155227328198053590881999256493692414004180238196650835652693197364821439256717602440521139663043746537680200192672176659028385976390528089214377319227365562138938149110736137426186691758033190455268359414058168278044467343559519159936534299940226928507596095274018912114729011041133590621481511272341207236093196973326581707570414462443352988508786393653491684175304221212583678264739277615592633366328559746826785130604202936131401520694361612324775622824153756867377427504809767486915769089353410716568547349495117858881658905489079833558778675237606403206853677618287246499030893090177759033802398529861315127556847647101102408668883658951052019920163136211674576392034137821113117175923679704340392295490906000197805503324532556343953446575962007765374320367986834003344541796545036646452508184074981658708574803956580760274069999955786806288506819908943127404945365056646843565141924654883841657614095887606922831879222856977266577452644339097984097127406265618315266166671288171030999279855719625071092374461095847453255844482927875788367201290111863884318190163960261487299008979518711035773489072078351961938648262866469214935808990206125103910253984966088016173385201623006256367302805334548869475388868789823692651217603573014828237752459539077883128561382755596253709309367689872442125738279886875947303487076292389956296060912830817068352835496180286835077042310933242894585213745774123540972589147720297333190438384946036388347385695242856677390024712224264260298245076479266417184531590487637390813513059491827518188132834799297572473186027982223696362584949662272292086643786801724328963469845234014491180601253245119781259257425346437822739451858819771413657220515263839871109036622903094796966559647381103528283914670889164541674459905647133034683449995232823298398130861779503606354396420017808607648156828816326786758480049608025276524123211328626986165661038634743295235040767482048907838742670676035332900387697507426972992475119757998297967213856838547220903138286889642052919496895723890221371725483917184414867186098529936556922849761485655312892287616211825012202415809368960951539914426527136393464511923875545042266969668230342243928892127501218635734662213726086366529369743839448594232557967690691114818129357030972954131889285202385694524027871389758321658715412091599097719642673767648904129458293562197157930070616438079082372054263111991251968885912115815538181150161735285019460662951382253526108811090526151291949634651611077919876266327815750763114545552484053190280883083063567636837667752796752021733100534121193308176179449360729179858332993258933425317912544367297962389891806048774307715461555379328168374635348202052084292197565419974866137458106526099444822986740949438621472539700825141276979858416105498251318294193968066889294218213829085926435369695290081091832924882469228814506680126900670180626159345972255934958324305453441553716500386243847409513720473365364899162593534313575585015025778690205914448810966832307796532855033762640452231507087182548719320818252992036595916813255560012502798946149112281505796595522896116822987773469876142698674697460584012553714952088879664696202466994127019100324207674592565637151603452570967672993131393294819990168589253077360957968493606126783932712746398476295743533709018706898539086399686583859911980078507575684557796676382505354100315256226457030503132620771323115717371976030114249092473676257710870619951904587029970902140620660637489096451481295825588087641373787878201039760008468850407902764842882807599840264371119464056121171168080693579452214053676682769181909100243064101235758318502551308063793898998245519128934576750740105761794081928268654518254714575227258417635887167972866807889502983273972756583692153950672016138506336782013005938837977260010994503751021107279262062689146917465941922130165100343175026070789073280641027257637309869127352353437274562547859064569772274192845615615701153454381024484420456237220976545014334870934251557678021521739581264407035131554505481519927827086969967143343025240702498534035212940264121371607873608625915664168072273275075257801118703558378168840632492817993890061319550578615717673319861894778971398553241497483192889459247754648934860039143365269712185995983302497024657598464991825642151076003003318086083530884724163671950013739175322514204973023586348602450722563469415224942803158868040748795498723080346447167095170462568302252382959504138592676747175380143406873119537751002775757860641295670246184743395334385065506773893261736976566442657186245761644769111360375566134940703079644424418692283126404718449735376039991384802049920318892908193398008224403161235414168320968427818280096110957014977211351721066672032015330074859119309765090407165479289058775051993023640645763594918111357897880711980153374227416884374021524872677619213253825974238076201664092548393284267537835187993615090370231834252557203270947502550474234413439210959547234575643078919192069152506018285830319845187557185367108632444804998882158576673512409961198019057123490593350547525184464077419551157349553332069727308354585574530968661225329459316011368164684197510809750276204878648405819478255246887164745757026514801815086859367962891156851770463337666888906400034272437201913433188148928142126866667597423440821195629989932695996969738068512855277914789479994088519424401164155530988161220510110517058348695553414997977860634191449059538051461868025158867600382989760602324458130844622526533448682117430996861772816244480181424229351566432908649481588985358600859342928427774949658817870628847900352259022340335586852245395019660058753757369633100619917266413443077204994701857529524403622929953977364403643175828769665144777123331827080766816788728339276010578888913224374611420731670864860605099610937905082041585404710965896884294284460782934194536604812605591557812844777195542973031753668007247004742842634463298987808949893045539338185691462481772223794646702212168611867438510906418023298504541303179415813363489264434811525593855249856710287370669112189272627490627885173417347034384959539091654887919965697393469743165125328430145547352464257876309712539968103359004616958150000860750524346193130027773076840788249600117529079395999780453913198517320546287373273232610870550378066608564598109180993329041345934779286480896119277116907399510341731810323922830038787400050728695523673437887468229024817180245518949031515356576737316007665656816149597413281589760039120679925861603320247352207127798810376734941463417315951959732642098797608823573679661711417218775816557498170417068894807283803388256167906058311660957475437274210497201355569787289724120636330615133150029588332632151559174748689400115569647040929094630895613481435656437172778775701688490481909595347973770288023030617239193328915766625406598325717246793667989292565520701035604055396318804184013028862780432435242427945099435760631055596503314446662735350063379629934293141964102126329823486253166739532791259349434149022055930251448559398906157108721398968877875772517170076746477118519426703442517804598309154540788443123647226302238992271482041286520625056892733735745670110795537666425846636571081255609291640019462992181185245295062460349400904523557501108933355267697817707215688534920390716190307626982818536229116985018640599270788708602430714203176983520728964868458486906612647705926984936973477096628249302529360523585305007365025156540149861700051801757715184699176897759494328776561620172664194541176898330460433356919054497886270148029779543416464426036382950089844173069418097413017314035291378844688867711623536048216619242849796747793700930563027604328602987848648000212712383507978013141803224977780827996801821089193653646788672495702675952891279978566475424155798455797396809690552610238667140547912036606700827395012263737289135962811369545242827971047567746086121410689390402184789517055419077499427521342238940600037467599709098612911418669665512737676783965912755631043705461335141620459753744227488814857879191594373082628263887845239411995662980383688042373796325715109967410267152302091342357974449244198414331511410313243249717868633042758897969635076049214719108894150573815456280404685786497310460746929866184957311789704275375013526592390813813785366564901697574061943420859743785182442984670968051991531364563071526540311532389962281933767675463759455201585201159146507738225622707647547489927581006346171309919998389766924314451413666297947320790097781226604626885941417126183546205124407547817045072349067002987319447727537909246037369154152779610273799108672015792029753142857950447501608546287901828230937368280969647486348317710371465628689152595437859555780806943740398883661540548580577357529326623275391675924071364818285752490362235795220923997720212175824088241809407221792276275737830142423386710236023827806261080239940543318977163469650903521572458536553813799428180685805346433812291304405789037831688936420032201048277298710133349478425507750416580830465734658307266797436644358095061853353897473012085515215995314139099845793473501542277860825788808904525923257216362246355186936708193838768790166830272742818545631821721094865823423151496832105917702539079654634398206839986472289593322790052384114043242396216595351995581846188959554794228114949041831097470648056612952213782496126266669862464962894596125965460029938924988223874316431973426850439200515130309889197962572305296779566583771066756684475655544249930895631924239018796608430091645402868883697470157044094280659674890494837482720723733894661252085529127461449417453301607804827392653435989433613713880161298611919099649291079853951899381371124358420334555286086483328052639581218729147759981792967139301147205966676277240632659774053029055063596337760908925154384201108365525485217475245153687085234561551221873662010883509148513045092104179383962837152304750958639379151289425346439099033708133630863136252497781023534823325694118337674093734435452819465580245161291966531121617195143320616601202270812407606074429731513663288071058161217262595248416192303987647622622307640409587712880668043595305257446580532012533048717862162140519635833200829491688812634073340667959048776134683363030229651777738489877515492850753265622081571828910605085216339432989030446657377000242426701513862211300378995180004661332668541832173883854495646318323230450124319574829524929115027744850242524841570569728679896304047097780155731590849867004023594328858887732739481903525667985752608768078102467517490266184296119900491561388691993423006108721757707610105715758097976544498422108180609418597691109381668397368232478041668217340544781863833418094294247443698124454756857999350749773645726505254446812368350569076917850941626492562647371994158239634896469427522270636020379035058943217567053917917624598719183835715984199429551305287690546505985755073944897177427939818379379478242987885578943426639649076949897354551275350925310642336368109056517854905080386127809488060056477730388487064338208955093453853919740986115309038271453261880498256604369923078685409754398459585591449312192283403245506523137385584544444244013516579375104522919288813444867903396105206261283069630905531739818874002793053450770143878982622195493681533050349443517558999048241532222663132018082102749757952336493037496692809728725615374316526602729709959127541582806663368362467614674322160496664030199396412603736516790232700122015241201178181403164972239362420937264369620177129973923526514069883570093660038664802867158112188135486785247339956019666451084696494247331164541764409129160679366266087328385995921371239698641721660933387577014656314608075219312728773990406073462869053706225517610644261217459420254071126413031335349498860146884459533597520317727357685267257650857582913440220241549194678799390212275027425056237745741435190662876967054139448608546534201509128864674274812061284836381460355349038750650338430908407048493167720757183366269193092761973884289946843745996115438221773655143051471326217559567742791507804202893277959500873552055836682455435799204478372305520605733519813324055858633529652717149164999342822909884140449385512900506351838279856303956953581942434187860094713494095575867142287473841431539874622764662894755184012531930411466099086491133243815632827122360573366186242718975312132697823348502940635719317000802313741011450657874817184025865301598108444432050249393991281363083945440606165759061673958203386982688750213733778362260686409984989752746185775924203888540802808617533312197770338431870637336676014223030140760850214839664760694479243328568290165528592614987235589164906734486076731594272349184081765352384663059599373837627686759705082655686901606811166063837836991910157657051153608784361013213229870724194806607828025569138339096283172785706503352615260580614810258075204549561852520338847461324187855717222118226228835937493003443820047901727377879950449875281524257214857292169345962482071911569154127824554863840459607295414727265980562947674075984033826269059453263002793390823900192078668685211203312921641706640609667790720380600805315417692660365399001170990546931807208884575052919802947989009396747813185005101239836461017630554080938911851111728542714199351178322571663780333044310889105521060076472476616342169814615783623728698362242640166544841379302609599873842738359698246876915372771151012437959710953781243051798308357365304930866493443137515072988910216937258670962999737215232627883570056004620281380465496331551003917695719262014745092171992957032634988590022709663069711571857097438422842320573576292472185077553759054715063100436381690759411056774413215189764790742396123205213389770138589030023686083391984244512054266863922366067816288101857751590407653462326682675710688539999009421138523881743593025527554812340136502457729201732609921851804209063259674100940979957326186965064173204633728865408654599324044481904471520745900957274641086549848570692453988496081577583649458517865961698750443101744114776795341991426120749471560727076869233990180231450435389637167521931844236697555347968358136056543142031715902439373148349227856672329048176548644896329411845306219535711787416972571802655429743186046218099413365847097604549625348320190220759933426179793612946584124855441839585878862649516329341317794561874165722816622086035684179900942113129373552335760870504664287897641507962037250351691566830833040226244806328506519498011768413391730317972835609800082935049457215342661845488147114067545908055777344293761104838116197397857321486362775650727712371763426090617738298832274648742455456125541290328365377050673197617054297908190201688334639961650835298572714241631092329469670410628794744718392581784948892571217672780754723318162796978655696810720945165807026285508089355940023224258022129293330667378374452363403950451189441753614976421978316868941330038783898388702066806487316331274038548373954499323445529022718973566346718377869444137006405790630600220322535866107269146789465886700564402398283939964070064939904635193553981622377143486983402319943109816516562255306909205240742408769401511237523492570236640594130008683294865876442320256998592477892405662417683889266062441050735861992869779832260272120759083870410690412299486752732486015264692110719259169508267238879330411331001093670420998893165971625677685983708813565409467892249206765152081805217360583899378230644420461459518700802418379179852709293804969882648352805079269079345142768515868838232052271442932318616599396083298321186235219168919106789803431253101992181810342395918514035610259139687194441899790976922500215062083175358633339407105758760189780553075404235325192761731467180892448894769494911678602687110272366262549665674728856665820559653837484026215159989823539760034333932916606064547629976060264970192689527664997349726125598252657490318224905314063200808861844849013753547170173695536135502431138551894138457813671778735957867717842969601045863223532981865595347200795979659549100052474747234773443803006812626303565407188518398787662090011139870013885001927883503188774421785532453222589793084450130571282531427602951962614935207252308993178627877788309320669933747154381769906558274119050867169392222207323658401032571075581555177571689672534676155790118433186404098223790344576324037610864414313936633557853787338139192933682564497156448102146920683730745149312598495975559930279288363790531788620454902322459653566024770504126663143776635120567904819169351998730412410419541473125408721692980291925795298524614021616807764953585754236150426162324777318793887485496352784316910213939149583132901662796315376169641086671404958235198373865773789915992922853901193184356183470248197538843394798731653377979138047215590324864001533615477152348406716878547030675476922421797459395877821576796377421503842078874922359816544490541986197066637939428717691244809690128362750615200234214112977358328265384452980872487924992361474715940724050536579495074427421657688283299302129207553541779167897901151588019409441975140238643655918615043493425278575081480356737979324903373463736315999388484122281250991973391804921776708134723116819237487576502344548730786880625066816540336304782275055437514968983573892502775566499640660542362482071678353351182210291823564899962358575346811510529176418254351885832158553006663090559295009666434150175874246961490221387665159828704447936742263728650975630626856509400319382025148097359509242874708566010808256421373304077532609204488948946039487150111308475338781776210061653822355158663234436922651162918885943814703940101361334401876229111500300185265717828902031297537694390071117121850770770470546436222931047357967997406599092525882618399501144379808661602842644976065650436922320258300856128907588833329053649577893829181201968699571900579334646709445018945127160367337886851596283231367718535506142298679461501587086198397230424453616061291839501917329591986470484236090324955160701755053082890894657551658068766736910540021842058236310625145812564738398458064714297538068093972136800725708852639971022219973058468723032172285829707954430612686301013826363101735292891308352148666364193938362363204431554855969065519206895747713521649618022048007876633354958487971439194222638618123280247492985186075200266676412844587072633777552007376829252507528130453963100649758409813908471501005202790147443940201032538693788989606009487108352774797122101956311179342204909168622399998857160971931997754495720226605540939865010899019918432595051088838510161773554896466595006156590122208279409754371694408035177741311399041922037420875551416156171817521602821265698286105295705812466699301367386472910177450043632303490015551761006541004683547414600749015439220460075964319389536490384294423629277207880073245014183213440377905643638468919155833395295335638585411812656886445577612532991312353612373642604778566542286129346592372934076433518411378463062176566864891742126886407720801903259160770340796066775571816495523490021131546392995343520406998028471745761649342433063654571769303014326299134627110079862513873330893435309604042773814763117382958865928446437264511052921582021997915182263158840974480329023497421951215876626526816539293388322228992277633345300012579031259408707082463175285078454150279085759646927486316799704256584935125168663169489822441887083929190802363781900032730579668976899696677057326744806544812131306620101670019391515233575939342124124991697683451135176813472675457124704454484243065645796280423586533081161088649891570517847140168926153490302294448481270823024008265068791288791188904834530717311844415748956187794605008815503591394615032522301715118599166672099406900558063766302243529830906190853777969084127969273608781619675957233489148304294373101534971681434565584916391997026156398813419239155704134433853860117445741240584211255656544041376674190802546488562446928048800242425328439462389322165421025031756708098649294508383230868121763757232940391077185912270569559556974636024716775975878211366684743565155957067703029331995912141796887796057486806097473596807568155885445744018845217739382729387173727443510808161005663524919554721178140673916414901737806104612720806356189417025002931272847355850841628291077613925580481800150378593513190327108459864609790061230539419766481907281862454011644800005531976668215532912669061009450870609246659737879243649422459144001521084106129378401178860377992082954308260456703230339107337087408862016758916151446369867960602226782901183831114463846189319775937556621446610441001011438882841068018529494363184823536020343158746594530058295514327984019998710551954226918450811496150052422409018730183799894663883102631693044903767124831848154980728281391598482822909650381608331114949744970945594552600306690151251655563496050566337602114644425316908822861243500469510528525390497067826259881445555661427242020171334988663981602500974296570332123418532534879311164503751259485573453032529942150908171311277085205082876839718496018906446919913586631504478580895354709660246058610138645331431555558441016394087903514048687492112090033536154196243070666432994281446459347298619193488154180345765291969611034172238955876459146647439012404269796982214599138119388732659509651474352095483272170940240204210183055407200933148407493201895750082566160878441438951196759773659561122835201476690950900600406283106376984320701391965496432444128315244017051295887676865019210728676750776936700954066536037598204287760887821637797603544201810333283375670595439837322072705569635359751115102330080673400185522412720595310744094626536837819240537380533504460630933390902062180937008100608701839091998021070919777004395099111961335900704632163081275456990995432440665636375488271084637791234632203880737704628231836807422627601029115769258002649080550086449441328095651078503685063165122864713589784572768571524142105363388988805947442928131607409004596244141164476594888173752465863399451673989201392552786652841736029671638118898405863137022761727596139422895301054591303389812969930898865147784203094157035865914263468176744304396192576864568341561152952161925361036767474059788020412585717330316091441143263931521496073928753420738898713127817379963975328733840420487264722684279638907938612784548710543180948857312340619472636842904690349326239663791042199529643417871549418499319489255736284970983479266622415925508566444830359165740281547866872637149295845777791751577488163958833380746391108534796057810079448527017983550974783318450448867365279069919971584829728597261538593735150362532974232302016820179092902465447623745993245877715337707246311610405798353891264162652230694622009322481347770693247782394424203963953461454493747543256398445223596181026736142143685119818223988480091554055750360687115464794221276905447101797469112431296740873783746034219245999234387429978604096792954545724988406267718908660384998314285723982819305881537871811865324508630816794958965424298762233884151507854963484502396154075448287759164706796422701120810554595268253072397383352789334300656552887253449167171189355451499349307114023204893222206004504300419892313401221103985779663847250593076328270420925645054733302422931357219992632657251788265409901501410072894164731698733917988179733106563543690428297378246621858066782275280268783992025427676744607241640200524088322454163440625102141073469020175007391730714491387361641340437043319892094097898297635321701653775051921109061665862005480041841348716543535885257109611605211081785620374379204840976610922380368323146383147254003800254832242608138126703122194528319951824124721046126610345222693063215108887503603661313761655609509821991401091204089715303513714079218226137002582375774778595229195148508931973911059519545975249212983831713376742255078721665883354106702920372324360591791799449847017055833641321664596973936473828635999797438282145502929927513794122833309862515680369417516412895754918443313025593418375376012011952118023323717217956318194359422193572214686021064903224217783496567461000889219755670217067867137211255045008586912440196923126193889608463918266554484442440664053573272141182688868404555182180235865963165652716777692842224834125792646370591491703257120235279453604997249926681479302037394417693831255698584031727492576042600744126741047910915674866940364900189604686032997197240442413622105849433878409985239797427627615377084172194818270745957768340878774298767547589463013755197685365408486743292670504182679512783940237325600477053376020561411286473158043487272642378615509875486025416077354053496876902809579407437640415476743093860748807968196124069686777307866701358370118089271667683653706751677197468698100253996409273423791845356298894432782906922470412706562595282765697960749890298342560506877469977908618273430269359237382947651889542239929246088134086006082107002355654121428539153964115699301027411454042286378911203549255074931025526029963753592120242329284324406133693840729215527552407108819335876574287193465804164855301964567897447783027736230438775944057593417998669149192483536420012823933707049447034546898924429135482027004414871559074711327095124452473072345674246930909561014516814376173820045936067025319034320627507794351657046340803890131836920411014414549235015229032114044882268856525008583662625929244928243658836277427339224499139358665428328219947759922418576850545170105883081430630796364104373657404785703186038900132036239052522364637105234899275529717266123430693345577702622856397829027544649032268956006587234413249333856384004035360267514517113144488229822613142727874548867483369325380866071418973703728978873622163476376977127836053424449114390395938534572153030214684370999870215640955000462146548705394627923006041340257627986156503121133268943592022861571294391864300966921573115900393531525969911247116681484812269902963533519372014379853843594891248368682307118991345898056221833028815888757656257740435110280561994384842630082131269587761556706659278249560819071656791775307769931454848025522370788333305352482554300619372058542339461084903162539736134909603381465516300914735152225026034012393087953163594750165806767171390855747395155127704034194539084087206874579804529575165849721559551562143621268677669027075569219589237064760793206171056133574208796508916527926049840119062424718093470664877282001099202813170404492103117300683816099958203356663909393501508629682342018361554970851473606016251985512562936345754079220354351640949148006140831517941153355775462652485747087398503365018938690218579025584171856688494401578535567004414458058358429304764798034509627978910905743604691851674251580622790058595990660044419657825043750078867861844311438740891429694022655893263551837250195555901834506284797663569096639572726074623271987186788775760147211956436470262193248789510780060260408442726526773436226691122256607847079437427066707619481853897678828600267360061942562941177424807267839083411168955065665057074985887745304869731814263895866043788298055545898724107808168428184446475829733688279718580152300797773324491772517681529701755040178227106799703757033072762217294419465789939796741531198906763045443549559165622769915808338899722655228664286520813157512626886899010539081412877604279748883388890180580968233147535569952980802263033198514413019429943586223489986938628389073873133994004524355795937609701750977087436658570106010906717944475987215189814962671174685372735904880163322270375747617767607751808716295160918491515489883967630288948002900243156570465536898463081993437989582442147675522095078064991993993292100296778612579558539622302978406622379032319815144945988634431810447260919301570027058219907964557398351177030818982178313029073524962266629260469529044375720245725278753844668713046962457095061014813724518793798767536876303441147571282240953875583241259450005834611350676993360314876271622773354028026362719555147476561252332661186862497143713356518908476729204320472645047311212356150729958003666834798180416732206561272752716938232445030040027076990461530122433006132526910595495171729573727261517397532344542381272655891535434465858473695034269528298155308511979902141806526435872089743627567472271698434583287799548791222268263152286523676844961486082633474326906644032978762158333938923953775339632565896985198790831380429389552838409067814792781736347805317374222428661020874400981763961236557710118881919216343346466998700582428325414017944793555104085703134122890615464494427993687410163976526432701377302854274307546052704302225477361468535744770573182358605374990406481164886276509684511204730978198333676041143791742179123598815476711902431780119988813004552107928253945905915155789199267359095491753037971184934757629762372671931004440924156699015601429133266969411162576205480045615269482086864922438335133471217674613716138165255137243685629043054860339007659708208560368621265531332737163262784867490405024864013996069149062087324418069743492733991235198515843250353808327843314000345793141116106459972541726134296120390264841321447327112595643380589285229182541911170186248381865108212039043984144144582200884423753948657833246163667732736365106202752217777980659993563418490666844007196348413875621165529782316916765620241261401939506655098796705488492589091498344314946795599524718074125663751937771205392391274094654534514742577471006594437120938850622875998064761870188990686608187952641293915495962827947954733640798650211177313813985324171514073246422115400811191327162087745715532875632558606399213920356430757061158901193644220704337137484570949446522911587916360666483569237326923528195021349505359228922646739771470840674080593371745307254289679134178504851704301946695187256839586511173773230721778258819316068025322315868011824423165562765114857518022467415987206557641347512196015538908141362987733794701872503038266960822305841974885566450429215516727600211557463885896773386838813210205241358538489306525826682425161302869400264612498978096265906164642784945236381690774314357178885792481759223669839097653409816146689904003816065381707865457030630067578796600553221424628287855993319614448521907895452349238626645204433746997483760369971293408532170582629501556818795772224819681826763425194402731258665079621095459266863611006480647966499609267260110835526100342470171075781571937136155886656646722720763785115613335538080322945480654269673130442418550592795010613110817701776340918429788658894842399545674062970356713585975401299974523482235164485168104883015279055193159026979448623647283425516144678710510758273650483791036707165224859768498049265563590747252525569441781818032186766032712046028257915680335212215001477113559590749972764389962697463917142485778599099295387624293935513132726564813825371491533814058903890520238960663156716010305001696659394653976124650340231213500727594442944321077981759384859078390929272443621254475201770355456700717662421087594155727300794538995394299868369258285139885188731225894519683542474835364152279990055230317390780187334829635090197961011727601664574084323931946770044266016519361739472368396093834102980412837032188283199939155747279014790988506541879747920500090472740086720626319914486550996649929513069701449477560194731389860107718436975770871393264121130955056549160736274947681504885024959488290215306431970939134400568704873910910203814916935047350834469789965339702822812854256744090232658500039892343888369143558369685580918917399040788271138015546208615107136453579852768385144533235035456506765292322587116866017270350287191287366998259396425720345112128969594531172483454142094137123026913996066539428965406236418622070874588526983179477817844130358291689800104937620005321007204814028168537114058447614565359894189039853024652406352567117290409684540012398680993741463342562821579855676306502040532512175208180371286094267581849292223703905103089982783305385409368970490211887092775204925682252386769789322311453911467497825362978194264859106351459804889318571699717099554274898964781216139738211016699205131888347060828938912728849732537376388668495086753670578736610254380171894597064408846590127061513639385485872688575643090818030113180663591684975421660933943382236887606551971016564631311145240146902233107241390174233783467996121972403076123820645664456645683136953630494775967517406241454819658003685839731307603200910617953841690218604744624466366111802929126079920753887718943395637573275574248474489831733863597754097357053242954202361696141270405221018280460499347629692850266193157646527491252922869662321125999561637707009608285178184378644117360880748529584537172659701298311698069734098933897238315073329416028491227674502520809144291182635760151408139921158354693356976102344401374750372109667348213003530414631196703468533701216052259098926947303718344144637714369505868535135143545169756801137882137008622433795868304224504495848578579740688995679706015304221116091579835974987210878645685597657983654391660740125975895581435607036448611177367310853812260185180588132491437212175081045002864229877273063120091781181422038858071626953737621625175432036052487612072684011383331603610012427366117617161121655376216154025060760658921520891399678249525014852088528416075325403588382673749637711429094489457327978040569283888345696583676153918132837865103737163189608687220769939111382406494323346835447444770428542378230767088220611424760630954885910498214852308809224695993160622041357780926804762185722616922191209683087903429226314780777930665293043421524816826459738060962823710373573584134442535178240531806919027723774555364356651198485175168547048741371740837769630448814558067693074768481753022407791910676800506598650461512778498035044152866217946181184149933772276078926051448965905592845005553286534105993300450077606952926254164812329722920386251232872487567295248485376031113900334080355966095734952739010352807526397643853913250292788567712202344867007520207463412300976982699152507070717055448708914931296619045177566560275024795985601387994469032285664023820613995080911383631616508455858977348287092004164959839225086972492135298897322575181226631873950117779529157177114936757973459272920434271650229930952453641498463108773319592944755859419521428434734229505797649715038828349195950407083271128243935921795755123038801177816034307319057456892020291973593158782582277471959600514992061650726043877626943963213593103846815976510814385932181309936313795449323650637050171922636825536237949055761867894752005178417736731595865851136334878490906385548133922055865499221235109749461437845563406414153495374792931605663269599292197933548627345069943975708362567493892027128106527851500474648832922628692655680882498698927788717446176830521113682022028077605481311127071803675182060150498537361702528799203732412188981444309882798112422309208387021361083813340823005258741572455758635776186029912346632799406733271001899208165877623421741015122628642363349619579556085803973580647326790602794203362900002074085313179704236326649769499846583819069904404911571154006808895472349126518839741668651550252515145289973713734736157629330756189222644153090633086229062445290918956435046126445193038579475455721056397403157428431803638575459694435568775232213320621422597992855894519181843664618087983930543477245539085250457731364468176996538416729310569364892413189261955138655200354161102193679858358951504207174610849910653966444218540364729501007227463704404670932994916286601969555729246730178148068796325177491864049884089126905267956306865647712091987166977953378404448324554445458922662466597016933122928676284169695682124565765920084950688518966146895140425143014628012954382196836176936199635175019699779424708155831056381645149920527530372163916046411858890245596904002811762600144380292965661748180062920440205671599653465000678054256859051049077530468692039045947602245827099638577919223318380855573037435255979177980842574707116446336110040543276630449737502590517579221977410527342877585547593437158099564768806046976008639036115917803880376041820662675887853756742802290831368745499369419283349403663411737136386025157944775326992103514858860329822696092633357798266368288011637970419851981750162741296453432860836072517387022441853382279198388852111258730145055920762543444199622821936279604387788246921452830144928147373684727602413108179824324598540805072385461184456138160931212464009862021329533454404784778175921005051238712352939490104737170867213374020884211841126459593550014187007720105917867756210185186780787974348221708065124486121387375291576493149849251956673820435276747178976393840103211879212676775555346719955925856270434482169683042636873397815582877414768024899959597037000731887451216386012844579482155515552107490470412528933890694477205073197884528700133872883015671830504880754065579935967219333673976399179283155572936864510362326051980236340132762844695637534081387296748520252338868871179255878422895980267942240908198278650700392312348004640162546102800373558962076983103430103234865632138532579156848519669449526745747588905593558574661864280454718036814049415456355965738894269429205014650564983220519899723501706606284059564086518868140205766785897467026035204902855087472886883647241609204018265129271448670053627923740926292161451947105994566543267728409431280808498176141215341619094616882173445501435170132108793080249190554391176397218909605409604842384914677840429484557599761626990034513068839862399714975383210956855862170045865465519494801173026081515996428227683824090494069275168559633100484293984332038718354106913192922968308400831504773147306004970158387447809978187803095586869614584158537000976834145813382112030957901947384295213608418271597316218920277763782427978019819993573950849128402103760941175209346799355791762914389025632695925509783992114832837400920600477555493689679844751614232354716183551998018034454212281298634626248043618230206795001325054736137619119181484944711922562815754773161231913251168713014502164797825348665911764967545556625899534377150442334975083076425846591438318941196220064852392358547300130910589031264295057292680234238188461938460097427264084571674782380148713879877197275516784271204673361858640267491247406787141721714331912519003465965094638981736784372319048372886571606808913579534362844869918317091333342801615077487265204762902320095964630373496514876552669273920189694535384353204800814398813317269813210964350579675127230563196719912617264882828901856889930527622396668673867749585547989433417142799066384102253406635795716616252586127552274992792356876981869114143381171678115269044927435512390459098183358091060767621424624256307089775713390078081166339449694693921474215375579765945123080738064314589548410732818579686773242180896130950433892695278812449034114936901190162496921979208562469983108131922542883672237925133382028119367325868533472642876044472984236632784833951821661495949005034374948134297035206673285184496165176498700494730222945990571530372538020925528084700539904343622390487984715370317406388764295059792144775855605502261172820930744381664156839509202053821775101913969823007541314787107629169775165967215215762827864560180660416453798662106851953269618689752218794895786940856093862402711545883714804829827035977403423138200690483231487883144559209090947794991816154825282186327165572309318392449745512802948952130449021162350766577717618454937155509267350596962592413514646111768384155707186713445644141903710652781461445392623276181892228732882724355520351919761681116426755444142635753579519719096049943864214013825753400518087009079408422996177365581150774246648572377078220023399629489860282716412611115912117616239798521834382403765404564057256782872555981103337198142744199266997451473186228427020088662103739835061719901072136351042395008398953021719934994160051890655396442577769720695558891027026518524996319865659100557891689646135292533274753390513096428972765641505695212498468940827207672737781720358036694601036317737169595484695176109917565816491237280152723692601740372011743077712621230549724438048926529292023297238154143601335819921284940922713728522936803180879327066711405898464439148696952600731904950213816757015542730744746040998081030834812585734583883226318924127632639552187309000400112359977991220869734571310384408866556997266137000317703700287288466026873757521957046230693920564838611574424198015061899278716313770294325658603569104786770915718252984565569924054643880556109804115807982113915446528081860813350810675689442178340794636063190467909588697963669253855348477141609853727849984148520184873907750942993253131420142921092367090763411771936425618910778351716390693398547705572885803021461669657392785890955633895173990304768641899399634726241343382785606305476921950218132144428396563901233806204238565532989256356274012319373893446864149816705125131468468111828191984961278603753071110441675433402809484067522354528103377541798040557444662803877420898299823054361718748220615437774731709714604969334439721160520213684043455048020855326172188373891470931016977399312148126686635498292473459459804000576647380691186721522936892464687637727814824916144414691443662084116956418999492122052714546344368358572698896882541939543285398106382352813577748977924594177470392524818761309983002963391295621752111669589050384634910541569561934846479782121696632794842061840337372966578784738024303345113572547073136383566633369167252447837589399149926269895390589603110092307766030349780621422343727543830434713302997237568589608308393589346260454541573397286632751949575314317795479746470190628581113700071666514010469361751299744115480101292364270678650922669653435479034856499784722835442873028625904758210165184883608806514007438229087035638018998551022677878255633310195501491002161310524914835630478622414718203854642529667951183306471668317222635846925968399786279551655465778859524531448580972732309224676852382534044127844398622901185281094819030512228407088041160974907313919233950948588030601746302291848623743875932523778195657308701422469862291207416076413096935697838826239120419299316070060961135881624227695721679990612441353649533444358732468339265842942644780254354678583915999316710084509351167323823873460816179774467251801031315164711649779214979016768319870116757161703347068830856069865333932564635338562050019958518408790205106905486788304047142646747534841573626805395581314775394862019000824020096020975791812736103931501276265236040021330184077209677012193448064171391420905773666033393196248803006440248645223692070890025650911671481349434970248558536983348975585976271888399069539009760332148474245591586671000545665095568200315731666282593450407006021066540353301775573979402761661664843849568749231540203842775172248474465790602990303616956553987342390705926626438241215640170777225800582113797540634673275542114723489121492732001666666042238436422975359364317808578822617821744818590367187522974357462693947063137264681692397342876364669730698312662113779260259614312338115552200527449490771083029237711331779694879137681153329219408765426133407650398669259585684854791558113443277903735909566603012699732387960303691886639521253893409250405317684142656547365662597816023680162480775105203679256975877689857393907038745939720697966099578585918082345229823964475239747048501695707600079742921894079723924069165596199582120800937687393934588274111950068333323845446000004171013938574924919012621469467426679739750160907428268534366697667548300963666244255978671864704631374962160979116784028906793433703661130099648287300479139071537567586414787661743618989467679610840656429143095348576256180230961605027059590167414942234426747734672064958498623048912196275361808117751535027216227363239597267912164391850678712926973396189682763774043696718743548258813698977913108374229941482346568484642183314862052718164193077521415854508612486814273204339436100864376975971925711140730702126220063048316670190123477869028261565948197694824133039882822378731323227708216230767919629475721709299152605597920781712340883059609694351585040412051731279740008328313421407097459279993187531217372966511530330311597629080250027134909545689553087793763955395377510652889974757825295473206780393824064304872433123819740235642007079714756935578817914271469394618434609412327446307870084097899339275198268139687322976148818908115656764678082166661373276711247962790012302360537313122992608296214946084918270248314196693721672823124646220280669591318280603800014851574009787597788786460028274684559084514225370041233385764396760845791510749521740755038011372762257225042870742583806182789513970003345120015452899445511114245684595941168170355594485815224278297021473637458543031219005494820677173343576639320216271631588934474554636863515874819406259489852989506225116785428969230798706643417717145478837762398964604830911058022877283793257968642000666168285602761377028950209563482756568498209828384562810766303985791899292894803039685527576749921847172446123611878137697497891303108655089615337816671408201784146604144357757661436945166537763985575134894126423960655040025520122989603160361416568252818315401085410333496049479137349591712036821074335968329962744788489284872102565839889357503027418117406633282450900904297268730474655665003355919064991443403273490379986482404792544738383087144378150339821059983480640952618164667389953436822780254950451134650444838571170473328075489596522769727423206550347904491655519206051927802422787871249960018018587297778003150490502277827251909725262897984288190982781731891423545318537167228803069292434352899641752610655910028335080758062440955997617307475246182960309928448675071857990267197509525518541110887670880428963805937488666851370913856800037518043539138705477357926127547301976935105693675013349881902849850701726649231049596779116017181549952118501840581505106454286585503354665506605159659669992133053782694834818881235906779937865706230773912983279960271133278941281859155659519192032624515113601045597259124926515905728814264072189198733320573613125003060908239881887414624613425844255839993712132792228204596562382467486558385164087041164748422125787807274950529528483767254831847858963396269925947115316838226260765234401345166761524105509434357742862326820491726899888008494510110037389618548130099757288132491435287857810200052136123524140712415836719739648617320840519294534690163103289211891549548368690530369704821057117120638298552444032362313425381673406540400982735591423818691152972219108727890716924102106394024343084021360177522851582593576507634970456122550960298138873698385723669617921519816867209965960110012690623147197562336956622854374296776365773517515977563801570817250076905147424115670451120405032418923647883723686457527361041654759411378017319476034059627566056333356703243740946418061730342288103374080767957835229221071675356636288505205269107688666238809343043911333120198614551835193541123871251489218293848157814482712209326849546243483154607544259114326175511265816252466298440996618558671720862133414447087916054230851014373013634859544399523563524105974719003991749584233233685989996589674649298557291358252558903626046999916209764947750975452700527418647116185713969575865230736081688667279685806898401940664412260114224285027442047835770534145572381935965112340355523961726226378958883185683988609991427647144056101519555141745847894837076851552618456971487938165772741075770341264540681606321968294438401882219453347843565191945686098296591355489548766571320703775015600222540629960475209111878783368027359062644936000847142241834517334256308494872515281429159518416225178961730460576596641753885760463422501795016445831566983057677261749178126216545169636330054325940309147125663514919780482917791582827536431022531283295598939296564506044966411121498110270517742156179536466555190441818872507528202995874168679746298397478868532394088896607433205927773440541538001077709367828204751523858891120481190775819069932675529134344037662529877908178694297482278985473147990900372037589256869131207542553777959356570534399276616133291465671368042910882600332338464185141311839303243113282103515844373692493184963252606981613580104852482033463611657761780525171474352215930539166302237366211746681512220356712477795278607501059901840750650891408036307571851608033928929120126807999583678941647819854968543035077870468916906926389080734261222602956237516839104991847886205437129690313172938393046084420069804216325688421571530532207757776624603972387525310272102824983020668429806632284103039230010401966584975708476016948645049990331529136994174820660475155066696493969654009234927471042036295656715482106119272280324823176589522796121163578710963956622935656768582444154454646166605879310882319624490723547616139420402222214952520498427237077311516654830596817281288832542311205585278088298261439101665625704733841994709349738309660853294443986509227754667345236370577331579934125329352708619393164080448040704605218223853255263099026371258228856342590173416853476536140465164609598555283741618320100695437150399158677922360532359980299484817183881682643314082783788786084085585111787585345736470989240667443118962569448780277287039353834734772817986621790853662828581265875488151668023418204061782665659197098201569344402133553093574328237456347172373359026296285051994104601811732963734308739120013961446175127580890253140087825648781372153244747446204682842960014551100345519367310408048754712392824528997905653540224662850227839036059561471515819937063513939220169516455466673732069991039820023945300120140741467311025130905700893600939532668153121956743574821608343142911949113055230607213245123692593519295053798585711633332905204047778048220117995337868627378139674067802268318080685228031416194917354861119775799086023927595414550166501053381882614138444688319225030913958427624663063887510051010282867317604444579708043508825492962053959346238607148238818373133161254050141868906940141922255289469810660165854478854855428120697491157382448653424024656733549238441543461784839939775480396699881310332638618799678293679002734567871010516286649916023802354279123217378595621388345243791819047843263539594265066698889277291953006394836661978679830707520241802895753810355342181153277318498790181445121306423087554539987809373689305708555277349261877652397778982137126405881773223153909729873568865467842242182828008959576846659268336745266874456704839806147895822863868248366727001852055982400789983093022752784766976661820102950235274991150978725929507462748457510252371372052153003430447225504495180771189053396984962074310659225889842796870411632192384712541244503723661291894747307874990122047715603481288368692555869281338313252123995431822468227361117860744917476113667243139763222544090850208859325809310258833490530815127797879455592716124081010223421415679979233025484825775099288222439057310033662830000444784223672017228486972389053838406289704983882421562901253566719132098214977785799947398910762497232368175454001775103092237710816469460848588459379746078986748588907659345227929489229817994783403611091205360028932226133222014378976671966738076676776704381351050240544836677248515462940608301547182776438370651533464614023666258644173403556860224771115154962560647728267841675635225040905738328124785392348895966813935267294542674991058230843504506286052133678835418175467592151991216789774245401454383555614973690648718447228066142543750971792298862719657884419029506231826482559344844828354138164882530852296259436284305812849649758321159821638736589411253597166173207811977905613668691840220467537595921508279660955949524877094189088442747755322759148495512883893415888820395667065427269813211305710134778727331561303281347279180073523190714088932420198322038436822792048780270471208212851602597780463919404566741591129934284772083726458563142620559435032567755465257386489259719447074484455597641205219341194394883130946718289066178759059094779800261102586262431982268627562519605644659064728943327898775046275591732440657254267567898597578726218861411925049519512196587633721950295006081502387957586579811160251656731031964908137320047627865798103332306001308990635921414321930809927841174001643376474914607669845438274061757097761456068540161291227267828241177283095888086970158978491272485890604894214228502833729105024642268704335474759257413493194699334835665844559011593827938347978279793839887057214908413854441319480251712514224624988556607740243468909251490742327480655939309264582982502018639396927254405373859093381892910363398642192009536245766879314452190881470475130838947701740390442879247743339435958058894604003633494454755655980776024745543710449535873180078278470040268196909881764196906694379670702468669685989701088334057804898158838998341252938998539133751951784232283410884529653664566044600469648096159193952463701195863164244191430322607953223326928747771200171577172141068846319018949477202033018481231393352031197105712869644560780429172060561202977012912461809151958313188626538039782336608039968169550331433605236427462039175895114742917530553188599603149254514922561942190695904130214781899014532070180058709403194717065370485170999879862029970607048371553338991892161488087473908771059286497861288937806955140430128933820102589375963458038065406344941953893977513446815694986973618495671003351494165875311691945795994342371085248518826114619564804783323569077473189021936704017589762016994794258354404178417921930303744605830989290272380175866556613664254061410962885223660737056525823409089623656403291927581669580696057031260953455411212676105477917994513471010685864131104770030668275546587893775693183375845070116326929572478805898343398087744064822898661857771977940690927836863753092778942597614469520363028318866339748555990229159811720298932687912350452658272085258429646200558908776546184165045191735436071841847059772903256440238776946133773553187860020872634826201789839374959440757633758849458786216569623411173733325331688919057898779981349123526511609547451891546579797433143648838881011819210298948633766253079673626307258765066576713153106685957758877633963369330322313324215534877293758581786379142716542273019809696692622771751800968321498473059393211838227295405054637455512779898831759639952520621686962486616980431710237226199514958890977469033733720648490392844997588557480809629364706228379749667696399919055639887529786194066612447249441250960847527867694654597563679275468570945761448286456731577188529547682007495238472134898628013393169111250929584246916621781654166974174827016056276552789173357586594325617621019023994339852198149105828882878080658772422556168911506614986424470154555634475654133773735524305187830153251981656457615272257113230134645780992575193275660823614177123208340252796097722259350843527406192994598537517131092329317693518990468482219003904659674017840577131082979473812519243545645127172555619775614232495187076774316957479800655345282066914857948195764927079430918309032012916940999062550050388003490572174548853353702107146073267149049892843334510909733506780332786571708259085612554810862821310598939092562906832325985328606887568688957664900714354897966118692006402030495112827805330066870456850995609751366833714836229197687339590351521967257395737947545265256650732061625709666234186603567813240239276801769999387251286095061981844797699149904346144635565537355311467166559811598900466330332654589798636057066737710504652795205455219558794100477901185351081964056961536563077820128198249831198924206480607568916860421425619836868812547217970892044498898449099556397889229434582592422979385529935472997046834667319747821841086944107478482760149561318931617100837547573816926746769279714667318782424071502601466869118690618568195718475968900719416610623115722871435465397841534893712351535798055354433830251159077496564606947319715206516778448410312220505250877134644794770299100460425546258348482375548318147622005414388629470698115443334965273936685537116169705080081585530811069088219209882634857625174070355269393053131352650041052383807055607615521758611769981576280440153570397541805763053588476160477659475539397690023426154278546503018423866875343853260226797237973096849256862114220317303351343842939825162219263497904188599396574115348555785011471585831584761872025375670129230570180651637168163670145423283487113058451224700968880467814703419414840887366454399703550049025973636195420429088741705307641978990740070308317613410444087744606767073260457493533898917709867392905226460285271374375650876470511395867598371024393859706801414188002704587199181540335070823012493583601173775446176064109707022290670875063109548017693942956140692532514042909821538909324598006773266931802756266513867852517073148883870397483037177088941633986073592873258850668825628590746105435709065907053692540286297493794990261575239328583863095674552591880176284242881678289517198914014225382916460536614382976007280441384714119791139009799924998536859995400298433972020279941387091496646178054525638364652855225124843521481678576809188493559526593512055291188240078535146727122326949434298526070372186353748880655226270976142964767324895341419414670392553918052347442394920911214963734678228759183049202327401804718659848865428150938204597190380181458675990125289740344810460637432178494670655470718300234469158188221942485592473264421881467355399250000811925985800770752988128779834901113477861195632236813758130997011356878872143796865190278575674233260309434386371231702545861877983294692026801718334322595548864622270142957457618255458103160716305525814474537527901890762164340280783518747374468702687315727124680748049975198278398998416090121959550833418768556744508445338212412461175097293589156238376669125005673466080004370883909108606496403022651877534882336922708955891437985662211584253151750828070828803886831532330098597969959207034783829348813536123659985814340961444369981383895748725049393730031222968132027344924252089352745882506187558811055783465391067211377069459284299249796665918014362911379710606469423649421015125224892745176626813572080687665657653448206187203468838453080839530199484394003090444805640946663185222096544089155121416164310462284807600573050994706119422549583817559533594833219521705145021190214321369578358415257001503499566870411042764176906557642864355580941319315434042813709701506880004914242484734727773452792172038581195522882419187745633306530135677324045169927051652444846411410473838955932294461787113567827119468042399715636535912590905594036960277975548430708077639501409480987952337525300042372892662999637048613966417380743486069230896394810908153098146622038059905768262715952124233763819433077361787389740062733130473850721062226764839346484583544919109910486506363997107579029557678694103883779251688164312964560696110905516365653135229867990906951804362878276229592369008681874836981446631020795724907003239936446655278714538447221543626608216139431466922778575330343040110319992945092190070731679816678882633752159638298927887386275714478799826270246864631682440894970820326457223255558129570480688729438407845834933750179561960536435677927845646832445642405051960860830700662038129206036824041699597769864517022460353849916070577145006084898102782073635905179819256167727743042216949633230304595436555340677752986440607938758870134764243244575763014412570638854387100855324648164353819313622592304867617256214453758015927386508870761405093972657654008682651207211635397025537135742235525036032151562267124673452616198877537454863183782429527625063688810842837523797588537070126749816224309585379257628109851036489265380677087055107849625984540837755185397102634462760457118501472770291544155579787369422196647482725716630998951678006059928121168975711640728361597100800217229059020804933926849770324049378611551809881664009050932813268950810406040141299822871530464287485358910217905271222035414023632019700415068400221784487353723855699885941102286211199139616755487786233396875283369813671148448243501282229783018636522064729416868685238606469199211817875541935513444687475406888776725842265005454506957541899418774041796299285759440753041726968891823424767331737904372973053947311127532928930519351102000191338492623305783358269753586714538112145379986309011325988330376989715196591344700222933204731727852859148708693347974430000243348973903386951155151395781861860617247792549138096244282196835866204408402825796431156622778490228104324879877889604191404756302372373149387012384860088711316386131433888099799224817058302156952570013972036772639009474200890791293930375520618206557939773266180707515594486141554591479177670184619113086909608052591112017708253343505441548888605095101322468677480703698717679747346482363575489556347149373874204252929384284255337048237637837279084936925015595682382409546647998456916514034101146445934309669817096803860559102992748820257237880266421412952946511552486245054842229039584933749673492066137830169130169963523916884980574566763413526057483271215347561741686337785324712221698246675815810329806923169692626450772891965369428852555156474617395174967848086939462613864508463552549367056142432713104279856827385896688138329504962803928541464093209222979547750921985841287331886698829122627906732897824059586053145017623005070887700536448082074518981780916498872933821085475102551270779205481525494253435515937568345701724963790570827470655418620748633706818211215325458911964611224535676726369102519285007268059563127543584674201439074732965830930405413100711813558356559011468911483527433154041057835835609607918184695573490267151663507743895902739203903063897045322913152372217578246652472888417753323153378067551941142602586700390078649380365073471450211334406159221366131442142229230551626299848474673875401280929016286975453123237626551739102545792999887200170764264470712509854364657465784751738336680858062595476659175206308668874825736369438497152120359753924852427191112528918863750559866729019284834253765149097435402351352883026440363418134098590330690793139778701269746607036682736010911961814607816763565550114522922874742701083930112633020020915443389439051552277039781327100055792902338173571545140690706336683728773830030133388257764119776393217445357487884480454725509143716941925659968343294581925318082186028313328809400092104109124676897663785016280428052085352157869315099648565510503455129322718839938737110424094973278232794990417221461789222927372036566258386594896878527333845697747067503221270173989501841841856835206306987298317869482407842886649051985300783893635091392510395546638068073587026529588852947932447995949006084988911417856232367539928688813686689799012475086905578860605181919560220909136171068845778789061404951318564806338207905992383479779941717262506013165063159881670219671675282231818187747078905073616330945231514155497736704388040081115638305644422358425106509341529400056855885046502986943425076935505500862938397958292615957599402085772577095089741209190307786333532495729420410150154890283116869043133764443736410109136750576064948314420027715224221412218495940030888603434261248933200139707647209212729398908320211381438256040786837774714258573264849979981829927833364335281660232194735283280180847222290545259429669536106979285259167191843533557339073908543814757062669799036288057606930257130694475791888778779124411925943734666169535596019825624778389714420009886594341306984833381310416755064498302081868286503988312371647453866309976169239767535416000232735594207749868086312703827946349437334882991530555678968346828879171054332115158538923049496137164860652765126105737573058827173729052264889750727061582980306118998443494443171802376058408730743986152096037481074980139581852974150828823549353657682784598801154735512384799591586057608116774248437929064981294671199476691675741033517600768737748280842898355095737322250863476608871983543879203279861705815981682005690545032084576458492704654019684631258216947122437385717816507792210008160983598898084402528271427964169857304917545193938621513958928657255921563390475932021120548090524954591055715054475143419104088684687324400005388905444680286367825765990533350054471420539633781276267766762609527003690488970530844720705589358188462944380652554189428290710538129669420523010184512725349843400239654358840350055532219291729183587030591010153682821088762091505828307269586036633006004785437280041482873117986365626597485533494086909152122394474214084275452210347857160076453393913751207771268588761841126873541646965356980287890058784031704119412028654982370715363958873532128559464759183651158602692777532634713347897893742390443503586747963881554651394308235705206013695647469684738666387243753984624960779712917089126309914504980236288824294863376409378507908916139372300480786140060564430843892315832530398222105584503100264794561607545504232817279206321285535274789966286236684708672603111928104479811820122237861360330222661390256774554032583183793599922507559625212736741823912983285856147742335542510038633096269940925968547108319855710497521689063352547833353726545209225580011526357058532517732722929012599811842109445849182118964740346459405056910595066460832031570145867859538753229554976166293514432826021752075329047918865773755989953505766457179036244961614519719945172267778191001385050062757374378914446117069747751829323068983368983814031885496927524101796993810066606126852916979735621329165689562315934710639091415045704485296321734284956953943646847398936756818169282057862366329179870692461297783522548579688598459681247206912636334935957995885664987863372337757157736117294075612941114139271874681432257641603444413960565457505264153543718033444932837806500476267649954711580752184489229529189949554088291628023035687172887400775216403192225861657720559063261405735758097657799530815681507902734563616352638202758534839297872121321222540652163484051187172374551450195893124520373879776188673410499939320221651881177428654910954118048327897986799734611616600062746788799407789346487197237261149534107777891749878635246760522198980081438072789089291229960145357440883902828211431355526975201999619619149878658987776811929773152740655085432389494084928271045714928039532214771331767949414130534371662571604228595947280630011561079729580447251750417046732267723628327338693190498817923153747663648670466327949066307869956855098843672924833763365913010036393864404573248984806708688688631869851715223674482613180610911250366190757435914654242366545351626468289460794715505564166450666044996362223620372685919544417611620328400780540330245857347038962520162181271468261152417106384985860916890973468428996405635220140453990522902320687202803449055804727822730693592618294512625267188389848848462147801212566891808836112503885471280811749923406720683238407708898986182395141325608377390123980065797237932913524120933664723014454194852065856723092623262828879119189034395716694656707338037776036406411339536021472628680872270480339884978845047361120539817458680851468027529178935236708576507266304904409634691605952693101370507344303466160298092909576629915048658406487148603830135178137931432612430748590864684820713548754270370076255107677846053831263336900646106680945462279181660883090886745841510369709643519919680256220315247756328303618977312634664119140126235116641382944571465962426462382994852417909276058279617685989490917276467194676116888508935309412883594076250759472364274579884956443644061191761580787308484419871865798186537099190224867828986735206757759503455852447987121179363392160551149255501505263909175338196155624614080303124476961383519985858397177551208536246408016878251873671625613973802366852048697958646136391824822699067804590886551082388048344057108727938025053441266349750411852740826687095791947336160871402701137753395711283957662562264277365745745239325609119815844117664766252885647437136007173817182244585268753315834367590342415770817281028912394278783976064035802237239547897999123861439880227305214432565699691611365045464444914285876872837671759282200318918259476866446516475599505951011699135669692474074366102885370495785518099559591974434419365791394301131790020499515620945439635391998164653036374140966763140145042037776288963458207554584562178320700844271049464473958455970215333069310660835828307486612874119956289800447440748707921550576947361872110948177448101210707424164067974457353880019611081262043784884883340780857119764395453002367858130646971788000918734486325557415694246774529705692496177818265243368408862268960312565511582752920378376339588676095011180211808424428025947062383995773329810274986611740461787088592852444830579885635410602736284262232812980924679206364923158949796003934343514486090960817725164235014595174187854079077099327421169448523339877212675090422233592351960717504202777179801886221267748798439996274186255519726363489877978209969923267201145246439582411203537755836285111189331979140277998528080099973226030566951123693112359199232338752855707325329934719661624198488240635817721656767981242298967337180097873251229308019354037083575630667310769004166910160709161280491577909575470552781048896907358969729119118726984745054372658777100997743610773391622436972469491141801669759061006147144534548591804536773262123140279688294900179012519237355714710278376680524073086966013937721518215347682116976731478724421960943461811072984525845288544656951410091876648308020562066937348543351842336009380448806367302879879992647872806393342986259374426412094012865941436137849176130411039112205866117186004387746311190861381903964764406604129870633539526340490161972704221554066390519647006706048518232978607782206923742640293754662610269777795305668163024936456753215280692761806871517424717749684146874719616878381062559270617648079649872231594955733678863163324982105132276876717506729930636619551098698703699577951397895240001430832090945015919631583275882079848701671527616168624508352372048207079384727309411948751316330970534883720804935074149129754728774994208289535246633207946714985070384687044006827400392001802163670184123527187939923658352533665313458558829394514944525447253880813057361230559986622824490459569849427528493163214802823323496593692531668296017808910089644543465714414484560875906906278134864668594651653941857141793187026869027796020595138976196700538291093425106248282870392632877161214384232408519927526572688843555527738581717708453256519087515388746578704216162467886436764761269360804909354023912154063726239142418085968490909448832012754145816864682695149271757590434973406722403207187852802650092539710271876442983901473653030896821029408942250433102635787221135389637898773218830455289091620370469493265823950481025938866388650300333625477444416194654940275611919325619133248928509525227287455933670648449012763042903050278665494828275164890065148425773848368895889904887063706253338446179938548886346814680675662151432335910273915514974122089671583850361846985837590634964938887919087657840224767476618286108811449091287695087327698306212805118928359091786616535525542075898323475080896316765971718767788860360116573619342542314206360585207302996743566944309775709290860955972703105454935699461711710652020405686331357015392805406166233351256891595679758827451291465725003813597871871840819564331324088722821493004490618214233179433026224912944350232482678938811954082929905950259588780414244762438054973983534740595789897827570745897497290027341771409711701589139232340371170963763686570972158370906349609548978615637373443569729157032606639635600715824937166753540641274767882542559825470005926577849233380462172139246286623214501674307631816284245331130050246759622592182297960802226952863946905178178044408484780984195090275821642927560578467550975281708301785138167091426538607689381304373254862695541211496956423517472304466993199412734034046923440756335678300617224319308307054528334143745451554769024297633741977403681898145773880255660969478589219667557433488330306437253198055521510519638756064914393069310650245671474133657057884990509322013897867655535437866457755884978244194920586504723945117794927201539273362145525994493411994819787501396089780981396603576663544244497739542809350375957806405011444595782375293880719058733702195344343772578538474544938938623259614046169170682033590363380417811483878106714498263444375241800519675770805985994584646566078299182691365837896533631894725984262278141537529873771684842439703513048998068192033870059691147315570874039015556677766747825319969767414048753445102239146570101687681601378747810636799112555124259285226304890346624984945984958557017291441292287934978203932724584993392184595367312757054214656697153587175951911204563686682914875259847708844600669200689847866124786673917390690583690664626648224128581515880846882417081019917845589792792013954788420902399702360679310658441313957611551867537485668720827066203859158959674193092867325544639710183576416527149017926568144152129826912330187115040334151314880610239457505199393688422639250588347735779317740067844266582097028328615996403479918696950465432678319891031451023126961922290304146130920085619896175061883618768261928590343503307774713226944208893852261877381033333613477157983275758160856784979899058013843758522184599083545697235254545423954374323891084342845631011937515493209018739195608619371951575604009909228188032758471926479298460916651463923283605186636848957705311976498638979719006875335763699330507327482058750548033379483182473743645600640386937216644771746365257692226682835224132077839168700106193131626622129032099383049884541589665715999477978228881996234379726300463790232511713247556284132224537799047500469297008352369253962508015248971642417580708397938026223362665066462626541385878271415029751956227601976835678324951044824810815024793182184595346723564847065245271207650118576036621437715824243545635540236900101492363479223581505429891911771755551345283571485858654288427617553876758033693614114317695472098193411848154969781889729087491454316528235035818659049948939831185424148696632081856776873334635512448508336939309843811382140592917947553370868752790902417446949456741000510083965999150423441377842965504544971743943533179526678400451990394083470345174830669663026802972428704253766655923210596668425651590369389863032040820586404085090476561638427822668444271877653626257421411331205427891163461966217345991319421486016311807617236486714698855193064791303876821320884776473129324059352725377348342668369581904923198364959607550025923124618398286295412226133506523954640216538083504101662470296789374059709868870321090716938082576395614984763956235049385293971565802960624944871505231110449972655907175254934311325685504805602788962454664829535198639175813155178722922221524230618554292220231347903810836642635901903530226578573421234080526304601769848644545664395485978977082839609159780652704379017229831825073573110963687575188621884575446766686391122257546832734588231133450299389137815386638603282923792975898548722321310696189074482377751666144950212232843720130543357392791800697230872020700177417074648766703094985557579208722336925075192505775309882065355086189686074447382156004871096966510313307453767598810385865645589183170106126440682868514776742549832022561821621714522369709102329746682940068255073026729534851902024487816784036019905685395465124596010600554646561952148944695747245517742831379800067301735732959771481257880481323302667615458664189021019475362961691734317158082885422257868984988298541376227957906437480031805218690145298210135564627320343420966895460557454794018664190104052683491355984719321312302105402518652298601649597994521589431706168694964844204346634120045456771227709298153487723344017873512966148973937597597335462895808558267935107116031329076264155478158906477610869933624318957194517306847210888760312609504493804391798605330834013870390691070031025940476288244096548768364127242771751247329499878363284088586289288741068433519740195246577734320000507039345928724879389539215554481864296352503847796113757250042201371592185219503647642794813236297581922582156631355678145929785817432098244118500132351519815610084291241412522959671637212522854964627966279875604339137074462494794538795328707181112811277695791758270780302611202582569890067154157348548084804521543460188210644779445814558804225699870751424344282155251394246402801054730600047993543734630589237494104158693030735189189143922183191423273879771974225885024108653021319752407872786972404874012701047727284115091764270057844120506366305581668625831233456005447106275442386633348612736507739768297377083986241706339276965019362069051796657050910572122355646220038955942042633192573142746185266857307487679757617901051161438759052677071486128282764218075026320585034736895090212009404083645932148391074435406178989370329502663065565510389587650034817533206049012809538103775327688213610632994172593983077942862535475476534984264494564790927831785365289867090416570052654868532810634384843915501998694023053706229959202047016720554510499370413561608688242633374651919954447503381985751783567557321722612725435600958509929489031030627763026638577203406789690919847647692252506473552188064838451874883678616654347207954639601081197812256696920114332024757055630229528259154301915893733132462385036887465287656146423453671720983606788013268856824742525959804856761157944966632718389703944748662795212010217662079615710980718212212500723098014658264430265275562191844044711192523657066370363543457688139153266300599187656711212554190762889229859944212395803359414847297263875564717339194582025750744294866007023988928967749202700214839766410527410342364421663774565617474605511163070024979984335849472453275735252977063162442769493248187179148305125440372597100208741038208256126197282401503235859781447900715287805735204081473421562089178456530100978161737716644699159014613176866815708195874627667577401668270543705260689067244333167122757550406972861257245268900129429092026873928635647919952941786745928908108035758284341219641648040043807855166476328982377919313580036046762181420748180477864795974798446355690689511366730182844103065632623552982763868233430998981191742986650586406460195184345815403429333907687723704350979528611317402357070969534747750686163302302903304824171898301720614157180802321809819948116829730477535907589106031346831907787657344628496281778874924935086376771435350403726751276873232081424820856639989179508383837658755202952420827647510846887258091941525349814748302802052430608240594995137225771479205454115572125381883261608821004168812633211174764919980925877599312681199356074710082291377588110044295362611395917672109894910557076856407258946698854288112645645857402251539599139156054841336958327247151853278232067094939331893299107459716501791631796705708766531502289113036234552452061839300375453976071569288211967485287292811258024197533864307176914755543905071805884997095255158080977853005294191525995204339312178810433831333517938679636287119312427622207691160629672696528936485171487556108399308907433126070803533464654620683898855592597332765878858021680826235553957507650402735115520505060598793461902774118312662139139986352465855919571459838090045232068029271478819520880690177162770975072215300600692084385400877104290198304004154913791383555104800757012332269638768938067475117701991266420061782291308557413841147074852289789102517403334982878846446240648149455666108110154230335209293513202709943054967899862516058945652843624762343097519410132595407380454932500269541948797384137773950470681223829400938753282321232098401733493751274196855363116683163927765513867322100508442430510415087976623946304560108718510491283942788006354818674604858797714204030821616873860455098007793147628358914466132004030595717741967550435582965112327369460015259132922288528140120520642277602108842326818899341383560377076173141601589559319048675575823801719739231548275940923785646052456316178122383563768006936981541977904079006944848511126320892318799844485625943122827295737098314014829561429823134671356636284501070118973249714156552418152798607929798272620994846928648105879982061998121427857705137991012447508132952462520860215933156150145218027036272207519041802295713719566346716449286074439902637145672904068871268516707025671107086283922948197495754867104269385265725139236269040271711429127274263355219651133409613627290656074826464925689305627975192903918196094461576777084360361469350401816721941047432966662178378625102530546796844061609805118839718074138238422635400207590281526252806221664030869089540359929315958649702859178750412650887506195236507615980622665639676304387511362541296351258400252590704669198938687015634282955619295773102036980822855352637994926934006034111740164885219904462902911742986376015932131977949950860919557946089337732064536083060070588986526089678107279575981680483832772577775692117586535155399515703338364885608242206201042087007279725506597153964771378435557197491386857243763987566842875769738650167400230302113404536870847177636601525972634543148805935927765330176666357361271176768474406003386636981951057987294199858228620649406555082945406774032576131225490698600579120778635498637844275195405928075562333535454172943265139935013020021525168023447465033191233242860381183400694121315805150618389993700401452193451069000008116874331022668905901875642547275431786389567158992303367931666290792530688574197373260550411432067392960390227630085361694776711535836082518698298987501100218251415330801171229787833405668058567458721543883200606508007312408064442091029603712451863280867179781521315206195958671386952959946256650685281342316407728087622774132247677678476523771686371159962108422588862447115639450909489076218360680862351546193052874767421819566837414862414897052066972351795056292954872356667569829961048338318738995327239723195689719497421519681088779047018539168447259247764853172109046920547535692403803520120210115978501000512808407874939204164573675968654442574294094458803529353320972989519214942251987525623197043688963052508957123973874995415953484627301447985718285195287199340680460566488417285810610195767744325871707278762012924747178789203593849599441224300963588301808785768686719740835660827445140588297458316817441103135118789943859699863948344489851366177008679481262233104055890888189061545080333078089148837453479957095038339456352870177967318757639013495057371622581981955551652446118971679544399044347647617260977850890515689247570131479172614872165769810466561324711000492746799450862096909808519790919715149864472257078285421449961787087416945359406032517278202929956287864481849811524825216290213130754040463283592679559477107489526847186550855843766869240790041854559721760205392332677176933252222924311386129621970006359191772437870293547888819750478941324076175121599254262568920392709456725751699906047900076070674569790989648549312983820953499602071223604921472490802345786862330096230887119444496901432288919181884068447333199412335783069238882620278678519288045757981908450441747600865933185458754303972098185368831366026646063135591748337142729244359419250467703190662385834899466598734727548252709595203698583547618400389055521040215817700433388567512270649652112926948853085655996423209965436092791411307334301766329071869859740409025387094467182152562125965320468292766147153704587606497513185544596170745723290434465295131403627667990213423940558472293828743196579627699645477891110304306292417818097852367370220517541381880379050149226469717998832915970124481952903812963126639500772880169275415369385808349544001751273876533565635604402729445566028163883903421115141051617003652938956183241887253991888021597740409993265050392491103738203815350093447684835282885682724730735788140410732946404807809584979221152754769243902655215564279919751589637052181803816186960228780526348160461649791314188592637913590583576074575053826556409075263607806617528669744618613287266210028102286584714429614494042420179018061889471904338213546185808544533784534208525525077269877545842259519497215829789958044641135456657713322247775054856290446203156498492838149836870959197074615406917080103058644905758098154293425082865657779969747208212922816812980948695625390119982044060142906907205203533423706987349146427771986474448055541999945936217458199638496724922494199795431969394959274001975288066587509949756464248242086962242505210202702344706969413516135287848628221535690534109442634020403607223842392934238904509739772279758042472095939683033542181401803068778708638612356489850494276687113834423148890740712685576610758937839194169660165856802157701418345040340098592819855423686120628777163324770347434895169166150669006848716396905815293960905037083590562223782220176535502039561033881062515451629634785206397126208457362691400769943150376723007468923349954213756469289335538287887435390375421074363705337233157445823586142270970625514588971644685565955305910142166135173003614698616861913852867382411028877562559716233388957524475970452510438730821234537662156437630973007693279787277319630198380959469950909811533405385149166679925385967483446902122692110765230626440347597684559053660919278242618244220418005797883124138622910974186629578342928419985559669814166228913005311229326694020977954735037583542626887216575311485859181113141056657942183798421120408839629473198982025191099292189791369968936755779228847607426001799638258863437723598725210563154604789513783250801837073661013411608563629025922644048905204824894334406711433465361857888088250760232159588510515109556988253474144848908292670039216912324482024193897608947478301972936902726306470263504728445616072046789728261630989778904795943897044137278850933200739415052803302829841840180539425941878333308472602615568694556542085365161750824027539512351850979129055805013591628149236987072411595162700211115525416325911969162074647124060121152116173126177390622769805327022482208696899117765321511513240593455250262413467467690943886946651280100366692929560788746665232563397172120208496023553825206515589821772002444577290569676028839281467207804704013196824642437095873509322823212469888821446627987884228455139882291976300155391222706217525644559603863309554807418026403906921555018533887134133863054758683850599080622257732041211743026128989989427142772820188953770754564670040268303444114050039197831350326798873833119322742619144873276989181162215263684895319969440833079235061352346226197868045947389138662483635476771260994799893356814918777861635561636836057073650552238817254186897974798808362388139812189728790038170770812055004135833381113663251365791261418940676673532272240121139916292593765487270291964527528307088786313027245046199475444235730678393013338086398693984446528872350258577883580018698420688975010421503691317951981241191807574881312437199767930688306927628860755633531684576557590945083688326239441370521880032274827469838346942542584658290108681177797622027907494985067194339088703799370436313291305001072008516518608444046141293242188241766502597451697764794221755170246982833495631913932848335849109938528409454463417846460257339220951297800162764652499220963337765290957339359312128683301522271386681689054004684491133580337368789445723859494746890348257209883459602105773188771718749824796139947506072546415781492294618417910459784490368302859384730452167047485256696397930452594845987018038122430606556878252748289188947486537528827794397919388696787505421594000793682411880329608613170496509392604459397044940470469215408136031845744563830049031039214019165887847550888621051991558057079975226224687142691312150607906752797848795859913162352013238452834744218858120277428066199450452127408737689901765933451683333460900365461292439775654170279016480409564247022594231394131398957001566469321014303769494559297239484817752841687428845224873005376825632652894048923560109298653357812591645096868077012579121565704341892769718799385187998625463577017376486571935054089110335522062395755616409701020418987847786355018115341992626384075181802572986603105521888400680789968121066817555735561459543579135716457368352406380951400264625296987952609337312489814656583320567397559077825480992790913903772412183399889943857981430713994977361011414891532681435154986226346280326612198403441411517546597862991440166735434286849441480063970357916926592448966955997627403834697270643099531045821981269533345331650250976455145750145265817145008693068134762277230318379053646811569494145637392637474918350980189657367669477556677401780212950003943093959351540823237016712581838795338132430867864673220964762039647083288859277984770954797529138882674642674993220593672082694990418864687056222612750407765897887908957043064815772383279702702586431975010296689716398417827001615038581517899941527831055755184826710136464202498052610115588210971992224357735882906642440146861412452623790126032315705436856330152594709563123838652120899692635115466607789216411700473788702267689152132818209052896547699526406494919288394962800527317561315769771351407497154739387651558475122451649784923712811302864425872882346017580513434254378708636316934831608993602610098831588760265351672319082176044957897395137975007261255675856206514059214202071269369284545940950934379792196152773731039465197407135201662614664926057451097902015425716752079575605261916775553778790588177417407479268436483582513670413526630003248309659249479000687680050475187567957794188345359312237181586812632180380639326467458839246217213259278015821012397398818160428285873534779465470451061042030801429055257107426900414918406183370098848059101855269746528492702993588806996292497898093605339465104416978506641300906341853714097797552313579174559538430365760660996970527750946781685425956198183052016715429184718870558903771196625535050867566229194416946176455700982977643183754334253214031703831893400463118807661679267529149737935407627268480894112234467601917961989195698493502090761306329921456091903727225722826750683341549733501498618733294259451543419646439749313779057866601910437620161906447093723901504033279579868772797289359708679073660118927006809086883379831448419543029048372010915378389099861151544471120995754877429887337028016932610347715825875203974773611194936638584418058626481114016283580413851782743554440052111741657946292647667913588340589447547113165524331926214511830252409947463847970664112916941502972739563378766047938264238365941522588593836309207823192399011669642837064543008533792554499203120687844085814135883872972125066284801468941347445320038459806164219832478821216458669509100713929606524297552990048736882499580227967789117414817149766987758094695342665999649183520510348223074157633031985662533796449325657815890772384247499897429845840661839703655052201305249782340030821104490834595467219582664780689837638554815956040430041911047586410002153169107260552480718423252271568014867685482308981947538125303046676679687742162612559920114212550686767602747854969835792416108595799275187655634537805868786639121813025202629713526061133577980827754318044390677037199438465219952843233340034146986623802409403240024001751639707885087920282154326928065320809189676137524302500887998974088144582017359393565490246523767093977668202397959043605297141211443148955544634965344358213044371275862391085869333888643617997326307413947612457501622296553918387500094294842119971580014150182861498619532705056642450503256744981764040601593629687726702015775125770146937359497302264169841344326515305927142575365536182618834969372369936474606464057155804693068322716316996748127440581308635621975013611758855350717453455468084674359404503532888891769926340636600536004103259373080326997994885950330942871961950392171223298500989674325319234711449416891255492355641239637081883755082768463247473788062447091571504453507404655750967835932961906409880823846151660998394563068179926651148361952029834033226736522905965370663666891365118547482573212098964707665013500970112703793107056534036026025211267291317904698306481530082002490157994337091661447697077291900824607558623133107695783089462553773633690870675480906702566157557780824331381879259384146289957543601798266421083237457472532009155377913651864902754388629482930435400371497597131630357665989717043834172462598739018535784274608910605523004632090597646703619253486383745166693207844212195482618018812491008389442891802803260105796964553953658650174179565212673931134214560390960719321063682243190930338720178186472232772248585829936867567234921389676577622886882915301281441405826575593939140243618968281905980975790448557426507817735223358071770223653111589245311193462985616347239435227033210927747042822596679259891973311670426388249075141627684062613256109036782002569907165382936372304576656982346515242114467505655526125622914048589760156557631444102262110998998518836754020395381713057667855434043751835155599216782661457476877224693790452157263501649718163306210455048179843160656719823991195150313270786669011150943768715829766498050085289214328962262596687037676750247555424940793478188561582534933465983460490085074258972449942276337336861978863226057004819049939435867320550817267646897105220030881656670490080487248162924107564115818002085774996867619240738447949836400463872081776899970124449227425500985101161219384110151214304232109842643111837199081534195726345972531807365976563509138851196396132234413098809940561893614818582989068954963871703481854213881794305854894996966056884207928723363466059899971566469381301188117874560903545221112625227286521483504530089863544270354008532014648057884552995548252775066578435719458865008348615265939480610100583933851370079793160106598008774412705286057615938093767129365243005756007816709966153232547080936361697306485723794943396143670893976147609325718245853785461158096878960878173829825309750162582810829495997980881530943202629846246298160189101679982621596750115098229161582832226520657952830248360373486598134427582742600970728219530467471692628350022098571474076509845791025934504420998918948675126968127627153319347444426460708579480309053476265214742268395090777732623516319888282099666791952601611814310772651082371169979884052767153812422622935642391678572382430069426935821081268472958213720734490376418661785558059909273107310538390646995084044597080347054824027870011121561711028522128411718606410920659953548879012516902067925755799459162549859951551692386593480188426512487958077388788915791493474171029329730832858273653219769181898700121559515302980581103728193986723380313201011975222212809724086409088110006141993850799888288427621898665090895058795456233860476994202782357056773567892122414351416876248763771075147145819765529425527072915602038839680419686541226276570929941415130044401682566404233331064235623739181720874399794974292992437196022858050871186659948875229824015331673999963901953470867604320094010337564836619808521379477645960078124797842208716285968964855111447577400648044740385836499864825231246884807653834603678915294770908598309486500100444459319784937097454274469586213882766156775631556381430664909690283843264973514525012615929618537035060770548763945664416534141110930902962212867719577502710971873060679104497841783083288288241582892419555842858977890845152423271016778042377994710307317098691692389660641266448912454236291552636427925398176225014770363183915737604110986787412422490668638430702400279388172383963959369593237808092000111793788138805862383182180540263860571135878272776414699165722587091301326495316561489453450158373711589162923807196923672374738344084890489303424108005965953563117082765818777742336100887153448834974914730503951965018899850187122637448749547197415770860830182393859093518601174530125861419677227257675685736538307033849590271582589405787847094721313345691756109542808997724078290737994529545429972861386911316904639648082700781799179437401150532635858428770500269886407994927516146669444721437070387953105279159227121944933660427363184210048325405163676960326164859429244677412056255538287012986317800378193918398658373075071407755903473703979447374407862772830676653822645441075353086772991828041397313875018104008087003525535710092582888369864867142958367161013477131124322923644534954669513680397157636553988486383403703234235656029581389025320218287894333925789891389316575597288981997311166718437051328059752038995009054906307755718307912939383272880791335001403904241049590991254628625068189762315365906459866739464276157011462689488798755275992421007197763410428128002746922893072941877750619887950211033118086619179477550514081165417525472983236919887324658375823166334190833401462382603597769671173999314251456696804965694376166336486680639153355774104241541487499306921011984359783530789500193278004516939023849181448987740479670362271111025825418683122403211429184074970147645275334115734281911674821731607122199552720892697921353363370455482302071395927927381765967026900937343142803435303579188882642039178695110213237321506014986874386845671185671443097406659894596520501867251537423309244029494630534399898659832131658055118925796934187714673523521399084495790978256279858994193347482722264557368348707131859716652628357124144364928557763297234848128974557854213533044535225847796811570385436835190747111156369097065986672508416454227534966295155903197323292161346867739565935405425039574215893771108650085554629449623702540890974073570549162746046666740777008321654801777168788554373869390048639644648309152535195231058115002410964042182254643596489770121869252638709892591137746085465560105217086731320960040549966789334698562418158772486963867646085467484886222542937894428624032672852965759242694476024680353663505902451586590781333969535391408010909596170971690936772696236393747613253249597504739979001394013708340259240096671577265825048923404071907585833207079413879500992950055315762636278041326333823385846451967071169474666497286715771409198982565277705483763197431911861200333305064072688451796757221191705503830795825592639132802467906480962151665121774957570175559312501152230787332904672924830273957836998872934090953520088244988793626357497559794210418917964050281085819593607055853026275379709694905305378097186980201135921884027520382348208439799973879171371271912902983935396271830217838054951593735102755544644671241088638756509592217612949458785950741623706878587954517243856809273096485882109248272592283237183117237569160892163654961568521549041006691154606647590844360412620080789232795186595128096932275223810197988573441754266166987687480742653429285044883237582948880585515343060640157205620395839320587734103582590863337437058007255118524803734539230264002040083922756785946730843118948494125253987745096417870293488378821562190508550523294686284349896484511907159562900421901008847209694414245931839244339112680019661559422161365107432569782517155837332015465590474171741665263852525844818824627863247669054092605144614418798917263396407981850528317176980027709289174082182380932669244192054065666407296825782113468993236709364079845460344176731815658878143616569473366326763858305488484152527747422581067155431002619131080392682473829499396104935006284110839716522904002500578798382293941229793482739909305268747135037351592422426281282727162425665085797576059872406590852967253406440296284072900309369412309201495829610055304950104800968069942703808143404619627441696850667155117216846552570939952746157156522075441902559976257294546878702060473319598740473356010071234252965545222910406031955843168046850326043446373844513919053142544416147989839838888136578268331302450913056014733423477403227612955058730818142698822132906138032852086874730966278948550402355711118774106310593348539894181997946266005698018358512512265777347594084444180079451043628732653576359246001017961378367702662435785905931886495239133196641884615732561547279063632061280229222869097971350948206570682770123309239310293486653360561190166756638322567600848577442278156100843804834288961966901475939172697573975000018133366082724868601252024795125666945202831428909872610694452024137066117796393420166393241795959739314577933200303399817451424975790073657258341558785132427933340872826414041166118584942661966685969802143758478494205199250129212333732701576927146659784067206528320645704182662284499853898203767145010458705029413240824787061480734338522913510037287719273227278305132346239932694104197814678806468212559204931857250326706910854023398431994739504412582288974604527945459927901069200355092200837038260632045610212641507726345326111348789744181716093672882837007412870551472246831996136246387849013250405661553141990313923662809460216979761946696519395732518004144141958948690608499114595290671678754086788298724817882673723097930775145985191455060273327369151428043339591784920047478091959969245827062372238520102789359499954912626451423106823238965341367056411538658987857153475685914101341139042103470558607173797030493518844641653002226474262871268987202775325273382524838899429446970029633001252101925212706483796014115901368802297644029344362981369275479888250479439612414208080618256505154835236041786355117243575802316785867228362629146749217334861540509545606519771016749004343253087715835779716400944619561238922440803521328806797751336432412990954086318849743798082498834103564142773696777429727231238505903657559336301381353770286807785100478101880433471486903497435137967796562085502706543092510418280835019477208882627250163479081524472437822430578053086547864708817650108378104243197862958708622646917189273824596661756231093595667853595796392509919686398225601929404947352080252046199194836926241730894251105349328062725835504848874251641447027041340721169327136036804969954867372738362174175765735105250065951547467205171426391646212818104762294283264104271813304033238241148557760216650287974042228318531670964900203839216209751190807688326700196971954710488210721271712990074308294782943204736908967468839947631800712634659843518645787108158735564404629842346540503022505012338165929059368259555568243024980160551400820196699642549675776194384522374430174610711881367326280036079632789029067612544914896071222376240863263529751839115615840217708892485465903498232716329196441118936860143750887590697143668958246273341515016086886712494003842376183014236738950145673682307859386287912202821740748982166712619613041049297863082123229297372272312575127795941791392782760663878281945935485523010802351984309701871390616272404421133222484022218532489177905447335761680428578853208038249904290799348944428657168278841185628471869108345781465297205003458219285685626996467502535441490482546518123755919221570486972269405352717886910403408041831538312480964964018877579956586348235635374444638673574067440542384083792940622521160069804261986322424263726631592807806081206261145485327548434527365619070089328578311830007034669847414856817285754615066142393490574976163073558275513227837975559678475827364985373246408300448003103511395344965048025995107664015524696198761416606927133504756410362020937719127993049886669372460618146058035654006212252906526465824576523027237308871850232420049786449263565105498236881791543806053327463135673604343831144435190756501145665327461026260212409929863460204351452210124144300643420094181750266208845048689177870494787463058261178725398639190441596413483495220067290595184788080131562423494808546201622542352085977351025027020348774553289975016403866468752795929887580504363458826353146898830016788817999900252015624172204244007296675819269485531262848265193269846532949833549358723773105572608067043323593750750816205605851036960413708713647855817869265458042345181702437532912548473869606768755812354079832488914956453578267863856732502857524466629505210517679640465273541412473772690181031783266849218605549420551854487389245066363626064812700540636751713554770036271436744397204719216946100514415957828877753913051507843985501579848169192024779506602410170762611358964769952787036432775934297602669056277149171471778729933259491888375337447407916388693508035430057990003504937768031038098411561250105663349018711953933454464289368478464862732409116766526453869329878659618924851520459227940293889868863067191414486258577484438946073248051709782762244512616689455993440930512124340621370950092731166202331443206624068506770914608487615772217383920886916284138616948482169087108298321718429893199205284722921138939054727467754230573280030429396521919531030080845301609650279479882521522467221940379756609125610968251313678325376597991649955268504894225116879412069666123604640917284331094227955259771278432142220343272224892783177281007678649788672049859877792559480360721677458159961911827694034535387717691976659398336787123908696121962693237261928701009734013355891949697809068014659807619777541235567174388779880939858528450823479476883152448475344193743389931362107770409588064218652319405612610717664011892951806986351024107455709048652879267701420854529240521276404359910638650148924551446622183722076579552233478651278550321289736758229520749998811708182284034118250526189839410788122209962639706050905659588057411626849795739986470325841051487813174932215584312072077798137448382154709857689781746359240182575146562858078544627118601805360474474578485935376186512575105352208133967187604356103982013812231384326567196704796153852517834162673282411058475281436330743628109093309420717236232191865818220516459785432094181678791739668027544167522285264262541696406075475938082827904698116521716093306154190523251581383561063215881785594839400171412937757160996080278703148696258106123064451015405413789291878319112890984638686509726939492692237490548209656180939459410734381673762902853395854242507888815606951141892576040944231228894586784204778863561824610400761905370366180754191992780685953818707303558876527421447913167086414563511448178909737847381449850243168652196856917327195480111170816739317966061061312705727608209221387026813980942135660517953965043750651394036611277534486307647306367692363223601699493436405337049754225374137541432682975192497808860560700609658447605192434150240535758452722196837859500653830835783469164097020448608070309169884867613079369068528920195646797009103225636521874131423433969798381463650655087172666677072012166455833251830394326840359113416686129201857889048151283127295173165585749946358099275987521640694419325433917574681415925362068812782069083043741882019077929100205803477281155366860474492009249102070507307329257169501884885263339652174284711961253692277950927320121457228099555622388977255295125158284128274262948932376178365346939250294395256140228956236516702920429311178948527952624089847539894455376935886885351450601280388673486180839575065485309588696471208259456540660333868666609613719254650118956150136495821982511088636011165067710046900735594593837534721828397230665346054141426396658213752681701962466051037149003533662828993488659426636363408443756762146758423483074514014347087847978390749996907833479848755352652113895718941450861932455228352007712621077110949416066385505544607166834336094181454305215432377589071627395019623066909813164522324211274038426436084700465687208553675706872526028387478134835023572603194346337083026961984713516732411744479206908460912029209153931188194189833766304673098527014368403794327978555552177679910550153126855240582374253049281508154683424344916140846259388024642706462678160495637832943431654200853565180621269092754998784101783399410299673901998367737429620713797230592626557941803380585105050238282760252289835726440235297945148310744013526473179491290417507880947542594860658578251043109449144900037829985619129653795949147551701739823324067227295160436821900309525184238644203246232952305876297468441877438257116531658490630938790891952797063283211501382284946651978028982752491856511087617828674026246709883017430812861415547120572745049235330101709671747207740823214757044564388105220135439639768411771263822956238081182475627705116763727956510405541393600111170549842013597938699967797737096043877450539535992580746480654000961305848798436706086760488509875970047942715398251890378404852872026336204328373604324564908191001739122968104960697611852872495252040655730901982955907612239882268243782892661505260923725352137220203647275904155829229251280846074328469478582109679554175290503687919339890094656702361195377194197833721786044939254719767298700338461194668524637175138196842960915650695364521707174781657691585406697225358918384161019003964207032231022391912885229972565598967439134980574870712300650737887431058346002112123910463987557804166892819427686632911192806286000848190760179907064115029343494730572863725411366916264714673821440305516337315807378180705425074359188631863798373890914386454870205637496760984996223955480234221490168097595841370970049807056351804111670693270235232816785654816128990575603040519079818718091834606810923014365112844809635846437664457655199791259509910096662017210186705634123369783896183778635550144452399515760824374320037424983586367717490810229228054986590626330186903027427186969502800500638729218026584916378729077045477632755118387506757268407804192258366579730958220298755518105721731141499185002082713961922497428475042525430839173120443438302405703969124633952767219019820419796701669807492214043244471677506827389682929748074374138176672913765184329257167938245319140141103362207094871308499088623368502910443368875958687686724323756135216457926911707379961496182863211799978628839861013827153913475546948756946718673351653349695932958020048096723215722426654212650350754093115311580826763347337361965406760809909393191571653337669505223790689333158481371962640973143720227958738914872403481960094768422326077673666954711132272624577667057206370353102723688965719724838807464576704506770850032903597429971185184140987378144758612511429389663290196073346344333549276035183003518554011788304849174744518943570265040461538528310170529660075520044351411442338341412435535123305555335752346883801283702816456817290011894487172156618222051793060469530575282960454220066714661349268111284826554799511084825296575153478617160141902693731392702311317596810970194598614781148418650634675568411074924054370972854380445931275209016928895010213921742837475300326174694302600754241676994690369287097363518529323643087846355985316569181856836607472256957714638743922828686958055962123210209657832582299317620029573578689219164853907077522588747452542195250666316949995577695609437521636459228907157576623330753252755247217023099420714137608193169344861859445682035667143294648828753817443953741864430263218072273098815309703933482899015047988316397347804236934381380272434513748628131515493558691636459533177686420168898672903335094875968613516225722527429287173074193772794359397720392281263939308559067335587978122638633454553673135136915493895301221308980274412596665067521880428431669199306167718391930332998794957649213309581126455272842806688283457759205729933997254473500585346565305117021497258721233127224464983461955080998755938359569500247445285058931400053413935855036968375240477693806706993705093881916688812026923053146184609558650539827017340793512593686111289494318058896839192783746488372604856991419986069022297786149513610101509857340974821225675797649899484590964298015723685962867392330779942970536108698646372065045175425528200872093823324049197145792899785481681578094519068508398238827878116600019859711586757195311954802768397206128171126268298333780985903549768367081531454462969545387190418160583965556558474737081407812556499030567061215946011940444867614631624881464829764136780208376482025496877678101193424399645815409633460530767249134318016126760891685708220772220786365702988287104382752253028521178675533851664292994337989672272643245210318296615555324816214893027668539741638935168396356474820329456380335463904391815858031589178366264175891108784198472034480910973008928886677534541465795035259623188460885733329530482970132917337585720354044818774418319323488557966288499276432999514272940698870699986117035758892068104258606320884674418899755945192585646147937553079234161158175823652807212251199164855022891153738458796539149971114557623361846839114569931259553732316266952911170616053083873318038149313508820431922773789577067774760636894207870471058647506801373216342104381039202854817601246049477989244596796227587589652736451998874128718351202841529661104964490634873733891904068232401728338562229150754128858695635515046594356092235250160917896006437864647106055269653889230455942283264864222665338839389844410099924031355120798743394950250406376154883606521291507448651987456524656537254264075414755833525363835719444164023467638160503756682780537690535448971792180452963507802215320902785790367398412488212010784975985522283203517943114146812448351688948873979318824773182608365715506950506949160993642890567246200823810830565418257771864956842004355919043048123745533668873326268358765767002971792794231291822751170578166233202456183188248081843727307166622683698923248581471348324901044618044945922903376071403181298928887080925804102946627363279143620995856773492586692126587910614572135464760312485952444208009125867397128661135547984826146263817404784821660410946112326928238835357315808718531075548708455087359514247075532672094181434110942735526670687996935300753049924376305952042989165555210596531637977939834953948388311305285846545575938622762052596071786324137268662463149473228971807882338027731241430060692651985163867142379276556318539477175960259099025354055350614052536147807843337633361086112465830132357618445606278882802972883386254758480757530425189788093859712915918034803805543009446231776639458924251537425705205637357356948181196166519030033642360286072634004844501477651743588509450455354745465735402446505407644136222768402093736130850328191365629416803430116206157133243744313969462474332254325717800762717461357803533750374601685893837916189143072021983636739586482069439697713189708781665191542844968662912777090271198981959098248537365331436585443288453295751377879524147874196801032475116132093029319892466969621616146415872308341858767137845490928838555661550385711001211092662198649272674505259081499742704678542124942112627459284513721653335600386017017296530245857230065960394466223834022766210803832607195515502370535042469081443118921791610818807666349141260261001528089632266108823914992219782672882612192243926778035589072588606618875609343300783484321957976626975953495799927595199503245775852938857066134289473953757081034934899136822144194162747094661838521645415594444441936231655819713307972832128277900177910393447767245837959578024618346032883333873416895848720893911855250427529265119624597889441400385988151982534352239920397978323828743327756288524074343917336282390310771640611132377738341869621242423320132246781026713882193647094883128522511536130285503787629040199162347739991140612219874790107147530055528265268422536092729738814509292941226726877613212980080416667227115233509234819599746641893749403305799007315562289592014948500781210039117605100335416181099760227708935645612006368495996081893584886650642804368853304322745835685046382652182033811049349866002135243611835955157516541683717939707202673872288384674379851770146343735823043443791843945476102425103857650069092335572483011795643180977878527323103712704703660561390728474271336398167755904851280934867703216013594269236006999674617163478982498627307466664961846762373806927256602546643917003645862452674847330373623262044463695561141006341638451749756056300564889765359222999963626543732407600293118734620415746966143106716739682012400706705981306558025333793956021021221538759201989317236601905774392451605396116132138069464087343784719682845077804251798049760394058274215554617225868217545430143301442349213857419642750761411533976917052514157596665025218626816675479414354132551629063589164894364249622431987345549113521982103044022988248732141350983912569532648486306923040921153927505572214382129007218500746391856774742066090883543121668948771462739662830541833693832340084487219869604869211362026403537383663356929396006213760792888002930016101408640290165818517734918936058321679031683349133110932647884479322064862706862700163899386885868058311595113125008287518491925030266131737477807523625686203208887474939465773467529983410591782331998135637084063455794276973418412652906564283435084541542397932459030553295726462194718977600098107512986004915631890390580855139656774108546079191788105552357255186018497135711544730559662037987320266151326978577171842523119370302229692830845325536279573451682100513543542197419290806277354458071533225804212686537701384754114876917824747846635951963603589970909611300552098439003296045327259174637763948806336798980788898349172133442287139562827125998152273295688985073692785316758878724740836284650135263205702567946222782680276052551260404840396115682351466524468020056641722471731741987618423742155859702441815128535562018518605868758406358271427365952673109225425239823433882407502992379521602220815852995785861495620825567519890391093717171995842277803600129246382602917872562742332908921180969666738875624206857861839263636072567590735631236679962241943646275065972898245701432580006069862299701384563241023458934746450456427449709426395487968221453506964291838886293672152581053178089921262080646677985982663493260592759368347928806146763773158639830598662746885941039413377452322925560232976646340859191787542680772994013276008390143430778043638882787053555082137260578916456723365300690968432944297251423518959544413755578387318203585635389626048893405758094898690899605898182937810618028249247427566831345308499179897140294363139750352650693068639005895671288764317277676006320529155430397063356858707520961247650812671629706886503407613966128271494831716404754686966731633694514674539300130504430944370194367370000416459561926061726021013181820226984609101532084365026153445326160367160778271940434890011333097288028518961348393047198164961762258655351397929078752300981002469203547909580586329744785374798654580302239562701503767665627919546713128956704406707663375722698854669131982810211972240386722747170264892209621955624445895151480672250980744303198020088665649429201741198842358901872276697981434947852052210877858058752875506280733927543077243249371846975492929818123442008650002639408340736091510108194425921000901656344936132798607117443063588580043573855841440315627541636707461456498336542744954121621919061065071728693393514312566544592249193390585056956579009684826901475621870353185062524045941455580600663891657893493592098749292143175474295210834178507251379831047505129143249512861305671418738360532912626208219634935955077977829572283960436605471681477197665245044174171919395569965247781500385690439098310947990798467750514482401369024139833494006248283159356846953196969541802906506198923064854162761521648676357406869911826915788444938047671889956515806645113763578847693330710932494402282778139970000735743172144337679004648360721706122698023548593390174968767255390256094914109204213794971453080542660158881452643967118978941500281836347141512997840055548078796477699135577126983035961964041832920024557260826554696026631621946176540110876188824207586713621600611539281799159079897226119178196649719619791769128087518949403288382845877184709075281172356681695530153901988044481084832036187092206567915856788660473851041022286461904196866649593392983942575715540091238917008506889691955439715458039716176797858907102376895497034399043516620774206621040812959487029536633403159602167879068581470452390000941888200216477872488747199367488962524487111907584162065585580280199966371749880041427558591072500478169497180143243869958538032247134140412615366980382886833635419322855674963390410048567222234569393278835511757772724214511435542803928959127442373023945811553998114390745670424485085131877413666892467525248895160835079129116537353041455549624645833301131975437271341933864993672267798312850593625847842859837134515140868082020163459260063327666313785136624822577048168180711488728384222765205999255844980045416782913885909100590873504944973692036660634635883186573581268626511025158557874971174089372065856643911137844156651465382008599679754574924318568313655889804482292761452810935316081258368373615945387873594140452417022509588176092344696113558720015883938322465328452949844364972639277507087672962014539592698867264629229078266291066831663310655725877710969537031827109670361074133014407210167615355790452009365768278429829659282287883998376881452224617943178095498156549520790143115822228336456924269457219151010648681791675282428362541558077222193168310290408889315432377093092334840418524124955035764686192171180794436835795789069750359942819853328263204805204784694752413832833815225332012232367941883637383692409703461438126264424732568659047468725787639951401628983697535495511407796809945711965612589037811858240556387749655308388153887132054708362972321852918178718484140358063341681799092190676714538996887958981462558092182076588983393102130274780669706782518887222315837445691305924134876147921596434525097295146460128371172015708401314191988104553637406029861488840775201047574545744722500234158919795253758728442646871599233227022671720916681575941601071332235848856363121944974428103544098904557477065330879936707510659980931815285386584602001607558468098816950100013037375848512499862972468519207794730844796859294826657433827389134696366156737818706447540394065376056773581678337235589501877951881023916890898509306011326883932840488999302063821194451300480686167485918180203570779699237187670351072583753506491538290871674435583408041830682429511828697482415410634234670022496885892590942788363782601399097735091695083975129360605124855822142676845851107369216033291697071092781650681514523052746723554581336280017973515621249648757461924842001239607192630523463600101007876401309033381156941587158740936509091394447930631168216330537650677318276966035289737817513094329824947415350491655272667746530553564110839425589347313269871720208097668411878535020160399800770096534288017499536161065035213230024244308806683407204219624938837382625550433919292471499890501387450772966659415868352529563738308185349165455466850448816020558914768481587826783406087101049577957088240423466949882108631171369424997286599404414511933595226702796215338552481702876009844182097715654623288412463168809286990699232279458674778099833070407444676548147749319882467895566410101188049515557810533649718673999398205911209993734446541333626657705436631016673254769939851283381543602296033173272900479797027105885296572065312588645176208202918271969549567383050078391188863005675563606332904562818685572124357429890467485136202619651343607551680614926956447243885025127673754127141475286000573928843556719461697714522947468077832042060834393603142129895867383529180729296122946335734849003936069581175670611423325984679118553723801575448698806799309819800776747304694117320394689724494394144823725347934883788626240997986657782950076375514062822664826871871906904487513411207539277203438325876146969315612642981235747423028650219054970329356669997815197128724789154467813373675120830897770149115541851353780346891379672095189051262190927945807511160575120448247283532637787343802171422279255643455761086447829544028209891785902389447060690344551750541200126978140416911167116343893547723646257050722928897247870810031703379850118297029395186371975701894849810882434608717414450324906533842566858869362451569239675763931772936135902839391645003810530526332674103852082249793837548261748798380917260804149832824296829442916173770444281625750237324447637284628262626886058984610527860515519291273538334854904200641494757442258877936174193485628093903205851466582874224147802330334079276996028913568780557702286106816920024107575262920177253661402249749897930225540974244127869512976154135684436117989651512666402382842621057600356160931743496919826919592032558611796416404603113576929415871246952248184704483772738255485947151583370839465273956194181168725524037534558831479673654288897885730009672044137450620093409594632217366597940137633127516201508531979889568856209131971437731317265191471632017043559091786895098101383489411533860631911633858286740281166142599139245502901696518426794174248931661700722066283654003673987462331500326942149939072519528052308226437191968425759413578902246872565548399013550296417902893608370370188190127997083894828128792585715670034713551207947538251913085463486135368244448792938276728612586386306361052645088723090666079410365426742682730046459261865442266493565237144372108422145998393643724653743616555894122061837127531914492754258331136852191354226076125192936946742214045977418529727737360321633821655983824136878010027916292377742415185576832374817724351963807284004134638414327008202618789635764707519072767995775075412135883896546721470090306186422160528549782681644120187640584227538504211255626089741599876530838801163411029277504810535339869198167099004847564757093816556308178478928770271931564620626950366951704369494088403092250648113553779988947765389279630504123221066048066335326324710941192857623813195451504556307335766256715669143234946206318519705507260074190334289613165218906021169930006420630926243057653729581263827072527659424926657668368568119242163571489478843056145067027045112821558808312954462865244280016099833568487475077637873824090758929617744410963419492959926257968977589220422336402028729983640743166949463740270543100459689618947909127758783104524193286608351011127397218190230534763972798169105237150783190817172648913156585062128478567923878491222031437862274756683812206588021133682032614175604990096399075724408374275512861315001335572632273362350182937639327510344248945258495498204001789026257336636745689704392895359310400866075713166491970229405715819318721468496366515024929749278213349029823570145037689289180804434067247671256415777740831045224372069935519379890840800575837276292038423375125167366567023370956491392803192622554967958436207130847138779317673899241499551002752614814853417502786721080975966864886548546403886202673272367171520450794313570162611860650618043959614692360549433946330755674430689333378952083354881736615863557933705581457605732807355133722486874497361137811926360044942470127969712680995459606779309541602573287606474001207506318607229027498911050692924103154404355892100485738024323287006463861135394882972123950061444031347694071936733472156062408428510552844331833337962169170764277859445475803272357784709608933212610659276812832398627765424617312370949222375939185150292308517472282252686518800506278598181844661564293796679003847664036243104439533159379179518811098784796639508901996227111571354398407298639567978502810496263428093060213622731400889688113429571862676162905961101607678163100678941563734324620770621371852518442237115366589149716158944179402143875717748303661784558733065192873302571764425667014148186617942414045192691156083951225449370548758310745192464782262796552556971871105134438049286494183500169649733266456335092072208297300718086680939413879128634705405072667679751998698760122252347785969317472308918720374309070033132820549083688222897353767613809028722623619866543551488055017651302960009857412653206472323817834309538422579959228655780434326125131576188341873355147696989669570609808580648589198487515227266051989371783770254813270741814037505227840627953932517888922085183825157211632954544244839705942872151172339150456193703082004885975919114280186241968302029591703539390428686109897060444434795932398992020946589078734981712419004287569039925489374440264177869080804234463652107575171407525943357354515618192067366424676106061531310199050076026750913583173591311813072389812863448815933774156311840215155951610939794062034013346965907079474458080465753609795607712107493432765563848641843649467392131635374125546875829059541061865190356569389409641777050399808106927303876028402794088058919770141895497135249735338259600542943397410996558889586795287734148084582553643072332941606328320469650334148742370288923469662610913026126495689997594902828686887835509919763638444653807902601008283011242569889356515021752685349489765008506311682365081962170933549096828719909262179153585869284236302713266100654922070312426139795691384831501361322007224239631734574883856701917500883989610594334213971356077135622987244434030505804554558362528907084982858761447914276178618573372446340033686952670731277834529802087621136905372247176603346237760569891618151422017103558317043390501420949740326330947589205016257992633759251918479638622303528633348541292637734645948746991343482712429745863684866625978788179276457694464431682737982340139837075265893908172507589731446361597300936482480255408601921101494280045261155383254207206761624729829543552595642651911936621714488979023577561149777612587016421525303262248014500353960532573701350882515742734421102067632641548187233050951231695025087756370741369238784323315492452885059301571961258628118125794113409364068902471293322288572875797812914966898320120523679812963391093505265263908823729971441522482184239924699537657083379456548501665840451071936620080030560164229406566915943138031833689824516568296543632824145419379046785834084794246532412802208455899705902393792028731970562983511433517692068273829220560356962031401763962471344628857180333328204120685713827833277857227688381702145975853863967972159663637522718793407077236828043943392917870644470926834671195800146761583263314133472752391706132628389939168251723394004614854869393189538223283004814778882758269799312366463429958558874871661834441723249791509051146963954058795682809611185888308791261936913026807766176329440967637055891359904706675003962105867330016796478078050254636041527761468539924291343980313899392299181424381563908732715760781760739814036177711444363768552314715556949226743585717104244606961239501503022390863457553345389033211170523692882234300238510315200072102688539278306528657091233736440524565147834750218291643135198068303928861712132653811127937337297080734561074439438524863850765399377583629280186910715954329022183862080635532762257080825371191535302122071443429282147051827269989544721203625025321801992674621961378884783536757119001409488188582056736413839940341878061481202703416379016486843115624245431195592682353670809050681094453147424669058957836438969827136766586770306519415537349806041464598588162572044769675478618611753988724511442823838690017236780869674673997960976219543135999833355565038145337276004205683774386076131811763737426760789990879315440225583334009111728795991121378317313482397902775185847129542689901759811383855732291861439526624543786217085989405735731459108756400215881438191450307318173125244001163068589553355972457630814061229412799631157649576788857898232619436713322643171861348975490022787077956409479020485467618436756270837540575702142415432748752828344172819244176160221957090004467489852143353630294405061822408812131764933912327210423948465991890645024326682030973016258461372445312554669873228773814061990724453711836699422482167156065728028451377828091374283977498292836665016076683155878933591323143583649622795972947230093382015704036421994999764123544884173510057592277042749929115672286361171160359237481518505343312804229558584869337633868293656200000783196970937596711441411090976770694114212588808958285027698323560302609020910388348285306959234692488850962115946501493482599841737697796709565819563681170859201305401245854435965433477248098600610829606753669238353555998845806928243739143016768978370843179267362639089068922760457180169668614378249160480012633752940471170130194853528668267581144618337064419386346592105755014450165984536157802754941451695298959495237472511189819681925102124915144611871621559687203293794968969759508404033144176262101450139945327049278009110937982791754544295813274806903115124070719608440244141388883549150690839003582611266890208809608796197015341670323947021723542514842722865533065223964088173010286808778120554117222500309481753492682956542994661564766630320231974294382797978616657626126293184358873225875834295009292654093282553733448343477693770201512000976041453978499018058112583480202254415657061810041087508802438881685348067021807763995530838525565577895130286812521478087532221177785103950947278666570097089747613776009587045619506363970635468326756512353236868502545670192619975607535146656490151587683147994045828361090210247435564477046400463261608098460697406058570978032793007010970171360095812480921025481485606695652732081510601752815931467745525460567315615024983479071037399455949704575179211799920458828983959636213026312891751440450384493670337378781976063630822953975423561672258732181448892935863423226581032554384900083305226229006460931189106784088963403630270198106193449921977264685151458263621146107960416019199310465019761372340981333064152397721904057555407169405566490420115887039176013833402927114705859732575313212746946216525374032768646060379063263517658432145129944708835601031534767392863673048857976007278017219644200335367925866935976754038713955930714183034459635258285284060288859117225310815032411496520730883865716363278402519813640570049845187047963705057058093439754806759789122898890140215339253427163170436382049484073565290314479470516689678543310145889349400581632472286120962432287944786613847545034631418300881999991089331911723323799980428216609353142548554637192944551591706186159475877382113258651574977409925335333778149309708380392147712298418603577355681331544526164638824649831444570007802847929259941956055963572811983933157445030606135093168637085011858172532681912301867309236410085235317984364679409627155734133568771591558978973534253394231208228127037267184360295623899585038676358919998426528089092135008490275999120540651538343592622667647268016067977605179144242964551742851944036736367465598492959874732670438638257997973769922647632562494044837707084594728672253612540008607975704693551809123879384748820313752895661513151112703920100346764684109213630650586769282428492448292454737637516819916945597011125193192739592489209537663641771312314566683810085329103836188911493733327089080059966405473711323254225720899205986469830633211800383554080985798125654757694409713549153389156884282877228590677848150103075715616888312916195523146745618739408296282390174136729463515856378297079980891747455193209574529263983742351880302802895525751409914692490108393946360948814233056770225984887315176824387495188402383480716158184625083419335030090365262423076460449667472848662920232177886060889642977952160831005984119207825228673643749620685578808606844088618944923654104342558011966774889042648063945299679966875173457117626911948021028945620891332409599699728894871215003919407646732635886064656936212278315239822715975138227297466364604350448711000165014905855329396658697366108737198274033954056263008597994652283979483031150011028477753597935860511400016638486523484770099744991360450924330772214488953191327210449517983638549924185725947597534022401629123976633546201967730441988616802157180552485791146143412519443076357179005118827250751341822627737322189910559981252248420917243429836346849929456226132928037629180526544489316106931889700093635521455190746477783917960069430931897454816226609584737293856368799045420951753343457264539475248204866206386762752714795676424047387584647983323391789090379006770407935094144016078683627179751231138522446987987764172405047133573524529557824059220769371200536917549798871911212967279963081857143621530797888587463553384998799965983225308929799832579761983835232614582865316094668589448141498090282509172322776220015239076469545118103206513168035712652384071967501916122269130412048085637651675545853735909904496586404252895991975900941972438460279426229392050322739258885515912349286274266476689722891211770293891680906104949982236895555354924613856668120399599971567342831598034081869262258075724725623732927593222048195777246920975541968189799284856719289522705369923855744774517951766185173045776725480999015598347207013643666939299032266330120455560420160739041063506794167225458354706663029639106571060749149831051562195666378584036749686768402743201500370269566357608732189944797832585785358031384456833399337794389921549029433653452579430811699980846420276522251447635660412504435776283186342920727807842779057158929071954922688085867069019258373289602059389336580071185974679696580625411450872456174409953949254399808780228284355489946303775681947797833020899246219847705252797153738512933014535839571288411851255076694458277985039387170836449077975105933763627285219254144244355428868825039363223118748518720741277162400067956415266169902238253424381488573895493209167982174013089418103833153197580390085036087956766489309160798242491977335561089293027879573546685085060461205814612848778641309428992623837800993321777492357519222718572280371113337994318019049037927160594488784725926413382398008400222378249025467771472763856332941196866932345303917395397362182953444963856241124035283964486871806941430909766286701962987311775885618123675228231502091815729713474380870358469835393712763360059961991001155888252429406101007880926156540952801877033943812240820135386834702335965876621925681161891114236607907582003387788099684362459219969862644167067139606605948834404371361728416631251704617349802529338550357408316508243159602377287936215109359225841482344515531646761046391098350481884196313417957484953760408515680291850882099232552609064658620794545579350590231984504796941030896669641049002368764264115395109285132852812234751741685765692805729436941538173114509599424407518656200760890043512628348722645607394084174737577165787607173872772248995761103437363666091765596553451731649175667026323971778126842438267773505753378558297303072878017420504458436203522384848041057836052296219894112472150545345803429715999419707330613415023590670150928736433028957542881214159403924897259899948794451326251046915440615671116713740526468533351384968451031455751268066684924178874101502527689052921464941701777776605633201175946303134839983423894076492720016007263956164329246398606909406253824106368771650787579259840000013197390316316265896371033363444361166425601795390257435217051045055178423018350093594179057152480731948995520556674588826778470037721959004457666593405248590072099420805568465771176459785661809021943636161325869929185974114596838380631813206932312024601764959433295180330449246226928945061808461517982437980655655604177324025435782591603546663552281978357809053708675414890873989215193483871982554699248898493303998861933676258523075596661364488828869071678115576402622550536824515211901714451681677050369119175334823233192415846139530286178517510291443976653640244477534100970753357551151750647802302401477189099248990249206752446270782895183274211061754596415730315059789260169389894817636158954419918077398188021443041775761617453036657885836820002280178151426933729145405673764880781401957715556265824644958053079166742016252075034160459122283279377550002946670611573818616499152162470284172833073653785242051113198195594286132736572133389688220298333710112141149825642732889326402138694440269432514358534755553581474685081267982102778079646734644111894419136937616352687576510558233411334783011820959591251326754682559854965064938782987601572891053291141129357053305358648304344882313562265136314427986784673361794005153772018154669953564213675392034870815081292195710562945419856152503105557499057999551045677139601826153680244969691340039844141632589877393424079324428937155673911088794878563720696004835424759191273302620577016690549987740091843855090839632251225703524190334346679417832452108374170946278498174268156297255555892004121862147116929166431361473199680821961744156765622940284444003699022020465473387860556756945301704285723804202402196768692354613267019133482018926667959762162365194230832239152405978034655622475128609626483438871377044610455590465605715922015744903113295389568341460345689642324268516196427198883544874241372593650480131132678037712533451380968913302743181351732073981235519713817927578533138472565389381000761054107614153265000243199575586945589753751948293978531013695985773600084093490628158400118601601937949896401648857053494696367077471201039640641428230079895505994336774572133137571351965771361288127170010995578589146004871951169841554744288325920734677502171280928353454278837858620025023647097745269853991238074467905768437711779579594788023785973767666466632773850322886957174431470223532177781497271400609242721591082945761287489489008124693662684560018239405926888345338462809620836112535685001360340163798158990424657022576918537925650356352025842048535798902421000622883898637009557737661101632478291183788921193924572812562916053822810400195698249640243267281095305831993967124759601549546101322367736452562398993521968030022267485933132880332857390419612731144461030473802752724157575629478487052805831427906272967284933749882868613568682646776929686937321316322345700384729688068214384071312624084924609379259506088106336155267172456481441341734163151241412034645699065865337842936281778596161553787308649165387802974455194022613663530531277550631953003723431803390638409709516633755669682429540315935473440853637145918304028818526905778745513729183901707658273406464971113429618221944804140784346855751760311337884336439071547882218784245646688985577206526544469766753247505438321112199690659808791412310841142017598856873643410533726883917949783864517154671044281064077892455182685932614728192435722572357246761127918704908219281303197549535611751609935393300301354683446544033488613275868593555927517529463997721321119479649131554003721524498062844134131769604545393453641079837392290388278414877456046372700292078150067167834662165381670622752134054749123327904521089424286834568398973376108506788525017993213170369810141961868006868935815630691505833608902782437206624950646492637244717920971289134972860821052506511116352396906502599093644044572046547641215826615951685638357098953335025739635406846858365137446206794694179723405802560486885817185700695794479353180337365927361331805681468535683508437788049639375532858657784906517313868453216351393180822899121821579130457916506527160041964781706346106231332768415180216010595392020643185153342243079048014214898449734726587706491079704113731793748455111802425781313291449031671538163395951573547058923859198842630775228717146422670366290279533566272452153843380808356671057032933670339924679142675124850315275708996907560041987252815205349888853873657069832164636718595472537238315570790230253047610477670459229480258698494261170212207166076991330541642427854592305587393743999387961865850978661932142855509854506587009466942469868739754584629010033284975875372988267929015084844366333923787030619942628268239756238449279897756197199005803067328179663354443089061718402633095369801942072804361445597245638228394158418829606301120863429090475356534515435959259204214926456184971389011377978566118748517048634089795409941084452361792872129184539544409311047583946653805098819707886944955475086607681108772609805865505204679600741877654029476251700436247577092299961329011237213375248125144358534511750316774934933459088214503569320971069294454066606215215869025507034070623135879619462152799203741530933386338492541850247569915747539233306650463777504079051442334950167648100637021985014916495697064266696829963655382625191371897880196191691156285570456388524937690588782522043018905741464079974547858227911344950656853131177004372295956467387693419095879644784772992920581165152746206999525663745459310956996721995255314872024551544113725758556031252385823678582852867694540767476976454494040559152784175220927217109907695308873313308497885783201520271246443578871182842744049964432501837351184623891923932673534755567496348920270706449423118345813329422638540133630025439135382435908923733582627697704358981961548309880187841316615724707823344096573961306177716987451929095291555547941376450260309733867127000604046005524925448212528328638288157730095186780509427540845716935049662786762172626750370448890844651488274221871590770154879666238240065025691214487491119145550298998957900698634533534175435990200235143203228085687754987332346683556020566695381086109742224477361709494661975054728219403767359037746162319334144725196208283505593427584994127463212824436796641802293323576337140903667608582477715419927903024203985694147331915042288357121273874836012027056809157963590494657358504366014628898859211075662253482485820765452879191556475129436161709587667697556027539719201116433278014880994783776593636869999432993665686757008928110539945048604786647897277186727830478745686150920727278177960011103794870315914658243740852120781336338616908525480487982041185805614327456421297535502594604370016505833439256369159797092677974704177621639863657684801913080315299640945649719386833359381071992181051168941053924420872367240385778059121419759826278380026479463284831875438010692361716833513721410126388978120004103136107756571173170033426111696938765546760060640389535677903598089849759532631093562069007794665345214946692962691375569737618551095139181003882831775196505203588122671564096185807419985456136743052075804117405934612251050090569251869274912443537598880797214465816574669763637536715453445179829439217564582955923411246146710637861719847440013711367664793566372816542902996826365048485562996786943866780254051247539693602558321553105280020823758353649047220515206077352371479280751769485870361583003157609763772671084081219327884215707882434133072497623478233085738147120936897102961059377248085212898549003017494990445501874796071813809052843196006698532885748198022722007217398840666205097955187058400494041761093009283349518484573489704995677348127824883589631618796555002117342026991111821570775521100190155493658365722623443370292819783726182105814407944564858767385116341609702791549028601256115646270620231259486733909753139028487710242577350012468287802793350029430217381061232982128903672030407496009601002982920328735536153363188380507260272541308991310551027327276620557006500830224620694754131503898564638930006080277368588812531233539140577583277458173089769824561886656388446704648094016309900627736159154181037166132773300762458680436973763743385764293518794324290764678104749926744642250678072243002400269549016976292187036348815715674474344784512766370453040321335488834485151550431698093077584388472149923806015984022392080623583662647028551262748990469305483933824604243638905604823952811618372189280303215359232856275603428243141753739529617107846037251857912592496073183110084310728234477531750090348338779915661217854477460756636003076820104362998879922016537908413117805825036856838211144854454546414988500018455169485987825269538285899172441714005072327433733855369249241471344818023079650886066208832374821382188600744536966629989867416039722113937220831354643723196085105102587036669982641742818625746599528213694489003132694173578164629693081747995524764904558639231322319864912584220884193543027142493585425136186103397371507793022173851846267048470359384895353280183264725401318015394417110763435619823794256454417784536834217919729730336496066391471794498930328277268648442612827770223825374424088883116400230254055350669485406664001459232068616385241929249532683635554898480477530783386707368926097941566358680588764304739334467527444696258464645275076519110492384054627148201679339951915585509228705676295092122716334803776800660389603646478530063977054085404892053657346680180782834321224031648276846440412840898538212885695579315839008636119957901705028156935585621551069686879500089829746607776304194216275627271697150114505859583317631430004721754926580398990437210171922367356520933148614998510519286690058227057785024872296634837087351127296401460079567062008113997240251981351917368664746899864891262144606017579072129150882290636837014993234126515391590877169237267940461275478376281732721654483112579480378711977209825806799846638405004248516763013711178109033443285832714988909202744340187030932911337861568368397180503572935104275258664167053907685132757909091701460368094120390117847893288545347907469430067933278999545540951207260418161509037175155548616073398750247003830398602425050428980656773431319170801805352902882599851017014888489144141414739379235095964420082517449613671695845955647101936108518996758203100738288313128291782231381917463107163309402298375437861035346776787009215709365982557763829943671626367409478971790149125609730934090975204978388112199624719263235940972742806467783792605675589212711785475793513990648828672635131305233275719204504231238836440863141574161630188306058454116559714244451083905791518986171512963160370233303996713720954865959584746056869636683573253223205839250226829804795520535901231511695036627849528390620531442715463620420707031515246240654834934318062603719671651633587524741858814711359362378175733282938017267172489686551646144552500649561738345794315398166993835645910083081905519378460094782279711311419599569442038922778808693653396680512429269532427037262250694495747009764182356332685373902088849005879512507305532413726699714855884223300563578147667282623208132112731615032530596439840186169058771950318312192402588188668358565752570028579949459985700069993896617692432005046584355989418116043553582676548715094009412049859823140033231588219280768288683727179589169439856725003248922829257693850599691468047267586208829171324289922504717235322578359266029502915217039822241399899732592673729524536218898796337177990715456649960613131728326523541881371884737503821651697256164496631908800408764522500188302019095403188166800071268688635640774683216554707093380188745564825217719522436725484102455943638399457021760973581723196460021756101758726504120698759424542150448479164473867633209225961776955279638688932584339459382043182096095950737167086433829965294441197871211103085845023863075901663240591007396145547352003814433319499952200155381723588824856153715486479061845832017229838675669681651085599817417070999773165187226506086675384553089587508104320195476338894546374028717143794223337736943922874739189783174298413863156841638674727058167044538421606641421037421112335183263353623872703706028980135680257281977775019340911148065536455545555490520095350780616358892531244081893483139109901917488625194108592858401996122159340871980208165188429062503047651282399373216343427459954321697255000434996515333180282044026710197810232154914061818044929565990649544110864015754204449144241323837893936137351300926200866989461681106630898649755252185992811354819816363419248451419016830986814914291301116138737185303724515358612117147698052452643460340242621099823082978607750368863838751730404623235986252777898305635567966438685712617074509731887759023761488562677568575754432909991222779812058965919692425207261786619943887032500631642356999310993380369827718485640336357461313907250431101006300334121602570753737025813559670615700006222358584736451122058650179291796174546289385024814318451495985106022442966249944313603491165277630547349080013847417215725918100690887448257433159771964620447309217566298709095613653058038772208519114335833369587202816842756965822228428452558231666085644657738827532369394163720835050475128393605184841426872260759002045212158493568983587351291089368749518630297667263323001097553693659304235834150283912517988512099683097633262465582583304779692530614487920952613928052519862705726544636250093279002300302683932306741621616040721787818487440801437170718102356079503137118719529784531366551418133478042209136586210732379890227799714905900791201730881367784032074744354557136234474265009971998132467982307858360795881513902408211533722110514164105572513802921541482219921584513045664589018192110388374080948948808934909258510514701790710578284839043628262021232647507593209107190919762127717410959376259103425474635602874164873186683057933264185572852078485880974500238354930717800281796803877931538969724801767192777135388593658061386015095557558868378297887983091565688793435545053336395486153283008753017556847287610448486292149487080589239254964033441090180392642391809372931237779083288250513069353428114231058244580305315646971377004015019279702270875092051467071145569830687880359490083477964305692314227156820433066613262005275253196492743695802241837960523127871053762898357921547618646629804154877325821513062222791099362733455755497507720155812078101880541263927800177414581970614278540024726926468476607199721776443804538196601322274545473876550501294544757895199811896257642203039037286589839739729783597497189984414925629059178235186932457992980880755107618965919810840090956235765514694661731201788568622265558983772030148846619079330186826491279500026004383901729640984978338514513212665274555182796106150069903128438003801119096859446800902835026882539367580683528910635359358252920564060199783847890112813687730323255809892417425393656124597162931773229230536991191498159918480726705140953068299719229904507390858271499573503791346626402784749117179615777882773509288250751250906845753125947244549187782916145543122150097546315351416821744515879806261644131325446314691651424171354145638272320185011499850869289262311988556586006081557484239652902709978578181208205298941697284718091284916012262053245838089666459793073428459304146255773512956829441086855873390275448547566967139293559426130821893633258818010226949769523627436780514315647933325426594781385370419315740195134833371420812846146529081200806273767261456462250635876974145832361109427975867203444454891710321013645260608710938510284821892192873635305927214974448799009706213863910454053795663398500890471802508539288337294951634074030097818750255217419958647393379744843952370866832027220280991519756206391613597444963639830586168048205557950846079028422188582364055339647997574008735477641155872204276852362640842054987534167191470126125490899632974410099624146800638231738514036632912002176276052866039593069963359630548965604327667065805525936074419727758776179709928011110347867449067450268700819995426798096234126679850988141765843799862234952645248809717095298092570158257494458238421532834484020260020454980814042680374844209692189262705711078700806598121777845949278196932009332956839075756263597470884461149730742446759919221019079627833362473862573560718929450529526435774340416648957415193978586228949837410521910670603241424740281210539861206522580461949163888501939869609387606387261801635444864719765235760078617872649637459419808453351728234014823825738284268906769754770853536802519230269979213903437487797163186266502231695764596179514270457042113199577775265104228698605067757382037128265325142783121520548923552129953632296607510117568243004974866925240202849645776228625160821624979853304008651950849386532524940394700629797524868653070131403840017784128306562121079202460781996336264307870666807602287324249444435558059093394983618152049180168527407083984553793593823385000003917946374059765254405716308114129053124400599821567836220487180492716232638304724524195333097907020132613700406126696902189511306807869708227619114517932371258582842419679665674060846996540778060725144775008774463992588099976846777772332512236240684837635401653099131419398404369455442493695508789479477655884753972338804652951239289951265518985825623969314809339831926127109322294580197169754864581288493776403851313737233955826957720426138653767245506227735844635961632493066212793605391332382131164200651967125077461256669379231923157842185184983310795663175053469859262588000026200026693147969697766472452597304419134575943801901760731518635404226849289571206411276174404231137510420114753774589277801206995661778866377911569040586962076113703709185245463801620463886140095110494306060667456213862255970878114237917676404504358469425856971799234173271919899818683105090844523740217351102719489524411284415668613161292301832017727952952034402851280692380547718008513633227012070614426368707036908870981550539535005705682120335909050865538778840307545876961983127878618587084199503195545729808465999119957832001889310148868188985256666576230511724827407221080759575935427630406401838539801133038893972626981695994190595066769878433822114873222021699343674137857388897796425372607281647526187323486459506205355057404371347210612997235090314360540933833009450178345008312335245527023133904448177442686684665068210196891999862842490114131403133996352969501333795785069440177500529228598435220835889982913667632688360909143797448759199878312109599174686406999775109882160534051051707581407321038067733762786507041959614869293628131318784253735788883042803016915237801404617354990087236438106055055343346596597905505085149145471762780956046996440748161642479240680070743443815044175216295385227587437129473589223374183764463539054851969496598121627956898646183973746491167611142743840680902918304828826491339783175530261878131651084707445897249951043907814962204115844529382905513663926874355071792677673853094979467919501525145925917819147165733691863084289766156428843902583184819397820490721297593870219678648698664786053458753069109254216354154191184130106266886570378927368585439345565262445993721402916018942180393279922493795265981603017101639175567778583830096967286292640367289075008478002933865510366657038558116473111106308302537465416135446896736851254560449460414642158803411739126613208486675391602590759425425711762071771800689529118882318360059735270583808337310198114236665356935140836773536905528100195034608445621157307197392561639174236222126876911626862513659124638076467131714330553598272463009857011579797281282374939253463666920662198880589092654837438694681455125404866916620817338505430594662114543262599320850963044695590849351708017653142457868832956911040899362841188449969317629749427214542565181432327746010612666218668545661658628175537472861431141063619171995263966363909159274804279753987726899606252553664331833825144061975373799165774008734252018780898836641557502936694341944751829269304370128280262576962774320835784249688339385450019968832895779528296152131555469349145815317356851632901278906133553379094739040771916082337146256113520232029577287728450633714751238661427675081607930405148241281352583605486461874867630784909783445423027084023148413331182079938095885360086185357068187949145483126766825627552326870077052932384546345428223218194068015709538452807155016850218660355789200766151556910462774296238444218568404047155740012434265456327796326228841821108292327599838420594993636407743567195105556268152356574378127324352577889611332074582250736235767595663476594884950085522663461552015617239910697129804682846481299870386690960067749591583397438661301405166247428988930059802018654471688272800899209603567514041445874005568219084220695922358145474150705600556352081489991136313375285378505837403281633596977070805038531496329345305448117163365652885238349812308408725646324654863926846520528341942001061674916408012614104097476697975991207782172809888755198705952997999939125376762046535125019967717159574772121893613016375610830821944050669688564797375466011780336066884987324762187647212717711743416372830443071104656740025075350224171472626852109851990399408411392299859618827268898123339041394667908129574917617664583011727849700640255169107258390267824228246608112098657490169114985474850656506927351002640628722394409663637898229195814703881093938545604800549164849035077144218907254994062123859542477235985878884740500086657030116674522397283699569554708415426293897447173745506683624623400750992117857395388819882006719237823376831849585763765767325478639969777597267311302077763367635316444619851694179871092261536352777868560669500345162539750633944705022622399156029042370884901971840650760054132549853687532420736618335459742212699141295770438175518709685182685445095302932217884774241276230677272607398861127133275798425822277316239750758899668793735221725035198457452645439693122021856231109925011018485376530679735277589414723493560286992983516059194553440175654377054768359446647776067915963142258814166498528351086856677030963230492843804524671448010525898362239548351256425235499675649347534364099690544868798142185705749714525312567405881718177140212732695528417036885066851455726766281447518557605629328455715182037754429116385942185898303373536537358773383798991537124235387649722911531131191840453942759035329065206351647271092245217482585838396138968467937486902350598935557312650668945813434292060845262858388530117834112496347326289717124472757062496591066118867598428964628997880738545567123950594472426427001149534538897295610906722877988546344437545156137312389350559886443502360508052795152493168014464384748735598319385558794408858309226145513811728622485963482478054598437398953961453856961132834070896539848653056361363432949959724650988653519829777846468030597760856894200067202197633383832710549978876673276021447457584560590935946356647195816357337081608662950065512741512805518046486011272888044115046144763504107037599244031950973373666457630518673282591976935702858345896151607612472877818997185302404293243270942662041116735496571525559034876495989587850973241223267304069648982288353287768167691750552407309832619685295464369256612124080902780249744561958007032370578467105573370938468345342400794792375208526924147388980514120201083545301943559035920276791830548900372577022737895504433145934461602577775747298247377464950510092964246025005022730993391622433385730401181176728283331529077176710767302500319935519552602799192850323067746191348478447293059782098764829313710444020135733389006653496963209487324639289045919548077289468320313166902484582289731949951167928363132232476299086394178237487465460098178044544105492963535123663507288829966443262233528233955283459220594820904590113066393763859067056242171113193627903455033028977537257534642063723635125798172910486874237071768264177231822360896392009875978808028156125056306687793842316249181933489865887450882551678710312591529054548127950719001752149224177265055633040540975313325853258696522465176362846777779627578908901517958116492548958577732375174887805039390948421024847800733423313436205763012843174401715216740004131718168851412036923614360788702296442198423488769409705183299066004844530122507027547049055739480860497926529858163748068688060273600883281030693829740924324570356300880089138455063714597009183657893365449347455187732725672725889778052869120923052864721008058944764146949565126076134635814355732239286388031610288514702347387553702353780022187107546388939600408017615637673482633152995967748416484462147592771264159287574710824972981717941904940990816373941861745734638162930628820899359606257953643429506562548641400801501034975775348680282924694342861951641954643750619769451657717332842452235666727227988248745892853334011135176272636334552936295609344900768139996798052426819832141621318829787496959024620614489641353353512147087100287204158455471010167279375375737359937503069823892353190909398478263837846688944914804848617431833002002921620648295662745309641861271704429079761389941630565421365555034834099378656344170366455724375281428396265217791079931625361148317747598486165163918861042595086010567584485001189935906478520238437686656634723812318611436996423681175408296348611732649631471613605588479219718027738480710454670569919953392580106917379234214742060411999006458784567573309361335263847534290205266388036900163445783754068178213677928669518493621920947205651914032726555146090568467006053651076143632182744836669810886880773517892995013177509039404605289612730671513795691519697946885594741643097514963917752979882202730255617703162212937277915865563836334580282167361548929932604810428198986270821503765730282066017758513792894158812143941544786717911387677534853686871864974529860257937812895980771412875539993335909386426791125277325147546661230136447498964716264098967125448261227105309276732526511879921365240250922242667476989174442137132819061181729955217716248569433391001657288800679684296537925940284862531195116759515765218538885231143098372710307137110289595418750918909675617802074563343292897578949972187850029555044675983994642090955389453866775279423379301762075589030682604748305774989105276622728022947473897462849416217919755982649273474073505781069390243251838705350564774664903432439703515979268187622090050736832910027430538079309359395767367973717341907043548704297236572476838405463697192862229978295255978777421409592138437586814094689563803667313476316050951566773961377458897612867042106473679670274642122642182069096107359711284080366973775821058869752199762935626059052245348724520515467732706153873232128840840985947193262676480650243575506966279401770129698217620257427685573547471126257571764657622367018634636605922280565432785865069886113973399577615495470733307815666905663681487568376144510874674745154885361480644772936485576014050151034255033484713609151666278562879187316261127493680902892319840457747646101552135544749815216129331843308320675022189229188912016030892677848561849753217495619033382738908947115778567773085043802564669471688120155079179514413485358289311141912276088260783716724276262210377614113396706747427533750371360039062607764310543268589974031000506051430702836706439053601465431919957430337955037759211901970201687286694760946363694674616300556239092541692620902882378572569149147511639662303692145284399114873771135273475451007883044741678576037838526387786675441326546403508686286410878676721166709263987738395671256639721315009213728527582369443159179697196026421619791038832831349955681630880971216400132274764966901530917477429139655751131847906046820207265277686711080438130307968430445768035851718231621078384576840900863636690022041915227093980550016698957868854369123630335239652750610609324901942682855596580259263977646018678706534602439004665574233936939082077541222442363644441624190992396855962919560744516553429138687711044639356950222860162042598865590148767971297194243855684216202827245080992035387857644637494401257568012750640322488255956895980971609092549571914778161625783833810217796164164638737958656506324628861306917172935268523341646380750159525591544568204148613119784021760044759577441057357372700575993080923196983864737749339969035977011496517992104185891201617280264767080220495529992326543324974482085869580977713992666090982670542631726579380628448827522359723672702091575447752908645745662149689294205476814950720486232354533005776779875937529969061589350741978000766964440405830448973424760302232447859228986165946800936783819731823433675683534610520174868652521592607407893341199192184954723541984109856520977051932635950855805204513094100947279479722217624722451126775496211327914092260604827457341360602394023975260077476848729622580758414763427948990569825111042030699078352570245130153222169726177599305885993803674227052894968381289293103506187901151899949398718223748720876546499559433070728546704988337177296261796462742092866246229951919847399998293949361043092364744236150284164788737146895500569217310429275382422767288779367692376867498245245188415184106002602585064244376099842915263272638779262409049993570306172463084466009791527172550415016426106443906800731264264153617572342470864311851708174828069170793930176681606876953048899883922619409721882962229020515076570184745914354842874747409635432783968701666898389574820019990922612569269866143528478642340516740828866006697504691123134342919348235679664303757794802482432144356827697348155250070032278897050219670172538611074559217269962395355003395339516080024732511904179392754434729064187266206026194854826328343985484749891293893052263163869276292446218020029426051707231518915571857359763554620560970565918350697396269540488429599297739133671101913855851075982587181514820986982772405942638243472562477810499856837249259507527859752203593899388964361164110748300315968382355858245051103432426815402997660247813462743295250600556361384867570339284238926837645630868891631959185010715999761224893607870931303139990204133701768235518905111957217870005536578624249687904268156129774796962366452481938756069911099777091170576288284484557526028140728457046038636857052573427002534469466731296771623802084941109290175632884875493759685770944901118006984563650568827806571087265367881896961963109959943710624645939439024870847224322362729813873930067614383505039998907212662279286437586322225835159609292916833156273248855501764261599947003704789415905612959276166647370338909207646283331127920369473913575627738647556102239239344329659814943729741731224716480794681222623106304362223958823975446041927369231171281120371012395753990206833959220566193636651583503374956282672127170217260206677143081884761019816872038709659685452200292655721980324398343668208594045944714195631805972997045015250854791600762944579699575218270610281360221340379500615104222266086325561073927623815027861732249956778251702436027696358625236794857241264694616897248356447126248763897888797341366674042940885494611279820093250148913518023499047918664331947075289849084544563267563854123480608551408447784849729531467119472406711055926398610172835784110134669629968836444356247680685760522997964380353613999294993722185041991593344669177819748595918343850046709635795427712160156401629091501782286066017269100938325294611259447422977189373764880127246478816762115447477109215525969302291071828523509501685307861092890237261788286919322287586728414642461921801198780144511645090596139593214552518276403338584726371748615617901886964971503766552885562448624473004799675177536338073892395738113372275514223836590631981879755462864556914459100749558875574214046161566249358079846431062985707700785085088369428395675365911216986487860038974357449550118285853444403743007328495590809156082540572587714255534054154802520156176679308903315615426465602504358891261368658919161785501305922815859338138250887814967350383679884141444875066463039099432337108176213278516802186569348134267036443500433525077329489290823805769930816583275806456412827189290474590468232268600722337067128976747570549722260757213713163971159791628560768952251244103302021516813024095321100173761960311335156009716986698098637955387898293102360194692268399901129714446836375029262441363279093275992252588413572731037500046239003652624731821812813107975448712779714461609393035901273208739597043689789387757441124280298981730394134700554218644356556561035775958034692124200624503472049601444004511712454514231896061143967204886592765445035769318239892581676232120628965886791766617779762390966300560872968648672654818398975880983920426383952613464151951914298286803138356758154193312886539234145752258721090173782644421510909984178920613215261943339108200548556431211288173761240868461362569704188471282505381727978726382102703935873084572077735976988157231048611209786144490764589507006534017367037092091512538205828908405677467315654386283009547211418788684873014990735995323727404276363481659966959406798882558317154863957958330762473240276385220660535316768732217564264144568372715746458872380692432074994129560974148476695142063137719359647502517272033374483893461812524122656391858578043762804039180444298122779916283246452400299806115158241858182908842852890093898666366718674068868674339170046415223865671202560032522088345962731833986118835510388740513037540993961141125965541019341465563588979760505752936359682071434156306245322151382877175609477141917633870175476883958215253971673441312549823998407546560978322572174346062460368608311507685974287505624130085155157073020679000385228774308946232778275249810092572869533828389576143926084588092145500397854327770393034365021022794379749045060352646642176231848380606357610745746149886020794685447779253394176460345578418249581542466009032635647304893883338279313617346897617038165429110747802491257438543007655907705781432136756073366057103846781282441999623956765537288910902793139252593342414346461414404638141553682966129198990359012373230339701102201526981634011790769414864223775022683265624104960584496685217252835383782975498249872129302007369052997823304174144066321079832096276395413360469947160922499009782906509013387164044805475534204647988041048737212207597711461790345598597087853808418043567844038136079288259679570332029168793260562278361245103561063547161358517920068552941595041986246267576062964986145392427691927355579785432021051180437867499740944153639776523943998978493445164805650869147968612613023907456626463940758441007286370912540598917904982143650494578283767082341542891288362297850121277496827779155490104773595590214257722489513485220757760577292141570398793311663575376116850488034042577535392606127106964506894234810262375832382646900407620702309764627644345098759422917524581664962300462596295400650276432165734427817729307684688104278438547929995670686105571124918338069906150025453287702401885680180015403689612535018080992411199692602567255823144550456522137763261691478851000728285295625728762688759470475062064180683877262643344984499691999987619066693982973045428150647048533571530339352622255036382797064172861558914037640917679090517346404684285664535828664962701542863578365267639073655816248589122300712155844179215350933899836908564804765771285141269419564386267245480355459020116121668575278084735940979098675729251574875173723530696206268766126235744373420233917198482159869824270040721346668630491554135168374018172148846157300662351142432729092325743503025059203038849318283462233514406645477965803417614139218595909455262848700586060831808810295226966176670993198132766041288582994360812891453810583054136842579890338043218862487759341585392313386529731976402569467894811610799648342834246517023813698137212490675906467048761950311698039784602399219918404168061800162123979108431239957222105433216365044002688016416341718253609645617111268897536020483674489022812341937451667070591353177837592213715646765333051068056304299664416628504600267823931208511421447053510286685854502289501515798392897768688213480971582763141212335801360585545467506910330279990752014509529973066903924000065684696648131096087451971338051522933213324655252197979294928326208266294206584170684811124078179049346821603405923542533737399888176189437167078065621431691847759185085969209662150685139831464305790065347631733888602493345715835518057201014063503655239576970665143145570459481773300801601572689707661043621123365213418852943716776817576309324578675934549680622200821799353132839622758884688762033564863733126188548531376351099105953292500473698804255508944425550358846874885298899027127466248026244057458148550294545633355458369354252678354935056732325444994830823312015573253403118517003259441890600384919749243654736228496040661152843012409049339658916358912704443285022818201115282215848238085559845891494962951903408713699757732767010002103578986539895842102927331304470661115603322077943876239626360410849880905361589869552938603826925014367788983281114522513430817430439908194139301969185430067802492209329798990435825683687383406710691854159100595273258756847023717850627381886409752837055805874988381262097820693127285466901771727037625071674075836880607410574707902214584772523477490802365943924529062011462301266647525955761860814688720319090960407957845398110803698652285828852844336264563476397713635434016985567534418357743157060581960150260152573867480830523271657123612337867959622438815525371358235293467767365190947762417681756026107551030957935655914460944039313281042364520682037731511796343586127886198121215829997931475471178026822819141479920693219724517801292266508434245979970119457844664133134840956956217111082420784217149428604918385645440490156136200520881608391548696549939642530110853906637049077803153169033406623441049503831472646258489072811604036981297446299840986533884500872288547761899470762272936510962939526894303827622234186681036132053052591744168558813137885026289379348613145410901437956424944016563893522953647532752581260573850198946633020126261262001365852935026481671708054517843795729450792748589410849983061937874387136915632330154523600417475085860350398958530014853447387739519789994504924312360058393163607648535065167837420125041804048620905580889091328404184629938493305018775885172708921200475842220888040462681335554647327612069795307293432697703863902634561144052159631402043847781994109716381854885315522935322793624420128276712501667045760588039206971217376076561312063982492755686890378782400231997931798240608586956528968894369122505075714793086758669130587402263381019433587042904320238382454981270752405085923570628629680090745815412618075097707505259658041616966894676488448353789174862454776215603545176389998274397162158370853700715596429328647218174936206769596273715236740100624739294106755353401105825289935264751938267396832227204442485663212323039117832830962193760672711400905778193441313965641713746565998651941307244314267006476641283865179281882931568462544392807937951974090302436904760992412098377727165253501518554894124774442600260902028917609632603580982648218375050500519998967312859147615209723894521178354173233169526145872999910817727648974194839028313674988090187729722007162539934239938649457138590369573502839404021656929439019122880769845031337962952086952146955585448899379401565223081656162237687571796314980315437838196407356902496216040390511649393649896204029280020367223055208065282036503630253321416306445323995256882864678941693549533289616804248950591495378206274187630532089818699493038120182582981519636817329585500359121811585968293613963711194137376593414517341619978190687504795556658273450916592135410920126304970064440858395025222771290568743003690708346838853890966936353851895427056228297922687407168338026199779736704064432787951434244706350429529219679133023348911922729993464184519350987974211024430736284518379429255676852935645628327716707785577389443367073551119233311340366810699997236562128084012943066413986469487931746460795444420377492930527793407279378654944769575994492346073471133111334097951824835920532015768818291298970608418841160711966748113725522472340247764097275597045367849679641685008952561972570374175940254480126209060889390364834537366738011246206829478010787817774284779616250197698478123520725174084043433098398320668248005352852115345856445253214900370483645953299816212444214344929968214804359579071190372778693662238191202860088825156920697627315263561514440105250944713141381372309864983606112945118458230503053330900390889503002024352385872793597946296371766250918924365551823975518101174443600506045966624922116614178574065409717004714320124838959498603923619425141583454525170195206298871846747011855009713940375246330623336395594766786697367869212768163878431336875417249881217522994669682995340084684455552904473595918733518408475390676525850202768218178001563729569699588954511353299012908441689362457315921966117510268695018475873392494578972525001889161925789620175789891063997842603584104692890346820701393468457008242991416859826427239639905469368602656085221660869726886709470840697358391792123026498423014713217241257910846414160891893625492030948237669859049815967130214703964351966379624650873355393042597558391387554056638937599905801628445847103461627645010229409551196895936569164053125313571097952180290739993922251624551323529716047641907913511653911376047350768256052459984436021385320531412819436062869713884938107473311461361082087246589501890993934708479489808639230261130688148149578216886943666094847431084992704098892966497487177793476431978154775596502489255713479815358745297341992595602849025360980591216648848237193210840394578874394169505411675504492923362534778902517324418518741878747111642890018935811221531987242207183219710760563819050749130086447181795418105184270956097152632360596313638912499521102200911352108178584768540969890000149552121505406017759526274981113096184682115036326124177035952589803245355193852353612538053828539623275698578057043901784313230363802048255375637778288289189781790203709949691848265700031510852061041559979427565210316324861845635858500212240377518610474802899412152146553489242517969161287728244202469902506151960343196800906554638002669745394703002088162180406455468425003252624899408633770902559003794955417309901690195054132247333885811038120191252874257492277549867945789106482172529115096248951230299975102355006223238612618738127774534431001878214772764642252667107552086865738731467187091790094065960999772364691259041236144441154877878719308086575160616720517197785784958331079124076836497026800817446160302104831291626118265875847458463622164421325189386529161866001922257031511978802969150193985659387464339862185005378864976241135754163427379562316012149958666583760188425324232839514917122103297033930908669975771615654413055465519325480416039055848997111266599432442332277555844843251879341466934967473812529455391310711417852661236786125277482593083126886667981674833529419275395979318584001089316037452561636020313376214717177957866946979518648954676326404691334245360318261539141499073014255028374516445522597787437162523234051521455023738759901637118502286821102912249995346582174548288514495692034708261623957265774892624807194400171083861949201511337897906539309665925917287476766507710419564705864578345907126810317512195394991233105349867704953217866260637806316868242364602951735998521890357805488099873727753887845779194692938422927869445250357804213958267825602588189049136614998013979398419194897832664192474949757345563907422767478392357527239690699304833815025728759958549775433145017455540455472540818084534308688718423356417770515894610139992847444884520545426440300593667529764225153531030928374683349747238279515907455882214522865003395193985883650095226780035365358962884185887174928686760517119248976521925079599269603089001430742189603936818638930103323409812694532250252234779668525255540187563305259076212518850766734293523162953613649990902337534425204414453317543132039575715580488515655922156233761197176243797260493262297164112249022715018582637264929192850052988812708846234608381104921295486848691842195143884081137229704914034591779675265359566913939325751899709035924953031181625762731670115177110841983241284963725695822342789669431195612986450883050299187958086680046762600120039196986485137708918908793054746459695417828281844861315743929615002258010169083530250323484666084741401315751238432857465885463252323213512599847265641653269123378436948839606088587167542245086669633805877371267768600476359522317814758956266127579547832687293252739427558206129019200785095890124017729669157473735104724498565514896804176566757374214609371780504045967977617994953234832303580100136066260577784209142410078167260057785998796520844578140884089615046532346805018116017260822410246395353605470424481143698929730084489214068139402582811819132357418223454433556868846395367381921176836979289050827335898683148537852222556987884231876110268572053933561860985057141054090235969750795929190813419479054547045378220327438600197240728118891546828704111641341435259837264257931231122605050450382293198724490827887753623317552209372967166309371566563518805649919519959707395379391565624371632526211840035205368779107721116478711205642465066298118827064160798421721292097957887050560101435821016889093809601357383558073549414663142456563241411851363757546065352099896367655657481996257299700149896203944661753848046252913800821336160606253984927946300048404637310999297804761457388597473776959725772479173546643375364832851600757569795889670315057036629360094145399053347096846736102815565639225232714929976023574008886129559161957905714490389880469837909141310808145306723431359490421699446886346417592188983513420385116486201936471189826355648743562827694936631942269556140880949969639368681918639567298996969872686760911808180235719799640261018214848649408064290039795605015369828627231905036906861710314619745060416093897676570901559935079538132889529350941671919423006700864107974562397530632969262042077257882530954650396644997982424234836062628003823764305829591065383052397520654986835630168017820731642649276193478782683824671130931565775940064010199342070964276528116083097469629164949656871843121892160976454832282935961887185058175862975868370829489284892994057503411624023876220383942941499501886520616437867219143452782043448267134255359622848525106372340102267643236265932271957058630373891354067525077271242623076393015521934426657780362295656203407781460258165946043370849393940600927469895972376839229308762440723794346998421607081754003845501643350299312965860564867135796929675751844017573297634490530598028464054977956723039219724909101187623493773582759510858332625183757058880296245521703773328335045340177581102422237963718457968796838103524181530649115330403031398288366285570693718529900164307661671929219088031020968719562668782219795830610275363908674465969695227143992461841337062006461589299932226474816457151548832810929673440577197646570923685779651359097060544482128689182072601686442911158161946006005504935660695140755382379871556999365069172115272592050380197710074552306025912637828637379516023810377366801015018220638815007150666070891132261071271226061191600088031086639270381058034900755893954690174635365479408582675074846530437066856270849890472032303572562379115393359453351535096017951387096533466692818714006117121374785244306647722920735940198183002769086550151749730085941208516113302221775760610043567519271697880758294646855336310454881996169100897494877219041295795051405018055654481847863842588602234979860954736098317498800756811824190204491802308171956960670986563839649678933163941655781098177747307413880986603814167579422251400450083834223553909799778518746319937269579999944297729409077183425392426193315039590260015514531906502612305810466138711317531337019179928972658124721034410538738880694252726782181523771957036218054720950429955102462120980711298564746146001423226572923393112152011395034760776856844528956761832645115694655334448542986654096760812195163739509639923688715939804715896122428400653437884633141185927154182782943340244948918356218121791187927726344257752852358393374000607043807222850841987756340398119744039006810403109914226648126291044448134053749017167927851738878019160362498699757610381258530667090330937782840714570711655117044410815013491535982244532514393514238491211880360543344526450511765389564486524937021904154291662762529295458435189289165717686277692645388106396522066593037280857000591245515409281800587539245255889410031713619894006248154910080038383112111643632833713930757730809937231128510046246470939481767592100463297901685422819994319722298899006766505505747516996938739038040401632702059994475556540143811342563773066792067883377588958439380884441933474504643112480094412117743824727759408036736307051883035534807547069796761005752018990374445340539294758201637901758233494391360050972723184073202870857437845191180156575979406294128153204146263966007729035452300264332584676517577450304393185458704629285061200629174063824174891037743905664048769662143688358982538495374073765125208296181729527435309774083550512570757041716697549615355407895006661561427075452993198963433829246037935222451789074615122149374863306878879863644702083553882858826317414369322451595102427080832289505936000289215757772543531529223638935015337579049048159346328265047109064096376227637602402757721672764160781929146388959665153974894999260636932367158688885440489231021388760846586451651504299054310516853854045251533763523219010595294636329800801614582108024173440099965117982544848663902458416316949668118307738855236234036152394146572154908303565181280066170598852586221364803828847321294821633382094870901590271495593045802039817550999237396086676555501648005100957834653688389565798692926745534760691938361874435932652413871159364519391450010705272568479478087189788491332943894452469851103243630327364992783130242305969161778552652510827720669470448791983490828079705155543558228769790177325426058858579303978325858713903932923084087673135692255291761104487050780224826407849497626309244187182030042652469652042519502731538580204318098653681275711843560962119566480512887906383309282807439065958238450416836058310663167448519590750568265492467545193996159557919009869363387475182256934639323345497887923680397259761408725554640325831561553829398953509220345497372424368799613079157536181382923677543281211578890662592860195501158284878695258471589063700573172714147531467896835406053643577877991643569402100217621040158633317163014599217972800152505452036738373342604150723792677369326080331796851025605206160826205008586770010639222629549603537486157411580236243137602090191684433337544069077124773652830772746092204208650995737906603344947254680883621368345418743915837179169666651467956789614268843550876941149104325929002286744510850496015190771067239641260720525634725384570642910366360025188457660016050857158087066745996899439532714521642304136580263157311690265956640499274537917456002453396358849738556656078145701585812447118553526361176311010373216759959277719688510418420445342483045023004353566397775439933791889341276509747118764964784047431359696010163373157125467716236267146300456242403088002800657274726764460198115671027431500917141079256809604838294337644612021639582776217726843485530134323640913385704622137407503915397957794435649370355566694829688129156141438544797003117194528747249211117500997540968562011974811283091360961772781555800511560309306124215167619657612858370169705841735389302023635162164557348329520756824705617696268417669891378578769554476301302044761525950952612883565040193290017772825727835443907043974634278995328037919282976464514701211319831746068146273309737221845431809962374175770150213009068226813616953083553145323868936977777837819725641184095902919198860699768859869677988426262341330732961715013536172629017019877679003917133483710834680593456808553522216993889816855282815291595904986864635287978187745073662470344173066189612916694077993076756367927870260032690287023440208864766528537414363806072858947899426210821986217120140311155056897585640873477366598917431180814710834392736763213232599953789000493273601204112111122260083857236260462045980085325650114743380594592598484295103263211891381590371704181061000914434937346710821361065930273176392126876227851548150624800247745055276710457406441078361966825073755896393678920238534112248845012703368960671648280650737805004731238969155645660156252727653870681154730488970343670072742343514867898013176755691359102719950030563729887630023365345842807774357496239145247625498897461840621651197111054194199436479590849158996913815000417472022968120566406230267741375947959287007957646738800070877927946661739451853509000505728688069730108204658830276027863421289679872214150157789154328279089778166223267287728464376858522416702487992380080580872964432006206769047737759003631941778337144828958246106775835997949055726071833899507449817593624032808527741364449569039213626895951717529178277194961334327286151640127757704349111362356737517419922428699652959759668142498517747872915592564029804743389082966030606350705453977606804063441025368532986184324750632863791241910638847540442787449792012237065361979517675731650336550448231276191889185750637852592192476144453389634411919613374166927115667634358015002765573967551958025458762028625214453779511218366126113916223389879463463205600225460868795236021422838426392190372272272636867227980840664240808919668433561419611870241386207528471436830149183270058660189083359424152939289988734336251241831536865762624937029007680629386115356624143926525343990640102708058966707486271486593568393829503970749608343973151764798807045534171605398391810238996913524642983813517212244108683087400173032466141528458797693757249951868938021394729078102315482758164727325194681703114283832429523492100192050665379364524615035336500228269704935054450725935823050186101487381769876929372440008593247029401115297514750010867428439023198244691338152531510398868881469500539658468402519145474978757160683410667075027412777368564578174326764427781196537477034499945999325378269879646898989326118765462099157275373035466636220268972352564789897493751987591080165441435698628984086002494178834677099798561234767930639541149729454522853921202651570897443118123579018871725652648022624831100519756028916921750895766600808059841852414944235994190349159719619752912598174136271426226553073410143147495741744959970770418674667239876917812412854160418100642737740176439643074171506244952766162078778187498032205545018585521975187833307363777103243423319381499552257236987897985873299084782971903106962934128858162660338025393320295892411632883828832403156330876445432624352937761298695000609050071883951891749911932764101179325850515574525625802720106552264812493557839904301756615179034461765749246171906008231483140723038441834705996129001724885574168236090538275155886294422227261729936886659288937777691491450855965288238855918063535453917726802984610397574652681647750713596418638305431777635474842959566494960168363735183370591981813586818446006230148025063362938445676657383607726577429817576681858462450548423841926044751237364739792687556848402450334674779748113626449645726647962693710502061641971968924332714318233066139473265732719144401832917936788373632396793847066708699293195342583903956853559226904998524756207024780729829444314772329996097028607136070427814581293486683266846333082892953657262203762651240429901007171707904212038890174261890844546856290911007936827902597112885667895366154832478873755319262031748637086815058267611942170652836538102801970719028557732172396187440256381064888965293761850891125577679252589734216283951195619137635695305545897047183332422513582547468502688566516425882063641729318795753605795445359841737896117015744996311020667392609241710954961900830996220427442818050925652152456908096661643377314816101679774755180363768373368462761377592782917360272952598764605330654746559987540491965085185694489952242399217374764982371152138423502197114555747952691165975986944921037595941279214238882824685756556840296276037583733731047408973934802751414675374275813817966224170513080287731223639089974308818930129876664259388788382163971592549863202269549711319118845219329335980129385064331860124435757199102855467343323231097353590256019991606679154324204086738288454243135249633421180990205503896814613358906367035595533090105803407016369751115478849183688176204326165902107595333350615815174343447924274041679720319488740261313802581985937365902551949030982815426267428133876836386500419967079038270601602634050308788879154098723000212361279512335839242087114913021313403062953631538655112925041937350724119582257801654120248164760210229743100095403337909986707190383951232535671369063964538572500113612576571150584055386255395577744028163038998787500260720958683017500069409041345601211798043146600634095090942194592340685734653854503639831450088399242828869564193034046097548003342251800668938745400592088199241832673678624297328231284590717504943565211775512074684202222034715395225086170338785702423913951982764872077419490970546377708084225867651637749780969253729491916240123899469809101093337177291667662872988657213647228508919535964429541780623433678971745598234663571124080335827877435200449987897715509492982008892720290985542383388959208495248595723569151380928965826473238071834216965354431519815102914839408699002316683910702568479926337129167802414812548615263903127710628994107733904928111328305595376672431327633290400761730278711545110630358314684150808195797926797039189715867582762838189031699173091468415405511700842380076180888607737587210985185854567772209540867004708361992617075252756177636825205779384897236264375420515969884029433540478722226727123104280878682580095372754826853249362860703822991457790393821791667791573499400536126616466297648089369589520481252829981651366408660152283615530732808262433127713416806724600230630016401592468205259365984345229975509237244413517311839543897117094380523247065109189484634429408488562780622966717536080703815526499969669280223413942267493095780661136648961911054546345801929765995186553604611389654155327873441030438778803818838184814104254319676866739051710197369373313206512878743233209212357364223323390031388525782584324026621919897051734963211376115842852635302014447935165908300856497385950243481625267107536654952020935397339450100638351880275565787545451100690784057593824895349153729002419574173823027471489336949876411423417394892720754899304177167226238582503629880891411879722943664133077855695555058039345750970965782368101911393637136025411536742747558096469695681846669290941625401941979159530199173573493670517667808920723281914147337265532711558732870269657045169742430985200540578297735839812952754254702084784303235571726560220977557395252166415875414755855915287261223401613511293391229676734107246381315419633798800709055469415969993263320138558799208811778744428456073600056416708289903295755211636414119896741836185501923912858086177630981494940100360535380953797101225722518107657116452597976241632045275937425508364755509724654473597467932190582115112203934538166895781072928527111463837679456131213946408238238803412676056404113742457175028625432727393258299342239439874582290996205793190116969272479286294664031675971658612919757498558952002422889734661713494593594173804436168423830908420995038009739784453274880396860108187496320155548715353448442594956349220032658806942216720139878535880741052661745415055666939509677406282155642327066883785536553504081544186819255753288011580792391146849461581925476545896489670267452726755608608968347850511868988597390882268856080680249313363554134066684547095689292295129619578561499328066002765728689012763097099613584636105978758483763626589299809277022703418221014799629138789379713894094350609522806162211108645607323469534587389160386154587288152973758390666603369796519112440920526905763059082808608734861423073710377395181155718190342732890598369352885098694807474520920275643804830350266951294753152058836683992903765176030099881122043599360677934050702743924261750413674732762761905922369555646723442928194400762278676712636843220232254838410527831196735193103879173862347061873732525025756920122081890556726732475133745240439900030046403493763226845937684046845828088893941914584677264755478182535977536998985824564238105238885012478732606081810845057021586320179566760530039336837121022815606662225023977966587927773925924649215962879019427094691289006515739569804305204630108181440372989162421803319587200984404588699152714156910474906110663098675162394084793040744098048456385404983141113795057905915532246285687842084742474494635164960552751310657373573117639221293895344552603033535953573625429416530915043684544673477230992817342029734220540415065016043657975786397731862427128219106271741914932843060220588023804430864094688363711152285985078336773921400389352452722441856744912938644544903961222875070685168184067620338570292013997487376798014662477062388569363738741023250389394474281149425648394869665051023017780743389064534896698362861140649517746028107179972087672061237648635209374349579562178581816436951270827936886972771091963119659581900437950492970208097797436369641343564041555131564713986010002685177255051267280179421076607140500151543208044064444621046679784668855707046787831848121357783503603137655185748760368881055014356630880168142164307736762901433521437559356157806797983104081101018900567474472517269977474369424389267028559242321632400417900709258737340265029484821889909236491479466245276458744813530149697361136986636080487525209536018423206582799927787953891352695025781021043844211766678006021673341695993297644519483491742209401820118254235497913136648490849524123581102481056756689908494746528240569716668556859237770397373089133159114040813756087318375149224282788485125592344531282424508975280592453608907792168239638917784905484360109209508729178081801651435140046928240567526772616557628616350252776822314948771356761761773852143795130193289743661383952622204253063949704645132000064187487634514239793106666696703364472803548620731945987566482660235750669746714386130486254146534946522067535134258233932811281789501340592912540743164763210193493564823266212298676256521867128185536979023007936537841014225680864686326183139949504822064685935714281554202692211429178449523912810407914605471245558766677409434805984109048942907613228945057678661550188604921746466827240959711249019092911907382211059195483291665454469424874189510716621511917818567941408896102388594315337520688713076389838278145198514127532268333386086118087529806419671220858502966801976249743520937242324366754723603594315798200064121619527568836828329987582133298659364064732252032440179496112159278903737615728702782510084855680783437173311886310517876390672571766499882553089170636630667319522038947182878271986371600816709001385978731947665175938842598943889515940110642475886248467889799591178414649244201944548995697098136007106751689277802784067932361465065874867283340798952683143897215251573928640890699733611552404013480638138769288779486239999388628080001206053658671444156735326088727409092025892997134466640611021675771485150486875258713399203863249352714860041419314127894842371100993571967756353229958633780962171581059742641104922579383279203084925815475513402150245328348610747771833875332256198404684713431089714185208775880535637460378762786035551656889702594770300357967899098061504389953657477124182368801626087429856339820214372556455473922895669091871466492789750076598727739299219924694560574867705370570861203149241336220408115030026433710337296973271969879856160763208025286761055223975010407495289827117742195809975346500224934809139460268291552386568240032009773637660055439159995524126060297621931587822084587804672409519821754378059419653373432223766318109692873687696169869844776620420435766526189339108851105489213359119586432045191638743104292752656622355080495769962623412615976086939469704777042385899262301184045887306056019690627007682457170603247037850572463168095292218281395499441836534774287585073060291498597928029045294273782564239034837377401451491587330053671474672805502956659490483776292714644210692675009451760892387965244088389604477730937989847820271280394199811124618862437492405302679881169048948219742975219567774487621007834650035423440083813424486752298559971192682326048094883303477881801179651592449798574422708053899443762610107511862394117240011252684757579005401261165230169451596419744191915115426862142006693694535274535167481290458396689503126326213167984478130012102789040167446151303714659098796175880377444906227793339571799738427216993982159896542979739498109380756058887745301736056316306689695338599322606931287374255258468043934150875373237007399443846324899940643266128244781967690399525587753692720872891933270565086653738589312517241794944144165334401600643161374429595049770842204680005414948240699302852246473586681908692006304542113718743972666757395815092337112735465856908723377054051187024555850343408705036752173746562184574648797694020382588547050144288361704532549120269780033516563190936784025088763536179887626842827892166909687825943562875211596191347028932172071493519113544497325626062983491465579588560232592260408014727015314305816103028570708412489362617237651395701891865893427789712725752884408865677211759850876325519182225588291627769273609149980329451381806531479281830618723221396109429933533861262399589298741981162830165959209256319525561889955400858201825584662175479326465925817702589817808768158988080136603161640480385901155942180912310937532386008738158330171153016024928489881066407171122840170210039016703017391505348469410192013663931626332366399368231885769532501683487258446925665652029980823156494645531374948464086347966667927313297892289544049788995079710675119497672181941034232306118288831327115308581454587099919341804712054230933930584050664989847769344709665941153899222406679044420866171565694650477819085058314231520187118451517215553161244029105670261892600062612761451952858538203534610849406972598845497597214406413663761203520772732788858209541347073156084428466833347225250963078628070920027055587935705825707516907670004827994648964116000505983156979497028290462736255234542795686811856079064227275515671979915125320752346240192599807270601221593490651926811790005423145308160425827055312850050830651845215386294023187239313805281858463634197232587031199203839056696429824435120488393447916416836522259162218658555579267150452582178871931609560148441517176490943483812964324559959065888816789404936534273114226714691143193446205177460117861586511677691155365982679444563216144986118063061638097358381458273984631831687798279975288172876106048701825296357643278931897585585290599069179411472300304283242568042709584782440161776611259521404070408736559093545251068063865486606649592272595247328859831254734471429430834926789300777730671759578465945310920619435779625421291747191168636619032792225869891308930423608448805176686201406302442138673452743677348425224774514307474662155255261303048983843071855861724153819137532132073651447683994359934500255867262811380027712521035887492806589242339057276260479410100937132570691757411056663877570635414677194975366468646350520962506307033042874819730811532375084381961745271715435730264647240764490978957896932624458811843141559045933991766837713107032167408825098715077707627677732311144222416228301420705118335590267547528097326655277474642777145689016218199012705628998824378109604051495022487795382829409507711222816109366302038930444835996983600576693114420044015858381805852573081141234313360462256270464953632681485418248478363710657446976876553144146032983580221818603630016266163239608685498648788927066547277912069727198748173549625664166478420573379149590672350681183415998805686767970348043956401606267484288146494695556890220400792002322867659939446130828065532208324138440798545873419095958111731948377975568092003326307615394083230753277986045035565796611657743520941985056801811047279242763100557613651894275652335820613575602645501718464327643629400198362679259917523814188912288222898386067994639718612324914782813245393850147150062417850248703033274898342151574801646274405823905861952138891015321778238005931386160891243826720391205158941385797774279626655418439317284504292861141390832383888444655515736643450909229318163096005926002412120055122502165154747357184885173774122809433050556719828889661284289832857529380204076773001955378751068324401381484060362762706593945656236036892019334568266719325523206616626161651357543583249185741233804899671977652403106872507544076216529756134190654154671204101281956327857227191245422105796813793952807460626313596246672886557915470950499074340446232261850200540673249812315233414405177317593917668987245734700787494517694731568084217252715831502257391079476930096584390086363067967224616645324828291713946694095373187340633195676854688478810803226040438341689905769118506113118241657778746183572967362473613374044540714126280996565531935722400999641806369326115401873193007484663494438241909067696954438836515765615483164787224796519287427412603798995684811856661813305963093053814464424845083987859542063936872297307935445297410818795334645948542517176623942507927393117833487394620257059025919410920741894336182121624646474872382696609311194733086823168216394367222164414130114830348364711544248118906924669075752621757992645549730871739253843495882468484582767822009705184609104787769115118306398724924113577772479848932695841661767874261560640750323954349666834643408936637062365070060332793379506862687346944573826392171666106886651270291894141273856770392162199816018270319390803498134193369627518481971547013341354498290734808530440603213524230493885598572948921769919323415856901807850067462764309204878835048165647535486304907072103072984778505400663035551029238294036523109741314506479367224686908588886978593107054601024800559254390421980837658159793759610133015455390857984214186088566450407569652913039758366895167975530097218673903724505845365766493480171801541308461568456849551353667850038389832629940003962316859474350510116851834934679330435408682413924033884111556524017795391947850997853538017490414104899104157303107882870158156886252608274620140967608793907469100420278854394732157642622702473052108709856166647107021861938682905894509004772434854613884940644344242010512331615963375853064378452253488031185918897242263889285088077638670491680644571195140928109217050859347118878902304051519993055433556816758511951524382732443578833462755235403943118539132590788495526853539085985794717594930148297460271101137408825377837441273687579149677822097285105524567091014331784360174486360800502989525782618142211817233210009487031739344523767383360961493675174205531013771614826030760552283543488627907341634575055280715780078805453288995908460138346872290721057293870059777732167279824235370020349652417042597501623299605372424842529783666471026729368242723732580162584900482947596584393273461643129646156325876365301860542702463840346045581697754667001139367243814637993180037195591013156805390145833137930205229425665131854978025199918762335772479291811063189885804340142638897108122462771606759446656376623169388205223839241951715516138587016721037209784191719016738027889474456285717315783824265620957492567147948026176758739430418496414040768692266780235286957104789444727940897170732461556366840855710562692343834800924686811184541151837859335918313231432526221338813912329058881380017301696986738597264384912628443350198617354653767513289509227855843429103206288539262210501466494088195314127790461526427904345107922911699410089976397682086465978432966999765393051242613677408882484301530872776135086098037808102202243721894851093882386441294043816568789352881710943055990249310918111189510569920738485369907818165395197902028266584495212835609288171390117551734126335252355534520996261057576151804874778279970489844955728288875442022089646672747905710825265636465979626692815458771763719740925469631786320781803601187639666109447943898656236650976642556966233623179238075378330212213054888475134556536622939951144382334060798900091062295540931910690087912558304986912817237700097151083848164717083895292942657018255688024620448442715261223456700692267526986754954609451428548086988245657638322717388125778698195377225159270455972618846220558240177640972312903153032371854511105183146334212961049509091278866678464079740931654142924230097289269542673786201411152922180830837434536410262442143070385066434874824335677663585182508970941814118092685869796698976898625039740164691003374850542021098750116964140748361320324594750484708512747910597290025434530390333732193646575056910200878474614032819917639514755883043747401964918941226228498989828866733476361258386777398771884120841584096549957016668296702339573139672089875817660864736208081297272859899476703876519528904361852123155866202498458268371543673505226289664487323556353493519923174476962214293825468400410473617623498208940754115743522522600161404451874679459052715993208044807633641236834953630924020725284991522081345188486238518026778006900634230951784514163214935380426910948902738247157073414042067533936645876820671768540747494697988373309020775837855322851376967876079971093334464220210033709891325837770856323957764074751112892681937047964049458449828522623682357711505365770624653039325338266664689344030750666074364334797565378625933258850800282842410546848500550388163001840727530720099275629979679700088777489264959949731059844283406153759730035351212084287359151917397135688075778401325551407378640072299447868916719461533285104922814930159389133672393130788708969225194270477302170721328662218071179183606195507446685205251959743312919024059615013759364714940198913866335847807800792028918669892734544018141809035877144670875201884686564006358234896381329954141093280528859295096215063046320238195615709032261614900678384551439612952265458745774274909637166792072196474324642033872964613900061002400387340982491672189900266188563734800852505026781203598715761347084927826691423008147966443277154265056236808392980269047188396558475933074827584131105785391834529641651821134422009892032769091313460892869273990479925358636566514024678327393954026139026369156639552079528666118228184481998414084401994000694384289331471667654916021147287870908304541401871274952088324118716782755444062931548047484029415854716893375867036061631239812789200365788431321105159973946476380373837364888079955794916432745339983332677904010174634923493871277413196585643279179404928356732868081620932130280456949050434822655598380760903234214914494027003131470951413476994401270714891196735533454046921233483858561162984299339774852626045996500003974440898668401092143780060794576214861012806060058102428376115309720563622315480529524350083282787206298526418603554733067692619643770105904593433955622958272385211865507489812738070680845967811154025872050083719683210411839496605145247323913174789928162184882585207774437713997461270521889765572361778030137233167253949596437164729712274854875130021726340268509017166309134629035307580272862617423591554401238367462359286456887478696428304075300794042614200790336198266940819905260831896219434080443088898468889099074581365677182144933804482971807611606267496530886335206755028242850078995559546549356885630304577157796240209131209941380352218422279484075016325262840229229836847872014700204244040086033294168687175953180162102911000999591576562026072789336581578363116089663955825888393774526540664557068637062909846051424136976326156260155921912821697659874863890021001378668228547973418649889061443917123399053183156631171374410569990418701142828207629783969129943302296321757943328975927260318125953841984636081144595003441080396722936715677967879299233097849534970293198743235914412377287024635580357877875798736470140362980594065542591360362366969704324024037753502649222864618278036421665025777101966447770035470550923149069233806477972106806621762019635919643845645220805207816138612301894920644040889819083420925594965834911305423124278290435167068608511925637639897957477919371147296239079950688483959500731749036522355283218885325084037711479131207121214682403350612486526096931903635969181651783179658407998297326603237273065896810881741048685602228476585331611363771286233875123263277548393667539872988065380373837060262661692090023387426823844477176896551781205522896913943921131159909299140992479872180074868742597295953638336690241872211066534560191536935715754105115062727830123666172332054804262267165851136577757197068612862894645447208248679088962836164609550622125835206474444075395763446383686162294804592049744596493373210201908704620368071409665371197493468618597084138484422702174255719016112503399526868558275909414068266430483194264562874826517413245339294735425077214082684774890216877474090399225026365281683540017373010542772571175630021097100346518683564641051979550546565210270868733904567599275956834475799622662484160182043898435477615640298315572398393451552471835584422484560228840089278591220522762595604340933561550433466683702082101539893732682525528692373027320712624784184714146184257432451038732140636278267256913785568135745850081793551624507675706550188271105870599761778156138974939237873402839920904435771730077111619384565419668212941792722270553904709726133464676979308401710360613412683328042631246933402086851337264650182967834213422106525110536660302818903190759208759228632098036940065573820457556112578612092323406007964082125070406792879775270170497973972527641505294502537970570237618965805394786508411777926679731134706024947984578580067569873292462542730050823091420420036804172644641423155394756414669698848851018454261683092309928081834035819844075381277298289450448135205308792512579820786918621047051548228116982202712534656150644376936695198820246622388317855375109767481643498062005722013654931902166352235077594063825419921221380789729630292218929982039250923809321823904595268196393970067359189661341444738123339382493449437132158364932363246171282226720561891105795282167548387778900847461778436809123653824509625145749964445722648714902520160740579067646350695289143742447498692390329390810851035297954393183249505589497010137425645814160352452027749770735766702408039874000520070864723643440267670914075389083590118839448412644633173221313675059372717674719142631285661585882920678932964178418478566066641453623146083702588492321172576586702642524240869142446272338686997655514582774246748291829925220120080844825337102813100726028720709320041359167012779228683455348712960145239555726676975146219679749592792212710793413065341742935531683663922210468345762667157082323906664870870253121563988480543953191369623864724015064118868460561891361805873064963488159274899122526726210384900862634637741169729383108957119775939452322400052769695278060652784321319831426619038859497753228830096773557037655063840765527059194641289193489258022379079702768339839639577514434926331598228840053756657460062408668599250759858637744815163316524388813092446650562044825565311630880915180848987414723451898041829737067323180943422016890483248144424010680153016973831287652538436873225533166902005095464252093778804523780873012040840729473291400964522358003751129253753368333767857877458385156085354198181670287373682214314086522394278150898568721707220969772535762407466787820106695892602293665687995735923044902655410441794765232579412834877172239295297879557981926046187027595978642887268471561284938147310612086510690709696946831062887427892025093877310275102360070226009343693620720945130157937943464482126194309283856395079607901182944186382483941443312120160393538097788724105519528161125497146072540484998420199600069191858380266338617244676598429415738784903967861069732154423125667162083525962594785528030405095483343874640254995350605279133844147061429744625095333311548399919448161267706921151680523462990548186328349284501994493646083286392376911445718721796677188990638495085760894655079568915305252359845229328754318034136595877233606246535754445343491728652837131962954222398652400282562300230943781666839052730093361685273388028067655575561652311011654706415757349579584717771319781708992819794138189001121174709959012450366604310824557529868707727695478542919964943631747845148208336092329023549407973868994666167270242160756050510623286829908259335005446663777799289819988290277163206333054746240882099249126006593884234576875917374781133792777514641690671778493902268989474627816619425989480595945279401204984436567825209291412338573565586044805881471018782887945852588388476271562434548571432497487049760223419003317540008464556585619212334675564572489060530554135255804489592051590706495142906376963203327956028782636396896239296120857526260524815932480406099158099043446937793829851495938043313523275928259940494932864169618396450411664967650229221093355831102633824936595441957429253850469026331936455442498494993195230573215913111056399265153612159456541198515787491952425024202264312818739532155452822417791500782405807376280539764047366029955454639027499630817465866345481094327132756797746820881290907385737068024524031040908555992406068925455736273579974295711886967919181719979243319757710877498590191477082133594356491757202895812617307358671883604286867021554360572069005935659935149246878203346717417285527156121830529974853796323907787900377297456761112009781621605985360008863858529927648381404430690448669833280721455680856757497383672365014530754860988157258788418596105995944318027990636250684995584885193208898933441335539215391283773658809644369329568639721064816047260041717956669804146338982740812274852582496578502235173746521001417312966774236994407525857141474403123635128000158597532091986273574625880181203104216217575698198285696539390582074304576932861174863747268070050353342239399441831256915488955710670699331587696346102160984794447487356676904614553011472559555356371130907686980423954916772945036714113737401632902787656704666548621487564582624427544021422497728294655889952196187563153393081321609704942014006610191105161448830236490344990324361729972397017474028328775939648729280405185892256691744946863784332150460155040129355136936269989875743460928694706137343500175143387230337026913681094827823384120454374068100073494141976101212573280679957216496316959118873750761084539029244476076934753995755742624207563423781468079639849700833075215234928982027312864451401064814860267301055036235284933435499390683566599034803339662812753730515051695560696006459441754987429379043199981730349068761353944566800510803974050779975355051231460147194521994040893152501868372750866743518366956024213886516790186753216938985671377382883030705774116933830709261875920188882949235043501867312590761700057144796082906819122630619068632254354815161452015782918499176877217272597226915776088636125059812659859239997687213914187720909411323141624127650080041496922997096790299170792944307181542423927218218166302659552405506948655363437450318147214984330971065719459535298307349064094894759918364377678328287460102355424625082073730684965372650721511369363198451727850669467447692667136366490460089608949400373545466379207940394348106847213659552681761210042983162337544415284589908455711876633225764836256753017365623630164790976018136383270903018912871851114208447931359800098746591072295667197706718274650438225271681225613832260823000437260675254107077000217627502696431890843580635996948958001562720561207852818945123953588171432399283619871612339420126839311049902603572678435943088389317655219625088526590683668764507545747291047066827623436889455512658424377189629419740044407956957433446101301196930261838536150776224911350276787538029846618687308545605085417838613984637441351934347614968308309529766358742785463789053339242345691323554696864627208221825182737777729081652562615144621447174132656037581611814515281535914009788130607580682819231592939353022390339956858098069454306916326151005195743318697851588276573085588061463661165568983520575334310640318949746564733159718903484254677405849406287632300833602989946860411363709541287665939873403407473753685517886301281130704507261597348802249333759729106313904357598844592198776352750118712228423486571929597440420025988259718726681905206672917305046946572159462788530766562843470856235724926788048927998060331177758108700506883677832998454853396188931473278087623694160336271721938504146566783966935612361942972242499506603426032031003197047081454290784418306975696320671568269152903841488724291016875616017495908985432446527006669908263858433290014000443523200710455820364358446331637929069832731613046398100747585134273935945111946521997264377936878379726544765070784088226776044632721182350622986167453215422249023302625342018458418234227237928296555571939554866951259481007808630838101432951319116265011856162946235098913879749811172360173453234288515248291298665677758880829077912039428758628134592240005652707411790408403281808673847238361586687895121523291971895840862226452217184475834702928053208557515693375110700074311800368794166461142533391329811878777896981116809879981543148102832076216910076423841955557004339059624323435619127615354021965121299374523075400656203299667542024583162630394048663731754636788438016241207420200559913867048774444208768894430161976887777971553825066481848028090946791730466106942650644047680690775016273544255652406648727364765041775769556763990055538181834291013947334381462406568601084590279051684237445647592115849750134028015012000334916707460186222079791992426686495938840107829880594669596924474491108513395705170506557429815260428395376785043301547183476937167272714071513798458022115187687210868276876628897329602512852209142484414701639941431316125396482434497934825266093973978441645985193423774779818737821581418487177676534543727754385408644309862648090420085954536883683550228279255457040466840460472232053535991934629773227385526469577573226311317744841214065610128626870092411044300429074080955496576332762751741570138473157932983483961733686484994230965898536233353339172451808121821677183302343633415724095063740097729337099512459573688946577493928763217863320531568095604846241157002664652167351345041202312380012075114219793888831293871089147335229862396795744810729572092200213910632963690452100741657585866061959816902856786952071947432387637778089132994005027714022060053005094583804432256848322738099466139487885276603876046674235407629573824682691933941044639700315245782730519657143294893319191403642006564598707345948342853177426924075737423917717768279175480828834051891260940102535471215271497342113083856638403749366044106522884602481228525500742149462904706524901964542756519048776230496683905076278590388260472667125642720426706688906144472964710792222897210983317921829440158028753023077583706490264634763698790866872051169942980615070396184290014203722695010755078242786894542928526591632893484747730608196190441015478217603994155219666242290854250223904468963630272110831743444340911381851962650220025066283872695683529747366199925281026311184005365092585958945948989312581590548301254962716722300287519373280254404533566549738738161728822836688284834998782640292408462774821885798910653092229806075832417277649435406696608656331863447913977757735930972731116533909605045599489984246517362554819600298121878753695396357652977069143632071324163353767390205523634739597099314423857791472475553486662060991963428736159345403899249445792500329880287350639351718712293502308947781540910886266950150469967162311553648009517330822003212053398884723416990899740999277433973626504117810477764044148720094289204325027115364458409214649575615843747981510628211436276361824532260638492421196597611048420104062073099639017860106747683414763715310296153391919629484900873914613567770006824896712528827947841263856721397604318338133792159569046149766988882665924086222539047052199970036749646143217988169001673110661964197559199296540266161761933923801967213379614207831853150949939529158995682890886893577642096703069609829196363848293054597855097148829222965177261090775906940748907972511796530058837436533329983375445518727561474991664498583261369162052547065762471440122266143882066693453152429802992613622330837767943775643472673436289214406087386173990125309070802362571791247944422136628770981573057277976510638443421589885033395879346537472808147024033912639064203402311242779111263718247485661741524765634595442050747128822927167931582490268266031736711766906766168076170134562982996484700508127155870067778079900348229004545252054201119785132732525777070101310221996783951400356688902206218727528657500990103328768408354199311299663371709311571912232300540600011360940715915407402471513594552706568051453667949567731981149356758971552369249828112789271294978763094504751810636574209707081645109153558664091560908570267496531623195097514459396062993248055078874873697034958974813916288302451996730000842049184302932908335964759067766109142689043687847578875290910831900270966065843924612925558806838801430810855718928469070602936398859675593204217758239231190098205653362517005624732965468889982245229346595233163338514459595818407665664459004371009785964207545747153757576112933972446685259941958292300365205433439906000970461230893633450639831478519259454095671429918604034526670926275975561773917649252456346794603442388424420531134695901587800662274617878153938267417725279635653024005814598713290498791434469952987940654952442318062285537833743386783768294117903148292108359265209105204085048065621259909924494832331153043692430506971254066948142577120286488420584646574179020985325367808363339006419157655976336008187503073452342732208736560102160123074045829241525347113215151104700609157843149708836102008327730461894015377527489458347054584983970666962681994251725003084725424753650974571316262870904674092759951646617767420592388658661365760736772893285654723049408146307369378057688838533785378032476814436681385920461953554630121241927598321929811072235046482500072633577434961307596515376385614611211433839012173108602279065135999492933869778722208967102348049889180061328255273003299738472337422952045878535653725100629833671283361373929266102991255091060321287023768506710786375937966126098751256472602155166406297334435130361967157747329776940154479644024913685821904847319274538821477823247892548399284685096777633483709186079063805196499546770238731782164169339050743565902819866109134406440911193554653079634734742030502311356593542100999676933778561478369149403028927870208230143154054656383893956925390627601978860273051120195058573462563027445424804293587936351265436192112092549642014282453171935644701601899151534221802509963567918861387755301641426384511554709385071532586992688074492746817064417820580493446595629989695522607493682146269104985943089891939938352591392029325702298039365140300825222795524174785417480595090642897922832946448336770634047607266075771879056441783126262325576002797997425075103102687076441026063330053507017595475109426221220725061147242762839972735614347328606456222194550650389045586309052454311294585776964303757491323744862549479364152812186850415604317159459850928205670960832429247799800664323442399176949755640076488817277967172901618820615122550781271642254843190924009146169051507706511222032370270534346109900799635431615838941537675536347008381714372894530016250316172548470113677431549826772653045319888115190775387307503109382098543798948113969255656389975483081502229214021745702939327520792432848129310577781125466057341602090302827870370758089481340491854691686823088911158335816555267474808990225341964948684700316832926504264891240274824150802740136841920390819947169244048162808692593151990704615621643373478847211844183981249149532570709980527991359788101527485359222856650607569530378862216859045509447756273263242559562492551872173788491846598092285089215267570023380988963988823600458614050200570677233460783454783818021626115251213700290913922033710374586949885022949831967190755484673122306371434393760974312912565384578645168715911733247801870127155606620542638667340786108117788826324614825269070060195698815781300428740852008944718847511974511466794956786261304481733262065494967364897984438721867701944008111067430794320620171213739487235007339375533259498894462819140749500799733261924973822305439836802827129462652903514771171287735312955993552739359706058663257339765568851893568440729750189705087806086342505812409657623934225047893566714031726282921791299621271648415413507092471223257921568608864918716185029038656047524903097006484304958139886686352188619875486400531511709689886916730041360198751413516403274877475951885188337215527749857770475773519390603104580165244215697661370732050386789188774466438813155252242230468279899939492202285373734401861241690664107519982700833426436753985824987721024567730221987036854750848188849842820370996467515912486028976444889569936835063421882017953440696657507577680890437551000330550036567278207939610929867424357164527389937533920508077579534314402199689091797006137106093950786522873564039042351047125319664840961280699607008182550328669545612370359462804701515812139811139215786091440488107996148426467620520134141697979694550219905015516694652263691948722163092694587428046012725799396669257861580465481293480175700139365925184853796593347547062167509582339053085622090218301817260901008877734607259915613405669082262026382059101674943903350174234086907791543080573983855250117246551217240637050731480702158795177824908512807535525911918043908950238802805422040040597114081688701844244747239971176110099404096052112465209354960592185409591662786032557214569517976508163822180079908343183520247327177998830777758808337412493443593810688341708837024944665578498299549720067297055280746898900917441002759394856387970565023367824629440724651700049451641333146243919170129854845302693581109783693071178624493474042800588709715998431443695207409899178560076508274474329596878505163661899513351470510516031039987064513186434618954057552457089297839396672422927859999458268754305993063142238696272210332713832087869637422890258060931337410796167168113731662217327979355074103106153066700083362067795613241698635768789784153808378881873907055025024686166255435542291763680748804175695643442646200938880826161515277489555982016021379115470157539514380337729134982733192220194413430109372681571140521541081653253546845818831393778554878908670458390088929262001440330140713847422731191298118886679366379563069109492548588155372963111346460918600875302991303101797103360277441084030965751116247763033940652768931270612706525137400211870191899141790374068003899180231492047333303175349424887629129907510708935107058565288916719124293014876502132119131754369721786817692737426559693059581715267621724485243520531325654198009715491412384645914902531866755268641718321311716247391325950301455251496109213531774781821739031571014465791748099362631891070717747699066438900136345574039171168223904828174501488876308946196800966479182472485247208077012144566878530647475039101573155288910353982760889383027544795260407173025837139811129968527589630727674316940394426353883278186798789493649656509175731929258432597337395928684006678414222167689384338999245350734301626218574338154355908413381953458225957692864175892042235201049586931180709181802139661463645496305434048327497986155687440071653956047093788103583028255654122818751841927382665971323869150113097951183857706121486984622856529811408905029654789481742671171448797379658090488979391276288693217014092169725592863141430459947309541621346660897259468391886629799048351842448620035964221630981484086173691379857627716988021114371719162800020388369128944265554672518130784147592962769406944789010659905235782119164533431452457470369588417888459162958211746067057884893992883935191709681735578734673781857667800761099789510202010263743287651110328624385686670213463945721154333086629645583372124872746893488412156156128968254369281400791651162585232150018156272733170183027577357185266574323781503969570666798445365027830857866385053793083057805119443540969142593329848687826250267352609115176201925827675772984619054579037235296905738098519615616370701486725300547310963858228046187286843189884646881868936078249939993998419700839311528699378586076534900154531797289732778781497040811792860470300100118143425279155231774846960331651457343869373400349437990474807823974948797191228241870645575256383344080709222662885702118529176463926238971124247811531821548315039448864686191274403038384271018920736708512925745236623531583542331744382998948651274598087603707658864837170143133642331758524144450500799324634731671127732320981341661550076722607160659519406372047075068740431757285402035817816642137662058996725699701993760877679316079933998021531350433908451156269248932102867582017346184960875687531415962105933783264328806547653630257664069819759069453475328836080119819126998726889639070453297732684981394746252549901870631786984510873776059970478580667073525604629316496963945592598658288113431518270909109839424667004216658816801406965236554300262401084619556318734294416188787978696125781869452055632025212613634556733073789500891153157186063761613963452258323172510636725845146456347207750504993859909471688399528311118228613173627843867468722669427801009474472284966579997656269962641259311381521740828358656194714848285249673494717852024951038216348121090729066897845155933358029869926256155418023945654637985007179329657390150363626368944881177981985996757157059135984059816836455483600080234487621091607551429182695061788652727738230571953332541878148377949420005562950593731680578066599961987050485251095067149981274532686420587879491792856762003446643462835456733911487862314268898748207408741687311177624676015888763635686157219223897670887773371358719430257397791407629030695534634393338974661427031275477259838693059556803253710101141180700076301325308548404506574731979707143408918425566229620545898411728836234538191706160731807789654531924823097246469277171733231284031299010024882673217925136612075922177235295525867247540322274373514817799624866109107651735827569426487005440528094963895633514862882531682877213625961395528072110801237438808557616982042563977675593347178616081700563716019641850446227155520398607742626729809430671093089860800592913838986391798487275295559417197688510992691680687960759214638463403852194995964627390646284615874958525036880657794417462720710089010822843672475513652341617243671907591833751570743272955589854408687477705465428773289998282279414904180667525804345111748222049582585157727563101404944346176493838824573368057094909941972606776827336990199789379436261235969011590347165152337188920647790488529887986626806188046602281224212209095226839826061611873291508672216412348639807075989968030553568847512335497600465411164163907340410086986251661400390665047996596806489847069072127770344544648294738821853923138478466341136814686649538470022419133850536912681106722159985979276408022423895148146439773234308795724647564765741158513114110259006702650892370405296969034809571310502113920983624799551067821568995696080169015559374481500584305923994583181604624301002958801664077001941170330808241198763943817636238502096602041647304488617500176101509690854894515097568136789325048531144579775450636856464807825106035668998677043925751504824881452987509600013224647193654342636631583489642065562592620852733198401894617238443691003389281140261435679170860558095270958628857699737142062704161702906624827575933875192237651967510713329987002113563463589876482486325182037292665402623703823588334389624274827427597559380277160585797072796653172006430390702532236371028505439597028098312879382132623480556168440794594263776604609736795524650803054815797422589134265465318406805239779029071698694613769994899684595264770958876794963253674501275216643641133952474453738841604802105454162578662765710392044084840121202410039731730565937036167970448973323614144945996520164802764011426818239540278696588556101105333518853741256225829806857128310146652588031265739117103529738715180743898319220262031878568875028747343457966124332160660176592452625048153738315322636783614026999517370386749734075207461192842231909524335166641981522894033294230036814849020998592567501101600232505776033294921830971322519352051975750376712613792899172203675568226901392004248420512780416531939732132161653780731586696507698447705635912395054179148208207155246321991869032677085935713950302487510365172747483384891607877394756499715329377770651590277673281562956638713984278752334350713409633877283657395449110043753003705253821389615410932507310560834679974689657465545204466802647567880256875038468934774987401445305605099944286179535098322805998874443282774932515196918814488308506430291791840450029689099537680504269242977547214363251019134285369492900448978589853958143622355334580931097022010352414611518997429111626249655584702465259077340374720439925093264301139435650617304885753597528637254021210359671835988790039914041074876246324029272245607035122416854052973056927655138325193474325797417440010323778866323536543724597780154172445368924542401597006817668109726306789988994276955734569483043750152419121710997649082535287366647831592070015593428723099381235548967611957663670259572682958897411775506554143449388590969378648818375303909134666950366924578985609004378642925397828241456530205072549396797127391829995411893328994600365964445084132943879649916064252348825019714589788911170129379053565399879262770105356822557323653774243128519606703884396896576603695833195610301839113612695629070443393481167868058395091664001988076188120728873386260451234237377381354859304566062699461002640791147976427310514562008123080771930689680024138618309469399274750850449019247156614079866925585183452978095094727328093662101067917238668634081974448467718968423529598058710876271665714546394627339558429209748531646251655161414869057527439471929886052914706581872891734644859295360579567665556028782494949522269462659093894069040459722883030402660697036764209075749187414064924622956174703840916003989068362889901600698265060030794292554129786902523297705314837044781483633822208267601986414084558470685569984720094546325896981965607199031045904306771129805011684198893318055268924991207743276477604395521585531791243643943486630637719531223296678629915632419495726098758520146625273311577637438855922705329728086732457991701241843233063031445361464627903416375461008204165033027872124913623458451957974485985706860658293174469077742862955087071850746482840033434564972458893086036712502407367358998269666258073834710165221376431289799388997897846820252229699365898500829867546599766701202458972040199678192925671510884143663909768886203413460478298358513409575567528465709754473574545330684336355635149866245654302411719554055980610188926459050884358920959045838761335399877519075573804442771913703679989238627680022556906722234731748439772975668895007538143369646517651626880672151266461842630427180066932580882540345289079149314139177707660690327499447934169911442207012800535121815836389524099298388258188265547204483166878658793762934753124866721277713332321775575022836569768752608585791876483898917599113853999511203623074546980582439182118240319739234357700942703427751922038352523527269103077312046694944776327678551071926519805602526958696715974181425394841197672505308871931374475725212927993400043851709373532409578255704617297222984650443701460537806488075387233601504320560044726744929677795203500440564035436995247349974769679736104462551094090509585192668670999154941324642882367394150527977180943688508511369507048306272844019780872683037100736136691981370145279236281810685001313001528471235960494899777817924274994082279483568962776550344025383341984155076538627251209838371527455558457077749508221072123792016966021492765638788079675615518838322449337623830254886229022022666979370046545351066763824114764537458814342384487632038381756675475953745988076973065858298277686449484821944254560707383345377090060293238888685971353849618988958356622375043927285301560159498634403798014673268977454521630831485686350131187278743836993498765678405776458848043634890636771797190063851823985172254835607701021923867010942547015906782118026201094930661985044949842942438991006011810761512006905638731291588415049032766559806713809649199104518804605876288495405959186302869004239179892520951543559944513576161338068267753169523968554347549866685321042776251104032529041293894480563589369621231549984478493712723817599559725056525921850329095242996055870414748707390609148882303103405176180199183031926113931074247152755179569745482405841410352080854363159287787984511802480127671435913213943211928101462195511054726195710840723061402854185232138763325719352815784455603382868427526115282223352645163484739484061151130895140158311090991194237658349198785645331966733574633735562156080631050421780956082623841056071983842849693375104286261653938437341356374777887610789747854348525708151474692810590467058614940912563542574181279865808323142809391643400608592922733956561384782323581040712194980878903837920161621484083143502681304896081641883256261630645637847499826243524510440847843633068363189221482717325430038418898147681711505411626343131718538206473749018738938812349006518684195363390656208836816640202215666909480949843217568333758687267519585418509882668890205071910714625352930251061309079109634389441528497131899355378061381098980244217304433182344687983984165534880442349340315231293959318002301930149455668207658268162121303159676653702265513841507944179971542557498998714744575853819505661728839763522096894788940161578853031800755835548792670005606291418769933219789713234799295502011293802110729580168600579102969632699880720629955412149265036751549765228741004101978925096082231343980840198206275649856113661632849312994413707647299829335426492542286622337262097668188192459670855713168691920589620836670638604543883623839024216013286226391846139756037797810342920809411866614606449220307297304812956527128558653174647494295910594728645949374518171330353908846567409227952334686163807387527861177765159228771333625182051194758237847714231666924704309622941749968939271095652659916935269461667600251964370703948524299416881047924047513720369547971762392981498043765562799812286227418102540913325470696213643602300946629627762187928036866476830345241884509216704048218463991949145655946172205256946378612775143920241176564391929608696709574413866654247963856480447929429552474878188539346320289553159938524230609498408652363976530004405086891816884566232598708681372474929063892417020771470205311178049346001820991550705224356191685306320040300606720430156176976545865532867427613057610377336169404499660493859281067475437906015019567371475793763102086207160289067529993218705800647222319990590225241007925585232955610516963448542496257367652199549616767320257381867697441243790358435409764506276212702553780642834759931963320419198502923570863092093727836491543373390878054604236760015396830688804440517602356127606237841235449832047829478330329185800027162166848960724760181967290964561360235211584404472227380094601749016587174065382575841626824771169929032144054780312929770710604609392415831840912921612812695561783815591745931654619715115947570909443433534126949587628074408909739541126290819013811074120997675110304220116632502345815268487030212180598198125788439408640230731310650908482985760888834101750789800418349005402599075382948480215490954729166477165719008870022037470814903001926019738475338777775197243931979947128980264203525680333900050950899250955872275657165199434550768637596203306632431749438045622256151519479212237964495664195238498154031711628667224151165126422353557815213075294824271243637239705076862832801708783636002138360936562720786856126684740278543692354117512733893222409262369672412731533821979046333443946971396099065702295574131309123981373109821233708334088274717806186692749129737733432403232671907377229445723393229529043947114581838293866709964299514339271522261027396469168387448655940737704783365866066741675184519911348270820046967448509411419925959911791259851554503204182637211085081605617653918306033190898144059614354240721726069423462968175749603807534479029723797427687157099982987169212128558987718344548611484604967247212751693638629562310011997166029519675290445662122894490942143662897270341650348269455408410107445263403862535485829949190778140680795285257358020401770486760190484618011279220650719765904139898448305693137297850760723131215170975607863168335821961518804344082453323373501235583571147669004516185333843543850500922717385960884273187255860336379933307597371307938677467375561081816733475943567624318814252858929026412477398357130338829744460890096922845882081141658019905783865149861258217317976521189783238803188778405975711055497602575167027688653296956877413471266004195371854833545970213052312831098523833399574595435991624067238722388734913117014504805943443474139198652872115843205694534730972207323043693708859314562702864043810249376770011567348394892066183403945652780632105329212550260713614875107426652565759199788623381387618764315715376608902883412518667530123169259391474977885020804542919760201502574325403574660642831275515172236288487535752696554325231506586812720342054204055149198667573242460316187354623004991123985460800228711570455459160774340264295707282785714910410253593443767533299653906271678078662750651247941764036356879647113848936617576856978498434202960673363035311621482242526773742408194343796520825828602966774810499743987733990643842090284276443819207900028579423520108541685087181218528396171383557301707617059204328965452546614404471232426184607456417248185882606527205023409294757343497015382080274694875935805133323707115659802741330174055650019771283275810521128277695703155633723255529394894155614193224348413462585650116108116426490446921701460003274928629131282871274852449981510671637788666221726576720604238878856957560141426470673145686656433301722938467282437567214668068271546928344125309241956476750380447309161030816179297314454295140255285859505284849687640536645325556467895184757498035658157705147299476471402078118831563578448142166635520406095670176698415850144887196021292571725600504180090233438876848295073369081050935795634582223413742202914357103672497966735900418143969286948412901479123376127295149166262020449838648063805779900571183893316332367481426881418717196226933313302452568883660751169212758810560278779088028876965249274788779063282563131323221793666003931407156747440486336109319025013014973743798113949590455114364383055220872146228003102776175919716992659386091198996994054830553648674641152321884125451856756863093645277414051015170425390180447816120733450469345635775926369536904635790742191514488522986892925060116540510705679393681248529712486705461004329476211500076792443985628127886556327568557481386893003279599365767129518445432529776869292905266631348899972385966697768864561644453289295059671631775805987004700969357537081878556936099251859222600951065067326088108240790474864795335915309657915516652378164927869008321931902439113853471357769605667442012615553346368358966019853654225854880705628989755952719740207970701048459212000867261031325356438748860255223874992187644095384085204769974958514132751155566445724794639592894082735612409398491052227082333840008896263002176296185444144849360348209009422480060489712744694583481553218772627328103813084493483539888717711056836880447911633212997338307770880547339845559614683565065964848635499600603440677140354090650740931506789228821488392513802334571793985561890315879961876054146804593839416691089425622421421738454598884812034767439865457828687908836581014671736792092113033098147834785235235499794144746619311164694327024497208682995375698164495468889819043520367546606321422814284756368497142594634554785018100526368309951421581531738035443267711938065412806614246107089617450975978176997449011817250180617124123390455427060152287894073398384204577906576391837281784195570657508206121914288196971508952974221081497307828573976477214473585090561452216610902608478571590800135750978466575893977186087693046220907115196452052505555802680069583534531182333626109238362218706184593503996020182762168500656466994843605999414307216585492577958161476502000004747550561589507125749570291883661446048578540112665542147557964765925472463205894071965601409443713601983655879743743773930421543488287795902478074821281722322250138475146697023420136854422123185633584846315921490156553033526995894906783800622264140256866244808393681080349074351645742996861451093775803687027917503292928918430621512668530229950865945315374231451533896530112988836462104531855394891848014716586871428622905940796664646778604007415676640180650947487865179291833544369038866193723652287454392576070171080868197612923045311307094301085816046674398482728465899830839004015899117105249454222580275181253095565301682004021155058835233417659095490613805408700899997465723947601377422068943710643753261784015771941002088326471724801890055069062198907190684325216177207520439464451941664000731395490386896499247458697581036029960608869450367666554297517316351734500197894275114905042324234359273271356059792012703584217366241961638395228551017570623983583076208657196135992632183188564824610741397354938757455623978759354886075337531605981709507360514701703830500769681821807412931959697792792351766518356905743734559626555676823961218048499871494008126020269731391278991491856435462481849250145929400889269438035582120806647665204867737897494030467834325240272355136375698027226706564382257622029204811390610561720617492603836980968825022548195204851069456674722896271309756943178343192262271568906566019451673849392508673665772382634402675101330886038532900476137263503444091793616577819103687463455772739206220196818042617688133260516894128200791580395933157877854992383036601008396770369904009474118120548213244233000970503348794006792989391307677503332505656633746508255091451597715834995954652901936413471235838792063920724480807794790566984237231071979630654794668427933778410225613192171738522302361041481066583904711684014514091161217106896018763979169977935293930405420153374657580388337184248309028517375821273656360733520735545168641437595714427700791868330484789434481387409820050925302615148389715536341782935545997250361009140863217572731742381593911201573628632469679442955924642694238514428184276471858154860025497054319033480025534857939611997254176133487558529795684058844607944615433203615442270030092873963111225122097816325168889221491447915864112459329085369572577087413344122629010768117839250645550892958281806536021905044239047390111144737578969301343036691083121272284270906825972831832088651530987469898456169625004769082705151834208287496360338899076617242701316500467597626641704135523662010626536330113368993300566788802083073471627024596865791427213425297938140395838124776992111418156823674374506537585151988637218923404177348655698775871882293158815651042518549062562899583471052046534054326368581304782336519578494030063574635154938649514510943476575983352318936660482233945285926485050892382062205611339557010269480684497310486565904873211807633786794133630086522586291921448435524316017411599160463607214324218113604342763087925341387711040388057106079363406427044960899850451138985254317550986482611919594986321535733655290062322813213646833758935377421817365335763095359597579496181697158901485897427918605299963918872145047609311657099461059902133837610352379663624281915298589798736450677171865669707510884878020990291309212565004055824454824909926526572573119711102139118547394879266360184526125973540656366726864273350133193641349332148106525005468164622045162622986512796216506074318077560806332429389302141249746470390459107178671645887861782467075260146106533590077891691832689187438994126339900024781254016041777207123552374322658690507097626331320821904255635857114632088516480664360794072544986939225501749102455353908689575569663748732259739170587998886514899953605229068091733768315132540232648112430038891326182399553329061641463949425430561183791634602982211428335802765232962373906563503668645064410258390377506042781038392106556050898279876649420097860369231952551263386488712819704961745636916602899214967124236483114013988219895302477653583117042193774003717741726623246079687683117873613351193887155052629661229064204757580981471384433935589116377844769726961563647373843321819678399019327475533698781598276381070433965057633289196504093950357722014726476316070262728070291952176651157463076878173372319518424590876856285893384010643317998312155966682662217881967636230515893408751563083545300157911459245638520410019928644500663300370665351841469174912059035058949450597091240869509449130195530499189939334265107119089492976187760810966664001054002573168222038670642345723365892418812721313491655790453830242823656259853933268093166971016896513015295817642628973279265704310604312126843354906693504240707880689670762099594749562919298196504124017350470690347906865884652780029525800716420390527931897131344478483610213012152141431583300860748361633496500562703776084889846262503679159720356457692262024397531938512837935560437426577741589114381210978351854302181212794240418060294109285635712773714650280759233495310392544567691395911541748447989355162233674172740655409151395618105857375790036548178088197652902354618977462390719095294578428844480123839523950420657590698369482120311168954880920716980854585832144981982578490565255933300493248877975737418270363325703668301969679147536510698375401172098311459371501553257599707052442985093404269082018648623864917159687958925403233731684655712605879382227951050161647639476975489981771379267784133087567085538670670529115932209075839541493628095391411273630270492079055333401891203899775380785580884029881020166596378560634371872425204330260268031331659756836898234246672968445068803466454391354733251566856213649502348860669384449792812435492706210509993807207314995565233285277063076439758100967589295416789229544097998615522867667511716230454334456465546946302927675572136059781611473280141230619221216762083309577962587104671429087950096874685636931885783907466596089642341166515156947673600285458022123005559443093563732929270799073536294800996811664937070583629352788589510202186949222179562724613820414971530152045962784493883337897761619306771328915697574477413977504948760642996789994144732203580285613087817367465948793613986675991087306245609755479811927651232354154710429914131639257559264326472471489634150830206553955340683346690223847987734647122392764879584764057980656642762884063819832334007112588935071389201713876012958255507508228897376563457718384349065246779509501462960260726231929145297359946512034975104410887351368876741025959432122740578675692175531597033736548873703696430497937341092521711072948655097617435349864772297127664800688451163752668789793379962279764565632708583850081334940196498169835019465284113860988749101536112202911663512464393243510268161349184498153300191718844378622507734247287895105251523111631224398315911985925535038570806481325353320598808184898528264656800876072991795394797673515436508640373551549877846406621690610196492343661741442859040639284270267999329271994949713250428023889958686002538492522962598234181223595149671007944487711427653837618312855032646806263863427699372510859840402141053318039074688648706559497823963413358543848488131194703589883034308923356668635591025980903849062723752803965599734556792117413082157114216741845763253009511116645133488059546743527414624644729977018979380653796788902468509900957061721738354363130174027484319657992850693269635179193375790969545023851004237680740476537645781594694251571974339109273174638624027292932937882043395038637504924516557056707280996001255991184616477847819464201282655074467362605544665533420099594366738292843569189781577953117780688363849611005071786384687144387293752400959184069109495739674634862434061999166402342517684473400445793651518641311061447690765871389158934945822223410418591223245807913618671835535280399139459292278244286763386826744389783912829532266302268518885937125328286154354016394945184304449133739073236183965547107323791995102963834858968292748705641497336588184259328419733187286106296748288430547619956569420076604400581540161928054335231912081152739428806505077926845981495144816468171282841904000053044661321886648926870882407387210597164549662507416883416371771171178200182554387912297498655803190554543683553555515857318492379388386155494786145766059964952639664098747188596141839586107789989578775404758827088093768789620975756122735436770672000376407043135900798835334553133342834215723393922868243449867140340645819372207234444028879662575396248586512698790279889308591254387344338606759371880097020683900526079132352546526591256149779002229601747493768264013354945250023729534040759254937201197593990426614343757487180448135322756937457046141356956196249861908727775037865417027754199433854873473339001655046910651509956000624833401356077455298626328735814220035042028451853320614568915477531569504673774361411925803048946850308183349858463721618634689388211828786879890863401212664921972192360160052797186415343999360277656597884492712954363119492525178495316579161095957909985879708349754858057505916860871322778248270602448013668687344997811503550100831245725306293641066239256707624174567226268106302202564508094418857517937970454049055802188087770382046223592580904810069277854338069354569654971850048235618154290565419130677475263325550499368267701269117419087875447896351760628897916813813186413930824342886871495232314492901570081513885518456734101526046845821696257198952498080199522739686278532578929095848618283583330146312466337501777496680042656900656543937921598816336868661668368312531906426764598517518713024218541309401591006701453513445938320832803822030510521584401474270205665215470274894305735115773273523963199411680991831674400727366029826659362193751892601955169757430050492580885142892256307976349713567163086705371086477763553577654168655398779588527413220342112443940817490945468159053669245133919457021953035562255204282702306976414521290498442715701568605821391500774071743373875415710585392824679096025232751115912011069354679688781236305534814243196535837341713793472375209871050162151688218917145908716913438240384368424431534012007551008921111786179340658971271061315167747875595985229964861983383030925784376313209252495823107993966584935826130293670694786211009896172221461924221025610342916451765869740296966608834422672292760125412363407458011833252225563373529563073384891326992111062393317924149455067162710683099570156032256708705092074043332056847763163853715306206760662301430808575008384524254566937722774294647218454383096605734211166917170747869831877556699355011837846745831237025221554776764815911933646099881630385015016796218066681882544304248037182634518910478080994823879396116308426529809675178734797617246705630359554719893954477667466123289098811192856869796377569506551419291075172980638245857942864255647520060612827241559074350077617049565948392212836967065792294700322127005152874031172004154844282544934878016440715089457091154640689331894738239794109546407317241988913905916825082953659220392520236787757054127345610321782186860840858149808921200132706286162651198545837023367203717660117544558223033529265335605207307154910204960814578147410702405546496128042556845467480271524107925642592102711355925929544514839982832589690078402166608565515279489928522166069771419988374918167026491743606011199329838835462527716855458255639615545764298656800215814465295928441818249088032442308183193753412612609755265300746443221621888974548413096552898305016692909446020443812053120651265770043023456335925367503757046189266882000061212163471290407717049782750047672172908976583888350602272023087904995847027557257257504360405303263732759128359134711653338947045528983914328917391050023431687208462365657862777982003480546256591808045834944537283050932211545590085799566091692120999301423473640169930774850402418123004936637382867381357182108694378744260663552197971942608868129482495654622316568562200337964586701617541965120247018354086216845197539352573081176764647828640455486391743828896173438926650835297009732879660718363504110867197409967998410646664909212458690590229936612593321048053030732711894280782847496452649190158085351315664543070156387268695151433227728289662538658086473411986592950716311105955291612486300944910702062274917424662486211089894441162517649719173219864486447958505372239065590556982119777071821911907032052664156299496816734146096657587560898984679566462046641536613589098534707319747352200136427702679143853311164308780816122837578124816415358282840652297202877814242185758567783599204756481935746805724932712454390039345066143061834359399684214282764958025950880888783676507911855904484549505865740708077065471021798414759100367206634053264720718276870011628521862864765792780196172363855795284818786773639684667608011305473455824828228191503723515540735209432630254157354460908341088807444037367551809865735455706895649014811600956584709440115322848163329053832185963413530757550880370408862764571262499706618890062747476421199542956533117846607418350336050632699039402997319293650570444878367687909854187494910523161219359423131386934046863074970680241309687125623093463202963813391234207533118918334162851771218581678199720047268485177595301899908337219049331125590966351729141790427701700195921916693650953773679873418805508182109660490605323246143642310870523458620602779857437596171589956034998821351775120565127713151704928848488326863969255397783318886715640356652685582922001263231680725268753313788411530534807584703509835061916530378782886623642946708244589239779417097211986423709432635610359026322572354956172398462440024420028248931029982683819115011582556364469108336371135719165968796386157233436734070375445195707847784519674850717152329991875385476036741779873035755301503679467225317975594586619548914346514599807308221715394058803584158321630219456252814510754294288869835963574529547845981575644603590966048657389601781723268282476057109600241256361743210848414527381349769626707077968777555449156883383541576699142048557958850661867150067876987562558293618017602416863001852082782200310384425672528397625806226626400119920306536845287471973330415887424106793929864237336554420352628061699145645887295930241367350085019871224824304733728843641582650542058582372569209223016489828590250165323238581031842800242758420760716418642747664862778892290120282040805949508792896719654205929235956535119054096336813400320934657583054903758487544997651253115405470804277225336976068824993694198959971882745930686998363716036689392470315629217970308032778212943843046385308487527227106751204829288646716073895309303542252038034438921287975056025105156216559127084516857874368098079130461796698429772666765289523583979388524964982641454299506717857839300997372404315375497521007918021919183021391116914734098934561521716874050227562781642169025783889267917587251836904732424833302807029448480380365444880621128738973501721351126155670629041306091075690748188110573878531264341151705212846691218552896524562894646217382586163909748864351506045569611742114577037454399550280420206339446028452344701390854754535217158517989251870029183372108348986545585213222280330894760224764422030754612075837524753345728440353064762876950708410657198757082803711697664424372761125204910940432029238797513830759173534843757923307248852211730388601024611632538235880810075572720143614303557282919615848537600393057391249176417774301446118955818606021958783974886694082757484597473209237920692995615899878693930944594527944422726179958405330838323217948538301423775617945480883020025245205137851057277379826385449962845150045378599351567732444814375577810063608174981709522227745295503744388048989742283296331240492038901883594602352708905323821722859394552922501292826754578870869703451040326705366397655967267844012466200639581193514232783062279344495221468318828401690985839224124004946137254637756325692593256584612709875839392528885066041029969168909224913351574323571273745181039326081750659815034878676209526864411603693719617717622586321101249721663848516407540610226606668198381477253359544991993717135363966070339023469069993888939086115580622789102217263379880832848655893125019060779515864476753140999677219453092392886666632830335716270536491112260366826689938190815129063020009012693180162853200853496001556364753709258522297443612838550454462798189212384803598133375440661573886933827435815861853016415825481488211518120658634834216665397424216352711996837061042053811459245547238000337920800940325529021416656821337104908358623542275444742625830817909348874153503825487382440488376893815254861377429068511860744668605095454283719041911324329081404566859132185034590970940059922440898003347735191989153366068208180206259706712817577298685139234282865252055344720925087774549029627752303652741136825101797792445150075422077703539659634196440393735002953878852106595791731074426371373151759333322499824896015970994579535682081676953755284542039957736434815088599160475513515476591369919744614062854065120842060685927658066675198672560240174915545340048846661589037272721276047721903858258550455252450977743044903407531350608347909110830658239202689494970712291177449138634804418057288787827930272977179323734037896963078974793226410677941657582550350760719868869470007491858622314186690909669724442012051015532978360919879452526047003112297093813832625330098692786302817561775725132206391154814542565998728108965940946460849299610812258786553262895809767397054253466002257259186657910153806857208353351886196442234474215972768395729191033879568734997273382743510558554813420435911294193348939854319329233701137028418905477299172454577936756702762649841552843903225640929129056138845794828050770396118395127228506619145171573350698044063162272651880833403235656686248734534264196173560158788904534152444311857167738543639867595600062099614867866007229666265100634252402244417760930148403567768226760852121332115225765368686613633047422066575373666984617011697103062347317187566589217760402653880557840394124094823839355196965870266302516998182074426380257011755217601860173496964719037749927047723691825301171908965996275188504336379424196493580038595143886630899215447100010289605582008266752044661557557244833729021574025999842256208311163325153605430529486500993258018550008133488066285154421318076933781348453106683513362413500159613684556834311978715747812138431885164792596227705499338408931977093701182313623161447307747665484187520791528559636778615497045873913606445814235200123993226612041268988528462942844030954073139046856048337439958930076143952856480368614002443954324051713520721634323791627603922832321166110681952509884214229786900248194881518890798439732671420485435333307899753476039986041400843647905887667705658609843489173779663192738684976933469467630714188087422893696697074498306164112276179198060790877918849783907382920558226944952094503094293753771325931183346345991192292686889331005989441865905206404295312726323589241023304136755965930425413807337967883438303078466591050678622255477761043164128145286469794205920360743222709427513182680619320258256060723442955904194572547330244308993637805378250037485838111660482810122205889933079170063253215629481363739477725747152229097698174447674638137599535667120628303099161966522670318595653422595538437972239461799201417384087149554402992524287781337562955064898503011776479372899232016300931089569633132086711977911361719079238726650185058625382104134266460638210576150149536356583086339387347051911013756235110990938849982465133391089367062791194375402669608231855856190577939948135815007230329877612731700919306166560775229235443081943446800299233624698335100305526866688040956831525186797289081013614154262711814646506242712823057164925839593612822106477368428379479307046848666807160292382104359310399957007051934921876224108872912471623637328855430447937776723795352491418442152137344455154737075588357830467945417351899411119650855668571034661815686389718106874308135258778022936575169808180512736911171461480534818815272239948811501760619108976629033538057082696643298189082909063170145955974263233376611821526768194757749151624054115843191685605589385988578062395590822831067493398694032420793904916729476677557601877572813299758001590685546690967803896525997473637684226266254124619470869948869157405736378791087247013551137323741936505103568311499423112347170196819694917035950853721207532502303578378890155422511806975300755304053441376861463027101505116453166384171800033107417388332677227524073630974642276208808419056945368927878003170688118520413042075622407093144753800832588729195863989672078083570997068255515849259917083765397816121950374453778459873957109290482216508050680069671169101150587147342711939249136183490879358842936849028002227906061015553259193238905191790494763191219856004200347703369658986414355213008855434825187756039622979605824925239521568455209408352140900458681140841502696480302880593604296938130559260401105824824011777154951471785065977596722030899289094825035206716880713843140607282980435676005345335244720853862058909148781897176878536349604889282675196388118945361606800531614726155425954153834648412736411738457183488966798241383558215882873511733316245702497212715544549091445777826600414187212078378656385144808915146796026197079259697929552391466145693178103602202725999878356824089239167501221475656832008622410962152530956775085522116014934088184465658961422998243546860117129910916030471883677948797454618240431495898761775175605369197323907815015960613816043812818269521665310211500526052332384297844621389070953554730030870956454093766377853641715235344664440793469590772804022201075962184337656437738037355522288205512163974872993550494770505646063083066155463218808190735400040891694807628051357089234167482448401805229774265862581375891536276376614246698300704590741314320721558363287827821776761980831690219743626143825174754486119923431112917310272695864199298117876036944412576334683894995049756212910644515598539685275737702014765287023955556132416337588665525160975039718852851890858382917109586422482639914784299164540362743887380380883628742841653960269168465687072273425231480236151433923656754224115579143600143365282544344966000413428401021123727045604964202506876861792798134955329979571645105888094642579793171447162382816825812484197321112818576981951746296276466980190792881677632056665147519322458915458439151533299957485566073688742386625524918441656552512354013127599582473492912168384216471754996242100860942919275324587977194130579038399540763102865081799167963861708929678397292619527664472577336470082881182734763459762564092463150526092545539878375098204611220986894327025188462032695279383280170766091032340018993824466891183061412836207333967234492730250478644986097889602875038996790015478055856521304627851289610845781782151492190243498671130347405465854353301073304068181260053813416832464708539077965310958847025900698097360049279700900577042855990417962830462299883784931460155513930049292191623358788702204204710643424585626425826334764165536862217532361432823268498895928182420818431054291962084954453998924438754155357273326086514859977565057037123012563956655353453192071729912854960330127177598854961598034279842228982142524609402800969396167317557091661552288054479405054262511939136462656202797050436801217984617382734702201691264251137782526278917308352722269871367046716648009918044536729837519287114038051666187837731015846225367591434088388926014920122630286015227675665413412614104793033215154593825033555158097436312201343612856787897897630827105866384651545414747224363465938393648411477078211382576782032638912048936891239193477908785230477201463658148590672084968105225580904952371886820460018122137740092371648191370196459478345862882935654525179965565166362030267832175141697506131853519122899915880920854234739741544337965555354261909183053401393036317997995670802288637737950429878101488581348261705354537441087224986103583637164328485737949586342689352379933467234824684936515979497105056579838988235119946739166488701883025166558016336823501283221513608813091200267740137916043021001869715876587246955437675172418706349905194293482494522006829814539502658424091647633087082456615927055831194619249083089551219634865350081560695539507017699416023208892906628630057433230413034280154976495069566256855938887886987138047414197638230734965448961557445261048888355041539983552229203113476030143975769873578172904587131973907494749098869172279612726096793772340631834003889796925127481848051167918576392540476347742478580202779910525721247860478583319037042033201709140082782417565049825276885248369948195228866023003662049605097146428697097784603647072986742429072556456759411693972153087303466716511011137216823088031257585926311638061361075578895536292111255687741060855444041953557959718445616623980542127254780976432017322718488699750389270954134751585491806484495501848747273392786801967351290827306769521736736121570138319625152276262577421238650734367428577330866094935064143184757423177478995544864164890781994900057479543287957933169848539773137084730713459394452735801021771220287137072948254719745775436036741916887438322916193657809194772932099667880125807804617509136578185510874989185811306864055708543145999449214714414481009738089390474044519162945171524711464965269140682896631862553013171830443751246533260653267908136207710355479496516246946538962781910195276385092767825504009783837753550620128292010963422275446852482464443968663807528370632250073403715168478413950279569956342081661798268288134997446121025553424555251320700161311323229459361194009576882508210432886082071082924952652294428095041182518054342572206674898235837106990236869675761896762562364119587961061720184614181006699065881854669094787978766139217228011515348643189891508583267535596272937038197002078621278205115276619221521168285901040646027448015785165576598261261708414929890112680673512799257755377550135147390191265750097348234082266879363365253943716385603270887545094222354459916452231361214548343437663489208562766219525321151773193946877542844441551349913306678722575973651118395133368763190490471747483731852621768790862909410113468251268307475871577198259722651534351773117972259499207635619551556811094025200561257547576950851355915801081085702071993146374794828603379913391269601956065184972387809766590744848191918577620092246469243555768872420583921040482381572789978754855838685938080508615213541055811053096816973899570713311221641465411814423947956469119516102300703133382889954733745566248703102603103354474037429478099154123618536419152322072078992743811610593707201054045407411337893931635867358459683696750845709956770904285695977894397504379414629038850477133118625316091438158699439769170131541031649512140932462590545542188961412620561050390751456974740238145675853532428304362981848515801516037972548916473467517182116160515530262146604311859301629763778944193828214253961729962618809707292590592074764011931031787005496777656260656333016326595018478141831862821704148355305314017429110994788123481259917194557070733992213594602203430763313540034360488142153157742308978242565820702698093167812235483278277298109484575995419814516114158519833272088125644673604020937147309134999483769764666603680372829203911596037492941334596248442384363152507562597205807974544094872688313283880161690967527905588881380892810126751766513751160578032702885514651602199314349658853799491995951714026539331495151681888677956088909243815669211799055858277376133331684590492171119068113844939102066494572001256046112099946951438842804842827757230944356733307326076797478791562979892263741132377968560266248919621748259441716946610989928167435748717391355027386297100979736362775268350524810529151679751382882483062850942682280788115806619950149506641508310917405786694737081304310831227144361323011764977284707455521169781905153558222217583635354963377764573594296561768124767747423509625300742247478199514108344465642160591340625252151387549181374513506835414838518955803183994859859801752474698355585573643930551575786005443462740527296335030959095632857526774377689232412243677129796429334575832193812687626782266688663798966216370227472000621631514784711997101675994809703371192648932842215713170290373224373308249550225843387965297130681647317802040047037748909890674271122667926054377398576683784926393812752472312405583468487331681286267984717198435692705435160766009462844163299440037557477895660308935431244178055946336012169933027026333771863629703099756087446711060043040422658318429121947555361324777259137148470979059523646567332533941616571837027122481180541328674363404277898326142956838557754366298599669368635815009094010191339428230594456488641847997674548615698129299293894815604496091981505817246662762105167930553332908408477274368031471160640072780329866938287658627887658117014476104608284426078382856536216045146384960363939655863562225416594989845839941489894143712180378094588060521682791940867830342938329834805286228433375704789965787403212291215828007264200040031628311334974916876253972868436065548828566262631091486705423288642316495818119991253383182592572787977124746314970832702809652787963488190795295626601634959833260750651574064995508358263830751515358459201651192926319640406974032435351894402559760335350012585407759848633935747510852326208488943084040583212258195216762514662081757246304696888665244684824094741341329126915532931182098127938936709338174102449353232073545453700515675069464311662601293893148524693227116102313387599343635469050777212045736137010520978350822061262402213890527293906132117505711053652764145851269087701682973862698693814146490025270901625834686038327922360623510561464646494888303230429593302436405851743509658345615019222160933233853358401656927128563189087830989935053348958450614137096901485339873336575314497401123887162632236400595987023311969800547352277855483630748349329434039900025922136470936752135293484754447329527563896933802231427850853726008659798648123261441164191758605884736376039104355144627530325376513243239053352047073016638915879833899313403157467885798008727976844299693284844802839213783664024097768701916420162059341659671200088919714415578282450680942586916663081616754330375005334421499626486329069909409447374659518744928421771996050691682705598236593502427122518326364009796595897212116987395015427105949852912377441758055916726995604010351945305048998343057043307223018971597009943666672274984742358492534548221868765457176659021236155863447265263084602143441856788769657069305707086098047426928918814197548666570533152693262185310750777222730735131932039714438823393444277546326551365947800340897562863801929480255140338766964692084930407231049613429369773628969978825091452968098184593262297540231105244587826186357420387973812178732747621943707545771755250123526000749166083374090609623148354687422982114978471288737485697237002221318068468414222373739749618807805178945920453530950082785793861325084316707996552228704711391632404950151425665011105771111321349938585087071515115708080208427208614477779446544918933987981802562884249821532496755281834285458861719216544482566027750319303082291741317678189637348490499312428691884382244854576131207805756191215837342291809341591625258742542394425287425840308678355904685601005466384045249401362047097812006982545382218512382160649151499930224335862601000038348577656765015885074678893059606175505929483188757649411697319537363418905974473399427537243895178790733855412632321483176880768148424301644440826171779421018354862536535474907038092235315338699773259451248475503117454221745512713942528582107682002923989149880920093379819525383255281825665832800604660926934111114524826904616892053633851818370412771560508701329250830882219881074087545638726729664246872309110290956501849700723796896312006801884165291751676613812010994615743327537522013405749028899243613950479581143393472768443291007784396479587292359638299899907963730528666364297485651150804157994090360664998636162001368559751702131883452748630282353335510587836692088287993941925596590064998313905625339015124860211558698670287478631175142324724027401291744266554714005863669921140037360948745672070796273410463201897068688698560415784931797290642142242094949459340762711518492716589146877842657337787178839931467194921288061057024326920235154958329761848591383206839607180822494824938364107246848321067809332378650871094036503173986537506817471438309401046965563273169686245644382165810629557398885849785100410958918782103222245704657287866085041065153811460990200806213041268513767188021692549560285300588209994097498961815103947977336071879777051338614719299563319385935334855419435734237859501343393978801298853845933598667381307763398319555220878315057530592544248202597544995099689433566942645783205613579404740022439621236048112983096738483142478215418164964585843696913451252844243375702964574659160410990850882188063159871926237854424512112950298932737323336228850056680707706134276921036726192494526469246522116247934934919227330034758050657317786923912779062328911661512042946928064162024223930000886265744203156569671100712168928232309868510469506148261827910653042892697546933043925421791800000142672276413377359423974018664752879291891016916704587819197619511113872935095445603322226892518144898950286433077576805396081368214893207978218984351140112741313656826726771814773509687196698112616366440851416838581067588720062859728590612529383302407542645115534035188833849750457190271850704712937790347255964046407972417895839096002489834043286903844769380217862791169868077787782816031902002605260321857119384869328951029234419603775853808920868784557374152904370677032634512107224780395273799076439467327841854457435034586004923331868562709293661377957807902024635636636237365356942252058169939097094616386690701798892976604331223606026728098339690361909377723098272901380508708979640691714327120493540627592052740205870370329709628537873770390659446462813103050881860619392813225558928022654065226760921903625044865480122112067005251342821305510130273507974284678053389301608101215596919479649017808537131148885649853268613640536612297810578619235895658172656055103873152513792111696865493491340371078981658826489966760857979897368963499308621657907880720747205062848756345526416070692699870453403531600950866900973254082895222304298033940508775569980986098192451796173798668977327395362482695461417910930778463689663595326944806282689458085287744006239419094625919573083332535621210946001805144457228890559448036310874292720720563675112366185572567186718369374960989734903996439516280497059926981812417665469104245620719665981776048852143323301632836843912084433912536318481628181959135157716084676547611584197728720421192934740357157154699413872003377914863848070004645101731354348440974209454197276858250505545548546662486839256533679143064483499966947496130066907054470176052623221080450726279373042458361297773035306623384854843114361284913647100970719349057113564426849735529592599259428087395993229704696577764988938322429376661329474638163917816748664111169482759827874616905998193633150870691065094624813836766400505125893834832733012301984961523270560519922161046195787910427289377751642787501276715789106030643061754864740652400662009458823926512235425802535503993657576388971849547602447913756649327108993482513476109433067126898740891542681850394695986950104978198156571960243557732368267583927605723566595879680076420642989804368836781420041312020435877590958949149446138885593312608930010187299237754622122707519731549367593994886714447861196951186725690512429882044160927143550103688385359960318316010116066527863089913628178179357494373599672273450794440970445122919067207073790542340156965422724813059220780923552017956956163434218919451276736229102897483500024165718797538020127643806111492858496215290183740731743178391689649674703417192748252128257269620844260388604713537582496562688594764590408055970250891014263851186317771584431400751278883799655866437556219582295780420697116314493933536269758463148026615987014960388527375767906322822177703766623696836971462226927037159620877103386671653772876067965210686341640019815931209117639699232563141296073924747791357552396606223923555789997381433765161352144602774847777558026954947864551599199415965809156192697781953324069897364269377473054568595921731165791689919606887388237365602071267176465890795881501178465474801426245835563868248385279225834285380809595114417898331936805168005504808743722845977417093000231363962998834425586447941222400175237405827444471295386775608374379889628053032415726742429973093894156247171652997878908112564577344197303925125309265841005531939991073506022925704992038957593460173954465976291779919753041970025189078310904938230265750384016864101246971396460499831535101018695271290093849134456736545964333041183491050538706546765817963765144765931029743955850581182760134812600922336073376858894212998061963241167021468405135185013352100466971127801796256073745629734174275451774745323338836624507354564210921400133503747071638862298818449838548964090119118236777984235426950750341882185544400154125718007980519953557568259229804322719728602132468745904483071099344118179998931416652011289511707586098991588673217089728969164037383251141660110446143459658592882432823113187053001535484150832475434493480327940175544000275295457161450581258107654357879585717417187356628653497690842540425114691130422002861534110997440390364127698013429003433745221479029127352312035999698435879097062214357386910832522406786419561954808384172043987213416797897058201224084083892686327732272262205128964456556621066494065275297119146943261037061243843604808065002388250784190321481352772474301950443018672062731416445533082555225886894694265744542722957153811835952346500967155500192763692209942909648307707749338282694476723461992984070823345001171535366618538947290869790461448361473024938620047018726446980083760290308792543660571485014944288252555020985958080913074419566791377229156026078882194872393028803556848034664525593596981044318664643234418133969883147172129738943981959423144680799401985118209174000515597462306785937422106473255498812017922834319282068192778046295526209216948343795064475373156066309592790240861236970110059751983439294880915210189235447192573634472169796167873436908304482579474387697052688165504326031483734696078049454769336240972920941124378797987260171011596849860651458263265966592681170207572311884615301865213768864287733587803527080308022940498846850881444768504168476638971189666614511393487630854063097964434093729680590435212080846350754489156056914691774873372851545475840378640874142334928789260259779727381562625531858251909200486744885985205885249824245104898134865864190352958509950072672395741775734263169524333344460014516776709873827032270902702682511311028622185373028092183742377146893455969264237239395519888232829866972799133384600849212404188001528904166716995812342618358739309155957310926787016368298391314454020614236418940046556222346745730821516796677730099570578266333451548576563872853623635200726025607566337677810733878750091494444975554020420472774584444290845605749937644308657731545618423326223335635836579902319690917826447140380380096562537818853289249697330662492835441236258513973001051295653974338481720078444035017516981504463296099091913436988715218727809999432499866887412094071958774442491371424168253901725711805597411113394566370257958112517797156198932440820980541762923511996940176958987625185657277442006578081697777181279877641005076044692042326168932178723073669715041809346554435740689676278842309282192359020793666683982788739405592287111298003160937749736979960572522416127622916413731319976737603297305962687914384179056957580507273769818823426143531123720527486768739376599658580128907048567032843110179127803363468649721542833660642112788253667269923161557159723492458799264039430214515528225889427469269979693466767057913607492153355514219225379824955103318059498110068297704821053094273495509382324563745490816302615487012002543686413974509572665632452474055721139164646651365982169498612922613763109394582205521538595745875477009316680458544233953790076518001566061221707188804278359172585804703070725395668742259974654315991535863615270378568350863409740782418423382986903751752478865889257475951242141448658241780163705628765432946237858482465294855922365218837285403568646199516444988928332380999864765149529651463375055688784863588234337322997336351513162574967659012501295884424223095669453241413868684967535641057086576125858453294361953129777221187563460016659309663729037094332996496754988499139995428887887221029270326637940963641747284155417456980227692332838903698819960394643503999038509359798812305271904534310025641567049968620668704640556914007451893823693031794553676744964228943980414750287239771561202009393238692612887191122757889513498926598340511954934522501197307664346090423003520667642721655683708217332494567607324880409020593655798991973216188446137932857901311459118091326217343353245411982124412056181778136479514125978509464295758629534260972511739957593593291265980342351703172938219929361756657071630991217537308667587607640148502835469651619026047454471284940985539181479072308150222540092117533360234935213163898979823686581915355577208150676383518450595752840275094214440077306117955619669862688601396694397593920841264603373445319949862160646580436594091037891660393250076272164423881243977288498294037477726739897746714116251577416789401911394964239556808950642257964713996411334265614518524238689773639351008491016193946244023530931054192303106095375787862184244779730427704016202291620644081711993654865370519854216373154579110703045917406599086890593005236712928136116779336581679959273781323207319378435946392766297758604774562787880026669229435632789551535648867546876379257717259659298984892848995109705670207868853189786460460130575235707961398444771434143689238307616023172146448098764254044753127806346502570936771363012119771743354396289926680145254690110679370219320783039759063764772686400533038444366245188417384981634011653975393173361657172954861564588057923868388505025320976964748064208831973958341308315916539633567293157858439622597134201081726999472096098806845140295867081358726249568182237960332785486839208489777270015962916227546711150536917795216604962978611701122724789942141372489842075843427225095059007287476713327273823136537956284165409704530114780553741968352633936651987395830886795871085728913398596707126724700378234467385840033123200851351561178236835246634502955929178107074283885481900421477534435487381425243711413410464180992025640354523306895282234883012709030666356992611647231134110501330027498525454521771991489827705990576213602208894548144820949686600671183550729645651687644497786499859666057941313872976248715523124702062911272597387071531646509914406576405689684936684354232623643791678521636758154130924754524172125601462702056794579065535198019311454478050890591489439542845665875494482277727244981832738433160984567489515008328467447519838312682485269537849299173591297517177845539799131656083787477506914067274335145346694902285361167103142705111788238569824353807276673599096682140536479535159518223941098668430704628703261581270364436385144719979163265646718470549026379454798928113551843444635383687420347015618273839956833838681847708163862328585174346288550559022054352342344404779802373330660457846992959847304444191239214380942562031751189298811068684659962726865765919932313106393622988876341311766606912795857066153710509833608499727256327635396154775984846829795621553945465055915822409570385890420746383764996357714200360743959942534407176041426928872769727936325551886649885886962800800719008200200460864765444017893695946692447962950185437030400277360712765203426254877948438021014137969153320260070371452758430146511757084736032521186587304939949461228179406912484904257008807627996033406366688403383768338431538379503094940364589634676486107098425273970217545315721782793880787852959892611448792477720962416944939808470453915996693196269202582752808294627997107503951155275657420470052346712394189156916316796084370243588205649700675525115141054800924710425141594543480849645345217022364586848981000906303958064050779711861585489358728718596802658682721869690157802092566088923179506138728414504016389004559081571428920609047640495708830339322764390466497561705726639322223159263255481233366528266525756954882061836070665065701488998462007981252366975543899327707202171766276432294516519956587585688435140808634738571626881222415773558561819143697138857143168291813454753629956997082034953432308232240812471528644285488677990446149442842182850614147550460768524167566098021677359949725174363139476220328170527059259130540892585127546845390595960781645340383610846127087218144956788240466519185954486862603791019248513416602287758343903862277187983081556209254279134091235745534802508422046860476453192074337029089852137178340689525223220180844603386591077161411411632407195316164490283012336638956512479513187010175673641229944143365907037576416644444389628511781075639129037418938785624348026333501449379453249326524446486577411609581207159051173281795791453796556142981896612849837091018310960985001163825497025698983891896151653408740695790678880859749460610150512955188883302601306222968899274527129454226048097537339393112663265611984346261965763192369008082488875872459723293870961134481192732608809317622635797495673266922130052975427415923534928760461671801801882042827825400103941972507035255767826127866052931147106710721102569219662894757926784316243836974978242563679286306044152549633646396444369810444635431699125804553189189107881637502609442440555505992447544666227764634102078735534311554219276295510108652068895524988616902385686479748084933459712081505367910659191706140232995624354309255482126469353326608845209518731565902199426629091462516888471694654977760988927385145913571018212109817152457414183448274379627225099865341106305821221068373401648246194155958701149125851380159471080024588046862999465674697212473518804844351222857128844853837751317746831921298503693613044436705460484576825429602095048027048624355960299322486425432461750773930367841453717866916735954377644187343409513187599504588757460778728589386178898988775292667907008505075497108565069897247108645383183327942536820893898975904184209320791571571442892046009164211546195075305524308376917347283511592037776060329926148903135612111535314004084620961938735994210603263073727398011302520471675068394559922623770982522507714123406514094421929828461466404692465898500294584896103995879031255546234110094365041098479655546613876389532714685210153834284188447493440384599940837634374964075966429648941639742689971869403390090267764534444565332613147147119399938223821923187845707426983750496659728737057164544070408404554351397485275123172287743447625872506103920610209139685285995934752077827884212115375543979182819347410262781745083741215259847931884295846178177006308281967126177493898124055765869053690744928677815417179685464956912828671508285299840271441580529940728665455968116571836212543156586102808318186909225621381853602540904645847633188230255047985723420445345241225815098089722687658600953139705788710768129253431926313987127583269582157522360892592738006181283533288607966494963710024086886172635419132549765871596923578205982977505941149534268294233129258303238910463735001614978225240371365936408890791775009262051748536763752069073939955655112767649158362786185218157270401107774815814650807050896724422057762602272656314921406974925976871512785251436001305963206453176200116329407125605127814834368955982372217695240778235945595240191790061539671452392861322671311988076693772320666632729440775515239901816788347893479782048946150916392483749647351622673728238116774286627800310109502622954819905094031267391070731515535369072065940520692638484759080313456809926166805779829918031485005637464078624806037355421750042027772929388443157765494070542975835325073995377435002619348925772728585967393818948564253184023984619997680506154541761606449161546919518198290307214626099735081116231827027316920923131410979206738567420762242762183232965221850434418051011814019042628742612828336300437203114613902131701829564508925663540236155341239347802253107250767507652726216967856690824246455567664085949934621571116353774584679777099551849947270996503819078209027532276390704745278844480966961505577430959628036091703390264560554596936377070643915699407844459147218622247457958656273239982889611374289509259701349793823446449068942380066476654116739020703346159223139899870496755134165014494827635348645069510705982005182391905910480250503967159663155715301490899373282055235206998706609265369650097916909135129117627896216562528225745789122704471601225037432059018241687378753512546820029754962208964182094274717628768915113399360950892580972923722741245364199562968623069267326531797085306554579536627718772124241547825790418291337798518507751506482806399242358431400065126190570910287413554424719835784158529284264419437933599969361394679120925989188188025302024796190208285541943822795852657700715873852979822584407880349388166110086634051107712394992077079672898992365337024028721207967241459579263514332697582542935308940636819310649467171719644763802265516626081701935241334884960975412672829126697175009138599014147020460371877982619185682698627169841939158512510103545072612410239847195850217901635836053845862484967113854284675766641307361688114452715808332014111322509435367468398870606992224578059922741137140546478687236077496630230128453808824332069014130667337336328266460174524336718497161876157353162023954216521927191673930134325451815841085254372651713204932150305165990898406546185677237941480861658183071261274889887652319810327872919329207744611553184302595494716620500208300998680489256563208436089717873267352190829232336799182571456584126058296270637843383410425435932491569962229188946992034348604792860069461717585692197979499911981467529768543530803501428633528297648477653995876751604726455176045098741516037160702878283378752972407569204017995550934749976701219073956572888277240164598787061319233248289676874130082501647859424339813609305938173944755584974695702351384946910115985271454062371304097111114672643999512118349925601068195013094980774753318151571631573490709739646667679820933490831971649666116947030735060483709365993133933943843818923518762164431081750571307731389204308614458228386671653052691249307253216676932320619874691554934439095273271863777015927800114563604480519095699279982279887456063740863638054195946523698970950495275542073526941231824743307523648316179976197036012271652523783670589964069613751779132609237122558294501493021656066971446152211602663266560819282340525608451879664358827531006085789443290320710493899606721883120502453284649620529707476803389145284466332904644285674732643070315534939466916461670889957666836031842061205872723985817058529652800257480626834568329577768845222765108419287781971573071593347137121421393114640941556781284972125752135535473029946392809049673366200014381782534434292234724731766170923036337534163466661735543306688728296032314079338197087841638910897554169453552129432408318893625465534499164594623831306215296196086272190845975543375260952591161030637447971531931906383175671370686838524042926635183726663747446241201899139483465273239174656829694232533629388385315293427631692886529784671115427111551710094954261212900585046801116239421619696318254537539957439004122244041275384518291775134558295803386565885419118797836593804345480492007906930635715385836040976144639154494554339439531597962805245454777326852477788909660153482855426985953312939164164924216207844058914253065453967266886749285116809548808611218495402764798699652068288213708695040211575078346701290997303413905271768780965492052819154353286488701759134601644843203167626916273571726029229700633818617860369380653840847981297038738666146366270315050676959924655450308067330559869235981117419076456977380879756278675303593901663942910137913408586379298964125737211155603440182813623176272200135397995754298614097303557052447753192365774025368868241487321532086554444444372600325768599622667703775849771490278543375085759718758819151992929470993014393838077507710538945835019983572660851203507049687634903657668127439540205970798009018054665794269285186869559385872639045087823131321962747050291661164855462702257651999059296284830597652947758572326212320545725075553521858493325919522530300445300235671943332738490303584157736865236076474170904456370283042622197099366617231935013902072334622511055218847409576695411170037947341526656726339778715361503402476885645035107132988996596763415155153722002651957320633061102723691043242484267325210010826685108644486263091145119053551178686409337438035157787019060213777807739177595281988210404360181796554273087484871093865775068399232109482907486200810642673103850651939583262003154955927330840929737023599042134793885040248936880813260200888827747621554740924855398969950288995059793796839539052577548606722225399853182510309994023349033547125714121188987245202319370675058492109587706126935898450911979487924283645243974918277648912171796775798926707571831040093328922580601411834228353808471973051088852949629628666461848601788058727552099466293738589139799273667870735686784999738787298636471012621021887114498738138252634988031136699305665907634691864374234240527538791901827091967584072379921292761444806461432222200686622029581067155586238403688950711549254696376119399151132905408254142930701994641653576705191973390389819837246506233430260364865015692232888184140065587065822465788446473683094119027644985574192703926750068063977565364226307742478930661450845104934367125898479693326199291778936722075277339197696136336208720441321159325191154994843587369358784116211910308911477955649835478131840943834117869928884615525022094322283551958633356906365758670091637727909912207919484624775818368818638389719193814020698474890427625409875048738562429086468565882675730930709433593310778816666686801312422350465265226959065540217865346899889602990074763956579987025806334238023624522758094068621380225794388919416474176890432489157758810849532231786012430252340296672273152636831581259517138761479894300621875791930043761771184926341949712710144096479115225968794176230669486034051241763482137133766117058699692897387219822197002681085793414348286695313641953808954832036960994831891096076886207325206220739704611970728551319191783380434363103154523020149037847362245862311885486282548438179390212114113976120452860621677295108411876419092519332636065714217395236237410191426968437614498744450171455579603251335555267752768149668971182679698392947544581048969190561635409955654302532165204090182847158770951999818612553162394299602789885275410297819844691958905445765281145906081278677761728772694476887976077862056175462676127765797093704762617834760782754089950997432192562130700301059050304192421868133910657523694975961255599505723324424336471255966122325926720340171675790933187562162017040199658620222704936973449387259235181230540228057673362574624804717494253379939336297108973724527092025214417786647388508374187467752234837522654277914764063916888688052020834536532587419672649833122434432115232823499083623890668529174257184787820767952147075630982873164343130953287862131641738038750092946652406372214700477362189940435485211516376909955026921637269416826892804866269063198375580844401283614727879945310057620088170940481217660438505286759438525708912943851994238444441656087754582666956209425722221594453436768157133505960203569026602093605831187802360404211639777913623712755674088212898761169850455707414972833844246677234247316686880223057662877380414865714810943130225223975582672895812803767188875403268283284629028960121085836373648710041108971513883896758050970874550810706207758339287564908833391143567507028825364864078027147802801301532060145336124578886431114325297907519764477228313649578314512900042722706918974065219654684368174868459441561240352942681244948189705929411567253584703207579158671943420809647336539859614106278989386517317820062684196030296530914454941866720457796285723378251259530384710379782882670970525279295535461949329860586555965979812481383897716688347142913116241247171140562729616324444806647255106154827553490794908399361177902911798894539163305681853599453498087784301673419682681423186673684834073870179326620921289040188835629430574462650844931486428120578520298403579603643980321002346891042261239873647473596713748783802220534261318622692009607400492649665188834858271552139025405318226368267345925707020961865481613880314589764278835619828418196915735709721933761230623688215195401148225474006371942132827610441318221711569159649056152396321828882307281646219416841184022125833055310335395625406091481852315455877252922328703574375549647371395031810864283291726516919875515310379433932033309118153679504451580144731980654781193485608492907864949456276198011805611891315836693515466140002874679950294172722926731884485805567772699173030286898294079062365876387465697404114708799489718762369884581633893245994124445355885537570108664908648495077695620745379890601605406387297988948128334611255720656001971316728736460922426350887935615322907909678738438554301811764827399078572678567014391801265363875128262929728505252475190811320821187301850054491339845366105159526775464151366088930360852368525031711806570497290931170319195174698117848570172521993237891264676178484692179762969296940735849943739604088345920688732214306203334404671279633228057591445057410267952059629278479745500781066725140406084207851317060440349518199180829833377970861570534481911603687951827217791422171453271834948714660207103004307000715492430355698099552797018225233271754527160705032563893786223662715183673628484078481573716809751735896666619236929994766825991572300921972507263954982431634134556364974867346354448056619016043894139965844192074993153966347128041032842796396675977731848970966667287469355644468035957589560891333544762849510120529079424617366594815257357780874704773374040246110186467862227160296379554559121500437391319824350095310932112918061093687017800273384770109021988949387898433378956012760260189059012248790539057996976160308543025610662109430470546598404401090524058614758431888624153747008615858001164776542704068336916652222663164051549239881048002083878321953348915590286518959391173704479842380963695250030393519682427069200286864022155077322175004962699948760211364119596348100996710375002203755857739273281820178746891691708544692530256647348352267075223332201429001145663659746112939189344779925283119636843829998882075539047944695231530748046758751994510978554355865202263082167928687618619999434629735598769321475292730793878953084043370942856773101555221610978963587945227494927294114863863875639752826506268152448969694958037506195574207271424551886002950906076469231004298307563897783384033353424244510379390351869325944703176657882515229956269996450933775190662745885427538805345023359588191104573978750376421800820089849039150660153580057422171077446622688238644202481730831099988228737244375334459797758372607320539964287945730912379509829367692922165399639399997763569879543630763825337115931050700526709402273878123552945535289046042144647506452904684216852338829894997947875789869575728485000979112303060919426106930346719703196194725979023577566321275405290271253917863724877637669603559186975942724119717055572687292105929965151253910267290810119957132806011754432631243999478459876413226159470148590627457091513567385901251512125117853302135723020050608455026671645570983139502811936410589925434152446174938362291400627945673383838994305945880371573608499928757505538316916372514362849952035899017214616746593865962090373073789732892741597518615083567549029930592185361831660876394528085068094679891079179754606024213750406529185255312118304282952399952854680917437284639124517252038015677720141829145143180322626140461202178521240991055083295338960943070042155112724171161684751786811792740316242333329975718214215015872167337128851920350635027720930289276981139955490256644040236042685667069563730754670338929647689409750176244141774236877030659984379066892466482764574809294573008795588012608151523236871066475912855985896411428404874976127714759657363104668196780664174318241326405871623351771070350179812805464216533042856819810766038493710262232618468717144535070330368558380148831297221402148001881113942773752696104469132834655509473245912362949687545128025781181120145882432992090118431067854563799872037929609697412060230509618189083553646348440836391351535316163398694159859406309662022900600083896199627985941824013111099202262285755979227662645993932977035878446659947761606540254158916483090757885839501494648195181799885710379884538637063367192523399238188123748157413225665581131872023658349818058561687378834624747797398616190984273394115275530285781599031579573124700149187001688869148044509686892329785615882977948761639284002806713979300031677725968835568795941876291680248015258852518500109811397648180563759479572900348749560641925122326503195872070915256400755247956471931508365977642835879590455165432359400846922589195652442782769344270893159023743954456905747315139858170855457987743115744759987281247836476167477957134925351379112069828598201772755494063672536452014866936327799079743050717991683287735808556751810725825658157901017263651696781701264982942841075559009490367364851163388637942797877293644975948135255891444586708595709441657780592253772449249425005379636124208807563649671716218142455604525687232251713360759406454139381036987532099039690057978691741116450681672610581553192862567446459226249380401217761614823360759918528331035724953364007023083569164568760580315113270457389901610054655913530638519621992117201286268893891496125103813034223817041539304680851609575999377155421439877215606066094195551965302476572264270074562586034394012086396832156603995121234394459648417644285754746619068926999648532461910465616898830674140664859279622459458196845811096255190206347299917671153347776726824564404388076295999737962727157461729529817211181590596838101566658929034313564734293725152889391279042662115625185392205335417056887686878039387704881012658633860300594379121865148263839259568775215269893153358070812137183606601986922845345772175947680542353537649637320786429043694445556586262424572850304814702818969177412304741070304613471081829486927678945903466121082284686749271189733088588100633793439881808151542697813612908946597832602916207049865070858624528142644330075255029785801293970244582668410514321947369777150490262681259863035633291936512812761463977988266849850786487649762568596400753847970755753827049911145925275818792292898205077147866356542443415175632527322220942116165402022492441187007339622901937309090985432964832608279011020934186074195925700769896736186994267286006636827675176715048327401058405683070813086604224857874530960408911870806104665982627554176470199471154695711966691573249137934442188516649701174008312813754532307365033358473583303040672006670959570775996422213037472838476649627475563988305663806009001506018687323135567058873411335233742561490306134640213234638705702082995881276007164322958353302672805108851363227922839485484759899893825398243131195193100335482524189954570960154459858908719172400080871904717697087452758914049053225991628831021989836943876433951454017850124519195453145611554862026795535359516742971382841697682512721256129338276071815743177404032130398318697490004964796527497976072447704689820285111261961223811970012408947296501533167542676219496158795909674508649578208981408035181232125031765928835396345908012062574903553518692476434915352320744328479311940426675325831753596750166179843643167960278891272710200979788106506833345507954180948068840810697401714243625916580322864387545619884118674394238174569438053211139012479063948093509915656041468847618467489312383183496761071253736463794477499546070070291863920729902935212364795781100924127974540537367398311870034112075547906579131003632932340058520933180570371844546027095446874592076980767624689343885049891700886695062756776835925842532125165408747362137103149866038680007690862814581203585701624906787997615451817582463159489445977035910194091633354550264620497399582041932206172127633820414552412435418596671586249761719640281228600746609615411153708734209134844571827794981657369030773066524628513842776551288949109565460891048083783159003651760529089188135676253570229197836365264439388249033037061055838659067849216743197616578110707387589799718875378898618083747259715907459451358344642228324411589197985829991949856552308097246309173520136247883905513478239292676334968234829159103833700022141847883311525770324191795231859723869609893665244645573096405806922331018733122280277501823193974364969702471866459162149285360219768439840931965765857656575275362737015565034584315352054469126794758639574709538222841135491186290539324542103662928607071228131156265373963442605183291765901446058796247507751273967450780298945631145534651973782610345704144037084394956710171258767345711334145094447198637431507109189347394392596080739948260954082661937947196926679263473337172375322765709810832332893883431792822522672974284852804928947957881935478067406476676285565306825631354519777284658763711425354540857643846568986883713856016112519536497070007004152977391350755012126400829228448178454174572827751434101300320941593672333140551936577290728335868850950395114139316129486851706814210900800867811427599034859347601353626060387288513983012955968524816275789701999545153625908779996938852580407039980880751158403055171182657430029580908262017832076526307567205520923450701069030941470602597325765840262365062348944909430604773367657131366580893092458727510527205946409969892439092994992647803282812296884705903561135245883194083521476174673735225956717720111019262173197288892112523990171127771779091472391656431111804476203386882096506124819759851896273050998035705714394664995076111297442885171175011737040653117060469570380251093078780191360593027970322095615542147032936020359616471548923186532152345175872582110567191308098523349632068024905387059278133984936471562551561076295635645147926991709252606420997224853782456239946913761867654313177310741788573819791117153954227703768640602289729281727155786773643558553332364593295545808875997791582763290887093438207519492402191246821273745227610695615207230478454258150855103070856505527906125683619124654383272949910498242605163234231355928594939289621572719324257869231309610502303391312016919383273264663700946769179540008328655342412984338641039978018262136423398102741209227220590512432927444026614728192789026845326515926743727279091360831473062417163259264889887738441934984059827692014649564453295047545908035087077571664387103741516355723457717384071573344319882884870201535619149768832292352606901341697349897820839500466394034713832862236221914320937536956247578261199849732239169164241752817208541760704383838274256014201456165017092564090020586170577853507202375862194196358674801333750169188868730725869920196895384017549894026922464768433712144687232890608845883567210334972260998382657265330954205382555818825441832850010574787617574824854148375643592443406219761470902067289613083408288645017472934508098866988861276136658093244450433858629701668872960476489682570352036625181681052359750634081889247075925377857822661263386914556526739237200275637290192564004048922008071319016225669758513037313774257970645584685903820881490110076546485943827571536742729655339351674193745844616414305554175196201064031917905832088688088580382505075298804928651895462803011691132153738045140098837498485319748678077021121848621374825907099327397448304440669720389502057132710884875175782963264618170991868721855291713065205397861904484047802026406004128095991809826308785199596985629516607057897551920114119360779043354848042880533409600688977778255972887458256890820998314173415642284654723521939558397230580846175391236739506580254340717092566362836039693258118404215927086415428874722494468885922030492089855521064702043759873694937490143975362427032544876686225418516165968896001827564308335921425263614115654484928102006193464863135131349768867888848857542247002029483981123663602581186673476005876915320445759746792458854638141826570688650501293930971641125735395864417906053776180834939327249220553927042722888894519146016636085071005750963405466572146237686507834821047701123304780606988377858189751596424921221987028124560942536787620927726586755269128082275894763919279105507044334972633427236345262060663671919182009286879452976589212953046231147565331529393355393940540438502559464039100883439180147061550841831195864368548552248997723148882377709825109143130144485412919682468469941794901926119628689760960156372250244928502494603806269956784537335323464551955115772809237999427265873228852872044478974037410439812238177089973521160399986350182191350146540509689038551828764891903849882234949051030798914070875798066369659670410839313352914619356340651383183580329517278772008854634274162204192966957574508093715599291806251238977805500514349095656830751456593449319079972514745783334510512183155801643440615080085908964617387539079963610790649488483957897498446082518814454996999771115714546270818928497119824353095025040272939493509065143478269693086009358723036889247057895811469108708185844899186000825880085501349244825348558957164634205141094268671158732785208551430171246486915492918443253607243581605719554852105383207463957353077181167625108088238941723580085347550706438648695833390634005835831511554948013071802167975648131310545738029923802112331376895974091560870327112464693475655855913978041828474903397820811181310709014289240357720019331234323309641102859392319501964753764619523118051200197325317759042452766646057768603338912201410944888773703966994132167092863737491749689493833063237016012536910384123836747740490610058003066061992597434544746055623967009187888769879570847776946550322708795687701835380967793319218037933672739918645431987397526795050744051992416219635726249248526904495391345572897842937184949600011442678710331279596639225765419547537464003700956596803561224268519718261107268290892470011336783380605131660908294791972723534564969644794452187676087798659745462829723025664838950299762881049562382031292882143353383912447430613004561717728382541648259105068445502337980563119716361034624973259379246826739424901810416135137406745769129929330859126202529207913305948267407431991829047173775722842567478653166220418551166843860832279075815275245995859881822562801725275188517936401866662739460939426884776528734316590806638739758414190147356723132205117772773033268049305751128607802623863288516928368645936646562074291541782615328356759874189566860522615192015146281072122182768131487293211128279088691898072759088635667648088973751869138693526587322921964258838965063880952116947862298291964369272188794837814880086830896186473014406790257924479696673190049375164984407960821498084278625084138019829737212004514736861638183271984445020409899466744296120407336875572056580871178189839255439601658628652066620522449413668095265379842995525564270708655568418948008180117397664211995900620134960267976335495713222790511547620039068293198089954335067450535962135457887035930906181982709636391099307160649547447466734090413967073891747772816767507438052113283161517319407313174233424584264641070350004727668471345968742564280981046055214755297598959127272326780318890834103890223386057917661570929104617990391427198765553108807010987776339886348514386485348495445053352505864120668982092075211177264007810009836851178635274159153939245871023731362761446401706620137019041065447369819819915507787672022874413637013494618440413765055975603221730635329843145339612444536633791680613980110280501211368022420990338318940267538788747999450715172684595122435443502242078842042570492575360373473554596422922284642884535199017167011890750440891594189090369665283475165503863883827537241320353083897314036094304739315414034752442734240794458886273318565044566963676772392054824965657982947672312548065660675916246612014585923808725636953843379115208988540925231899179120273279948432907265860117682517636355363491978618491340533067902735637151560245886127217142538320980844548372912655584689823919633281853951872783752360372690632445242932022957657624127265882462972228987490119030560496089029141070699095959929367313415541646118348365414688661892528361126741128145499336832054512156334076656022435130481041678980398516751930034783960729660324978001096149647308515278615093887370348537605459964370387328959530547944006261636250451543625737351098899742073675451270991558036579482756882998973725101519277346687770269156259868327146390345537905671126963684158543423423471184250391973147201246556382720321632208257754701946230421533634121953946307970977142264704272884654168491566968212708656168571400011416557567009296378812482988367437202773601949579630305124489205830798997405755468388605796876673840861881153896378132266439972451606911071140458001612895739326637776417756055697036722693847067840140666957444745855154941213843446458026180844835108530802128661692682878291570696076915870727314563417498621349224858562122595295348537462476147783929321527849998163197032382062828081417634122040892922414147841705208416280122821418166424184142516542177860642379691572546583476843939539998189199883940075193338624658915868353782136579726992964907871512360362416738842534356620595292207738749935897860373325818692604712106700326767031910941169551627771327650236593084951311683441673660201043729033795492175061661657024507151294897740637858322351653962058544158229427001975061967022114304811058492495652503978124797482306596729330932114456593279232275365147379428204846314278651202474394496260946736974259545602504549772835718800960216374600715176289601847836119413899177628173411254528324561841345737066261740225164556907556759318590207419169879975864562750117749076205567486221637036901699700364781988670737578292856204514351787575471893864964530704638901809638602273274940248458530139817335896823664313390746094957358445229655784250392483090362027939655187870581310873071191813413544392213625299669239993714343437764799360822541900120890839033253881118138875219696462686907291713759584818564977994264826955004047945303046803720202286859671358769414450511677021534035263218889729303184460663113704141233707138114944697269361013159982949738992522090948484669750854470459218593902712284807745299154328233681750786691888097543634965452109671909366820057009171101041415511164856308814951063750801263049213775077412490511764399217008920589129914335523559241822292784972799914550398927299760807365249481861278291626803198363453356544149320991349343563207175821720892906369867101392589851345537195634283621997926335084119726481645284284756549840305531564820930218413894202883700310396633397769983172362009002697468417619755513689586421501554759372635314094222687996141409614056893289181668363418767314194197617321404161393256200644818659714584853555848887948023555451698524489990468649881574043515479951488096702847090182456154140093744671925962232374901241519087515205047350033739087614992409426690960099914284402720620954648159945426409656886812809213976319755560754240615415629755477906123985287101674530687042203981680584933480127826571446218485527273399280987578778040502347485115041438124744241726717855016584478229196085195648790117267788679530186055662408518319015366336379109078502964417956816066241925033366369808740239011711921632594850431280927255624431769495549859470254730109419998751801361966874211761750792139083179038999375410246149356837370160114302623030522594074354946336697672397858384936384616924504216316707913641357276326680061187486988127283902777108826619708640480479403311452853057346389318687959052362221403139496089735942404506076425598773722975971186128690278103242801006028047154813479562424908017113926935330352780198663493432792955695773124802248576444795892485648736480348859677133753461208251782493158783768830682412119503337773920406833110551545304147845813253000380107504811522643854809434602420042958623565656276392606055454736736090784488108944596341491115603993086623267240642807317793296201971173711147579641829287865895830963125589661605461860388153626567297057445668517501607719953916078166687466627498198264308261496264810246861798946654741726384920010145239916902272194885749670452581194135582523172727999407935275828174517092773241558908016965080644646378626376972404407938447462923780311745322142782318693949965550469010093175060972448694612797427511711305177559142366781951614235748007695123065553728621108699289135267097683344422929479100544946913042529061316207392085004184390972435963005669080282435573137514382921874704934596716686513980237942638957572029068987892539798384589693207960162819050261291364586528502203964270553673150582895487047513745175673992996406345078998604478054383662878487929429349353119904922706710684986348903511050943004760242130082300130022804706983696854256941462858090630419149227584987893593327619729822862081005719958624303740927136062639500877720806012102448200781346848271641162010987401501266253270272183646876640082207798926795960976452129561451599346366357608673985519973811090388759045575462894367510578476421598759560399287442414658906961650792185932497187670738717519073631748783182792020886796581438702393621230158005666709962756088719502453948871454877674012433724685306048736350639810435472494202642405469390394687072588737185892677068328859379631982912856719709726948222966957764863855776375742831210420229954769397272989759222347384461196814673176918333506064735781582627620951222935901090345385975754654182266626939838744123304439313101068967559802541669566878720010188240321689600766609558404864542762382883731573180418432342229133029860409019241881905650423525661363401088641019021802375047756396779364567296366253740240598790163350266235227791012837708243502189924308641840726355953189110435076922003487430468335703783963377993443329282499984949108760159210540285921842718729849242359437749136950276526869205342056742106589499729462376288146615743322925126303079823199946302480061837012050734552720754401901763544452238048134404247048550554579052573190763991307215071608145876509501385385627747573131456410150035296992621989590530843350600484659184052704699171507166988792433294077626723033882251694201652062624337343049782926112876224931815080830240109191020316995480632190332440404133185675534417660738258936404068842125398174332040312679325991465654118201051598283159802866570066837774034364021835122549006271557479068436775205218580721614659287948697902233833743169137003821407256651192621516048616485960425337334270680738635063170347581989600546290367046406682194332287861337723375150528813359144971533558010710863198803030261269101588123895421191125064816506029360396714038765118184043711571914989272509111612596636417323934983286836634753573508687014368431454861274913561825655133060599675042970562457307029722827133047211521366045283113533110643089152385637982311756178516373672933908870431090609735997272539031383678291807631448664718520750254216738706034288718002796114268005253385713799946574248821271838736970691558665365265056471095753591281434118459931612910394692270696021580997288602308823376109147516097963525183604189363959861236496661617698460190011594793633967530721160099474429826427191554951126432169297096559688143275749864587586991192305491779269069476378219377137777644999595171836408794960521686899238313231943773825232947952575025686408070954639770781084587865607226936247047070029551736156216671662777940914215594280661915038701711819896881163954654052760893533575539178568708932437106317999789168931790620300271738524143216146805417317237980285166511857645976287318244998783169801006128121030029968346218887807867502617240861942699641136367028953140379575753659402412093667189907073303035066065322861751445635598346407675183799133211944359427165096199866512157657336851749908443196252252332407961619150012319792060581664145364565463284210394502674652344645078856715802281291762100319573779008780851208934847766162476859777532202853213639880901137208196772927940341954787679465360183995285069012784156253067366266268874037469661429395277806109471152780617257052689027371387589861729867002749726924855519100799185989968219532147382105891210382356252024484933302271539931591250023109715519309380270024073548454640149643233537423573771956570260077417045112817664793281062712250761500802386334959381280822752043720660387243262076129308330446181951811890197471320117089532513709757741274044247057812301908963926451118493061467650444038522836475398005487594737656476353823270270099265684750932501382125599489659324342540323874247912458756099559944327745293569834888875134391778133157913100508820312185580669504592320923611946385418713366577072515827232742337224297519489310761635708651231771943500215929737569370907455449399685862880178837745049346505273608411937864945500007172009318208264244002793331073404787336539991474842097387271138298336987006997729808410385408992911193921989545896707419585363345227822755981923854750296069902141598603959003057672140260762091362475530153989245602990412608724779196799607358138821979160495247205262498018475350623805410587935779768076160650223584502036743205396053609419019298939897411242560980124788309573909864018423998628944926346203762611529624938533241570290699151148775214370386752669362799184922039809493970764284409011183755870417658799501487194287883755273066862517692274788616421902817706043959844439940256385407165353278768978695681651768661789319945000632745977072822498159532225247976389888733286640644007931393840631401353925791331193607111812944548156693237194927139661286099728231800741367101584990450336609083183534427261750274445015193342270992368651153593768919071128003579983156842155945118951140016065918900776797880823099849832263649197557882095303997118442244133672708356070270596759385964267254459811985261970254585734352067482158164546563188803304266823058105254585549300623054412590954547716185059062173077250346094139039427136277021077574324869456645560939000788500951754584732086774267365704552235639061742117472978120290516282098923230411619016861106973750810071897629508221229273176510470252189669529777817685511840191098021192508142640276538122483711001528647331535495637245231529487743099852445097247960200167045101870317540954594082336071220384210710781616869402655267978174740307272147057195610852699480994661652774914623564727761914016526140231358967772356129895847466038060364200145192725133665775138435295420135704994141396612054099776459943920753321499559901695213488598847415978937869893704182740436393123032832152778505049113111574163660934953609246443879388609499268716856149585579329645798581198199904606483270104888651632271248993323561252863658516334923191265635571814290568037062632969671717282437667357828308600475436096591967111676055164564730068312899037695063310632129274155285146566204061196900619995509767278479753367251787698189902133021131104846436138231244149104093690682264793488873642553147385892754201037763284452053992980960028324031248395735186338500623143956937589388253958545775948408455173701409517643074111572855395744231792413469120036362387582481802657744936163131137182138160901526829358989909127764108523635049552275699264916086529402506727251777515464384829753704429813954729436906437747201806422490879217258382159029838808552467117443536492037779619665698974641434294377947738212402698377854674644482120273109093828514650065777557173471591250502268902332365003672061884306987133872125539869599059987596170830902684752492221335284212578720783501270792543406317105918304925194373044266510331068524275654731043875657491286659908511485527163713272839237524714450905117854879836135023162938461976064679114857916650534958715500850394407079937399705140885065337611899022022598673080711263593383055519485535572386033865630526606392563997015428516072864842338807367959144225696238093526357428512905493605298094557936079023988616839431792548069186852348217343811398021648839744105556167784852114363497534953833476981175446902596799889725487091318844252914362043230552663441625915429436120528658667443177434127860088912769348299050311459787451706552098088024177348645306025528339185825631344120026980865602159046746124575647148018171524743474420407401484726498867243572740490491308946943085373825757473269610172163628735851285197645557529736816860440199446236550553014321602040740825749297483837655596755253094223215152799751903547274619763888452816601839764288580032421695567234560088177027097051950817915083304948756589589951276221391602497865952656224688002300781992997705032400241636275303574663080121681311811756493434783092672568936607946559428768627810278814687222996453912563189956656238508316392936758053456575937986096684068743084494278494807637538856106717496550307812491236377890458277273783571405535375997405422270303402956873869186517207083329168974920849931080031050075948515415502638426313070354514406886458518675697171335273049977188730111940503245206306379151642830936068500003048558404592414393054010590901259153880346204988193473809238963692935990093156884570013453559066178632644026255578805284065535641099754628361652931945105175618695491065064948153774111043874556192614537372333343532998038342674419590141513062154408920169574833355600443641680239185270389384106789046297793544629719805517449691665244405824507140718566482806840989133194514152537353533883247850936000191732987969805837387649993118816360780860185607457969579993119116463364380466620573527045974038470475767385008556462614689450029357030344815460950048606018162499035743170905215538224708464601609199224275787667826688103675675738662800624154187911177918815147948538944471836062671528890814734801914114544827591123806237676941077551635516839537563328104618394787381746862415987276811135267383156266373995440493371982641636727419475221386698709502100820529344148928687718718356594843015129952175805928341018548211153521479323232300018157121262286523393093040221113113861459721423102745488793738017255112510148431882546277906806290498571472330903237776188659994868395028985931246941853031251075108242109645150337584482340182088501319514378225890418476293303975160133969139940233037710179674307503666318637027049277810876568956799304590687286299761869750612931935630501737307917620528733930780571883260266174928215754164040299070082641714771939563851788784930050733948878657740975449610238764418978443228307244949408942689444044556413652066023057216734156395397554396615029670651245483498708468211050080386593879628855767095375245257263144367892505801631477372932020892548070040238232779926583786045853894866367715558620005421184737926888407481012711978562295919355673127276603451562615425046492853362847778474567911901977408755010795504506348654562557795477996433726659255692297723016982377079862951658112224206302997185842581628926001242967392382278817755840996702867350822325588857301490633882474590617920206347394653008966372952148107804015986723493154582444235256520611354111099221791157387691829547202236643787052975004725232577799892516953222290530712182695040210163921815655417587949132309118113004676332321813771856661974187122828058931290156589726378241785568105525543325761860207447993650621318282464424147935208941835936332116347208047751784882382243334964644959727118638218909203268115407593282092400148408176859609697052111852165486387570529240879458733433941450058083710136027379165678153674433693764428637763502714020645923930396787366976089339970774285678595939151171166468614059073983790974804658292872071872716976153615013306072727867038266157371827476353830938126041290077405615870844560933100956996387629110013144152439357374959894288269808662744928424747007525229544850049911803082378447989614766377131829481094969091737809069089929333001355667577565063195347035108045811575834286214243609366006492312771984425887081037362522945500212015158323157459747626344962514694402887160124465214134070155238129323802822661862248480432659567533986273685996547123373212003505409652142876991684261018010632650382029756415101267519211434333092327201284787083326958154446754148801869000224914402315095083374190610791893461172267681122245380587617550195244321431668595041024183530569307876778219998359992039056159123967041216501553562417398036146647025493543722915984909525009593297720939860108241111837236302575110566344298114472118459434888753724636916136628538899480875508681094610998609739042058517000783458477846500167475701600210889868075320679895543026897962687518147738919258235552975695271878721029081751143745685307205706929628200612283529446744488602170112548107316867338226794091295241822831197832620099797778705028970834742980959885977920659256939047621922693841557269914335621046624583093858104217322287169460765357684458598917475442294277538432287276584346626875669918747891743684638528769365476126045344071418376184833306144314494645920260642675792306983533249048108740075517790996358912226444731542098853594629448625294201682547802070344655041255765856244597956677065256305428999481079636580487114234673089662413616374460623941715043561062910192627356822408675488566969465123770010557236083688746781379335832678252175081264680963607322744277528174767563354484117794242475877752870354111371136663078168276922257412153269616279889467920375960152733755305458444782563663051226916044524786067466262060482998413243128371088135799762983658373292015376521417480369667941511248633278424263063241107895779130330627954788111257513866026950592157584024025339065623665931651664109916588021177483823122130319191941441849825051105419720709361266950243306991509075703720617014353774808437336800321103431007445473541918649908952289899295858660191913573120671064720615739853184639076366614476672114546664830230099951235124514244557800473696447912417781438887211070191104410820643485713926775738156688778397390951257305030716265839688420681544049621768008138710555802297429205104299375146924023314794092716384355444139690139807256935244755873706866006809357789871101963497690951991466358898263543689739933501840569960444904192721324968751505049693237625104290173285867283676804824106270694575724380967861452996407050805176103839035744591224629077225425175157455632378113998286622902530140295328943582565281306833921600893928914855613199221440582054715440134498775054283175166704143123000525135810826954495199820454792868683379850434201698472196461765713173525781156676783508086604018023035263838321300087860528436626109992986396100212787336587384813095454400571575959487761034020313669206651196969479873307700570497542859393505020883020551204251574952745067421754867773114833142284720187464790296420676586284054031624263830854129184159305442898172687371100860124407508830535812313061935898965967198355963693194018447583591517241423501507960208341775161665015791917958122936783346763060347169421509585820983020643889367644638574634693477368854278889575682014543959706900171901000443336267051490539879787415433208615584882768839329858259482629876211800498303056177443309127942824763781544050247429025349397524792999926645964947540951954975661779145862422289605346880739417700311777263764171512326506561175506770052423186631272879307806171510495802192417535721155172045871429291810684057588941037563854537813214948501271648432459145901251917579787465666828392090748952741278967643026506398273933593148045196097089025227411747928840889486543906822023711520514792130487901891290169312744424644800691712849918470372944648120310344482748426568159273628366239268236192871672743842519287221035308633805155984854948187191908786040103039691346097236268160734201500992993376914419787996015223275064531263136861611379597288835576378491499486067251045074226246222499755435752322846276638655452240320872785882228067039277503167748931485237355012747519790108068263985053031376944030024130641966884793245051360057036910491349757925215760628563078913273520804052954121142477746223231770418074838419977793225548291028684265878835368675746217288283344921972169901298295837084885414117160821873486652026517595824200248990205657509968702708539727170221998617464874240966754334096150677551296762789324433679653346979616373238831389598253100656934012457165931540998537269743518947876634712247874426806615612304775298708301330425387116433627834452938786784578629846443240397908386634067185896415180662086831045455775677070556578617615515489632489450173313507451628796978353102669561597305861320378676193001156908180713826714324466780840588785459859574378458140408169681927249933141143758694646105153220848061996217537903648335272598224574320505897217806775460079838914940158550283905926496357893180854290674043005196175289665318345095842197610752573908573698732780632471482179066442944318502753689384076684195915683194072343496631409545417490919546158183374994283958946238697386615933787061866736803112863699925554259486562246124248470813264304094369844750195990500465095911599269859895081985759700966059835537905476174084457593798112261429976034025409599875365861433166592218588119023042920681783965941190620518772052788787927495312551209924599117022811219400385460088522131356100761357591341629112590714908788453460260507126141830300718741793149037670855342636798168284871775596690202090758947869003184015998124641577781244031805958427139569661820302530821302292860932813229180387953213554793200207891178990317518805767357607629151957090253673883147654220201996786516913290102950084785192049096098513233128851284129879483811883720557787629728872728523564955383813943261811234362084680404176787879276370325325036221855639576684545111338136882487706386385959980580484045298034313012889366225061629696388997117645193727967729900780432175942527885735794841996602007779052862132063552328177848441860448468395449043151058309218307269894715465408557148473185987518790191254015889094265137953655253436308376895475911870253356782152868699566741325353541668666746739911236467595121910018088765019928197268873003315085606734569267595944509225837150682950833375083084513598141959102789979114072429324642239799741359884561198190544265549045872745809051338538574166285767338091162585383247031514870312427687402224994890893515239890102321741111965594159924990559095969806874888296184178071278592388904022076500622499243803077131728281351947604220041799614546108764391739460352891555466199894635454537632916575427303680003222004648358879152384059112675634459835504705674322750798206975170200913540551933264986723370058449586406597186194001534076305112892823429198076337901650788364834016253645445695466633180175586057709046765254739387749645673321633278650128089020474017485531556076662413230821681913182051766765509632090240520248366421434324107161292254329116405203256550710932017270698649338071242630172777334776610651379387126987122971006724570255101633268600754549576945556204882853061589556438756620823233374014083014619628679485097890900070777801878464545233151273403406427195685137004689592714063123832919619177262698066080064919274275477445020300285619764932284430216064265262012213968726282245666161395009594925011151908379843870373881862462353358041158486360593919591346403372601995015568992563063376927593207511068536313947971549381439544920836638048697317840211340220828822944351428535939044187671936287255237072027086784728445177357776355689715727367780860399363229414415116428574759379463631658170929527626912609232594615988326833492664109666203743623628042417019468949709054589146136295422620169316450096375771454260963481214918937376553524345959800726955969708467244562147232594206688401215260038866739108710130187562027307483817301064154490115789834267757568646926779093006616162620212577070806855295854978761471435372865187084917036962556374603475366743049238392501237937782547785675651862953380495009127495267216502100517052443479458009341329881679346229692341172325128800863925685792908008293133102681857301890015400876977648713830453563037272500410971375849719749550100537127941238049531665587920441688416595318884640433598040856688821177432590299681177022481256739870608483004963164651237659932317618146583419301400756892528637896986581277661127884602298873790803961673661093034459363566813658481090492412108595787100496720455018396854107138558212002248237375019424713248480556546632052414872753308595020393946866822907746890738109355305712662372689873234324979524519670300420411452713367724530507685535666784772753384935886844083843678286948276678905436082646114987156356503131799027966318368311880272235592742840647899513125177029006630327296484632454097232309179562431886080912254043568313514761154799520851487494271269852160996482636778893843537504159447863735138332687065092213778371122722901029567886243495160185007593250224780730705500488750800325247547144190711875889305313099534857300556652615659804825533280382928161560685691717060892254617601647919557939069198783321207552325383115623472991947568669108394588419511342732741091084379711541765072830705160085695535605652782861446963985675323539105495834916849327644760306451730837972845865077580270204752051560500063643044818140324125202556286630381602480112521926355643699375197966729858412054824816716251206140678410624357231172684793668236094035295840966185652476591263142463285508815586012891299230881415468692057333193072678160640069893703749041177140290250422849943084346958339885725212772113851672907847821786349252663545584788478545890494022731132600747320738489043309511369114251377145789472654694758417221452978957426498541103035546838977348341985545375471909308021309953863300055315665784644344881247064650966431613555066850996824951659603245206594344814561171476269707054487950575232129494132306417758468067878498493071404771789668027863493471400398549199240280906265315172011718012227315689534151344733207476314379055928603992863578583379527019828370953097570891529107119209863833555457482517082309020573787713824748249832118189247176868496109079543074283434085148948422255784567801701281433030964421187851551939843353300585137313964722402290750280298565615587618551537725825391036379308512094322579378566592397200933925602416353903812314761062796644531993750561765187889481505054798807357579131085449877669911490055759276801400706585214935850361266685551928188818857956737768117679114974546031345443523509908660636808444517869702843768404800188384168748410141418748614572190849492918569975847910371794828793570619248729593538279343086757947011155031227908500858335523191172202066448542053585998204048790800363129200423355697743732751765039788203324916634332722901961060986338974852084985154890035754725946146604699012088259406323059702995668652426981572603158571777725972034349194488949582486687223592301472312013272009164066495522593133125829796393910393426911797707697060334914736040843233614671682685950079628002756639395525461119883818668376503810797504885520990208807364706893030856370830462535024063135269482917058577466392296178592570638511715199646933975824203338110466580721131721204543687994373708269634497839519344239263911783023017912185613633704617557608398213735946265679995143497817326729674986201165516541739724910879458984563203853356017151006982586060572179217929369777404075000736785150435771409820579930528001700424078887253844603909237961944412271210299500228730938164635346686497026470809780887320799785607386537332913472586456464791001530055136275978358061564757061527846899022516188787350998682291857486045040036178838288861606304596521322806411659870903572441314764357633294367090570001456629042841094996606682246538282984127174462957272854396894232168357767473340405536417234662740803279060928080909035265008211061204603336160927688818568429057627990159971152015724736847098002323644763036454006847346447964151994564384643486498576316950415863980889855756346183584965930197285150894546391028624085516038506302549641952180630372146538757557463984826427150033655890186417744087355735931186966930786497601707681653913480845868219015715416435752208844737578751742337352992062367052588195555701901864634627395214651028145103161357549828313755172591458995675082165110154380531265340826261286679334213395016901112427244068956139780212519046115024214485541046168045329960164790704090962123474332926886659271325012589670534524302362493009074708595578369169753749040520134029304454938352907605767262584311672951693113706336874941057403747675003430817868610644757137450467080842160260128158292480347373313000414450690152081884644179326593628431303363285645254759182870512669205068666621120555448351335087815725344865964680478840899021926738882622527544183831124680797368369940459604839705787991136926432782114892304038880701141372974503062749555344138907008586415714327117571085970261581353731531910626543008358705245507691234854342088536650397271765975124845414754745984464874344834374950233816689789062037704978487557353933143546635090753145003259591096236700045470441775765724389644165586273589457118046863371949460224888427146568030526296565422413444616376348267921271795142787490172297194727642593812206257171358365763755428682588391822091720455438369966671362399583233810426033968676962152505273537434184602010361122416150367740200467093531799332044479116309629994514912020813330866090310710037989966581283272438071846369393843420175908613517532632254194520466509536660450196274449552119740746402578988197626734920946845581737739113156629171145286569588149386412128542450072354379862920058167683465522397250789000488075550145448994293158619571815242251648537702574510564702117702146570371130254100665028448813220258215831338592228765231556766637459529410945875269746232323443619845098022255441845867649369283273627434807703425545003817488077152863776319729734385723213169359304002792155040798248713396338054736929503391411215014878403302268934507179113010341883917164319902973189730195731684913215378225310739749640350017507083809712532373331103207060254123385228487785949008293712695622964961810109425912019139977068091789019789829760642257448386213685446688689268857104103192344097916642189160962905505334212602623989425866683673720272294253829259366514237015872937339657565298594815587507121123547965836563366427251089899107959040776166890014645664378903126610214871698958376741212849884988449719773491976199912582707690767844713194502842496119405366224121434342962743989154566791354157467672169597427183097666961189952760456234932054710388724506076636228214303410877304177843721221356570529405877175890210102716008511974577801779405574990697864428063486980182348359774426022913463955417384880411173355224178793322794490873001161451745650013804112897945895684563894843219269384068354315062381843354797359988335644149934472468090917754349757175026690288176776267899863019008157523233574247961612168682113736773207514519903429872536815530898629521985176209269644152940923361687682894547558636769610563357593374392870169653600625490184619290117528383207272280509637285289707637023742816096128414262082837685749336662688681796210587474553317231432076824477175324662106461965166463530518957791729142250986015307696627378026014520834649669888920087001506184750929791174078692390073165334600776821425413734791830970533037482370596437826023944463528857924908940360450169724413055375887626373570466578398668188150427880748038623428663448243506221639152226478581184979760121954207664501780717174905401323876328533333352784405472852639782862155914908528721881465170947905369756235140330873344807573996158429748672861149262154046819359958222267560092821581441764403334866478838691874910789820383373355115875453361503833190907204620274140676088755477060013866350690029835741224184393752577635937615729146999425518121329068947460153794618729485403532084764086386497993673292541439411711989058629980138597245829040623360168641467553383027206880200784768055722515265401035642527565869371049375437828446720367086785705090597862360831975074614997410486029232352806130498267532434424514850825830001101640614595651314394191421608526186578556280014062782628820548205134009371737393456631929958226384085448565185877424732812245715730157966676812609972216894676451667928778471248270763457614281362646345061633980915822037897926399240193906577318505876423115126661935251501672295848616044632291283808199305956772882499099494847104828447244486624214877054450891961458046035640756392922411377051861613960128917005270489676771976290671098458353983489348612444173473560362308881756466028743482654456968733130425553978307736950658279330800993003804730892650444790042480886549276216923160096833978069732155361778494021354536081595763405560529084978570538962570112937981293558190091135766573377286326906553223625457165576562398133069623601698821202808680496219767304344108662362763158937908681229846135459033918651846495220406821603190079269815215253883720846652011259595338895244273523216487365682456626767287084334056172160098925018571522915970458256604800629971290882516305872076193704520147960193076275534412027315623162875636368363236590042230213435905773761201827642666946549696054975964324397109378914263858416245371651911575428664314958733132302819271361294783721922481894087011160614196903649134991358830068961177580548839898485348604541876515111342523151039724648832218515023695487105786478953241399340360836843828366022384184841009552912870337781544359371091400988711573312673117165938275025065726202168117685380317266650080845873406921081759861516202676312660569809914718297484564305288944764912719943356568025562286286713619907188241483847663210552459134864895436662022761423380013487861814969206128514552563412587654474635467384689476577182172588371288019058096822673915671683887870404850814533740477711430165628716656984289577693371467541956959767739990289980956558985248450705256095326975145190054908010278836820737337300331045832693840093556457037009370375178559646040789354155658259837798276619161178641964403472780116171847938848925474394991751779228650432981449035690458262698676280168659778866841009730930367992197049413596424043965128056174092732852929679166321331266589979776146447060598650758359263484958260450664507595597763552572099856931889464153285145033366010229298530463749664653145960662973148552295491874349078436817148957030401780764244599491361795948358407690599446606384439938788264632079944920566003881458206421162399970900736972361540090936605709081185165380810516681471251047887301082288588368276223674594518567077604948619631057176909454384551225040168646922963008429258778665293957461614130486458079078701810690159217495213051143252593126284112934923353815423297063270780046647830221674297733202124528965269441947202778402183111064746322439371445906016412205680466675290136364049099394259525369753021043724381066854175762785443692223894510900869708542359022295157330146927102522662380604430397351516196445418909453399083383204074302742387233512852250972460135611228232883918073758964882976703925857235725069515446993263819681465020316070664996326407590539414021526105255240342040182513675346557261093268436752301827536615836036685719673845293064937240538977318252165940993907472364158000116232082707151668844439869017592628784110154400984791091885049383379225357204599562449711350900622161959497956801684648331678105517844971912550464078781570302405631281163831083193658507329099002711424974162810868995572055277934605044508250653118345815966382607342000505893827894232609272681718283270223303965694212122694748190537976943804958578990075579287073214228424541954712419562834431039407561372020999934800020041604116327791887451102310222044201047374153697857616545418956054358393000926659797404278595253157164328338382702293439311575523076825953322934700779822761808932228020078585752216416300900112713157720737056205119398307643649990466120063543017970124412255296335896904202689095090186782626338248663722394862246599433163142607315504554315768215955317641860003870277996932757296655694328977296191465299505501793559841430068243217694065972408281120098335242653383228970666972695109155463603970543162278650694645225580910096360860895320827524251143559367711483910505540918631493649210719948666540008210444778134444099962015917958748774707291291438728560218068057327009417612616920111755237843711476797482929221081087384871288580508382720147910123462216504468211532261951645694226538461268045384744983737702186453174857824071893886204304163717152631661723165091971153120765577648388025784600997348147444437715297646790582671601546937615704571379771538042408133825788455761553393416230692057469407540654254588389953595645470248703711902331732875135893276557373183706012668775349772900413797176018264653352660387967559773395134787152573249902043915520966006776165266923635769294697701782573298284209714879543671026378045472031592198907127106864330593260391210413701982462162449946405050755086992130101575596908726367908949413288227690477016341898548687192309893068095357768590823381812500047379154254085364552606609489741737864018316280932332234818612771056998725139201951481565003133021481724517643649539582844524656685646859257760971731432942544310405358602281489903139583084516182878704429219915879209306207384050812221666050683981309247401644061076635229670334910250189300200851968469635347095575235983652528796813533977237983234331941523896865605529548881642983710861898398086481493986949198085071144077384203268596516890871627460661179881758847552215528176583244507942928227066208407259783941455558920182548246263220323610919156921802299439042016527479383837717610233205148476023330433553271946535474942777757626669187746318024602032627341293712680278445747323038078849258272694860600031735905379078865306761095802704252237648294035849000420806578959266654347568438117155793819021568695196754795974698499762748881907229817049458297068622841922520681733755308186752403884054218845963479914641970734630544657106393833950925240750212641013861336246997972797325335135216676891015010073951461338681369324580843249612644187888049642027875998668674886577325016502414763426268675906511285708758572484548764846787360598218473043781903033684133751285055261889530212161309770524610155467337255154317591515677009078714721285945958538554299084685004877156023468253370562111396405315690447015533127755416402478813303197054178564491871539537230107834414276180112705288264249411293601606051403542168927820754580908139897864410319139247869327727737400642835803527187393480093742277994955069860757751781656172354024158542286842084127579029771298271647859891714430750112005691546029465523431643444094622207868130548257609395864334024562025717235418103159299606679231122142382947735248433666525148726815567249371278000889464708297776620332095439520064374236571467106719049861927066215789276355879890331041876899359186204491292014250271856761244171301214856815142934381079497507704492713134745298777208154300309635450975395100751576161943265715194701269536419853247608048646061107270216162694598424255856542811725580221011781218925549422806489457131221312896408822614262594321905910819244316937677451835479868959814179515030490349900680073544767000917866120725734064033045770729510189812552728180797646867918387974699813315093858723254020074577511737367688710060915875092504000299207159084137990210769085712153347313074242772052809151313634290638867363161030876188930164831312624680211793458288870976822925679826855018323358499945099839482636724373199780738651275177104090483288247988437185777362294345026798391185453262052351986546245218047577313816074897258675736921921821472635836779741623202764726670907885482985725510924325963079586553913826873658352012251996743937830216402171247274273055860528970382655217724437769508747003817210588352064246804327162058183842189941865280615525442106235569175950681880130643478275702344088229432161659732073041562050177653654131296418114285940783598405196559597613349485602829408365109058399211937444408146455133127362773568621444137329344727774769385498462988691556877871354503705643820803304608120980521897441304750820067323754587467313179416561058442545789687081286222554223264364704787439253317858705162962623530175863943459396886190248048462219980395194932419221469181611413737473372010197316087701283816330338144824074492344220669672554882373930209435456314839485112889161875564010225949896988305314651753336136446515033690763970877413630380500481143792122802651560208582885490664205814984263216796218378271268483164900467017556922869660094167170897950357569265684186119872555870530855739676235821426883816367984547883333448687796042135403827941723603096254859085733860371558742710758841158156807471626324320330578257145076097693668944592096949490125026819717371323721167829280167553820101467650338612727948935298499527291012946247160137978732115452150544189338345291818758490133886427810502686696236884404523506439869021901791302504813723404968896799221598938043867169899147057086127367893444121858318085421071475500219805364616175275319613502990964997398760316363879621261953681430860047923047867262047564215208136164319381639042319416437476836611384341524037455716731230349446366008186380371939382486636606427533975768501812731307765674061106870572136412557684459860800416053225735073749066683481853627104899550056227426124714149458762449633373876973276079046125364639105238052630389486147467183135634035980526499888813673721881566844238921997621339346001208522456518498971344812043690548275883688941356557637058383953160718330622869694600241090413435499071035677128325698022407215789915001915461824736172783227780559813145246256021964057496517040189526708993704313169703150679080611038725447784805507279440770780439637123560936252916936104206504759208433744060710562338570219199050543620150818718917435199541256146657222715664576190900683050180661954064232139582618631538731374428156622598232872143387977561466244633988843580181027373391659160478192410244545171539586565894157539153634899512782873537378629124831471067612473666784293440725756932737872989495709912836091022408108951661867070471492397638499604116304454817095707622505501603431764100559114084437324104245210268314690668171042179067331246731353162473026968008941030250122134440496471093085505285853660456189091733792291102404556881489968665969418049265679775023724612930438554015366482782579497936823701043599149574413607542986593473545115422832869692013466942464008333175352218604263174466951613811468307447588851531262125902818622136272536576663432164669951630616329532331950520061000330210222230846821179755793118336925879112133217148932087732371099122903732892736330999771344617220822862860960722479639876072165461003279849734927348830189589847083910501270352560153576236421955724486872023092968091277568847111762897125597628428776621156495353751483603280867962077084967650166470041596891754746316099074925883809915936371547953064520985812511048272708161098963208375038256218736443760926097586404568111374040960750912924577292762567118912078022628221689666173414668367977944541933198858251104818927468935461172597289301493034930601009147506485382888073438275642945064893147794438210198476558445396556031742183650556397975539485433543228324674490409086640179625942819288998878672057092837386845107488006364562930039791241020206654996370464749481069631107677376151750929908044999855669030494956658556560437529716289363227518567105586957794056213495280824663758960832781452232536892586911194309363249020511887325275712549258184584296209311336487820421481996087427122267502496886279400386596007833665200556405740463911172794462554796059074085697410949515472471333025974080634705950874066372009048555879451086287831163068377751755157793858890673708688000164104376656673487368974195641980449242676803473778289008032493907775279787091598169915626001784534918227572737145743026550879594211927636184306527235871514398012416999262652420747480665756739535918955039193954742758715824819461397098369168559847327052220144317451764058664674148865570113005897672553118332004776373729484265720158749350276009133359208262578509100910511378120393717844744803763088893608817267841407975867820197888100227634939840061128132863657581693224493744773488982584887229504562871490404374339485457467956111562005115281043858773747276340435021171266567156204279540852225567196840797326335531957189853674501244913682934872165878980474768345787768973081040604587081097921672642377917069045567600673918917579346375195607924808008368419077827846777436973117402738919951088544181850438382200761400183577169897271725759635471422946571732790526954900961880437113896405160527383700058316997078132818361832513193727032647131091053157612184162708062908741224515942624148813570238772231727440307361354294830607676714871193556980977287000871458741550578242993746386410631749991040548486260643741760280652488880559683443978150539235770202000009758630823628232996808157130950950054495922512216063339237211267749437885973431696716503977796916176916367432160454693565269468983830554635963981876500748996675851326639028545848437793194254554726204164579780604005025894027848545559781007584385203116517298446369672673407788393293986240905616601169656407004141808097073159889756224742934376999615006277958938462061162209406871185325800543213313128634020575653790161403679323914516163340806752371378158411483492024574781454270584404421919210254927664748868710740884924476712519623563640678647288489089721788614536739547722281776222860147682685065587537682263000327142031086069710003186082953789266198141177480317892976497903043804726885867280521995676376084737231914220005863798642597514893079494532324756165212630394460274975056328287419764836116797494947989174968418631315877998007223172526881953032586852430504885201165389186267244155808031552767885168386482450497858920343046048926980007828464432642450545915588006352719934285507113287548204120028770116477565551985956361601056051106767425794854694287022139367775513121811189764914311479094681400761036327014899828047964827203166484002917440415979454125067959815125418729944395045153677411317875673104704387091745051553627158717132442225640694359271931213290936956415541720551781313994374489441172146439927656208011067705443044807002542229509948163470792462681573865233588534023136998114854914793263276702203094589644392843228574016739220286124612896270940866447894870904268213464792799637820510368601563961811997398608932824257396044869808570171111362108940049408484269217258959419553397926999280815096512004529646909288112146997024708928579201389565161533861375399948615852453086419665468269136209333571366579011879717101377119434297944099155107222330438460558609041021229872772290851834293138872019135434100884963555073550738795458132445863384040639860032744326007931964617363480297210364069752780782453048190237942595350657791062935857536103059788142119953921585864741460290317714085736667447261731031291549922185211331514510344276831216212959096194303265804408190001263048017854884088881213344337821042335835429776874339618917247115306804838896978664430394420725416506132458167985370096098946693082530268706407830166512507843310985839894580487168146851140600640177907430348723368794534834372742934903592809354496479806521399026587194922513949782279085428750244262837794650912754863410863543470187170062376638827869057050944521259522377392381956814972172989793991263389629053991919697963750976575293874649966682236908761419543339769446766815780512403883793232856266556912510226640785258252094152597878797367655811288732025445991731248592509094406016143092312434181569915756196597393010791877448056139987599366445402196779247940631905798098107312467661843872640244521305031882193442841652635726499562058838154354580071685024860928808184640495282432897401863886327850075838506392940565853368453227491976729474238184316098301636113659819384394339229657705623495122655598523647388550096530270255224118709507544720983222319001061307307499490440438788554990557159803030724167993843516120551029731682554346607419016616926492794839824655123071464031861470766279275497844670549381484107401003548810865209622766175612541124488043006421663871491816207875052645966875800837766569585451177719077888349022618779743895808889881924567668759647147055682235624314910508742187517494896488224934308455705441506259168770267897078584033849860001409848780237513624453950235137991137377878888875490317227470780230043358426358531317630416260513544279249796905168655723517620659740407151592550646945009584206657605719607068398193087532988647471860270197013144496956408769443261868793559464442528355767397523724153771071927576810031518995000730482920702500728450968826463475172757421217337019715765355856499028148124496265683298690519953356832273713360189952259217919834737792251658652818810758711715190693372587641766134349023650657836911413057494062094176283511295907746282180465199326031478999474543334237599786114453633408502711611955573722005499736782680639746805505160155829088813477072690248536369152449763285208441627655720703696903119586284097646460138927136148972675929148102647540980279474069230020358888003011669094499847092239152508585708957987635907276733122783210862939383569117692600498582466123985510412542322044323367909483736974649146036446334014545245888682579931746186107068396246366032238707529693257283462539281196480052932292084298592141543121331268577003896319734541964287538295496615904857891470253095086027857934518808261504962539324345065150508542782964504011533877603797103084065475522747149551730754893012346858781865974384167965407880022397664872277586314129434895976724935206777321966033545701307973211806171384627729163060757333991157603250939458648525732063561659131061300145668588237893844039525578248945220450081807194015776630047868622211609185896098959806452931366022802953108222454308418089039135164492905099283873084019288283438888321480872552489205559279565820740649570533255152146697944586957456853315325242200831264617316672171114743996535676578825950150767475180897978194517494024529797691153605654143313858263334187495479876043918004911859016884218980128875273497203104556551473217066317939973237162819433766480533737427403420079386461484036837235893000404923850271371769712167766519765341498442825236734446365340922952994363284212081358893868427710109649367950657471759579523252157410218560097402730884837599456731517188684878044613406729371071304868064930524225656353746430463612616217595122375725444219397811664921268506105704217015741955763343128198007221000986663146238744955671961622818684241730165576445898838354470237054888290061186224170672485509785358265439956672858756518426263103565670043133871259147510646102248754638789120425769096762003180535259758827428455418239843211530649414068064037838751416570268459470736004954503771421763270812236121962135021407122081258526106796939108345075386733717042757836779812737946985390684823023733327007508835618355393366687974225848626594608037640700620566035478798678532326601889287330739561388031643167229416111833489545417285774033009501577329250280677183488611337924615651151346476747667093068020213840048387035459259857867934358880257594179775731349787674181269524968825413650172317805746802034782763202884256613115219800057894572978989622901381045667984651673685352145930143384286696964490567596456817618831462977648729239830848343951614797062944778763949042324688799983117430221877261434002736631434544737747737828641613943799747350720450589400133522013609132141281538805290671068118081966240254796759581810135958251625381595175972829409343946421041097983555032129683587045211417379720071757753652985845065710957345146217399334621108889474035046027459688780662942952451337079775102398575578808648636407219720705626973966325328742362365171005204512988004888201314413448972298255404366802184207559732062329849546899252899802946502267229003754058705526267788524613731781298380251955374481981720369873590134251162657275430609913522300560954766440744901958657447332029140381637505459581423373673296771966360008207657157368071965601205850762077586093249293731559322366186535997009402390048807977239824454293792580348861141216254868001542656510084086305514160635447147071374763850655573162556915835391072382408787106396424191202728338245786327612010948396845720835311275783833538263201260484286021945580508542347251898008557144917222592796295986939703086415059372161220238999492458209520047193264448284190380595040750678093082075839149114940752833150441112693688942361887201147667229178751774179413237872248700179886697532334092874121491758575052832214696934143006506371155474934570020179554732390368233284136529488697725753539806800729338104457297299803115074313310447955939829920414988223947137079456842692350640219419468130574779960617468536117603227985391868807954648561668682787307045147015795086956982651560889015028562709653274293763478366505353606840247044913577621911348169004901400412429645496681382189292278031870917671252535867195659366022284040389687089976069879467241653952392860113437434605688840144454078586737448541298379926286463379014318140754280938017080719709675863364839424602857750650094026730872978170019988000739176567558736123479583335964375951526850939849467523155975310291188444141698292184609548818007847473575747790845460715177230883422064040056686723581317631365923764355770010748820996397811325692367621455463954309597001063690659246191141237194738906800865669300748063120091199219150174071785422211465560583335610081309061437601144453702653105702324376374601492640836740891427488158530048982262732016186771736028092515804072268617032394686675173019623704636558414827483872592528108159621301570041592607647741945842580425564910462848772604793037873425875373650354240281182673912583339058861402664024821773920277086998886540836256134825147570002724621889495306852926358419674576075764961341522838770130553479666868229000016189432597429920640725169639854708207598456899014224614011636463655007012190390655223915798857824474462765765758195139528512438366995475007554232167957395461864232601062992497018256259954843776998806203789941831501241957921947872608720842138755758255173812181146422093339047886079375913320432668116872422567095346196639645459800334617896073180883907470847147857981707550851340640236536609432293069846967743917768860151171862350774349287020585302532728790177567955158243622243428328172211582275870739374170809375678929508115462480138887263412587802503300711730492146867934788965550475014759053411812835468278879160636414994056740912996447956676382079591842263769647799326367757878453316687863628822208367570149790556339906403323772186522516586923180902990529598220991263961465189953524696167203828962767294204916988838435095938915818142299807053243958911818460568287852566828903129127357199162636117684995252557288524474678272719723075757891248495295911109731925251990978711298612673247108790633292317077353365848783901722040965355454269587832916993626432182345913865316342763985889268824341778949752575208140435030142704899717211645816609956605137147384739115767373908631108034738937055460933053315812955283183001987496847331457381273445785767914443639998710467071124604472301985852122873681333844818498173792515217661163344436674449089888271003234439485684905358531462142517486230978905665298428471904002894625165269035635466849634412004767244617568435049183922922816863467828427244927581003526163847723852215789753350558783641914281432684386701086016380507069562632192013036896151296375944569967182794541219337452356987382758768433036121588641312594493536997737546691859768208661181432957076643543688711255279455073158841911508335672953425168255572737392252566118692928176197709803737779425729357655650654005631465106751801459463863382391208350651597407931216811057373437519434807526424282193779029175294863046687865617104670319318019716181347992406407579469876607006973423669625887917983049472352089135654847710480510597764285912501147871167029469923381460992249256300336745361987663728132805329358030283076718564146419904351266920820956844675286907034774108867756244776431634037250497552616669061063155947403871700307590624468173864465903921366162767542722981503042359913102107926287551772105058376551520930823417588380996998838367713450669718927358525095732282863289401174298820199284514495891375548778650561922890677888356986790773764031907323653907002149463525247460048446691533159323617036578595517315722303595026735919177642862555758232076026779790393123281049288352211892157185714944519450496583615632274649715785023115446723119135920120762281892934312776601844695462769076514504331312161707259617785977508710167152112026961047940168775829101979831780213086814942354807538881305497172536821668607657845159008438688236546948647615366160201910710990190210086470816870580990048191380049876970023153663021320496061419843946750064471085689277115460381625699153014382013234742932629941673100745784292439887982120580978998937813858489416712315219576249279745231908858244707198748990979417100903144210808812400048928487040572100638837409140200688074564021260871394434351685383255480831659395305749634707990209846558756602697163779214146413063322304959751862250009831101193752053651944951197069386008523284381977405751396499308217837831575846063360018234907335778890299547387234407683808414589201835233973735006132095137185902229948480321233501523583285420004652651873236631983292103659257609315368110038637728064260164999604137621205997372225532893438580874823133993123273911909677069667306307072002445804506337582997462981950423102016254650773172294929777398895709476518347259118268134406040335542280190257585025840538463059651388425896399835940244726096718976811815078445385563212599257032049569873932756432592718398278909652131793062228536100125101608739031644948025562794127115099053493243424789101787828328764765565740043971622342948645118990375584723159744240558786964453659890322438551874139077940589875445179113404813246742068316049263973062743315553118069863946191758177074598694488027822792912762004356253124798766762566876415689491811163511312790758635598444675778686463568348081388073365891573543570835773549848047279706510834549147643042933955829165065597882245280602938593381404008191654329247552910015930070049376809485657242454394564179177064712856996314478939114574588859426729448602726862516901378070188666959901744133135598564173198867441409257496347293668145149323081656511686475209816665535361041306351529499061131160362358964722504885191018321254211616361520926135225352601461085751173125405523277278362378592689431841938843341368461051111154885536948052989198799213438685122181827121137455268074276588468776244505702644586819811779540600546993186033579881673796310642314612793717929775604916451509251772408958666729001746445244686731860436835072033049534724391938666581445411409737811699736384536085925090276903908740481438884622942668150015378826157757035414690254572863022918569537060986796238989972317168973434676352343925047966658847617984876593933362351660832011159326109827917058241542759698011394197956981558090919708941557885105910259113543128608596625641232364812362516210748720723309348996157641819379027461402582294224654171852506789916948085452603126538922148802632090611882103175036463404854343422471852334307447068652774326832826704309109436279480255851310833983145040737023591223314031434901166246619468494332493131459769953237423172038646674673443782475210859178565318645729081771996670950621664098751604304823868946718021388238403885979716415857078747060333165588962985821164906983502494790122673095853692181733586418160945586466072291350444523132563167544985100835286721749298505385522316199926287541639887967798762958429595519409140049538384540257939883801136260747122978957179767497144982845411013606612919353573986106704509000528527691802896065459121513847212851809235987293510381917113800993766478627114497048660397146886767365447411368751307292006470252345111080525323944348342214411776893075306449331686821636930833624708474782755725893334069626261195971739873264435163473215381723181236084219246736125001156584375326431591959465026694537816498956722293456445014488105269168354964955463796103007861029425286335933388086502060428798728133971421583146852068121363528403949683666839425482559300023909609890704939437147345202262007543182523096354026902385691354513323891356502245434459841917847335224858569895823049678805832219072445908474976277951941149905099044571170645054791026301480713125827734161322184235546473193279436475736726872244016541494348664878923618668788286830220017720049224373191461044228537724159463457789077090336053165512623906040746213164613330576262189785099477978773476468894991516081703720813097358819022443581495682659455138346880014265102618332072246736265124539375749084356054150274380664902339445646741039940990299385907920739727158959349134383490664389943295770032358060690068454470384534642702043807119317464945480235121061525481686046876004360378553831415497319039340267078882568912505703065162022715108319941700911108629818998236506261268014914833766484957050762969830667147868593370834972462752030115013636778813996706689217258247375199684121654479446037929045135920352737129897355757158588990485418871557408782178284250567053114496260549507619085895300820274048221868049522887902972465697540769367345237022723451885122595718136355784083457398778678968389410165733965187570678854338042901195799506343478906212135918467268210355768086196908561293930219799224830188703860295691110682177000532080393095617634319564196937166170609708614169876932459482292368702144077588180879409933584860304680746239513300573880489441165258390285063559560768150608760440040443375215836854465512387891430223741335678017799753847749921177645822128337051178713750883224294030893167312130656759239655068518100859022691177591867651290701292515503428936922487082734177198526441613387359487413154444896405169252558199883683105349688323059477481605871290799501432090516318183978806545885858685230884927872294981550688247670215853756884888120565553011755070949737144506789583519475797297512543553083197219393017362866989439811675576907878146122072388010797641274320011989293046824502378640766551602260986802145607549697233188304093323950628712529389370886378511518127506905943198610066257610927708874101460691122797059312050294305368278366377587428682964914853791587682120122238697360935104010216716199589649380933499094524654165555981946426725929019915336594368154639191596745558863975772173429560430048652547883638686688780564829910546041669282651829996027479663033523650492976527880023797275718760502653431348975885965056782996062968107984857160128662358205452352467019597482932072832069321480842338776836958908956710077343496308543314851791556185576667898991435027434099296746659699135379574132027150325380838065707268670204815258617632318248352260113473947363543250657747306435007378507684650185804830037463631472415524947382201650845146877383478964952398705904816216325527489551990021464754099698885131506297154223015878428171903419562350242515297172085508363189274403405736051066930924097989469856856559908113999677140183551570862687288005249451406801021580311583867572234069248584426074549331451561764152305108408258112711112685498413270715887263954847954755212084143199729555294945865664571967580582684430382625689921601464387431870528839860760859937988998868355704677051420296618937107564276080344541476935813768787808011218604109498098114778721593716227489769268818770997499584363666215163757213256837630914675132386991310038631159222611099950713958324410602561654470922462833239356477605908524044007170273406881015871978091193429676821246729751114764890547169159432138273789636916267602903453350367723701587038633980680718120845562397529778932476079501009325577114186446370046267678229491033346777764151097174072807957037427758363769393559731795819870333419225168690696570340169434163286965312033419880722506266870819261380832284482332683333029406907601435913575199586789701801865155104094103774297914653365725104522339064268360699702883350152665318375339032743729755915138592511872746460706910204798607222269971955575043061917340781815642774813428006553693817332489605751153749637074419380566570735355576015623074970453943029354061230097121260652345447710479121828555700851783899099284787930301097495399401070480423656878816744930361119018269950185253156277660321762868546729028050571359159964618891775553227312510853648854848653783086281212136200201385678432619669938743657798258923330926572212790405452506569424848238948746149963861546580120023542364486645603624568727057693988721636710099850479970150264513335106707667629368006735084931602314051414241220491875106345244674729499931527898081277014732987113947432557259726104315149126842040202534450102330262038623701619380558184959527228368554059814308390676103497440318705742850377627299984292006746482353434499733817364465695113895217043223620830544396033449049813976425072610534191671045406303814528686535723645655673716606047596692036882972688449038162331843560547140568934996230182240196642540264541061918505934235977830345668753855702111006908448726588467897648079907238643794357925406651160127882735439894501650212826177601240415711820231802609815556081607457728024839539611237549016490755198928189298060876149714742829820068319601259499412916418822870565872374136466063073111117952808418643436696664880023013672052129063760461502473367405639553082983760291197729120324998874377344468511237007809317294644907727304960265779382970289380218794358873039888746006142712792107727314888859843820581944231541335768751649110512261745449217908776472821703149201199357983240341001100735085926819624581630535551630977017650909986214202195499780553913365248314349738764901695847880832456191020044937144308325920591633620919148771482947191207956902267404261496540739247019348368059616210714987241984509676855732149996692359021530138195387819492500837226194784822830605366907881033383981471586802955123573967823237033425411099900339452235903995945709900141628455004008274770195535506273595335433178212380478642451101396941701106573945868764537323968814303825146299346476353103137495034891977505928721079158107621850101035890167926232530168054806284886221815517262600290698586270055674881687256841616818499204339155754158120345595300427800685823197764239038090349648943343728154523511901232586460276530429941819869157962067784829429086697853649226528596905618409336083639691841840322306320626020119374026281962376926165875504283952637175124916815204646848161235038626121238426416684037764510731000768078400686417714637045433256816650756360782455992700472636540970056658846832095668636053944810895668514357204929238969281498696591463873626577047048558595387240334044940684907419802365159850784695200553038091430964842973272088752035766552394434144807578982226035269421667099118769125318768108857606627104961744515898937223634581075617590054759148054273801122404391032061400314133469333924322197598385305862210079481839997577371930886423272045857947783814265532040289850369174611171473059445429749374293771685305410002226586656485760180918651250302179320502463217310369169059508494747277154053882906540811122225016819027213327610383652339259778179191384807186390830945856687221450069182117782998580110547532185699655601839359046182621665364306389677146235052285328405590431930296156618996624859000343727369925865777852563860579578866350101269685895550284627376072892019751038207620021340662130230455381210741855845900712894240854352280179309193255079439675568001109488409135934831996461252284736012449031621213001188109395751528508561230267500882151102029367553529697372826233535197484502824125248963047697080202011370349821432469120318036475869031844544784612603404726142999688848332652327835107113833305141279650428045594179708926209397685467487091496248364245089374823373688648923121283226836635950607056754417713526745043649037806320729284235661065663802946812911556120553149255687692559928787807959563880260766832108846850467333554107072043047738223761333854568040121629416216208728422635355539453531963686772272036533656733943435994409233682655766962660979158799226320617723506311846265004925929107413621988671355243213171846352552646674105564074480231251063305901381804413434073214531923268915888021228437700941751018972656690085300969234456961788327034502355979843829544932864246382664154953580849989465796275157107731394754866806099573345342082286327282263939614056764557093273980433804058432800827085315878426560992348751240716756690801135124404347074452773421383219378803756004191620629538684870459084773321972071910989686131474478842780334891161219917258927420101988287510249911004049686546463814412873546348039223352204982849306101180554239843983510165935948951663688720587962883276514930536803102480808385960992833226019897304146644498083474142159482442426034218477892399875824888468396611968722271296375130805445025658867737994923279345621318577866592053574851930261816495993278079893565530531268808485202227881201723878357902910014736959661121435635292336463701308903029225822173999280649293838565529032599562122371890990039556331629628410233749062787846476924993831559089380363957000217615559126988897997027128870040097322790888540981226171898132769388669113599128862905936901624349131968222112334309330883337299606087932860905437411068330595610359207666165281918851341869824340523410491256308893227560032849077329941314815964218359037928617606202518024025238459605026173008683722263765690392302344521138431612554657519684694447136884226340939909680470428012724264801602214155400825146162400655797509499022758280942224611923724364123575032024397852012795076642207557496913360308554423718009731886217771341096605739439504262215234090866454695423546714002689096803950583359538877629229168404806916046370253004350191273719649459673823424683414929044749438349517631035158325828899547327562729976688664007794348083437409064269074786888136565883053650699079661947768177698866709544166879630677103417056553902842366552787073413031372098723710812217305015103778257482007713631277366299037442069930298790343860053709283745779240727877061388615648436258925957501952318417565679328798581557749160540968638637853098317695157531445948802688689627737878750889745525702610261369996970517453422175067401493118255535361012963329865411129696275065556649683640559839651175080432379753546201113807564790785717106025487359658921863825336960442699631872840244286772315756993849148360578503247378043343684007170604075731654861947307088057058903661990994846699673360790159059163607326341830713535658696520082636333934688322494889858808828033520626518153193203349244010161777245066005571883461149190332769947409709026106508535301219723004658196529778545896046891855214697198159827678684804226892832217413002277871929712363602100841031349076617612973692759593002921659939615900550291002831852121426496856700556854219124944551896932691214216470518544916804546938045221982021296239934816152707480967395320594676184956947838659173564445277682354522018748919866966189157908794250341010107393072285122085238386880057886191675788430185567103716535427855329515034887825762605315929371700035748418515429825385532649688516339700736457246149165243367952189131960632438215038662657559173799980468418151127807931667440877680152911254335162759152679762596258084744968843626178922232573356660125476438552826338538888283815940843783830589131437553273715207677362016891716851080131493249670419551962932999206825918611563957536236129746202906571729466478247689708845132966304743865661527849265713572208192422238307813307845895409446862459206721257858736845893180134710211128208561654048096970448617708722202571316959690177650344238664165654969622046110605818272202540606718752020369430896323473750035584873076459230073929092904151447854582449139964374433165486781064953514830901721066934340540980002298562206112380166198524947516818527986256346736310742503916705124583190009526887355414107247227938276088379458646661419286124476433594054008237912095416112091922084465400652907074871829504633687923012937747776911929957200773140033546104423932778405280812584504906558645253956200142338575674122733368506626952123299031056487137329801041407420951141993192013482628196495842671061409298027356104294801233603214429313409531368259102405663130239465279182646645863209254280071269422217663575882100330325229042770811807487523434816302477418663669254571486218671769755986438161108344437741293671357344365173405648385512858776346207595461924200241072378979005179868845518030055270851564842906117404453499405387111631749561852820660552364729097132661082105958424745578464083250184751673000285672183451494510338770623886001985725237696541275699048639369238627435657440500517685462603637491990179862479617237691460726377679630045622478004040122421440618161683270080763543048491761431475345061996185609787419014564672349562589169313008645479411176589291048363357867275632325432702220037756821159102706005627406695874355236643876408426083921709849944208400234337579064998290306257340989532267965792056868215020646986903470282274222916208236687076904231018193489444319714738224127793475022031335136947147241466876836051341882518215414925115948020560811043680786670756113213398275268761373264674857294358019480549084982693197971151247291042124293342241768638786910714882271209978379557980970654793036267129070652199684931645895657636340310576620073543900184354389004095126367154846460667517431780032443872648222245293984013527356187892282748747691983951787046747894341907457905163615245305976550850715151206187374124061960578069666856587176695879974587825046018199266245867242556481102302535345429490093142733524232395007827422688026468751343664667723868580725152673207117895635695119195775948200425530192381551175791510987130005016986389718926404631557173497767822904598382176155024957081182215381899723564643681309642821954290608194025858098466356108374374204174683776183571151804767323836199864205217771244837612152751975275003777999196989918278246584939433115928569398907510249987232994665414865252377261341311436952467973793248742961623537760389288912858232123448251910379533046286016613669410140880835538770039873745563544185543788270129051531455070264112639692711136172296699047218122753867683757246185259750594505533444280304101963340216852624140308059218816099083854307827957266591575431162548022006042698456236949945985628651777394035598695820327708134324060391717722552047385572755686937438949549350956270676226917166246340801354325429490641627703449176821733317230028072174810479303091228352474130889696179987304655292108362951970636690154361585125680761901989014799295627431880126326706668767573931496194112478094015853812097680574943989823248827482521512309616573120358698779926808838284517718856792908185349109613078300101611902794888974274491491499975741637759169900312998385494340061126020292164908426076986359887636840097404769186826148757484130786860893400948736542562679596113652625457747473725551886736261266012761449516315082451237164161426034145084736788292535546633287882257722801876802135309296839719092119946278963292212547425453026200484535601644831170452458660562955955729119302238629170583630869002939282705792101880550826652734668290301060334828607291302177541514753583860578251267145626149991027152141974981318128661760070338191494469885756595597165898974989618457417020163069746366769593058179150809501611115685175109314806022252582122722744427217058790543821936042543580662040967250552632374563533078442024881737275677469800388517139459338470438896985249963891036436532436793747972585931662111247191943785020295459325146322995120363741168659440162457337996912478892111205634384804886052447649696095595056094388756352270436530999183281012420208914894063065607441680914444645741209721817019838282637383336574734741734479561338589280858741542361848052814019168550368893446387463124543997150700774965263949997704393116201901751774378942150429276749591101683436446247643874453393201515453190359629811892529249942590997364447840636825032918000343490547721632137412385191276560421855160543058046839390098993035639304391748241974493869666003088718732740388416447184346553585754169157389805798510747661179439950070698929675281479205577942242054581473342383965130549300847830457976624555906836380891079436536623141848341186370849686518354633292592646124395737542781607193180486829462432462886912835173965040392226195377706585489616026200360981910544910736604169383691392723462845865437777100897388464412250339992340747486905293014589299831726616520920832777996518764117734482277505038306863316109319786808509967190038713612072714033195370239282850830879055740561137972063989846836370070937575797727537863314633986157768521511497603767999924481282172477624633478900607493076321481928320894500539325670469547576615242360735112205102937431016678108361148455852281470052219676931747764856819361753524787329571219581970925160929044705930441127128292627279915954919870761423290546387509184630315819222335697105147421939631933417963039582878669197371708475129151241104494853465591116177650955740588882402456279478004902344236959665321237695750071080098699749869113200747920248997860048067365502097573910133648679528037385912076958938081917053707217254883569986556362396980102755453300220431233756251027757108922232207032394429681837399518753151718483094190322920216103648212743292994940686431062777466843082774847200631882153569583831079807559091455941446689323987909414802489873837651347019950446967703316191781745151086792702181830786991275181364786621329787856448255702926471869744968308947879928874375144685611863445410479024374805184431757137140164609059280690908968448262886390824627789197598693677207880806970740912742775593695569791914303225824542448849042173798413571523859390030529036635168711163167461758342766268650731930613712062892978417811455716937726057248518325978437819077078121118208560194617971809069286827063616817308597131822936217771345663288873487115109495839892755810835268729016235572321706051037738165387126010890325775406921658390468914426663426360981213557066448963014120397082540006003489319332142554244456863296238985652148966519529781195187670417443176702983701705998045514343383891467064616195165492450896481085497297146770131842401414021490458006823383492950498350201596420122853603130238507436033467592866699788206431721255946648658581443676203903607689365332326963122533104189687673605853076961436931675272402947352687480796908196708027440270787822397632327362336586586595666290914419334805749795155937804806700614396892970362289232649617953445295684161956507600302475794190273537088314251382199775611251891166299557770554101447886872670546066954485033809337946896438428439856637957304457801924676703134841979353264901832276433768202728903854448029318019748382801212737999751044657573535004966500173689441956851897186005210847969944260860046501577115292858698290392371839736071718618356970785348914410745411215903521818629265714086014339836307214309558910501387633362554581942353589333532072169269044348143891934929678904327741700809938098187093559905896283615577203477062375310980103792810574648172973913689281601019218578449697182155337078780255098609413552855404262601487950469556547695285632091103711796829124364782196397722628187864959215142533895001738646670561850813281310989433976025329926879385569827893394916831773567095366160050729324727742491414428665214097565715892350287461462952367488087140919599921556991360746353665596495182444346432513427947932368966627632171674086641196019517883695118556076028667940209994077806398436310275310384613742616593280869443364391448043355073460115283151920277747061845805177930745799511260057227701932367460707973649142518019390107616505916888739752284766384981225119966618202640231860134733826833065320382847100288031303216305236939665004654201028186669153752408480117602471673103952180113709001435226143938146517703888150599009149458588820027422822149936842294177357316083711068897022927320213420590643326112183639522101678484611281886356453496585232627745710677016395251657887591962587451035237469059365860464839474495220896890547249117034257347243318229619669390446885102018224857812004884697230236292708527487066254771797556225930235638212833503640291065400764044360393331105969510261300491170814600368389252051517480695965935731505192876073174350606402138249983102975768052979307071689813251076863271246888093103684540135942733567613536324959562448946035972513454858832355082797896291971474213476495731988080563139198421049116929877659306714811179361451438963985661445994054250463148112528099214785892430316288487689127408433201225981490088867031441365183278230122874972993268402245126953629892991629592880817316150999373845955323652706248995109435712995581039467649241053418718370548497450572298064590307154107339985054966921249063561624707957619790657235243015176835361972050688158826424838518447374026706023359180296173075674653298275971049397149968158627701506792546639225250517543920446773741541439123339709763462723306928301799177005199303631110753104734507428616133973660429924140573431043083989307284312770064263640467668439378144096852671330763787743982907353382324187155105343588773009204403708528311675765978848011526268078697503032688295532157610169351241032802268339873959024061077284650549016974407152363283758574588752744015892216970007891902539648532533850259354938531991323483779526791088314484042914642820074615570153118638987840964222470306331417233239234740741522818534811967300540759838718617591132432957047665447215927875519473287899467518150047368231162128673993160342179782823815191830444210035578583757340437429987656036465031260332932926986378228192139734022601337541108590258051790248466999543664350055552832095019357245579623797576532526502570932624366530740106865740710335880604903194470386581824055383708088019840775546692576948218310745341305425542594210437693104008551681766770585533542543182070409931803849369031643512410375331149427693001678305641004034043866433382247165326191433176937622839035966378006499707794200991902389736979625304137307936256246604392827478505919466807224800791891797343636665424373173493434448870024540988667304252955014651933380926636348750819526879482128212219116038962568558211339233416266395252232864539778125079942423506879968868296794298368621738741607174101617811175379158195514896183606558012276623970080232094591727208084280553227104338526536542621215138639997979479226782149545060072889627532673199364119279947027737555374396752156947985613709586654585383536361621261610581441350102661286415196894578710200613923874446669303321748942897719422843626220557608408925853267759065003555581610448655631554570155199617756451308082726611508070172316884750892992737132508814494708046861901393615687464171868257860019973380248392465170424852667865299195724571723546872663367295775178805814183031600989910454423949667260573387650033429069056675970866914204021508061995826995527958876638958819848175650563779478197179591664163857579270517550102340440035212696141554293330511417379161629046919569921738440150481354656001705251124038464935350547500121404700227825604100029122582632005604509292536068399532923331365787698703158520804059003728187238597190499057041876633999502976454145816094198789786064297892480653640416508422086650685405665769929973847824592170982747740452333821229363504664165191540165879632787952751027210909392377009374786660497035329914852433761197571745358693059725942789474663593770371171873690082017238175163275830419509523544861077051618577283790606206161803185106933689968594636298587082287066677969743494840503539797786585929365657520007490599058481539725764540704940630841547860514494191472469974660017189390733132317789865471373754820309996048070400232545658880296224218882461574760038736890151279327006862063660621122801518443570959294646379613741139417401170304972848505753698277357986869450757565994944183969148756280129751372582581504008258454374656660758919318578751239219888718760559040148277141643516888255892298663655029699205757870562462436291874728996850665912477892367024175864578990194469490481157515718340639972758180670007427737789413305362440288650236410442546515589292634435314969561351236740744385891341758556769679642816775359496949491127406142188448063606454242925768594380901985243449973836411357318218034454846429110022634209450986364262296925809910468417122360087371490923723334837150792470983881134378424427231508159862838237340637920817828151132315765485768772384953747919712790064259483117086023796335177480570543274412358180196337265744367171434719797044127402468578473998330142893753071196883759384808443022023491452333191085299901901097839725394621175375816967377348189465882634517327856670679930531415815672082866402731591553767146033682374073890316036321490642938090638616169329020338846742043384842294232221817070476775018918114904446722658515889262467091584595324372472462831832910172615140241273851677283749790374624346160041040947821601579947454149909829636602741371499250425500265594085897620358821606941970122633739280503319778779555958260896617294962653171326132494642652110098021530841798102005932081102703490421157121210760769147015692544364880345392186136796054028142553929532495872750131628814507966259085956689574224221382731553432449833969724279421384663311692857231071711444170769762460216285432388032083405099845077697458615577886234514479706270739739013958489767834738396309876002845845936674672315087221070458388555818042175702665242176702402952241971661641294442197519050324895695101047367835542888791372071658623222963732093426327965814791010024882965521565983354054196416196554865425474587760503933520548161544708090160644691269920945671278841671559624262960434145627951821956500101325739248766094913381156690810173540684481659690689048006118021277118506117507097996965184508325666594988583625048141072438524377472227378772279319410387946341150804598841426960301610051503797450801132227727861250896485775616140669955266450420328211022183293449532108876420002662982602594314826692945599592552443657098112532501398100666477856805143303754143207227772152832183193979564564403810648349703938902031727843477824419392244397534586148175045798874586675552016602760034197991058626886933067188115098890135908922426377536499895332253773112386756090571997437738503460447653196181620960770496015316680016137640988858354241186424985332448739499604367109001578369891463607863022795681451444888945830136580786484778686132849617033704195863650280199695757074030225994831017916170090133587400416210612120458085594665601339152497519779293065479002372832630144564434542646459287984670723757779060417012406036821126438985728532141371724487346503360494945691260335335680334980871504819399760754540519629664982542732308469672206526799951227147548844770152369086301870781503344523277186757770314657531096452958231033191913770586841826662252711925121006916651515869836634228759967883186305418627644310832511584755892053326216339570658420445012030292291359831991608856891399601415468042637105565548966640050488119514418729000959737112683172038121628111149487498897103859997832113594253713872573717612702912810113558867816323468301675017579638284236194840543489057371488463189143003170168372902523739583601552018185617351089831472960226328290082891566242313769637497054277395393156360705441297469673480487340324820848848499501180197056005314268013692868183171769611328284498312402781849773145717900864482223605718164713961081472141036033520510333283133509406742459863770569799536956130672499752017031388637857928208490846048094425117707411125561765983458765120006530118273928506293892909395021150396957712716583126642929620148256858002557174562342133068960914390074906842918757529680034403050758212868542869318198631985072720998561140993540139516438440319959943964787489347319882260479521564631126361965143625325327329781058839112123375692726934091020571596196552532899625251345402035218591084305820602462844942222497442130043562179824231400625670222570808481342574199962481064068628471331856633156838644259987483852104135342290385009370271833925876427800193418126894136553591812805054517017434375435897658092100752438099430883507037656031882476959536177433164777642066677152726534563538562802923486817759604681335050669396255275721842856683830207247397425707093956509921237720541105178059720280833834769026636837362165693243130148776038914312818861092548467289671845193541908699186815384244886897523810344253238873159013524559379060504390027611913564123717196768233831488302467639405785203383733435934960412104979209843999246378843620885087970857562420725195534480401301705389138903515569031829158463630403870344449127938143978723324022731156907077034395032279922323188049629534554800841302057816353923653157516738179061073537065728889757001803812209821016222487964908664774291935001783804242480556675382432555409370314742712181508189024969254918616369201921999849676920664425467894953689821747791521142978854564495049608586945883484883229749400068828456624800844697582913145939814348510794614608797652218890817424580440707512513116179143403933487630059555342763104543600452895990685107515508965635379667036662404507504280753042615691394273816827374706826751236954655571861586326811494858432040321127087935633508056351242491022760989418422432273931064675524606434655716130689350269103020240650835369562786910290139621194720539563916053672754340059726000959449261933885746477666714375091687771338215905343127672747207456697696605063776517758436294512595451681695801051961837972592542144146016515609394906217035881282633923975554634232805489913751953901204947820466131422589409327072256890723873064799018589060317370516542090207993203216993047607839538708856766864492923980472197771328060936224102079381510111416187937206118376997389100805898211859766895312996578002634247651468139795788157454228600679305053784009140138438547892061826994291380261635854069493755370973949323264076614304339977110060704052092794485062998588135761893917009597195108378704454311415924624138585913911889087815710050432031342358085389552804638146717687507797487260759650312713220471267152091937490659677263513717638483250436526311334768855529647847159061497342403659345951671000414443738787580327909010705081732902307815628257813721953789343655113712549466863147115433299665646987457987489226991152242098107862514730849369128282254643375584022037991573125369603796887805020472179359747193916298659251209198982740621896247883857884769651546413895669061246927720378952667707973466985893620017238799580432810974374170235679279764882091470078875569095402020298829140335568646821474696726704837996859259392530076386656131127168861268549884625308790363461774708974698514036397935469786235971554332305214878935670685832770126072367185508386001146616062139222838733570354297924972800755923943013361303757626267571260966505150806737077829678432794807913785474761791579812691762818510076814003100877308836657566467482946268718130823927772648752673617568975962037008345188279241845759358257166620382430965920147681707377962259564406188971089160920155059251803145748615674052988706698848726753192717137972007946918708294274713888534008722539975752234948044085007149582550420646192210962033433547830288803763842879411832910185048787435373631759119482116581827796238586867227110397916568978864762083473270579269606973592905237731531951729479021464064874035096568022968998013581385594070378896712203976867221569729555113483243208221027606929843393274819504229091632544327913176456686035463692604964603096646835566859900849395494674009514174360428175727303312028589023685856842858220163223911673551401110204812204533871189588902539605451602518252337912656594116126203611315976423062346926404269725628659292727826673817474330062613394814248388130914866207264383929752943245894693971171898602213990678145684680996598695270028883218275401028188017978980184810901650974504639257209224173072779482858128622328406663676299130710767983089728032882533503034533843468559595553822049770981020285494743081511525017888093053442550708317616482735348860640762121374264677977857572766703378749418905303213992099242993748137632614147038875938196018120041959528247756312184799337539401594024126184818848831855549975903368127799221158428516202598126340123283461566816918645912807812211465950569135306449655075074339652363240435445602183648291123718168960895280094838381336652725868117641108334377720213795470944077795161964833036767792058953789172505081625831988989198056237266054327705906842203579833864734224754364676550868366827178467815771073145559477286895375046064523642490348372592638854032986328051401413398388166282692689969534716238781757553338462183918625808742100317339258665854673270717568460751447826977503809003106158139219402851081249969448893229903639409300222277449393259658843847526906504128670354557153084590418252060558102809781190181367931920903176350686406460785288507836186550457846267712042748763433395545855360211189471314552116834313441615218604760176134283898737917033455772120692986361498734663019688356382758704118025463600456058670453778076925904610322174252401488277526387521192894965508370207409954373614121780655235964058911000724477150755284478563829565859158066351668884188291815391341570859234822828956638779798185359948578761892636900230159138993029140869722059952658051388528549474091490816521376085540877568437391816046987170787753348343134225233604968165102558012486858845862021908406411287087679258656071047209162955009165860643978222314438362173117722014443933181961684201484876950530559733241417747830068793799061420089512756740292776104904663228767056762436312063026971484313686365850140906473359660061799373203532066802154750362555736691761715467264404617813745959355893558063021488624035525332735496926053925364024545966231720299545062156936122975946685043775867955561588386816390107466276715952308173771765619339628394761985532086231628262195598995278854955974001430421970977570340462851735132110494133666476053733993962209716969990669079722918068505451930281878908453705807683379800189916731194656557390728650568899148273321805484552132292799284265466003867511653836203265815485040735013133793549713951927125692919951133073199818945981431682870363830178934246327926820323892536485190303367080333418421210935342915755890880710814539297618080250973595889598534299234843162404233826289166528560231629100633197080379651863050565119264250248046637195543117090631528760983248092785885306558125726215826616123271146974623792383462802148131035908723260300458061163556702753806880816488961586148131369445142862163336607737945569892879181561620385976101101776171906803297488508472636625913576408931856826974855593356948764803882723104251498254686042424767555686316086429291542806693424406628871210849691398852282565588181302409805152675369189317505632548410730847397573488906104983836303757711492531496579721751878585339302043349343809080051064323784632094289339421310781273892117127492137560062888424659347883919441300899547465408823935815551097846628058707587067492467409298678913901664636279899325474731641086938792812580730853841034822550060276051899137900524510675008650725375764313739770600821650593641986003935464538844669651550144775150701372134920348784213117812218770876811634314419911783866053275258304726330378736559105482443645628115504473394929722677988128849625036454611772907808368162690760367502606470583208009969089928624324534093233101642159476829400093744319141152454346004967542839341839130876045336547062671848917994662164220664385665636915407696124638809348218406369964673784300128115733476303271555498556774715521634929858096472266749746738450004619184797728401578588575443071117907423571379145327014526895073403427334167444227685585344462008009966014138138362342332560595596851866322435390330124999809633876513482948927033969781922687177751961464546874620197605336671618239900126315857709991111702253115299901470890812528065942194467817278551307625509406513989560034854464830452367393516513746271191538550046897644692958326330265704516464623115099468428696313300716851830639068003991460409014709960191424652409646087418297906924512175169652269007235699686441342748191608153448158190481793189959039324136327446733677243816242304818762126737118013724615042570463089118321668534356942481117792218194919220656761746823437443957268592920654038617140601849337628417594031815234234798994829679607945724157080401273451198876891302810446942128105758146493359580102166183149871128603638130452313630690419247981417921608019168941542422005820393477359557874502040462070004429288221376708333889947768227223528720927453055474111653357717386387583323099225178964623629023315533078265714866262412612744505703831546176017767037495792871362166384052234580875518215835842807822019514217598675430144282435113210256696949705355503563349738550657677218775639944993859318603916128017270488008347253322243852431930073229980607409314630497179167055540388245653186075999851427549461474997331744974129886910092891467750074654891596151378996442401769049469966856884073587503116744834605302751156590776846568249984054805106470704008758788819260145174922721890501373928195954831982522326380200563789844527204090190219171943676183744948117998445296889140099588119010855736913099053891844829302183656941157495505437736554805938758386065598300799249029944010914671981051081098815904151658848090727921924486235386061545629323739066603172895702579191868220913174683367714382177697910481108895144695257805646709990279206088966149239619243887547862006327231471412664576386860703547404205666218289986804100491900365035546317259524455582682504716092413318834582173275616720839188359689996575700258395471934143120438496094576003724192845860267244752873106981185504962151104693194640715777965982531017496417489192998897304906417381055797979614892103955615628959736878929653575101733542787565443475025274523412004000390620614947960333062146092232884531289822480815514221772325473367610324127950763784319056840769896068438152185634937556469297157969965607576698336371285872709514282967398678805613114807438484893526619596061465097281273121687697896699598355836130759501667446688303983980484781445730349249250613588804736701665721945557478844624476302567319062534375353148707265090978198193023826301140954611367390110323671398703644301764854606437760271562128245144642075635319353192974227312649421214574607209106034012955619703224239455038675429424037528800588414878572190631850902997081692239506360400924859991465357047642599123249392999220597758884005638971506058722703884353286936477629140976045723519159325037410870128798002193033724243078528409591212881316726572527380811205345876145060908076394589936166996863761416947651592787000181577188753396505038067270507207889492686433896939426537518213878549347775231090938823466529330298598522622600858625351947326614237310691652820047989317864699083720393518883123216098673865749333385965646407466737899604291548690462842511446062812506688439898721001198356632419867651816300776029130234175735705241269329451599246112533379455341438344885350357405152131874851419607314277751955442839762742988153487644339273778282520090331872962123705529580504550951153189889815967284584866326514481391059046099348718313540911259176129234211294279689859520542911500049266672280035578278609129487036551383602754628501813146487389290388223639792015076626046088139695056429683899395418671824993212537449228404798095526803810189923785773254837738326406637181045778451939043213759344634463405048533700436772659774743709610276900375028480957950137362145362300242536629028220131521727154800310788214956579737960022745237430583789936182920546502804793528894186362742404765713764062220750127226959748737398089518727197875122326022716461984786093071014089427904213437023471883269489596527696858337954288041622789655626711178852754044634067367100767617964722141894764796131190306885280182157968148377046793584492237148275136530574830406830937849954421273312484390509614668373885208604026525957755550504006559405274680604425736319439418005700010797298386223670773168477028503160762402988401411663749628781534220143195698576755076404107868001828178273964971862619371340967134259860260952689120362309123013429975800704134029493286676574172852956482401529485319561573182876284128991643067722733172315877783911776911099743344963817190919254118428577910760295610141487798253668938185468960628972857914209685184985953194494582975000640971458733762726977555731453635991625262116375094714477560793599235957524470937649415264235081038742273917953654604646702529600471630961434006170611989026603522822083861254696559557279586096731209068547957299809138856623720502086364458707565768710834635442942400293578264773876034682141577349665884964350652638541984889842235609682541108532610131306899140034383525174730268424049421262827769651191675366956284565056340697161342969639617881780633268098838620262138032566140142322925649283677614850295737337704715957744009279599599776835991236471643092617806060371071349544084209389117119930955991680437201612056678872272404504783494628859476788280628338330674573014884587160456190246232795210619307931118355791258560953531282053899825966365709783706865873636998269912077091073079971172903709233197773436621639690228762564524255340377696989309940603562757515235036574828131760437070611180929996992279036299144859285078114861359378396130168252845682874988022766617362099528665457112197626212325947500707323775461018957973417128366642305791367875770842083145100742401661028881390667878234345809844120460542834048740316354108631611330065394296768164978168918665079643119309325127545124628120594971334577139165791460283981886355870924512226962874737655830424765598816454889122793993853172818857184692999114398994612025048935541427966905577925892482038332400421740728028396826091520231561447534480094397776599197810239908125206683783875176857694018646266420076955739814036055784674515041295322877829881243427622898910380771752464324901045707967105124979878920656280870687920200694478185848940957578933858016364495355613910633508293333908004207787552736247851380121078646292353109572378550055502554112146656694100373335607668065683580600687245491622773023096824770416600920145973200213119283351767613690647615333522891431084183358870578228720188787554365580046787564264395645624140452071474756215657518378153976999720391035693076252696612368150255522998769790621780253449513461219822935951986890642444010016950912091262975422798219803336911696386584690883563790207973903278052736566973185863465154740501319136522596857748080809174941965379488499400720460639380580768485632619849670138030977132389054930535109873947135087660665016081443375202763773071558314091093781687997173609408091758065764191470131596236198913503300206400641566908572930250107786718342997920006372769935865390342195449059562911788897892095573316647280779989334277581246161860882641885844423531834609951038620744638691494342711115542145997454780372308212036499911305623893554727295492896835712435749604496701796590630647138097006579444040419334509295575657734739090820671921918126432738637308494422229013413979964147254842809544335599242592840007612831830510523736945147012491742021718325321190165119494747813500129469499104269494824132439156876997668546746319703007044710367341456049975634506603617581892190476233033216205475952146213126826850346615459862485799603956253514127431507534749466650554206717660253882777476018545087300029135123735281078938275054215284187742188913156010027509882227631809128056711459331732690241890635166987557889894831805830796482420194445169230733585812682990455994660145313729652211217144513941190726747592946933760674788851800783487500437169540680386878098916751579906537801262776685381954712573241221751288121029125819138196997108703573557029104807936663137115479310656610296022168869416195868188881288979770358983433286124406105661369075929102369236600032020663923276933620109069314391427594626894362680368012065621569786146780461187839627318955437649770010064606928950175736543217239104788934757137422800630906766093825039257783397746765824615691130863320894841252758668516648745704595448463382753961372033578072714598729756639463478332341403652612593057475353546823430170100862107340357854836447447193747397577302168714341093113400644165867021370056676989701619542118757420749456248329836510796479358662550402564787946822315351845721704150686073713389920684877296428387024351165648464440628674178835630698512358271189852695023858002907808212826704929997054936700840867114253727301998879630057884158653004520341879836555124548078611594189860516423075571254536730018253665655984703099813917316045948445705750226096265220035207459267013211265257251482610008032150011475778848775858272744128828220888034244507202447226760012926249484269575256618255186668184743659418693166528631229071779596561448704272750541088655826662389158835894558365586452831622053713817311173317179569311506316492623599968514282201888330659887788811106395360600183314704128036730972256688183386385220363202952190862700648370421909511891414888048911354437566275165697648813824319219516173881823427160418007604272158717195139670218861588982708428850746947735339234393620223595029396491258462517499184263587032165441590493520813106413006291447091555135389653830679375830065673196666524884469036542310733098556955152482381854151468184507963375966241746508795019085673107700854516201737962851222257785591978458114998446427018629795986148255822716890423391500121906561444623752674229168106943362984933525975174602978612504467098008227325403088446693047897653897196001402190509001322520011569957497531950004626065231457913327055073732053396980693314639490301985275401675083444939949423306727875032951338884562196841524018106969493710958184573685457516585734073737387125853406059329175710738406548592582072491849011050451898905583722025693451349454601640720940347773665162125114579859292286487982420979532485426517101827988716599687766556715354841235163377504024485282018650406278088793482393473865007172106894997698116716111659268462318492261615852808465866101352415218339057959421860565164012382360451971585250178586741647999535801142457032861141991316090792217967857116889127739364682930198153552544684418465346082084953499038103811291206896434510858727819046259126769300772659770405612468009021765223690617153128346076556608930345826766449362510517008950286495708632184404341998726354907988182554845453123756906603794384403450533766913905337164992272431105593837591567665251312872640837000034324946661324684838707605302646603882517568959215180363995758344252123190463354808094780247305601166041456801360089250059660654872329692229355700272033049438300108637307613853442833320189919953846337592941493077244906052191704271353353646732956368131471306276884808869832022694819424282580611297219432827977454973763031106175289291567686963903616496307523437900962655986373788395791157340368136632848726900119110292637468666126393968429579325974200340335096835851695990688376709759411318055020046670004298654958956234055507498176669592226592227952085046504362208711649646033399820322203645091268585798571127000989912411758712246694416147824345628525622803289924848259738272453206897110733896294919893336279897332445762523357752440596744741389720993319904600036839704480807724731772795868169875828451152766167632037363465627638817574331966678349248147451024383929954402174028293629726470430801487200236589079005146028353846609959835625236326260255993903113788754698560600425749424893044346839161724178489357203945187190420092610692898302541921210551505427467421375837894076112486820140982913375120476658027758010761426808698959719058165754471299186465286339538089835708990714344323130032742500348027833454791403004022901904091053347328200344817714687916177577918574714496642525071980174641489257496730466975788295618507615865191570516658324185265023942936058965371541852203578635994936352515944319792207059575089860504168914554838261845397699647168560718242055990296718935946975696033277143594878965026955240435826336505909832134022065045563778484309117937675191976488202639853899573696156681130903423724277734782953500389820936232862958371441207883803575164140292548572661368685483474980722724051376845560762513654694829544713840801044743571971263950091319288381552917871121617170064110309251690217831476555779103640064365219421947264094516049440002788573520710814597661396747346536735364960805879072536981226762337591281470725911332563931106980276444057894324725915704043412244378626967835442300212011893016810889663527197456160119206255388149337283230224707002411554156548784834876206417881261483088295542079266785787059747257187554323814259533282787488681302749315790081276249878631348171694956226428773706871653301727967970593788893882698874831487982844012442739334015549337094026646624855275646475964035897514389107259796414909725054669961001658146213194742288687710175167773297188762845787641677525569794587089945352469487770079040529073746349410701617833609372656638434598938377512983115541321244490656487849446392929983301887926322504292444497779577720899358499187306320222366219180708845469010088471339843948198075065265323274616138570869509677884826615155000870314738467696507371418023408368734017656306338818870731476862290104834496683496057666927534377874090593061350736288863464474219006582500358335969192829895414038226279026660636629911796775716994519898670422391105471215447838502429983708679323516237533030828790378611762211701688062279142911644057210508839569100998178297559726738276360640788797806821488018606976576797912894874972376906113932210668329411153878786928811514183046000431682734856610793307999784813713197456705488179175139064887512944210014555428311303733464683990521037338053429082775063279697561623559844976618717371149609644594960998708280819548866560456146062201611828743194935270753221263493587334913661662844760202727757455158947229154243492352292590436728647031710546799427281796502581181018657711426648849849186071459200629259437453132328145783236837190152466428976618769153109237995516891512386680266875413039204865101147541243426220435380706646738090737974869950173744885356104531372451150117030040060705969623464541323072030646348141258610048973378666161351349738461446012367499021932927389193251569015352595513910394710236666023520040565568946484469684243418609968722069918255786955428679530966478544698802453596150357157737868255892389651098863602958906037541880159023528030479222376827038570423475550701531492070200660090226206342313155249943381060503619169218753476822649303092340349694409181396279516238348005594691002258134100343391262516518557413660141217531347853045371507681203099474209000173712416988923616543563903172034611855648840388039637617479582787212558501955230149561235639178956113390131063263994070717879683188045068843025131022628426054290210525286946341032853254862150324458014713976382183444610496690852102140437887823183042669540193402967491924081955131608523157797156769874534189699503354771309266665755069093269827530613537613776189606126571548384071372855770936942206497471558978540871419596492354695921787217923169491865086007341253745577812019294156388368885599509529413608882304109804420063023830421975009041119549818938833944192052295114030905363742055788521894907846857118382705062022353308874925917700218575361235037188383387696253870263797797354076262905380416396657617374648519112757052776993042914915331785307675022325313932036337352368288334484911677259151390885675987889701665352514143922147410281786575887845517295132882086872616394784867944475446896791839448223242033004379607152596821631244438468769129655660646467676252942719219435619783431411320881107134862539464511895156309633026858630272331374872919993374692613192883199295802255640189069308955256392946244486695976246138934045741374603398030973699979373337442708909604729546368693441105084218066185570089282633085924778111390399090765162443438739200792854883512459026781129130378844724436849812944773386847300822035572100676688070388172240154329626193872158000898968831465576388456236111424092424003389859167077398060608929643293236359461500810700399815137253652918695038418018826100757195411918561465117663399344855852429341666571396499217390449236728452372102373436762679309490929410414775509020999302916812187964322913164317582373196503329446547727674121363529668303677713985019277408652542541954049785432862355993634794000574972637680754239990553775657303938055014010460332286241553294863445157989412209815965231291692061044261425067050126201144193120162871304914611632167778801862063062621947502499626886512543734780117968116502367772883322476996894691106408525831314548612778125849581230106468114676022376285368013847583280195197048545699469627615112256872208234243112412222019388163113151922610851448771957332264402960295742453297625405343946157994992668975608796539211340664005453960035066371862765100636253466031291487107011707159699461343073348450280835264851291692312979979670729063764250643577552547463429252720795501423132170147807847945439488014542949889804609932814552750624750915309778935067487678393511762212015281846465890241105227767438097892817142001975398936901709744393005997486238866405272718071555992973161164941122938741780096044149081815436519840192818094343146798133481297840749866470410221042224746748197587043760558730716493944650556974335785955213532143349142814656245618321382247332098429788129976533235748757853508900710664089041109202764676726624174152990257936531583537985686412884363263437322547416533714416530196928995600302487361421128319416115736751355640300039549015762413751407942765860778106796175719353347629420483527828541030762601056817397966307342784278414035240362228570834959439532712763098215075851385918531525672288192087619753647026700286077807694766229934334841686827774082387118794233746575013198264926013180476476785702300385639455112736047230641831731554987708333789718227265006865610090798500931524904240919826531511594825867340618965905189988616184818276982672308874471326331757334758018993279764391825644946021764231496600845235807619641029256478799634886912890568265047720535124949712557315627279385864369688137668663757731755057057812123949799335802113409047512889503609178811448249454598371009692739007164663972151682777812566983819911455914817170676408625429743145608085371543520939998721511247974730665216570592928126206009121083187548042019000924370217742774994885673306591031355456891027472063712103365200903105797845272007744277527419596559713287480243710098725107652261011911789514830507466032609960807135727617952718674153694306117487430202686150272903896221982930676579945090708516935469357551023731893750266330266582849035514330474874984969157435402882499342702310159394257383998437684718015264316661628671251468948854990772274291710349862066033065517616652050371645149075933707459879156987747491145539275474772765328490215560773488954655580693550999864373888434120100419373769668023944632875759347508473378041315476533054994949083362502853627961636497559802997895894344769917683180454460051811874640037302563203390249203334769842637136458479241897719306125094548568925411170464114938609645395232418256734718222047946438151063594362177034791537921617709263784781081876406468274671976761839097815275459815769365051815183821701138309553871000524360189410653760943157048749594917081588585381395828985633193863642516669393521132611071414988211477679797170930319696751125206334943163765529088613508266450247741747076327072387327979682564808108140356734750310041820800970171965888100433237667936142998177146978372652639223930057857570973773565401523402301711135982873150859172153191211960800822627406286941184153824932881604774698723169612152258472071491453332700876572660162493522443976104093916100920180850414149092801790610196138533535128534970530121298915611366907595195477276180685838924229646124411356583666426089604154656225682360065981356571705733813356816490431572765655408431142781387709081785377424282931019947752288723766612091730742790266975170002207576300955372254066325363265284903346174076339803290593886337191471002829759010212770457704846503341467968329843850012184864470043869413883812186154254122902383418109212159952138818527592369364536198694423643211098587947168759425205828985581250454785702812292952106081511633185914811916619972999115118304979883788786496765332839639291603307218752228682037180353570609218838999865304737219843491686221148071952619444871410235172105107432501074102719410461326011018209250595164777672344694744402001691093472965310824637510998261824093603869273265725833493327936737055579096145053946046696592645731597031765869830401691384567604207906375235861397197348069378624988996419971738790908788967823538353013565283475577394208161351623866657366222414452451200748499402999951627511699412383479405843722940596495217109567842508065459516946585453640865197329985325218120015352172786755480716437249358843836564172568991772942468548023663884316204129215535343010672971020375957842055251146389616382046228171580226583538895031903453960190818384373461833033536045639928307378236211828243871788956505057818126310685448532750756482963293702557891325118562928463622405330211157583143924063247795351580310076435458907168130316191543420986436269067563041362637270911817194672678292391116285221078299159489537418031474123066859951137622585296833481439590203011717875498149077405419332314508565160530415333031559723960595817657827880887155774159279915507588682501954327764788463833498241316189331988959333241532045294473831372831419612322964585834252226222324186619226594054199324269995549225475058972179092915201299621836349554914595111792415833290179578342796738693421148357392505643281119692937555293604702383936204384452735655149444369512614261891697189701868252470761823676688546726176672790033123174105969313204696209477661415934116198833331322049468230665774938352639894920361240084866051232215538040617307630156556153111999477819343047520058178276957084876943762328939645206641822263195987729596572601932141571501571487465569730217373255303660604798986362958352768626019528225282488691539189333816462280769550883514143789744438196854677924371665643741647226006680912249513457066616441038227217177850087475221967334463959433850577046866358566406713387162585998923948577464367132262848649241721192523364676797385132449071420852581032024814930713877404647143891561822778096109108879233166266276250846021826818500485877368003651517021382074919023107182641971062030214776374139430402046532391392539462018659132812500804353703282375289562479464088749875069670464149601028613881740410867835750732141260495243357104086013439156153414576070664397960291276236741266618997807846319627935086013041415992740283572691706430676667664805434683130510716339920770058951803289148785900885836082197802866143267207327712829488368009264086796844051790724476500964888167009755486785793689089148105075924200991551793660589103461164742695097398949855067250871246103694963071794566185619396951184272108986633577168807997162024429177129525730556371840022243762061311756074831089543025158214315679118997653652511339395144286922693976684939389364257625062515057456991485828341309260340362250976293081687457909566716421220547700744034712642197056822940870559664248722914585475470968792591447370677976181477055774188181830862165039307505937605326167825050510535452954450355676227392426781735921186177791170893147875127278868506601894948722299560380497032878669383121599419121032260040493209771092501922530962491419486510461873929416235249840024400320187625480794049095474341474061413207216389029626691410835763238799596324938448987098394299627466159906568652537315341384286849174240730303138493127236095553295718522628553831651704261985112976761150905472891450888456276051259526978359712619526688728536010350288250887642893281601727594342450156787182166484993067244952866885530522401512853006678413033777518265844961337756103061517794424625974750518175915673920186762650925396459275103149721152174909788897544285847884886229758269695203822986895734530242698378195328597637162881488600459454823574410270980091826356202137980113704969180187720386487065151541023193291686461430229117286716632281060345329381576085656892935509844810220258569094181610519862183114838580843948850231215093113117792378128502772768976162608291683642135380707399721187268335236065646288976555461084342074013529458808685134228907235948887123626953497085966287262216505357682935768512755241232971028559146367263383617212046851586428483668124050016366186377765095426996585254991663387327789040668671656746713268422912350331692475815751591560469661558563122120494296244731292448525959896292142950508967900029698689676880429585805996589369932433110375670377401609584156076931070318662183476364788213730942513122871151619540725790363000468066305682728069335049401640190072877270131229508175352403430541052650319447502742026804666072771035146646423352826014368690048272612247556342273849781424770371484759364388215110770410397564280474046324683177067709574584107282044620377809131288140956085694776788103851426418851218084693969519025588500153024936865491101339489707564905105042272878109055737898963426338323326794114410544882221938406816796327848597777674472283014110592702221890372409069460414805992654462844464662690494173152938802942288392081079484955896450972550844651550279391079079650820212941223880992082835088411798339588738128137363197712170407262486798957410912451152660382981453516905366269513152626297716324627993567076725486423876518464375836679895500707015622771861501778685028767097124618337069915186242708634648205461605150468725924559628696353396932629177056697032324964617630284561482443752350161760312823008380245844837111208644897848155470038120432422684969280696012605490802896911275339196871394627223824707258792518552974642661771312677511674466248275783061307932809390130944319898097794092946524644731639614864938340185284654272507607705337672819295814087405460834395238629411554503617791120349712312333513085327412230312666408284212365954400721230156757970980765461518459211979473723013131725826003489064611293004468591509636224038582387726233019791778096852336648603575572150732519284219506451666281914069175612026941643090754861167698556570092317529911260873678942183400312000145791754133182365109047985763856915901254143641465863574960999291982320415830839729167041469258623818605544516235158657803681695939581881759189996027407552331196844852316523140464779019418622374193596210877705103237549205728193363573181339798597300959923580542382236702193075681979561153593285197437827499673519916988810537644157532675078051689239883517719582253133452378705778682274040252528615608392024143106379944037581994769900843061561728047197855581937933941948565009042407157299156384649706009158485608170329348195669540966969364801091223748379881561885709838732725653298201835175414645244212157492952707379724330567307529956016326311021477079902185723918225655979454535353676970826662295402405496805868390711876948401367967290064538529631543007145369757287601689482457406433566921502784153026152674074546559449776567858050833214519315121671289759974243010836876207791228919629172896610386504113965472312123092266176835516271951739810518052315008996271086559431193426538494927079298926607363383776773924596738581843770085224004989093302107093878919808600605212813155491146038761634287774684113915444995414352652450607476829564408362709002523754131068416878974807294036055623416978707784802446790113627858071052148075322461870685628273326587576389820192453006004314221865505405675405799025215560913960253916849401993873602830308293268003363984457576192126463609173635333547561217467523111819256893524804469298437948982427755171791392790497818618466290514722514518747613221313705684228144121876191487884754173627187916827249529501926926438754610418648803876573846714972822803169616801916826406881862328691444714688061085418387863611622033004745778166180484523225484140497218233058636921925213232215697186561172279240643336695569555689468972737997385153089743800106181564205383886649684054552560930837659045262180827493164731331406652760680475344419467145951482345353503646914750748346063057002953338760250118487353534653475772541310561937758480974153323344469305598936418284913764096237527939423229780010585429259499794792947201616444199728815550694931126097609216365072652926399718465700034028232157437792978174208161839775048053611159582656658702180812371910182086957820419742422250367114767785882977951109041511770281609520303133317780167761930014099030173678715670263883145387011250256366836717809636904992977055646868709504549592963043265741646583442842372752061792492389838500163373529067000971897197562201329173025280419370203449143532426320320661240705266028999133021598123720323465623701380851633418281546822900524517815489868033155327754929722702211836185606412066882484177596833705971296365726447879765993994526579791197160855078923021277881225040145548167342645311830397945344295568493297114655978116253209175752990743698293787947034952488670639699271078082351159007256700017584923180877825165031137255329670123967462588456654888589413930296110691322067071521197264808662970730070708097759399424084088148072010248871453327107889943019248245061957400734123831894686857073609741674252446636229275643533734716722538124163289119655106421191191397551178932204678964458902331892732402176471707772949609471942028683538464117861209326992418394099619576783447638222328571885777320275712921408652844786600083022865022603783963287332118299810356960701844120678497057126909420704457308386442827444977681339801981500052170766577558078328781449250021722058238207403146352178111747035358692329068690523308911485179933197367857083809398108020493595393682703337281601360681361892422149202780299956893169728079761950878018550524770573134330850634685587505696133430086380315053064845594010853168030922525894308338801841950208200982696674599009772470294024807921725895146932733708051727094196848325036049685878581478074728159872405771162407957776762025575628049007980008441358044462541961150404624821150371166014893706674371364241393264902329894449808568655306099323297118561027801577680495537382094518638803017122115539774791692104318981217783265182499325765199253061548719700468218513609053176370285902898370900796633229721864280613232046020246964426054133572248044767696259266641074726011278401489903022638951365813112806349732877927871315287339417480302488833083595064904203093589743448109463324319082444390163815082283872543073090944761579601815904912084223028158250679645323860685335706566738337813142875622950495332590073702906250575866302047096861145339123257617480408146929879062785474011698821289414800192500963939576420189245818455306262415936783796506627828234243007401008140408479919189297842919297302980607214629584167800669947141590542260223085488519311958962802098254039075244862403612189791640224438379592879861014641766259418088103841922764935087555054187734207489907990916510438595939574621943856304673321223096448973519013574573070900232889557359789273631998775307392741667362957959015208735787781045551245756494392232332343416641743235479299166439670480911111156015814857405842421543334424664145703694827348395833340828421909046098605839690408147675617750262749054626965937180740678980257611926959045087279188468508693737045121406082258437374575008487253875412450709408307183228998030166685935819384254273234196451339013006581288090032180721771229271656680289127796239760119647599827405085103190552812597119782524650793035636291747206443655888422624716091052265259908258850290215028828124973668399828631096387570869441359471193282214554138202611817610450495187480575915638512718458180168100031953571666927267617485325840404555520261343722978435449891448324811324631655252367340715194337230951112288145286961715091460284991521709472133150339160471051001179770572787534865357295347541497321114747178277894790158617065331941156997903243919841264961059865479009245043960149795835223692441016133844263770266619885834868108391588077483296482411046098755719008672905962035338863134314632434379932334023040679339417402831734531101867084184241522864432047089970964374831109320903396426813915735885244220528034874569104346422899080860643397832930892818174552151366324371023373424098285705387172132778859871223259645501437405249754308576303660473071333138897016285116767199455098177744182996405843323736161446394759250823916366964834397994691337020680467044303669610186351729349194314966355780163650789901161488803063644221556329549693251371186141620977556947407699658048849831308644665383875297850780014477336259282494049101615404583270759237712239790640734219010130753658245002667081904844047627332491991880987305850427059948638706569469643714872942419655965986053778906783478001835816689498633413179102410272834672947850173744234132433520050776361512000687999398312752396713986168403922501239924549075735905456408758376844104449338286562726209922217814984365869380595096265431066478112808117606639984165161944156411661253975996930976197943106559448509474393150749340667887901773714704727112739023372249665833659093354427500484104128748091559007931877780832485056973575635572613849874069570521166280703754398111279528077983338006526070970064484250483311120733437514566452552873433757337524216120723920711978757947403513786709982627557203287786412330426601554942924942001949857103551527632465558390458100174646810062745093721949801257536368213269044361017982664166404277858109103269256510817209773974850918399097851192360787967110645817576220845678422392771196590045417751121799426213349579242097648932836449264727625297499051674712985891094475718843519188392372060647639546330071717339027103691865325670664611166721274001865891654525231166056425526876941208459982355532587072391407646256778464608939029338403988892913562681670616471134690965027562442836475452420109489909671704285007379365288115423216312500920082817862746428909284724063151861618949094661330229622693897298301842380780551727722311951295600854505778732908904826737277323665114919805840327687334243679647643594567902439745248591132351192304011106109074694313230572601045957341004623288635849826435227189180108864801797572143187178405313414850007370685370615096538664024816245818722723528171855871805859036078323339928457383504143376456138530360694151423354962321989062575497214446713156788183368025204581412337890543924716209992649682520152814184417710267700084250033647524818376504286524943714994361830506274223900139154729895600257361507848327728471171678906674628059849638707798424813649843068634671314880683160081857669526675376975214506712647171987763326472866734853308975829136018200706991692822818970305054820433571042427656760948439573731929081105090002226147758502906689607720379222231392493934659159019290958067589279468380922297194359915449254656647863329578000799065543496972237882559209189054559119978771995080663195128988360132745030507218210800813888936895357640457709694295379871075470608100032269013517576654196659503366776534527936435155770434736647480753049094264227016845519143095006242747895264496943670044397144246468747973284100487368314529962297903668118366796189965668048955947977762936577706164212523626051012495815746373241637569017154832242210511566968244310848949130421348311550147414694473540548642540481097259665483875878994931191877657985825843670082272754683649374096348359679619866923089095845964244248038590711863260443733211428641200460344265576535168023682549674134082682798980769817830861892751612909489788170281368847312797439725942499333845200933994043012813464082184602962989465617473833191998918350897563556729178593127688400354780002102319785967538615282507893891894393321562544161099407254993473224907226965480814837713074686863548590958672112395427015092468642109474138062422179039804644763015266574303821004729324054812636836017062061555038524310533492273989501248978857700669657674768643587179876527689653519764741943560318594183906855796321404420097945611976411870317913548310807651174465345794395404451494202497176855080263370501078533433294850871815840523686493242262167246752118327754932762460365284323963294757566598408517376751012176783835964903345037137421965921284827345607627230590941640736952691838500501443947507592835078466664573274077779845413108632230553578375474143666769936290143244814956632075867243913278836975956421462357236514390716139549508612943365371255574841268796279265232294392060362796284895167862468019068975936884599361788676178610078829427183199548424392063873704645240482657282623918099038700467457630247529598134531069622777670557484951472284426763066275713533772151533129792156369547303329188800950999732183909986886061104532542523230104257737639431564031191191980743056587192470207878023805720795463045694855858234148274407038409254421471310410805009021948127763320797748834366946931102726557382490475289334532269590730673222371375063414553668563841877119090174161145767510285037228747668136000401043077481808252414086004882552125231435731466247827356683454215997156491465562067256082803396459028721265208262338134457565359307055908495016284532517392594203814469749420121662270984116374654871713161582604784832922536906423306029289130677104555619813794456944292610805578714629302860998089694911637630183875833790106633513072677286945170734623264674714784548688799228076338702986197965176619600972717866933665947653182928865006463373009620388493422187656853494691048007780026937689959076316727247442186861574604846523539369899185628506441759954682562757663479826588824484391723112008092516308698446059049225966828752607540283602022430065628701068008091180763329973235000102668662349807991117224499285165976067596559457785188617207589965212871650040383136359112402269344416164730986174650027355770446630149846656737779495865375306791691987811019298641993392706317118288695586880585645638702506475651160501804164225467583426553512239097870309198385807170734489730385252317093936542178286073911114408217552866903660151471601196772152018833453255102233010932795498462270347283154330026439245624866070481719825197307425234962212485698044890615925199016681163475872026898916697899079472482994532681974906078761227800293106285393513300423168509956205848844416841663727699854169857472119506688228070716732398625413255997088221019176415146814974450572009914449086553086868445042728353484501264543313676746201904279673418746749666335103596670127997327766256926769222139473653232998533867240311938262373223015563985052189348137325682429361183228686738808521649547052485791204369188225057912739193976664323955882990356390059941028706212439155220754724260888950698695420347687667791174613078674194135710387888247509838603705535758370646518730943478382726046341479338304633630286363582876680240040145279618394215707538187006899950897411441277694431965089345820561943219876476472449249034374234024513738322190323209314005095998511457203386421092875181240808071992877043512217600872703015258830213974279181234581483862395653801027689564946913443859436959699977721477396304565233195347258297441969531191329430338974321496918086597945462481432558424239819024594617210798236725707703433963966102707531939694571902354626900477074745025608531639830688425789758878127277975548729261287735106971045108703472689422982042216095651372073383142946359684731507802989435992604061710741320393287369845139094096069747937629753065498434649072815664267429175085505079963659724499247190830137042690182443375962540654425474551931653720541824543326479131876078942461854284863417280811827828336771926350893624050579322514556693304897794199678567597852183431452676895452852067460042092269262366271167640345369963125167211658152765278700908791048637503390555035488665128884312574878466825964669315730554197083192019067445875390468666788333112080474402779343355077905676246345873682519371640952300094669361578372947275007436330342497984237629579702803013008496952081598736134940377854399475104564815427045342459491867245240188068204566573387793537010728778542706315349693784609465876109287915032790085658539994224982487691553876628194356574160770575618671543285475264114115571167048795633000034030434579973522799870758795334805671815688360795710375497499875028504426455381143345232728878935039651777440577140347030215611996503544284626017577016145270421024574339722060274855944127396525156304673366707902830296140896172138695156170666213240476790149445921785743687629433339603237924654627649403444326846355400772608225558594355833208798085641883701026033727352887811388708602784075118891106244133620479044102721178973874429066536674745456683654117919947984276891272397767498461039683624516035754217574975719194800292881247224286787525480478829806656074846601456014531717962648916293102699095526075520906878190653640113691702285634381348821579982965381853953694513812784597257674653533804312022311236097293231011043573811307511915229701413973034300218945903740713281355928511253673005172544963887341623136970389959402546051760398706232862086603592807940755608234098665833917532843027544061526439760766678979989294289140360788546413162780412036871134984841630728764336939030879816138418879492146348699540245857084963403203929384694465175773913137220523330934241804539113906929493616889809475942233840226175374234091305855312807702878077408491424444523337424900771896283031150375141575587501683884096617204097688164337134364409453527934146248196004054502768425655464410441045884654365899214839830182317000826265573233231059110625481447338885305892384870192311472791507847996309082769943224697301831302261334021044539751186969084467624476473677738761999077278334442292816768184584427356780342558783936296292760881859218080498793496166373817359064835630141712210484080585389295663521221640109720178563422028083994996231835210491933759973080879773944560015035835760212064156217301511278594812438834652599482966755804377405421425838323022053409110924374807126416611435104005503253100389039462116413523911738514708960869680856290786814322068970575948727744525386773255279876351957243408823760087704014983785851586567052098790354600890662716285819267754358320177360062718736255968472314792356342462675317273408054685151892349689753904383529345928568011503440774409046092606267539018907680729441990422001038158566334297372430569181267169721477927793234934880735897096781972470810320185645752834291417368604357003870007018430029288748842347646250949854129495038949991972016815374231065258325547883517562825996146002213521470634276013545843974699159876213956473646719274274933610412241913657664442895078618462232565970802585557853560661758912363249407314670848257488999770583906685080125025803007833482096002935052766373889933686042431967778161764550915495916101974534177415124094607192005988208364774236628183235046930608708026817508601593023280483366660268326323807011460632866399378309662715485853437011968339173810932316882692579805187846921072141759506800955776836378787632876604520788966667708653808498653385227089807810020477775873034399550610413969945822515714324632724937276242188133210488336938285268961980136908124212612108528813542964529630779832888290997118713939757728840993376706851048024958470120498199393009100549375527551111081951412411377010279981053381427660267452978542329570738724219620452688290623116497232560902973464388756264937532083071656659578259585561704709065542315688672590747367810052850709734293501466023558756884241750406424878914156276784566165365714564300960482098446765076713847687183139738724224613133071634655462416372441000342660363782547577524250573905974341277088854673560373911547231084057826390265883222948070193870987975388402944979621651665592285315282862226869192973040492528971509077834962918517898584555782937332184693999493631867040376432121818106596644519939693340838201756817444854703726736947653740778328747820782677314229470296722078961462211951808456212530308133686448515990867427411444694391770666812580890515426410853965508561401892286833644750627370175942173556132516234770639542576455402952825957255928179399687074660016514405828516748744451026883213334577692699942582229378068220238849001737643496191703595548217711673685922980852189652943501043533577196807476529013859234535769721037015421870395661446030568987896966277958095282789921763402185183173953504093594442442132833918687507256717938021872013466450338598772844416775625503448698446968334714092519035767170067508889822795692083547061579514547540499098976748095700061180131771448907442243826601308977530185537041960137886579639321815598390326947706153011503312532615248025985136786162691864361571357714328099956261772260148346353155403363504379374225996481607433812236106762544085798317920622143574712987982318219331170073970862238211647096969819334773418057943430893888581541855378173918264499787250972790583197604269375813980865794404611336317616809568702157445825062628457623281256624099780336562566521473838335198735211128729218180398868413939866734297415958589413502209259574784701710548280011730051174281743977276460653170786741314072036421601032812684486481863251142964537008097449405239344780713620995612674513414462638934702206793823027923542351014919931324934215779706488143320175249334871996100551833632059731537012619466018707357148568762082209690283651306408167723538081203865705521464988662571046200232467246757264576980380760359621257304956641638721807970012325169724491523482303768729251230261549065667592679289304479988735399262542075284343222840893693533641364307728268454352019495609163260580721909125872603078020494813587687073192990453336166094634010615233507755705212722769946917503783439678177276564655660593517744647714305668224913591476257362219631660331235603593928727086868147608360105829646961621101718070952764143406487719326289319219440730370361737267830070339285964521341390731596462751233875456560506187115035877054988576451801707443508615728932626644960807382203013434283341159320085150444364364001568049454745577563370875206501534173107904754008175069842132113086488824672399392038896923930195415273668373210197452916203428410825853986837068270600439063352678348757914453070434004291863526625264249984075840545258844472749106699149352025314264269072901670753278884918191402153444615771404906402677680416320860598800232981826531676572679452466982590026201924514910427991853014240025676388606011853993282046149572477696624445438686120031680785527497488754139675481605983212087801164443503319502306205667331106485616013558993067468989215371150691365969055319439754476854562540909752446185420304477929350061008444765315776543188112081079231618339362844923017052492531195537307405799178247185353618932399378554413410477447502778075653101463140645469009008318841766678847476799252038594417211119823241453205351097493911008066255062235004057574189686283490113883161742560974065414170083563473377705929215630341828830752104771490598971304926916214191312200746866185774356370203049615379634903075189326650615785201837612052060058919569132571918953056568915647034843315877892916573933377468970949111660435080792075899447452610150373795394025257486928243893150246571624393005217219099068429549055183744410030067064344015159366952750270172271053460580832515629284929130617883650654706780957892405807721328740925098708075060191739537335248882708539286368672964026738600627941703725769543007215669257244009383485978328837317863868391775465453541213547141534436206143011170244220066176365881929796496663032103618464114836076836973980414363040917613365974013414899164272851946646690444161604789050776206717212030265216249762018104173019316856416139269215257490995678000197004866188129426773449221790863558713401222384053120631313647045335695243752751844665573365051535621120027337000483927326880486095761185962945622185729016207921075672524697290192718001429929344699218210608079904607509077888671910246106934405866534157900684385600588095423565018975575925286244506284217955668731647339628905667411769447231906552106912232914468580939786840048326113860601858019097772282307471369896103935902877128827669370164202271744160789616451245784645728966241568878056847013401850141838078204057352361672053836847306314602483269176280639116203751876640634663496333371460072957644449457090739434786426574214897558466695930706957074284203433611104966128067540837220757389486614694175646835236269165421697570761458234829923428352384636539037504150506248334886619955642926958462020079084122398823429849814211392272754965358178963818022981967654968030702154442381531204017509477320234086426558781035371304868293579627930230007719556288084023470495385939913510585433647952345550130021366266149734148043822027729609555247394275949071649716466174623357808745498984908833246414442073379595493441749106291875921275484822055378358453165026499148287548929236766903823718345574393135977484508218800926710680055872127060974424938827188305987135545023230804126733016035397960411997724245407553569312760171278315222657078085551081592984928897162070009332925886590292288183214525298078160936853749484438059544943458290304325403799108647212506332807923935626248076621468779930991188938517606353526397826630814030978174332713596739729195833330595312176466404656588405580754520682647495111329193249630137999241963473118659621321010614338881858205266165077194988892938904467635360784025855334876238638820246430028516479056591774755767050153445554514906864324106819009134393064369882699909347042364656545652003480974353883102011277256947406044616604874886519715574070517773060693519771384071067914518549867579700739317345932272820329010451063283364024534647020253412729565310738192435766047329615214795542996724510460812525076490219785772719226483777769284029129455334440191361394750775484132804502852041126017007409199670037941298217635154277954137812064475611233046644574752384047538327785113065256973891951438890272466515333594992056999749357264402434134791265226949484897383818992818491099661492102615693308879221629399337334492455534108591512798814567889999102402107782686177666275077186595508790684479806191314919708835190608845069574050611835396084740825646464280436175895385511030756229165783907701029065502206393539655506773019855163820278372622536253046379455890729124021611409824323013595710884012953541164959710891404868935128468001375729291374599411419336743681691786140906828027431785906748245246192579556895507759135604274588930385286139643255728495068560201862463924117516898181691257517182049104970031389968173423865699158419567052523657975351211015616139551027145924405039027268281902253740839484950979329713857175899825680459685753267734828833338920278689816085775847589838258298651492096357272047348635773943366887305147756025866147963761753306970446078223168109660092858048310088943496903869143643806753143283904841038962540467828990771033941758184689543507396969735349725962068343425324183664025076462775201003293302408697769878098692519475095239740166523528018431891602597136264235749530039730992388373305191499481860044843236478202968778766249637924116045769758590989429903711603896260328072219086063087589683268810716836668557026467151180048886020164075120032690093272918155488454948868402598802357006764435508583124704070845999415178213568468018972658184929944378758007786454162738887380136173730723073239162525444470090001655169715112312266248826806069932673545892514325155389185522091468852071983019129122022709129528086007611245096933311676637381251538237547912914868409841095071332509595481824722616824575446571343900813270582339482462141275717321276062873336631960604947436918149729774364414623324005353821149399833319332955186646804397789775511246960768755696805955569413046176030667422599996601347787824414109650234974910738022203680235830035731629298843320817179230749535524507521395930494585393067397738924112968949240259534949504885391904913816649086470886447111225123433341272126486380685289123748676651558211828014517375443832597519512493717823807300729454429107437444156808116292799820874216928072616526713405598900210543458472971248391707476240669671304930170244100323666354237454722613231870430772200216221253786147180895736535711872885990942579048355878524171470649351798787527052038652902545350837071168656447838595530177762769254200625456758005826936636296991054671456381526122000116529518800806302310065056418765162764154699559802248896373495486303796316148029645317807519082490184743891465576771990096731552029601592277276799204093023560537272972550680012185341401266299661678944205767941443117615245928315072102167299769776298592440625916229204639429955579364648947385933674852998087794403543947894921299763563866907229551289352363520858147528446824809731773108516888652951003498902808285877892713044749697635423299668598590905893749157038481384601938259649985215186685887902676118204082018115715785866849896177539191591447322183708933017963956280003899978710207873034457046411975595466033268241277600561155030698315776287310636728040372988509316498762226793403639384061881954935763310181167132557923387728153961103366274484041157658657122094058358014157794003845853016875651698865274160667020283051668271881922547247163849708155209174841127047549889011084816339763171147860057643618223791886270523780928903838641168393869068610546055168328002292083961456771969462464268019587617848796151272978148432495539332102728216620844662778929636695378398035459187503950525203314747050111118604943239010878163516268772519478191716701501962766271116458348729946246994014925160028099378961335477557914364855874597326815330299114164371140117409930731541632828273012690056688627394938593292649011682553402449118217008245806260572834890154117463308156134996805096541860782680046207992542549753808332093530804473445817995869073668738077534127357407494848976063143723794648948205171869734265627324705145907990961498608901622622575394648923254793606050989693227846578173399116002061270401163200565821646401567294685900731821740260425301311060934072207629579220216666386397108768235959450949882027138417821204212788603618130527925998851993085989976480610567240827577349818420339065620118575335963985675365204376377640372734626417288180766626963492616891002230755355047737892340500645294809429437136280588338282465304468583653368820524460416383524122270274194572489212910855763442088152784912190203919638371456954341621901534691688638731252377301565142683735262904554819572624618809313711999017773653925682657031055642535697123742175151156636092394608831332693948343105133013061776779342880244395102948657476453079259371399367299511252523248798035080064565495470071607917791226485128136168344053350138388529260628668789379732922239288321750180905106461121596196899824308870706298359779846449930728581011171379407900699583279101938140458490519190055989363025344063164815835447219851205991978027196450809135286342905201438378954754337799908077533241840047871527463111624144928763534193498177071554359616826899345510637342885116936772680190925780494042592272702947396811885877593738217098383507281590784894772887925429855388322756163587046388842588986383535246305759421051719533590208885895656090548560051889715092677066481939163064991731361713431871672816186260824086546778915490816419554427715853711076606156477981969552798265620852433953464136874700996353209126751526465244244941786461935809170542290852372669776880001679472190929642108134208392869885458252962006837743592935898455895775494752598712301991530652814592022082580124542148290378911749061065520503142073351610832044197885382675164250650153363076491199200243088414007332937884604559802270366574080671221073140442017488590079616535134424262293042062027018334874154107964697253795935261128957886244936021284610055618236724241814594316904195753689533259649939971514931803659104199590075673765734146062891670477689928006986177071909672016384624298430625086922861407647794194156262973248556643223279925138249382653462814255275852178974104351724821269255905729684114412345267616928809143990965796220437976548357810468490727448767519008318866332228665676945696786639063335308182259521393167033120232918141351287909778895978587664441032723741884740180634892608892468319381020985735957439984981624250468840514998876791713314861669410680019500070366684207627849897101235735744914757739904098112359100505070681666034667450122259685379519201159777550281769628614948569769890818407636750727743557668068961465073403258994011512464408771602003310611775658755106185824136738396588572064780719572282160456604945811844805063498358064222293333590895839415596044350045105932886604894410224089159454656514047834014273328755969168048297229782559043948018021864711349612672083441415632878950257247149474357914957291012123360592628877527278244390609849113011639270816456357836959658334366044782327957573902424237157886578025696795130532520901390353593389093755203029313358590955860743323381430765399141112361755402034284196034279997859550964962120039364239086269888910085220968803269085347194945202275040320103378380560854530183258214495407784973051546683343639408130698885769625211557161366343817862768769316889448879109300199618725183679127798945777266937938614178874218364759875881237862897684104802367474378921339949937523308307735950890836956224672756929212150323401946878681920069555338282198455707726044283700120367469716513878769835683072323896586966198771909358615395564798763248891837820325241936628405294913470697989394143850362961597651374067214290486068347020498246904645437740970857609638941292535618831632321379109018032588611168015482803512608772074034400407125998145965298774233153463873132534716886333654910374981121953993944167760034197025090025006218827494464768380378211847714161596556300944622833526897919866372529744147721100709116957073403488407080087115673862870869251676933950550877537737633100388590385012465010884942095495822875925229050485607578281635799726536109304999142200079631377994973366908742459489491776942396836732523674147296854862932562050972851493906445615861431574888467718734526650439760560925888113512942070063875938299753173075521985751588493184322647326198027190889439334527454893322616088630092383004824605936017178620776430209642152787952639988903522250820348935129697985408891439826739322432990962650140055931803617125021505528821634417452331119986930653259012901446412551922487792070356229038462193157504404989715431575918684019348498387497361386164149917972619121347860779960484989600873444757152285103841308059853616402810756213156172922866002570446637551488316025590296811642992291848964561120676714365810319354658663183700348819843286471891067306374351317801150541553973184939064725923472741005213970197184891259258580456273062557040247453521436538946813394389797392472233990814861194605002876596859940666692931800579883746479422658170755428144375141444480030203132695773029562678554061595619164847834000420716741615993673477272213017040504885747302668121178246428283934973125923510627964920746638847790176160972122739509284016751303796091377041834440595535449891171179008266660771977757500401440732882876895344958642740712994920811978366745990192836966390740673748676492429599091791317349095702778315786402114507105761613778740904583630338428821938820991607607656665300477772668959534140577454830606500707711263909181314002101546945191795596129930146016232844748210948548248513396977052548717596292188065875079102771682020574880444289474739344457369037262919735754885555428294519321909536547500537880251510483961466781641318541451250922663619615891713027033265765482635954367830605759177972645051207934570849973881363459505601135971615105813870344250913488220138719189408255724369013411718556709692352813116641143659670444837184950194153446347502193295844470028422806447379002911104232566762819220581563563614746993129437386690504952773785931181143011286920863131488967165973304226961413380268760732210910179206210370916365868657744046045023771129120187317549722689332595530442489391420147704765886806578411879201625203243312632615382937534621384653094066444727458560120355895893596214425542129944081615069353905623728844611558980262372384455019369245255038862523593871230207778889760065655241020712746919634756328243466406798231224744052495637797195073295333889012927726246349509404356233343691057313653456813458750610730466605188707103112314245969416127953240824323094809498854316517418291182140810913408710903516773468919719734000575718371355482607644505005713404081959622270653502318426687490759844847559423766834750534249346324438714655463381064031342665868749129676289004318391562919159906628223903925455632172476856329320975665144484735793023853600129467132910262488700961482355831975607655671212510489768388364695514571838024697086982501198942860627600008252337336719502816042714002944397704617025446593848191414818425152369544488090661013482695497211015654918925653135289192110098192997257007255644669007165059576072069865371449303398217477765035424580100020283717153885650409436238185927360095152363800362131548732526723536334346075257080553864110407579581290916434394434392879853838943000088303187797598724945421804114032296405606481827940986314589128231205475928653538894760426485657798894168024878813979922830725144335475393639283032872969243439967288182307996038504560869573381256596567393227279304157560335864136954702683558975522698750254341612395930820894200083111143545504679849157904767307976997189078087447695862504151283446665315336649098494099570111114816735309460007406514499220343725569849893915679924275292858312023184163033797126916998733686588889187720899203296382394946928096716965335189850713770444241932209414755635051534512995949365405980596485875166007411187541858131081571080266285158620848100151748444428844482118018732095161756078556404786499161313382341264406220717998164515248110585330978411496587077439205538185423339971749739945810754267417760309962256571296346382349477400967229078269865716248559149496155659354593093476929611070495309030468933742124369596097773232565507267808777538439394098647436972081739919765688630168421082341460362714094862669134420164095038166224694069182316271517957356911553583351120821002177640618839894673391312414537085262993474991166205545386789186771384445975811686628665565333901919585584616392732806604009154111490279855086466867715478248334309134285457087141785692874781920585654524567958594954394451596400755647867983370876270484419723269660833129054536653159707623717673679020208739811839839801310599483023300469692821042425629961447838097992685201169698790357567199434844037614090385610001637128100483157185979291765488615734710900288960059392344085673096433324678308888071807877913615268690685931010923704323126722017410433078333928395376625184983577924414674356392824350659288267225633423581819325230656069619799642351498476478208093113355025835391559359170074939625409874934696220405063578362911940340365615233864309659370232191970948176029293464515880178057685776640676325275051517589813964618128862586307345136166579871819855321786718577400594373411204330493054437757334633170239484025585984056374974693340993497793121615730487199132212807870638916273490225268994011148487364883007686186262088120800410966393246749279656004978990096115353376974458006738376617483616885620714913517441653484490943320416989540979386405354625627071198524142580405591397968516141792204491029099906187151429689319132668951975593825201235984199078675155432925668338028268789992235751020881802285610785926221665293678306083614648356134394052874979265983785846826956225296135957772441292866416690621646936816298375872008352506104654978449924976023711324589176030127227924794582622964298308019662836035369113825026887563064996941664209080505924099919243715805818764508823966213282379765441087441556040534601054351129372042809411885277257824685747055718621639076984241624572335635635608021530040391713232282021972461987327949098502359928528863935684945004843780185639097565999435593442433710657718931797054239581247302014453314780222969241736191844532528104882248534992786675403175965494098863612279257190770367652323765483366972610462932959379693733818512424051142621479281229765573948931675490847723190074453176362328040712312203702823519580899596208651536674662951020238059387924014179977768607422568578119933638351932970554828949256230260239563325358496195493155679642617944621252971517967973946920667747120636585095769721851044710795172578269659605303511799882605656648609952121999557429340350495579672899546412647268520217812022550308639648126150403344452355131227271764899280239169579433338657592507357156807005276749889954930378076246718808765669792897661168293122626709408016861596098329101538530703367287300751145283583710196810636715089454905603590688449066344640474371937866758167815979730250626130149480562619941111002457152978813514028460224244455831742085897016984780990265381810053112502767068332164066787078957998598003848989448986858862029028590525347014136564568713502483755855898243902887570113968041754671147857081919857915849550962968842339134832699045288320584070897874116577211319332697387402940438795131553708224476221798939266003133256311261139383871931895721781109201880961036982907019374467480192746689623904239049426389755975478209656281526247741708973847988521982206285039068643623244378124901750469623556221946092715888679692796811982528589078571640140267323101196550126271526198016544798888133603901188420478553697308764004760338648572479641411354507291896942105456780547743730553046703422368985640614350900463780018300640020212930310963254889424417687044528291331673574896919780314650631223620169363847601101903809300853819861211456049475696079971795211121575323022399673880481995534053370604981358501280050018799963662921446275228368646582532333416963468328000792330403303284658150872557113264330527067694154638780447979021569632879136815113940148087998444811004770068083965009862116179962616873240968553429776808922431385230851460610120116048068495857368538324724621508839588070107293586919904679478482609653938883049541663357114504674882700077500464182485555174821471303984361419783193693900085747629944713564156069010162389086097666616641960066986229667133235676026873020879038241621810478546081529923246815036364471712453180202167261699971343069997981796365998380738390972060036655013850245599629665834867428560782852219662148326228028077243185263457162740103419762901151400321874194013672015047086656460445501590129532389090738290552174126721631325065748037452448741704425250735316730289040701715651510231967646130097761825436158476504308021682679932451017783159794355780309120497326646150133671296155678529442817640837913501043012908709267254613667428066688220088419807329614611677510565008142030541525116211653882616075317953547836438201108780050395139298173668990021083799008373251613843545853388976917468142308473109768793134330347069588133854735976276387981374158280825392129252544936805807934181636874050380466980020291183264648853426598731361879849608749958797505632058311526119572601616934372838286359738757313993293284455987882289981129794380154170008710767391191620763043877999723917523301656953407159443064367176476229860083646348020400457221605291188678752174136007390576736314635878256632078648649902437785815320460101169591523447626855293717469793863528613632926406080752483633729962964765202495237106606952350922516883619345562659857798135396902269712331911204535874249400154949674659648767700048144446433443913112881417638431818113196602985564431380851419791839484682130003477703235696953422893700938827932574906472098589373364646191013301468227066572858854848254947312875844037088801848888803670799030894589521730793507832013007588011683104409402355863138746478390091195410421327556933792077529228685159214827184167223326013126031695726180866985812290158430682726170609555194979495553325642069339059549154927883458672603075274192374385536456193877999094376621320213359139016070280491983582692969245654780363920299099687170950629884126793709472473587942444224412049112363640101938851333884761639815989760686935335078195035559228300495195207655112571983418167294750091957900697285699986368770299399178657927253342920267174700549346546333301202773778147829783652741837823657844070241975432544443774246738230158444063357168838726682781375934222826190478171488202877278134530497854150085953433018431022079995068528241610380151715420172834626777963034707995023201974152801104568233063335425369912940158972681075867498159506075975378064471838983055076810410935947170367006716501066966648941496255985662774917736464241648770789061452990449274044357360849975652999029793248292547526843515999988975165992115830614297503959827338179896873031489169144121630175082673018461241624200240673384636312193490971496080042474638520171716878617470661748502167437344987054374795434814492921965629718856100535132882843073465496179808938987821913623848703888079840925333746438956224590765356067216093477709141666107558136154661525093791490177460425303903571868902618091597248743309887773133081608961731887841104225999517049077662538379956221369274422689316466723647661484985906092093929742504658220344559345261403387296864780653993502638585324603271576321595693101561542878571664924922256145940015216258432069002615581413579661735993293918807200112018715001013624303672668529198859301977964493025834488935156566039097821153540592712890841391132633515459200416022845070517070583842457203002211465823343666330146121208389456586213843808125012732034877459329880782436169417694507188203348291503072379086529697102284652690223152139449429845886858869621607320986170362360053272449483678350318049128033100195724223622551150165338106872788004113976995208086496494582795274742821063517039713279420714390068161408131938841899479181332597736638240496409852515981453116537477553887113018497980171786674161328830338476420910478938832345621395001625059826128561621613130426150192907216958555930859703862410901141073404693909883005827731424586295116654067010499966003895723526635661572629088578025522919485018972416357105494879627339394521314209606760250264175523500046869301437349871119575244129410317052084417431032665324939099423818551484256193678931042301488584179388732649643779191508559061933463485195491034732166774198391573495322574668468455189022397017595188533823397252876492571439254043876016059574366255756469903559724125875680892324794891828783965275682741298662816601646550797213754624213313903371399716032701280975845549136055693657397490542457018955799464937081408385076120597618776518626335037576607021580312418938446555175718479913124244650673375025936770346594047458837257890148645903696722738579488242475129034520704947330993789910121946325844134015624202883640716541410137959824456484707826565868858104974738840297608982247932236862855041545048797740620582575957338845643547817632968513833511552553817596772533729839772757489726870575950862260229395208372591396635662449816527176526330462664577797244471931894208604851930658211733142149990227735942124839559210741850509186712554277798887588224307078654919299136978913063215044003675926833726703505285626667890477801228730144994549273115685113668990561373225481665508567270155693011278605524876371202534691063060475264755025161929799549176917350077846742073867371398070357923937097257265578310805203963028756973436864408929975863790451154909064946626373455890930218381655591546151245876621299025401725081871973847204740439897543727705364754018733270322860769535520870933646640394669912662962297223823208684435475101252153523775863285469030756078976090760884658684938135549566669647160121088848908719709354462170479628537870739119693807749483794165045789801238736474344442827635097404805435743603040261736461340321561091192621064243345893430581733497559640574600257648288220273486764049774079622769055483310514317045249418624870211684291302665569554079322914095793983838455863975059540433973501412972228873934904263453049357275900138143128501930001117755816396688668282047754454308626408222800423375803203113909424151178492191659705551217652904622556931129354029045331559410021462186529663433045504945410015417598877912563383790218366024438215286934571070202846133506005350352034223734438266215094447389280128746240855177998811371377921709617561099821260851975486483165721455670498782353052815927907549051560056706895907456827442394701100733290516066505163322859143159379580943960359084220151239709157777665287778795351148595838370521722157817973068824175275661633818292665806632425159957408025555141242271608616232053171912799088026608423196488154983900385498428810563009672338657937132712461109975025438169256037648756340944896628489889543108831150862977919898657914399765389579944785798601075500302197434910623575290286347669153624550655349781101618826157955863169852291399079505718866324017021879100858941194270377397411800967049171486800288962584206776728975184401748137306508178021359645391302970455300918720088527217661125703426653529952523634010956048840305531149903360036077922223647112417309736514058786735853790269396776036871411047696016233215045813224457888406438098211558526955509521952214360178931651568524148285635810704660657136344814630691159926689316128081640203125045091457790314821843540894005668367238599275094346689382593868119043054774316903701375695189850447133398567921900629930936965625325759543127527008063145058934560760501109829212230672738735944377594162966329135409486424632331294379118787329860804855485796341336400902410927336975817421346110335008899735998688691307492780783865431489364821242156035265414701655978870184314692262541573722739833114417826462218548532247874270223602825392858007474312233456103281867771037598691574219786836902735889876932997288929759074278092387015587359089951412883924831928199244597842155796260159895253213910936569268462826675672453480332350444461404465253709720822126029756567460945005122947380145588357950353182437388053341849293374596346193245554454635831832222740176905123872696988918245167101654859011441611931753962330587095910844539769104474431897883755544700060504311192748490874143799543324533527411615309615011042684236410153212385079556962145971585950778047339082138379151287157802792172907316377320569326600227170563495625579472888568947552834244319825642783198875901462720707016553642632016740712525615091039212303182247617410834013469212311011608264982630143969404236635254272552516362966293289690776690478969151544152357315363352069955193085443886861896613985204421096062548516607243741921866058143369099311925969958696670820025688093169588240675834988831109443209343450521012872992514507495079747900110333450896282042763922522479897735665922324013613439103213301284173357960419737012239375766202727033859428031529214919327546651374004006902914528073624306400347050181307086051769413419869830489768710294001016351202272420502721611366837969571105182672428136631350386451122176492204582016657135731718642165796654817040342214606381509075635536300745636348987033034132650677041059793839636741853937623586149864853827985681737260327492091989532050003988748546475618907271289634581810168551144092011496945743348446478311176298380010186225693777910214445740730744425198500775922581702089736961033616497881580446034058420595547080674393429560639482738598641694448478681046810567454974924297343857569714964226980107253196077179944599271751965250292605574528143558863356248114564413442179468721359297143074426126472737533706816467876856057138684128561370855809342752123408938521958587353631871826180558197011032729050700597424041406458002479562900152715464365959337100860697279849924855059772489309560838444046520302033966756528585980243004635780980482084034330114959469221314335820107634180112952711415184912548763028067867134127795359837229564657795904466908126998478839692500251996861830698664824542495648286266815402467062187901427166564338815116817518572453543267159488126536754068265152660352364180026288906744465752762327077804776343472414641163878540834585295072992524433773570290697146291435917005044710510879916123985613497618615359061024278612555999277868230445343244550016027508131156197415405222850488480662463626860297740556700157428808110217714689156687674961948828737236361210886382627016924742101520202473814523312463341880857722906492834954334207443392668468830323013423530324459795763361273996287068809072020503880130082652325873425007579655063192238894408716586406866417169171742483804981518275976114498802566226111416360040849164739875442548596036181926908079905259916419522036490982504344876234441474172844417512011900307370632274989080238494034122220801324539407322470108949352936620537613019581564432898323793843906285196364262461211157392828415668024211628463982164959277579238209510124066921732463434793051036841086252238935534478284330111372053971476495366151022710490857713794752373513148768343220743953894733331111547331022465849215329463311350428908152451181742965399756872513391953170379118707746418074854577903690242972898026535399151522912232945009094779842840097241023888644341545402268023647520330317849836151108110146836542145864458392112136476123623488290309301047796629557212546660334838952927783194468436315422650887688709427932558632062152829266862041333923661883689124769842461919657386250279988168291141412556178278773377554373231414482607543780836812488247270071263787999637572586364824526652570579418379753409935281312398619799119539996700563047317695032033933721940434700989964465532135392018318060156641024881099209333110477048101565109868083224384558805166749088365437125201541550678531187390079206176450133628993198218644344217025171379853696031208171862495344003895658729303007474481215216535723133494368441618168824068002903903497725008767263846350976474070154522553068787828181245077918242395730790504149498835004354387039193268234103422221400424791367042744509410336321934074872221070077833462297421488571593041430678048552515429997158278411583623141253705054556721957221298368140787089585022516873747785307092558714304161783686233183656595951499382832296997313983586681324156681888586764569241722881071422315540517236194871858126628190178211088675524240949004564205389422401576978538744735456964162182561910845812173765053497796436537479834869563734614284673366104647815186115269344886478778227213148980672504359965914351464107848314716978229451085354180152086327198107489103706045329604092115323160020066629176196024133621306743216912834901251299329032475144590022422993674768323456699443079615732092037887588961594338933964798302982401707531618710727907297554479712434772273870533577639501942309386122155963270520812515237013892726699974482099566478520759740627326377227547967929468054034790745023739310107994392967273699425777548052760256032730675304384660813227943745240819229215124817786344782784711806596263490933263490241032335776603305995198070328932638226569540992918422212082314268804724560950421062360978352504812353078655767797757706404674060078371095741943778936436100055723897276715712233048557892455536538313639004380673559190447765493410168953801225540242924195802533243897851154439257264212013757853316316348046973526997949340390195471574733670373156099657330595709469690402549252681713132942122792779010424765962890907751047976718763866152544310824240537191391763980696947496635748652550510964774543768897749739149176920187617422035014216044856331527481082403325063651943159912902581614269623373581576123103963979919697946197647344779347583114095545115503116294610205263244720359253238777169597269602313559671088721701624800417514052790388439072516789026586357908255351815903307964817579223981010935943126162952298350388549932845010221265225042271463972280940106867154257543322798994522268980976112128845009790078338844306608504663981542225036446682131486304112478089089705435497651124052798557853445523790638341196373680959840946315877540757668166518603541356481816485561066849804571233186905887872922643925536553690844920098381603696832952214175782789592366388653144944192139006181152500223672729395771876582007343745069879320600533783924548147351048643495277735261792266298107503152143872875435490091386973364731107755387399387939256176031704929079661499063555234304076989980764971631853610431436112904082583245031366308657816921114007001106249897070331255223258979740533592005129894342155854053786221692904590190581559765206661559039520094708303434545005831179809452419119483302420183849803625003095917516866942624976313973518619544556965071748413685077909659281089453118278378662555666982772087410192527046169499765406797272312711717034276122477224246400804474110040528001057850326821636231657390396581360785346378138766008498149968749837571865241110176077524054265161694407238855090101090590303670768011236872513935359917662732592728696112553083831467113810482960581376277079330414238102747242131589548382611427687994041692666400658783829664062245815427751589908411034093283107396973164237613784919878433472109045064689315859421506928710244620694270177406126409610864561291859763351783695978271783623841153039562155591158153759001867494315561471028643951862394766547275663078765251682129915840617143778963473166183604566936311056886923985166325849973411741768424639084177188790986063668829824650129110847813786234657834824618531995459925319516280080488473506493086089074826720565960570754513091466243691507054888498775207165234773746049204470356296653029955648151613208770303387323391788923896800359113470050371337545993929075026142659404203522254326921771382541393589269388798893503047724760236562988964707661535606004263727367434269269967936511306125830668724416047699343298473876467385491250921656326598604216566613998554933082574817403991854035106699081123008234249216477541131897335425392626470336056053318086565856210492898045411999796902033230173301297489594061997319665894828470542771639182871957721287371545241057378214740416077665947016470062281021401964098522754040431847781241871875302352726318669074548234190477919374940314408666583894554396621679677609651492388466197569367905230156102174527312131852372475555196240654063611158424037928910384457960493243519730770917751513968785571996419324676722034690354630614307624485534874252250984593777662726563764373715048717041112965713910395813762587980814809185122749001204858410065055175589526955636386396304025041655845735927284134935134204753500751296984135469841433845907441979314670888623609003977116346557998964120213891963175408735029380496677248248170497328016902941410623024861080046751635430487494611197898250594224493368630393353153514868414857096956119220648912359259552375809751155414227451676790482621820659424431803872158223468971051204942269442354019666795737962930068649810858403657412984446120038753120534290901334169124704025739370363771598130555364883167879499315736306914767814574662038424468893744177910960536892732801772172110170711778975729763453160026216658151817364212800785144494192326768900433949509445305378646757159825914999171689826628090524156328651554256891744709954671498071433466340430768485721407143092794403945299629779953664697048104778268201767898356092354825290673543242627481605679476487549808041158696892855873075871969461448758399073280200978900891255437721804789823344682163345860091165794704719789110181458475638059701025427813886285630557918458025281142415380324744524328781900384100135053537555256448416901025409846018942450134853151926194062728809599992585232231771254482369383426812355451433038356581535986739011545889392297061151070743438141649902244995964796889166881820596934983714098841296263168190312958972071703737960587683195907122976589403434371606287350315753331857608485058293267374603895791489718039473153664383301389102771625827142028363342713170381299935250737755283349675781502348166743801436453103920159330619390017958980703759356417248852910418095827515641442403639747750105069628954586529812523320963792409495069271008297618051270949756435076090118327530069959452721409135083321630607374809214205736724883833558762921032948601086148548910854584740131822118453775569094571364540954074812513392231136845853115043010788095223151387324165392789876349360660379684452152402030937200670263616585524910646808580738359049361736343614539590441525157178790521430316073160837818061560563380927783601421124697423648001329737369671622105461570204932524682984677632945062171412124095217270844663558971499590461487965533963226096928448860893784018987395975917117827925988800429192918678951584491147989775689472363532661864480967432095485701580653583525137141891497522726769374341679401247490174837847871840685727788683623690386147933310962113979393962564310084125101781765148358939706536827512251627891766766953000179881256052280119231357983233824091169309467577614541197760212407799057250033420932016832337394125150855449070875683943552762749866285004225604072205036790325631145501545181073599451020521434717837415854376741415166412466286299396569025395279790032485359298417254647148205001981969853619516505563970015989810290147122371404123025432026852993302410471970178021756525134033630869611902801632912495973315495396546404200329153412470383240073953388696526930400966678363190337660913908118740365406377526901712789155432404406222502702263633473987714980808563326954354251883962064229526132477980176630231066735189795936125441784524524371057841239556812953088409756055548672681351674830936530477962027725813111674943846998040336211083554738639570908559283510035826575656506890096508515915146997442480644025558247348583033785375031097901557488634787946675088808188296228974600096538494163596194614976233626692213294221249863505187365025563065240275716300973302817188638855925779317393010432922958530610321432830402379766636445291117483642016010872443448177288694653918021419774750527536771988967814842433004205526658753216682182818534336777863808436427253775211219853025051008333287855747748680449368427239691987158621035178830128758402144898494025240168215967470402415116948347879507638974130110554384256431500605664986405067583836250533900243181919102580887219407055883946591834422631839992803183842970943724326234173883389116916201325420319961653206262514867974228320754729378920505191455815299652538564746785437836483430375939742965426741858609703726191074940816611348563437082261313850738391636199960382703342469560492302473888757218196239066058409981548904860170581963006738093352396211441035835105879942667497798415177524111188164282091926973735619277833483930270809227666824537687377080252582650249555614543209712358446548112755849184766223954869445166169910257325262630715030584008409752581696385712255753291070754730991775089063411223667717115080634644299450793607841581460763065098448458646644298448371092254029321872088659150373968214639059758645227161788456478579014528544888246033011748398671723212181913661800070755467835005324342169685666358649806935865321974175330320131527468535772760399959357730308741540778189718691959341777795805528633772966203629292164768818303759828337734805118308526755767211532245378438371434497682018973809147497438513248423832747429054916139103990905378690074212199090755878997712261539001616868036221221266938539042794121497537352275604319607806903488024067098140704604764688723173143275693435570411280351973248622740437403108970594958830307390969796698254179603682359121551114216138477197515478945708455028130850602178867133634120767545408744333112930044980702852481575396213182641532906038605159491208037386204457067810877541567380003793264769936664661238259802955173643325759726051891707873922793381943139650760206339864001303448127322774525900768628638029318395215746550184595523859805541618810290223992158232835315430742488061929024348024895362655184351545504640953775071124004459372761952168097585086254896764755426822943328917655342100083809384271210026316058821310464783756285867996831396165767062902904074727256289729388243963663695183394190467184904112683890637690904831259398620795248560811092462116115837264867712834258698959061125974233150639261107640436298203934836176792947458976952234078017898977382205400932747789870409818774188985880476685893179176939595743123779100722985044641875321104112557563304379570786097661662208655842656175398059339282490954149238505133915646501769137471878519124551898568469663857979970599376653030070697626375807067277287498776335099119966523610493132992308278184382743893306190527459186878193179460638303250491956862309324611093514623869808953572807664959465507823476273790689161504044297127920482313929587851257476830066998622614962232888793717368215197289891086348904268936684803397617683473503428566820563224241821501069957880084231881371663015274803562768863612411794070754524663350686155284190636401367944506349104386978547472471868246539127223278461849288638935352059013360858123935694783915497265391132151582645461397945427935374056339607019137631489804200925781132015368653666660607249624788774155585995597710512197300694514937691744937996961569933241724723078329382382259168128737096728742060375192225499230903624065994615855003146069084735530165742540000857986017724737279623074976522019117576916924543808141904508334987650704810874856803463362087149593051136205668109382241772716739863538029250191586492309757107306366246081288500204757447345624519301730606813756849426221313390053852233093968534826716668111560521340930666141164438106979109437759864920815621852098077761507573469903915103191196133193232272556062758509596626141152299867975526333803983966659214283930922184430546296914687294375269397486496096109382509574808371681206038590844134284022317428124578904815602904280795166844038887533842374670647363373721490693285079142143668728334931690768141450999472463547278771438687248754208013780972699758169305772777530423215898838460307908198293321252498572893347157362748643995730882290845380755184006457671165630244686478186897024321613068495197654227496663564125986629769460255753787121078000330591888763377299197710736685702932096453897890026659694415249890389687369697220532971648527158363969541721953813486657938911709433672744803795281986850112947804235047740649762819152063435920887898037859557226950795133900985071257915785594538558167337073594597549854523162437889999122214076846119678895929734145714488941820258938167569000497730310823678183806304871349135917294772178007393693237046161924656377579767646998906188386297982629995238294339406989521707704696905059187768137517304250838461037720282275091236067292497592612926329152688175248055085865535030623768205024109159816629212661591762853156438051990860378603091868718352592266233493941455634337367892644449354265349093646606616654879551007667976228776907078726486591959252710804496163838908471744522582386676283013615307958933328894715474089440987115526635490727801347820254833489079221425684692183025436860832732397643537488073482258699485098421579709584223602100607862917189378108848558853610790250242890816529799251396398134714358686259155526676395890933988578555187346337501587624195599628582236488144036626809349589973820657635034291077359412897376075087740527301154163626512088710790147170779975992270681506311132342097798317598012725829205511384316448490555610070116813272026921187394346816807096548395690488652895345877384954833226423171610270112851438273397766540234213597794845153482839596829977526519966563004376656470842311034324428643881298388174666051228755971602325848288451277467699243589507618714231280499312041520048403072088685808496865675945126182418826903884233930138369709811235991620706393631988252118800160969770369960577928354137342071578995163537161691491517348815534073656826853202642807840604396862414608810040655115998327225432753304042140906028141049226444576975004982333369190207918782346209375082408877144911508202781663494848900841980155066603895526070131068299260672605565476330854354580304934209043915587883459914111067578636599153126838605534295479734232380931991597110265305784197164711828881596797296824774913091780050835939267017764085269931889120234509009570328461900444360704667505200115497078337781691004341958308835101051150365666672803384826750997457136818729506394907860776425758639280770032157336104438691918145529755845050598278621154884486312979298802977659286841452040108353512058077610766832542987557509304340519657627484981721569055551312109494557439944689493201152533810838986148324310832326173635408898514219095953202911342142786378522240811914812050824309761617038272268756962599069354132569148788091853826142983479356885254941146140409296981079543336696683712886786296613883286770867355088027186101083539990764981010180161142934140454152521557325885680193798800868585021439469944953826426960909486444854878434677639965602804049121589144797069412109202209991409494920394836888611818724708571619435811989752490700081579990339358978880086205739924271713915213673029799805943942385887769666922289414507642888592996366449260489782867944793895906388142575694993326808721149048025795176880113217301736507437950308269303612790826576154090117504237232584338183653201718794355543144424284609099785985137016994187397390847208562185795958126714675104735045857712674361125445961650679165747732500270835860892390599567660731263197420022575093394055007791232781320072943943925351674581882815308959837307202314670749131836095364644452871704012813655017949963152631477820718724004786084307325407339342350909951051414428579766073907292200684944652692947755904592245593727045596274564741377464675891362140324981595001665906096653168819264256138882211240160426589017606734967895598346386220349532117953484444732036612738797147349209110887429533363655153254920645803396833031898448064381599110844833318780163800581715607783943711057649022343762768402732425677848035108033616125563001137193530597154269380198794347592159625841837903159237759646417719967064273523403928270390984585037231184211310307145787600140233325448191092557086640576320984390932901615141902843769729280947716937759264034506391539171320206432276952405740630700322896610122519869911820088781615193094192281966434559869722178552630130084229802939242801066342533363414519047043689675260903435791703429514639192005343186950625665456351172919511920405174605953419219493570450279443368631455479132244957050932870165967379859562079758238826538622676384277172654995095921353718239503475877532494281079865466521684119851074510277688753191032875027610407736958767525331486144883215469050990931685629487675498671758990027528359217782001575119251177803656288865215892084343195429746519266211837298653227381815474562134714583672959109112001639250989189918557488515342849245210017222970456847368561449083418730709138090815598942987806990684788568773102091376487324273405197317916899288855079611840391540376825035116614097528645626952268598859551497566393604505475561335664775624312808571059121986576745131060519273717377880682488310828645489433229709739405604290866638328466596420850575564985768590112653790986037784791187465656883492412074705221411536860344043317614204126128451389805187413476630162937111055213376812930700848723003128231510028213608434906758030417208175913853419669012148135404529023201942872808318249692870732377581067779503669557901866183748025582635067445805099546866727975638161608413617618482233046929304013342492712994584197205319277156952893409416865533821876788657571562031823044305502845649257524312718697185234824996867432277656597708161647979872922457081154256943851551298949890817332938183220865422816101575424146499014525482536615481821292115777010357578243555900051367552788559640916384298896564954172176004971333473778516133945193860709092233332957515767160857701108865897529737703067017833700184357962267948549456802250648377403741779279620254014457002900522839249175420668300748317632157691896514160350440457579145129999894084607739271342868880346925577771224960054559931062408450064915482744468472927017760580981431837745451458912349107372366643559807120480460327041271339700631417458165381986842318362397968375975842710035122951402626685231574559156291240419606472648921634392788634480363649647462737814377285564123472900558639266015756183125475649188356497152168144642211627453666713182118410667031099155574134866484999988956127753847090275498753648070803660848659231104628829618186837152800469692086389639853304032143096804065108209103371762901217842774004811776730868456344066129216789675117700092305662102950200879415785883409277729694529170455414590446911339414789223580554536172237515899955629195451926208336551638858568960369861921792740418642720299360157897186821093531947642086492867268008974473935445202587414417205889953743665352368935990216285371597358181587316737582615600756689442483832921356388945660808914181344425442818573265821696175202542457986699989388558298953265243335528808356837203293095276134888980733642376860969272549412970059526975713696313860124471497684100848198746552304354436426173188166831405355476290576794712733778430830551893341954130627176197832129990563772600882940314581321918898208549609166043128383116448773121139104904962568391221002545026567435612672242616418608974105413884475435460072633336687662003616209245383471522768921517091112419575715740216871343881416107051846147166114887243338873108722469434409407475159317285315708341315962697664818290929806340507791386895831465149352569762992851919427277733260655834277463819845086758155107834140880253887197545755904535102476075672711227505127526692495156525660409838828184526472637481401236530130692798682385767177167704898376473425604985961209004110528035452575351670640731357693003051129858423020442656238459867381567593687780174257794006030295319958567901369437180653133854657161605578522712401362280723716140418514644077760458248893177037798709084512793058544517815049589823233682477180500441716535365314851171425730823931690148136288837298139047994850005473031824639165719510715570627014439108369973054778407488523987645559151192079150661640289357102661992690088349403990260830324678016721967346856992171793053592941577356274953244716816140402159568566815615366530398622402307071510542502191770394252770778608322593352924431462738958906348976414641028866427538712375240761774168003011308858515558115139831158439034265518803060393949111051226641327024487787716012638020633716930915862122520311900450142982021040347138543059119191331022774937330617290776192917469706788278509860951028893004419642066160439183271635930949889949437989406069201706717666873824432458786581457864181248770298305141916207548944087422703857548024885756470136365807005964370016702417018287089203345500413564745094241954109770604673031613987918045457141828174938861015515094617042987371229009687133316581758227908215644559935821247262139363263429516126677722531286202435531035367748290707165365498326941004133652421475564458886934571913502125634906957414517115290625059445196967680672020099197477370150900170529940880035021735130000576174420789760874914480376129540565728541726533060307301433093657480451035619849483309839721074149268544274458141974200985022815709303666617445103092764547479799507737634897565861246708959864377306650370839243853395838471363105483962410913887176808021196639036467556112518138415621135932265911987141134205874578510802380809849896979544369611415377664529717939698983668726548185404189399503355315525218992466763941421771109692063196074682638113263335578351296217872774762125007144042803180307399835760763577648343330458312859247394009446490206790176697619682854430994029764514132011530613854341641271014387352644990522365886798821929171795081678684350509508306920851947763880445313596312692993966381343017374775690695820177571766551234495583302246737241679878730138198864367043437585711753159058064019144367883487951637043895738629301962692598891695635347608440669356300351916943281435897288857312520463869042446843569385964319938330689369511775256630420728076908227779458897908904636505638560400937724498870287697143669628869678905239076101071995946197226014686215678350606969982300482364614416323191716718807743443027100398697668368037253163474025213884546449665805183741119597667053208345630524575246620036231229069459264903615087880283177557548736491561209948697592142668283488983387096877711444327909555143319386967001877933719999210437503993762706837021047718483263944818852595581260140653652455137259146358479230020227843576106120914760079451469203854129216206274557768198486738976895250505471862883633220284414455784658192509947462886355189223305612546362038370362686104499547566179224619940019247478838045059428426755770753029936205866708285198668823972380015538504642129942028617184091069000127852005070202455801649104573537487202719602758725993635230230475505134484519128804064806128716736957250313531106579190277783515649292857569748819822885062119218089840944981050840173651763198732878401952725198586454713923182661543247692837891472730713070233054738066623285027640592548864732196676329271123979623450924063835692417912181073739084771944098310410911603813207888475350867753355346170298503910970877588646949242235318921850190637045493347801986236263089323716113857772479370564732581350854162566372050365897135956745613930691556617152071658094514480467744961579267782644218978799046833586379979271448490587290577612212839138094415960244571447560360728032669805177496713506245605967952333639485814074393437841265868955852264680529896676740211289024252215467132885768394952883369631501083839715290475438072934438857240072929530557795980842513586225425636770033201956036401274163655785825985582783622504330894453293440891516281933658963123270488626248488689200530745537752841293132325457652151617244778109827677388224216524524417576375166155292699485472962016981132987785978816913826689378361997263562498887115520375395239272838254208080566773124828487491204530197131502443510883941551596386981718235880511338511493509011926494305284221386739124667392290380497863224733021984663190985179926349793316427412027628555881862278255370868333932982351424434292185389254926434875483684880814575231445400577550826329195507101472977096896312091842440824490212940172019231860462046590768444824438460555066010685274848333471698416093479904360925583724780406789144049561118438054047759368403973876552197670405687934892730613981217329111694636102489432395212895254019335545953963620615154921844559517302081430375729012922086748110662470340927635124998489980712317085200683514225001938081905227078753526600774253592936453228959214293407570494850508635879295533896005560581192977444060308670436310515291781170188745939217734320017179898926144269393403226779029167098897415756732048989075275675395184491622502564302892015542678895939798501732299193425482671393420740769055883147997548062950424084634662460252948937297173332546387050264929148150684030952158904668700002011117577233129994070357800080726719292455555868852453624455551917614888985068956933855744431334336030814965464257458775073364736383082335297774026270983913353127751533552270579593185908755279732763331456441722500579061474970097907623932071936069456868262218456493277500212665451737231427345675379038669383163112482918708694257989415379658738385576889318192961261951686604499077956918995605594180834262352048153022288310987685268126695565629900773696602608615119957986640374187096358977051184378651990856891267297642361817677254125877386907570106773778815347280236466524227081734734050468644956480101191862227277485946804333976965020391711349822919141049222952977682307272035998045278214585553102492330492823744937212972469327878962000308054033705435979128594914135939847299037513069312404141996375640156460037227808378121836482328419880672387589577801797198165802847086048565920799692899218670107317591786813686684551534087581346705412046652137278043958016922571115349282106988516868779592571134300989343269601313728501494180923071794304896963494032905627670688233651921412222979330541821588482654437495536121866650894099882365594245923524502096733981975587196522207377713863616889921654219720121053577040904834957634586271302235799047415725996216998390480950305712259124875928082595089119447399443066463027655740922386046943420101807179620205072181256663446515813093686144994293775834968208257876486502724910001472789462251609287903865312110218366730737413721323196304922168359806945163436970788178480042859503951998244843570715557188001504045027970597339671276416190418777076916021858675499948403742077157906628603931848330488240537873235693559059317010181600119544552725579204562078086942838663533624360380009995527107625273065424031304673786591461831002641339678918725555054744578394862299500695588483343915078632307452744960976265639541421712807632125152360615841707819680555257879365981342136912038061873573211222705805241475770385567384527187312900957975852451874385421771977372477524496316753153164052659143525948144843770274139570292057269512885338409357382603052303553178835687834244952730105580515125481503941561536007927029869996806246294403784109649700375369955609612521476877085425246242446610004248052319745515982539729549664108053358255756144877524191461245136149516601370219881862730740300207815783579868257937965361113040886000736984521141579903740022478073017854545553544827054148233198931089120401742909373612657738368709846921428971715326804634184261824760937532740148401402432043899351005229426688679239414609405374573827131572265870372310105171722592090887010403435663128406480390271686031740941106264503439813829572922677732050069777574395703779571936039506954008803419141494257320879565234145592505237160176955679659855208774661613269675982957943219876490895825438839475846784283767676787664365041230466380774240409963566818664680583883245797528126838885757709936114563626409612187073285153082096866370481491159097454396478449913291211282416533750816171675418110431740683810160629615284898919075284409601002243440108925340120984152121308655574444787568941774722601392202123217240338225038340215320462622093599566492081597119586277886134737615594579573456253396627868279253172525712031487473067088081560741313882438038010198277257337986909342513594214014111978880950541187386879704114716326968595933462749318487990351890035089260708504074949752129480695524727055273663664638559847590191132991369232607278852932647478799823571559323741552798774289695283351997471402911393632769388918820681580779113244517165733456989100650480604219650636189750857754757778219336723505440430274155220767440241923979154920936196324272429699266437513920641468787828862856348134284261308301341926915396832678508651044500869980938512916173277216755477637779594687619017403185165543058477622103357957897913490386208491719793426375693275180419264209669764806699639927625607106460625755634055032422068954294122964159672741500846440553615550083761607490556292339772582793373727774294892336834685619322492022598517521907354742112191925142725549928902298850545422583511550145411756032024943288683681842776069038936766515005864787075810292682819772050133806190591956071451838369488299007423556195067331029664433502331439550532984597100193813688514951471841465727438238250887534640874579465066375358353661966448167656802321392390732014263159537432062768856221008090951060317204494179312621598226630381212269377450132712759900738670434965259966117815172895855121360864062659253227915136000911748156649017780257688578599357072022524938321743402199361353148491832369630014038306638346408136011337406596334170684560162698527976928334556523669530621399392470994417093393870987776759966225253194328878576782048740359532482396535493314461868588847488572086655349792554520403452029054763083675198430222168194150848300445953553288914729949568187624218712125565875114220331913155573162335922083885399392034748310980028245698685089444398525520603961014241414246423330505324041883584854247454964114055356101088531125971284516385822634558170416521944421101212909075142416038276127964148824913810248301539383987642723705572108700139570892583004766705227626917079390948955994219260716932800618192647554348829438535352553823239267645284529324851323735321131016757131419062041326123493071250961841805286448429797551977506432471670905560433460597549729150171538995249073710093381381299380205486128269014807423634516096595434608411112735596639665223561347188155711596765232255670632903402588913375181978901335913679678195133508637065460675845778570277471009625384542821825781503251032996794781079974982737537794651242846495163968833663361194058024473268438376609385190910890616616787857541658659494331661722486235984454178636670617504655021602795322572254344970913635276333055141639745683205569818668384731449176098350454319146004169634761754615959802148479457093335008763768359738863629025648999370330612160839652270021532796693248159737019165622315032987207671759111682474318919037073002982552416693199985844009970085116214522301013143012700486030494502988209843741295464513095393204081881853574026154784924910016637886623984360104642345886535088875208289414999850891281288593116882285523739407780167261913158228567084943357095369629462841261180405925327915415541304511457591036811835283377705444264652119613239549243931179551716241769005724942979812181113454530385970104983117735056293745641919127534341089646287571384361343572682542927311807951005939831621518357612568271587263712299885651273736934765935507249950531517503849565342831002128422928911070085368641040448708995407384638870072132507300380264276348114637162137266014365007444528072802588273100886785973444754567579899299660592488511652931614458824826655791274946534119575886816034638663778821129561385146339175164833867782123356865682337634271228158915607072147289363467488311413844762655302161473885621050878323275591048880054783839719280429912846226366018691110261542699203731687185175557424212490301220232004661677435367978191312964249284233410291145167013557619205682198727245323446200852463517289342838905890172552690373967126454646734524955597839228060944570914739934349966600689985585343400368107429469943870945179813941618995221449664812255021294525450400013957362992194574645450607363258153981062417250354823899895268435690713277405213238051565649204134073477771030758509837077063216716731405794907603261738157289161087654726372002135385383512187691325627296274721209130795054509715810261369278615399413829819615360968325645283600832203994207240899776815617709646930248884473581381750242138673278318425566074809725354482033556850800520830071899566865158987668476655752719195662718631252739797810822394585226626343040521723772147723482409282631768150735200770863785584611037624999965893359391304169883942763546622149306262999181240676643381572778020128443636197569559069851137225664878209094100144807552455975314263374474219539642026812070311022891082099538896483191494827792446387120429814552453223291333685677240833913418173186161580451731213971861947065168263959647065260756977618445050529972624014213611432829602891438515514003783994991710514963956960953710449191236681052104986631197452492525968770512447384480527374207104850190841897831703623597055036994140680238424799201549708429284536752470947520901990545157328862435986022122414793160670805574844451172920059861658073061491121322260340303148932108676561251637093979518637079985723444037890525678839115565587424612877851517231789397253193392195037578653803038564838231851099135751477974259858460342956634613421229341270971172927257452031955405701996724892591780445328184237027438499483645349065716113277599084240436679148221353554401492126119447444954837845533850020098647871514846779617005032583185771793672017716672567181785520702052468688851247268074998822077328973811738894455342975990744068193255200566982091834584199381551500069748464781423209612201542317184587176140515278225630613957846156713281725158597910000573288381873949008282485876851948983515882744264652348626872911490662145357503161978932938722125799409690256697634791458955146306240549421027491265227782824395008912355927585206213842513987150166412070627158659845955490940904947377100011441944180766218548944959486714222566261533059696617987697680119308873287202036813247553365152602771994795094525457425059850112077417655321189164854994738470832118945489775549396818487501761032462007613310504365381619658317341273005770903039576158910374360252153473326367299588029251928496972518784379976598776336611355890174795719326087903849597737862818593106680934476002046052729085006365446066414468239791342302695650868411476715052045336719944123520384433613941660188183822406948129270153995589060677238939418496013104707258972642883492831643396923776412732655220486639360235118276314840391924128880870316095520180989085012259569011982783279001940799589212548594116571905985588136598315202670864511572868628999322324621670481782545110687418976658471928766694000259403271606710301331337503373051442584876586160916250601801706221425234239326658526010075570771479870291018008717374067390547368623413995865399533447606803607643829100981947113160250669713114912375212789902073820554491715259956884691340750939174231863300091444981943196795009073672059019097075062337643479512486545674995139085383573370275490147605902942256261422373433493127185096045025212571516641845136888969417364856462832348989615318866724815306212829593430383394299337350640585998602362928367465896282559281374044411548557075374300217947088257591398924942464013472888165146206470285989450034013196052522218986868349230747423684456533575078626741299838294040543311428688674625724149455896147687475312187841386207881867767483064301291932046119839749271437037916316692725973779780187643367259974547373107697387234438892798442555597101562203289220848135718886205116665973134110411147126056372065761909675289855455856519677942908600661708239919785128979718872774764519715841625898876006682438258837997051775418163163839087414093514285717457679993985784091691194648832677664713001667514321326614713037054825568621039376683597367976295117464029426876764179231550833446746536028817022341071465230289175711263808441020173345617037800287020254954656919073412011105355201438280193078952659106940890055882087907945402513172869935929560699829130665900212780622699631297868949536549929275172517671605301270757498462803431628790401278376328636230139788376608410386704331018794266643694996017796736051199217005321832394685495919754294503797501821028305546038290963887824647317046056382682192987859915984655777301179564797467028125619741710947241684028639075598667272283552251896635326181025161195135838218325118754394371534290457390957712628334472124547625201716893368902209902388057229135239091113397409029171924679332372554945529250729970810932159265814904942186036202596647818929130097259037567825221954983761605507043442694779591112142997553269213842889670193712817008142139463397517818794857403375783229230117049503237556596454526616722567615825786842634191622886133663890987011878672893684977201097197371686167427678480818545651625583421588546772023049379132185408777098594011223699167807980367361266112010285036881467613261885010817382326072564306589014295968232136585446785291234728399064171981044201170919017910290358216008062766779485505251090803994624095932934229158977615149291136094316045364132818149877497386671831718114130900578315649570931259457438363043134787300663155412249780484810986043267455379960389906651525541758055696715683359535495170472877956263373166193584960969862196809037011890222936166637802327516260232834685916059655514185733266781182311777574006354056383833714303354289819836631758283998707328946513111407808768602544267670509978855849158942763379056884802361698002080506309747385606219421627315260844581541195765927470531755818917733166343280049236125481049059253969524408007416104295783890991488186570887845327314099616446370321945368192486268203074349744223001709344996940438964209222598205827351967064303232031488878765428358959253191717189005378834507318956734529122949590720120165506330343705028234148657820715080497102782886327998982763484722423420557898805709303521470542317262370183869238986902515248982151906792967566140501494425381468610634181785465861777238472794322465451582330289570684937459873915931716795156083819862613985133178519979770905298600806380260047684103795413708789401697783616946961766111118896341601590004556185747404383598645712968026014955465491732046677585423479512923209713826560939612849472103557344115404797313668257158542798638196158055405324423294220511787598293410724953189504271464163357659206902982496742126203184460914475082179851976129661276923380670909329877615299634032830414101091102374451081122377510924944062649330675638439600150116747831773146950240487122086057461105298856723286070387699801433195399899989553067505069036563526202061860612323281353272227329331913329677523969708281542338216150161951340082572381162585978039327717176064784140147470224755172196137083448133404455028327250385859514641979157738234150848014932473758541278712894725725279653371614252547832525808010463055095572571376386246323031181938866273028777712639948672371653267027808197236544341302898636035486748582640433670568649792151041417841080128431784030481536317181275966653773408044321530223185498694887081836024387478233072231035855930371041985921025560212887267675778136333442480330371913909270054877194167669329593603009183676525819081718685730823609389197295074133197153272981858866801633033850960991730876674287040779643417806427004434800240506096463148540880635543718305342217458783830954024726445708838210709288601094683998203650833375205734509580286551822204948372487537324466731907745840360319190783902836024090196445355034224652949492473476736400459605744704559957339302270130532760448707890471001073294114370078628899095084675501307428178151268677600670873316735236747831346636402204666676338883268271627705251315655003069201715945654576175645368318985718405269550491247361486064649457900749904275312242193976193144909205207686629838237555396504655834561844160076218130081107089033024961298576032337868156552253191193913671184135722807194524939774850295330166807426887377372313037273713994796060017969099976394497255390278459776317858372610311981492282892855327974513300280408621119475427793815261364425816214540328064067779252454985694960523706376115625977258612215017903934389612752806394880357146603161267925163661093469238653637023767689748178924180422517181708996811797067307108450958349245394184577243846682154134327957159165070891610308409899584433832917676969229159435219706502625809385275608252141218611075653433367620814988436706370364206918108008664469597758632671782475425227386030475940698280634261761945813975317233204281664008249596375824259265662335922192963299209491840408394976439090500807991372603071004422670453807723713006158626221162802604282087515956071920925287583753163421144695643595789433991918829218474149324194901253623426897776782317364928813783035547844276289525478215674367146955766577821506862123841265143891103171022634876756996754015709844657208034955093689841339377857528482761224380078417612142834778630961003698170489971737275316430612328745180706173089600607735668307690761875733638963771713209727671512924662066918209279287196785762316903731959308886328900219753706729417909961334247400906588220959009194951246873229188382527130880445192171970448781059793386109162657986740399070451559465430948871767305409015124617607700401284381777850919687496406843047385202319169325573678203002209180126885333900108440639043811958890405674700970947332210161919430955860149648841208087882049528372893977898862018165922630204547806590381042341299973694570220840650919328369057558696721867743691556106954987887923494710845207275077761869084335014363636448560536129149275978417982197256066757691487789394122369136926002819926974470602988101543348565770285243960230847903235487372914220168738467338887119235214591517688435784161572775576041804905852696380264369810507327169995406680523764530009185916253113479606494636411542790028541254561510010274312968041420431456705705509818426255067417533437335281853339845614424091981435738175417465750534830687320630644473545289148728669295800896748934705380904617558419881649969139896064854846512443066040659479833234816659129325842203025123271463216527322114447719903828651999572908401914953605301152280019724129429990205120502510632904183779920505993199796617181676811472538099598992943778760298368931346924169824155881714743269686427555337666070951069719802482526926957022351848180284426158289385084603114141346943094543926746182268581380473774032461484134861205523438710477996800981925001205129557750358022449175062363468654798577840662599893964218268784574175036880320287723922856577031172733508687152079309367545322437252981638379964983594756188240473361026114560377010682681283581617289553808150718908023911041575305771142872790942054378360298140934769524186179761392041283325596686050084349257561819226196445446764820133088904797079869223944504584182372011727437379725549561447895566400534710296519969218379120991131468058767556246833837655001678128396497659879791614263376243999254298585176092084694872048283740191667116126013766035963646910869297196295972685421983990869829931989897105440961795688646692786004009918207417679060590568397975538668190606273391003886099060492188934283849870703960598718074837863605162454375467300081099524412872118725137800419147048037560889770891157561934474911134835114757091912579772736079532278270300177390332237939278676752293425743860498652081877270621485851375787984854097908446144745380587945102763311130940377781975677224574268201963554277172208465952066671105098875746238673532597748683201656470085181686671062818551480099179629545105547267876005670044831262198070689377432890208945072635843408312803848298164283858334441462441116288904514891597511513905050018997158697731250144640956464069753312019475986510732957289615725979502916649969844310040877358191883266633474888012912310280931691572607041472572175189749018790211768414033176810610830327976112531053128281631076016670000575237780983604569557407318803157479198785466926140520815090612530878747105794564105545104867729013316685439020258526368279147377348752741718282833283814705241936304741746733794990209367640321904985412147376495453237007511647577362888447014414630925718540667356278625135601612407224510190474255587246230251630053196861616175920773052035964393695872241294017184326773920797660367220751964160906697690706782005858389540713525717943007546581928785881754324301275335929394878240946871527340612261366868899757093220165227662766746693579571323960922674784016356551316067795917538089810207291058104394382902359886807794696832020099846099808114858332098630105900793998647020318011181680687047198646905570156505506061180247554794830561012553738650350242694409051790609812233346190219636778266063009217387388540634271730820183357257038342118754197612284611136397049447246866778287284472386495773271304481013624198601557852558738618612333689679020433091384081700996627224660074662767952696329890245794899901113053328594578529544217250167245687204732875976884175454712584310765442966805268540044790335154044536664168677643681664200930103372138590496364250335821405791794095255988210398500655272000254626112739361941334874119708443303646951159536605568156346212229043382105670740106306778384686739976184193068506089020075573100074467890826748091739131730077286086241662336683529167146863824841552982957880706569970220112565847172221199728845217332608059232075923765070135850432056666220586592693725813770443633058125260356990663688591328411827562199163905709989445738173658200048895866571949905449706118837738139712551130912105868691729937837288605215282696252824052981412687731505408128338764806816474986572072401620055780718493274973685924582838104364876944351856876656985566488207821891535917886539847894073188578269152108399703918776082057520204422888122656003277168573388763301722897755021413182596342474903927504628419849080062675774992959874304426667065842948333376789040082080589899933760190903556362758988648386551910752083026247061238134193838309140247730029930946891324575288088539141557772256547896641776755930504234209890962850638679080129274342052967384759583595520317368103271540700228673875511323162759650800067486306419408710175591472001276136283436345714343770212785680285984148771852743302301046606901042864081762385430121255762946322993507392361101422359183765958603631832904327194725288623979419219593332116363629180356139290213055825913967934776618333407998892203756150703671469979582690837218341383842433195984180926609852943772854030422073620901451733970821242678176901637658251995166255425179025852944507200455057198597703775321187114228803197738298007576487912833579869746129446021441499171511088112290194301948763177440723991731597589892525003668422887556693702275686174285204895058922412180252190129773314489086143709002704925227449112244697249068761539790174691503432965698263170263796613277328627416061096465333775941213934254327660707802005896830837073668824261899915480668774827999802843153365317615939481875716210231823438896708661284187394504728686861022346334952593935491255192032795388278596200151899644845820677778831077114230255753320102278858298484911968318898477343578057223433565707613343191776991486515461837534263388324910046861750815870508580235194640273040584231951706006324595263596892669112224911327768167057118367157615618981388272535574300461992284260732710229083698188979366881910178050196593337529570418358853587991333584458917380545802020573107782256076206692177951497079178200642957160661534589390975846892182544327423415763188154140847115608151291890339145515157792850632385543825246651933970397393373968528258595755721798726363854814475789139520599727680971274642520135647780351330995945529928095345536392586576271267486809420377899752487298133271056953393833936355236646432804539565493419931876215592398444938547345363695012088905562861416295542447937608919606101407212681461113417622663445952153226954774159622777594755663602286380188040336723142101132793740202854701077672111526607050931323309039786900603401818038217957249876306718518504172933767404962120856307581608298822478907986185574999715016522009799944524654523314752699107442787109936079100617804120585311826519511846669734312534069914830267644634377671098288069116785973227465910084147004943054901336849386056384807879595091133694013518783442264594567974507818084200414005376339556081741809861025618971191290246144672639901496382132594152225459922589649315496871017100718130687624782820463045418693368851358756402172104774345173612474577124569992355097826138851154827708325782589563803965745841386318854327625475388320080416754485261074757740897139552410347478294043245962294069392750009974315177578592617545341678268823469180075937642087207651846639110815284651505479843973514015034066744143533069035666178180860420150558902441171642023185581425693590717586395609206652153403865918266104261318287135478487179549039376105840145760217968299817908810272087014377049677773620546886747152655985034303141330604367086978036394062578949160976520129775159166094110714034161531908584702955949443816405463077527770477294488751457443909796816103662188841906278169658445810860486712323213354557735493827288635196695473286835634148618167163225787176832948933622909672517123417421122715649048342929150171893941062198025930369259619068108042885820894333987805192802782760446095456222223209529829867556335463399327728702964979451955173697368799239716408506628185050445761587587855739865781510007472947732103064843530319144228285560980528073305615656796858466654755751656577819349401857061914218430842606089523423097577192422379312045890003391981535476172532977439896514857629144889767257897546336379615969039978106673053625253305609731450292701029430496381849225660253193874652934355703829242654484619074819842010692596215661879946607204607791909802246025978505554715705591502679183148200879920839524512022550663002495274401694428510436802463038913268696265776125689569092260423500830109574050786955845520656274542221246900948080292088669036404851275538655561469345636066156454197241898544035518511891152690460148652105429695211099065148943113289783003763267938292424305867609249601045399614150634822580072865583967396407620246065620753758614288719153806009544603191042379332065429732202613995869569780478981453957053977490952064396339773389458094340637467034914816344310525804269306375672204115488689719918232029410300046659246817397331915225042185906078258679621298104354787423969864492316302799793932663294157576894135274502841425581447165356117528818616022910005214963937295034510891103546286601772586093716388107125169875475602363163931317483037769960419503527960684026429866294462132462293050341694106993681034873834817275632726487879192245586692659626315500196307746110871334620133703089144171707655531975369362802511421332533559417935784384476164624335309381557976383922055779084942246672833838969307021769773842658422827657684674474926880579389007266587865155932587478829295545326508588292414258448456627266727244977131738044879417984326298629776341876621058658078812247364130038032575746325172916954378018884213447675837786938701782679975631181259250621554640395889595343537251850733644776601632405292137352812656164063226527220888681189884868931875325769127076060360457442550093527451122217425115092998609732704719495346625116537635011357008253834442583330785842701426397611172322469061201668934437716593965897539403345996616252181211371003082857292112581183268258621904704008927123915713002040022423044172888091156927308905049263344225785218467494542747647301934441488190479175694892118408219405521662297730589328106714188271840586348451263948041567798269419367581496531005538787520072297278286817010578166392820765494981447914240687057099680477550543481335837539208551476186344188504637833647774153809244432229793582921468843495635470104487428888403101170656496428205194920782062562380036911293801959002313120010279225405220500821448418242402299349222119134439178348539448689763992852152453653270458060830472940427399822917453277194326108093171548919923769110530331806219873085147932995484557013557998847502969299487994475709199487865445136095860967750336726877536853752329803698033896109034432029808733093299583303803991276907456716461801718954663881409001891514938457112087442716537275846632158474556480589393149859953718604774455796974165366551328588442387240337099834786455214836229808225492432715390119977529586773388856312171974186182457839004764121124519912701050692931204175363648274029556580817405212590229863355498650733048756833706077673225029793309475215891218565180208918210381600491522421869768892048266154032344262201396036549482850687787189893249896112839123508192618563907695466666544837865867715031940128512556132940615741072352811533755139288528372310509922563091167723454531320617535625183921132359254777693509912179938327774897065169494463168148341309912929665266325543335115620736486101341499559698492005377529396143172377396478825124221097630051739299660983070770258542607612516530975046801621466654145909713070538657965195615549139866955276002386837781265468915986683874197274833741333531312125467282722216305732829302927535576308250833119886104522839436358777484463752360460219856830599551777433077634872824602972709180826388747694079239613641708063216901306766650428041899225348293636704505425085732812652406554713828827763335785238014065661305960323485366650428328168534176817911493179778469903501859743158724591171523875592709551145120623408904240529769820882913049150792933894343629358353228938126130442100479524753882632446496598633262044873490757885128429782361146037912542737534774438540798103929683557968479858454065839209222858802635310977356431964098499184580780765521930242614066839751879698201777020077085537682120925668876004540802953032540247098623735164524213842055679591833748293786765941588211519764718391627072831912513499308966848278023210278110253654720640943093211744664415951019372786218944103115197002870844777637592193904691270966472790480387985508390717532149720204650165057628766350147344999682914821405158842617113019302985527478435875105165942432470023905019243603971707932281307084121061322950808291401316879598934000460045208219657605082188624263888749170757616840664516961510069427115309343729148843070947500852887599661803884341799482453032570326181495622876520052726183659841587086144586819081174286606254624576544824847424131272881970596711918702189399234877398776176291654899024038042032983208937885376168616805979618878741997005143754516834863147919816886624844122240211469550282484828331120673518864347459501660782389323276978431345003773984853019896486146462047756985800665495366539794986945984318846485646811250754005264155901166483707971695670819304343955726922608680658699296590851996672998563182232523993142373547642453161007382991342398611373469852391030324540011351585559998240078880880886134748896074317722109452229611203629788613761135557475890353131198329940787534381922596599802474487319376605126407889643948359154319425120368788718234938071255419677295602062302559735939968044583465337541286646965176496011984578409667911445271332881079986748095487896064137234974778541900681529077763013345347073455906120555530412745134361242919545489072092274598204728369286845037342659090969356435080221416558718655672591800054024000802028552875958000956102857139943500599284320421095524658856098916559123327721771851625507794064531428484068138865163022134339885539286749784817637039124520962820093833335846473232075704669719071804231077948954893473222744566177881739618966742848234620092636251762359730081277893030074869423477124715135359336067527721127499626597409055008339102045287683696241777045835177692679915809934730018451769204977997216553541785172644858666360343351160211827998755554461855451753722770776752994705845008578403518347434276095418573188770578796149893514885289760806699983469234684742553304902341152180116692369728790779341224013328690051814333123847493652435612129016342505154551078782797842050182439460077863061346542107196357908802873218068453829795147807868018946436361487094712302772010191125668316237777942284905054798295968554993065191767573590274712194322562581587236800229391121596685106694868052959972067295937289361824661898702939587614388836296617883377979096093614847177820875660594140881238304057130540849556362690956038254292124527564323865010396755403585388755534322598153349450600323301711180827942403005243741954109417927374387941715796679984243086026595467860441459264394763560081181349886126273745886068940381150311323778895880622731218289765242436788763738187320799743374945271782302014503326413156777363881286465999685833924885286030814729904010569591995483741356982420558153639422845289716732967055340113907041199622981354488881746063917163570199156688311701360581271207752120028770234159895005855876262168662710657116209794868114181655760911501105332741165051549100688297574094741946364340957810611472961392509524966515663457701976546793562460887379322363120043410470371125634980422886722845981938014668092451740043799913146449619092467574177877417611619906285414713246292181410151660183553984616457016650561636396367886641868604739653803749577480419263087563438807363451198336221010786370928529568433950360544878458567540844748724787473498010519373793708392644557805759050684044115588152291408594988869551354546787628211334993453693451397987869820188136131719415871453877998144461702241310167726535530208980420933884466210182938252837468774063093635713078230071220818070696692874084330823169606345976105423554488588316816187535437572606963449207600471953222317128409129949953969681189401003956383171538893757008964487430748722592655186151176943726735992087450479816391134315332219986177520334641349901459270374163661246112064244332071363173947572463456532764515615892677492874829403824909895672507374435129958324813545561576628183555865002513053789073005445933819411613258263785433000903016582037530406589660169437145124438984866952789267350919555916949084918443550819927151766535709080019280394040078640696521487066452719662645461971742284178211382250432577091693122671176811556123544302476728834482925649677270821078637437032875106581944791962934775558715734307569037065768885343592331213851906947110930165249338244595414200607803477210783480553207296806617732308963944827625877810762592970970040150513902529222476723296798989414571232259461422957797042612230187941868221440785144120211374589430969192218065457107946068314429138511606974522929542443009241985779233170652203930104011045750381379909294180396302383716823776778425106583222767570168031621036771223772663053231429872674794991152427247118617083694551329083526404802750182690128997987479972528833085231018357195416512622281579361830242326408191658119048657466268531453708187706352346761117227381779004842611916032723223751087467414883971778685187793555369393452046373266034971930485920906935167711167921604419348049218257957385915868485554686993613023749737217767998444171912390582148906537528207582563601283886722165749009914345004281926258278060312185844309003801798022112113230206012592758672872717372651609157479444669065105749027906905311941828146238040998206507004272205697534063979736213587704569794573167015983200266858829474420781899804929876714833385284089419715699133015576336154409495025387562783842150103977239348890923516580085393200363933013059840359751140785208470349544535505632526662942506186044383642018490469683063516784608301108692307145394414096015526135934925025165869849533450846926201161021596146848029932914052175286646947316171120574170146573049858983123156022499523879361033885163932619199515189614004521637804666048127393779684795760543333610890224831113343971207439344772424387392332363269452973564023178529399845361585074158740947191941154269060936880575128444312236167391191838366607527344734597670596445718324064848342252386550738763960252592567231514305211629803446908830879072886767989054630772375257880535387471441908667286835113296026524943418772425892698650729673848364728704853025894913961538108134520941475435182254807924579365090510637117953677255861837500806066612275730178539014741709269397692699514861253401508972235927037962943237869885267536128630877883971934835809767084032732877877312541909106163892448362087395284748179481566662985014301141159864622689883191836319864032155004549716177731537788399473647469156518672738007034123425014630953287995431537799084599112231903567006507561509028828213340030783605212007453570422711624868837799440565270683183803613867277429866109652784171076466098371257883145834668724706693589836378848826086999518972147507583360431271665947062568212509015870513943029878274814928505600309707926310237794243450227844277703038251193669679118664061868272665573741896543770676066968944545511221461264611721882680294800176420843656913102494785151010289510213248715815761910467828039483147750050645540678623507226860363528577136522771636400560357755497745242968735211383088059798729729388352429144693160534872433382504131636659333445990405260893269205980451379469578866834662014416287048997989538574108691731227517321098519065797787855338758181334578608875175439695047957890732785423830786480509613506039599911652639328867181233571834531585074387241815329328029363842606556228417360036351198829487793524852644085953710687678547234822899224745779537346355984936579848839191272608638807007303325146580596655980342228659233964590424122028387550883020859730235277913073317348146606603541536879512806665702631097088918654073240443504354495450014254187311543672575593676318258711416586014384671689900028470954237063214481123321843299144351481286527023939724084458617085058166128135402720064537156019573007910700577264414606340272362463518033553688897432529710641958220435418729674030072975238357571740271103949893878925617542179022488646303559468509993679983373812897401922725556546296413171490861658189673094652310826666331381366385125595272009381015504141413473969541358027846140720786691739498678248620390055537202946593963187898846383760340457394607580258755814504916708333605821823145856376852611244483072968117501699910401041722592487715952701518697281526201969880933958744383857630359535759004180678573199478103767540845644836368320025407317577979811429045118267200007004279376334091247745280281508640611054325070390688065547236270147999768511196627425768390259951821570165148849126372153233096396939022837190870618318487620055050840106502604744112213708720506376974961404045876121316802819903970079708724350708389997822340059140480777662443643315514730305407010682331161967855795035006719580024611557618208495817441921703012265110397961675287964599078343048835100086609567897347502069405531166321994541809655227817433875382883095906970783048636420654954439816190583597006911333478915732090267964061728768877029488913541260413215999843292649867745453664633539686414854906020281164787687011117398204915482949944178406993078807526464180239454766022505857378837776638348337054082476768818301777957564289528286326639218901161652221691560197391926557485876241470067758407960903516556967311025189560812480265991707844013109443255425606774712405060802641232659805788901255671912796108608424748680796732828719455211657084361637198215689628090266897969816740603631941354062737399142679228708182023231829879341399967380499265921893861468343658841771501165180302342729280125058325196702985245309434353817573004538229610427886888363835129058542627338295811608880071738747802935694024037146386175762582258521511742302485363784745215580449731045095711578465394936352232683134236644308386072754390055731828153159133213404699138471265093177645925368171492623183210453284162196262391826535208494821823486380330893416250084330012041983342884102778326257148401741063023421715443928389818362000765113267967339845998119750933161809403443446678330451034887192658870619867415524298301917585455071339824304002566950193823221802649985124221481478113623112069073086637969004919826115405827714011041628204448123634445212839335460680883842948528081843206403383209335820683385182660890463355543430484075979033538542551036283169470319055208313041154010995602561824126148516202283169683405518903573338460124867675160881702047382390065961965622133929392048141495133983130568665019980834592289050606700788579156555060596860266377885795356891823299515692549246362094255847653660968797950788643713068085046697665059697252818565352237549268994024310049996438687470217886784073663363458736264306573904261440772617811803047781019371911257788648332364592096334208859743207816453519750421281556112920002814762603937708167439051103390236920873558321890133341199212202356102305462182522900796159589849061597655848366942705436060225325881031285531181595637864630598551217437847371985648465810404017520357932296996375690459710788691852227778581669472297706020655525603870174394620093601697605054512744294985503653683550812317367275832634847336766481213842326526997511808973338567736642312431858457794544445744603659356020562160529540651550651257125962433022063728046516922269549739313181145726039589968425057446919659873379706234686720999496167854538971675360808449949079588665797685570052710609981321074398863246433203462994397137162588132172754467027348707137022148193069331295806237955821542437264164786860637994539074893271346775930090562517909787008711465293603398012357414954976791855391678850853135198234238826405472934326478820656480746967113291330323222839091233739806659130288573343405364138922280260181634033152519383669478533386174843391899746379018620450287148898283597322099873209497920197470172563916541609605648601977945536984413562792046463703099770316381731248350227012096230231676416384557545862438518792527261304380662029949848527839938969798683390069044499247894699982916306724302757207509562854264363004618194799420088130030988062459482212999982629288757802447501730538503216356687048144522143096586045307659430100707531044103705494278053073483219947702147043804979826590252816499869106660421432903702306236449770831944366774545392494652074794254997427778288774084915512757188091391198754287894044340507770732834867144792036696710884539406948923858654357872962761595142623773329232508974082334344920867888240469257747509429172860025684400196101955764294212244806389418223288891029472135755827895038667087618565619810432546639455309583567439582893865184605026803562893688119030257848482896567407595323714806981779493288790125275108019301203606558644101211721708908366984979187645344444583075166228953628398306526538227014258362370454251973487109493068485476938363671671697108939307611396120856367170562477181552505030406408676168547931696248395099212085451589798020169922053522506587528741856109166250601832415136632244366109583828388173711063474000344334195647519286529716341820852860614141979612166465170956905647041113044981538016298607782330913840264829869058400883456925730076309647082936334240062735050439490534764237550001687468568253296304660690600340203925310935545303572398996635117774008442082415260057516415814842711761871942532340134900852271309518855996793751653141227326335555142889760376094741699701722089740225561772712148720840030190865919608595931037528305357199172026060078990862017462186452980697232500471030667590454978600941344134314430229403710953086781480400685472603098323030731082286529001267562470806813198833919875424212549593545429640004956046085871042523885315178726872156316064478977744255503573844765851897023764755418512468612125176689323884595201486564970827778542178398510313787295859655482507622305217620282998730022732013619752973177898390556032576655725224824124988067772997968754547089254677835878618223853683629757179733066667863753632739807392874814487872722210642358505110737045137509729626156426379682701539500590341397786459096200258943738718604024658618240581699546472777518169300500408037265198420113032850855068483286916245691488103858057263233268271721020856420624658722595869023059859897515714190789202302183538126168470695767439135737655522628409183136869219882628018610344257367775947670276223251727753333250896370191963265971466584436866197689820610299756971816122217216002093502155388317002806034259885253998905781291871212685842641468153292429415126116448459731526936904291426543626720384554630558676113862407922591873550719236173539919360910876099490329617271706522968276064694843811941355315706893069216245057561063083560148505639321919840463370004662199730370901818938205552892001260186067379744554807125674596051902962437129623830540333143855572238986431296345799712038692689614626940531635410884742132649011104171539904591232192413282084958998214100243094976062124191693863720683620918506069099202690267395632515870581973285980441417576844168027321988133187532208129995179837050164704465582135576340827767690106428988415743493315587656386767718975773507680816625730404379896723723764243591057543365926839924267349723936570669543988955588986247526439150098963395898380285362225263453410380961104757997920401659376637881775617072684276089483230579125594548835661286152244424143187153408596099055686995575475920545366689049560569630733575976901253799530059680599077983283725721769822638879236052246881220534736415160539391909023725173661640704332267556776469032458975420564593160290101809354170411286641087132412112993142366533968198038141355522598825710897042329431216307181584648224999592541375362340359700623840410695137554387719939084700610533538849368900974436437483484058120537675552431340893983618347472279629653545982739008337119795348276233588171413286885650830747231122012372982497136169927473237124470888585851945211605486638420825435163807762689091366173286663677592093240265187782105940211693365262691231569812742038534126998687276798229997380847086298345391358526232617355498516495921256364555885706408714528536783286673429908068124481790688591213731763629261953208312768092706895190096606769510405249778418413328862829490699900731302707343394285460629418210591456076604973851171255979690975734227943623609117832024290399692933391934984157106758477373381270898114992837250647724219658935429004122682530343742842010674804687753454852395535540081395778664522267161685556351768893264939081605553176079247626893874405822435815870768062450964249677525105776613234813662878514520520045602712503692626049620150676249082085728138648171233468380240353035050308395262947780784214291063770746447564211982957853222321842768734717799443913383856464190881032733054706494065624156688931562369615882765981776892651048752829300842001663487660557162232207049594923762111589109753502044927956125905749189063218511272078069958291676116137315534543735984202707285954682128962527530355354318224607947191142385939567693452781352625046235285904198228950294469620540042062093868548363368807864503885588160404611647497336745667125760572154707915854529930207379933374024269182387744539968178753671403427806953983519145342306517934222316582826715236049475457540796656565061629604617440308832788773889172273510955845651447544296477972397816294537560788041438748520779085213810144894774858038181024045458416753936984156215471902862599417116225870341706306982918837814736227021758244743098635842879777925441620049321019016935052865748790616296595196490578316183814000610832910764759032566832025162346383218460300903851654005050039698788348764446896540425791065960953310097615341155964631198619442866835632377189511058296956233467980577833572158739378022319426647251628329194877962601517882943083323368409777186467976278847389484579401720496979491361831585878465301378232434050538162203866411180758222150735294922587701995775637812307636258882203585967844741670568616260867625725656432458337735267095710473955564706273058369791501230782286942647263925737419908759466705551419567729359722553519136886693527433818636824758963894027792657930015745527958134780620209312039522807279584063037923365705287651576381393634920728778133463515651807535227813666653615498784163011211168820492217231699560795773570783851727353215761786790646311392270541955351484875832020192145369120206671186964821573907808806407437505787016647228932090143981867062253874417943536367759473017056027540754159541250332355360124096388203310604764899917075366620674995660189905609280459065843104784367852847961613505517854531885314530091001663642028542321791766178447952562275521217863520987739016888266382015431061884071816227760745398553661062548807982980666240398450859259383115514756163621865175716367886700064188152506652744746529873750662605098901992183230611403223205881776985005374771305850203456873630764189792636969181235514549089708563667224508911218883721883439682134089263243863087019512752490723567362237183269378011761119960645998254169636252205684011667852753136453917561403156472346360085066357200558032291351704431765494134537834839304377920749221889950961436547410600427144079949895770137692120714850622921245724395305868851839554433018780791718261988348228957973588538328980172577444836303163458896546848185262985181672685011877384253415006660247819610128530437286547376492804928853271134394897938481445039150079922543802911710343954251579348336638982043874669103268711959251747015076834459791109289496066147784474149592872469309798545152734515731048704175271824950251835604212654057678226353914521272517865142447572904605814319814956612294090115035957201755414745524921692084854204547575253366458905981654201183410301872615822419620326795790127716698154040965704648698577433490197525503153838303099893276518518791958638871709417398459350732901786213186826509746808173364837510650537631381729743292889184101925767287255056218066591586445779527414453023065967325369961884474079309578597343942749331707998682135969255113277632361687674169926190861087589719622570492370131364008560686935819538121971961434204510635389736126296651839937596997899992080967798474736742905915635313854392702566926552075795037254248679802714792560572770511661115386424139800522321018847365991824353127922352669026148092704467096375734045764845358202310492207581804891230966112765853190447742793898345227654835745582736972244382644254634886877551324904260696756738946628387589197977241140195505591140612571520700954629333295554226329640457166984792231447002549493490356563303964613137545170207126287592328722381811620248775950410809373401073519489292542837823584523375466140241015856260233170666885568707324362789720468379898248751685844689771272231230844833020151478786120402419767993942955867506847376471978112691793508998912033243102243754790776567064382692172167526108328381619540494863369391258161012390310185569070926587520357170693779835362387171329782149273889673096358022195350257978455006216267214649646182524661380227936653787573517748207676245210540269855466272722113808177525288540492992593586953384034469232488080770247830369358117239051827380821067514577628538301805935682893489291082639318958298962941983432353800178593385477403306049499019045399497567329166337336301438000145044103656702731184633047870368428424504313747426171479075859761513891433668461887188065847501334319263852638047488475907251667611639843547201903462919776501230149473062199530321896093981958538641372900392298360584994142693266644916009250117984274741976750239926137804310703494144116964170541684248115853932257974802052929966320068006705582034570484393385586379737875865538888079988906820282958858109783930738379495132461172162843085628434054321454575900508585414783555892207235378949974880428892838604961441915295058925994491795836200656213783469693500126802400546211301769766691532407352807383631473709815883038748755057228556840773893832142998756450119336366845770655363097177581759657645458006701816267455551746513764194452269895232237252316192366531705412570079376254482386564609062071805360750095606014797000015865559859185302856663633890027099013294721538933782184237004223729304315511375830793011416659066274728219044446899362385563031727926598827024468884139575579272214242068156357440904053261230103359205132589631776663382499476142273955169393421136399514310105944997934901892622690511987217363703329956981491540458439191488944587089275022900266831193412287686266574159466577401126689623854586584391687215555097753296407308236464283138680695703115770934263694837807439110786766174914295482406856869283813368004999368605414700963404121545473203622230535207604060567929475747897389888720450121076545228396718047108256737406163160773378158574830766240511487060309473138697333814751634745251162422797123678250355989791182397579498251934418139781788508869540849074016488952976098991502133341801894181534868339636554848230710768381596650395109279043233148082187002781531253525427004096030746650868103357944920591118273686078530696329295169753097233222414671971127655804221555672434413569873438895472044856893124168734816766736600071507379951243004793435468453859687121388525501472142416474751753353053217745210608141247241613319412799535844263349986773605957220691718413503914065559103358607605790829260013644495866204703377987510972317482390234388121244115341699640367297237977362043923318732782821422578372261453702328746587000563552748363089345078046326312918316661452030163343388781890525805007992637107241652609474836852650228428309516979863509486067609903580798770785923708777790695967615269584089295555963313265265026050390303300020224072949430825004790379614827966307678202091620474352579459179452142464068052413033695530096819956178327227406468671204702497393518407248962696073154051988240145910890378902102478694393038591828077343137848801360400595024124669362444062731280603095897869986091210720920264179019405721220490662831544993622998438479413110653276225707387452322251603649649659063185481838679515385139742679811019034846564534448490497228100929132090337992488300779953710391666402425791143184386906080328105247134915720615737140046634301065657337452767153514391164052651442451100931010083062057362201458071671049953096040706977597064440302042548058575314574278897140901840113873950585620914439922946953218919076689275662227746889818386799184560767763621191471172726175887944617205762384115727892354814466662563840486818492935624723867001559472804933381501078888745533474633170435622154063776711770346729689272311981865567498792592190514830223190707983416109418576972121078103099689314762701782810759503976485699188000612631147767320832337025371939327797760863140070063184786890591774512681224868839456926718414041726884667425636118568914998810724774638380364477190105022508818550218821505348012427494661139681950682792900594050690798547191078065558962800422196977549200771976391722139412955424359294318191666594366211944774080330934758549945241271374039578312448225833032039533977658253441096256667385391656533372275905347935256250554120459102049464839949082252763764090043787902528708705196132212922115430702428769807879909295148388803772138125882095818773955545530940836938181941215605602631014608459635868781800563122401370849981839255453649408349231168633728698508772527691008875824166277814053966493850693453127542225295209350070630835889648664134643941198525302194469413993540737669657419280359735457832979016339661745012476984850214789190195597207353931470433770351558463583876743876899027910612280263043783868542308888549096256371305020480964452003124586297219369731322615389278350835598058088535947190860672846839481115852803838902261638745280967647987814429164854640870829889123710206429467285605815063029062826559630300960515077150205870798294835858642733157782634461836720604190856121212206150758602913523616599028845421064342440644132080685833612461411642117516871418949348131095196687589745074626702602871648089538287828683471161984796917683531922097222643970165337563169611217277159606070532336804487751030697926589266550474789917058004827112956647749517417474127025901940290119708247846021614516992859026518865474056283166736881487037314344680377989501101827008308100779203020220220327558779553281070317947026192415517542265307508162128417162699724875112707428590829426279604889294459736157041577324471029059547668362065429675620328046720497176717464812343097107525205030827774210487031384146385764800524017383750244812437813858755022763174911983551387262852638370538841353072821025173472907523193542229032790836948772612770426943996381390145186991163838286974755986257806613930185417703185749862138875984255747871256295990488556233756733395004503495464129847682810962063307944583882990614080957038935806262009111990153292264249788923131790148152734818940375276695770559252604292978679246388733566641073527455907396403862683136876837558361463034010669172565071607535703273289141088668167130156995064886312148417814866061639157975236214432027365851857812738346492602098243082953741505943456365465646297028943145458198624896328046059130373818870115860786072387972771992491183141624435450045321987120721699247045194729235685802756858228270000623357928526352928898901064236513126142348289947390500187199385538748625605152540861737135657688763436432533028111408700725949338184912183078605278657393364068903010346403475582951512162719671995330194032899968425124425055077847757757507410049872652057088671330428084182882844077049049972652747464273706861136424724292419932376261841111026591074649972546953035160569940828739154731386279720613049747626538655261067400050980538804680643313602644173131987201864737778707583429055271952868560028133141579072919960448619562991401347987285669094139650439861916266091673887397505827017272819061716750082922463017705251532278858777970590740991950534500911706738122089169395009809909070303934054578732540783252364064935500019792699801570760698766077406521502313390478174530045495141066460669243950183581447797315739683622604915564999576031514433086135852405347580576328622469792797331707895300874387046093678906212551602371599078982795005970084488021288572576905326727664407546922204531421133932119262782227044061489135199666023795840337531554805338901926582433130358749797677543898820813914060586194188727099778946997513417426223208644168027236804972623869642472006673141979249609910642212805551074883030259135059278761378952313025342193738205056961438955100376015303246867478734635751207331853887424332387155423004047497102279029568595815635406759422241530898343995140519379131293753529892848744578978611762792349600147793239875855968235621630631868903697200673056436077972181927361999443246877116449437635155956473375192535817651868865892357033504305721980329482041669324424989925245989515273586879388928551209360178081901423802450606377367057833136872449489616677590561919900779175211977558594024618721488492071782578454199638036170947126937977798650846128556364952138226217064729475857161661596153250017338498429403816855376294323112222679896300230711782713137050292234212456527328576191382542821928237032536161694055303163143962912990078163486978459209867892768832560839414983494037536307875987741305897817493817513569812100207694222754890256670559306918197404217355097946001255590330289376681263035752310736533138293508497980735777421311278605593815627151269972817605173542860948175193695800271257506726441617158837772266178454506092067416798387751045922241952152827584108003485702650134779016106275933359318781156320420222832397994064026997753486996098968047926036742873445749852918938449438457741785409659550762447451442333373818820768203479003251673827656976245139367617564587835622533323849727542452644473024053915985765735728123595825792499432540558080586960782269398434222531515504958566333784023566749486706829307822677608121473734266454978996851868390122719964771522821831179779917970886279972780610569581726256182218237234385474241440860276406331418846613290489600715426834318088326498546616509837259026551506536896388304139806456827915956724660578817879287440980208130370537430476038202507898458008961412993547632094614170810251338870413471920203205117779974248941542441360674327045167882961148605332964137292199186093996805470153177383835159581985487730328046102431963961205079440438846801682908437515706568312801945252885202461081895128511290043939444864768941898857234201255791000469635306023866976965689299364605095910145569511737626944629125435885781686413436915622802418851466179222986408616823945600062442763159248283544763246730431112691821372981098174528460266273320158709600544057945232183381806468940572253648468291097152855256479621131764321981877328654054055984661157879748224746776155258703945501125690746373828642449594359225046927459030876030746928254391889086784406957179782216074095087774350447664796505782440053392851033429264850478338617955980889060409154050299249195909345194343654884920044790746385669040035573717293151748856079380022529455206713022271504651676118643945340981930636687783818481006549886887360245885332748134180247882921816414634520075184295004461065424279255383605676512018024234720559103307740217244905216845935945320315875811661738034051002142823476923925525303386129523813485306472829889741536240430382391959524523889968173864456110707607435047817882206549386167476742922210363939122426264610023156983578230737221633331730878129488519222390214618590373906600891320322383459561998364596009693410149395369535176246154245672518293513989678104055096540075398822736965180834876974540258123877513239686664397137473138007572512781446894849582792107397409025745840866655922697879632137964083029139753117289892020738720248296065193615405522431688554419682473421991733233887937243043490632764420662170410949564365255923846292423424232473719551789122476262276862067442257072793908554227891699282037681156910298783310944956505569860432670465832624311513005377771911970775371222497546524297249498139748261626408452228237739389922514023729004116245226562546636306383076612547197243971417292761189038844619551984779644038825554776527507472323734111100284334562923129707852535622648864702547826136176870652109308292637603182452569378135547410304894857389051781620464305351472556938101447706172565385267368521190023927328829056056215758250222878873292220642086183938399011779496311828943446565769593071637434508186457967250314928240895931586482253545508874637293682885355569070110408079777103613235757516356630404007207346044534792227221867004333082431537741101495582930829820291439079924560675536554823600488850906122983169122347219175102137476563417750792958946222076969329562621631942341301663779691421114622728960066221717677682127246768962173815387496709997149530118724485104393397927275535792727739777665661225568535029477215834413905851873474259317346988644474967159102714975449053089109332734386909303851268580689604109002367867557508017132729670813986994471074537344844489060767712579974276796057946849198111754247104165241538767717854816712491273478824693365135785472473835234415016511511905926235982847801931098104449097895120586016601119671034613298530517035042705433740010173551284569879123913014733556389412746909653524965596328287186229121001963149109280006370458704089782422151420731744254527713150506168637571242990456567861302922368947248361892810823187141898806744775144827241634498474717426041645482060723345914812109558310462131365142681068921821495994298006284687807486202441888382509151497035152405913572798564969459542081044532630697836430321752133107743410594523837031564726639117766157828737300549955775763738474177864300488299977371918470926486782203150150347707760792710392363342530755689757257964121390113515501117010380661887402047287318606460212775143321725656376901110011569099295758550570134908262805718022116109457180199336383917359158924690031617370467542864766281003427513124131631586858287134403084939600095079865162449520911236830631938297505113292790879301489063201939443483282369000079680142454446748536075637215909040562974397459381801314669689443972920304172302123502654387015087782455650240343165901992008298780710488505916406244891674742612447699258042580342701992981304267936134550303796512778484841782915970534195713857951164396668089580735310041468648146510605309429239728741571488408644030930315396024539875104395581137744162343091773976309384009758745477983514278971438688150215547739267253882889329425492869292565609261943748699734752213988010652104588323630766295334637330245719985342224843858926448998747510814459546283314364103943095263015539167568210847733523435598783322103550664067424435487592298972982510119230157175814378041351148625875628619522728276662160524312371407245856124150055516293255291560135509768469889883042982355978749251563772415123905396727105409244028127219179922784644724160401158166310932713396537543034847312344417344736761652129893243006122491710129430900366902595686796064094374668959679954406087004385264847961667716352041745208243883617100397614654127473975583092651834099145332745075479896622348726698074350975847549787504112450405806893121615598315348427841969722765475420862909377648697274929585855420125888055762040576066606766772784414469736169305232400849075551563236293182847990089529164308301570390941860879913228322492146791484700377232989553592339608704661202663452274390340944697728730945624707564992870450258182277508810987765875505931367638109685121786237744111543697779060284741521243708986023904730411177733554211472377992518875914275891447266378023255733426454087430840408016002168945697946400263672685597768846502778735290093753790662667026099725721038214352958124528943344111158143173452065369290327365867402679595012509080434510145953384939972006310291171119147228939954954024826706197906194583660009322260437988436999823255309151252918841259366989491061979104323778571833917194044692624555602101678658695737977258049506681676472154006407536531978694351859458740792968547459924334012747814288168458340051914251823317177172644794715681730249059993185328985940533958931976683932921040249463892907637038100553232637934466780653962934927046915580440151243263935103247963217024731894513204584075796900309764764462874321380594096645003335855347976246605725225539623572641572453379683800370517467765134751593836970641375083878704882106961582319591388689786101448646714543704808938286407377988994969741246201588982651470083239434901921688887048959904494050992062994517603048543661566384476546422898669349470714252229039290850838541181688941640671962524049608174082149610401143652325777392137245704919175865100392727667722590041694337380119748573680570068665987927743721776426825440589066427458691306525231988565512723584583934222637694693739482181277449352711231282407287876495466098817498412280713287655480053527229708858795565442934924949214267956918016543772879527213292160473111820243378009657443064184340064002879970161548167334605447572134251353963760074857723564433606332841535868718442766277613779220885087563694078725461452200614689448568044130481120359745946528725136845892646722463315982537968392135210188874994893793426926469497038427622942949672137211345932901070568178135240379627893367871091470444248750391373725093530038738343714384326619344593362227201722946938986542843788570888997746874615270960314298868562668480338304798470775537766774081753164689098344644903758581976367372919609002731201753594196373905672073995645974985971404977745862516336566160003214895111862578421125150080426481984758198492138179596903073047082238647038609454567409447317021111525701323705732962558355970665472796761456849094918234387166720052155673364522838099923119294523829884673651597890820578718978968755776618310801679106025422239281989277609358752295548415918327523251384177737835304696745961159518606328982307252822488118075113903820365772998924691467640535408345336828440599968004361816839685645786349423202536235232014792349575517288989375672236435554349336609948623300274656432216157660324656656190843938772691646097319905788670072299002050997789927779548598850652194177492426277495962564131260924998165721687556266723991933696350290412734973592152458370106679697340078370486152761221655144381677159108218042440453284047896553175636267623513831608488299998351942773282017642686098621470289303108602022040080187827771811034113100805980919048606170794487794326321774176482060312543971404494483092774103979602143230670215766945282553849109669462059840070526542742571798760951478790691815733757419193439964106051777973624189574443036077258636569999278174512903147229642702462099269443972585562119791382660894155229937559635833227675097833937696219378967211684457071897704942688897177190896430683510356810898088605975621941507273586662785964434696831414596986799809724562795073620003098444466875039420878445783372031145604586592302474777610504796030138545602733539055500385720403782045760524513028865292970643384609621467130958482899367791576493522635514535940306341303321275483651340122163095247490113110353212228892048047635738071460872930727605407408367263519825561610930481747357895624607687921220522796791958382117170344745571885927798867277180534226374031082838250232304408438255636817471913760872436621603630973638060217896274491022557311285367200836627403681482578508913780206267586891303101005584574762271288427899757906978808316858788920147249470774268559218390776441163108276058717454817529178510692014787678085108601002281698620773307395320641137312424176054910591127453308424541517631181521227616276674343563928760299302796990087306461482446089930016935750985283470130903977663587843911286100678933481485590567335526064402863172009227833585970557705755866802898915928694750010802506405386365484850513657833218127690449437889390937980521403547352698195528678421273992182478497175431826508779507512102900893971912014461275072350194435003125118753380949953220276190128510009643093088736165546724684122821881958660210322134576010430170126743592726275303639196156115524267787486955124199104876722973991887516858061502264537184714130412225696384414929879253143974065433187665426223066065918135895075751120012108439810993052276897964953656101432899884963559299190098699111588030427975322669915293470790336509220777919964199309268967037284484505171737348648804959064895197659660532070734291623426186639936592948310437177216158287282978458238830869305973102931046607110711846958369642169380027649638914966280550052363925861818024201831258993869033209904540050413935829439822413483250891672667780851994372918408776369310608819898264783228889827860764142481852995993873616787317891192948717724489397976530073216777412988729582158418796144702862921888748268553323991073216103827609312704875654492579995374189038952573788092110844980322328724152243332416676353910942138791154002305334160616104750603234327816979101356290851986003022490522493089116749947641615418340766745697225404365830436393169526308171425407374863995896103963108265252676362020333338354737563092844864733877852056608059194723450464395140726056565885005017671266892785473574863577925063362534834128067462480386762768220389695276672940790107899105606605844355915025373185630253725583733228058496588465126473192237643007202130740745363468662291212578319542185034855822706298293342328982243501382376165503247772355341058282126293417224115053729559799185644486363259887826146066591564653089408847185002956007571741232285609255632575080219193425814157727856791172463077842999955235568695371963361224199922342066861752174925921551117546975351606226746824760677394314289747954572377137377921479090473168540027267822435964311303084825242118821540547405553274392955227969896297873211732337398854638902255276447798557530213783955076607411772951332688766422413110955224159315428254188936369463187690516050835214525685527738382231690943864777918953402006279658804312440911374665445449273819909176146071885056728335135003353933243937608824621443935264635478045825429740393568232729293474344485778012337719655118037370178612851242980697988187126561472387501622511537388423255526425694124065685513843915796162585110505983492128311467610102725173445570021075817092426101987431835437245452334290082241316321978723833173987547079043813115352891560166400203944806612355423556801984693176302522420319626884799705055406588183523065282430400910933086983002962171808727395935465529934683118226389743631769527713867343404896570921382731773086459836608313028273480953281852268007792200873528663744812634849146056866855451482953961650319506822799598713253697944022798128494248458729573401629624194973932227530964484902211510428673865386532626882969498695425260149893372958551733620271856096555827934070124834770634738325417871804779812660261479837438356562737949281607139416372551425561562284286481962648247795934496436857305828064776216977841275189635795057842578225963517667513941704446606924203336384051176490292163869624711723729764671502162982010614893408458382640338504210192688205089436287665014069905247631015146115124366080703708982855764144479135429497005111514541075213938129976352313961163165387583545859664578327624619982246513587910966520447384448929007573602706465880458514474412500688988349384580905463392505828297962783364368264880792413942711709702088798746055836404706434609151349647716382655331058926890436426289088973233388570696459414575937206942636055956465667369097114678691041528983736335289199756509430338558702124088335188317800765747864024770137681457767224890702487911865881033973009852514109498449738808934174441021561579299934309790426247031958844645790958190108740641960660160775233500535646493793074491488539019384473952447098659289945716338493500955742315737539731143687901794193534932300190763722335118213348043363014970377527454539454841096635823474606896435128266096969151729341769899116327358562258303965725450144063286908192137234581583934965792614281769203701408075233271188393061402350420757124421140819806448516198177667551706717217268877521567335663814118150786312152952146500675958661506419570771627185913809112346660677945250620105351886628606026852323096165183194680155673850902097044269256438956033943689980437061708654937119031282316958911418643104915632411577065389098035939420507100103398479388498134913806435272366263095364598782761540661986001089153897489434028151009891300208188306098506734672391390306989577582958209513211704006929160706647323148612936289379233314498598365352826454948331276309722432514325507763450841297329382303695313460221953649250479121876380279832529938002044592302975413186672279902750959308706923231940151103799883997745300005200007022049878666036974574109664610895679520464170182479145352437277291635260228175001354051894324302570189297663147637679050833185470687126107262623857319921225233173464544943457530385394240640710766861131707711273543923359286863853641580645918868453161529246761571890609349609536904065183485501762038460727214123325251556836906362583484715148258911126706334448558083652497614640780126946720509636040771796494257149593263833086885566728841334899924957379473114186790653513616244387737486287446393728065437588512480797740183600638690958398818030812201063264809337544998225461904523006928195256492602166994524586762891095416295780775251163393350484246870613520801327404086844072254262983908984378341959686027830581657494051833324403046857423936811924064753707489298272609866865907536399910246046781097189168994529892855222505962748059708280733925133085870079200723231804550106220138748719451907626501424305753497615151964650462274566884213305266538310197745325054223671007410043509094721777945118274848865016870249758376818807714032077373802848619356678454138504083353436265906414634480091896032907670987036558368807072250066670174612128308948914384326361995355939881757197311293860017995772587624361711144631859538046282498265231138820231107013079610740073522768265219091013500653636485905789907309411433802652177488661160291020870845832067993984796922653947287516326719242162521886066315183874244018511292099405007470517103527033797320562801782344602529641845073284761339478523005838420398725445242361888047450881655290373108394164078517046633726800024685369182191914730394245852948853555402959272011326008922599643251476442621696502931538526700267483018427089809251424937369562834485637031871096579349204853328196787826317204380976441149430232101927016617389944938239199714559389595400781586786873135304447108130090458208212894819753682316098482701852967517866513565301634114857212334796660052282891646254965318168873196068204095973401733729878460886250156753660575304905675530588241147034747129854680047309197587181052519426615188184296190970273007876784851064396778061797742994143013505226328865506366486082209870712193664993654132055179764307209951632258191490248265741858716441767551952813150994346959652252812932285044510562699737706890798793100521381540198856325682412309559522337645442463247465101593126146903491042329745904295205027125039544926711558350607503879043857885976992576112974861848873539522230666448899406505606228642762158990730010443888124383735977297203774088401346126859233364984420329338840198724938617276168280112538884091684963485882180065591953527275901930220789045910463149649506905171719462623318930319929783638537817095787327366116648320827205603587727055865620465307874605575817122584940987295815031892059758931908325108421306180898597202200679663391372523814647156112328389025081174000816421270586942877480846813947661925002081549280699646552300886922701699795203348606711136475637649644711465960548289360999237402565733797146046637917499852009600106536813637776283623252666688623011927719322494575324903822326151006520248787294541581763480328512819298352896905315133435232056289946950810717655016879922247249190111074599421578431553752942466131737927327483897066022130544121640093332106816995784733819320337344542715160445543523207043947311952184440051901331387592406265344764283270978461779805938003252760913576892625058147381946888725362121028577931579205619770621281526812650473739188138823682683432372551265727541538817172185203034679760763208571932797781958542961339569227668591320491800831422805805372169125614655351707876331118466437530131529316812305460147887169301444457866154082815175407789816691537116663839007554216476479660091662960768032133408846860525171304853352672301832891500127231100517390300858351796630112085546867152761602295319089585171645446080825181770183697786909056157764712654944033517152204520636782831957177678745007791018939103892921731689247663602183307525756790256106479238573643474472279961643478785203241046504863091547034332785958323969850737091810558529567509914016487672462254456699721906269427082938974477293343791539185255966375530732043856125642390686496439859506989131426487074353190829624609954624515377125894894312325361653400358083366098091597778383413064414354000621619305788209788074611990764070927989465119302540073292067418174025179064166122795858460112412977912019635300362098244208720457419158710718620851484131506410094868192448046704628122062681202444389725166220934690352334445334276721638906818291918993077706623817667496632340933630652778740788171576128515971629263408840971588279575803531512567040513327047491246891509460060799362808726025583211735978538038757496997823710122699605028721563320036197498313891517574909653010924725741879843984663380548456001061233697291441002671478482846765269929006468009559517556178312247135956196870204908707196400045199094178627445111365332090147673266086557567351355696620691100863308284112804680568699179541690061698269045305620754694211774437584707207069200871601729237905410377900020987907806316280894194848515734312876276052913007680987434801853790714159821367049816679873536333411654245650818895462991329903684127781834297823852519822035907251317777392454967619241559291092184474828924736803025223751455427579044189543222101923629405824353189253214911739803970072176606529059320193663455126112396847549417814750875563806391430071773485217347583058466091506900285004725817093521111808478723148384910432635499987146976158877571870252910612751841198290883313964111467257814086165269151906283503111552420105976013217674962539592413763116418699221382092152248871257679338270055544914128729205749088871192413685899157553527553749253946541105121198724065403570402419591242590927351030495251920302631758489841188022561735345024627404735905286575245488495676841912976088654198011185265671530474365111997262087444931519791263537791578908826144595510633111533038892192098198581246553166818537735241939644038361496759555633897904553909935909496747435486329373064007258178853146888667215320059136038738314668164927439714865514514811756840378637483861653384337826579845447375791870962419815990125469145346991461869847916959742887158956229063896921423788661501905374457878044709939817814621734265263382574347592348899302216062818450989145084149715732778279447474159924661083900449683653060031667508348272651500947195641626995281245225850309016286877753470964590084347667930283713871108827966242433859060055840177622006263759242402915159816595303235439679582131362785675007699862507586290778788059709408112166004749348427852194653968709641332068404419297013992756981723107868032375062269259370292630002587413964089863051951998770512196869499076264843564088962040862279162941777114459717663322822399663233494138654380001335065090600999724265026177058738618647369393954870360981952744936306124994007337064020009654063360656368561695436263707374824358998505229259622689962160960969029582788377384441554237610595690921128644691615234668201727921549010706643899770824288898408287666406035310065721779169012771711152749152348649976421987233043549461852766060435903008628728707007926233567525768075454399657179690603996940375743100074422241750130756555374783068740001895850888363887895363689775160115978236145918124504265781461891682787308907084763532441654649198299697437972039219333304728715580682108482647084333836095747967579644794482365315318978938521851543398978557052105177109343369493865158846766628799680630353873484065412485496131003732171983112214357347161335325102965193632392658605530172363540564322864967336610890178301944275937655790510281995548609226276538738273439770511541890330285604173174464974357635054177485204497299233336611169316737111517245124973957251106967795986610147901525621101793138551992627140902696352877139288808529404341486951706765328560608537100578222490144209481055038030836067495532409129881971622195155957860500621744333397907366983304943939084323935320745403106717027739063195951758375920288647103765362675365029185235585101738972480906682487506348161295819591502102233084445853197728920888176795649939649984751544151208570573649273182433868904880695520975262748525919082022339331151404972645956705207158319390277349479286442395118863390375587924335241404599576539713446157680363107538827127529139810169341242041123735342456542959620974125737174234859388874281303459242307254825941194945613165511940450784927158641465440431517007800751674278282974367679724575145626624037977901529845306105433333944007457477128498985487565576972541560769363088113865069060403693815873486610860003111599933657294645624642050991295088907558183921492354703629354458059990363831607701313143728397475868928677141141053944889441718059520534301785528099351204486800907674428883851335691635692512745877963711745789552587290781828182873199746607947192862406113614991240307821388923282090167834525172227460901867656482704274330905924198714860440631282371937650337503198550069273456362612784016689018076622234267810405038669167346803446817682551669997420073051253409975508266459076472900225649756827966572963215257883451724306314719022632108791688851862874896663511435670643959903130093754544123852475274351223540044781597658832472660961559683310234489618319558898385692180543817263864548150841040875742327712857929732527775860221865289945946303558402581520479461957114019073725279711506080124517383658561205311892170864947456779646502033603798691115934868549729491909153081878578784266510702785069678534192035883042064032095507901760828718793043044640765350647264394454686328420654211419328861328575132601955875032808703200666405638288928446564209139803600833096352853646605417074627170674484325955602275930193946613897148942153319046778211718662536078351180869985955409478672491296664666325964548912925323889759106331642789531751043791491175354923371801553575141320464530546155680704805273454363792667964895276115690861989399426797729295702920697043950200541356000333817010031861319734014448376484033235559966267678543186595255835242347349281766247823466543287182614699761321552675228881578313101033107198208809284483333052930594671134181249585857761726371830660647185405165953114661980226699700676406126354668006844885018348717756414788043733934011409381202201911177983626778507086897666790344582042433873874851214646120152520613566738718045934251608905661558215824062463186319420108934014049926254121084823877098684097477119492680755751481138586554402479792029607470435844634121879159789440802018119310608699135919928014770322211918983500997447319347207829891211782998705514196030992199383232887595501939626671949423520684659526667505231487338256608394533253049034161236195793393665879154600609445384428925220125496253253122257520998445553981174588763275914805094309557195721384064257781329431032538812182118178226795348980012258703050512799726141815166758763479376450792053314105024792231046128115413480583150959766314978498701017519755622063759868761804911970920118266329352235337392377188730586914004307441511383720447281223039929586215596357245395101862623097226492737273343782102403267314971732366519480865187216884326882721624264344679363417181167911748898028364666876336075312121215483941825779538840576459556633577294831216084524348812866351672889496069973357797283622140063442714214547012410399921511857205592369432860824031055930809639548927584459881113422446178602793749311337784222320330396619663152831568254775570353573431089044957341099761868620151308577905707830299387804869041333649872356370177385275230731848246449369566414777563664453578997208581830799034944802010396504031235175861236442290209580038625993310503232662468754447274896080146589930722621362027325550700164165545471134545768783368789909486739460471850744966967750956548538497314145904164966648741817384523559245768440028140617152832502392600124852078659860661623896656224518811548675494774748426695868769632410034437919776030080881557784457415151186184916908908236938484704413888931325757948091533155942418888204137103409796968363613662568775252827765630816762067464043939163219037522334795752791353592164128118831077548816948287695935906711427307955055230838743200088903363600999462420387284012158473872474565073694632537550105840941176820044931331136698960152643708547480377034411535134370847762213723351931822532229427623941441489880002450376415392591264153045292295655311775431927939051611165451725276094817218962110609490737642760724798295691973635651075231027071046975688167878963445109218976755637490565037476824816382749064722551133575527304614392662584012823397857506987908797444697926303641314474977860232952108803857301149827412236971192615209168531769300438860268187250409063698832445690542133490735675466657208167058272036517216293048233707339791749878893710673550468138565060172271242760041511660099722794698919928212906047249531556213945688597006480786645859254814995677968780954582694473159029353327694204624543597324777980711340254309657378474655995177455576273785145403165225039034281187469469880390588729803418760210132800168069089044797478526546307189613646685406595517678055767987024640923412539437681902340546109690458062333886533035079365539180801535604862063566716980831140724890350388585022576068115517868033557506530661583978695881898154290788751083408847598820540947436304419812030583864868607685111826498333468989186147247350696529171449876826501271818918791816888200058594794693776575789433378320922629214969919813604448296310231775206967250409480876450635059667137518160529385457177368308951574405228656709532302801454111658587692294016237454646386019203851650988151789921609652227824768505828284557599257599331292423995684143977583548779043518852857471572662974759052565892393968376189722414355112319760203983486799540267789673455419058659996608121800661567679540540422937087998359000876722869298673801741198411510407976726038917243580731313335075412431619983905699850782786780338639025851643621041140624833293771147954940265199441913213483532620123696498264951822392501681110166060944775256904031887927227645085313789606448615275450761568978218889616397176487991293666808472900222081266548811821765353601591042028771079256784720934650538413746336276674262895047337458685163913013823571393558913886014507981701937447630165939806074634840977130785047168609819195803920161763987870029918950030543597714219505733283093134211154937482625727901791058618593493955534949519879185058926926357895161443181716327088803800639959882784816249696758105422020105355379987293698724491430783610387727993688375280315848332849793399111438682433622110359863741671013858330111781285206308308680721059811905454247061759200346130688912811531220059142403249344519283623983448135856242603894778942553124000732745206173430920124111566264594650835518340080910291155148100507966279861447169763806549242214773035077080645779982755502148967468687564929018680212321550268602430183475099105618014763464381482293153875248328647566094670346384633993391113850511041139093075992485469179062246731782328745628378251150654701512680390131229649072669489006287115713137235944491094156428174963140386216842692323556695415670995666198898251359460838489370890547440972985791585577992165882142323994502403168757310337183903254650363084768826545125941497473461777144630949485063055140872071206264293259580810536605045616026159678251594563383706252162211381122267581852276101082387980389114100334598550687922140786508006445192926891586492696205668955351058947813500047372114578470701347669434861910968090023599590024064773675947672011062721087777670437350192149678278475684783981870631150762471439004677920678476877740027393104942445943380728537102736002625296985967850362237675801652736906744909773141447868240393338481250001878921499752373129491171210333005480578371243924999797550333794495097212841498414924122241347224066761172215508559493402540078862792873999602402349886651688380536470075186277008623636558252333863697721959160170681975266796482108043080134451076864817395785122296262243715852598492390556474093053727899711330417446655687729487733117527693851453974216353338879647470212597447310317268759251775605935515199870086549623450697330701666762780675047790429051987846685581273171859242395411657105540514567306584309550193809295139523657099227268478341456999297876987199140980358292447355031995417049382193022634081894805096361251016200622259732262317304784758049072003128271383865873620885182564389182380005693146825074891318938628520338939220896986477735895275666523640227255085798660705649663073871429116190698116332663782184697329318506052873654772085360776363878803269242778320328710612484743707380788359003109642224249495537686004686965236959036635727053346590839603331868051840436021977845653828650149869041834925958629213489787394478578801830659001974137464278433481267345340189927749783145134504163278724042705341254976102390225556870956003792959152507951772377190325535569164379315792988157516694486052782986905002198432428250358722222899347780290411013405344622379549755723486447848324376317656766395769992384472263964924441718829341394764935192318924410424932413713424150284306217646231056717785238275198209242611029203622664771796451921363532006577741684836649764688270820829765810895677645323347236006412039360197849205604915722064548232298140035966071504621951919826765570287715778625542116146637338844163174535253852635430078666070366350137949668780464585376769108739136606150304253456917849820484347117872778341807101990264268152463043103028802360404258173710673190012221596297398596278427768079653642403411217005225142193350258855191661743472953998217800588651801797592905641503312387851228438022677961922306547875629085478474458888119716037607231618179995477684585470671988538472603941170803650591375177910785301392911501125749189381355225141712957835462203804303147404358929241886531558010578602280060265058590935958673583160164556807369633914231454847613359773389613966351163915624962827360343403247047398298465253541642886862048779815000104985807461173206850575118125593672170667394372818225724490224115845365783947037048565988930470319763476621770419109177345880146069056393900124123748042701357572811077396088608838813299963315534679703277582516073162947139310854961583111728788916473505212393280318937936568150452919255467651493517613316257346868487959215594265154602923055285897966901648489803891740816779395394149888613727302230640783119827818827460308593560335679088386818816847195008077939548703379713943191384793529381529013249558984328123116194251497742573679673905368519046683422485179837872866109550082705556093222276189275174022490331408231199780330172441922148354589997958481049045064367139888949021730317215630927888909417815968269578887306240914128585796328870007827153601392493452889819842303151438624070887706388536782375769553628531298094355024463983115287076575883325588917065158427361302053365394208830875792324231682843693911237415221755711020443942036281032043242221999045625721612740117055856074974397903320662232915590189163417001099118357739448028694895720715411024777746091611148702881023688494272087901249898239849890127775263777139435975230731918149239427251059246539081606506423190863596577717587454512496774341247433471974815248493208807287244861772170221823626121001300944650067979112348396891461616169179501715760207292420418539722622328658139059364947659486423759971190825477575729263471980102535042494492840625494491236396070297553250006719941746496143163010578589011875577919907247385592468725409460595997711010128431775071938798675405414966806294168838070687875763156393391220421941801176749547273463618162406815626256500112899645496227213094746653044564864419956566938401155452757064392003112060623456547877224221648940819904551573142089831228030462235444341529354460572628135160951274610743168389218120266659731177715665943294720438001058420713344421014526804209552106013642641964081971840273600143103513702408382805271761288552589302622669231067998067962338170093485294280348836558325172712013702766113531517052475976932934833167301109189949988938210650923047816300046007807811130680002016453753946290554550551059017421903839861885167260305537812971580421408319909995811629059224951235243810538686134459781009200963463807126118279396879587668061504700245987444031453235149399737046882171324653949254317588405009543898927175622447310494986186444625850150258663693533659616416543322640341652717115077666358819861389721568178296251077612027094644043251356018974535661341667984072775485090616741102963319941523622696724535424614123343967719639318697835849051648178857966505250133646694954127366313816374745351682665900816162690563039118292891482705123661509138532640991049206347903961308344171058512593874103961314388580465186691974570380756158724826055318456438928344365340800281525804167368303371878757516366926124240059576959474198717176287404008601897297316805854967458066765371519945490009744983097318300982658163965278357421771462349192918044003962205827805300514022668354097032380288686479298515647651081504434355070912083455740040177052349693632319891955279645351113780588282600621357834118620402037107817732348401219363964204301376656531937982022538106589080963364558283465543221242428144360900079134858270983500318727949906429417407238877401215950039939763917834969869511502097036907447293385329843190782160534209850601409697765600984106537149510656636536530029088482267321068901749817752884509785057825944803631963997409667935862472710628694453957616407171723033173562064410136276402626507884201315737284174999978204488530121475162122301734014653700306939951681255394065771184447523029341296555196569117511834555634190737062345772183134127172974615748683205130295769218673518330792546004459851545569241106876587770642377907721578098407363082669048051928201224255337631656708230140568467279724232207664166938505571712304915304104595462029517686208746262647752334393451041870750756684609025593802955946262969368815555555953913996063049301981667870736189658372310816816711260677953344249347512897033399241458534510099414611517989331248563536334854622515853385979866612997566893244334187029439305951032576197826391787642791983670947334486324337861378355646677608747208588350633534637841599710704196801990034611212997070277186584681437509391887797804674612813706327385212825185955055034187844191518197021568263667507213312463892422767504397507570724195628850305608005935739305908728880394316953189036938353695279442294821402619846610313267410650147390337675947306407725064618569419410923365290926494518024936874250914618324593527539138212674931061494442185662773949746098768586533996489220830507526004116784409240965579791283862479464855657406061915507804232945796636557333217544458766574060485436218978588808949660299095539066235184276487799798698528320458872513454789505291443319585081363353051924645707811331903707641115972859483039132863137182390229989395034932789650421085573543277184653845178582854631852971375837801752324511301728866272804092358051796694042578437472905929740218090301540352284127057336909540728571625107180335877341147410138917095674455344780146963976324622952122766304310539767433380144812242808821909276369975075846212579223161332568703668795852579859903739409621436682874983293946217635533478063524296663916873208471504941779598849453019771242624245180776273919687755960728285992971808778873987965660485129283980296914012127098808815320915858978370373763032849274564369179350075642740663701308121423950137955435179753078156686833565225161488238653954204946013542718407534483130958611622827283068170835524257673241108990394956742604051161181390571939956490089075711531138789009473773959258231892618260139134092515630762642379634269319538557061629841605303588410086517892639781351391900119242216096543028682954679576517540749234763609958258436914634839203519557616587259547577092694146080823928849362209932286160091466973569910830135558217825506812316679086456017357804013398275384278858846678703973221003387217253600649376765497388383674700880989500967929803095669986661277312331736747841131717686852076517055747958687296049797888053434987259264552019765130304232016463325213152875305224505888262445676838129907821329320903181715890543451400554924177366031823159881398368734164781718003104520486410043876664219609761528112703825362273410015807371941963401618023047172868530588035319578889856698795577069097928019571772345161419068755017039996968302840984300244745609965807732152059391725935462092025895649615329093478386808920106951477605290297154815447140710535978236545278771454383281423465498124328687709529595529345817671981735501862946096003095975126069984416007655092757075586642978080032310581102824423616375707103325382497717733410872950479039372324088749307917910887351382747289092504374872664868768998552448344343345699398779182894521494584003367530103754645129231818194391942614324828231078393823706201404330392878374168281052012636675279858326722943102060572823969163939952261776659581769913470346349026156997014498076818899174297812275198929357841793732817378236493316728485286702297513857540453047379726980297227325550162754741530339402315487624226156751848960693011427884419671350720868509390383274191774835169509493724060709533738196699290574822119476151124636129558989123952587600041271251133565426532876517749117490602815910371427203450333906710371492234730065782909139306461072930497930704060794213624353840525976063236630967545708629242702101743412146400832029084586438472993930531554291273175501238315758607825159760109999503977034625115799673575732619052485965758302621494514655936232876675764108916756827066329332348524999761164696399416091666675656661157394031194140425703312716752055155562869131740952474526704455615539830507264092706290571405688741238976499161931329000167442992407034013926719708665168718306009607728321056204927479422871742349143215489068046139248513490291039521764406593208512542704747625698917147679709621692356159043403497524249244930431648405849896732012524035308841192319396671544531919745876441641620716139908339569938836178339489362063910044742071962626966722714816804219696615191488754940774425710088617708821355951412014380598104637574522495887380178008363798636330532586977489703522402710009596315963437055376110370832565545069227888567406578042924087674582621463534136775907946771290541968887375499778881715079265219069378828023487180801436495078430925426294760321247810360628560217457515607192838880751968976340894243423092603275954238751303320539462801722409756745768672600193758710662931783847858062082288708918226915946787901199169224320702063453304839437412024406637553885438267547486481983918727353157946538920418424212623107016306585634649730565249561961891873055357497389271367960508308568204340185466462259775157774422061584965270332960111847494471003682067681356633608088928714909595313818078166975744477817936734317815547239199475037618830712431572893337329509197400638526762844611404543009479067798836365328743848999979545377450263492729324784950300418339282482259810194086754568393892917368791101447016620577873997115289757781391389233924284794322726825668759651015723625320344084444553060248254103519363028818317693288625124806477966754530216849133392828862510757967212481298945277256894346442411859575369664498922712996807250357912338902438421504389317670245294019828020789011707123753951079517286115388566731230973854852485642617013024779604715232672148896960803727665310039629768913983651926104046278905597977763954085564058334074471712087962713476504714098172500481795544414541885155419946048483458845137266612760204304957087805243344254201677409957248185279290479141022890964607638996327013205953057181425631505888044140826886646924191946997359264083588340347556224483671734474360442713734082984589050283455427631625254274447911171307454416808931297967015189240243404183946536408822233885177799585031973676487562042886979974360367884720181547670649134343684887402681532408632631288807033931691320567812722837342073571089333582609989694135867467832896035235437700661125224611984625734827602830681294450067653252107489351543852335612702948885748905305782382666756892040714653259204077969410441264456806846813624964219241605521880222231624911699995140162632346728717295518569851687241791264704464923503733524947099036173597747381576863576410696067747761787654806212907735512536399561429337599319155727260224410145783638790506576657513840736841726509258810827475187017372987414296070178290443537003127696699197018963663261910982141465166050198356371544542928714402349980836456120219537759616584656401198056168638236081662273764482920637994057312288255723911163881018792934101345141304002204292979539299322561779636774411936785265445342443169372827370038173458745565734857141792084914649486201099637597534985966048413917632313423989946672119118950624636016343142602628936917663135578388123679324180206574352830712099407235437175784180902048171600015104966559265552595645916697574503830224093867203897900328768877108110737066372940246336284660186421533299858809783786056320404124564047945017307913172114652417990947236150121665625187836829157683336981796050170431068318091078440293850328883311682172198069008575234479861791297183453424953899413144861712422666116987003819564771626051373217239643469331515745108189155184059850085005610786797317074116794312132784516018194631611563691627199119485815246895468116061873291555984298972827877399366210371365003087656331660101400239707036297102739125425334213437842118544891083762542307234368195446720741313652661004019435258645042138406961888250283648163910510092591384962381560674065985641452799460122277430538283652114856643086131180308522524706554641005471132776254094318048189826270035046485788862474274367616166022265444378651353655649672893073674986106918887641427354413230040793878179964538013129152355533481799785842957117032852812840926118601595756757555896542910787163121686928281827622909589499346459805843396779052333252553321317711661615971641822311242511420190929099806215372456633770324795959018617669340248795692656849751015385190502494887941567648142187222585610668820075933154306435896504990248933719456483588271654200491812196911527643688138370990243023750148034879848715049801315390930119254444638208775208947548525208427418979590740596655087429517193631601220179647368133964246500255875085194101076331969397349303809080920613201041629410399603460393556090924592849155796057197298604356892505081984775513444675195648037141859714097692422516239869894605617160306612060302130107269304984663471890778218261114479505481497851749292775626702014721739252645512970840586990699829902689381623050692937756158375984396873581543480818334304306919471307672833487127466775182897652802413891257247028040021631843273047313416790917833869860571967861691807571232707626860375986595096611172509327669838413961602899535840796573993985022901047833694543218425781871200635747518563546377637847641226770123719542138136131540423262121005581477805143454608855295177612679583850363538370067823524020927483155281537538947849875872599926834925592203131475458537029877898159522495420015244564674354860267255315957231095931894433533273622724649053872497632724418909157148823260843901993474464882768317987822637426846002698329844388867623696440731991726774735061826551833742955536297129614105372176172935919465053555052837357162121319595686482543624059217322168844061096404156035244662978450696177289880691314508727110630791388931934145196385145854952665679484366153709579909418691456424990413262030672458925918489811436473769713067145450156540440930416398043902176911950341257465374576184439943939485555285371042712421690099397233435565151353275694373690958751455715208354476433944250423253534429614495267230921347813998965697255886034314267024419759573398702595007026656805581195303502449518567057538217697345122822374526066072047790014912441786786100230738896190800780035165112791368034473729170594317024058383269387038205474138126771389391475605435699125517359984375131711834406666558999652890427158062983340800625983426530032282881284558385211793771820271763242711883243803945578613689054452778735999792921520677151872803069151615493909173023747489363237022390252221992185302039820439585776480170938148640273853076946783072720281492703872242970454995004582349132822255070775020416974128686074392235679256647338108584589901971162318094134516357280215377279293530207687018298398716572023454223487741980921386482818817320963063877188758245108841525259082354821655528545295234785443902849709700769255734108790727574201855289875541429175904684438187228802530033785921150163739362547488663602934140693473125480277339003171091899976102158151116062425444211163786072274783243270218876929503027873750315439803829844707056311223334378683944333313134123605398226611429859318965461036366123623279917220938097328104248663212483182235222542710872000501099382321972409043829194955427391179984107773077174943600607207984697716558972218687339973642436628749913243301261867821122063978625342926288986102556385868031046281013125239220925415643333160055921863941976677105056575470707256799995670361922712562373093857543730983276551891807546256677107579499709680806657724389986489551384648626101445832198351726746319322948569423183503338266794787237801078978924631014470261101984084705871705644837188266805766117309803275879055538092186747394609612544449449311904849448737294616335071359962918649424619216384173095017961112564911108893526951933080635867929255388713764762217160186765008114849431553237453246063922133037059834837655140953970445206256319412859188722499383883141768677539436350750632931829983613630306312269092841309755679015212826980360357081842312981328529776036707355187203053029273503152550016266365136075765057670284058483917357130202588723752993499877549430293269032657858299238958145172896232447322861172417145372043806105609275371281068620546638411007968173954169176138717095230208826388697674892400542462945405459096473427627183247695952651349948378536818742211625904813151485755828843492252798299116431121860901893496735633718204719914271913727355499158167294082442912394005981012548937891914373430328798285930119059023390996569197784753675752985470056388735380433870675043403144813374699262446681916044256006012507290830942335321274167136087292850473759646825284889333847487660020526506199348321486201825578496517734156463357485966913646770750514906083515963340254920660130972744936432585557635371806953366467292528396228132037550525548429672024219379931251419498150438133101173535473299670947060164581596863716204422853796582924957551113391460517162723630201586265401544520748201743563433781158348591966606324324722195904428001152276789498928694761077431205591984058577820143342166150633694492579273416506747642416653996318320347873348002858284832412347285625148699982940399108897663180563460837701304543112546193839090012262052254028516330367536403808562936376685201706118437767004143296815581490531905743802423161587019414361800766149281689596311140468483753167639463095366405429418140579895366897069340675876954534815088198654377692669894270865343220606860191088970369285071582462575079965706278197797552725640732949130821329186112901375223154522703189927248732354808302820573882333638822813649411894838334701330474150311714374081789646059008166241338245840621597928777559451130537482167627482871152297896780740810866609604968304382766219668179680866137183555727382237076024105243670983813755764713099744283253137185430138737602753385433196550359676062063250923582920173029593994228232459868533274168159569673388576882126647061317746881017958742944084022223895622171712038442405449866026680813294330172264903230202512406227788023644023281289173824833141024833826896941357223490775720529225676156899959052235552583246864562593532757529546656628303975929433349008009100306971868847075508200348618021572890818674056452747053878017019210288246624911252603962626584750535980141513864922092219422852454797953809283261280597393075574937999559331067300057413099434523012565469871050641069883213500771444264982294892112732896699048869235415069371254740612898401832231727563786851266242991397285719742264039822802438798435775032761899072470543140587999213770555373183065097279958608847996464251817617766902361242786494532186570869037308466969850004784372405688339594348587840555526309815006887477196475411468953170126477834089196812765741357544874133033229692532524041280555379396257780841514957117115402453384342837818052422051813132039256998024664282213295046039483076466649872800671283385001916131727367829158314980750810866555122792604381462368458959754400327730519760335418357900750107012418347221280835937190496702572356283415256819125726727492139340292734981911817140306264749613949988490814280522178467671409178674364582201880285817807722078516316178869660023514300466550119673692450996227593758100906188083420967256300674541455745156541437507150658253512802675399081953809215432065567707159628175800084674805848089918637223974393360549761387597305235918035269199434507807015972981528565236347014692068458508180632570687263194239823667407331313154652045926004309667553004907702511711539563234622694225445809610065091351651975306463446150885238351750295987921031337603667704873872476682319018475559679861757239835744840633582822930256949459829804535141645370792602038805412727165407804656193792320304187996076156244991773089841201699377681552674010780184197149523267986370663129798043415759097673178483072827957537630737032846888247254352476540448655654281372247669128297723601620964956981540401605108268266908791312800906779487166334753215877673701670536600546227212941123219911200124568442107265961094603627962408196738547782136759943703263610318256210936048034129553895880735380930420657390557982080712940983295908256523721845753127025018456375158046655456254678719939142804952973485504102464435917078353923498531762941977718795473896270404495195051089914464647818418036466132407764580289873557403475270287712633460681282168640723653864337077271182118249049362475730847434308322301809912188278299050273551451116892087022830137082846419068786848053895274976171104829443377302103137705694349335311684703352917896671834897390496936501860310172736941968499060016002550972526973277738805034769430052166026547246201589841724471966742179299356892964814999254004372775642892040258546749124439635082910892821307395384220270604383422759924002495194306491640088694908945392237301845121364407011874382928892447257164147086812435669154495715287506029012128601581467872456511301320279491608081355412877836052855600179023795414497764346610683019638134732556891384101783249773585320969547316839078710959073158640170372374579542595921515128822333782864508069913338283110791677255656696763524142211962588905317279660592560496474937973709819969381833549663864258056142798276992713329065298104930598469878542963964949177865457063934411630753929544296738613296063316504237084672607815835204279672075472337955593141754974002632908419734703268335956383667666108191895877364355113652311863776132724856184951674248254330485536386866738299028791315854403619119764293488233920137684622864643139696874493955527603744899823096132481363386194176729004424119037852502646747411160380625069153668702281015253043835598170629318886669332253583371185751973016934506787025868137580480950199038299468819527812866911330029744586301814111444934079217706795494790875343057827293997088299479600350784756519320753542792665886728381381168120181177100629313092011698752464219360071510024580612571105532524740816095441078927692015612682328610754895657661719188660579191209611351004355978597244107052848963545763249636581542543781758748276477006388826703806304970398058611893271227302667877087159755196488923365179723026692197204825542820055905256736869405055113957095443510314592453345081056928348880970793402950053972211969166411792844910368844160560936769487372305189764050655850770925727063520022169702589781069604002648251480503199756838431047914651198785784905428241692249977861828740694960657428686654150533271863441697720646082108673458228791704476170714177334532392229327886821752932524740152340954721510155786444938736355662141282643498764468164243539056733307840948691871341313568242813636833962589277141842158230265200098023696968128393317600534159496557817013920062941261813170706309707892766846139910855364934916544135642926500081277713292010208331374904525269171073631396965807180375414464173603031439331163550079700924141487092351921424760534335800615050503489410039051233605736937537946203597060591064580972687737280688546022134036570518671313234369376645925747437357651063744584723810178467395856523513603820166334264030449300602679019780503599212814779801567622826394741190535713419930059193985054551045346117274350451816772881105531353983581693212907490555360882189238247048676277453552207298536296345665168622722589989846345373660100613103668327222081035622272535282855003707475749988928724664408782864154536153542727957568557549647911786265594816269938378521809053095792425228848810607346457860678474305455749515613176738617961769939970157502016405995085071427750339849250358386211294749558037615092732207225341262874626593510953233582738390013468307935880903645827576129548127905982572728792206895282991847031744887907056447623919807464237188937338792051700796890042904811150061160839858771127335316029680919875718164790500206203588674552176335222839829900026342055897254146191182452920907171143463999141848862642914576388504599748592379346052584476841052243793053194708710930888079313170898284332637593492351312839083445509037484068308522814375382425925862861493211959621077621681000768003171425516194617269502952355087314956093493902396246139023894130323973946450979063445112848370981734671168946081373189934731271786905584349633549328035429769874312893682555176910023532727572893086215393490953358374088692909853254854215880042476766039534588694729224366333063608433855837893046242562824051533142419226243523063634132129283692027672653543119479780882696490136351469021937879052747791946737114254927229391767919307243872802474802320679446500760772088787495298905197326105872957836608981518498310350344317369219038249486766110484584938939427138647272391101723088702910929559674609308137238046954551917956824808806722585097972450529130121481981053798882436984288579706594295919803163748481504037601369233863989694782597626492424827095539783878148703136362705169148225791397735686883047107186353734061219416970561831584061483306303529924042873948125717340091924445418104237308859770101009422738789497191133331018475907847736366198568599144351883043921754931913073938666542578471390820000069709944446324748666586103541581615295514957412464461323235193597319417728954416341519616319215821020610353338782005731721451699210928949504123764054464871357895277403793591026611159420225833416490165532677593814913557111179728649180082313695909690949392291783483329897673778894574255925890402524379946112741377980796958202441146780135428155549019040568131160319765929099599429893266043690553529237313868173254815337849703462491183932589685868137740161558453635887990463365323246455457463593138126836972844060065187232869707602965887998999386776024140559663888497876113551876202012913412656210340912886120849084540074496812798167542672772834867187736886928116038273362711458520177697429641630142718577836914359101891290953688021385883135938520165216355759008676077841925174557228255738464263771280983062032432461639447665748569615260610751282262965114126680201741621264422074987700050933019501666984953792221688809902846691615019630960639213527738392209007138495365206337004979323953093532911267216338143997806682521051754160062340592147113070449610957745128485128094546222529099882477090938090778659601737968866359197922044287569679796355360918708428952417454672855833936123639223609991528568235809863895210283162700934033193948945064738751336708560338246307967035197070012538783880078920440798557994096513919871571516773892227623805344819849222370728445554848194106806667889826825266865778530042032773356103085867733074623773768698490410093144454588684301131496783108863854582634476693647639906372264393289133880202156877644151908767488926647423988355052431105584409224603146271589908533493319602314227632920542432948163418100689369547838627142873838108448436219869324171855803473625835674378490943203553844495759617097383763694308546676255396275850493539499482709866568506261806346490337595715596557281160706521221303187331592054324654882179000968791224989863372396997059790152995825183014917903462521149748410734140998107845543515878824382722391751171383582215262302175888854866074260591655513845895832811579853501993156157388498972822683966630483664823846398146738989023658552622190624670952817781552338350727493826281950035800720146472319549983092392135643506756995371531288656952836734878350902042580351749078367355219695312420840896148737934959967611304352484313480064889590255395538971142200799787937053580452350644127346494473061104762796377111527769441505855788680127160918888541319927043320672034316436201571448609287053241582728865752039501859226777260126941358761949069978887534081344660514884645150343612502724379050055975400042256393675847268898386966887791487774577169312757949823220862418232967479560717016521006087883956598279852842439314144671076412964440903339955739363917563581196429918180290508401168974464473046579049179190830618592184738929163301544796581423678394636443057599493935383223872176862981925883546344737822463623860403879102335230114359483674602539777201392752591760298616618085982165537590079332890150459491731676830372148449190185011507370844951570162743864975599480810669172824736163656762296580784515431045865082616892582933956859424480368873347399755197507724224538993973101184040505140599647974335163553842041722567258366595641764738085743431401264521767328565123584846939643544363626561046134525087359584915081659437590719011268135902865490006847297018779773971558711186637230142678683334992316937287525577207955002852154790934377152427450009990017740529230896839884774008882578246398507586261690233963230783462211878654739734973940258351505516825676219089848525933982633836215303046190309925044443255551535721430572121083682211736748318556881433620122196618194307278243005586905512460351681167409521658701104084297834340208881589477546272744453603314593041130685726683831560321295872037026497282921695114632700116780396693701477395461143652685229074727619511809103395020736303023067664056199145601929520344154900892172058476000655001353820421063977142309621451657091966616699779337139783870212945665570296481054137005638088534174931240101981560313408837459266568127340375135950342959302239150757663200170746647739847914009736754214533581181134981635406369932277105481096523914644957269483581972846641734523141819291479555047932726939728435061031102087514679196515733855431210273887045235844490294434737046837678032867458120178348310489676539920044716490252172411500232041835912205153152972766040617827850656127656709274695043220264650198447321418581624594884386041948085680925068948171771228340524630423098976103954196488884425379240697131050533532336168490095415136183211303328778590835147172309392122294818226114285524054126446667385977492745226145568068109003609254301305694624751608685347905074495578148152377149650987405859666787487565324503052156363150622824740529287816634004727898709659577535020019751390284467428779983945226063461377357944209012415934507153135509450294480935960454413850309484602261061720435669857569447907915339244815138271278446815285396404577674101136812971526983039448597720387232126176393386044466269523626059052797167845569487270681414512522117069380363007895773018887000999699010959031757056587519804070045777371058938647945394788714739245148360286562499279855585035421931939123198432063782070632908603116051606019488576585065832919170419435465261953859546471891144906367300377870249506206039930056564717855270341760265221014832075586934850586000090313797823114184929963175694642674141778718346519912599125941975840069284831946905038820843882436226604960855872638877301137462166577879356294239043343036897066006546591429142630967567207949513680069094336405226621281877002846927760053021717746878888881091866948944899657837611493393012284807476274208670026651785249360759965777575447705584448395200077027593902081148541406001195414943138948277533777446015901134029343374008792705553587664084211840483896665807061165933723322627525225012295720009170155453519302011261566017346356146381119490461452283320925118164582144921785796781454726598384468863792099419347158655650879427959413442878627206997000245630044014388320842726726548660575242066033234880703564456437437925665260171358420235458109695586581868573952783475340653959286441836481961852101797332536824185510419182789432077659770778047578238849868987092729971836116720008888291585454027496328662352725565177704340697578119460374784644116916677513129042458788336426798648508627988093577555729479767974029875087038900742304855408424135207843086216116580244085831928063801681182674786068281801794395718626008813117549548016785329290632495855431756635941301667215855644278259543782227642522679105541698889530125163294391871917197594078319422661718433619441117854448534839655728846383411217392971762932190550293975110959992514878942709776259744726536904791388013528747095294469977036742353211069170707753980332092967681686967051394945706139951115106916737732104970280296229740550578024804933407489395621938743426553716227839111716463159498690233152500739985063067588753262198428834808864790632595632539943716974567410584632270466292976691444534814145392059840244378512020611819533268288438693653585451886597991776263710160476457707651450747056828915160847770693566314850821474650392232091536804750569761256377234336043099425411078256137743958877647341242808590820680790093542201892547817656955260433791881516039887803689443164465373538411760755842877156568178632780001050333324231298486373701844189096368996554977995065515194138184117170778893377328922300366191597392916637420860894470436945587169892041247061569991311688366448228575340831217312290586039749342084157253652206671178401053270530913218310240531547644353274277819632867391028695620134381004825444910292452568202331587772413227485282710141485376082149926036610369714622058403883866460065227791418244943320198623189621546927010836370842362653725716365423401881213749443536964006979238751888318057294474360553861318736023231328299544229695636889626483798709791760708192586796878241130980784789789185817796621062132057885518791898969253790060874024270338204202898067643993276685265226927972817059759795089156297810664519019929956945087715679616307381077292948691987599358849744281601143665138296370698188906192447901671286368275975232489360525486520277297213481212711211033630924789640647908508233302588798476741955530659595279488485776585637028725770397347570337294345790091749434840757145381711544512639232558988823904659443120013677617590571129957213701831344678823819550080446621490749368831306262198822094655717593365153779625039362174570050389012702190216563876084844747557942158705328899286771631879695747394361049216674401238620432017702822147118169004079488548974776305659044466736357687917755976352653844295344338302164917139912738096309622849007366828958105579517153309787107053933225014953606661751809019175427167418898230266225912948057430564607265000149030200374493397541876045849950874837786137860364376144318821392785727725993260005183809577534770819487954613261504892538311918969833522101571999034163722035437970361520343483813488748584108248265120716343693529521188651944287758313231196205774725930528081313027597632316937814954817777815383236417545595525568699668364968930022523384495100114896010402678418947876631200750133624700391577874756286168746367408165025815559387127064548150259962040176397670122593194154053465136194694890682144378606677399240794907894305251836750593314283091481503411793218477509569099799594601821721163110967145537414121311083221447006193359536303454418567117336015221889700031935355565451454973000982309575199255881398206319495478399934249455005917911357537741809964566112544935559181636879144561344303917365568647560857832970907540777964472164467891703008540066402552720982900772660680083280697393553499596320193425870711671221103970784647212058813152716369455012016975995066628018988154970073203718965777641160732863847602809593665253314288092712409098761046692414428413207774597149913138726392876909208555287046027542447686117844492585737690464372523175751205425203601648500865003331474866068922663817790595982689382864601563399904676793294779155104066105247705897677477660154190371856816805352503776168335578433863215242467345963350514249220536803671127222022849666039484828634332352753980633330286458669588651036707149509573153114691594056925313960878754164908183294572193709582028344515147124688106959832490992238425112406454887003818131668056445636636877826696585322245315656824199357473071077892985447479712904560874976436879810867279166595119955276473488678744043335350332528664432488236030282815413825056364725442084268182569532166607057393074946298068639486496234909674512542853329611656699275149226974089217998790727969498849398429120106951472314179710022620473399214876785354712913056954755001782965871058744067859701535072916268886302941543694132769532867856288721771640582778309856726509337824211295616908067235185040756689245156588887794730945338209036278689261328213635074895058059090891500701542955055483227250551166086289663627978832934886506155682567642161364703520089123270535225755890266847329778853471356521501344570868563217835807596958938158299633171686681943491065498011068839694508612847591191402301201844424133264403449507462132422956994556856275568418565209054143183688774865243917635750219344173884766086196175055117745639805136230219686698435835473400237801974230524598478967266756741016502026456497737762583282115499506273724173164615901486680338795071115446459006072572845431745351046994936682768751433666868720053242097996503160257794629698459297435958045649497244004396430704071494967373043900235764888670602810818628161964128272097512236397223146744799363250426472876668952536866351018332287987899279585648526593945028008587974769608122638438867903862271721642599668651270232549154289323849181591569950678868126042543249017276266466738330608636237699396702185444622127446667405344689774676513175500990736258399372033085334053685317955492131780141721885430127360068840101813495319389482178646161165907649077839500279462473251010764994649448007504291089395621690845334415455135450523154359400874670073811608464789213982124587685372037399912589622270019413123047385107045995145119279221049842351887851788642051814093955401701527129885428501564172532852629227758125071597434341059565311656231513537572802275748212898545869190089176549579624089074557543889094907174434640013641023714224001218464615737115255679618130613622037037701748362396971925802891883623252643614434640632315978159647023982121221281909314354339450398439580315609963345209677794211442278772516093515777017023840823638884350866049675834406343604427011430585386027013079882865903096035715324769278143932403304215308596987268032070958275100511590338536271449032206746772981020822785006464093485985617551803498744546812231839802062230610598664800707687594584576407770948935629817234470035691050278835073142017260936969383141532290352668293156304831541596665458921533276967716263220576828556478513820314081566669386827301185990937895985461838988933918076569364030713165220401479750387502836109684073859694017534739514063943243540226275596156023535180857196216097533410575885040977692229799947906810921965871652879704060322898919232265951399890675968920843387288136040157059403943830221556473854679381659672781213585569979490790894273359678942527153446781907516707594882948507795279039812463942943103565493244097778044138826132848701431138137492539484062068975035106592007879749567153620808747184349350729013875076487429241172589187040348737544584852494702567601517438625036578083312964002864928276484873237606003339395682815409144554583701755117675513279775780121744872173020090368024332282458190873756373924879239790068414518365323049834916751715497581876480711402749097568724024194441291335455088224919251732963048162088282701410938862096841287638054403663486045859538342263854548712304718118544138684791704092901639191149590842636806924984323859944587212198319192596162346718763275336785042241264715005972268420317204267106808026309740100577208057309296788955013079083634711759394405493096133934197450848088810627713524374107787149687904217492687710575726962758752109379654676855759453663577049230296241843882264165230475965912610221893167031697214285084164244023585670311893033540235915262194214730839747490203357452540110110749283144037689079969669030582451806178063333411929783491645772106395115669727598864698946778647531707314698813899030150537952062031859836391417751368123857670080706388978657126129710008224838412413328926780815620234749498453861046874721768664489498649482134148494477679592779403295058517302035118287470925283535247279521228023660541188535344489573238270969885352548012005475129303567504501880404594300460706672285297094913735142297054105552393978937796891237195319105360335164956249570006884241819924340971271553082180136177968345000927444531887037444768764582222478335556912682317995931027850851588735768482211162920048361093154335591494813835544554473962310834143322417367881434651598103391965816832203292130939037524446913744815996267774861623247318556640080108835662527848444542877009732950301890900930088970707098210010204283899683431728759537488679829094252438580420655796586987586404221273268744604692612775360128896766018646743793061601172183383671307033622373339825307179779704755145446542407746569694915912248948625494456115849860233875277019238299220731038529407037541620761951783637902439799617813681096084902198490128469044621381578373895167758218060867422653376958420551052229219807689643709430623891352900883698985593847098584348181992215593443046689637376452196087353706161153681219867817603954887845821032308693900353312230938145879326187285610063629893850079432095685084716571152138060690293402634229759784619568677174534037570740128913923693445649539644487971129360210903893455117076942608012648847841842387744207201452727562063147118331935208273548596021716155189651398710793886085395924088746934367168394207452312748825713244832479928652839827949438305397906547475549555503125339357739226557002521822238073272971874377897733942967586634610751155340400802076149019063531002991322080223086495328428619435582835561682321573015183995797975634964112853157595312289604399399674797351153949292769890216852142009984709814303244444053206130702246912617911795794478017276043171360417946302667031843900382443609468665894018445752934483392523599939807628451180873543569706580436000835430227185352555800299699058269006252625299804383639286827185274797220584032317683283229215262308380637229685117896643001830481839875572325924841159804332380680893944302579776160818308063082122845745356557215619898496364362197800686141828927483520847608925490428657741458661417253194789699904431529027870625164483251455080863858262128344292351629940715666592798624000874249541402933317461546096323032104493880149004316057506130177402227599832807713090541500677596478831647356521703612010331208818185387701644353499873993906240282298537238801990768669389306232228439211522437523547405053005102371393625569621536053569751087345462255961122541354616595305388760777677037717793606450221337151893040760882566299950538511021981913963160970074747981264187216449509778611541763355110172226868064669801746064415878237125955484904163133207736610111759680773237355597425210892100563255698763595794230640760936499395504995559635620027648923376885342770604355644288729678911201368420681748614446636351859477974973231789363137918078064307248859256717062034232169582159689149276787442285006428963125334824217642002180696540651898474129907751467506070934435618142350219501159419368455637449083195169689867040367716832900920589391805295195561485333729346781187357105552028560521515062521654890878849666661541695354424683205564694817602200227685211859933881029450051396431740720903164633996559259803413182151500026155419677804143927043940285775777083721946919989420494306492174314683570638213111312030330946184001500949907321612385791689881120325781855088036681884477238315163798449563210481279186959606907852958789867306789902271761926215171244764547019561805066845757862474997880535022968983656628950478081348592418557252880424376834400826539565955191350859145486751003707601675079014001183549120472993040897758878834689338748035889437836763423870518999173242793894184738838303179595540742428580635717182283967156401617751791108561752289473310254326012871731190611755494890943579450291438379215485656774452877609856535109456622499075786071209637943006568811958900234166020995308281761789642366699939632050840904663657070327376216589784632240501390930810052410038626504587432632135094167682559840341400322242273419722463706691069654380048769009980895799525735567686669872001577927048837566833563884515599600556090601287917605763210107782544046919244088742470978036921532949693951312964071192622408788587821031532387784710175427874411696524626414318398422728844005051847549260854153679329201979617560141428074503817344616992970719425684339561249958406436677755606167614207528341278051729058982664738597014368103491513999309379904238433689040170061564683728922411538930355373794753011401419564184688179862820434212387514338516137024515320467996770849949251654485313004621481140326999447906789430839134093339318370067940265451915449770993816985753261825289088560340459707236422147176284544038618770163860327199382613105201057382142704060564683135904216286319778852604817025610398177022345291395812799147949267206592551170520287686431197120822551671105128257185950733797065840237838966534732601953487063163581177359522038603666302877623299804425357508026331883159161622689107972955491192360397108161813104409304941397768512471135197760152126267206197046793918618748434819148062685139394330893805220358582486700740374920178479474497288228794341778916060165604349568941803517840258944612953579622408211229747086570424078851292610715657169933224176764800727327774994922053225369341751453588320323313006978624070876935597013602716098356071303252614907084153480055984540801332128127983683972434384641587258622614505684941675346280677992866761824111698106939162156044702093862303385643944868556565818575400390042328837209162469026801568902686282775375614908762674267537351942367280481162499835104004539053469875825165731411245524306875145626694010366700821477712129539874275646271042407575416275161036403175439881762031952905221232470714972427965237277352708311416372064155543490735866147968374969936341794822386439860003717445915140509975853590497880200697790640055359930704603025452702479876758248278175380008328183587081720607170759509083611010246046101788710191886878531735697707700435832397799759884441317755838474124303931596127030351852201864975094817632820536204403040374129144891572087563623970596552733283581115780606566757884128869674630040015643932305273308019219899398619743840734007778897813389391746384682097913007991257950958392524948827538980846928019096527535588745027676141121486420199135495616986558904904528145225488377146042808529960664548154115368759038028118903837198453063068547645765571530105528890288006253862985683938920085235773670135883325651825559885104893176866999911901216063395328618222358774600036612285095768048170248946820894508752705764820026820135465090496579845359156713282980685876676099177583356186955126694168395746267902377262490682530718297049249817019204923717726352008262301781712466902080708169154618181561972990055388689029187498868187879202846193266188086096229384054721421425332559952294940171146220780276564412806793938990102556856804071653078600166262973632490789042911798297694745589583206214774777562405630027275549538373661114205250685044233334293334098944721289766677434623293235563777303851763018022296260532116780293460565378147930312450763912394287774246948754834098626032088104505560284072328158728435139497638348519562391757907601412576270240165064695829075756069383847274245930658606383212087543171914683246303935401939248671860741196992466429902709749413948280240519587700166046304442095619879063780072813596087346526547770386441791273903621930554066585936129801767707435725123464220763093150951329025867949958081335367031886883119886572017960327887066770634224068356968451675252797706814376835875457001569531731689737875436826511968680610449678299821824455966584091216581054271949190127174694673667812318862750179676071861740367946929886550941980970325768956780075702928294988185277736233941185922444907145109596781447530064264465796415374026864008456043586287179910764247771000529817036721102071607807882197554234110861122173325277947085388584308785964234290538421557469446939426768278215086855862460448582690377336852149624980376489785507331002181518275649121551473865380285359669030801213600166151363660152976246261801779511751583407016071648263229640402026995904017092662229132291354681756167108696665778577654516482297442134239979443320726505504826182713843035401209388165916978244655311246553555326796568329037774887339799333019797596612379855519942216302203220094212498046031056454953354228991190650823943767530580322994143089814683617256272581707434535432258249892589490712431409986653086295702398524122891189471235720984591186501559724142020757913680567889842392785340700814123107717234032605006975404515386071610930009450138839856097012648756498906480245346315326767737867765639843426893400143165716907961532208975798778800384548862772856938212802153596307911917525508556949500133434433394097309431105556400632567596915735973641897811361954150982484503334167881848041415371853258071649449562392322732852029713609899104272937998748055886798817590258433176492924943099468881227195252431308565299826999824809871934943799588418210589575625703042458912212206519239135534155146677770179191559761665722754364097444417327526649215357940675185097629062899760474326978616191543977959376015635092335968904013804196314336686696793504651646005067673006551380697805343519335739813085926741748799692633205787643304346200261628698071019722562465459549242056690253757115409345362493602633529502343302945053183493020043344088610208795894439154049721784176606554742630849219391276666504268595689502914626067228477456639377325269610045643883850221799081447331416406351460085575447145131875755817606089784244459139879770179033023143503467459449335218127953309409947623933123656804635684960216961822635488981047598393989342434132860789723790407711795247620755946718335775791062981240609949804514262188380365625610406393129470246139942284989501142208207239434901413905509993351371813292179559136467613419687673525161836146411033285097066901133831817607585943519188878897875137548484214276064272260540619408247640767110176631799757736578223962335683277577456278946638483071633856770469334781673879594410192264407326690629046244651059358046489098023540442334600071329488450647167582845671599434173825940818426100974931441411557154542702468731354987146701843680662779464281970438460227914768856572407907513182173960473201606707102459913913588149529346372058398718984564693882424911012910464907985127787628831938351687240594141049457885139468390177835072289426982428474153330376699541610851134651302469037629066449471494013650266981544548532109416449002932096533657613073387009993133057809340676592873195982187331899976817651907343760579480806531024743608204636300122670936391907863429533795631423517845181041910465948181474422011015511613726814630906610709570175709892222398681240943515519697297052356102162926514006745464892956065003901440647045699840003426461699105911285556048266850580521657490334569484272886603345499531798473610553866632599473626616178500370959402813913503150619734254422024184314370622738366577382925587580987967915929275457802683897019953262822675380750736123691837129848921794748684736098037429994785420402177281589918848494637028545596736581778668514592897281571241343389896573640508167676874773388412464028951897411817290549450814633097787394777545400711412860506040765248232698045833222977715107571682733610592137461972035581699951806320929309206531706505990184930147245289771860744334508910987837978657118610713249834224819122114985406396440415728501916692090157654736758082867653312522105317052248855505145586061036304431868806788634471012813462120995160670995640732207030022146926180564450746296356355312476407229341014065119974573017750023740368401427284484615938501775137514165950584910507774947054185789292950853467089189926171303845149993428036608961627777800530343895288694797171618778650248426022945396290233937059836936572611654550924296983377373372084325236751521871077270790067086444402738620409711871530249335541514698335472586539886247206946353411622572018007247533686095885005567636313403471403306810953092680852937977707384109975156427098885145251860861670000884788670277360945158911334541614011518175082045847044500344357353948357930975727650775992765190799959886340281165908534316304297248483753585223669496465422469030249539617364354501909584502970649412177398212367097923040610198439783919102545337570318282836016176195480830671252307447296422777925614530523727724891098952456271788185755687497664965581225920665617753345130490596368650276546837505254592273873063182226537215482384162310826074327569462310596500875307429137684864968329306343183085574760951474464483183872745878510912426484966647691025192969959970393359053220887524577301171809716896900076074624895518453079915585181940009807427245932401082594370979109421875002162447346786622914406145986470199578122777700335233231427087192095089172265658842118743956608825338012628418961194266755124112252455122458939945519654603898511636170372681759594209842479633984686159331162536661698442438809321250640718590992091273471156187901072396907496049947280905269879466122836339961476348930914063009859649933994311070718813518478654399319940126921555923601885449942725986982819633301165731037589767852108999865606390600298812587075201118493581282531624340649949471674898346335369179472083604842148718949906648319668094158242562545776746915441153266906436511014491262390665655413576031261512666948876037328220272799661845211996822844360117690384641561367795490245728659990677448932997019125706508814650520918296225601015152479438064405652912737037936936475751852116372609421374806328684589879120244630543056758651795602672240158242845257696138901530559425387925018099829545879800281314100161042163963376208129342898053203802650747395490289489774200701335441331533535618397157888866834784329465879335316736741695665217139729649946049752666387143946610159925406706243653956713069051409277594592276458014945723409614524572045781695159163188500700486650818821492478637054532441435352135841275048182507769392948383545283976316369133234828871499497344204077077913955785327369392434989260713353317919205898092248819412797846743192405679942782012211864029009032333999783625412415050694118226153000157614566495523921914034916441680802217973202940924547221674353246818648982680148387409148279125178222137950555967149598126880796792501133957128948003988875670846663289751636118598525901211937514667312574090626716062793282693486523177462707490947606588507616331129686473324023508555084082726835188356453726484975167693796607977982434381998335142227025293711600950168893451214468872509442667276335378327273476844626197471471348291659801022243506707716054507476144016492735577416387068588764910254371373761510959485771095555464418076098565589828466029767799330493106673449227852746400943104137677435386404419798626235435484650227902265011103794483819615587789509455183853363223233130641166080624028196917353143652538034495964452683528430167612446412655142441998089782660488426599147554183884460296432245507653718141593710196371745568056652989413231662572298892414751733654039807787062036030192122957068332966273024700173033298269562075730206365323447896672249225579180984518513349684626377660678176846271910015298300724014043890381272082529615685060711103857724014548436392491602190016027643160378668068105634559521004425482448301852372969489396808820885520681398115016415850482930188058655329075132290349977254312157958541736992818274404821445074770533519262383706821584003793262867666794532212148778808407062070451354560275383254875563268364440776626699572666378251764423919381553131103557729649014497332828535977168196781905472096152184429116455631453398036819396238415118743003426248433490833623531856155456013789549622391095071912002025322897815868413479747569471273192055704140554146575877509937019292577758036820701754415209604299302260052526689940135053399969999771590167304591442349588527897971499595038109251659345011017783469740113105469447153846138646228116999510059948450662108524193057894334860239383414236168265482950433154194282472536259421401922390356675131873729290635949539258517458027669493517075961353419269306590887709041930873181042337733578357215054514736112098583973980577265343481826427259017566163865837402049179827286026960926599290512185426206209802958687561352815356703599047700854705035231739448253855535731939785972339212510750591788159296797125581724863052784611570689902859411826699951467310044058398548798309513932856857142601650095271160739428588458384109571792106654442090895966773426709153127655069868543011190162281241549552417086728258283588639018130882216401585492619586956885288391072837514852676681760612606630280006521981749031826056205240075162975377636472888656402287041720034026260314105602321332743167132489401172236941592724608183552675606333309935989717639665260656039061960237518752972042190145255799428207833533926118050155769241824308499579873831728935527619123921904600744484550532716703691952315971193152364633269246610639382187034215950401563266928609373263930969406717164053497397577376115761108011100461413524069262620032667552914424221569150646978455296466623545946160416680495013751977039543223962005312844438177192465564180921277384295287195877183479172670392876710093781554293552660692171533714474436917678247142530198457665553105498023400856678957176946210933833791324595761223160234523706773215512240012602303344966364182257503185952830940270006489939163739735553344228897107872580718547522693986711073037674615147611872669875615836065292144374518439169702276684859290262916350652823670824964763891910637976875339209915365458522484626639922237531063171084074102134842652193568401583166488169281600269878449581102327197605560091176121440046541423374522086758955476023348155847712039551942312606068918415299108376384021610367359288090353975580824978783102671180654078655448228360252226769996585508490611778968449423914033902051312924372778499947960739538106178725327236209153711893331987105341584784550156203530713445156119957610070562969389457085847609490238418963976897716706240351134430491494390352945359988232152519563510696187267439503017310543961084691360492732420746561853322547984827627796296047892983059769962719701570675619701249339706866218256352169372698840838557644969579919464626485424078882289878903647717474988959550247209947701117129691949266627963998621922292540624080401789157503224813234262111873435319415614551240514175957375148338431323390957941613138650538799496422811792743347897616500466840248792098832162402807922773216785375592454580861180283851814280949634346291382753609415476815839847508699412514882996804406733735189317647493070021539328013188490030677704812242825601438877627914030640669355843821862985982561347377576951638972241697672683991437820162421850246231731863686604488453506212014240137588640733056672344870398011060562915046326072672795749874718926000005040601775225856522417404794605545602966776586408502914524675866645414362934318757567646724576450398610072810729501535618893707311982418875393287028324935659177559898728125900340198972351874937562378938115671032822094403878299159057556607040492515172149026239190756616751543143977985204431150640128440779886251442201779580377171891440361046765196790660695337631159839355859005613843553529673320769181832169278422929267254077039012861516490465041122209520142119796620752202342696983138317134325848618243004944718813671567596492746334928114068743300090235589579613728500099834234355433199132452341662867289125757275001553993619795038214109733331658113669216616167177971483047796413624050903718569579197639347337756665508426517969300628552927288574104532184567412080912377953035897394142459963144703254140701796236814888899063093945549163254472270534355250580107517271708140545412813185609687954728076327489091255678774997578864566919066769611964077702891948576673468203322856336957581475967809893716447635278135599694822399733811482231856371457292757652681543820034800904132456255919401023375762311611303250588101131368181442820974572319223934153934492893470030134367124683494758367873403595270832515424395621505750006174695029304859615869607486500350153013520901099113855401943088263032075553118979209740434761861597829063919981292509297719388102224569806600037690477366157132517948862250631112900144632993036428488230035785255375115680052920955255104196030793964242241395268719753997022558684123630393966575284331304314351755289599397349583540715899489659446337807271749136443380592726936946430733958944662893145776914491269284444275389001310576200345334244583033761848176389853959891110454349377235453563475951387955581125002622201467589242067522873641026359124337518438397726994720567476783826538462024919405037417120325837097732050184985932769308896774620229171106201692402392613181542617814513064936911180385447406896872748964307726110974569412218338312522779143664689938754882849896877411331991319322092336508624400613797594533997286341261541076447423180547972963017203603944881309899430719557303060491334444792952778448906601923243041680020143007751845692040973194484460367679922642875293592507514000802744981762859237303196159204481242827527577051989278405640290015619407433797684489647514789876216081578164055207515209945799960178785764170808662638804250318059247869023046459394231369523606407582128152305753629765363945507837756422721761827100148666216861243459014789972448424908136792474508410570829331425053830092952644328784957398697253547299508708059561802141072759410283383006777749908919830828152465855809430805124929170486972175680608872215934202688536999095250377568761173257222318762657344402966958634208691709345893122047329558037287682743067958612285719895651829553492561210797605783820976221847823989956357037997420596104459239986701101772718890855412335638329376327098849398716644041998035149735840105689387032450474696738369072109427361941342498695469170390689512161685517288808184374692461406718812158080921723657444022578975565958579112448792165120093753959939618777795002597554171281699941236832695285395105844138164806976041027808118413917951940821142386034932697465728525572332798716160071143557705454924225025578228081568922138633478723393534121394154230147786504664460677528643437816766495453955918812472713929148142052747079392977477233685030664887006891607462772096818333605093945834651719050771749501321614041307413906390319306364399096788955386056893401639289457818716606274906228552453636108781435632464206284879013746755639821926463431779042701326073785215612838874668835537726171188664489818215449422519741010797120173139779460906148406433643811049228927673797161169680426554107339917079382249858112837834319748710918566245345089169228168135286629281540884903895055623322113401804565809210223639376739694780977532403571310808059956412378701883897421022718552571023814125772664266558332030338609762711622777015277729980719350806672172640692498771926396400836657404534730011218329785768666235449102734258551958217958334814214777156848302641908306026389137595072837245626228684524594374922821686676410380776207622504162699991948833937731227595526008442741828653154918391633421315575067858404363602715485886829039980325557370920782439231813907990986945162986035657811352240319242714332033482140296853230667249675490154577918512105404935198601349747054162360833665284708449283756515211283513221654053853259274207224935325697765321023295914832788699209749309026899225000227205851085011206516741745092394347413862961131541554713476458384166688920258486084701817850009602849894723239547135476788299853387739964853880605478776561865879393783910717779969043943251494678023398862377830760004204995776814924068893051539439541623642678450191341343460705156772818748214080227339650499520688301020504801665741016640247318732973911852370480707048701069720660100584383265043173043059487361705736018001134714738789922538493738737097509477162620516960311635579258218389057896764803964535247474458000351562331161685716927629090107299495538856149661508559082473932126405037754876685466149427591512760041121641806204518819643159082202363648830930087971711085899622964065491726477195405552217613084532228570547285292688662617796558604342649139032362374274583311435742859136554816297373114402711076316741596193570860044253728729659756933120950669932235487921862191428290593914765459864743884938576013834148202332532328419470921590972037764317208359285924330171840034295392174036110463608097385642372233659244451421300754523402148721368351183146944854397840263468455535973408058549799534071012500530116831689605559228568321365266301983737267820088807022060063827724770437238494054968827617243911529195011348969988208772177393382748769095915896148365139715144425744183958467509961960218515599769855386597489766195137826734386024412651289940003666122248619735488227575696815325299244869570204030982279300121454491796323253832602356830266931663988733575297240256466731498912857078509628080730566431722570269237794451269998061580115014573622019812316087075858486371899004166355357668099344743927445069546866779211981215818589413290813030989736760513941234765755071670968356458504287463337482176728287964496908980127930196979823490904029156200562617749445428983578799751253927284053280018689630693567549151843202912838438772145463194316141665781934502921083735296329220496620494228181978404201231438893446784017927017934798693393271943483183541948285991280311925992822080653312730710299281704386622507931147465401665962774248008374898146997517947444866246912907102643826779238200680098815897625231987545360243537875914643095078914875403126032113070659018301952089567556458504613672284346651179315592702051493052069625137452292385211743223172677975045600593925080503338260586088899180433076839372709599821591076661839076810781621319587798456343640056486887193897779910008486482118017369465453685941947874466779315244203947144190452925478525476416497675930502428588888623561171728374528743547355331433490367746464338501593194457735745421238885070783082650706065699975567785071828750852570722060454043797764551307534444849559978182782408550122737776886241767970816909059134463910228843844041161279621116259050819716387586614492098266037856095152173558403994740724131772172695665777786901555469114005041574359806123000670913528484391359789093878916520361504657079072659408877620047072845919242646103506376328321133676733444436120039744901184072608973284587901967166230065316301014347484498433510612195279974209088143606275426757367456217278395534814658714926173218942930450346588276792067068961532980902978271109233301691182230948286917461325625685063207095691342479038562659633179281489801578700748507703617246213721058034282457129952892374855273897308077227592923882754975887176787921894265784887993558526880793573611422432100483282227665391439472739039296092639098068788991516698846973575269933833545959138943037319045329917003387350579160392098865000674763527430532127743371944322402292636487279830176476027035821645924917833169146674458721618420204513494401880962268230231199272707679388789756508693553155857655286183618230305422427687887640242794874493537398229684760491506403777307418273586256173619785574521736178334936389807631626437195293691633624892534904090042575321080584430481364447622288833515265680479223418392591734489998991197685693963521796247594430457096807043994294473277210974712899782257990701692007798418976336927307343465407388177074445128633084468910986833107906098567742644985107179494637691538497451457509738793679799893474708737840839350620067296025249105329621052857556079755636295568384727811224864474799876439625202901466420086156374226386711499560752219257424403367094104927510251563900758244676770293126323978395079342569263194677191499669508838351090378825580540526595921970890907136904466605628275208288792501418401959414846357255293312207087722418356418793817808279404109283810247869240906093424053507451229758218942284826234989436621671638144140397771487268681211103539010526304864628517323351925586049843128734015722230904149059065361954797424091736090333688600739990528946445155529902954863429140127716678658933398953051945060176076544833466819870387148491418073980474186425901552439790057585618284856085225187790751216057721718655677491953057672503776904183656965192947210723190548515843506728127458079772775413440549357081988242160472860276253961204688906084192480573195957054693964622864208205656790346329368165659692062067171783368891715035725016722642142067990196690820078917128015374638682350049210381740769327138288563096459341212963521095370856183411497843772971224946396225608958781749352111979542918379250192373666171733821765367301783277680981238805570820257025726854866740905016523247752240958042799923769366688539146431564814904037198354264338607254653932565276114402428334620898696612873211367061313863021997159004674101332985168223070515115678127316819113610684123512335773208768650327008084475768741961493702794424091554080717837460605518587565309607434393724596469051037644307989125991184591446757956991771141236242922531610562101346914747961695250239452698683923384954295169738775010708738835460358992563528086519298705020408988764007712438404168479724332802564200273222966861640745676245861994053637284698009683859582378486241892566294758235668864789364160023067147967523872531187749443681624581975730411014266238428521248337875648740664384585566421542792865230028108749010108867703067931196314094021063361798261249855819213341348816609763365421652823003282926635233664158442135144836230475835753959416967421107720565702166638706839424074155070990179034594008847146276089056004996488879747224468097640927816935430663840354463323233898041096462864968588088745220821662141890795680088063719375823402892330341140929515193768446695548007600818579145559634879846126170521068148708556930208368938965489607712061632616677131455372774027268717199707565684841952919439600425327221123441163179085766874114291713767778320173548194895063413579659950347995995381909320984281230573042590149397892289070510066256332766187263307019631773145091342453075241557229267271725483383459938305658244947903677719522758860164097936465740438315002312734235527299884573634255952615321972671066894554885771139132115488276107978473451179706214720502042643891337664275117197934454452296814563773085171289565635423050738286633548272110702012279537677058823149658031067540017709512614349538959714712486469392911017110955040663845891359936225630600119925520031731266932701333237593736040976690710985624504838802626129256170588743458493218077176684843980777237612522858050597524033464688421881829690525580526607042658582593305324567420180588276518727882413697215320223880513247815867565086279782716003398407185382876524236537175602513672778615622180778990242083002833530863327217329562095353682576131195378289287458515293216172678518938308813621962153253106676172494365230155521686332624727772826956781412681866615076366012369691079088656998131614164612353367138700078632745362933715240820125985722096585612590980217251194768872692180378426781906825025219169223954674196301308434694211513226752739112591043744303248759920304780442790494901800197206676850637246403001951171234409706411309539208829995007107531239539716762054166436160400755211852883324208337037939993952377988979522840351826559647033878378724821364457830931337302670141421352285338361371534792881874917153889810752200595479946224883912303080328794643686673919640121353840058570669164476674806278370090163913263943246049133605717420512493077046527199912008952614798394192668710358965484113646211137171731616527100772205687499186375886795899079379009374466015526793202414964849627673346634701872624616942381767012959560977915357211900394381360116974645724666741236419178197796137002342372585395177155991074297852609205314351469259914550253089189241481584498631317434984844543675240436600664242830308811871697637283408292092966476960284763677106678311796774789893863912196916622180987079436284683832014787057563387049827967240580256528230304855400673300231898154428604338942474921334486605892216399366369277638790492827860934252940716506797286416929582730749318310536148051627096103334161001760059966384330193976145599106518439198523241277355325247421274203146478210919643241526356093806130852320944507313605924837279301472159761621492478010095602434298682452011519262639196656369781835402321639497233655922407641409377235101690997827132796308421307770039252843570476056231007275141229449830175855696051529794622091925689897732179463215814510697279511349171066701150595489425852254651241498118735345083869366993741949370622910454744835107878562258615062537870036289616928389251294137535670438870444938668318411577308316191214031991586726731220833802180365843394373401888927456713146723556815272022726719768372682407617974279220752149853509384052367431348096438725452594078675290070288021643430573014081292264996750543704895635154848853837936747938746003430498725112253923614844562296893781896613198655874296605869065849257430790907936445711419544168035843206242707308210501575104281934796828211139918924116156311864680890655610755665401490845009479551683900235794216191260927428171967370502099088789084409872641735461275423617095080956130470416885766754841884833543505114191444184541774745732385190954370281265163659411218075366404422563352660075134906267141139456080214423828381475852614974627156032800767576451116746362744172776046060605127218891444054529430449040303433201323240885141603849863104554141234379134858993264880276779805929565719652986594118470797549911089372652146617527955523275857618931666029529161492383025846423916093496891665318857640333107509692307505648485211576051658368372279524479997566900619467247146137363206099133638254465352066191786476438344274793009117300353861150074750211269095480725840115186500915709745447528052396131401722497789834652118602345004362831087593313478396129768685320259635084791518990680089479619665672710554526430044965888376512837178433814781399812550265780870249129474911469085253864660596984092059286718415168578963761883677934405882815853255804386112257407978403205463959895493536115287150156054609779824794585760315617471228239452505505912271810172174150793636065458740215491193380657113236997462522182880980624325866495685583697215199442036930588656709973037286362847629708932214150877198771621252010502144168483352337294475604360958068530565495490638953238279239534199383675309844562476198198312918004173186711542286017805261053575263641650053568745922824007139619073836221378242080671107547483215628882971762779003514921947095835665897187658562023081277154046756709819236231299321669608626984822091145574976046041574909291853942736680674622698209002618547460927008068154831043993509154348558518784904150445741967757302864154024644754382896565575429331686693711538517614069541242777091518516131998755140856863845967637536121076226062911907485333585537214432694428400301441430994517203231764629021974949530708074073306879529273909911030459781180539776854281871018997080041112688876222954083134528543968535717883063726582590740765897974710608986722776362403154607416631474021563127373593417628645247293894961542355496061829495523590378041332912381939625343177840765434724828370944251551693931778444671606966361308133813065999213337911315452266075172851071944274866340376633476590685584370791476436131995300191698340937521891252967869008612415434340980355652393432186570307194661468284156132344259879706606004592701271462973786312005436114003611929038262359074991453531414966277120554446578597557056914783950252170085678949066228432073802713437129456505004078792411429116232696158686251792220769694558311454554644080122651930587810320989667630217947299698309509903471237364304240867108593292290433388588546677313947094496815623264183507121404293281962999361325577821603959832658160530366341901315587913146116079917022897403204567515652083632353948998963424266395908952788020348974463409659139451542600760671261464862179188213777359674080911957876143438433343964200205850944646386013198359790580671079942219435619572782722228397744597655000671273893178317319428148096175791222103461521769973497882851821588438901287369320363974364732926446646541059468494912215694945988287159197791594710052033048789478558256937669046780762440138632570654882533008066063450156146613404868354903534638406906388514398572062954198128674075035871876035108494020378493262590821003676442719397690193201084667957375366144088133590310142445995614280625837395305846207896281490348668775741105711678855296436776797840357066021304589764172185334219989015474719880513582522452691464466891866973802722023749609652337275348741076247997877985255267772680944728749173690191037513643288191967071257249438903233172999216440303008754115694830073590474962508067577041796995986934405369799916081575282029227453563367949520580462332167921164626762967363439370672563833958039737585927312310965621659990890500921031039984647461041927902336675232832279894384403362717759641233330162579072631489418921588859346498946736081183181137791538206237685594602945239947560835921459266197026025090988114934430360250953638707418640386212372983582672491236163698817227484282145152529098556979560694761108883744175878862692662603273313978721215032233723753622433899004853315531811261765502465633815270406541257254951731737980889319172301388960289455948713507237132889907009134913221141636933862887850701997427508052565098653247208579915319670756905881868571023482408880351251795804025174708136927369738645392323035769074986715355116232238126166067487176402727302653771089740391997860383214433112190626180010180229893940279384909493552144850867498163408009134777358043806900900903744995056187403977938468645048855710303921510105563062376090924003132664599328565525481491109587784087910228894636918832787592779092093702566633366359397132873627935380980375282697482047618144739428188717489449136064855187484459850451617480921639405367738433338781258715154895319620599770208669798118117095182173318251255627170360026112480778025960247879375119945107531859916441720866259763196501976797851351010214087341902452589150322437532630793708877447841722028690680536626683691974804383701321806835756048512956520719446191603441725912444583120047357165917299788959503756933042279780762741360390983519717973773611213464406711860154078815972742659407994160228406426174216525217790782090172629220004645647201296247838443777340690440672861741559209576410230913162184136086947293556009342338692226462646560705510721223728338653833235568722763102426161260880051075984071629576009559131406387503349073037578860653393527212925526612911701668353270627646808973729150536747894174983586301873715373126485653201135011404923485795871939164023451382504821768897882054234410885126888526776536763786585932686318147313008802920147265592262739009094301140266378340013440240572396710538165013551958686946301093571276128419901323087167220505235006902347536391119949914416197619439404270326115441657536857232560667898863756025428323151717795313220884366097684352537632209991116228302315873030591031565757438690204924895084871060508966553890195657060792461800101576299957402001343300196947012175194135759487896225397393056022715999899670066741793574596474542991504346117710402365062686786965984279204228117773864894490971691313146406440562294593565029789725473541232253104403736121424737367692337335185089562475912864291894179956711649041522285206612925630063195517779322911195702645039949339141668507431597755720230747999797162409433183109645614403280141857491373331046913329174913138720191542937369741353491538645730396333764834429133127545798886772665312931622205193518558163187382848618041779939466553701123703379186491878422551106690032438963373165369898079479819554557943135020756683701666912581018251445113682114558504092750371129876514513866913620878573431129351044688404238944994050863250621131461659478709310840778304805222678574579304141704044251953387488691188605270636012999410548868342578183876159894461559139653472910956652671544228653305991514912355949255920878016144282249857903448240540709223712154173621655275725532188088593151468748824612704869011986651890386163758099415147071472418452218233159355442388536306951248135461870225936025029018377868060985728915897206794603697860394073288143460640390788095030872942360726348999679585166882007707673732243806452498105448163206000474856153330775915897930093357285768258413736673989767393406878852408735559520288583465329776406094763451791096079412072360333601412545368141907866627520974798877650409824792764469105691154575143946921687373568138287912469088818343481206019609242764333783757383527517718691615601416785951339097355834953731738437868097918113529532689274849726215011782477224843010419084714336195901199807719352872550145928032772282631396204404215096382236583801681877350352494727215016519206822229722540467822547240461298616159232064209609708672685514400728746673186017952115166369610817397297014920307174479117738698658724302577470930363582347895872500297253008682216617153353857888442016883153988062178135076550936480743148932157960764437565916832908818655030337855442845080077028382355261526093340194662635617695321833286931327578768870996909364739617318179912083446465428774635819915603978371225491831192366126353913650786597273811892322710832020761065355303152040638746210248631056187497460354258265934378599827271628340708999577533671230183705832044630221842383456541934056303724611790388120287313398515725903146098785522442175206147463216263242293668568536008475991209775989906587257644072390599750139449032695701224685462203180663922304693203207461347336485284072232709850067883173638811824388885836126423434854112329671399965689653343615771819607006927134818902700362599177360535235121563780863856086382301333462872667964307848711128373449734359785489714623685444588191818769694447296492726910665147475683020718640710765471956829044304605021446424370145677459735872450153535156620937058480724970151406129761051153136359250914808806334991361578241951257668334419037003739619245111756136852273898363710323050034447693092023929479047689724031375918571367762595897492732481517904029471389776467820190221819146085245125467314334961058979860910099970256261963985346122990319883436599349583131031671843838214199566150550879805163072460479629713417040570668122842066665063884921245040826340247578822269639314349560272946485998117008574922637721108605045799933017579415709524984540832635202968479021507540067022002371536528623996610387510837070440689860798825709451074721030590121051294065126188998321050420911725391107209041410031272229744694660958751462695707460669938731681940140860041089016420793112653289030742486627900217867512156767844290381174940316660426708421034270077695748181877453852009765056323131412488873098894934828313271504278215518328878997082312423971502281331326461023169519380620642122479630235965485115869988458071665266520554465183125788000714763877032625772940253614333012465315989023725856108363169414407077051246862468630891833251034916331782966430601725962395638163252291081589375163611427609837449978595736328303300025871295164654162347262352469716574157981965332174327820506175476949799816919356358575451146019849619525192938579258723338068898278137685652747096973667862497044301831964627065653338881897243273812192565668971447459617867091046210864659824437306812830104734662046185909806283646651066992476087060872059187127096103503228401744719374481174106829830050692535730227022660733056400719003577059289252723594755437250484163035995161088568563413287869065942670199248605137409190859949490012284990315384035334878491052693713950102548468409368409705189240473579534729203253478310449741672198482840366334105226598710363067667341848823611053550863516062299387619056470791124069584542474799531238597893604180632124902470213840974552438931762056284597811893344096130214986733232607943992981620594222988545605246202327356676359066039460231251898176803436809942443324396735018929306261952649977864639322044810193639379344097408536949766283027332958674573403245810895494029853995926637985543604145326532187300343947984000404196596708797957919664729479948253422395609227247600754612715454477090899857171939940204015039697904094619107915365037530983825781697615921638832697796215218146472251724644257746248579465012684225193769318357553128684176773191626931854859058680904566267307850782647631540581578057607879763641121870341122243199921118899239582342244679441573539696043605411495774904247473548099859470428584948205559904332000279655809541397523494631396044611163757416841702063247450809946647725168024392265776893798237940990093639139205756318199888556984417091997391137844585346375299667656360475032171818635002479617442101909300929809367050478717082162667819818203169013378070511471595792551495818077650246389213987102998832490483566942495029236711665223966232120226097251268532132239569064342556980200611702493621332106985777168238905687723827878081677506416634714823340677311591015782693248393092268735010219358082371461672213523317791088954666102745427472297320682578869131575756406499083739298649800835791126671491987653393537490243240651819029232457489632935756832732937832316130105612916186378473951974403990231036246633347449242325822766660009619600372503454640960672737793274540967892479326771092513344361820713013493154031452844412154903324168286159184750129703505775636227059926727396807682177908113018009755292452739591317613507499200252624132656438249457141143549791549132933015122714117753377559084414005852965938110144267225539323360270623476619209832377202021656042616265849556964782000601241061154100448739909242248041324790320332813414746266534551789782156692279759645510512283137798878628080891273065572324329191055913090397478008680376249060640126523586856956056065803491594836414491930492927291835473843332552042436615575176886246709811819855700132276323619904566055153145493230121489284290566451463229859716174309951182497283211857802172004748887335692449682728724192426950059752384437217264921087864936460974596211655553889381429094163208259707480101026022887541505327711556848752811059180778265310544769175058483821167126923326162850449406019919697084190918120509654414509384481619186329459819311656468658131900925501658253279801494382064989833753094058901893809789498136465248649279210380809426813029680125817861988843808505527038268600829814796959658789175808043193197056894242821119803544139746366632732654668692839014511096331000110143626667965950795972739884713078263363968054565322126391837944577189505518749288771403444117805781705474379974655225571251500680727416062946718517349617637478788215171675531553173920637788564134742753521105260032733165476022384517515507697874550665927557776078965884472740398145516094764789927181839488967409906867086709756673642994748236694065415030730830175675529235768825048836946214915036213923692855182709529348792163860122971055288487885797532568783515086996698895233081905800266994939193412425455990806676161725636956727926203054694411533718440359048546193523100429127401671078421637447511060420102907316561726021633186515000172979969344762014937751897408404165642787140628266864771282761968128480854354415856419372515047855051145616608468900585009046435106096205369191016002003265328640438471455579778228258133645165796592791186506092588493297852383100374614861652031312730196757586742709880060357649477116353912493171990298646329495874915308675275226718877788379209345800155458559002889339121373233568270005700102089126748545063885296291591137607064262992927051089843486266269047627904636398709537551415650419001169461564740761586215559184914442622338719811534054040671603919134019181821974298174385572825099977413351225984982000693824391405240741370661557042302486463766122576783360928035751555970135685597818193319970954815776545473916990089758207939842156995914056392404729556150991124375864677958770847308121322675618874667667531718787091539677671045220548599362670580106141006384896094365902146368553221556571265627536562442026156753157489826464368652281791088242868355973726743610753498705464480797471272236515503456318567800547470490811673246753438244139722039631029112092019845854404729178502695072073094596296764059453307068531668351370836274221678288552947499875426910260818021019935930673725120064040331559668703349317688543680432713409477052538553361095580034676582185255619735366763119628057331193062883305577972875495101271435492826478617010715309183595835645966275265454386823390809550493071623542596767520092859679202557798720694238820687799407957837093188484053828190011364282715890888087529971381457776250963549997192969154922309686377615223720949386198224748972438388304125612315284325503448951080691468327776215818149646911959984230474945538154870888080252574994995634066145909910510259625175851747763216039997020447499824432242881030606062199845804304919453944752292637341307146501336485082145815703602448127606320247923568706571487027298807783504795458130508321591007977709392515961462642623471360497001640992638171423708503495957624401995729066411588764722429675769712456499810266160499520399600529877940666545899864181791557793032434328221997730033463023673160467054577708266269131954304407460843167909241644804744182010148127299197290432461482593775347435590225895688428744720343038927185290122214976884518312026186812137971527443150107374726746971920783223037822845232809530983974159685204122473060249325848405056905658520454342743159002655756568899587414524813885755995322159957472340361428947641532577077526408128851516392231559195432609797739737703950757010856159323709777936234528202815603381226460753160892340182380687053047441330115194111399342857946643017720375018447659488212587413847078890116004172551142149463552776192074616356290181314524463346146061802661178147598354829846463850474438205437319682011506224118764241615505385771310258028970408314667308112024078681438000814534806390983196883558439969688875699213283636532191092034076084335614717298789392545834540225647525216015107512863160219390929396689870774450817949195207379580506238966393645778828199652964971830622727470001451080944847028220938518143305300944187746310094206977708394000835148230963371554675102365137214715573591977857764824707388180858910444215846362176190524614774501491993984673433433913592807596656671331360526397521373882318175503924761710137257960591091639900623042652355340009149316607614434465073295187247211567447835608693197459340742008031883771836212474777392037322271643528350163939753073073997846885972075799300186629015453933497948032747776597743215027602209663602914122022499372055893855885638565890085944943646519122856142181339789022338123870013436643201673501339831142155668690276745637678097891251942888277216898363416759973635299604343730563654839633056428323935366494937940413444903222105668408808168324343366112687141196477341815137854408289791225317210661488162118135583578660176180069293616591684613940930869624309683906021770315149902747934507489215485329287169639687238531329456578243137083227617093758767369223254276723692575601413755320383505815497716385948814741255445586431967719412637302709268575167410157501407849659090921842025034174013667887337792888506586615080254520500946256342676570891155065312625353901488375975778180405148506395138079421741414935274793903339349686634052604771805546548987612767611225361310396645301477980064037006438320068413669224146222035420023295541443149332865776647755649708638645143688277626470850190445457105539088464227227541418333721333418711123062487846274212944049709157124154716064391516525359754980980234167294623347686117701883789602753906288271787767747993114327831468537491298790958279847386613182146549993529250782578479322920038462656468559433622449751076186351355348228528685581918751987611322771822263624642642344181748102197116264479701553570579002969833790602844274826064780718227688327698153197238904360494615843543518915576411723776684254893864786149975524451951809067470774788394256936610758730476681739607717110122475356400331060615341672963239241700663745453552168822043296210038750380412387031439819728872248886210942363901953274303107743938985052671593025719352539626161855045174605825572169611334373435821862197317501459660213067864132605981396573419225795323634633321159043890112429433877734941430221783294557500005434505640909524092036555172586898703532598495144906414472242444134429509588338889904863740423223784095299888857428207073630126618796814547130606079875046397748025971236014416608248547181903660158519495798523231838690929148590744685346132856874472647934471483194836368699826237240821942926511686135087832772700862739690242260099774512268009727362565222023372172253397573004089751153544820587923867678808393103544898650176688018516098458293717606189774644351237836577373081881538799010156903556417971898643877881615670518143101650786316459023810856878363732927272871010475411288582056442932068731468009578783868112102631237121663291514765220582485712172633560164900022570831134266195648101922940558712809239077013160026310847613284757890105324686661908014983431695545555604983824271219828633729139064343043446199021599025607242265520067855233836195739310610604678353591019677288003775571237500443203680793343167730651567094502961560312208808306503400322286557704331411200358415078952131645501068180774706709126709696954598582363853481075297241851298001413155274146354917482604695091061031093567232925076852979292228133614670686350342537014715677854986246810775327589172751573247234575871835598735740868494654513887411812310928921434786490058672651375837700645900759641476750773007904579946230365195186661243250922348002210023895462988805951572152177463394317228381665795477460185113090685108794683506093118692219997176770014289755867622520474771008630379917274533806910509889048829927341744366156130576908263025308902074077963251176382554614182453221863077886377064247239069891226257088300142648090104780743379570689811444987610494827437133778460817641510999174642066224345883413711715273949818871504028028869008746314661535792247639300197639884000447440529838029182385608136726618850634232276400816926851745547972559185681127591104080884351175526004688458610288442422028007911824747517463680728855664354292083297693151112687937522732271632733760325915485371387756789422090514784891878844410090627373173113600140209607599216302401970105770176456654070671168284737609964287121210697177835717827578904114587600594946689104757046222545188673910849496653746614626405297700844238715981279489672850197253231919114234458303559138928364684114826695195507758421703580733397976109683616667277936789012042400274335933545978817945582525553442758216458303252969697245806709660099131767223616678478771918531463704392727528058413828864835925694810687219393111569903031791093624139369051145614154253970572614020538300127434556921353617686626222609997529737246704169393927801857975767734814002102415855699813371063344790588878851116135971535696997292299474796465345906117948225473927122342634714466648592413823710090752890719683406218063437310343026414285460295774027738942152534654410390704377194778560023379333687226241694092951019321643873783455594064219057221106823032273470882912578456084621642979114766215212055855519158532786039258433753211920685111887851086965770732705767072418300740088465631454634343678861149677409777536835968876034709893055710461115281537305760192807839944804070974041622548968794527518275831040720230208149232661657694548185144698749448073154975854342938687694431061164177941896983596813213369478473819884254701766597404589721278771366720647942414672487504347460725834336167713152715106679248528463808245207144147470228265103707728718735022095384895094335054092985186699975630729978853404315794550161028597466605479513979741243791156195724624197729498786946075123310527425323594960106424724918729219777533428720054967024405323472153323424257443879454591284847036504817077625530453799641773796241423903092544233287628838970149164342294412349996077755354127979998287495084443236315767655115720516515180919236268067494845010417092492576183106820759168585830942057222832683188662213669545359876521773890330406826717719160892189953377453865512448872433526904395915203444319065478458046409575048675141220056382185809475704790206153076872327048055920206322828163705647231527005657211431526751096582263764987823070758411063336881969231507650508633995872213664572306391210436284715694183066537783553826086851625586098915360944778064746231904517151230692382507017442698345244294585510833736960648498758963120046862834819721914340530478096313029007119418192477099896269053381773761096118323481921359856309506532389538975420326629395288188983969972146701265415782453173355571378006015773030660138825264468066191431629518814425400601121506736092359856384164718492001469764772907672904168045174798465369920296668371331600848759524680261797993886399295636331993768966540057220599702894284216913230612123845480577345365204759816081254123503168180474657837222455954915719941660360002725441281235665530058595146585879343199634963244310931395645906602376034186965354333106508691810915741872064179829705437927759645613218290180264314101237453288410867751669551771635104509273768182471801785946073376396973147332859639103677881267187048833930749619122728887496567263646890581178018546569308669673071975483691182713104720108134236196890789228156898178271502940845649177728818670482534365499578747939504115256463957080107948618180706374927470976255574584518467316164990097470348226521239536175435877097207925148990753306807736618385251506116235231499331802773766601059948423005586570106543117271850092825793322634798453640579731005998656944384704407028585273877675168317101781242824128143669714774936710868588433932484999971484105870939937984121513375505770746923415456826952030278934397224715027652939456176876807304567298917558269577385145352151200544936688134631002592142858480774968233473032178644011484877839557188675558574726989202907030996574506152955776411490867634373532643972173446744880245817092541046362771914948788844798011207856941025297726718947559967819052189995164909459537982756412107367820409167060534938512513901257946574366446171509639986355378930822181798782590026297300243272757793240041241186028461019123095718228333259730112470746947183464927686926777125885763200860583285242517758888275828618194743612528868562286387213505683742933680474001339464123836506216936391144479303815192497013325646628228179820183096758671111209607907397466847671360417534623312409652912997907422359179299481874408560559435324643051357798969944695334967134879863735042810353219417766110263212641647523022794643624825967761753153978050830864038031746541166691838989973343365278808427931282457026218700934620798473352989862925374321425913044776152475417367764927182080847793430571358634134675367016219616782431314265228662688937583743205917469774765039030114818140384992574227553695606691368339754747790104348187530468510995635999591129135923303284753724147968444029074413362245126135315091498455915647427271268459883054044671252956149078434558438394298952521619804089334451435052894439317899511615942188043280702620722543904983353077454296223208485790577235292636118581017918838959347898769136723929284826318102738472855516840415361549179587820346308916457247107938598999299133890119601031014243667891739520829648267312006181239923609071791006858457658757479333701605193081699348874087136697194611795276396630635535696153070316811150909750242868203904684805766321796782593531521852997633009707570011895350625581114628711201454866065874306372711961620457649996053919637722723437045591492859479947871803071310654248733096165883979121836429144837932845459762928484611590388062363532418700837812627188176699062756436367007150927437690834644221536292467774107208040594052695871682249278176547195566527287156997172479815452285704913689995846259492534281618296549586662001582358316067963973829690137341530378680574364439761412157100612027699160280000097948317933317369568520547745512269875805605917367149728000489267258979382477620337934330173329791462805362329673170769046853525307072440295504454510381360551669796705428479975797049950797913575695580171204575035798441299607765195047254126219359673935601441004958141622417514569883033124277491440976632873979763663255726976942009762419258931995398642786433334368262516300173027258426487169506852735195445034540553312961318166880316566582790994914614212060510040277959655124331598552115497544062584983438530057585328748510921032361211449468856004786932729469935281623987937156526878212717097016837386470502483614094037563067509151098298439145679697997791806791213269922214394615357880021102964835631177078139718716783551869104363239862630737652867586002121754442349065856716747022770968569185279058715669393826580961761224994969463475206420412283875410208087543918366121263304426274604870059578179831050789960072865497372776015887582256717678527428653221224276752577441851558449712225749640794020150387340467820942948906873389600922172825170293261668716714905770639211129432160903031154064841887713189544626359436429127817963006606005328158242590514005333351523411173442108785026510325524549476481731071861184734077755928323541718633743678271427815517284012009921190454736670457829714515329513258665291637339724657962325823960731280981402430494547116558542312123991078576431741282581259610935418394861869777829115254601075287876869488433194742883784711755024721811346143317412234108982920214689490942760965448980329636209545518519153844659212176327883168476429107493532047403984573164410145386512358565012800975872640640340308635073623162102693864056230662363878147014058058708889486233315696240131312910087175787378212955882620319053335436578918249731429736196596923780393355531239141196032479043828506878821415779502076589054360504849779267747757324024583296578301208364312504581920354096331331413364715601460836164226226221516496500199589462210446467986408339471151303220445969500938424675444960321017579153191569976629726911166193769461724868520088258362740565872535095853019956357238779384461959864548600753781410070091764151561595694128486751363622929698758104563764015660137065043198265638022431095067713209615067341507720929813990699098764954442296160900957023684858088183551633836789245091603961556674205837669926255515874556440511953980674109287473890742936761077686528282888793128349547334384479774034884160155293291418992723996986260623192383654116907828194279432574835010749379500149609144757679709883055753737545561599569248114535152934493355440583430065206661964473080058543698101189837835011090276138635399591508968742680444311101138960548240918777796708929951434137806681615474655338889291283451010857861868358590298158545932400058637298692420497497367404526252532210130147963435608403208524082381460752709525995427359022084793284617760944292772908867799058634097343351140667811726468645387711759707786447992571006761672498409995114795639325017117087086672793531592811425047717740212775367125853917862708087171468655996923319053208364900280592226480813596935867601615434190192583736671630714579359893838041975764898501906348604226128914813070525692445460637555808225983425384591914817968135298213302458532973936704935202044206782369027652299286898709881680850657583774633120959588390098595903886594068226323502646765262408131753147310636174338916267927597778758962437253723252434043322171999993780070122313957375999670898717772635800458980777838531900111114245250397300369070100965437816329243508654658085923232439937837500423021669823964248724600228398271470577734979854308990271042482581877560974484920056638036605368944283757234972638861903932097851177992251755913476392958597662384803084331820167581356366814534516694826140110301596687601624370063768773841900080310707483170081523503892325405084391869452102626510360418784655845641848891637231331921609399592002728131502640290495532427801444023556733737348121370812012717869392364804853327554743985362129498385174412683914579658348134808715771076284645487268876904470130694238338114048508859753236186875395775632637600232831851461203136964199103322348214713343183581816802486223677706230942054835292608586076368138862944264268175268550863545887670383411523298306551659296841548422405298111531795313651755661838133588200551791549525672751539015140769568806268219785148849103363040884673592573099113173071624698723479671091923184801600048296572220072530871827958317373762897657878506482635713397679656391269932581681846787354657384748359901321459847688922038005005703426279536297856156675809837396403103091258653926986016587607050532218194203502311605461301429955655285310372235031512974146074106674868507556755818040797273753620415358339209610177478942184370959932045809973641258091333606640224748883756299570847008610505534343632310174829420278752630205668399841671432721731580528376671882591408828517358318428936010333604651680016748177116572157401480770329367005902385327013359868230050110562014253179427819242817606756869842033519007308944990237941698122598547065801093965434094776893177026031600409502923327587432226069481848806419255681758427380719944026933230922044001031013804808554815654242384515502788979498375906066935840217882385725285206884082160282338833334127467994751907549945267626401249271437522036495561766709957893809282132128334469011453430896088483735850574649353278228815111342718282580038855722927870051385111408196054060156276646959172067255859165374940022651323331711676170652338232444073631154943924806198038301516430196258400641312018771663264719019752856946134579467649443402349596321436205280941527741692444773603525721770230617095926183465079239374619627280433313752719699942298975265144310993295522073212410165533782724588180434281391414590729877724335096493783126339331644936925338734966288746393290946984940030541875722879144257500574767616996173195570032381921493140689670427679599582005729756887244474605484709321963091810999372154234456258384365884012641633067512647192669696772764851074063535594931803630420484720100123644697474283429046096478989333813184487833406639642386488204261695879782344315164581129528862154916649250509582838553362702476245432416588847049986019830540153403573301377180815021749143545367317853787292695188706578407999808034088323898813781299994523911330373250807178246774719787722396353566107946529464320065632980160037591985302799614561311305730215159166906554146210551254791384320691150085842200135651143632560204737751739121013493063626690091336261292135561025625082290183873908260950887550880389532608495677423877864149601669952932051490117174920718839236905406380413362837817089208780671831684463704676729708257733118171088466237550690733623762248362924245659693703551294773399144308989397733509000811253526444476643734260595851469161362147516188536601394449553168260482428786690034295556829966385327074210726420065347149755209352485316607049147879008001463768271552892908385549147970835661187876408895019239341594568103225241741074678043257524176628606411014283319832775095391133332383935210231686100287809995635865120923460376504571081237560517448908626525080900076182144520226146304656453790583424657814403476322212431511127200981082038565272401578252040114414641344239688962443950150631746867543806737198122640819608256553118573923814205716329903085302161802107787779531477799667501945729204595877578169523077689937394898044700320218008730523595948627033828934141106199280295807094674082599042763307055947767554152467694666116776519597191200273666120183748086750949114182733421102182900179784383264837674780041081594444684459794073615549561522005737665061823168413944046182816763391621047138369182708510024040411947690554710810254235356945241761265551418085962801552118354568955885152431744876575612469585628836807502345294605137462975817920256373775216295552619951528327795475939192656785183953008802670709111388837513534335832534082500079639876045507863493675718400005514190626797497136286434307171584250624394674611391821451538860534987109531145027864795367225800798282438704736689796172020852602493958279673083640397886358230501267751786288722142166418307396185197719768701999732929695933298669691305066735718194180280264983744742851779767590207302210805399824926632024759922431499849946930779786584413693259284150636782487787398610231600519447557381732628951015584259023823848544894318582693220800037026946993199544064870637970955735088275877713647285299183344966853486870661551848163803271095511322965730292782108776972665091308554061011966444809436811353651426171541333971017157264928608027512575940401844311743194660746855211235363380121555009694318384756453686513940332741373242806122841752358157653083149488954060010953036018681351987683471525896528950372749959059490429376787297353592350731044662469774368975192268108893677673480563736439499792633003064631884556524161839199825368314301495183506813458718720631011489474875518809814184897889244158941816141270091733181591776168296100187897089722948554854660535371631477449424817953217651928539724077279439723883979635236076167638616274090725666555349630343040085833706750876340913114599404818597794216563211334189981442680107529514063520722267136929609404875374496398231608061421139815847497480419904744422019455767190199990688595535760051538329336675206472836732389850800544702505032691362520447764574859258622192606132640013224488165352767015428123904895158227422898810767483284424336910195699926792551118671212524123743749153656244904973969774849849352656252783786053092004870213329700572940320492119957956862609629287120466812369202400655595607414110185545227282119795816701394696448138356150827335887908533914320676678193412801759803768310327207773936143164653472518135543741953200039253360490370041439813230158562048984154051239935096077141019068911793158354940731934242376315673275007332412817122625072182084900073947153789328378462947092266210380213163234029300372936935881356800000118924102352333245048120162300231696614901585093759421750603813778526368690879969178763471115440061330743591582915593208974544900157335748082217713564281984583579345043512179992784253761032795178506265324335611724879145562313924878810578653937019017023345482368383622734495912265194256179824308798085629790640888476169199933510955001984770197861258642776138424287148550171344348206479591607642057330204903617721761370081621342301688956715145864336688025819718516138322266686210324619840598191294985994097308900814158930671615205947723333290857114274924494451906519941810470165069512588642600310407011689623725325508466096828615759582260885022603033753310632073099747225721210791244685199483929656345232400873019791076859885673384506288141958531758631092648034966117294721766764480367637971604397516280425587351997745614893430860293179671913877663205138504602735575171402913649812800142199925275966609096547451212037264435085338251344382179072989560417621990574259765714564777462438163605473016974251801548818521332796325469140758830469796947447899920155852991068822555314113786132103885215608477424494921115998329662850651024208215051687815641051417612004223255241047516662264969245049478934778602774706146448273590494765977300577148480666623103473848131887231851732605667823975679411403657223367128732393425426214492724101359012409047432216952682554313358663062585106420088609511108091289213469427451283186838117820954025869521855581466260145016794450828356698706683047208688427982660192349909738084845703289316456323089689055828141736122348908101188191657118313911496564910608632233339673975238060397547624126004947432376404426254323095276837789909683177524841605457312168994698019152728360151028427713147116708080061275088284094150895658537789616628513469434690189922992384900185355424042338465341044975006974602779180889369325967731083139654863070099080365703233284347355816705866972970792424747508499780478118139807017245315059275316108926375432185723800952933360164814464642120430853152352753950820117656384544438080606878928867885734767693748128077336302503581495602836789058601069499908063579168175913451573936769897359777408907667790307831884405854932431531479713497273136439496010455337888268884668528932267947417957928256570451086293580548318321226720582736358424609994611737186960720701046338796419942601146067381588550382739723208556175347776938902355036272848411458873979924947573073941794756042071769487328095647290210071232050291860958835740320924721031372342261019396530115314128976961226632105109562400092424145902541951129509244869763785814012259250344763609605363350571579648543099393526246430446314059431424607114176706513723299524000581182861510371412692477948564478264840402503585063511984185043257083045142707648944744773845692241323366591131467660471961883867041234248830359028591650094821789319244869707546685847038787669062671871863644407726611017841662400784889454732597626806342038460368621070866343926326175765438282523039660335914599775367095348234589275675464036002345872171706964960096219142886226637718446069361593246196612631233520037492411402712955673459396554789087756601511898621087101267549549599080061144658295045452635446002041353556559666237450951027352620221132765733810013592917630689506050940318671098877236643910783428348710402230906950204965117536958680657947923914748319488776438359608483587040996866849761181341803113207690102148999187811483949709886246130746644426934454532692489199989959575154675366655426929182436270562078347262318260637476084518332760207933790703217102109933240329939464511155804651550780015097870308759597333017629312501591695920705840118195309495207017685857546147670691474481982682737447016068191703208890929466403187743119554364841212525307688019640182830013681244215155188323156407910071676040172986976263670679259334596482897680311736450063744710578760166245100542147089241871612507460977392261248256181108197905996772102623007162179560590382041263616182702164023443353942887251902744500513562382348127821080792594977359966381165213726672099481967027977070655109916863043668080588366829136185459206317613630910405154659271112573959597544398759399418133624059369143454148020126625203083999547889663316927432849676977407855547353557971538244653367444234147742929253941351986407149028955647953341354829932016348314399639231437598614602258255677268370780254794895802669969642572424094140641512349695242045408349745251072791369469415031473920615765864924001390135505023181809561458531152096952897749068661626990609684060695415240333327662574823811589888358209449937988924260764239440001965346192295046791030486149766306434778887624841627578818200560160400236756987698388845547224226289346447803376948906706934075718477802626279112586501432135435135084149934105078782876625759109621786364036781768520477849143627857368035309550026018121446582383811728612826032089653157198594566985155512625559015483696592883841280690717078672490456025249535803017265447205552864559024228335242554437592471787466144722674450088504815944177458835870717068488618816860719719465974521132271259818707190936943339977367790423389300107836360561606560993275721693738255545560041891192987900539497610360177124331591757305323195315994645477869580292982571597542737049248721019922992146979681839265621138765321799156926440748754982510009258980745067883393543863950154657950559266436549321554115129249401373301277381186316704508358900492171679261565754334663399212967116677558053992552858128490373977605317449663800291813688390979116911466614047945765512086636750738696037544405417803751831946229364917852187677722938948659886455847652993530576082559472258894981728410601393846325086670602270705552598831296592545567253376560480180713089839819679101719803460765066110220691571723153500028265658578141621340442842122172965212195608504901042140031211436995721141563408849855161338777715903330267661800667582144771924720194516252439583476641776626798355499075903240995595112152497405279739989880750704115570622732905936716324951256646242986813732504402524898092722651458582396605389015667733631522052714314514521543744191981821526211510553460979746155035489737269039810114376225152091637675457253873621365909505443650016302382561738109188741375585448899352987437631380270003729273895772107269056927572992049461594724688628621798307362146823282212566692712783317599532463111759948421123721985680550402380473888345468111265307443510357973951638905215710851434607364621887378494502171755135295259648750905117872186358392299093834031688062662606129103410634158192821700729265153948681276304830081908449463270861027850378281208982410106845143689042886042133524974205037467892300992878645376492171777627930359876046295304439232712950050757691798064978401640973853203177332516282887001856096382540265099746907393866505144454658796809759794704387654180784952361732798098536015525807928035690237593132886616239275394986319753065352156778638196192260202354697891868791745854217415075596383052907281629586669983055443962704470698387822101650835285667031142326814224661847976952542420370347393775533994595684332860204756607211712609861693351450903543176577463705224813381979050951676566556437902338291135755184040139175707952428688684410307165682774729536394479195124600787091262308261539479415253270180146546908175129060443495669978525052654497450561006883646133511984332742754126501550245060220315877040891689812835918455107503394280650489985410940385122858494462505384414727035972010637950653050709181446309086409822886790807851052016177540799633106721196929006784585188641748439295429070537939540746077679405633032570766205480274377921778245536486144361443000137293063901762270852762347311134185521832107670940069292266285898537464356922711804061274302038024367145561793610416473706194988826138522238074973711056305940360924370707208763425109559360974851566380849408013447742762173730285586054530422152923957035726158271434276443934080714960069904327798319552366357104552656564403508859443798788814995060737584149659282659395423025927044564548989227101726771705101523520635989809706477134882833877095584559049376306257363496686345943534222103465713311014815480020260900703466049775255693604685256724094517869350732421111667999388872202954054594259105010592509854820904363949603168252060901005800128578542143658345722050049594726451295161560702807543447766898025309335180122290462204629894411826346973166670931940332640612788101995898860008157846121996265312316223035710675758719920753838569069616718658731610227102736680282903345985610392524411428428763755728637109434847062048696675485029117004551393947107517997164792930368060217586734442289292806605350782247466303643858164047474446103341055531106739860864600293787752962252350963428628185347718770869032195366665778897455881867614422707520513926386985307016974336155776792438132233683625539364136134408959659830332542224119457112558562062986339844774228333375467306024029145078923021029346270074288274110509928119669793620922022180791695353659506194338687382415803793150921055001161922849344142656284988206253513576224245457371169435068016311941994927022438689650178292671516648802372656489881852917021219184463953441037693811833695860785393268377337155670662739113803525527472582647659486474168010091782948889496264820038408177815189131489290083133731454384950649246141545135569103124461211692882967342283808902931438057827081700998856933840414508291672082461989578467033139471419267185445883620168367592506706018919027545205176374609145143013003566807938458748805770996801045234463241315000392503331527505736060649840727414263170691478283282586592204587297284360222228529121145308009887151581632628708563938731410373848180148519731863289826414250694405924720246977560136422343273923490808075912965101181295851475856916163956630336045539015458660914042209200045628843051875702680996096884245041216945626029020114118706053856163979591711798157522546314430745483549625409907611631482856128153925142855660943370942286063870576013985312254701099126799712934053775783017165993077894517921762725273161135930924896086037400527508633749770396804746127872212881930358724166987524871831389003977891009142329921589778033692625169086935824261133443271582741873905769904146703746111915260412602399121051160160163559470579051826013618375867714495610753742547439270860677955760797441006102533590910016953841346238777218318901089362762340418286240857059411349145822735708485450979643000302611567988559267500259390961090496780940927880276801045578733821361416966920949964578495942028292127131081554655386486498575063655733519193649153509490406602361769920409780949554968213519234853158413812800923582190001356670362224930358969065063465372637869887953466549054025987328134813132552826216558337560959863699786621045888034016126450522023137787227146601723051804323533617413917703992306146012156175458334619961429803150599275449456700290116673219533900347169126145069420155022644064352104067481568296325271676593206475925383283803472253534421072043030892481650167753941853257504630959902540011053265545482611056591784095367459283608912177321882310441750533495579073868453649742380061413883398776191236806181388923767414630562429169381125263689526859033359138559574545141474084733759826110299189678613467599551058148763718371999774728360533362233321284932668757716645023178431373500776375533564773978157309950813248974360151671683501925585214148918550528018643433324148547447103671237640538242563279837986199044603635654584038948093656282291892798669250243080348216416161079502275583976409302772953161139832621952861322155892335605366344151954569628057547653226644709459892403034639317320658489796070780141594204576854158965771633889590560498213171865902703443871054943958894251984332639612630747008421424214632426276545778675714176468044942072801455496034923975191269231287518662320305694322455051832650493540264815943641307358715371631645114892058414801863700487651015494789031283397257556840964863596135696711789583400976766586807490263043175245142518745050485798623518494403980223358361066371502617001910986161665077654485514321012414731864785471441297147142388297644462216478840684166993431470134049042786313007529733215096987030047108168994695988683607983769417941386560330964608089906019336019842245875704149255874842109336016715692692123300829161007269429520836893592405350416868651709582404240282777352051162834717674808365447388789894888186687851035984591063773105747234867618308605871871150826976566558008700489458733416674411652665201892961223786231852711314760384426874791794786007649267211770824511206839290244793811521503868925694851724737107377423056220985818998905895297710761052109937574009554342186045366087989928819784906962745841422139565192548925870605329238651921347531509912614664563195663099378911418866996105987195972834822982416582919408513756498528140258758972300568740328622933636331987913486827608680270563918518260768711330369919374081483249821377546617863858262789900924246272482624281572375021719531003144592268349032906818726084709719647014125915229988324453011984449362618211363163997672196013452019805736002355836990031711309407607061404949804911115374267751004500882588759624436195714825514545975620808065033773227830503409083061579357110987246982024225016437215064972270776486323211298449466729173375148361271667619615625788297159878074066818827216890006397260118497757708480591582165265489019890329850820043830671806243000131895901084542745320784130054767433201533606036412259428043723827490640011836849007155031730540553185774459580169740600138619504953282375182582088624657151029848672201859584838536304842410382412712121452009146579151552620857507859135035991991184021013592829975311112872364885396624693216025244369164342606974714164069730689753700084987285138350959625851455424321609999540943118960465518782037137354705126816702084320791100517149367472288037025655716169256333351317517862167264825865753825247257099500004496599018646639626962089410888607088771527740730384829187891956821183541008973553041674127163652555725052801459053157840884615239437649896051005827262024659939705336013566023906595378367650155618743519619415219289192313967769411459659336728651515289287851214332966371101898042970083644886185952795686561113426061016103811232288368711752557012956430004716473596390414559323861788575701348901723436624677890479453814429981446154962595459076172399462270734242545433160244739985701087562640443751078201852658520407590419260008283646869434857869491988116086418431175399087561790254055642602371100165691601233672221931081465251662246553439872784337266828916741872516089608769545681708958685067396767108981422721749993841855441677929444230112146661446828632053758756128470571481871134504235542920726917675455798562503318892580977449847306351974799676540687183197325971806354401531875871745704192549664506787671039356397045935703626253653980953862177262332783094841040730036245588275767647479373672428081523240377979439249146286567030394195703028815078080209539883327952026405015091795360753391455627231049970799907739596335963901085596651904131469907806206824109939864275019588674178610818650737895050613578691770461218514739331516188189209312293794242612360528580478133243099435437213233966456986849856039615416088725096382705681630982424579195279997072518637676893325646888513263871610983219817248134148706509330567485226850912834453285184518368381929381810073711396423315813187824090514330278086992366057753468595638300314007675625744963191880291540100668683122321242388369290069381449563194768760884176702374092890692322328264541336692041116974940395760071406024121351954953183895703776690829305793314073051382971023544012758275101048320780044259444793583699791944649242296987230867938787663120935348433218539187874753032018778301713245165928953608024805990288076271345861954748586531599656688116873827510625068594015762604684457397436114624590680561412316735535509258579977617116675215766531449610138768119780550827155872054288662274010808232685782401667999199182015395949948280034851551013304024786942081816516302311564816738131219785142921103542649530594704587641415396741776734873692717254151608244474335871187767442422256877894090523469399633018048118377319498619219148402363787389191512294408219368778503391057010148980790720642034715226917676946549312332990954055154240915360805184375177489498042192778966589865495494355194944834971029416914175440184351428816053114349043526445318398546855846249334219793216857103191463662015996055233484063514299317994815127343133465459992593455351960098428789113234335157667752519548611158910099376331647098813362821537002126016334786359413553632582246814530177978535540329135784841389677742970699395379244876520487447748291575427291046790251031603861852339816970297524098056868143659361851096142561165639841212378673157059082888859649033023040005348295797373708617824712901264094929630517140058288580430050071157220686730461408032335416342422929747231341856884249076151237386894114774271233873968770016617100082390407055587605092741816162004109299568397456020590126154656098672143855961665617743213009999383843279424828895188762972467670308522694863936865840213472671184958205592911997338548045119027794347602762542777828204952980741639632362761360823516281185428735222956493390231131515562297029530255573695586063090662344887707478185756516062756179277853139343772029744036782786616013147397633953300631773622668795866704256748009964608831246250368278806709038026879668718876465136044084829936249525384600764900897917291747954021112691867915322829911338703816851957962676237033949186626180164831414401758582474403027115865452910242525833994410199339555461200481202740478779137668485609657563020470596038336804424698912859571242994535931499021322528393978223063135845067568029594775173075050814323908734776783185235294028016982005759379415138592711164048737205994643586157190480601517713582215402965469305325545650744344460082723018202284440524150537029165229722240962419926768950325720916321812557985825923127512561865449710403346998878803901391490956200694986837080557664169274724636917272602892597080025892744725329646540033768935846964762093073551269335823445236717212773732324770317794198960961847229328024082421762737875953125997169466914204879816051292192015197311539500206399190448824711114759539582312162391205893420735421197517833178604967406884493315323686693522151101560393490438796701149485095838387131007240326240824688588925233044811930108671984703312389412889895393517960992827226048226191598068347439142413370657489145367092552035558377956424719068035324586115377618451410143876448334276074345805367842161428487117677088798430700868163074197541476171200382358921415993949638663576664089128792338152473087829407520580094299648868294940707356240742406241888348622114390856326322886798502439238982528786525812727506140551425662533625754796174402802635974164351720697339722327555993632836052768853852946049172812550535360542576646762263581939602190611301623405653316575710812813214137289917634425900356374980107476595118455219351873124985333036084687407475488504109371498214132653405194555507411339804765865152066608659851427897627600663817536978717553292232298401526126986958704509088155453869298596850213607161515292283269653009186926076831905567923858874053863340020864274940704414134106264400325549579214351908325077723589891174092875700846150368146776474725325731773680676307874872626418494634036335728863759347178316122838727370180343525151927094224274523065423530747772467621716924658335705766782148299624663816889601475259166768324583545571290910088083637365238106532815217653909878705371943476190621665355605791268607967272166722749105425235543857471358936669768616364420575055358901308920954852241782347846409674610131366142258123463721665844014797719763247086003131259083788013133212699263785682066385816079354198766136272892774582508102564745782301848977145875294699133384112389565942791291398581939353616644533403612824967835110823675347644407639273646876905053875946281945946800379314726738551640382007637662250083188576620850305613416023252321395545086729560808976314917815351996013952689568638280775504417477346025949220945222217428217993656424373188202109736837959044153925113765688019654703725302870459002316940611391211277674693228221910714930863058267643109201789282698785177049240762782051551585938449951515726854746806837225715253799846044970642705193189826484993105212794821781575370186430985410881670959873718174134739945171961570901505677193602086435936122159763674113145640943132634559204226532422577194797078507827269204606584162269530632113741356397375695498401607618673156848113296125140864748978212057574689515216599353484890508254540368802178843677941086830601512419548223128848704673954774140764829926193299120535113402879132061299392229727615950392297671034835777335766312606854090962815976401175710882496971597173944679945734392810745226912524191036261027361528465784242919673217169282790857880229487581739971962269482610201856942562511693080466832208443800629137695569269366294188465071171137741762402890730699462818350857680348662560102175525196569850164637360817994385863882087654636686025894627862376166020319220881012334572094793482356423412273162579850194330399315223643691216150183425708304137989685775918520094178007238789250862844891535755771521628794135274030496225315815955340334003589603796343060297442857429165715179135319989708818247206961001783980729922827214326470319854861448704546929852365277583656681797288617578358839651479532699932120186498622210237469356770177856706638537319484597375791798756070255758500927615684543594717329611200618039314098592172569559285111669813125264012486098488611410770924163227287428090944910895132001526964157699200193085571251014037771983060431752421513920161855251293215950151581796458757747867347596406308497333368122233924607749301465185089618180586025119293599879728943421805072266381254798815593941026541099173415257652574155450116278988615012537126666966760858316443255241133452307860984726046236804929624790135284903843747553105128282005065931819952837571789379340424836988297667887342419059869179721356703913358809383302788048309284237702126116305176387259646871674365237099219623859106768632016550973502285274747328333638528378663670460277353133308596428756125397346060608340437137951636868988818702445814851968369884995586008285604359682528398956514733265712793527652814007911361916257167073945575333443449402522926837378418789928012845762369870844920402308137625738500605489217640354517021238112814267690826130289388016459152878752747276586295556655726646185457520357209025158772642013605751344606858407826255258856110644072598743391453450238366201587540109734333389831936253118708847683570074401754763408620767023051461865095876485708011059571914778492684857088053164336001240739034498049777605899963145792453434455580850241178333887433934196940409890767023915206729919654038050163848668444688020130085087415741307330569399120646827873226722568908497836088721422963583068970994827617138114260274954774989362872129336349652874821968071025044891275653453910900266865293038275542485979021721967826448710461292607696274411284848280291184063177153743053342995764358397712854823754964493198228999892884161499778021952762965714309371444122071885170943189915411304847190504202989837632898011854631645402274498872875844498073834635967619200124293817628171557534454265012089433721426645354416869173159647479724974981423095039146252527387565273678459993045623215085650944033472586610454512357360278533309268934226377716796317625137611541058826264834093980426428695809274603483085797524230860685425847936351859974554652097011814254410287198379752452279381112895863878149453739090951757485108670645579253933670525009299648078516626171401289992646836277809184911476201741915376598185033878554346848347094030572833763269717020201150888674490055707059222171533018265095153682942691628922468513327056123690878454972793796155035774055338748571893751127924921508862068744161873083761752244285557843094600578762395588908982008905277009899236408877738804059841451641244789172617026586379331790548535282662081678180356332951669779289066270544755520483523545682497149981419386444224914708034434120229790511518830106783421689237765325983364306558900344496093246618273536526715801492013596397385902749995278330841083295106639990009445119368961033935753011288508296104156051490488057691126935568643869638340067411253796232910464252011881669251654776570879424987957326914308782980670750640770278666756436015793916664925016185054484988168762383744089665832868363352815662465674874005550323936382654927942866928336264190134605340032806573519307986024550238222720699911586728190886432524510653831758854521688389428019208811936506208754052773402400113258172515308338034289650799592798623440578000319578965474497275974569395383132357590383403423603084339727227223380668861865284232377823150017264659714190172660617984888481973879428798327138201434200243105858115439635389111911286773387853673106684452343600083359370271063256461042084860290377797811429285604583941410863805395940480599177792772236539060068011978841973826064550888709802444000282034923404202042474924987279231882227841641587880268472808207109905639037051637139548727305604362219344401571607219257234674537549813628961365278019681683472478895665324934920232760930628199255933335304327603031048555701666218538147722374020553117786023929061615703542520794126065659402319430126402355523382164367340712845963697460312699187513025565445150873017686290157804875571911974358180368977001604980000273038109269178533930649549488131296174464532552205631986056291138077318219413936780743515834037559797514897937125709482499740408033941888538863323363364995436656821396441193561662686070358802683108072788086371521035321731991088027925604190364662861331750865887792096681694731064103929008142083889861428958126078487321177929844239113359433747999923565972553125989524023380536266948687790950339632749179436378718259088823037572146748809242144746656413816726193469408978453320915913653186098800831554520267539108340947521660135608274583762353158210207487932290822351232122515982557198277655209496834246155310954912158200514794922247414805871796844189957022621314551661247539170907438107912532936996545928625970303009826052929336249414624172263505347292491340874478050070755862359799858671253629411385510067083467533914419899204239753296830430027950507473501663685952236928891658031491714746260847776754515361446581284752855143226541137562730763360163120029284066445881979880696815364254337910589726468523129989708922597540257408776419510179373434371910972951883822018739996103829781867586767308699688026185355222523900154081795209206584098507971334465658118466529303257468793911225872313641203410627192778222451671007363485578237088837358304553390463327352048225807975781546416342006750711306105725209950859826390615431987918117632687811786304469258896127174153110863180903177483357484090734212731460074435643460261128952027275718697926996885067956404971881371719416928991698933925269503924484346354186545015162707991083561602471523654192086945443747659881037074889361260150643232300466023199635350343502508766507355400049838936392772234470157446184897251945544799717793590740993637549862823681009356839172097979304270688139277771616382320505821634359852748067100699851838600380738061751225861572471481263439293960169184571482868172204696099194340871380493515403951033316553118376691954360991695016636691410877040533150658573150670654229249124113408412936212429739567636707104382209994220919718597544567827272588360480849506853553364760689401009130459371321004707268255580794906222162009770421627951730382231524752467606885875407082250698660968022789879158783050401316279159451675900859758466918252445166697509401957759536913895663264868694709652822663354539689049676623839311299332917390513511717669742150239672223534750790229770092448871698762740658421200611077209164263809565362210669095236398647822113748616111810228839830744434347920716243854472987212890682507429765435626862641832578748817510848259020294083018135953754000310041147040673788396867084792006440852714667835516341943875259272275823742411819587578639426892480331326960042929608849298150462384653328098936967552867450629053669635026858192541312825601931924144212616829764579242926550521784891515628641366960594686671085760623736666730152547496926027547839100071125768115229573763627215046358167478449588094701284036745723195517652365890957932607580733823775741963658606890634273113255684536531071290100067190511188577029579233108176545985204706133091718543032908583548302877155842028090115868931963374065379737471242603609570268905296924032713625999090728759138855071062397314841030423172236859400266338498708041711458608052216524886901820784241433432579920530874158663324965051746843924927132090948190929225805142675082808961014724101975723141218974328736896697284836697407859922771948846541692240319236964843195668122059665361314904678463609320718019189995871872229657032666292675895647867277129822561017419402649823309309088329911639788866486875814428656771435140856890590792218614664217100903856939160821756569364265273750337517390456741865161322867451615751313148581017537586436218202089630076566030568083351692901242030693559761756742018740783300716683050026115930915184029807510698827942308334030888954213560105352110066015372712089922820630570817206995738212660415030374973984449890596253104528864139998948373922421968362035257794495784900130818815767800917292230206693037724684882215199485227934386454664642209290118271680114197553500875957964912008581422455097909663885568141389474170459548641662229349594569324145577904604604208041282490632915702621524480223310728230353974846833615584648406110073874943112007787233012955200033036855313851634493134509323652226757365676662444444894236703294329976998708812125475937235187288040244691133240265439489708231362495285025603159391228761204059817775502582105591915975986625957611208273905635939814704410586370990544429670675741982686707431392001824709774150742112270575553330734998489653717370617182707422232041726155970866594892858582538002600925088024256682826233160384076141872681902201442967373225249377084363108721193463790103213039057236265212796925620632758216929766101836823166413202848818907444058520517767789806507608005120422947695506343801691830247402237041511427766063038322970759126846534736947241878239866849619692447296433137377311914677803099043859595296482130245438452998243965974193748422355996317450364421426169379690504455521505425721738971908463675026592416104315263567229944537540765838949371162120473240636336735673602502797954747355883120446591176438710203951094142078868198476069732936103400336415779177714687241942081812683280736638473182382923626123801748331192000014288355466140281541536796622373493774301523103472158469806846529683748552569691624862213152547350890752632886516377536541471855145238429670360863851210614608056857779317966392838049165430423128044382449391591764223047205756241272018761719404568652781535475988200011462182668564873918449096584965442661248394503851067612747201043460301438002369476078339908149363899865700493462028828311258035761111321688001752015877558960726138919504311810960178583700124704250508665603667260511034596704932313956686668784303119407658300763992717038387380616599928431472623143110773933893152766060706809336204956654408392004570454402120195321756005871201756741655695104976777012397981036850309080124623595287850904697603370255973805479810553621131718387363243440275533605355155179672878659725450786540095064037133155269217855376290839413659066193897021039324619810228506136509381951199257061260126084791672986512619916533420690809019183391953984236185451168315582759851836630781925171895582093371768273216024677811151743581959412111820635420335889287934949324724456384893868288365708677270576273529601103452813753482615175940440569680534708464757562774596426260204252019223193629601435423267757430522533680552677183147698174080656256088675472135455621717972684683662258027017253366078542549399435899061673955798397858958287180120959219584625074223618263255293132911942575094172557245319463630904814247336463355251979444911221478953981044365457275051974304609396157769776946507360993442827653574473041676487157944303403716141149294799933967679905225546716271072175374688864630855680865571995767440540537728509306200225921843652126516595454511044333171071279316637037759817062438876514165298499992332522318820093599626779371393300279554714313238393208149375059650553852046795588666715719774289816750377164092755381958877332107137970586223544983985212956878745348508731096466657528285226436105903182972657302830226227651900127438495317683736206944624365154103752624790517412514333122995499616320232021799257481402730397979074965032276797505490318521342847508227726586120948850282547888150056402906151804317045532723283145768238569221783634006245556692630453207850036383040972548638694086126325669589895670869021327252534669148803098916907121022267622058202749831024355485149866078829294463052112108727375178845445326913548862249816520347637166277585907543845756511585890660571150735100190117958518226418319272476103584742490496939837518685624197783722091149972071097227061935863011895015148803108806621332406302684168644068698917977722632134378236642771748931882066596824974408589475213146295029092856288956499579524178586643453564915093736673608714656829361646915004425462476024220889766594144723621534507746540566056242537396653308576196541906149445683825264597390236582685803835625112966428753004335336796605430142552853260181792397948144149214593484575912206788316326666268625436236874770545786064742025665578949290135359839467605385281471390590121850022805441740103440126505706093613963674386459532090926168577299843292648660261147387009469277191594008808149169910521125906211445062332966284274711758451290814728353904822681778768030602051343413754082532756187723055680262211750647690547853342243452029940130647480155861464523036726703901021383561260869679980783029937488235251765263290067719046594025607200123674745912758969002180367654660511085477110665482938011440948193541242638576072051864403292278071964396073426742710521867362046055970530625578004713906235400191430392430355543783891238955533856726670159554495791925792829066284225106334366295702313187218836312512081681642187134153987208065665434547493023349745121850708280735274671306636066506063693158311800128751089213749903139319506954180567762787740660044424083285298651490590590980297600432653735258269948273778079174079831445618516178758901105012778679667543588945472554404544511362593076902802210574229936287369829737303164659286989274011865024320674687401897776991856169501228692098713913050544602037266581163151499255265117992963324867552452357381804753023788298248128693299691140329183142096096223172167166929510325045016185229354464421407923355965533832372344769207764692809546203119410881467272726134000396060796169578456660618559004023324898495120924333263277473271669452522648093917722743436462183055370666149581917456357301078523622547559239761642124361741257349691318495150352390390148813833520474068316450591792709001774272187835147873948859296261462780613557647110055708130673159780555819537953933200389924540645616326473227655599865451360785237260279680941373517981301214548231836736906425325805616230673165352019233113287573617027526072133680446649227372078451459302548538116875532874773790880187177958206442884166224433575568260194312327334068930573375861536666376356695850599245187627448804519746952651003550275981643723743586101751040081209177189009723295246754149608584041688217342791526895567037289907392125081532917617067560623015426481190739789729397608895575000602499838766652094987514512723624514714105901085280117561003571205363372240065415674981632369185542299611599326318877369490948346831244748074076142126849983466781170302570037299410662629183778533069417987590632886327704399462382829700839502214223111441562715208795500119376945898042078546982047632716035626244501384454495204120511845980261248474723157640919927227051640926781168679255804832421198555260243171430329631850151329953900575210195830940964939243320651835761724097260027086543371911056094876164781785176692609044995930401015551453331281438136918600472503214779901749134907283304959643800819278496341820568237907834495221335428621559295591444175320569896916716106084068278599628018391020991157387377136490496018702334543187247408182065359069141182739375164656906813659161405017273840111144261768223534993191983879115104811348413010406824513338782510049059177546553950642577541590418544289618875784380183979483816202976454736336948055104939525659908888439283253673205114845934768597198960540805345722337082688015539048645922172170875391758822925718185014176642137424358326669496113268107587404569168862395824782283079046413845923990710308343370069324975044213241980305713547801025921245631629321337804354909396197054086389951764212243231548805819850112721322557173968766126679400728876384887589317013266659477092915411392491355802035052921572025332256351842413105411442697816168948656815066161569496882517392375840958655935662399245255785346605990955757051443774413614808657273968453111260426578245463554388641429936730687796788358602114965207854238226264325482495042873064026562117406143631590075033351828166486826340318071691157577147419219045223020417216699464698201699710622511651466337811608500259616089191056144475908161327401202613937731224529368321437862443204656283366692185896244731738181941387948265475085986179589964708233205688443862033377153133274807836917061667442156600153240809087407092267297115987738149790447731723323230505798222363805776665861137591279145762863949464449794643687816926846216606906949803710802734378156096990110813868784216761440250008511021656807226262603607701961595042163328777771267602680725206424922452195305442312865772710478685361141883176775784110007080900091493045577802314565719844066860768048097334230531958760712268406719338931177401104754637196403684737991266544545190293427520012396736225311240391546193449232353934495448613080514228032124575602417121612198972194073986549030745988527295313593202908177336617746074930313480908725742562036514169699792418730709124841605881778429596017574427025810729181565776025150833752031083685033277711670387424846895564795907859951373060970460481160050303676400178243918671639157568253606031280548503771992322044027120042689412982025155158037382711747514043020969816216343247813785227395918019710969619144336740880260988604052685005001184278519276453115611728013412035195665093811643548647692301664981736020391944856731216236210276771390550514388823583478132478791510943980152743879367559088387074819441621305987528191558090693198075054624114765144482214865065782702803264125233592998821729658235364135225345756983639583435739045660699355429084942772543265114963826452242486759330665897401526522921491827320321150107444976270647425255962831252605677225407661017048427100136510546252079137884807203916364886618601900198080686069043335588988962525471634111796427441924427096899460330679242879735329788279383916616173599149522914871662111348904054642999360597653326631777836912728249036376576429396527249852618908410241725005531939446113983645676718422926928306712112884820022986196901512980973280691389948808760402978464628658172228480071859513472643180537183253813005845168034746516120684925729630595268069719405791653260446101766811471494262278755830946952595662582546263105479514526245622513626816791512050705593897139165447162750059586854131228984206341359231342074675498781488494711358049112030104936965089753156151852133474343573819411202096916526793675485759304777250339495340447205905425643178213985039751195034966546224809453411528503857340724177136240483580936773812713879811234274421899634210379113116137799777609940205242806459517777288552416321946626629263648722404514232660815701547586075990494088190712901796460621898260027896098057745368524983844423511111191379894423587800255570247647386549081710672162915111208254081203356017066340395569021428118763415236762218716376652651643725250747168706334712008996925352264114569046166950535799426408639690526789796359758404473962241935070364083591169254292077828866818436146669707262042792310515217505506420356688735886964375800137514628336225952635820730188994457582743703787013956001627850188199210931656384126813559495323739042803266804913495248437645586553988065731172872986867034381919260125540129744845126896231465452162429722937293727040813803292222438343253682897313604821336733164376616358885678638079136437683686907498550849284078714343265908748367899883720902460258929738826441255831471855545904025398764572799775100973602668178414457848391916949358492578565951285382100261427511924512550638337869430991717667284704100761321714558078045128183897662191254288208635933209691048352034214408543329217652861952320158280903104377401687681205748366774080813920935531158403641506195511160705148412158484575059730179770849764197288957771962961547389320403535474677479644914003003024477689779153249937640479688445486358879501346101410649868945436455390365146050593646062259158932999013577777328867075810539703588754201012110387588409348917400447821071946648787010893232031464740328161311110823544101655621282327188856547884666837748167423714555480802639687102266204260721280749786217399000932313964722547956379021928061665640267301629416889529643521815135639123610992242029960226240883797100174678003496334533579033052973491254927731798834392451148791588076986308825019442867236010019875661558857884808302034292857923483413795651897208057019636498762726940717087237081091637540797657793263864385830770625004540157176372184956585143538310758268194986082605255264771874536921346708556646932214989975487227307693945590359311621136704119888523844919314078560932285409440527137783792876958723688200597453441486642813748546750403304370942279714844612146419457302288810498562861305860316124751045029194981775150371058197900321096454403529762727161707157173125319275408614128817962887288620288848385546963361613553845864260821158097229265157280005945711693275221263867543253696823811458179562217938191228476338102321057629846132619369919689071572744275962544952125891287827105026539209051859045092455163357393643314069552823553833376660722066570008074269187663151040631559262960370599666341226339300224036081211207589582825650707035682839687700331946526157201822821519901379482461054109291178322504260439564744659159574368336491833645723886159915530003411068923877046384238080633902246517760146921387010148438151599410179283976853153891241949625387248087760310940816101786215051171716294274762696676356804033741528457931722869189231160139489306172975471749608999807821936303228213714599414089093055280964421243431508082775993336544228084010583624898554438204560770953141128516964965908599774180792442560358217003205214480903289753480580024863882411095178180977699675571884971939497613076657986081702320543277833352085342962200600852528561972787002146238198456153153339831375006526526957917877289851857739957197196402687672984578041750786830256375501431179101132981191653820096125668101579332826449856274317348200082746694885895329522015465295440136193074399866298327906362781646249105482167032656065258941675435272382458965782448193509861209121756669752334344766203620731010010343007185299801342753270012886443273550745306332219306338978385420726669829304923067176397819564015928323204527050355569149151976396397340031152529893385737006645780889235912261445954702751388504119335611975126514646958256706200570199690858390435695115717837039139450630098410085187345672273814568530457210016897361307861456129210179416190395655505597784575334846642609234696173187863818876509455790793065632672744164200904161506843174179586072807705661910575733784267578885049009905631019441917711838683445801503249733489083317823543579013251300430867102384544065495432704937419917131757812180570879607895724768965922837863266613114410782299003781779412459170790085042886272899064034064670210651829259770993979552375657710659397705989179578256888194289021706055190920422397620276612488280704026644708551453548402672688854491373372908958868456809579459608048131002403939262514807069548743405350928278533634160151295125119464135883958462689634233897248932435400884921898003824864866944120207286392801702749854449862946443280564513622702406203372291328482981484702927129814333628239509774829538349175020703297039804020045507673572902524810955741063899326444944406979992316479741622495441956044726412986026972902559286505298060284995183116942126235241844565241561466833994182857434197734294521767193209844397833126740307245092482462094687774952836428615581648241253690845207333595053649780645692607571448840264245081586869839748082421729741880777161198930662161623289437020547963298720172271396911695104126533752635010722896023348098680550609286346747216303278238109989557189073700122723997194717762894533192768289893396304878575583702817806266014794582183754800223608160260751547899742054729806935724400917734493371578807496052691835293875818746504812321602023413504663688980212117660219494597379024343848965003232673094078926899018395981115259979666669280936548904158567732343736354344502526028371613491939129995027274534187634702722020743640920632616377094200806899588418759160952290036032909191036129533624736286444330272847768394870043963867689885564702364393962588705514992407212144483831800838886630865369134099243014359187488152703671296168558763683991978102207572396743250562390048084117239002413508515191513379418040894306176244570765001341201031030271317158658995095217053644363835343339552247800126478637075798159046682622673109493509495661624047196069009257968889795415368884405523819737293837861150396038266267666644853545967070943251787049608808166265255849968750021104942677604977015511481920067465169371614415345242173143553543884818060916095567443776250055043381906639318808863720570550349243262830065988676140975882941103160491742470713147392129492351082450954605749680912495202627092700295966359539972369569020688831776301663490980600424566941169983455928179687905999526444085572905555408468417894712001540058452535827861013198101537191890213955664047552992334470003605987493659674616157045429017234497830887206237497100830806053595238676376648036250789417417619083595582971644200561955348919060140188258212732103375766303693392412583519746078612082213533272755054331315684912477814998174417683015023879955953880674030975536247380615880339027214643943965173466964041389442201392766810073717129704737034406163302891064449600322439236991002714508036259962665670735340705175690980320751384120549040923578318288020760659429967590657953539354132139111418802852589288812339824734761518124274284718687944199585422614171931325535393592919197689582973336374811562760853522291229050062236659879689680979141956881980059645428657285667188822342775762586585910576256060264235725408203164882511762894076178660003223935406716127852000555171660473589853898497507921931566990926626714473590062138166228414167991666318444007678517965341450959992433274993930510953513850124742674521820295195262262114042242310712903795355793361803614120101100723826434216932429310490631404870024398576532382865304608379313575202091336919211933688635056660238314301317968846394406548020498687242101325510358935228936162901839849331006639681978843422828853528829288737220938347689383932528395246462079939432878791051093330133609666158811409048464299059661913183431222920930190815235166410814660858804346463864931409229701780531668939207812098659419208213448595469640984458797524776613883286640545881163261180573369391056585079531511494329749543003712248465707497799573944402614030309026606180394467344655140744699001285491808537537209990426524908347009647892833868283693844340615922165525517323301503907867055385443976503171150804701177337386098946671443662761180925169156924577680499763620701415564791892553354214778063972813461009191757062074974616010700128136983840390932794507580364564589083167612256382720492588053972766866833013197709572484222336516369597216767155363680436237331530989687739212557541897485607526493943568086481020824767025700682698116536985304845495938995385611900602239859506375176307867865815387532056998716719152545188466558038804040249270131987436283916154756738836646256590966145452625743554700677621846431280280268620543058769152934198195823281993545246619967052115325943137640510469164330488499834615416533992624661051075551197102845754480274153681772182243205242299397084058618268140334898260816875857312131589866466477583148702958617925455143241191257513346735401097173837413863448861893146651964581527110664760891839635355926216101818510576064440400111208544438765367528807018481625252743024087534899883522890263477010968838739055604752642558016833875931442880610597850552141836294008771367668168730958525322105738494272418769111341403228527485373968001260865997942390354039557214664467622175486739270917707308473749120744330326661366788061635468139962748115814240698744701267898218379960796352474196820966454343827427122458324430149975676185902026479205140079475152935634646840497164218861958562546772529597259854167853730819688219462243666455564418167061163297763625043985142519750146648329741535872278783411501524437091635296149621675164257686562846928590236157701971700514563860531042987251000468128036219100926542942367238877220715989428994851757955137962407385775314193065108609600935983464073559426200521361084646121904516792546839149464023422677869901936068746916641226827696732379387492892628791464493059708525097431777727365561457569938807225804389624386416728297691139378558525094467837734961600510806059500959497609416041070288946208845388227445646376346417599258060359565632335775338031382389853150761050910660907743488729351974969390696650658263512634266384152291012017040216221799079821682702656071875203879021362054065578439103604340948752342490801109400439220572838355077131425581046952875795113065232368398401464061384239131381305124530927739978463845701421756195432987474294670580454691667402063232284342101233924916813543902422037116674284317777992645455165652259710697139682139784171610017009379264754198143330491977635272382638224413103810797599327549126247741502949775341831712535770693574804331744248956703791895331503683082680082973498459552376651100780186265499253793733261323014792426436983875435811158333415606138528231148362000701254144160540588528496493865188400497400457244165507691849901975822568708862314565065668836457328453656649634063725632170166748227053730536758529730631435279051701983967220206993016675077502709635590225101254786143963629621078668889599784487933440527207990328475717112596713047345295824742923939227680653410641573892967244171966021845608170922575910587941493483331549503026696582081706141141483101428570061744031936519174020930917474862791125757383205436208406738465509391324981332160489447189404692118656630962894514658897605080584657284442330407276755517692817463329924177529523495251580263627096592881325656024170230951483118715120306034181793512868611655288111058297839690434633429405489624477896062925621631398117989633554637030628484465863304104245243938396084305902671582485590082874209007553343041551655197111560549791135004608182388575338423991064056043666880879472960674310898856910251476165772842929807495175083074965198599852958231573805760303611438570816904898168228484825580099856418478891367306087833553194097331144777033979775375324493643461402825083197890900732144211695431121663728946660979251845765001407905735129105295361127846463338975085391221644144833966941333180012665378715103967455468822295330116007023012885850510638837832619391137450361031608589165975550725010527203769270956355186070608735330285797343159864076393346147761093984261003860984156021104570169217718092343025586631207434056823216726786068756195596807037299363441561512141594880040445715788221759440709693116309560687857041604133881287035876011594890480503873653184340284577506149894359788584850393729981068184104481513919434230123611404352734087244577939209086965734956934857336147165319646475544753307582871687117801780017723984642999482212094981551907187979889879610736850542918949245837351882078636428572502366663948011141136536204701436442711038044349613611901085528692949378462774300121651393811045744160267324124718209167063720121139993003178111954585322099648180340217185612505887334148216704958155722329004913616663897637883445261238408161026429545667226559919352749057747364963770591598406838698980221918648265917752225030968395337308666474615516069188279113812525133101765725985727003032371781217374230139992161490343814029935492607465478617806282159774910779955172130818576766348264956453361233082518486820486156889392997101716533022418669035064691239053037963207003747665325505478944599707737248725097499059841405072912843353268608346180038476348522941073829134143410117619584347919329814713284111291858043938872178322712128938393028232992651070411895810456075139768810064359527636870016015252467330631879766170870665380438385654900273042717599058254421994796077748847686131053861939533241893064981319972213201887806483082532742133379434502527847219044058891946353805117404574657579156613290996017124787353610164973930179223881521270641331975908749489891069958868499838806819264456979632926610967550197352876836697262378512140913472181585665567825887520966451321877243185820590430570929733061067459097550800902770688987185510633517609485066489529152124534768779674104509907498200524809700305449650326767634619160761047780975038592507111237074721986422710430309359955001198675846933639896980275274422535338881774251231990163530517504239654862242680949277091637656844250912935469553931475673268965592981588787866871350540507828830334366086967807554632429818054086421431160729217073479188659743379542682457015734617170921452415780658695121921650755661474379196997716863959783344816648408416221406013501273450381784723996284293666368496078979083546485162950486477378720353377548956378319853722597114660703092153291606931294588443211163834702750041952947205591022677092791938612667220164622539940972283162548397534080336355986917575120975248067880004568472181563610574685376802905196874620699355136362331773694754921961654477264821698517991685936768042893066670717122554730989446474967353380326909440205852300709243876104376952177628220837955650707562164303780420454771392948111724381412133613630975947645446019174750327257554377329233800265611006202053649716995716888639893050106367787266649091377546005305063021504502107678962071051869707183625790832364510416706318232640645117122017814071324683695842544118822759225185007354808994342304717040019535118848197360951473007830271054812935297345753676333086245684079627604040988627334719533495030274147060352500454062564034970955188711822499422343932071718137110078026204967297910695233960473375298390775663369576363883847411813230394575557979341028012118229928387675883277493834709689471466608368539398292804896384510153160165608805672434038803516869062973982568311208064364792603767354978037268263836902902318170939659937162893346901766320774370414183660862700226512061306963990823791140897652901433781191542006230513049538172314528624659088504900416371218609437118663195608055176784788592138255414353099123290150043287961578094831260678355034364616547769296990486208574059313581053556548498244763168891169743154856233530117194343680813785300520278127923235303187772869120717819641494968499094841228623725309725891907082596257306584762321908603590626422322128884955387850157312303253331729480304365794589911376327880307633801171031854251452156993770247960897386029833494797885030780772180728929081344970212129062494825888283535503263601646476701710762820334168016730677327413755018971394952733756121207892037136660782450546082535960605100650034939334892063057873468830495213644233660195662120795083747085276368506328873281324063278730643607516339350401468135870002005189653647638273404524312562628373303722044212762848224156996233059154764078910777029588990532459025961643396761275503598845990621132919445585775782067834464838620038196712757123600378002528179752924904023154477566050724523621778939705073758339275478872344859388418931417803965752806684545281921131325832258495048533061071059339568409842114214345427039793033423906066886346750835541807875442547014360187015903575723193908471457974357637624242897661097455202321909386082129069169909080988226583975465758371947681224508781162700960021089629802134510354753227650296913574625049023538826927730174306020011389183418028766373180041780083871604309444863401338792667307283434093353447002647841451487977958767698945496123477225494168915093300247380073149997553329950284494961884486063140303982304211025410099436832956268263915991764907677332195261593339213298937400977981456155979012068676113156297358758786528610768649248992450410285579242012007443560902236735013186353460743972828639371593302932790896876008216638002490328562794505524762755205466815185779363482986343263022544348970823488515359926826728632887828452930097865161789069627740259289124512569458007453286285576944305870366261131774469126434462249631591540154833293174351986570335821463023815161013145068149554263828934238182485208258815930191270039682003595592332839788839260897470624192472643450284528694168518088231508389265482645919239571877117403621090899351400576178701807259545410477634811220374388689637429824203388120974950462085656852803293952063077791633149502844505835985201105484518878635914259062904009828821752476714692182824496149713874225405113360496292238665241333312006263568266540414233003281591753950636794481337057951972484648906710065611923745110240887143698784699305710341845643793833515756686475194590251634066381707175501143714585719140368892971843469009870172992979580637688262835537787881385670974714012503409865134164798708267509766195376617961273577034423059439458577626396628831529158012912175094142366494184854343109857424062899780236343321193316819820406373695816503871882168205565103931115460441946243782861497352666496417834789045714676411782408439238526083853391783852474647397249055482448404096683905887053185949661894932409791941499408216328016952056184181101315355469125793272324961316200180843313453333293088094631093393399215669850158545525184530351694438066401293060460058660335254100199767899318691836021298862079436924888289846704865256083042192010351618810082298381839482089052915281519224908151947096789477916231859905821543378019288725768464903679135820267221784496806400443676107289520164895045643284875695631075683173708650741609376241577971092274668053972237837489517540121960430580715483307160097589773638612882227713061485922393871176285244310047449091835882286886684109205638251852166101491969912209418391145101958856939275793998096951801143903692571989765110614060246936580551659572845937154592972996330736906272775991009447282241849914777420021884564428432703270221582019232805876554145608822223944724322816496330209078126409362825872537755765955392055421678753863908893243119375153162693641155633001547376862623131166025508926966533005185646387993149307261851012004661939690890623441380054017364513906946816400011090796748139382657825994171611586546156016496308522067466030706973947978143886136701229302389986391554886016352212127451168157667950849635921453990252753074950296579576548569698502810833415251496237275438404803723730896153860657890571218973369659598599525440113390064257941186876814628676966235576347630245856940849342788937061231550886836834419355747340370390091540697005746644707407766834309472354334278767835913136324747119348328332015284607887308959160311761492334997152532861095772020282886091820466470641180825508798876068353227992298129673257415758655079865782489936420952631776168501408054403261884353022326992844694861364306450247267292384885107295656301725177667280775502314005733655740435880488648066431187436334337322828186001938127542841274719988084360034835909943433280800213686540524605952091544212449362652961667277018806185015004571764358891249480743067336213952600336970995881357737707224809960826490198999814721132225864175904980245492393481978739050381034969777596731380181934820870655815004222341760067556972942610554244265536734974445736072532873288125393994333334320063049095899804845157255163400106207951951055286307439006140883073880966169774083025008999590351841514843360158194666122714214676020411252378478426196031240588659692252039213581093261017595371554882591134533164000500613036197237897806419186983571296837213522737767437332877116170328948153087623057181523541009712289274801350209554224843819641665459788667039514747574542973799543885922345208909783845858895001038732468433417950197497534779776028057843029660468224694013498454337469775854104902811793683353503715495019419689712198590568101940085948473937875691162827701361071788752751002690947772085065449590100933545810986260090414099803102134866372561827679101613712495487273045963375679918960180553569938686178016547952994130927179662589125864917018936366015958006252612909829069040188305065133023803091323733936224739621650664705866658792218725369225309322391158835056255874097125685318904234092963659924327885141881534337576884863426164070906218815411360895472255023927931717539991005638233380185428327556959843658520456726918517525864642893279662229350371974322155465478595179394182826982207493252945643176807373004182550784948978650941521207177167397348609892187713024978783988617992715370934626223817676145170454470796570962386415979034736421209713690197322396662343937940298662080549319824501637889074394678858441813808152668625547043924918140095731140692368099450525659937581033278369033199659884272761444854390028096318610714589256887009697867938022702901405166989394899770668432237769565506281499097568564829373911987829723068921658143707234491281944589743834424771354697812691645493209109414798697571345132319380285641297925762038412995663718693293969619123728522743859492207561454275936140955924706544260615252701865205275795841153769941809356336924504623215099426286058089288832242337544968626068033845669785591550572050224932532490855596423500963487230794522678181688625345282242203518900005560991728821970109438823686672438033515949622931436588879809165869234062971463813126492639821845767568615661381631021477115031456264812114235684618190752319149910502218675635569389266215597521187332185457564239392234018128966090851189720210149252897700448065607036861460527101065771694656378659276126665662558115113862316573229327627630777282388888933172802941296926544693189923957805088386502805196742797060588923714227979560423593339675708706507996225233304752675446251235273238662061142194770497605324549656866122927222630509503618067660975000153674801696674108472598602197746711436794428322966098612017902478355372615998342676502416178732083343256669986966108136477327085743532357562487135306942958859412161866910291456260157300977114532816293067956085814523301971784361949233780233416904024326053316729295979248752425248365410145768615687448036282381948011593072875384985269055193263889114331414379930869473463362333702882869937335339542596496587597475261551512680360906744156473713954663744322170384109294121191399577867280937671988170919003463817874989612030336307890983517602272681675952558757611755064464124231172432015469671871248811890767547057533721546133203554328188334236097968034984762327494323954054850463939924090716790647502239286548908689941460584712463815921048495798575066566561445258354376019920940140582315665235405134838806782919608106431815519151855058942154183673499404739449746474821849287372615894004938788912872586786605553245956297379712421695570474048836334709526684373105158803876062491393945555578281902624182241978367516501921802469049015638720890848846401163899067526522290713799421933227834960495829721991580631268378979445307605167896085008962031605909452979685290442797129808845277672810525826530270866063321247181701665787332231763597742308561630431770362995762467776427349244093600764953308902846598595862258337404025003841118319980420904669969489606403655591595794459597075911493990689847897571110597368721374462685469026378970060675619692953363889475529443412106694656948691930744007607388315542077390517195371514667521037433322062977534433323209199606044420405368023190743408570674785894895287897301120201899702129537858908923979118607231766413858267550329657967540166925797227586558395068953073604933492672294149135201817181718719274134551826328214955266082656000036245829339739540604961558290571904600261580725474642791708711662945784481974195537128128154405928455694521511204238647688226364909697052977745362436426870745730752603651232741552168069845567652977552327323629883021028855136158557888213785299783369453444379208685814817456343414454873217418452259593123881619508583442699799974942572061370555046150141215787962938348498455254542988430894711544915318887067293887007297805927471037522079115742814309736050220809738553154551019404462235273183723227877336930537056293886290517226527927566593208387329928196872987005548806315497890156268106628757255483336009498260883597824010418785594090607922067585977005723884841074064207310112542322827170540410992578824623518956966803552624190215925181958192714136537197311552500673667514125760572713651001038505360144886174666752842848965617053600110155124848925895637066232889306314483151552489672736397548183981474966909206192702589514855174082436583772449256737786206685646753275540209194481143242125508096730049077781934403202892128106265549648254572796117547156667036220123058456596841828946129927292230687723206974324628700908142555549794944991025189381412873041873014164116126112354026468597095675497473285004800117374964673823495811873720969508440877301605974651394936021913543816768462959031637859513945978926976619379479514814255579534167964404557424151083667574451643736091489807263791910440913060005920857341445030823714765328766541197362878200756849493754581694677278986297049913874889421899928793228947056487018037896486500280817949116143520003431416142603283186092217079858377718999079737586792565775559549837669978895612643694978240230912422106614829724421487809197917024734371998055072536817325933448129025128503191005361599073492881821991825782346053617533883324597618219210640976247112480529760834424419440792994936865198154343194300150604878585498487905344670724149822339385458168469825699417387129084734409042714528611785372921261403758603468287805668224898221168636963226448426294699731849483642965995606849593711640851187672949591437595071236656662846924981864980167185098790167062536240113247835732746758772632557972438409680011076969101045144244790520709307439519674787596140208351383805560670193228825908172154687326239591695200949629855576610941653065644486990576149232387099340153924117918872125704816714637192485769339531930955192944657325342883571768526166413836057551370546864155316469054574129870561329464037143400927425113164724491015276849602294701112752257660384406355150801080319592364987246068230600755061487298217038961103852903914854219716246263371039870365069713794538046923819754084359856760125415983071159152865013516041012538236078484205673430189476938139538279141751234632586884409530597078290893508507391184833837823898199957695598401851749456200351888838471722494729757356223000216925604850214185713111262613978604523359759279929168107423863694379733951922756072418211128335562540073611401366041639577135612475187317061657569311423306956463603668049436506041847520014016280171361501866645419032644749068357907556770665371626865734253295848072666959331469431433302402730324474375323670667345901298275613539156919578234966452828919348138858635572533301610323808590535344994742229151049229624020943569036998427945041107127961151534017172563364400676439488736083020446020911081068422260769022586120591068223221975117884985592337301197954888444684842469300096831554551247048472800375750431422951261915652843457172927640881540758038785043628103282032167496649297489854962295833965901579429882595056020562918446110138830805105831958508428178189619212702103364402363691456120970818701185736415772113814579577343285484413889335280588557922295062677254509636931602780565732987789833102165685942316864979072541359758262337787488299563180182536280721251575294416999801190055314732268020647915571246891017006556334346604740947045636512485998382593883828429903145809848931161314224883489075711054380964628155015534630706310455953757107618109274025090011276438239875096336682611677121982442398785676035515848525651068169186745645843261385323050617567299274377855669912740045121480333148933560789539574235795435082172625941143061363547537363832044724264932887177466553326525007556084830199156598206275221072943006849541193793934501208670113971516330199200739895115126339398802267532805599390303486408913500723706491432317411317550598103034256299804724098023166296321769695557440072245867849302593837998480983392181070452870544703763692992059045681590515199668193382360465481940567556905942454932045933671306103109391895178997297558535192490737396352278095971617798539821749560140472980555300435435328496502441179709290672120492703293299757370381062316078715985287351477263156406389691808457249866263870318202910921384552762665102284668201181219856147869738794288355909522497203921629430033656877634296659975939503429214579257301976860973008085669218723076052455793390176524129445464332240973509628530919478446980304759455439259379157948489491526236423824527123506605637596804771405512818784193240028952193114732063497610183793179531048420624178808509719514475409184186829776755618525320392147984369154090638727252694160971368431819370411314405862186623256895269114743540990757893400855941842587315767446599096256019557444003424276139881485509059286180739714900459836271626220061973072291097077613512811131432903225567955807432893789845972377503480403900463800079456829705957673199742281034568756808809805469195613410384393208188954829268262806135837934318550278802374700213638446063409097256390065833739944534663091621493328971767555896472163714352985201939057720350103492088316344892860369763185264873735203998635536439066867414394536940153050260354722919438793723096020194883760789587942226452985999851909814900745578064006639450594444106014593852682730731493526287032131840983737652532930084596885921340620913029321345997690002481369912463898877376054487292374011532791621191722549909964063581927068952555083505568774899059571374411947461874302958065506250127327026650487659213371825576846795236898554098803644522815984790498115933956193480981038153734013512243302048959038328594046015594830839699971968126992477815028302474666013393779577049123955060020254866450110732179963001887481393434106677339846777494712747670456067959997675313200997234585165189629332337965975543682120230038168531154106871282526911614167478230485271665944648250163078362708909479611846539120960312832178934252527951951985634846947139378355221276003377528123442650725839588731243416868256360358082432503331015099006019964801738405753208802217100634429976936149010540492191358436488509599197324230720118032397287216556202846754776271354869619211750823071214257053200931331709243531460530711806868584870290110747509873085110082355441583585151320796017211911160432362884696688536207019078267774944370154378227263543795062182802520098878540884712971382817552763155056234853071880265821962375593211158153825903442044670942086626908329195794340542881968739210655659571441552012389547349787665259448007717859901810018273537562634315783237028683220524757234927819237265522984302187772610752230512835135694379947675119089480116806727291676973426169954112450644448498582283833570638485278213207134878776364364907297588207416196553271919932999055640712683530311509522681493055964275120936452538633515766003214187374326027645446611011864905359262499606606607604294490674812575580111059520321479997601393865765587891194516526225792014118760813796728378027506676487381773747071877143843818440059050436288758970857346525053003221031447121594592778992296467893314160051194266094758177274250345092029116836383093414150351645377768874693306913102851871238353821254898225657444294871840087450221936724105956497576207661458735933681847570106520862461634058262109395477791671152247542085490401508662548763491891396096436465568599130481823095028153323283062481138226061710638316586547680533770063519853899749523861387337745722736865660933814220780275904856796761776187232869366239451323032258603061244810924012903683364267597139594147581056760527602727629061691803288451318209485399657385394451456182491044342742248038644678818743869088971510294273656458661110167915411778875477380159641204498568590740602422511751782514453111535917186858882210625611538370753472428231404739721081469105449266114367849958757339155125251354900866874706095374335448153482159636380577453168860012684704684554704763350054838199525829890643505623108338438836478961634610515217303168489022234661959187951308909459376317542243409874623197461436895479293522655063659070512929138913110692248106682471714601383870178036873346353278700838853905349687788928539586662099417325339180967431330286424691730299991694703621720443302817875200183003572664141748465627201981945710711471128668506504600249258450712513619527406516685742863614760641769351323786214335692719995359890540211172717675456457025451697962303474870930232398423690000459355601991241207109046623895884598425837113394288743213489103970410544633639275140370168062232833473475135794439207054494046376006755719299169555680499996097825836602982670056402329484530044973089123008061653724323390207817245642154609231378988762541925777163353858161451660669395843987625116446793989286353982775948124192146946561541354504770312414780707444911883005362271764386519911902701194865987588422388808335030524046741401243479080974129136265500633145309727580430212134066697774510387139058062232661658894252295228233100159806547071747350224310674987898276316947989906278500008845381989854556537457152479412548481588136784069206370404485571161970455445053254877579667873737016179798268480778072132449279220441165728795822214636147704227052677152869765466521367993046943644458055415964132961334047969842473299840007192438220856769332642198842221228017146513694152674682436377785568925595287340072758413932030177123099834379182480057406740131175367950409692944955864452987576672167596650486342901360559629345741886418325110781506421385170850764805723696032494855972387354023283883966403167480600150531583553156809409953952271011402970289241088744052780129483775948299969483315526418126209382960873559975110661212351928242136064351940191695084469712929662206366647113923022152927822338249727318538139097381998483886816636983696381477816755533774004294122776747807999299531169766558738449276203884510845308580102956568867637166514976364970920064716676689954395589141312476409152343030887443471840855311378163320539309851962629115658403066673352587540258666096514582577131981831532034735883014797681880704443015244369701434131684059756662991174551838362728290939524990631370885313627517461807096134680131034028604909015746137060238455304413336556785193005713073877363037848059850144643087864718035650836373120059030095245975351785603260142440172178316140083952958471166419688372621142989587042104443936353725725435082954829350112505799961900073152204353071559650065953031110026312682614878713899291035442380500672157171047294611805198345620264061860755194534002581259055108302545277030099878663156163840741504228902472207002068564673025428854217419264608376262603115445824729404795167851968914927753403330063024317739178705778350519280977814518755779915192327937254651592138883811987268066841979339025088187096669106974968563727118401153447392726366796938922165822099204952715450985241172862416688688864987336943189187611957817025210010997605891151377492229808328899912502778564224963371050073983904395914122114787131097826657749472193535840240446747340384158454529074427640922299008997799262459055138340561281604995196506393651525294505366879786857978710273401850158983759954035269206744995531688855579903944838744476634274950317386550034901160168978139726123991120974988445121189971429964290997587105274658604761494998834946490190303741258584049718452638118885648811983800399526056969137961152543444140939107275343870734686300592718784595842871684499918488588964878027882478744168037836020744061744603189891606238458528988817004425089260296942328661208024276957445507011699939974890109293987756890098612210767464057430244460812765830162305152363081670968874520508014295246825113879382742596760944834921068144178781889375695509284992588545573568401221216502854520291671822907670090378371250250807763842993858616041334611228047934733122613893557183670609451527952726937149003086934042023917319203960777025918718576728456716780217011754631052757277542805386818265693795284083371235027166813555915132190405373535554401266030590527705897222325959205770080447651717160048279883815153888838732013532620956095904428840986108083417498322779972341130602302404071866606382308124991430928355680653580650605170704888861881225968945449993166175218673825615900753422941078341709592423760946555427040375936189968725412542267597286618914039988324061749379601749015813078703081138876409459402987858235070598753706274322408140613415226609829970855769645784946789640953242365871458012256407404258648545730921352172727781048422806995631393696885542105500726710545104625000833613670847948642726499074805407995971257032407445543111650398850734923839323708429795850066013103304176655153741313122419283765847789465607025755024561696809165037128698431203524427486306699378608386918682993977330530704612704244837829494631975251807993001070409672236274030743495865652806209721391590673461926968468697356981921954650848222157505734521150354921844156951838732121405513329707615873378146532798207360687242026539050560278504019174562139379606748453620698103911528308700289020320161787248090497533774906074777323391487955545765202186393955906115332231729998037812944543498766332911288036034872194831545587427158664258484456543426120795477343871993957381798793280841685526579076475083261365452228629886773271254645171448202865558195167313762302332215874803383722186563885003371617918527355210083835715110324632728466764689229204451619290415096117587824408066658212442356409038535953374067373056964519670977728491821111201065748592506041716409597843728422669790051716199482029829677823178721864529519817119222326631464439674261675906894790096895266485571845749981404222446984276979131458194602021757208087265619148380930890425709061063346346793803653228235429740116095755771468299263186262101674691726097252267682017449419147869927854682639717926832086652620179442060304900633704408944263273645999270770143470543892472631239904557323485819897851834731964328387455408299756005080221767372280081409497899498577189313393752633763734897221387133418317748135163145593305113228909597990678361999021056673166073285269247017988480154987590086955750289450952808429697267419206812280301731752619103284474983735027736769945777002527891232462230774904552987354286525359323921138055692745744328971781783735881643117158244500208887111327179363468132908361956995600665646754484536953817159753389114979832245843039119984465306400963778419466162630807348380743157794387786141817586901131852856403966987828522432185584453622741752716331525533111442378852410766023732628589862407604860715728031756213119644466871398941347377997670400696189359493527084634772430089973516304880865762449910954793476417084788299067301840024833105637821584703838503559053432239852678542775397311579705456620923649561785178796110581006382428053341226250841288065746646913406742864668373985172047143241920934457794191434189153408510542951245772919099389100268738307606695497004512202807975220704346773956209627624263436539339003740546144411024948984577828647748172690649247319054446868102898647452561505455631046116239165629056262261104690617337328434319439587787228926405401116125130284650820872482239856627448556295537236505110374189318341067279875313160120551435137287059986477660232518271373149333256652150173148259415856717918396171141334919055844206339047718499445425104728811548871852558272719021637856863750960507453819012389757375440825630247192889589143277048894684170937746273627854045532450545775449367810246346452556195861427856009112631300729750226629414859627968382609435744688928308634795476558264901567742256235616683620480809587904791196732594955609858828052325510754707350956748172070876235953432251896460549443184777964754329429027393279829546105393204553213784483026074453039564292371250168782035155145669459988469277599321017000482745348352378393978352307875256025075709871406766867108132785537152363770065468523538534731303862591004620076427817816296129995353469842525505593641470680416312973459324405490135791806181114385895643564005517011387774508365210105352657716785858145757049662596234497841446319972210625145122549085251189655517010341233419306247815697966733814007350574277256907889203254890921114473809068580270638526518395599978863698305502558840154121100741890719057040214248391957488381913953000679549901435725228493471419058894815285726899662186141197400054969614018482190470567281551416442131845795514774036924106849172707575679258658542994153701681277621796724522815060280083463721583107397669084123692002216742765815954246329975343328656202863348599153421131301999932274344307769692912583196447643261044915832926115953253790387677321355748158122189330862693693702968729389658880660821203326125551625727433743832409715680236914042551165465636011831379926000339392214504436297100962616226643950212210851755158868888988457754102983031516576816234582996565337023941641355024156254123436654217645372904953486656972351859426421350559726026703324233302040609747994385631152254405393796079858391367046841685977650261037396102928891878960180396177752563005451625065952517039762430049981456640445517594616199862557111178837192505232478992198305835451706133794405246645816877464319149729893984506534163006215915316093256007104459361726046701976067662029314987038297505165118198492333914178149943138686285417668415580483486564919922399591830747735575463523686499984590460767978549532936286867738952873255535490266978346695330892447122593135232510085284773528863215288048602397440864300206416523244217220045451657190624363297068061329034962191320939072130403866609775117983591766974181946466120179530525431509277493045441547030142561832346585107969686830372239306450032389448615832954330881695580267894543129743803653391011897056355170649698580803080937257588205830221960986470266508340107230944180864749273382789099333758502295795908299947439283553047720030771563839883092044395423270547761445085547650946472703878075371638227647819483154088607137345390880468564922809733486108492281495538129383995552439599624044779940055939253271732990750208799937410423641279488393638842149519161734838497301821293914403517095950161245694584020088250689872963834896147448882011953499769036412688240895021765602349782523980033715900482399418349652343239001972160780858951596871278451342813399277785348882558475499707728654742048798406875859190673150686427336305671065728363902630230895226868351184612015766056404614527282135416300323128828989756576692376822730544771774942197472113452770278595418371918078150006209812871603401436113951919788799465482454188985980645627731857978562617950518707720958479956176337815777548411741386728147053283352225648359681393263101244486897486842697592630450012216860062800118508013133754720300039857444087916584812396354813417680771642774919442426127435957148594903197319273534066448975011757397311647477869651810073505105737599110019167082354015064802130471643887645765939368256709101672267352156302831434533361148935881415392234278329303043485626631842195267419606981485682099133065320984056383627472733481885609277544380808337393155834639600721796288015126592535198530962266742984846634412408642352225782065802005725045650391431071548623671191548519973574487220488152819622589681016011719286017361369557410443836566189390700240208586949809272478237807537655745612857219961154778825539118103751960793096457316933364492265793649061330627626904253088380305106529254688826596348737119276575556430576391697590805478607830739498008314492716435422906674737572812146793342549518055390163902231841721060462419413183144315358995504396808651213898130533017293913888060120266824471053276195622888867177148728960596898052521842190956012000922904222568869119318708075481823637912248344899618285487802323429067161847346305829110458878244803630134614827121106006888290227532446620510709592912750560944713709412723901686175938599553023446834486518202681731233127076077456775336835790204888138012221484043873983451993074422991246454868404046457110914367989827679694063190171618929459135560219145781220143855248707941244873253359399489669578548572345802209297188789848495114006547858802512845515674872218475784052297660279384361629675992864512084817488035637830482349420014146556938052198096680113724908237942250254859901408941191905411704269519199704759442075672866825115201170065368732983671948495522562203777050790929852633008001822567671243089156266807469592707274789599040728392823065326185471661542712103437821578224827689560589636783071500030818967188940872429062648695803054017375788398640101544285721685090274064709247909042213792226253247617895998014821101607974023019352986209695583104116269950185686906127717031405371855986697808418412299616520208543181516297310890041959599702006380966681018110872774886244633137701968759830608264145475159105388286783016500070585160569994427986382506245939931376251270832909302201671170838735310198074253852682436706722513666560984762088932338433796648470194129235557918746307959250889037944611816217323036863366555829524835545818422426856927673104385448129639067315648106779652974015076022592263999280338258419626419158803099657738586163235745514174065468460153770751465714833963107627731287708634402925213459375299820530612224139441583009864159733268754209334815990188851663967821071642113982149161366593497625346289037121537098534413715204933505087988259569288825165859760146770685097212914271908712888586659477988123608235186363538561134740510663635317793022885192430987189468160869240474293284137227894725248841121369703544833147796069014002583993828438030533788276626406132330329088285660909059552490933356129470069253422739999146362420037207516542209112908052135624466011979983788297483428945506022771675850547979576680858597247052967999923320141440444529986594459953931014120271553446138839277183347165487877847116508873835625745620001728469130854835267002610041017450235036367404794134403055568961103404596224565042856790539897619039943029383715496726039388118331330727254212422512552446758289792497585615246924083597718936149342805567039268386854075336272944639611769269391910265831952103256989116246481420450416703081050539090451788741213968641175391298528530613725157078235137157988531983231350932012183768893047371083303570103125633461123666420592488731472657192186607066028314433432192926739309682089322300070832056331064957763219890378469606633620840313660095346862650653813494898382590251407750971725538507503040617332327645112483169238301967892057783164765551953011948764878136264218537917197619324834071564452015436934596853332334662437161835690729697166281755419148427662797390498724810748862750215250273756514319773081860866764878208345156855385915648321989942375425012720031581000147408698816902467973228418702672905290627026765272042973171689001782795960059377800710152057630664186160510699697358096202730445394568005158823126857925286125128286603632085363306466483565001519605430373488354235121485430666103769299331218281122681221210208037065999838392339925952008039364071847943421702507947594885683823042416523517515348237426066995265980754705357040700962091250993004907730480328790513864641589180048165545188117354468974328717403445157048421463590806871113741933311447014450222153603402663090854843633313469733999315366163280641841780846792926461653363116887300586057061016547351435291079939085313172465458758249163049106464369794803549493995408160517586334659224633626943649907932698220221077866260763975212396401783876915326140102766833902616635537258877635229050001686354580885414828824187125739635053313923522167379538372909967836866358028167205019785134486205301732583568264068566283623849320098558913617015894062169695687443763064237312373808836554799578846060883427479242387446063619403663976669660730720127371021490605121458590590876514599793544376213241171887334779810607632127670720161866414921981546480663811779607040110060667495516651313209359295875637969296877427865727843197383451215391109267774243341701476622360181960841023740409581060042286073929017985589144030561781039601570891067730469275259442770345193529009999234868261290926107589599184098851666426594529481459442841900986126883529922297410024248046875834231038123947851160707189208651104422895682304663479212152699079966370355582915006309210639997754477394817781668853384699646711043524868045478302442101892003212558313324153434923954184223384643857855569635614619863256425666719059146892663238296795909498636354552288378905640878509282370574259816266837041438937535699019540644356181742315249397809012079926528676548695990779009578645049145424501476026799449623894631690300681165645623238103161835228126039032089058399637342616587435276508552766508178034862712409930514103547726375661954351394450530668661820390503712707248074099449708365959888061248761844958583899273851001062394003954846165544846696076620167000799249948453154736015223009282978440352768517894528035931184614278503219484239549486391663995963304416953035032329908572001313350095466669098720328021274495228182273713388743654181760008359264789853340964882184836082239201802945020286097458807346274745881916399286645554609089228778385271290622777683608532713133300233815856509123502484563841881861567831871852872229903361248828852196961430314545317413838897118183061263355216621010065261970465221584072799260211805355297955078410407751409657914501255921256380273294091637323032656388450829647235034596736617295942821072478296147701428223077085547529400095767370424127975957570162595689249235414452914106575258321542021749444645579288590204912462375577956381527965490339041196146453964395713057483271568613736761381345749836379831622795702230864916221143446095253679209921266736854338646702408762967450281391347374712633052184988956395998470888273285986461282256011515702179545174906012459956935402730889411621275824463515770887775340876682148635024837526256350476022444002286314426155547197689821966581890958149744963046780713272577777457411452653675411608409478318893938780743237963184798790465747176561511794977609883311923563618976771043641311985198543875531739232707807027128829490344431668124390600472785409266016282799102013926650530943848850883543177984648012626898899596530226268092376508082333491011980321075135513113351014287184730912515053982871983108777707077114699058132590163087464017205794057017920490753823132927915613134966572270493102899337464827106347820139693122179534995358285006826887315590309430105072529795688153236139804978918140774508490423084618891455583233664820450594580265300694366120539187278585800443177987135148251674812067708877644971019233052245939569322687604055265242097686139816695134629347852749820525883475532498021425055021637399450111676478222122608927852079421665079609312370445855080843660791248615743371078703718466759128288950343468489460424774829747947233382515751317889403438155331298842411257480508430649703760058348514857860849093975037860181777239551190947522326137811402375133349002843030462649061600102080240796236457864329076346312901605162268134486893459208106665412028440549528222625069862767070028260877079799022788284684424232742567941599890016319104521590152619341850699293580039619080162512634178928156494867526674436872519026123966073144168092955582099686603961349584762533126463737677036455256422087021306348249332533680863335509072772156658104128160012629871816037210705477252920549480454832804071507314125561610835907401901304976536363977416505591079059752961084242770238678908006332553056005561347183926189689255742457958801294117993119567254706519439283296712404455402345714581022383125296152060191424935731224587362443986057752943250990073987800997065896073940277312309149020283779991836751091158557078813092821457592017050300711717243764331474119807170704641211196911336930612953312449100584379810586303644439019696145472986517914529391253724182276823999710248935475429666968194120757575159253508894553765974694301241858802530317913609952782645240670276271297016160907638049293766878367826776395586684645887354912865910822822277052717618208794037237488788898306852781773112120997882401370968928876790153979863642798351861595880855298071809925329233814736380404367907025504690768983759794267489899444921927605102582632748525095648210112630260265309348256798815280664846041058501753883209108531470290151157291916680468494709517916073239560329793642229719733945985852405636893884189387284610220739181238274201338093505727002594403303703537398384289056344952882542436436589191462057293300627051513409573704064288014285708480451581986360821303086928484190021064433086687491464070505993916964701547491942680681586054281635291566241749377233028334557442091945182410184996248180004081071306866658107198861455570363850275318272132474057662329626326112586982807323156128936645037169765309564713346859376965654766189403559990894207967946547921576976548840193335548307484506137094476133445166861316796719777488293885826615713738807162406630245982853185147655616933001075657777457876665207013349104469938412080838711484621888353428379884825069331975182534438351918445087167338810667744318491249567881688505015115526348095967867479257573007635655568776820547168649993309564543476281516063889877001106908699727984960976787228283458918364514492384571496049400450213443411900651913248257710669920530795178891818911070642757150492401225265996063434139235056893216300992266444809735109338660909368660333117136998269179497255554795812657333980495685358784863214608350866924753114845576936924916564204136221447721252862581549450116727113127082001342657955875243338067282385145800931884030325519120095106595913862921580284748230770478826821251312298885077676579773931991212298898810761241163171640540979429873706345148286824234943695923674446355580961560595327468059240095870357960099577175463954472275227054735228999547773548176745409266225210005788245773369857473203406873151049870417697443298409836711118081740937049113432789702456303378834509131189559459709903182456537482403263627148793272778779106062161312838601013765179470540382298629522866475124293090325853034665918123153826791518429156734345329762957008625758967334699411094318418877583262624131995133227252336165825007796589581046107998167220334222870797784657099662406000888186368587997783365017528597550658258157629635558514654983393501033819044612826701209320539717920245618406067726269099546274641274289881555418957316228952620764982308591764653469967744638053690761447789177537119641264142263257577178083021808361907962624061256393827292981363985513757238239669237371343961982948239355603309162384553277725750305522937360442009569204673409963144705603506982696495530971507691389446223619493845713899225217293607037903422858994116292934044477182226688804207806331394408203365510420176057299454339639330847761674690006995666772992134739320766329232880484188716388996122681262071671580699219052192463509132262192850232855426427979584848327378744125491716356736593337895072619081674668523765610975288978724933914875174620112210417196023190288250935976287044656627255695747570334715991630238152186336429742710627234678810968532108209267788527544436850501485370397665355780852174237497640283430061501308415359765950749468106334300379403746236510089561978846322941368399469630105452845481048542225395411994490874826466300664148928704051556937581250740008206716191780654762794021597892702027865915938988256225960676762023971103743742474642383851218180600509737648180816681122282046020339453337320893578379085008435322046394047219745871414039447153470891391858871944362105783429231950516567222094966831294863277198378171989533133167784512003632669801939463148075206957668286833456899417296674758747643687884192381493650485304291735559889944313657974470123982280495297868166815269282435051344562231367041341707814157685927389039128872522651101409784284764003065885303254697131885352182283402985953847574759116085406755873186167249357522373182611926112479138997187076946980974635848906142701765349851809253343909702886861627560063703986208718447004755858071572792828453352209133387278923840486153613794958628845650311348403570627980657533139583188973893828812015848729293066364498952484106375712161970890222406437666563416571909542786496341500340202651829141219357176224481377403766105394942494942227631042132469797212273101692383516621472649154122045544148499614282152552456859584157372680982044458458417709010727184815226403030739964202658035709160720129505777336347830749102585665931600324112123024687645723834045652876134628149250472198199518199687971424936273478662855849144884236739629435005766164955977091894743324756707001055502605712969913964417824603519716759470545842631258547329993320210949343166389270912262584620346297512504159129624181463014722950912082624516374830642430325938664329939300815629133024262593720592367570253148927031904835995529309476615977424336492129619240472021677082386324603779259887767971229253425125260754129292504660971678861509355873796448839886655855567063723444591398417692551554363227497836508704405966130537836255531457650888377851730615049887585690896374907764161227682624463248031745528042417984631538701582160238993689046053491560252414174135529755563691909713040368475857128069573516560909098414249843477077690272619333541005813674182606820620622633586885200647566201848883144178596081637860238629677813994958644363610928523060494170924287005998936315328146730025111263186918677495022050772885236034606456619740395675571176366040518487997872901205227249846945421265505620003133236835152432682639704609432749836702467821622018583538084550837831829617791750135632248068624267301068218479005909747793684888104001418639295560627069783776506448705515771028923055569182556806545268223816039372352722386807360385400217786408889810441874185875554501425845029563123128383392683501643368621273533272189962664824190425294418365723116506865498164926633875756528543980980687648274224515660434495910912739347659203595732758461913678246978429594907306487370236988122631946056644465503139180212876946445490866530469015607759028196636452516908837489999174732263882676633249314142071315616515747515504917156986571117951692167296100041725787910156849557916659969203790841469896499177323726515145830717650372886303701744793839391399300797388990609927287819419441786609012838126804283569115875281965407364255187870037608735275114019772607420304076889074908500833746489399512116527737958939567525542867700005912534138907631732074453339620822641966537667709074289661046394831472495317110982765330483292468650727400226568206482589818789661337961261310975416159303969467374986364728188982136976299164400261554117973222841343121449494710254206296915491147520387539922435635105145993819340686339735877723737149453313767466427737272348921254645154986447984151570128030881752523383825493637068789525367806308722327521802403363552301409706446923041469319053357467346062468261423734092801414863936601358220722135874739307210016798169117603728932413792422114711697159344626842474564641090987544505961308407243277795799938259904955784172536739145784883997960394173387271119504721055862404538349361449770141356732845787631240009955689791199463604875167770959271702418288491559924555277814660568700240660555011942911484024320734387278609086818095793968851956076881478882511259535678565719136290585795566416787329037407653145385617324862819928288058975017734234769021306146625013279547503812554654662180985188388512584510804285764411080854745987320293694327097223367800156728284584614875507080449283916028436076200608998003461086976310641745848970764687760681206289666556378735053945838465306754986175749319059358468735102354781124127555609406753109076658565833133410987125971023415037916115359884643950981886136764138591943464855106709511072501590949818318464676409679821221433146853557029857144640368999421748015235932785972251005098364180689386854856964569107773516965464854908208482801446494488858953404282151148474406403876611156003974686635123413643993106576344476112293825822147611480338191726129370901687678519762259475582590590337603544739530913807750779617309402788393842620908399309941031125436387564806867477260343430815996551049714159651426540890496363696567354945188935502130623407553814930039352057477944186244676112172223989540109649490731951496176219960630875105061291176178476543402208834417276916003707248808867698662726744398973959221255048131076803756567433380796232556145191970950632915238745880586163537124345587329262712028842862491431388332352562280475220441446314316076690344395245117445397663076240125965188503458896847146221111262615946825864974220535703262567932720165232212198976749420822404058656377115281463123412720526544164461641960315699968732757247236716335790613657617440282726534709068703944630952281895150326279519846576263551573919340045021844697958110248932868822739786653628990256429004536546377699525194670075720900516333140850121574015360108158459162590275937506960337426435940150887833315611506370139766758571609546538163639803968985836026167271200574665630110006541093917526260274822421066060172323826645478444766685954660217011728572299381875277736877682980657721039688039747829487633909311036676300754590817282575320362100950101818451386692836056277125310191378795336483293343638072380642497472645312679683991752019126785397638042911371082366152147686241543675813490931524855794834230247944659093568733259544885961251594062347713638293332223902070252995584080155633742544632168371268767789211503087269723626502258945216668661746439370873125613077557412918060646263452746200904079820381896150212937868457778919619478585505493196546135480138575057720716542762581963286496948450128323897798377249638790777816053065110565824630162030831922168004154518869959734784453631275377602514821915037595325786050396140061352095849267203790148549223867134602851019452540989309424994053766311928427329096602416044001200495002561577805873566413545561091822597649167461661164250324390270118617905482889150820859765860497985796850836171339094637747552698763851688977619224509634062818399290467892845876363618656782252440897534620704024985598003917719169335763941160830379055979286278453429212454941444751224544890652793924920794124686916007421421662843289080005623360120431193139702453856461397162646295347937515312803911049388846400372943668843187257971285626982256094059072444868856409238622941335220772870295848518693517787561811599677144321554033275932413348172741192319358341086374235261941680988505977157382294887753228342028057277607206854516888221592749619642606576235609753508040075388315850750850050576703735120868086478947034067434005556577634440272755439173552498118149219233808734909452195373863621195985476608164404381538874351714006425147956957615298672135274223119663474118893842069871139334946058718808234803074313487887020795443241108385862891088972944179344528136337016418035255561453165863690552569989243188790188521920291766946466481097920504847908993425927513976222903710886972330019191594458907189863237685906223666606311489149792300649798047299780821962929920974894535977476027557901121654486584592600610743293521960149063378191737058132896594373597684233662984021697604357526933132796811520222998220626810940432130151833455680335837416790257104662930145499960983613733290461240721951859838043586555298250416919865136006279160515428233536526098942233864801333777582904344689921467637460550088956014690103979535086376952464480043091109126489855343686309656574901071825831387989833012322150767475518079740589031923696525457078622111568537933070640372167112924863400960644827216389997843025163793076138120799769720913818006069342297241700461974270896939166792000370515203821162736320066722192241068227914734177274317914246393677283954668042291386992594286102092157263823214906566068533711688479555351724503737760935018076832745805552934573218615445774051489317680248822114430421073587947000027834056849467909477084449420739077243747509574029740144135745603467336960773094020677683277171649667444736266219807510995989167881332480639377533841413876298649448456428371450000593947561190920537539559085206281377087193036144526053681395660124582990299111707874761144008448075105866729184307917929122206162529103339283165805422464930968878107641171120726756716585636274670548876545630836047335597991634703412675641237270437035922574480469736734254660529508111283824045905416568126466871701142750996369007229205738846716326384929702006914751356895189084246995410583476931551682551038432061551179776190857031471324230104988137267024861467499817216048643070998679529654756381904475056465267745099812698021248746099903750422196233275529525873025025692096694095893366179993690871429050314598556778193552874999241832971284160307735888564958533255323698843052802372480276839382344139835989882751312880014588515403621661496184505428251093713118758725475729631557857374284435564751961619514999044496558658487748070688247135334678397954334509226281410264722651163180562025374464241619517955264550568796584620777570556400843662510106732762083524724948303123810654017461750184748428085253671428314691436879432805006150603931318436447838370169462294376573656529971536967981962862081892466705222292288871644431092456623530275735949814929798985658818308545544831698424208120909539688674012675953253267709137581654468895809021370104076761275100600888033264410961528193571655282564129978947241608947560299143126626275670080735722130259792661598124863521472853221207434091525681867766167200341452290810612570345178778441883102613689534196253817036246510472961741560091825835402442961016332024023762456094511311062645996791765894114305574759942672967587757768128082689147689303125510703952045636594750106064220676057557083762996618978117986612777127950487035243217174156210432930756006082743922990530593703387913546240402058935004318068488655852710429575965480469514785447087170062470403704766267152909721470335529193189784926041276030482173720355459519476083103864317101371160986290853814751593669323939225377607565265417610087486168482555150735691374130476022462960845907813079079836925075646891435409302084204432930351013816646038360476068522712240845285106594285385583477747787305760774129752880646550961898804014009722379166787884527125510730632399494252383287320104743326946799773996592207296562260481171216138403726308092979344761449701122961083823682252989988327543000743631852184870104417619623437021389865171885348479599328946721330502981715415209078143135914502604806033144968645748454312720570321385296894473745552195767385094115838038036836237011253009302055209659427238035089265882973569811450514177304315942598308740235992150958798680718890838828934775506107184266377903758832410133886025357456868399376859940832696299319345312068310041648705986315545004367821464451441743188424549959522033789724737282518621023675891911693825522504683622819240566152325858320019178532539000332435994664883730352739138211078334574798222929202233790240025007760296774793655547789445528763068494646660983550640113727666305035662668055115340960515547717133510446695543925056827993062830548261457977189553836078714725322157993613285877311672186621811686567291618726732800205441776321419345924132410956358978470564445238259508535339825552620890879407489046628066662314073151812565763802471359460760520912955021633858173320233806099243369407147656986572120004963620396739561422699308733070225421848396443828276391017799945979893293433359345577517367410157282114397917083873648102133856848430936342847123257174587643730020037767786736895611825357981832292756878156220204501965542899723132196310647341850038261045070911491703324633795807479413375454268319034356141130606966219263203334860536038485911738750165512504589267240663865032290415913015834188327576031653035527611346593636077822988041898363924388526374754858070939830427389739319638875143589894064131051526107626321624643317431168714492607211508557883402193194822197025612814978804358916960331639953738884943114933885601226344110069056672974664006274572712438882167362634942529833716966157453980468116595701873430538848695694323474303682294087391031836749964164926627722840024970363214329915063646856876105129753250780808875698256293044688400406518359515492370753213883154716853186544116028487521509088129455931408300298258806228342247879120879182333452766510320096317353414424768945948602723478779280252026696944776758757834302210561477893605013888111494808468567875554862483949117963664111184921792435398544224688677610969969393319909605927250709831625199929341374785865307879607243913023835286666052344699557491308805150411952160346102524537395557546490310387456803718133352704241391069473285708582699432627383872137796367331035467426057091017996113277428744234766280558661719425359728780279421057561765215306846377903289932885329359960286640989414759408339139488517952919731718816509411643306775464074692790948370265077947124009791708991385383803641029755371730618901636974975588315316750934648390886801690583122300120527151777351486932438779123304494600912113861391638770884447989811902050273075377409109627088850197926799299779821034940826217860273356284043240591693777048678803997233529232464412627600513662700179264382852256973001442364512597734664927631562761371987627916817303528875044217484153545120062806243736497624323820277048708989510557806570410905180326061133537597492527742079931866686772933091075630746563294596208681075557462845088558820650617038651859038752740788777310854922406454360602038356515742948582302420059628905629758613333556277581975300381395632083908628598090027063488226628983481101823335353279162073359057187614377494442893618515604710001441279802947127711444452361213424487042421335978727096345003520912664069948257650716717082522574739584184129428928750388182784464390033350432705565606875702437127830049412174045574737180479377138771911106469633071472937945799733752177205726544648191948580186014636056576634410731492127893377062995445600081752571171460520206598933100981872993392739924556084367969095149047017502652257756839392123059043197366590010983222867096118301010894700788079346218410103166247256464743434259847399946680146573238679120438271503751112176116793022748009836590129507606690991760562301661590574286146396129381691765555356419137433471869928894017015069518641552384618326082781736336992429424785947567140457633475068553730823296994623379305710984974340547880330563334546067414978135111316487327847832487872141342164832770759273744856332055512642080479342861219494697197338172498057261678709916293237647136282930783801977985604474319373259594299633768656364473199736299207299315659222171790379044229382228698865816788230033321372100027581432711514133048023966952321640708021158126654098481334414078384327501814052972139682993680464560471359206753117474964302212956675053157897422776175946901859436830302652707250686910603488276127357579658271422893257241953609556744122776938196105429425585459342020137662689775704927888199073565274028223562828029658911923477245432530503728138842643886302371391531398256401569638072116215938094357644666736347759086283843814486892363150606827783218428238599249439313692443403884476610772166397431687438271130195713689473922420809910096943973158102968294140779758176621410578851397748584334423688038334086005937872676616992755269490436430848496451296262501707645068425847764448122760352976047723208753444185289828885312412886457666054135215594457326263556800611243471761232759372762804320081958837990620476942147844556698566015006273805871534206614572362428264701613127111304707923129776622685956111922870406111351658322202325403018991442734549817045664717079425303159397669310101293010549680675033891726499272875849441310479927850988982910220140122392078470090514244945730612669856013194248503572946788187975748113865618909698849739136419743346851179173431781927091221100588135572829516634800033771065478306498337753228174088521638252913277723427434277483626058026266410051393342659737413433005376396127274517989736883686772209261302055532972244503372405470743398343040128987026682715949190158026385794640542015638158800467933234277225810554038165414663093219126429129488776777558282739150776595190956192466797413420447293633699685655698447420030517896319592216215722033721797019681529236984002385656936973036806733981731535919913151080078629089670445962997784336371830463459656649494897005840430717848073366217402997610436815287384468448429162832762772363633713016621089419855738327076602384916219210301108776168196243821142383249343628690149701497028427636353987834897262482942058050954337901743577381357834386067809396041472846321711031931325730766051409493458112428955344286424657018090733798794826195250356878249358758848876361493243454727977686537800678386839395974933651020169651863942443325038780682761781314472453681527972532234792034438328399512829835343379362223421495111793314683166791708614918126431122660501393508567405135350895924728478777841004938856179689536340304270741089665351261117574921432687323588106528201524976357448703488060490578468476472019757920174880186184006068246155842350085130523645819671870688847113211930070555095496060750891227064593159617648901392417348747226643684618247095444640415140695070481262000796452873466189181994257511518185674322353576523960122666479952390854491213282141341922198375317439386834763880394777262974368875793239317977580462762513865332765426178551534612312062446945423935042702247498550733848321033481867910501396755064530057057677719780936938719617936952983324813350520991668683111759089074641240908062634695211319453635628053483175760608986002895158401006997688681139456861575699000654653156879158586318485623237964830344814511270617643742651183420343171974297895294227417989645320776597851767884732079620876840889135094209392853818107341435574235636178380293155818418372821332416423295938718475683655878349156796647950172991291822490235350416712032196020937595411843757836612352829382066009532663874263770662232786591227195230125777929847772712215213711823860065099184039615579131261752226786624571127236662099772285682868842144730313834168104183389191773681985188965772490495056975486540618169513935808204856779843757649865045497622729070747318965098189703674933837101933460882600281627859872452165703035761328811956317669109293563452027234808540152356890529941792153877922234784775619929433027999202405640952082101699905708690665835060948568298461844015716034785392886291459027508226302723414109571658720982538598765367702657834595572782464138198814478942583725156735948986144410542339272344021599227964568257858561395451211518693244512274958083207274230240838406727071705137475514435206922033466568482415743330586382446225508721043945226060447827385962015934216725692530621025353261620935977527738590482791664723990555750051081075814815998456062518506653735219664992172542339660289665626997835381730121252447747319934633009087511009823163077418796706132115706756997160501689966002876873788657049575402867223525556697166967100417418663771706652645208947758798640625128760049054035566014602081310531642893956081674126639047650436547975196088855731454364511945802263870137063647188198108415762552071123687338640429976880185095039440603279751666234637200692583345340463824521192030340594426027577265915935228130318097143381347950650090988669092675311033713100560143723115294382028464886804678553792103456163188422014562165274505346097186283257676365130726215624072768866908438120166730294449534198059085596063383151723920968552673868454791300278530023449337728276928827433594131016362103028075238614754070118173558931256596329272908232281950568841040759890946650600521875911115883264034295229817541281128184487263044166327796308464848474813804419405035999085272433663367540480598335745700610877857339387940308996293236783151352919349133230797092245612718004042684313100630700307740898908223712714777670512035595498321467636617721585220042310380130102207714461509282542431660847485465445221978702832884801198968538949847217367353271379745253467137200436229377274441851091964707462207274210965879819749989436612019372447042263914609613700679406935038548188282073909855763055646518666246174270644673080535990695072071252158491483338230165083316991532250024176562524402400337404746036935459714290943338231273819323207855584275489196094393481246218220154938305067987484746278959522960796870965336922055724711565893906601693558650645132962712564805746958639371831139196924863402089464859204340172994552911413136830421163995040887392092597482036294014906659116509953169370643804924199894216566723813324359822706929232736552974681863705737642817771732501615432072537369084866249591836923846928672865826428269946175140920718149017339944110987474860319725438658341071205619841844961323958815696081507452673490194541551345575316932137748459980466610182086052418384685055994221675202958962736243223609154860008745775667165557764331902558776715811729560255127212642557963446653815240733589122545148413362208956958685936064777381044159535775354327626982974398156999277146097104010648908606787735468388997995352934611756799732694076992189332934151686144609430994908230750259045221204165843955578045813833005583996715280705731353290756742713474250353421516191675119985017261635567358784955720870387847090649171976157708491114747014533045779736838147273374102793111907111052229336892560359861721248804615657946491259184470555391827085678100253555296919548574793774414213341310340825294983148078020615214111630466252524613072377126250897678057785137316547610675375287743433498357341138133588014009929968414211258774189549942560375147047770406813722508687506416310879989491151830032161972512807039194912972405261997278204943904918358128806217307385366592182344468570111887419305786356401025735642107618945750584981443137786259735702480154066831523074429271879330423383474489450503058194509680956244150329967083335993583313822325152000021044589834759607922094228622117332162469365308956873427539580621169083605425469076046574853229534723231794322050139290331519590345941332997001833353621363513181582725193983450727919984642262299618890147741723505697134062174324916800097126127091831693732420000053615411287689705848312839460531183701319011928272587733793570002261544342543950523678706191923061970971111090734008599146747826003312716947338511682424254211824135132601412633200237967316910723285517623805397219152842352422058064769388137327130583069456011521921654694504800431707110692522806967271980049679847109389731240784349621879483902507837355880259819444248644113673287525948763706454967398128442960933397024241944068164617918922458189887799693900537242070929884205290205510337574911392749992432871956995525111171711395093811020849380736543915949092795326524058943150766160785609275819291205554950125699268867205335435305170056215577005198748987667096497276794484122224452408714382806436429114542400218104126118389387384135392916527643682523264584192089393454123675900988977806959030003421697901029744594463741588221484436154212769077759101557802218526758258288018959235959411620817504270785482637046296127838912164187270198881969543804747922477805101585552211603747437839155200729637984104980039472880617475022654883057294979238874494315738140833018388027084180994396218380351257012860425159534255359108386753599846027540756427597946485345382026167547897729618184244678208261635005570638555845451052107758564023114279379063523611185953369341829274210206307848628781776413395999176291781650538755117002957069778189621745498887808826414922289252267169952076395456375731411277377594941499311699931180369151239430402190963754130982789433431002153434184630182757341342433987062662258627161168099990380653876091439264256892964855803493963729360819020866181895980983926174514550193337731467431035096129547764985656727161053869894331239957949231098360174570395006650109487077582380636066872106778026035226793957975793235062192393752431532451368298651992413626732209527288249459419606971353968544277062776059602576719285028841711760643326181125619569895870398124480439062619266298989643796174251420895812784231738749998352812554929805699371503111019584100147413261014997651369164823894773467880990074013486196860959304379890587970643584121175192106588760460212384900850892107026861884316284069688961757534157826406833653916253897313609423328841977997886706282125566979249350841225505811723359520368280227327157041863910817599270894579924565548110153307343891958843256705310110605336707284951825996662456762607981300542416806568013041596578636097988040489930909355099259971201707536542707744245358704668278759531023742172833120388187389769113458658030211563579020050443940010237721849433406743500248927078952650794890478606127073218913815418104431103227997682776945551619262501906680735744194146990408638348772028549897379850439927468712950264492378153400036866821055295647980629703337984089083823421702978835878046848329370317434880975957070008914734536728031941235786187654830971921063596083223247800866361147865052190415889274128997212443887274559881561275437291875754471084740024318545747940829158178770938642495092066479399620784073869332241799293094604241571883637280033754594489021344788931493001737345247806322901187605955617644776083696394003966866890270595899619788642666967411297986361904502429712876012416904473514263835554204636313446742428201867483600573912858134377517158685929822194215799512214521762805081885717565156669900926537718645667940776623971489527510447615432969844811970785438744378275704017264689179751866427349389262165756238559435511325044682603068567218592727046499213414191853370427088736486152822409096690796693038256559551337341182045320585215175450677836893642678537968112606105852409939155643891899056024019627768623612651975899302896886248246766743587613873995731161103419143872612286009251143790539140144617567428546920984168928724389040774517010541547797705301752173302037242255800421789739918031319265289780062247434289939442492733834359990447944615465541804735108879457592173943885425146191612191455281220520240525730295808459798409007320368821313968475016536558670268882600283646139175085041862821396939760219917742614600060627995598512453824095529182523260556956924659580649248851451294759934401722069938576809208381309478587330395271252029643125015351883874599712410718455977582106212334538633246665840143961905057343181515849735116545512257634647411126155461090175270421564527516691385626360289513724207224551546443753727960692949752147704811281544594922464235806901398919408877116050376963494948091067299572536980279299529178904025086401882603851770086145290535144495988290212966357890057817067670285556215853562118251480996588309668991851855954490727960048546372108091181498333934306895226077213533375650983409621404695031356961181692877298436440241802886621850664730552960059003742437259129208443009084208600088067120161057249591649228593782190890994271984431982501687992616869250741985233112933148458875026893356297496588159610715943435007751442870462612531031759758443727768287794888765907307120953673248716950155624612772179401757794819254820126153421859396456350797671875634354526499943876071675050036531857693812238210239051364654410945179244971631245582646730736359532012385281392621590913280453160337573282774555254081855798478021291904126075354778824651165420806274662432784815634459434808525422813010806936574121268556736253739756676280470149559755214943600170959947749863930611044367150250222326482187577783480823640225276842971701761505429332580489228003485475236423667032528891670195008999508033056819005130618237599194695204972943387676590312210832075394459792231070750077991640082881498557523081705868796745233326487024810690122665949732637810569312382705482423600568406588060007777779202834534753720867089506829961369791943134388530601887515121148646092949367201062071624176389169474821454170251241590951927310867375275229911696246653877326873511321073065107302151485713225671559131045308003892448523797056351371156025078079069214862790372595389102078291353683922229274602550109003848300999756348648207795486365492231116832087666142956531687975702576321450988318556948109731154646803663667326155334219026830903158401717620983419008769384135363534215773470703288393699737219720041591681512670148714912054476330989703266076570810661025881075015856905719098772094387917341091812968755256279913874341558241646525766066479254835119128631432368873719597674397330111660853632442523205291837601899555524920924116700472851386306303172347828326457763772061620787851456282339976895705303848516410799406597747774729742459236709613632306028714872678842257456410954562435183297321713836475330699253523664231331117966464284210983085064280747688943180019423746015102351062247623679822730479489826021301875863915333828847987903150843852956907206203699647371697978510037118785556267789133094474392281951165481281596486413474831775161809234237883595511171652647120844228007256052468215448917666982538132413605606907418727694591279659369260766485647140491639913616442371560981229285817766113745624696492938400140968415643118514543393352278916856860058415358830335976648737766175202023233447680478939342772060795099805726872153324997942747134600445435919721108638741601816486500606021962908350503621678846446991181264966051068608240387846528176166212333489214086593537116599639829742406065146701757246995020403951613634932561064384231399719128231174563871835411725779076603718381709039586597896130809080906066621165842027456818890493865448529134240137152109887648197926881558380698082210611463435019084072904263024326727672023209928976102068796092133879446502774418455631134322216014452839840969764515565642744514155510520231752927740573592697879467228818247969416495398145571904092009028720942327702886574145406413426032686112195825546635898673963231669681932925559005775377398941822969587407329112937739580588737773073482232065339535829168813819116088415537718266714292816791537375556003512132445379774511694253282376719462053379594162544735660503424156822976139614590471707993027611975778069821479915917009779298772717449046928034733858783603416714094037978318131084806890536198172827108217430863577889305433026985625679652044837836577242932046303265434512287819699938099345330708035435354341838874230152388817077969283277004522083545126166707126632318591351718420593721678974070236194291551370540581163743701858961664997372589160709079249203212273234378454655860956234173875984060383942177882353378286294267982230934219123896361120825363342081673455525291347597859531682298522127499322143231898038111419722485849782234993423384355437831639549907427516699444645570430455516104975985371600934735932930142967958418093813916204063178764241504778359386469063696899419360060823753440280239945461578845558780434591752268046953548504696014942833628858607149099610684211429216660047445044104866672004114487698211646250236974338473391715372382890254211149396656339877317655838070800573605951335458526387659165048848321338880785781884363300962001148828295099906748895468584425784614767613856802080203578395020780602632793315596264839561064946051573572164248189153797098667949666805832154318272572929209786561327754860025248324507473038348161646959231186945991972907215701334992972115138691297690687242611924305344766005226713286927968751924187875311607445209258794509218244537270247759094718731586944294749364504862913946425618121554124031716811987044854986753350753871768918709208682436261870444258636540108363263919379602848688489307258569965913245383447131396022416178363160582947241287852677283005452712720755067760086340497691524512012956478178498070676040688437778036422501403700382276154737544369189288961646716785323125530399336795892324371064281903714131665904060069232127672164822745052824716085703687029471231405218057516095988658359236549858299826510923487973258101138846216267142605303672778031793105777647647471704746344730196483930996532941517349390335181921839012413722537650572853892390892711290842840354116293350264751823348931842234843320849885927672073049762479437349060012204427450568774602034069129057147514160186369256475529126618894433983120658526500599417961024797448088618033642146305740722241015775986361383709225228003910196348217562488897188623307483336175090144387281170756785950072502370548946343271309421762550934604396637702069998074599487592937649681097877364311479925516219102569154597697477675525553057401616688159378217199806567000262794953635730893152795571274271785637118208978327994399453982386670868721822476476529966893966292381668502543244179934580868981798587735855858033506551191980369472718695369196598771830237951785163899533725218882523260789670576340123147935173921549403204304905304964926563798008356817490993061688161071027074923574041834819748655301267825897454541553364505996442890636119777552006835916997624304542732362040418078204254760359933902327681666973559265543694463830385714549754764312981275628573832522919499260927520857252991644729399966012928269620717082138771268192437218401679138308327479642276490460651708950506871558084872690492786519288526327971559682001274389821427642412095911001940793686617051828149717161011509018578839404699461745205255162830557045075707814762368091849765590022333186850570431072022339921665671720713561867290460134640547379703770855807020776090432961802361473369715103224124581563878013496649117709538156476148032627741204081463339092480555357138455619724378546542610724745205258103443915860899616239782584683243539462360362288697407404574246783831709872248386066461731221695405020612603278368672178882065613807900060618425377651430403045104543541290086152106880212509191912329586905486850461055413562006378495952547768517506964677129318336147976854711645819122071035333541259504733569941326513105287627150262640908227605031226109494962108548939061831484080707227733551017518510969528698566320048235799270900981313182803112779847234302990381847188359365962283577792398078580341675276348660668598487255126705952307802062360521182234622557940884986884985849814381584560815386427876404379974337329374252675751260804581675806158632248681905102125739256520248442639131603430946359456369274005157689208211112845990670720571420328290476635417058159157608749899109396231784797271565031428568438442315834430360293362911846658500040479384263581698926956114193331772525795932230686609922241294875049764139422025829416402210369643337762033726411562027945770025847431206480960313154541963032654339695320423238896087814954374622246789196045550873540560180963407105791532721026769682111661407967489609482460874295289404562939962340527001101011515580432397130315433418484160252222913693987745546995492841949040449971188829270849163271897259730221376893657780249316939479520908363013701507652303855462223286539105140705364819718558362393056251626200637670144696799080938222073580192461084525426120541580301607634699402827774276378294408335795013280490150170954297227710731233551805415869200103672751939665247445513528832247840424359384731482734780874088967100504986021276175045524841473575098584090676312716998507531850979535244207216166667660276753523174390379512141804593779783826384802641159161959724102593729674077212383236071626567042370147743860774939618546224089325208617514251968737060323072921838794138128714726543746112905737727040065853932156042413885390114176486176740792974888365831092673676949953059671330045070434330810947771150238629115295730684864823480383942790051036225565489084109642508959916694529582382751561121053156707509220725466707017360531751917266381024836576485136990529461935968696039395381822934019734132234161671581837389950034874289879135237182530310737134049571025441842785708280791614808713412774020629643128398861264328886995962367375232081866111296165645252608841727451735309828810977548488984669917267323177573904148527056767036734944978874397649615787967098986150262753239516522484058286898442993473280170969913546481863331504408070136466489412128746183058561721229058845816960169760165333649435440516877579590466855796549945182375744429375420651758050586000112571232773997345316148198102102589942421925288406440915754667635168779583935429337352446758332177769452884876623768547445146484431375752186305194848102295999587296568408857582024897452282452580569770607197026330732173766179803701824757985144363091817774212065459421646300091940059335591732197442227684142715109236892965299643456098866151921349295405008266561484811325703072981199825807640313186653953564455458363441380641087178324453306370789337913415930713825818819996612156011835576743004069531919341214166488516602578071296857564379261176984958285570947365113741873932233620744248968080691745996475113124395350972306681720702336309704650809087661703004196683460734399314314941019960757525078890536040055300558455671710900361818837731689301269435427009766254493053689471533938108716110622554481454871537210029817084528368537335613582728841891814009862573870170708511535190853327313605699536222155719325919996514220428007482375159400559664838153916976788399794047514542273446756335699191620780563188101950777480300375013953817896115343823180146608452679195255744380077684367095153715588560283307874040892470529077751250123672784018845200667175898026282112398943033306285852356028495211107741892123362675928666142243242998946082469127626509759158333469389874088069368139088071657871620479144617455571966508921270994128678460219140715298665398801780035078665386934602562952994899164231245300553196625179968185933641134822940868133959126994171775175363119893482387846913719621470770360937520117162673770313688805315231938732115358125614656985955717475425332398276560429484102075449106643317838910337034696099327869560141108056394194098832661822092317879125225689291337787024872151623568510829936079974202339981022474397698852179571205490630228819121850290284592330103711041243401884312290459846720549953147705795059824167961627465848922108521907119823808100078634345575258831586884496964304746006966347007215280554701150085623738300230561968538410739434277969376184260162861649368175284189450634322303814823779746474338054173967350029101992009482877701911945928600235712806492600857635958768318978945256097496414354092923182404126956053195847868442577818931452563096988053844821813489034957580779257474567917745323531520381263767842966448367478145647316476889813216406074398200717702869329038783418682384092157993746484384351363834947914104771490136884626586034357958492176881674300225926956262752276177354448082159956998328850185832434957719051661674000731217952476940344242464423874239614715510228837519477373687588260592957248002211738945321415695659895418837722771609379643632051892073140063764865872624026971773601853490214338514529696822079707930275637602790352649512860150253321363539198489864189817419626606476516593843381421033161245991943798088883504578532184486665865973400834998737241195724165727303686860337480282291216121861637461406133942648715600452528853181879115746618543453245414777068557598207746619851586945916730606513666884532940363606667634563863188707452236395977455262184333078839819741183755784757832785530871548403260849899353195371229093564773697024540044781138164488399788892432398238921682211447231330080138845876150465296228826168014126979000048762885499780228546292029964848987360116615607858399238883141625371018470926781761702268047049157148408437688874925251142723416579318479725490415735503736104122009622701063644645180468657221865425175668084543602498770678863464841414907806031882789094766190349204279205943286111109947795709870367231640168045864758503918490829595882370438847060779951851550651012920584828464033082014674079350482194782025638462910935347072378990974252606047777267154994598714546629075788656189665082050640382732642526566307373311448382258288553616517510854294537314437935631887803581013954747816877211086564988983763148004113356923623941513826468509911874500527093976852203393897672830413635163069927561120800947847573451083976050364959651266603535073776639119802842642075217645720255711431112918050788122972777413379318610596920945200698330373121055125257787809616689355082658172041612536556123331737816139648670301172062254252392611607179850248864456031044837696508724969115715766657448385166361132346752455455421557222341841323014605430205059171826900518651041689460619652645259212567978109314494332668630807858985347821538261820319534904580762258427754035882686178212501755684527351860271824581781023657751285989633255286122354500003943729117391720031895774601414072350550188385947373970332292776926592288861775621439994185729378144071303451715491861440346410023189459186932007751020408970986868939130507602533622531341480084096985026325080988408341779894995396464141254964051767564754668727105915754989805791446495141470478810576665810133427351790169024661768027333540860441103525300414764890903256569594657085275353872791427574113869911613660174528474409046577124553263706160664627913357271421262131376868654049725047758435896622181624355711795430032404597397356325421314368803032461157838269444447138695647863089633228810606892182206788059799418163888071119812080148269759911383354497789036504507240792880512624065166532172238480247652910300900081841106310326243284754110472098079599803107683770735281806723654194839635148361464861569282912624273685021709527617000428634566734628722933594734678309073569051336097309579626570006739299467634473134115371072425226570609367116493620225729542630533006722892445903172676551518032408043578735146958312950691269925572361891448023237813056419053709343258819149047076327873948562852694414742189092217424345564659760383527659571251286844979574334151820666329499529662440503827762208776094965097853220322794050961837528762104323120043822415237182862432591671150108942309130371357902273357717152385336027068472515374795922180513870370399456682603019623383123529668750854570174599066981177168065867614962834314007437044654832707298353356510014155414819100880272310259125304745441069169157283113537998524353026384782841676504269166334512339950705238126661451990257968459706191293072700363852161691383414930275135382613407318616238213679623487213758986712685517491558273179485488259844049389936458801225442406100463571879860348002857517478695222211343467794829487916525122868771940075327711630055128508999693766352441546940601154367215877956251896633464520760997470623179321720755849305433574811213823293590169981958570587730089840436401658096559481911105132454602722731828480395516521947398718110545073602446408582685704534128224603369181062337955759079396815038555897516906940728639146144803529624404589244977744295251523404212550876482189974661305519664778868805859458518957835717419551002815104399090381257017966642081845407744554292084968214636289924000813480675484049033377103986216488487851422649175272288317237118812275039992924496099599537895156234194978185524220857084029399934093808179879179158708483432566447575873731464109021706277568992501575043155042477074122849239145257466999942849035837855429226631672987530319168594789056289185046907430135630110978907144309942847795586021113901716779185091389653553463007799480067748624444775968754723375711153076518119754090178016703654935618496439753707345230617891205592917342911165280200704703322032275189651049225355002963886224902667151891630702639956044811965330238225581782612841111397944252914376338873203514222521095790161088892458870344923411507702968210140056246216930237720873193886771347124230978975454268235006740019588456364452905318787839974124569112007491477414377467274047858261129162832374924632352770832808851064469934036505506250479711585506757692615665840859286523420242925738702277462222497308909016229990986171996833934631477298084711999340576469998733562061989202950628502016603154096509917175580874128061902496811499424945536732517857890176011061126307729361280513419646572540571991953415427392278939800687770832192316025997560196530469351698227515825133695871207946739085414588974659654915046220908625580669368251052117797562800317602417429871064881913419445208962641879339402157982253907288298643639272364291429746660131878691277148193659886854519550811932451591512150716249713473077588336430281969768910679653824084219023388890982575408389794223524803582005446661838720614436969000663474678236919836985148051786364621958234566214078009522144999775631999063706081211097794078596448577598389262815110327410760006482546900806010219114545899767270025777237402044287756497565123483769879533907637893058536088279470448669131809299241808919857664354368361082387928924832731892338685374200753565590917003365692421084902183914114757248369112571213935096454096739952434342308351808091344962465826771125293547342010007775171326759721588183761485529139551035407912432478452736889657755441636158741000376968391631028581271372161337362800559050518603909024049564876098296971204827254644561473381416255972901076168216811446860237448209966204684752826754783521546605174607205610600121976672347398787946468185886543967684576484842571612695171632214890579264525200109805337192111435530889182455090854241022915457830092297575597963789447350140316331835983521526445436711362673568478250278038758588008352632236304488503391509881630735654699999204430096246142998870675373260945788480392752596441008485480703161594264848388973972258866459236039413252941351893557422274991410902225824491201821634200167682633749725861359360117182573848453758043335750014527551288699258561848798688976687000256476741034473447890051242776339870739357844320202163786769484759563046502244210871659960984038985996262708301360301397123444312708545070669071802887069249682609023574194391090863679332204482643977231591206189593921145325423662389039054625043316434311681816669933840414950730580374256324627025113321331272092112019194485780561445390526991146708539219667820762998903640052341658131687794801118117916212076252793779608120366055287616482839999048010210798902597197263331182289132301772379395755195125725094119170000529455104708095512256745730991800959873109732214290842948189221376954715132077169096748267702106118429871780209399055343024467890904225650682454348133458279443892130828874771235445102282241967318770408263206807188852100243202967951419997405815648957222069281677082520358737300894914190843054799397525400894705301794614343261806363665838154462447930680263337271138105233626232468934280828141914151153135522531040383936341485337616263902393316054805794224260295625986827759345440980361812779573035722801865746695381548665803416736923006898458059715699754515641192333968855564142332085980453459012949493359550547238128495120401206198394689305647879710013976457151206887912396338236940696076592267134532601247243738674817767471555148175388173839166785510967567438728267716950501040620782681181174999317698737807016912732232347513914952989657499752677812823972058444649597791804692209507787571117112219023321694091874303710192845191135899302046662226908635350237713808405497723782427407953410156089043102483209282555917717337327936488639209479851731928738058489723056068275940533450033753034534201214600128667291534425586699658863729126685309714525400891683727310615052711798846972487894217851841466123143355532372820598043029315368654583985702637656937673031320062817961385212033107906973051045827701149699326057734268288226584951717734762927418043774355035517366694063914584573144544082589165065581965329842421714906549776350840551018711979899719704579490969163135093680918487287623662094297074976994018531277176965507418086842597216434754013340666664053234525102027752240881006200222323549354256035398811048812034595787111478045455511891518271737200916946702076160936962610528143663254163116406798696023256255810132053495598185109613380828975935227112024068508985281860363550539753704622972893042297991163903878780891760107897128140816045296678882824072947392815351569594173966129583933315017691392101210930803271651888072561997857101284267314559281239902235120101979728286004279938811303708740335722694212341666236801695485963349817038649644165379915761187726625977719433314268838057788089512234087925152061465127017662012749812762301375940344409117823375448077247636921464282993234479759766175396741905717662399080931320331427393830974018739013240871484419582523708126271653384448034109168829010891528794666819925067124952004118066213177525170199763684822225372113192885470173644361183026030374792443261227997430800463992045705395184471984815727693348301188549323957382545188862741850491496810471167346959208387708195411229746784037108332997560123191844595274225039432380073281713869717239236030105694400367079546649617522214659449354606919160726228954839629666254362819218540096729702864420324818779154499825786321070756351120781320932611528260085283368421842627915983229416773555297552811891560468976215088820173017895808696539024440679359780410814112975550619689959579233011369275102984622299082924168432274514635854287874315153331868546459664545958616860271261006346944400960913142897935511989023075105838864491271471559572098029363758197560291431408377745812484561053805721874028637426080808379030644184921880988801308885658193821843899630556415399053166886197591126990989736749869494861881419336756529830474418126575054602188593790057019169093705033027825840602460285000493479339251788645846707336472403545434009094250242690177926827804601862739747178077067051752783001220432175834481933046161203002529626757417847950790817076777141723882702903963505773203572727222459929198285147141954678793062186266849917975147711804786697013865880467236514714812014803799200202925745538347609140464248865543910683321548493728090309147659610399203932424530127837931084874877276052980375179379094235956560376513244406416750955955842628971311130848126354780800833394335138826066192775496223827698368512324178252527975550753626343859347799106345935106943676248033250762944953981784346125452401389969815808569825228549689942035158926304747298278233998496685046158429013951556864475340892372280361045823695120486617531545894298342909849889893139757144975182665818861658338684685339590823934096582768425709063110896775199381585304405379549597518227097430019057378478031332757858734030031383620083846306820851881143759297305994906377295645894658282595599182986489972295647836473595959253842356934696860390130735097067499863764092552507470107217110158357440231560459978995060850024880952212347499566637995217351547718251307726422168357010775191021532027426456098733402481169942867656635046359450751745195305422792633566379277089132196497098745141646758116226090606209821719209991753674031529049005730142019851044034506042580892116598422376439908607199312137994712692523439687687952346355629932418302310882827108676587984637969977134806174575391900522982575773633498259036225922899485731092459036608279429964618588234207720620344602327705846489471615136998133611176216707668840845363460968483312250312205872438653622251070948360116869330705639916948122195321776492584434207667305598830354469345448379562592582134783622994945448015458398634097775180254649365206473198983050439302672884495425641777240889213731250916332583634827062544127507295520774469573457384767344873011161895880834909719530401866182725981481170921875197733994322885987946211003278049873900165872096428145507578735267964341288189334220151610421100238176365591334534512073141624792561818580584873716118252942420134871759691706701449557134846061642811405048665626300337348944676239009230630078308072411701276771336569718603465729064929874597114429212788639701317440209748256220923004101217657526898248024633995614376067736110391284129371547043966776263186174654440571778690506437820418398236981211264078672488794412213498868338236455856429836032298684991709294842603721531604500554199975546673277567832742333653637620255902170952421866007596085756568452797438509041887638186980622750078039127290938543597171852730859076480636513302201236484361022377072615427830890152352984314736153425924589823700544779418615105429079099239735875803898810236775395962973735213725446970727863767347651523576592843245301662592029969764608491010531209847964480088854394537502213266117421170013482077255710544932570785562452448761337543221577565263970274387039413690781786825088819022427104776573976467068648695363180867824006776682380302096166990422916961596615649987647759718741109432282717197189289375327166867792723434164095606691678457223454581194869621578156789922307579564145504978022164540132566980904702197478207612940776517961058204759427204816075256005419385669181545165354284512139699884180682657310230937820730076062244821069029661152334884073668786872319390277225569496184348012790530537754862145929269931322649472549358033285092550330836856316005968333598246070669744626870150568866063893557832123989969409206481452864967416825493716436406041472181499398630115070611845011394605001212086376147412242679604040439771812152802408742838252485988626836092907341404271966620304084921547104968657844079616237534502007426001644046991031676516713886589910558164272782438173953137346462953433919226766754575798628124454268463016178658410929401916753570462577276278885548658637842380088697449137233682222678725166756617122247505412471053754381140152899923637771431687158813980898788810889570634877502135799789321748970490625112036084158576380553803067550160401472775253374648126576580666044743947455802697660095527420572252248226484915289592909777545998402144618889361258351827360551279145997060628288642206796180559235652657213026925960647985707094669208785346898358276802042420894499414296353440696331819301006977426635761869222589768130594362233208522327439700827522344097172456320809239118201748948198254593279520573863705894432800127413966922551654244192123787953712681944461171182640783392006195191934825295840810283113228339918972129399408248322146020402155695602784535754573071123735616275055284496643151741636283570243300071656345756536118247696936496181888100456506354163266811755090429505310931114556948139805374166474639194408814695835058539719370515284523329895450277713095946569660790281880907618179949189212865358566412266670860808750367380129607464454146845060911751532075035567496666382345822312050291135208092639474253306214409291739639927938337810191545513014837059587253016359593236367951352983015997436044424339486489352111211421892302064345727576855770426181641893758028111889760292316957824016389103348133054358950415505597478091479759577016130182684248781892471808034537124008502462539875246658842361466048365215927065571786584338766065542208036538255660209479931749094652727631800414829800248066706519411283874933348109555638871893266120213401171860035110687829689468336890163794849968416520393893781121818965843744676893249094615533332573765672465673985364461615004590200470765249822884183550688464289764702657600385261363167444960961112226921764903046450369117629416123699988444545731254836295936560527022729198297832309556512549119655924782612914009256219886113793736145202915884883667643160961445933984634481174713964239036052003478381668805575310296819082154216724818898912217663950677615929060004551574857560545995735908767186584517765997115531907164548076934044659295944898524846849660302682708716443733537194130643955009202546017262095408155534475312512151574698843300106885944551364330626864564145013778687923396426204878499355915271713983521034246106827716833384128841523850329412813918497970719718714601129464740151227679890506648236394161410767410936178922157877261704713904221624800099413947391464686800696058405879346737230640709511009096405791351931679284692417642487805678245807049274921216531484925159874369403877565158558662135436137556508366467538710520338745369351754633382715481179357865052835765680604840661375206494635892316586672183285212513696765052155799159492806269965360110458447684318627492526627411538043114069344266908444435525252866840893537199238122406046361950117729442752750575692507976672846063701100097968176961173495666533684516277377404988596475779077943562634244395588645096806398658221863748445877715647036633993234308956592473350284762963241586685379995677257392667576443414803947833951111733424629190898209023162321128741861162434744919551413157572527425530950635444637510959691658769068735150784309571880726411139232335986094292477160724535212298458665759903977089879964230672322520479524825335882965294471452289242075313576745048403262352384489409571221614302665698237798826976685634072810770067328583229921752147022463598824546729566990221315302655977098243769550100527341623054546816380883634732387175821879131552162472123213202330942073425118191550680156349163293533714503009963996409782640356963724048532766835887081669058986236626887016830320346421187290568156326248208027756160352562984851417107185687405072241671051302912060999525669487990473202990417377445998443531466073635540819694442322269777168511452535104516542913887945675501038971084897669566362734192851376836722106924006206064020442812245509008094564355644025518469139269877945659017978242449561031565385407843073714419506635557511228571146547214710043394139746980915648662790105065397037036125324281778420794958119984525711642889696553872559663800694509149058116532244283232696822624055712850490893397118004402778241006392921700953289345074584656094975165344345191681147762594806813875814346244312057624231519364144889080971010606996910963824481798483165824179113916652861215072556486645429817370794912091917694182186138894817968906654558881615901817862535918491731651191447027826291408523536973784547925214440721542517836220724114497578105961603721204143803391691459773956729879528028960381021477033266206400761529437072335229807159230256516124206021717036964480506458997338518250215427252992496046146794840596525933466162668484143787186708349173304479628221190061734115529236522931987896296498114758979844031286196131143439689748293213266966578553622540812879605221232588359271095536770838953396871147540292508971456218196951147368879361881333706905114048483236149892112752935532408397438928285471950568183205601509425425968884620468998534608995408156160872079160488016061422812394843045424835856778622788008044639967238142331041046881242541236329399552559085607553335695774889677933166587755723674500587928173360009976686841535766123791817412662464192013142557152107403849695647991439444887797683644323659045852749432627954213630939871756264982224004006858874999957982139403200766658414790135627834484457950829391402615536886947255427696726274439192697367278692198493592353471090227378997606335920122676409834206882835184495020748915706401704776413093160655433066963509030074390716369319304651572625719983761186570594510876968197962705443316024633511721030174551119476284847544889132715915235107358558800484833214084078259114507439500788411937229745284965033038052057427209928577215985573245411218737451295316538129609390118730186961267287040048747962074906758245408770717328966539420909300955147245799174203158593197527864953388437722015521248984686673376081139262665609108395964153446103398624955344615925081247995679867584900503131237909523628438315595319744502631094163382090643928135110746383274597146873289064396891211657376433556584435408037606866422373183404009313896001710472965963252672650309840014932589753558163402874416902617482689964747210856799768830490284468060966834263489661251374327411876886090731550018744084118712886472520756577541849134113879401322760601420021063368287094502145361585449600751727361942007477978779818370358181171229584472240527372190504804475432446539923262164785498638038669932023180749344007079444208441104031026750457573489017524006662718437660626935598233410711855834204720953747293591828157138724264187573786663109710462238021560547772718505132891090616366204006569179060510242748229487389664245928328548768640218931997349557329133684781323083508271172510490380487658057770499734214645964937689196116926218515285709508663356510752862567590802537355563332198668357512576961456682911809882039807726445313477632455402211288753422635436954195335480994591887912836857924712634348689091255498437873143858498633070884384882089020013359637703090277165530615436611988888748191350947785565202556771360472511518743187182613939069006098486350745502016259979690234190027316434899353717044076570781901674047066740284179054074456487811300096286868141155985009820071737460206784746341084428996734436416726516193071538720555399194430465130297868042091664911422577137377091251651731140548366007366592806676961879902938731419807369917865036734794849439448833961586236256844890765114467301119849766742602723647821244091733727133754053639391612003356674112021773841416415710982900483499676823321524861444430643047846541566893736582541973994318116346569880540550800198727171109825127742717153548884845768707178499788007017882254417420922936651695698221399516926814334818213993264314494343575979100529708705387828946377185309477867641582150661610197070390424053238116468091929436125311008494627779108665061370577196926031541502998141157409637864479717469063893331412752441714271825386945509180748527853995753148078882802050359982887758092780633518228137542712855201988874588992968077820265298191101111232602777339992902264071506983627326612451562377278947408482004513291215932674224045817891831105182336428627686704449573988914830356018801231034101843651800550717197236775737530953404243039349581398810103617318927781974475385228445874464148667089977033044829310349431152191289685709086288486355535466157809174213374364634459406037432894884683015805372031236380897570820431776861099896646633140968256968631067535784056371586181962383634034509564933347429216509922717949828682044833620169490969917612769694329056351947433149380615488803641262262077841930419703191574444230206894819979916961497802635970601722706860685701878876101457060172001553709715029849056638897154456185373353363913873705970875345983084293331477237803553962944832000270619221419719863129430949914705192901287454812505242859875668675410796124683649977998547051909967566143592923274786891632031548915646564876260479755681084765449709850090805379082885912113589906360275486713587809409441781009455236714416963374609140650678365473763407917858640334325680516714257505052048824402479719488553364458701408139043430124453676272722031947657753679378877935274633876656699689989470443206393316341990910219990674986681047944756424143410246302499982935402533859107226894697939043844923422484827210552577769275547683934444108175151801812018076430028492932338290650571144027532333738272990081888294820645935724212061321716499723771503980661625484664500304128178841629159193668779244032584692365927626817509829037902584595296938334575113347287043947490610467212756614743056167648468542395556346307144428705960380816990353581919951380814408251895731440414629461200308034604409149686604227733985955611200091292866183834495271059418464787327453515495148431931246430431752787627593009005778095489016045936593127987518840163201501212628563852172385042072587375716025878090522989165419801187991494921372304828724325116035432307503132232753918633233148537904794997859477648391480483639991324010163235048456235188984428284460394730866488678468875586661222197396355267103393498754660949934006740752475812585380586375811599157437408116956596929266260337821806793980823223884156659611423837038099305232731223124642536672930119689118039388875144866701154057807289834418395595166985121795270068720981724995301392598336407156865397212760075309086072891131208951807713649974877133631389455038730146012026642776710178557845624222077431512147007725271693877335118178625430838431144419449854371355924260555722570391973355954160499803286861414606780687987809873715298967700616655495452318497764519329386108136130423791355923454479809925529770529311036859721851617255323150020862617646704109440227152820912357468604730138725095281851236753899318712076057295742771880676661701462079630604466082679391006311597300929909174121691008266720026198568289481457077332272505642607615229704336268379655475908677270469496543192582002725902898513658826451238045591439483948367897652041190914714729859159028261103728149760610219888809162141469470511634417616806972842462764723100100991685087517702078217533636745137907534023996806800907606604919087451019338927240113651495262840199109501585919672260716188252874055991459058287126465855044899650340631505158673832141280522999166413982515629449991617486128163024595523509055802627063603822685761956982406863039678998080067464832130443392197907389454386251348431031548950056589826093097900045359573952591178416065583508088268949183713883334041487963301935653556514565169230350174048974827936426821803819506038501077822327914107499093354590604585389665146788177768658071428911505824863030960561360471364869874829044291826928654834914194736396581241990496033156746571613751810060337530915570979233253155658990969579444671595625642152609858051411708852990762266208752859438737558377709949421199022913681965574306594537804765313766687142162364968069542284849335843234507157701191751656429018877288596588334765393274618961142680196098631720345734199786765499814578099724148449888826605653579803811639455905737954536118041647308738587755410213624106273966655518672484670704346735989695273173665167797318602057774705883442979405659119042012836274529251271643947274641441930579799676121774583463318431287893837567202491731654415690440678167176315163309918478971118206403368707930927195650615739488499525791411486171833861925938903676241384778494321753887168244024714305555333633236433121827890510787440110441466842735158112765602334904751037882873320655036934000660150982548761864590894643380299509433734280282097753866874939290806709804263337976562637454038891413803693296949138357826768699658834623003855338593240311127871855297677347144786338526286259746156539687021079933263024904107274450198772521367268574417936196398694017445100597760889701906842738622021098863232444933390910083912131925533696303899178071314675818784770449116049088778790152563238969476441460741899442485931218765206667145216456157677899763756839895438914413015831770601267970470384642535238958151376170296060980020373527904064080956117977030855738617761378233560985949847158116353220444010337960266915450563670086887952232616138272549612257624547737718776035545336947183983332532933537692236519926670599934917321656686850387697701016732494975037543442666579293659101373972675148296289245930095815865533199406142266765212896129691981400392786960341534646073035158333349606215945453805263670086070467448257027487772258733330419603950297353455437645660555146519994986514826895487216851486277290328403792806933376069237428306389978166384969728537265962344348297211496006246747256221069589974068564056233097612420071134964751264992376788572483459673124463816245596082748675198529531227377186594265525341971879322522282036916321559705684246758546256241559717258531843114692356224151987727023517587914616957592896727031105124606606861760470732481740528419418264512770672423916668844110936580839601652880938732092415038831342016512178849972506829084666543685063304417911805092073159726178481041011462373284125520983833663946973853984643521281601448756890035759141315737504156586581395549058822896298724936504937024950129273997656167627248363263867997004011753922036533297648370842764611418455717350319031774203250417695829818578057250084233764660061983651022994570773576664710127679651512430166644582718975438200218555473087084250907638231294587605508151552413099292294569846242164563209826596404885937753212494243937158722925338188999259660081798528370117336821325152492254725461350419977982525716026513099640969235603427623452757989851575938390183000457052848040592145847389742122417586131769562315208176921392091973491885744805206663654608569010985416789153203980975464093482874001485079469278453157350870450024535441225762583799935037731624240489692012532429763052743969495701638192922050128299772329086778015996688718647462371518724298420722791419359572726256206903623978337047789982138560255889319180443861614899409361528618161588755398102769927264144183371173595510383842429435553031779658707252124295224493026889511369543312061609602772716015068590116672968209385856803149090122272147184826747422157312705466168230963816748103236278343814550925104047640003172431316188163869137665689580677298514601096520805026477863603296706117068771931440158163519476980345325468821657522527227794902704338088469617924085172892165795188597771853136985409034224350472070064492166067534451375515847424553556265214327580142664914998271092273369096170838735917250929620183355011671615537009685343908023909133214549477684708632060101730900976711478543026043225163006980563747918578738846481635931434098217801304400622779150501547679905374600394558141289362516526570534283735947652948344088026220020986334030600768266928815542851298169548252779913846994016782520252691502911124954564609944646546940195407325488554643608486402540885018597176489073771971675406381236146208691801956550306595609421473292540604989038466093631312027507539064150633712874383676492048340191955096134720779421281967855648883839878959625890980078907453596256599188911035248379668994487515559876333385268254609194338232630232445953772815692699354574523675156840465723168696263630413487095227240513837396757947012356676843581031213072980988467860599733891904751814860197278224134604754492304780438569570337080847501155317421084287514906946929327721570495139535954524902626946807829893885814513875428582456313587474226429609353981408008329440179797665076631072926284822643621366733475929574996392187957392641094400094857085794994927610402022397781926599563127469884591398249964498097298536501393117697865120710157281217548872565961404601445945124069106766286336543373984270030824316544523679702215126871057258389431872024797522083031286697301177546865851529533866125342327540081768668677188146065302412327029615752254152160965481566133393760703570848823145243662242200429987230586198956670209188020690839984857011088182168543955142111579136664878532653365613467739128378668734284009934565395047388722601760344934248918920815154069574290816104020793592802726624083369409944126700188372630043520562579448202103327063140331127762004184409447769879903860289953932333059567302307635982577447792953038830826939549680956125717775021761370805626809758634750763388922597652823540449912368616295904491061229611418020245794599087621832658678028979708709323548289680668318569162331270838236250120452980749343886065224149214281909509618572448307244619961836517574335427705041452825363505663549700333795827031669262743388525156742277025965506413202587127916100237664585431633959903801604059258520719481089984977096111845200202075371057711469691017143872275021459049419127409349464084406668728486415214228343724720227832038291932407268155121219485166890392588129647998151979554458937045902112220496439072752626782992514967569052486322236286311702688613933055751453433151639208981297324016657477555964792321347946702454260975720086901834654965376937368065317167363013841004083517498762867922203894258163033943100955382251090881425933658555871398535158833319964614267431027819860362106728603426093413467202737754607220986959826702954733273698687574810362881981323076033615832152400147038428127401282947305961808162445954983658096812504209471384376391766675155531104224225910433340316628308425021410783862801162239364738521486080359791983858611899569152488918837005030636454095986449232078300965517285966785407871896402003120710858248931676633851352780790917244730600637165702477380076637811085902303885014889060757412156657362986420921407990629405740385712844526151077267382553275301796642673567311795270789591864703268254993686091586326864319224723124602259684162231310081234708517565102236016868518794465742296642095380602841769272501503283240654223737938485841192437225496965011731075274653869127525613682926941699483004632332057553409516294721211363783252775073354119234505563331781414332049548001352752796050840555920002608136525074124596505720533810307279097600235654108188584678573988217326021494703523847341647301658524715640308055934678453305888320562300983394579879623445294897996083140787002553455859004875388860068121095747307925626681468326189039712687682550648756125213760524724288273362138290536629343144328000153335258349585825167483657001825424317325781939966730610628627695288020040178274717287603134007705650425758920034403103993444342268488479791989772730881641524231322837973421996740741613667071919120725207619319894797155135822454069873368759177917417093164074606057818372869408269057492801872223742421964810295401904042863987083309266047350272771432602831838937310872475053143813498994622179371951110688498119209853252130442365193557383344078348873418358647491264289697597153963729925856034895582250588804522656320358281025065532220050815040832901532008327421263882838404911446876543781473972103504235299938368470975983662530666864009159535221297357235165763615375267876266390838959917520388932638456487316504237706154640197851873353825710972716058467259992162460648144793729600019065863445979056787678888078147176934504818869034468340409506002101507112613499837465545857496518447505964557496258059932527907671084383232208983856631357799207170877575829738382123791002204281557703133328950038570562274120879001435590202853436304117251351532585457045019464865798147506235108048444126585497730026557266862325849893364026398769565862533018431343570834928966573069535948549271241502865130089724271787034268009571266005001549778929369785787897608478440414703581388428710231448861619853521159119197855205151572180740938240814853374225769373347410754895675079107271709768507858303504554766010268618694936382441418988176318629601652891799286170290691006030060834692452434431325767758298031395682787780931175471657645446067515604376255102144811949011729769294158294743455944724646034468869839874186266602496671168206946106307460248361926003433975162262774341708314199206481040934659486265470126529804042082848004842682987271809070875002090618562239172640676033747562690326380255488721657860480281730974293640103710578359811002005384218089336572412429513900702317737554208363741700836133632617290633427129738952443713780071659743311924340471451553684134235805299656502241327039244190322860736366658856749626513721287250811233665142320946600331484808641814110202819150379811185871710058889215006317125153979923690099362963845391263901539110391297479340372909233322287682042235294164891392605225074331121135114908408222558377973715649039273692456870992538506061005769376181342461796193408880046064554770548053316549113595839688564725348456290762875912929386670205984923142284912339764345110696647359648381923398384725979370449511040022111862442915004477376045332779137852838977526162797728019852408960013604237769604639601351748767246064903560756092139228937918121867420610844434594962873646179217139944623138489564546885864457745516799160524364929438024032538034823028026068741819314930413800933912137110601255084199928246971706742360978663219887514682164917375316389463634924470046150980213430749852039363106739470163860645668785963291364032394047877909116093866216495234356319916286985271608310834198597967522901196522885912168246931291393410733897883218890881200584135696226443942379892057744135870041916808757192690954642004583218475627448887323714371092464781990134268940370290178249061284848149459525435681883124452692733094616152911061653127783749442090065166370363665919587892829328027746457863182479406626768225100950528998703259038573153041247599969249836729001547768961316109673472723760519922010643932717878776421351398896271044786220152132803992242098206483280945260994934454882077385965785385848935561321683104800735162256441018824569921494754817590859367946971516775777113178023659390991188274600737949096503620448798955770834999768994971359354261595256758153929912149488486871480540493252413182898766719373163147299797041552689564465625592894058195622439050414866312932582586774492524785088305997533486856520442745356322687092717442927169618851949066850696084849498600484807532482661685276069507576324348186934385457718289969679394251204347992950293545837090839918193210625932735513573082420433744471846760976843577575518627796103719684288470073600280211480954732058121231552211333816048254282898965535570556224018600794686351119936865764722959747312465606343538135600356766322292107402845096832910623904861033700480430856522046860077893036265812291307608362437495500994756353003471925011208228310287440760141776023778562169538419486937530868648990379153537667085619942180684343746712359471564282393504547848364323580766915801104789918564827654995032386359478712338383030254856149267141636363710118296457184012474921815941382579657829759537215227061474219377725622843836635503217181117570249239804141778858273233236237623792629250220395003733875811970673153793646271272755735027220800570169251126443798586647592622288248186801622002227145538929621113423828425966090157609627901882713595390364786264365572912564808643650479713615224695689687061941140659165733077924587055950685739161843538297396628261915342612073563588969509854175995224882375771727760392998741151167082441903386542471998360576445759469212268454729806083435033230951266558665332910389569663693441005717825775256853664430686409658829371030725241102078249627598741467885530875155436503103449938360518950181619934117233502176525904554798855196576633905414471368500777370453879162667420629025995722481839352543163112070481230439328113655074761969359518951304324302172597412899788664771875613264627709234296653950716915768255791717552591294429504213068280701707344190676473756718041266845953208799795354347341682039228280001533023915527366140739936428115190891784423161508444574462910595910039424986739470062125992528318485074535081323933247009938031124043437679261541783529945057573650677854539741450660181500667875051457441881489671436307398002143975758710058321600858301280998952909048831069053649031036965593092341769324391439500249914741356711989481641919495954396777131467811652007256983334962623285826907473183016103928627399718975714176197744395719759603299295684024001672463705682961535729054933202740776753364572854175860641651545869735565394130747288328838063290960173456257337031226208732389324661515489885607342272416989239374255579557126112997680025753674316464595498677066011711961678996212688558948247863199616887363881183615307120312390940125047402500456098260018563457010589867360665978983266786537681689843910369331286733005228200973705523539411811014364750634992285236228464322923216703979364582579713711919656845693377267490039613644555697421793430962189230194951245757959663015848686459189504328096915053488427131879665194066768634582298330031225589507857888997395837195879736518004357044773750165076374707757686374824606775776477832776329915343203568118475022435073710797028621889093656733460170165140306921121131850279549541711050641237794542023027124017982936067982729344207896012879764913362236672607351848723115719061685047311022001405787974484364670675842347290066675563411717326569203785462718448676718729501526364553200439456872562638135970405354647025948762858401309500125241536135815672784134282408939999937684419135251112881863075833653298550210300552470079656688057545595195325591735689753102050541162361857029390616000413841202979187103047506426120434137198506660762674254488754945072826256055848423725272353399257114656355792559231100953477493183310590040394995761270781067727064275314113633968825330513349773362249234790619713712011375540715324382690734853976947773906027948377635374112107093991791445213392951311445785306560543830748269322251015526778878544915460992573134097629493141452517041234837751075698199666714867557509189532234894499912819628475021306524963696056407277736617950758305373144531584645123581840386821543750161046043263569515536624107045440812495770269176304118454230476603103830088553331934654363618070220207565635752464059302514492808450014803478140200163360366559164088268564651220774058580871279031523873533312424692968602714847544201958701781501426992205954145045740669496379468640636519280367316560777223821673584754120076034886964529385582525489482112928336625187864769527496680459420819176419358895997323790118567446519786022599108666568925631506789289934048577955032182381536669706414871148881346761240793041351235008875210676270937885231063061417107905284099777680625393273451977624632295574896780249067546654930785315810616773779887527570543905324800770075410959123029109491842660831560111961282951637136513894987365322075344077215397325649284212493003279784114727594863672152361383108388490238528716776807235758769466299835940135653688607746644859756828143282067632754300937450486566783997520422575675322875404389272026805696328427389573864785247742220809334456724603687088028564968882597491669866880766699151691144981288293669393101325470860551823174111178328892506619349205205339459964454714655867166173268599211951459330617929094351356939538230111119411329211145131357246005031006394737154854267202067858748122992333508788837188384833965374022169672773407004130881885315048064491475034781358867489280038014608521182167072068066110982622607039249289828740745210572734465296697573760966962808885847795636651372944526822644568757114421078264208996497885386903934536543140693446695395712131960586503434989469995639051004764126311471952596974724458162762308909571184012485255893980639580141023186946052173470542421966255710336175501199349239251028364082614737915329992600629036011789523272557748838404795278889938761374682399319859910330794421746550855965580635555870816067058972776025858020577495261972091127053494511517035278531577322602427309427016510253548228233553969183707072485205239212430473231727957267547335065707467822810120615626760438394096156980747894959813808842739948345518227228978021565693976858873176623316548313137510490594633856992361566892632231537730587409159419982315704932399101393554732258599816236326841480237436419395232420710739575226636768317778982228402201302222664778335313963793773242561471500556980297818879571009276582830007768207341550168570576300315525751296397359009467199786713517859061712949586934965897011151962824805095078165994367623781706324524760154464525431542055447454036306483750141476015261154978451072948571591011185835877112896143380107639008421230858093207232180238415978031478402687563855722335056614858931174283289307712655137860750676640008141691910056308025464502989333361521546249036577425103930852229237719268868997108330618997560706337215424670095528927609669465435661973146923332171374182073367561664104084310509143198871332241528947775345640572027397042817895137773927081442474067970566991066398980364454272958236912884198997075763172681643037397806721752781206436239805287238601284310166250590199300403021914026451336213815723942531018852388184884373670850577897294172409709679832807885809285414947346698212255969151329828827499240905134988814095108796622225599995350138654720879296805891411635658419579437400346485621648309681094006967492735112859798463763001122019357704117956391662008044750410536875974665124828929972422417110742933459124419863527424274201741903592695468056659763826419274805898616415040300457453636823984548328883040278270066383269996193378559585539382418355200010957128678908341243039627824594771678073194835612166199949147080742503705653705693518317708415824704545404733976053678758660423090065711427818422388933573525049516473583695537809519650164900031834940233405503901198953007050353077591109850212193311363609891044356279227087614614024029636874324686015628583904662224185857438999895108568227084298241310658390719038816693580204050230302089425806641927411296118105700096544401324274417211455916249331943312442327041432299321167230636589082883290270952955981173709317043202840164088295699995372117982550418554638739519039322616696433757771589373414505056409573177398296499269781491242427623665382867552863054683410611878203400591825948891849327780160031634309764286648936770117916735516667571855401355750769338451609261732015097879743142628895301246799652629508101608922024210634330729127234264179018794617888329429651774863783866649164637869017196047639854345861354881235915057418092507652293961175100020571250818226045640662265754201863822656032068825929720676392686947381918754698935552179682344957066891403934446801740508836141602775646138084452439017998691302237126708367040125094465334119719123270520196594861253215418365309577414549414616573241780207052920984833377803764527301221594719473837369062005010309572093591121877810380225759900662076161053779433862746739474471659022202080708546036428642014653892680276183798919801223061021335106712981130364582509595805504109465564867914222112888452696253256991915387306328104741770218176295261671538281293630286383438835023981224323917394224872148698688116398222177656721902217732825645532803379681872254414146769429554284679999599102372124735550188896613030855508768800161967476260124728066167512767701679826170878363848918868636819369792866278998848237251416964791061940834037196009879132676496760433992966156048211117882192449014495588383077114442320811112075231264148045253282828626155914263161370319173787922216944922671477709971543368860749929133569756362092011919487548380147513495549286250484317018474816252020416940322385524984412575905213753479233811456959876542488558161055532921888669757154121567969647041281445239402005699518296654163837243319685296811822206614476125432013154164418574469396780454097038517726089596902215393503225550372947708591977504591475998485331020457429314483650997981356420894802404143533784754782205394777560379628258757099606095535250112614398948751738264109081622896484143378115411170493240237498113563424136802570243040339431053746399931160897394118475988831692389475950985796636813938354672082364824374407328990883810951121220877745350699440005742109451382340325733388974810880840703648119142911852306888003554357650016162695921204579411273904339144640212320496993016607297677639144680793621457180821662726743485667829586482968944229156877069275455786813709523071301535902189706318410359236285104552782622617983155562213209416029000779578887231917565343790616672197382017500078633407926430473661139501388376697107984083607780347541255862748612108705942860822436740098919288021104495293011823292188791192442206903079077936225242428661344770204520799333903134156152928482446947665789574340451895767436050280685832818791361622193412910591351040639126723081634901487130016648284954058745488675930651617473327434111170820325467250434202956760064016431121061159928879404394675485213990428845406070866234646176904438168743630424822212248856390954223328150848973436389702604703312140611271193304670643810927197901354343231152064157147690378782667821301947718067211614175704606819126619910195693039567411553188682694634279383488078235526502000522997679068853232923925516255805781004019542500943339609264866700362883920216065737158185256083176023788144710971868692369270032820453389359934966147841205593615219925097501623031347419365861612474209071098469333878599546093456485972476378633073580075062565920361176837785953996504812214706289586287240130699133784722038942050716570857961866740526240706792511858345923602332496441501093509421053727714521377446708437623153600896476286830623811383098470019463894446550908584210984810190353727600857642140814724472632208134466036191823517059168658351840761102696160569704491987844180454572010621771677407618326157142629926797539421092210578740358559630851570209377567185707105031979796127025063366382456233135488185884967830484021028848985040765526528513507306218858851049647723385311224104508173272374615356338761026589239900548434077592665697558180296294643508904401692324152813833522269080092437646561625447212801619873047235937430070870100414364456678221129964609020145711685158530332233744803043458478449158242379302477694758926349930890323488576671718832989998456143237071671926659757670378695451965391558635404305394855324207703103291151843015751486041617363592878745068384745253713312079438845609186312632642326255167855520557417758338902743527287486043765943970753567583795380476622775282411576455441380626907710955698130794533578065967077737879435494874773860973745701486532799638075414579654007050872014236413280117891167415105304814329536503845141456400766352886444326746691733491245964047232837412061019209687897475227895796921479090301156576672969840289756717934866362567859398519017516029363274220151816673834634195177184715790106301018060760333063252901971052876120107788444605508757336436192678126837932929633342513094973023565315125535279945349728587752149267117993722881437452735138100065576929586422086756856908653592614747529574864290405771638575544347321210948556858104671783769631097713146622465903591174846804079419653902651776049309209040334039386286253927593726635112901363688882806039499816949191054052559359652450578651733917463138739918418037672192138419809204982401924892623775113819545962282187479270750945628253632608309771087296542160485463863877961266037818893680168478203456865571752409200766507811391644819127789213615744581390145525884046045384028555213795485301277853030796199323923918466271103183393646429475733509540804495399728737574784534751118630832703166225876456836267976515489294210793214144089149524582777587185888574850361936078529006700557902586547966553982664435152430890854404104206052213206484536897681302902716576900773252521793619664787555139006391658736420766048483950165320269072471113829824910588242761839501453278259036244267221306347424329722383676893118540380075788109852797069927637738914926458047720185668805635589087906964290126050738930908534363026342961378397149450010757205213604438428123091893931863929091517342255644643697100468751561889266536413737358241631944769511258585278632532396032726264750748033179662992068372806425927315838364890816905999344465076712197957203818593541569170276692130359799763976961956434337726902105678702753979441631892267756028947485674633491744865054879382184210057808189183610154774837852999788730089858980988775619805498424994885904791999210681255394724632991286221397629269864183344958573767400751722654146721979064263116050109337893170691698948899959038495039057888081881602862890448751677660293489020127313548074332052634275227841675216574765711714063735169351557754254030776341179588564661623545677214817846388622489777967789562665561889270216509522250894410878700029352476209769958776223336296726418375337564802949372534793751191514535637043662832242672515113010567271744372545396725603139002602471054841446703886326475104581299343484579788612025511961284192360583850140103077582313428719364187916530556215619511475783695342494300929154542793774307460399160290225753944663209301690417493467522523259391261012877472795529258382937608523209972762805640781380310630404487244683861489638844958018945801385506839786877818868907365127859001811647418781229823032193985661021635922222659861500474151577210746179814360817873908677434543576169651180222549651577233264604269430288001069799069523092469548697251670909667901114638661376392493665894927026667840407109138729064500290808825484264334969661252290257009082647383131234139024840647685266032967586577238541638651850740238649882619261118011337942441781549599574475038926528771990001344066788797032508584553120085577350498836618226478507833036952686040557823219967407298700744269567375846269007156388221900485356575312494070906071347175787173708864695661455643491979562254171729625314148252894363608566734984727593307090992086096878429314826086757630367425910777386731093229028733205764880555191529491275184319345149292387112422695077756695476884554851851166240555618422096586630987031779091378655429494171097299764236691821812700579571065372439360239860526390601968977982331441101127788539098927262445871270671186705913196373852243173752830614127699790854642922845852617632791353191880981897375776513275745031441971691898839870690094697356234225254499204718502538019414538783907813212606320216587070919541210187232687735371021772260725913447490858955257293114724350918595953288900607707407735709778247998960956799876438145994980147648780332524453248651608450226695804948545708966026283163391279832479020635272509054849125713803631559169051112934326438447485844368639252916848610754516754957318486556735840610844836991542584664777408112212344856366127662453235041835993475552315816218457800949751485730480613102403626460155505534397836624481432295155008463446562568428729636467530783415738460595618606135191167894410950530043637693042163826301338192151510045304952843825277748052737950267511587301220601727843470526066804455156240592146285564772742886653643096416703271961159956529405504233005659035194159037160387985418306877361248863685773972939495069109844839258768351940892520090421401790475118279768213294872956758556788793422434400462715216438089385797525163427567178543070164373841055763330740838413670363313599278709991808809255238351370919250129363613359769078618556701829630936412485065430973376705840541148960043415709314697679821611844979796199243092238873509949791974997570601513572861397197821788799870073952765968860723737481280311614952130635763009072119987811824897053516009298802577738616407000912390298091290699966204106527220809874671721422207079415014350264784315102302638213641419775395738922369570882546687073619548188460170456623098207482023498315051869913230922669567603224178469265185157175133140284478778167448890095206763039008802935699539469698181702105991700469497791227776623919305830771156102731524433681807598259501069295686244269599031527267847912916493862427053321678030983176678115403129683216061361294369906920241324824750525684675799793943194502645134910448088855695110612050714548040122806255111575984540131662757167749835729361792461819575879185383044696678761075675144299826230642977566280088990870918597017505773160287971433274158879008738696927470618565892544047534482099478224053971637560087152719059029349777889887399231296923921137168711289025970447088934165929564390907672533527663777553195388052708036105558134171973324981453382634238290823097759724070481479269558128049109534480201258027636217086940021657453563455868377872598361913427774915899488617353764532661018331173764662723723198385276545201239173837694198908480127365371419965394103741864066748851575091762176256683010912035527079277279705393224296546891765897470700293650746199759389038679345835873489514849419448256746672618450435692465509451383081246341121725961709956631869831393699984420878325749094826388942580387954329679772198247876129663273664977188859089595121515204361268961973070119401852870255094054678151019148910403986474575166166900940249664815924435518530074750845377259758511227928387020781720662843910962600483535892348638706927143756090652735194989275249233330941271907287408334647114192942753695114027790339277860740635601131695809246648405572546671837145731216831843672722925328927442799270848252210483955801726253624579998397908382009120352324158791525949067594390288097558781114857774140988692932560319107995953785244131906723713161900767079214222905566813772537998064115720606283663338727908432854971784272607448808210711351866077059750210463440899048850493474083030271611866769062657470154536393611930631185737196548623590629783444322352003740436728196419709622540864231394964959102284636078233389552881714560830848675161705355233688502948354986639477373600089424648489043758070179225285608874423331255813374266852277347117370472262681930830181665405406914884189061784038524146608231544251399708276311219967947811972240274027223347446998203206613335402210716231409930191974688150755432883141858738501113726601912001999642457703735305735797856696955136146318838151131534746632056335795788741247984311659293661044877337987220430685370912514278514266969906941769347409670413850278153777676739392415633492150926930383415033959583876909661732580954808065439712654858388419231837641274786341304222563146434954776569745881630612797580610993348254785066554403626541530552977656826571903204338908544614298944172934283240201175385518481044003171338782825749456886294563807265915415513929933877632604229773020386627366696391685880566198332985448976719811752220209342813060738031635047068452279404128446342648027146966903022177980997387997609960259538705665189259369477112673322084224037238218029669214150384760439229779406544965695155894709654934423257912468344614992811619420811862463185118780388512559494705902534384434800286189731059456705324356829058820382790568971162118022252243570493082739815232801110270938556952295081204505157907346955431218861118123930334410505073801943902472470305439492741788206440700755091914766564997513365369248007166508676031933630177348485590184809014293021863857634453601092457173756168077729844534398126427637919296272969959874783502266181749274644820559769112978783344344862027054528707986229996569887393777981562586002092274323199541917232683344729104165697512378584195899390086866859829184221245898877306303319283127735516310802022656675039245462484305286404325438440064580973822489509611012538047744850605951259761454380965429916159171222070701184002710786203615835137119598552863977827051335176723840764017931444882615173668865856208579946582875352416658627039974404660452533682014165695944566655373126146019849730279435652817396822803222720677528313663749632027086175932533883952560588533307595211601728581995168421157177499271002726218850655427353180662445886619427909689378613107082925121434794959911438491113739402311997192737924737274529788159132769895629865924211663027498476034454348127883249417286533062942034775863768395255224915142544039012813687294376837225685289788777170339836753924407452449792704498697170441690094186400218271312875767178568528133228198904145398896945335671683401148056030816453371735907977090512423094184468648007799913058222103248163622954313285671678692287378906764883670078661437595834992442977615070985496036687651210714925203768888672145239421727788045573145423051854213996225024943993997153235162647238113524528799552589048528192380936866122365118473122390173886283783633828201508737120417060947393606585463108813910272313529525844244593544290693871705925651089774143744250400254793906772454751767107845606787383662956156095521759256462744968079133870403504698288582366539096562060442162211547261073625063922858234063132745744399677166378914793317577506086454441768272741391575670425436929919786082533052683769212885538804858631804935698688571148105891172413045735735404350281366207833899052106690898972526396606694456195099391411765401948206145972537704045704510344703336840584759266043308987699808479871853506285036710552314735143951972584347584450795183265281555816190218991288361532683898206062659694503653927557408002958925155677980650880609086183345670669701983467062521989917550551160181101041182089580774575836709331926931894278882383873696996658488612566239161175021779898899427388661920891973753727835191663133904563942571426562404169775732314784813104201576451316321115304217597361532158749885657195405302305133731984351869201086261054928045804648409857893402275287642323271090250213853762905204620341565995009273387908072218660711225571200209118745935128545255807141674573622061611089465205392651062607343719397231701460221858361326892322877398580654145242400029245520303530520703690661189439048060828574865717974338688553177457210082715370122919986139890866764915806367957798314418415409335951580591660032203109222561007249742635693496593384095449884335040190964222998556087460987781741381210353248326586364419741446477360206935027643561150028603314665040348838881653839848245147483299020699441188646153846755820914488854464185910308344828738855654963234368419607220097174357399300095186733769936137466587732982148016611036970122758320752620831413145657177154513152680062469662227912743667518198528235147251484473519470240529289243487442463738492180402040331627422310050668938427246197976283468822020336560324256696665346507832945940265917060508669448524513439882444080816612527192480188977590921814817318176362041382681618145540272519078626585133246003608105681315408091379815557707192222204239800590144770106491413279289194811857057904585629432503723063463853621854456736653089877114022957920103748495104369995042232565922149137707667358315178548582687470274187493187749720454909031160930054652225976210456910768918799636155228475200671375253380656434304134797017201230324203992777664339796622349271552817629772658601229367590978905445510388675112766280371796227626099563429028556270374134506074895006315812572406694740342366391905138665004147535393009737469163711852114212070965400997411201464530221565762520560002070336604503195171388425370109193406100828355150531485240577830311623079869350800632961783786039036741144112429081773613193083106839323341416681220522107595559381776654641528885017993679754692529054394807943452119386092240749364278467554694000416859067853653161954406296439122750780212591562411401747888443737926304070747812505346592654255026135057652336200343805783047893171064655857825688419853674787750305913519625072059090776650609177015543256568458270730703545566996015756756500065528495589831683847762293644744591717973917181100916293577980725613559407516018702983770533895518188106873335975363214959255009739316755311228196743358048621940547945000650151982011256364204733068848929297482917288201231877353621159387629226862545187924288166010648910201905145693566548448590410293590338195647523223502122084319092381668473262232003066341523941841195323884488692549957751972255535444810062511382805754622598721557196038771228700271616727848465240366337000116315101074930806541744193135462178118384758732734409093277690506170935479895285553117759736822359538676983708586241753941633224362260788373259850004162649869360247129741098557273229969214241687192286305915740656680384635829599658530267365634772047305751519302920676325607644462852709980641916590576825553732765103800003589237291781585055318329998706725384946898473141596480132942781075945777306540953936300974617663155473116847793009652319688784110728409687531429836331229650093493381683908297125178138456954176813117438167907439724437129818094646823182195692387559211629274382346570583131663776705167204029502741585837895824267590822134754755629158671528700998839558122436214318579587632242001374876958958183200774247769152841846230821967973587425090663987033515681567600397034833515300380348936529005078648502486406232008556114197101366698062588007852759056788924352396972985815182450024480951677090281508398801230638509795115424818987317125499820638258111986963629743127958992749739083304349595056455303737541103508352120379056921916286439284261406974945124550138489798139702789972179572405479857529445058353694509484961603258755254821766126066334269672400033894729343615302221003502054995906280019801051784522568635109908658503787751954997501073905019841532236383103068101219923117378234438627619368231777469671727724904872414198681994845211921532072061203070357926048106304419075217621505217826185351775106932484957799109496117880024237948879829523456177089412310186585751692860823740899984677308195580812526121920413232733638064385733912772051463139044232016322011658928128842421695672483694527029904012961795705436117312863497624307609193394161695141663012052430802360822487629126918749061575795606095937307410581487167930326463878029244759218395989833414823922049443490970121705327527808342450307563314735831604667962960174383638955512799689080324787246263329717653448669573288626845199938273205327819906897872562348759471507586236447859652176447337684012239116294808331049349855257748235429812447730820505043273410005528087539556431657609756476573612531375484544265704296201489976742578396791323738588850827494763665134864997613963575481682384611644040592795057962303408464857362060680435470070094916932956290221338105622697181962081509485964548234137057904272971284565816829577730572069489764555827142344855491859626984199793086922672820742795373959011901637750507915166906112332808146387697575787761198855067348801560328777256850453214671683808019505039389009076239484594893915546934344478907932093950257219962352554287775520317986657646796602749642860078291416373565042136988829452086757996435674163241961879203093908255480436139308908212301403313998270006463752472347807249798094473518886650861563232302485114429676700669841853050251287203865988140574691483042275905690459949586523349905160948922428035848819708479423471168390254235054709491047089440783777291909741557996049716906357945963567057919087075408512415010901279350668160060499458703739983920561766832118738814220923931070457893415640336395061228192365143741343747562865326012790400894006194804436726032675518000554524151567527159500824556544381996516275084782218199967978573299588529201448011419174205956634118918509461438463045962941385834866137161660776350734419915671210044616326345643373857468005391770735929738086078582971312625911222158309117319717754564344119561557908615479786631780532202530098363718821037550588333664322084959577749254305871983614144330392208189741799852894266877926443046327995444801682562515062558824671798303939462835389048247466645839900206957477766827779515009761987770283368785882879906750152039855702688041869024561688449596182672122034434028273862481324288694563361083303641206426324198707148141886987838071120003959021774565238134503206509041279898796840151126467941422478807760124044791965186716647399899601507884616816633010728872321252345145872555149152296037787695706226681503606143738621953334298854449507564367091406198650749273116406148133826046982117186460006887941157165077731195889650391716826300312089919129972594731609188310970812989532513004348152496324799995385063026688213158325183434307905650907405650358616756685763508492451263929224498429703095948115896833092870866672449742285528917275402099176951958022152890193429593643152724297208563009034574698911038366700136148847105426976163433042857045418070905250836890037696063479825751504704054193010659019109380361683706845097080501252362334957315184239301344666964381066279919485991887698985097716932456546620407649272442702172273165256872542691528120070914009331486759382621553011691273163621354994059582627345172085212360908663773045537296038965023637747677839254930913119420590118975614856201531730693876325870379089490247850700634234033209389528127440837361295926733938679874762803273392748429226527777605674612801906413933794650762637609177253043872570381995294762934545018490209427057502193742317969707566684936223520842548539693002772839369909321463797333182012574781688159409308241881481464277500631673076548610721351220757643907641085298009626825636838526516231333143652104329110302915513564277215598425251609517428238741091510744861256360122918597964570465734514745569475701960331027418965823234270600078203012606055778504045098043722801050009699173358486524582191166517058494414403369253918525762682511169447058102414293601467798467955016625943830829484576224395460826881853833788149974817846838213120289812815144398551835694550614595411315963598789843533277476554311796661462991658664838685074897074562780193003773251987893899226939814858017252739012216313954294106414663684043784488911167395382176603896332709672033005071102764730094289981498163461101298922025108161387531588786986633117354417797241581295995810386340749225609772320504457193258134454015130143625395401422467807002891206311587779522518305166228104808976315006767124611756010998060046064383275742932259723339900254232088131825710517427443951373864580251105937755419272856093226935158292151180417900989179935874681572629966054875041590923592837469120654118352906426049936831472909969051206260599694494959389252010413537339132812186269372482391870368492976676611686505555367824487238807137590589559322769009809786252026655498440650791905956907270197188208488738778723309517812326711231412588585919662691881567148785384086452000157709329515904354835828983471803176204658494411688857418996577088995326451971313639500523470859892841840291022311983744505965445396789414496149022955719304230155211187435668211875246936764436415521771486297764881280861859849297162440451875847069870294514153565691696158209976039608272577032110022094272981658374652981532993514431576703912514102264177726367943374569512068161420132273060961466533769716014082360660585695458775767550448492999017090010635547932560704007088642983721476340003989114889297851669041043435330365881075318912691951578545294033717499520861897339466159242655516216554206836650072226586256993703810440210967365816292373465150420570427838414315305913940617713010996684254531374090936176623709379762831586163854583518573884235912064237035674482197859032444164539216817806470478946896594913037280135161866097214705479456100154919765517093653817126127216090382649167729947460332520259250717569505906177166983410792129248101602354177543983007495410718084706803177515725880854222113880841508884386655429398197221956396191883659535083123910356877668545674272671236445772679132272174649545791184912214501028935794752409049535942341469206432700601650409351215094853438670529959341930064991108369792839066309441167465572255597944046145040071536178614691367974171690480599885878686946683444814736059497163877547399795120367245874203342006988641452417795895926339573963002263144093311485806635401711696304305431830784408619225746871904343971929757673488488671148904239093755459450304017946653680852329242814769817154522117602345494578837617665028728082435860773605919004253151168771942356232900161246348247701240470796234404207869050612347890953172869810787251651567431850730375666655143762405981120206401736627593988993369186501280039443252295514969115189478190167142808903338757138198081538307954333446220630015280142877732847554675392172082570446359404767272030525391407796936936162011101117001643314944144469695108599259759251103595467455459432883054364816904140192256174590156178537327968650001545773665202977438511850296695163693735939258321084759678113362309739027849637410456097459437233421396584099919266189493466870201345534345151050458493442201331692294689240970205619741687534222369275482412378216890376380901797771244430999471984934440059488415041718593768772923373084727541382199455916590628022904735709956870122750624076884365291143025014195031831141159762027331836266759014546089402512564983081256697970755030983977096392880037867050861778159888764958293512163319329208167948988022262223618138526718343334091879076171063753799808190880529489944737429580610713519844769170244816863549949042928883027458808640853706037567993925077117466459634434487014395185392248615191550011984999111040612204876616238706733381196614544871391629062531573152362105256393348133738500055809811638118950713881251528541502753155034174715928590247148191968476755842381526716119088853572828876053179793940367107531533574327191082425951248241216439629114724457826218501368760507343419413593796028880874400478773350911243730588788522423391987350975027562413349131306969584644944992837057838440856610171582433812226567853147140492596246206384173866616218548120753769329714082680220376939999585149327116306573023019876117651876479527170751653645725195505727815616683779368895145049778062393060382310227032203967029000306887745128011515395536675616409945914320611884963016011843527547065892327667038136477609941980314457538654604302988503007149940066497417493505605728645993374086013603996873665504912243916405457971222919837660183611566433285829329060705993638203448152352593302314419233739431195293078937160824782616721434383728722530240084251623604952257790452951594792376714645669887380931082177014197558705709602305716242000975988686668323733628375774186698985414677030712964823286232796854926962739565590459435941645538583861700544807457278420328138876438635523878021989010113118068303753682259485601897879159640678725397520252051719274919277107010735571129662965173710180983171463455614729419179859292107807252255271028737144334182364190449935775764813339247366276050916891621194721987293740531981184136947132992725702861084940559304336199855762929413261352935750862559814113312537561407551689154384663662348050737872977391891055840449263640128236866699884509314194020552034922421066464120692694101531916270887236880141972877775026595091179167627999424801205097827155403191095402076722816409593571793137339287086802897363634703227409265048097741000707740114334739949498006539503604993400296767228211185396544398887554296829065178099386546684236730473337892882857217706811611905092360826292688982208780242519135967804812775940754143287482190017991071544389253186340931102050806387203194320269527758776158486867525278715093855270641439435067132507997880208158847729326587395183594702711578476877185318775356490176919839876976456099912796356205559170567461035831098462363822063584957761727741616580664791620442079495613544456843331704613201869822259322826138985633074987324943110074560538027179718691403328151612865138531782591207608671209789575853933474988192017755770733165950241913119314102178271428376000597394959726124874578597466955130687164520836943726030593374539407801422348005982287737887641200053216011348058033492321204246771749424601860309149206865718871270289991718257125322982956323496074663593428196766865506531250731199112540377845377053676667492196852859456309871901307590653171633660562083422976845964562465406789195160714346393129731219488558325626966154995816601974036123488769062899396644256420083932084495506290512004258521202101895087611219900338867692251959298833975386673998208479247744497638712609780788968851512452447507743017765634526708229375053463921317259595596129903719866419736355793940083000750730336827777881593990535255377136696184280288423253696444204373050522505206480668248637759248264086954039838068484148647463881488562543323344101671037735913444153336745540335507167143846919758407388606668916521494089135890136147145893128343208657491966872033949548501583800727779878038516251355006227336567818018924715499862761480917716338473874143878044332283045634722688252910538762363546899195669734066856467247460547199550667750338019266103329883875046948085752286372801826963781797214489026597245325785946275923455641588449948025669454392059810680423988909826625676057440286997375724135280949169516105497047060953610974015871750965094425534829540270177896127147873972717095309931417198505621155663185622780306192564454632386540782064325270241884138024237886363328698583207182806695547793523682557335243713429874761916617121615762755839963471705298215966497048151030981484754895971748994598246129530837196182420724883904793431562769460670205098487806045755356464774808034136845330156151652963365282255246745604395360959472006608691612152933747210630563952482378008222514098038993349906091457704638194056067636857828627453245179329783749437581311398721973582748474382193693200260585161657367782720102686766907868227502631321271095070059295522477547123896757067721508720510767370601318975257847986793871783218429894241923942753095327472226953421863775904518531080647608088296705312940312938205210166611625914264935483573683433221915333186343569341950821469929214041532771380324741269483502296792575966861320483240948620322631031236101698975867850771024187695466911371436326739674150891284419489348031728784065820533747274240956992177404751420799834288591702281675013976850574651916126784441919512755157400658397743348647411394929943881473864786100649612462632431477000357300524280870097957183108818686372075891646919591768844310050146273677230814373374964593043428955167637462003882510815689213948138921817171506096548782741379064405349607701773466310943086785888343484578214530425337512180475612909703549895026954089212330585463151879448056736556622465702829511203573553662470361021862177305617819338182589652528055682478935805700830464848000678991874478484547154885987762701396463187092651799338147028621017135769272062954196231018507387353144738304865282914345431998803406928524521628736169487923968987396915720513245141925944070444891305140714312436081840934359940409819346054175403595191340362164618286014850350050468896640727467206428539512363296608654017674532724856848261838457995471426475671792800121652169040229577326477545445250618342207168155472633795266423657564215186434913176010519689655263037337097746559919625572773597398347974386491318816084925812946489301192590687922447712323291875218518603797973684891022180922565911782310613621426361288509900128451486650866406491581570285192539331785826153671585478532055414007906861485556576487433829062722550464398725294919477491402029672059543933115982851955934190692443346678016411008305684452395339849189196768668064392090885874345902979352078311557615186396794624542999710297975542653754650441892454936236342670012681585233136013651821706663723630580849923067703838118031001555050897612527084641101397948269297409383650727002641891038766514996043163856024713131583152433649196712409892455985541172894745170018473925336032494607165468392934766260334492194518089573601884164951108319064432313525531368667853496893334222199817232401228868812321558480841936895049889201808703610835934977460007251556881226392429503840425901612664089222206319839953922693934428516592643690683344709132975325041041305206954032907671679165144494024165169599755992508634611835014626296550816393189229167610821756021976627049928205609853379567927893588089805375929774511287420504145750085179798824190030594072231049445774950844646140161854382771592250265008259120421585956392508584975933775003687296517950766990285157127360629183046451790937873766217900814288501638068924178727348297281376583180327976918161504224033168429708961904205673910317172859561618275911909998322220381698805287637158189807328091177579387584071689693091801599256924607624798086418632977081376777966024933359895876808135953662766215299130036236872523162921606986497999304527034466102530639066406429710281231692431137214884956198839232417580115276444125703517349773604229964491049252528757076376096087716393629017128475895863015102674537841642984125110400612920796933776548508346980036875513495217014183465125922432267470638064917200557084802574029885857312429546020335623022315671182264138915016539568659824808673710621356928766413491666900757020795676998411780689367148348665178998026033466447272930464376882130312324581973892320504876124984497881702399842342044780386158648576464940501231507337891781932366953139469953154911062681186216237243750059487804788905553599498452069754556140170540007432533735989620917936822028408645501737825593577213912769259232169074448001076830889197209586141759845836511868097366088767772452712963798383098594842791339874264020588397294699732031108956823411465924298871374842909316193958965142330537062699624529705816576323144881338672644830782545130591182101374716387638155541142294175527721463687477970169920320405720601025135924337959729418580675862613731822742151931630976323961870441556075956134706663110038472984570888723820786231111011984555318218194706521567314036157566788088115480747654158577565143807009679062443379855989228298766946312834727619931843332775670818808639110593463768000625027613251021656792265160841591169189412238252614893773413192529166161791885658114576624145355541208227056609115762978658503181173863871462923803560318137523579780105508636546517795853165855249252663946677635685110357640803603857909947820633005049987806213769162601874276833398594897316116909202656283565080453026962211739817075084920564127012390956554120698597271078198316256701907279709710241999412722841745338728887968896321609807713082906397717907129851642965175528352647671538421625050368764864541237257560123252523831679317445793963990903336789510119239778731518714466463084767857015241762651333785773058829757552206673961361558821808549152995657197523323553941757572789242671183029969597373295357528538723013249722480453467893316819134515879632006941388251191059678325612534193113968816549581997682764210894256189911553865394470345071993583141823663149396343832204551494757189002393005831773791621519651026306105411824779589320712274975688749691424426067150965413296829913074991536552308595840955202001713362038544085600986582332343541337705751518947078853946582937339329551553237335458003772921365560988447636482477517464518435468069032073345375993388501596553149508446423509548805362566983290747285033123564061123976642170106104518968430220104981250064036659321470370404107244960040648201196359466491534303363738669581807309241444276955822242000600772399775182745876838979798947193451179550767833386356720808365605108747608618676195859541492647126316335267419161712007884739266015440204253511849365187070750579856941849474117444360668434312294466845033238570234762271923962898928028786462299577749374393723930087817270708357624662781027117344717800706060335643745087516989214158059883727301506293209873370345656570630344177361617866147406318421182201231396676083203225571895628866150037468891764657454778204611475206230804251978928211696753540634176198152289513792354083483766228232948611891296124524306031535062958786552916185928166545230226209878582813613932753663075230745666840819729802517542543018549009367347522554929205877793796322135620350421552213038422729454709716476233157746577584422417304690653703167344403102696924519969253793821210391893124608705779200005178224254067933991171968274457810334814026758703064577913028268489939296229813498440202209307429828099393658169237532175918109195448012095167006290089927187972263534215669374361961830665084085705267036041503092354103790428231289031111434841965085234101509772888413244991942643394159887310074827829624068957052177643489478851474650998174580190713009530528885534834335589209691140032292985447982783487979668357646255764941153927805784180912597529980213225546528681638571289762181237976356891457569203787461467830778166429882506175742811057471515578162294351620083945474895520520790256507283102019062751055859882595279958107557324813987813416183517178275524879664434454835410016089109902964047290508671722061542974835479946138646136697585866308595194211073850533275459509223713281231276180460752749389437066963671829329132956051948860986007908191635007406548676181015494849730952399683024261237251975858726873091146048705298089458653353129825746423635239709250510817642090774659446724556634004259837040566832832551656055450208568652835433493280977477319818690229102308665941164651911483055067313319809198766987907013764779044412813605838437768053911132642411321111282951151413863502680697673304641806478461772964187426101041911703232532223133903489444798019117871075354502289798201050838017108529255994958078494778076164006656807573938538367528045027423338754751939742418853339896624398636903476318436245966022263427882709120980332529669409498242348406130349760592151764286612667548856974559719371432711110859587618861382322494694589048523850621826310327815636081185041471368125793726323296911341522279300980353395158355398798386933853608618071056930272544069702541693858940220780127204070685131619613851078597551049745382764357972180203865358605258984531596325163934905816155453309546664150954754414778296342134732396158579615493579880480682262166122658412732355475036807908860038055686631017478164795260441785898742229748124047752696838218317512020231782610367377308601658438430091928360929673676612442331988102463761127174916107627746276090629858395702889422182200811553976518536137769086103243275521192716764065466214137271568161800179530598515538793145265418119983088011104836509711377635992461569383976421009423069888043025590306299211970172318682965703832784212256142739064330527556914967122922390189865354139103526871755255918029547245763451541372750192841304177933369208432831821794219366137581748138449567866844853972858338357925218368286756585999816721153591837088229914450029939443292496651437494337288565032909626159023039717795198871063889082927934398775825559274001463864518546179511092150686254485886647834805944914144936480260975155082270727223423562172226865096645533854013779785581710854479173676633533853763054094575445549134908701729490238156201533296996838303139836711139258703708989484703284741577111931117049251985596738207973844280892087231151215921131740728914488865332367299502424207090599888446806559335045593516837935084356655126044300352788782801507113820663635168236593412789439838500542039378178440123703590425676561683048871497588980722418856209910031532580101688293553672043245103640034411153695278310241343234028498065779565659682378420972421959384784680963038074999583601192620454669684634347730584689320944180317956564979325802062387423199445598218863612389310623378671071598295578327665395065946882430276163138847352590520833387650968613563121069167814604091909015329849275227308831712857968264045974539672094358184772400984998317097950393244811913389742542805221244375414281156096613440258504270135443199576219222558260924324076171926361748396757948596472305349701216210497432430170109549515159862840514355172076302279538520232416121078809329441566329511778368224444331142660063454759166746149628624614675304745817058046318600715479897388260605854521495376021775940048228261593761070451867102432302463913885964066680479105844003326907973857990502616812382404408261159696531163872025053424820404842473144062511736339556342112783838812568347025684884849184708034567554272440181598950787190764736948012439126734473670804553367964831554188855942586514545946338600566640952528171585439555467952709610440371509276284406760887134840139993615478915120301491816375034494527232782619855150221984713198626380322115816812728231688289609899203469169882315996639762600378189751237580904661177750433424222563212729249697211791041067584298416127132947516346309259737743073030365307523913747120312088794071067592601626859461828751276990932923899308548038768345033359479944905726502416677799007523925222757626260574443959293136863350164586365257413661422546495118715905132206779247504566869513358074860671016457338255516135541752723464548543827698795865798054120900369001266017813978755828869686376254528790265513335896869255444682371411872374381955519365679216861156782067325848279933022635997164016244694060340078747750219715198925725972573211417608201172933678408889155007603814507203955171605571165594125252624258158244773475933963149950951060353270943350537348065758095234719560822914858350635053774675973050736500723569902920386688961690851146055177449612146629191340695278057561082480630615748187653173140515279644863654073316252233194328762029759997787179691107343939161556954704388080581142384190768532826037974598108663023772934048078803725046591000636450637731231901011092517135162863576258127593632222378405871277401364588838162996575620101374634752382066536429125711160008216761248907978279068750843269830142871543517255070152235858045647006442284897897063410519843283059228395242133210073418526526412973681578122677713292751259519699647667664038936011800150674567545154228314767065660121068404273806542899688569712519483446401014043264796298236298969090816046836059968556758766109523816592758741943967118230948631114710780271113259217791534566532052584852307825865327357019754755129419121032328905989594915067344418477969932761703241724957126887186908998196715772538764858031493319326462448399059846254180501761852215089596118415008021064108631452048959320827683330168230190142963881785554887977286654313893833039229313123259115138938939305478484603065399931732607046819266322769442515916642518376676550189022249026418482171410552076985307384768565182166045804327767062617115675950450487225121598075763872516540299503820272296532180310803352074295814365916040428468590984349766221740539328936577215644443007531699714350292294236472951818639895384248962116809948824728764002734403244365473254211875553079006836925056200148965744612845687422159946352250678508096148486839752789443109274701268513889641135174470891790440414446349195256071835951115201908203516603918809070778816165824575298476525905971557003624998628692608428576007753212890094846951122186664339623937528548224857357465080733003718497348466179720465940276361407174575400687325299624494187658313519197782978738721415307727544438676110111176957831474497492136018603398458543450847149358509434568034431923081107536736084276433478785863251277752681885424258870344710539814991433845086859788427192937901869450593168069145517271712426089126430658549909844185368396879278679837548063089682454100167702871866063664837226100800266683818588614835915938686825734916381354463460651715874694596770685218868255831356074273879139103252186143601401777050750450309235294897334012153239044953640095114782982276553055210044740222392477421138312583342914833141776645623227881959648291943746500925413091700672437414990379681301561236484113214847760656916945111929681839320530779880626239237327491475561323470228292815166888646171914619225000817755165212861538101247262353881652611507252192324895038511483841556284661499137483967639403782606029329682595503173579432576995723632336351067285645861121406063361324882817253891397572114190610745188699258873501370052216225772347391818912378642952975553154039709202085512216014437407986725088932456845532027211466177555388017124535106099828761108891391983336355451236874387249313591243507567861612575047709575398680342160090791950805199584926167756652804386767261602956559440663659104397396527308314607952691424527364044797140194350023594610632766878699640141466979021837645446757345230937735916635389233006724700274286702077922434227898164909519282229321404173966435997326592356742195008986063995190218108313600221417388118145657792973936053894617070361175943919072626412891338214681896240978093322527707585994971842828947365804235969586025534265878604313097606455854114740191323492099180794470025858439834677528932994558662956728628020523394001721952396748565378292999232173143994075680056817097295685132091383731373892263558623162363061949429820936997743016718739147516135611687591735167016534701748088989481917298514000099934675259711239583454958296202046251120471268970028431196096039512690100291882958004594485886031258603603863941798388870951791672289536539542354974367452909124437710120619124972478853029881280192781303723208478917677841986508102685915526006719004585874603784533047112712490247619867241174224847405774598828317685700064090585672057393407073666410398431902636871843408917373156504502472905955242499415818554121348900153389973940152670746626257127333283996707433989934710277756689491511392500716125899713220190162754436356607528681349264342617528700298884770593667933851251830910404712611424417162631580573014864370381891215683128734170329201141721409172339827196834128923117127798362733036676851808669742431978174679696600023977769240963409626740200010338856285142283882980533056301396253326718530104611538955225304596644030892099482924795822756841583823402501226100641832100973738322094590772390899850274753021805006632489922453959693081594453914039851951454182960822109914520085157122665837281547207702388739898272928057426396996063831682359099916009694566414188699243761753290520019252303802749121189360953517914425926867162365972624750716592628033768286328374007425721805133703601313336018265530353204018157217773110210763516338041265261642090803086283132108745988158505562992718827944023394681986996560699872140183654421585097469405724865007444919145344668435072329513765816139792299734663404663933179718146559287701131139136738780909576727635310097289543474646855345431132593842841897412310767334161249424764163963249902389337705168023394125396441089604094929058132093027064179703157409491306261123199723985708184890274106975893968648552058521859822928458432145563235838168029380606062214355366912541994317082390521633681421481046505129441098391734954169822754365933543355274075067670706746484601841383769771661527462510803147502227684910233284432424642269069357636644607357667819105332134192330015187015016489938173374293843995208260426526557948923467133972534722504588749990669260348105965262300367783284476473748419020429136748259162568114605755802470275512471294194282364570642558068681264389429908282910162773384900136661299539406895020751416048511914633356018408373804495013585927116280926746029034521006536276452228252667025314626062016250758675220317182936320814526349635750771269008721828469530536267614996852694078342491373683392691106357278971000779932160270985842007116257403157191392152978922215501590867409448113836659069059242986186693337346915134217258502503852971451344600975658711131015537719208076706378667805716851914270194731516912586262455290728814260969691167297442741522373129138562474352659355335959543441129279275669605474676610646913108316195892076559139384015789705299714147396794496807615377217916677630748282232680963942355276333866407899694201210411337935211319831572537786174276257627108087874925994489907474427977897142807969425171314990637229214702303101671468442326312654378352245215594114361035904479554057640197706000021938829143917847713462377269077150875271587888760531259552240158111635892733934744440790607842989210631700196541510991330439450484887076644979002202177440329358048497801086355582387892507629409233303875760121367672605681001382695359185862011372945792001387371772130329888550017043228796341757114190605478682775550079487061599702536816111380467671472556922281250491588724459004770154342477237935009546161840515875244812280624603149162150792894534210351864148123516035068526785857628917204751495784222201240519014259054889513829964676615403337361917886740003872792774497604979537083506553510607673580387688162387574246989501630855871080444527879854445478292039408841332293144547533178736206601849106955036374874171544264890906867132515802819450446010219782727025228973122039248933503398589641556869561538431158076674201921231076043532519279846917669874363980945074339200710320701949057415350163033861520502523179828694028727428335943968487347958332694385448560419912507328278941924781405472524295482010763144337728424485982014710482522820041457909328219557788748318285273301011818177017698233141104712176510440089745539300869109991860333813480547157013629330038574265993997025498520733831748254480580641649613182939965975487803618308748584987335152178242836767260745521461866302279776433592030019147113898736595645406028819156465858816724459094939684667363661429198484468696516730828668670203372741044090588325877505013991303735915570985773892171330020864928905589928168666042003966385118709195288545255680821492253073079683741822854781168220782370895082216049079644311895109165885618791072057936662979432791011252661202832006029768373764240644917350239898625738853468021637566481129263445705083188190752321043985780607543177841712955101155079843478512931449295584575128650178864948714755428280331125255675821794300728704838937886709964648488882198575260965971825322108074547092235063840751503806821443981778690042422412095278091835645490914938611574563396175733695799628606702442282421505589491628764318929826269495972708363181248064183353785164329143908443269701716762713368385033959155716770659989208672950644368548836488225830604337451095470894122848498093498963386438302977284553435578136666910567994258022949493929161554285807301738288588051650905893705203469276891805367175985677750142551561737918616164423287325057944999080947713581633434395134799676057493477978475287582166888407851489120197254367263783229770106677133496027630527413543363579822858886184412791898942182137950024366634421633868107962075401693132388284156917550739487131369552190864077911416672742689772289931479126547691018190465758983630957559306962033688966709759002042643855929468966685225601772253762720377332267362703354055935789713990956647204685659948519993383140791968021013621888981862596505292770236492014516231841145976812138301685238604522887629818294885260871320039133268821218386123003899312612287246920753127275098889712562565701122984195585081333670483581678764496242652678052017478512626754735635801971410393579856007223999839842985410837405297148829930910064728558543081697737575524159928629441497268326548720395880676604188375333900271530846158554006138956959498971459912503214447051101492523818099655563234298826064559052752132368007463332646104405198278216674472949833308023268356346618764793049023159287585872656681570386695748836952645466540246618817946960552823098707530772001996212119150977698800863553861728635657308950916749946989262357038177697595761853161756374174782866882063780598166105248885616577456339185443503272988315869582253316719954614783720564098930222401454442230237215797106187628556691779227966635613835121774228571766436950366448433138259419798396520926860426239639101723861795009894537374179545842163158049587071767020694436905446487271093198580875469440765344572450533160594762305923150343990846199130441809796940601371607513153185296760466189161457331865551102233700228760035945332182911058021682293192272274964375027434979402720112100734454909024967865958335985350273784687441537255786832520443591903502962283257964336027513712152052881958087944505319286799644582620793858126250075113294213523710529695255008090079619666111663295179281987892037350269570390523593474384898328068266859772334798022320150332626105010335069939821712543115655142279194643287683856319120777290233470590318138004553107482514085957254294020782910580945395163046860973444489676457967052667281641880482172661783360761083983727066182831317411964473489095655105608048704653903745579513511531184036741283822979755397679670173625909763607644731517149877109780877896113970755610241147879013870733280028769501149959756928719693822942701251393545076696514000431534066574562212225150159601448843702075626301226763189360725350508034499101895559041416947132108451546980750403630067168774259274423686196968620484235551485533079321382355501752174344497301492038493442578533360587529907099842088946441359920043191037232129269179678461599563974138524481748545684481951985390725805781753310211544533908341363466172565843130267731815764584743432187685321425749181617017297808086860206895840444749855110735484560389508691960562956548101606163435411366490609304187847971922906166544183126659217590848588411038560918915670502402673927651603144107834326492685624114721073003131019732874707339369685539098734179556159411708672798300296642993374764407392598663225724243397636166117158858493778153893207508557263898566531355495334241531390014713582994360312316852601740307797437058885602578288291938125198391035300034048516819726354599421309979731132993398752568573921359547218170932906264104261729843662724456852045317141686680909917563551853538126179442857459225174389994142887043443964459681890652467006844698146144719346952260953749719335112997667276578866290453183166316727530999421655796098524088327886658905603761438651275234077541093871781862288992663489747632659070961763437466449537007753876502029074839620274217627364800992371681428171197313056312898858730109245242553046038638838987975210373991868018569712279250840729389826363072660990807549610384181240057766514475183134987078011932529338819742590160016653141322073782246212411452736208600097796604691526891285222797638814483449544549129087987744234496727977030693139749650725961296910686638561229240768261765577134741726966478777697904563191455872845710315552398485721200757890133213709829309780248255958070734739330345959003039652152342067572761615174519944329358932510435419760023642152496871641058190375600584160618736096918798972618136121513473767707007600663791035395103221580414794251721189460014371893423347543829408576599375735404072339907937073512418312546696929413636254202352554281155309009036020418738675472940955590903520636340093891699277554103373919444623687817649740241867510624252544065443210344672920039938982805385938780158021118173135022182335562819588719294712892876002336372451006843860608708478189872260905844455177999123069467415513583554890948209672756618804259722036206822843944605546061382952347343637989056412490249471110812903117832718384819858949646164956614994028354372478880910722708763897581341408037573743362081631731430796872819895022410111159850704330895380670684333663566990463497535189120677473027257532446176615807878870205178960871180538373928269180101021342906964091792585394000837548806398909444353295398555387198486246394492413394017455078931559564053046736099058042692857436686456235317578603985319974977888387212203502164568930360138455734822209538826045737823397554072166458329976425465382716404126014157515866100062916052311891081310326529431985406376471238656959705691696341635461856193029568003897237765866978355753965135464041340315956976914364198037670639084312937451879076448797617461118505411466531355907012990558542678029324643344379550273049247961410963488123268308160389464827276183079937131580185207912306937606409559524215019310557776023907458278314472522044693741298950698600198604239545348663562875488073721202770197824144565618394252365625697755382057528431578106730806697589030861472714651050048108843897300156835220718855084177542045620016214244454659486305371038629348967356025295025145707836460346546234628873327535520916082200263775606693588826832522217855854564004865476022441929075610877887423363469916476660885163023856871356345703309311149572506256846985307182990892527493741582872915748804653590528498602105320781142117790838461731166600021095921572083314750965430685037205684762746421600391089043471595564728627544636872403461399633912401457705611788405588190130513783935107510378886683524015274517320178443836819004411052224879442211121260341451791198408709128832659353031269926174814426248248155918347823060574788016986522941193227541335222775189212576190603019134055837358730384742001216582243859742851320202988886081552085373135667510892059003613067403143274963881207116384118225770928361894687872535493126242674282927556076323428141637294874232745696693745791817253218295153617851616606525705364582494990402766582479265189530641217333192195737084371905667273824934830317184988784646598066868836253413216080790287077886733902632120473587972771180692666838911743281481451047215321928724813326393977852057388504003132441263702339993558523451065152346953190937440815402751587408491914415753950006487335707450075776933528060312856778180048487267956810677688631831391703878427144024196238580584780031950723558025290810795485252541748827658758669469932821213139405351962667608525802424532370459580882032618862413966225063182593867447066061616862666743835438313407311935886227936912988898818185037869800103647930292084436629347642032864310253443015128855049185391745313297751248103319986679952232519714825717437623368749586776318834779423751547588517140329567338490590151163750338376888124924877638309211249281937566201231906937959209732792106442234457029546808042750797264678619756944816293004024294900521119626812988457206097751022741208270108529206933096312357863689296275811588783772353843295795840102269010694417182975947044829666516601657720409991050877649598889113012194293058364190804866658920663781106946246269759494161434983549510939283881728430354282321854266952898985360735851031346448769496273632588042174223908072325117437870246381608196406665520223936549963932719482149090923130206686934208790591503615345469644517927820058286079165113526340828406482922081888055372464699934500967067187513976467433423651215475421921463369580853796342521616684565500167486414991108736484228368642537640548900834900575889982502879772593692932656847716119106214617517235284589526845099805180215311424473113110473247689692476555607011621373836894743981992044242737080316315683776152639078359122170785068249041224537285415222856705154092992674757962820099388014436100958656376595618720525340570665259195307196371027629099038164368975660059348187232155099099987529789752518447111495684600283349193195270249091525555649906819854930493107384257525665635358160128279229395178451622368359021265210048180527208545362870768717779988332296361207446845549331459874430573188484161326824647182309720130929978084273211583873626806968359950588877274735154625429952302449473340546022830881336046078039976445384743073778024800272281199890919347190049063115853908866153053418033539835038397224757532424040016384170375481231329082195510914512637393149002344331134369871054494712863097160238351554085651024460457482369341632707476901507026276284877077105601129486351486723992724467408769943198088386159927986000507193786925654728792420462516041326723857724410231869301306274864685821996906035805310122403782328191308230911505997481456263571628517254413677830587552865130091539882049908106205667836553450539411906543546639064287644171502171923845596748115016357945712578138156513106897693993672117864700648386808977605998355972913078518526961687442511913508386818952092646979749094728687171598256194639885073753956957740301828296367915877483733673255929097448462152068725420536667519945650108184014738814444520475328657150358291810326713405240161332270899044713568639449101996591427258369255670759989949474053631018231263375867551960026616453906399153246806907005780130567218816984899854756840005021904887081821785104197785000283824548326263702204797117344855966976205580857195888512708082120710308058196072406377471756422204681327943989600051447165460955205369924851704997072716635088631000119336667976869708261567755949949329695975733390411937616571024266413211052246709077835674046720518452709832860834692152923667024986709866287500436973865710799089891567727899088573039606979091405453023210477095645811863564182761480491416243574747411489133241325513729706002552698172196323391571812653356434907853591736913290424514284323983751765509191804367887585630168078021165414544404850598878975863051153169007233656852409238752464243419583115227161880278841173137138799756424788324327997430616851741389035901801859629980002024482868180516445142074649953714405419237586895939446361154199644728657268311497363689152258344227572869049645127312956831787411531201147105965785660913211702501413053650863143317573052496008422093708250883251924974351696397515761888429466854433357240485070325527850031861348976538604169682170388654665909978973636821788364417200823497341843734787984268478673515224000158922214980563338348693088084170140223032314545349731327961368248201939350159790669113645304819407351870845728907595873838544866768964113600658906849764971403242696611215070623739275977373138529788637919780443345224672762163644310840878894037774499417396211775122133013248411151720024483571243005050757978436985651439315305264868615738609459447622971380893893067983687504697863189006221035208296770243739785487668337861290849894140307798938860591456966870703425683232090452080443479630424975770348642935262420145798924979913126596396566640681449735008899726286059873221434762363806052101473490324869523753599091885667655975463211294500580467801993627150961970566286450025667526975049564826862570857391169248631127403134577266831212394956192477527246812071571442263144194961843568390786568574406101008723834016706074155140912537318835895785882911390025588916394923495847942631455755007050660624637818556853213738731244792086111901488582267703363889455952329035496636800623232998898121526673957127010278662734500284011231011043022686139492889549071356256818922205072075612414028125427299332770089933076340623665864012616506788286882643835087087287550443333966536565677823802020862514543823644176654586402611739850026012033536092875212569123191234220651507102301809971821327651031224434207310055236516200976164018932980249695048010197580564625195941974488450676276479514133927854584259985082010776256646385430864734211648698939245567969682419788020308136102572407815934334546114043636280247396522936246456762132664070917203318686428071056276474632401007437335650522367420100074006508748605717227446720802965555519676330442437385684668497412118138274511608213453748893012429953456217603881489268266169019783439195399381618163669392916805912100061988214414294550575693717472144611225498431239454102409094300818218351755351630708778142893103231557286103744456237905653847056138255508487962632826469889644670165442882639673394952340984038840763497392296273495111630661441912116930823776585718539871113435281017290416040262035211676332812765921953181475446350301905299231740030221117578905956046532154065360718451441034877348226920443347073184369615976062869290891794353733230510893508530314417216293638407356761783395562364611453741940290209509091567361219648140359487655620497410957953678655879207951446679654950410142313303570362950398248474228255877854414774616809180672437539798200557648488565360890143196876108583287077206910804063124333709876596603891615123322715644652421681370530671121503975680072242555524291796707905420652057271653287754694532416867591014489845487549139855462097426802919610721782340282382971770271269589709501685339130341931249026279911051779072771789716060535353053037244119577116655665428366622867347312312137787926384943068094944755670992199092925476874115039570278880652073099698493529677711709970758858085055666406932840214162438397566078280503205406083172003180439447845877462684223090900216934693418629650307312530285949517728974539749721703015456742129964529898590838290169447906525111617172153582711459906436460939535974666083741554337676713322676162484513648912644786911311107304799073382598164023660852561091944270629226323294531823614098460259117584211100587466051310767304749900452202220682417536647831043108558482213319780126340786982970489561341873726224064888224124268092447339004597923113032581776123254155006597692551735668604078723171851716121099349812395583089881793451027448848945255291640389744719671522906979721728257770863700446243747656473008318720687789344320504966487183128995828846208111730982756697286790997037034328102629671917237919707794251341410274692044295527075196003490189398793580805065534333291937384121029605853494706924826575250106917615328932431228278336417635478043127078180552461755142822982992692613151414775824898871967659176790451604881393849688333990310222065763799534224576730700411874648358332844505167543446612453456551524387827849020924775450532846707839431015228750437006436227947249001616762171611851139458043828235286032976245290055849311242388662351315657105682871681508824380273334944370302578171472767107222225912473883030425634373547618535238458608489907630395771578938766511318859721745494062545794152640190879067984768867955288674928155606722819967400483793784449053599885954827709329280566427863403281052774414444812128005443786690528231612296570907964265216662963156261336934289695340729506019097682848954033405552744144274819908545028940210595417972699509034596214411794889356314509252954799221803638399078472567066169643847150706918982348495432814512608122699792502348688144078687960339935143359358049126575454415241960906072365022868312282883028226251769280060357340353818147396310953509207284778955411253733568540631189069228819783479279487993733509328878575643171240212605988505277429634087987593251413918259363150423036765790546504358824686986772277357242255616108547418407572329432909954901602141432447230371865082063338503116599235216285662144902927771657606443051882375182141653403853569621242744110015131888950544453528211588526829712986524426995325575232845921912233092012181992857119562686308302713071047493396323359297569424328448295823148556982334220761565128296543079019707386900563257192592796182357395817993801996499276068325784030466852240148321434359247941943414581192059132690799092656630171526916469684989729809205758700104274296992900192090767319538085243976361530995335378171966908250605500388761822329008371521044728672662334326269206559365142793201085044456416666205224461739368938788908406283673916807299451063808134151306226785742189260162535000055403087238502745796687197388696713043716520091365182574995792529992607318305763389670594163026307842384499614248830268360774252280864581115563459537032351229158095863488472586035879143357508375031038486075813315874824799762719057848113463749468080043653222314099962054819857081761217685312515254254898257189890700517558548597303161199195941359515792001805373971879277208442449417166708543011918732795848861399888819881142016005246786151657878179930143416297287604165574579771432742707517468213564233168775605315596757009181677251298470560352994285162038436947067769065487662174467773467410822669130678358894715685777132487069417976656607821269912645481444332585985236967735226970655551097391702270393525989872461247787890935454684934216689214465069969123587774545412528757615240386936068849429142998024361393764540824973324004006178363064929724655502338582093415906244112443352573929340432700339225309459217218316185243759724235790628561188629948823142748116704194385846799214238094974031220907766062526045889175535218637054175831457297244421061984759911214152913602040856916449303461024103025237751009579882348301908693809716410320029647760561443733593413422795920031018689493420114535302469511029409901266854354553170113414633472558046994398523822145106138967555499907822668688162805376459479639122206229894143866850370315568164591008128332012784652879423404246904142093772247530464534278441197546901036891928841784560888541093498413407866507586545022256154472016135762378769854038873742278545661315019525641733740301414239357772898933586625117542811364758783857663533921974714716553076423370093484386880191561674292041895255255956813849712114834738563889223922287600394402424842113624473571395163479299582112180362151153311738458628787871287707566008208128491653498477273665256238512609797035221412420493633410788865532531538597876432918535522728416100057721542558397993413793864390604669132140671897104292028210131875389631151622141450542584446750820366271815476007376189920849631827316537675518586481379799613950859621950348891331359614650331867724244348367733845960739470805808304478117050443832841727065095095115204073730715049989034515714164955331892013400518970464993275698066356046321409861965292370032897807986232213864908599874377882056360720463529627923296526171811489843384429116604835734034934600013801303629125944377255690056567732590243959969415304600389645318624597635011115708715306256128781834657194714293915100056962535511560031859155799132032355121847287648874925211946687744108822284645772223650389339212442540913471452973473295903104676983714454446613469220978509395157825428330920370869994112694614836535566415024658590564335569293940812550328973136291015420152221412135986795672483657118698370418943452266943607680957024540870417121304020894731006881437580981529500787648234882854265809685274106548923183807362293964941022768989473852353791926668119595438231003613598370341287886758517232048670295016064711753174097818863736855986737586450562691424661617195076417617031715199020182585592254031848463888427802076331123127528852600947043194453007279353633734451852708038946124589548417869429187715336796393595674949520757985966724722188906288493380890203774734678096861388028751480786521185985831330501716960560944456292840599221513373079549937028722268192612961556353193278639982288104679800997842858255989634170740829656134223745412271690493722998297713619272319837426528978583951595243564985956057580561110859810359647045919854879887233574652308405804499974135362392831061756470172887034613875215153451160074924451740325152906960431462511124319394497010240210269037080639637920092033995973131868932671594059970687054959608131262919880965351637302890325966869698258938683725974148372837213660420949811202658267580311468443938242949684289270356772621868242954137620455876723353052907581139723035299521342870747990612243885382125618765995095156704714798120465676896064992953129941145733492566284576432183209510644058357106443520754524143296612929095688796924374190079941449595953283837369351609587944967723045037040831380094902419704679637585954565517441714766569121517826009053832052530564150642649546732251181945426723405489447874096594647706723568635606979662169268415914719905016224814193752774781475657241168583249504521616970689082579664770864319393588135748698080334415211262605955052077948743511159625528496735990669790764496438622545253121026469002227456094969616345135103888984380037276143383306105397645617677402878400353224515538064040798560320272294828970277759645001724414171394935558442701476075809588738561457596182124913259406157438697261230816669908581181501852774881916290746155671659944821286636060725720365173775848167343640152108557320788133496870137746941683462080717535757002359086745841584473582481220431890237626334022743186076461776329002326407014604923740786193454644833625479615493245878046081575292805506898918028966225568998779581819251061535404834794945779451819235999813181543606960181563512326068896690617298220647475729326643486853543833532379687823120965479989051347440391442889732062030278483298298883335845754052117219291921705444451544437263969077569219734554834361437262137010317982695180252801702731997169927900281267553284752650064381924611178949110183637640383398909875471395314870689859197681829867080066201437599396666955630849915481813389968619172559324282231779022585422029993604712672163241071985294398624623168309225060709172994782331867072457566793929967067662803770028532167102404878292125725774913364740092107029641572015407349980095203845348759529144860149410953216773586363307110556332453492235638662106922911742703745489855676698127405916345568183062932427579634207280904469187667377000624574966952425246163281714860581358440472700378109629470653640748116217786339924770165078367993202245945606860686721157612053838034399611566238326396387098615399079347186796591339972485382238741245823326286876305920168166273947182002701648652018724327820840399052318467614790206551239204257369648474588007654217255293550151598108718963671507789575232298713926860957525287208653479791506534550502198372679041056971251529188744351019810249426079612443572186189528386502043375910683087794957016260209870685038979207799884595850070916274955499165144928565644838441140216558260841216245761854810381691419230684286693892615202334048464315110456125480239725300239155140123493439671017780433611598902689189496530700503414077019523472311686497457164703817466346144427278837862263951867243944763017289133790536378009671898982989491107537199163947547763827052310227494453421212864477295667116291920091214928209351398275969271025752298951276168982505138314949072757024349406457161415947941868716478051141617394361635871430253698349125769262500713199969406045265463457398268543076614681051065147830897746453838912055847069581674047514677617413066241187442990942350126188328553441807566223898060559793397348868051937329924102087099446284939216908261187183496574448148134734083816823553554662394216466378234363300437788787203453563102568804655756488332185194000032894587885144173330974456200947238813822133795306138734688884870885964217820001316864299056280399737252361882867142519449235872517744867589186738503788596344626084445202574867768173026067088535989940428288001750162808542458455787071418026747934940842958448972088096244560317281293322620196178683876290503372062447113819025707603096975682802506067208890053288450705442783786454173522462771860723959772833186089017626888476479586981388326341994320738660669294231475474855868922878947393667243250876308790395039563252618554920430333884120563440980013126670739870966688577597295103880589819657494255095836775016850232333911572239197440213948233674313372853199503536363948346030731354421664753131172315290349611457439735272719271190011064553023221576880025533024520026938083091826282807156826672085691803203507566721590556500254273061537877282117363075677706857726806599187997633312340055811183917257387213049313675985257941660764637014369312938042191631737907050731687824958050600500681681933940512571757419042293371014792498400257930176877022646096103815094392870067900528512082518834550526745683996301215315942657307431120328570177240514399307221687299567851350641884888911411895480196855312839396873387703480555079457853358307038041823606860544584942209136610055963654605658995199058331252013560576350168076815503294865689278607513359094352004694933154874377652292752643819334604597140420281745862647142375864628667693688271385785616085766170165662070710680264715759177925905176575320065846536829536067295154290144594808023925526361567191563364347135891455807554241627429718542302748546875177237749437064050799243668485838310045222431096880033871175571236034825083507948406759517441136587543674405025738736654377997074638636313231722785735673907796811124846559876217942391082223023867991865379406137552426104297885450176566910804543634073620707611984205980539505220067968664173236747798130942222344620266535177295195544359610597497646289569594340635258611669839393112292985442804437097989955785956937453220501493751880870727100924411592906150998500546115024499899560633512847856599300630602251520758220379473595046976292103430932481514509888206630108499460743163331428045582572141095776272360886182995498949589726148104366428068497522955035193220608677904830183582573513816400515772111832502275073544881135656698255688408731589284203931155672680844068008747254777803378070489192923527738692936585711850152540334742653359310734446995855350541081044140131822424824890511361569885363043196924025810909898125056892824420133568887594362956619366507138556830108769865131287443827807302101212460449233891013021778067779672501315171863315875185389405912679518398309299135594051161514899890037414303936294122101596813366246973741739285112040454085159222474206106772658473499880292507318805956885100547685180338962847119387554578807787381754335777256626788378235137020581895838442766586909549427972748559211944535217426855553747049325595456484050848973195210406620879713800461822502640590417526780812771743575518643770693912680855949529311255830996107751534204899225653014711101878536344654939734454473319218987912664399467472133254190033543409932152048687049786532419566830659724730897556391857165243677116247036491394426144992222861397786539105214057753632424578240998025762030618327687603711437201465169898577652766171926427976691092798426895033806771505370856909583696906809049748287048333990718123632065792583091343274354579577605818802930812950305959671716299294612251255067616406867159650418293599810118516878136295571229415333967199945524281164584457863007902656773342407813030596603587932650927801849533034044248717600648744828234654072222347008101014168507158705020597921272765551978554865185623590252539824312341378109224578832804392387268201453874599884545916860900262872640610530248014519958257426641298788913330804983835948004517817696842744852784432005946019693987999398733744869458972142166019209210764629533670891218661952170982554786183456538244695394104876363251078800712625591571619251135323985909720747673045223085281160508594293339622422823617468306307733664058724761914346279106628061243624210354985692445085656576494368492799168630019256827604718866544596121257615976117010623050780619332414548830613812965939826103746182662798950974959936265404351827987979961081759335474487660546484559954876153210385172194528589946297275932373914866346809630705231537161734598389244890337992795743552829016686627199549621577414579458890566831369316879300341214105259336590568101659516596979987430288513882820708783611938161854580452251205157883884545975400904454566037711089520406871837617779564219109840719670337072553632608730466772344759704077098638336482384370492454915246377309542208936083926483146139079770163684036223582505219650353066048614650045657318354010384260701342637691728990970134734305044057826141131729803364922246181537164620489938839837896603804652706775196995062182726750276096655427416209426254451864025391455037900819827063537156966778303003595640578577754411422020520369700945448600546806415337636504359854629402718874970871273166906032189555030127189192089325011103342409949712758218100441424766435752294637663024115910908320302137932975211468931217313816555763848842878412080621073093615543606953688390533137052610121049338681001542842752489465850493305633774496038846039786528664461494961786277226796458366321484152116994357899607872441198640354937609942881695301934341477594126785348626241782148151633784410792570787959600810892688730663373181001476645983106657327026689854932836659453518201568101144694186639027220816800922743856495902270288559738011290164832681854718589851248196053804000603480897292095201756441596301773004667666692514226287462532225342138573408998661543842768203246073882133452907255046346620374897970639418490181163728503438302027890078288447726183055660357956563707793901742731366606281030663099426727386100975428057898743038706531313049542151020235607728604157779015506944365085070219469466913442646258672864832155460779331174868207479198826067222016559573323667000316365005361255507561642870266588559395958419450678133420107938490512632126214562933010635248976179373930153136937296962956531862968975622137701356807459029025703951531859380176241621789306428925550398283985919981026605264596332728403564664376168311420947455525089254406195834132140134147438322619457608578204568110439586543515046462171622692918229847057783232582650155151192797244115582144179127415441982894432946285331511837873366728618416202285662042484938479291363392781077324132797432177788210254438227337351004473522450452216472600156078647930438784404580505066942165445089883960942028869014080551006936200679173580752061141826658386415923361659842958047211516957021210660150455589870975464445670928846711002548310546851042673484468355508410826497906072384140933799533767443180517021808199337981678149051506872562788826886451017198756188460735083234198582482321060150901691891769451130442005708552833120157783494685790081354810427456441204873206894577239911681970075510996024492311747805522447373116427631763112833235609993950520279324712029628211219451323528023206842975673358835997127543089260959362890336516351492114761261167161944182126223226521009993528580408326365120107186645218142563876192498599429379846657956499273607530347530324589477962188991648226718205981053185274009526545111419811531260521636330419617445898282078825479580009548962973452358221430818777899058272064230466769346220960157367283910169755324078638703848046851656812977367025861212223690806428524558542415193686835229465241308842634164777939727183656208076834445659776883291279403774723968394537826340300617682003710136894547821552126007455412642243312352426259696639386523577875317083059554470535809275370048117452618459896609840160833064612050260302906684451828954169675493886942866551356539645537520849082072509142221673908359055045553117789168640440939593524209443535750348583496874604446044887253907128775897394083728045806660007594384003882495224573790129811234894362078584857022367149286965591644945368728627214384660647937291514293217392852761047521450355441769820228914162181287746296668430566610107874217070076752342786484455236164176234051970746639466642082253067090535239078002184581800320373063770398897481431891186999474386368087136028327882913057339376932379999953179965706776932024417870387854923288631009274110543677613603869195531679800234668056495085653146119127092651857653422772642344109009437016771282086212232104658170756974539589199169196305390404338435365685259965271631974341902073136852188310757981888178828066382182488094696858266486407076064746693159111441661903974176981332562011702064207943769268995660732429081640781776783340459198956319029576072972450056307822774127088557013614791754214546521083645896212818809504929810721917231252508130174291902547503060079321646114295952380366660945380732454466487116340037459928571957666546648533830571014209846113210562097936291549541773534407385898650474557568825732058727943634851465343088309708612861542404205693056538379797722150767368544205194749280513220120689062188025431392779898274787971854397247382376287121009438949146425508220276370408295971458606086385100770497792830150666071081062046332447545298989629083570920518698284312019422923922142902220475922101295238693578476923929606462046998133814056026289179353605863356517641701275998554703466115337231813339243940753851801954712062840508074519060593342887541134822297462198652678301078130441158214331956399174786636409648739639741292155949227811166847964552137128543190896269298659572957741205433098818281248575060174346506714461621655979111378698465658839485706578414338037914326574432969626400826207446945945335414550069186810439313245517201032547106908438490394503198201414453923251116686934534789470723249663918957017461808656176462143848723807542546749649949358383975632237919020089655965825186501232251208686417542973088405763421378270164379221706851458148624566001801400569204665871394467569991532422193768608784420914989932887103235111625625699380638463923165641286219176851304844237784368265921746946522003354525804137568572911209559705866031492512683367327223517249789856237316652623808037102537556618162129184523212255160572353005062073512963082438462752193111157408664807423227671000993577329054123348012356998520501837311726997852557858767960540478357517232399721197955503694026210216456756134101976460611684336437209446240463107286944454888479531162327229381995638774979686742265138533993596619537655794163910784754035746030705687791771812836785494747342565047136592921797007827603605696561781643096704745321441038292046243925746472077122956185086726766369182071530430028771645478478292737944073816512925934499365930524891914786530052326194970400163794962187964846181603341714476629601715390449035590410918388133930951541938486081346927315528074003271339169616223356477291618977050044092316291757591611997174241909118325719657344731650905000013065835962931343394412016458353909914957779777284686385173321709695545707327018385709535275347494112082071725596178011291836967862495347543245867066076642053850544123646469808068236660005502544655480347411571446852555205449689661148047436508750193715617409828772551842067582401779423160235759005128461178460238202930499166789758413031868919633193099638215336274008644193780625738425297477488840071148067591087778534139434400216980993512859489121852624476967180763771245423950410444035024950601842434261041165467148037961069362178382739589977286459574593740084276635887537963967795549646413917716731006703520197303038105036342341414543205099131070932659986690653961949800177825817169331951654198040232850650932189536457700006210302915528609055419208993968751089196048863176205342008929562887266482295194305697228187943476432075143515483280051229818538361292288828436281473533621984680038684914773137397806601776949525972363006326579709215953271993590575470114600672762844219968358661172773521150585699615791677227763091114616375337875504008963979563549170844875571029782067289562072415900632504413041760273530682413027526406285876278029494668496381110293561608408817195670548949559928465815502468161356280791977916873242512298571114823341811305682758700361093482312826706486019092437357698073747751944389236326888671731483961315649231283079891538893845524462099822975303771732387192304674460903056845929149076126906813085161807400086994751233513225497470893380401043457560633684661139311151500308795939927408381753845405937817704585078998195557714194542345423377201928415389476582655527447040841410944286324777718434793917940053118240128184877791443483086117729433001965449835769284824114857177535877983007924590285347398203335984323113263440154971784966079878637213814922122402181370228714056077883599995283167197103842739936628832440932969437919427340302043287060847585662504747712809801659794292146425200936160319050957230689552519476775155711775820351156629469613790864023501723721049062767418998698448717857877520105295579306060331007011398190632639443720840035440708170903389105145861668966394430581083037801407860520569932794820903463434991900365528972063220249830039706762662037005345562928244861281638988641659171568801501708734618871455636703312299188882456088467737327923230756471262295117209624370048229626644685741460034919599249754251422237825763741416685920148168411039063494242138845874802313031283037255167518250585584402548097165981461982318096782004212055449436406744413302431989918606214496482288944524195520276246833263301932185303344491181198258985107988414266331409148081202743940058950181977061664256940893727465812475289038742409275980108031159452927295079347022862941817778803479958132739333990453432910686781294250367555774540333238979758632095828348201783417790665419812260962024874128555468801904427507407113842841342293363781024692098707257380304790446421848861017243087555057729629740787214565575205283844440278099626542593429473348212318051305001600424038913898147114756404584004833122252409470601751795752337021896770797380093377801544701031255154878818962702830201273382816962935465157267281633264927968419457023255663204357418592249186662460438661127431462429866805216999608422380885599838386481116555387265474048766275327745714203743015909125414514634992450217172791476408146371381819822496979686787561629149564387436129184042460681158862933214991569127136820869378118435632947551796034793855213741556852499483110461154363586796243927822726947850902667499071607275225863891808013365277376786274299914341263303204508324095001915317357568743675979400202217768679288756818573457729055854583942730897736240079875862651433852841180720200147406038125574689377703596600277004654289927409389839041179696659943720614414477434693673792685914274010898752362196952909464802604674681930171058535041123835769967025385594460895013576833317870152431431552841037337525819937956543461624208358733768399839452466744597441885710429518786685347331651292198760674902471382206836008785721640756129210986975578874334531986194189104378396858141828231518452460036738424093517093623658072201360698504632300378115372871639230338421491534432937958563235056681706638950597497972863765701946306672910699403815073982985536258266625662733101526818858822619419445357093371113041150067532228180053834897955097218401520725225302506879098122434047555496748619503609357430440353191873040234383226965684241919791264306066999690572374935338169016749444095600798593520009688450438786300260184069640228861831873774635516242376373585268276974709265406619301525959427489557996534638951458243680727982945026866457087620072156492498769696044216879495886522102928879535045720355147125002346706738218173089733679805217960330099570221789320147626085227566619126597229336982183419632623501742885609078205298591082430112662314636650305422920427009981445395348937445046419416712499638080961932719460939188709587736180021888314089006360232998519708025751218097267648678666222068892648997844943101112631176109632814577729741591953023858206119466452499396704711868337778663359064569264728731458948351775773707973636375108454945646538714809613041541820342401780965202283277751553462800055735567038830644500661095381400161288828935668745418362656889980712341066621744733497438066184327488907809254657221860548689126173290415180533630791222517261114343939647035254505860548221052858273075572806459421595718527867989438932296518611173847489408896503367464831811769665258637094908780898226160782445227919860096599855041896007495232121915537330927885596396085976341831702492192707365041868613779862055821048646742073872865960927487371244450369426679647473784536325828507907680112419850683259096629993329533287703448634946815604774136018428139543708953882978927894830182576739980022913698426005928155909148617754725259336933359714104540362374300365249998449599719894405468203822643351009701870612435567243832020657663458292562176322035608262489029783499296787257347827161841209445501726063333225549369427697481008254889056884790286198738957695650992732925997888882002207471138182589941091153684226387284304928925434862781156483522337284924844587023834293249412803361010014350835542393902462589667089698119991696544982119104479635125889193181987044659117192947677135115183448818055924178543015662614146322247828594043278689787454117614445841652911780614144021931519463611514998625131053483672653317182503823353782505006015697586360777436014711780823679536143392520460056532615879060644780397591423421325030311757553854139552806682834370372180992739837189214589398442138638052991345880732015742866350305626907188833346153500232845084128814304172560392083885361149381729972746899559643656455043839628637677370872774662997829721160431966574272324309902976870366453779318494040371230362557344064925617895241262100996880398245114173520376227253355267646985605960699617981944553295625426884049039275238750218346648697741846060766975326065383926000787906410079321246686177035284487059820802228637095171614734199211224325663237702004113425020169114523137782534511762821482090501674713167536810446648981236590877628414534767719793776564593413405253450384479682131630659346980051605359323281019029641117569726177242326280771154213486719602395793547158926116412337389164395326468194852778897342867755052873241182243886321385117189269628858085599924452328719201783052410590097064718810469066707747195597628529741593238874605707277812229066025080379375763160863596407757370190499507812394256345822233224447955755527941987942491271241377835980510186951680948079998010430831703682078052843798085048898127950185414895816557926884787258833527052000655705064452587669304254269505856086625273408618448542863891982873049080617850301746058320071897936491902895365095797743499695818412908520539057673678158634144831495565003845231803928411782799717629485610322644860801013491469662740652577237346799177167317486538967304278939122562185160989600709680750388949766044994286356005531895937695083495152993769754787106482225474171902170281513024779023057645690110932262792964095137641699606417725495537443198906743069445288346294208507235556455667853974806697822783682384909333725608265308910844252646304281064174004639306368354144405234057068064999116171073359983152588908850234708564513931572867990670497893318997811464400747639860184879012542153988899027924201312487973387721950948721924533879014705350929240716289960740425053012726171927189235703363415016237647939298108352641897461943923298427062435560058490584408464636172860524134800285653480114093147366464298419348996162994610490834064778157115797320219238214700245896208306341088752378254530512965434425755422106160920568019215399427302289055768284127425272532419370295080787488777774707344400663000623949496143877807037493677104685262298872974084186064626198763934946494096304073474619446641985751794267508825747783862393530814118255319999307369580220463710156199645915878607581154322132092976111864736044966589641615965418296413631155692325155488192808164253698490048504672428964289869920730667931389975617765156710785336473931628395061627240991066476665549073563244819414404341244604673144025375835320638707333098337385842293305963078418773292498614188201425282273874822639638250064696264825584308549706415153934904743875585484011339202564855204118021721422699057686586566709091884280732607291886485153650244931771977176663111411856731462810116903816097614222469830991574379017638795242144534506099145796414110654731456404462611797157344839483968633460466311013969029493391306177560580282543531723822263965200199884007940131389378295578272549358472265653207707081780362480116866593941827090789213122408945558981864934479045053869090482932168639289484841918980307153637320673726193612966743601608374234117590567300361181791058975332625942232150090298727905417268652334641972734285675549011152211219563585133852734122031073669089150708243293959882430080002678936552853052556236457302129326348260933103130806592116030082738813818520041720803094444080232709861252659628360969930875741588523023792096333179759125826143351692902013032899647328308849762335834621328825327556748433573262760906442153631986743157802605188181630708247819808039121120381319313114185602854093059225079096550538467857829670574101913978543168034565499278754572745863263315335147972563442024901848337912886697017879143209341865784056509865200152357744514892047427742783598035468987564091363081908608755024564689945051727897585468052604196642280925918890070085329240532004658389240133168904637897244367310191432174124184645800132042173205311297851137275774606913262336422150761916812330143555455348852335902469738697665705310306383684063955869135964462619721448314565384333413633785385163354056954257486733403671485390241239491309142219161902195299808088062894809747017864712535030633713169139250143031818650969505680561370512543938656952645501554930834242374101435053467337417640953109547423923018045937053852635745024598266183845717228623426918455723391163781751308210218099282251631222439184021357872215733566336619197497004828209842327938956536499128245470609316518760724196197430770854576094299579388036214629172614108380599444303989339132890139096661919220786668838319754555516977817169553192518444931278826137544333758769724829781793424561576954644922652344540849391405192218889053063401490419668729574809794893843368364269700070925017228703152335183141069130091101277532803144700590612131279779605273100248023686079763813901392873769322717179411118833243004172839144112179142186596601686976408479739031660161310072712917999916426979972677503363951186910479163242804359317098815354961794613129909103680689763478424940459121069632952510310272888679448721691684908572117031606039760413421630831556172753831833452177629708268276435986164861137629516963593351293520288779091658939419873992630511868859608037683913148226436860611491011585099546438239805937115234914388333316204466371404279002058492228337426224173160511818797137196804657486390375038139953361564529020489830218988290435516683858334668749367994480633655391681616065758341501002369696152114924478607028769443868912398245596624658316344731558436808433538806440530622771125398561199422613880212748857594179200223488967816410779257242044197148827479008833599647229119866461093423759014736634494715333697692740905372892158369061009518623245577487302636435877730026295976060480650502385835863918152233122908010189249163576592123477418129475460490204296564303411431365498945643318025323127864296753702282528500876433069633366399010104030438226466497742868141052791544954672115810568981066229003244448903406534076591937451991459247802773304266570395329593588326860811799860445186900611171788378532390501982153995094457768480718869577664692949998725311395064294393446668386535819166359713093663934612428045513086700407265219983007220027143499080022650279888432333410545442536087285657015219886344566408433135489556561865155306712731495469863302505448570901814726038647351513259842573875038213311870297661073868110015746940973416556530472369915362787711451505064653370552776263216411525546810938964115925651952415310688839793376181069622067597573760530136636266351330926164711828610168126575744205945096384445989579750783506431444598108427850105937547382449816606542174438444388240924661231658122239744999810441018154691304491562116084865667241180462136769383141716744503673706688883453621982546316793744890474994434602907080053972410523833864105051451237296099728514364107799659057049197808636093749710155947839521528274705469916240204438624249277001754295200295871289132294428842510273375254154322994866877164423493260828268521319988022912372270852571460162382279111724058187253054306218774362026900342303908252475315176426115418983405332435824051144688407498390006174985186420161900410825622752594176471695171284100519652542454634125515692716320509645949092860290874841574942355005751649207530332666011279078936158253373562301833720765697722328437916307972978271079253901931891554730619170898738649512344571984207317618370803285816555178301467048132379150902455960085202841450478120307005809501696686980047092005730736624696921545521275021388716155816320842513476948843330195359893355683454185353178635079136356362205623719330372757029121321648313915119649360702072821773179137149136894036224573960955199429480848017323436344328241955556739996277506527930018341614494144132695409382506158172960265336111739703205830255645032891433508021297772835559532247345878830472982775121051108811503107489248144178838579861954286808941381527649785455682638169877172422842506046338427652509628161317194812312477589916717827535142222508647864296020122929996568252440529729420432912627628962414556614467919648622867228879445050398331975810212445380196500836714515267758825882294376837266368439417489219160308560460907317435812520339249615827084748398147680550734063891661000930905618564947718552353501234363969660606407328429894267004907474882919291232682547195333068345198341919572351329502360706938208499547215806660229545023888880135622086087418086888508193364432167728793718421837996293472480211239369763187229874823071222145125547230899150877235650692467438192149277493035064156815731093859530258048887650230645745607854469596174000033469545321745642299907488168706602131302598610849236031142590119269523756347110002645614218053550675998203066358916646015424865127256922094784157030876487074377820781847392907138534481981606972454337590907163543572119079892754666182364272050734321426773877994037088328751284843893900428500564141317987910944624501959654158419077131415438711178460618017721692592509213045618300321347795891079047132886823564475185720621262375361603331216309035573768202592385894575665923249719167413913305581742485447857577337700464740181188424475518138233829667463949232824536960361397604166797843098445668518314855163034468678012205633810816931798708130051832188616011064599107893576203206756799467241945600262723352792902489149418873614144814527933933588342072564647880923193240416322465615855810522588337448246586634134682098484847845493293196032733730847950398244310667770224466636523341820038534409060646908558953397479194350161923030503445089847987321300520429031790696560222668215693194150866089227471789807320571971284244786872719280778076858425630878320507325593772098666740122473959346686341621497727977580986927348071214161966448692136006342696954210221023114737051162721631532294948662730240047573300015389799234751016624456236390651452056701930683508721041088150512250953812808208491263151579881950070197248779893651654383678696050880025774509854437591326473257855728760933021656007034213687805110434455950319775364259289041971421990404830469098023575061912584691659740519049740189081559162139637781681257605421825229349662891003061202818662268806423547755851085250941320528216927950617863225209348779926061856844962705832723072782812659612528098230413839710317691053960670890454385304802556933050479886016755070017633525751024989095311671559067940799545465389439461312700602590491323914614683135076620789259071343778519130116256038044842267978792358454316983974323475322791089892671720737559985006935621740538487732447285373722604411387779215961825737723911537927610492913602477421780179559928835257391279054766945096248299007986772480814292926121620312468096169867716483730501837034916234721658343883941149615682386481318412136425842165461394254096184567107238173789839951044497326602844051217351981159455541643496250496716262858464558052916964146509328090445307294544019512016560673807672954998916484527680277192222878358748121229587928416666184611152262697469480255528419243196077691945856705791682193412000510616663553736780709010935487021520112323114404341161985614192774498641932129637717228933372568478739657105923165689204035483662247379031659090529318457105886249750434939956154796707397543904032119358153074354652627268297388429394680601708489106685499101954822302706571739420663319908583224529811065594075881903788898287139945838168883281583054983090671398360724321726942703927937731436555039448103964221171853071287087589687335019225020633990504926356995096347215617054116069280051317595390429014198811133206660977702137922239149224962639583724819190056119035352318333836806801612089086246672377254396250538841598097096733568935573643321199458075462597569327791355585295315285503002251385857652532993335042480133924688161210353434944617017758000726711211712992702439674753334008730135572216467741229750619915379411393188701232191015419502112907372816265629739852458011700099541625602255038201118169082632986296055568129448412160194835149964409438272190866217285268473808321315848726570116066813411359917286195029590882637726140082405070337004325808556927087621610537084453290533726942382488411506580332421689610689809248052267203492765276703896152465803479183101289809835386310635614124004714558823873699668626428694711972459428973712762658030996119546106370405512216915568992703512350762368422432856198311737831011995166335615928546969633145486710508948073230320761505615164423845557753495868034887028912282768943630711979675433563942548306765372597912408873253225905965931718087204803004790727231253436466105575237710647640379432239079818279724228115570304318786233222128264578372324613375610140248563557859669557671734664280131962450564720677867818879031240767034397085880760808486637868166304974322938915690155555062015580272077284212134436529854437306746839702249616788421115751762501371007949023045374998245958668529209020588711863985672135290048137469407516661887364492046567833197254817710839991438161023923654502171992800479980503376326625185628685557303685070050804200811213566916567029047480787212490581697157599394032441877684494970759736752807347345406844242004032061324482708518780194927652575004133113816607281840450403180858659225380117999976044246436030271398985704474993571104388448872544495148697537293081631970889790007407632028463802688706390489747535779801325440013388828670604567408499320775252615397347187379140166148747392130685769824156950817717428628271478459635477576729467183035923493455841411379374122323411835512373594509291660254071246806260146255878591777593366749697602262619741430409023854777155471930796215617135685192231787846125216124389248161618693909162718752948682923510384063870325268767040362739446531695205541264462380835246554952334644999870329670429264756570529566351292110398094012387901215182417977031646572212995229360942459349543762117640359998917536838192018548288537689164480573502985286760469417304556995432521055284112302325848846910348084503137553244357643695099013536158380639187030194454208407152145945453210324318419372600659573182782786302470926439685779874736532400206687419755006584077457371802574350048860742586947637378847664171129102802401478212372288072411383602201425899412552760932830945318721459315711883149641923453477743637987922209325119981032961183185555128613014229457833209386492864763506122702922610216932090946224636457777103599174689124189308206045974067532897080084596727419830572591143786966131550457375386975153372370721501256623950202911658823155148030585474910080492031675899082635877148175892579644081193852616028818511750760230336088614424367227652322292124666833538790821242923712311355869507924632841939254224259026247842911806024241253882218251341336468941601134515770963013698061509955215965082271133106056198648178635182867027169563437934486733705062718464555121170181973498821149387926230285049589736856446139311039638046853058366863393716601447495101946921280272435594261521664338008011552702827989058016738244092349034624218433636570425785469501679895923021369951476854143908323933099069688552195777945446851087557326875300307105608534539348122070677059205147167475522709500190142325060846119489645027538281775579416987556698305280429359822345189004399177083430318838297845838845716932885717672070807975300875003256724952095659337084402344558191875835942135240461750917671523601747703538557888642213012227752284074584452168209636875456691858364187017106701962420242487682985730045752064027511693195212070383869138530301620303937019771411113680446188089288676984278511167234887756062051171586323274401965337688956612067250439167879844165727886075548427853727895796223008481794737321961373320133504393427522296769772977306621239605551385957466615253848534637990705364376102063144739526606722432835647277592171395988794965992677453267970978100642343808398275207366734500992445607153483908757321468517945800559497596362497345496153502143223085412582735471984085935068072972722558283717871541198342079556320141356210439762034154234316848287560202227795896176755312206391412911789377690777709440732247042693534050673843356990387571762031126026119618607213512490337023942965036272720849019317168092478348528177903938047617114310864513131039149185426411739666017183468204326488249203045359705955819836854467919536485321202082568132723172268745256271850783719970212009772750756278851539221763787188453614407416927136708883024577551247277284038536775657846152019980783403719633882759932000104229598187645926755718094850989009930196036929175096050555847129812025143441515915786768630409173330044105747740907979353850820403879050208145117029592340389676570939992846605960464237290106805420143758093616084737779577440219595419427032741118488643406752845192808841111539962492333865528364587929018093826997552615302271491667113955391362693551272064922144360392675666452575519114379459572289608644979726767373143541778125478544182110093650632315500335104084319084739771452965162335967318163742098238213348458782305072722966725609256443568591021851244813860809079400705202293844302076668109436485236861456028284410158157201668994220089893948347135360207430244496154733232494999566667574750658095898359784882354304256682243797469319879879878400904392935398897100450459068629209022743611455779619604097862176631282530757348322423758826356476232036573786272063845783724791028447458682099089430509725398238681114563537458400394910628471060475530657984165340129610680227598554886708329227635272467330340811447662122112876797907599194518533420108542031399367135775767454434845339878127255196815409245212248614718982162535975369969677464412165926269744336139364156159924322634671098940194923026368206909160943207650029290386121837529494382350917402117806263956442933893567504816692448185461280068063867790399859383140879458551645545206768632870717454935917524608849850372931973957744195475351177126988456394616149129632066306547685657797884446834247591479811993297154262426781683573503605080451667025439512924534234332855379230548988994509620998867341778582845501208959614824159141271841785033990499734537723719207389034643990232812745169234780191720512378372165607786406882762674901774044491378494132448479138178415116034866480236068961756107113213913944615997370256419557247304501487152922039980799726896205847185132404889688327044620705276021092661120773876328349659356094558535636081402387288973848208006123858318614876416069764450910735012391941235537881979895990887897112144638906004008847108117878886569466146133703851423139482307836394019506481419960885307162934738382971566962585524545986244917401090053930572759562566857051134067810396920657229314103506628290671921631785316672127340581858022135498270088767916121071695969006489766551319215217665209381399035127237790795997723164977131244789319895965672263996769674908576960004756087915899073223293803372481223337958325962328340145471101519860859405861061645649535783880296814400114854910644619623860340338928305144494557818872793503774999338969501161837484761070568090905252069572922370787678879543856535599884301404186857116641428114049251308456930616810242096834446272931037111064605199167539105267949925234116695700602316167755965500079497436382697612029267530524352597068453287128531897733734215440256254192816775270668066855978316318585872219016464879111068459470654551760865541192401068904502230275440928606419711550505230952737895528898729968336669381512965941632518873708243857952638728633573295050257163182672403085688823317702543244298132835798498796594302089872316208237105529289978817178396967705206550512932681683608403297156018952995440799266860969040071018550582135406997858863985497313579639636692885343930969076418240952262045364988862098981287607786059128103954397076096634594070744948588889145774627771906324820619565990628736287968644645345764622416453619969109187923658757621563026064491552041308421778652676273088553527478012251435112139094365815775477948926553950390787786746150359025287945649097138050452892931037011684315803319063898170966788126575553217829546381278416761434277977008211148720924892522708830565836458802899444927520631271034744871303640634113861936650393549815285510669912298232670364009994757098167440795465517095164004214556901020540833640041558788489876285585546486397282841521276601501874624018749301653309935641272625103694068170127996938595094845191739796714039047645023086900481742335390241003419124349966682749828377227681686581615144888933569476691359939851995583158028278098736624223696314585698427138938044254740176422954340704662663361395534701922104080671220584873841029464699650288459184695811014691047209869746034525267326184837072730239685282875715823333041712748094021744482641217789375623612255634625276407691941677711680450743673707330818752152715586396329376332873353179694185028236553998074423665271543978560389008529932424141125743587926696323886363726946437231351507576166480395545762086700830552019629692967865268037267343935153892355693366137785377507046688404645119157731452995895062217477128288342896830694344006785677033198587906499231829763441006185664857533140505030119386201338950179304419510088426612044588572493676491572336391115283466619901679394806437652348045985991337464340667126557976806712119361378877097416452074448024659519636412611128318329904876620420993367750117847242689700589361926950241358403722669705080881080602494187666967052183086176210046735705754569689147078750006237271267955095739142442070281013714482580624999760807381208721752280908647472740700325558600423866802126092532890878332497640056553874577252930705158626348051545363131778892890716778672676602351509602658137332793226322891595348565094515080419598182698506541536949615870924609464180383517184406079314174622215469158361135268241872966497384389167790319924908738705029510789962122562023744132643062901058209104256940555487724789661450553267099669848224743608207724024744179050532893487276345311212936210166741683944666092270692975939393809491143438152216225057121346966571015843091167341343038757395406377763726683702739815368436270328391694316438929561543760881817428212802576705222084799129445163101138487882442605649554493458386342906978969620270094537757649247848099927049457454984508294323033218950183767388774393786012876128523066726061642741366139780973390862229460646336418411284508387238117515690705278783426892409711319675148157790543352126871156020979376815091606990855186549010587890479741279420282858887887740843846772800226630464219421734506183161665726638582114476316429158323297040458627451701126640838569571127197044334981710622519412363094188104220114548569684075013148275233895827283389300797981939784822690594254687784202797768078165440841152208214185915724212273099350184066964191954157746753786382436287748163915545381370312365856202617841436545432174219186054209541718924798621329286955359751038179007794905593216253352318431768133670665754077979526990629326782010781783379325380316411601908273006007617078721453617228147193853048544474061652445329325590632723276249982449522881291872417757281588361936568180284951784328824552086276138844005865228375058976945381433826480366980774142315918544676927032138651923006485131298820766140646807652098302383268734305020422017354088222577772765209429141042545235680618804105400208291264066817360533259319464330825427062021127086072442559390897307067808407568235143453794284788499564551310609274005511477183904971579877249543113093147372554614804215575726068987084588438514264631001366570139184873599531320093277337441991709919769531055532780406877840431685465197136664760951064959832412951572230513470531526664205951694920980624511280825203547344532537150204254895397022224841082038787801820959093823170509894271391834755311125371413542911806887332830427511659409374119248332697384747544440272678217496579085625179420173474113784199343397635149645174627036137245176131185738590943837430780303110563059094782600418871085891623857488406279871864175843477138962506116644637130149927030601560683703847042559193798347620285514735727656298097879948290649280831892999781740650725991657675311394874844229788637536726267650010840825077396772916751113585850333469740208940073220555422053622499575844202321079150084334444621683945251853176197169624075704435910362417260269769857606705775227745186797613813342283680162160849906316068284689705944254503741738930751791845973766337371247392246043719262916087769594099194142925943249246776738070487603045781278357710451272594474014504142020643029716984474920573502198726905313888169811495924951658443787775289822779959334076471851926381619951027861555883503999395918512607952916662424862117126365232070423671295054181926706122928827641644056923124619852031287145622618885055524871854372691264314475895977730352429946336657265818674201299463588598081976482101773175756836289033872359068600996605172555279292034619204514043414973378040308154249918799232241065962840573292214705491973044448344522235343356806623965853257198298214436400265811608582154063662950544906212458313890989071563495538672493393310545425452068683496921529154804515571529101646826087992066219475463121903181793133254519848272139153859421069279618540850224696663628724714580051860461693967270198132035973597432725756004107323262513296224966442987651907075419816933326731368784249884446746211845561719289712101268642465166373360745282154886249561351343775935811193561072066128256516267632915566022905478120972438546940529439939759442786184994538988932023634338373170529765135105498893864665887666481117626466383955791084769067668600862212347341333671249693398207821832925257103827486181538596664573415837931729532825281275244521083161534950198672355469519458979217692598596544944138650774927979885878221210145185143087428626966740578253206060166149745335819056000568069061398378350473300176310861577748456503096585074907260560692589005464575155648481819229087955620558225079795027162524770386781093613222814516590292439623014850390886281999876457037811261134902261693073732690232458187370162459404300193152931551862310751081204557209939517625502910378239961849907167430895550140983518614300535400181257699998119500755758789884279931974994850085377933839698541449708730490075510127203897599013769008652219682036947621853216940740804069616599147719014857777585815440182971348229161400464027427196758812631185641177291629291261496663503136583465514119220695252783192834689797099163422122808430015569372148199261390544083214235742385737458289418855637785611017689487179373035230558111977826433828173020314986753751105420974308602650176376912768129908661365988118486870948748940650182336968649903196989842538450151272859258516763640627422341993620718801311528980172470563375152989729929669301017363297403175579644974793199026721748157187654814924871745630642681463793065958092843407812808396241946493380768825091177599269306925515874087186365680565042630001816686279840516703564779693931261263444756296997218523570107920649065209311193291021201541581535843361301327745966773951990906642425351767581427881064916543630618959549488617444252618756187994397073645926275932623892961432210916879160557242139212311281786527289295923761794515674581933892611725934495226084046756728328681357243804788150671268042093371509517409491612013769750791578186254549336742237755561598232356139608383762329087635594204624833610063756445872716436607573617403448654246657310981086582042079699942414962596987660660369163997003471758283427086670161925995916053151212668066200848331538626314087875260828688771292482255043280612795808102750313661042636205160183019561547318164375438044095527045821758843334406465363398815051317717107545643066101907915276611852867319443157979238856314870913367943287444901265687807298956026761196406655782535455802639789002374257913773216300760303943436144287707721868415929915876823750047773242219822759722330644800870020237674996792589177885395165309991583077939271816174703633065053502850998476890778045648126498273155029912099549132025546686021984068588273765737100269831331375779589311436227891731570700410766534349515422365508892647737859229535263855661440476209648984431862422332128516431285206779731318780944408899731402059183767362243149864126912061002960740851640984185618727526508124259321567142796627176482469024327367116809379338159258542456662917867623438298803286797539313244388956323964558119509993816983601220280578115256555142507948707419321284978946071563080796851179553973352122320260196365268774868404423141374534062856892529782549447183738210535398148343505916729665776336740858710388494206886638741495496143367724882969070056278037327506137792796717382759659455720026746874193822308206906958451682602411328527249975769629044793907160927055838080171000721700771477030697958275252623434605893461655906305371255040737673025527357253827933219044655684691158999299766429689265098794706645512158064878249274340952300692260905699525632774278022629587309027174893503636692919212067629737298943560666842482328802674972533981139400870025821137913368128918069600763643872520109284249191329900575775856141367154148348152635546905385039706973958915360113995539091929232639702327502860641229254481095210420387790953122330762143798052379147368860208536697716082294981043963070049742957156503585893140734249463680916715885940284443268171049676827596709417449802417268163091855473419251190532684451281992901691910797944988670043721310745680181922669238151995828522171261553403678094785012409529938033283650207800409704608815562748204213913287296359395146649371754725473263399040033833933623347306065399291497661662471032979853285606428750472489871107926739400092785675824706039926428131504493510645169953960088771619317729606291079619261704229000201949662514307066335440179728332091268560725026476161760800687812200278192889985573209224127726727512093969337046254687776597344799017447910339695842613976914001264155687738953066962737098093670310871737788138790717778271072703749158864456640377148642386851356605854000125514046511492330248661468704599209932644970681589423739590076836832649277701073249708570867446793646872758959138323112854874525827968929580332134533017884940009528255794458782681589921555186102740309746432221742818355463512393479537800726377263869944686736396048162406634519882942592519499117727487119382453215874560861119638905738532109071442387615929599357428073982566518801862666598556609555222655604789573011711118838231963312238879787665944236219254853005213494203761966124545841052727354321790321447335371345828285767244981591579286590241458510786690340695269337084050437444460715183580877783753859571838946483497500494080945947360268653638716156819473611694061359280945727550707324040761501816808528765765867881446867528181838821048141303330196203420576641432574241317107640821948154149383878417463210277691577935864968604430962515829193217673230915402047822973028889985678439755951162050044280413002285106693502898315644647711864045427925248055235460311705479122590402605969007905232818046928347341259759666677980998437301257793606008656679348470304284945974813914403956006382777422153651859462166383815058774871666761886989386162241120734104045734380941371784089603290488095545171758639504395291315246468738513085378381869042714514720831308779913355309570657417326567525541823816294890676322502823613440853242551655178981509854030319898471966670227266614572354689574165182404244361422653889042384792868829312326288897795724163268466760696422793076789736154925308561574560696590541935771092864634038512842164207657817233935270235058876113779564821355910405294098732090684363579874033561789968457631314885719660208826513339785346522413385466029661755900792799595312357477083557492916707164816614163914578174869860956674701627768857986079479185865116913308250555185524140016962933904744800700783099237883345750441634180870001397878396778435820470326379066597774923295057116903729394333201993266572592385613556162099113338858731192354215603612640464822015472398261737234308052903305626576594671262106541184191175477141277429599527467488607837079596109641609684338365326289798240823738482131367117954982978327219446618275645024142642923231194871297257999831300804223448752977261115471360594525432551820130415437937816561740380085082086666244111170014601990751328539979391324005646756950004729869632225466640079653508360134500698438660127063019994253766075403988005783365237731223542682444150243346896283830401497556465751396658276020979785120135276150729210397253310510649923987612245290508133317009961014693218306592374830736123297040591441428381163821571781609045604702527659044707299715119936799978130505418411489090484338832746354857636618716084540511186909759657595843186747368677537176566054591348186580697820157650022385623901033828038897246646367763244817008887891114052482487276210303820678603653439059998025681665540932670582054068062990106625853939745983293185376572587305998025549842890288470554718691340112563839235976649161821659745220402496723382180751038175039115861885650003158909173490011528437317358118722102132749678685272665764678791032043540557537308429669453476789092207301016365202555703559638849570727376342740909859088323950141316125495672298119305313342201524802600077050991590006852229264406442959197382629464895770704311620822205260008633249524322882209980854798377105323817812648372455580798628227580449229750335360968404712145895242239548080419350808239402512970869876450347984819797516455594520451622593524889444195446579625724551738655413663686261775249165409623006487578255660633029803364216470030673697129162005882839063953866224030187014661508441113516439788474586011339066886167687251785139705391423469177082140330593200634168054402285777384908764618728467932688620177993489981227510889696531594737370345680524311370302441371555944551449666779801620393484708717063572691647996754812737512930574684424828936523058931290463939796449000648370507507910703216907897101368058049061371807321057726042443652688336104810269720154601493782422499266726751242609672890894647829215824523119244069469639318136344704553708050969058618120668598424440458883178985149959055549567565978859400990164138209053481228729266838951752280975653150715420665472353534216545001548364794517871822449886268598540301917114808263748258184534227447793046278721386258720675908694265063060528996620794742379768766290106839033204467888804166145401138608118417423326731918984773482225188365838995228350639435023783891820022825307350594368674821492789744013371520940883302670243977620465771791446109110516543127022024819546285949221465517191575422037340476196312797688636075516082102858987713322135100489133298949724434405320746451954449687308051892250802315354631710197377313814098537609995218910523967265875911168960673917646295845733763904636864397949541657200251945774543150635496585066641172143265785216492569294551185315091699682868148419492963297456341577751199901757750949861586427027689834923892328843872109373910276612628638334863451915545254789287612797014270389797879825341936532314153260928547477829482283010039230716236368234783420696318042584748915290515666636053927470591396792129565376298944049853668015348263052051435808324976484933109411479882664771430477291772516931084634989016906874123418638803317568157340119134469293477363392718162829329017561002002108830584395631526287840175322697211906631785205784088839065649618955016075594758740290377045359806949637834584439752920707281905124354745104038305655978696116701268793843651557014761519557497907186933640156529704161390059439225962629293637138191819491386658612832889109521255482498623218762069770061870373056586939429363902609085367271898070120593786268240628271412091466363570062900623598400328139305008449083100086211736548223235888649632063474123295566371388481533221692490560293778137699138884691010935603183999865914186161294349829695980986084439854219345294425099011535235930835921500163944654570909058594428694022008420902195553539602105661205739099812081942957101526193701303079794323855843118732214052339931597039282397015404045454290356707764133814479817779796543929268286861319920446484501231169498923345347630241687043218382777043479368382761265264978637812554566176931641822158259999709570210309028444510001931939947727193750711296879790327276187018607330088637180155981598444052015910010092431750051900153025786417374824777460341309960703357029901758567773030632952718799656228612024158339177288175580990221069605554352838178421439072107240408466790570803020334203328632986374727123352762992023011385763321783843088452481422296226553023577518074825049218777024731120270959250454786111772674159477873945154384089073867579502345093006950043638536952577269582450066123259588893280036755475885136709455128007110241205771938331838470896733015788666095541727096268298412057213908937488760850486297725289416961708968746575582103971547045123532524571813289562791419921373944139666815025348586870096842046088571600853422001502455805110211432673628771591082599146181143401402617966128599634938102276988363837375531061051333384289161053165141608562830355763240413756191945009977415422760912211051355370450153194129961473224508985109339620671401456891206629512086345535069278869388839261606631974242636334934261966651444820736836678485276771941851520197528976025668881618542173620126913047550182451100030639223589423360950087191732438294966324941076264653918827206685046616915199352963435104899352632417752328639754994019141989534044683971963011320176641191138447680834917529743893529538341203073206184802181998726756251457205522861951263028123611834332950107022478225052549481456857016763319577537835443632575430501486495920300744799933225230229835719747895254373693332887712121330003229051154586338088910414168525630403540751004341594131525996038164870305922607394104542265212025172601755133988448723461089350366086612546907766154471593827597711969620340512243900913381358477153964816312855472974437677811452463162990033588461866802190059436822964944567584431135450263122117196225391755318905449926361977628751090690073712080737700323552065667760083923138490865311814114390243461369238659615948125168298223152548564315931204396872661678473383048966814602026693909889017111018138254644687941476818715137036554464484928622824219409043340398411064876904924612529476807160489514250460844127001804390531136348948108009833687041965048373050296789218656750493433296017242558216096037490829261307560171263021633881331623359637571140247481291877067484107726562587116407663756366008046609818658280168234259063905341280836741857918638902660185174736130467511898622891123956511011403566872474979055984001414336039645645474342391725991779051894127755817127812268160860266746725128464933671317136211481522409497870241832916412003146072323830438044135549211398983788299952988256909048655102825074603311134774041727751526726196229235126225963365571419048027934513359747248318889048872264902580394398740468392983852252121757076432358609714964323694894519015712352672540902221701509394332535324738053083155052504378148868886280668621722355934403846142889829809951533875626925986348167788081017515548244726895724936249516937089513720295927179786441255956503876542907899187468738128516409868197865920228571222816486278818502828175476177204897749469064634775944216777263814906340788228700934435819948235989857708460944050503901874073662514563144439531677706243859685080569985886255687316362767370029387537348772739930043446707480485846343803982999520592123766585947697339598800790027552170005214057540099243346170059479451751832061777542234489001335675046130484898073379578130728870531223620306442111823639128182568953294611451289043002323614823462548857642332426459409563675825454158360049480546378222669544855406193103267792286051254098072001726874778841155458657211486060167883541320337881420547824408635193699055641302459732754736695346256061217420911224844339991881004469640833606189302468982065556767159821656122034553209726988222809320248538989069228540284877775929477596971740485713529243430672761563554740835392285752928848782452175388023296683486727175655106406117171501347509438148013055162483844653957257759613847063535282532647577382625510886225443445310799918047086968713814639907532252908456491640503743146609177651532625289116943842956224176035525647067915246034462193980277974661759783457731013219552702008129899902998502943888469215666439173101701282957782473858942265695059797270477959459354894282451866338362283686902361800566534657638872312558010106332678596063015548187526487365180960710823992782970505879865064796909057393137795097820587291725987182495069807352072530958651555227967521187328035729658220220951412505511048305972157187512328655635140608138973913992109777147605888078215396443390459999064701342387101954266100890735676364524769087300668852159851739079302712106630938998833753367019397991090358431834389159881693141331347927866700867527270713866617384793596692401333441211571999165407687768547167559922808725715506318776749584752034635272123139788290246010239415759699992221126804766353395650408606724124835783784461428125036853793197575974088100161203215168906786024021820714024217585575223273343271964259263029771432626093142828687948268756739958761317925970547650989959357992132504190414194444532930013245144015546400489180851787375253525178563081208127520557373210644538322685648136944307608961807303376497076226738539951595457226705915230141523147733362337349199835747265334891308148185944155063043223078876101122514948859133886309404555714155858895815271810432029644140355540265741144223920989608442819728605528373412255981863374904502991722258307657390450902575588043609573406016073942068354647496290384247498499293670798047469401948004574074026796096108362283734151472223063470646586341423523758164252494942898040226652792069214090938120176365477823501939572475960403117023609259412951942474585279027308172977154730521045985382566451659203470641676343043461851877802791615811818186609578341869370908823668034638610661941578300318808513961839671845297480921048270186719271090550601006074098272328312375587617230997512249342893581443138477077397043485715562599092703658944062223306287992369760796090896660702577932309432480736307121917049237380474528964996960172683929612881781027369133027466866896999900740169320869657206948417672372313079252421103489319571969077706592414705600475944119971764050526611448347299583858246830386792385962488783275586915632450150305328485724915953600216012175522338528145154672903135763680703327119554527210162118652390512883525711087350552974282165238290045550344975541721551691120845270426623155440385768678128115525036159493697585645332533503371896001450218314091159981342957278146771345235764524787106604979887400656648568180734678150639952088871361789672251593029261863744787156985163883914110896518888467800847745931504967759565398699638025613574533098803274770585468208698761791910104600932107494709955146942647778404759351945366679239933144024647505950805794152792577521750173482659868615731572054246565493176650026516577441244431587553565137641240577335700611399590549094021275888521815189635643784601517726170648941492380800004850407708675483664131692099806245755267894321033880916201539101438446134144996397830760898606140607142849677640549197143145211641181124258401474186017394342442723247592963749821573537689007089962233588766429041843061940970498667441663859243757861005611118173223119675316082646150222383336326514870552626796896347592366301590549860453626306595582905848070262526369665828146904645565091273396809760521334819890921666649855635058187960028109299791709463960992488317503535229329022264678594116464784803624959233650899616826832643220127472897912113996001202472694384122880147972490323534535972105360264483049880745897612728004604890044973130420072306211457653241829056052560493692709955756361104544353052735162899551700671810667059894858338886750695022051534464962250318152529661440913013652997128304193193255248690798194802063239380152676960341223579320827399316245453910146454554681818344202145437707809977983296473230799930837776501078699019179823013023633231689235506755690312536573125640117983029390333005640991617718624724176322118117361862108073150716163712103051537411484342532624159075747801541657967316490222959618853209755009367970463123451999491129793624949866849949524446085399898507815303997295698643628797399097152581610182464661911350204322215120625230566485597351394754467059749734428986055850289130921222998062651498753135101007709759516144335774202035587774359585830018456213858390987369515986365152344929373253983469330309506731383518021680752938933187395312895243233591347882351093617094556883142124857855945535856649003144729823565577563636847561326827436386500169029475109073033458611245215589446570062767552185421804981950129613371013186811531880064306708418027394943055946802758372223455005001530383975303161855592791324008235518210343869772244051036450004434516167598852959856513428900341675853263977634226546188920983841708146288225837510164205451093277017076065029259985808950587363098318982482060136009163928371609249062777339700294633607314349502923412331078356261513679881430582650844923660995100196577161610978824951394251315409001344619398728478424054294773890142004541603176840040186641386866839355314205782221821843729221009498920431081779184772127109540324179052484391713535857753472449493248930672705355405122811955125727532426077539132975468630792254536519506547781694986268899885486398063690423233829195698075189647265712716166173517676982749735007665915043622589920969570374113965770424563991717320577218966220486115981381674036038438535945670114475151905081936677005544423888571085764985933109381419444323109578242411658081505165864704455884240610662944842608278741699355375408222862437608165673173169066723168421720115813228824874489564752784650509438395392299781783732126766267478313806587647254946352679370392292392579657761976456158929916105207885194537859030668139365185541811521937795262745454519420602518921246854531439680879990414670434139354128785331135386334809723033297259162473729978513874392407911154962963213407480097007193247268931899614563943083843895400938595603181303107057337746460901251931819198938449932207242432118957629915918159001941607275398488194347463102483768526945507995411223465845317319409410928746079325820748798716866088361158449281793041686757201521192435318779139161241882358166093088655120447135050406513921876668687453860795263629308472209238278547240879040537968001558915919232785652730008511362558989286210418871005900126694144206663823618718813502948482355482942253675966321260724127472231629580034347655252099838726701864074775414280181035082570207697053091910934654188649058536135769477196053818170799934914514138033369255891235036380480402733983972176861173189763227567094711325895142911439767473347184835076074249402006837945556671308200675989430022992155570065421158485244619655476042839835839761918529388268175842825089559618694895044865096781143882379741673521436097342708129527191255399753025998120419101077596644359366196581402984942984163703234370912397556298992535852204753052191762056703072320670830280483215028824997620761457620367681162135536908718617438336790488815233863504978229700895772636211052998525221376143511681870070611478754157354132252752227481819854730888979453364756708830369481517495046392112306617978258357005525446929716235952753179146242699810090207659991207868058163478406739230038287037330845749354125902872377927932559574003937231854378875801353518177801758027137742231188139137803144534573283154243229736492296015485969055867349991078192074098264214792614985341254405759357528775552468375190622852766199598966458282368964751520760831670093706580309156946533534403984263056464148980089935367562455704224988105386999335476285852359005871803246023651350581331084615153271812047545431402987405536148101136727643649308447229073334356969460548332636757140589559719210409327422905773762569119880104355229506602017263516861527247103326982103711894745182150836885622011043409611691123497538528653424700602244098423497224259308563322681720973986564404480163739436891686381958979972861424786371245684014092327425318102608850008035106291102956401988520582598744915327655998105744208692591143884145328180734696073668731755802405851652225717401880838576689088384392148278585146223631326920631000505791270696905267192560725166768466268546601669924271126745933121226200348078820074556279138029413240156137789160203833260763915399928403594416787133408714762029895298523753599478251750149193481307020075901721709285899079711634410943384818317172548301821772699183322273692296512606454180841417998561122417283305676933587573187042875435555798215574747906582700557271048192344379044435583073134450957666179249574757397295035522966356588122512656675187714953028418873653354674595984589713435005687880163733279209051165990077235672940371808924213938919505202410737191681162264633800091734631417960031807843385686192606915698248624426082234300256811028356557107295591976764492583654377167568715553624417675680294271117930110086087857968307082051670265021389443919573431795206427136605840534919815587560409827399069968540372995011207600363154645522072971210413004501104774556671949126404744133250146438609744191510527349890804228567203531137736905175469329765183641388742664375930363011630192164565111307577149837963318325304287925852082265410553896167563537339935960992642817146442380985943165221438906076045856493473301017551295718142204646542655415773557590764686037071628423796917361338132664490375447651786387425925913876625860639921923733399653884268580943636674048062345316307940455826035053424461898504538657303339801610720277320530686658082155368547093666105406963673077374203797105431626937845214652002803984660501554136121569704468168919871116163651420122244354684279253408415792312451052431855003652200145862985249244041694151460952883126105863873770370509453068199514339326992268379280233415320977693003692772701935211420007340908198422990134173926381815195769503029267867919890354326974221426334423956977187392707842126443459884376172053744649715357720238109177297765712571564156057548878511772293940114467666343818811751493661294710223549946205872368529508331486643445933814825469924614659812219027277418516226085195342205510663646749833074633613012688165309978917307717968838810005978267774426592583173280784467823470829201369224452812783365763032927861680335055834944014049698049784209278198190110774567323143089436782980423552624043523443998404349583212055020637985717908314155980188086924364730950083772591033624359128602070480341358835098982523128082232155479418217201060386409588798192463414386575235304995250140322922351152728919820229654261470097171449308426133839795319263180058272573742864131509827392123691343476921213477131071454675979281466127922273719271083400535905892618890163080450351838291817904218716571768183693102628332078475620124502433188238294066179468591220586360866311840248201924034193842305900412201184666989861946901522285688794199894753269372044042368176253869496808297984462317332059055533863024648367146341424914379815689462476136097132136687860270000192813894255671900295312534669177516715737349617410317725336040564498525510689232662962724062770578281512511278633550715632879019245114779241127266965691351733208277426880189068030349882084202720294713525364297641200469287399955989582317135841405595087103346190749823319040483519478328581231190175310660846749167928383123226364376556912270736057616094195046018203505795745490452451701707580023588167903950137976638205333177158197069807977220013803061541676888954445633958641128789556626231926810946511732894715848166219474365485541252403929017816263342443379105003268134871665802965870327273470920789476987807518754359919397501715917775329168399608808311024248592774731650721172710909034163321985739669284815427127614540652476543265138162491299123094442597848257351918881362207905405813656931619227643375244381472192328326784694000757662184108758397466370070911024596969458358680604335994857189852674656852873483940925490770520230146707402380404629525631723317830476963432315714715017907939278235595474439467456305679791408306197958231358973885159527846474544845667553392310372036279321213237411164316835385959224636194535602207254979433746487164614083243192899702851962468935261265563630876953772393415514091734899706308149940245869245659740383255382328595988655490133392729544340745844648293938224206762209052787017315647354113324368407928705422057894458708415487131246299265450688915580252307522141780354438232705125076781050702449650168829576272385058285843588809810700745412846374170294797593931280406846116353320139064905803788982168550156815113622766220525490877192668336054333084101947468872213149413519038225380890748998418451021917417412799616469812946049369751389880972226888437815273470799207395674366713672916893741072733362603725375367493784344140601074092469448939095579890376664382856885404866524280401124380604267458242830883507381137770824405363536759954928719682087989669702855690908624820093780968105297758814535899508999298335134073630582570047612489513709241021251757495470848528047223026706757105449821448317704240388716318080205382821433490564377721018548030640925793700574592040007147094113458856413990718279926976346719939934311874236581854630345998986489616977416081624057027117553065318655398762562759444140990589357484676637127268814093736680965333298925974591455966848815591956117600110032604239899443776750377463360004275678749352129316480341215707489882260827288208976952056992326043078409612100759237471829686083560623387262868278591064903010806356640200371360888387778250825601253288168997841805024945259831609514138413311400038198893639320049066376372059662913596736542910317079310784088346152909802369967783798068343705652687197258466592702719309221421089594075859191756980265516953350566177124890922978910744927368224699656531144059679967192162481134939375121028118730598334539004592208957157482108983432950626937970885185242216540372731719545180308621175311816879093439812660884938857622069124706190843376568428605664017992958085212826470887449300357799666076315102667822444710344648874293745112431122726198617208704098823307781535898024447723420117358284044136614454551940349147651556715625657537206712027019390587124139727677811538764178235411436449410712762227079978349780403656234439625878875293094810060012876940941625353111706513588390756693278765241249717367953109282675128381114559989763778822622755829542767140253392397896722068100145397517928610836599367663592633397305029518478814086197115534570356324175857687408925939451944119138087535829391135316588112889967694027705761149975985679037857753984617600304005704562432460732424779061510121699731133295851658715501820689547266476025135979700054811528820095157839117239566228250307330800863434925042821107378938679056567668738939864809668654949869691151402310844078829145877549885873020626551859453749929500998224288272370444376510831421509270884679310152998906851079699006234889135691777082478836962624696635608003762057237625655021093841042690539630705361098670006996557249103995612679378888144146901095607298860136524597974077959828000127045980914338956418798514069205074585316606537040868073037281184751179833432292254041814756261230935280357022521507809415447000596655239731681694717739654174745924668868639277256199195906407629840589341864500356994554586593592953253792729599732758913401951073896190573452607454105723625248254209163581207665348582509102095881844920475015605447063727628162268699331338552163799070125197737809180891792899299600937045699496902668418424501434586585749272620644865817266928651728664496747693536843971494121586335665579722775351911293645317394467893481005103994471007450660518784549435018253002908845644354837304314425658748983492022624296468378684403499237258871403268180360248552562865857307708990798342229812954623609474454310001814279774451296885162983221952315855803526183768530351881972123852287269171796095346124370110706627018698345920617321564780610329246423962549127747456723612759381703652038275943647395891546127339946293629287360262001664354750373080261038344076156816044635921052311304379977408480676356183527867355843154262259175093086282402092969816045518005684034052430120615785086765447871471528546953463884353479057688408534597820829537251644353674114065736836599409215853102828584598441216418045825789792493674306354176918708253760776770154491818113912108746270089600281479558329935319276180405542329146413861972259520054206697429091834668584433842701032289184322987832699014273671595145871629042849951261615150757103832896485430839678987575942181745417761009294270246212707294874998803517453602367081478020047619932264122789232444092357604632639762756732865858258813988192675566613111800446838460747607242678338674730602055501187253398029445427782094230763893733455770568136290196886264387240486878217595272253248421489288598675636970675241753603150309309625838367422007228053104046182466090412363889768658959279460274887250729114815472941279516585349672461907994854536133491680089641713340175853240579679055173079617205592414738375937291277242310243015814335223153250884030853660227198799580391281724320255277777061070966550800335081086450883197789758455214374205435792501786029662122743134729579560655999088834125351621673576502553817197534708042145667382950936848938588708459281365517913904254492077754730004755665721611874500029917811956218251938532262840822473089818012736032147089500740079312775581444782047194952376328773136760715694956017291010312573096181191937260569810300571474402243464868252400822058137117388265503101462740112547605711933997605054236752626445275768268094285663219655227172576399486738750033611752809494901712643349308714119788266345354743108577516998178333968824928411182894183881354638657862838587174899205498112296316025231033952179790641850531664884698008670684022574659933330483449862233157638188948971671124373801444134002247567980895848291435826204665553590233914015827037327209550363070848698932047167116396373468575164057509797026091499796640494340940215330474860136596914784579662976167413724232039213432822300113784725342157752995448399558231439270371764306500149821688084666816883252661490461595462028884987281914583047982652254897814752763980847375485936538631450422283103980246130613000425999760607924763347603344335057535959815311454074557263194230792650723478096857392004812806311657293757830394390297923024863070692523264652602848634179879363675941208801784396431818973972352460623147325977198715277972131821213718373626664226646133052805631548997343789426036459701647449377324175148152848137361840652085403400506068269781239557762259945591538085398125754466668832680928924223665074722007757763248196922533953211763764478240564498394443078313650104018102034957855837774071004818247025121192423259679506596274029445443021348408121792287501151318539532051024255942304305007776997141709903476990464408869550716465947997425725504064553450976659615928720495626763989024269399775874435748064195333246263632693027463275305004834093877759912188941801548899834673505939415537369207069744876697310387262600367981897705352619007229011703528623215485474683632728588551246392074222190265562719915043730880553579325415771687915789845365072936374526714415086418761242785516444915269124224907802456624189588603873547554547586731985641870573994856664023045979731285911254100350921034325227530486928894822201563815571709693588845307268717781269878846051561604946890510590556228805203229538091144176471966628651972070421530814550328481824395264577056675262630793832849188820631754776759623043105647658031370256190057159107728461183712945641861226229110607859188571800760106898811311938222084136684831392555478752601000399147637816870389428071563988899245187762846767397473664891271613169583372727743261957521603320574350975595828009702171666065825921400092208250661404444821736582735985683210882461519896968806346803029078768875475975276573686249984091549163099031928869003341630825603748888977848221489252789959047646899772557329168755589651998262221297947819742208610392011826031321672292981991600953305974390281670940347294985996235112228405867123226422478553188492616860648845366646443929427782129515816039284310910239658769219670929511468775788951431460274761595266485374862522713439908032700584340867903437200700723442508212739576412900535308800950347773397733786642395705884531148110084526014672548608249534265579608675170611962704427241485109792539929350275681699219096893583505987793002663853672074606913638690778084395126152604435607266034139080421594917418417432350158634945871657843866348749455823463941137589820627530500681344482970666766981763714616065518793399802182047082483098820896950841257267818481997780627066487394517060336418844080404261193152662106669533757876088073065100362348499519767387594530368382376603697361613907164662008591107761381679167332558135681707066735049212684339772784127441015030426609317349744909212595328870910702082229620072211353847210685533824222746861884624425744164351047897117793612340401455969936419076668676793485962003978319470369035675624276984403078596687935908392070647561188259710310237490232947367784959424770099782087124508018588227917038368444277603104190432881112184128018349300027299187675036082461898781884934012196351592671940876734567212604108774031713085504613639120752586642310477351263935190576649166757509154468901773815049550142788834623287190619950537777611014512793277493183821126441534928962614277149660368306221270893334620000428999202020609996594438209019640049768233104784338065773032258227661934255321505006328846987862105159620365097448139261969674307586349610192668203846413382053309165088263796330192786840912952787285243543784229176574596098983675715558762654237729533283142465739885073803448945380200550377590852167401171500265499551816307530068129593065032557978146760909021220757869537229219975730024464356572616368096905098657596805732133500813202918427878921565776957389972372132110358804224415860472040672715375246172814291010042503775211451707625679239863119657560200814297461680643679380165237366835261251814166424895110239361300670483490976886021779481149210064559040091077566472276806843941286286345680374793902882102227048385908090114922301421804246425183276063703912681386028031908036245926875633037150006963772539036353704572123021497851491208614893745506994812834179843538968597567297275721372594141933673071684607233042000696508389425930639450691840117634721066886753919951445160409372257039083917628451653771292755536130212994877798371555503414851941981788219455327076517477933520381706281993527115476308271258293417919453982032592075325077229732452531816519917467403189761618273085487966430760544375397492639809546478356553037934279076614574829784349193240344658505660072282604991237063161090413748514709361470936212062813904902562872581216624219041787602029667362305131916147053235659163146774110318782884749899394976253132088781427399085405985692346271195862370432971909581277276261990587982240437020416799556261030156207569741596014945915616962816534431494380260585586174449878143454518486311199638893038739602945615643073716974124599190746091609542108990430214633122485859734708892618129955513855766248700736420623897057375259025465127397258730980116020660989391127504487981573606988672748515569815979000509798501281708667178935570096755138873947552946384466924068677168699539169746805639763983904761367284332421365811187847329427869596837731238748750780924742694180778627070004103287900605410640711046444189587865358025828167113632837609214994487424414617358785118824224159806082923100515481896410398211094633773584756151771841374911172650764761513184979904443812233144948357814542764139475142296873836754840605627866094318351218167953251710567549641382118636232784217728669583962045009981712779984869340908746269758714151658288250767593326925042176478242531408739073636456223110102724514398989831741225930987350188571327011842370768160826486409971153827881934664296231795335467598598973902498463514003864597754896730567155101991490235348770281838400515388326525954503713400957745184221155492025233002641987290913403923559185692297977334595428775331866502394435176660182699848472242036050227413733713913318220324346949274381396532402558449972995633233783419652565158051466916169216748719418537798981669137303709159877700683847759965420240389353858215537629932332220835843519211960317063332853233852152620071184586489438195123732430060687108985204206417898595333546964931482579650082960097137932828573767747059339777638955940378430717747971788025785896330256415390297258731786508878721674322014895658936454014243941512785727028532724478747243214705710324670005203022388811571475587746772184192811800032763793417995800786227342703927500300406547508723300424242799794427890829003430346530188512143962131372551612137583377017373735897776358029244604667896805826602099645870076126071682091952710868114791104652467153981467541943013197278452268616421766311373773575913144675529303515656818685391331357396909592366995822196458098320777477214790326947078209843254225392242905412692746622631253401844722439194088175155594777319069656658701723924735497255117255443002268562188950072509040290816851398518914387327022389453863729200937758644685982758535918273374954832717795560267888703083707827966477203685667324701328884200085137538823635108825290942517351640787344800130202722386187529638938359082861221673306925858614595035451520464189579458407634608736015942986810350254019092380264475056136525089099903868823897047977637674920865868696121809856015415935788323273826104937715082650176964471238523939666320139452879158499108460842412788512974043486257104357594085280646349405512825439743279403996798865247073373640499216505141956024304763514068198539454811943586984591901232224368843763510887589081502545999476652123410627790561505290460715733638462895679104321879300021216630209980077075945928110360269456739616533864615444469804434316457856328222414172191080233839762635273792229571940364735094542272112791381994769401946799817607334504962865662865600973788938962685998529165528548471433535890323885481876567972745946696200346601895543919140355065256131111834429371653422895989449644753451288699159934140256715879576367526352591374613847233020438260893513591505570988589573089111323116891566239275704643701542862936979920393901422846556393970101285661364205941267366914876183538851803199537116583765087257843232439432169131333923738884499044913624892500066414303411527768351288633462097031717708757387831508648820622806935629714443650687730936132121974122708654811819887246234771302374301553002512453005482544688612876759916351489116728019239627263026446088167995754372686743483724182610845016931821211262370506505231965172985056918858497527298103579231060036215266594487934398315976296968522905885994233723844385264505647982212233086469061199713383556512818037847333147878527152721913411400647811575558004602691802344168602250072700414653032423479404402015728601833254676586590082787425624169950416733029800846905930489531305511159098451941344603920603688824889755816927915759125860829287839878329071266508520144026053431537981895740389583499165122850870211368277386375327173842994245823831983248087174390013385882018009995230233463632921961665970666793897764404358820964905520300508428159624625127594253711110878622184635783425219469194750974755789378819969036981622799636593308879805700618615062332827679415564746856976849558320194727272447960349918608664949040916639398173160325438409427481677883708695565487817389925650481689346947786315460278914537482846375015521459799319789207971524326602373770240420437946535356813540448115689707822008220617411868294620929776320142870325308177484098056257328024777219477333727698084617627459799161314705770231366220434536535540222489145048484299909521276690573631453338145356482372878960494648599978825259245681005929335455118443620543801053619059258258649998202870815508327333506432146096714384122546154528877673704692598765200858294057503125494394660607489095419811224238913999244237061206804496288667625181080047869296784709317487125285938933506556478190102424502102731501256536861651205067099203836859071145139366182730480901806465059290862597484744031283949504399763192016441800726845912250244890165506226603312167834947095060714211228437675208392738668760540346062726485588512241385794183615962404902083457630455694941003463984137475864687103983998811897256425578917221803617019744022370581520758810298914421336059116689209611736749250719359746721074092805751454701955805775646551922258548922884706501921644947036481910118728998534906316422982686412077376945575691290608705178527607621691420510411583737929740247728538789826615982917807002346019498334770068029054941596336905047570390441472263599213553127139744523864731661319533189885405397315446055865500077747278045126854854268757315265084666585396042081987989563852319909197951853195909709141946362830688860565062201838853718348758527491773740204821110426075084616589786483984479501885694965420250377359514253080862842729530037112291692407155198518701199563120844121088398379709657427474924812990151656541342349637667011716383264999551607405927632941885620490358765052339040607356640321965237486005938565937402413146308168831419832858516535701151511940429234083277516271967227202518502420053584929944470932651798878794413489310725202308517093546900951920168417115394637671571651394067544264238044392869113195828323554453585548814027390755441169311844712105649435193222042127570722457464711246790093000127625315812052178364473313418526269647981987992354658765920759282181367201912420219399524410938412360978377095264442966947927926092603456381097754896485070772223981164293150975944302234932387175345412243832332192398930025227360126698709456010725437564466318206640745447004758455375590701771241540473559332227394296203534972135770337042968878772968976429096201115033046161878893875802881254225228089707783560537170354046939320898457493608652741135180513036824332886816102219481992874849698958660355790116200238419504363028541523337093347381216492621463109323303492852762689985806116728492292630390878733072845597024365179573061611352566370884871319551647674739594611766916745536737361372888308171662207348805279467993996442644829810992650386508655763603888177666419338853758263189522122692923158845046004574695689925999675441043519579947027471789584730970455147010969415248167895308142202784083871045700404879225881771541285995840978601267207785107314006402234735519381082538733390177392267518700767568999754766558976708187734787903922502807464707405928190074374222490719312527194144884564789249191943348263916534526208152046254187772738079682783194704872408282007084604126095040657779300253725367405902395991634265158495727186022650607142284176873040100597304874218604100922190831603000573888215376010560125522452176924433991975492375324257413490844548439023067583391587876876005449667818984550019602784613907906269410300147057427083973158242800408291129188316796786531886122332575840168743331078501433457847746530447515104548473743298449871848252741111134261875151057064915984647388604922196999889797848742862812754498895154245107984611232643841909828190968690918484135935259080440663126986367505722832845812743790228072681441854510032986580565772686262477961962784450858995950805292873480612248592641206431565816779257022694444791977339129198650308427758155058269141580259855729560564812757921554545148013857747531513222046950692434780652284784195396525303853803077703872834943885207763270862991841507052644003120932568781211930340732151542538116038302139241545580448422481411468170449266199620747296994367584006062044377599221653006690664551651823140186462262162981167233436391152350949333602309510250715624846054765847710451232466618732898079171316139402930377143956346486658256067010648805574684324527748500949385862640628975816725535435392771137584996046360663969152459694214750065121594947393161849269898211294251129853681876844239715394655501754981348542502522435463991962658825010794069558298664607329668281040969557940177530317845648589018102964011417921899880296998800958565317259869256142330926064220839915964369275283298831937205373145663274642913934055796871051917993204942563183950254420574135978952463674013126189354143870737766504615793364318695036847428136257770694887914445869621000158010693167384691430615894331905763376679100883216030984980280113741538359965631088018493505700300985425585783620170267058352758491401730341801025370420387616728054276696427562125668214719328023470618983522530279501519485932895563719845270827451143451314752732402608454730976247436550158974604269844954633392549072352464545826928452707307123064864047737700008405234761178267046395482672816445878728060059718503467767989741981434903103535332263136792435654638363760758683403467971165024464663775283547273852445500789162571385770208083951293162124423912460421858564604696196445233710707241638594323697669126933345211433600161862096763257772434365411201159818993850695926791234970191797869922594092217019907734093461831281635278344588117106258569268710052276689913808483388142091864506987331746972007789029778075098534649185824577956519489270924954264930275334024915225991928838461981851723748796383046043179860910550244191758680724505647479095904792287932809700814228878964309897296727067842405581911831064245245568385237504020822183208774057398846492981782721015646877780617058227882007981338322601274726363295654195648432322485835026103153771455938394077102660251525025135871165143587404192502969021372266555973975372473008485048105876376887669718465718176542438130218603652770049425329917763872681716162917030997083138520503675924840465181107729456305393646616781051431567562623957117345015564682386022550532876389559551421823078156038519655518043513938034051008181886479773081791731697763366546738211311178939751426514262483181839297177029029620222027563702940865724630792282343304518192652786119074698028041495247544213385100825117703011251215597990881412710766092528469751955830451891561082840453166474195920713238433683124132804822468964917819875277879827038423129150766418637646005813831908869763133586098885001145806342993549448391004975523954151970590486512669927789278475531831568699958627075266591210103777961176033813531772470682002524165784690058987505831770997390874995694420249133578518082117827838431423076842143503442446352851136885266929270994521334005906112829192660357138226098851951749551868168166817600259353614621627134112329162611754020229541488400322242705005805389819281968334266749480397410417596689264730735442761543506921049979089898816278918558332530601369663598214877495305486196642358814951107781844915849860562492030417727353422047588899787577876935895635630160924115493017769872449689202405338716594258348004601814309028586433130235539453946324263929886626514984969334489389865238690859425660981520486531472062152744088002316353816461764420394507945458658001472264007023441307302622660077276431334861908524808185701506200515175085587664045866056678240348391479150572788344433102227968568488230240507185078222108669045712777136816261054472514743015891202943236629799707745069077721921946963487065630043138146043484909447396893513138073248676714978028258368446889027357531890376981144409823965654686650985182379344933100554842869853573438357180875135471428361913661433877213974561715053244576114671178940243562136368283414053867931789091113824956404280393061372942220616704647241923227434352269160237891895869934850052137018535550367808215609244480042909174453242659624120564650369551357278576442754110009326677202446603608546639585342008707602834030868287592882414678967961496875782398625380766860031120946169883057870335753339621557269556144567268614235378437217698745800664849089115626532100399150091316169720796546940684069222469449919876396289819668695625710967032570697231493667752029605814756552157896436008141256000548891624546119909483090877513868579697658521581738122977327417199699218678022395504299142121543627370778669747209413898946098322777033370121607622223696892448516537172175611956017370568999231786087920257052955689787545875280375765081494843233563509592426187468040817425488157654815617122240854776684596248554090177308856635792501048884405632509759454636640354232679650564656308678815341522904032646358485280957333855262564986135151225531842323127695460818808356840321649444567999836347397293827082474568768655214528428310353354902652567546168768234334576691707995368869768586015707198666468584795103132416052345384172865447042190942815740017445316868972706191166092773839932757673093577189919237318801808498009860767036676697586089608714668165839198049580572228201122236358268533283549162408986076773480758334279329413334127493322999282000754061172420342417235926481162543833457218103485641797390573441912515956352273775412459685904876217490540956833505036605007942089209469870011665371821521424510145914842446257651407511130571834104265126322716735392575645357477036710893365648429915856466497649952899352114713374162821068077364010913595281658030126693584482282813376319555747491012793431444994913098320410599841202514914633333020577886053867279957939519633513200026778864211073381950460695155964453928049201360807524075239811037672925788493041439769441537377327251314511235736014831293373147473900628261002398017838927682873463095645045516454630409165660090586571235787548678124168844359101838505846054353412722083794090814043956969378944226496569561801667893458868601953095861011625105780566091636052531306691237937550801835938476247101448473443454397691072315009746136417044193463606024163706099363949512576455146595116134638263576695099116186057260007315706083922566338704819411514715650368548705166707653254088605923741416963097950443703142947879535512206653043505307028835006534834976284475757467195033594183091790548084681605313097825725399388205491348616528391893711463057475728717441264497325279583438982197478234730881258986895481781056075071917729321970963484432797566299033904427961776316043931836625907955937568562982308716745755065365203002213293625760083281733703733664940390101577159636151684196538243862182349413418823082315588958213169932454606854283608111086411421899682950604821476565112984390796787279481906429265142466448021716091763837224454544052457119534011365776752664300895038947416571469130513035450167420744680921359098479336586872874828459365802495531198879849998153648610758406195357570506190543334703290000446036964834145688400382330327437776517509686052467086192551006899799397158146086398181500165508181853322159671113477482487457733606516396173820313890887256464184894086452559325713524160410428861652339311298567313593587681740059826064049304768912077197870689856221627054483548817591509836662023643318882173809787251506176811467938771538903540937854173606011690410752458934109519256673405481229853727926833694501714813513892861872699983092981329100970711214947468569150236673756966632959001653493542017007809083899301060507649650060550582597258658199639860048887339229865300433378704785821371773417477539266781798212363945167573243871422880446845155906632047643987874649749337724559699926377412381282230727470391313462421707037843918714950523106467199794629324341810027790280858063077049690210536030396856836527087534972248863665808112751077702856938370199537923433358900508647940795684758294073545962375893926961582248576170290489211444660082794454680294342240937189649801236612112893570865507537259411751360416827213402815219114837903845178629576579763683818837040831028028326439463646637173397125078440945245001152392530836945866551803997311552373404790107547741160822180942223999851251020637254327794928890069829052780941664270543174247984768032236386986040351800654925347447687002678815282459478262454734823984570928894940369264602203193721885096124469752390436572289791510693741973376044352101636712793799887288235204700282764558503790478107645797734905339321546372256679188499371249284295210909704822648215257654923469459555461798964810138037484847809792322301393600105503558806573124776010653741433947181662268972650870504946931805511873203545534395508094210756688955521134692380036103191739146845840920505794886530888409553337550784116432970370697585614725111828993449335482697795387738956752795840221919311065275920542433480323387132297575769580381979860078542836010196663642562113835831779912351964323489191937203519194566372992264951763213037484028009774598313483569390815064762431270103383585791153856231967134908386569862950888033188461613872389792282729514246992837541557887044156341239237496843562700607204723301228908042288777694894497558649440695152861060005955754609701217214651973728059926302062095636104361713809401094898084538750686964554141173468359461805379730846885239469422870736106291337783178222339740096137570382571678950303571106826761999626947830647447311727366317420486184528649893159709667709077401050439013160800579277626086843393456095762149041814392336298792333592020054960575090749765532761613974485536111781948083443143034399763597667970003386839718007937420559406050155573639846726340273407450996615324639139985260856970930577609392977216953847361914274667364606509358342510603533944862562686402991124589848646815627606122934139285964493397917919407256934225704023316276759664922947718671402061656318703549096016196120052707454170894533658375172709099732951709761003772729846826024120511234017651541143304539867459980042420316182055257455216770698278206321897698324463741578575437767576611834651714203051313456652262859731989037809870133635027022256904776320165063976787700780115227138025436560664404990856397904352126395146166589153507315627357707391717482952372461108682560335612833351960840255854906366575259439041399204808467864558796546744637060245365012054896882941588507896087445227814940278519984804823600995984139687538329301702098460387509689043607920897589628219494533106635288169548598108468794400093351175007737710574235209361944749223497421864287032970988422531048146369003839175341157765628668049447343686792574142939102080682567174693994798935946180087684675266448014931734340288946451565833650512602172555176198580830079591673593198220802555057288138265583508348652567590167320059594773262761381355961196464596612403499198318525851168577671642797243472470196183378138711823000842032814075920806110991307836663483870662852281216053200027622576022859820825749040653661285185661448254437366731992139979532331360419910336683883322150876420679037919012430492231717991823887636589406874678898977154138055220105854177032164719862123248995163884311579936779164152323434203321079184700866903831838104979258274427661253121912163025911790629020925526689658900184799608872910584288506717986556371401030623823443753234828719792469713371966585241101196329763780679570023882733570341157018947345853508635159798388553970589445026837341149328467708540909500431496961421985977946540051024271687091084677686628018956379840779428400183078545786014548248644908442174157002599576452102683885119498075898232152028713602038884816254204129857209933455087023641534965707912856777584969937259302375063109822137865838065736155791399962439594538753560716040760142014704270592698780354912738811940230235515650332535340680669542941667092209173309003792137912084081525909592521662096592686327536212837925914007934900136926026503609306263784646155748714526875624156512993910281985881098232037947764291198496540337281399663054061091091251636782684816838472204790196740043948094651350559909180432199411868457410243094305194054969178038995154687342632976815497162169772369309752053794664819561615516122042216575686855753499963462047140386808528464352806338670799291948295909958578866271279135642454753773102304188586278695506293178554124591161763746906561414139503839315290165075938654232078295489864062164898968584896356379163624377385141812271446934341526492755057295015166947173685149908494536310657085652720551994475843807329134407406099953310401788068522549640667084764520899443080303383112365088836144025287778196067830615738745945681991412664268288711204722052747316000770600425482553576929382900247164848161938270915918901616424516290153245730556045358742510240700199707920118204381960086657301926040812799718393170715158961580110419475424760304583551566942656244876649091605606716216331579312976845473239034244350355210138696777599004625160023289398512416270614600356608240732700354325940693737140216068367825649605326877576148709516798518502320153669432181840851001093206374301122284482960726426408124762698843283426236486376140291881714081029087365360791553833615438698012829335585504458760352085401348625565124854136561611670280825201701934478898445373757972514530714832854515216159639144494249006176368944692602131814894601279072532082334863251605308867605561851612734478503150418686487822185457994949187493523291207244845642752590649450393486326299071407733381914135881175344209147116986814514139550717288456138752448890084314042335157155474660872865412948246541291675007859950710281714084596968459384800493352234703918266889536816922585231709018428932357780735352968144551560874476577456561640608334459986818135793368198834339520434205802678822678952849074725863241220924312764287493603907106296158840623454451450685050114088707971175863575831795402832883463279976023972154197093658304857802664761417028260407136093996538624938899078744269746491392097603118038815660552415836719146620768753028605987097666485008583228013410497087238310939743503626906062787921621687671869474575454120417752135733049549127195731658332464591459101294821411229446417972052718680773828450819358866610630033686377670419276286874705415956243702808893311561550436877459436413912080540047697905506994921036666109801043839469642878310218186570515407459684645984590162952828282340135307875631937765718223485305215524173149253175527524783734694740044813570373279033939681999926302758442249558646186692966293357734851137631503125015831184447944202602867692713492681624272068561807669532996173560173768127783406884023829680463598830927425620912639168641212807681109951064129847526587222664939650315321764614697903056505154143926327815092080626190022271396198146153357135417050742073157014325385406301811414428534231203610725445106184447718803491821820576115403017898697221670956689398963790705519216947698207601842480898161395921578147890812624892897135342717040402561996698328847430378372989421184197563042877977231214403191718877577252988903573011265058039790847003470631132952930459084906193247556820460796060913466116453683652508286263144988157148512142447489407248226191295286484054097141817850671290783839535525854161104143840699884812764325367905267269701305857639743493562969938664549309922095974248517234886404449144647486029267474996536478552475239786356472104788139591138561925679445317182744403908535832927604978087176754006781882522242166015416597986714031099104256996048130099222254038010009354984197117597526637351228892091721502116966275000330918454553136735699601495998120560480047920430841123669069811922607793389688508201002531809569514839786020038775208489095206428719981569277552209710135962301593836370596815923973325225578819666367975917310409933797907889021207504111919555733406904555755218408510379933011247938134196288866320111257285109321882811567670811418900897910178341959986353542768761993074673747839785322182722478764412093053017492559997090021406272568883340088315349807846602175014468910426920104935336031277384021615002237877648076733112847130936090518181068212371478700907746981584900893229236191986089135096289963668109485488236428659669393519379262190532763338393443856565671630830746849218995875060986756367770004126162253066605555845203098234975794046769128505229872446535062436735994648775971188342223962582509755579266355971831071111985377282369401151684508476086420609777304405019038119807929719263431238523463644275289569704630546089056520888256581585698722194716838761170051791003153313933137048322159461203168148273947509628140671670458084329129515255005427689999961120011052513966223177415765551742137665819559611957648842861497601854175101799946734465267027518595448467595377852638472309009503002049425815017428060950925771683968848131122768347407789011289852146624379933085306837368341163112751329988086977979180221188736692398549112013965013054839702212646842686091273271931358891590702357119676946365367640092451776369510491646810992883006586844992146129261140469367755209105058961279492164624734619919940634753151097627102627376128305899045924233919484029657633255372148777934476951400845533790976551698204639160270239986349204075581529896159301255241319491584487203615480084333284020282294025304013436443901663741658006803812772699749873667973104037892146588344338871943985526307741291441849381418225591793995552921409443883591041904391800104743528897547328883745901717312352610902642912197106695960933554462181929015135695040766163741140930444767228588984727159648646016547163029128554560677277711978393871840404931084010515149274835844459054852942064735502405505661157857423350984157327876404467687724103577806932772074494086548933041925885091357642365106102505193422500838907551760783449569870413207590579961027807960932717658661936365188473276774750523989051438700809723282310593838201854923536306260933419451735479229487494089824015879943046591347480093196616185416804335825861958453368734976510350742429567751114136676961198853057548362569831383223233722229795919912036051963971557381675811458836364082449315078369965196743459627969567029258182677501135992181974408616684432606848846327661188510143616909470178680256102136500923991284060448254606552595207193376090046179070355776312825356218332994340445032398393667879931218475782429400834716223718505551549065256265496157201851184169325339238428254380354248000236568683732122906131367898000430889136513599515252994123766252469631595174918140128948225182417212131271612307819167584494993852064322061715347378440225127830074706786889908065042771353171884509347520796158706485971698655962462491389623170598121229944799285502365880307547853842839639032378754091452240602734299210280057684957132605716574179810222416725416996082518464360406928641357385227171370690466489469523053376386186481931386114352404816102758153487974181783943723805237514223334832216018006346545530666407328900717549808284907694134674364907497895885663449597385015877518357206010135600597865260167585906722407819176447276789392285691788797832876969553637568876985280149450462706558679721668943795039531415921687324875949136688879621764348050777081330988703470610941627819455534543876026534760349398711831477735995191086765216809408501495655567276210063840792361222829823799323670574467834810703492593368234042910081727133663967990250933587048981264490865358203375990184531075919396521238693939645024088242698262948199214103315622951832633522134107091881692303651108331834453063274104151241813605336296910358637342776788975449186214502353099648480607156157142424659388905579772356435656901477769419977303797625987528667054024386238532408650077590136270480822252929729433816315300408938047197807157862538644129932601472748611867092322296436382667988145006980294122543929633631475327561442761409363709859066818959946539725553824660620309609167258846723075106382957456393396854085736038549875577593230373148420504590349393496348518847166515610821227059208945267772835853573375519994202511890595379528488783237432720943155441862625361590895661123175009917920244319882708314181324130495364172545851873736340287635248823242970393293805012528097286052185465017289982405616599398788505265486695769388789843602159620775617274472590546367349246808250130032154439965189995568485263133282911392637686541520983774214643030285219279998992988112463036952788563621635313302621601874225250625217758517794309012658867535283932768969588302673275865931992106584834341045631021861321260686419574484813382531948359835137015797540439389178439141236466445017192366889380467946943011023252861782869954160138472334543047174489584333641124826866929008004071159995662189029583160837290260566828258958233787168599237557953723977247107385260279257139481063419200004626136806962006179948306859137545318702378435684146885172430697437994630955224427540868328363939819840276177792177424301440256635850084307931165987120280126636399904325295734286428070990858125149898429879214147973170252051958363146347570934681144996436115595322873541818869726823065842316526414825427261598147062170212559303575879330769041999563657204781678977346023061965941986766823649116902285984145789568065553437095551336391900198364883243974074609936061892494553418346970042232424495051884742411188428081449665147145229466090345567414094338740766474641415362875209462737341879352602965663144646399653386375402814806640257357823182586999664692599755358039528956541801759846769045797442537991791442958284090290854337818103138645672487998969181031908506342434740398787904904410112033906362249900273422301102687359459335089710067458407303747567121937349645013838166342857177885807960361357321378422736112921652821706930347639639168207843071815197582655082292546992439260616947752708128716981012069601395718745670139539793928070080668208327349658935552358512937530560720564266096534415378782995516340181370089399563852866673693838971429992840808099062145438477239513103163857451425744883481604089544505895364318048977922260241103107218451735705325769762354520890424954484224235404266992897265185837902354624669886376408916503116211681914302699355694723400041520460429714570078978726930257054963444780150262364853313928066671912409904749764378702615151109033832835580680518147886294231219202898538976952928097320271732793773673170975871329533013348307833068619821458519599316022177402466709756513705093674139758043186210061296786663004993964180907048629767428988886439822042864319576943253138247159454011332955495291036836683509377205169187269024007687495595544913068422961191281979129602228914379368989743239758858005678978770292723004478237178621668390068280480025597099471791217194555813162108825106343678688656171481458933618117738575607258022219625762273760210571931732139258754798882616061662403010021415203980296537226344012362644578768897084332298028404072452756310238198220029427605615429654197278783419924899860108030841382754754424259060963617748954359577383039980066332299269390827738408159945634193526090026624029839298242232252243157944485810258615722724044191766419468696319760757225139416514533979742845075947994623448691748451307719145881798653608673174292442259112282127168654279098938227757676692325790991458982897833780765987613119310733386569538426507373445484740123782396905534236920995991855676434731264367934306124472435789828220397047292667124481837987531507473846895058338771362067903615652889660047838711848093508128054605348813548018516902003959893801873732129632569202345740586899621259680420200493962335089128872839155433036453380902548373047277730002990123699202345245030354285091926478402300223298391008213061038290829183648784209786658668265870544934710559692912661134310955734888305036450177306939225262107324159822134315607033873417668686879153464720442506846322863117960134930692571566574847343294761857951912972934638858316196624846108027150730706746947145788386329283624355350182169792000049696534490143961361103452733283891952164448369043508668773186170328138997199356643358825854479992289530557990802773975100278354681433235647875696010913174118874203852108878774828004611292333618283625695400412284078284331473542685612202897605994867956687311378544734336022943995266202859549596523524318219705619008676491579102085983708179526734233996355688923121532339708611766371265988057331751604376817479863832383106349642580639864517286167803816826841624015471525750203874885648094878361737933384104536754209375253471723120498291893011890448903601411554180023792783899401030032076103757380228094322119820070572849992724656483904507846876265388005278144858981027013536691757380410339936188977173401774743181204700159323456880408372233666346275870988050689315191750854618254013916771464385263923750320646507975300605320696263385311329196550095917120952464056501742542763355143550417274964068294311509121136381658733595431283205231615283573064708969514622531746189755880067740675262183148963180835028679096308169715586094914475492933054887491644373800641114085606509441209340759766650005332186755848753280719225990991883633650200056980372484467801013230724939387785872752405604359557407285189195796877532680340092450494418746054881949397091980547674602106778974226974439923246630037271677180326242131499633986043171248369633041512036385531357691810217345547058018288279709252397757658495520014199035506119464340277062034654503550072135383676155248568536192858693409018672549525089515560881221841991039401130395963947924033987316332262260109052057947207584193848151059622723400558981468226878189444905685640400658940994192585364290070266889990599702670150095527111374300769664213565535084320015311555517700799443491433491812396345418177074598943881930270220295978442111129774131297339277128368215638819258274835046801025816871954728668831448832378750819667593895469260829923738229094269343026287829148765108664097970642689590027484561855776776538276865074657468387973490472673627555598982137754828587188575014707569172202837284601812887495477647735568988939137685746832778347036279812403909873094439901312976858908310699019237331091893179735906986227168199288605380223029340602647452727680595908704324719792159781018369889923521840764508259419035371736998006376819498191890894885450546796198410860910180298190247500766328591520340821955674968235925058526507018149874240475836260521583548765785793832821663085373838742867544177600724533254482522055458217315568799989111051319372246747178887615450991219488733543317694405709724838573070970665807481808562664649047679410427296362076997088270166663263716563391225173085184543259138926487841962561922998209365815518364773273563344035362039315492131057758150474696671706805261235931183804916820722392244582447714762706877344729986063378126864967599461976267753716143410587958231588875040531902061756527141077066595866056667857552240181469583439893474805030116451934114767449475998931018208990170825472080061778242202838981823275043057457868963661850224718070957266733204097575854705089600489511648673140096375067500899903403746947248949758487891736171535660240761119633078842191825310246598650303118546096108546438900330442025849294136502357444176207150068157394633024973677445128294251689123711696027373878376887447842992483572955127217805965628429619765417002611223498548160503821984103395396629421620159706763303686735947598729436212036788457830536474525855625565731108366801580820341017771463832617068511618363552325883710891223131159276555089733553462775587986743230169278606687408177148409967795716595232873968989887235103400732116321896760643553865309306637545725790528034057326337243544394591497116203421604937796246405925893590460469055253553782723778288765080611648969953262516059536531149014453072258978008919009493893010631262159965157543291075225259877336632362486548345553879810601448085536590817405086729383876391530274266286340909863340494634516591553090776782923624260999573051442404532935577543226142132341699953189639617833317101222874336613584542036316525811690465571460508233970844258421288584336318332654384119637473203949146350895571930808853776869409107595381499407973927491793170161821007931671223902577962230764624739059983490715306450679463959102262344938295537171955460787944594004993257268788670522529086080361312331254494156696216860067859128853779410798931530317468146577289716524992060892244829514290347357438419135804869625196009468844318416149287886870417436465821615468368436735825558704982786082862006589708410804498831139115386126964614714211939688487892607755644369746916476442635613666354358060924196497933590447539852837491455733950484196176426898714329353548388208979921157305349117918659858408361812080008471620912982693577444658898518018667767958991092376039547782301783684530715231722079496633549037883832201582893388922413716859672298734180999176627222651347619249464962781702696694292934679982824458606982391572270622264125510678105881557937454794485807485297817867613923449193936664307736480719397976074510915646652092933623341430819845012366613924685804262067440805541953091535371481346241347440751756668570990463078174364738132917643437358262685660372825087294969512160839152080567081755350026211660661708380069921350832672407097964841904092517433745271012494052427222222049743623684491641358886477762877072131054207080188439617376920534709120594012824093770592391538484320003015128955902281820009077653456237508239172721889705395103564154794754793695821417367326958742178073103810928458938300259213665908817277066994307905887517388811033325445137827639504002535649821748716671425659514997938098929838272100518955836483919209640466737104862904843220358278358207277268077854432696919768911072400182094275695600950479140677249495495942049419164657224947796380421570220542442632557729413346176149244082173569454163196670033591177959121468618569010702839558648441669320197228248517660127613323407693932709861475827948424746184131832574448409190662323879186804646006583044272645927586488883338733860813325023781999353253070376409498927868546546496829657463481493836126435724604098639015068951418932403420797161250016420593156115509162106992768144332148237751002612779306179910758752147232405485034380472383496016849177567147248477266256358412039586548047347671132434843377603557123577737470563964319423416003963606456773007273881978406237611338271104285851248799313679005495050398503346848791328234222091456545904080278194601932859647099934237211646815599707603119232728363620543383361531228540415497810001121944993233110477424347425529931591020614767994839902719151016701856928143254979399246201473324016422787198347105525155514007313223977600222276914737536204415561809684255884834327185670513589512598709861963821844604230910178000480113325489648152111650313643507544222663991102086869768549752009359562958775802158062876497360249913505955208597950149555341525648941129824387435908605822901744781627354711684254810326337576054865158138173806885281238777546628402839806952011718578411811561873969861994597143168651387500613870879276609537460527144120211489066599255521362798723159401685881551450558190978961638923586647382614945883637636019690827083566656224211056270200175019533294652272562461182645370874453009324035114654421476103229730096767155363005031292126361961331032530066219108941850745992084226718265118838650256851960662794752075573172336585588988213568337445545816166944800481803880395948968652008514181173863783962458121925787337445097292075089083433303017206962548637294738260833218159882751410777860043883036462581784578459458708578119117187850633599667317307501834333154055689392264543958669780444129970445985333502093837543418652479255919043750361967128871338003361626252076050803782235949074300610538409390125774031580819139808911092801946567923679177775814895942980744501807527540072703896360990593248294395469633108280271815955659961520340070917483180907530791613782476075789422693071627790318819136990802966093253246431980564077268666355664833034237889185974054214172588516955253739630162582919836919007620505174520098047054901015514500500869218924924684398364520036736802278993362728924629776341641127341093759104972718978472844556162065254106110241276467650970965138169706704323102850810230468984932470417301616567402056560362169614169377081506772921968969799133053377200222443713616775530323693786407733863652162438165464074530840414974775690212626213882363889148252518728960576048208101388819054522329105609457314510516362143823571376836431152048230616058020758534487348695834432811937002392287639955733207429481422944451473122932225419288507365204509792437470658174086014345534241445949407790422849974316765402385616610447401648027565083635646454518949859765569684451708260168149844845220951149690250378238102109183003075789808802437388815077375498330849730607515956219258827745129281814891739202750100504070593626915849688413251601387319988089316495094656459286576831778680106127808790029765186459177220461223824708193407975364550390337032731338412732396369414987787624754231365033008209133448843053361640027850272129116083507329367808697704990974590942247558083982559005804919903332250583007465168998528964696445061131573672546151912055069051466230044126970985164957994645658342660879442501114167447927670217173466417034622458360562129151317782350270938616702600643296460996542257054411676443590821581975330139657930499902450276330064619494758551677281191251828280260701692329822416561653860470169534122889258259279368044994063454824016088887725438409884332405085211607029662717161219465833629583086842853870470772576214127347697054373135095425934584428338446190321756973494344562231795523081827403579578703599020564476993403240606310521562213720354491721923889712383774334110079469015797212748503467243232283646982166272684646897433619691131375829792699537510767575215587701600638934513970861063264185398328387202115797518184987516110565724906591419666213377098344040714432929394623716846410339586597163747604819406989403650746535689837345070207216832737787469693323442808675147066818196349927990510207001692109500225781360639390037742950390401206078645303058014210131346376354525925286139538862951752545075853163099283531292308109646799296174891974558685342906153073534491523846006278674861832790822541410640029831323298884350967955192814387534680541209532617524447485804031762485517650839352168002399673561155639552711371610046063967837467263007943194180126336693739429640803850477731891699231266114175950265043677168875461207534051922718572216510227098659115745857834704093957639601157165405624763325513356643355617441889457960009604247678270490222359848339190023875334966668808389350778733764711082012168091428265654898612953866151684997596639063216378769612509163926672698159102125231575887567519211601852746584425324943097069962508812420191993240557014033241352477819387579916640950617476117573860655153354033394190057270019852991144840056831048732819067338514886277830332454927545279813257175127209024941632023283767609594076335347522872277066455683040505374123164450050091309212213219979139411916785281140675760579556306806763828277359762774326875938769801769901098924283161101199191937358331401770265329626748292786644462553507803906028626247511081081372463399635478166653762894606330532370973147049413045518847654038496440640109410556289717519341881528459158036433055387550383892646199571695623536226988742343265187614420484754389804956696712030830359168607182684623752277346607529905352926180761482506172767340490504232126984004239944114685171336254380167979162952989996378910697056686199606827583049131786670508848377607729990927385359834852364884002524162610111915824498560583760377495621253608870540594082428828220286893862711780134232004161513872920860937640519005634129800646056725134928567680311273654712943087547231305540369591550777028492020070790623063978720669433911062552792356739321681475138320882278975522369727496642317780036143550547029749563919903813210726850235498022144268163300721610204430398197425390898522099860134490523081360073870695087823805564430332179322904052872953489518094024001978928662271038820278333185519015671393928897252877447442639935002457489911192943371218594979858771011484919999532894216498491473071891114097276985257003242292072263533549008066712329887573253135925032104002939172287376689421194228719398815092347594802853996382519010735320926987870759444629812462098494558294604100303998942754357732576024015262393185217713388894818455561500226260937010721850742105257002762418485319016131246228622324924296961899057579176836682689366495038634622407359511515012765145751780233431573443829884947516698571967880644019332800641772759830407814920912255740091178578105599861383596291700154265535522948751757988734825485844527509487891808155547816619522189778672148341681719547008296839261430308687021269186417322063878666051473486365552561927517291623339591846071297124996207149178916124607082923420853557162981528202001633672440972583672814529349011523138508420850580855352806106417014172234117846354560284820022565108801737640292014613724952298147642095613200365312583748221040983089529500215359826701789429081328231361762400535720869412544564639618501258823777657666413505436392912642675310977576583836664683028714656377425387643673656317616402458060020301940809599541319522686356992726604357874567755614829070115571543794542256056210704979502575919886819155362062509023685700884239631017225856764514742346469142039288006520940010808358854816482045266233272936682478223691969444707330305145460936539930385892833306413074205518276778546027008829366517192745799235664213330728825177676589650925281537926779411428132294654719951455190578411889759537762227064439942878230930129087977794774449491581804156825067127063574176616828641017119017965009429744271081747051925465614386746504533963631910323486670609487500496972246488689082657557837756877605595231605759806475218889768125589647208581120468076936578780544297335799404724007577023497455893010846081309502498881727087287761807197241800681463928243952458713621038223869336373734334604279644058819394089517007282573667673046746557114109443836616569226669431967480781308713353246857617502907284471765603508254735997120835044875597385587501950291734250202330201922472799027796447649657957421020040537945455237851357873168487921457528151141186449337708428775887348148934560990017522556353514953691034182543487286538976356817097072520495546397777933996440937124388769098405665828665044029454351298321794317260204141618627244676105774456773473532610826766396011353333057551516064262229847754953132330323739528952691972348790551304242387527499008567460410088398907901130473014765562920469013795176799349739142905427356267735175822243221765240611327513192448023941998949384870225939051155116875417431349035808725374498582151388874084856088302316320106808694923428415984450736929626040492133189881651099553274933478375766675681062766412400490969014397031551975934109821974481316844199343848650345134254860451113811574415958950723520650692508903612212412493568085981982398014041697754741755892208639110624569685801589479528285114785801189106453662059383099118209664840389520933052913514444964624672133205140412152614145596107851982589308914606939609129439094997496237274700551637288942798655526227102340774081350117846584335994203885858401942183883619514704593037644554633648415600453705054305363045470240800456793517956240119863216370319167577921839641834996703912518566066167867490405537974714367976742720149911699294042574308656369602079048229211636328405083060352635790503293215111589105692615325494831777893903447961361135373571276445506930267521964574748451399202441658373396485141709577415733835739332252002744503121547004160044630532500453448261691449402901731054302332140091193351446472011644841278747955012110506008403540865299991398742007631993045003531129095357406557319133101561582555571081537965605427686305881309325522559007066374912543442279496556509205633236624690755137688429153254992155532257262954651070933435709066958191715842884704673423170615319381523123197961088472724554292070572648091773912945952908755528855898327540425354312937383867355818281141728430118958891765400385572345767146446281724531838905099686283967607974304572635287844694275837198257762572822962516711819971937155145293496100110916779212886532763953320825145388341187244858031952975341018667269084966066621672558960518317326267056550116105705745385840387167794776448085975086832541452078174671781586975583759048944810751312610164369559944730437672549042872128699670212912817351723600358654537540570550512692655302585987186738238760013958501782817599202079985396210502784271268376442883862362397603225586157283886135041168182680301188056025261081610742172487881497912579038429266506997011910777828759388773788397752589859412252982920557054931560569224289678666995966114900886017487289608385562282343546330686643662009381364936243872636500660649233436878126179727426952038545389012904767475930374667478055822204302353988203380028928785308443989750634780925170497087380830784640841687186905292525990431541933302475267521632176811310783440278826101376059492040786638333114615223405701578939083467136306666640663652748621697401111156794075703498866934086737020132103488301406593470759597002063493555425218033835239595554503266837180082595706822940203595272708089361715528343298474773619463953874394748109997835416476018867055261664219421813723453459440222125423358402166670357623371205477841651726055974740537845864443912047627315802667225843625828388616540137528093074410673401623453865659451387194294645111353854587403768660400708183090605173279121479206747179244022235143333938864396721597479377939672428967105139830538751748514312130059788308030365373694868023310303667512841347379849963330547363272333304220895687416603968435419606821912095774595510048978093874792048123550009636503926747633041109562448630062391040960994228758509888566533084758784476452128886571062832140382923284795587805671612368650345623429709310860521020406126135949844941565738136475895989536869283940619893102191620992862351167609984774180812170991621399625124703554153429738505717983193739176498830537986567153274181229798854057886820105423108211152126069710591360795823722570718190997902184033347801589214418827795674596864290879256044318790767997979158314514117631528383240159070070613348644467326680414028287106362265394937771223360931536421879858390273001346434762084029098945316289205469629950547232623540144536789252853432974536251263030239729650657921376313482799540661371399690480024363569406513809216226746580230312435078889590002843410397290261823283199972001659044051036802981662988134079274224914857508791281812227901309841324610686655452446988032702586606662656630038108163157811169252454533889209653018060233703811615464864987388252140624427997899128947941509548258550363720736536981394218061173952104464690912068198235590936542452661164765921452567399642164375432285554973825657289876295593807130042670136946918325329690543683939313440642202751969180901884251999981786185443802898947626686804105069113757277631362371763747235072022140373513565126633956329538705297637242249313858962379129327333637198594325762216458277434807309172026653184704545384930477656774713438926150947452493400780300130550708713019140265107756868752892417553162758596940540731307363866446743776267998137050108778759881714740210674300197612586972197755778069420981528854614347045150012249743700182701808227825163814947291595926474838646266829564774435157874009696462421313146702732964376071399399526873690755954664271539700230136652684734046540424951733067180623867086855554091467804963723258389306031302662300050335181880336497743660106473806325274801406576249431240753535848775746628638244654683384436800314313187719058207825260246283409135803628253466097533144877844734126856845689453196743938658157950946975105562583877543120849193256573325972969862762911406916343090126377473161503106235620115343893464538588382100711227923748855145307501591065469126719825460677578008294891103420784371278817562329502066620707696163714153476869873385351213734194935704004192445304860595342718262003391573876189929686137488532832258061371576150969558243904123909013875800502274201463404848972835324509554321291691350309560527609453250480504907801190164417166847713968784429525386218574701501556292155929926256812476763218376404140553293830921890997622255903808272216256260101521034788631859678113935295753997192617561354983085168318142183306506791820987188616663698908183062333351410760956654449457118883769443996101317168207914006627880936498898319544178715762380941571473960251976076703951786955837662448640269043304307762701223690429709722399214723678110423399565058555025605218147079011575404890428580574350183522416035060416541154883153388716057810777496780009624199942864553100759679705075135086014263822409443945007652219807257979961156527112984031299949452461918954320193401436801357293628107975302216839848858554042289158793272298780741538404033342055256219284361923116238549112734060013435037772478912895074189006705863105407227908965422542090412470903225884518650770409996377679186219305047871130171266144309208665054217746736192924172928352533420735836878500386723287110172667230975682631401608859146910722024301971975623277382161003956392833937938821229183720583811054389256473594306977183245902011931634370744027530142212078222974469291617936981213529345449280978486007493642471161916875490607493403021257216664701885056941880538443306720377328743683695666899426752473857953865563112861052648775544603231662068377660407561991745383739315407911107235354883581553957391983131885076507907903059348534843402356629884455171151683432803249964029704917677476777510648310040645781572283717614607750904198264899099968418230909474535843139604126899626745454137478339332430795101866710873433954052777984761291869023845287960996135246959184999231986295692109578601349593846648322440086693771863679744372641171943882361717776264428320715908100342462388033778419407560815477666542661365439750529121724923016640488293167576971196264256938154244520102860338615391926496720664516010391860062561514482568024766251433806809092024271367430730140206972859896318607852373981245067605505639700917858852163085453202102297523817296099137158318879014938865450673152050960713665500878499963852165929244689942142300427614811667169018048266958550495057217977908518475957602382730471713096552434385373359965156490507827180551812082002179527879894319647174952642114949279689849352785606870432799173685696770359432094863089774891302955269801382094688159687732279409192130118824190284812103213041777630858958055541570121918570570714704590391426502078218445443508211513636781495709695992468521932314096940178827390246514101767954823764418535528387026787457538899680759232959308792169481254800874325270606358541570484395104670553014193473594231708035554016558660147462716767671838294026083611165288823222706952696234762024097682974833039514494076129062852415475422542689722694465519486788976643491245793556991085231062253410552953643960219787984962799329705797745908504186515604091090274667244922549207256387777648973720666909324589581905924776036098409916173413469136940813137647119061537203919230160263810048381619263687720598308222851417689070330476057405934461168539126060369596134469028759662065917658884255763784444564789684139353616964616976245057026871832056592609504424701266720953127281701887324591338599292951108642623139915125432251652228762890990816708391955588741360259634241924338188763509420321822203745019368479809647529502491750356601681755113348710635551775183731903492217678590772612099633518462449740655455857629071387401130495765303736093719026519814200766249461743251287457139030672289607006890636736894228347212625500342218146933872848271739998917274829611285194336767620112097924072743355913765940484345806840725181060124664942209405040588961981593073752580094399249513934256483137087190168783772371682945538276982805243909305364772004486527605727453292366725779287370825041462308835864008711492160614704849433138699583885499499875083232089004341992677695369731464287161298087801922837779735654087552281701736440689734242737592282048768905069879582385538754612962504013650727221194364529488813998622620680245628274156731150346669648008122823968395659538043751271650222842219149838807211799287317746760893495945529439872073031052103878113682714057438397882467577445377992191514517938295305531554031277433338006855894293943275075723031608435202807776012705110580285885819123341153783832577453862737454372800780512302125149285036056224309820120573188381854441216437971485015852699142332575920952589803345118888376226895146517209599951733554981830091229032638613507895269456013984154063315986483931785350171778210597810712102042983591819752709197633164051353936052376370012620212745512769976287821814457389593417831499091042131450706568893633837146726617299700398592753140920443331617516758902812668500138848041970635122342678401424566002042975569577142673302478257043816967446757832361155171454402210220234303442234984628660396776847293190056527223150439540803681451674323131812282740841382180182824891710632979920185321031157462401501161575602708041796846395457435963482344103511563977339839544814213439693399461567967836522451348324626563968096067470501199765490141037882597433536848998461791709636403677015090796765070825619897048290524028754200746617519221977101788511467370332246074640822968560604643555140392847379298212500108370769401946293081756025521905058261177248016026449728818605482252416943045235190997401072596133995736576562352042249145240445812714129774792590446219965305307596105826212341587636223232361927044550403102309869014959655634833287819255651225177202779523028826111792416152433765269118810764337961048777440272146458715166946335382326494360936258776360864654623306176659292009858165535328065958036139177517200083323637550840124951326126657852997522284259018272876362465843704141354417220554613960170149163332792053929595248364827674437381193937859332663580478538635635881211232608439518044554118204079357187033742386791378439376872732684018413896608207154598219152233775686182758373160233029771410344079121635211418847672434733892239797742775898483743905655531543650318078241376852942650543100322162472083354740309454709929050041332311010428275654454718667599846016949634172746289715396276083313683784389830746034088807298561918679276075957225362370150793745176671871061824707401315317838145201010087467370702759762971320760014946880854950142420434437549691206323923776519471733428327562674143920814165650457114405182592434971424768973185849231358550110635214778824068887487273308418596404044546830175785722355612006876965784087357395242537527113025517638756724740242448182617622935747962335439897782590882337159536806743876691975480500036939708716080459076873593010035810138261308432110004362143888391708371273390651473255578090052711170628628319503297872824679773287376041624798064996300430934093727882838221298904772070481228312672054768996355347380571206825689928297005172578872390855028688452525349884653940677150168570180799443569132241364947303402563629581072848285100048881367516056527178183302699596523663069481927648130233384996499289638734291232086668237756992513210413836311956376718878708203061360367176601374927654645967594893930690572545843838347308230738560745969009355145571413468133361817727995378644763617569868749754369416830815045827210248414258455900971027938278904481316818610831688974458565075089045895391356450311505163910658100505959127996018989558211601100632139214075568689469512310474212222263991470615068444658940100105710320530620217424987953675888605619164529290887613885389900926337165816650238895099883743335490605487214059967116372629606428788049290568710821984764500252875511113841358309897346174308023004640144995340621841882667968971146278912708427686419880207826238606714101137058357163517673876056829551975443175778582173999855401976784559640622829420728576093983138084688661425101140514825862050622731901997297971130249265158909308699794552042445865197945163735441900253123703511203818774381906851353128403655512891250734316024741797798208308061868678559665366867575524127460926516208758590110186775046370673551381577969122419172402104475258041999426091503668496576978091075071772462545898720172643482911996274723736863260328781735480891522772121755123418679348868219667790873994075994019713171483732785657034404787921681099399538771045581870757161837613255992192928251964095595746308549030325535095844468114770594458571751743651464763884371639191837209834457963839378960814982755806455550952768107808542111189101338921740087038495820791953881004302712649711596377331439209540086981694444350275697950344489354749247424595682736237150275149654740206373562866714713477225856668802752924633915518588437975473278163398279991299933456189940907894130960640820004425046061885897482359567708361101891891709425829307784719068742422905588749333970162424152047920534231162262676416585760090955069919529122273961970891545365852807147639400209447979861176776928839996460188450675261702389701716567878298883848923628158360896242178792546592569402269733516909677970133267978505883917136929454390161045181542449003586165742292396611513810523538691723823740456887891982652111480254550073893239201213451075240487894532780975875504610201561824264858213036823344006554957083059058597887136314961557760756303762051772408069995934594283574974488098180199483643670305384357072648886202087258069441584852290030068965853498495991349177354030137753861036311850337805071701978427643720387843198248069824548275593260891351367015857874295556285030099135609816625667328373427766020842783117049332115641930047327301260866230958673293649400677754847141421961942766020534668490857512829102989674307426935317639428211696428318602750511810298744579697210236351560776059886024349207064641879933407101020279150060601204336122429771104570731042080579892680467340880805735686956699538561627440737320443333625671689703961319333527732624325202827309984971699318015245971305065103438790883490457825894620113752406771386504502686194768349091469376247544359364123429486341455496267456264103108902820452002365938744157399524906629952853304111064332672581368890991479512395176970975317425212545411225056154553980260602458892213599837529443976769358664834772193962777840981931783176827335586590275830711481763043309050841067170240824145941808181762747631217852885995708743246090200216234299712227155111207222127304119506746845798368322831466879434476849671985189671122069039203884238757319162031100755126159588839381688585873539149728636119024254377091235767829283702499604226176048797563472332779507450331338817377288769613138129370532685566704835369854892009628207824411097586261302092053405200635313801921316641241343082677249161834378169217523961538773535291845926814458560616670347096947744858146133086805519796378679956591909886808867189039165387224218254510444776215630860164552080008739782698616736809504750911173770830631535277352907084538156228209029663837336095230101462148389246124206333717281708115242674319329963529706782124125851356632025677600468999662716649939736402793245340520040952312587257572182319294741495174600624079462991337129195582554469387704335162723617140964080128761791149507486909837708158067518960630228236080828562903665410244453701135267192676811697335657399640931416842323586619421595762916975586099873394890061271706300482575256585838043735390594678932621619440162521702458803253693199786068600356872071884205355861553502772625740897815241689127343262162519202526545734833376224448987890096912917076597578177824470961785665748112930804667878241888574582542494118082639992090368527172162634885146981465757843355512379976118863026335274828147838099425336907545332915827814072362155860055237235435101537165757495911017903060457239643136073681849877696010783970020540253153332911770781827386742846140770568352415395958505493810784415296243603471627250559835130625264807606269743309087883956292434685861790288705105619086493352884729902112967082188031008422525654410442139190605690931585662654452971044237758164430133368799443162400206683354634323835791676737828035007668857159994089708347801377141589763621054273155630348245674972915636606572925245789136460890493591928271493486806036770210951417570833881625568050822011298651987541185264869464790063573123901018094851957313620425561030220171615364392674347207746346122575336439185344580682266283584711234660644496300471872009567681194393132902818784946580178097228776468493347548993313381511598127927405364260578831262961573410171118151085423062628978511827367398868192768108295014310250044647559127215648736912996334996081543674852949419490063099304528159291434360011173925964261590106564198543367662336439452978579763675719560995720354646298408729696706765901394074277476012061542973736740779231864409339270923720385340529232188323356316905495146642604211541976296165827678821107241251458668142213677713563316133532983269159417677787130575414506307781748479369667858346041993062043669438433761715535595990910975859069444346680312821862379009648103080922408591148552384031685144918026988119713629083335954781227323931403005288976016342698145220428172002890745668935348955673858083411932762867804806154747308323318271336945790850946538477844731828809519913316822703368444185783607199324333662020643305669201510619110715109787682717490154946493279254422147559968509518677841282595705242142876037467882526633120945301584156327607397126798536593055366734069707960803069938555257730877681096459574984661866898818835955312539211208550203542580905457583632049903523962317039280547767451106328383060450883315294698198393257769667045936592259541778932357613221650773655543266188478598638245975276219261223023160348949513845152510228591334754929676070801239407553274393295096657864068819318207430655984790139204356412407627286721940818755575384524218632099006716710725776526078407328516279265709089910113323438784461799679718486524096859838835684248487169120354399752250044928831695216804034576597640540173066594668382415899699057199353793802372522893194848904803091458748464019286818397039328118683367948833017705624189178766296540261580138005303677172866887824529649550831176953668056364129465100353219533948716794045371082177369460721159607971850763636293309751686209772904984995674947416596979258322149456278620322751547378753648823699238925343370943941865916987139160137455516231364433183832478990055485966901270970565561473912302348252566835875138344991875760836373162004663179410127052686968710613165035167454449233675668009411331080434797289130985581832908853542636854703009384190665811868766757165935093733804825489665720113070484621613480629306263496157526985500442933471301496194451185868971967540720091661842582969471952207830417931952768371215538795979725381059812473614346671741320821295797089749309040275657882501734377117839206097922733547814100462544957553226103915108616304097756843540167988286217061912440316323982889175616476163420663775333951709593136652053973415615491064528814004006399406160756493984494114698344291700019976344710370154689502708532207561588562562053670388750530149457168919887438978899471970615828582027913599376016803867466559680642738865982273678160356151485845988903434395364863574920873650291048268600083236841844553315064233652946832470505161618442224522752120993769140953455969662770831920153665035186084007136337744359769621649048518771893622188288653959678212625290032578080096174695175350240839331623647186825633570462629264481795184300073443623853989385515089590943277976691967626821675676730511184508238654922307701731751211673461337959792896127795129124942269608218109491626910552740149012022301386484679130438416347549767130964961075836752678967727543954835957964833826364340343111057082708802291490187198272980346178985227561294932725219774981082292353525889067746829405261330299308099048992160296130612093576960097346176255546009404915470533489130420264178426814971452747665049425643323233966376182162501983151570297489199500068723207047436597773350523001948725324948762004912761826756704307639661423625481907644340895023555811148467963157764726124725177942208865697973572177129345284798453102804280866974079821601217665191949628203063358916344867236523071951929644050248223003099208558626656782195130369123122697744096759593968297815231524761074899449863579046069113328578169447185719352740074066086851998151191747750994990472723325478561063756977544413874196617995466216797313449203329093304875696289028915971353256503268483619418433073811173968958839020770383938363023580755885765074540677229207853885867456271723453953059244661128539455962251498335170422636101456318046554366641381856508967243738542198672202313604132401039135164342070419506020019815462498648380971365501026861618803600495168845400559496025762181276971204748502779085740136842506636452330175658156359975850853677798866597610893686460000999510077023525533741805822878930980500753389899474182899820908367285614939919612575808195534389231527426322592576777530600710558159629717671980223197156431445403131227506095443162648860099012036693550162265609603911263738919325405108655039632621883770933739207516587975916612415237400818021429757985500677994152369071387956325071691304876202124564250877636500461847859631997867380599579856842916201960386070347403553834181051505657243243203664589701371979754562074767117616981058881696936280844111628896430724721164185613694516842382571913452716707758577382384534187521792370440323109114364797632916257917909183017339665740001250733550179920672604547615907966683532842594244566864891023874141072909387258556908712780429440239502211722642302379041855905499269084948728095961757840508204063890745986894135178255575541231110598944994335508937331409381354665512358016918928165489344197619100649370965931402362698609521526733841060959173002653505044339175174185670455683462894625955364947001411671486985863711220403909983676338295660177801688841690046144571049577314196001061819238820494881060720101372228050607640008960070692556680271312107025683999252141054405936219218567537967321267322316120272536343768585706718808684594702926094494771507065196754529340770695649552958861830260158476917573812055008652404651818253940311342043043642008895777307051156258991723766173716709132100693233582084081576229904769205179786600804956452266742694947423910370925258381497169694924080660879307866459714878396461164263186774960277466619790788200935493554472120074385380599452495813919734457380214862858598936701517597092333329756449424653666321049208939008388281046731428672282882254615992259246357621669342709049234672909104280745207046593205906899672324956670724473334424469920030145307128680713684003723316473635068066235115241878559978681522741092110296329712486705789455568996653861096880898989334738799689925183754022679604434247520969810634599757364096488643654085266745055030194555922035245306193818880393130705120175593677513067631586328850536045646025451971404824358014190176264455833170995406506971223706131837512532852704365112973961380479571370802955592342279211984796152612111432130751917793714339053965765081983304213316687784623832720033053572012391823055010584608396142990858447857192434725452978726913642953523168648985129433644276339672613057867170857134156334542068091482288000195786815596337984422545785235182175420852116304315454909056032870767007752750037761747591897570497939562770171006624870505089780298092733400307912757757592428521959352212073685263243115756307341113859397429462150751796956971792337097133876846713944162009450349610622340932030557391383325057973375820138698505335620057562480777368956864384367888048439818231311883173416655345275594602989441980528436372946145332709954029995474066402450295821393020329648246050529075261808891552401018507154994385746916691659096113862742708708634433856116202047707484851973365860870298744383222306224905112830925679190938955090390526893402495744335887328851905587094946151360772854825900350619918006984778961497478662328534783183781068715210140133994561456153680585312682420858617428958285856949896932033635711338199082409405345797675668035246612682428916714153810356834162616087693113054469078941966306920183772935745465029341086024430146120077347264861604163154378584832135526183346675719021674552552133165079204373232350384699323128903938565606385759859192222981489942410070488396816976709591248346973233885001706569681172612328470673716215041958842533033499008163549186854763624076978043163851164143436796572027741661418311963764993760080612922176642812705905658369103226311553289823132461726633197363415865691199843276329989015388485551120936141608037192675793020578081880810406911066706181316489349008503323261671071354246322161934319740615864827310182807059025437679069014169241239856015315172335448888571118355040477971749091533636798677339436376671113625971537675685858973632903830348859473137419066782780845858972074592477476439463521688810457085043721236020018053320566870811416486761348172747596965520515253670903292715392976547999300311175315813448336695885776238339811046568142142768387050643720948218155375573902983705369134432536448951557880179957871594419589078088472426581199198802938901177604016928327684149768445548810359229157542381522361508708346365054199717242492401385751738903146143226960775522095031280969326404475009385261877592566025719998684943300072013854862188967776358056779327444340540009750329469996906001939322687431653265098354617595096387664294696889637204305029851133149672474392665077904231250374170527660802699039632003945815649872634317824029672318778700010254380038807638804719088351516503927469181549026937044917472358694179912044936613346194333022848917206987352199851715350809308822901996604421480304429696343072276404682874174364366375857924011189062737520021482892589889200102353982944507176267157365832093009717873180439021119906244506848635681613658589396212146642983214239845313843998792042325035768683720182387217400850502362112008155240598317468010402116216439257742204091364200235753977522743707120507232731616346476238557047570196255831199769874836854295297558998636384592457149542050605702153094669554406179895568944349353224966708659750580819879339361940969764843217303383600616744848107915752690568641963933563581951514488285415125006302287537432604996261279330693462691879585361687655000208469561288071427169870241118665006291919631244530769620778493441843509685391647043048270684459514281442348615605670223278283853724996109323678771027663288519102918971542242001719806872079314031972902868572256237867390693497172265857835138530024206505256381112306688274901977034842936860423203125159001736401144518826798387444374699257318260378906071340161886277092831782024041010024986471126901357274176678418579639802200225336994563968328828065343592265253514495805319295511316635439918158027991159627790721120645501674854536469738161985909256985898135534388389810240859024887349258180156315590140757231608517326866564954280400289163806901590563340627574560015333231975334967290231335618370723129570347313938439476079869245745426534416775246119335430872424309213124364942218847805720751547904372982555155540516464335417465365260706607115402057845036257381092301286561544878460541545554519472539589306750313670873829983532390255231649664611616521347376337657571705440448164591127173599710528934767144725333849040765209250167805533904546355757232483995536986667134077115865645542284774719902368686193435731877152744119894369080221642397214923613238513532598047806685922422415543942715974203671738171224979104437760802347561979072646692265640634645751588915711552350171873123215454150863812081595174936375162908853207506758490662742512328270122732947852912202816717045484271757598263758963350109764448816698011950913335325423605204812505697743604761378020977691477948822891206970435503179539166039156691215120789422311994012101391831417715171319847254874905057592172850980207526681240391671035081446659554056585800732669297000621758966688879510631062475647157349830157273392632465937280239610072938634999212753578795447019711917754843168738029909265827953071986387595945582840902827421106502988028364371344668025131631597495669484781188580606500135675782106494527995664059372466616984514280289506746780755833157637845177246375884510009613545423181256062750197624855719917406957344699248812114265027044452882643819747309633085212490579954843558958718723665031957809049088135889325749922875082124658044778266912890044058294745349948678246243235726649076929859747861042866826834067453406936409685769587005882891724982384630264395491291063858245714232272079583627162435940539285888840424703544115289820438618032562354082508352594927963696912634351829030888538722121393191317841523115120914627874712781526479074430171347522330686482625278057424992512929453605012844693241104936153200654433471237353272700612173547742819305784497550168356460672706173501563191964603315917355255743347962296708912617347292050865161173024374036495655083469640590280125902269267183620876467508801612644164410263402572364285148961020973113199101404970672801983866012906665781669095174764874137402822202623363655265470237744981565465310417662825995240917764548209998823198654361806304938310414087347199057144371740580145703821192594339126230009780756752698042788203352127162093756306940309450088459513483474635471110016092741637411016165294416194456805352519868761121033424232495301272776492274002392477639042839086748788430806142345697998448363745872424514982604028695343454985405163016015525116877124060249818976203473786044592367315806632241417660087967166970757821154312981409416530416894548739133144641253828276234625389826509952200677451455282070372104825772597949406007737635551319059574252203632233533244719342183766713699069100596711625048109765541821764702818374386099000996128778379721924114552912207979225917076679632054974244552551850786830530765114154222937524721557215624346297198211236420310707933203444532715497103580130345175734945644131479390078563013242451222030353016521056684705156490473616832614762624071957148758134628735103143266667209501878531823899985990387315006151356682075246325458134094811841551791826206642839195763791645427941842913216678303086635850350011876716557118189503581316016984369083264767860125302496880182504319866268015903970435621754284397120628507816467858958744868700345005165363845458433631766793180476641565183759290530010710835760394025276714279456222653033116763589136067349994673209226883647178081910583605746787527698481869713686813048368908551498155633375214018303851004913637368689646647470585318596437397736588712216931311296973944641458136280422453903611789440526720123538526062579664641366840421292510750108181032004117368522692230176643671324756693061700367642494331498713392123491471669678813018112186252109639437854615354807744554637932841865183426834247803363849255957301199545803605545583469675688221148319973985069126307109271747530279260075164932858828388109492863765739796834508895801212350123597042328105087926349628100683312253378349036299338304336805352439190766089611007833665646078740468683366374490202961176477415180729408768843106365519361826469754104959886247357819919128010525110881910837184060245166743504910119582429466973260239120947145613103781133673944815417955549949374601033054737501431147508342133586849534801082925338925804616555266245139235137608258808778575951725929880943408914153548114697351308385822934697617284816542608898798482624194644107433241061041094226298892768075065331008115287902979172603006090855236075924550406586149973040929877487506319485354638589510430646969276024688998214349082476230257825520927880714124270101380558783554190637701187099425097333441874833957556585962299548817040624576812593098567135682943908394542394802297956210296703388638398034846282849958761443022604835157761814518718210342674671142568849895673407065301626896487333075014687922336426971849254354036712222109346009688632311043840751241589869373292339338889766794866768205139166462067138567837628460253884319843522834066684876291395948995217871086388543015772548808283254027409690648005685144680035392652862216174273284245524791982203389963654024125778797103247770898122248935613602669861927806732074434222875456543522229376290522805769271140703675022950293014133109749436277005207180088627877919510183716354347153007774389572187061937063695249617798418345460745200376163078830138832058841904221336195040037618674642140872650441766807955588540977412751694886032085963089511625695898362494114127094789884985665746831218108161629923610114968026887902270355795349020327803943392559909507458658135883760843717028096220016172674206153827870615779344584335605675698280101269416287498157254816530621614816772801790157852677010386501406306832381447197710242099623350238852286821865284824464684561469633830685679382756873529949630632328801332543471379888307142170114733237166909830601539336338063552399868735897557399611700174277404427380125648213437732365203452279918228997517127040115555543304762642444869928879287170503981468458830025235881973668102901144947461658308054281187829789927935951277731212134455562149064011591426564406777073522295756510267260235058589690956249097778267013780081515479992944672220638707305567153623569169834724769554370131471923044098437397655613415603866141746523231330354198734868468977446011236567416893378796489280746379997618161706981032388387144750330475318675998855522546311826823207503053277783588682507811813575338960083201860454410450872581196702688209072165519597944308779789831044457077152462745813877683582492341359271112702854652234980284529004069857823766281024031198554516335879633263899600594749445720880946246599925620077378175542815686275891638614763674459357299586985324742711010997426539495803532732880603781975327715850292398328702434283853091417258424329637024760934189192781764155614787928194101758882695434373991771082868261258819822042509593454037251727761595299803001234277804564405435420167007761682008414995602515654136021658562322104722967681294091044109047389739170911320054716274267345696395144755042728032945664869081672582161101528888426440600690978976336183607114590820046590848573231776375011120942014573255992810496176741612660297509436936170500676392982031480008655850681704571124882811024113731946686851880988255588679449211703560878357389449642008223904924030932988784040379420998535450736066269791698151878130873613646776284552017338459430296530628713333474629543905357210245501522154801975183811260325028685788100631116635745583117078015599715607638520015063343120147231282583181409753739481487176654242164847791185831741085822315776808995827232326436003347904564300291298144034432787127518593526617118594878547547221957732449571199988428590671826269702421768461639068499665853614554513586107578918984554863462915484248338685475969831458507830856514114828358931201994290249209926011593348023269476114891951799016934661519480891132707279039473554301766295797889874080330347237405328493427993059743990208495263437282219216045303330370826917102587881613613402945634447452078530798006585520436946002415583502624851543246414536683244837486247407057952898116184356621199656615446191210856647865199722172375978138207351565946721160414853269051931630059771911077446901256913062783097440542567992051511423949579697822415803012145342664402632333196670286042841889810756852769234284890801754874375962744411243205717394244213409397406965318250964305861691261813522401224283696012082323594242843149121928384615898370178021343989123791022619999513446488518182132092634511285158770377576551851541723682591297081586795961612970195250706045388701656353246286435987775550912352156670654601558659902681237325359498798683007692574348863962218310364719870202722597017973463827558110835981892648592939634704507917382323555880805469363714142304548845973696612274636894703073782368312014881604669766806936631027002941199198680200251296581904489105347599657637896956329192060278330089544639969473514769686312504327289206031266044926087863849905265649720614634115232041905190459026223852736081436295135833095603411961124660210736436501758177897504019844900418205424195797991949128360476742908118650417631353631856848774435855281351147321886488263468269526206939880384787598431059986857389601285300451662632759855795508590444554197004444897084391503277463348777363693323413081801917370688557110157006530234376463094555515410887825070104005781958713035314120357577860804742741248324307103350539279383982416838517142877565760249385610903618073921006031993578176535653489027005695606800107592060528904900510491353319755689860733738447745632470698657808928163636963799913716477787288120916948502179426008765372784303893068041502602330289173353199079174183030667184798543886895647801354242278159443107885073111262123052373217913810918793068722522923106748659079668828388606146527000439352943958715143061012478892046668751666284475211943736165455443652493629020959549269417080217027553646338505509560824526638381434338265079733962994734109958929730728876004817017677422540677857017201258799821389193630254931560849620863886413098769906249686448510938656897500577992494531382320962353520482168875662600091647511255737024105769057631981183620849800658700204323696172089033171721811809473875372712224263818238364713971447359677271907710417844836814818451771127703492999207899807391328201903581548852691928265120600763584343524647083237792584176427823597991948801431754515552344130288637413781726095921681255169819550251812975230219200420654882134989782550934106258944392758861530985058677494453963340065395042493291628946149791859139373750830925321941415156065117435243547585015308298080094514086157479723253491751603185984500832092253913008639500806051707805419663233107645706561178390738356111709673621736485861962003734151359028848182461707575084380924522470180313969985212173972119073116571564355585092992341711286061608568640147149784544519146741077013942233358867581737419410328769240056952002352869076640509042456487240668823747148487568459079810318280201753590137430660333570618052563357819394059734596668153838413194379019210752962805482619137911841148656567113522729829297319568122750529587923246649476581471569911374876169984878689798301467251753979268730084912141615246043376531085207139278643585229397804842574639618938144128518056822809091165119896419807346926123295415950638377287204390908836921636262962870898360973386326577570435593807947153227443712503440095305411996148944039114891298602736518615006357389265676872265961348999696662752119986280227251135043635066344723378412191395413931849722923133106156355821241963569792732435166509688182017222658133957110062514602934634896390478031685672135628156757106446802121564088775943271923475195475456570550417592250524956498272610064137779907815977748491284461326999973341440246590971490448001218611691663520494487701120301364313143308656926889805354879651489872080883463020865792433577243414205063523548468552627711023591788399650665673749594835473321626648681438355721988322029605982061556742721845970345943558232353489242222074304562927151154731548171027672807620900720976246108760755289715202044028054905207808013069754269685849925977994491400775626422289495632064675861566536005957813462830011876653353847470090156358688018810398462682005558251098663973227627973162784490390069927357389221475199988951940488183834205549682936758197355218340088140947376434340207506023011729381967764075263397768642194143382185413486736610067864716155002916054409820403699616112309759728074807769531344614815805603261129791463538900553638589507995092618429704478806510454498829499186039689857716382861224648514999796643434489414374116493149074435539168755269572304340544485656277634042433739622491624694846341698039897316518077137355618573775603829051824094470021275287823842563135610420289762884814053843467605423079974549292412024991818373152232787587395248940180929860762797802092213814165545678533125884164501889855489626726417741651452779882736237987850328603220437578040435335926558370845266008053318252387525474289372004072092833760715624840651955193827994930114731596137519225136998547220234728342023067054489881198247297924304001342541682678685287743519800131188814114934232045931462263770406962498031310284346559021420325214883905462184598622968692149356817045547645995384576055294074319393048726144602604656623716521402515463875618596609186739549399136245182001214818261642675820781849926029150094498354794481378123615141566042926337552741221154149485484310286673691891602909195614133585252563373302467649002209540807668349225237998644180458936132031415450796894722047516647930398002836143647466672511274061868568008093489954924279467614617340336482729612772527968909714449939698352467941474832441044206823296544123296852324586777513314285150812620499406864925504593567434192594604524983400489271177509376240485893278033817373505271763697668323993884164837213705630506564209229661709880087440710337825956672888272226631133100315850480818663381198111318462350782607855464641112843984673136795506572305810616708683490301299553954579365522151719592745840067658010563880411810025579114725225250932083214280077711334226353965812393494018119214887786596716222114463455149685641525722758761308970164923216206408443544231634547203365158557947167671286047142217390950549844455932475796356953568645735288879554314133071929879195501577768236979960938311175742130020415399825088684996737292154397349777088032077061105534749177025757245251401129779328374190279301645768241843944574235677026454400630362561401914424672022598852104744676568110733558944083557877101236985693448586354629898725397791584131479799389770722714864966737101391654030018719299996927726259969540216267209935372635184585959917705633864808101769329747978479172835845012390842884742127950358153832457229822197485331469138035340155160873086340778628968430830569072209509257603711870340522309369381330378556608328404322409810855507910249275337556010225709810583186302826118238439937142004425275114183645916475877129471316190419340918931424117646752368813317305352026944777689255606936299339547560519684059778512991141174731266295947120665223388572430635122380367940969231256419668039563780931314127241392105262477168804337104088815986381302019389345761733199384479275778881146767513224468258825586315033052650035344859670994426969343023214268761327492910502464235008519034500637205332215376280397571783109885329366323521534134232453142700537751585297004652395224188421143458396208217003472448653633180245051090472973336906711051357890288303383742297719668145895545359160501324424200951459287253234054737818237284589593492033958613350989534307825222768353874308133490303398200122493209832600458737875534617337721150893383607891940964241962426889886888102240858661999393378498012169785050823998377152039393116242202730584900036664089471678684775888400023029366817672819735822213519435894866738697231207065882994898515241990866304146033869680993769896339155932291954225252948567456735556041467099908146195720684401876102482940949919472205165303867399126064293193536761119472752547849257625285817410199869557901784475466786324404601700826508102394915874518399584437990648548830298962239565578405708503900840733301625741085622135801807948114571663350839931811083159642936436617423830534710464904089448597827274918988343910788798614370977373421479111246427318332963501869919618243544265670408761645435440820624279070392494243053539157768204509779666509257336984971019599751423240157106820679981500486176979690251837483092127411220249807883116638323158734256416100115382459647013652735041981509388711693769896348926859579434843392766974276952363155901987487174329612029778031138626799585295377380570896003598080347215713763100810879050553127397938989095573306352241224534550873958031116917806836733348994196578551989573039356120837879000125273781241864276180933562823469477684205366114172547483515227859117693625725546845290766012907584917992627363914703811716386488619729691846944105652131037307867592281210088336839515606964927808916937821733402313629083657287649607611826501624165083621754054284552430979195087481960356848245013605605679594005528835987334989090658520520076873113137931026100991833218772220841761091648387575223571423670659563265087593716749311148720175517369831028605865791458925462496998782669899415452960418784345739393475169053057890032116719239553210033650179871675794076927253001043186253684465999564817133962108252986447241939277638539286636305323891708148513354970759458821833517288442928426269312718406110911767636958729220807383646905219364589113202004691460418569650056351062224121339291195220960296287446155479437617889843074839744611113772434702379593352743019846793274035064854913953629936150913907216506132015165107247774305735606676904743543412397651137268995604810808868084354130481845654381458794132157298826770643355674391959700850396834411986614113486709543383871390797960558588366504507622297642278624570399362213498841642270882535497439125450278547767536763211453155258800692265446837493084312904059328030595371988400949403077678756481234981086044045295272286390317918796177723752899324273506023331456546253594971904771126525801742511564568279485839416553915139942603523021999751003751471708520322421334630053645583036335523880944519743533316323229855008657300458966541869673255548176753027471729349871405151026192967621936048240544532529162831322233244927386643670695635820664888945047499075639053342642325793404880746082189936650001395507146405173290008347606617301482865415230135495975345541245922576396815994355760341904739720265293335252244909914983510556693036390721362494234832391617963769445657062498025042660189697228264707161610969953509989124238202749486890062067375128522778852088373035073516691207584637354472744008712760376779633924130536534545709449094229392673809495321855857056319955662190443935478457161602582222820286518059899132010281681413733945888114820556741236642090626632298154014420384348958627808809457444016112020130441007418739670782197094913702276809034548863809896104368898155592348931897213993134763728507001801969012718970330836478804399831779020161942241264604209140114767541854091496363660616306121223527647598432009263937200210529495254673678681871284275665300400289838372313104534141158878343994013993168982689315275787749845148480219989622168464865173772537186718080220496955891580632601701381258177784028533893985178633867723807255499499777388394318264185576415670507450082350206412958351204610815687150324658462065840322557205855709646808487373422504323312678327594917081909865072676393795800533626468195469668041113074846861474910672191699513737417272819409814467609996758479094194954412130296136666561222676867119915615222265920105439285983884425124471545881127243110610715747245630839493718427581721573216582678955463570785935101535827768956053006009179880108439285685099717767116982582766667624666408072369358470912904379156241992865707625993491298890256010939031275217132403810547624903205523935821146682460255900088748715904344434416440857170632444924494950186200609740315559545712094421268876986279908378591098276891205321756501674207013429752921542197568619915136177177070118232701590309283483512697974117349229933362583930270440866585467996045552014450788053864266411361408273295380107472699760999088953816741232042471402905664878135870730572486865064721304745046858676146622666120065326184303441408908437576994148127712060603917605149900902751461488951412868297387016834824705274056353348448994679040220004733106759480339449089890237998833406399165543472656583851533218139701957788880296889648469833812654153805098803136315420959177318280471883617241395279765213793744167886431269066418647816381385824926151524900769749818551429131528564070917486507213650065041386065381399860817342664638987290998030691321371002642256932562936046731212684353479715075061172375812663051239861618380065556251494580354191951736481900995650197632452361029391003518964411258203182063266783685070138302247045004874866622778711105464291873248462095938922833140669182561979270166412773930610967273899971424696691700359830725152361580959940023736029531654720746380245359937923760083057692434289151946555589024169804478064690342992548865554994667769567694483694498365277665309312231315815432071870618020140643512849131992618077658132589681654777327868936796322238299919906725729796844292098964881885107253325165642306655747349714609358050634011106394400007662291632359338768371463176231368974968581424669767654658460349731119922972474009463236853708244213499176024671282924398960078182456695971787129763977735344046233547133921973216648846548183358436740056932485328250522945310778084765588220062920707600825259157305140694380468833798265067156836839124814012263353009077769649590457108401920168177848064219616170428863733963235696159636164904584537930689165157335376235963013877610524003632778361436107517124014438677694227472299997252604844121529580335658629253337680489495143268733365366147203197581001566830359643288566675684182512371190438243101911453857754517728322145095423123346066108972987834712111219839900032619427040277014014518407254018628414445475333361843740501107787648695687729385845964088170923133585807433110954657122214212509018824214497279457067374435509216189435022350123924066979089594629303320734081040609959868768113607937702038287168157974990909585240848439825434472839564206963810548536602861821816974577037572897066924257395767825725749301974914220004182253355591411472770059082123116910273802146234641151621932858622804153580472809294090997249440965710175328801312367670306382084884966830083045385554213991661535266782085348954389265239774482482518813523345848017632487139840995973345783935250384049034738442322102144201623655164344184558720021370604936791925349478613772156681471161400495636158669059293700485629160902945046356580878193133064604540279162608413472233525335440559628713884064420445948422430900374718879974380063206917836071734551413706647993634766146144707564213137909718277165802903430317711624075018237169429463146000001537255018072730296340099003502210039873193418535194292933729518188422105925329744133597889443363223929457072404362899246098311207844532885118484527924450262437276850935670435489309383728516278674051281410100943027042968555371829282914533321127454200987831697360218882673643426982852068263215905797415428665782564597615899259509118778158078996473063317373448790965594334119996548171879829373955130152196740871164099976120546126815745311669935594627636142007904723713975941149878121295403505424135080903994417880777220223520500625320539931753280095423386182539152716142847458888423680129882855983797635854824231701401993212103721719235088703667262775945743146144909410123883056201283309162401454219008777127933279800345715156569353660958139814863293319930340905476278835335865818311562837530496480079344278627591018866382447622005173302943247396041425021526892436800062875177128751094513908162411514963066434764169009740486172233105059628725209978424296831849035358517136822267632915046124640803698964700544870009897218434810794599677307076658912968799874374583548109193134918384778251841238514985466702477233791867408115587258003124119514232682103514465798350081449076507360521181577502988318011653636094800152445522307296996974655498164221997185605052923559901382018171491070922492766460586962639241042037196767729375258961383603084490268503820307402222807495968981644887961304532848919071359946865733425227542337375596663134487981261380335621534911897839996658362136925087917508372205453866137786413386929891766063933479043067210062663500866440314346390048935233630746007776296315664772196589347028124014142601808430275409759849355219741448062072315045445225655145374502628255569219022065927982411950965836876675744587740640726011097233826459214181569721171718296004434377282342545322270086129520450411286382987996634667697026490770236921454481016371541411596126636236068836599814384376649247330627091724953620941866261537735354863912842913088522782774838931984997598025710677010563811261695080025273329956735320328020885112559572232336818260565503612885589591525688511358778903589748831059544037325826855814847430069557048532702602008373565504128039554132440118310492447498977942012534066572554133392274607245857379601212735618038797217854106204263752190357162840560447591318893089169548014435988557751015988887881254401656088621745728259761503951739419067554051589411138072869655307366741595260186816851815525021440780986098636181144387694549641170621120348184800019379046624826158663123225706091486832868661658477817572977667759246115434057246333905657646563140140288875818030203048977025758125761652799098021014632923835736228634851240362881842168662979281787582491373238631962850799348172317440726230654122831523339938328584683654876732200810594428295054779915261474868097162978973986617073677212088882615819520121267962427675220282758308379581656692152083229896347377266237404962929312766428048403649914486669626292261129892016777793752724418961962446133054237249148658544898191409921692316467925388993248450404637290895357760913874879991899010604349472074282466095343083692347892027419768735548846147801702363501341182434210002732745749058599313229948738983811884954990045270135423846078835500680669002452569331092029404778095828307087814305221109276806078217554742330161681701003920193277868578731112840305396313209898736310642611553607296791258280051502292665535165668933322932002400175659961997456670263370175016699406299320708559769056431023226154304163939379450111997903877263946051783908571391789368710491698124072624404627864076161454053608798301787596983120342040900093370114769643415345703063287352943902819015360878108133448451604504944864245167764285179704247800655139480984604233216357040209661875621400517923786206597834860921587529662393439829826865377390385569259978165581302498710749130164761769371946505017729176123991126917933982835372649384475056166405229194384045911983952775526774628123677015236249021902176188203856319474094363602423359457521211445101115751016411174262090554685761120396054820723106147464089658058635407947279444778300841274069194967519586685420934686753640666253156648201125789371434691085885840622674950028068209563291802461951300930069532281555321794765441005135009167244948258077433417995785896497581382419327287796661362382819963591300101614069062026182531110226472397849194645194288424522831412737847204283594213885732146754534999734334533839867943476141873833652746319051845562980772145670324379887630523812698550596955467871833704784947350270283766353686544018246677485801238318306852047434462766581712348966869807701710293743512482892395956062688465729627687881322292279474206516194644717411369685937909519056618259685084250522798804583514524075179758976936883403659705725667354393283156143226864118890442791496673060061936998045866704079330418476571378302200600055234340748129507371792655159868044444619350369914920089377846104439576070951882930068112533468686466612505441223067261697300340995017646928745156992242817869417622708558761851057319951264704721115865105345732065308137978492384015092238084204164047109185767125545467844629238709088778051078030797742451811291451655620468144901236029715929756554370720578571886878378242008316298085041372131330184121959315149073834479881426314045031673420508023768826832647102089030406685292144373472498491470496906803451845973910493816163232729505280199136857463677502783104798786195789396695935180466511423989356656501914662778938435533362486870105785334147533058920588262945120405867437499968112506629086021098611695038802395303340918226167028144757364504862587443885461449143794122742359945008707743868252495918763528690063216896376692387840204125720110575841191686080254956335721584719570226155350901118232778566810470022734439768883894847450172269701759227974480648719575360055358798900067313806720698648450313099609246616673162051407268032682048774842842338311125954411780509174600241180559942740611595134770596738081645314066395842419284614601806095361872101420955185688196971440091066192906145876450985753664264642261236669812745920250407359033965819369748823623801303787834339782093469435879373854940552689240723177194429161364362990052123964947635144642183937039983896559292019061131206502613540504022324011992855728298008977206927969779176095362097879586115966935748363040229584114860648620629363385194482248668371246710591567419976941557763363202612687901522365249289501154938945280774089205663094600983026800139777780690744551766256668398133889877184057973406976224823331850613138387415503777508874133784115473118142677245806920306232072113106380058127738827577577375404494185754430513506666052205757647318068827062944077627597756847213323452469737627302787690058251526087766378814845428686880419465578016482558427349067779805317448928705694165554560016834133462818426401680895269693284942572524608962942638547586955644818595231000922942126583123754615197138290701924739367109108517614559523686243365268786498396097899905612659847751007152229187723605327273954623475871434088701102297590894676752342896730173648727663459236186868616433811696571496480135390562688767675985227973755794794020750877626993176170642677977511447530834861468647491565387525629744956365614408328461385952470424151434411207219450699548719467474962006068361989360812084506318311766164423169201541214385865113666428128908315636080085311242434817340060692156509979083204875580262871549525155571766827696253340111717657619870925399317608654927632238606165471022905116037202083046393220316089087662868389576066096604256107441928523053626457899503384326963740944691600550508675393576164350411822186451944137184959181103485356007877615285492394853064293658935967565242339264820532713352031359342402922841068322046509137599265715718082433257857263911945043978727667340567633761257121133905212095816480918515248714141958742096766964350053968684275905032289214403381231510837086727065706724585961285211065517091172253757389077202710266133959751472065033238175647214191458683287327828540267302614436417820069708565461562743525576988353608205830428733395160703831780602251454634390764855923694301102882440450734102137420192798900330402330977140822137941988342144347396246619915522953667582755198134072852273131670208722070913737036885271714560480375080575252509013993478245346964203866075636400763778857321793144873194270191946437179282000040707412675601211600421152425624027439174749890111098957483627292647196343421077081227235984586091862840515283570982872738654258092188378570565696862786180568704994363141811061194355257681354757156068272294639312566145254141433423420247934853957547605040338498863170698434062397898931074662274075975626544656060787023412807535372239160625082229736276173156470161629744753351358942701096336179183729724373258710281421190877481335354342953572720800780803765075766593557300362167749927310729857893087318293562377372048645596697338452019414539665562450576096404760940498098934805853633265321109809867139119946473714264711392122175846426403068288517143204994776673774731552288815720561158023236821161721702778582297713518544651133573801073656537149482534461578090527221742670834359285165734192464203351183442262534805682154751392640803630684592751897046064215114654465385650141679341075545081090959603906323881796018037667455982174330992406186621472973399135542698185582300587028361466909485015848519088913448525314542537696284449206330798259638221680896245650539384993151309835391493444426102841823991065342249949963000431862917004063565561474825771529330545093279950520917363021730626753977449751476311630297475815598998661199179199898188316624776105167605836969130699745048093422986066906515817805360296930521925839099207800831930624578451174536914012634445763681749454555393177305541326017483078344033565891412184367656369698862187820436996207476701821382233313365486673219885821741109410896283484670107781830858501153567981781024050300571423424758548079635248136825239481330206289105177661359154079198938019965888618828204442219542810818898880878740434026494317972136946382849073237202387493301011295144269202279327504448595765926804257012271074664688715007304959157828197800839037455624167324670522410060546552559377637498105834975170474496018833813190629685397648549949823555234983438106832390429426048833705344908024623220031360754234220442511603724878557046615605618565173829079074051636813503771964717464339983435499155296644853105176618842109301680054000234695849330841991969630323808317494195401536751783967881248729535839180230443826475173147644036368118522316519729095915891336570394918177015855869744180953955154013014559063404025395142303765514380279133636397034876199772552141673725113749287988033349804469970359812464927992476553958078659127665849752528579922067949568532151395996175170447385282252993107550536248314058449374484106534702176199782088346782595257331881107271969628713159940855460057405165266756068154109905928800825455859967892583256628453247744574116472914325244419838002001373899475610893448885827978225375466508361190101924235512418502560886089842865730417049576526345751877237118865577881087894095000773386380316026317483694992696719190437729069366667988306006605452037514503010566059893280989803143236561566461971711393021102854067747879674149167345915053040316142711382945546007655658676749284491569582821693663761156897157760952878746691400911323325451939330719161277557688970227271625173103119969326954701913927907864813921517645294328670606489988294224950577679935038096226397568874471431403986774645759709999286505809676832055394390821564936691803776130679775455911222966462178921261391963485674421753315514366116608240868784377511065778636720001391627183583759574088342315520676296235219567430996063743505425011140992545501917317802892138886603080318217145656674948807603207888844590296531308029906104253932794787947727553123241395382919134512835043169060566891550861257668667304599143528708139075352056185711107494993861228863689869857592223567353214856262414155036620649510386132201012211400013907435857756854241798659832987845962526496999347510786817737155991904545224160513248885490697203652633896480829900633294878833872751878350423928087293995463306806232769187766282932316215172782051876183472264877593010197082081682958069323393309952131252769798633703361430398787974817123203715548642554071666844096580820269488395732058059289317468455031145661438595987739722866288040703504322878707462575484943638550013886735673872890556323826280651150945678831347942954353910560162194963597284871973941865946869310977689371759804174338923247756130339241051023877396351645866247970833140166877668449851055895651497951605156476025076788909413878373890429314505879444154135649089125953802786568388110183776663933794661587952398327354851809137309730795397089275612423336121270697407473225453937270400757610565514064638300531023515004597705833178422146390365197703415734863212071773402502677932980210246845716568647495255356698213576836615725024362178746263128792479422219438548331382843422993412829796799307925948545448053823402941928310376406501190481188929250406369188502775347160074757397652927607120211310921970215938550255672937264628611420303941895384343307579813995204148182823245453732273982192988421975059523834019340400658051585222807022115402677173392329933724679327339635714564934988605543280353392338040209367122118871044624675646019995549311921246734362697572228293738458129901756922336947467360038856627724696254058330466460540136729053000888540261841137448664566185657090093262326153676592196391420864649056959472155423341105071120639194641778263269580369991956141459239819083780428446168603291645008850862836757149071233340863549943309392831675913882854673950827610200653748962035380096587523451917578226099076255841572899609404947900960008272945708208387638771445900462390956445497808255399147045181604641400440336199858176661472322837857505444923879061341111285141948435836146495514339743797401348928672785380378189003363054374656442023246420800993720077904287344070591432859003761722235707075786430925530795746825902849799545308243139819639185504218935650341557236025201268138472008012199281161960544730129080906009999117664536878815675635971159620164382702459295482520646461888522914570929087795394779924531048970595711911824335867278766950145169008388742086700709478655951429732722335584596566227941761336781884130956606805914235197650596843114069656583714908108855665281856504248024369346234746279900456240571651873451035489771224240022781675434009398540643661595684671318473374539104412555251391491842580364469331923981636257904222919614214631913982328287421696971732729969837903732852260158516571252397878627465115939223278939493929864345715930127723356381175977352053854321087933019101573507737426499688845965308373836352128335035473156657611744738394460111341370610675442011034694414385669768770699350455942001738704051285611041952391131607107874555691848680320151865162580404196349596184288059340734756853754943124724292061616701574134683195691916607631408433964632928908497089065652930655377750698245033295337099391374839810025335965283595443627231083279537516497525189401149133336507315309495251382195409297230891298984686157429949138084379730294994967992621928326504001506268541658972495809443787655284896664134465321372643944631778568177753893027694837086249949968916608614063978363940042363261112777909911233280349360952526773484929872045504073060817578457159312193643890907869532133754510047427292611993766683354703306712936417697425333281836767621409245312556804398750371451720473848814165134241455154183559690144992450750583129321992809157937566562539705874895804386623982244203566631282126013446998784838094882398192431344609656503233377434735984271581818054758346967121599567684919442574029740819654687972615003975027124376357530367223416345292083645517770277287565188429500332018318413583439015579574845803438905331265959829613472932403635443028153250954739691864087128846400069791354056373176015937597851953571124881041221535539782755819842647796446760549570826791248747667895402993956249859754735583758171203462446438808928403903621000878531217130168517082240098458526600824190723748669090268797000068406426206816647432727220180586861253363533196664432963999376272915874547934337409560814983014142276804075609975431565127208689847502901119729637202729509020414358735057359207379282534633890916994759572517897155590441158925896468786268957523440899681079557135829682007626531093533458211673894574958025650560480001656276367173246786460544969522807878769577346325788166553570694777825655416645766910326410103151904894492887870751920031629650843965561554799719348983129856649353603439276113351173385063055833523167131769994850249942925112244300779894675260210537801759718636868689117117739173001053350251205197934803041841157998590699066440156392742524886568321047809537685345248511980634543826186686607341417557178873012670930985138111170327785196647021975384917167746848040093376374452310457371621257169979545761142481576197650367886112605393372968313432707584386302015584549015260628120689854605078010630312951959758383093335074971940421685860962919204911994865954876073811339708946656269174354000042033327275203357537402413907013697035795311357234476166052202594499374809136542456201565788934410561155725354109828075445840118957214933925538548244519718022940234013858080106239056397899520751568326706781043480294083713978013187156831051124895117286725759162579466903523646271667186120511919758870644148413768845399158987766614254180927889803025420243198875341300337792787787060456359525812674631749840017111383342681534770798248056018846107512406551334585351822167381205884658782183165905260046081173162981490287591939113010323197407273675910037945464071641024919684360637786649747091962727495298500017994717219636643156451404384855622030335849696872287707212853912642867662299476322825358328003769970264580772303613477714824727483874430016204957535684873402527772850053791530029055550043442728162167337727040466972837894448228920310523989783491082167422114097059452942135799050058130604690310431448304542532195675855230752579236628608838925005009324538276094273399180331134150551880855013399084465428134919683938633776738162742535051692877329948964465446409232285076985335656909483151082995630400875660497831304903699756366486247269421191140747938440340261432601239311851531763111816565512748786160062660039339539058981137804884750274086257204771291176700235033135795926092995716179845408264002479344284061161213545201314109609739899612297209527231367848805546548483567151988980772655856674158611304809080997777964776064226422437413726046241320786758940761583599754557042419323465566805029728209747353200372317679215777202697044164992141347402040169189069420519148990263023719861127884605225180572058030758535284524104969199413010394579046522082331426965768738316879583350867434745488579969375840473520012749268663866494817624298672689207375559022334613926619129839622718470920820301858732404603285116725507913062727788887291338451739215570352531863739989619178285268382463132000586318552677662787189076109529346385873604429845599017961266055977095572734298655319992740869988040918823891795079853544125192227568586325543303197515801443547829299566801487034188671196533600685387439654081115918399904749477963683952030811540360105212997350045838485709338030140690839575751077424840976394920846593704707285403212553635637085390259868348538672119857983305230742407586709721501060777682301620574107740766988954096803174225375119345962663636220744051448172099773825610113754760362117802345385983597087534246675872535607390283989278177677159092864806337074939294962025174539513596786850874339796994071059818059096667174744899924772972632837731866693540616906306907028954660066928114233905571619670278881903134072213015207527240736648497394811960552898649936457572376929186004315529095204911246304392284328207130101935501519329422094499878213176454406019146109707275205517995299203583258472888015605305577497064936756559061745016778116102127356661782040912587249103668409482871293294115598225980355242223106199672473721211867176752475284757608612813184159710857152124067991895378932055078328373073251500391951949601576383812780637597669526853188933284346695086868882770570049840489862219608900186061880148755728762868497796684025143216725522191487734651836436673011863332655711067152654717241444553526263446183130240920719206403660998891335333126401966500971474214133238869997751197596252959775007918501219029852608134665710736539345741071766192918992914541937714050316893962688916502090166516616538244250419627601722970153945820883332266673353005365213626591673250304547395598033454824837281535839203593170461683144587678684540006954837127481773908930223717758332952564526051502884871537932139002989559530572856388315191055993021335480946959550587766324079759162582697383654857705482636565190272113908988764777196824574596373549939853216905521448423764959510144657656144185611272531395444884181646624706947272603041203035669475543221030026089269113866269453332887667137182598557837975787201817043637106688998872608604058238714247179741192802032014065421706568772353053538766237815788795666522584383945634870929736545639976388207552405647796847592438354404169907955065667388374771000873867016817677131198722230805784958417888242226678176219091526127511529404217552063630935893278707974043909939536083003079170825812747644324724741679746673888552048187716938664531896059222415659479220205254485011750554436687893502599850864452724772466736024154607647837351197308621929368767969473765345827503410453710247308457355944970225715349975931840195233733222949517369228360297608425658185556674828147369710050969300711726983774409380977928359040135293852445207864489987755678659857991025620309154506906467815223280815606125002131432607421055789761577530700691100757940477562161029242853745788435438505491154363434369863679175231288857999431029572884797237067499299775111543861613843042413587315858331423667921837585812603308968024289718439515814975262921631125958967598506443187702379976167001156527526459948430953612445726653369242413081822555865288544862306915067253848591914038226991697207077592063842490586194798929114522156456673854268393582146349844972841705983279935014813970981047774521707000046119825179107884232318936376948745654548378684389072443283315852859176288809535743245450655085508210008390844900459036412014462225647574092574982501153978803310283813610190498135448380001913773528210324377148393783120416823619865505015077933480031701710757697890885079495160248998404228800555466492433570633219674823223977721257183185002629803675536574927288474722992640731063479993530978069915957747615801772780711850512563369733062220250405059834648794032355051062075724751659585695253507220146964070157291050541765174078299242134996938681035211393006151371746740611887980937328885125809736206315897799827445803010948943163738757292569294435813692183382297248399657483530163793996250423506765782990570718557104954779458985298986764531412435627962524145463527520881757707564106743825199040554209814197543603257870477842193809823775402047037538178383418077057074456089634925891695455744749417622712033813264290286240732235328135724641027244173448530621411768575560202392545075308888724609442173756918143206293014151000022231665453994337517926257501415995498952268324729971485881475731056943411864955804227996996644757188790452081108635212848328587849825435415653373110907070790841581163524081621586569383857737182881284297981834431915086197335130836610644475337617806901347275911364677469817664174289761542174790667288805501862817370004889290863865464800399759922023768745972792065255027589110528352308071653547702733406668910404339284356466615507151753848004575634625143801723294664278034282124235246810846708808021154037872408192977518123289691569989494215987765040926183726551253110794327872542319285818399295309059004158838949124966706954730902485763577384971479615535863051644061693249898984171249756534697028390141943851407559201120754485988821839059562234094466660655544832923051009861074518940599702091094223294651206630550811777617144846104042100697814900040316715830050807713393188354355048027144991408314487717335055428753443277200098638451778284120865055582510538348321531220225205498763213161161564332632283910046167716926095981584263685936136417052585022572292831537914927616927842252281053721563016383952200119352535747612166459109599341365377519882205289998991898201797515986114480224831637951163024958355513858618312647880734449988621642333093060138399448428964633083429205993236324294266943799396119744438983162305289191097824295084294518745774180823991081357593472655112339634514463236737927316299054599056671894195820918163942475691951342558699995869648333488001661136926391257467452378454011484999131888916642653262681387219586806785402799644553925921839404963920635954709685798867390103773323032636171364835913620793093525737812552668495786940157336946005311649334793309487759710735080125170873111495872174633978905124180938081335921267857199442903770094429678904907572137820806142508411650798090221653970834516694700184272826639559879101556045832723546243844654187981276509019263410056711227969197432195597710460579671139896059011566318632077353112670963775237851606902476756527021337048271239296554601524749314228879565543685563826261882687547725442215927049029673861576786288504276105038430092687719262399709994442673230282600866773888747401336135794660935385930481566197801027590694379112972332028740163949887978620042600031769151497731587812202139153542548088706707702809651958336195408228167357439169730468508921401692434838786123978408165520203550707249990983373412831468306998625113832835574150642723007397154290251856394205429836301371491303742289413227497751067148998502481981460666625643327311320091336804634496552459709997894427540051025680494807277342962730239594981056321150284324807458306759786605473819566759773356775428547561884830113986536368535613592088123112564159909546132457659921015977236244537733449116525178132106167313189050680124138583742015775074143919437142445283291208635269599687861972428278602901338241310040079869381105884281037869632102774762045222331433727695832141438846673381380158470515071085774263251124569795329337679587668767917693773965410731209664215484848015719439601191751288334642798451300894986144618110319570732780942104934744953770536305016575749218382876829336994871563921223499405030313167961235145566130843645240309082645784904703583233293462721419633663590884114437325595951935801289978392053642057601219480362950736390333414200483036977790738827978842736145608852511302873460638239574017079210858236056471204215091806305369740433595081644848736265025745786335752232063746485481740141930397085456703455970474471561081748840782723912435137116825249791503533800172332416707953364329857003247303875271640119713035546593761220006206779476512106362989401117824548619550885708842948356975908509820254025391660036346011474734423143894653997116210837960419178187477873428606319312950222922328557399130355278470986095959740823183474165170780959229195198654119119997704960617700913567931891925325061676618229097824133873557856644418227894246196167067740249097750531376077955760999522402625539663347584019630025595352149656232638645661158099314295898955788888912828018337877665874899777041027247608400139415325157923920530543825114318931424201632439271217783076177623755280673673911985194024803753246256672045826841808960186521849980721863607123639759995194835223259642683882376416992885969016413091211249169090141145506414313545133688925488851385133184885410631644350225786872608848315483896339575054580863409741197104477093436698414473413801665283607217133523317250067567707370193468665197702058120293008025581471089148894398629426919678266281791910041066098886106811841866602420420051041588693171217843649897541620686581805418395390805413368914944684865527399898830650807942083684281141123967647927295024400519463893260741883590382314839780286167204671287277451344600131036753924244180414428253807724191925893131833564837377860911216457457041155632346477526544553901061543929210228166006034824650987115678089589179984301890106163403968116116110461130346693170406418063292048111617416480032904870243684551563899487612656705781086065591283330465465216473334696890898041940372494818385820811644335426912500371101675318914459893297773912283472958252318798617684908018871906069109013666728282238773720854041064108768571282463228619295751027171598649657327561812226062876528086941351437037152079372027423498096676107667308010515629299772644972354494740652522645299109585589454084272221092443115240923793291781141165146538595110527721647870138510299382888460516757581392695455686278036475755639374264323934292056731990121595022260596844690246170671458137510032050896816013735544233445772239354873487125400960520880604369666728212351637903785218250546911022315210195177752614548781588188910580611606333727349995511422570187112609773386070859265522123444625577029744296752682090895111753031503313951338010544541182547826143929322829886922807087040533709624729592812331531956544834353990807687547820520454268815122510778473679597739959006714898232417419390655143876109868453212646665061896050006262808369103482768619686959706181153609302284024216275326450383147406631943432211387469302296490355203588820082079640870190272814463012127314934372729801496941302404870012300625917595362611723422381878862860088653378011540913613256901176889101568523637455839553312981659112787124517378396737785149047956939583988002848919020401882282731813746604025958916976976795034311016320269425703138535105594522215790839705579234496501813617353406983564306418547882848402764023138805837402148259354384270604908121013528112616919897014707094034587738743465951397973619259344029194648431986931035339646382149880798875229609536200149468951615867195040488049313224875088596098799201682217122113652668797863304687734750079946921822609036723807886213777221253258352251262683462951792954335104721088874724602143415725217817943250693709473469132858499790796816666490476782591124534404222861673556442914737083826117677131537381669361505951458580342524232775169984224081394082003730643037274590528315518297468627324291465756509856758590480905725588061028633870909055657733873024870300670883120143590033908662531204448905829958957413131275742058222695847930544510958448506249795136754403538787964991655224037821075803208928265839315566232849955016010760510678797275985959297475493693686404366392244194853314886402389363924896980689028468239948450448109526914552479669592591690323490536104610324850842594071138653428958744154595300720666020097998471390705699153399129122876076300367481680187894319085018900464632876864548945620781477765404699779795328023659752254940915806643354344078887816214797570245309772709859159266664588099088299487414291271301964459865450319328870132477318694872423117065394132580592335565943384843755031804774713962539572215185562367249500088091028660483023048129693650964018719745055133359110665104696227523752905826684849151813982703623328782151192591101671004516936929570765216969308806830649849217875673142491874716728472488648013138374072388451836688963367254449957610342136537796937214201577638839886407657516193422272157128858358640671461214364468281099302005146019276323546652355776198443517582083450690599994651529190377098502095968164559228021740595118691206059982702658459339504172513090776565610396741478782083760546243449521438098628232872082313396353946220948444088072143263077196761232665532420346615676809228866637503910104738079309991392361065860421496278641230319334383240182718612630862534085686896062881333268827264551223484279315928709757619449450076954918855675690854859097901284248141853110434812648279609927023684747526727344387393573070580802307089225620465761852890815043726139247472772638274282129734192858913312609347218522058235928102666793216296879545784886091341694720332856822665463400925319681813217226299700733387228370954976298165345746633371349426376098034587457409673509637254753234192555044048407509093966942318638433452318870671060805985741333156732534138656353109026893473227813175801306527704377059981104856653142189255480164334053597722732019587887525329501627172722160183940152955934774684426372632981876794248008965570542322408907235232931376485990853068325903243638909555036499103099542700187048319563299447456273701109270970001827749526808948059407378392866448220312280911712312256466836916551416536274856453545510970295962876674066687605232414869192554055315120611762193843351732857053371690609497859765709697566728165139034064942955072201542563652826325683355671486630709537050161628316682951249443149983643037375663934640582831413571836341819736420759180583940201122685308758296893183822906582039823159511747013616409338176354482162586595157366816475749380923934421266244096590252246303742181300857542278156653358343231667717817373788487976996339479419446200127943448560904678211802113739643015823904159004201305125793322790646603921836700009859127265004544141129379386241476812698479610135729151476012588395962354395109411321028126872645066469416077600937254322564701260112065799292532478181242646439664969117036310759604436690413168631606913354643293295876323732051409356050226116347767828974623426068765348835927783204223607180348787057622498469292502664835410801446105439092503780957997383289364113345763497025457933845870428022782187983894294502977449790842070546585403483295908739971939554277169035405031821028616549900804840184980554634311309742186326145835667826546919281968184839206427096270372509062209871023171222012376563306523192593737937679608883643236857783828224474492569206273163785160674732751856707183052365376456703583936149693658824983670137271836216240691523896334361453131637971961941105092935242185334007960581654321874944773547929177086143282271588967158361432610397477503143451131734125147771604218398959969456669743017766435846951025738695036916339921011393416833007215898268374849634566236436435068294878524734501565754046071935262169966807399606169386055188403957224166365111870061473938729764636226392444766498699609711748990723781252540789112959733271846074479058831751503631333548243711403915662648381302543818839354313377066072722336412721663385964557644675504548191303468476965654684566386886329762809950311820671058717828165290967490338654517402307232726537780472040298252406275883279159664387577847530266585271304327904992056372625590404985291688506070669920534222507093739301542147296416055189338274368162884893807529418122483702621449679784984422697329838265768939948958896531992128400747083481867069128187884603697539700643659614063051593909923998715711500863202415851017686070810279567186241938458669978074963345147220079297775680602571581585323725620374870469134538718547824157999278972685781721578413391202434295490887236102334520629641279522373341074741205902706455535987384215442983410103203263251609197041296047923080101548156736505283707442456550345131828189106369635912557281857775928707065550462387314209665761710675748906944409622539890973930112093776698589172464098062081823166857462547989250986144649550080021570228051912865700861994500934477794524957071359084617124867931099792158692584938449227624638811677035509057500871066485039992168657585127464293875850945835572077920195388816137964661095343903444751773268362750139255734027647771469529008072088931662139525852936682368085429380893759081116407265534341470293411926658397125205151516096363052880765965808052365065344229112129090215480349272936097146029484364484168617419100430713108650321290571397172345982347279120395070336836313373184511035806433268816826804088848071854896156927311466989950205442776792005962351143085200778068301734613980810179694711340398736368330838952502326276675254395266715576103035413990832718594080205692630588070198858308953904240021330267632698537819432165318929363749173513317016178420487531196405221917809514556653895262662456113526241721239314144362967510928501654290917858948709964709152510208677764736809747267940474280298825371615015713892615759813413085398921573452326842423859793256794965633680454251401528292028335214650238017391216687037043557518324655148606907900436052895087217921952860426047707058387526681200171335427809328872765257362374026600640903260593619991225883780321248440182090346638740147013532993012678304221761544804601074832558299291864964341188185548987077400682331076929135771303618957811709442236426677890329506747332635369947179940005024567382832624168385508511322059125083470586935466486035183653623141640955150982493511946796402378133405939182700783123767149575462277269837342776229175688158792330122170379389240873844586800673866045493132356901387750934128135088998902166961292436153428035542604110236714195214857944030494659415269297478559948258197581694870802191615720291843454308928991775722907624878441416467494417224846441615954287151556056076247929188199868722029035080204847929735674629686871398053894740155978822903865903228384180120446547444399391277177974810454900110404524443665563086525206983574926611820718292224621138454666482715250999715309413168206644204357058300444958625010778657808569977221747066326218564175740260482025125930405963499799842836625353081439628470077424209114290940932723363809167427986648983422777088923037782366435320552075483805149103451143053922807829952703418033633510871502158851123052822644174516147774217559982256288229927997996912405376575136814110104773258349067720890294082002663218525761104426925034901044177915283437518910577107566365852724470017188597593104885528078497291127948479104662669374135119392162274676385011359783899413684432343426688706097692996426058544809980505774155973426886871863479340753791604251001443290617780529556685041305841305842080114136187753541845602178534025412124985421747027918969652159008820548522456619344731898921276724273853987425514219130083503714042341390899487434271076910005090916952612158039683071471729704605123745835265695293349852630162048355466754291435762257166237234948499628338862442966188239467164190065328883723996666703604637254065679260323690134673465817386899765211590122744842950990722863143815875803481651234849730536659962385107135318484356912732572353834840188912588512193229335805074860223257936001332400477062103686176817930425554498564877419449436077848333927615085143382008800008952655385203805218408531816218944014121945037498448059795285281808216177781435451481408073663523828004381768096396990957604082413668372328009652550305709695325569549105868954973982714620216314214793857749706352178089391284956820283612392127334565615051659665883289498691302787114422481573300652191378783183603097637350115380171617181163851034914769474860560589520442718825948981675135278640617714117897777047700958766737861800922180766808411027339217628242143709753370355537539122130336393960976327340187526790259736869677535528292385829552067857380709014351835718656808737308246658087637165948049804183734807596500220510962350880774960516992865244283543250375767715937952285806016763821569024985394892564397554344709408545253252112566845005502448532863637774231621109797672696107032740345832922848908414746821148835157855002864768111132708192155537283022438551884369440648719855718982179756081112955450532743841110770415540447106904621094395940776286783425084131712277903899777137702915450577703551918113569698048032986757404437503438927790334990491266413040358085765166569381671085134310940618431256032627579356835305608034044403355765492443689877692056520260529181779730303774176343364739038505938972468912587183282403171925598330516942712598458739044548867438096887616008877733851721170043683121483287787839700913776926616880883958263097412567890234408399928583918759615147765574834692619183252902708307498405637512866757540072549991988339188741917780285422637563772837353518102993757368045581205861524358483406837902824766224128770799234616311921571790923499045762942746097310788265144313008117265196846950584589703906414099518284095063466042377408934061602013743073409245129244560331758317452053121584640635092227300939722586180074793105274177953398280414059357593009942766011841022598091423919370345064420224674080971538841880072398479559429933294587412167773975685702180345092833758767274781115412973705233297295132310165009680121392593533189281817017689240322388699680608274468810701265334360099135462253928067791312203496769451856238816420884533942892001692596051660546542428032409272846290657581562745554797487332427889680375801011935669006430141355237693713426362986690760116795691914085154125747961077684227360298066225399837025117647984847144413534172246043871269409308876533885115676009541079082586892480474872194104116358219725229454176350214869076425188873497201334667013481232375157958041080970561495032372596135199249544800401291285816027961657962593515511865509522128778070323405202522496820585292201488820445954219441239532779241091224384783811090583506397066031836123311751091929024712391523588092067667044016453215313953983427136501610552777620065340225761305134210243134282643104356074824538761455362543675477915511891130657023598572034423236666304708640792195051330508536281393894784790769022244221862091448552553578122715574436024382944971725685123796335797822064623260787839113482870800831250113913662730846137394370634405159184666041991332714192863990693699139284188792796666866294048055401300882004090321397074341875208543612796952382489824214019703776205195860389420846418828921797846642856710117190935389848370393943121657555619128445797560208298589196736506009196154009349911252778230482068685412132026061413490880305733521246574241185695715981206112975699067449262679071752952445297350337045967224984925822971522023168071565117876872244749749164872780250990081010726423258298080694633612847090199852467748300912028671909824766728225494466556648405384066900853148868315563473653970341882361351109276007330926681241933161402111535740709762520887949312050558348589714918324453786132572936473208351525794532174553621345104699636582950126120594694477300732000916516813807425284436122336533762909729975091889603519094440832217839702101972938282459335498047837102318520301223007606354905114183678411486486877067174093487214410519463260415544770752293580310983728137805776159059022731636831684742630585976028047836966048952425671172060727914832884493983643502283788764251575082922964881649308842713509097093718869745107831524812538352288291763696876137573226141403131177077349484394866116529709493993565064173698401493399041574380136865772955386031675821894738090309084337229611294281999077644098671079429810359106185877205812560720697444351694485498451839378979567756056624808987292817647078606815578433634942639272441787973161624350771121488634335323714146272705919246841571963423939590295827168567691509174434922351443795945794197733014890725524886527544681793029140402293309710128532830488019933319680503277640518498239571220469288120619275068270954572474016308903334464287537161488892967224341940922364743773765651899089973036061331488785322338253806949093571309960881932903963047899404632274991516452588596541314281884564139713637928635465659922504353851577901396697599639832604275120931418254888343622258207929655688699990641430227451185838232674498538547975889515020327577775322732008040471191833413020175840674930497730190528008464574106152365642928295453907999257182729267385099123149177621467061518144286147011929965474167356499251970201569160017238116415844538430407745474996461836963658042068371264543686585196742591651702250835003413403222381180348874399758418828855774445396054436866896416397773666105617252287145526522003213043343631910832645365837264734854949863647352788032128333157973389215400348592865460032340852750681820501449613072214346237064280481345006357670961204186378136234896100125686152468712808908207421114835324770059394001875809133184979312837462854184077577519592197551371244437779279306106722764447482250723199083453390057165810076409321729493753631750386107741086112088501676098544024126742275157393227977438651609434160740176457623657969031253551602090954572512281318131433817983301125006519326339580979950444287626777259249118857181424233830605451965417719709419151290198521421565880478910819997459956442758040917951444157475273945459573709686645135138021255611947058454807273428998925572004420845753876740310296415813919188032156600550168398669892976973821306169450410898196765552864422067183462992567416758172521170734284486650384852032033010931337201299420514596818628625824447418878189913258864012691358740795365256437305208043629016407101881874966134088549206869040462170216039859930050563870443114675054453405361859487874297667319740398241074404440417340486800013131024135689001514802782994201024925415606126368928179324983065051713942646909585127434421109269304423002529085041708094033171457052880789688103851929729368490408017197834970718993638645893013854341829029672253045770444643496064514473847087128878691956410780378038515980754621742095524251800362872499954790970944022385941500536673563893523196150363049020561336774616504442642295528331283023882874530270218915440567720830093773530067703171677473316856906320408385305680705299735446205562469367985100731552818846524156459486672245295460351942197942013160985041357619337389448490847094115400750762219257450478192202477169606231834090705389091898009478028185378834743754226893220360293951134795425895797557715253613753716702979802695670947302216713251803826865109680366786300960710477224093545744624388203355057579751099008709644999326371064429063650645163186639099706616228289063701743681536039489417597387194875936784285820133563343524045440655119198509406474506843066989237751966615982811145637320550829264897375961890101668182790518312044777256027518410061992281772416817109141775738213341682585039356147724071114737657861900769967029498335809945399660728052155269067951211824815114079556003832302355180909446703604816827699731836397466657726133017060459918198303815134206733934538265007648441217826636965395502628211761739803118527275755747877978557815722630917047735271494915065641782988787152083732807020449588946860225884946770866181280398500822708137335997556436367243283094560781366309340118297053975108842447431707092446399021371892749775556624457475449707819226457427565051960284036213653280707259602213347528557417360131271675971159369485856104871727540412416417337064714237298927737900024908272320648499777671330015635491179980575633298885729374973157963135935594266028352461404692925783654734759266169662300037262773675064524125748262401535462131378868690752992348179134890874663511882912757592988899213648070899295896958836435359621936550496605656894481568829308142986526765465753398021542536373336956758337471467112646830535739986147384838317530575717626968100889076781326759752475702333459933520956560839464973064972635750721547477941981565698618111781274264155223626890632608908685359285873505241021224688558750100415819370298879279494553269737441679257846745740284065590662075067691204730356152545605104632130096235391189951185930944025496941880523466898051551864076326992350899472169820384261002142387258585310932372403703682637686732522621866138939458334727630686818307780532991899388640561261463178283968791422262404637397560998651011740796123991937876045382209710531972365404128142378667687882444266418706689467532147412714748225446817073210435118301954538050442953209584608605992478198465244381635132861283901710024419033305644315639172477514593923926791188096747217152127492602685922781533233971782809854407786638336640341834084345490358740863891268120191481218566245693141647075328883593447980316960868972139161400905593748572820392925349366224266162546472089768871895346031172072578454525962345746606331468934620062519086573352453447120744777407169657783157675885900749448410364608111849070244035409995693259754855387590657030626661198454418717664366122990258431741707518442720250816730211592834048369234414152833510438101545056070423970707707218402092842503771856001424659797577315929078952248636873699823729920804035258502521813446507524233246282449426104324210264908654365598318515535077925037802221223849395765974888841128262866414862757244516910259621034386210751646148203526434083901031204632436526845564452952283468554575565876989534998829799213790456277580225285455529145484629838908174221544014407764653983379070278750159649381833193401577748442934950220392043775250692842130392905086684121798548761466477260542876994796846497378822722565681627767963565780285763904227731175477857225294040787224106816616761964950359328580314474219792515428119371870316901528290060551660035320976808040790695441449701024021890558845917401176723371024978735301129235324801119357058631448060689080206194837170331177372231165369626694253963311958392437078805559632667859728137578160231465300237149582206084916051223358396925719796610690954264285605939526976338037435823469878900732986725041676713224156969878104405654670571150853234763186010342523098320045010973284335589505321217811194699999722953461532928041260704462992530148799789710860192497860974178519003981584304424084926674163516355873569480104278612115671023145292925233857006175675444748903235462057004839552224459861122226176162619670192961703090625277455551141513720439195100901976771747203220692945967872111216252648624042984845793029265079101781765864770503287835198757138108242818945403955576564759111084382158448252103293319822396529416048197810553394035577189602438665015556107657380953129805219420824477753482930111782596137457578825703204116760690792151177027371274061607976340740942157463160783735946358661176101405762911641196230223901932840473375750210245268986455185028512398552618823618449009067060553281506484963574418932839640538169617885422878069705138914276655701247922724373616351381142954150604066284624885696954301251716302198001447043844977028968673690716528917502082131413945351172069392056942235212397096599179676675599522471340680999823309572515852096502833759138162593787062847357318090000623774971975931912394654990087600995019377332501287704999149760870567911761216556445551674804661649122500164127908765304557727503130610508596363710035137668976262756571694754244761550569125223622448504992765453305979873594117105176576869867097453340247218178602754990091076941570791637944255386346475711535016523206939951529558765673142078663998997392731284062613121647264944271636584606393853844586278688702081808902291737542444208962237195739271731884592054171979665811205343714407779718089935091060846791180051206687431715746223107011063978325456236552569521545828208009288437269590666054177536262258684048465622542114766801851742044911927920749575259565071635902065652522451998520227480705036827320861236254684235161564334562277385810511936263518022880368042303837268008578545815331747514792609146375805146513564794502901475022462546229417111265806890842944682270459040340179940165812746170655026174971541195707790499491208760205968373570023202746956272714603543831752383628169318029109155273093760122097522869231922370544592833719512837474621242126651968670873525767840781243474104374936006453398511330783362534371166815758299336814342989006905742495657787278278568052326274806588047413612997854754342257089004108637557386495061905447800374010943685243536847808518223052811369647458757969711222793129179287966852059134094402680799854401541943545030059777506131651009921267817401533208903645972115011591659785331965790527844818265339818307027397870794016214732909583248667375051703166929464766714271065867820324029513754306010616125937997685773992503804480302933894543800677388251000283369099506243139810220361861701963411924800861002912889335154776641465544271384994323500969576683805047539538808412194814876714151146343606043489004495270182941824470318459952862824846973844968604374020088830750148606599298490677173092368157349676979481257477608232547481004371092086265505269134966681880113176351648369419702905871585714865754415079800095803077030555625613601039815259666463580246987074007948941610319564416386827379280371623022751898236806316515066549037483126371226507251224771781262076735022205548450851957646201691938461873323728997345250777655562699796586177694199399579610491148432828477295204951057781309431788396491007909075086904624499022144010089432582464151783971180072516765454521153910543858411545261914900406370977389934869907864959242222208328345116279202433301368799895381092482223947099281260972753506769131422465763278575337577234161104420607654134854120313082718195475456692303350301062730855887497198303048864959389511863258468447686976103674374468241884138588114430461166712610649397305825825576811530578689562082678303997426870420230354310406863137646281668860102746676546230434477493922535223065923099545555040222679013596125202276925916288306906812202656091600819171855405437782456068154606606906830965416700243062888595680263037475882380801931507041726749169421305434866753399078317350925858636155132831193557811231525588636202646095877977190664965372281096987042543474547442146918554325390681651264753197915339403101865546650339167741191467532099319546175733570110609776011282967805316005413948105377327095841286878201437322026237914585721831565292108086347208180989765597256120954224665844761660722934047029737601817567496077451185909352613757647061309494215270399987261448014443385724686604559734062075792978082608288752867468170881366550189296416551015552101910153256635409560643768310605758394004498696883199979629039492556364049837977853927415815793353738559218741116495068703754002147632743642639704339337326823146772179546433586104038428066530698085446422705276339219928381575176468254620512796906862316978860240540117379367395532339507050631411923551655416003027812944281037860166445471572812790725022372405179227349545258588043924071705957679671396971299127014381559677071955556744952818698894340822634600258815743262356596136402485978965208272183033928132122386469355580507050475254798970923791296676530537351485618466560813644551494741587075333321021886042989150090525010882917796066251428529793644519842193217573542245383922188282785194654058704536893652323757538718200763224145624360308644920078428959184088979710598891496290220722669331678094127408666126592705991783049551378656728673810691076482268234929782188577308154145295277377356504740138960116352197604798898653660536982217341505607893045313572964028435076764849411844989842782227061934056512375476842517950203557378121129621115685590742515683562363290107413060776371159364072978362970502552471949176529141221118743903414144333958917851672507642762667425741282976961898770883474333360986905588896868606664789871747680342205339969786699220789776638982247861832767421214238336476121449532045920589737607447862921719519841397758304334871344362034063717345837184430021297595376103872155287207788807281477448024415841099395488652955074460608379049531478988864136020514649410604869911105173526913344860872169272145522025573669070379395636641196843730493390324303897111981679859286679594930579859209075204934266643186084367675784652111395189348760005636441996419957198843611126335479416146864572105926228080450451207902572886720661547670824376218727385351764219931924327086347605076835465583699158201828653242871847706542778980504295576870952283927182411776189201829954589932696501082347814094418675728540408388363266733366515571987837277760031354750543025308351586758542410692591225438154652005516109264844149497079232029956938467265971943528678509974201000980724982945008162031873407084676034681145838298713693206463601866664027614241331742142508742674197349937295100654234104641029331224059579552021539228963649040574981618328717043994795801104082174212961095677126390472367167195484775165315764086101283541199120974303036940117137633336609587667253241218444738925439828886118307679998798447883078142098398422875540812910762080527537807333336570520122401787809506086651937021212220708913454547688191852024465940105811735103863343514801018619751120123435384281527312708153589593520636510025715535004078579238717583328691032487464210510175303790014169296293143105205023763005543745025610176893064687587086681276404274579290523680671209470947389545572374812148068115337951957238784145671632033019806405577727311073125374230690538173911522470399010757003506896298960337622679068440529660286814807039780531455271151431655893543274054254599893127334500743851894868931804056930157561856807930604482797100473199711448786580698153107667880453617537410677952959218427462344200611695170490700814080061885167613126737415477086576305616700521910265678634507230395037784584913773979323617718976645569211936889886874071910395268933917147221106523300110631452854593749833567115606995872335927969415526045821989019920066244930102119320491204622233345631083024155285110893592967485099254264615238685528689048608714406818116372987201507700473744639400874058874147355032882387765507226659485227367051299303108252451459340532363526748433029010408886453744344274648248157668709264329758018550489563603123993721201967942168176894869218334989684335220393838872327495327511153180554445301922177174571384182677695664422848908902243137135008845188289509755923839491578048466648136403617306817816204272606354548830031873830310500896821394336732688193762553750698532466407537925777643979481733129225083842683688452072917726488672064230796821268952164214140233048437116425653225649037210595502815118655433845430113864819188500454749319443803117204486618780303608492513088932455368083029133014259163543200441603628868076115037322697550345646574870958077883462551720339744408721037655239862146794284449001313065864218440890353310791178555343372617883741708606427923095951549273256833605555023850538107868083660569083582632759623200690467405504427240751975682332447729823623426554290585928394994943574815157517155644655779645223182930792208549720934873484146038848410696504052512087124233268226321237259805108562341782980556745267308519270758428632063378040102469592569671442927676888620510526379509805158095391469849072092199037565003871759089245750365784742660682742874260512962216446220224297925560357625047934056329484921173797010917144563407112818701709886807155584977462934376501607822195987162652485423935099346713162548197312399722466082678588188220088929342398082155342174073462472714974320366019655189879538388170974644186194559104911596487016635680918086032795804136637149708875340815129902069453249384401487234020136190354803223346745132233112070825732658976246563356767298188055443219135498981324808304987059560973999950662908640840621638808519602604274284585969609618103737315245618795650570539508065806324581150168570964911032286455964355028760482503754195202710485463759181817951195921714884868506887434298736926943317279870720479597584412248619357449278911757912854153236135353535452985342707836251736727202136265400149973204948027384820278999957424990362592790236684413262918832511297144550464173297960207763848975471065178743894356888452221311766142156494366091515241978732480235699994882035292041220619320197890703513171966895887857090921266950992092844628999022392474892193722169492065862707241779793948707286249005975783892911545375244440811548748655972085982709409420834410376474749336161195825315440384497342823570425961389160514694610686573782183412886145262470187132223050483411806468444685765618482364790970753121631450689612304605210656337179117979070589178962516589194067209760662823739021512029510730389101275681746879291562821614079867710272385583398648997274205842511371763475046730926233687373095153539650851812373345975235163812822053143365439468928182799905955981663436071456533191716289499021657295040371842845497011318161299668999418700594675810563634870074644937443446765371193440707803440011874243078012894808744915051950149225111828216737464524324402141709537702168969261706485396236911361315046152406672354565539891916599273724561712949120789419321146126043606185523846855784632080260034199790334505408041348200051981678871903917917333066376521000431420768929333634628129760098829912632216460939667567876774996455806539301581658067631826657696878568654156156233133215564461954324058179650164139002674370457540353788698224983118969773104838303559546459906065342929238667267086746146543847608981248275127595646994601990169212500434906543237556735809377305850229625857839660086510040968315805899206248601728689239905435766541401452481084400127986148390571881944942094133305355224411177487439385745929067798341173495699664896997552189133040509708183782569907024819052653345077135661522053844958692902400823966619637016115034615843890207088843089548457255557680141467012936279849405634162095623576741307189726706804479070204835415364952270298046809579779712223490708031748074887376172533416298254539965751800293689859245460814104777440158645800007028886326492607375269605585808723939040578097726051000688849391589929791054220761725700038786255026211998139236406956820788204343095299807423907220080472162346749882216816375956535702348309110518339291300795131131348270705108650427669578410796488110180803208420559860337867718265607378277505055109791019694511843532502951535870021248741987694744122090081592951479337341806509841252689359658170045574118542695600418464869738090921660364569404124476987070362414757372069751876181617944280082100926447109995393869723531520793605720313634471275394701584974536600272022490956528699121954024312714719673681321755083965647808299495049888649084795228897940515492931600166931209333925441708895195035912429693717228773152971286218959543044639951509961380717598761817496287546858035697440999462239584078579790649082398502324511121074773516405374402107542970356420933413543514180421087777266100071454190055515203351111897372312849463829165713938476127369431269413914283446223216748316434966698681485982809694750160128381617951609086538645401560003333253621275438471836498902662341545878531793009970760215433055644329107822793399785205493030632424728672527689158080081773546710824515042986481573779255505757390909821826964129872913791120384837549228469870051095667498508743178212290715906445891887810410025914196454767900021456731224771472656089338283719894242629792490068750682963321130767794718619147718733499547035029841389444779887730954302842836860772663541699093423360427973012129048689843943428465495889822981830811067609813941543499550082559094726676159088122043846192094926312055381577113615205006645379980578432801582597728053364332309020423179870792545610343062412440979823650558420744304095915484316250723962047764821398235894379893327369501890794198045689217771699691807557898286078055594245295019894364734625877100895590571910294600923460188853149979790546739270222501620159155449751104131290508638913633070922544641446842562700172467403441151179275039682777147592626797151944916775448342903516332981619336830941057447886516858676412678719181485511624101153211693113850070806969028931256308905372600977835726097089744277843743055962148689515384659257440344601806756635019112741346691247384434646934376226271908844951057561987982447636559701849560241562028505574375746040548615988966824834251563788312223263464473150930349518884375288539208904762064588492681240990590011828571905059107710520323232309570101310433289447273326002258643498803295234611342329307826501638571310206932477752201180237796474321412529125163855288923266903678700994273869181802780387580601777133880509524694049970912050870033086785207619873937781642835539155150818867566153438408059635898575885292024575987854661893067441965538661359340994602069058089137393117310152830998960834818220056873929173082625369125887669158471039213637131890581003010279743078278053855913438964186342721115651940924825704131841753266188340675193422911634402008287639811398877342139046591477375787565228977744544717390538677249121812657776085488871076463401982562140285070799844727764443741270604317488580390310093287208666685872922528317580757856909812286385548925160934289318637389777896357451143416347521632361904063449748856716617524799809828647837144847667760642662625063611364604291640122848178157269623370431071422642600420179985134977902455827453528498574286711739540697755215068981703991901679437753369169897281256193352334621947733857438963319662696529185192920422773934769491718353304890838134929447872880311936690524660421613090455588871101148484291394744642248620786459131934349752903364384568866404797091471085400938351850212927787282795679925777369672162775870792635454480704176144828448998214041741493724943656496808576686517029292599925282468191833687165121597130261336338510470494400648178157019882118037879733165313092816507824056933446207416156599537102853725594214390667085586318670582575855298281261107148334132376803417470850648160923070105907153420195779929827781976057289360282180984499323461542018019672379769992062158225774504966211870778023128512291155071968888836561460689336996523056617795033680847609632785651348971498297002454720689310822091948194029272350421834028881036967693973740951011072786026448467904903057923922589524633439482754854237616350510194921004827593254803043154967676737446318070403573461715609266417759690176704209568730151921024004488382671312439072347097370880894876288433149972419562383728829683526816142847876757489795402718342325357711560090994594992624754900704775885311511287575006868321452530834997295506481747442764263077777371137313555567454172829392432166782134362986900537726334457534611194358757767518064373723270408891610001948959313602359974683393216543843167706149551555545300732030073957292326604160941910156809908961100167717952148910963706516795840242500124280922772882599991258861785177514465117726473642794522561222583641925068068586328814556200098478447703979089690072623484515375210127061691446682387742432956365000643151123337476992577379056727406595717507280887212508887854520455354843730259407392946025778902039871366690099941276849106509948427854235149596630588757124025104606016443040421266261549337553082162697726251056883342971891963253673086192712919341494055732917571765144320737213560474273293584126140823256800699483252563527636973332203619140676888875534965353818059913030397822183310171900286540556511361557839667055177245030541715674705879728220772520808964010059993627403851398209551044209696750051887095173439015387406431553809059851773039472891700329493886334992357956567195310325231123051169779493306154504232344871166958602638249509870015068118159063744329524539529760333948085801068749660418621880243714256676480507171248631823341161027471589165464260041407602570927209419790927914963614610671745844628440690592750027296753264255082794582156591868999647560969920657078218138131045861731506623120420118274196491847820231348172347146289672839065325059853594889038849207476319146456321958410687581991439062621446847664835511922881172106749520637966967449853471494318344124409650332166763610559459067296844736411471405415859827218875140580497048876104128728757038205596616359034727243108108559704520341350429116833097839587357537354298546397360012890608365951376091516069343961489311613783756491227872288904944262546332974515874370567246173791459577293590039047147640804949795774394558293599211419996498081110000462247989667906915504264808736017651298946245472035973440075318444550694503721436033837926287154344734527749256259922789037031972559435138058259837730861261800661134962235203208973711012187243074454234829716016774648512546216655895191817103873007640729130580072942367068533041889322094111383818848383251586165464809876813733461506541973158505974454124006255874912054529246287007891065650029590321718434360489336833207104751993603794395872419280324646696089326002234530711154570603087499616786924739734587692326682656351424503159327258468990293308462018837521529852952427993043373425966313236279155274431951559031705790572621293363557691603767686025060847462252605793261216355352404452308586719389893786528296847952507573336164280228931291819653475169500440343669073737861423166866343116464161557118945986938333548925915828237320351498894630008268948199996420908503694240554983453763786613688256512654071535762549201268176899994062419477096663744535083324835044100633229542876029290816486523878035116095966352765418180979557286489002771567805525119788256808482571467904848476672026620789595404303216967898457964007346653328446026236540926638416554607724044120865269557518934917244571676506979607651600958109568057664766491738893577902340145303340863868364854186657009566383617286943919965246487919311205415483161860836048897965321816379153742900512282188873328389047748404078531410760621482788776191154719424460553218596871312223426330040168480674421183453754453827615679067125232577556988707672678260364038111136306903499520656728356664963898720006215776039476411851735801546603653393938668607323237468839478659983264764887921911267349468368298183906538791782374806010667861224277563313366767319963407601048279248184139672619476363669061183843173604691937975847170576363864813722751181873617087054353635714093865405134472622378715579483978823289223937321648128694478424214925393941516907727113317335107424089636196764307364306812113125220757597313704235483159017608904730097639712266508387050012805273128764867478548784226345453910707887019977936506748789940422733381863788184510192067213124253234946004945766250747148324519784508931271331820884523374036954695622440956947847817239030228382084103379771427932162455957952065803950160667240133128914265093977122426077949323774323657995785358409715361605786495746247314590475157297356248006699777772897550356739382940066759796921538609381708950182516394670169698291330764315688861407658073534856616777572932145376614170498135924075682187996962207647456532698321152517872008537203475936214614299527963079007740669960281431626779756428704602267508759371013795253561833566264390561685747337453111131995526889800580064988632961248246357560806253174171027044381258342198714689217362412580291587488066550837680915966680563670823118973585296571918662971271124673999211120998776478231174542473692649430726844485832170215707069992288819489149496729131283049563601947201176514839735523725367788485240385064124375025623184330390273175163981107063404304022826411958082558935284334987787924455536486662281212395033880021326614944271271723026080839330964253524206237813629390018803492601312945347832776398754648757002443810435514146322215936810397240919990454749200734342680716741275470778605544310317055899555948089304268699751988070151438252771321324396143843370244517004475768148591718276074554860876976032296036610605508058379384275914866367346860800599969415804768223112718856660335492624016281848072342360273939852372781177956179117908606792485983548241451215096727171567708916974989931835719799455985959045068858139253475267718328679003083793930634500322328292240367807058363922962865872560422284751706795214546479556871668741687609215638199491743128479226565782219601261118645394690301108015069151368838920499403497461534080022293381729291216180958659005720683614411404089655510440805979582666854111419661372045538504372441166083048554370870132132605343368594592342097273097428505321609905932412477630151733165247666632066577078467391987484871724874734437465257946830695498120552680648060539636432250489191869799574317459242975079079167719003660734344651891837329213823114407054816137983413344276829616163953073046818521190785430972764487331204236805034792811394816898372775127666273051299615575165802686649803872185571166928639099188425474373085488956945408142064097146029511512627578173009491543763594505012316397460641549514880533557402236745441488802653527920976960975889922752462254850959600132282906661166864783271690564978070054408825982885455417171692167868397325247512232676790049092176935868803796817585981995164416819137060077653568204637637813856290176079555140665172509351876983498632438607685789854410133366387590641985239794772179953612382749324486751049098483667332699033600409743069828241530306609744207037918802750383066320417881818496391118585044872503100628959533968450605585902992155734822226706398257546028812218035975536096193569542667409484948389825617358969226210642297965288991912824660550518823163687872136713884879691043942538442884854271923307318042929844529999571043637702455303951258860257290671813999905129141400047941749246128046029540583032680906423427394375829509761503132359072034630564839481827776451485245420493790512888346275310974175467562788201059693403663992575481587302940662056423443628682537494329408782747918378081499117225360646841602594510611620227446743211915043711668961380024083514357896268673196476188728400581861499574580272400724911835396026667730435939235631915342690713747770702857289558638744472060851688738315258406061245276027726391669554642017070148842024810346831304839702066701258734186462725693656724338893164081273838101712846349742870004115283031992190930850976653204412625459249684606431730658587710989720108027084414667955810769601945058421844697903942479287871822769017678494403109321907177500062934562615062069398607867189358810239774984908611531649454966235331463686784297499751096497512371110172536542003714890960239482820562525137681559886355130141704944117925521044872579557440686179114475168377073117674167822831355781933921931212522862510937237772365280400148105481238640028813923486781260802305169259474112542454555939454042934019293430188075335117522741417052334370746616194505114855682608197616770301822691835660326798533113607645879845346774965347420009591463156562692034710209447069353595720264629367478609535738985791000586230595376922060487819965177984893939533490780816905339776737275331503796100433166307364329141212569861523369303395646788266275345708027926598145115591509275702273246724758708026747107503404850796071719275910120597087527525755751574413032935023814910130318160925378094238323787406258166179544873005893443691610958845944193606841293219441837862008615176770341899933630943813110295067154146062245832407251783817811439675677945487739842375682168687278318770806247032744934247463180413637328778931196997276450321097431071095037952154910853734395955227369190591542176778260938196688969213723032303351920790796575468148996021794577146130568932638678140288804272861809358624035750428043573857503299454392584586046495436698158233129000004624899069413830760964352423440635756535870019194105564454553412335776847228205888784103184915846211781744915251891196659207714210764240410881663192924257212139472288179648340702991709025210396294340036964258377190389657712268458638179003359715246623823667365881373546861871221940139905716782792227769681378776232134240842202294897155706337138052819103771578032761581555683707291174452156076730542406817722330760451519555908398211161700536115598416662670634395117092469263350011184038866494635209188211007019849982838601510408816911007567017113427038557085442999175079871514534517795765908707770595435108280832810522214496268957677762137882747677903591416707901760683847107103471630726755921276521236476537661372483927881231809025052008227807217675320261925353202065389546322267711824159520198273129959537537229838395231717368458035881571090930341632120244890528675049411268065514763804693345674332733888257186044455452939093020031545336765936781485255375546137148072217733690360208491756612811001309892724185309412825892018760483673565065087847686352162637161734592138504855394087498414081221476038392534910240596712762796868920820836593836590244067244578326772065135223212007378013675632778840032960089241258100231844546729929763152229281729251291741520690172797741159126181444159896047179115494651840386040915761251563903906191359764234063520851396489706730849794227802143389523632202677625971886794039548785980874720257535765229490349498001064771271306492966046030354954301791362653840760887302044423554435754292104761715006312688508460576593132856090576682890715230688401682341729104201462139667861981656524001506623428921410998763487986257403603483183897860041226270030074193058009886994732959374064131624440863131050285229578940773010199777158576288829552926238161123259156724307258714600109356660292750338023833941494161535795507620909441880512525878040582155827714242336567359785294996197729094987512288835307554290787548714704652374679758186737700623587110867806534642437018393746560324526573953956175638626117625171310109115681610788397055682745835655615745653442294481351176727717617998175982173577177544435480682899709486669912799993753627800529912835678087563150558068064923223123931429615239973229341582821743550918673937957363791905575928527206284065538689813295718490097752086114781909374093553272217310281555517194290983633587024908272402115054552542544907261716997884516172631688629724225856136665645423824630655760274587761077823266235918604214231761559146063220147855316055920192540846588733421382625813963890113191772374537159906859986199226647978865514420593848403959646316915382684494796939190832098860442185669319182205286243141674982231303072216428850440713256931785475560056819751556744024665209688532964457544221683839707067759684501861223944189036998857740859487234299051816680283209567639994853987244073267320161181021265930556480218956322568187207911389516227997898628578475199956818446904615433983329767953659757702898219694714874230630424969265362344620170990864230492361138919088498566066324671714634546779494562356358637002553530455385870310266115056286362088521938362213147383322416703178735407967349343370264686237293528557050580713447455164027363160816811327323177333894825127842782324106813259746051155594474322688670294577751358822693736804558002954903521364279265417803943454744207113153047963455723751965626218691758684452091322973688826726925799231202325599952478719466181890871013205736516727992604332603337024078132475616064029327751110428586596547113960602087958554966253709473888041787422789019276589938607556640165313918424637375087739458221138865109691875674055642376701115054162623160452528185527207674590760099845413263612555450505509312288745435121780086964635475026364244464047086652174126558282554140779664619716842083302091742501773467158111387265428488077813529376989629527817336169550169034163730832082384800321378278772325014066610215132283868743170665857230419226218801206819487428766875276120091648796805125176094244942158483704808632153039535783706031747477864968153076881106760932913132057293856268730119893533959903274768207056979667557564116104510194842002616512121167948432746790852631822406062544715339667406343473108852014286139489908750715673510901527033087942690527094227741790443057505541469434213649176808642121084776160215178767423366333424690035185591093367200565594370214989689776320760159120870615068389483443961734439868325846500716731276593442030317826669967144199131449004511898940664466521273766455469224904695158119957749772238573043021488501360633721668945797588260006048465313973054950846227639755125873870840210548766560211597129034338190065889428061195419196582244017075546936259665768165585719580127219222751730857341292826784025355641441695900739615921984542635927993320244968280264840110813876097733930809527999479780838307332772492996262561155336712211099038236385030459646203297035070820613890476771408154532112715295568685819983627613931027032541714965947771376441193467596978267528941867193655871200029901462939895517322830785443118987558876411619895450693515310335078468332732539589135981138597489852547422204641605367573807006982155371978746228644739705443978832961191108302239765208473223210003312194572584056433739925281588906601708563788331762788615420942571140142062499245936162569363352971585941510737319851513011211351706460212768732521326735568502265974315663832020047313790276003491652555991382524625507317652718186252674228415295819895417588203858984068698738343175151122370967266137700483644405653181209362599148136027450947075286830923098542588426792827613981149734063815263286286579660700418357158482295523938670952848288950393884595854166484131990371130115471665281155093374327494721693713436444496322612911217677946137375419223578640375269012665051477142718808766985789835981172773041208486178805084836451251338135951932580371818825023870727853540509618558590578533485225396414787717460821635207158261618915651350415954869429341230345099932683955488117012922006974757505950497219522696012542014079177943468023509904859480215422901477882615926851670678914984174677447934813435549321691653951550867590567348306459269839232307279067197834565050690361155384740768893089456399210904551421777388789396679548730172612220776363731459451274580079406702034435763910173193131691664414532155033378458859550016647557347903708069073727437746831747711454589773056283866664687112082690573138082586340255775158379671310433779152786614754238642684530643451203518570309472977093492033174106651811641249772559667715005963783695019772848119318686331191526523227083696823157890099389235009909275771727161584725273161430476898287836907576167193258875484327749665105967715158375362556419968157859769112607612928279721881066070288758744753762456703684427071618345863906586509522265013828312687464390065490891898947105625543549937814238272635523681848097039608914054063876435913009036807918925919693450877903279326924572255111726050107996669032561138137448821876554028101154691996472288362712931524934368066948707140559989031808990910635032879351993559367614599377321194961304330225350305518785742744012799166661629356635147267588608639097862849624070123111132675741300692259200460134948564783214917381775026848457514876619960194216501271936359513632899463195539409860426669216536871480510806320268400796867335901686525727693782654338824425052756601106319100409030254488398065091567956484080292298528559975450138317540839233151536149541007783807975714696858405691409139308231522913353587505472099330556951464957448271160925007611413727145845401530471067334315798427421820957673781223516390482081462617011975005010663270502115482484768685095562571280586433559913876669260870524000717660553927605760311801651219452946501884051571052373878017131322953916776968943778162335332980611455020937305558858811936922527901429045377082341295548143084372466204107088661328085496180151423790071439460515874083926267453352210501819736379787662362617158474220719240591095332452239371977250587460843499471720793182077414544181196883234987681632149049330351254053988363771126761386837634402794253788195475627533695235564680557266920949513294218769030914144128662394815783596942892697383501234790250666100232605248440225409437205101513684109206868700170702405421056544139431059794604162298251207363832461191375545774997511919714129281567396075607526645682395593029469260691005142988235381957332910817273089495789343100868116188488918391705518066533673920083062775705090164699488424625203617662273358946142254200945387916630183999674528510357370721257811662475721928778951407019215353927523360454007130634290863198023406287103300739393528807399496783880648535072148564666992157288230504736822073798865423507943434151637624332054800550375942526555989101147311598102766420288120734261741453389567685223067435635111695086140127284449813609787775151353477182296521642740727653603955070269868777993054080467482438748473398834794744063116496731732515730061768609714917322901503797219141968405375215463557198149569921951223317221054053600094940161241880617326280752616071750472401168114225222596617450598836371519725666052753458671361664024487991814494364509170789361459038830119759309597738229175060458307544628241996585229598816619089472593975181433273989209899737344107742531318411955357391494543271774402364886924773333061729211072908914251682559506898081845103406124764247688663639350595840793282080364649056896694949634078630068682111343730737615841059163253647093487782668644425043204535151628987641686990577979217243243884427462320852283742960159498436502586158599616842445807307739157077898327430881498966782611463327379701569513767865473459239073419850558630906434604108724763015811332396421605911134182238159583664222962416813111279402837554837680295514504488868540877948781675191746794253215270715108540453157853943439136408023239218081817010312551631756275695413599605111552784836130874177189842097983974499096609194373729539243724620519350947437483390640246314366994141323894911416507407679658684770631864375035014433211693906650922976464770494741904921488875826608395665704730740411824655899709187946109429709862855006756395444199614095404006629092041842285676837292094411806348051446311101109562836764155097031118320519628077226773177915707728284774450726567493926271517824566485877285034366436661240453679416416316504472273926754811775812407382092387548020739825230195657359067750091309961667131638340259692419694044848475313759211250398751952695930112626090145491059073639037654232294720708711266704195642844906628966498696848009748469492793778382617189464684533741995245853488641861414079209204520453457039363062735267984662502994337082338200117747815913087357109175630041962975886949403057187020310970462674749711673593672556385108338468594971507089435178643397721632683388768885772997127333213128686582582440957088605698861999127570983363269706943567219553913743895747929317198552539478621658128789556037204451244647286611372239823047393837645141665600604468111184222228040498013246470643548787957892841405523023589964363612006306910761906253669654085368746441730386391379335617152081413427961272346080212311664377864253561071221385043528793088077148897307044077010461495662191368915463425973295165381767055684120256220204783325145692877426288210614250297470115417779045210348600471170221344068031538599839778988413984252123141866101755766940827660052141201366592268664013267593428340015224052848256197727674500815041294514952112218746205314938651001575764389682197981828247772365614696485803630553835508584771005514568302091732641494749056777024331286801775602228918525050649963234360357251256510775026597913098455035864155039105603591529714048472840750033673279626175916764293225008699965869201199552536536469082603374569497416294265211619695365945240522990056716184622313197142837238340684108211508822188659772239721796186988395426060559830554747803473955225076671559778849732198501929702752741724610995235027590857697969517003538259972405552778308674578701215129299658228372888434760566505179358812645643756904579855373346092450737626215919028881990961451132319097333594868724871859354738923911532851243080604011067099857419254617334770826573655118672925155691889702128313898924661003014500596673925591533602017153419841586697786420731010731349143868971675942611176597881561000654556068611412734731636529523245758711579837439112202492471562976376894054735611852001528444674724725095325553120170000644553266695262982110154644386517097886836160465401668798745029609126937357231825771610811042047042869346282179986039732255897465775552079648954063075277366361996998573178044011134629422066958169209058366538930937393920669558558619037185051149098814895864617372286946755373172085030663672882562202916431022541849737683032372526583524382118260218865352684818886556649641633085064833302590460768977414841326075329472606628555794542111442398743402081084456384949756540493255949743490701754832244360082915134541754366043019268089337057371326735414181098577928297140004675561827745497733010472655235931112162785375845202660293847059576681786071731934194570113925927592055970300914356254839504771031523500858941782250376820306691520073383079026412620626938783987604688190283848732526463861518296966487635635528941425673485752351142791629193120102410516865032341469725311685981335829419774804627416698918546553876038079082791367683265876714110135204069606897361627698299705706496881253152288701533618992718476146023128707625938421602755886528243212600234315226978604098312581468640998002327207510196366102962801400178047880733334817327091572422326566385544397454793036539532271611872382598408701715971145263972490732717283792096834725389632946569765316224464057380695085439726980570079887051112976982858807520005199207403062866939314702444650292257818715329055237373891636474826083047467708482934451732647143126158833760244595154230805369475021640119949447880647628664538988290523976823658258532368457788884264725475337085054881599790236714834780575114368262645583336592824722967035600497131107990280224405777422448085186158234431465835913447107551390150425723555369845508056763109639262774504180644901840033112062753889398653060483055171819882354148089812847360462765339846017025333093061360210075568424443340989196264709539325743617216807472727846265615112823497017291730951437845134659601162912294457327374916021311209214933195956128522863432370710406879936603340387754743320701135046698515984981935933189515029437556283023103910648773335534658669038089169978150206799719460060747374357381461600745413256859161047084904570058294871601462512441350489107317943803050791067034852098408830447978119239549412772205475833723116698880867457694576176964386852496665655704708215039729806650600039183720456426383880286926559007740610918177215424671119609752062287617791536526438242196209727658398427596337441651671753162401882375410499230980859755075360433777647759858397097937705951671389260307557240471014542069970518970867445712786989991603634783318452843101376257340737639183149413603253992821532092785962102449616169952498696133110371621265318545772715857387740883789531253067850966694919558205898423585105938854905661674020367016680716591939580833672892236091305090935568104730299345390972409110863297837256702029889968423546036151153180945548764142112130519212715993048020170668802171185267770793220436909310865403486671363968276476676636629269032339329098651667336789300913541651582846421594301033722126513944707668660551720069369740596887267073425947188373486043551711282030903385717578145788600082834168581563320979848386989646157019353898148555505485187934963772286824187773939670449147449019972283044420539470705722874685445762013619140829417133117112293044858646610054384781376006210153084061698972023025574329577492219162471369033532762283775225883189669444606909587006924482158972832839582507334346572660459969183403078856574361710282747241314612291213633394776394385665203459337961141155767016354480582171021530905919889177744563861970197419694970569307632337450496882695793096308365573646587652996241815175163285711018930429077376596514516441183937581483513436075934329111868653282762862553421699852023987265365045538008300700016267877782734667059711494162391993652139494352507588864382614551478639278983258352376902582755977673742169877758111101744161329296157167282252311596942183715550433240776659032239857142810107009527105541010389905667639341917366214448290320848874400269194243353196577062536319257266909441357418039904888018076127600712735112888716912313552747822097821462608909026725607030084849801274996864207218305665133931748689916972197545317526277872429352113067747519101850438289618355165538015547508249160738414266564431455362372763933101812534480736274222031472200326621248625553226846158232001196387698054395015639527561247782249500588956581013571356486770188100775554261347356204027230079555520190972952839464754243470706571023529308589483349740748734762913733185552949784527461088790886268798664028707097031295650689399806835959484202175040713056129711272040940325862320681164230822707797224218328311056083299235727521147486571153308108415855203418499817198325091882403048547081457637674725028631694954399049150460823832475950758668249334814067187082725801877351509687342655460153619468221847016795510737174148133987105277370291862426926616972482270135563186572074972314856312221618472632648011004730486068445829086332757855185523079149740997764974489358040691817895774053498555608898003101517565443190728092828218759904977866205263237170176144226717331673421953902153398913641704532861717513766540920029820066681308521670362919441165918191434748379315570826540017053267920383082656671964368757944343879862885574436329220689626067211867717267622194647618807574494910632893717399252446156383608465127430297478359549842636638095793261762044041949047178542982448790832543302914171477502212656813098684902666219846252842676243775533009252165744859649707653662034186148118903901415107343355566628188351295517184012541542200076779220474578870820407674419451883225084646922313959180952663992621754831329880562067940485302671706770879884587949350008120296684812851895741042399202276556044987277029952837885861724402890465093113640891454416781125886455454697775336417500302621172023432137702332800839794386540356417209791033611543869981899633912923420939947099796747473869610468923099103412261949683931655037491253926892141609851869448798239045035430509769631310243586861060058415135549083720915435109787123393479110089864829510536155390435738523740062606315292754723459776742321274621697974775407842912028690399898996533399524165569347944806361008178702903402863677249960740818406194288298865128630567823625093936512461320890720915416891989563490269789066318219991974080459053774290361501910160035221247557621151406912353375818907613393223315064985462518285109987940481471645230500952537323737854636941955812388351952810225013911812594856051894128439430961325425129596037852303341839042957633180754592875462496966361114875343117906690014586831289906548381633621376657263401232286464005869832661888241342739557781120170917548862321962204789347317762617996953064494822682489927362490288217227804575709304842458081899450327469576577616042424965062167377743401556876088184536436026479212645541775505424386031846130039673457169035590647437855484831525140944148764137973365723793619796949707875118009042936677113267115642351591766172376915389136846543328104720262018747823375355841532843042126723388042854785195236615733720889555631831068712597927102508959226995256430803772903920888600256856010983389876365028727162979619087408016102514122770444682359164793666291879380337247153797982049445106437103138087978092193379912295381373939264245326761172231692801427454614861777514963350533685123205047812424033907413200019654686387219699288352649492077208860646614395421370059861842974091987001640672508950496528254018908805833754366923431216892025526308077210446388650423382424996914589441015410270404929551140819330330405384754718549136148699866323082792855143356803543421019692429165285319662724867984968026057242475141239218295730649997071578258956791876915987054651972597129504742242371723941770313767831756995581705061774649379255359359552353448638052234265934357164710078990281221150113173885361298382472192173149677557807450764480781192923588002607940447531043575308042812833160500196865298049457789851176603197777721015400391419258638751274030059027978797964924799970657432355413215352237799801234990452218252178799569580467444177787612852242262038223517326092422549788144343130520413397538682225775903564501530073726332345141123655803180354955246024559063901974079819232796964272712711123323113102633040355228180747817940382460917323608603332765435912297515649451602599937287777274395114467536639013998677888742629484875018710860163689563528278256329126640902805760448300032314886473122193095516061419821979824460949689112514246195183843482054425265966117005533555497311364280794189065322659998118113411778447080999908729789436860630248326730046704364754114405293714464938565314530572562943206674389878113709659479574125831988859096302603216824412886645780930394685337813179827558286753033831826333290601599775847883536386038180232150779587326973775213566613141312180454356452010127761068472633662912058920415846723989157452054380279727301334783967770502382819856211790776600745970086556736805367816581337675040298491749024934939584070986496815876236691422624101973415037525732725707202281469385738786810059953173779935541996742279592101515091324290719496997799169827022573240884386122698255127729423896603805116883494352604825204600352154823529205169291678522507620238248128937397898344838379478777984757829846147529023837616820586534291167005396483434454353973164199036226914970295976766907408009412457100951334347533827920666495262295043584752124628937711369470997606470046670453067983121312391341577429356786842985174592528537721308978933672687373085756678481667514752194175568800483283686076112797194470250600434341524344055081914917612464970497963555449027659153528577852300072291068141253788923560696027262900879039734865865118722965831201808251279438742237190608033349299141704102845307802421625953446710549785377054801650521973492658888167064345821331453808752489377384814795601737936027637686433564702934415923701320415276807322606122444959144679435010908201885247159345155080743177237143112746122069620176171420011397446149870512467129697019203434470327941230673777109747638626681580079879688483577551344853732619049590495995772629911684488316775943816798221938963473301595935037441447747460164476584247390225780932789270390247537619252057224302726402044575330466949327535966620468263167638407507642249889059440169188418613464090133334087924013327711717166753992454155322027069539157263318583407339275404617955089554289199418727994897065976267306840062038424787526578419949324393551643051416549950109481143907147493479970306854727343819914307423388057114976839797369342609167702704097861133227940470953372680736122368418226398799829962248613011747787427487178234537620223109902085385825100369306326040470033737803329433224481480789958387647537673050328625931596170064950195772785759735622863752732418998587933849691545283935836342567465186187780104524563254774531735192997138714544299519326559337446542332707169169152189080821239435845609965805153695298940852885573045201655637062379326187825530328253269466910428927722428781121817877296549665949660816697597985015562802468896447882637348786832158185500211204945990850212201583776006323339382526105556715305325807638648833056199415970676760092040138519271044622577113009977332338140935697116716075947913401256687217852410393148576100604066486854948062418501675390286388162128927349517219695775375549943293167297553719048055093984513206458245302849610416471937389979234489078667095762882134986199983414554810878356556158964231260239008171576774220029077063663694718778079207207664944122571155065774254552190122634208204789407302328722854470708758086676354014034269082184562674505400056632791386828374193508531588299317141866083337603326565142925723333261923921199274433031861955657012813713293262197492048155990686287449515482930887869578451043548069682175494177484358468916030358290892328229585857189239105626627194630659664473568844127992285303591126268149866629818034671540516933896157105367240475397068629600442851316009585515577196043335829462188135081120229527956986461391498001646508896175115668098329002918659020810824213290606651379931740401549594915194985754102229303029584469653024263829990857147528548333408479599050042334804755588467683472845249563310429743445731954659535793992221463150356772676935849505527520201757628204618747453938426836532291057895953439960722464986872022626897935381863754977889525477261452974045552829740772389185310862836065337297303110403410612399447065648958274693410571787709007315992542650492532622663655892845382424812510475525798540048439383707833068344999140512404144580544506784596349493440384719582062251786888426764348134461705587474891264688903423797581318814233972132107670384603835535900314154079622552583613179047449406350200707688376437607023502970282135414111297981456148277874555773391194819185269437238200682390635247959146332597734960479088767274049495551927877127970628325970317942073982942965341846440696460496207118562708160128109405355786207733412139409541889576606147696455983495815841125257832509595341214038458219471563303329681232269451506963750445458610179398740109942832173063877240509995396930411528824282472124429440705663829367562769295908041127674402480497738912046552360541787259836987572024459702930255722092609151662108214163190851571713716825579552732993426646896338062939136848720997066700804852294771109919773553625240969409794149761062083749706311352554405842775408337823740667988803746119973440302157474031216489884505401246373608194521085843443707420663746445981190662039068947956173717500677229955385133085769415474119382092434807177732490201034840014877179897697823833114661127407436036459543439491838241458914898757311418407782535082842855368254243019949398441722697306324720073749169653675555525529923078470510918729731729288410818726810203099023200587653581246731403005155617272630371984898478030787586759955398911023068017791379801035876821946400427587656108944590820046133491180294122185149674648150981253881106616277898436437917694733252943855556471382960471801376778966226683144742192069081484361527573076521854111301722368815595390785666734882516244471020444800456203824793882126903522402216692521270467336076655372135932701228444712350871086153787054886355108265951214835755222010244299357581048450371549220504292990464011792449041790835768484160450636601768838284085442208219908224298512736040035181962934104819427787325875952138096375407544032752652672465545438700572717924445198288363999476262915155148965724501186040531305758462460429783286229087050832386964832985454592454389636413137766859513950779898257635552850197223941556357208076261069569271136256700276805279203611576224518416270898094370857165927928068159036647700060008206732817462090001882299360220950011553148824787751336037364402514280586348475328639241401005969628717255352163975710691962550991992377459008966112099652913403299176750544887952225435139279821177225341906178695205024933715300647264314927684807139129056258290785314577814129237872144705739787394780268914624133878191337781582043554405211709982535878840216863950150770341080727917336845787040917829311458941789290215575032684127610911348285695474085483317252552809946123866092203855648755808913505200604621995184553624284651739591644431489966918146801142868547313726203101622544081649625404582554626523352335618258846676396181216529842318021855804659254539824514486543145124821610931694937867985908864880542292604561953706783354856822740788896351763737605453364201373608201728564030838471023801578065903565205173673948208706391144843827262301103850274630538202096543301174478377019889659850751906169478564984022278907559774623324435644349319399239989306715492163622002743901998185767759792768553100345199676298183871336017634953713419121011002403295022892431993833938617857523881355323403368143442990478630243312553713271484499739460116693430537549032926105505601257462573528705706873808475964049492446606216899589148585194376649511309550867159839795240791643503104780755864774607870610560025878728543392405152358839880906311180764194444091661533162427068245575883492568800749994757156624636237056580337921990734149092710919718974260265796848100413963866494701042721762607432535879613889979248252868042889944641074547971876623246209616136142625935232386564169837326839016873339672614161866338083621540054523405568530790426664284443040326113283792982319202080281487183163294846011623393565960465614641066546898105276321619329261968052539839233109575110627529790614516780485432941522069002076029185860344832637825935446849569103044348777605531958985164128421019603260562795224261885874886508483807089610382962939057053560760907087343057442735134774381918398620505302240562825734220285809144422538719973793444561715001604782663685471958674719367479999344049226656393307930940143806856095794698267586562650441068015037408571320011802515744376485430355613682435974299979147341934345489121442359852644446722543735969359972167199384496585933082508365715945412089048012461288633104549436835302629928176245302190337173237779224834670395515342035800090580073904079419259392509047523586892391258076991807148453956899452942031527928326053591820874065603607979513140839440715276504393803043491392473483545655916848218445454755149245436795568688903625604509945694690740767629423909905033051106229661198864680821309865235329909681073373982190900058108463975185855776408266244932309732741137005052772495326997210494807921273187617725134753045933114493797832937082816452331717347396605111266040204450394015661207783597972500479613793323171902819056452567617443577129311840164149430975128481343628264551796037262308590475691240704301946825058584461208800427340123639396393889960621533400750890089314824712835903141294877810832627049829065654302353428210962737505716133474012516781001904967039837266195602927730854046857246402292393870507766119878964888110228064696416807403914786042855580041254043477410417054138563428015729617226552804128898574579101003909666507659260112853637290361814911550382193122777548514777490282431059879077627479481807026097463413174232608774644647233913502726753553696536182706843180990874474909984065173892483471785950976193857469562120910610970823930796154247916988192878624230898524322647258255756037660721741072374079136111428387469375998448505620021928709724640863384222947690186564438827163915298228993591811709724762895641010601837808393918408222857058310114487071738888039688782167199689009678430917692061328402703092286032789126878909197376334213960568026746879484230189987456391470018842406118103027432543342021774707661447900686235088435338052603207528538737979014528344110964467778976262113973639429758839140770363264469571617349209852980764162660083403619014207197416261271835655528795991240926450816298559495278493382138912618837474857902847887826641564772644470815467681140506842532386473642558005607668763744697841949190134922384129061285399217312907995927490934465232939413558410622398880215655506955256216028875852839073018505089052266851004838780305079664001866220798608560282177265212341851382206745325436381574714127826968294306145213133067679583861050148761990438504897396077586766589681878096129490268622298526629367829395151479743268529452295640479662392240338854103282027458453429386529261196619145883597873101078212874057501958180602029727556730071156505360328341838673937451068294153306988972057877409391944746960627386723194400093638073110754553165229484364728834827143844170911788711713463392906851619655587016055654222476665567955248120405259768815435932987398145039871634289870565990328462769403494989102866292606213344091196665706465112398387213544545622558557125150659211634208615440672588328260183427992758362334371941984431326766201650407120386824135152432668088509019255451451346914793913109511009112290648538965542567901364720538862973134550725076820535116474330896279385290798170981419352147774931546556457377846196939895253546561318913660577840163857506262112742727684405381186255405342567371277388867201887456999786987259192617550990470142536425215809153583478095661384541416607793686625091099645144921503071257432586377940163759142634556127522638974010002903354379794094273641902451745020488474442387180977466860935678098633654882627946918751260832914873319033860462593108675362779574246936965823380057634209259017718773664429818509660669121657487710938420503825355889518901154417435102489467650623891555366603688254395846678971077109498590366897881533989178480066657185237688797413813478262784737749102549675693869446013364870759516649042032964234006779829028506764177251678679920613363392413544935752264466436790467011330763797775354274639043719904160968366604853746538649652593252333676921648254911347074421596325689772055401575827071178794745096959281477836389895384264908124840941464725771944772417111320734586326795054804500605189707330630845376770036909589165607486209656106469555243773274222760865261477495614834157983599801204243693265021547588963863883586956777479264002376113441552018042069285270995004705857406192447049981384634433120070821805584134135894027200521711157541074983155351638875537066763555083604553421228063059501950848721271931349868177132663974925120109427043677924876620431244514416749558114339345334744744120456155102811657260255692251801109837748770636397857792582454888410007453596084987433407892285223868626045686847566573460048310313763191568300257978946236534945736939414761890482699421669265582286664305516270304217307996931153585410410965205991097471227573032614736210376702426774545813704648052549179714439060973796187104917952686640385954730114198192347282975621257203336460368116676055604081228706700777388603012660292383270985651184753997298835314015702561411041242437553392343260956656419894427724851174826921684564712690139642381461181566275113948265769492911600244562227276404589771607979361596561091795306073012763909830290522924816766902909405103931235815672493905038941787841486066368856150894308639912804563296998337377016433684414488613683024519073616557530772791033786737363339209834920074483716064852056388486787587374404152710709343897754996357315481569461992411683638937321870922502680130632215406245497844684925154541893041494138397412133394769363757970684483423402256232638495853136250733448209764714715904179754047502650228205106472711656964484383984037338599984896040703925156472605072906086869498843045229214785157752233255971450410772943540955338634334547252639319095048587334308461000874053502818786923899896187441698291428469214559939574630796858662834038777593568669017676753403373335133395453595363020494409254503557512647263096109961284028495990252409455819813692757080929783973637109063431815863716812721643648311828932604145266044214637786782846129685188373072319640898523654756511716214146978478194582082918066845540003492771450451044557391521410499372893423961957030463741262164840869560958908078432538358056972216966947527429820467478130114479372566018383633773748990091904270351416838134676106752817464221702082717560998168139890217602887942903944768108300369504532497225003943783053497532860764576589227330152202349492865969549118511784013187962027898475194994244957292664944937297243147195813619200074443739935153372270179896046088669121088766399411286370831641441658254735806611194412351387631559822802916753976637584088478616784267714689256327769264945509511309156803114625719054223206729148916929339343398812354690162634747850480365050161892017793822436956239700755792704360747729501853754281884265155695988390857657055610219547219557743393134453051228972653601833742100402872196169211105596942198773407386042375538615842488983553388655432120267361199723157522264511129267202628691926651955817321134187305110389960496839885433389740959755138446060358932805807509187961613233987596398745136584182082167913764546066341835793521369614620971332300422240672446320861386159644715664055503057475006141620148417422736406464407480309169005060203614167287968097786884876243058497761354089128181861574099579987457055903150679499302134767744236165042576758613670851926127585607945801801347556858161433939587406168073608254799714288481578223878531407609943847130639148076628780555200473715635551227655870981859507602293389404481978530198497116997933422298999795965766055294608201967819038029839224094646329812335873836617438162306081375523795999280833208343839212428264447182061601741093475285049731750166499238054896327481867635789958399161637248552404821206777531792933022800369527956587886886955805292310059628024086094610073641863664353137106665279843631452849363003117295687550156433537293558637610975979286805117587604064534012068130218429799498864354225029394901967711029648803656237703338089774367675502862396365635823948804144860623837621753009549456332347053813112308505994175920188546046800454767200989054262319610040424493346993220205261065744438812610338693474193448247854973308315719962129094684713554018640808086108529732942045304501376931818812461436797939499542577594273977846648324948942369221057555236976041956004160677226778217859116954403618442563797796708664193667108478680414581179244278707536609110357579627715223945391110068281894339541104030248891630965864656296295975053310263389262050585101718222620266721030573818818026236581994121884673977992720430009091624625916949636991700338117911977187749129372618068574583933244526805918932992053748291611328890133866380718498177276875143064565899212909887068172200396083896860605903304745321378266078904357782368291831560871745351980147034384016606372844385537167974924832702407652078425167524144659932921753637284289661831917990320697692166668522298802320185798759594147381359076624081330713490115814712047677683146424349507396939325314478366492776258029506663313292928405395699179298058702089830888279258455097285386559982298860963225011652500482312454657298518876731805183277218712646923125903301191079355235571264560065823551398146447493840464211026919611856846568445404091314031160854809948410531209393304468251063524347775076351825831972688935765432516838501042769466275443050259933636004829658432107463935394741115085749706602315964094245877400258059068934862151276750737069080613267990138574077334882202490591478464357489057132124411107459568106971392045938066130393689628205710032893853376516566247677475510742164353490010850981654510514758611182519614071636495013787879148550438696710465924765834469189901749365599275841557698652795011668146648011604259867678096109266617481028416404620096117650057573055086191332208858280464789009800282094880134754659540892191062940105523742448395387494704607254101290500276316863187763563163258743061753672640989595950009067866731852179038377647182050929686867768371063544961258037803176599100907386711742079612663717114974766811844855664075426937817337461155226820178911687368019409286387412415168599366183202941948598700289352711595146266133095670970990949546254933950630508480139211459235551793309336776414820247818560561051780178313711402607861502969972587448698465177754932924375406381162504009168393610236698667010071653032352296963929147098120983743573330130761715927036677083468620441826629181541975191147750540989626247796867627949794660931676596474170853177603717782908932586368706855859289559263210420388203834168661817597636904899343904101436388736109984151203058135102957341468377560077565477826712321075141030954791767197540937290831569726216346037923989631824320301282337009706302718572564573860767343185961965625632604634981625413889065196866187968414332517861439764871924757132721206812612089356357995418348215646652166540634128610687837451903078182275728755308934161082762367739489896170960879002466313635790492621763588306350868807028596451364729700045117519883763567340905982229391420169710157469340903068768256925787899045466675374736864028208330719144585761197111439830604410664935799529207058611954231046315080984698133217249526075751172305970095700302691951172776493586673669120772924447898837805642427913247331056284867986827564225462089744420625093042196406047397749647058653113682988712186780872422963956492517148997673054705536407839937088350607407342405720024209321540135100511972652121766018251210764381306007135612650741210731804556803502825666074861237507968936843411989199775867092724858524928901328712027162089638127799384392577871678573493020034342645571168071282940180406697788013899057814037983921969649675846330838211082513565045589828896624789585532524237036560440111520206935320387190846812585664347489444778126863054083411481363018110748214127548101000937616982717717595545537935578065365859146757267931207056795356343124678481140452112694281916023801913403309615743256611031783821054532701620993381327819732425412908476766908676790010871788930224014306020908931339729540916144802763463922782171882040358221423162695100644039456778520961797952415958940079662510849626614121082831943095531621700485490452558898838875627900517956855925664199128128318308491108832728132040973081569303644912520533653943684024866652569571989761155461185199335639533708147936012176726556941700123085375066391828184626532905965399439283768673156448303165271019309664639869253221791908665878333153396353822924573640661748300942785905435045131764387633612960028224170319680497099553472432901990261190184303635533249624956635046053863295872822942269095738983271743722717127203570764893968051286377649157814591857600199429402112454014439002797558567581962236895126003937084794679169752238416722906979267378146181776740413207301265252665739271554616935847665363136507008646909491410117818447727705004369948570590191426293372872451517793171200562087396870858509217148921703337319849870367265784284097823991927161938341691961035368520410815238243354059749265367852710388100184745475474025219979500831564708004917888398453191261119398592701079965516233920521339380860396370538343570456953157943411837436434222088147599008446002885381497662342617137038753497804428694295234389859637896746859050893016083649100338464149205568526316788151216642257488149589688090234546895225831204580871378021498334424692647965541342161958177040728106618381715881955336433085237157804642233109564870276154529479493087971097214741234563097698632180675548040049867211487923657510653040626376104499230345597905689235671465644151380360296488345491706954954142224256594209279451731987773754483058263179601895195779895361873676133758297888928164396896574821009719830936263794641790245787080012144994017368016073105685736989372061228036313686965272988909340387142289925960652576414333014755519949700147398604044845647455713016864937217035267743570469006770638640870614783338319716841879422235330152991661743294105759719075759919682456004383545999857093384436041403364220386035920751248623932954162084092682749637840357889893321411680250997638859438708539930378966286118663323365465321482103544587511871992173276573134525630410849611898412061481365423412656965395709136663638345516383187238312553567186777943371331045893542786825383354389416834706942550440765696557530276971559631114199363056198637310282675963310169412248740085315924460201427604793617885228126594076470946126067417913812846218888330670390683203210372346093258197681678536743231016401168667459430866036099697141849572042706140450726769447887482059186767470390794602825280847866051830970532369006813958343135288871814682909314113772384803587646508665999497503627448361599414035377000210995166181513779407162135568340400579292784316608250762994103116614495190303672744436640890757902853914182014820058982756392833855714089813344374360397978488974448366511353989139774214313952267104755843812823675938414659435489400586048317252513674708052399260748565512725905625554993961781910727788090866954801117375221465435986592814680303593099297825035410929254790197579710077381066808641785420669546392632674223222594157951305136921329961539482385216175786911564562847697947492870898154949701158486311807126709806645554718677882576067405989961922649484520571026756980137185036855506553761210215511430649259593045553633430713111739747948511617510383599757885179245950578912724460768239950768939545815828232154289383479156609403043770900758247986220780583523026665348484853841968088490303981774548368494875141067675629531535815044153418850078634218611914409923212252508888250901238844655568863583013988444068417345215669763101855080014296687177905546199923463076743725188062068624144759387176731336807660539360759586687644346184424696235158477399944649136826329062416432261143064781971166860428860628472443700713052237816712354843473448027277284932672491410702581875363779442526117271142526395371627819074832437905238992187948858808425229321615845128199915283779162034916806682086180398237311897837050126043432126333299399605935822930401430937229986403209893839285954393045969015764081429164326768734709073244225617404291907613715567731637987966419951411353210577889471922814426415298127155817106953351152262936862419352550136110406452160762156801047000230284093439662549545933430326662885114297708000888197390630529555326753330652044658404793678715300625817539617451930656202865900446380081147646251314828651491520554847823651523167695109685461381922300668458510443327805000997361110417303904474992911186193340199930310473297278041155638445503048848133269766378855307123595271912955029021612920128417160758726668664494983439910098252015707959851087500483747564768631174711898294616120735501992446958890342789634092380198178444011476112107355637539811420457475515854445381855957263905504935689183782917383347734550962379234050711690751059180251067546626111992732006921305307132036609359140794583417011434043661089715803080541046123483095459510086954292195929412837505218805059383340388780040947946249670745609370771320484161559042112381841842167101928410919411333999703690368735923952838532943010189078946548983048117167924088916697400266042120862529713546971037213800626450600044015859384242696457437038216479030432445387883935721579774582803660390191889496828955369989745311843028750092752229203830830852754387884174264672709207183283775563268783431278133786820006368441687194618100939996912860338129222423205003043503676080806016620382487380271858892816112669675124894395047366314449523514001263406013689913788760748770287324967889085394858116231121184994277693488797583916507083760569112958528066444053241082733700740492185567616487577127341635220495734880642941912629747906174710767383492528779449892314258350628229109359189036093893918345204026128371176554092178112551214979044299464172152721510451042882864160696739973370194627117093405908277265296353734030456166844973157010817015120701571307057768289865104051634305165656474108230965088225153323581559842786860952368588782561956501168635026661647777142386648927624669085591300572172601440647575867849481933141586866577655628922184462027377487475156967335873393014252048361380277596818837489548584521072488888338348378060349785649906475184139010721427026499846292199262417861553057110708112769645701932849396122169980837571277916533873360841545993912385334508620638012787825073613478328376356864494807413974700976253181368442882128696167956420620687007086300689100987804676965168412185964265616911757884557955953265104784000758007692389399571959631136013089625582479403284140244789458643900423855482135846829023466830797683930339399978744128648776526372829643996595071007287209613542310098415737200897046912918582225096517912780759088361071224396218171673577107813546703964498808218260560443363596397597564904103052020569340989885508992439523524008171326945638396175807633782931133130870960183677104971247408205369005696898872393358308324413335727696352641344041763350475712378498146434831492936805892123235155401207339193390590485270837834321448150903398773218299805168309169980621448799251739103940733153619157077722953586731464508569968925084293755458380756308724532860546800282348481738688412598459192340027970562098039883230813016450983630993147517314891554177300717066619312181396191617562007971631709333414742236534339624145773365756954827636796762991650272034349709988331299839765670137304069728054806660294848503149703741398396109760168681123262377720536602132959496814998421580329227295984845126991315677506810772717744102029575916906201341021433806757383946034085471437530043746813360817712243409658485646609225159658188460084328331603723806651469852262635960809625591678985129777686245413739688465545387917141833497247313120004330278754073673277998275803937586525195586477526714705997839028318165578553379100023548106903357816330522535149180272694724222328584347364009596334492863870779196224546919487238028856745573810044855574123412681745781909368727200640530042967615933968300303447880480958100573661384714093967095232970700518768231102926417473122741602575581065236077296419274842299975266710591012585342902255280701574683261566589984192366041228423024943876597287229017415323024307957056355532237242640708122426129977241601962467803444289442522548782666487961958931120611779587519285854561065305898642307353002076419095301969595986671307682309815005654703613151731122043344262639963867612918645375447588210591058982250458119530328341895174423535317059111478252193755385631912465497546750553348268878023700671503151653323988034199669443562737852647303425238493567585823545408524627771815349098793586224227509464987004110306583692394037592753474397087704692066304308258097894862307194555273176580537548685147034747277088234155951798911236397844839833051383028662219076435132560749185900276313731924266596119974964134532759000570812335263680552615127606612148294225150916219378040107428963633642107632691200542953018889244067953111551028685834467215730787865150319368076358706552124531810209412521780208778153212967232092272328358035700970531003866635165524017176543191376339301158312984680072908530315830777364175728777802238839779145843659992540472416447241428844230990858456106963991334584189702944776125857715869243669379672996977350978352435312173254163094102803116397647123329918512146082834027132206980994664300685299720388718403060499753661579991929354083728069597213418530212621050705641095690638982190293668294446980654702272978724926325832148259650169790083215556346722503606828635438629593810279535936263751669927281858428536688190811278133879967499460866565005874203078354730825571903469869913244907199972961530512134075979164593103087249731281301294704280117994220729330830654452247698117359998277642098018042453446092512898458458360298181547850669164767656562448057863280207211043659826546813741273202850932495631473075999929373317025632458601153229811104884246209422401133564825002291940958383580528083588345059750331234957479762774467363995599104242287232785967300004442883641501338611822623810876592463266840665588138894798881890011380211368550687345271064302848959040467273285656420834099663183764580397223590968999071710396171197856638903218109960762233328005584718886790819911511063579959478285212821981295952567264455482270631683974987630806746288114114601062905266594302452658284135455627635069594359666562654964075675114575814024211445273112401417021183333623041600352035502849732791719363863654138559202890865697707057573178131529152558333996505356944336125964184335259136659913970163576224664050506982567555229925304152106335332632154647434389206054669379222185802754041781784766857548322861175259948416697775798868965875505645699680008083554604627346005465346077797093721250391540651362233283237250209436662773337766031896690685468028400581759353452758481009507210522369240795922304087532003886140995472707741003497990550136014538029447018747035417460646519125289310794543961726490644622544316021193511448252772217261479547575662899812667422870578663190286513843308103852593422085705506452338557479203995286947255345527487251243522665272737601159098776044829524258180390167044873059970533364746795414421880361478201806918516258352219876096958885788005248177215829338893011367376716597233173259253655611964283659373181611763737932536325932788851123404851560987581850330799274728517626749251215743544665087896480368864913809311936339344551731822118372411746666987314551172507575175154152501423697122499138260383664098811972370322406749592335171183498543204442581058902171472802978378280046112676356383962828356193715058543200182737314464190009326336428525619588945423027938118538941031550157397549142388788912788110870935966686673605497134768728512975359396616404169970885911506703120819625400288789647619709302874856732349506471498675936912257142071545254398729853529424321972753183227057173344781214103864439783778540360511413986239875787954029593664837757725849764304662113362299213868615232619971962461953515743523566041289091499685222574143789647953369586711810097567193188611568005627724681412392045693896479814359878791110438410491998323584233229124908865215295727251838066267151842060207843536676848518369195413054700742614508615024732300693997789174428337117068908613067391415682332678407251396579191357772213286411851061192878450260768235309686164228844740544461568664951131542939731986478665915007158057234668414741090892211466484154093971196341236151636540538970636521883579848642447308899202416850094897416524721643097413285252030112233491775469020543030682244455671901257123126753507601508005283494111958696428222961337275733064554344654073202463214233033490061143218816644365610738754064745069189078954904385566367360094057278633624174511545058985936736417266626480353213810722918177084421265797719525978728608176848564474688800483357571130491756956619913378424435765778596298691846988526227698551626422911499917893097805756825434878759704295942162412496767162148696712270408505476954858630467914605210643825953525902888403171245991438987019624372510256727239687286041271749318748246340282047251326584683124003063006712947859138065878845367021607195563573322170985304828372268844928727563764147917754964900486555300914997974460119848463114187514368998555063071305768516887807592793056602185685337418895799339902736222687295514648319057748540496935835027116405327226378358658880377464246540263870546464259771344729512253667866343400727008048957860035269088551931518601469640723599706928237850583745336645458855254797377554689348107914205140531565667981989854428525453527927067031153308658685492952931956889717836137040192081460904682342148163637746197983294971989444995599474420760793348552320357428041348403038359641814500784721928579090369771630600532992346564400180459965558665112377584135890893977268709767804237614638429138071427499647864988453952702501332203561001997459266958316518762156372674722014552649927408881453636172425713675756311930592355172997489501751337023773832427526857446073464552239401872067245989708253852603229855310348232930525226278155691933871150178647966349372825241844108847029156680575442496726060408878327350527097805637788721576161544957642832070916283309551053657191107789641765883123688510517945280386593485664455254614483117885730416552694620649417257692834032469875762327157218596834743030676163405224443738890463937333680519370202999081972436274452389783882421175961835435364178300204256589454555658397134258896795973799309343125078877031956017487563252238233556617194235727259117978029312203092542462913233783482895511853330617297264564561647413170819960386609346032096720679726814668470371005566372668963713716029234888832851607447084028564520697373711625856699728077005088777736154830376150170003450559879242103719278862532070617873790162911621297151029793420647160859546021427420566112045496280051772079299158756395536532108903232273682834904891252165072940149541705258800100342887184071811702619039571363416971645808923650588318864300653029153120595230279221940969917497653170828985558027103446233476380464393430883987910555065799021081196827876787207296999608344019024276897940910659358573403353147917288062395904356748557404730869264889035220266902876164807048414625415122202584783160617626206274711074943459785780537541281934794469558614170804689633675089630212200273545076106574567064716829483288171996957656326496773143739335956585623642989387149901917289514628222996062692630049818798541785964498985807988824889164354951539842130261999312148056166418407595962663253590552220997883984680752187892351126807776560476107980930924138541412841062331373563392382669116061668874357499938241584654618808944345836440172841531885224545590185800453712768826111934583409802677738210233656514924127872892218415458056132899677191010102014138441952762050453737089398404476373097597020876188756250696672586568854955221708205405415016822670212133611454295031751358188570778282911647908486696780116320773852500615510996308482293416157053427846663480941750996924108148222697480524160010237229595626675000549776620202761934039095992094395011522466123060033186574740356139487415047572101594277469917992158587093632165035601478285741169573663180891555554370377169243343906427203909217396790989297621161968467363610988880912359925974318303268806504423845128645263935800279567122204565188479042372798530130389169360984448896780906119963469222522657166404549605423671257310929076876714886007967286917731601132048774815568284412523539549054636706465404308685822415039601194964096300752875269420153399754179018171966448782424368598581836073729308433364654929628720265646291418860876913229956277154059517708001921368167584279149131243876012879874363679013819538169701432469141996942245227738727594078416688854997082370220696132114088086591469408759596695661089061086027091019130601166396681485981467481108184278373679910877738590268854766327662503282516966154058387924833067186564970273877978542308702676096111046254036651108010069967780075352619234468676453949527477259418840164148057349589194415136279960408506807334260660610843945790177068940950432803695981697191609904634290902464527476165168238436043566437926897300162177827661383151725238314403596466543652571936762712114973882744253535510138667068842275863972260722442766052450258592560796916728478643341960830098323062368860440050386491832048126499615745773689371525700479530423882972046923449176772957443628620170361066474632398575705163887286940262975317276749698972667751734493532979655440088101787617071355433933980172606577409126364474051939851559633025741475191005136765917559905581825561514844273206014552641291185047765640213037879417615279422290707857601434749261106746544978158237611859711880572239543081546366486166129965064842017221147464044461750634419900838275022048951776222570492359642955041219341329016973459622617780957263342077514004030357419725023560452116698088500480231833512242100967998376753798740284804183838194739028728250810194516602778467048657430624526229743252153219420777082090874941670606606163306247892033890094426333498769950418598157254951007387234370551503314491170535996248704750506004042022425084350178427029990375127762845158402594412355853204668661830961740119980076317283976341905169237270539517544951074365151487662947216661479129733639320927915267513761676372691485328623875275516260795865478132181436694923894070885401345936644242710607951003963861984010707131193676777739499652626022868681133456330968043824113081204411463468049461155078347652610591620707376450422983398900270671720923776309976565322588453450595733300823939115165002658582749633978063416318940355816950697717415958624585682720306807192298286271109021407057634863098194597858385622108947247912232291513049028881475146750678872787041017831086937610980432251313789316998247573069932684501293237093648325627781656578017577757088169261870342029820394701150146006543460272960310044230511878818812172714554161747239137558702660900528902101021958359803802454293364361433842214090561143840670195113847159014952953521337933164170049825209840664308710824187220556199771559518367416947231928558904226089498586365413711229963728770929455519476580642311143420651256285121206211712869474757255057251578538818131850587502187795011308838968088842560408925753969400369510728730002884328613737105622633018090447735308669895458881228886774388046908326920012569152429798787503094557285885801505966983801781409049390119094666294490086166039188132311318583291013815516171012799829328963797775446565256937278614075611529134987877355522135623218136536175360862312889044698725915342738786428522212825807789104155065460647808789960296494903377329585206627913471960811109135380144940360213229825281821353204188911154198915544838212542712329886335764670687114377432690492650594152134759967427822593611888035252678411516092379061963148231731352595624705643415942387774469574976209216191945528326037618218914134030691573211301280966627266461203286892231852127722455674592220120172584342022042830095602344598666358161450034357390005617166682194366707411912327033299967682677557637947240459776975512531932394385641565754828653868520622061999688252802718660449560229582240157388390082771566151322236387422403128201882264635531437202543513501406319626292695132317210648780122482649004700317009739761451687292392529701512488375719979069384346616400997942219933754303568807636236718909105925150142675599048435547898730396163248432204808824650535479026885031282150803433282791676320928020327056469629990110635987359802276552467742059146032026326806969505197022333402466814787776776515528678917486827795859152056750450978164384676723819165212731347324402622445526038387902971405876652809452098557199938368768288512346064192250468535384043578580279304960331010069277048971761414420147030873132209756631735502732844960096250277856216330509534330783512526337693619994278221019239577298933029839968975423785586945503181313052444223550972638908643430753719524726294210470606846407477955234284196329991407646055580748043843103018828349411092971369827561611313418854310670364948918614045467078618593397257838140535232049835759076743386793063872477119506001210532336440246566251873751737180346584915767218086267241204628074310145649435718075332811870834084259846895236837782689615499004518367210583902074521091811345052362263005254732809580881399623641272819754122629007768046540195291234900838376416102659682058005307190803489246555259923071117100753311973549775753190387021872434831372327806930398223769151346640139335604044128350654364036089644349230686455258778187601754701317425969615927045648833811626899569130029376876949107823280389890603312453797496087633433554977938929822567994268501860534337439901327951884008288327368753488687499022610275247590108344988618041105948902856492733012278909797990648009123279624180321775450945187889697884136148483264651554291985247895781619454594564953065060771250087967767226823061464885239467006455831533598904016187171557667044687267120277323681595603569040020972039515375822644137923074076361694340989560560239106567172834479563262779478207642722527157233361125618095598593038568401764611673004866985490879293295708048527674062998445683276305658091536091217062697383578631977726777640392232899275671642755279911150287644577912473681569019409502324743011960015233554985012025889506466128658280716641823204553728055684523775914382576788968960857589470468737009388291844070460598028970408600230031473829646232080909834245978746390631929620708668204716306272039364913099970791382864275881834006236797176570919145585842332602652216868450677218554131823503298945439972283038930986606648284550928324178361403320252485312067255275733915516935550221083054772061313785264318025368927813920508547618071706928115929637061043454381943885215584797945889397205439324830917982106778814542031544648626530364199308959272255397973484518800701500033013472676201628151824285010917049776441887641180194187251874309513446132961096217790917508483671352154881737372548477171820343070030570303457649419961120120063845685301086146605312342215820464424315922210997116306113302466759915286082517636833423931361435333156089583288587976255810785495723032999228624282901790891321770180829332753349519650850638241853971415361203451271980088111629103348882396668240654378340094296723901518059153781185716020705429404863529374715654063351305805387455928317360688570055060224180984586386846505896783163202666847322399641770595831032361841540913996181651995244193112206551871809917282330945267925135966891451670059336874624708380618237070956872542131745745892170581473637020776690205351891717714124485485709130956724684450197274167267038386775599006346243626415108335918300677839991916488349237005853024980536734935648751430269272194540304437921437184521355796117474664311394104306663820202250722314759018264050097297534054374666251425760518043661625843418014152216846814266535857777388929794432654608889272025997245625666088894348340750820827693055926318604197614130641312017122759565880028239433171593922159832182208292560251968001803138085742626709311614469886261951856045344893881860876122743718142401489117158190533181551670663517924121153542953037180463450473999645854181211797667130558690532586448469168455350021328510647224240608021682646953788956532282740258488110975002387657282070024129786287279296049156444355781420328411069188957936283720755897856151081615204069836182366493227770634735135732133838719932005597914885918741810579439649228646422778870119551814539726963199792585386087087949576364664938491769540686265332305127997136621747173866579235721357635635018243666039756754735944150627326358102345287131972654548544242040599147237470541404137140682820250915220450438284516625013471474644550502609338101921689289064506714223116481729358350804558897293429978604067693427586670768706284450986036419851398673312676098191517963808432231267191486409619987878642056449665140799911121896819446770487629134193317567645677162722477528441492328401663299293225711612972039395253472537700673084028828658324721160144274345565064554170231413769310350081955216805570882742475487332702502094962030846888638232379504397658713080552781358837997977214881279662029302825148002392267460540262277998041740396025223590677537818898087112081930482373053035178313860972592660881536809447481735993803270087726406430187141415555846864477310536441328052605343953399235810501727570632692044121676584773136289829410572865508866063057954427063900603777322169936177821922076226700736624102227732820758757999944163175138035780592014193881737780603837658080151088016175214650558140259799981506145353487571033522591636327201817531465811838876552097168899061360652474041446015872053287080678228596370100399885846950616460811118109681023628750509906306627100833666067631537750308773462377452359150280971190831675572736811772613292126111602812017880451801238360353801193833966748574540425033697157065906050119359007520254395709418874036539951729322763125911198698173181811181437697576707058242990761909158978810397809776558230457145134135709102200799518596470355612731092083531969224862781041266132385996025872053086379834302820295121692633709160456695226298265537758041124812203140387496609595535428091847333287942626897533354601037865671692108005904299199659444769679385629663977598282291359863426504351886891051985592460762578999784625788061796520355524831456289201768667008111550028508182715052105922653867179251735069675398313790375026112385177037960555762107568768682364528823058324245647042032401011789771071657607753073492357655351829386460633863067189882161744137911665722836754168925092071609199485729138996809297871050348740372052938437010471751022147669961332242830423828541856630979828236266219785870097504273538684765652306999532051377453782667756030127996442791766188883657530879194177055975658377444414033126238968013514841355116563606213196330379816531600239754344424170469930232352740554274794771735122462596340049003075402463112916847009093209199737940408207938287189488104552039140646140561724292986823526495551381040882054392801115794230620190485598768447206750901451722967592335433114528496364509261290173920350704338263103674903073843976408786041991547451203323128394877501828212253264407605821237005760740270135150330993734836828814042308940499380601564663938424169540984612019396892283155814282988764406208510912382861102955098551626081571351965608714948319796689647197225830875150247202646669926029307287575056219639071392094254851535628288291530905438615668285856794451372886219680362026443958129800077834748186354017820525319789729468587467014151735428606910773314253740798817641803808825035940504256315058245828211527950727617138157231078594131107319908463402516627093028444160017886609542757866099477315100729156554573471705575644068013531717034210628476741764058384222248807290413306646141165450421704317002781999560247899907622292454951022901825849669058806209101849973182368372013838961179933451466382942238340009224478120440442489132488196282693323120909542764951467934736886508812712361475956347743931653972759258712694662002660576191636229576431418825306342577026711239882882110070147391535270740038104088305086732147638747542862954070870679563917461863334920232524162081246277567878187946528994278385903531319519768419094016073305558995576257908355208169372374621527941125577152831398149004629416936145228513159416404646130676405433231175522703758479410615838143119236763421307976944400024868820137732723729729878430485716902416286710476695072718853502473042990487858428421931073224422401347329699154318476857964461914871403899894165050950857933585305554270457842452869436818340842022005263827076634009383092248742019650797520120890577069946547622715611526095571548204392424189191914539737125285393064359792913469445377956751248306621985428719947645449634829377340826053923819639172873054298370069507800181884027869633601174151334137089625835354293342362289483907718491093198823552051371660384367326642312167569491260112278030135997132835737188902786633427381834284758181608171296779415920383049106418291296892226247478634796530733901001481202531255692483711653520691284561941857460685334513442544995971639825764284037459781898538133734429536535475464243355835866382728504303153009949101625902112336458930699459815713091260103432746454074860136203828698825565630055815257573391295677522040042750623594916670829942910531359124317867664198293168549747328959187403165723199101627928191666745446775223483487117769853247295723932943953225403265981727643732839905768727340519690675384517950694420246765365580633201620739107627089696780094601700902289505483951931956259155339877557415637394797655805984465919324612954425930294388364625739229360137706775662537194127389979471991865903924842058334359434907375621747895382254393335570601822386357227136729540282039640088849142425782715284417025332902007340164034131350816575811173295758566587961820150676590897064841760914687455741256706592342688120947303071348886665248331852502968717908506551726654107225972705476449722465948212075765848040325698980328995247109664180071102614133615913572488512433521077065889252236670275373558596366966833879900173227964622246395738470041218280710651918625072013761564379888494929225519761530739741658448944291731055120759467414966322969683066158560325760476992336741499777406742310150900289777003995051738822941871670350775186944189465157570135122307423175902569963246010903052081499487524869531646979229600608306812512105193294502241662001838309472997707145706722656276386794732239879608275155587589442348121890123854065238133722510010644844657500656953909591988608476045946763004127883322260800012466788096942218732961233768821327531016555338019414794090526406085933860839042436495427226550985344779172858310014490648362320807494396418250907346825790002368870759411956446927372468756929626428452366554955636054456424133295136024884777341363260819366598993986586491889354909415131375706013862571852490472685382725975235963652070794605324899591696579619680378940533178877833520790708862006190714259034636758854604572571384059668298941094044963880764148339934292976621814153680736195980623637743640421544267926262136845593922634875738435041784821316359982976584139439592143145249108796656414598175571243369375520082180719837648647336197867521250166717313105981588411726955856252794058996847763765706341839329510898347459507983020079835745743261563446095063714597152305360384181188292385229679173991831077446549494769527604283093706907027918996089162411666573749733850354060679429196628930244466938496375972739293173011885490206089095052434266291427616243982889451474561880009621257046625567948697071166614163143063223923607812927964861921075540585805855685393467606306837117934514110352055206780769462407952388097416364500675385525400125145767935759694564453046230736367791288983297379693052874474407201505914521608690416156367146472232395403231320373737554934562340913839206868414223422236517599521818055611976246197024632324600406950991389692757606006069264834954096220411462664317140751814416817677009850117752638999656247278135876572720554850883039351183869030655507365313761560922683343753750651176162598121895751508737894888613489942421828155075007512918869896444680803021880056960642333615379894740686418191223303631399520893501743753675392165095249201147900291035879044935590297398242043563334867380391199492435720013968418863580177870739953727523798815872684279861696949818377834538977053710745578374038945999953524772322411021660373620772273201838139038444001608244056449906729490002150953703870621217036859831466139710438303247157023472447618600634428396181149554351126491084272266820207115953968612812681990035835888063096551776235433430164617417022287894039611166700557055706458536327142301646841999921760596437760797330304042198465294604526744550316646443475346473867434679129687867234989936137368295862066118318398235345562922376685969172510708524382162006090968611149164802335573077557940926377308779725502970617137968655404265581168076151723676701418514696231106352063443397177967005990524516877227528237005641425809010365849061980376904745108859452842723841061580117307985148340661058291282018944285006499235942911814137629132064967356907073542441748194054517187813342974938544371894976630580055566019931288873647099787961404830355690820732305022817804081359593908162365726589618848732940891883695157161475859363167150173860370937036545875215108707684436814769347540431105842242020882761687258084034585377205883486747715879168394894984647329691025453502289833468933002962215417383701479568919380247411338440497294237122702135568539109440575004699395284162021065842184679021992515224925893434172705022096369932213959445477907406891649168792511523894006535806112190053846842747298783310265411171665984106956419294956711431732936843794981831639833672052013863990959752710341303830060803774641626724109907669461776775280861823648158350407622887713855920861859610797262673004547667641150896773316227374087532493341987251710578494062436131938230676991991603460881906166088817224764201074185039945510437817409456232172059882369435745996206028063889521104969191027012066380404762297049935674792341298909867514606150953331051337783590581150984387935708686843262710053493304815911362210270911778688422938892168134723625134475153335860572493174973692704427564064329353510804193350558808579410972462602106136707719016448688626863879052725733153403174624609085593179948920149967325885155505183158813657690513117591982000680944214449661739753559047899220284922298278934782349330620327173644431259056208661338911629377117916090489976244153255103046095339374556521977531361115830652440805297555184874315274925980034775671483843624400748996596214240919295139650000579554125650092380081795452503233007708373022069094794437870378614661190861141145699968999523413452663959431512644239669515778059389899733353019518452299231020572094878476676406783311192287197205570597141776746664825273737999462978749360777650871666733917981150677335574790775009294656884562979317757727320730983666778770288178561725397597173022172320872001243858033881091287154934920506259730893902427554261081925188825668879062246312179432632466987197230138632052406998768761472288727215544606387732537785387793195964152021810731273463028861349472974696053244624083973659782479332023576611572838267266093142007662575009002682945293540277577069102474635959867876501436691143507595005106761307080976323525433775003252775711200000333233624041877153678222378588832633825481397023426060790862206424324632928049099812525750714154359231639695812546606627221820162180760781173504972112673391083568889907878992937260609099501981705396608682095185323696702734396373861669207093832971892877779550911043043823675390423158650604437882206683910448727043822936992002479143461232894304696649618922891328897044481497614377148766095543867325067694029752187084702967857533816596262438307810084783602469407829449785278832837807465571880843229250568124268844693523128071047081527645733220993170520342627723033831632662370448312781964103058051792298019955953877250690356137702288795513612966254780653381991789791759744218144065996864567273302557497999187209926576654588391251522664028134015650006854383092837336592959554227314117125695404457471344336909418591288380551568494459584423698131577114329052909996445376392959868071312139390272483790952414377426374009924794956984132882474747034916775613807018760297501655040934971809461711899117331338849653883903066060601949001308793760875779864267333772919615154218483841487519773965895224035798906837096181326861617585770609745273409440672931547549334157896205307414701510059361438192577000952500091920343713457901068303200704183552095835705848880407885042273852909127967026113000591139054312015012675940573473610273340691595855329039675300880692710854952893695220451592291271077551848558484480983416855585001138861826261488797395276148123003683879659185092110656126099284906794519039440121981859905487097483760469774264158332227544627226620312647095996507418644006278656671001820351537441420225732148137580198775319097911623235155760737471333105422311173399535410542552305342104335447525504442303463772390916882681419864933377542441857089693832672718330051337329231422384776466003544673957506743158918935341388918438039534932675426958417174409688420786362679880344091484568876546744242793147586713590959239966911612340309612297935264997092162981466793407238240862078115703805287039300112038320674355140757537315361630569774842697671288998360850157982564456071929726823690566328222243712287655022960428377092391044474846063732656125121020216586379603214203098769507268262124513709100694146679611387961797390870171774238192562135213026185656764648751883176549261802972955290622818476837257840557517770729563168808475667899170704512078843269983184910706363300118802208922101251231458462708608740303171711276764221131767478177339626841623746753423775432815836375567265481641027229575268190416939044727967795815478816888164260257201836272191545308224061189427190761735354750586878723086941159187292482466932205208648736016054015824264538049699188448749229711696894131594092439023411918478246874702890666059508065456655305149974544146871199158955628252742576963522866049539270200538974102833208487451233787570965652972679119052125611660793068003797679350414204209233105972356009408471067749692284829999254385010991233556606477112312789359727154797071338199491466422414719944852600643670630751862228708704256929790655241216429978275211028255363645127926177322082268460934527207165808663033670152027461895316416168759031255508212633456973835159216810284185881600585427989822714569436539470382220771949748829784287133507548057916392394860680336139480346808819095123308675467046503534654835801680482165564383877804984269706251275644861479240414616814559266763630793859698108469704075466890223664247883441326596175722412850451445169333476735438257434836133217538216232663475764498576143687332435411282749220070808780648900902824602620663808419245885251173509928335688116407878122103897755706584838172280347103566970829485015643659451220694924680652332257468541515641525797507568543520449396670163404650853263659012435695055137411249038094099867765445172722910727601207950010844143521915204381143187200241259304521605131514046574635993373379170078907860634203376058724551815633970332020814508053042121588515171568634486836351340908669370766190400502710255853930635156770000499003652474499869228284157497521998803577341724886484048747953712190852293720119790223636964161038738993299144463509247123095444957990820983321622888708769904885294378499765647129227458726035882939309370093557368366546215521272249948478581256847757606164515138230065886741046595368119427759300134063725994220017755502214136450230754912445114642605512556791359984444830355320673614455998178292444274756653023779727872180194913586336509975403012103191459381795529247869799369854236868068003182485222276564121017754989234983467563226317561875709376221027681930955630784758268931429075753105988361043416086645368504695548323878445100920729390444294601081077378610911908314633739425007595746111610977552356010965613430175458554627447591545718704668714545929402485819283806383751126103462525495145600822871301062320359638153609013610685158438198339952784474763597338750508759498973096275238113710625042895456472891431231244433095565113331358906044383333915333873131509627190356139807583162203402259583416187285867906192437304928540563393036865078470612094933464378610476476273417165204490147813608209108409318835236408545005421672087869622673333701032449420595332412231239085857820630743040358868381869012755431850845260232362875014194525183528874800355671889690801551922065770856423354696936076922801861838817134438402033779957430413836488656829966760073374532155474565145240626936889483709138624220591496076682249439789989548011163781103282643862600152609496506226464744839533472651193218263432790646153533033913404024964539294812280057879579771670691392882220336752046989007860648929045668058213339955103718838447763156279222601996187267104760127091811353792355915676068084245622822590545903001882065695947690561772668379967570222772527968892582839921881775377007075862974874096225133032328045984881054656790076345774893831665366845515330537822821711547779705568535467556983313230121459289912667787190957885495488794698116494085583260960795358847474410407853718944994618665259453069941801639027238685861834777617428957054515074557262969092428616778770223200019337500692265637162198680303320709437195885888793593000965289046990463596075498631545467411233909420638429548472958482116141129838453215206729887912150528687200237257301235911084728074231028053504342163181073630288481726088157669500014108382360102999942753361886024188241265095319755450435086187814392648230386693442903921577027397532499099230040436180609420304315367916725859724860494658596376930697048205004121957838024554713166715729568398989464483933016651599057508308989957677915805098475244624434062046419254002761352744483073591332606777751535409327384600626265816773447941054995538717980610910374972090947118895395979953352067850946362685564825888744968527996341319744485935867176024590166714121490972069638725409368106507023031473531211842145590863256001429513954624285044045560086151366601648433666638983045620171091313724511250129264131065770196456432395742539484248198589363357102459024346796446820151112759534468238664643394604650541155036533362543745594231918750080407313538653362496156110870568079712049471032608795321212072879436669749569525494024157157348116413681383471110250570666746344684674470423938157166561033725292785277892101590012596038945710525593004229027028061392610494013546181192504055676462124221957116571976176216956499991942729595813751242443172601838178779819806621281784161395894862246870767259578930105246249666395629798525508401810918934142589615367622128083677964608817410156824538076389186638900772750583304064499424092296818713088075944241065208505060761702085282010213655886317578769396660171143736532044469854125392329802938801815792062505170799438400173740696897973322111482139564158528967774690727390038163538279973558714392063956897426979618113461238620208170824372499716942288961125386005092452924862391473450787921016453309063124995764080298939343281958889707073486335774620144735636638832334366138346418169706625549645690781011768911002550105768526334745485706678401531622043741517559189523878274614442640966089438401582780827024827200190817495456786781811642299701176058461146974162217309884550590176332150257041051503857155148768894949451369453888166266338019409591062816032835690532415970322147426315394451379707886889220593987406890287965566780158484817094820232081046221896287710962826467043547772871654690366372710041246815234360495067018971632048636059568222320010921810853627328152872389354199343229458521564937532469802921867958087734256607609555285029285478064689899120691733748544950152627914845013175533452750273987285392583056364898249600687565690568895871031384339839553325960900706049160382558673357517111182164064682755812099823614449054588362237354665165489177234769721138722041608049169600940343907011529488261019807575123845659632371971547072506196695905675035726863900232436695683408727545695669466184635822942246875517512347655807303257765791988813676762118036895485946992427837830892569868280929729151033610245537253427449972615283516258072157613820428562509896957031451795171024221647091945888927924462544652875382964288109277498034785444611096054008601587516833060208336206009613076184912631103041371815805119304911552256861224899867818658442596227415657121892498740312729017538385230845700217459568717847819908709152457216167050848096500573626383180237550329190192773585839373638855751097460138183891774864191699239371879856007369764661416361909234928435028640613456531013800319898424828416782710492014496419334030210938251559580937857068464869923203648212596681453943060530711696440662991066148175557419038958666523450051089529057316726635958360093992764475277611736445389388879789026468478536818761341518637852938206748208241906279977081898063794203551177042081989825971091741209635322677353103223945755252854218138853480821921097620919961166459372229356404478824467949333123116735739133866969446893282161147015417289742657753827713951277554717004295538341903223871127295060768977866287991372819182056427092781941798355306203148164125025486740479765898887727802396011061881385419529845919113172631537985349446583689441029601332274278300068967349683685532166134413226529730975591788706282052811275666924849536242412923293465991795488344772619980835844323420626619116714835875161496882174861781495769515116391112097333657685862032736828245827662441193532257279197946293606864932077089766686617580791855862069849237744152907115813606199848054682659288357363500008913760130246370734276476434244207342825674370741718676542224379112062483703408831319206091337003051066376546314169425335369105633854985767857841264370761117683126595320360724821326417864044976022800170933791115361211607763109602112252715754035648124378013596620110497185340542436272192051802087366326998419558955523756082726559111930964341934128470800798615860154050686564960787355833091606821337881064071394836435942290924304026841340860264839235473163084507107701636905443343735008772340459570531688892513376719329435686816140665305575485181692083360188945115529196756752224981279535063009191476470656598845422902016396981199765547874592305146696837320131694414443918341785809244785829320698672275364834466598055472502582980828276580674336908657849009949837140939797963492674451103885227664596991401206164911009610003882309006679759916275392023759350475075214004671520040717810383162012196434631336258013304699593854548945217462657076566846924369720317153659144025722450993788068685249286279848387604439085271716065769922145221280267828443014830107102940940720755998219387593710224006512266714384761017938227148005319010914838095045828772676466655148208235199230667582895935061384138164147050078845067474120760866331524791671538323143054437676952063622887963903986240220498013951515347469990962250941172872971793099416486626028644884547029919015364540516447582008023746348005776549236205386576195896558102814073257062038583548329781175631334820209993166779577364157471771905505192169133063314034188508763277031352842008204715150826602906987163077406404216461124533306295599359251218350335383124730130506985971057128835707083536102672133597996347613852854266590824649727561067431697947089703968686510068889413180756305235802616928175779871539275170104387307478306642292663080229262887052959705679842019981773473486913661482358478882510766928915541321712902175805512850527074400295747476151454033644326795629639977632269115824925559301619462134618841736689134909088241243415119950729721755106138688541434829096147439218236986237414499660584987531967495975896813147707848936637423527494077906174355069784802697558140318806108073073346078482648073945121269740158793106322847617427870914103777214598441229699968818384179626867160597091554089340441820919075984625188155408713280440067071079895401784052732700194544925472556313160399079595491421407430881706241750122262665595067723184350628975423990840167614673021271004767006862076076726526712113904390915915881207137658492687643377708412232355740327212603211464939767597353226041934713500710400817188823897307443102924468857365729379733778170856632079401117630223438863314391417285976096874250270191995814708138935930048015383797733895580589570296997799782357181947048489749040514866977272420956935144508038859444585185216303265440884068361045481442235286071483357169216885438036497040436196655377006786326643316397996985589984811675111956448459688183654394796197122851290469097749784039908137188751316491336597268486515940243775448607289708648543737806252426959909673025682558513011846157554794913851121983660207414874532300720643519073920196216352837249154333074602342018882151853566953341487224595209800407672893456570398501450116805525885266981485411798988922890104259377234489393773009166991417123696947739619799738476199695260223682872397676460564436504141601203500521141886340829268405203428992317185911534306949353977266198763735244865957697459826854532682692447524289706446855201063058916949443338828990050530831785702248144443134532140566602880742045323383740396835070837220974706836857285228708358298931731002394802314886754735972657420939441857411369955882025872493718097069983560019932274037531610053157484013536140055785860268358965661027563414639813896749308759747053454765015722470622113852839534427051110326732620169479489213969990302439707990481757535554225022174449188857288312511106801755031099724249734714179622426518908581981775281822765223477801846716309484406582020017639926958042482440432855269806015131226925866595780677016718746664003728126207382235234642779821363021398584513230242026126861935466698264102490683889837361535420558581673685609226083341146866046162942415412521247343926880547741743535411587582591721241355608308431399332015187306760124599643382820072823744858183261705201119774826667939818749392938968270341654575304548366635136856456108189756226934388628851368912383268192668987386261883162654843247201128425445575370940220891285996793631773633853346408289520518289014908997317317228399087263555825788049890734980052610444355355733936161152417720557897251416091208683301128145030242867890476719679599694055636676796658001794285935377311124962328461543994621565475455317510396130436473021485828999548185128438685280820114746932387216431623310498181679236604308205200672766272710663956656461142048595738017217690341937841649813407264041860958802712612594424177407978230203528652573284293530808179140392379295843754739414414788967535904114688087005284308509763706248805932410142259681165284377767904832316256381141065643116655374616139049001772131022907548814056553001751973897195798959340280180769279502934312009201220868285969980408175077668406870824101301798296011336653203783837544356712762046346083436755842257083843570997675095975389881593380786480533001732685904118863659755638753217099291784172531582753205472081498436444114944950758423528310707614819519427959322106457430471944900440803642503194130617629046458754825977432037495321146870715375364448297395313400069586488975890621926976967377481395232732473802816007063905706979960729262747013811897917822470680822976363841884203476725610399898207206194037590737790224782607024039987302055279373707416069187279041798135356933429845420389206476638245870219699964366792107231403640379497823182279999710466205410576445851872132419460220341319419294406420475696597277417008211729411927665437874099008945459918524343810855799937433035178331299541498406423616825852191342914291837389258921766687503643740284457092533595642778234246752811261890066679540828755187385726558673547682758820660914843906691569321669694039093837309734927416236753747838335773424470697295990115359959579591799966207866535291524491731047288524598826600650327038218088097207280823076927748818104978744400001744903991002450084036937394965811336648089069272406718340252155891969594749631607209477770755203462483466725049202917615360970804060911484908306527518665815919537318559958617786743746641122510188957947754378552919555318488714379465306764971900924586901917049096557065843151257873339754342830724072272011613856865562785995408227414010149601573252879148751968959417350205010083359179939619509935629572857547816823256620398091526817269356455157877457752570867181121360908802598144061432040862033225072739828969333339300310394031098297899813967621286244918464700138455327851230938481264960828574997937121420096170657341167394683924067354119521714070422398081183554532832659113904983363204628989957301411698333418569812439077230390010361983987459308884975354307793199408932987125214790562260036615298387854263314423862579382746728204188633908322905834960808714572180347688680126758271581528012639337310107161061157698553269251438817601120912350445728690260723343702322261975519235993135937162925257841272574112753384204804982604881435442108305142239833513768247788722631646461607511910402651804768820093204250590733190921895955115791936017249948157410256423530947995862515239003205150126506118601229437692400092389737226470012651966917744178776950393428160456610496766340377336980859928362182630256958426826220802698308939423229438087580158898539924478478850388714676467228150043314465946415681892498489745788510282555064018084106441326461332715514311246859703374127818880079662369538436518766359565198645152443012002998999999872420554067716447195963129169555273467302319758113675285221169314365152904713175542892514855140187699699910811484285948855774518491148331399820179448027005312817838970129534583452920952001173327564291351072942912972472488099125837782197641581744994779433318718349735731761981214719580151494036719944247230526884576193208336446587427392033594971955863114972572490317057208963381075517486126203202229335246038185225933609607424379220666750327439992848004808962959164036121833384048716664346040398975865903487537659724977641524967102393926874073392341213630870263226428089498554466659734512343473489480234414949171358235924633135766863151766268105210400309922837739410026876539081120487081480200264687383192983780625637815786285441708673458074030291558694055030618276201611426739073869526595980717455208137889368130491170858397859857373008815453614051270438030495067348529875120296310554200301856060969067403577489406620802628984311931379982250320001154399855064985290853581391102344354769166682693872999186533728172641965423692307006871713583917211521793135421042859733971796712157916400470365929555420166478591274458736540638841251211384294589841560352867585821819539933421320448732805439030617058795879135621846471637294121636150674230544254894387014116766763758993122612071308028252513664715870657143274185720620693415420433896009875776635812784845948097617465743823917647802306337783882293352195838911997475677559988643130999872708490225818003470414563622358998569013961026638818268346908149474035177098851954522563891472026044847249562616162215012036123311506434981905856374943923687494192978226320006444707356816718086549124801578054160040997691357823579921861955230445059562528981633366465233032895257823394825738343143434754890031330784142197686942071590906739737289894269986426801405761483420104601029145274336302813135730391382727311378549279830413969075130676829255250270340653748409750893723525402897222740387621873114583004111987365423411339310334474067187741263358168475011170290886252225327735454938777155519066830423238646050682757031249503592107091274694827466586341304360084621559192594764397677920879870622047535691172214214500455893864209999920912372874118521417177763093822980512499978091171980593782557684617008401676509148995941183973466657496156375006995679769009793670620144091692967329877449415691575079069228962773156634746163821558804546431715767001709999137056646495638784294006592892933420961145923324882025643670696489316175275814296196108643126615374454485877649756484413498820553547138984836796900849198927993270846427709600974788175335094050596135569145442278932430038348353607708090235493406533994657832063411909703912465677682016750939872013178558144572042800814767899070442766249931549242146775712365669091333413790874608206436978725231235227714210051756924365858940818811201415047304051778292484809368582202796261242306454774880112166383326232995649972661348337666206423321867291220319535510766742197463005084694765569813472435068130587480882495358433507939829908689432911373727707453410940598837050773814316240365966925990048534581953248104839063112393869820848741425635315016003482996431938738869734655983188965493259784521733165548886126239329836585197655859115493570107188938652816727309191697482100345106533906028278796388837647180113858963167790977914339003894119364063397722194014276483295452223543817430939085679707581801417843665070479703570182905821383641151741718621193802262489875119708118970613310726043983254659557027035760449665789023471737763326456722998223210718009942457101498184899104693246344961769587526142536020968663675361337274640335156630658279585127674433648596763949962927328029546973351342234542856816517965273959144618960929270002994147551023882540442056123540652511218290860166755773470156653980514255187621029780370602245386604211009390534017363400312821580915062636083903560562804649712584615937410959055604397100712668979151555621340929299244114656607670543626896237390092723241852147063911215282634973131300403198030711044238391240417064220209441665831157080841994865464359492863251413180178201314719673668277973346631416810034887172859422209099523769467317034660435842876850252926100734022809044060182233389809732836699583779581268246277895461419967077420389640320363012691685836743558258231506268850898703795567973920322764925875463360406479054761010961309655660178257527371249462844665561278057885403396402364467106135722722621186794193334313943000122113920652360216818017860934246629621872902238624943203671156598596231291560815071945663297581246347477564080814839565446277757431861167081286441731647023025492705738259966873221269389478556015730760852967627852175364906580434462847341976271200156908367698177560908343365897307617332038556238715470712463444750498976270547203570287355174604657605646647180543038754730155901358600748743492250258389268621043484349313321781806609906913734502431079427928764760087574333363888724769245782441127057982994943158110093055772499417893946293618349385690679876753880540527080518536457828420451525544608028989949189775622840055715859911842440746659176292035207932414634708255358008177390956902981023524752402089277200806034395026243074885823960923795858837198678137064890899909273249838649213390231885916385023880220258504211365266711563928683309331558555380374437617758131409417864763632491676275994361213653299779344049095024402633651000943252210691145573809940426941152331791502650772307528174433042436538401708020059548695841517124122596658175710652578470953094734521382674174001336080662275871221048871594537569978470605538390350514412784478531205408823141404214489301465407684828244278587142667110083586804314289829789989857396999011052909842862055807707932363805398743740233903965519674989429835256219084060324608628444277200420628408674035333701935359695458780455174605356851863020618208369566732886080842692414600341986296919443758502448503887550980736202443985879680220413305880447897073559740039365905104736761780740984486584772744408893619659377442204848031539171831885573709993947909108517107367254226660475378294757690681202094955020505050770557898438124051326985108574026514537821724407696483480192541425026355142338883395303514959876149945773766803210780591245529075116771148520747266591913009636883009161296092657412237045589421341982791462020502808142098828264576395650349653233624470927190829687239377699774617889326758760836317928679966238902983968832228846536160111907325714635261174216202701919217651051251489315582170425342007614844638506218485292945577858414565760653584777996326222158280439721829461958905750147204486846806125317702573159275203987187523870035431071918705656858017337414869438791967450094144612226394130710919725101596860597355518240338747069540611824488919543083337548509679279009403043618680822607557415064527347401251199572054478007909514029392116158535452083010846910553571115544505123845514609174344084375185089854683483157955728102735600868774132375159787063881019588487202499086984926828065996430538677886979892816612977092356229790319130647415541495945877037539982400933242574130861939644645994643248972589314636670765502616510178266403517917668968290870673448331347501979258016542698480913345369747389734820600446288441416505633056697608251230043145869944300433895568687962973097495077249712812292199998738462191019482807412863239880451798991880173748446779070507035964115551581910044807224897594724232859849532391791182255719980464175222137901802784130826231364776325620359451100752620550989736243612977123236144261324908107269602593859923509509568525442804125083527259388731219849251073688082673402216371099510514419628030514566651814675070172927161836408109537525813999446897436488261066283376768062020656655471791030082915461456216790021943900398453855520475787304647075194143569148875543012158187381434972176086121018431316149353460563083976633244815506043431191107164728997175147302113533352954598800855894094221348802058849193852026476342139670056096265588282769895751935445494138443493447118676027277152602780570459498214349607636164403181944470961599807419296216167374343439596059060178132989489448424262430388022879905893695664946702101820012732282456247863633017770239269433103865306819381004545264705781595168716258178959598701136211250103331836228050548012521770956688715837160930480407258650199619249680350529093009943838763567996314712980407326484749045682332298631486914199186138213383851032444600833293855115807912950256551168252707975485806365674345825271038564237262962606411138257114261700960921261949275234078553436560505223572607671076102160124115646018857875135869642036775789126262416569820578105313947829568282178527835972403383114659609514066142358107470253635331609239441469105857094909058223853405263871838229798534524547438526439710262176113988008292206838253754184419670396518041540095627566956249792683734836717002775766072308264152294670872826143574535766545524004200486014115225908486083753709911250985583535492469907352744694519423323632798713958551074736386411651012608920434408676647972695128823653122364010206514420524396845079564088135015473748599671866218876799038115187621601095594437632438664472617882195800060435184158374866424571180416220389691545822085031525553250176026280194204577832747693270607393242733833946203237053947202784463628430190518862433150188054229143224917107805172340180031129378192091094467971888369331814667798606126346312130813885148496670246911001056318974809442275179744098084054617310420257990766623270934553055319665312326329093317021758292133521530787195618170030214443331127301441437783304980500934422719935828212783530452190505346583500705501997989846076692289744164965594531813807824999648088415905791365366219111489007634469135465509018388046621573010773389115593608779732701851503668749622277993097941859323201326199132364323184565468321440731413925053895336916370370111103291422992452570130634980994310847601064524040283300176125960548913305032648555047782941195517410527206653991041089459421108333818462386918239572610997719312912158426100044903071428126205544125683880826928318941363261644104397041909892621185818083882745579728352959602385797901910568211912184522967853246965227370521357686333677678551503627172780406913801464672309796258845228174511771093147167452647339369435758003607014998786404427803963807365259228433407467218779553058921678878333714853682683373284333526677095071272387465802782948185053285776358618028208710000223628782490700218953936883474302493945748604518501499376950360910711657396439665873377027115867565630413006344544472803405151414574022214960540730999737603857236775536383803940502159109495800649955757237958551105750763557307108690211366641240928989373317808217476595471460164044929771639084387075053386301982812205866819493522963849174763395335300112881972878394708931382270586352690562210284168303782164516872540626992130907626972589194301855877772133203919145366646560984098693322857459757313087326457412198230187784058876759780044570418583893558072058476666510253256278854614514773373673623069737780272021414636822305880569930863801934503506723519782606561898384040233287608044281451314785230017953214037382441936952856326701483005644592744599805645218228184306786857451182118204502497041453829769971947362184426807416940309973049512151258809886538631744754971186447284481112689058414377656989008915837592224647122133349276651988445346488793339829942780248615593574527347209589317783805924323748639505867136974443739930883071189653301037454874722039244172752447950419102025638748374116706817468916943818953193546886320932839394216307631610242768579863288999349004809926326961668688552410232689144813336858402862342811514075826576530481919795719341075741929069717024360906436780505211263553262333029726726470922769468896293098731494263994176298197323113027919694170281386862215193715977438134575331676862385508207148306020696874594125947931077167390628400546482654980323558810723328675228206280214732139765540187161961200267275446165138589046808583142690607403785221114149679002258985782040174481840436147838574268967883616259334270747143309276647233575817502181493711971323641913246941758464091334146447225633127060827020095453175088708710151551808009231222901720096758532726911412863191880358468202598933186767675192320263010983772442003335122405943412232855525050432304341399898612682548378983041452467666982680689622311846054121918273147314277943032110546819013599060820454674875853813685357264684538298564513682907032752626682999515333785227019793264961675344203775388189766137465653163124377123609680111726394550366612820529225856261828396099065621235963145654532968235516168030184699120603224861641715561279600789568787162927000791998909042903264516215786496114688533646561124324311168462831433395350206757413115501305621590938297785799402718743382760868252610936460160601758726732549154244939909262316701848971423344279166928860271552674747497645023867609448535260081467303160653755044468450335585659742587004673398066466764616550043464931565344027889263800437142935214753477061459309913556239411861889246487302365684537004404046958705153296921210059249765804879236074641883727615408280154741788782816741137601989912262026021989895889188906046657321440125418133905214115645756878445922520653842966514171570450209718484360067509934811277236167800725388695892097448512183329273062591551055357380893213744316925389200374431699580695332930039692949438642327524198641665197617069599892918553841229586823765228578379667069316752875099218054771556090035533847866450590314664671062518579117619200462871324045588238157579472846943364491972255111806790341842235095698769905450185640101951713588296477079292179393858368731856974841190758616919147953637673611735248091578168373505333280244893095774026601740758392853261080946149958161118732747810078671489725649706839533787348638183196387973846635331746274698883991767953644342835152097184161798879612948265485105363302523472564564894984642152623333738091379277732190913558291007606022939111281961282548721030952342915925497553704205474241478812830211500648311775384555699252296064400587115761985231384414781069275799930795344488913727976743223690761126632246529077346686069156585345416602791048816310711530394469698816137050997455245406337867422153382251569373219962612574964295473315116714017756979224023057088292928388562582232146550071897189115607994626253680730981858957680346490214830947435226120995982351666572150375344989397206309008859524412892339417966436358989898731954247301688230766451984148341686365076544258192110873599600121805515605686344362595011484812521685775020205279662154389089076258699409577933478868283843157714171630517229084110584498295689767200045963237344749065149595867609248549923595459129138726346703363890630080812027881059262842240124371705257416927686714638437873681739850654749994750253716436193262378987138421953339557999022434736247834712821896730637525236202522117604398251001439094780582903842097128641170432235688133048703054719096945771690117299952280226429551955884084158259285006048239580831358098148088593811622202319515528107203737064283215292217103372895457949973623923648638288231443349787768340233597396027167727747747727531409481802442891513157587238913929680635021278001959610282802040869871482332724060554782598055640757636238722824913932541950267629324653931464379406795689024618457438142854271348772194232899581255037188679490809918599836651502529576275620878208285362563804823855535993079246247053142741131062097297248258768478080371208236981911573244878322875495831656567725402679101656056015617866149827497245856572696850968336805414984474238038055638096422838582577095103364109726881000282540113493498986842185134526089139984279283427285301156102864140537177252183354286354919979331966947765208282560734714446341549819551756129110941244460669420252472685972907045756495515175930697000680301632124758235125536258192815739697400902606915163167429250818510310457069562063498463766921348410534139561253224724725496714162047937102415291963408059545243702639441375493348364898680272607822272360682814405252296421608548858986933149042407314819711185690681867306475867573501134946358664067625483181224994048447832155136197929655227505161135293213386617118766675178045521881658757049600248458289269982807877869224868487298402942549062690597845642160913129653292005769070577317074833536472717837767811550466537174849620832005932094327594255997205881077819567358300224289452252363554431500327426536005351763378530170495738272989001862318309569766694702738582798355664549506325301675606475123655195430239538211199682436105453070740165534683602120450538171564339708211799886211225003214852830049948519353414074620836076623903394118702064859479637444745554371347794542376386898888617911298464881535985479923196091203914402353227711584334876423298302393702698793649531851679549539750428489425872418493112252457385083889728359010494951522536662685422867538739182310372272472974526462772152663435351022217212833709036083013928529714897962355361591731094483118396377734555344391228934615867219304729156321094065724803411351131013192837537493257808549061623818443588012205348602981332059804727037733975424792063678820118565847298486435366618992072242946267868106727699484764387773886979869270327138401874960193135198148107567219497163031254029892978572344902953487717832492220659246534173812789283155292973005260869954943902520511536357460491756687293895414812214710556787994161597384855698635846753817864477223915422554534596314486848444844580175447663003607389485626214542045272620610944441989035543538419156408231667949136274981025991719466031821837702484291664659646239157767628002004151940670813398289649697479331214321569508101699874499576167746641079207655433913998257851050921161332991725831566893227142226242779737311233281547233498231252136870389607180250685935616499684807338901134023072166566143286008450872395455263818239380750195199348323651183698013715096548241116772937005050625633989280968941144778530653457843474178438336700264270181834533838372163346943851183990862092496595913367367083024589087494731002782660493342398668423081383189556223838177324439101563190780517423636093449957175184513341338989750875219837557420470045240367712907375800777785828524798583347914381361456592169449403598023504147904343168509932118478934064547588420097507532854137701157752044451596228636477538391471981408205848280934671358752214302823187587938839123579651519932499208803143750911684219279259528674166082393153309468620388931067539623877722262146481350421806960284914785805904478500194954347458220415865186323453070120753225660763876797956819566293821900391806689547272444477069130822665453111281400923634977596823725979696680534996727843553667318690967573892396340144530808817700189747232567064705247710887485540049851433910907099119034225930913879963976464604150551347996407396837480558958250277686600074328401964859463508344003869674282067742424735799376019293549911318958122070518003361400222055919619451423714808809794442134585027963064977788640479884774223950459891156564038447506852303374805237274236477984816209103001814730666443594265755454804176584662815798403147376188756341020539133631218691018815016959010567783836233260219155995979297819588353598503844746270558459957905612999679343914186268671097821573179713472219069368232001066437845389602657782165699662095239935905084379674942559178087815073856952118006452562892637431950718236504854092373149289426705928180689274488189076333620876287366985232553716651391029347191320150517144879071575048059362527298382557496704001749108185468037683297219847312495910456233040909061824756733116549565768842513056568298579420462207234981499988086612781378215519359087959764951540494487762252372420480796976862679267224380197282572698307498552335159392374506174450317868593161466822613596606304904055870190745395685428263620901844524260091134228346036913065492737028462685265531973832834774717904409478999510646016943974739554041482054541243383129344973775684065563646553314852133547040219884763553785662294585080191977957157435403210121608067891042569018669839255457903799197662012621466958452253018606205008973401541505684458158118798082142909899701384294267464115920739830001750933552556402743324551893130868827492872788451014666614779201519792118782189375347968364746638860648270290058082631624531254286128147603811659710718507499091338440576137140374873376756914198650231757525926404319743188311374990124579418754305084654234524693891566235280657581004281706230041476286308322528797856648688281846653018281374915781038541048733469312485015879778712117448186404050603520609302338892379050483807565107813342084529678703544345434484816201627889155843163095525223324973745293566649233159411637987606496112506457500566617421786388913108590688016986536002178045717931005053507038071667671642784904654688585500849623733914887909406222266941151003054658975618484410935341786327982920117877202010361398109408487240423234065355445401312327631050575536786147420434176537356095982872763021079559220362189581105172353205345174942750101999583294011893475300893711223678950824860264091894002966669543874437878368667577867886708306203238936202598318933698555557008330335486994445621992436474090441910376971762364001010086863987731206677897330206356870202665784590545782220711445147669970636994827652536693830496382062526152251777489688912378582096165221545344422287269762999381646108246656282946893819865093602608487299930405004002285494306439830433362270707965954621872116916752373776820993472939912160034949335085094534363105705868458105581745547478526838034809661547312679865156571965847433611448309754625904351682436582183611897374102494394122894517718798456282832289616628338918517783433150482755026198609982239161016575628531789272605564504143960960876610891191812225768022530629766444669258792787069811882567555465860154833331319393669614474802695318308097938264911888414216034973546334756232538665531534536113007950953257090557581710797645315374991950729822085826982904024398164404216685561454124440731289600595024525020835281867312267785156253262173906681913796122689291592231298620865273960264275247886111926984235099859963878248442118796712299648442751748812127995010705690202897744794307094944989683678565481744809069214110202542652305382100030921392118158741877786097208226375301484815099222367547683024712131650666633195912868346920665021965319804403642569659548919067472991960914085913702244540101936692524331018016413720911068232033271995276392164875849047548292621989477875026501168279543092276518603278799612978717144467700116850195440422831821374087122173184612547663294130715216623743035410948995721557880645451745078852696299835664472424561683992532363739207330985333242340110239256046432493684233547761365837093629663154337386140488602151791595213686396282381876125160710606093652177907695450344079467557430156068817049078337240993145516026615079914253681376221847682162852642692906278981444617666372210981574026616700516666507156583948314250579313976935790481382027578391898095107598896134234020540988102162377852330033708114247472077997032190278459533724625022775776355821318099859096302562020716246309434373818897468998147862724452405042498164556063848215684173209359227014392792930198929015384527608808719852286610539656550171256222631469554974032864170317269889122392821983192357276204987192512822256127196204847211764605546723376831938544780611114047015026147043951127774504710733096482661610447512512335228558922871498036210997268668564499526194968060180532361234444280244614457069118853308944341834353150094255872859841273170876095229932240636259740888729234008319005286391425392827431457610857394960923470053220566947765809943863743699532588263540047866944223349792029654213029806329127066194175276308630533528911510563163217374885028730570338114734164361668565816991501506447091705950028025448799614307368018768722640714689076086526686047288810233502754080010889416091877871847956221362438374971466254476639092606856324481322708188581264569740181860183794389811411082969915747650696848880861255497518307841990028878449083183421238679102081802727449949636740993003013001222482458261410475337541770041234751427176524288517449555731176185211203953545490020916468817452508315761216721012074346670005744233870448787793090314300696129333873156547048547094060377716765608019080156780110279464223062995502871685379774488849631195220892720996013817774966072096418174966283268919124418948122173403418158772949079691722410368723569092411249528067320713868754298338663864129111536860327333673559225711598436867348200753846407113742650041519044163484762948770312094541277785334205898592221358555736915213896754106716450532507928002035710014797792348240469873655416817124243106543109734220582241170272220693026494325757535666413255306903497167474762187552066253193914597429983723694743827665755168599963807632347044461577400468194975580145551393272207152977514950870838345286728853682213450212956361731613858007581847134808378760305740681970567866392442828526372086961021762050517337377885265069590973583111219433919713992070274411719784586465213738229008876115053436213095838159903417199759535066793522222632831856858348287882983603887923779185237386291507513477438839599297005590370086777710712306129280168917250233251248512444398916090328826700543082181652638861580029598001139072194248399248621196065479026563834971729323770421359144503760047396341287907466209137519256716269375603009316162980902003577773684633101553333074961282562202658325624919123485195640501941000742837638470579631537147003877897076846158899649658525411175298404073813231113078862989521977988091894007893915472233901501916437090194513099924224495983661398702718238053394108256448064583486891070885665109122085527356485214002626906150425383234159549716465849181253482574898109862694482974958516573461275579067615922003857121035179624446560127954263825489421750059094622009941128823203157929805045554548670077844232130815651311572487612694831881154274267068391899713687579957500196571176704847869244134610201893910841853868645410459902696995242879328065265263572084515229078365642853732405679208452341981110833913888934672004076410451255039193067341780977643489312034382727910852348444169178147250967430338529629611065620784061496618109019419880220896883746118738639329708686497568455499591819605269064814623208888763652005092321452126704213164471540425477266885613028902567957373275620919631108403864108148167803404189354636961075388664270860746918400223613530526026091906241533361466591551189059285177144985647705429000467847713792515910691978890091304682084325106261452923882069614956440890568583986242380816537287228249630201693831817634410926819284214640749056396671585797474727346736804309391143177970080528905390492866152192953176277298672164455044948667720610903688571811382524676143522936391557124976989685764094292725430119704769116742554946044511010591974806287284042110979168806978093274696343829628393650118551261561110977780746890878425247135238213127101955531302256953412878075988990670987674497705679204676332711541656123909406007217890025170732883903789432598311820354778099372172437709470912184081615422376069476582350917366747322370869232039137813097033288612159465604283463901034938946122150214938102521888504795099399806523108095395905350267542180492347196100700717843773329062969216278913112458475306036823365790492127924640197572335549808878376468228349236666592883071487649176798032014685441255460365872014893693162939799814407388880310382307298550537097424812192339205800431435850482828793300646506996285567594013841527922116559757816891298644429419664560126610780484707847823073211041588885424632221932973836338630367482545220689585096719226234482928854186414912369904874481989460844887159793551296056672756116980269585758871075516035015637280993707673818199207819015195548999593662515160002977549033637583747887207248323464570339348553138689583041478581230278276256264527113145856398665416743169771335339803916453515099075078925070668213945501378871802177969927388264276175691818459675180342869463659899264860361218817412582860134556574574881557798643684045292746194074782932409142526992084366360342367661909740424830942172979340170475853269273984168971756287731249625335215213367434897516681540565327257064800281281529602662900882852687847166089453188917187561681529292350414963180137016362323729221378189282204666711262312247373013930949834054848168825329464913546437531698385400301222066239342028766328384139982724615673912434714584702955913771472947257988117876857455824573283708949555182169371983657088503697809844809667146861325631143729457158427834731115072413865122296550354478684564437261790909033598599723189064079009150639412452258185030607595755094382656096356338656319040502298958052058085348537292128965807248054315822230669174724989364021432427188236968020477067671860758318044422568160474250444928536558301540057292099148623061884906887747301486361125375448085680060459089287322924550258627517311688794117785609095390828753702193866746471449877289607053429185582057016755686367741757153170134131452591673944814366944958400566408974158205354720688704801526598882627212885337851467501161882403488649383711366887670097292476514759812636430100561818231284248104035842069471147278799136735415922122091374700558386149986034672957211679313510975763729904603959381563521770987118773039432201536272843094066163457857974532174784707317812755603202958811276295753233351040136636783569272838282423008126323283051120673563314730248795555317982313596743036360768692781560347237181939607739943242699615394439426658688299238648505508284389724442895517412271574984192944566818229593626434608955536979410268347314313151207494533546372873984607187554341226624355458945617064094517951806064833057372577700887869947728971702696980668888380697950481771488816051255932525397261383068069076759980908609651860975825031003277058754289525877422309955186476553575376939197609711701592113757539999503954745365885813263457692647931312272368514245044492437402268100248763141429662888221690019402869306470543152647118353294928331495161059636411512495426976640508436578812829206316839665016846579177987711835930379670451597114000215137360157192126746687708567336713104116261086975320594166400714799901838914158963680543916990086261972729068433154632397825011413375307205193418601464670864617669041174885587783811941040530631317012423253522392828046292124392515000424847385679291655717939199169590014177408202702950894705494561724141053396260035024701198885513205328513361072909418488615849342227894500989470366993319053021661113925886377311544488589764511417633360242955953465543646672625739516690766968897295313289570719499914610649799940927703061982540333671399249983354156925156946512970538351516093502157781673966535630892968193663281702636092375590016116839005506655530749059330374312123183441075792687334099303719710807793039953476330820210854022568425937639758197006280033713692744069765367538778155731786986484427380778733720115999678315431109156414924700534216527101057937676754534227961289688516808648486225813812998529336465552083563453874206115985996898134755817704911121955414842539426511878110386849253455042906883726566771605868874721034069016386097454978267369315075850521711331375349676059110638415976048552613935770303490085029779254857131524580563733668552476142985350146986614809429396904871633937106136350809596074482098562151889733399248288754740824226109271984846314674068402136716876717147473817949295240521498298900188563667454953095408803746476042194301194063191572511070181456024405717752578966789451398840088428710266732650237680641381711010415042181237758299389556129278054029667374784273866900123899005480576529725642428835723987556172729546653466756672763002299475040879137936624685739553036150631791533635700824487024760179505550594762483225834390550683540070654192287989741725508088556568236729524685985874772077444047623332789306809750484912918433823459618971426971988844090590356514324213330499809857285978417287090941027072062763497214726759137306679805795051459692416192446478694229201351373825967046333481747799847574283110687480834758264235362058200924181693671369020012959438824172941061464308967313693254935842270575498410718428332145174373855945085149524542394840821358962728032158800762856401959745992341697006733455572142592675218131149754942837457626329617051797270606724126229739552586289919588513090964098616726969112267780425794892699529409862298934759244586612208975627502094453799200219298070050976686770136668933392917523022573885155741790037035109729349608473876069892950625403731388943392458033121157863901011925109761431994806670384689945006644886435876530726850351594563761585354376777168240723169574157311518245309121824277245067860079784414435818681398640568866777468081521344409026997190975698672413511058410833174114973485531403432155434734054672534380789840017200727992649918156057650475070225743747801417694427144785939698022961047650555004511394853000855295044843779084295197690853407893976497930371756837528801358339225448353722850354276982995662439514381246159772789990061605210968056132425982718020880767538552246140946322606914837738166472889064224471809263520853419263083970113992709391727264143300741018383981269380399102069305605756733744926674726744390691157901934666384607128635597732237095713676633454492027280465704264306922968857619469668362049183570485620790792538313308418032307460252451995627008881001259946268661988070314657790990072078124386763992761942706811199707737191161197909004806777815993829572239041794483715067191086548205197811575381989211183906675416067512287524698678662141213021546881837479566270954997002551683078709129562879554437429906193195267418124659911077443999645186949102817390936348772339099851468293145494432085325953404420676800354532591383925488865226234460127264664862852800094619389815168989574528183253627020247068689780687790827458527914639921930412459062020010731238850759547542176872240041453984227803393661382898169414777621213125431508593678000539976933118167902862773471185762875840146188390271043832951567897035650148644230882927416168912199093004066804235327318956385621786853054326580087665421020945487090539040160012230097154885251980969609554371353705489831807806311872840519415175081659336995211317417743144964815549014925275328001147989120845570361303059974897184296225772395791552682757020545889267816736535517652331801274994792237113139795181877694549894116954857835301458851167707409439169238586771555984080664607950008142914023694593950919049684426166672718456846395604520639764177890509821716566983431656968719368313845583417874767621829226368435036947710091311332238900505522780042056122142257883143898158854183526800899747849333120958249519348427593471279289941026779811291968130687193263239230431491033888441871971869441217010697657300585953727982138317186045692278099247415117653219376806429212484342728571351826492142460059052334579400841970580312334182488060198439129062493436292851597295731200896414758693098978217611477496226004972070352327503840492056014910934053840611533195486985648068863582131683232351041313360485603279485419263547826526565888984212652828536012921284349007998943861058762886513177008617446045945711623379151666624047442733314834592771655900131767254218911824463760365868788807250353996283669110011155811500970985219034416550583628022331071655052364561994149919922382712167740052968256132201609678874824224524250466663132589105794195861519011003249089162958433364091499336757920619294953429613793946028648245690990621319551872634479544918679098315515848308260715055617321784621760292228166345216702550186978263649217582589441041594307684410386578466413636890194555383438841320167254976528949168565204304114557675702368527505834190880609790245672895452275548284729201040597300436832218517069783177871455975518290733839774263713356187118373338423991338631407489532250662634696190386334330367440655596953511089767070769991486668906226847203041192205052432482400328417599288430700541373035342366271818242591793406510552472267898997911066078288647479088783287763958820420449789166944236897234252254785942503182582180669666662810321581067577129521109324216184202102840689700868437965949770458986986604076626652801589075466255971464297267280138946479216521409065127798087692313516084553570642038277585808543176232117183251238355904547353259005444872959970143999080311594920686010250834324670888557008047488157981615271695008201629900129080707751378576092376526028400676777681797729153401356231870267687462373800625263558743717425349922451962128361950429310649541391179100491869466847934596197836237156053998759608149827394608465406123789992820562548472775305128876424851083220496046125148112820775090814650435453197991104695898095049088425900939659771507229734649465352112279493891553957643122255635762985970685429786980762315926784583255873919370377148784044929386057478872022424042187088404987397922348048783938103342778588000239586182709058996662983685513269404503030336463274292420234464780331020455148786964105256810772204153163502000815885982647300243784109713933982905626684817034191492942030714849742751617773949275841673846498485432538244096993372383382196072211232999582438292607515831639615279499929246580001925467517930467539081808280376702852844073892502276511326364994621457081105933003723733582546967012852579625665261040427082436514825654620871548573302462258717451949230635192792069542510210667511243332292666881399141444827833727542619558487649222499223729660575042903451589153481062479201591842765399629974368164998652765622304703913582845740211592077548847907274195204790285527710028561709062627196269830004829086662278967491227225199006132614103471189461866874280939598355341721311728901221196770886949804021166487226739656342466362496676118374660779901104319795297891191374431467539706400145501289873080137481699954765060689743245678872496532480559332017615173750253784817710189019689190594962238691059983350124911849865328466597793668102109475653855568235602561361041699380551150352953179067768014236551312193529136289602695900535367834502459663819728311326692244218017113135599123682885765660212001091568905646503381858129344322577456598421546726243793572981663674666139520015317149310786901198553800145408810683755925642429862335493429068310260553007305527486935718410480000459397003100198926161704679259651417265405001910263369982304150758328770655989919448920377917066900198436482677235891054120463332094209743146911952980589809659094154457286951448168424412123375727316984043227975695513348826372255438020419873163190627878214079963587847772028341703494062515850890362124718582098302824634816440758395162597344943846616083502817465223014084906702878336520045389560398880632035197295258268133052164625639907622181839769664240728365011940346708044779756248268417617462248536556303388211061590611847635931432717682115007141535041255114866606836046426718541174944575667528904564665333541448416044567792168670333706433951994336428520467142518352284849386379190970003239176268450089430715808509305994502829086371116625592748630427708963652776829105062740136989704374021791396497005860757872946304614357310516006913407019888631191902979834772480347314965259932407990841779117589615006518288024488966386303482790375977294455170529107384237369614090152193016985069822434859790254751985650644994208862088410930389768779377330153846414521566789444231159826039256360273254635634518501637545224413900523924050142038266206402408515478105768362331762723330031303383739334649461954023877962931446352106705476545147669654090980410379591016209533815861986889664333572359012958038423001724604271327760785086721048420630393825619946884663451891149451759301200713424516609198202416572298358748031711588804168438380099800168182619625621440619139181041789184317396301393838891524636032982344433972510763686144362860368629654553571259137964016970275976709636215746824037499307276779912172966123677974737884804818641757482752075592568650047695154056195229222954666347810166534953750144609850984186839453598353885188158987913852057039075857384819492808625189477137284040957697152142154728325549947369423162957188864279195452884187419407542553635508387038352597800005069006652167005689502068705544562485952292403504176632894351162025916415204244435003899925432590201521335833838787811239252108156820306476599179099634508221844922663009820032874786928655043746396491206364143497676932662096697605648369268485488887517089102964959502265281926104923954661085723990124440146591849670112159012119818143221336925192703271949484909644391643589310354849682040417633082898202556419276267156185365926248156883542155495962788366863864041577945252071031453234376462747741674476320803763235574929961455572315553492887185040562762546231781795448024047425059742760314642948883301250396142000277170090727652919844658593457242502178908672115510156315547148888996968983127019642069588482342298959313379850412120240732517320683408924584252179945517257032601588252440271984731792884191554359963177245776888805892064078951240596235502556623149035276436801428809037652176384588618923585605196328834412372259750363028534913607164403506197173944494705611228839633430005733183333973743890937716647317455706520814024283791571098442980064706570168037660627113774330975512032116752375446521929794047432169740470469398631464851095371717312483255523280663849690642652485811806236095871575873111933835627628338143372731760598319468992142468089473030882723942911134726897912315069449900000960426220490360792776703998110874978194886538631909666372397776048543680665075181914399809942015069808311324109316601531529121334989796737442411589742794433058098264668189957178559945095791885263341422142803286217242387497863140792390183080490274028706974098511719084277255395662624098417690110234900809422369142673655382765913417075955963493082110273357741089711251950314682206073999569936749803637865154346669538125642859754280130094254528558098704850486257717357342923153292860758150267448876058703611532729492616467200451938335614581714830161602388138070526288284051195773277549525818793640560072138489221075324525678888352373138828081218526276355497596916071935007554015760221080919380719495146271151947382965957015728291955807500903695824258418287475778154851498078111361127063946154111345243991329802512713551876488748068172538193046163802993348141812771998141834637393745285115271732295611094873469827420404973278202108153403699708902888475934297474132399997537303264241050016515638894478874599572899238920005095338083749028772532396923018759514028170150225847276326516713324097976586916977225996404763374451137967753792648789682984147568665651837570926151915303385762631710126167013397734962265351965060449914273486020921588132127910512478863096859306260937571734339881724412281786549897481759502639363231490721778165072000555848902419645138412944638109114258544504424752981636134679433711988729353413899103520727899821168578793236245142696513723588056810329428164964510406597981645971774602343363166452436616903273083392177626645270368159633164877403547920797909410739304066802486178281153908079800893133549703212754900694648086093214563310694415606503992021521667023992044793940797382509063178988690294358348166609547770383079390308771330578691337605146245770498888038453390794719560202583212925739562438908272191454690147351667840899252915056855042739220294433249675798923146378745897505567360141229273008302972409016099081642442053000844980235876347267766866270208447319676529972044994447011238823220018240474867734976827304740064868661322354985077518386638988682811432322519329069239370729975757009694819175822848742249612981951358339835018570822168856546843216998165545752938129282691192856066468900577337324060613005071626395553531015122799139148304375599285577023198195253402340513278407726849354847308392940714556582216214015146447391081453992136075972858973611470325017038528708525991921065269970987181830147898977224038288306160184150548869353192432787490743388581387681848626970979675767411647483375170858621255356074259144187439203698397440879409095481405390487761153320724178939890686263797738120330501761437515076543372843633775919915687159207901519525638487260461581631532191629194360652377183567352117850079756760613905956311416124769947346112774057884095214048316400562661921887338920292639695509684311188587542557359763422581917653080755191419489313013201822671144442236789777088181910599064124509072535671302301654624306953929669650978496412003102845189288098859802003491272776694923078817272165082125979168925927133954025387206493069421332688465896412414859074103600675204134565694399534046164574987367096345149026311270689013053415944877734214723102170037586829634209085606295261668776801372268817975517911795136229192851338272881643283581133733363500069892632035326407517508191215127100498165400411475658529782736187855480162356999088477647934309078960583502278180752965522256570812720754701500100995765999044673671617039219340152175847530962284880932790279169756168036918889026032068083985863568050843277315141826761308474164058251899239130404787704593691515507800692096196077247676462171173775447699783345046188341687690782891594452275126500987742133263307222343005298343639480044990130647272653891611601169782579627957305068926169466164338266213796109256480073696472030930353252199500900943019218109144036339241109403209697251052211726651536294493822758078067552546279894982476765832536615562217986995394751346266023290871627482815345836385645764399526296789576238867683057504886742082888202593576339101402537554198270733766056229817074592419932711139963693455183366005649177850035356108303331969277395969081341437012008274266255219090485904121368822590177933605564592969599054890423249824013687311928997671239861808053941742616464231057766990947235590403489443503569307325039617606828058595944858224115174290354538605952838412437246491389705612517085500798161411735364464927378949160272654062964193648864096458230133667918302357078239936880073317115953961597244930400942409630501014094682021677250754643946262282791589343582307704206868147747662806413866813284444609790420090145821728403022312248045853514161221154662871945835805771657567609736779222600039755881272172692991030939044285464128350673426594045083493776596442968189729898079172582627410740535728067743092912027302240636206778079149563992485892706506760448123254099355810418622465259480497325284778739675706199423997118392335265323791859678119205034927283741913340249181506615512858514666236414475292295386969710984664341729217626125571711944985883462768109579140111877062149833168246500398057565746987304243886816489609692263643773563719090778692463246102136278100092554264293681956948231300540460456758783260144114934623915540789222879936486945816244566009004062404649513875590324272244532507532087486971713810391985682577084758075527967190925884085626650494290692068608319352629252547434851310289926499130505311546250951919840029556961025798432182839459066841565429526450437629265929779087423132532890423156880594147051860687069404356700087428020717316458030540209144922146728250506881666552640179725060807716366017627020958368239209715340688225553846842934002975628642468404614227528522274348879563383868825316145828612036467329673586146087206228592950326550203278010142115394151419098988777696674088302072396716234913008026864761980069193246933273318836622060923626517782553979376036884455197038709382504458598919419938981888890269287547344759747234740556635344847704966941475407910309073645724481991730299073155116066293956455255029539595106269244356096990619863095940182616412478517703415856146362080709104817467144713053490939716822359813795715351659611020729431443739286767595715806535593777685751919861639571914066554479473050887530588356089547194323108702728778108851029815351161541593727572479626552544900775119856995317120052503118198681452266390022350826969334127061323073635755582408349170203545200482598131426262697414444813860471622579770341839114261195138955376655852497805258704346312353563000105066081054950031183163761476558830307467988747015635303682675106438216883658782463918947438074740079409397624800285762287119983493313176759043244326422958096545092179748657560022548625946319835551743838755484472659247727781620130651128795621681854411535893091115442405789123104870321738261435521181704082391842355344650468414609008557479343912761010652393561547351298168093636336489044208924783464206269010920730180474735503919797453065342596963865041849171445797893695872530521690903053718105093392353915067697724742259484755313806611104818953238595039824639594345165438615726135105282788070182059904999956528941127254347092787951513243748801847391276047355989443080590184579427894473081734777977896470880923064613659996010752533005583664200450277218322895737328264751272675438461876289465534189150182564048776450074532151309418839075097624392577090557403236473145989669737198860695971352367190239418993044937527393902620150209848901273310610270914244644081008346347286791633258606602348418368750239736658384518805601127383715266174606903602009748692222797059729808523723678345149016424977246251402887825906756555404618163948649698221426984716551263028090215310709419413236956070579846652069332900770859988253184347102883220603292051526971467739810578868121796626651959499358368628518737617995757888944138996596370258832938513029477447265812605313209729404451708810170506096780782189513516658703501217087603166271690251762648220437875582802619229910077491220389919358572843027736296470171009896118345279315440780032740453989920953030653760519910279022839209840904353037030658302739204352145917158047101311948731558517435591192521082766911657604196443232394357961823839955023415853658517727519106032316091215442971447266824979050864962954974741922617810147713209780480052481111276260493242093472888256300292955024214151979737742374472654165188642741292624496039307305892179506352360859080194320961513538702040846112421388486799395202137491004609177140152605773790686028338992269823238544113690666316686881720503370399276573427052770581038135039567337211302999763815374671588147620550350989370438887161409311041839713428037054117369782694406785382258648322055726671664560951385272292558194966976196729672498837028349649331102971567461995048353287415590375478565333459630146475819727220800029002113392955385797809057516445878848405981838423100550945620375053112581511921559166819380563748535359670649152294882752499258101836553209417433357420531159308928730229349612751534719511539196188691304868518643091241785746105893816437538814878050067765322449963678974029147309131930833521839200042140045816869277941648450660114045113974566179210645159234604082194924995526969134054373781495957269186774272535503322588798816149626254354537201037203171180839418569327129750709750408440040435265582053190254719459777444357168843563161467130284525477449906297628195890341408676711494561393054554675722848450819650750366748135775935336289356770256545247396543779529370931703600255952766714951779066611754429239590484718270279779751204432840722473541789847224772365363163102584849593470634576445238441452156914656429466793481661947001196281298207412492271175190866973613425586587006957738816470821516123255834823508788144033262663971299706832597113919138161085984345775114706227543651753049168041544925264065536440443676084815154254597082825426976073920317209839494148930736942846299687389337275833369994237996125226493249898664264714910302739866565801281002165247656149825145301340979116963795208712620100080029825670163079190863108637913353650496232604296295165641856169807519801592891637597676914502394628179646023060201777949909895559921783651376586754649202639597223903309792505474813447657312586843655133641700582227338379974095643497044411599945640096396507338519377781208383143551287471333984505946368066874538345463048067198816565938549027036815511875335683639381627073152179587425513460874929635909910325812870106776469707069275280185198812545059598795799945874040882750630365547202614225920434709497916488952156094238194188077309857600119981434560915506785546413296663774608625683938578038090700966332378246043125910097703653956615786822616045128461180307575424641828383165161713808932658489292793248814650456065386231338203976689870934922231061420165797220816596742676905603063144411884291157559543641701110775613377385444328001896839594924704790428349449332216540912408729717271036425919195829291645941313312968490327632069283998407895954117201640784872231047873472547431761820766792099960758955904924990353537464012628256386341205982114546725060883306336467884818463272842570058564257697180096408345772298112352316704155620436925320021652560202381755391972882494302608000209049293214458068028493895782702522094652089292434306141061676494675057323833933299745093713295035658810069846351609075115895518009137088075099659016613124187155631106253383061207739753009689012863344348459539933827062136791101802723179554444654053680636203226499024330402829833386383033123951222863761436389949280259775992564127733704173942094296121931961283892109445614885095945289360447441297009178156325712790872563513145505510954012451852685371890875616042341922192788997176596495410706964777731827011190467583267283160070647713711982467287285435336281333819103081655014053905607977657953916306454881411747220220540431003842207176907700031999285411264231603258429450938205863591474075051369496917342563146614138825502548752831656464577188751443968475406341342864355312078592986823946705950592312661741107064241609325310092517469197297739446539148151388239635848154673989644608848481649496175132936901906995646090569101024064409938070385137257667042775268260996917110509087464618806493511445636762203420052152267688751515452242584697757022864189683695232769146497761168116355388137852853047605786666698658291288009048151767297529621449134836360090658885745963351226193180126660713034676522968174526332207981208933430648048540767579846967153897739650317624505528459674967646968467085915525782032346331430962148729659052400573216388101558961149896813388900848335238120363481680600442541172477568951511980269085403151351701452871888979130961579659947341516521379251020909373342031130545118800713603038140049985977571984622111034217987094476449514123988438210185644029539652832573694219236239522770666730584811340042890194391928460559373680229706223601128981135192908387967072486824490111701065029121201919147369426289511855189094565890961145538356862314589053623387814200098250099143243821480986077566536123994201834716178697564575157363522513503369306956175524681256658265730033540002012908064586430621941700515802527085412616313585613627941227809279832698455373371011034248815021180451511664544392972732829891290565523735732450398034757716580824173280141526697265950310374660762923462698521892442597526622188396351104725898448561735249367438761159095546938838631027318157030842812284170835702086407618254593370228385108218299558010142881589109978929552325193157922911362903141019083236255722543437555508526898312954509694390626460144784591090425611951122545515224582089005280017812341338747653599722300802060856020181106904454986780786969591753731858195128034228198182335344039058654404268133929188732171727375217097293869682427961729449213426079393100643176613280071672135340046830816988116256210992710703778796893449876321892110491968756922573899664848535967132701542016836719726596944351391440977474676832486811181098025310197407554468450951590336366930869193913903846688982170503927015640317963965897046168599698783454522403826931300255296325334880057660356541207733961097367247853469682642683050633624706789439581910712074877874454339145261418867997104182768939202498184409666281997993577010504928709452231205207955042715322236855014935390804490352430930278951228722854151060675664580554461923701035092932698973442269163146729029833689437155446346577275035763432404680204929201876022499203597242584147914636149193527262582937480374273328688975905640918935597060056218306598564013408973057345912796644452426905420762974185952780198998889388188066542614778106183395269395441996676157807811489451212528507837655112265033786410557121644639302106438561528045320771623423531835404003514614296031770943356716422555460028390024345042635122436016934859642964854152195028237329462255027148759362367789243207778150726266505642965330710175735128476735953781152022057408564728753629294807469157996267154393394768910884425307347737597198443475827983956140756136849570002795918231622797956638732847625494587062322472516183952893292111997868996970842978494746878995909283759499729844923989729949100033820369717383209792282594264425062974107434287987197525132123968739535523798048787458144371526187730245751094195397695131610036280775810349391493109920143829467135518701210869207509959882792650289153383599991229330291528829511695598511656817766986878077769504917599863045137157360923421316316491286061342903005884090413263070093681358853723454701268559404645115729584973076311485286478387998878778651133661559870451921571952839220128110991840414510617643481909229290589969388932684869978047458716125853064687071603290497146271351430883631893551975619662932783695664000463222637884359819296849833288679014944143227836585831262690182444445961468046028852255580032075443357804442654593732368523208146667926113015090311933472139619138136795296040031934033189744556429642138209549690503545693043765565324147458383723000021007292918286311559637126330518406530379155534664313041499485262522069947882115371410077926357785032727701853239923904419727496148557763317476172876906400994036341347413584269048295685145468111690104386570083619239816784752664648995967841144262640805366940801836236794524709210832554061849565079998363361216191978964177928824500619740938650573245107341918856966869503058893604818623831298875257238092138207169149474100953767480755653999601554339293700476861315087869529438823491660587091801863013920891711765974379791670763285389897207026286237072776571194142865391780446414135934872034768578106885698872751460184792334187715135029914376035461222214539909716417765029646649727659419352832677344542435355830566019824224964778303469107242435542282313320902011208705174980868867475233746913716212486933095055649812551349597389380183439697030979235029611035075141996721868586784431542552934066182097806839201766840345177293705632284294255982553944561809116055024898390444559751798246130094805403762830523026506303066749439692403013956957090169132876262454125016894252496240797128221142737483230818152165832576277942836965947296189592353942409136973314504773869503523568812630820625823374919530470539751228140795168842047974132490070839590332319388820618155844020082763220164278059140020427040859834250482609644584132566343483982252022245684709666937413581953250242631808220902949384527231054768947314399996054228625864429205517592744605766924924793433414993884868343062932607868962199976861713891028402309602333154846240956950736985629793983546197453349039149505244357419067708060633845366287439875627027709876904898935622840275196538719295146252338206120743896204766253144401851872609039987139122781150864214214736522276103772885892033785912957681901737121328170763346500827653562564351449576643099732099156240458258926035459055922493879600654041919821543135347602537801116045188317024621063694370331109356244609473533232662013335499816623976072278796713462775482988513187178001671602166919140948405373658513583942377142962828244756880503347134976587882517552247439710643413407533234217028184991510097409528159294153129420796871234073824162206010846705798138640262058862436257938040895565335845920981730030439460399040117837227567236500238180528884768852525559305247197904224250417611339720345069549626772039594264025783037465995752010214395312034920771316538097037821497172899137980775463647624081820326485424753780033564259674098452618716507629404346724859086662345704027132019422344797380862673497304892530349272443731878036091460421723214945351867165494989105517884280505175946804063421026488691467877038491600822199499897900191611133396153585268111068051648148799166678294741904683346676893093928648246050267414715141976448055987107511090179737002207967420124523181191061123323473935221719293370218556779866352777764504344482732852591750952749882907519870398696137036156608907117696899301283083453199420765294125862058169951139098472242066998891388106400797658666668102680401544294015423690835126829542308990653935748062398580151544627938712978108549084960226297604680549244564594119077671432822410627219373610053898961713540561871281675756959941052891438799293669483706733760489770322974801303994952331021812209915343457790305504131736102617692615750676854775283949798029604167936886678698063471197328122775289182951404411321503441511334219762280509077312142290267684512226225722576858444103395535959621031606862619936608833675080659692537420169165728595141134274371169129825027649083212573016099533718500188572423383399808476800569721805773224394327739433428311638428497208831096350832998774173395918240206077566532391118362164025917065178529722020913843788213659081018850809264525066958434079124871403486898225145358635301661347235658325992371171077047692852882535188736490722741658310016646506554206559225794691191330209963929857855139894396907798682485762700271954710998913420490239561195805412672254780248095001454007925014337345816990260792532080844622196489942793991367641243363630129159755428722427910860838470477399335809072183850799426089362820962771596606748716766731752895307528331815051817822115075128576437829947979042549519527090820545390201677931703021688221369793395727747079822747137618405433879900429334946513331927656138688660538214549809761976220793696920800880548093362552875856281327833004956322352652507502202144649504511852985462487265131757362183453978242587673927855342718865273319140193730861757144017221827446585695834437261265847361180151837515274173883714013684509211535958488576461281509233532515903022620611330277509829752854041110114319525594291161061532583225325184290888003735440630975577948668384777754559556156454349951266878125435571099954510464230845614524338383450826373948869300987192543419235975659279425772415613401553185905055483935601899450282228626479938764165712215872342598602297189756920477851220158909274100803597805949482537191570338014161424031923774864866752929160076368871183463760324732550547139401410294751434828900760151688514841519262369777818005353253767015730380243999736806508666950795876259534051942337800140465934871445834502760526028152924390798432594126104770104272471395044129896483577937844409467476046800330584979296715594346681644210780294659062195950623573709348023813869462783305862767712261572617879292138379933511229169823187063682126570152948101727895326135010134968574579393338138330597001655419306179873451531460915315409495124028034119865386716635749791154158510933425080234032211568656699729668927892940789790884699299357609093404302191970015595567503062945811851673959946527640209239055771148127048611137896161339400772830936837873553572793334724158990959392197456976541769379743765197812210370596501418796477993121937184004892504203948885502314632146280383379052632442525237656289368102553337823071324825439465673170440627064544943285407871594273927690221671168032315681370592033972188022689388113928958799560377572264394950694582158524407440605497994839752300001937980247191549999285321500616345319215222446256450960630022727548740439896848250276171733959905867970878570661374768270272152506629714520279810734412527647877608732837490220561062685366087299799223395359321816938553596331951034181251303777389543858990207421820315427675112193550175174683572924394768088389679154510875758030897739215727510154140651158825454100202539475120956328271209180627827754371808264243803294466727109313559643970384253478209145185809680928721110571718667610168762457580185086599313190867461321927247353592815777756790984321455132274372625603469018842221549242564792628486106167836817913287242617493556778969381387858834626208951920164096004705165555759233320706061874820693793722915256195635064573086825853395320302041721515351571942065996842306520188202807363816292195800556335087472089304041034784427556782834526709770125084926946435521503484397223039782013451370734525580987037271771330866461589235147877497114893081079497299780379357217521596499358925882356792297749617219465831040748352103202401208265587126028824665143964748064827003157257247814542994084263199521830721489039405708884834137931689271715870426300145744972451422456601134799732706227693323908600325267263181574778294890579207338654463145967246296848824713045998789006606069309298663330592245924814284682068180749519384623018791373356678088433245512893744039807393227552320251497695286705481134145884760511175980923984339934866803896282974556494557394858136331513336841516432348676940343630637049242569211697680469384640175093633851226919941688064179377221707088833848426931263230399127171553205217127785797035675404536546206693094814653134650031188354333416456344178370521505588541857738312311772486441037340071505902072972495266343592325079829065262491202774770707634190353397765504824033641279070076384490921060681360984186658366407535397644465910316145699850606599039393954216894939166058591596458595883149228401856477375891270790131576517191850123321679673222567622311245009264049251299861907727186789190790041988032358232168052842456770448978240583452841216099635615226441843253811781753228918382379615106890175111937540449253732388712302219569971581481768996985056832706134840150898041660278917220764412842965978992402464400541707868159972973404906197970109484932985310155318700215695274322391920240070074909970421041881566125675283047425535947719173518920972277311157601128279973543442640959237002439886183067141039493949400145311242836550314736707951611828976274672322781249902307269225791422330021832659786952174550501803431496588495942840365364123503304097997801116180521971893756311488573050401612263236157848623872357529400082734586852235128923250028809538579291349137175258076629520947590669698653532369402132862154739972209187358618441767379797169410618232888068125757526009995320691580904221834387450819574849762453265401364153633004338813663568162248809359839886067721463607135506546412476271747464373157830155600417971475455938583951794640196286409708661409489694312798176513510734269254936052842161817059644430729349426605440144380833292577361326988556198185961869867022520456716869473981517261946674614598979194493814609330764891254184441992319597939515230597222223010453003838863083837640460237941608087785963908947898513892021670847204738027215515135643946840469360942151624318374809755358782719341699187616385240592082284811520117681067985141011356286202853726796964457813967062975107879735681451261188777431341283398663976375823318702599879146159895148574428271831167169061502727033039723887353784412966024902287955376706234260235074069217728516960799769918878225558786386574304230164703066751364290231452156388742378164054668216897237521015049937475579228457556175834821340638035381676350867736805260730833978777600647939679255931186437509245886452230830991571630827209536610673384119860475534477733002529496133521166523098581701723176544249155002956312431487086992985099043631063193894509189838313290835043317762340405249442065063420806483497283900247250568126499463164101221305754880179575028547571816071353141808398704390640074143084714740966064290301358728882617033626380945916972679809164635643539199136585477723069663178331245192559555494195404053270259173408694731863817291465620967436744756102294072972760976612610666250791271347070838139710657923863325668634957124431820083701634216751745110185356352072417534819797546972830962072918597605519361052872829220868906704442534118499906350465849397557315800106903228645953604822458252426594112857502221118929637504856329081870454116408055219271740495306338578131093497472984569055856584823567284255866836039372249915126510085801997991376600127240130190985329538999890502835207790321366132703549270615992905774730568521588121061083005858363040335832049580687533886559365675764426441255081951261153828093390107635049302947670206230229021533596214004416077640239426941004853838254714589296652711945269617709997743578510731725968988374126718495340153255472775221307363711191430183837014199878423267242736886375655437891067306000398953065707657488434675065823788373764901941852748950339467007062598225301594335955153988010480881520761993651653323385485467890179920110623039059859668406590067333931419507017975164596633485707181862627091142480112988807825612914490505099670580391145160009824685073172167629970100348644123541289576000429800403793857864930612843149506667767490569945061622835056238715117343303620109545783480293828023903636429577987836298714475709983557386394625554294188883179985868328979821771521036727846097039188126915899320877825474087559626224891690041735115459069691895933683280906220729959085536795928012686232160785962797256981060259621972425912955560017593508357802134352578631934529963580386578338496678231436943293643663311282622480547900003388841496324796585325741249454908013889256925868436780251098765373055773799444380509990644685023044861253508408189715188109344564966142563770574304165134569480986127065596708417693562482349645797120572926665229107162320964907943822189410915458704168661999825823222256186456016884025453730863528114568373826156742220897858348699939594776933064376714188865718630688089827889098763976921491701479842665250817232286852095329096727395634021693253535094306364174050710650657874936236283288875183113777268470362562345535201962173666548706562287268112549689537077026186230029192637898206580208269755342716327563659719695361634696093894175198552509690389501167050294197039288602851278361374601966191057747100133628472377855089677027771149246547906864932467428916821620386001772663582408614636218582625588045991545500701512391477628647658415689779181922340610081915980332153166751626720575231749923583572876511199768823091525949180347431908001683015484621088451917740529692378352626277599354214433075857574537997172767184607441689520587016569929972900572175039208999856311512568867920895998991979052897491753084114110997951759588023482812323727816788721149941154853881141118958846737248640446383654289070397941785615603136693463724786051007757220306106190705597474553565608139284928737014002351511916849299351954929940900839614756104876389428358650859757805811331206336580400640485159602813068223130291123285450993347726280419258083281387039901638975561494242922959279069025983803205503701987031554079115376888567753021142347205356400415480341537987912447047467233831502698208060599463193612928199253036509288709755675332518400012392018581653845190167718090973369019556267947296831923928212300387233232293080250772995598058868709962534119764345655534536788032382078805280677464813486864062481152524603078085357308195059164453474960161068017789377893548025356855004933591391315215467002648981426770510753785580922760470786266157522635890218203829327240215855167289569563106614679038262510145683150644213407448521928755426253246111552076051174017149376809627959231044342197781367893165451718566970105096531853184442479016701700707375803489291852350990014758337282025537292644239600240763300976843181412825302271851344712955524528934919347336937688348875205084891077777919826150876979644675269314334362630938135036953526874147737544013356991917986395423372594513585270420362807982302983493220843727274972055745301092101206567427774534118884557705070215324324248968840996029368096531563667275500804368929717547580521852951366675261082470739466205814611261347482468963879395455958600948392938746959544165493122501519214731155073265170033079786493770659378679122461345075117093056614454712102005404863692218894010486397296293457832136206093087734319236654317318576009976179053043186718357640548179892262108291139984229958344654554564493699477756371024065893965637950609513998444424551932740072807486481830425116867303728304154031688138285288032107819613354213384522081526707989275051045288312534407188384122199777414764615496886112328467296235009681564053736341655009151600278558634778611550987838482234755591102962198839604840111261055898295153074345632683907016426533587253894205241370946973723873931362526384841456195064925729626850380204122428915251977309408062416872157049499260507039912259805201138995198842306953705435487819549624822495344148404871989658419564273658345675394318508298331397804391539318905819652007804238059586104560356053525990497451788453846052328893129829867392972988502989705897452352592880146148846523720226411074941273335626137585883222115175963111381035251302685324238081905268757027942270720631981613346477918665574084441570960880301085934003721421385479914308829376516906290120322941770644105379808137126370840435558013747061595421454738731985785187901424961928069186041770638726499465527292255293107461562256098726354874707373573828180224324355732998033061967369934630507283660806204094585167072586845531844238571467798832708898207886846102491354857830691852635765099133422380079212299229630186946657654737733305303800074056460811153475051552506911464716632852657396734727074137886287099318779129113134336520481988630572379679108559321391762382040180493473536840083492367336112678146212432937253473588156857587696938511757753274304910263263546134279192411515201027181423938149158754298197631944069246818402101538793149890041993879464424872379487034077310001016763108193186951626260809830792698914354997731676940348817000432543446105641936577399176178973078681370881024494380176135184345885312177148051489099484140758214237722213852397178044178136799365980539778656410055474501643487820293430868165643965421047143506637271939347236617064008821601577507254236118909854542743115630519828294217665128396223164758075450536118915273948447176186448278250842378592086147442668457300291359722842041023329602924674918459322526473267747818846185922158516579792802041579132665813859906048354485939950755151531574840975168951120399423962819597187776878411792863622604381315054293055907228469393051080036455819215541893821847203624658720458288239906399218601757170777878566770511698610902823334522858460517995530713771674774895917003530947779409728676335788907286759706290701448917274595862177707428669566014850064170537864440191781548988747678058038429260632658256479352927339975345663531612867136403685668205353054924029636572243144697864624122260969237443599264289004509086380585245537142979960135617836023716904591712377382621789413891286439118539700277270601741557687914359076675100192725149436005802988930056188535296024207036082381707274075262334562629952788818587816187593172598010686421100387811069510376246580450521865335104034081015670639687049021745214866010581924331968051309690523860049692632812028454794147975031759483655680069770784213117444108126138960053512142614427458638072942686988266357329871275286935129084758804340914287961847940368084403083904424055236437587179354549301148642920895722627705295584408937863778090984535972621807020701579703854496772461688217222087350621301443309897780367291878512260984445274037989030152733658768104426644315330638795397937335778453423368085845581669183583151283106154544404379623418511659826500613685336479288154434273673916555129904439843879201947987661069358684876004883088282021347664015832862552807126169422418637927924109481783088876316224133347119275378588351949717405524357484408638312759287875398602186707121342399109203726439573727410884741058744613489492824848632114556837229316653156217412462289230817321418440692832031640560844161722933853361475657029656539199319301294771748295788180918504843733024384237624478142883937905289067940863190264641958503965655703120121435070468769518043334780889223125254906582290993265660778882255562363924984644760502610941447523749266077006947720484244444052762434903134694950883937256140425849944992035017084133864814732424944513334507731948789453861222380685552980393548083583683695172750113877478649409179638815269332568345243347524265104881802594033688090121378877309908226398730320715301035385819546768566278253769540155978977759606369430255616737780763939424107761289621196206625925490818134152858995900186172266930642561122671530017761094221646483572831261259090345311679678833073750087181824195098949743112916751855834282647256130105769850522890962892688167091114491144887330964134973146038291308285151234311715871417333413863500766652866475850059599086016781234864417048621055977751855071145236629759811405533187238867611437603778962052645821755140377495256289709436700357406314514064971879522910953015814879764689844096320280074759449657249522795722567828857030323056283624620281335245853857560712037156815954601132209410221485630595459401406811235514794711113171366210184822091116051333768402415010143824501571487570746490183288289859546872607945080071280630323927500504006451666535224166746976038462609859411053700014611774265086530414122676111318649858577002709798040020208011165102129183373884532349826268719454329490837324351570553849571175629898396150054055308154483592333847748689343565473715917528159803001876304642743421905758136163154373099713380063737049743633080765595352718574412456249253412592615869067167234439435912496306864511793938250175238817992136501627398033186482242337347151678967897788138052935949868421275730709729422157583525588827791212229307963267187850977144147660231625499156192511519466014445850056550740322944161356351958359616864709630422304488531847122441996950431735133498495262471328623723513654479100015501820570374262958499579069182315725717971741106129589095980891081924945156227440832007118774647392223484683992120886558250706456384712175360658247703932657027078839356709661173810741971221222050381439366490996708713409099271129384147757992719261614754179737027143704572535359900719695220731948905613867962329621504302352678139750162006928155857734627899709116288123421438254830389225524888418326876228134189244292823564425639433466065974991137028683362324077607609797333715161951115339423873603825266222837483632237495199535254743776926418242621139878130468415115554048963395248119421928828501848770557012217939711506735236426361947350278741729646793404495774976998510547646652463997102166444029713560453032412308386802009647748477057653954787484194151096390258019500861314161056083084994276041014719174381430336840176040004366385405718385042749827120057025261117897623753409098337613127059012302103060223932641679934774780389619269089285934219819455950044033357806868148022418074341846982917961836755574621018390331398055934253212254052799465721303495334828684643567545187366009487419067739092915103849246047785528668656116490492631844829657989370410079739269391705248158180908515367120953876342517676086048286361006516276677063885570497779905792799955192864139261337367575008896152944061855344035774544547519846514698982377350288909538289079708308731242660840286058081413590856464394359172726818115218510977992069365824175458167012033127959815266200456605556060973362010992645354823168621877709110707677277276093084888221137301792176469643357638159029550193174827081309316674896842826994044332105255284233891522551525983207564306997931118288598587916256919916705446606397962570879258285956868474033421670980024596922626373983943316537264205830569179099506247667423282677991148189018445143028894859321464588881604789684650084639991109786432225455063168839038680565401613939753401783488233276375036639275031818824513368100561822543487893503212984644264702281396362630888778845046532658997456622954343421963356435614743410255074695982202171854154714171087548261030065203396367960510341458547704739627331761420624138255748242040685227904200092485642593247766102582780017958161391974960706936181651971684764275331107360196261142026421856957036885134026647334952567054805014295454395965941866204628964125155271077286988769747892113412308295663753443557333350767781119601541781887600943284639629204363295785591599232327779743781682142271465930811795845500209318046252813393846270388912824217019236025775125067863795642888046386870975275949060390479901368955046259883152592988923443058367756369335730953129340129009094127472338013026000476283672765364685486358445984445827121978407364282587907191517750659172896204427543140200183485019752386412101924066962879126262020698025964906808790083413130186152733327985674727492358576786089519013076977686873535269476481785957001855414752633568915055533668384940244495450626768866676982395564628292029206438305441902687951290673711494305541534513860933946194951201692145154080035213981618948915673299679505365804642905225261727531172072212711425507479388938834765288710363073088732066979738232650272644136903838148679820865018199739540998208196855158871302605455213005608470601253582255790969723518127527932718306437803383831736088537351926022460265619025866036304346321016062202849708002716731093640651889820773312733901807220375096342798580008221559351786064913870931077565015365737026758379839307420026623191202170820679439387783554095780751296291639847343626591137899792655498464570360672576464854141977294007372292313798146555311812697069243710837059360784896896168694524428655440695411931549560949067514586708167140619763701441587966863820694473109227420619483016569654277938331226306685370553622374029149886421642959094724878655259685215660676689235794638220809426512382823439983816973065601639405980693240996558935763386274635837337340275479843365490091613797292538412799139343266724977951859940629565090380154870029193348247575837033456059973396728654738702144009918041849500539631999293836427091002072905771674912018902652450613352977214880293617885485188127512007864102977832986351702872986615003266923301654572344679630184601664692822313180729619009453034750392259307226639438092585648607556760348657253921629810047860351251137979002079928302610130979411382542747061218535244468141968003205999511383449200218749510587791398771334981866033383996068941079215607405774844177104894000670124098324091511118764117821800197179471045948642628734890706336686572107958603014737182899129967170194311847245515925130195801889896123293665994408692827114882050754784713387835317713032076914999565648709283087314905557462275891076860233366777140571834215563311455095982596748971015042036952828931374123312757596199632433726919842624165625516522560049132294726642828576189322056878061320337257658507689791282581272429029771365231368898438915808100275623098106047779087247304056364685205999754997022896224944804497373022565484307005482394551664666442609604675076275841648936916391342819741833881728447778546597203020203659203581714604165090851866538948479217279414713852259616534413699961708914537361833850312501947117758116065676391645568857473530665425936147639858837811606300245284280030734666920478961642874036856849139887990557088089218483294309645579922918758494732502073104838269552353743430485604900599353865413365432571645844132696371889901427634666950093325818398163058039978027337174682973815968269054304859064193963176960986393772123071594828346910629430257224209622435782610946958697442596364730408679407595424968672377729884681355343405312016487206484154256751344513136320849968945563418668495364396212940891547498688062617406369064207702133524036377348192913565374606042949203115217046563788736586879233586249976406889398892426693082072336907932749733220828686924612828526345998328035445958717265558742022583561094657775908581597596976837081353970524897907680406884088705740973479706609802522963777528923922626596487031529701209694818472331840859033370456175559176886826731359291992992824567828668239441272563520397122658349948150365715973562677645193298226542408920111827704808121932738621873958564261877153243421180974688415909469426933273450287729846592238499095699993554792997135924584075943972978478790999937995299868864250831121437491350168976858483377624148141590851574468797992114365558369405753521402399533156604221847014569653120464803696983486257907529960401842095158334680919002687981921010536002796075179347269904815632746572795048004325637889009481558443388328823039477222335575609699271268102023576267933584282505038929800381280191663394469089327651623264873116484046680744620219211757439751588889740798805888117073894684524961465349802609352412629601345015725516776775306369578461802073322321627580429471886441841370960581782881186375546049649903827340920793544278748782808203124380487087690113200437024120968290536541534937323903040028501120188008311085659689251202056766113177567515002278487342131156391338726960018230853471607516050096198929143606677294616610745296606352425311967033882055964539381825810854103738284709411029781792695071969337443199508002869094081616913841086288605653461697597220250813136206144145563313200142610007738902776016193464270577453700221655068017511116575035707247212293127089148771026027631486716438872355315444178272477745441149618945228723372226703618671573307327708047457618373571229914712435835941650254061193253788331076761494621681817732895978768674125354402400692090225858169031780397688864267114477412740734456884635822885844765011706744317696568267209468154933710082060490673042252384488487921833393080974676899815455546862923178126055115844388013261799940655265726741419688969836552359347692025838347664502108818026969975146836231860121358571903920151542903449905177470823845697129161192885133576972792248530941412196666792543352551036246669884899164414867410144046407367090826079506465126755567464293836972527404984328701218752547375404394589472246040861055770885797269857995163857961171682055723187468567609811049291184769289862822985782323156592056777776183310453103838204051919459176033774701823694455576600712814161637411000428163373867500941788839433891139107725199533097851819832902385074751607680056021633713290541606004186777914494088226864983420009070172667140521868257097469349280429775430115518904955739000473320806811249116657905461765360715575039480207493526092581014960884655084750024514284922179228901427352643295190109528750345953466848982342987880592352051398193449633746490349048908852202070836683691135974814442783176983545537557744787529203920193073381460808387768901382560609163204152251498075543106307278617925130118558703024211847472577171268184261461954847246065717572279286780809744755881597016839492087773570645119886399638084421700554420933457497247269820274294959873226589223523430411784005676515549599829878202656524096808707944306310178337087779500949840283552906528123866612076693518684019965081172009425859290401930008967316583432292301860207540383426380772776754137354344946367660756880323901917330676441261550698971169566817412617978807899597564037162985789135725799093849475942975325282250507694111197075511739726106288471762229333618705106212565267983442876766101794440296346056911919427732162694228342532679135683012830233749412036092247309569222246777329146849990074562799263199431561209026292913720653169308314095158527039508743499988448696107153733395081498782453766684155605021895135576692822929016577471959282937616141406412180745406815404798834857172393634631590500011351683669713969187779306537842597729196281589454308819895291359535708035051370413291743709907792064231419409192034840726701495240673748750814900122109253482313632937348154329895206125339662434876420938601917749893249937345574919207482611831334646235200047186896293583917499808057999413927060187937898712391009867342379771877743391853258851145089267158024299609134064427375449621861390012021360272685512105967958691872582622907634449142153072339051751042425233659636605418367450498038769692884151790525801887963397160815911903204126078358537328930698209274195155752620141839418595995645742365522288305994623467251054688814858088084799349713603210784390378222394088665220951783681239239539654383260247842372271001548810886178139025068463035286665356385864013759260604515040481420978753893653230983451417076815884761016399518389141258214586393362879654629205876312820176337417020497023352300604846420358516994969911561253397021423596438544199841303945153205143115569866771267247845088714886068474506437414677088807636086647297788876253964903713461930597631967366424676892976829549782183798189393427629573826319293928671994844572733906630324086699220909423898230323796856640985769879167259238581078026432136486790887057276391749212420792274964333574738797421134922820794259395588529937070343819528634279802805945457973137660705253173914228501389588207861985986159146360257042320986399462652756653374137866217804484360112139785871277245396864762019528714223057070159925438454457223794182533978646970413153557675412177346409643361536122435357479378950016286853947399974892994312647870901413061476825023934485178837619284465903589021150551830014731657098828771413847063522686437380060086558064585503254558072793664521598187926993122252660485884174129085924104977489420277524548044714914522248701143938111280092716868394572643576239138117178049616671862290006695322694236453811730264475357752292134552867191811090575496215826015139993703756716439574010218741369416829709854496076892670616256105166802067544569758456708924910762817023254455111255924564204945122445380668849402753377152553186082038091636157690879953793108779926876481217421771689612319184730998756782147547707764029395167445541580018954211960683351539728127803636163855337420212191741629640528571491348642941241884593016982028533471793606519951295728205362787512153881536281248322220136395308869563713474972878415705324845489752530180042861219859494163799423004165733632667395123527396183536311604856423120552055055300457420366356738385559703471155316727270442645204773340061092927763500621669609876768278339955847935474977981319185057135337593615964497382970453632336125079331010549012898806312718021853626439166151955466603542835064264945023280045077056901796464124777959834591197945240586547702914782645108129342372135257084456033859908079425217514422242730800020076718208526907429782500712023147966317600947003643882128105568091298247244013855186746022494519768096106403240859684352595318130482281065064920798130233465270146521951863153534236763536775642620494981821394761770104612531242569077909970435785637957223119413317309348174627355836756759817420484946995852370117373524533178075514240086565751511925141986596923033711656582404225096680251870386928120208010283595084409771386156959365796494166246098103864914057638149983079930146679426957508258424772604356747073762240647014307405205115671579949448959917756129391120900186497774586684686938715528886709668583768473804975371670292087248648511289775054688207355338875034874036556500789766729090748047885239028417637877960176862414301705234539804894355932463492938923763674769059856129768357901493789287059453151812565593435643743279621898472019585304564209417931697725224160802367860195106339720314496768855127449856299014871174910291722252856990069566874159060226248740796479542119478557244382458175890235947594603843730296829277920491264715116728913004316634849548632289492214178459274032138120156108298097548736954610369237560921564842870174223508187285391217645515817146753421694399682347668847529873324156179937125475311643353953008023159592848383802609718649808342242915453292160898062563770274853150096626270029583139234375283832862056547091944261813578495910034913530087851747410781686885899283861852533398670972276856063117914955474576238753418794109428025849165612166195257037464973436473164416262038802000396107789091366636943362439690987180948738303389143367568177622956951358480010639242990671070220388453995806512376959053716116546911481814012094951922173753232322836552551580486656517600734721575107824742707380627647070017097781455040443922656791795491217890769899020340140797151991249509395502969008634803605028028160949095471818369657267103929073100759742223089379314988935632378841080826605831680330759134727406720291352689742856240722333443867228657417567849901916558732070183542752856712318334142220040407793891800003213936481735202073147126361759385639893300811348766371291838471609684159343687748144989334982153552055195650118626356764425537127812298212728639294694221929922120744966404670607827534510429101208441581563990891832505580633418030306372731929126865176288440485846545361319468761557447360505622996182796440204546787700811099712749083402280640235231774904090638143549227692922378389005124287131750202472445900956400131868237086219012900383901760306693981737448602890980658759726252824734991738153179160222301617981519816928671403376841066289062699317211872938689812250140603548968656967808376633782540108603465231708849602348822508828237769703063565775462976818989189933311577681831087229484335179080269283901721452847487689080766187124912069947445244396362083921022676593319624887029020878543673813627099358147214814286533632116274108932779932800861581293697444826103784070745082188338282448115535772064304150035526588663114858503576887256705686356189013201070532827528240692110966149735253924316861504144582733811871207928489254517250655104432301334255727684099944191170462736237813933166287999331029776646541884433859410827679877068014228097429436389141429602277599282915162125792413280676594108853627112274185029113397739107626512583829769701146415553626264442279564708330187865560956092698264093106079158022343142983898671852884177653262047194257263769079346884108728352911975088704102354745189584372164338405888830376481811868577497875041591266774938716359194151384921268727417775010224878073974385225626073979143452592350024427484975501600465917338871638867274903390781621858980842384101116990167561109642461625353804592222058348970512439628787822582044670468103321760010003818368078657681141875284894881022736190003618549158144470311089965369960339503060326509192846707765352855925695810253264972418015381357242367754666757895903437352521185813162991274837557780396054593801887464967530503630504675977825366595471060253689725056294857797787850922505052143962589669042144872467494541221811116765369138191956114181939806556132309710410190641123311925987889592213939649333207113129348583988249446532349282750021656534023006291737427673145418014114318295361024397092956719694644332171118749724007799837281605823480779171485891264653826798641051709432530389169352572515758974736955306289957735128297076084022130319916314875551943540805205492459124896420617358917887516230893863100634368572902114357342560274897716923129616715077480541006634687658666528532421430630482940610703708667631340617598399621179585395384671511321422878676369265816595771549378659518340904942863726812870056212670497027115777402379980894282303826303447610647522719617395711455188083510053723857215547085287399922898230462098843279937460109618007145186608390547970957384643515025871996751839758403301596632735586851025764671604980918934946529787506443952476681615515283678836809531682434524857076892072170490433472045877241417440901672989154018288891125170790479421718800000815862648630113320232644536716802413189026462168619528636598993064970071139314842696679331415822251941404374377927517871153376302967706379438145162922575448527349390867751259140653681221942228027159564969310992190051224301356941603214699031607398326251732361679766071890178432058473757794610371430516091603019798191924476141064365731643288369900808373367837693636872759820428044637055847401603488423102946305573683189626457696339501274326099115721008626715430652341546246467743918686514690243395000642880085521304246561160403473020999010438815278759493657928395506318457598242547455506913752174875333988434122239360046736969254564638750499780164025333479208856806493375119620031053217736272542903393056399316201424966856024496303089065114203248504141738786306065189434923740794224364861224055625226945885455852472319145824008399918775966069644191774738354440403537312510406245089778859726986286280361650213499839036389954901650301280262656175668148582462567054900770549557895645318329088525869504968089658502351407523673296062843278044659089812276623714627574863323351768170539599300754321587162280258854687985977661838846346167026438868594372326356544918031475133001646748075386029105488227694939739010308322240263047938386503881558406401510126302440404067667262309710842064061028378074401168126607804314062044904733061483932378761510244256107979553929763865089581233938189521255821766632763466100884583723576815939428110608517859929041348567682702561070798426408422530056409395217776428909834238532177796801884777483284944875953552871809741640292547242863928217366856060950251267498999683178563506163839851685360779802901476892322109112018374974165524278767000756080604441485171604688468402718166025948135873751273560278551705420141977334943759268196124580839645919709522651331803491499898441611280522562347771284113214146853109049799757487360851394187005074594135908889906934317988743508105949238686910079997994154492881112157808790522298857106350052050177445765167323292082117896475192503386999993175716379856300422461828517507166444615546998878927362633019677169749750880560507819826232742380542524830563114734810066569064646273878024324050516660939256341603485204307795399822226728713754512244262250500799500061833421572669898087064513086043907656635773303669070831652020585333530113236898725485246051980349680569521009303539126064793506780953461209622871800498247963712664808444529614478933985807805164221214436800455018076628686718274234245168541226065925845946021321553755232450684304201593161352986285741936655291560051453033252870236674613989731875217560147987514612404629805187514583758203778169392787111669532864762019378554162059519694098226317381866828761437635449713133690590776974314513475057215618720240495004270683463072841143827295091759457485465429174540385924469959699271735785910434712083575837022693014474616583922620206995129828611515963766048882310558463830978286548582576270374137024808817968994262534543805215549645117729603487234252689081495462933156221005328519560817516556541491677744407785176240520734539101143726454494816419000872732791809765444916997937486863606764388320691038650869018543839320322910562010303211114186399623651703137454174260355564836797584603285085488074450170738746488145664675372570576346658389802473216779431287253918404124363903543738851066038948670359459732354289838262555144573261577071307980121840810774089475678553631447569385212167574089604170681140183886090022874628664270403130578730392091573137679759937934380058642458434405509509881904437319641856478844602086428484325387365841194751882745441848263618475103123779083569100718117696410889813984736116135507746961721771070468387953914369140592064333089924767842271601138221642105592960759434913794631213564452921295046950083401134207681131749456117965979078208465528871902034060345657710014030395910099479784318138307921101129734857956806105285433919787518824431007943169162691906307326379785130856696612626555985331663169407412008804720630549794891587814212352232138962572584619737619202389534934263762068378117604599550273302563786438643075254379754749603769855472897347809714543100135292779125365756378825068832051419099569193274378393539859142798652731426591995173781934683890054980415321055687697974507797964310978911668385265248084950694244004768694638318625059960126966924257488290337589827184117680175760667096245983733069104027003555320165746411318692838093035435210188401100862791906168526227591378082341608046866681314799078813289233746669563500267702824801895240435903557693732548009777633868992455356112663050188861717410480517953388859885421952484662763503513666232985748675191715396060494265534560970991563381992055038342619533961108539619476390445995942243822475149399500918356099726486732772694804949797311620749647349230752896150311186785785279981159943803402653387227607045365649778341961900439976761394547260111584576459488042223058165720915203631716820947150063085892578054415569615676141774300104622250376571939450286439729067369510269606903441861441682056251441796599841509443082312832172135217012773580960407818709523872992553328053930958785728843467070804824643725259433513765349935622334952003418467559557927669575337985500724457949659011240276320460062781773680032537476132786113065320976085720377106400566507222259843208242410163753775204454738357374589268016660848277469744821796549593763907961247393672262456930775462363036840775914120649089848280302669972088976575157395984414541966725764708888099997225256191102847143119168248122151344551512919902250107979336531013454853778057286852351447312098903811450382867731170649409719668621871677698812388559664734824951640644589739256003246933227121285724966705004044010116455272787017648580908074443440790912800762902280890132849532121996745784668200988987385124838275285437849475872402238753835577289098428869721284729303760772256109360286712042232234977179709305925113423969116184045730234961128393812771705103764879718655647179224109225082288109145290539840606284909050184833231056771152058386866776060185946243634091486146201608906251247438965569238787378088391456820093881976062242244014411324102792783975073306318693171833356763966594969660848429485122052893156995251677448685960813472926115233222412906931463210834109473617032711602923266991475868015633481545219180519073496383120682260841236145266391733860826794617394344901327408011454697652278985717432766003864344306542371463183807291490232406579742042044776773537603323121543932202237655962241788240890532190553151534812308639964568737106475685733960325779269876485962037676150906924470311535077325954465281425944237668182509718602802278729728005153915610754290983833290058862154969045800550412420142983486140758371927555884011940993003249091676212937406414463069785829521517583903000444711211900377161539064003248562313669009304199446317555497557687910408744162659784606431210533122509152123522387714218511492779044734821807743294707126937205307939348581707588693918167187453962184514827441237160435166260979208257689720503876223050816867149035772789382654600970223691163839604292575877037012328188143804740717475397994637292453034615631176371131310706200305300234319244074971775995699040911294572139677582480234182563437212350393623478985658885499320707154709883129819240247652515143575354330475072982429436716332439212969349759104572752295635749158826380577113308743000584067790462946239661333850295704501737989857838806063968611823850433479851257466447261640465896133098318188509977199364102946447397618438017537358340398111188795328349838472695368216084691183650545507619640676264779636937718850457613200191470635596893930997984336340389344466485324976729058536549396691678659356001792364521128210611733501712783359145913842446680146998446754962918707009676147388931424698760195808863086530768188040571927031755732207355766940389919534232811478073132086901729613676777260168626317111302335952326166429753213089603910926695664028538367606795429944995499181508940506628033805772057311847972702923442229992556736636435441101541453972253055816055974825658756069387861969930152379904248648376229474103345877372432562299018684097973095024197734486192870846229107669558768261412052069694988866693007987609087317591866863076080949793283815302189338790351898316690469300685562539275195864312003992453974184975776556916439141565436330759610090587373806728346472969749238320796159265893653892070876426576427409967452980917547758251815659207008732585272163729822340683717456712241983292200517121720284647861188519226465834290949613179510305293000680209061282978799208649502194843602555756626702963313870414506538178240498967259745374173937659574877252885706234786776337209134365225937509542222588709282017311774527942280298802083798456499377949484973155357464579296725761751887130068493617866740232365908359515026249324439312832158757329276278887073899118889606748757441422135618697150151665602679197143307782604198264758735531509456901343536129953695883997060956721330469274428178248900826026897694370411900273130616674201297905734594356323290292925926741812812411313180268157101071239773094686363869083867263394783960184898190024353350376982395920078711172669566638522898961965570848984195212722554431048599363906122629350607386124393192987149394948144892085314826169285689358634177732744140904507070858649258275149702722535592842632709670941832479554068095240574907986195491929115098558522972866934206461716339336010027591384754230167157542655485311134591507894467808827789679662541161838679907866840377878642649158601487453872873454860427793255728342499732331322487097697071145774609502684815517681971997852251041750000084965157126197250494934399682977714343538613359501242003765216039476610812633126844486352027635504671011324966243355175432153631293602794607929616993726078717856295310478414315923528196293671989585765529737420606836497936042726928741728178933013812001407680655710544375198029180021201979478391098673197614722368646969313378064234173529116291049255007885664903190297929255381939639231716987647936255611637771704938788503950185475347698684934194933480749826958365108645299750761778533228149596166777259853371874618070625129947050030842699484229318245847245132489470651521591834673590701484568132156176221140054975253709604813504688754501912449457929043699403010246471367489248236258391563641502485173766551887921541706507327395069405369098637991575035433196980232145558070265085135119182485690336529285710423184997413650542594127410337769414445991716447321454261473184948548022541181218394311074017341132161537788617721656342873802211049464978360101074629993090390844182367358592955809592171455714376146851672695061158053953815764170586298836773783743580305712995430660811684253308665127202905119013650039321714924581214495411954513614068269880968119965420905736261023183335216845529298258776710401570341008537571408030258619921588759072158191772116771839021604305746235049933504007032314387751844712166771598534192494913132068514053049699112180378361324591503902795183368531786488052505882376384028086872492730782499342865501873694548607131053856129750087946472327716580428490307040425350793680304703429010218950976061309992608954069123470780859332766026767566343237835861189875447414180564771164505338715721260250656435084410563404937271499361255875702772926294326497494816434467194912091504199729057495190482170998057462666697954702954570735026497859256685944801116159448370919012276424008976697335913073707716087186151576098545448011595814197881079031818368805196399796866065958076988361761909599828738494206371011496701997236875824220492166774404173823156021560929331216409847425415728837942535323885552852436293797436003412342341537919598538935352781769841827720574459607834833479984487815341222891254532203167279523519179877563618712586518297751614013797502702106780584241903138963721452581681970916878494496827080484883335261878194636390252787918350638424424983609040664863740204707963979605696064548324835095539882427345611067257465392913537475401839914401948688232320077066044306910756758885068854031741495308047797199338148169391045710263742435552793251205540827053452108292700228736079538835467024456426667002242406434195603320461658511169346999827286856701230343582177755343303609638797393530341312988701621567542231596923342728781989052384546626106405439615967786671852249249343450348068941132275558653324863316735915995023390337091376424728393598486149493237009929659592954203786966923528731628419929916800659508052832674917458817050065518885523381735615554303364278111456063242895444107110029779002458283058319643846670741771045979078068740892896374058374879741399759160768551815886328938562511081645654439109679736861740619387119986784972798612857080484058221509094114878834970046554737558981425296801294434423243587016653285799565486957504178185355359856508160875778781831456950870445746693939831937807338517625963996250486633793808935657693771090148637690467211631213165266348709171109733769799755371610963101890812224509144435297335038997031736959330013289810339089524233688543701054552609127499141837865006037482187084550979417820202864361773683550769900982673577006317449190985219155155471688685347740396549143099713583674384772732480141460525035457492134296530107347321479224308677337475694230811402095290422607227526253841154818149282340623568049819151622827209960217128525420163122915322900997000256383716454674761536751946679538860704035125559577431509169713258129366514366746266603016450520143895508478210476244359986275462236987434542117657150854945278091161516078408813736716265326382573812302807631645946111673997951066395998499163149253247328470140777235718812595407550785980930889211922114762275517058709091750015362430580561116194053697290371204976284796860866261120170736774804109684025704648918594785856689799510949473111585841074984478359695461242171653159582258077496878778648633740763314678316334751820772148397075948293080147649858521616909208896170945868739518447305964903517175810368674279283813177904437345086106679802753901320298145005162105587630182745597778014500258532404676280589523966286563019151326476672589546210256431963397046683717966061728791186928912283862831461238888027199108539721840182207529346189915803383539147528845206982440973707142903176991200905402170900877767118571451662059970559293843555670766197804593808551655344398903931225806590174619501713020537631834110723242155018555442651578772425073902360820832310146234224655652966275055585576914300584859070171811688613933535841351424685881057858564479958099664294007537376927139493529853056346478424334890020511763161331617744616393628725181013622350162018418667843106447881701087119948930242748797725178088765179730456669644043255491031155869580088341405692940661916379606945320814166781904910104775363544861111161666114925967238731318943137794849706440335394434313274301129061216649515641234984039535998079827955275105320660468199291993258975904868631385350678016253129922214424990629473193075125236851829574290444799377270935350495045406376349896426724579141286393441661285589378777176405478926213061751864597296062416805909615865734935543117617769829720688360727314082207670060778161880058713844968036944193344420236158239339440534675614338553577292419985218201445079250419848072927616715207343841425114569914158299876912159925343070339431390289564267526062556669248720990296802256288898007227486310100612593987763122719694849446967460831278071443192875161414289005862908154706955034845191178283859848772855267597288552444796493149982605136213981503683896793600127211429085174499766760860807232326956400153947251037317181771441669306516892212700929665254452684207459961168091062520485772907933226610814263659626552084025975840774637385342432215477474555212563262271081562597091298037967110857668946172796287071619465461263291779090754148602151997800081202066846115532426137932008862119990429350084141207289226424524629744118605420385047823415578009488479071874835080854378153943423259674326608365655870836629211964392169856603854906496018457918739864288949967706670332788479527223164876427251020103567836129520020715000277370598759289623751856018909695260461517622751672618713369420944974415693324698863590982216883711456807320718715667697139842881532175665070253918977043199768287779952650960897124347130129624568061153232504197936606724748656067243610537725492195538078070325601254923088296642978412405037753941692868178041645271704689056503962372197583086099746310982766994135749411689348853862628738933743369290935167093470261285497395576518191754829637918737974051103593095356981492442552393807506983568816173147873660328601204220668138369507947898822948472099792648324046023811852218403530707277103260699651514523402493878499951771098734787197299080225119926771188438765176802964924590320928673142955588926459305728766929927522573174892542897584361937628255521894874725528247180136521286394516224701699750040907254120332214534989368756713722578822844555336004642187229152481023118142544766786764238960663053648605003779785548749483602008419601949548764620086418513015818556233018091456156539649480327518566554352374053594385672480480364580125872687271869773585632479504684977209983864513360906126189232318292424346906697271915446437461670383646637431315397020482592743306812782793770246923305253553804947889274122007825236798374466484284041776232200507847107533791147843187075354281139290194091041032908611852708328741843828028232090107145036162971195864082135514516299669664459663446322080771408554134263913164296286309254414413676277737239663582037930502935650777648838500769323794739715291637208116646604768803897118582599551455503842740044468752439210256359611744874636084521511768706554608488545765365360408095743742444826275501829458633330532028041933279050500068326585950684295432568273528136966718544858965671109348739662571339619492395523887944671674806103353209681692607505357658352395275251677065661102238160638143991643509656809567420307069301354790081229258170459004190995418028213979114696565253285541472756704888727736494530435222753265746776392409518106264883507273474796597738811234325248201324525694047072100683371946773331164270626077102527004577985935409380424757663573418911449005706749124090215081604722802841336699686027963462817576518290282208034057807322738365438140133479710541661346100077721407571040844207448370775171537248245376040559107159226514889826754702902375488267089687358509942932259632515114241960301774000533275850541117542319608345508677959677144150963165171090332689832853722632570163437074786509804898439372127530306793263963157593057120121821118649802899781465818072447552011990792620076612142059266146688736709770032120622392650081483153956764872016574090047574878397100119614915525877275139204045679184712074414682594645016127371234499498001808113452805492670869322934217635415861050618469214316272693044352008015439237470043809960829424712762842072651013432048543689941129305776182405978790614927604626798265220208308720961162940468576377798947701332074419854150381013257498768333313974009574755626075544528120724126560678299802739263866726034838876533708807802326231694947567615910352719856570650224485809019239849378367697346420253983348714303937684526919651021553359892426473330036735108477107251205816088522363392526666567567936470422073802472791215310457125626474882489254059943555368554335869234530252146663821068792387616115401417066557132879876192976522839370243651545420149249769774939352137985481412262073561549806196981545192988995730070348732125568889388166515624718820476589224326407325295523589731195089948335731032837252698615285175907603294993891034728555162961665570630513496565065486903672416122242801361905124503509815856335043781651538259616733405886368937135018003202056589171837184764586623747511100791804288087167221383793061423273761362972442230893143958703271284231145914719577189494632429421841419808068220231676176682930005073770079516181037355802958061981792301860246756406096989443350673840780625790779312755456820850407441913204030153910782059065510578560288169211399794965036364219155857927432451318872737912941610901892227019479290279178506115199714172488748597231564202195398154744745841301369600538984967519624651722980153412798886075600622011878177633390666942327272844638590190041749007539687189072739724735545022448431115885164065386352630418785984628780021902604563861493474015894004811056441437124463170896475500781506981636199782245230472533542371997031621217759044283485191305404808303535433851093295756039642497552333597400748859549960671468762684110466798785073121783078039318007023119396307947975038582622923789562992800980375390803977403968699259775727243487824936580407175758610622947611811032053821017710604097112249472794343515517592975282499136638026959031709502898382426612160059369974312011357862747242501107895843957035030275485433522160698515284800679243481033768442338396596153881438834154862111759558883796661127400143404450829491056377588253325518288286434666794504513488653057321816693806560296732991769370718709152078724276574309376782101347046174221535945744382996164151193912711970606089189479626263263197926169789066851793614617598459038668297952435754447372126923805682311572210076701494606824528361038737733913448813276065877971395687545882087165434163720749184530613331272116727897721652971460995841323196622962632619502291952781536907853892382697451422498335878349489253805386202388080796905790460450261219303921622522044356872991646333196823743497003345471684469496060470240862905642009582145731021644383492038671850695849721135254579438393681379934299830566209540964008772626817588417700082176516043946585452044666803647392387184137362271824922769554121908616501908347758256471549688992589043986451314396466594639833918500995392983118024467959365744593015128793107902837483152903980575978334951568305436904612645259981839904006026267205915519864036062738269678746061572316930228926664950759197593194378855785144169687836815560548054385501599675226079452470923286591948696569778034850374574362476506574039715299531856948221257527556674132882636487336226163497783866999579811773104345250559919404449552285103582902623917378541299778097664377023774649469714329740949769012955643641611513271849916433992221586406454281759099573671108406090272425260924095884086869565742547780253159641131626483748039930755138039657674039459069352118933585604116834305324280702562140516869687438679532819853507487249849179093227838649272692264092705992980216558101461323189265109804907613554177375861776941698979103961932645691294234518114597853465080809075761086174442538284538420771773937008778528090466192486606993211164931202040611106500605523541293458165375592204566197053945276492384595292337612632851284143800106809766709404774777863245118738385750288682244743471051632156004978138682836548159592542295355942567170006640812596148793812920682917521301049732693318671451271933732789703245366738875705324055150799824192725350921103465725686103635793741011554861344429245686009088464534177245910416292217156458972870207278686200671237886640849782222582127066269701562274795033822836482318361239019861743073230671132849427256518025602442196267051706759191638788998202541776928485435368440902701647900823097037098101559445460164374563125800672261332897701835712418572463986526539698721131137933225316386098211208531396033631741128085301105812825194682164054798041914004019863814866358927955068389960596731897536201778556353293809296002988445030217417674333080577210515655024196901757001821974688416583725915265407519563171846128799794386607943129132282145056057457846990921609348696697255828807892533929850439381874253053900980389870371500351916168576675610272177520816935026077649526630195311103031577616866659669174372261377738446508815750141037943870207116884874405595978284213570753742477118228087631159232881581521277398236123964874529833214291455042100146353758209218668408836731305573194166141415964315667134188893037089248121452029691746214500983165110647789252745249890425024412284298782292642444821106847407940429832999935810892492369098347517556114378668866888795839522701887859390990295853508723800526672162641996944351258228600776196519996413532981086846032541730614829724014818899268207605574292482018583007991394517197418806744369819762324285624306517756457012463742558567098598294118653889716675233808926560625499647202072652182077239309550295377133025103053676710923936181554653123408793397627726910866803096466828928571883857862811359966992495482163456986096276672585218884890914553743934891283645388861639651200611035819832005528932557225162812076152661328851289640337882045225197785612005359457443499273338527117504831481171670833463423721002510073438061413026503562184936022707285724991567129765088200836529371018272293374597402226115402714649675937023488700166573723692605132923319795677026253186278573893634848225483677091111620171072410093622346386427924470967039773176902628458399680463301418393011957931320684315818198114206637661209737047403912805271674733582154740257882271446970286164357901781857459055084541726381707242006764739358320846363855021560155823711330580397426631831618510059396924275263506503852053215173424474638063625426010386497237127987467998663583429168788241273130813456909646179998382169372599525310184647799669860260855089597403249436159390609757900591370312556385140583418002362562116571583602159794227251962226722914092710928612647235023069618166172112980594910481089815045800102361301901163484490193299423799050376655396386544444499268558434581605129892294183496623837362537319095384998827197564591213490964216234687356551810695451157291542471184523419652911815709671038786259119731169724712459364597066325256685195821294374812635759267893872801491911662252147650392852641482839948158332341114546387617479344973550292123180004814556261666216851499614166603093450881378547185300047487706668046858568119051432279587885275253929597944448905383207745205822156871986057302479392286769779599352063335798453949298955589053827598818218820582899948928716277345166528937761097285080048421462681656085338187397126914485755136019466190679850660793579232464305485818361398714300804451543321291425165159830541819177030777856155877580146724306986087058086288548833194894739548381520780909967279965834056431936974944686357254032258638467634223320217945489700161726585433890643329241373763965879095850517258216719664088516174347267778454592617095811424390902802456862962539868925820041147843281202562586260289950808242588106278645531372110498882947479503958644650632347929240610851313976340423366330294263691075270424314214695295770273714050877583763814218437612701695779943706193669142817448267460182191121718125250901718648012125685570945901252126171636048738671771668126096372646291063279022122601247440831363168017719478173732929723166274633912689804166913024312775712729457900052329434103219724935698566600720737401991250136281298475978439689530275450470290586091637294583705588221399307559755671897939393273339397216166646307111006609347405959939715737739084979520634594665183090002203349463500881335105525959293602522605090653713092345412491311465802098610248119722050922688573794149941946539374526744886271037604905010625423336392027694028113516839830010888898725447532031350333216841398775340346575775940093157059576174342074263235066353323643469746942938661453751411792687424698186958226154610751645939178084382363532932167746046424431349279400905039695437876318646855611789203878496816567274859805597439872114936976906845585139983928432270696684640847378166568683667782228735510769925351319493789813728831923349249574854108491477589088009420042616021993666514364237220900751615828558811966595243038833029444151132362757593312426719518823680615872260535718300079227321545192402530664150650354881442778487533511228388487943611824292335798310755382382455864395493347681968452496185756616506988614363334295196491140205999733374102686956593611635135941653063499441293131236623727478390322428941426341741176601666543452055153979316055512271697661506148809875678549155173406605847731648138670997189323545690142234859500507213681195106593153830834888071611475545819312452849974918380408155093835206142335596850941063766176598659041127761468519452357435695685654668742284744273198053035642799503813602493268000642003501469576380715464568767423604737174813857577360457099608794215465065832025360293773437604876810371842196892194844590423528838232497791219594558845427665229172659698960307079467454110799817889183722043854831888479244808847118038743755290759254777180810554677763243515071355508754202106745980897765132196587843088106238204112062857066529643240302221094571408052532610125128724218072173056497039363303863577395095421706152340378074060073580600653276350896441923125043537642333424095206094791843442018248888797239230491003176375527535257930279223806781178486600542411952175323583979706984775951715314306790918032633277575494787854962543650830170006383100457167327075983332125255798247497861895871907088587750799470984567639847759514115531505253874788231927706309057586978941012974277560943290462355414742915508833455837020525252287077045797854489704756020187832297147193579447790990577610784736116742732116355318337143484606437782849180216538619706286325848454590908377892519015018803957973196857190436779692732770227880511031262272401573546257277964921752560587603468047463331877478255442959779421963535439825620804704833121498855204538151573661093542305804978857760733567813915033763819163459431991595267861101944144498803060201857626942611771972817193373658001340719581030693649191395808134368225007790205463710897230817405098204340057838540324256432665170569066754612654975908564734814433238671917603999587209254254439387092836258456361460222010947951575774585384772456267342536774512713125290545564407290894387275079941728631353764556790211903136484742096702522249803086795803664179671675791686176257862847799176504849773197237805349263826020266528202072981034880843970705163372524564376999402593549281011642077877939961831893869718486827401403854833595047630692014710435529595492965284298041125527180245191770992450080200240892213295187807209139522586994972297890140205995036632780712757071036569647077764344476345731996092419302805723816177562590805920532835023863076392749864561801708229452133987352730077417319096099748481849146616815814028846648453379541059271614849606123826250234457594316343476330357545092320786244418834690475688803215522028808395847782505533131100990234302484633202138664081650105481394616941092872422863684798156081127839942732753329068581598303888206504960806258082909542164446285484093485951871643442757694033138420706359234931875180180656288099657363580166088445338745478759693408996294421664296626534513653280601479810605676581050034966385397008843397623342822356768472670785395389489392604161571642132677134720818236932817817570793224415178033007038507830910690898400069293837437651187102886588867563053802457770977897404605977869031561679875415351133989263469905643868252138173115567969300893687671046840609150179902618658023299619690443001062919364176774742351729640118084329277205731008174309521553823136218461193267816225405567764731143301180334411511726748794257863226799697477489606214033041997675362934153086775074434593542655473818823712146027532041016042285269237747539201517633704989563620703337589338574827724392694478619021152528728156265202487165491995063716666535191426313531050329964708466357199124700213026258845483482444348671674833801190827479694540955425295181429125273073982952185828334080485246307337997294111219728113799035617059275953618460905438898129088445708635214143858962317938578478833528338425404408691496449618730055735367491407174589598207192242895987446823589475056764502870881158723671097283044712387124467955975609226089652878335570098683045903034068874391481612673053936109987729442165066182192172981555057172064776561734319714876573156405026011316882601857483690759483797255868636001967272518616934579667704854846695773424423537591972212841326760361311380618530446657370537356234999369570959738890415168926787432669768207492324195234098053397645378654368707292107561738677846271293570641944617100243110988357178588699079759429932810998928094156275931275272262252836334348477576443150430601352035314308138273851331352852815429183897965936322041210732824634680197544124239245543910886409679034308341671169458634667675550300645647857325166406525643489862441994910626092352110610304110214222667054891795229320991201501691191114486721950264354183158050077869145625988670548574981247126256165295820815689347977798059838542630527923010337578048138135042764164746626981624271955362590568015907361487782489028371378502408971053923629569038395374453435817297718111670446763248167813840198100525660526304033200923260608099105644617255503042322439838430486477719580437620252925312660164475103683238336286399413950321427885543845407029285466357659772135131647413088652975651255785140757284536291903339960579436783493424146837539812943381165667134344624452071020765504529483801139798491828889065340435762831012749915054839411107284122318658391814041940781446988921609106369222992306751505047250892527705327326918790788192903120478791632858238807978847593833590728625003917118044821561333189026735339210335185622981201623042209562700904629826463961941702750257119309651978095959381804298209830730792810213114924019541356763402255063130185405355500817278411667421138068796082247059339573176360371248314699527377464820885137380974640195530131753934061703728692428044710263640961182547328339207682095049399467870573113857616041386261481532383717126930078315807819809910168789044323265284350942507460477791813527780660367794359434433271964403039075546900983117933616118127940017450822573728235472431909659768973944334338056297258109290356909794565600682168100117781610628155234613278581110458557172192272578055050052907782967815450924086829105157706731630895206271885042452854596473655647824901261464041897249369193043824313025374890016551921886535630665671416932481611473113699533589651457953599997798214913735690261937177694372046895169416732816278876404696051079943713931032115363145251778059412151670000673930740745570951785247844400958337874080265513676556219958989632605648456349749029310364353982062825065406020371699548961857609816319405918118834580981208309090486814698856425570185125549918627452324395935090410484129014887227879389172415427672006919118394294467518576162197882085426269358829460630875209797061240192855847031667802221048193871498108676261541477067892446011289530289463715317931271156928578260267364305326567112285637388196755991712365281003876385957657960718108086095180183203370546216415081121653205421772938758827110339637718325047167009359395085807901863684069881668118505930609117998509819411144910259625990640620053859330524023720384388304817943328058317236673948158337413916890117224529400195412741072936813059265337883687864333904137964983493455266749495991555606931020704231739625589747389624705461439954788736969521190224530109386985970625985630815945445093511519659697835272628681106383584898250988166501266963252214447635428937971470541383823183433133253811612740101755381033171405643563504703084785615613712631596224219380305096423681690984231723848379291660607354120361711810244373852292183071008619523153153387452419093399952685578721054772312627572132019948402163110346904867503097015885018606398682503615191807136144885375116306071561204027063451871226877031650073812342667664772077660443617439939263933316646823934601473162945034796065273454021957515253452176672722321589122149522939247209722722418992721930746186326766924842162822976741308014142619082791617254934877959085697754169583460531696589988050674761191297124960131285051032483041245918555783815165857542086053023152343854808119238682561454923255975603353830587936326820073092370047496478458517515231222970863833257693571278573843478597656051152469304030231046493882176158428522554217210099626804998408743999158636840612438464516708097508632834598516974103115656543699602379938307198663780110330446677515334059683891999034702049471758339571472312067610326287304258835126341384686291303743900827059641377661401171977548141465659929738108847599747893368297740000289666199898896927335284739396389518998143097410349923325963554734732842198940109658302193168265775499589662524897349547883977070746593354852971434203937264832866181631961710578082921947611479127775899887094321500158462722342576046107796572945327645136894390781207392236216571841076715067935468541184398473026581605906303853961848301564111500314490126670814451894880611513537806575992316386143325522677026670520376511462094817394735126633995447134888390589898296043811104629407656071410753361159414083656164044439876405951096835902452929367967285907002486650139231510986751361786726705358530610024395610886692819942844757221377461692062998815421427313155005967750678961841666220545352288520863377328967924559168744124935484020180263805145061877313780940407106341164210304158723675572023486993462319187813245706128678802467204158204561846886253796812098406422297280479789214136673228623544575558137218169129751804133800784663607368620245779876040778649604794217769249152742933791386036420370782442099419838966525074201089459243009400527223805203135655027615798084372210448130977478100339117744473519110963164277679528867968808453065164339287762713062669303888978184685199070197743754506217434840489482835277334974621542836145771974605451916014599756412724524103730323352172430647599046177552788000764159891179465962425063992541724964878020731148085132219815193494617313618166844327713863621892080299904099409130003429053656657288085249283925909719676741537960588524690168742329970346078717049678946983968642960592679962053357596540171231407389673237426060568163386349647353663147912404557954381540023507023583682852735335473868622626026875129176841691454538679359548797374579167900172864865218311243365547619455889669516875760596688976487137433932265787860179583140522077794864158908961749403859205866941931019821663742062434582061070852827418049337484597525281526092725303080526178605455574386651142522867168598037915754237316361214221476937064217654869825740706814285912351728892068530914056750801102986482738996105151567649478394082383503395544677491258628201614638840590331560052956695237146944410101464380649561682674231829904672119593204655804725715888390464138148176567589509839203468156638044481656533945288415285443576993779713084875746525652319561683859079774196696208226961176398730695055141311965323022407410704045090620699201647966796016481539270280511467094254359964239302422693721466337129896074257322911523297140248860434931043712541577230108762755191136310965112260287300381064609106363529393437653161511199334182560738756920049442892091245588928572118250864617916773480982793387873549525101045727953414768819614101671480698987515204299418990146347321906799915868721360115064287242607058950296593082759175291688187552061096250374095971226765981760350694543742566963985626033230152743448104308605702318332269613197137056275875202585743831025855279405868932677397808838768481739102436542828760558320327641899687425729488057823913251801750045822335990290640501219732386691187158258762867829615218122925134311360745091590170634021583484764968326295763883643691020403499848544485931512228076596402598887519619717638354163378296676942089409970441065554965843731227197863166590841169358417125339634514586717192581990062838226505671156398210694420843540417245331485489955931851658245160957090384301296249292340554579536265845992700908446175103400984200674772516856568912929305147257180387493842825708958806570855010358847958679627650027036377571897502925462137309804626923528932387895233702479861712234830234076682378835267365171366318584056482558516548351307255808972572943774186968879851584845978498253214065532258451532126339790510816990033638738527400240520970509905548207959858071973855345440909050490982869364581858286821880789032066410092508449486437707085214052264173043354960063526173131517156039958025906780602653710940681150871363587319327187459594686406836765417221029850847772335030389321453275876892138246807798137559966710121600145666915511686049207047166297554776992711912811761477036849219578264853213249268763579043466005158135641465729726996293953454344918503727884677819643165821795442653349763619111079901189826667538027382280774007635433269957052195306056036653980174085740817116374276831807341422646309277411984939004595313532706705903665721689333312942354465352731820087001725498055486762850474845646469663493265278014576243113876114110597201568771409990744499329458749008323345135824534749957077873196882020104910214301961372879209450849590421905365135955840854959462014211008564023784770125527447081297028465179287052515107795711365325923390654042397989660586921440396048861664736498192992050622015068174572215619739996952564945119426791503630209904650144273078075072132987440696850647416268667450595450564040355368700466190250576989359907979099785701767405057716869122762920481862992619468854595586048044436676700341547972492849662158052034687755202600177146662900557659627655163282782875703890343157489705658466274727355986483712907539383682066188620525834052137088272044162278491003850248220745039813285676574056208592060676143331316884808368948257121099979392960689841539090768668992297567640065654905937046338689464934938348890942468448821747164775209364983143516706653562287329821490135861345745398116667528895766766234588736830114527699501775462034977215393771457965090694094269430459592558064060369693850102060981580263639328904137904998222443982952331364630818925448240073551265627418508399480731487854410047222744880910620276111915552765360055170295753226889799811078958577597511075451031133467083069260953487743961004118909346307668034242230804737119731603058798818163796411463540851609326807202964466790025656254677617442414502346732558010169909204124698846443017575350528562836278417262675451057626309648107084634579122922735304959006020399896571169713008538637365565007063588748576124788882440188048884676460938400964582981394891535578826445318197941978695272436388604714734272969303434244990351987126842706434596234484229643643543281439913816283717349860249820210707810540510943270251969982477097925812651924223003457453512671146448235659781280147383441616238101027376756570190227076481295510545750762229760774502749989610627080632381817931101372755332878287270825366389313221016977322775520007609403734111936396342819377260664816075993578293890268814901315254656286693121894822261160124660246411918267056335071774077738818444252982436918880766029274675984938187719327085331696256361935874898680977554110245506083128819838168328354643766818970838725558403356369183227896659209173363290867385224853117406220020271927684351957374172423515482102917607549060628353640804284450182010422855709944024675287782645563554013476682467662890415343669892998166797261530554306175158794398265000217550763822533350475875668232771093481353311304478973995568987635442981457084724632674816953183489160859048607963979023254383443753558446911828130051521945560625058869130968596744223610975518644256580001271950339109958534338129620324477541463808358297996907669094513506046152360265145680228194983344192754190202173769125412812566062386914678325625673337639257305842390382299343983201775472596137162563948130038928829518774377899515320525255779536074265011315807676311970264465360747488163078481195938775926547151757653323463247448070609670505373679074989628301912505995109376327532616518773315354803663258861404848852961468226636349014793585912224252596336053192273944086135065383880968476927999974179361729368762924776047260947132270525392044041445529803837243577424768155047022203221717392775250861078731835687563475950305702752976053702143237163387525730325930681881110231954605684876284520321275542843501780018795433397396894088213407821341001992146029733267875151928381240464583611155880081887961373980962794315534311047663094952612246051677310436190984293883352432852808827928658581591732137958580230440473441202639934455834730766326062521150366369808269964588199988954266718951543157595666708702026367340184664559958311177383865334246272656976812078619693707628905711202743376424162746837917754610844473703322527316148787554326842737128974053194931643225016243255587713105510654085555292225473018258606978046321213854783766827473186364976901627405401217759938774005309531814416631730463741479116842612410093369599136129143188938393310039313144854753249315978753329546892561194675941162214561974041947596132125394753992195417016837726141268387595397470688770088037865294682839324848264667680086389971252360111554989736873201789023923600130430612397009832288051344143687942412384768513306614184317216403058416161728245389691875377708987115641960896305623804376145153208749254458350927268423761350485675458038745919873751106120217861465730902836257692303263906810209759024579469662206529365153637246291704905598603775019107038474846772735065043332537129004253153814112508474346360338956484808006357852273404060438796231440394969691056088172973696230469144807893377532873207405430531161859660125406226047515536484662815041150153901936587673232685449853614029453449882299365534568118796398479253660669840849483904734020243134944441734232860503931235582147471522858193220749897879595047330816864846959409091944675497102529990666530887452072537089230575848548116232035285985823237026348133360924931279555447944399802329396164926249381830381346012209432286713779866623889945070624118487506107154542562852848051698624176125517256602448928466998028975872234530975384952369998836749151086719579765557586397410330338775245579936988026612445671703913717371480530570351280182246184146491134877176259671851810567777618380405924647293489887743564319730932870057629044740183013717112580764214146270934552738218845144756660936532652720368865905669910277925510951515840804428182571964049655222661967436441554836004407798111735983675872199959549861477903414146665230380040415656713073519954444589876287363095955885234616852573764860212437618305763620783579868646475394900809927670689694521960293118765061495539450222357198496196660664442154374044458198225095463577395181305683837911424115654205173875728879541307719732012121386148398425380828776733950447351664413772447869703306300988746285787358808916876650358612471070798464768630849687171204634927364676423408705090231348611853417826723368608368973929112625254905152108003918829423639234588033935401766780306385834272780072416304473542137594976568564576080601617374932028804548562203356657523801111458489631515606797782564470598943369783049011230468185749537704836535460799034676387984897613659470444342210636756249771595987692954982283904554943801283875089195755553443739375750882540830750738206294006345208559141627317825398429387253054600143096326338795582691508532134377360203837233680544431220683763992055807649279175348410331827538980334420887028159729398824568603196567414606927855910242904287014967777829913435512791343787408597725518708962531185322985821952543822342679086118376138398101924793600862370765849814341953266283204803431646784535569488197386284794158571392296076397199441897960268649513734024062111587273628439187913293990378934155713697129629367462813066875864770242277246816748084453148843311598912162878458631324834253506131645277658131566370617183165286701164405752676337838323379127941145059595274109805568383311328518056192154300486128133542224800233054129228261641965141964933434454499748186962323521203810731584682243906177774134711389516955543951256060909629337299965048920299679621159423076050476004479802871546786597661157102066721097696194428110158827993110986847417295469490510117353455221087457003846555231209817770660463390973618831722198293937325406184139830455891493914964342141066811004137557060549608910510071908414267022233674086464092099098085571509064521633350272954324379549311674869322150540581416977130344914371118394633725803075162653038548916724075348810743050793447406652654864195093131370073545846823490007281544328396504086675937863261825789453926990783457282343485316182143939106215345522922450888217330582429987897968705271256350076114285648636983984764260719629852755695632018604935990743109729229702592828078142001249210906951682039028430353628271637737139448155333626507855774746418616913541037308118432698290788962609371511672237813585242308158903458599592971557019868774249284753641911361112514367420967119301048384089137728247095812255215139097313744841578785624808500597560465802205975117426789879901417371113109225732206341923882348211007978745626656909744402842146883605276522542122151871201348685805471982431951471335968874743718996250806828425200319780460091580191660868594601817050510794051995306182808075413659178131198510237397742078904661162288856035529551543863912220063809221444478644481421200793146450365249224033589216955731964831736761352356975020180938703450754492353112066298717349972038879010759467661700799630597018832817731596851141435261974269899546700165522609524101083988649653271992347834717148102162871171655179402773476425362836202699783751537629795774388574332737865919297318811739646492347107474846888864918900619118172608720616459951372579940754989658475995668354298333933772997133724849300874936428557557837611827363886839061417815555803739324878013508212235757475675868246725393756663427703204877719908125410003914425606707507769114470349947894352711405273840451594518773518794532942051621754303647508748481123526501787035772857477442547796952371454538258854497025721069018440209791791171434336193894426507837704608649670410254976402282744974594388401159679193032095908931974622862200718885325021125700427325613826640542373085589347080697056575023480006036943101726323500555600517738702670826281952064986465120531682501961088680595447267124957877112081760370268675463798624544837720160181284613960594177033264864369037481811254100310294244615480875038582324659894851875191453697561139638776968358760187519505598518381287925533154531024872278073330230296000574886864407903970387173645699222990864441696989537804257786841748277593592389671131716607563339878689057836822314032046287717230822369648125841731720133366822514864840210940010756226639823552754459603120181759863531019026908124410366554174914199843075266491950261103025370309054060940482325602845804448224584528963487137890570338458667119579403870046974897889138121270331775441478674688159419220981888897407978601976486169381260228249537173569826920738880258354591276473391249714570723144720842351486321544336888940205679011882207823938712953690017343604817805991288655289456781771930571878880061364792311490538128116559155498618093424810286368747341653743967412898903623852656994389293473230087463565422447913015951136414145574493226585665558182080882732628352643400458416109118981049912009352103018695689977719280685845689505148540298744184712925138462520851967898314301702484300204634156666903646610189229442210420938686679761387427025943432167976717973163324331192832854838336272034419519956146241484781980468803987061843745003168878154505512545912837226163866609220607482341199915243467432434957040735586389554124781248084012851656602963140214624371357417922504861593046109474937348868484632947008253019323632998676449674628131757576563746593291473602948631178590133971969773376263002765696694080302155266055154084190519512950923667186245217207511885937598444334623872508100822392919641304720332210201766385543519725264269723148291931946461565762965854062384888229118097281648101305092620210730171268217470157335138106782859117666555725531496518266063509276388853978114721295696207525569152373412108406845195443402937530283697290282963024377506954248410427859596278683536519491664979856580697050931927143284954552466801276414622877645510645260511008984065240152734359521984693752190863128246130474735618132310980322114637040412046103532797541334923755627412454669287482505803073305419878733329070479976424257568248287777077358278013665767071637958466532936241421457028007762785538529414922090791626116739846435897120444546293116491946878418486238042607301633787225161197743132435050547762190401692393503973517441191428511969233522589530907044144951340748710284167226014861005306393196984096837219755190602900344759361135128548711109455001964174614453411194053007761090016770640362972383270483036280146227634814365313752895473908654652262692364868651236760422019540314174164007415420463949479329198650880852003723494223763433157247752596958482998199068608062107976082915230220589845058263412153419221683637249642615221334988576824156394463432020748922893267485194530205968051105443624130727108338947694742436641156772932331585475691747648112987599695639121984942300111715630349539154185226663073047698532061841076420231930028529594312135909815463447228585818055471615612559306021232944006866902031463828716351641977440092529126086228733969973168719970460410256998086010297402324020328970886797006604041642410981715600449219710568824670508567401273384946454004966405975812282021955083776168735035736163684541643577999751341023695745268318996493415201068279805858464318524648609910560629525194394063685956218096431566021196158199576907472586823624065426644850521289036489676046044877009466781072481632305333108562062866808768209939035995154961119299063541686692911150484182367890124286228594184984397496789417471199823618700350207894341247795324862870330185656139459928086561302759025976223420160727748429296181153823425982694308940669948248615381600644508923823830410407485765051481277206824377964280769800059743110202047842855491055189522006011701394776356941543423739819603134594463982911396517443926899936298812750233587817137261814328832829395797121748551385678635114041603510056992466658509041944471094086495752159988360592451071586795168910388845880395693578162915910509727653109506268223316258505334582309417866935632107457900803895367581550461024093347068587717897800691314475509348160821699488730558824285084752601845272148075719850478633306667949343256761152880762321265520268420773644737073667651248765093550091760673004790481234027329577162353709849621484701578716727264741827870257805460831213320125763053690218697920040320884244692390662031222801495584652415834664008189463233897575197547179230510151344062331705060721057975802984296609783117297468124723619438078838532956783564353849132540953542016967561965427067733445662731563795436928681105627928225494980078003089383963040848339156008217976473258366257700878242492739382260859162923181295284969121648162929775533233330259471487073328316060749316654275214570542650957493737047565443359751354566794154007356172273567062231468941831017175331328816433903542029364678492528610174507965524759992687179339926889683561173243584216146477017406419694717740756474646677016148959826061555754133136427592576929561381958443504238615061544034965965968671854715933731680817276910479772909914168625002605233901795215455183113060122530603898884649642405411798952134171972453205149677672646270442696921457658443057203481876303882152107452577179040892554782410234342335556477175173725635596237985822614993232636746132335513853886084104510552249010653578271385165771148785903553271956972115770451592945140727979633069811728113298191143555196112381917000293385210006005560066596166897022281213678935098383642510129327317197106843415532034452017138236502554147731494124781479219166021429203846984062885087529533805993266967122335030433248392133796502581751271589301241502649496713975792272981706005811496438819387545551699548892470116669087043218447884137356766875123672241023808229968955954659825678084698994888913183142952230956205260592389320637873688680748713044204505610536609562179230048935558844994810806202927502769134404990766456151385257164154795294314077446481283766740033617898293348229647745217711832012783477616041818164684826312759208817767279976084365106835852520236091392591959444694427088347377849111360042310322927205551549057133454935151878455461238954144379756043346161693654825409212541684098748919181569654106046309655482587062696834903845159206647387212022463326285951326560217918072366173997589612974337576041144070834465785622732960611390454759301639717002251824424887844739318968418460764662294104592856849932824753106590271907594511651959304819724320603212119773162646376051426561583805969000004505919877887710089667729992670460341246644393129700832515174230599595062730235382181925568051099134504311640143477911268210184751013028656672876901621946861419850674558491968869256307758471856574456430371384580344331307697561119063148945891226635731683731019052812500349214242486977454430584276245655314038930962243943114382830656950897590827072417262614599255614469195440955403067930752870207696710705896292086285526301529932060809961330846276837193955422434672623478934141245055533112121474418764380276738628782727467128050595043252179129986650957685733144928405511777556784089174822801513570953167792143260214434541013343731341369855552720862242247474793978271231532817569682726603509941206015297983524508553662619169741729643465805386508863200622061754480865081513573911129442803048324512838997560435059354693528783834228950757186287887762485364569294567779976927873167030274709844036746089324837019712332330330288492349588679943675749812340845175531856370428056806736339044659730650606793433765891167177260650287216273643964623454668828434923110053666975531871907676470704783296300784447303912778353391922968602575340222640110654232702693533748202207339607220199367115831015587660186021444478614778685409173531374366755437568454470552890191790392648290231306501806226989800708797154325369376922516116823456829986471588933203454440347938879192382325084737356549949057050985908115971185143346442047418942268252911961094476032017915989812990981479321944924882402629453798311925900246224529149549106980657532531431802460125849511299922808754243078667451923866100075670764895065008027398088482723168529705114466821020250374424292164817279050611333807094251765655171838364197316960876157808187536708152700409380341534871317947146796587619431898680882806920356132229909702513240699284611654157337393020974067616237697744246943232623733598375840653620408233755010454004769966798313624737503087917189988148329012322244559487755471761341976118697198145423576499965763217079078775801638376469236875048765843301127474494892675554957408085138787742203225564462764536073636145739745484950085849640913605120148655758893668870987683627052091725762978512362464563191230776529899107888100484039940297510034601595409425109214886628631289527009238027564024267123584750587692902483160110743610036795422421367688963857036904774077752667004508516970681656722693478112460761386137254353241185949426968109975301295951029128236444255165987807870097270468969190584773673247337480161006963509488627538273861261836154448606480869725187912941145915555825081321158612789307427994262258099533584542923661550544801460569213610102436969798025483863918766981976976727162987583521167985111820385064376421230179341240334318290077948767492883816086366197095207194416168223092143007991631176923003215723158431126260659155539962331966240415083531000349682982843300055944194494291308774586466706349855938650364161053079001801017257213218791919977889281377084340730768241195515080690985578891559973826247681606826568760311146644000553288389839034251722886129882936637337629801126891719074116182948637010279747651878884712004108288641364237458230985065283275904666358915509757712090929912945298582496228512729696074266855690436856385873126555453205583140753069366347629206720115020442761713798407475639143245400250092684029431336765979764346029104622933400993934886668019629110484369664465835966625679651021720308473169429654745998587220204067968110771568283737879164113711200905687499529516522687719267205684952544205702516540326267629943625835752514162420239152529627788315915018330380850364484046560785561854723366432637088875424553548020718271306260443798181287666998130620383776183149896047894567381760588029755450534876643190196953147145285779199569262475186350193286085965548360788037114071723247158553787650960285386447592098562568137746104917072428453664196962303720852996119787582687589412380371684242730173770705375590850989162662842397457210669284644821789865846133597302677609583294781533479081529020031450846758413494171532229788512313418708966634864490091780577143478727499197818438299372711204562967246312066504224918567017844757833148652999364876326838120639765164974370493649876609924077496207259175911610439359208901722523532756401156292250285686918558978072609850556136476150423118677867230461926549181436849001895439646165414893480330916999524430174558621780310576827564190967953870665564878067572129763931944330858414705872865551097137070519607657244171137924308782664331045240857810189844681782156737350702432731828902885824524946062786982226435944274387779560291678088454008050263400858077313394405352834114770528280339695447965633806967918061370759763520185805224585151136975057697649624591566072182663690284087235307196851927337800475051258450621589631480431852895959136113183932433851507407931784627007304283126660730587690964113771537653021372376895135445179100198925589266176932094147776821195915682398993900340376155180644399671361034498277125851359737587050086630984951670480633163544936167495478330083908201443233540206545315985064401839550936987390703307748379453028855645514501147919178506988498288145496507735569385923712213567296992409087174144127775342710071360974154282850299092491137060293386360011207791268181379756012434119994988446112531733502083915486866307512484150277020657759898119472321586542659778592271292719702996531730011746796796378725061687045239496108924917836715929662977675984125821247840084200484852099749490879510006380953447297563569433864172054649065915540258619814359667029267210533152769241886219295330297100852487406005089237688109265668825143514110592805393940786751945035937150700780373214170266474504799941758856526729330883554454860482584477028965216213777741722583286955791985309217502672598855068679861743405812979403190811699917682015411010959311177432334337891586416448804443024864929220672354976205293815067665417049685635841603698653331883926667836338364686335655986838714661309994099392390021973963501910836280124353789875721138062704380569018130007418871171878647007582541915544288442323407595326456994693801221412795414381549619494282099706027201934518114227229096760475512494020239587894961145389671939806422559210021774402784205396992095247225639696597537857028175486143914107453688626351875490669590414089256740882939171310546191694561026631961023512749033481259184732063049641068191032341333941073064639779008363352428930571183552737167646597741512718802675915449187652034035398539420842372519935256521845222437276477824128182387627064776782136001615392814808570588687164843329442418002004603551451497932862479228904756091520528390110083123351946233966692080735563151224398964479371604339051172875866495651354743157843437401294455117982450797527774412083207170519311897789403515028203719635553778815131170592685285741224760694358803956180782630223042736534181568550654764094475312658124006497574819614455291460139766797613812882829695139650546672176222440600627232872875118262442917417223603467451134429947120310705625359362616569730428980238438900084460348441673483513160795189980865942157752140387271982739025144683951353007442184495373238848766971971168510015223083086965668654794988954089743359633028064292084142300960230940769688484786716628311449280619813098894206977333871175208754619719066843290644231455800972934632385157658356055822214895181273124235211685150843737853352766055259513099819596932679242130661891106806462313559448824450620097808754804959824992909951606808577180849237576339271201026386293278371009536260084181599302139181056216028707983240553449364112574743830368841463184569207416141830159423311407815711941667881574200212808640223999190487119701873231084521976431730938051790229844347596759869197704163874510806625527111461641220980533208926551672215123927377851394863616898696568793768747112778052288274765910007850497850021716342246558833483547460226175579151259122362059721316556619486805447778307367093180057089735572458851337799021801054882925299792252423609298374103595351557852188567566612930084243384414617065131797644356187423249207255689498223671031536407499701015608757673129480159744427359056705061717297212001610442739266391419628561908749517066494736111168033291246154928506180062873658572846167624757835655098686040071025798667060953174435469159710907126584710792089291668558124474710366722296090648670344259887818358003241704446847479554919066436766111939067146082801289514732700431680473175715140031608958687586837439196877681232654948801448384613429898372426829858408795152139514400505169980454948561073163564679466529545643546036275045302600107641573044814229628220482575513138284987750204823030685114265859928105491165714061465284568039837520535714365886840133973771453093859285788033759471661803987540681740645401546521942932053530435199248945054554448787904650121170523301102680106016947199055632846870970346552174098650724315187082929280365621452767827570862398492864988882027243840734345044395586291104402303007787402730985020579638783956907217083203694489334525630518372680058762675886350163258477378906375488727972782639252209593582456099206038902061365021383007570183041752108765423095485819874932480329508891442744872478524150589356610874137680151745723427924635621096187486603643915906671333579459478993610943818493132700897218660900196695057187996562596012780853260646681325999518911295441905052070931556389909749185350194480181502550618864945565150813004243404960633567867399076429049288955769924369495557420568276714647781162143928795630996091759552106858558785639469864986060962432625582839053797323178216294298088056741327028063393696659596197733657126909948290353272206926576764527182460603990325312237624356020472121155984337184025726851807704637506998267370589026234994038889496602587457396498156971680393976368122727052760991876521574594566004151841731384114185410273414206353376211430997515347663087805437323455879112163893195312317355955480397368458751793534410449954256862210138893308847717819078239145103832908403877208426644307703401978860345509213731311532167524925729606354991299804360396499642105694890503000592402674011651859143878376877874444080837228000646251985203853040707719572083449062229003036637391802274797500633808710210278804445517242710781159648913591990559233267648845775363718794333076187266583019004920539396817339472443615410078874635177440620176174026614943809169056959916373896997390902820449357694081019087101854913826198377752232555912123906093931860159304562460816300571972107181696914595126259278930768818086159699991675921314233240694956199067908060352110055532035505446506261265941415108721980599227497318154393089696501450534748848403025469017704326261544998946798826469968850191239249720062990366122902312654088089369659255467591633009430261951238540543109387034178339417013044518724275594528922093437214781626537724647895279952472147695892689386167086972208281409812416675654309677867797933667936959674196579291149763246446038588925522172608641379388047386203124560722971426146006606493494122016988853122528924002404970139755919370449611540543278321852076325281727026711529914270516792946417374073967077882382757047071320289598118820626680653472972366117968579297217167316067240314711906055884826131806358361553780907605081893804653211436097107715614074951492629603332647660638086337559062986765232189653080351609510267687713380630934498720534096517731168243316142619397454606516844824054128646299686376410658792001170018018314701839595519735295026924807071717536207329943278599324722867359056846323902554105655018576354691079695920387420810800848797205329489302084402431594269234993434079022196836309479775691507523193694983844302090676288116170525650759877654274519990391879448176383288289190721087052958068647240337849260173955750284375745322438114103887504024697874523337893252484046766689939640557307624308681847945700109935203287460830599518876778577442211492450460313410085816989883568596036031136086231023839309381887550104827568493253910218307993793782425940394860191364595304079081238957578673093634225527652842175523156058475452019941359107115032871921297377020366591666187255104424795122108299198000271314470065404399480946863714384979439388786466783296446485382293913966256016422935801811147672246806800975211913333108471397927086851181893702881378454977799046721818685623105205393694384667674166187638193112230699093787290753605849718448924304784817603143045368534143788112791202567630112270676278803536246826182048058096681638687726885474343575559326019668704030972807617913038984164790993118425091322095586216715772938216448085649301254561105568833213554499233316728186005760754578987406726698267265744282923207310274989501871282881495654749215830967062487663867529850415690311757472165981564093857051818572043470412847775417844578905117817533371804213274575509046851884748032267121620742457968652330634413015191600482861262832960686155436248365135528351518080767323865566230608537127532605219119161257298881583431245119451125958801670066654341832175016230290380834485910481250792626055790728448268175949486337239409903725957915347278448989544645260008772369070726420839696141221052485955372150551227646455294404694423882288958200058914632452860293951869045566778856218163960026775401563404969638595574771716899945259892370477448040060500555138605161437760932325074405605990716620780204235477131467002236190873693268331226633840348701684053688274661597551707276561995761765556986395207804476171241198131646201514470861854703806730624704978058915278240742681073603052166602155690404111771436497685104513956868639348971431878337030283133075236162732771262174292784255634438173691940023344005752222898769134218462179593344422335532669126508649230265415025996372847106353958036590080014545054631874660678153619287208635786930477035067822606123704959193102654117099616323937809183431583952208592843218907760697994148135850192406731819374898295617236941396180157545279996360610190153611234781642915059764122004902666333427458965706080603476334788275481206633974214204422700939652397478421322840512121565357318256519356121996936062036135551683735011348444407618272685106934356119936467281497610452693310686990588933238800196533918603557063644296446918569937214057750441408875419188504570763608411276269590103739034376485277868371164497498550336422114418671122512084550316629155786676801940902086533110159554229455934283732889675183093642559385562506552954216938600667934393628941466514516405833944611314904637515135822861203414069908497304116907726398740506828796447178877215625455677995467055268420321423853640692739689943695456694004214755073257923631971158589070627370457386873344989048823979743463136647868442432870110515329212956020291077112631820181362029445241737860143137313590189300716806622982029148492478108070775488687698900587645885727324207787303401485361260748776719328316474040639721891417041901011454693908025284006232947653149779690145153935095192646644821552225718635373219053017338530263548254837728966586604792756905224163753605619707402662781220851008884598205921526143770219732346672726499003811615788326274732503453991255843287797373742882326902010482902503197402577185495592728913173269836812028749110670878579159151848373365967965929464057884799085063171225431920258622812205619291172650583287095968638404114453404552492967545982003353562473361768653200654658843103336927274980356322474864229344598577763156008127527608093105052837961557704436764828281617183622580048428516214027446803064829315847632718921033771350101230499633584967894442215609290201436160360454472710135366812428746325818113408590224695895621792651375149799437709888648153043108518402365145629539187588214767507257060919904899873135453756618836206359919215364301628687358230971656462818930897208933508935414862389683196036616735176605401947262798603828416614452304057502041150433318628279113530318753729974302637106473935678108926400620887388317557979308126154490803460459776482994604342411013298139004449515695989404356124807769093008479269940115458957060704545759964189064386766718380894126124012207111010955715421448451901575815765935066619764921735928581635480486281260437603005443294286139328769938949233001772860844518195375707901133487855603670164874825917423630353625245985538256473222164685449318957902971736482696556682867182430549752471891785976121492881640955370466486452762800033624977400845458749725904523612140831789453766016961343566298000752041524041369315887943707274209342704351790150845864997966595202604749027979273746171505734706467575069425356689478733071935831893685588115894175693315502006552678557183806709865171622116360218260297951735296599595074791309422240260147005564506716255804762307727534393017992887575338185955957593437856777206656724980794956102787992719323042400206876766884218362798343899023923650592950095229846773845637134794129957309173678082562174949149391452109483322707365705276728182568560364984733634390430038116815462467323403821565992823503573343223361226173365100447618968371081852970055148746858790707607627976896795320781829209590095896031811979262333738897418131066604470839526878539860485355113809098295564301469551435414562691354088865850642244056049471963905850712813568646295147053862909663707314679244177094102296889642668175469959441034663325077921256487549080180297320608910232343165179304041875614075269577302274761567529905290203404260598146262708640751912888219618024398126551099393008686030765420654188318839061508116831352158459415485828338727177353890287608956082496611675688054309667843086650056385060214729434744639312562069551625542852866566255398927085998671907651617611050315354664509517626708294310068525334400036420748374465861404060089100213566906084100662211153236389902212853177751802363078449496911532391443458662128415317602367959408887876896892976611327246055007659489318215152413911546936254979076654839511039403136260490875520036329190759428904895842906672295990192814898275670585045065069786031280799439489965138372448196706073909962923561998841276935764664629995274664782428673360092591699505034759873210464903742113669247272600696089023211334421214932131600776296074914720140990679868556438039485792405522911112708219377600668558657713758035491068493097967959733141801776121309928448160066951744991420899330618979986572326056553479242891256117690470159687847229798166983354773508194134545100149032243436575440811386673572183716693156897574891687852002972833440246758341470111668681391808816917308870436391210239337664393568911631946448546526388828283894478085839394176160940958016692972537076907153043105932127540646203605569127884308797143788018944295936242415834617964281521618646780410538961684047218279786067887267570528948667955070411990593131960504314854147235367240673170118999388163043219622273273172482610063102848906705719393451391700522450064211630607855859991017441039130232763593186691080640282801611046665969210148245865547405982299338510987472631001332224062398770170809772892263495209147773494721814100834877677382370419129983393347998544191230740572194823533282296720341266612434581519532486945152966640539394482115487510525588265861198575577242448277608941804238223611735302124563439953295205971244107275750242256535240743552649512242028221511679555165301102178094254830481413071028407571694792775546007518144355205240578133271187386081314530847100821877449808704320671674479006232819673860807650447569843070716025117707651817345104747824371737358295522563247385177764355030968523036725307160478565082173109363246246549223200474051850838950330140334618251298357801955987792929431807944011876250781125849710366465312581223986923520348787921858724050174290796909131656696837720691904427236535023762478705153046071233403932319851340147264748744436289418726220902965982281592839676710610512487701540041186930325024490095505891337529035327778447487343365810159412685778863639579194222001171610042549675837601253769872076906744658855935406449819820958954573919689376977462174167288825576378952864608045657726757171713726401868087248946958699581110021118594092385241241573409718671682952308723156685241565567597907831426268706481209812179595853998495460712450635243561910826249248095464653381488517922201874328166215151357707051540781061982244640907694693146397797161562927937093965681837743326860306294816890760354103375333485036483925550537535041404374420528131561198927804713541983318240843416124408975797072432719123264368516360677923355649863790604015572327277798182546695832330726459937958790240301087484699927801522757673033937844685360085040805599547232725711153293461150234526534624623417756875195955674443057005062364144232812250418059168545496114303425521170917749846955031513792721285312920762976461655960525911704401490759522741375218785224723580093916304314308762599008731964064848415811750412833198024398277998773387675258818116392331598856022286632263416905260587061730304701042932953234380580603666935141767743186681048578993521138544837459874924864633638696747080829218764236910596556123621173274047476734527937228686657133276254308412904470326541072962630753642824695408311642661381336933973788183216514488763232282138336376555864947649054439123111731081290557932718427304308571624129542887247430022819157313158384700615763377940377980317734150536643931879632230134862615696801646215059944268000895337612014089314037286848404713584140762217524690046846452247717757103798247659256523693656579408459862409297913331250921274391356678033196356228478190538933677729058416775352752982927452945373028566709832216750349514850197862832460588910986360160872039609836475092508837182071646619141722280136028511013026824054837470942215825107634222061069953022415955826244728595927972198714260278508761023856528793798032916382720559915490883824922349829145368507735200584993389762623326309702745302979733468201133120696146359600508028408598756338299022946231548592286471992983533880405381524866578827820098157545152439599748101311979310157522453137940499877156608631434742424323519000880126944326118857611263532112176178317761239544372841569671248361835251663552275092061600080331187066475073777090082071880409445159320648168067976883565776538331383924940396371685732035306403614405253433268121036094710392522054824544817661217134041240217492446263317161878651541454912247648425625617944921447860257485198347079988315206323934199522208141319450514328725043234615602237863036040442367772101547846934827729471373914086231742285689079048249935592305003706093363290054980397044167594849566872556031545361272643914445513242723385622305578354853987367300713483041388701083621387604890947522943395944209606958430446138059055928265658335262667207907781206229000796260856431141447334499169772220640455909336038787571147085229190679213142451844130866708070651151493000909376625378492915220878032174281800333168386494358902499232829997254410230144533872239961906797227299751565048746484344279193432300131476166447124717769520777341131212928981846560149018675284672299562266099301718497519739108000445769020014017007365467217121575263189995767752868144870571997953465765583251085504539054445006914009206031408541327507028860269771575677651817345567640258347251340321160183155190143554068071675245017049561705801396729214741294429314249802499133528148098164555201847636453868903689970417031843178063948008471624032264408267404561291299757461958597213081281432443736611038227009457472909431693582699351119113851106112613592803775608731514844849536148637636736648281614290559416961299741804337890288135689385333473329589027214986932951314707062175037333829449101302789814658342920208124677476969507984679705435271861660799064970617939595372919113396538980781702434669134240303314462582809376382308009848721630622377601052823220207841160716163474834987721569315246027802209988126986111380603512453805401415484379751707758513674208194153375319123799911590102418662258765915564530689789457421567011556667847875322201958971500060132070502365037050377783185467606542065735468095081697340624075739066901285459542978378093545487325206561210781428604248238655391750149721520741709064511986332566004691623504594361220575091704955983404923649531365515858836610323341751465425169508824387766695712526674194380638925807581856467245912525632304734396328605984016804647328486737570559401534089053568668712794602715063972638662035750967944134307430706802676837320660169640262937037215956665555564899059835409806935540308113401287691125081927838593796176733391382121734642844778646647365775265748973595923434513215933375035164449906686277959053153127551681390724769185720272038668928512236611269250710778295079617260227325951898490366161907730229115606757752454038109271467648541610535522252603125100787210761001372181044184409015149179935641235744474265796276168587933247238016301066439589915329213573403027499619125549891704891537636625302204089409667001677261752555112799849665641452469040779502214911380442380717656244209029568526649793272286698808144106186268124124432976288521078142786186253710660247830165376824476244029711660863205333596817839328177867521053401388778380527847028150969703961347776944464631683595689762954434644564408977226760418055795813491419520848524400720631991483830749540830282754397428986424587493846557972761332087365958157663390293785291360221284480854031566097419898115674980964809830830953665799862377879074885236441638111040057013251272249176458611047181997170832123412318605612010662237892379355231565548235729528495350374758034496943947397027114622442514848561831863579063402991464771631888031217174524781513488879239878185731411187664748955493653795827408026488963713149555342265528451161909959498073819736554821758172797226457870536134481069078677307078110016385579575874814107363839015814488325277895808535886759906943463801799825313644102646550326613034032691516219469157060654748075773592864354145204388077807926575231562814242071961165661824726951526052577928237466294064414477734690714497497659003757100084516672089415999374430933839382623759730407364393178223971754594752935591910403798230546238309344642363768485627916210223166461614454492642285403326720323223403701837217718497152521349808691373954876575401120140323675771787469277743973250999806059213224903720025620610776877570053310864415819687628082902767805416906750580824254678655557612949438113652483963357077491053113165874806773523327848806472113548791234104852398358332840585452786580188065072498084995065929185521282380485779008318977337041361903441752421099804532971348685962047291602627451869337227129172894411237965391087842569249035552679991402325166058287992927803004665165601184125448556846356506987368976603747684740814793508424132315217265463373471637865876266410687055153838418540346701188412348543414771146993460257034481525614152065804189159303370862005463513413579822627942477881350232592361412351352258094434085129091306406897969433497455503151478125814210850237713914216383917807799519930272138193968935683549645555337664612365203485811538707736461357929337098337192041656134220986359660594663707967067571100402987123742744657984206263072416685970911202003838306770549528574126344461887157537730730431372044157049143285466805834815778202119676724017925119000010572686239309023534434843070124938857277949385969417926978320885294617719440369169680301348528361023122030888115015418307982879827933958000559606704040269660062528122099523034232033837552452402695844311053066218441179965249581659466229498876793868904820072995644842636272115707230525864332764466548063030102889759037995421827649217745753466391774128853598093476463700636733198880128476220056916951499200651696628173841099547607738246526173774390721292604147254382973649632779314057912843613320250129146147949462357114239173562810033942057568619604340425476688734549118525294962555348018395330261498467847288535458242365426556402558227135895639169705028826915680041861322714359193407699475978883018577469966020239426639007166059707244200132631676378880933898237942979567559480414830884037169741758758068189190884787115966026606974251897582931920511808308290956447403259459003708394755267077517253673877401240021774825856703869615673119735577694780620077841054862026755973030210380777832929340845492131806510992505286961118049630739444221975489710115109826263995012122810522604601554636049565032855538286968282688208831051014821119488284469750878770948590091602811044025620441298784869338766946009829401989421995023358385283898383135841925162081042851011563201397015643632725630867659114593992682417278432096862217723734472425255590290601481321519058781155754193863431545288992530625199079077033492090663031756171573405011950886109554836017776230826913861582082095766647699804308635158366076180855102264735301073074158833576759670128065707837884033795693086109093817849435002541116976309959420182469006706054319987741654117991585689933276773480277050949123822262142736560506480319360143955335659958031097805107764895959984140101528476109119644447731656256830995653042967053699482588119595895125999787822002418951390772955693335131069868979613082639518899655210576196897186830652936103428597952574198777888853139071508529207218729823799680976390729244376494248812680094131033714781197104762314069484384213239257048676966442156107493842910192351197897819721820523836231632691437349811841227528207870549690969686140399723232881037602070721449692932363075200390486487711482329932941457324416526605662407678331454060940330253110378613333538390234758882337855385930352303625276343330233659025664047503040663873104466310196227725729174551316446203213335360235180834862449407826347806432445114569346060881532673060285489550347649323313050741713407585300508518467391422224285328592024923345909061001320017854613266087641969194570064078159456385650993764948163463272451182703718036884028385551744857241208204427582122425343024376799806960608992558951039274300129970918801190099208040395505841665357135611447596663127685133748453508688854506207685269821556183457694395748564792223417183914098125911357963814117034862239471034282039724584517469886443358978438991679173161457763172253960285627168945706620694524945160634356004088010989792305420585151650451970815480287746917468319077938931863344337771705734198774305784443505702292569849028803688627599660059355068288805363255655213092574907817357917811939688245036001222304661092341124462798673520103301544999481949153650528524303338107188156389324167534266836990242604742834959645182365697420735982624476749789769658414183479020847170555473053246453452607104436021046792455717517783870113991576836336666335528795188732213207765971769493093339194780862098015421057335432111018127204182629086497021622193530008428872246373377666117243952835969393037694898007329838125579346597214367070742083900331675813589819446717725297277499716004640724984283888289317696268663155547142015434293897026633199139102472252849408962717599218460292290810144284333780513676087725667680557134253379736949696549517042961555404706937327001844977757611268191917136628036309236532078647814671849813649373823566853560825567154820491158621350509343031567854229060425276782675731269222895544539116998882309332788454635375014520822997625119733750661442363907347321612941804453085614697697213375879039868126072907772473749583890745784522993050881877352414779966386371143940013255626290209754799564926445046304774481224364576331563568161109352440256051372233781786688166723167053606197507018743466786534828488034479373045946864072927748625200277237339318586631744840148942284647424591135510179552816920874151080813983574034374473200424770602875413558683913123580428230079845401064931606661029079244379375248411262177820998349409103853095463666271451318798802656161185723167302527364108050166218352630527402430816289806816184443654402474562544670879530589672687439906121909898172178398319590649252711266354922874352209431942209551975435774853963421075297517201648997735503962352173546765187540951954286374192436092076255383832463905222682484109446591672991901443825100631920119406381528352575795780914234721860856303367069980932380556043701491823070663097606644162566572673851796301237697726968361983546085181628800980150537638997508858878801606321775132309806985281181129322614925468768738725194477029141301012133741234640144719323107313533362506650872609569836242943456915252059303898499499236237884869875625495364747354755693144220567855835028217649167347908039063380200762983508205470757849766900170059564687854856333894906667659908364659429487954936467272455814118760774843737716680675117458177685351303614500887103286149077610405950308955520984480026962433570946362590498297396181643215299659930778811249401179714615724089708335718304484013691746433657863301993794192040635551547928196566094952451607867799665987847915816862920959839973364710026133339888168221358291863834705096665371362038183301727781328443522642400824910719501633875924522612514728008284641605101753397998856488136007389632429532415891421447944474385207799026337733696105471654381331966046096349460520453663024749521516282024509902021790017995531674472434128817361593055076453174777364657439155218321861788474705583097565293416959666446006491778452930822611322445159703771392843289403146498553269920220878176809501154733418868638903881008946605381811537999163623603715691455558744617620418002994959974508164336877252833715091601073631266300377441859845500384932620652024740045085223954404210743397089363882540925310727407341970286322841239697613289009999053906044515067424018882294385340370018049651917815602464683503217536871113090436903988130516156355783458121273689471535475744500281823182909242084544695973886525657677193256127985597544256951181041730026960623636282604629358184898026899792448749605415021851887739822904824951356860880284720850871068649181645598799728289935819966092163063969171722372955777112537594246650910701876783572075156395717692540026160719136498616346258523253260523719735011466931496796010242945731139927676528854317567462207206877806678429239424890121052943121474970148266349675664584088202629469430038637933738604780604427888384475491028114820658744372922190468872111169613717453589795998567451237304805488409057089071696275665684956334181569646983075999132297539635171147069340888328942399476689996861561798765653662034087479038531047378808534896594652797870103160759016515826400098701528955894419365241653669035194843652402429141021200475738771791098486592839186687439954663803067351143066580712081015014365971430253239371667312986768587823962871616841452770344609880097848530757860990949974465555315884758650653304902860161199611784152998604106800596033096193170887731211575031274607307522985361338861578269302279906122363693585227397044150434169637291552746451622020363372556569280533798543793651729437522093133363213666392443620988034776700818265508343546937610440684000592204175443545787443535298880761500082349313790483182095180801492252424721569327710295279348377629415951926434555502320378693782404735175198382343346780740486625930119985976378153518977621217206961741571040931475480193861265907416430606592600446701411883294044687438673936118295196029716734800492218726568429623220234337256119489583174853475354891992458367514345639809069743704365647460074060074953370839975808173602398188309511277319018573130129903829158243925190410236328369071151070482766468462931052459551805448346905748846492862139140221657484381378012277996249931955412913583783783687054819870379571476210466288772117856183572788272912677628881411320700714622150529859567681029481202026011891881868788992254750749364089742490992475659040857330795749679400232664283304572240599782046518272788671764310499850025227293711830425548840359799797938314326973210945938873811573094215127696433091406647027132814795801948988230671637570578684792380473720081160537443101725878804761338343802266299143179797262982398029972844782217200609477319658296752512598001925627478018525949169899868133106143700326354236824504945676723621336269801946633189509899347642555167223551899606571107737124946049212255642929663259882465583951550175317018883181143305146780362643222509894509087490711508335951713776278733660153217362396832956151480484364718938239703288141409916836792495746150856119559056433292939290379593761736550063738062429664148070613535587195103465271605580826485317722770385078086357903408699306653541137887347467771601461236759008644148522258038738637973485375704276947667025406644824520969930868345120912372700708171030809008354228879824566236636289805150603756347903234728388898360882738652590273979085892989475104993206627512879849433825979757786490047999103191762209390140516606501821956049198055047264847762415686628628014012338558897685698881903684524501231074985224130641062509216956987247124605384927470236903150918987748491619979522646237492339825594457366499051917528349401821312664072751824280256003508954065123303735686583626891758498558464495016984496591171998839465942469821990349647878465956978630536343777970435700759440213553739580089197450722765532056171710863569825353776165564738890015326506973448116696615980884525749825262477085372876106480413190482491954093419210588499615713878952571009190669969742305972800674002941167463189884352256114030817176479326993660512874056371464068052735154067936016245374682388641108388324666257887061847159300886424121802499678943228482167188753935102636122326944498899723257287961367838769808218443524960111937524239365443704119702297096992272035822652337360206392688266201627626605822402557577733553516537554806074954971056298462453933226005636536832078529817077661483737025060313375085141265949448997755989422875889719691906396723772810500657179591223484286999055959808444293816570159554478557215075469055286901660573152096182762388755272414024640517378464935044835567044455129919135128363378963808964590528461715649401535412811094565585224878689228716718690625595359539528906815199960583425832772609468717994433942239330728494787235510142768116056267224146853825361478014485125454750217651352240265677494059607451561617780953702062006046381105751728674670102866357952203850003308770706656807637671346991655704916524051989772672538699698561109162603963098261582058725536570896761919856924869387898523944830850360103580267585457423836665010634121483885964557251582642348874504141831680528309210031548607114404780959673991752363120640792643687644266983861196103488729433227795079895514044297044688185126066994121095186127953481899179176759613934341370510656167376323808763229765479010200756502855722210638636239719043575600860327286075946444115209820804298707790659317368004556280556164837251309112598404106555842481266548718490057922101437476849288554810441202660450108092545807908095516698744878877185979451238985639595856059894790118190814710799634324333126107495419279380297961254791087808940376233220891402919818221805409902856931274578043787522341764953900354701531578287932838440522838645420553443661437083537513282174969400318538095062841441827475202593131793168638427564496061976975582091188836609801502530085777649991443359740076344612147939371300930580104985080024805730317905737958438225255506279580032164005666950363207465295659687017511963075474984165054566799533514159083117386383638827508054777036268295058547587336415172592027503827659051485494651448014343881089260338466030291313841692824685540388443054129273317995977748266819302930172699510783280098710691011182307454612086964088449295193628575805776428891214230704805172555670168404675053380231026319113035219618046394763850200102394371441679143554024859335161802077153746426833721289841254554200345694113697292263160485376701147889899824017205936890175069671687151996050112667865938142189701891903601517303833090492694963431611055383394851163489787389955278140154540110271884112113123639994402184685315926394629431322398156503376633457053479761556349659779148295623075921392978971640227431069230341632689964395782886284292152918579014510935551240913023383241722839166268295148491049778292858410622477768582991795988532756775145706024914641716893514250757849237548999506664708124505127097988771635427896830031575493390402778076459898941760300647504533958575125591871671674550473526783890922254700806537250069820049034719844674649509950803003294096844350960371202352454584599728041574926494902065848650688812935916977311753112905969285810758523860098833936997067889408150382595077408674905903241719015426874718584587896786449463214101437329757058889495138330862277696076002970129413455555839631933681560188708475288268745250708292031467286946973972610609963009890114920552336965004712693606435475279659999982156904071368110725878223194608690191534321788078019291148878942900303887727353083401080761529247183438516665577944189976120460589518320247465326402005206712838003142217888839387457267904839810835903006311165203778910991114730513300281128542496198079532706470636882383576139322339091233972425702419729808298294367079524533194595616266139847660421199636695871723439755377495045458908592383405064531231652594050382515014731733247982990613361898937097182900400227583327139024821266358705504915771850874096746925079219965601276072976014217277132956452449239348546896183004887148900211393687293034420006000506806924812074912868597731024630509122353901384924331718049254134704158946744686326747245170200526814390416046057753023820746642117308918463286493309307971050658094981350480355322816538910308480971314389426670609987904179357106096686109269350969424783224721374978631129302985181326857538483153675015601595765134058275743091597668135520579460119588915351572338946618945892589348125723690282346012660734474679146880643847519133117653647328965915693914775242815339572992644133753469574923608487560951800635772365336777077274447725839576456824612949670611305638904968294775163021637909273703741639968697724535111968675391010974144720171077473739880736955074353621453795157837846323502641227678407349554511240946630567169017483702999708397762625470112662443233506715495798550414922242996714895525078123416891438098325988351598256287839304585226643895250261130532780609576075967525889713869785217935892254532697469366463739906831014667605518238068503994952437353944520991715138627799616167354697501455382977579261642637195393874570560193922474772302890693297767605861985026711033364145875126926127217451509156104380796749237119759746697258410354985966094569290929326613384111760222950289442619859058082885886946011374746159658521794869934227051356785732315121277101886677031690198806863874022651566454843434067849115580860777356747380097565581716076904984307914766021371882717233319496737176432242869333359663711960351324827735815948044756948024385360674833178663507516196373123694841092018239145079025391999750838943537119439934954062501187056163828200517590925826060602431038632055394110309923231600410842961913851176426682753405131640774240424002770659545924981199807310173692222315124409402546080927701711942524568960298320156296888300672618260714666121220060541890219747697337287920478535776822643838091601320755253919997292668711974016943072028304563620373417032300603035054055537272818451289940880756689894948808367862618937272802258947586417807386749060628213303760596814522567932735258261431230520939260037033895726267200733302853141867741802488813706678839207461361234748537236763906558311449059934423661225349782068557142686255269095424163263833577685153755520905062919847103039818597372796882459425717220568950035897212106759677466744328653742582087987461415572164106390443817543242643897473388955050760049056824004404900287596097257041319822069333542642170909496391946288531143590124736607011645668162109626451243941061799958375288819998302680337935037264997066910525622902648842490350622877311136997107842901504862042089523767023819558718294177083913644580794512669572457650623204119208271115182552738626819658566097499823583018512241649440155592069070900090119430264473615492131235789261984754025414848943790537504794754192856382240914766574732161240844775358844556942111504297647759911195691663821917757751452714405513813498574737135839734122649948636274345433539049143919869726398370454951708782211319734810798676597974143206952449375512928801583359013083613999440288424495058226967391396797609214464561768433573677978973517173161146788117828484895177297200916853591040098711318350890792639276603704181864514806073010428415991721140261006649381416335552860511337590265158727466366740211315550397402930409512006497042566527976940863503236003798568532968777698391546656482461384782058751601657199378217805431733572436617920307349297772861328651426946194464434746874580156392789650198011597743254889484363831231111833489129346867884877594831069266566893615307346235223808727795469646711762578060333359768524905740631941591408328586644703566965048893378435525049756252653406588018145771256049358425926760410444740114451658236156420203272349533881029919010519753098889170065613056142921043331829397496897810253198610853089633452493043268345364769398432116322654261144230245003689110804048329721643880173639500909059764488190499887938697649269830314506590285886893561211476321348216579306194385552064514379952299929028472093385271050752956532445635328911381738251894057714958309247158698548189723650645615716907013965500074987610300457519234143857381340791533049661948038627079527445013485315905638210969157812286468335188115917367328443959895254480729883182527237095013816459399408440624890655318706538850148680089153872787723236116052022529797533780060066947984621643367540887278267834338223158393907420653991089355255464338796017555748803805381504638143236911769906417960503826090128686142237255771120218474869098516690379331176962420781762212188378527022747873664188571773305981087405136930020523050053823051975690729615060592027573388168311689107584614075605693271470715853136422559768163701972253165615859295253389233114915350716040999374356937503873666963159666142362494534447812223025740204595474707700990431899659496381547216665330787700024845016880561564744591747610382612520649135756391368416508589055689126906389265605692937835015270920700380633198251248770209596138514908039834904734627198171957243279817602430565769658748453808039516533493724048432558625634499302613158280694643555075338558077230619988160947548407665930852421902167933235287872668751654496543257109464901837997790552288009020019728706823268681939263658854751703736832293211995802126860380570632951482760374775609689124055279360395454868458953005748161972993853785294692919706776490531739584097746351038761018514229668785661379557100270231940920055760897011871330048665382426316956207089780882707802714865413457524007906390249027467734907164607380314250279162477344520405725491819801201472960095121550547244669247830898046396477713786026018678834357446825805818933867865612959533231568475905120634043700503358191465124536901769444035910381897684537454303777718760593471359259222498842956270256880664045959062960895198303785314699752567504107159775430345933481389219966817722963302512438053411612485059907571955717030298126083990460094445608554670060001835487183189373478942399250292900772193675462814035913540690372490066673351811308396394610210175314344819043370805536667458290873591593426519111277641618030327808324876973713989748185839028269411675028576969654577652709256552908241837675939901062290202499946789316614785609245623079527144486533275530922368147838377256256787577192701982329721757532729533490592755100568764847953371078416878470887020092215295536924822359968013150139771232328750540928762185973698808872486121346522551471216751178150935352974441899228106281334520831279809758838745194798739760884625732905367387234309992399519618590414054196130821231002020510313569026163759658220908998974759614141380738987745651886046263668858020212982558928496601830257691937229576095669412133201250080022909122553417110519185425029151030153517845979327795603178032993387633620085599925496782811766537593314934658217521342271559174349092925552265711880114567881060065412547063822188601281667193032029935270005814900068039163717508144129922280500362225410937187776895385389133442797598214845913503353340463301182751829571011346244098889044371844754107272348426490171778613702922783821757813958539680280054992017197832207827106229664325981118098609051328949881344551005527428890343579607817244466478268965733115061131858021898486225821594083759094536670764375879837580418887995809955209922481980918256910105089435385674772108624878734650803669375846860529296020820838633915213083977068193476591198574389242838673537174166535366976274232123616808880762058706431245003690703111376695558447072613001387924972278663736923477806028307718408476461476995986655819431875147895324571767841417988531916132965911475109882236720820392547590976155428610151163646519446717588254637785172690521570919870623381055208287534915336205001906790635569530650213555091380486756529639216095214097110914712536712999604036869184084030940133060242719697250127887672721551855819182995715754344938171764274824378929077827613490190387183229448031637402964767294184546308522471940728528710284501255475341695282324869045782793204497557990119141542456614229987761261286772725880879346176302224333465189017363328630311414614333999555619277921111911707642575893779052012594111857033987292062792553686375345937146785816219190201165780818519990343238445623344540309331116157984860523780805086971487384362282239198786934421138845939743590454168761735939321579894627427125361510117329929798687346041827641631344774542397846354928728927642680303602601689900942328690333612988702926731029845968124488127543373293943390244402852266117689572137412070793467251210437173330759443728225159573700824412323817475282162088489251162383672684378255940197191639748052796088785369110079758198196409054139389907505431740354036006865243116895098922878036255731161602479618540535653741275669573254117766282136775268517598656530948835829441463039948035528786502588727649497411866677544699255418769206581768529898195238727106504631649838547910526092880736060172841787043932991351192116463127104413551473994302875968893816519669789823921244027303496273433756765276612913921917383597756655493409562101815161425396743656137878101225335409471996991448871819000255512181395095599085315305601527738624389240975694128571767431723800352114723260244283198722512463774909581316701861051002311701487207513110779489220543981945325476172556190211888937324868015583988603213332897307776322832122514585183012947740697733679746427339665069538020125709556699743559903840746885047821837959639763895145140959542133640182855492473125361515574499019793607791514545540694925208265853002742136280847993814050150684517931714821787059490551536524532548683476945133856672948933082016029056972829645222788453611572903298087725967449931244118178508785432930521450678871815554305838643822805996779717539852131153367958915500615964923279623070650296692814585311914793053326507247207492745186103037599377296992122639867172637574893877462430501356870127514291130260013349468014617981183474046835132021508109624975198173735521687425197798148453001876190817982780774476366288440665819050596117111664695146689608002999586088807155884943247689674936526557607731051543966485903267953864154567984498155820682635246424882867108668089533454631060893421572494004824516347519212021482231467750000410949514131010861171242066918446233225054742181047035138943894886996900497344133141005768076345711938220220478045319603847975908991142618369795938245598116927272098842169728930295492741358913679832166425503764520271036301058922905921722332774732094148881233196159101344908032557318196551906487759306009756887095767613453194497813481789366387059383601801938818785094327043591610899856447677863455906922445729916167214839869019243971052228913848800767035513867851771097553994380975151976301680527515168072018411704120278152473371995174951234702685097892216784754707486150103097743394392778649414076901826521868016463515570411376683170674569869956828122453509194894820919608436455297516024439559424333629436472329344036021534379176628201901996659158027521863282108135862337430332572691704235972880806833092248396594041578417857033694759804070709427490283423902989590561308869686117096947968062003554695416323877494555653267202302617944931368962839644547519358919387794022160069940853597623726458728264153953567032674745063200862693604358055735319917556304923730394670235796550800773456762696471833615550735219604996183183207832951615344050073339654346578187562910756284859587554690917949265158047776372713137698851980023248615914640040921229449235981671483451449031139526887847316618644833803813835533247692059456670256791629930159925698758209530016121688142796019032730798882958484086932572397737725943586422549939487513036304894758078827935445248872214376318891628358193390430362847087927489404915834419962584091068156164088479551410235850410451744040127611669647895498497037629127522135546178561245890994018613432065434519916943103079037494036314240971608550941843597853545288777344267725798333119040395863405407703922829546490541764515076506772967864099868497120262826658138915154688641637294056099369326004202529021771755433963159987013112599108602863461489293362691412939609292049970102898811261949555220409695952454876413021239648802348878173322139943563132711136000295247621262460110880608049001870467101022702474663555239187195429486378999243355866976206795887739844855855859407578260184798858896929681689882938934123258741947145293698259317002116088941748733108876348714108452743691611424932614934857825263019359243246612576827312205720679240289600025772218594436312753946242823162282293480776043227340899374332172735792419112495812595096739121605506410543649444444294292229799059776176031538405683761169534821076611002811998588911475010297714837471507670790462637476528436439019379883503035586604273208836371269531058254503345173450125424040010791705470466933264203421079917090792012732797193167761606314194444230175638457550072820727961534003151279494059802553391544424798284102243425875097880808118988463162526780866866870403295631652930491051977788088347129201878589761123317206404315179891571213101170278872566959903397920236350514919005788661761622734237743667266113603349944067544281168405608050809545026244136832998325566104662537931755584863490547524947120690126202906769561140142261433908869955168040655909876307074843191277990121263052140966303446652013075240475376215058664572816248297069123224595774097923435332874603744667812657463627777982760816303050646267618679964530438972660210218943195362676547778591042322326821784112908301927763300074367454164765719622929267117134591704231507767898700808288197507806692577965402405859408291929422611661833491375778084500160749147257905593085457928954563230388963824630293947629569393973366292435315917515398121858389381878961107365469376697153539824493832573230112715793719869207243709025379120769179515826803224243566026871166618166422227231469279687642274576262260728849010784663920956869754696655927838757382672406622832081909593281686472943745330268688832177015861876597605914117105654881934142244597815416950008954790746271550247831810179801139070568019724459758872882243764643662609572584623000488479882975947553300310464512058588623241987549645839041037386819903333124268845881397751203215950372793919248939880923887960324603191604492543415150917600732004054250695685683046776236545568647343732605585025916214502821038331676503324786943808862237234438047173190729883734830468908984743653419878855396634134847718659032880486925043150215080607898994500334143917362516310283812127989898650341674822611670674782650995088557744331363746700955661420508042786418083558105101894629882472338246879049234428362396386949914503433059982346828792511335837624792560752385555724261591089770191194592253394698278181395960997120138609952832624856355768904297476268248108568144549725721354186168253693517802327581202003553536039684371399702271372375171372822674890751572980903487520526422446266266777859088006720538021068093007919750594822214731507097631013484898194594239063748808177508914690810414176198654551219703971733689624652520174735658882838272436151548909049032151559840907937806577858249751355084022682251532247098564823056013484898522401168326367824599471624040518738773165933460511504296617852411211360012816227976149606199009340784051645373120007858412563275990453403982531771030527624211278593352059784262100215031975802091755038190762827025885079035748928045762641958850483126374686598727791655290483989953117586855240235566097019934993479737856516736853794752068551033282525793588652597060566210520978639436615217167725437473752298277327255280447871313315071715641158834065113203373075799360569425833951231047175871342721453075136673566769382284411389090767634779115582014943430970110564905274220483228255831897468974993109782234853180612035470246234273246800924357185240982280200432059487980205447424684041697273922084788785719084226584880872932724725797853079311236196068080741549081070232141990478175815355541191006329958670279605987937805070741394801539886411859562177762375536519304663582062365015424561108514000140200292544847248975207377245548327953804011330708364059923933889470648564255420098131756429871923036835260353424741286895989178825424750758364910260820596168363753226971814365728447457087965687104126423364623368822436592989835731050122079722923403616928336437562209677191353010985495217912759035209302631164065740421573480678546195730452522240999274205286854745263564636903084287633390519412374865171899423395796935421535269916922094179269826274545173352520799692632017654980771291490760186340632854844022404891264802281220999088773994504885855993681366114418490288371719493911371121879089128198612826736881931412603578403876975577238772239218773088897878082522695820777639945723288807763453511471046963803205150622483078216425861156365455791339032325517885308551885280164999500490091226959541420934318444307991903692683525326036574240490416602023957243678403601199967807647496081371410133597251160594334275385596970870150438373601861351867439664008283522702813885820503391293725595050267941516268494186432711433823420265551666335688423363230592928684914071009301679773948206444518256396886074790915720636772735048687852005673609438525137792589140033673235030118713006550661896032093746772773064157916155216628454032233055022708141019423517091637573519698865841419759585410171196150364214456227925214178454540819232113973891618107849790864782933594530451638818601516847404664517105931922903713031242153361103325851422919107544140648339007402295489625183180071825924901529006054252241805158605173130178279207233049011979091558387032956068422181879408071326340391832155916778441823645939167634217182309039680267690421314090959002065754514686600311355554314441466914263106823470060876600559150594710326796380237838693845384531622143605927610635383478071300633277323701134706740416986711729349103662601721480970610298022566063972897333958527065033357379305466164532485418529411723375208550674603201453557394606037203686303015594583486152180410004635616490695012901341139269246480750282030552678286885898581977986339961391711966870537600000024081276559262646091097177969467234375437709009606882327559615930447422984334539280125000247018675406180507762211148414214092799471622680083145448205343441711834725453344246647620793672276543137482803164429814841028738937625607533639090725895182647733165382884277031496093537312773307307437487533110476014658858883940668479975997858306179610669998503331071163947952143340996856221316436775692368254056168333866981874419538240842737146828924170516409561741577711450965096194081437642200695919537409894437771904184242644199955495633406238230662258323995442138787102156585255801208562874247914990241103786664646611144890898043826806330140286161815962611224634182461358441762808765193753036829204971410156502970412464281771426436327296903397522131143212798857516361972095085897738359265923944186871580172601876313297551843613879237494412812279328545526318928208784705341716096142462591005553211513294768697884527386697955080898257671617506935246524089117160866898438126646413520089023302822427293017306222373697688764495432483139311355338883189303565288544113759863527677886509418564096273240994608005737862018824536502609330909435494700054166739915553801471954645691303704798054251283620371738940727796252440455955299461724960586679115619087751408053530686972724064387070690800748401943475064046052676044159628364390950208649472872128622831699600117406770371166821302631630838195854505082321564054086467115586375567667689537907989422575173432359100427336875340211385151740315361765462433364124806271473704160378873905139555159320879666263809381865621704910051892050759365172842502650927437127841692610708585060024009189488756196508334333006978912338340764585859875608608449934728431358996182608366020096835769566924750525079742108933524355727876594629001736106838042662714786502024442040195773928386076682421805917710026396255747101818648232488058513454332658546101818414586631783370426083962052625705582075291400740464776806692977536213357359386405158256768633426179032484787915489985435706233668970270494324894380782352407452142751788205246537052789961742078503035670380441581085609758597873069753265939451985950713351971543428082454377801797705296730156204315939632229184195578754957661470147979293730733232616103614051212494721150095350522832855007196263952642261884848418721729915852284707186893604991589684499377704039843571080462365287083599737051872120671759848060059480319678104556418303500469585884842441196477623107570733348209852099046319258030170190473552326612432923820640167988485433082813904158228168022638834031550377694675481496137836410664154621804646408940681325876156352458570547750137393055740996791766801445157466294889535128652981029682590896992978750458800161821748320517443017140076933346936933413040495313412073078900333670830309799590481580075717401295421970834197878440768738508342604643721357972777258175416979485165087410648911665233420185441531134995631103072608944827701178099783350606691036896314449579748897976150369272624696620914067587311662364852562264513164377721759960248333795826987749957936039394091712680245840118476014676073002912677358125139368456443233335406284305961269231058201372785895960985016459230930639397102179991673489293882109736185440362475872506502690340513318476933961879158941403713748284296167668813159627194266806763820213486785311849634682217103696268549219530477341164755166005230289462805910707835043333765810623645836461281729752304328785124933776983008691855087382064739214423914321706734655328167393524371947152978653898753192257647133104011658355304608646977119146190489062743571448064817152748533373022948713154115816729111427268060201220916391908443480940414549644624309857774003350706948914448272489690172962221984137675535609410510572309884960742705247549671088845155981288381399675163597976418441792664553553818636917420812144512978903897512749640382111638338676483886930434679100021235455398616597526587801076399091719926716486357104454752828191047058692637879736376229780314839555846399268112448333898810125670701934412417473312456055776469208184899262038507133273342868209447421235448551519697803386968540329641589346155421353473613243720939642320116500572284731909796623755844762523870379517959242310218171863978788449059199775197509081024449822559681975349432142905995645186631120588567682528062891914634348987192425948321848019002365399986749896520871674359846044194836737586638049505139551000929748576785175542016087942214255858580692640844568514396802751045554767751838679469048898679107103152988535751057102157973807535680962509957745878024067996810660930596368222162683742652103498535800008635308559072887267712477827311745383429201328546677977395976259621940209921777534162224896198027575519312404894221313738644154659942120293083283355407989437833966202536366051270232134410070556560282818953001632749001535422820768126565368952413100821971221143743559975282243893846197882257168124553030529773986949543605189786964190047562493104613548124633860317197040621123421313556218595947306474298482505612175900591848981841983596901007951691152333424085676928135346950184054602123734046350480570340644023835846761629181089172725877125616742097142253728755795990192083498913157234736301913672645278713265522208589493051622710065190580630094860864186295526237870689282668740421127154568078571057970133744538004087751328414141817431994233373474302310585050073190488723619050173994256042773646160157193132149112046005665789234004072082247837499379323120256614102716530799593176225323786593066330916865444444606488599495709444409724590180015118099030741905127087075124929453104219211952358543113580256950186172852993628624688022378975151678338701556388817174443974591150515159742254076244759295592853734722746662215201363130426454867079968773370749273991148787286715466736654045607748998896079260097199569235134399763168554219355098349733928134863054073120834184338901327831588586262327596820041222429055233338057351807246894532765978895853430313729898079196939310953819524999364756149402359333332236879842290699991051662347311910948973491507565525171527434106217154587454753323721577265773096135807859764814224336183424485041604286965940361304396087098152296495063559726187624936664530718024617593179475474157546704433293047933900009449781555325735371626868983717801364814540314029812818847070575635716088303654000801980833089042579343092792948335735765118436305748256174730202860127424089676241691745055663840412274288441290710505465316456959198920574715425006513918116845223790794293581850100983849155965226076061646309102548608920140891980025348928478960422518505580192101493705805726823964486998217992898274072605480499566815190706041935878915882808651150035879817229243984766849441250816417441231795059546981845178069191819118096306065121071865801805709216768849423551268754767175303165816857942744261631008508080840396870926515201244938373039242790986261156731602978905780164767020866374921692663019588591254779262473039531472962132075775919989039198752828176705467359519448080849899826716825645224748898668239259002336624018203325328221448949045279706341998562319568333082618425521935369417805713511212062666952408307621519868810102585942484770947207059641868136770493762319817901549616848023882918175497419605156357856866073935690416564852755153042069554221396680065586789380159083149622321241228314281830599913556531697728523003931309997431082381269674093479068207017814976084664133148077746183888379852722488602074611683961812784830951224915183803224699897831466943548110813945030448881967400464051328133462573377626678107611360265363291737211843356935718280427791306845548847508707267213002025311958091733843502092971057761186546728388845732166474312919570723307438879302964572591937995000512599075245650976280832364328298736321805225477007603927995387882991386090276909491736006478375073320407894381064169266292337578548823038324219266928305552613252524274493646403859311735245172216912013116236010042039716724540949434546937377510426876406840072900707079284642859394859954698643880146781595138058339038376257163748543898110474262286634586871833164697029259699921857420890800484716967373393683610211107437384850699613165005962275419434624341193015701405673193803026976158763162974121119871598652402252252115523588046006920265115760752218828408831354177580183725874261512771075483122906637356845557926905514241002560145079468946368606232981209050495792411142641951073507514289911122278853742560492009781379536988103507144895158799205514047187879248762964683971508839275690652194245780661690388177277742195762672433632142231091529318077164763323578597972763359389559830670958900427407776837695784875470743603921623791497395400043371060440237760042031473252880938478906619459397592160476964470921604681023130685533593607750043978274595171737591213327474627014759516390180277197116782371582819353975771934998701726621886844456592260127893964204287372426872563459950282314396728104853168847033550920870645592864313822531473362487837378905414934433925461363560361335241472549979851635493987306331354158289608317648137464983555946418730310102118285706274648705377359188528286813030070833851949417910761983842014373806104003150484611355738235516440399047893819337095814486483777970533552595450405308174416733816122599225909379362277438186520979946216970076475874590575436691870312929492654075454440428458510473777180787478094091616991240535525844027895994060481201599425431715052343435998451387898531099005428820875777890370419096407942352603723100557597901492782250928766295960642279095262983929344123062277940206839191152658806285987974638554052990092343467004743500163575478304278340550509927634279059229453297618272513518712526460535596084260883661777909714940851125978357578829452997827566363091066723031938287090761338089107367928074141506451038292065418937551819378480912720760454725705707813793643111436574239958051676991750733569344677418510387135547278602039729949790454028656916740321714910977784096953928386602998004623968986400430328062555826272644547974682825124134906549425630541286635673896334495650722511198649798693608430035501328330017363983201478564655082528397071614768076980893814790644341022605330505156365303522225417867445363126762255004246087379596955425447396560763522496663208805972533950634828176124008579589318943264433582436378962535647548432966296216213345732180381578010745017864433639622559883916588131867220094944220278841321987687441812600310936680049334115975342803248505424663514772768471203031739884967132509548354325616760128253129019903182583130401812335048307731413114688283531908965590090270728138562621801943071266992416566347399908546047739731805362437804242388354023603209718339364330543024978371727464740643132623550503839354409474823828970895033106887570724530528791470691741362832825704665047249727485763431296505656564386667616064453864843981611137184655064096739531097138225486710673393262068453402659130690171658272082126936006984636713493925499277960468227894965950212632463755737649195166066625854804874508368168616608177596034552251288505130896863782004505181197146335513244974874198488661433604691034831344288610384842384391119025556269504955185683118291482511079805585246409800152952133321476335271103220613228081244603062455169070634958446220203142074721894883065797929301301977061710043538461963246649029814594320695734263595639935340585139226249402699227848315408919840475677821887000545810458879742549364831838846727664486506581768244932603583807383061918284401940971906953084465750339709309986570232532100845513950968004598445528839997203758228661996950840913167877628235870503851992862399050677210004179559900097777643718657364060430454834118010585957859064720407369945477698073863998981661409386367971276609264803510756955913613971645892833374779795829036536310026240697132186789367231743193236528671612245693025341388361609524125073935843871735814803112675767150999306321893598951856396846565395125411832699020623978059280414025222575014831008238779639175515471108338346015693782333323309655589733984232889340388005531814136965085758072145934785156135784224269978442990966874794605927244607382552856653158941042580173923861098025530823903190373516765845866552435466908875464851987689453415183152770209959900029116312675789101327751614062506772069812853228239788134239226779659573178237516624579628502633442363626573613773585588748558162902003159905788524756892040598568053065169185368569556563562346023716068562194009898797986700539506087995155045329116574402632642413015346468520472046203791580258021381711061574075463118724466076669090559600170818077815755417876803414627763073463489792976887610301156093792582763057355385030219192947093200512141707668843202024878579852970833045243545266970431654535090954378387465866317575895810827652655166608043921272321608841533472844604799320363266804392084396267608496862356400053322558140524919543627712706678414629793908239128070086907740558652617079216804863547479547541625957987266066574292485794865820095732843136069517029470840375148566440413757861722185969188760511003427593592304152847636617908065610074957297290409647034942384137529771245280580686654491892532753701420220776193126182404983603370818610727268142343660892957195397033534843485761697823679863986602706595799634834358343932398367564679133333181719101467493342621009882446169977512087077766055224983216796207407590117876488096936267375846961686159000943026894750194581873641322148564159161868734203529363380070871279752557834417057593129309734790581516678628600149177818212430833782362949188668332979012177150725396430524734818671485646998576476378161323765693877047359863815068323675406469726253610185336245169194909614417378121353138953752835325152243150591033698835536229309596510289069922243966426536917768878304630816998482189833589579815791883296042410412199241316910378881937045116930973334252995441447574856882979025156651211415157121276498029426302336552384757175902995253633249951667543289080383181523583151419517802481417207100081782315197588324872317278509672323572224051816870527784305172651146405305576437124669932957404093491373445307518128428223529687152163915537509900743180163754830085476785273508066854042103451008998555920850717237012648776551222967238052286802123602642398939892267790078803150144139994917012891447838024500576999119621265573343927108722495445668410229103203632431858759664076009259290697945943310889084247220690035816109497913511217290490807702538628506647033140464957677355938061519319556920956546816434472530165900859168682022276808415238096831067777143421457558613416039275562721656896549831091103559758669116645421662809485603313485391982852532838660155696092044009195038543619902171513305183417117638848696789467672842424247235066769307868090635171862420826817346159779228138774422506562876373122493299317373565807090529976245632573201457184978154836258802643037500620318851428230077973071945173329918684223971197152857346814356829006235084699438720747628362921383815030416324275700097797220238960497013848487014672559476983745135256459798158151628987708756732741563334009962398420461082176828523247170354695122029960252971618420441496221962180318057743734745522777571095984790098863175500121533901711041471954419325831900579223738048636738308315873259508740466807133001627329938416384527127089380451834693115794503415785977166346221631525530728947606475075215089509004002408186530297838849967208323008022790986367186346141076149082400867377528903951154343873146212324908309744581916318026130166904240318536994266313533110262549606080174155875986987997890477420675055495543507291122016042058098714344361915593953851491096165862158129895719959062422714728152802672231350813317635335935491133238451896777611816236846434482209151735948099747049399310555883409667927441289563655532883724103163879107707235328325386954068116352851274121041509094003208296026722128714678715427492575621258232759167533992070248973889321596759179403484951218830298718727497508839370499108406137672465198246608629507781514844000103045872813680892709895180006862325025329844085063213059278288450627085751609458208331309490448851887296071437935280588884174233893988220187664554426272045693888625754040299750360351851897314087334124206807947554453355559182595520216904863222959567906114169024010736951757130708418983718155955347865886903625191146042131028944825301488191838944975517702378558727678926283756347125790716027186387259313802406222106197237940546452816113770097954580502256602148631954898399566730314978573722750558354941426880781581834764407950101513757591251457413566453549678054412036724416964978276707864085201502288864302882241399512489743261663976917484877460278626344200180594850010021202675888847939916810012573395995934173530175891218752919206350531135640979438692033531001951149090432209662139002036131033249277295540971696928655326305550573183266998459247176879755550677060416526789819092493206396833654046403940135429842173764188145733304133827140197387874376231919798217889010644196902877481945012094666767743134794982315292282650347674829622095661445765489681844279988616322351651037821495126403049709358965383437504332271818073274443679507076599980830001909286006146439394572326662727630274157025738727239360129495763135384979967294398428159550906618475862777273460704533285219954296558596974162085595156350400836735127002580403635517078930147025694196460197794886758456651803772350563821216868299753368491836942895084370140582402586153554772896819146725999942050489921732389343536822521783315523063865941961211490351252854833946245890029643623171632041474305601746211073172248407807138840379500542429606703307805354304758810723138280386332782549794004027965388380817244182142869899586973388270904774478004630319622989668204220898555441398532383365593787798735561408274788845210419383924529055868968446989231812757069630303127083683842431854862280709467731750838399296003390386679878320535022146832400301641615072675130995707276284011483012492820955136772932780883694153517096926913452271101297884188682833983473429169889736026195345422916106815975633474672382667833055567142758923055600526291661765562292841429731041881932837403920320021936050253287100064427617135548661907560864637082847565749858444787103237586758206099040273378996471019065114893460703533228683944006535032380890860709140234282731244602252519169361844618030198367398624119652261243703576302460805092494232166590834912736367467084750253677414859510868403153480869639931218901327159895680746936068269008057058882555767892957703583972256749282367674255484785136274772771212660359100517235853375979292561801991130881198140683444830433549620057256652039080404162574912178937263938859852543356474984008324567828554507130682839538735320469841399795657978800517720557677117853995510409407252993892853141116853416929745057457485300538456265822108294941454841715526449199178906948507408507345609713192232801926060359389179204984841023580266754709272094089399126965568741361451206484272652458394494592016685850566718594497130744907021825069630717172147980917973870176783815403584642659693644201879401341789494874585519170349161431132289399239270541781828112082511906925903825160365255794673481460097057010205384042852314165822039127063536089787717016694429580229532402605941679857989955643810782059770613787649520274732438752937362773818641206514919537195105690702234176212584438681922711730495216537111570432799714811522964224799069023946504848308707361946606301919658507533721194719105445785952518267739592114821172950544587470318423868277188035433165104074422232863746644457042415013699338976465501679213911253168493794535864340237692968162303117601264755592504692840836303632868661678665827772219601313121362845180022186392131032247439337219701828480841483625956022891839925332107162335238703905794645782479859060273302256716762872052170329204021343904106956152567678401784423085386028126611823979906761098817185199616547361009662450443725134068315801433785521099717919252214990876614821211579351742920335171473431903847373890058063420602802020539916866445381922657551994301640972232468612069547537976489925169923833277532982106785671594308730631321379030975604475069399451836388204760722975108508875761571071198067578910684544827978300479253401577798057755315925289740381416660738501756907206088344869318924694188015889654724446971540540397980395887075811884810171356820563683638176302854745002942647805280787652751003677771001377771907155622915911336627235846487617148835263392936005472513565694698511381406912667829204786670690640652599538064164679923092447436670449652626525367697696821674342167488910263256585691133249657912768912648360640856533508862890338419876963525910458434890986667464579770234770082162058285302895504934097575071851056697513578618482374877778091924260610698424839905661166591234271416888025076417483012667757672359484625623005620909594281717415158738206026253368689154520744724250259869362040614683254640260212955891696060023551003667385298938690347728302952595668074232942274380135235246787286461781950318064286749452676001585570217952071324474899560508680929708932186229826867559325669571452584933136009560068283981085849273239832936988536342499421976706426821479307800304657679120532077041357389561253046430984475569448356836135728815042014963809254456011619042602612679073219568607298233606653017441740322782286273924138333274567684601732840278123799830285144956942496942992721276855863370927233914199783061668920164261821946914761982138112927896216992635693722150683791316376688384154843032242900105653766188030053032378830450029731084874750283956391130933969309610807970849548794563482321158793482717009506097865312569621590539945344477707539255808957195331212343523657337992085645446731253021416322301560127924292572658855451232125692627279621400048653157716024241065888278211573010605312938521223884386286885652251709868035272626483888878803323802541665175064290407376741594886094188938064689744428056469692720733736529836144018488795059734037240175699991908425767804726135788463110999010733352603936818963822712441107893543850828535127725452167364266381685533637850867313419777527671027030790391554031284631423675071823995651258314848899097674702501223444991433390182970334828980876065456604782131602341455154562556656316660192830353375321303618401217156470600036772091569816549696782880848910349629817045526599698628530649669895464275903793147352345005038301337344691740484442795394580709257493899195523516195176204890605223136861397647870839577241000466867022495316241090927760806175548642365490543119801392051060291759456307215669593421812324070409330404954394394565874621289538275185956098081079945883686005742452154843039505607122640595682043385911852214933385730984270751804258771003945118540306095755156411628475145297274515324070506849165928067766966225683242049549493045842114594209017903381872343522662974010027591288199993978727665399706950703527824768164018394825039169583585981937055446255509325998675878259473323994173518423575309044201320307435975672430434005387856335576045232038040862939795805599190928639206689310305291855611365586448866430169664399382584236994655990324688680496784704618919931801284868920870346143186901264160312131384340364681096568218437128207741032136626764936749597903895247454297577898819677413453791706624222177812080011932353467151286400959152685090533629621944344595814749037789388335287151280272920091636782998702531971242095434185429299187793619412828862115656328370457070493166543192848344106563320241597810985785950136557856050275078498576701837848998988090543385078127773175012920347580827672398257305110845662941158899897436407616852963083983398118840349082080471889101478672466168307459654988258907355666446142790680300236254336879923607646669361697855477028563663026819071058763874059288000404418392591745487385492084146775763920663024822570915397256375802663970680132068766330749549515159211783980051273574736979846929118848746297707287564447007110630537991209333907168008737889770876078849308313953021847464720744730545787513893216398590137985350715872007677936136015486328649807430052463714758267669749925934802364127668897822778110349683590049122149946924194105972041714970976422992671082120826299129694477491955948378473892372974031143774010744727528418494395900829012311123188789119798142373951560676217646964834424650352152781764629179550623302048687470094522721892519935359615704745914232812937113784510108864373325455586681180494530799277164101256684315538030028522792919251196890355536314479552524219858436068213795140575629625197986954754637178851705631540627829654528709791960737764410167986711415465510468726476594581479195545173661583244776616084585436234118265046884677527732058321529474352244230055497259598315353457800880175223568175666642914572963838160141030405783143672088946908703642930742462514712204801306252733898340399991420058488617015110405743533879698632117434700467878518930404731964463899342495304954855110713965629945724936594652055358772542099739543738775728084012043707370243388883406118511926674556105289111339664069550589876882160045779626529429812171251579959430442744745994734582169630252058775670571900008253176475073302788315602350146552098191017618125351504141141820575423482985924205037317803558713068945438121830097707661031678950823726377362740535859696764760053487064851705814312004855924157795151998733476498377382684163417931254299205100424627271340591064933705581855024465572866027089568421609468574588446738410775777372526772406165413727549941017685349972961574163316383789876793444204797464467529513269838631072297452101761936230997714413749907821627591077950487898988019886434493093263836060359370799233228268055775154530317650440336231715106413328455324161681712943065642640358185797181989608231271812131556939034387097868509794218425649983943896057681360437313829552159675989309346284699280610473744476541562724154781166602789104145627456053007090824583968848021640222572867762590299193895200244353579001561252372463174281039899014023109051566014062414458074104252969075180213345745942848015189702613559234011288018468282470111998678002067469154026016976565302534239001166524746988974306685729860857423836826559675048854500545908730563658747680813649010561003041520197360368998300315802092991723452676336095384739768451730483480737728625634824580763848246683657461073278054885595804427692328905766482786747574683302345618549622927178250175752980831058480004506487943884039112090756609795232622023878299640775136445718044372612881058862429659748398912064320501627718266035661032485024697061927488996363963973435135624611133752574201348033609609856690962965801018010592447935954989329844283139829678448243840527887857433351525162330476227364790466224282744357556604867953719252902426987811132178894541741859279449187789743723900936146434101648152808397672630717848081706934240992602022068942972503953306676861862234580161202461865978042406992873193133845483170404558785324416596846719361052831991633944494759655384439707975975071181992552808752858476483305735227086746474589334343087855385056360321026812524588187365878700083685846767708608894195112211925517197584589128647323461253765034017182806432237825213491811687206496180304635126957884930369863647068193927577889938482918669078532832565634469782589376129900890830382536321675993435592479871467776545686249917126071598474579939500073510745447849875384133934265491614070822528536680364294217616599245248052783141558352628186352031095635180416072377882607230134894935165148051624199305967285180040711057770589408931873506923874257916639216983708360310737782822551400987375172432209581248156940547628927142246913339241354438598982973469724723241548372221686723114714786234378246078228713495608826638664554852800472434538397818581610441780943541415763273606073333800953850817571171316132688997962551724899085728977805361352709076494277415446610745638248454369952763217202708473729529684742083127900263025213770603129670609705028821676144043634906916854442843000310986486380093282229811915669994546244720741706099584958187062089081926383671243997179292857318481195492939721890366938693405854913896508205189944005304174474295813469953928407242219304465864005270421841987763704053759127987842430380424630431463177892495898067906379565911707483922154840471408971394251619300615464101168419332566166940614133687260543658143642377033248384633998609494767309512288051806614194051178812781916514938101801640533824386097754968758618396411061200780499801706706009599791956318045466024852806927778526221255427685659379063663871051388197232887969014003656724377305281006368586181168726363943466742182174667420199792182934549289998201903811976296701543332847777711205424607590292723873797211910666813781145042795559031489836409832103328748201416247751994888564381952009229142797429875682980476126212898978593459915413588545014295242848528021048492496884937320082001618818667977373178274845371817587303537577819033531295180065436309305422269727592316470785772943264495638730455910432988349255905366251452208675254240800075025321144417314430902514845394162838414905069213531267313123501718762489158772448748512768041242373236872501936999441304399385184708762994729763105364502244712946050722833484365259546866020002682562576227723654580625551656060044494698472651518477257231771559320409948684474605940611044068052435364683191678121741572642358791017630774684426339753428681123718129811461475454854227841302509204192446702432941736717062208963096448934299029050285295441604599056033133047208953231871747573025577671458974926913073598291558177244116681616085533075384085801631105605256640936146285881947943591834092836848223071520839815836493192037571048330711748128178708480789466004873324515740625553031098236511579695171779440457044116941818749696198499818436416221542536618446664375166922922104212140623758073753195492919254199364893477071299468673957783413452749085160961189490481043005303213931593751667476989707096344471088403703120037260075407119501306447941931727999178185001793645680281275635156424991378040642171082000539001780263379682529700873725869148528573820224206374208967778482898960059234942870165007790041229109786198372963029950203866766398274755555509193955106960793074799760180061180862721771094116775287961597216384631692062030645518787433692233088168441033295786156998835694099627382512483301629805133588481340659878918776555558654383672465189851441238895583344134435847110876581430637041432754593656551716465357473986301130049833540751331164292940886585022743464633630785264586611524706678921124253827872004652151776052528873627342709198507483890956581949861991418993930849685036902661200841596048089672176035645336140273428554082934165760708545546703431016713913322841862218952101649753940768589443274567529190759240276281918094542014134392593652209042116300883371072456286255829609778216218861821905126837098456650294745103722659903771346627254129690126759777726006635501588939849286603517639451951714866491772391384282052308422263034705203457715892376137777198036789321348182209654240087360493493312646252482253635582669719053589289019618298171969975636093487998148446331516945676183788130289534261241415401609932711679763377687855967442869730973735550485197743912491108120138298670317769298457138820343160751631337385758609782271808002951218143535932845180575816951586665418927027503492527913991096171121545975802398104772469842357050738263911206184659423829528985758502627388635450000391404291058825962914818477887539139385240857170953625361940198401803282792753264680682290153898009854837119385343280098444486934381249751973126451808943840370428921994755626907258701606237934906060739695606316255903442332965064723330407428592562918311130416706180506624856084242412786891742067179654061059091877331153448098575558900289791487208922906357220995974862297259066876366409264651104566988054251162362144799833579809283599838463241512148140534223879811807877314631337446905969759309912490531782028071925688652441409304149552032294942000611705964344522682136515624120875449431309583238696546416973554817569844543544951332432873207970075514315038346969894084589035249911081912833347277305229424924814184770931399920253183466980292470639999011340892669413739111115210793478029249113364955603086498574395107735368000792563816599495015521907795750246675114320800964249891561725476158740308762712361307195462660103958066052821943993158620923513166034992449205623094286001887734337678479277783823015741843321131687245705137903525626566464714544428466612376603850896635114091976620449603559449079372136602560670027770745271203327606465495661134273292664236054161689542216619353517593355491440557787552772549649937157045359343220317509622316328295934139360105084960910194433051834240176078118540447698488384203646058508463483099751629247319661433653658738086735486515429634800281818541639086809469322119242232991353189238113620150356522877544762922182106270652919960133702156057867447713412955575599513187037322865638621054726899199584548126204739804307327588539018285762119401013626522691533387044376639174774166639719926640142245699095685653278267459139866187355829980337616927606519922861065938618578078524933814864267774770809518014026983874505402335226561235672633752570378996640079920385700936043825712420735847211272720047315030618526382111161147839995157053236696556652652194875055794195885265778427729652007815429623574706750766580755431739501772051673830216473106469697571319371796277066760520943393033133278823509403632139207680305529918113431144334365739728490586789979667402496985800882111437308875383086832141503922418538896931940028985267895637973053978815686948866904888814190678114380997887498993249957857092256849009522465937031559521307279239544942737108267049347686956166974861382425202386522105823145849047190046817281886604189214514427958005974045955077401145687022827706737551847048621531412739378119158414633507980414675957094290599480880893541588659403850700762135473340759223935376189054733095961290866493643973691284288930839346417864277962275686740647009412688231098927627399323966840405343910660611997019401746449726778762705205956668307748628234436111219076596671286802830299939979793375431014454913921162459291690647557393175792767046400685224444128771450398129466102698688137280673104048567632530207117040329052205839504964203539393719402904161401307163975411559413743340958833064895959065713018658010312537418339098272673204723716942895269863177580366977503753902731525571952704139756938923505413568529097507258430363918227616851226222530926480874773927037841861673531127257111331915859723934402917798578718466309294468183004024222633458587303688410597236723554011993484103421647115406939992582750362138957933240423296876505537785050510634378410366909957582201045108771353642084717258077053080059690371160904811195354710933622216923690819744674809746296118540119274526034529884738493560333427623027646697479332492007513749787057614304170611914260270822565303512721070171334458545667153930508596102059670060287412117980848086268916241730006619484480117198347117979618185088887611598726718299247129233734451669643146691360678790032657921169909327172412583066749702877652994004750158100645287210207464180278337406645775593305486997660793959981630073420482229834745918568745364402810718123140884849013642912039140948881638139106091918799263923091745246134334932641948891893147957550349173942477415352036029003107061369325059357351383770146463792333069929343371538932042829593316635486104385348991254754325358591516499332609161147095953540886517457453772084299475291392260253306405941096135218230278812772566596649915458344960077953639728929935861245719017281884219303032802274304588760432889951365742942275071920076517720944323120154151606377528976522737528189886938461250795335330587761799857406510487334678734544183160996230275638358673976541760894097330220008802205861835452591533875042716459819920797841466950736653851040054320394411700917620865965242680582362595278680992761107761082356678730983547056241580764827736699794168804842682008095734178491777155909902219512636511847732382746780055392107105738429501023774025014533141189435662014363022982623842838408524810741460525154313529488802800420828015879732674185445292894764470931539667019481713661139983176077039648294202379348006760947683615120942361084031841729830710874129143123491842222508421610173598270518360680885732507808135994129760824646732288754516494813326504203203241566046875841176436000926863999233524164171987730548656234788849300673339696267928023781995931604643735437392051216707528086445778646948435379930212319201258109965068690184417846848968966075919398463719659171611818262602925549243565642118527141012136226541797200043095999713248897921346077472950472028292283007714990452623784833166848072840421952246038928172096687056370464710008574551273010040702603082033627762144443140984786830242442379616594769693696730650876285514533429217836786651642488782550454558719010015878589645257302007239233928199151875969343280874762425642801566303750391023703502672272670435650660039149127390604704019094834742895371800151517224720322085490831341640884330852559795664339993030247855307831798335709519488155881809705972908217833954413552198121170031724794157387632423297200486668059739223214542298881315799872526620094038441759448223290154574183863700074216358049550851396037106309457168005048351143889808875968197680829384625641222956652144821249492790163899637047429476749164646864197531607302771408702222980996860870787180858359469999194823904964713036612744402878059120987703726059220265848935407296129609947905483096921233342991756012812649070417368240752342480704096616531465564041491005338333857180870185487764306438915089051171343390963828241073777878762203135861260343653991726687892081431207043101455244688061830201778978724040880363273448000240920629828834556760423328519275261441927892485963525081415322627843180198287621627227817306995083497695862255869862312856940836937206199050532773805828150266830504152649102710818311748011300408100004211094186587262674947115374079347246579696163301757324399756687040449682006635474235886047908777104488577283396658700063873015154700711662348716121879649228217194656881907666093266308955722414589145968945613384372312499457093181839897254258124575022952101124661111178352152386104267756652065486682564322132493475370299751557822847857683651542839606947964779510072711949961196264811125307331696286726726471120633222123853531436626813517881332056742526553453312491981515795508364384258192218509103335768876925122990926770775862837844477491486090301642390815744196559488929860265650431526010325416435821333533378767960231199253938788080196196619484630583977401948487458940639118812421968371874118972971557290235344879020210885676912033012740356953851591898727277357109716837941429721635151783281740791945445847986487515262556784452178755344389154931847017806006499116109983842351619195330087630850178473487763987901236668035740862740452568307091291049340960924860414018231301650472574862554831159524343654430581718257191431151627900303636183867893719984762569855790764611698275427657385984528144014154033477682189492443467699968209026076616361831219820390007835097277285621798831401029125679929846871569994113118799739842792731303585604626763513668429600276338412762581145935607355687194071217690792453201173355673925375749177798580123671784423803079278399074964346096290966746791306190332075668718380086530513465080258986384725225959978794379554382516058984919324227329615368794264406224983084987303814206209998535711978055278222429642370370988412475138886631875767131224160302429409493924808131868864078395001369820861989501673347843200651160455092215021726973992397705506882932028480181948498695392611991685290481496659429889904238648092324779177215459990736501109494066559229900165129650173213316532842467043003933513423561901614438550672364075568817039321731537234290534022657639048796787790282885314057987235991410312249287146210737331181544533300770619829437893979261186337325675555976505532055577909372170306521445482668771603890057467379004524132606028456183148287441011297298384976578811192904119317811559558481830141780802898251349178751267094835312212234130447490944923887426051784002458169034723980488252127111520427226134290834254876412793195474625900503837416390823058077423468495840639587793356214735368459901011586990187555960728226670091713980469377630337434942862622627622702092243842522831737156258588967601878325364166880405890826622292093345270748263734747058520084970069393107466155964695884650263756466946069761477470141520651474462614475993613154367037612534940855079076966085483675891906893406982354607273319017139143287786149665161170399346751952395874349441063375238601682727531147547990977659022881130119707340060203031710907277695006092481280884850524425684391226068133800246755097656954415731065118014414936687324187155530282700052351034920193951312186489022578527076753947390450560782818943697648524080593738366871686497520040413070135240157959274631927557020802299642318308310221071111974534287738420333949400473009705632778380223274256055966328581413973195940883171262866881227948101350110335712318659928147647777540639024566947782064536878619709803356659480557859129405895610614554347031628122882128563304101429025102231006300242605430869600556123800772665069279536458902557074121822779734021757015034273721203125473742654066399172444482260153450177742835938128317482545197718372108106553176530146417081449289729999492795569313397272224793453023545806796756146903804450603712031862438499720234551142022141869032506342646949071274479457769904182739539483596030664134988237200507873612367362151521440973095379410755363007469302945929414442625493999380764787298549021157801358811482681038033670240562704533463048145965375381107094288890090980936729358477050284936054134413062822391610438162710439879269362995874894452236901465126478640247031597057591107609285985298004167626194219634115610977882109765190365136467502796043356128699986831770739173789733144311074216936390596109501776667493158924304688077242296145306419200574316649656256823846094848946282370871534392805011935418618578190577103367144998216797770240017813710695370518872640135714890921099863483541588438117835964278260046353860438782595761850371904571728748287830361607253541002532109021437595727316484171141986648062384474032241565850388352879399632394779352713382630587583554105136286487577446577088130042681800977553072424102800807533531388595104090240021388490130030563987224049651732106349794119886295565602302408884102988872329562849804649229947912972363150712834526907284730950281376205610365747795655315656508787766340129168527209381666719449146051791785563620461697945826257902539497828661648844250865745893421369668843832941625926129703930274471336123975558350882208941550489591595721352297012476851841050756758252621148611810474735694066908882488405102929830113135877174356981454104996189948148796491082533044189033785353671435961514835648983996316484741786499246700188727678159702007427577772507469936211633050560776330834623610632703561460553232246587669456611882085721897549758766435075774110111654118395483351086963052005928422317259720769685148394327174490392953487352463347291785020007117185902778981012191974965126870090824552899023518131115342306510891746884951671408001344107088155948173885581934827410867460125958667522717393478838558551317998211549416418795988058548446455260922802536106164688742815543959063979130745760569489301903733100864831429141301901360089114416414848781659684076830166741671266695044202242346200652204841224098687193968540421258117123723608863241793681376299373644423807653311147388664819380228896577943492820519012364602149504537270939657134604851413447379466614303021247266508908532289732970085855438685982485355427612248603109411661838436202818712589001439061815304390531249315070728534171314563383173469951289918256897019747570341269615344078311149633697897237577428412593900355801714956793718164266233453447503595096392808814727595202778497214755206454213401571827764814876587629467698845771162244291980905511222069516268105537944961556638927057728072230656445466760117800646427694707869388228244874942182234825898781128152702324584463012912419608532186438667633958430428629147374759385445879341043120142110030157717196861219416803781683040289128275276577757305258911858068539404565296373111491028061960883145314970038462759780065622719230740109918919870252658826719941243384133719002635928984481981817442988260891342527211609495411250729664863481295234240275195706632412062240888675252308239401583256641230460285395332765659132802099091249056707581711838589158300013721518518614832603058131720798096766744445213311667496281046069186206823388770673186464653513541542761617349693887725108715925550484776393765956080332294184352247999268612707030725358809650429475319596531738563234828004980123728583174881580503564817429333120946382398440911085084324457194985626379729570616101504385246896608676244213664384486429379522392213028199492782348107027619294399692459456436736866021466671038702311942622568560895732711703227161217664868015325216390942555537905130124111312979996853815100631331894637686956167466864405167295818613172773307931678629765263217299608117884029378772228831935830511137275845170320947167031022234423484033074971040901452123843527096759498474749742668440376753800931039242783501739307240232009974918323637277685994113074404460570909344532304844164058107475973734772222971786618507386388109260617860978615462210829194869992203882937750154063363436882019569335876021976882217706557090392667326253966450759722832901841494951152778631596173553005353063404074219154419993955533453262909771018003361115756003188541657902867010975723884074161039316480216821686469001291512922962191527656889027018765142697746381607828411018668266050752091454423576366644555626975057061533562121686504399851131652813183084872504519282571462597945774500384445741402665087456910764415631527456787129279789437045113584346803898220369867412106846475665837765248364875956244798270747701023900802361282021312177350541828762264351632777320872901718751084271773212250041025803285587919568715517163579690180210707925654628941811647943312357928475195343230050778668588694263865537372955998609250873570883487257804381199627114170838657438536176471507869873406404529169288358414337440152894453771775287695506048914643252002338619153490935008359906771243185289812770825538097818651761257214207707984095520913745002111631077528578315820958570627537400533405342221895263973414519589855244452565966067529314655117473157701428146995716029512412907911981319133202462066388443977244560673715248201998744930826612764730610088802468295399405097789319393849649159414576047708635091685240067879979468042940206803866572920124364892271524040311771988140059303073114754422099221976986297638567788023927455060787199351007634396515918541990361731066576608440430427935086000595766750412607945926307632038250874370445531633979443326162430638724681241849677234173095277976068902287035727968411083193038490956332520463801463527109002763913682097362113717187360648468418125210500116166962097564297874355777010994713658046034855181701073156242540714241964429659461800056674983542337426459158693019423588514067012618489382658075162851429667706321969279240382570104957002780758931898691907510420143388471139226247432132572138429818821515321643189022916104500476514122906370072952523435855374858530505847026455502479390692978512822474939747180940486720072741123063700315863462656205690786170221164207681187748788686753139841579009431766056271450556661039804717833108753158572854465436314658819189463179119999459219617831208472811410404381590048589123486845005469132530080736749530291349722350452805881910035767129184321790696338359061154344993698712432350098157049169652882495470623059609031223875162469197195621919680210816482627500307160961341733567820713389360145932912232524845423543194151339525770415188299341279183241870966149156809919303909632300129478929843181727996657239321745867011975974283389655811776656759205968237080679927467737220075678834900902759807260501606354234669487487162169731062295161275663584079250503430668090456954389017803250287060397260038046579253739495254619140105022624552681052123109187985659112277886084143954690359231176047361190365076549474416412548903373316027362186386958775892679860123199605395684153054478029486650805505281445793199123267264747057257209488855839418296623982076553789051814965081209217899954192471089976555197521540334017086395728295307436968486983013753643420876189890218836094707371208965695291840149999717428577754242774452067537576863525139251966643857268107346684844486611646724667879659982707682772694154180879519592519036252190520537935804935797551755955119229585222218480186387072533151381956837712911846788520245991439200624328775166427631785477507061800517872854585440406688767575252114733432122646690352929557162579476241386409439788681451291316235288587903051684221255676352152410553177053521671444411450119100945840929062860402623645212458434075578571077553464215407952971560377494449395036739974057697430571251783675244579536711796333448933098700154692012656506274932241725078685041667584017210914483819760202718813321418785371379113181164700635265038308319117249127707164003621935065104039880690165617427008832417424661858880142598800744106037978148484430455909663408174600674333179491913223218085728697950264460490294781957427973657359579958719332430250793305126991078535295298042993229505331752372307975528998869731873771391045624966364062725483118514718618770448396794004415278587117404704715564083329914064361537025760551608577559226624301796055148814429105787558987463989855631515768306458445697485714308215864976012315090923720971622708595512788536858464243427545817106256090640367073864598955111642727950228929085248923066547731002732272345379314947549972784721977333658075570863309168037579038116571678268979254840781131153812359702943492082596779367643327514549793790270042583164598199891472516229645951243164622268799871546213654373154404426299401177480160365272332312654977166784095645025661380357829320666731294377848811716417884920247684357388602888282125472056023670066205955723072241511703110524325769453104614633338541056084768862312454316985007307461013434070241061469808351581562466325995962937618770647045282237445436682144363447490615366392560897534500195726576503670530848984418855571022983391208793971053156160540922343798067531785217730627868792230228590676606293749617606443125349517314673772905034158728537180128160655783430895987440681035219003439778239335595067589820158193083662624668063341701141954806550629487818163515406551870773415668157202162241461756396811842192526104833968188355547490180730881224213738175254177112846201683417388078029586663836962264135031775141923182359474950534688427283380005311424386470048619095837022394762453396790568777703978151114940282885132827948931265237214552970232888388218646076177581672189829098925334869602355318521398226134969765416029540758002631924967225910215784278044235458632959415097367534107731230240964275764599454912433234122991404063485900921277377380564662570967999617708811038560636919124958388919982554858731518287711934251075273166448099246827712355107824446594953231267504680507599210961976645673683438200481723691817440156932212928563923265441184187038933636722952064657098139059704199376855471284089604791398792751572839868091051454423438889871622584001262004821378217172295496115259846105505932270498840260981919812800266894748524267753186317221972245827712083643063479288010717148558973117712251879228251322776697994315645093835020739472917699864417065627162180117480037848393245768421999589237153191964557365557866294085423711292236144335007537571779486336687649865938510943405358903016116265392315506116338431764375830133983543796484040670150265875240613175134550050203073539338690487661605670203521089205473847061704123227621806427706683433537229616814370212478691148011109134165061563476116851199486078183785149476098485226403649651273114809489733169448069361761392457939528660620278116281691326807314662550199744674882345462452772821459680235082405269475107534178656082298403731487976289371247365538638699233620704979395232854065747824487395193837046388964831013542116914443065689414418426943584683644328915775653728778133871717331972346704542020179658078902974288547815351654772156922948931135605377063139672092145127802904875209870993775345300210932149903574933785605138956719995291261659975756848110415013363881735252887392972911287683125833276834014564579957874018940897449726643882989080745478495019720500565479512212039074175143964303572200803436313706689659212889499217860999686298772549636859305510373933542108691679822165232002129664780527169860314785915808973731117470328229847333270317210420654808828225711835316306558047225453765752487522843613486388999750715571961510160012993100197878616014627535862716079236637025777822949358235292613401457695171515156465727897929984822366720277201659226947509599288034746538559518644016086154960794386462045763123538903020581659146493793446863429906183757277056900737334021237057066720192707438525588137264575242907018270788002393168203761397628711184448230757513088620374601732611674018657845876632931577079044427031807904916543223980189134341951275045227894720571918201062591352470171236012781744743085402203356234803039882570668207099746850010722310231489926279738155659308313175168431111364286571793436045620036056495016102322113996078467262146088008802051114132747481574776250395367584547191604986536598652324923261624145813772844984950277562066368844978371619815449926640366304904223245150960026849820406766425012771530974441110100864703302061287436753501239871729096737645587701256396565004199236191243745237855099980644002351432507935695417939435769121912904237310401327105076524135327637517201291867491545634667448904075286268550017072393266560429915252692626184346533853084291489096395203083461749089519381785861763256373703593028405354754329861505354194082056071839021157743589028569122146095291301940403122001423954964355440509658480482638256894120825418442787584712729003762499471817116983369263477039217995475524177910154697403059789909902896738720770499313822693307200962993654270633737121387819831303726604330655611561629660606549106870338209295062437262459144204090071893293600805910281967980071714427364821439633093192312315926652724389672822000532768885478776542592417249377405622792323291566005743074743908496600388309766312862088736313861597990175623700072946010501477749550127196499033282002847861293904807970862509783885508756179302238624460681468055512874718215962114883473484362917803197502830244578441308253957999492868445712152727197335968017628744271630390378587737368444377006436685368659448988165492838027460249239127732829111018747762483118012626210118335417228688901355623395083542022316044456831927866085434744844293598550341146892626289843628896383217376127252229622230341588141783344104161100970725742523594262662833225830584685177682093519830024918112557752983646769881129150604596690874062385141359372846650725106914051492106264353766528974690723342398511179765043495799869058935654264354829921113436609718822396341657100822088452126492091417991900332454588311804289036593455534610869036627487849658285930578184572573488940206199951048651269872964646788360678082166062701844728090524607264105758387537224693138650579868371738494011450534231225941905410886439648290921731569574975412345324935967245054118206406846682764330800370131776915980868810293628597479652710043776710846321222336435984440499586388926061127774328429627987102253618998423271342500967555868843588131767272335004435895447804257163915010845724967412524575588251799493508295540592934587235983352875210117311884746112312956743579752362425705107607770188771791489179951296116853159079630702280913725292309287892996946145364384023744370397621847065110102593906299193391391093410683177706403991848472718872974536625612953758334706336661364116986607942420301253789581110524618809966039284399537536943821553714183645818911132140875010340904418279777538354755417087098381812460190218473870774993858492127783744893533693952344783203349056121316823998393766787007356496682940604879992937554685201984846724891684256187477763414578360420612795158592796801330833604579965754177420258404745006659256556577644794934723737541909207131754421027468718917503145067178211097476940570951985345427433532991262235868639091729610667870311526105172838145515003948220521422884604686196818918972168076127744997215206861572926741418671142475238593991136272108013042070178344924402541722476133637451291989175522787466217900505835169607941739641506390095998541104293882644409064488574775140408792503891506132723605696767825576056995585133935377514314721011673650245690775011893335507914938636722538736446738641060280282710664277057459120389470579858631798405533103113313508296039784808463284123744011508117301865960572737127996568501212671128225996328699303793938135429122664699995405831100636119352760616166226648580279754544613067887100630372212218492894555627675276969778348146868891883028763380260868291094175316787058710819062501190152533812568669414306200859546400793128368644390724986614418212268861098831959467530837086538223667135373589662493926637575186395316448319527059043750458536151207586539175504424565005614711499782291226130110854625093427083343153313037240449324878981123362132855591259589224136457742136724824196678614348132777541949637394553040296636592764598891853667505762885165435423613298013648675866112280027763374001627719210519463687283367598000459058119161506214693328650048554449198585879779622925127371357901422585841821091062705617451119957041511129179370993534020522560617695458843466666017068445204605999091349946898223597420374419235322647769560945525431142008309816244230890258364299408903585008572216901416797725419655334513577672391262294134767462418320334246076060588193074411468136036928485277117313445581158988882240830510871246710081863659167554040308813357637518451472707564434862123633521161335878116697277481521165041552914942782865143395685249230859473082505741265329384978929523307412664912745165216047914533435569279101695601181542352803555694569650070972581787379226136341251958200436817541727391050646297727990292435232447791840501506936412626514579328954015235521871462609644482151216065965816126386597074697271469462713595768622116297673181955612545684787403905809058952057087935688539475331573375189359030120627293400357332971962920396257968471743810817213808145311737718393454135714651574313028406837646693372720230795137226820551784581948126934357480784059411401253598252833917513164705674903584181436384986695395559211454797447903790168924064938402964896867073771161735180315993067597234825535465408972172838610620316437732624517490619983776485119647327298668965958522344710826277456012745866930588202859038251638797267732516477031167563857043594042724972061345633729217739429638452670787002612707091850777930569953288329709739379704557664820858401098160560689516148682224556831539553104869874429169080193623852838591430282671543535121596907310167339053534703497127506654184277751561957124424888371885491182385914199372738140092796324457659431876669646989345829049609677030330317656216459693406789888280223700654229766423784752602071861740366982486556248860881876558487992786035036868058057109591972278656898081628423040971533228650148679912604001376080428784403189170756648415021632606431438729327856247399248564366767915445508757161648738883898908425778836342944404533225233119382628450930957535843973583966010854522191257923949862937794705399233171014757065523638670795821265166007895199858095946620076404769358520859857369905501655044374690499977704279597891456989422322444952634496039319879589977012972982882060857249420692952179939455786983587527626479294740702524372054489058268764055852107819818591581186638769633891486215581584794821579213146726732256912596278874757851391668945995015256593003357060018614519341304919893151849530959782585505754194138365302601638133938796587306994015956227701593195318080898290500374699436998986353491696974979656384290403250220701210565107391284966939191008412835407168849619237349398893030075511601373026429031516242586762901943378446373504233325749277075886257874390880884341211256607216031342643584871242756529814145674838075625095894557917113660029375187159804219971078061432875269958528655656210441811580807045333283754128707396902611427484064309815019084354357910856457083206264151381508684580434131174215441144835694764382632609532343859178856952362387644912659690777713270072441378607860074888358419137019219270697984169687398289857883893102774487032567860414856538365232896965880170921311530857043143403370668064890123173988451053931328920318119665543816217149560631082935878852179161930326621779786587642771286969289108969138818576887722268944995973396973510264233684313220970833333050390598316877223720727775116846699363029916947281905661413012090874712406253982010889584052680573324732853266630724691822035990620248495892966941732847920384899008288958720469302083600621235722999237962344064661319493930035703088813616241935931869781673954429384388373842531427754436413891625128770725962635361780140115464266942054991748507836862734150217759997331439993696914052594699463473396223618477988075724937180420537097641094664187472205392847866355972951044897587934716504283015954005240347194716485082965066265210194886765559154273781307445151487820612841663164453156016470917052845114136423434900076253923400796498256648922295212575149427007972689972488234197652814966002393572009234334682420756022282207910910149682645161596741798258893828659659787339953359279448375335998679621561020464304738987679572897239103742531704176926514120613502006698364050581263440195963730711804058424199305168133814250211689284235658577493806363489769325998772415622844017089388899243307715037832951706873178110316565001502619487464674088922882639605274453671300252695413133948202631408890058987549512807326054892782435346965360142302256705589186412317588341984324086141614755964176148154695019911071423546893895920385838701327198444108751397417376202703749703593623203651220733897584994047244755658896193174648007983458498188069913585250447703735244440375817314191652514519290961267456524220485054912097744513066086153642175828970278414137746285592911171986313668233309706289435314513302614898587084524421885845228270125008210527753787074326906745147890713540765191654594973416270204365731596210296299893485455980891835940419639373427414542823520833275915999776035838904796417903916186544365275181063171361760084128611569289384650415350855029400183784735453088128404883156595865096635629299629021826286132080984639487042138828887119348011436153641544824327555008795948838167783805831052752911247578544549079322836411290214331943941097612612235120297805739343436723583359207453119334429365841998692910248310590182348025307196170115888959809052789512700035690554207772520877285301912507858716093369101918597489239327163296723223104394533994837031378574361118024068813358789691582993350505783152801362216833302426860301310640736473149852465483041289319501068208023490922129154560627088590974287550408138886318845701360663150667267893769119837007017525562064158560035940450727890104103833939654672091984965214207159623366980065766202127629417225059314425061617551494388115801923616006049597930189984164822834123485944560327827213199397926843436907514803398315612490185161871272470205312962263480484086247160997414125625479309388097836593247296140310759309605869910573987753565479975982554504219913148699433675838206169588300707359264153145720997699627967528668453469394407305305055579903172342877805912708270798584741684689417128701401919685332850494006321315450589240975095331025048585833660883522981515156409857479840095547854723484780005911871336485484415432231617411140690720479619684708676161751818171980453660492199854887303429441988931390085574380975427065856322854555157606678755236434237867731645600665150979021864408211118896816616332227692651183969294226438191344074827220258317080945263401106742628492055122276327498200329451715917367219667737262855441034797423571878360317216740673351857067736557995979001275627984969076117402296815295537079454520079354961780375516017476949523015066234233052719207123885466085399051101702439359056573226419547910371404613059804565768159685621288498390574829257559028658123442158262391289949079866138692807104877592898942635624249713041038778780318194088006917014156360755054982796195732565164286535533637836756651748250758622315452089302405659297861538680061753478960702850705756540034107771578946282284518088047827275927307929496652080783778570984411920821852899956217071400699832308381580817339500379072642282419749241204464425991554220080787106620323809311652973192380664673666911193447771096898638423508363954295638310926315419821337032832914716843809046472836545701311105443571850275033767815239112133492546460666075862866517826032272081394955278474013730453652660076728969007278594648463151780530844344668067392478135078880607430930301902474021679757375309117114154024617798920473022742318164349717516130531190481479673296334770053524219222334902872452125998194803016605837051140515971722668798082886183427027732853393850571645545503878223698995908503691930120696220136312399526773231576226034888652901771302750563016122553817800938545263823547107532870019723720515649174518080395651903944648082545290400267759481267009891188586656666373958381418590420552940980782657253270857587571429924932980084316256446537470982042371996209374812336014685385958821510258904551701437673385688968184434470905819963489861846532326598151075622984121755271659766485448258592153818845052638922989790550039160911359254359276025592017730138164065427370104994487718440257978119484392195945818943465206138254548236311438051191231256495410320114350857983664646116583159113933019168642099944365204410975066430608987120203164620189061294105366247606023438623894085502869238862427716131377947653184867059589678354016728366199836558534831749664728364675908025415782423770329311026646350087740842240030973005775519336500706728121018265298323940452262072628735115106221308899375093220099985759665968002678092967773834783118777939938955787552827321195809064667619534630169208836185338244949225853286241879905502136281758399344155978833791049013764099401593066248867393587886217929678197360046922739420912407290946248522714085988639139570566704772105620027140667088076348086031058701608966605191464976233530621861905342574541902741733408468272272314172930322851658160469220069521905593256577738401726896019222355106596983307628291279282254998295178570247410557988998328346810339118639472193815071104416041827687605920675815470895149131744042922430892432280526319226748456992874174032142965406930314064096250086741802570804787941764718923925898325330867227071857279874585016198675417309044525240106743333634217707678149846268382904302059841774545610833419193573128363580036852174768465340438468218125359985086227803317278388519525326870245035828763451893478672538301527050217569787399941695022573644460871364135288093418511108899194054300860429880305864216530630672384303517075829488827431563659209305320836882506880982838428679074282469427598036367905503316235462152903438657078935877329254480235288241506413163744393455643224080117911504257314114163153772618179112972792710397499057868301128656045473297555351571448125035267275532699602998350965434397427007717477381152248017067681453160818301204687669961769712270653573268138197271467731861179165380543653455806152828301539078267782976686882803335986595636124192820562634366441859870306899071488811055405258995187987891518128104640412953125391359719340436941399383813703734542070632813207129684386677739689458968797983035210440084952062777561048638182906208305920200522829211191491811509470675295740774312923071900696856866501976219944088171802031253134952086132937097347327580023010271334923742187960109990710872170628261361417727399153848556577815162143347967997778064327580832717310101281465447795392699820345660589233016827492194588918478617279128525971680550840394047868661557092365707625398994406367333528553711137592089146996915896128946727969798215502024193281824156535942907633588677316542099343514780242469681721941802447447846868653698158543247023730235410576285864610393439461765820063457214530124219020083624688969465717359411777714902715151229857676968814572531850132025258094836297185330709679513057666879869113966660596111200732573577593832560808407995306068612251948068193123957378312765055687993067984463331476034350462208640967350100481432216420305660321660904679941558524656794176558638369638949218066201948270340998034568280504690256553803061264634910796942312172634003603627742744135711962827045756595605931192066514245756308997363293428124043383616174783699196286990062030888095149281126868647616476697946511734974431812272873066826153069750071554712370595941272818681189578013394684250659425198993417399570995937983440358662845076046456175315181733030594846255990736091003809801692246219195079419537767550744431276143731676378216202762895216489709298841403388076033192611217850096040657421652789319379837030308840907010433665005238220689291240731561129978335709716811763459091638397158661630290003037822947469293777248174358461213256560248999142399946794348448073146020242510202223730283259513876550004102674424664864861491526867573316115398733102559837480607864195866675480919954486153063248275323295840517235065769477203240314473872706244262308503888965408532610221400240382246414541674770933756337790688884137235171351613656911382389915888906585089806481308633841696462561326928640045956954036390047290468826207769979056503054862003197671252909819217919309626590440363645436313664781731972598504340966789404620808985327403882519610696088770130544241294769877862937244954093315314040284673247718736798515192764432182679022445526467304390318197179240006378674862368275389461709803631673267457222187457920973967980686161680696966667884612105838743464188568736108059762018808063181315861837312774141156991739018805818465369853054482116277864961132493000354037138800082690831739428522435718538413344145675403735090323928992087559441833263660090326151989854699930809811156083453250765651771018886057142282452642365453576051398096348046164910092806142014498479108287241505363822443386349002781657070664687759714920049055359551513458134949441516420411863829896342967669765530223834938230619929622783215962677691604514463257227401144797821770986897356057374760601651056977852928803079041650818967160732719226456002691340364048463990973961430771642181232600134316530573630321769347040412509158356359272993657188853496735723546422758219311595596359830578805637769341067855474026716845680764116880544449661736060075374465437366120054945358421185830579741678221567766752231875330969280371251733396102198896183207461741766459351797559323336240243587155213678105460031314434170705964218922234236899194564972745544813194826287595560470650867343493669883911472837062751432474497292408317373332309205189653009175991933008113191802634022665197444049223059031834322733113212514038834317903359405981658268131085134987975653261334016525752064009698432573442984957304458203653385116080916579778283817604068490577049067477681907371118040172733236465264636775768081092757966091239188022710434768041968448318339598946626950682232045311895223205083988712130301843431431482937132277124050485368272607158093008959888704079549997210101942254373738806966625789296595828134042068152979873640078515871020128170009741053734849713593376605774633853640300825794335204297231273936343401878727566875715836087286312829831420455311796864833054226859997688428394283107988204099051986682190015249133367878891722305793285797711474044512799918359185256826821655192360147707116828171534184114146335928238610646360633675250525774383375738950965660331148272581129007278278119375540524472436598584693685329859341027104310404292709862699291568430964439526923389546999876249302563006622405946099883387638545080971313929235592498591725160330515467405326209476958105631414304650943767004072188633423625105599807845802693775242839034025742882403633472189343059781740942580376139972879279688908020605628501130991869426815417864795021663744812428016206729086441271508782468654273639186696806903213408467078901640934734051004752353696393582187504148681649395787358826136741212567222821481881695239592055452920251623870952411120742700663474761946604847070431435195499650943699959733467134110583326635707463194485241279273048654558395702722238215884407058101982370279717572634565676280795382828624815519689646472567413683538951305742104229235394315263587939744706595397784452726730558635774207856975808734274313279238519686303554035791346670882117513261897970689934989314718189547439812753154779992235669169994123667971547965932484241644362816488467830808942009708317875696014654772643331023617109073649924710936721238205093202862848405433942304060242007308586718775399934982851625368701735663494299711158882257894544344465042276639151206282518502775673436575438660749608755332030383148779011313775904870215698410834708610723909558398472376182859891511674865897984507297026827094494886076806389600900320998017538861831133656294307972179692644547009692486958987474167157761468390671863930675964448623821685899347863332617059233891692532534735911609941115496360650824718792286863096079513929066019748962312014197318803023502040595801245904592042999111349383920484081195698057303185170125080954794544011230334144812283097287137318190410257776690676106364218732751936317312314561764234006561320160340668407932690629170725705771029733079471354706116958089250316431939304011729622415686118331381339738128761991247419205826025322905475430060592704988736616893159137500890289191089416772650712155354967285173449693244759508919365603820929636903294559445827362717878405379525357961255280022762958467015772571357291890153006355377818983819765576564453340463945264626555157935537421962381941658951898958881035893860818938303563594880691372759546262222702671369400390901572256120315531181906845165929335641908011530251572256242649439193326500422785438943378415329968696350964575586895093668861168894771562668979926506989697603910503050259416333741992170529421734207483072651266358641014114806542800581728339804576276711219969048983377189310924383319484494043259487827877546579606414659477031174913312625273751825620919860646669098921829477428346643217193120116959093374183596403348064775625858105388904445834788931690360136354512402281888584735016367707726951026896142238085565639999719249463545305262741967135044208723123351238022460277036631877759710296391365187358748759078421244521029910951143294191374377878864909585252878815354593503170185993487621079723794089407098074255513010081368455602621064485010118647271659418038846146243355077656305011240443445980017460523494253436455898082901710286393267725451817007960228485589859730035622422287219303806796237190086992021867013621981022163796820439582701487235238599159146743974738538719363893600555376940756878262763538538735466782154302956006628450503395651230029639919498365992199083495929712831968815755473718650038096071545271426043926423870944691778793563394888436544375649582137615923866603349704860805943039466253408052814661283428813776121900811771766177476701906851313428087974038057169928014358542068623857400335955599660506899290917014842444300046084531440507490379830505392959324858010102519877965589884877051085586458716224983606715447718677910077942932600318860669626655638936211366601641912972480256275578717416151148459125445593908786810948983320722349733585236864515590372130005977961496268471819200615584752479632176463623350359478777105754442176949542658765503014280460034789455028462324900026009155719487893599905122875466770002803257997033899521107208000225951252628527790431611888886553021681219909481100010964519663840789216680331492644300571399936059592068004965905806531543167632377036613762328069581722998786969875675253146894574265540045587758036968277103638322254307703469094206508779253234616578744871468293746522194358616186985615666735010436299105778006468976959121622171336634943999478992490369814467770718609543832329919511642044058693299731099398579043524697025384907790351653275885656342897859569069239005230801847809882561313833653948020930467477178501676397348783455433388054005231006012527914105019842342899219549432576677915980579715015478564894415758259863217929384475168575145351271543651232579000503207708053865921560832927295306160396465288206431246840487812853644853991360236448455328063116637788117662796505774845104932230797676452815416293861755257287795151386204846551990092982136730649034547520571668661622783201253347429248942424665520222204125477113671249657608234158631169533975007652685688397462345044158792142061550893617790929618209273480489635557338925310200749099875837078996865686432646678179980318186670273820941222981671863852084039738889376943310117637177963729067949435943325130830674320839219715101150307619037387299206326210170676447037468238877720392335195505333073257439807396027061465733091933592175704692371465230299397908677599245314732138609463129808536320265546838622308710348092315820477213294403868189904550486754071752360110395068416113236384490508644346319913825527035028896397635992404227088302541932308935791605227381749658482112768332691576963607945709024701340111424045830825038800152182053121446362305627290790038972563558312060743962274780291053773052473262624141956045003559572202597759573739821833835595845462965658053983970876512514416157802649626638142636971409175681478615648498915937846553916490573072477148987933356173081061825989838441483088966934576769991864733051698645400899004913396432907456505602032932750068717961597948196955610813623361711085055008370910617721231823674103452706773339126565781026937581900961191437202953683311748269503526124182983588903118720277055475197522064938674728737553307200327597163986657054050471856671595257730975505735321516179492760624628838245038566666769156672643625748905331208174535258804756179920319394190310143616551614598146058524322474630390892192362890222160033234534475363819422538639223172055060252725329138197694328411209775226559952628701216316604187696321109699701040803677865466781031484251245046200644973668830757922680525491687939554107977433872829683671638056984359002539006864580415325054318302109993807078449168937200050511346130508238471581332590290943319357430166477855543533969154089032373900156826761907041210649038570292932624676291672604799765567213195048024551839672412944034465550405353535115872240303483622596708724136866405669704004098282015753798579174949367716788416367674677520217695799935358573320136406404600234100868764307640046207977410351238129533115075766470038690297800445587203296582420729155690838381755858624508035476288248273649409052811957990583266372036756466506416984440181884677137242668059672571634551274868496512985176982987464548173573325900668386418492705584967917273634931392604408121245284269446586664142416415921048950574922270771500343984364664562160986042195449598565580505359693176206566381692343562646104290926537065952288440773786866452134228333768386035174028346815141422804050871883219455826177533325299907086350539624112598672857006622355713111475073952211899967366503157497689277308459815654561281553594776484426221780025072973256748479829478661027708029144837091720856871477949368682468087926532389910522303497125704036632278522370727224109755954265716014269270948011519520629722929388256799622175566452761375651726215689131763413149946171458927202063705354206899075708735470085407699944810241231005708930631094651668681344050649868937123991343172311098574908783865712920810595380611583154079989262047366064408286668598485268839193982604747214938004734951367054372171194414905887522016498782314659341370343811612910816178515826750724216231956091413944880477327427383391775202168340996341954289554114034141446082649411037010453842399093094911724898027966936982846468544005737440687636765326411386123442846807544377387452663082071474462871154794157279906884014679727770759412103645534658569110425339337633928309457878743124556239439801134635881614816131191518237980108556260944988435702453229780995619366266748504859770600122614531663532390329215270073656633346430337021582076647428599738397685816642307540849574364788683355631318787730545271460289536623279031463506717581436950779234510828422064538721390122756584730526978087108531016302699602005188948233354150241447471002299819852608077591352507887353115807248296887688564606286597230761385409886746807279513427675495254109076291724443589321165158741189951856732478609933679531647795231801258647369332103511833608583069261707866521544576239358331409537468481111071211663261256583652639402247152006441873339653818829076298158401035691487230129024820239830559131860984571358128753595281622245917404864972652917292594715241459743916149378656815397151226219686942605287921095771148274384412707419916070576005190002429076753780986727888111530822433291057526943018354186987319034477786161395077905580371946104702983722127959341947088555281274054532694268209386850379680953255949415184763224424142836734436195330456425117532308385974520946928384634908094041146521829564928068877150519541102680374929399163162967337962717474548607422942260737349706846154874226203268170692483189275962698048947565818456658445979087346686319609377300638630773412321600250233619878665350353835682651400737430658479583509207623404236285124768362309814567294089010308246609913097734436325933249556678687824197454627012348992009886334028919408847401947453192904582481578759168539232051591794405417840314983331239894241799544565252182362559969539543734916768756977242571924119509672118692810885031557979339894094403204209453151850847281396975639893962547451846529976061620483095688996758597933315723750970130941496739537445333197556751405916331731253076775758634386475712179235921071718562005592062881823397500264316849593957682500139175722143881564067932128713422026059291303544230188372747214352800099520874050268958948364108190316579510531496361387650310634526329830804596966762198501047457869590650551200461927920267241752483319288365223406907382644814529684913491978116984087575503753876104549005900566652567358392626174829024574586247698726028919110567589822929941542346642312222328044107627546832904871166707028518614040597397832440065601721994138607019249607509491779677235257262725113450629966451289015364348905010923364141463433398941182244966913856003069342907493295663657740254418474707412227341219751102996529666918274741266387370455727772658162156212778094514577227474311774653669641258169560376230937955621532271953102363820197316880602957653300373358215012209129032332188776248512793842574879043326632887107266397087973919142938877549662184324200451933828492555217462625042800397078822282180449407463504895659885432476164820364112982140842523036531549664640024319740243367035752496768893146125219300220642290342708634034478160790622665123141803633752811381064683561793623660332379198798931494080174640413775752541592547935971921955070629423254035504012853702053264551080388952148909087319903290543663949390163926436290968839822739172079508321231575049925295543299976669604328589000867417997101933005992619585762728861940374557236198406353749989927849481800779462665353637402016173153496445820839646221068076600006217072469995231300519242511671491407433382945632549741209123195795505289227292600903762783424932429052309909593402064873314371023729599795101392108755395489939218567193369448825468309454495346532198380389617141248187375187416344935189916659616257669428918947967086265450061734675226530524830376368954203778016752829482862144020718116218180618221787668388482634637909984225477049003546499859036444354425833978447381584028433810430057450196152202566967501527040702608546147537571125929461025265714788384843376010971183575751712734862829706585358844587907975795134353012234357502175867684694570413330027407025883708494180411024088475332271245804144054841878998478679811130293759529232812533087566337081763053738898824973912022293275500129278784066491777719289209866355181843293869062303909639837320774789523926318150283576038187781696158396176675291733717374477699542061838359422623614931273373144554334389704597374472189701369368590694884452787375178070943293082007821830786499909878328031954669879668943902823823849521577369073495447239514906174821716719024146154457734995899250661203279675636937218182553048765317033941762773096288966190105622780947521948993653514344776329324349802331572887515671110378418240477893473899114881159696618895331867980239006108314132298548625309424438381802786453303154437650731898371761312774841548398323962305528738494437470864016088387225353428547603059907865075606108171895404061351427839345038118493602754336617636661514771392271135569211898563878926972460211534665673802759818073175688793523920775712831438147226526553228272746796911613527295119864844624959860938309209274484905516518799457481578774844427902899204484652874705034434426499705239974159360348949932256272300948907028208869870741184787899125193863209777157164249033737666292504145555149890417263794683032601148426406966524858165517204108479772344417595340448564847310427001519518023949705416950591206900731061273671429214928357547927569996188053785955832032438723165405648736465634409159318260580305669300343929703704235176025209109689416415302134724883543280977869668611879174461239586234125707717540427640017331208016598153707550931546276910958009502324672118107756930241075269837732304338976707935586954423842513163663910059522001893365252350833629276616583398746317273712155004763655411886725327691628320657492391209364152535022221774821010159859261769425777788784462566327023668189888403634084082064093815837299616488633606143520683023633240747335216256559435819898519733296410220515115112858887758881206908281998286228305981241866304538207463479369988665352805839029214060689982584098546168126059252011422133662739703796102989600036540201146258140354374012605582880551003589822597210921799058066546699915960910833296918845807569393655816393542397039805029365363300554259705263561141970137356896934346553664519254783722386316807723291195773794510322686433758973856923673458070057276022671068111061824201672549398732834236305661074392106675174331281122722389059146039107831015714191727600354719314495035934014479066031799365288582226420869033160160277072571064682630822671702176902422958021588756960936147307818023044690190557926431349963991376882733180287229094476390467978742951435886542199689641790395694367704857657724247258422929746941471876077614790962891718571929406537509124958851616771294104848137730402155172320448924827884272646128944688965811762857595375085027462793081455953903988142050464814778809103931014649521297915297414205827872683290908799442035593044823363877099364292095793896773743903523193268189557535367774673188445675737635594345490525359662351859171582591064545572557283901274218627101043467963365767776336789248612001925462788504501506691350017856664438501357125327388259132190915147784262216862798922439724338197776080329121366408690256244986001799902811371134893183878189627485717690320594149957753125446734975261509951189928802382057897765728103567155797700050510254848253499535028393956001471896463381062557307754785280806080647781478199299814592845807320074400884699064835172237910029295556399204446564484514863081896730480040800639372047762086947692390568817271054095020623353736647952819629022878380239895116927612243836056214253726847282109924920722268725088968825640333113061041827809369979339042683119871369135419103494174447898362103177442902237070312852065083617860057006636279510836750122801050927600725845391278734108330088737245826479201447135615836592014343665798885646605895875051637982175283487185603753999058821659003780233905862702286710012451577899532912703667611563541170810655175076079231053226616499660642897834137922020749966226634454858098702790346780802830020745327036735197162114286007384368964288239601050165737543510630734788950069383670286213476553998940725926708929925580567886141560415822389794863078832391159691142478738522383425172904890904968708781587727111119151072431345181776788027489572869154323076849582169039218918983838172262402742019791065224502053450941226150487256260439361713166795597383874350611315224511370127114314516737387129557676380546500692195498387026439379158401048815667582396098594952284354817502479806843275800379895203883037061022803674390371718885256151415351351998907362301442444793567679060371288090345194793900054327534574336612169221414487359461229989005747549169204133057037097106764112745373989676156178544161941803158900870709600696480687139773677690851268616769696696243303303111094040083208195765312404610588087856763830543855338381707804239310494755592033604057174372803644106879043008740750712205563163545265480872982766335101295164162611522622600896725390536979576679983044610672825306257792669546891141572021968308515848217169534170276816728268683699109008346034006806283889994841509975065267365917610752280805428014489095322983374775750908301129630651367912209184729411828629789811227682712839517592617911563153254743028718140872692416788639280502526772703351056487158155308471635741681291399981412845645637259931234840407578006153455533896174225326347519965594932859549115638836423922479825150192238012856902358536543625911898217621507223897299405206619443835205992505303058777385215477158513350744359873925808653777985387679766456835895128758373572631490759505560217328136314386421466014536748174121223163970820150021844495690774821845244398617351080033891575153163503051076064035186264349816123758743466863981155263953074208041528786741982261753560636482608921305414852270316287683434960743429340555925728968173944879123425995026252164497521385537613253681836055677148644447526123095915465732114050895779978862904741702214412954586822790121569389269559090123009245162480226433492348450354048777312848772595035659392108025815286202535071761450739805454239436681961445312016927083776538683625728795777212560599206362279938007204290065517303652034292449014040067822349886918564962867020107880561220125946301138273177773634031333172725212977457548295261672985285162104983624653809507715756522405396068315949792275789844400547997603072013653098156314747701502062664896182076680831272758086012622836768254342567634079537515996959419160044803539073097750918950936089660536351352169939625523363255250154284284650808284806311443670658794599741431495319814009774874367460815640889248271658142394207929015171732776798441911544489606709312558646321362493143583648611861846706152855404932206170981787039518815489821779529490821330650365444825909693156233277323935535931558934153177621317390946054784966804270933545785801172786826516965175114733426045282642922579643339017736932425772590445801575884127275324146729786761988219802716707816373911365834990060469756589995047582197006868872380689022686947471263889956990783437303939849817068859198046515000450373342674609069495498334657958023654734157709818577570462529639179590478789885489192376964798405381740990571999828265096138350144343114873665212095397225082475192184049409659277827879722498539098394127854150905739691709496984323454863475301415319038395630160394453037746606612715791093624119542690780393345877383990665425624818612708351300320048781642331389555162243733191953465355297995623934728447168162730573537891321439640994685807513784992798647421322545304156118008251943916389678781843806325876236478605284534535235440788063619079459037818346908090271702959710655632837525803926767758849171181291442389701377417110665678767162097479508446087551676744159556813033808028659204333082469633713196095815185348177652901152112335493177608368668909591242409109810982574572239183042680211989596867730684366356004734179940242634139646624192817874817423341824236650524365776453342546896838420815809935002785391366260145299574027885749490858143052081092643894172407973414819114566861602966891269884553254927812827939820969553339954007889198124479303489684924414275562281010046321006757644383015883312558772708461637119273168404407577484658040970730897945260279233231332073728946834490425912599795166001281816123469961839635393385823339364275237569406604076479059088070353083816607912153450755171591138184447679771300296305118123087278780181172187656604498516879676899312744811855939545700673866793616689504069918210018728737560990250721446417660386219755414297185404262404850626476796311517439197596012509428713550194533253465543331317268244259946025134778192804876562677670393078466619816477238762693327999031193208079957225548196378039246011434489247302002734733600692616597805040695630403809008637624155128336417147719089659000201572736977015485328950344798650535648133861208318458981816780454113522891445998154628851027595183825423105724265754654851501914574105188049632437113086229830260727361427246963446148743682185928425803371434602013247909865849607846777202289781855795043193169716911983318246624279685615581295089867924299615310290627232264008025577779611025354514428843935738553146904912147113371285311024673469448295905389205639505293868745615593830091721329568990724877960148328381572205320587452172386721387663315186379751588834721394892804878622633740711159749021991866881594762107353219124088345160592424143162980312535052493928777997178081451568957661342762869898830618199402217988074260331104423560727119233944253391037445544762549115964100429110625477382791386839295168549182725662933059634120421563509737933105898375713888815914154572604081924465574350456931477529025481846551976182459972330365255588918887008714692309673323415966712379685358597271175497461063231387369418224068628618312315919012080840718296482653143952022497170298692813729821636165641250970232684972062066263179919270137351551295249736424848243699443498302107871364562943533230280227645856278721244825301144625975624365527895788280466719252205831312766982980097843409725181300592535878978876663373557179389224235384310095103232342197493960779822593443708321382547350514099737301664439543643057802716784014512681229922878409177024116488256009777377384633519602735905113320209737061162078324333559331964532654784399829943503478390422068428217531500641652729540756877780139624832092903557943360422105949116368265750963129821610218430111752713987822931694702556311254568953831464387426423416942962172157629665185917602159005572183519145266892609025888084659343915330052401775544820564510345935997850945361297629039373007733680332172415716427858815193818906797942031823035202733876496191252785817035401019364217777363256474486423086992156136149891821357402038250675033663526050957155441094159695144284866253913097095306487297316732531999965639041949584766234815938654655067853320711415834552813624979611233383134100664109382448012770080232408212848024607329256580550120195522868878617710246970293997894445468677088286553102051180727887551434385780827372086579029023048539960088562898128648748511306771925386447813811030284301182522166147212969596860464264245809526964703201872746388858543806957024577566757296625866591351786513505254436110740605810322504008653621325645490074096679096446100156811965951511261619743165157024705614763563911528874590454190110721189639712069519726174508869392500932319010007390608920425324467587377304432942791793551056601899350675692415436512883931018692632962159417951440260991249816790338038884770584719118108161444125283637676011681505490275692587959706292032811759993505305725921896709278866325199641977774021868051937505044368257125185089889814427243281201287971956261751874751450881898455521400062001768779806653515722108652450670555504282831274366583174042797447269975334563556559658770838338080454456641243760132645938242456400446975017343131103230271880870845260241962729386156205827697703073882355105810702363844140360024915910822776432718309904243982944823418848009507487989071665303401242166250425369141823588279468026423245550827952943318089068193559312683847584796579537341706253777645736340032753661198463828465466840298347165829150983376247689426977222260939839748435273195739174206808193115781085193332349552438891932991861462044566872116961803858509440252185111816735886700236403113951556371306490027464247374210660358697054612574153445553702598398026387494737619262278247038891478575728472442858645148767118070462387407771032951534013789659851684445612815381438745784257394992988488547258209705426090432376801547686615339267262372321631647113981593177864140958760686114733402543308902501255106247903869047338977501287425349695766582959327545294020022638513282008325975251386595176583929047859419181720565362430931287006646048348517198195130052826803686560920854107393304615333745005451737374723083903154341171347487422770026045479189835402778290950717257964991715137158652395861228020519966640614053340869394807279069103478679180221354583104284792064062818393783119261208592650488101467994887689594711197364762014046105777907586142879972126092585570765063418391868396580583244886859428644177983095426828832826256637038054602794713723053808634374563286267985397290900484045724355726617947621123205869765272793752610638386767670065982640858709901700193434780677066669956507731799025653392068854066213668363428365140821013099454178742411768806305946364331324141500368276116206839584574003425933291079675292888741268712754225064524922817877771556163498177743644605822051615518752200264310019620331450036148802897151393473134843752491830982649052523545931507440831297310774524121570018372896497457441424361823222941034083705413416555492200074425762359067186918690582894017317033494458942008077191882211827931869643488341272551546304094934912881026806779250686848357508022127523910877055894965217239632006292668531413184833452899597732428822435108743563359092022986612309323554699967615297147834747748932586476252305527878818214261986809405639272327177998711363306806088114174037520523588316629495386036943104878861622744951540406346164560722513094055344745788776933693581220628646746001532417985630974173095848348327928436803239376681149131482326939642533377313941318079612566951322394147904652893866104881604304049472743377826555368547325380465442468561207182976757945239603412001684383028987360918961886420071037006307712444376178506654452286395856804629855784984175965266948125178632540590556128554998392436305003962098841586332842038309301857109266170772990015447613580980445907466737234518161577559596650575173542892877851922591135057374603722485213373303797838603868143275956062077288995113706611925289391375559952526969052620219386043628394539487426795605092335709780855050396930240852138532780063161543445567945760020612149882493593196212306526315265325975630577273902861174995561436631588830513602747644897654324037754045878165237715181910972399021025204542352795277615635762020236304414245970854525484612777751347775811175828024108721435144577189675925792417209999290251987778051886590921677592614236520194714966240725470299401650293909772963567180262624574960117627355491055628199891667362594382547762962534110340267171435543512245148989397949753094796401659742585901004894488516775773933488518937356767935530048782313744102287519831906918706323470299499144769389182317556775661710747410044317219564280813514881171319290090873422050713722412760272765599335108988499584882125624261840405566362086651696664459916670292975824934404568920935848664308961790643279182304226558808362866081364120428807263115534271764123120483811938598219024580545132659793438397218628048652536540106612288373298291496339427247193946105746715533779552044406234361936912463261943088196187576445775411172351850049049714183573683139477954083141095606066890502716682647913482430775702093947651957532378077142340132393930598037740321288292939153454645873502107880792916979388364557605359618322077986863163367001229058100855092040104734599840367719389518182110171862893342043773918834652513497432027229020851367488037254492358158823472066797618886869191819914446830631995283010600895668676045968709072754090131516059995513609834541036422148703711868332189481182690799388890438310999046593132353337022770012492819300060902008029453630662285041170955045923288191376436142186030150936516753673949517932052530542221868126726071096356499278067734936521072706827740161674003738950396105036901387612239979826669075692878057386785828167001067954629779971326579741173662525501797927563642725995910223451887634336972010599425479345553076309568053644372975858703104880282244195391886584341798441980152989752843677121704780053248273128013958044592021897732284114902623038670399599670244991699157354024075601600510684277191596925933604021745661909868506955569852559463793491335961612135827816882136410821831251254224804791543977574637434092831973127288244390216237295168155591440146814673967849428185985221153281096091257324627436848171371106396136312709318054815412025295852741248856676189122614110854013517090153314430438896332343209168142413199879282138179651871486507758087903132020782503904961700950829335347365125570487267387985456525452382856080214609575330629226103612077615501289217504834093646193133047541470212695416246865341618618962953878941807214993001729962086145485592522655142234114880522893559475341858895225211149134484592410518141574348962477041520590625878250029518205604148507583025561144045318904745783686966823552090543619851271713997915860957701262781124526104216213426094017607685193242754682586085751806155849195488770118558793838063831967584172722280595886447424923651067196351672822817651484982169542487083158001097766332656300660907645156463214319430074924815498997841884468469480178699929812444066762691727552279683329719685536077627175380261226280689557565474890149563019158701781561322623274139224515674220702243019525096551828310333398059894485311896832555873095590244394843396309189422073541895059292622845471354830139003202782196810420042874478503277518770892012745369226516950642746358581535412105082710596585287503783958190351110291094851119319374908812145429140788494294300405200550655546024587366654067447951693521329480060325225646435750046953747721428183463940207488013137680500388026084143376640916184042589398678961464827139036761023750002748971632143024506564014848705208086677895753089502211005093643735024073354792123722584561545803339529016371397938594518564327814023590851484576709220419629630761642146448899868377164456470353922875100439746613171317606411188928102344837517115107273435568619187165677469537816153096499396031279743066192677269965315765215547408597973367421402220548434508157577366989073825746710455707177093706923017072694353680876302338274846075649009076122295127540641669895423690262556956007629216157498323375192928696472498839171445306557754181081985092900218841717905045009552102531863838174759449814814536525516993321278342606031420782666940661942335081672739461020335974306953724408882855548340867268470984024902403160233151341120768372738259170491224035349636555430256131189940286733009422717459726290893132643414906664239620759060615419508106876466869383233432487191944499164055739619080186767901915088257953386466797136147835529595940145715147336558605790633261552369824668152168815754240779481186486355531029176671631645357152688762624961047628749537380862250761232895923813458539633214075742729236675110622595806444637785000542932383726263807738238620515046598379691961997283716665858904534375471603890837240092853908957970929696897197633416895599678381897512292594982513152810879690227785177946054918974657341710047195234657943051529259607178308454119361787331800391942725147574808741469199363713425720009015749357936404051870559149247881748806822324447326575077151728040957234364959075169788109972839558724287545711408103660003711650661425107777100476089668270323124624439884231624602686134167124603379651603131691173851499748839010798930568204074151065846305762837550219727592921445908985487814766283242597834924473567734157871934102727620697242895154757788866756918337009153260992962306722104980506112305661781247935135732696131790545222196479489699868345157435925571632884513448217049454548674571347460152884874906310384143081809560468325796993479079275316603018324149677190792501358813826321601793451404473881419740331087382420375693968991267015902802093759236996023201575086688467862205296914244072975301593687229751317253118373172794597737868181811433745741697841054550325765753439774794744374167956805336070584698335721618357412959696901910027376797444862714720992993155614367963586857714696982484017382764733920029599726388905081582564888847330256356832025026275133426737980797725930034832149126031262104114450720455430692464893330186320196745558461104649078449257064489439120787163975467524370483007710245143800012304927501954071444798503097052869374034261833866726788351860361381897664685709977665529057562551305127910452682784892705645326488410160703663800450403183695621753394804465816545176127110495386076772549487645017078074508427742196078223780802906645776352563988354629277944670975424903324883230775724020804947886324480828680123173872653731077073147319141513122325792399431781980281377734858559977499285225724023954243979828714565788424154902952972699951589871951391913602527872487457798993046679255174104658181652868349173162972397313636423045197646779809033254644957974003028422912170710081222454331585903558542333436996666386630686662614332145193184928838611583281563895863751626977216636272688718713551704397902179890817231297562023681129393213795753554638123340010225236887886406848618679557602010130301619854669845546492792072533336609132869996130716759796461577062124929015268712280421904615254889798178722569196268485368778691078977736101039515573566718157092615661527558987376885857655028738499697748088240643364031263171084090625546989678210291750660858566600855693578222338544824895352292244618036606117879219683874322657082143579780593715049053288612852850855230306895618960254459215750698650724302174881190167607141422986969185795837084325291979059910756120348883355274622160287505518382516020498694463937134087000732040842000299815897060447177930914320215144013402618180897737812886302107466496417037879794216274747852028948307117208956621364860103830000235951174694842167785602479614565849306144780136209867464482392720528863701981546461712136720102436930895831433573261889659327784246609242635664764988448791927816482192657375769597534327541061436238847685162401055789074484090913128577380398698305789377561846051327242203899543209234202119304195582532842491794612538503029286016003562176917167076218465821423266902338348031697541668715327694690872043741867759860709971123184135753008613450529977707585953271355797486154970636094913349739501562934171622949088793812814850548307857324160390910881451890815058383935764655027941115703738913864303572689779951809550072547980316176601347953798469399516721752472154429449590034082736115697248806280685938073672670853856530273270208926356719115679425293745188298759804529504133123189858237079187329050972222319527467017858195049995157775170311263307186701440313374471205826820762521201926403008438429596248461220181445172553767997328337798261633083822217027031767904558159139948878156987586823899268525880009828370484923508703136911147872017825521510937275607338245540023688951544371149408364984394349039846103205590094026277462018721731010945427595939897505845186908958918444895029767051198204854127120991114815467831980389063415062437538934613308059955407433394810501034578661840508982322303888479743719092041172677063595378469049348816262729306490926319921516278363045891396370761555135090548065355946968376631297603100472336270723151816047782477114910770982409660177894242603549830273367755655990626308011793347718707142910935183726337286576257814757087814973920298510100010808361586149691735127895758968434152256633318526088955739473727422728235087015654277405885722111722916846324511660480343700063484632756093974922529578205170549591308604768854222782476900493268305578812704422104349925426937747340349103238736592257221970879600764796499402238636890352756157424545450920359115160534417344854391730451666211428967402089432047356061522335830067307988166847148336671364018049393026937326705210589821291829682499066080138813982920402125106014164701605822498557720478372458941678541887097428229280562846471870971726879304563658810079058507213689006004604789460579550440625190805982526380769025183648745913632072876249503893257011225472587609630271339956371923981486425152213950136107862920151618203309516542546806346522853857312386899427183821300259405653362535568832773709022150142080948589077318252751686977177489782841163647846196524022100312772068821312779529718834486963491783014221622892790077089627348002335704154405603193186080659379855701693361404204738350886611582119643123482160713380805368414912498373542349911025149174198189644378480047383056205944849214349456167858659048288225833637758911584584864674609343559320002245325931796778832679621963041401109814139141934237993669286826216379819411128040717828942308641500487254858085661381123098858076107877346976504060721662096457272399914530126489160009800776999204288144513613310846473791677774827673128774447224349263468602545634824877181734298963390239693530148092875418800447907482917506462475259339174945493746385074075534152331005742051591833615207614211280611614252325267440078071091816594960565485057614672275540603327421714407684880813275546705321971141513606486560709732063362511006917877158446987140652993596071665613478376890007376889940420581960416680140905425090243775213221227440400336257337710303519990579636257437588809421997700331840243471264592020039603521501390469868677236388689004533623916897906749284929165058616910009453818146753385586153663977145399020274152542195218374855893696645838586477430707573910250737377455967055017185831801248644776658443095826358617198656620954948016974588238539407900794141397396793678550563685647251152012989205232198481246952402872206793641695115879881211472866092864388954420359325299592783193688499193019879101092380064734639460361424887155702435519669165754581176774998030579589079351005117889605383931302744360143640077446796779290023744657900911515116272729091501683181846038191751712138932043055606532397346819411202457062066422948842498404193343768344308926006561453266439316437929693774141026810760761253549237949458244345025633751471958568305420429273387698762454644565434024381045960444838396645818979808363760044330022799033361830334843951788297453826387188988254734679930711554096603417592079474480174924418455658816101066004128681872290694346683629208818724571239742908022361261041766345286405515509777541368020044993308262037717228836849104289454626657354162790588103793005925296956328475023897188699290549791606159080398424870019579370344692023106178009546883390928569418260326894161309693599975227346212461533984822406127452178285342184721543479053538888080781478903387466087461848423517224508817334088342371921059445725637267599252765741439464997207095681449715391573216508599660217486773323960933060924894675723471689233543170790760870616954642894403812507853255360915614301796816685901347632734912173214222428602538012406735282756768337344929725678693518510996092722688346202904159374074592373659945243591950986049618142678478151520890832195304728656761022033000307402455606009958673727659946884616019449971024756241409833327765605463185041911036125299049312784022065605140484759463764101275770851496912286719552963616025486418775556038825244542323111752046936727829983477074555833320061124415898883544007080472410044425448686979469830304670335629285108044846528271796138022120129924929426956602239508544048550794709494825152406987361374449016396204184549789543962438942911826219976737421244306553424621449747313386345105853967336645655782086342779699011410748887533497147320195863098728433454549800457120711574450858528356829751851306631715769208429191785841500182730411224693328544468506176371327688813322893247019105766538805845278335312388365896350405725227634470073876194652789952402100365252408343535854681628622706645768132301157872135953124958995775071392627998710052165465345938615927635303321541809817290771906306852162879511450336040708763669403356876292598546321514066357812805587734329571975757993831700709259057668332142733460503665176884037068117294580322272676782223133921030510233573455907658114990137462151706210393761461423073157318834166409500625850133154999289333166055687262275701712206022335664153907609271736767050205185241112600996249443741116230640853911402148273840832648538414244431466391213839109857687487747063803359201843425438536528635575435750630637442561443827814586987722768457467894624295133125116664115172436956118798433082129127534637818457078135956760601250536853722041815588819557768998596617939136473959911754052188646228344778400906922902061011362237790405268270389122656060754983972721815986221154371781378613353832068336439080300451276523985080281405721397288471376010376714194752646476983155152361299140598133785570299723860669001735548665721913746312946703042109682298831568941210109214969046962892724934359054223865917664348427101858692849326532591123685428710292006657732990125791630387283623250908474633459873911399719026286045430388489656360711496469913716661486626786783428950765109306347786548471561806832291857051809505177422434918928956453798492841612778500173834537148286538755036997831340202276804257349676510173124173296338577220698706038416822275155699855604856782134421631603167618527794108215629751691354685232186993091395484866870246655502460170869007984691881436276536862253355406167789310539877219874640581627222628884922587165712737696101771635712258044825594801917057357324316641752576099887657083785700340768392544848660858449278605592340493476213743550779587641762677961091694474346804142544217480617289853381821450049875376986134368877346810113341737104710903161032596097016352950999195102533624958275357321177821610735213099088435770363326214508413180763700679849703491883848925058756879227175893493848456182168169063296118819864148695341749754208219357125679663751458732010868079860827147471150564319156670025835698935343262997870100030556886456098459399715863946871058570707411512651398755983392240160215422020173324816212823475279341720650563855873568883296521067010484808432566616669650447732581850439547438957579069543077941099943559348617042797427773410003963689933807574946162023170892209213789651800188494616533798939848374574412302581334936615000241318014524868656429968944568806542190200192361604262160321376878090430026607371460401828243374590899347664950129987627892711522512892739621439833663326003033329238254294757664945068546440835831132360370045384733858764957857050026485840337809405032969377778235776923008686469422508616224153685884767336409479085130106829157573771734868371839614477888341634011105398341851002380925277656857456571749492645349493214241856339917305300940780470827144124091467522748410784328248875324553985870931518515539034913061976747614070369278773209855229922643799849835678369585376406147536230865127996250058285001023371513930704525497000012838463435612002513752106203814054686354674262084951364352594155127996049919248845407749186046271206030024144586188234098899572438249818075113308154378671499124673837252507411189903743154720256759999000717488251930875557344249423056548167065038852081214781366184954183071244006666508693882040900507188332068111109415043446839753236874669086925006269330433189985629923332145383592832534796193698164717244195589414728169984205190285402517239360144394441344036184594068146130024841894641532114665563288474428865830163993665614829687261451296158297884841081336164587381568941449703852446412408130894128287073890656211629684708302847395535568359268508940991336269910854010307049293388926118972241062589240282309725385882655294955252373966534117512354453525124230445976065697974896907158359352168657536021160959512830408466129193352365424747333132615510082065967377368438254301249944547715807770074228276049108891906867973822124713882086369918930872764638101297028029980105377064748352732279369512503483544767952445249210421064517388592113155496586219894486609336732397492585877015762599199797008862737309960089125437057236355482261833925520786958308636762246443967411004806445997361979358584053832444257206422118994102126145895724221147658190639566938805822928875758532215007685506559951576678428080099905033429993943706929005644965930611899280946217150360327751832495613485126827347860087259896044093003264764563686288865086637844828672586637369244610643845967248792283350853239545188201553403655995845256645286252557652559300117789624214363823168207778361893272832526049722991394029158235889385727789571339300223208760519200708837774723934557956834608205437721947599581066294621975200176929942264729108186446298859923152192968305162076335024106809624527027939252691198824659680754857973678816310094272030707304354524437674185354095817895341492688945872163535992713073454332180155457984969604887023803891554454459197592018691392017973684825940980381213228979923169713409329245716129287405322133870747910088685832369260974729985335272674627382495612111904594389975117225931482418192019644120792267594850456259215627975815398859944765211346653991414437039405100128153242804647351598148955617052741196007019290608479793361853291807266487352484638125464093418948269951744661629403571676250725796875088795070720217819985902131657388709938064192509492114291386600717183181801557633573275538128906776647782713803534306345264609365730130862435734233902514739875886306179731051481199063033897156100317360851709978652841575493861024380916408707321500699201829204008455436554874169454864574641982003001219553923674727888067965042630679659077969867014292286140532551672234492908940754471883546272540099221332629299672577211092767925325760991992877620303225144536616584721083659389436942831432562456425426885956424852463519463786052897542329790840706035995563657795425558252269419126071646361043246010172007959402260967068113667972711400410968580971927122027370637041336770109456233104662814974547357999384631437459094181994846062527568338283460916587890367683484120418345802066933391478514948235748264506570355948407812847115484472577962199410602138472635813207171424457440387621090860956996904555973740904435567067519818321002216184250638240705882848787374450887129924628574991816160630919518475930267640265046279305055943571030702771088225174415473541457642963179109061775140096894208678595802176328627006881930860524376338694506470133629717649532348250792117451666808011871045738991322272428533283411590486623806869806798430072497184752529226526407505547158280931811750048714026457637293805800143671301942774331681757989840390889209113617500460924874355080457144418386328461470738899471127196022292440344032457834744394377956074770530744750794262173947125005270022054529088897343032098962204994032650460065762492419191075388610802816307694164503054856718024108894412220509926508319720771532828863323404127326859388246939109617252462883319311011597709089246782012131701891259803657586778605997270973495708981294959197169308471789228916617374250591964260241816438119371648502029813688373428845554365810416857129637777250981914730000682991399915508114032286823165420460257294779555989747489408974775956595405690672970737668418681301306842248177293154284072899703317745577069454207003244062154463399189852925102402164504274299391547802148489779030528924225112272351698793304281071681794570461733792994145826523156637954355025936183127850209281027846865865503349336134797594241987125374485713157173614755302065227174267429082117102770110533784230769548794014913394447590729213181217451324590520113871320893998640111310692746606572853079795596844524050962630429953981749624286679187216553613183359127350277748181931852332430579993251137651990520155770373336471148258084201601683449922285446370787028191029385628221048795751772179567711032702937234007866972794780879090504560404589594449010992667771514684648836180948700246777422751115851827208520681709169885840538953226128341310512153509363919288109249729445888943205204004626591633708974364650839203430525842707959783489737579379267529029675738107474527855075326669697720801519205297803334605005631447014445746531989409643625498985297015081310741979232356607585764352639760392125545078190713078485645524561842451300226368458008344961614314278322007393527830903136268062207596172082053114135023657608207392720967835371323044684850332054127371972228360958772231087377075092929102115015362463512530429551421773770110271566571934390316595715703929246419888113919658703133526167661949904532383274363641763170735548700734281834843193225849718301088918664325543144747922023932964625013495882549928906219998735343123320510469772941892842693777700171764083118531219185545146730358831490963589448601514762007861307850018030748807205010025416613339965562163328814165253004377527584080322536130083623241432435990241849725848273967948453459458911610249090326129283616873649980596185472882142373954721860604912794666781733939269849605480913324284240309352767124577472465035227151249797206316033576964317368416222383255371383561985066335323984794554341011239403008752545818321725357318486000061815306727189105834150218528454040823604136175910299044654613786012860783231860176944611309923007087328141613510811394839318312612168428195313200703329150482899759923561001756189640693142251528690939577714818792174823512994433469142977208421671542849377015887596934854836338498919329719066281563354603398823070830384876704438363917910398271966486748678525980178484692289743674086533990610921513921282539604564613001305641531653474427013646017950039879248414637655931080276117116622158821375261546410236036359875066702984246879021540251435519485785775730484153820825835988165947407392904873769729132297870159445639899263244794029932316250300191912847465621047874231419443616255216168381979447598127998066153405562972801602142149674222947739275477292548037572477722462185561415586646108181508022501449731990421802411402534227258295287034357732213057278614277553615171859396338444554034183399743183007899304774050947432050233058160370435432746143579853069434188926374927708904539520919166978344746324502010739407206994748557382156765793403881194128767949178052789969270162308388213888338154846289081293121426488427600802585696664967889438853533758609329184011239752946558033576941713644831583542169163546575738398839074853475047934379610384610540496850409243911374950428336658311050302626362197004319268108547045233082693200560245819006280474808331995358029939857276192740981167124077730649101105754574113235276507182981199405342525600899742002571119322288861299274998117323955114785765207273225284761158618369842725659556450148739463018225187652824735919179114739282358734668762196180811716148040036170478548624308534907388815941250025681328439068835673536541043424534350875125230173924019702087002213905180789023500774706243386808848241890488234521741358992397373638315079031426581172710520414455997280249385329584581303775604883755788935046102775348143612345404931412366404615586168696576130029500953361039165975235008458252291485931102699981447934949538071680222489512313605947947845856422223232410569472270758645067124423695202453651538781801461913991839386025281682794280684017454092136688717690132592074856812833142452930576363693740482460179616990387688632074512288403247509983582776664043515869881999721566518020959420716355924056883146784060536202566313423105560317386237004026944845183784001892417484605563782844780360723055242103573683354625296875863238865526776083615227667546541054258516727806640603136735510605852747802076135414884211663658015243648555594612055546804454415629162550837471882681299178494116122834212150658313675507043349362842876952888809616792606003502678545821278450039798547345662918565787461574681094183849433124204842479104985268801716563292785585422772976873960494374655399775806041251373636840488872675305568180233529883208786110677934851008282551352770882347861856178469363136476780980077850894567553124290635362096365263864786532961453445465117117210670777933840610115635012365963660676084543986738786147791613946972800020959148659111523203694280524894165302358123420361953649055725841882445718981273665671370913003229225682093660749300082726162057996550273979018914438797210599827909633903325438985745193409442825059224506561845225094827603959794879382151871293672875127378827790331950112803550344757496574424436803032622606897332204024867461710052635727600966329648518186492025793400107929706754131801957807208806474174361439233404601773213486387210300397142554047978544523942520319681118114343900803606591113338627945478503779212860126349022930640288937945393777654223191884328769215928554398232402759920340881230700068726669923435475669138040518358763959675674757767336977736021388375276204143917732240809369767399010209888511544082209823163245971191455379669505117825240965659685634650090399231765604133759783007897172827470267776200612086222361577205439710655994016150508748073257100417176192023911196879256065021651960865439929072798210098865779351548628459016091338680703041581790256958915667445565626283663480352169538737331480312964425647428911121060177773612162348947947921270865241002250220424203801024937077512324734857779494899749772559663978082311929358635825280627246174037583964812038707317710762264198047481130778607029038350367695052910879383073567745997457164154327714641944349988264194417532294892200312237563290528838827782450223531058748132497021688518025764334419906936035379296826039040913200843131771607901183863213902454220300481477472752113988459878040096071738518447571239019725585132613159335810726783973801435444717119394363453040402224025805149450620918756991331701938575721204336534920356844166969719649716186439798794365487556563842648383988843251088090564084723543930143266596882382426584592025932421368117873620791885453020572882308081812124239994766976318015456218121217962780507388499177168410693559452965760756552088261543461178001708491902835469455265874402367100004410848604144877922415150318526248892617211823179475413118202486182714864162947581300774014161232621868567730922847171723439729011310558357352070319320640593669090090396335432449000999021339189405273509719304725127566941630588337817948470653590108320740840583055713243742279543598066923104859520259965923806747034745663429030302736062521083729303986395915994362733032434123550749539640294534627552598460118453262132229535681230383643794329146053091615005944084381394503533384286397347402137924128974368125169899391709540142480275474018364502903699175085743500937810397827834829281426237438527708958365406385633280746204132623132211600898221257659643924639254031867328500482787825885390283304720111190356616638933959835581122621250856661532620170557736520520714737945480316972339731312632009888874984604448282682769142872949467280626428257365836222329605091642291748798137934085704069268989821200833410989960766880244586865190158692884363505125346410959049187872370063750235489582167993374118813263761147401059402539924463382273079251690334795171008931818329051901149749924988960269673941426806989606787569757949823476087121565528217559552027173015794738092012223737523540430663822726484762117227937477299253288759293164065863058607660502993244257904099417779290964191588519602598764534968397580102301667813315269429479227898091359184469766192465813359254783337713188818507730426726015353465772429619289078182555201008474926093370818822223988418728644010279756746018934101921163880393641144991527654213112887302099868698253053222540153457173262350474239592226974967262704806675171562691874762367886986281866550589841601314648353323935516243994984911914281554323053243212279930318857974416304643658216289358024267114616575511419321909910892089836633101672527367704253467279286739359566894803445496679436698964864738507810942122746354924801495394520107765090178132611902171067004336618730329783847575163928886520719492809989279833161338352263230966288411352559013695002785000240050387976564170978350613299111267883769761991538193608758661837740492941263356696001738020408942438033102916983457273911808424351125209088830695229787403720006915653410890417113096545774769856798778222884588838667727011229098602674654382711690104774349810581353679914459655653678386468477033603831438049135417748487586491043354436156887880949418242571494757337335251878323896891822424316721187722482464363263753180238804668322907801672747615958844245516911469909117776057129495361643958906051247203914635091789996103265067278067533496175133566492432553255118838136660277030182124526278806943229138855957709294478862977442131638775681808602295594364220329768638577529972395481271586005991417943406012854594683277294458486941893077066432049266770722868986850926054862422501551514917583966193866532089068835458790191947056038750794011142155642027909942920900501926107465700988166443355732959577177356247025304205252730030786670976879203105372164419515613940016989840967038983370905481935920580138470215371864892359268909909429122070798161136084488953669022959068145444349519748037589961487560097511568503852297498938861983788520294534204865743370344789674048615505365812971071598785766214619835790158604169705803639060626801978014668958547563335441349282139289822044788414178265887933487494630229665599744496840248542481271705869338505263298557422669260017478726933564080349484248855173639103687970266947832480468290611406430995285862159774119135490097870845718566653047259898092006213318898289649824835861709392404460417159278647535042679050166693213932365300349883254497075428622757319432802556735485670091978277521133106008837774843394158730305238665077964335012410898782004710134000468147705346147299791833436649142797128376732273233313856124940303651906202803422738422317005554378820233993065818985811636327684304506938827548816841571645084247451857448159861954289557042110937043545501356968540050708563419825566635151135448481887990960517811610567428645009954655745794145707625158408024417225282603397641980091935638901945517413368670863399524317779978782890516177988141838613062641269741468605862571263649859964908360405214048563455973880810209284536113977104449239643491510343450255884215558727712770300085050008136387814526617626797966967709347716708969748512265613875015658700000082159819215451432783112706430161382320815234590478544363500157624730754844598211438438929660652915976959930207249861704547768852028871725200389206952073779255086304339739722247137122489589740968101432086754276315395027342631688253226408070275958846606201176686262494874892823830078171863510114995475617522860623330079260636087188400515951281163983200356377255245724018111495130751449686599211041493401888233795385805343453457705940934331931516527676656238441881766395893753112124228974083935227017106087224884997652663267030279548893675899541530809956120229774852991350497122058871798622164544438401385201148041726503902022526163775233739905653351724539793096704984444637417981973006230180437162664768954750541525053216419354220532479649049477256839970400457578711141632426649631984847103458474250192375555334446807112305835290920723417604262078820301853448829932774556505994935002370934903998996642856050223406425075035251868396268397640792267869918337403160896683998703303925545973616853178028122330077924740491621348094106188759295304076065899091956367242773997872821685154149354384470892579641296391637879988482468801150062403408143530874660647791508692005871865245046681801706431024025786051638839892737992493137203470720651002735395487896804058590339545816456505863341847093380855953715972754801811197379261943404724989486729395125761169284701361147294723196122605908192701912476723093585160469427448474215841713157923286580711558522101134255739399117295460238108037688430884977924080805723893647944927898490563870734653576236864200957959195863696059024237758541072334203715069062881509404680434573711707425943619638669477699681190680933692576797881453897733928429688742727649493822075026496873422638255984035314471735729529792424621031366669875308052947815456310147310234613901537336554241981586794342145102452615579426448133892567494152686573520953426081280710506163963322178484147803340260614949510872768184510975165989413831158551603249303181257717051511748707910190063908472640433420841268557521038062393738631643473211153517859581853187325360649566211094488829095600942326323934524197675592205953293937982807891666559327384056129601208270887877366791163307141985747325716491199484134043918680622514140775570002695417117532673734821520957728641809890760920588000265940068865378882597594093677569897958891092032472049570447560648978720259095605995441950298300467378720089700733735680072061761920820203171322692306954011714955587372096845824570275951928505594845517942252505235166449797897249116687930620710203735392269073236044917050107815060810235497068921233050072207441653458162364699085181209667537342236419723631921538691414816432032103463612489161438080510775425501761551410311638296152985950391864327526280948733656074455476555323172976512046995196771420722802810410009717107579274724827339338892925680898502695739356411202730488913792337518812337701138061691873876440601625226723350699914115781941055012566186346468608011840935835300024724454591829555849083737043008447674770794440868377071741394660667862878352183788212338919870781754976822754656457763451553907053128800248852861581274506916144335467531637542360842310106385120268905584811604549504734694754195086799028270346304964508832276568503369110995937240231390364901167862182226924386352201383102869101181779126893160338047205911194148065145666450110933644427110940669812513971010325054023663581892524451312238668632222860407339398750547676053714333777853663892836836110490427036535954365181383540962933179043523152075048404238989724399526407731341061032336846624802381018625895808278078533901449972511186929831446364993723814844459890384345352004911255340502233575398466064201970957228928195882690117240993939664502087937569594330957548058641057843302652214344461332233762153713850499108104789335179734674541331610554883399082339274623458128306222777522258970850541839762713726312183004651918323338779886171822569285526057537007008345776548118185006563932895531722656695697620923477262298821941179506304588302647310446504629891999915082465374847377713390582941541639054107923456794243623679868017331413123871946342991400479177383106351713114116014440775013504582928408343408391951441473433382370493082423220147207694153300037086320116210114180834648737265251136362921731963922816350344122462901322889212721146139326664065170472044886273204761794469273336233875633452150111965755403581600614073979938370313352471345374205341225431971193282229714937731571006596274918083536388743842627568905367752155698250614179049938332660442293585274905067776728374530869425904160820069593422525264879367088292904706750727705500019056625520841101920214305580731805919904976742902029017817713185807855147333878855381490859964236377488075112368666974865382456790026266774168222995913898421353427309010575765431319193538079991604132038300846223498858725749540311252324237883970833735445592707195159138590274588147750896155925058353602503526651039305638276206007018257649411084249702555580952427721025225278310168601463101535581445087367049332064640948271600206218707530208605560619911863184511214090657966139162692145003200129986294275294640483087550515399423034243935036424327073275138565485245559534136019197505375025642176778204442715115546912816222205192623572311686666756771529605016519451846315005400707262404872959705115973420017526307522063228277895230700512562354808162794307763665226598001186180172402348819978844861837173668515808292774853912452134513941116118348415813926837210183375864012122141399498551682877576847067369316504169612661523080403832929640054260443902972197292571597472002563959353452754031555309245724117207594589659641440476493505179982851843626145825322997838174775676653663732244869067215251126488793002246392493373838179549108211515713843655176813920780989014076297280674735122033486332453225580725673066844345651192812446909050615755296163140104708070156790423840580623798720898048806071468659361435495228399357775824200232706632371772791291951258217903286423115828273104504520389448074008734855799869974887819626672748537486178930519211832516703041785439312920374584237828020753137884276226084348037074038921565689054979293654372440632300663120581952305789867956429417563896925375453831499344731334877412407849160512467917790264246774347669357137678041588838736995858025691006197175241338341782646114416423371274383054798003028622901616696509005767806302062790263389448221325943846374075510383367264780828288878316984930370851555794917227121504315817718099719234491345130212742018610068202481455400261163281635889530649401481791335433897885614612721941347240981822478699975557557611699931384546391330909548094109067274291922517600795853690138427528726142700764728210918421653712368058500701762471885565651963523654352517335217651778979957062733822462703098707526574524011241489440054793343113044178268053462895324680103364379548889228910428847528156932727713828441007848254847827462244139643157973308772057517224175543911211318315163311364664098660274021549297946585736052128631073947581523999968330021566036909622781026016973010485410986172634258818093931980064603701013990980487396895759573754351092688663957641509950223923254353388054292789239786306992916100660205524149556745758846344456335047627098916311680306399340848279936982692760130253586981162319748404349659905038573771946477660568544671002213241605011687481631609228818919156749405518847934586717906697629226318729479721037839357596393680885358369631858252300643466821150530222956393032783536370272179360345077633046028279735545815388959656411439681976560895683455993121397615792348903426647973564992731242287593621681405493093608798310780800405532119949853812954896556780752960630182939748487173560822732411433162149194560607048036139535659295819911736604809859493384979354263009103692388997107967709722376445322827365708923334162262356083382487804446298113662635975366448406336455170178272661961961851593147777586942271140108325097642000005155324925633724486853491098898089884361265057779783036727588302202924726942054781250081868676366411872441108426126958318390077221315966447733117348476978390235839384114488468540685041816749978675906026704034569224431255030368938822219325796434253678977572131410786011255471718473060964016767057859153149219269772185169730905214448621287808194432028416288853890563394186235882810623783057625046090960639120051712635237351068748790845839427928556590801175689805536639013763303079640242315479349652290113755098196570309431135934425280803052944215635991118877011409465940694711168252339871452891190755756668369448632832903409843954233503359391626509198369153189078615607200119337662044383561465663890930284083103124367930079699006788710920340634214238356703983901949458779615271243648134856355007962624228222602426739749178484772970381696365318352129017377455177231601074374075677348541918097423687039561167537700863325822850859756783858220262874491698621577238220424381289776806428057641299584716843037125608848253171826585977339339356473885401365150357077642086197177030783206023256386905405601111938257510729093464504899039868145916253632114982613327737077010012893324352999499352501078907273177145924827494784278938799807686501220925162581442393876922706415507275719732095519201140423131445736002226823856071202662626735097382907055807318814409111750574904176953088873721914026679094353428753870697614400965806048964802165499102542417019939713435535547935016514795784480635180196477580245555157995654210054593200641677296018012505405662207898267366524756149276387013166930070353352018130715034584885871322373251831829867450742758870763832202866970518575909799624348388546417248994962355396039233464052702100339916055604483100803358337768532246197573621577376008644505325627856498272876531241895191445980867046284952797724382000058752829285768573715116733014056113370329053928685755722119208507204271885976428537882519260228346138341021514260324518721056772144701076267466549167572807943478061624022807019639756325019103870732560216245175077504317598769727183473499041823407653649978500476916127857894160936768674593761677064159815027660412582207736864130288462498454175470534375166161488627631490465298115931900474887728150059315304069256074929096992182807015016006534530879028622915316882148693387283293689991591113091961271223754755610192747514677761953724491428877396140346976612372210650059163868854654008969250592735769418518858901251128065182526142144902077308909007941310165682690388533225718004828214678335835131651663498217567413686447414613910373846508321097108815771104110630060150820530145334242936159721071594142876429597837643478606896677908656803692343480541429930874016354604648562440346609663224663538254726988617611946520144489438416746519966643585210276239215961064276797333829093026674794506793425766526474992137539532591207575814843958037933588452672719602712642795725887299725679027749018198147174077604600368532328491164060623100299997730532815130666546845145918925604474425185082838830771462754688944889291657478947146832164052905647327889758305133592754991937713359737245821010195245569639347108832382946701388620410264242648155125466919989006927897069400009548167376927025548180597641958699462277440197534379650828113690040686691846946347585871828421620434176578861340521981905267467820949018498937048718505124614751861374061097469476220074704097609506137412908195087956179799575655665852574250773697094689516239093192792503928894865610153447961681682478006246038324894390238263481609685579292028044465824689029498731862676989371540160884354356244740513723659434063839512797414892292011597953246772491560965077826490737870359534303366000612353621602145250260361219547000309095812519079089744442708389810140986998604981299019267814796682939776355920610055618232031217451578927643985637395113282997479049425765161041258022025341681009284129212259762499706166268256567451467230396382950085063435675431671473489646668165556082778387502751675614474047847702446540781117549990390925856827620196942863891541402374733345272089015480336888236890322049112713841973651777966221243642740419711384195551664750875560857730983180600885535440895240331423516605530748102166750266397992668114697735365822874385120257690872565872100823283900142866864864118537064089924371302983712074570856360527181529160284043177378182085604966651100979951174664619704105295278607184555132732669089282497271781212247625222603187625750477583831996874451778185104402572980382665692761278673694462336496530732386849035885126659910083978244152610174841355519259258573768583227640132491190692794050049410447412362680658848345006968887901786515444290773934523058769915200693335280371372775340671154144489619713184856285383355321759143597597757845154821555498834077197717370790617658330413559331128590777316406416787138569339125758131617111835007304761825659791530960600540655347100359510899174686713065225294044225265191178547834067509890930692076353709295648507813428041250249557134507395457944800389057006624636192351851760387972475373485598157588741686321522766072233728663319608005916668123854689371954109758912603750337621061916421493091237635621221021478415165897366080349499006403412616139592594588236112735367281618788149186205367950842876660774160010442354609081781226629602612804992515917442175718788852753975248515874770711866630315174658235502364198650063932534463983401932563387365472208738517388238292490226973333467900362369312702422140359455012153657801543286762537606136284508431053012846474582628022119047351274026172417065575589353892134705747326882135592538820848090347101658281532243189140273512404675977069284599397185069719051949676550492781606165305643326933460951626509344790708286985197298095548398754092586463734326225609781940075381748935959425322208161700185518817457946739808740343546692427188723750229055704154448844494853288677789947988188917282275842358489865697418250433408133806690439302114658301170855757794512684232643510408107029966125541677142445430173829683759712698339322390061737205505467511533268926898989891400179503471489666416473150482912656017348210997827658657494631036346211973011580048573269428934758928017452781642170149183697854352970908109551580539975319143079467101136510649840141088428029499813664046014952541699769621636753963282610663512273618130350881463495544927158878523035895648912890870721569191011566604637625572154284365715138952533665954772633388166450681037528065173768881387549755295088260684596216681627219408838447307278700357724422456169594484880630108844938838698660986082408442585973297271117817119158293766286320213713025768739161283270222352986759609821529130749047081066677158925071817118970804290577171214035216372668098694176611303833534579070016485509612015568927981167427747185921347914755385816819424623250053687320826128996308803035055508849095397645023269038852917990653979096626300716146775078199361097419466529526439754972887087071386192208016337186293274296403206432406637242096972103101552391678136703500018975581886568849481568284097562208679917605778273332198781931134572800114488518794494907285959260467384989787044939780242547335534529237015109234727382172973691210496815274778115669696530242536195514739857615927771235343872998980661898960578680711361827178708206109714396573668327410643124110729827969110643020659831856842670582123102256892811148254155502910219051625693344920714319383136692026827848763810901657666718810657624241004340515984394151449268329477048437417036098798051089236348046762618440188143558081539429086453299702941687161238242664395932226701198420485250235178436968547728567434818572515760752048880985231427060553737152775711468637573611837534318857675720741590479291808105440080914151818503299517902086499762465388388703175501964617903195349765462604610020427304880479720970176020703804935826246250342411305306378491892708397825534739140467430465244901694224852927659374873599446589646288528122331080478887412857719930787089590898929637119839182251085589469738453881870251445500138672450381293488729815278349267525077890074585996449248893874328564709261840740558928468439387848609686226540938582901295414923791241840772166721336096011051364008993606899744944287775546439618425102536052194864848207042025314831793870559533009285413708991905750938142911212691336928408711253643600823832799961489600161048719791882174907927967820174720084551276395065365574019457713893528884584036302503419486073179043069036651229695367313649514944964118400551748947181578450327285717800570919033493667312687953608630770546401702093925722913276228561310498547544713481306475582071473962902042534689275178346362241839849089134353275639370033219781825934798333512827052056402586974492761504625393085786898142967108628125690351185471847150266476087020157381622843722571474840920779937114157380944048204185071880549577358805259402905527625700213233565077272674201472549190415346727726281960608444299890217739902041398018675399130965428016280381915272500601169520026351795785350425493912493645710416064403913312059794364809927770481892080886344989749459364019254921914184301404348609494585779383318495784608314533942177579849527248939508245107571025952843700529473565495880292398475064802272707819228509644651279782796839698552173810975089186476839283259891686993014160264740601156489866288386420211011919166371139502087757099928929694144484358988049359546876064256608655781703704421749698917696817420327160602047620083317328297718152982166333930713178819375588291714545764969716579994281394437822946583821394401238257599469735216158881344750123729629941354518526117309205614603057076779372947666261083401552621690812393420298807481891123424969468127126157001330001061809701945810819650513321816360916319457949946255796033800037460095386995481264886022703577244274604230374197185687748080168483560749697917208921045416715370195092873989559341102966535258918092387269403400494300738702895186425330317068338585428167059003722130268678897906537047150688727914670425097063933943440468659584788772515872997333153519222155748536847068741780637702035834730213761842859972758674303219858206906539562632940183444069549830384636545794785226695496217256222412091671875541029467814778843587599024922985136622334625562572621363226530758052258183784203272947987754040797033575120790527197169599475562220735296756365399870069894048759845423168710066102092590277017261167847346395635791090421781814274417351149612519305491670715737578708534384876906280305087149298028174208420512322928754914386202417418677094006457394003337926652695339575313600561267829682651117170479684494317859385184508564766026198917550469479043562908432824707623701742174439355508077960543467785020985338113175291907957819152917276794010926962699970053911272658541821908159536775175583495952999337886213945500441084148835755962275393472716929191321233777836351665117798491770104943362855312872583213225264066531048851617465112337336908573489913615652650837162157421999602253860578943699792103055794618936316850765724315879883926935340629634817966868340038256023853543766003431712885608883420071734909541374323346304899377545405082832267449556453063655630020360848896582842034610866954473876591687855203812081616787455424350194790664506100602137125181605898873535639701797912802301837010681197538405196745433806135273576430365523286532091266144516754856279158470538055913541787188144645775171797419653279625830076492196759352888862089455457323681300849348908119484882965029010324766600639734010874902445530851245915669736943834594817294212713700265769809054355438363939524198322202167488746926189501927505695198393665411259222149481782837851522785102288349409270829118677896639387528725382147155739164022139060779090405405973322362607754253032105182205175260800245740298314978140370861067527947396772511856383005572073048768189013251419563378736310727596720453549898678336278440941651895735828623281590985073228134090522330642180018737596225701311224219461787500931135486399106292200555721549289756618410840531700075218819364077078259670695218713623028371942838123255229529016744372200292232752150483736149515507375549287386093323098627971043321764873009940807229273634238334464963916385990013250986614588457163006291246046392341883865863757928015253734054910502655284178197488625895358825000181687233720965950807351274918040822057794449158068573598081398256315166976180245993694733115872473197289781315834816646635121983071453899351837750534320296144265012259713218927083954757916994453304573187066394743236617357701487761030251482933551140218507385949002677831158290807880003815937478211943469106682222823997367345498002928455375184281758110601864797983075994541776268219147325091702744566151828919861413178822390430630500562447344447477855487283734418797097391570577276099307712517809671487415372246066244014685396733489941568836659987818482213107489803325709023633180197732146621191325037112201263296701825892051379283434055242173932785253036559535235498834720200528959812853599415283623881913341219863660778066160239333958846030411525874380515777003759138599405051421644355343708915979435840106085349448843511271690252868964114804210848211202528706690844170467426328883190748769607445303001005487941031768379782055249911770827044882577173386582885521929771691212170528174321002256778888268133002579771524819990674139993791516812792888395961122589803725204948542734601461602263948278678656108258309933584835183384130185783681946428998511032127386618094622285194240250043851080674274303640196651834591310993366873407838134272210384387830992712280393479081726037237961772796264522656825397840657401781705011253709803394525250365480874800993507647354988553111707974004149106812160343060016184645508434025668880323822519405468760884476881369256939160184466831636412192479138205100937022576188625219607948630565019306661811766898379172822815093919649218024461349738505561073315658837412760253146307848212467034624076329712576984271651520175138755827643137996594700450017944134439576726631651786034220424076397556734942856804746172846359211402349683498507938000414948127200026446430513643306665629536844978455774942617486712382746965250748482044983863515454858125257244187314144286017066604794144592519109982996885398273875754434287328332910503790462209631076224879576964626836660819782632477652733127259251039619249151344125397276559459545089727108632902200122412505249266428787600651966845837722341791208448715711317236821126375963754794502906150122801057358975088182486684651862031278333356005149394763039853006522870708180818788034122363944825976108349227452218161852595367833430092046331854187894378359181783848126697796736087331828810638907775950582732427206088632166534303030831914995195540921946778409580568899191280872075451395328577096638702819433005114820744450653728706486210390452194176968260022727354063902862763038452955082896810422172369029548984672710502989165529210693226862900974398824955981289528039059707748866983644488050095254254811107339454294046989485974286496222101269060127620835925881247894191816319058544628484273235274303023941303815271449254028375648517239522599918311959395892401288290359131018207679179931377789349503515782801604148833525469233695387403099305110005290830759770386702208465587943927375784410280237836251873222274279387972407646357326094618032043643327606745420522297366184354740852566028741855929914616006480602173385076082024334506350402869859002611897183618650403827003939451720773770848854100690751422497272721778536064431624589575329290146052635746952199633442913990792287403558454282944582879748925787142245170518012107110154952527866541827249858667817029419104284990582722499022812156809869992596064850616330440442641197340050216846215373956371077741974124323743302575170748903012009766097548990806268578108453250708947511583207914996820083493711736373146718844103332383718684259479106822311314074198943335351704735593047001892953953437372740639597179957095312505015523695795590344558518825630251733343391444855355715071681135046443037653423044378322659597000891457162528222297894624608608722727447782876804615533788354809015363393090464098884139630204530797042463070544401942564456834657762414915455815332911870690481066688526605288945860100978057597883204893842450526970890908577829996630029957063124052306255770407773284198306149809811211690786033613030167015407847417944517603525721288166010273111358599714930982213616201966936761653850539716739886652112590395662294320482442942329042901193625733563235386983861789877078213983006175546041857059222500792283193475758348735677312429496602267254281214412036097499766350406967642570339545226980253604625017189721671668422560599371416645619662875931681566952195730509047536632348153303073477709112321856424218927786159298171262016081236838153861507191978029676848780453885086067780968237796149501793189067722409952540504035197050332771085833846728471395471753788544483957839147340407555583394657302075835335564844458141793658566023545131665390253050059954627502543076254212472851045882883370744457271887574446895080331035381341740875391046961441662012225295568473487526785971533426878190687662446996439973675954791356924235125533476788414058383871260684837678328446758734528959195573539638225205044406541767827383141976470122718550912149771577337232420292221098672987578858185362942484912804258074097803634249114004932141634024994058809460781075677002487630145091079141891995869758828973012125097503556835628415138970811562859386765716419909543250577206154953225226614175018588041876173025345202582610678040363423096511284924084963758071697892660576921022128587673195577801494302959512009087226870589643204763309834723860755910688494918485068636509415248603793966593789552147555845149839641495158182036337467958311076168792983158652801036338103569246143822281027744233649724542792361189589949480184633447147230265621294349861381801591843974645404705190859425434565143248350246324997053414556995214054695028707852490723289998834047649051369047847995658702768463482080985387185618896949405513239164280506240310260419364171264636826803716275722954360018785697867371970128314946025908811315328804063855273108660109098568950985644472989753474408965829329953487203003855758565615870151433912614208161045473245194032808202440348557457583130321651582972926635864338912860417799565913924390520456765851126648141848627677063714051675722403315063193927369095381939321573973884584056464666084107077101193612526446833369674971291814058664937147564322092865028247099945635705791599172982020048799835725996205072947116591078144095239479879877528485410808084546650952709890076481586472821932171961453908114251379351545243212936801350397196128295762793167643389979120558866880231782483669643229140923163006960672444124557784845286645216294007656318173362591043976882361505378096667400259625487666143330901709108280849891276055672167354279163036286798783215532585663480876863849292856200644686308992190664813508530901292281235197968038395752077319899404465189404572201969378776479114294117563325644889789799821804602095697467569906122307336874989632542534987959462869026481473396865282166428855909320994516272306732509679658173725039147753529364784426434160481428778974112659157036352664019297772645754909297793724628642818215623746124590807164728053665196399191185258206331511327359142516221869819110674723717672884565893838281842010691277671200807440885402990815501575791659872659595331077863087477783246839887943931183840415199514813942033292991440034567558468111371811291594278281320894259435160112431981441937999076914401873451604764370882564571375224814478164217358124095876398751209911223347388506974412972382143632280931249241896409663170135013822704065000317431966078067802691189634338517893770514091451999904021459544565113926615035934479426862767222262248285666622497027708291773218314849188659457738685960833491637068662207856582316535928725436367273812512029471245327282316026849896869191130961542947796893099050658499535223297152133681205700927953726750779416567453311839298428994521943014148785678637036856725414657777992856405539520373262651049298666419804976516888562067504949102707414247027577886586941662205871359706761147174397782824447643568380978224689691981448701577803258399627576712081362922338230694748484611692898455640237664942712438845796496055374508661605671525380250213255311161287752502023069982367685746212818860334121102557848350620952384314320479532422988045334649399353454815336270822286210432927345343169183607623297996739748654550877558343552219070591811410482281738774906024289918097605377745444075174702573670903305030458845554843791865644262354412988655506558307417033537486161108583936008754847826777289508461795818841540410773691212848823262713174664677675012594465233902231323190890517038629610442110492758711995406986166657021541531779729193723337087559229160859173044363020876611629451042258855418780486521887607317940768839054901197667107773794489837158432919919149213963729982981506316988577959695793261318283650797655403567842755833743725617128301100605151872827270252784542350109705270939809516447335758581970260750099862966766343277607262261507423211108211155637279619959809194248326587082672700762304764890438328207701330381865898643894315247890159839083004344135070426389195076194659296096834852538546790660143716609859553681547472541172915333113742846677145571256526059878939153810384562888245452263762631634885174727149438904520136431461294832649098048916738296529506559585778400574901233546216117474631255161535345213682116386390870516245689945679988509870209118788926717197947834988624526880319025377835953187914619113043762993013330348935187926948474326120917961701893133325097495300571334871841154078485759767629952011418482839754417313971835691742376055583847403855096100971455800090437863138602733791919198479881933555245088293483740684390873491913782174190426392048214849722083023811750171119381363279516957241399719372747490850383177024281134923055276091116340557905669924384124901593260935348081429908908820491020255003533556750274645454195123614091561226584475219456469964089221962500123057005298105032755358978130749114667106538805299836140388441580606639396668326420509799723077282807297413893154614433393178961101315525728707277153300925339504317520627288604865963359627167603750216132481291856707001203799317701909663087209427759332777366344145108255090587060308823256936669811286113673395952990078848022957028826380428466279205129472824626506069210827411482941224184564856773567014984070543969413408617623052346522054264380726567818660268062282176779669501241323675664358226656699167587443208652536295586916291777384550198186514425357380224952038053574606414238068333032330695059380281043955878906694695931131791519063767083656157619309666323531123714875494783296324081459183618354519842866297818762673306625264507720742950658042292513793820022800178064762336321608863073736833407387519414605892588399937094434875957978119897478097425240676422441306661455196209988523853342457229754301411856350362372905565022130873458366506206402912083328766924961225314812607440811283431654044201581699239372112476960908689569140558996833862930787544266678961965425568538092705472364522490323400270878854733857812419733310750053757802496250685665337842722027020187758071499129868999746879373106062341463106188533924123095231145829696841934325373332567323550906873727068448061352457380998492576405750271047879851185412343876914403864557583702911683584104456860077881738374313655959257544400303828226960845797309973758769394413371154385502887235636961275170233042144482230344732767064534979699840817074670200351838346227740076038665782711527234193691542100241322365912819944529542917342277649004359748703896235485541061907331536369828643895966749923366282659281628072140083560574197584387334989487796691423325532591498758331740149004238813938663979738381196097196834628959989035801682303137583496789943343058857288451673779895245729390518316196624949570310794726787802977255803995994316816418959885331291327498822775919888985897639583482362247648929629794349293214046700603300809885383601237937783194081450744590507299384233961312896238271231573699475649731156919795270926042121396850526496800708242920715197624383077992321640143467568453874399623595649941666800734172171002490071120929880237712886565365111749101498476187531984219287868592295869619310093297897494245551586780686022750969785123820251054154420912201156934829964311865980870066702169738297551514792568354712882724396395561416489100412774524664175152149267636434149022492741067159524291822119372304694851096657403611913973819941362428614130667817325975680314047830454910407485146143025796834822605635310747400979218316457114884887357700262074830693370660141259331896776552867629541461733538989235980968368583208664021100952780659950125220356620640340224541036383346375433730310737257654780497649237770958030926785820529505098272032198262139610890999575159871888556702564402191087894488807060083810448849453620906899744790533373638393452273971145304630824891374042940615686818626010714064352193872952317836564099275448279656712193261718607379333963092076965419213128801316906838665188306020165134155386967792130735660533965537587419567679932551597325315304318776542634199377834701596424925681156718920169069004375176978610983757141401527697274771784421670963092961125096479971946563011927808314793785067101673738117895470473773174257206250777183872340894825156440247906935477531052493251788798442848051861465323376252269140724616488855710448538760191640549342411103506700381112625051620772191750055749456970038360806708425445850608427069585067075198108965992682645465982133910204125249610622942915119525693399315993613024699216489633217974435211869828937729673387866549884251958860495105977639732525754763197479300919870674054717367233654738850770063950171550454229261392797889445916977171722270631279131446053761051877651169890976124492670550869252026096324628848093882600880926326962972553506926119380604606629594837367943669264823412575438055757822816428011251220301432240575753797130652382029776608452206304284402482111115511347057430959307601417506759404546101091296407910940058004337517810964991018989395882057302437269943458242756163120192299297984207663493412168504357193714844976994383842149315668762110188199808238644772988526251738620055338586238104995813850684431595024937074607962703166443594058423310788210958295437429331987977519696652955650509487357339700587368982346826306497168685879445108448588802289401389236686005230350300682846484288126936861076182005935375613693578685754820568378192704718837987242302464425786728643392518492391068203910043291272995603317146147441106942075446932469023335805998556647415876763898868467775172248263704601124954268383767411497740903493625446268233635959715220836809017281923908501876222174552916334980711756340631910489812059272490521513425610161232851329314089182207010731081545349970280958963810969000293572077689480225954510892037876026182316225887048562577217451157709890616042810242567240837433384723413914691773392870931519824020544599074089418548558100687370116352112506754059499970974340229830446918353577262027266975651606980093222772412030867578603091625121733921402603635536630542371234140427200321221269994957611861377982106682339814886802022775913779083136399964262701506243861578005913476488720125191353853357692521186171594292682845136560732960661319768511927924145894214968081787322144015869794728314407811966307479835026564045822641537805977990493782040098689035774937816067793026467296989838403498890910510731907025044144481198785632887949413788934563457753066252718925815921420883227952859661408365035820379208084388661669223261860596953620552047506472203474088856750735883038169080643819286388366471160503079624595811034133586980828621793049404349402411643418498710579870918043281960231941337808472943562591824808470590230608943750202170754621294894938076097735930448640903270981394203303932863811452653259023932923857539873116887637329116766857067081040818686800380405765947329671798885562468472601194050259046780267883801451444392002220055437189072439687943116399558299673472768133685029783785778702943694177489623703313981619165582422438984718798468957249713968093585835671150994961529349944743005684129471778216070191240095408535796296737476870876186021323799437335196097036280397307342275355802306650712100135659388537924929860145412530140303968923128372439474910585643156912316831266887520315552868846901251039163480096929197596547523709371051968411374856358587612875909491236295500510423174906285294530854007309642632200634383687207081651750031548100512466834381607987981156199866688793745651584413349632710266194341102641269367545056669297190229626502791154953615452417555000698274983084189943035187652669738781626931243368126100781868804078732382262675087080109415197086844611905477906085186775592938310584221601101836852896627650580018158226615068243114214662698411088740485013506425749580894771118460199471705732096447533054501359413001282884641530562496747268857344006380551902860449329649230443052261689069903600280546877382066601456156298708656201800336322517435108911354600134480100932218396186911349712247546956127844952848188237880932524129577039025677445390061942057758270141775069755609889662344881809841750490316067353200051171938796286432941135283946798430820261019921184328120245039962561146076498433820312227360209591739397811124051645938631600558519746600075233948698287416447403003124316038899618406948186724884642771277238922061218475008719450712210039393151483646295200533993368342928832009623670756907123344237075649068795288610222908538780943287389572727788662023972845259324163555117910770069607364385490482244575143758532990822438631184738302677261470095365425390273747387359674845258975432319158026764660629245246684229479823212140928116962407037140528342411490218581311719552773914591358779486966655326959256766891973288736593671231585053167714900527104041442092947465289725471360223074586089467552612651601514481025890750201180208133137804575994022942774552716752859561067603182466711437307167426966686630333771358926400768637330248931817778102734703995271276854877445732475539524638023487133486589530121534144042035707255988178763899261103569731819070690166761969962508437466197274160647091063107470723541399504274684492817836496909415284785395027004211147525356962739888407396352445937414850125798643862015174177329512250612523439058342228592465049234689414479725056425357458045152752306667971889142207357001707170776225483452122374369293808928151970680908994348329049942785670652151024642539217576442545823497655780176675300243016595531766033600132644728905467850941246323632954276200828683708400365790345342795779984219323767116217354967083237521366030066824225739249219374300782350251000989474308229732575015773336352695766532306931879832262083188190329794219747877766100642693977867361223969697894752260053662023213176732323746666334922567914867894881036948939452006855472049066577261388244099653443051613380385574697114761205482130957496944818349999577435421109682853654444696710703716749689961930785845561858621054380792986483391514675503693959014016172732048288276308190280494364541011929301439064497078702277778802093570881944793596968763919478043376665838182534335867376524963269393956387944431888666131357892281588893181493885090985359617825505047380233767356399196127003297569391357182305417111376024752793896212848607023040099299766998596816411220506515743295533390723292504822312315011265543917936587185559019768275989186603748676426790874404301887350729364783094534535318666661109677241450341301694194457910496555941730311149699756658743018546801326387912513043902976313075395479840742641046928364998641852886672558834119744998844750937669925540370957452486944345893423688161663890869390784917423498635524631774164978876486309246622467157914952404998573200685095810896203022068318372873983410597846737367830151262368522880798471996844743487581140731307123506981556459833766149725302664019183276184110869595071839299897032854504841383691216032196166198616419539926782871979037852206137476370119620132198615519808199881776427386470441661746038380740059312868793507884341682418052664126842373510970624281916240609015914316505479577975878664164289064229529300562983799711061758024812464089975182441857711024204731795841387841066049538630258775818271064245181252410672844750528142739087546332311116547041879332981028470878163323634588265332864271832174108119557251153055656283479428326524586857656535277140423224027358633845759102313927705822572928546315631128371318164414389714273273749663649867036023304629348569955505386382114469651430093116261782908221942838247725091660754906230017981570392279281938447306422368643290442371934000488201428946691349720037217596665502732367695845097730679076572137850583793805685967403760133546172988548898764015329004780926467334403247147911880756201686850483692268941400862672881702481898876369254996951386991664896194086356299780571967875759554093897800858434426183937681777942742900632176294610028020587548453226148547296852018349466440805438815378836387032117785835327990110644956802159095602067953975384207250571671680489754555003279136240848872977580660785353210344754501476501627253317841076316079050416075910821520522093680677978670726822131292715059787411820168255818935220498843120264309017502342503220489952626625296212792404289075521971590574924946169149394225225810917093307710336645606738641628697513996158118865212658190508493072441319441151979664293992123973534125998619428172977916490660257121935331875363595642196680096884165890732126004649045760726050742391795669486957898377253647187840679750557283042880100496404410950170777214174417507416497483157532242729803842015205016441092590809306916224176902923898892569018988902407113876725122531881616060154404390128342904643705221126749439303019207390357516622149273360097269113484425405023947082686178498432531455981024598761858618283159153305704071232088163735287166831943130870431152665982580342673975342700292357783679312668760943724017151461148124715019752500324768825161982122220102337333590381717187498039124687776642192033257496492644764072907210598059435679850753401979792243729436416395198178939578162727683996571717572199321778874572778787305040474978986918254096396169523328676339055159010132312177162756979288008962545764639746127715583323545674135142319595424816032704396935611602268992271404290363808811716101370745768270188454238899273851212958720048572940623341101853474914980985169801383250561255251665974815951693157020284984662585749595102815903941993993225834000088427881599579256610051881020715767545140072802072584017814983850371480665948683898598699638165503630479844099313824216262463346522493311533937932723637297371147609303509786078568889399105684345379214335115228577615568725408309577967903657223054347678001132321614643397098231692054812426443155668120180086251990230524074724251616606888090425077564547035470235564521436691738892143636274302156180258330836559853615724991180396915610044402716215964145340240508387286107445828008739090707897858623184375925533956565727175029877540168794292554477637168948915659372560708405369321592196436169538387744337089443463356281334345501432357620632873139616991504606879679970435211860442620119340992043774945143345292879609655133642204610330821398406080939817956571902697365438194891197291957868852786068833582252012287094187709462983623376855187736201787494046486680455987534239167852831361086305471125468758751876819034739848006069780508031642347882140059520873824354989282746840339061113817355263648624951091773244314437211839104061524687072492024792773662566795807851454225226341888938979676437783165749545719651532167082470302087979696612173861477383354498164314402101764833695257450729480148879367668588446390970568465855391727324586060350059418090299721134201212006937418858696567033678848024309336916666145987395776607400397136190347677043189230789229167954147943145279847053097684739912597207700850741062926671748669258709487808831070042895571291102504413157732209254326642963156294606573009974933490148533160849250120043916717629328932445417859868562335545432364180643033747714934774658208245050242970715642983422327752905195076115801251966608016887378373922929532922340651817365623649242485553461236209683678906837664056069921966355949607735825266174619310043928618087429457981075717082144483134508561046802977558209699538291329592102214900291964737754714209593246343463076692247303243165960025361539055532757193717543448838876129942069097262181941226717032659020863043603058244565408797750799183404322553376874200456988712459021922797185401855081435422065917637988984302299539462712506759615721083252963866007756265041370908109074569618600138220355453390280046449094766411650134868604850087212174039759176570919952501820967629270155775261368018109892505907931774910881683813414213684531347647467089985618176671420839517770751297362662647092552164236238281900817233764975895838053436117364684982256629970166814316026241044042525811500517526780285748500218643212111018846887133800176265834101642566057829822972376683471710983764588570498700233299204284159112729320567428061183240053347928985274104427048696236476501137292006895175990824534225504926138463631662444165329257642972087850226367156249852390353961785974218823920863645868166588535535966107738270159939870925129455368297005732262943185631325253551959222754246014465474356119403145111032626243876241406748106813560799232905241497996607434014706796764756940339512548090818633944570774332468906521041846442931161417305326799292571339815308565947929491293962243646264853956679999259772775689157360434803969006026757746631525642805756649598749613474258484772919572596543128363739482558738945470961927835718105322965519849796788901452428727499791804712419364250085169357746172541543623316407513468928839194256440049409646362113847050555629569094911230761104866160643346588444000766178402008161603122441408403567556398404241140734199955518366824191043228818201700047691429020188018295214024321275659721508703185707058485832879079427316200416551740864671916762567138869230084460403577893810336805915888118235288607298849370411758817808494515006105106371446691180686396548501267644584408454997698302378528731133569279913344460515485858244112895825576273952313910640903041886714336384176767701202210826545409649951316452597846332080659274225186392096792283727716494108805029342055292866056955228399567083485694071360457208930216293203266133327114207046454035009457677255588229656572857425780612237903929225053281056258698552819587022426293284509373079529497967367087686274900706209979457493675488082821380547036323123019479168116606345706780451938338457308301351561335876943683652062810665406558589161530795802285228274518827666955080398923751600234034257191799654075782165726936105360356617619405297740600461938996197325925885995752827075582664094767386236797764042377638459142296648820695524443481485441659315119587818022196982236317749271144122779257142920711129878491152835357796667277628798435573143091195613513959649127156444343371536049542193599984894650806748506248506868244326114313710938080654774837978565016313447457611278578569834283606153988884475671913172481374436270241383272508299908027005831687327181068893908864091066743873540732683330613061528471619345954335908275953376992431669266577267968333168685844285347846598303330110852003629088866331807305214337826324631879956862654955614951301073043060447140528218126853583680242080577800243736322941560733493941832655535489804506475281738912633323163226338442420223284070436671614641914381219234946317193806142611793947697290841091121026404626214591602472356173710219243904772307510474510055599403134882372850902881077506052379962835293258321643773550292447496819568804012251282955347636811413691937235396945887772188312176792061128207754952299040640320082981470986269741249579685840272318455892088105312122572692041570582201675539079782015955203716949702990617017325695739093807155382482274174063264745821296861654012445589870812876049670240421722742449283020962809470386544374360891830808251841907172938189660691970759074401983407271264622373872296618763867671361109173274947260375104251024271197653109717940740678106060584021221831389296577810943082295858276419303020409886497839828907693004540494421755139218256474770401955546184110933073766516732763269950565817514346866906844519330125488117407668729708535866409778412425325812905287354196681435666395687826936049540991072220390171187949787992626235238147618480020323984409936860525777769845322238233825239346930427064934406010802014021724652490652076238174816093710848755741444008961047915735946214282021405780396472346505168022475443013386213346110531368159080937638780356524207041372019622607161004498031856029274507969157775546968337479510614435498274733709988739573909461658426886571526391836794084558836303851563973841445701702213865465414141310391574616482965364504095708752383825946217613358330594888598315644834292906179387533985042281726695937932842649155521028216342174853084322764764763014704511926400026401402091176094262522979712855145668926814681613073864548045473712378954111331811829115097838160872660164887713434193509062852715777565496189725656113287461122535490154603076704085392698887987973665075600117846563384193334623138863524903847506956940242056836441943308507521219101280665151224488528781310178822414682355165164319536523451966112763795534160159365566017092565932725956442973762325504832517794007334497345980781200763693926263809711155213900621803567068313587362661594379014676735893666952253829801418458365307544181286830324729274176008474218769196426257250731625327715611804173212427346690436584613232067250218719137101793678204455995253423904499473101983021802922490617477970985120424656227858963574788206314731358202768740319186387232831962270333742856723766925637436983610736943925743949192156920074131771809666159456651946187333167076233747033904941838013906517322480248057779121514653424528175907856913217505658413112980048226600109308576656560139312786176313522626871721944990328252342310483902698593303557154118945391793710493498076296433838834332802217920827963278305642666431783480454093699695318375002020955452327568357325757586431280499757174607949878986052197800668244251628604383225391201230959615036564179495931244934638591150372601612655030550355186057577125251244703468594099820186724848654137942296534393301348934785737744079641016271867108599398456693560814285378304515716699669375533611299409018223052205909717416173570061976810275734299470068547317653324690049413510535035417992347542245185955504206054432485946422048536260109718798781112872373541958453321951205863424529389729212067822254169974196296933828722364935128454061581714639306223844244196168748894826887880272921564478701377948457051469904099979558803641421906721380706601623960462285034138082467945683808316034674917770892273531572579885882174522469729179424229861631133966915802180865006348212646580435546137263625175786885256691125857214372334599942762103435544462575686628865322236434010896099868841210984924602619153089506867107904269833176161347072822324280988368803895105944294276695535965577146984640137181985356235222622399237923735801344454407045272625040830472351914478534248488449824186108467253883152087560396440895558565811282971379763682734262929592254673788398216780327686435248393866849592211962414301625605712156382985696348225454238633292684459510603681747792419528212856447309605859047876814140605814368919869802778654406039119901913760528556479583532525869685844283002489955364843527066165778385014796107392707429147423281925412154321332718588877458053031167404205272709052492429849591111912596275065438514778052534719376062918119242050404296268553952365392293694314578168136682414451139050272339723788932584242606968275991047118908639661394411048894354107195095409693003164527572889544736091623440832016624405891703106932160981314486441522985509599663328328158654653904983002871201340528503376068533594950197260888114172211721200562826430471393932983219496591475695582319478117765032481397360519520377361040813030284982240915717203633964561051632194564961377115636139884405485515014650579991986427766846180726032373043801945498427134288487685598762496232361401231499068168084347381917042915667747532517021461592897738983466289422420691440165070861516148371019293761113062758799461459948423668237436820573873368690910766474538880419490723485829679908561855554644086694838906984338524734001135978973111273212863669275042981644989174025114946696279007233816631718667117166352387711546056177017461547065563516838717694055552152406674696032663583392338309359706531638979376560582477738479636867926283070201542082476832560457169083937550349214568461537284840634147323780371898335351358530453661040825974994892475578846526349633651175822108100856397928846007044062759335071787556477595871211692796104948914657761925337442030222512417765991807178592119617691339522588265754660964540639020026849630209067354794038694197770382923632184247014530780451897517638963516395765975182491756747233594853103743167299532037177078131523299698454362644916666814729842771261569902727585017645191942923852462279731105817947762182860626094290880422424067305291419168605401135525371431785822586928007064614474538130334162274750196426055048144993116682031303871659320704308843207729215698565209966087008483440883578466131709730274458873949921435991052239649195403388920807355839485670760965880516214194930532680750249934605893940994437767111541643594744450994803487048265815595806151873330830281550817551912491633477370220719332165154840893024113834426797176699911138367873285274789159302789484138353539037052871008707815656942156126749244594279081888623537853515218091033055782167182083589744435074141217765755938354568453183981892166533340724527239851357590108164707308402308816960106123010380431856438708227112924755590102247117106689324645226586006375493478968711539002466786362871267837673242222198955211953381770066739484094806648355395559447222403689246752657315552606952263355725102022695532891531876616529322344234641340258052168337621484642293695941829739891209780084192357125158802283057102418058045846057900263376890712551131140887048805812897270436862607798133137616877817690966309952463499261484349880764005247914711911471528588375016292683394403799577489959538629167965403332783748286267915605959646910141003739444411236310037671434922162818510063270280883143250443519045837412106057871096851910294392861352407413214021494025348771680202882962878937679337871499816095125218113330078764551039481018383263005076578147690585545420382865430130614016046912591914418607458395253893822485169006009169280616299641233744149433401385986373733286543133448574523942974639692960795652102215568416995892252351058812419318176115623534907235681536229923774328566138189015725983284206038266094806484078092900014744934428006718062664854295294203505507605856425032947405147986063402334508744754422577806713100187066952803570057284827356614955092335103608551239846524431976379953222022812488373502135237537576534388837182897674527056089812591681043160446917184194180025608077778454430694365663155997877939078100181094912739911192424078264976519096576328285333188076970559684396177735977686049870428942023795885324595294485379358843696457523446234045790091563569350443704505931706665489416920871924283725907401182128893245540467924724276990459001878670783182457911226304184996520801147418428876084441308029240079913413865363751327111055648734600595646074288914171820090774625215527046764078256629860259851379499155512710533368068948716857126198191728998581146209086311212248818749025407356102555836280231613565388729738061747644377729032387965179207987717118072510821427288448200074883997319871009521976795640822722818913250860070203436233453928222244525879814740003886458824587915639881252490655293306812198263214759623002481722649529563552802831132035915702162427306868798207477081382999592824081143546611256052683233539953991484906774052360117394117681789352856750464355285688047150187851390329478599853323360891138864898484643080226217213399170395215215548994580218208837971025334513824928552973116608445765322929943377024978489755988852068356873510583395478700597571423425756235879684646634390708722257359588601629329509124006337995036601935306523460669104377458200308506531750461246335585778223618187410831357359475692051900714426497064153113842952102582644668438757697682607111141825630720643140165189807530639930044294552154467101480933016470207270842053908399901973702419895594002313106821063429354218691107907328169703566700563832824766638993842046689298636608435600221915272572989736446048906351345132254861536228301958951829800405899130084380919861128416687719272765030493890144144483470294712032657339820807757488082379206561707944838349045943697443350177463429956353635266413948359934532731551704955287019419419323382544226826554954414379066382441000745278975270304809900440898518459539719809521493595427033378560076721343542098015623215078438362445831862712225928060431095028867105706855698191814491640172459605175565899593837852977191473775215662724842916968397090302960473898283433259962238173600136022654314550158656455889125415987646851202638372559336647529707550469935926178220833592303006363750344581048317345307020077242104958244795576996677349886241741134267348051114542063937178275434533348171323353382432929018832052257744828601995952779252482121099243649859137347457585537962803228796197828150497594030407123013166023291954333180175615789968301891568815084677420219327912722810346018047992521320568822382339545478781369878996052110423092084190413946616781614350170491508643387807896843760006957792061511134771880322856624884514591032092663492509018039119995753851680876552164975289190980918358967255927697408982645492813076039584699030043731995023233936917459272831147940060834821503842856317837358333202815563826318366126605432556841068134613592317231211379457631630186657665179513293538179511375269134065872294626310681303601348234058204898707625167457870278338010962732309539189332970932017635175975608751836397243999232541110589656817265246135349848934724036113223717446937218963035960620912732798264072017071615347389879437317005989544109521754913540823601092526707720791328660388022049951839834211694977874826290127823984782869572043608506482513278112540195131300429279041258596721362775397771765156384953636709487197767625471226314043216065043658128182863779701905424541839728060866917107515837775306274914109381710076002314583905799217072039259821359474143364059769845801329801306680992272696490665347370243564088264189472357843942310945299576632588398658174806286293812515934816796857325230259243364056977376051481986776336247184784583526894283804620372823855031267932657831164765762649266468631793239933390996305050525710813319018441433135698725378472962353382366111792296616173232634160985513441122496456999668450604302086424327540281992076380382621951434486379178738875118147489453323559433308806955593464572043092000038090363852987408765302528210116196714346875651220737036193244214137093168192879634103470367944620912810445176230814794194771695983048999582059285316699012941747425434918846489391281630577030347704193751006668829305496774580796618611035878919402647894666082230606906200136822483457478700962823495908437222780344880251510674724492098705980471876334324971663717330414421258895138929552025791843462010723198507681010228760537434750047042204154408529480340706853724154362566291262582137424751054555469222491293277551606747274422427919618197742204999953102662576954116266279190575076134734457541951436633339311938812043582535377039513473767443960413257734064375990307983278549296337767198288248330265369073331296053873749116706707976611224438775891313475271544503265829508968508493500806479173097868795284226150827349005487807958450210622516711247458014278828936180332059181615906687670151810928661828917648228137333570999860142715435459621678085216747075662498128876425423559110254032405304909619643375703239198542231210298074873230366922277477037753022105183372069233278111465816205970864312340760162274136248918955117122422713648047385283135710114972899615885263036833650949044383988883591496427018630483712879676057305957047889393333685971763629061897729637054874844066304510138304861108326179684272007161909402327200829893992762672444525923999335364019004125881090039050776200618721027454993543583033405896657319859030633778507970232642246380196084610617732896430198054381652544325604414579920132618491138266643959234307923498903035845594386455298863344422320284236930459577850490701197887101748322592382945880186684452367799761322624233620210566857325170428683329998469941026459744953074052417870478189738357879999737209757539997692003732644476800460303423336925143937601216320195610869257320723772002097872046431201257259474098310022372100956921723574598815324578757870027142541475668766634420005014646242700424552909450613452161715349258467368439318195165488236502057012330172397605405690934007533332598082100192286900407718158423881276876219429691386201403396816656012977681459453924052503976507031901612979908307177842728685173807511358056314024429992683481517296930785934887069979963126463944276196245200969140938672765749617049337270329249329920608824731880951181535930841544774808130339090436890406775494593760124625933688992732169279220300025001996996232708995967991301135095599673600385563283354009995974084094642842333575885749104756567728388519251438347587885010380895536193028043071896942291225764458779258144411752589158483820775361825575225498281029149435364677767180715705065295811881085433442255378405778120906880732063511138176902579348194255028164820844622914239249041296956428595637615529794907642192619044965991952240536232673878640451102572162673826022466561766561645125802792369046953659049257290175981965217672806516686407058221369249271657646669671947400311180913795621914749316343938595615146179447097795402155419688360724171490362035245418293342325578113975853411415104879089529358598386321154690018756087866845306572587798848418740776393940314174550294073121917768851102514280261312397010991516476365961520525500019711443778907261460101453216399589264429988954411226905530745313316920911695197683530478681061449149569064877010080066613366679239932120804009978027196336405386008763307219009281394072295296282808956706633458692445607339201621050532055718447006242997934484988731757101519239547186659767701330134644981419680719829115786777615944353090674006946678318383571129990494889335429015823994022738329355725064271131459892362437391602495718444322988880009972636051783039672324920054251644249932777141578053216946417092608309963714721066423070777839663953490418931316816492932489711137451905327301184392289930409760857454380686305953841167359344157503345765801891172155854490282454150256010230333449486124519799929062319980214567045320703520596685192470611845856811884803383850765546675503434594851014282983566394950103777883397998924179847639907451412461643796235715921159897490427048734566949944151466050070743939546995595453720423103154929402163331457892691193436201593191518830830728345783385789395683043412328316529405903579118291052953779037943261640492695825289417208355438087552208629727541657749727928541617029650981020962710124174397703900853839516391947852400521448197061272157035251098972005663899837089033322003015747759596348923083117680093402692377025450172006894040244037470998247374565939510550875385506535417770946979421633692518814202771508598052498324165169741129948085710079298058961778099291691909360948084558764168632085828940188686584817093383679227968117237221666770012267629083072965012789154795383101030184969911406821230371583699901862702176733010978258508437924324896758187269218297631281404767587960829960739009426225910307267544098612901448326058831211778277668973016067341341328798416457757517308570489399366926335260426066757347564366495311076811930816016486908114225628607804146501873268956902397224562927066333654609926583062379309960629700978979115627150805019870968667593016288749172516155940694169894375752730989321412853493856231718366651569686839983568219267249371468550611154547662986680006672891657330811581427242651452432491639999324515926765808948979352866543274807020397452469991464058659584106428211635483584118154458748254039539620545005089361362549956242373478344443688701185602295222553907981081505275505562241151666714483879953044989597796046020854122041482825973631638311126822560837320502448022828994852651615012051396452103371950117464106620128428596100585879849167606183601187877457280636938577166198951435219298782571501796984931085238908162272232520465505805935433016575912131233349870063437394354589402628298216624722033877229562445801172673545267224939900343752328379778070176782716277748982316385052939751334749541174337591374346928509938977342542506904140980082648115344073156051683721646229869012533372544887050432669757846641047905948073978506926439185936580634732630828997581982424370713528414537384950291974327038433985984315959543356149302453528504405977834240401719511507451050003373167527079714998614652280375666055430237334639066269329577689605083041660866544320164349330640263154972342705256807113900056807698328484593956399284571419268971768849138129931234927520599623931978364068509700396219598222276926814778413809107156424820071093088270148506176123560511166783478739629310000795699071557323795137574638401072203888344571742078320921016885790680760676639290241213968483189919642582005558340792673302521858211832309786987278250150242145497292682659488982748552507128988065887830690396238677204883233101914512542216299257923879917704246581414121863526168744400119123674991544159855683236097292173138873883275038446451956515474854889260638906196065822303718200619161077175153905823764198583541805353140253293628029863087565702776500555604568652142931449261307731011587766560837020831682446939351533536183920845135110477117201173558941467888708496275630539943935644909742923036886049360778799326523723635923764802013780526536207926891429412314786438915370734565308348903572449603130278757434539348287948730006990794984436195253277458430624921909948771724610357325222012580103081929824808257397759789610594920836560466138694688935875942695827361882637727319073566870908216309471471628162885969517506166115881675636715812545080025092440792958181044618253642228881473414035354120803998601584617315491901057444267664211728983184957475657412191782692410910052301977729986876506865280754842776571180857424138503656169193555748498179356725194760821980979515148192549164026156932559766161566624672484678619457912212969496455545505647015530400220260615531328512198887982920236042270256286057190807559070679215106039825808239806093620142125686588555478660610430717294698654256567949435826072817962551110532663462938710348239319344426520369201594340382101465025609819881080869419723350804913318561305277178583614716196661331941397327699435273360553005486110450687098616551544772055142982064300454491731210664784832285726310694801355751826395343506118156487079922263468397995169538323464310621120958805331588188493950074755156300726390860820745617824578629594762332645360086473598796910498104033191428775368288957371493446250737538027733518803439387694911148207047886367542508514523245853032185150477080012601979014711956608907597962947695087890752639418601847835374737569901438888070775199449549281489251247250507265262532268411666001326074478404122569056041864307768207728208729225952150481337602588420379867930453331205802211918435321682698111011495475346882168039853783902408897242364842132689045372241906714306264766887554193072286565475561237829715003377888910890203945999045616698375181752872116683596828057417954894745135557379377331476624520577208726554267782572236972464227389119135429638153756376890619294318862083232997549114459857574349913084624067876848485155938815836952443160184561284378110315145689449083165893938554815221547271270692606080722610685066838099367720613763838417240754750235582655027960311593499714617237079134238187837812774308972822609856733548936800689563820138771242161512492741867193332952239476139255369722882134214830257908237041291614705346911425552423668947678417873459848441930034551981199761881561150759679659372742816315128585496267815119847063772404213101734462568850725259205666449782473029399974776640934222775541394742508065460247088452884822570173559328091133934770608535276996790920888645838113104675061196432818775544684903838058449960835573185005843428212304428028095435077173668472896087924962115672290694038304968923480458645340510450423951862905324421671718459410937113473508432088006156619452017618376441385909644569112400974270285157675011024455087653472441632745397068861260786146261000131847824680286689636250927486117723631383196485546019196159693074772643439824977735462756656093371941822394245394152483343200258097520422818672997445003159405258207852190654511533610645234636270951083989975446878017288237363988597531237101140782976956522211763336421531221811660252043758204309334196448834207560811799002467686310509758786881995157765472831129491705164847842410870799231922722220103037410268453084995845260818372131724765583563267246947902287431347461675743971039423337919068180897920534986426172765450075892733687268469069505489868606836101881587365274981912270385543341327787985312825631936225359098419656956101192125525530544726678887620575847713538945308327182757962251598189716834758104999895916891828434356508556915540517225818835367017858403801711411268988791078571690293529078974225516345546232910216954710439810092652654877383698064862300011112015531686279634139018304549813731172724861666528928164005144710639759056995683742890055341022627585162040547000210797685662557186778798714739475697982837108778402898072304286087231466379471859789888391082013611715700455642551940645745194912997031767415435617411021552952090280441960742765792241437208597160959308209812053148317686454532968616396403818167102796147132936657120687139226773126551663624358555831758201234980403360648701927118466532469989184260425400216397725257546246052842485740795223274974539556099935327517703567130762671498225323863660694303157063669375127517924854475956247952816958652334974469936416247570757228642927540581177925193198329655623173804388322202334765130033068886487579066095740359794428294854182335007252361449099851828338019344555559432298794426020169098659143000107485815315283604970120427886225736331679410681704199829999968327791382001603633284086114793683503532634580680414965006023884298856123074438606222284712523750518875891820134496974734983006471832402169809929429681234925014909788885304324934566130263104647042351495458327292321982611199257061146346376753159909093087864168401349360092583583835417859645578480423637070164363629661058926109326447256986103704299116362776675461151744273030941685565488916394918528382011345450205857183633850814547834947626069610006960510301343909816032607191435717290200620637855094854566261628579381141484770853284827027927930069301351035655253636223646208508339645681622575156261746404647030310259955628112586063572213970498537061493688866995718058035963710836354916787629964541722445244533319752862993446176906571973460461235992136265110225023667387401381597663642401080509740320523153606973278632263119593033321994462479865800377110155794012686304872494648716707140413979454483219732471363576618122166951086016060108849898374746413287291821208775097727056532936982626886760829922328350824827890699668708724655171209678981326307550755631987238507133039995122234565062516006979289561939220513607911128604182900750798551952729754115111536310949481271462653753075920899723060884066241962546912405613810607361509497301229544631816768915292163490711585079705119994737498627924261586698690057744687404607861019970419618134147765771643134920468189494243590593619404551641455210476848672117487548093528804688968404922984887142626425220241825302289556423283924297537564584510556865343455916689012706819318180199691304030455781525973295548905726632745898919517908155078763579147597195150669460753104855702521459366339962220473520087319271106666538916817861426951536202570030402224300227197896674346964274776034355517654505579350694585506026211662233190810566489651819084640971328092306608503804777048299863076177522945393223382045423101124569542445286733591535629828665226775129404748818326427219249638057978564458514984376683278125019650372650236928787786899377339561074553608483794074090708066724550783441633313549045797193379402469163606956547240127920520385784049176345841330971640875821229159496477126449218427600479553777827829535717630993732588166205280054400735123162954074720158269107892647504486824738960323081311266118688978067093979495819440980253192674152777330529700591458039309259569722689398447085390532564882999548771749040726585041032007829085875558521221139274322978197592412787175562490551776604297525741572438140077863382797758173893343814890018117643688752468626741733027736866707939718392172122091636290341676745770075883990551871098874159008734389212522799932221663103378721052196427734274305777659719915209610459112709456576849969381566789330775080772455288118390869588044178645843880302249766061496690587683667971874540056092921565741174963807213906956423276460035765568799412322566062616296659777022982369904467624962672272671074230654643102036623009544174713794749862215221691288858311588858150495068250093306804739790849810559872428007048795220431795674739908524582881757210270839221344545429858795802964132582125791883731112088362892480544322533507051741223771428396679232930255895154209505090196814913706390982640892061513075347713374446566124076697617807501660565127175345705609000719866351331857002131804212328204154404292158305729638461012421263099873749246565863913240692659033259717552181599689794615436146204058202483484963890801841737301667582328084709106702688296602151516469963062195068008552615771407521770653507575520623901002276236450300100120848762816851092517405655923356381443819382714834252500967395013051763440606271592374328954305314855890769031799181687953482407965281037305228771304410803799592015690615936358676994832266722477733512988284491826384079192392003894727008162306366165844639818146207934069880008654104711086728018403622292760298446754030341577148382202451305435994853271582916259505356360695347945625210819718327069798272638468518333037832321537072705384203381282623356904214850798680021916795589447190579994041881761254026192274577827740042734964690234990928692370133166611385862821305772396896572567629874909108428400298565607531140444147724015184875446549092687826116201890036238913693857485938816851897784236198001824146043108510935220086027824593484024030068384825201097669410800195809954099857101030293441715010142574618171223300090956243515624654461428651659309267493273225325692964617489888528253368507379564494357569789479011879701748797165695169303613598824407014626145364408225654233035108945264448254981481814734549434708799577408284335887965841608603985733933208205896789357066845567894887821872267818598721056863354805082695295088868139443242737569400295058535908450449852582350184538093222965590147734328578800106656752608104459012870713169348151168199038477534584459572669079970438437118290436183794974268208250152563137525016884396655364485455242228186150710562667650436961144307655610121949101105495590189935845915730334556816910487026258260547093737514212356442692180245174909632461384869861100897953571067016370205985822304809862369440407233465821121789385566148504797091845640440454112193275888949889980975726917930099618635381757410183714466155869306456474596156510299847632002380843186282375471484860568905635972107768527160399683835005805807629835663817144469230687325901252964032256843893882715780713141226179978850945757877862870775286485559126873487006376313491490846395117352458279419930295404425026194808639748020813507156453030284452267586579263953643289629740618355771818751090128658281189167971553741229532029542054643794717951569668388814771467668868897259459946945421067761819407227772157963966421509367522922290182368449763574245289755837869542024917871151454869758839719159781642223327833632046610003842063272905228264504247436321444391880765612728070062614840361366309560298895565391704702229815038946549073366117780928273689876082046688568131277572041223698550081162542413155284469733509682819925831841514693355356736625967355210276089218277646477083642520770144340551920587988211391816906821443947994750521650746597169551918921410576969056974053941201313557942074641306505910992520463933270145143586047901960224195742717990637922861464292711016005373984175557662511662906750379451510625720206670873697750396206861869049632839266277669303450785966585695281056164524693291327724899460361504025503919944944715220739821763829701506125718659912253972141241224011588647913949562870304372568033254970703277568460670337636566692603145568862816105980041254710254537675926497608228649889827561435163517399390033761930573072306685734625903931636477005290888859081215587434575169087394115050255957905453631268782717223915416640947494618888225530508372361436957361063596569756361512662570147587310425537845869666312749798010532948732877493141460841697972809619302313464640509846774303979021737652296546144986855142041698357421161298599624138445769831310127704958953559558824892089101213174249836184665556916879229275739033277359108934861114227746830138561843923561626737287902110694180879568031087427377922869722010224215829341678404559277997681461545433102903850444016481784717458894162432898895942222413813054230402086092041996673113550301622700622421346322755421253941925831482802726033910533719084110325265929068096941451490967997081422052149743911136728225707597423199841325555912176480767167729637779683613725041921677833815173432742175680914364848225405802536142704966506493466497544922209352824657625006345757277952928536618279752964848305043154290194823753516017792798647910495663637722533570131680201906750178777795114926896709075668588988713362827346887145092705182838007412122615664881996931915975395955830450116045160651124183552287126166037172035583006996677053823969398460883282062900806606000224408534849997866655483380949432932468709691147138465798240677704122952676345877380996950668707302293744324590118075931844431373453111059733427332399646301621156152076696472635248041042851876959455396692153909975572094236354312007360454133885243550758418848543423748949304241544475004074882176584526902479425212178678964123611380713692219459356285354575067731853323423439291420760171843473996899662598119199383655505442501930959965459431485775024457044747763496630420955255651392762780415893404204561166865210220673491616180484772779411546528060060893455922129329820666003015528090665666012722359220583439757460297810383969783849462529757717140900557697467138908827488377757509859542964503487889953419513333205790050375400842360581965588982066110277168092298846301187415493865731032480151669554946778521891928207845708220882256266900368003392334120418755199988762140582615109318887085649072483574884433173552262600014328231646632219006507584509903876945258900158555426774874364001806860307885867768020311610790084610341586995314601620254235553077888506465440518337231541039413065531582784848406682951672560090409817969268076070884926132112100765030737694488523349119647767607701751574009344097716559005818066698100362999835178044660254186408820976086335426378464883149322902237700512949697310349850894018962983600509938656514131449541988876378987969973340302480126363293647448363912846214971330760474203767650820078211389135717860770276991579228928631613943054901513594705888955814429205505937374196863787084472101866881501183880661101511735418184561873659726767160709564508000889560195948278983848613436209539073821460737328530135165728730837021481269441578482135565781323706309592113437151892652909281955128764591366745869970525292239491540353018077253077642114524570865743517244293959047254479366766313606603075172937895537371877832483471395805267203363342928128331677037668311236759471760053659186955274028932551972240249180226711212273042134932513151726989915253851427508358575969453705800999036624108619379623162894018719999156779111533411490514197231141490341836056365164565790222945588187796230294113609460830509973070977143097216604115195766527084295374952761681464200838643472532435660485949692566352063986862737987391628286974918017765543672040996551362501038331640355343063934250453270891960047634784435433475600865375208285586963060760573068098393573892827091974598699237943333699198599807230371534616347766264854460552581562746503406459895028019339216170084571484929189857716217198092457677280351018917555753255451917896477929759423468205362952987476847152997890843359577510124295355537988176639051072351211756330405967448449219468387452436274458057931005907792926804068644216276324183174510254082243101861922906940571410857381645859854783556279428534603206146633932587191500666831155411502917991263514804285453630537350035540249895166663432485516605271187530284852877072795385955561696153501857567896699248624935513137511066718184678197977727217290311733989558833928032410867570400677423687509009070580371918805403394480510091999354266897884282437693968516001011153081040388972188855778586450283697291238001055174513830530094403396181204425139418829037655394421555330499958024876207746858896819312605058129435790876041106030593761856441362268016001894779415758260617583076168314546215700543237488084537236203921299831837370358009561062543576092356010076185948400799618097763107789787812344025345283823097343166549939879591669735613073227356136889750336895586753955069963870953572473353830148910274383079160958661737096213078201546264173190552708029742245463635217592927727897545711369467875279922191580440845286463648601974924096381962185474201762682362845488968336048935845667487687907587703164437940459280662529880176845542092336262590182648189955961225781274050104466916710640405467339745115681100102809921057808366563208484200598118137841563402215531111997532161977782547981405291493722106673229933661970835523843235565134788051832503633074185062832160624545727840344465579601192241718958196147238634902577866102339198695004821568262634379213604480494864993606178621155766059641296732520004524015262251255936549256060050585638648016554162938578303257804180396088247775960527789606074520591943799206519938944727062273580609085826359089194462893629170667092198962644624312573223751032326129326904342659729661634714174676135458476884944348940415494143168744496721183517334876108940321653805605038205420852776358376465564252683705042450192892538786421500304101203285337803536103431568081008235256754381312087025460708175212791345825082126359561720967430934629000141280696951385306570027157488248116284194844417863426950867995753498708719668829735968150987647856359970664452983226023846434349779475531323405828520247892011616980910525493645604618225806914290467897322788651446441422959508204156509198899665463775920909397767926731144878106077528735475505100286302672473708114809845591202649924243821830189094762115058572435756969326138917820491633914113263586674029156766405494616344259720451004531539251032458749601894915352616670238025089023910346819897700826178347110185498495049820105277734100897136118833029589616683627624414765531856201818999190922186278697905149210774486508963695246058205480847600261249126828623286595683448472548589182628544375198070119613624499526289912349217198241503699804094429585091908758629209103681293141512593698927439351946440751524719696643077705370656328675231446624843610593935762911541865734208374309627278730714340405535992343450288441815359075837260811091471615869042366494737559117238618227722826997577662612016017222575627265484903061109521609130611280078345213795637799045614633272089286165526646742829470048428072952594304395691882798426678544337605783050274761362114137227910280891540660773139078514938761266995987873223327071592317354261221844728891093428771355336975177604621256824025732991919843301364294031132568998870919570091395631316351601807917400148799401934815379822287216473282853005571810643061623515717096214562505870601559877795487173966371889672841579784547026545875498001636759870432952804687528999750231418338016290997834780214346264728245459406120088482763419032431553818480657833957360629256199303058710246934426854375009021226508585695487974732035285051240290879024689831115435064381599841610551378785079070436657123021472354006948288070138170800433033264012104929791357371719475791335039491143609405946007709792992912861930092815562042443931374679047770540399525391668600192436246749979145973098337417983193321919336854128255596758528432188065104811265605159213443890731926975225486190947057347934207242091882304057268882489588305195652812412009143962433359769476469849384671218843829454115167455652903755739092069252095662430063410125214394581591109257877129192382502482677616101893141649876976926925420465886668467110334557553780952157201476056557056189316354441186081923643676434303675187947691816478365637158861981054292612959029995690050762332833964253571857023559129383584852881057713959059440271193446718114374089208360374643308407818683962684760542732207299589612684306870691291580093354781769060240008464424956973324619670373752139774792065410830307917206744742986880911163973414420636560597944586419582772319149008237849121774811338768704042162513937011164361779837920666876868817744037359494143646024084514730982282935688327692375543962415515307946528420097532050667748993525039413788565038562328583859821599027343186875878759889342248687468588664882793788090402402078672699524168729150645204227501829427708166616797900194395015359607968524524479348506054626826456637099107341559266521966206805546069474855009104635656809737035717850660662199442721212824228912462447495555407972520508212863353731011890840621857578053720918504806870268231860350133246943737343329757089875419241408189732229662386941014914245158762053137883998773732693419925742960521325622853574234110685774947711063356449998396768304223275365464767167147531759903894934592794040062644978384084796381731080407780349982223418084549125275909761760000910113046952932429637863648412443493099660127942233981431045611061783123135641835940197295137539259120270689222314067839833713278006185684911837772265063365587693212492843428499929951658857139887168470181926955462317987765515129158316479057177156548859313783615609356147547438590216960667415245064686754390535634826519144228300910568754100133028769475239096234200494780844445327950724949459554839259253212877272879061467966886994710035244601014856645889735702037509552911891269083522339535503843414055653854534009004513269965739572621882882399340369857802693660586285342925530258678935969255292722709021719023295366636293506264007450973508134714086318032298205427508541414790903081757103732781950101731126375031902012180361463679558598273181167834153512137266661096268471380895004829923325391281446676146647524622575149011776911112987712246775539379032311797369725335513311717149368007917944238937421708785955032849385100786600703395276615921926560796471215123354558139469702955934277828853244113669891141611834707490426891240695112929449987948581183000808903774527842296663743485531745599469358601820800487379358537835751702625825959630525329818828650186053719628535099415859035217853864317761402825777241788668959029091651631964286197263138221834390777511181049970662674703275334514355355912834560838441039960928394727890610931301344656597723169348417051703303856423285503193408535779643551870951439524507504030767113908487923299019336389778636975413564646543959068871099522607581667684020476092104163568631594336590151676255644754687446786280968211228502540092043225650305558904075189899631805644735717102550874218793026680056015164903300422698033789478522134832719362555780883299736131140441045618663668176866481292126863792694967119777934057163620391004630267681071000362978478650249104270281477167836078037899603892064325791405208868702258868398186130150183181159934200504782188308894899649149070851728331903110127916713940420683936461520603338672369900448723693246579241029972237973620973134124030115931480250752380143215672586056507299771693898986234321877491618260332679877733169318291656040946964811303356923910399566153674028333832783003706923841654452568820891894851583348797101157703265082353635838949349863580205330532462516972641013952145311469452111528465458265580915152195519761840568943963228153334220258773413730445846387064811274125438223255256872312696177934845478343499141562069385354222376013918697238174191204287033272935424462152726115189973093721118326735867309064247837180114594453907266701030040576949285670682627313350872384463095828995784240330889614495601567751081569949031942061881908620752005082877187261928549607696405704079142945351663778350707516189053756161877703757387592323865847438568005989631107262560787845162625149285928846378787527859548134850997907900248015538175447739397052487993038927616717855237372433334950838737402735863713778104087003920239032337750362276967642497881091113375789851480935093143178257334578733032447758216084828838910525672058338119516564810572129314282987360171293874609025849336733535619853300956765755803665535447003589341123902624103804937911990897116913092768319153592512913628077212710608562692816136192441856050044374026378691022272914134093739310938719720245282676045986428821128056317052113479936441133261592457961566323252025247036273143683593100628611705769477456795004417437978569070370389016349956879225141527622993549284059746790844585902031135440335163516440717256017840309948973006733759814717786446474504516004369101534442036908784967313112931910228446020337252675880691703512208416091648714948385022285251668178349139805323463509531582162664794098562999885770041850038959843458974869172978761145095523735511161364471005877008444389634309534526199141961236281174646505762428497616443790333981922758532520940977173166498483240070333805591242256941959699060369702875669083569283648645510309684807814517721780361587585267411121693259907130832613610146096056702429995495564810581561467685453046330160269616434222970049385993565978420588046702985784198580908344281849053381846765735185408718154862583155146230697979944874555331754565656118285163452084535248361650910333616471352508715950791186686640407436557756807121541533697028872233637340548915464853650547088903269679012901813572800521527184110506621420523729547514471126490301088688839565100230848834856706524130516022591668449895497361211062215072281905640893341012020492342517966433111542663758686811768981373434630470888645369949987951700387881062297366522989898758955489291448354361481090836635817707447773187819049734749267592964428112412412877241939221277918381282281060711935695852637047784003647877422119801595639796374277234797664356943650354612220091233889329609662234187974873725618018013743801059963646897179325583116874224901433548924791505393721614058851968853411013431870990551180560878334664429785703283867914919966205853048381503220935747090721888876120071284977479318530623532177319913820463114450266161489079548602828533724832569127683343002980174109316240015922733418583645532591876344254328236310560908296995678373189382760233386109867451398103676937282351970409655221399157695012871009304681535863326773510263850873722841483352518827249649503541379413607893606573786510620557468514275150834221044399563582281446556654020963817669897768655766363017426640306443724599359350548402106528159158477465068794693327615970196927869720399881027575927887642842426539003885181084778732286953524546630937677326048614730551952410650712551231360903303903769441256190956871112175912292631530948741243225789562392333668150182890439573763045027037064423142155365456091696082175804902978663039301616484895624831014362494165967546154583146610827627791647626400296520945007584656733557847190944770853545147390455938914159292487315233169364195187925661819177209070345201963465504930713335078483851945211326011475116268891242202486116727591891157341580436262924689328257250342484377283887409713776198050631725882321936814365181726220804880392336459028679324325760150202081425500211733430902316664613567128083319629086292278282126006133380492315275990328216453892600747382232900042930764122100115512109624558673552218784898683994933205980035930494106949819430844607030444752265514851708844881482952032244053284469572727662561999869341587020216215803139640275505176658762330111939423837493468804550160678279650023954242977557936799026759092705582843703402825350346823597291300725011718195056134376451711244097784189732323973093868162222685618865387497097892736252109967099844363898654837156789222282339221346474140253075556341293660178427823998796421837110819446008429891322098601124745975963779710099195303911101539249069483490920664379244042999070869125536096275173782842516439411671468963713213275908770275513865419961855791224893094542050873567967598446123745399210218603200910456028300381084665425156819641586620667610086406444976804826271378896925892968965537221817084333916265942525696924478462489816418544437396145834750583124472452571234738004491711899750878565002866577350216652762380706924072765640402450024491351137659688771820899848607614136579769914589576344735372133957600086955322261634054491123433867333293480691296198906088092027409548412622632257721395299453859730629734097442688982231557811883463498195068144905044857620884065123155085152651628443867257826442365880717489006711228708914605755969196125674578251078736461087862688485280064470956329914410154549787974155630824887955009895690839490832609220162110304429058392444250079238745899238922955471858196121437440307469309305165901413711706836756833267035573848061895337686213197208272685838735365610445805901020719238960525253871787058927864045052798357570012741406420625156444388963680653608954703561151699821567682643537991602529191874996923394319001993578957921742720668859111278280462229665537747078084400452392056164270939205768608237129990381551866214628722674147933803910579892052879865548764695625356140677968516948607644966774004767475918984359198031992655334774618393805266296073012478100516506000820357618924998261814196468801926416394451818073523799927857271577355005793402105775901488140367041439805180618069113340706385796256313752753380211465727909097904350241332147078880132896678359354086409777689355866370402576390276258776371440129150438779454217688816039949557526209116939510875551678693157275175480622995640007171209120745751635183474922068373598473063225926622143338152612829196025899452536621905872307662542645672587960503610663981857880929466400640956798558479869639481933185393484298945065132697194805947343108369400811551242130572803634684861711241664993238956931067781800206100137925884889540465908815737440893401025842190431810398884883836315311804604267843552781190550360831182995945537716475327750060871405775976459036507916381087032272345215807917440290119847258497175461407085096343476803700729009029031114551385246559170515073561161726132367962576318673618004340970148187459217702004306842573110912895135309895128255358543431593467644122880523792894235947133588708725714250052127097598864434509340244697372737163342219626115344560606669608208290235894003127645598525417958294549642236718386050158665670244570579580831515483010523552132541155028067181742924406011436704246993038136859696280539615470368974625312442865389184106664541143842113429836004417254173646776120465000416018098631007100084588868557731748339553751454827299414985495061454993156710105399939461048298771597072867587840656013508582209147040750594869386455063358049956070500067645225520284269202655927563233697079368161649058467244018948180671033503882008502717651506161923690846521655754122381366802590632389959978489237567571467161809802258870842045473736914287308834318124235852602268008022078122881599279967493089714528856667471431381950527095553780663213484749445814245875496201559240322359000827239196460691145347362874392172430937972310687974039355500511335036989601566304492892891734552211599081179705885992556585366125434149656805419601924037434618995952703844665962381507899057762966871122413869074700826154798716003254495113211233380336133331214673802611698074929297824198070438450488215162530533713441867067432703974481905605476249739095951210085043923576564335207780127440160492771433429917517569355406595429915846005590807814990059266101888576759784622310944687538374275593016114289467141245004576210707460084503441509053100099150008056294180465694082139561210809250026067455195874291698162069532705238323495984044376514191520477961408669406396607342798571033052469240381106447298420361897829261460589720249625031600415814080840002779531450887217604555418501766669232081064051536738693704097733187926123889778619344421616077315035393323412150493915198777139996297065664088862852633034164532935009586364909205511807275568270144165266639525031811817679171403340315665472462490305140877213109492423231542883312477236562839054637376921442631220044077996998875262620935413673951426701520294946275463729588817916633517279841970304528723721756373913860885137989917127671734056388334727666322130530147627188734980794366250902243646603551949577283017619721441189106628770326165361853586688234346668662320386718576275971412372538900137094498206967448549280271426880955399469725388419326714229034161366194037288368077524636681229279666848359923983777323772854335735170647573583602238995322491477876331762010279235508556372269219154672784720325570648886100323992516314755451334581770470737340004510749011185302196833835140497003974822323462253402313569206651883239981389314700001504649873396065684056609571379203936424543953901393249631113331559978581660246447954079707715285118546315698853051798002996786120925625058525665176301251672059883806731911264563164029378345355293178131756890525062616180135259627432548235998154696136624948295802298978794948499379259649701760179672425996561296328866561384630360479880608226002804262469582447915676610625525432538651311448571002403314845795698972515474772834350610375131101386645169768018402353799800206604425791176580062241837465216898529387352102182780458922269714322157376295814750789582860053854197838703895108282607248131688641276010898158892260772785981499124471774121205533884996158521846136623361575703949507015949739207994231622789629729397780957052010161018476951386664920354374809883204964159404111964044881024718408682640154877779931569569717503843731624567754713827299059553699992166771522167826850945821150297337944504332165046840087619141687230815936052062946296717771901676016753355692337942248022096234433721980211876895964369657053066962887028935828301855412463999287892765371433810458469591316328752348922996635975889510604582166770553637187520650474830557127365917479989746196670779049559704658168676192119449421283132474682638892438739899807459440066617466023094466021145878814859028015081595525829725490060088441508343097072546268371298307439158541664235792812039571680828877394307287161256131537565904920352285837696429595750160593311390921269045554546998435366471861686922165333701411385936253972962288663992375242348360880711627052353335294558253920462285734439929036940416849969332003989837304109897257636752665834629550200083266100648914041110974466512830588873590683544385702162500582502889221528582400029187034924466807259196990422767746311600403130931036022736962963993115990641195303701301850146334470286950616037145384384394416145672803013230028677398486360192665579460546455502877163630947424944820405416418480991852503238982305589593103100793402248516557709579588508358212338836678369117598798325718465504876213570876815873302286612807551230163529587091275041736390249850046170875748624154839766428871850874395916648534429338810600824910726370251012066601663343684384482690194515711596737028447530269858108739427809557232433307437887105431787386104784661471066373575173286908803125360180570075477225288842362675237219411978810946265167697568881051050511402861768426044839855909567872643452931270531099336817506609363248273113885789844128237049810444779684771277111196757143434964988383312815046042227475349891231154379792239231820980769134754523833655603511022715163364399956899882269946769791072703037290516040088541238401550692185210316694670883297778729130021360223786791522427375105124609175417100926243360145391016282714184904256598677104481855575627818832615320500617972630480155190701847344993007652067392398725981144972240617657479267097966684240323744534898088019579379113234534650385329578982726797982568156387176225748378286519106196646850056487014456823042985178668998104347164383754588148370687206759143261413230928112616469266502491877671222397759154770975389326992054514329872956901003673151364798502443980851256704302249787675244353974308515515903600270448185166893648148975440090501273273420663218098818047919917106804703892698073190263611437275312531157961953826077236887605954953274865135887146276863488597248816544904765639617911357266815842254846138622596786715757736531411763987181800615502690445064157975649809509148374994221303385357109330872600559746610740198674173781039082263696873038994414203802378552299034389303667923866213412488511977778086675848168008377111330258855765261964413493008766683714135558139559496222299668124440052603789531092313229017356192757108933332589494015625886304342863304393839526670437957727552833723927466119193777781685724853196851425505124304929031928013372465515909174535367763447289380845063576238149839550341232440247784774469215619412455048280712588517791325331748703344173520300296994924749187750195894038117481247322159508964040843774126912356040498178608857882691480937609426063163407527853772382575522689525786871963822164132751399158562679104137456551097693122962157939643950157560440485243026050946328025824968775254811091485628228739744964359260745711014457123106685386335027104316229015342119916515029239995359478749027750178484658892448505162946045641195769083025800624909526286650321886323667769211046469388900922822856395955377509480086833007006231641022628898553957340158873931809176085686572535137167704908915008416374749693080182710625773826697708214160235844518708019635660702169832487296955696735903486997111442011497091033737729794221713315676598056564369676730246825307906997332986703465549182378642425414040115820262970860125037574325322769718909098132468745795393470121559009548387346137050320421738307787790553233352507629201440706852370174737359238988179608202027223748053780541726723200865310932605058723782174112554682747941547431437502826453832777066489263208085205460710843045417747941945038389048056569319299838822289322873354098666101029148993430775837799483297571407630198388370647406003638005655939512504530533763178937967496577329225343007804790694066316656523252551143819886509784379833609075212985361803116418444370555793561430164335890818852854027257444477346054745793791089584277794945943022112167112513374139120728940818278071927268662506074768732172062119050450636830871043760481594326036406941770898903947308323432453445922865289261593497974112365731122971815304325862093322501734913887341309775674283572298238231641949911552844720172705062068347755292231459952870927525400289851369613325421085824983703312046960245222038308402043648998861046588430305126996692590826111998298721065532161469906661058078325457054070991866753622441263450450925754541008851594835152079009801970750434490761212077647921695362685643286534126440248531900903177355953069572656998616735078376703593201475126309842810066120875116397814815569276547128435352201924120891849800194709958512386387101043499127785637275774558967025564281106375559209725801787264074527076678935869343899722510365896320275547193862989544246243435254034114936016893821470852415434093943516875696725042866063539596460958045594112409923103676055395149780020835324711271508482581578257849433787139086651728637818971675860344960163253223335114478127031491140576699147201944115035455060917920073619593812779110910427888399319616676345784323101274916486539593935961869089451604901205689430803744795002560158528646522061191280451662760636383263586086734770238918942463904877241057575327395584571775131394719648277516330431451430405963146049016727125451105004609870689956033945143928183130544748988369994372327657030690854720981950808883569012753701532911253793125713427098106418948779555507555599284608748040877912386654923929494508526530765363539936335178407537650751707758093468884278484718233069997940819313329650718664386093809078219698054410466211871148602029112478688473336500747900772774710325811676102377491064698052093878783186766573405876976573032699831478556417640794484892970083295562521967125441173455548500459702534039752863476678064250390213649597264535014568974350906643677640203234009439784845350421311710908055839067236799415095089495854187888710262595045425885641787885714850129255305432067707999083182955236400867697763393874019083725378190598380971526148014357275527319563620549107839005212267693518651880541074223838719214219146674343766067002303211176778054665651051897126714933618180322306609158447318193335194733984417963497884266571026716317056350528639033447324818346849657719051457164738962929457074404035572236361692015260759054221191941919623495455329871199056931317934183205142887285033126865170429363178904785781946404767222387789187110509255128038351392793063027447927205020891712387673579602109660574075869930638736801218190770693676949402172465958624811253046387075376675887663703981256923920670681381350181073014002188269193237485242013617235832233200113409979328762059707242364221205187363591405446087225554066551104803377084858895983313815686395111483003871547987951242437202965880316634359550355549516804146531856325410426162234629939720017204197084915731634768510233581837480888882463313560809245634208295270647988839440326923440549011168759891638336526814615348369785385472328788495506494305221483687920276092128310150982362636346891632386453976158805876004363895490890311322068154751159433550444505389707412928088670508666630392289644721414512619631530739384596551992910196728889603905831097495751525429687574265231265003099697228120789792504397677629278040704151047392422370395303349975458218438162278039889790695110964451931530366166993990072205685710487176100400262967014280539134741284882012094390673030968355280998887448844117894492219573898096024900697601852744942608576366800043831402970543577429576406139781815402635257804989068836643407436367093890122282590811477309435288772624585890210621146620104083697528331589117562146820666812848914053718919059436236953657137488410380810479356131760841399301110289045244506836503555907517023209580681544748762966494667460069011236465604962602376668147624843873373331691827948438904013168812871837133535322523578879817724160476920528909590052943224539116171292300621880495581240285264579264993308920900885800823764043089834438704955499449908230982303466659451081655598721181111773901586965029555518310355619914997731213414261059315388069186466921551540902037030988020224049765890729530638143672487841189953963765803677831699171729979222812647900755292071138489109870179298902501853178915972022165775076699534559519362674159159820506706012394154077844395109385531153085402638938274007333531168473112540183838070609169730287640971591671873094499427195141123610252828260075805958181939633625117731876348282997982005075879291026158451187337566552560279845261372488218097534820062313347011879686960195051392076234950827161284988297744213791672996482483149731187672645198595965085892792878777762089841577246503264569455880644052067228970191390082698317605686947755698037144778041258496484174772879273127181926554389920368481539812844945660403332190584989848932094390688873289736990356129090770212476200196501167004499290809890905556747212174881927828585262287615784153229185912323768541561115880394509400570930356344395707781425463223419462400197267900738838974311033773009702245946831270912916083908142067706931009250177669393740691000813101954014201222721170549029071565507374781320348538097681884341420652190394735305650211017784678895041574224075707583674784880895950029529994851360408487986411565666404796104855975074140242975716837188130276755446521273808171326787373021975001721682183864116952414344137040151682344768125307209212373588727871371572687864952432963956138219755247649710696814184893772015484085219554198426263105172106620006342791587073175651312903421479789446919029315631795681645758295529831551846934882888500787180209720587120964951209807249211012158445231048369567672425669970162828325069144380026874787843660113840051190957041451257977213371462680108191569075353155876884163648485073882207299049104200449410073027485525723188479521940275549328127669570607676398547281147537204947431276493548548172524436643968919180962011438241448088302304534535693887201446975025424707253204596745854220095936821175879023461462900610669007166682999658220895896570170413727442129467072879260394056289107039968862622026928910333382250309831439615783466994833237713002514952493927793812669572585637375438426583076399450009545702953945731413075081409590170348473871622342214772794412568337957738494303419489499907456078665780060868265922079697056418687148259936580293747002403993461829988725743616039409472690693250231655701578602819366065135347464301518665677011513766428994140733797214131244144353874361920787715380118420574867033053013107778518116508694033149332295536518699476670088551762787460931328604968403633108652183078340393862965434022862498199295157022092205827616560785493863914034508256998520780183740103582455687472213628313992546707345382045818624917367377839097718296270510737489254081460986033669108540342316039752221005680694410921740370544088642697421456701266265747205049528740975562283352100831339705641284225333407220344558559700505506895376775666171944052677745349561242522185034272188710966623248150265886949152306502302603403848669666227090747114441533695893058750087647502868809630114052666510826964699446197041514922258267364075173484503101725270913011455976876460167474319961804131102306945075264041045847739669908626849102404223559777923844196750304153228548403842760607965792747758346227124747200580723398051151580207233394793265460708693243577986535201459046436741447917575912780363265092156355278383820525867149473471209582723871761869689914925043648480001488251406187296228188699228187380540817756137691583099738159828942715452896179610655115349888988301170580160077002333037216861323572341632003157538405398437640145368178151488913788238256129836725459185606673708136773090917152576692178443535392579005448996573527862341181393385364491028046580870669338429424083247595763956569635620750451747143202772615200537275198532073670311575801529284900670689414800845258015039163684104280698003203961182212717009847852728367085466718726639133518794669776246147596936766440868140079014082691941664891322184346677083172774056727710330020639220162049924174663424150960483021003992242952573119581973811949166398364958474935639741035243880687372813792518643009912376438876325788096296341572198539706409645942713388113528267068756028239050273308995752304880354362247021668078240625234476877196071589348477739806179404125797614843874289440553549607466973745811671389745424891260230029155727728825211381342651689754547896763698348918260587600854543949538049435338463283802134645000139336214703445465150389620720320551898564140021137797199201370770689515411608497558247136377189731198265977986062520426801870674216505599231215318602510619576320220495612541582392220211354450118175784396633832633525482372099960644869128187819831297028770130967655512016118566955786286731036553681085086168185228015384505908700996356529955285769157691148006070831391885831024151067001712532072201445074354401850793010228329802929099818817313561532239437574112129285613081165379428561474195337385649781883350372797070337131618022790164863217110620158269054638374022004845690299527384173915493833107791006692743463687793312804744895673750244394303259709264849175876148234415404458505066453314487324879482386883572994922491345980375290468221246216103799524346219690222818306776803211801922121839856417900064358415156978079463497918473714045626186734894393172946869836862064269505256781755439344462497711279518112324025271314253950546088783416518598303269614368496515452145960910944795717205736331063434320133615702167229509834598338137840220829953649531054629201842533467470234972863292717384958417846663958008654982741216618979162990175205579478184822744771207095759508667551089938191371935469460008508445689735615083628443869269128707037128793543373924635297181503945960727471326914274484986197549339096256915999306944016510163838016706219779777662350159015495747561358682300540888688615165275503598076452705454382735080625098346426943370599497067784817939452745282274447364192290696078890940218231138029556707676118611568623754550663113760419443191155576928471955540119333874523980188049406189639947962125286764688007224683639391702792043170160362782911220082420221706891889953669530399388489082338820835253973187522530848937954351470570385965067755047871714788192626776828518441587054002590732515003568995481924428726468428281272485134689254401436561380895898654839580162456098574478162133156318193746498776543091567923244027060588592159079929618833005608728845039134123051038599578232117418309437882623075495690615874613806375990836670155184910375122254432931604488674285591928632359298583080917537633740110225186707653414800645757971077734556878418004679976419626114053962682961116662805068019624026480542233183977257078276199770219421140303295526055909744773611921665700421270138987216940063733169416661791549282569503847908708615133952665109468638934882239414836238544723357179261209735600026884315683471692121867135507957556411658626453119812005555085283240685060767858970911251413381305625435160432933901590695319335305675861260967405355384943922253024951425366275454609083825513248589500034299448542831920069323038495394442946540080147081113298149967067530744361941794265947609660975910692180778572062369296693147305658216912246919442811439249097540184656446194803526368995534115149114314707978067670721096679807030991969033224451148382750451129804714790410302094002060571964944974858318363375563602063341984900414341433908091200038518967888056236528728808776888654247984140532476993596265882853129983514689885267567712177066081438101344745565781246527733418646539293234540309168371993340172229263100248636310499990461620075805646320511180497014403696678205138157375911357821964977760939045711023291568154555770719446010086332312679621567824470680634790045593570976149186815957016524091062927682926099752743603924337170821589461430535341194065537832782552376398464033746391546584454696991467076603316225547861448523241110439810433259649105875758007597970328938174281355642250167532114061366297983106125722939066605906540462896547028136849990602912738662180666837832869379647290962540198909965322970901818732277935348535234902147635642218449082139660896743652469722812563766497342898755889424749630079102478986096859003867565841624555435856253159342314728015104526840320212843790757863135541581846147986604074113438407115204123370749991638348759484508992731724819890802891052729410605542899797343556437777670073064934815265746615176250884547319166273632699590583156432586354044625405776978756585173524665950316585393077807758715294368168755545070332726465166149607522718027451169102116164629341573307043285713268732457439663261693843152500572421558308156886576018256737389156576099566410123043316197963419858820644228247433707082238532610633641529358359872353485347327907832912120708668605353117671529292715619789818887151572360931423106490595541842087003560414055810493928284297822456808667750143937673566270526036061316477548890846566004857631576990655317317284621825994103251018848002676137309627065833190467028678635924867413905329902515105072797563071961319507638355496854800477514525770055014881441340320542302588502965321859801162016543092117364376847353248503305275969576034759613542278669499155981434176176633913492067433052960749179124019641236229446914270710629814195513636930838235101267830866355253107168125440386391076203472186178941425553231163677910531733151996654709769694644066026846610333404130760491346768551866476361994950863177348566558442691716321235930850765546335030755100791338226905069788933822627051654307458435113424462498430149827785929965428343957776118464978776232286489203738845450007903011259791579328556822630055280464484529377524325233028554194773874909612935488415622550701714312256449131722121784324638926519230746326272404150312851567982010626093270490035908266244620822370970835807533400738822819901250779919348514822500047582471716556290841321138752848394219252625739540875525088297026470922708834619564568343874654621473418238441776288325131350887809304582327253040818790903016480129865394030274011894952230099847022959826767775948601434968311111505915550066142560082798152046007357658524330405706271712354637127648662127663141051032327564744668761058504439581254056486546185604677664139902230670552169170187454996512433153333051464610074890144629484517578271031433541466069653442835604333797590569336661149487689407482410373981244263693050056674302638784509343353948212062275830968023119790976273168344149092148574819268092081330650237075719190316291275967816209311393812168562670650233054422808258295851645686452613142252347456201553524206506999341119589198908739758911688112744167100385755500714218134309721847073736201424941047578407432745018351853340324057873460427686699767632167959617727308087541032373595562698659010195984835654472710793226060593375665244624669230755059519216900518641866825983785609488267208435777122838618064383067934048325285506835546560352827135244804756537274814961942818460927141203375206242141277610711880991375706816963959286466266494925769536734169916126144087793537104118977276656227075497185602031993194091482500624113776441798797179241663192001705982179782780113219672290324974109799977490809159479575272082461350724905357524613777682227894786858044327346108298675352754693187456045534721094651549618192901328788005688720209956165378480732020341163207219796024373906386191947666974995785840855556979264685027555173194483103683844388067488973512106435091472502542512834939260938033178350306542271573402547035311279581426796852649233495946797100605548332543848477671595506251278888934757774129605812069244251766615134268700091632227383063961269781706916962137101312961533171387858630909450486010849332080239510463542093510761176069427340281017130305598130872876347144761801847575224932593279525320840950488247286507640187744851735810728020248938115246828958304600940317941561558435448485036853888776993030645304263572871833403604750638757881640080255741027248097076083699436914106408100411128222624758242271046342217564697433782414188150478123668212608235378260980661669118397160038755582859367208428753120073930007746244246153798609696798414179473623383078262658891414005065216695149922535312190089087878863918643406787022238422929838653762779579153323823679893990246959627124829756376772236532860243976524006736648098000424836301683234684111651614623107735185475298852344371757368049503023563963646745257681984128067070275058139644859651507078191097549382269785460330091937924428264017841854653340826850373637428385113008438502263651812801159364980905286708777351084733263617307516889593831706979437947609834333269726469427408056084937434688557642856648504875702252469131946045960279409680806392640160046027377465104321039987805539101673211589869052064632219106290133328019994187767438519124410767808896261518386583466943537543094152755981255974631303029457266911443243861318861031511775485427342497024095291037489144321711739021843277975487763612703971629053890692546239434379107602503045448827306133633284022310368509721873148039705377831346350634706402914762155673177513767098602237068496158048684596951569507101515333023647150657446792598791697799136382868797226193035211933447272454101907041932017876739911409091170862804212878644844986448088820589881500779851444724960455064660868588927020392295695154283762477720200177062124389570678719114673278895075269643467418349637943164262619411678503073490868422028510023005265643603672021873524928108578429523152555291388056046697065990958813058141994229204757975608113445144755822490070318982394557462745317434763093747453311770677758020849900117992337985450529677317221974845525221632851722516448974912391592057580610719582334972805058637018379520941562723822920848050851941294974644732929014954998726378549125488083962628366782045458736276874463839301669920681581610407168180217523140137489220356157209628545039532896925953459350078671101642191205117980766578576574676062573931361465239381642598188963031251645271782940946091187160575083850536728083571961967758859343425788274741134200043929829654282521407760127898215208092425658987050493642862376697560672490643213223873816413858145432670608308874996374310227353299737724606169484137049304689118537610466600620213813142696428535156919422839293805483313408861098451247372056054960135376868960096923071369005961683829524571455862534640832641459219570230635355213741955891908302129390723933209869698381370648672353866254617778344954557265086977879998427796985620911038933838206665861165480691450120687607914800252784246146951992938913127680285192494858737858927709613838093935085545349139469603331023288096302314388489769343277483022173116704007452736267632327909211804374977943249447660246970070184798380306744340143059285007110011526720682912368221708960387864029741577155127313030693175584027882539301890552079464252169457312311296807127097881894317604968026246864701251092156548072616608105670315628002601078599024605048978634809759394403667844162765672753501100320173287989799596249602019513969454811820784154541408902780939412155425144960445649277752535547655606652317268201942179630521754174690216646579197722808542399483481879329435376021365683642966170905115327246975524593630931972666297559309890884389765959250412548189490224111181330339396204626575549966764995934550466325733841810379703669621633158379294530819983941924005266414480970554964492519852943116398458867771222654987933085235510793548697086161505419665256540232678750553942362274044411562999362656046350844725992163312147230762311986938267961127377842724831186633656170736545116610070686533837065018794035151181582432546942337777676810453821344505284319777965739868234024415405401924790668324380643655390269033419145830283177476204921833490088191258919585306243062412578531366342848131687507432290013370461709304754900213677035699266147817375243786455666354729154864533024504849488086209631250314494205393502608154391411518549312208720086675279424842348413532933773805279863548669635218519056303901683020005833059119770039388091307973360436048988199653971096170814310272904732100027877955364308580730947735839134285686975785443116753658855846246249139922593080602222013350278794781752444502888501054507271640649089551940105187777437308771139568907654422725242059884924185163101927114223681957463577578627560610460509121142826442046086853779792894612489755862159286328718765614671769069464165467590218859649105159940280614934623791609107071550312765971689236435899374914185392412795571057567042251365905461974709124185711958519710980449446234023401874402644733560151172060803673856746287283383676486830308497287625526758654535346023364812354011848078600417014445186320556548900681308082675952738850786820672557359406996888099084257857830722360789695105812847151227336444928260294396403226189662301079623644174261223999627771135251468385565882190174307700791897073130770329713270377931826006978430141385708766659065718221397943089523252840860241297414682873363157214213463913978652895968683996898633613696429574002584883495176566719125680992584719988885123522982849989844426601757408485214979362555545359848930388519168409095264992829201942373261948831752740643824598088526334129829922567303068905656769598098773458719941022016747573921678496393042866973196113270666604735471726614322297504949295315385809840685142714115577660384974595032530225233199665521127383378928885572616148856708162975546433482933799185426023509677446370478212925335173226961079483184334083122786638322639735632946431545330463083550945532958274184065636655553957011027426753283780038728203209105048704999483490234207029291633458796826092060749601897880195053304447133661072520435577444224596361267400505814599968946641631690809473163243795441832514546606549209677058508755130624067098243427387667845782472973500080222959128453451145748432716318238763609877393770926915221240653948741363190170314277177457429689448028875871228523991546127353404095144582768439184388269854313413176505934390342341591737824944443509904158425776042386576682086571319022343194628424456554741015323205723331147430697244125830733131421056554992984254469421030144983832787571559518678057790455603698387327147328510008662776230025583011487192557198912696246729632381386492734564736863454442033002991139237850730873950593742211081554838069930531082051755395380428617821007437336600689986312595796610515111597907333284452556994975295618893386660312191011261593273606316665884994536645580097197034154515805156093495928549290412197342503980282506522237611114934565703367867579069227367804000757746387981045093562752911109957839447057656599248810438609710038187213185302111780051034731545813754297047408701091561743632117358653586473198603585975036697684328359633626441669898885061289913171836792385962329653839966144259543828656310628384219336375424158467655589642553945664831874895161984184886468024347557468993078613563603694255825922132497404935084215823615186820909159152965875037036354052050805796759897494829544445703480731159251689611949768802538963597898330281750493024826378391386814433130824474385106836408692158276005356786760563098029087535120780100536912917507268758299408617211765764173498427348626559220127048185762437986028449644922309430100008276160115853162614932112024681309828682038767584841709243375816418852340609485834157171839566069052479390767534937469497878346601014274785618259926224414414308331112657072216975205660263115101398668958231497719992257767325340474095212985479185627294987101265211949736120952133080753788254197589231654426733165143462175141626150066782101661876269158946211799812177898748053051051354975143122081182176559512969484983218913407720089988029928049738534066298085528357425581546689598097192897122022471775025141899657272906668777832044091452573906817640562727669325713430877639855445533326156735368835700562598263392975766766972608419246333328683564864713400813768063616607297000684794990804495428391434202255349875586597742214740586787989754565709970032125134762641157409471559050492592184387360966255643019801201979832347761999018320972407991826581727825092037918252103200528035979782134842109018374659251206177201334694438329898631874306236020623852170925512685703678854302694175297158119234263727096636888324987174424226731018593473698310847704394779310530307963619822068401671869763551995939139637614039499820068564811769994520054904296025881229491827961475185864042427843696542877117480967322282715677363910579626087391944303575192403723232126456903915864209760717309740630632229223341808187313812716644622376637414925931295642170045037744409891192005869153476051838773438298436030445719516630446798667996561154328878350970442833633511600393912163998051575664956731789159451124246148731758072441243452669131658454953721809399251420001319917717681575729979979902336434430234468628482900675962939406993116528114413359353927594254078237265828091326196865203934667451572154191644104406167981153334815855576977906045075707968046413542086474858119621936278504298103058033856543306698032435621050380264337182871068247181265540321357367112691543331549530865633804636049157481851405558845052207503001871092945595941447420331165265727847527407124220236017364656622072287880901956635134947148220970449411302375162802351739267846114369918421710999721061881939699119599043941859680515225417134663441497985083701761682864335066617154663333556314077384965799810295049552986392380187751404064872525721651451003497789896862901756622673220715603210234565920278041101977952425970382480043950862446566343635357969053591624964588588044463144196105166027276358128261825153903541151687963261984072546838435736468200437596090202625379824457214137142947312461551846030897547987211700058772665997549440092864294920177950709879763645857414824575587620717752083662591176645314197695865411303500919282415127001891737752192334034230794101104690965245921729419808160221048920865697289970355657331119836150283936068325027168384099582909055259110946057354263604268820886790184759151738024158055858718312656537957382804427373713528195025406922187918893837375495948267135886835767398839798340071093561066985847571524763929469425438682443219626704104886327748507587984733556742812079775336246838474496800038692326632672051262793180430059637149298613644090611131727301902598575113800975261990137904048550478949198802012739171522547459982066846106319825224109240076584902983988721184626036925749592115848554524060077980597085378977014485138393291055099063505245514880186802041772383439501433033509804426379965521011977963675093913613444235890709323305047781532798225060203530547998224508070450997295687910254272151297351502066259103334524341508183460961754296908400743798339895252898603863469128332711863199627922172340109951909417049834125119611601843094462884599720223767967013055081494837780038122710637006268621932232212428701435746155714289389807034309205467123476412933632851726247520122220599894057327396894454605394483263606848688802871330155444293474226675816077332760740249818717026930559614181684291250820601550680781324735790733665500756181885795600119613007723291659526022827758427064399105899572071198252066893486898412406939693068544312321150944784860456253963238455651804040175451436554061976088988002685581374573032126367694096990705405541272531896178331322277923148110232226634172127049702803805215122071682551465601574316228552992902844748800998056066736325750180124867896724654816613465246828260170949662803409808351836205169543318859992309887028163656712209608464468724428582463133362318123349025997342930141389260352512458622583582573677252949548029420869359721209325545783147953813713559964742394030334615720440454795801905137163303893786551341751189648358469793601868218637330197807260784887535591923172334891821359425666623664856486051175078774366392101053398298080133208911458082954505161502849164935106577375764640217047545312193590874497348062188112681100971029337759988061737309627081279649065294522497701024520038743696107601786032237555759388790667065567815284889981006486209783203845737505832315647200529982224203216991144936901392908662582743273825600648464366212798535173805000560879324951003038668901748443052470256431365648454251188916098012260068014599608626251481114240702907803419498292656112796893505032679799979987711004951871194510776668913243066756226800227069895118266197303189380848084498073556592801024498617688825819023357440675134634696000907845607738014265570902969699790904979230979087093374164862324847751131850881827981891987196241498678855809455237862279505893232216205178513161398277337317511682296792417907865592162006241035339437978179443826890353950824793233143767833965836596397724016060949111202187965452398284623584751437287162963382180543888048575951078736472430782549362395033988324770616921031107833597551079141051231311784292189790731675873324631281917071746977763407448956227616890587300056607282788991978465235307370040827216207950144824408413420092688797256640815227229748990821813196512471603640559207445331833170664052880140681331344534983448617084607925374785670760791409257316537853936610859779912319112607103150306398078155936365455423083654506856238147439015496381981531305535304832450670272650789731240331201618755893196027251019556136168605154148638003633942310171001344654757619764951724562092441950149903038495889601498207357297312254134287717673329204974746777161154243569240305923933349313829501393022147920418097058520722443294803287460633162996613804537688399547542317360817141649479874907392982927947918768177912131020056181478398861005338594675256800426504267755182979938369474910046548006456858796408005595404845349233964596171142530399775990421440984730939905818546470325498506687443421171710969656608430699343775944193595108596917508723041641613824427800426092195282309096676540098414591881143690327273176818627048577249699145651164380175964354506188837824388035895835485151117410880410136660245465783220510745907056830789952894880215365314243197450724040825695453261824761202640046246028474815600177194149326241189496927048537249854877591894713602557549881074161629405245775000329380840769924960051209144909854387579995185571083778175053971918897553061951280118132144805148469372081454470189091212364539557422420242253417107911030640887654282060707009100662943012499938180292657314660131078124684982971505479364051379106569768215770691696223688318640057818807504319618847088681697251851869261205861247065386680583494478661659167720296784455892814345433534865633280595414987503913271237517550182445804561327068083414139413532947094260992884277665989000170754292906340998240290421577990305132531903181242345321794360859969701300432213334483319651483614532506584476564613626842694863457106672492620688213614358089956696788099488031646976351165880266908295848271816090338168703688398053570799868371491148397794264536497306512830039059591504757399034035880139475403331757091063508388316327178916458497347675695346544502446256303330119491100722170111607655151898014045068767693979771093405368473889013130285350243710191051313643124144179160708899383920905159893312298465313654258573860372417217939173842984298055500987838556792921419984977155709951877893365185664448894269082488501630984618208794438135737332939893340394236915248942837103336404022565909276289934478760183276807636036164970865058121577770360568607721907236248370937648598598421256773161274840619905026236398562214911774935894390113800657174536267105389752155612253441660937545308062095484373654073561813987627788000165388743659335520505146447273099369676042554295235919740628031386009519458332975069684794035851720931543535508958601716713692243973820836268731669111111750392903732293957328425519856742890637657130176769925008753338180294177388165998415646618506359522246288955137464998629466327210033353066493312888133194552647484646187421808704232208331961165241407031700707387568502489153480414048986562138909862878053516125883950033030654660030518552448999492190843114260469442246026450328671214059908997713992468332870616018310048641780881763241384319793316604693660331211279892881611433322897794353186791159998847107419738907488035790282217331570592525337232202375546686422505206200629259454426605820622938567612002976258195356710654386755099322762171089601533279592731781329342170528114130967752203255902100772966171395600770100845996472352298618837744612800255865988532082463648786063150023088665787987846343329063897758976566877690097575158992912593383620248312714902674959261463460832657969439935419488315446326570027628330860951584737644139000909421692528756336271941485133922700078472873602961955730600211343626882952484617534770498591705863056152116280503461454330224346582890515535059611702513836637488494496128571096248034612398756796107240018301214539892593546564203611754441404528397400495534875984441526972674789593755388529356353303448141701355454537168950685332220377130835051784438174122717257841002522894557844533507847732511519021105010467910303366470512299732900988522455131854119619798365686571009196246325530474216196456465656302762456575955060720743353954893178634780322423295220702194890456313083590126523875957533324382407101467449170275309053720019301713669082694186558610974756085453170159906208761140900966459403149980105391545457568701701943280902057184575371037433635566125844114190206484137596901817633901332122880684812872734165176475138409493090178028387255124337301041932861962457445013466412263109275120569226710361517394681307949229602822458091455710395509883643589583745874459971576488277209131564993939966475108485889680301310803798593140812030945255369624578051240615816750487548659278026355083464152531440244278799403199043301789436989406630142123999109163249842919773842949792212654587528588842262309675772124285743748668395188495753012798654292957090894789962663340627766369288242876553811086025827826534083879164364604265115689517566887885597090437434995924210199485568304920562400267569616890840196907128141494059321391057828560708649676851646295121509748527760350294677007057779294627950540279145597436580256429702093258271596421404454783263936708343205214428531142537534447836210625429702703386129634375353028672053929121120436797326563026492384576638854951165980312762475574705944059390956291462988959621303574230609091489853579098938405121100306567758349318203438502700746658252300575125685261302796620976102206610361407091487774452959596448379237459833746285630493701208885482414251229109689286227328652634066829528813683741388170538651480327445204981643002502083983010536777168579304993032551949171810088096924259909118286188611897250067129237005355444830162994035253978640806719391761620039606228441513380069493450995763322756204667058310463261072019419178260772320705300463773853700458927664486269849403574789835008881075003839326446487739055788026125504587792245890091044451336012243409036066063092442319780805222005788651858727736409987586576205377743320400989392710555271508804896555578275510099742647033997824125817628828856721853428806602796055181918168527770703454053718468824850190153632727720636085211776567079797705232766113072426856689851893041935063311665964446039180003566867583275496225846426231308497361076303131747781684983510978199756257128399218461524288463280308135373715105153632522893865218417068032315741207206093120630897395541293613533814623041723026792112469628285500842260490536267120922625226103847069907358893853945833528795164581039057202529066640171812840220917142548369480797185811742271669051355631508588597881674657972418268019171065296304575654918106721599404338325650061583597462501646471066213611104119206939803455064075508517843748885141649686061932516865617329838060134231535470607857870401950331335856608299025689201027043306550091343670524075628255371266435077560638406044901555752375564870274084883933417491929678188287491524050620559488889640292723657731412066467163864332464477835308137140016675791903372210104569151378941154091910430703922199763818181847600531184966131274553893949252554402275783633582476057657217121730169794288135176318983768800066046451482866352583185990017888252737760049029180133168732747017738375513374143943511883932505613590039829978326606257854556188987166429295546032536304844566252313198818294870679675072666520098854033628874670897562010695969209720788357683076781611501302077455424636772697276144090938376855539649145494382735726709033369205342370462756995643827793519217346656506488704467222218026867427044873011798450412552624272214000917760349055123216371632649604556366819567866981260944404813296655903349428225816875160390381541651132141249263097913014794111642046129397926758618961922816578823097388564488502555259312862144243835460338640999150110596929522553584741734618736280568512083092514768812338343419291891068617047885939125626656317229328221733611720758907226284013625317404290680380046756747559412483888193913062084433167776752975287734218533265161090112419940061933662200066816279530828056998711633820644075267438048013352484808371979738276247292460001633288178051308224611492004969486791581518756530241184743962579415358008788777689853265747028123089468086524254464632107765188404375266690026052632268981406417957664170169697263770866522031522324979490119094066921259843773052800004258883519330638149925791301153039117648931703897289497547491703940652643502390516574621542787891078811717043835337134162459067125992140960328704495743042479937662327121970066648001874562329269247111581058677971889609921937488012556198770560895531929444158886909846935990427998533899533169167480221772423045997827671237726023851477125473405584823041745997776960825691201898008485531607103739486563738639636885945991010760900348058014893118924307850931952097286624494473665343473074450343372311468945623907576758504365760022573334629007804162370606242630602444846145297515779779444884946892007741457889420833213709556506341373123419851950041638445833957793141820461762819321074398772699237860523424446556687758827557064502289209435796425447700223470865844007965001715495188875417736261378590511617716765567307852692968177105179263317485141489443223214782381962379694660881096688854222966586125100095295288157248329250289022021897589190766830123827985510860453522333073486264867856275763667432083063344490684497251747405830862958199484822931357513231729227281273394758313525019074016961854484748225040309328040804823265199235073492911913283746547893193547958898101636208354657875348980454592187941597266441493153279980216349397828172636394004266723996230122040652734176071428459106994912237807857733903738069973014012237959775489838859179459727067748141938663251710209291113486434055983507362820269207304933204513077025269823145810602466593162073169840170005618281043707962302689459145489774797872353649542740468996831724559397291591253456889731364014863279093974671953447416540341235256826381903292143159961879656666783613565727667215425771625632989221064977641959854281044159361821738358359994693917439064643937126173583624342455865257286669307080353915141095283509184312455903509880492377642305728875237961555993424241531678708849919363865019840331414990504649307243480754697518292654447594787791281057782874690229122454940295751092650284246810835013759900873942873906788101569736487083651255812837417490190826808040870277020603498620857877966605483588268279270510777668401667575357896260132721358206384324228479591946253789555035908122639834202096015804136812538991900366498067452505179825589458258803452257392877039711959501883812012565854792353301364704911824351320133377472038268333399154950023635792069251548214174787466882344436715922597820466089010056963917940748002992245537505632650777656688417229465247203661426399965133630185626421302606449989357164915026953246211386558871520188669231668422140614994747309141309386004124077913493790020554814764250187952239922425332192062988235830748748800544394849421615557387601099362579117066280100641351302255430969545438550485872314853968199759363421169352844640499453420533497826788640751485242090843379800618315679004529793381534569950751973718037096781587315424807860244557664753994983569419447724138961685515306851665351454714239606400409655245078395538008386748277404319005197768742757996161097308094568618821601013686980631966645910212698354450499391425646421616596816319707158643623673100845432619686146213063357207581918217097521461062520464036950315070259543957098358071273484416945495349234719360871120052000350970658302204832890224776047655320194158425136130248918707461916782005262672625180098665385288531481200714567354889804243152859314294386622173686786246987824846635778464539534561981845129149373213988470455361995918959113724624813995475737117630414448191290607360829704096924558438489072011798852279173473616857144107809027204716359686795871389817019510622184903075118090936077930724292838765297223468170376656668039343503322100305576973977655182419280924599461097892908609949815988419056478622274882658706853140234111489558291230576562566207227673376647642320218227381866723968897677311540949215420262393634261707859828938880410439129487565909001601558212809150038513531157601038420664050265650208060024585845615150623934125962070772762351146333668892912954266602844728502376950386476253375523580961615337858364800605397804434139007259355187685095421889911688782991744266037402340521536829465807854528846144814846771665210277731455802707059809624239323857234763548771547671402100967726504408173273636093026612028628440259312941176512487969373573641590385326271982501081386710779538266125172751311933676651641715892638070225087717528452880120111559109990768481323870521234341160442487028112375274793355527035348809427537495590256234602548820590534318327976440776318069668637104575820541967619943673770183836049332992941029233487739432795710866476571709661375087800787677184878669591441740603000604149880427624460195963590434471490519177159609220092943681170554947107003554852871237631368503051954936137567534171309370958132175546893579673036274528873371708722896840934280025479943617875453544712038295097539932155247281086591944605682923778824918336748328026762261436274622020831497419121877174009130921360641277741455296479851569536903911300935058356156738437226556343324743232165866665965355858665327676150542692200823316741065442059303175020352061725282440131521562137941719291897323408707073080923031079988279364113662438022543474754767687959823529886833356951033825866799957136245807550210250330058999623706596652526421241036550377938813306584034123021668288795729344635829573045123962720513837511596948980582073333208647686317349603725717637141436992528803328565592881377460173235657396060752304016921922071051854529196756856974471426805270794910157083540535254315291705162890714817102213798236026267563151997858503733497062595930635862312990338983964656588155505265999594990508712677552044129775000551653139355202447089307477026262071637489269140319363681130939011975572031386073712072653253220218705906576011126389481891155035171541547197989052479439188709840059274217460252501773876123521202595413989416621050294862642490284519988731854341342219082638448058470484056678025627241109018291462512030645352025386608826777995678185372286108616635334341300657644972755689590408196157413231580491174823087004900459014918295386310220033984918966504228867067968162613774254440519767238732672353058829621173568045218743840548100530952816273114402196414793408809233725658682612527077062003473418320148279599629248166815168785780424601139266795429330394797325368552644557693017285011882750974058091845135987211256541325542514919989801750651330410083753913412719083095515683790113541704076785113832122477017381868702270234381261780570426385329447286982128907841695880343833030854655101314567167216198201297422258841662161798671070603725914423322749859363622148462759241416164664639508549613812143739873542138333704774706025289729255729841399989799931758462544527041229519221048910865893024429498640097509385809712874689943866086029999770745381822775062986419599895847988158438323936458297160955980202031618969590340011456793705679644739467563830977578584662701700225636322228217297992403719004785560643210913126986362199411133711068188430338238409213119668463611844060903584734671888011127447606345793239513344820281196194291067327051048663494659460614451555367129352638852860334463709261293495782120772291909435631879742960632319255663235843355649785687841662184762692734011376178468436738375803612759994778033816722831550678416702010951452069217388093941977883050317878011271122984172653997992657140484246086829221393087169892970617782696489628373160103051248823216141104899877923504632141466403359817558828048438798056258770447525139942493583990235379734443165379203385105694884267509331774524180928030833721292685670950468377348826745991111496538535014870546248648127327958645248275354955278047845787169004857855063788537035562446879501882253194749011242968043142587791649410516826706465341348192858550078208289761955899763847279357711679138990444882013773028312433394586113917213972599911081116545556388075435337409109663322986943826721970735202583170354515217103888121246414725287186557121739182349071634512256142426906150291754802464614773492437885854059394777161784589722337149536179738148842176679475037822938874519306942389976612530015042454097881693871774633793750097267752145570849102126492835376550937725884343210965763423427158514090230470240680474646474032166837787060724753642868331242893458831363204302641064037525878411815405358307479319340741610813719212784934681346539771199883175673256650837550937735833194311043514849837219031631328450289270692362663503632821576469181619937336271223009825888909309142267445034226695617456776841618235383982972651474002828616498062733803394353693459296963795480536612845446087872513089759312479615701256625680496549839393710129441836405153808703632318647238814744663868904633229071860043179274506576215057438076452687027822105193694360587776576875500179809013136462743709286200857709807259785183702315285793735796728296714549426091792316814182539995969980549198215818422489688044742966227376571173336218970795007814840210542252844678631602025798808508961516559946023036379554819159475904774121310722298390296381753983873633339187194728833088436327540583247619754377229537099851106637322274013632480414677411408221481759516578267374493772095638860616544160935423301828538713191687369442938289797893366033823569505073318642905423961783315135232325900520944635497741333125314269689628936788097559254441137962384279753995621540074537157618440650643218185679516231136133187525447770931371999753119350269357367076769137815451478178350853035945081356787953462845838559654383915003733971457919637709021016716927768660509707826105624580124345187026230302567017113022609752004145274591346670290065847073416726502603507863611508909393599932974082347454973308092895558117841341210715975709995877642991167506627650368103092299187025202601780459456318761562230507374387325122407530212072138578142683369950385446683542776425595854369336455768938344960309062053739361726864941172672254340469191302651823220820680032730471261818298870242620884544359037309357665401387273322760204245932784919829188325866883448564539329649353529073593931188640330443903811185774456685257647840904072742129895202505433167672626458314715359167426932113543285822785616222517040656262829813269280842775595747137098283057772339671749932978912658840583764052467641467087101802925654121153256921735884168768161471052652769104106445093318649168824996011893860248772871322103591284985699868830627929921822377305051048018104274141667748469551741520655266706685189579557508189110266520204941477319407659699423270886802801048880923208653597671628280494535323375598608700542142520599395697443399923844833405517884416429956763593832486730590340450373879712044920797065701545164745447193372510963496904182893750313184092787430356805603547156760215463018240482703015617687006749326942784152223890691310984566615016730719406987123390248524314258848978356961996515911902929874182699570625167809431822874466417075058435111393280894466678923067262767509600651899798522972858466820240252459015349175313863782610660427979552398941132390000605128225660648119958626318141452375678055633409847203971061127200185307737302058683641630967351504011605868093613201456169882898840230107367412148188078431552039360222907537895562589948068590516512837992943451398764842791454938146164057383372678050194965559492224929993086419680816714644965037346965186006052740444270107498107122902504104258963390142304081607337752685622109411666701014764372618002266054605217037804146588209109994045042846373413255866751974996336188232658519916059270075169902499385460470115113013793416560300089108369980354109865535386436518147823830972185950967744836922470396321504398728791645605442306357090385062747279326652289884991775269538933973499536814392742337531544510586277945672267429743401766158156331108524954073082708945008999408890370705850978593688874551954557726947599895436466951477841214633331942062726492817481145815768243107018233458198904300769409518031047234614643566922854558889928228013614495244017893951234711371376493788879250300121115228737715828939976756306697641503599197247669280583876845226151731616927632081221804905101838937867561209570631590874955955380697046601469309810389222826036593107509138519427642324990353754801751077404743810650462068876247445873527032232378130214659907349485399203161821066610607683657383663531738643375052238216716074701506307741661694197799298381588646040638388619359444837800180448767189267235027005514676050977061624041220683454305522085886427990807049088707207261458286918886995886082053560942353096613914314143333979340190318328366182050558196048876770905576651760423831735158179272785697137096521338590484242253612700821989785271541810120974687706814053086940022545949867869818063843189159032721091260175650263211921805458935480148000942703943818415411056891129817768977431915356129582016971135883100695009472076187590222299428159825267415161415716771245566266850129936837890813778260443210294467817397658319009521614635258020179119882128058088527148144560673258461031955193537315710587142144804641933779429247525063551734631207323723306858794855235646678041113813986688941116449396557385990072655670141607977472036671703990598014124193045757651685865734581691638653518617679821988898837125076702103858155620641192738781921356203320962557714000107350825887245626092671744639541483328873623823540664444426836523249022653082439129718772696351205750142116036829243393554409903694554589153263587012034373539069318970008206537483302719852068473401965961566112836311367094868407108203037624936725567411416864057060678378266290403861040197122345172329247155684406022032979027635435707383321209563972893236288818076292033895214475661504552870507462856540677692633988745987713200217356115027160938053880677591444081939397029815484402462579351120229444414706258965382334844207681239616058878399768611825216763470733036804211372512872854496887730234146601565277737613553484666957088511873700219755047265233420722777074290177760434046911685968596416068588201809781924982437888602107979488109808905779397854465090659762222813135402195546080601142384883699855567956673693818561141533999841330806539548988924682166473377842685248378196492471029893885758215026513289523469458329745768175607012392139803159368871375514321595784241124487734150964533225503907183535682609299690617407301335365823462970319214370688448782291528344558502352138150977540780104204434955516835821266959511423978958406988348825758498378805635474882741488824008360736307872809800428400916922591311200949716941008230804285088314671171540870044489652661575695772342065383042484604011441783971140559483485245852369801704812747332556483858919769134659942356007938937992789966168557791836450250587683078575944024136507113674445890013557133350500207380747374979551841228730363629215144109013637032204437067057976083457005394304923927700059530326664939148273651912201387522797861584442733197674070818707830833448310433332500087612099061679127705521955764400352997618000878033694665945253001708869044156999489649758455161298896494294425944163201476055225626947498965748899650626360636054022830207020974370917023810942851089352634468455998431641697503585262398926787918570514755852967507609235737768342291029691962589705142286029585201741145666101654194447440218452886075864539369081149102240456622713252667528530359544616333832520666238567813965509606277834091490180351642882782488423349995246650874434371107712659262541473241953823252860589006881454827670777721654681938299437161181535496350274156956349835098932564073558302930367812951258410826575984630028481381441345650382149743641480650181291478564185166883035347902138660012284221551453166002966494404411605057136862918235083515104277314211781380311527540245355038464284786953863656170675696629389624106079846009894019806005183455642494500182011898049145936229706253670381505125509318243606315119115363120155801073338593424510767854955915904672784619122772297294141151889424238174058090963086256674934578699186441708817337918899512109787502851030397719618609539772086541396303836021642391640632223611173793858302051029528104610089032478743642152146027662991947003034851579107723146931030234268285727473133391102190500091436518251227461273426592709323082600467654877867258500887231787801031302233641429808191642144362747450149700012252170647785128162387357895979632982697396599961971690989989430358672800880450210736144597474907457727839281525316986985837596524186171867790592793827859262222584232317370834192170375575697202965195137134287732644888964405037185646838492779801139304124779153488829666980825746868483955128030065992806078376228592542415578107526786304547068106957239151602908008519187336526471216461002096162842361212390568036992945364285760338395581014544467118570938113724418659142462908445871641032843222986616852890054751410955644342185049424697736556825889253597483074210215857961885862847764795804117503814356676528522511462496647102929587932590198380901564828684724237131035135396129065028885076081845637189092173517934516280324990821661835792559412496244887170716331972614679181631975054180323823880275543443182687065937716508873731350066025206563566334238084734431362870985490458578110560321224759470578042143724022875172907783941439139034346442632174309108949926444303359938643201314663888992717092478323420060623716831517677670004575550150116818334284198376950570195054681484523656284173825270229058883928908971727332933932826631196890777897625708513552020251257849231401489440907407934582568998918779192208793226153471927956045443944738512467562903511008218298825960779186613060177528265306350120959688310708975078119341183885365877474111616211925658077880129887909262894859354906993436463440456721651629278232721706259230487495436185332720231567439360080498453623526795298393847705907462748302640921201692608776506584114895101834525414351126946101608367509227453145580310845639275734244043287947624977988506998881894252644814181892155358069785279507370598863356429056154856600878852652083234729545473480172767743433609841208843868755155121895318522196563224581826708807322791147277250994204555891409181179037511100883528392049935859551813891985830197073011715472106859663260439951272294613317071280424747829932821690874826358979532305429451064929562631538662620061832484340327910818888972316335391792458934004106355249389125504096714753413787970696338603714901297320311866453273582937843497105219891122868062987811664185761207568071583560228204865699184313911554035939340720361109915995315440907416367700773778543447807579710159292905126595591456625224854460764146867270674104682445968177365209668367951891377846733217388013412594025117469149992103523645947698544628247164512921846050476422133775336817729871294890544235398706455166744809693687973401341119099666843605889794068195640982397498789841975889204749248263952652338793537503767806344299455227399032251349246815846989746550879279227153247449986526023145566768807103973903138656483294573816960110213317987313129359658538821158332722056577593122405047930399266206230664881026630566061827866545584542317669318167741000290968928742712185884844174115275954720389709210747862267583573287692388051630862528689158009281706939646333402181871581730842482768515056007331032943703803406653237332528465200606137526018625678203602430585943598188021438436227251922597178238542486579948446404974275714926628334236389872758079457378685164977924871261145428499803105053170734850011768393045828284325083346879146734625021452290968923519463284114875699426955531830694704290629160350910192875962866522199016666242661113120827641003914226454351124639721445239271402253704476085291521986971638864096626787375342620467623350201876694355405490865631976857215183473123902091729710585627067281890970522058944490620764534654757790087906076074928903145193781450000823842363752140286705351179661227215442644165500778818020074123896087009533149287219729622339780274146192922375455683589828600721926954908883240286132791046925243268690391545951049296506554514080874001549113325711084097877079824496402026681381590073893062208675490138667582579840516574496444301691665839218771848974895724717923631978398661501163613461777904160846214535651996510636511853066782443284070381831038142976430090039139623572904588078854290751896642545290032005517605631014650710123497638457328292831421642270977001992369080702683868242587197459818054648620895432589826603166069079377072154291584435440243394276764236879083521817694176105407140574507089400619279030576451577723337170110989170883420564485239662827701922820026624558518977174322630183340844454998117812879751789946787760744573941661944176634580006389363332090667499338706013840697445925470327912449871194812172495435812052817129839963487377427357157770253565421744260024729750266213679838739606367657289758135046738096141268557626019431134901762603412919055635395876149351660331920231936429904662443636653956450820507102726038396598828216715186594361356233073756391373571066678934053456098174552085990173180427966553992536242391493652530229299944523469777562154862783234167036180442748920524463772921108092207064256383197363877374530823514756899033803813264131039198207665236395527089658123262298233226113561755345384779812965670230498671748373616917569171097221241427193702035294672457104939077710300856083111510931145215595502558926538942798841488621267691136083530003721402319948731615187258210467599494041589513933379460296906437722126591415407566965604761392626890397591620457084024618416676645220328433109477424343602498879191721229400027914152179476468995663819771841865422252169794433898044146339406564135974535478254199548987499280728170310129585472770241994486582282315391481109586387979060457647663985317727760812272137761406982365466836907848647503128220369350333420475210094049617518859268443327768600352003700780581966285266946147143354154232513569311152937257728930308192260548806926476155847003623586332551840938747341178676015540608640896249848615923914938342140926259119135386718193963119703237175578283434888253797239767287529921982946919401509775817488971457388833462239174216140138025407907808366497339572261914251421195644507646430453776794416805813247203447739930821478511962578919878162489311805543287058940903073237062575407488407462818334731338277699305477164457409695399600378932355360316549875403566477129413793295487304093756192097303410926133825589029758715075564639954859336709433031035925065917500622102351785597663924283354690675419169939494547536243513002708030159746575043519389706469500606347582141660446394845017678302055322150413500925482230397953943053489530997140146652338019824504593822084569394416779795728064145054681791957215025317810144721684388244125764607408750080193807320471041320554985910421656289706706840459215523215681997664514223806100290593091782373392928438895704016555973717619955943488797896911882079056634902169033730043755909932422689741813873540978260238703431145822057785100382854954358834034376943407334876242223453779516967737065199439713381787151151600764443502934726177091984405429173411790314807154769539491967000923393405807739364443647574479499472835504074350596672103821825131337764784242881378033108132911902878714833103770919713335156484712433334374608417348749042713743575689963034022456560936653897664105460222130588242623931554092827365832504659090903246939531067152149403181287249500650074267740621258690051034580456961150348669144042973978137220696064940467881270267033201851580910724089244685672046320276444356343549325814675055082968822108279889055953855831742984210631480917367416283641238317024774396084380262797688152242374297136326023142267438347882487133988710836621043407122682778576917732532181455000938012291722457132116253923901518901699057188362279893533618491221527920533660795451794519342336908260384490542219950599475036562128541742487855243250325006172796280052128677913595932679668156781019836216901167683733212195691995456874966305708928948525572429923085156487820484945462746983689428815648258886452877335038086559816652044649065202498025228126426271773168183406010630272594258819374522092719735825494299149886360764166853509169851594715926147625433860193868482716518324961600330148743630870239858663837770296508662005649947522114158268869060284668036035390819627738544467871437719711691581278175343887332510997952755528764392305007285074152559097361295316888479508347182246462395323534049136146518195860860243203756541545493158305553613324968801963508248090365626014191685809638903287057024467326337180680000433060549476783968355131643993131089811181878814184180834532247082655348150149231604219657532419813975587919224918389330888910456512234603648755951942122577867627598242361241171411540373196002708745853182749237875297447330785352050453904341481128693349668530969063643355434202727867778112256334674311346650980660842110093773889173022887296063632453820022492817721680027673436346953739041580731957177780472249063473990507799246267810377080790155206924591365111649720619474945659043146777640068576372735460186170265100856200395783646133757489450594222940031453653406985214743680394584353725213826695185407189964806135922068688738356932308512817535909913852838969335216069320143713880860866456943610023221616372981679373154406919515465031230161323201330147043018700311480830331212026340851306232870981890261091170856511657345816766135010793055302235431264262251112268369597623502730067374400636906132838738673784292835611720707614849115121769227689740082589497423217867267703868742709856492031943184955601081568467150464610510960094844624322335733984470998232080739576972515912298872353906022092740648495370490505098697875257409972577345292735308131805605536206989206413260318761599689682063345328711886514856203284562618415063006640544152450107613655943605918808002950725389859781621719227845468408305966658217740153828448702680505818999915058828704030450269121838096210502111917823187007285079501604270967645764861463500721775788746692614392708313018155654283001849512927856802635354362450253293201710486476317722926503261730626947209034379371028599122662551981903162413563032392288930341356482176984380605610899549863017266567153616361709305962741041973861004333832504929230699594054011528598788124881415982209853607484444267919531297201851096184963312350551187566246929300090908485646903852274298396266575862219422673867109795230522970750033698238956497885314646664784993044260037379741321101675112081918776081487646692594251027440709156736747745890068813672834733934518271234162233296128458752222790947689685664688226548427674731471841244179000218730968491281458061737039545219220811028903838870142622800885245749725491008497385323111951518343211774700965093023441433837325693183251121691086482716969234057967545072876336208052597497440097530982049680243422399456612899122894997031031745115027799640054884448420108244991484448001861913982354018129597482851672310376499123542609498375522236059785204820877351237292868719090454100214569035038761362393761283790422385578797673738309247123006484429033831420526830655188276225632532377301296641405713344651792145828572285811469066267678016574445656552899692431150565924762410209446042507988722234805462960620559061572427825776726221959699234608740816912103449609600602273234068312025862210945688682240275586244754866673712745374298162817724786219301438042093116584148028075187666243299484150340007482141754808046883652058222991167705747196979449902112666874888118806745263416706066827164178393928720132935817590249736279294610544502178919523886449612444072535677574045688491016146782724132124561935124946708982774876865503194441134398470794337487331063713771173138644537417309765671233009053964630109269313869869525006514105500311194019406112913353319182272088467165016465745231727302194048645353343204426395517507420606063084415789997562032367719569377892143074383271674234206596803313667033434816346650118970141599152552419071361497659682601474160448226333697023224457749378551471262287115060371261134970197453161052673627758179255797648805825250259227422615558817124527755203692352745665802133427525281321071231205373483742669248623312769040005671310858357796681967213465399767851286961444561071229079597078404103439825475352295839784607332362101593691897578213925190534777688184059516053167922516123296691796833274968682969551078880384095029522794002317557517704335973589738846775169242741156116807386890173678271947968255024928017760688597939146181603184888645149018057287765299981157434860871452756219425846919854319566355280911715661945228948120357340697349387331990079500462241141240028862740214754872272176779582097009046771128486313573484513585202870388682327347157061801413112860147758195550626425165764353214092439225132523780128692229614888200674950724683648316524856512300540769793738675549337465534717664903900960637866356564269787065155884819689163164662487569821120849696777730430939636803457466258156441244086653479167447436326384707818021339126868337784748556344473627356786420383566770546107663574510634873172670823409752103604214613730945329431534673350095644310211129862176292265638425013732249215062552276037768016933112824613633507920424424366777538077556256096303612784728387663924373203252241423938298866392027538985464902433578440311004997980706551321675750665235808743425582027670428222987753633170174836376081776284676820622854640929929140491567621407500242004194689226885642443403446707911851979446261534842947154680806227029447240631217832195325916193079678699744476531679492874471341179967727937003799615237824699039018945486970467633852733426693142467597039920049848437378005345548132784672861195196774597769854029109279893722443767973767305645985162506792779672882156108404390542360240193284397775975316124117392630199408702694869985000163159269153053318676503065643337314374838437031890748490561824707359036686207833697473612611222953674753602823967563813784085362225572386321319473311529587634015342152779322223884171142811128100523652411703388591463381308344347702574677521603142897179198471197973342732484537848131702875796240874457795260674507988142985040965728549523559913658019209991660952638295110976315578212208054674613168676299251347076016043415948155454375365298927856331874656105733399389572877054798680843041897556069805004932960875669227716999018399556018370504317548466620414301138076453473809473709710184570662122550028396078462883762879913756351907557151209884325480680478508305143417530453223449653791553706778382925016604291922066311956267498602799932299672147984465593236572979134088752084090958156932256358463744123322371304080515061308084965618057393646479354598457524135470695065475677984327060178266443273933598956099933599770265662019065086130077872743692315008377693216881775018084871534660975889966052680043969784114019700912060081565141873343321368286337555276143035540175439589250685148719417898011602937481803598947851581066842880861047311379387295731294491302115128318129939941642425793060967171674912966068938219196194240344093683414437218634917204412074611161998112807927604233697504724763919302127562501624356449560434449497956812609315755791390170667813900565275728235182546001248874066006619189897336013528408595259812846277942136472669952185051420144284791912550424763314856503831708639962882001561025735488383115682636549438187604511504877972796173098104793135926915187869498448219198705485933115581514669035459607480950823212550373200847731998894685213803759530304275164528660228284892292099462692209664146891338527484160504723400652501442937371114740437613763464578768517678999938974831255811455005467901391374003663170975123419239063636916095143747153495259745349623915884016226471297194929856466951684579486284667794224553428479869802256899426536909150401627989143954110178051721897957001463216536988889266825319511374961594497547336849365866750657980446535101546243952153439078795014950498934754726733115640794807456629943466089357200952231777675208885947332395071173618117006124067701064148118078967752611495857203278975760770239245563396261742254188685711917977215155824599999983848342660570360219485796029778436040606169864212745379301129384280802306144264713481494984996598694814235654518174362294439843186990201431053592256728982366569881665406483555670566667927780141123875315845549359604150866019674742505185556378161287982994866232437573702411652336216927319818789524574084593717703668517222922926725546518621861017198735830687438601955620663544327224203376983751420596627589576294077254268470219539269770628155807480755999865720719338723718787757438919481025157217492760860572992128251437397657384691343924032179106303603847101967994319298329293259536606110370335025705505057451264017590969251200083208623998202359007821280039637729695236034180118698842435032947506453643513192079517815598082456648344995148909442074368772196767527601243370696806962134394017150416139417506245227398405936872178221315390059066898743818725676006714083591006677418731873892959454622844549900021340795055714361048436320173028574449798356094395167174607384103738412686619516034424930071345718372619071662523103540980181151105075934477907278993663027805374889863516588794779000186170546594722453311952125428966921440629613815375584739937732774647755483149893843045765856096615874926644951218197894415916995595541689049268833294804021227388910544111374238985654876348064611518947214881791715776889402584286641277728503613408037370863944817419468311558219623192128152064716493163038589256954868454980408465995000618741700735391803650331386599375899610794709388834694310144681556919350255690271280468272458891759629777133898552345470296915037933223771281255974800255995537395759889750413804979362652114659517683353681892146935332460824974596188422054581555894834393352696839238801675629935412977603355504349774929839329606993909080380995957004603040775712481284367023666957173497113258668486861200177327317598466968092249039711764058876995937997851362417754231457608053003795573554197857938838388013859172835821341206280913557643964000013213647523554378821335674018423190762189239082216981810673437944539182161472452799880620627384262255187294846817504819714681986143848669892211075816224041391714180147373445870006025948405178290216955400984727891065245422387326214747004565092261109623431245509745262204211479842826264365931641428427998108235649625418841998261257866528792224706274366733262536326447759028360688374143486602142660949110423864101548203340700617271831531248080009947362407758959022412382680870839675581513199030746426128994720967288492833010873146420916953979662981343578994058531446255061270594110781613864251922899043991110176878464335903600803917953689688943906947249966568968098280758498360910737882592468302329668021424616032139864503363529067281915069484261522117177722500180326719702294896952239972891650758985082138139771998367065676706786813659592910696489528086444186258303232558785604565735751787937437410921444531961402531038631271300537891906593061315379072975958030282981390165957199713935438361305572421910304982396593498569327705440356512290960879255933212421298017965114825925228859582777396428218254031938580156003943519934598619081589935418852027023070178893450423454433930253055830742227451005496089799960194356218585389922356773710290689658980211727062390066363855296246174703170152993758478410583150711967259412981106521880932388934303980900200757069569429964450021818552250432767687937743841001648269034227017008457685229004589046741213427343617640236529039942438626209293922423347169816609282803861836496569230846601923198954236238826041783827647243304684972588871084590930312552602658407167282042780298841300412213725553070530664845055120397159726624252232679241654815101260708029414065510065804539912135831577522266442884463308199441275324932112166845994061458443103016749226433290227327093072660191298580240346055081971343555783553349584563662197787795577670440475898621247215033903942134887874273174059303226512322214252525924935210238983569386787138016271368931282601157995562274045248388662986462928061013650198847018381374470928025800480026545037147706867253868254319439809389298574461452183222479675011162303582490412195287737175576138814451628850788838357809115531711519895178161544842469604160242012270789130634287874102379724495760047043328527975495115534451154583483166190391354472233365320914937771565871119196384573458230544315670827042577103534494206685260595857966619550828056316413188210447356924931512401067623311220857057324253121544311244394147317952556711577161681337886654053980271705700315244458108630261732983182448740506480213734343840890383613751220766428005888247481235459473686440447563448666643101485053528350788043120893071482820676128279199753251989469212274100148446061910422535902655530807622115518619920025218817859033869596240484738709735219720440466278311359362484883382779897369696214485242160631064811567548615213093986403345891864982932403686473918924439716671114651316375868526032520094276284785675506452674419346326845702424321441469885890630967507216321656021761311344727470770333175887791620471271128180417697267245980449680197315709676208008119334074277515067196893750960916728802669394196604744808575109627313900128865410027685185707619674880077193259781700460073238460975131439947765309466239339338541284324344675767657187846744753429201737907995306591140297276117622562421276244464825830251724509007268031345575529164058190249581974276298884956979259730753271172330503733346071425682898855346850996703100211511177068921316952207175563688534427547407709025189458561867868217606336332620725232376678706194773882340883964195226193058603583722408651088550602882465864181420399752555256149834947068737515308687571683504388040079064293009391384664739627965498548159913133681423346357237893118900055123425612999141508175093571406600486357220758888110244937196469891005904544412539983199724328313131605306951489539957874781054180663057395083087794667040750469145948628798136578584899338810650785364669461387244652743944754241966664395233698297463793454655651308658652593105431480745892414474002534596782789393339314907683667397884825568946556515346255218987594259747457978904261684738270181100534540717435502693486154832591141658808670339329784631120958353397218138727824859426633667565888414946358701934373124211722065059930922473222003808954181526877118694405297022252673815769223856561224482668529388231427973768814204822197295418942497841860338880465382618241003317113661888461922469189957540100367939501899228917838202143890528147474160060842758409070370857927297648719180941049429995703875429159013685975183367085697732083110237159153322672820951682221174601612382954002517177689960176010659560890468993988043299363536833899106475019781958391202233407172684165162421584028422689497385111722429272753746207202870232483921924247200190535287853080848385992859789769220974645896963349700185585617127956118777266514720330335998150580907379992051810102692773447802867343727060353835525077531703033094583513767046121192056209550539227596679293944588455801001489982000601105924303217507537137427616680467942602872903037419745392358898086004190646079655138363747654632003495032371232981677352884481280626275086256009268419537317065307743973191313585163790366911237772187351133924820415556498884791540202237721916709725522805556480336539386237464160971239386712149157024948839359087001230105855294838807116788405251697145315774597471986523481608808837656431433986794156648300387587399668236600148435719416446528566874325332927964793025311728285667333909716745906512838253655277192819012542771939781157186816470733663234752342683315119426430803701529142213013376481324316227169065138179321517313785526702404550374464527063332091223643425861332769569129011420526763165829629995796304022485702429531704622327901195856977983159775598982470040468354588164510863273749907347572144635594398735418902847525276647246578147988619906546324800208296520936267132738422543582523044072682580234103206004168446282200152847472791123398597395410589000787198144891093930169676867342254284443787935331248532498792244377413222464001266252680657893180287363165625552761620271610541209222813510814409491574409629100711260775015191220301905238149773656768971712413781642737950319515684774915425448375215143349018126029524248527301927835458001282153816054940791445921258364402977508652454931487209735366914082664403337893626338018823940733944954049385086308685517597519904157933406061623247861004839723705929757592874240796152779306472954490983218756411388431637073332472089238447642410527861498191778359066471698563812894794798323952872366097377772328092112816197848570795308884554165251694740812007507005540572703532438596353172449695687473789616959763125059907756751453318184282679662198307261006074241175056818963125664081478290561452420085168402401063527184572769801474432602458194961343155920552425654047196002133635282660510269926220510356606959817104327929846942525028170201564557920424807751338288491021651973469027566866662036053244121182256083950470254189092537746626320478819443125692818250356352168169508429998427816061663890912295815401588443477652439507745296762438642266999152562872910500882611658718741073325088550297913399512283043158895469457677894800409141342083272136081778586111941505716737083562659636749050256762963777436806712601103909199773106154773884394731720546833224071519413474759739586908244907997192610263449787074252164831366474023986256215871826725293464847535933668881992566195062795146322343671217523102843031932162055043201282180462498870019338666041378118600578108282261102065084704527766007950000528239577216884852591426789895821859780264620777058519469161808930428790634450425640158045539439232317019369082288533523288676488496961713464768736636790115370680882510879203810977080789972638049367413133249513874132291458375612460206926846169857757163786496098100358319941361770442771945236290681038963171586787196706324786677408333755417366447491467956559097523727525316955556599894627132172161554215221680472327477186310232546981891892889639257934378178444194865585900950425401807121912302371829341089943032858403569668204976296337818194894731659019841429128915807345401113960222008411729532143537871249168229206944546424482430172198025167687009238451944872551873310107320477047115458233291880497009285549606278349479745565850006076422506639572282468325877352639912219107693277374259834689609067328662605369662533692204704931469859735423129337782311644812514367043289095044425086619620137655353732598506353114739598431317545328095593823475357834827107178208580606039943890099381406124839711851708393568202633403096263738544334272159428626190746474881162415718552818368115314344209500242721190085982648096412912485680085608901840835383032311927380755318438892838701362011329083918848772952331351376656142249451262456367067753340966266036504860396633971518260804963093981628711183223148291119528211280281056266490912882439361693065913104641781669343175719403475235971089934427019851473354665041221900617213298239826579648096793384499226506459183735773867823752250356051370128558290088654980950181937934192401746765470930985595314401407092542294869449926246073237652623955205974774746579502730525084054045699572082441133764526261776796370685875118409271928980291010023993103057666980089628605802417786574067366362311827099637206781850246155131134424630083648142879026208968202245974228992418151040643158949461205028246622932922749882725105623786049055888384233934337347000288540479756206671107893673267048358948982405945606217284895450868121550072630515085640343190916198625586652571020983546608167677115088246772600751717698845372578451272038424008506553712273459745761708113048515326827767395415585260554027180273787730939934233448924552441887713409988938074309989338021155760878782999416783007554335543207434100934337590073806191573758046485907411316945255196297516821072631813995123792923459694562543496224320832323478317815865856129134310647093325478726434298615556461718366655098508284501359230295492351428289647084869440463899412532972936158342424429293248007035594623891906451197955882616250919656930925481987585361553454133747422277291689149828090685544195678916153975212614540241426510747525771953607361870584523956954178342809224530832771916784650522281847150894158032349342083325307342055109317512488355130233143231646060691328894787039628647875506699511755067100254421709424623199009416978031589713987774281564190691565488049652430897935853866958934184990006649574305184854138665899593907592386653714944421930205699242386384430726216863141826584917398312298463909193684617637715897745625367932587049574522878843003690842222685182133843420140377167972174757762245340607206304690518251859309392843021409481647980976105017122027555241288325073864800183908073838135463218390044243445153414107739863194499545288677497111669378969730618578991017678729008854559773367711956512562330910292050881143433930929105638249160714119364985487603619673279141774548359046404984231123009646654524656331230684493959932685609045964251715952634659114487949386211018931750327102153810248443020461620236342320175288750926923337286013308469980842588411816129542280186360570937105741834165677343828129258379144201658992316861614370805535965534082234766345571621109733145437174533917579451028058663617197601729013279398709957473551947673541645118416431341491298498800689948298730842686727629542356455423054485156390590072803583811753076931686475934971957835158432085845480591317311212115943239436570597902339645541602855623708085394927389680523520358710640583800401534481971339709776211229903404204727444677250845107639012255127242668656544784360456094185674069155009076902553959899954316133312433530189788618013047758380623446701806827907818042937928364510642490259590850503337598871113661086028457863715105291939349954517818729066971228553788079875069690832524941637356573627154524511440348993332174625692764547036716329284390677572027335949318093262893947383838760206621727968829100889746744420866308410498689522640019898710493952498479146666031201422190279147418767668468222878465483748787494564417158168068543020303519374896584050975884528330008730209834944526194950622718451866517075110194144354746446945429000128175375046583309152419521602619755859530149967552208480037813372405568242575840480448631006298810409853938965226848255601987514589229670214399638950356534643115329811032191219859702725899897377065958809118932378397649294105969706938390816576283276030546178767583434250574286279017058074684848156883110748236125145880190263760494457414439214076963946516676039054699106159539834065485455655249219282732717188843219736694324216134563852527642259407902016405850060088031543126185692824440449500110178694247644544136786142114888074221730316453645741948242324914059390476478120973524728250569143481684894123915733229162685888326180266670378369566806669977413067614337857529805904012623989820587115485475019112054174765634785534906261393892326748627159078748796004794933368835335413811143855427641362642662487157688306305160742730685870676832052459896154787101297172257325213427364722603580026063754258297608906823509744413870741094594820531684397758173849721188240518357616010654107342376321669838530586095992222861966985313956147965124531239572514026377576892748170270349988945868887881135694048103507504725140367102333189036227959639693450169888240427364913608875417726825651012985873984922577342983287038619358407639978658979039475530573163797130188141611929070860596507646525063458095727608572987668776360911906855073662671517685460916752777526269905319291872512736608384216258774391585947961600704032572907258316512826160164082990054519528025607294437783797873870591448283945244468436202586856917509055079720772640407148271863256444514588559515084991240157295781363489134248536295800447967407405784173667785202841466752519346179717916609085549218496633790360113289175494915152585923841008015395729765221809415565456053867523314825959810025833314279593041699759023754620298722984074226094252856584367025258255890752092159958796084013564290044912461701929220059202458641631349692510067121373154311377255275685973151432487428275563773650540790001437143478949548570761854938247672119306689558006478953813460298343014578174532653551536215232861917280774050333852135731949447490729188881463193631760655797397174520467550902501372695599281330205859209948927671351982016800544797535565704386593493300809236898025206783909225549547462854896722383735110203096471007682770027916332916879373926233993145428656888511937407922481551845626816176893041472845428155489071428628456447788647569152794834593656200297088601564562029107002135201839363195378301766498541774656702725349719318211181942628306504174207069992047714821167061021427023639165438088263444254954066017920504857250473554137245347192787708753313719001548560259139213381531623208346226316340590779142782065111388523459225978818477495826370519599738103297332447026333842490294732267040237571274885480435922356595447821986034338979213053096113527731367802251147627250855589236790127861592422102290726137576594740921412578719091832080201660270650988439330173381756430845185545454162997075546288488322772894442364696294596979485608445428232629376298507385260401165541964995076206607687561529926565131525690809023458864630923665921570753161337423492725407052154591287955669369862150978307482925080491283169482481952229605063911708386681200452269595660906102487617247089004416365079607084692810283655943832989623183783644242954481364900307755569546582830064557832777126388253860031975380641526502055159027983091571114828327789599120395545456158485002458529200787003494095342210219950929765432702322928727042793624855316481289703919143447478197761816337816913145117902607656133639985684970800985532877280576842524298339437535509340008716287034445244522331770527186642818122054350234805436460593670848650601795339773872849657849512061763960213311430622860013133480066421220454842018377396492172528013780264490803091766753173104638707632670879308334933258717860205453430957781806783399682917665830928779256697670121399759165439989822227678049784775865157734197576849816146681130549317539379025413158324433191932741648824734956366019377983770910084331960678554309683111658869614529220399382675870927873147438492059385970140278350303210698208724892943789888797388054778962850530499759385752261172072125556334520768401868726427212975988839810985508567461956292769445764493580199770863412362921635397895044003058325009444543623742967449432375797741087792807255425439202249125810235395943288996227512992749736533119051573364418537253404729116447017915156119805598151599110105260238930358440696639057522180397053646101304328500367610768386609831993925351139608436703027985333743513566447692008566405733590904560990831532407329032867280664325703889987505048287823927823203913720722517943972903042642354713023131008818512993850327977824724223789575993020871003648053379243426438588853001595693017019539502905915587978793794922776820184284009070940964336796110898490039666196749773555979483736591395746521470729196986731498738891561753799003720246944333595995690856105199881357423940222690596328213665764682556688265494321117592535166243375438974247238843391190556732665303949072436956043028876039358610900055422991308079053287967038988899611006172459678254215414974585655254509037994789617923817391549553609130453891668625784997118207401145047670894317091740772240733700424856317056035608445017560303913761696727662794329715093045177108421759270623912786781436888161458367665240410283053592911770784874959301221852431604531786992625922055933771157452879103942739777245186371859585961898704883218811251534212983042434288683523322732580186249849692969324245180822067497012474549436793997306049776092261561932122424326790801584883266823697032828793558750550590635788248034378289402734923536110461756611650279324903731099589197768006351738395894613787549484174303949379152395777814697701891324496531153867709230695089640808600022839482264926633960436096736073009566571601415808062421989451863997176085110422705922880750809934667102540988615293654452365552627370081718972512543544281774062329622359493590521115134492339629097572840598510738742797087284660207475364915371639962026737039230067263744149990764083668263638804600289487242287777304270682324015126645885775025361269203703508972462688499999968558746990948166412644556987732182908056979189651872247247349205675425790949864077089264746564099386954181737174488750900700594901004150582335424402992135026892996671622590204035009357133893323669856770300624356812198760760609940690492139603196884968957395759199098621908401612898940261275342279187339704638079473224656050709090289620141639453488226528655993937368811813419923044798699503495135327707529848946671836017872354386511235454393579446531181771710225158742159184917261426567257129324338581061753477112787992938743573662387069908272559561600876870149311605643743726220045167922087918643834278426853528370005971275852767474957099367504862559158103487947240057133230596881098166584415176669564060672997969222902422748245302912245379405517545563266254757068636794918871311129714242770927498364345976522726014726626485996479366910740988694715027766448634142727387942212139186187553577604348836924099495601125470750667722847915705858725048572480854328094874316938506961832714775299223958048747984052506848386547284042803165469506232399621772271609900408248080452966552892521786636181294318639740239782410374071079026215898080127574975134843972328992556339208068203567991234230532146973635811259406340569996219214877871997157998240227210622869557270850664231752224680297669682783464997118230877781698804816872449711039760276917375295425822871975790193177318001276940040979721107478871474797220025528281914202421253641645272770382603349198298151489659743219915044218258237345944049068044642403543428988017654007126643568282270987810603822001865796301978715557553281070102578685731830545911988422438261969925480490514469815596544670447624429756533036674351142242199094133022287608087802914110954481790172879802476214943139798030599665816792951904038008117983235151700786043539205708319460314755710300556575703554014392866956000010154665858259308512787557870179258965595383902972222510879601532747819071144514769648404172592173791930666377889146910930325252587530311330721072508924853556341453646334763539986671021735528775000049145752099200275552235263293518219549362173640041612340046501393749210797042610239511565459864271895012486876915499562761605250002155429564113696652135955245602295606710006913956211477043586529937168265542390888750715517223080262121573440465096336049931317311206993651691310856756080158511610824369800928640161290973602472586652278035141798499271363611847993335419899034663255069928699702031736519894243873733290055832055743222535389361539939965847769094865687968534718118356397224602444568184517720054301555937561914670297662523909301168444742925544219445606066811663082211463084757926956892477853707305583199880565939988661019844568446028068478045843666798250669397942347012407618143773601005687329424356077259966882646211018540900419682149458080229918924433147711383714825602567491672594175915078222279222953962493498691248666418213578343555551380518735325049973201572624567662587355063081832039638036505099576012759131801495086668017566234616650104857710752966602854173905499991273881798908351322320875419665965816244898695550448284373791576165155619297805466470305769106070514317298506806715499885840271842911614704626693812703100292529045506500244692068867350664158981042364450471175234153599104315622583066160183914335730249365667723521003986212323855034991198420689873593586994402913702366279797427238960423744081991861013134304485443924661618766241536953730352946411005019745493663612094116339649436541072866069654812587412456576604555973866906827194959605263918614919591794540382868583026572943348353365134864072833694578441616213082618327264984218056896865493146112028262373248542699889791511556262717540373491759961766435093249649419907931059362117029165342225752079344070058151169523702598200371771467417956871252903868693837271628613903975049497028779126516815200218884268152285706415805330359214697585824536215291985071783553904235906837961100085204649866584132412546568343565089932314540188165124831268784954415634712267528655041508474502685306153394307272555726335037537050020683019198116493300841994440858258232170168964805805099169523771958930896586071436668898897994425923395414877784509863095855847610324717818640847540774845284747144973130615279870627333541398761301476996368785084283986572847256001593341192150844869816024363986805426805630278886549999441776820959714045165149259985276280940774115317436605680765536369312629842796709017739469814115397994998143650888427890229019379887275502593800124293703744001121830103311654788864404467475349526758425951175554622554977921021501917393654198925815510945442178737613207193031225387204415540518894056740838211776865458100776504303654776479918647617512213904528667670922727856958206899735290443959854051038716360222717264738771511160826882845691325396637979681830421656827058203245205947913649592571873963793305879636060777018291476076021815285703252566780469652493449756482955596566130044127366810435592817816365319322651991261746351751235942317136018807884767921623479548653635915639578475137297830692915207867845414131392653752665274441690982948444542217926908068978244086353493582916192784338640880196104733838651658241638718979039815838055521117304836490833123685463248091723274275814826984584107380791882442183471564160422820609506429399223839557309266760152541135570808495693988699484928027013103314882436763880863130142242160242994607937801992312483249859061220484317225916390463425869057679243264207498163823534804894602669648925051859894330420206801254266944483728578408781527235077914557438456381860775477688411514463654624597184346567404585354503619233249800575340298279570165241946827365670653009993642990682502707081662704400287453833037616646079294540460850859965585579792392082491291841304384281344443096123359662415458985463345432221490350535583191323452036979842738295060026258988044561020037581129771221672140470412108017521247444940273777971214873173973008536658567277661194836679934517515667528771123670436869228356987874886097393516727581768120241970772695827221085144314860909164443886024216144229111381957752963214178493364523905481795787827947422162300656838849049640292846993908735558654705511891344459854317739949291078955342246684117890479291168618873254227524203266361288695769698164881194707100301551236586991484804005480357624053930214943188350058731685055782527268556436921601852867356240768012315728034047588997758096508985464345180157268033707517025163606636700728121432754843179455762375267868543044388130524416981854708148558105102757047221968428292801194730063927756464826960999674032470541007309624386756043499195749975263658433863803757990998765362311902564280456143416056189288132629430355701417186793229669053933672529037241514948372177096415070160244498399436744710132563357108124660662962622227930955512540622300401817256923035335875514372315745367781201821770224667858672658076175573721741872250672129311906859122225612936224253604842034671376840865978139286714154605823728122444812031240750959405052304518002532552414754173258693498076850970364945589496514110115432663020810477576238947486961641206917653233543324536079048116197955151977365664607067017687328639837781967932802977859202524714581962313267339929875229701859220260292669557464129773932987800739590923986585627013806662385982615582133495549738896743386041173970235622995173346850989593313629959793476172789158692089590993754541584187468458758738515470696720313355195285045444482669692312125941816508549708578757436211483266488255459578073048101680785035891881110604456355485962886152740098901526910149778101586976179543705615216872291986626614323549856059012751099535177510655658988083781250074699616961309406592515111235733737098803780801824798733302088949007620196145264106178972842203780302957080165739488164113896690517880994222045230990879865607639557072114463483500799628270823399095378236198473473063960753278127100284932278168493665082621490784311683647239773024263552097665053829078516873026994825400994540220492012660013648666714055907388357965391235175581646787703522367295512330491823720396280971222104416160281055833876820088409696247940196619790364081310844583174005852488166269203103562894216737680856255255466403498818945254117127558424149191867075402534097646507906347298551949977439668300644316028726237025204859320880655630458096786699110999695056849865204944963989832862256741845891311269056653594680208812541857728197007824501066935949966771845423636509211710508602690000127816945781835579471425209494437253827979164943231056134272030514906974444240225044488855592263058409772278672586777712688298845767405481800526659058366852872131680786696399350332936586300829849059119917680863290029691955088447848410326035016613550024469983422608076172013396252520951028742267463570110774488611418123070854495365592347867058626750370999269899503477596113054183858184473805382519144223208969213077272380755874882172671579783570493356846958399697327162259324484590418052877600487415377431110778830793114517817413250464348441098949394267802860180074169258679394909104101579807652478263758553381124019458894975952714264783023217258994812261791625230030464673572707545957617046223565372579207947291750334813141268391770051017088043635136593476888522914445591798539520992884581631514845939416210390127333636043589398185126002687468407588275522504361171921205409543166244696245063573869565736278372646510883694802003588258881031589736451522195844307619827699040895772885590539607975768209955911220071066660042663726903136308472075576887703472691618883585751191376739460331237787964626863940145939874842938222427193362138089224529160414440246897143137713357711812502706421388957748725771210483455881445208568943859317426898752116382233507628425652148794411860027261993962731181407494945782197013565450625122901035246282465178481289086538735966045577449962933019605912338193406723080623030089432205463699648357564013830123522207851741491161214785517553525237981591106906905353340580519699134053504885629116634088919876746740946022198760118296891891215192311579241031564538260061564071108171453830682105996822938536471658152989236614506310827958153796370282572415583215724037608849137888996112579717407467607529773648963211126178129838311958234816079591656204739226199707761093096374033251972803112479620548501971470752306140303936268404313379063502659641288913517195898789740823081883003338259211099866238230332534147396439538394521937608824415006322219979724045403389779640973518855519650260045080479431762018156027082545151030741111127728791730787989893692530480102057021949986682165459265391722734580931491085434235167288246717471428753039847204692528006782379362333808753248025670533687244090652202555834980653858981280855066824546688267790674886542922440091762969625356604064720975561426886804203519872491620943530618131018302916616828943459958438650752272126996081111238018765615024515374174659136721057380283691846962707587458248371556770027984282965549623548163420701715608804523798784797012844479752159215686393114577470762796732296340867524311893436252499628858874942431336083818871523479504000380680312166646387667929753280681328422382797637783739519876573234781587700249487986019595705998285905197091503876454727497338327506388199946007608924529017122355004316108929451052433389204056391389607833359566427387208704325922970725465308521743331830077937139577242129475404270500202318853706691296434119139338296046737591606781619707368535602551480780246743900398819890254317079570508618244527750974823418192843984401818230530798797869911092514432761194182924032282271510865192897038383515157078551768473154748559347481587990343263628640617244436444725558542480160340991458689987349935434058238352753608212606796956616554788612748345433339180044659633898994771979146546796021641108647649301570546022881826390103809769824636512730405642160497519343340083785645114912334226715557412660796947103884146589588430530857489913363292075941814706594910073066822284493268192660709253538391959261102748987087361538670971740256546681820473670434017642339000469551086416376083516156936571472292131835143014552656469081744659129380153471976740714723450401236923538498942888582386354301911655210982101098079716072320515870574308187585448848144728405575597984250315579327236740755417448800774424503547638561281490281598245274312572905719904488909632711145202037679865281693956895883363996646623738983624289345148055424874982176112851519850977561511921188401024320436523507698131349873490154824183212762018061755544285001213098060473130272464768271084396149143246705952846188955953013874039775946513078077511519337000986321159411849749071463275325337005442188322595277620714821467162340350932479115077578862275586893648010012806187777281945539970762511169016257650353992508807217206028572352564999062151881504883934661659930030012569871708639395353181454115886221172980256739510628092979026145367398310405454236846645213516106217072354739319484835668174966086531730269647109122317766384876758370139837032705057231131983466263491295899971298748767016038501068640532326486231841746970856112839350725142292727535840031027178367715384858703260358105576380214237043537767910052693787511616466799551999732466130550522350562753685083592680982949487712192435828482707262160530074788376213440100409993966270351320009388067103581598402720532944120531761080798682927440366608658017088615175140688571157790211215535072063830326114570326522211916562000489657013079950353338287161751367622406561878864589410471147790971753301130181696419572650246407091586455667011763263209540708769677095199807333597807980511144126346326755348861332589350350768688964793175617711067130248781799700002180109171715645954826924452444055184433692655647729352075040633644742292737586814924423843302661638595756046453050769807936776827171242631189828625626393971392964267567865753007875711853652384349675051028226507004144668231188680560486419607278479639061907600271854637381779497660213413498033254965010273030742798874743999578059721440431537687762560546107393542019865238237854773082947685987959384380300041548069144308017368801578705096349178969141541285250117543075082078838933155230476702349368606571534877276232092188892715462690058108286278283922759236013304151845567419116325169832795548719287364843813188380871740691078445545504991125555272681916356559077653934770613038687034121756458473651574886538662452672958804247690024416689633904571943942485907137919171623059849060933582636357699426544190472713358608017339403725332700787817401421640581134654685448051212130518493647903926908472313788498786634758721864322314919824087119543332429247712448307744806669579184980605086991987834321836126243864363948183295658176502888528842510996377104664930368126439281354941308339972450742281319218289521413061493776315685283562437031694075526819262011380505628751791165852355289900247497956742206266053335136027185097488652649518884327180962683628733078404799626421408662776475368450123047758202687664758460529383880121209606426665423294787232506069403689973170496897016736252308895788335703975710457509894786423109024802203234479037314833622019934737310480739730738797533503670957521322156852320786628936199287606340291963545958858810143375923147076170002681957455416294442770675014679575597821397520248607675789913371065117453133880506226168454906554516549555251300148357137556973459154375563777464443967317827444636746831210363520323739393984666343937838560117099879062645018321371170009313436497048185441426415553970757327100231913437452614482073949466196805363899281133797287776074096472803261107101166428264997133991566480934224943368127699549629568163000836528277110732699291133549741512383449709391293444517644565440374406116186123840657200722099999537969108097617866024343395615625933038625787231026668725564788220425768851571835087799783552860246341240932155823350785122017450125790237712821007526031742200966675695171406109285646227981058148972492450497581910843202713007029725686397910094202432072889042601730698614285181969590294311942728171121089060894392606362003924940189535922535754805680592626001475318282360770576072037795414356719106735348856933344938605037013464865601831718963804235659372337385922949811549421135609356721014591746117685368773611086098734972405870145766130907927961276374778832283202570308776270730943905787833594712056346759502096333472674466069918470605449026793094372068918518128494355307191213483491236160590485838813975688808232007695747882518390135528380595319694802556547284986489309700224706740413764921105299879335535262948292812673408708097285023706297895632341951991286604487239284324834047074511434916315222786090399482656286208392093568411886790954459206370776851384274222171198537787896429200994918612234753473240339867509540256550808559988319380905120373663393708826255182282745251759312939608122090988455964506093072310893726534983248367386605173637185198685089767993161822231003906650565060341278870705089156172120830981184925276902063470703729216401800040814343628578279076317756447399964003174571934005480500649335301454450290465890875872557117197955019766325403234030268987046787268439477462668345450756676267389729062386442714424799972819261434186281318466309746202923896535835542588520150312423407017851381537757672260196762857310421562463237216060974294123938370654449558171480063556579782213396182596781578610790188396359508390018119485620748478166951472466779578980721049703529209350926433032915386063168186857473201700487210648830928917847245677600362511657758328374024386535281794750828851665039055886032611670365557189180767090668939125823954191379961183761000751552503006145280462546667395035087735890972581203151221587864212804233307124769431018059282015767042641487416718336210522216393926091044814713875368906900713403239322660667905423389747738146350567773013390137029468798382923423383571139372853936940882413612117707238021932845441907713594191588353407268568315246378091913461448827477651538801072910370994820959216133975853683448761138569071288946893042024884052486241822643427406808014525930040772641060986747355689168516552571617766937232287171074804022868093420124913449214702714259548392316980822967066852801284153222204117364595135835096597340815424110517199792965446057580542016256192948765905544804421172943543220204888644186279773354252055505424109581685290333282075236516792499390392856072291071138165040372979385837128431686218892035358933939688010410240896570615558600107561437289391379642793881549845575778394914932672702857356480067784064364661109765161535492913486422054115830451312343458793840748441826829625818863906127158268217110799614538872813010370787988889807523342435363310244397689719303472458091557844925381016097130844222065464662593595143429470051334433777082338897915729115353529562801110621532378004455950418523976629214362044494948419899957390359332029951918367572870007228585447578682690309431399372425808354838910253084135782940174998374749093346864894363704548024590080518050885252052784017456910768745077744846550127000769508430807694091924881660573284365615644474224797163021790157892978253593232111668526202337996878896772738275330915913576284869030057096954282602536282667302834206413805410871508097893966209012975053715995629216727802606612814371110160830615372881286713772239239970550729402484924270204817119581446387078625217010149285467268185215834035266824681360550490071496826252306186420924239787532572745338302652684433600777547407901486253163446478914823070361499238416666505916336635725926233528432029520615610901513996750859925937898361690779721478900477976510169665351406355683418887566228815408812862041372180255033725367713996552957015802375229522354238614836936840960242486584086292615144890605345998008052828278894347705103398940559059193987078503979490618164009294988184812398221842301116802007362249967403877619638760228070695102457591781012972298870098907609441121865929098958889504789632519402177532265247502239515018458471412263850084380358502807055796718122876535959088575591809845898149248929257391704811754236014634125921835089499365153759683462620633771278432870226368287175643826085823345975808448576110454240950951384116602417469484515164750001179674185112127700458055931258348600849685639988256936575612598775933913485324452329928533813059437553974685697795189238119812003706619383392347333421706078296745342734128258536628518770548097822330155295450936980691884245551822645908342015854581455284616154119009387922966900483946342306099104513028676097565524165398358340717117965837042893938573521984356853604980387879916205098538818772242823473742450128947397760624382604773076173612540667499411844825055642389538975607045207078917176034988194094080911630515690286264657320960537694363862519535245222919364993862605583687386666113161761245925603093453091278760791688771800318819934525227233787842531039524375535266767667552124632893586146230115696076437291630570221253495733547516795239563325674198298455277597376637552271367202496625242274327743376847106125574176199524919512522930724505553392806821888228801526716555056962345824725595952841425582115172443234911557563095263774863910266563550117824782103993376236865603417493259794189377306573100975293092169249246697798941311158849719724021881019197390729945215147101866513482824821696207996962472490894708910150603558109913242099673942732102948377732611035056563276207432796566222850588706826603921103740900120003597364360017921940816839972033719662047712505050742803766671860386867184494833657415949064626130222444271295046280485845928958785574774259555770976583958195035051235047703504833812951673863827944439229552865470006657676654995655911885361561894084454642205741374164829907977173968191547071548974033017604312404735749714340273154059148932768894360307950689179011368432900209508404865742954439275468485986278274083709999250895018057539708224916318997545207229788271704767312323407266384017027185546712422941448320579652412840930080943306653404875599478913579350026779748628465509053035130060454359587988372803979002392654814617492077975577600471074510141919380751942777192390458153601068901519348042013636325978863468246111093108977070057946901944080780972401620645933354374006168923151518489087570113267801534404034965009304442263262441288860926512691903911822608600386101939721307828950410268168687231863795576508939140963916135570133214514842717916655847234573412798464163441548092719581996735077928021755841337945141061035724540012232620001811660588521989871612780548347560347318040831911855988174158968372496798216041510258820178322433212987056516930982991657625172780535913344896409847527694167363284611014894087743837216535418567192238935395357789361470532836301372750111180217609842203869159025787047834403592446798867262359628183015372972589011896392031288860375165591873410161809324379707340396599130041985915186794709995488823632526737371942158570123622591171338150496116433120918604930687454325885316708370957712202057177428097026450468462944213996833397792484738365302268082837940194041218196975656951468650687193420715282194352538321593143209112842780030343333039912610234020968594512270855030480769944219727586065728314060978729454212147090381099575026668054086916581012449533089602825828654887967722830218560126418909066564010639478552460360087528928603642556571959535431178611835726860119371335003151497178646847667153107378608289078500511730317514442352987623607677514640189335201509067670477947465257219026250815672952896976490287970540145595329148638279934279577466543509782319438803034044558901872447262850504568307436390755606255224487456829793935117960268638563070556484469376540702877327453841132664088229660417580361568611814947721085924668670663234302949926357760289312227383414686325923165195224738734084750925006575267292297377450624584020514401290183851150726127669761359430801778675320961655935524040397468876016281767385810947363998233188215108766594010362505288924297904656792269230550503683279888029186969428438904256729275000424287213856632295244147057568644135730443910122472919869645735855708237629967155141098334251608660849731067344673526204374026953096401204681859352996681215282042629023574333234418694470045839342284179101415649247744585124332514667037204647463360131225314133622418703501639305419602900875636569799100425431323829719065770300728689249496424347452542650957471635942461417318360713010210632203972735793138847524283809051000381282512599630113395649610381119301085490520439819653093574043506846692888527895901206320010342622575105791577654169854072859365231544726167066330832345278360431000560919844883917370776550215137458425197599461006216475818339847408278979939449639565374971275757084408698530449342747733637053201902934470251998333133516014532144792440887355542409660431536441477365867016440179236497018870937279325995247778432979538697285558795023225011866033192132829670345760879624778932921477760976507961116872669770793198011484388667200743971149575848592991910510218081516520748366409166479027534458927937630809253905126032860985664625869579359726656974581387185860494556973745874589475307712272333903528806824247791687655268224324224176489165701773751191563706519885350717530483955902615790935005757358468038443921191313839953460717294927995291600500364587253161145163868276267042168555016747615130676469859710136177549561367826784037885518647040195065704525632627248625610873161588942400647175777310978787232287943680077617103935889550852260080277200511669804801656927970589523745566535652676191223184210519660835846835242082214105005594790119896526668297822523187611656342728931994900186642629770649108788932641080423532356753019947918763417617410378123091733892124469204508785126082652087946072142034342648217424803110706537098140606135869843288803459687997015602137356821600319558696643957406130005065173234114600003344182166875075427340048605259853194665305330321411736531830397163241002577164051842588012096142502547029108435827150535160948424448877080897976309715991578140329524987036350397808431836510090152933832198239007295603457297425606690754781980679624693978415150091507175622452128172558069217087251896916412326315048395977342594308414753601184747384889423783977059585194123737279267916939255699312836494670531709614809983183750863560269244826216490837626293722788159709622322652388901243714343291011310308830874107688066551964740073342324170416518161554775991734890196276024031514312906268863056510717177255832859098816289438056812022480809028851259647358539590118707479742789072562156928834169259485768220021075115086623938801549138741122720234276786258916086421301707937442982004304936946109929570776896455666078282386383846508340767553306967890183289648444170102271926071090696456740298784835089964341459737560687507219410419379432258304952848255105568930506553911551346759346537094648809534002048520135034233372330381406490896670117280275226271479438936737792467132975800522938897383893792083458962188913344430946666867849004408424850296727172952234667515664465631048453248117332333268033457328909869576336618315438709619082160140411581731004864706740524256111674264739713570866295132459705966811034171951815586383942027586869944333480511347378366754438563479583531427875499489031653961325767533300457786868560132216435344435403389358075741359909989694072040215146887411806671063043071692975807366093562087957612091505692428977909507047902970256456682376610599514359160902297265038782919173401917383904801828857852519519450432588108030453223380292850247384071565218530297895139795759600169656804512808845992827916597892829399405420022068404379590803314079072949604362439162055609475563188302851461279018732017626097600655747598473599520922911889712553489267868947990944576413801495292214426410505335634371981887560691233213517056735245680838317918424024671175161111023561820294326713104925664883983691959335761870000726640008422432714276175235855383863330475673794840589965207487120979597817362134975378722702236926493849808681522244314528501019096652156199204071787649300730238402589020602884543777088340670898374129651000144478964614969130067739848579980042056040670551141880848080176606136905963956576296008529684211234193544032223412631018386290243386280119101321238687533472699543819102616766389208064897518273297894690068274335016176478000166820359943548572669271162194394315957736663125822640367631495496964641770274816874147729842787432560473512544142790084075915028108704864117825681545890966093764765432912044076039712738653120132154573766694261561057920937967790714446933043681574874747835057827045905150734234438039172323429755662776337315383582488109711219970167962014409032687724295039880573212407818737841425507501449477790252977724341786701883014888022160818682850134534042952628129330329095165123833423896772016864600642746466653351042895135714488997185887547635148784207136769809121234675231828725989355546790575608553392478868889625957004834914734069097792408050736708789086376697293364038783791567119807392984783367371271775086915893993758613117705709593772187784780967501270452908902848329880761297282988433515207807820750628160217994808351686177490481462219883442314390084595894637947795571766167167666065897069705966174463646881954165630043661575831360786754909272809912037582047802323650664616752725665573402223419328847571869536600489731043432355766850268701819929764376291265564664407319322541818114549131605243839217393288204627736906657302342453198075951193803508594038890850570574153013224088562805038713883350682494753204997577834093882575140908877357890182598364399901320228470945154881145269503532273112826453047339018728610293418046327722022024367839893403387023736553423279992011989129701020155076604836243196718589773197943622589361688037536737368795825806737748775560566271187115332678310016363439143066072793538518964289380116517989189883416056914609723491750077591316877691824891343752047329206329546807803491475620701331424829338379544356055256237832399302346987567443136473849168567408614642924727971208535605616723370240167044463827649557375199966317413664455318659944917984773757549720254983687780683803685079762924604663378917717114989851959868010718355429006655502602280123385569043629865072722938603897487847205438797333468342487344836002222665517284875625097634905650494611095227039666038083364100870965129575116758218514918184672237746024718091135364647700179254963508381513905636164828516187207017752694146856139177155986751571507429972536653876230006345148783339757053279372708051716673026448585834843418648737747049230723511800872252357923329937083596135683138974393394788741059852904021969960410241869811003120649175957240434624277895415191004817616873061265697022754592955169185703580872463485943849725406595034230456580384093800431151437120005843474586032006770982711195564642786113973550243530014848544287212837739494749734930296505621904550005363025210583238956316809518404932292361840141539897620509908779235824166027946458714963402086908067963448416479458078270996526365246313498872365375869148954155065898170882505451948187913255606107227804300413901422878737574981103922089625125958063916059597958708468205775340385896359217933899663411172479141136833302028124802935514602568179339028082750945240128772789621126244624959526329542046464113741236976450678091844351167649726032101375240506998829427557773516434393044017602395775359710844850956393292321207380463678825092995513377683617584009455434525963743590651721455380786728279344565301984893145622013652913198387328308562017136428133355002175875324737389212068345507970155533857663237082851958914452146004769421119333747619406686170940467594450691160090883884517296163172729590234308878122813934948474216081732025748953218766568428573271861403728439921952444572772567893067619685669300968121424878677014602075329445392348003839950529152861146463877650996026588195783057851786648710070344957426163105221399920935946649849962939768327665429948118452341727786731129939955108961683241665651847176845740966620846373183058097779166668383354992709003217416562736696009516565567670142976243290873743989759590018510752277716843270289056909562513418054935988037636325673799760693042477522405769973079592966527175346198504139468138399997210635832845129424920544349892423813661700557749586126476381276348613155257416790752355301081424059105409292012741026238969651419943404338583535775336346022607949341154382739652029767990928814503896588488748652796916006125203720743016950193585696830846084686898976011433452360542915416960495881547681083727833196618578724243571772529850633106062794405689838295280311735777124248318798611266419390684413541400082745202535471117396269106169528136283630298970112080766652475750236163821960654491024836958367932704544693036667615524527891775861163874234437536810019651104687469514738123313734445660503294704383277347251362836917048852466470816728248272215628443268600099637021184707020015314804153053521014536223025035759621173869569361403667693539175255947002408109496908072598149959218532645673419213531589708150884849636006933744504537370543509539265637961006976491761870748460443898369378319713206233820169314571657738941475165844569550106761414502728921123355196595775446111123897120614918343115911678943890348554296215355467932529962410617058213368182955239575864517871036267015659632338672529520879439301407246021060503886464246171988600255003632106893159376863058471240267740303717035451672607532367273982290455333436725268704333240883028164579290996805689431270512344086933716557574309532017605180105393778943683519548081397632088148458613839878503862951779248577544850257473687548274669810439893744557173457600262494742554549551844995927410304735345582133911816439641395986677315986353263449440838398625025542833525484461680799219631055906471610187063384436414157122284863369930476226059730835835533131413892977089208337184149668114582465809662202263487728579234834645026987384863084121235266100153484794104030337044302141772291768833586354675776664175612259978565288296161047569740577160561377177501028403685873924479830188036136167160102947326499191728189819542875984044121036635565197858546811179818244962776627982060730591911973998081396873026095178190068615303666425834525527113228319959677032481368217485975023069197426263160202314874386718859321531656869777659379289456366933724262800422083082354053558350847344415038998580072449448804077221620072156377870180339746587701090483303790774753301342828181210192862753724823217250098223510462167442225408193312664227532266563720567431569099239771005331860211302545969506697681023149901383067994729467419361705384535037440509322825106113137491421192000589669410250403897391110699422734153168287577479124121067000283749941376649287497882279063018170605959065997145497519811365938388873744251148114675117863836365965030936905856798038427599953809222597596598866364397881160671576775945421482344900911061990497963317845002675740989671858455538810077614282653711553305989629873867577359328976203440509276750979700168585026010302236604006457327883520938072761905933818312816291726071058580013303441773681103998126490619389513367197019270140889814570570680931088896315895482699091204926799627095591572706894120445329583091477208605392052939868895294773640737069006949819687095368931745294592597483671606874117732547873139126968011805808502644626902866784996187724498675010646873234900526873914684080336750964172739620817332193008647691711585404427975536415647524810992251263863044378745285391747992650558413189522908375776973750696677575071942316945917873335764299224381718776771546983451807924023243254796903439648819570672544485194036624336147211881435780131519187127878472571322094232610046385739086021635761687995194838889715524433262252759532755584774883546921160319249301270289329139275502767703209794743095743172657820443921550536194569492937639526188219167732813350861416168202252742265622089326181134057007385408312051116728994046488478104373659195761042122893991684970729309762086583565970867313986405454909584783037542081099765153275075503328504447525745304065445040350116096937134029677506136750103014079994634815742962174078018022291798725091590876493980327500500986031296584622873779720439327574352754235194326413030849857249257021244432857984283580724652222804362702760266484225054497828011477875090590561969887722341124872294948962704734315186404585802779790286362774102526112254081646691209260315115814658400413737357673991946652878817530246061623057551322291904642239032667266523943577994477976463323431711018218815370884554978724420614199552536900996002367215095421786161695047008351283476654193062657086366943730744293367997107749084942707657734673091466768832716425236295255197635724156193375312164259983690433925634813942615991392850971546017455543274752873006601487422925403613424032413853941966122890298513366230698483196398544579735869077259605445191759962261731864841271611256949426108207495663555258703906117229567376840684690684684641325081304331911375344788981515423468707959682155929284258160763336177306169779332469408577465885120320193276888630255509471565070058902317184569608818769577241383677888707422251676252213712451236348906467087741204827558158729193689017876445706280083771510635661020229968683720799827192106758902628377490496390118774179653257393461761339435705277163942610802255030563461735151156706781796044975514844890145382940832999712937523874117821239573276756313346646990040912403166474648118701449280026979141355607291050930721863417012483528445264613766330324326377937383450315215190341494083828005617013602352903799738909593971068117053626850733173491319650857556965627421081225636524785740128501558943407826765618396241971538153453199255991748717846045815660365609785337853414870946506518172953960262429165020641490851451803201521242030386325257991097022992941757746158566282630699489108586092523846419341908733572238224593813350443153767056697611740427066777725565276080832540873485617436972286634637389939228597164054601584913835890658708484308241561604597963407675779709288789224389136231347264907805137962164336512196005768499961525298521438874154107574473290620090199776879486365599633385452894494293738201108570610171513402847156379807202625215876326742265517432111272662032533069763153771612218154901707223153269429183417257034520907724502234802888359727136312502695081210320695186039996275771379121384613880585226300568530796706580320536378108484957046731109835173203376668907192653399279684733838025587195138372352623104983525813586550158409734599772238505474127358544700405771577628094445257715528577727186911860144337439746144722157850984278968977606183382107556363818545396274323495841409784375623562030808412086208669883686447129776184693894817068765072919592196962551133236096342643322790914939108951972805561383845145664772000583663971062669545723481138231828418016862891372031022666277877095133089796662739230494366404607928948178263087847843645109497657965944061568676817176702233826179155597181458459535454620642177854067534989832038867589712470348213816260728887804296347773244340098891585655548921851906677372625384061838739547132586058335678822222908505042909690425434475392437889414509559875593787475153001268898252054109005135856302046110437221722234437105286865183150431047361689959291133326771075103453047866384405663496925958809803579351060186023417315988688079315127960829254429051093541338543788174023102826156766925086110464290664146094263167018958503877019414242827920076121370398637764584619256915171091861934846814405834164920836910105700799995290380069515925640456937437829804530994420554748866033915199095415674440641589539477320962174256028418640935788881238235070096222770787852271287908624303109827964988216478623034696603265575268833256585381110467482870350751115700795513202248110487898055453356708593388330296830186904513666072719135615634600708929552813310388344705508671499618657703953759830509976793195869996262171022076703639458512598274482849017335921543013653868357058348328184492644623841849037477849764267044998857309343996762064991728650825711208381341117568795678344398597121185921750848956645970566046144185221868118099030695015415052560545770341804925650567348895832387880234891598143581863404376150802347830999659651992516284439873495137791679229213102405258581386196303084210012844987788018287250575760552824587762966645165592094044174126774483122483107285545820376865886055159703382697210588207450891779851127297102730640199756731416513716530053014592444198539167565469837712696576782420969589240856324315038691006649631560554715633717842319614650729249808297189801477045244863687554862256134929819401683913889810503382415620742672406433233377772299427381105204732969270700339159427053446733388119170452625151016736685796084523896984514140307688406783813695445203190546988869714308021999700393214354471196317473767097164840954465200477362870726442928687115345997382537980944229673395370802259693604529946690112945834957900265359312730329312596702667846231971799461588103976940786770475810893084622308100825457284644469466061521669293682038042465425066695165812147290941235325420834077141090668289317962539583834673235255967360065145436137493380825447309377929708088511935005249911756580289105739759793631468622901760801287150050015106348962619590345457726906976426908016451962040036239715591747714183984425216067915070785746807770935685316742874888669626947173977467814767148715542406271762282015321264340889494910658644278049519688938924328086797637873757172987920888862528598588487472887147466455809319447315466128537769405621974233820547865640712410921383312469079824466091343225021799015936383048372582801793724163335027480373831630358866794476627297755734820339414761543836117559521307685230159301366079950002155352479706812727426865233232236175236453598569683454833761450278234446253540350039734720675758430484263279417982446533097300485417647959351759300564342098863716958282006186810984422686174721715264167697794227806867480556691295485121060319131085009452292461700094102767337265723392797512683463646610727305106819932052287237153340987793526443265253640420242702422277442297118723074797086808162642972069752429112845851414069418029485624095334448766772049616925319533437591595111010066094186500121655244964587829499791422749581785127750019005293221047324160462983719274489922489068503002996443229756206205574728889962923351827956692271184725003382393066767451536787741020295707091830025731044167716375466846237309391114503561894555176771957603891058874065401433931339349053623853866699157085585851712536462103099230839324161075582329214045654709664434912818214573870631800288763757342629021799146175934948027521978403828972836984505112673278519629866003836040241478806475120590180217266897146247413555841507189986195025060284610953774583803380851238038474051812199553697616511609431002742805279025236271781661834713718978747656983993421464891285053657591552339573862441640327887741001835610517728406786342192586404341813121918987012417729287708087418149769223025811823148774306345099332872197854240717964275585530826024766431698146563834138235965817946439811606689494960171137777354935449919652048521952207464861863240833567026370234909942395853393718831969897029396738140143815537114374236078276370261817113674072334259702300260660292777086625426310657699288512497819124576784299533272107440381539129212049583724834197379911200458101497558826256763792544187243091814954568067671881500485685049108935602308125086963037256990677099226996780432770916784271728854880753175758752211071514715431062985021030311371946169329057948422760135926091197172136316813050281116409620984985345062410613724147068276047976147972873610676401061513485295994571820503445171744208445973111875792763307942892031864216306734793498697191174541754722811685216272486918348287740831642392724888225210447708985929917018253466431348568615240448457499531162317443855484216868790686100275025800945921456017999810050368601509759345881882666173473865765871687082207469012358801815437270234100150496170281695194214158182239347090407703727031921622375169997605944286579739732465913997299606582841703048098484171960362135286288932802100420927489089263542849607805771264204990101215486390690380108618463385501060760550602868937446820950018318446725713730151292891724756579073729265724501722841850167596180352504320452830538571440989883350443281472041406105856626693216255356258563470854383446127069495722637587077335669965375999557401935420080388060371983372456708301015357864166445615497693190395325282225034990092245909616831185855418544993957943706704851971119343105812509999287704001806304163488995578401808594711307787520655664765438567558477002256968618589513028160968595228712976081067139370986534105408537378523068692112456802170304447110498810752112375714853806125785245272845518115537310733841122532650671264699541146020575819830055125390622248360166702606820017087409728377542317192065200785099672360122897112534970926636703632577950404828870187437783299397245707847872662080910462753070949905296342934522895354001468957575728443897357165791033650086339387455583297381171606802602948313641812392824970649345119890794981751431947865811570322613544552696996430868751446579562747969117200405962509710946356425798910219149859008523238149640001871777343184878988480530865745263991574359914708517436135848166902537852535591170310214617490505673331132268016798659920705732866059811109090071866292010781684001604061737915361615302854671924901677289879397853441729142238465222394660933502066165796143965431186272357442280736528614265515703536741173433738216988422904984219583209034979921460208207299554226845393561811993120369363060016459508604130465993611968882491001553883747111908478269190874994471456754679027768410308333487307983676316255905562291065280655996914188609368955905783645038569431592557139048121255009473157493777305218440551899700252839545596634152176923486615282914550320205022784910800739554062680174156494083464356108854789522694598644679447652046621187774467803760163225674479427503564557356769391465428373760187234257586612826452362002203593040831296119474095682970759757531436557704289501721373111870686469998020336990502069287362866667899328550639004128498578057604216260409839039939834589644169333485548241980448583585078794462988007511547780787686144328460569463743447960815252539699194631951815493142208629751343642925727755754202060331350497753360660629262585940321006866435780976094003777318567793806230445907577836409421078107948343938726888705703326308733691314157307114414116169542870727181757905734032486008049074792956611080607176428302207226336478323689542670542335890106491362808775245002549840540441535233410945312280539340699262594255702938409617896245883005264409580729606922377793793018491709898829537474631355074067528405105791497493083824024050319103461486018069755989680244870559208317496309652267240717047954024063095829755441828764008483688759473440037286638679548240796324593717892553949730839549486411014022233598947339703148716191292919162398957590962249075660486165997842359738200160387316847898940740919951382843296281469815566983072549645992463257202178213382142997411859362237343395896128394435421154556650878195025740945164786323060253394984539649694868565459940451674657919919703206812717843602543313468281727125016321921589823955318035688428883217617347578474375938615447974801046971871943472747431478695102959998969161521127523600039119182184927124656425842677556968863538241843182125647347111113396685935053092437928698864547140225998018463813426226492831507579616511647014133006130527554623215204396031877991255769151264239291689695223728114220583076177027329362206948049123398109359353809348133847623096809186391023811887212836313071511906098765864994822781547324932001624294221507024921872071608152160279517298761289800130969678498386057932139889856623691547950947894658320815285978726310141185967131574094502812496057684953742914901902345362685531307236837225646573710144422326303202588511460669584382431059198645560571105586317783758477311265112808153211802137547162047163460229607199035421158986356006965083892080610311899910818462724659235756368623118096214614031610694636879427071469986627041118370856295514810524963472714030387824721125471356949814010155913048024408394869771442628006987583474154289346671515661363882771143902495555108861936129892306270222263642393510151193416956140065964520639289006255681994953628712755033102458483652419974284708076392327448803361903672244387970783659189737602927143933640950605005935662890407234828215222164037019505456117298496517813485827438414484798596926894116005770366524705962018568208808334176031546594386722104777080237707816038235938911463329319967455516589216408967768458779782262668148936849205001643775326512666362519704014094674316241964490507136726614762640437353335012304811820519359327012001511365746851734815705727388884729790709665192249763880005368183049726409358746952732886301660424842285720795509731913012746100252670717722621307884833607200982927376001343610396345083397848715223069966580206422699148286049329370955674551502391582557776395735811774455356066535952949523910116625623620194401663438216909793828203245440871526755306831410270225855762550921423399165843732776402928707612064217637267948789304804036565309729127122035971821454233842160423147032639547250829150633294562930269700385824588374810386766350197714152976417225104765987054183034134285011608709659729845741961875631322863800021201985815219875965519888803794518062370135106116364745361767123233116326604342708929842223091357938969518054487244756912191122044114326387231317431686827317424248210179378125202727675081104652346587626716171750606231889878405277874198570780905762219110886843939719283567061069426078825739847182327078457558157494004488953015199432454926702414019508010627867887313808434035645015574308709043942530298577414952158007956657114674519118197959280546941261815329892257299340713671076099665056608028764717827637695252433709957887493791500670673543402952969836916385456699917418925236826834116249121383054644480348917406449526966679077200617915583905652041028633720444486443731354930931445688245965943874327991368974831750373486940597928840691151518594530463817032521522403218721857817932416363761412589859992536078216815834867942832941909246183870252732228409040430980264165896627290794329498692784810956357987202080162705103456144796746584330989596135436260764783714655561974292232964655529538488182392540902300249437534218410604388244200369177730725667988776445094278943528799478494429058244733273702009195102371025883103910779124651317724869164095722318287831438611880767474256867894093801918930080163607716004363050044771906160201911904873486305429701075901700393469305403570001543701032003833914631503353910727444627402777881860133990686604125953249931022131009131493993436088678614804171952737366692414077795911752342251517875088616459691290191083381878316279014541049327873057077770791302042110782384190242657763017699487357408123589279951632220846700116484951517415246473424178228586118856604522275377663011315899721367986275341168698286416059499524588664697785480649307297259036580969208469178038190591803017264472026638160941400507694313007538675825119311046922906587630865675733322374571791933305939350553786404045788530208133409987886525088516154238988045744260622973302547515874342479284873428317753994220007860122040711677563589177562731525102322696317327473526544693212670061226453606157968412080154633448472284069819120190816146601131545810038525034183006304080571534236337531758248593682395779725190710160280629984056528177092818687214896761794957359813109706592148654481150259846626841420322182646235636054224175792706051443156873321183708794922335782907557482803147304562171081320839418425713018942551057449671697556792082208405171488218230927829564064298087974411330302334303352715799901637168388649755209287160585003501349627241393261697445609649480164283275312296817199828825071036954457168677925371929118348882006725433913681583985933533373291393698063818421450888192381639506199301048966012907912730758426116029558470744799153109834066116983641088475880872020704902220198340795112993722935951916178284315103001445443315646653235222105631209781884479197304442965033187537916720003221189873278251689782319052791259135172393873188638445494657256323458998403019840835446860821306401196853513315859323357703953705889409778815601604917388762330159185867304806268699263527241922636384113030210749403002499047641358828212812218920762394268845326431971160876065129706249519087375395119619683760547630902698601840830540959656964239904352295496360239972427419484845798139798028393045367125317133618655240659455283758739442715093725166015736958991323135384863206609901719201978912068123822404306059209954076892185729919815121249632817939862358048589117272701666918902059959984840218367142311326396178533920994947776545571323884399706097042361982908841385580058631778377183485549694296077160422862501586563144558188980124143455706608404921597345209262377907179866518342796978128655600823282308187410344446376239167139613018211669095761599769282412935612462441292171678659606160580587217097495637982613427797110122664595156316835635256336302898822697053257828824335364731733501499048836009952204243711718263561856923205708357313049283978744806162729380788202782971756438839683948600569746025769306220808866865329102129283771865956705633496955330777790698561096709256627959141597914635862451479210516756666538662564891456867463160438104462540780087425555864804622577091324224743980902445585670990603066346781089269419478441120640910391002536114859828967299044285784699342883424880015285802603738702944489954177594460309075872332750411010313876086002755153153743754690758152362199590216200831552976598255326697872593397470166806632540193420849928337695983363199390267120371252801383689753650929272320226062155907891124856982471718083469976789498410675010893245808883692999550211900048472499611027973226428084021932209337518316463522992925794107309933442050713264163881245199374648240000788354533598042499726817335912711866591100252374759367881175394240495475418613596433260803322887655630604744173346601697103688565766630170035380569215986775592020205035243797637218844026416663674545261650182756929829401999025464024633885417687919576911641994229993653002907411248469851723870264406102591699392753536053426088904923953430020693328239103592237800568124700904905909538691453016121618264417171947797836511909655860231665806231339284097551452108961335342689036078843038979594751149604593247679222120733074937704777248316203984170614100256660726182551943757638942053580791814327653132647964217479591861207440398179679048296071770836587882180912282414674212013830195371317047181615205458590576182284581784661572142535712714052952948452530757850686380773128222086714091191682036110482847966060194974615812246605744807842286038552088464981975876679874520587417632038196851659621655478030336961600510777326139554102092285304458410989576055208927081997479831228090185269488160145514490954888212296319805215553121399942323689043776601331065380149153241178552134148701618315334020380600842058722312781262247452612228109597048737587361147613150442219456129673601095779306972082695959195798521048054982046608049273085995058932079892330546211868198771094961496925169317028415059385153889210670136037282529651376939739230663331627346197602044763087845222209151302278426834992038833092594456355607719374816672179508768881678873759918180911058044714046432945233362769201019864887337312608899356155934742393838681546457067206302983394612164854836663249092733441650898939008808903869926769378763553909582784396794553916345973781119103265283600845547680110243491162395278809201551707402181140973116393867364155180673903422302126211271393574820569822488522519065454924657410129824071379339513031747695651644733075373354102474161335278729341158973716594158033433067235146779068428899094363645089752642020915481054662068736537913799516706119741272806143143554134264887655659439743359625905056758669271282678075165330244131425701139396686106425447429255875265375504470641195903112030293780000495724144098163542641358754441589166947264691333545116187714972426337385035954769070975140328193054685603149942649129623275378077721522555567409103995341880801273053677971883541402229544918331110154490092388970407487060144338680177331659326037210147708396817567331597065552913753198487542283296934543424151623566233662898011474545455786644034857343899719282905387978147046077770475517504501892959527059536166355512940969872557906484549060129390284027293489789085052811820924672047946113857443297019214050203075434875995642569556057932085557065998886706631856309310293208936667473395503997757391159104463090944986298558864802689979049195797789456690527529039082206947181818287269639401098786320637580395814949600976157586278400940797153104233177236944121066109842513443444371162826986782790613624073245891429987718277386569389964632781297426008145599907073120457034829503118838264370245412076944997789247898885771287014747026066746761875667041594325704762767782343595669804440313530234678404302027838712801439174456261417883527106835185440399512623117139215130562351825867544847578415495098150503927890367503184483989658203945788630410121067032782525336146691392595072323704100194773040333967781776308452832665745831041631971585515826530866943270842486808886501231048518783386846118005699527675820789312528140037546597794254699494700010926432506495474678441947889934271968514458249270470111526609263612569686255750191263662097151153549232383515219996845977443495425105320307162611532477573070869914416316542853385155262960684804810405520670722081407636630044714730798887966136831689362244708524406832859908984655001904562524633947602020716618812360458693592376546147304512336677799628260084858500320244481563460169043355257044151101883435018065279720363481932790512129460920739573393828270790210803786249948873515163852242897672316867172748771569833267186799525954817727868546044218859687134334289784394511415751330980686464482355968611040163025864211600743955289705244879014134069126592929292330826441572063262423884023393065687555106398324855227849731129260652360610395625166734406943292474851690660241888098177375993934298730148856571019999373955866163623838381810950236609908591567719173308543603921169509961451209285071861883670792588302495032110638764466928074977469347142770977133832421069070455624473763025299205435779923904485886883586222632662205831642073979316094773322181328176602503559805533809741703391704082442712211318867737724608990960750764623860015067833608119090358444706409209273853963218424929882918414177778664023168883959263630733803669933526963115234589688955583967629819814973802103352020798164397621792696997926047514478403707252233819841765257293623518693097480117747769422973862490053158011743659554986746513720682840787395084455457390884245644962033969825269326143081589595369709387624384425055887157035438854434691081604476866194566486526431189388842064744570034343294298021706054866874332363207321128971296947015764150787489257298812092918310069012692776121522869492935442296661991235044295520433290087171238102645884605395448199111662227685038551380133839649756615290363903813836514875949370720933518874863476424543978617530791224430848782793375679360340365910937039549280092319452848944978153435629777008328703041688656246090878549579836865432881347882270033591444790647543273893946187855158573310925197313427221294241522970290458079858793451557372604981755918972004839105454657601203387492144959468303124780662173837888588254674454864598424171201694098286356220277990041457269082434297961321815797092559709719621482933172731676061443431966028918826595428447311641496007997930093956931006339987631515988733485344777883700486205052558687654455053756023658903388028676609390055040242788716382537209229713808867839239732454583682098443689902302307304596051109706229420933011707349704031088567445127384270308420893183320458951807420483082062346836251744778845086878357998261722981762565356571895168568214132373050816923666799626604461517749894144101883891119661365265834633401250995142191975909307506120911345166331793348076945307631788352124954191113849727034065523745898938660355003095879345865691800947754619084030410456263148545290875467477931899769580817424785425043654816488871232775561514061923614736710994583039684128383642760411940039091413248915352679216599229722179616699908716412523080359044594223221577671987812370497409829161502776480185709881659101962078526003220754755937918794913049695552799945513217506294827075149571114257222398039131917404080678623163550153094534036623146386561042483833851547826550816713518431741689780752107698917068497189161886977063102059176118601938927666827530088058078691793292150447348578015725095583379940208674159972358339410565910221784413324453814072085049897563051641650219324827674208443084720278858391111524262437177701486661269061845510241378504268718207729400041973877315380062313610260619774268293959912748651050775205083347674823464258249514640763576986846792130078916589289944056972523122556558167315507297123384787794455196361770023499555496087991751165320172526708998407775645002279017653166165032118549217440531867171442532542163626121094799440794730247995622886459240275940107738242871417490853215932403251266177500361378075707308244607608288723530556541625291608604656000948871111522963203023515312778518366481359375566072499039326351745600230511758036514793609548926013493565768567137308308632576574418554309031642031964226597047456071244461085812376077803033911416061443766500151714837240561711200426776250728307821368608041804623072858065743551204565259320655802209630278188814479787246291541215487176363479842533754199430014878537692898004055332651823951621037824141214588179329458695486485290855161568740992198221467852650316783158333398227753985277534088778487933665266791237878484115833069106646317011669511592388022781764060606446004855183497189632546017816036329364503418760818820128519541441145933400601571201267027001692112204111884443515259515241783013848511764945236450454812807173883468071909786364835527556151644651869899521422855106666639283489358563949829251485760635277840630053010139296115926615346558023854336219164014280396694795259726787565341923129652450116943836348871186059715275020895064253215025202864561443648233640133980779427087195672802110003482604215327011197775425493934787194271864060306950193297239114358381560736798273967649022545097667922825444667932055858366693298009700116020571806347142327900148441645455053890296370692396154474797825704752234043027792163782108662341715083572865978039650863389286988475245262018273409681293142347190315516450552748422674259682949063470568573245671963253192529723185990637698318962289978399364880047818056396793875799481529590116020243910838038528105028934753965515589102045041795237888906476110763772906679128590128798710068238737603202083750665994668643947124199253430719803743590245975483288103083008723598861356169006244993837543894642027236116677787784867004785206415234105211380977724271318427341021848892394448656849783909492105972608165836405352072068366124470829106207396764325208338479907989995434632970991821396482567304353852006254797261716983046069953730151765861740366409547073213480801993524368991809426080138936892021664853554176938326548666933172365933986688727437945102224974513007599851563692774899676917969101390066088844387358389085963302036935090468451363586324623339506814165512099983539160603477076349597530942644146359174882277103914499634701127417975994665659646646412218547536949663966611203208641017638806753530048418826784170410273653654749344565092877598268856925605875648465946961119044263906921436615943806616477724229168703690086609586935681562276046651451682518329412861945526914849611787379283170938772436153732736998441799884340804378274833681791934739239537017019602385079353064580351991815858267372433970071727918764397867179731921884263152025921625625236908519773661367157847244294947698329099979709734499494603634862564674675397476026672422138788805116221487544204145466390034064348491792969287140655664932967079195050309705269909543417282876728575970628098485212841871736529974212382145852202666604685063604623173446706927044567795614138192977947519344796391464003537501522255076214484546448785729784060678446322725863699332128501219279105363987051766481948003843036008140269491538756123842170466933608678673241280043716020110558353521735596190685476022547501152808247140878406728311915354749020070801124075590802224670832723746021054338605178029163029604846310803736997988375899753690509983262817754356175361638762982204134749597324713039234447505150268694147834335156091466069333494680114556160477720156645725811768012080637239004964222388352412645799863483304132937275478802917852859509440956378691076915729373313119316857683766240674471100946252496526953758717147049442505285198226677526564306965367171368000403784057550283923949623297737107948030264100412119029888953069429063756574715926704363099751124754806188122919455462266358289275743217842914575718108992250454131995649520384467609443393753744218328062190828739617022161411263925366983350665726019488211300844415762885997093989556878619062654306574564313780579096557605467415899749201585381558217817589839401734953719840710632784898744169060741965232530239891062736030126605178996207722335493736958625645151347152415077029370984923642989335478323540780729174470242472861234281743275447843459361058982852749820859484121901327185303307428995262662139035116144172363947899947710681476112386290896617867803266146874318008190441633731270049291512377624358020432442338931441569329705721504359085161409626383437182709472229842714428118197031023213408610145669896229244024808916380446054241373773392394819517891482018166810139573813940957292483742595745315652207771111662280585238749288530159422293874411884698883024990361514389997909264786207339265201188241246143927691191115094067507880445663360315922747086638885121435414924406904290812645511872991068628276621292166110261599395854167532406521947812383601160482490927536488537334548606737822689415369329537156150354334366430932077267448880002786013376978925440295000819067804685145970904552484899345449098718197406846927011177312266542677494319065280407815735179061184496811791045300804754030519236692852543900079238626033818003054815128901639171929666319290089441502268500850548062413499587095571082267368065577994142164956856083106745147583753869448793014219972976853079224624100133292621094117048294667632795522615738937222410682220223738326625448183095323366834628399265195811513080186932494889864326647470607993967836994746076529873266930657867268851895549244246164893148648339879618820348520731615300959607664001536293372729365899537998623783307151591434533887735824417296200954108741515739891149357043988178666512148959499846826415968952460790676062377529855102151600502753291356573466961802219426511186370259288134378951779704552606406991006347880100118272268844441893894417845848130413027184452349632648414278409620159402015025885661082446551978110562406190776391823816809372188585668454811818053376102589313077966404375075448515004937427277123719395686411664946082351306895523299589346520181573137363242970977964052502685155958274507364456393384767014443812089506080234791232745259743764727209717014394910108607179160600078957863380997316249286448111876456773106860343060524998497888623767308883283305991169842269349441808918595584241982944171769505189951107809646372726285339119144313971266199763066065841996863031309663460449204821965544631256901519004915062920392545991927444752049501505446068146134130898876899578986479230770809013398969413098078237481921270535141398180023229127073169736153493379333547609386151954096532291415485670579857295096574749877108068765665514516519526627980960030000809001611284087415868123727840048913371075888138077795297584742977745492819564340689020529447124151593150754234690005585393952356489715530730193278816919659485656844553924617676392438833120755611569574760697641195009289060377627911438447485620351091970489747620481168643529325169611908959339166352591073460888075279673716344019116049955864956235724443558073030566847134582016773450366900903483308548959548139882192776630411089696711512553614316677071247232821567168200203013489732881058022126894083437523824250309397862584515058326376690451112699550477515269982576815620109015841055774470824313350926378924318435443643944405659726953402098666389714096763816313409584559873132072598906949380462608270825091377485701872395159816213631929404915958104532558990510766589535794289620396260277188865716951783222392299571575710444053126908148838449978646169257712206582015162802192880735676742070311304986672679539365533435500399827471752925429420196182971954233630324288234016701739386962568281367718698857599552465139898294676293792375753434744985875573937759711368645115854814170548628746920756518207411327801668286104577438570109950696291279924949612666829488238593978984320608043845399639291090824059162333434539928402406189411072178980748509489732354738060079703447189869749448980339220356045661851750004866193471408406483725715026831474883195275855156926337535675024887658096481725970169915539051020583290419371687954001256585956586620737140750947070301561995591601939117109010672878734006093057796618024676104606006372741682052440435232382296932683220707596680401632862974563898494191645736547753317931460100477678074952918015247493221282798580133599552639960904369402945864217083444598353656616879972873267297064456349017405890206833236291780991167754063857545171431743359082219912532324417913693309933818057281183879106001784601895410195896023744423164467001853275372990456261596898610803534888948036171591401901379219316230088769972163708252213734698471053112929539645399571983427757825012597635744835119951471112348802512589260878126837645162028053646713980627749335019465923392489046594728671082190507247510827467457362317361494623059610785511164219837730014388346345584076603109683907019547821511005657931699295614395820503424956026916357682353351300123149631504021097857172143713397186526861117305298985649683118253556747405810073398348595184312814838647187986078587021190043339185078502242393252369911560431536174512308030498357146165483525018721145009953280842478189996395353177123679003156193726550319474892893293877479939918577766906250930445307950376469958021949241048824449193789286773474143523713486693006688008041462022794831116562402020669058775942764166620910906974803029888641735724502066356681764486709633923748778412179804548669522058382909474258776772319329465228837490395545697747184824496999452563898414410108889159458372193536288519904575501768425369205863343943119945699221001322329455947889152330340446646877205510220112415214138390325249717027690228007414130761274348991894202705988450129607832933524089136878901920902911446452746022524755119972975145907643695406432266690666930305973649180699636436533264631959608027984753695246098577623781666183576996033461756061572590446932347351010376617427386006003509997901797802448819596694131364318236910585959818876965693290075475986034619480810631009757512520027901810409306999117834933725286713392634373621764871735245132114477832316394392334699045008101499668353616971007428066946322972965393817922150052875828180639293424358167262055658829094457646826119868955597340379406047641976260137494120571921059187927786131852610368935775472623203695662140002708947306185659062791946136098635240970984747816083948126488114971702276635693805029262801581705450145308763303393203140143640987807530598953985782146617129611162327613781340542288578343982142241347862898937370570662826197945883893112254738308996780713836133532364420846034838110295458632675813071529727758363488568206210952577583874918285800018771086354642218247764593971996328191039371873195559274745346829915391206459990185793220311748877254376016686019556660946913106891743163235827186428189755085833854220919724801347199891424666167107126684937963969422176754364375740199645015150729718640073408553124834917861253468728119011053919059283597397942260976653694317505067520991054173009455259581347768138634856370618624685465391026083402817881307084404380475833332633912124839177807708682686029336471379670155340613542923293910005180778383529607799280979014280029387681589762896508727991236257246849561735758243253292229226289059459276574271124391869636540726051763056258494619943964971512040007257316513691436315509757898460218435181620622711575010457186752788477195192639855039957494788668223738686039814377489779779030616299016141973315736305431193313046425942942288065130157826361523827596878947404405781965028866029943653642181983550706237853456986534764375511396521693539091099781508460530974552067375248151739069168842522224925673635841922232976191736080781108639308089573470952376114160884256044694351126109789153778783371946916074486814913493624819253450363001791346929590481978481289036234858033693607988609937192842503433412225372349302602149056185383772871612085549714512679577474118157324179533754625996024002153330680476243783566627417800379594500423385110377633492091103247325283745941832560308405060586013635978933459665450566665473964339409372710779700934152654946347169483735927159036932500194541316218423658725363495493946030259448186198398035504228749443556733364172753314550355758054220940543607783384772402904522386611998561088735219298678862871063278758939818947310699230825597814259595699829369696509649646718630152754986069054341972830860755975341984102375300989452039057580365249639895379439681225467842145067759119734313839920915541942549736970311135363892375011566154035598817813656176352297594720193363222868478645424885133055087713770351979671307017958014898014112576588703798544496212741758562697892870300492357883850501960383892196653528044366316007035325902362859760671990357740128367096670774982859798946219912071096696529226759823487967449319846400272500663423807460585764093989859199871863289243064205898538044737542418666037837510673617746959689887703640741602678250563804020607378206897280601327187007132753528262414603825908403366984641139252799718662704341378743510915994888706628142642425908203761810493154633808765474018364656155659183112057712447780264894925418766879561458273313008986424046751893628160088690158064594447104754955948862305253921005918559991927586409298256189509964962798730525199728437529698627617970159711000205796729633408393422550030292868518527743935082199375844507395674085278371974489358315278662335939190475081068581542858037543032429668585525467936139951815299895881526086733124810638464948110301992760675926402962896979608926709178407957895027062116294458384596895828967007517048186403101085662786481065305469606288669135111647314011213498217979915654855896831323324280952981280379486556237009966699912885472471662209440987878710120104380074154881816809648373556683411029141121440887063367923819573780637576813691827598894376135810216595746643259379004024967867752256175012564342792119362160020587576976163678773283134049026898619455427060270662431414704547854283961031199719568179646478211772650491994647329463038757109853653821876271893687590692422341638644804155338229085449679529417388634055834955881847874804441169775115757400811643583756150834292456770717675910144239407562922013409081470107807755318853126173331459151903496547563185490350531691997622374574603578185187313074216400653142653479326333919692108265945207488598647136375234422890825113839124220065621670527693010600388284393965918088841572781916894223389941098004126984487588117366173022499388852642940300905131084720145123543437153896602985400123750890587350136094147143606249144730533281267423859832186239906983034631775964403131040273849203998915711487214922753308355454289000123368437477914996225090024642053008894358793150176594143575938420878132885255001627516824170274764890521971765174483067384848006324238146702953903481491438008286013498045187218861704270539473990893241379930402766024385522029625761898151341625182971580845193747541543868025865312634218125536262095101258541076633442527280320364903494817711868996081712274337825115825398683573880356526007552567361753429394427461452582268076052090372387742014536857696647842409798474337173054131817709686327761010647743578088639604248771233039584097539572633709667935107012582312943781811564966399560391300065659208695242659177701527805855793836243424521263440696378839837872601516015592658733866849867775198550383118699883770883603557443215954536002825627355360299886381575961557516005990681324441805377585110818717424307903278908893993956036101982871140466087257073734098663798908055652689443896550967376429892250871551668123385158816811612362986670358065740351534359477890000555330568431897540187970591519405880987559416192929874122025343778758326767870079775542977076048821255408992227540993884106164685024721935552757474302630417175201860652622175955719784268292210876442521134929864283933215340584110253775372223551853642675083410710652688085630635191828620176757355302961087736025157404889197546841079875185181809259340399066480069980719129740427061662726532880677779580480185709943517914432233002038676622736302280666789227882184767921903535924252098782587575105861998073926917799797780185988766925557850557225481247600473221650562464811649652383370664671655938839276974823005785729852799334811762967384143668744634038666647331977716538223271356852007777147094728109506192469092199644767546728519768671921719880790838591000807381228401463770343631677165666518482279553823530359096403065134595728788419306838154599427629942039792324693524278118478007086470057552181695006917965280265927081142088943798625306189178159777188105796203443770750138486095179198478211273148327857803411941534701259914774388777330148855645859103511123831516816137989407972679122350189109799695217985401183195613043297300352311268365139818489356690353766122905216537147869168080591021463419498346136475290346728175105535438361128781455115752869360183592166716337883686333386084217168507179960811964237997495882839488226158960262587276190336959977947287681936897664571517550434336787417282442169807092795149340766063662354345889632117324318006056800539442871682155578287690493713945593461220921853606368077909833028272358598327575491147202873603621523895006896025118808818521875862593832003589366449037049230597563658477565304783894655016437020339455832619016262866300481176272541998400359691861746330164339686571281301184288292354908430675732613092160812674414754299531549538230789943816259125624247267978870523255217707212177507404928118064756391681290290850783020708205469574567369733542009420629801213320693493159060986633658598722486307385283448034285586029590148263242384293430167346491242493755717719375634791001309252857965835584939355716651714320338200723659621195990598413421492010821332569128754151327207538407421711307922519196846006742736415078668554323952592147524208265527568473170645814126295805314885042348708386726817435874840662448623172347910838746424322311658208095721757122575675956073783178062919701885788777920201258911882127212458934227039712380981354559887001570987952435321692024589296226969101370829026592930952975509354773828614198583134731484440434055064142476402567439842713587892624134021835917840692849344069524372216651123055418826299237412668306312004833932797569831481526311923528258623160642807983990341184486369373712082759528582811701538313258598596946268027989299639618922355668497301019084970589038003369489400384388072475291754973530758843415769187907079455357653019923500924984659497532138382655264143876437360277846921463416889917098791474609276239749132198089560973685605443548373523206160998431574967798130188911271457700843646009902240729786742713487072014129650656351192879839886376637443718059880198228233313217265912716114451965175812399693594214645605781335884032590113315070645151496612805479733927014980371087616926937615237255525788479383848178503764191523186428232242606026796445395308472246128416665990633340419604355461709543396359723210788635567610483774444964869857673292244781962262160090955498292270482396122411473585796999643227926401187736194242479260965564385310034569893378598879025886742076022218052769294061424701611859531642783687227290071341509053698385920594488343048278338931271201710048822999539574622541162712339606429326678575361430566401233163184748277971615322240229742343088704172081791919368422970688711714727953417085451447131904021408928247166867407887854848151449625036688262615564757219813741455594416656646185954563028153119482460784973207329892440091826766244079594277957853921185721255887019655207886443973157340346542334441115557123199670967872787038511951784263257574204040380915784468895875881925999981397917229606368444617867651233106507578770179090143519459385599153886636640450808181804533363293374991422924245653622170235102707512320241223377948240981732245057663046729466722027619649890433022930288904505586232117131119870465091670914735743297914214292880028168656569046285896347254574981833534673146021112797083532077229369725755835129454647282061834341643463936988036884442355876142150309236646689519251704924322476572512645391797726977942079717123820233577433138089415281381752682741402624738842630053965782215702002674855005622529088447488322831717277564725496261236912909115041194593202281721155539402487338579914137513758901134503393150362197217728389843604417181431574009781259168922999098966592479959905550152658413008063570654259800894468012445563406425568876168678225189758100351358666254088452671986711291533667818407320267534866679413681084915562327340284758049695756628861196921805760196264204604042402809797286235333348491684542929466578013275937166017002331609179579004809797217561330905561477331654742262902733627853556582961351932115693347816484773846796622931586459328069840231616312277127204211322466951702891363788818234915615514678419955595737521523884203617897011849862473697975296230080849706379773204624788273736711239482514651988500300825064674588421656275400885677357824761335801577929556194455857344625001769596656354481796820639214568473150988552898464781701015939417030830162542893822326534195148972046739756787650995910585295637135694665608454636010507990783300808955966118017356410063115388935758992147412175150608933592580249403020916526294797936144131038083740969446894946274674831283582478642839638652436595654577784909202271451485726562407724741291386702045198434063697459680917896079126841778457984450278263775182709513754650962295028994022394561062544203667991766864058055082625155854593459273501283748269656350061884765481957651875411649130574134834040413915184979693768784265235625807410817089112573181421103915482405936705964785655956361355230214669987766432210668056279608994601732395181591140055163624356186704412908763084874878140773830967781057944387456888239182129992034663128639153588145868897906099140191978818482817724397797812191056383628586030455356410500426292782913054058793923043043500244966612891931301473173684221431346544603930154832090625694519979817871382839068860131781093500275134249276987870942811608345381817343464090405582099220196418946051756562473372878508993021604240862700658933012720297279410339655874212670615362445465360338553678505690672926612662304799817378691791566362167786134819878273200323769809151465679401873956667724266201922719835096717484840538552290979090041456958941283964854752002673129127997889941181233276264719290874102763515881178010666068902045659002689972296140082825029916057153398517400510327750076903584019281929957990067279821488872250900295793965443185201967438088701267656956166839724339417712077696827422838729747400341241556818947946933220649347982514200085438236186997992170945352265885245939739929064203980320396921102382297218664709051814287530530951960196989388890899770894894364354622015807548125194656731772435232732367317531078486572749866238224508919755639830387101264244825025078805331690763898226943972495183713406523576276948152114925486203736990384067971757851743462891815893390051426265509947380416021505853559722341572766997040155872824483412085557368151373523829316575469790408189060920260656849580682099628165004990638408420469695783222544513163778813485070231642298365803391003470226953313658862626260600591054053243674271648742122692339380311288699513765041836760579717321073002003730358486095782737551215752607914631996532747201564880088444070394105095328193365472215485882046033871380547589752170753812053980603913917372683075868395949219014731680102953408159348699125025789412325022424174785045672288160198441334401404027666873209140443303829080930628360982734044230971575515048198497144050627123819579708514018640861905816860397773787561436972675118239521040123131670782714200001389641502930804574776817052276203132952269252253199308046661146691183800484800146285970200323546869427521380015486425910557979005792024344202353353549742122664876127064695956398140831801971303254060388932784966170531411109096842013284715670162430463443386804066316877102371392305753854005920207576537180136130462118332375994883722084938719346849688192406087678331472699382363468601349134577791079162640399477790048034352945900821336575832609261533679733632859130891688064719952291184186181497285322169717710752485989035848708138900199918107179125321972056935047041591186810898280218785727043531696901024679849099822638675855007674950573752013967281691797085419170493916960556859940943315253598100677312538791124260131011059937763620266611237386426914048862647129037855793491556356278726113775390879224722237365953744434265087922417449979601050034595195533447638194940653278276742253456754497601866924904278205800800447016161374901628730037374837561723135100438386258618543505668698149040512289641527294416062964721623130810916056438946581906132036248011430813162525342620831576477838354669562710156097866681086631546289673578836944777374670866025918080441901561650576939290526415758493106348885349758064073013293624970160595753442472371168663689851915973620549827269982212269314003968200170080355905863289006978383763354139911258294811987402135603196574661788445875308960447878509097121143263103013787434214655559162408566973115805886379380353607429727584149956397129851045577058066295325487959255331234654719387131374927713577052030520689257648828401472703465845536516118678782083805213031120543827871991540327318290633321970438468749714547857148195261717649746367614885584647434117929662628393756265173235567822323420009503979928571669730389888146397900969357011971497651411466784453855822360643653541463223873578932370481566722128848949783495531395308963684601386454991174883222778240492064590050885147548667839365733967739123102145173129730362316471804509050261921913521440978223508611592531599969066791716224032041486033498595537917656203489299337792133009706232619432748915028961320243028903601777434008608935126878730183333927902119698821555694365839413109492376242716887346097926782399044845245030183519814545077587081809483809432659921286608533805287277050801257390777467615813930153786196433005164581673483467152471830625997197692957043913149616535437105106079129388509286295090778237554600942306724234809912827920883267677977543577007657191447309537811128045846720307623722444507634527366493056381283523739590181267497649312010138577517744899327037497417918698814680682280885114304622638799627104658071599548913705167196628647747506074202739921067720061074591272454936535547188868726553896703443899584526069092084335024483794238465787584925372986268518836886923349203688192671352208278595269652883286998303501211149624586126539287039727410139589561762344053719934319792255142155563801311132636897652296040879144840986319261759233146654783736900645065727584567544373144887915105696991864306877968288323898868515019492005695430682754488934724197968767675531451234844242227217269423974129251079343165618801494396041941672823970310262347439756415336008697968221274610728242315680265748712598583949135177611668969816820578106347387676748051542667261098091626979527546579296952286470970439993932401615968127213233004081098096839403114422703150523352617418199444140878639083178372790951164901657241402686184942141085200390069504157057384888198304542040008066606779119459266342425068264786139729344757554430064587358167842149064761878806851083288293522573326807237090946409451782890054754157108959557249236830011201000203679617842046505165609976256336006270301789317395370935783919904543808407961494007037032282078436252124574297825123938589220527857103393523695504874038380457339429652519746124494277705836473223608237818351668985976657791888420074653616030136636783897446873006513333190149864378278609540096048543694642669662141004232597490104346657379061414827607538458910635762240169210386724632960599871510628538679482956046710268447752642715035401457122259984654209557831801510312609764135196916461071755221191626061446261999614109687193926544795008763259530683513351224488084374767875502578091449305946643908032078251502056900650031469263038378581610580381832034855160718918718025793781169458597935840660626582283887666422620720098497997268238266959207193655941319455726197215113849439443544424030338177413021046094135931438723678416718287327975612494980131272556976388690135067414821203001936859408187214269535148828246517948601882344793139849420726643924651961357941091402635327120572320732958489148646108292677312107748415252952203466881423086274700519480087972068302088485866471842579229335141216328083360079933783708293586076961887140737938172502860505685948556223616876642764890100854879665396012802229051794074255122798609341372404210452283306317753381794264760897818721621678352796667661319377508683610311546578221797150456867966480671073844004279332261628264377467444949703851032716244426121588944525323320846659451999857938232461783724062943699309511007564004543754363386628081093673158513571598685401536621605742147062558971633585202496448851705922109896662162171907603149771382521080546248999729289047120803646670424034587216205937057395492212130644110502898618296255614025389420645910654499705468600011269828755669193949585886699344053292239526172128572117348858432984489886636560297841231113693634729961070186579520018189270617416951761615206864789776417916345609009059724228820274472959299571134266008640374735986537029974974002544072223753505007719647103215412183280564832586325334416266205834465093944202529992047716560920778193735753443935166489815086863992350128160846006528541264942416234093983012003103362866186300259822287872135015205353892039922059455612909325433392842936387497037697571013601492101657539672948364360892066980232871046821656738744110966699859819147494711665268624094201590016552423051861218043476013698065178560560119704022368176442274769080973120303305362303843556572966566570449160473067987855438246144513009270847925090567126715137044876503571390942887827733570127539760809465290096906893512847978835851101007989003424930521764783639777501925574412295599893973373013518362945977891864302151168294003496385184456144304750155138415175095757145151313629895002563447953429655197352880852164830767192303643215804130156691621485924604843226636640498621327868877598038808335941886701829288836562885180426837257832126041696676427380004642393426567544315465263594040913337419328708143421573510857177823425835249693658604076611289113990954732562630016165095120499253265739236197964535629306608508425113680362918819677243154179046855463247293826468820541876169207653683926758753990445859600751789049537853420511148335418453837336903437021543160130663867154589360001189209339929703569814156491544287678323325766604015544597035331765254402860848119412747358887777171211743400399257648477777512436218938851078536591379874646320404819826283547809399429233958818380430572765591136371786185420582051395342978670266004924502037796967083996106481651509205186873550877499793770496864996845932604728047008291634930871434344066325184006835867489790376392479099083850415837263969556458731148128488228605637249516799818527105082019270142923156467329768205621506061725097344165356304114944148676624915592814066083572378338560034521807171193258048535065369762492974495266457135545336415346403441503068662002147094499770702283503242743991404233098081247945972482719500084278054663608512288212387184104262378024635528418286822819758054973429611833138779735479242301354416922951523438660073726674268939229045797651982445447053380041516195188369308426116448209281810909508220648582663883586533831149577133755512488430043820154569379187184104143637317361328102213960698147968339630423139420059638689833250554519564605852242415191293139277939676273061683019045693165185067281557186830244847874100812959670159904513343698948579110660398299607253616674752564537131749177852695968728656462344955815936591438487071432282059676225511016748503561438164445839458847301872592142574506151099127861231986221169856434596577741501623018973277452844176265454556127670237156341887020959073345268488184782576137749179019092557895399087933230469308512417709196541729667594225018560337537666506990118021621227626858199469994788892582616156896318716212598740653682086107999936810978450785101460577291647221547741097672300192962326166388892532350846613687104046861424965508554995793033278581322271360498652047622852992352462658217140808465123014310091971566646569199665764862361243924617110978215262715290898067000256285699764565926686915523483339825461755372160062047683815138781011939239331939291571589893780105729936683516660006322818774277128403010450398107964979822568388733372959270286046378065369582394953874297175393150626318408747732678028885206034387703163897465558337124107294155877649035144390906249316178062490317601586353888787036923461143032105291133767637717677543228485930696867618433078252224750911694057008623541657243947198129780157994996007243573290666665834923109265595548056421610368650992141487779494049651469540514410076622550728265650146916222914691277975483157440113116574278107171525733362828887683696562492055759499233076459794416737166174707214062864894065290806467529831312314253143477417339346083119743661122769971737613287014463143502783932896686519349719974299208540687642993218549391628751225391713869942392493734165848876751517793092424123813996230597948706948662892669509037626409263315868320753642890365357296358502340523481723240895556910066240385869123291884687352033172309052943445585213883332640506020246968874268789939755017826934575868503182352565174170160018720908092924045288365715305350989741638095939657875491562889616354882639969049712213187461792534881922175863848110366112478354356990551864274527669320624507769039992795342570522130702311147653574773076442751099384947545664810783131192283261323219098598854155670334455136244999279986654376609678919451709357007617872895098698786407719054372717422819875415268225793625894999260627338074437757262546520496251046773593713376641810356067706927488306741816088728837229887558353864573308402448717633176440010211613627931235045766313727403008991295898128228325612217273589768684633661086769294303876092261637811519962299410412767628626970961673311171080209442014625173642038499536742712379142380528215953010071457364621193800397320350451372558088075575923750541557139939388397208449919763471605167103479929111631935207597524294994458916942516014790664761618426872084138043370465444695357450298072040337137705527720087422246109813528967508846598896384210286955349275065089386176815265448454722124641014781817133290069883974399758319378953938020532898003438692384753015978291147916008749442258146128825107899983794458168918960690529767202939945769441094347016098025080438036283326710757395953313019341519901555298046011692911863818096000661306399046747820665401000183722909568406023730490352937343163677116651053446153738898400261726385036789972320529611319402844203181824041853813461675278732539741039241379545649527271667516251768358367281891666204332795720151504169630874644969185893784601653819459459622546135805818926718057308275562769444017044061406027631332025655661251928576297040230282472660577986020302567558012879242209341037577098047257877981402466924273516826054646004660387306416029353408608669451427969766422251238312763360240866331007238203937329465623670188350735433228660388905486210995557367854477578994366842395962312893687537635258341216320260825882206673511709625621284564236007135815962191676173739313852352769856447629084634015810499196086542983924726002997384100203707710238397212682380447807240117853706927082983542887978572296289717440707141209783820893365844814934033921655220957127800328340983448530840283530064085829944002920469088967823198910161192453629217851445647238287544209572223528484112868167159190153379243038217929786625308408313245413555549779487683507094116665758337821010301024189201808183182053219301093440901297884563115202366914231636157230228950349428656177458604164612170559056433287242848163669064176799093739564567821074823121215884730636129553508385462312163771494169134013046240229679917738332346417771381474843680431436904406208942500187054932060846564379504126924622547056056546365116118016569363395381740649224809593376073888448489714279178865895789512243344484361526026965472164068055858260930469122150436637248410183148637609511552268244957025560221893535902605825554029527195690545336046348670470258385870850020237526272415856395096778957476416636763153483958384300634916883999973550587838605801444069409753929760271686826752630813376984046450207381634202102294069144376896958239570293595426974965661401721930450264301446782858593866696091847267261319079176297292000458901737002955750100420360579984579752087943481180866935670741739426833765451699827390819598190826199582702776867776800288691309541356057672947705672789831031979012668978469771713364067791388499281292910022727025577612003292372901493906826458730952026927674929229170922172093627794673552986326427639154118041241458585500557097361159110794479087046550469435186877194057192285398402573490959198646825942150390252940163990690225941912776631765883980289404440004290851242114788616629974443121805666359718715583218972010889873737439376399680417477826887074756404169063444427168388329224372490260718325638410742543150987599925027900066063399185933031792828607652381657824842683280022313164651521416892221108653403935965350457878613845374364736638072713469045282413765765743394831025195526173231497707989203535780938633751858241922363795436396064707657868299377641096727510086263477418245919303859436054982025234386761015560283779937381144792182136068568376810422388959285335763532024124970715562351903307262059402770189818668180641080648047943050423930678804928703168387513374525568644850746093560154206271595394913341596908064175680170873475714044612737932600945051426928071953157061008148473294209958951786875569227243430996467415157944337603457875400033296160380890785066307336449982653979711620154708349954793699263414597932849509136868738016232214027559935372259837512363373314920431999926356125713509242078058177686319526929469652004386673873742816723978645531280039014498683950734450874401099615130660521263056244952672474874180425586093514762236277415797311827157620194338323873238341809848788534158572913835329329634044527094804411440597523539400039201483028688897994761560581001480654621011492664688761059139555884744746024854749383769135716714238679039200139804021882166473604871311141032659409775863021877895802796574820310689864666180494798670646478003291706086173039602324347814182836214063049252292968875601312594831949960865562615460294413744455900330949062835861996736429265625996144620344421171994394171701914450425898504117390890085142756089423350004042427905468708119253475396723686007187663941190572070302410664739725546620147137709465878747211476263918552121391655807304410240179360209839578252145787026150673352600362075547338947579746484663910944443625550944073596708738579445888106250250240870331515947477988063403810548665815028099808262510830173193727839163713115974723549007611256382575978266718169801439482912463261523359617162670956585073047729397510923326552133605675177009017701498593629336185669258213410837441236441281875658702323493927571404786204696959030537409715688659550215840639268119447123015822254753373340761073061718563529799510658020167292323185740515498138478652860978214103210699852469802880311778502500614602319828891779280363099591505232873191493473767482517130643721535647137306763212912685952114901263632578748564992018080145096960544980087866151784802650425386264904942530693315827034991348387312709047530304123566410485341611172654751049545542813111121534336478624692864061716710348541528234814753601520676629850553613888941703672807007219447810104178320984310139682428549668654226981701737312607491206635842982688588834135180715937356384331391723992271674054824409717527475194725148465662634023717475652317132620669155982375179014828171543183962954789822575567153504069042586421845221201323060464108621213546294516082570255162384260797795294050749803975932808851457023118778986058984552872416277688674159011210100677451075652342185471474175616496192524632888703678848496761025791355243807528901882575627325982521410649883197168614811958621207614878783808398129784617596409930593105800821711935082638531538974804515923125653323730756480954103256095004351623373297540135106565098077999971058362869967839509136122973918384704619858217299096502764048483905915661890540788964676056858758949704102068768406643528252565515276210878103042852512097903969465520662609858012057519271973471037527557035547437089547980426820037291426674501611816652911610711893664696412877058930548825050260263720294957234116782285625611316373522587090908647465917187248331225741399622392407015417923847736415514837828410019778926996913753079911332383116253925063049859008072709349589136836400751998719298180730248752877058285076635092113285758961597089701279959888822813183769837805801547330167535595873615364357833342852607887271255365703611999280996986096653496153941444727927103623883229266978133101558216217780789728300708149385416413900299292787305951923215745184486981902766353008517762780590605848393588051438356290408883944490183813394897417645566652387656902368128348631388099195161541992160422226925211335447458345097067512921047463043534897458321045268756683252531163148075105459381376279902010321874966296846523339190663837214682351983823408373127435921981932864263925012141684179419977608696488675135621966030582677820507530871426568691977641270295135902809859234873040115838853741673387184656591161629401507641630375838096670327926583962025269148265784639026447031203205798179650715544111502660382372868603965774852738861368639535325455958909641398248280442339954027150048492860305179448983759856946828495114720852594021470966746326652404418262847913801684914426408977514055231040709969197438724443325791068351823199041715687635579060757781748225460915501264407537358998917423333472517293731320149110873786639245531857912404904697422242387208720179514647116881749223787423415991471317525572978306431835514963663656879486260338885730645105760253468781803592097994235407007410216993285030357711610861746266387603480326517468078581226375867896558143308406583836547711893524817393117661942279785982732301010069652891976892444780941291661187255958994202986437376935302780379968206955374114948538290489569950902478067772938453466558917073938260847728227175827703037457776276436723447524681908326761982415289400838275307570506087918526163850131570366345235686100376899246699331810014241973437492359942319173782916997783621994526886616593549356938472019326289176077297966499907577830992550915221249513380200433029186424139893687613569480405425826552284423071458336214470697008099559997002302732957298693809302595228000714430534450340838173497118561388151690676938923837953056349118081964894087763743406938770135063786021033066338445124197233740763084760878174980018247004304550020503749384044991096071593574377563683786816004686087522495148114026121858430285840690274274540174320547338184056922657082806476942551489750711751848278163281719738890468525367507183621887527003828327629684167716038814100719403725759630065526101051001539149338241660904738937664495820959743783526454697936208938381168339717649920397694270408666895995138617859381714272561697612064220976000790048809814568000820401521917787160193950403566235225254446233780093649903777845628222643030829507738431494980435594499697321623426924373271219851500912591838633621954799494030781282121333661832901228791914213429662777368686174176090279110229548126606014204109326578951861715656081083801921417536099172472167209824615385875104475202427237590860816464038652393903117438285710454297945712830775190703606503612010023360613306593778062274124858133583960462800295686981250635478962756840906531678374710943763887004886511745021720468624237886772052182295664949096332831010407333988927815516285001503583338418264631398039225407163135713376850643268120882857101582221192473067169106460652136854658898691671257843839677573295538507138717874826883110970866770722269868785981573634199425256402892432251185389099019806242247142765891026631682028733076643478871855438345534613298572591087731947115804453340007803322942766120046137075546421890023880687258150900823271439136920216786043948083807179567059112676483312974267915399465365777796410311495563185198041889190626336981850038417538353939783711606497701838600651393221319006375138048210387384406282858729965216485831677850788122001494331228395946340003709931304538009515807829049090004734830771065437447702368639848365890729922098877417972729701884066856240343635049481025478518096122903410935956064262271692584108134020467462027133231241963316676977088133541912101672554964139973361480990198481279244352733947339929188042409482270026298575902385046041270800550566253248796400562284900519418849931186927070545578013013710693051234297678016683578546891303625947794851583740775501236805311090501283546700925827795581970195672452391853525116907928495783211664550613207616999331461132396101189442217203262617301126156839227291619755090826818697878485561189084533298893129398608762714212243612251342103133626773079201678322440446896222441480497001177233944009910265006566204832150318241674840512420034435144715782596049395257032810304815359378871418897617657462154708421704118793519395819503940451582619595322609705200191645821004780512663889533220593272151688714149473196260673272521698166227289393959362697280737945642507895217991435763829411761776318491353951899526896425583791624143482778869882164912708208737920162740692331203598396603777079192192967088647805204049454091817133878516428447460022232916510355935600967595771441718286720463375833890777241868523757246866114298780893037874231712868254123567421460115605255736956126937778022012169850189041057898335296904513478311489419999419485378903563192035826946751295978161358910195726148818369510688418058326510900567328674452559170439066392636391709886526441717099775865379369229864365695252974674409089493106887154629678345566913139278762252229213780140967844804362464242345760138207608415674779732140349764537784692228231592263791090286922639051269897481142045208372807288102679015606868929556109584637406792181088457686592978473231138143903891092205392815612719712876438502432595602932577391197767757608538093699018361074939013119340467567128751265505887529088254035266954225160465011634894012045396449670564932249526017419946970888026974409535857286732568674310189526120856279814121878961088031864528368739319409101086761995300439777880966443746285645268926993473613545567118069482063543576640276069155899763451673280232840752247953440923624518192437293208092266210679014244366303963692817175582119416065028726185236505775812443112433943186877755599609224231892978108053161578355625659719145080731778705963924522138173958538368224195773008024868803726852785015564132722891459166798802166061221513406126534251906161328198915379076774079302549313718768190259090808878261776511561170854695925696284926142177753034606665937470861974870066514396194627261732355557441860525000298149652222168346060585536073991920777466168477862040544126294067407693309696077433682823955035607650054834901138548537617076673515428105700269693658342763246547923956099346269649115466402804493392183418646585508586901777589219218313758929821792074513765488486006236378457072671428941348564708451693289411213188671594835692390988668351926222065792536721549102489590936032868655512503192191328928493503236488604354042198944668805746807821736490651071048467975094215100247658405228258316721017830268329015044916969797556790283036787093563901724730157091095517492584066351293508549481879891372039478692228528178969141851501115091867148000846789330793431500477788409441013760796299848858756746644764136439687452203878425765178092871817065695904530118325803819971371169732939244053555696070314573178574807194461245743584664761562052008146595170263745495231313055203798238967768144662649799673261215937362151930601730748647587355298212684550906107774338503099936862387847204042858328030360774084385493765559834651635392450035406847174434438138375820613196759017606918315354128065132762016216017694259651394487772594094374331445484965935942171150601121843766521411744231564405595330509203832478560255124989020860573631329466528785832273158604339173717052589502148058500877114768147851365390139633941374557582936444016792029221061405062109397060706364981459494930238777856304025037879734011469691031594684502722449585223478551884606694910904070576189107908395571703097632880533018094606321189284422343373587915027986894986118510590108844751835839406116853761507152756608407065546628222220647047978931203675800901554978692839561491539571342649776315898317201491460644192561158246027671378192242027966219261376890742115614974450872173482585562546903063326866418981535329587062057070750482712153242758705838748078990582674475597881226261422326633889894933699015952692553158749376147257436055475696659550597733347077731095665379702027857949342432343925587978957049008823322116530576099605639077656795000173103189645905203802698913681948313984431966888012930623096078195444742019224634764460048116522201721627773581677494554435274988989093207748276991144112836218293245643649427537913120052658771896346569906677301649431850373642381151428513539467172235613150635511528004718752391028855267955005980888378129377538805078893975467195090656170625707769512420243810919069407718012891441787040793635404909350630339134947257694454206144895026076612463388923747774285647896679835432237644240939971476102854938068650044846702770007103062279869220153632454564466052349912825212385710161964293348334093252110823002143863897153360167027482091991156472839169790965169453251326432734023625031029727492577527789134505513878838457099458760639847254498851543851307163032689607735250934229391805009081252971275254955492448690059291723938886024990482451885698329545348139729777617317283041070787386767953040996408647763076211390823147890441831832749477325088194841701456268749023296359447473707928805543716181379011926067646103260247103567544239982733474613882321228624132283634814749089302870114642776423908540247257955952066404393503844973862376522930265365258940927290322943962854159261648761451936635394850276985761009188820669475025500212654512846415287108160461095507668250835579050436787381781337648523707515231131494910640249539736184416943865831593011765702309235388431694498030125485536851851009155923851411337343617131529366650012410343470394717880413377857002034410460618067543007153667152808982323143883346468361382505529500575360102575108311892151450945426597890259610089413691525959245928680911712905733486491891971604122260484600810151645253169406369671451114727117210398396713716280915967813317708764560954338846991752197689759184729065508008921138148733291850907165104787476999054644950414513965278694688885589358074150404204207567567545560733196643172416955133973787460253946064886783026521819081228787549590064420378724474607222667252846415042768589714132318713113782301068951295673496206740109956449575025584206901299767005162750044709065419159581841702573376158302086243939053802344675379201376519571171490516155926088125258974950470998114924582348728616074183860095055443241350238293371900916252185316503612148503563469724083598590101003093191461464966234339947471493698169917120554256119483769201663582201378864666734841635949738938097909754245557835019253749553720475120634823011947888980021892902726279978982487117259595853958915761837290911073243907644410317797746419738175741241080772358798210388884249991475687658206754262828958141951185738916208209997626823117448381882314794395140451210067999387221925651637069744414712195321957652454112810003659306911464198340724355733235275950417233811173278786324533004190896966189848558957394063802473386004920726190419226412885984884867104581681561519511150609523079933990458565180558756993603471013320080307034271224625354084691342736250570624576152673969032740305409653278546920075183223651550458195516307777303889454022348779192650741051061727957223305551001741615371268739980186309721903208398281053433157725053500315896854190128641048849214632119748159065071670832416050904970778044940565809008995552346289325396216819255383580045769823902244444259843948608148646181876395602187066726076661592070013987397710592708340135273534746717118402893542252676197920487075244327367398440718672527010696031465326572464915905855770045134101259319619210601824403875355001636621795806826210626953478168014145893736543165580442054337697858862030421493859693623990164403448038170766629581765009719012852739512988248218454088377960961804258326226094743404821301281584131348011529958861949669680067007404766013500853458159145753768553243148021425266470842640224502299085477678734473539741872394821157306193104395859296426564326708134545070731895443044105222131013537938332069414662696083823061422629117486105393997473011617530560646447602829636917533746858401341228397077131945746792906854575805593389467290280265925457132226170545723005329267944429058461077886700402434851107923128849820491881214639229807202277414341006489622564858047222406392286179103559205582010411354471092876844789678055676666664314294098909988142983679520118069403288508393288283072134928864419700217049419935371295281220479913948012442175286255231504746960927177052343604261755997890169816892462238546722011459541844119507302318416084561120357217711339472966811835386973317803227490150242977270052431100145742321501252714074993210189231198179440131081244483467152128552028766997672195803797902959058704930217926511309917994229337023312641600292480185411933558806950013790811126683605851329379215428575982397578012120933895021225520399993373135572196174516772504162226669564579674322188940408860316260187218378145585911095806948882077795067960663866478561602243225771018144117345607964920550657542243564970824527032509654378364443837340459458993965252049770902555922238902338720060670650203016098132362274728895964318851488948827002086505809042689148036931830143934297311343651810445146104301225396713188085859000356242092457845606106779806693938983479054255232401868398420705140255419128693270734825116053637043787914313392515167176091317617252286498962692453762413690243128364654407910097706339228770346168568998790317741121140312047265486703275784049967563563543555193565353702933395582617080668726413389937608644633503415809136600977974057434489152934770414099372594389687836553246657215894066108433479735463518862503487822099242015697381296954894265693334315549434683320832787303553668550881076636861475741270715210553531873189945514215016176408954691841456756212673449058341082879429493729433024171443644596291620687695162454499342528960264541109877338573860433679813335087587689644995778380717033009144017647750325416058406029913448784167178204934937376783359089906475082373343786353944097187454432879130182706455007685828657019553550507515464622273427697939987872109817037541135225850605250105916256468190096652658172025253872701487514934831633440330296975874088264600059498953588720369312796287133789794174435397630390402011602473439185363152938283650228579692657547100089263763559278534174369932318093456851805386216270313866084169570644587863137774770936862083054698560051017273258386852896204446896363220659182367160490436624411010158736042590690226538507422554035942390444668784927919877773659818165584131921483522192926987531452332303700073149681339735196846476093852391230876599106656029917326733032976031901860080610227995544745929236747745608428901586785807150988313472095804150289771259648534218505600125731131541543036827007953128221757127527127343871071866138279630818132702567642905234202258852221111431467765444220484773338908939787088456531563698205455307987496843954194576100302210306680769353206241217125259971792833654279538875610507470385706812784610539177907071727636538117819226466448571922212446976681114377091239850674421844983722216218425741147840686068085568978952755930374175487250399129920729596367521276062740476385847094530002769149940170343278437983115837570583280654604387281998279885665045927139283173453863443705859795150008762849699595880824630983937644568220716520957220097527010204674454883069443659717611859536641996292312572995149585677758752474150253364994312897698151439692304862139003830153221495620307974681984851044236167017887413954004957689253751874576701531307130549629330797579781836465734828823847216200688101538623322916159039136439362219209655328050227164546733450496553422725749529023854574959203795187279872100756083201777099721890060560868623361285996894851000833098937787897783200591216506594157303585509641456949357185571306207160992916463116175116806163586481122620349765750225433741877930616789486364188755346343218661074022440152004845066918282106921573132182487353302736953760834993784473069503167422432978435050482430685926316283956085698261184792716830133736572753199661182271930077848498654735453047502726307697680866570140383808500918100609815128018242048656491736785766032185860204632857370220564828200480867538424195897218683201038854781211962501525556365595402390614397084693290187478819945875988684956421502447427590881440635396642416167977423815012188038871027017190635813067608246197676366071017600081797491325267793252060169349676429048804978425988657917882993423291116400724592093236205131818230161417105864756473561474185849891194954795275198317739059031179377629930594830231527229042296843359221913463036958014021632132142357658582696098614676068732596330844227887541537593347006387264173309587941642911716653474514292656257342376220588197076801456911428954615762821290382788860425781804479462143605714537419376257758367525098656831685225133068531066594486927483485798875848175236461708250186559979851966685866161137550547664347104936636215872825820869185499971460984234065882802112080929966869619851552602338616643253414710907949322277027222307726253269295124920871446344085711469692050482612151756986963567092524221948973471730850551971135795595806405472498328948270651575469468159947490796484155345315231261102859265270006697778243387242586348510800045679470750475011901376568527004824997898706117713197358362302716927392528595744816968363290619366348937318675352426322317824137349943020484164763746725192080749734767139953249951903844088593588301362840812547725548525186441461633538835214458627022886874948747231102721241321401243549526991535169917214894774361691434187671623509653379920129996261972813466578116769603222764555521639059163611057330163346956440239361507048354441959874817852081737061234084711603633832523720447499294492963439678148472963903423577952847951482987895292267943224940686387650970265535882853255745528265897298378217938285505552129759394126495029673999083325343716231494406765277746558847930486116191767367595060343669794438937961107237404160848104272754882814813691497873632092978597209723722532292894838444658933467529195535325474192106347150508215757487941101334130306284942621408263580966637102728670181406590108329733135313543545584274258569106535918835273329185302018081961763625364069169622839854740056290102679194615809241933307429885213741894493940546588493476380240242421422251673676626405525275280386984521969071847485238587754363606421414993961491116102512606343652398763256174550538734283125336499055958479267274397958331255047536101583689325698597010064718012434624998942919913183843916519051561657356572409911314447846504902542493688652331261623634116959994793993223884117420894244755876600702565829597521546119072568063906054373162563973832221652498437449368726707042767910009748722537835446302758884219527615593375713062193316893884412585462575689581301598780051612934703872644835809012908774360374181366663688352131232831229223073186480408740730364839958721823274293276781715790700715876739596279819014255001363402574830484204104027946826651378932143787474242443044636282791618307206708264890502507325449339010850934090673320528656045614300761828480860501216759654363471888589091037243472064031954970203096262182759706606036583576211234999898749533185414075884712847773900044195770214624049112899020841415069045375506262283478590967852603019771930035119746327903136141028983499391981621366697348129529660191565353464270135319443801682104990115824046602408847675506155819678444236420616181380916563792864661135961533797847144824601823648159289200725785313136388129929085904070574658244605853117076779741437571071329035079887906219646167501865978951534016513051320295058423226902797627476454752454879797919214643651388487494297578416851472821940956630596041466878657526353358275757454404542409251496040393544273511530406008739517031996795723263079772618797427103669984424689262154036530697293057990954080385317714316414664629717907442780600434712820718095519913903563700562055552467732184391568216199227468123399937186408828570496342982937207757364577034849259438076725137218352164269940740105560331017835182073939784645300279799861920580198557343983600650303317554929319506974549231837578478091537659519607383907957735401467283673625077652450707026020643485506243604224282499414308610989410650369887755843361466979360815190870864377369357929058601335509278351976670847142669341790038012025476138848471454622812821576489570680144439186641291694419834657413107589265409335022058236433593267158644703279385686887867460784013575770489048877824190043966390881897108342640143332000816196242366111788678605051768335641811938802219232674404252343858481910428472723747011797921827724546616516611266055634666825459857528249089589063331248535413816845723491562108848969461456421163356486067005548847093018441418816943366803399384058401363251541900399142353347232426099752547343808997940796115324432841952144579868598660391401079337828071783278533311966654422418140659118821049586244447235824498696262650226029237059470454934777888308246140372274337150208575567362617580282825662281324495133141522811238576783701949170485370006509133578344819802223535956860089113256977901724744520311504634516155685257827303758061234939243265779619808239015975900718567690072971415557748421997097100897596067202278285470753603218234225938052582158228993294199554120156488643954856382348643514999964477153610060011428769642566481550383315007239703320403754969034972911378195714892099532156634195734118329696287141538503636871577624564573072341273082680593726772378805818012139366538435275433485712932124335830458994796376014028705960778054530013391344777396309847271959914899229149829066602953928747399408791866062346264871767321124860272487127519869919530089255745733286193844143624785108122694109572979619473286038610243617166858684957703964991239969609143237334410823964841690718967305939037920169443693584138861115701462411076269916851324462825152480716028117765857349012324799046165671898871207560988134061116301077578263913589133495883292816271464771093513759142577565068512710007811488056582388360708555717005506215381918779188632638798227904132414071967484370363177208793866628064558393889169499434859316135717370925419129718646371371665500383901968674533778353047017500589279252313953332472051724384929300879527241366559467821809024864169816175648527116008060329161718363285002117527866803240304767047643307485426385800574902765142451864386649107180583130422908313765330270087465293760258142094251467369848978369434661727382308577710387678084956844802817662757731035054678395106007300005076368162166892568849260045476395838293307811520566453642277475297795180423037382248277781963062686301856230660170314217926646597317091514922877368495142005097805774880354046912416821051812072657175901680367737764717280866430221736727254896021623356041743687557080016125946079495992264552499172210723874089765304679808553538327817042343933861614733771215187311270368747503032838310086895650394607408341256296604300167611150801556035776573330196978727095176186420932344305647172461511291509802321072241993360672598391334341808710794773170450326948289711631444953958627810014991885696331456308641292260063453099501788714049478058113541921956864744753597736412917935325585385698989946456277254970017441941389485657871860486420009205286838364171382567806512108805942285810930674438517438779513206243716664281020626346164174093482145494035972539765855056160751439204323593120078744740393305598150612247980637114426315910577756242286188760427148179909897593159288404073668919460450309343694701348739879134985168107899889270666516668049636414097398295289010852698880945131458072166315339661424057169506811141550503253708879117255785078783448453951943732630514797651628100017015268304305818641913763900558860681522768000726208041925151936547726134437760902932205286835422227370988948933730239141748248705576309268909692412624901945661931917731933084018466066884644016629283550662349480133925350851136655109435141613524534342807356212024192025467456216190176525516674274130421278134634726602004576888551855187112285185012015508587769309817581949816108700281145693889578609192371084696814622584206240679644593712614003580153511684117176579403028213611073276364073789028325110720238707233602620898192426395932433187803879458231974581649832822647204805616695644974758648362059223731773314322238569248815580960393333576131699073449946123367925616531509908435594538568474741378765298426031030635907167834349363859074230611817166289746987169990243431733633316468733704031108191060136655974856187694426439399439070971088418943116346157964906926109407705956389337572705835006709767645609261597019951630941318241201611422316078302892815741920753627264073173337311836441172309942797862049026198927238370295978690091404535439851752013554664422738125558746714633839193035178764373868667339760109584839852741013538819962975116602508117710263551781548790797098076226161017162136670004801344050184724853240823716184676389177959841007524825283146282845924365502393004247553706410513565757209231948596180489556561384100280140842969621037474327500821710828519240481514908827558218212324294143215438554088384393309552819180093599959842361182914476168975450093038097155199994772071487697197690800300806202586684509568525545656723066667271776039963757914618608373525331380100755965210030376296686628357434897191571757555377483717186727854134223058732887615619697046713403836296157126223242711183875219260545311502825677088590272378884462677372866408863930281785627171213312187300210854765988990130190881825043189568103811608325962437337805874494205602266316896667840823606630805475173106921293487032330532290270930512038022279002286732106829251005607687300644505260825963203337165626278175393562208335901317237533467165122280000866440218505843268681072269005172034781872340209429142059977590875908620773565830817598272856634410645224578592358741628408530916192938071251917620572054090819825641031622658415686078359373976064535413669449786367677105862966060363345461704750419505839230784966544445296419905838196564368274915886444493424820831401214687047627555163353521309018412908992015446651736798577831779502281991348771308008422123743390246463946887259111373293491466739213660560566305024047500782798762202977397406362530489532117609198697906509219488441256294897096680146867585772827606098133490701368696748658163625193170975459629799284672888386053010922290617527434961635505513998437116126378364076363956208457694070776147783431810131777373619092639713628595915804549558254454413480675135004861727457571606414271669377796780055131445775009674055915665515588413949428385575504248516490941033237587571196753513055591582259141248080859282803781924872797483896228681750837323000418482868852263046756222016832242638511152097416353934212762612466645248936993752647177593123216097591543252372621391937127925259309072898813565763706690263401015057705786994355499255512803086582947603415906935219103316091262655712249464839016533408147722283865470942802981493475439827749864854129164822372711131645779853533306387292989454144075597015794909711552096381028270795144737322484463266974561048699929422043052630656315488895591579491976688239239899601097414604876356534716988532136327575806352658781448468211742583380697283180974337930611937664528102916258807987346182268271110678403511489832681183284596807295736360899845353622193468350686983279201670110875020757612108280526661396605317608657629179086621808470769754155016324790906835968068011651108037708869408669817551860902783029198395249622248930283491690607999742964280021458895032004903115543525054926695377012740259776853327701183803400531926880105846325010317640608397116208595427759663971784590847830353984832077527807850138968540889298282350761417327232082127156177899048918871240502571854676213708301135671323070066251279980695136596465076076418893725842860263404553348617484276449905003016104055217646107100215083141500776990578891575310512534138491185391425598395245155486934077422233577914415557997246345329527852958765779914810053822852719375716938228152540326921639425656279369228646014277949065368497183820490522952836812329987487713804775603727038323763924041497811761033579620493734988085449932703437298605280337807928934300663711829311195955549590215088922565190823190808219916387615204775977128233371183750780853769526006850436965997336964792666613166086916079675800978037053805707645381947394479534654917249951152493308127334536532107018712662900976942015892247991323534814181523867712684738549214686532532482743475572087010651115994478320773431917829709719253956588547791885506465083412538405991472183414058115920450510592479890429566573020986562360911743370376817911181901904181494454488376600638110125756231791388438898883991835978831679456521760343989672448482763030589068130828896249431823205357091491245026915949130036454037631900145543737966849647733129300932097385860380361107563087588615115556806359850390637632505424035347508906840190465107202942889441136654602666183389145683633078421741632581413446593109855619331393448410162317130914362455737596278854850163703534514993714620743561457239983655487420835352448778932676368350661589716315511385621608267315672004152060124393093884696908091226855663672180929079312092911983344108858423520760201589340773063271938047737938865916860815950227227759789841651724895860497156554331195190988468947050490014728688255723509924254159716661264636628498377490086481849130923792197605885974161582762998635617201546672814058199224916519048669945315627765965007793056089340740109181773850963415044366772437851974386628809764790396476469312917221140888428840250891872000163826913901604272785001615749825696892210987871255846757144062889735301042739701073975214915402238435090443399785718460433264274442431911956332564546651057557318813453846966741640556323012680926967399074296858885002918196858615741144021173734953889444718627464052393734803465404902042465464297238096860156784527431535400552655088667261996851170159463190198413741647672539455350385310199278258247924160306079095103998390524876422196577604629784018711866270167003363201076517930409263616024966332623023897488304306842494152294877674802319962906752976360748337547446004067770994966632447372735296373587487728784980408475613548741038469956582140198842891229410571501206353920223760833555150778584672337271756691209798564663672097587573289286709987234221956558245001014061283233497518562411527096456229599492523876942177641168773420162071151294564734248052609038741106452571214132949791270021480692747589436022149128723366774196997774509826606443369088489246449381186049505926321719020356641128030604581504388685676375365038920379131324744143570667582616216837457882110575166688151272565106629121719215017546099803781795249709700568764643942760755472351731670310655824214009160075806707687490322269679530015267752095607597565119791884301466247728817012873326110827241032561542216871306699503766367640659340160263665656639158492161912047969246281726843632961401044441658355201693040240196600452684569007460939525954529553856062293931292284191470886319832842905079866904116437798485736411461958358998886313992637723773752549201534424490930329717927374849555246053222440467668324279261017876666677977840427070784711821401191131980702377021449650796647929134984425982016060855796364226367095044547491600196862737985845567020341615428641980086223296603330889283402920381448129856313377909625275563554037220130159810468590627397014149664855235424161089871939053787034248821444688597302747938278791229728963007322301292834009505996925272591744871716046584030990508356733305158815641018109934410656965166013563052632890344163236429908916614079542849648389793476062640591826078948845364979095837371344812152699385781481346274042217630328218261097778676315202114426665478924862146498772011168975727044439996154294538633777410944248671853528015088591311799819401175051171335397276783652652344996104594566143424337267714830081712266640563674348977513985314622921237566085700192589209005931216626477962617134905828093037366883746784420404619446238175999536783648827080698313910000005189662499750444095228567527319353113182366036561461483560555744161423966615030804533822891074075551319128156070195389793924279498318752730682141597547749222095274817525448117997652464700765194812610590249338055697742545605851155624499968576635354228450511449949371098607782094326949569024094898745219292758442011775737859204477938875874786618762447687426185928074809566527266017856984531387384317610389812517844564045738224200900168816190664533189351696487074490535301360672959324803574506594041633635408298049975986553233859234986825882411235626459712064082355780955961231336468925658629569613663438901379852187703075463141021420259507504842709546867464838085329527680651335129574102360963188203677246317700004307488366354278487801985866483670606069734224727152950196056549749722382388914628680319487055903606005468116416047201290618231043089435598853267637268608313792919345086717205338384246139725113835862266614941795492294356561220285765420860612248659720876631689679628401018966465264857268660414408304945506650024223706529452360018191553991414907910588626237296642729762221383803296481097955620546533096434991187573718227420476090857165092701849526338477481523347919861738785339359382575048735295563840174083063514769146830533392256818773596900596815573202879091710904246789270824320277111175558540021361083756337804334593341760524383562668664619074314358952492957001443232098346068402570160155127146519563101508657147793202399876919640801002082431810300814573645662251805902621893763433471427173705046432186966370683303552253767637924277915377560454965797942008854196603060942923222573714857870261783831869188516605417138558869306705920361583211644242904105719498529116310469591418273715972494018805665049289553253001226533820379891601663285607741348872983795082319281336190405357448927609875172978934767383799322567692843821571499554862368226477482412256515313683821685632947451768857772854145156756282689298674716641386556967533430727190182303617612763680813374451918087703520253880733429858093652756138568071840338502839710388606841949806238091974322651452414007598021222274145465530574208680587941134672112562847296166730800742778801431327235709856214117825921991516701449721204317532908440304358534431339067630726259799986302332406476644093604094063088406947914043165205079017587037802907192897321097873736980081683523684740972309658940396231130456750980096358591032067986632307921886920540863839670992761736553540276666724173883181436370546828194245233024790364203007149220272266213524296683628556643448433643760361990900372210170024647541224656321813678883941304436371433751213862735013891428151994808148775902509912016019021847824171976862086403359834730301268791321297013121801535229925299102200964697685251151623907795498749071186561816606253451504647108456467637198934943470355395576659808531130986153529987487338184455643923052526099906827004981241752742735998927706470252471706146896451702725869602813225149164442322069966452535988475300235557295100105942186345681174032562088767172500866432543271722626157149557276459261898508080953225539363393818809810764904770387772347507145386520391559137120929540066571197916664885305476199162696669236065519252187085951599415954531459643974552345311206939246411890651122276992339854686251103217354497683009262088800647605778050389292631219400202456333626913752677604156637122905639243594024058569951046277291689530811174444251142679544216023885280745829316003864456600928368942246772907005023019309939002194770132264847033514835907945689365962126075182465519076255543419868327627676572638092801947092592427417620236578830231159567960668691892383637069484253829695597583716312170121557974453943500171656100222989024812155253943426463313325539718939280112451693838239944074694881538618520020561441948252187437246064780806049851555355173647939844677615454575927226443071545757086655102687701534682847786343155245586911011832805317525844043940607408187669066549433638561537924932053104124122247423219186072754921080657240151472048140624002660908724669599041765213764362489684269926667741973646136243679606887916826172351007480744086703072618347977707948257549716919242807576241785830740340650054170745040711037793309245032963744780119802749809520162953033917053312810744567316809169529322326376964672956381594617745275267863613850672375257017308669684847600719240712177189605710939180653405545161290628092031509146094930578636043326705157000861927301350363825830516665602509073595185457200951146992537320753854755570839581239949811345272756258220310964086684024028609822959288758820887180746412969071682392110598783477435215456564485116759125912421796936967884046234287874765411216853561524383822880066441439007174015057075431973698017913318456689553710626212016378462426196788204743252282514166912760031518818530430905184285172457587465122821275596334020544417062818260587566397791474617424464556792055054260267991329840331563564970933467529878310114009376964597330729964628660144991240391453266888821260561318763714904337711769335691046298469206852550831593308507822977449912670831434751567347816432857618301884351473536981119498349825364248442341858672005160251660530975841827147315692523516586388547971217300996241442040153165640739570903292623304371717475705009169378956195900144509088791325381287507954736235083710774219520833237110767166095277389072350460423245326413643251330785770635705215418485457681384714992055893456239985874092018918553809492337940027619064156931132118082878744032808598385951109228103339476083137110377294789733605565520705685920139902617539562147575312055727161430701586429360428159128230970515255694822468793921542304787445919549611260425652693847797107867150976212574957794124154656669398953361409732839153333156157560180782732703316314909948683429358546340797607288118311604694270991292891767444094459784124338615875810908446550190128794481752517023445407730376832648037549336257160396897062345585160417449725866957165775084055106648701659570655395748245861633136313791508891417770374735989869503170152509792705015614348388317317747783562568827967915923422985736989385846369316205149247738520443229677519577330263764987307355141803273029672441786499871542519803854840726594845956995523638177052134363098578432602500974005854429030739165499570755917646087442817254531099902539208122224706380695266298122434407518007107221870919749658980264721209128342499882723775439192072460624940380226752290960613364087313736920426676560070141172968644640182163130237576269148663597355697029588306400936348066833582830044131815550266423001801840297859105426219255083180316519482067376664935331226644434346774513968240657196661575834741748303951956161578257923275692721815117224928044090861106254096749519083172104827391308543061827500575241369430666017803990171219311059261005681766134097779025483771179937802744833422544875278863273356131977427995331390333689534168491735154888336380685006086175760928297090977413398740710887813972254432412807757905928998102096218801218310061062133110344493529812870097835844357976350418697784377445108284500708395975017205393295244662566381119997521293054017020536072692220359462296024080401060201450429017769516837239985483769746583553924084063435182341696021360573097497173072095080927301671816739550102156058421744486898308082068016542514992792510857998355769233636810296037110067740673171085205093777583614780067590673732986195155062274932383137699787997396266960640313432810264068188835554133941330136851474780317854414180614127902125603280700107544960132787065348853348236209072775903001744722594832297737502309708662266942585146862468136156933691091856786077243337066687516739098865084386234002366825448175825897985823608203305563538243894287336662262288727798977696845344120546977530113079134561915468133230237833673152853894763197993742180122044155512764204252603216784730180442998832693199247872600928320294148425008550904028756990572953122416103279207004551897543954071797106604860250048827937799552374912317025340109391808430003295360519056916179324900688336640134732999330982707022618534443023846941016885829033807028057801381828239004599495301481852611481337363210663930933765172889601562156195056194037017357522271045986771534800860384649938024887804536220604033275256787583613207686591662683457795401966941652357326751383304867859498093451473228199105510417690880339771053801021287851634641753347022921983063196732069373926502385702086555137554699307511421080844857801171910048700183858149321515699793873799409917164964516804721201814767289564130391972769472805808982627131430251488535261241681662442934643923472627799954260081656837530715356570935566601446995076119961669354974402163408070575912705528430808693627024297151169424581211198864937887091947898550078160953934307898691859647404399883256458643384660168925341593573629907762820970116264307515181110379104913876458539875770905690149896465959670674072127551029422435359083799662141079132155648841331716639353311348167919828852753976464925465370622779354153770854750024235751131852988215566115930752767086524387512929980837083522825117050005685637927385144371669403213209676569553395547453036345040009391090750365280836060431808190491203382498941747491260801092582517404434806415731803765508922603737497977665775469935258166447060746184891466146848128705633366983860543453467010768788229206048444357534014998044239616110429982867309893890609576938132220172562761469869050635692809960333610266375178865725184142999177704175573698544758352238205577408130681514407688877662938385092567519828710921454175037608418384089895319908830322675503080958905663296117027994887209468809201833540072411871787667705060503363850885038542612859846000240102372551444492200269832089880039837055304926369115112894952295583209401029667696401212382820307458757002289608304554364336729707349961762956293678103460149623320747716181378954464828491087484535769046337798662704602657614046528103711184466262017329681523281113961619568049738195345635417181573218964903180965011888007368530811465585487613586569000827401441210565904499420551201353524446011849010836821184660583786066664635767331777138917105667307349113164795711539458148729096577213617276037940435080324651205872204036352036463210004547616611828085055577330196426234167605712491497622861262499293430003096090945819442522357648510134435974177525402843720747060392206263639538111422358481128403257439554192268560887378592825712330223173705113900540556371937599530856576317611105070342245434823623872056274567571966243278415362508152865513977411411643474280783525314872569210868026923612455274390894157983852695927016970734303305430448786603382250037903946230954736356917580157514163157761649671228735503954440564077327894021693947403992540935855952356991340631697182063891687290149847484614443591601596082207556997628143363569893258764399877761217168208640991427864777435574336057449592653142884318715585966069460587283110717632951406856778271939394494366180589950381863005557270335069467023895203076923689219872971697324401897829901550093093556220808895631019617124781433575745891951233525187747295615571502213100304089519491384187241573573985743480478490216216593383589215180246467101904172181857360340561701124173262459571362915080091191504749567579143457565480329888222416260760848415674000188534295234509262932703639810004786770305426895639052775241620640624259219430667884253480420922129721003303877599001831944606639942233818568274580542406852102921091278237367060805617094959874196669013211948792737750063143466777083254153667421649514278201226989231493906723501111200586972630233898648266815748823891927026561123197024232317859844594238695177262048587826196521359438677016390989324114840481800998532765464216282714852181691334192387036753580385929660269818027057376323484181116495179784617930386828855166148230813039949636262961157126609572009830667113335408722572095373560609245522959921999372755478532997911559158188364450343356146092434025551355169919570411535531628771517252663529857058836740445660153760740333635931797838749482139828543864352760831804284763956466335760176550322269056126071714856851130703283672333298675177011367603555161598485115256506051105511739262424960209300129050187607990657921509912605342934347430529245354015820405388663647866925928482225025687948861832108616878936842713336868706902861774201221943665586065430489529654913174527405642546376741017615207535729025264647661509075234841744057484255764739785733910054127063101364435322884498451000223630842322505627844170163087553054466240786110949421372057518032615835761973094438096412986333250939720528439494189896051121514759845434832810617402842727716190977168012664527341761363270769860567794180038468397644929514282160217577069202963883865073448753833545791524039274407718711528334649812181125472602050308292211625043279350886740131714693893663355982083481900895925124561235430607185858429280957489638725858902109194582424567718482592790698750671261297626493828879557864409013633878359349207954700940668506432357074677297573862921429471627774030158488102369930073501441546655492591372025798432987454353172509173964778500217625025138398316329939707739886978869150024953825560808611316408925906380924792932054710192370777590899251633537457710801917121923129352008156487995875750367049765479756265666156769614501414735588339018177247441626884607532127894154090185151540763371847971435103806355338814218154342922393364369562475614937093617079345729275429695407456298441516558025998888782638331710061553760336819444014486240933740096102547318933488300223569493115705617687088057959627232606513321740053123358858200183760344361929749405333201978661613918525749430455324182780187550020187678192389365128164573911155406759930326822521879186373350482297015043748320507014357247988435320461144238141662774635114581310599109324107939026438561704595785595501951444669864642197392413115015633871422937518134004211059542597824597592916490769107517235823487417043232656941539004072800680301076002436644512401072716532347694470229513958562604287089618856430211580419269378275734207180026719835074984445158192940972816007567748551771795473955421177646445407857765294310514950923910399848007917204064770864340292177292551216543384897875483791892487016958839118349980468472560108539669333500752941169767039735201719025392930337139795139544034131497698616225536270761728573791424734015490901593091225862110040693697228999161840473891861487212057479772467735819772028295936272746056155380586052084787451620396880428715599387067921915958865113025899852460460886904244827950480400118785795505587825745869007658606064159390924164971506327769382622493828693977642397416945706170089647985075827713818651246688055176405666011836849654717269997456175818199990699144227713308267085793591210168478313613004904964536233995260068584797862027204788109338268145147664176293796319514689349794398402975775013930582341099119540610424381786802926927535084260111202855957359088411185986027618076407725203166222097080816119125293205501422159443854350928217715238522633716442678662221996426632620915917693700560566728147283276615001067569167478985110681235822143003907994396410160276829904831328940387378670628931988849819192083552102644118639476771669461611001366086444965952857738381447318810774579718802475615559490780552815341382550598282464735700833451905955914383622248227853524026906195904908144552271712960586231353508625486731730811820418243828522711210957711012352319268136105387887989852974624150994392976634755208056573512613372914863884296090529574926646758440479308056773232064322443415586470552825970761041322168212150062100010538606992182377573741942385826688592803432800914017281636830065544227799410388284034469699268440310621313397371903471851249269278180051580381754420656188650633370685846127197764575570394411441125946223163698773082187397758613944115433861726498644095712914388284739029549435997240635119370369373422880231017334519696255878356716896233169733167050109452884717022391761016832542103740205005409056786061476271557585034577381024431365920582737012874063648980712886733163385718398510414310888307953844690203246090480914591502260821803514005895309072631557478632996635882780625265534573739810005267115566527838991855946495859471915672268670648505049232036759589775951006757326186135328449271723191553562405408907168790189538924053561761791045533503801944947486602444675728391691903527754184032902508756444796749276732460900981556691214633226034944094516897800157776976657579851577386168164970761193282120367370563597846354313038042162018216630625164665156148312739909273597412815641335811889282985022936228635632682276246770520165661155090151744147933515253219398369665170998739958514737692221690077808468479545980192148683740363484201070391643698513087931292381403505356478902747928948886653539833373468321129900849569274745718796727469821189397100663920265841897272124408533329263374031025431486008733256675264391996278507506838990987978134510517104144658827807782588742867814383326552232035952544774481570129713738722062742601217063379214118758197171772120368832661380758633857026759140222100287806065062992450396750601066781745388345232026185257229018941052271228676095998502140272670024037991130162573179883745928793648330740151999492253049952696018815484313184019689355590535566662267186968033672515047207693835365113035909862923938459259755229655229295726640759093588869453833657751292176483894903657495356198996201524215742933886158672562123532009976301761283065971562739979435881364137432084769384054005479319536946902313222070183782864190111123760870505100463277832099247877807631420981827380489135390003626800456045829573901317555192485343716194555337475612790913231734377911426969877415631647997070600283601514957271171885278814718455224828405334337256343227532258513413347043773825275826091306775255794683620620473804236905638396541531954190869266466427340683915602525109703473206228003822770884179373009881250335633164158056797116844684616127761964023076178852119259970267912954459175382906914726877290235484675196750502385525427641412443182957857873128078899795182430045807012826921918900532343141735588943579131611470355986024596668655018130584970291705136958292537500885396947681217618868396489375169852941759079794232621689552024665693736072122300727812202351747417453784965489851118959659803219423514850866681585425421022528794660162290349820793150029232388187827884025036642082661197586754807331754330090420323289252024132863955269362764522635048523973148883502710369288257064105413619080060114055688760282625553293572281400257946009760455312495630618663424250306425718604505463901884585818684569059527991406238280928148741422559664674593488615548536743670081020681967251424248539241217893353365656634996163833046022799647059007952943045361770674881649668184591232932529235327557924806445324389518395314569017904310385894915696373099709968835400522715037908510243841177165401157698855141623854570566343379358475472880663012455721831089341003895748046163533467882268666439660341914861865723652164653365564124820448233680259390154758639433848586438777585991380272063708596158075408928718110657168208216459491507039664115770460065389064331485411472455619533894122828059002534359587699765521993611813301324869436464940993148347323043745449077760122721273300657709443897164756859948172687832235114020840258598976616578746134803934764082465348075532615182148414780197405513917373584025781576259141192253139083569628565316807387722644027319649887237025656640472496291914325583588115428586889588918119829051748717396936665315226547516614576866932462120548726947579116664101527439262472803727358203812132532942284953780594115321758773235018317288354672660738960488540936411138295542137456805986062203833754513838401455059085520473749914184374895096542895934282864989659443159566634397028159216260219582686957181457982542760899052883290638521056047010757023320783064134388495425813005931942727010256837572386500815468079076117542364935490305361498859548566088427844202600999726116602076429270964473574492741715210523554038920904736187851280367357194931893887395899822441826238104624324626381543501059547929669932023753322527498794923291277968310480756374031155790920406612741529590899090760373265855226721739511871589162205547600334319505214637543984784850699524709157659405915859652086034970850545490253885780087026370487747816016280080173549534436352702974678643936550316892116969841442761818490086231852535576631148243759790410223785451363585722337162535198900525830548127863850837115731190339800896995235226890977296492153398428057485338904294836841458400053092298150847053659015695915581926154438069661028886223370846519454146871920693936775926302233022101506651507067810585605272327810574827193550089972903676030083347143736190887752478132949882433263158820099278403028935075179772793943131949278616244349175380021589374225791712008357271362821554531179928262555275744752966208287907886114392995541643073589334286990547946711395890022769930706429537976229581238938161345973022440210445318093912327752226439044940942994568756071833624362347332657089677688931138504775054366860972206756040148392132363543169421239459565704143594920350228604002114206667301514579451977627029188555259786421537838454348277253208773024133682399981039016552587374289988445663456594258235312815012873836237684514196552376965996005146619180436391192842894330121225624548289191073797874719033897848402355701303057885892686524960113728885266108934559682270694635084855522965460690090327210366802928842469303507492803123654559944089775164988982511880542504831368202971753712747330275440246040160946193557226136156830023256439456387128112056025468389473855241018057388945676245102776266159753461845249514888690263397968845769887088780363703039213249997151957146437567136071247912784841605209450020367463807722690913706879105774982828861774753014704934620103166524282228466335591384714114047330554478786725925093092907382898797012782536856924912923742746037716145023409451607618100819942855359758220305099365030164639951647381780489519251138953426746734971922833934753155397612931569423021760357625478004662447981216460112915017231099596578751607826710503663895457851244950148370010966762456800097972081619869373098847338544120446744911083597964759574099721263878686299886087125452500970356872130777957253837839605367130255635210631990810320530625926113813365450549172109470871726915166003544314618584113774472756414657523674025849376766674035063414894777347014202405675513163754503211335964471758479909244398047680602785550160723647777075381520113963587923032657921245580242522314024293614696308661645026317076302687032773735949167019131520748470787232450727182063627055176543460706555634608927025754237327710539202566165123760005554871466526583773005458105146701762493722206366742755434710070234670198620637202918475261421758309640881671253029498421386126978919310063103336440590485912649895178092356005582871794847766361433806146194875987203444986023154079477637563190767682855628320118717588959740645380703552646628442365188412208360549465638450120689603174881196401227832500213531777937291738161052251253727368319556102410368977223813506005573953709573936028594201592589976199213249999195575800628471167246330294079074112285414830941055322520278976239328307417776396621287426823020197237785439127403069964956415794614886037870178144327527436688938344607488800714563679901505590368687203587101827610421852390147117177553207999518717398629001688154059343787110589518505148023792117385219408830686392693886087784796720573800031992753533864768701025297630471484099397225739152387510383593112932916626184475805602870979415148244155988212110964394223854057254989156728049143653712224322268085656151129958586671936719526529224135120353968994543713256423287277616816058047491571641183216582479291634606276669395818995126587336090617771681054894609946457213932204857156508422065293840191979459512915208477706184922697003532005827462315499833164550919055041122119498433606539580186346577099671103962312021525593947217139962877040789305894191847153445551455233484210583948967396310567782229554613947838547541728677595522478114354506246420036557612161351707766954487052363128986203373072473119751423043187409416945462596374817736421680497048965155571238882490770920952709011260449744018774659623709046962579042906259936931166376616564262542937271899757939058908236244406141027773897444038656465622826060346594596300127398866716165593756706307933838807177164402139600242780138629404319053756055747144085700835197697090755929666097994786521497556736230050724197465920444633916256817272075898595549129984226393798489895593184136370644745732171584921198431625008697122410676770574142434653940590125155266740637257360811682711217365055715696418675370959410546481047578764411254801698317561214940602332379555547238401285745276601525818439314233289361740190550510781495271161806158104550918152681850106591971691855196789373561951648016553373595888602057661857009070065073495254392498577067221377206012799843488748893797808358630264996115462886231443347295738770198729896708357640556812514334409742543710325174032696064049527802740794323638371333477731364700351537864607734396651225070993017149868108336899193758573691104623214229784300666860340761476778545239149759555708527903465806306341060192160231999356905546667597090469025284445215449674209770180655607522216192364854106402047261513461421139792537195230520650927143103063144709039699527766037021264209319145899460123597966137559343400453839485696389869712910336839643330204034410915344104167086551245142030125262401193794536167388493157741255343283483171749227516044051577835113437675368516970057683076043027611855857767141297129518927639784660535178890635376265844872577538501097400379190783388980495875671583050414462699651446046482293769237362204315498447787938294616212142366255172442851618562035948356234759148085976914725491856919324783174478501824341058856616545814899725961836084102992078020109430030063273630915313860921948153360140888594660069155870248093703293879239675039062755118695037186553828538094668431791432623138618976244908240170569032152670770152202497722071639044288883293106602440739179111768868494831971761630268726374865604722736370137281902394982705248418159858937307344951896067479154993192451721719859380409244909728988499151114179428225972204220799969647604600206648482779118005924771587972151969003352030232910605177546142054919720128354250847159138556151715103140621977169740511139048136981201674864181628095002044726809106008344822160547546625702821355195820185694181734631044212418859649501747086150783673977674593592444870855271461104520331582281517147133204264595702308250257263789750655113997538817626690657091044353184810593920109755397590298489992683971305110223432921659524666430263826800735490655611499226087912461545794146510913773877963477954918874396448337275061340993586665020332120939296204581130520579803090349712051226066958353971541786523867763025812471746426411696379128224027603448948370066814935569149356397354496917501524855986071658809814455103113253008917577834237581773475530086054354279068463460889534135011028823671420303196751544030139451835408846678304240626554629252784728445184207584109844651714647480001689809941690144672056259658643697848851447103228552921574936311888226860356186293934430004180323321039077687456079626939903840871706051993973500323603396030995482185767243860575004107157228049988293278282825722986179323637613474512814203166488216367269813952482634373590756635310956078744670718100321238403601617267865043315326151779884518568613020830912795902213028692138755475009053346247581092080504241031959190637983210932286589201091350757415001240865443971200168221256970267490097514290646968313151775309729553306178618867937148611756858502494580537697789832416579936860854635029455224534829769330271737543424610315790506242194942084584508765831336539087314418429569564107311040866984205486851365201569108058141718643479177624028565092834239848850816578918124965852191004414001536032052009595482174747950318277190896006652832350108836538320147261550888865796934069434567513750263399237560496228526139581626446365298242150449253509691329257675367478855063154667434019734924931122583006982085622793935672728526946048664326944255711645010323763590796738060675636642393846183400654838190528462253546691956707163124076101031691729514989884891934447959972609602552940566471879100968039403444583939591579226733278317946821080104570587739316189852252127841743082010408555065255726981688723418204007330033584457660523449067782776619498863232319744996219165126161642605501101042502452099967349090325413288438913302056690370396377044469337776762154926970861063286102235414609492625954091802179659325068182463813484585294110086311397861602717898450630096024185717837665212250858837441619811285071047673293851906757968255165621882525259905738640489077498290267330599012232730133014171664810983195008302104238962311637037986810638819110332103776797136421803182233374694927688787777778664821399029373261247250016451827550225897060996601676920908105773953563423412131233856152756678363878387267777297450498243057373097740996565932117300533910934118372273687540916598472212471246935714918931243758877027633451014090794114132047914485942287954814895845093841858246216897429216099066008765790338139474820929626246617719213536165620815056093059314239089950258770382727730457474210639074443402081433340868572892540378254715578306204789429351099729762262925602207639286530811058492911243705445950931831860805306819551108764906892606893757556827104505842050515752260563174734998981435787199977470022581601487025339260379980413011924615608803251148522785514254225212620590184393668262442222997301462186072774705935904186897535137035569936730762490378201028369668124171000434121667131497536149365585405795654359563853288242161137937539504149853415860192646032767854585815933711768511142511048264117904215211625011299723819001934315022952938124935575326424336911345309400839184060441389221579040848614615037990368349603935520077495777643216350379423065711314655157628909366250050065119195783338827768999475779576806924226610342140394106520386139339619805929446169783271407077218771669969571232689227613184975231675471750175898751013737552150621254809575267034667417110095910167439549416497654668056574425030384304482023306606561844677529565030986219123772699368076871624644269621506099041890656138763855713332762150793061134999336592172114261812858857853052801384808354690574686363021473771904965249472971646112833362245971609018112477230967897471995834951055993852491039891953465275458530124696407678025051703097740354035377820201394805364689525629948189405060777130878965595334437140036704663084400340811639026049916149129909139315676147825459430521776186984985486700121271523552724803594366711394636764877975870768402139663251467930858623080270484309079641242402201286582875078742489350102831102736964181634704427296716603178359791142553306334268104363391882198116738064666129685671015045786148717607780687794969969028803307428719008400749952044571580326951904124703473647239182439213730870630746942822934559857329657573580614452165176854944734399009454121707470710282659630045579823541542156781011668443395015935514376699872181696695118682293188422284195397238422598697587739471023736536363644665145601297518320712762094386621286557483383634512456863803944798266548923419701093254595477966596281325960632809994385610821208486083080704959768285456992903435635662239268074778046141676004990186591222003503514221910255349002456997656973442322804557229633625311304286134906958173854312471631718592368437099066519497002443723174635451985871768594970732824763164440993243814140212543321273026763445366841170205149571889156506873782157078323195617070405760864528266377549058875743132883824935508596947433980534157611248483047065754175209986532213134013045351760847794153471076332497019093732126623915226603884744995840207463660641400328326479558554234965684487501748292523712761254129286289095720823227164477148675715712289066623877620060428719500287742760380638606242890095433775813500908001558140705356532928986856672112056986754477402596121589112672958776897687741782056928687240471475949809334439218234706740766902584770020176559350742818097951034772431402920698207811883673158099319957522803402852016468834838496909092787222568675660779514325945380942931718228847713910922424486411877128847913092458068840153765669690446812868063125279292283752208530470404801461054547438958724148017252411011593238568848959247150279803070445165886879952162853476545982722311933096855357791264710576187420778699436648553225491909552506554794463909757417273583585596519571117683302071263965073566904623132608437073974191025440011951842432737035763774634696740947407970253162650846692111297140334661078511659999514540603626647954291355398519302838628838003157268187567178373136211428334178630018352798731176537939410552716060421329902326353306217606709223886849913726088139782522041980160749613299892494356209027375718578787562612226195214484991197105993697298752570404190998439090135833235113961817787177133170095764876955611563383643099679647061197092857338729599267418301103901226326659511181416806085994912876779448873352542975065718801091962653254272769094687816294992517037916918429147886743545282992987898606733764001850351011785694722192401150183839801822362508367583052460011383416520067610207711519413800614162891014286260155441107134681705440296091110742785065037103231371900298266931753731240118739546873920567659361859463868429428363577644218822679723157230520671832721211128969001594558822723637271290546377168776713963609574203038923735052056310549431860229312281888728794215309166900204970134506192957544704371270428242852882368633124858582344480682032098621553196683619047832705871796162379423436093895599747901598463939305457142768670137421399582538979475094126830368701978722189294697474393634110537498774936836925639369147692907164807098612912248986511513308142740850433020804816635747304669166947867519737857726342824019429244305761817277931515811579589291510575380658311780698208691217489281595527774234624550935023255418821710483757192466165802738658547067331450699561259886958339011588539301172731092517244640534408647731024359545108960444415530907974356804152436044349787436108195536441188915217472166746401513130231105219800860543114509785755001927260487488025834561920260903463855245796268576917533131422356414935995444083039256541999904921076907134170889225233766592939152973099480764302855046329538266416431942926751313416414044605737033887865311113123378640332527969784543359470941186575622720378135539933385276102189279825588629047895200940271316691683944045838110105256792520622947259371774286596850796235190363877649097649424852595600947639134970346270973504470909474890089404159287457389614123760917092711744220655267927956322911785471387447474963155794109505345305446750505212031483874269142761022353470524562338417487864299917389415348272081644128236530736846498769490273419960867849785438732971283208544589501363020137183588130035203385162177885828545049882137476224187665013893168472297187520600597811479188798657733647927532525476940187776626009293519300315969266126458521209530233907370351062390429116073391314066291169702447176611192454681421682928895643078091995461601918574138552733477883001591591934377921285443789856086045999483249043900061805096832154902708058941647615227388924566329062223962698841481160298964974353420323263798636056696347055693006237576281874455076986053493079128465122545530195751663865266460702528910200487565708793917754778395594143604654251442665060595067954830226966003032780373930692116080358841316770156820781917984965248132610793330191956898000563287090548648793856041012027537660203384035444852304110412570110394865860213934898366713315762659155936147586723715654419109881086411094943724467600093900232680154307359035382312953139352727498595935380916383129092539075226198670244363967650048246833403582438597190024492187454711643739832109023769710158450375979346595910324459321086413921066202405163974797851881334119942228587262920906349833442848454777889916843644555243680770257249115747334380816857848437729152687684065348071516295135662948445562235323882628422416970795044842110939408198421430061210155536356095929755884242374370178612641076016663918790533896655903187180360271666134582101464673039604311483609627153325846196102728396157029112440885972696671919268095925366711283021853802258012157458366059915161125613897614643506235341497162919842273362274187679124330035188061765842796389011010860416578505733792307335912087763187610629578596264748358164594663667018100718467891641085318645721425730146025481007748211350130066216084653460210832319718198608195521782535785095540803832201552256343340407694637549367670681977809697363335223384255304476417469658619407891589915319709347182937954845446913112203675804151539066782504020293726244340046948602880776861697110034294999432370305421621645791592072316828573512085656807262730376949019635514356574876895757526543989523617860154374906664731469904403681263025510868916423145380380572668052947592571393698913338250325195123726755706653081727234106774770254936687198328085702211584157458737353130759807134078688214012983697350233217673086407313500735777686352448299490343156425125435665978158682131465541122550704666076633005136203305355278805805859081462342827272096702464735389221291460170381179418810232603830632847556118072332182683095001385252887581545702879656459141610609260797021165893932099623267833995228723739836571938670747901243681883419766873690723581559998508328844368942883479802866811946323914493088194526171520935220944784470314772421280746309254882826518681011688994343703060042081645867764476589975645560410011559385967293791958693505989893402548037302761427492730566241358546183767000650551166231775887359518260420373837263113090291365330380868666096076207058964442567240231204262902276577024534086949930841417373982885970776473621107275294200047687093048543462735448846830245315404842172788689992447731937272021560513220826285402955938192500143900073558540896043867872760029946891355412625246891003900666258305987618200034982339910280807303486406854994156727386904506971498392904375487456582455234082734239112251484818455987466146323548814023118397241892121822155551123582071149670704609426617812523203932170627283165647993249198094978349938871054536370762918076929096784217775051090944967033659987351179435380272574777903208883397931016984610936064755435451205678473324516331783548076406772336590544984938052816723951723868649002698346937063463702613663369089728573874446587733797205820312669643182767634378900473211842322474055289152601226292030557218632704551524972010846893505068751279197223276802413143478974039656800897174522366822838445438523400551495678440561596965841679795790997084771542201802603184926790414085961766757623993076920953971046858998924307318711224021048047274844689054465839986221187044066329835363892113171909699101610722023473291459636362374568832983651290020880068550255890548433644448982217068769317015909617472070274792807149049238849868351833474986638567592019040905600582908101738445957017226829633263861271614052286616834954873282567979976528834222456910272565463492559048007276833411272007720697222218147902387901667755862691500595057673711227648440182739305696642530376601338887008466954956000340776970988395048700411050429208741831054677092755849092614493260694971861128231408359903715164367575703638393685405452237689237183037770088667473402824847252935285319962428665858919048929459164529859909393293421638832689049315154750596846815869012593418454381373860201475345524972836174371263318580043065800885983727545645347508371421634863039235660554020600604727025453560052822564112285859169814456210136311564695748659244296567482566977647214533420179603255384116412101114037888925667894388202429245193377862609000245059166473347165416318123528934794420208301602089731702364441786835118130437266861618411536825235628030398579605102306328446444980259396426037745410304029940833568614763340083714912532118331280739587220250912826596157087472019089004538320828914784692994794114887005847522185009558251782097189949201807580050132723141982630817005581506054640819595788623088353775162885995529732888547537681948626014066778182368453733024256139800614578060913461603604007574684752315720085274949400889550895154882790953145336427742977201218095534807856494395730939839560140430384328067175772436312019663647154258549185902458863245440014490592056543010637527033132828673149060543671240156757331322657910165293442506577600427096478116345842721241670611549320238494521382343241054184264300431394548962663064261267185825328366934493188961420361562737815483186507704046004924799194223076663559310523714320216669716990304250570941273473385519016382670890214265777714299173096743033156525672301343361928361626132891748795683285532798905980292193849155926999159139070507841676088702144140992221124970588177140297643075455642511894806043661494665594831274957933900725623400860097077337729880795894573186992446025632186707057273227669321568629612957695501394029614396696049865298346287653915778936368499865086923814177216195437074290262787275153409841117393080604712818091739173621133172975033958120077028726309068541211717170063086847383105439640963769504273677230399132827769704484272571719876611693237534439017946799412408932989023281471891706245303148423962496328527232283106351750223450380844919873903262375312450102579955809095798623825798584239647251333807017417309154042344252110031484855352102827261882049029837461748574419659546332146732032943179594512701827276413765693152596825881286345845647698184467165680149580928931420489287723101754178878339481956681186435480674273492468614362233275210805805991634629316102614642925058750219314684123721814382207459006790701591600040257357540239256346585020315207934278322661666806656434382893767070368837938139352162780841882915133588015123192228966610560905597237772687701849274176595090630242480437149506789280963724595287651199566439350222969648965037924650156374455535663413439393340905565452773937797720513021417464032187999934518840334388416673753784481911983843242728225104124478138104296979981670397225051764217336509982119296661281812534406795973836475264763268661477910538238280799453748660073032428351649290155980511484631834310881143623142836444160734198759224886240822940834156056817167745963229734690071209577343416054092980655289408629271944852202691383512123056973772124243772490977431788473079920580345316160664156167055007801964361357046904129231967572367485655420434443075327276500764095291577229406148898342226451029608907606509094014266830531561023033014447976308990084146527619713746256769571553213375410603574956372357208230359934449530465803885510466177607293535293523433762877504744582329666345848566911473116653602400446132992496797649503876520412337664104750274654625340193042242377035804606275792996948470867304844859061830155452595994583250315577491006078066806371772727273750073010403831683571052571728613882346835373485556387432889323280943772366774304943288284417738238092056396462103338495561501998687060353535245664013932852274783855348014079736250373648426319949981833562063613602343615028755497874167509691434826315998068916601487055697253722693537595297031259036139756328111370426893292727742513173773563627122293565980321480214935481930486053116637448162210424822922494957358009816687658862321818522223590646483209686083159020027554422811646957139218800180191388996491235984065234844279399186480018480888493848796129057069642651587851284172804940060628931136565628820381628043075747973753373072083395314024901755436487398828330787864687385690500002728213693574761124884423006458187710831959776599761886217008142111872750423054129826143267366487908767454439413316993982491611090229943592281285849310565081376663521218961905815887910277868993013936265958581977853828567595365567171935924002529930210511374681128268823192044213361468540822085566969524578573774991798130034278344765430210750928675959220538132919949430247525382562549217772064841540572468296833375260329225886520406535710980680914999730051885311126382200365029545883334054218182287697047841164631708332521428010333947141104275890548252567926364534425082302517937006758556196685899618892596534785232531877764756766832181097000575271621837559365050204366915048917326637940896884512805012492909850549624661770839986807064678104509120566212247803840873710927189571792017381087671017875239876911464236479980075464995316204649490797259331568394550697759257826993584992535784153582729262473266620959404986897179253344064961030342931331336123611894202802212619898141889525359507496041135808375083566987923002981189911411084739507672525222532748944439255921288112273362964394180302615163508507714713824107746850195833326020462463767298860359269137811912819322464048510325100273513929409931541248140114036472756583380279197437855184733220919140027737553849773334890594579819320634376635055212656367397737320025731589353895767726007072835915745492295508755732946889181424650603547049095993988954269134454775776906101839721681734556701920313799246520189577070055059244435573536192624768329857493769132388817000206720632717044173028700484683457578798490948676343191721938181967954097716896484009462787985348884752276258762969912880241685142252870576156499182534908771352432817407956843823446102578019371100404960317592356415637767820823160056276966750726445825769520647956550499521594053075494428307362885464295638185869220667434387931472153780855619996643101560047048469070974925662166220471540473331146336636566775870481962894015775519313405644969852519438658030030359865149441889890905366982766005207736084584422911776801435251189115104268207959423414926344345920464860431352970443132565221099654946792634003218874453242844902057880763007686623360191381250293677365447846099689628664298983502820201590460770194572080825444150629446556766625462835334923189159366288812591323559389948266146050615217354448941523588108165684404854331402339731869988704756953435928707429026149915418132070349866593577981873640634645824414963396355928900883989516236354652695235861779156946982607142259122509523358690247244697178263999144253425056400404256699164828209472026608614934178300526111873965109187462404687965998519123609872430711179844325256228518106756663969660407589620566417543949370122421609538508634394330457722342228060201831207098243914925104479978133556977022751152974075561553544086437329810556559278263980946205859423876356225105439823253985002471373196141031703253171805019689691673541301620523811283724073908450564296140677456324204247450791561292572893771487927669035572438316062425485575471526956150615597398130658658984114578384138945394171796059200201474437654572702590670601060185937430511248162271754219492338391415592177610153101727317325677589816233611418359877288723358128860988236897386224578263118516376262666784599845080745127024802200014160518483852259012397089593558723123419707615618661637471261892077536638874361128354385861246076534644045937235664596000464659035380260436270328889164026187520233115815547181146728438951460908281512295399761230882703329015471828284976535423878986464518357688420386463163096895906201618848826306347278372847521059483043787870584451339548303797737933260748454366571071840797902883974074738721570103811852174488439598186582315993299448481691821679410024760348655028776228619305254491789083897233698652889374208896368424352352976571948345558119242775822500979121942598710936200707831273303056203407095590392685225775069147834535574228745122312860287471208560580567648730765928855576937774239974616468887889591192690681880533958126890794377523893678185522499898988197516809142906215964684591739509986893267707432988217515534272822912513408726630303360937242838063685201388833982140791936292359640880389571225217552781202086422433338719416876503666737183252682265967028143783805492609100429993406368335541766073916337701219963329217420664608138641251744761117574697274882164556896389360103714212410550383582589399608753536487699927392450434796371540111353648044806082195820081933675017509832681585589122684219401118916257960262958008603521372493958493949278366882118484764640981731047049556506318362328487664107629958789034088509842762898463207274651950088183416923170503339036297245441890951611124159041297562685081890855658921096944303762272421892114229528974673077024788376090888614522308208136825869543502975828444350984699878739136986564855388606994510642234112455586062553187795624048453671199909311282989528950015311069638399104283027979066539809935911368709402759655302698771927119746232985714420655555117637633795227850017035088708189543000025184768848584355055142057682401418817855862119650281225516079535263051176058610079830838463366046195883054307483757938834832148881977875582207611223678685324198652444349825421929656446026305401424179425642418168532152830130264160459034663535566345557459330168343200267431631739617017967858448977663376782485785644400017833661704416566145064923937641939212406271867059951116088153852908031532463499154631477473924273320645670026936047874804123406869652565973474411573186427800781276475810986419714187256633483950218447883040035800020085167758774873507367331760562844033555272713616724251993983449882438968138024162351400037741888878198827653798169013866019407909632667727605961281238679361680099105308742176466592470995876674272149869551268570841510487338313815923204375448980686551600761179400545780169142076253684410227655458802870445523924950722444158295339661057402973995319175259951768803308068522648738227462451044699990697369935079611043439406772353689662684654475270485012784657256542339578570313216481884227079507216622839063175797260946129811300400504333687802669720260226573317041749495916669747497385217841287580771716154440814663901339468461460963480413348772425596844019737013052257093652709705152515158741750508956616782114195835657378771256595383912009235883879165638589832621532837398504150870596842259269289778420442028258945514380601211052771554790685152858572700913624073745289039766555696070491334854568356961529996427467955848129562073659406653006239072791427584391507998440453913724005698398108784911326898975499378179369726800347524760780222639842271813515625408502521257733577069136113678552147237886892526441692798944984478124990865977327730998302888005948141522553218811058656078563280194850742746725381894733972492484540774818610891512266795130854682504170206221280495427159631433414036256732676375861849407450631683497666355808316189750948519336708684413198862730566180644213870457081343947557115489294836053573953953221118512766538659667082972227284108603508216147133288457989215258400704655586858214758965424974437560415989182810478170592672869915377536742548077508604585743457322816699317364989668226115796761436424581264052051123222974145332837221346905072789003264408958662338402021733973725757183035217184219874922229034986687775171669941666119546244055861764143760775806417183184287543802985028252714427838323854430525593702515669178937774133795586338058266382954211404951921502213778144088362987862697960460567562400097374123500638219859404335156717466225802431671679091512746852136247326248202130222670801546046202781130389751891080799103576435825726905426010649263117742964112526901744014936933655532386650284119014816635859950119787878697341537471715680358907600534958642384234673152932014003690113405340066967948356854707096501615185508892833478454846396192054755381192921678304967911500818073567256688681942123690292497529432041666226116532058342377150426736341246092017029295983452481952032330384363068252194784831181858900697344041125945707596074249997175837254910361134571741955272209590091991226444345621581554191074169718070140544700498563646348393661137279781020313700430849590502271437928574234738074732924733488017097889684240564724540145277111389714153292404556774713963877738714397440736374003331514936608160415236096061006187361475645150323629386368115585822656610779408768225030581316583773966303866030953126149953257549853938308016545628375020385408506523889666323282390194662831545848111041091730260107656460170184013250444892600781080363480715250703315966492596476749846094354714007580913559973004325611323007405483635885911260238244233478155128984658222649153308496464645612808847900950597701514538660212377792779523325718819927548181716256639642646053455634494785138850791449454868276845712571803301375662783933842207234597457759964450628595007868549506874855755312761332931644703625131173826900577238834565759328156846117807127382492776439646832959001551848221221101555950387256849465159147178326929992224312074573212414205211276551343400536698592941546293350000847309721133761798018284492822948580198334480186824639923408507178323799591457184616077948035658828362950160697537464756232131514717105572060148458790350566782123047812698680538359841043663192818699826265280141608555191147662726100439594727886594945584092345114410780245433476055041497991172967110370539950855310590899984552065270268557480668986450705150703355612422383157940367005271114869445440379817636310383409375336047724262022907536492932423983838806829980553503801203031967724173226923404861511135589845022014496618401260299303737638275089586710718968869134102784489258098660467398510089921992310345002300396904418273597557701909879315799074914017694030280015041257810963382552810082651128745989995189225390495186232089164517885960897902831203824704295925959690913204022871855067476335850447526399318716995084299139823397221826266983217838406612405762831781405637400261601814162470330634448799339356650597704481769028792231263135744714617395855588130418464541610130305753831777570491175923600572005637710292780714977610550380443380383071979746350389753608316724583922637184281100383712265933762751363965403042013531705146424106649085336632923551114718488112206865732175315933883084466877174745097176406733057768624382569999914975386758559847081085560662668059392666101176316741614533092092943770185856574057919186805663368623072937414501673890994244572057280559061532067130419031075018964449980030963631495476049520546686710020100078565747561981784219832742321687277309319478060224474469405418138486365661510003528200567720526440366002079792133328084362793689915070401345365573943310232996001615385215359469222680633063820278324055848898088098727995916955627457803938945164022025459194011858062419646286473498085498051498999342883035173379810383131278740557020405567317208225114979838740701169119010016405309515653245391439641416074628150600661747598302346819939343498782845403939991862629986618006151621720295714988461930572869931084087177545335704392493680708999594599063414715564297777028073062579047169139433029182421351711864993220585181079969272778290382055742660589594205319475031324751933127042276900031224878409689717432575402869259405997875262774438155754658195500177615127793106774604720217076559546206064176871110995153591089983200986098619600759378650793916361924988881243606679789789102049102207946689166293084779165684578492957147778556375198194470650040007754750331757858628074118615586518571756029391031190034345245619376253736273029189828731315220853639265037370619651637841229416918810705178595079833339553411482062122921972096943302492861400781514155919843078639703169694228119920939990787649448454333416789969300389479801239439327507096412061976206012750282270293004161041587470893959040698511317431962346048069546813800818236704666050285439434009896726505099614471872957031440087029042630637259753123259859163692237345011995688782799893127176241069665050970917093339947868376883828764218881673401599501311512969944392989631708066968318778599520929576607268349739887942449566928055222275842063277532003918757786356548919056710742264765062199194920392864373126197334641380626711274470681614531351254606898259729016244173548805160502120761652211445701564432234427328638974563839335660649211810727362449725804265846789284082223483690025239287527123281418915830153673581160921797333551313855111626006005196021584102635884854856031594408865854203649441588410303047534848011705389703395392600841599627697337739874128529166763771606879659571399258993184262659632520914058110787604261192937214748062604508954580917826677706612688512097414092346539136446419069435273142286671570381863597034130447087992518835440202786722038375806235673089278498346654189821943704903109239362926339938261256477548160659429397692253873003795102339788120405033288389363812326551201442968424804763627381355731033626730115300018783279768608823505737949705727266894531149616714980166225509751103754513102068682538606327147877770346646043192406332226280414267268183856079272997001707363332166571663261763620901543269005067532294274603487465966312382674032449403608727891896708269969472696204611567668453755922287136661181103386598424234654208264262684623962891993120711948282117521422634561875949609492216345563593308145740569480443859810240718793427416626154358323978138658643670149297282952088160399196620978509282033983100117489119235490162523800742268622256438427501267906872008337366419556218389837780012782921304132602712072287698633382920589039863394526825744054614715455992416106457167559730666787818249994714021608889596821219029806568303268418729011527332577466397280092225441733518721245174411744520631032678596643680789510446078038755249254247802626350395873013828448999419657788846768660995849274597759411002368251135857095192329622230062863013836282115332573989119074779918141793937463422433039491484259282589823178069083718276087082428924300574420584319332954290437576755162871052063378701705665923719998666818159627239038716544395166248948250410422477943272420504492292906019637878335907232032805658088566251440354962882316177397028761915422671050768917660517216960249980252307659825439691233240638304319794870892533902404685450882922478834142577674515659941454130252628841586205626274801030629500073109409773577799380501122671288614909408869782989268131526515509456015833957888907392523593727296146713672218777338740487037530845091130462520329029185262484390548537443521487847268276811664166508716212556316137627030799824604861698684065419964139410950664060505010826407500786165027204145887272769183763527139287936047665591720187822237016559743449054259936268581450104134633581142027867956693551874433260686931967657072821218979415340538434837535933791612336932774923527911909222528936160711259798341287955000075458789601925870020603742565309382938523994467279940548503779875453834374883017775577480835066380492190432621176357513813633324641470721114169444035490170572654246795284047635025474552282172672552912854777081476276219645729720348699250072885915992427249040778131790257607526191536871064953479498868061813737212989141918746465252950240394756979518754484273443713171618770658933925836895090139971046551629388486199862315399411781840787610955782391774658413992188393844532554497766607492501042097983634785469338564171092959446198626412513437350719334949462215589463405150745489724186280679234216113847602231965831624161039394423776335345166518802167134724501340258256220035369195937916764121800556641761461428302643515809791155641228686501490948051650530068114213805763445949220979051286506718416583615362071809247286309833180395772893656464269134013337410048940310668291531721596270388050536046407570639983200037249665896787137423444176888952033641122816561163295551987419551358108011513830054673769897853231929195724958148874554267365975907674584426798273942047911895603608177589216620983897934585780662999170400033241737991272336109382351178007062216387110891024127851704957277119235791913049124378544899777997904131399975069446244002397720182249439096301908816697507386538546660506843164327913434026428089850117039003449333442847540112843611095825030460306087973369185506552212628377514529067342201561763485943116203157986972237600102919006404113401456181702832073291148437136665335519139457827255435004082709730724698301725977388030451456967081114034856926556714935509922452926028602296977524011921107757598180742975612218850867911053599589576461000988332472508299762628627381126419723866339898332867207290338015226340720236872537547634646317249116301760463195565819329108535820580941849252847400258284845217297914591801545023404418830108716122299065859507552414659332077539695700477352378352129836591212236253795760549897340858401279725764895168062769971119414831238190848476292141148178089669077404656590396620763040739830499796687774242342518355249528809796317772273049822441284029205735838301614650782337335399150722922325793170635242637818499057869997762604827771294699963955578474485189696810841778235860036848105211155661699088421146227511053283006586381352609478632265533948161913369729254166123126687841640770252952579589784263335643846158499765313689175468531812782527541971691524142403503849293019826618114982051833473131374844828103677674466503310054421317634933413537029260751556075962973494836507130400737145075890173223463662513283794114886324595747547977860494119825042928195916001617546218411816313296259313954793385185538421742702776610637727974988353683675558985809600482439420847730040969975324617317213526278812444946214714776559860888411211811139260533672218336380059679639123122376165878455314289461640092452516813152176694034865742939893805298122210938810397120474307425642346238697474867043899642618027372126545683134832669099121860466486629789596912433679071481417106834702726747875361757652288134403492232927432211555802708683720467506906494759105136409180737928751444023964273703362258858141325844772508023831752025900653795469683881581069517230078423904026422128316201355143374615761706524162431733839727238861875919741466163173000204715946104121199694077909262658230734310939645679521045429128691672765771055444370381635637735676267491735417394982697166013860145989581841725383676527904376486215990434715033999222134228768843415866969237209019465355897981635561680611083949035172890391351091776492969357067254889219358099693422449618629479575265181623273790456910961834300868498371285170625928922592849109661098297672019306244827038457989097087898774203465490336484522491014079002554613910512773217942551899576465219034248216752841048033992684209438458361124844815338195277554666645742006190714975393799892313142398807248043452384504624683252497290113175086697178566388837644234815574279202723025714996837560788512300712687366568552522876340756793341363351462167681467366613016290225986396201814918302979723942251990732227505684135380234466275959590922197346611224182572399502421184079456196394217040909063750184632311496867940858513916590623165337590745021870208425080309953729352367336107156990608851092380510232127853180816822597107804856900058645118290470252583299006216913961699236433198371662084111225133143720863981978858929733405341983074125775341963386766828312673964555571569254104613530495778173078834143988851419054516188545988551828891250748596494417117784072882635434801517487789048078787226921391267854402291453119217665034223327666603674320071204884566374876052638421578999323771487396694355066936240611496112007233540110169358491966992300731021026029951039724622219434282559065047574685441437089357321141293133684903805247013679539137107994419506395460707482828810156429611427523474152613476325681000982037487937284251845277942508967665663815848136126053284728805778239916353006152455554418353441106270751173654544087406122093150575714517164699733342000064834086766208320586744440566807652374455989439448717325123808112221982177377576806886457442659883435092409497194094863472956800838451371833142121254790804530729838350607597779038857860898735031279611866527155473588886735236097611770589925479349306815399689337701480005555716701567346791825914074785610051887125740775086329257297758213668561912941797833733057866902024486127620267129118367725746012081675390096496144298419987797717761896406490548930897576843422922080968905739402658227827696583972160292613533941521339099709735524682557613748424505211766306555360070367870945917531569824326728125004545804233178282473300699254735731944482435106983765517023209446600086259713677188562603174523308832691816912689812754575778126692398644185871778678974638171204914228786233200068760064824983117123119807617525959751317297907253577210092345338525715916863225724489500381642165387048370616966212451935848221717713504305679323470386234321743218832738046389621550126423292090858133266401066789020098977626089354187228762467735101834422587042425111929273658149443825300541265934500438396239659870695835259699888804234770766243118095810254719619062568820755873092131660385339876692452067708718722064661151154047958789606223941394022013208214660422255479409102856401157517622124805848194915160737343764625862277675098738451451269252296751118750943211184510240212155319657637064419098530851698383046187628490946470196241973130959325476698160055274369852916573126782283712788873685310578428186322977797622136031904242791546506107365192253671178928326527858609643755289741020888836708872506281853014191930484325521284327369001407790012818873248047830702030090179684278542327215253913509457308414112299335002204240299345879476054878872340063219963527874837633618569380445460216875969734953453138504305553371644691324735929762057668172385531014924027197358341026228755523832738194876118585107426086071484546959660420679229479803927826368165580728405083928576421951424894125223767601913141052789171168686960161956247031108126945638619521763263354901245366655401074467389006135934183813975635080591367983738302190421462233482645970412222627390290308514693974223764941920180964292257100554125582481267945303795429970668362932630872650954035256697729340333900641968146985774586723154144829588546962154233909372958719534227102434629619396725690263591653065035411901288670584837139032537253536855130682328371883272697080911995894415799386342948806278485054701988646793361560651452366503125627282426563108647590135848999824507833077645920055207479200166970483176810755997463621278751845325091348579353468604900161082844622665941865954913677628834154071448278795908503325313186640504829680862567243522909119718191002325239134125104580182473766462903611803278762581709882161348478679984838645409390138546054006741568318821036249559074842119745889196046573168459017403287121906135410647315714758761179019169746176290110448938048509744671559867346235811952553052335322185526026426228407255008883553190155979223620604098069666696163303627575267170611338787769233606879128199178583548156199881439415180020394744296895230980267180604372233947642665320261791591527761584953338080234875229169561544024353123625530470670610871451098919735127546029278802236618712843494211119610390298679578343004712924144347119509095411535312029717206575299078698101633658532038340469416695692489766360809057276116088289104414856991256763399199844149080951466897170471231675762295168284122769602958515439127440450999079553143003632827366166989290665833685961913597924222822147553341758003828403937773860372571489941152291695294120107780530512920906250871323377089820857271183290116851513404371376659755463312568353464309599115667664073475310595345015417126588552708099733381141759874296340124771113415185113159949694536451190081452092469175896723704219852801680180890052727046422192253516415443054155369991212563943263729093936408053561580164017008919470701659848678405784503176418375855321428995825479298019446820332861324981716230311499792716568350636595826946409504757637951528764544883634552174417127385156908175323199643777115842649810656292289157486232551799904183403498514082929540959837903070444116137765097291695349757951484640175018006200347690003399070161130828813643361564764747344518179377992346169732754805123739143667899288572928797035268940706503329456553894793871770609039738872821697749835886884223142688794170894902310459843441373590000034751059905144870738430149941644788743938543901587526136015665377378691755605504962332983028451832923363563840948947198637557472676172731704434634444935331416774227321060073741332860777539757724125102312992989649648139687439958878035568306862563946155092881211777514204944836956344957712432850699910621706077267251581490087303594698173670085874845895728113131912172132657024456395462477721548426365422260231089533004612834588261720993381511234953299505949601165258632943188573501970607972151644911694122754369965582599133422420433523690420740400008585126233083714376594118852299537207912802639110103811903553197072984106842186825547704489094872128005454733156168990381195397341983820591816163434491638585242377843137461833100346501553953244346128956379488300443943471018141036578186095953671606691668556941387411778595215501666095278690458960885544734004628700507118241277877931173179487137756669480617634844007224014104623300726358077624362451278608797974549177515383318067181510840948106105244267893119997680962891739480705741021295257342862006354430108966777999051808233756023470128513288104137869087224866727108445319885094269560403182667383204937809817239249060525740572938839398290717008313356670126709320081937428250329696465121085166624274590891291463603090341403315987695205032334224843046495345962701630107346903015050865657361452598597624196980014664353361632435885238494823571366064331074612238577600920687820026422555010149031445487642350096036997019634351532051964345714233550786855323837368792873639332128534926895288602906147310904581983226030470946271935013420604639215344324619099565228098852209974014483574079195563413797409356986768114756521180806060626618966622650189112295459223259019696085540906219601175787359141644884463837926964641014772871002835594887862163235954561522270382952275771279883776042603104808261291725918944649081026058561320707103818306274631397972630411754862304978900085658497407608046126679799877425880926569385385668917543413688023572537437980780347174906650531476245961883370885972717329547764555448280649061450024410074828520053135773886243629572810903439678427731590593871394909706106724512958997379891980059859374542774015400232381552343495469699186268976011348127846633222735659490775855991577052581843729071083083269441613857957198439293488433720747019805310036229852643806150174054400183392673762524311858392209623942399509704025097846658288859130013708495757906369678740595981212094389257814985251900248754294191477294738497554891621568935339365714332141551673216060018515447035283248623671993525488752470250352012650432366613203811702445772898192647124671325748280723295568671710100686594495499761988099144356634932073042275826401993957087471130487335634853684977281499884295923903355285481833822811851241639571187847504967617397423834021627437706342759929037395452176019345111393083477096081794652235433408083104601819753008606224863228466855239086962795009577514879906240429530085826718166517312191687355002592008483104971457999296061370830382281038741111990431811635090583097413745239702383997804933703569449802321081645406736785455955548701009119802305865940862686545993691532113004085328021707337355905731366207028219204530791555603987263214381673046235550296887893954287304767857380996435272069232965269780911015371586848118668915895863669392633782569394069915633377843619858688591605148537996838575869037906444057635437009128920288301160397106051556995459129108412523476329522222588052828778034648610951814259289760873134836765612273190411341244064948321115346400379709065317154593823922789343888200230786699506693631723492266729131980787207522189764996560571512943806289206408997388574120629006348285454594395900412020837427674019057813940490937463370130461811061852766807010178460905366776634745985724648934350481480287553515566867402205708587409220141212485026123814722212598413473250975203744760134921324176640272818186558980163262916658306057244885754538892419832451749687468752084582534364894589314600225469384536860953786086181524445504247982170389554109315056688839826959167301270765254731547447391046148199583010579089378464909766124504049928453942417511000294195109421140413048070295678708283562504352407287739248847877763927577792516392510428182172194973985829771248723708825045609111907714278509531630471670151370103257050021385100471401595332121456055929474289847336637880923724068022193122675290174122745720689008921575774710568311774973126573380494216684336394303998805145063405550027990375728502918149029776410289196136430106347935453120014002974681339646202227341946376845819011443607097119356047982615093966691582411048061326158740085925998053772388286394884771189949070343247893036590141186096580354867957598965921285888335723681173278178658085173435575767848731167542966485764836219124916999245146026696478632098717644641154310227537440592947023151419570371221200848268482240127481235665085629884154452177770556769476878158368012759859463349677049730411081335133261692928605916325081603160674537526250039707141186945872941951983899559473319518539783593739530136403775304045027506304021315133167681756573357264911417715872519940213257593133438357704061255045514607704111328392989647280530511347988953812382241950053262308414136209502260628358121001279396551322958404578385159596824682822155733919156643295267761714367840424078990647740510105801938001315864961226337796204914043749816508499541379119346516125271722921001474582373979532209527173604656407755264639302229915423929162152180079247189334612402777897136923084793963462075804485639009211735071921111914675069602078929186857854044825338172969580738555304606287186964765392047595721339892586840674634332929280710287908501847463153157566887348575682149319361726922008881156114188685399616465479588618020295227699673800939708072414213820172834334135641540552231591875723817364035979401051729675995345137558659679570792500500165259135281803705932934870954708108907833302419207444887399751978116557506365758429619186732925449218027381231199031861286489698933958634404176943018025271203114609159166208511840643543466713001528431272208037623849486678161690464703989023523276607778184698036208470807836951842042926976881824029925734387148881647630439546358314972722269894975715682062595303967278510057376902093592521112132012387931605376196720066498571236885781709868199364952156554556794699145786044086326793375239190299676000187182951752326232297440710919219645294814546925245315465324436471293857605234852469896431828170389021387050260390170925568670886160995340576434615349916616766471373001010247089123734816431911108371667561615653470340492444792251360848898632727824046546981242944148304773514379616210953561390286067765742788386377508743733226675306824695226578136471487275477591536584738681776936844594230359510917957170826208383927511373128601883384597646695026967855752528509582660706391167066640449826908671172098794758272757702969577634847434595582978920271287164157856545393781757010476947632627863127453400318773087668895498927530952481216210552117157292182774047405587657495987615720595051486083392879670735479643253102359974533665952440917866627263378347192338781255116140006778373903032209863154440737820637153759031373749987974168764152264798686401757764939592149565022246391304914910351557664710767772176576822514936841219757471920861346459564961775636572264732278703456720898533433578140890595406842606660745036892825779814470806979681694518929668202038181428394679361771128979314469234312591927230940929579342916095456599705456324618760146946227705211019646794514526777812792861998733099894146760856997044254342192536523510380428974904383463823406451537439773936147913776621304897911911056328927441175901531204892319997218314829651790037956724412281678247962279741700489463993135702423187275672387752056825055773136273514039830679134118791611531361414794038046046233806033333975799706212937514311826703877048070600856992191385479343880199369603525368661405132232997348921325238003655511624803697177968608475409437271576948668783462041328566135923936591179730561086470730714483108244409764278335248622290193693221222374906696067698038332073641858774175983110725632710991019507176659068921149740408328501221340533665985202238165408658806378965082774111800192973760571803372475446542554333627797076646743799645464440511877646074825522091918010116958995909837084295512866912591970141621109001744230497550010503212223455045227495502948724927757927701814472288987533617113216347495956780788011174369437691506493026752357236295862782464726451591726918258387683042453241991461304223386370834390748275680320715427910703187014710533283085309836994654013701449336555209021160970117925166621469838261060259248968574582023472921241632962942405186655059342741053436441125529251783041781758361719340018681342141794983290169232170617814084592532238262849794523089921384907220858160835451875050672061540397162890289655923773136352765635588289836662171852279677746173592096714854344133311862147140425126866895551839347831885323404476702960464415749719782005434218631447034769301860138073228752078340359945527693010467936989623768556747927545368372785686892389802911299564116442257663172845464158207948634977618626915390242410693888438459688941744898695681807178753871278616493034997043957070264085160990665585627800196406895570064774511442865983773991983855617443914481166511389286374665519318653498033494456419484548438597168474377330252995114402914297862160202221623464380139745557413743450695129762448584268919778042656482876032725084307891794070034862278876655129017995353792933146428061108685879723213328504617534479894902037849171810567677666230995833285988021301791816522500584393212700358915404146594413927105518490544521146288062748858450948600595978773042848477692456293120232465064917276093555210933247152403905315797784604950433524821918798866274701504699166531977335884717432373022126081739384405641154688318349874981960003514092179716097755762383337794295026171985606671820468602007874023024094604722623630597301264656433391796821590641125682349265492817729837247540027248029723887541485115232941183408508427215553035399773869060915190190012289773809876743084671066809753874293149618104908251855353079958609052628408631218603817810522585763893437054567069234055950035417145831172174807435145213569594027212804323017356155664219552232134369846402773336259053195715689911352913999857337911756371773584186271891702741538374861272891937151543325066448499612924585083791220333836130947324909370825605329755939776874541193315580955978654445383829806927687250716178606967070465809198657824778970892359926693995778287994136714500990509262691637352791372327825240559565342946557282432550897448487364760316201693880391888047628952758913211004557061150524105015500312195583712048506723753786494835905841856845585054696604981534259365026487096896353995989495859261535311051729396870284975916196389465376040094149538435996516955250706796514418715234368500633099877730341470096391161701811810862989810554003661151658581529140994792996897695717048322466747062898610901196573356156514505010926291482780960989296485601590759027954753759539507342521609425091231637993769152285216814233230916099842512029173274169407100352751331965538968300201778700773134123767592398070541092120853506931678068113419878413899028046536861089011888162046353315937320825278234745224806586203866742363090361442364118093103688133077524506172740740047637169381484742387478528804760551262049375720782283076163364421481145934471391428756828271500682484064296772291114925147531931295007534634898169706576377954138137618002363605482963081795640559890643536307729597807239047146925784725100243449723718938619918190670098022877007673078806655879322691641434096828216716297006385042486131967074972627830403054713220111506065370891927857631669819812102708758109661810381328996908388696007559308761980712068957334853620893737274110412414404164306697568361542936164666255045993310583207197043593744992668844222574540128379478951662388031657356495576757625708478520843899612988141344392385111871295803378569202174302027578643061489438825947527571200494538801212456692897765706831709579502323996345373666584525517850440659733163857478668858207785869810413124690079632888007724265233683222012098586711777985341685900371835400617429775565903846746170262624854891309404260132855536116678589209303632418152320867414273603923534555390945678832991921890277664376065480446230327547984009657912632692449493849272222749017610717635572865317934101413634395487567750271691889108741310753116640778640062458034981030398113554667858262154242774697751493487894450239184933929004482221854660699456239527666245243651022351963602068474477512443482745514976142676309663784139566630238181830830393919425251020757303804989438972777143366019955560920447937120965027936906151672668263074339475340107452552612967580908629228852590563100751960970814418944134081372321812870243676144511608599682801242741535504587645599357389903740752310922568586047083435980045022330580666651442960752342109385046092556444117703917668106304167669654822443640533291555276622635663845212763494864793411104464582361091381767483062793008709331669859514649855177261628786070188990202437488260137636667874436249864688890691345972073555054548847843517895163443056783253759346642479259149164163512448128691219981445919272547209332085373229935085458745077880236037267320666776568441751289978575240960574828715379196478355516365121428693487901807446161865683516064416281019684993564082312157196357393265060776201596365256703187321416907499289039922066328386330106924238829202770409951611217791005266537855375992753300441902843000316500281440448269665966805788500316407185985648904381189609779199056976624195508573422221752612450531254675605800200770888886550266578023455610608842431341776827497706033755019463131181823346231490296105735686760770302745766296459141534427474313352554038714272862615262692454900911236646781074100739964687490662885950205005635788624432448655364633623578716887434808927829119259818916889961766207033459713963597111386220049610781897186238161179552816373074453714051121280575297931305474808181481165998184406551910590721294396008504827363439935154271275767657468909463510680837304933260194073725601823168223558949467916619110892072277597764290708700145984570271481306687605202233260843794535651056619565846030472197822532931208587817170430677744561437706799985620729053859150944988586486145315277775281457697739399875180377046476906424914497220202283623115216794266493268172653579549262924345824341409006459835053440815670066668237253528873399760970254946381195431710941246513118468103806243762410181483169727819469745043084387400353720761108123793285744855860514156783696873426733764274821598000761930215414498533224835432819624601674796319374660064720518481120374101749733627736942850220397536151021035860165996380912272293331740605931036387696585964342789068231421149956866434941244698907243141423635141362980263269715347309534845323912961001634464804325883214742419235741255702222832088329094348936975627733433037552605987817716248626150968936239788347760361395480461532576700228504312048328727483103687185107430849250009987720369299913010000868784293882505743887818598925703432587678861871744023376505017906068539308141725828812270961799872258853962259084590692474872072927352350871343028539229374641354188686609648559134419378832620214678469811256309818084578491112646794883497101096256330308455483801981947277799683165287539966417349471740090998050315186299866159568910835762166369867374808740977302690790031272344098000770573580145720611328834400596217722090267017192926789165994601479702304047211750543468612403346421976396776984919383399485872356522875973806585744810081703896313524277476804797331582464359483320089468219610083033196767503650333703915258687235603158075735945865659452151992801666831501919399356907573747216382255013862002745257632881991775385076603484994316809530189601049427576046512673991236122547141486116822561602097455333179369077555673403485851810183229820633926617613925777076298317142153229411350886246303502844793353561457264119553124882020446532687337031827603361816623101227513137545463396556704495629497797502160549195644664357522696675178540664647546727255087432522894937620158454930998000461816242952901455152415165608190923436218254296104546895958325875965501786067561640091759799527627480641410803226349249827400741212719591469677244452117267743200418341040461328719064379872081222940525314358706461747632301574737040410825794430609163392969432680333757176468633821041494597849616262825098068504526152360009418573511793954854100593528066939402297334343110915358011745122279479443089635951216236339336877931004753268409342831006576039432780525242920276135595196376947797142654192313884100722762953768523039754364110208635252716363108816520876213049425634609686618921160023864985347233439195987867389608279732147489561795987793280438020650515879693415806053728914820269695619578798190229475678440239686207254208633699295616317425153016640707962520838181648285072530520403123813014382710216927886789990744342650545226624759842285568321888244675848873915118608830450759790797913107637709121778237411723864309192867354148463850319880227381769092435964378763690539206377586802528992063084917554159642990383585353053758421434294940910907657166766257716197519854578119601282552954500196055526379019735247368924436082808476537945818581327421622912438098429618324237719582261076215978944297848404625235010622705540473373427251043913062361507171191252603516282736771394276346338431011672187961567778820187611330923551381638322536647716069718232810798757260884947867306275523486602146083668162797851489894488336174744438068032368668562593831004788158339768091463177881320501228588888953397959180867454863617138626016242204687704750421943275370276769411678875523216344472810758444021681111641213752940975088663946139190099873274282979159356282775404689665314243956653047303320887660827506546201213878403267091993522917173459574760835728972299339835311437003531546603971907490026001130793713952266965333516657786303765715557943454521658051394853602217812770998093346928572026651488507203851812458183992475232801285386251521830454042414542621732542858128425740461149268192363209510356186292996901056501828470809747546676947491210305053275620507630573987874107453176892776560438852794302125808400391830520508920484312351830757363607414706929494928578330369979710418018906320138115105219057542305525030053315895607404483114332151417345210614864987790965987474128092347236092245366641231514221854426360394812601573332591114594008036908573705529379741635793007615589132613360811059805919540377902785534034018749388158515960257898737585930948612579201709119651547417463134517001086242622202145798149501004947577003726108509489898638515726463752371004117582094117587033797226297407485552448468627128671700485929790543418926118475939870827679036439995272937507873612723576185826687074479383991142595898998503593213040238546860676008287605592024830593721393825466770551873961389904969684213863191629207577567587731682673807639313517731840106378506147697480570046937498336339685184802384853359315279051322232426102437857804550584385424386998875422639431681450613888392230303889001075238896848800565982346058012393418135322021101580016091961480360197098047701694911091776910828216362087928439673784551356285188518756977025370103097162923492201732533520471947914211789184040253820826898953603195407426667954852892806791863032254398178855953983277640840437492617796452038340328460475599007821998535146066328981035926054279774215578104129569665146918823574682996045034141770190225464979337358443679605103158843688454413826428538173452748885521243887224369807787316315746394570711059146257450327423243082713372877963385092047232125693408759534714966679176945569650768505829630571495106159595422904884204662957504888470710826671527320692002683869714682907756294628292994856627953656362456428483585266352765846950020127385339387894516475615108737740381741718994756943946733551816399322719956479576901825821615990301938218794030625842112170255972341577586910654454185738400240647455232706642150399083289548788308598902061380426294370217002091591022254935943813390353561883051195194049848668732503204151639919197370420195533312768152404429799630988203753736565080945837045807924590908939001399262331506435951208846833371845076581199398564325338293260782600975084974153340572071052251636743684072913217768217273881995425093834501158810756141039518019084722776587373155534670821741214101789448700020164837624238780231169815103468051674412129647461031914417271150998311908527049650540790706563548024601741927352311419487394601837295172193766091187772826923252198373542839645989250653501527071682901712456432489233485708241871095386426425709629353604604188606911876111976669343645040983145813549942458055429169616531946053033504026235208488126609509288098332040652305888285800449942467020221272450025379531525113956140304804134898456138706372264977227735525128839526698932577501448993657592826607732879047291792310630550569460652650387816242057704336966874919038016087664381447131273957131853904599597676156162482506918343859098230451300033776032731077905698712892427959917753158671737847136906140019064534225438702102418275388465178246037721852173934289937397560470118547237114422995543271973069032137988034534045676725461202320283816497476377361539582374777571498110052851066499709401521503780446134622078184032511688118762163965717349411809255987660760881431311881137387807466604427181084622963661079377740347681229276385358613640429132339026893414095920490844154634719731827415076607724363597833138128638265030772731537528397765911347344466750465430519187564234432248748855117361534386734308171354049850147049466973431608339036601310981747002964930510493723307694012913143784953880880528298151458264004228260849251527979107923271888097881711889207905265755655267381155341814153846856701585565477615622468864761347855195745929680126237832313889596823885830588359146957035599861505459067394578216977457759971766882592498288422042325757311985697026155566465741192960952548488242120457908655208320865160904322543210401419769940520181316211030717138546120539285158122844891235873449830336537654507083504540837640038237380008389285406841058564598127369131033503655243925984780907200906120021323648142697876481803747277825795711414951647647349186997764192886701691434429944065640300123486262724581937117549006348618212117425115519436239466771916746161199259945514958322670437041089153701867746148406190533928045237913510106950049195517496933908947050123928313928587151311925112248421549086913238671282886829144160762961818709745913472822032815823824059502348392182841119951130701218038742567650012041999368026367579204807280741030752145395693600037858745179463392911640734239109091576487019693130751504858510249885915870629009900370942809285503288915159277262760202134938269461317177549957690942812768896085276750497706650748121682066130184433465240108811893872822551899245548164954217599091369204898183886648051521288859208877008467744760007994510968760290008865534049782694052991396264734699753042033904622177588021912209415508477592185964348770938422030161791286750573982762029566233886700025390437513293394383664788211107029350252269005397905872821117316122572160465133755832367953487380637293972862284558111648412940006579048419028250390496755600134993416098591565329425758452623122151910408926039904711540993926605323796588761674955124880368980714404799881279997388113678495725682297866792252996146089906984064352936875332277633163966228007373056644833429266580391895424047682502346823157772603833694950588031707529998219656794170659828882017832977442554847746233788342782399103418417328854402926268804363555831570048383260870132579454769264113649951598694144515538742177744108713366370415528291331990219525533896850331044989655225500179103191744872738136859813689327999711400248897524398205147449310021845722426382359960454875550074090967678866050580261521911640347982342905839098024344877693031294260542027365732708654893227537830174291482096016849565528926845331537388378315112582090853916782190865360332150633537165920698795780932773412777573955044566950396935344614782177398595890831763384260816568986264562921744054995621460165922433694838170317893224964995864129904680973877405429028460044028908827405130172437248280316076589617385622333271320119650859328567516844234459780667351397917512175346704246830541923123051588634129399095958171907252790624140572229926011707493651839301060099867834458714449160488056170856455339542952595219925170925919920029254196554198105796887669632040332535593322997395707850451369288818615048506504359951219469854877467274528462826212042189790060114479598481351968231967803987268377408646144720226707914848866233082454722761790218033605895675014215945089905588443759651347593012631559678880604953027846135737090971821408107014958264473675583090895320760952932087268976088347085648074985522422727594135873989370888755259408451640322421179971190539777178970106016461281486564385757833571352546177498560158022699210462329468643997663942555543816558612781828933561627209029829682651362264621221563816763537997604594067566163401641192196317488824620307496127109182046367382351295837714304730164215880789672597857365609896530312516312138419992207594183196844180207688439746455938368811410660034436187503433308020795660519647524497176471551859478186605236136528976998800045187246180804106340781575584409386190395411993977191090183984322395860536882050231823470950276774135950401294360581192345876192614501667193938253431086116140325128038397982028522626783783543330854473421796684533327273124411022539257421042481360791934227660487614605429673720309251660997747129482510983669529110759403650893667507806270401893049671112386535966425748663956325944148001586455462566952592832313012412968468361322915897481172973402288168804587589479039308137809423544388775364932033980710607780805276298114347237793900001240110054520032094908233684760253186236070719877831258175531003122603629500425222765946119666401699318966471092350493980035169971044643880239698223090529572921149692863557384493116025826269047116737459521246286468584245976710098859108020118545168548472358561836742117072052470302466786458884020052717327192820766690008030946399400932141503754117956430029799263370255833371233956223415299559720771682599466523746582165345784110082308793871127718213827850118472135160659980582045686385123460486596482302471138278333955611410408913893756568819092209688876344430275505507540024901545735399085193567690756241074273162489322340346928493668242746168591726971380393060953860645673570033197393119564504382648528163500094451870425152631841575317099249907014453299198519122055574574567273045384177653810856024306944253388334524060570940105765260335652092951805324630982342138385671316504024073373027446714652769555560382809280269720961292704011006955183278911975583999479101160433261789064566145508933742953386088879420449740806119445474688100234827877512277362638018432649191053058896760143369346188796282626816817336996138768819452775233813786290828453348139986467922847570988066722296642593642980474415613495686254408698800527205638875636052708147973590343713453097249312385051466222959925422383051748432790356510331650239542734528028652428706801813853597426421051219564495148003759212287882681448073505641749602411511491611232506327741288626171766057929086696231668591134176121251336236664394587017908319236298421777909173416779327974843402954914212192147699640956815189497239971006396259972900660621482801214715590697372340091559106614365586681543876782857198615690012713526159859467837187950409037519159104322898959745847651486551206998726502695649328370325468125269373872524847926966960571069421171906656085290757507884610348761849306653602373825513616179357030972650430801257843461462198226902704209918539135531490736164951869148085330305153096967121363436675799390957857884112438972733808458153651802844740048260042606852115486464677846370925203178160657497199075186505554413411563074869820442863673883191361273014693846803426452460507064915458744812279999502765862610105829996883871008574646949771032412043594249058104734672567452366391904519790461812859157033729655474398831067356417690313602214214910731285760741704940888980624229129521533866108414556495202721227461807735617281635349818897948898039572350660766245227352509613742275438950716824670579549524479208062559767675305121797183028685969717306246355365455337777682553016260920694642720871377671950475529424478230247227349015438508344067298910704930956204012015182836801371160880011448769958378376473993275308609912694171399802996825257672321541718640478824846494224297031953937272967698713365555973978652637005759052267993110519745653820820068943268959208591154119020492100646028300433960729245391165676334495515546336510900111206882661404797052753922596071697232356076321402217094943893182192202433628205779113664191338108657950281429229732902816235685450171464634618302229346791613926865987008230823426321406023581661286426589948408732828623336048751980442303675900540143270044421726303555392672924339775652755841662720352956765699086637137998506805356907449925209989159658152271863279605647801273276809410393117483452316022669452946465172338191765350694298093728204048816038587796666778052419692925186871645688692604733072187737219318050801668835587448929628185951951744264816619130842925802982849559626341801084387670873907747725816744989156037557995244140224367777795030761627411658265957277526794641914791906617429471783708055457011494312126074132364535598741785279905853242275988353877626305441325198033248372007433822329798367647653141175955338879911859028126519874558373555423951490194885323059015751726692676540846210549996225948768413931747813614976846290884878503465845654161777802100117685615745038910869662826973947312545495035238507808210143096902378926137565198495082628191607840236316212870488176037978208012296923863981970992201913966279778814324040519783438622277630159648255643123920203855600368754981635540656403330557587877559296443391853347608603565396653224622521494180138524241681503356092778089566393294111198669754597311765548859793588724753499519829014794963379603254583687192881235383839764142459930202286881296004230752945217884852145136925961255862735514454832258010199115594925316941507089741579419180471760104147940112864120598869381354917434759485994876111760277207393173509753595518783358077529419763478532551868781708586114155591708748410089341789232390989611424269508181334635261018834220752991266697440183829029405264638538860881968064076688788472794524097322945346446044249196477505312634343990010708181241495485066762728363327843017106039419499824745042202020857279071822989212727675039058826451518853273375733833499739088872599729378552715392032103654824501821460418601663156842077948028024432049213911129121208434431232179568690380816700619450860701962970193436006554561838501485211131564976889466151783078977680323305669402945656266596885982485719949398506873196271268201999504473217243970412997147566593141147081005969708504288403013875191684343683707735185420261954100550471373013511613500425161270749602693568407616795727183969985544361328857221638503046533209497976422696182124341782543091992282635952318704885674501444747521397550751332743116997232899130668833793492316219237938720454117959985115944749097393629489660837146497330221562164386521681601525070421229154391320400036039113659015190779163411003823460115644538537261130830272259894144872825114844721510790530820250389602838315394563580451035381849759939848963989177923018436892344368644971506734344539811458604929779299925514270736910922688987597430512714692394813693159885086823511766991338339707246366211131593647542731653932328704801379765871354599689282436961712688768101073340730165396521825066404261169388302872387640514108290939585015581731229396966576960539537447385757703509072691215707496307366513802519735245477208444859620906787234912096112614961796114560730099796871695148145967233916882571938747829714028684372408581658461062890164498465020001589535686850316339257251817533307524687052144913210503059314569724170715153114270147488655291162046738087114033196184327085111685674993050028157480554788112544517262634973525307951324334432857893675859033362596181942971757416554585315462982575188997469510613506088237158128020402186306502863303851644954816964344862073927247721157348644042721650249879417876603947745755174684065778941145410323237925082590912875603079032880573076651416455912443466341951099426694668379252491431904856235674737423402602622511097390090205895486093101346247277103786166424407766987898232403819687053109512200023352979645304860529249803890354061746121344822771581689576270908169253394156198250789819425172132848928040124579535719610061264560851284226938048304186855743009289506657986951179593258846232639685448368678718179689757180963708659155122988705879015604802363674982859247195674466609925936158667233413083704289826294910996252760374641756865583389772721341395205150803686955193704661939989989362804360572131024045789749536356788913162712057231018497491227361534413061902767667913428420041151962098624194804518230906091652497689303319175323855552661537878987453137033131548659921760423504810038188411215747099928037098840262454822499895360953859976891870998670552704268198116323796548480349086145359662133146277486927768684097183480421273468056787191689175845526528141085893621968060961767096841864672228884773525535924806276932904840659303737927216305386480046048885747059992234204052082380721012254794731543503603218560564640274771503499644123625617798300510908936440260657184102259912394233291208466975552794830289370125176324749350638473066454751970632617963694723192755319262777677773107876629979829843146471751480956662829140823038019522216800033149732719860760794192980048076779509388838287879945196352572073899353565199465820186635145101314219911015625916602533514039856276727639376374773429909171764054733312229008381859513470762496954168565712600363812825202589842385684582504272906563013296440490825666582572042795637090200572247248970506760370537143813041662484324506091605214018765836931383296838673296470545237738650152518948897824250175282255852353335178712093938599856597724728481565353692507850783431886054002317677002011954347009720343090118805793714285375487957311669240607960338381375362314818619841727795852339002570099002221289464586167816373206518437049252459662161985500520890221390279918300665877289711067552984521880335119030653901688615781950063103393688189363686710272467955616093971882039733051963079565886106786747118165690932853290047389023225555079892943523692028772422230167756549580621962948297328355267574442953110017276511991650280285732846651921001469368804736038167852257308859615830348303177842174418905194098450344899358143130407030274579032696826743931164085092141165084067803908182471157644540907680960152485850456468156748815059110032161009781660990090694636700937611880160413434158811675763649767165088309364269762346528706967509532731186632321849323359554542413933220066428729466698918751797183184527509933702589499642611733760697106208272522670108048654517238500825092567771305494119705907952380021709525671937373382506052989112296255939188798902943130262002990640614266533611304775516047447029796330093390005706018091129762913691559088111355234117846034704510523128997513887902453807652325359833118803546786885517231215435157250709481119532016587118034043084118612640975632485876592038099590405229336396081407204728000139422158271337500499881912824514667151600923423586444964828007725368838809673693842585647177684131449360982702465215290020896724129305392045752489465153539618000204838305366746581085120484184454455235265643761042404276520304498804094196721544116272426799131038311415486194883075458524998395451709149241202054235269963481440054224223014563385506140912238369696379782627692418327164421880217896257189922199089299372706734863111349682302574133398457160261697788923290081152933757927370876513250287598019313897101582778157430905656771858027761345815356287635743385842987064469072263888117761886276026539345685587296150376810468014246581456192381769352838083476685194370073957530154365884161696103190965528984718099025137927154040831950035787530798568116323597388413505998099340401339446248797732861590716358454901500573386809338501636186430833143773278681420961469568140642025015410231426355140224607107297741116005422175838884670292713576213061927541488113161210166276317073394497624729512371979354155321716207738138855684133469407208726408052842345340876416752370420130597475725418727778587026935651943754045429989437222632651478816293940104708487755205976941818855309820308732459811588412216351104495398619377715166862808369310752520802126498450710410647679443140063662974409912701258660020088210672649305631040675170972818989260513949202416247932322770289398624967675668839795992504175403573021078176379750786651839210409194547140068556943680386829514834596302430918942229056756333976127586684612393737882294467912037974566509562306197594787426889820130794731920742915069429275087995892489832148979887585132325137490187653136593316250130674619900117643087178006278861920934830319116724373412267891576928205084126974213545052313855190141955637578046548939940267411773625906839115603597076204505015739932177352942176210914345257513603761402364538168502715647336722471737806772043341478179892465813497544362837817870918954124289180839657177707430921706717654767417139007602123708504456367336606561769438800632785767879279933920438153681731203445415410749269870852324041990152804580584944217814231837579682364167190208493109932828512935317090475322508133969709211734275279416034803055088461557799535557833435893563060286944589086210483902773901988181357135258090141279261893081664176917720036776802446848884754739222920403109985615889915670751096528797032846655906973848729036895095469825318028537396909114814571954064567794287480136216273531761222398482229476034192719324529190245033790552107267842976895548551710378946772033880636727723160527603130118210618228877176451527215940767474257327617055726508401089339189361369588904531416491442186667443905333294092902460932366960689408521995498837459138262566719286784630322440923194845516304420369546855267323820771513023900782003881785171067535600483550957739009727406040620255711488425689542237858864173560553797544090610844491283145863404618215987051650623394983569676141069599233230063517937362777222149913102482078473724751159980605821705015658238038326892678876169356275416141894549746769008500566773082787782700236729507233614192180317764120026551346847549672337116456946587559051761139921734264224987620193366787239339122936994984920105086478009008677992114665372735616856858944992320910204215384539782988763808118845473299313691816663918422092900973354459433563994349146838695830153042086444681509045148391292895616748401504600323798639732298216204275198983238827131130512135357650034451153788746455720937270249135927330254977610085962383283543093057598262406429730614652955812155681906671295941661337022015550178297549505419638396623004026990444877951621371731057155793585400378402798504171777534521824381018399795750345083774261037598549282476983232035067255955563379748418662553469826070240025428169585642859007361368773420794188806253657410021326446753729122250610976807221857837043845879849799906713670262209356883948543441992483518836099704910898189168161610837142801946089005860588470663615494033383576842022511928657345533929339858638500133399757240068291331355059452587278721015443492657550119610744329678989147997285042704351047905595617378052131472644725052905674598325058778904586337570354517636500983662177163072442285301252720491176668125914382090346466278285196202126632084405183453812158092616863973854775577411183550557607171747902184656461450250861911326862735830902301539089496292384241848188922312688572956968534247619112968325756889214857073998148604354523272463421533168952640679855839350042622531930399170468557393946452472303423274865398700535816801303435650003826190733845391948915632274787926190420206994036111362360647528666296237094022833826188447690775705943751251034361400754650960989815732910343142673527782308160053123999016173317610821861248668188590505428271507201946262882163153644234377743874889676950739878496818269192342129123668065255948039423804166092117387865961562583465756242896911704457160764837655595842166477784973040647126980799167867717664980018251397855177608747270830425681630316502759532137222933471967396268719268822246283550903112497107765273437481364724461306629848958630758944494892343814603194952930728786570483156052741541759094229095777094118101509244247721008617466283370018931874594233408389781511302598318331015359245330473776366917871080508314835067954743039672315058985787943771435631718761720980824797961060497923930710214654590222062023094187153101792146016940775015097507098590972305479786882964160570369065827485863113505091392444556472185205709337695267310253454876931709753966897527584799151889470201731137226222438378574174830710224658474592270414637021819678090081190585496543148857633994858397957623786640827771752368151171555729206707771664064268802962755110086607895959091769891752631728972526463224379115718791192532471595062502552933215455152734814622863772815871598106284876414663273252575433583352280796343860845145815624894828473958151838341913758185855337901822269538602149176430930220301355460654283620462323726983904902779675571119664070474928580280933201225448673311460381286692146136380280281166730996430002833275485061866166743473284748167730655885505881285742385697889855514489689345650376728613713617906113875284018821673984088488468968081619031918736327880914543792193756589065089763007657949260048274411704889813311867841318390867570761475715563606808706877910958673183791592750735914685021068213684794180872158141737625325557135907424706174329943664526908550989567342061247576131470527293820230311457456237090269441152647846833489173441753001493753352806074380622797131722158195841120103470586084029094990662066955317746453582384995952926466074645194650820486856266424000563889320564125272373300482866859888379942487734851228831457343167024214693864884716401077381589942286292738475931352047822713892174465227747734991526674850015929461450853635376378497921761031186738135148840863010817715418938109952750089211300341365355529501421860619578638938563216230792198367448761477595647961051705288791246674465997069414008921756718585310503587189119169344377436572801202268995411213463662202797100663541120406031828317962897900231018856906474279997211336343295443542080889576071872070325158076054319234590567844320438742443212108298077791699126793976879099757176298835772038237540092441902884968868020289143791267985521513075954010978293384025111808514285207392052663532268034072055873130337787108362904519239877386706347060105013665891226375292502120014880112759624190566524588510096378562542296081148118487851600587248736675076299825866102125510673997708881955027170528904758027139887178977944608861775662129362521318073225443309268500540241000440133057230240865993973967137364464108260431295851606032053450464373701525707775043897777934904417045434739534880005284538791084196719949644666251533092441937864712815722401406050130730884668635959285186683577816428173898535795289189912997448977177141690266648314764423312814702154390372341379438081601159945238441678206214178415419580484550586269065624801103498837735120068379453190023017451247555082869666122676455749640133330769611510759376513861095794604987775812257267146435086943174354392122462164495687153332330173315374611767672978375515057844630002078860330569812912294139803052462369997283731478695081156196726231587686762904989317344092589737080442378834665520624942623450555788301913878397198150261099356991812309715811623384381334822536490361891942083869806432365733921191203376735087012778808608942897900204956137580521710416851827661860598468499577128459304232951248926754877532658695542120269238674507974793166761024077376454411002870667896362277605604660773822515242089345422143697247935227818689709986635695102133892115228777866301304709563604113165408260123255720183795374921523392544867270607353976677463224256011531784131195893498471019543302434224205192770567627452231231683352722473938472257448308024609890814477749362259186830714521931910026974352382086254424720121044515927624241339055744897394421857769783592996089942710977628404399976445284018248547961593782855148968718849238801116752970938594356877183221622654168372797886391973941276185048025515025550364918436949082436880456361255881973328688423696189306162576239900819250685154448821112864684803480260080539908917453305664599155123097327069958473151418055867609434996336433165832131020801372200482722428982635624235219820430108417486268522418441762914187699325832233741275313459384018797618079812443374815578147405593016710483597809690042718139759587396285880365648903030589272312602253402335211338869378585382523545391678430594873615037103691493903195717737533940389626798658178839534887480247215102815592068864021899787773461325375826309608913381439166192472737218710267570559623255543077083844911711341972760029958545158695908247024719056984247936197759761876198399397525992745703668744620770481271776951273817922095597318500844808681728334078051135068685130891138615863358912809942393521421402141612522659448284733496244469879220522396661606090421850639933155557632355538622216468093659633635006613550699502799341033060411126652767129968187305219213178064275812606003916773955465372629229225173869223427643924962190858756933740973479056953510652675610068175927807754899348688651201213460577883460919872228888666572487738339128956077703674399097667339036667946523732302292552524646256394779338474736308847837240997364871837649593928360742937582194873038355850359488982059374664910384483669411559915586568521774550721064335297410720795447481000760903436414458863563997024452136030068281790925614281755085489206736249186921850915189640844043988101771070622251870041527440473624872285777475941758197801315920933099892784972173511867940357240525053867471360714113216428439740898941963325019613160839218130401532679927474482228107169230989697172168471939149000753387516798565634040785644545190464924680567445406833200710445530080471798855613881545665166130620168781226805784153909912333440663046205148113931292720444355284294150908569707344252164331081966998991099582367154365969713055045957000659602033118971951954188792002066084219799435711215702784030394228480466700421239661169427738809385833307268070373552497658352950722973179322412881392405537220054674060163079661071846921758929593055414794818875192739939931674128299433200927509800433861510075212400451193051731350582751266318288409945826601061445568513038468900705741089635607012022970803432219521181996229055860783543382208215880913961253805481065133193395692350605797310558704884125197069438292174468930285039252519425027205319976669251500768584832143613023468017331865846039648966550463304145153887320816236717147113367769043522721329356336504827956675478204803426058984003623394772451210770907994574738292771083930648177781208309240566640739089732226405031825726590303813056997027716872872657460284875041866546908616334442230508609272575480813501250775749739384502403164716700784564356534530424109422976810875899488257004194185542058319909463309500950025384813381790799248246773190800130443435733890052758025744407630523558124112569646011017107232593356915791096333713483778808819124059772522354123040181714747469405597539328501152171094404551826264046882180501848612746501194732499157998901921797398373731722167497708539129578111326112730069879592428178693344361351897621146809680227204611915139861840131810045030723792523271830666190901168452252954468282263630043184079188557599375659688867510649569883284570365917859209082202310168468545736302361952053435859170068080997741316936810967501583433856321007689777475821095286411252680953604218718168539999978078789834798613348017981412306729364667176324841909833123467286066862374155264354056589168145661339467220798534598683749665084909211798119368209469115427849681646290324472228136742641400955088112233432372163918272843521845618859969400641825192602858382588427286502420504188725181939972336011867478365740577036850218683642481048903952256597846131031123069993238055044317491847902506555328484878350146565042017425888920535345629119398878323115768914466126924422497410129110234461871046339154819179454229006164661902246212207439027412425673313026197898808311627365855506123659997040987757606394842218566691072074066338301477968710544033177164214866433660735608192781020872695077188357700419205932168600513340237797958463030525158615218360056200662082442947457538260776282791262627689846102566051926822260293758404894354788826910276541711372560449233497778228099280148421566531459157102144386451703846345973645359537398401868070948057973863035883799437916740449288765895726749804162564078685510069656455830001658793309956801164744163897091693235469853543987146218094741690632370683815786985455841745445201371815382272294388632778485952631328010826525507054448494510310683168749925368535563125795073244093718204015826584405557906440460007730199325035804827783521173058105748732328549906366532960011389565177927460608330000572078149988159521834972326748574561245376401322746337485795566572515658866119466936607048514969675348865549996991096142728709615256792876089830364091512388768381915066009070390940437489537560133267474719799230269054836023212363477111716815532443956966185357178152638937112858103478835890018166587711116270959651142396912411238318458016039602906191266408733646946542411686636201811661116129831286582815534206494874663173250712703663490996920008311681838186008139714158742019480029621821083430098949300845765106319618061716501215473345388169138901759642209417431321910967659931518738759161047051899261686643327020237679873156128795482451544815094505075542401128035240682749077601748810259642440117689927798833604061858493698338673541612597821702606082677639335530077226236217549044110515701391665910784961410182798835941235478756017566614354883446534614520025954238752837396876543913582395902951038569428663637998960502093917902845869728058507227112765252728827361336981280050949438413096993990988182855265057938187495129206080193096870415522172797574225859315198578309188283905124093305306409586230273522202416983374725664952969502977105950479545009588527762542951769345629487762289704121534604787237794258812088170776361102803648526823930259291493013805134587313721823454678433259967490423884571918558579920504969738696050640631787029279851865778570896927508024866239158008106308500335976721317572969187708203460908665972332886791720611322545803942085370434823386329881588976478114498158129522431362210653167583777293066023609005569673923419681808902851100156452544327162926452556290300384970935118448612432194950024107401342184503790788874689825648577589935442467100835162141676899641036752413163474589201505435366003856613672095153151274820166327052418035499005212791141514403986973003639682806876245424329725181847619968077574215557551116414273277486508011218086983915438637256417716626686099943082410832706177560435321275925873884539215696306146052691374468680124433493495825700374329436570424827814765254613997013760198738336352004845964850524756971034942564438551628411061126902043035367722615119109543491772557969680177995340755383166051750076385280666116579686369921587988319554399438374108930426060931451789092204081005719050944878168213595826938794741427458344406081582604648305786728012065076789546437393199592679491664717802851200918685982322692160872300715425160175391502552944313603550314760150659586195681002124772481203760639772412742078106505006866305731797499979108281049194471072585894669066972554171815131917087149927418807617177076581533426393745451257165411312332069740406424641807924254632540485760217779788669071855868870345027716681553748009440569427008963550755203041703929197618781316562883345068613236532552491144569297621498191048778416468265974276719439202163301739511986497785484097037802686417242255102313873837425112263689268379114077874084976599063952294361633655484864410883736163506339220512799022763826841028848638221099231844624227722980359243129854333350964823335485489922740166667259370495404246772724793147803508203767933121686617892444350727611279308889245570321860430939960550524358673266202216504116891551096753944021728318806488639617234351460325592928930640005654892239744376209912145093423467095318529905872161782557182436809203246631141335792424143193322768526602915066521718212017771357033899100513726216972339357329191150169575540626457488455519378719134152912406102870455934925175891840845536247548374725257991365069181994842957477819175150552941329131573047727611281846243248970905881412386420408372821250868126922211561513056944878909117816348904537736041574495891747212168505693079308104018469579647582159780870415450585729100196853288087017520812681335269997623484902318382918293352334212002189248087713665173207037178127138214194189583317000678504567261925986273155179380329257391682831021276750552637459991552996894715998383703762487804570926570819976580622877509245224824438527141671767528329718658690554332863489177440282029178494473707701345548837712433375641460013233944556359198495063763405251306239865258794462399389784736433641997097015950431636630811763341043000473323870983227047378261006320914989983349591458170277938601806103944456368261709432796397204071527953329404848872569387016616625435746622742158357951630694543393413172529559853845911405441618215125000305036533677122373821047499542655697713517541844880891845036977703173133017347918313823321299883042982673588495385420756420693467900919933428420472869833282937863084881671162783067363070442423031425125182512762537700684242521418710296871976499343291822996131045906585206803193026417689425560141168327695522504184680411935531782789088278721683950331244241420561122309523042233502174741436889740721508055033377961502691228889987909341541737464079327704974478919346220718626651334504397369710568119559629367500483004483641527701445007605328932033915388815841619359171984895803839873587744473575022589918728860482077447723990844455267340630584037683812899313555043416010650566345655997017578667113669519403467823242641331796568132108216333581894159890875046246864874434753882618582957116746659960911920755114773530502152787704329509273795854044458569663723471499968909060253286382265556254972652099230052057733448104862188147258184169911173021681642223518170001861349978828765621227079378535019409562176387333885297734664345288589798061662140875858050236505549421851907636651981825065786615157757888053465173387902719781953061841766382769739143204579697126815074225336956285872652527176674119487093416921425545574642211727353023290227943325641404606590377475377371849953781569536076386223005862071924701186770019060937653826945491356725356654125300063741023491649590211955531793697108833345001750401195464015556562934702110126329267251166103891586132082544224396607193239419713199682468050627338601549268990994061090766822002517836854921727715238872814826227411070487423499945370233457455841732966446188071950481925604069888964552587189421068744836727984426780012609197819454862335284630333264637797727003773851515629505263952418717417506364473239081960594251538855795653828907131432763407970600371110448686226734926365440955678459415842371161392687392394797786888315707039284615623884732266514938570844612319949557839664610253467053565936810809340838936532153615827719049903745019877312393238131328297690618889652088261369339227973821398055897632953427848413832927991827092278096539203891020428160081080111413690390019519711238425394429808735757585661407174790029444592195257734993061545465998899875230389739171257036410064232539374790817608129738293332098906545440823550630357399035094959952677985274694017210292118557580967762962912513844380576307844075491106055610406821406563142774117560461579410136579947645362731692373566242912764168597704206816491971327359638149511831964493438824220142481311075340742320104124971545680979210229460813293999475816173026535916492812180854260873408407920141495849376185838666891159854964678282841956956946568821823048548349441882203874613535075325782620581728507296221181886833255002137478434983633169561357950575898559446929145041937792864629733660215466696393798563084712431731640663253778221942517864566590231263001414305507948124456318225975447011144195560574641069253386511680109055197458336324169277808232663494542805750254413789581990057398844493900783426188197062810991566953454808495448721148408787963303211849295215654905759135969292178111068098957485359028305421080516125811449394868045013015501329763505053411731871942672725425887951567202259971950520639979875290371168269652424380495760159194554553769916228502182576202168656821141436283239696459603129260059668830036723760119331965291715550865710179253628777334228674756700059938391609688410845190483611300779230925901291566638096532899894013079018980596640354271912804480122468730294608275418779978827094608786175636586727814507252600834399449071326841706763221463910227412420306913023559058525624745269602055504863577072354548761177898133441075998212344923068811512042653168437761751392215129409249234815762389859608071183080780849656691241311777856634477908593855518846321447893239702271120637395215048847963691287170822147535061090505666211411155452302630158804665448387787673276200678243664010078380020042723998106923518248810879653938570050010375081541751019311199249923853452277413066356080367106640641605243079376023405169223370096436499426496349220239017787197659848832151564989468714890699880858590504830493921193210848249710757094336331159856026062803693451922304017347991806641903978313157811213993951769655838204034392624398015529570154945450384733173635623350401749851669718858474436030335771928183517009986731239131225985497607392011335727875716924941081473127694885367323732353085154216961546884772612817851055216602236904093334702423146665386117708583542056737198868838477521237765519613691254483746516002898872999871804728311900990512906462624559206437310224405242268315133715756728990297473169970045797296766934007707438656643430660385929979393870064771334025245477050042032712548017940581145475269143504437357985168261659205670943412743638761489909107114641128020647027881893996554470962213054448293620571410053967398467641994089594171471117211007206111688643879611430234249984585946251640369692152675785931369494532297515369798282126067005036831273091089547064295144756387762380044334091381297670991138307268801465148473862731031250128739862175216039954489559851863711697535605435774690561366289627204113371701269093255234252068185640490310459623464738714977834535503354494766417855950770825106996588865854733026955308739768729748393076517352037675021151921861804636311156471674361701927388176692878007679816871075598221061191847942533730844140200868627969809671474331061160385632994040485544356037359793100267150980265987608196391983928432268974771752201728091485625949329378193752597497810938262219015559112766724228538392842851717069209530720392947785240364153473895745512678355560591488713000115033747245784357979906746002770134215170120819429048740081372904395506145950633384474944967442960627326150406135654780706526359353198513003603969946091555012392269159361852006470651121785025802914540138457357226747356517985054547179902032602678314945979792373437230839495041106593060377772525681939756748552849297675657139639894501043363386715476327273159738023732806667690046978210573461689432940330854742148791056596768667242968596451542268511291977738579616702008259218167266647743165241745027904985144589778510568937221064962698906733421108502220032240171617562347843292186948856228265372242358551837920436112959213329023385319915691033614973034281468179246628474023152854019147939142823578512293600245352694682606705702099185847998727289790287201811735151438697174850272095904207238886731995107664349285441303225610857906621067079571570398629084511851156784985764828592915543132433544016217337112811174708674856194218505939118182359159475092397207939427337206167455165091648278241714156546841160494738211125123871149040367677837985020642002482245705604957849198457723186439209113501900141509730782235451736130712684072056270179221903925094420096916446167263789344850643047412824744249808556446196234694545815168602593563819391879338285821482184609567203368401726866704155483546286740617299697777415434582329515599310428446895413112294115915633203519060195946202569265748507128176305077985450030302478410954405398958592014531917194129079088147762664109925882856353003914694228299874597615369564470558537671878167466037166860887925210656767767420411021131689400572123258290705200386239434466872250970559079396115808758102181763638492231040476261918083190266329303809828432841239713057680225844164729204114991511933860793195272973403897445803216264596168478637827218697080141026747796573811081894010006022227950313431295583061489325301906688088394547216605968487772933286902511829544744689147012264447008127281702069277608545293368334344235500706992875314138895434470132128127426747117620774421564862140421689348103080681693106139869937037242140950537933048365266839424672332514594323391548550337306694521304778151251444387759350252130885994147998322896338099212536480772729962357712541290238941421961100314277248872805809753741993772728177492739137319879160208293961744930266332209607139680647743138840873581247732593017700563405629120926724049128858588650120306390911118660249029468220859704060896562080504232549785285076192702984007779419491386349433924214658764042389238050193465617504265367234773908650324728133733894758139312074966845372228597211361748758952479750125917203867845779691099832189996530802823590765228973126956279011007888019554382185859302456671060465574941073518846350014453622609919662014969794239213694223984943924962498751803373621406597506587793833090312413841652856265462433256766250604312794895865249346584561092418139346328122167784615081480239713462196914974109086149000709783814045289767200169098197439542379332227896297701806558941396778974637629916590958130742831643349827527669084109149896478550120948593509630855392930554544014318328795560681913129916602204917885517324404023396728609662894899412685014495626575836054606645658780589852100962890451007353112575646608447038292786201479575782316922583828731652361906073485792612539619353985810322893836554323293476074795744286813901892711258729678965634454811093422188478515997863116085595100668890184247135771802170432596647575678460783289273278445388213953830847188434283287847465287132445140233997227102843619880547415467091781332630282782766914946828394052210018035586110549752962118239172684390675187377353348293916487875032928017346225803497011528491152393986725155731400568318236825344699675716694848657710063865301584976094202812924812167854515511977738431092991789101656907419067314215816391019190623701624855417451315634596443137795945710560135046355142835858779774147109573318013628196650576765527745964352604397617430838257218092313373330206928648164080022777329895724526035133790321345100784774084077806659448145120611441488241297575047174397542201463048263718912485172299160756971266809015689329514025647236922881963371525412031766481717522604807425657073547193058941880595850417677172750477228634989500787276799321754432041632482128971480399360643932313121178785124228965114387108527045551461137257735587940950768275545402735699231568589923277381465238723674826898935595640653629089994086111286143652273658825497155375188165372658834450461983147437774739062954479184902916375864556799156384907544695902526340109468771085993371819195986050482804206642975021747901512788420224090041979057162422327901925007095064066018523110514544550163021414358513427854884451348305709564485028607651500564887504117630707507537098005784927120229222337183326253408557091071961583016749491039394294135199576820891540837418219275327805296502748558975099045446521995270621358951539833911604930256171149545755393812512536462074455859665019330712766233092315426992790984017047317757425236013476060614625978975706647413968315435877359748417584791848414385364890398119041197562642755528311825137429991993363269212929337621232749623737020087190761546973046295392711983537669898529935420716714757953508527571402287336214503554366341679943329497018245697935974382135605294953191854320724560651960126882598298592366185167096066968371527157460822497217957539479091830489596400197856837635418912466743197537326494376948858093444166941036491308432046272511841206354706240472688420111865974041169952179424573677291416583147476544281327986642192754704695550914515449783418840091337671462195815583419128159010799862518422572465901835779324125485257555471190781397608017821707711888019831563095709659445197962490039055003328644835584045626861056360355374421790954443442959334382984457836207847751122537783311014629182990349080128216269534000297162257828232699037822717440970322884963206950625364031713815112514348726308709791206194522444794534560140284992782100048941756618292745217945533625912688929889464723832127411398187545059286106052195163775806345433118008232333391176339195331586894132433288643627743631741560885524170810626319714473332755778918853953572867137507449860923662050979253319436336419195180422956727164472425649104260372318949646915617311537731395785372983114151189812209335983347229008056304156627552851033324450014237894392777135399620668270998498191249467409952260257872863180332250545032564174444134015346441501193516246891114128883823834353110927532616020858832448547149180252231099376281812103877568013426769018475032222946695904178329872339312565638288108082073113887162608149931415964290844849843426501170053200762901755098532587241378600943452045241356442434983107923993354800078140290982183618414167120230266298417330619499471515895127453055544255244577947909369565908643046831062820000794284590908558883230579934649811571478945506780118058995372473295255911703082266377413813650848653739287543105219581295518750609718391417580175363855472492030230931540130981222071546180446772316679005493892316986052082450357372050187390569882960751640964053352754938495424402633607906174248441347706203501678951994954851473753991015691614579953983868350961159184421622532881480111203669093047464178497913502077164448631532116612760340318852206563369112325154037131311898198977392610266654342060953906022217338994929673814749113447415123964972396728942122243467097021091159636057269595661555761301470310408113249673521557508823268366779626938829969001040448122818693649929771004649695485167568947463169852179652663106687035699483668379565296216939808932194772507609961183248782729570410637334042814600537781120800454804860391740229899539641490536108683640046509262630627707838955855536578296888822729013667042124577719683698305629711001650627082053922983341182128716675276060902956862158573359967030878066251560390021302043794027777108680467984407909786278078497231485796870329452004078814578702766442669305343956852050676708395243854335823864749453716176571949496208779703421627226297202142427038681731469301522301832263802669689602303631986394581461249459649749504256269976367521790237301214983727401892639939357191277781059814271956700871795472616322737066112230709824194522084475623229340392666031814822027669853350941955189092351251251033991426274305626177702618715844567135563229944910355960490136893736466709036140147690494563216427055458936058046283447908395402216986833946079037418318646801306616656475384291104999987375195148582012726828499936119764789269480117854582570020850001375440108345617027403495115433110820545258133738973219351660399681119713511660518695880308988465430676908210253914026796586635312401247568692011387615566934411400778433268080800449778507829594102284572634138339280682070359512754952067010322746564730741606989933179679666930597787870972872817023588912946509103626662317513743343610568880164792930144904135579436976748057097734527415644196104159760253176350379655888296937917175806247632027536304207455883525622803328549972138381634182808250133684489478540241054587919521072885390446507136128140245703570327072099872743295882983109915564849428302054934495682202814428426650108204384922716883601273268191759144213871498278860090594069604030855969115459702253456429378951265459618947477283357857036343019593443944307603140319088588707888946928814470257892343725701423895331602680985344337455415330124901389784347326806672597958779106194325257278586539723262777723324623331573331219754975481593028780635430957781617215029456451946439629928336916111852691196025550118508492819956376714833188542075486973277996376672706219249082413732543482313787460970362713388087652709104731478238495695527774437486662097443265353273229832856252395714558997467593981761130449603615255962940300803384960388722521098745618946443955280727162963499265968386321684769082862196313708377405682800380587560164028740070062673299983677615404955455111026825606595316449564887288219299800398036357806163575696376239282663712223204700478011810243915887694081387343992245205338664355916133669724290994625672810448887262009881051426304280699626711316512696456402319332560878556162328540220666677722735272016389130957124047553074195216771884596877274906116479716675200441831003218408319229746712244829975127238387302166268174152337135402254951542936706261073262792860282678227047020529924239366930961568708721630967732814049330799539909338337038475273275811315841504768890580696698528501706872693507998989261926034253711459913352264222118664113314696159767051979429379878996241128435731795846405295497727820192943403887395134617889693433853127920701669216742457291633473446189541781975511987023927238456405156529386764140164205401799023390797636408201437265861613221550057142529230653629098071490942915561173402396270428597450353305847966218721480387988359825941252256040404543789944851075985386714173743013750771398077984353739715587175603547096067098427700806639836058251605268291851624722675388177820201195404149879842669918779128525155328874908825106456198095721536498969825729425587870815100267019671169594323100793660740475854224627033421644650058796328631112843319621233631420288479582896469902428281327932236596709055866389336625596312128909615442292367943090261840905871338882911312168550142505752577958453264758769768136990074890866481416745941154319905782582787448998469112622582927060747251634499283531594271288406773208580246625889760839494018040590124868437921727426092418778971611175723773993322307564198280337706003792316538880284339680590114002697151278002762549006468556929367530309863702561422100863739482530341518237231301435733357664765672567994914338791228463115748580020844462691958620704810580282186430457618745874931606527171080139762518286154321022779459849626519819737407434536525471067372772800942523041868402957443176473557526156825354981928256836018120947527272161998013030757612811295996912861697487400540960873353754338530492165950205939364180589927711184577898594649682212586520955941642775859861728627104449226108306979412965590584676425679305596380661079040376076770671006195821725850058947159329257713921404969633621694123076347387185201483017654610081207217010406529428649234020526697478796692901744321039464347190487248561075920654393969289430287700805959614303510883951719907185187087122523383784507124053597119944314828362699134017271754833964751304782936392822102848676145478587658459053118227171378840324675100403624514512486872510834747408379330522994836692904516647611804079773929556161085699850609498001992723285486644089831459482049552888089828056980469443875464323259761127629154160671340127805479419244691552015383558543698977711455007374385104494326472092680025380708893321903166361181243373979125966199322811307783036660010220088582718127598380551390243573372736503307109557519890193181168624317752339576557444246300737031897377367907097634240411949274598307885306483802848977577176407001799510340405133956667137157114343887940962576014330830895029074183338361410314259225522891225911173038628092254566912870181225407006222730644324534425477551118923961090350761690387933383876395555004850878790431484227837026740158659705894569625262414590747694485370635281808389490800288676910764012048390425699391456371153779136104644207185780208600638992407716789270870487910353514961429402856742517609398652352202964127196099199164124548622619176016085427573870003103258481282527577337601894826549319887427994854787369088449552614305470627086258141336790825229431058012189736444812609660644035241496441702112265603077298241802922196164271747957658542637135710244923011208046462933932934704462431442829856022033830251826814104678985743798102342110817225293320585840883489111178140897151519836217937895074902997449179738837252835503744892009271072525399363847099683452463983745166687076432194940535610541502940541252923974109288862779785324619566890369448897071417943307908952674458316578429809057442893932224836285052234712417766004030930795398361032254129372108445671347400552807957712112094569203918044773951457988634548086044245415237895205572670921630417742395385418418049345253893434555089482880620696740244545994976876993654833192206835381972628717200543371569101395610383303608469820445167200259851882020697622883864440477628571186037683972584892969065378845628374847929734288749153076512815341965883650979051002098227591315016852296528765238969549080113840823942180330796877752478762566064184449519322554004519110866248956566844815192522123453534391229570489635898469613263690191106594611665708179409462814294579078673209063194036715982816379966179965054296793430472386693415945682289085444516273136267241785072135369092812810097628984970325901119436114237976136279380217352283033108095033546034206876557958639230631340233226678925369553023697644724717071456491053596338650060956555121769949661472544271652309383377019857239294304408263557700189099849090420537543367867032554596643900361207093629709606361878537045164494932296187294281421416696644718737078091947400245045846362620916964955659098400382495360503034933038802414325570565914530634724197408560826335837152032308601012613104632316702429888556552569245339436386138731275950017971991488254042519284011117737755061651647053226226468852662034644913115623803378451954665338965049554671968517292659330652512870641305264087902323734204278418044450135029785187296572829902492773226627603151365460212850921993360338710302267010637534227814259858174477713246628220206081780013833648336573397921266584141196166378451688020580975147505944153024160889460670344463236131453047739609926892999724871223755004423857422732226791640926547933167032626155448803325055457861858946314802942004004018406357449223074478609755137011457829775827801103167258192245206699528386417905642468144394894575106082559776748171847180718199678563055208835924701827897937376610486834019127791569553289243624717219942549457349571201929617348132221830323970756577696479307399938966313073068307546971710399386558184868259204899591969011782209239296704174607115044409401805586483747802935150296684171071177544970970649176335815580423257769256737123234343570421869688132912545444398482885630314716357805335506309464294529101739439031890908141711240444876412523455109079254263067268625760682773987175001549096607141713877781165536847353337075859231834314579260998251746997780988537780011974535141737367392857080425709881616078898668097868050169583303054685109038699996531411803749658241115329824084179329484330300621460541031803683405464468071818381703670147708120172715285538148697288499078736198336508320924249346638809678883890459201764799074936151862222098580204013672488914531059368459013793725728952823310387954427188221126869800009217163725949854277103390846912570846969191659195240397175253912819451511891244122539719938679235793101220718652410225870596576135923968943312962263757022805381053405111274350891160862867578042474980283765451512437560485295055504814809497925756942815452316014293449617168911832331357864873381362578962268560576881391488435500361220889585955724990296648255889322826406729820822091148489552337806936558278288795964041221536235348921190389016954322239509635106748653370397125622937482429241304452862139120215583457829874541590153282852860814064416313437544759568256469009731532365552338395469844550646881828260515682001043424185373777740463948866492086206343575218730158359803427243852276492502527934322492725437337449233615666510347652238206325457579234205132952562096789006545687574348430612463772761218747457408934446814919457357921911280764494330845709257893930393905430167942136297620736830485054054252192768889301552997905479435571757828258263541588392643696656435062264966612582192469678597182526448497818505451669372444773308272229413660551330678748755469451662783884070393127210367358449115621221524353147813497484542743203429155868201780412445744352586387713008577356435608688721741517566617336333461159696725287385209067259819517005969758682355979270782712100468656356771154378408899102805683759537082831374727027383869370163392135952739277384968038804488604818436502624741726034941606636564785176604860939862873725620754420389517118214419606625757212299411072932107614169491444658162985969517607530908848918723751427202293177949874277527998491970412939554307290668875879680098160069954194622713947793545724590910911343836506569169027373352010338958069840069371144710536236489303670306308743891805207088526206155407667200988877327117560865677638890660897724405287496345661214554548383491556381947051744257796770032706018122681438370366633529229471162074162356589073957113296955405078376069148313561014753574943652972628634750033783395406056690845336453087321849257610372970418376703874202227008874332220342560947644441515942508392669332059892770719572170992719016629960643003228280305988040514608567212452035647012723239641731554929789350178209002173628608227249575872607203122785763719843969387173741849168142353486361612435111473761388336563536241787570980716763647624759020679699466932202649881408648645265177636762134280109249457467587420577328828607509432752977242193735717327182204333582970777986284598993470128088996352236560312815840709167662879484155149891540590977718275995539771629356556350235069792577711925593175427411293089023062396018189434277011992928766393764873479870513118887037691821798148396483906968102909363131810473370561481760249825438541865843671990865053036743833170781966686196573078150845853212047007195302967100390384328954496834139492305761307377107486213190714090797134658161983823046687198717405084307907406174589125487049111571300517845517409377485689584047479642998055422413090773606692372701933494060218259379150742956478237789013786548498197011358251278612761838520245158601829944591394829007832891083767124847149629639835454459296763383541313530368315852882211052193858319340956188409154574805414940347020629244396614444355861347662782699992820699514466479722504336514892576016978471894043011475142872371879370791097240953150545827704492621114842511141586115474995920233835695906409808362485518994982606767788209764815353382670234770114120654046652522427703098553890488752338528812479172748122822746410818281494855681008632813981441331733149071490268184380148212571130285813351147127880887103684595461907528474594748902815948399506898133622892627351852863990708459876350660206705645254045594244432888250121273873109208811236520088354123768768716714652198408825576060522638736244746704217764688613806180527415720175269978292991116281004207896961209580352975373322567192938944460558939293917485855288741458397003697994724207536049624494940799320867133300261550749471484290040488221261294360376777446581583573639524243498206978556336912824319858976275749347458826328425435214227657894578462992629053035200561037487541227217348218396270261425262415796762909248305141200892428088583485715637141967123312860806462495213148565105548563820529010605465857926209935443316021348042088514444706305132778568847301796739378421900906842617248759497497291367226550234508025144958225811092605414291553390436434310690856939833838071566635823544533778621117344638671856630900406757189135861705153847592154208983013483478939896210339297889854562016923015678137418194711676642042345039432713872205147564879026067247894788799950054674203730265523767373246549555059946984658127187383928510695857612009858150243340680922801828197698286859604473279367870377324287290961041840260432800949825754367321742878910706074469641562396555214363115373513496015082491917532219466866578357876919287024100457833694749227118072017675221594687059856429698881134496629470086546367153538262429762662046814887732101130421507616375873498399413975690018955837189049123713040200152778501959736492488196572088937265518949680684152513401781981548249594301879996087817480544979841649279935813119233728676331599960078716995413528267079409454967042516033813678792160004160784311096354772201446435174832698144356905067596990928645759319488530852050030204977755118069102187599230829399325423190524287022111093542922065140907366183935265575199026304522302656475614813185171542294270408591190847505203988615009664689662317098546767154633733349560643534702118840590495013172056148511875328822292286371537419119150116202427974720475111604906059684790952775605388637189570575582044766122220778246933182462775588229819433781523443951683264663048686645678418231831868080838770819347579379885786115023849263874382267031949213243382469848168341110759894489350979535941195291264791552707006326951414987130270496868293442562640569477197353328081680450717746975299538498630548522973537466110015288794556382757657889234705840180241798348476175813382513137040586238806026682502669330936342970693349926135333736313395254530405394763341461460183491214164725014373846659243583022743295091186106302066493275437253466577732122650640171749836774008873311931220259699154983626173041214369742424480066389592357913362159301101604767855101533610681692576944070607645166179475817944218289952058012869321418453975227095656987563498151364380735544427923595022828127584801759281121899827509786043159495608180360780308348210522899000542098130300757584788748261376641909604341082612470501206642932305620165435351007926895937155473742056176976018657645579970387365632839738684757518453238768326589403832975181451329425837782636072076300116925538358109039527787639556894633307267108032593008778018177230136986455253370432307916746591448432458793227733665668391083190984696029630025926618654776101590153840187737882967014461503634854916985578745796800172705234523302135174818477841081915237815665540350494444402177283477697784910464385784541661012354613083496718167699375711113921115551700707124743424486241224547010932233261006218486283715191503937810878831356114806623494264741827123274777070130625597861197633043381835218777498682222239947144520183497809283672568381411055286326790053217886009536241323546372785231993625229923572467279071640613921012403504807602957022179787920680989329701869139929647062360498719725246879943602344194251753580730276394916970494609365443016839492119678767360504660835861833888870163261068333338635563651173119111575582594511056513081890815767635296624039323854325236789232805552377656043221811841624599948427299281386108340149114859231708210591188601951744288158699397083077485402274029292275928162021785116795995497394121850995055429773388347550047754215605019815651072795108039023743671962902958575857642447020054340506981192681809214479945902694239701936885522819018621939463104200974646770386086403874651877079961086943663634607027363075047475944294802639681870177147718888860036481658338234986892319050287562114683348693426600280241496827516701561456610699775560574487634855254722660026775683069858119077325277618871669936803530646163297221968951094870512997385653315633998218361429946574657883049076519405554577210826991300847491900697521481698479742569125258763227969869684310811902788977702947774958458859916405934988116315511992413313773324298128537083113177976008701148999262257723596472329669890714521208049651183814700338367419646211541029313453360165290145538249380374112650306393439847724544184560505960408118729594125555762374363731330608235703576553641757816594552826203324161763866642351166176117852605504073193085024971700886445713968546838543441278466930844919488787978428984528625768358905637613123729541353320142832270468825347430250868497224215136582134016263658792129862817057877909585757486723260062400375810042981812949196190355270601373171191631401098805020167534103038176867592324891320594595275141413898335096481639527412171928145143951211753829593219318827948282116352778705920821075943076510090239141645134947066885064817907392733641319316661611171128920534567335769492133287728285355834723080451732591591430118347918048907851021752154994128895547751241447646821338825964701510338919591232274428791472564526922756724147354055606849444573334064445188700587256984386522074630409635232153193777691050051734160533574705913157876889945357165120680790915125425020780310233401215138127094222923430184621785928346236277334227022421847453979669885291282627693432684132336069650609563185655899626464018028914273482666435055573911489815367838237284888045079460231715634545666631118400765842462741867602605276397053263562669112055639943308681346475718029339830558924610423873735354794545671869439471081242888035187321369284979660888695894729595939186668258000802862938887650470684654831666813164348207766555453084611306710552807517606548975527164396567863180226427285704772000902435114218471308158978464831563733281409370244111114860847706939932961444520982021665477635234061780449946583195544585505647827237647837673238793597201647323211813736797709289284100823207041418529676184859544826264944576051305440252771409550422581562673647603575386175174031848510091641952646210697199791601746253875343962700411796723618178471508246928609488718618556595812104612680123501120328408413433870086847060811476878952310685502323493735172237817866771208584996342339940555032786764621760279240810746997244559287982256736259977557043482002546254288468226896147552227225598402279883951030925029045815062868989120130429819420065540128006597110443940847568970000261116597088296354763519089061867049883797408594870882534818325662803808435123191781274169975711165890636610981245498609650823172817030095139638462410299284305625765270552063627303388547880834878156837935644952005573524870262898005282750674815314011065796534944930468797003177507274500750174239675097660052411169328557509907648475425962794960767541322436662459766765821891470305098675119049499625522401019663245569495601907170560272427185266288009520668444090506315219131289372563389537900500593658319407005763564882773782460522458653863370768918720970013152093320117439937067054982050022597670057173470759834500578494389675343201449491089170046596780599969415983666913842614540898617291462546511108576957871219390021709472314231505290358448818718909153163166688022597374051106207449288723159931995025550301232495848167117342674204637675869271613488034535497366726129605460041928725209805660553007455317815471977006148211725215801885640493484919535854275508027946844386578839529859820368410148530466484583671051172504436056026076541334087294564211240882005210399742550863648750539486038306275952786696833399967561987080399919039142937326827164610028684209986392642748404275512775961943682603168090418621650447261600656815886660734203119824645176528562061371690872171788242472310773910116498658997354577429965235566121278949736476463904525099228938911757351329194866588306892610603024552468886680318838608528388807242985910577741538537934914663561119482864988299549180488836656295036568208347514072353242734615801740043480414461588795946027407763091751137849879584520670705384425672874130714525734787841290325132520759656931614252571113659779671203358265519726735258387386843223540685308290485045418705757094431445208205410527003162213698334059875649079763013967279713181460206765294919081435247696351899131074294621949034586844062158890453188318037493564678808647993005450247709001332787349640829468060356337582088167529482068292588517649059779912709121242244562085708454077779450926440697982782720581325747531877940080340867074293119726957107965526215981414781889325073186515489828295094456251533777111659583698893362604274179348583270082798736144545008152786860951590248491928548520465872185672711013256402143819319330765235553345669205301172928527508542032320348509521547122991283286393737375094772111486200200343368364114029469679199717076885995275216870196299421802124108610489783687942447635590174456200773301155614697209376389812984300173900726338488268178233173841554858065482472718255464900412866033935524638455398355647194357093457116785861155064447016805368133450866558571912302685406770513834554494207427072701717596804247383347501081720917684515190484171265985156989741955345099125906545489167945000861630725952096157706928755944465979374819852242470321490258339262820180168372621612628312865611171032048072876243186943223063035293801696936256354737022783918343459971990718203430303256666069502126294130977381753369575049772484600834806645938109091758974170131143606053302026081005178520964008627665850514699631065708770692260277015238687883547190616930881394592394086471721079435638764329570037446362561153937393624013151945234400115782195197498594483013922169913905862752698742336537994144940466718497064072982111510331744658876517103160096094484683630984050628982848384568823384095299905693077193518190810501458209410498628701795119755981912614192482539680693900980971532548409667394136075975954541412714796588791491054834787339568952809820482956652314381403251656984923478208226946623197765960635693323446513238695168409390144806192272831945699968252649589346159056601572711324192832224251656452961519855905002626214873406112659757472530560232246915548785809904208486439147174282451305965164694888429782405549780596530642701985883553679884438795036916900219876323995105037746062706054707234904561310294410969540841280387486713952879082930127807608302360106618637709661490251237840705834181019106859206873630883698207578580700343239713283786823072472764846293330185773918930758864825119660696017363658683193665848323215259872345862018591582261286027922322240389726567700145918161550414593162034771950381609118978124934834556587560252404143879816398748784958262174863257843312464696436287627927359058545310853817029954170598731945073584506637020303074477859107708595161033642583036982298254420730357877058674592035410816375938007834187201705869244099666818800778490398254090457763415665739071552554398251164468905576329984233015185258378557694586620841561347336495173395807221926893529515323977159816590670628195733012397682597906418534623290194965833367385604587494657284910183629513198841593151944498277061709703517169511314974843173307890900165259348840881346888239737157764886199845258925290679256107801513769902229060086184510772620889591778870791304530106914377995870917857878246907761802985277478183975819802752440652315625233535168875446513241106032118046011164727111302339861129533809353420072248229323242633120095461339858323571117918205141249331627663141472986060252694471350201089931062273871307969674712595264533170833130110493280324773203287971345630064143420236565582173459759047948505633880561742848123720609389699716599439913688850874566021342288653164829148432253030196023485123035008439928987522683477226368239642788436600267292476380643992859949567158733395739445400962562495045323536616417936080365852261348741508804476206646305063548156792412144075218082889832389255080020605852475696176158052472106893034722773315758381214179459372954143964076754461200235147712551868573324356952501653060625230244995874563888055321223458689552009266388164545170312656383873563036836600946110088626607246633568285113465259735246509876758262456962261479552281753581413273739866349937134462546618214737736831429453681221645115881352631547471793084780703982571651890862592404032497234328080153788285919423178610187664569390979831838349678221279475958011064343649218065757867562630797090187756736503159192471717539672830885358505065555483339871431283344944039696715551221096724574261325465844796963065563826501838721150961128209338206837584255737711718337790681911274776887827659321402910245831064279837040068599091885050152756747836599609097601299186752357252872603392003498257557703954630003136994448367866020621178549644163069492961010892525904799990246080005623168309209845156077320770490315001657390143290449596560817036061962359956728442593654871491071008992961986796953983797147603287368994045338365615011549331243054214287698056297379520938176771081909073770099955705993295318782733908813630603411632218688089148505288254595624467526176509112423669245630716035064552735773155495085902874603557609125958646406102793936094933120798705387407049348145211317231422487671946046592177328296474739588672162204110167638127607277750183047918606424257160554055738999023498355690507067910905297669230641349870366616092542998070285595266984807062049810928785564249142224149045885344581357949853156051693296403888503714258928683121382203444478844778414935182061163730345202797022837969059362298240613032286711292299598805969669062224954074115064040170958284873285471265894894628487113698740813128872856160775323016003802832092125060339238824539165908572270424297635796421388585412330738264977248208943639385269577545388918303276576491964758172656942971588928245812984833907558091713203820982850019136915318693803429799930468587310898956630143519355579947403334782324004134815410461925887019428037667183543909761390353682625009049774642286644944139918031259886621041239792989289335359627537034535305870261208190491412171843191001896895361670162360891671457705678234280606527875383967388115111401179841793568069817874771302040277704423778795230853885763557734163836794236722364671733075381454628351158749210013461589024671897799614569501431655826210029434766408658769725133558204847997977625303603824690264724670678052184768224021168346949292906930771770558917487921564031675033455106769413049426577269617790200545325170454040470477472821461747243411664701918888731704310760112340023766657247055328906410259225619395740948015096386211655121985252438716381605023160071593431557313382640256803544561697186646633989923893462588312823081301000622283135418432798775335251169724292239018037464938908195441286449414684661337820856823989817355136215231407126307976390757002891791365201101888661826339154455346212793455162574914469603801802596791865498442971504080159787265097467086112081217254885480503810853936634463128863980805958013436387270909851469024696352552008649151844566919220101225095657299571172108564548220436685878476698611927883163828105288928183442572118163921138298179020185498898834706737869273586305269508343777253737402813847434156219618749778796998262583462917017722871084548865920700747474334149620056575023879890275871561276658018718814632299607356861565296037656725204876465019829818234682483748247508284446191383546693292782470488846633376809325971437285337014623539322965701784382262723585223494374722169195361659340783502009023205823277450320905233393356149344241763519685922506166710057739586060458939465573700400434406171495413184412084019652218890306036897651358610522393604273528572353666469108746726466730706912724453440246053356311659216289681212147119751978836006644891880319795120550339472948094941443481661243121218856860496596753327189656231051229583131261495684917230144887674078443830217599628329282524784410734600154738793004661898798503418717077971863535114486665408841353732669155939378374270143073586323982051325104286024767357930260141057694978281178374617653139947557336428974873548898362703013347346237277217486478501451297313702014375947631730304255171383625158148227777279355643214157414707189008402291236805443051982751977510251819496827835180322154988596266481428105314134166278376072475134032569505630134752151131717727405894372962505300080019750241293450787727542804315558191556423880966194108285957530352961116389991463220070871249524767558356746455564537075123451591033458350606324094281909140897918159037807537303047237749790104516167026413329181676443841735617158062488382081132354630713120510282129693532260267921351866260949948739873454694299754548371081276193804909668195709263649935269857837162807763454625341464848230742581781076506619311827943331316478847164816763939485264349360770466368253342573982929779605788949593178484997290788070506310811938673938691838944335207862873789330971885601088732015457692534616650869438279425721125538249265387411571811168120035327560129958566153613988113008847013280311907022839872946864702868665212764089375473318960915823080291303604074908167970148784255315052763007044276276972974773528519838570094488212397874206459676439387358322237362477888358805634109660123478987715443117414690784264752233136611931322081513206323599010986812124982811440569049951762369418283504318452946290515769839016154597774982576508134034393065600167365640454150244809214400431002220190685506273682103635266884299413609069391676752987796491942521971964511538395726991889730691468488205676652385479106631974290322140615452645219923961526685857507379555329885017122697964440471410348139187828592613552448768568892249537734887686179357961785378127158225570436054942912822423662347257247887613811365460052869978830198609114124063277750269104227527895684214991060624640191728930437354387958347509215199019699131596877280986478472683178319687767459928735593258815890339972265112363281740621889315262677025110291688775406573918275844557604640634347572369223341217415054912421044111253278093045966187443938938234031408367530539269998682964136058835161842072858345438068375746117262938528831747436072287770633712254890967224641606919008468247962242678230787972799766228494730677947007639409366437649667257608978045233078574785309887357588307430772788909165535069118027430316622467837733948813052030581706384004991199115366588256821109806765412033105047648499624777260778686178612410184878867989217092322125050148290232594801128333949995596076176779859868519125441016333992106525308975784565614889391242579034707890076451356349185260643451437553058713324152669045840073512771089793802032237020009136270328017125427276196166468402967783596400171993616642351609739584516658186321931602353960404433339958211084082947722338432060950416417402806768303828245475897632866967033166803267394432939272284458547872418004169337052179162845251571897005979203775690839301148602797200057693907621117284635936873241970628314799897420229587687772860725589787676612898021230231168357931039213074724690567298533443414942956255575833793768099025294597444458283561447149382118675716927606828451720817201593434459176282272308318166552443273682172630542807553103474059430168832742070932342621964637567229567388410878451156473705341954923027485669802406858385277274442038630329155618713992440733286691794849162664243163770881959794626061199172648379649812403373310119396539974735462315151931435630166215240378256086210646886967259299300602017182525870158934332993370321982040255190611292169254023342947189076069390653253824871014292585004149488345791107006778363410501876634014559660771027467484440043950840429665870268016322181357091554489374332998292463271149190050156948870711214001305725773659489276008170344918079113683488227920819910971857313594191873870838756249358665967600960142184621128830114935990691156881434379836973483641921374194897145960637675842249075482846646568152301571687283798855964161840726317022469144884704234979645472616122051454446703602301736999119349055393188026203419717329747079271935113719252155843998207177686722058000871735022074122297871428271852941829734370078788193051914169978590076663788466074343786286073308598827189801710352155966603274405808475546556649212448093075583603411501780175136175890630390594583684603850343564562070350205683063563613947729935868926976589323944999531783395501900580716818740298701261377156458238892800536337880612243805985860600447334946870819154771224231399603992359780267808231941813376931857427618568593652159382385406568996485436018503699805938283533007376757366840014683323585521662023946245642011090355866676704219125932133492074477908362571887910293774479426413693740716542372929520775492634547761685965938322925137073422868208200505548575408127167330307425534076786951613280236186192517103992972448950365182032407420811419916699038093649512435079767626116234831282940482077652581257028561557072576933356103616808576170962080344799883538251708531597886190728260980452162582105268597118276841284709573956381456535618233946076751669984329756682424302025455549301676954516818425006416879217750026181639463826281206365914922951244992533375116406588783101253643689381979189639957468821164582834444110508745785881287139296978995437371179624691366937457446965784272112270280608112991335627670714858297055557988215460090514984316341560904244648788216711168360079765990651572178940790320786507797139784213229364762897612337559961199049411689173441662633044205019896157652265949143175745401828530987683286506484623006214176087096473994828922716940327007042596564823939991932214042105474416263280545532491237111018388488621243384708684342772617381062521793476557124289184855020683173861312115765991916491733611441349728021427397771242621342254950219542563373664486364569023156900007870487104358648676142254420570727003156729781183713489446080386964279064026303244118131623511660431678011169839265714937250802577189206706135613482584524785468524802027175665077647111723825686399741911470516953112810095606572518615430148541927254905743023823332479523060161075862431565073159968069831704028113158774038745952062299096629609408249467077356968765521994635056991364320036228367310818026441310410995801038432889848407210037157646622402498048811790839124987718973943463793905448773372795777357071030142135663715312206109905548320326076134413764701989459838135995642974967775710972394455613618906118432694113587020924952516216082226478204110788895210665761482983475543553727500951763957197305133409615667599308459867103014373009556597292780409826694152113869702571488151037261879672661330311021337520220077430089137798102927447103796166162149642636734264970385706855454133894974622369645198481583702839899237879251839771711046395915222526755433183066679923701304576455436366287778068381189682812190425857798125154860625203627508356981298730118713091682937969891448427797711923892149358854335024485899944504456374597012937860647996814507625040763181182967895091290911330966943968774559835425248365230650084768058385276115972144099869695032059359147495546238590188767531182937546630372751348946737814113536466765657957338655881097295624465954655998110741239924465907429990456566111546225279815536952423724397478739495187221918311543061947390330918541547499036950895825262487324222897439703835511855714858058120508455431944326348889262305751983240632626201601701096174997110302106945066854265384341273993151324350145951127913440984574434436237627661387297693010741146488508210145827366449362374628300681358889157230882356541166447904429723157787971904240409164941192865482684835957129786660904306248240211192282389290720785436500381131457846527404574082687526586421462619778840681776776602885155045906368455909329672746805465833458904034935588372927843913105978376952791535291636426649215760403923017063166140617266471752237300968468368555034055914572569068893281364089562370621871054128732288359902331659566761719858095228842043129692222063878163532712256189262754163219830806623794129491451711773593731845422787421303845140348251047391880589078009165165110599168965807723334846513944366438058687369211573520780294854117751341640426317946897212125168360056952648843983998714376486288689636340802179520103348705415848949091089256889271872021960341957074969805054528114365212574398513402956608557925027191065612570674313383281612262188441794331870529632502711836209539372731665129405386123876204000016578402952725802384179021386645218015385370847146541997860676366655308301568885967116837492547733746838697642981366743887208241495447165798619046441365834727561590606101110896673119665731015619583023565794804264553124061483487029519531428634266473482801056956648691091291753326411415540278005808249311873838460612315380554461100376264661941999278797533794837511961917142534560701871599096814859847295873240588484186647156007041982984807227837018027751514965271118867117881501172459437516669682325211362896768767539563555108114278085262246348661459425048023584000472756321656420313696116098833821502509544569239594406300105397858227262146408845921911708080820233421846844921588375932705629071634080145194482618223549573628895816255307229738071255710508851775513762106033618764497839728079732797100376214157895890890878088655991029990331953837696605306311452384114463129344210901782514765555001622869937701938527679194888074375452799033014812001922414292185885673387900151983295601689385389953291835147016978551554232326291104479836639671592237605390513044598854730691765119044135659172409271461832070796018142278082424540764461573197596029339334531137647201454062781422837634551053945985802961261322176887244598477667343697156059494203439772215204218223325646091159538524091225500242460248061473645286439498984454934052151659211198026255972294838901232187238917873280805928827097022607979733257948846014008500931020823043828191968622971352293668578044233714812083458152747385189145240741954355372746977385527393638012119143189337211069562944041044412265537478660521887576491419982162387097516503796647920151956130950329562798482290896744056767440687034031821928073502782967451923177966961503067753104664508981365209152087272792932347160952752938977781810682072552827192131547424662175973503057100107174590474979624734273743838465312594539214163045977422902429023542686113141211495030300350855364134762918148705390143201883502350459261854112723377859199315244893673555171848502526212764490425352454149763160570729708328694536258654519703345381404948703319059837142705245734879169437543428031749114436162323631440956685216590409898970213671945589303532048569266672467621660292030593139146426125949463769283292025755452489776837009477935646971410945971653063990253165145112305792397656696198533730027146684739383871247191706495572329857134511721627530676153722484347515142394195602808399011243335751484783486721575112407510729801304784343864063925514562433574779600788221717049656023585432627465171947300060921913576101698239638277757875027854470857313046990729127226516003945683462113991807924578602506574810773846565386089069777474830463183697374381429822563042775431017859227553698097917728162214724693966847656773050285964797655668473792736466451011035729844214909907236228884905204833332406805097442837206096466280602750030319519262216568461139322926560948612221620073120418121439964522529431723158462212565927421985891766827066324162046539469536115046707106925172530445591219260895671553726388598585803808509264922475304970575979692545981028341004721322342807476090252477534050256369031247527158311556609538709431221746057234844258781812902866169071898184227037313089208761596525547151714571575410571669491223420418533667383861295114023722071771086345426553379657077392229590737416162360269217530731697593214295597148443871417877637673488679110062821914698876392696792025163069382476838609883123103686983685564891018956053343793778557414346603641164138709777732876201203983877919212996415207223370793200698855153361145835279826765773456324045093954349879396269917252334755671198193797033075117888065545359934535245968893977085232428385211083314884312544863722326068877000037828375226142891264850239562660889160062852761235501278395322120525208895382048831618273427345470752306738799763836594613937380198884955537256552752355596763775621662619291919304026928704688381982925401183498174739656510705128004572122125294580793235825843257296989101539800530577197127568810503267219230954430434855204922812137114335377552795450504621696961857282269614231504706555959677177039921196036799879958020855231973513273282316707383906868547486316442519801277150203900677931737864517595864392827971856320237618629691771507804228141316079032275370349859489225484782884867050836237893293590899422650097282139140313613926753083712507074892351698183065353683330983698431621243242151819829676036412011010801684403024332599617601311609149516790618158104609329371133506233711255390183170189306272190803334399518614652153911595998717401082877076298067273121030529478258748973983092832049829804617314158109619820107869980240971250361248349913619779206533753456074760883526078241724746914949464667175647563115224976105102198402029008794229094149205951129835503202359759514527683339020372250267625512863187404685176916281329252870219091558316814489967516241062636930863056095905441461527271900397265188607291639774918995716552568719320751810255699020408324681083184347865630736094696844159421706512574283353702919810845284479409067985542222374896273951620192332621176391124826566604713248504910132523196557174282524161197136406359229842867312685831853437293029429039759976718606677843594869314671636567815534554596341401130496869920378087013878116674339155805912591951190187873955653823456919909119808470195759134336592939278032418562925208091456974765667559618913857239322961769603782393127520272377421378148147921976874709597423981181481732560016993270270856383510332050817184424124669353666093194789406544846296547752538470352199431392800139969299620188714908298435578822396849738866984250863957287128783223216548518529252097191756445661451465446049291272214167666477034144552765639269647371571667310469043520686262921646905685302664827813945258210550030202653278436886914671473602094520173273462774450255748948018881305681134348013816560728546541358889002660374711215352549723777946053976652754952141886542414158589459863060512239911571171123030031861655683153133672419781012357864900258615495279371633134826523434629762311929427623169901667348774292574800954910698103125654786228831185441370450187701637075914242929982152907809491653853239784584277805326500413904492869545760394709960872644179459343151481212134382048444086112086560862502962104242783152587881416471090063547956881677369155654873115960340288753881253367185565465901893406482864941626181991427976361872413173014228639305848598766391056232099676629676968614908613578910765417646948439589260743566336635919421233468299334113328401140467815892519511676669812667431393091938923939940785973147860603345308605936258863666953799958988738402921746484087842234873203364796316543641396584328304290131385939135677986443304290722581969349641749849522515567382152350276842928397518187046218013861364374450288702089674159279467791240263545838995611577032342150264424748359908930868367250718220150462095833489099081139450044572630352790315286800738744110905874071540631134218807024920528466764024737184771442849496434561682268515646329821313044655993611122475912271531796086705934651157051730772183803547920412660646697086635979502550586328944395404249704652520994849839195662858840940668229484240635320143607270003881029949990733515213208741991914327375094137036192205890186891577222939889813905454101006192778518809983464161709702263535143429936639881150314616819400084985220584301912053567962645254796857189752950163907734868712049175738286107296430597431702816301477390282686547259724518961915132732427390919976742133229757751878573747034508422228246611129826195213195276267193288400112742167110030717578914946722472403141112561560394204474021615856902282005899575758240444906596685637011859765243405600356001535858927677146420401918652450418553201003344969636559225586032020807885002209925100335981363817102302574071671287965639095077651049526605117571090814769126722739844301341365324215724010627268596980908311700391079418427234635043441727048182919867463156296675803244673251932836816074303387440053966950813404433855218640736344777128439911057958445085164701659410284396729565535421257149421278172439703440445780217153742427888252265740716421336610989660275818309580076418194790305958062687219967217960066082004878363903964824874598144161452599588227531559033638878483729891876673561860353810663730327565151236843914638901209127258119804151480693156764993487225321114968665220433267214981000158621405357023532407604524856381654535562008675166242718699836676991799986782065204243473393708790369124431819937264297288263423404239251193212967630015919305878033366878741897103954938257885938748197339767821800787344935064522971487584920650911753787534572174789659309520179396289539708892614692638116887336305729170500742583145186971871343419673173706255191431240686820075613269924341892561208924305339657196035248880969591337368347208507131917645250141334638083702030934144728852360105820998274091410698291509700030699313003955418646907126169816331594560405845690525420882333567364574568851602800539768329305884546929065639031091118236395857037331229943878842351648002978053208212987558554079034893361984431537660611774147573652034778045820313543595429919485530927996895325829273827903868113969275327418246663073694165627745410452044081591248738049349292980929269521159094738434829010788711427140439406925774590862766807878679135022011521055736556197599148264049683271972610938834219659668959746106654539806900484151611278103330998187029478312275057847470928174884217872618242586366324665408550961880084804394981554637518615945058885999258642268425870815085009269331282124299188078466085385380157962742661921389470206809112044299653780979281998505635405172871004630461933992296192195724193095418834826580372196660243771026451181791179676265283070767050753323853773632298839353155652787313258502677921059746676132092069512482844619523718775900257942592185610932480523353068888509149304738484918429909979277659241791452205527153270608882581219174610447118004582209236909747243085835537750501082992029327476068798239645633812203927461748291314385395544976466628988438569019506892243187381502238461627479693118450927814380160583090499933943230584627058447147950416522336597215372686248362046108486895380148465335046756554354487431601972778154602036938670419109783335042800459497628926734518440492369125589525275050983016097002115884275266652873454921746868426824468309270704161530999809749105208388517054141612451915900547353883513107103467448797241488278004640485699354743216554967420856246768024345334602800401792194902087348641638123682105890403353680350368180618589918185240831286292656380546588719111084866840464327376555732274318425065910400492238574628333840331489969702605196861553378812313049979251206713559973687582336897383075638625525922576057165935679629480978735895663738475014881657248245760118582180295536443693249047655407522556679696281002342891418580528235581149191998205590096304600849851144983757972169765671286376940615271046020633899121716478468155587465341569134993811914958070608076571630154137429085168943298175952018703092513126089489738695152218730277813912842661041149763455287947111488279526822707534776755161054026747500552216203716889427686485332443449843323921020066750327858426280849586363883476620970960446010020485973187803244457940636422461445709754363524402093048549522376261396177692239683999615363313949846041164023950353102269839442546306374777602032579486079034663296050615721973859580162951586152797534920751738558814227433145990516339452043198467053314171107020808822069230848869087343534441436124128885890051155607530011355600298091018696026435465275555148338904817813295600549902743097006009944461767436024777013658574559556846724691698264469807056056658707298919928618532288095531373517778718821773543835065094885731883041495960269477827602143325728827114961358875746709241388409998141220859133435069035131116197749539843002960979165424751113450614439076848723142878316358369647016501620336785391417623500025874799632810482480850122035631584649502622009228888986006802072881245870169070557832275168088455635222381172999090425820348474514976462166923270257638002920887281155394265582048023130993867305728301940150442531401158656233400982794256772802782805992687051968615508714019055079400233639243276177468262672801521913314269241018224169791296674198692548454442658853176413387184970238525277669129922713486988445243938372412567938570682441604654220080516123259305389148360213554179959769332661379229148214608536618100061813318488556090793236061588771594975787889477997287430835916235242104064932377327270394358617262852806260023233812790331195145310121449883858224734947399834877482216409721352634489792810691325168986669847304558796176455301502238033101103364323326367252521142971189516293901614602827834777762793066285182294473349003673438721230370038138899455691832511181596304233243119152818110010927305120452905857837820627334390450997884840888903653547386692282711423950914550703081502954494878706551202108882602646770052531604441436259870792998042371601975806703372708843396945944585861359399997601838942654994811052743508152686807060687010309351672275295445423546833332876199405824781673005336099910213498570725272426178352520812340054823606016097254455349147066091503115441225710744846001602372340926284444717585940249940051373864349341805706795403576178864445983455106492859003354370493593352963812558543935660079429917854999808643501610415322584321550026579409940923686225513381190566756891746272732296411768259794350019494782977062932329284535315725069578520532094838863247455148998874884723642200916475861071176622768552463515625607888157916410172410573349201286489160148927134028060762685977819675108087891564223596943091510925363992657989424866985387662025801505680572976777853590238295964832895810950197461924902965656300292542793098453304083228691938628601549839114131120805822839873686971729707060135063840967978163409727202541759240902171369670542334714853324618067581038172424533845515387165614152316691540151613381779867937219969981332487391655146340598231656603460579187443896869536360060789414713151090189277590663572133866683531706471207725078891632222793057206310767639210533003648707806440755409010056501785618269234435560047737150982192433330192341837037115993655508224230109562613744181095338641355615511983792390526434780291045737417883048233236440599681548150267445218047050868088000877773161610948704667570838397263633553179379324690776085531272036123948697995257851337841692700188772576048217089324896392058522417533243690013017141939746402065067374293547084345016128434676548330456802401283484425347440117054245142640072119617780425003928843294607714010641912746067578887025110747935109637208504806105307112760925338374135625373632790874109890038140345064058817095598971652404878275768123833094682735864174585172158765536627575112123523137025411932697990191185362661594763568341442074115208424715427843841991612611113154989455391128406601631660441085335317563661532625594410353140469208039827674905210055864382762377145817155406020476663567082197058105681640513931557979306564860087520852911519376017125481064608035412122555646082447967838269732040234639475763098732683622667321224189579112041339768510117371315879732827741509052065394995641769305084960606525648405839269008771196255741950266630512255684000519141054330612769489936724012153081637770498736466855706672978889464392334848789788924841842863340977578705678886920355345511799725384929266714542109298198299727467469456202829625841700362923264703864097182425456815286008275379508001604722881321064372603944724693293377583418724443915180313936747154384459866885962504917770508861037009961969733298141049939327793707174586558248720997961011571431489783873298816355486378311839231586906573767366277480892998000056328350827604136324251000849523352779821981726800349248533815001802137517152643158459046093649413384210247935208574511116933632078568876702238451761450466729282267325923802904860044827600247055714212702063081321901196077309460137994479629827678599574916077004943227842329103876931224885299426137061465301554789375856076092322710703387156942064576646757372297538599814982917302309651390093751597620508603005528953639883517291608961105777987620535345143722986346802448900926039342232494863130904180071964100892745854002674739744666976192165024203573269801094098792355358873908601439729413136214564919393740438909008064751163936282806140904799400802382876635789353823609502134926336711299924300129099878597441156648982717965800082916241000250734124594422839016615073016402448789922855515932381995519770024105746539964182283477596760489800689576924197525593978228732456801293508897749303528223675897943600104583373138046384124513118713143922426874545236066491281596134733717892790380068088083403604335361006375525201497051964390530974934980162982976788655517344119707046844130743124978167690025501055504859910171998850137994040192742616365035854853349167721092519167726259076918176960137472912812131328291361739462242915954259432109463237834010426751687315530153632027167120273075248357316386508920418796276768119008346918759526301916378735673279975401693838826701044092057695642115987235893794013712826369544764224106822692855160232421384384580948929135184801357615077006335615261590527663290131387608959854151139542879496900486337634350286238876645711211764299658394730831244485387646896719720330365339975500544340657194569336844333745623386863412407745952223913928071310470801759826623198856165496047677468662215868148885512774358385609614028249348358053034815262941607078292141630420271561201249631709771103493007267824666037295358317370112361695694256893545379078854897607303860006315062346396534918645398709755960447361200796773975053560715684937040194827510888414085561464614497943277550257712795120411707433332381319828972220436366884262859765182985035303857749088205830966766088926512112369121265660142869333151519817617809641039392076398428783172479728740642239320907266536661336665855742210734840670073903856297216011976906886962009860105274523136221587964448346067219458216365704829586800048756304047728004977539904811875953404815714063818722646722254174659744955648986170671037300507902897314910178025266902957738840568426713693090091234805887300547341647181665414576257571916785333474077826103439003521024303224851748953590528789984257246135581101760235070961982617771138957825098453410562658128924356853461398823390938718229368870857068721101222620343969353072724165561450574260860615962394261788712381247748117718965344347906331343786950602599145054505979250372759552595604549452174494376183887944529423554503285679291667909149080111296134220010293529500601027402355145648868324326291440111985906054630035202258769949754358951271141616051440971486893729801238054674091150658099969898831948626817714290514948862682088452004438845218751424911459574779317734380819043050150442828063829457482532864771286045246595182393485492478924542302031614513341950193717124088907747364669581994073707130223158415580531428579749813788295616172757666775748264445755532955420762228017819417724430907781010769900310242374053017063197926738489396207840725616755179296930543118197219382619688215837560045126830966284935088784686739692854981938451734239648035806221062478291131578111765859826293037530638518102068558121929255554575572137074717602396306577974188149257625291047855617599659957273018315727120335873966130651743440654122270618839784968230973335200204801898194395171441216365203436338478977362404443072249640496945022293778418260299254795537171798310447350730991600260842903832323511080178703294754856336599470394813722830476106061332087900073549931209463932711216114435643883059246130909950680989487376090883088168064075302209853068533899482480698664302135237012076690482952406022914825698734997001413375601084549789886428521752185055689181913245803059308102470902075809775577796121968692539506197127715887314615369027070449423047953244376800561688031682326685031907659931080642512663505630848616012032595543342326435476226806165174344636683851576469361194203668912823874972961832894786682483845667629481284111645707732191215898933416754531530739074575794695794602902263806489953283575715476205516210312480286172692858384105477323622345806380088264088074497506850437913586676373905150780787954985528327268777395768715149968190413976664941095848064493105979117839994078643718718517940778734350340426033065332470392068165823345623385745761005166956651223479254763074541027567368052098368604742662404458774313175332584088500897130656167160408344106039691129717413409375824944620069433898160716607528214770985070211474010658331554762383971409889622559180118127914911258098282494146428883813160917538990235443064157833460543342864649801085096614149925931335337364843528639217676739655178600928597594532821784418961551159214573824479020378067367350995974290466427542352028483539582098767354825191169596258169072061111293676321245775975483601942257658674137991452512113279467801684580530276540442825735347651343562097529662973822976864810043085598233317067704899889281273167799126610054666032184546681345934521579647161276714314073628258259638195454422849629475532132097027819096295230278231780935209300731682148808784125987541348250869349361761507774698061909076824373336551302429471817802531963633462527803089277861629027108125992356411746874381720679482837265438062883362860034042775726699660422598901410429713336793787144590076454260229744332094735622678188053668937196859296197216072861593600497812307567181111362777753196239068892791292633237284501027223145367826700389280932567216429709833773863036021807299874654928910001854089096780841093595238150044897955166907365993264251059857340393391056816258466878748642014412733337383402209343767285960537026533841452563649302744535876506464232819058210269566616342001468529491833896776428067054782767034089888806611919422875601796107106413804368600342731086802174587679030375309163648621361552704463272114521292397945776544939531407924994325996834728768502399850644638179326572949106159058046243401973422834613499304793103271071675752559745910418818416034119730098787005807505999827470954701052675042460125313226366124199500082869124701833506662893603326920051722029195173508407750920062752861065130428357942845479188945809709035899259546823824890042691489142514245294838229075582494157036651826985960056281304159268385826515483108367573113345745777026010168638552156283071454477865377819415116476788492772259286622691925766095243896684732597131790532874473424410639958663781589584401960828324294391220136077581236865105723649876217278926249267604051382846100913329913405200915352054849810234691930954452192700055955502784939914813338054512476453367484523258521375868611466280694314199093468591403469424049801031121250387597053591005690489207021405556734235682181442298606570369602010316611610113655489285174991840431750851869889246826447199017177741999105551848702537773040164269022610637357524364681777015574192699479438966067621631800777948636901734050946066587891032956365603930678292757425637115824336996423578964504572688432785303528041540940206638797453721882307084622058084541408808180653362578339832009565060813835140967113744576923677372712579459694910391730550359847209693089954967801978274281712618129927030572680263165142444930483482277810568192122641025486854550549089070556592731602020359583736848502141468562853693552156681992370881028752127427100461789144729543549156041480872373635766270700010671323018062394273086171339394458593909676784159302222035298539983716175709781447373972206165127581884690881998741653180585614629682800691953425692002544821085252399831807943714406768890965904827346602970619583674722057376794830276955961256725568480798243235841832924090131892031175460618125820089849017672986253658815493984838146268708944276377045646551900279482465584491077802469613086691472566444050330470829589013996612046944563847504116590226921720116056178942078087863653232004871229160229502610136703086456263347984701313767039284456157894602855885269291505589253064569415413225387629041664133011688123747094247724940580137367828296223642648836264831657779333472942571377773176509429581168291238370035980338302832810965263990724473360214293632141461384211448026452458356019154251404492796972379164684691830153421847938732478131515533897446421947291497251868160260320803209338019231025819491429109986713955574968365979340526880645768801394335469529426468633256675367927132832793447125671057568261929584403995132903086098777465711222130916058919766310182374215385154822502915482849398652746130001545589519820997684472820928492595355064403886031835857045242008418515283745863766556611373234579711565677977068247025920484348811881305321715850392575834030983813410248040834388975272569098820352785503155191446168011308449673468623977223170486298665949356259600234564152719457999448458453458780713675883210716963910897767026763148452013641327268239730440026816228944233618742283786086591717684685194946766161048259630423722959916686568559028313344647555430235545821691255916818545019258159097374338048408743882404286946566180789390385612794837085273505197815321856898925823454741537007806688167424070473803849837585745156890869902855522713861548157402988848371901148944216266198574378868643078894377771701458296832577850325679178562900497926009085987616299223796403830888564693875187103549330827481053436624803090859463926322952926691521437877808675547090735352703006025297604715701833853351669894463633092802544687603293767933438045131362156616627289403762205363940181185703776331200923396262171168527463363776319969349968524762655427959696996704214769594338775024325393767000017003228665779877646266801477132337340902829902708013273501431018284977766906436842323065727644985075817955838977583666259417630881760839617302579628837654958054178192301117684376689221714702284337359171342871508929251997938036508127654639759365255568238385641820138835095718454887365378623398703888138890240045869986415988298994966190616005106876373238217477804400514540305199676108594562097297777179326218834910801446036469934568622384972400024639346221525518239786049717333856403685364075946241239933716746299386108102429113461423100371367188606014317344875277977280827433614290322838762577142608340263603439565663119537582352699628883100293579130470988900398407756869548150496631417724716874258520231546476469039297069488941164385817925230909062949956801733117466391759877437719614081275769895515582973619266901095497534252215755409950633909260985775354821405570551382750935613424049666019490734717753964995071491691354797781454208266012739817596011379367386403158397524018091878619805850742097664917350288547424699880977004934092568213890865415299801162441230948520494915336570882012819897362912450166273611914282001737142674705419138479181700589295207053677433348475376420423240512952657955689769408420026248348678237510473725577235237834156438844053166018177664269059555782488433392358447383927177325853530493804898603434591073422941648836827474609045562418763692136958691189120711273940952189993489281152002573643339401558214160673569887814440381734975530990089009552330662522588673740317475361669336896895752838788952729862521431883566425595265525968258761165477702159261684060194134696454259170407550101900959368126933121995009600589188878064105308810592062074583392559051988499776599380699757489088794997784665621916769817338695051384084232666055553526222228922794078190140105463781422505004548003723462003227974286816431025841558276405560978878762401064675034990432570599993384646400303801180197914448655953163254666406547409895549480982273045356000173136985462837929449755340411482346655123346988830087259171443525135711599860933914239048198046922500729056411224791760375742264717720881477835273583959652640607445423417111062475191492652195684112539523636492722061259945596043740322795186922953385297935761182284689344289449032435901830054750611377212925633038282135413520269653492838607655927852923478222048567210066840295625203005019216263339397988122187754573821747763545046580419698362772306096746412970350484464755293978327719834138348361372511709283833128312636210181680476220946625078417406829560901376435597940762637153610488909299364692604969255533356660889300420586644040931889649636361777428704669828363123056062692004082613046036869889661440905454903067355363204031378351250053936936774350532990037677295147788799134161404299208364837818070461940010093721952623889845964083214474580628667995518377235862701790405039962328179424171225758927844453056689044688277825301184530468661496511716675098017041124613226365352229058668349800327673030145213937105872895938613091142499205472094574889940891814398403893712618033676679888672948918386292935146932729864972682290998116223043937324125235302212541618895263170330209105603516134546457182150865782398119706240905626710243487576006117389717068611211537646780051230490356998215673090110382863217259862315989544336920663529582455281860335283015162537775473069217313299273987221642262092920735305695083026060193069714383252159697994757142793357193081230192412216308243338012900911085046133895470030651577402140066523649397394529864040480312234736636642365861793758703830998178963615957102747634549409895622328240434872765773812232591665310718672089224009614549043502287518651061045320035565690317295627086558485508637507349809338013382290171174384568667376396603219982369542470903946776235245615958370619898784924014805117536169663250283841105520817563265571391239583835792302566136524249899273686355051057807449809872336889771266290202999987260701509588592686504065855130490027980387513965686246621913658747889631682453770019913245759148480879715862686798230892543501406816652858090355536223569532200772036661486904052215020451882307857623091055365643228323510969256250818820514382991472354140544562886840493670866813510542617252552547766465939133198434055579295917788133891391726125197496221848761492562499605833176286531646918819383402903103327550147567049325251716795301800179995181877167768837000609160847069484958966137527822760206248885309499502420435275034635531717352353394313794978987622740997457043405569294798768157678206962943129806024233932813648798232158569595138863411969548402489541033876900460288665020681962862723485485264074667124061583837344351263389229474848084539228257602295894616922118521602560810576802850596734466050108621727339728057763283586755423665752146718937905234635074867048667360432161873443914943910359565798305327021341249422037932738514685885836791846202585072719870030722007490646737737994752056138561903455056054939948639173395462410613856263099866587250568755319832701497274768758668141091223348680285299844269718357930585295962421396753326914900950590718613867622127641640185205769793766760174701321142756229975020890430076411574272416545850386407680325118430258646142421937382464889247763508572647078893035227725247488817373646115080193086509592153247607818234584914975150737084993228341191110612068260692046585415269093881079640269971236119813036545604176730287709827530863754582503161095867446512773016967362881088519275427552089421013970855928704683747511302824520303952875538531621399671772062522988844082233340453004819254652202764375912591545131443539543355066624218315373020002759568192720557097352733958252486723059689793628779460873052475531587105986155214376839783423227889637147616514276813353264542270421150773285976435778268619817489065279493079896005634133474496176161814918910555772280512160851142635844694704416745521530772672333776905897756140193281325783487857518560228460962680077537838350104201202128917058215741340079225660814067701349173443615609539370824761576937696022751607919941925476621686884841193220807023573254300015560357218146266742521632577807155498091468072256667073355124890597557177297980593625236829269716519034912627287294830221216467067011663721027337139248926692478220829319398303761083976199967312357249018815644669407889249617071861515871191837952403398957468061119189671458890645500256811237062287722464520006429324261789190054125810355797408373793859023310376961276044481609523697741173499747235935506923185717771489013253680142647944945142029960261165677839797595944941822222412669081524419059213395201237005104751050725524997663122329276870394351167121666052679057316262014784324160140794294282274835778357703873355490534309803705514894877959794978740246317340581494248888033200781986307543947830273520611826358723022583876847333650636617630445933788430069235036935157597149762774180082206054718340447496940285917752948889069079384307104477782010158869025377433115591579382729816784121181345025356552812867543060662288259616051259049305920530115686008506129338270279818382675782881659245030847446770848096455539917987612217129959936506617841088284653284848277737035336037663915328076618578000638502525560462062071588928412758440104594826560711233772586637526666936382677319125330499155597911494987194594083175793393158435880979267586761230720731258273538940271060995783998013503659103089377514573869834812890128584018519030592790324941707610678135253914492901567337051318738890096614522039922269840435136774860355562016466380520256078151305603545372845051463586799962716065694227443575223180305935589111938412047470534232560282864000156259421741663048701548398377718261863064518375892713675931446063121613595071063479240444042288445831584000778736270960275740509715988070512057480501369392585857739557246225370656701186516900812804400467674120345694146514208212044468305919523104749576183836537212623584520355220361969572927497842279722130585443343426077193499570019571469346317801786676751855638631203234267813570614408887354053348800475615945086950337694776860634714739756681032500598869999089783663224580716506432793051987622158578158528247899236814963909542824296735914164501907100981911018289807455495153269212816788909006832088686149887062196535610971600581723670091878830460283725710833288863402736845151915946761553074177611964660845012483916654796827935134472535466690694861384992439350647211381003032933873809379884800179277711363715227358506240806231215271170842972340514285505180468340984636236300939903870621928921591169270548488302264149350695826797308967217627123015062451175201294478741471884563390502250345452624728049482603037749984277109573549779451661054185707496881914972609684072212175979321550677297902205266946492193391726122361561911319921044915865062663663389735529781802083809158842641133800000378874329713101092686779819570621581453669277216739910752687304622951994522882097912021838435833133081919782861998861780346817210224297627398153814489907387167419953288518506173478484058966269826419438750266892795294598303634802036139492234479847966460392798845696782440484339900276280168665755584246113165029360359503150588901321075570269344629770839959863509486940834240010294636945243691445681849522208417011624352790110888314563051156655609929731370156059548463870587015450795493027678744342009957014945341788486769067171457224473736300471742453862811254765089255403714698455272649200057940837436186232794879460570355075522540643139606295787621819223102175964656246718311674811183908893169146455190641226714844042245923341700608932227958127324374587684540195190390719435847179745875079395513154871251671093630383689213613875827462098566473265770557234452122990272863781003062046311739698706916352254079843478379545170208217581210347466422946115403944687717842815619536657535992852563806844775253177217230591800165013593682327611364354900951880251539546059978518010844096216108478026694316159657017765337786385934365003155116298016534457489306341288043992219277964238262776918857561395551137536923992643188749435464478472372838963843941188856962604200090576329136270214777689064581593513551007562833978230504797062068199346243415024160042382785442259532819613445758483975298318282973884671363920207610236199228351279993820369044689277039475201760639916344135990474809326315853858009969859686674360807909091849395132097053824473777224597005799931754739693688115109182649035540192177349076896246120491229576487885018264353076896725272610150916777461899533902126412492951243575502692068372766637441039998475966340564083185177360351842761666012063921019791060853222533573429201030802649667720881934037225488241273277193893675250761991087151848835214029194875017407296235203672468198573152000865865916586289854538014074083087055535806306627907545250461033807144114476762323461629211741930290001192499342128111462543471362085348197236227378920237304261701177823232771623107524400750885959242939224662796400670753156352429015642289746129041710463747097215030572723778629429643316649166458539557970637515071804508597826630721834162294701213985759206365735417938439070752711984520085360514024198217785209252998458273721854489675296563268448567566239770450004939315318389954721530978782211998902805177108210090252792731460055288215171938969864627852312506690864841936984834187629592546623821077107919015940029807854755057938255846072375806297782414666113253807867859356196942168294544830215223087882300945989987341028402108992718989112197745106484123938141098625816912516834814406082585735403872214127814904636449116236710640569074031284123883617231764276193882157334122359421090915059916433215637553498034614696045507338598052723195307763987563902569482480478731739000307536537492141381559686087234890271625056439795772157959614214133599451265590075897368346916097027999167511286634588442904138153703297246438210660765531811358349480445200953971196291417926410999292590448719474899960475252423226757806514359119803838196622378097161429594159773004760746612485488432022616381743447448853441028620559162736917750388704066344617866104898626529093663681256147894534775838162390954278289242620958583385922889708509812429577878389266545341458055018291684876201070543666882484847623254600625192705635211689351346367881030860679631742334650487782825274394348750976249719230853928627662921108451360082286339951118635261864463343618002729959597665474299632007369930332506220271521987969469409101687523961667725273961397019021314114607294600077381960939272620698275634671677118516757759225103512470205488505918398943300014901113810128353223199955349125819984117419708537334948971821649715081775982467132979809963536208936559437083462804520353924008805599717762577175504188756328802909323988525873448902372339840791421388389148033435510602083179790598943674883857548719111508495385661155477401824249530225044082844126822359714617718575526979497921826553442791692542374879822969887858399252980124299581947897371252643810319803886178667670120798766219539047744945339209208533661379283368802890285132245430430949475935566566408234887472778746780809569491544832986685637415239619182519043193569330950107574211063233790001509442508534687136426993490580844089722937799752002663895819758100169301755905324469570662291200679337885014277382736952478978425309401922326209165505925653924685098763503681870298396951106018964675296855173984582975810695926557617927657473105294087038919307203577348535428855635447953229783248999156632324280841867863711818669066265425002230486761818214578554664541291523919436406320189923038248701544881577362293494080181391017122720709845825612288157524121793906725130424168152606506484221003913969409480588156343200779594079677137512272220323041747729963118382018258208224344993541974210531261248702816028148134927592277511202186068257140788964505079456427173076324310212147806799826094224767915134096879233794602304660221473557814648810472034515105512626452117501209283890154845587914332165254740807577966158678212145559408739777435581966512878203244938995197774177493410097785814858642148532867233213429655448175311614986393923561953158037646016410698256405711504849401490644009155803314527857889737176644743788748300808292281029011475212057585295876063248942700589273900345869177517588175863686550444526840557328493921134133176602213830339973337269508606127712539951984581978620546876593363475678052042026851371264857689492953669623033813799557611209518123424367213576749775625411470023076140654478409393859728987731936690143565843821807130254323083362478206300013105376918117209612873294788533765728071324828240409463744920807973636702511299159590683038651932820367037451884496899384905363239886103411902710858557102098630313956737887113626035300551768844120865968069651961443380033430599140894521544530702986906580162406331956387447415445680158571588705723085797043045399792374450667185220217840039102650626109966307084828207820635663138595860555438022534215953992010568639135835788601881386714250579748124014512576064358593056490747679019341859847119619218682015222255097447260706143996954324913465894472761292167107295124138180195794612110631698030811796122990256140942498597492169304997629287884857466906559398049067547085674167043724682472957201242051065604885305469911490507614659123072127175721704760070342679865958524197917344039774932000175693587857626579812879653483167424020690961106506788323055259014921617714649288856932540217859112617316131207559664105558538232958736594401541563737575137649210589888514241200572941037892396168070708335850439069140908210065524972376050232360694375596740695023950938354137006532997621904859419787729870678523867982361440818532554848433654986134056187887642766933965993193174528093032499770712464251522093122225504782955439503663825601383888692142287999944423133899789727269066933635578596476740850108065196511329863021890229444442538065141079259214571409702715007767953298897624667212881169500205234157648562565381504693546682949217887342146854381451814135708396919301721098328992412563456029454890888926222491008012059175115589048278354944213137978750091652156668462425016384156880911706418377662277765736346609957958441745145261746536101016448350174560905486943186332063719378519635226121707212621228357433010253079591356243661816978672935519569622252297386743839900205479555714015018296053407781601462171905833755723230427951925422801266343045482671622050782773041151198378939213219528332946423201654929391512335093987319929117153052506429864536294727370664136921838388333370173648960640231256724638029782191953216762608476901409211188643140945616488750513552096954777020222429681106107921833928299264262014518132771769602269122016305626665614033439168501122526402392462530827307111347733486404007127593615393457773015772668355462043739676518440212790900435547388375878421158389884226540169997011621279213864918573123411597898777861706022625590671377945829812707905053942106826393657700093970239383932784845323447050664729591696948479087788109609460022144479403348223396862320541638608231999920928400171210007062651907622398954531746185485919024416352033081541797429901668492323581348974082511763469472255258856779625847269496681924471811721405075861802309604625146270101626415411655461645870626919329210224967359285113050517298256029643413873390707429231499878708358906769927953662051669338833472096701826876590653453685755034256296322544886681891926628023534577205424085303503398419475672623795569204104230825163056471742588391894264565455534549514864514229990561409592559418370252521631488469560210528899259885205822445500863094760112262568828692884489156731726933516200287637685972054505326961244326449140887184334386813264263292487070528805214349968587480730271569091123476792103785581388405237244621214063802303198293715230397412904343480270091061578315869217920514637527586685093769335173735279611798983907473545390297475926061069630863057165161999983144014321279364186781865094143388764396476870541693595706474659842943438138545935231824378472239215253250126472000665121356666239197627497140351389312008941339318915481379603296733607550054342237390232097292999770495915399037197928385382648237102646724057699998783760784062199873254652571040068376995169747146161986359880526051383930713203038887235997297996632745673113515600426244789987828418526188754413827553804178913682659399143772556472308959632419951697705522192796149588001594477710602440011018173014369562464436951741560588119028253753490096700902125109205141428020551418540705522884694659808461290724216345918125966888125530272239843094390153101729506005796287436016680962868465154428636011150252892452511852683058336147749606251858432375215800567918535327111693876204102148854351405974593196558469507069218510669928772871030226185587567553859649207503161766199865601592872778981264349197250482876966486634874983121120885252251269871339375007596137955122959250094769469383104454372158455438165551170889232236193066335632598237896010225705052048522358322030534125247323508959826603008546241615912288228780577898051680079288611400128683852858584089542854149432683118264748599717708312451373257019173789854232809848472801910667747923661826305885933800234209375119942869239336127312592105094749984351243371808125012097949432472774279755792878769368568068454907168683724602782863940544417997568521364132527317816789370859787758137923628642384271660625259001272268463693320020318161717238177832634453419343049686779876135026013578266906591171596070625556797053163072023373371351271051285498831529012685556042150932083176548164082357254765293997495214203518677185244116600952329235779246819204369571432993133299457020561349218281842418046064956263445353254430680320620694892429578481507088317090604669607740598612951573843938415674101977053872581611704406574341710482961476724201609238322456502006785928497264461216930785164128664284867746776652014105754211934214725698161332705133117176386398499692341863672536550184161139666335812259057168413574037082176980255421471049226580227576909299052947477117740293872812603138598228339046328568959332455781773980411950660283556087710276915046814964473187914849984611054668822212557052264306398662852202196544321227053314423494628435453921703314492698205136628527185824786425848993562066921541763498424871101888612010074083398147765276397162940984202341525920060685239370144131641614315322468280542639028906759077916868351451055107508691562257113706463147235696308667793971552874411663357592486351397387848462121890400517035837815575497934864484428967058287350343274639805477987858565514635716442921043440395698574741527547486863161105729651310239977034477797077485879563846261250944378906497976060649743663488368787507312059414748775346597759176035556950099271462624285476191261864958243390989932754103866600704552317432317409050045101073280362429109079959504014588164789897767868637150989239892390780928561131206729003504717822748697366318054318774648212224270261984962348597454600856671303534991469213519370014185691009103683752059167821672633474572750841047232645587284575668746918632532077026292902568959224693221940548473952113288636699134643340843846352183885209392515800458586682079496798630957624410872354557532755180229184901002715627225930639773318425032648109860752667991689849365436799571579423951542591676635633969362177509484906963629587002631586070586530276275721098280323805377029233281181987115414675822818393457138929578750988718929827459815442971710722787913796635942455535609625131935192336022386548930072773255849560171746787762354243374407785617200738311802913445446070593179519399507208894476112582994860132511945124264234258231197417308800000689102896082672402814197910038841886374445952392696833243364884279830168040234401094727425969453049248383531627668332736230011387923168068746363285994343262413101054330866111430704434497499815496572190163016563475101919003592420341574081100785934788553693066588397929066610940647262269919017323667523444760502076073769817819471574947640738045491537626629187558214641394229203352563690693918255847633586106698411749119316481841117115349852715563069093338311115614603836297342615537980339780858324618258231691372594991517100798838130767486407130338386496498510006456955378714942772878451911775937104334089952516471521584607091747306166001071452476929822929719310504534037217624826064091383049396275058712496203143852484877805699861658399301572280599961774405544809538731020584244112302971658712262513441837584625588297832669483819687566331968440836815445063607061734154235060459479817333694515624578035243240158234831225427064912216203195676567487916112495350639894072909436673466707947359290749009959024458709894998063992281573495599180845861734740329725805546157408212454313461168230550674428254438579861658419081349231142004760776017109912390940991097883015831616727838228865269942478466591709245419554924141066778002040676692463380080975337345097663522938946060953164538316606224175177632535583261209014607808327318013621379467835326642287435608372425007427721293806080721375871658993469744139792444319466244596900426966210983578951374000692832937580730023471928919005719446921506890732199505220221855542640115571014445351812861612570491841270729339268257074484233433683265176060759163651703967865834628344600104826791858169827586845491950230486783516202310560409161905774490747796059742394095964225757687304604270195995566180895467869219385282271648985081423420193697374232642928623525926616028184631310674437244859177459723452660460345754980928559345216108624920543274755843023153527723473462035847311058926418079756649756886605393583427389774082178981485776503096799993847582843859280480275823371990917189249710871257468639477251859560273698122630449110963838305212730000204139138810344327745477857320628633333009602072189749480663010537533523741418103561884710520780422188612903344362708720947477326960422841434172016460404142379327121257271576087942067352765507365553714622405133115330656639058473618991994487000162528088376177639699738813083472393392975363171001761257782681109773072073828570368328587933804786297882204721800619395992461468635407625626338753428282235026518963155780058113024076150939704642818715769061879110499774635605636461864194198995282498669284401757183714186003310155236916611605463710021194294818355588885177383919143704149178853064267197514687641171146727980931996736444988724715556710429124828493819577630662244505370348972722728665217813980572358577039255387191096462833630684008880564543272213137414463042327497913497079037862037433931827945023526178947114074912402286712967169850303934811488116041888997764844121990135130615756290689242519831234258043220317598866044491022927407093278331619160109596906401286282513396298750000886033208191107512004734669645913248901463909260694204408213852100913067359750599532491122597820914876630336351550084504729010293117600689179076260994487179496445700674890962970278074664996807569729703156759832975917878378015282506593737368441472728121587111103099592472498550581594323403382021683363966881306942068383560392087991675760788495662547692772261896735666227102887408247391342851414823649118225514285696380928190110545291005023668705112043782510465077506582998507328956029552452170727683155413256403483444514978619455506468795425753046134246275862834741966369663448218807505092971420037945537649199791558492157598403918058921095663001475824778648548934692988055006962170641493696521612088521675964547591858279323758977079617967042854810522036922117354654089306192397036574133200300975337817349903612680201659230156690970382558043651438850719791121797821769131597166877365415665190044246960629029734839084825441865206692601465231568614474776685004068452626510834318876104226310362647958918279369885890757896040148244647775677464137918972268504647982624952793345880038617104961173629430905755741796026018691721145661184289798665946359802385819018190993824719765900925160883874977885613333422637588320803598876216499431157469262304437461706507923151366111953379566960648837312184596460263948597661993904528413383184089872136548082862702970670006325181450541660372133855647714112091570740888827355754137577153604700483218502268612789443365685966177381637299903614897941881031053547301660378766875456767413470000167857319083842390888085457890645827478157436765176686403507477243139440817339484063247703380765810581434225096558979550495714965145467793162767201001868062355663656751570100231243762852554538903885371992802612409082573656634761233416092790062791828655880686554522462999832289334760225748224630710132277709170800302007102849119817599700341481042753108248478624956296938377928816269862144159314103543358791938703993406956055035489910210624442853919324153104197281546656507003190777454212564915197155609460040969229402397409523890527363409594893890966265722260913029938199824417133589720303765458726380957085888903181335401966648353814134057693324427786530957840701797110065245237558729720350381770927998597002784596690643789386009437717555102599328636287013093833366897640293659385597342716381001075801717266183700266453539369135032885139713329062362382408786428552316047162970228252863866580120377365284973284878379876284241793794654184764220108092181575116287708452135886074065042441687171078071053703989331318953574721274134110580340318679331987877331826208571548169724201754566448056475747061121628589719746463242622005935222110532915184369845974520418552195556165141954967569702271547377049636170944726742448496228491833618145068133762770014629807107175932954792384742117686912036797495583272142666603349882374748837301347600434502412163515026689323211700881295518052555670942262439029158175835698242470391333538722017125881640168696019617144646701226068854382586909073566784210581727095570402921686836523124182470681691046015397123204765841588251457648112727350853532620300658113083982480449890398311023156797324077654668854430542633040571153127160225096740776378404068468386174498971682279107660378948377099872567376603282376778262127707165556672761529582835852272473626649955044672388034379238347744729648339423511600322867420054807013758992054386483788770979875116386791782332605147274708612281005667834027133468613009270756644407566181949064301197471106402713235986506005848637475535037305583634586156543204624915880426309551574855910831679000065866605300123497221807613270926489355994122487526071812794498578132508764692887886992490085050080845435371670370598524110735395670727195378005704068215067571365851360647031377873787747732381172360456626197400910568765199148628567876559625428395635152568487846540782407704558952030035240690828614434324141136955793957872013473372725902871934981162238253792451556091061223939532771917521077355429880348562687383820197314115516593704350245482743778775499598723331167886277977437218554426762485178830990141160060419189150236564344430438013176122038517869861422542191458014413562987923147014584527107867207468569485794946602461185497405706702317184612909861630391594704241378788136965989453420944433661829426236655818546122512715131409240103171336200301866794144963951869906668196371297343608885919079481705662544466401648694038785555969650199673799785953796560651702140321457215829956704714096778912460325197780281592229745160606996777011561943419578774633551658276975986478912873689882204226375551332077666933347811306003883749809673141629446856951515475187836797617088307040370093181117534703742072545324033677580890422960133746767109194312001255446240982468681363319392327744185756200965589095112992942655394536023912314865016436207746983781351505233566989668095682425426259662481439924676665985072910007666372844897259235703526061808642448940436545680254874645551340274223613909236481283729791735106188668314738618181339577243921324433009529281282796446409196555339850504351378013227701024396580318055790652863945687367960258452366657262194574080322844081259562231386593591916214684061826926746813968718431926563882669965892081610126818104801087327162698942462412868139201844252471679673960034349844370207714940867257835544529392513298064570658161166717864642674989301591111842530325684720718372795326509867136048014261107554858038298039962672280697190595644613731080722786827575353796497570501381903387969746144638454028691878307954469841694123088768269538486720761803518901090424571749932192246774543722994459560304293076991733697426447164060539332004458396422993285062813849141500509688742780538399139783257418203378185528730670812277949047278180274421908431948355040693051749867895471121240845462534732105505138764415601042929301906321156716315045483696057926165779283027931701546981566215706620255353595255802062966182290644982240388469830901315139321036902112848140303927403773639786054633461093575571165114873893876017883434521290144872225141502522665597421011365025488234145691048240464518403811152271867709025154127641273762817608586872569015046952880709035208160549897769428342472788620409163766098833062411011815864086953627485750512567529041983580683245128521376113345072665722553713169169894837552221745545251296018996966583299024426228888059078872767833000850470120847845091074999412107240987443136434692865348564153582437089816567020175800450755192988459271645810267491758487743674145525284986109316173413127151279215750699407293253802159577023752384376124174987902367784890348619959094384824352630154971927577206509629261420932589610799536192742958476386803359632717999675004710957348216759945230168630406687596797923840934077669198010438518773650183140861591067420366283565332347463923917113069788497798615475857895707616063253687231744796337924202899308132693213326712774454971807632709883698586311450226245746608461686435373925757615210316838010904031035123773134847605652361495610887797092114954746226585787417829681227077152617314239413027834858787760564951334327476645006882872236509220670802370877123135173038191594360658893621276855391301284200791769331189760192470891281892560591690430685670823420826957835426866136286220739544537803521538167725523955359470032347299118961701025700304598580088413836081418601435761241394381084940483696051307240924391437836058093425114610064879776631334578476259198796491781475485340462759111861920149971959640881834895742400109905439141872392314284465861753577155294332648515554643705956737876988277772233093003041291921184092885763134184606793494480805830534874367774062414159507879431434697616475728067551834132304350347703757096175036648779499449770011311533585248092640337201052130650501803566015840589652448147364735680984465436594634353985189440390036295346466310284319874684867929507826021144398334764101555903170859066129043011996408614644108770662350013202327520046416574307500600755639203308337984058280779078540192996847493771134144487003468360550307001742134254684238914304151703117307888836996680174416167825669031221081160251629330854391458644873176238320322859311008170107830919452452033349806519728557141358597328230276230630395967550050447353317777114139246554433478561359456432803203240597100991047516645510034656307002987200648532002320934837727951064232352868970179174946148660501614440076460773715167367308886944301516563170919805065714555725432053126113154553710042334365019783117011328173535808967063746267644234055671940574910061950377851210872063390401568568450966198661934736799993094476130775409517256084071110059354588501995801391195702626525631661127006851898118017818101558169235534064487990662950469712126572760053305430881439314048494206449333864528437605996673750373884462122022369982477600703023831226911346933317129958870423483169254634216203902251875943906731232619757629357453803756806132370422705686158875202699069688364495347845424266991016055387590376595654521642320429975001294483165516602824103222663966477816370476616243833531651712763176413191287784041448971619765341352841879089756807858394963323859094297523203791478432773976950112824966125792087372404145855047045424855007459018530277611078359483794531405086494378097119016329028475093154564069163977689336989999262286253268217418829040336589960154075500036785293105741653759608907278887780579736426330644625517494192046855106962169567584227741951190821295197861410023626115808592759301270967174825189460589160122640144456337333184237503131972582449270171857254482626315315872405758124208022202878461154954362252334109567448822926198479170878674120278670661713275676723522592225011410925991791784865953350840787339868502299314360530231224993089736489646410185857139749284143268602327759261303445998906922578981859516945025680982759756627476419308386490271252868599973631054752514145986934051193760757476806569984537113146217592067147319885866758504064847065371323018753332218800402358997298445161537705104707912997782845180864679995603966771434869932959093924904279335448548844710518566210726183963680961021899849841900827836543627478208038096558274376593697971730814551650032015468157400650210036239483539998513279951269541101257304017193166526224826293418501034831737865503630381710786720666017945242808663589947621031425185912019441101768663012461405775259589721614534627329156041283246265642094454476733320904950252852315976724294511372910956351916746898404613857222851188000538988740757142077584031218782314097901333235859406896036340165902629295411337115733308299152541722873150456965991924631913071657407082659534087917995170565724280882928297198924095815093462806341717796424606741080914745926884252312781279561530037737017250273517523344008237064265595230981372745260145891675318511194075388165953443294955648143959427605027763933438853833659462874396059061626027271144418461868287019951321998860612275248405495449905989867156596805755257482628757363085564048127357305173332569161465297848039002124022698568645597506727230246174637197663267066894208206557429022761555398399389208084106208520593478446170229834972571410216502061002093691407706704948487383517976365672525790607562416004027621994079304227810168137212053057533129474010624843425639117867697547759283571351806608541960528337153721473743824750880333706952626128044524793976443586692681809261786276545165149278396706879162264964531282486313836410001517722584965217881795247480355074511417780766207959876980125354689795193967701722257312759645621536052601620144205871504043560623538787562057915635640182186211025279996084002553452194953940149335041756801712758679520081801893182527781343394489141055590591690663382364347482455176302028540843951343007931412454553795553316681367854547405333101457785414274818254892972628837687673262671299166660267222615098839248986981085304900350232159294477458563148599126705038563240194248545281377637533992516859126228747267534803031842243409393257591413998715330843410400077783494203731474843343112204717704714377890267104250212167219477278437928072647627081774724070064011813699685198695022294471276546918225442862649568383243105081899710483618426782850055598504402540680509276463053516398452775008425232659845558289857311868584386421679446236329865391939371731698426311761394138492371022645384941328882881985041473770994772303050062192409828894564311740649721184131068995728025430658015315331641702621870758628060060383578055421824926586844759310864934201930914136519826317771374579876795997491821672031621049252687347856370334501360276569586741164621895186002605163599758329199142490867356725914333378716000551938121481218432558190456439310231090329482104594261063930183373099616657235552610682827673917014780018400361450464111902938988491466853442845714557136517706231267484813746518273730680044098364309692231435606208519015967938258006601093230065729913787315252937701662781115092413968990391765292915123461496162029137610881135278539417099667389499905017212262870894918605601755580701813846727253060320118507589970863551481118776758522322600264404636887108154825602442383307354371490288381015718364892234166518410166640304447106006756087520882825436943731205867940417348777632069019121151309134427940359580343255159547221868216858404111263623496303965674304605636472567923381318382763187146633426571766412583669261771289125761544393418843570470528743416798642342032328539590430897286063297713791266884861462074488753143413749276145123527891406383018873065341072302678385373534385089892337296206020198849999918962551545499853922788248262057033384636258458498357165779821762308980993272198232297615116386426732457328764484840857995092563958528875142147652776396148604430912345387557705925989675363105832785643204611352432540860988751265565121166309531854992459470021522212780281088662561962665687215997562813973086803884991157691919555463779128764905030415936870801433229027875156385119830737496486818872775261023355955794030087963189247611822368578937724953057771078280013253874731612896258031562009207545192249477319216639444950617913375900847335573237521241796488950879365311222598005267811345034650064095374729064125115937910740185359718223253340350996800391608177689217416077074188877109588081297073626343028908130536440763593906266396957288933402558758926532228795837190113706879213045425730689041792593247688870985797635843540227706075807750740227298378561428234614899522296728664964019038176265365721475321299532246099731671665250493654260801872525761293949697109034764847692471071252394779251544838794442519027568894533921413601067500900453531638992874634490388564235037358075071233831073191880422524484535250675265649425730808523090452064036654804539958763335878537315481340492836219435478105504929510341670923409629228925215109724481570107189875853117832964210108582488342694736513142870773053590597640685281742456071771400186253104357179014429168718379959767746534986586819491541255533294111062483744446169442407369352188767740451304150801478940390032160951597754291006200439713019903361795499088243658868731441986632742980767494637805512266319895950923824152906817138026934199182983458285259907032568351200773681085701183553753869628790240945396475827967868645983431177391940713198939583033664475394565040017699644990806172922850600409871221004735119397873422894549412604844340403941415491260930988016781928704883139318299977476684815086381841370160000422922641703819935681303558166620116126125852380706180052154692651966690402755245432896365636327490000630142326726027964487704033124258233889679574229847167636161170681297882777615581661977269193725318190297156838502946966854344691789106634419113909584243162082415535919519536329981822320270136010898811872121305128113315034293146829796850218429428034863767416067408732149746638929518912124562283631972427114009176926824648763433209787008049060810177470659750989767968107557925035707485257519279735153570839174477872103493547490984223097370079549435825123136639225460921132564629997807949272085047835779673201072643840380565434776003947914003821443191138800656116741526948848091248720546226052861558189972724203949455685200591101098991719626559718929237059541328127221527099573345261435845634664029144990712416031236215951917926479740031377977256413791385586880771503460325209712240543609145711146844158493327509011043675448883099533402826567345895478233775310552655654183352153301753208983000130360982268266433409097324236373377104683505557687402413524875760641022412262593809986991780085251053838471313174575321337500115203792041561726238192727541581352655622588962302672079104113883533377573980020423012241078240203026524746801231302021646268554506423282133061866826803009480742725762890083943702325267993601279365957231300797101038639476318466410771246032705030859618034917514224094530858985083749118723495830415905383414702456221104030056051354337248532571889526211035686465670085902657895387230091966517446330986406165167159999561327370965195315385352281693134803286025442723607087506470079583026599644516513353732217666950728168901137007837558000971995735204888481238931016389704940942385207332812088479299214465758673533849920164563608782778572059718268947496313881899129641008484605372824723400329393752648817142350906808448849500785038828328578528895453976005771022533924172251903165814964254947786705954390764372298720125940852548907414490129352646204425363607958571782216132454631147368199334994972559499628094431485995901337325213010266302026236209809955300991605080833980794526594566220988883772579037482037775710806264086913400448899524875110879905448813089164496522738777421095163325951736874747545434438649020215283928940601092034358246950104904762835335150221192297210259300548607511948997227494588583578353408883690035702335054857129768207622918648585259462319750467925166924624750825869552269165255839125379952497749130014174653839917060972320538396714130318218642306556585664955733074814658841126850790039578488217967862409300303659119316770748073893585567311031195578057783525978581483190992669502652083345476636048779822917308191827340867063897589599520964890466615419975066570829177409384839152168396328112459669495674640778344398348198673138929273086911352022268035533636742266464008611181222062157379499462420265585088697938604731885995724882825447030893315479589375826922262174528119580146045578135466480874293384448810634187107939666046847259874589859680024731657761316547958512849015955523577223182842229190827948317080825560253014025471153363865717917644863743481315845650436564646106710772452388918637407744258038383287526090649596211768167147655548539103718665846238309416117088892981117000528886734140744265547286079020755657523305584863190523650839431258761728860652117576319912789209132372690574552853041776785978212739157666632819538610072941325814661639628899446253903266241425517789324488910872864018581882360745566384287777549606972187962583869531986254287524309068823798785306166984396151436777689350378499624444538363951893376659542842554756360901785934070028214828384320262176334761583269896840148542170656968913352502991624400544480905045006985715036673460325124459231840466046453864629246843558251312109472655331125849984814670760901468652531021457882114467637966941406733465895621068849630711819391587461901684879807821792283706548478010950082931423350375700989413755568605644467446349343851768096577944835465984818541249758812535601853523664222212138430887287384839615805183746682855019118448085464166683883689539833986259444435288429642793369719523354040422662570603890246931364111160465895862058640993516921963815102083111377045551352494115972276547442209734158348851189584635463283035964433942794902113720360412723069703673120142078988969368931524327728908273183902003906859431551561224910822796492405619279626445757414770877595831597188040606374769970037931552603423417919235141290925010891432462452683901589980513344564311480932119487695350254623119674329717088483679263766708534737796738262085373747983892453023992667384334553562176249172405247480192457695717995049701149279755659970124786841962384398594086747323183304971245728009024014053689131365841805915604895258302109039559172547478285083131694162815561664218073139808217094564394272645491346189252718964619228078322909440268030351168226728054168995131452985464816207711216516901791006284231691275451576822446209916785549066445832611303781440138788293440709980372667377107450096324203993710763085060271944816488766999982086859925315192661717945981342353342504193686316312094336322395204751160024786377768164405558150157896817778844877729135767610273960875760417032309906413842482077905769089354016613771477979711015105999374566692680200838182966904286220705630320877291775721246653088265407359575372690850026973919216910213108729235979983825979719152746911795271865432525769384930954925454447464379888401179669728781332428951909248521849990259607211611052347689269307139828483767575281144394504328481635368259810901203804741374305868386503539248617808322012110011435584167163165928069909962504394772833503114621456086757806502773133624622421279525899354275137736838844252910968425813577139326252910493647691249297561138830040860695869021510353544752511796572577317624005897350744472468089476167811291880213782120284595067370484270105766485331850338054463392929964793790701865442378474491366986676504180765737946456313536231828905487242768033441647267890736072878260614057025257701337056390831164524361540327273989194686600794712957649862911007546707050833393275389348111064904612792822235191905960820244038018749162124247189991376606780000506553584189939256118931633405671553848180036373782811282933605748708194739102930242626833755902829762653614226728669944094097029417502014696136798658927709913079364784968396174842023985286650751397434552720170914283147398210468918847793373247397028359209436936276342086587673105133097594779942211357421779301420495476472676390489208142006467313907118527566515364435656175697962282940588644528536276386966007926282763311985250093301674105013839879228921361404924424423975985012401874925211969601347913612720238021130608888470422251080415027917752673733956598330468989576666699302428536039299287431618686211697742468684820564103586754632997757953832583840770497680649728564371225453374792117024540691474993029354224310474100391670058459990421908058150524214708952919279148247227218875112664013851445005743113711507975967101659646977358828311245333297214264092092520261972738157844048819373384538253495441076409532882402918100824111060586411585007422913932198115720601150722791439332111248451478756495707205842053173550200457823494619348851660262840201373900751730462505151983534195617738539804008216826400066385882626392877594451011145101693618774099149071531293271477016073876689351624262781746739337647784249603196799234439666266872230610247727655431479285683425633463547564102326839426276174903119697831018984376313039657605550138543116174428488883310007789369205013515341141780449410205941648820123798469347539506469972850189141619192516644152628844582818813339289066132952626012760735532744350087836655397304577583225012541924426495435827827295679504288945188697983211849038003186228977123175855893950919550585221357527774041904760566800907957007296748710123554159711795270386047841379887659500699804611233321287970573883417686709703671564618239876664870521521125999015317160704717690443902961255036044329734765396343862572975291942826600429087266823138202609447591056499849730384469096278633181056635398803832409894430803304121785013013032705346484693275194261047827128148835743250440492283956267551699294534298870932846204233696855697072770633086699899161976501648253301704785473882823456606995140315021467678901694310447975189512688397980146575684154472180507522094445889697688741408916545842511658807944618415238675138058426258539977408170818873628964693097764557679026354997075811394008498351567222380464362384633660740271158439559455929308617625921873548209323452752298312495142837189129291699700446791776791553953969871604583660854772251853273177701718942434056140967222975309710296712543484434366418855980998003139273508900813015944855848537836035948541446980438627942954268841172282410661419251400731073015056750016614503106274563290278748096737836748004637199786075973990078873435793910084755678993694813635298856746650614387227464612115199753702347141552894396136092203904969435233423926206662788369728489601679656819550797509066051478918540003624313646905636303928078429594975218176917259250749688643375998476387444632011602870530955819264445518537961938250808870055108426142724644656492298718859811607637805034062658471110391918439492973397401354069087869132280811541096927351375732242888797921539037677870094379230565144620915850164093880181577173199906926261671398377244805796606615636150969842682919694546860002035997493187023675566594548851413337911973984054293168863505512591020910455423811142949158262418319797379738529290781402132741519312109842314537582421100426567070011698614432924638934166446470760239005184130049937996684181539081307710574405483445717428468305874817164778930273469608305715044337680016983300537159795191828237351708223274794356530258456478260449416488471026011306382215202193097430925786989956388030276248874918098257246197210048449813869573299899185033406872182055736986097002561235323066186698698736657318818648616881174678994826511454827561803624580308072786629081394817188963484359108625271543202062984875303527272626742684642195142852970516232181003212190992321753616990777834283945692784584454419527885902482935175711280757342521886549405446315894135629888400907175580513287436838494564157211381546106353792726070292456371855313978056984619379345846939993429005122189053694182160814406790284899320712346135545581447425518293186213949012443967309345504481764920352408951298678809714875364329200257282815362430040820688268666804130647504135408529582757281648633444146649550351516784401751911310305935486940596759929865925851191275424709372956736109601443912277997725657642068081639471417729634208423272247543398806149166649262427992345625641501316647656671035885652693931509224179522855312603894844620597711311284919107811050884699870275227046428103171094046196752819582627881089304218375804676041210267119130377536169537718640274564130007689452551295381026477122764518230571804406808689251342247311901976298416919996589264370878773357109971635043653410658287670441419100426756385101611966126897265985957689271102610949100031088215304290431267331398874486909502110673654816557328378428141267491232904753499422036936542059018415681693205291278273145830448343747159856725059932195166643707259221306271784700083960485014750211918878533958303185664367636706129192800152070364292306119545532168807857923089390265139953784783044848627695630772324556515860692544650191532756148701798171138384070277587641705443367730362521690803846349555329745595589438909072591188991810411566615689500855372591726171273190888581281832733608900197988899176648338704853522373107021606569704836870068879150293262826901906286359745487680991811892024511191703820484332695166813527270429412504911817729621915753373744832141525994254577640308136574767802548832170869508347293225295559197474888604203180798740085698658317965961817770806480832895632445288005793033601592986294838676682484797407333162605175003319451975175170752858197007446441381800447223730100363322483719705135031988221878576709806777097767476910628481224392734640692988957827526397584934728276124813724011475210286992277820570364369835019783285278784435005232599076203302743328899371712039829334247518250384025247057209711850008986926146901361558737404083992674910707337395897949505287238259130929994258990401285222905382767972943523256302107765807571361754125363746706419216400112659336031278709845877249033468692196342059726497955319798238327936874232896506722489385721347408414795617498750093243959480934268033021199523626292068742820434072124488769467475774405331500103138271977903051950388733385042052622227887097011027004834834682897350536931466630159686531063549242681826934286799149995264224517526066121352660279596249771456326638569573939368280787539380687605769842891716784652667906617160609919593802894739750901585127526749961210471960612436045709547850412431550910658097797567956640456914756247158812523980607397101820737070504603733369317362283723471092440534721103341320518467396522862262851968242770077439237490061371844091290988953073424874558046604579480367203238017731939384909907808812023596454177500429852467386850202696683649489662697690358712705423924155763451915443374212259766552263284065723038715178037035565926336261770166551229268680001167999953071920830331390231902548734856145052342263017921303228216375568842916144548964614779734301110127089697742711538504129505514181337802975252670809656860443180463790589350456696760022512433693902054146302390109619256780859230967557107853141868183236564762975572039767877710569073807764748883941067295345559480355063148680527919621721214925869714388535372692811057364945265567905670012716190860145764387020103651289658926552634755583818845652822343647793006570990620191517754775795456493753487770779557262510268854049117582369275399866677879373955663699519797602734357156590939932644641446826767147067789570458784530805465549899064817208124015987436461578628683946533683117633981049339580813851109333827426898841855039657776299085066250005543646927675531580742851401681551295112396779767575067902698610797017288030108314299142030171908237457006551095217061626573836407500072840711207105636012311189989156283073224285453814662658627934883278089840864062311497589849289821247702135894164013982861959050058036268170638787276463471723746138715030953401904678183556893319213268759693719090475790679757513198662160318889755614775577708483601015067024805895563985544457010166539623435861424179828588229483813683525875910060075422696547099837225868927392084962019244036109240464310326453114685168999095917915553760515798393089809444395116769980665782459873995974765834337474425753367091435811157160562383558201045208911487633444016818265265744133869400681293132689743106886247589799363544688237511300090443586185062486164003327061097711968672352987460197896906061345205465342094791016118749297286393848087325225610115069285794701952167616057452935215732826700851170161892292755684655742207160426947595955434130727247119186314415722235429547774381481240936549296487485792881428657360215498169277626942460656793766879122351750308103013694199178014854956931785338024079253180149817272614958318906044380238592157320301381759468987345812691666187362768629373553160684584948063954568960751049038727286974267038230431549304086840157334722263567643031687139040177227719348493698789317225662611416501732709147939480497492456706431806467203587994166773647292461872305843281052728063783893555207142021204702203828238037513246663578053765740609432966193795583639913271685636060359050596072216018383626366110678286955615493758154764729911304500005151468047158354085493175010334205832783374421009296700777453406963579422001738032060374219099731802802637203973737710372046082518731012918752386175740703938227124557661545583381534366636543974262408226824393281059850672381773161996902335761373954047624129060171066154937206598619379073836769589105526339466500872014461464498891673246612348518320296186779098737868750337575199747511292897459452451568754891183039338530451801188605440235242913947833965437593922444749811696301283051875227548307538907552848108011042689391970936231852446383261152191746223069468335251569049610097548693386100667133517615575356361490849335294778012691191779868375529956978166175286960973347840277904917254641327249947760440905711592787199208641419488374186798453221708122904134827596186634072060435994300599814473975179515939353871304173632085084279800204002489577037238243706263481305706319164097648102760131702199415575673590731924429812488173652734224142424108094362116151328085568810807144198941162473129988024979423994609903924107959584078615211834373680337239126869849115456823655123068862242134553578386208977980248699072968836834483548188993764421287646324679748556945928193533211350773378717284257565997108388258510567048373308831124528873290257345349331785526740136729685325869173399560286981915906414930247556806358492041274375133655563286180579636369464119213081554099584270694442917455850981659183296689715798887506568171715018052430400103298121044809374064995649557178951862906784972491795899498385421296676197669795266401340881856250341592256663225959116038246608770029735357337614910759243842302045345464816569524303770706284344060076048690051257459835917622929181802721738854528286500505340736241841618800003843402901826436947552502670006790877826171628324419197309069259504196956361656555436083179314153753784357333859015481070280636309409889141125513354510908428380403105111185272731408212175257206023582108052520740815725233774577304439738771388955598125467947287571534182657324093468191227173559074068920396963468069830878797726604648956560065098052686090096935730394400315065719506575884508969372827458469148407808779388025642430745538491278574080961513649851993238513940540927343386893474501736426465882503747567838827305381754332571305664542050311060085243398716324710417723481358292553845418876884865937297951179355429665102192842335333612177407676324794490500721822590193249988325988592419395159057700006150240457808262624523641386651571079210320088512191805344448530264059757798911612224572953750117376141537675936179719796377589212593064729724368758162985797484442743512200863917564440832273147516436511241534783173509144772750102133000127700520318095377727413049936901793819229444627259128691679727076645014070596741990950495092330151728449501772543065205692385499705590829990453376012432124221596048448057525250280099853118478931692938217825676843460002373987734150807746499054155285325744748588065424915839103675065233397319018903679855032900680988778140946437363521338384926099459011113355957929159759556897092058030804322130025971992708697094431867859684394593186457323240040252407297466326912196657025372652070310633401445540545034010458172639007203073218515590020002721765808694879083393732464737362563439251015194276545566823884911737062001429623492784441972181312543791952439637295996880322308389222365806309711543883471296417660237870872405876002591133121875966046561287758040042364565700644301946356000736601107549090705650095497171664312036410189820529857726220056652403122920097533723747731051934589925301745554162289431394260317628872242114530219138190919301172630931527733306783826225171816319927276787083536113936305616937683232350058116020661793026839518026679520688530972014448198115515151240332626266444183763143986313283224906752848098247714916418917060296401590811459866445139490002374049224142974026452794471976212023681819646111150410232029850704464500115567578850894889497973455839831970316387573719363717066534259214844280146170712751028154175581821426510443045715447094542972307724496768389516369140519220355059300244509222473044745977307042669815369914620424211734667148196319064298805451627346320855383936874093437100139533970418131140457242805836387400980957996194658556368354025777306724122470274943087730595996961225878768917453890726800097296144895773285428454716823958046555118033802185717074155379836731158321336435773630458717538399169678314338339331054463383438293782290698762948414514715150680458161814983952864658248633614017700779305926024638529722555883035992485102009037359964245722252322701621005251809214383801939047269772843737381760351707135936523691186881010045174396541968928444060126562646336499230487755638411580023049660431923520761401924910338805876748336451159323667144738951843884653107796162535601425321340729725868883324263485083934079234627227751512111999761189944398684936625315419098421876525091422578850815224615991904530399880899137981256931228736305921801519576292666348445039068211097205276421200274756628315887543956955777454032301578307256916459014135184070527629618092985841295204710343572297937796127135605184844286059041245241628706635643105724792153500351354846171169637651354568136539428532458915016435409486877295604762654890749225839427175877548458759407895651023529580326402833095299148484997026729699618073655988792186924153676723706633640520947201870405723002006201274139329531855436764331391278135500592934701795388061165592182710387423140948826036722021869402619393512056099518741134890808229810141704307054329752796572959995367758267110939773160447285562682055810637067878594776701224650808781371493210212376472339014588505937836791628258529943579969644771389723720381008422492424244696748231924642190219610194373653196345144565255051887083024546394138054372485775270005698545947982036190037262121794847426799419716379430673741209756572477895825918233500160829097499807259116900407425565326449820016230077529196880966164376026973934580365955166736917855860284859704414210767138834290666188330745378951994081012315182048675190142146155470815099111659254450890988764132035219265082749479469641931954087427797159370158405208562467092780351018139109887625415116498618722539240474686533976306389793636948544916982847898046617288152389800666071754588449522105131744469728640158150934820381065537628155729340179397716366843201090154029380843827028235264627531719995804297808332801414642245170357556448165410582316969591536384942568956592863849969009127364718301179408035751920813396434877433980633471174443202444957094324418553556665238913447568079379752248286050587146648794489579520353582453955967710479494218843318715727959704152039870459152073617011664940324646764079828967838268191931192668179866470863060481036037015256516564298580538893192357135159400331269753919339141016601140020332173059883677265465967575523678077916283482063628422799131039268078107465313621780764015442357444356944584204674677553021635256473530959412233466328365141363644434126781920320765150127594269590826312587107893959473223372656066273157876296729201807619207365875391403805202866065622565701902140246414878781045350977109402500055383425832574782004159676928446596567770121453731737587707907590461978839904641997810482355813650892311739138847226037617946562021608182265401820785064691199816947998838898627377562042247730576163122712830840752263690759474836357450570222131042788907820175101743476407811076846925816580594620634493257081728070420448912499743264516950252461458944744688858071624243339334447778132430227450479616739916422794504960809494745466049502572160980547987358114657528148228615968475230718929004728587772855487478715218400004604254135852004085818606640946132548991329776256728304901649767698873684643663809151706012347556863895183270098474266706488661659969670137562734503086535512661516834357533753649509090544083923779433121387592566113513012597281557512265348329921007382386097594878709295668371419739478469699527186219699422087237561664645393016029883891315089908542861429144656322950035134174057485776631755408303413622708589040097784855643011428192671990057539971000315814928014575729375493488381635842055526040762411877290839210151486844189109278300213055145478177701794965683665225542587147792564007487686783858734136724186337707725252891341560828702789823105864604972011043295704625231890761977323636756535356678063710829412167384210183901441494395272069652428966732212965627911557603564367184188291620888581190114861818309403012630748139251286219131361990357985021235122881546594413471924765694790764552836617278993957671847547281683839766362288702113129034217530927436731575678326528212988180617348563190196277768808938961718859811095009699597559347264674169958655734669473297492285207791071039936072377374393465511379760235143328745867612348908800589520623860051254117421184570613949492807369459030262994936283384836266076839558597942841701588976830820002946758421965590800394019337358989551304198005874812022319186351976932023064089166163006163619528181454505062391196727282710820001683001248635431313684011461650673388729752500137388153433077763032165740971401680383065633548256710195657196444848649638476322111843233638750410365292887724439223344151643133626828983064182149219763601990623260776382936253483902432793364644984967377345843187083729356459038910990245039125934921169387329188349472380047911764164563858731467160618662653462656719182749645802338510377682808089342512226176867804245242536079513349189084708426161756063786508396633364737818037804504633298067620802172237867195921493131697321926804604544658087765676344779519147948056940767236745101819616886878179199933563106268719141812792631606398620815068548892623417445399850681347045033945731122370460341043897148101798541830991088495654344476102920752111552802509020012870231496006558363876284592438466715879884626769850623146013845797086171088598717152371976040046289791309033098901694815118539152912565102246615931690245373280372583736251937044750848816757587756040061858695366753617766104220613977464910556030388994924529090881907091008486777638761682637157139631165641106145736978685778909205516789377511318689592616466875999663975132843028551422477851585920546243953854612724221653761862753609706748917426786494023654442742111628635312251923614717086527393008770756852789906788888956056783200505585151429409422136069428698956484572570564051142251900203741034723070432072667351411909099298313392625313041942491594300237783438252973944308448491927233960494440071636949805344248219714493790855981753246821315621814164833926668714009070784719380532396316632039125803360233790951318500545870984945849608964875292960964642364397823051148170681061542512439588428505053308415391485133589529330108542751187702486901919658343424303339314829913103734533794761074318402119328689230682846938302779445079115527984813517320740929138455070496960163169946622011620002463819002671798523395558257352208341855667600413662341770704426661952018368543383794103144966437901239995176342269041925873967198290341589612688755438016832970774914444993840572924244600574788998084363941533503056959665113510554593042272202851922851672064064120490974828381353689147723108527859017338147670807345511922329303253795484204803994379270545321653094666513127160132677898774522159531332274925399997632366029621921911106363588301560763656469129180819635229606901699027802554472711088199123072416880385161582129363162713473165823600772304640575286102432582420693313336646004066637120170009405792258048925625743744392347822670149654360715796976588982647264843790291726131257736323417227026926796873120268744985157151874624691278812619736168518311428996280568648629553940854903050962043258822644668508591012716042249896625957778685931604731522164769753449405986710376677562351013734502392647190319561107958731687826253179226134775697420345123592061835391025075709436261010794259213926440280932212959294152509828566964204152950110285263234016635953962548307976533857783724437390946603235802121085375149336479160954700271423871405314805987207195737991487845880801566177820739708773183170450023451958401638462577509273134392981645777069915373057399614910665503229907107405199333843969754527959788475480278105704048268604397672302299854196074098131073943241074736142577600192884644258841089137041239911943636388829038611746855584396078738135232143386475717542575931719240931695363718596611312317768352345273084329830413340352489521710884877070286689312969702636530926388735838231393693394691485911358808089226401864868572605042765738494877043073819318616115994951785597643948591681862580486741849585336159905117149548573094473722098481057372352133748876215203412835320814780840632085706099342795795371913279311524727104924316684183300614221646244604415199120513326130328450899808983566957383184387106545616670138073692543516029545833858545296096591859952177826167375175488978286052504737114770212238714397607311911744303308753679294767391275039664935504573828348957273882704222337806887928239658874284036454171186280560425797858956057887800307558797867622332056110925780014507079212555703269302945049234745054121626186948634291232906339969318020103855841378022689036314777082124051969922241597156040915750306814361880946279532529277444730661446576137700275127925047814874611316860897080645572155832049184625307650044016788615260927356409567611720447760299805141945240676298509344303605938551329331106986904135409001644065425812028521200010219380989956524322433730952297223580573878606102885431238496075231834840596509617617656715278695653701282621936353544256973535148711166306627574989061574522459387592151661446206388511553593213021968335920321674086605207408920076408137603355151588867785474771198111404631738361443191117841501425763894735188071402830883444823930179804556183265612053917646209762636927181828642282914048609549013032367080948362380483423706706998592918669399515606861839624022917004188070489788724562082327478278344757578107920340234746626502305687851800183100978222887225902115764780409723786157201061140664374253255591485077382574401339438887165107286840756562497980086560999866408399873124706024876018411530471352514208468193263287358381141589964892837627637669142255212512034544378841708264522159179447335547993737579805029621115460325261489106445282179207117484066449304042625636806744893052203835220685672166809500722483001791960888361583420511131255785181224379831872701917522513979857236482057050921962819245796505187157775283867425692887358999364249133058379084822371758001041688476841351925424170959459662984969596390694373891991831824140618788375282164190597626930613562273985288926330693570472891409868286813979556715411999983941502602278933133736114451765022574723460665214494816557013814869320872562077484746045827029315482232874783613770242301243044896358146457088809139787689440583581846242341792515998807374488613417255890393724646679444764892130381860384667781068459332833388621115892022491538610135646564946729327715778765542225225082029324360036473044993268961911305862734801468797869747505667770600930771370030734926047796053490378870959202893708218327734685338088756529916253489130435026007371323015460615970307939714261910878428371515916381478094891608395992242914171152492420995009354021957924096769902204880617266620410587533357966798069819645858562677927865923883356847070029733874606811759859744608187295475605058561774575703900564303959843928372738683891512730002747310813473579139782290249206392578987706223722113778542394787950787562766668997138191922499750630864473538370396533731932376775790477238882583675876852220276104323332394737462022306310020591507600831736940805663673743197808853823008397818027368527347645382625345129709468915114877483210162222878605337198628549873644519002580406715794425843525294511166950668380226435105543727261217837560029276077763752563162337300486478321541113537826598307571843250524863924319826767969900753583986453291901438252781922785788907259196659189658597692267016896197318926946060904599760861097521387626358550642864163450055886886078295162146957626691432555658107080000445581732890240660199088301281067975074821360474971868440386793076475184917929766427288451459564324439870401700198550053865066657607600565337394377984519456072355028743081123331375988129074311058626019992222386179565909828566035625909011884496350322720833712099840130709606794022389749079084427735785452108454870861371137498621200751866777961560507965026597245668106865658549972753677204236328028459999924020851269161850387248420734740638321381270268801833867537025930244901961015907717450111763890500759696412679388931058546361602427166065009420035040133282308817134000321840874483052870315706740594052979317570861119635458514575757923696746997409636461276103110180623610361943107854862298480961086046255663466552224712358249311714049690457274316834966401186953733811004669954787540901531487015895620024226917755110956530567014425255376913247094303614539813337503230771806110083402880309602101811356772255620491623682728142024059089644568785649546716182392385230664712660957658813881815470696532691311775511255262665185649394960406513944442108198720042758712640363855000848140352087884235426696226170800252252746235241125303254741506036595817861796345905892672367247482298130623378869127183359557999057987596430306545871013795596953843349080754397427419927533353331057943690449964669230158461424301460265657944344310617614153527925486925491995214091564821042392454155108690745770003780263679217032123515359749509001093356708800453323399823153565759684716996466431039594548926954501031500275242319700335084256397201833965640525499088870942483271496013326266673174247842149988280867629162575701856050462299794430241717459480065250243609825995838553436065653496138944648445137808753107843441331387923323828291621816962964374834210791752593773621010699541347909649183580744255223207460423117213226960872597765709564513565043341608231500097482856252583610338651692849237315126783754193837032592598726737377778649049685132032078262515635614137371413220032433845977827251261546045136746977990636033093163061400352786220947625818196533200078792023993051206956088408600517786578332221862822449980040692459858301806356807729916627779281898806970711583147643204441528609049110292785981198066771913460111766371530146137086982195250468208106528294842183166033370145743120294129424549048827854367585477963776953678144990898271363151894032288300542732715984331175297517419177020630833639978386117861676874677728421318104979729931922712433262868738961386729848832533500220685817523693479092434588310744160132040181880266748265765087755832071363437047945166619428676603253365505960459030884075484089167340258626555612042432685585177200994779372906399959561350741775776624185777304946214677000290227646460509042251344625902953432629745375569755223889734279344827205749302762257892010387772606188241638125547897679346003756693695158614277069098197078382259289288562340950951418165585244919903345945845179808033122227284188357126251688591431972327744442210224038079512099090064110671542008377819144172976057695079631640576413361384460538817163325893326300936205293778438438026519316944211887728351148131330242063113266887175310372489951697064766605231907925668359920429700292122726902088809660162740742969617953906049663201451463241358962104946738312230833170335021165218735938277197881388373040184188518123576772884880711470542000179366100716325180694279071323170404708550250698200068501867489228910427875063148165677731907656360157654499268238942873162692178028662312376092060159324164453330477536429879836315260404523894162917073797893586350769089847857120678936707204699271726599294032300245168423666503285887016801852167094645924936583698127002200909244570163070459198338139946052465573266029880873323991130947529716974330796063613974154974084988877967168391737879809974959234382712126751073882523314127625421171917913807292213562813770502411367609037247734108629965547266741953826127046700629503270919391393234660929926784094183192756447816733473856480793446079549798289359256148653918630661814616601862397806651856988231444144103566735952615145517335195331294060411582492930198578545238758190293715667091921275092736075389830245206986952088988589426855927711138753823100775792394104113068149483136313487911351663078756742503209730359672602655804725914990909284236009731244226787118945221743260806780682353474738126341753402371505237274071748507055335705269219992459230498808869870074743151859012798506739008530060548899285928564276237815270518642919431914343989299131741744136876233175679780126597154080958502036988803344617508804727390279218627709316878970551449244437161498513295709891764455319124950168684558661822834737802639947575822066811652330845655709246993406894418887187854320660599114159755961424208688650431992072186552402773837799953573182876931561544535924056549774774523382593279221370063447343973668890418386196618302577045844183751695744043797608774032694082215382230103405932057516431370237815906904216794932567233132894294545774262351961166011031110770202027174053378195470934198832440357774039012186178031596961431524274700594114236332684047400286803634780594403607991455616776130022741743935899191735044811081456635276705911818213045117290875084277849070390099144341568086221321008205300876515054160961483574618611997659757592597657415365108605401793290545300103492656376011551318339218623564368307853382671571000601004753834291556899247053336228053651491880360748836855042571213595534047789198740891861011570606135990076975880139722911518992176958168938984195960939119700067976321481094371047348547174306202908924792956980208640730729707704928060463866845476180714967650430795709870851306878444637437140046854296529014243320312014588872561439640502313567453521928636581128127845994981729058838732013170352299887114000515424215670153641957281352766706096245297204698883358941551291175535922039286782365809133676082502609221917432073637229881152245961120585136007713639067462617535552360601656954339359670681443509005726560854435360504179510574422803756873057865903081149282450435803510812962909393641311162902359174550525034360527814314287854300532383404709290558711214447251957000813728866575993984420520556609847473100812515933250989198365409409091934509607573262152466001698726907201189203524964129858669336345456404423599788648587771788192079276349736125113777975683522253606719975090474614287886938725092481208070614760733992703765100549477533374429552518060617162606764657591852188690517067617514323764756370399941220292941053724982832141465966851616837577216420819248083469229445283248082619136372156673664416220302623647696133321871492949603233019125309945116140735316845321926717669420849804780359028974959749541142916230561665954970460162294410208553409889638679511175368213374669544603305288210362148752908341712441262790381024203273200342018761534748592039064011333714289126844955276854798358172779114921282966248572125396242466361882039139927958560249462922224890940168740386078396619129728993077717225302253223236325492028925156969644504492945217462953888270343528786206370475975090492704306524897837689564308989457237929282034037962449758256254158364562158427442105893510184871609204756755146673909956776922112494907276119515428303790794889421186098645389881821573429881950939136841903832092536193905033110844362344760254870341742109429088145878108696611248251124575504806074370227463370634178461247716195311366327811420480386553614119424600382136287038753482560017990208659635904480986737472587088362487416099607626314014371937891963562801339283799074438151023438852560929706518228733677484834222784762714915030952021371163605703876824476381828482027884071917140510714514938100301983046382892667911121645300905841446179751680990802346921243902964935650485614695988324819256560214152231753945118218192889780830147571674580995654465455813357783341734969040033086755797395894740751914693575022885640239711993018278414976381129852188507995473761606700895184165060417258195659475256097216065420080569180189170696175947824063123471090706306830977112896006210616287818253138902781496514132565059385309046166419551247855892028196082928025074901862326761795670053218172901251941445380612753645091270088104586928655651521932581672009290269884768340909312479222827526925773500982560718328355877403667064582917079608423286836703990397130674191736744504290213402747548140499462579526137633834615037979458246597980531506484077432921327109513220983952117639446829066471200671208438278126169827407835074362413848935780971112662093963057616627451973598601976397382873773608847772370917071045444722243234655325192310426413858384987712614352005083125533272000441923776396015397870870547519167367003709050705604774427740720274664204339379241735189597879205613393886436854358034740035875728785186541539166909768755215098791551987254389469841634113805202999722144716442440182816394938866262654978537049434688620326685734425070782141662081633725341556052305095285645207739251786637247718711250171409143553148442917484089442836730777330793402324107312371961009574639153576658370502694451082221624379612847760339670157780866744384690000201947108699158564494903348595556166613718785312883686220943406321775466471606009502350743099114733149547980033255117935474803006119835854772853511658954624819661101859039765662724109198734309956973624653640479295113896740607111518601897121187925282483209858347952945760773155676550048590956542174686977225833080812835011309574722895441575230833542199706000481213417485921593037296791249544325632250989165964207320314681774933962471036130281613192572346616644872012120721670650674416480098488730696288394203320546733003893557362011051743838973724560856987411773912656731457323941845379997117037937832228461760442044973312130197678831967430281224437488075705203367145971834789064658497069013338303424530945062735320015632654946835929052198006473266080499982911331014061038886989605586131119236979164842989183350749664905410739853398544607719161540418633305892877489519378187930327862475398657581181694938853559449208043062038470734541255641153086531442904657275950712481097897078852865506009714235315165298704603591967698054206206846517500983140036231598826600056867528066908300710765679078913524082728797982369636107309638115459322175312540150363659168364204691332192365008603579194743901358039015845458837160059294241644466346302029012879291368723909836639905129258737229294474725295180346627077389612407280029530994384701826694256510734564574148739017760816890192315103572651017921611158713245826532113389186729685434353316446587845447988498372852230711836174916160182632654780339612212023387689936268174703340965580717883482012075721460053966446522098888646905026107384168173026849108560313032409332864425520670626969018918549309204476009452208254685278182177658762593604531079854506780769755722435703763187111140367611301095666806457314980272669836152974613613707190861611071782612001660427505683462721545680277605915035401090847443874188311629150900272860646574621344932136696834994067987735443354606046533297045590873249119600667765942173972258788379016846165451519476782906223967468605388069923592526742175520155112610211721420386672385829479636422007840747710223828063803027923995606462331453587521688938355587669313225736304797520851382929009659303127287450962143849575591481796872395536141731757242625134832976858139274848416586092416687000076595675291463319783374421388879239305844597926848220947447311111986052844436506391962612283552059899894389564587720728661414736689573806123905729837520386245322066538112805322920907048832323356992038047796825634836319931410339264606721665653665589939685935599278651262865656355005426380746248128992122671350693512153618758414020854902420962053520025556646686435765650627810024576236521946861027843440680086682141409861200197005366674825879552000800465679789748901588208141211585927175665547117909894017526932746521654900631028036877490355655129231186592113015059799290568222474720379354951327092303669303730774227557077133370762790684740068992627975487415220060273003341276607262323084034272960723744707487773198562481179716961618233144192323361957903986883021862854516338001854898463372327505428004167789301657149134791702855419325352614064350038098268790584359559841280697714977695633329014798158780723198067347964621749261981345731048125544296599635959317521126395374135941495242767906792922972578799872920416546343722142027155987719988057946892027068728848364352829870498194596759396420094948235194400923360671300598217188023654868060561307069919179894021288543652683525043178469440625450914792417136061767007687336785723715089295654224052944888134238472508125364110073871733379920581213864374062034778788960927103575334257256828826919776052846411788134110377606679955492614876703514743851552659326203384417424872423265393395468774063629564957691026805055611358089235527424448562052555937857989032961194928135273702818252426445437348506949694297018741608953063490996952247759732088242718041387894960275591662387571135838708709122125997353598645982254557383195082310778288436874737390219697859267292224634379411065862729989960022274183786454756429929297835450462082605527397213558560581997514377580728092890750623931907437421139248801860994891313776904340496062426872929910746125701643375626761700127232244556038911656687184371565636775965285248132846589841849645266338873054978117121894840700669500622702228284048016508599038561191719088997147807497372698044432069338473253894521785793604130815838587731462555651769907097717233371696982637814316218186914834823100778887756480316585863692477827262111430985375406831414691480358898816122243414743426469229038450158145404021490457377524000111579614931687166655579512956653968213043665773729321952269394834719597113620008698073693137872290640270453007655069050008757012207679919212116468272700512796290892981684357701690540738822764826126178069483255441953499277633362689151601923152996262867651164612766314585374889951139304573701812143577578643076536036322043720555193257101045249898561016075478784995157569150975761732271293929075387659383569291671032642368771457708658831555735277888848446767512794077579992559500850418035700575942598362233525273256356717740738628691266089871674618002661470665419585620872970471314764270653104739604326389088389369608106383238213349179031059668797119175825100943242011941778286168594202668714655509571716269466246011489136461931758879511748184560582697478529948064921780399836776809088572594989676157663142261954791512855441504472301498921236278973552681460524477968670466759028595624995326713333751348747253192829649203232304632207416726912924167463422359574403416067064073242473458634470760601641845698643391345188371982100862174483487355373952250201461285691529872358410919468914518178230986664144012958352098243180793738767926828828764717021992251908067640811497203685077625636013739792318900602335720991914104441898987988728427817826538720073878194734554907160211778476170129519925626248801906692318669854205462902341212445685142803711223326590583115624535273643804848537753277831376246756712232567743241150052833568183479548046307577342140198436460674338623232383754420650197918560318809044271227870322093993733176225344810313186542711250096285967938599672716883787151623939437116715578086466931318684868190099237350155300114478906037516552683199239713270552789857422234564601248700546696373771831566909659850833716899372215933956032485871052688987608186375077487838780823119332731052948002495922787499101897736163585802685559959068771129379697095989129473511121490732550554563993233678365054855345715338094507884148535197127790839715058014846778852519111253172221309015910397237298800905855422033568652764256557171619781180510799571898547873838821845666874191788153124571830785737903013728381221395849984147737151099016316549125371475951706618455046995587819398689222576635063475518483395417333188793649452682629171430070271518995835121253346307784651573566906205987085103250475879390786422092884727779332319039978640634249159984045640005708254731310476367137680359438513598589713017424988126912198850141069800048315798623671054929388427491697755782345602640502068627674670932979064581753596495147352949095807132980736025989124277296201428058869081025229973751422049377661284282571666517613257784993060826794564063286624475303588329177372370735932711967563302384174486989135079255542995403972767125078165500393048015220999950972404013147520085325749265896491086983245163765671636087685441996664590177703325138644429485257094527774986641603466511901393744846766408174023481162851285001565080942422655264357305768226825152117563602070375259028167314168217294495795035044830839416167062362245902185396393867949963053709929545832910901063427864529170511715766729758855115644559089875274816646429519820055554115821792961277837251537454397239675832792769877516199847142887639577205342189352985634175863597280386310686859033172466812628887509386345207173307886802673844661032180795826430554354097979643803147299626648862490866578407334824959427063573692449483349110383336150335953353398510393537008008186349149480220290505950820303722498631945523040994751105238049898910234649991017063757991127654897622975695540346421471033094923005615629799988219892244925357090931114591803402788480791761616796063239826394024078021836724427656463186429583343752871543804130053749366964477360646627576213745277486705740751187041411389991153331052323387648278440856266220460290690174145910612025679616201883562911830909992348214946638756946528188010626965101465865312497489013869609951523865254052073098578544157337275273444321919779832748167521498403536892537910931440052324704366500048336350961335743769446384641685356805209660192550809136460171832859638717793670844741906788822665310832101756754033097829852242017494143635941386834990649005220129906388288404437786145616926037589564684121868248668191013011449145726807860815975720646215371678971655178523289112865552667429877186195793697011568274655933183339531642114524124264913642041054749200382409534876664197296520685760512504656394993051789484378941222988830121700051206307073091675985440667510161174890442974685049842359944453210511489467733652883611101906484489731321769080280359704309844780550690801989593025624884053220350773019975615467985211673941197904442705130236414936411194046271216399770019746565606918344665588060221803625323741724314322840751284639834283147977719576414718964116833289852488414843033026790418769093989013573738701416637448424584671311031622878706760139265428946608149699510430030188663672247383165028998358881874054611084263097565325697006040966584794744727697752538583188650206933380713836862413412797900368686978097390904788886011826512071000782524560760436849356607698932947759244658338572103662941411400952440047890376721760821998284399259835053135908656486537393120783367163889421283389384919773652918540400137492327531633026275873862392511984777752202938655855483560905091440763979820825400629720840147874871986478212262158985083726653719602646287224303946288435083829466228931778149154766190965115409953951634180962574733073708234309689110009896023791091471737656459854477558285823399632061466238027955572112256628142850325569182170888712757105365043384205321485709971146748689436801799427321247462068431091778478183616549802140598248319360136288177664361733067353599116625870887078084267849325320018498390797268030555827034325444676999131949021795498920401815199401372994873990612879818426155067071400278657740287256716382360033046773589222561675448088272964642599188355712440792180975748959448265362051518315900421202472910299763411797008156020345164371645604803094538177051722305122922125186208234416064253677036535187114982673552206498470947594993064107177092727650268496351920096409639701906158165907793108337342904313018833886158337028165732521309009535818552337398414373191868562341516625431286194849421197425303975298113317639165323253631522260333632256998775206015533257099045272597247556353364340807544969936954398551607151727488014823166878207028460719189098144852295627001148856156716483015819840218254764950176200318341426753795833818027428211362409488711247013159849307634520258721999436444198025895283722358867398529386826763670485463044993604637592510811808481173075577946389809861848814055703171792707853909388016357910012840080986455633192271307919444234225291787955123175815744835815661088342939818097868633536091134749572524024010406391482924839201557987087249329336941400180048056202099737811277943075070327676948415325287426683191174412426887621310330603924485476970192705008007694615445602353045481055853959448260486064900449099330306284278907085464437586737402149928382148916991832399663152839344893182695605980540190831707255684569392796229634414131500348340030083856863327244365446398892798500207818421394762044440693797828333109373826385172386173245525118835263332509986525873107941348564028247415185764750358471859660557861534497259156029820622694159009341576689527740845411983788716827489028576568277379452714414415291767553996663537092947248070840109076940103140778285306431986293367348405992424576825007806916275383799474804926524784123697306682560359535114110593015186323260073567067802836154698201099875818001317023031734950303138786223870613985695860563950042363073898169726969764667180594669069000142628632506990329587553017102795810120482256389855513553630696651256350753598558728411001061962535135465635943905595388129380424490306660639631547804194289104973865172721622244505586052697922807394799067125161846721422995434060087834646902328907743048885765808412037076216049759105045865299656493564988786035591805292280232826868938637237927617591003444659809423337613062419999616240087210349184309328979801786089303883948537104336242478610080107786878952540582397187552268257520962829841560651535103407978355339779117908469370041592588639684529254778178701743072550707657127322564886716632477457879585625729496051582025029992142837313473266339175728789525158051085365794863677490142562800570207102315923072199327795275496934260581673779208471896763327674996031772190247374489005265102150593090932117945346523253309691466026558414636308155020209729325764210810342661825641425888790318995719430838784492345239402470159218366914312609514617434534515456353149961892371942998666116468078728375770382953857885911241515584681118431410565744754392031403893081576816178973575209438803571852427702213507650215372469565158026758902918022647811989205411204424784027604412035421994069079833072281801153298057672779771262105678265749427572065212007795408546190106676449864466445482115277144294902301807630773348463808107868015257272500173664775687988792400417609453794944173533648221480546654432161102551806279086284753050865462272492286739477639519121642167049871297146182195590570310962892777355642359423795846805859029511579111178242937010840836186886098545636266277593293409068893029302690455371082035070205464214008457074650639898775642145199661055382490388045990440101215115287679327629337850690990175959552080916764740051396432278089451039905832643010386646060387685854291582299500751695847868676418638783275815656971843983524706903909997881080520175871367526288123140217057940204252427933513454848390027167795378878885555731630962646490489642050452661777640133250817968307013258310006166963774263794088640338457414095060861940433557729148268911440552631473609760834803755150607036748395716968060012933155473836854009096937762617494790938571900602284330021237125908661996319237254052073707383673528724241284297278777199679019456317730169849058078886289223334272086445595700828941251415752843003621791788468559332616185116332036302155964657647069020193335120033073016849383986620481843192118893484033661822666053254750493263905322011486314824371160055586787504218169504641618907744695674784308375202192090429440157980999968940023544893446563472902713285341823061665199442926029297135308397041157413257418776561979224668799736112085281612554650882647800571430015419155136078515763689125416684926924994862138700973877994509827574659249327340849249207458307829971249408120012205949349683052723554026029673303649842773923272603387925165288682362689991626055368015946349554378607137580820507638474596302367713806306468553512524216951518386540379075163182732932174106864027524486849933767883016196952280358499672155828427090265150012659332273408234912134694895895967304251464409431440241690849063226413625663559520406493091969435745780002220094926311217102005724539796830371504197563721910100250293801934060682215711075989233560834227037785259279350104884076412369947483948919103488145585935851336856791863667334543593800578072273838027243322293744892256607212623316457384345909854155781122144777178617176831218755170950056164478184337553269325290709119934440508572274951655237312830530462608700927506633454752825895156185415274912931295939271265512601407862374274491096078186915560712059958982638591859595487254659243783209049959055234586503331196649839586683538017325091639383216912304794565627877927180700233165009328105084979307452971598827107497967468107629204429610106873981579905795440006805436741751770322098311057083790046356543932567834849729276426547963979676732015233892865730304992971288762202679826588150958582571263001251789802553633566998336622238876050338097155924763211295680295722315264680153162279389365209760840544439525318660290851311672835173157829925061400367813318576414796738202027930919034486255490486215424250275775527649705430790073851701261789224269889117822409649862098869077657265555080038567436347953053792948185932822864131327877498558007642167233611858809549959017924624510701172915701896900589493984991036977318070480622605970569162250843415488149686731639181399431947742227870285638973204174418444007564863560127527944689487879338917134670144190143170735273646172288782572500891488294216555372381385880695953754417980255609951663022846152134784861642590127681082547900740195607065632926250297685982908934536914414511182938802801295924952545271763805519469243772962904564325560242884198246401698220965773163520964248399751195510389213403092451608110309782198946131582801856206248040231516976020287074658406221482866183812790793997211098984658366335358927312807821939999432699870652385737688544505974921470959800109822397851279338375145143327512339130192579203797508579865700845604825877544292280987013336383408604005697152323601100161767688007733630650646678719271310014773992394417931238774738981257003190031436776121424055064508166648602432268796927444887213137722130852458169172406055238750882200420344859373799512680719282760434788412845905743068307383257961226512784013594696976312023242912068395344775324376914795755872358239705976227623174130298347731553759825226008371915991593136445366013286005313615017720182586100761611792560315298633154874867951477301149444936048632191167472064476584911727754078545731600555449920074788047693026146994630304077942821178759699998834678120946154749186930318062494955143842614776242467273762531406227038596603963917885607130609856971272711756189971162579239626078421240839229039646183936727565888224224024099886384671010377046799715661544737627527568287861858323071564680311617802929562736146379519350571383134515959926804838739981586238096809145459780745720147922385730976723990974311757807252755416000751067383179859207799487854066364258726836864232429232547646205061325367184362805298658346800315436643574628173833031408044153236246591385849937592611817826570130039735060418820179112013813689092239774311956582244315444949164133342360514001144763939547355864919047302419463043379741475313704902699584554637390314141537119289240236916485357332099788555061120671732944483116631458294432590406187312965334562645588858688700291830835472659843838424829591439726317835103987561097173130418244265451706991211040149698113832933412222429979012310686937979514668421103439143311700775957604383486876109663012620391708840877599552993837654701195171587979830753148189521562785862934841321498506364036649842485456700289940929944607290627210984740549256614722491190230447135548650376381551375532334829453467983310501311064526580479741293792012447530368078024896872401171878911192310620985488643974119946070883223661206350966534088728790322852915576471111469301702062602908242715511102140819433682461828694676192521493135950071711404296500886345961035563297262453106528005930956743038952147054751223117784813310686961062301360931965296998740655360295432220347717047488820859547692552279478630432852201524488023326569905671192386086357796838705801748280891147964000917340937059195996885165082104308609349024071091612260208806010223382970379902592981516255903456999197172736137271014516248325352209811332026903041754284144603029903820240656927959058727852379063188181719124798493468057967639843030640630616514143052257165463303799744758766569631073371942894318836968317409819021621751555484614619664078812909497256853966758421778094199549977661159765126327311446408211054318767342946437436296495003173387934332293410938237283032819262410923139661274924721223916970748203901611798090924042890092314749613153424510794993419284066269580697304217328406172714920423852023802905361137262600451201389962963710453943152587931858907882178494669457396429061796466146880018879241384201855491222530642914875608368260362664666280090137911149925813946329486615506845548541229704372619768763566893012987069441141509628233134605908618835296632163739542022798029597925352603770700305305433512252221143744187190309019608890413982423818602347832959108364400848728046098793282977957452164390028271864091461562997251017091056839485321125016770037724079666326606594890293088697044484916908309616152697128295997438962659710629864536200062577062548078469886439495772095991288623275968932269492058133450336129175556818624953330287268053439138612745519714524975355293073212039633205642883355219712463184664625644374051784368663278295320775087919509005346864716956070439040052149732097478349634332499711581223902398002578008196837667232701309714844792546671900698454778782227301018031715558502613303131279774082811637206797780237610362647483090096575566301142557996773136447694214687895792138621851600829770978112564053592807831573642522049893915073069516413891749679063314276270662205405006044030282017643906608781732829197767509818268284657488384861524214935620030833023017860980138770500988694984433583016444072632216259212307628354463916547352356391215473278883867640375464162734428117078583128736005704592105661833671063366354682878139439682314717479372024370193078651554135508365638987233545958332165259339141323968751760043596291434793008709728895530518747467470629940502636102771379437725074865629810393302076839989158374990521658416155660921038696311775487519089084427703499788964668949675750773552617377928425547154506264954385158600136373744702127688084869449102318468338467232240990144674380227160642180701316234368449167235543948569309813641088745680799199773669346041838997705518514094715465250871128339148327572605911156813491766507337784048897626136302039878323190916637932006206057213013069838616936681624983208506497097475895788893374726213331164853971016922319016477913811532281927005837394101875995665180384651732356302878006936952547948037557456312053537501960050303549671224756837375124771519993794221960589700567992407139016384449955036416628644734101450308559949245190573382178439639803567437480314864124372556670438785179615496067085687971076638976234714319350608066246830156374376742691409770808804343633840327222938998553656570981290710929182517998001206590242888972316907691096479257952449277249164647582724987967493404747678761516394112918169110869946570055968988774635888492754685111759887337294971984852050079277686108213143588620676486241186546951000911743567589776853268398185517073119775307730138905675791605792553166543270419485900659650341751681060926222244275355970750907344329993469698490825260380801215400586209808093064960531083579320798627449063430842989300731223283659960069975033012036339820547610773104840501894641140157427985003758790181637426364614645598550307655409099914756595269262892113567580880783811322552787624795187798287891048816445974482044415517616934509243870038775936910649869770194170345282756072353672876050316034634688501185567112397937990830754461434022139482204443965047145163904762998717389111143055016213942052867548395596550991505944178454224433073672593511751748760966906695071553273516208471444268957265180233123166677818521219214100508804946420846820061043896170963230900612417478349400214896188755740184578813001419142438134523992748250764155990607840731612783398755864206027620527448306695767872005542324776611059059959195911002189874420001512691110996815838158303923680301161175913190305600831566117198401714965151128447869855454071615724603626903180186123686808060965100057180101689147364055555855145606767546686042082812471832928070369787953052776744044576461516646063766142166737892467292635264243041813673443095857070435907127716657957462290931143670151903559569892925161037170543841321405779343194052260678218226103117814276817298971312215837604349956779709351360057888167942565875280267321543648073792736852194535002478470384665367589233486260596577990882246200227440780602217760973088927046535961319455849750535896294076799907212693703617378340521724766199969928133896121287934267020577207030788719472558650702206147647933426208679738974008138938706092576054313145023860692170865082643337238986973160736756176106644936672437618284937162213160843415489595518355387100324832724165771026148777949410224131393370667727272430667168979155666355215691327259852426571216197956509845987099795410765516503389748995394565114875136759898325155270346934894005733250069716207128211103532616675691522366504604488726083974378699657934103107060801421018316257500545430593452282334064132525229302285619420474541317270544322491318159634539435134251325575684833490819006530278617282811581401244925573278763721120037562792306866193867913649504252877964567541289957611852034493320851137240268545609415080266349270599709244499626343051476406980422297873074426868708326293124450106476771922654315784525801070616488538132674011393792653017560052552558980590116310719597115896313924052746242371825671802644160300373903234318711530433309683975158343757876168923394498555820745925004939537461381624955210227105226897554955975141544306394078512771657986417372835207453641472782710196034948631416425759049857717279329148442199230386905569912263690744247458150956815310400218787549693340062328517247437792394304080333558907519856898771691818993307811404087804705514068423974210687165904058923959745485767458539021198192806216211212265639306673942214162097936555366543040776900295023597893632261124494463347416791182635893822771158823110935574266908458672498369701433122496109903678285304349124321660879281303252224389444887715321556580789115751933771898899801998291410554937364634038627799358446301350164592312517995858930653692199922327602303422068564641820866747661940399435199761015210071646409880759572872131343088220647567587020412793075855418244324084129600120135531688075450528007466696394572603529782840216034969566008078676820971583061845842821084856127431958501226200144340147697093609254246317136009914983346048580882464987795827648968984184489630897229081700647223386059565695569956262897014991045717622934143780727477850034724939930677801618331162171765177807143024689489781454275329981116297360525021256116043000016817274592058185537803515966332531416458101728787337104020260330453723287895146013877313896724235098211252944592222091592994708271952307599449400055845008933035628350991655615333381633110761083294390595484768028034748831758117124840802071433864960864246481651191792707784789825090274557283280235983965478869765674507834034705173375298260766704328978274801089114049267716797057880851015239117538448602432497182642515541589484988227013223303334866696642437120497068779498194007641742022257747219943347256044810995852133548732942162932440395328393458350099261219039675906784042090014070145344281213149921975313341869928970445710999799055331920536628678349415527065627877495889965644603601446166394113284223339666721651223036259742841434164601964030508942881734817003969227249452923214935799152055269927711659110025007615851179000012550799146400397227728592213471965100967438778065348618278495277298151692286081135591420184167621959252072135486318703428741711155183010008770925146807702635865925027678209132003963825669685054045395288645037671408549566525612658058899345613474650229713278370608815202480951744295657522537318360167848434974789999283789613493407666674734631676565637483024892131493148850933644165893649201206768275611334989066491386778463629472507198655161958162882155566015483927052742191253663698931944940490269599723792094554265244172596106292185866595198255666310395554050094448007146749381273510796147655651573387885395000023918343794482980927119635151375427502095323746098811902906648867792760143661210682228674560710988055300933330332104144484872509292418283466427232036579951770946346159663710301252664227102938629896399385002441905379968377705148158449569978938609163709627379566440631600146508591740478716938514881159778073155079117556626961362240182787558859478421167474522233230154267150562801440205796914736000666211575014511545883525301002594003166390717854773529621890567942560357752132833298823259685626148062258243503936069207450773797303040729274079717760831412725953599947128036082148172873738579554496742624856694026545551891465598499230947457707078781553721474080480437022009092408816869018992179880363061082623552243275082303790475816350497452686682559813713961069519435867751006668951617168059826047752152906208812313067222423468875477670902319982858234968784400189487033235317689096973169564113852882072003242000511488728444597675894908516467139290244729065181443763003690204984722712187346356339004837013093962646707715963859114779896489657512307094598812359574101173082535872301783899571488144767248801345247209732612531523235547431588109462909793202725854015683600285685300135718208787008177659491464344227536526464315546631628139149981941269149483129901404359158129947694756326555450247095390486903825876929164188458372827108565674762773309865127944556966924243545471899059514549108352743157248211493510271724303281316595348227010685653225184633474171858910806976785865946215098308779144216658495475982240590818526323201990240811144690094353372533382131280820136899686142273150369963278441980576124223021574875909817506705504933789292253013555133885801585189568383491770802452046717722459495833608091933048194050951392571612730027002056077875459578148720748170924165645712663626771877248291608845038267260056766471113039263015731131764572839309154302092860720919918313184321427235496658237146766385836332427645224049766016046684783822227584412948971173853367734144784204107240158607822285970248690053763313382160232417359017953012928774735989898452410461823450483395739579609750668465477524074379335220763484963999338807942770999983588923165738818766682582589737636885244393755219534519678509282090404878747069326131705694754053855756438276803347091283661355246771494214311925161008524576327400794717944218396384370340321138888010139606044010902562359787558897197459070409837808460053442557557545694476001461117920265512880053793846336692587057333057750289654174921689282536002997661948459807426063140218441386656676955520660949721679181284572171356677301250929641075073121186688981073790673736552582977093725081704779589441592199073889947082902319443362641452793282601740576419137821416525493725221288477907211623521246950536635668385408176127817861545274103656363676476770772699761542328609962148814836598764688176245598943177539019774044061846901446247802368579052203791539155838447027249828608112924747992040175064013640552159188187140070415989496277593046844183265256648416698252854606839351834070859023054636203049266514660145740877741300088964499686534792775695168094039888404287792857752894805078958037028813278546196430093060005914075293655310440471352131516990566736759497951564617476009828762371628628478059489281494645107309537054898489589577205179966008722628864669162981728305728320822686731826650841499063723278514513545929040845144769698572843067941019776900276372425526916647266341899502480730629606646487762389843577758689834525865509934965302900279228426651884024801568563626150660730033539772521207467149885763960815322345656064950268228833928388883666718629968193617481770512384751683875282901203568828198418626927092359293784934196403536626545026616874931107519768156432707703009362115755629672975481713151062417797065981996414185381104066867834973406490635367133143001162808714661632732580591981846937922652861214473097916539301858808584488079359532525676488783734798060555497394391670173616061599572970370333115407100690102531251976156861923358173181495837852901891153412570971374741862171086638709001288547407256381333579305315607912747622713007605925485585747502414829588407043355828635939567972021710023448805114603293210299707210454268956058544806459442717788346621958813351060972314000380706769811909985752107229608036094631371184174588830277032244116924806731134177263497765662514034126412572389642614571961333200658634086300133859686800141911908988724256841456021620093087381116988165814419161692623244321651237468699889573739857741884537024653015051970185776341521848090684408093896768851950932996287490429436876662247743137113807247370410496746639613783338736408030736067978187449899611803920072190432782350282214533565738293645800959160692162975910351318360711423963325423722973075277200936999276473289966761552566036939724178593338563285745568783370949180530335715198347711270264652980120864971518322140236850399621678830797724463515651365160002108252097675314095865544132937068606873123351303903487130556213223931335843145030928878234769173131755179483558545424932130668107823223379053139918807231317310430614499760936875185132988580177499619105148521006002812471732093036261445156165663478773280306973534489389505545039878650714013484461978596375073844706354103102248096881902640906357931147002834871507956333289882020277467292626064829343136522416778392092698052619621443950484184706753296068420355894389967954769586438376121855171361758820396900519335303576548015910586322040678874587616904863543970781375304270839140773312100827904260023247222581451402750225979208268689234444575802140935745862560036033901647701077525666180678491349164557246772089043328170109365452915926715897232625801949902139159797409174321288352798906492685663641059111420125442641232832374719063400388534362883959849399941273403419463211139692395386860890507847440973637220619513121087916487638404557109049750838355837658477140310519432574188450135532086076039976314649815406565355791992342509816846764492977964391730404946524759064760330622299535626747540685157305241531011720633491818752092179812677372021674710450005839530728020703083729448012967125863208153774876203521271114888999761315148057844871279195033447587460000247574609574047302152734939444054650233225197085046977800017245433230463208286446626089532049505712823186710169447010598539446753791265958613937045655176505062020053544269752744502434662498853136000863013216996610435340510930845059895052551599943237869528551640187525990189790105667149233165340963776228562972895923197637251479648087165041754675440106801682392111961910666734564743787777776011001588821901036304171559590188600603676811444580752769263293943437795988292144595934755205501526692079462618505165332707355995826061877471321794811473613165008375807756158439488539274205214061824473664010984978061919807200684863581689966341685087724719718958256225132592438401256414700953348927655053726159963775751153143304007131282511411571015331500520586082760492834006160677897597152059972099145444287598277523392642280427293826244374697492501935194750256622724543475690078597209796786278907100230525772993563154168891720992223859258996430759671815323940111565351274222431168398508264489431112341351030276432575032288247211360878461020524267025754783745606005928431658072503621362756563280679074987983608913090426306116636154597099414307527046017399242582356130357793780351305780391268971068838123002980157997235804037439142499814142783446808484995595566528774599026985406694530575185519704611179641421118459119605100284871492378048434491220820804055084899231828906653835150584775277620646077555361776519021781629046364574876837748512049636864797269680722338964612208968321135632502356246698400039499469653231569572047211240736863068829617449079711436989230970651120989256343661508829897426560849454448774055316131221587151269443127154250555180379588687892196976654383196259514114089052510253116444850528311108377628375325665605413098883790668394236770109376444490284959386774363495977010681277406291994749219316024786615357638147201019038721430020421258255544016870661913742822286714778983341577187065685160313184067817988104601604570135282119186921986919350986395651960219956910878530420366875954157227533783685541142175792088801972463748172274405451881969427529803430655870081145028709664091452135603459376956799832685588224125283187902487571319562555112449231242980427317375440023807865402759415043616728508894589030087723861013513372745375959737296088482524885177335053763494582879928207755718342274814971486121841781469843859724313832166619130866320244648324679388574483585679387823697678332194820795299979260947054384567337685583159862095020404839012005230330141604470923264917631645102658152210294670320251527384361223469546563788301558829855907749640338707453505002553886081721792342476323767354304696909167263273061148468173432197188555916565339779352342526628544189308422600695842295757356027434252457053936887245594476193741966588194397228465088363873407857744412523020658651941713387332852931122421898924051641840173075078905061286874020380246264491472368883982346562470688201290265307997026203792349131863054121903386018231055481227765988468953205819197419535004068128886975808704733938690988834831435911660068182323261653396722036706948619460361722078725328748480479925220609322927352436043101301340474924751684792885376382256410793463078210169448760802975987373740429507314081012980510976773783888834324216257437338344057354279757603925601727833999420885845040643988102459604723685978793877751366798741371920877828528269790937690146208839565607717510234836020974645301366026105280232810648659068090648422552839362311524826044074117738741617757154424432753623804189885951662199923748065968700206976100961846160084486473180965037407211416305015565733607639153191496412931671239861467681669968775305560046456278967011601638430321271130061583254301805499688391168641696104642171719270970039288239918214378727427776174398783225865693799582564607626491414777879025107083455010616117032504674309545514521377372046823013151664644316100190097949232238772111720926637153168567017421461832596840965740843546706221856508449719063741165496297157913326245206456318322818074726134390049299509149557805732465202396757037472645240556979547942302949455334972437543027964179906549782077224228137667170766773814398909848009004485203639371311413988641191380158659323649978834159279673119494441798295129719981485928689957476271696110938877496202249132663944621835834837078254138877053879716285419752611233257388236174833854795627209965787393986185716163648957256842839849026035681752406097258584445444053517966431177719550099924208048693974489421241632419071181458615004590226917066186445675429458829688416302567444017198453164733313993394905308364554068092428900636357875309979431061209821784121254190285967967619065633072491276894045346214145773583840157248253209117441100827798046036856547808703971344189798929724714956263791698539652808634391133012358386816002856258902183589847790932896028431540312760479624963918629058837592263392388270029401232726558886384776241399196174767124555754215951679074307189511947836995878904963373709644888849925596947102688813665414172160488872402054099823091025126528682773354508218330374112574659491332061613024690684736176577214960330338810931699877701593330111247017617463675592711848084472668946640203679691640958100249122245232513810266332462008193280282896453219003162089142898378490702506929196000232106723694976420089538469990059467367630827227765804546808559380249704926585369410994104088622819197160262508016555739620865339492058480385796544021834087643358125777939706586404485814280654369922684717505057062064411880469691117730762899370454225093286281000240344782951742660594670274123599503612198095914013419760359621694492822402240060120031640561886058290470455876940593604718975841218204942016401295325874629443075549559388890811653971004651399168563532589413214096519293698708177646513152381189440147375272796632792633943411149103155223165866432460390593717085829627175300429214577869064007858847152324061783676467344849571967695387538001693567818883709005390915705789953520534478333219837324008680462216192844131154657347171553736208808984985692612352121840742371087472970172152000671295226740181016698584875418455786013068775920684421078466857318050598408236056489772928463371008768586179079597909598058387997990935964826302712853285714480080759740170941019749903607454889440652279422770060530282540813223608187018226795473365095093892645597790640543322753157002931616757030662589698019276894244989153436376847641644709710319419197377980243943303685562855543411770845504017475720944431579674077202333970193804087916283981278204182341093513994029630405439909153604402486274566196595902631069017885813169438620108495055265559656237606138058419512577359546991042168343919061759507643631453190587390437060927434521268804073075798927957081256030028846682780013482147130600761676732784035015289797054855395456896926533899204591461232621303940987863815883998706307563443437360931444606740828329931480565256515910990845698794352798572911554602428086496615318385764336715486712103664526481899306174941499392933819521431616348271166420761537332410251882261794196828041230606127691633980072821672664118936564163860301436059816630810146845141895061718359592583122258010639057181277356154008348017324006620319889617654522560936532336748187221858703565613266591546576869516446864071052216973236055620002362223200780841043419285548797196887843672308275562800582917635002120594809419365177731326012200971566295374469499061081530962661513395956044074521152413784913442464529429404223420076178225371290112933467100188371223684804625837119900828503561454522208931878980083897289240822266831331543895953405048763703100573138804187027879981437112860667012640524428947154953497732167254162697377258292596880247442402828557074379239537404044500083658681647646930484286333347914611126040821357286804432336034025352015300298794297150607016785731644871262168172644747756955416208995392153245811131504498722679853774214689479385155874566756780450285384861483702910494303806336343385280829139079808294298858418619978643659466475287892464306987906464793735758145025719907625880557542460487543182656485955402158667572795446121494188465676258774715459569535815381950769988348753116826821713791651890117401807559824317466618322906263184432710777103153546758491207216081965267726234701222319324524535891398672003892536327395628634488441427640637460934797880566790454602935051839107419190794335252763639641262830809409589884141421183223476661908602549885500811957970053892184042590659186800845207776608904686586323212866441676522376160313123781154162809098617072217464683606474374052095286201537506494021666748627855372298630198910769725104649606482159056230055525487695431643928148872805160533728692618811876283059717548719547167816710997269020785061791371325439576042620625083129696136375971454727962015772050523520919506829084758272950063552303703133562743133431830520385132895807064360594707012451697427961686862062294536717483076256592942365922577613598357089832974833786298841722682835662053891079739955721686076560376820535214523337934212637176110852612192648832991023792684164068265356278548241232562607228408468533327317230419343570009239232769981185363980873530490080860509907287026848349810798636574217190031123640956626738929030838922149313131182464109998305910008676818490551687919333188438852989987204271367696002664382048435299235732804830254068508219432915948308089387188676423329265516690221840725665044722568547447695229965523136895105113254993494246617300866781090839124410507552676346972391890150311498212800391910292785782933233627279862677697300804442082849081035057753114490255170832032030975155999245382696447314228267117359079396635718296341336588842411677079856847823907323733496418776979427248667475170979624441765084000423646808163126329045378874933104300305147459998919221701112574894799842532605255021422737109046393049860224318460170024724095479592436123210623750515244863672927276175839383551223545136213296059366223319653724642250756334685498875521756176393131244363239083465357430196262992080391874530852795114873527414461547466772210052617438497724423168432494155139337005984965903727026671773126108275189971682655774096345365337590678480223820498196967092107378598755304774301872622601602344254419076823318265717455010642705139972185230899404918914300142779579878422275417733684735991517087198663882747394462496487218086941916148794053641792218469022008281866192493801662208690429233631724962103404619051794958088880945113680537161820673849317491591829921949461414524855155602309605328276067854944416574395196234345402039165440017181951571865259177682778082073502493760185275212172013189494486687108299037144265115782713581395956935255345945846146463048750835624097534995913013731373266081370209957021824514093888269196421135632560850872765436921007976468940255243746252699291319737889802398468417208514557724944627685460442429529361565152627327561898349754098192942972918106886486060648939635410788009217368740657703098809004465962823563715957831553456699016317203188259439130120918952601163393889302011925164808727742805100632556975775822617193540688147999893720234717065589665361903457390386734324689907978322948706339317103632140935728281121466481388816977280904404593585581535381966811782514942855924690377695739225460039085122791772141776105729364041766389017324599776049769437664746951768946147485022117796282681108788106159442647687448336086996907909276865206130139544781753188256841783177657828813350245343656567458971619357260134614319919491984935563849922469484933697529568781801349774191932721595799025336898857809342417691546291043467443491334675915507439778450399827262695861901040700064182704941869586779361338567236976426070867403605175168809846089649419283650022923403739299779046070464252811499231427446618800116265691480321959169955709899207381360814344642408382050045681777189940368024095928013472212413634993817543558227394402587773241901808839913215358628909689454455871773718274724160193580373922687899689509206636644692095445230166298726895971070968427321988093300297056209840197587469185784465536892012004499977051517872498148738233024397035890743851990235911849986421061789894151741814784067751285829391128649245970830095536338519146978910014151482616302454307687609589606816528635529533755459919826113487390797547578803201780040770678517667845700894976559075299023473165534293283326068244230367247239582956297290079825578819698550505964867670843797640671637498190592505103180970646477044587375106766124609310902551658641065291031318993100204565222360685366490996457873873879627400122609096614718758367264788073597250726313898707078222360635325687019628000768000893247645426326052718990089589493176706797812475394205328258350683079299441692520591735521492427413533899565135878935362683441463973486702276512777612335064015036595596572908200018373776043591245076901651570905171120857862274470476719128192568725165185069834579102103678975165940011537728566271883119641519632421944936289743743650827455491432113786102710312352284306306310319841618057873618206764463031635972026761305864358824566085665093630423572123110903306973435891094405041606941022304965447467783990416100541149821854347060893938119318909840379646547730641827843500479486854117048355975570729232344919381154954214914521131404115002383010743456686547423330850097398457641648747322474654288457384970584158889720421010758062892381090338886908347586206121062247066876694701295489223128521276098981883530689570159578826492646323771332388159475147520163290669532690566721651371257122788583729222713084652561831183987885518912129558934343185677589393945629330137484674700577475772960788092262354108703405274975392582177587343155286982873421548107673348979137689165022875698044054616506133340319819997719312615486491950215112739050798303255256234668644998236380594594086096622220880107079053222827981548637380298196171048071271607103899481678913507632006388019301054258274432681736995287479631325362102494435653631640262535914150844907625709854390746220597278826607999089326289332562467871770359914890400404261567772661496474393822786245618386612328118182376240168042506059452207034339967578033709114174867982287741852968011177975364206565704489328297998031175639166361553479283960870505168520484601241471314354714063440517564029735982462848038063890889525667705554446914310515189618349808791096848892939638538171919231085041260030529025717326967468879792402953365348184821605525387731702942789139318043817922096548151676958772138935693915440282324816576214099354387906299675176972154136816177146610609696425292749728558530403491607049245657980090633023148251407751567486473634979632315130977882352626455137718800537832550206018078793877566568577813726349651607233811347713511242212586406244990581752761180292563581514878408147337975454235422815533092869559258820417130959450772806012981024089264556334814804237034254749349704643409035569222483049496375532977695339615050316566434850650937863176905460593467651432054381272764822565124257143322439103158551158635208083958798516702776834822829385773916795966820318668201612090297255015794421419372068408647096156045877820507041450935401869561379847039731599891914621583061571746493181681374151263200287837243803807558841239868214052069933712702113651790694695324159617402857826328824243716901932508258467414963502524348409425538327368063354942289443984142126314437725486366320738589501178768318397922487720085808134580855643344855157329023043679689784744534012599346397958926398340101205657076937962955914541345633085426838121942161390406978849172619245423393462243639277359909324075628157601846027782877370224679595942892363521196923898843391719970231664731047413019331841606124763827859384035775653088411987979647402049131802620413325509256288521883299201567433361874081412766984833615481721998795396033815507371522224601258192704853843634793269380671585474303291761768428410271082389455851437281344270276127230700766947087561389955701339473962558049438614246336172929475889188743044993063067769384610470343958770369442444757595469224266480835994431324406186412997331742894204118533320584178087449409430564888010516970234758596939292104949155088156472780052138448696452491992290059682662898554690478739389698679793011784591546748176581273384489804848165550980735524257336683882619089560859945081451436971777205839290139303994633833306040450861051167758319027196944475739378959784045825993118714040535317548945223163766821435981086979764807726184532659546441079347093849956083260066717706178404821047626084524676101302461153497424182098311139510558408548840392359931528180057107661177777829778396070235360717377795919320728802465233736789574820186741060700535660106324602666454444948487776521658097038003294328629076897699396380881118189100885683476996293706107565503502432393446197798357459227457942269507978348827372450096968422461531854329450291871080056900370300309287262555714853594952475330113053110506504196799575559864117524136819814097321397010841078813022328890372799902183947696654697515884421313003547385303240030398668608465377798451054700596913203804319857896997386685967541780474387341214458231256300512119731438612697744588901199050505060954216075338927019748147772533294961563941840939645326128230417130182072097228001669410366264755792029893740214452413139259060092509398786785767298140361213242341406643821177030155740345637475479309055014583785609385651126243467591187249483581210588060527212250107706672249973367493944715355262047942622947074270342994353605118972518545540384723219476142842992964481029965777022989996171876915448811670815484248277729112356151788899322613403187024069651636414166297524069289205665384564937516388907253852727996061495545548598492160590000210254434530882125128785967636032810613002638278682476922596720961081528624394547158524806428653797533031505594307882602802432216742936310674299913114589811582480155037510789171171108924458417719740750191340253295662714373029772082877518875586164377636865718600242354012236499380578972144458048255256993493571553208086943622085590364755341087715586387443097659944371435107178355137309577539189638039011340924975076960978011086582782289492204809211469872453746664913468053439059151789462571677741076459013962987974675180018860207614318947150876358330014789811620905924233430887165655564132282929715918585891036284058970014032219989097787752917452105107130763779452479486350634060287933306891024051756312695629198493268628794841040422073137183505788578209982570221971329405701033988591190219889414509351959117010708088520341495625137971533941519598105347495597605862606266657024865523034288999073852285233716017502740304791967454663588600949463802070593866059977141946535237680502215852344546759584391888879304743884058084308218727724472847533315859099589017100299765202227498391460432953094497327431084158997897186128995919255893033443217811760514670122982664383790776332345068344095675604768022201621518972702102792184281599130282605521236137266989932294032112445971544325635891791822072779469369721307642799232100106037470399295791617518939180048042300254085515736962168599285370117865488770686371798668559498376145367262085721172878137862615684904273556628084567190011344869691199388958307370612011310383941481364921792413397041446934647796017802328854829181761101038613575577833774993271642718087012050990346550548988523371743628827452529804531889193155872239512581085974389591481826770847243170661971913845928984338650779784898532314505525233880666246223422062579588748283811167652725616836617882679522622755673811926850279055016474030949551960132901844669042287179571435413541029880630341345092054871350446776925486381216349557768739144096443353922068133712997684498101005928451000888199113959428959942393373549904987211557862202420870497970908279165877318049767222973704792208298486992529319729399552341215720093631636615623618460002441589363058188347199598071304437266703368391280759537867861307973482190504997753602226520768153532089777182275283334299496316431864311857449454552430954063910076886246197484452402540598770000837117089142233748809721212059507883406846549200073430241381519744073941945137766936919684715967041635713021976357709760064420674555672232310284897091793265543878711846768968213520205265430422315184470103646202313492009892364272286773203267514050869761916414094899393198247712766646245781237473319731664360494914040602104657411178435049079576448948240938259037518243959234064500963760795587126504134466052228167244311030409332239297473818040467302483701589885207709583262627704872923809879731965709867512244002293500741288918114567005575868120664297629166400797377147055926640898691298771037665526438678548000376764220881125969285699796378410214502173385875096776017053974613778797745425936611731372044266874324798749324968908741914827088311036352602757118742513473124513425521784253988530336513127261011185091939185507256342946736680382093361853022824617387361549770248983708770874709300073138899989146117318592479327145352061531145295220498892826458461731647403662558824824000574651151716564394604223514605668980990208964940404074475299839588069465814769189739963507329657373304422329492130375244439369459023872551096250071846254235482979118065614065497236152225803347846896516073965369675309109044387294445093949298659136186594885148104384781563219735006031122872039551057587763799916502811527179585346362755434474086135718470654191617361070938360162312362080588261876616840979226578743168449079492772376582982596795256760734682973961261467137544846841451294448090493762301390455548839509805723260643868004930348554851346248992161370092182633162271940751209122539802396972603816016520074439694985779660914645722659140050016002436074326138568265676240186682440441800488277839281228768820165075792417694847625120751334574145964232087174979669596691542784309536472585303981702671895946774552943897460894038132683973205601553160826132778282171649910605473681245643586734066912444440280641035078158372648646634718257919309403543631706946315576142183325127857619720842408453493063424755791013405464272028351084237034951710909693221065276447503036488889545201876169880736958410272167497412415093272888443529075489698922667335758987780924683743249398396694283308298213396140481829330362449161272709262843375122225844467714934040042734333141461239343976713264256300896552588551544093663229761375678177994403262769719562136142364468491810336806218232826990163205605471022110919529867490801265829637631659674750802887493001445168694154659228372591373802752863912717365600277575802125953950757942047470690640381031499424268265032791031836024086342307544183410086284570669457380410792461059088458597427322955831540270455924186681414612654728147583223639303541513938910641806356955583350154570563928742020156881466217295920268843500319541466967070352715754017659827836849737361885043603107158261654083662158731736537334196519972942363088634609262628386230979599893330754354318825296173878195357725857218490595397443146722027413683545377574339868755461337127336294908505296442113240411760255010515838909322274205931239135723710838882496735107446747706926385295772422353616071783067532689485646992898498272001389075406478185111353613351974253586223572554608307544537962210950319330692189387310709832233394035210954189353992318647825547709650611018989152097023256803096414058516420536854342276466510736372073262218871662364262857455683804232635114616650648082000449128980620864390797827461835966854447325754846861690160413915380949466677860517996920286170589512440957306948862575311254096937162031698067249997594469421790932511758317387587166102615149606552413415847345643630703706437564149979257303573681557228122177000564655924698566748521135168896513050966263513241401376569676108696850797261756913504616158713958867834094550285098486831643796615266897613164386232037630001056869036031689279103306018397017293027386504841915638069650353320428116153486596876660818775630185498449353364244515226937712000560783971439062344642306298115111756151809391772768693059827645036770044268175267178359750169222060173213161231508606707295442698135734788709980864460331939378048217222236860018246341582712864426295257653006604055250992633984735404580574058492393023267910067486052620996312026830753664281338074209341196881638357314052218934661283369303921239984587562939172104130564635784650587884300784566090053554335601123001535581053319641339492274482081921184941731233158605171020433697845428861866070876279907420704004810319953427715609400730058350958607493903645793335468584600576957430595992010549462497207048457187863401353961960925335215350470710946487116175539008822604724628846177428597255981804991448666490678004341843261606844801391773182143711048378555823701538764416531685939549625749539275089976596857886873662318573876806584403149570847173233985737979580606625829929386089027859544703608804789735981529263317926590942428787081955155017764319334690686127507727980515946948475405254203697267238992536765622197419403375610645341029377997480906643092676488041462654044392082148536342201835257684996863824137228398955657883494702826578417358485681279484405354497876164355093850853694474971498799368171501030646765477253053850889586858858980585848633990931858199620052536053526166806174974418643228471845874113066023947072897464027803823314353369223600437348836050801423531262826603270558051097436462745643963043302677217775744318326026177020932549009865346709345418917513957849147682282417321844837333340091948881449579443386052831836354746916604225120045118345832974444815956256973923766358258744953762683396274176613545687172387244710208552823416317701252383683867868052836983172481249236498735796662084691181795611539900929007595750456801036306304098087647585096655221527755296360927591044141584959495403499437382584046058184676863460474318200954121851399063578384687843273337261804200357549843971257053927852226830177559063683370878473025580033534730603418427929517791697914503992170560134413570841514005890621952821274691314297059847658278667223101928660016568197307476480547120509089319523714389738300263022438321059630760843659216956862905325898939366204687333216690521869177084525734278179191537805736406123124769462604161243429914148908322981420677220549347339104443237824824551648697549078625773566699483672568117414039975256246479936343708278529643839601197930425366706553230585910383616656437754642412313647154784541245321315591967386096989753428431375502645277140177124033590772328916228432912529260199805142936539881831508902037257761270020129069366372833194640660702113938241713774465450274820177976831993742170003655083343634943199646262504141459904785492937821035948059271669249131058780010580432981532388280599164274165184100582059597357678961927326188485911506524112167829479527666538573456556534508216393847074608823765024528432872139371718829027750096021182414568887016338787926417961639053191900072381893657456935286492868801090607162946445821383012114203038720367159218152175956480890590607221245371197478531866783345189274566834597076182726664830409979099034660563422913633769379010495736660345727940627711680246343503463811486639466288354567634724671028320303440464100439551432453014584263127177572338381136293310944604892586384909075216528358554449055647510505590590638433197003738030332470432882350932265298702862658693638177599418327560417271707005787193154480404270638703087382787514572205348307430231812194884712308919955418635823447368736200045107180467966652490710196520145271188233756829452848253540085365760742041761758869550027351756190423374114173056832827561151123134306021961029615012081093815238410577385869927578438182260378747048079104515728407450802778541016850570506726557707388147037976573888484542250340391709781038899629194167572046725599619830553364732603673709060282205743581996392326287610258890558149654800925820484400091049251556444952720997032539315887533220877455830476824418576117938169582239283192406703866613477941964196663653458136609137430025138628673773807333004263091648472826327533860260812868170179502424235642719857269997807187453313770380473906031468560933364428807884121785861389665653706074386240265521704326355738273013788850793480072424899792467684224276123916816097373862347410370114743592058474870499558297778103441146524809106909389489544327374933882133627766295402171544648489543268219906542331345960147618326549002169023105219574169162254527537730792760876963416656174591418138312498145537835732607490430305908394737779990337496543854565173370261238342471859590045973847436668296011290705649230770943170481575290540123870578704430159216809601518239279188053092665922191376415700182741285238702770437682820387800260499021239061686959107825771380181696747014548666531697039597223711111327772923505719740019597357335501188703313964390323305255293026763456456980305499570341819290538607617058917534051144407449104091764779181968919818316449550200713034393532156085699238681038495772411715542176412823239332433240996332606831863596884208200576322904629538967108395551798844640436671128777894351086959927917393285443698166116346826690114091234018355967590647630146114358491679558698310391492575935024152120974433491019263942591326438221515290649417076863274685101874727669712471010414563352528470368086294822095980181665732611956442972413328988574311392752363493280153817724701229546835506631384484678032848644688148862998871913894686687371907196403534689345141855025476626941257064118657729991005508588557060904495501618115286912441617735491953503424185752705700533699148140582143557478550804499796408411625930423223219965117170175217613778088812746942872746755448266271102583173343674259557892603708033939179213041872424088788329872455452265944610133128002749783011093372352760242360894953058281250266451912772456235543000393249687069950358179585126341499663152826274419528462775637173557549928027282516321271121154099916461744553857882904976133573242651532126920095582384256836691218176706725365826967588909977991329309486936447128903918435079041738586637324484301706976032507385098170314328864836355547427135463292736849799526192494865179204557221467697611063166354005072709384763583160495626172987771149575551528279680385230163186676296212998325588631963503284849409112493285810369723528776375129582691358163178090107430351223954041855098065047580457558023248023746579420357449831410282813848099433985604232976661772654550311258779089840867487320225346558245677790707695600273423922491978354913100384068318219665220863967812474578393218924774500041136862264438061861920636697155057474798033961792293326552016580250862457548712313770230360177531523640493797915168697108245422280520249553248511285953998216046295896985243784733467743021456663184874896518630529271358855423167247663454321651024676903953030758228943663279944199421744744407954229240333173037250713531657712096036208601771857338891643850762624384924577751169723150369127684883046412611866891963035762437324801982204204116336537084804007209708026700500047474998746850380491856779162393170199499435789925745010181233109815024100568376083306516366505040885779954172984910832915349166194868931438135343847187902784617329773206447721348589541638010122166253859334928909134820737647135987072501225784582399596475504234481203926900113426417464421279350353024880562860956300386953226077000203999539282019493584106830577617100733449011883686012382017963688904552339216129483172857467773311746905633717341522354113118937063763360765611983991004116095383846915574359940140010354039906050646179116428031666405493712907958663228580612430567762849533697618741910441312054451989013712548396947936038058206743958613518516693336244448581377055007308346303307680777315949779961167819444659220762451058994993271074176543081608103689492305052561962847379639759212730763105639112985399685627083576307245464427564642200865320249885336392367737567250711932749114599042848113212996522352983888213227603004980526864063886945613744726011246162918920231864515000197392041812071744363094749112422431722208162773004218613290693011265376563763831618119102258641471224456148014654957096130635742335732049170507893347044634040024047275687179592715451022431229116297304335837718151785142637396892915075671533657466815742355641597462359055247742974290236371374952624919618993768551470623171150675032799552468822912483164511473404929335506127658763163463688953785144194586405525458110221614042992065868065469137613855226231519097353270064170370102882147415833703316837068486092030436194826060238872072163234142472475633794416202767026148548871082463072272034837599741582936040184603570523955774590041561666607257284075227901977293904300407160181372783864282616739190503479867858186284940950048875355425020152760348708784409062904938303728365988067482731433773932266361604838748645556707033811329848736626329429227166303934851312942894057453384012027281526650880556211340315976656672910322189975798378079288431812873878038241642122024906404852380780447015686208758337125574545146721447056078675628970249799214744359005670064001207412741010987126010051223994826306408061222336136944840498358909284832628905878335186961158211279335893838233329645577192510555669932986380172847664748185790097047830538136822347366366278242790348825687571032530892969738664846618200627699860455724191004283625726537155510157177165251803493388325064575734182334366051494460231545822324648527321619002457059713495276587245966991549032262378804960381947600833684193353861774490062407517233828270774075877335475074695621583700998983261737334967764227200010662612834278812973884868589389982465315727363252539510267888932558122673630762245434414992126789449881036255954806602853155489720995011296343176312362737009394981695742779526634866152063073027776778287451569873874215107511057159351997645061740291100716067726314700779754055724003418705818696640343133401687143536567492651980740358451035150585339734788868876292983304883831740705357286657506320155542659361500302679012497630738980158443061570374194372121135452964926676575417269794328337667495299434612887508936734531769080688127113723703636876869887564482403916013239273229832501638838536012907045153065932911243451436499345007516979878070982336190602862207140883582639279001933110886365758437478716615450950326258753307751562626300380303594587578020922813360355204443797718177230172313530118356720920933383920882019092557790241780242991589749136067744423131774987020269920969457284801769196959617880941928560685336632088299380000164008663537962864904227351732551338104555040189322468203267104437387503892844128859998958835196726834224125578755310544871357198400277034269451695500953174677847593861806157289180654729848613819959630051903374220752489541829077688556967362456192236418322933577003788234184336003020298110331512041428696154800518946535912318274170471611735025681767130495109160681541911343116389466132840967400212487036449514869290994083371069085538596441329189944061522737004507672736188663460742518462665405683905446857633011022026148401307753060425173842308573208007710209279642743076654817344949594355141584111692492936420966171475753016398441235448966666197131103894921217379854510596630586675102107323200807276770702834513334662111031626131413229375051018998273641350562215527347185838027853683665433763879003187225143840465065514614468750527493168066956808371805595240564977545625195261103837856767320027115327744146332908000428512513790205862622907715754530271467631917472619747391852624886442399726850536109394160176690405476762308460873455542209042499727863951260590402445381805602587260430307373366716380474001970769010566932819148662207191530020838847382395503937316410817300504971859852830843444564303299437716291100390231423535137032176636578285291912414708229743583852743713520698656536237638975601388282521720699178468599006010440553751779797940735027904919503503854048933524006037424226413975980413694676502732516585064559699197712806365257149667929954763265835299343827490787857059769471262703743112595608993972918536699451981697066103613613553229309807818125423455574969647987549691514904831806467576815346190728679776230467986514764144116965551596535542061701041755459970098417341979727570022813611323503205415359904739334418292488499642053130484454357220969081381903773492475616832347241561325626977268638594383209546277566792785757905447894538578268735121541473915898969982042421632677736440716325432507853394626983542320164646620745538094523128250222946619282363837956520594531199888273875221485293105289638556197990166903249289257186052002737672699874756386517470139962571634255316868204125546677363076521988012836971362342116818690545072077719706987323811276729365141186557702968815576738775924010376965335291762610942111018997572616897886656448876520273210481326528960612920832671348309324252547460331727004809923065215847295974518466599005105231957327800488372914742050297657614511819571591825180399683531978342058266737747624723723975329763611313379449576721441535512438713043854964991428701717858087479000492020114418514753954543194321656133708215538351561854035248594725916455660993958150397662641288438040716488876045830792175283785732886410624193428506599797151001773119496322414064270915499157855249822333392690207094996761396596746264602519887775756164818696178702441314873933045069672049903128832164370028070023848984847266809136658735091870146967516956032342791119281302427581648919159875705437862784982121469086117445632416923999574437723073311123048822192023905386492951904278305558743852364723033253687397251243428360662198297510205424144290887218026796319633869508524287726236189188168201521823584955878613614585811990374628198153913261345355179978099724186028463598421405363120415239129436938093757883660137113820378883331600386061128917873438017728916799122416090495525356756918862471198268901048845545912174780736686920167635798171885181284735320930061622653422607966193454139837420706013504548485146223221970552012492773159140599011849222219638819914414251300702608564805568364349675029419270126665468767064734533797665227197443166049273447792767194660410201816250309368447186662182939352217569899753639413152208759701793377320164684673168651626323740362024562911026553094551396772904212295895737391745280087634327441433071752487984612979967500460718991331611948355541407105351813466059188664479005707963430974960543922787925455396738589152775777565573650899053690899122639949526599722031631693898634649026754737995546590865638978053307842257893305345437328842507073500321862319373676125006833473111305501955986448564478483608190128938622538543723280900430094104474214284497731641675576362466514934970897163671620168193770471163104516719174098312417347598871327234984201882345549580141380684634450266974520878198436737913029375995014584980193386015772260174435701298658218621518560079634683828232806392107198274281545667337964447896762718865137060646592686221909821831711397968659377220952919803455134419321220913250016407504872126683219914017668519640576417234176149751750035990074287052408965150739728735178386625562117470406797669201208695623158127994548534891406122202243203786566193367917429702128133840872048258224271796761915975976665749690365840339114210119991714902831364271058264104548744762003127448255129010565495209259697975769400046306316427894145794247476745322025128510196178141405859212231806683887050768663883648806549681273062352985267189105843637100067384873084851625727541266782877787706398441168219271082358122704197608189799471861013973366120238037070486132084961035402768213441970613708633912852116311395420073647711053562048599516865341226458963907918134072079948337025027037377353950478933074647222367339930557652189890462181722040904743560550826741302693046814027430480302507962126522833455592796019681799773055343536617363193633487338774695620025139778404665263556012900411992929623505507045280906869496155809709802693336415292442504823791986979617865464276141502771163334561798762792191545813085715274067427706187812819255655696688288960169213279158845564387737053134067596480680736962247788372860397547551230519247519382893718596543517930039468688637009987646717891939006852906507775002645998976752982393706094262278803650450626225465821120329678266896239028981675111256614400009298214769956193602006625304801333965400893786063917720566590330250207555160989603249663427006267896328649870606626984435713944033099515029978570364586269637079372856405389061644748013942010564459300612374111584399991964047940240922037788049189085149822867558949854809833797594323043187675831087515346062393730960111455131986072903227166417087043838969741087628280249483454510471895711520112081004844501088631840824715067808702844317389036152932248041894629693886520230795115547539660125777966288317004115661111337721221154005914274163942796413141037696994640554576490351781659802672013880169800617825201079180400880590996461696800440173052947965490909801956606067637613066851662533331917519060909802662812986097845403599220216068192431538268073267631584878792717976632485043947774238756812131559335530128356464005866425642945185412208522851077169715938244338728295805266994336809671927624408890010484135209215400350166942279683375393037593315696827486343522499506707762182218612822230410606704334280478755203902858800602431058351693949814898955876383545148991527811137570561138843180503691926165175328676565076781095874137288888886666651057341413758920361908354019883880385577025445897863795709084524453255139027802250245899823019275147982515459793659572345159710960033779321117331395978578828302729865789410163508579410945996687231136340278730896985465750271944725141846326596106059942059823715901382869827964181600299435830271183998982354066647823986629753265931251068388231287661177831739692200227257278313712407540929454209162377876912841197211763553389198756247061038369090937243638479024807066634234231966377257745553431483060204163751084336261492135578581477628899979563622230495808503890669936322611612814389679565951696403472144324547902312452522151911268605287160360584081745690654785721612721566835219181875247616161884095036564527420199188181191005527084623417107818379017435522192912583498611943210585935472155378641268099855528785500624230240250481892317963550680306104861514996585555067546998900829856354090701675707902666482358528858616089114950950027850777795516806615540568880943325602456834835650721441586771506078417147600474299969722396250489092710827980565402562750035182460460119444956941866543273650250936671534149446608699591111033189723240171242684769119274054135488467496071184240047216501822129806578128709282786956404321717010787545096470227630410218055979038617603073159267601052383741153358690002340539025314705834906448355984889513986130451782293141731735716624663231631525644819406588506793104883863345650294927762565996128693969772971096602984202280492340868246796607199772947636347702894747925558917943362390738183202317195187240774710739392111066005831085536190016186288436866292822127522952090173658109291299174312902330682511585389144260453244226779187185858782282060426800865228495326823036085906481994789037811656839794688647064407396943891355932532309231190697324292316037540985112932596722164730680004406236972023391818430013292416168118795271269082103937670682678072245849912287149054173331078712003665553843329477355230962261589994090414582548878302132901769730755958516097395076725160453632600610704073365109671714319202040317256476976240779613548986327693419913105680111269910961689972215845542519070414387380763578250278042721639055829824966016752573357490650425766764186470236849966135719859493031519900758994965900699620465246542033255409783335220454768095052643871279448435313662709017753634139042308862246438765625379077199550280090762813713188643773673405410030037018901490786055241538914389039129445254421507166713665631173727862826195540172490178903065796188671536884083509157820676602708636958891737686257176192794174298806457889931120739001253215832156412072364397571982259228804960893330893679360349401637926566341113272960018091373567717987515269891075898053296854581117534787163072257188961209973652376874229001712036687646391943362545823061339172921768711525874790422014671398545827507826262812483553061283646765060736600431251015028910827134628911455945339883556179975957745837951494992860102449528522733589834664863763443056348440172962730590742400829555138597037258697289732962047340332721282593704545818714109663926522165706152765820884914001457669928134443268064590777685752672211722036724120782643400558907233950241162329937017454235496471451704411050566574452169331653678142423105645290772416713532461714303258623266961936821556028740857922263842065857965377018931888138678438344155123403090020050843155792873354933405711602773392684488721938761697707952512365691025258373917673271073855056894452725916462392680743015881373166725236722226668249527382672531525328579373931279982128861466283053884248451802813628212587482749040038237945158326057048764543596667058968442049596152325830720595299596410023156572648932889162922411391651706643387307570458836223829917377225850347781856762615323316209208976266238725429435048436663752097694601689625812474439801105575268754480473742144036228332282070006306396265751488190161713620406976696200032969872878058667934080693367665191345513405554373166191000471055298737828464055913818434663346058486224351348452855243104101673596296182879745957082151650816686569665931350675708495284862898389195077366984630799950752626859064815491039296719728825587905623619346154086265450458906698117565482562978714493782770066317093896815360679645109326455050702880056176151192467134266193890772188198443761156227423075928711522702646702667283903593550715565003128213240652198107688937827986880934896449305131551668189070670943268529655676682136655676321353939734000403462377108427070845210010915332966123514052585885918043750642172992534067672445360146848536957398348151508747084726488294012862115511914193045216123698139841834763044884100338411136042535067584466775178137566422956320903789258467724461160720615812287867004477712075109512339568114183352197376472380454214239229435344037956046775464817542073349967290810959657609778462225970144470012412483429794429049884816309580106734953923716350333154856877376770857181627831521408318774633198568429643609041780197409764850634101506216560219700680523989235950464565173485758445581495413517550862815359220713094591745371074966922129026119577380157462884347861689514194928518363935554369733669083103377238685062068188595191654363932441135691265613197167601908950189086045595045131485266501154559106555141556007259752800217742356938772000880072485281026869463324539834524868983893688013307046808384257738747068015626994857443525835002711451350438369171779779671475446278091145500192995339965752177712140056043702525915447500635933861476746881071376234929942249255845914596543077124303349866126808474001582336207947173709738941834586094202984112404317114233756970695521411051736866426239955715419449998501597069857437456536625140019806345044128436294656365913596086306931295650208618832145812994682667288424892786037482748128610425524201180385455018468534397666107271662093893698690044436496922082099683366053158044257542869242030771159604187402833960842097433983399326718964292491155434459185742340404398793654731984924940517912118201059881765997919675864164714213185331545222728391008588341708096987089990921914455274883099562192792708094144682572760445943577963767498161788127427203369757063941725402970469352495565691116657483600170316433370506422914048834601847157083505252915716712788563803766513734091315830475900093882101016296153512119053411271533033127230307608171461800590894017389721006536494869321481728177198140913751884678097426255913150303117398919529066094757638826668934862611581383265891211949470622597505152774742171864249328921034443391420489781146844742470993777365688166672465191314268841215687405376186964307512692651767988273469010598762133662061378932452053588553868724808523727416561988779741278417109442615824016662220101899041041622308378630443627985050306525135179402150483107634926740803928120183692027254006836894046926590232232024932662668482979603999443669668090396567471902973779682987111103378545109016834012288866290880934574544148108640911319739715072868154820680174627239576125435391296004118574395178249202374553899277734628579278524155475158438856337765679568456422354479515517729694847979449797457517937710412481741615192675357920877841280305267388540196970832757409834763307570016954380509904528663804102710335189936475969137181633109245115656424708925390402038956587969088894007338394967178789168741045284995043871074729938575163800028159377732727349743859437929719732464325068649681460566725146096442485977357596823358592189361639099389417458169679674126142485298611177665703462617971463334771210212935827545041673713078976196271961098077971631127493669936083769293627834916842794652449567726597061671449830262660331881655150820085840199792328428549209903749938789023393305627906339281378052353493729961162645320292787804679570090798200602997514846427924649068379965731406455984998559759434574702072558962903834373728859789541621116326172343726285349381189432063578034648501153890129989305071257450800515748658700293136692936601832943168798828485716494938855446460151962251195945297204993235951162459299029352084779303816867265602453197402326810029012889266447468259602268734433433657727185944547980786738293774027965439503484692066107973634010578374259936165291077715839524814984084727071693679693714933970632786026258140985619639391813879540798257769684044572495006824123713177904972496377726494282795054666028920798611855838313375187878341274823061306951256390142507067827361134548932636701914312045238188591021454118154926085230091821396266781842781941357117272491957309342074180745708505286788152352104502468014893741948656447205815564416416040404376194585882621512776863489592885795625674530216827687015905884511193945081999435889283169672932049618868084518357210696605988050962363803406877661342471697982255496606117346379603747714428687045145999930244044674460124183982775564809008228520970501337288138712145019192679200354402031902840320260577420323185183415316487120974516980140098020345630431647457553004788019917617331382776423895545718449145866354625828792551040859492991814568927039388917389704123252503073514862758972884260334203857370752809089862944725089308983010661910483171411929342042717778388753017745024747035610682336730936987848694865119790851736781809034845725451444575793951676359471251857511938787015699945620351994960003517775848036706518864411261308940599563158329058763941015147634108391033481411120967907185873316009724820096159646798113531199859522430922781922943245757053801417319403126206011037502973550697811948858417812742550413087625897834727673728602208380909284707637111671178204685893521907267728437569350374623370009514606224009278869798467487158380210124409244151734030322242436112568080071170450735217898283914875630201321760125119900754060153791101844440613057170991564227849891841931362393554335940122951895404291796686694652684221694900762008882375900362635462633146950605438349719819404915521217864267009558948832341666853652910713744176415677245583990597759626115317602052305152632061554798428246311169623294259604236926570607757422807543745062399961159557409134997792393165443090715211745533645414202543547233576271759245809406221718580770865108137443242392351067203580078662204561392005712473096598837500752946486721751407920153036321068897353368918928794869472286483064343581831594952642992727070761073816610307165662708800374968795737564173967607095029056875956221575902305057763423264170173561252525989739541597962298138173762296770006419655331149140136121543912374306753282944600900730408259697975436575531088497048066931400050461891024883663747934628830079081048147704180372416906150999988145822992866576215000481980121829548598656172473836559021479763162576153913732782536282779663388822277128399491929550277163790906602186355041066098837654281513188571910255709192719102896567460928562536690372370941307150414139679166289074427663960312958899366716215567596797041294250769821182862200450302716588237143670033004982939871835474897323148033375740391555061259811539826792928090435323587974911685847665388750779787262652288349846504430788843438280472896424667893658773627932333025684620099266441045820680599885569588872533533842451229476838427450561781982097082566840322346225595678588740045968989246448417588923354031250355615512710751677212418224628607006758005379203325468673611070576894347747940247740978814937695537924708069971946597866246546427241774531724400893120909966458925527775064640213991364261737197286591703775573249592510501792708667276471822272640403647564450907927859247137974440066724424009542667222690743811547545975315110628321205441200531569151787945153831609440449424470879881851092379926488881718700068381058120973096879640343505413040455903861346265001798200383594569270009613833789585321065582742515055347769191109997064518418940489969486384772483981451979408808196719053819219184828500034028294283139291267937406070339125167689021436202903922217127304860907495644913252230950219403129424740284620583360766097189983863111447331983328989145629774307502698650999655819791527540527932389581090489700333227439398911417717903106166515876453965090598102960809119532870351136704560436057390096438013495422404477986269440595979461587013600615933106208328505549391996080203434178576193423837327347616118106559588541505844766290809171753706510861565611394307215020912912453029427608966450064171749312772412701715693252737401281744217355441343237226939034290902405901697895564201544771419949577936034931611417251630978656868763835035992933112253520617752556798520949692787450654166166917745484725555702931128598547553070680366744452226381041967369927225414232274879693635436847082858453449569863672391603641482047001452335817141367336535151003702325414322519849506087856341456128741920944294388077990167516996139713495945950549130218858150571878498736790816952127640521658342197054005362243297638619589518512305862718812343093971942169549139486612330888820077491671927345038609880605797638372178162285329066945491572615701207513973165414774813937130608973714454080314762232913502057756407006341016096946103601568618539919185821496727373458825326267130690084779166858793845961368487993211497108919669609803760984038956165758960634140194130302209332892629936662086562936153543538158330830290405470923042188729442826295421279650871275613857270225926498025614879369437374370639105198321838815055824530846916055010575032215408210337374314488643311880322783661093701705294538841948156521173711096085370253256523770071988753362590796357799925825374075589412721569523224155779564593018701524957353752349190646815642389635490099225675878027694252083396019765360018046442641915655879779969383019144081715094572820207548081447335689495155349046157760280482969827737313710682268281422651018973550962791679535184733576779528643174571557451164420115402723567346112427238342043422598327728378534631117076195321348288156098216520087504217747507556157757961020100490444935699325370125011783017563029163029608459670113385751735446477673402889431490812691810868682956119681231673811995477729213716170504313839760731616702500417292009934385161644288703169827847105149132579491995928961171215515243551060014267015230804300963476894212359431201627293350998015084422372472802966780679387787142238687934509770385643196989275713856936430501908821763048830572961740393684258290954412260268558130369109903759651829588600605188584947058927189102137369392253104648708895355775326810182840910469537171143988056143541908250950264312533576494596988218022630834141379985993298670174261724903143162972230122115671165425496466947378526620166307565437838784979085340408402609927309117256559792388355044471771648985533982142793451778987655076418760767871543514195019325610261100451084609983914802482166497881991572241375043550241017268766965016077682824967071508163206282503913906347473290583717939593131820510142359321737724563509632240604002709816930606662488998617690385749452867070681803407994282375758487769418430304521039321957535951774745546029458625244632736198583656375989168546186128854027886905712253817645717541460471598421312606950823955924933500466337793876175705880644908208315438923690387300003673022899994331304271751704929632430602939959453365036310106615642686502314790844652536339898293323637128730409119194438054443211773870429696871623625270346158081370760833392963436447704500063199611198896200117445804135259953523289950392288525327789851579447432263731901500371499994220518119111046836578758887126763413806294759541709589643511339525297727782206403801278323252687623405373608431050416951691195773346644984281936222225462715595466460551355189430728924481185394425220409492731541219199440007272291429858145488630150196582868754344888412598557390539966128785128626529580942882798724830454593552241256837642000853644242699323981284272670809711767681877916439340469269261562611611020545485448189754929229988406166770945610524749260529577987422232941332716243023764580571667745197337247816798372914919942177323327846095330458936005758172561476902097300590708337944228013635489928930952265049347469287875634323212847973200209646611547016789522425182619455957219792645372990423733044511701658084794101938373768984333218524165654604414225715988891875807736405379010848279527112413546060522136665666431850123953457422545952716186201863359021392683853219186000424226572395548405021396755123126571079816517021331145124584914479118531222064226967403407779243581420428148470281921070533801622395393327482679846575465512394946893750073153043892821055555401738815449179311294874227750944849430824250387744555198757819681583805038468915368045461660130853942210255622845212341452622158672138790610949732641201398032433383990493510685633088512906632378381524614839616818562589857704473126844060427220862675176968816988788881300952556154063475232310136682143058907431139299326646599618255829791194750551739610051982816912976654231906160018753819528008798160960314855232113625034186746767247528329592351628203331875353387901070648685515712185777374699690053235579470895274441471942433947467017192435396345323042575127945096200184523019872288117033197137401757476454087493062217922436622972874832447596857140591086085366862360516266185553142320912821170174976838312026763163952206399603350165897637722583676523013265577337681251026881302978923545497436957173405780702522561385101239847085875132422399508703701879053032123097513328530090516497150253877194164938970519148440032371150846262761704868495354709391747437680157699373454869850272089780668032732467006974027637842232871158268190045988799502451597883707408209639297317448263063130354829564595573216792305439773123506809756088482738063699452064070176607049667553835499767095645130255862732478403598716338418253853400141057310961358661028468976122332057159634789128458531272293089775733556987632337887963535109402507439647951678806992151117011339099582248601872279902722658005041675816794807500974674333688732616135525319151723789890721853939964241432654129881416876394062184019295696998913997006171799722912647340866254633609585092277931531377143685118378612644917909933512319845198740413352149030965689605661026062626021669008309544238896688023555400353013632153190811588640238428711737159468035833626721036857537566000848605869784037797329095973393018794485884532969120762374591239380519268078689432942317074680181786477311682283077250701072108642654205809996680804203578748450164125245142013797915081014891160926484485018258366727605801775749327694423785774421283470053286013130657161863328718328176768690661642821804582141155769099151510739021075177108276968485806829847077169653235880306354265373929972839060936742250651298432377218288045841887984705324721226714149344190385873177544812875584875459442120946457602828769706522405700631585470567667399292225837941940233270497988085902438271878295956204125601688919868892006231303346267787734803477146205569919846531765437111222184997509941844517970297994446501225307649368860324043444763643013668046244129239360819427413427693667448726790662312519601855836510494562211931062244007339290183106066278914802095982638146384877121391579980745365354090374155633043380981102531578279100845117346327460399432434636004555888609669735981124574928175170314438931317235519493846116195326696587069879207642126568380679147748494486731622658853801655385262468306966596932159322306209458660370011604667824101702425396984923223564349733810457793881673157391250284363575952707670930664703653017788759219599095330342841935786658241646346174085281106216665953301203864157138771207118800493674542408650117074197924398443781189355159125286722513307020708263122834540845644050833501441618885506395056414073163743750343343791925253381364090625786785222016619164646218330896646710906639505639829989814986929053639722412682002384645081731330798049664268471211292588647702821877403872509753862237387025578969189509350451853710397917000111611755244486574324532918093138378810632255352996667158171455681870000034953350988063951254320277882170771609612617204533004979815283689244486495814255542769468529153588885633579393801114458073977796197939567810161681481068687583279260882225776843195356436385999563506524625452140584006523312272131988051890125762129139489601791300386977704753905334546108454474849624852963524870109056944556215954019172873600355577226868052297357934081756286645755215362776609164266998972051337418254308474682988351956320733974384212014855564896966871071078927176345881061613575615778889490053656554145176087351953992619575971004627834795346428044672661614848674978795551139222641850188036137641526000498538606146753491961301702326069878541627264774078518452384955706905831618840969617128445599634745295249545636137005417635742995881331138722527367901892385046239249928831125163630254874470869864200177290864171268829708451378290150364223167470147287983814053958039831146349743118784403599107362722030720620043265453059599395737061818596542442192258874758007344359319634096219830011028098668834318624975427685855500793639959186187464902181918903917456497384666161621957746093477984344257606889257606769139583492951037169826164531836870960269976418387871171528474161083684897719175030839372938155422217596630533949934474102063700211073736947157482773888861034225760373270745681664214815751175113174288939576976474883124390288388806292033011531662298797685651556626531712177926363985886632637350367327620845210720095828356044955480349260046733127705710096848971062155485957994215686054537495329912763308087929462832554902296258569727840893778554582807450359984049253855324603578644023987354545518888120419367430761897271004588493536848139050986984654404286583246224294241312268960242369378440700255052699241756653313756130330926380515736567450003816678245128938911710941253609686197873288596893101114896326934511903322324051256656153243576690667354142907313078469871447874150180289246527194763158182371266353451449059654540273633068760654618775026539059001367702727722992508310930108785283828978658934516564231477681156296921374637971781416461940253235300789912188513030257890008292382834851033044476244284838462181052877453006788300637489252401353967735565018179885981869242885103512108025763815095262392757822786013328482540851666114089894105449582902794291244482454169880370583499238718006647233923949297700693076279753482550004696083202974237119581488776469754399629164852885957938242653992367208316360065281167440571312774569939085549254247113919766252945456366206639319227139780406692463070760081976925177927953782562469763809793485532601993328125110244788852341086479876627548057821298114298958164173549943035800213923430406751384853838217788003599262808519578778439417682449695028437516703403680724862954033689637661856784470185067346624114259667555198723026393497179560236268728769283247849335262837956776011950105434956367072707914122794614738373177324022923434721909082538578473354968174747110650282576741433605799611669694074488090702698176273231267588972630284062197414845415216547737971939135712388705606678653243163174642611544489305965631826699439325523544507094137692193553861034825602036694587732198410632619691462441957842476174711050996925228101400182439767049478113296080681841140058603564932182386996786732273556343989860248363065457566882288547274774430449083533372248831774440419244914082663053595656940719372241292726445667835217755082925316053876381481695603364505135238362011201470613441598087947704456604759575156131016666734467383950817043094044131797735272785805413525045214977896589736979069004551003787192612163753799903970278067720799414412270251226267581799810513661590314546617971267150898364853829004299403062499061418381082379411092917036305189118673223518375996760031609954259301732737139525986439929847321576785283525813027604028532223841591330896629152792032696152959973734940443309361031048870990391993034523585617838154151044883018712519219977518590330683493168225967053058335267308181106221845199732875137114018471209804444414262377736802095581750946725839995771521842226881148477942716353114007927801842000002346507830988931488957729868256476677875112666265818455500374898199184602310651636030867955753240436130883618006460854280927993796013024568313066401272479827596213759199552670425237999826392382134663778487310320935085666337557536750536919242554985547626240681826310807599457024277042146070489796403714306243354714587488279405249629589291830682755824926011112006383278059579044311321266745880802991602539185086840675540881962925520531993755402315207929822308687682044264101198611211628826532426728039196717131496910527806400049439286052527411878566684056426144961134297940793344292912702275808669639128325691205769978650244518617073059913184336253933927054212996810628794927361591315911499391193875005274849183194681287832103677611038755917797322536052353931861591602473079823469075278592513842248973837816469851716300284936972141947943434028411586568976740500921325558706900737666456552619878137498467670432807010189008792646129002713782307951774449835561426904231096241351183552066670408996800427775169504065130209200481655684265031743562512542300959802489590056449289763240593278149536238567879363822861067325009616081620237434556176506637614200666471085334501209070755315184973786875075810752510874372689266252487275001204350730675717810647140917016828982872737757606762868654025061125739419648799876775744533590703088757598162945392772001243131285862626056566190799158681783756755689566765691558787241015886470563151528771162391644704111399908837009325047010431166853195456862976866194415422477934968433018474628402072761875666196060155432762583188908588396484965773980523227440552057415474431972719366156286210382895471129742342913315539781649855014743033840359107621103786360980998221011395801216800383221734391086885506216131781438855905586187442454012167207133364897638964993237464627728870789442157028386455831331671473858921965306570212527417119250010777479109806177184720232949703519931069216943676883475300557409473324748159158944437072328965064595871790126470204230298690204486304932269381211050894716007899925193968011972977382908035683170814432433041071111542538042353576195818762270629970113000448466034692846618185714023901164922953110119807826921505222468320366765282113671238191974016882027193390046125274974597545387200077481516654963900836802391337603214615796150058515845085820812961014053415335073638680704059729089908857047405921891823000079940386677675046809132894207024108443482101267074823208291588222431434145490683571339300212416997736623840562375879772964447301018525650338240658829184062570174465377699107829868060995049660351215025690999348456821135668067327730809783545207089603459015800262216358142175191876646555468999506322439245927603974767829290474404071542674629627542315798389861011122696562026434224971055075697586749320564468719128000371879464633176698690180340809190894511400941721016916300495005060637620632692489983152868490855509776966638021894634333932255338141527404116712847022336484725360557253672735468120049213891334542340976101203642042375224985190993758729529211323353328277702207691453301590430398089575457742268820004620616581693685142611403318261732645410567765704578888214788893844959374772503316570493197421043151071656289767259600326885024820953239226077187631623869268846711397964683413772382523997250524693771973065032508460725954950789163793623414154044546070044535252538253516900316556337150115585849990335557844017154070636832411184578576756319517142230046974151890846492276820496020533318703990550418878305683690319044477850643969564816875822008820010510811899547400734098535355473756057099875073464723731441113327977278681954292066760661725335993588475684002729318052032880017151553282866406312579015836728455998104298112968524029306095423128336726191699263380303599438812397330271900159266527828719366046048403891232744442087557985815210207246302697397060656551204412966965250706113825367135212872733631730169506087743308176092680379441684153932422302499452533079075566342980657913695806195631163908815517612853873565584503198180342718149360222889695410202767422662146477516143668746034453206081744992799543323628981199935149472196642714979757178810965851920439786199371222583316109202867863136130644642040424727288468823485547595254690579426708571324956947969888423775569440887474946301102997678525481839991411778885395216539898890635745651494441364244936761945667364517911571719314738370694922574909879835269406758126472113733043540770232838259492653170576196465847171224322648203730633951702192822407894098880169660817478903589921613467806044559908342529094785435664171971311702019653767802381031597217220167783522784731769953546126511448096285017826868761911971256862885173607280494924040991436271985148838822005431194507820170263929048838577773286391831530251931493604422294008132561997404969562898031229038684033398905556521067287063295112848217186635842358747303922684664584226762078804919251286967409424406693617915012408029881596818267682106134349148800337477138764599423820583731968934510079858005141051399022911092713729521635336114306636324656046072936699838981076316108638723539090957420251604195024984825211605726492242362896217288795727778196008006386564021188709571285932431617601460170900687410175330806836228217261448230597070151003001049573667179989575490966062427041142744902748322319109544285855772693370037631873372614044092984815304108559576890205411138323800662441500857857376498254532884572028387189646989372802796341424231267056709546975015720655753965885835318037051287741686252400020037590716604380712251230362588425840167507700853646154147909948129536482130303353197434453902155886648654649297749242222989659759821131472267131362963620372373049611616912016286896872059470731281626077738166121667919230619815350343224916137668212807956809599155539767975429752908210746567744517742510347608413212175202242058659941825968136624485979286958615237681033329654670811056148959083285534919217120305494342655207979568355659243866458489338838286688566466895218756097476453405357422874774795391177449506386866494131965174452471458414343296413664282170894365868211626169368496199613093042006198759619907845764093496261343941201154762134218140626772497814410424046746234621448654590917676220539500290138799761207150325911584023498220135952435508050813796631970663507763807641692249856814247168577134168865299964746714521346362699871126276543914153100109412124602367604001194950849962940590315678387504961482146266851006302289680852770566419278733802695300337660427760902479565651212337580781875659876887888257194297945552912461797538338924644942242709029383014416825088135472871259569156398965915521996779187492392395284255224027870364797197733593270733980231232764087513364572300217439965526161880869505324786547968746839616328664296542826856349984056214749583619858718699507634881414338492301727031242395131963624613144673782532759311293293374744424464994440865068882159796722534460641421100016768874246203590827767153633030551111999425716436473966320159087681050772217138990672036438935105856925074157758195646585676904358717322454929156427310221555692647857779814588767815293411777533767900658929850732557425490140516868737719689288548523425571542459106263110734721115469780975921015978192668963270681036733006361505681019256431033700950032650599777314427129195548669799388159582706955307057128135755734999550390971042474797239676724611450038807189971891394440209611744345574844601162758815734827079737806990291193557715277802972811750452506540912375503433841336558858354149246756040960175699995726788377080610391844100451839624471101045780505607155761081602357699586299332621052999153919051275275671878312462908164666994146939527634511273289996187302237469533936541097309989955198955099472339659352520468218143315987549382106840528316348310426744036690621201979694573575644671655338469753633335128894943636690633143253984437127042783405347862995405997777226883440820523616542593637865396269427101406104898668648039732530910163732116791990405538175464201259446764074150721594315631628147142160944561453486148032433648041494262624947211071055345360186493157793248323766977827123779472834046787893438218686962092446652612068873739401408984030716343780845313740181225650073203951296015761737645251591324149472094081506504383525840317161625439019099102538668875045252293613546130005729240931769158976232455707342937350745059909844874491162617566357943621711721080011712529719386722653549788976072219224829847660523434497150747062412871923064068373950397667209510557149241847052111356270078286783614632096871060585528279305425449119880861736770021171508399405227479661058880627434041919829336734146243464887558008245622371978829334266610900808720892312222150321775921751308477143194868933627643602003184514654184071589208879221560745389009335873787842888747069142893445869609846622127501953013657690330543238241618319723961472159171429727691357598050850519546104327692268166379455535132355475361464236119931538920461273575587679479855289456326514489666597280449955337274849349850756655827250358573634910236825645188248673382072885522837242189422938326891624919817649839250819246110199719434188232695569328562373073537785677933068930392824066269164883679558866114580220760790609208439668387218941030290776111511856986322547485708487231797075199548045693987852854073041443236140780751358963272861942092113504935966156856589715446116915028179420439519744493424124687799742236632124244811301729761310178460313942418408344322821945302214507853913311132434182492791275246121991826728548591827650669868353673081116993756028708339620965251189873338663272507887780382792169555049686242266385636259771129482412113259734702025798873844737500522847036791086965581457951176492414030789576218220925017624018577667716072366871387349446581718223486436418965521680541844301944621043439236250385022379939712603450734500860760879406135266207396880398400580634863303567771705541593312419082112431712928548396952977619904333378302208664621984806485766008023010508106294561605798781656398030807568713087766534696745171298716616771203365863190526961105395762190166229970848815160661625095887241263671640395588475105354939576178593252614792478663826260892399211408654477509121450699399855512243860365516371051101488912459538356460662922570033609566940832648902005497202877821668848620471860274041115924435793845770979739870522614665723765879318401986759410115198769675995735997615614660666506613626171511327242526683217509739937564407803242607595380278422882817269509345381203776825343808300008514268652647836237519987716066498761024389084867450976254930793127822750052338729496019933187141636987336928506672031914743582304967600206541516436765670378292014376005504918725683938740354457159148325514969837384709804629595291726190184122713352087747454557724774330670267124687687308176741095648434732665681506424373353119241641507770081740076589399679629296029669902408779742141197347481923324819275384508492278062640095949567361524247804900336243969203792419875021944228502178527931945879176324435428206576293813045991794683909884872424609256552707258221250288939738557959370047067354250718645875793363637655038531227525385820721798223449941214260830392053748414230824049247130109934596453497884072982325449187808855327525107951475908860939772795489920267990607912938069462016884904069254723180882163209168015302655286437524518984428856665769139560420331610919790512541788222122236287356993527460219853297441778174925680475428459361553835716530608552465123245576632545678724239160458956549050657709354317680028182852934920779831841625473711678973862553127574998088625342161479371652824349006996127176034156529545970408131197663919077438447604696797289394100752628807371877607562298447785525009663896802336951600632887528315613152421610987843228615297876127017057302710340065093642857698640486380862493119753277169211984819284341136830183780319289081679080254056296992244058797109924245443311388448065142498308231349827233075375625219733753963944594320137484307637054450582308590653852135391943398766859795666181761629949300508212845405192104824307948893977517124397919073937446207059063620011182918423851568639059400833121290423572048999753434175680494455459913037890824070030050253499132643369655939331120826168742958799721496836906413899146668530170426249850651737601670672877772875545663479944202235969015731812266036228090925446833178127372332750129238137911645271148249684377418170882284474462548840132660663523174838274932301039167596468038716820706339461107944122373673930932230296921124776068023803640322341847154799079793683017388978612805143703169248070691489721534171522346273596278912970039226379302030966447097381346026912596108281052885358577778248126048031894030667294242014115112171734648474009384172076047092679839367988429162030502645644426825321145716816084438218430930914423606117450060815747049210607153279839153663418638960777579125500838145254760813712903221070167620936692899001046324618326223711144349744779205567244297042826011678113882095367178334250500018420756105953866225558282906187090336802828994484944223203877659479062394914008820359765522492661682564159760565077730837719112849185058852499754009279443904480380833257090052589272213061026675687167252348834295513276163261733763891797464145897370653917386574398884535838697315012824157184451596940937475642362806399953079132162916127347532531958794651795808140728778124249500092828494046693161352183911794552974093296551433035181239417817885423773821425245062139434579857668993058505953700999312059704451512325640417547252865144843531748116582173764834216836295693919051699256884401938841047384203855954649362189592595091270014466259223025571566432780073339823245823471401191330956618347787921456511386723732317764926517325196133494662670421874778981199166581501883552812460433375545991632066310917355940662396342720189671861962815608589659059620477394058015900839345389906399852600941348742115243539003661849241726707403421465572942445280389763329069362709330253273760834753185138540167632212351096895626117378355364948133747226268322533005174212331357157232331431560122970488777719554911069319615895413258931096623957244366106150985927737785008235036846634452150998652355616077415763293030988627426667357580047538948533786531635752728776475157293558328811578238183283703557638592504263064348182063600330922726072783588270716502483631800494885898669288610222293978430819231083387335362832507612169671100791432688274264610930843576526903754322302234221145337082646480124329641152075571898227982730558909583335324760465536518970872096726869665517043674770488658480006416405256957580579253535385029714994341329126620297545557453081850451520021179068932193210444247494522660093147582120407221038193209999283274591504086221788223836539783231447980516510000574116563247038758070934402024203314654661247368658668657254288925348019156188062675016877783763526992587210256020345147146744777665513387717949162560690004654651501702858499279888114301344219821727934784667883140677235426273598622755117708976034840928352307978716600586752138285015217736271979730423641636877131537315406094262413940579775346941379224223566153118723239793077351063961888387812811674176737720769463709339320026351489636498704449710519791703989167801460924410749077807963522389041654907618975388768663738812764805823865165249915728334627627220860371074227880494954783265621912517542496531264838888928222854993838835624180667430401047815625173471504526745201648964094322022067577371022943745197420233563207798509106066738029649611103581550015486420312904704371332280133208668474318586110094071653312244544103419119733629259718367402451839465901995310649865783696584552815413406877688711230747669975465430060546319458678765045421678917469960405057542952712375584645211956702609474678652084961921392730411503827616882352026850623085674899299015073493114531072905926003487854642492892083698974796668063132246364446673031612548576031789086115363490945102716046620362903700003390862793738070472409395036531668511795819548957769625915418437807473414296726191794145413084992971680653752750455022841443403710203107617476030049415846047536789325389108811009941836022523585244187166137814870230716529492142340240496777967051395033357893834525725730533722015103087949800604334586624886814156231135819003362545731542879568852946109990857317150518780269889874159216899486220725378519195673480989301619943159072736390036555818597304674496338101972033339701377866703328244438983107341632158220488187659897675079174556220567576944068206927905958164215432589417773304671329786041892286638807035642548227088094620518058059781883916423892859841748180874496506726056491810125438082231432041089053501535362512494601560587006999950240107137229080310735309415685270569437770609424819024067833467833676787181741726740005333963860584133297093507568509516268761362619789651409626045646608619244071526728659440513847931403652623907910075030244347373023210362401197783587650470604722860136995480546775722050667134323227141331779575509875143315287896868961277531154135984214272680614062518313028077893012129734525867654745579099705110248762103838222077507715107661642035385630864307865479676507415488891511803982755229978673103516374898452846804022696283374982106141744553107987862399382651964569995212644450009421950654612301961579143343710052018197119892132056205130595949884864236928588107640635641264211158781610960678924557798548223599443649331078347612593140526648400702851791949609596065509629385900840785620337430390406851104335812926118630237439738092359619287556314628467693542583117031598987431841060895958339480460265883041663007097288743229512031652158546877294632948181884280812786463813648976834243211349383811410580377926720645400058583458323056854421356480282394241817942384751211255961285881092511770851726926731245816577292126004189048150158045211798430318679166151312497816132749881455326085129532932585030839549134149914873192985643937592509860953382776992134194812908663413565297665666724962578883327955377557687166830590384888157013642648210675551596635048441554221477879182992447101622589483689804775901177080840734600993328593244287863588499590267969477321028866362834620415527479456019078171787603858620100295925204185984562022777013105311185079459518666200328153098113790624678916382439295962558606659443024339401981595721500489277116960036714764877364890259968786559572896207126720671184167832366859345557292346909389516553631580122592823855251576631481375300003858328526973285164121486562678184552749004998232074707407595391506120183625077569759032931007555774019906441026682025580383627652379777460694599616296968817372540568145057110039713249994845302502465466257616988168341769305969752215194842622655488923760296568784122692638880031520679086029215452418020457833695440406125617070969116643213592437161869430540823779778515803684668037862974381699061303543269392549148482387477377129279380126147181554685054458215777727369519949189833725398843302297772806149470747632042712317858391579141888028424190043125029038423584360091956555946929706417335383706533683523578347524954329435940621540707840614378636672646658765940117619655747870351589400602318421272684107130250795160050166572209419402567144889379830061513798587986325901028349687773438014523408366504812818219329928913675869722249947353732254018026411913526383312050507885784308770946984553199798288532684518005398945436707334142988637579205348139831803985018080228282510119266233989285633663631970293704627842979939890177579024436774864747144531435753868729962019220670179711105198552967705723947118031468305582563550920020594925830855979459288417287044067813847125442033580309482670840691587468658168380862557796318690429990444238446109202836083459843698867783462392634631808440159672523392773208641251120319069539539971560554606315594381071926014717131309519514845496580878186929311048836888482929413525000058489736419619334637575485431141494986667590512683989901179053981579808501459608315435437443319458613032680689808231307743083497193922752563828541378918226834836444363394963204817788190272488407989926503348602665954069638382171760433944814483888710994475403333248541734865883847154624292208782240719939151116343275893496048965081032916204680661592098078584623059030000386602961043706080440821051414469633387765381792337848916345469084396988388483076264900677659945163646414303394198927923423425061595977377546455198137782196709400127351466612870813056735612239988262801836270788209212905857649605134972941969073663994235135558230062107397227742675460628537299374662653273916368903176136060299545050124168927492318442817778609428263533599894433635951044116851397463111776091827272834108804826705571126839418792165882339800672851493360291447592483547427287622363090875807461984847668602942482399805004716976509702321521838035973970060536746447986585815707002036885246813936668372004201685582752706124013903781414530114724979247644797058934068873767948470827619207841784369865830834907064269727749028155196979018954587082809485608825476233199023507254944986439881597778086021041087114090848595191901045321347966018945342069999009479807983358385604873616129388062589581194696579183637747137683111236754151140701057916067222344918447998877576843169253137862341313352693672014814781290235221493473668917035499616405224067372012987519229386630728316584885117705468192799722285392877271626358715905010858539093850512469630592082510685091615510905381092949228246251050617566740787362201895930686279520627221766683322905272720744423401522383286713370790411708096141229775125757046655997723783502430423488209984254515659658241678804315444760535390219098409924622777215586295821312013045071359151634485887567033638771694623824797741790720364597659195486844457510713571915016344707031611178049756987592476597488799738514986315150582219675745798733059131425753079965115286703574834988988119733352955438387208268581371969595335724305090138593542205197988288680276122571226822761764367150912960781108018544785224643375524761434180252831386447358180983935097837895275910872928186901707637724482535064566410333398747733100565841008609627811739341475759522027588301257183548711168862301224788511730156223972619604489230873541553853954284599802474150622414062948674800092199877075824142889468710858614131049021147939398616373125682444318789256801737977422082013095584736164866229676337988818108122699737698244252607390512033437708984641547327747265865039033998136733812888731290216776247807063699654086687937078895504052620145714609420503171695917986371528161564841656872614952610866060101110192366182456222790158565296346714912773782937362111598235804696000162170568350511506251111954915672441083357919071111164574311112958114647897677790043868331769961349875661555196281629866206133462838161458428858229122817908054470890386019674594885311863026966167875372150928601084489941872959326965307514033026162677874032157449006968537233908593443310677205647282127756575324275408313975428694890793571235311483521785956954367248333290228616946208192933690529030255355218299264482457569731206366879012782595219860340936124586275582784259872228558919063922043668428837247295970417336797326762605885612221018865158666108691139587987930061069271014185448185355199354354003488194214426740163858728598879172154415417288541444374924584638550609409911925384794197203028828162300242725954880152863830161408810103298366191986805089988113039965443869572103929057150286315075822822060722311529468683487430471508795485662708946144517242587436445770770724723648784673628385120731202196880812287649198406175303532843208000762570465069666605034418043596847654309253039849480304308283877714460695925440584835632740025600926811492634275444566878034062876903487843084000506276167835926062023117094372371430783751107131680137825128560327810729333332837839074665127077713442439226937121684509921920971095230139607325390054068518857343845571930647856503741104172466568632942310687969659231063050227845896761705389807414271118310212473244669270588662442169470434577705754474813327271573216290226110083956794776974402725429144403082761950318426761530730810430322841083574019799763008731695856384434371192513514235155920471934363650952383964836422456323622292240339721857257040621923345911498165327346560526450678526396652350600047381298778120170231015417950422474622486772162893465524202003971645334710471334779485905599312688061527752288564493324701936267472552541403379925008180507296803174412107756023182216476589481125375406619565554739915509732657535613364403735103112714715480309089563409409158885352899807378480067464932086964374593873614137831780133450111878514615188322012822584326417816957885291326919997556397217946834504109852154863272839347743850025979244070578714059364767278418602109541995030940537356502451807965151685357875161436300897541842447816914859444384233603915415875528200929045037142202870685301256319765153334823799504843048374657898548454437336917605198695008640411919323139911744374723217949020352153187944416014938083635756187030096466694777830532521777627891439634667924902186517039969136912996732543053493153987322892109172881213263707144125363155304578872394784322514260108027758798606578283281786819307903596026380585399376678321238046366189696985358057654119278258057833872522278406090197530565110183087225301124583478634914546518366706315118571437521466736328016609592917221293738099738672393866404548560707040722913697005623474991263872156742751912550775619137067554642031346361878228297708492948872760252969036029595623073114996824472270703822554275984413951554022222896849759230964817460771567347909299594352957715038846597672530429491678725682289425369233924828968951583629796335634565789302461439396198212503668575775607714293275858965535587977927124221021943768958016968672311174176179347041546093218803738413456844707819141021390484205959025015641607757930231021262952009355661906894637015284992287227418806962385141794631583682769223099956685723895040863104276045427083287612945726810502647232982445100613019007143071439142877390063792840966607984507529025042095696828245191186680242255988733483456261088649193435027555015105907547919620407910698250431802273351917437077262045196358425028681912231801714500864317188087033526560393092050261046297812104830566609397247526471531847540971432136501674425935173858576606261241262628981038423665111707674992190634818134744648242332717534512095686019972854920784735429855521707383869600763260474076417683834760323883587224143642658469790718133729514177211150738826001062282218389781126357111864102039546420898941410842280685677110800989637320581829657444246403594433298360033244415005610331780041900786291665213797006486807249045842697948986808973894131991475303374752911128379725032821480612629113050339594161873454923546028931925682726227212743610856114928653750821969744017636573465637034317611784403927219205744614107620464564245291294207429379873132892865044728359720881980320287206374653685890471562971025651458937700849084045006092274858188918732373388859047464035825079527805346095247969560006331577628141708362420766891294282866412980423330890471803565089070745998119618083887253569902785079129259226103134652820950386023023454558366301191417670886799595591318724488846359240654520560042989732218623966748438045866274338233367524662334862930940244605055432330117685985975824241331636793050873105728414232264455008794966415458947457506146515931797999293367327477249157212601795374861777074389164935717455402226067425945395878487731428487144963605168552908748571467060147189814334195778704363504063455999338327693812073399831317893851549794513600439971891513781902716923998415685073610006061641428890343670149115739147486468411802316891727918809200146500879188890370023902835219953900840226935450050864418066466940431497291647490373024307365908036016131388451652601965647724856181085152472460533030421434420094538493369606573141105537927163207468033884351615757064606955937560868868770814470940597639503686832165370601667871548014554186957286227301552680262929616141289601172526864442767450550281462606032541159487310874263988608452297415291418671646693626329170587610221681196057319947445531077381075249542176933633038600204108998198409156077097947892770375160633681119506273220974144707217099934775653295471364216306417490455335030400357451233951861558921239214706194108193176217486734013591454955918704779524926467854097413988933954474796886653614270460039687369551905960976846156240860325997036727299241103828267349697908993442102491695269524172461522477075267012059613287940253911391072405879717844793886650279805687449325833865018962617529416626428766096269931463548417715923564186231252471383690066972519029524645030799343777623833202689874508219514462606031557220226122400316307924369191384457252942120822521479678941385582791563740101362871479204793927223643460801847708636573440576710886430821517022297369846117031627083034888782082780505354298720101747728511009873897633317037903110613753181147630449411328523655808034202621002152254375480175524726274006712240043359650063612344750327110388946075351118972601320909921599404413760680506967197205254634793316142080992217870773224317030356086612985532852561550998015869600394414552087873464868551492792850193327680895182329486628023674002282542784039805430650038769488986246225362186320056505069127096499683701742005848803187663600995591049242419389124235294909237237605174651737417707518450770545270701127552229129148772656569744221015102353250246782899415856590781641440255202696439935640204209758441097801386062890835089424078588311863527826983167524377231715804498717505943907816402033845629020676571639991212921928274644473792660888787219093884476221433106021001425460662008211116333518093748786905248136164412470662123643396026408104316746355631877457608210003441990942935516829081855721363420327028806271557876605509778268583355569478334172013307774839010862929223675813170840658916494628443666900865313084779785534850853386957584241933391721582169053113164232537787235119020015981293425857554562077745940067189083269668378191580233133644280871538154423791988153072556634308676722471865033424230013328895765774179132760835526142653351633688440011100537350353386749174579027651774320063908454447033325675330431000036094666239324506999885509646448066416626438993984768458793774767146839953676766005844192048849944602455689850653153945325906523654652513435295354980079528043475873539709115873609143057830684324809680475670665788571443718991380498874043870594882966092755667293830073057952920207818750738119397312440836499046003377781944532548711795634088543223288991208141778498209740471512964303094902072379905538765903736962391480471432244990136568615343219647453689974168277194157259595362611440472914032971859144270756778981113096252818072880832210274969024637958989537051052840285474201305574788033391940479136732668263475074023640031152261335235561084329783390762623606740866750171574725862925109925620102221796018057293828537780511917100019105820065194242718904185773578990350517819088874228266707284203963536457238547820496706314472851498164073649604857303852077132127167904696144365230425849870978185576205459279523048483693351547480399664049259000279352859030909608780566122764112940060294131751574177135218225334806913112445530390983331466853739341755300243505516678754535595943915982957032845103493505090567563764725068958408551593050500359251544361378996313973052163093801344280793023473967789633232891415806111966341482869312959450902545718801464742631484833149762190364301398276764026261136599105904836177569765342834654393985024659944985195771658910254461433577099133961690850881102802773911203981085003475780717784226774249439254945817437701145546654062966552264787744488956859574097096783256925987279353553176439123001025764646860919805526859933473943194011811241295381571104536835089844758143753772244078885360889001197513088187850101147204572892357898697163487691977381221899012756311938570505755000615719957341242195945838922036567863661193680342868926772959241595687696651783735481255285665271219146934033840840144335962749136846903180746134065570181279201444296455302151642443342046890076636574924760162306910139933228173210207354345907733385704623384124682356078319218845411046533555360881744054730924289666594700766241944873615646715703962439740725956412263323677272319388118842528484579500560178016986549454788031700437751191321968804183553206064175269929779187588260143785084591716581079817086950012126955470613637198328689698533406125618344363136836775568038461332827659245090106399170029232564426445683606813200517096194158226856332009529417890489391135871435479932982868305907138317695891358612868570532278785882787633999067734562965132979682796280145408437927157742062992896111021422378268329774290217487037967008635652928789980206714047312559880944067936418168541284196570163028924075777469651058136432138287529689889073647815899735822355212437652783190931109417262262251877077083544897511590818586334199880600061552933083928337270539264351125814352694657553854381598032032891749731418408014904008505635231887532500656680141956046917053013280154798783906665167015366234580155637219629296755041730281858338353735273437529490404867871837635432865788057289476217163035627889457567885131051631268269772723992408772429692174095897177314591920298722882063897136936930947426994179116151016748997342351644960460548123624266217500664647861734817292538112504691532268212437192326367144881186170533194125425597206527039709488806052359363265720544753708656393161892286637491410661362949440402970034507597408394107890097737481992337212071655908149913653035824243169372723895197036233855483745910533507474397218178482669105957067568364632047101609092888145458125719022469138702170315600612094321108321476558346797805250735828984872891835798279094779128692427539451858016740757568265411295003051725011136472888861504245286181242786324534787847027294462705849119960182661170865272922458925328257426158340279621822937697744341319046956470489906916035457198207527368415278770445072678532960165273638566394014314024918172627344481238844814375782300920903110753644516041040611056052825620854215206473605668923532758687465499198636420290067275458954075924091734384185092934349993853684915188147216728204199756086772867855794655360098242161908531610943033185530528993697231574420579153243419241426666429484985538196252097110974875968072955763689106162238669100128068465756629759710722519245362470101987791796983783209021026221672155905732547070172213605316393735100887928650639650715659467472850413972736520350182761800974116052430876776804908658888360095775046030687499107853949754304620136268270475863776693242187344199553216514804383815140193291193580524897473677944619739529111094289441360617776117528582950674504329836691051847041435560019129286356527912124416769470707888714394838710424519390442244683117758714969862424481388782032140130656348900583885734890866568762979069944609947977946835980587084942298493884926312064599976451344856403800764320757733392480804601390698105236773420576661963928181137101689564071700690512549503499186808835919909506085881798453478334423417246093811570485511521439550374713913121783722927385581679026318327397019270755111027805181628853211767710084606210802014566989444785444250408433753992830646559069003490255950384198512132640995018824830316286094468546989328637949260626631739573801891924916301321249795787390409022909061503657809536175381449015770700668623939537016811778441314874592266344166400841778333311675972439869432424961881835898881040245761281084045936787901553141337150937586361593180995423884320467365755123499957492496395755518175736937843256520908449940589568224622656509084837839440289053668042538484328463478341299369521125771979754115814181803110042035407527294532918080032818272985097160370718910528358886656525512933578100851158784114456218982914955107264027961126080528231977397477377611772591582291347311584735609944095852116981516242513404323591319017237971469714518786830669220335016547314212365312842404773636476139986971823429231491576401577978429916066677563592860207882011940657034202835457083953721135809715179907511764431943925912087362477354829534723619688489868887430011835213076340877809584652220778191988833194910283695058998932443409598337765060492270110036562342414288846343935397604576276731171894826126038826311239717113880674299520404610492803766514681578377690096263814260701269768607072697484349549300873455725293479178503822271903046101801434284578694473302842202962713859580550282383079447969153002460459787807271333165367959924083874286574031714049219418685513035990405058193659270255143673298958525400774325949916293409220703819301470867967492971981103319576234362233095195019412645869894065857957957708624456713334419847837290757856925825674544070687484435138841210119539141604807055388290376239665219047623965510797035411083367127352925657082779262426314142431420874615638747080371157801986209971270320617195540400755865817107947959699221886724168210071597206149878331671946872842446972532402974536129594468730335896283251268594311002926809450374840681789812338104633987981982154230806757908690151010437833095275570943727892544779318572824859045689274230219856892759198550518872789650679288125313387803657616260084738977757272116346526910722083821093961171706447770998591565999661293656310917431272898469245104058806784939963785915779798478166179794302321629855690081146852286460127150235839593677309166235128131174166881634364561750325509385516819166354756607425766713868645747838811658065668504430674295470752483841514126350632729557240696775461941200026182616963483797576184050459501162767051930204675193332627142849611222487364187722991231992839370411135936301252129130511354496943074666073242842855899361284417426190225911288817643065579359813380656238523009585347901638931070885960516492863466816386761775207789181983832564459605473771378024275092640822155348671445335150343466410929273330051054848437287925074490710226747955564752780802301615434300401511930676256748112003714044464260564689949545867114490918953791977650155235062170532130943301559468958400110707161386127146140915312090552934863549367106113611381004706046667985582538343713231844319889727756494041391297949302520559354448839709902506970324494610801804576820103901255252465629065608698300065442938174778225966308601181502127288857151436783020654755131324901587676007438658973311771596591079452843125359981839886515781211325098191484553855108141587808463775099126172312934847374311442688255744560666065715904648968618192793423100513338521767544100001606209025949604749310530395669831097264878569420007213679731011791232677250666271916680705168112318711659687226901981949167586123633351510939018436498044450071616146101698762003474458542498925259295994878762547209128757081551458434865450384237657829568758514775745666028617107817344255719557966977667767880832570956789978356687216942527109447199418552160823224900731634949314271312912351257887416142939581085737292006200458616550425761250484153162093311758160190567698414189898345207863173831496945719918971644434569116961515117509878441193500543521189949957330040856659453381135340752800901722837378735119105299295839436928884847615551904546287890307914016826040907823558909906303614589295948209730310241052589369411508079830016038515834910415872761190318583364921745772156414812437327888016287894764825382203475519855836052714587901134548113474418056673224877678356145175943395335143131414657931738970898501779210007565394761795867740919600927037414986549910042532488542828089133164382432823479491659387099473459519493021119277973695684583771558559808414390428317939486565976613803879393389524333247033716490167534240295093631079410967695915158469026433305301221539634762915897179197842674365946462688556514119048835016760458173059268453598966880172120437620318310548723841761201165599418770949052168126718135826811439223388423364658400692095684161708210553462600569477786885083549317144771671304749245265817732977637631942536255640488149916154335639750274104963515555991147307522169593701698986304859027858783861177640815378785035754854253412323795455797348808354717415892974948264669014033026203968124108494668488292853166259492109215647251321625093726516305624858247679809494169630553920241766926379817809827572954595353357249431468519657845180008154960059515020367958193630440287393007771900016840088285242406010738263595963395164098840611841984540763844920856914513867530546629905273829663836091794457725480372030741271289809415822038254221191289255354253345525334437243532798957522896475192386637385016061749406163242221402659639561331842637378689032234447582038073702211583989082765534565798063623699022341720806523689688227298929094684588912718679091641421126956401935140945543485611321045673424221102623559887728851275204768705618745410399076824689814148814196665369795918426577272996588362577247831239168929791707567190865135189575831681727760212026331682747599456040550714533708272707789840915363714443220429438637165679985080581808783484513533205945198226441094938512198175102035878959921328296681041592867552634753781231526832573930916796118576572260060568723125381748330145396311739630127396617441359694137070874128083052682218591251621441031383643136437863470033807099082592275620713204694513081935183477074924462993551730246407030633402323459087541778732691512540546763275346081108540686335903732415748773969766638340520371035141753581028199836747318019696879791983462057977719077490098864457514553636244687984240969880067389655737885832200876034654459033073322877777071338010253120515152337511783605410290508893110473254717690647953762475863759278390677968888205533869491639708344887171045375977526061595861768591732547012282571733891560743750083979884711075264318728324211954527161997664794342621086465983644593346713905042905042889344430171981042751856323416246344284447281906884999192286646777240962468604738013519076000102281010567263782284499112720613519126122771677281993519052526629871836547482960042720676407971902665830115811904382060795823746242520183095405767566100964457797504061423319259126210866090290053094077709149258511198413115920155083226669877845752546149237815882625823149424707411212496010599661555059046473749061218941854200337543952820959185458818883578264089706046548937977709059551738803276091594724137373237027010170458890686703893154815156523333944091871067267882759079011826656336371625314627398903068802748360851540147102331778990974577806839444677299538692782166079706226724745795382874361928596862118653197435387901699848515316469637485816544563667011234214383651764330506836305150715786197758885007657459937324652513757466935422990594799422181629325099689403994910117843586594578051016633449150939411266779356910936975372065758410507576334589147898289826333292255667356224118434167183837578530488972072476380331717406981488890510291215213550070617857148837146392354010884723339451129293771349238440737753025419766789283281782015436494604583810428762180876485347680541674207350440637957121429379147075681195327061210644946759940455533527496133925044969922558575671027132391552424608638282980092573295312818827127784614016993213449153604988550650788245950640972576620833509462415970869987540715652848048548232775906303532442764172382025368281728989411472611814317547783688477217543856633281405238667884891230853855102935997078936664871783580893728415677548171952761316187003049718115109200092472797026680087529493751682808383768291137044718829762447485016291426055909696563407076350866090394332694635666165467124294059651249553339146664697243375040569315138504630039464229838455727707092094674015746904246607867245907614281768610544273708089415726987275668938429528751372683331096763215940674035880647510452381057610164545779736531854375186680773758563296578216391463735649431716602598528396134442332521028002305071691373101392096541544478407026886541191056765959911269690050033297087899622425955895440540869062617176320385773410077329791311960973943556359407454325180427465553961462877163054041256008545009174420220486449375328610272502774459030566056192184631563499915319134061900322996861482825971662579920810985404618729256828376446560943688908734296650940702662938243693549411073730321334221744738519557113366286182350193853340364689648901938425070855813104273317893095542786822923309543640646020206237127698874538290694742595123718249562447507408919131923028611882059524677076576962333335550072586881329660721418871214362500686308589485804737351166641754471170616200892707721486659249433225368663427745068453539362506169589866056581680303048000136716977842831733175615154679572827517462600266648831267926156394843875421971223442992515791057587600009489312834200501184436080578788724824413477555309620047808720187535303374409933524972910497881042815170972387777869009684525141749763466601151404191603823399846492793675936724282055108934275408250634285422639016313350785507506235074416663477269535646693713066656964780566521369560079210638465722319734031459410375420999324735976538240008455993091576638277809139677022575030355983318587263680434367496592093076442860377534842899015675029602686629061546393548834847170318329628599128155344344201350824907803121691557681547056509053373846200359407653554974137762683186246775479219002486875269417095776734521647391861827894195403275710793877107968546422421120783340825019911594961188699889126143553319199627452763335978441363003359464177247897618090451182151365447459391784274610408772468025694874902671973497307615732890622431307271574705530289029494393415846976264368101933928575019623119156560236706568127996731929493481580018697885966520939165908853823142693763897428138469244629079122134158825226768313423845617425884651925511118884823089849064858601259727687128799952673080064599289598036533567112254426415756896754199351157629767005695584861179151181381521644086026182347672264902630082003661808259478315192427035560861506607906730445649687241091456069970000641369532852997764579613440550697331019504901346364189327452573378001926950904248817901313100984662659281408992844270314646636965120635859812720559914542026815235685988448676365256065682134203258191702407527068278598675787245360512036435318271947264244770025849533405686261227120154746654325056777447992908947840863693405852017753804499969910155408997747122766235658931636060190829867662007858886076699138721921787086327722296674134867993343268315435046207355444700252987888565231080980630957740992663794217171184787168970925598463310159674445556984637984924362895965542015724468390605455110284047703034905796810753971743088283895043430601247209307692911443634289781924278224927226421365841221155551590673166417263597238033444298318994672495228852493407687490028621438406780801084145175997121782260660455074045059675712397723762704498992832890960873838162872069319046118566601124760810405137394050126201717994812175883056750362121785676000319177745420639552218333076325656444068578730251145110454646131904591831582765798738532662093622041570887931152894069423551290980106989214463685644700411581694857162599297105343255318571277242051568254456082325548286897591670056810756728166895288095340575318448736952127074660997310453472991772476973645406409233979130617441032979871272438421660001204543568420519326898002868889952889332924926618156259187436414811861923767820122270071525034046841167720840040678015704332605446611663116558856561966865048486437520372091569980197839189338562571622167665696724039000313878526526826333260330621296450731596472525469268865262648177123126901231923737606133519297498526169066416956009371303802723355902599799719213154137644037355055489744340793321448512226981525314219427598914926117444055554318241658951819047953521819985248196063827937223589821993678962037307402186756166359752579963301013535996802693147013967193212621091754472585406402582687587769413539466085828692321811953305367507811688086407932185350958126393638168274106559687860637856350199577703726934139220858820551732280255305252993164546307471698934675525441573314181847616905051998577364038141185782172490507020766585144658345891781949191087249919244214918323684405145309920544947894856729584742158408387350649890068780440114418143036211004099261970031584759477555974604767247893898916384128083704517305456161938342539662714596622477807844045332500489277698006202688684013231208856052013453657864957976386412622582781722862375245406169132658626383356345793456647785024561436204746099362941839057182230315221179939876308441283829928167042058640664533439983314035989194304350535147597915268791085366759616336904578310651408323757946724624976997331641064193778948225727838905627255111355725755933155719535062499743853788008113625090689816972018443672404471996734362763370248273563705554607521231218932546398653210072004242839355785367766383328867606653564649525179110109612227281205808421117423846879548329395398318562299360478274418532526268608980011787039823779691263468836561637717594354379395580175704701320537321871478857035532233439444547006365999447568861367982767416820472609193882401607236314126583303995617397767046867102930577487038168856266584938373341498238372611427730586280038050222675871010010004520943522163876846321570094850590313731572600799021527651437147034058119576254001321405498076727968364872940304052518208455896574898663535177117337076051211263791375598521543371135391329672510852242001622959092427908514694144886145055464301372409841659337112517589054918410730751633785215952721294299484552510984116676283438551262162991912981786381760483970299833879967882404627229083041895712531101360120396065237393945829431686803961906294385549718833376261986791105204234305201791273041895662538941498466177476337884705969965423379389074405128915020707493406750090428488581889100016557678676487856967082044010505512079116437603866453395110947095673743466825813363811510374681067768009511795232572618602796664212960027495555004516837156332248365837843879681582072520755259448328394486372066588685775669502622603691807983337835154616329505354213809066943777325921511207410475755555180453796262898844982381304673594380516089208043197779535987779450797280520328687766811454689886911527806513688631365157680053451787192334102655096511828408746767233658822448820269400315476369580491339485640820548550509138766568878789180232793414943865060646187045196557606798620917959623605847053387483037843688460426154902930468334277930745486257284648537552602809895496434532770322084925771914821589553581536770526601073240539936014710589059829288913495045388761006836544661096059016655620504883857155714196765182825398653996022539837666410205589618573935265537205530483694381363534384723035806287694365269561611810635508728809737317764688843225525314867199248303055868009962998122641448317017650916866168030449001030216805820894465367996161622196139697554784428445792157260520887401212423748023317652579012486986324709202069944174702673702975327738268926844473125880324565019691220440584004416039298418181354224850818433185577053285797790434005779112600639852975549479038943934795577302614695944821861921181998158836564543396028844011829289295288860425168473758483361020679488199595831891073017288312767014212659829898689567998976989922004510963873776164576168026276170399123682057930181922465975774550725196215858699934500104488385513704147172682390262619913742572729873466902861583485916377471239969152629620841382262795993998390339745880066040900989122249600790728190595261822592537286548480906986676972346858083826278023791370684998239437394995307261392224682861233111309358057819114586937160846363172229599858135659211389653709280890981972336280842186201093075557493382281732603634377156856777001186712994415744916670957023444286011172193419433405211035010428358073721353350522522450496525413317788027583648183755020871041425681230255484786720944963578962208304206636211534952976893567418012378145348177374170976730946826585446538206507429883102863608780921600902323601138197312071215983452560948880184791616535730574243078589501230189309118990716472428427637341798468150613862333447598323326461525710210438197817188448176029693318635628683683446891601151910034159850818542630227756771565015900142767976379197192845211702835230773755982029651679779771124432034851479772179555431165483777381058927638724455798749366264289394466734902406647436181413193692456663686560904817296460893331803828064819926340735574011659519699603988257534549884552921196098744156429969047148651344474646499255855634206866023986522511716723690801153938134687374319205241546888146260025924849086628074642824855899468333096949812060664081208217177844713476563756839124325795962875824959132553848186298203636268411984338091794459205107856896057208222284583821401869018160682675111344201910299559227301993102537833699809158454256239972600751342243895854110743638916973166065569250707859047158584098232627849722282262587409438797979839260738535619896247276809640557653142521009318285671208131239638414255115470875575728684686877062120413183280789507770612154769336567292893846282213391363371703434598911725112031063989371570677168773034978857121946583266339153788113714312194680085774749102482971252790602497466056436399680656257962229319484729872564776256894550544318929685208344340807661110688106135842490998394259002275108810415697174162239413480832168382722070714583667082342967025653965873439200653440409174818383367325039830497747986179797111729858792274258523156430504801989584330902025030772813338269542068353013244309794107789750246058095608717617808796507938088470438551786129247601896630482215898966704643536045109839826955761642252768004435002440504729083929358349984784805556573717513391456619489467820592296076920984860781446353594115093713591124668540648468667737681196241605187377938532065356750129835201514371111554676690354022616064224561604068292404318540108082792371623678760444841711283096934560463716677245017681951939576703103667917459704743652879204067208730651174373712778320334637109281528403852905057431594518936907228294245082455795574594095028210120656081657584965375550314604461698357011843697110231833716026438267779830256283917230457324980970898299940329943748883141865169381783624419994373032136714686015078578880048006802273337785469495213342786117144686062923543378882355895298757140612010785328857834002714869573787836113413369190515688516226215481721463645782579178775716046478592089547337351382688606458169579053632801099403215425057372884003098888404646163045874494984032467344200440721638416916078924712021182693873786108631910367180825603537321665926256995428591327122105206581110327453422779394107725065959245757294488770156087122339152809884723823962948781487786126895518268274428968799935217631445846759456987679857475300580871967411066383462756032961711692176789445437456777185517695629728666534667317483376954520006918169205959621860847574798543994853296962910533884252784998746766608456669769382788959287058254614448077125899449604109280272596460053779399036631838405073421303979846857145315758573060438208399472386615991654912888223818414423236346010183757420809535178570082301064854500808727945606567707247086988366043064931237234289906556379070202631901607211215401818554157777378366625666079898731562091657684436983620070928118755888940205236990884322400807058823101877958088737955792793942227625590853087406378222177064232064008547093194150244525093102292689973448603634817357270318475548238999903828960707216931081534476278704137954030438711951437182783734379591844372312967106659969742140686171307197795941250310427463200443005575942396116090256882817989399197041555603421770950846532793048533813627763619695406874072076200537958687615412944766702002623728472460626017806846903922075325227249583486685109920871149386828398884142670155262362298193888523818194654086487764434200512438491291790701345093192102813203489215877559095774582036168163194455395655692586663829789010532695908517015729646221417763475114537586965887443186063812917604804032883110773596407239554549226346619670360973271693751299388350334488914974847091486663722788183241625490310265568911924691774324491666702208550582809676835352386966416057209760279736924215569018338697496821009720815173057446159570684347396863624760204730852860640342199599652741071027541506579263072842846981404792560309740297128113326149977564873408192809625583912532207892297489592889716015389847081398989887550828845162761025768429244175537390100406688969755755320614929651798652028195534652486880279891804240944853097130462644360385437068505652366848954811652857852969027713271199329052598523086165032619986772228255868914854239002895496531008389009928447835266569147350021085570121740731231218679190407210900396338495941277260951086668069532333034878084324944481470335440641681680024356731485109034598523877155499341127612163997501430331811575240997942310075546149237694468529895002442168198452118523812685402192249618447060514875847336275843304980472739011629315056114533132585148711790832465761210091497462376477895652293798561329178572633218976901258937160542755877723751119602284948733022938417830410758820790183473230786743693597450933066540324772634057285558621523016998366880681777923100484945780744550940208683019294211491644632481647361086572691944119433365190562879420280499323566099829904709887061146332798204312052514197463409268905472577137816793707054995256617177175211744219600892045498486034420586741085136781192419595430843406175265649026896698391763122050619062152192068364778132470220998692850848946545401676234256050720204151050600452422652046974516640937259829874867294243609011546091424981149893375670153496996141505482221156292756737296165662483240133230007332933416733666560813374581490362411944213639370194276510082607485081976076981852709415967402653274520948349936159107405975434620289995001144045952507390004367692277068444493829488381686692946541517019313595942770937907830085789560859107048732109970301959430282085146617147708411019672031975753602072020961319290014017117727962973840733648412801971836250501321643690552938725388733846444760040764312659734457211146030378553836707743945496989226466244702278796142117805950077097868086499593642860905417640909204074136660182664609828616495885271129877715673441482792679845804505013272889885390785809390203860842695610959206516994111949827711274152502571399991980098489040866413857579978888181802977602520832983159227191729991756663210016554594116367789162059422896415792937866722322325997625238903984559858275638161604080582089702000441405700793658799501027536583903351155871370389907818729775838540255192763106468656283307624094446666648892635361690446225802138454854457024801136162658838767894052404009516417940586048183481990537381808304374005549062379335929918228183839513798758881898271533976305834986043186208946091164857082504531513341165325247694500616905927508033337562668526804678736366924443107725614398254946412061559958752089712887136778575340372230980084337515242303209282453604357526481214176035281740656818060091513987245625578165922999910969072812459132740093230937279076922802723635438519987114873279139551560116455723000688089949988804318198198032729697553037941188578789882810991220107471070638157335154969948793371745360991464984206501837184501027721051050771831978056521827162733285891877005402603840034085797751144246522320000467509933512111890459778686849370047050521682647825437070382246817021507646709109480990679489174678780519886143655475145540580588171756288517318663864975600006122775594000650168865235865923335155725683753626060165726405603961257106526989992862450160788552305685215656498205040628529373061205335388391435141887207963947730569792683456545337191750470625493823619413474159939745672817319751532211038276797640750316470793889974754894636846478370928274989753616147220982247924679755443290371529863872889027603675908231499585022454987175442969128512254951643790417098870021678595443940265816411944295474828587993415496808349059309465424132829338551635780212701329811260451117742438930842941975194211825617822783816305292360876963299108225808570514718874543728193676611816187132318954335504203053924497626243161083774469534710143087745299238026878033733430015336358473265941356545588358777888239282155850101744172905549335875055496314888392509616607000950166433623357336051994550826188255015142583723250313848353514353936579090516228269246351526816533852165406516503545411652030001149549503036047883966788385721633495446808668641013981692987465245989629876371762409876105241945692465643947314196637382446286645903421714580242716022308147429537024934868833968645587458768732439432930561469060521349697506380402050975204167781420954725887773708996440028517655043073388128233923017700962807266386549194929675546311691190951369016613029093336717331796153214125219602215520541214617253587351473920300206417998133880770075005491282422049031297505690358171757363910555592765152982106760889651266812047018422117521326124823658220622389184723165457626125962998616565406925811330206600613701273746976049810108844618967562947903294436879272854790238338318703530954805690913137126849606460824486752379442581676363470088803583350504434311373604732630946752623527240542138877764092553592729344059200563332478805211459555148191654656206350467272460594052470528039229489441749922168256591772702416145878836518729598743239627051932919745082639849139493792067031386025107259863333729478940591943493889297803531125661125745925582820153729424392714850416206953603415137325397312866169215836398625539816753453766457248854186903445567691441583165889750642038237804367104797127648642022554973439227480517993914070079821084993909216051578579696021629074012466435623595182341508272010461603352733303740166030773700817081947033928713200191222136315297627881609284314040166960469020329860472045958821757952851598396991672129445977073355766921803428003069651086404624386691354842974109069136346906594234966509256017130037446732631730046567524664608202320011179651729782809161066979820573208258435742172064934945169913452330803426771215019038407381311596208569730149717812454644306227346116803007770307507147874738293933320252930603725178407942289671269680227663856814131897231989771820322512062882867025625504487025022015142993977176936060179155023037470626984013111127450121313666957464138525831865449436081546031991336587994809144401559797557903504430076091516372110243999723299632862922948013561247035312209769439940602093430237868191367956015072018489073541100814546628640823849504946201524536301447293507724079674468701695177634087918293762876539593637614113528088156866498065950050160640300032819668243333341205654661495440817176631736332694269266765211811411964998807115482471063023189516435543550743325085387101550483094857646964543119387408110845373746993981775964760604394963856294065814079911725056092578464897816491034093407804708265508195315652956674503920493697082639044549959228245157047583748617989471104498898555500264513433825432340531699774331050887308537013076785335677056077340978842773087238516837757732825764477741292211100347953114185280221718484433405847596990313163502011195122411336126083633474960165928293674807499836441393919620506844080166687955095381433819957486650346809669589345376573253363312679704946811934608006254537175121055294244331956467012534257709238932462038598581706792286131176801493634661102050189985244547030070870505719802274402748700330139763280617913263132598418293619763099792264616400882946240803989133586080158532753952006440437831879357933244945704458595502718650223361171577666296298925976458010198506794913279684680516478627264966164726769564102334519897462155345742456759347142197948025978393386972341002814279551607471146274760985623590802233581935975508627162613061448133498864788321401405382985436979998318770824671181456325524088170763905668920767625724165169843168856307788898488017214681443909546211654859382458703380976655602398893397124279638396572754900822024224012567034045125897635510333623140712900693112435218110806542284888285057532441339290043545804976197027609542260658414298079841544296585216162731772639519480019728694983068975915121538075870865813904923706686125812253694220378500040185606102085453930793039974470194685400045905126558118141799438168798238786868933825779376581874660373995651851335700856574484663280337105180227821209924124473721360061013250839734238683499689583377066282827776737138144725658504999646207963430414958012234917081684130367456285955403512635787002855171913703668212649338868735896123774369813436616674561517802778494804233248045768393621116374596374238857555810299692162290512231802611333422959466955950833194641082509550439276906149605371988289362092874240229662824304421590542507609965369456092899307484736639610919570992333630766075032908761236665092081428516229456060503819567914092043734080695267328334603867636185263470520342818678130644178312318256089113688271105383585966811047930466030755231577688133430035718835207479319773951318947017699587814530956775393864023458745526883883307295627797505527879544872593813393737495315560783104801810872932521548907266035804928237172361724971327604493596742222357523923478828580033022093728262597144667788939574690617073520973268745079644754463737998891780749651735962857986566170315634645316792347259119893994162633003220365945048671672315124992878056801747991983553199832583657376180432896920021315145717314770354916491030858653366804722179624926854766130643231474770875551466537996412325126045409709137231588584182426328151228838736872873178610378446431126763373079223848561254285513677845822417830039981463321079102384333229406822568269541675736211836426461831641719514541095696059043810476959802095025739772162608081944353693377433387796615555122791561963517589553136582975688307106928972057062270357403890755690360644496764569953643417010227988110142785920607040729339115553474954900255793309138596957603846936126374872775307003789949243570332585854322053987870373116728458277878929413852379908869448615387914346805906815367199561852496013223403022117627047533973952385058441633987475947900368860581797822353253556669339017336051612586294730473416708487788691117557241955978869956630414464393339603942254650222700428177624153050615357985533589242976456040940836522007270917353154524397471625569016474975828126938004339257839790737850772988214059304540171454750310906947336825185982359871338203850865890998960162747109784085281494032217413569941294447605185425629459407049433195306017169630469182672882891337784775970363829896961426368863410059475030420130890807571136422432709752805551236982595118026639895692006764370178951632753009298390870695743223227584341201791972232731416578823442205935038967669083299148189115224361178642235514037187350522092159474273601217111368105275608374113337989825358906794302842139607663454724319434028618933638104122910709630914237497505964583064980661025220969575694388557220762400528103451179094604542810046700559808391204055989993107788126692005337364659165831214155801918078624600526850431811474188014065039486198581390382720603547182598503849008092292629495748366391530041145291443328983699767270754041646235150052944943098634887532390678614561031818937533313600261075818345725686237367747865875944031489268904942279373166239584088717612840579308202181309229717037424987002428280199535710128277294070129036689458990558249379282815942662639925885760505842474643594427500383912357196611332884578872438506121430572112984792258282174442605010595408835233410158878993445439797380153325598165068730621816961323423242766470302308993885889505209302796446238231685629116364514680773820552805992802825111540285215626891838527035449229211253513408569767582116670822658855131170040787779115620170014731189633720787937767398141488832081776907345630753782411836607164047944210706304007852066415419424074953190062778272999073753375702646430597555449252919163902419185363096284757479024121076059204984494543524772669716244636274545733534586778407374204360769007912573306409833158625008761297137434225754873691792890654385331549720967581729976414888475659865852244108887642079256077921659692540204434030090820984301741033621541330864819663320134107809291765792410095476929598925092276475735149837488675821680002795654970715871464382678302575544101320305854541338555527922032501365585977403630962527998552965968749183030982544880781821143491641498770329286318571446698990112787336515428772156593825944479812646556264634600340976416417457004606126680743070249341929359497277827181623110780805858908561990103760742451891759940008588058863705313415634828148356009953556012288783397993418875610880825033238594464477770728853300106252881064288222600868236256387158490454607743998951265246235331539568204716240818622944978683158193730099412179585613943911222620757071244119476736793375275971357208654468957757708527688778667507652803632499046979745267137707928065179451816592995637254939050073597564820844142648190885358132137365532754873210546932206623237590084358829408328001993942496597799227227894911191988148889390044960447409262481372696991165555964463800069144050185770768816421623571894255930837368579055531065376639013143685892135215773655619364645624027968635976481666731382477986105420724311912829265756763752757507883042270760905636703313759346140011196997977247227760629081915249061581962989033486935767321958463906775849334412729698588904746267859921066039222165883217876889879036634903844995152176437204026542455914503250660039696132874789082062699201751257130383896504464843893386189644578620963534994149579720638903083112627939479969549538893816986272591186517956224821556931413402379867626111818303110543462682278530593325810038796849234438047470662201135914139091241028030617612052478318078574406901517705084211662247841210617117843350968222046222246970339510807164054758631251267003639104111482144545306093572065950229692382219980433870121542189351877297218685850063736318872421664494870582042135779036289583679354137504794749247518355153773588685535428962422436660248197732373728618777577358158305359174377778418352049868435353758062371567164309208761258644425971465856515050192168118818708612485381023553368321099767191065480116301782332643488202941836272137225111103060659659598548885530452019962492076527165154295135171622386992883162213237033387544977112082826000536801540201489212448604180024766542322422114424594046826799801988109733522665194201572102561989903499297397089122204368761198671311596214044620254692211047778035294758617331260765831497595710852189834591344589572020651041117781590303719002736643238222287822615068100899486046811172611626166284915737105347558319267263968167085173312380905389397890965311684549627006369249205102079189038356489087437011600865632130664951897674281994427909450831455552632194202244947286471525406574117323420544488179831067455887272838952703675476199908978005824767998770958761052261341030906435460831024893416921061506119370547876135812345626926503144428328196342902473251181206713899535099380316588031958351690636078659895356782135550364490895474549824664591449311264824641234663868089854550346161425278531824117655716461558874504881092373178850510467617098690971021082248988161416299846390239031246768198054131286305111109439105825928273507393021744197602157842556528967750512293376330398057767090132419423892669757380777126655286642391805238166610692756165261331792076378931534334437763268783744811308598948826060612856541738024687809704692250168276921537510649756674535057665389567900148091635833660137136707184955494463950870816178676083029226042523600343088120191110173094602081656257884854606391764932260527827871735526168609412153961264097075411528921494841055558093402025832947489616664747731605271473552402033353358594753413518732009047698783468916659574721019658237343903449301082153296771810398644822494214562084561074896906160243395170081064439606870958580351862676024556176322958865351451348919014714982977358624104615724692559523695770521316037549993544972722555211051246136272824528049461232146485193501819951869076570228413122593634706152043709408055032983068190573233843087565273156869815247317006014667174738348515832451690488733997451871963410474736934496857265084713988385707615735272789978696092232736297063306651427100434898417916874906632387375938102968348070490521470403874467909601400006695316937356255646486905434190528621092537728816892578519633724384058922183220902750936119290326562696663549541273725929207759979464537419864015138782348847160915243254953686652986405829735782727464901713152651739418723852900020082855664116429208060830402058315427376791902578964879866782261185825785369396856141724000034733546601125477547023495422661038041656971722123746248756233676243764559019966262346084528990910152392678461942900382950693209929492522054465564949903416760274718916877188577059789711841665167681441466240073279362466230270782237790596651270179489607183365428682068817806743174650864170725806497336161706161282350454438641473697428078929823888805032774850704550236889420663794233508472099376792200435079320865165006568483390738758747501792747976942956238758700674352929971833130714543399544412930244783757495723990859898280300986654037230643478151951919683704999034584759307733049926203295840080685326630813028115596409249495797627270109817839836880222484570741715678795085723855172111659207419426319929440532931668460119017233516519788316719295624733090286965337312465803773910399450315807584782229644947522307158803316862348728875691548407439669857462160863597476481746487889413213162874596812380306824923466015362469339238813040198946838291994300002968200507910425879780307638620382063932488688378341916943371845857829469508459805203719668022814238699025886151709914836622084719928154969871123799034052825362168715854435670255136171193680100576245345287146527378920997476489578281068945816122913953724823444084309324481031003304166376548091431495911108351919060698568977908415988430282981028056937999692343992226441173044829769980873117578577910798189857095213172150241472634404909073871622965301903512306614799007955939682117720970987543341580038724363206414201389998324436665115996856468705060896309450378929174867816312969125039221954715221630602982025567792827485294150128187018034085276487358222048792276209947456037548289947208372741914475157614773372157625588150346642179256912167349364924241553450742236022255112430457939105236977914948968316939603586205201924023886474824268412679731083100778435328234010814215053547815893797133053745785926876092670294147030975628429524968699918304061930940515712130056138884764602965947760461213800598460712247253644365390453854618005720917316081829783258416584903757829920171503635449295326769461450815536142589952905783460356188921324885032266379034143795972070189554576889729840117323546292806899638704240868042586768253470979927548920516928710187157096433860577828016884460946936831161545809192522449089975121081867469733953403885277563272020191371902250402971312173839202796076458616930618122427479604671555956623877696551744866080725807560872937003459732070115560658761404994441484137390441403029901895273485602495745150931542952716045713467513253398619777869951780121223755677606511514083500415712447501572066257606594853594599083687619668306381948379844616561726658572941650389012728209290680509092234908963964991160897435125031461492480689281143279369996454819568172894934353517757120046638760528980584859482506946259487890373303113922166622653512942651558870584987251873411480174625944144426214077192555588196037749106040541161101532362219936152944092212859330329682970920726535409143692491622387178908097112214869086543165913082982093105283210539842062296683528874274753287355094538299185441131985261189521469598140859525265507640164863923290139691341904995903035958798942784197522496595276584858634872234141648048894292808422865452729951285931266193601673202854267571749704302754359579585968813267931624983771054813412804309538437043304434189886379686739470647603834429821202365844446632933453191361155218579836904796897930239933538515786694954869332918884736386779377841608849030555660590884691085324938971035345856897659848430243400831218186534504690285002792519266130141836250181660389035467643604342541825944714672566699471418603774178640780211232027868617012277218386210860268541787368488653702639217280945329035805249425674800865998554413748069596086998679321083801135131524389170614636972846265529697585517800664441409075452262436800164585037801764632454039049860524291871030854127489704359647757431289707372262280652669778981892010629201669610003430703172080345571710631170872502156396365829039150187282642368796153173804122086132485028322690966661322546848455056341620654747085913887599961207478631690503243919438941215503893566247293330554425528791394580548469910194438735166206403224472842736569776746135858544940475053741115579509012024543129024558454379526658445699020917728441818061036714712045368252912846819161414090904421872842372898127231361513865606374150410685958204954974123761677880263782150109811037185908291853907730416204696260580644743136488181959204450254692630901497837520153922783015570655456173204119449766663699193266820881568136845609814317909221658159423847565099433916517175254279750555421892408903629994750094604261676536908597442720554900681531175065298145810597058396861879759563030026826696255212065499880009745850890123026801811599713950294835326048126591876573902798978656091555990820382896799793966778576226519506111039957682017095264748097012312597603690381857868659562702736048810386165024651696090874989630769401832171563014406022444658260882778204245841420033518461132692894909663155790381331572939910274933439791054079985684465428205681131580002686927469053735867718108367456504806017376227448098988710126734460064717365258058635371928730356036586050772853035250986257479815580724315662332982831098709934284600692175072399006771730053976380809891540521943401243644689364187832440917306341513612429429733513153103171942097469983777959437833370376070064316798556105064355709094869134528591271198831183175275736116972497859196563818006667352308063239806921389766375570429061762429679041152498720048937415203427660810436457089854237515344264816426781190671001489415487045439097379593316371932076428010969263840868127687791569013614655988333588326975663120122751434564331845985167022267417135123138524010869539557940698106500110162306088943133593330908851257235173119911615349653139315858555014403859037940609724919583269754835482164837998327056911107220689325665810743477119750638944905784474633053367083494120363217682832328781370521243386325506957421884094067000427722615160394642598203645100950914495371047844574015197160651808299872216371268582666842153631634444723137981202981599512965207489024208282406709075898215085867239243651717035393985322649862917980813288977000960101925055790988679094456261765039968171447115490387959815179272479938511761036386276790947523616328290208313994935637755853957966463937775773642955226945264048634973238691940099545613048493258588914063215245560591710204590202954464012282894077305600044137487556945190689156267134877317543030990929881827694780944112479422178467811031412531344211817413891777307768565877399878506783344054609888613764068334578088894880948559011014913575395500995679184434350493703739960393568786114600339637121902474653943018226872757879457102861764667066416256918152937827464308879528718590270371264495439442031793497741684931202336359798035520937214029246086707226837457745173199620451271171081692420315848179332096247584273097307454173689938290547746486324419101924737658225894462186669411505583197572814649387301580962329262172068216484029811658428534223900144521135966909263083164108572815617267896192369494078296327611497489812171612886551385412923707538671453919125414448240694421123404218681392799424195208732477429927457241957746491323786995667511268762151950583721527590829775274629668427247010155243808142898564865894653645151755563217298033040892653786659467627283158382086803015387283545672295448156093217214204708993247448573469155582072325415738928444827522779758598459314754290786310334261172718233661933596190154176602878853810471581187492223917556879097937124614032802942314172727693615369541740316357104347480888973787045780750666466465738764770124449369214249623459319773300871255856823334064698479522148778670245824495702866021293520573078232777510529209884600755979415038692730506108700473886481221322563392678498940256846694787360572519960024726406270936330424450719905621228009130677611158197911433666990136135262456188464408246576515888161167917881227407960626736957983374942307098613793663279166074208042395545546061125257949617118243536869103650789282403414626338954360931184539786364272114778204691229228026199537156465568413888386494960523618110342054628532007641954296786357644151411617764599950369264157500905184854237396036933057539569435204244055225163417197650855789891741155904129761863100337606049909033733486320514928507805786308273295845036595435854924224674606384834779304131412512873667994942137151599094562557325122548432146462481917644701799752960947508275337490351263191468688821797458600194389313988004656445378383336505869361625565533522687638317793675162964796769615117462222433111762617815745640775636013411538823701642250910013496181479140828342594862775399697883912728628190852671411881385513770006204551990011871587204744720441596757419565333977461045429489856325835032188428206292301100605032676682846264866471769690794230267954100355164235449924356144763111674707955772056853846869791856485949852658033598106824319644390658277897732400024189593182203789262217355590315135701427464448242543971374217667009973038960491919554123289589321326647788646438307899801198649283225499649861461259705907085442423926746993533803754143072902076054998788112503160956973927254286584612516994353244586446313994414671817716412567578714008022568322122945307372229718696179613677903408644397491989833322209266060362419391734895587245127017732972555974708930311868755892277984838510208853305406661407326119396586460079107245568017701754644328056566277752334286936199035249091402181495875679040980200591165648969422989071495751906678568807810865637481019528064900587386706821162347606303643504311518307467609185313095716114064715105802039208305546362742922448371015536831206794001041344234188943957907967552281513094242682826372083980199858842665229916504064822109574114868781931228842479011250239197388136444220460911223903654115898459706118616103719022487323332660449966215298194134906541442088984272467045215871277650037759847884707381371624871494546919381352541963494343140837847618961653917322952181946554151568573360818992376969401600116527830865721133628145850079084293193294226146537196271343423365816861004850790442157231146267496403539208201924417849347494306625779212751770947267147388807227786880006038721907572524731986126770530807344652873990884387434239369957713190004246909199294131935584049587190581611842883534670502599634924848986238676911332765794527442267395819556096793139398776636677644793819915939350680217818730591741834314507962389016083574460482390668580230327796183256389212740980257674666387013453234434236466184948430004598626157141003888147359806968263127464925818444086082488863010672093206586101539938450238699154924099384029871892235076317192819223629581615843085685572315905203231166479864024495319457514202394579015429410500743147924037444586599063703202382681411868899891805742592433456877430074431549992349840737861833068790823179537085834075150842089473392645520890321515295899759430252872995713345417638502696422623164347251258767438640534819340167398547054503853990627536667308298453255588830674523215357365424033307436973720827544350465919179621862433175079331590991357285211776502500454535708184986962295200482898592359958964139258505552831949460482318117657049090124220704789272626674942397814335511445068352506434671080818161198594555608441122766005823817629762351477604889689160466153907764230735757236067177385797856911157172681249587262600420861477628652431287053116103852885071566512133467192121854202899756950350537804362885358107571921354852673323181427012496805402179910184301028411075987696340269578528342214095309186342909479593167511154644795274237794969955495369949531224784975082998728300693536202942198907641303694374115091081636774759545085474418739647705627141147196438157728001067019535154929352203124434480076546462878736900031758439560485215373684827391475987997841897752137034687138065058717704844497510066605248147789117140347385644439655908212799182519965583954781019468074746047861274797862001547129553851842560563139472458748325845864978201398691714650935253995424215233495807792418437957491128077975727821851807312765339363682965128100903009350006879191547329485835743325943042558383464176666324791487100286801367723198337598061084652979738848611758086090801391046226912551761111499299843142286030751371641086571773283158031216718121284389634558646540726924676120569436862281476485368162827922222561263527776239956216669927454641172628792786249074096385881198529613837196045056197413464730742078370891645039006767807697425546071985859041172326392789963237296828771164386009236311532139584436080034637941666149876324001043035179677957320155503081281596814993729015079827154706080149684232031470584067673234526679248540277330826410103104987525327990897246326974490275832388664913868711104647453423572237344419883894515809706876927915911337474087507433596778597200731357174212847470099803846725609563032794765355359826745801960451304289833371011172038903208325029447296050191773219614902790992661537679495827039380827576335796835904306502987573231921178686332470348731944704161951815323516544194018948996279902092479437288402179745805837489716172380673396930704997384371301600176196217470199725433395194673156921754715787023048979384231840235698738568070491483315942693617198639173440351380718812171851621701282913678124376468725769920835222785764303214799703590691587192865733446550966221097910131309423307516012366613550611729615288153813730200703292597903690998913242007424133598123931331829518330291596477257505494811284349909005673949311876434540022111708186735055051310662915677053214696164254319220962064605023023317953746426665867586798249165341427671587183095817259296838022372985211700309477631595022661661710352455956999873066268347959440335559535316788685068729611114978733562985496303989190644554223828991652489433768259217477348188068600964003260886978815480514823846594021392307808402545824178824402852976067640813006898323334459200442159856166523541923590850802543584196487672183577631471816429140467446741412602343020632144124222380518408877536174441256702417006680540285156331726826849116207692859616344496484839606674413364786575814823942209214641866364745525535517956676050889250667201463613440144257090938076096007559476746150465099346559746599564908834314573321954614564760173367653346142733857297516517268338882420400328863283788188317998657581613252612685709539121932500618073074805827400597130556090878901553122430160761333865799635076228739873166876544708016049988649706508138115892897626353306484140099341729802291670910248086415799433223200342464566001686083819099882186750309661114523951048896962009347581379722873900824726757865793077118180752052211800103414824730526250500902796389390683709848534821748569333937163665923358668707526051600645035127614966018325260654766905592619243888966378951710468319953365085020655961428221189908971023206395063501739934724893996966932938406504127427361661270141818305646786654847526134004176271420949237814519779610168031324515081927980139417579423508459182558097811284023836850440072186916042215963697311240922353065107854160924215504232395683221209633944699464181830535557307769253962094252295396010342817144786733633599254539487409835375541694781385724205021569140655184046508392453530906678892065558002339951329622571884841439542547352779380783765924768666155777915818410183474414087323588302189316977631220419135823113161719818716741482028400674475677476257477768290017053480323935513780652470453393899820202064074656051010605243617775963612932846151066471507466710871381702568216533859587541017619985234947442381149413372018881205306312420127077836007574569945736091533894130185505453077098266118561739114740463776798323400061057877506410061349846329131599367938189819783652823105699764832384374593776099866247089368459235261823813215248268438597852485648007792762433480455428221481701469237260370922002131728438408910635990123739924469175525642675154020428967184246924663464432357485220407859169411058899331999918299846508206853683332328220344759302797500945362918296419218931222341650052898355927426342330024156741151007859233216127191806518790337797079104040100927839782741648353237139074001825833048238610384711678558817638963338201362579454971333951179618948873728827346304955316017628078566534839585938674496634780144236733527699142080613268854714286408988970220818993361332422740049725022764572555658627530459067246245047328357750357687884870641301510592224497182363654149023302076232909773738982569167808958453029636510206703000089290591119032778786473517215820666599633887257015832947648159460908100558463366514198874352519944204517273258581444748187816108749964196055970897487653091256842038559039408374677855018352999631465626884947674608258003163265067974362117692867317269261866284100636090455470522182951972207108669056366893291696282639949977713613230851026110443382506037034152694799338278786098015069062419466940413289029292391608645784187104253597786171262159207286193163041425752944880758256271205102261188179940954805612700817155462768118186067724525603617627007834145958183506435884278597032271587887181949251126580162751480161224666631033799268303962213268785584036793800209052665240632937803395813981631168004008702224827810485762594014740295872304472562981377998763551605650408066997317712968129368710193025783836151668827220450459545786977799484536387166656442928770609059850355554022440456012411349410733034078429928836390546769426036337029400681835271042820734532822070595054627844619524840457884836065826547797827582222090915752100117204294767933502138008802243802605450272153835215774585661489624508646622608452065929779097302050069460889369400253518174273032490878005086169073327884149138411259521149232569022255842583122955696970829170930695084858831040869610188539499669894921046870410563356002217203117483408840922516999852637277624446612383302234314134550300460355561576707022105875478159401553644965081469090480449326104764704583019915847817419318844277449669189118222667885238610634190591907556451290212849957241694919468504028738295462603300783422283255820012358615131899163925028821096731443549362934800058771948029922705441179973599778476095120233718691797625654617543553361299664653199283747695360034719067124088578978262741634807816380221022285707342095039163056342682532797231020948619825471768575863998010736232463990580238654545383531439718886786630631854282408844764810202252814091291265786224189496035347873620908714727091980911502360784339533396605048780449327452007544089200650299314081007368050130440967859133363569727386022326256497014250438900781000578966226183712188449926991127982979717019605652486204605293283873223739629537727870303944077034543140086447574865153803730910905066889580550082256672493821746814604574944895398862084247837998889036987850573110045119028161379372227899998433245608276706228360665761871886663625848619877725145963293856623872094315132555144182729404546309820800103904135645011538598254739720174242017022263615128826035739756375753862920803936799360954749580646977172474033073318502416388052778773030384705418533641359356037133488281428735603696858608987798268580901953011716604187984611406939075326789223698426495101862557597540729080185222553181991774470276501047752486976054319120709419855823895373849489845775798076774473500546432885658256226306066327107705514306123905654584965447351477400524863513469632995447114991204760032309303586094158011060685036804889817045981783402035186320212985238616650009084357287127075557981048922949603546331773867370889936304765166518823265321907515564359313699192950711923383571024541835461421815658776064092780868697874789491063389907597676360799341271642905525642666824286545077096624318919277653135593412773635184895293902883244434405574664899450502286561236041528436219677679537270326760071045312653777669982902887692216060886958931499239225852701839019705045303378057852288245864480151271666929550301160121137529188551315415290961705589432765950123297219059622618924872155944729100351092784175292582990409060140070054671410841659291611992816499342095010275400688541866119516985489222139155626263984013180705021837716970059322425454252135644631161011977488079734215363578525366647412016720275377416163355091920884832333777914445477889293101371948778281813381592857617435466698579420608149721967598249205433405066846449449390390563629850387599623826592153008818836666481190274211160358859038413357421374633229958973077502408907875132348111295296062825735627770385941975033057856750538595686837330635310321917133186803379983503879756464908176552682237099638716937810464600716780966044042871569154712278702304172789302322895548274652984339925239481793762991700811848099776798502697930208391376162942426638806290740162732641746631428203259295798518500938666199210851049262946750025427377812835507170300773486425264128328169533213336526442534687863657208136596795428763448898144962138731666228475275288435571617541392795364717873522396245964489131807742989706972984930155527257432265451723244870622650830298800540855448240733682621711195626753147332250593512078442802338704170785716147809051064094816139608987698145236587431265333410541440451397080770869587178877072943328399649211673288291020006517157434399704435198126529467760532130456451118857305185337211913732074925654588663356177389160299130817059547101597819188519890449679064118607733417418199602090543125041042975386331994462548789546135611884747874069442220137518986926887371996685172293013885805379898715419340539863451084768063150166481285901260211875342562255545330340690530993160468019774843135887340399599251544053267424917040120107269597897820148707992834916614459738510499779100475871840977506732698134684396672157473444282143103034161815649570160283057638017835601925976183623459424867154274395252081401257158281935582629220715685678605954323472471938044221126448978328887011238218087178380650379393362478343538031398973881245297895823687591928170801454158207880398490320267874007568209868829081431605908534451334011322559819286664897851924611018845109064739973876315661300327580721371829465182631223975970061434795182400280855617817138316043531227308944010100536622038752266185029104208704797905658111394227069653565330500492889865559405364175416157953101780886188895973699127726367162720609712405202340006214681835844295591206843319033507352916001191749619841169063170919896529574836055117174606682844383966716547616514315156018790622967121966575359785945227358887363484256900553535681214253144172771757633121949809516545615022184887755117976523795712377238520747045110751384703940401261031031272654442733962980106314965386264219025913935425826282888308905471309122242826523612746824249673041861762925458502070724597121562708273316723417645227140940764821747549451585398387938483257872864526134153445224102010161023041687403381155721998567178466375859215989465741120260442888803109872191265586920615984168629553569662762751769616243286750601713053428197937590215420721640910292410699808911582240066937505942622223008584276596473716719965883576538057859328679554714810254201724820492860217279918101172278446374455273205906376501957737407234086065413218360571001540100262644479188059325823026412482277306422605423939344468843240330751962274761653839171438877349434271747517753939839636913699347549486472039423884921310849980294112977738812284630836555766400500040016232708152666082859349759744452160178695662195662475792518485343114130700546975816492958071037943034283710156496269982881294354107904212046999518161309906480809313933817639441193354370788629326003910404363278994594097338042727730734054554323177929863593839012079250918933636408155616259889642452782946836948030927179709417060081967068485693632261425268013468097298647919167511416092705015506078182342451005339918369374754907800449466239923055272471730312224373774674257992770124591274035377354128188445574002559571766679846109046421584460726332517453227483493765222647857979219136555776785676305193461717627010850792423633213045748860026723952081575874326200153178623101120732226697651782616682806074205409573993714308337716160332165067642730493447845529361727230917022605881356420451646018401067092270834206361751475504173546992205357848053901874770100285173522833014500872409168749052952323460558264842103693930508007663597540076135407112543747865706178610946208830560956009451710513054275888947714318298698431417179022859086757572038022795865422747764794434059649986913755951672682477039317416322690509690122867442595492689615430104517297005665533974320937165897426120426232928267296316462059554790380538204823936080901835103998789928466804568219348959545933738882556399347599325080034493744690213544953717147805152786041899101862417960217555289433180351472448341541412228653380836657926534420963404327133114690915410595895437622282157291164753339207440156043484519572016352419671433987790200313612713594846245359099962139533190289222502838002550580102014436787832413808592724007068184646548466942402764800102307003338447567690634706612129060766549693295861079214052693356421334255707366409684337110154371219069665305500399577976282359491209816721470794569151297954054134600461320011330921520798095915450054122748853894016370551985780912371389419632647798676414192642515888098289149110828254575946584647959854459272611444571402293087433689892746929650393228913489378463712580885297817920974213245563475354483098353201079002796837133942896145700772702360565306785124071679015573280256106183749357700007728254971685195085811212515402776580971434550534436292545181770270660766821612588865779941878762132083202905568947615223360532838187372314130677083026021986592606381634645172707573518299922849364215891801777339300755483264173152336760431636956115206422189894976404129360708328253160717366826780962531146395395756496710558129766931914316211544938633557937067153025489356549881610526939644369653221432481266236222367852910212259923965326612122308848199953799298097121638810238166322400114112032550017017242059149127201842931133025850088149811033089711577033609485188378221733486284878849001527190914811528367069643003567818968048710583682695465986625743443466329861772643624258880905906949512230068242736879816336446542460667122406656280205737913244504356114286109987635898250816123532825427698068522947187749283854443867169584936779877570803764754558893577716793087501433391142619657221328001417158485364334727801484023746038518883128414586290264669689788976626920790029978861299380984742319251947735707717367992425178141160227657119330725535619924119222425670382658309344877476016805706833362637262449163506028947813677611333010141995127276456264841557598223452962349294951776001730680245185954750758587888535649859156387784250852220438017602886690671135357772907817337824156338632921889369180066455836442359275736344558913381581241089632301158161247619505230572276554215301679778071074828705811786510091560070194098283510284664325959457836849356588209114128475213989752272250168386896191237798683989048819017374242028191223066599723133777210371070834561276970477291093356433035033572091175513177496270971815267447148144876670991261487836822119943917260403271068258106166159262573459917066657460539085758230126968941897139723722936982250480639706704670989219968974487228580475698342481687159901768550023751667889590274368192357650688653363907293832330338414070327299265756830918083426629227565534367149481766993334723471418518671037612848902581935545496617224600690081913478466344738137656219565997934758521209736326648698752990651508885047093343903020329816754964261655870637183992819172233165731534976327420090493326459732813087817923519660737403461550101346394194925894684197578413617933604047739321714161868237868109074039295560166591146243750755875273424502668018247486113955331609562372236460249688914712931662123741911011432924152704337190222503791453673950423694495247363370178511604361481471532999436831746045737515161655458438398299355027523781517804798478155554544388833887224327377499209879676724062543587159166012305947235892033422938150254169024804428606491963951779542833450913645468020592477675770554520487128527997356684280399012606038206975714530230252201335863020426366113222030793126076324075260991705803822946945766775993372684030943311968840259313026878692943741719064513488141132346027112081849982255244212884046825577605803941530649843138670100990663073111539604959168889018662008513640281919598937258809354631791426901412649314281941363836896755699491546363433284497023426816539433095659728750356245705702492657838554310167059734111670625170724134598755411601340558710674818817153444725774190765623833600019862686994882400769130241791650902657513339323863541516582892302168491739860274656184546578279548966197645279718035254721556476069520099347450539103468894974377338862267309724035781793380163096478303842222520642771159522953475579775040443681356970088931370096253405626553900780284951224550118421885952536141377054000275164076943388215711010039827808648897176194472506858500412307341647521568511822407070712584902270731924861999603512476438531212911649024624283267982595132093086552527108810217582388919742394490399713886300838137720427004421482855808394733666656875110186494974969840478356697944350747256906376042052963061033850313585934091051681703097062201203440628778004484179851372496263215655800873444591453084456361984143017168250772507762381110125551373010192445223022609051478888358352019041109845499141620839105285712182789413173370640907115014821040405325045063909417022458513591592394534883905137280077466850900310480887445504459334311774900224741329772417457689670550089832987770969283349869780720285930727369578481083164592745410248784023938489149722183524704062634102891046072031069029013916246480167818317469876711257591495758832173849447086171330213099592003764597466023651003687277623699676930160279652555055777856209348426017521103816193649253674652989683584480432632242093601250622373507813900363871825264307220472401156117380249011101538271808004209138678372817543695340831511642149278386397167330951773719296210903657557632505258708654244089298606423363230283681209308684909577059719037166892944752599055868392616940320459215134963466113743580629218632752982839722783827731772340503962954664368947444307285441036043043972488718314566275903723013220822565540588186577304278741189074888910034151064408043679700590838130817218285756199802952573750619983907025919017510548868602291720274948271685563923305397844382573705580892531509472505416006184863404570974288856459379799730633844416025170176969757105229952749519947877269204937631287894580587947950407179288075448442161246912533883026562899287349931926967037107209066321562550892894599604565408401618406344677148668488601920356528475230206375211351025434620625430997199459545281864958988619490327408811537875299117845703341788036796964798450463594902033942296842444686236297998020451554409817511940624821683888913321686622006761319248314695715906977023969811472902910040638872512835646029912445837063786984089749273906672539293592455064457565191321493619911669177252144640889942556054029802237306682387522573414539736061308804685025768030672682637219881997709327086699863899854146330393049294291166410111546036294879676604221917330896277845017982759252204295658048304037002413945952255074852826363594407100993729689363640024344688942374004297622984457915731382912386909341055693928396400063361429169039655679686996111746003763790854072357781829393738582650370629651014610518650405144957753970522700847505508500196525133035622214197434623143720719079080584751919063954357037326088250778021702776104262050194142974277569061802834389557061987925745873077901133664011354509559274695875975404241217769230634093851776580575185849082304886327712672118592305333383522256265649746866914726864760920624933933962285732672624113060337315325241698528229691038851304609258774964968252032849205833884562431840952900195844199547534865167237341810547993318185309899702919391134865137635639745871897251122238015504765801126963798846700039608171666101890398231970817961709468635609234309141763691121420138663514616970226080046539222304856305664211988991180127502082027088951543719251870419987944294110520319855972046014050222037673507803423601345893042154941427561069753562424576436369599442739968458981650514875257582549389806239163399317407719820079242175467544376767421993656985828042141329547282488015570140484549945868769639911064137883554403757623287511369421928733777474670345892169588861112073459257264429759945888102987565082750428872960730251999479143083730057087181758154082255989125311765040850904347908872721508054653207341320578001016721931392139680366424350594031372048031235895283861524951198990785081755067724607012105670393646925297676293431966365304672191543636784294958961041127529572145005435297951838035996248354325913400053688068268332865988145430913155215518867626573563916346243730012016150971827431218302565738921118547903918587971269270923647179785350544064391513745258039609339676761318706633013729561771289092228356698923623421342937927651067531681709025432437122730400852800084849169211251155633761868452306067368138086447855341148245557698941674170772927544558533909073340059319376242653383403756992649499674209516207787811316850746679730597701930339453624141128279248248468408555729321129102001540142429410891629475899335681480707266217284273667998341857732284470160283030547217508955026379219451389473938690367091766169142233411301353230756858084467677484721031030948312959100023400791776529658616518239439010005137853642961507611225161924298066312838468304529035161109601070541069859227649176155663418772841342036578589058270187255153874058677113771471506382419845167452343375346211460641127478326885957707406005449939335957258020776915191426207214648021020158891182043728362403322056583969970386210454189184899008891687025197658393050148712547496478987745688984166059110848278781521622802365531351717534966458006713294625918950250623691888191065136376677179968760615754781441640629595049386020764808365517344324491333592226319003625263524412120779131770493540986545985574297305456808069685944729215767851486560570061673881753693949565954514572465810461524917106575556093203548899844657865684766800326703473293746976453898962583395234746909898213953697284936576947986262999889117159056349733712959498954921418398429576325432252167582381881433819282414921181516354545372994878283367676623579135311931663718556096249138592735244444648839907871017857519563488770726595437034834583130667824151608868986794825431326659444783353491574187816796287472789363270572081410119648640292898237643368509168007781027238574361584431248572506112159764664015321630478301684591875531666840908049708116190267028244270302132763979381363601487916077484810027465176813576286493595143487056253311821364723668857782695128266645835905768095435402690361598561369826356459003459832927113374899771155024320047570916771310649403100133779836064273446868741331050938448563906818451089391783992337794207516423017627971030844399308854764751213557745998775130247527796236025191236784818619318609434227265830692925585283812191162925497413905974980161228528111909295707105762128406811643006590833949744627086963172764697856501044216997168608548500889962665006045704002528470714113506204241439600374045484272093802786694332299608768434986137347211762674249664128532172100267558654860898333915218051311362777243749198531136677030489117959320923804694107245848570324249009380091231702486932824742758800234934201966179197765387143345717332861271664934268675078123065094833546819310482176088289171276424406396955286190790244520743271750629897803918925363920415719997439780620839677176659751067565183848063348339990334780247451857910172611411809464941862889625500752323193339103414667455623126613788210514683080009937321997300579586124624564515080736660403249865868640130761013781888946580256174454561641101602278409782788816925695427463366009451140639174059955397492271551663943385296575461570596492981453584089368181696647557865286315063517695211352653117777866091952904019451890752995432588359845500971048667645637513740860096665433694366269594485675093354617814696858911605092618679917384915572742693413212742596752388489406932095954321512323871689163810435313241811651447817793813025983414856844299910623173842142547561615410636595750714083612704563454547299168189793713705926675845694383854246526482145568604115344604185261324173858325621750693576860506544247531387753991486356391132785012326459063711955592298302615188183666561471226778127022500075897262638975317696026662950799893432971937528861933484746584934204343057914154038569589590427319420305130082578807399456726669601906235345317887791928158232428622767417903587470347111954627287063794186585688025189898039675520264905406904750869379770771284841862909473861576375198663401506877401733110247997753465270594241628148176902058263811565009676880187486156111093796025991877868324463105723048374851861668128928572158244542537147020534950888423738294147494550058292070858474079915499305507894158459824851266165738129228139222887631180760628001277048815357310343435150033822088693481203272924901396636733365963568955696952742133539957712228310925780364045524348086364871617462179445204455839350764219917204060396912249904863990274873745100368239649748963950811487757862380414872852722937705137954706196842557637140719480384094872478846753008479771869662402689130593818173501541513469523662850212754559720702249484334140293192568990839573633089770595458981592553727294475513274250834788809505762174052401208166190236478909013862426897752093882238904921230150089707518739957910201369489896420524487442553648356398237547320750678897352937714739444933005142987013966693937132621863187337479004788552989075256171312101698800390719313725902336771204851048649040426060787590877014112978821029366214499823018939727852759340488996979899475036357045234525665425762034436457881509105077787079642230191144356536010956835308011516197776373090031073428365734379003230478792439435844415955842567062343504097459513862049695498838764780611404279056609593172555095359691069850115378871467713396537179683518482126756569462545382199369199309766047465843419418624458521804434731576116130742309248745976360389952928189300756258543519679686041016006712524520360475766271991433125647597474635331370876980219328336854273666577888949459540549566794631280295974993589991932413461286771804639096312922632156349750330902048872381267956981023497680877390379398631594954406225768270382373937099696750308914281396398731446959226066589695488791753630650388615432693051990159255776304250740521499419204706214209100511228300423432470111180452313426215602700383351572580915789007082740716561093379712073516825441966591103763866871371931376093280654210773685287726837392632204437545318627817422878974402258062655335701328281638171822747316858283345898677364489900200819017228279050794601667054369008114667782453946743329449827231200959115862620524602728985366620751364999687635813277429868267815726845289436594915545046558710707361470263167799984924599247441769669925699694337880007780275201171791653947366604875074284962773241122848324508116204274768521476621517646205263927317698019663809006779245300690920989701754617171692097160030489988080145086720120160408790589286215297767254616230543373323509147550929442634607676122557299535961140570193450995266897519994566605337031544399883094758071604124930260319640983454631176584769474204992500428049013728250068770429957172917493983090901263522921305695211073034609322043239722516014306853469498012231810415541872809080728017381511558208699527750107215106620532371498223565684964749676076687297881981453533091317859054067992148224143186655997403451969508463777410539934370733878734871601050530923538031461402463945925143266396165911940177024945123358486567755799315691825000699637089420201908870796321401080536177068971758283162361283800834556887963007363968435401668352812999310147591523794274019873634766553076339118463509449351382274339546578873828685148721685512454245446312538677529791040755661292391077546876383047787624943524113904297338646250804840332078365929452698950965926507841075975957977042602690372576909431916235916441783760282699531858890507111521737206290387369813675094826553024013601577361118635989573807140654228562025919324622571149013314151542559662223420130365055173874492377055273955805389428191484365831087578606039676137536853401436618045449072325090584884668601053170562776859400682540073404226760281732119607249500168078534599381373920634444508221118134577004290197171219376915603708953533156623571178022051993360430590803292558236059480057979110562592239496915396916810877047655433320334531452379004125388654385047235053138983895480480671180379285525967632741080249878866930225061620218380799293193552937865429774793605440504782630473744140680477378059369335182115565263933558421807128126850786342872385607688358109487377774511521748367294279579171850841771084626160860628792420712255645558657961976075816408437846417807209822868552025700109011163041741638325418084071159796416576269990449058480756211313948685065692974200777254112224909562524793019231888085370231724584260172479320050156269100465967516647731660122192187167569061536502654009298266336228281705428266794049567150338270858779005990049627725450847124774832960432557763139859419089147024655218586796302747835580731595334608110264411178141335435822616695047901472423575712863018646572919056021788043262992185061625852168587371392413859935223250654781280143681595441732689249819069049057095654966277803792934599327801898141261912614599315041692917974879366304538099914303933704131942881644975948855938474233331293749037450145409831805400190491304374084172962202325060915680886952642791207000237328477748005437507564269372759946253070931219601310446530238858293903103527436886520979560976581236186736528393061015412939024507464721238252369343971868982469910514707067488004991148675135699663593083234535101142289725320844338325123021682466059175699901093708277818938340737174748396065984106701268811699486123984795838615014732412660685015359769724093952188650030352364227050407317907494076001117969300363231544383121881633934867283797089951941085574791102473351205186204721682908807634276420320594023959045274510170934955174637914294886764554340307410334630012689336238286081616089328497276048490506636444984365266242096520582679750820610635461064687641690453414355758920512426103744921475350882592329265315090500151608189827077800856842715356220090822159415976862153712467021661882531062163781034270970612644036146008164527893959563320099983518645361951106153109734452586541621461402647261929308311842193238231582840807376076617137236413006256624267175593619486893038144161018355115634831738977716866025255772227226646201185250223501470911641452356543665435303087759496165521774021895532730833539051786639155450352191172440180332197169620218103777360283385082473655506878156492621267549677336621337628061937504135648941606697089141569576245801684002535993337066423615348212119799395013359633583426346399122884903411361723827762269711233029699335410295661297473215943697326596915900317022981803296873169597202840530013972744135332773979954829870583991127007809670995433686800331022504975486726133876811473169243836713925851920526508185892087540598556053383733102600682057756070628540127325467726029869420305861590419374015849210817269656192416883075286754675184179288901471107095558432377204992603743773560215793382620344029846684747037113555139121628741644638230849235311781284237759041790917228452828130601162222689898796580702373253412105540694886659612049128523714645808540054941282427573495572985099565478632631678659053483739332717517842600094027881605755212777889068807509541835655391696242559851901252906109404231151426460526492477946044066695875475262788594053198066383537744155575437928899072632091216026787536536116753151637444635358073788058018034429850481777151453641357958372183713727466624522613545940523855877388624269055322366047149038249788832504322743410616793794608491312705800864820175436247282428578223373572681110739468406221705802618504018022747506526999215987851852375717791123281066660839425672299027795558848151887126763189778186470807085437885439488433665560865274910786187062905618416051032931584636419838600370591032989273292413692788723184159681439898690411673481524860472395081211256295841689440817808350674481974400956378189111451101076863011459204647402361763952885723792476237387201152268879798223016023330104021295907458541918904307360084461335903753427550506062141043473400945553189539674917992587412157412103179238572853972421697606326926013069477402531461300982495139246545142700340001287287879009145897173274951448069066592805704270113874480730908684884938088911058118696611428853341463329964258796521330934709293603942412682515837889510259376478893603107777209575954960302001286768255943092472522019905873553030204127295145765589007699131265323424523714538200113570894895515598083557726298199129576828346255324480756323699020415107657459424963774759649878061753214078233818044943837921679727333533092497462817673215501551657527765567275859768263650836430455262799398423875790053077699886406519765239805411778203387378830919783925179781593817684298855043044297385804460942485356625363994644270099025443755879004980288488922008792242251651449989143675630864547614398481554003361988586690338123714888750127760115037947995170979537060393297856026390349978910813439424339882556219544015755290446283424608604994819997924113044694763155900692247655406306674853178440882278068940201403728622321907015225116039696036185580566617139388836561966149671825412610324309022737564939291118524011763178671305440232517864891875920748372376619715254806498279705548851409698025393902708356423345484842226763104683807213312557897885788392041455713466084863884462550926644891319779967967673982483881104499632414467100047631570645891997635138133881589346666286409460768465422068176825331139819677786813331642798415023375516694705743848557302120007943879604229858650736474046702782219496806210780583348350726106165682482257578225334696332854008778717011978145003729859349518645641592748174367004819982129856823380563209420279963535331014126132116600997466517912182854906573467625067402331959945169563107676029213276486871978423150339510913616344499030420040835828857214432815506052905585667120128115061111728664415564126708642275872383020225471126559348351182600488705875459890045794228129119296881395286635233220564749252675458792483336018756438791581619570524975974391596286343953562619977037741130030721280473336862383386727606180655276025681606755833021130560910590433907064511708656295480441285839160641640155189945402500374721895161570093220598139620647994850156650646103763364107197662446711371976834100758164057878147776748237210521422601221829762042751075395701409755023855304706470375109537958880785361867033411281025398396453838497233694837635797799847861251036174562460293416525137689475545861766579840805206469583383048135031963114397297043740653393874294888183010236573936969788822143824215229995616371460748810934393511303481263661389365866517013959115308453246878860114113963491171112633961675458057168346236534649229761970548880053087993820885221591048416683894911466155662902271571761273702646350535709473620423288647094332849482088198804102048186350926806956407310738192276283636165030903693425703783570046297778259180918980342651324333112127993433120065984324240383834953623518843293162716347772207542776079864496028457768788485626780955273141795147069543552954671152688437094766737659887994072469859467719776567789080073311368828115770008094440848596863385888115083441060214515481673249572932510355208191449852292969642285898259162877620719273064054527802715350447918126947603748937271526757562053874442564971416686657304082619782808480411545496023763418944341554984165858098675414457098010593569786141119125669110971071934816196845482520192851873808928099003230266498549363912568776636977640307627971938258562545944008637454071502065473543861536362422706010252291636861958178355338062579291799006529649874368650898333582645975490336264639306507067191390887782238204510027246347271952913227950187718869724753662919022053408074000371123676209129098950854846778301314515704186407564174660943640206996002186603666112390194668427000621362161885655350808269282055786229107958547089864636282027385460777226746177396338808353622801019393610851522875473857886372424438061887055377595095493661976447228519662764189283506447145445094458398419532951941490670173676125672203150625512876388023380692602330675594219698434344261408754116310261768826661693602000670528300512477926028707311604264141394134000154077064220895574295482677034960236480522065239215261808654154953945051910666246649288005799180262611301785316087282260826916345472663584707069120635073604578213460514570285995030954270573109732798729102206052424252362224152852876831854718134345069956875307650080541998825842505142678803713022612234277695148982142652687180755186942634845819083761189320152935340074143088564890590920784850070025078129635563687887081427225605662512461827819221104026718991363727338999623561429408681963130282696384411579110081599851084389225222259649434173150396117149782571119387011404827284654942985978760331281007264460495268768489982639108219523199116550109785908630157292509778763522409186172771047260917334449137410299555283430012944050565425731160454090450895909339644449438898874299947551566820910770215322337337950651596046866407516844824871667702935882853562695605094216252738391727081000924519403550328444545544793629361345084094414975563051862095466648132917698194520232928567188178980964760351816033056275439882896845852593141648179400060481459551589145890349695930894106616379965110148689240622158487390016806628390998589278121911522392943374787349125699973086785785634585693496038621965494935563641282296735210626268608418402366640394312629600861887491907678045423066396623376772359027251427675749020472763960452182881703812581289526329381355147789728097777316313682747750835144311640232762581772479856802687593675924855303472174131940330153157313938102951922191359526873150034949748099810391818536806482506749030943767580871916445771080725524489775339526591214417301431886018520378984242697097074612783313195050008768197496420711302891832115220412598688387742919097629242020155451728592745424855561614995403896265188739156855913797811227885269626487519616174605792106893118562112415672058156156953220309524656084668382686668481907690933343534400389514858830424891413457677389204338271003693144615325808640052261828652952302569768320069335543690265717901496780549680056710646211741079117443279681388871193221202738991706218038557289229341924152139298350656411216963713958998838059930325090012293547837793112700568282470102769847712540445452379037282945197190167700177380513580104089662639231342632690415355955337860665512902569764746093031537540059861101355127544429524338867327051512698770114532594497230193783752539326209733136943073331981764906922851908737351971364403736627400514304329344372943456537287530894851221401347190590290475035901089690911906573573967718563362644446580362096883158643044244779178474013799790311780643882442142567276454328175038722322275216789469191229698144481589620017905700447776088498723320445705942790550517008531046354255004032944677377518246537110551395183621796365072401898149167551892861051058872335122977347731897719713593137595612730137167139892279949175773328916934258121596962734137788028516204056305117397894717663103274944212908753097254520166188254564234598332838591057569044349608920292122455458744745214575662246318290576728851780058183367094857887864473820835875320191325638995020510072981606638262687865929054177741989555202527316505867776690063011865981910301747136983336609404863775172031771888034464560971479719006348112621536494314679618377716683178954288507872228005473423936914253189683096370974095376057747119748739947802087073849899221627285812312858224854833650337256371333207163045665553632657415977262842037663590628639864360930868543933963132583305918213650007364800984487201646339334974155418469558896783865632372774400485850064571065148292301502512746832653452615567215438369170561524076151549228365761312598139044885315206762313205140694482448459472247289941553027779035622576979798370895329680462290193365829607853108234573550804443550234195815332670799457271647646618583793328919494957467211067638900430924201312704296841753992556305102673791383024455863667112786416863570867782011287413656567890024277678834207096527632491024217790013158393918485145391017934662564875652519685576831744124130778957235488452669158049743243488254664818891087603257743731060640434827449202815340927291755412124884985734808970744183894760595800444812986682751021010088657939397673351997090413771706080147745420201091446997278365271944488393834946218485737648174105836558735031261358260923745668695787677205879927483342641134884734703915539230244183797855759730192919983468132575393080506371115787184486700314036734023616148763085163448333541144937290266075958760301280659129197883839136610099023076695352071455271265482954889303262072676598009998937341971024470134283199164413940137566024208185923145697867631653593750207512556568134543461552963550918894071465845562910675940199430430979742788107794281516706352842074804534493519539030885255626016131262319761378280457967448635664362632760605924271772713988503443128364686334003227690995736849570048072835130396133604102589545145401381351057548313881868328321080928091896684601739836797372122804876187176887846820440688189820398879267065745288663348984690792692085636659892024731003815888961005541055897863206489108714086478792999337813466169342226342802573620866557203489029083089672380371819837144014106414853916543535047483965555787561105436482529265655409696483845694268884208587247271892467610198316648869562893719668140658273439268886971438867425977019712558658563140320424035675853720476580903171915253595790061368873668977355728950578883376009309839687970016373917533913409108915968900965732765405609581121738467664416239466555469866090817023713416793591867325809691233207287266434974643472914266765893335400069558260340852871076383770963334711998641316895503160956747801800734489608924284061610951304262941153533483648560975397119207101622372377502818937756425294776395281813006992834110984312794735965433359959391451824843652387024061899426456253534901486312183368757667949647198623152177382782320771806299719239865166416604416479030740176116286834626915448465952470661708552635612795133970930817831102898008941637793950812194873434672175594987507500462945836953685404509179423570733591611419306031026162065135866829613129888794762869106018185271623477126497009211536055101862642649421079818258943164961607612358620044053042904236548952493078022314589308172369663307362399250373485625675920445238302040812061657569656409973113977511757873263051654204730551897711833704407440308629644504210183718809226012000680977171882417031218272244248031371855341253825699445329803395029225988568007749635835673655580305671305457273801846024464578637977671530562616387096285817875219272969691845313460264067911624924554545217502009826591198632627757199169778902342840423832929519809993586320444450206845593170755666425899918611654406612059084977284855412238349203335339731626243118595294439909677843067744016203929976114497121080401127127125395573564146072948174956340122882579482090930966174581999237560469068918185629345592756544879471855973571731845986646660725302136504561312792395033134154418774352522451720805690722223138298881667977232833293865813688086091906150001881473018409830092407534283833881985280269379764335098067608155270352539714698325470115492573249698615006690285750521109417171103721393065374830242178567254738382341335200415657300538375095368771036889898403163223987440269180947831437597279204806731137230835427747021324477637258357646299764917500563077125869547810716622924878069717340443008665935904718924435038441838344939990025145164825005495691331832416369548619227923821426175368490392825524786785417322579944399383595646749965534168761451432461102158219206949944545233213781236422764650145933177501103258926345222384470512517026470812331132922090934757602418332515616393768867583490753067864575012950840963439217030228949202159094326444323189060882838701330344610345580218429751679174058962473462111813339091499579649287759056985363093439245736856466481421652405146224553793311734148310633145419146788079002385320469392468637683577214063983701113541902062576423317610915970856227284827573868833855757614494493647127242656886502241134307742840162742746510042240649984125461759424596757766181132639183095807577741772775203047317995082816912902851970197758462791937401837403743076143433425771109728903799429628883985454826957162209411026848438894708702241499134678621871335217346189438099274999817040503578840232446349417854876021292106848809273077771278149618956276108812378396845863875357464197935550079098227226919356397724402573081108836900408312777487091093576113723956033681428086357514284295828790494358058865400559108821860198940988991630843499713110140474896101681612674278344083473959981236954382716899555054661321572006693752854672296867704703321890977939840833478225542410642314174126063803848446596200646951192413406496957838118430714502656834149563876074316806374098767071340352304487919420192680697671844303855569185634495630101355479795041049890259598515358604050316033040906320338239569160131521902093978063564050398057120588223801475914487241848562870103070875693926767106803900480713796903952101067978252917935537839047494564297687879240382446701634292245543115818910565085915074461126638993053980465550664470555934144555685374935609465716406004113908784051291865496373609353243551675053281036233050342003231219458663995105929515023376461203416852752347031166828821999891780520742835042069099111281015988035902379887896454708638830543430772530470816613804034069915150395686991018931131907007722137530691664684502129762874930839453308021303585163040698419489439850582162137098141796696130852598741589893394226402645654687783847077756604416931757715221786100709065340018512155790800222730019042540468045906061915726029153467755739622429256816786047170506079688120787855802817579493334121526478176121263256832092831993631294459963965360587898338763872907575638293330307289689060800198227963388588844683466119906501417197339498297717645036886205696994936094009397685591046242526284809012914271459620842694882258177976057563909290086688274062328579171176219419821443423420642534408688112275305251442102289684161804700369161315779296959875902931785161865689189353426213512992511844202714850979212323032922538367730904248375024983760630871992748738745307758568409981894618663912306312208966593116456002739984852375181079355523814979100065670249765583461464742396242402088763378144268986974590974496387620353087308298245231522026296975940154493339205729093658093837319923305196198389998275799740780783581537716271026203019169393980857578039134810177212155998268677289803382241699865019532780101480538030052571919797422095598940823468422258207987810751821201159876910103819257201401235246944697329595595152914367624719676832828399768992589367140991149006112193480707456642125341820038215132977604388388141045684115348217604602199171961964987977944272503251748583383728377573953779293199557491775742162172131648789409880719710709489569919371463811625017125116212427279399265090855664339500450030691269271081112894465722479849000766440174753957136473729052996253253952123533157546051920450782336383576813398532384164053155957297718804096452291744521058762304328488980047386035501489261432672619764916179347741750357481825155355735137316399170141656649313467609964177549466222377068679708684021228855454019707715523450677908273495163683362014181200399285612496243872065257033456353903782639298365552706807346614036911054519910313185736446699814345990646011132659491472825083379590692305699355377298923466975226811184412648757474527842447485449384603661603795054560632338508458476835122910388865645217745220715868825218702148570592982104654839378116315470622042213279606552183757078647455888543399962778864454465185679702093784772073784190243930061808455702036735327353030500109582427370870612750472609634883193176540962391369423302390776173224616117154048371724661835321779198181024939023840305259654706327273546203614866781482950578331756578043872028124644114186864363582894570858030777916154711859930465545532535575912121403398465608970428834247428932857259091733267275023234930262501829086219038838950950835345785730347057992237802941848128662663217608063557762806556198626510557968218885808675947911568318083424491426399931379616337670061727507706932994969970019802692854445738888922050278362525262043879703004629323197235851298251228379817460518812410337836121545395781526989748174876026514755561691527204570287386322970892640494903510336494082817244654146070268797537142240286157461813398564784393046429479823755412132540234320134148403194854261411352666364398171470473878064182853032157986066532830887621123480447067385195731113129171637114488079804265314885498667082197580283171563625303692753512048634568904181331239013038205902845576997837481496414891176581964730338552622604150575958379873519374083917273875669387033194402231664728694616245988080630527667158358877346077079708942487653955952654738032471450359292467979371271554589119872746905134524910664871068605696609771946146682955573752698998144855224861449250899420861919282363825300643544615831616838367476703398245844194396919124767041739830847964599385927021921187339770024283169734532083027802204619457147514090215693943238571289509113202459241583025142819803667244510613825502371830115908709578095558747377033483052004670291754443068291202841759213155605200393351183421994008496906886631043713614303913433791180646617863022624212684838119393021886201285309401540618693648208913051757892581323283911194212246219225465315977151881445979848403330650759774995066025366863874085818689582431641769845279110820604797480570277400609672467425553201344009332683598182492098486533253903682393549508349972640671811564609311246328220691622084302430939750981714247337364665543017995067654381483773192966666070992097154620413619490574622787014938037829533675213751415364417849411735314837918484363713507074504518940286064600981335756623639973540276848353083605690343283433929794127774522763085907422684516779087321552388812718901469877052809840423134251715223768104693924864553083229873188539515219379924581560356822635608964459757133066916540570637996055205476447997795929407841122633918131964003560764718738130229738752953543372466533936390668776493877907471809609681185749696541887305204808536470160413331219023078877527781590284148222002718381306143696544917827313055982330092144748268065575170372554308834494789616326660557610236771150418706286088120089393620820230936505988354957119547342385755029134117856091599874069072445137112382430022560090815886565842671159657513753810797417678677332322558970925694315992079390805820850173006150290618813473988122188905394438326567266151991552905489063226018002383827581094945531504535450007286263470157696884400924062850875610501950974579250111020362516129670408035563825128017253451602370373660568191003254422151282874255799496498287915984783081241890696102456791051877079031533250760343994540136216394916933454501207829197225034853879154732321458588912835457441808633090230443162199573220115910785223575976485424945530519288033594823749602251917948295676352412612210971983030479574664093651973617396855517819182371177665087044246518127504120938079200474444967483452901588838409761365142155239581933357424960775544870853014604023641481074079455679292244874222613653667401382409891181101200122766676224268135065756925859419370444739300099929163773554534905560368589851968101284722754992554918126426435695715821315699851340602443363632583913204851166884364290576251266568457844468972224941375358412230489799227922442201106099344930790924953529547196476333315077730625995124062661187525048529861839438848022722901424490320641839630840556772887173115778311174559937848588981685741453956201762247212422235893327347682928129916996508199831326961445752966426657565745790925534862147720656649044919474860760294306386206898655169945818260412535663657594073079209141258216130923575861834443382717289937879076979024565127957055261570609066699403726065502043295411291365160507152600354920963492010707588477259760553949959813276543398502597261990081318950366976962254626226822614177895559177718599255113176321201008279597699100847009848322055664340212015485122517717430760294037701271289483184571439151130632050544274435108837646333966164988599084964256427136550393940614854611236934769577928801897722686512151933084214340833310131710400788868284421805314212009371406360307187014934485775928486382582300626884131762115021187690638919896742250252277331596020205674380296536259254096861993764658719234934855170610639287167195228179527653507954662182937785104281661140838656763594244357447088509036531604165520748569933581261650521827421808632802098866193607682996750386959281017098515092438917470878066413185743512018532548575046549565028620271410774241609066498875740816794831667255391217886419018998109635909671397127005226421596348946508866178575950789700780595514447921635804615062348718214289181327606681930166428298729762200912201148098486977852456870802124952191773855243292657514816429641179257564968270269177805194476249360797985602585903879076636841823206226762438399453250605040445716107048249441087420262040018047332139648909635286018180607120249294172308515395167036270194872360667434675713037011171187296634480106319612348116043034200753746176681283254539052095218535795201811031556326774443504907558069849522026301522227180340812958798888315728449668627013479044849145154263297173760719248786486056344846174970878879507965645994522123533163010269820931128674809464169916382288101215218784539592901101389516228182725608747965147073040095739226311930174082498585112194909896772240554204622558196809118715611753113469796123079659004681427069008676277658261138615222183477362368042099361923209839297881839819069464685539067429976808299866351319267636815725162796382799541315101616590722706782357323819864564991540009021516519723370656273713455066756788021483086167223340303558248850138695436587707798794281399463428406248318106198017469524086404386208089657363717900334930234996378735315484840373528602518608363123519341800389710059491316879238540921029252254535864778754449771645871624771291392301347757604592023321501669115962430905433704654452180402220014544177556920308501323317492202131432752577208547987165585576775280957908413950344967192906762296458642086991483241667683047876001357237198332766332578918508992282561275365917633432073521276383639935133656377496512113639904487935558738745135737287001108351592000917991437073661683808823724952738284717107097846004131031265598555775500306186964672272927549295407136114168096594760153154736651906837137801833966677616385859100104500308878462009187472265844366102596573242694427901985841263637010927795917819852625390709831918681849537566318317395271982150393603952228879664600475216142733083082418644736617303738965761411205787277791191859478220858141885708521571899013292289878112946200682706198919633861479485632198745084760826001692205658194185965470674992175828408793330889235822946126583827322237469643145104383074986708932689770600322670751923820687065812627670013003912024203562793988163143944463489108900873943898316098052897898716037725873557817280356638576903653363792845950561380851082875840974479213311438400635104699395256577006606890192567495624616838464789786823527108220913009342115897670626432731625905964198993345494771576471028951026016577764390565984488957763646585801701097298563012640896886362170876805091851231401646798350587225822247363733025165908577507718915833327928476003070356064952794219985510280808727302234510894047618870517057846818466942871307304555866848745346165651094659922327097062886724884401821767784382978871966595533020815442963806113869070185228538825117676087166258441824801934186977935964704225887354221669027262193055393103536648639219646487212599177170315071502472606089176253207862377924369124244397833920073425251017781133861686757474001000635416466246052190284692984419353689321497281170233136816987860978837753264776268290375687369276232348890132064068763183889131487412676839263813753486847225886617243287971392369597504089138338821095360004204928093005804696040716168324462767852094663813024666582192260536090824640084349957472438254324746973517409940423314994934997918440301842850658944250279046823452682487033817812883771537247020382054856166713718854776064793332238185406733089800140566342952041773097638782516630647754683720791265146810936948423362637294173202590177415485037657447249753567616968654638486869566556081064663934203258248141528201461327148411306063251671702543282402962427373985281587328647495946539741680319558951501796675638200596538678280418016162185262081372627710060131409250255022700267336268036731477208464967822826775017419046187086308088877542621264630420851114885210483066562805512758940970555897605863935277727601691580284143740800767612679505908482899770340261830115263564278904691757066421283278328923931275398817958280638909937474361030328716008075653394205286307349752523953945399996271531700409503820486128916241919181458321909332357503747015164634818866230151096918326464942842298168169172657082099338922895579509938460758179212986135219378532095193378217993245445093531347174882934527911369678575041154919639106929505543772226189189826302313211935529593285570027647643108104869851323258262952799787497456872919007576396269212090943427068250345233055848606577156274694253560632656381028770298541554993430790833659633413457644254554946793813423480182736530539751181089212976409552208031149787012632640083818789456843939090273304748294038497529627082449897390979489506166315098354475007650503073808034133741843432018887898164140095895245736335263773227777975241675478914442272458317795283463535130519699952031091930257589286426672463878586475973049025656704022066935017522784332606407732165088796958176042617226512640342424225513391361661802687142255704356907291732470501672883148228731012248452504688872152394939858983700060842028299250068851242400312506417293429080325104026131532978236134163895166197366240333206170439078698284944682186746860031155160370465689082887619746867218583441735758051040333912583118580515076515960042475456799212734086866293639478543891329322695363763185621924775561155021918021200968568641807712164213045871579086363254585270406369835847427199488348057906903977105170623964987832147116845495385701597608790029666819090529795380729528289515737381469430462155507299432812408416531787309173360700152050014683914283634901013521736406114456133500908081284804934878076019847267504301900499389877331873284831312729649994847744971344273004467801846108438623526201497344273151676718955634772040591398193600383915162828879511717694838985583758817123909706078689790959761999080230959546549434488451949595189883686792550032872981155900246558643691698257892537968041816933539706039064363833432536983224959710362470643377276032711114441333085827983712787853990531463591269386529408236993309447906568537145150979788252273224603392991907705408492696870358563812892715632068909463843466807220710848183766331562078026067423024822508000569107919653038729706971789904258794155074942274230846344820035338653015767957706582363505484136224061011088407335567392610914451275188010643351153184692373058800673648663640088930604976774807626457452649162075223077429862184789423356942656258270220213483846488526069507436136972745640565319055413152020104939052029499641631963716936099352283865814843942079141383632327903296501383418120932981708931611062803311238442934051869124408967915386084148218517541906312469339997751678398310406232508433334523050327168562280443131841859050785868842147738282935510797600788198192925075659432423741843898657825485081443024504215468200596856154166796733104328931936425811703469834236800650377536926378523998779365598952872542505544818306190503088001414492791719870064129010906892044366720617071214556750642781175788005208358580555948701894858250862058954175538990972840699368952312950039284094039588959006453606180248596859661645076468682639990940662749078734864507275957116555695867241440444026449417133674620147591494074151588860323980680867874081759175729429634002463282790188227813801008943339782299684373847798661319641002976144122362818801020368629605452744863252814715350830393619343744324579469335312454402776282722021189001011396718271876896086109161332495994337412442717114595312335222784235473428933294333181901080711391722521923705349171266511280418884694980471031096900953828514799784255432183038797082350034041563694316934782062550145342833969484857950366924737687416980902705770717281823605137595914946015447980246293093636382868261354660923580048909688282851359903716175940179638765804080111254686771882509392218798443407302663164931230606550794590871245335193480039562082278462675873248519936749974489439248480812855547232980436833677333970729246009141163193413328479410981032301154122084347515826068290518861341140493036079757731328393010021653834252843276208013220560594802607803213260864703632092826309642397071718983388226829859566996065429850499532447789713672803779383767237970528704155001887555893897064779797606486182448205973842796482242648012351271868861414485638525670357991761962571711847336563701857900202911569247433776715331884246047935103043792013531654925410218605051622867192366308534168646910509211151427133121609380557418484478055838838022340857502105192377862171289116352151527548643465693309388003779118341937311212335151777989335761791820634410625361165719628455371359311385631079708822215495763637769593052442824430448613747397289643280319408667664639400967526918301072360377090938972132365585121926147785385095353314069314141744432948366483167910153486663249229248649234543378016180375478821454979207266759055423995154142223467058911371234920725638199087144630380020652119209854826946284906463403834051777532556824040697995435340592302807528043862408353621894873016096845512994324535546467956321500159048867396095814428189146722637437589384029396229154791907140084956045079346275576564967994178883698504506901215691948603343064003229240938240078297999581376607728973670740678778979738739516104757024284081979343420987340335339128800162445709055966420342520901257272897841294535622390952781082942081530566092943812028950212895142196827490880686944976640411466712913861811841720811709602088781653773282703605472710842327996389760921187036170230509342739575780543455742464802238283810129216982238558142858172809639354732569935366932645201454706597831764784123649584578978941863795942664519880721961130702058219861728513841772799447434535433122577116877992598824578596629239495495862162638026009804234987618184097829178978797848265643023548247449571685625342860575339934221603636283605555151408477470148626587025514120012860548871396508605996371265807106352892915044085945519896490267227325842775765809641868002244257071208479851564954267719365253758407582163827106769783144942013019558721415503070624144594316187643234458682299602367897102755038816231904215969483296971439029949079398976053287196656395165058616836131733325246554980263823363929380836975537439024640316360849497146315946095525087396489474775131553810047977659366148079935033476193285960539075537023158619087324127696662463783654114462006159376255510016509149456479340057900693822735986714362643276483240123913478641504738842781744823915721083728452220373763537128067760603881772786317391111452281003814207149996030509144525878205177226183701621854316893425848099234333642437971557660909546623749738398809605247065189340622134583847568499376653480280716156574283973273875738511340797794403744975683935537936565898827880833112631505872196978554893539020186087149577593704242870125534108739025638809751506435307307581263881984931265004123330830861880781091596912478861870420507478020846924109728318073587876753147179002815556508880852131822417493146125171402321798870453477169431773117829831407021402661114714136979656294954834709222050993729010833335333600804754738052012499673010827887329182981818556538862956951455138581216919881271887991082895285913738852902254829032122331077944398304805778362129082191887440620022661070558849072819616665219472656652824868553498831084493187237550629860941514954723433156155269070931118773461345259564818797690015534367688534514688114401046209813738870337617931524417545421245900332821188491925619166766760466519531416862802824093470824893919350068008461790850581367417699078478470508539826424720093075269384159764144945727920410931287539385436589107536350871286750973549169102048362743994536336408404550523852839895807797432066876004390885435036192338904731341107991638972990348166413655154203953260435414760345318873412433595095826156080227084353828282514505386037851108175222164830427683403558845409361490593171579790724246433676915550901000041901398876487907988804958346267798975738334463165166312772810383821647128640599307587852283759943990660344434762709602622581819473323719600605144387294246413969574931862226911977597477732157964249275493385794872066034161122020181017819341852125317012367415572864986065573889523030054706563848696032066313694659065292156174947074562216182825439756663905777136447325129936569764752347190769968789017824707608354375312994113649592984774504849688148409900860619986389076460277871564421065127497352850807209253101238236221574657553859603491260458103048155489571810478707539771768176798872779291966300277359159332709025939370887234084128926899842301912509549242923311037534886466336289047412403036408351024982666991637381769352288955154726001731608412598685015445317273154188997425729514472627125296023162894110060415324627495836171669504180536578197934524782344767281135976667241740603115837193837228192770276325445579773289909683310513927269331860830496148755826385993959779412926725248165696576756026799250829163018627531670279989834850229964503725106432488606909384338144466990549263009373391387397862484839017496066894389257106164264389071372284985107259756561214104665059856867073001440728106111846798566936311994411216441233235333683906235514764894115639310899264129954660497618849665005488233517109127273616826243447992229177407841484786786233119248707088072819432264107213369074279575436696264431878696859479855276265935291049500279184656937197448001419759611890806357043629873196059452036677212392752180665726645114096622527215047663290049130635763756309053047105849694063120611944246244253309607233532672423502753442320887217516803620112851145255758799270449483201885827106273051758377507983323038391309164365993618338956488321393841531990862657005806694537672187266495527319500284933976226215663229377399100260365417698616980034719040805644589134609828910743890126962531894776714671332521324454580731974464247131218524188467908742314643107534434768942843422113211564878060496687824264205896011887076628476572574797754411139013776209169801949375329229692643892964211951959435414293732752097629593019584092748302442041999970942803687079807528363647837518520109029091697402506384928575390892507344493489124369944168882363477108001347341328715797784530234246960682676170655857266396200849697410936216832125105593879906984402518449779130826884931486572374740873652029809048459265386173524388799325422450094461996597247868842551705538345075130942768736367032597224644933720112316463671661848290075629161599806374391710496753265829836081654029755952387328638629910658557608065196737493412487926409271428796599964716750864622111012115718100790967934592973816087947524194177996949716054139403946008023590408443833386244550151547176203283154729836904535839345630769115191941784362081971297065037624099172061503330895438010140638692528818254822839539002739212041387927728801303454915038013465998465237200455130585892340857659952265872029018606488924254029106848480948600269293250365620128585436011736261882326916017832803124748862553105507514870981259499772149907691576395718636317583182452393426794392921645111669346545364162244237463789650918768162497133203809524147638526211243392548022159188816887274715791878409928567976293973880983951344208530160475747948009656938879451776923525131343177658804910922403694297635185531625529472933050165719638651909098426631803601900324673160278563355574232221794225904944186972878499205815815424605068847676771942221054610794852958904286582416448555746097020458074696446369584609654674574237487783361725826176413415094902830850979355156045006642007284190318033911855369676519919332383014222555332682941759200229168001574300747257633163350632147720771652294643493385407595408023341325944705735414832920335514564683706123582985320671720228152643887309861145100542337819042938109703573814278303452365633501700390704921729029989202550288700070557639902767004641881104832422475770595483718820396431236180397263220376766690384086064650572029646304643050382784504541623108497433901993991624095292419972753302414652789943045284813962232259911587082302024022289853674355542281578486785797902287307342148249170932546092072085077603597783145696160341573314123721889166465720544504646523776822735596769801643522444973402567468724723687377709176262029699005879697411518464095459759259820344007518355439795397290667444838926441622530698828330170072838535730470951395864580104404734499371835201256436172990817349853032174618447602743629005201433899976389388332169379087886005215887897437459920397647638977085633711983587399621050562131772862500711896287418177408698109342990165395558045077208611947247881375903605865319369835653084566732235866551361771894611936912929670830310759886676857941293112459766185245987711422595187296484131993491333988005095644210028109700724337919574283563156873898267736641567233496525685108248311360086301796707527195289641866345212452245580185602707555721334288953606462536460316842818274299373976242689831538486787622359402377198389344732532449026014939383068793493011542603896051945244159908621533589116015636162956082432606442660085376445621673808610537458985838390538902650774938122652382871359171913359093247165649066713628785437206071882682115940918569559679771493283281216417380759140940977154798216620952437868502257580116002247060931711189171461988674264642421266589598578358544053673963755135921177518189437873356946785344560857398334632564649023704166015987779637577658284644436352823841793233580759721639208530078013233048030005201844153690712799566256101116013831588763141860278291398724556039242149008149513563056515734650196756089060240737089506693198968398641083098528212473476745692667038201940797767448042437306751072989220411487500624637305079277725926017735394650974925782625095054466701025192846623568105939963167204156233456301751258854138186846344649765818159422665296205019252891382779001191651921422215065600771891740129877428163713056392757937842948465497758139283301913926403429973969466368383264350663687197284563356560596640559551867793389481083114776162186414683253163620897896162708232526644739175936257339147999524151022985485758822445742803423047987720388052418570857904642414913514171430309270345547010363322897464058391121621434056918477654950168456461010043708978878753193338948073948887421599654629390839240767267989935242167694459071447062074924522737627411945745085227858803081573301543296333360680124461391982780013660226521596061430034343343946627196837973672649195823279979354625150094376972465229072772464018165088936773531404822901946895031718975804701448644004499302687040242965043486603429624210875960987511209042195528530309463774981192388571811193596239434394318203082336188083332272564425619446504764259263557172855453742579227932521856587317453717667266154911288111738083253831014814728515789817745684134601282561216212044429484921830778432896725531550919027111122899184590654337569064256046925495113239078028972520310393308604549225917636867214995314120893993212627681420964006532736902758323677504853230236473910566404993481993920789827778924719786790831128216955717322125621258225292761579308198970895119127022453154297677980366379976902091474484000271384572422904016484895777708771875881294537173996122705512462989855450430399943965299588689591317115257617425625704103186523185738476275284986682512320201770328852588698816301044766525021041705408892170837928359818269533902262179775156024850534442778597297251171293186638615937182754018677478069740197924808325230038561198650428804025324338662222767887785256405074224272318401645532013401631950415685106638588721501881924967693236866072855058967048461731175382300190460331182768066198045438524834369174200288359091739552030782690867567315791713847158243492976391094470958224953712927596693490268297527761338360955959590336762010291738153331825632739760836079199372198494903777772060846797144707581497534330613501065320212644494940049252804251109355691667428316467216551589459217190511624620634151413859433725597992011063634057986804948526398290323968603687588854098300590745786342024705585254740488330081939749673261809163244544771533587201782676926311379522363501455962740706012837442398501416871331483893434919710416712917510709118456950360608339720182887586104349795690212975951721390510104598873872259936079266598823154186391486912740536872501914878504748867053049096040427696289955221204932028961131248648881343461925246343188539024422732692743095831122586291044110665145529863288277916453500996936434172931096810628015960248531557920846787990986717682802548502986898367212806621699639004995273790420755972662123196445276347198013327925964759803170788614436874034277224203375145008348400117382432630376181130099678400888991429658808476722653427831949729840689829173873096420679628162761221669292064345888323481180408455525836022515232406533862542160215345732579138434869354235709309903981519826657285046855320921071168319833228128366616576367668651179553049802992854426978587523166273786560232117572697685802952263123372687138423202121758318520544376524745934710569743562131954290221625991101841142897938084182884311030808611459177806998215506471286774079714552361824991386466927666110130924657549229626622016705853256361635207814902799293833946118260317935912847365319009443486509037051649924515973820311754447009078256452843377152267259604024233622161536343985465758246523880757290319779924155391095411357203320424681723580987555891623349149606387695551568016561442426001656795104050755904746565954015877343403760996540340641193310113302636993281514989257576545265749728803992945365771260583622914890340145179133280013555173660503476415319285286153770360501514205440054472673479277305381236929541465391195508787677931322798558366402229411764575833388641019868218823246676749581949197966210264455718130367446274017853533595915769741284783840622680533138192878442405215750194842821161775148841241358687480731212125687265415987069082401232459713917975061333137153098176836322581409229320983264247950402976871376763721697017223087384806243651769047269854344017991490682123757837951251718711890600964431424868843821217613350751840207733598505148501312062338558182901191831057723770186834141354544375588068941776406403236476724129927615126588640278137421307733987940527780664213663307344482250022892628243038401242899491879423568385973424376411464213932309671427719779507547427102226393084858356846785557383991477879678308806020056947988133141680033845012392980528673441332496004264957887159107966820122748243968342179720836611049076054605771709397782595597664207206690624476288224889092761405073555868599676584450397432571033188961595415173022532481245780490674626201830379292386366767153258847816104418215341588034125907940257093172541583213554848459612656798219344534884496963014389838316709147787322503776926014806166080580638012678309377289805920101194931716475974786286337768206336474427682109598241477170908068920479962294296826469768369375454597402389102531087774545739348595839698934062252797128780370453518459153962716484191743198891882450606401239664657441224771810021421427694416284621443524809824914570289686380583766723328283716813414626129049446995612704187019499815520925932456739949129789280349160985149573607193043359142593713767218825621848946232506194990349186235077170003872360981996300850646473122215524070189955875936014897430017595452662773497910403902810536731966104301641230204070567395191019947015659175584319891565187535001497649655536917717770109758495027861692101610494641306189760011681252463535863124989273786402839148995780447747076923469550433398934917647531002327859159697543941741565705594185697825699421309735192958648225300652922392651573374628775680639892473435340686914539179656592495527152113669630464550192999737411172235639703476940728437783884962228759086541308719686793788977250075739562295596105026105463974011311568088539815224043854044724210095221152068619489061222018398020346717742980193439719997396383046739666079490126394918532254019605800900273374897445122171599648557257939791901989755168854774542666325422109405406724377087406588655237821005320527093832919852938195425058307935175997765210769744130588954853665477302828654915052129289331656057929150806316288147897810911158597141201634421157235015338949527204383194076508031467631599008080703102869207348827030697746439323190647933728173317054901909034469666500837248420949636470749213975297589101256936527902662345384021647919180099540459383789039189098699791206515462754699858137238282440535329952877829592729180120841169494384582084858402475399818070898069840771335059347685986590115286188756541221634026464198895186109597602990634192313385974531260489761474053222907649420082907486683674013454840455294239420018636027739617491029688121729848829897464882262376982265471189762610776522639246135949258490040123598065755640422990757612461240565664919986020604498203626793830028635033574879376808903679862727928241161543286310079826787455551354022047436019638007679990062131344464424989177048600382696789161148094348554739623957621828858143610250920740318008315569466445644747587074158486219516243352003037206332019357460503944717507129672236140836570933882375362634484840065330212061859960189217352232967046487378339788138325452169735713620366235156010206760309083986641305499634381259658406390433230181931194986670562380273941395285604797765290493018251057677286359057834550382480134239506901022677800289828298047454966764131947121530498096414865879299213015862851435276304107819477320543165105894507715686741221703219956220851096295220416829126505602706295304863434735991014021271034383369953821460797999383089719657774957056460294894143216249531992713357383965983600992514128457234778194464929047734711948405117162540683042744760118401531059975495163680358399117830055090866789747691890620118081684920106495876784107280477914091872495342883744800952657877732867031956066523317550194628203726287477774365556302025575478903936325483523979200160209991822248318047919359446045299346538470793929179979471375906495896533935181235869932727600871664598064617114263198393019656884122091543198340431092471148345343229937820333554131511997553310397720950753947035387280117585393835231052013143595644158083242608057598122430397295692400468509379447872936192264342436892260787434991728290068941100996538889542760725399427806461526786670281384232271567470140811350224949345090961600091403487776707326461354362516102649339417537812106434583428667299655208003120015963959045002041259622482257390125584161537295504587570310191683806960493843134457687977140511277910518927061903940606921425549834386585208421368788263951656359820211850528580138717571774483286506265221017550025841965459762758641605278421921160441927558472826925673602038983358351533963857414589145529242819726247501025965265224739225060820678330618331316735335386725130810611718515625638145359764528325324432072455135004325219920496844723342222131290652484676750645440830839946771772563166831268708365044305101302689723137792733471386415612621209883132679158029562448819295504561348447847422914248327319071287601037675766588453073611587084049014476152109708965222514439227172972164440679358888102021422888967615526309930695506827350755339071355668797227588294099146678718609701032241102645640232352069775513884775112171160018352776378658235529016788343542392359004424549495385769113155869887674092630423524012529826754536881478788278271692235907397996864369781547959748776750812241735000854789564227321125059981125812927879630740844318442589136330727543657449152073353507756871863085112139455346836384766348117259148136929029530458388542815640372994703373643170966478021603485064716175100449582736763130507569119784315131545406437943901845724372514669458649291276068714386888873769578039811385523035163314267657157702150173456812360200578408860247460779736390900901574730237127184901511006475060566559705550685774550025137554123038527762407747868797153256662932158629942405766569010334079675451764308654261274920472403559539412423462138513333113238682371023551688589957311365752658779033343847393396724403476733866692756716040403574390856110081094677087232345130275013208758211401027108504949515600596541977750048508857363060712683865469991975399266464861490154030921044812440997342030924682970842099332385225982796262286234088510284827246155779884512174322144794117498916526840324169703661563390498162141835651424549119151734719353258502868522742273218942797811720072629632874215680301442241163345810989571468039602457369714848997082854821884910428174570163591742680230040593436570342505820186610119885895333811898894300170253294699038351477751077919438756575759905502041701576027114501344677352358856844786123372118120447480044224058082821681880492247419587791701320352441159675972624086495428541088357237694337186102506757242302144265385110991229675641002123195802776529352668776350231386640212924607028289350510863911060430226563739516606448337212686504570650604806667629529208871070698642261252410681636622652835282007278913678212443802075642843843175863872543813765991150713992328620401045895049805647154812181186323042614395479449926739627075015076613911907146594029019752409262289403952856206591206013802386629644010831686668656092954027203389495128171123756491828688299234054653267144158836265919318627747400723926529949581106881486575853450005674519284545164166206528945496542110309131901609862405172074876805639500700330884971494715880070158633964503641151069358329408930564297415388968919685639037140337002690072358565382877116514126868635528050362949772724589686503684140150646535580544883130232494543862495730973954370762812978825889710797954268817875313109281032349109373492179388678927876849635639114830172343429509556575465783002126368126241293086324537145973828179641902817770415552370687181613600797400432549662831149769412997735680529693857260376361184363998305432679816794732958635337748070690111976863483423918315127907024341184887096968074649238011867498042428815906835170466998069688633779364348753604065828760758740515714348811749326828343289894159321153289563759105565254008541374034882675018788323564696037555113048512144888660448281955434384430348889183996889682722671654600315262591476673086739855353500349906658620656934269065937702959471723419410024217805520756063800277146622791885014454070319526744912273375543595950316845423895680807249794049958219759794004103349144591982257153459877023066820732658289017850004840870660966708840631003515655381033452760272586403670727767604563999697461188389886335302308434051152633301710023552826877209532047923811279790808325793849984907209440600696235490816726219996218713758129672120211621120200612477116619331799418833563031333644362852274761451852010448091237308665242498716702068367488939956654931136335876497170048493944792485546839948821200363328470414336206792240420959098164405512614709759000631580775489137111311279137867609645096688621755656902411536682164486489156951050846645838935146985747263082583388254870473967396887017497280771414560311003567215321555069548009260339586505926615818700614747116756308116142188760599012578738426732799038591964774651055195924509610726995508360369109191603458812306783578950828538832056341031907490640937870732928854935313504208900692987836675150221598234463115994582569082824692272088337522380658503138266383464591160491045859431036992780070847386128425173412819846470554714764917965406763394545638385126321116416992895070584141194485727960434977402374116808582878015279287384875553227077001372495874575432656513761201806930580213655737005002872153224399804074009882534037714009418485189580087506107507889538401450313141051961101262009433812561037267874823258802581844449940051464476482252864229048301998956005822329794296451360533254280846802410164044085182383917913297821402548781657373731785985372244715377136235557682027863434404287851524665281411524670352754087868757636310930978310126195937905306254369317699341653154227065958637075740937826797812330110197263649378454468324711541222454368732628960193174995596119673769714427064924280579140897930205406319909971260494547471789794902618978822169052411755061299370158931795170516906227309667393060247606327486061905134465640700156652729227795998383012301304556395668363769821358910774325816219097328173781467000639528222567253044313306960861222792037901286879328533130993775723225338995985045099304322066758278979873388998624942500861696978259869180130634520807897516701688457299833072675388996957599148667532360716059341406378654247261356534660423008003305556206571867264829709773088344903991440871099094636942713442874579405833678340703889909385354329613724750137087431893862157349007226075084894922027493244200966527804242278137627594942061806788310326380667847343063019037728749347144123796799922799424019184837178562482606673731719304455080857253226529519096624325813670988929196384644196211485516395844915795435362963990203490807579752566252726110033113331245004053229779602303763259152026146141928966176928422184844964207804220706209579001186458242194123835888431790625350064419767618198471935196428351464611002192315045726871584472809386974350429769739668077419488331511451487124323773850654057861121173256912799993991429837552351607175364161795703934115046343807570604391979787101345356354103249966736570839336770528791674938311156546690903285393763164777291642587753616160733905180045479817118028057365411724043586675085575104077240930063686423869696852760815068746959498655928642133470027615631832679220033126567388726336683819629664795558249568401323587530775490220105796233756514010146606825066037770596033527950357162677676069291160423598172120706592013075915193695510359387126979621151935282918028471535994213821768392038446815901330170949265085008096905565393742855340888791003916847680068486318214127722104867597261842242760467379547313742032496885322934475243732125325793566100074494567107215403401032696996726662500620448343460625318564164070134551751577985822117897329119039130782018853387998904757575121701324463618332884006539517901930514038620695020039938561772589714022794918799366675094974142103194614275508282880977533585125388991687161224094617960557567738129163045879815778710358750138233623168497341358350795705037190764400294305740810744020157463449789951018077480060924574052358907578357776936271110563111000050721383874738845978082359523166933415724615650161588156016284129378642976098132429066379245611401013226986478271707152848504203992814069759144564345073510215672656929457513266642522700689978919329700685334770746000550196452288598497431566494389918875605419511228983904602898189337058876475534191977522954951464750723065919493680769597174106524773116124160545420461810815554860499424219329168207181154298110425529122976154717815558996800379822825076037216754659174563347413845817731460855850001010870975853607307840123125407483495898168797767909988187203277129291024742780643444882273764089823155098132712092804600675938762652607561150569347853550526619955463108075102031329316963167281109564757605695236290645500928773680669638056455827544688153533375029497820291479581247116109591750208269082788097566467223912108525885006986270369455257138666261845180358652007181468292690936646591839099945388192177375328105262174993008727668946498704819687884345728516541992601232664510377835073638979819103383826282387420091706515657619716858430654714867885789120219616859255258906500414018411743006086014092838841422514881176738165877830124242623450022395507867283082938959795150479036502988994987116418668408297586646011719336641250979658820303202776444108334435927339268454524746682338662699794632779455194484735510650682562760803323169816835046469755377793526098064280644917879867174830909997384400500924741753745325913311645480743783950212371064603147336647591176180892773464457783052096111312004176232370410978833316057959810470191158069710797059188134508006471357733000019454210713315775977284669873269326974775746443675334962851378205382195572564623277426022934409769270420416345822384500550826626046833704993190634569931621105738989744788565244949575184539496817743084962732106609001653236523591444149112751469131646399014992643626306944149831834179216003011105769691457277585791622550632803835061141345497240950602252308483628749599593479108373614932256547616783570289115004623452601575414651726818281457987547892883571849171311236019448250354512762509828805254270685197691503900514457842147177214218115101453679430730138195477473097182028856692984863939769105396699107583047214607719925940967714166840123136575492970661083509460706906657637848030203699716388421139052457443618849487912377494977087160989839746728630592782701486633208593083456336332511771821635990709116486426891511587503020645522576518032278113724557385414574957339629876119472927763695811471940847655385578576924610035885125262351742853179471737489597125260483907801802749246229022632284434005363749885116609297515595624899841935339566108219812527467000763539499417191550039790270143951350774937129282900002422060125650284619113850213176441184017841025571444247408186772774191641080288222381512518840617115331261629785882703691095111865034406907636622987163045164907231255761809474503231839044937214042223258763037528202063289795799120504670253181597352177985263151693595011150958560248663828253272942751336228613520028923236494640992348487760112229450510085125752494667398850407843869164431426933240870047696822192211985133379744877118682134698993840522896837836577195768834407910642203867109017624381899169232661398459643025754134911414420071422971643507341047318951086508803989913417011559667456267545339947331452433201138231604176156300664044653959287984662632365454588875599739983798016910577521538412623053158862461589089984101696917370882961062015125766384341567626413780020073397929717129158982883535164033055857370290718702182068400043281210834828299583562802750954838167445986753229886658139100376753091372803429878390219415649263329913610980024720440010444446167070760193846244177153816304416942271319618907845483195492333013385191932641529786609536064353225685263297742151452460078536988087689049502856825350295842987003334814986278566321464963689046815270954679461840281035892509959707586272193546816621027756930945832997529606935565086306477396168709203003999015858309735259167230216019021174245899889780960418604900945529661205657091240331045204408379647661262139601515855887713447057091108837490676159384917976180006264845539931716452921365593658837621685275878511560710424864691642809685613512390808987051575753266685987245623630982182626702995336594717629557206189334675704150294502281535776465397869831089688426818178746585842744685564066754390476176106937553555886808749998684770985819148725081701684304033116883883957059388591782700055417148041045779116639650299548488399849009192408029647836164714871642293123366818755504262157611081716189557486185750828284566698263841522967227378855384482546905133915787851425325554534807594323451443192593862199544457494166075460996758193816167966334875954204737580327247221497459116139483362393945707618499236153406065606304647975161320175047359359067422878473781651074877940234770990697750742075733105537865354506074067705801404813632105828813095773181077255186601749654323718722394105231305295314501736673336157461432392630389993906258433936597565440930445264799646984243668319449303050959154124538527896766775892278483348930712061231586666752083643043950509803565702044339536263061198642226724189148109761522224142724318302182749682737552425750196402771033158300323691346818753724318472665474902611544894331760241518652467776345532476024110731978362481403303568513622613173690099583621974309585465867666757995641450750360250301198066711656260320276005760634342128457717853587804563165729237938591875192519505361032837758084258324735406402569994294187938032679454618030541307435940490567070758930702652480062677576695997506081751361868330278681975001811667302095376943136449366168499239286664642007125359172314452864195939478176830840830054697705325936543755392420610426780245733489744587891801629857771658768010475604583124464634300974805033613498451253467236347517808621420052956469088681042763074546943391798995238770243859730434192920133594684451565552083134516546437231793829160878960485007689738771990632396636299800127539303838772458973778961990754484616524794678643234310381870146985095885983957345288317028257124859966587256365845245367348360797906306844520945711516056091560565871285285063788509362688901714568399087142204502401504267816375887496866203734122883631268145180851308254965709114814169459667993651581572859481953543188968267113331213290730409247915743069602724777658987873027304116321418755102585200698544984994298700775410723014268467457562032545506484476539385885511490625686767158341739463752390547871733661062869776098907361358877546081950405659614338322799061720587099785647882932061945113286741108328227274486827645646431924326112369869823947362784251141825637758282622855890677046290645690563770888798326796586770652895388081605209061909171906996778528203313230364925428308101767591047509695660956438802477040587526624394144264235117806036010115348868256967851172942430676325695926061794114333894147877194725233686214744235981443034705078111000935860462742345704939611739907822835629654401782731571423260426968260472791534297682364837704035279314587354356912359680084872587410482172546862548433686917810404501252220647662603189443915277470293931954424196809438900091034931356659893765585752566943382485030405230948535265059241686301258244596970591396644262014407258322342413475854071967650577094648621549156979364512163273544228640016229174110054131245625977898825130784998269812638657514244634354276090622616605327870941387248768049974700271636354013905875868808538883996722579837114974896470946577307236814110594968191533987510406444187481072231751222256050536349548368362510379663127555962576381117552448409952143975539369070456967817301829551031605050356658320012743272769476039230653031704429450059703974696382988894144511293246236829199723671478269011193976716939830095168752443194914083427161375792241460739952802589553491538718781883415831727144263181346322159725140883563053799690019835610421242661873846638250270510916528670476819444544147298107516835991375892090930314156873652029579132196333283996479014560360994816644212396596431908131640220813550219907734865307718079304726376855062218187136189060534399992678007464952249391489579676224421706352221908432925794851837392820085988655461663318769630821851033721387761952477246328341692474523177470955656596016541136944224528900234588505308923258785113817248315081927220979032854411335840084749050098109834150057645231502576544716957963750506954923886316925502304324045835177305663183435450365727503702537284308605406308825066496647168038484780357660490904656250304930700281276112892043678392911624733326753477415246730052164183747399356914221586162734395962327490970308106269335689317625745632100505144793231169712388104644720926566487955797405964707460083831984333588768012543089157814344923973828804465656013362857165512131505062038050080864051426270818717330843047656344714039448035624456866114747640609217700511708939695166665488553724458521650353997894539255386202759848583237259122826446225239062052539284843924727663141220959837015832822853950856122969437840393657744511594919750341757733840340494734895291801495932011833789097979465217101751155807327786204665808993444077199189023373927619288093065176800785084815253498824609765674032301644930878697958596719962406373007180623022255009580710667285045547287440686093796731242966853407939567818613890436812440535519895481043812287236299915784695394063188482225399089688925106642700548185362420085081257527144602886157599496588510041159565074856541304197601651379224697381409588461255717086882390076281203720771665840711216587183129473070596776498541077840805704502918428743675941254540412052799978784589578525250016505172203077093811513696377944744745007897719459588119692291469330507883794904387831565085198368336809540010576877826058592744120123341021498412595323172991622197570788504952172153880497849496818937901041881918316264571812254375097497575444180180911172305682922903607744809698790856546357978061311515090730055267806350946054068213165809016367041132155199802321614676010011078935934043833476946713730781272209718807094913927225949642066289104872816971632337884811363122623050023181984247104250781194686376790354833269703831513260205422261820852012277578892966799848543829117628448199929543571303304357684663841097217018737526277052074221316834147377374034067108043663795780979193864982792761506878054318939546766281902683659516324081458763356505575539573424899207398706907263035407195329509779383305973854273708540888710856995892100768990780951287637903726773601350499219556143687069384702612268180136670765575088123645668335776851668445911230048395334391170214500722121364819449514093506767228042705133965205423906009570186155813866728461874103945578486026654795794924269045546323943562438090523493000351200209321970538883544874625019103387110369242654697379504100020699232822802289763448607970710533838055471221154497098011777592230194021279761010856967681163956517021946113820917182321357665765929856345410639251646393024558586123783669247904312476225044601369173172301547635165903248607552143239568916782790940145228695823102543280074700948721835664606697724751141085764562775751707978428039373489861463073089590937733345993694557505042350873398109329659062005385732333078007482438803310563186706119670930603902628386831093519574674059810065537710739788383485757672295471897826075013620215952622453252918015325057559302247300704720302691657163938092135458953499305957292525561412337859688303626993093424305220096455973149715022797042983409959156543853442854288390544300131618625121810834681506873227773989296306709123613655513892136667648695795697429473042540889514632544126815050339424439875682462693270486339664081626377588280444366099027533989923308191974509919166187215534862326630515928864807141332084135904594316964615777954901457836544965452700446858786800622194870387745012548010725014583135661007232986111643927802313969480841514394744360616859287128141710991680623810207488680707216832056038559860660386229550518891426774457948058372717466074250177508003515969619064219659786678631477210019642727401717072773824708712860915974217625323212912879663827719717168439382564821605386697484050602979579284673854949927063125057097249683098561227244486909343860764761448994897988698753330557680725627128520293722900696779017990465580504878993632033892159377913396708758519273694849268233090298791105311286141548485593419130811953992817853420741846189314682177813273436801106605661096807349637235714895084520665869667346184248231972975850645835559004206611209602362833334247056131912389331115099732007124434872980275206812514215673158864019046666251353092691307492782753603256600107598378552135863797559225275912147380621236070057852552321101938274487332481475155182340755022580778353339309057907361201839348709050555887651235684432930646177506479687546027280997318527511827288657646829414618764389027262722039457240931722429036356273252232148199833224014179093452662399834403136699788784808362072115862882068424301828584621769672515655840775028709358994685812321550231463522435334208836708582291260539104773029596981729668355473654226518636976745939372146296721559193204357482876341677743901444402571867269381748282315082087269632649367620662380288605325165522290356480258064821835326322770307311745131512974457237907419193706009511696292031821548061995890646783962437903596591369832574135945848864695685737222820371165007442004115763029241215533287143294955759230219076946883584756307733743769512970620375860895873576035909537033412816289188312200390648755970808754978635962269967129532824782200012192827173731605318369328394823932753325358895065218095137934206866250455298571349757882933640770977453362979391706780827877652452765085665983424831489807125308639079076389937178396569543644513880322830176140991313725271508164320405853032682229698538029564956110425418012815370799857199854150895485662333998528626892772689871817386220437545784559694701926427716453366680301191974304553631160295820999505943048946375913698179180151312067346165904214239076746196353453596761654347834019045647572386378445255657072056218901225013209813071998788350413972156723988476131416786891444382143342980776100648476058105320053155861862208459799930068863833492043629274936644593372722396789762642423899292090766481176562655285250398179578279173553375727487700870044380724058888975453386703948638521729491926882174523714383495606995554654857676391929080304580247844377061456115366890580585376945311546732478230085428350520728316713694682734665678282665863324081417817041373277787624297359380711553054324055687223016141545777455088983717938360268595301123629978596711975883550750738017274558207625951805425718949663922745708024550957034684894179909478577144064746834357337472749353559311305526688652443875388836021740507796612795525420445074615468400979885730261143872062049049813292287070158829591854487761050966204997664391554467639269844854041628659382243463961215262962735193003071227142527471068472870756828874814814336442134749733549378307323127850189371269961406150496654902613826867054537602142103895845468445864308908985275712765743048846821362978564021523115938972988255322191942459857782705826567872585259994432297726041755427232561670717615694890511840686744440608413944429723876679921328893489882427086638972618236344180789285010351906282454140472921730658623532177759367678978590959116290340949921292468593882401800577901735105478124184425415218924635499566634603699290871549780089323767029172708781383486382639251418328980174770894011796037395507662446378729554688217143713860166419179586954161888131138373239222142560364857087078828723226979717456834230462413122267975300272859827358646997189039635545728896792388855156150934763957550067803590442129929261855785022514643211868001956751392656833386146603187933944447283357365486755846943890387016541674678428603696886844377082601580431702662678156508874976522899805702614677057194305774497400823580437920231464354802736912961856295251868533839672367690688826404586282341716463356672350252136800974328817520248105622334190249505921069027460037201274663201040811068925651345633868426900736669889653118990065672677498920694091786796787486967702883057837937272673414684762948797608980416136370303167984373664800226252852694800190055695126434749317837364666153246335302484858701255577031083745628249951195864928219608585645193980049669174872173545914459048972377212533169341591141056320459652822273694457524653172388181159697895178545825464175258835614494524545095873867928823696061546843066632369872833317086528429512064556233748577262919856230448398118940924367349331848815173608893104695743454057662721754243152589468660625905658481912105257508648122162109658541020146462488905155885005107277389983394521965202493771189277795426885881830406562721428853230807644980587214039273696805416936830242668469018638137670061739193107005047584731701444624901936861008176532727560368008730370956268415158694341584929593525795621908778493394447567512333176318167125497822655414076379508921062503032164658400322911343296957658359074102405378669507044575089132444179310269827564936974236266340473255878556889011299027342443522369106707054879141195820450670036789110633878255443354700986948488867066234109025423156412599649662267598019481565621724805357130335792003137540237865835624402263891613785354366816550958728898052999767096757660661492302389717081578816332561433080822967102775338311071749305818613142001103857581290904196853193525262222177137898571802759218120827996753000656679902745324014224981264838393924345967669012639309068032986279913218330368635003341336983351514772678624763498035505605622039256075214661615486159028791915932256257767436723745174696973391264693226912956564178857679691327088672695834559396154698614697837808089341128513284519394699302564722312212190924425246229875426882820924618683578632269309566621301622694752035288290638726887094845298297276495779431961086705586773595381634108748591185914200302765404318403391416767987003192496290769739671339663971796118056381715552975731969341250755852207779866654694013027909353543424538162565178365090355730462233503919428091190891364133565798431794240733643301111500629687408734671740156702757333303454369801565606855504093328893560207510002666751489975433727468671536291271419945394208400852174816556879754781602951820853180104967734810767976943741138545347589664792946665899407898102260894922638990334396650126353422798783953828988990973311991560569241762419386573757583387151815220226863850662052098536366056476258597839081850968736261950343652382507288388048297258704590989755506524472439436907561044188045399082424915284758533514423287264913953703131405626092682386419565086251280347873011722340867154940446922462382672896111795797613075415832307018645236474286933353377637278601861574153800711639726265430239496874353780050482119856409197253326303321743406323795328912156373599511627992221031609129689163263096646380452136006207093868920387474662224389432240880935776028502443670794873876715692821809602774721732292681487685785434007710236082968187349746792301833180154020231255847144562916571174620385156477091267948377624489307971401340888143698842878580263884265339812055293118492329960399999591367229235380528714483477390037314020625552606853890025054041625361599333664308253290248101324514601839968461126756452520868780203238573868506264907877800648382145085055825565062914410259246434845773651095584044670230542557460101883637711570467748240441263437040158127267497405406960228318820528395269740080821216802415623151137994680636243765992910430181703202704496507700505917708556105791355718191298638642040837836998063089609992094535996306564985741942171303185209856856640517394572566863836845477481617772781999620042397661815743034185327115136705848153328202764552196451526172610223636295029802295115625489656852331511340373866044061350051044037070778758159924665070764321791461176850881757009091306998614680590529823996400747388185865573959043899061183979056733942122637291533029650545843028482890669466759584813391264301509226368699553777636045292035286503295936967093276539123983245786277599375396360073400713900191992454255268948854619094665243107058024692642367441135657014835507762060446989110396409947997934795143136701791456852053268004454818128781074161018071372341136328861150535664311748714503909540534778889187354287312682277966382849086039585571040230178178031631051521440893736338203437405056722525732053265032099738812371560927080860948495963149313920196664204459516493309425439872700385184616403807154716339526360664009644210684663303114859929563703986125843139558802242308518108276166156212467634029900955168686680123670242182290554081275223007323309362011927341537959880716213259756891432511727446281161253289323388923570565572257694289054382780122343564145915171011737047306672075975378759235764407315610775047681406797692177916966233061377377655488259685274978323754451690913413800478286405534408440673571781925351331678591751839315331221976321816019065982930850136267993406239295009899677665425523014222128749599562485780009710955124156680457425533429886172138874463718008922152000189440805220297820072212726745612862115097316055833448608927428939551501438994380024473795528435246723519022114480811569288343184619124638604070337436089383725158881722120974708454016650969102218848553646129786824637722588550440784628680505292474916302461602031463368980433906877318489473529985747479181182374051391942844015272135524445666970410033833732387345732451799758229958056256720355311276997536237572634207229463400307646159740495001996899789584012080900410782148683656219836803449491927060066104244114578335793524482210061336909946201356342094111175781879643684753739187528459950820871323930277365735703469148148694846315245914908299955700468344664102784364856539952563088752003313005148736696235480327106442315041994514267079806768104259662829299993848324150299215834798789653611507123845032855302232247106648269371917348422291959856387279853287289503786014677641495044941446679829477838761537214699488842088889479191452972803791386560957786938454074895973560015561984798471340551091479575423285941121130727681282084427961482646226174236454717010960137122550234814844239882446623461033840664855351080809995423550942554689240186109417193132449605240151174303004690855188151080591082388926875170703235513262917146875318038030371942399254286467697315991313486527243984763594665538786651917242868819270932205322012101203992096306037070131148160463128033050473770014370099984954968884966837639804783763844722526760687205197030209010547952051540119686942691527361303919754349198966872277450793956746149156565125193493292553272191735794954109803845192740472519048500526330582821172550365273263569437877506698789489057404171719298370262530945069256908473013842221622622497013847091006037921184914530477509124952998712028277725314292375605709194573741026512216097915207150014895660583443746288777793038959038092374961761061742481021354645337865819331265358918512187312991667484488258111554578838433791218592300688921207294503037477159969235826170856605443863346187015219676555144800756614843056589908856785408295441886526918726336203113177283776581545209412416296146028900944228619772853091096056689686534927820061523588697450984703693155748817709758902732967134078241306036584795561015700232581204093739341836331817365933827255403282729050190647899554105701104597924762570273881231990779786232053775145306547464812600732410257906289004940880468530204763028992774052427325000472848084248902854408793972991673653025498046056467858753492967719215244390586741918129639629511509072196535332313500972171325101565424654063442533499858416086420148590663386621389378605886461393097419622854568607614563206769396174959302230333731795455780697483742781216894096700347820898418236624048203505789047019410129403017809285848975336984691019330915530485225781680386347458646794792554207930219752504465377486174689689700185967870728157026922221145156555244573436335601102003380577924966549984822126482114940372364189643012050868959921214318192864507016754417358166344108291985272757084887093166161326080295097954038052894220328516560382842405647475466107553990820634648512243173032690440162955299634966750964012582974244348925263090166357972989343515391135980506359468217554474000885546565614256017714912070631050593406039175244708291558298015144439642277056337570625337558770329816671109594901136132601542310987280583066530363268746091605811200766015882454413897084358224477207881117413400845752033932004711747757928972681635641676619993948453556406719397174502284083483572940638086244234198672800878817366210740741245309069388131348885234084770759614485953198879834180663480806601285639813684320025532989308038672552381720212354142790444943169754084426097455750794928410832387790765534990658563979733129861261745684536829429447152161995661786142902722306327181703738583546514420692204679863792249507979088086466942276893688358896741272045476021889804004856276091559195064838643264716657175789599694802611942329518240319731668887684952261943516882808236919823377898013129840548934298117738355267184690937300877122784408445724942264837721910762267247129837295412241504877019522262842620210174235547141919730386961278473089031389630162054530081599871025234020758635769923636913439315962898530458058322068173459050392078325951326262598845654247949498555602326777153167880043574003737209784166686584198874713383399131383268743376040906522805481538553511401884289184210097411110772448347253301340679133533027757435487498791505013148825368008075708176034901666794381191296899068374267925867223417619951444934958411671943952925770285683085108233756637177997638445212556844271059558902920757251251550048685922417770842072906999534234433447763169591031656465778013769309843199903407210597908906495150784812774599263473874259284219920878667414753480030969934710644731531646218749343198311798664964259032526400628020195028109762473743036669839522173945560942719558974270173264059810124298466433018269202638202256035426548479237139381822574782134809196085375252351186858327247489852597037763444424668333010815651941732906592210565735508873697348226609839845470866327740705373923857395498137400134879123564221544416423937486958666450585495465495008267862327982904771126742537835444466132789441859624089503637838229490883213990476128300429959641163120578565775949435394280975847337525771275537727957330499074917295985792087220747026501272579240690136994703935016527562447477931155197080494216078027235271196194023518917357164525394107192870645325982269847509321608397174566470222221493791977088334894705893882549791785744668119784255708612083546803839623086187104458620395946231804663915893096251115585084148651050501132021549880881875174256467397634558897248317446208561452336526118527914811983051323616013126547373938465178001385339170635815313647681857433796749689188317926987140453036936694083412367943117751112805908952494694086797133739982860187158241813550833407224091149112419779128497110164600146059905730565378614477641872104051988560692542579193097277879380257406634372875990791778679944590784081877552171003960150804764495072411409906284450328330999468628242958789547870010288514279686517154024838294332387058683037894366252264348511971075853556491321165767727883386308148694121406579651809411408936993355010459670579199107585842454253499425231856558191137927876692544121304214042832264008657588645131808613180188073144818942647833590481373978441702491828947940594936403511858528006817129897442485159012605035602721052753093536721823890039864389252612027849489719580584917702465396139864508191224324053766393904272779133105412856221420270813007623799418413503921896767421530069591994029863199168775382804439630072330839338572298679487780476017801955621913845607043739943591618317489889598287854258700898052317054317434953297233006655033406697044755924080426198448070311592132401699010290744700638894245472205617433991481360792024591828346328545004232910028990743917323710422774799956028711991833116063683985833017025657070201243228988057370736943672524705243689412788143836163310071104711089577909575568730378978832441429580209472390010869567029774739190968310376450920292866869909397931938123291500855417934633493321025617153553200854264044252109583880824092705665732627578745727375851875821019953356856757981710854730300151771567692139857989085400955008695883401451396673066195485013180802904285831253803944188586634789691789136336933409857912868558147697824011378725928989293489488145072293341912360453073226916013598288765512153734240489793744280534672191362781396542821743916862350034595220373012831469239000288112885296385960719848913563830167173230264476649769330945996521012944944498398469243825457367562037085705228906719776537200812133950841910173765468317023299828822661745617831032582647544092618987112342779457187720958962482980761248017323063935152272260782851049880431801808319562697439492719199331613273678310025200769632430874276459357134798042134122956962261723616933976860016574089811764545263421496025812131587148019999639588094008056283728207858733610232193601733704487735532596590280110476349731796721009953549792792064046294821715193818026919283134863807604407720934404127284403487333675109201390153713008883675074476591846849040890758570847784914286388141892055716883619751956027506957069178672288920017113705822491442944758864659436693370656114621989253309039577697488962858343511481773419362931945566237367354277376516431625021753776717673162314626453986483345118369738995805288071262357936614894338629767295486952812605365738300700176147864673865877656343089136047769872807592421622132794884402454933336680738655627573157649956327852559927315283426068797873534906252263411633412869852511329572736398561609341581592350017641504785745589816549196604241663322777145368796762286389314661827815713000314494121039713479293402300327206502491642680133306748819538899546330989254723145468647282127165524222723471589193634326798201362693959703344032617271055867683076733297532099264925687610596496455873829271596756213610834834818795331493080318502571219109933350287972865567983853101737475835477139732204614630488569886549148711407612894510250879773796792671331239454217177684376405488335350843017203133168895720875911012091051116332890622591170661421072657585893455424784190779348044711895807481637013863240858716148852141745349903650207071913222215970503597645286428681212047194079587792627861198079884918816470515992335988200143524531743051271043421270622974329343546396369982328978541657812709998877163297483217931513629445968314208018587491804363957353192810575389897327120826215250579844865375440731469268092479521583811068545147819417681295734578529360981910162751135915463420980291043361918049005538832003493454258020831700735414922022011798555855042305705903511174678886774058027371625718838131597736031890737531106506804624826817519434262489269388869378619714392965510541734678191378686507839598432419763943997829296113741606703899690332768657036857459147095510419485822694083100765563052063227058313477606271030827343867184616978492914351288377281532378395292097335613588212408042367318162134602239025123097230852923931466699586199596614647884260042070048920672381584609709758383928919364848880419992848607011700203500535506369983372505102114799688395439335735582496192164586796876057385424875081063225521112701912796106304868672717873032063206267323898218834774540195504987111908951720180285416700775877984144679978251484449931813813881008139664082461993367762912038980260044776831021096585755232287284194154062910232305483088133797705131988331375842504744834440037782813325083382778354270640438431072618084413767981263315681937931912609095590386366704049651036743552209054036026503112599418341018723407455571761983400655928740378308071708891795532368483110583250967825756120225612203783933770139369320421842962092507989806669068908566391060005096396583432407503592883475911146275302960346474062572710596067666318347309136329575309410677269783128219972587021424042029078172922629979769171269643031679062408179200269616768775853375784487061767289913341842957970466508662310344473359090409023023227968181333993004226612246514531819531134409042654332135369935251815502309674591420038709913283529588793657491150685437742487826381668170727522116931812662245837946218527611916300755650714262072194847040324891176029717401829796895479113038584699038676678352276417224536408077189785659920728197096226972994919342131870772764750796536928399297464390422431385554894347968319889116713730591943131640056104553304828665834044706633825444286827149160572386743709350310770104951525705587423497729308598276194439113227443367346147111445970001995080632792921667892974035841758921942434535690980787325012194414878810931192788681358962416160038112642132603663368190227017923619569623201339526691401935485595212843319754193040039535155336578826963457452649070103755408912623831914300715406730376438284782900103143574456918740643166683430545405898632273635263990500360051839211889880108152854903222273084841817450662056135793146834959484473786697330320387632181818219301466156369240387749936546163366876270307158324802092507299858254229585936840415017322211340589690037979269511622654136240621443680578722991349052661477633909606697570535374924231527563495266894887822401486684816279919729541511651210010264356414095399274227810038456473009196193136218105994984473471985517413275725754620055560679287964414496991579603356113692631458166085561194876708039450221105586002625378854451262979471438666188829860629391682128178348138161722661387851015001252857959239901957805562202492994468371932216180283515615049803933580825549700116493178457586309021077433430546359251313085378782583305521820734073965913980563422862227540809970254558339516120887023402841230136764727009074377290412551742374628792787543973438629190713617831446292016799094404878178204991155026485209538557124304158738664412584906281577522720078230252554942051257043410594874064934216010213046570021424288752277730289313074554910653490988962200922360376886605146441486494251721592917843462843984942558539245290119748037315042611674983939424106945717648815470550270552102375008623209931401558384285031746657849549288165554875867028296265927260097366337332451233278963814497372563473944787910954287061165611220102770974665670977392732622788425571742768012247109494801598959977903048845488214354854005903593866309307185449391194656023487400531607053345828511174237243733690096001906239093103759229102842077986531572413909610876670398109287781808840327987119526393867186441192919469471171833024228674900526558342813307255295607410531423451654034457088591899260107045082952702623430404926461023337941741336070535781819557175923939873640813933442417249532758681862409872874969962319222734391503305536337475834108373530063621199377207945079435237835479302758507583773896001004465250362287253958007815377641793803179245996602709030356914399925120551265679647475584564094601627894907893956517651699644699956542304756310791031204607345613708699851833594638237728862211609798433598874262344811059432078589194018266399076693339248743742198755863511155935064534186530169873305191607716689528090765245729807640269054998506524751224901934517633281052358095392880097251345082531682744820966531066849386773975911677585320285118790985128600513590926823283375500586308611724999750727849793431639101546171289176039374872665274701870357993972729467057841157075683247948016378357144662932835747735091967687492394014324932351431667127083871962010918094965532785263119782943170757432929278853153926430372496768770577513346153066283907964634671630893117514201079229684096951823096886000014384181605532322854633975242547169337781856663814610228555972860238079969501547433960533238141326511899347165647197329455196518132046456730984945854127222717109275693515363059163537149289930128642859056782384463743928149659299964062632610836312305615029597508276946788016024772313908203789568181837023955132664232910766668041653171050840372656489789345500243476283416143936345934550743967013618293905928081012711989367956559359243819752900055961972245337490058330953167781493576086209875897022786334563372148047813628304923017941671662479362035177725914242614875414746724955768983966677649040829832860197026904849104034247818052934822104776352723626440650075038144540320303614522012134245534253418162981642879415062181125558080659134636108530629041856277195864801432657037735662962313838333448201316536942651736847653020341745196155039499055696791945157082574784045702112084108178200468021269272487321828981515520332706404793715889217704308179658285422092130506293742006727369877097140270349244185549055543960047158618187382722272028772204715475190028278435935227622285191076554566263262155942643789220854463285485225409515269104738661213318311223188512653208609182527525096995372951290298085434015831507852763608326074941911416708993103935590404803196644322323345103733141584394198502219082381478070612076081121710215094642983428913986649642292458575029782249647159831468359561194650675951067726921810369054324506077200569525177190787106899080115431777498801261495469662584450658277688680713601659751551859766097353862635301099371705577799506993824113336803999101801888193023000905416119071579265645729947506880993700734234441026952848367893117364587452510370716542289274830089511294853834565702643987021529203343637222254703695284792755052722724283995807506502822276151664735707507904241901004597107486062470889005178562246836907235981570920064610182649602502338892194204183217919337233649489842096617857436598731416709982648378466862012679403619755400518126380151088964154479385502776136074018936896925677069117456186953546386754317404614145428073851389442702546876059120923058357475770419335396670175403841311289839582745975689638161800206229925793735348456765146408440663497368472037839328652814324145195958903134670942028151457468163425076802891618691277501507871974370749121948851268003218418378882102978117671603259815925032497360744270124499332015885235466247823763385703158970709074238684705017308899236726297155688102161161478892875961042163323970424102721516646672256529666615773053342645294974283821804408159197486737284299336062117843965785382873955369083001113190921095502199720446723418601906352976398727240104183314208400524674996842737635164322929699860912000735718521918627161788425694493295095063983145079807041199876655123037302714082558518030149398817886414073577221404332108724808768016905207414314738475317091291960164687030884335605385255525467777922279753503722183745167798155929281304649894463062229470307793699905121905416369773444300823631853889063724178565012835915259923496450849479104167323408367214525631862759758799331094542775510014135860470703804376825379396590529423709722445996317476670502033787385343851177701775274656999717809558089373704849906983508504552612867323861077858062981977472541909891506299638894531147102076566559611464091281455051779459117455378638914802095228304728167472288848501385936390942807192827153809961849744108658219861159910455790628973071803153210852834596028128842707424245292002964351942943255679257702753813066308822388251871332461352088126663743457757154837962912718771844564555019549917665726746554487657582969410573203638538152779057492360272795920944605575735598448627853259613088408885405975693190343330900082249162062051990619790452810645482755935187506967895348540872761662672643152443094613859673309788514729036802836976121324006041792393590606910837208584260659446180226472443202619526127967039335645293590099164809531295452745591508805015757313062425098259285824356135294040547160161059531953487488118005891066397915642011064856330729862745808828415123473735403361867184444069205916751036400236325247642462262428160952599467716593586827173063281207778811120714786347564885862554740486072361664594305173909493327542898431653769196208594712034324549265215853082965176458009981957436088634202905642489996220015175359999388550839245778824058870128397135554702304043018071135369901240600481065731990384961377468371327251862628666379169579135280817517452096077128309344211265849226083048603239465702413780386870184175528781090915742551782270055411817312211922481316679065710485066274364982626113476150932835732418717520165757598633885013289201710418395815176290976124624713607558291201240984228195197344582639204069722742975989812729486384037129429321231688998326851035490115886882911018404125189492341724778806627831667417310662105805851466552508244415173772268472785010490482279898110703580710156002346544774111996774661942733428507679570645313472732151046240183784718255962009406164818114288231507239499474226897806936687643572849092978428251309560452879582094501105204574612957313769261294551471672750911872729471353177523700564303603969847676849324758486453629574003159452946644126591169888272406251887994214964406602926935005067195075571693256517114341852011260740286663897631044085911981002022404306552810230494595956195432766551709058073533746424205067432664342997234510937637647977421851771134760749157595052158700242989964316204237370151874519704730902215090076750353373811972127320171253897272525756864967871801880068907292710919751041323302498842390504218980833648291408370753920263970390435121380765374813116883261167655110391312616479131586324971539125744110735620609788665374623144755825447615254850219948259987369453110602740832050539727244224820725189037711719625936969238052222838423835734727275225437206942659980522602453902509431490757410369187182560074614401358847921435746465601241910922442055376917882982666266519247509188908673294366799723446488971140006257228198948661764082674453240238439664881978641876150993276336095156574823213777533423173935133162069328657200441370887915887918846893436137409966615399458601517390169913407839835708681223710347565847077427400371288380204774673584826113911497944999114525138498694105480306102210843523381134683500580963118191960322992971844324681253655829397985399806335244587028648798514570963833141318830456837505052750094888726519755331368245113855361661649606636448337143992166547551392179334411532756488368296992053761132493851506295516522738604019218664344874089281540802951984236215311332014536531121387544251966216146473150868960848393353822056443956301985472455483943321923701858493335958792339068109437168317306675936958706061799921654535183093231422597439030385830711248176055220270337162955331420532496766651672645945961451492974066047936599531804257873597273389137664652247412989610936202756074508623106826755359398461748265884391344325473239223624574136312305711872658185282000111731315128625827814142770813340140941532812597825835721280839049798675220069452845263464118806949889195970861122665404386297170437295146737995420744925569156475445884166921178889100760732142123033109902372352440481157715295994263725788565248072460207028418981794677442740677305380387042391366164179935221031215495846623583833071201410112865830206830444973490115403762821399286321794890209063969889048670602750554146660565679152219125983770031673932288426674087257097985291661251016537659341651477635459554055726176814715786899793782025603630417300634203372794760675151967532591465501497715099724950884024362915634467929573714668522710183098407748721848348348842942294720784900254064741272680131954310670464930839092730070927784717135657286419793531777978028052008928289048153735879386084374885005736570082895130209248533435252314530964954574948516744909190029146477103999679259583778973913162017629786495118669332991554643270636966399715865027452573800991030334661092921866362383638864275656891605965558217058604295385781093967896736728740034584446851882886794064979145971394330082127967293536732970528794442263208297051040633783673647139291154073609574047845300118300369842131741510086098602465616150060365916634849620081243409809184140661463700819934900416049292031662945054402496507178774118832335923162196719955234489332684868584450453031728041191916949951540124822502539788881284805374662206684083665997238762772402574607552272418476294717938482395195359721243121329324404648691116318273035242850382258154369625381096548038775121294139482784223174624578021173264267517087161983178927464427312466808476743251467499662932793334694944371394631053442381262179048205545672906856064935804584599002283395396308804352508946214389112169347035723833247973143148692302051406505808027660430192259140985701825871784098295412779043518338366535563582032362659179652461226174992531870556173041151519309078538808735415752279719407537877657123208865404667033656874049422972713138661076356440613024054746030285032900866655601023675819414620241906750915987477302102080664304432987205234866404267190691798492805913612870896010569661054543045598900266304265376705391985714015890575084468861639282605308869610230470691101098056916584797670192732832374283006480744988537756672908437288613589542942337147833459274608367651400030035926681833139913893759443502631956977871515294585003478793619670843037157506194996539362382517516579943205250982369106000894657976886540401935085376069425889752458859091979058521975978430497880585252653630625610476315514059210612395864412919328893560281154089592046449341881151651200130230403712241441711397368447021800547769254629527006669953876002178346726523174899075062458754137167055663857959711147704332631977565676244986769266947477148172412372035468160105500724969081268725477101230569731831236244649667120399811130464692559928579307091522818510498828049347954582517213184224414491200498071618966205827493609393500949416189267787982329636788135922185529474679648029558798312818967782041897242941513737052208280411264166788200161662192668151015145106877084477223911270325320522101620619552012848072280424670835221239229345938934890938801445700541379185028845654835877347664269349917331153415701711900100152374039319347309189535446415929156275062788797999975351010235558471926736715001123349960027143831613317567220010928747971312955347689374304013059249874626936398342416036318169154294672030357060203029214320912790705166337268541327663942768970238906949863543131195389577675809248317739570679498085158895628573158345472395299469384045832741372063255794664172274918482835617707660041866195145530282873686134923790256837951062949742331408125621467811828085399374164659431686144275870514277952747756757295163689082981969056808013191303930337742690059046315151482087182788395070895261197431300327588313244413745342582765565200996948505623869292224111074018872341747912678651355228872520166638050225950726726774591423993840780207045390275713971148543082981755974900137403234990952275271043326379469797718498058287937589047643403730723783385084650133809578255840307715271489937211188991070617920918750291222901079997614597326357888832665998109532979891976304197572127740839705938665590454814788625166304933349780415757577184207318357521139347288550641377011546977617438360702665228941995839990409361769465692779597750275450148014758799565267804792741115511152571335741883245160838126775855308895836848049474252419652424661774328136115577436292850487327945901470268709724760461313027201539171940359255698059504963951070329964408833607743884577335069129109737576903873763704261087602867892782243272377915970690476731747811904659148114440140807828974394438145762423882737210348315267797195553887266532151476354651120343335480613765731702845467439004967310816930092221907292566483061877106755183674848132770708927434867756895210020024418720140192296509179415208351335713931480215759998956976868148745199143371587315614652427472849390769006227009110669490663433013118612995827306351925514936421294274417210098058638097440209381688667350028898002276502029848492857345944499809634798030711567737317131161629375620648075872392199457831844171911393695878588351159984107293047340218680364113363853869918532230031932934974764279734169313866040501200213818919616832750049562761296491122026389423680139531642690213642570151067218328004726180332121212464817258507830688533840359825244142245117461543290404977106527606935658730487628717418475474975273045519829996418533232024193651360329433868890040566375633214946510827363584900908976378614199590304121241994468653665920622684877955267487229048166515725731262253801028813950953397021393707608237912500288159056284723658264073154678079889994869557149507767502114478703264081521078129517993168261909606078657684112894110147731577713169609876610857230152704007506526060907877494238770679745237436484306769703073449069046832621241687141610833781067503259671151890701330756820581820170581895305123449192514504430188984904087992446400544259469469456363493130295921764223418458559688824899786269806805924879455234802542726000939481706689255482994111401850103381819493822631863740793996367135884134047853554611929331653457363983502696052822642502224742600347102681674927274373020314832819455170797216540656913226422202477947911555630066462353665697535393633531866047413486982453461832758365310809024563890941630022268868563237948028462488082548562239908688659907979567874186132954498027354711515487546732854765484041031686284050187905165246583742430869376108033193512198644164393893651667098471210901868152170594451530565226227004708460685608747623814065855498791551163585852291326384783162508213269003358923492781573048867673894691238044234782598703439365175841413787656618752782020510082748214411454615725230831210348926879878683325032621058782719926067808967698147146364409294282716473839080586479389227604928317664699392817863183201923818185190917602223605082207485701556394920948767530495460372694837988223773049453851731071674266819992408227898915508977855135762141267604930551952514078719210189747896648618545372049925849060785095607512900223902617499407719730061056222512817737188132347541151596479877842744281099717185357429911389328566957344820096849027864285512506854283257837499559457729143047283596476588868925051519873062543703387592417107587350303157205222055974837447583810479493833538765168834308098258493638256433596099666130299774015987936135344140067983985006623495254975219555305550448005194952428156229411334357701847564284086520245146535518656786703249526619702383835655299456169107206302193999935061353171304701567669326969972689765702259990281645607537602829284483435902376627424631097197534142250513241521110234623936785773036177134454794936341233065041977790182867650376078527147366740699700925556423809630547768653356182644972617166379322263883244848043903470695932966673357108991985187773707496300149025711355248565311042606182888193466043768929618615945467454847003654346107773204785778401630219902297136747325101569185776216917197307602957341219552341832032109060451092551032273932699366883118166783668848268076243989522250704868829250952110801738428680530188600370533582942526347780167349346306901103585146906424000376824769974089540563410488813925681049284397181505983234092858103534121937189866457230108038613233861931727826349030840199560173759573802456692067172652355607775907196071194990477384596096256132092524537389386113374057441744977631679192868848379412665727731205772177574751181727126311374676194788211294172652561830883611668397192397122731253948802107274922227652670138654900232699033358821493002072255338074165695467730182690877498044282550495288491619520056480293903028582311034854552994088805007135776024389505082189521883218013290630620790696643016450834876626620231828017015908381728635467569042982851505216657412474518415445004845287055309941657410361465565179523547194777864322356477477522980478975708711051144063917495714189295994652862223270896642212207465619328800030454802496804103412858219553743647667063450605139209632677486721399525001445058683718385127151013630645485502292649328901176850762692036901131575295607963418724034449491571614323026954969519949128685076491511513512643354165096933079866123172266331987669549155367828453509077944536802756622710455332720974040215072404495356278021935691584563372351002615724640165913217795176701179887308231559276618056481099460788839506227645132037264256463632891887275264114964894644118190597295409935809943714419019437893872482656846567283741021552459309563836039826085531824844954777140599506967338021240833684896025244211699674688169808614499601020652253919425590513696923792701573348171412263600287056830390022682165163597213998526776028164615154269545732397429683710127029046847757251684731524144479829375222067198152741154561289132050854867151657006097770816077905071197239401638741836987933618976352508104421172681030338232516124743910961270397461058330083514584932197339034851711378857676838013497378869014017258646192589594034739755908782696636063880223557317702007521276471498061880608177525764570121147892847686023616307988677973506455659169964940989727973344239930938535343515855666621595084951085734655718891704920025471721504630953997020279544733327207477725523905574198987307971221804632981235589980397580136958244091506110815019485329682216682530817939662877218235324684983840658083365285317602642888048140402630282986877340283031088661962544132136421887263458141589359106867239539420641278304644895611861791872451044860800784274616210569606586843214953870253485241583723308798672652040984073578581027468528609955548870795579538055547921672051139596409317128077777573357296174403298245015660082915556615360077405926462764760288742896453896609306638762589252882673127177004601572097957774431597952085477174927043119635446526332723922828080288388324247552911899205615911603853867183279947307996651868849238595751139133207916220764166119202074037528344535706504515661357482446998464730656216588387372454693911240534046274311134282569185566664353800862980973239123967039995653200128413501545963541426404459689091349911451712685716764314493419333683300585664567164992208180953044940117257224171477017761050614586897609589991385254831743757195591531742188352831340878163310781293204118482170740436452562702761370769672327964151576461537382334016885285539050678234925587859959149768505636241535526854565478650405269856160120413392615186697147040961520677937402799026954039792152857187150484479394169745857131835460680491636190955239960951502122722733326046178293372883527309546782607803634640000730176836485211110233880603694573658015409235560170693870272616260086355405930591900063140950517756138167116309614977188939039697350498508182349645768038908216837037459556586504064638988139412028294855911733160751390463269071736769091476521503515037865712795383648081500959895157310405909053656986538946537565292721622734962496666575630170438491415382300273317588304368982654608493721938338732797786281259439898224322250599577744219671499121029102709601431416793018771665915420899860947168311551781670308030612734776965894677471005926452962558349321014670318085011488399550912421988013031750160418119880342687239596838500183946775792354202607483526665332022477251791273592678251349507043202126277904611803029864949968439131656317512675195478231493208827083037689368978733717281390987725378286908306798013282107001164875162107805519657221472368567377226548635931705689041400693618198274753702316595627830659414060441016283927868936212246938309949445531995926084028193864104166065615379811820723665532463296865835918241456423345062549479756394697361653925576541411393915445777762563028300473438063245537836807898909745673479727608494087521697632281833593175411741202927092444495776992995099781395539488207037043551202939184194634476362465190723687832174615284524802669554958889206044817589758152328147770033625593073540768843524082485189526138979575238078254151830822785176786748157045215980235208965089654589619060420052069988655185151596155410700054078070715180576321596608248376805702921069349440133600394390476744510825350567680033882723814958535160768192596940679127718113846651117012992584828325253181430098384157549481757840040322424929362607917753718833930760238383252959471285000576385004730433051402148117162704960128404030454544677787792081348679858635259361889634001951984151827516579361234212772853287113068139134942346488633528702231073658123217149386716001328859579166608131878410609529789903434838217295896098176086816400808162037444353222767980181388785520124015175479916066807041486775952115792880236191636279532676131780194755873639913149224656346359842570364603380056623294016326531777732477802242936577284043760576064500107682473727091083043826996321858588498510111663186091665906924193979070072143808847123809280394641719610066326622312201168994816557219794564795991840897354949492583300176862420314000308928353640795154409058531144199450316903174129294880176965779259746078942007019498662234779087474889320333708188151768865678817742636888528487336866497706791946281425556368816454127660624825159176767926370265907621487368199877872572015139975556150613704446095903057542515164106838158391916311300033285657612060618487054062337552862868197460171520323291706737764758103783130300903540217825593009179863582759750713664109597994942794551599360821492245506206563810188558814373505226573061998197891057966593265277042589337875216000225286241251076159729360039819111726368661593100551719382730243073748224043875950907718109315656304028646909737486959444742546885303833254283072362048146328008540696854852907757619260195439256638528220122614095763880934598201419202903011624103778825647754583350661939499326306630063979584756764048968671900584901018707950329698103953273448278938514194541288284757478526955142799480280201046477265769699948083832093064052179370686723825464310198236901516181253298309322091577028680737424990876064560251047175848672272898632500109915414463568494647507243135591983651232590947603626195082346614932191499716385266752740410973386638221095727112717301223681769466043319710177287951195632009618239704808701149988935992769679994545153753158283905310276596635989166302269496040807032066006668518506541635413138386147710794529909053952252358460026746552839067484678580248942757600151171972910944158210229876265254599460896269269361017877187509172466417814446050002560929711422265827163240506077882544345609614802648588252818880220616220159484622067553010523639184818872505428794264010235116881175735599674177063513507449794735766381357618391757502714725921053807784962237481605607516446347021476628516142636661344316574646187425160403952465048695938560473023450852962419270595506108383380979409719246987754823031483543811228610167451083559253329767296376010714437066286730525303621880085281024127880246897387761073841171135275599106863525928636268263078780066566575114419765247140670455350605478888457072196496370655909749032834019020339266193167808125709845591779028011057302726752730862829505574605106943417523085484404578858381701805588847253287623556688908886034391080828083147169396397153759379909697898675018783460035437808877442828840781199579293508796417021751707620998665427909590835550119137592963101921131864275644414913356442005786392961010780698991967087887436462648976509057762539045441944426443943516345746218852104954826151013439799319175932683304712422885606625879459313569839207127081522538700028531841365223947584489965201762372135258776057534655674618296854610976049798607879996643323256707552371485865354288421009736785329230858200983957518067044415934857953932584274854819990854723387133866842813816936661083345731577071803621458687452716495703994547038358223730917730616036157464552707053913207576067926535244898310379720753315824775639922967052497282756300914577088066303704138992048522822555544431780486297511924027286023021621431951053597019027495444636785046672842875311870010502357643527063367947658545075314739654215474178711186165421522023265423978745929747655830094441876859089826818166852058626995518902655524045502897102002331683468964240680673928591424677710365887605559377106053436293111038160181783158986324908608076427281957616586623414710888576236924035964963139946181108578299727300463278806575148884704223443708494217740177004949328826624440932792798506004758827539040906575002116867157742181368407307713283645644950266548518673634347234853149331804547856894195393083901108400120285081981101943625391585320348153078747066323938521913075041852521131485423420917101295790393888741730847472769997455245264830295785432944091386769249164956910976323330708383219555906985289556890802652044086001685670172079681538368484661724062336813615575336193827432402047208021454803229227974574730553440501347960236551254891431194934269787273475391440800101265065348126648006262991448140515456890109596834275781977190003520145486926635448115088700765027895403659811256964281587399874283775089077411387547382606845975005062382335745185830339535705278111906334145761048256237344393903828197514410042639238380435769107054804073901569370366646779182497278541734139778384692403276053844034292511567019638268809993602708947998934720288433206679360329998781274180996967286206553599883709431093835841126736408147319185535342037294433159332504347324558062308873657209180506694642474345312546239072373918646173292666354587969011934438280880258501722009462094336881081440390488943917631237767000397173411016411925664565929083629865989930216257495443241407513768509286873533508386266378022964548066324128963372834149456528817109094222106817815830514371295576485800901896270901591230357260858246617085930485684305468804550511939141905796573499091560671834657735308487743249456561713263262573937231844280423127707825539745972447109602093835428665663579874225363880715792100125778367197288781357509300303232237304066595444603814289850396015655964876962284526764572959192731697979908247571163346412919085252520981898001652179823487482809079776937161385736102815400276529401732399582531902967728934788354352082902329331338513732526212562242482388746666188557618227001435932594601709683552018517247142006604948055596586945940965625502229310412809484677331007775697373109759754412189205015721782106132188976404251948267629110063629870442693756934024846440408663637376797225940204520176769150802698765157599237380023813313236305237440122343443855031733848048533461605542271357293126485534008362844584379582284015484799996018042944509229406248351622543547629492298087752899861334520088386116313416825930041055153910409587168452403192816079610058526166889631737568722765572967001650839161488670960516173859135934839566349676138288948150065172634856091646702352478039530045241411333907400441709282290529396148981652517605214603098437777598953346287220887221381900381602119177329940164569060174795589042202819334963300274390192625525622346327264779804244342964975119842712867051361054137543781803073348458598145094226846045169057124399880226906392355008004088407880727354491804960291394824559428850766356586098428489921709651625031380248232942120086198426235043179661450377271035953386758608584049408969589874369745880507114847524547868337797195628072381412841345994443989555673634919825685524001467196953893109018690090894584534633208631189958605418396417158401294752664799319873261814916584827030945612990944453655625653178495467253377449240367236076527541014429958095425074097975346429443528458061154293450460673447442413813598131823085596857213109974839250859459845940443744311152616803400267222215014271661445533659233056031668958111758900424341202057636410602353516536695971181556033620935750063484565206142347526735097925930015918883210998129285872010779630495405504434759916407295939037153710903476895701919014414635659328620208304530466108759179728453771600204185329149632986987896515069851810051931764741768944830872055471233517859411889825955573080957210020355374976824135478922529470474305482658749399903200532494701007273748255012360737788751683657471849041551374866843361675365703697994217421625931688697419175219720235763049474832054906387393593590228041423868194322465556856621547307424507408324249492583218436630597735397274318068601670506009781991084049278977015082601644408715195318329239585413712955749414386446275423086768393476919726390586135481545080079731366683346336012343419756131890780698552030900033554805381050994206792139418893236470667190864826196986210496018312465753900727822682260862597184452058791514904491991150384538540030513910490251172458080987027186573500338137585395279080274365730592272386115268166901954029010910514302729799811633372129214856155231579240808731354593628686500100794484676981315641533147674306394960353258746972459105189568009938872348866794487244586725786213567392727321520331640032439274755328834097121130122439389312248547664090723861840059505415768682879467508810134232321496956893065577852669347033055761594734283531815827888486981283833281559098158126739526613965380011178005910877209829835609437144665520587588841276835035256334645091986647049041061593134390214675738999123382001011366788215791450344956111995983667852116785562556068324980020396352708583595801040499158951410440696733395889921661953025589541885862421310723473694833177042226923843271857378498596922458540199597105924720368236590548345311731415442876456900278717671028276896110147106810707281883608394447284829147137691520047930772492343141640028873551621428200823465617976502696057522009314791465567659992590039308409119410218157984541245231183009803111936441793939464268087491450717906926045866282415348708364451820964182433385500249197165994323839508862023457379801370355604811166697432515353092145954439768065313805945400426878848543790520460122321675532435455668920313557139243081859447372062066621203529943366902293325306725404310474469230426652924935565939586408830875460138061087363317093543259871847074469762700802713671578466679688866539092390079188510921839853723563607968419629126313623050007589944854542791794432501791790753838052625903924836650477377214631328890688148305104613004564043176045146421901127704241925674239814009290257133876007143532721789286565823998233277162496117836364019727747128826491974942457332699020840113123180428446911558150604156528662387956185013577195118877519752132522783183708927914885674370617404803278114013201218950342166682507760717810441520098789303128181868960468466244942991875850379330350398078215153820343604379030625798030168184654191505340241789069980865782485019989123555716049099368404118683892713798937030699744293907886323000370519468103835621577533123256275012426513391756314169046649712525946475773454099032405835688839929661094777579207214044403875332765306992126249867881142896388199248939725387767087753865702537856662129873469275970329070431367247223220225134228409812011329338362226483335076759796737664828458530156197400421924829357561411467941118865563332612108606366255306990605492083236949772743910423869372679363637836064578522990393302511350366721711252682720285427672212480419630989200894746374952665373064393409115127244287859318530667718978742210553021080251661038475661470787247574535593951825983481674275576782980175821677628059812398329328875924186678380752644064815701000711084642660841176205804447404146751712876111549987615560770408460387698269236379778212368930048342629164831533537259632060876376008765906109048302820695594141745453445900397009604069973993248736439744162577678373238643306706776941969976399659509510160473573589688792493191048669184465008426299546468946484165873998047394824028793679817860705152898302639429392163221430462963951301642104131586653215236113696091182122392417087204308036973340303412880508848261131504262423116519743938492078927753799359002440288485251254864388996635388558722922768934955102279369555557156208049492751241159349119813855773099165850384647307880032055251953264026358367879335792987628472953853674225315326839734239442828228677219699246776890192376710246051074131311815722489887332095530107568401808407113085492458145915304184768579492755724456736727823773558720650167998879596360138715867294764539895006459226247125115001888805353434044610516816610812503568080345305557401706927298982240878598869149742351768233812221751860259836936513077232697939910903582216432871654576746005375636290333507811329061707167671146913506751085241987794377046477922594569142801486040245852931057606693958721167245353185761520191803117668888895036045036553057058917501678955251500800526861700516903220394395271879722410422813875171214988284456346854228866262501280855996462170550923050792106346203961251410753390204427543920747684129269701287018233204010975464427579466302138438854774402749886363249021377992574202187371844321771206247157710537355038434597235738680508508818822320152070102237020962553288808386997677758983774328215275773698515587823804379236097341217786742352286127670180673958458422828361796888947106767880075472738422837015730574600967469035903070683365551272456000247786021679777453501306108803538344591103325405829054163959917372504737485997426680247732610473119160589600240068655583581196577358257818411923690472979205394773597971760042779392955568323639515289736691672027436219784953110766028522518752270152357624532995707258225877371406676890925986852165036354711414043497036015490674820532862951688116816987059474490940105225774516347335010163988758384932267160206131704691542869263224623165124845771434440831233666545096445005875436937422770311995396455376094493903810496951982714802038586044054544049943389725935933638720433025676223617334598817611220165366622608875834488978164532773454930190805395913077999041809720344949814098835369656200795825728904219641447675362123002720289926227328418711727767429974384099890095932088432779662968276191308040165675530402071154917910472150243129954704283565077696781936518421301014630709337917839424449143962672881623005160307699671806857692347866707700676901883703830050539651502801977655260406136368680082341957333288682989059439176123888858663408020815723872899812067950651846734334583911817111370620717883324794428721401440162328616363715494476495815711543481154872612421002417642039491533704347318942613077703355528087483411521588555564072021756256200265893613315076563799279048032011339173313646024484275873539562034285527214492238288508021793667991369120131451882780265415909011925422012912062932254554188137725876359407715677475530917621708054863003744893549645360501520004355761273134725010991032549108667431318587966114165209349586810254516796689762554441867984482804267618361508628508975168009064304190521256970538238038818378402976149887620693335872719828545091670534106558644843044046951674218139003343314937364241513214293203259794160143567971808053083910362191320176187890740744537682695971179944411773478843052997699092567089811095416223924707289982901967734223242958617974433284814777616288213053151985982890945051550868962548684287546728002106892785133859256795945629055493794326262387200903463616495966244452761057214121485255001017283367571093550343277380936356953740801450942570134344769199278751269217600995351900835194133411514860976188402756015347857591716732055247136068741803726988428860073835234398385487409512960041686476451626255259908513522023662298547350828591112728828410457040941389915225626065825049416786209258216894516242508743055721703382344315951717755294669829234623221542594983247328333456655289153607521018880122739488003198300696826761312732260996118015070391021569686380124861989163880440030924095367868547436954799234176763491317433524761763667644590665332716786844253154509984118348890835777816212503690733195425055143554202963589474431334561409313742096993846017766196547180652258875737041548554115746656798507804533675364480637372314402266176958171738900532886738681906212312202628550421898658299148261128381146639535041380670098339537405903924831337371730328883755562602125747370332468985438686132407832361885593871490330559758050980823262467573122258030979132352856230595333459158407850500567185237368364717874968507892601884106098084416180786533665476936984565614358285782859222118628015161341862809796551657358876485345431264717492097308909228845121758373794583515071811935920783200550208525608561943060090703194302668112552846009672846437754702925271670859034503269198565741387585873005512386414298267263505421335639575619224116770470143267633181290329961304576640700041942974454512081130940063150057247186208862598815678128070260071232929877712875243478412232710038123324128331539305817435261216619719381362587492813664411372225015038760761394469656609539904188204624302421393205496666359126249365809018878576917719111353687195297628003089487817380631637353674541899575201922581062846491307179113034034017027886906748696849476687171593631195013888996107905609950073044156208994635400970369056533670305679592673939910911052750653832093511505213073005344072744791967231604994398579265654958937615862696839503191776041786380532744622404713982637169252492015105240856937627302069108142989854697472417134222292128197311086878763082328324129821942243463341562446673350422783300048626266817754931214379979190736555398620258579500490150761556674200998380744709924174567013725082870618974324303240451021250920447499619242812401903383016026610853797913477627917970952403575560188386471880453736068036172122808646808758444366466705953038975922363169718151421218819783930381840030031914237002992436754034786926565054474425606437263837127578928649045926340985073372476049023921985333732369299161522158157565867966656278658007397382494031211193351843090051607656338770530667974985531111027803825010736245312804062002564804073620715366681409808704592849313094098823877703132084019561805479743243866729829392556306188019123516730051146438296507046692688020302378272259077214746939200844904455840453900879471239343818799170272133033976352952358130350091865210216735260072629602703368911859129450465566574796888555319896817625355242087487870360072329606258179676320250099252247886686725116339581933509109875054848955267501738339149959280618194846921478368205705821395801430345800040702927023466805046859946176808684733870631228218736722404470583680117784140389928449464449922268712770791543495455943204333746050445548266715489341650323947018755240336401788485242578581843784747773910870097175836774261811142804169407825004078686947961524749226598905676733480723858987921466208729420356731475524946300876646304437155460584478455117344682915281036804821643913131112974238673083877201217627724217669449391096309549737604141910643893772396962578327455070107735967850911535337306229342094875928743479906959680788725693357925899799424371291213612728990876365349932556076136608398275314371629638712797873617435351408708533137016219785112408031151477696243354305578140209294314680488894786282993649882234157627876207835741155104333732895248355057100299907773293862511510914984143241501356550623714843911507189118542029273140336338689889827020474164257491231244573346465416174136039893936549466127860072578152115889835912666031971455393794517500052247802812056228061070904389193700672428735972987098397354384043717847947903143254806522244384095699377578043579220793505546032237075938751880012538171037063438376930864834418746095356954948322205088877770279107186098748251417201039636073406172749236372735085401136597786131569725016205393961834457591486576245356548646285110837822823186938589184080467945078004094623074234576096092827658400710173513112322791897193347357870326346787349128856977987248851518841995492088935318737191605344900223639669739911524486471652527137621681246444915073284984609931325696028563601178894569650657228493926173413074981954611589537362746842610481011021673077729927472825662409921226184127697460069692887913717386752671900388384544569231555860099335142993200847847294144972861833097637266648097684403807198404384626174505957422490854545756186677610128019554272468922094126992093532496379383995671864065964980846764487908819245724184115665644099861468534875840726688138675564806435238803315787401206700148755803373261963778186103050791571270152968248531255670975202823941090776925171026711509216126198563454854824978583915170671189728179542642480840824920136449201595089596157504015619369378952030717343742868877734454085970196531811970866535336979085350841646812975400579080277474641913397790732364613846825872959542353686912944271343274196920515466221775682878590816665053561938783172974764596711428173906619629370620014357054515639576938854208201027776410538975544662352707247313456911373546967828687285554007748676512729772665584766829010712431799982078751168988423394655447671324318981197017424896420207052982264196032592603142240996639823705277507419188280114408541139716757726471425896331722660521743198310296007240853840841904694542430512488370814600947697969255004466721978274504263710880077857705582612312435756003032135533940297871355004827418366052214631348460026945839126962169237622994318529306500304022930631150027237261402685782600787494342587481862922723072019478231590518386311096220153284807685421022164050951648989304269855448771796038976449382309065665044619010903431547123416200169154734771245063065806785746184702420518176788804958895539850822236865480255847192829932117068285744941104867738501165496261879793673289375926329276353961909737973219671860279915806942490874439523461233126401353311038193209990198090688730923763275403965411353952260897042048290638415254758919299108741220773666403165719637037690018227990592320333124601542816887015657184104738764100934449450128776659406439919473651980415495859077350048249467485109301566390980724993928278221895012677812914662201448727436411159833306024158387479418450538701092187307430257362534518879147947498991823384436423824461431818916885130038577418176381422315771781741136780853096016891736490359841438226759269746348439155487282163160302138374025332216428843805079510606994485118790429907262630985481714267940847504432547936476544752692925284698968810989233436705705400189780911844561555054740384869326659850546820771796056361865666247439313670695896585171046493579092574415434687212142898834250884788807270679491801818606680173263210055175291420690576199827605550822003940711243333198849508038096951797162472347713687712483162879864925144899416425271140079925711304816138351824576886212854918393922811631618839579774381438438685172767966610070960733616266150962082651457041937648143228458023134871116400330573318162568279205525688905089306384235001402530345548286752785219793344468834148311719541683922833359085772655128397891516166317831943480650773608687689861824668109860753984699301819414385958700232507837019512668816233435249824819728520144899111678539747653098091265887765509204704712089676552510212183887707216459008613712454608987712395768416797925732558762105363660965504801300283019852085922977796203636076683718323020976423934425033737789514514092611196441972384159410443503680009790401174546568214703516499676571811318671033880586269723745605099127446342856942763489454548450588111343220893503063835782378758573670281751442369526987440014379932139510989021306872640454452256561164306784480810958800929783461933543972630719661431466555334272290588301839725198501960864923957979643740336265371836220029929362593839354905489639811042649872783846883105381247301916706620146936525328185730878858295174600767907028235934793177705485521803019737560788346676746280911240909472089441565608236950063318559208768973460216973975524892551198126354131621024265017306424536604774554906268012825510335193543958106531614418006633791532709456631010268331284933527114158216906543159905157002876168121984075368923292517949925020829800504706673739512419623066222300801953240642728252626556376968657095707710340522893044244059807115482435419291429789853018583035250258766101188361158760277976875180760273782097786632169661042480615160028046548774268698289503309134283547445555424467838271845123732649925688640667718513044307900486044679882239287627800535159011413645046028644667659186855106120288707097005917471504727921886025206224231742373019955440026260977188295416170245873965133528619669871849347206217151817962451136220435626695783318024503780083176189836918921735370496269147389099300616701616569690634992953606933502110139604680295748325927364861021440510797147004190764938770477563314230121603095800035215266178249342397029009778720541326951888998620379121316473032127916221444466564269517925559783473161462961026528239460143736389110574954460370544537948428984317622966958735964629506306672090806086290506551365429596857942930689572850892142473217414849548584287162024261233123457032707200343631635250364915011833030005803717594176739954215611407310567635612124053015722258267220513334223017469436036966007438760058423313908073585653113633239144443593941652834421864307897795254182717286417778277310305071265005918465160894436416325844438725050873607981751022254466131803734071306830412633151160528668515828562601200961077702815473686368164593417319319738121318961710146556368012414051689115088046811641218380244842931962896705371272379022808046362018307173974484924093439680952654748759405299824487284762917630334142285488879508282979764427259066062043911697198095380980119284000303494829629674105500754153777989371076869137504678841124625675198705920848583804799318360978685654385257480964242474024264198811687526863187209346948965908341506352648416534988942801160386396175917277767667869147515250325630333803586033859062564945055312034555450141067651715703674379686659996166991531323353173948238555632836636249514417795579658422832007833201625971719412003866603838622211705222857184188161114105984548291144187028000307072388806748109738586156737038145733042169844456612022968455605874366102669658159156449061657613165277866190961968245634024085734071972263641211664339825261473351747461168693284118461995739316607812435281124070397940949084717217653030332508082035613307924082525761331276819773580231696356742763601786209615486517522744879102637455847124581926726499284389937312188402718506027129213143652015730484274835700336759695768007247589035514424806813573908170953379138035691515539329243292866708982347314237844472971379143467306383130981085047426171166229033401464217470996651808586891368260171726611158981416399744110768252903217597964297695971495862411470826522843505023905253830410182083864525678147967373600137273027948833089348438815408465357442736574225677139047439372284324039329472155141262996281791961077748888568415688538494749064055639264930913536434477181345381933301267213898427223952258640316216320028140879703853536301098000840011140334140535643469799424334184871779615036548872505593316693050607201562106469533754176158738581187716480989580175299475413769770425806420438231034958896896867071008045535647478859711724759571298271930767280514877378218011624999110689536922423838269624728078445339936786334553934300286167296556623380955189502812754483362044116068642860256609469677932595502151653168975638069776619005189683243392589201415247771592134868440760499342772070016325877046233400516080411479805399540080653040003853361927185551579374289137261146271604606154221872138489019730552461334133141867030969112261816949630833252005800680065972375173686640338717592841988808492592206893048511597829825153749087056386930547205173113743048502938248718081977716732166101216444513292522787482301016933515469210813431619421976814459111682911552679489010132108510940113748236501596711011260279818006466911799233038674917277614733823690033278084799107094538858743543192657759114734576474277986901143107432426119195443992026375105247623892600442147148837724899277966780971941167870450528428765638585083336526014724133250127999691599785932246282210734623336016181161272657485529528578938420101754765349676022812433265931935537336620338402323424224740922426304939922657969772240631490160417215084633603176140126052811960534247803993257731188768459007784166461803515558780347917953691810612171982572004800197554145388762660816914345228043174223956523125610138364298691886393069726544664884286563908457339628997354807781695775306553462439424172598683722242568040937776769902711255632592526723484881855755876054050174512262562688943876273759678582544332053939506076442415267183151069068261085864239307713754911967515925719454570295956606602976169198454421358885766995526441320859611777409494598075448644813574927468782322809964969530253862512523906055762787114282806070926570778469104256711800613368262961049749401675493364761104297695537697393411840491567361483221772282645705400602690004050600566857011188074158637202730608659470193223018654105757922767212219067177308783020684076354514410615598044147755764886998454570463452296537676821744995857375356804068704126541314276405353243206208705502131282032932527160195542361671164429534707111297603781301124776148500316274698138855212207125688819422452839772330814946040432283563515133704116384662060061823834941005743795937756319394054107787062357483603054920768006554171524482991737276545494435418317781177273533743732324041702575043496231043007002584042477391553740348661005217622718439474119978294739685540207796870297336232514867939525251457106618406278607132393331506577800639401889816418250257398314145834258019019686624702510125068833395322285902997458003653280745798038947298312693901571903422319774739284316847511711205286326521555888668671603595516426215761705940066287014319227407076341070035929159428516606794302546647727993968437356743422645132558655788230557951713330516311332249982577714613580260907956410524022394106008458717883510040484560499316017675650862340708898053977655170627664446592938827037850082930277970171196575427256310251645082420554550348402337617941882724705435426486771061843722658658271768406024485834300419631252627951445578699603226289115498568870087400914202566265815420859321738597607637454304488073217949401506281984890230961910320635206179156881172735301716451398940149425832181609174506908198303873361611816610944875176183976946658900360529775028652881306184801731840638677761130850714293245117309464375122179079690695555225685959619956528811633050504815519283415882945240183079215414939738717932195576803858004661773761655747593230605791807316145066963136591082565500168237313272311212826274466128097838779429700419518277806751689399255307307810864207031902814369300018654696001357756225238082199720278803778084100069953971772189886542366739555965548518979625461231495973636620848548205250714342265874208461356294761880371558500289053632433530025769846742396769567078783557839765846155855245165821161969397651832725124609652657775609951156938082977171666680239342898042015162933364595196437761006536992743387516289220923317365301107081290174102434106372919161857771228098289245817766281322419870397629103952730295515499030221537746698026110998866835945342612433857593739078182914211475140668654079288887720906386231100241741374510165304586689308294668114489277061572544119139833710164374350198290609460208325666595635863057964716680417339514885089103470732911966660955129104933446064642407760664911304460089928273756223314432801392694429286933400617002794513803151633217720070777363233618982812295722811377137801314472395714940744090835628194578227376799731084346186285644533730615146476553646183052336510810174460236190250618367506882000596094393219932890797634289867477416594226751580804624722508122652322352087095089315512976055252707029680026100968036129228671690594647428918043443057788747638856781887328576852722747663025687316966233173612766482282170391157412293781676431634857413427713832165038302784354356681233850936122610703141229450075125828737304825747895392602766730767489892959263217969377857760741930924094900170658318892196884683327104565006956519630044782722618359585954713028904479861781175931303717693986677187579706994271451549397563884185714305510062852795009935812590606031901196452920856125578911531300549282027344347116223649716153006827824575166794752129454850064168901865384645242592874108689738689339614110728871824208083608172180454574276388135371981272992872806728526339566349340798985282664352911975589149466827797946504215501925683023326032800277767336737443764363197809836412765315205678832354774418764924824022389617338988408022695327457232068286250604867865388177129977723382929672322195738573627247264222377498303532179618615775124052716746125161658835062191427136379590472583648257049819143114320430577949605705663714104150618481125883583881928337067438519207502835250856607954940638731780221243181172146789497509752124740569218219213056959649348682615781472662350784931991062501312077529341690777156287746294682088353554781609292713289982680614395138899272319792334388898467756015811767722802525287266000920267103305855359924087628856921935691576700031801060215917784176583216383020587484023509808564325651840757495375597266030345246628982800128721776670326558775726798451765109214319753112570074944914422058906115598831652048631057336288172980158404830046168378527082791878712592648093998766447714270070791140200634595847046599411246045246177039779331301216005837526413713191853470703255124940875888910672627671985114366282904457640710188973746498408126412175427252747819520124893464224524536492541823464871815688871229630195716439962577754637224575294638001734976827530244700314452821283257168673545686048822565839908937662728255489687483147650201989127525331686005377477182047137223337314655855699400681840724646832121734295782165154553913788462338276009389526202224378885486346382038407117111829468674302310183370283095238223666960914273710601031453344482299688423027824579728394463353937795289251407856422106460498521790803489392283147553472982433548544776665139558926607363950657361192744521262051092202604639202323219581981270354967367612229154706280528322805909505400387961592237448055789320969608667753665624443906139492183571490596394983625074125113871355111424875732652721122281115137948567762676477187389154021783481502164261817593225054439682175344215789068675729338099843437535097946517225157240625964243785539225958122707085815461380379311048137191412626040549652957344612121821029979672574017483006363886714440588454580055022708341528933359471351083374459697488508812559490635033242180500183815786756892299099595988298496781816933516840004420408863215663749991977771383000491894311634059788614215448950215036828933154532300839330346031202737885862928862208624243067878101279046962809398348703559266446629443314027385655052552402404354060249105751843316812330565948057978068365168588490519220428691294518831468407549905526029055532146229792532006602977902651625519407400983398782134633579168554693811795439623891664984439333331672734594128744636003619446071998043169270226577411868685460009442334369226391137915577565145980990068938158873123601358086146007094907430454985874922102166366598343933239151000669253917312503515610980940145624118687111132128437478465392813085913962323037274495447966723921336810471230432873113966731596940898392696335250428972749864751285985425728525874510750946454279412518973861003242707156200770281332377222749474829632331751877070626013210757044121048291355507525355145022778017302659853729722241953164725546714088678421025039657487123198175204536258643685263597930182287792963049975201902514931267219432571994860352061065383522679555689908458878363883426859026347945211656970659642941821437764700680694103689969097138221133832835083299996928711971140912165550658434848465174018550863390186810220155264999934682821014743683065210546126325114947269479091024958100678339021247781109857553546525485456782334642906864184323915904728591649453517012094247703373403580498659195987996770404614683937016327202183860187104716571022653664895949465234156561282428057135514774323386153073527698954981802641505633163149530524929767018232966899661601321761141399195464416102740072538401047328190807951603446404161398543472315604462973639830629264228059346456951456225917312009536987573152768128567893278604836258298964792391779588928931149542524042183232901604434118900906155037509013293370343655460027050241003401435718285640265533872922477124122394539951878521756134930491393537600911805426049404025771256586383600699341075577801980987592943274424570137650563390468725492454289731696327997222204069589523023432582076079125524314329138199284030347626643473883986102333123272663867978658038974204869560455430903796165979057341958875551859977961457842281079446177753217118991359427670158653560427484945499929712660544327221622365809415858232211623495325480051037254977329407390275752827366317456408275285265754262642058655342594216810480341015949763753950551010497797789605398317230300159029804939629209542174531664542398598345364166477301950776754042241430999920826906394004987634260572494142992867589229664268961137606061891135802430759305674078714286127945117114550741444311509305496634856566512154020842353124105173948389075324320592677355960800467733347385291493098789777503836244288947110356186781243493790957142005882905280495889947407153863048199886561183688846254261393072246117974337269176339091775201027978839153678936516441948618426337043813503210829604440989568663606608958838014098320042582518877023625531748613501816470840630872422586689987563728720247931235496952125635104808424749136650966485215628551443661313027932670203680780197166692601738220767294911149227725552324292574350775468724416178184226142651011031588335327399735370862531893960278876735577169001563100473327771417695517112675736166445573637602908967352589280662855061939880624345704879893997737317836386104453962918072547650007239103267013401005467461681661988601619511966486014765849777777281401625587511765868915469926863016696025857222994481330095221067619267514476861906688346597850211556654576125293368884097136838539541508754004897164072706991273306895461570472170782599423292545804451868292491855715281280697671492286120605072083325878800607873051347896756997144150295502169415610829023588556372941464204833231459913423043080655177196282412825279027450619438486708143849669859646620613653299007746389210182011182735378182959469641989364749717900364229217484485348841298115621933929406045108259807204389796835681779640345756386976512706807414850630828845321594899863417218476670571839826436913911107331183228712789935152543125841473620778570883486652208362246043276055082552642265445297772534342791880136509707581210528194018674030708685764028049166753186818599460478114389238732056806746099303900517416507042656597332194036186818829450988415363400439802532005906902954831643896524569267597048392737472491324992132971792060897351218145859244292102093906453116598857341500733946350369786566488599596907024178772950875521224214912223569617150088646631050477362759729384612457222123821162009261007872391946422242442289132482273813474714071528872920704119504061250780351967342133091005172426405264949864564925741747417981412779009042086461765421728871504413946818322934178937931830016674034089127148793295320516698247758770135449367787482244545860529196466849055401414918235060868168418235448444804642697185816560195931293450678286866437272622685616538447055117573718435824243095603151274132967620629866282475527518063939089802784599289687982607454897498403017659365699304604724210328256261486939152261134663909636647108980427914224755397085321531090953488366979029586208515696000510034523969158056929573175680303456558124492470379092124843875108712382794613974757188059955306430417072891621757351944740995045642657880680171903600511443070440687274487301971380571244433255890212877561334971879766076481970024328956651140386632187894250598144582307382418375519904015128130535527661676153485989701029186535151600361601139140079492616475467464260343058446905871178409004481283114655056880960762268019540994221748756503966112428199632635481362214190962005713521606645262671193548023767376883788240464810370629907451090637358222008863558741695871853278756196334243846914372513075586650238140069733279193838160999653103406712326460941720258839249837693968461315875430274877704122143455003407236093446336558109831800740632935569433277947664208445439843827359069850021290597942960282303121870395917330363025594946353899852042006693479781180887056269151103273236823735950534041800975445756059299898046664582270984216244774217464010470510582527949218070605571943256167639509198217290352917529508561634324514378109805025827669057532160747466629666467682843053078634645737329039568242280131036226219119870735586609684517078239349037639359781431310669274107336122783648266251803812364387276897107981548392909253304082185911656898200156061489697287192289773356004698586183713959526959390093940893403779892798503886350603822222476777145785422024417860961036302732534192903757661392422070607004160064545950964140625616087699912463682785548330829835509434891693474794885852563513789606945967849397863205844851426289255969235445429195923375319102123252151361422139815098803853552750975250697503241196677309957316923935070620827458372785140687464656642565692232201897669302469287281093001175397245864008135231605654767238819950101287795521993777185626609631731254091385451026231927489319318972554505712420817533911401538005313071338594046880488334626373809727133432879640948235443827268250447157019762331893922987381364941230620703179972990372471127908141322073006077954439135344626244914387216074696375895341731702442993737421351831050215307543002599958294913011659827996629834186497551243306605600199377108008742574279789763191895165946928884753096226189678631295889474074798412932540243017020762630590741327151625233674342677575230979934980074025005375050299940458293768129395095613643756151473013358007523674317125125945150001022635828325697487333634638179795563449523825871506016650991066046063320929101249312125548903848709714901337432005802924311488991233241340028694653025424968075552318383953757501969928919001177654773871814582543624826011373178486411695477005673871464693662547308125947883424915828519036781366473234863291614960253924637837794565255807964161528561355697186942490397228807566009996262487762373369156076331851605189886455389127329730420518317190975511819689334668879780101771369520235581857231226522881448832945090324342633480645820930921879667270578720404196292517090217453142625645023469884970003078911029514390975383430641455799243774659083419480936167665681044213217784257762581172275900569481591407023269022053175683730297266811779793141530294966679912982830478900375184701096523117567121052995552809932369134485338296522950342745295590427993907278355346868611493691232785539526960901209863369538956520238553219597147194879593905776575669973619740879012409468491869870947160406688975376601339378838618333399743147643710780710226368543520984405754687993928364557502098518807828962866481408327975481321813026622166490580149823195226884635087098159097839006346717726606057910286283513678032154477022698223078882052632218658419972831607454122512522997303092786409182690806156478597685435678176373555950693818695843110942392575819969067029050625109758489152780898175732466318598897610565191519208056975637828487651010003107565612111302180748504672452852491024047226715297199813808993795708297351990175562168863094685436139007847806400193597354109289376197252011604017852726826207652002057621268298444930895629856610573029678587296264130229402909940038771884335531534550142652560223096263013862131026661763848061601919122081046563787371662078150336148602162218500881813664805341853215952693017426512946076111942446922827563501927577388262179748165646465131604515876493942604610416716178801842848761703052837677242128624169332102097723750552943812160611010638726712261451391667324596998809208202926193900780646414400031492023033239655940701928494923089061663300175688445694101132963227040333392339983851923630100792949654194712147543778511104469758773582529542931252111370788957422859546499688105791783659208256456219352941338433257837121095546148316475991700001788400394780008268316106032654206282511438356259128196612335225141422959051066867160821699498560359541694291429157488862218457604285421629713586837688082554072334438301513848938568410917626994475511198229890811575880882217140887299298658545171556383960394991641500618396815602136568220651723339274262533881955596437885767309187964035281023186364048220471527275448728883986201913394892786979016678474251988088411072110421036189014602102589986154199502648262720741887692295933145882897706556148620071273892671236740681016992856903726333245895788525010070634160679181237120651284515231311234190727692486242557637299140618448960537575802747619103945750684751779671329787324060171332840139799279397263067916549929327411453649832353039142099848738964272430247685541047640143564266440397918267896985648234897728934598251705227561464952696428160057520096838301060494291040316704121604904763868683266005649248748741838844240791358748091463805253734097905261217550170010121682325625890090382211805414621249758964967225848415097380171171781350432961127135475979176567911151053570053677806933605076534263218297572033888204529960567494079229667282884100561111761744292099454060603628094410621496810682991219302458161907156650836599398416087242877468418823436633243029452110882657097307771929196268962547192582583377713086377355349703262576710291424950254387132926183494011284297926065210127727035754792989079444639370196716057529549108048237529419824365364890896969384928211869964017783491989323667596319038783407025283243073705425607253450370132151799964497431977909435442761191515830767280932535918663042778684850846447669258366744953802573598168938331907180205892980707670725833919959649866348883449788001631936180176155007202770523821066879984611469219897239431862756733286100286108283194890168759989733781786441367769860658650364084349797537131258001779204588516737660670188953105887316024053590608552755669532210381495821217764280445919839179149419779234755608068311165396590409757401791899707765292027313697265867495131381870570955754113605396941611422829671075672951736679775350827292960065928459242031953221766351558313978787758273755113399778996599558885306606430456082745672022176073723664111958310829648667868179159246875639354178445021915078094213669929331026985582809078171413534774286455304242227703885290904010262484490491175386946201255542380565928311612130849017356926646614019281385432079299743472047194807844223052441698127325571750938866402127157016530805763941032003331339771999208717770009362894798619216859343920509366595431331789891197378151931916474895220172099099575009027048335366206994475536467139068708408713669948324228987634278271135682801748031622802685886030006169870815598435636387791178491229786600036475910269664363833005796151123229450537641399213889801675059461253022768223842863062215875198633668951192683553951197132359700418235174175765799083802638859659038447433299983252959877022438210750494742485451823581425300479925971646122518155457331825080104474915132364043387824105563690870859714332888071154233630292322837092327127478957169857198632271865721555107193071228415433968840516918924548885206165362757858026350121351410114274662055625503437937009987217033825394147010624507346433167413842042086859025353416614751375192418971581385699825577541616072119530114872595477717246868564751114439879428542373517601933417177578468771650201641916441952294466828224585236163627423066360855704911419147203519292259916773620265021766184476394529865718662135592329562206343973312490770578780660404823011328315717997510455774533095368398414651225700575292296096753212490126840989927646383688500812507351631977912130679518163047472838052402082766967089248837560548057718973918422568846598040141636039577269471018702162322196487698428044270500546686582410000434090160525191415806419222921028661442671333499066128504969379007698868727883770615069504437124354708978727444445610434496466220628627637293026855223855362468155210714385564128435865433550440226130992438212910991272259940992316021829146723813006228551344426952358133223555051210208822679746050308249717083445818650961034495323775674808830162272474297647995991193979943183285800844042663988428081972204898067338488329958128415102830934731318052835511294517533453114449137892095874550292584970584300278449905169910519705621739813000311068124856672319780330191764896740502666993912210085023706554036613213544800929551686713076459775020621651523981150137968593931018899267094137867504831351529337517921522005347824302997343820503646836364714760471304172247833156745734723690131377902371155748509677450004817740840944017468407207916579326902007006172960417894816986076659499217582970677826378344218728601527089203856532460620991985824799827552701276516512056845056422035648242222621836403964442745698700132405462525224862561483811482419394784372814384504655765534271266897385237422377893110247919531551894728204163627995100377507123904611986392053574104906549030713885546570500565859253815364245365189211221398127431004079938125593814813129615691319597570024807047206696063232485133060195502145342072934528800868080586236338935705006818739639303132755228266307143228061422880357441981649317807977438123024421595618353725604814604870352346653751677413016420131415427320562692770037921444137216107284196372042389072902475378733448344970570469292344308002728782741854422527175483773653156418823593676285558497260499412978462664447822824840282299711709526244979744731025938285773894928098467423470438553888144670556991491448561311353768535488183895737041153307933510881214250784956275712903432718002162748874458648303123146100195147169187813715669360678856428168547912094375432336360543707465808727445686139111969702411370133237650885119012890374388802774405502750595601493649625541378749852133580106445525414549342570246051143455287068626971523935444275541735178156823156147491467655653570508653993341601967071136259027359932033442580420920635405833324007853727549296083482783578549241792010406125445724174721204049324256879871199704362412916840321604767282723883589043544648451885107513356039911225878526283277799843484301138501734794320806422583931151876917101614504570063535396650650487944177476222749365226398848585047693335510562813723906743583943184183614821545464233981020813179184278041706920274341805495823329425610788975919069041991942333966452924741407425453535871231410431867582790816424570605910613550278866754396142803368665842672349512886808056959335550224916922100711095995179705457952116369327879719497003659350298382038233381707705302619002504887616815781406805735430205655680929411729177927793940545342865513121928610572191869174332363612805226025831147458840589421536088906744823969399202843753194766830356092206605885117973846241929903317756173157490108553741356194083510635222437490096461445727351635767747894656623966471086029473259125155836599729407156729997565671482248777498249444021898795609538438678772306072559380985437220400107776690874282646400459930241804658374475027157156383428577416275796240202875053241654245433604910357324362314005870585782426507421298849118618464070793772702724529286124915906167832620941108046425699745164757681466377611754002836408367433577298009426876813902740098591407699710825724830601033801512892606612110195545164099414134385053742982424965767175072423990198570007530903240498676235581739497288538313855705116432578779096066059800802598596919819071050892370943398730364260087699989844640363069935137087877570993960578110057617181835773429232864480919819739593611498480074933705749092615732082162938188697327595491280271137282794386534673213919393207144648183379804299129106823944615263246517354277224572747446567456942862732819886137520932162255446994575736515325235484986990845181836157805489051389901615434670006433568718596484488616376174923739351368601357346905545530592992609183343929034684794636637179715691736732468986323265642648980739148917059818717197074451636295711830809905106651250746728334208492000602500594553812159512607520289760853684564754626466730253424558062760153733287326336079279288485804618528504632558596404153154465837402298095322049899318986360988968940665517551007481516633058205911355428314110857812456976664669932239226083844813997272800255120044120074502679539879512716562270095561650570631981862758427592786582432715691093319807557399871920035644509251289303718856034402688192464031098817196370123841289376076003714624698427983556264759752656081533590396726906252416220532438730013781613094712577659633126845217139468235712474809434448105503891985309572040367215411290815073619753991764698685714474208814990841571828949578467391346028994543144620144767956903028445379467133062381323915540997993849035331126927624899816200078462239003551438820500040580703820145059317264041241635893877890839378986577298670664644707638818882813503818116987134700331878373621282886674817723714351379090181825387019302128513756913671032176112350978593183314937706454632658357817983825814099019604654438922792605757767057873059394378628219693594574528955033018827601903177651504550597539393163418284212907995334964367643933704211659210606417732668501771301079705557859696109576140555230874564849530781747567832107044635063234121066774012941725258696726462354710862334408599968992053707580362066439053363220290563586891603021876377570558184243960428719363785967301029243922670829545756317550601421140496734297888715643730786791331434066791066696171335175707837498114513012602497387865655917272978031377907562851463657221129200538994644935387558472436934750353592736259723773470702241509796288577953996148453203305167758501385416346119636612286637470518438292609216441299735066823126830257149618435784038313637726632550841925918478465362645181148816772775783148522343303014007650241061548791160807246781453502988319324025898154244988376304218572410991800183697192927470947041152998196061279944906764000271877406479928727351246946813570451249411329004677963501034736939239640798505784252197414405957320893522043467052575392805064357730865644858897882523659771956788810018809485056142148155040112383374206872724974299465175470372538358117006465076230264310902008262559317896219536835112718453122792933365748316775887148642968616008945551773243611867755647029339997025496508046083303487362018228762052426407316049447409887178027240875773980236686602813723730771242658008952102339508742023039223283400433496306856285463161593089210309720453741054640247143678096178964800086273291401607034010671233493526394804827344589149052381401347743386959472733175017796292156434873567155804379558776828142851373248909297664026525826872448199314679182157628780775762216293298605374266854822674058182839705417142620585957298590490863951023470740230957930725513950573258971287699412551900181093280838328072161497777281820231500998951811398546484857196768461840332427037770112044857195652807436072934969363496592650649203284285814094622269529908607554413501442869202332383519310516523144983341691557499283891106678365485535801793490210812885026374075340975090280102351798144493242469207477037144976931101323868692913079596440722878905585381544475060342767351260806415844230989326407422202294109097428047855325438246088459090883578663801326731533352490082861478016603288661220335817666641717545071329274593595613930017852544649412568101401329383554832378702761023313954403167996034604154246501650031789394901380196917750012030234246542316333808032283151837768495457948659034393971291338892580200379088936096187138851057868563721786015956806689303260233626177165243378387999200721565087910129292545226107227162747963712769542854371436623307922132340749362936580951790457079400531524911157479290379294343707991569165580062138428192185297292588044082997762765202775628204243366697099015862134826259077465326722450692327684565356256756392452828788822239598114528085799309661887986611262916291964984112705026082099498685623119570202082568606105743666116331577326322962492771887914255846940233438603690695903755386903896070343803568954231962001958316057724006010738477367578063559473685704286930596178176663370485641050476053371988535159378040775564236350359211170518441098577805740624060706090043787985255428571063130898415306573056162920386691108504050794139844950277551884347710917579334268161819241887003521046599801601098363755183754804046859667743862319375867831454291543814861508349214985175410241867949933730980567786174709893145952704848287141533080874322326939846765569819445360667618225050102472983557461007589144617293743024607618242682575449581365374656001235153876836533868626152779616877681858632950874351692397260890251038378230075292005810265439641074903882478376083575707074435186491358562782325462831695544726794243435111424967446902818556344610858700275440360796583572652468244142310528061334973197674148862893691354634879171731908289190720503091762843199405946081138213336976683741692968050685618124668311400611573154528860967957967185074678495947433171077571768580100216185158208607174240322192862912130916193059994970518646104168913695953292872793883038575564505695874066079119240048380661185453665812910105497737750054362681416889217042282083149729163524165775314815245028425335311828416755253504742446864715970571231326154239649365662685176818069743917792700965707486213264668082513629225466718197976751869411995919942642055969099673571707061416770646830884221500883835995074462804147827530393983088216754481119794472923944444406388965809713807283816114118820919482263750707054570284529836937183999956737642824866166664607372246214634211114183445893634573988335048814204641854153807355715541033424420295905333366085217683943048682955581300234220302328696611938593631049021393487639235756209901309028536648232274403089077519754702221562377812402817454192939590497011976816281674628305825868160603485307638698050874049106291482132594371123969087082760448390652251842313675071011098858974500527279495053827336971266633141744226567008895236806314329108500197997141345638008523596243032977035471352090775905908320210499186796204021502115417996186618494054578808377306760717387672569274496997243649934222029892861956026083113678575917935217854044858414293297105853262035656428627787245948158911485278027709305747752690760690073350896706053458896303423847345461125077296329336250322414428933136910916397493614552474974540181679884136600388959783066795663194535515227402749349661156032278669420684820590602048578964407092970109684769482770620308844367587083890810877471392715055589194532013493962327743924999457020517613656178805222334671186336077218445208901123849852464041408530163919125606189001575300463373285295799219665390075302824879198443338524292806310641555595421482355335372964857085656190981192555753813303085128740339009127115749214251431547242904495726806648333208813209351406632305249991950548800492472393933420180055086309915094401430075362524246649269386712976372889276770750385653940419883244944722299729719451732962399776315388712720614170268568037699020872399672942757696365520861021940287231589937317104387607448488480250872214690016777639388349302179274249072897877328813833361731786824064606841074031174629966521395388309702590163143911319260737022536771647826790774958035788023152426537970039411571025419352940501204767973671132817515571806188688521286791243123371702012250732566057269280505224315328788374438624203278110188372829061167998743320428228416796571355762109969056863665619814129108210515636308253106108507847501360088865926385713198912143214270007930083565486412704805533655612105841672906340003210648308332651885869334891998878748147714705754333248343268900973665911502210686176558654388625006776219845531580135317149697197551406597478418136848638282612787059681540011472117959817744623272265664109766791949365131107059233561916161943448880150633193386309731840728179201704459769125643971431041432158202088692841594058094037836736805239285949743631153760754808332221845218537431139395544552957007974751087683648461492698871633224347690899054199379057376175979877028122178698349297247277356376391695210566336052406464445126515251741334949172296977560590272011573944739851266867329704179753617462343895904292877196177171165723536769175909392821384533151973388942488172144604423964288606954091362886685901059715487184971212740185105790353683643038298546119265741740751131537875516403562465351377251522106802558336016857781054068977681153638258982897426532923587707135935097450038348227770549979968857297925734909486081267732574094727762458405101060708336954826522024473301302687944433140158726273909289655709064973057994706146604102754693511450723965355095099248133222223040962984177441425826996556338574817975175050809565564067006813785796959959839085359088558309581751260317215031763512554229110118785128260554960117962736136127425615301297219056664460046575901436516087553466191347520305532665373927054598109919928090585523958881267716114471744708998082867204198160566999016615337920219672550053904492216977027676393130671980492439527902601376251937056170723242344737168726958528573592132259954850726555462758628442137591711819758430607849379822139862856663606430282078730325919716584344312075326843271211401105407149393789919583154978257123508838845576015554866497139796353197022411198360947664399065074555653399234297200644849631228632055992753512585376631988589819879873235659155625999501255593790285701491166730909252818207071172292525996259401554297192758575014134045529712813810993750023376698064849636361704512527370312142181708777937626053207548459332566692145497433312421419910244445419780092690640845914382421941482857284838982696163530047269619258729601687970569992325392129264839623666434213435091628989481084166065080449748747922695217564116735317816166055311636215041468918890507811623906297100604302285582501970795390276469448937575723955859792799771042369852789750480948982818841302777332396533595517945125560410471163132553608305180248469972085831765218343981631893575482752703169001454625616226213343822088479188307918924457818512794855180106571108237955119762409172192159693833688298416292705609138471142560206873660570388422450613582110231981286183310979527104964270205629876917935694866574512299433380238895750815599581409202289454107171270886496804827574837243561044552247727698624377893788028455385943045965903304577058353603074820495944180852749316900902679978546976140188991665797743679138792150741780446415228373690938530484296731498638457564359237611063450215318701187177890752377263373514260915182908643016715081438957881467194761070870244724943797922624684565598682471999331439926506086137518380649286454294904042467325604127149873559126838909718563647963726457260048919051310487608094082027405735443012272554111836693200958887986571947005213084660521205973786937864784361866809324421662602246782873049555544563701642034310912580497254290638526768312512290123305101258453327884026316812088617626098533989674439245169333232246736697702742509513043468900963576744227719480862127030515874564997509693506080598062548039934707821784716002127643972350700968890969409147971388500024652584988972042911463019312860023623903116433639381204916617928133257755954988523005932529535628827865867762555235279462569069525298159489851874272681616707333127304271298246921555501317315831711573517859974291316539017194922821429013329894573247345709790518571841989634731990564501320905005089704941714640122788969209359939760289794819047428391185387433264825003339892929052668673947542287792877735091732113694842727784309307837578187970093627175644880564895113441070609382734468390587732155863395953460642787975437721482565030663759670099918614300074766578100797546238850348587137291525259253448470909628653848022028410848895706345784495029029702012173278830086430799173855544745454867910242247874594901512491673204290458773901587483340554223934160567567872918918086541653766521726625158315529167001256804709103199317366719695566001366615014390922341325347728787053452363705020986700717266871460806062786760274667494333517130907280025649739314636506567826850921365098508157556429444915852625600905807961501313397075011505369382840909453724495298066822184349199385774727253163975693927211485896334458744208833454327214023138823128666743235996480829046164121245816898323113542953334281346989123015543834274792085038088795184802318774241326405736210312907960209374129577178977217047124115901574252077456652807691458411580396367654445868764764308782470904974957873958348148908170367838574657514903271794249679468919711543257338424888123026269167138655276409716901130573891500182706530581238792366588714664801432516884957414228854821331314351796415911932222899887192653853567181144908963170631158726078555935321598157927893198575017018131547329942556305460471627374964597225278120780159472336731107259459992132178564924813599682970943838445700843873699756670755837184865694238584217848406352452357878571415966268796528836579183130733879453247783518003060038199275075172030865960040161763187493963122628028116603098684620804668886699085804244609283013794933260491932177725687714530435539030320053145323836207120612850461110837407895625726788895103736056033986289083472220577028473506602992215590032790056679608820719392530165216321261761539640804676521120688873796676091468525645698883657533589712070386590355323727897336195396337526760209298951545948899459846070216618888060035408020375881240983759226059192869228627026348948879550434763895380975470259719888054827164796624313985190622560506570294523907139014112303972472184708978290748610549671423437589061172227594732095026670465792173334635878113225538717090638862704215052617610972189676026315790493243197887636340781405637992944753487463740096976481602506303081136770024991208715871326423551283220698930570223514164878676693529991233989710459308912074286364686851068930825339001228824212595525532749815556156099886723437234439089099069376188757648639716649486582287616370859887408587135257723222659466058908705595538883224705827483373076429381450832625453048095932189913574308891449169033991459896500587174418797735422607898156697078521580402389577474525273639612623971524865383801254926766406178859001959747641690057683258625630346532690050638441925797791986607177482210029598987132636941594468553417573352508547287708984249117070378054567572456562722382496250140740280304049666886621025142681662609252230189351402391523959163172311373069303390721264070697076944872956965711715932143560953903385994367710782950829715313589614670658814418378342004590840141213412556406191737929773007941358771017698392701723960542003051401260182351452884099975578770440876932366101657119635614569060312237517386004178052280256704678981939417663027765627078855759685971072643316209635788117962458302713445469239212685746513248847126106716478111015494877984255752850249981930071785539306064459250220461738688732120576768918371319836707873797926535735045232358620289996461861757883345099680896768991687910097197785999834869161593555190338695578083928388957312103866886185292256242594768958064506754756282607348072293784147740306104203353496469065201195698381567033617668535993176774429139851094805666395479843203146466446802056580792004376722617721123315194005432633487804950248976122253997768233351270963687377337688992345058403009092408847866562319399741324538638108478022866153930476242293637912581324526472179247622121266943162839883233413824456577515152789122891064150733740496656262656734433642193518587766825314331042504987802674149327931915900514908139701388840317234001077474321490876662230087956914921533133430451714726937837336693338990260098464651565312007393674737561660425036597897522153089536043087919660828960628236175947645006697185820036186948085618200448057218183698225216537585984259537808107548425053787103697439494593110771779221511544674425012876350573246822171066702426450989615194426413005430668670919819334391182377153125872159605109624911935090270612538429140102803691337494413062275679706968971742872233935060818358631154855051529233279660354605668047013646596138918459588363071852077802478119553671653821868896573114520224121312625792136999874420632734216678914903450608895813263088115711128056442949508938897029257381575560986226383253766232064830097656626569558921506479566292639158405821635413122127791383778535786816782574685356051785384353764781750492957259346892725876450223615897799654042710129079914054502207425601373015755643919633373182079797046553098402910761302510853804685445449236949367172780731254665550317223022312245179941945089649032630468261716154148628973320728334606934395690917436972410682798426144432834937679953796480611229416612973814599609356674825822116322545964098182406028195668879623436564945334508609630563228396851793168075916878467813203626289531365669321133066389543536532199739332705204800884169682036124435970794855795767427613094405116370454945185370111600643660034540452486910060377439045729699719977443382177727299107059826605299288091352055613733651248443712658981648112692200934918505314077767351531105850984356969760786401363591259452706086498228741325933416272922615206536914146428904824320727246393055754505675588776691299006037047865179208354564551706259205874277339517219526640033040614830779086823397226296828331581128232880032166641502632255381504403828412550924435039949934912425495591206714343862841914568204921677902513153393226851472347237189651107343170026526582940360030789300734939985165286908440005792813409623351419595199755302368148633624909583772674847952721081258958424829149923115536984192888532426620820041320434081266143536210690583411474049598652470442149221110373773904685970557014137716531244047301433323412578591475399318293238427793394502676879685371119833495424090104447063109943938525174630728477839815417884510270455670137758622993664399705017266764389285051188200612327439801462969165250029048153928613578567809616491559625313126590498241647742937048660289359034728032066588535622705625818642002325720096204973817740843663232245099245859538744739794647264474875282075343107648424066032317283756108301878478264037505656676991428963330720630117211305270368289223573874721870584065854189143241067223473157549002879733629925458592861110504584561012200356712634477128833845246584598531969846787227830415353740965550307196556219102480973378454169801244622905702272465475015243119159164625971574696496451820980855455926098053418914266979389279796128900477819951845376484812508229563112360503661432801428624641253833857015086043002219744094897203773750647942107987825259357490847580244423081359681782026302662663453069281167957409881355832056590111353062054562450131496402709597790094858653231307426878573020485685694068470635764303456728727280567322414007807606656112646958475512902389572513754060255855979579951440243561279418443691331581091308676279460856058205403857415552718689436668674365110097145868332714603094210967337064520733502297478081349276011853746288601267634306572832616342453033256449404699400276785072891143723459111584269913708188566729337163256857633427464744257475178618031954002413123863119591232536169584414811000192675677696499053604305409728882454090619322812257847767706929228210520223659984118928852465529095747703418807948966692131318217459320891901988400534489331038638882913037802561128802977418581661457140656880477560428313173925747983722362389947756710712947863924521088412810563000858216741905067249436877018056346589719568342067339940957518283734178387005639286085106048899116455429638113899504600105050372003354647944770422997163251996872062927895280699191616496694112124701322693695372758058425001751277302404530863045263095004928506740627328915266569984466497787190094592990759250726666973975190423901078489889148106134772905940583039241877371879252154751502980125347529165828340924770435969171681980719969509248485635215796909957530941181129178449246531553977279126398936133972456647398520329649557783088424396763297081308180391911908269075002672062199851955838707941652418570464103561694333037813501204105771302435773685188768148971054447406658933582584320475198557175756753752150176728105928840538114912535808388666016251169718840721875338400306744017487719536215110122381278328609000634397091286450470524321414820454437074700288718604482326747361177158034547228311343426564655339905473341292559489791650229152775452723555431661551437481679554963348582209311399441995289636083207437007223197349498692086196180198358835457148602592875634973742278222319726886700495799925076482403846728593646968396398810833953546967371983862890560903904797635303810804743976436264622028473498330624711650305337407306193711735372608091728910210570994512549421488858577542863242066528639672525660698271080877338322803978215183576612147370260433620079231246876365418039789715896787971486071542998111211484026603670811561531787988555752081345349253739297221010836359430980048944938929439585727395807482172052793882991075870999247903457419331081899593445062630325669312056323997069487299324722675741484547494452811194198688392666782835312373463051839494695315499409996809457820795338572461077483734399261752576612726367851044322952945656030084924926638023402393382790030186128323095305099573623186259830620853162111352044258554371931559767682662642429846818145317486538584422303161543386209438668113611313333459372519727384175156399752592669131114717654154169655984958371474550747710492074342858720743337893600605034415743302571986854958319883423196674062808707901588209671114927764472466409871721192726625795416208915580598083583800281970549962129477893847804431037968818912893672561940377367264808034487659970620639057922637911485979218550020357407834959934535330272701328465110887369044108781804707035015568952395841146607437516785705325381700659090953558800598879552256906295599210607412416929680442397062947527074637466715200999234856576582856904706594078308414824043249029466554648055167274527856255870680928818280518102890399633716471356665494354985506750366225058930258984350083067977948416177049670405075044767371131473912375198473996474139800790920524792518423628128283848273447889464874422477151699135517118821469886612603227774933994206258727956571772243275475498807597281941678094416350085657255473301269018311010684873801825397838081099554060375639655684832283473871373070823183305922774822119627328898447376295257296305697300579061300393266956460268949423304411122799664565371237460312336010851614179506843549032820786088624541844325028508933380628694387091178515771425825133677419001722199377131823439557504374448651060642943554659143198126537110264040252804771925355255359434706308445516307511771452862073189439536796666807015547042420852112722440066553382272943837604489860150020988467766284920345771337755947885009943835891954525846912409362211666812478804309758795027216198137187911190617476497967119094730895175407365232290362973941904117966275765465526164434087267798908288057365426539321441276131086788414087915698259341293344723698839888183477110621014512896566453624618660819418796476126343367197047408156784264529770801204858141328768080743503883654809612943265337271962315587756015779879031297980629501415588800740997132249069849605991959473152492911095909497980394254770425369946079064096778270643928600574983547469188997547812416099077474926469353482404367019173826716452024063551799296554312696270614719032057081604159802121687153122986304743111074611907759878649817661233831922343288827445659108272426307976985831788984160051896496405789081017206191399940444364605085739513666138402077885963353070566040028953592666320944828607917805790185921642908650250432391423329060787747595089076854252239864703449093642125140760409254341169012731893144390834792323724854271682958091222285014174697836436161775154721604635001176403452480577831090592508939590532385395346889538524377140966391771520739237949868708378487935094556670680718666118835805683319085540408360954642530650550406159159200853242706266903722521810291805545341880554608147635859015142526811337866937595745723618135075190111026611617605565485450169659695174748837507013432088283599171684014750233052269290795429221836565724580581350514016176763691441737405805967968104251933713685532296306673657324877091691226072935262879976649719492570171033852163222626263043518570627824328125469072448597539042738502629760757794310592163363060287835591991965044421815537947971595581643529946233410501974864337710681467910799934217373153771564250034178369703760790155915990958670085533276003624492124625685921180631204165555236877551440745207643534347276156879773389288289271105932019599545710788711534208694605520395617189333479296982811246948893950987303873571388381799835901400352474015010201181274515994116900823224867141840538437018763049115264415925784818614174603919767960516223562712419784085673277288349624319084556001026596465632143190003213373171297217811788861836463367212479260529035601920440968691096956929814257745213187932611806399134563299955002358747212326827047278003717581685957774095932302711793947258184495517624246418796259537044762198248620593740255670728076143278771068411836168530587076536163699425439114325864208940931943725705530324437264808785544423316285646492754618045091648800949933794753373194495016395064338545935905856576783703975030866351224024448833348666755123496881715620794153924140459730627487598701012207248463661344244823105349825512779726063903796526661154185957041781395956702265377773131543672500883946414391998105292569680324224972880227965375373441939595331810396822858525287265895421384028775603343832376893654583168254884488715935846153377371523284705769572184842961273414296579166377778121709070245888528661002092512252770713469910817544196902613564912905074545610796989505559592490326602061685381286269303369311902621467540909038620551684597417206284789536985393755646305776954958206516011955665744160188252112798542437800622929393818039263976773927046932344523667136292429530475528776792223343178658789877485938949944543917568725393389239574323249419907348310641695424098425236016461011633374572653766493363692861830318553623341541971768852528567663719172011844155117286476619342980940942797959303431826237235569005053530497935442847832927258290727079524309273810074146601972858981191904086771698667456649117299624731986914513124966518055373677122205749720536418368890423204496840018877399542437574278808711951853370096406524791829792497272973153442768363315216570814348373996761542693575677032182975444820803944516749080485851747750292185218836571573184084026906514988811689368513620109256784680549846485748153956678815479975899006749969183481975054906758278814033419964019209405973397563436902829279079465546964498748060808781601048027161485579024759692718314196611324972747689547274032977854733401126697752109615380575499368200787368712210237561901854459134066657691523731659199702456516645122629362948156862461189458729492878692542747538636535553310705694099520690368188462227801455042205615251460081632531302683037877054445490195714379932673198985861833725873133372601038659904931172514540740145618108882036653968275244283895104650568634686372964883308853990691562664006966155250051559399790935037755056354069493806641612027942075374730532998185540681142997808394461565118627258947510254519388849219103503302229886860696419504319294797176785050698648514936071377962010996694847818987764844683730664786084892108048457407137176691488819523358365715691401023645347993581999534579253390626174114941814197472630665404868429650106847469809440166017210272827771026323637977423724168882924339717267709512956473942429125313222306956682568245282284494759697643836177979322026357444943784838033454592351963475657380626714264879903238650537659822070805758870771603075903458380050796197826274698334369501952878275250321287886985366039040610393062589064205191231110500019308827821320017973030027845876224088767416365183493876096372926961863963454021403640488570687283894646510175924746645447077971745682208956878049259499968131280586037233747434838640167496519553646084534976657672926362386991349480852927223956880376772425096231127441633105759265656422717951607660798717295923894136301996425521944428409649870646974339895237761855426813641749837686167639873501293154132600077124405642366008224337986707904476839995634505317821725639104119937341811641655978536785069484463493629614762074513946293647124584444864354740409396393347075010886873511353835335201116693406719672770977868497091196900128261493108018031417161882926198864906894342938123781810935951163918891294403601200573620271358500885641263510413374298408247989987288222710358667892862061031384103507354269758443343137773885525341661383722707973906572209577314472636042126065355671729426744735375691512645650880168090322528273548013138299762671503577370530860524551565652624178050810957654241031821175173046707420433947105723068638298046533324221946889610592946740725274373183257815398763194904129761616904448578614286932139747004832729384990695803253354275340129312837062481618936640595316818638638436153892086446830178427794343552686077604385167826856809168368581098303337442106342196656747557324315715424123345030178720409664543196400478509159235019486655938127675448918882663406381667338976014740079554789316949356572217130946412838871097902654798593956830444442562247676411454982936801166581566670632554442452665654078991633144217704155484526882538448611601174478470645403518984647225070946414871901665536179052435488385671831960730653482758483333934231836812066395587697590261233240938547659004413899604952153157303394449020575968226491498561735558093434663706090951565070728157896579061199732618932014681424938047997452930754063041314857494555249628720570869272806015574932730066759768764092162680802754692565469750624189050900451851612121634684799489779749997625227671872103209985196639120439085241805062084244223699790836183348542375550238430889468824015670371724874139326862188551034773372473612114703623782883412913849818759318788125495464659399986220293184324932295396018059459197028529094662798111150171732831532153555436019500241535152733030672890465474205239424210336022927354586152131623184041373411672846325375448439687733060930687605386778981284094983632057104326313795304342471071708710249813440696227586406902539649240960254551706784106384140493171709984324297597461078623928766944720711804722838131697463912031503266929725558168301703952427802854198468350870614277672987586825105643947335242681083989187855427260258443312239371331963903853258103707401942703381131659824382654249224188413139335524105416108171658159982593937582263596478420899375129088413363616973850942310844052006917630479347217513564298540692558270934997267016241556672624160164199759805899154694789316109748520288592649842294951304817962930600696148677522851172000061589199115561486059318082195042034767824673912695656259485038131387558602080664300738449893857385038616571627989884314668198354235751166925840758401431110559161374650703095994994167483864426540279513870654243385399637102037613347480007328520304946592192532020704888941997289166854398050177336765696210039425544036806580698573141066359960996681924836601347480308073086122986060969538177188716059708659618974817696392998707921508135023943027065587081946597009353456167476426305466939726657592810366742866324889680142190461585387710806128859218710123123263555944696886485583575504267506400209003769052378974026021699671024391618450376603049865505203224663793277735142451939182876645493929421255140098591795667908896228983024286078206184441963850676359895640554723650995125071910571672879158895077572102016315125048352236907881803324397611767277856776741628003165585325335261236439158968961617434161667838392335621097500055755873025222222277474271651085901429398910436860411124966703480288272369484293098557155704973026884497504979436642196252053969960475897664960591192927733452812712351686070087894306553785411061197657188657492622522419095753405933694425041478482007131537176227828983564170988713771171586592495002858106769833126531793701196320297737931269568730168239275874927712021614361596326980792960208501385505924567332112445601438215288537562624041022829733930107333879051656323471827420917194529076812308872908542063494737511785501330881656389782557230027998302878441805342052688273321183483564400274382816561638016649655801793698442360875785923043906869790148724114998066103958219607178308058405636939576304776184635340290391182547644630744518379923699465645369436628010689160709169812197853478749175741785422077615920401442764945228628911636814333160510974515738565244230682960518154953523399106119848135646322785238821921549607443879190204175753990163044007470359676485754486717729366595506656194759438409347662190397565264798076415109511849438603667958439219555328398407624596067284037402535322030739823397841344360905413185881966584783757817728681857678624450898254315544322167961257649993770532782720678642719603625014165672157753596697806044876823271588990495880610265558801661968428059717409410855496992576183290489110522044134517516954670648474956307348313913431582149713232308022030456004367113869483293837803999498274209645582104413634366436091342224040956196385099297031932888007938572521390814852228737579678112068990269172902070415501048088038627281652447918909311526604858983657200865190881192553405781109119945328886432933120937441729823089262304812045239966585726057048228555610444815519943012811880073594045457423167427580802193650245752330431338277431444187985068631308347622213692763418432756540605742823337146015588996123596899372275036559443131126467520562209739882553335199150039206120689853958318620940934625908689496179672806623992128383123758735868558195573533507204222953716047535067280560339163472113613548524019086508102705095908722181213455319394503420647202627884618967293622754542317449285338413737748194909941829535747182141803784850548525012827313815628511808888002794118991384363408301972573126718269225601306264962277286844082767891286448151687317143472316859186505180915794008604449650588868964816233658691555096203896723889222759657599125064991111102390337051832697858717769615142105074453843572498920763808726017164547481096871835475366370788355549894883898081302186119509021355049493336145692193029204471607829346983394164486711650770267955384624392868294157397575708699629094556308519275295799224582459458680991548397948063160539364966693267895107066648737447707535610130441898330724804964077701390535935420758552875708133445804507902393983660050802332131383243259202890311051521259513463064727000681644897922061213556378838385074233099691914863589563672504613394229749780117367775419692961669027083492735398673231739399985797403018587291463968339515314462393283334267993362386914944235661326491041833579956271756602894067146481080758021784983238267817169942233785772811811110341472458971087960826053042629328060498506698013906160654081764527617848638023196312615904706948982969351969141805220982543116961043810066146700148016471615725551993033652404931859930208429313785829459620253861683094601672417936181345512020466725212463355586202206614876144444951637871041180543445599396042640900569219003207413802423941080169384799822254066254843999261358723549544741119685595698045153172086684074291130150707866946842378877678813896538881814357022990554384299854441326042721100288635275389778653210098543951308873068990191773234861890427614329617435687385327912125163356972535915970457832544384945510512975597664611739529053318978585944080815557843908554196789043009953761287436194438374118428453144538275103578525144787455779255958021694380237260575609952578702134779072616099654387039623379237413208228856527170943574934295952082288163873428372631651028576813307954651050528171214683347432858108981086697279185144496660365731787758000930931281950881094795899564715854546587299451947758959776347118380139201436495856852853922372196706850036511362147696711269720699349442019105281166197344416547100793422040163041467937131345158845638529011671446797596788902931487272774539038064452047412742563088431446896146160001832731810109097543537556015889638173714828459944644668496676158957691031327629195163606289551180933597624422132893053275594752518918839844321837213875412515635233868469939379857954392996247852072287142519026870375491026846365310190823135744225294395318741867354700513308145245810620837735203868439893741331835681446944587865471029424607735581154010016795703815190810762229012690844188407669554590308946240877672902640505055598857870370288955617129308528427373228078583596430144839604889687498549890207714789558002688104606016753298816720944085261171904369256224132766545784601516337978694190963536429696790684648398614130652864861762228677247327695296875798594026902653808497111133580200081730046033206508146926707226835421509495905399718232791963017441164723000363863280825301933931645777821215897968212859992451470161299848156884088583489701729986925631951018489874512353595730016161530805116110805259275977275255609770344204718462089815110638736797985191869463575949902646065855214042522303052322073180532938322907631918013806387071400333866996823747394939267397663703340909719772040308833314150022039072722247846532040110619300711740990985565212968580481417059782405513543035740539735717684734056450750303844570647801574159316360460624333613335606141020509076372349219606404755610034106494835997860667744232427434247453187182067868690070544770081635249055096838132350411258083095785246586521862211162510210746464868020592628370874010205505339267217095784007167297508889770547401646483872463533172227128474103137456940692600098073359752713444955044448502262206456431969086590051838477995251914253668031414438837306149045386626791586124724038158248771379325253771780761306502964309039221798199391528385834940719524944736451684585406562922676929297997775786107594892398411748723451526987034714505774371890445821025465901664535771257179437327819274170163185926890387534655822038358794417020626099659700429701162986244275248449986050953400898011216275229690225868115693021681511347071930740042770552605207799640787703189938349959329752250347767593996924141472027472335757522218628217881368466243403779072972464778936408038174043873730873799888580630784844153171184851695090903891877915787282849869102060534453858018102053708643186399571247478654946585134731210350017701929758003965544030758374313800340973330440094858624556268998341107034408232226642693340331759778134925422577609836194938694295453760845623317398874484977777123045535723043500451884757580904006014296154077311383172126099016125674527822915584583352994109746854860231051340879742122195540465422144435293045972254666609289609257405175605307799817599109464429568954550621241834300824729302958006559078037252918300528210265307392229967295964989759837010086573551431967557350721928438589998778891108183261616507452076443382097496382819062342248537877367434195047185949456990869998930262421754051459403968591614354981859312036883967891590773645686060782422914446216891433508785908703093108135756706313776404192366150243295778611010531543122827513255919655300629001596852044645848601663581160326706652982263814530293254421410228630279559683893688188058688653486866013852110529393647952028864786562811705436788769088418758378872683294846775271794727916827018130634952109172796644483930225352920547247183639876728247970433274770159957040147692234188191868177591466185994193579667456878990169894186536521652988173814115038087153457500864520641412017499327430954090683295823534331168553345014469605762025395987372159772204790256182267303583799863335281857366819573562934465223464345145377409777655736639613404767721845731429518768311943770616766013824325993330416012067794645735230371497866173754143034890744968933420591808110131839368139473849321083567684086255762333571092020072679960816026912149840674844236009893412953712215359138313314317207088131778000982527559061296383664678616945087323297509400986990489798843228671037628768258129135193072717645438729906732854773855144434375646944751171798638708026839681716777648094366324554191405654112349891608732746629472964425853146330055824025984141404717118998912144712326664088085129313949629065150498821234012525958567875833280542628161105358057634341881905839182007886916953066033663603060071582532639739203973401208758508469580519156585471218371988368196425693437012131946831717576821800542054286556219796751334988821174389290535539967335550405697776822973072088347577358308806563510144531776687667324355885280741291625403090746210513569992070279341517920373851880076399756953089483579140823163381921690261680558485563467934033912269265295716473687121335570962172626876979642452901514889872595886266795497657465995260340713863873541278333466898242226683906983964163987840700579027819450268214705323654184468954073204831966304648937488529028918874151838924161397487345912499519085752632582708145802495188306139684758540067079654218732540981932372720189111119205991168970593168331246641900368694227550601153777393344913317530976908481996360364180278093419782592786190038022240335472221836815271253876704745630242093627981493426998991979165322902936244525720068098392195963869468849236621474834966525536889890514401958945722304716313213454782937126533416880332477396793546329820321551454621010318041518060538927571283671064480206353551434025585467383194873128268443611611204691414014646140100063171432876657841313035007585473965933086250969385617770976749393743975536648062831911396877666758016866286920538497140375076013834364073145266684327180646317853925970356292129770696339301907579819382340969880168925955518294479888509555881061172100361723096937306228001319640291057930086504306462981166916452830360748717569578541148951651894444568738336255561785842584039644889581526888504277915364453807273523480981605694233209321797960876616898926960655308588617523168418761988992849358104288732672565506281298302523875178682075760160039904037093871076732119036925957893378546523116942289997773411422341240371070044411075933284922380530152312740268100395371503789451213383050081528757250999185835372752995005920620716134821057909980716406475153082935647643125179905961725313494593752764034406413872174813164985501765186410797221720040682168334601012108305759020593950975117792647311740476962618354626790726861299875307426851099876490270886028826060636298036235256951223156927618220060149942012922137264756023075576677006251807521458829265708340019874864093099365672565597765385276442038346469258884305554979623180864590173113981253486474746772488948807069064635632246440389198865297779076197325285038879699368385640775726393817874338600912459866515199945434229726054306086019227677980975748957147903196034879130049004112764713813578699272698040883769900356437270513773787632058008005443136127474207926222604987332744578582943772356093236367066527940564308762065435139938876374226095218788777536811732348837388847126208409755938916692382085321728543215114314035477492291037996566290638402820038575832998565635838038446957091184184772782759005368035002711298048961103006750110048791350832256203771848548141478858861688100950944538455129477122968475058001597618336179707211291095486343763573210448254343132413757511741302907190663147743167322985536704396753953454699036645044479182682510781692133293965780113123667987789478317236075614312186832036392838435333586206086500735657497571291412021426869938551699695724018097504869688977803039759971960224569211949000152648708765163412063219832192418042998349433639660736727309997277329602308046796415775434371116234875402222876607584332357654184759111174130968337121523105888249886521476130659541745499595392090059492764671082858563894807788557219004121954901770746857209037073055789517801069198117371286091890303392354540654936507273407946804637068959261640839986740105030571257928660124785586054883485882375806743302622080972345353899376436061249297264090697508566394510024850836951713424826386939492708676652232431004249984036692244416864948627895586996938459131639219766247733174648168389175936147459131955069763932212347953437023794456835939125339058938567221020412044356133761128063577995059045871339706778685406558204662003789986032090733880845453882478295185258001769375053995385482670052040352163785422086322167570365637024732977182660652897953793801475682815015172571607326841600714784374610723220777954678398625478368528977412517781531952299972164636389434182573121767435251207809022605230170206218194301401662499612688213508588901138720433575639493478412823557053406861832409280147965405264006849551065996239777065414844703834317569937650744793187704435279132507459324346206386385688049375073795827000595758488596017969549981226687329482000772106313172056613465354271399331050607774836609537145783427186365750951881878565711920350637294243263292394128211580863147119608651385457324767140701710204492230415656104097106530431917088660544964560604322849799763043337731628365688894184605341240474323130807768772272810316385035212234882701385936038110551345096020125691673793625294720456122508938197934523099404646001955976729610238714396589770931141439475411381107385156996883069993327513289777175307822689019339071673253196914298261781897023487429863231106919262087824568931682515933927740944126015266557467133312789343817041997732153571554017905368702807215013323497893450850606787120768230734467935884946404167931231044563555627315658523699229435693489811231168387910021548574597911542002577630400471082022862205895752408678773221127121665449261184545623333482320574852292274146746148712672281808944171178220481691158010435172853723014691399891519003005506779915689684758119672522687291045886741435000836944450376936470221439378305350160874175382308735288559551851758481962217103753863801756375515726307753267124796206867936797034388307881297039154496271785018158392001975503610345367610652693324577879967557052448452935684646665800089515927559620621496996321737786318949729181036876235833687439054310932066912133780173241013337307174280941112560974744018963842676236789637834003877281495265540657310291009384194363309029904807506336878327676879477038565921315689963528954390752819118949378762389982174439129815771293315286649844636645258222308603329084475348929689702296255656597822627475796518083908357971406361783290487762648994576836458402872916907908339070892838241723382353897886330213851044256810313548173368662176880370841898385918810464396214811791644116171460448851567640702666871032331108177920355430352425588406985557427186472334187506222498394930515994337252227205608537013096516377416468081815004378860328177653651546016231273187961945055020117851007361720955071936041085058752316597210663191181465384443266367738464667937995817479622395668214404347327827722448617270595872368637593258239513489106416397153704990939369474718243516806938070616377658998966880404899683966275274013743292084445720383591683617163958973765892178772610705936410810081658955180198840064247537926427032807665625615201612953454583036759487234346875830441308360103836959856761066178457774338439067542357849176746983703958603304489678898883492333058589983804827865688083442825880860032215193655260651996417595269502834729505539275749281439587046419260857510669471499723308235573423962254304380792310837973710882530758759033282890665312525118356273377336366102542348228448617092747052722886010484139453487320561432113189063630534239932181421165366183432091342838696395463897869920060947406305220351581282664301508243457244323876459234856747673781160717670478443196914090362591397733704311196979522605826068347251063283373681813523443693909732259592052552378499482693519475476016193647212763484894079461348390673683987699350828171257149491821763259365482791151924682215832402054552480261434994671071811236654645181787663469490346300904550518032147709751321500790342209486320108139266854249293700713836194563100362800757901628542119923175710186511498012503158992880844010342644689664630970893973239070963192378156979694479162245159623591219916311496129296168926216452220372719270064725545464860645493551703059219170631386039052178233331978104380592917001948803515172289752394655027160211236239125040393753105426353915003510555787675019026637755300554559713392957848771984441036021624375641451305188231153441709194068369075996771825746000247718170780592093562003411206622777261245234770605653990496286263204088796437346875138657784872084855709815192609190693491673166046393587008635625614897735000124645689676338460040267505932104149954789889268780127470706761460577749044362247520227062813008063163691935268047038543848872870497870059453032616887515120950168631039783246899070021350256102716536518738016159431178945963215753720779720936027393845773853186986467282409400301505841533564456631836402467077800063401587326637683613279286238321725353067706901604886487931255973147496277817636448835202975786485968765501286202781886235823749562024800499632426343402144370044281293531453759455280673232320293878591267430550233434488990491260134962243989858141153336678041769618087652506788188457354307140002707891727596747196301381367223074010604831662168799050908797911296813594272270892122180444087192091567221362950728090204118796848656423973057394013361040857976792493563218546641221471946968517585431027155867613380669502643273180666513650711839697935976103028945930136029092535301185056307899017851482314975865174118092190425181677295702536693944411166386468771932287152491174033220523801588031917749279524731723494725488872213186828106581321208071343539738962909899307876723359098880452285028567706611895688417232861287294256325027081880793694633476146260951473560839054596561245945656352593180050202254079621855772341714024641378425866846709582748684914676237120892832439891832538317466021132163569109273380577388021915743183727973662967436665413255464464899967288396342733749115286500597144354708388510966059385634766230226416116057977526613190992221756718051387797201908434014819444991993453256621174244573337420694920642510369140078428240830198102618404269980338545777695119065726400932549159653847465265919590082893254369816273066716716850338179770716527100476911198919596516955045042976373514996739020751448678588703738699928748252511677924841378446194203924895773271234823090454477529976462384669258358268615495628780355796987093937233735500482866862415337339852048918190118805992755304974366840914093293811691043588854841792990523522026321590265045016602574491499824649768762964800117874747641519365839099406242551387315702272003762436461053017130828682116206761819938417869322707966205792277298502164150001862236262760563329482573235598729244232545063982351196842565387213528246265071346990774847407829726259523327197417347030117196167277130801801811703957518569975844311779267523053210500180416733614332094431461844057021116366671595032188044399557783151364441836013052617337502816138430202804801974128769047977071507181489013678673611563707682767640731952272625940223172144063561638870932290540743073685107536472267252177132965854492706966380536307818383845129871067371361934031216731203433934129487278194078597709393024691910361804895733233178636509953799345439478015008369867225048116673432282979268647984313899267295842818979646981862486046160181319939440023814563032894491438740728525459063529401800125672464242865373509612570800110447477290805559499432184346914192502603035263568628470008458429628213148254807674810973867482293839330035728722684200477024991722267719403856555240295198814475870780619808521281947374500791768650967656277116547975947467500328869579400263304770049317246775664226997532620253613368703833203905632685328707595610785113611364750979118272704717177571284051011177071399921011568283366343839027093053463750274000279737243005411388374932247547661929404722176415706358127147920907115990180939312709029673933070157684122764459449863268225152276878156015434937563781706323462304138943685725139316020853856256023034549568605249665426322661873797911899237637197443759568272261140373196739072098757513052242140126448545743051126664825507999019368453869179155220266235971067244281306160567711420678850100763333391776937525356620349560117293606021942530033314511459751019091420799534763931061194596938124804890022563298761800455483833854501120300441878697779293704658865612414854750600825413777873734416015606299832802888957825610299251196638486730301503851451764816255567326876874843597976122295960051363607864594777921851080640856230982086552246800960313186207007448792331311651850191477914064055930685138856515136122289899315605610188006024487032806161748966132928067986624979858133776312150529366856190271501915902221175674315409718314104160024849352066339737308722498132997060899755547807734385492376533270214116714706121882260632676214332166475664033122563101253731036436650207018217727502946626732241754125447115233421458215862258918615923582545897598843782909576345663089492274618554919189675383587089529003244211959367948907903624749596075626145490243966214231253774454274884469145836027670493282734471951724160681483988913722417787506438175112273253811034498435420942495843509242995627844365157668021141764892540226338422892323078931530673294085341161046400903236309038212756016612754903640748180346693471368194776657256900291877799213945859658323304071740986605513265394805704977277424640370461467925286924513896608480420469516114096475295716402851542052392422992623956550559049125134630457279747958601276837789882850690466603933008555464960884484730975161990088974620810198638837097686502428412242944075856551605258659617322480466394220213748025907342262886244180934222958031955408025721883771127824827752038246929977628185205901712147637203973649349276244908969530686638885035746742682330537191093170152897552260753588532107963371546256533398005347716638446275539100520331093869962626628110328871523678189016481479911119123721780351123977675583692221555627305604300759700899525663009294294131113381702352819188284901879579787349233004600271373474495453503017149153545039867082183218183374457915754129554738430147725403941920748029330257321112703309235493049938490832615203356267962492951004680458418438896024759622117782487601128899640843597930556927245464521041127360430879040299597799500363512691774884838650289635862431818195048142864347834079678678132612825054218482474466624973336263171167929794737010189132767838954211807794448858133840915927614222439150337743576930019839249720565737881659221487660857833235408699796434931471324193231227485204051573058582726060003176880105439765514882686334940685307658339863022374742095157344656595406327810059134678078458741494341618454959080005456580028311097554757691703730359331321097812633951106350872807196568722730590728400677972199161465362522774551625491332879803416612365859650006136061396352306652654211541007048818820818296658280820163728971127614209066485035080981229347507149445934336567283028624010222865464555659435023724071800918472666440834124013999351941364365700040920429938996240591715937582408027355650815238564606104078890786657233989674488551451619163463087715026324502088409561936368311399671471035621208124206155907487019644741426994393620404280217005686948095511796435196510348250059804069546928875480772321501554585842553612296520915477660540112159616878212140319694042899533401179567800324998129563532109280469014536007438381341495872768339414341380745234862898910310868488515918116026601778823764736498585904929520357462126263792554665904386324611344145050097679614307704532285148878422737164017495662297329928143406201554522471000975002308914569582136142955481140431466254988489286720707360438411176771022480261323591371932577585833928774914826938873420286389571241726041863114518915657316416361053695013555803765723231689287229928018445415068328596543265662139268551109453439145508538374333255333499033434316562078281483158394876303181269236628723535346151366423657718428524517853244935628695613342659547684318052033251291743192098780658153156804929980606250212929146120143265786407209412404279577015225512788978130092657657195252632336494053808279798898756581666986342977023653062253928899555942702403725852082716013323090726813714779966716411784791283384771461276815073476259724336700802330858602522345960975799698532604497801156762719298327988111647078958616017757869749346055713574035983124837167587968189806627581533326973793733961161495987329874554130372747231936473626921747868919872781115331582024190326028029827210000096981483148151934906567397354013717583568599708291008869824731725163216309049861694381302881538747732678818166813865760776469373413903363062826376766125647274827417375126954042019728657143248443196646389255215275653185877045173950003864697052048809438178801524835790886903476201238879625310334174119656039498291541878262617688448893962289095516556022030491572997324649378637909895441975688359741322297644096928514507884483340172277711673380192982486779364402255758207758530764375184722606208627784540596444825097670171196470836541112225057041892861259110935247240013229058191513252925647653063955106043956126696909621141969062709577625819786533401306326756189460091848952301024787892872731866230228770448691359187239152702511906337030306511604892920875200684673974365630830746833335817623623756965512502751362435499150818165306010323560478777042175646329396083198354160119964613438639046822601845290308312300783586846422248705986563771381080051133292015291325175325316998665231554082282550186508600779884758376782640503114872082803766189602439593377494485279419099697048393929769047592376193954648728410998115135599788189815765104506928715405133915573944119377063161868172044024344073570926977278168391773025552239216430636091806374091743747125300087076143617078957622668337762408283713584545678056246047486279805680155135133647813577376105974083703334846434062839450405543311900850469306059341089927288193794910297296785320190387985710783644465144252413249264032934610736352148863308366979083400055878183463431011618541786455756216978871493818818377610765783570377896953236686995660719892390745998298129511373706250311570746593487192737440005944520841985712304633940424637415723759861989310424010898456776376237533759604648714577747959795208531249673036640104647339047962201722580459916765015021774987034383200618554653918843108648223294119306181602363171669917966436687330412137851283704931308492264981059629153016008784513102437114658512448547735334003700166517524656763322409705299261196193208523595002667857351459446033667494455399979097669893974383117098496820077983844662080686820780496034792691940727428079086752090209388936415062011698940840082185162188779882233213200407034855488380222819033604457308647960800692483706340104951297547410336572965785451245314257354351837349582351832586680216197007726502565351359519936787752579383424142767306390964783654075398091471636977104506743930051216207268495168485857790344977057595632228698971124244324244931928131137789907396649831398174415651318778362061718500585153787209334635395065641525054196549298208913207365287263418831105827287088181170987143852681500251298744529260115973685470255041094499922825723133652506645482637991687158079550255066805716212120427839584944713864940846897248426869134380383028936700559794054045643138837235303025046439255536679845355350423931055573593723614542173769571995269930392562009950056078974628696529718933997431833793854018310913955880238200152038907346124955098384716193994868675012130850690580068077919641359466846928872636241280283378638659560845650450668030057405660933942823087969816030201087225251972574789071463088850749958606573019115997334765506853466944679613527461677160980749639409742736787636531187222255853807952250435767338214367791659605861750706996110828655759044522009277386953951623687702796679126222158511957763314784417600879264131267729968056709717278572138201107749829705556278116089786957062802604714762557686729227651156598602484601453098009269681038931230380086884487772186319813003496373872730135710068888881372721156282628662992832513481202451845079116638611053321311742937483347666980834145704647264877207489699314863158551584071838382661415313735244283363571229291508132525139121346174730599867848190993247457639740721090271374931165710510063076611203095551813252728794924500642456457879848428256874680396159256899622546302759048390059393397937771875627309092220150074448194519467167426194742966651847221970789730535256048160024094121945686840694048150541122052313696304487638086591996383322424372824753560575937567452662077707956049039931360850111845266961521149918774448008724726008880299819331397688374697235037168983664887799555094729261933085739816411341525529665953313306170828481267403613094017803322400259720115146909182001720350885505058231781477803063921047825419444712852809876360679951702738875041763715445219492269001069592204273447251731932833611430682174009294006318396847777702071876939028416026686837906850792670758395806902035801992505493030922260006111793373329537472266822940631839542608734885892242221464549206158343560090527525755853057000844100658016290008594306521493405392259355199519970186975163169910577130413518732117662330732295004223931882873650190453576610814665719568442876371459757236560679027430556456910036951634040958840227768492513771691028279078607939689149545982563282563060475881432540353705833951469718492369995735891855494273279041110588396938181732576750902306721616929907732287540633647581095831976187848408117118485123498659134674046117449901026801851062920837880258358111127328143306565257159136402874175119927409058672239621091529779355401304292897326320332854953329659788331576699708157518113560483484555368067707784296536604830543413952393077269671106376968206744741047749907098072028377327297446392244380906061981898475046302026248606352434466361932022157720974762681546302436918106600434025503514674521412312852310391527112476522752553023853905712710484091314796160209306244412852718671065345115006153685325173393304477736562301780997294647214191140197655616165461104293957467504450311214918152699589140619533793608385489605447515454566598049758919247522826213009745690291320785858482132469543133613281698083385538329058694636204290447709219414017538590821542956836300654456001868309849869130312145598619497419771927079610196310286738875777845424778024049071105862068835135453923545007496857272095415994323896595161471573964598244726926486146966034676617244077575136883788463884514405487374241172281043810379241819117177579555542186945501483107330654041173503387702794810823544151542819465391750313847184094018401438338896064939217205755700743129493115722127907910306289110125219779180794834727744209551134351528900824736937763866332839298242145214945238891212238006309224335643719573967271581602498003505654498719601495260142045017337498135386800978364453175225984001939368044417444153478579124854106690257513413148733032863354032331517088280535630188138284598931805396741883765219295650140241494613408319456445853568739406435477098284482552530936240935550371947156226347582962613731090305230110359033190221283676618903315131073850244521072477797430612787844802106790099904909857057666271543941329839215348026066936335074058390685867178459675954867140533134434988379919727024249553887874158696271399131644569930830657972018483103644881559225131408843405509617073929469568098392424098687702141556745543887915777014661319561244624018356918827437378103673205617320232439376713180513708471608174146010555654136415504641652583566947838161360170372431733842809813630273618930028527129074339938544821419108029463418105223676583420572712898914791203988263153847213439003609267667446328396662351608517618941779039223316388508865240595623773662182592343773300680111512993778263534299943751418491678047253725085315364518730982125034559597179418631030610202839695591167095255478255355805992824864002248294632329970421400319550313409906438087595039894109152996338014449788837651303700236724908761967323547750194239155826384588127053701045156987938448958903703586222314307555570593316109763985651499581308850697719325221541453343581371139051998754148694084672228698506009749367756653771271153231503446635947260802624896543848941076343060335861519110009746893335482205443536751640016136501418694075824150580602243834041988081125110932509217752721551907003592122003104666052435230946918953552457475056544111486524787903537126946804211015335478474740695635698883400930227688472717409771554128701223004464465551930221011280322846004857004328715629229257511897695149231825794115352958914594224193188025824168320814931268935155565160343580184204163865274747693849388186242270787554735287848553318908000053193860295633122568181099399599540676486722416888233905776192186210272456370443842595714481846395926426344276789941566485916412590127786238182220101739489786688109290644190743085128557642115378048128481621183314977177035232470636122638491531791068668512310195602490536785643646841110948559600131426653213273230764581897809911134935523007021116526528367902804822441974448687704566105074108864159561894472310228665292919987778978480231743430090416352927141838838320081062179465996907232298724809478374598361244884139700082193912198942232800403996114993561678850284788418409309940720169812391716566649581945717312009288323650818575214564748080055910253409465861014769766446153056716860834349744905944698601963095821316756525878019717216426121550433443697892998370269081088986167163728239020552319833410577945503942880933355643116786898964645546876288820113063583640583202045485891575849780640082375641926069610529158589329859732743350307027791515640611935300247226355526724847315667687175740761370963101907444665912519363390007406507599049189876737598741210678793810598471909824210842338580121168097841560969786024090498714502409537699714886921675522649821787207239024890877462088484347293113957449359521452456440450104155500143530665644143507646991024346955150922639826475948191552550535777504772683138411587740559420196456186963431062789462967072666454905167775263119676948770029952250779920166082608990372181337166305405376967873761174506359948540723784880815168131476532993398526225217517389420155771653943246035357123948583797392558209184753936476742400647281634016464295359990914122141854580801834599035338338850232590257974314995772102118630472540719620426873381496686024661473618293038637810293617984069629887639396150592396178008721523664685122015566045228994278011614452015774305517941694932361594257855022564246733912169778580646111852675762594133273337073808941175911202917588386341128530849245293415476158366947230279161133814120248875555321204645278708005437758705032418354230741266415127628115129749967425539513692540877856892191811068005672214564208260173972513597045540665264547010376972027652950166486158619574053013810946501951998773663241221389084047703502425623104794143484842822891614428794573933744859632620836522142401213030230516941413363089751241546097148326477292268315519477513363463238839481324343526758161346999113528198111208054537102234789564088097896699687561875364953881196888975646286397764906156908921921067780637841285536013715422315610160802278578499828742646261713097538724884962784127046278598035224162473942122283483227322878698115771574213830428724809982000866848434341918533358080145063453329580749223921334830087216047259121341308720509629911162352558317692161964309537456571331891935237234045529988454651615827302819626475215701305219090718913725444122943510966918936863274827213329574439695327296228965161518343544037952785357060565272345336449416578592703541435694839747299113686105962921123614222554582479286273360960650824726447155846829946561228602692051452900180018037001109032824741853806979746558428361220328061073473283843810224643256360009979190502349772238590384056310860033540330249154787505547149584865355250276480716076276533873402923017670258642363050359714235566079589307535186711886955934431542731407524769596930098508124894536722911115075965636738571312328746801269124188805365410006702368547168445753091097996098563294996953562075061493585719975177167523522695415171912023849445369984184222559859499181093942547864617942709236853387100577423545636729727792351672338799568876978173108333891608009141201963002712550894704412806319319349702912800637866425808250382260642896349678241716817317930478421380306972438624219377259976651276478838325132033692901738259427097719694142753018047355411803809989141560860679125162956390129117134722541373830727370191764408805806972567594952442913674280973114842504396740586163420608599692433357328689973169406026080411318544896397417788103529241583984146585250380644062566557981953806577190661168407256537233601820982250905342456037906208847497132905327345347190786495789613145285689605237496088624885103917360965497899135403258151677218780797371555943110752651520052976457655216763339686182770891804591915494915012446015641408219558818172725274441170229012974565490236675546601421091745519490494494121347200337796153600153078863362808378425392166440967281909815538391729805485653797229620585617195046187962025294690893081859219254519757759369311903338775388958381327727438053988240096569245072856829370666921312247923251763383945174888253686695864113621332694780963316188432731458322582739164680241783832473178407937066650084690456626093591739981207412366810207224965573521441328130517387934379183397696282271518412172069306023293972273319095394723784597266418905905595868377039237863641834671687128439562869191967350337070837916466194001132611423581015394495822961921544884923104721699336940005398498381222591815701053318488810348303465013458136280051500058877563289116136714210347642976463420537324204052008637823360086304492781838570454890010439868265969606162398715830461110428696560486355503492333044182503622704135717946451049917758166976047831045252903478185364848424104581216030445523585068744478121160561717563790242088556124007512972734470974512213881176774628910777482986385628243950221933664888339245814378216688554116194178362977418704307757958683550583182573106444220020248477149508810749693953667102965112868701988427664051785261936149181194404200435392453328962590826255584999472534010007193784795237964314105043395744047883341356247089598363310062643078504132477443313605550577304441832981241528575491337006868989940816360324926412999989136176479187115392464820426883910888632304234051553782069971762258631234428543047144608796976575990406101366216439083418017979266200999786392717789865361148912582693701357968842976281810493418653066506565140421551422922126439044422216382760417800652919805312334958000646734797431417069277606410317085806697672789682235187835420591622662137917481224031742488304322725874710429723568683604223038640937904798711162583142278504399654239561001328109702903335869754727591829621216004321597820060622890238382321719000693833044848961399995813225454052620830130499847843297249403541703080694628850810106648300054214806033398590212059958913319405879428537455753654321294493685058860745517771480073385524364166702189167697907704360377691960398454124289163237088026533349460190778524177841124597869799500953455666541051933425623738586642432428681560880690922767321077042553536138583085112417699067297957887040116244924670926322348667688179992100947709920653261501186406917022985570658604299027222362649465127947892711611572796291784913327653107278716326936947756724558326059559256080847751972532347892072157668798366162633072446263032935429425072734415272187475522982190806272441480955261237069838522248336885335158729189903017441583064034186311182515300700771412197728726794911462458620851656441479135177210561321094703633691754479078982170886685770328667066564146105079720359096751961951363139247557116062222704725958816191321695271728947194435809323198500328216291675196404481961231393860148772656261551812759439522198430711411619953130520340075760048309824846320554129688603659428433340647583535621810813895500472722575942481130802417429193794331868376847020672088561960168496507788327581240185417005421797261014720062954473550861411715169252850500197488472125172952115866551831177278271761196453870270448338055222282131124053193366332207576637740116351662246744774285547264648158384474095572153364036222365927499541218604922152859285647084883139968120589771902440494620907295672322834752746815555324849181871508110707082998678982670894927735336302993067484283184947868724213369332334211715378727758723222013075601253440762836735193090691128011982324745347423127587398052258738440311618273191280447416828125079285516139380720739411752218531063295385859294917662955539570144727556375731255991679118302416135607090967025220680210055461411063672304576424612733703939271747727189987109788205648832545087233231280733723558672566093966267003090372240926877896834308025391081946651666491663282096916333648326818069062970454780677085910328003341364827756851441181004449267086854717050548148624557939792722878401087616057082251899604192635010335868488110744380606582222739760538254693164580080534431123028793200096728127285207005933033320022727413668025005224663783407773871798611869090853626514891104512159155782616370103859608005909162582249095253051875114840511647782248103784267765760665565512933267596819549744996338249859880707766197616013728811246472611468980379236959829656114934298078672163684712200749037647205037892687870444910918195718982950498963585639388435149802416815995489575434932490341032003528029233681837162485321135235762126800537801545864369405619269687307036167912795391995631176554599342926837102844820551381017008431178807105964365638126916762278313818802052411982516383309878849878925911775419835739837234485350660498051683973192826864275763347095289109956681278894716403805874628598817436941750708873133782825702355156104979245097788409651279596307620237951180585615582715425961055204135864816286694534246902919047186063333955282751808654216356587012096583937034621738577593725145734603504817611145653073008876218379137514398153784017904678716980261874495383090553369664078675956202998423049164080838892120277419593489435014642853256679016688568810101456697200972886732812278490780486902404037587167522642546262177504245731459526944106297294724395296565952211605115430659624968482490737512022066237983291838429346664186741934027187252975789429868163213521354921797381007453210589505123949335489823082965352511677143462124806407249990745928754176523589468268400070462150781803573581227285367710078592285423025043372726071249594217910411477974701098493748204654509809699293306504699218774275680939313927329876380771039305071572806100706770786535683850203316182816689811046133317852241453623937180884897093395987372455916101766237424746333087836171064015494680347575339990872334039479178043323002542295372913114980081407353627746868226351278562285472810998776839170868627269308100649853855404622923282250754284321697936420252892239623302315742314628862609720778119403340678813293068395264154111816298409486206911332542926118397550563245470672520798680444359450154631715905133560501600817638088258606912353757665503442771356484233612900799238863065082548667363753382115083074886386179886301348407711427895417137400315148849974461031633977478857808573022917082370437063119649205209708963300121240453160791766584608081223001618094784711398821158295458666780995838370149625444361489860371226108009587132770971353271302441915221635998618559833752117909236685539975928344175622705847830658028044249660957693845532526826472634700149395867063305898154324965810595404937392229996852778488245133768754537975572678426249312659660646791782636553685421315552449641208003747422953115561229166513130899701857523559308122581132615943508604174415278341542955276113429580144005529164595333645583034519742609615204517513171358256478474843018539690068425798609272556218322858695904471814810073560610429280808474964373964730686916666256742607967122554428606866542034236696178716627476569417978601181102115260368168009453140055139326727380390667516010193228660565595761704548246130387151387467328988938523784091442129892406081570090934237639257658576244499383124856971026679242088760478913385280981440170508003347687218598244731388983377299115952539646811607737718364455032504349523216495125985984941964156221592548651583541678448134783638276951861829460319899576676412807676651519512491380648504517756662435250723510434339876889788704427137862522865546915132340361829036806884338081937516780706756870427529729436709500409696930003897031715090159834809242488310391092233002278378813788203834840444788646338718568805501994705911155774074229315851667391243424010964397962829726797558101721814403887437600120375933334482553331612348550334422763690281822008613301698498624910361956811684692522807195081369266841726393987493449664464559499868544016228253325718511423014320425114072775198433108623868148040018345568143934696037251695838400824530463479829327989792080627557314138929564794769822510256494854339206995154860715574868417985335396597274821847446304948675623742733826643831432783896306063501151285755508882019164429121767105839150803946926369260944771090652746752211719143732823866336386858706124691746059985468158227770608245197301398741024837255466914957484622050420325628753622543976335753048811378899192439727298271160205244861755856314650996570511693986958217781977989404446586134980884598480068100123021027803152473350576719477708903396479573306180403022801679582471334928523478738139189383276388685981654857339610088613173922518035668343216279121606962100404951334831754927305286524515150329258752922750739966384303817546647455718062135427263345873488025461565540523248516910574144287407947486242052546063481507436866176953152060580334437644291806144685787493406700679088574185083873794736142930164248159691139598134485450271799629481791044014307076316353237726553853469941053293789787408821352927548895671830824210812771902731337165892717644833667951509570524186525496073585374264069195353253561578120080027749276948137266949356894121323220431911101252825620351394896941022096814521381921689900319755074533411730639818914778857883337955801546958989708440490032293576781456479645445645373878254778263961063500942011117933062288695593748268655078338017861584617779318600977286596320048290101462823620801710279633933891540015938699386315416986549166492421772416209295934003206816704070204544069843044448221970527879343219572329422564374428750520675798414449055175280451955105413410525251884800581687507018034275202454523269184588502023160182957138389496873635441308979131762374162133079165934597902766973332370171315519377631858373497770838269009949478701935709231578900168921678007333590511535465196370797875810570469706432624937664667532460900028669106314136108171759739655777463809980033123984717207973000500260708755332981585662928983658831863230401203313932131560348057887682955641984244581303384615393140920087470956701489428098134282599364244647916554942877727979257862339349819929763449654606382758543043112099741515033394085931461122222037273171864090731327649757378354615636680267031873324560084194578011520591407509419621670395866569160227341463908235548977425485402901000008396092266629714851595827342377715157484756396633953999084726139460528323862773516836386266095522066237134476217119440065649273519585764416649618800618838505852635916449503889084950497244171448270535474582409569461869660060263292068976318281986123359786182228429120480441951267821863247926546573956185276179594428739216267911400409253549900582209990209850304377893750196900884141713287236600493476025874276639831031887508851331720463789872379367648854838938849278188066571628232998803329722500520643733552847751904921933734459599289697332249026388933772940701961828199069606267030274035526639753877352519797759802071017934935536550597728909570232619193949163076855734659273138357637343125645823339687899995331947981141810356759334657275376472156123663208382174931139392568429007426438192900009715605490348108675943423166817035220128253915444713889559345413539265572964542744401079461555935509815099928857624392462099779902600231853145829108835321056063896444633570630031473698415106906553367995606123838112399179478717342407918072423189713099292624292659123834774544541348463841086016616212521689720969709846177117049990946123125106989980734935746141699791031909142445139532900756991167678294580860983860969475709574447485996023771923627921417772972355321901777878455062732604265540037414883798269209337702105638370308345973279886104593396333793082233532710183607582372264473228500490765415645654335391280412208733579060196224087814005727906619041593915850425444363542191180350380953705365790141913393322209144526346335123859755582274213933408002174453920646168803061809604211767758811197174377937546239638773111266829958923289562687472266221369401759167712569349250970362993880727929349766960349033925623216070512329936216540798696368333235212003289567881783251711640226372227801620031215995666624564571913576002768643422617681283513130175040557835827611207725578794296123039514951896057897203555418585720702111259099738428021345046641374606545279603147341535543297499509919891462131706608517190592873369394182249934676681090745083611452817499717466469069723311531637804280709623745861543709751815885476857835407332152293509388393762947873245356014593626213475124107280416324406869388414167458784030266954399625400475836180462286256809036310805319090900798200666001759456566885632580895664262865197570325030328730830958344836487714107896999636267005897103087659472646860987369491823829001143718952266922755435759168263680255116963995012668988665767597363797458019763014384068970536817740832701619022054458166448558931155880048064233965131157355293189192266735187388018788117657476707536136747358736012905005281507425112157756874200897562479776376605099883880112703836274262754877567239700961977719793854165932694256353072272983838076939857599679640875172492431129017634883870523620511628482614709370342524899279684796398388883042076359033025661844465090321637864877115040486486594647843326695032630197069793199991322959809670462984996725379560482669325323203789943265935391491238984492427977384109448296093494091901445401763069154793147792827295277140186949975183295044568848353416198502922076342523399184353935086052258757584969154290485571667346626636246174525670665505795258635009484282623376815314546583075965415842418603218176003494142556311838776954842059946233666316951720630188337646971921712712537110908322659972392180949568634190878305275251916943254827027354859904721524093182477755981733724994762993530556916355783718062820839747549833908810993149738272489298755142741873664288078256707656752397249122807084183163864209190200645254215392112655709663248599777382965168528664826487576491959908581023328092406686298802711737618516317022874115941307929709642598174176762921428394833527870411302189562641429803188300510057219867384298651855410408633046947068266602541831790462913875076287448870004063269549739556050210342633174455914433901798973106632869265939142306477587215760067485067379143916267718116104889304062067287161681874715644998024412702445490989887354927784332954101913380740729869324648048715470642122040274579205214236975037881239959039262413611480149590411271812466533620620140732798017426145589411335014443652863206949551449128373454888232693011446166607485674899967762501300148514506622734459656667444801820307480004168489788554263531708562233919426720341857232079809098081815207993091699953154874946305558496979499874407440790697608392346310915309112667024178515779380672231685944260368629011020120493990631216944621933677972158584152436112384271550883371005332893617309341651837825576797163919935121688015999176174728340792535614850050361488586823060438454984087596244922214330397281130114877964387400978941704566208066322158854998542275684079272200130590444592824557734996803500500010146268818779355932766534234596945547446859898219104039417239025613109702997181109538981188045896402271282618623070599283643887747821588644026433230844515937442386590702085252701816419784811003701317889739602888408741649151147987949569606016024179938171124456661005661236662999568189017089221656973427983492222933920369687232745358608988385567968631895969452885841188101221924706814890726180861726433614225744561949076441132635699894556665818297793323533692770685273403001268938833012108142541993707209323534591645664806247700705260960342582943530981565308274778613222956281180434498459351057356533860052253276977900690841294725476932609985242214091783511397524941800087103326717930527729145946130784508781465721725750122161088874300434096893466429129629671307281959539961911795897681345196560265717269537470436682001746666638320406948582181905939591416674734065352693282049072308294422163956030342843675133872905519647981373682225278398353446113890019894675750722787035902839634395223141662100839036353435717621524375699387904111023703639223036344120624940423208136353151928859776059193471956442170302304686805387807228388334821072049620181571057368969813658604762871890999151120245445014169732759517084537479391007592371871025681608675825521448026752523188836337833370611447035244951938092687804926503223989705621626102358825207644562063886445030610040759370570662682775695641130378953128891849636930225742839937089400477499291376077881592445913674396465468415073985643294710817435677448776762315391283436543354089557518038205961521814206144384284999467677235447000043471697544078675836333600273117025991200062003637893585316819616772859208296368971550049888258954487457153443946897326501104270636071625416334298061315048417959063690589089463523016797225111371122163136961123462258955690296461555955493751951321847835486099718058037212889187365194190163774566371649036347641841071589551712100391148913843962905809627913055681506818335971757165972868066006811495529638356147186104966128115239716370947574304299473690966116111275231081769199411932148795327795376223875037773164153539923439878831046443034432168323815290114470417676795033316138450694324369020361711950575625850253155992141221501506433031386930157671730483362430070937966835924257167552655103135833715212299210938297394930641099573284705649350869437333014900713435021894797253282417799575839126060054660824669688901491077918886312647112377854629361370899079918942892752158088404946224317727260326244610806946687991726085927997573348536217118932731975284877989012408682782965893515796970615081043100168205303547716996389378759332732470218222707187397318931164821616126940195304649494847869287899050557531883524534321968897248642481339214614653485102020583583275831642029691477934706559208218663410661389097388115993782471154929630445459544180247354258520044805824664866966011114744304760651920748302147939180277603974507731330769250214061213704415525230960693730455802250014943793157639024795223995970624649274382962025994743146979947009010199867744518633842236033248439605700041820306342063441272788206952018201210153765402217985801682687291139782694222850813624517570740350350348396714311685783396108657554850362169711767316238495922230149823147224567812631673337191056243971508803679825414227470432274496906748923861439925708431962584302739188694980919353271301680976899163663087900591432408243153355710684825489342250493359921291049256474255363795442283961561564301237573769985966203604271777876490512075539720914644762515855345626949421602146899257287177272262210059212725213603632172174264893632852763887682525636353569480285891956832019564548599499963515011315203707609591088173654720767655320100195774774952571514511462791653295469382011418981327797209201911516535864970071728882075292628123213540582832527544617032151625936115365763055565941475190142661482225080059485640101452607656569412041682188420991776629808032632650054711515694107778303161202745160305416391806716293267178863254730314476651256173562213005912435728615494612145777210102613562830210562648753221528651526977782310405368547607518148633680972296196515183836529582734072681819488947390337680447430232355606813568675351978845811505370008976318848019859152223604417528752282585350536940231449561072353985477835823545042202484357403916846896129043240721600006937536419512842771798160656709828749681952588915343769536476284905841002259506397031112411113850489954291433715402023148603608355255565768303110696401184753334722974666643323026571743116809538725771570969232186697575402996363096693667641646889754423816803182623606210738717819918384122428729588997860328087869515558081169095231775731174163954669661944842505458271763940670366563384640337784435328422836803059611277472855381988982541695697364338581359443509385809880501511070359347817236891720314100984578388036641985021088704379216531977548995724338958857468472480513124804847346918393632971133183927315409891921323282798790044295637291710172235838703817046834317240050409366145851874810002729622766898563411519957039799388745827559569228869017356695807974285782170043230464744423967706809027086466539254398409710452241312456189243458266354921200009558340900041510068665782201161636356626555009681237702186328995560567260091442909609239125770880010680624435117613835176530818871896046793899951536365348226089341087803801347562310236011916765875290713826817494761057696924689177636199218936978256807709580838521638067847957030044572203575216265401151063385810704475616815692144962824686557104325103220108453528358774541754863210969795913926671839266903625547687617200517947684026387613906086100249460329571574594524390975658230253207097890090503548558782929163278245842924407574217668368905840170351857865906877672805235492008866461820988436728463674128242717668090824743183056123942701185410417857951567408644770984796194924979600894300130680606513287254779399455644761355863089241699095270703868355566079717679376930221613587715182810650914953886865508900342348555403763190872492797163516534571018763818068561776336660389670330825982245060318095289593934096742029898847591880316639595745079128606679154544639051686241141331490179028721504584462101168051091051143306554577333316966596307684547764519499008061535266715907837498023351835725480929867167210173914472582954733668613892456894148555899665819545903745504123999390958448334078676760522986728163724846801361681163911173691844988732959349914470257716959484770153705092907831501835321093481225250538878375680301919334658895160791344685940416124102431467588405796929548560599824617647519456098787903040750791547261641968648560451882507503185203340375546717790988393267252838122366769868707888395937122503757507529611104853295484494347952867523065879848072685623346339420519965249621653196589402559079137314121559734554784610510180713953767875103654172842769203519903700026040000240302114487896649666972758564409073996265783911109427888892650232921741559487480467161743728022760116920814559987507935258434866804514122324417905098449171712642326812699797976302784625973562397801060348767110733292565821068683441063966064653083282606445413024772007524595794361547855324403400567087607902279824096433638753726059696054531486360687326349156589771967666726031638582404139183158772675068554537139329999873068734904898811071696348983469417991139668717442647319940799128036740616590721806964218318030407232236729986766637632030713145878326977267516571064746318819266862361351580011681046008202978331671551002836601311660778993561214030316935444497229873022637347738092609819937439693074616950539856459700380279337557750125308165123058864565032977115744510116783964890869879116327770228882777449341492466995354943988771978152765475784192311577391156619466742829964017377931044313224643883146706661648654313946639474462803024105659082725324836377935553633117497260727817985448544606896881727613197283260124350596629831911960999306603306100973408643102093056923200534574758737447693839796672151317899436818325865690126330594643183916938793534076199153413333742881150268096574975807508593834562972659129117888406695089998511339276084255125723999818969084915655749730083581901806865973722703261664738885074089846512371986274989931859563624453008231967226455788414749942632944749427358887398404520018746227251618885139978671645244803146608452191387383735950478241117863600433762917974693740493409775636289733133117564909879209846700729585325947972600851239488884099825255017340733041838481952698994517652786065158334603594724568752893723239422930879517995551028944070926127808773975002290043046920409700575053280701369090458061994636533423513047656957387521096687517109282785158639704690226779760573898830503810857956731244784010742914308469601932457645943376408811691245080690296843007582039601730444565773553731631448897516603475930810907884025270132108821875255624612609282648544475214357467955979278370362819049909632067080230463573130884952125146147484302051138827104047690115432327394269199499799916044849149533244774087663159839989601544355395049051364195899765892341537189323769192444030744990934822872664670301571966114680635497199665410314761248642547671210950369623237736901565337732926006712727132495836293044797501082158902279464006022440347599770803263537336320935125236905141930882347717239108321717049395707372832681349022057297196978085026711500241178910357362236245031137652764790265874822573530156313977889378247276769475248905607767209827962468216015842599700995829671575629554878153831656135561600119332338754802173231436044474400681863931694495969355546037748269991447249882282830945620542732461629351451654966276598873733856279762118479223823970128040094753503157779133220139630883141925033010964695972916879054125308672173166485165304477862783331252738436488805704819492893043716911813693522430919647094023903618407509764088490984523126891846211544310775008961351881530002982223591254541523916716062311301128666754638384403059995243202288826962820961804211818695900231561751989865105396070757511975449974662200407636715592916498408062955893041967175598555800440367711630958724027641891474960245654918601845306752161838611188983973079396945982911986864551874189989009991249946579226485717305196121482834593877507839018588723177638750107003315987388696523382288007230180431827112439557381374824373476226254620949888031974591256191525161924303356134561798498383337191870214959994577093150331377503448983465856071335958480410749915494777621904011640948155637317221422311104890212322062447055590537339601298958621234867256412910521666541297527947403124022041700292924138550973947334155541117326051768039628900025601027951381406938170659252452138650869536115019950652609351351135905409797768162308585994636853430459260957991338600472966659020190260665085710917449798730770548457136777312571247451760957115153622981189986216636942097700016938887505651907480545418762124096908507864033082805286123463772758353375970186868312589801192560102681996227044320238321186367992399913210803876871282933793878154136304340078033982963918148211374177185153441260101524944388654881713967423471603427427709207943388874339952362904792832437959440046124568814427727356021815789017813921997945927990816408200574720483053179252012837072559141906886070791183547500383718779850885135108183637358225422680281041624998123696958099667383268373216663421187660679210672959952902519260965171808232293575512364881403319207591652194835978496549581443356839361525374919906473648721028726120157259466831614760081768711030978810999926353571449190008644632825061888837273680024927430902418226560307219262111214266590244225722960339348728323983842010323044946241651954738363639277978703497492028462026142295244386651842384869337644653196108063968267298971789797882545934933489807505421404575081163018058005989131361810344949801515183118294691593000408695834339008132309350956007301793025140008147343240708335690884585631291656369696531277499090062375076135639298170287989852817729514744239819673195168675655129251622870810168313467557918594196381409642831757502007430473834016450959650262593359461730675945950897139863322082726095418412007524030656393391843168014798963175862780586010594251239990370594898097072481707682681300894910986385373194340983659373144729462540472784587768524617914368948880878078397449156238711673632443077869021618095495443542767165933170938842447933783830849641087781899894053732643825407354325832252810412977723114141935669719206934602848479767685402970574842860948320914503602289124849093138266963360517713088326250444400652458173086740004952155298641813530411576694992170657923635704810337589754412321971932740083619678917494981737616402819729587207711075602580189790881454043612776319768503076413691572305927389562081230423969265616681298552881076940107589975408762642394925588688700310786207848791198597624509826300530296892188857007006696824010694369911579135004300172517656605472943369148591910228613396698525025034280975259804550721709941786482835420306050709185846864129517647081543684926183440567965563644125262939386722759904638239593619050074000822926016535046598816941711788087982635239420808516169627180197963824313112899041986985167285387873224881675756530622252331526331750720877208932681163507109606067112259798026965203165837852814172708538893974833931508764406969982408552799569150073342950597602236374284900300452109705659127678849023697065470964126083385856037196685051966826799158539637074816799485215197088865060997023677971619147349739129081554916088263705155541669563554015539933362764590999527994292108427045718436045066432874462205748379015374667823267172964164993998776425820664116615270053405153202026602141293923909516541505242213342135871057971619533930802671532357292062893847216621042047597840757978828955423468750953200708546140239316835394916613542279026331738923686625856786053410005154211491727840624962046028061741517037181906723564192607158515092394403964613841852580130553075766981232443506320299506166123464127807472424684313609399712042907377164953792849554602054581790805206693529648376312672192833330088084020808671261179936137303663355270291508468334079111570434630734893843029634297299713161331129442187436772003601783358138931175552562328508955413238092538390238537346755263729162467406985572061962830350444531965095055414844507092631117752750862002112343109944665212753221675167445357627547004317315687428798957078942780625969551962103037435550247146189665047327005856208445992376918974549433943574248188505514090747085054871074054614975975730866524648958572745164953357797474870082781955399786821844749514520589854602178546383471840585849383737206439624473911887848823247718757485120057788525156245664889534742125989825500789238025466435880697700786149211559606447351192936114931372901331449001272143851562475352825200131479031665823572073784437255314035469367205459396857835104611959881008459923674282417811462385548380027294296603170986044982272958562767517462614445926821475144322541697134252530455463620960169227780545018786274873208848291262036149346303248846585396123418151819984818962673085064823577326261275813730959152305843434099966374886984626546003933330328949562110186095999617040938307361048144456960913795072844608185319752151042958070823204904684895466914176677111540561926462281376058548968099095692795061271279518568469134528346163637488534848030768769342001994223994875380840757715367065621387187623206446121092204829829370387053307795110172226458319714136332759759686246868190287539319148030188141665631803918055309956196133251347166147003605204083825086747101098792054231934028840085109631318764797635760743547652681853712608467804718565850033438478279680176180127532316867158143903684244680371742353587696315537177221705800974269692990706888095555722383035603792333989924674185690209641774106273080254304345541751888999558544435392870475826877496882789978226845707596357068711919353938011006362165491514033176415225067673965832712178736513779024238690156146090209133032077135599922304312354435502913341490413829457830234859096961404887254456016951043574860732620056254929116074555300957708995446836688196416976929799665238086411701929292655280505496933783275956934428053690937862238817261171469635331016885828893089028584732893448423941029754759393187737368557901325452255680647563296660993070739609164086292591190812384456242643021772354901885712336634516635149445313047971983780761272014425865456612790487646740455791479413711893291531806205499348766245199336038092999244708628814330422439580561286416441167696602468684831839674904322386364350908934214070453616343177302476409117508380507831689582521776543866326815961613739452589974861142625551051275905563913006822843026518842617093650490913804493261802635574296599231859754742858031392315397749175587393087329919933335836295551363167900058397327450916349003085083161518809493275739395081227225729374367000770019340842959727829402760740021189602681090574904316867315384727932449801240141135445448238178293821768066541766801601727471709011020781628745174241550499464816216508321143717079969990746215145807993407258119516263944927571077296480356896303539592307943388020348674047268213807201648057712708308443269519723567197172363088139134953402680051022612305986031433185159447175925779553566038425915082587016079072387602979199381733006576480047537587675517812607977732129784478411240980836564129550703373033940126859943310317821255921052659034337083905323220487982193538418280055962452319192485429175611488538761577393090994087098121333103202750262631594887200151851599450262999495250592948101539705487085670445308894895098701302693235414542667143867011994572264965364565081210842670967282518156767914345409106191671583855269258936514477535822465266130222880205413669624451483145040805881140355806719483471460900785813882988427045428342966398571277175874260401726372602983309338475490503769079351184986544889938035482037492407902176437748852799177035467404749511532188970712004246824551340489412395039439951238302063298079410635543614505750220680910474039165576284508539033456915633393821091862497699595956514944938852656477942253195210995209651356101133651364223755207197476625124403222016300655740789609496311648268231831957850237209369690488047059099336607547108149738100484455227429125795791677541921374920014381273392548327666462487313947816907709850777983058247433494270484584506642339261345998233717742931698830188080433321902881158954427377461574110379716748321524037755056312966325119544173857492531309305807597495097583703914822149131942385978705235833139024897945299485651412020963461812877928829809570375729094593976342408968454908995097403950066271673813795502161678391652286723871315170106168300532186742875967350507623276269971208380831769926300211616893238306724218070293630937398002855403646424566939245161294376305593295159155625876801180765219369844796063878782842673207097692036593763980525920754924886716915008063905789575314762130459688582509342741791036116913678892705770462964878651101992337710437619997096838340314312888326020917556247039253510416413200927423992167718730253613288302490322524955644183263172439466719721902456713787138939323086885128049178833871294616006663877429022558141677460523751040232473399376908169404337240415329333986124718512787963494614049751162941012195884321971982971312784265973828039364905206714632254662172498657448862051501240614781669211041515486912345202564904021383659303619899719683225015484590495743395873026213645407019082940267906352623718106023712466722608951254440709799776514500577856937883879061298050792144093144397616187029150206613067676662198211001425575676542658411333317001490217820646464669765852328902525233439045681929927432711890762272834518410104760793865764509565329781480572953762042748166421488763574019520736652014969432016895457554136444949104799154846156096328173313335212258196897300833657873770283129071448550037491039765265318602575433395977212571563000047638772385047723623239373987988136023189057097556038354667168685283792790311201573002133785708411393267814513616445584539691154786019650599285781406513617220081876075716251837118570144402365329644320266486032327273224627787191012235136112606339276068961626434900555834369447148576273741505949533592292963202198824037978316677488627762600256331812328698337032063299202145564056481446674623154555137151969920166815857372874941997444160643231971466041627556868923420099476288168330597880045545679589668695094699952053297139581933036364714140721348233506792961556282306264267609943298751977034607497576537990290568674362901406205552110850313943169401989420203906507771948137977013826639978143401526287686006828419877029420671748645464848946439142071423027974250541715425124233110134990119490259227751184563218266791586207054037681117678090702001936523328830694197771967216025194478419861910357029267417619785848478525015946648071453277213226324813254480856557617838507031789197354605569843755453064900071769364188480144424503119306420771360794775816608868051869030942916380192154212351662568890768940919192802287050821206441513321334197237884708299821881304104471672504290603113124548300190461144361047628766426767487549135924778181784705708759564931367838851263152334796313354950500134326067857722927542401445823338088520877404604372005264069419342645825934444890898721147519805408825634690451157635459253152169574152045903794122132432305373959093698881484865434832248805699844384934701620865364760313469938283852290183619434970802863135483052430242234323742002199961065066524519888846677593611429969818934174198397356834454789094339424412179897159076759281405241584319342994239537210816878620275825237498622346842331841210430248841985714555059025130247840285011832807917054996837992179246304077246483309996537629403781535973399800472722542712683731805017039826750206276670254793794997008522317191316137621115987669722490358152596843399034859031186983538743421642374082185695695400385081117220695493938190388816260268727000140806002698651693338701683004896352570970707822646496493174459271613242510400654463439903457972837573119262806000544353368358413747710120082926426900187803944776450344505093522619775695269105415355601955538293392928037866871982621665441155639746537765062853794693455560189585064520907080170344529468224542305213977517237553352883710247907901461269592458537254606006846735414350029638377265638178605516426257311421148654353432359109747871251158477922142120914241637101265232187539477162301842190449319537218623345485470170516229788092957994789761404217265410376407260914979598294676974689142878121412091171108377399602013398920096350732041700498267629075839527132962470910161729127874380588145086657546745535038816151393612875631791401530595817347084311244241566688562710575951018894880614650926370419737842074202609321685541021069217866107859005466374931190373493293271091711108997737977082037542498235733213422001201198351000938564805134989434156716994530112597714520535254576676170418145623506086735328873485581798007911174865841576311685384147322238362965453893116133876444168316414871509503609453981323012436053857755207165359868091865961985143123785118432712416829054192669650550108108289388550937409915593861113972017940548088795808861454610378234064940917838242252498879850490158745555925640817658773994709628138333069888532581234411192809210831014431857069469617547099727648736372706238699908750222047163004974596109516009088744095458839187407004295482265886968395107553842072864707907511950859716812704385754572222619198772542883524499525578286453762547009501831200527567927112604603180978409147727732439026067570616317839062949595332673173612198970814483058174260711185970111905541993259671782069722613383742552348431289087999541535662144651882488695469323192263946171051303577158628323823548593042017588576458742818036450061905018836821002934292915772893290621666006173682454217286529775521923490534728506270826910160119190766486158020749901014324988534455092397172473859540579685154824128174021540379711031293224345367144934553364432858797088706687093938784427772659564119669722959011905475865299153908751972675416707987400054754223149373096434692792169635033770654796005326915867865776371716798877138571690695611816171000292633868703461084118025896452423578275190966218221298527607483040301257000682661337643270668703944761547277162182806967294343205061863860269262305650923029206222050372933623147524070300926062043592103431777745732050247597555979119578038593373477888489178497434709759183265700517963180262956169256352582779497175283324223040510266578111200623184809685044156637542306624156652682446492323266085736113433905894443128724534715278626528711514542014478738554547777685071826063842676966870281926416579156658400927390437680481476866642067580989522682074587783993386735805387462842260568108013921354628771908410202599506662651043830194499388420453625481179121929913649692266104259919874800631150738224974550664334661465900019577131464875879418034168259898123435526135861360844488819173921935031820078487964373039626269390029167712430876877334069241963064489743025077635493749396620852809473707074759995505737980218462279806240732062610045310798119696264234635442504703105049358598877575164777045137241878681986776614768365143886531609520779666072361797794159382818973062769444464048030017012825990876481676701949032181502481673241756962532075583770738085696727973761174916508190364712073330403547604695395491238545616703848519454693024211931201576558651150496562618592048118224267979197921477935624430165803137006790158950903753781113988602467116689326474413804109030850197928797743150737828025001071218019069535312493976108015433399684942426943073661287360569862743583464779180469561503380772348713899381836435503687905670316616468426016942401124930754755956249143341304989949070643921940513224475394947739474222788638572269019686170949358809091262942036855279425628917155873083453585327672110655792225000909954504531838825133211341866714901135912237368043291403487424956846364048767039147949042277830408805378571082563273256814985236080761845098494027043750526513228853960115662764182438432132286814323195127050057752252366633450285085935674092794319040130952177153725012329257320017048681579093888342604398242712846428394368895391108330871646997475575386322601171468772134337963967497989845835587719368636868546365816244360616438768668300783837468705117628367553105099967889100707921152606870007636716743555751797731407627837404407542678647682786029288194064658545711116069184153997676796041229058830006830971050659730825316515062933178341821602528990278511443850983370047472394608300429341391175554010041328959871445409814208487416316707547110040674937553459525459697813484613323530951988434598012387107569283602099012782504034241827348962723808460623632177578576581742515872519446507678829787922642909223164325877091027942304096110180837972100001654588935060826313316702941442575595528445722049036856943415789188768633142788786104830716214152356088500672929322383287352673200800261696010848465987711977772568775678197134497601242145023469932901181879380113973390000104938564241331045072181124863457909811838000256403896138132042499493959182317410277395389612449905684710333777179719369648068347299725547768781794490970675123174374970188435502913236582024950692949523073747084764237985443355486673973680006090425286497267578058230023166647381600513750829659272508522321030556371691650827195320997600850850313261364159633599308931320697990822143792140382681260284850802285789186250782205968611600715375789137080710929398628721039093601073095578920803721306994085332645921169003620593550273317507349808694882485549925345519964701618615175025304556957707064211112612251228572897129794555847839679940117457587141392635260779116074078511706804878922204419083733953698988525372817130282846398842445441780629347548044172633336978958175144245907976418358178021732084061865952128723808162182773813778083129188232288120580282548619160072987945197828882340782469928895897817611347662990069175554811447744057220467552708149406457108610312031056640479351708917106833924724205247122445116527106484025674692394277629614254191181646372713426948499321225764766294271985128723560229105748632496380819219329248915846664939155792935359971629787309473593942463670149260261475198333076241613619443164975540461454028099179940503027022413767669738971337485989971253485183381955218851270206783930783708384528549084244759685334691239762383887203582814867090256675818676415082152934674649674479959407257264219388639844429588191233122347556746902344843509651972128133758006119465211621279973207281777254306401859160109029276859124257571936083348952274006009896043075087061033150575152160032059338658800636389808786149105725361549199288240575662818636624735743813848087319453304784563139127074817434653636647347164780347267829577281601141431497660795354843356608759278064802670092440994990586199764589357704130169212948556549890133614325386299848991921162581015851712471981805435532976382921683953906321683270191038636141946559394002151115303175047149002763454515380726554717218958863223865880672300900899408533651502154770338044981353718478725078898016873965526537089640895975970847005563863257261463317596215519197695538195066517404395973921183744913945688013808525288155401821271005786200950956994318797450599300539643837587506018231076597105335202324760203671401149619440753654326987700254857899069208700485858356153399601597310871783385179281472071609467450023814235193153801247189712362610910500806742455877896802505463681664927621142912126174709414307732750655992095459903745723720153509413499909669682743555894137139554300748063473104930158343199509890786590761865303315209241930482995804198312660280777310417345227930462605814496784766669790704848502742998850078515973964415615104196176791644673587915894742307848289168505075854763432512282005435563482722177578175588520781613489341813482616140797030756867281497740509084029185619938309481898960058904995123398577942429672407100857525928230950409221999175079854133987109953236160235711151680043970510027400037171630376953471771354164449716556496426339684407521555833445325851726476301418146020024938285419019254004304828532574412472680054586232553656022333645039008756764780022946103662735743216645363792897194956739805512241779833514549686027738408561681329517135795105417157820455101303381522234373387756576951385272577900410831917548870477175165612793485478808751428959873387516977450414348285785087227328616318578280851966244656696782662720906196122400510523260275036202103545953821516953697664571390227596128686745129737729316970789451643775589982476260167298956584399073640821356614707985432020558715767969040886835222370255351101391489714402137434642124384597520675068638607369195244935773153571049229753980897069065985824036877038011009209379346981340721118166148932636241561891479757791674774392980215564820678022223493461542108875698831796846147222631957469444387335556728124716974361588410377742683829828907579659688433634636449902855868698993665816177954880436748002185982917307742066738399906004549527787524759601800581959385319366949525092443759307721707509832731263398544773695736602442501477966943868131308541060266510057536155772808612821520360201862180689917649072955880874720228026772429887136344097338632072975707957007900093292454250597083131965880793160445032112216872145970487411638829796876666115787036422960968708121050007753664796006736243541666149332127632514079826824768597243000042881920113812030606781178401355913149042916752065782933108111427878995393751812875665514068649763628835921284976374458295173882029857126274232732793291343686062497867403958921626787002630441037719201046740099214160364302833524087060227102756346634965486952299859484837294818058198978431955127335244406562582821140728845943007864095558495286336956901938515630314184694994057295172979025742282777379823809438135149121671257648528303080090803473380455903375748790055824560389550230184182559366099317332008097966578235581049724165602029076557675291067730427879495597531400335622084329067419228625385358915976851631122559452491216380621894248278997941720623193241515451535457459642072647410538243782800503950502949255429832394175211817593064942472258053497379682510749634489916432293974640000778069154494711387145853471604113386017083296089816631757707595096569742420440144801190971753374406674321970549643839139037052772847063785328377653434364820909398788697146013275093360846718140553620301507561359762290434866949709291738886032043076919768082413817491019095642538855108475600346259337276849258285258615785261007592992701453107526913478922071349475883480344718213774956921996379180175138821375846409555900380470785785165252382860303698847558906169713903447267275060195091378189818718104894101089265506712640383168431269922553480532232671515081997097860247165414484987139589715984338116859990563581074969921413138490892110278096688588842562600033245295471359983615457224564820486929545532551461788982898577505264385269779222363247507164011620019406066478538000782848496889937417324585828101150410828060765224003213972216971382449624605348373173873702880694681117191074876049484784184801096171346905163744584874973924619160336940880710638972329270274442323658892850744123255948018004068732675285753430404637451972261749404907504191815139042121971821983929900867247808984845969691188394875072944196261746171921644519332416328051390996336174326262581146857666846803508120939348119285862975827762827621186803891645306298482685050969854701253777977064147476368320427285921120239538429036976659523710666274331610657694080385828698721117696397668562949765762814328139207519564381941561582608266253324381102350562401999434419929344503105856813767544660065582664000996141736749639164370918022400625765147329249158920230577978168202897721296157623682931703442043385776083194211518422651264140134476740988921701804154931690128195836913644875530999851345814730361813693069476601226868747750796548504923309520424713863396523597220583716015698527737664304410556791279674870218145217501677811232568037477822646922653182615569487690373767112629112993594491568735921490140833018521334023738800909253358995889494996444688057167550253767733860473527758758215169813147336547700881486607496519740566965689474952045999763231105451016943155429973640386612159681563073002598628746343746297035154383532334230390815104348818016924435070794984307134651441736573900806364662480534273165822154416166156323899018988596971408098143117347636037388289903831260842314706567517635704860416211529674695326519953231742119956993735848062871610353186268104876840884546458702046830837464471483739535394395968831765808254645477077238865662611238294629492689472664736139842228704968617409799305949839290610523220935732021429782497605079533299268630529456372828117894977784478102161703749946021648909740219759145225227978523775686588287364345576802159099946101327232470304870324471033369586661903839291021541321090984634695343763966545603016965460280134200719953715684367081942316227438726130275841844037854898463513670405154007682979449819250511183989389885450854259091050336863639709796785871200993432332774769246799006610567976421490894973573198390866730177129355684359009700232887285701256550894186087740431852699539465322199910220473286810069195781500987364985015222987201008176440594273261772882224713353015132538629756540552763533340662431314513302880176148610987546311357728415605097793113668359908430307213367049890510697942848512476054869692430106752811689524690598668623797729019910703514372634191453649766072018474080506694217043946149667333041667798448159194508695039451770916204493497084470807214219201592357177931376299849269908964191786966302081828885371032067912684439537360374363798235646327584366474369901509836776226891365698888461749854665683024767422411865839137411311769802750212833221545594864516656938348998916786545116026150103552683689083011389947336728715852813377640128839878168985652507458724365675030680780344100544791384891905430111819922506299232423524207772105290099396929697872480255882681526355178118968104695645962569578815254586072127792539764411372957565215270051051511235470514813139853464063415183787761587220277640736593913152606283611628712779408005124809409596756042886449375931395756722146317831415726244583311592798029618999215035822556171115304043001880824608723393475681452021836128285437488100555135917166986931233612622047966060589985982292031871975711236518651571242667985685694209131178533665891030477971360619973810448703586414438118137990828281400810343026862130137510556582002504118644073144478100977040785384395060809638341802103282399308861800784030346571169019533233969605022956650194568905755214009182367215148371291606491447783267253392666465778720135322973016898615003515297572653537059989106673373955065709346168910879182720280088242195107405151667674679396712126444547228402862418196085112755026040503247314834017357255701558126822357499898818607890584260018573245783400951020946093801240948936290304807571772320335444640912140926617175108349287512831429910896704010574629834859282806967383680263891090053443910915877958163302575533078904239643012771841998553713510228444643682107466129166731245261582596956253991777689239211143069501579002392416224336011064745018443478997556911629519717250999430728921266810813646705706254705641127352611128696116656992809968457982195479747188865512967517110709692719957614971526114910158400979647152584609861642925329483877419936753837967064813845000849848393502453762718709875630006421820648008017564518450040643529287523537974255676470586584555694332313102894632276216500652798652939325847476024802384602113835372939303284167822720331410573462402623358726029216363685323818288610548152793338873407843278655780135582588053095432095964151842074720467269334818872262621319390503931677967540521983645797909375064902028746157911967905104737992064054659195707303739423658492140498705499505673168378845772853818891234896300486548529042618544978523222225348845368414477957138820068506878590444232034367447247290883612960541504115378592697768690875867377613407852197545560510260186323609328239916757445006427010780373279875867961724110285258815644246926351994685023735359606465485644657612338107044337695074224779602733029949328781115225627924974679493207972245919417743002446894666280427788623449910458899584494883713684862407496604447473394762027428680618778687877072856067001759775713113186486016137908441604841233372034775714579100225597168265468586390989033308760657242572147331942545627626702216135394633450803139048840655165250415493978610865512987716408883129208019965364436430172750424199452038774815185634498540729638929104045529976780932949632708374539594985628897488574441540818646826474844978431530189394667284013431809660784407065557906128289344858893917112402230808930995676359844004533792888166577406234515904668158038144780362066143645893410913163997542037573435334487301559777854311873472405282178024611087579373042150586171232076422727312917917412264395599200511241704464620451430396392364031577359732848743229351091281060760786427581239563385675885645134749890093856608934217631103576649582128906846095383181766213170986380610759292451549053527601109816473223989501619826989665810014679071097633602660448214287614541953850909695599730279077216344937041343141113483956595679460594977733366020494171255320635693784812084453759820493638394657379885565652340740615522414533942732375159841091236823014576781894738160766185583056359815520411189955745331670220524139520354724891998284738310623592698328276036848543433853013755558565179252989159220529214070986590994987254189252958841853911093693892914687280312314379327568406095812238526933660329664522482645143076741496105359420867069749689474841300646084121061237143448104658008077247956232254091004439103483370739954260918938082904493366724648308181483007001460966058446145048588472319218745335840105967484160580209907700679036231192652772619701012077266274531364298271907295910389836784040168480093349695409042311431866707153425453024548419687570247090502669619811586926977196683972635861990262460827267418643186315646602592205595298659641961666801039203034025667872464096022686957587516499085221746676288647961555547118538539861049742812232075196227876128831036664206768349266298298012077135151885879351801104671053007576497392783584792134722371557134045827368524633168312461250252016899061821934580754914022364592092812284570420289545496801124179857719281772247547989822913028950440564963319468233594863030830649381433390955383626210971833199840498554032288913212453380200284751015267885585007060423464991248187663898914594911347714927444161113653563001296633773752805663372082294853778029284270101813345708090294688645945194575184331679662497481929887110324775850355934976209877704006803074176209392533945891696345266639553486514943896344559184964272523738562329892675242031675231315952190313703384181713299000233184464025770853445535885874266992376644048310422797111589528950196635736121684306599010768315513107974157294241691796248722540907296007841993926508162616698158117074559566340695213731392725237067382205962499621801985347014097924269696446648472859375839371460085765878454760432606017221506914821281253784038782303837283355330273757493864636198003799912857695161232088802315068327575231344920478049487402087384503463283113069177306293396582212132826645149316371136321286492729356833311108352164062239463211208565100842109630159339220681803696506381538429266686811959631478884192012035950095482337153886947060824993338210391813941099974109233418136156717805997271787581685959130887075962698092673932260080153026403595458853690485691217380563247746194354614311537931913087086756524683806239070552333127811748482764838679167903969129291291597852685908169232273708756948162976842769898303337402152294058303370323148752501736570599627018892967722648685843416637043462528195075557907578533676619261609195362538606422538423077864391915413354533939780919515135068048360149771682725407703097949700986458935265417703991357083338511297392999296468285569044451161417355485492523569295718453243241122619883847806844509568850726385497183271483415280892616807672723861268624544517776028535304441750259108336326761211761378213342645471106162049748292953884162055453198524010516083819290248391747148394894211995952869170599852830330383679498102546899261965746917125925871909539991742177231553160366249271490497545395251525364045155176814875991688454780882454642298210116885960103886422073014309962780624337149421382743217965427102360151191260008210841442381532138269981636365208802793043101899731719782212897109179034173944677787783514758764341809512221573218957608238555266750202215701329760522062527024253020012475576805552338039797296497617348188440729116111959456717793940479754272501311828962212495554666308375426567597240223368412911692538031138137208883049922307306111563993520198852415489202831292270780958871287634504900208413614559895334770106451891671145302817702434008753947290930016419119232282806756513116193581615875840201024309105970140946916370088045387655666312666307840378400923729410599077645949850365598539154857193187885578456862098392734460399094030994254966373473038521274129830906197188193268590724102262408672370910192388229900396308723667311006846237139760310023229922255434419048314648853980840486787042619428744989501907444957992350761534551139741889910203988787322717113788352846043208923811749363163540557082898549965183248939171450029779758409585943384582589027582925379981586632736602843264642747936543289795637046061461956718135313496488308010026813595109074804096118480102543169445095138853488809464055745684562303876948410648640512577618215407610848077871433823587194696543492828673484185149076071750056817256368469168322690423584333256859578476527568581036946394183457969328068908128565531246191856728120023699887914545791458349817329934426164533168996880719187149667612370880189559962330277203519481812030932957003301766646925871126155277589919151111632408226451138572154119537175551135248094667524825210332415917496259004538210692278480325251652592640024157696075134832229606090502230582277692614360886906637840916517724715742285589321603304646466253598427659531738009056404028227084016258968140997593158218918165382548626775060569887687545381356120463315398734833648958971339245666660645958330993870859306352028301877313282479574660466831912183788381666466235674848181437604742211227212335551310978501888475657602090627984560645386250667816477232902781651096515346917540977139245232593057526229745640594614762735255149710984375798526896647090251950126224156972660652715786204818269265731552637839475604413002496985928436650325707800612265255367452953463003101422893627478324251041089796245710359506013578654255716245452774327475086928458982375358498947453821813736401103412859230868929867221875705286665932665611203100330940816948907437237688494842108576740933902376930130850499450130966074180620952213824016147306051015094348321860124803847353137637179309937764723177304526941214266707211392771307603416643206604781949231606291550901960084665288957968691130061047372135588352113647351698855486334139892981135819796951175034880782103616534826437190647033495023607651621367644328890534251989672829249619467066070317949438577752051507569168008957649016291455757946653484925278312188033037479676028431871244925005706834870699479821866637107632747940768884861054371831407342519626933581245211946577869155876978968109935988156154182767169661370242589739149946961956611514669794039452420246190889988433539849103868375172020716087800201370359564033748158592574570464374876034432790839576077678679486929852168368625008434186146724267466597140205976343133608599312292603619568081867240917625018016827479153019279041085454671083249386215459289561758931218781471590072319937359892248753159298439394652017118411521516472107985922806282059773738708612418972133324589918873009995910557898284431023339693194593347455322316917006493281346207384668777043493603778446965845702461429034309590757219224589449810424491029742113138420214901129018207213121817571638982666449094388638712204455624842460553776125902241118694960222373806262717335504470813595164095533582475591719298288609358044516068774986321144625261500210544497493511775673641534064452588254548819739535495041388215174004622135603842981044100562907508246143664378467971937323734749299994198088825581180256091027929007090172080917666112127158982696956897892252448976706957512352128328388541751813906264488477102573333742588313668690680829858074973690035725289379335550869270004446567475481542254942716502277550703007240401740455489281343577502121150063761102810895406590035655288700310841954916316159575553581930384944274662589682468145497746542543858049745292457924693749679938436557655431002261613745438805143869884678862741495045057783164465522558745945580271733731579754473293711467744855912395832258590505868637013967337003205976633125250633308102930622389596478038892418605409441894756614553775106900287352422377296998565240264775587550050841266286736226872303343332566792877081287371405061348534956986406602691682231230273881298126272639439106194735204229951891962609064434981927446667754209178578759743617629380781199101936412222403314470379289443287420819549152113866781762402989239172894273016449367848342549260777083370071680718723488178910707055521153772423313251576640862682607941303749398298678196886731932165640414397967396513430442579111264567570159127018589808665993677060317096485429871872017565116331095106709752724962519257564779153487864109155050688135649274345316129727423506417175222784808569355371052028993804915747557246765410905937040930096382107802129673090797114908649872269904778774167314294865632610953165705633310178051467627133656628973467198258894851551305572424749275424883728503716542431820976401629943872572697667043859736013668252040003644330437359890213559405095204438594855941893229563388076808120428837253709466904097495585240637443979567528912139023409573554167651786952515871785088666159930438213633959208269258331587900018121420103877097795099984235427575283887113560336083639631223170855030544447470819134198492314837316827319420017759016183295509718028130814395021700743754040759466649172909572118904690320297245126696519628473629093106898511986982336175469853808491166212277979480233213580971972114705207141587398140784638788016540383004884421826027558026586592706138474795299778411240537923565249616045180884530826822473765454103006731463860824757180765530976672337376995405745665937167855868159489620550214209409427049498432315671223779966251186253459548103892228274149853481551086937781970647366573554102150184999760327770932671039928484561230461552276145093418561939044194775500302356925380410738887700923669942060705590231097440173061346936081548440838505700630542393010792161339855291977203778712660842626420914026359224025781365622422477390682685840145308326021397053589212131858788105979639290561041934831568306760481882742385290075574106971940814334335889886540674829598318421984157169231957382555460707922070702082547464417695932631917971009500124492831496067964769412950042183606026991007968272139037100591035137049881335443561326911879097457677974844025770149012670648547404322192462132944281045764140337310545471346418295313516508761998792883766738483205660415511585102270323472124615863280266829213626917998042291415425426845841489179320294740210642574087244032918096374183573987782033831515506917533904870222906869163845790137954445048796792276055158733836501379221648244501018766146645903174328009984377081378026719533214369082171577502545683289217618537367065662754133610290627206846612053816376335002964588250070914994546441676548863466477792210764407303472821612994954296785256335769568297631927873476382998296706877013080115314183246142328637451463211265773356183855196907302514650278134527279088543860148618864437070343542851359299939203201921620081493550174965785084769864000612755042874511878387626350818844295663428001529632791918111273688740549336670278328483361199197765246365860641993568835353439642392708037887679238942213932637127349822082099545503824007252724654816032372358564348791832242218612009057632246081882493312479037197558147446147334053979177859291679690534813695372113722062188088201331626519961284251960376281147182030553274247197855023899306768541055722849011188509072842674233626774400185559645403023648884971476751657632556045430748347862212451234294852496076497202451527294878914041578006251519444785826738465543541655257243678617972231561991795543326461080133930931864260468748940727566367145879618217679795681968378495690078270575576719370848405873218598676205530850214898531985072280912038361947701079668780905897401693273530678169497722522769983992704484460716797601561459354771674925751496041677862904530183478963003717858899084979328431120543790419680990556853081296496129831887596573739426542300495809328219994329461838946203757592993559680668254957831434072419604473931192701150576148775121293830250747140967234672668759301491957212117391488950630574136552070484730029699218032849457694023587877042279838334257680908649912948804150065870610589582638441766279438392943562242364514523167814127198852710316824341554868234524391892187731143409281320057689047140498134539388909060409889272442951811533523083498239639598756608039612747948790118738452855331799519954639304095678337368671340919554905081787249912420072269089578517966161386202561116946937531159789291131513628610095093140610761328702741271701506515584679461201453386374610467779213566546181736862894440828951451126145939651653713334010017096858872742401290329069122268722889538872018960221043571901607052773755350209914579956496222123587016471785197760739991228839185218257159917987859016003958028182992735801218208634920723721390905777436238629903700057565435479548047597366474086393459759693441305403260633558415877303555660548527537617430939865767970146865885363339746157736964049583102324113700829728726177889815237163333183903640058655773573515788009356632178937493208353894387118076549424133094459789933863781755055830369124318919717359509531988576897436065685880156473751846314201377713226698460638378894055635730559533649979412882237221349627618198489167927652352143171863997119318732848581762590702254501761759290885630833631561611534295524479825556731259910806691815238073859119443171833098733922882285437969270327593564103128662067418890327056212063520208310182072033217895998661145797460921226460485446845731107498181950011042756834379990368977582954112417494347191132512060102427558764621905648114446847498099347518264585973922163433340705149200689999410987588639181578393280519361285178460955289872714127970906259813665330654183607532898839921610344084959325596128274599035030890324927692772740387192166369690777878766481150354079607514758609157561916034312574557219027390841138891651011270140576311266432182574428385213891836189666522419591163984577866566661389265973284003260961239192094777958338907387524713752092581394912185073831758538463390165040340163530345613608851205028276624235796506535898427264497711262362790043945176352817682792677597244404625497011594264862393357602327649485330200903829927492981222606337867815112513603858336246734730141236355887861397538561084293869624207100887433813033654003276097505571585189332651168769697174717162304051493527133918537015992767575914201676395922308938040896640639821196227007913734491817220567332011280839468538903609854957043450548773710895573690920889471627259183803413442229645248631321371757995765303918734516512248239443325399860034810742792204815797677569323330278512581958113996095091541876702212751644847280613521904817452283016531471500178957442236506931380510138580820917366377023250182241746471863377970164093188388502614974052916479878099237624622725124443312833920950103875922260398445922526904025710721818183524278024730445120488127161858812205614582172741653490823007683939389810925344965703581965799787532463805001868849001227082092650734082325763346532632791873831253715789174148960204317768886029256591500409990879153213953557899230696181525414144147468446734156179602689590284048882794775406317963820910995725052601601288103484830494632305845564881340279628178052163558348899990081143748558246752931079304870071158334069818794360225988726119536875129473446484476415091565262615222165563597267303565280701258331389561159899213335320969312090912945583823747536119501360124866112570830657700803124221575191464327184908057420954895607211938090102204150832587114230459680471107458317037931816398518805174646883658756195901616800604434502501255762056984074962487893389271101734256905818995087995509449296625666906404646215475730381263375749973282296483940511064359502518459020678633438631139930328942186889326523912440448142799950758269897876701513805812281530080064682097254086106427904828821843163116249901780002417587412102747129075248212040366495541224779347778082513185914026903378091816813885256711077395180730623990827369065210693450277402628018347123858139327082916812197591156195844396443560565337853044098705120601713267533118413550506684814245379490604119020712509812848638810956843854192132233836871228627123723622102006280178342054289875156946309132440893907400109304810202358469322981212476440789216967219505639803628619893694260139743460794421069208098220587684015836334068207102992591018205552475157544340238186011150679822980415479887372564019949273687295472062503753988518637360574954929340579430945297577564353389973011525351862284350177651308630368535872333837514937504957754557995007696252270972523586581048910501861410547472337939850045198807286419337595157754736006747187956929651017000987481756886646149264613638287127358724019075453356386217725467160756219426753784382811938237075686887903772125951827789039897247839052792696840359284681512416491715447502568739227358220722578142622719092238477772166876788479150336227277603802302143628249906627864576365702077008681758892168923838326957301165985980705969475747955645130273917176997661574156329432996178465437613310568655724698451902956761786554950740124929261846864269771286692427094016941171704044240459717703765006397574832167105326999016901200127109705586466267748652286823197100980071215927748699302298538920315400687610106922674173614289553382164968596612849337416992887184265731612156288421910140135663543077359952679519956134619614131689537187827836654227300430907002081015751574547839334924398687489729984807961969823621129383145266134197196557236189182576802952165410895470922731203738940430428987420057977368849501571169808035013241774200246540289899345927542956502958984637454735567697263516571032456057053565791352612494267815914090152561632188938101590579195442166872111300543510753345094048624736329626774618306498310565134583912049902301980291021283647735297147888768694309102236103795560664094807618007258228965783050694455926266835405198493934957072360362720311684934299471721665841214392165603469778546309970644072172813538944968104749756356954350688120825200851564066770113163269420946631833792538545179761911191753527632986780162782688969294995989570674166398215334682587012967805398232795278786222403346167611666643433244163779614430275586910431414229857504343365220374133169449251467508896165489670294660318379653457178423358890403504495011706789120130715495341627220346345168525008642908779051796839323576739795418654564364079298367558457334303466116218354277996433477222312892895631364087088899777584685507734973614016532994699995323581439639747525778927054719125879801833315260304413818808762254751565503906901514458994545524506122348566095267373804883411304369516605779780875238867775253273014008586951814658085503031360581788398657306479334171689271138845239791397074272345056045682347835675974963927095635892754170451264217626909080926445864171059716878395114162593150444459216191270515779500235994304625639249880794095525533509208530806799057512008982522781173892776710745272516578439910450775316695236392458723390392337226520940734512408507665873607705155148752523437135244800738398094812164487498873891310150301750143757793282653907784942049842920791936042068454112827811062290473318733571447396844624629426595588656912595559694484258647442571294365513961065212022811530958659430947752103772994311021580737231830986981340289488130482644165670714312719827612027520762321283496900651886579517434980932392801586293606260126037509529877810360392328386353616693632823353172144735500064618379174213621397961146627664645489783589317642885377811728876045267485782758228801352175642563925808905695062962156584273562306042804601913853054531678776052611650978055503303730141682437858441023212292967698490385745710346345822398984702384794921570719534897886820495164433203324961424632613010305830066838196258068377125417983282893428781527009985330447064433792759515725098813215682242578810661787284767538909755149544993431543162595733645393556541837156662855411752266297748871466550631134678959832387605298738087190532746868854289812852065861927407538172346539592627212019847991556396982994245644586817318654941269799338696232455215039624180537568988301804528693970198757716787554320659656396836991165424205653431649498986841286918724571951831128233002908044941036823943721509215416930033116504190448380201021905393005961506428455072317804200429344369002584859892974024941219160868973866867938637878168815488022085299418821772536443867655282162548002227399674967910224525238868097212443763650325720968154636333557720668241209483661761590882098555306488813064816572284135925950153492142944297080319297946569963619067710676106436328981369311913954558777411966250830604003652503477273155152769774053410420380267602349301496596453998653168613038257512655727111139887478629129118217878228098633514057860001590990368470746115675550776369805424072265044217928668605012657923889244720677236052728314201333160860762445164378682347175749468611008724039437626311529880771805412926147978104137888029193748850650373652889607873248665395984705209811884496314348912628321671568712876396256739546662044701859733482841370138029329779637579463480150018554021391572046647682319398251273635038629928685498775177042291326562568008804200941768813837205119685397478117506263242955242435139581762090604067826755388726413921105721473629048274534926457861211259480374094507915606348329550619124051332155270236493231373834384545832095668229048597248743390050044933106689361531864261919241423042469517594960513911085831089106521078606182206410573454146136314435646431811663938391632353726236733716944322146467359594820071817000357651272307318623782791442751043288331200683662650141924468767533824696479960774206079366197306144360348772340884117826272263287167883025121650324890989016561602868684785483932538903647271062122933576837027684045318767636839659379266076760883897876831574836735748247447686080809754506110129235478327851210345939542486563882883819732326110728825536823906279040310253137697805770476613147927193913462020610438300980382635130473554168205547423432443535698011571813190238973410057479944297025173742454931336079053378431701168270078650162544181055989045761021205286467729787580908484535603188766294130843659366284674279198485648586040153145560319970180671979080010948284245748014047595581081426403100257092921706784214097745332063777711779521513420334523030498513737255369089474277487743565554098560936386642174271978260722307936977708429127018236620688046412338947599107793078155742242154183908993430648895846771546130697315692093020274743775804066013273822654329504563713058178786626808590623557953046749297557798029592769779763266016040554818836450088518259104221063073208513211242744953304466851921163830787056542844521348981794425614920183198531111221864468434249679141008111246393980265063792172220160073841397590063636463578805059434562445215501708580641976258344572759511504515542768172366559149018015714809075136528461862457245586941994317918613073070020315611328944242457742547837337744384588688577444374934879903447870202102162818626416385350709557825346989308744113935574585912028066415370393342935277615451095308963495164914013974810761670132485131303494771815687563496113727688598012025559438610733001424511266595930316482252062128684710766543347275063623113983556802613466881462729185939788619810055259318338473496454325589898045108360563493251437417751260351823115950261568555095279209596558411226752102799335421147630681001940164514070504149598052044693948628726431535395428908065351919794096639696530235679227204093000369223896068647672354022129366093352303130912610584042997666687661951823682187992052677550635730279363620439949963404433015557101235661366822072977414045486880200884759433788447480465826647322409679128731152234393249391852050959500376270491240417600821503603954753234322716790861626467191682870940762873636302879641358009943564819250126591374259818094979984201916400192017607568716322908457294279213540971116914497254460397028917956545648957595666897743721263859629210973382828077094638546484870838157522707273406295307215490962693381115645652457039032799218818920650936797786200275691339525648229491417116463579702837509070627736009646476383918176718041782762672318356393944914345797166269370926447329508970083058266782230723993019736267984761410080161483436089002950102933618392958327131617799394233702093953788370126952006467147800683735077818651622332002271056663050480863921120277238767122839019717265103521182966006116377457008653756957439167401275799299421321884025266646416184347169607671455698291633679996268633288802259940886066695249331650076032104515930264443817103764254207619456470461189753531661582556610618387099150437107000210959299373798333033586091270008629249444047835624467137215151598137004663044376425230140243006732558036205669050955370470537146168805137331246940796006585910583508452345909588164388077670907624399940091843731436081212881875506723940916158149049379827401054854989779431993394710039978972685650108116276196423083324104045018960830670377911531009406937888892109188343120059733399783749589505353481305600250221046664959292694505988485422203964150766486602464237010661862425111149144721604401653884181650392874712593241543110216126804148713124535015710716240023236553736316718935033987357956294750333820771933095043403308572535329833195190540675785410677564870618800171686722335225342193944713324326756163759992468632145658428998082412221359053402794399678431484682598163147308108842225300659007218872204146891198898761478709389773667221651602555524124018767487344733019057057224470638616512736061184350574818812062525916534383338513046079176626294813273985444065185195988379547928050809585553620988744804534645441768318477302499647208321236254640200449034366762393127337782111209932682518253624346685874664291978794482955579889164029894387348023447558834088306587879164719199322428441091470004551735713030428643325848454357912506752104092370940205757983253222848440622347623571408561347560622262858046863814832047395369282558641929555663418914260813377035292511690565460470910566981087332772964179036505443493868366745090176983572046834429327760477305893822802888174338760419228520177407340436636981500763638694993356783129016037394368371352819483939001013283738040747020335570884113067329126041825574701064093341966617542384980400470565332984772461330843444934555131112034294352021278773433413534894121626377768532711166249568917962655624754440515181985033529710130656948995257485022873840424470332774903701527528512778919723301399199253886205928670616564025569001672293378528989390263711595848541409076179884444403590396909391317543581889042834371547440102271926828773042291020021865085147814402974688635803908785727669723846784564190472995090061295843121560598953484277001291553754374739419932952132743210708686144597807109734588640955926829775778872753540730175830535173438811163056136966539888305558803253550904691444004613865946525456821413179033933093054339823899908930734656749391347432284034472278867639644430773490923007111931450839011188496016605342658336387553726856918033396011004516162880073411029862242485143784281925315290293683862449499820012271932206565450352403793519127043117628060017016707200425847025719435700362853019612107954150973025972276891955947776064895062838274675929805706187472872007712038530002746417358660597430759072886705241258334841353211767952548502366401973998348080685260654140987458108636750755089027013816812402006125942999742458966738498611157944571924954154575868357024432568402950543986120907774289886259460105559199045115329169946636328949450539737591358963554378819703050596651111952814280152211400204190945784381962134865680553879981772392979169823060984717653666163575993508569303477615685078981493082525474961645917617174022850676019159629536843276669424467424151952323844551131772133775664882443171903658414573763986454956381232964684911721939900763297029045792872292205563543255318902997631362977052204552986017117038267198388873686708141054132119139473974762596599211303618945161796717115553464019634918716741887129491514727496774372649584996175146397452031937746352989250131590720955426575117223119935127029955894479278823606649393194071564894487744811888199875067894407839261850672771535683266609909421965935386155529642911600056930482905754876924698339751371846845028939253794091751761290275296127035197027067237349629049302592977690146122492909627560667993534376453891243542416744070308440249961240704378210570144047496282112774208721094218262456539364760289745807769806830691288192807575256193746401314590587326633303579201718226020620165030699764955142139719980383847493886856339269972266159796859454707548540793108745775841855098509082096741272667372931510599135820640831027426579413449067686387090507927144975502493435470047400978963130761097450829273575717561107319616450409786959281339594015801390678121130633047692695546611013687663151096168229448252926076051255757442798924483299883065496909472077539769751929912186326141360137708055986070001469673043447380039295522308461640069695310397596760829767039366089892552634176879254476358512709299453778100745548368738896163163924583481320606368410490562950223793816965526922807865850629807786256601426724212124947086541604788995594157259529904643610237762138344495217974024369079468410299740691233360322242859828218994238227073153549643996198699345534643485347642721953086416737836270828868106394237866079915781170732660155952695962811747839899731243372694519878165318275841478276529603505013873079831609134552772995905019565781000904932282943569451275640576578538359175929615985695502589741311774418644597344402779469080206435771299527765815646187727160872040076881807816789593250863676442423085430749459033444204337225287398460609519321884584951121199879962588676546468805575129779602781228638996554578616296050509906956426843849617913250320280185003052284185685722206467028046472988656339013482370978633465300536127966774070608178831269620170250153939323105753466672087672431069596092046638821749723000035400354404692498543473722847716165107833494430780388263692342177840626534340933881806187863234793237916934292793042818925574433433693912659531676066821290535686920389731428534963801190185110330091474912683016526503087979563489156534369277531248388413529942088841982187799850577942944348292419337323266627304446904179850278316173292706922721824057254539507466167231557936757065375254821615558103777548540912319432286310269037821153481461425800017916663495375445367973977283969932007780412486742746689957427843305650028338017965452083596970213894320387079986975999156730866761759157088910133072828983168304031818138629929401233731711500093716951628241023704977925166159753838253384026054009069342684524419192209619012566237250584143712004505469848142508931243489866245899072992630288914185540806906758944193079191572896552950422458903293581254582962254109347205095457800061370580044337103184116188822231327066291447202101760839889061329073610019419210520326705421608729801108485900563328593737691740322366008122814638181839446716693380520639555824774002825387441165135002302351098848122833432136518559137851892574999246250711943898829068794863940129680316414940016203573448714593141561593893611678920423711852995866383597759585975888489514170512939318017908569566250151659339780559741872550160450683027334228519520290475416805327345750107060979418930648126790678205097363774025448677334575502274404014031890697713100380208143135016287943977486872939754341063182464163416673653053552920013791631185333361871555680398603625479433503254251691772003951173435221837796194650255437932719369644605814612726295516767029978688034424165116275840391205426634625937329297698630833231482314387898644708152741985799668354995964081390265383353492574396229463703819689038866136094228557228814274098448350549329894238905349617144455589845721039244766579000256538601890487568404647245635816166559175007221288967727882623068045877521580184561743323962549670408066546975811032294813033279330880196922756772631410727075558152835993733539806818706206346917901068058933623520383355002680902745078777174255299703314620519620966039625205334837959417876061061976742728975673520054567471884505715852766023624157938127470077651504270955666130386114835711253660838518235847822735281616476740059821906998109789239377621478695473516570456819750054826198522757090884818487718059184493528879996389777571403197786854391733133590297707605826815574107137037520698189696110003032405369009282316343231312467433138920552314929027235798110598698417400647163442282484767765246893850781366754173358212509751565497007515131334862771121333815775568188534836316806569637099901034587414198454457080172488928712039593105724269176708463966896328002881502050931956653395015344036524698625732903497453680379315301150956897825641764338457060120867349607100364688767307790111061433183020930206463922768827891870904277442198443558033434523929764112747192125173851278645416366997560254134638147917912271853166974818305972393281241059987460332250833642419898527335649839531256101102013079735015246544423189604216235671767742187854893264429742661648176493708454042310154858706729671884630286899065899192756660245156074693031246518704950749581722482575266442600022637411518669839539342740247203444393244948019239829200776715726292806719071392692653572811251130821013473769515462503617525468319736058595415192810094707710854620551701380308278089093083545892650958354541019907666495103790444085391417825914981527154971587280683091915056952612639265005644770713915879020476539678558531874124248580822847674250742631212036039477250783379828419504300199051455644311427082253183744146560221192626284601931229383144311721470956499998664827655436130092597434085473106723636411190667674089090414946718539543809388545474064408656004380894878041005076293249003526528201575598829652349875550906750747926450257108200408750701681142098547310615477180925463125896401475127044965173354397880615819020999314029086924400689732355584064050439372228007513494865665917508290797422361085398322883909499236190012420821098918267812207987196536198387756246557970188950345519638987411858999127075590824258073705209096225268131706099356672760462070496847705017901883571033847630185709420171520608152953908079269475717784979180438690657640442410772044180996492504144841861718208092245780852619030772435095769720297774701960187117931182073071608053451368457001487555391883051041574505208318321916511342943395548265292360334881682965877802347279132371173872068538906754990947850281706749322027708935853478163448252261548737164894399357112335959373514302366787847623922605050825388495391565035341914949601237518943752556996583646190015714418306721426201189118673950921378477639626156570683758518982216732934023865715278843411853204483198584097301784250863631005891175413169745570469505503843699384608144394955182817979223571849711797384662517925305141464113408750438468445978612690742224512418127460625888141101843688706467021107864065240645456438987160890285125145186709633830029073826186517962577377878833781177432017269041069759992320788668259480874934647056223831016583843164159450398150880207780819159445416786789982647251802277619305804911293016414293774348448695476011433276011062602176855647039015393412005908659954236172481307362660745904706665373258037093163345600472412252584747449568765104470750908555427251758751196501031488056245073177592155894034483356278804447921323855114878155560978462864682167462071670219499661699027942638935303436159921634250491391144756325657276830354372743308249754601398232811758454552289767185719719436689409512933193593515513269911704831337607846417417030882592465437388692137581090759386772470059484281918149898798034052175330678173041330193613586399928975651610709350061779746841823744344549589464109131947285256620867222351759797197396722562763870755936611144306272118906572757652335545849900458288225159363365318795987593747026729316940550175439154415183759618815352625315095232137212837876872465767265425705223466268954444251379689203993761547022930626134812550270776033001786144958756222115482130581035740270221205505652878544595079448454320620317636093213528465571111566112789770225582909794870346902955217870206677196392143590075058048118548995963327489504443016227493369990409377352214133351196825266341191934625910133799341811203785005238259393526447963981444041056656566407927890018086761847669865105370246494307827042336839404159760533702017307175650425355031127150884471377821041386301070574796402755074059443663670112359508879541935602295295625345643400377834660229859814979131083623723294626200325727628910486536514401944235039038473433763187455056940679819321992168795423174090682950003205972854082651674491101485365725387979752696752766413243490847391673824968840668162582367744151936550986928872995738832942429097136844972759080841321206219600619155282255209122122377306515636600981776128903040241553501312891248416903193663720965369856132592522993145396451103936238750809037660937213302371071581219095242813887749103331743440793600091969036961756959080427910254489423358388901915440084932028774702506905577452926395480513425575337840884220635709628016953297005456598266672400800614671955725136395484684042567275382197274570482608154081097105577713430796153610170799328096339116381691219654130911122623034795609157846465757571781275203759550191838798720550115253626591482324393366249308239166022317535835418409661746109717488878784246476113977810250941276710623121787598700106553124470175662214017990892489444839182062378173172101224659643943601663027349219693290219169557512916274395944865126674016454824686910887992376525011951025358822961213092644887783372052757934095679962257237560131061079617724627051953665909749523357627669114407211894120709156942261526075736339448911598333442662469098689990792179353870806943118598929803058612368644777636393126599388385745758052650874568825172083988434287716925554940911486798928107844513554075860351635171782761674175399338910250653316032733899573602388572209732783753681094566518154501172431559778712304202396632975389662022432644530751173725115955410286466280137399501790730284907805431940852095708002081536364903051592273289576893420149792888528291988265416530616087860340565719339931219438676747134377178714112874201015687314258088896210700527529417610070478665206257856981979908375115637645534356827657273073086105537810781556726246972490418965633746182172855704421407722701849803886998126172662256141027795938994088488398952516952251836350011977094834163141039214210058509125343840639110955208266835159874917419980149808219998800862499064207292615248312926465106061147257344033849278771048475329587134356463396309806554162288585633887419947479606419760826215799705502752711136343007382689893115471934586024673380598905435330958020165772870586864830163581509477729454611875204042052925859575300260310516613737292649741989617132514453606068048127472771209551780070622212373839088400407483337674856610609700664834698470046185047999784127742531647421868413159434929702845638180840957300582539144744339718770071336739588824190677768171231722097145611014996218047549684445158650695241698200603784488289172181635942954540722010359052677061210798232101924362810336794848508866925090625473174877152189846249526323795819220312946914543534450444336383547144460962159216730871979994076509898070861746576177239127877193844912028164370774744234817767901542194047421983353862564975528384637130463847676853755737482141604979495092913993511703686893726701597409614349202919174618265219693548252117876006603880385589142112001824859192046374050770829127675131902302946071116667814946537425838736405769222126146482480104296022345382364813722084656140372094048548292335601545294152489079839897994422349051954627676153307156011686422660626801899186905174116293571218007490382821675701095368810003927767883222550355951468283203351143113051498698076266246139630279060563999641314715748969870559852538657102566140019675006197551778819090844630211105758406343350426712082531652631502702389092811775517158417802356247696731542584104233565993316064226374438578346611806818687860118688398807811609608103831674872367579509621653152341664346437907134780129320454801946355186304618103486284714365664045816402234112343232023957354043731696281177625968371170234052843278285204719377431923697337983271670690332979589369185960940561863481828385383936166005464932861497691240255312212969268952285822705338632436892354476386676604297630135845474409682379914762239756988994946376425835206624784066074777479673150352231090039027157542858311673029903686244275826237230863124630988805868374106787763623220374266564673830936095670209801418875714340971562412492104073175433684560796793963575514922497445835280829433500403165171780536956104258476432862058684000255459950225792307699670093607864010348130479746372654203597795570349459601740282367507615957001179119887234760508310965196149616181129436304921558311483013951284489759458719677365332643438225207549126761606937583047288808125216750824206731391688287513022405519894929852045466919793325589224167468331258320915479969575905060245626561347690146049606150080910332879206802550636803678323516047890478946710722743131908684639106471797497357428790335135576527596020135030922428190219824105124953059223243384962388459875774588274907619887718513296146564095819322936151945866472314521137492309994548224969955196650707570977110183300567263683109959802522252376015467400554833851901913566428062879196691474026083417676909898057850696116495334796379353369447837949226290881648460105689108849143732144474927967961761045253335473609242659106365401132829728250636761442646315253754770661664009122173324227151565186539247139597748691222722336122551662979220545622480635240295192973388845375451064556352638358827057722181805366503402685694613895331369200448187318067588185744931883015865885790476279886337597793142424606688054955599123714919214204284552127382776449914256121272194899316645932842093256234086004100906239865533789337790930569580618541869683524051459940845773389927697033641462645343860219991668584843521197683561681517410461315875586437824985501895524042501597741235184884056383016415844382791520936872854207723386922542213143097674757460453699487643311284252572386685001632344447795861665786676988249761699290256516571150712313892163182111961274580520233218178841023179829076460503236888090761918467286742733513421264539957675465673605206975620491906225351752762546704752013982983469158506480422752743980060282439478931631533491790442036475653917156568723056112615124605527204768028032092344952668053112015707464045062011052643162289377153182231400170157458536955191251690697076618262893022949791897767409101948274519693177531271317961745949434195025085523788962305969043108652294810965634464621909279823379440198924233888333491636355096451426548184736483800344964324289587965480669666379641062955339301296198821399826669431826606145512956737514627379977356653988929124498817259958828817213533214574286998298173134711408533145177938848466429996372300775563201455975522897930691738635646031154770905712514337123399941487906524920967519050697544682652955577865243602283708837120037436128542030134595924531296396085576879931354650456264149345240451362049208498222269826259387076483777202227248179887387447074771834073399193084463019187494790907939919891174708792316445872645614490404595186162658293173318380216321059978552151406005604964262726808296055137114605042655618939670179299742315453343187040661772924683934854240010696409411343821167448352416430800873805024913720265631001760758031623056203981215226605255615058372458785577478780003801291583886033585523896535327179989119576900944830198242288264597641711538017785549973684685501362749089018784366415653496540183433201949878449836220235196098864969050138252497266190852736952918978854336860513948019955557593285295445238809351418777919737633745985820326973604299880432814423997977955388164075214728568719280508108664108624499672294315057879501871139164505947687162591734256788094318840945168342294289234331955747937241942387936388166778025396380532082521807305664655732037538766465087310517284770275335632109638632034645480177510355515065937674420662080308559653844396301485363860131064366097250490339537874500321378115904352229804377397023567182986939046568407226698817361505166328452884597335564162188949182289047498551440271485743492420462980637557023396709353264401023393011832674815656178212799436259001739503045223398144955477046833495078051691575909830565047222375050501887494388091961686405609738577915956048097910107346129219306610025883600971223954636294542543007685585059967023009631630119796355888274632486147816859536814815134629428658121373558013008030473971211244583368819143400499120214839984591420450473296627921854880144814260902173930523699373677842254104542025876315471062225263588790948539595504247032748175982660033507054087437494309948395810154942524278764192366430721511019639451901804823151095375231960286909229467468243913605371875309165122301096623853810317314138816768897778899116730347863183345724015723507096816456987710114961826667493937007716534538644268226479514028351814484514162531378589611284896050354702424134628499986801806195813673607482448169415958781850787042234100501850147578458222018345723235671694179469732719323374535421986576849107353727968276951320238433719202641942700912465574340094390586031354351149591325134987682530761389238488866402362772270016030914461099485530260700567941313082060226891538218588007328647221168001769533345497433542814352305295981360921964584408597562428659955131421993866728497886355171558977448551169002113412023755956464503909049934919959235001648294384219106757066845758949343448442554632529127763255509460784708059522404030913449054926490059494440240302421230076066363886450839144566349165598203778299782612742828854477059784015513857695982721363701036125196423605559433025075830332845126537190657008183260742346365730635892359347178205420056558031525559021595295892708857887323069965426143361969667872028117080491315481818084358488957907398785539612913739050778333979908724039043866696904514372700384971253536562519814713353311422140536502404851467383250741457009714986151449613774105036665401010727549289388271884757532516292380223264379189107444335901345102569316976378242101174688413797435647675462004050600223749146109795239846391314806468044920361495124183287450813083142390118245068383558995665082112707292022292211911226512924519809915146726186341047693844169062329424650589660491031194498063534540488519259078227608071931686557598195713431617026614686208915551938004900827246261000135765472661130495645070121792976170085988083811574551422786024003590899253142418579838525811700988356253425342078506864463934020961974794076705137046487425742021561492283932459307619584505354530337895658929037211772081918359224514831749268085586938726459054823283762112459753042834421835323253406794186668595570720631264085566686293367477242663654077780546820957023685761603027353914402160273437533855711240626307712447674093260435568248577372269354521918343739333597862633216690633798293109710733407772506554965344998894317020115048966984556588524067257851208926589816066158751526678901750290569897513566248975694425506823809494675106228624579725723602399005986114851248688017159866012171227007635563345081820356599364684253954104287179403804171168874133458842414388607647333930424027591887810946773640190626596545588272525080199365799598668755866536831008390188961557084067643203773639659753789960700801112485347823531491156769323507363271070241842733605750140883194651397223809080645941354359597676107683568124486969574780639057704889197363628734674796968037583301073443634399739803555770738055288297198176407901577267595849432111179303286617152656803964090180723362125040331778243353714959510136033798150496788608210778851471145245606795207461529504115735592656322360021523436285725354218470984383917956831827744543382998933796569542596271396535800154784413555588724340489155125718087011710772767545262129124796190384174703961538317729717489047588291453017544564819117019840495485496002684108298174615124684615758627069771574212255952702918240828990028313136040733112308265831124763375189718664041834019643579030875467656195132804370373140302861532363282815990317640994955643845543324288419987229049107286829168466823510938352107263234199920157511389395940788661175358371542474765371058635575792336191082525743572203944639240719475157318370701788875918430441807049977886817657384806964466219357265134311737298116704533733792508378784660175243136621710180838419198521662613856014401790384130978841654467634731910972328948094291699368999280329736451459233569700603032278207782126875918806833793162679398468686986658330284527884132301136300304751985837195182957064330602244568617198133474754079614026557180872425053275655087585423266176900842454849185409597819144946758959647503539195734886260717054254559861708117110380835601528440846183140961695632751889444016026193932529956339231183852538480928721128964137624871118217080211651974604979138480229699918513393959088797124228994169726914309451217750597994712977265609689016462265344252538628819336443536976238775900833577149635815892524948779010621672538391349876386076837431617033144593486570792395857617611491020656622208794088737314844838846504374769687475709560134759368443612071132056978115504653265291377250968929981155292029088695372089979966171920255714804471321466345656119247404738756637894730334534755306930752704878665919297126198419268662190766535105535823102411670526011234812119790350374602811184390002394027112137549034590463983206108005395145769931753876814675441657252886889873814389500508197278907340293437744958991213422971118401722913734888461378648242850397124517484518705858239378187377233307263161714599768560651776463950689344096335393041792919650243235400719110347776970874488170258045561169007141804712578142231759093289367293717142474216568722287301207769173851669622116173496939162210412541174969195014195923021941067407503852142814227090358044316278396029479606654583922514393570215242673619108092152369295533075004770276349596141603853369634705549961180720174882499445229516824400980442800843151612331262296753310225483969124913333599706090243865956169537037669086921494989537954355111395757352088758270439110925245827796495239576866871245947641083481485112080094172563670150377649853485625908870309977066134967426156934188424339941572815857624152326579870313398370871699994989093504321200360547878848768094658190504524827360188203388654886755323740271103695512453594777873866839013480117635629864961132747400201413648269021850862577339338216757759623652530672473616271893888355068800947516443473061162245187209287713173569627135982132470673086767180399080683150014894133579002224569664075344563542749172350546322107870727524119286682517764980001493254822769181732438376998143347378007188190534879731337086839830748811439746287514888888062627866101429548254415127892196344433698307082493374542321041921837447130592083858165193720158305419280080837861627179312653141259957671361197895567985537888300012988659811018630586581110831440228996518781484482813297550697321107124164484217212647125394918283798192716630274165057653542316046203802573955685303870245388886424137761991480289766228299976451068099219862321719371537644823062951197545971386779206593044381355729182544711737474163578394706704901761803436939141566040471623694074621711290263856372604612390678112207131863819630846251031788746680495501133359501321733954283237783986156757623445288029538463076834311731628088642103110925227978544047746519736812051467199754379320970416779513185071209388133892308833873874692503115585920225466559552312570160169743638436925664524223251986201750151826105987690300001647794500979366200438754857459584886705858709277166604855840502231642399606152188930330667151799257269164193625826431525063042986093418166882968143314430506511032928539603488400607482221759310965091001414459159054952291431521524154660082373580951239759960217185040733621967484331860084721808160496866280396135068501970605183689941298031194827250088266714944421511714354200483814651828423716974500521773512999679427746411369458626008255517996033917558863206430494623299347934786106152904627928251102242258346255878744511368416724398639476747731266457516247847550959695765946459376867505257779394713500969139971845645225055394393146648986206004805878433150392019457402099523803820151732011996710372690881935257527428973504112686604414542074849834018139893649414548768739780924551681120197323565326536300481066744332543854929567665904538468451627908699778823601848688269330853565168281678009301991369652639463062646967700540699538708647959269844100097844714803523774280933119523185363253878980849538761662683153041801672003766211084365106146844206805381064715499817110144574231896800287323472859252102138824898445869825545591027266090113292776390341804086436614850132041757455478205856378937718228881131943402118849644213694655874647322656109502898399031937990165454097091489492306167263038341894756346929671469069012243704168697519885229507342748305223608752403316225989171063170278252325569083476748844624643912365647987285527593279206997082597575790520250555081707299187798391638482042194574443831419691217749435777182433029516643397605913112659505127035500851503809123112274895578001081794729113974485713481831770205892813398289307792110635426012634636017901040357810505596078478707488137530964557113667713447335809057570157901618602120299586979890539624139069769336470717821878621895727887340074683863168635238887198154284530541907670601288953024268357462575590685478078451417320001176354365229967413281708710249747817584903905767581684439738253183688467063257626699277555668204320716938449823227357103387903777400920574829046683340829945140125641671324381726918806219172405675375464437334034844914972369676595274070519379385833533973795414374937907504333533273149015514805240393514050178027290837533091256916405470119183609677893906754740915882858499704319660571626086156252976154510469875698137331388636960116973642693810052595557417231605263501185184356321919136413453522421341565453986454449056542489086930241154493028429192118345565637714013821991676548513174119654819801529354628366304954450597025477498072259125018662279700099067811545380668404324563722355734130621801225756411465584013014467761112678294040450173867211599825436690948447194928926328135038917581131149414699522073113290065963444014034107274352012715686403192090945090128545917334920438070478868331069341325051313198705311882598322790312255135224937673881138376380151510682960188968924181619189119282943643767090169856214520157173803067341476460639811448811082946538357738236726667802754360865836015748607566301022683124120521738996645387365751479797397568244746699349729114663857117331154185708906743466445341259569174150325819358212925411087417812539095503010882024016441762166141045977334449478156992483611249489756639580000396683517460026840183340802991338882330104893227819755553613972950123647665563775302542109650113907273327312363767228375147890259786657100650626368726525398161071201558529426284097015909664346111814052691177231312283733128139440405697326394855573973045725927970686129365628759088524528393157787532915308026089579668048277453338508069268523467090669431071749132017491736108679768015475582759641404201456219979521504390483199158823957708776260227104164179434621425923245349288361105150921811245606418249963253576576316977876728467446636580785380521557627364276022866943686898061171597159364564760850044407010489129668475355873618561259149400988434976535323974215052752821961902020533642829441189114913603838384831770932865886582091041270708367670011622758339201511955349296045051070781347767512068262274929456977890274427001110525014539148540905222986268933164840279925835361244021950175580994778823322737307033088156536922087280465184388859564126326193524874516857784530690469926414543334804378996682253783055367853307393798158219524317124712113798253327910844235901512382588104657280996142311313473772610081453414221098245209520613239877011728240121265989376984593647181008060751306188331740012701268044729047795256229112038132594962984226113601781717420801839421826679952736011889175520462152530846240753148775511880763289653655010574845422082101371164297617083857230130823698494796228499543390069083282881791651642929256708380274167596816535584732911199149714293979602843547723817018441017806308252075771392839859814073512932155248834128074446096965597802694759726742856133035651635508585498364898193761964022469253291953103557822214584546411303271141390148988023274008443965433577285875371422444700873205489071880862501970778310105953115170512981401509230562023835294551845593501528164439302660400651996635490324114947712286636632838923420825914427537504436789184434421352764936009425835732043554072034685470878521425292760209633995640672456254211204833120635689311761215685031052109699930358062823766670466046280888760701268975677764563658001270603667742148481165786239018161798519986546985218358844562407242169270833202744198585841152440700753265085794242398037720080410971300017356868861619138520157250574534262546932764949380966871808129880517976460758763512123870570803192114967042388550635347295669256866860442597475081092459107399104718115693376938906880796914205323711362726428081238776548142284574748566366953798474942717109113271086556530221899130297180346337056777022460996623567580307690382635950475926763166170756391737481970064002362097613783291939934773297529818107031471486177161720778277558723472734878660860698396966663275190554604497786211163100539251453360291648125798699361910564388461937824043732108988711305424100386849862281644210201251022981922498947998034115619803590225287384660289321073943314589321630893000475607537463767978890424680795689216770092310177310574155846269928449971634824190046679120445715447920528057444650983855207475933295293831561019391916278679268507580808551534076218879726598599568702048568431148523190268990989794829236038575558215942084160082565163918981405983356687116569637056995542661849029185056041041560027238317289258264449708041787294961235835223386880195645434987454011097415640479928867844576320247837012903213769303089831728929279208066789567375469502413192229060706635100729916063238636156112926430468126889861006476059211087492888992970311898316658628613683360023219628335323307412829825789377666560347274212192552880418207854727400069194366842412981897279126221180476699225151531991447081415118551985931329244642548806320376888794940448226878507751725611111875074365659507588645487042660104870937039516151801701040426837802388277895381788736760747311597635027516812719731046441140106201979643788171364115011188814904481278175059347405457603597815065011183051094479633626996676349046631777283079865827316919029966514710842689876154785880291832342950035579013339992539271362876527968626349413413212218982999742909473078603482640447562707402489358404476192544881021016132278585828648797609043437329978772337837755404610685352744778383815094931183721301237646846710698889166444435354004763416817151136641474124818156789329866759643292342717907745947719489637254997008534824297700161493719983541334144339471943865077729052607564695879713943868285683475998076286113987649712486814938724772756118349855045451633573431125297138072443307159467666196267502509938959657664821106111705764383787472334392534800540183799843596806102499946700567396013985121087430696354064363128943474732375072609313667177182026870388007606071050458209810122410658655461514543408119436143208569758438753641670628302354863510724607989738977393771908133316473723422166386551381664354973484481931557701879288639562685532872755999365467661822304252755996549212890130690239135923399617050596678304135545865378833743673533145074346559822416776939383282226444021860774977752815255272398870354764131618882945563730393506290014014873901355718788523013999842598296813439465558643018309727463846979169513615497778168392937668294266561688259281643830583295899245132074474224294641306386151297238479971977930381274527576818981070581934211834547830143860700819806211845911357307494828918231886923117636952089828061279646731554171346859580709665488356486921457705182698478939908117086501414464950606963083148782289698421893233914958750666449726667304002155592796712485876885204959209442154498935342968326824149183815659969762665747834251235210008426964990402624160976658843735738231001233930893618471077924794457672513540740354550002432234374380763263944953070108769259568990324910592810795627667238861756982172225969146763170111000161279820476792680081884337889694812374398459406420080994741613482093892108019814715468612614902338043876322608904164556480013660241484500604379019548334975557201720968356129192044483251469873030532699716245816715254800710169186267974555705525540797648401052005104393255940744199424689299399975842328585559258215539373128384749193196406284605253927067086007470009364930354114554258588484760202075515231539891081687862532411042488942818887121930086358227349404745386364735113377261165876857507951634929028371098980016666013720964374252305933331653535040158746565097599160229465169386020250849150069734166995419436258247995902634363162313973535133502924660843180693877340116519260987363098565952028732967311762130424162787034790580382245612266620669410870022995311890214200349159879841285288055192080063450456520458798961317269045042731461228127754569543181222785278668358237400153502079657683828847665903220129737779852377909148283671964784639372989284665900252264257222168147164059072957767378411300679663077203395978040816386871544667239827267264233639736081162361171715973160967175997960359294911796173227459930477887965155392472207071413799825202752811723701376105471134014180187086173479971975291882622792892506641255232056008602742988351205728323199289928586587626651299281575755491234232145552946943026754115322117675830485442594285126298336338966029201378015671381969453271871031344759023243733628785956551367642768989924310173234692504266293837459219285981967630413144956194364415069053925482785635231651918554729412367864731891088828501308055838118760101300674220676980390798890806452837397195419336255051060231171674736838384864483726370059240518353707961306394389122052378517699224382216012597057627299207778860491774601588446403943466068213891023286555716553561833384724972401520826839748331571506801433271341408788549273025143414525173009836501255487638343663291787228734811785317029246903117554447123009045087041918246803032066805265088865608566052992755383761473782326042322531442645140125375169401203802408823784195246078814499243311281519178125396731172505057383664743110650254748800217712593003843797667087915528009967791675487334113746565808096996053972047176320650339957329695831950019115859592166469728029603359211555908709339055314940919314065868320689470295135109483750427514893182851315875217145879502595539627478635825558022724580657046114574138801994372200425026005342142006990207756920749893274940719598857492049810524533771001673899277883112337333901625691342401292714441377313122775122333293302337449980406187181260411139246381960806513910917098762572368231669242293302199813745373517200849229210686217032086863418463200545711387564577678394064277899821305862843089748837986432986952317180527618151862475868786294062164600132976760481366328435196098150593172143860496243254815905755890685249428035728261489597519499340660980585131987972936312249924768648766570946303959350905606426092951798586127771693172129219765646875402238066883640354420387288043671208973687645963755225634152047794032109065155553542822207140799720619976929147693011420437532596620109425216441773565461688353106043193259692847881051104834478988758741229986114435565822626546680680385699710131545682126627603898414897700644236355298430891276965780974894171296607884682367315613227925368625127465328610036699040091936301159348224070898371574270786779780878866650060570693057597910409570432690745569417931792023872348541606105974429563721244824803558080339356968317700245174151088289661647507281256881801131681125660272884303098659391252516033528810754782103273058203890689434115519318183029861357778928912358025328769569622380667254819479240203348040823841108737534062739941709218702519484197821964044774182592214413883823643711801426556923289503797058640713856610169100748249830129176080509088639882280364809126748588074575876127365524319955076227918080627895539114848257516553625238701152352578618590942582506858210630277241068937357229512332513833377420038591584947964774862863576442624362722449101061677572847700885314040753899352050626460278339968660273450381124898632005370849537971456798888349213672605221651508331611764868284851573433127692766025497118073740870658740889956122329678312652766870143486355646164046960434373043075951329711101420673815695496718641948672905506414281733478278475705669898600389437720276735643861724967748923066972441639931005511225615827006810422783176016770604189608945157645143843346122123838349605617802826518410586896326346173942016665060183841288138087469454353139923240468297254577499972403503165364649854936646067503619252072031705916451700381074129356326403947191490507421967260263874360493621638127633706394590544416750893828102482745039211994076330701679802112015387128340483055293527470089544755483973620096341794449987375595659787845497259785114699040484770139544546759199680954847758700880812391707983420708193050204684241223939574978538965494639406663831369371092901731886702829477089523345325530252312314585204115206698840232224644922202127062933183163298927548353187714463932554086854083563687190020352973063172935247618180887186689189035716980389795386452624293739519464431410815463171385123463030339862923005186217766882197739802059402276120665582557046832868169398513199619190304111983622673586138686704892204596827209773923156631384959220726540223060291882393716749022730147998433512686774981240623625029240299950412428207820978207146985404183519350459044181049450621576874473440239015372607288197926064719977873719021347024423268324365581838202366420193136964930828146259541702485106105531937112523321451380761656406852936268141701984567036982001329093596895951834188601364119304844865295765771279801712584070075692590437009049060168238561519317119706908310419401665005281223630184496214876999603366743705577273556902970170868884165684621879948330448893606094905361362218418055987216089209897927654627122024149779919849185805148969404670591989729409001278606302544243206235689425877946376378402853938476865286817604869973710030450190308200280154589684628166861999381644588766684073206790935780485652777395421663902256393161907178522339406384276723769486037829875556666527758683940561925596546552041128388309122712856414322603038409377378050472069517134338230153822091948292359692969395173595422044825816387390010347087221271983587700049053857586648577980732540003752328693282554988197091669920286068340838892669549323943981846875810885666479429780782613980354508555585995339848509400268643594958180761138759292292959046064498028015935355410226828480629961379619913273633429214859395319043778745226020477227717999045906538261855925576508039029093881989782685540494897643492779595446196827308401030736379079467011549888898604492109420210918950997471862056472938082356050694008202324773695156801471412656102503725178474518388231885208861603267212210125283512903850192605066191133303145721742550413502108081340547821059445501079663059034414742808208397897534313926565357601355418435721164282951479255990741574161606348653896158174596169115506563129459703483272890614195538968776233446737082482907708052969727268452400032600515107154017400878748024284660247870416463730975825967229180075453162819336337592874774535572402029681176617897289415072485612303113055000172112227782713285466896047756779672866968151513208183626024950904143999740035273025394874094194814420146464732933377116732146141011970936567898292490372131217570399002028262236319459960380001363079776458237135014244664579375696206408634221746197654325128041579013521506240315035877756907823995462991730176817938336040956840596998976704216406651988274281950485347041880937668880971422585279472444310835534917680266923077306486971206350805603829267909706295281677846743947203293368969358479390637582066070137039463062493560606957496020337769018985695405287302151664795458158098172653849781072114086065387971953232943106615303682146533003819256219646200896193013055308056513402911426810771967223096987614220823352277728890536439380940464010138189070427697732764153249192654781483595187745508151941615280813188959327608642700892803228086914937940818204139776267915031017787623564518685415118925315622367885372220503251211793638769039727019036898248790092490781907253279467118207755728629631930491521106794861516127337260283733068375000424001355667084934258753200535084591726134423967021188676537054041233046559546242835033313719790972437841429370158674424639457479345882092050981287958962156653302243750525227112266403976917446410183658107105633326380613200761796174320942437951088881755885259040756055194600893987260709753535607602962612957555875325446452486118284892052385528297326947798645962094207562287457803029867691260432442214446653261462257079402153968966207135590625440285245977142956531759563882254780914659344769211787534317212918814252286222109389461387655324376424649307242415970081367959763165510373492325563150361751093877432167546594001840457560927440663520625391485815863776101588839792879711705844087425869883657995636438727373592973139324622821967719115508840057063714543764940322642511148747133225210854787027245593958319900468379585866860735260337532054769469429326267551204135161605147854583501815747945148247701571470661879744209746451044410232485914897238736185667094722788484911555354822651004899883774507288257289724317990776992905508106837670090806303369809451290289609898766225851786529276851190126862469104065359646927790170601422809933861578900085912706772390714776987250118512215605143143692870408999283424934573050283389204797773447463758992011754266167663439873132415726570261279294992082644294376962697318374970850285767346416775674802050671894487413581560364141179114448828408766407677261402554890866797753608364368402351498386648180994647688892142481287355880851827257346533018563883177415428260342596867833793224789797869192057855055591417397203766685648383856806680093562506674234062074302409689745075766945467703805359088900535017905120732573903428003921625800925250414336951423398474932404268567553508181488549911314048754669418208377755824134691847798743082002344084108235486320128160690126120925220448814530135955198617686981331205191742742589741006971495936318373665297645229418507790391517876955545407466139260521599582000499047610901789556225917920536371974697528194888400114487641589156236946639986213362675250719032191557398288148990073851046425883910915484390155810159221936671217000036811763380104829277398728947819716922468267984592719839081531103536829415856662053694225464437005908299484713197562116929931174899903678639455240716622365218308456016469214536122991774219471178217919570715873777167056311399389385221560303856711718789828972356852577051835016986455277622065679204909917404273542629493715835827509651737705479582885207528615407238285922592466150087708059549023354824673263742512377258965202178293362186369370634288266313941260873040498857174519497909995936182641205674054385086618997808492709839533449619935722497298091460024583767049591816884363536632380585248121052674513966226627511856873496220175971777654371823831265559607086990813407366316172777667731257261847984993571990261680455982863101521823087111315151954998875076297362638144713309307756609239358898330357624353752499442746844815126692385608130794008824458066640577652701287089740622356093592276984398353966440425636574764258080162050890818734660466817123902351783320947656739724761518249281159185038100594409134779828996272049413353709063804002332806410047559537687285521054767421681978745836834440407505697343988032525582748294472333151357099491927357093670462937448626710252487655927302680942574479337002438393496140514587824122253316311855505000869911351055104377682886091097395224040782325628416663418801564875711301162388569371811246924075176181710348202649353842026805097833655206314671926931155219866079198577355039604631320033992401743954474652085891558694365163866539634060576591245414742821996027773574069118936733710314397107171789724223502637322165907909486654082024071087333572244045747152886022833428129791120957378027481956448216948250093151535913994033141487962645703463807816271453455686988186910068131437801699763738768321990612838264154917503303155757316933416659185122412384715806737751862734487139244219258475825674398589009618360641198455044706713311590749402492032871768822992943527410025103404134687413712588400904699978329670167214106715851111980918616652946240763327496246346226732580257882019065007237104913894382354417370292207515443773402923212333183479992726138416792033802063734691385744381378135159714364551376326565326146008797250681292205842906124975606531497296986973276953647816656561043263698718529734676757085834134253243474052215929528620396601853358823429177902447081765644849595357401224113055262429478665147765403778307050693666541705066643210200105450086709807165027811214444597903540151761431425754901932015649440511312062407730366105016485740231619569282702966920317296191806245037767882082670354350163493624589277999407898642246169358927445909725745788867793831594833026637910320882457244269508766883122324134821390263411546122559486913874483740834772794689016237023056654555791098030638455031249542104094943041109054496090707364040309147040494819837322271365976471382550720085906141855828696626223443941674266491504605416408871566510611846447854679464638333231679950447308946353505955882654912487670698249746585488441805216203962265348273881642285170287101693328754736144964089522777938481482097665130933346200701820765338889130235616672649898986122497323540369117400557612691923725823282259535123518444224014705590288996354359249833258354151079594417055740102612373642569329287071780008608443996119944832663790730422262861910259110636381989413099161589682627576857733903739578320171158059310214639384301044142538788992066853671120606299790168230446029181656511635468898032937720219455723863157591316244124962031602738251543661171222799710301968663625052805739459235123773332505163942857734378724638781985817582497502020109138925463907323170370441201258008466349772580636610771754084428134497229615110259232239003673669889791297482243958163583216624416551864979782686195482391823876818247409852130125801480041077315557850842394573059073326075564466101904608085913124844082762528260161739894188908999402652071864910769268042834953906564239363672144398625326687825621283546426805122949967757163264427550060941204901315657661894573784280656683391185288967743490921735776333768166750063113260041739357534770598919190712109712982323541731608279535001478175863269473339721376976247013323198233358622533255560675090091454736827466434341492544729631667901477633540547936086806731388368734349705402786927249588362719432682177881643247655324119492586429510680320165403183107482842985716901742526617618115469668230291160141015358326538965904766284473515759640070251563863832932888380333801069931007159087872616018824079246217533110912071257775485263672088223129014809804993650562145819948678359759582884712343990587762990311583818203649704154499697360686165622287413666028416834743266082376111399471770021584624990407947815427810911701112104395075801575243657970664603905940871491124639557208058012025999212235479882620594472597357478053140558825383253436293123104986980351580705579318264767661163585212852428667759210117009194555114124631738520904160574117771948802543649223084001209524181658051359447647013385314287717847431679829319257898466969723559013728300396803293921966122623417773512190921442273713076543871075238540969900301297523282837123521858808506179222689102689068921721758578616705901467269442764143328094937918260224154233432527693544694022552809782356709513574564901382721623919096169439278526832260947391840948529957338288751654358956387185909697888221203019364533991647197706992338729428408371696514490502807457670122930878485586985882067653979959505060223156464488032607243157112308867001568853372594887208234009570831126696006605754002190236480598740049165979477572531430398603035895830967153310839360968702463386682613927497582693846297568934524945219480609001073112979235561335010613251587813806474283605664639520851994589807992699442589288964823903216891504400783238463613887834156677258137264312376357596568415723421597534849705525948897943584531728042975615243263581433286075010879728657616590593749613926289044219841442235202205960127731257099047405045653363178473045229175455605234124455194139718590401869285564467395660149333863409291727184815776382019453803419113282954837404213607399597160941484565933528315792764723381156783746604317402738987575047013047034190850051997211272866924302004593180918723513166380721875880662077204937433866812146886560327382216865361281206569252175701906988683072742844970086670959849159559008612342747587961020097255470972842644392302896029160490359649497873759886840195729035002625320738933485987789232535349736810748646467454066320016333477631316519309209760518081763515061267656142913056683570368843046541712913918523579584679917416758193894453508626103821707855325271821164914600880685523308259234781859744649263498112348766792880149975173885482350070083168820986857650642766532045744878346344325909621896858613553933911911215284493898873639529941041052287602361004724692935162026554363368589939899578158976171787927590083752560129011483513946454846702173293035831840421790326192698608831460496459787400214173878776500392658249224431991914905788306114374635356641877123249329899066791649454010388827837646269003279970822463469002611250380787091760088251180936966819148244255343923864241257458782261676283789707557650411130890019611605744664912881274067079366803777065486858808809542190690441850141223312301072464082362856721396920890186975555908547652199684123990224636172658026418311332188408427883355336364710118172341099807197708516444710365067363707313743295117543706027369746451720082119678113353933808794863026877398782528188483397248019064332487306659822997118204958755031479905835107125229610581092018666311892657628969521807802746944711304581792489872715691972035515518507575470502712609328112598756600237760917334830853496138310377024491834602863661099669453702968766186455450212560354263986308045830338008552899087698873322691207430237500154086964130460406173313722250916516471908385381976975587143439887066457650624065194633633726360231906263605308493417050376435857953231938020139917856713526275602824169713338193112310128038237196452638458322900073494625338855894605847354003622056136955497797417762417122190510669782273654154034635034273674885489601776670509489840629307209049939012208106356599518481532806613049480875034218253517421783502481922436648572143967292203908600640644029217588843137570577127374066893471963784497179134437406387152718148877658144260345396570484372713776581393886844355586258934480223642868694096137506719767748118803937487860602084934446988695900858477523778894427163548576895951563341059446533554936849329318933237968836176470455590582284294433947429885832394781212151451876127135928340395576157499935134890132095676217687443523958515948840215838120621405121177797583223423463384591055488783028154678681813187693720450366636845045040783023898581103167822606430625941202624255432083096385110082056948864381128018482236716455195567310678699030679126479159817908588370440096439354588119785955481273229165115042760305061346213253528787949029721122161981230174514497196043571554273419266325214966317924280965006550870936394386357713296862821573146445605283770362845574495410861007301194061751688225406010829943517904499447105609092935946063637530119734991130050934197960134917179195471773488505499004095140345684821121260608358045589797105026225067753113409515735094875613299510429535483163761975566064535552806347584284549603802452637130964476241988323899549099532508156394445298365752035334049847978826225084911082376312171614143479942147536865817539708508835337850544306604037256122417019050594140358160130025960891452439680261483999686297791961763628410879980166564519575460950928253442999083596830991289191452605413698244068488267250688390915379479814742458405746875246470401004868979109807295017787999632145312462752833825694525589419945523952853694917470630401262658594074295177308728517216140186282079583489606688056830812236379789891067938224959413941491911824545200953513157911721255149445159149258807996768271911001491458458447488560257852730400908261671139466182693415754971979689590087329151185361483639206378066746118833791584933967196482466118849238462131971849118752312354328255486164076592188407696969737475822055029857582329400636591596911605346536050486283777314145089482642535970122944044325111905506495176278530021183281016805792513713937917537109419044856009056943949519630309375433316937914778854379476989661846487954010460306457545611430284351146880666932607373620136024481775269469124629714834090157637539139943022537926045288565418370365048013318425115918996380140676217317900708523489169195764687454281757876006917502688928235672172164491559216289585943745266748762839395202842323778925290191859341512987341505047396999613044393148547206515344446039632353301254841795657114956729494053889395961808879634050287929290727092304357922235327760486417887891811421312474709113406768842592539502703527130124852217821137753865856287775806315617491723853415584825015930872747699520184406252993498140406715232988173375376477857952263502773523168061904022451973630828823474998564433943709674477520681099774311515773877834351425900168693423241498308803899792948774317035025166291270372153810943366476114509251598557238206001998310107128175998827648939733683490783331154510094672425062135239840981933854182702392177569215837670818883616000379582111413264522034710618159411260547893972708462315269993844887070278738469822724779162645703303202954199752188443395870191026831490356828844558632404963031530022670221402587812682520420945145558104467156932606684816945409266305548497038637439193770928129577091487020253863323488265102972658227714535414087399096731934507611570681767142804072864028922988091931451614771686818255018898829723051391455608442334156805810961004489921195659433488470596078380330028760519043661601589452365533258260481118517920609012252307095704780239461587622218519537520470726141387002953844505707458633712634308654913301813792785657986261946811071380711481897158454645874254376365955389210718342243916078802628252835883791905523362406829686396682595935893930853236284821257834395455942712209696311184203969174913650051644992924341294576005732300029752608916930961016074752056588366586975833341580511454164915839182039659698211713895062913157644446188283872046955660163576794391531867120449144662465210168451590216821576652684553249756331821883081333141301617365232329871133234123199918680377392029441083729082696102379986079530265975902085480132431778379803592277542866768520834289492226326314702491048195510916929648204999785815998351171785508673496009571858302148847264823241399603293968193547988023318573924130931378307958184628016905528251570443154811272605774249991027546272998068964344091219485098810330215042913162868129190315282629500953034445226632927879480939344507670190780647513951161716673565640624998365801014682944727163746081493485558292182778970536984860498107988249137491687579372638541544320114372910334791260270952541183349088937580223598499124795276527095573222227098370554959130057610696702321167445314195854296108656586274288521451039827503546532275720353275975327785881297917499034545051733148832822396687821451749684973523637600463527951237525978052284410655311067264755342091118834593589360346895234806410868781056618440333115319664319951018867627010001307310764227255801202069212500812647985036025346625611487223083348466453663718160763439505897875504001137172604063552686623299063375550700738735241519237952070405509031162228223306958999748590939907479972033765023981083591641729322658833293845949528244307900629988352619925100111452856694670836887328917740531339192871905996663051180500450820941394514657140638148457746899109803062366785685680972425755889283214791909100282109853004476974277037677325755516580860368794965934875535968283335640794418043437918043831428215147064783682313516942625278131835152417358434112625948234445447395121884721867097812195110314020329997195030148853121307364929203027789225608192700657112949214774821924884925492486372403756236633375327556697245149056250432810431583273148095990860156568291234465448529855361976922821045472217379299754136442737568738286016270005720682525180591113806453175446327350325193926835817315965881762990573332931826862372961334100896771585202823830249497422859444298857244466654450815437842434384348837116963203866636050622085513770296895057958436827631698075011593723982881060437537600446063437358749029363238882904274574790551912396980226855101162950930518091617911095724434010188493905074434295385511722136254071562245022208868192236663342080519103555538991063683674210774334880775826995598655750728661422763467727789568781825594145740164956709573728383220444395297212062297647285617305189105296839489771339384770537013913892252397490032726366955891756432711310735352307017865506475140223644723527796066397753134386383161252994098555459664499853808788198845262527980550749271751444132300105119905111291991368287105965096111025991717003109451923815489265495912182218977328392276945768735473390968119717116729595390278397795434903261697464855537814799104715038840227550423414880204870537856344299364708543067389023497396288232450231804706299292949072619511285630222177164042974097425136131665650299933929023808082549326313175167446358566993914619330931194653814343442135710431358897935271683270937965178095194584316128488097183563992109294164473823331412668065587714369060590315478495063506428108633596163123594320865381588317410410690524827105599830626413515721225623732229579552863563719007894355051278752242969555224780392613872392738891072490504927791658386558961943397554250127639545941168976757529667418711332604224614572283235575536272552780140846885297885955793444579651987721576130457545758984443686901694607158322714523989964486821176105047405358397370933138585250833894061496813353205539600202726267014506694995074732712213764736206716026740637493354604190061092723132942255128203411253896773303458072256788097823563255571274729041872844200412226529955481617387627699400301435585798175126003885728928030622040178293203042658611446050845266713326342486963335547993816042223417534783590191365806629351814649810767968235028402376706273611849346708301357595323104427410784999138924446546460290612634193145839741461153675971557668302679229386305230086168120167011803831682850530455048130158533271096813998664236241286949756197556065127833085500829656249421848409562566840444643312481630296589818423778327714589282792294125768072806549885288642603045694055373470122476634929576301359102220331360577628474363936663179995902958056399065467571588505421140514833574833221457410093403914728537377630218910247163642430562098417481250044856419968537320897436086068793922813187205418652301098488195087166079354817322755079593224611185638085614004222959845781969411451064228304134402371824023553186635501732444489849650265554043166182830969945823871699139971080625543356214305286874869870863633970036543754711199024142296658145307478713578483214013020387494067212049614547471287209286923158154350102958668917203580847895051148226774215286828464488994726298220008552218629497516463902013958029649495614962562288080993934735937946875037950888868865507161349643032746549082280588848983213679561993706447842851177865586929457351944549151493883470425714863680102555473100876294064383694625006517193738349704398258770432277317138095185440936231927478313081405193124337169149877642754757148349604341687854168114848615025043032657370531701383078062688129916747274772028993291972592894386134871499117125179513172399360044883003526795168443293646482671872572195909576785037795992718411430855848013970580024046167014134102419677132412287435616075784745299346337878523823134170577581461817781096176806595352601262377903773019775210981437248582444297210283718449780612229814857497494202884684326881648803140373667481225894762495660403284707955257563197890929840703334782104413453105033641147856614680946907342623444875208735384340980425317162935207853215974340883083199783970489809401905351889242638822964506024754535812516102978155493407801582964806418346896790340061095545128487897441864646399386838945077390979047236346543521405844504640146349157766846065219121622473085841967752537586582070874019938932792309445098861731134203602200884107476569377325162760515636512395480770613967153304179616788341248262023140361038376883423483131392781560946183999597296964399677908440036039230299355106820766232561133832024661149407091118262431605748402283269365536682245387454014825888795534826419486017514552315440555078449724187546613376905361035016278649296907000861651304216904797400607540753512626078224302425600416093291055031251583938218224256127305592152426341817710619284987855534943551458936883693345696218473959426258488689514749954450562482327096312377447432805026420505231804326278363266025457452869709937601064690390077032406158074098108456255064750156525113786339772835269706735385849955468444880672130938932238769470219494860449559098488502487090258397160725850399015064702496683079136558118178467990818186207526628190807326077577667431871603651794337759726512959263710708449821998725377979480296982883177268572735722877765983297021045365734984304432257661771946188734471064491657629147156293097184219324740689967099552337063498441299032526277610738835058883261015831592630028870735179638575629855544960529036000069518460676484624095611007774464905046020304535385503483798454762795175938603658941424630550941424409724910756249153093527991309773281888427524629940151532136051207780181347844945481727909952475446509222994848744058796278878529768183605687345960806973463501903749203844091450188160481298221722338378420794096141898121360219032900811861080783242933419591596801984069286219694029936838557937220911646628637460322684566237937481867712291383081512399421443996297825314834691157473501223892696704884509190456459991669628724225650298487929779643499260526714438628940432198428679961014775197389674998781619767800780016088081717830951037798465929879634716890464895704603578135186068190633278382751267139387733972417922324288917597624103367509744375836812732460365231362586918839393490770133978404208296775035231228631615072205760459718924981216517484415722055528238908210578231562999714891367001632413724796040696562269873085807990960924312221880326127740689415626503709423515652937074409074196610917481896355390023424372736316540081948883584012393002953746808454937329772791304475644959326517319837028129220801315394937348717763723047828674491706744130517865521900219348757242455020093160968775929664062146878612301070352322997990970444549573333802779038435405595924176070225896014511712319028611457922082978729558738635254730773432856704164700184851452463136720626595117409633309796887301732823032627364179988434699860560028457196730801394793712137564624109539784217865862903061062775732888497755699858783921948363537770924667030850467303480931459072571958006732466871325822595241054880914061431550908221512814427405582076808130928744969823426051168690754572487694592883151825516800329485887527505556507509126075537493481722097184569933516774912123252233706436215940813638468394915646393844922345574964967224584955466140968570390993985393967918692513998645099294360220408503402132137371247128852857712367311007689732776399243996039725597060624131059299978533283726294742469685984511405075557633986092990835973427820920691665656408346476521224569283269532606181556717202860990141148621807867236543884462850991607289473788354268542296681289500594091373208560449931345315235068250159919996709549174059263509202081964785369234566103834945221233255505948606851042287976815765576234285850518262623692352335329504883352271900587219319282794394255009511237911999080949196089521137087856571724910820060051708595036930783533705519765969144234625805546673120355393645407405026763935816190357908961310431533637314899794281971936973142782041560711755021999165194171311296577189079774625808332114712407285938773890867708228607327791350654226899721623229359747971932243661023333072332636962401292586744742661573891420017728122500741364391291351069295326068741480404949383920972661764749942333921140664217638810040539685967209528952333070702127084001709052067513136386302576691072925046734357264916759561619494943745370197283775654747271175028660729904573624964370431053438626676821527671560417390755780144221038749959882023285862422242832536318507063065396783060886437603082659590869328451045834663209749609067600844053531022125377254915555202077529830820343674578506812957921781545104645649487332282595537891185736549107567629398668771629507348423380972354101382260861073497658896432008770544112580370502136619607362729281589966919220328082689929073762777939359359442623567395049152320535577232102504423117947736968862458379346685452352278962001326400273754177417396488622930264203616167636363555560951516284032855613208626904727193657489029484492014637770266552307435252469319357201519721118056045196837443462721924213016253188249010135394204371948995158930216844291007943431225007046626839436917588199859739812494872581268478633611703437077290535124786263404488210157980113321321465758574423320714163838561028325726576004179493676224131829869305500776495865031149385318666339717489224275804156467480030397015536480861483378186848113500338101395678985625513696005746245160138334551712218009132817372895512164265631761576797964128488174404161833765496333044328400459181299750060283368562110669649441542921954976433201944124950897177748183806866461352497112037121919120480098888639111831848708413047194856014150981209714973650918133374259511017137849905367283694586471455928707389995013104494574447640953880033294789559415350406586465951573524829352755973160476311570654142655429128985640687433240828124319309593431957996068779502721467886648226890190796815979366845302970663196795647311052970359335835600737465619563579559563165311443451281788982966941409011513554746069454607083191963058559174145432463971812167191682530925287532144383713926600818545931543681337982913617279451963947158316228056173993417257640972009928956450802778802991842774787052631434616743675899729016729675693830260574411080405077491913807868137008058052166734396587143184503166190024364003551740307773400680441622824830365605314777536949421818761466355977246772476543026693462632970204422161004029742256610841751089157565389129303817336739023249923710633567321714148547646400470356686367217714735665973040277832660728306094387324871521635441049997052839170482938861656833183486439154603898689625422084206471450835042432914123402200645389480373500632724318514788384698436587962659899680877371636932961146140255098880461292804224753346746874924474142855520827744588375891670131058760457383718414205922064539415183586356100783896505357091395816692659815335832909988536467055749017240514616070911356267187371242062442161314814825979863557679990551234042457746980096897798491541726588565561737447890950521912468069880514591387862959085313648671033860735711207601331734474416765861996741336808439509023782589561880586686162897200167772985134640019887639451137594965620579164952222927948427135837346409743800545433281543625948388138805547615689017025143348216065991522042220525401436901123278963554619718290383473059750974127393447399021851783660036801540800319928548342244415353632836920691562904229960623123881807025525949105845176328912010377714684018366597326852422246852333805702891179848042732745007832472148402623667592688498811316801284947515730303881439758730077743804569081862800022823142248322447757470170084062748633648791160823524512833675067751620620338846411386881042477802247175947646824652166989939641176208444985161132141607127038468419696861682137524180331096796342168775966580782098257210588508917281288546533943469313043250031059132259521632590160593181243122307988383425970708641978935738324167363814950030950466907024332470942705673863875269461359003752329529896221905139069088578593843629390359437297709283233271495642915639847166247700195370561847661982482776621030682015476358804418449225532726498975555519764015499129629801068965178289998812240606140344887436167737419300465186693876985823684421874500027710556186888935331038652939774199852620563311176170155036700667513701182372778746666884230808779730094357325057540288430118209028200090105424241707976903118721730402584653649865747306558105831488448655982869374289054093473334134971099317929354950131653753246231506307890805947289366425992600207412938775792056474590350785777632473568025704228669198504720144894887486472163546403225649242130620199683368912082884957643265000902089411749814094583035644881505054794746710118273565613873070594303877837864011886470996040983869837279845618004744378980175227037793328096134307945354322781137902697436973692322175598878458284106682543825732322695161051661198944921113810998647069486498230841647402219474965912691050180514393675949911349593885808244349389981255018700300032900115758726267041966874376772727453432969736386487791710739993368442780670390068633690583536785523920951234484601513634803553040629704888629726567176237324074900024844016476035975056584377100653936768553758549273410750057509060642228154034496690763673763641500039648171716335756334176241083382306075033183668745528158453953888364931753377391553023133167962716793205672833740897292919710261611170040882154989054610765024874965248586138315179398400292547272558053076460512089258970614708686293168948399081200136374492471532182552862542388980880862720280751238058111444656937192225871284498187263634190707046601686036071542874351622178703690134224581459977624011785109668724392328612455619981017528871931197593053672466290773636595002508413893284741463237586222170425453773086637027655556049281836195525443705833136361488366995753796125918843267604103478150364810934732829239413587599160112959355061066123699598468588515848056108981021109960710027284537575527425814672078007994371635614615862547666436200712649707838698166824247696524318869739017798328084331419607207728315795936227960118568037813855127899883203369802591172109948943948963394382721243787777973252812614172529420939300176038939450650851699632173661264492536691069443096682808952109033262288176300314048269070653470935806669196360349704807952947142783004325382067184253827895475261903803849275150831571351367393331383776681707402603636925184165370298637406058960268697145701476271497496161268603454474003636923550088915575224860032951187648215970661317257780855424545587392732619223218472274370036206503502206190753943788252129261576757335105436624508915136760795134551555304158511625344371351984178494525728629192714108615278815061546594079130212433253791645546236884811578716897893268121443447433827646589264770171413668505343138833121380316392525797682619791444020373021610837253488021494412915521971228396392012068681729238760456865683180138692779536913748214885614377919658220462697372659151928087007318855967003226570466751092077055650129547787944844552221656794769774054108298178012204690983118313959585980343451037289592440197983480774087232029855577516156278317340258921818356122774471371807279178572486346385362372493144432758846303763469173439450761692132634441522088224724032930210804540490217486357289830194008883083622363118335704620415723042387579467545315839615165678975330825022246833025614233457895278953931990630227111586623756973847022268021988863771433033358564992881490925795343474965846959299217465952879163943563976867255570184435444278331799580784423175350097087427639621264554507700439826372869620322707247625452118571002674167641171973248616977275717773210231110436186163067238380813144281930260117610763399956525303482009363319219001533404378619481125555067409920594071888036685512579103522212775893227780989585710606067400990105750708216172640785101933214891265524917059637370390123343636355683744781635102055822291983037331650231999510725963781950568727325037495476954957401706131919407355541825209020115070532581011269189066142868626388767282801882058656994290217131359221424810297646766391920558078377307800982668794534937987903748042815943832642908252546214531735804494740412573026226320742461134921571252885485196177766167994092978905121700135115882677931612376274379745247954730726869354815614438469783439914938749961974258006562460046399191073115541133257472126148063414171089147766054007200280428151099393228889837346981858917935522864082232245329967461332653506557901614817276798644219948801190930689180165536280750008675195072421122887686956303886626982332258486224874556093611112212390195494872045708708471618480317420614439783854064044549290991273258382726386385828943854092310810116707445687466885795917915127106651790980765046753406637075938510923530068301643844414873183016816312395133884118004300618889613555779424259112387484633404284841800278680951116317748512751439755236048420993169608718399747603855931423688753548179251821317940992540353212048477119695586380725791409326499898538831935502971920938420376644408897650913635716838114337053133284805780474413629458973514371539513591386890146258154297276072423519356005726064892082717713970461160541622794030941733493429347064486073859741025962064364032695729115854508637860579768713797129566100476934212769558272464389873434718495013608738707438429046826062004473256163874812397636313989230564447215051649708139404730857881355861559561323033500880207209190259224859364883925150806393975909518004006491270123019550193451294183917045024209614318097974926083041976396423547647718193966747313491764915543909697002238754499625504519802697534759677836405162547137577064136899433239964719734196674655705698800145023685063173087543050357689080118856861431222753991669784986865965300149595271146659201075211152647653400013230016243499243116442068565599070366220167804909494098642902571963500182994184454077918705017484062081554288683580545582546573783488221069930984061039731294846527616748740964051958345034693403999545268134605265759199437854861286252371991128373514208384929728079844603677440074389417475546507525253742627468930348098785202375080719795528940064933459139670950450670616569982890488616381307337635243278821571090482223119606356839453366297768530460694560898149188072152148962706062621613825052967658720096576184059818922219120175805271330917249643433201794471812932268395829847382499371765342430276436888914254251972614295452981430120241248239587814634561699823176344228118178256845339516401942687449354976285291188484332789978104773495716195600656591847954283660146572213774917083734767031219529780818945734476938368452877325106618397480399637724857160233112413825190438619342750823970446714175954498288849607894556275645898275624393654256128586636679499442008372270725173517155485916541663186283429504437152357252154978608754360691442241023046127887187995577633236433204637094890410365335131248973565399332991744540398866415503700639647429033443279981206839601341000615047694141587251961938702400823057428610603435295876047460234613127143958394212119196785923488856175542269093370686590500626985580033465341591287139702196600242825089224327101963502575319385950365283390088102665680897560221120216735603815218018047112926477228598955729164554198857606637517108417437828995795796925831375812081271866384661593259631684381078465474238141032428704216811151151146677503782715075706449042693241027934533787275967989750659664716025640462504440527238082522165752857800586059720829188222535734035971523767708231601955893611393732789312279607370911619835141565699635304863356958569311197112089332276532130181633828838781303779512905737328532999459642907033667306954900140969962855260495538173442292638809921970790298648452548895526501599152030539943799944959918222281870326388504004561555263427913267567208111258422005467475206748009001040965480379825841411517849074031815891151191013049456001030303495474147038386320827253684581597617449207559868662335742597314801962125620073860511060942207591273105323374920490233064142993231147090350277908591940966987963014632065500183269620711127337887463780319958465623225068341947205159739444539240059351131293782547386973747711108440064124274199866958056261834251924393869256609799520203615666351291113022051799016479459879309413713996225117548570286175840737793507187346484323219045253297312773968556881114622392877916710667373015822648197204605261377156453362104853006790143392558575495811324699329541829380921842537341403824525847343439776759700958877942241169622712841324442084405014391720112056545348299640662949278449186259644537882067903329765689021937591605834872382615285248268948968131349829902403726108193770902789789629094165172091759854885731026191191267332886045555734194414550915652751413857664271085882200012543974442049325172562671420693945208500548195555813396270938514550511709920345516672048804065424932195541935227120339808619429322226318933766844470427334900131033672659323733536519665208201319226394094729941855623944151807223955981293585433612548152519872789082869701488629131000981569707906389743383229232809161769784408233603581030220031581565406844617896330794525987204998077993705329455189931354217539205025099471591163503314900074472367087156393371566425791349849484129753437177699605380316845374520146642602500637374512514187155123226303004010460653504799619670864479190551629976107928238017240006701059481721998800800323720228748538669550191805221901549655418368862403746683224325315845505223095261245886560882320558828936491165117801653653266222942920726020014871910382316461158961819012838772962133531890611992165517802386332170026906253798586911570647925371668447395988320465013362507123674018117960767618348812053254984741137922808002687855932794939485619931724588378619234315200001404832625765370863077233041959213400180810610958875102869591210488404479701924464679982548136016974508101203589074287323981672707893548383783537942511199551763819209048350112916907721798381699641249903861286076941590977689372054101199326906004144012056747635051229421751946932597956588768587812153015906155401963220153532571688314498456833477882835143108299915142213439747678978839745509954430740865368261641549341937653791701646366269106256517710780089546096381249977728675644582350003920926190016443257465117552037243765763111074397393061759453962564698206135177627355258066464409974886157450913374007375668625474464854146343624129649522906847420051894024672047992745014998882269946976697772013448357201509400560890515507561582142429099353791175962876893982219455600134009674002614171349251533744392780841826311690351319035380675889393389827006809005294549742104955596105347700318431903054808870028054537496792617371388987981808856260465713600892986806672124869056372593278209543477945201212480767351483426494592597597754954298977747722603737474982546892418034755826980283029158961546952847134160192301289644553364100758521073135743036812206236944688499822797729223698870153218580786585289628533154206192775922604856279528163452026152566027924994441384032265605404170150929464645937824526334528652703928128256913867469701902005991607769788092713695927423778338373782460916237914125326951815976263723192491185508511067768657175298179122905995643256251765769752244850713305626850368818141790419820140696748038639058733963834743878583517392159929498779130481963868108367315400886677853413035865032493586908143298236008603305135584495735819378327998069031752816397336636985410951698120999314964218491280121175539613835026407241821065023015827996480138370812392566039103113468755275867912756238391169242862435398814324261472528093904467070457524936948907071695945504124785347086577784586745093829690101512468617337678259849480854497860123543234524771832028181814762574605557843522893355110249365412107295918665285672690916203102330934386425759580780393409002700564869320972411557742138326305045674907194569397813016469545103072860370836881161096122558171719157025956516024040023499308051028418223513175808011741253163691140239206089576861044069943383725422540353405307952444390296698185961628400903557976495557445820479042529400248734673375876454985857909264700800897294256633103121400520057848060563870124990662647738873028007621632377343654532149039299788228295059689670417563478175950851030345161303252822016107126698555519682097398783708872696840345299251070534536649625731089058200023804235649501762661007134191401843835847707836357520907612567530335996472337881058779245933540700090896034954837717842055982173619940882889038048344298481284622381833178137395888865671772635647364568763268631492104807519607380965962296366355385711350128155250400551570560911028056387859563889308133732059919321385078166367041062112159403498663366960542826919208475682389965167089869645640446327396407510218844069538611331294983155834559151069240013484672070369897562033134479589436396885660983167057626990972555222162393644924297508264464924772375280538190544729408588929872638306126266776672255667108050816118255636156845278463616699458609012475730610520567852095981077197665356967653660610478301800310828493379774138105200588968335976830224941208468060989964519814374949742738291507388288180032078745488844957407139920837855133100456275470190146284984029220014278392217202864988946146583016007378799729814670011845673608371997021714895142832427529984093742007771021838271158859522200020840635065552702179863302267557405012639812965503729188173565599153493464682965703042898724616063886899585950992088187032961069555812314496951701753936219485518494423965653026963387450253776093588563319264491220988503700092625501568894740754194424188979360777264306468470195305973125278316146550933632874660039848978179151180168830235110034788919298959650555375278689489660699224672405433334088813041822259310292674392337799434573545411835953606710591020017582068754884183646750634823262930150909164136838715022037694990743787922751096019682836185443917141498724714225795681656070555976109659503746198151350810721859514916728559160324117706594043981278928124787005007683435144474132827555680208227788436623544840142936191631460242101863972902500522145667544001334715767879364018094780001924984445614342021493078807839646940479799812952861137849420901758658696506441050306638851576428184622021123066190238751910773556277110836806706871421602583849994410098127708920139079151203639666973049971037622171719421622036901392342475176183487428119005665709804293075003874912279487519542624665493846888866289136010334806479084956582971522378135234930104766215052270189949650111170775026586923103170542862133098522557508890389123893951862312884692122939163692226441581039178141906408089362847013270665041452648528032027348225802036291100121904671971165548147865050806840693247821265106460125811250920514226049717617993501157862300235236987816166650973332556157353165951751933807036020117501164397088194840933237188571802166791130372269280138294814073662270448525408959637095507710525768656644230717736949568292658812484037942284233187643310503144113806263352697955461801824712258105444172092374637771245455950116861676220053414464558266979299498834997210635259222212929563960311082111854874548604933686150782974921862553578107071277010153349173797924506421353985523095254106724721716314465859634684423422625095148022296750244601682533596302341573838784539554407792122674372968359971121109289157007876134907915137760924079080271114422639877294623319563234296201302618369991417004086974739655344814227469457317149525208289064639212402011653606727424239131854466188513589091658193042762456859937191525984895140206989771150883291919240658520678697938741303979875851910514431842626163082530651705592680258635197882131586363315548738456599769504500762246506518962176019454121396727301193394812222271044717518284849804661902745618970641858908263226480913552842098396289633028113054426999048216297638111704622708658100494528641725440508594678099290852991862917495521985390219539287437377989925384950475661356026681560734273752106619186948146597273728518386543322602380343510087791674984141231095527769325923282458477973960292199973792816762139359989576661960966969934893135169804273672967440547986556895874322018768948923637311338626744646107318980028884780531375555265667064648319013375616515867358763125497219731200858650932660902823938066422724175602457551724066506192280974445713083890311403082750061410957650396570236734063330549651378629399690817268762108902869503572523342072514114099243921384984553402999959430121921236666226189537121991050543941806584322721219970317720255556712643063660980883323993685988907487601662286772130523730846768687410031853851556315533691699441942243598661293163509121948260799411751316733207481840971204610107460888017147681030275374619424490801059835158766113952272919435210820927936633395383438615529374851163087550414684795679854065735562869116345395978202407487543475820191658102477603556933510348207888676865723686283945926988407759349115524459872911158612007549511294551012867354959508899825789312913584715276475578170879228303777334517386560545528497385437975504048262057108774190002883271114380711816770898566981433771602361380718689556728775169428750727278753088595260346355366268654941888597052414136192228460957031472449256462198209013499102660709077800107823350823962955875754834402154226642485129271151869514385369708671593377945694822627184775537127170133501131449378557132453119807870335517709622076373242114631425188066794600511905099380040870208461852060935825238118811158139813302348026690169533077550223748270080633081185007078967383522098307872357303164581371147160400542872216415093816683812814791828424543212815048035591431205582394212079090877021436084397372240594001459000314822353401054703067999092987709637571298447279746293755098514980122350609012489255955988598465857332509794948752524903770321748529940347983491330674088867896804244575186807123843864067216630482071953228704183673687893058167069626947734979237845483158530068847958209593209788003282392211521660818862068104404532776637134940967232366006043601488953668235909849827765703397832888797008862727724653667168048228430354876948393762569298973990219170300446238692927570423922214063864423464466899676496048228711128518657001297524815405147038752728103559434283135144330312791679163121925390237210796085151218530521986565603773542077495116914942227679443904811200334823888333465107343238887498682926982814788012976102941140798437259540511995001263074502684995327350189665781604368226409492629511372095287901829339777878712791967119665412677856306533409415032733494972626077090333800334303370802151615891118324517939032239115437983808910296293431348355709051333897929668138232953382413685432979225011507041160422880953040774591118210874222694622663339090578680277900874252075325639006455226837894409061713161699170111041127425660340888998487571682155209471890993082184422092453896862116193474588782859686917389644546796228435870623348104379867666819285826923881515977809087736042382548264171178788956598484342679228911247747294171380267163234692024460706112021586009968833066159032999608512545170109234383299640916638492746259625654302854637585853724610073539893287894458402662714523509431824437257626898166479261098888205665510547185532506106677984178434119741187204071430476145007510892214152084881732819887098898622610119928260883876240010947863318958880458360002263430328142772274567432191698904748187820426566835564670722339952125121189904185771194932230304305657742610187741322329349315060209466311444522115128046342794113933766889667316863557297987903095160554036118140981414844493738411273717065479253925110131258628556604471492831738351798071786220551724356694247308015880395133967157417933515362454410657424061904274121232424638002315176725771707037124253020132887293355922292341092162116757777147226568921089219236420735997076374698656631615283042389925058887467991142033458841348411904350337583854935816259934202563669995511566445437726141922780993559944611283786264515246708393131981018132260144543550864193313635784701744529152613645585348623108410683442997590630522951641894997828419402079589552522398406225764808932501359988140744589087679711559744906984157342504596447693689146667958558641840108135726722893293902719715640892605238304096035082903191004488659946296262571813900348992986221810211568072071630495654154410455850492206160333883181754378146026811837715414388283894206071901368313853639021057410475094507805175876504068481932893056297668323069131748408153589699435331647601501942779725550078131427928590954010096855941438805310236323518639419037545771634074525165875819997082243907374402451771021224111008537106214423539648742704534214817279766578528976221718165989878519175058142543334266861412010606340105108761794331352180922463529516548992111951066581690442037860881485352716245185808739096400063311637706263922547856646179761048473726247686970189007325949863715372220320145902366762409752212025697368616888444771147999017990723772342937238844509584185219284915718434051058776095159472208224252148665364621814528757139061751668959101412153766607448573440465972648439094693233575483776185256162841465450694999679006460292719355399178982250305628703527089901404364407082028613467387843121561298571228700308999582555256212485547987388205722091874739513738855106617887333881380560437421964273026026689857134568547191001847759181625008893177733399132220610108688735020423769540123694539961901034538372852820424870789751247244925717813977702004993549895909160366070593600832152780708447598277810302814150539325748422634326783104228616694378939180644211817442970346372718343851952802209242075230370599077130964370962947973956649575163559729375627189194209441845607198660832791388730265825947037597700437569172368673490550435832657260460258136338492990660925989610243199645489040884475953150421179923315322926287358583239286621224452110803259756281824947573298499001513219137798301846783911458160624592003307980772604710437598000719886954688818746903272098382097201752308370639934593763337778099288520813311925640564315973288319085253415489209351459423842689747460944908432114838928325142589253548462889471949931576391921964337071848276990435393321512836607763175153915340573340087998653815355426592496435574239573044132209826882820247401636208210924044671328924344883093894455817452885901729474553833252759944788972196412497488595745753013545842737723210825175966194493428938715286715453416904222297223451242974298075005257276964067415584271409861711535089894792063898597605323711198034176957601061281981028957859111177306844729880611996424585457345716308799925927073529545227330358555376154870573179492603668606462500444323937481746192442728474008783306008338250868029699329194529966385200473184816899295102164680612391567842375482031111691353329953821402377403709706254503844607850142731095609372064515016295026832215456584113119402253083425670988861052738465804577599344668661298631442576005354821982276754313506112638040281574365436193156645027546640004643302731475186920946042682004637763430851079904317454524395341467637554936599852033321628266929737596824744138071052949413208526927143185616220438605078323006717027653104249605849505659242716378149835761754539406401594479891487606350976336435630097941691904744415887166659963287043193861951810247473922308171155173655376891500020095063701120986819464621874309736369562352827820286273980184042773448387165647576262780979845414657236191422147275358331845221517456909298674817508630634258362640100866141135610579179642302951440643683487925076621174648996712248766844785186363694909601775685902852771411403535185388345306720209637576385958058897995788236372537565888921808431837425409219327058679065149431249456748430775248704181969438782541151802136970609822012490177963055553045143030935934935181008038605835664887454867055334421411532230958144135597727697006920636807846306031113407138336605698745736108219121252423937826666294679229586680277653023296204947034776377646343050131750178880336673642312359605887242186388703613778850410471254135517892524167407440207432209967854683972065702679979790188102469440119256995798620845404868160228152380316890913800546262093239070415854472844672707301863294121156569482778930030603490379193471267208351365487313989107518230300924646446364447654048612419968191776633793355413424000469299033434667954825439988652472688227374061590134961238763254618916381853532300876186441660208863448872594301158867890341707770465165524478257266865133018097990873334779719442379870175701664428790988037575195037461436485085164946644236284299892184802605507050327502551759481189008038474689098036454867281005803457776788961822893435425508750218132591886345591005933138887690910969700043113136984813718434926115523076965180683179056852886217973177303673103207570676645830970530609401422297287478263097417432413975738395234583876441113793497375683781646182009831251129392726678309105533401423353180213864314741918325921086724898354606701125116834114940565834477091855158401267305554490684774818591387933121619868816357645732006726244772490760535551996520292071545100080482666328995694502764601042666606284483552826947029715303155284994504753214649254755465070819606796516248321803380508019073875612248628901246232158463195448820709179587867257483813947945322052894063916558074858825288451647452491794289257772112913922201604409848112965129097963878679150450854393096467065421567320848050439476383038385779217628997957961541363413481680294762046576932968845369471353582866565481210923554690659089182990252926984936102274663868917851756679891654474713186480704181740903853304623291308271883168064141904498924430771836120179401100551481689922837790107577974132079770832402667859828238083350217873086998472230982600185193641447934558575436489879844280708952501846917272625994161143173633435537972117792692730862166383502080636765820704574657445845312803020764798241411094238632795699301950630188427956377667964111374936799728684159976169328100472116845202563213498029577108768644729203207268835482723087622918647727525880028330205803933793314419833181534573531105665635393111542880977779488673737776051986292841550473925158495554185296905523684797218484650672085681665331557065095172546198053867226150961716480493746633838491470387022562913848588433466592728288960667626332726679372802494294049121383725697074435944354692140749262530178371576492748596153712581990949339326199162051600206409350095232351408116787572940286553542785841871946633966236636784700187566427115615276943225075644758556541250325772620152929563256053463502386761510878155161763214229291832835573209701242061834100562009538469878873327671161194695574466855598301288263433856328816047537653274141087706392720189876105899758560886725815150368053494218621806087966959619300758373221770911263142909155958085533337708209740876028638191474882168444350890518527064726990232590318516421068296702008857689546243592375991972492814908859953623743217814856499289722989859024242702919027951073164369093501034636230002974344877459765595286595731014715001944729116980952125343212911077066149715026911747883921081275813710736512031240402048694435179849599656213665390523562689389310460756676230048021034441798059135930013368454593328112236055883229152087679158565282507209034352498369531536430346343125388651748129542522346759284719607167911191212096118675080351964058212696814723007219346079221199604747260978324428321562474147871888504593496480028273569858024783265891569909226259489739295459862307197471377464149379131513092520906096086004683872791142040612249324064828374298456798179994682128431715277904431128834095775498878200998372509936120054989267212912036726773060814264963697865691322002880386804153009290509238374436926973388465161270854995419079907445477012081436205341492766120959018128126796157350273223394646865774393179969979286225997888025230616011679330255506712353463043962804539087994213383863264701808274776459711545833888765009718429557133501773390207310484460125293442332019487309550418973920929229121324838010926095830489487772543224333516427845206697307418572581516214352366568494208075714335347653904003175705618502877762928039724800059377387686683113233097737385811034132174956177096148845397744151428847813824344380035489616538185544215701643138918900773935093823509070283870542281702867943819814498140972962501732239702743638388468823769442120718238623744398516728057299138611513304880667903592237443341814213441342859951377891995668917398737272338035606369453795504547226164686619623219998512623426491643694648671533968928784179320358373147366432905280025921001461065040963601491425591540377547807580167416392595873447096896844831978900484305867823943602241232936917141095948470719762463763179038292384883499309517873232782231014476615886776998445389194280219738951563155558674011809333277636225043531394294754637451712836129856849428150230899425760048798853672892757347750240713959423179262257869482782005624569094877753975326386948647427717969067790424521028887502618877788756228187967870466545724258695842755124812182507728465224886076523778799495762479363768689369839962348381944454058555774520446822443984218210876242764462342581598400278589575598436726075991472263089671515408097846118870601514195623502174821715160863770703839445717543481567970152187549351985488965530199898422578517102381399326738692794112449766521699690404516694479004787506676885115104629416967693403795877756527538309960117226736769135743848540209903918851159243737252459273042168913864472394883809084474057702489250340529737055659061298602733262062141353385352520639472811225208084270529516895239340704790540676013004433255379560090959731280334401654439099582043910123590954098151263302036598462358811065873683500004058502662473713423859878127816670074385454135324595148197275334537300755470685912274073110363506012436625104640564243722083503386393367534636030978078838842824022281059108585495746566542165374669009807659813167510125151175591974275359984014896984012978494282014500610387711331039827101045268100149487129232738193135812189622204122650925063945310396479637040885808611067521697733450853456413721671061187296507880396189790108154016718417524783584810383358769092792827720803139655426135346414160771836335928655514269846300595122068929727141595239265225344004025734388260893352015085027556100982725375938963012401699497470395928770472905565813071320888795534769751981769633163114462386179638384835768625332561598143346901836728582151365356524269174761098058996631186456595955832773457517805555488706717976699732952665345794611540015064041354693572216345450793908432318186744488278414875908505625352366698643706481765294426573163477216094060010896811582547211493218009048771658037690116872669327272664985863064487965578905528011625179305080688169451316804896534241841397748026542034812819398848011051954815534689883459047815673663787209248553300308766692644468298059997723813522497581335005951897367863490578887547121274992205975428935869399343848445059968092245871122876688376842416925681686574726722163195484727540802807666676188728424543764830952746466373635637247342977835954401024861973333517275812986813035355990892623018527576856289782339578173300338506867572422098098254156965567698066390939297614358485433117713594660426685500694950424471519001724681855716793724010633511528501122531497045055670735752116904958059039215316079806643110138403302513750327301558120734882299974012525663033626577627527927283058448605520498697394311062543574063921994976802818697842946672239528599859044207203987532004401255867157069118757006466242579120248477238013091552924548678189053401073941691928439358925399017117043716165407410777587432705062287145656510611949308233681240181141073447940878228399643848750191706816356441213758636950815007306038097550521646856216294413940102903335887868577192458220324399035956902531076314822698881181338809536141838331410255737552685014175105560480261476743659617448964241967316117733582124437581559109103725077071153929020598479402362301403831394132718230888012397248121931137488033108724352894693469968986128057421579654879567056360440515644326062803736244574365859253773688541089027837839394731519484935915375978577192654210131427885080156264965365154306650837106289778910622479723818813319496022419716580184504194465872711880093811568289828528205165272362643100669040181595849840008074193000889545155393548260596733657486546351302571038036912754679641098749657299557704324209246453553125806499309433128298751945900738602144258347232827564345465123705092170622943051652697110413027691435946890470272893289057328893127482470272523277221284868349671705531756438977853803417602003005520719678754903139046274152821163367872187631207369642216617557724307147111596336415506986864452728722119594939160575504706082196795903763663907478424018302860452357709942072448629263826487066358929002930408955869666086416685537375894247888691748846817906888953733320773405707831433223927108499093849554814118570248524203326203873448856346810384978255932040700245027126468199612259961461287510993286287657532666367549728775455846899063697534319050508108012842538848886641299551199005243469925455057742609552838964686963583349163295701318497721441630689888427677012200483173424731636017394254740953398571430765829539645395023500581093340824298823832599645451059988323276816092687961976997067592021247964092692749647286871577756552464875302099634651971585013332335610545449526307637200918179449010093110264655337557450227144159231971107520363647016480006583594308440040684479870010420606428620803565836197097678729432898094964236463284352728874994498374605754798333254413429726065138725186611993955267710777247630003637785030504716790523784403532434465183411270347874848761431913916630631464291216798633621244208136198199609225224997347933397680700974775880584624129600136993643171830814872919818245216684589182370675480555229159171961343964615294830018520046613845351084014730654119990292357403037042968394970163318460973937631134833923778207418348020483576622802047396663240796984778291628971567424915388398642397608902515074673246433304626285934638986887649283992366859100562208331602169217588217817818141200176407480684951616186609496983800833299678470212548088376531808209398427213217589647520864044419946467584200147445739650270581566266266369116395258926228794053023538464294212274603286047673063911778108614009847180114340079526528313452577164870576362068462343332817555644458339000539759763832016299302774938114661972717068867713166790886063578529917217892282010682652981240023738839997169704298659421422972194936620248566095972999184594875532172850988457504094874847010779335410678116818494849637837054559166997387188771140032142718513805722831177673125423435743096104745841004298988914689691027016733742199838814970917999314714217065805758332180638917492452039654895490799056707999195233529432772095098444130560993463469201662302326294498670367232636196611375833646944064624484338148316467624646780179131053785740400620178602701213062682455356833532497484066392256681082704652992639391886022815728900660473632634974598942098510253072298219368311400536868699822633164368389223160475521220716222223400003906417228321924479397689231410265574866944622740404623715704517362066283520424429780968058521597358460930075570430357520793774458323142881786382281953008339844428403631546325429187705183079937827155204812731216564628467023557112751965162977232547548284171241107020470759173013550377531019610514210738892043488817650740998663570997293010290169392870692549217218475723616966458253205251160184942529111031039724932168536969574766261962909565593947753982632167069262905000161073238778968214769958830667013373965720441845347133191324539388266046750992241103042104375788920261219329806904150607861544286056161885348766194341562602737966248101441375515695662800508226380950760844419622340018462031191529037070836894162604697897053917923303668331788645954667587547944074678955464182766770407341337739984053961943882425429198523028532434154483475400329038051328386211721955755475044755155998583383660057439314413771889856894213625937982659360815564038980520128120141831143064562237345777225826655781974977074021186249570091588242788827631247772918809007079273597106456272228183127549752567464049056882371497914995857563288713999349491903182451330586112267246213886765996454079240611018555446434460798387357024592539471403422917798376537863820450990087781965168532373590193631812840659184523134627631759429148673828620436145226279332071049626005878932424838077445234909081435465683437975001635619198820197905300474355534565357979033049704112371945124013763442362116949089273282978067541582550280387593361897594869018104324010620055132146791945809406097165125421774033597330053015899950004859036647428086769789431851384487309682411140133631859066898463039604908363910614565989002659774729336831003640279919062769344722561391993017488235248290050826782251623974700032968563393361852937164227316548361488529206637778964732788349765062613032998535774689372110342940687231034197222670564341026259338471242753314764448052754979942819391762012601670605475790922132270101932517468855690410894663945277856523067456660910456201360936472973971064292054713532855293621162761613070113087871459728377947744937241427319733084835302729440875436865980672810798123423919289711940706910425904092532172835440635740200736505297588655534191967175583957269539955042569280777146612801001261870059951124324919705855044802389231012850496336934236126844567451705882229251730829460486710081069118681154420561164306938483321015112839775892494858972252805237231560865437425190748808339164185861297379496424545636441942125506039257104723712681244295706692331171833169797799673048756291213400604061276248263295287599467205652641163067789694661655724368584581696700669954335361275853621164701933159317463813895797419195667907940813912493240897204549651403426962937398905699767674088204340108877670388075143861631153024459930042775101465098567937579587564617584806085576543021802330106021781539205958254823145689322595805255516774998263299384435723649044428733268561048210836151178605199225607606995255620104075399118014552209976958609889975250987797198929110328093686861730847790970279918132627319864034532099984949083329358908040320272591517537285149026877045000887783347188613549606222965475416519043397465076281674601483861576970749755581562303210717471694682957099399483563842175676422760808820250653448553833685973292565395218260924909008583517158962758497106508154448679573549432207035308194725848043865401249473077714649403926655241428536128224196295543235333214048691205702307630964219280190868603642783310404882632969712338142821069708133103367838730855443491522938811595385083248376214331277215064569651788679874704610072533526970048254347516384107762052670218005881963309566733106574086217776711099562796118177016675375408021404714080067103791317884066759618780004062232906150068607235618687982400094903354326517073900292257889303997625152554958543022845417486540022000610097117957431824293057739353782366796732135202209916280629246953194036259731148250573069137756475805383938915798872506135149768618677003116074957621869815085177900585208981334940393248039996439786336631611093977556281070347192522194135776281877373118172856532128823040550283803703229182778989082896267460903848755953611937021638539676220993232789593284268471890419751350162548362221452569137151011419050633841342318506416445242710972668448202405859910369196029641586588595019323500187514625248277659938544660966365713347149522995451265502954569612680130917729581985567022450724579809785050257175176182898342116536467044477073836326288838859118555541311392678937198646297462080820358844641338529543170262628518922195849609217968196041657850053993953911201713117777154237022768559598478377723784894662248377522675799461726079636760285899866367973868665518407586342609559260554748887251576314641750262428650590413837802060006793217307979344575235156464028678999932147755882441807219952522557520440821407249582157261712745640890851749896575382316290618116101090184411191325520608489134460116383593265570859027119442677053908059741231602763908309338177207084826431456966261795586162267872959734606104657023371578250146135957793637179872449163593098107505865878516470674430548623931797063820951286185702497983334812346176845706808811992358526746168693537803572441783816200949831137096805325870627620287011548229017177262474760231006457439421988099672933371725740550728620946236852547410253051797948848744349074725803709217641658645466387431943308935078391584225634474119046452401928441413272201199300242382492234171560362378448701542477032113649226237956471657040444321804418388258562170152306838831709287675921390815732894680819636413445267117897148414041970256778235312328562827082305058473990997508053754933647898294442123572994504884169894688127405646761370266265660738177405968493341858473072173854400725516454792817725113798323478679007292491633094494343165067504948522655654733831402685106928429010911719969096681350488515661873627267208280429515931898439121866953544151321074836633715073818189487326782511320724831864204019480282976242320383984622926705854192387525953204152926944275320145559435509847488788199239726771030599548173078393956776909061676986717196562993919913199947925779144060288491383872697275863424935568388206382106934890865193883228697738542319911535870761962961540153698969430088932540167224102602464798085722715370568870264844775203398945019027790856919109771114189059041615301432591790314743998224409443900671161705870690893137644860166753702351832007652105855300447714033630081592025822661636848859010352000277444425431004084926562870011704045115864941719900280882029047620874698724428000735092520333134588881911265669066132575306856430986945582787977296646306741128375831122674403071756444446624178185076886892159220048746903995945381785790396758719038607079905323718926917069844686024470357962141355114891348963801022639256013648659459258418290534926481377432623101091878655378817825998648061929113582160096013378399178648758594249624283893379971481014984476835040318873198973697374079771394481020584196995388138079192012084376794239204417686121622703301188449172269801373249427702765091575948219439837162178745617346161097226931226469189091829828265564455055066447204079924994823070243860469708122016934348455933150373805910134591269821456321533360119249870145283934455052551133998763280787947103220513118345338794095819231935170676777679144441800399781722435256413253521858124615127999292291045154974807118630884826680606365200273697038026810900760318937474384088015378450035257070224495008358655831950291297770099627404608856266693805904488833954395592874872342298999402171556749335894034171886847032595758868958156876273456534671857253360547283802352247835240325452402506631949125869747071844190120251392263145928595542745654862512236770256004437187181827724356373645463936963785487716413897922694058632173751465380737273967839066313457661683582550677657452101256833420581148254392100808678602685974487295936407198278291563381592573570117841850590548573429406653918038080648130801411747597113713747861571179342805680071105887598937347861884172473185803520525143690411823510800354267303851528143255330541550620442425529989211132077642623809588120876500462672451084862117957684562129771314663345697731961725425601512077455808623645431768673727161299771983037047341772411963401652580589003201439711305852736866577819509832062614048008529929405494748549619927799853290635820711041518043927632308976902763659818533609005397944635915873289394021125204799413564234339909800562851246078344142822845739774456007251548123801715479337625019727556235562516139390157515937012107324558276288307604000357049179214186729000133168701199130515730034559282141812364430946413730522377443895608847048301882682224794770499807376117859717807382816233641749308793083446362073416458893805676438103353318221845089935854245109352535491736545684197770291734484068116736864382699828005547316852462061562188373567751685627002497686884999624257735926561479613311183892359856469806306172182559167259578811577731350981348239930069792677924133934010860566546027336461077164109005903802499676856402458261124268223644435204063205124559882571520301894217351310224764509940817238698954348131597862294996088141467026913010369733459277788330430305528229774218681726145945035546413589044271740967651233620972132417221276173457206910450387751260542028739157640247370208561777023784782115274255524417153193448024017652700527575469450798420590430375845528637829007677612729287887047457618303396926693335281836044939931707549063890049295053019988831261401901538906421894788041639281345840067204679917795645411671897181360614785312051176669516197075057020462791435248085678886016973151235269064218205836510634737577202926591181326062974886539837808554694894055619671967473485402243974367357656829670557958388369424488819932718050829868515163777947603729739964240500254492803204065787070787702038385620466291365444854537122869410993281370645238546841377657598317504677661065454151928930390151456238072384120979754572393917219102350425979638661620246694118814673362199780191522087022016174848555951170312230291651274300787891649261677161362026898610768725730062774517199810995178566284984504341065072745004661344747463126750492725244905164727825658712061841912955065305865729663464196350831996412304689211105179525424856996687222016402285685207897143828757706711159859253172968325626610620996753616531095354478231895356780398264578574077896105395095851351199164673681758531817250713017905923721755898914984902387166550473093960449510781497008627170514394377740324587307674640309274589366972587434364542588224898867249016426638276493845784885718913307649228346573937626534478593078516231721645586040811424337175896783968927635977520015049059481681926568484535680701981251329642430765992321253866225251834124117808062397990400202820702502826425388131624581736398240731902850948153594966987322484148376387185258885297811854000747009490596649744903393583148975203755423135248307320521674357088530021895424477868437126393226111578388019288929928090556128697863394703946841019479945420915453368677726729364293849890492751661354734301847454857588537782001131883473031966325795165199537866185530332761997605057823219964446986873700960226756185926398284806114359918190455400146748671871865208841674891967411068750071565267107462549762334704550074636570309021758573084856749111611955541872955267630077617623995818170519008049804291091898173218362486445412131125868035418143862952157284767892603731905320000686719196382361897105903097749772119520269586708495605869034284800491354889410851214834453593157510667249272169218793723029738231345222369322616766117501099097205684648031013208549599519510603720531891859311143943962278238665844259376553448644847600735495270720135992512351596951862854576819643219477406863998892703659044952075783881749909089225985225425658085145499042056866951633456192983378612893572301973356546083948522825684247552132302166082139346648473298412308309127734855205163687011975116127978003763228496179430463905500753696437293094857233298045522194217665068197808802529763430984872731646210577488945598993160491318948459360258433159458947580041384096036677069591553558342327444198430230534469115083710045846704023294486057444617965362419021528301125237343307067893533296401616604374570651226759154904445051127113879815396194787811566394148443942786824343236233442214334933098779796141014946512665517788086193745659096155019091050319537702914828564256657393702899819944010431210632035247249992291277742065246404700145850677935550750310646101415019451442299722292277896698282802604572631278947131915868390621745947952643676544507414363496318466965252265595294948532540467802571488160522964522857705261415147860993029467103789461051081370600981282174798823265044266535445229978461409160388965559156419290606819910585586820896603703942605872626529021541642627332142085499093733389392977683830022552578232833749966529144601250812664583963573266890754260555188288800495336569441807263584220520808689765875989354929509937134111845752459556266590029230631869564049418673940685166082364157668514627879094269227409809479332937262145100899909047175426157785489844183997705611459658180462030554883916778102566028593044669804538778942534836580055720051985187737698255139770678433424161616605990200029289249771123162204360154436361029086583644908162474615533484019383226857409230162008197253928791536337289138549766890857569634573707546006671899292796995408552575428942343158334910966299483011871496275903398824056017303959633388038495455215072911098024280203189476655240791088108547436079079427255937224981595227196329410002216428628593117138783420213067222907298334068943545745504694276242132711882543217632543821532670408696243296029233999436057653361207038540529342931758983004137573679369739477872192307086161859461270495047113681042661413076849534044342227854663425320636236492431181283164320027253159158840151627434850966615966524969751274437537362460995048283601339051958909584306511265544003358322246065191265021675182567332843263368537764365865508276890683552871952284697866982191782770713111050830816088934253738984789112454849242094179549230043326471839583467386929968770602511425781728145007530151470701878150342003209149696481014221377623720792136350571440346263580016196713495776932745074246373094415973105900064417163054560326486156739964181407619494283238341167752049336724805744096782433634464884657604128065040949849047210037374903699497778896102072168661993640834275497333424612473233196098379824357392362650581988630775990780509291536056840962120205721106619291197539205996247716461977344292564145793361132094058085348277409676046054577309950116823883404734192027295679526583344489038824646018039388419666512219512784887432159921753196178271246912251006966412456265295830521724965188411900778675757597861075129153870930603250787270436681671489907171787299159678124947373645940767965901171585990979274351033206398863710056528569473623212848864014906618772829126052883451713916655116257284555773157006205462556116097034989800996800658440742606265399804618870078127946312491256277779561779495824169489246633272922550351552705874582694961054980048305282281401317644461036251337252462558360342744913432987127397195728495681157988050158876612208963459930911407321708913173733167713409937814687356168063694877859238339398701895017656702322763267033280662097812085719672464280337709592350306910887088890551850921384921517582324394544884162225892830085409148488428769860037870711347276652738038748374935193166404402090295823309999125307016570228783625634967926351156188895428501544758705508532866866443916578365785527185297638347450718068911976710597074002790101803524688992715469707905358354460444447470692977248871929086124233151654485535473227852196585027588567838967982176372773396836104849196900526859947190570036669948343854029751640757188900578182614918959546325407834766952954837218440112853008506885063491473687577672281077310651403424673427691218264948288383034392675089179438297978017623578795030350325738916647583452512043227162749379818385413757462471883502409211466302195672226509269259735763267050519261600194262191661272974375732079355408088947803855112668586698269847620303353902286896152996677126398114330109399562274860055497963804543681884067823731208309471437692235683722633703046398607577848835386143184186348218126202938602345480129509596450022519659312758961110819030411158256434271674369336665240656969822388940759566050793217412551288364466871690739554766943031206011404668258137180417965827048719690629339000391336995645349551623538343096417520748428198338088656506710917526987470990921520259000817869678073030377353994860118621900823070320965051586928630966504184276524417814913259272208180068783105234221725744946457983858041067347200402677930023671461349414374988451931624428315387854482890386407513170671603583315382116520941980453192567822116962396714004703354189184692322027973067149812222952045945415743721714361638542219718340928506431151868045584908973615661269110978624686033465826145513012664205315229268246356496001939474725039932852861456459462451830401103434742238773826452153601710641109183564106727021497072499508751174282342844025137979482429412520341449664564245931968197758214266417436360700383617904843378604135488305168992749093865057227284176611059068783560286221938428845700859151424957196894841733022028022428251380789145634698942549536660110724098622347810862994047313184335429692792663316666716901129887089747662023632407214159654144082137703571110068150780996937744040245056500166217369407802972897626223002736598643180588771422566643784034509008333968965017186632960082245171873098259994567038664992268720666608112856147516693898466240158532350219092033343766872552103129659739553507680353744800961499576328425315050476562741745152154049880986306598330754378509111753133593490398019209876352544207789849382395972296816345356337225824448285354677897727730167103354194055732218168690226710388934025905230049520666699767354563908888513321748666718695912370560829536629252238119186968065319825487627705920953848402645379196529624109553044226450659026405134839130946981073332081289518206875447619913593132692566505995774507429678925369107790510438061835241152646041954655228426948096466726202494334432450586645773624302778722631818050333472102616795640686117681389919558364544480957083475432405658367919854735951810353894738943741590703331106493515341639940222146464242350518108891432841605269622460591564865202009807830548334671872732191646980921030093934523093878561566100419854607418283695268367129822091730699836778694423596124130176517003377227342592443823886107117594400539729911632209670314815174445108569228761024634512820050870984787504245204739643944279727334544794792801110106672233937871574229972798129424752496848708147100201684707605356743067611486606115893968890092532926020878883803715268017768880836619533729212935761523859908923298419395102664256492759178030892238906406959825210776035834029899561992373296657620671599754869884591199326353063817297418719487893801516289192647111003164415015103185596277830255146099525217529623789685329163264321789281155619613340580964620586025855582473137991207824153405223408690647936089877180760758281434073056690915654806902559988835641302758395044948563205095397357469106659938244170546482801865221750721499050655057126174118601374778082525914312976396636847360613241355149152758476740078895346058455905019186263476858233780057767613927145355455023500238796703890725328520584350943551395389468384713215309815160418075685144802841536565886345243950509599324119603181866311814622495087552152808606351354277463544477932082387063814663966129883830956630891271840103518396269602682569026429657959254976614036556564845375812622178324639628911285066785693620532063569091505350873531681430378857264948425115528221680401364330646769460061671717308627553280178921879390188120221771488981660515900576242317400960287980127976817049693147347627970938622119155626881884151593820587072246658832377770623971392669813273745764627963079926543484755905905557306644898253366231916006339443275015775358472266632842299084506297648644196795155111515887003371102398899817181008564463861730147988532180475936726699706486917120113285755016345660778190345776736291991017914942829483614288426350772712313638980996879494406131342560426997211224967237691826676557299796748073051125850554161639492359032489475678659751423101553417269111299317888601791942438548773169872812407958253941542827564428745740636815455961151808110106942425464568317233852885789120715248400475491395976650960151556213805872932619155399223531297149322930169184080383618133710730438240056663722445236795234870491839027488056778607838952590441262245888227129249749959497612697643489345023853548717366181035298202251014833341007890025612133493680129051064391634154880336568952191547009129006335789691279106852558480668289607310341394004182876523634794393096975113653361636468407157055643914552853117397927847430343311304070263368927281738246296883254706650642272197422495603910411538654095093099589607198815025643716379527211419953093795721479996790345068460820546242334649883824956406196203817695786329904968503439566485147119871946069720407075506870757049321461237638979608587235782355720309371832531439524021608957464166495525309164601306047318806883629472957682252997382396047500319435630897143750397785950045356512349535766254462648615355612918417606778368718319976943130429605766660814147133165890333426630665443926085917209370270700622869713277525701371854128653390164259406455791592875762122367928819846618700458293335967201289161845357986816210339015558665583296204256586248932580735231505185354475363275528152263399961061178106281648380051431141459835341846411597653749606938449167585458879523167595444772922973309772506382452014789792907206010502521554913005419152557668278677070826843521406468086749299796894875953678650714921849337918902422182737792122962262067865705966221212197167977842547444663919063876823591284405035405901294687801339156630736141512340018822344603261312826621947878229623212492113833053893293836693859812359654672999977087716739729968484244158727291876296463299008109288119628196586918397797492866981412031378760513063060574771179143757434491328017225041533332890242559818709628497340850630505566176652744470599659059073990585465427792340700304490339348809685057876218359388048402727404954220620131407340669865744146261631886164188255278386236460770106557778830398568378484765919180036777316838082334229066535385612199355905725989480183451099694727161674592839684525589655094231130790063552308309475301610092519631833931623893982791543222488785156059566079923716372045634705967686126276658753480238289372942349684744892626233926955351141756528933557309220612194241635351766141963104320867854865376712445395039593185630070383373002411210250942413105114987163895409218437407665626975145461871042805830940880537375679649788570924876839965827130880824333752860787543786747892822899557489135681820199240640267375161295264068885797899689140748982362619412513021767623495083933772212330001718471809889927802919667401414393712290549225878810166342692929728835026601751125415055537083670489836782374081158020266076707397599303106337929010279687798679150470227433831672003602227173145353507036486209335500388435967114594792954746618064030507886892387695402723799973909870401722359069573868672378196599182971791825509366640633404896822948739640069288267667342113742584625446302035363546948995993604887584546311439623665853122982875619730107404689822745145965454602644986282093295574727889693816029377580512132975747933993602783563875810934920505896768144781439687370116988682483154802269745224099636697266417385278656056963964797508509160055106152525747566245698703119264764008277175798606817820926653696087731887287344837239046174774717857996635254971142031527814552034161342883168766506528994771538042296443703837361223005798132954559145573450553145871706386149212549013643615816927881100786531836231966963686361156985674503683458146574560983978779997643746371489636723221881370857114396967196921342547340160263162078325688961141823514759496542418375027641651396664974741792577018758306963499904253789689935669024716647175825612171241815424769938315120414721700407300862988406082828080469076871197458742856571056753092302818237517219179784709667998473746568958418765540067460212773221586083599953133846668578865677806771965727389450872289261050040667352996054817426071479731316494766590633426144351223800198901322963894695257467713166305160434864995512210761713644098569853999001386690859816975136142262247415511621593958533453014993225064774396553823332822757923818441257268518362907373571953321427006532852372845251970142067756910987221666541903450081689153006273865892195859140400066086291767430754939995345226781767617109383470970812874739389161748892864605614651265993147580645630014311660916378702301206498202206711124519004566166788707508446774468545076622873601985628819916513525293299640140798687187547689438985224414032948782634474603748063994300125803549234577774425765687971352976142802915431378649871384635116035367163064800905527611824174751209244093351115797961157437622388163312610771689919839199595290482900535884805310634722300568045928592392541096375072583813934271378155114149430327644476519358495232270727653931894453711414876447667743312255138358440745497899468403411307300121921866774970092171100469709650247552593764220093160681542317829194930435838117123501606781008377891987806531447490470119924713284790782433994319338303231069772102242456406439015758857989876271731420903981098456991170339815357573379776152454925882492097855132952319440878855443637327291098520951402870550171622887069390851779851657275168233220112568167620978087880163670253228593332881240534297664897018653975971488334898249261262309199112566654605484719845523784259768117303599465451734051519358642466726782241325178341681661058709527769856928229779076350443337608715386361491985301515337321241855838708818927356192576455942272517990185755298344845487081569636650430029353265999576714757541687253883747116130705474703725016330694086145019814812651051177182478494417393925182148754694749310807827948784381851052656170020140294822758287268308905661344711153096162560112925904183963835436220729487508599615794747933657702199727851417124931899092127412254230878050668155931999998381458062731533117828289935929026226320289145567714229337413867390722542249620865074575441591367345202333837465966427497643053788378908123883516757450208470197117021908500559631111818263866217054844433119085701815666985801092253315638154469996369602141612403930556938374673690652690219531744496342771520536891074635419915104833816181264762864183563799521095816768185139373491281466675001825314133810264810124496044027666744886695614375848149549221786887002579624051626270036115312044833022683340731371670540568367315918377770571817966130312356569987877403143493533851841972026019937337703095102759098202379636417825451908160921636724628700024778583335741743293380695052933986129160659244359473757578979714889406193578499918331475055787046182460790278247055681715314136347003566928732913057199906020782703585861942092922725064158007083375204013322606019063262721235970151984962956064987345794393177113124778323552479950739352464260368685356520774702646886373847265809765458933079330049168401978693219979032877826730924237528790011497913641625818043819139092886267721542687136959156062137390640626381677436393908903589986611103487231079736058615148522397661800859460388011007263730236801483673693135860555854334611844128160125240691502134820418870973075396970130672327244240206054452112202654184793724790988823291349493327336039822727422396747093145178925585674791098242415491711819809682773512388277467371660444878103558125397946224882037778726112879049164518675948945446004861771450925688726317346446744792668588106481110316795702579219289722464205083650501657144631604343261043333163578085587181689766112752247386251669654661951532139061360429208823281902863629923764298165133429785219875314051064389222376139976079529229369403015363789912181227174588524473347921001798914567177582168029022277069023235621016109443731457890197896943464373947164266883290497695784068418407719800573312480521072171697556243714961534811649319265707386182218012322074191172322967314452350965087663726264853315815260897966406226299746495093083459529695168597471909195834796522796132619965800031733085743132963653207483008990748377698700947857699017979300249996239187321428280878506056903358982951614679610244891665428813248350094836990659139783501518103837270865721300512013970570873594666309200888401425957495482801959220815140187042282863717605710720210719259116299853794577693782173689595916832105204959687658669149632795914089507695162346620852017218294778889495296086991971980306571332657174380605675249901738146575292105130124871951224397856666520631532278979792920187999679476474830578392476497798359951828606888037872631099553812980997414549402151262465932505662988182952077059128762801645866922527937769385509579249680400095160509465250524956209063880052872451903954661838535024697201054869302769838551156864570478168803828463901954993801335977910100420041469213919254163980242065307742838419695567423330571628947913517841889435462196636591751117403585952632701011273820779407750083694949480974741454306015857840616446962791762459471520855491977448362109731663812860652924535993631364568120658575138578271726620052977401243510404672400300905023707904951371376901880944731885361395108173644832028961739947925986180090729835614427093974248770131747297485824571850074114552545187450529608608402641882317507083443561082643796072077798661509728326766873123696216450581365688051195992625983128080746587142442640966360550157543578463548516764721290589603883170604584533032387796364542200126948370481397324088532647674819661995585653944959010851882742476875887526489324856093475364481581247760555685153935416608836328312817511765849496349687673151807854747799740192358315117305336141203935688117497623600241879224417649645833397023164430755653033049768940680493132205202976258613930120367564658197828553763074864645460681792960808409248852356866643430188816304291503465321309674646070761361602776414132219545653954151903952831134895279322913369837335740916905864781979267641577215686866897749901260602196561793543481102182997220135271065255815259415688727007724901060631324305392842789523893468407737652606853569541791824139783204559753320441251646537419830113152232000412717019439698746891310528750628249828831834419620708799247101806321766859793451785851838545287357686454970026287191586237133504569785203904858278125819207949278889027453950004833839703088780053817533845070333357722744293695190725021055142896570081919965863586775247859342234976354380174056205219477233682114224973610329225802836176768045170136312470178349807525305104062598601457914712205895100956884266925162326251952390904544163928440415093422654772508220464458807475959473469072401961437399934455212805174895886324823474333359505478096251628375306176045799979021713113401004085624695297914994929816065084507254115383670303394181428326473190304803529771178405613125933103412601958022775476950870645795523756562572153875278422937806725644710146014954430613494623352326183019242391835292763474104441704369470414338181598237866299779447983679446797263958575967514393605459030667468609242446883475661055748739859305993119424155086026764492036832911603496704551382791710131981691825493430176392140680154661195555366947789638084923283354113816773525619940086808268735746828733238407759227339994017740077458791268980855736846734358776571885149611646639114628973955950935300655583746870204024176032455721469341459898549010606757569714801227990934863917362577975583776126369859850674617367258035478839005489716938594913992738219394466422841135470516317081930716559075344280566777157348075654310954975363376448987842721732055656587951000169623562212978268954461925396411047018082269835557485173843913296084461590718369818317498314561948599595800530972017828757305680215211216770937732138596472616580239696157789074342699884988530273957639388433862374016341863547526526638510477587698737188876879797503937610668902924207454346229244500699116894807080172571978690586222148974163576142547563039990341469059080012071475567721850325016720310981141964954210323753075532010671986459189540926209626319476751617966302056527825788050591201151208534652757416811370812871131967784173389047559525962361824982002955910587956590674275921222984094372859404390190743470598111315391325396813016218812300699846707422532854238338398720122641597146543138111988843952252992540412165058181599197018248538813233468118764387989775890050980603135897473329706044935860094606971881937623765825421530394396152971261764487595975629915984686544584479829222724730082929731692110545078379711435780044482019452945508902949768009650420531508314087018980373317931593372257788910220325928921667977601107273170288166510446182107300293941790936132424544029465396787989988547593322912018622285002684374016512531997808823371370433834047253767082421190520228469835005840812008798115265587351413716470145817589503026293615495240874209128420728301078106781452569787556472817735588692763972614768925614436985152519117095496809364250315412478557231144096458195306390429488817506886964912326494975867010322274997591220317029751484946012448214431657769111315285780279444568511081403095501276410558792487039154503798700690375878918778637252708478530795505495226609561448833249471356686860120366559797924948650410982889220851621326123298907325599104733780395205436435993350598942647132962287168187305576667666076983646699868569338677294801168573884564780531430899564516028619696843556236956371490392380905177072320035282592137942115940101893501892644253532589662980574899051073342953451604927020489483008881727873644171540866463936146186679005010513847157699469953003095578224606629076148737195283151653169902780573958093247884528932841144933344575044574002495506904351469551546534220465680808390172476003304306248771687443444175006597708354322170084596064103057462875583684653661534829612598127463942011308419727296384227063542994993843462263031400736015527595114330125992868402448615454710911205038888676063086828502708947876957992059613084062040753669450817995072764948014608942460985226147300265677179281258930898495499280491614705920261075206618221486613675821309003657810467808716742234400671112588824432241338756161597709537174035805620177711152052939289692986550040240700809789214970039868303354131462306278803286933913463163092998224151369146748950673000443687569122493394318473259381387114120136627505549481803061318683263500226914582828930478783278142907992884083749217274029144625924040265258760748309292585699084069238511475342790769756553074807434645013068258057315701318872334803753703328457460312561721990856296174027454881031268697879722804778872832589562758425805059380151673255684069733785755670600570103571441097163279541331854444689019126567539488592387022607690651997507005814383094601615323874757021326962233921997936140056012534693344324578303149148959067851998596418431714658303929890883727645677790528011599119163294106994306658179714580038429657783638083883852822427925736013849415962784002265744253502626191507927211303032603598008700472481921171868025997096550150197805616946431218530282536955859423706665586248664436602034153978022553467459483097917330388116876655327704067087457109062070186529100435241832122296601306220702560895057143638181655264230489274391151254058678481672103427863952216668247260297502210179097551377812451624497262246237555546022188982658134036095202473546056590700363196491826107824364372745336201058621832781509019639733424277001395676422502883913642099244153330514908241952903870807153822145816486633287530817521271197664566671946298219620073110639443517933523792478003704817640539038958862087886314913804777500061408405590477650880810678231070855350229143128747836745111900293057843151201694013932265253749028862555794115136674633503475067218222877660690012018416482441660844314606365417647639201612513793911457816245414397946420930009231455761344966501088889716590272189088536429978630564106236006657858921461208481230547830919414601214255260674164019082168959562571361432044577205609189741204722030522250941664073100379010822204811625877114921902605820135869325665610398509331166691658672664550732918806082478878629092351296667951059108675687223681434810581635597463129422442526150808048326684530384883702830819386245136589633165236081772163988030756758553160314645517112376641757100290865043038381434684345716172619757362021322535552435787818147725953621282848770791404624124285828873334914756197013772916691491095078766522422823739991162032306276526985264965914326871994623539282245289939318728952488956139440730324124094840956136139298444223668835148285035341332919781406013308348473195575969877146918476090607374095547641807582794617351920191907949737293037033436512909399298014394337128304542954971254738901071932381489503187014112581648562787196091606491231554098563069441507095643614763192005454201649394838324235971700142198931564732236707503317449458802758662672427110131665702996805096526557786186250472853294760722224514108902584477403090328615219902867444986825114425832632979861691886004806693994621067931717351628595417769133192535462247639922133808001746584463440029033599485182238616423516815276097349162498441532064962079074860083876831068320032403840476548645920931366922637649784923127349851274552348077705257894021240697095554710052538039780825613252747685974127275724207857781345435788511798554122181075718957704922351350435583900642406704842392246680022502219503196731656716890842342157222048761679197112153374172457561894461793053202711603848928995326586499819620821581962939344166822374332263895099316616752905231763218519968802992284057316113665231645046008566138018577766112693617758284249844454061996637396822807203895746844007404461210809723469414103203100773251917902747034246991242241639694387853779107522284742605979609476416391979079681393071151103500638680245761452504674390804937149523683912077859903003918157780334095841475521876892410740099235939988202028416433835902205206127040473576751536962406342919954513216847822286533362972557504087371181705386121599227801131376656441469009581450713047508269734167160643729353016363655371736392623106984581901330109217304426558895631493468593920198860766676013399169155004663704972883528127019586796976896932135124565079833374057783692358775212355458620737013476414653947340156952314436101534897294748589583079689881288650130261887630787082104769863833483635311383388618472017691386579065787211117517954809382578315077452762659432242275358024239537193345592520666679803984876796184441398467284748627881915398604282809251205221365455682266335376517777227642570351449789850792638040399435689869225987700264791637499104548937933254332727428763208591776805480872918111414931156353701157228862869441985242085486402063395289696387530349453352593764909656587088924508577352002651459666076284737289146632813980989282624327492394923380076148281847908448865190384424252130832858424070279194196391344629191094700020827616262343240867777268429765821646845149213804874530303812001916973753650716997170636526598133478370343710568557127782390324957802030542651686389781978951035219731539616796719526475113542788299214208237377993215723238970273885955179150474875334027582226351593024063219357425892729547091062971692046944821874526725833071039065686191024792225469374261522207421513122261118029241711607965954690372445161884168601801740483644993532929395462866446969712347187197687717164290848780524950600369079224749990962933424828670623276151102825837854725053432979343347026348955057109454391864606232633090427610469380966172325950102103784989513135656935899542640454891262992200371520371034918499826907094380980283766018196547639998763026825847413404922316997866038351815602197937399202892472854353017061880185919937963860469752349811300354859660648895959805193277191287330240118104777222017685060227363912497070950632707378804119008981795177676486217280640463379021075176340373099991500160863182722415522685074799939556155929994319835265852936874048823586190165336707136352518045174654378834425832252998581750777878300357144442257127973344122375692006187013269667494946675944478732809282344160158600704874884574645686119363442383434791404750857877201959189134684168941081998829728541622502022143538153657348181060794097575852535140081553670350343240494246377178587693022967886352429785874761528231001528719300927398534161947412769691399285225044196104586322249822017466274534934330604453369888416379162787589182500415964412375941329840364414335373858331585756970353016925053595017267846599457763457793958992942743843571470072076510151777273530914817845509946738499649023984763981710920614533305340551482196742204035887658138635408452649236471310881093452809835570851624176874982592935599899809102663266786512121057450674921089854891024749233088979994775790128467012644895905951203658389674590002303084597435749146969296549940273440950294821318977610461566666132854493957162474739124230890943938977933769473729980828608765352510775780164994044496791556369045538105983252314170589673579694958055863584003452106450997609702276821690214704933214597151080894779787143106867202750468223167861696490362351497167540465541599260067408566688604748675889974256538776597917381198088320165079456826072584198923636499654341299158064713725198178090045625600924843060979903167771203483122584779276744689762167182165760718159780312757065419291039664764455139594755608046461373026846070114048214935321901589125786524490158532187408714353858616625319823454770498801745581733361279277191944998176354489076964104364259220232032577982019652654665899031569170587991282766983621613072433722477994943926552217117961092104017130041933117844502024287913701006670473274051881076668646703604413928535736856014475165077532578976590496581788486767476348307435902929431458666862532311635715498070893135689347044348115787063320726137359277520474865896327399844763178633142212787726689482724313227923709289614815013380806103484001708345507813236964005776852439617198203599628471737058983429905737090383688609372544495005814863958554208681161089185634432276761167589926133111951875655388891666895606739875767955364716397992420220072975915536143347586075029552892951919437316581929520428388035419655474795551394188014465328629096102011495542227728479751097744162222863405960826554918727349884647644140128480608612447480385317622553595120258694631341520548302970283330085551328007180765025678866285960612420687143558158041222309466006314013405291764423488252004991700071447265877130787881575090693832632308759629538099814811556794874687269959935499254981693440466113714828999398775315620203584264125098191286410987894722799981474723836265529897045577366381013560628010622482183659114276464239554343822709045673540774444223327141773948477188253119773740702118107717098076788913054470882084213764242565648316562527089863052945050759027954506459092331147104927187645471483274909902934733776761830848639357324932135897864678110685031269397379830746438077493739123985258400970216005107737247122661083232981108556461279410285772528142509609530375998036644917390205072716967469353369608974310568126824191052805531627895072321875552989688874982624071908943726523951587819612904269027519610187077228888486685384286243912555329388619224745188783699306399440072453927826335743401675588857330278562864082612764931711792136327428824176062466432235586914112628014617454254392725074517333352729947117542076667566685414439405723881417379510685376942187871515941765355497344792427474355522949946324066126064471863732769901406286712574972426020347017505738452477170906987465617751974469883121127780789727176097091309783127329171919674740209722558546009211086725460008721427109244852489690639509048951505396682856693701027108079470734342196171588788915025535299789771766342967787545544431574447730963873126555744521777663015842673478990561138799893610543918494582870184325129040248094902581917362009019333342075204111157197636149773217591043689236954696995425626890991330063272008425875625917201767910385607059227588768331346504250290483626217243146784099528506742177735139006329468554628694269108406366719386967923480422615357609289787556362196346860050110814801141979459365698420817228053465089900424492463206425737680093151036778825749569329846676940460703202718551299375854478216328032300446388560784384453971568428685782975111118827703916677137890404374358901778086931332340053450631810200607380501046258564747444067254133130523596665609396438192589051276249038319182144417302343369973166763978010860640381264246935389940645495611264373226157423541383647883610101744988268496907199394303795368785507262942323893478781589671234355786630775921470829270429901929941395280190524592552958159570975298209977525175762429301254445051074275140810161582779719874788514046330321218695772289831523573928020907986834795437234430678679352651941660534369789584943146723469973820059237310955374058616487302756198881951650918382972211565059077182607772220264008277592039111613624914832313683898968701583165676569819826806646451331277190757805921876417627535968883532434251439129024913917358537539525012638161604455170225313731769025189215620279155509638448283974695586082395327248722767660515239654363989282560830667928092758393896262905862853926207370139189716516970914590376157264933280868308388785634307424760613860214350679691584816703206197816342162676392829968752661768345140063570256797582104384329209639130866599225680256228529088633232415182728517644528951751908741258520936380229405798353952104228793261834046269237642581562620420646977859502705869961299849494455702548126018564660361563098598793674743017693623213949436868922188049569429163944759595875887689601324602243494893305133775823116850784369865005839499660603846902869295533183632174271473376736056035419731209847603686034210615084900842638719783957995573365807527140949474387577905534415568821334368042605097451972863072512049062747597676689764100926043573860836437612448255467363090402761312244467265018411629703009559832989699284220420432945659774529735323784571202973631010416786393764454201044798518055822654909778198645378694570625416026876742462765571008483951773301869324087454152026915609738567190813572651196464411394260432340732351775329228267940709427560023851869724073988923139786659539226038637635094164915053193871599108807727153083714936595585044401480236643886704257281368585120431868427791737258411452540949631777415090545123429851440019212230687078515769139355503940541350357870710477567365726169619630343849463045742509927530342928761244286094480601754311401522804304566742629044093643348001435487214229305681837716312863234076258584413206296251864374141233067675962678943504503109645946634099888633495503056307199179278511681774220250134688222146683111474759039718755309223454339223587855249862341632529992587308307497278249534281911573735101154403258971468169606762675603388485874953802813252818144814926056436572363705721312836289555119582321326614363260152169754187005780825486903421081714074206835640551779422211979964771529436019296050394594171986390693735612175893841461962015452927714652082438800447353937677948736737700470259046082014676949239474892888174131150100312835585851693743344715433593234270981906434414676558101712094175530286953735747058655671260978717812396469404735632460872186944513604569085565410871409010462519201435812711458706128643917831133760179266977051769409272760212803972705619656259291964515533318724217485868691167650715186994126167816455935649944387239371989433199525580671782523359044082897659634101197002816064207631423718392972688269085890290221226758921672079681647435545823755191821988897738701148750414695423842937588318457870364146186554935432111960187616026679395510827087950810118949263284220046297420010960566221295298783237818539026777432316761054689783959003042650446999905690661715880781279813543952639746194313994457328359216693066177107888303344625043306598265947096060727776040855821570012639145300674527878427698342354680209333553574240569824658802019479184373418246055454882031043629670827569888430084878603167464457469538069078130363444719115729672617893370985412019406672903762809376609094723698004673845919772396284288703056138213183554217749962252099772379467525326516988312907746015266802218520338995150491977156724719076051024727279884630842155212457244574960935135239345265375837659733661832308379052291472803684957577169321144297741186161565330649846875177869177521749272623708829397942174352213151776187965697176402487700280581802614193377555632419843816900097543908083429141467469327259229529927309615752378480907963678017594859028787833790316769100088816499211640432398447199697871504560317172032073351132258280915236339956126229933862107634487832622856648879158620843060682585577426529598793943118922702783378376292632863518213235671429190785909528543384090981483477977497777623134319027203529008266675665808069412547130210931412253651318403557902671549766984273013892404090444867753501435725709386203207650805528835758673696612681003656799408937946971801289517762488837912577060961439844884463495124517180271382015196724565360894340832583961968239321429594852678996745672316875012673623754639390771010398856835313385792506395826690946833106426288702775920810414995629624604863681451374168540652219456791094670010066152581225092969315826833454268414722954526108326119514130242811438795923797810328576065697683711704786002199871360309456193050867905732215020839925138026717105805107828791630768525357677605575664587289575180239486060244017775348451624342836350751243145431250291554095785414907845548052062496132369859508786416132477534034460886969585458816925977362775748707504498821190529240061527355948539556315564816252249329546567797141356429596975309697126626061923991971365097299286077782317996473424612965927348445205671152943922091153227749337994923801980073582038688974241280077468937238370437811616942017275389305082947207527269990598364491911507180101629523909854513120744129612507515445447808872385402808146583419816065684115524143237182469061352413022496292619409099729402687320726725110876783011576456293404579084023377385403463838417296628133555181880556170271892634602139971722105826954309877471420827294714669843134976175653931647695928019677239938954890045133192181866435883376662243050869990099926564212816423885467570661794610193372744874125518803931176819859971882986152906983392176992633989541324374576194721305967943982090223339570892360980339540784552646610767368326480247571041572365539470461081295696380160422211990271914986949821766415883648010713991332295235550126056767497009696810970920006316684797049504086599249198770489465538568382780219736928832044287172466905896636745147386924522025945883700951973539224518807745400300763816579987371913775303286153989947005026083836808298293554122663021563043378054336909596023164080642361572638209722990217517891288220124638240647948115039298904854805805186478675020038108380207238591848019073830937478856592411891117933017214567102648553394017031620377102702987059446632072544865547163502690961179439340151825552170769628143442095624165371034627078222548577321418012798810527039231843162571479217580316095176991719488750719332318607717676942680148478801809546273352807681643978948377291796516771717234102440989855637338676194199676554315079611436062369911070548770456612132333874669533133761807984320700620647735097992129808615529539647794949878487862322417356587308729842301885095783147286282173010069885934016870134740612291782299967688671591319350916755975921892046367750752255271617116480111444296916877591931860753842849071710726234383438581461579203735422448904293935262595014651796334202095639163552286240066955133761289729690912900173105230944590219590368175552727554773439384577984939233243518821182157131715628913716735286223560383283488752253776799774334985242673689854530996496739993795575443275860135903291401082511445450363756391281527626461186305985367263139435329748585380443517983823503701901352485666331176368832366399093390034168254200508612713026823217616189782072552024892769467357868796116042415714849664095900051751872662847388711654866664558120461489412845112906751742274313918711170773765540492591542493488968714253735388860481438156529690346723401914479820862807572090808669289476218677867561630852253445113623060266070199768024639113372813157946022391480050061529510111401331606674618087661227151532866381020263437002318753872355805165972355740712198099321951442782608284924556718971429182972354830021543356795254281785577589077783436691703964531356732107838217485949294384553408008471202537406251201722193623977541277155099423285805001373208159786515779822370009081655151911194365923529190439843076132365719695143248732913414148647734158463089635259623148559526274411597089526212897622569005825917830186399292784784523618011298697386764251263921906475081942322867174037300065107893212581913462833483327252203136683090739205631181698467467965756909790635170672643497077476468470937288483971060966537184473924715815328780520355831431333739608947643417852974276864923615754174213193081176463163452782066470319681730540195244037739715899361823122664850713453185145272963068181708299660444921906493114655469060498328066639124162605670769380988472523530122106478327262755020521140353165049611452221604806628047805548916605646793337304878286723250226338449516571676817755444148927619175903150303154900205340020069895551373366124672606048597624587527663034998502399140154909351433273850609272771634076490889230522865279257630506655898786906012375535589592222337072420106279342251766086680293317768649293490747501122656764476528525127330906278723755592612244547891365470759968739736833953972458097500714062490896187609769592688774030120548925821852183639719703257858175179411780902291609703227327316231767127881375059070433266281564040955769332836229471013178814366174274273780505383366498922082768815798954796500810762609032432969142667396998273607017588715351434810949586138242228717809830776479204351987926193855430316192938695594480685945786134502179459888879704841223957727021414242925470733995191454946352316754228514240934220661054577669066233629831690085081655230359777577090598572444491612365365079270929120419120924682765414085169115181069339705572924999711472636079300197267330908459412183749204789003219054613723056990784161405159632340547535191967817406222872094351286693090631267707835797475533732927068506394229575533757181834190311393554048614003928640388064445994184007544994059218819065757844234935103476634880499229567855639722760712427581928255726674110917958628321942717320282249156351494622653347241841286092925966354260841486824399130490444819726582870076990563186978271975187908827298745211716535217656196966741789505112237858901111489006119277911241977877417657518023900826365309136628175591439913398755927556361923224302244318644439847447685789468636710065999249586516088982925734589083053438781783039500855073221329957380655088165537630289020414668162904323343281234738879544130359528497890938710073168616546230840775304355168851681153179260212452903403850027759950132784415089368565256682885525076953366445004678116634027020718638855177720514350993612846381138577708515683793856894556814880601581330511949998574359902848032310733069907451755027353699690999288304360985788668218684665011057018083928240776649798322483974510296153624756980867644848448085068267970172187528564925336063112539879747544333671768631921750139872659969558540186925439112507247243883521114001913123660178596287468496432276770506806082771992291251963479525676017588588158783356145366106522056527710466795916203922182981902804391790092883412257519827252802647978643125779350753749853473646037387166184660987939305479348701165705268215819307310045467128051231878661103729725633534982529925430297997949469534929547348171942462645672376125670165909421328987269852375692174888160371108326160811049244945128320052295468499462512357468267112457421643026094373390032286803773773159888131537688166396776831826940083419981356213710433676200330514311409525115692679973880503034778527247794316525554401585862620319634271046154087349610692048523063199404261250735245313779544146121606526889024647760861866746754755228023808787030544573197470714635053802615614251251470354919721646986479808045382348423299667685872521627217237082134110515701160420552979782101861907669614480081245867290959074717050286975663032971149054328676616849113016624133358184626202437758687525620975316071422039726020635056688524705062726287697225206942574100012319992206434801838673158629814621445006794830529635009537723282493503461645699375308652703908967352624895669280504568864975107487103084989871251438753555893827941683098587354437128751579066393253240209177296241040914626045297964404996395998339609966246052563833317963200927123274338920946089886431100563765989742910634093343568423958356262576690929604163132275866751941646701850154348026977159937422809689972488010552173559270392082896173975649808275324587412837985226338499626988722908019929558272640585696809768384875964201340120936283422852942082398866736883844360052365138921030871824352116568505636019149496865866688633499481497300789281235228906893278785995264631683464507616205439996316922897262978125447555516189208327772388281517666780151842104623241408096237030297287649777677056395289691706625176846635065510515524314412707718676910323188548970809503999652488462637914242005836744903435093670133776822846043283011908790032822285767336176090317659216212795222814853748558874649912491621665961402936335125324622824739680149316999942643269886371807595685137266333898276256739285312220478882684332215023714744559834694576556816168565377404926025623078226596517065539852889364872726866619534160514910107747681294230261768238088602204357335902300911238482891008996414773117946493163591184308867483088821933142568451261672745135741637419045598320056142812106703070306579551749113860400164593057615965098729954581076074640994903663681366151008558038490513074812547511019401211425835011553827550510281083781089628597429110319537410752206863174714904106387643858504258120624373202698561145675925866611743556759193767728919136286912395893190515671379719151975233668355117036128003925723919969305915023014358813565316019093410091116238659989718244990226851244233794085469030704674599522222853766263495384630244549929629778205507012646572313818294671947726848142069285471748116199557229954309382661754278293233861287555372278858551218674680973170860904709920190019119236150109510727704485796510960641445705711763764067194931038713927436724911132989717282847144910314471807744707261869264477851437699218450527442389785418461998575014094346201304779053714623056243139181263299611897790117421691071278419447888469793196329304654134808008528341118369543420848764412522733343050400573105075320141903549385347472446288134245226261175189094162871332106883972668258740076775581185974634671115468212645753959189555430903811597264653003118632185559966278502227054962551524355994196579545482392021610091151419178500967968257552024213301307568900292571228016458378922497434939382035264312518127267028204292391710680834231784227671821911242456213268248480194894714264435370320499804116009274601578878444990690993923383163712531256889561718810534092221958898049240042128742408476009093417086831085087858928123465682012501185773566312992832210287153523444339583172317805374906630153332584451062736843489672459422217223427968518661157180794941920616188456663172231049545780026465854570552473074773230891998408623646808264563556633173990041669026127490073875552977137388828512489578537078543536730989259943049746809181871285414759356240998300792608117203696007429248198143119104078230486031401788190700141835792970070713995618627433909429260382362874599429237585340824837120156974861041077849832274768474660794696183087602757921253261681148738021019074408069152566001034537778551183369167522073797353639850906865078036706184526509522329184199685081646568057989475935102095061400892570211451570825054379222978531409785518889478701723544649936762538225519490173918748666345845553242055747389472799379582029154174543373942664912118753608776366933857431104231158325924554336666480058458153468560903926397385232805077433479896071293215661984931069721376040092999962899940796685492550921964403191023884224767980920488430776238853187007930042413184475834581023385336570041233271728503930496134865073576886067701235072433244734434911849385664362477667197569231256731910498616155929253558902241861850328488478401977824384279057717018877384906141193924565741418327008465621179570951155460910115621937076599371355964935910295433496067565529192960090216705056362254679301677593761653274584836449634114798548953321834216732890055569108970055737497522834375788997077270294233408660737813413127910874079949175997593476267330563585062433091307867225244990988957078749967411130501706184739395771305922937669854440841642071765553842826315052911329322755772020078573710045342092184699201937859061078123583031245385708269634154461368768692342678928648186004872816291887340634277362427741752873829150239437580228403561729262839146464054025361971307460418707830617013290363913504113848064230918091472171919935170635987482246344379733773903298473892322544023224372555351621422439085931465287533571291994887138430101085049364741147669371401971453619247057107223058516645167212478898718654611212038500260978931993203708767765427065237267154748611704214589092333000642095913478094592722592217123003112223396516335738558286677788260403790370751436543546021978944552229162417346143115457012190113530883373759594076088835871803440345478135303351369326322575206037034370504915472878192834253426638115132394741195651710973751020300515811339289301059433737279882874851813163777994539845243122204780883910383288131198079822856105982740637510708218956212186460626253906721476542368320146346546483347385153226424170765023343063304311838389102859215564704947535649124475712447330404458505388674325761545238882076075267986708568457210926201085642058762630395079939592899868132375033253794821509821497217902287547621766479298623658342570164744687230194390528356702902882823808182607715050388219265104607254722235364749496270938652794665727922180291292228035165486364572483432030914449455148724776591943232073695945162832955327717047805013354986745829467119358895225671303153277482940363599128002045565303550182562926803038153423960247926991193388760653915861028634388196864685289226743351810793495959911100527595495379052395513277171790236494924045400349251833264691881733932605761289797821917363954280263560988893606490835290733157087678066152841067027963596454621116074232024877259610855189891721632697734904483576396155933066408170338323581625775179838476451651183971817587562215984022761916161139267301551296159338572811642780551461443113445667317133816408256681967440459999600531102930534605058658516854714824097585916511322457421478224273246073972095921110873110133654581387899835807793468652449432244188114126888525352286984804694514995353387583301229780696198015546706670990374822841988102557198403116192403896255162384374194272103320051924997041687837642975736657174944165677257342140024317052724735989937831625364939288592500845562279161647011791197526777046949222421714260264330277635740388317286369884953655854861600515160968477502791375174283586933608043437318610767226929222557863235287908004321219223551507587652575150718701655507085064065604506889515617357956482421593023099256956315217819142370051515875061993269056046169042362747099436096129509240185638833739769314605772297018548166016623456030111920049518202619557738861977626848929180806342208101637708421321898133537002155997058522698673867990660561389763605381702366998910696614500875278732563705939331810082275318998049643112642543246320208467512359359929057414072656131348200273752948495042570447359652394775418684786386341783835474980264153028393936632436168329766407355573733224781698053009452081775980324156041068950631329583887563915408446043009872656843728262196822744553168106069234951377557791416569044411853849536019633149296550114153906224888809046590436458075389643764221191372874717797471583010187150212627569307610290756099005173377635773306806368762958837883394128477351352251753881540938838096799237506624372785196202648243630652832343271710297307075898657310395229007529408867768927994957023588271521586417023120980304005247796565622935412744414153033154287866148633130618844447632307410744648179257770444325603377974105445811728793388289216058051733981192776139218833840867559500152165042230154252634206053187970085879468114134862929078904353077003365211849298708936517513563588691669691613108147875666929697141679060722904943604221446626656915449662563568693034381851754775838461183904443976143577471176821541228402587830580719535880243365344681762107466434527598060547982522071717751579436190716431459771691857491802248076400974348200393934790183830910452021656664243903896947581030461685086991470132281933030447504237014367957924465285126784865906958780462795211488185927486080013835558475433997199014056906959079600188598607455658450473796947424055679969720438911556772196110397808235441059091604632799688120263047539341155481950191358262761767543373333226135000370188423024056448784743278983974094771269678225244459898253546912817735158203228012474380478785257683105984186189774183713657165805167529089833245262073434197302224190001049126356688009387086531013702223075616610565902264710025186123025390029794733271421525228384960357109933883179618394789715836720372453970079287307372645715953131350330298801831364465228945474103570643760332750232016022915323978507050622321868636738375806629452264006085728722717364866540211840893570887323435059073287416154376884681349537771224749612312408246917635562785281391849938518887378982625015758588055423425691655048360820244294443776466524905636772851675186917473513988719378289706362140020748622613353357508236822874169749709565523528208934972314433346236591826175947497353598607970223219371161708351865864577331658865161683078221826541224374474055223114472717672077571876430951672150545390846770454849197373172710623986890787421227052745052661390751881280775523843623456067654770624904462028744781275060532965543151065556456082160795104328086835434662853863175767344263195652831255277801416867462735090761606938890485771291017143407939043409037235487081915871951825532887201032222822854425553512447632875753317397934160507491218929656595080044332380502427027083804581590313736951408258765260181763760751229086443849915685274226597675854406819442409743169366702210152719716070277078740399611666139690616902128003266940476177612755825907104122924633774208827653928675022602117149412745355114066082553364528669601609402394238560884864881359558116845619387987713533164744424990704928869348328241636933422978451734632627859422507064721767271521935035381565706029302454488623563237536312594516980457102632612223934219866606077653745995212125279755348961175116649716058665882317383158539341745464508973272435730026133884835459817377736048271800919364373720696986341824954508508292398602283571902516373680565007053126422677460598427792968797313958676095969358757351274241693488078736532638143996421337151214079579539294760026071634835665309149162218339707068798311291268208538262719481782879728313485473720151280637461110785231780928804924820942971365844509631265441818697463673439357946058049487366466588602829813200888027090058492627852000547193683196511839018652858900149997742672595013030376776517747215697948751683673555348070527341092319453670480695585891989067109035004300429787374669687451653758579993800509080137623915296951711099963444316809218892661889057524362912599757644931754743877786747895194097981420724521739456897606752960604240266615578625073537455627477332331413742270624224115405246825321116193204814856689364196389523579445679314941635634507520599519548610234838313084942054255293521255840792069058378214615705308418642742064418471625327949362683051944486375754675730247629030581550482311433435023589462008058231374817796182233678852238600965446509058651143462327114155488815843650303947982167214475349165618222718599957262357586679710263178231553241109446276119213644175486611537177792403610517404516144990302531073478627973206234175394213645028854071616322476238961683513789802736363712791344867459176133499996816069241725014916465588875676867978844288208285106489941506757659017796957520433569974681431841509478049119793190121646539382974696655957192127548031470591260341513658009053126220533082288939414634911825209964078349651701945136844174092717024705402787884095184971378134979726887379984016771854632911488812827393617660209283502456603102228097143028823852767760328408635077819430611218706793923883893275791173373669474534574148210142296767594890911713778114687471667203941202146997329197414814031007616176301727562611877064812404237175419473380299768923522768187914366064612516393437119285322583789732120100390196815821841697426958112650405231692003544205223998966472227304515298609939299045946329494206543702807270630414535982590727287715861781201453726302777294200784937070971001519242299195178202416008328424884971242941853572269533479832638273182477767414026684485838499348944145686189418820905412609704717791602743900452639771238892169595663321988435054821758166987856940190216316572225524860024930674755924363697805701027638705389824934365732491314955215631459961820042651156779636962114558089256402122305697961565579430276554577690308261405561461747881979251931750874121146588179145996962266648802753668308701126859663994779309238608570732928654159115161094705328249349329592112232450841586747728836232115952319273892114281980991644826654289358895886987335117198652387844447657563326252170373464031070037836212232467818566478156905780173152565765662140011381789271782839654659848048362715458747134042582606847637930393524353537372650113131749343853741013758021560879674245878284497103743490817805133840529818416808011403989146443933645514515733736832708260539611522782961641722626335317093461359708688941254366607922821553226129497436250539234721582205195943377616411213083594378878298847722215878540674400763030305804269205838457006699548273153228509898555753866064653210079384802470419747166602720830768754584906355884121245522954501443493707797968657777576207586506533004963318506652737331182130151803772080412614427659728564496494817721635597968222192548252529808818058870507550856941781645644533377046168895614916154550962010053007409969874823910764075536489628197840024417007802751842934193601245169212301605468617128705671947340933538805890326184227487903942075184197765093503667605978144802141401311182795204358605761547043907310556580108171301176171256921601785190178244624246957261742870722325334865793505669025231579610030873017213713213732604483976355672575972073465360624389651000396429617394239283834010764568000005412618881843897282808506144654972122957961149260744113025603483417459277713807933197488893510756214041733382791430790051671507416242928787783016100077623780269026675254378983905003335703010263773203184503441616844611769130565711707283097664189889575931965758237000391050567036113351492174367836677892599601011228149173935791931017504336060594166975474238428589620313598644434135982999363437197694489260167840308604119858120691563821066621099684338940314081055067161141438431161333773351742986906122537621891999677660888100524101580484535681131748739365983337568647439260009560082713403583320771215464233288852152629676355177018372765493507905565314335854980137680563146987936036741598751073351066012924646145045652900877019105916390823594066608485267154543352617526160549558919144340154784743010431453525704596434589785731543464486549132577473030344472371200951274772935567152667261299417029650029686799608152189889505898561193251795299423560716153675038615634702019159338598137398870307892814916322280095656254081739744063668135671025560586613206901989897149067078593870331127764829388415170375975327702549987815978856520150411225229237645549369819974962921927771701741574111218867395782315599522486654474535480750609193890312067641458106197002264827932939844222167481343669857166179349985076828769783602853581311919404474665177364104749959081250548156442155539671373911194868647435080769952664874268093856963439018410976611700683280059687708349343438128144177934353434148917725635403960857020538423708304745433774819127623431038375881645724063830741728704177477339006133798446942946512681468215399190046240928598636558916615908385583484672699103205853956335648046506120047275438082216200947088131427982677829729807706890115018260473676747995896874841294018351422211980056715246969467063132421469376111993432331070345776440881447487359631992155240123800314231623058928307390981714929789435181014506804873243629767243836863308091552877557374693590074990046629823943155316022929083112178649044279939203615385787348754813990805895674996953223998914790611520324655292768691998729175514447130572447405136402937052430961593818440020981918230353390389746402348653514854981131276864408247343582677105268253995860474335898643674351055197924675869483865216210696342206589069629657411692931541347949449935488342933984303634312615246511432499981088825022541791307509501692623038557994518953589953312880605063169642754577919094398858017804786439593762875737099283240696258605702554871422327291620238116245895173293082758172705440156840348296579447293445214239844537057561748408830986551718541148285228545337729172681203154560529964660525006517962000847103904318689313222807034400438978359050735780797550732042797875210173695189462392691089542530746110795516385440453128300654464784677812875432292151593132740531754624962489935438733617429815707307351273066731815455035813144988352346478179697484246310407934829523947876739322093316261999674013956403538972634693828072864519942562427817892249373866922773324578900488611289596430734140350598999860094739275311897530329880992376915065312455848864440758650279221571266067174831037484732258659015312774436715331358091847212622875042582423391312414169351403957404366485718667861376759546966450256539754353321213755761928473591051995392681054790502542342398425754786835275235791648263915977701587889147797691736583641860761150766894810653211984832983960633895827932741701761905365590159343855525626945829897772591217930067548870630977164421174867119528619427560298686478054607793557508869096526353592846614619252776495041660273785232725835607057762037332596646156462631525530282256954184553862392007599628029615853203075295150240715263389759055324270428133343861177773237168364489342485071642049667291189801560710518553355476876620356275787276077935672867215898681595623504966602096129046013846870967900031262279095372695309798862730647427327716523712287339220358076145228980206978462528857444663444922396098101633703659866651346492687755000011563808906218323220535664149259399928809005469946649796767251098614320076361515403544139752806185958205788596137017434646987298708632269812487266966381280050874027737641923488478820725681394702493954518845897665359435406381093451879811395739791072428312496371273773867938633600208886324310934182043072722191977103428894684977526906814855192540579686914219581906204516419923522061469214169945336431866640659015350104670643358886181405942591690494771778639365629748209410643231895414244176329265154829582251074823596485300751826868482335603191419508118206551676121922903355972383399564343322923258136593912880936623599101624833896540811757349095318083655381800877181199033219460598151315906325520898869588118221587884796394639178502765373664171125922185013424922926505825897713478156372630849063544657424624386215842418180850258617410877149479270063611153594046372767596586703147677489835988850729242762323273822320464355648159536461243769442916187083806702479940023555764312735184203898448151478109483029247023570571730162300800141547806394094793379977234793238272809305309523209646063099366651746233182804087869806273574277264199981172686240220787141611223171761294717262143936466427301587600557598838263964051427940832766339928777237682797006811459168507720451931646152497847290340599822480980874895171162294820908311788044797645838687401436638446226776489455177331777097010882914323398234754751288607071166479243746983393280877553762019391286722301712457579659333562264290074211745015024173902505450580817375589034689455256551858653088133518980564896311163393958811758740033506882040076546281221440365641933238509459652122356733785050575295041345267311281658070849144145456761022873618629066707308600146486209868590566904048257430460462099501549392913614928371999184471364845293093747709600833347487961751051658195587413705473223169102022452105264278961506447570680172275730642993838942525641464320732193519207213308487820935925889673109435858946614791203918910862805433265467731070792744388896323597599423973671530739411071266744840583227014199913026304618966149229480049169778239207081227602625827698751906134930115391834126939553074027541637937099517928440596985321866496302488198193211426132935996754074048610469647771541663420191069235689656845333860884526247721938967546090532878775215455683233268515917381323579984455563825105692396486153311447573191543262011177308058847562396253144822052712807842345610798937504321323955014651968645669143103530964506626295021212138976814394216592683860265749091869206562710422239015240262055776150920167534236427603548697771653029600600603151574811754538857102535924620030000273507180855196833067743342983415472395878228157031089273289234986920808306867450549420019121182745927413636067986775764134281984676853878974625155315632322083626718241537489988018099874497792340399435684770740892012691311731884516680661430650757996984103427036682386378724970484368784008234205116738698616110940808846861824603046603635644547528153306251261830213118619835655286813648569332309578834828327568175389746526547425992538748936432076685988361894877538994264485973784199192397098406519193736832664530456501260497395729400346388800409499241834702549718919952253975208563329344259411612701396952925821199768681919262267601380747062119753532007938327075751352259163199653262153709307288363462975779608040925616759766801889313613040546924059812295320308808329815875474543839814081719643553571751114143659546400073228318868688206162022272527409074411303525050186130806277785758403794208234862758859868757991998077036122179115101200311934335864818014258008626627737493781392351706604858614325885308615376650339721848374876194495501825881177597950220771211661377984105560377279979476672263867154301257926550727117862667605303501825006442582398782726632897075922596559409648241911330252332734395360021785099386136458012031450035419171118075864131444529562522061460657386177452609793735400080669539159121328401873768982712266559070638239666213138521939760088715834731188402726218545072133653690906506192568604128398991932724614935476005423111506858225063506366816889945458793392655465309979130551424680165386476240411757733472339180784902233355934797950197102072447636796441192565713343024650834832796329067319769600610979860054894324078201235719153065385982675134390363094619886992438096499533733065910160641621689864211295725632046261336984288832569056227004865371566802901751889254324208469841576413674517339358171644203071401614553922472192985410781464680603860876661341190431393169564834500651251101579828920763530230147349292839318447784905334445743440119172389811503184914287568813391560677918163033601783786253108389795052187343268193467267490509035430494328139472614320554467457485805168754692525714562347927497011821539581329195329756390620800279087942493567642478625053547744800668584801753348611903441860924402616989363112215265700133669334839816421904535687775089630542767886073484655404904948105714879973199216733475689949917101677592726288134287291379349462206028586110401533567615758489377272853074336272381598848544969234348964391184393256120704996963278648778336196859595378411894051419199411886511387055682266289047047264282871183909859180953214291200701594297597298145193215224938229137479721107597347924886296866675238259012265380470240899823587969436728940927794982931106386850485390985688201644299892152898423617813327107945495481127329399305971957364816844116014949238890356491431774605788479057232404395688979498953921590752558302331491854953138697258771835924918009654203052685473848954197455329735366165688932569630757161152234439037759250513170868964922426413198573189108239537731217404342277512282960816417754389572446133785868803884774194870369770564561256287726791031438290792712857352900990240360182559356450881399757112048350956796473037311231627288366134351036330679908953737663043459704131971984590776228216880960010581598143939586887257976272519955649236187888600763581374502957744420739178365734267187708148016578860040661067361003964659853222517389244991473617206102333752117215518704445389138142730641114255408205961035585424529482274896147330656621226936182120217746614841749284976884781385323657916177115015239103883836217183823000871814443686003723827284583319339166622887573095113786517658838164846476649525298615379724734811309872162121944177689201985207101139572104550109382138398615185939494263862083484900496300526534202715673482655710261099392350978884780209013377913490580858273858653340210932985359136104484307592686787300714706300738129737139844856260239633820731614305864816234450439977787267147880268462198188299116451661755350704775098062066818335610819903186357719325510646086445351233430617532108738066833662429234133846064873852810065774679447013060504454719718043765043715599648520143382762428478297221142497673273912988730057930825215264079866569960914125547107786648787715529890068990707909931313418204907063139803437869042823304241230300856006175337511781138010069335988939067932792018421038640158281991225207789016333060720542688203492060864084352935629732572945775377876531858080142641863160013483330828992724687990613741391450515778137934535894735114561195469078073657844684735319976022423035703168600221816839539220364673895886912728681474613679260648114351759636193837848868437017409818440501779415795426524534362774268861260363466114936317731514007544682214657264023870107339735233505586348361467104603753916694302264137611025939638190804447186572408878089687481187871232461268474725672167619828028506545906071114170277330904466867857909073472023194704271635667041405199879150353546259258434147150208784297330380424892487698930629244558139513619664288409926660164637229809290080683724156225595301365635380013468932633492693173637512619313897841131517762526603949866447628264149307897584929116362692531395434057616373923600589588583223412352431790157044134655821739573005275560800833680221412486424673850569649565651827171685406750995749471196519514661207046408913549274043207532400917549619228020451990197360648403535126697442788812506721656951794793501827284067621731441103764310799596559577368492046797239170588767230926287151770585270821190715137678217472712781723584218316716150741460283854957497395459621481265888159190294451576490196354953663448155926546754126533885435357931264533512647595155646319783896955588869540079720141272448618059188070071142473493090643925111958512761765392864539335268140354802094830625557052066354658986656482625858633694827073574107804121506516027228768193079298433561554938794256371868365405927093341181183619752930279784521791880132343137368021736370566520924902837936468509770790492840728068100702007127436067120424581701718166115327726606980839465185687192799975352607010730245105637822663485184188129202265595341173909869177778022458113486436997914432709119516162589048607421484033312569587010616809284949359721066360407636035418913352834990464416621427007719583700553214866187253233081385181766471194368603545755077318314651273446637801279096029454062412570630581977772292153988439593406834348148577982651660792503091172957827536948835473153768655735691949998700592554176260963012954947690240193139454921168665330436646575817716008739541081642551846477910688503276984152328893667115141794426536949205086291718706851662039364565870703528707211558672531349968728765741248901664598221110050528838598561269179109163432620150563925771329527265792593114127242732649188219640840098745666742950055319986957094995283257149185922658006026854236046526363647854972382763591584355685835280695436438017899027324027767210958776568111625727713287227589779493750087034813654536176208469587879117321997528805935457127218998285605600631757669654845902210709081347992735202854091450243520325120480382631467317520306409260622749873703908693839967104273082953583751730755554949724743959248329229043990208847687730222178552011579027091506242464737146053162623556017666366477858115467747066945814196393226749281456744856930122576431382357717886567634896230889515344842597563108800416773771359565747094862568837506856706581086706979282728578382361672323757523810652926469247256017031792788390687125714827393385464947388069662267017222437969554175909114425684685620139810064655879505464381419124001962727816843823271790774862491871200242113014555600483751566535842879578376904506710716118834068252377219298844558059614775248056612034960678153164104341324028004425130880261605797273291540454442406211722776257924891289965186263123730701723722554653781369202018343312196890859316318888100734344851314603358739991981562750870415820256602065918004346998416230659770140390103396564081570903395727517380124601514126231343056241370591255299915460986126666824508804284156015112939564833266362141854797830967960487426753025587664723066500047129828862410057399514084505712143919168558094720453292488169022197735515070038467439658754786078982396083746866739019842664547708271931209404022797489469939047205160109864156034000339221521645960994423213990038210680069395285459810296607607620338416347550863264874635800322804304746101604298484838947962229531263785957203109820553265726138581640961158930784474294764125920736223691259864633550648682956735797519296596631536426271107246197972507444381880332052257960866516107176864144227726530702562592900391648017338023949861549777042765963606359951859262778299063743105081501655775368526029993972526965001789306718831051909905801447604416556289942529183223400732149344744063466332526843697667120349920483882822129833046272822203322930728817900788544655139835837898279946193464712646813391311289117886442019258310151288417438377185784952010792955825792876454124612906052359903709298223279639378396204760770612492288066866636864522431452327497860079300471801192292150317839714526962520035684257358428487150803913610540894031799842671077956307975532452476007298370916302997349387616454074082987603961683696615799441773883846518079873914636929947868103328841093776302155377655652777324114686628486943247277193796939272538874794494272274401469616703543989607588567697779415596184791367458311530464672795661470196561836049171980340096014094688934564203064182883222491663189776100311979908288126820735091696562853382876826587481051202572819993090145360621657658727975410683955558880734427716941960940536897505052975132487891642194697897302273367913130158741363473741418590333179381403883966690127990481811834691742002391554409608550907998594089313591421193732072734565740263913712960689274609977648912504081713285154563659114827295239698820806147714385609211942407450714885330807663013313775633770386740061405600617526956922170167610486239067163746747872330567328714438038162515403162359674724861829617138209130832812377006932811430231635407474247751314540531008741595495169776504032460640185916981260509888872476788527432495708365829197554176489851698247687794754555839283246692526378526936873623664072273040129877625306170023723848707313460233395096802167293095251327740830889356673482145795102699092635438448263099418463864227615448428221990021002548547230957284922564311845066899439783643525976211292064377640628020764510995032036118140543713300198803748142278072942684850329104887498992366302049419179543258275741407903441426106390170733796362631414316542480017432837933084930329840464842974438504182226725681335940823239242585235881698109715553861834804766241476279913276163666792807760374386980358931374529059749012892147374915970789495500390689660836976367098553403620012128904632071161628055435264849677302013028318246086107180116479937784425765592900592664566069289213724604860469378300288207873111195016366305538775629650495071723582795041377939019891499592412749071192642274957179067009141102021350990677362323746525647068208316699447614726186117464983542485599726876190931560325176977952754555508669050230015220959146915185660934080281097253718875896751802937726916975541374624875880775094237948259488064809259889887684740481851097130212036787189513361052490652913456662766223055104501328561890600189571062971347514785383272882788403996334732267667668318865980421595075204515672157661586238211803031016064449776286632749136934708844407809923391573682525882717431176403181262971787722940756845832661429668121910510952509182638731348054837000813425809360106737912465271397028812743712175790291673020768683036868298277984285739763684085619391611897850317933735950220918305349435067842651320319689743876656547221964988473898665645898342687301689055769444710140793728804703263945656256245697374228784273440905386302969158084032314611444267006796874575460022273773711121305823201513521555266227591817823137843568764358451794674341169170629296017756467699491629529473686410842029081698897479019368590724025437278126272303465284509581074497303365977271619479453966928090658041957919685419873229864337922402759196950621914455874974264359973162113218279903698282288333450667048757541619304692786623414947798566369339920573294196386931028312436195042015199392012629888754048154661592151681065173004642309525052199872932888535422142005879243891237237984771160998399065957221262513916731711052351438726574493493003277656682048858666007322052317929612506104968077142423819527446628486794557872968360517735502647060971813869550706071129412066664272189643550867813483210619939176190531345732154044519270555687496418613312300314299638345410466594807213886984586860723681931896727770307757442074316434936335004166457994514142294289271218470363470099205637097992389040385684814951553795325503336748257432450983185129925366042425399640717194938421532905732641786241044257947332730232942659382120444966432484721169007506997396590667585169692160417437647602934358771097887029442266106491256511752785328955391473361541951854863629608164040771638885325466627175594145663197439660995657029359963264749740022808197352778856094974800234950458083703265211360613569171169916572258599916762473153340050665479211689699130490143499566166736367596555705937544027321223384722066658506207064653932361822422948839444186047927767443294372880301506149746054522785771310020372701926290337372090726739993131306595789533194092787514414832761636680242587972628456969289414492591410214597759907515500117553010035006468630147620876565798880929103784125186207089816993150631906421839363570535872685344371555532804859198277164824537205853972680402403424086677869665659103092658861092772724484698655453820723171506448133459337788014035942875422587385271951016155198443249287067221487955077260258835783523522799349900763526781656423408523607078644039795798069015616597741414305584356648982230649249379490186227579982496175078108737013532294272101805772787072456287218530075256238830090680652666042251431527795251695809685463097029238125576748200034623689584554119332490397904645611250503995773233629229204429731157703040437368724750126243941287954924554874822749115082880253765430223723132344939499995050649350598120850258246076111023574068885180283356321265206683690325355451276350321319703367789053642726745023523845588061258970356923378659892521800292602141835047743364122874930156615813001023454679769446627296478037657287590560112865627073603650734709105365873959491275825294440778377263935494732887685626050810278440010712816597146598093510708677022809773933301855898034853414445334699824173987481719195439677066035649738363680819362230427493567448386602331972590057958150782536734277233038377572803218085460168779171016754468158510926171782937779352314189809668811846718829200901979730416430985009035871284095306153618326821552955577891867595948463181983109192368502333296250288996040586514453551897649994806678130258258253558763700974861558580353794111312021742635543111895678740575259361566435971616945134727865653118439052328625855058076101336587792888848887352327996958922234836176174466332536835420342618766209337317894439627258487753900878170987967334411955662182718301453643153919899930810283700554637626866446886572073319762384932061707216823622003061957220018764768790261738861752871278448520378774151028509153258705384565590632152424620265182139136752480944582902579685460133554718654839209672882716564187535234640312468025242871697191815605011157697541131783170232072756563791599249540260830824888717217630632644049236972624633031375455067212143609535489280596053859815822349588874554556273355350045743830720171688861729572168766757504658858713435424780412182423810183388911651975237542896671442817902171644353892837034530998216113359124975870407017947083826181870862962838474561618325465572888981204295295898834798242985336570488792581507204379766025752484901509369891151745141459334364398394006872396942105156304633807528649045485493200897279177439715676140319155892011332960711504126349886352814482159944577814193774207682617963340706953080995669911462044734039751815719245264009915024584226202764915912003607444077261193025190263582531430024188283148372133643882221846351191524747449770567859799656961192948281271538395552633371045615657563852320614140067933820853333137370611002277819566021504222171769005612750266040508414419769851924790660446971062986107306261925944388878274649707416396693129485348820467633465884158576353938826553966656048920586406646480262690203199356118959298630804909102698007003067744147036683977546195529985410129991682141766207285282751979024406050184783620705874892901559715898670013296900834707866182626723176997381895426573124241311023266298480761175480229009070005458485894492566067646978645003490063690912679730652226440471229984063725614318129993493207499281326802055686755579589809792118452277487250596469989900408851047336923727418874175552436277590830230217937147545606684945569995400576476836168882843118127178997731111448178333555840707270314614564927574720895277062487098132114817051461590647927866468446917059390326265869172736448738162572630939750705498572552798747324537716326223329428736243698317798166517920676776992079994039036719802035887805038287962101251060697431520081424600185427006616776468457933699831277887960439132082092199210781391311450267874108236329425939180924517177376371843619781239223450682771425947208926983339545587519655738235962381859752588470114443572413229173616151340115960156215986138649742069051672968971793753089433053059479925874836059880927778903033533375298841420956861985988116685189432710971597033517593422421558269152919609094394005911702624385092654813272977128193590827027900175407482544993755910032740400281652152716596293197231232361725380716092145589096712882004422185486366411901226002402408354180001838404954515823156572396342127200988118193899053575982183622224668595481053874932301157474648118854553875296519153509810043440591514758350289107090170270687493575518113456047159775310247826003401419695192090203429950562853904079661001153158442744049214682895685292008373209821158344541196586541903331085657564524553289441180834810138291014990698711157114427560863530370780917380946064310590664066411993219330967189856732419445564041353448012945887320342491429963944080201905020290168461388284669398877977371425647358201989653938206422396943701754031128081840398079825956861638110431952422325626322387906572670498793247766557195126712407421084221404119443551777097365379086295988900726938627619769764292974260772898704250048850033535192219878392836668680455385645964876546164507871931518488154441743844565657923795000743196270550102647564979680933825778926293752651382804132795240020541676956226553233475693363857371351954248018661344763415095408877994146417033470727615570345342883454558929865814506332693465129128565294673748824530614191873963360390726577326029072440813101889078969524508506366581522643980109666698067724813070262758578069493466919951724809087611983433171311926938973684143557471574775670945584441234503675097711686066936852979443718877683141730301769851374288005507270115757016592080739579615790905182263924862763791881495284748866718584950370916316800181310211427642518254515840604296632806191354398842007753985877443242967786685077239475603279984173467523589320222017247337562744484966831679758120898753412610617928650543233744580168548877723719670888347539711336259810356705830659015783784446520291336543795163906558188210995986992620316296298158928761500024329192043242116210838362556899382990739647902336552943045404400055223669503446018650267490707322776314426188239661720130917623364790284915526579217735575138840713808437730953598016087288550414246766069967387197076066912054317353363699826720145779247479516116824510766155523598742881773033048125215101135158287227867357610879728046310336602169262276398995002103485948935127532327727443585026753692020699680586425004513185499785795414756066818435994648148576194421961014681172924035838187128256252708553954403640556280850115427240134519656292235097122684613301163762378505626113498643631142108983915285223553491782249253280027192986401602948223318577473935629190846726788809715268182089915562870390649265296510707677329382825981134518047113267212199715147745853171776420124761275982844123337775867017785572149474730592293615933837752470009815465865557403853652642667959019666473345071313881797027737060381536726664718784692947074122464718226930321708077680615263447271326290471181609164575946444038696205508416343974868693082649563983698324937013532254696880239052859866874585087655225467515172472514782544400924019130342252892698043290756880158772924980994245650472160833021617728985933565215400435688881938541105060377935933843161038109414833295220420206013524862859355879957496648582449278267481858818409085865661111596748962993927430225515392744666625883847754409108297204961860069062312163589111307643530728829745122564499211001432305278088942252841457754613314120351623332610710456963977134196132152349013378307353463005882157528463665340209701501123851797618308509761839458218740716748854758886076443215142615502395350316472638334816343734093291236106228175294047808401628168186229322073025081561671822593928143796046942441020535317054439296486319311252111437887229111180813809269124277875309042204918042123853315026652827179210474059262640301747775389804119381338489448602394097380150765963852532174936394256704676864198487652042996049614545752579746534186551872870692769374192140602429282610522447718815883977527819225450000620665733060582978048106903120057317269640465492440933752010750613240347332987208893273272170399872460041891567896800669635327406720481161935313905919150414905576799293512820971573999669681325683035661820003998273164884521983683402946493364537096250723674163016450040778372896584856785137313489777478472889499784402975939030220970600833829005819338425488798759730592389513524561768069674502284023249030446098904433967693845351629194593426094622730766515208668075223831184448816265234987943376872592089051842971579950920072728141321971535927451876333705054548068659857336443982769514156329992969643704597519072446701692268194071256285663948718243808790243016529800435641558121291475064069545710719308290810036054907314340279175322096595821629791467960300207715644500141461697432156632536052687011410460316931783782463551728327684747314537067877459003916298517556816960537939858414780031754366793496672221717035574425328891220152095722602651809660901421414908405809011797739726612004738607702149041194201689917300021390182792074100345870351108844192879790779933351733513149147600612792517899478378295270485986771320568522279302087601018634634077007835344091928760675979415878703425482338018287680794098914270725040254651364068559888898153755598118907347864203034143289478112618535121707655664684812148498109763757612659874863388814800608500637120461928813044328620300519697620736735163364460250732789989755377671672693133822111349556811994478494339783852180151190365590514951001647988772091476839453865373090540633560732497743687234922390573928428203534982674482179566284465378522846743713002602839499601926360403307929705427722957714381382368036661579648135002998000087286468147350114225676247302230723021790300007755919739263748782216544529808422611745812600499824180413870735759456343804041745748618697200293008727079074793252557098629248868432949448474544149580071758864992507817668147167442284950121379177770263777395608944410764323811132314897879227641527922715829014662093534147806919224672608661455499704814734173998662438633844684439589000953356918990805488895396599144770452191979829416157213135993560369861895334299208355756896681473570168498345912499248925843201949250606091684743942447979164282204739017279330967269678240070476190262004614269975930028640941664940294042936665504013193518528553643699954828691083139195932739408238606385807795861031515735818597921172145778356242716232964162086279831837050281246983250361541486949608016454885235613886116900732385615700840214064701975164179792693272739987014576018081491755842992912748614230494326120040807720705071655284317128832865687822620494778483311258936827613782424667354381322678661119467145902057970397299208386272302780155193602519273555323812035306745462130160225853107571617090066560549584609437044581966546213299927334181985792917031820000599102321867879850985151279170669075704655459410134163798463157880682481086252698543952189933708892618591618127839307480270435425757652898363796731053656840850662533465548400935833717809018273301272263384762234852730387634746797891240879052231503247337406605072260441848868271352323876706349034465005054743145142655261305313939597308013026219601289462061908963992513950762065976574359264593000933733279281984735175690939912928030878625739660874103685786816858827349082030956943468793531680539475451338465155359461478579882073194262507552349502724734438685204191275325195740856232872284749131355182827282504414984145927161340314809299497979036581435732871198772528817093142388812589094969465259541261927587832622376495623662735532303437300346705497878734433657942956662110682682286857593130509586832602718822358518276074485248554775555987012413143514805600810030931715644017872097093231635582033809941687615440156942706698221614638057347219335332151735497986146819629781325549913825090528734629151380303516037522065485299093032974492731735633814252191661590439827127717622076162673895458278999248433488066494851769126263616537067796347990235483616056744732534809933793955662188062213063058698354761440155331924091575899129422107587644480787452317829936231567411208525036132852295920664410551815597603377199746723380471076467086058031856828549292482040025904407573387404937152084145452154662160778280766389179209256427860645758549057770166054105947819100753640099586533527035734974670674816846114257861364878213947840998159355564732480684890385054246717372295031105011335941726210678010696527317057162502106330965374508501072325400229207650860794368746899863229643641195983849992120621620054368526952494996121324702266454604827557514594096614822300413543875708479936341386840769930189883099460653955150875966606605670844670662991371994411640728928313574401549294605816766970062631720502311011449901897861962484041173735088724222663309553701515963800804058368162729871334227744713728244431860379572721739738650559271810770486603557279264176237733056048229095385206974342535269791535973269326103338743476987321442237538753039496348267961198647635212806273883359407028812278385794776512027860269929659201172906346400950168467539390595723369427193747281517708868590699269811195653248420189630308314367448759574582042567399824996184519780552692915553081451367604535661453243674370382510189034157782727905259426046570608464268584631916570449772758110164800513291061351913242942179136377322359735923513798365119101146642058590086701629682888600465539810332970097488854341062904307790176140576901996788300499394759912685119391077809577367561721411819291600099649006732273373706322180094154473688269559702584346622364786339798527556456552459717908217336386281526144302611685393569482956301192889469809876905749162771525653059850670362163905712215517015936231294658502250273658488407027576216980537411052614267996709234663657351930612634674979995562043188988038180127645169133022719505278733071157282255575255017047230320557275927066283389428110494994617759704041537104772264748304052737964277304157681293766455391409182880116196110874020428875229586491104379188266288294626040491240849644783672025325540655404578109079064946184315221323232466052950109396431569693217507493482506568134197790111137861163547466950733605071375106347086084811283081761733718351613941153477930589081557486187979986387313810141253384395482959520331245745061585561971256074667279237445953803049000503224914062245955115878606435159905643790345023148007898665885942375802896362386640374551061666180187492110246617889700800820382856135385818453741539253050381150499496976001541685416782112959927564243170201132620916129392177173288747031046753698492267365614777173284585050765090875761880180326691963276698493126361887663511061923707126520745376797696515348584029567860466157482186211903161523496942999538438401561563228749568303177234714381618971839350988891192688669676867733960583555500190019244379225672437259403593873973590236301640912188696050556632263392969129129812113993900898644320920301613581734711333722699901087689727436572436449599532019733359773886757214003088136715781994334497217244618522773536653201405673868915838378169182411385948422484962264579366177459358391006001079431521486735567930749335291621366670592682348341680619235072788605843924063758249400487386803809663456657774658377605664292537315306530554443322556205315173277485029772732713975510305864713301470618096246467323981130752031676318666695306283140564581466103446191780113014444784307447311687840410708603428267677921538152198672654788361784383022901742832863322420623560174308052997683323068885843901397786999614406428134564805651778571871504193261907324180448958841941581487354940915052799632293793782435327340796131143593100200190115377863280110648896817899320278696305378546306507077760783321624047735743812356201556526698861662839139497310766303285543532972981301324767460434813729291758537873121107870169951227977159888466027908508933625137318392765039732518331213418459103592374595271282071272132758150620499574667877151755480466448716023115136701702765115885149652234454713988582669582797874454407053264829979332070579511396188497479610388631332333122235212340559938045749535422481481480570539936478954870883874934202317986309451246184597511845887274361659978686692709624593364960739299327650811492620915769432052007422970827538353522135857853382163153038849266913059938557258619463312281501869102197860231594916734932088479821994730767786677938108389530118577326291964803186040305603807445854485429474572315119463485280545725670089355030808845940160358686405711245815500950972656583822549939505901910472851338285591955567245062695277062732023785203438820858252393507659258559897552209226017340654078135568712471897552031156721294669700771679892292660023513431117026388429510360967573569890703812281305506638983263756884424709528287884182828925781022813098927308865571048639293295322931723931611216833082871129083025399131648935117190630369994605544518428081889862828331660082440296127444663176683775100499902282599699494340491545266448879980894335617584253518165627351352936296458157112982673524613520956537100549528015898833586735197916695982119870874610461097390723490209028728037368598017217137121713444881462151775193393913220634453648725707278024947643465347586535635368484480533846812922619195694981669837138197220586962200182957042268745850670621431896927147764787054319568313322899370843989630579107887746545079901191757879165263365815904722653476900155176517654530779353346640564752411024682870492785800484076428629009096108708784804687462743245799986120633952902465627807215048893191761168219605626279219351376750283424689598541942850003856098950242059797791155422143174778573549474197638013038206397323329839777998578006478283978706885800229716395064755176870161260932969721415573892626104372944385876523916679467234338745095989575179627376318265691996574641647299704520277529645920871131746937982499808379887612793986795867922433322242601429330537841855409463738190879510437722587340466540251408862160831208419880307501396541863835175105577958229081996159019819132472794465809866843755489464875439864729382321522766118405906168169186080218358191431922420613460717091127536304225688625679067439947896553500095640900450109679090837152161817955431945873237261182097396310735385985713515882864557249393840493300628964529867142331329655066032881116254928413515109956897924590086544922187506816973726647963168402512105502376144676404362085368990776298160123057103338076624640187299799587675290760000310995527401825751549003149926092651773132335536442025428079074346841319897165179894750862956694378396260864859633083996270571349387711341751574858632248675706904777844114036585177470578502092797447191011164504345502796909690975015771215976836498280809272973909324299889955981449380043972680792353258352474273316789128832980188261290111429944757943066843058341670022479826832178059729812307586945386301104682948651810300223694248910443790035295964131298721708194229713584395627138240370166805750236081957830007296296561323518907905717361450179550257930677454951722456068873299707995349854895107520971633052691574952195120451074282342386810550498535939825264280619541292807020659606117190030900005220287910907713251402420416928453453760492862547668825889199755878828607527049562755971313916202641281873921832377151019826576410010888614080040829880740952968271849868704222478874539928448834909392264561357672167505358535094177257119527462601425487323398560692898619002585887327841341350673063832407181948404419846687267226668465003115117541205275477563579416197708536615040174987069620753358738146196130093152930241224202758477839535095866255797312283948098583019979895916742992194073427701764356325865727883623194308508159413414752111630315724431996301730064685701492206381400990493022668638825659786468534853470453213746412878231010409164507469399478324125141940206884493309379632624910509015491250008848416443199340427225948622271103205654451928445945804063140282579200976338559227655224677658798658875086057402218645633098190614818007822840867534704869975392576694558887366321434495488162670219840768939073406717444248355826807519201626419877400907499840338260940555394145498579842473666995670253964003681129072429786727761469116104311551956917072362986199837418144491297205407513344536620692812998332079244972300533381977478492109095979002382094724864216569821231069699637870219872807080124566508119808480913946714133583113219124464401720951385870598270681346814640739598867957772933603106381608941008739894337786100788252201958561929606783627991001706303472634634966251200182615726810949980698322755864173413994643899748809416325718508476002353217625649499551164828948078797107433551346196621992122547077540800870772038823188067005530090414454171688476504148488261022653238189412629376100716988802307769073199294696289080308146019556880064442989549138602898082018129702990506750916099088897949815173786324447249798610831884605078008083163817436287657110972423112359528047339049238737610387809560972154482147386498336823407559182995273597149324698796314994434554703703030205037184100936616638268406848404484010404351423948491059059187179150530318406308090215404343067740389914759739896532969698656659194909395361106732854663808253442061456276424538606821735459713580778318671876362782616423331877793452673889146032575630983230229116981322027858285558842217920703936067914940254797740120394863303202074131614087607014868809287221739787691253667249219435536307593669449327705670134560429716908639717692301332338225372279415560003237703146458599197327858405105162990451194977038498059130519070428702128780278310091264102615050769789815201219396967470237364700663795549203868683227865184017491375435740610099951410124743760044996837644925796061993379665668122884230803463233472262839840515642658353919502291122606933358314176676301801221145501629530964270669379220649931264216771573245807041852241097167524044409093458176060413127949085866555702552500980340229694635574621666233478872957570341408700319957860310951027719601943700727629519850054987091296304811845293054455823895470174796389655892384499849371716678377201193594324116129267409624235888517070258075958248283500000991167143047099220827439169769432005766127532101967193929647961620800648827362882258148456224877380139515944512439090106665988564652945665297472458931912053293611028784011330366275069749876807500661313667082708607368829083423144262858455421655913158813877207336457858712468755757219450469797607574094405958067297071479020053924254081812474407485833821851999823241746678888339263855800191869718060950268529180922318424122576318836848611043061373904602108772656529842771975444218755163420679678497913246814230055765655545506586945992250096484473027649997941830548111450917403904002388913346575086744428842235068767159229512636916706129407283511686473330146764805631030429553180721847397555710105952112784369403443175016544645414586090993955261464906737722251808970729830444992776095227045803744595096659166268144394632649182295058799200096968463695281072302227869160781142863256668878196304230981644018785538448108001991225563372644783906008767322400071550542041303726500318807287027242257987204416745981085097645270520095755529230411793052695725540827597911736219339938743127732024151901705511000607625499935848316720518369505244971724923263224528647586321183127887661085381181224087727791351415459469589146046905908779837822442022138083711946563313776678065515297605690776392125930051248104931639128343556247753066475823823794395561810288504540462695600771699758004516787808881161726557148231785500453100122727993800857853597758297751619462036725715324862158638734989788260298170769712370074401715677882732927689636106501398199888098486469851766329132714939889775825439144452970377500047726063440701015346221776143377420471848480801059194346559748918120249478758231414676479908936478721914928066337615970289894922120466157294787467081467705741016018144859101850353151745059809268928133583023601313535466389557632111394199647469908658517240857558753101112871430823685077189303327018855014806670252069810268819524698925569005823305906539920070860634440432451991631227358154934551722470618304541011384687716489463959125590983636773078696117333017230028820188092162700495820986356182269183781560247049256679314168545602192990409106460015214967178860788106720810539538485321600316585624728726101257004683615466175660412756865568567089610348438721367796863495802133493988012092396738312766383617754846152972172034011868356465592461276396732220719629318731964901160840163407424435206986694498836830558242707435739041776801165510508458830925594906447373517389279669472405996029022305209852257059018110912000934078353204399670469249445138551846039056156250226096329304913222017847022891688197789337522348146429907235165013976507302018537674925529380277149398342660212933746384471286376025354312571449153432586508875952519001529837619552160449133406475906244316041959626371126383602758230097147416972511413071387578043556387848090941457259726710241997326621470760772961141069867826552936374717240024901983640169752113732384180259915003159859007575938749145272728135633319724819957905321553089368707555831426016325856500517377257944803156585098950949570806984661984428373145216708622868021225624110095739463539597560777281426144192662927501280716310860133577673558288923336582073716400563467252682269909720493944101557508325771109426819929681718940899975809356766798969037214332427422431025448189901269565778866957214127546720504103322792582900402857212757670134847642753839950936547795438905151236576694971684954217959377920295631152575648121971473291774811180339059555863898636175841647691817675907440787889877628316685659523133812546063095902872551912747591485847102619014349387483650383101494208657265994689657230166426831519222099246167912103341722310165963974379617297014935509406060329110611023625625490413563822987921959237389039166052144445905633396878548755371745610251043653832397261343872949833897043678241425697857961151704335623221895712599445226235820033096749735105093736479090466192193558939228552914288824374549506024016621251423794126151638905685210169917374197745049603355538352066469135909488967475939153745675364439326127820545810249174448333574015292870632556350711897678759201041838446689326831938058599545773553838663391268510128082313221650247361223231121170953123734693929395444551304547419171930906931226591211783312138300717515350602712329319378313974384265883485170062878879361675581178260766067789403873511076480505322755006705753957356107331329067706994228486169792497423233938987673974915517520109166742549609383099024795222767116825957074762701043504045815930750132492061835259930858389106240104203597839793175237702286851393253059489183871058018020853724882466797464614694404613474704959047471781278324363460605464447531614416390673958805896690587981845883533071234158685144990637637479696682853324725344125520249232038344658833403186275927342289052725509555888337428149190294737499575561221196862703957396794322747672027865129545919456451675474098465239351380009482064333815086344317628761924391243648511986157069889840387330515477418156772547534355981854888662412362284388679832879849838367909499387050637121007932290820947892679045302853130066721577113030732778275437556974970851645681844518032532500528818117645430474414428275904844671477303431315655375205175363528342553219765388065763345821336426950950516219864525018458655253638074126153704734195778751368281176631014923938752633179114705945090059548775666983755160473225070666494358875573235621868234356601971427627473933937215307232856822137124772086335513080122194978412986465057121542888538507040898137790087769436075258577831525491263300720068691982180648848476917701975763204454711334810395617311547528794945585614725029561724978648348775014767959006698010761844669665362630019267985032942619053938474763932126022377548056638080827771530446658969605499923854533920841407993609015104712919884069275167220693894880564879195406357615757297650357949503718801741694903888953282939165090632271727074817239723303538796839595813436891212336372140490945833857141816117484203271655480983297667805185810843751724691908282646276807506706392327862784038069174210221719130805228515750621000769570549547401301964824533734988854222592595747454246807877481497377301860720776387206418256448998262022978822859739487875789072336418176218186337868432233932803815249683636925407711076285976588972447494197869227720660800645449632638861141550573214062597487402171430649309255238005512976008173590549175774285584051392028100538784650402610349796916451948622800851504565564433358911723676572822784069803607405513540550090435262500863763934142938290196926511497950025064691823542423310802371629554930375187384831318810331883160485882179313402551409744033050082645677032807167337567998088745337156203577080030897621671936590695867201363167357409316202906164505466940983945473778719071234428687044957402474045121355542692643026719578083613890526810477842816453405549023773564975039593744440613887180665658875762468733758782147315860851739157847070547646926757276610237380358876617461022373614302488771726443527849141546675337482964093547611364044937563585909181018246159608693076292829466369845551762846015655098423403069304129337293361774802258475571002817700698420355047680935450709073591541119409165012268487751276481225538027145112735063130836460074092541980705914597730532835458409265851872179597168150629531090475819538567235750416224103402282211426984383439883924788350232266626294195935574411113644725015348015550739028293410745338888035538704702265635340684460606679940559813595600235288951929262496511109173566604679748524565792830922360192962932009833129730381537862797786110106288242197415958246503745781456809837122172896861701083151976638896465071267852658257285902557264855752800090857033274244859652118729873130507524342345243193329764852970549722217020699048622751070058264599193022923933947832896085818620090746043395159621173586446012080404631948432057004029369489668141655093772711474975196852097990581953177876734350993039969362393201792717349289701968389225634270707794029600572357487810999070829733153464201972263490193892833504358501999931776341502902704968664369333961029978789837854650797031937961126123948963756133937800360321918399538906352833327751253044719114075786559734143654847197098570599567836535321158650235560997779876065062711577852556901814112772564465042390643717941582134609551286220194538242476860798541581901040985859629940598693335487537916217914086610987255983861731410176486728310062187834104025505815014766275339608568217031813672900210542108450883732327736091311375910339814894753094631906636346946064185288592589276769826147463483680437045836145526479000796342169566905011962386143620204240436928403018541085176154163252469543900982777827962597865792912991718954170736738828362788509566845248307071741906248025670628932794930438425157239779783427661890582374823664734449133607643427210906937264812501972627099886145997937695903804433421178736347465272032997393820724340188446157228331338975762658825605058255879628259343002860759222877833560531820677703570026365142962882299237988974883169229838820114909485775541881678951537617312932794291115822711039323451568910929423225816208518443164702779250567595169230478445483277766832430672612660127730536646242943706053465596334418842095899741448093433960921124841841180442036500163233553022852458254742591525924192698690490044258794182025686391916250208977097164776722211175799923241609011490804788623102039990105750893738805725494607385139071690052222170595262244460027278986206537932406310952341871899350541030614140078208423430783906875630117823214812736629206852232096913744715718341266017019255237534887922503825184577770593749893777718310334773301982477598610638331485011809380673658880827675372154021956655148301188925420710063016162726211027336181505217543477873038776543389679674752888964708137413170852860329884977978726363105852364813262712125470647670002170187029886596302713923930492722420003817036423110144819800720694608584529142295140089901235201962987056432145246675284944846245695331174962810428514882907656394848393437925129474236393753185061553950967760925350712238526974678299755601764451020470520027442496974262337532529973829088807075761183346802859978046802614104064946016239196004799156536790110950100312105109529873703677708826895734883928015531296215923934388712935264172610805452741848539880312931576886386956922421294035288408733605954969029235028900157007008046216140167588358057187686816233050761114367047310485851631055057924508919244190267409560771865457030606389595775883090024004784367647634887993987377613186099270647409086680584075047351320719473677994898035154090817347993864418550561603997978475727056029597648653400499817805060640632421091106543153333702655227406387578630931878542437266018971097918428105744076871654127298919388774038724805191920602328950948369517272989980616331984679207626880882133995146894680920133753467151404786528513332307769637924375830747318011429300284381151742188331875287801350410523276921190910389541371714735544744168328586081129219098321403259707273356355122081525738918274768810340086022216075579557893489407319706412426724113754073206116653925502405751311757807852011347607479811429252032257646387214342760255520175400889829968749987938482425822222319249644753801750648461665698509064756655503413659593574231865435006240834510938801482423890148651939353031528460428232383919951622546867134173947746150436127222877057581985541767616031420569861803003010213060092653522922653516791282346329390800573152503505085771775077698311820299432132307246937632345819921117037512654623507533981655530385496555201423595558043290011706080293832648684522047257112609775160379788803983172437771618183440917836673783375819649952956767672348614059720592341951777812279729861127611692750194135938521157317270954068038915407211382587174048136997844309679604419874546577278700009018543976495993423622084852985045667713789762637973112401231266032025379252687622566719469005824580365462779664865131293320410294253747944493628175342212181533819421960667687543847914972601513143280656423019244987161464625468496498304374963885532002923850317644689422803792135426441065623519584382579423779206656273038242411247487440738977697220431924200917972019414201792684687986494168783699479431463113611877507084994743916132734852054355113420035709865504443369713263047741069497365876065592650946160749271245973034999230879933394331120023522821434187225096025348800373663271338634313984210581172222116169724684898735232813479547764415400435417669566966273311349955894846809774350056099821110864553382268697517250302054944186844367068354917952027785422529356475186816346796447358652626891561802866139080755991881745398894046417167252304077103687494880497203039305858641052127213115591817784478727829017071692649424004024296548569803661837924362725546102899336621908163752402219202207291317286807494797474917063248803328748705602140099295748181874560272692114224864684520451362570779635467210981557321336310363907444995082684268650177915525286575733891659609476157909415883934272215501456268744127542717015698781206702929942609177144483538606324952747642126699634763921117575885259473721597185960918484186709151220015283794630257015043279088269233350155918992718606075380337995178936265182376146900700622454292200569444324814888964370575975036835121828232234678293948784860077022672013746897997253831836912389198295005041744051289395109899299787335607797144521669200431537635075741877860370610835713869709446722687820030758781935296634227234152187020173003687758661246655604827640815411189219053835930470202932845862741050236308042660170356447726157186735551106712957287787609524849910066232611689496193002648695065739329757462853955189813103238916309302932849502843202767717253900780583127401434780350811952511565031145841146561000263226932514139754510371758163035666220969709281321186254026605197341519905359840839103906744339407439516617551158021892479135406644069263553744659438051022711688698052307476573083631594584991797897573390506417840225900748121716077172574939775034010016467903016308521144324135673752327380050594576676142400194592352854202598389365052719608882565593576731719183235497741806370259586426694236145857153588786139167849069505187333396892578265032482647275426564598056097949986989857661133457764966151522465266001672488034364666262391051461232547069589699355218778260645479539004759338133864715486576794316888003588355205726806298763915194497712714024326742856753489058871513748921315296188558228663867192348340860256654130358039918133458141519923521850803686069633755901823395852761769439903695223392035890519474009104556634986507037691744208160188663155268020172512162991459177928800526075958350240711444276313920611675272518256623289983364913530081771919213750627377311858365320416588180697424635417091410426033546378083642660536894213856800326929271693122121539447405988983983422903037828260709200473440822814168629205867809355148254965698507374856037437967624635753219305130702112810895311580789664615529921298091055860663600537426963425608555443186297524653560461733054881920449090223930093210989895896145471199474908806245208843648460668315876285830851607506649160884595399759711253396858029421370456551698532502873839043703541870630429802809258080785552770005613846441996106660815054619333413914904578143786483953880356051883312565576733970395650493209688162274980109998792771867947246187468693497574879597080756388774158162124964769466919062773484691767007708485532623807121140429106998809198024769813476239043000124669347891164401802239456709452567775653837590856690748580903749454071732242517667084568268662693320973517840677701339677340502888319745549239480889890156300753751286850126293927624034847669142168277222024681259396678966989286160171893426139964681338878895176828776434534350064524604016016371184120245354203464175428258492158590722950072642369029191828827189705453067164363342800271858774265359277470229291459368653586352957205614301537279354540183174804387752835362488273154684791985993004636814395820159729968647984225076826545746332754080473008314130081494142490889624477509354270325135580613898345390174419134750951180252471260268683422240325718217067556520537154794314252933589302512185353817500359015375318783107640566515715043428936030830520265113808931423409924107984013235425938480814808364796570613010815121444203281162595967398468989053206786233647956773596197178378763716106394207187442481009766899979499479626316191958566829513405008863769423129034740955985873197316047697395894162977826842859009132700873464279422133712650719257940260106038161044071741059321128131666109985024668490333151181154191632321511000070997071039924873362572757448869849303090453677492755274275667747225355935164174663986691391014604550832867733120014268320460281014337103550129664445258727493280066118530760676512453185945179598070676110948546305675408816215431286141803759095846518103559660724792915614654649372207235951450730415050620035860176555341063816112234223674869820989350900575642391218905266901465061145972967224853527885253475019938041283984161792152325767638102836277364400228258099201780687286017276136796112818746039029418323679156343940800805806030242844510300538929859966716394901157586221516111093159796392137645850156606805275082174395278338142686247827017616885888929828854157682236744920929535447215158342519267407316878125908916586914769817275158380699651900561330529061521003761173704881913147876350470699912285343097470064516030249272034518144387546325128839071955075034045792082602098201102120004223823624314389514860790229269890715649352502881716947544032402122904933814943937649504709095767422560310550606058718229510300771896849571352844538785821869014271851883838738258261705549718339930496125611771484636317387374832352195081535147058422339554432696320048347037077547748240691100469442436707663130972344109728506263850814656947334846881088833902443215562303744705770786738961393515827906277281346556474934062897775019334163765664315102319458809006221011300147436527714336031228625110016349177769570996583928980897617154854798034501840546981380445076090372888797231909029274857541097765431436294777594378312722839299438668485541714558278432790971729660949763165921446914571678583075700177964649305668188164580100319138352414110750775502544599942849980454214930762719147034644594058639129674621101925448350225842680199560370752231941258208064310424249782031903998861614400117216108352216213055312054064458599180977539936258001237600453367272837496283720419032806291095274193029946581807703647807790028954751199159598101112574080801268455689032662108386267557985590665911789757453385845805494087224384606059660809167011412930287168820105039799317857610723669642138564807747726750239102391456189911744711483128680242923811541614568105222269315545244391540846141537025939279552373265015982721880572659208672019479877732760669643219052051838585401310411219417013908424617562500542147955660470329520485470135320080565370649969347399385515930294599080782342608092433752300230080519884179745382940156475369357647180674179649982224850727391432192654309431039767754429460103844459895481823108625337580062796573056574073566377996028274375725728693288177047968427047063706047679596899325492428412920904910241818656703114569564826467110802667019131304719620336837470667462668122409965055975453608630187957570466296997075383696274773052918109209070916927323793858962616480118624513529404572290197930401253467884851470873180747969951269346338675561821066690451175206814853313631879633936887079492489939309701842851438098254332701386558934730807320342998898530279005824508399599802447393180760365682635144911179876965675042527982179080692508812147062045064270094964859603310810311746662614181375276658470806969809359541535970781149884271637949397802261388327028903922614037223884068452339075407041892069581731517001362132098168093616922524852807262718371957913493548336139259999507563829250447360095798757612333474169243181612038002207230194916467270957272759659716740239415981841695594548132239649564741249062326612086469410443001446657073981357397032875064671412586896836268604763325159374529441483296473536805936426178140231997908457418924656814548055928070627984658000685973944031448677506127000666762944605442009113636138906379209732695499632341367271984948950916517822158153222067419690653158418967051750877523316816060460030504053689103424958475381286736375931893688221708955254538123956346759225299280947848000231161291314446813238141958568813134794893002629601386339719039775712355687779280559097100848919927108702719402094782412326241466074291205405604942045280696495061529437119749788358746923320700813415694241657068140966503987612093965171586260851398023886914123311252082302677595284075989196510121458592255324014404026135845342739332932621812776874492646936336522128040328261223618871838702907629021770979032841666504345617363079362096961609058635037092372632273735214578905080702332670954060853535208914910005253860003756342449742578282202136702578799371470774666619111020260801875417448408345483838125300845231073218052720483026089955278490024226155730612545524465224069469895069490342666119924564306203936760889457823114616784429163968984606704933204904756404009582447129540977850644243805642755507911791893714800584803057583125977022509213977698821437099656684208038831944137866744863268322475597182635840331078557757983809121179702820657995880997188773958827190422152939209641809065211495553698808443117899940824436574310594931055699755983160215321906025491756001154417124822650185053747907624008817619996201033197014434871318583456971342769032489163588395936045436515144095347140141071086277197805976884765691036913855617824975723777040951755160505278766642418149530556713280896577779467556986568511225316331193934769139151405403034819115389973115779814383889758609528361047812283670030711521263936156955539254857001510744190442842401128072367297298951633820480314636929214251283162181205854115710394451961065827822696049324413514639254229382320633070704650838994622380117858994240023226253432718382269669154509576150398837031885587021959679248912031221569710655809716923785459202325298783187509062272292047961782877876655139890845021881404779906227121458701589200727497397822266780007265369868296000418686364003764116528624985383749122479187305847498763324568877096331422149455201610553873385332664362781283209423655054579658335504084478777450195968128924001759631158846603178403852707629097304491736682932462140490804074464814434708486003901360516544404172049174941471660453661828212246977179924597271308986646812327168184683750582673239978679410190357213190619199107088600953698132650711190424482448554866977466742778982079250797374057619543751369851666235683569782558605280193512733458988091814078989723942838898195544266281685460927277641935564188250589212314022962896074686696602593321452752367167755959970185882447871290993111570842961205697752031920913891048203548691470263379960377592415362800553263637598357983711962373395433847642499640333259872892637510179374143581856930327150682202399653512586539123768565696894513687532258826620193051282537905866841870878870624936753531003403514449755588506631105946695261702299812520010275374102989377003427849000288096033484151490110740981636476973055199797276033181729710371827124648311747100591972944082472416549604216309056532401192390174166679241432142237438575531497279220182174780396424913801192784097718154691529793871837160084504477662344046470610806818112276826131718040641585835985126095897658453704263301195025272042842662315909035123184823553792978457515386270014862321881778210270909247093034718639748857340364388375356652752451010208788264434064014145849659074903012117207160907635316691985324618878256945796514264139897020455707993318213076456092847731029461356611423158526763924748379170143571708093420510468618999453867091292551115107310147861483717470954729047918859355060162269448578680273860702770571388202039018837674851182936374328382027352208818456214953375625699205544840192623033263572506624057464157476308365589311459101657460421664509514426387866347645257154384805959370464969400777943946604076925776458323461284864499655291915746371470934639441970480638746919588051850463476769735174514585824369084474934955205182726823134528197363127919984039781581660152191033289870242152792638439884816693525325313842439814296980912847101093571990370678590835906181799216486357486926519439887616564162780817914948375935261003037006653192353839001284730368410128173487962745244167294220309754003263402614866606794464487418926049002300452983706282903126521751499752265668446656173964040808791702778045240578265799263696349116108977403040207176042772017944692774571127491098842219204672775572336291726282452304067920575810649980467088510942514873667424353970261529774991250967218361530749815193905904898145111017117552936876522165719356528836009044317144343642977234248774350458280408404583066297033838102289625962784894659452990335412267315324168526141063584240682504444658577780209864272515712087393019999756589117897692566475137631435036289544714587691771891882334657720798413004353160513384237519754409227548276602285268114066613471372846138991396431112807377239075910141007592518177465355043882228991743911568420343361383060336138583358857383177146844602559911353177143107698281321717450915552301859898013922420389413969803976608819387626190789958582159556971690934372508452414798017105864432328880608368496372065899193273282061598670739357454077095606099259947664402074521071974365122806084880337034644688796127108177238192580496509193072726677214602095856413962335855477295818473107139647871169948458010581512713377241787368771824668511688551770295130648444081682279876411541306274682261839109182788007674622980406511011522841839096197311396886023851200159350153782860130410453143049389903823001930635735658385343149332780148712162937668958036639684528277436107851026249897797337004728689675636102073022677016076110037096868018023210138200269408588978335709714148363159059110209346281123278157734923323693572000058762235467270054754514027513782842695002163687164822624784732633780005234421996880442695947888737587750877927724558718322710126474931536298818605688866684408022030633750733655686659109277681887030116589005309685707361145166948968028012400341002779195613378760285051161021307497489540563847138952382404166691969068976956944299177026845278177363887619683700513599028037818614291185324625347851966555182442548729643010044145515060128439975040859199842232563603267260760811377026152371731866837447701576262931941411361905542755750892811737674392733005956133715167619680269096398156604631323849913783616065609373281143055454124147812376395386052878448794488643977795862625376926647991722148447900940439416197882053069604997752341186943874029170097115277376395446772509519653776939108565664441500112671188849845502615684229674416425249147431420440014102920688101792349017201609271794263571200738849833582411288793340146610310518460787367703856692832514782887271481628756874902882262486655055850990863067529825234490686968979262280996975253252193426016198712450059768423055561419541370055835082481293481870717110499475089990166505611332219863362505706916162937710638207948517738278008107981072352376050329185336371844431244022499570769993877740586274895847096055945680559891115244660934865668962339450432838330053874598819946127882461060890105279161768804452315309752884194458442682920243723169938978850105626615252178490354551228466662612787991046347431413480597830732032742290869770401973399945612566684500573283774491213624587120484871493166860009349042633124901915338309100760799688655864183701302397009817559613762631612511009670654129648220744709856613561087658295600926783009614333038425572285638946638315154308335828692329926527234294943172763970407767629584634976185093352915417463173175393184405715890771434131535256826690632530918916176260418977788632452006490211233814460311730624330588062621849060388703763790321865513063828353093822463490219197288396520759599371552552196695401295203905262809137180354093435159820487507666461917575307881771512649638535237920839086466294243644378522982608276654155939779221224109684571750102392133179097422679575812446850737344276581889946048437782051694656919937876364419150317095431880942410878624353105323429238078648588379391815280033012455062254457881259181558946931500199190785690017473227928089739290938528584931141490425697775464980309952906056631481254784804991880607156204052134516382865094270592806419850450112080164273723274746995661350018916862867306026543851227075672100052992851112528635292447255645376588886640687438214911135211172223041513209070280028815600204754831754501918136348045370165337716050957992476652553060678524354173055640928514778380712158596188949586720586140377959632572561109347124347811511547451773217873625728894223187986095500970087617883906786399759515347451429067634824853719006147860681630139171657872895123382916204746350579986698686196718418505697694608153426999940331062408646575986754205320645746815920898670593033892855759854844336587763037287108450832464576485830236113468181947013197498879746353264324437412537787316647012246653447225622093576030407070179178100119215695881889338547530191820999782901706634148386937024286222603313517625126142525086373377645717806793226108308992373115120811679785553664572762967517819680125804732643593294106321618356729144688428131500029777557887556294369243718318607103183370961415202087801093869217382611157580435835217607927476909542435010496322089902887781878724862983402514010873922948084544297600467390775503135454123523984348587972875122404546097812016966896186609682310715214679436754686683644068076568467526302331185430107008893772748292507614433757560565821599243113429152423509334520235120007304179450512892417639586777258386037519989149821652335280886318267515328986500672615147206793447022306664536316596216651568576026118787587308669701186099157746217247026111146872274848199871698072555574356816294274734792830344529259335254881290214638925316697499842325202896001033572415488344812965544224122018056767553271560750967357284887644625414733616046397156170347161852955365741416434911522059664119051770866082054536233074061675285114506722401538433303184053332570858711576827131980644055984707229220259268812111611819300298783734303987841601404203141639108065786215024239969406671446659427265908623549594126421931583332495292689472221709334113625641651654141902886234535005886221039018627924388943438896362380271324859081820071182957107224793888632817676084535946968483859565432300596284409894567805827961044530270117293481821614297378167374213297269423870975686732516052249356975396913137267517228408535133634541345390935481348638611226350555135798594375489155552068088839883555417413731309045505662571798881382307909424368616914081031634488916885642087623228511589930230595954674385309470333407840674946314912833816771171435087127309760973628910904527396190438550838355612363931640934049037876446802541502397450981649415866223680611517428820246476982734284028888854339099898067474686092369294314387494095040518708695440795645721834216355649620752873436803867986705608396223982774907806498454836656943663787891509492313448434099015680383674086420886306038538466523237085334540241634533165235258915127336056707640946371206366306807858185336501114713337579861679565713362559185139977986265383761622390371042433041265578943582339544361506170995564280881967203368513628574772317660284630564174525444739483980252904042410387992743915437596616885263902530113162394396539885630629936085389269191679575765202543590289273671355303910913319144083370472457815735832549274786210450990012465329655491716380967550525124072037661320559192433400460990690179636974652595699330381199006752431399703040720049984541854582900971565184157941026981927275322419543379542899546379996260529285727722939165087253824799105121164970916559702126459824397134382518005561191444643631572673311786936357634919952842396269134143360381769117392047349309927535234421100434363509237025889764274939943084774246720839101843723233495338689597276400201814323040107476281899363799275303111095271209451437024776014714009102804142272706135355788880733832788361262236875612539938826180592978823009833763747234531207813130176572608683947041829279207757473208551739043454544008450331495731232377481526159883072808197061162944349695709241863660451001742120477663705559045027156812447486851905462527136001160182905542608874727073246695907288607278745094095413275666108793957018760020287615463015420103889076026079804474155944967027366426892239450343256667892142569080328911402018433779079215732033541933170209633125858496338641382716920537605369532576293129109273360432511452983115262434434502922690800389840078302501019182464542878665853023326001758538282112064254314148546288118210446592315408711261413482035086674799879140714945478470818205073809884364979313847103923418865323393865445101751060336994999260077882369030438074338943506749947659712740424036687174462159001725978885568295631054436503706770847520462539027300664284017317048784102440066468118624114270478040839355621521115777464956934418081933094079117049146394574189658622876725305358133451108787527591158407245825567865047657733183375339188749895319391063805086475394791755071804758191875990452796584240112670855128834037680674411013259032040523065471626143922753398119057381462456701226035051083459525049307576189845804861237979022820307299652391189110509668245429525650810264192381612935019151212743977811311009373869702335472815213744360364368336975658338119358714832114948988862438243610309872571939709228073570797734492058594606454056786956628029704937165064583701730692559536852558010167682187950287850484907221146548127847536762376987382525905872123760888983937816462838104105956747873964779566818077614120846837039186262211544694929668188065367224773285094624398579319270587877580904558887613142364876028619219516675061514131560445896431132458724668199300728945824536540060712015388242174234561689301122017133486916470047306058553143892766568558273233803499387071257101404657271862244212862983876765822049744260154941595333275687448632520850301014717596108685216856210974200540861960545489277398329854403041016273417268693085363880704260681750167532759615560688798820711504965192048312574731277235796365511973115479655401505717047070518982254905637229801158540264520788052230950346141765185127130443845010238276114282028204648554505958428231043302507617147515555812087905403991983128513750474239168026329363534329722911393251408373547316355035167720892454864595196830338571949807568666238753907465045683262811565269319022162545749322098718242262662054341982845031303259307553570846505058341029683747871884156516588809033041667317488947421389980517447107455725182043541815533342272744510845173382446811148027513187330792799858358959072580537700404645418728526966737457308297063068479825542789505679243762579366487145073106906028812847029653973803263743197047048059686917326600565431716406789288846207659280414866608333559161741686975345830903852343476535900804130126471430232173287589201512404343994047095540926884241829570238216567363587373194448511665222304263834001278624258398821838632153077696730842614504432638482641393413419738146476116777983826015291107433601453575137452274503055102958920327184300376870180690077643357400568486720682501968423431953822360593225783718755919555423151954275524724891770682207711227067042377497659878812276842369258637754642342295503820339576796897001065887268159424018680168538436728531136096641021753421738758977679209321295542312091891401183012073916948129880651559620101542821920321136377518294380094523295679336547997784196295232693124022666906048546596788697709684351702131598396359770246697414683988084880584340422131442726613428487236412083823456107430998315200712286687091616069101670312611343662319072344649402582080453176598748989600832838870653390322469347694657539669676762176994194962392251055708944467960255396283588627121010443576690388740839875201246970855264574624206648898635559127003567852933750266158533382740585408643445908056574600333372148375452552246668062324803098726697280936025096412509914226768741046981978898303157786897183247143964625872244908089741596441863612872828645412510503249523016409119207447149332519537907642333886587679578089801186942714898435511240911270441799254709869711296743393229053418513756456327516246917504015975241375808387315360555595087007029739221591313002865831447023455933616598797274930008910886208425220873095327159751722132655969777748543476417209860197073747113116613283700028072457060343098773169186412538450061135820947287314302730459017856121462716052540919508226465280995890057919400949844929946559467086681295917796569247059429676811081253139906731565105137330436365958752140417648559703618576871244883656055460466032540714441805990470691325270914069081393225688405231035227028236120611609562725079745146788734607849476579496192866607612778176342013980718980636947321236879435202547831670588713421519571510255034138814643173881002524267564769235535257247959724523387200942254594247138162046366809696760237159791426042583057504164619282569083457672014721159500522368944762856688032693008059066797028602454510863422788323904363245060249923595751432738001897320685760059189042250832723131901064094184313711230142878871160028696960486367555982702034927317569366294265262983690481541244665670813921954046116556622680103794266773118721180525423648437937125885576899397990022441297886097601328209792182528864252002224070451750284930794471630711551761046465077164240648626427590111969287635189201734766487632432296824160583892073704625364724016835866803709952615868867705245398506483803325667649814929029291394531057574530815299368355344916113310706250500335482577958670686365109338414149055080553050873732583803486189879081642065198474196714938976586757761143527054680230024473298789377947163881765690338182692933024752554477870766856611014398418444043452645524017738973521974746417448487810910280889093159332730151092112462557096282547347656380870079059778865108575529506209500665043042897431771520384903118748204785688065635675158719345136302932765894183384290297193055300864721144146189377067203111729183277065759291199008733935053766746543678568153330709773592426352456164700265952593935199480437304504371163130787913494758961680142498827570106338304326073031016439596723573501175457063149682490694504248334333164650581716383268622545647369044839514544239470049605157451223655556422503578798537058804666763989102391583933258220908537617125863032614212009862299784791300235287963302231083240936634939134428637411577821039659286654491907593949707705012065015037464964740161183972520690599846344041166931948357399565485455224524024819162461371212998499481481751320335477635493713590243794485988362388694143896884871005532296325541678825783683835343993245676560561841309834677613260043389169715241887833734786298379583696758536153694273848146275540363187195341864459404304954293001324727509078653558766114417794436922415698579092329431141280428756443679322968226882103633348737526520380331705515426681230455725661082302200595867737052742143904825135804190281553348136451545686988461226639489946007466882772024256034578335197399639365031142222773296038913101345099302374229238210010446168098787174270697558872749543870933563913650098406484526466435534480698487052395193117241486158405772567936737468933865440726024041684826612162220238134198446248618801528852058159065464390023640925801215420273299804091570087848333313599607737438044753894128913858117271280774669531437182227092233541287033840450555903146794666564266935448216673258900334278978134722554706758473102592371646305223596728912458227233110459263259345513604581058127595532783643623606624959664921837790626241694482169686631950915944396409487036319752252559324014349086202628026127739625742149773417308575040592310394133486792721998172535612420480189304260975874008108984592197954497000905125806295457588783659873958474412886053547409653028475973531697118581613181415984412465647453088985491957658022994946457245009477294386889838544129958094782050356621839978922647586353374201100777908130813191549308743273378115532692135131393205517225970317301431413483454434068868679155978048441227207263248750168776083015582454849050546891036658453799893548772354029588211680275991158489026606250370105219522059309964371863301035457548521581015259134727995576372349476296615066440455473820609930872172239797374468190134999597451963539458694118125684985959463685695136799957838019071374791972646286704734122573256908084299701321273997349023377642008037658386393918224510114398833852184693495598734136943491527779117525217664067993156643042865200525643998712656114279356756926857745988068517966770969596707216501392406482890295556294584939292691670967216616327535195482228313875022539479281467338107857699221351827454418831806364314294600504403392602297751949650070802434303947064559455692472604443824410004469791684619279770385688473901956328320970800156756835910601698332186922365150560422745934293616739229485712671265040160037882120196217935473473724728174795703127776034082393466955716675674757101462379972412157509374253676012519536014310422012746037285689725438391544508217026895965417753244644539621466559478255709232039565070454260319462876638536813803697817619477275851067869184246451642053226179955858587329175167013328398535482775871689358470394531189577469144398171758259027852518488305683743660521681784664599597741298021571197057208441146013993930556390703101402258029880013397693070353316279701112961896722212411912319723624721554287558510824918458387189191365974991938101222109854711531375119999055910491979253671950413230488822351500726714763727549958453957292442729980313999435003904267325296238782515893977729763949079956770559387398299178270785778390734459886432923799978619358606882691086347100364205955130585704469049175429878841688660463087238110151745768250543911739226964475893760000961167752525677584325665855753929703889444206074974022817542635167202136872092979411040987576971874151548962740982875158610121374364777953631378531915382862627914466981815643060122335909443740860113645091182346343923213348520887926610725099069597674835824070742475508314515122230086429705222382484224201290256847041321719087985772612899385782514704814683979185410348185299815029383887272574495222204992715452595363737503039080465272693560746544490112154028656951286190146761015656498024407375896498152239534138969087631450044999837313746785721992822241101215742916962390228368431012872800063445589496669597525410610686591441719496825871378720329277419149539378949616001359775587652183922360469679934973640206704120379839201837289210523067838374333986225724826252868683271928362461598949980247370336464949949696105443592497460146618216655041131327190275318003677341461966276394481524369836626464681131506455188844013706073036159159531203295927154665435713095108469789379395903404359524922899075682105427479315151178214233200181202582151408348170366803572725469266896769667113554516069015576971523305582364733053198145180351605022743886228162807748880971295345160967267236653625936238416442676653710413110896705209715947557646444017922911687393575350276747539811064349264093548267044192123080430209337792737854164275224964809322180732023953196382621565586446050313049486363456747427487592663366225477697487844344862554278985172135963554731463735021632067247946780747247958256681045712499841839153399820866435273395198809107610529328704805868334599917178655287029921721968585806375061520970835769424690464035526422853911778872510911494347984980156542227675192764554795065495782811431366390957614962305473210249988693382989302606857379463660281086726763702883336093781512584434083482398507386721588749345689096441470304503525357173590090501807116245802371575850488144712834994699092609502054565093577235232563601826494433472449224162867129707345474617284153911710096769072726605085824213968552733644854047013411193214831229017222255958734416664155064193370416044771053684194435124405450435547100456385418924182873315348089437573384284318212401195985369758100735990446893875365120379598452112468566870347023491795709237805867838457992791635198415317504545932625891119644448825312389735190177733187773878962863230518635718546537623231729361278365206647920289722245713819659632511285651460343955597939065685368825097412515217114736331643243042727129161854681928384269272115671283146612318564810460048969735229598656372150603297737997920772162573980260128134745891185319851541412552199848899081575924258600459344119615690454060624382042734528181761576839110813689199563329077443367698834488463308295971149011651635626188352572187533244850383065413511728123103356153489874082391894721784658053373651688446105047383169963089746501514919383122240796822383127442849187986041118079782539418037200083247565056359565919480281488819613111272969589918353811827614573039945432494379951845171409205017191384491543633714110360731332347547341306115673387013994692658879490736553021322353565339690590389927867504407741698002607884331848295817641547996327249973916225525558823833418678887430865298498819082822964271131131591749452635563410110056462399497889893435660948989613432583879100457470448079618196290105645733729039518663568479114832336125284929579723747370613656044197436666170908684729255775445897679361839796512291241737448706865541382933193399932125007244131235183367768222666013559922576193652852068991934288077223514147682340150212695204068357322634624057638577693773869817967796721508128588512145271948449745079842242167310072062130493729908736902582572512018923916812166631663888265358189930630941573295658537933183712556038578735032255333316056569093556892824410744773616083083769180389718595361155228492640790729054738909084349324713348170916524609685524732739431795671242886439089794395468235366100761750641982858393968562858750704512255963651707196952759225219997849798662168504867042783354556161022213336783270144453320377166436733656976102839726741716932537965645882079316921062372012990477702998712131060543676920544745264193680564891860599946868749957427924320275242498853675767759902459173130346821410214028775933793730840931451105373042570279340862862221390808022849192119560959062686733586440500072266418800670428464421564808834219132047398915879152477349098660514321141262646232784237354144549198075308876373884021870446166648598952429079473628599646186318923110739745850529972875596239164825185646405578964323354603748520152361051027709373976924827070733987897198164036191272012868600939707170611475732224649568228597026447889370862154642503511442226004661492793072681574256455590863977049123146981892942480906097014195425383140058005280011269125216916132240777116368722996489906513105697856774136847368521401382715914801349701500520093704484233926058370591842016971062143923707782442330583685055808755268820025560233583531895079575675981160699150199436800334488741500719452992919328235592576722907674001992503284103315213717883812904512910380722283628309385652523190931708222940755552955066394381775347312041852884463251162455770437950225977287176624156273419338267718483135759243778682429218432299163134903923120879189893001487746278816365643729533313357627202000102466788175546065749636058531825917807075520075750013698912009904327676090539981775092917133575993282983571228819772864310662225832019223011050607292002415264983051035371964731783145292281202015986393054428205101305721287092155188460400369057286202910249091097304774825210192990029709345550988014526971029455203666545013840997766628404583499864454177323576816061473049012219119045656974081926676174957718840097265888887841433493800648929193638906040299461765007902740782256581584860602674052242673667938430247114364439085050100867306297468862403256910919846272914879020151996149976689984288939162330015063508656997049419939007533353340165875300225539249918529703821237641785335079735302101432355545572166942768807925703126176308537231138088839268180061130699613292578352894633095351709983355014297987543413940167409897207864653847244408132026853510148113981626780391585335052686059558230111135188795593535011677518089066885422276468850588151330846645676731050503829422744433699289088627432955274484338205300388649063777830416672437877576544544990428952942074759207922699621568407622414112499978410036806614667954194835632869664657596034876368584457379453334924316285345501479685262108620571197227549722627266249967508744686336660239136344020853707844813346804088012708500212611639761846182445550038521014501839694724411933524971087280055393512340981654295430272149777123023208974802545408641093645359754835431305234168510026515776811418600769781473718947809513040082155070968910830517186283110574844076031338020882004076305856139094801299256337391218560203749291172904308307634550625698279071201235791938836672762396573316500256575194683863225897480151052069888145286629787854036462532870517964296520674074859186493889298248552914260812260944100858515258004664592981663429880901963007887960633571267664702383372440095542979230793570537647660676460604217377761894859826153917754393389105253877387910189910890790662457369452678736141872213979179749602724203267487994715647451550969509605380676924034472254604544023916116383676453849120676373361869844966447025502205171954264093323654468605843802537064526711487158734603883004476758730611932460410718433192454622789474327840361431377978665807663100788147722950193122785581601744144552677693733206069628700828256088305267526527985140644462557371097633073450231978818753824939581582136756627820527620305367205513515443537937020324141833247521082914590809855826205135981596527876822741226558858515472629882202663536024753540185895217628833193004986885871917256246038707791542235210228244012954670501418457379967590631062000521872031761658826770915222194758533755731659829231924348454858838421210639540461406153528501444013424937657940106651019913463375297364692407629973951072303405085352445175298270436855021731714365324113736085107506047814881464661561390306380636599328263403808765164007323318173584929214791635275773576531367301207053683208535876440522569253942321799022264525316109237653502649599621178841243046898471238878603980462008362328467087489380649455903915929805606723672681958267580537596203316663869092208352034952749675512528498726571936942404913281749383139401194519168285650053385636671104526856717799070979707780185802643943934456073679423851258518661560754521659870913319468834390431667783726914067270367900810471269067211873422192674485567840519212386549109092969166372535784965369530154356965667394151305274500317361540185891153764976406553575815061522819623881526599830137390451449002347402683211441828921081805041852648190802879872596054636099308593305179575847898848388997863737779521694138638193717896977133221024035313611611633825406474745167440436802654059452193938690615911761538219114228648445379786417880138720185522987427084283557149543541303062225123400080701243683919664199703686123459805720991228925434175101233736253664527282350700171545904515378845360135554565196009456328131875357846663510199427594007490507710030411941899868199396112380379221673229374608229797404186765469305826397858050194553993734074342148744879735776590130871884068220901556880772305951232303735613558744347964955257018987175164211543645698789755345474151047193102818689861692534602237211745404292490335332268380225540081184847142466049958020610275537060354479406664638919009884606487617707218589424564899798544668478308377285196084694761340054250892421588099554298205660576567680818642272736444980121656221405754299040349883944257425926622556898990508552480699866282739705573948777160718512783237956324305091531949445605859208435724885644711406463248630425094259971022979022763889166975945433410961221314286183634685216044835055230145288403681853181141461818483386832234177386043598221932920341135946916839179863986313899387007216796816812107318154214753908918770413042331537047111852085275172737250448565918137172024201043163598256885773812681034693299560482529846803482405062915729642805527673919495002825314411695215252843335684819706477379939263784062109176489822297751342565713735498503205395264221708004856851397649900665903153462080089443741360962049592557511179536226942499755811106634335248218310889498683487064299755435151179729180732677884603347241899368755973238379182999793835079428490313035635957275782689244401773771220102113592142411341837932330829952859466363401881600820142841322309700011384246458377603233254954499711451121266891670983279289981989572373897695706628091768133530317180531191775598978196746317905949026974923682057663497407070058529173889658532999410359194154742222513033653054194315963779834899222476941600768568428621026502048906832130952014842830343793845506194688285911732651285075942225427238388718076511557514696367325543700343152692729129404186837595991943802939515585529631524296473266734644833738272423697647832981860916001515847851877297957613212072765670326138358644209963936063678854435858986287043156562664950065688516637845281177218922491649244909001386005473527624008546421262171544121529019002420146425884098105373352417629205172493063591955032302999560710214693124775193639195542924606588622708628008122040870792807293941105487062084048800945268954498964840118752062465728082081572025447136796628757294629724279232053411519135020779782487072775434627802914790241177097149023519643943401953210683100761564037497525617471748734623428830985962992499106955097733109335971445840166651402490882441131816262661639444838539622459735267182745815912450073806438968561416961525559778059097111318510231201108435738915315269952962154224271885637291757585779756465461625372059912899250260802822891724578489129620897495836814504065119264212562088780367701450287115980024752179983460557583846991330568115807409083666093246674433374429325619459232460430392385559814104281769520379966139965403232387832464673336977855420013114689416908944586819721938467318301545105051404992286993316446069747796444727717845334953656190113088929961056673935240191040365235995262157849301592152922795300095738667782930577811657014556482891027758388114751651319325031098331987071559437620622154674410049105812342785721664367578727002155213154198304488704796857500087659798348337003417240194404979120277907119690320573017758029470737044416439118343176039637654014282353907286479047225762139092185138402666129644173988851607522311232106973061046621796673654358372517064424546240636185852273670045885083334478561134076121158026008321780435051358000163355100218605586660897261361607963315707034068369637979725163594295416268963767110206270239959039092780642666173032426040584763518860280504874891851960938892615933605610316344449561737932589855660443240358913112642357848372367007870501054241094304713315314837610206850260274392809286290837419303609122290111096048481101748705041587023116826179152054490951391894021012152299599300588608461673331832546995609419437967312317713055174031494625300237711234883927840206303304625022346026620457066344555364978347086507801753793344320574272096946058908499688487906577736339336940458092751713514561416011237870096181938376232884167315754379845165200392353972985909928297005417866062859561344326804611811312153600482091995814265311749485209715983126991050479727369664998526842243136681859327258975602725941359222586281458664487421088599743162551189210201160027116281574881435598588613340177062821121133038286206208512610738863455180998896692615463165278398695295805732230646809437916465974617068763441717213238038058135421273417205486800794462427440994225591537135513505043141695757231968094250477686717483255284688967546818136663566392046267267906238288365085453706720534389479115148561598448817924012564086592969569869785120212851006447096367547612845137071285987835997956015888735472530486460373767377879644569092626181181080103055600765794362453121889690051158763344044721122572660288456841104978883902714392771756366673590519396394342829792245895103546904866096918212759956372854979182916331080627549898768697432287750755255181981115218574208940809790435639537921191134398594891270684561116122111546113123225024537427305869749949172762705785959326839759780784453756144680048548449848698714044600149740477384797139148997012483657485400237221419337790031254610817308284924939317564704900448371979383066266413482951252871472337312021194771393685304778719834853037024301842501163346925778287530714688461191626235893923401369234576653234212174356075290280819138823277838430782780461845169783417678191494719779697791570601316182065047654898481064077150608564820249560663174797434847216349223410430400461380628406650662552187934572761429499296318256958564661829616084377392149517717013240369122361179382125624579968723176785394427770511516918018579959953758589053359592745634192473191233521344657176740638259306737294167870981147100003307710356807109872768430615943510690162810265596921232363959096296489286747865016737857241404638737868026409063329989408577072449609887701329751898356216161465786933258621816997660065046922094066487466001288268822414593294289322691870586700157492431888238317360151162637316296476301398029213793524416871349458243138966814805408172070014648488269018640145719326936430825868349250394118583659113660346134391319714993922215574583837865979705336930620610979546414849519829267540037890323127806357131354057603431829469570174057967599520349002758200741291962072343008760687618171937270395069064985265357689884532804112876766103349490813102082324484665497091349354377479416970882200293153013892606363134474257554871552834356006654867425517716278177368887439784375727497931635724853659148687500178641044948455846555366550019515024681097107921002414382139447400096290166908144103342773601226502633006587624614801622915576546387298938963803188260149375369099580523402423912203261578418514703781158058595687249907820361050028460201301616283156419050049096622575114540622383703275531945002873861404782608167607882118668122679748695760639285637574410501844688616721776026098189953890257253312241594659164688326028868667532122119827367527933562382561812849873274985960947614119172238994721025286353567278924873932818050122818878200786811095243219700544211677214952845674568508254479185028510300839221860418542490707087999931193852298866297466919123783257511787189054202620930384417804962669937970039030519512944046126033956024698602752301219355581747439124427606524203139145634166476079128726613338025091037335211491341932997643708865829862323977002291387900326183576212196906658228604120096292002821492667305542779660756099365312875746992340192831051954710184046109536071236290723033014175865507301354523870198598784447134597697242752018881633839013027776193380896447300556145290824138275553885319014562536520237219261367947447893917318420847424234262295849359288524714202824808179456760648032402460572665254326377835220075056006194874853516928300801368916806724264792659682384341035565354782540703801943169757167761179643258813596310516570565917161968720035040766461065021375343076621863383233830904524096422997025846026515815563928152408429154315161240130592398478187759709152550332782332184891684822787030354270706812352654044509207210924561487424875180982263336199450784359581665251594403355513878738634202872916686047898190144580402169018603245731362510645421086931775198807425160266377134076999566888878976676729565236487003085998496304414514706018459280068819063162651045170875623465800102485954524015355861336924935034514385999723576473501332919038569285446979036956628179426621239450321948540478621802724700746891380224200198707106406515784390197529965469782017332280201399063922671680350554630787209930514907084650904307613602580970505642160131913015157721681693266940502501489757631479484641703721558365033216917360516360605962159702282114615531083508616446893609530109570368696455730381335132757615064816199793608342051970775182450277296205235805381368198803923903331394970246675173606640734163370249854727613108553276563488531507002908155670547206052608715988970772029598253163399918782441133187659203618767196038396664794058452719690433397528345541004785001433380501478165455709161895422593500336757364557007889329650344232458309142038308386896599860265504897208904242031867313414604173747107491838150443379267427328120678469385355452319236454134748851627787230315017156356967691015052937802443394589932339915775309016702930461222102249186375178935542273655492648507104129173935529726532586234924053275901733610545346779429071711481674975683039166131862959575976960502167709056734593847879091479365214875870381188511859247902555632891033988683690197773096239196384235455553089187563546593215741729781891572428054336778156221412382370822988905462521442805504270228994124664534449565608081181649097821063331539816072060549317587543091140540305882222720974348468436149608146338816458273656913874398203843972686863729658465952607957582513489963124353782408268142611247859125652259992016238832348529438632311457928402443232431533391746753930006813787874171667599824388575458866646457425925987901457843592173209518546809331699119371715716272035063088545131003979855613071200632171370043108786171501269433696078730845161547852301707756622174370840222225446389253458284691356004841401508984875975906929046569807600607800383689484411580844132273295163595325944806481948255325404345376585209512727996331290615361498640344734018326061353459840901153825854214895733584696737888163022767674566373229148862372608528802820524990972105286807747411252453495480504386404726926950590559671334662464395442797417256328008147871307422399539971938497376780162456631464701092704250568742679356919119397315018348478386647667481885041225773888866107504703296798562683756746281793355878850687378368947138947541601183610670424045913383207904981426667654198451168620536189295980067281212419207121609554012856744384612759614676264504363756499421841870873769028537744574745630049953218859442932388538608031675985150256606836874871806527800265005504889972289543152384296167216735422185548922591833356445350259134872028700943904555571643040356463422253983841300789213634642071237673819378775207382308473694973138058325382958493802070004780528742074431742874576327049452164375025382552735788481311289846035517134107493281265557939326414528461105441207129196328613522649555204205260989399220038909456950151809614613517204749464403557313521840925343337437147082268714409680904869485382412556484531254950549749999836513981289186759443409892210135229806426757022523489040400242939305788988993229997031693751372792829753987408677086814979586226480230196355274894238390384180407787656426236350427628349618674949681519602526104230926330514473796079200701571238850541270452691390490416653296918432498856237425522655136450321418500269777026717119844558480892200730268090335565009199792726656480108644944748416829673587811273167360415527582152911927310208287149945193234672845591472343588787653084043133293546259912259184932601356072916581369419135046500487724097217442945020084418911129788278451538756913637785033432282435315205670117034646528989285129474548937878379524672693272711753556846744909299147352781675817662341085882651084982060200665760628141243553557352624046393334236438145814051583842693300537595094339996216849621136574297877986222093990886388994338904837281321605692874338768304895098312319651101976163883840674931232538914826995520504545134479385977460861869029565530500209621599425506518817494108018204725110273662604979978743519779065326091408114982072006393539836240996272729125447992170668494211297142356643877588684739859935216000574432449234262312969765118332809551626077394368322348650864914552340182098086973039769189187362085776389044139412082083207677236989608542018562044737620160878536832348669408334514189855231588124686789958595537233580106045581408727999161933661164382204989539335290362552089881122663421185460205364659690124476363030115854322434989189315946266106605165788171691422582795584367892422599913470762055862366107153523205190140596560653923974113450670606817939261291636516339729263722598843342720000104769097519927249835256569738630845587195439071280961496516554556377288374702928482373439982571410320294861767579082836832070200136594452438681358075150828276323804619246821694715948178982913439933971325221432858084509835533681616530359287566348255723750116741120613729150169698860221534568339218530479372257521195113405039792520024308133959127909263416899612912943807957701503631538957997708215974734652760148547162903595433068007437165116409894350076162012462926097776078253487932291543680140801015577785491794577282032868077427324006801377412999264714505820723081848558674737163414216358295211795607302685029649358901780848497979475022212041210655584678533286323032731951796887746061763458309387691217862826745494237496839623686758080431533261596964721762460431076594668705529603852739845306766115759958686451943198022845318219573977808509740476741742277519480346457089669989701648664497841358698794416205199467475550689109886441955797439947832863472068541598280022191808172540907268066911823407582529896644826657935962628614794365457667042502089411378447106660933695474422826993570537183944728604722949262014952037004713196831832324522140789492312247384444803193253876675347763988283810837493730581612547320391242073563324091840789760476327585485899456220192603110909124589948098742832555049793158131666883536182358784373373823406638173948348234834422389131013877883660407741299501446546770059641909269566991253831975713647854878247021717887012141242315055002635650567727100525184057645597551101157404702582460323909423915116376581825537549509740106266405340836190601103306068148720871814584932055571380232164547604330272489843613552329826466427849745484418876717748317961831027781277325872485230798118428591440209889539626890945028593361471026997582642118859352278200172364423020223827052979218668960618017821503194693104724704006902316011806588074833095709158500782658118786078193423019214164136442272152890732737042231008129271925825517573775026959245995711222628449782190773566565357735818289352360376443107437708810993749422197949653945224105872158348393937788396925739896955794141101763699485300849311052228081514485537187410616937282988055933158703680132527469792151048044639486468001601267622471186289430940300337536592397810099861507711118798409080412028530858975174053438607707825236861943560074243217228712719657544526906073598112636673413487340467071736679866871184374841040099159792439608946672903523881633531861829522918381383963414989627420612799272141368004813729733514392477949513631180752171366392263094749538272364299164302848727362312517347900711925234833872350457709829962357009672420164158581414340399899572087629867884000435370925132881156402147570031203774241210022245313612979281475802921123950417049590688480160396304453483867589910679664722108127261477190780615267268547177667972153534987854380503932444893092615999310658826344632915608013397806528839601341614572897899756269379866761131118255486752907857844038665998484714728779078693282557268871090234886646429361061359316898145082778899285010477007281856535009073198546991448611068692048564423333795648701252672354951491287117593085572554301359598681805669716040634614364495435423992156993237936634966210487546722881209757243985419638059634491758461415741799441085228428848165400611343348087783443496611408273346775063572615952467718478683572228587301122669028040396068303945975541715428826272229790034262036532909092408100866795765750053143985621088858610413032760477136707936746904304626137853192189845750619647596265605549459546476520319139304642179609211590114078925717779702844511422226029796875898581973492740214704330068622699009555239032169322155891511399342203990937375889092673926190739914526665344356622901334714713466173060609524090069938378646420925198332681445837062062094414294944077936590194289994419228995199815255826430332886149799971691390984465403164944971088665035944318579587998704026215937625606782699652905890534001090968573110784894695820032901138684744830903716034630610373484924893722632739418454371871404414336451144478035821864167880033261216973673084567471204953494874196312267278669101819919726604364116001822454418932955791713479127031046403874943514598884990774798088200770506476886839665916805728089691817914174494228330162091901703941445551322650724330352085266517297701791085780788807423535280684260245873696384235118779064526014144077282517031500242415042532603792260017600135376313899170246284352922652638568793041884227737031704611945101926003474009668265095452526540232348258345745070407086386620307609522059548099143859604670696126790830600313820679027126534719730329132380306832145302040459467840318198759196945392212765098606997163433823795405771995291746740485789288380086163153707571750503897626513782685236180128245181208593562695451734078680684999136386838415442906391594129364440677911794641050925203771723445529523266930025559044844963276714005696838817068211912402197720087813223304271777594073462473120713291340192006612889850270081405493687594518558894296002349378106884847410635512977573200152186291356821756295490451922508068149411286846550311956962977398779662106513719966776213887252761777964830601124575934151127504882235100549867316285362449932745233518444487401265008613286999762207265731815426310404556312004046893300048037626842120071410379862776561359977770332747325769949338961114345423448002216860140222729271798906485947226348374633548261500279896592476622374806890268832879436074576755671965135056203771601204973327625098076491467150281064160983765818237755723642395247812530228893535575456655391263391643404744299636059630051603453680584831236160983957825542177698992952826670216256206429575791124132670579709602604011739958999376125794244280937694208071255398972845333300502104548768865358548529889460710124132319620458734692882291589135971339624870906446642983787215284382422557922794341670694457051245548332044155537729642884313248915814900613918838323582015955101236185134476864138100666135010033855068719918196894854608963293234852034320461369308491074194363002423375943979318872605531596169305470403088929778740381373507311823947888001069952967910671550171002753879663142231843709507809695239115166756380873828985191447149754931777233698850531715037116778394256162866392534900214028690119374853536398137877656614555550314840134572775042441168211521236880054047837195291239642685470377944352672490318014722796451201235041084410718515999018322350265834175183913239359147907291008462577269316838427829321649990481464952533302892171995957755092200133420704995129772028949349789241842659188497953884712198860085022019981210000462724992578167278096947732373028395731954671928759669863704126080945819740278851138408129920666946834013790917391062058390294998618629489534632416964384487412771345711549254104025255559633198903257593830943058095987014904706856698464684659710171942382759046664245183135834631293470838414220595965597957284006467792257943345018042069124208458535455026075119727575708249596376624893676629627480297692289155542151776659796843496179695082350139049151413889293732127992839405871104465373410442796640473436923351424337250787594664462316527136934142953463022711877095562391056263564445630075666901309677237660302383948277002830850662105759624571974844030151017267690559988860373928840968242006529102739018456925812154526957047228177010745226957506325520390010044247799972428670227053754921386207577931132165654738078340089974632600221883223030574881668524853350723458906640010248874754696837712507208183301712249403217416545587058275872865344547049850264822985536736257881050613825224789284657824133811359961321786661410059516087122836103768114773821428873273444585171607538563387962496314304444708398998194540811696414336129639670928589039159963663264408834055358111660595213810279574088643386730029491022315501237709390258362587339103552965874740018304323995996060143543423613620702235443304464265787337716140725379973798299115384177100190291451733348725451000664107975938500249401284381244302909936778208867681276662478538801401980052736802310462209238819048642150996232915713902889225411876234068374814268624033741082613762640570054468992827600916172451247321209736611681401960104539835330437132738524221005478927138256747652848271553912881130567140831099930888307769034836322945033742004383196135534048020898115839397890624418785978670713764828374448244692631340618810529150400579840669160666620078587154030427262638758875287649647962630711625998473836926266171949714009106635270583513918527562235729646703440422951650739369092383006498520332237552745685083567736953266233654565558789746441772288524664988580351197592230178622422351395056165940937500357115362715702501492859180853057571759194084765952845977550182417320023893246858031739973933948157391155479616579033052723065255871045233212200544153036062196666423713116793165471423516713739064003435465533252161195752063251436922023699736122053896441237010247240254414635323497250210012592274998575844894704960343614735608066655251648494452157118566497147027819267356380400343430531486094108766340229604553296555974962311417428565544667317135562783842073706439561043696993099076189184948410650528704406189774052590126224742986369623082217848645214464766668666419286658951573005282184661936769022893659821130464423580412819829434839546083481838180324923326589668778907710880948798931812677358014749263581907757376079612294597859684427406058876921240674067941133221693188067623974680516308787187084893505190880380504543813074261665937903757846191832477061441895040478067489522019270679593275819459905697328232909684773651012750261437537800585648548260251581526366878936960107660179364174955693277210958618763122462387279076732222451872212494490390568941988920892768320185020896962004664008975165200612109188627863781585180577641256184487221474536829472399174432293627027594610625648758856396703628261012547867908859619287561515545735303291238633870855948415528857267598865752122695060212186167470242945118418205600747189620434862254791617759420725432490765116512115717057584653598758675467363261910572779033817772590782110039172600734752246796397295805362277442188412119002512962624349096175707237619969080769609761015521504997531019187254005548956449673482489148823860786992989858512160975028130349006437232415020450005236652190571926739387534003250619024834249368403394956283992469526041019127764774034583889672651110541155810833192202477952230346936786722149589430764060416761499341412457751737929697862637782943224389489047657074247500054011507020380113098693102631152407174077607932071301917694659979149271603049560640350034029467364326697208449682997685936470644846147118908197787397003603451928274296948425769648814592277637931785804777974948207963047400587264862752355391849837412256264918896032210641343400516142939887966517131076834683668833115975102023263685942622215430953764563195560094040706757244369366909666325426431651279095313583332583715672096759168633331903131894390176382693694597643186925701339743148781073466091862797799891067520969803244712295510835745840269039988801778168964443140391864758805165378776472978741473810698264797205982731612460417103344050462236598865375421370469439928756331182696052349324003384773639958079457423901374310000945897670418454335891221634503458296692548119003732307886354719862218710412447489711593488042608032463788242089253943246724594701149717669965351712454770819533605088246899874473366616122043301693334242401232030705027198037557838945127748784649414605849649071947024204826113590944128230956778917622531561849417689889520370714368445727833891897179806812366396356665499562371637561989619994452204573856600826736524041861867121866078780345914630443722929307082831025402704311259601268656616903133217013286778793990860412465790694505995964980802758999128282314369419100706094333550845454031129301671380820825685747978830325670431288438185865470894703885980025404135181671861085000813842606451350639161362672058404517605736067413856492733157678496289259051694545790572885842608435980066126089674415150541207853759648395905499984723125838314106203003770302686686688268597034560680646607137510935559476080497315509864955805659471055525063428246753978980404092630225980608524608440806324473079583199913834919325795321587066128273850761513492495524571371842286131039843881154868239004949243329746380384510321702385061036562182786417387153080195788768330573651165510122061296754647509864251894758049733962232690296179370707232836661693282207245422333151629979036457933608085058035640883901106763440262080483275320533483097612247348116257019559715343615980923416388042400397063105331468329758581633372930654847746016847232703954710103367431109303036828176212935552289892818697928273815497434195573720254607837382208014762565144012265808453912851784391169734202671626435512102334799510208571992976661940501665621177438918584537979959485074020431673346502542814745517981670824036209447350479922885068848737098988915079974241887173863483559192908802263876128141480783617431693989724978409563476570324336180718033031442839216459189466170797222212791756971438271297836038591486212218298974347174223079866405044630846071102767911214393423509133484711001816537117239457917248476570434872331186259127070391489847734509822990233906830767496968343446302998573713211900028120821932422943160659270838203665120195187444062746237819535534938906695525430139804023430771530211233814511061393097927802290364934223337154366816213699999996292512657283408891261778994464418686959022918548429509792847397828729376683040868300487281865408652278649900630041640045652965411626317564670853791059945266649471305899215864062126153659819586833286862401875863805934992418174562034484590556026957789506316253379522465274735948666065072138424301925577242815209370090824515338490880452049332893516269672061147341109772343681717934448188452964911886103167583622659081765796558207801763881411969108366980763533128974234861411572212189191961633486898926591840042232091548501787921204413570298037252143514534697120578779243686664265062621282941180316334692724893713190073900852341630669513274407003959790659260972305360054174625325765801440140081375344663992690033552182639346680960882739635901025062362165788186422379965893916522945132984902181353522492866499531105411851248950831458890979523654644269153966774524385785184822474235196590789225772267850471756737484233043690322783592308411703259854337548415807845398525156129073934473612924765417308370684177540868263841478177912607844775490000610823793940721567549473360151143651759361448011672472399605501281883377785821894965593490061241370513023043779658587291313158338173783611609192262913570080186706278924602762142360194695410555354460847146945578183520953218159873032765708119417473520576050029792964381813607280393338831979407455319194448907869128387550383002586064243766445201642516268036702630470312813386647077730384333992035584797755107476926808715115542197715968403554136388536240650208109878969555600250738954800730142767182460741816889544081530402308556156771094585342128609444121711115463964634568679684749249605486161515778743260678439403736277386967198548306038382652017915841301412227475312984179298679413364367448690428266891624455306459286206741418670949385008791906313087680609566326549562022941082986587004965128022602820478857339867140836119821235698166352131275317699551910948351142353745299597875296494294277807116368645846639515894186947312984637398902304357288969975818967392331084099438061115219151176781523639884172857571140934406461607926975011995535909979695896919524385418115131173988903523209430694650652227609388065231390342573067302519065699169827474039916809860919101340579483101400197753232671448390589775768944975525517765738138258139918911584290805271350743424761217840157123075780144715869014296716363946279323006935583586363202423317571785823708590026271996298507365205068328244476429714184343209913624280244582152992393534856965742062229044761436114256258761535149355664606453808493765124997774605888075227659821627032357783993386109091736310747934567398056814386555934422420868982734308844715365418459073019462125830983119817722297250327216778005761369147270630411987659895606472900694277253277160661362145830404299183437394927320177592515614984374343535671523085623325749224898022641306307902313988510688350393982556974636822418675088651308268615455482900643743539390152201907871079135187101265480130857040132241195350451444619429956441999841598461318186216214301725037663993232103576896505274051692303647568465784342835709244492341128848859827062553573791568362421623358533031633098917799547417514947173791607159819636393205247020066182513436877281935821164243695422672966852926150785925902983506690793290536857369389962471349189082686547654572786921588513357610810618839914942398584853451908454769428172032607200690012858755587900315044429292964854998056158747545718318311411585612899598042714509788689822409966234682261847162525584490028314919152070322571970667126909069100097822636774289483067177707515563324079082653527056965374620734129974200212514304861341221547012438710881063104896943946031309944878690573142465787971291471853199037564890760067899978930062694121960191874263149942373352323053911927546357509357785409007535820585246242162902050653217368389974569983486488544765440504878630565598436987301571697476625343541967036086296442395222590138107522148294677465499150450245804103036149925989439945026357683968866929932950955818486992680110193269884699730605239975863231570027329917092713068612240804026817741417241623401186824803549002685262171066219271677417772176461728728100177029114122121516908369964796536691684995065293154600119521391958895453156845088908862113568705315289300014252757326470755442003651340590419406319269227409444401046575962971422370594160263989156611718881896451238949006301055362322891294649237678225169574160407822729349988089467923838078270505524948976782494943571012855797777301370497570411933547134044864689612294295645599609719479437786226579403558686055161329864590273466574133314749321601656310108017798066520394480987375138247479755041057384767605346459938906022359910842987648444455438744048979487845035723246657377418993556065574459416688714489524089673156689466409092780844729079770611774096837947972353399647011978912213654246866109539891003982374003569640607873647136247470743109828456298171202505222670865729247577497092659593035045111887003482525121950604481822450871003883078640507595497352948351463779141621637217720099945123301836804589083190319641898485139953695442028848063360657893045201713508078017882485914515883241855395991680606197430225107936874203666687033371370714526078215219009609172362631337442431402402065459070589760167957221479179328596783353730423321321872947278725074895625303582913079500407595387256320527565169793547373668099100246325158312286607225317098391247290191950616101691111121236097249932158671962494017119261645425397818937867312229974437402022136300805109305360436605532149789298695950811247123779110564130745445068942546419618754627505183236378561213794337529764433736235155308446417697638845023076861136372368646152322712805347951590774945862051993938162815024141571211128935797063250474585918970842669729035280627349093877596518487595972375816733575781120677634915650501077358869139132225456111290292123407261328128414308924562312296563734311558080265007163628416450528987423266869129470652067904429513839745622817640919548557873994251055027463577583883641441885439536750396973786900943014071098848395422765231261312783323310421360795129655411227931390911013826207928836108523236045072062069017911540467278422144778024856375788352973537893559840072180655832562098624495256889440906411342100289039044288942535186375566990699788073623879797837678474711257281808016732411902047358359834261969477894095384081760448694984434744909285674071874866985735250974761231266458586979181007503983015133798241296645249246505236157554295533734340729578204862568919092148597669943295119310602079987803667857899991981512691476399626877328779546425669161656600336139657193520158078516870925180129103153274921513782940399157816951662711396523782352805375966185287923498016598250856903452418378610493522869400861459945689213543983292741893014588855668899964256002688718781381571774490092911101402466838731952204866527082676614686665019617244341055046715994268005784576264051586987892809908653639754192113982057065506476454026270253777040825157614134445436781673516631839392643721006329713962845761191249619127907406142170784778249951262517588302287168899108268715079547053212196687978078312091474282721324856390098283850799258261938179677243404439570676148018965101618557155776737324516537956013856162416850294932745072130116677322545255297085159974059503651792665686429082261353643251402830025003851055791905238330860723772281984339507680776437574669928261283041067373374367157344456828980682333156158732036777121041849694241721078873072793505143179538905473600465538937536894904239464488747144952626689125866549389052189254392889451371910825666719443096381756445725044055006909204767738022044368388677792578136488524233759387259445547368112989800094919725978746499495423966911867312685672100394229331561606769521030797342201523203992164464106324215736503959613631533426819765900175214287230625379778179234343203090933576846487233827458361067302013078364666900649911149979315934602883544640126893711892079494944334806397101465967612791982871363676485804342759473396279838997557541202342061149823738391580137764683834465457836971529072257405806392312837886250723329546092987384111282059733731425361283942839875336879813455748274852048428299775933315359337562266388776478516490841782020770495134606560460138773163360281852565507655010578794205198088128188011725399661778521529081177985576663906173065897491080684362974797295232446787193938695416405785019952461983735965647800934992666372440041057880874298846873751605986132304012079167973300653315589896629328025885630370496774288428634035351994704173651898129932281110489806829722473003076476912635624783051785304350787169837374641701873148795763986332216883470202325774560363135377428289085422164446350737039430625110277189545709159146474867895974231779011411265474462743651258797090921437028416222019917657030026486335226664891226854824014955645396816544202134875774277535614982554849598029180127921746285889456041469481412226829423815889903849012394545809448953913646501817492803891426572561097978767187395458893699838705796062083099710603891708141706712103216898265029919955857671507965692229624856195669379878788274335717982829099638003603189786246364855682340606903361646224406541823270228890272155366313495126323588430517896388126009810852235997704303757624004732164538126176210118829024619831905146357526367875435504828170564159665202960486541558188635994883440824323504796504922554241880366519200465647382062865081948127429297835563488186475515851160865062699068898898420391701507709506538044321220262223072336953294718796929604837240838939882018542873160323271600630929528844672471701127239159367379118710622570225244570579108447476530416716993021354371423694649907557783192123362408049318338149927201406128206324560950762257872788733107295195518685492557645309522501618710441422873878888813297031696609448472274775321983129958220163818960236109503404682758135816231117085286561813770221175343564005185890721602496980627067276299940163402014127212210949232126549863201010568126013371189824626398923520808489945496554267052833213472989927484268180817855709093757270823082060440025780587889406106285969390420967232790815769869648830490129362467012370615684603624044292171969713386382121889373497571039106110406335119634121952552990834807082522589238931793012347179027337320785793374957175669559228204688428256254061619557593857561002646941912651698694369583913343224893371640754041205161060863497457521308030099267358629591115641758801792028804736602879136799624258178577760287280873897692121922710168483781236845687882278962026346147930601002166580464910186634693713636095003570405692795010543711170440657555794488750074117902212030308218114930840838177052101158561521231540294252090262763857121377195105446291004347917965526199912259478391220810835123402151092683922224543094168243044705315486473701305266232427834784010992037849607566041957242328925660892641466190605222694578530333928232857635764128544947570435313432984489158222916656528698677687197538081460788910856397933652160678172826736912238175140551910079270620969471386997196920244981185081961287505048810488301046722986630051056425424070427411629943612215298697297719681723998166834717587579338223068641642251715659025655882139384882904363745195499147722358314434001302093996396265969007137568669961770062325145128881256257334938740788962537184896336168079651853945470263554661998075604753742536133038135899655572361238742577938089926628635297726087170883802186642613504400639383009056101519410402384638548994273074249519496111124405477121780376967946248776137568160849537168615489436786132317953625214063216290874998470448291162580647870203459223216204842467477080612266218315426963933468156972093873313756348084154173784070781646241186272836902421142207010064133834704446991834212245198264335392151149117369966272805297656105267695607409806899630898115916073792902195960899655986967089786077896670667857626109090802144465399400402114289252668076045589651681307693490842683134387658942642697766910403780987234302368217727662187938651422753892537981910398466210674386518997528215691684478939449609753525111247850872541800857784999594509377437952929278765204913815421527117454514441345397552148889323486432821066353193708850649932603804361476912222391687191415361930175714244476619875041496149995428986534443819811238317344356582558512840331230377375418167170105106296267182009604863162781891689696353207158257960780482446585635506757950918062526970959164593024854202223353556273480092030507524067471979836416931820947162786450251506481897455433534503443114174410408034946254763249145474667579945427976654008182994253748039729700625547372033886360991018627007722498372990172575193022800869352712296297446702607811009045232136424348621872101581275473702725989708143846291239043230613934261426865996019442087548010479199849746730332912457969251622486511974288955300165385036609770669421839923816618056503402475677473271672108919035120866032474858047021211647460813075063443959653261069066012118132234110751699709020920206146999207942521452478364540843836817974597810985227154546637157236823340832223124503086548445620667360384528062736788870021732625393185057269309358431702837581734202862545661349943953510797472285012567508058124867291852021165597557199579786561046389885032088115717810966723586047976093621455835423062821039749881642474729959528838021473535782407572572043007047766713462536947938199791354332773263364579841465267342023167214556973258220612587173235783112140990708885049264714170240050538526806580152060003960349042299340643060522069398936791640675376929660973691611499321482168543782195594189234246802200644078337416272624434275172277079975324399539529548009939560859252784248323286723100007713003425477420767639758401353887665387168034368752764067721644772680430813217287467422646510820260747203911318360270765898082809401664944229550638140651672127670991394336226137212566807938239840489034181073764474627421126296626970867206888684942037337146584637326168453478422066874336386433782336292128445595206647413755481113002845739813078334452502301748778583690908174452607548433699281192837770938886437329432083047396876772543356288061916587768272811046126610044732853239827682427799397765434356238612448971472688517237291515758909580910504251681982891090141658685935359766962239860199201195001655421051611750625592234003109152817338718298471047984327390751767349195838844540860159131299625037843554187455773462427894894281578618262708518564457566379270464843039240471815414489813426975223219533907018334867034457237726839009072631729254079303686397376190516300847723091507818119951763497011348734640845811233573269012375127119019532824175500368279111310292421695267069249901695050701953227952863023827507069204358294662392588814070014287923071192891944078004420259229033548266172857977355900241802382923976325222442600022829023914937869966440958800146438707336828624075790297359447965684776891817006696301127391134181068010885121517211748277113927029304038030695124001397290335250922928912179395404542013465552684714284763238838454663790778113490771032343429409096029080111169807448336656030255691608499980646344031709891188650306199520114860065652939698815987947887533037708753177363235126375330406701126710089337991029488022593513183316009446338775701630038566381742025618692727380090716784908622928662002785706534468336689521497355636210630071224944860470324019201645616979955092177163980631258206749727236094519719291585173151306443384405463106235938612023154347096606634336135282115886600234836851131601216193155777582240301181702959479229369972931246312957357323889733068267345516086545878421419002730621820455535749768607283237156952451186310422851636790079045358877002879646003199028968156678235756721058632427990866922182098684159100158965552814866453392108066580706910125403331976964354622494295216642873937807621361426259803150831344699449877685233373712012727750796536021766446608554039589406232664897862326552075965256686711644776134161724687525104448692121148517096146484874366469240216989410001650825058768175044751927129836913213577261411560160877275757017990121946500663998337161159842708520476420720873151628620564199026288178597667050745752722722740394129614024222053236451546732608687272967728373033227873091805717756584635878645953251148177141208212051481818220946656172511734816772880717883182473128628973996709305833022368563604213167870563657409009753557022668639323791873162557558608736792368009504820372469993525571724528423379876978713268924092891681949514219618823434515275616474583336131608318052980741436267626915264536072827008249176623082924733610379336913662070279422981409258207619524338111488384017143854179616218008396678126063472295441979046232052296883015323397439525087766600355909760427986671030178774810482225018210242240405419384831468576782802908156527249362855019741357850402029585401360943416562973611669720015212982383904715483908461284837759070744193948097451807435699137491975674879982398610266901606081389076377609857035810213992805467641501058505616148357126148506576285705797729272698820557171864709717257988638722540183840652716358413020656506584653989803053578192339480952767277539298902730790998470584335675312297351534221164835430946425786379667435647207107697634559045801828679099836052850866972751248680356159475131622235931625201451152731647647388557488240731935983142926648574144801583727561579351910348024824357902360655250714696111733715096393889835076412724111280157693527957871548652155667462167116937006186145047323240041261503818238579502692800084968669659995961515591215712403583545881861023759201668429806758538281637412386414080734911937706794003541182308351378352946544391051526639755329326264214569238409908895199890138573257662865189050784266769966267573849874133450804446034240038193352807108786066380626037027217440389920811736951197440654253942219853305932002913528812532405324817712348061625500577156233887594153582749180577202483825980060858229888115128973272457817242369291278989135172620453261222524433948189564239851463893974941994598904678833524880819203241400536066862508434353208787563982466210533141297288784747427195466350231273553927596552337587457841937574643175947960502680269006892693543973463243947551341425451572889903175451633608955039400236856217207113216932077611435504371256836666749999993172966981412978527891867016176743447077245943025957611221914625826249052759709091555635516825047056275628540724633096196549192272282113492959293582304847148352163704565859383957520288320719709147727514502178300230562267316856191049466917885834117952746335540235341760199648461095657690902052273279744282165617179917602920803402743459893850511452664163021034608971837829835243950340333917584615853781990888868644403020591600558005058876702617378710146014342147213164642611345958899344105382485060200916763824998769682741239085471723227177967151838165733664790540398904475100035806985837061257972255347500911123369595385202861958302107526292359859877876341249483880676037130253606405622059763702010339441433998989355025199944286912512165990721373386203353945671265612496089908086629385753352742889677610635744067690560741582873286400859543811028352928248382319813206393349137554715306706803008318699186517953078332387413413997235150656808541112505414057499469747378633375374859861500431192945233666581495308235591196410995525637163887670378706256942125901539361795811048513486501573779362867868829532692031210588786175180430574121543643453407161178295365329874863118690605137624162173749742176467225157097703058149467673557508059607821299649510590794264344119539677305719833887048740800042863483005583733972519453094032540025328708295020612351828374916222387269178321549151605483485978713649559970717324363816468921942073571473312397242587867622565726549839754598803024201229068418976959469071835622734205658913100771623312752661100226074102441585630716882696364319072900418347749396099549712182533860958821709683526509506244259699980917884956403505190969638407422357405485086320102617463059009391656339766186103393109354819846461714889076706074674762659818109930143221548308873264442880548835234803573208862320864971468006016931011502755302403236337962536970780175631882919381279312131510150108374239044378094434634913067011693464995532222091651065039253439291788376071180744272407372476545162229005194992067678788726321071893947364309243561321929357598742250839908199629803128639154216745947651785696829744435483826557447308314231045316148316616445642699860830317487022473664836422197156046229855014453977991241734581148223552919161986982118436888479246925333272042459740708184795335851962599466266576084560919365854152813028782170474149499371242348123364083573809219240963515920078681955870268230445050911471731829233849585768549600225192249084537459532181110427244224052125070049629521147324956811368915313766127823978377592691089540119701572277493509374095835421821892500697925118443731385932746250395044906391161870373105393228789361802830123193223730422006211982660374082391726876944199070199021394831686228510994280152268367153547244839518964241597736399748959215219346548691354928159390488569044486179854965854397439784759773741167814053722846112925019284775926882137417742352261610197124879518661813967541895133614571464303424500418086814317990105246918794336545364249452263819544182659785084161124783319788632787622904490194214072274191303734210786059547295259679970924538696778000799253285463469310903899115077282340108147967056943859262963162127667213319474521700966074516631137883133173023506196165151311224145968233653545818405231487267564277823302748167252089655740957135449943045986113544753364612174685969249149463366284875783636642558668574809940955963300529562986627263238499983810007414529391440001039674968559304514327695127542314993005463048088240239180680931365605855621701090950522470643808454775417305778107449100668067384860883972323788307673244136636954231156103070401966497333029121855661244390840611253323764831044784415835971120332918909496801327666372648614444368045054471275968375958737665331588913309404831803186752151596547233110996049825737941618810142978701303820780654434854315598491494074192569844105261287955055361029225338194938228211345429574744177834586015204531554041631964818080458125474588743435557934542423670754600457029054558572469510277709053153440231044109301645134026062744322165359444475766274467917724469958913534941729670702173456280777159577033402479670369804925676196944631123758827660745214308488988910204608215044979951618958571579797382183948206635769311873670395318522382370012608824432321585216815400133265129944026279976615151186262440014402554940076210705618544493573707516746604995331782584837830182225030667489964141119951727800120654697289086376459118159083599404651247236195041071002368160157557397435680684161252839422225465346774289921095302198530635120983623959663973670587181317867931407059421844980731760435670783034413394934867207099413935936735576845138260932902539013224582586360375339422645718676976476275222820648560460813160330748589177429480712558505358455116109238576589037444614462968701167029645358758716429390210641487581928640676347839062748329654466211780730456284220476725508888247382277460362095266196445522826304581834626139431140249136349512877254927968013032079401443095452855340537174984159222413276118560274591498629285199992005742692952100642402361531576777884698475263883900241368155520268395194364080233582762193685812691140486316548430385439196992555843190923973496239279529199092839870473782749673774329038142160568811504386828517995506915119483737747834736577049752795044212574009760179783890457970973815060065942804098944716674693361656643933603863811151227709148326610856528940271572403227354541917040504900174782801099837881505069608624967761358370057898163402293823611180355853865935997647451549351913854838947822261786984082811435377554113312993754422769287359120212065911471228245285915963168426891569897921493911557975632523859002108313315381675349145246122404440775696321633833662714106861131456573844502400301723667419321649328186756362807176953696582762575003507531207355124346834944875630564899501661195322743567990549003850713690362299430562687830102143541291957869835693486564973127852711601416814290169818528520066519258051581953605374578696186204269299836148163095388426566132297374781888058698413289535466904217698053729340743182118088903873604483070958136088808861379031877647471644876602273374219119407636181190371534838180736697283017537845976859817341490812940162235796075161870027271771090441559392396042997995712153978415720885325477598944611799137479380502312727571900726622516759944792115534882384173317730396668794550097288653896752796926142363011707127768013164227928392326652082020609888783920450530273454216345279415836346236377103950303984873843877954070687280158749142611358722637188680623724091653866967064206859801280448932359007679206730311126508630541743155080441462437610624185911583029823906082648976940361451815816793969081463740851580130681258616023259208972313783963573513770456460268284352145392859299163322259088801609556609644727862698312900865532143236145130965013132074518761008494884673334528775182186302192449392229494418282455781646488788629256680028190425035300719466137659029620839763957476770872077843672349640490395343769446065409017965414864408748340052565286588139514411894682376737504797714304327717490683197948416616223458865870523666847382086573002435484821566321958087337297837173059354102235914786166220402909822088049558146076906368066270417482759205496708349691501550795508544297924530457413278508971850570137234675612261230668161280623941322059355336206870893698464925184026772822810182128927244984806710951979348497713560751912631661024363756625378945844649417086150215960288627515873753316843411286385543358885898083642638392527246307133092570017667560018691915107982798765279225809512393754661819448022334643587008080010695251572139878204077941082306923608018511346486364763126142779313684411568195617364155388760738418945578102958559195600041450723497284197922385104370764718059459926478953600757098480728633026509097239805654065630859282954243570436497798175494816557431246058366326904781246907725256002412130124685189094598441745962350511538371459083778463253631060198635924633682447151259652527408374822478178361443476922921207461229433488568441264404683690841892027658588447378918715909122977950351307264552790152823970688208069807052423842952123736769893019777743241576918078844701147276792809629570817314293934830353753282245421245735639804339695697397175596075055151459257367798227180123967204359338045502286468026695057203825188161168780288495773403947563784681461722243361277901381247708809227013328307293120106010250406492367461683168467395780242637548011625760992670709004958655556946624922525911753925247792908727816705004375578178531265302298746118896096998713527531480160878106522902935027838239269700866289276212138441603401804031372316196563616117344661226357605061099263362233364513694777319006722144137427207398880499384158114247589327164783922864160556620019269434979803430842991580439239929276312863989066594964112701310484218463245299090105768565568544911044948625902420665692415970813471490999456236334741315533039980711433937529602667649969527039736524820757966373040658292172186941433603153943815270345442913431160930409720543670177839830808126491670631009738838678921146634984214987103843727987018706519808905179430616782779487065214903807242010029339843377161973679440323443514399884809205373130221917930304545947648315131240107249026580106726426455599874435133107545261722427982159231665079319631838029338352836722524166161695052563937956928644241265113780885343453574213104447246777244498439240031058624081451609636524313855871532590417091812743087314799544320939998941131308048256276478418697201494177277623796920615225797356610668432263539806435117916314482306015492598122881491987553446360765343353276148298111121173113799153583996249176106872251918330178321454764832329852366875484494937971727034825759033413931161406962088730887088358800448596306542166777346598093197133093048281012200028522044625694994659502035365587669545671469354558324163093421442733516425333798407890112341545983188699099950063029024622332871160825090851128324311949033067792112655601197248829071696869779427621001140749638004885901484160927588244027985816417542013766053375791254673979850396563936421285113829131962578742624760313179444763556539592617341719742103205179746806152139977749627501732559316053714168047552434200635005720715873428053400846546655627711220324867911379792161474473381648020710510172136203375157668273627188355753059609957032270214172378878713707018503012887806155773966852975210222444742224940549038373157654335101172434280967664977257311179612494878192296693404370320503735794694038426018733436751942407347171630056514611541413228361935802508796037620276999551898176370086318824503727647007051895784493198041585754888097140085449475543795206993473259072876566210082792098268387576316561549772637378737073935269030529861873884812321655550891407364921290885429650656804732254341156178079412647213496922082772974523525805952145044924430795760236422459985173710587823238608078205634152671112934566641271741595243778526085741757830158059719683442140978351629268502401725816038336499770353491668603129551034796351748930569722270029869441104693192711921111503372331353504563688022613405770912596019094668134788629256886019209190535594826100499171597308056545003120529289978452312984125136080802495747906119577774512483653209354229018314142447932674834473486911498728454221284564788273517010564860893497113272642338913306209308862241030435970656389982546675247564221238080927665837161613334672531956036672650174731732791013282669084717411790086888802206466289412224566239556499308815960164961050474830311266249387883630093056346976548583904990222302294149591235895540263650924805039921120391489083481115410112245093517327988885728139057605449564311417654030232310878870156059895409586528783757820989031374581131384713325115302226088373540510686343947416292361154510540339911932815081014754103200534938708133393370603472940513598953418379004193168705166350680424232371551139762570961589065671375555001656194833484872502362718521404695456797114381602295026858705867286086295568967525453971372107483854713765264838243494321775721571121375426311088905766125371075384752623655996642956146705995648177097053727562835175828371225118631226974779804534126075408000811961764077866281496789589468922497504649950497041914746060577102007123913074650706101753490680856182236821321425980700987201144836373567740585425779959843593193070544913221835893720062930391564046977023608843027997523541857275395887961065700883223580813819194628171186176279600722393584855296658913350419497956714861832359796108919587656979851860793543485719745840634120774700987013775887518572743758907749243104957294569526225968743978929713708494684405890341835025741073888256402831027930283518876959005783819664043248369178922947641990916318583897569348014390123304788059437925266033501543023074172435248463546305603387144365208561664337448290121726993356863327511713663036394706609230597640428473490328003783179426765045150165636240362780633653817206358404746097530467480767559489564554544223000423485340472124654321110161043774082155218627123715490283567853670950812825749182058293189197573049462200792591182461564269243049690831303794072927318437909445184076392233003145978407565073540347835926837869986196060992121254270949330089273534627468993045198756579964001515168099373924121191030882866311359441391095551203005068915991875161671617028346196968845704705834352220323979125126801762099272459291465366987752331486124677021257942341022265261116977453217628097935075566584592170124212612633979902299344146075472513629380552660852814308267005740447169458116063450616629038803878462751968881605491351178742989960976857153909198547202251054377285996304782895547803674782469959871733917356732901164801355599897928328860596740107206762278306530477099411623427990208037459110341703819718361133464334686081864890127020037981033422327118449130782026874441037611142432031316983016419132867334579560011755774120428291322087160095667341123914086385598089885457710150498598350334879168594924620726307312576926484562267468325389287847294568643873859543932959656869036116270359522576610098613938727738919670258528189394749661647578288929812454865166139438235379314408682314060496982016168520123303221323481384977018145971385127521976611759220464949851700489259967294685205419923839748023379200337356903032476815139652982003826813087888373429703780968860015801665551614129457026092680090840590639303923728078814754551045387812483885021733702739879162143805250555041774621816594518468129208217310111774928327067981896072410762091498230257291133430016597243989092897448819228275017214093325938892198032437057973465031712691690105061977673332780761934066543399898801551879808638339745879876573086234581983876845237501208780493404149664345037712969041461715274976923375389343067562476642611911014954533878456928642781683964554362747322894081511032399524358918981485959740891214661594714637312236663255952165539749585225630263541133724946957273620367637057193699390060665000583147850008488300884804335063442118468534788139737137474815994765291130790320118049698763361702498059847948006418922666713670832097574641406268451120512094214243932637063956205772746690712993463495491459888858135855210472922499388936019551342645781854814261281925712736300917211337053695306833632077061515846800567762686309603364113491693597822660349094245286189837082454471007912025112289051103430726903014491366991018021338987082645658114569212881801559039670619091492015460078467282287689606728236995792304566966412713925001790984756107172828960984871270016586514022056737817924044320737629276777567301281767864540563135476598507927220839252487740285747537953714971436131339485006754153398199903047174653922794259515578322051370787993640453937010237331991789600070387289363243204675364440251351050227799467856486706218925270128384356513140428989772820329948504950720116679064322271798180898062480630917096803244605779317984395128688427840163823454933796569044073621038367341714646883164468134805713285703413584575756386721649861355311500475178376182542205395811663078041215661563072317635669232888123889619885454337866060925834940614225850613419224271150690775515232204493462189597230688844902191355443699085377371224813415942171093646301073549404721053703776626411582775618696819699258842188921888670622132124503792501253324996145539013095410242577166668013617344968157270847347092797800913880731569365238211724518868195233811031018607846831686004960588273710874529685076635475633344771317598167600813687958704166800809456876805640422504223910027772586503069012027147378911083913337356365098483782800539406198511160760157501259458852107741085231861379601471100133259819629331290019356141638437756669343752996617149028366699019301624215828629551064866105374407296282150449561295969898155258425958835955801528743648200390946431947317396885366781125585555115960221740027948551620325356125933154427491783078655124789977269237114209357891214189668371036553553751101101584609942007775115463581042250739879334192023712205544411428923516506504163271659186131332080983533003167369794954654442436501085689041630878390249854163610836318785704513262031173158640892517727134650976517864758631398488822160921945874085748861719865131703672472996318471667233474574730250434699425861930705880369297723928431373382031888575796182091771989144135707542265394664821044504188950612539395287407118286912341591948089261790699071027959320805988602134815548097854636112366255097069918258714229718232997495756461590543859833193467608013064035862899774997402370789107065548339722855350636584421447313986212771393051907288396765437592998776889926363462875090189039660119057477785031278146367741756953518513900940650119077718747301054902275294008110263548038778341917752185612509280053866973287252739059564284819064218538602969508914716331905436621659299223718286865907876167121724499959362551861678159387943903028355939891550417767712675335602219411022453239456394101467023745838169954219800430531163414739780826148669190638542886355983337887935101689155193201361040467099133994096596434566934707113699315911635500212686702996512488254993928973795124798521529983448081273552462747220659609840501334512295602716590565593538642820400634558438162797154573127673544468918255978936610819341836637984801469329631844303714504351203792726072014677854109604977488249103184262934566364283689904339902832174581613188157238970658309427807314819733782432907885835692699030332287755641407017062728013567468641561350033030642486001765036050968179204970576333488592978459542285841732014654817619075722917112920065455386849783802205303560755440380897548002158549302868237582932737574962197675504833895345568583647499366578798530944052057514107418634431021008045237893033508892386723574853574411174264638736046274214680671994101646710201179121093978755961414032676889851437065951537038177996279904700638008730300733643493435247149144440481943655200182781209004288572311265223982523140115574390889113830861812021643567055731093701647678668533405458130971911248599747439923997988884325967975648285819142044445592725482605019183151802204139367564264209846822637181194531738987982980452536033320288147035865303001998681186926851246848054376751842866351027237055137623918255398155191152769134068982689726394494254911448059093126693479154556736669667750585761792105051526582983102563531147871792019908108452645027872784126667153070218878855609060715952171236788224457355098017950183218419738242862660153262344993394060228937870708041632914064004150149773128532320414963740484261210703766639748367628855519118527498774210613709549798360245455267235502145299491897378059194591811972120932663996458706403796009947468068713489567743235760472749920028997521321292063864808379792409923439880267307730011607115770113349893616471533955325033686118016791035105498411424573887166282142498318381771301924922060553971867169913651182906158694198330242129661077716114159982917331033395571783818750696588944507838079555467615682177841781363299565342471663713302240823787572323174780465260079098742377739843239353832184599833876461658231723486192215623572804830846296869222962058841486388708235905208612846072010161132784741750637749951680426277377455295351190543673460131586660258447182028788157419120350447843413868589813567828617237809961619812603581981156189060397676079517128939941091362404299682872113248283184946906144634576705801554701579113066066588079384075753876454385455847943271797136836170188459117502318235071622152051270198674298527935805320006139022891320057638796961506747397995600496289887479727204356206519319209186138969566682018188374810807653102597678085926030556252983687991697589288983787969048053054391325896227831230722784792797271956939296492046213813824402656454825997111189562286905884590659350895880761402208251176321720470242439686113155204777615375162921277898640843679432919824361419246077583606253707897971600188627326635107450471379623202687504131108768226995642848454425061239400947688142303123106093123506621372512063200005609374934680172509570983080411776743934617631156644041996253765062205441844748781727856390012834089982188597230857825353856784942036599729497829428231584713327696241877218132101821219434579502529813028755428039868525194567722049103481356413141946660318723766293474757346482860181512827532346053767468593737528104855035504870281909195625451954778702406250345736548576080311960032990634740218279176722214266185987642903604048936812754245086644965046876484149621899462927215231705497699937027444659108481585868378261689604569199662745739431180137432673553242038979454523622682407305341190166007975117892794773623251119033660961676693335349917193716764804979085081292938939171575620184092478795321857255615194273653566920663752811168072290043931459111992130773414433297153981360008131326866997437551221814146667851353399843294157437196397320143429815100588198516116678346063885734065354539191643177480391438451001462687280102124934357769418238317733157441132804520816117454292950523626030608487730628804238734220542198974879385317333192358161140010097317019949864358594696970475972989121416532497748372089476444693445609352521744105759973860903171876401001924797615684638605130097762596167710770436809819749396916231598915694373193434517538368293771215498064527792653959875032436936905528892659198246386513608239717608948856299614376882389291450521441271263960284241669879310309890627494603797314593936646129591521396305424539600228068032582296974826558425032262972059175199475910817257203187783400113633209421980174843149428162915573446030524952128972012580955033652563483852813538300403858983514627602646319060321263261606702839600608214795098554342886648879674687488358033921106313330078591317222177793980625615516172660924109099334381029095188750254058402137613453654767544358734412728283037748683706075121877807708082313751769423013724403592425569450574929486169407655494075461034735267574751300270002819734323818767573205504782316867849452921591042602463038719395643228313078608095510108307403081957399755457222404881786562003504890095783984025208189201647519459248620125293189378317342294621054910026887040842878594855763940507782458089595702201838928983678689396676947663178478326838164731904796293507905339314848085728087910310140492479894641307363922719473332510243588069926689672760078510331560112907090548700341930183178448360241580052790044669136990941640382476907950136927979548841919097975983953668927069860343723936975060176517695331767648184127530922012143732269151541110656711750538382097055071800668466617280147722572387123902406678045811103905003198776863809214147228919007824855724894853515277091907948124969636724513668959926416923002402285825601326453599017262245972131846185767304950523303003453087692925349147730214962018185334124257996553636147681623056725465580334603418648978634716331493565514265325238141793694621138889873607442023567898527606313204568775185413829944447178711621241165280648347205930253706505298028719824001922717642160126668790985751918879820633515311163247619566462906008188906109600752003606283753249534423502528008647208641842849220986640824302185022744239479185613867259314893253550010337329409129226060801355648321593518086973113721187380760867605203135841736792328892457418349103879781146118062955254315887179891342802465558001770351823487384897548193427626995675285924951667653820461332730353358094302592164683406509611014376338124792097375144172077440840635350179600292910930472404193697106738422952976498084090438174535812005457800801531221037014381881589807775191098188959425204841681656210850422501338826695292598111074712791062041156839555118439082495208344271459202639667900454318229493813122969076374212253681366906199323529696461813150373273130436999899955766709287844265278381545582488002838254871677686110061730632362749463333981259822680628327875454168707259474283696505391205323474942065062941641711105537828976036679615514945952235275984198324286456052174749723433238431915421036460647800331301220514410347480544878293636873238505840061653534454471739808654058737539752559741795111584287664998327364713775583693950486931594818198069259478102420710752745001244224678111964732966404695125158382595957665160776948788921364624709208111908293228142302936393918023154406342869687898335522915550610369236044189806687173920239306232709714089911512715999745981513051460669858974719100817074057157869024167952406539406695976672785089450095877695790620826472573546465694496999898120922742455709861688667546800850743842779313063394492592192827852620853578135415294759236178200133117205702383605346043764626137677535648357792525343670058027626129325300353445750147411019539541405004289757936384494021688980281075682929925940170574750702928553937900966524432131904143806543910009617279962081130427277396507363489085198614902443748300589532247669662307866389783171964365592587670915735813470710635212823407233552836819756480474335050351339297417538818838982519720153813153514336905082061094508087407582987367661537199252740947841333482525124650450470243481085783967806395863716110806382098632991617776503637048128887647548391370411577679809515186093328072678370002546448522175341053484447485054606595219427073241927156397661082506860719038381211090215457049671475529431082924858779450959336535722986495984298114151391864476101012403612758888512243658724334242883699523756900493048080329141338471120422329818764107537333193811148187823751365710320246903764928639643432631941037408224858856390834898543203036309324095510562488492523350739287182386278487119923678920274332093049405798280211533825840444989324671034626903669502324957642523609577807006838848682629521934402143062552256835785526810818659026954825648659550249088044157286940725298297052204729732235737554045737799562987179519471785865658513530142045953986154233287075277025693147075716387216196919929538360451631578371772494709748012223977405490162219198200689198931816360858008591222777301156058280398744395477921287202640088589914106139665723390718936140592221522428951090576717643383699294309218776875133242847468640777851921116197485485677863463130021481369584995799555768502308737380026404045273393813928285347938738188196291366596727269662971370745451075077210807044005894455013357420255313395783020758636672450858376087872971884043526242517218494711861756600232077375285163691493682631816895656829705577336847334304132485968450908915751618107813659921150306771112275457743674594636208928204285697427687261720712136549270364557281718352569741383207364460438808243448777439618285827024409381978805609631993373417396281430625466296940387985478929251553943145679903252740140566034165331945133041706937137625603363855186138161958600572531571341155519128163394101058684029533917482577887171890047246952336783205196034912439983044702549122525609975499173410203953169179373291048359115217009459995519989967359536094203731639832909367136807774695314101864323644404719000838999951659365779616240994140164211033537100682662850322133401234633101383031940680483740536230674216003942907457427904535978831484763708483493450225634961029257452336054182398191708430038193901342277311384005503305427780025051504157040775716314912528133147197159775323381613488054331891967968392048086333314400663334814686667553514343879142612440181886387965978100723477889127929879181441747270678628645241776947189769549536123369279995941761236373071479892084905848342969300714985980349307925970152411724568634604450627144344805682029770553726628491308634212172980408957722867275084881563974557183672978175717471007541175382757354442811141807801157459312267344561947126940675453579047508331293539604231437930076104959725593597621123570536850722253415096185174461516816501424091204750893588408188712355403948665249760406376533061631534573264077733563160732637598968184306593406648651252607545490672090434837784660094276790177955326497775500752865244667202614597385559856859742208085924858601598328933457817842541828672985977994196134951395828868810570030391862679525749965370736056759584155719922867770327576569949942841615950522636868673505605224175823877561374009972193531987567087324454458350654226953921327431279959874850602448086407992170788455827888604315416587395230399466199330307847913864130223012082517213138739055355509345125035831012603597921259662056404250023568830292458618597724830560432381090445849875142012349088920977182476257613540693677458715276191693928388901764745308233801931779287381136010159315491244378579720341507327816894437555928254560358193331969181022575249834599367846544769244073012038257638716582427043603792994296689712953930695213337161891253825240820683713028140411635223162657037660389958709201741669643486442165582612149260972181463850574826167890096186767072293791723350818132244325199537780822447066399182741921889065213440469181232172653218142717216406219511053845042433571474965364446474788700374184070945508182593102738390891601489125474419046451539545695652829795053557391413239781063967277684708241082388156911879027018868297633957747878715942378720361998974149256687409227612086407057060545739929549106793137016174215194102493899695375719388937983750742175862886189373679767582863577452590162548060603098843083684360119880303755502454585491769729221882567939550911009560798615005716400097098689870787655379714243986080289395300877584425973637645313932339657357545306044734850263178619500342296712878826239583803164390500394006272661967299324363517880495512685528927010686362299378407501731320846265930934591159547989559437843451784253988425541117393553641346139146866972443031348826602601559869967115393537122020773843068065612233798954716422242893598024690802541564887260600873892727815559870909189192857005945615374746822550993073084860363391180838264448841848538867861346473380911943641164383107943232370302940861315067914217288614962742976949167193865273746731402989462470786518280189537285486412386662014510500170028489202278172121078103370771300480598237993473089980110305355254078774031990459320841470234256322729499380273587085959932092572370756538867755851178378621054644180670664903587873249948533528891720015137119146625058214381342214881172965993830109605650306202234163377943744265896296655456680109591693612945261752657056909324368113484281802208857525762626126514033399427538482743898355298510030098225873031732260696765185511653084778921564947047188651537483929616743928774765860644557330330711239943529916326239446942513910825366612385647687580684954897085791044395483618997857319737472469229894657915222568572043887537416442025108327898786440387563333437251267680227600887826472267896669308950340304180659166851829872234380016316129316981745037571506463551362084804875498319966218098056988160478384004648207579110087379533107722199253557890060984028349143964248964122634269712636398224820802663563311547179278251487273897844782639829991306658670027852029332867162077101242163595184171539516020569242974464994022349243453556319530361107889101035025779434837083638397001803837594640522012460460218685270704881999618638226839353898819772190835699714520401992676343168957635047424197331985860024644740219329780114061421474996686210541321562186354310581404671897937768663134059239973519681877846547987104647225140365077107011509509919134503523640781436865497740054993189070559345727058833104173470243763568407178908636655140557849708899446390686555189244342511093308396393785013676615952191448872321381723484237326290928081699550985918504306451368396028032029405739488418841550578437778072745521082676916222243609553770001407175952786036553118363969948502104971107692678972016288411481737176868880209765925415513725107908366149257052808541247241168762740951441310213482472651656152298129214199641304138277175924955170347462084522171288942845494414556722325142704837988852868723789674696040188329756911322154211491737260269537705711369058059849732030641330521468286319168562706635871609652908756876107861654889284085894235420953456380138240399787108766541296916592187800058076054810967668272189030874120143714317888706800493132185219831850819857785958710642214906499854116554074159380419482404538372104298850112850647911033178923908848063678557347930045935152173859590876101564230274430616467633810092620251844289251606065247432816554220281218669293003006520088366453940997274452194466047970176692691505196212117296304998140011829805310544017455778194183752480160268809627947359724904130915881786436363869298965516005061614439044481162389636403278852840803289425079777354532229165650960015933634915683832719286940989175370868657736107964010160156197677111537843253074111422916380101070688298543968100606195303782801986893367853372769373374384372195461353049220156791367887310225227328447490635241505787177242780228654678524442343204406296018226926872816802437758552676425896800299914070361261056231640263553010221586240867203436020300144276992604815507514035008310602790698930501689170566018256699529084183892825268593366649469171124749928787125369446660669088346079116610703834506351447015546382918552415890914471051262107059920118888256236049774756928261352420765079994702845320209144204377794439491222279414369416320131463180857193402662858605326588283231961497339792074173799335603327325596973590577065319256616554517333018078388861155826951933502893098759263322150965585823418606903245207006054168150699474450561750618061532614298987301347452962655051306599350747114865841839560720438384357007850195569801914621617269895590545521709462034376730303862066489918515109786089077444781627529410922489115075888713561932923461427238559215746565234959700744138973885021496871055797721027756121497641045835437291498994177771196897286071427307348502884498557523662689221696435931586063972877819470885285244988473658830786823498101735653101327985192990114413544716076219698519250766310534424662638281524097688551073351377805529271010075841210167625493613030968752664650757241072020774848018576940220551363952124871340480280184637816371330905082386735806783108809099198719029383948663104483891170225188873080722203651562053209721149860961272048380385740880508670859445881361420861754570977461044000685296724957965872841767366299446852964756476268218890957226242953962095905654662782928635739026431876151304961852109070421782409586767824250035034394675880564388321395227586839985100694130552812802295028070824249651729285585180440834815675285129426618301004392065590298913951196998738286526554418171894328630141880593159164923287905605707642620329767877535718636892448666717563448330930315410052666856020853671443674685246932945305831204103869219388337528784570738909838387003901157696116684640227700480624809596725992189389839612738157090119879249227419026501978352158905190405542319517249005145341958833976005009624527187642797128052640388018302634156100975359536868476286939014618058910355577463507141284237252975036522409404382313713570318701673905326593268096435892308138856479360973763137224288885771901727368776509620288875345406994060361402038327713484006809212260506468834099011641115105085335444149887716136026722360582688226888446861268075126549044119201815912697826861005563771524216412238809805817869444708989208381392114216727623612525098493309477298056420252590095521318715778376511272269732865662857465839894952195337154678986961653475695559186123769414896714070025936060989942635918129809716117358526493331800114211729299254506793235085688935154336979016322007712813600385299870309141837272116547570640781845346406718565274623555280024783236506422103028683898900737276554430021618982573638522134322446220204242948688766767334388943011206039961043665264057804902034270502958060593697811384154227661429140211898830155597057745327243540612631135720304119016677400005968177415603537279015786279613224828828435999345302583949065772531586124873327527210159404341517722540472039952713369174388893259900379349445682090876911403224026598867220376500370908497608750979474407274620115328004359478284964290293134209932867022158129039436913302554576740806521169918748928306182958102736530605494381495580344665038970565479975248791470074748838797021251978615653572733671652480293615022518155738865400465667072954116053529567690476007167295594107074070741199405816092981926050151748532765744966448709916519524974786064182817927521819245443017706915403628633742033142707518666289757770854506446156515984517404002232690728253865899530749085590233541563948815009753608490686808564337476242913454611718747468262333944216248331830278997570083549922987301959935604566463569439095882714789597354109578147392459414431293938473966644939083081595774901469289745553934833044093886670015351273715840354199630351089894833551740544652464600501844465875972298522014355160851582409331298996815609114335855515451752994720741942907977947973770972918480120857720353940538200151080654724107231319875166048644493588547979679885946734927100420378319727674737069742372336517760075668940802932316327276016196723042831377238202654575478694450916104777368176832526578672527068282052581966625388769813082151006430802681333360132072364839796940228241635207415198945544780481609556077629515572052512093959910756308041549707918019644399133722479746674469572419739499152181522017250974177900312337651277379610114334118274852293901962903724456875315326677915006867553985597876869819323800816449628160736894131241017702927718685301165090069722653212746725480887524214608328758384521705699910668478823505236404460628539270095315196768160367106825916805353584774773877759930784037747115424052378305675663401145512364873073829993539204939271921699836132069163959440406118716123246682751689439217773964609807964976991505474233598455716772652358400776685273054205784429129549639234173078823722004380637224260318410947812956180940546136971624018207410826822711804485411017652185105854614152990643950624787477254677411971243120801502689079627432856860043781060825188178444197204864273945551537700828508813083102051746857355513107425276400045555119435466003613331205250188573808427464943825947241369916150063229860614415654266920958487451787222219372085396594315704357729245404728823846912729343312638357553799748598601701140788153682640114802181622175582131532049571333357609010405809618199845715383891547598682442377376560543751920362974477939727662606517766379083519399833663096590696649492065517368012191138440919556870299637046678250041516890793127923036963864243144537987438954039120823281499204710454805914765498690667802402886867545021991120303132417369394965821621986626233749597955147127427038803461771537582077924066052690423945481079841385501991693094549241102535143398163968912091169955375923029345957389014886937982214048354860136671088896188117836933849844557262838081916988331538717040246837880132197243368190138233255050088285372754637834593157243060126840319919865063143191678840468838290445311513005240757630523933837275800484670233169929146552162054294274442506548550890090520328017133556247544023270939079771012121093081202167054370304906903393158297098920009400067733666587103602034982601048237099379803552155061094791616372321935136623687028771742264589717262374949022562304404788361910244607185947462541725102256175529792482853482976086012500645330839041752526902720507335990085335948596543186600794910996022321863983282136021851075958135026795001829844558522624862600393282988586981783911526313178365591772016706928366261717920827266412186978382630667633168828834494379772375905347791599637208703467032611429938795362988765386282153711159324931631392787731997447669792033502787420683384225369647364332119088933298596460398662110899655851047013804372291273804596825014732270557404375035728979125619893280983335123907656273787464204847013428856864388311753383705361232321218520018320793629216770025392410341844234823484162753806085584747834913946597333133580144939433691004048102839338412989982908784232242070474695428875986391490374292834920400699298665055454225811889993373209334092576742169174716521963259804385897820405391921565449832181501677105238311779097888751070829245370455903597994083941423607887032797084234488892902882276765315412422065708885871898921644239509683365370514330844751656203182541384208824038846412519656473575111905124262873119531611561106827749992270861838589396945979495837748235881767320703922947485487444097045092057506222707230744247012447015678485439661703665315341905461103901142712370041150744906516201570857160551737425556042104039471804103048232209419721663737241003133930401062305327123385792803806046051749972247835894122212311772761418188770327769451191997007486608721365449180590889852070993218892421363436010095440093347936928476098928665951635772495448561558412519576687870852396782561541108562855384249538673307548767119188805745033888691368262758419054103105100798690636175266887780174296656831810313284111851364272056658999230240987887252431692604604741823845799108835740986235628374847408736807134744356028694537477650977090318471290680986430926698901141541188649074471504922873871808164359593037457507830713601610592849094503382039549285750190605529600963692021791081928540192950056247508369098025968411342418219369386271228939548183428956727464386387519719418322461376158343000289840408963381769393144761515296570889946394080979606268533718167857580804590115905838735434249306563002507049393004226932310357971226271503846585467324981720431827908550626325839365624437491722182320294364161357468015164951820858172445393357077195805422131930012942533929100534976882507757755304767423221256753939454726204126821924341613301405319270501127913114068640642603229218050869148767263128028077460115483826589012812766481361805770248877757024891653524570710086846054570880904703514490552268082267315464916879403645333738908378479806140394117976800165853259953261086854813583923829307022877412908956800206239695108006178354183908476614627019159336899287259168055116652520693403653435990706105123116362360310836732244840423440766937700650115225147743367447092187101443719544797487133413855405946439331077965224599320565145226652684917753665621888429336541944031124154352080581030321319163864766199423883975748089706362038204012619511166980082745729095881379335873785790312610927604979374428931728402666772785752233760360569427185882495893168849410451598952400128025396183458527484799479047836356937837004060179318847285440837519213491736491154202947965838578103597078482128688029336187424107045821802696071430519996629524939995659599293750627225603836747769501913504327682943354886901073265153784987807220386278470284893681333535538266726233007121727583452008129809473943070425196360028217263603176963903806023337705569231711114455810049284503799033030955438221340336614181000151133974951219755530459954092914199170727771624082658756185115903734476606381366687662420528222964840136040753467193772686245066020817671409694977950138033106774314983130638024047612648867274326789137192697807600367231704959871178817122888794338207757084415871852557597465891894270546173361655971185876930696327815437939529370887244959034701015842829153421712570291198353992782603758601691255474033399775866966865649678937818901294735862634159063682245711564167756560490036181649975111635627178500535736305267447882038990309023668369265849079274636684155262119322689214094995640469109243514164773082728932296219525813312308708371956895546799594566514329940690903860108653156469893067431359415535286519752313785132734731170255050159228886809650277618514497613947917069539084547670105661722959917189731949606034228168854229549991444538564685231054817079275494206843952410363277286651018728626666254281103945787480654447001347142407821183778247601998607496976809781400198488491594819420108510549030003126134267007969000839081733273543520311645870490216368644290464891656438287667725702268111583589697726008892542065434632781409079373049841897624782092750517961842942213512205748930463624843613534499262330986021954853082665074250278556510447489946518913640533999468354457705209609592229087774257082491928600170629995338511821036324583487159497886562613488344707560058283172204692390053332154197827000959468267108847689299232087069909849811253476972189161131184170707648364032137165628069538435950555575905638843008530616882522558310953444995901700932387644445500704637506374227867449378269587856890748267461932621792948767465259114390188132465908275412423908599564164651147000365745643161315176356042930154418271363364495167041721850432408689695099676905727375890983933759135368120379653770767427374837038726626196280881002945374693892518886263238703184200786501897876204481442936433149523954726650719943325054688920847821688178686294463391138845808070740084142361119185220408265485529042426659960757568455463213156596597544125830561074328781117750743960792651192997949322770189432863243927632300551278666736550636322766252571285040020390613660656902878013486907738834498318643577100874974000805818090897499129331484715843473675560757101161419454165040465104620962389898009265455001742231910540790288529960323249527229414525320929248878946341125270866488376534053344489153204128363456168684328772155972382144254844141262577867718166243941106993953303784160583766813055546617726376847577452774900376055879655167305664825425076066723839711958038927765658762157650963741247133868130330596765659820031707792872207897151970937881504031024776640432118079458251133818061863894835530405319917720823593229215682167604499599624974963859822185169501074016304883209824335657616015939979956550655621584510191173760064178415441002494089912365604422702303092363696197799933576902406998111850415832358894474304869764512716403212329235719048413631671719905495630687325825608642960445936600371635153218340103453868262207858790716904512867652190451430274481456037520109463238102056701922119768870030268531984942153061500996929808949623699753589058895821495403555372061616458317609511837614360767296120420683192157591089909907647624523481203294859893789743063506921779485586864656998961901720833826415568684608837396761017735875642200635723122001198156360359163269662506235393692116771487231040914016420770360541097782024729895582449711267062177870057827832996273227815110512190488518053228949758907923471632267756590759458493963111823692479593810833560843137199978502629264376677310795258969780700472851999112355695751414854240954917503204357661892690812828685021556547734967906573772877750287654551213371193512787397441860450619294593122390064808296175493859043407957455671477977864481327869743376066467860179950566112109308410286634429095488006368439732459383098562637854972864943185031077310008856457643828152763038511962177402644525849165857648329997345191818250029030824837326905199029930193637876651444206166381370615885069732260272464444174910437070786386327938928342396800623482640543163554676443077478246567650830616758051475184186155903459255104036430342464317647756022514732173844618882934516986333133425121003068624983095111901749137313992179817712524318154234883562555307922681189552537493243475507936349858159217025477210781007087038669145351283210077262062696966600810917957032894780518972237631817342172634615680504671481074845005060038260476483398823309679980323846132372410599349325528848440755355487089434329672143185673773794261780124149842444820990670653988147653017923698829671380396580162150233346775243049995391752071111538680588307686202591203859242836632489458573737549984373823695234497120694252739828739305959591914369393746762948962148787283992454156709657567705959269973613576957897080227132667232419368209268797074403023087830517326316280076789215085024263906482562223291026323236547042037279688000866987771663350131898705226947895150750298398364152274028702904656899834730629740592330606996942025595224405098558926367701673690192399822995073769557561651249346491089009914362469355460183827296596282880136900487382355438429702041321022418412299917093132649742005108843127900586295694536539153823904097025439948354200817780714791628748171918395963489761919111641737877878943138776734508157085868350357176425457657976040254582416796999707338941446537401026759825822373775508712438270046470234778823235833464271574391432914381056189133171893969486073964186201156096928705604015440801936718516575698583312078501650325378393052222013695404387150413602189288852413109460204934783394834028469152579181150253941770570083224705638580911811756523872897884805291736554348614822551857087482404075959275494939667652675838577084929635819044370993153884971594179471597766221135810505906480228542535909608850543721873481755670828282619149107212667469349515940967213165833899577282507947004196283155166697341176902623573690343639793296125608334261740935761674861561658632752659655925549900097319583286154496103891938756537930916932489585754828857919383391678031789649054650055070262137615464379749507844453948455226346576938860219757575867999910664298513334166684557911097576116944098353440902471437176399869563583908351071021672710064171463197542287940405638874340357150843523585125686522402444559225774021592975315237629356421788192085569203784820338009252297014726133587471526422541044141243885508847264959982107158078819463161070601582911987166556057140496373211825517200648849326187555603208596729393674870253795740048935697676208569059859155702273062937043436561446290040218662414265987584368422621892015392777453928381574395853270194391750399000625493068674628501113904855993940049515278344797395446701621057159688810466449027891840707659441940874360865262493250639224319408711222283220933531751170295776345782151812036853921911300093192464639482993065293549595559054292439221803825202968152809408742834143560284978034628007736891025040508233003110026362566392616299816933876204436106051842350027249452962860898248428982667652536092663031770170124940870769211661160699976950541410915689926844052487194289054201247266906030453477486989961028569743258902663012948167594563231533369211874459946072337200533438916146216999385457532854181122167987886507116318010649289506022980734454260434681680400268713175349265737383872793645454102558169961360533636590566333340752267096992813883220983411384041928431022629490320899483779926423144239288707447765260588788931847238373356209558845915660878042025627072910316371923360036899593914380053631087421301838095272223069924147248411517794544466503308388634881944066602445672384799937898433312903388308394937327056564203812182050697280505639557413028508802789202851043011737894723865459020732917508378452143708848432054181035629876860779650507983675134377738332141971962521624499496984415577301078241934671647726072006928295171782610266224656074633943883252984246828017658212187729643859467513067548227709033820636667846567410839704788791317654136117603750347227263141442417715650735071101505340210831795929337255451638147607268224040342314648904376972541892059506240120078124177357205647483919559694653030724833201375320988216777383787708190422521600357562878939212718701011710401404556740626853050054475407649967494081964510992993911511583853188447865612586485959280947172008163608538625773997308791545313942127974047503688376918382939273741242961116141723852478410443702087421619130997000040691418783107393952781131134627663034547554646446943973243661782484037250146619729521760896266624364317334981965351895559834751973941878227601488057478816449858568880205766290751904657139377387680085437954643612436942563603622180158940506301500843425276500128414705733722420365022889497499895603580907123832629587795530847373524741981454507726842842250507090924232774778344879197680720213412454904395249540742496243188206002933850717943748020606624207139815730461570786743452211448647951305679195347274897526248725321753536997502632731528653634125189376621785500272843994650375807671018204807444526565333472410799158877730338895609866156198378129242676214982960263451328697146564100990421793341608381132065994853413141721045263232612311388116289661636773180393473391091602581787720588722313454242190042184918732045512579542321834842159542001753488138029842308976751631388051908350053387695790269054628195939799805036334377283644118487929794955083588907215574265865597180827936163922925759953979073983726560135052442467561562304007454380218213349519651325509488565382373524887224172805119819950973502249192269404585108217152281399925255484380429231565670440275434364095506411423411417181070049599038241206446679653036676184051615830207645111306411430152584865606950948625291908365226567323498324621149848251268425884312497748058890691750993210467588242645785798758070700744076275237533672930873920695065381536554153564925853199714328379146428749748459079687333677593942847288795948647994785158961560562148767542780760193664379668337277284915618862238075349012592782048502640306928058628289971559041123983333248312159702087148518811752835038387401499457821069445092923164782054131590126969785943024628163858879337358426079087406182533678429896462820735854026973649945870968906978134767483652670876242772644010160723418673179349077644307737768764175656707605221869309572021149748488292822149133468465121362566548535594513015371682373331264867300059520985143355136202893132172601224311251631135314343791245497707448181614000978711745542516846920935879229086842350849645954055609552249372033846445081847027642940078934699099792184795303217022903060061881293836519623625115744769849022236093880897967092467175299914830649031726383252792402087680999639163447558644280497123151954567449927069411320753677232442722063608878517814295038669209631981944064864492775734756528940316267351013757570567299350351864068446761610475873517395131072389479714697952139118311076050220237543432522923912989101244242083928413859647679015221243170954991592897490140135490476939553647499292198205939476569292442202621541095933406522747821311455496055133038058588838868924446821939544402053480211790609853345843930046322817016142594527588220800900889417390553956059365261801954213095771982492718566988534071647662660953353658055928250847807271245946356323262935674357508348559761640368160575834739497282011959589406134342159965232018978396255066150861492543118475917292927220957752729825704781910209867376392447116021283560966569476516975718267725990579415054356178856701871775988676535281698436275197049256484241376221174347261845612415494420959944678662224579184063155518494853410193340828184271622851500304971444974904678373622678387945221318179415645530752334295564971128615581360268390210883856965738636909720043067007616383228085828742725866067287866249216196696513010638450625746074911193246101589073727245324436326134121598925134719332673270128830606200367758569132697376466923834334173108214714746784222465885643089924448654183026057171503442948866639149277907881819371116406060271661820100156517544891971699293319421525434030572761635588639313898567206015463589328067654670742812038457071627088888448767330496454751922151063696120042216573679479347839002116632004862852981775339343170407162527855409171555491924506066201025489156766272432793294306884693667304252748943824262393649636089402424735732439605058653819715525741735865350914910101068373884630268252169767589220521855412297340380634603997779472412202990288105632552390095860072880726916747086440876518605992230165505596370116650450846220311692533790609450649976612671777006896990181754745380035371537787301493213959531155010981892992953540739841029357784512905085889573525594975425691579636867907657190562826047730260695064160080997008860574454355469221650345967549960709309104506721201077854797645498604709766015372389971645777346275381844620024387639504192758355066150900079507198603936191722894143453717461684866847176067857071340804241612404033113043175447913224178993135911113557401152949852883495205709948679670225748042226352153426694219259451892200353026865184157076489099866221700441589315686874209675763773441352596518136135632990250013968828091125703863319839772842794727027422100559453242491604043374178233267854858523536628143560342151407113676143996906998091563390874720168597590019175715988260046258202235027112775814312734840006727324862641112034746784521297145448623150196363503294470423169254958588358464651167336724553029189483121245752967795851500864729722394837563595120230920878189755863907231392863807753222229459912402440085846627612358305582446819953523049140367453300934473594365501382914302702468360095492564049320982869941082803719628235280195026730641435159278763668438896618261284581893988074787189119494153603027707288034026470249056383542729108551878079414255773455342267635546731849136990657814215008443521755802086801549892794726927288237328592597842381842339685518733558532049582576214760657024251450092531558370029203105631143882631379562090701777416419380213676214370879114001422841699044864892131288905519651999314095166803828133633808657813383504933070674628868032459339807632540818723561735070735226248344667526894383350348094844128468103411342647327578425391582063793365607025019837094172280895618433788139729364125999835419625308608361406678644594405738636586159572325198627922937695197572214819920688416042392165659364523037663692211817839439049121858117192542949417122604636768450459850738278715808825543138016623523166319856156347659045196532207046483446444863428764763716666985741267246982492614519242707392268603182545145237184876551145204758991305737506805239575892477720967842316237325852497555635289622519097277766009538518354136810161652810126327441583012753508694375402885789836605050839070815302799442949598221049571005757512777691271466693408292703838188380122899868381414649642521420297842289545484965076903722407911635300351684433927508141299970552942286766249662458292797588058177851774921040705182910994232312105582803038608828191774456255084139768970504259525270519880942936568583822117836674431382663509796249517042744495019658395615070844230665647263020686670475883131125304343253690617084858823260475882563663549071844282415129644761403664817715184550379457293690522493489415173256684213006806265769382827075396107618265007987705085320683437642253691909372395936614445400000156769576025583089278165821911310164095162959138322692066846828083002159618021190523208553647961432304035007771446887208220393715896760143170631654985291644122097909448581460322475916847269335178742626921447223810546643470519726615484078781265884444390241286434738901272225615814890676272946250910074760118942986390730311950316695155223690351160683365246813362352858148513439682153797387391205882579446771769836955405814948552649117962254510238757912245211908647622720534653573689820018900187711178208324333106375988493223301119848061905742978171121602407221791421104675001176490443214662389880992294325250909227177243691075394250069053621102247160016893322107024848347111332403053536238316555354409820792553179768669846565596024822143002499198323055765313247059085726885922724338843921241451883776591731440332595610749965108812500670164963327277439520823917344100466878955539450524476309716902156602921799741092394001622156542068567964621908627137468568486920097746038300495528948828306187745609399326004381054138652296149310175811160579716486387501258994633702341633995471324067058799358498955834457964628970623696170696481987698798184564803446015078579931201056817893073942786982100145774588426387443972111346921018228562384130023096617152023716746329747444522486232527455021274611061555015623527112088664399019173873532756659422654230793558441391668271224474284968370203350796933038933573437248724073857451359810198613619227053805067735759056225116635041576777995608829096570118453621338376567666636759924310027684423472298456363629259828418004189775069062048994840028091043742460336829333116611137502566932808532999659548256727338956004110256457564373757893030228051550356536914156698848744259128348486496383888325693589762200108750935330971933389778284264247114782994317107992115929382129948332985918366887570337061552112181492227672735013575374866441166540850621868225215182692525001873083835690503456914632103745825474684797720574250835053592954894220920355189179899219176030014732578334079385640792117360750650373953404644279163688763629181061420970072800573006547430673222071491047877626065885530546246349171243188123708521788238748331158463343628755646447874503756896032768218121641311769925070389806454011986920313108760295817528011823983864705633801987106736536483639235242325060176389888966289935144204084518903825597445535070430034336099896204670468606857515121108940275421990404257395444069280237558314318379320020460218653035931005874975428354414537622370662584169702134976859150574530802607420695239027175756640862933442459384151802785153760276879180643364554762643865622337162631022622551863274013533993095742713932108019625850567095132475644336330466041260856600374579548528680675373629708860431246383104825365794282437176339822245392426287605334239243299423639590900268353784207669701820588593292472412802837630419834921768522470645821390600428987226523821295326295355127737938141725465020517252358956611816577208137475586229137972197134437208788948189028648609225554110773582531829043475601925544661133251896152411644318038141698766549162218629606568741958885811313484172679958195870043295562708715388494030448290362342425189451183583942887544000887946383497601860077657342427560516727876451079278166300948370379269771128157998924390923885811338623535535916019832604895609377213303950090050716892656203384527206049687710215030290481621027205224506563360718003532461960127094776304116152418694149335911412646837973584154658719965315768790773653975078643227677112775632824800233649758470772145514203351319812361845178973298297938951798261897738867353724353916657525570492971326076383478959266154758015137663922926645927486060635802453240463147207336133447355937016794349453957826417686727461241724970402426937224554400421176544472086310291215749931095043184781226421990483645502585278301003084330304663768605795496993078937319127749738662898789678448175182569517863440381786412384386073184818803473138591218983977097189393902661360898500347649054280798459385659727034668279261323471747555520083994019027178460458632554796244364643808904542257599974012170845701894426384857230001600238246499549755142363423844164998041448458926631537662982501091488735045704652981488474532214125226139853816548743379457643334436755918439492161403123820259097575289757574650011494970832575859456356758711486937434808331478924190042126043600008242484816608732426506483236541203786918401881652517969507202585656331858786323521042071554001217926095593355083704498626210243269622496712112382498496348992295356313295388658417942694125402043338042747099191317674172863622103047337938670868454943787173003864400836413321073547622933383646941964499072963742012267950585386259496698523994929591334973384895582171877797216718884874277309970252278324743262097263931119290132140249871961140025763940514641838402675626307268064103178272554305267073967017318048674807364454254760631411882064096210312765777383516238728241078898758353156324048955574827669470321826741737969625271619993172856948814522552383893359786499128317866653347331602652819295105045529262028225934172288715074113878932389828187898050315516891203137504523952476669560982273823956060569106365465184668445116410990945764652447253962769739306841855607328650869826194726578940809804889549354918871985399853394207164636651748890873383312717390368469900025947685167544715524618918796698579600629956266207071656615720560264199888604101171728056192196807217598291100041136368452014295336706964555509652116585764500609194697905361359552857909696147699401265313209717692356209275855787257688031983581037788369494677448253677567439679829569436850210185852399902827075225312761391881356479347192848813607333002149188301805023692422071274059544547921870727532838135928995195391189130115359145440394260654785156359533728003720289223941940654873867398387523024178800517697331728444824853910946505866525574890013203818684917040885092527966260109249352943189970148225315804965576447818618005696714857119172880357731202341278207675721433282671784194979861201600793945665995048038936079897710242710647090427178542237388042965455846061654667135124443913495344604389208954197584178473827543739525730257355968033263376741331257668521715162556347339229089578210143237263388508111404433484084069851837187906958130332875491777515667975788483769921799245220672876465633576211914690391116330593223277779281487818189688162732317062658694348560808288853407855264380904749564640602631022928649255285024640353965122646990279137527371967815461760592888523077798911065046452416924715706162771310241121560464433051113201400875499043777381430911519155984378015987850896789729936187503219313817969695540294287135305772051851382375541946730007676385804908233572106819928306252372823073150965812165520624510684548476972181456078775481772333036233659049124708591992311658856949987796442552746301472546198227357092053322325837614571914717637670928362579023687621088565157004005666590857521692730013608077071041687094801540453685473398986615697242807418077256454970519221341640184060454969110086864000534455294545514111577264504500551369357263762130599902112983162474723238146754642619466792092610184660676759548668655807804901973544179057298316943851009436311090496487570347954555077299551719292155714078184139640858024490796633724392327688172344021629306292473647260452647503626543625462835273282463802455230806088296286801412773898183018357846487384503146056264979677979024115208737875622849344234438753417362639271078507685216565872056800722021701404095826187602616042794200279278918988211315884658305692293498850844493141233393966913595079866031726826726091078684455788930418308485937410023100122515603410661866000218656560694662382014853357686952547127088544686418553359844804174652774127891748243122667602475410856331104158304937412427107632738853000550729204793518639316701416035945249329080867468041335823391818164670888345035838140970875729723845051391727249343782289059362628782380422047974078099581714249790883324447335012780085995960295409341140212765185099416876774624677442400804183257766169979667552148749043502498302272605019875732185207721409106219598410586605791186489189932158292538253711153858845559797364635171889139350972746268320560269701157810631395618259370532799363525372698063880667008349003178158235708815302216544801686147630873218809575333542880340664207552256573697507553966569210285644428360640784654194562175857439760919754730134323481947101044859155977394539408864226297963566462729865401726635631957591257888317204560210921818387951123945157241739002533226042480434055739347318766703757801941488461572857924183368224649902210838776833638119781717033789951898288503839248238014692334699135621248480276431775836017075821669551058026146050337014781583047700760044094032844741828996946300300562807954709844789795679115212267352843160569407205651886657251381654878193265250097333212510401618213283810024073945814874841222208618518855242501575658203524340247518594500013212365329718017760288499274525518439919860879494909550849239282377810890086725600152004936908094753495970110436958523168111080931681816689759736109008937468000998880123312523013960007550403217406420716080991933881035510392648771834659734904217999251201704759856886536805460533290935637834075866915534191000850664774542981732759396756917729877819935522788373622575360602305570177233043068974530188666028741966020455275792047025188278754637622969177803089029779045907415897486954694213933971286760796228833955851059599523257319754404856477052370172093916464941810939206680144414130460168916012530296380059350662266542292326323434055896382962728001591947043168370713739269674778400372094963727765356764668010581821174564550276448101953654078680341551301307903773273213628629700171643519050802442907819302889523474984924318996778797604331907983089326031172687090466917291682591338550876603030741600657118235936468555904071171336594747038451190181545293032697991287431795491351251423965069375154729124035661589856219321013726580858809287775374497562501819171331838433235669296398654225113430115840305939042185966065536192630845055545869658473600993877169314482210353074775695882214821637018625559492673928816811624802305501694208761910894633375785748535118882419703479316244522663091501757793892446201563059937619415503296359773054168727007504422901982166250344397215574071950790673390851700595136536584086081609776716868391190008825902695620634788644518396681429160062128881092544937202631678086940526865318921406088009784423850718912675282034878557796333685378446865907330737011608593350677623114579314604394411618724490539229601395905655444753399900510001682743858204300348487790502476311560173070424803141841860820951594956289952789781675181689766957762214948377168461519995903762148566675850836328602717431629164296485164280760755852048719479537331711948506565313318144668429793783267593903356778559516528749147823547844606764222903187362217357047564545032668483424275613941937359696900325982403602349046748605881422342187477738375922759422588690371120249414823359142918618330936222676900740850792212117275740932734788013268817973235517085299906129882465977931606899889207018301514143019321474179244175144774512317987748205615797868300154232922261671411750828315618419958199211189056309531403818199618300267396854524147823636102372135967947163318899745597793462738636104839806167958014782001608298296778435196683421916734365039430965706481185721375290163579579269515099447271918698802715366202781024683619038376251734617957863660867093625515531305816235709785716617606811957437118046824715354442114908646599947911833320723654213622960996951401525704682495911981134216874938189499736109650513356776005387585947339744612706167988939991508364203630813832811161583125197894918337470798085652073199407564921886854043582056780755349002480163805603157673905152026396150370305268547949958986560713348393126356665858159380317701822691064497242044570261040225158910103037171895610812867368709839318072776010086281752917060992981693694139819853729237635313338478171470113905417869386674699118101039879333714275853592108301303601856149891307886777048663531722286877668987339974932619023806714118699176451399675547136692722292921707941864569609828135006493806306152913505005201811043032531783020474775142550177253270202361605250577173170072831194774735293492720972191046256481776681687470556194778985686345272458804732622825317671434453838249232769766991797236352217473343073974292451827992769180000072476660650488551287376933808225222565255695366462313414026486495810675346656873405154131947295929587798328625711253829706659378967789088033544521547655170677434502086096399419333440840059838862885953054712366642925159701291599021253700129721750825593846911916808500034279569527702253976298276440590004670029879132442953147598698232880394473558282305827049212277897274269925745343526625068562392445532956753930525536769908800994233398058839604967955273052898566089445321091346099028502447174018573562003218986635515323833161097997023834832127578540180544648213356010061812144902446699565562263606637171270865127291204554853550751163081461848585606708872736299495103838852600826969571094653156673523092598175236811424744856357155373578025405955983551538371541830730781176317239706810884927871373165701727430293622059547831655686043831066267946763053478596566701916233307971184316625928262074558383518436686345618309953843646523120156472100141558967492220843184628172757095598638911055433601826738497180978479986822384545006538849670658286867652168065571550290279237599795347564636888063651206216601003810453377258888809359167410393941675258573048439123809156088289144778782367238058172282984455304125729219170989523768719435668864795476629455382039593502705868186704894399987726692853932270762236280946931252917632120698762051830493106086903355374819526053694235805514375999719275297849051885555137650504327127514252174058687134560139824830160831451089082692670445484539983771776148921104532516703988743522685449735073207865857739874319022427951393710971198666561564066871084893879707260359741985249151099330925697848254685576389914375235085715159561433106649628281196532210814293929137239237513463895348804394179900678833225083686272555064765602385042147466885058903931703008028387360178592869253579480700794235875798291877869928417743347814335568410393728784743349934004720448740692387661116798743974767585514938705882679491052303300993072040019613611922638519079489301505027030094319587700052866792388951555436134419741565922784270479435755823976759213969234043591611866872327485825564186381300556738534430635175779035347005198983897715612206201535863273562745664545080764660795149839741971205652538898242119569171669401941097693558425224818402366560357961681634619277494195939143350804217485436066052950810026602093997475734772320459305062584340717402852952206558231858510435177766458296834520987070421094547041386558468339660977587054221856024909246326275017822887854780859156531467520181988027626301596863631993871050983947455463203765363156929815195304131063107458436138707156619783924903477982034692980366447702876948557700556162415966474726355686327048458449253763178580392172272526874296611292009393260862859491761997920344770045623286943099210188420677333367103129807408467670928569563809866824710496706709962911395849851416838144955656753381679771985922262774773005615793242517184489507714772910206284594159446266259708128100674495168089666341071311208713999161157074342859688304597510890435966410785552480503872199253490207398020008351983037328465866091627040891642357167132333171059240569724072370351370186148073489804466200545478957066078913495881110470560090287214594141160875776439917574537161146401689516062743655837921976849626781125862276558262005753507554272927627113973325741446261192320479087219267048182811471259310930318302023364163154886711871498774691919420667533393154926280989181767980900385294879969806331630608491761721109154186875374551316486237549396246159625158093248511900864947037368738163271583856641549756532391529791657885858876869791904960120346478428000359256341021911154979155098972596851177864518306501192041748234972400005576820759767845075081353128775437609664034097253990712560628677631492786065793269514945353972857847755620662019806285905352497229795168656002315331172555735624532553914164347514996919765908035894917530567997868357980784668779465111713334003416586768558950243826340808772756210639225265754671654757280629185732862941276117203207891164131109546299723073644477424433464895340624381744741422546422624602896615423146515495947500300828705907166875426857834493775996388638325848145089446910116368523056144413785488554323424313579653958534064073982240788592577910148186531432718286186184832965341751414113870333145461942421846440904886092702440033332670554809912983881504778715758542034985148176131044954395673497282805359917115657279128628054658088696385323145243731236936172742396744482102229404904441395224286684389699268420738739775419832387452305772155246737861656874514575679909301448361956242247832252041690520904485147082792601515020947254324812508799248637574512237513854562450290601395088592427130768057665775284592694876252683437879889353477529249598020234615363396338006679741255225277753243896143573524380430249270586829022061407880623432187749646439245458021957561221152104495073893321941065250083623208684823423520094019758448116088210167241361246645262284635015453693684860756827575234564749815587390088311746045245561290802816029267263096448775053364729864162075502774557912686734096455916604292146621120965557870113704618442194623255051748522708959708787623151682703816696704150474192034048389848820672323983544804282418669499734420078599799557871509387123580745777481383027236476568242826869461760697669636825588284299935594525881326358544537201565704674927132200013391124516717523438099524810313539315106824383733496225532288304889014800130901424310069249273767137319107193182230027552757773691564741585033936857796977231705468698116835482711350125855573519609092303102717436180959379745665314653870422395061972029106757637770289731820616558374947307353866203839651605803153180167617377658707679223347684155415466500320031236078902182303602640552403377482359888539089443816602127284184361869831212966649179618382849012662009958046031978296028868267304527626737200581759670490989220103254253389821461668879308456098216467949761988074961414096362840042327786705824980893206817672642277930283023365937432755358750789631391446719518036964614782988619708748273737596493510421899597433017861209312833612012319536067541188769008909418551191459989131997534449999555029075898538279006853564479366550602536399243190148836556869765248416510485002883901726298705579058866327160040543517561288797572605495077983379037878135072151299458019603268151042441442599275704754830214022000639123677582109470010898982126370226252945386941011201303036557035868347767935361485560574302302455539928094021140981612511722669209461636102965152105788041720070361488782719196278778444107577575812271610200074172437048377766560671345797974178250407623394281481398863356124292764693425961381861559677166406952207706371654472870930315437566010634404579207797317720972407262877748024399796846888082580971409571100089410245245883054146800631428889975871653334922579412879572655325777533965159741769749035331256452651226490722824291582803412834033662741908870808805035080847053564698803531985295320290630117768742344338574283561017669784786385615335127067495493393954922139099452873968986729223589508515346815414402358258296995980000653823117854644822968941156741197545070095592685301258334427552600773749294461938555000754570084467191003253953751817867487731404889061543909487646658088318971057519032288978101503894858598294682109724438551107224161517941599033992218849776170992130984155138684847608667194575921028869791584851152549550689133059295316933683392623338632221160795109370141495806229012730023996070315330620390124650336286070756016437233080268911973876633206158256455464090878546099807365215741514507107705050419375890645692771338716721595948065186212375258910478663050987127173124221388954230313776085322903163504775722091849841286321471614772350206521986916615168500308342438410629318874233571390010737836165756118270498329509372042882460135935595655025462213498515395230542970179637115260793735892945236928042371370337518484526055056969120752987905079209663725728838372394534250999853310893216415602313931349590602645757804177410596351067767144409421945208809469188052295238888833627032503233593706697671928394646994471704076994496758517502185418278755802483388516558395949044183275613439200263074394798137010762937351752178526379190208767525528693090979549079065393145464735078100923764918667027080571887639603401101969883469412625933101688430969421154685268935114115149594686554217875537063981574202998425592240040914226681580424329059048638854398011301281739645854422951506335774251323827891164385899772501702190988554171362363161558051011979125245740745449613937737914031686073785238536444707919581305646241686482242860727518417625381762672255459934485925905311642509482176863989440230002880029280689102876037452609644050422992352697269889020908365886605787263362038450431678899507768106809053854390709504475796576709186520554655068392838051217743587884555043901152523682586010265212804559752070621343997317544746848350322767263361972108100748871082767895530088777367812272092351603797243180614148688317873265594647273719336308051781733106416019259407591941194627308435649278189758736896047797299396362071701175194207712973637400085235358907091765234628046717384957225418637217946641701398911909635597702266908496731223662974299352002443048067262308118498162559024188253048178211357458780076053445957486613650510668040556124307592460785037402739499306325791616141337375130738935040370984706402022249653447401274171847067734104783957097853589236861865051665117397998528065069742031156152644773807737746252416544778157449912638404905030818734571107099004417743511542761472547179449755969635195967582501549443031788576347672171608498311070851575162317965196842109737670410340160821304893498376330311374108142960896574335908723101835213696379836502607817468762327702029487021121083215020381856116356885328780186503617972885807001455576341326100387317103853188716338618603005340053999112761117593708251536538120954796734125499812005904822823075211610074015660945491546122626227275280706157003939933458667883008649229909509271576346849325294725324830145182479888577189572974878055875714160285474534876627453399291971817593002967737430564135284818578527982651003920786160960027222886291089185709340491195759248985494569597980516169188058179015385249288471159983664942832466600536776305110116275715777886260309580069164278369919022389741442619648649150061426882438567675723671088902809617702293833928883194229752062168307745571427594062904806746870582779740058566730245504561398102672009972598618772454168456582762506280047962750407383679905222427938179489352689263346145758309603189460406650082896166956581483009970144252050138152460969669834042781829825818638117873194176905173360006003772306706876287028920397756129452950755390045837314494351177243288474562854254007441380425663863010326382449015089835393902761013637310381856585350187157706789759692550150980058523359300926495396434423438438143859083028144303557650551012584440542612081516022960404113819460641138387986015658293364101630423833987515289038310676810102258857038678334910427903355064750103878753826398041450795409116728066918458596867608244336877322159566160229126917229960189876893436667450115693587098701616729484028525592328288375799884652519947190222711510680247160410689978092778317313348889558464384168067919239371214258942524947586775341355279405189127252221024313093511413613125133457424108523367984560827751914148833396170295730000612084593094434732784740995092491584719252748862908483232765598422044045327513653447683187446731615571438327470739711790641968163224472655223817473288465161042204871055924374416613784212140309316032295152747204033931352485669509102296002559364752409271637622638343875501708134271555156675673234600483564272176699091249095589603817280635960300554950905303270736727159135169202096527841485998297863461175751511201775817009820054411099300804439682174303647210421890667389835409312544097879144185882732647336652983632463496224970221390479190955200643538774264631422605533291196766090070080933645975540801302974769022012744159790227987196422659531872765246629977904227097035774959013273450486644590888459292024485769218540730375658891334316559692081144301698330161575884902030630538945667782670429988442890778747202119613254751812087052761332610968189037541336816762700992223140049490884008550831637098793861394872641087419595363701604535575190000162132731027422570315800607416075741554679749036921820375471452167450108870566929644710765218340800734955403958195073931352068616159975157574985241992455474189313681619629719494038582444074817263283011687756812113062785715898507806031539199011424203842740287413842598258636880690108772631175653278654437957881422060499710917234361978424186088587371895090231062173021837487192925545430894668850690055016711401952769327342668814623127897249893499824632727820117995070614952047410833970660801348566245045101930565032822362845383931634418411587957528697877449914894588733692230934720776255013868293514274539762117648197183952944921464532880456693373826254778381331965879620828360755274590452192273447219500412292404319959670538230888214009976349142731037000785411026271561021428627884166956812236353063847538926092487748344383490002549311644800946525402088760500340566676159615068532361704401756520788821355964218389503523328369829207156318177332329002933510121265824956833964811656131808269814850387082349162230049929793654137127889220061297484258932681947412559069175780345112910740726119827805342537686697109645330007171164978104854023686587048827814100161793080230531619801976310342794772454679891502135905392564062324637130110990656198531587717159847880339813141925184669263363668583244691328310235207500349644506956943984918492879168903927038956883523927422328595371409169643602688647204921422265857685259181033657470862398543854527877095740328461184917943138516179134292808562048506120961256384116216218187861531780578367157630128955322146069242311565853902959666147195031425304723795462242988268812013803982137181139534540829705668735563003367169100127745522408288810194269808201475437727875594780890507356343172047506287563482493664031658173780992311186406342322317525218312437580200489418671112833034661191276974206143179600118502021172854907655771326770379417050497740660304482931571106504778376233535439946818751782817656834555908956950883718630400727490752335865982752110897817895487263409225376946913824127724642025644283727699944268695519145162357534054361636790935815829998229181050528212423714876962455183931167369784511139610221635622540672868623769910380252733978190892660053016432118209786567365241498362910762887323008644513664781970084942173024497691034602439900199848332534071679054742031977461026945902426945434025448314560286885259588952534833273663069658370729032597858614235995564366533303347804025825644178618316901362957455233407728895736890578322206445436446539497185704217628649284675610146357458410543047591396038763412910054715199450305342302361332813203177257740309747605400302672201031325353676661925908089040637246652487786106180264473837983062474680578132467336124929208980131359228548272928133177166323301447832990959340863078736983791148982309338724243640726995704757299067229623663461602259838858236125236612216485530954387223104619985359413420221144734665033162031383578806299043909987769538430652236375254879873479381878730653913679294771322817185543148540433875614601717398563577665267446420575114958160828101770538132883431074502744034988037353782237014339690716037479871526771472154282642426149686343644866330341476367554732740250213498638287682367542692837710323247788192965784817966433944707523963291793417662594425385136502390487953903304576770012000852742073464647047960011925310431406642971278048138301642272493615820704428348041873427408789965405722967675265528853612149036349228215833062694243832948326811055247993026767124839073630557054295806692895975028740776601445426986043227101811599589241517401575775488558387244256354661555613899295557307194926024322433070542834622531259928357341178478499317832867938657278796908777506933565361250377307557174471059627999723517362998150357782846926181464512271517957841539625709890630890849356406470403148538028581670741717807055238139606181610434224558586530613954863120644457052570488177948659514005656225172388793541770267554798730824612022740345288460816312207868374979463771699064670779259723021241405762486901733150363597676369966942395421282639084161296119751364079564761359252194344229843115315068776567121351875858300915158577993053486009293060282453524362440913302316865931254196003900195454034320789687116326181660217757736706110829389744380502002548811616280815224735997022443636598737979997525867605558947789465186205832961932527288230810752275056825462294207336975408017226919489575525867061749072123716677349901476815455675101357130594337655058410681988867418438684660051061663647661331449694242531754007311210611704357655811776514879667594313667439323663054015219826847781016903988389358037573390064772848341194968122635168748055812590080890313664410326822728777690669749564719270609960752133954418087479020376983120091253455559963258285902237038057266428901857227491510680211181964924007333695088043224683368177267708563511252928501270877922815678607450277885438356591792430548597942191439974572941146804244811250291423524710874664912594998389245921160224213813094036237900303552361562066333157879628439797206030739959837876188432896715929751254257719994967661195255958733372059085905180698153002972792411360016393666611017253693596600290154868236646179472718936574388527194189547140655363829447547550236607008842214919397757478111412568154365555054149498230311010911675437678856116072700265561548780685625285871467537065215628341096356545623938504267720030232008214052179116860213740873483114850508345747883727050203522870813206690333255083642461956530222661156517864720004097857952431738897594227557266710602690456896660901085636246924878118420460223035190419790801988799942095700592272649432842090598556503286490472153460699639565837512703635752508450057088493583981408376017016612660463126387362564854509010631324595624404819696835729653748992110183399927805061483456447885395069456261457407956155681689921183415292629322205683375238605237033956102528164475936245141648406834972805975714595037623573302411747640458030799402598280516392217121058144039034564766126987075939854169052793003991515612435692259424498158234228025143637407074357636556769024825513234783880183528095570783238369020071769609347076809380131244394629274501976608220988770798249233199498713171406573085948592500907323754352403631918471697463628995209157157712220224493899522695104676540841906205939804289238045138615585918986384622698399302583915289443005615306200316450362291000385226375860342112808878351251643581340292008856611573113775898703749486647882119448252847694526560007162013091995152932832249626365568713761783007126496227242429782129579418922455766915326050670949057769166374744572113454174155093439204398479085059997618702803145781996651872267927348558778354922306484020344265636321769069241408466383656677800884219233972389458764759752071128914724687775536415344554451634588306872572984397551915646271870096424421198080191453585425715853224306720427899334778028762824257908709719296766598590750454779631493516792545998758549464893278312722294481661672922438385578186545597281306828746659495481967087678790417039688375112604305961996533072022618559347627144740146177629005425079292855042106092270302055583649933801619261863756753721215308127957939527364149533703982815117613282761885242919965947507168335443941935010039918744599668765749573740872407232440553331526264457563192149364239494507694609787869651278649800839269394318098552071763942931000585075111514373852111532201838767987969150673087490003900540584107648148953754833730738738382033915811933510932384697508953529722373423755660422803450881521675620807734038070636478058550111325776959594332584223662371249220058430332935442066113243849261039252581335220659403047504889213247753923498288553375013671129991794622702195444859055795855664121523381895218913919531994208006770562230447339719213918181304090130013708424729857758548849899031610660874267130417696006901392908532165772025371860910573850929072506769325096438827737106077173939377159907283936677784799343671113602897401248498732003321118719717257487388174434687183722303077650330711092998198784376951143927527966966023545185845886628374735967444625420928999065953921237365858088149525240845412390465765344936711857371019302135402529281861037944087060611718809015593195203081884297316110555202257153086834514965480365782766923025818362579531639488361977156247030514383592758912403227882586014387139108415737036984388057107927969639106934738532819051759114809325025650580372139190666370538900937650806540928759634925714032230602485458877275813239699554981162307824103008837406292267997615002109034566217067224838649285198637886978090886217049930146632229464605633728440334511899893165491166661729339072454470319496457635049070130516914201765400566209005324461111010494697038623294828762830858050894849721639694370298968173555591017545286382349833032899774318986471918513802407800819290655173044272369622564589411461151498941558278609980497413182878518862890777362624662578476445793446247722398561050260828588067346270155522094215027658260096778947843565907092464860283978203089600311133945682071018741833040743538562751105392630632967370639195639738954852904867004182487162451359896294203084056949461292782362677728010854299613941539516991851967274546670821797391797185240830778657357115566576978546559414421830966554008486153470281349386494742674502269983233657597536450503773079747518588619578059194273442839812427884227328683267803643344025209936433829300076853705571117533442250855125297890867219376353677478052370427218430399828741895955481047575610347286027207873364987297890609582394888862713075834970414444062311586276634128333480882982851852231823433673767857395852510071140014804613462534327576488515049795439176652676862083169708638828941710354320293877136973334537519370277569790475883253340150404916662192691349310464629212878013543016696222033436650049612590922446173720167193308557115373518847576891297234120411350024268228202986192906260513402350967225997983275585394935608333772370601108575465554090942905661996264053438258245420588223977278195644141039184109174038901429581789513045410368386784552401373866511889168916172150305537635462799531023506821608984123745866581177003570052654331740664774263547395719470145446970365542586004299329288505327114959253831783108467203841138807904678397479128644739243235807218768511928322323729345603964487074162217798811037852442990666137467262555706125000468517249623325639995885961412622897332868997850390622619001517743439256674987174712334480500158897815961135173812176891709078703960391326680742687206765136780326615583894734756775620990829434911966921252096167078606268736427559214182346088399841359445926995254907913509041529947504705527313622094365235324752719748077856566211028337873392506256405700028005647843437025861269790998254561560097890565430230597880055900127669767413690756530883898444144807448154107590207844604556306062536989445439939517945828364963213860009239912574943345595715352199524464466564557274578316516360833491888251868920995455176218755049834131706007244115450056410824157649183407543528049616908066908455705829599045956386082205078774201495278547388636250241265338433970812171478992978519701374478260648869479550474920996832268541072346003693772038312201283067275065587575364649206799727578329614625605588711201227759194334973491676763701802413920156028283301352918434509865703652657907219521652869743667403088998986787152679245428176290263183632227390387568617439777106424191508945861687624100465992980405902488099357981476471572371972052119603117000168645169383684405678367153220694476584838875162544154266052204284531412998226374362857673442962211225187119112024287121784378033118365585009069567265299536649704912071981957376335366735449559518189978464742325982095065237578406025745558505905351936789015802836828297885643071356497772259197880188781676824152209048375441820507753326451277823429223147107779325528072175747242782661783416742000767456203537977963914377059966590818647906462708204634526440847354165479940165447060376270671546116599196630116549250042341525973835393002485731892150726951396039055126388752895245046702758341010849456762960587846121197395045163091198467885636187006687706387449441605454594702507102906822933338466217448332515069318676390237230511266797380140823614727356205759045303382798677237185546375544986042956107145609334245562998459892746681077340463462603993239768403292043098421991276230003380027534387129076651682302907125581633817646554328655024887964479261350291675101446131293990181716773628805970472305337243893739127541533508073521643726157492424376001166737749964688168828901940014259276768320980496472609274752250598131798940095716185013524065260579705337681459065208997234321078554579238904809833150494096583021758088267863883050087111293477826033427946550378965317170536122145178084944430368642303173926647097749060959107149639536640716964133837675917416675583992964531068135216058180571160028361502858789177302426312391225526978356678507549628498057932639174388442485205487462485966360518113523623347050567214012779750708443430290964640477756325644158278608226983843958105601058752459703517716837059556784486999806258351036654829019864989360336380382495531007431846082450811779744851197808892341342239073779098023260346691291376218583380270049936599735636241900701266926248025661265966215560238067928558994973169602805363069045787734435678527231171817588087380178522541733385446913865173189990366674899135232492594419449000878044958069563150313929750717640615754227777291453811837239240519597080443438673982757048300699279043511878147518182531091512519295228048649767833943360597951723222995989846104994118800489461737023856127732879763983597952861730487608938474938780390946310640571542819707074443543785688391823601301963623852973705153413957339023985182270503251218508702354702158093800352563141723992628798234551148880805103915567325564630991103327475274836271118168162616806953839509275194614797556907898202815492482883550293959765936984503302053130408011255231301790754252077009969715791512999564675463696031460345987042664041389151178379000299702709721834568089202410155337830564939244698646987051367556621045987709098946848407535319907251842197667658740823490720995894202792419743475192214165525445011916838833715344603232022699897442770604083892252071993866430674959405928900115488829383670454369729201596645906932891311645175060556412680923389896399918898814261125705382085924946783067962895447959883215259962074567147174438033104759750805339653542508058771195051089016635743921325522085462235776206970745979812848873168501981670928098248402627510439103675840478530534853045834309721066886757492516089577182197556983684550166562256116842616489181836241155118426660039408949460214449329564497072586719339923565771010950495557210970720859592565205511216223773941708849548884929068466892255713942528512629930250177928852305527520087630828484072275151422798731340413126308738098563675163076001777286278276021829033110440906285362813683267041468574285311956526598406035379402534435467889764755531887092040610728147583165835809933566277731920557524276348576750520508733923707821806132443172166352422378764112713042856004814177778093767446347163734087607455355845313345692499399944071006844150790028943063743348702026084874509960333634065982213618862543682542396785075185190032738905918402923892421937859680777699587503882505178602599028623414507087140784330216358526387368965401283257681286180402684378683461434177624058785093725234740976453638316637217596684960904845658526815054798372551570273503480204866601670669704196925089657822323695516335084271856675573124944509332718038815350788756993905028908001619013619794379572893943550553874863453974632202567101126190160638380231359225549037105458584442143873386350522273991613345606688808831806712732608973444443691010368861670062679488549299399167295194146768069501042917399787467213516038392051002387672265859883902975216908063719867040605362572987504592600671833767967385366112248986046269755158731477512780011327843656830651838109463504971735231341126005248968042257050814992664391814065059053737879224205070136373711915546942893900724861942120150014371376062751143957400487219890458917364116244584713010620123883831044898422517796012781681365676384906831139106564776049827752798520359133327478457939267989302162796889081438534009155879991968436885020833938562306622725169118200161446706598285363412688088954958596747829016686745929614706390174735614926733243166220184667113249808608708318816016988667225205058709981146324918600712547511566755274865396892694029179413590172627633095857904057136337042440770093866661258689572536134874776415369473100328495466489706012020927153827185862470564675852772055181011632073757977649080313140043721115200374995253726868338739123763945577437371224305275682203526417340848831906154419909486555792420580007136915317334933891845790750916599204836771021647559343415068012609707237315256216575339770616806844355983226010187289628021831359755295750447711990188328404992729911231557765187140563290504727690596854033305312296464699020518093214477978851966613706492385547539743627571418729175684220923844946702565046447440473099391068777355278720791590659593670919387908516071413853854974557558464253346418273987580240580056114616026544198459819741673073851530567975858458320732588090721666782533190152116955426357964020273712251800939620662290387354247026772714214668885428628562414590000217723174425256574916015390382282052215977053132943142749382748275357394839722213554431047487721341033910463354236172849255000143154551453927148128219161336543658769692916691117496809601362485736362878482592801070206135100480584681242830965214216349585301261954782873138776100778589605272362421527554109553028182868265972680377639390617916075820275953734714673909951393359130036632255100323257707719425312128532359765544488502874014991670257667478905810188275587846096918073783025664091834037092146057767049273751789703959362815591681127980185670738546248586943167091790583668856495234369679400626095030767991170139893745917883565512342696694823428402334381111303836129826635949949835014884112432232348219791914139360818514737414741243208485620115487352205587632780621677500967390728615438978669381301793756624115279644426543625309470845623339384707049942447171649188093790348560102015701680917086045408894085263930070044940984339394525707054099158046256040266246809357087827444084357118017392013249329288252831563172861127188836736772150781630379165471337856729753006142054193256869269115869864403696487228081373894239041590750901853855768566154351394053224601016018903110156241003265465141055059975744245934035390055602813567125838276170515849884587447104402828658317011621662977779348716113416521069979046651031089648184473161022927606327548874867530343581507610187844531429760348014069205935707772097921213696210634183716343398265164712731602934739816726817310131649325551925801000552319679620051667879856070169111665349759488142782779210690327953552186575046333731015124828415248932036846265584223479129702511435711551161503246166779307203196136369063505574662516440305159143211641319581017251406446315725438871776697072236093391243035302948790020503094599391558792919460000796100363388822405646334691181026583605193734000149421651834235167504330821251351458983447110178066939370155601654564783303224436560189627835251510457528747343909031227928273834384949159703519144004305167716202647361774788025742064443769369186164732021458468616546053555187008371772739443438206241994372713966578789668221583627028144151098901611377243807253072342198554010364514151326199681116167851101101762283789471195610297274543626457823917012791913865284882678924364472385756780204669202097885598220757991521137165208327245467449035071102331659766911698075610092677398672010703935159728047248974036602036549833771769194648298961892223872804606358859448151671489281712174353967707266952234674492298761472195517830798641258832653936080689983264083816202148440456476469987794062962583151419285589213134298617996480624648988961198113483529469489010535658187454309459394571048338749716829308743321038573908364858959039285613642232932878098370657100280889336810661390134513216219517282673243902495616565653988366556240013900304242952085816167191303174713004906374326028048756369868744214081123439512694273340030426199553508408203745222311821293919506339870502989371550561440081195808885565161000450258279754156642863695938034490317585664742956786205961940294651098562187013678427970899711257432434860689931986710014612004296280215932033604977054933853470486759269988788051940881362829346037812004994347492594696438418296395697218288721379839231156000564781490766101385468139260883463031948115226435229599031453667703290670554871554327992426216061052128173684085702145798994620071202433372132588735665513124053031050732447511224343781634886054679841166292579291192146753304589088669815132910954380844853009205715493070603083804787849874255145417526124380032681898462665999590278191888850202470519665452552252890978258741577391205227912352384508092636805558084407859618470900626687620772612276836049138301635390121110078761990201746737296955627627980834652921141074878422301990744598790446569949324260207045737069994352082616322143774159573973083952197754107616672994822277115000790796378053637579264104678964215980713571902734263484803367742072699496953434575452208942101204283860183141445258674978405316065570607053692545161657941522315888751974152230321258863257448403395419978717065792195563202514820049541726226157315980811473735438270047382873250488232767593271287730912404951479306255796532281039360811430110622447808153178165942125482765681465221040262909901138093664702493244883531687527351837954726271722281924726362479589526741138507981138113404635220121732568150558204079155218531822672164873065020356132744040709439070643004934982964732032622819409570904080059036867717102749175739752843201498896921523932885696206093062197243260666417658571518969825245519950635948995753476706079404651924873042631737835752273644907535385366205664655515608709880884791732462032076801249056805839726422641511740537939056760980868237449552397009480658142626290503143263977218794503021252003258071754518789189144139363566271643530082583636909012826126071501899763417546980086447573876717242349249242655236123275280666033551239839112229681592384792231586821085239226790647600795907089847339087058673651825516667323040827129862656237346573597617923969164376590987532535222412965581834873678914233447371857211946450650667333393284911549053037137320231744270879347641602285121580179522879780282840149541890550746751229396402011873757391002870010227633078692751956835314191488781793222907522095009395753435763702423817502822522137364776169246946287740426301851755436343161712130570378410120918509359944935556480907851324859024943973885578753307577986894193550384360258335462989694597570843517591196645710809396576136554839996070531448275827287042822648416615679595059557710400182197030630280921693439311685066116483465038354721998897267304393228220374431881492095552861804742529286784486092217205044048795493229689775516862540231021461879603842600357465283144691759480384674685664890754015108756338511202980579766017849911208054815252508409823722453419586912684261368147739446770710095665914931845545530377691409358030751670990195672696126739403602394945900869936815768829901310214065139518957898226108218947885344805878442680520110931907785975006313983306161334531802051651133260843779053526639355631366373645726534793648221556709503493087370563205111137208168398577881416661391732047778892286500056222288828564461976209853677002692160493695450010384126395488997063315807269816832659214977753285485458530750068938679396430270129056144590094872552846201017752155980139971248930274336748365868627429788310320522845306733234194568484782122856133989103924567697268409333711391043227957580591585662946469604977950489832354559550660967619760841284300147878435833285217685423883352278717380749391552131286793029066156050403893783738319230484900709921639226855944226176279105118566101420601795485818450436329837839446339604279982402710495585682398573720659575524744630321773240678539873768970994087387700460178550216583355459481298536313645517065864168128598202675561613669837388662540021437198710025594974234380088454121367918889792123678291228114685780893533961123867597478944702953782902964569903541276160503451993596633972336241025136894653798222541628929401049168888151267492656974192306327306581871970459677789431575100535414538530481185034895869992644429411005712401705663771998610092892657715084327214152943540379076021805904505373742705537467267058239454038065654734054855372095910358357575004164315630676733721256065764590407950419274765409785225085641847283823747348251787337343016070088286922276564686581496334652678883338156480198287058019408557444193135191838004601623345378781780400898527681849560297095833032960208036165620067346015936780936956297259563085614841178729403049301312463015094148929554727649549457220373920385242398699139622196911257872783257052261897905885183513093487916568815422054875721159323994591619026519334385261755137568099830348134469883892545832365795299771988062873877292094265888614664642464077637017093715417138027468866505194803861515454075288109042763489090271097849272863181001575720599525335959841091362456037049103144485607220833448023236361639965719415590239235611740204392643862434524333857400354433886118867783493178055872469268624974039478716787594771153354028712831971084388809591525816963327662712595930335704091703772260892719144715380929582228784907808300124454455695641980814321598180867647439517884791074854260721652423838752515131300482218786497213439694045267318069046408114928141390629200582621898619634840491572515992972095315505211765808696581752157712812119359063219192864266165325458985002435471861261983645008859735722768286157054498501394278459659604354503541060546773148442762489983022970642455916321652842872000725080942920878475251910780429466616522604919646437259691671660774834192653670710919489844009710217447420764111642296998859670021616697519775733201339076580581355351142706808058163865250822978683441730577053203447630339262966154262217283023862738833101179509825625968661862160819067706875160984766243702771601396204470050472995952999819072976096286805829563851860260688301193590711943766314177025709708909628708213379623138024502798096637853921470709055635939677725355221851000793548985137471712423290193285254198513481329471711026156061737882590333454863527505250519985157754332850757579062827971869861248721553590697763190971270794450376237209673138702040986195738404812394863456768604326316767484340177952598490370140700108751141787251323486317992589974646335338336535933017795938899032026136164542612952862831512347793987742028684611106743585850721771167439981144070741212528623577631044174380351141918539297045579552821481267494505138339030667526204764192253001315387829837266864916646718782623714149399846565347419676074268739207995856308458379602340985106496252459376672158074941985767961433626868601244148337748433036471755421749172177680945383398761613749073341761666562306379478130670355292727749674121103356296960772044636013676855551840859204841380613519958522536018352069259323767373765260502476399737363722973544094600855976609807458278822522864299789197636927748436735956239685920077423565519157925788560849645569444816393098073513699720218597012737237017553978157822764620601863218538051056124204850350664999314716646718833089444831900978679996279395090722557020774736174600806693390819338132816249751965866392672582807886891224462215628391128761975031928057169100974006780167973315825824167284938418460263219048179814012130130486476249787360939898837675640091244747445095129184564319691044761165966077399972896011598439221589194561810860890173338229805820907613095327229911521918125351558892914374241869175416755228349687301500311688799189199751805474953673561743995974246009873597216277037902190702913976032952906624530993991422537671093331706821343803655667994983416548232038951549998108787442584576911812766934928367326578252962215110789138799705316380366348520481067673607887721091420192349982680395513569403470462911084225543581805646199697862963653413034855759949011634334129076226208585005740543240160456948503709967321895140130421528815557691387425435570176165109921619726949505158612607572280343314873425122779581294639480832257517844808518675832849648426371226196802645957645784824216792876025563194840233937612188664632434903757841076850214003836370151335866556920452620315766288049586054893953144032685293274691980157339314106826178540295294289303818103707436508681066232515323315359754751707637771375429716794660222467007629299133332950764251467056239602044059096759022754422974626998265184259227597170847945314973845516465143244943219965954833687416889650729707017277457532278031307962695279195958153085858703474510918499985359990576550504122984008651140899561611877147781635023035814921452109398224719648125204442574238845423727275489739623456702308120630500172973274837538283838447318732107156470057037391757944329987851573434422598981673180925114616833271164918642619240589280687514137725315439806167226359115105256414500534671194479072261011884558076765233637213169548587295094818519275517399968789911983393338583468668519942295591349206509129776164066392809121791031106038785591412179791008649869092246254711836016043580113941873365906243549650784950368968767713322803564445070919673533941388228868490623823688080161628519586681551680832401019939487676018538934344296344754903261340080112500420616189834572511170647522089958026297255966591271934647668109823256038419259245348472336933944018355047018738655735332467921996337998764763836954996513338521555426061802048424474121826058396470321084941673206628757831138356525785108740622464656256819414161645223982062086444650241221048739823044166670899180468490181082138724079320121199390331173370181727253412634776071571419637765775509287130991241600322961475758666922994459542736925996595426225410582383377372962338688013788145652277711866593174519494033873277651573165914367716551265159881628958952553199804959992217588429559466698466700669792470447084880915330049000330459726405641714404710332889827896410070877706946719514192532162448849916801865294287961592356394202005329320227124087949302823703128528339004757350126257326115618974738442752053249421859137333568298008919312561720281477376621923647505420167544207964145435756502980986608872999431820354102999304293513001364554613485235777450240207530652207630464070643775773713069570162722354082630990383230483013486076176676378734203745789279598152943680497069913702082245257391944123870989867827513047783741374974244666368806342587422775040921080288284728883492546966128384694999739758473106806942880412298547670778780445951763580402040374594290274825913282367228552807254909779992972013218433452834958838543028375084266324326449674747206957351411048041118200749123508185485581060253458270342039503937637664879996634628050782721869374629742766009766608884107910209859823426541997063760232822866893465042752817690155345179115836604352772525751112451037836333240009178028427627287400105158885020915540290221933070022934079925651598453830905301607303797576588837052111198532678820779952116634834806116404862446721899848905569587663868828770603896192469724303114458978645073241851039296120254162733091317579462241256415568190684311421179125520168876519374956002909143314724473367715228555882838092144081147344999730965987199263560083853704674085018905706002483476094464548051355398529599299643298917688920185703961347493501964695296884962007537895242237263785482527842636017052168664626887991013423800133261132140129885162359737429649362705636570906553135414563709454604990246782050944567907717470685875627704927363283924160008669774143163863549602891893608593852945972423961490581656155108103646916338711643282026518547474480318464624568565912208551418307407968390811536168380374530714015270064798983922596267869787928254500535110912976998540526051935476972717751029772840328590574148337663878209429398757108497441677448654013764532146439361917739094308362520758473873644841100854747350571476933938141132379075817781483399053520714305934247022749906808333602345757922752955471412191357631496650650364105986091993504994787846668822833167005411013868072405283278005818829179281044511209055699485504225528330528837654453214176494481526830037934927235024600256342981624934815848423848052392402759974000804183141989728119695772314270153155663662691065218317643451949752490268106823166362049889478880672968651277433331415700078053198315339101455275293603189503051319145726862251940766754016875438039027909381093875352850256429016433777282132973130821662262625986650813467988481837802072556326110297244114605015506785005970725501708744188348247425914871144845026644841200585084374212399317790324074431568247102494606388347882824137019823558737852920179521593018454642101243698371069361738985059658807403743409126082456986358039886476887572243106155424638436723367719948841391970894851980914629314720428502500709334293384863766919981226322735193940308338378005344913305683444648952814314023412617071034997310104521415168038053025206612804528175672201520957289937584272308084825767415967714076450483302374941101704452148548222264663561323099211253604663273547277935116244658663598350370110268320739892555337615052940770572432683881566997693854202634186999612672156354190805188062875407801032909400557921573273743132170164559057337808336354119697583099738831123733349565502829012434576881111061148637185269439389395464836888196264383110708622553328285222596872546073564600952469989831265041281874460711592082440336889400886642766613260140004533604670847884238329939209051426557535484960690034902708280248245078133138916397787052960017364587144206992089783551159421888980154693059475333360301694269506363730381914711354665601910387293084860711215498261105651580114915933734139758094281506565950792824456954132244951329717217578229769855559329962152694771373594719444104485993807922374461759707418188594991514385059871464152883479759440077053220906191879849724101399342065850917433440273383963774843383705263214160239075686083999459954327379566696307656384381403441802453501756161568644662405475533853380294038696510975240106279365137997244964925496474175384676116825055565361980599858320712241078346068257730796219685708623667581060549480495650036044395185685525118110484534477508746788982379676372068955216871952324979278291080148666001302077530007656450323730079777578579107345914403839922321450678389943822504940562003246015902439904456264650859178020976230470975771641397788236367412735963858248549078834311752152990270824227779927026151230595458850932312117958020298568523745353171281711311956106043683917240123685642236528202923049051706422417137937271604391590688399787100657168680213117340542932125654146128262932114988249622924998766990070845960011340095651585756504031343747966964553773780207615463252309912779797775161154757747767107746518606592013406496323282167736522684528128171207140729104969029755090542596316164329146734023997812684789381469090987078215487093704833065072946409116416133627860782114503727432099780159631171872396186528118567298688007757169266833304164468579051092756602243588998821470585546501816285250223269990145663932933985364112754299632177100115074070596040056453954650226746657164683187570464188930340214862998657574757495852344988002821796130523574360701099878505784444024675110254525796260103482930566572964624239871702524092741975561598875047074084383056138690185765710050321293005967655092352853129969369566572708059844716139931806391831819857055556972893686312918220349618888114601080121337726709040307528380323549221589129289104285256948050756245839055541878849753506809038033401546671805215934216285465858755381596055141722663520575023909521734573505427605809356326148844129319555399859338278082603345732538544986408119278282779644747592985283690272307887964642130875021164570361541517125485256265898671716006414709523820734006533602493664845898666937250985334289793582437467496202534340221883680347948174644669165847853987186329980643756571918443315574541895954096715826112953708771605261336013664248642758499662800125469762300797417333306628320445622863161103402886666115438213129819878247380902496052560205802781209441132978451682808704186305583136233682183490566060993821747339513782852247129569569742150484955181512011195976603772017941520536136752489122741310368122408404489268234172330190706248332723966051366923375750524682102423763897922716824734209167466129147640117488151505025745246085794486179461055443625604423823349043192338453372972986030797963506086943798834257384982628858422310358967162902066598730782457977166724683425968701457546958742443338003670051842766037455477197218824714892622332752553460911831417291172395824716339559828591039909518226482278390162677949152391534212142227774954576660980465675885896712125098667292655282180832090325114410159199483351238431947776105858774741059838990541522228344304508014487855909742394274174750436498701199582564308119260340821912516586255634844356731093187190223251939448068673675441045445867681036423772377824979977306966502298871197281264785597465356658699463674475542596902804517110078127508251859635303605598284918113156224095544402234470530017249632448659409089300867512245716635356847962232638472910006765963253839699228846192628597591458381603225762976037200956996357734189649428900650792036186703196190372101561432473888373577093521967508776280800895956845741205349887824861656505919763757303067526006407020747069521821343079483524515710542068365139562601014337636796025701996388724853813827852937397109807779824583906587163294672097478437797454016687704431587827325085005129661740926300827470993307901191818851490778822319098410911156232576371581398345591022369438100721424895173554565669697346228425481632709304358907347405774372668153278406167487170061494844388425799399573581419037092532203446852458137705063988281918236640620253441537533682149172926380633861403860778673072670547963549388729560757289770208222291797232360699861530613827363471156123467980492720851872190471689968027001845249869147766516384017145040379077469843727269619826018128000996012267207951922981953900171818404954794768848658633396017106516612112170224698357161771408260033442152487792159452788678482976210158708367289434394883301700822365494378960134366917339504995018355264818458366401892858598691004183077135013750615175497841111779279113488327929140054453478928720615402598611771645088073052322015618663060349627676739813115020602723847737931910305227107675599737050971678836405236594726537890827282474773666186544618560934830439177371071540288265599278183669106364645431792379052488304473844218949619405765068892128883807091084803383528899487304839921460188213189044603962433313964281803788806204537988442654391953232684602501748801512116160465736869920172220521218300145502071067697004050211123838455268560979124049595456202892454282339652638479289681245099742647383948086654590969149310407301214592403704663425435745052823652612049104519095879644542456714919937342926041981586724998872518588643092456801426082517062400530589828529615317359693805325737143515124863751081888399549306124477150718397320544070498655692096353466242878483096106708800152664642531005032947411613529879989520587436503849195106999659251044673289753302086696711165882625546274384366368029148846072625237799448653248737746556553531372054620630186503207443288272163088950054921460374850491007593862557052837860635574277455068138425405440011531880028668969847874902626443009544288937407627278833593675478528303623906931197869586477224725680693921986449270034322826931384603293899324182756032442339188618842565661056495171350334315186561809244715344638195880514955142940749707035149025415484541093755302291724276627083120533716395310660005292067363131030225725459353367172779493787793461728175091911453514158003114634467901556717170383144262697863688649436918258138397997737352871306935000454854377886485377037847551464752658239369685360773577138631284312054255463492283075945594171874119936993494723451974550776466363703804884674678323331721196437590730425886146111111551450927920216362423837741116036225262590973125798882895936495218014275487149056282102137744982556449735148088315429382878631519074740004547480352169784784786087233757299177337589698336799376658038107987453465973209759200061454606299694649439498007572987627217879072480297161038587587570233173019520494347163381269502848811814469901609512486039848589044161223983389466577120682522413283872956189676907791878983460691807139529327150654046970611562868192048360958137406948197116742084650899962339756840121041793415114595064521530901806880511354613600999430032100930701001481454221993694831951296360168570048633335857784774969274936423945285895618708563175974264809250945868488401799781802041538216324142884051546512788367936795298910554180908020955429561425159701040758271914746380900227109191006958460313064778545939459882831207448990570717909855522028271446542959910771353163704563464148593320656430618869133615432880927681259030979795653694222724823926463091031785512394932645383461066495998669675940911689684614857878346143757578496264779772857360105357581340511520604278858405667883749500861436192366636907624199283973329695283022757855835548007256370987021546503451183781076467415711732986461934809863842690344845340663612957997154187408686266152654500305832438828291304424474016099673818570154491065261360883578167968309351041780472036325671138328031559282302902022117079696417862386177260711183202101161453136211299632124012102967100453911389587068616136509338972712178558795722180063884627969465402722829098841171598611779740284819386634705594870969365541503632131129747202796112178743357597546891593949451572125926387141590538745989451693123300590264560257099953996356688014623588327732450429328576630417525218395320984376034775064196692104633588218757923847603140874063512556065735951847231598522452810186659411569278466724135552699262088775337948252548264277069271134789569135640640141000490018867224049901477789940687874509749323008058408174073577895330466617374368092714770083322926874595787035396816450715514269706159002114678634678281365695094917458700503635927378346640667736463414490132596175707080686796617072102981874997398903187686025789998257976897158627780628561137077239201131864772839192819299453684856346233805365976485266671370685598568684911473008546002262291112202019792163627841880659497594877930216126848827411807432994425299007793148720772698602455936451891244423238185120902175795121484849673842396242091218272506010612878642823101217882091656648538722496497794624989574728559619057594103165018940846051713844536744637060260190707732081960589502147697898353070046527608120507641590313865961297294693467965221714166853304142817351268340004080535126770194380722221804609282267460412680715947295004688002123240634141483418579202093287156282737135996968067731882050223132879930418065535033835295051284530401626650439418503494041641830120330735138783114605437179114312321538975845496484068152487713425122820175547550912624037070627909007449103525675722432398503898119527020987019912686744381523267799217518655444859515919189744820089118814960392581948514096982870620139265128997923021318702601016703017784799798963649590818614499863435644594287755439216451971142913649432068136932658041608850779266928416553420551051492127656137285953524478744225637875124649836020530326180337892313381943985176504387022990698990783058908196510179762598117056864980520240589946114894934355214120941126213875916654257721118880894625789969862490051247158549703245106027763057669324113882630579237094397223579675309106359584391856847762231167241479085949854388630428359777447887052434263103406439577049951351514746005277269506090602280131006771984223181440884303479403282037977722502043552534155874644578128117082849175679064595411795059215837599526555576716344028202353506268526463451858554334560700842672419399179091962063325425038009889713267297586352161222805333657376186578578555955970324600756782935712397918202651328828649080376311692378558932035969750586285854343129122075396380784071154636959543145836325660718240503659004526959616356291817456884779540714168842312956761372743468561458751699212959079893160893300814225231278443801287656714332955294153670994154350901458972964937327816252099737841675301396944237037812854508787060558252258052282810829747453465413282932471500546859553960938652125452152016683525917643991707328857941204763568185707412894516596699052719996395876722880338484466490508253873534434727945034199634972174621299953399729850561065157573930512610129945313338627526118033227673608466229371051048455372235747861710655380277219481156378647990682354686692842117099327318507873274016160707237039687095797042658662723410382145281081220233683300162932524658921471936307321626523731377862406204884068778677094587370023552950877839697853304181407299750194871785181990190882807032484682223614071989828440277932818886347506311603453956325270021562245760461973491693202761035985295378796082516615284112084142644993622726763418938521860109626314400304898586926329934857112030962319243389302035161060967818577474148224861975508261080015192875350062713627653932240502551449239916145617576860385678077370775146268047159051850677771604213136262826615716514577655082356786645179770031644806079087895997633829674410643056536898500865653679009819665042182968860724248267619963978905164434690316590689237782323307002216692944203415564789868414972746556077115523896602718117685496075282866954717912691604499105704040397842527384664207432562720566968908228810059421487950711972060405837063739292363069051448291148873119119793458807964723804013602036276189702689268104050057869227090476343113802561470666570607346715678892727977051243805306504548266367975446335066756886404650697782931276192222517745299743380848696064536704132382664762146990401854535309282351190281660826831457540476103115560908395186765342860572200097938556040741685124958165456749835231410670860801497391517748997323477768907261741485289084058493484021283218227320804481433316772964250025195421378762642829761152218890345729279094192917740934187576328700504591088150785241084618516634729363791979752323116676936848950433323352310890928901633427613659129185950677863562056804627892331422048386039290067032362529177350505140721155044898951900750234439758629562768946349196733642244607753950758333688393236606617020127742745819935898953408209129141444052313715035972003882413284529680741557577778208795032926248411183185781350133448039160393349581766590659937323452252241251484439003154337074431372714540852802061373406165237703770784767259710512887119602179716753703172446481988511048370052416523620325126901454518752764436677831721276487244002887534975491989003677568669846988259058896110754338575946371458845660575971545461504904525815906493727538803953545775908707149958433627200894029065539346802416777525862017790564305056753312892445600912842455353035041287157101418609354025149528993663753059417284939763276279544943787407226582778704592665397290560600285222252762991294229688249384933322522067125155879260950136232387538650937339143756637858246688282173390599023391020151320184342782833712266113412646752816392950770489580918349895562662952876359350058657671259043348849657251079301209181025489226647508875230691738614449468075253187468554141184027026509735923148291264076500729243759616890274586024986143591723432594172293711420822379725601128190979199100358368749429652981396487016084909953237061571069165250875110321218437773824704094517333763282497015296090711604246686644615553068371994596185208564718472451335589069118690927021419940435499990928502823756992843736090987037757117307033971703576106471037317792618254808277761546943599381117689743361405727758078438272336400306068788779409520131312138577996450312779600277665333170807125068618792973067513394232433404119601679817461684790885687707924267171942496433902779207087439933854479226653504310387085908489261845774239009948989266168271737867218937297388195633691371051196889499309380054745837755641662571389109212929603438813064043366247261814915383685806541691084480755701198307653047048463230987037088172891376446718632467333940114336426534283564373181195964938525276142483866377668722554602625376405535210746838656060605185372188295973796391988300938510039884860026342879213613126877306635608489592600041852617917660481140459270582774224366801225173256493539171441422869219085422312197729236847556532927644157690780328644504656049287684317067259036346839342999679199398955394455568905728820711592977532117711257258916819282269702340505041549109371355711985089517798627811258896623959270095778747693625464664387172606314600213510747969044281909096931426901095712249564933243380516569519549294837666334477470418438049221041909071121243873287734977752741003137165971170790955563392683589194662465661892684418533510495297809205352644816927743244609591290099493158319007087366349477517348955742918555683663397551903539927820895259166213763890518968288420644279377867984351809281188664307278834212825612117569415427445303803490401443069063716587959020392508637255822909269918606378705747398034962000773280035656268276229385090751643175058962831958143835880220586871688272583066206112732152883643014943458061750676093160059857995098886497578243465039284701537359145606338081696901376613815680070564826384654027827544333213265256177337634548197037831367208809159273381270405704468330790516810278799002297307855548789477310582763474249439994115839453312271388812304399354264383646580340796492510057077172454689074434253260956166813283575601484663162192061568998491557476124226446451129275624930810285006858310864357997189609502546787643471662971927415344737730466460631541396521258494391316114196827192852325234434541213431918865312232506928323831982924925671915045780015815272286904756401140403940285975685579762843188943733912710866101509976408857002781302796512460568543803257105809420003381914140190182007693191071872787915344609767142845059676402312122915254738385863708499875162477430011575089200318841826667447534517459004374071116722389075962983659985142822347270767989482280383764598506661307098710243737694938728976296713038135056657534072801595637274048183643555273465502383306937831178439841493323031441303834357547698359127926419561394709078528390465869108560672622979030897246196409582960812177576294338903550840935633336413599651195827044593782601751803345268628547331956711879330743372203881719148080186523762274190868282026247683400890042927605330533414825285946127668595704489030004965865368489115724073121638247571541696416380310614078370247103447246090628866082702214852007172010095235167260925370713895980216494644212641061401037027908277662017812350809818716412101918007252867765370682944589981550719764018936470842407150061847290673567393723892778179416855257296154525348888191085661616941995975956272977924437698181845293093186340591740456580911478509071155893887435325693163713443898291447733027636615858804060862338514039367635768642192413190593342753281912510261474830481152519360404513599251953425801557482865438681380232447924824360392720149661458025962576502672544713658011655915185779825077233431609381714382118188066198968502560459415797917876382855751812393256162252334950507559716305935770499386516700525801167065052793826126900198894892225897834435105550877329796521972750562692347818163063650390437593303244315935040810412302883176130081601162865252970211831740141845105343619384361044969489965745189272057080657563252775451445207910155631902558561870126540216203181361748178181409864470915339366116234360488231692889291819023017119531438462327482882349258426702466765974175660641455879977178607301347111241653976868398466966894045590207005396799713585779112524121303044371363445681204267390323967516251247306962347378013803959379175513153222014695479707372883256032217739454549189487147254701557766424250154185738776733065340634588924204245849929651276568505592548180493397171120498226966655603929342709272743552844935687453646539335070931996196048179390180682906690462621510928122868628482112615318390532085130879668815399910710421624684704406676131865527462103171515573347884593190964764572761074175868214050535877915206700164050452652667825144817671233075595327289928026507864150623410329432809976535489016911643135483935555664735030368645232947637435677788272589463186132889678221745098035605115166115026834246831985284974963617303175978255735884629984176511551387479707960555183060794367516417535517785324771716505562575904016392255780387558342483313486628287237548022986885442103462826084282690490484301242724349777064004211106489961171759921779446820125110697746420754042822414661776614217529258109574469288688527189548757813055892188607272777590341587707161237040258562911163054803524042529244250289910963947114024751598978027125381919574628655239861411188448709440088302261336884083507463729650640709497789906291847305959249476125842584106004472612099005844144098530438489783180627982255510757754293020787092077290449937810447950194822464075724029035228031891022026590341065922261868985312248964930108522613429230596885836535621770108824533179938767678126727680879762358343451631585619525680749601646280889702256535154427715771497012058457062568263748866803640613710399039114402162644942917409266899926921470039192695981236344414559956217452402808033832464595392366884178366009290105913834201797465494920808127395019219125834971442202027560677599650186276040152597446807842283458387728139785285997266439472030532420618788660295598824378228374821866374056684125898097601403342394638258554138952384886686761042452090789309396665440249848314681437186538193034778712599426615711217619844683868160276663227419626477992502098849812620347178551437908136731053769953573266600220161930891000145972411583150821959230397943583572451156897817745318969879272352128788644254703560569313229324024739790132321719467771035148331820340368504474888612923649624066309730183028014140948616919801431908965857429019811849369239858496616044496584660056325480946260442655423543017866887454547552748676914506290298065677762485252001434350145539795338373639947474361377591450701652602934092643350637356445214165114142156961103357090293236731235112743652269945886419696520206461449411830624290026664007816814198292290098276504812828530510697987205949283103374930175402555892202656921372538683184784216257889052723037318222592334595274270917742607291982869541992146187827244227173165234357472162649309440784889570615608479293828936939755752213243239627151807523128585682145810152855639627743669382643488495813236166720344226357715504423603202788836285376705908999913948883953873406157338400008343489167991712259951520338898657567285428962271542874187604233638730635865341072068286932593240878272173535339183743030968314843040685859013466240378408842533441990107583824569659825001488848808787778495660037051210939822216513868975395324658059112506317452996628159626019171887203961179836939229401879628888920057653304279783522967439948816628481700662581129551477817529781567446067638610120432047088221015205203855221431432495509958476968776266048599003338057384219270637810463569466884715712849965118455940419475345657026042630897303661535849517061201292662381735058808427137200313056070525634255684110075662823224186984980491440585007917256431145947308786790927614737402318315895125596111882498697819608630757740451724368784806243989918142344638036587769728657519140893659579603897785665604182768531917223588816719682581813868142028377965503996794907445656681672591889331145507077005662870492224023397082068493741140793703097009346056483866167529241516598825393538941531297889987340513033686388547840798729377552207302690368274377793957462811655775621226815041646813639093164619784706569592288582247187972554226338457678598022185906154494607619138463859362077032026431087663788141226190253293310914417426914890016254167351028299620587518171168445709846457344106306278060342309730038914057348627467095774899299191133835536814905321972752207879821775211684856580311876513031971365484664807265805222438308139233445463686975545884936391872248214153546383275586152540109335743752918438729944677717338743592401935916936754272541441807441116983189038090819494568027340111898120884031417817222424067736551830040258206195311165892140803159444803060588860111926570217518699068603845652246736765996416772263984142910438973761684094986832479869379708044596968189384335127204001135622459672507494416858012551210000627288495023523774850673397252331544215960583392144607546617620029171603107695634990893365348362468341576458150784864832604184273164732122900271378670396522752020191030224473801257077101866100505250060217664140324153764300138776304662599204173746126193665160605669575130281991654919279978095051738314775605615708288363576184738706012744534612299705721195882067721918455001276762480799735475912241862191242856732854216530506178862047019720496836240006212808436199624663279865004439326237988587782727451296724209087860123446362567447982851122201584944157388956505122371928001266825379163409452966462030195207114565921957667877904858439935056052191486419793509725149553858720703626157083448197482492207132598674605480638558766467813001918144068634044689164149943387509596506992199380987941788767339580409903348926722802039007367440939405145893704454012464313476637572042992688019771802853974869507027661168691249279218794800675354487708180611307183648247261100178885228821587407678552319333440244588903745812425053811864411681863963782421157881774201493356596346830938744771283397384073078145409144969637171026242727742670328925426571142963170011202181593920011945920895845855022884668590014694671183209386035222136183985232611714592467911056526939068203241655541503003951334039878812821098336486743252314934332636263752317075159348754179832212404461838034079682526980210575940475237349031440090277339178054196971977418136309568755624964548207947962644049209314285307458397525491734736536383357563661619128217207638024332246505071436094140574640042038321729227685918581200811602878725841880272195276153247954528511828736477407565837848370566168502701314821661230382739269492644708393531186845449796368466001667813758181127683828680358829580458745077470595947825045986715096668401280844709164896618828122441172277635065435486036537258122635211131988894310097924190368949650836294797060719998424580852134211892879336493034548881965419301709616202590557735936087618633643394014180596620100420487631154982083398279090745066469796640533628341982479121768347847364956736720926525330396409606254924948461378735639108834695485926328112406169988005026007679876783331158786310972058474859682053645783489689173979967726622996246961481799956498169691669906375948384840373646653162000232487827238012694718282508121966240041925207797194163296195696345629001844053137990836514458965366264472688591419731745046268322935117909188110203332790393305140866890899802434222846182641383713987024828653001684671086839634092666710833035570254848427778480786664876415181846119926241222106223704891393734076863000159006850154325848685326941363861988876385612168197805350764025562927060856007548112406331150128171767004636856664454910696577264600814890493364741145442419347497731689324640363220706844976106125023162897016317513362589665265524611959880766576282127981892200914255268621259752924145539124135857249804438214194463927805727495274222886981592470320491067349059145001521958606333998518564241287597488371851533430292847411630570441539388701657713923474518988176472710003454929477577298130109590162733241302002657092638274949700761391285671532543837035328294956185152885069276803023278396099954689667389659457255492760458840911806576944801617226153887494500717528820421033503142434964298365969851522148293697774914091335254354509436037099699661382742675662182536464072974100532124651463849261583884957431898200083879741317786488004470770875035283835469598102516354349270930851964086912490370584536813288408734153792813302093184631693938415088999607476842487936470078379626894933566073757697859088247279529658862033764027148846671400386481480821762403225586164982986312796396148620270313901234639578316894436280612548001913970127557415602937046222744997165739112957735963877748884212028844983073154118539993033728170283012262103761104430823691655846452739354908962527270714243278102854884005551776721452549097572403954369377227646908632370604267816159368549341517773352989246044452797443466537499670402541391619356460399560552030590829789658214392175439482347257437102009068772152819544124531709981989172332493224775633619907377563750160035652041860504789141660287414098727121132362158689285077061583434287483954229611072789215656341818758167982648410296653773181791250223994892071216413927206736428173929351345111729597860685622039120470873267068485831599962375235887718169985554108885801254540192789030115951222819628627930788513602891188680976352447407775884441897217427490651888396252577459966378414074883777523767409488956303517046565222567554561986198068660889963651869373199955786190299671915501850047649677137082230849013730441022767995272797950841736532475754006615657162048507575482160763102020845445054423963538475049788198171083076649685667267182500042089489228394990142406985542774833664509634517929506954572743301187988666355232195035282207808152537160890930303096914093443864771330850269399699643897271537382730128032276493404448632877945903126909161880382526182790674527163551681703780353328979027987957698667041602608107960709490988043710849944841386181804430068403271110157526553208394847882010362390514565417566140760723473083679780737399340804615899790747654363954565283267594202902886392602548769629624916565132555098540083025811772465333486987309127136547994429103453822557742128199701125161363458772767346112921789300003882354981476993937491310586661404883110467229835573864315261248062700074511034255460475538964359624232401273095129994278568891940674033704754693373575912810878489708281632926476035451313139085253073897869205756799097495240840671553395503521589490861719697215979093285904317603351718832014999415561812725525313570330323294275218717902021508363928114097989554840414741201938736113176757983636631305160010467303886439033178833169934881109419364548220171289500994771851147708479432825720026490735059731201614692905980348056997299794790918242661322143797711338736092826808475691079006545510822201300203083746023690429477245373903838907034424671192224358329304611150748767956336710847741137551233862277312222383884277853371646533109585855362687456503586312542979833239364983018536170880736891772488862314585822541206150712571399083397899211198737926395443996404867661081106926377565782558944743725587381309366940760282612865195206595288410427579902854257886801929849140786306202770088321078483597076196993829853272934078199850747380045400471438422509934126562001145117257821192312796260012167650214800830892563953065253709493702543283186873913725695329998738140097149487354525204480846128721115199845246557346324502054714413266986847890004787029215249786845427990384675062781343448735664696847173890552289264187540900272702847089755195754123987023985222145401427748757481242335875364482015361128957755574878601079774702923406060031609549380108836574852573852121546617629736817646981733322451818539855121419830965515639783523760450903079513273238632190972661388712349044913455867484270910194315936631385200548717101171909078745083086784364195683179555789415588199995984589334815647613435046711915059950102460573668686546930463687972062359397221972367232521588696761044475869380746234073774799267866788169569716903245392027187662575993979269867975408517122110142430395484358435624104095490161096451591297111102158865574610925310912673082955179635944643951773120776055494248318395348878276697482452802384109882791337429211136639642392018403317694386737858269132272365700698852887647448866072042981481461804767372119595509642425189358554016817288520272291819928545091403961579358422972554222852833022614625353380264020531496662826152290322170646854755958908648945768108316889631128683301064457266542227695095002498291012221187663344587020673453016475864398638850295437920364940742950681973066327826916402725323080875290555193744280791270751058830720347310841822529846354044752730108219367995987074703123248658811793394212559171012536355502049285973645989529827718990025325638139097243265368026500043052682717152320500051676713602522466269234436129777384827493932459324182514932164108727588598366794322403628244122725606941103525916481710924677549993158304463134283075929873439577232416612420278762372501803006883390185343853471248268076244346535208569878694333758368262982222551861768872417282833822291980324594922428593242303706815297110904164219841694933166508295376057587246421988799336143413414651577540859921375456829559247314710825514492775144051492081054305872465846092260935600644086201399038893522442019649574178502422077426032244073043990389523712723746809050424039705251479908956815278203075673645650692304843382771554566075472932730714210487703848545492528188530672534242711616880144194701541795676229275209924895532234606191147646113218936039501404571307870058833208740810788423727054254079286262956342264804039102379426318251100125364122515026288021372262947632113128988105411124859641833656469760045118190986440691396953914631052425014600837994114916369906804001897551191809089147329666333669593249001490317386179378170159864225182987607569487208102707324247490854237507361593203216508935606347284154756201880332771603450365792967336976594466109557017255398055820582556239256970485666404066924580404399060880390138726642625241854611042772146614362413872505661365654750731547048503927139787997671360026583104920480094057541413457385925037998949619996353373884181889687064634139269765827260017881619644567716156507635325345421188855631750506717005112239446739083846458358656500630945093489738015527111158610529530933271211682736127399849421455300508781079456846927536532099121461261644259049441739601081879599180468084615554794666778629455561419697051184890485873364275604547775816421975135784295905520014820475357188680852712460538603356398186629028058037800737918961806462251809521194815160038770635798419654501174923943904510067864213387886261718855663589558168038442527179633692495366618376190089583717422043495456393378138802879712078601676213209873953885910394308738397455822474203063188871791928441297951762530866267684896779368827666508035196061568492372828493857697543996574574825847487263893205419990873406347932080171281570923150433116672345291631605241860818615706112574529977745614568341107327740944686941514117214692915138509947852789812767222804986644786373040008940508360773655754350717669550136861445757863359272712464439012878336560131847969399946511215547599051585944517083235710227088587441141212849411615640623727854405966101559159973015375200859539296226481362094016959458369277786454607551690007467317180818559309288722025997893498711988253994561332871021501470642947850373990823077619303151095348952418045817307084729929463622232392664777914753108867367431216642497854961004930745859137057666225974326920693073919674000933669895209679677256790500946001531196359916998469899049548569662556036226787856537082592157270401790369222677992975422255214707159176266523825618627781523509152568616591585201384702409516154676460000946245732643251415491858775484954129368332117499412483158257566906299310422119219659673448753789786358902156191914636686810903441891492729980947789435869258487774110256537536125990545409730839675543993503865813782644674483880620112053858388102936362391047602619171981791926255462281641640913688168419288660209859961196037514378848656711264555667054708624307060813651425484582397329226332262679605477214007725334620598251870914916908380770216157540811383283556184219423081919296729280891919905718038629806555149305041489902681031669186242957252539108257929437129265373405088877649061370094018846972154118379779600804892222098853340889622670676731145771488327271398233653417551179574294147053201826550031577952373840251802671594329114383831979649782601062458827071146646536890269907352965558963613377317445725297510303972492182676970345428731675581617775818487298181132038760666766777277616459909624444559267087993460502950697656099881356494779812665717650888572861101951615296726731045033050241440005836424850444759024835283248925927069053631017064315417156293395484024388018072201089965465375848381236880126685792520275611760741016414375994697059392782181759377587827325057813076494334110100328864517056955654481854303323017509174724042667528860244107554523113484794037416055132277829475374171753489869151808040582365425214158369952818912898676852447995348429396425725356254967965652223815665192657662918344517110604736724697876914745000316267491834507965990883873731008159496167103841433813650508512036592416732975172785204296655971445164063940455252127014807764141642808966694552766663897282186584790964678551335318655134849766269422072166655587252022964345240406046272821335419240635718736950116226071311911363227901008786809891930819676487647741798675919206635188089907385896851118227852178607952450674638122898768235492820643817375011323616852058050282984712617632562225713192193230164901039517431848878139809943014570112130404203868014857341016088474636298984230729211980260878659471693411482352295413887784730577761536241055232282973946506981159819376088699255285301497429772368986098016316707456030969239995539815988125201149992371837803628460442704210526165186807757342559246568368002128288032265921708724396318398927891350633313985423247601155717300968649335574176397728739063548707888376239527454021195058880250882673900222188432064462339761712577515210613842215974513310916566824239678959448338675777803463201578008979423889192876251699879905526477477862308445701796003972810697699956966802363147046956595221037713469322897737057081483767980461499129820184474642893251958445780732605373147374329021603168653230820360425589655331767186391362021012842111963995851714933675405664220556449345975195562082256109441837012431205510097803882007951277024193453483913275659834170866145222322676498251815809308004389982086530194545513851651523299464025694040474794539579329751722789584934327653139953933877633570166061330284914541891331715571386935293892046043260621364041592757698358134311135022268656431373766675278340071894003315320446961963439359940114688480546859479561748847912886508852130097071116446910163550712716380019381006865790846006740621317074077308670754086462307160740479682154883188254663927479165820739337830213605657673803683186559206730794418545165993114755829945326834855777812644365127937995432904178315045490596626735105394773691559921023920975509327705000115970629080902867075894253992069954335400382061461881734199815190791167466607364214752109815005811643377794088820473309564980134904025790161543653511916166409329695248495025302905427190172060340153665935088373805396483634920783889179932995550712117009514828589765892215364394158223815470110226018337417619630161957676877693636350933725485215033202819296586343289761277603700255861609708002636058133485580178618298058017011622479688494217652707531842250462494543403478316323557826408139374287420048889277968906746899692079279961428051053196458066562791507534245049078908364253752352712406552517538864881786396190310996793135465906984853747284276283377572665611196031035854028353142567938219841360687050896791866301600954628548322655657243436799087485168918106581334884157771445113269920590727126449425655628817705621468427444472042296522296698341392630836432506446901631684104625518522781187397704339518674433043464611169270874965295982623806992866139983374088213829046790832103135340118672824276729737580791430310869695765066815738932491888300067212841864630354617249171446345933839562227560474833218897371005470467116879092567312802620065031376661352313392956509317248272311909702020365152734646292547156807138636297236833168213574468106473067620866042298055419260287234684787448379140483117384322301618540683720206617762412675569013529912046195764300657077090398097512777471527006149141207829720730189082979217041532402466234891145918104608084454905446198571498410562826034424613652756887570472584937606300599077415459351808430759367860356961964820673723860074467655563408585652627894591468022626253946311209599244103936097947737934632705338169065427040060678148353148646424517996340927614612003884846758075543291162004638004151952720030963058089394735421849745092345061578310495841801503807705357806054429190509647718650908239291076267499824724758225621393683616927163797577594745898008815312619392597510904503457908821182933023504182137769565397192298432862800191391520961721318852987478251360167564420123963396900970915221177132156984473133612750807420856806891660379414947913228563613186740606199617821475902768464092918634999939977913582784786575738350042651746473960506795428369540654705395395300941289762427229944654945731026385290716763358974149233970247252022139442830520077472887624062545035092077169960338572058071799525294741890783307865567274642044220325939712588180750087872203962848113716420119233545260994436945109429935129906374962828997864262944952032768360319192466190467866148215738392215690562666847724496777402183186217111501532828675739836699384238946058182054100224342556912860110434727920176518748690717459709508530042944702169199948685740126824212371461626657990256696077676694993671916861238227628552790863385360316004630881658803937625448422283796631766604066840196351552590205636004448587182175236722392191667553801780361846890549201830621447572974076224269963462014361597225551767767051339045674455202017576659466792448640335232690782139457157018277731694017818359046079888865419090006509875300208518733092478095389803904481611031153581023301485489733790923290866160670633853535301667901573654700247786263190357380368155679550995736035042131872903226426998206510866505816428201364692504485821846904214769070758770439081204369509488278933435156307482778874007721333230592507971227886759759997084608014464902098394337499170624199172877989649009354393497660473909886108106585299960116142367489399766344889877329230095384479021685709686252122402060683025499730649117569229868126218491289040360480940587821046029786019402970113199907878782357777203747860401804593356632458701388049279540822685529736767021964153887839590368813810683798000959485911057717315023383124471418592044345575253310578559402512029617086203797312919279299385583044033810173348496917977706448940860560810308735607398328626284572673920409681603519390491795754698925033801351897795987049303085108609718390953356287094234743174201298401171005319746534457945976431060211395603032650946530682446424950873339831875966601302003399123438388255424048552914316833106403058963459993701976064563631467411210128624370279859075043033944998389025749513000826831674963505859634446354040889280873568306551808989558206947755732243941697439568112221646188644634313148211670260518582801646112115121647092987258853227539213372645053384334067239842677003209852758515187414982814097702651559444973672152764063261147218362505116322506068362035711670890914977858497043589652711469041795336668459364768885420612657209023595979528990298688671168136477690515724080135542044243336930190304882932018136551055372467760446079491159242411908610148803125866217640687612940501153765080124553760922275934182144249393896577872734033158814661309478839170797853457658589845735484098062985291515337200286572069074924864103650647052980300897044385351521751819853219816408188016327606030892315115981760876669984637497593404595569665604493918051656966364712368213351947037565616292974681705973842984362400306974794048843325902225527853551555216745075876084806339770924463819445818180503341100653646206551923557368360580517972800790261898019247601221273519904291230605021825325121392334877270900952794841455592056980065241146427975169254796881840967603125517390940219731516632407260378805487347126504987127217165445654461088604519775776245441352534003469843259827681777279157114269006697765061708901854402640592350810956724905894939968160199600307377911985991229910575533307096914068736041602515592213260455504386764930635970179058526020246764058322222750145976606803887136510658679191786110047357221203798439746258212861139108447221823054301472249882138951244271561808734234012383036839009939590708311934182021170903156964979427028007700092053022598814062268464251816846395503586060589109645037155150532461956873571441666119102154049381859236729783227589203306873824719381711356042673171532019600039774432569541017024198502063945061742220495280427076598052542369394006083180283496099707313664379987807247278555596690368618430481759570525079306707532679762901755903253414196507929148818981831577680082594226952509121832048925604988504380538914788338752645568282921068204328936935864965901685606894735130383128780348867656180410474099269064302305860808005126342387199908771865477411444203673650494339193250634958402972910448469057814734767363505270114844908172133494892068759211507822548838367306379537387297657199619876177808612687426189460505129911976484851199538227047007198222427807554026073452301395864554022090468171126538278151601667932407664316191873334904975929639904391743581055175410928765447941761815927285651255797703668654064837882238366379544314923490014692432423389423844417909694078295869056977951371941802050828854498771865641468167731268654967128191346884077158408255855171257891664310997314299552404471279652737772309073276233620358253129700938592060636626364227384211729106595163455508942677726389069403948921267458382638957157811323877728720162777403303761554798467443849381062122760412131168806881550212263505970393011950059005231709699607493263575682285683825705410635055906813235728184952723522875161391086689414976730610827603358362567825270766483591844515860543126091922802427490464570303813137683299032111662367530041205417448575550098516337419988308350557189104448791638938657108328762887879986578247997659269844242749778509917917958239006831634812245871355454242641004999402039547756050406707382239272079215311542309956322099962721834042905329033916988093843394361063661907054311767580230931124127426467651679442134564735238687018018608983295582369574863716077186575995744127749958349618133907892817399267656360899322391178912404616205353503300713849080643656388311068147252023759121898665057070577775358464835220829847676944552737003066748173918048931074894478974504401923886626931412106258845300854652243953631671334820733503506518733577338209952997753475632077992476082537154766138656330493325974158339658392705285889548145129032413265266731136944763149664299548376546285048041133216609769091435706672487320827936783689118325052443876610587587917512319978985390419744884071590945156500108284005375068726862035627711030346717651317294897280164370386630514288885235559523422904937867858788874775999767022121924598583901879659521529661253760373117888215953767314810206582625681086254081909606116680041577392318115145722934039869804085977510378109419929454644090009692964480040292505081284240125326743143930532559467107374721739371221441562129873885123210802419244465580295650250149785186082159776981078908966851481543895167070760432550787419759659643077380949222060277400049602591849267275178456937378761206745615148335931543697360768238950304403887738971585818743477506950490198952113293182151695821072320704043378128992628234456575815626238564619993089345677472401550468885292298275322793170153324447612799947400942483127728544600135827843351319232857510813467668487021619972991926396934608624832925343204051274480178330877048599438263580839104767195482595671479026258901628656233749412838599087976163657018924365510558706420636112235002255631516780595479279239516029339606420865450355301868476815411212271055471495070823694661944673917876479107846216559716959662986106847957724415138831917177288933447342216217007078714557762532670213173479321354042240116795206590171636325124635648044115034873407752935577862568878981269077224407767909080756452004425460762196213117466122019203879710838609432043705530276827800035009003265264624678476389394069115732170484236593810359490575017160209125675257223998408064102188794175463854839610732112515375202266691720769065811154119682495251472595229588360992277015007027930814228873518989348325622890376365982493823432744211622316685159353956921845618313427067354109254773341676119167358119000958281018403275700887103503663844150049608903497218218295521766375486096002837402345122057915003576202242893082015591021221991148944094706314774342486250806948884527483994185379242739991251074633882466080470112587012809618275698317685184351106360036423931530313269611894822920594516540285310013659653958898153965213885967693642346427314641020633062670611851286789697422497276890639102640323072358901546657177107420221252676374574794350012400325907738345446213085443084377134313814416461755954224150592250801925946901483611122315230310644824164830047202523482812244447520912591417032080322019635806690694378263567013995127313538045634127946940141053105617921398451214056695598502102528921057722442606357439741739668059935145520830725662543800585952462442663096822401068841642380266194568499703723702853498716301679594668418936488395210890701974043135694473882643948273205098865283401748287711663005370246214172849598199806090929495182418449470670676383340409080468466828379167358406211198776637657368883327183651059101882121390701546847013089341660540800499459743294387030865430804498087970748326969477545545796396220285908362447819857235223406882757315363357204304050308064480880642041161692789405867368195827734055075226007562036017212968933772913147121536431363992821466547830045334232871351930724572149735279693792662681833657726224538977973634723655226725256407268551420557757432948622826857835501223983065661843799564088777657365123388589108181332012840156740441594004897307890770905537373054212924080081202966320124455761917929589089769337061780356567439615608186686050165014889697323036446260453499355682699159065591771918654401374391523924619437624380638086119163766335348285493079870219333126540916499376166791446514737953721596839464704623051561211958864955142522202722528389931635890665790508945211418577546762929342485182585850787078648343435416808786866876707070051011798203897202231719744479739198468761793557676505563468265692208369743028577031769578696657315517608630149244775596583642455442671945263462661661967840756005360154242881710237695656483358624761582619802249879976908298125865003458868245377377569945972453456070422880637307359059452469542566240533637755553574612292046075465911784728097283390051909928104270120695177927160195898066658592085131718857173562403665374314495710143046814051873223745222905750354106666221537250484604175578962080189071334677031664404588404535099420349572597699762528062901418466981221712279756520434251423717955567817210370097464081307873768569926989266134588894001749374909097725434269567449189710137114304143656221114252058849529801353201769692954441983676793560320072140381820891736548996119852802243651739920095043327270768893968273093892150815666557233730955649326135330776717686641948907647022979814540894539522462597737905483732261904377748656789858221632724550544698328939938388849138251693816122062761097542983326209827592240152810437750484656394090607634871488205720481253634948644497207557198446084212925597250533427274859034837307286264622615395812049847911014953582270895972034703487952042574430273223828041548866049698260247057512334064745165804064586797774124576141437159929492607361436377430376763946060788943312494495673421298911394724081450678042652100528875279206271589080156929827295945342214498857870337613638571889705535713738206636521048020146178778773416821885544669567797355486619752656637146454450771633478299949585942833641257299239293020122926181909953261126080742255464484443066918240964832972392546117726630160794720490316700647327053556883275417700864042260820831574887209507607704901549995174936256068970884179157248094003504516791725246704763709799458718504961082274593637906983069903267172506520453345705312014848940345275182366562601180399519448033114655573755259944458901074927257479010829000970792356014136506733084281580838226158756656995821230319482805490670820824786967850570865770275243406790806442475876768112037178511389952219859588392819230818667820346516350875077723074508169555463932482691395473361124242769558205368286124830788543152932365965573300951429950024136499614996219437515351685537419503249204816910006740203950997330003071331872419493287754198168629685734011803716841333831299262408914198346724801047969739457005900765993085622408643958728740195884615636392575245020876379430754290879371281669514941122170526150290698197260615540805316825521784245526352222951069695591283580926268937014955796408507933749817706941786248801399635722018208509713031530019078052891245567065417262266919302319490110681358355647517791888701468324824187216138682364538543049451811777210395751891249216497246665152930649975616323983624886378158618738163415970464932067715644274836357906990179701768760142836497941420425126832170491119174558797586472481017740687692040940958327170876140482583401265238284593671675967915317671985422830819657193634547932906738592136627255483896788807674453368631307743209816789654013518670975497514724904388228176623968505220680867658816704000081169555375954781187443680049904785957612272711180103580420586579696214414742844781690680422845918491560511761773027786148390790853420783279162886846042326162817227595313913470162071824179744804954978951231232562454022982925113739944586916693577971556820288870849616027838534886937648082732638499982643552431928725585329873454203302102338398985559804911863005927066405430562484923253527484029519075388607082367212295913313732604967116840297535632130547695539705199385056505239734498984048004117457583263477037574373449552912261936034342174891999207205395416172391431463930615385262283722552441900435667619726647342406629524352219792850906714385362990885943538418085522410984156812188421643253916306454592735790252732857995097839423009388134827706971658782319003785185509390697778300430301580236745561440904395165724075088812833181743559565358859959023940089887490734332613574903955622104373391979013169553137793461871943090107512716827548148594524354147824895370429752450051217721586861413526787591216098926174740510257355508828216399866489910409378872806314930910425978609088830568565509646063384468422262249286796853509998400516623546199225817672665668856530869540673415821628946050737541443033993812450821747286010510801346430595191398520961794539488065019263093941591156267735040373080426437211613097610382052466270154030263081992976352832301683769246093710347024083832231312682014315774171691833386421911637304822334059605577431300286871163745094170743606309193762083795541039500304958096466379381202988769779087233914163453233745428595819803745001899220762656216588921152885951091507462629399176832334262697351801057144373643834221408252202054397107798978054726514641679921864606954165686530101470645942497651928784895820369725938963754543488265569627364653764823066490879593720866114363603352763509281763866391528396711807677271072685736928654367980619638319834908729678984842777157010690073963054504386923191321815729630347794013138793432754641694913569027419987896572228404902421920699527182983299989033870912754901131447010743070681433801997416953859832194377411221658394867642687730768331856167578931844170998114906841271748404598052781292264495919286646170187633790427286820368762120067808096337955415225792378717262430609102846561036531918644069722435226730817123672752727495227726698032574813843744219562405497195162273324259086131448766631983435631213827516695867597685418382582440329148585288637040765165834149148550472868624071049040854844152664442798628381765027019684331051813241701517609386826951689727969595946119057232015069535431764884223093146665682838138418370342423841722861084304363039088322131013502963227515981772677366652203877952261901094179709511555634017086106773858549465589104920314671301319378722126502552002046354320937285826104322783343956995749642229048490622427103651562348899093243947657985409042815725243770696287197478056268412389715770947542275526681249407732651235348414573772121803749784865100881284032489925772096103342716411762941526430242747451836122339868217197831184309760092518676242587336724046498780306117281179325221733835297093533154535190791083307837008393797208764975383152203651944385197684975395458754497460078812308549898273864430175899624550776930128347048663459856704692343886048860546848813675595194265577576751728740105563378069690335772539064961935324891130195319737167833105436306791053112611538850054643318779943239909859786399545575252143137381800435766107018632268291042873455915260173080868888135763209160738974789630011195482320418621178921925714214720441076711996710832741120342208622245667955259434608486761216641963258163377683379203789385590590735919042327298235998611678730563010688156339515681737238598030321975767842190698775427936325256291981383835062451313706770372373867187170123113359927884668396066845354794852309033811370539172328167090937918838069137694516652563979109892111245126786063604172783266087702333430338294057609938106990393424196863582343655281443563409371720072061693852529513562086368937994482705932003008449689520261346094536900938867796375464730173257968364063429171871127726599252321455001442698499362152538969700064270966461900034280148048722117124472312991778665075382832513287204103608374360578697121794964465445932759882223289695736744260075872264623425411655312462292719704985002800399553174292842042704144195055553833750034936838956876739596186900402219552820612165810099818801256666504823913410505706433481874060412504855261024513720815482759750595184220785070306784923608759269770793236599857607670452320886494070363680894227370857845709250011837670870399371103170791937309337814902404557691264099016160040405242293939300590574537373162973047206076123814342608315734876438747735606010567766563508797906566554390504885294743578084766087768486543913270729944186990791771992592911073706152411333956006252579351950990871809657162661001077746545489558818034504122519370767328219697313453472034493449356002304396578725545137078841689653758974331101559369274045554223311012497549572026550733298652997753986552227534645955131010774119704272201376350669095572578367480264311181274933890368909170743786061859907507516292877122838748264485223141343120489253362295380265322131009951243271161501080480880072764878879802224051024486125511096049863473137683691908954126858652524000884180704063128762319775964573592547474615886047195151759015311790389493819970580859597117316983796148954478623576667711839113071009921735556082804966743784771573199819466565775463894428434497524732170782350200467258586369898191081048355938375240959190858579191974931422495683465695544282635060632887041042435381219934041448286424970044025282778072172316485642394709260166798786323553949485682838347513478843759899464382727659318817594590432296302169522589868694870381048775078461310143498819269237737863756366336465731865920910709007362021047939881958798306602904273710031840784199159731634061819961952615613045289037845190095816416974620328189752575394684993372582029120379384321077471718916401961607674877702990754014317956293732251346817817977584309557922893822936093059150315016440722928680335540565888095049267252884381985160864574753021909110827626393118170262315196743554998540899966362039376477000374450811223364887144119422742425470812483630339528822736251161910384967314065333129494736784076812440556610472791723559807796601285671206602794131489169726247317435854095752835159452339255284330590599353660623490738258860004500453685409644188028009099097402614651273494590808325782444098338039361555371444190364768631608533035109300188844710493265728620240443998531865082734094917821116685901851136775299907596818620424827138366072614720685627080310850298888590384997670193736899134016529391236196878843369535532934435475655035844555852348225152280851285234350620853426546079719895166048201657331965876273511312051412322539371872047619195023313611804372958326950226877157462253351286633881001550303691300457879223997962039171538773756966929848478029669504287291661121486190265563577758636706827999643905747064140845606950428543658738442839932853618114205063502739494858915153162539320653644641141274821721867962399338905064635214693808956727767502044040774775853478633805402298089004640680754106357444437425233477336206962744402690270259410314195433984632159429097990802845642866407932167657258944677614617278744273863196827555724777016188852024242645185116498944322354125010583011707131457522926876999681692640884078455870412879349449766329940854745019276237934877346654470667056869166865962071581536920044071019737689163752583834026184528988805069660393209898175298027571702263433456667087590324323916001327742515780396017261171370223727109058599265585128821592572337928214329818294505801107668237610783005034378930267455472755610361070407444553430611740916720674483542235950573920569036963892201882035561828139237731330076052376614809756853124655893075890143565169904343926861826845402366100665346789078082159232649392202614034328837618770413126132623057265234850879962506755843875551983639380160647023422726395522002826777688181334330058328130859957215393205430492994282774664904299600719125510021889317226238767557918382590231426216499785472169733065857532354879594957577676065306946988836885731127652762909509366661794620984766929084749970326399386852360816200374185547620296839107577804364136038630314949306514027611669452324019985298265239348453471028011114692779242954703452061117820270751410334046060018620191716619795655308388932963157924332181926686199495081937699637112924398225389686718936970272962914056445203817204992519470739716749185909879277820838983961457929370093137741448244565797498176280547427766854925713291846202405562273268374090311065928871212695191582032193782909283928638297433303647358927348903297207886561122413539371277830587344341495070557447101104303251546059350619623591944963704796773610341416470098904058916773676753563178941052433066112774236559193067014271797652394519202395844697524031927019379793904425449516538178150019011476543667963535647249140015969462855668586607648508394029062169393701762047974665362415413831246004099756413735899337067011272109185573776184490822125669799308833499922114972316106786460496110850459735236446860425989555469396888425213272067617966291750857547684136985095790174972605047113149104860265486901465781073932463725236660154753868592289297639004280596825556276592488465206182805695508845290669052111126303032945900165488374218342971357601688402757975326124941681702591554231951248624962941423976080085731587098179985962852180919861378847081484017771437904701822743991305613099132961330637076951078220145455471994068378105539737743573254902353495072697826331758354162145699578759964372966814356156085006383359353853731314816545373169486010354430648444455561395294214282194920278644144922308625620766085406469120628942365429184762623550439209658166557827701287117102505765823097878288212325441642497422239671808898919771521550796142765573168101553975140255001510083132013434846764583402892679972674604970711348483755402752967183050527452710659424358406079758993095991707340592620412307717305644443041920221314699682857651521174622754505657985703235512891786177058353493057255703076483333794954477866197984373162017286559386381782767845237203532571733524390651848864902136829376380112837455110763548627762692897169015563689620947718612958742833887367701185411211196898692238396893548780751302895622005165236292364859672748823807009347102932292161984102259965496712416832730595967824906680019921831557063547404665091525903525493046323327138855761425850712651816941864612117355859599382790903420065133668241559545404865474069466846418725846269633444475929673245302961482604779805808561930726489985333503051510199532122821849184115592180128759895384228967903752707955383583179746902595572488687158853906582081160940791208900280391792573496989280430712066629567698946447614668608813555404873507672324105421098938916661000044038407513914210205896806448039424109403225284291384629606215484362085147535006641146805591363212867342082990092364879203136632920998112168979916401559990030990650874772423244905957491185597680123888709411703474765393820499140161692148315196506183803128364536791741141434625967424584584210887473598957110337738770023683214014635264442241479975884352832543915042247306069271345783421531862827455426680150265362812832297221633530110213929147010603233943607038125322099326504813338378452641588326158393292152364991359288208503039972918873596589597152729347290094345182084476196931142708900254724549866061706005332771996287335800254915458624273043934634777134144969927669768233541409072894200471887984896995597787816173754387485903352620224966090427542270999438212385105280238410081788271447871198820689477187292436500186213041988230959004098623619901589212929816075952091398472658952244072154747912533505711148276653993677907549179300354498443390515432438571471247213141702685786595967690871390232891691603723385944587049260822386740729357136661225684372509301576723501774247173377985068203946070186868955495476021406293660991750834969089269965031715337243765288953427857338947172442026811207721698521771925864324520505984908084928689754359540299427872219444497838848377547325726835618536746352481520766688577816305998265621584173453423978063457278266844489523667459375014946847976324437407775539980983514771514071058166019731348020794853571951222369122343405940142100927089288083167089980098253381126581205906486120688859415547167273653081199165919600646960861579093338092513157685156200110836157762988500276006414200318045822677456275419363953548085588259240295665283393710204379410502402552427177720397406983926755092567125036934636559025731982618835283405762153843830168744902183749516080505986142639619472084823026059885701932341260271318774944460398188545314514441963806902715690276319217553612014117633954734667086091309347622382992525090888955601097714100048663756358331772844781986455769060597097908403967740772702889875162793225362070710022376736230034349371076533344689480916530703707086690927363286989327151059335871678193534203906968881054823432611182289794442504856552271587612963814514607101363334899919740286525352108343143982414003789273816080523600221960694425845983477449580215921596954221012914318227290589130204657650620575235111740466554481494662575872961126672505188869762932639356368083751007833942084542706725416072562559148341373573588864097920036466021021991214895091206105550041540781707812098079988211388998129016660455450898395299739502682045186945971557180499733195326863471899729777196806732700016149010646082294841909381981738079802288728665769561017660369049304889759802971414652427049915181129459862651253331436095705837334471159370033344195193587181848239444527544273763684588184839195686419213502376604865768643248589884217876564104282209526436673699511264364687971836940852292931094025690460246780096315109452169309435248632172151368646705767323615055848403093781173179616357316784279849645984772605945758857864037708652124662430912920566761576768123940059491625767973652462799582772052995508653705831363278297383301627937856546837726264029956945698233796777839233697920700974989049576948697403106513871524432668321370966727706421058254367023301115931714019633748112964730314243260512788271846937939411305863104444857977855492737238362861426328198396895620408861556009221853471939529065660889745283572537120970351108889757329831546710138887599858925107127551400726507740463225048466811693403913949601420539740813405569480682000424789561503335751249959835768123014832349418673594789214134229031669762670798395397659065866325125310592346536878678405278333952459292904635269703266231192247725588207290485789744664546757744800533831554391066200073195893493942983786434856607054773600372249514204366854462164937682812518977484516487113767450025565066486702762525737551949079171401256415280424746384316978601285811841948736728737747382094531051634207155161087068109384230083849198657982682028000092327853346425608360281045888362358158175307760706951348854290904301705471725047133525971875239982597112718153554788603975721805115380974331311857863955323528678566394371921198822367998873595076456365203155393366419439542843314286873211939701610643892837774423058176224343166609838768450153617847480304502213133122564707516946350579761633055420566512093540745158754980281563700460155707300544924324918698130071900915081554583817477314774643020969694738362246519556122024505965252824386063149921196007391722371357805025061347056068626981954654577581778535633176117384059993507582350003265674837646924298940951340466314680969734006916389813096043486197525601141452764545834994456070278043884826300024566813869108318238008484203581514323758714735473051870388972250848057488785858111088589688907103522074072988678612438075486002687958168265543069457884590152851295579748496316862177273200072032870049061071881655496296434981741446773569537278758646300084281579276466635273627613319396333434385517556450281735991621901701585083425355813824063281567254881115024481886110248795726999406192365610777180837875289286914265449849507973202357732228230984154553376934585849855913406691576750917632664355762850985421262871971274174387017447871377677357938497263048327556406791231302073661335415828098530690635470852043265309445689235899965929449256674843335180914960181186972663326214931236451949127648973648717283852381454034877337104598129800099765769967011340583504955098752520259380274109668640028794563290242775991606724652346281903711088441615827126562645361786913140546301528093455273098082018462668915881349617171239859581275748779383556919467997074375061308779909375723064915864708542979216767978395112548797505956574149345138281827399900767368845060887592026195151403905027683605004467641956569480576305816135138074060267367106043968379513555510148023645823895975152045586350704333820351906590494337348815857077269382855062986196856558728130493086856189266534305749090459085664757914548215229530638834084221490720402041106988048104567172846976844527981650161449097265830238817457749367960400903526996151228549390874482498612937623913082323739582759001214290148854128029178592197345370195875447377430570495000098128837915865995748499794174338688346814927799228733055591512932059940258518302383211532029294616385162273428205038364724436636325906668696509839111100635349913901194315413662707792795347777863177936115186274418138501290552322364031885077336287233699979500528347442006530140464617851411296147625100916943280605802995234206766947101375923885802805611702158334908189802417956711257365389912375184154596961514844538141960445854107698913214511489143147263775156569742860217229975072266477798846470942864650039694590821270473649786861575005717008826345500330366453718489314053025526047273151702157802413760651862515510752434013581583072580774193462420172111092303057067429410497497412296665971149167031924197705292967097235192351478522697354547954563754194185431924988800048663185879620105912076080511325555924532638370623851486566872371538073356096797200966005402643245714783674710138647461491898693660677601794111686965389426550985618516447199884168237777289822523805838536846760976629886685349389259414052688339755243710028847186625363883289063130399024591817740590917790587127193280876476316138938752151789938515606258491550592897601401678496742520441272827019580243632923932425329945898095865222998376996264764886471423909073046898579074518126031838205373256061244126149797833570955172653512304021453237323447670196214831970645587757508693793975969758106145150893072655064077409883567165662088986492286200881898571797043924157387882040585279445954211009095812116953870677279372862526026993242697681371907338930930738459830137680666935055272906230548422357181609547125738797089164482236503247075031530985795442862061587307292006484665257351894372637718889184388699192377244416400982637240834493394622006113457960665549065311297244470284738037789350050812626099401171813489907390445780175229594437931513855163205781186111467463616040602283318560208302399385296552524656808297463557991396156748827046248518829866625054344770907867784336250207656674330742773549606201739036725409457416652284149346902397700736123395801316240727677432898202722482714827275844824659078305657109256046299057173823703516844693446873250417174810467669160276826203304879930889498547683304969689478468988997657919091275722729855040373376969812008210106023346499799256697435179250851605941560239450030468274635348137263422180408539854561705031399330292178718114468347997223736451491751552279466705656193734396683711021605430231958386650449184847295990677169731801126546024108465235234256047522108822088216076279123305644491971532070242855992994047912226323413302112726635505937870984702320356358739340042796828283917553724220253537272942949133040042388053817769925049253593784102107713651387236444679596507514193644665677847088586209417077181948795047648411610686258924480874025412990790536458107816888410211501195350794120247971204139191320529952612622102220849348160132823747291035534257781279748930489470648169047928304786633295647639177682727486570595022175343581548680057616141684975925111919557578531915569380466524123032461255678695678457249563151161334959847118154435224412490237961398543632525199462971950289546576320776168088296900057048106467414702432301176906378471900453999533663110934891981856780193300966704841543251170689022991966256908197361193099215708686787749669293529491614385426297106355868590690031327745969502372168310642702027751304434923646146940823018839414804267300722456916856206432459018192875013091957544940809968436037797332067415210778267962961398497080681104150450179019321599664923293182962504813952465733462230550060189500672169458730550513237069881071088082809962672839563636257539254444473555772126425217700672341638600061842456584720497432500286609252798323324535073793445254212474076738834073511271050734887292136365528968973863416932203356113290846283280578099796373348325934482578536975321287518224273425766535692148022085724217920824751419879320223937042731644890087063575282288685027238701606613041372748456030972541915859021863855839237677292420547041186094268600130266025798155604365854716243923975795193119502926546477686636354014443587329791606294681128849734774151125192470464867475056592928815194587068462302099776304183041951721555378621396475875371614851309656075672325297805959332867998813669026872947535569013910781829266366979379826331164910712601260482852507206384021092600314347347261291430017372540506868578169662388302399303963934933303235943812200599850200935230018770482568710074643053799797858153490706017764037240427895316708346544209644948213128043893591904596301670155623413538854443252715931938571541988693812139705681077971296157911549180506359686645379804812952583552031422153891268825607418009684686100666951945989002802945650250902051547723675192663951430234860004185807371882430283931211518221115027543041287764422151140731330625468738499299986502235908590974955047658529114896197546081176934029058189769156329838366406097655361416852985070158677137740779027532482275924129193908619903076718648621617104873556627419210032793812900923341273173028805842273083188798015299796709481659287941767270609722910212011162409826754570361594468969727894772128425191070724512785007960872068854202573153100895880871424691383805940814861422899223761206849455351472998118225904616120291866377114568841010371382822865500873523920483099984143183675960336002217862481987650612115083089572831767570443469553251912669607380811528770009118098218057199264696660132846251846058065995523020060834416425019948999371362541917771383724724704974029393037315519971016580029045791698625978684353840629967541522437101814670857052198770795541972881326076713036464000983890065217200992289419184845871842267129675947483349582094663569451970823268586787267341046110991656854892378259715600718315594473433509481033850009594104641376496258029947147696096436961167871517096858251827641990536469477959735600839131713168555827549132718757334293025709110274667060314391771183142378381861785467165505192052672291467931753058547942936396864490051140261372498507402186680525150058169864076562112646014122764665246749849113543034129587469348589582010018175163049724360441034154365518236941514953392469548466013005193572808090317878261824522906954547353663519662530477802746930196048066953345652528985808906996228683788746930015713388214139776001699201789873109146809147263614759098872532125435055178568442843928139117462195313899801041224330292320846549844451679846353084583020643569182271701745027717031794185615879748954622511693250872321400286976045942628323651010347063924288993578131449261818659297894592921802090848776450287966055841370070685726141326850899074855956974254381018678311538182366273079370419066793650168232846705122576759344632392404581932796645396113127211762204501295470393566413446247920200796992921838025216442078115239859143309175246232026730839837681696320969063183639610156085134552950906814703104173043105680935886004309671809580559584216450748037774472805349852260201962552081297489539326460290858619830634467084336622540728147294946316420457721485096419655007012947089190078666288420620908554540116097319030033168388395284102258124483930586061377293592061528040779320248988204745360249349508942202906422956626348880851173097789473368195592055044109610360065294886270582596047013483148983863779624620342269011535371047592646285036859089001798875629409933871724300275256668964745033996855456025604505154304736801034581004356983534342171036805683613893570832299132041963052722137419903981074028483546168535985942788491822075675049922959159290439014006999285185540547061594930286739435350609461335331566908311148583334811026695730520752292157784355497367560327608979885256105694340688688676460032813499953284662597933336371413555326276530585416606457537317360803726170006070585611871204634526376650967716686842438596798361636204893763885855615598614938328591525871024671329963221347890432581874619604490888865233444015865406588164103287759356680498116569389163507012543976262679998038646640123125069456493459821480674413572225250679864772617700495045482219361460821311011912034524478949172408244264848715774914877566010124743342480601835208653465336296052307735179721528674238021906200426571156437004396705306117352295771737989461271715134848234294124611042577934090036759407708349231759910845037386583680324226048347588754760897290785838785680550884314013851689250574426789905150238530877209763756590637571079423859035455230846051925705974936855729482880035668260456462881154884119811978441584637469633320025093007653388666326495635596213751044092513671082744119031469510430081949186570658102758916982305280338692885023682152312698652990320239214158931512582626790554240742186371165791657283515400060191895543079685987417657386939802041010484793439684337524138739654946115908720968893720128209871432868181667056621220266737429483819828049624287661665681922755109739765532156434393224988214233133465162639624368161555537763928328828801302778468109695978032491208669110685063614393710817809315296862710959894030708231506994102144558582094238919098043993173247458144167488075825039527102603031350822337642472803490065321507589265890455161646983803834294565952611473385038110706065757754999099562641510024239879887368144642357815405980737448950130947154511989577498559572756827310585712899020267368358444371697304821359703773723626972258964514379991130501147992605634686560015400361659517305144471728146965452630471384191571587909683429783867633632917477494041900611730679601425527524791035444300024451698129585739155275951261866475885468093057605349192630529550030614557975371128586447327709675148699170462492093901542890928540169877198366264417927112073808211338214802060112783426441598615370705381312336520974068898262584884506915864205407990250833045528271243923973343752741808835673942084671268817104683044004400756311010846731855492528761966665337344091484112429795668952807128407252361526655394582156168386457006919943421561372022341363980873059313557120286427607124637930187961866572040611205818026010672607321448265519764152692778621574807471087958398967715623256928206135184918616590708721004643372613412804398072867766019876548604836987918254756300637621749564933229642460541699589794052891717144714260201061863474474401732884895086565141348550770775217461525835102796805937695062038767611639139560587874731740638363380126209822132843282474960991451570234169343541194447929711081443481611939901135489895036084985551395280947515218462447525361735985982827561297733969321893421671337476645865054244678836684398139103649662629475746243512294532989262433161675453472167706121604518320356700367533958436385603137245702294753038078246824181607161903654672876469214087966417406179896544881085580951882531215908023888817901674089420108618173438953028346609478108279483486570055016253380787495275571302323826073437157448944228598692898357076963744119397747850085250804864990941402143139126935395031049413728397318835918910049223691769507039862995718793815138089805021088210573650814452942376648636398450003276814157250147154962190736931709574390320348128273354460315413084078133352130326060769091184492404303404735023246561370041273476052374472578066612614572383055687673804194799608206746027999309188782805355591445546322586875249863721315524903701935353800130515321541434423269613693902899963589495938478898006921134906629614234825630974380170056633232165275572939783418273730348961660746128093141955831252750883904679800527553908669200329617613914021947415449467111368260958553689067425597950592071659607197370063644292008533684299325366962673087381958538979882263120220378488621623598059419338786071381095295803972678164374136798587840827010244135086836480694408783126591140912233579642560380422611174954828001600894846532300669796031492431840572890161020766407012909483346581271998709814057045896544349481733373712887019276736614864760394591262058060207026136257546708275897462642937504561550142725520603727253024814365817875370691600518481666207886335888472184487906265826780029734610309545855725692776714287308817269867437683410936427124833266070279808111900451302991770760052128477403380436762292743486610701823847008821087785123684540786371890557473269017370678187627524995666979109118586805770731437394939296069379253215446336025357416227218624861072749233123126521824917992547548554007970600929126868563594960111598623970282046148685108990879953937303550094899858204744154832695454939248496494259189769340096036246194105919595854717539643249157654675961374723114890595753417539477897313537909064528529815304603562009076327645673094846840500986376068293772953494456692787089202782176136897732029752040390186682798791401308492144328719889743640785469102108039941360737457375551715605168497501821991015480369013629208387855384370163098185576710621859105941578240878516394589317304333077941399530822658546807605564173363030026946500843289380548932502823035530744165467183783470658730320789936164119552201877413641847433229739830107358286131594611259711036023437928474145767345852950354715162742112897915497254282404778021674884473175809810880991555766342704781686941180013146589869416380802569135907411933018050824642994210777450782461966076522231681280879312047220750640240338541241056688599553986428399411100284428042659463352556886296051319766290061864170657641064577711006156593705536259450090788204213117070876842572243609057395568671903911130548237723881260413432210365639853068435524958574846501301577680551978183894275966476668387440767520953697287500225386203835955705931617336338481535068754012583543711906061886207907705600726265111753628750507076726203178471030686313441286497371937393622069842641727123527577231776132353661808150091921799470286027090321821430518059166839912386930807813230008674102241818713523963580390294955546578977297641044676476363191228658364772448786481377604401528357734137758804183677550278629107356146599175241765277180250983398150040880922716936933804678746985876127323730411344185122367105379796692750096674767295174600292205534273275071520192250866120650068158026510871410650410528507531844080700422618286017215876027665677877163856728926186313107294464305798203562918512694975592531181358906294158989868104698721869171412395588531722976995557448756404674046752689754214350555497082126974873113855545436346553864427678296199053729905903604557834026663262764470973643110340621514183669748925659424334439364787969692599947149228767677814749160170862932105072806110729945145238131819045473119337971609208665382562201539742735413220968158154240017418160186597412761413199984428660974459461518560770248707639013807392323526170672139800907420650538788012586514684276183301737524473166309644650678094546230164244467957353439755943029211055722843495471236229678618707156001808050352977694687672106403567897705130789976341214408569350432267232166585090692009210427114654262012233628123564883186182594560913229876708063520374714737606234307700202502702563055818147494728740553315618675623668813613529313428557411598960636339357138776250848767055748444386145703469885809198093727895428305906416568414285763297947043092697469052872159860354049176559947081705274078676402502132440499937736668745698957535093210414043771367712395575125416721821853121886130272546850364697567416711846827104043316045763948274245358733796876412676110948224621454303135636760048062534977015770805947745715179157328287846836687161930533984593354555334268929407463654032047569203789998731671040335854439275406486920406077924569707944425696172726768895557845644697148547900613921282887775489133376278052752793649818886389646480772376468039902096342985172499661381600493764817476659103754769555578634923808821929377125854867650996220027929216094061922220830438315381218423156812996103123204008645693639449937212519949309411251072038045242019216661688618185114260188311347076294737550925768035950460501194530398215064333517458530641928132678001084313081719396211230226539563388072639126312697961896631308789250477351033680758157625128642892377544165329485495669627776576427794965649511641147132429476216353946736597996336937078097939009794099562622779143643569070068542330419744687062238006144366259195078242411534989126718040702263963849424382179519505355051756274236543756287768264319061715607443849423716544897897417421444444699266096821040057292304977256540286254797628900623028668386544426847383296816481096180472779146314246007072519239515032435551277811670845050817442997085235933091836223316635150814822570434322063666845650859205360727336673819700832693911057996247826409106508537297331855019726782036823659184738612832486968641728850932966811260929663010445557391207132617342896884658456685644830213613830897628177775242628723617836390943077613083287543719471381325494768573771105621429578988159758833051512634192889857004744234907448552228120102268572279976510637508374837355282194231128339505497541271777758479920343639284840257655709071257741425385658503444384943635323002646351034924121157894643996727576291872673989148399830683967684416309781277933792892180337094419697423552612875843163394004405088964507432330918624520408041473350787271960396015488912128676984595198109525143059281791878420254416248462254180465192476491602643989321614096801828929051532928717160115410163607356302143651424763597721283343156776121358048021784962373687000611882971992494754343773104214178750493120432927701123991710254363592169418418559010831109847831092308758713878295413018407440110930680680673507815831495395391365007470025896463065990593159576873426631865806836235312057259393981742436891671029980037002155431128941377210201360878152461509345141510236177708306451744264046835580501491822613264871153028567777925212067461836734603685252949589021510331197085051563961556507216549346779391357230225006320131461006359713112520805121508844803600144863528795335281619297525694347025114769447975136098621632062782719931155574055738397812449007157227594803570204692217678245869298056337128411680848749672640873801745231527476900287747253799801846201132163071060808215530429585834399319520024291627081551889062164608217046804978976271810543939061823101585962127793643908557077940889427783987628087797115031458886243565396258688782260759618719934965880545212806125611014027087195239620382633100875198595153334677421780437262633904494028819291544976708437721581540253981964562165294200505441325313552376471022940023150945990227718775769277963477090862724974054251289784896040054035355926502093290249044372194798212292441613483048277636750430526549308787593787572077482597943570067742726944998029532940038247926047861236546440756129276237249591315626121092282478369755011008363234366958940391387379327915664035903472531959340580744141446837963072697207740205776699084794712351725393443079883855432651090086293524021877787183112791082286844303748178356452189579122901690015168213965491398863244673030749817848060800577831455768847312504841821795247517772443988993144676724262420887420078574344182735354033541627354881013097308341981459374923407035239214995823395743932875158403679696896508609189759462599094597940463054845937092235308588670775041570248123136300389381811255489118943988199190853104988680923862914232597203584366037468355018260941623773713732361244860276903610869600926689158246006477822765280552395143033330903805885998336248640148407595139279251971521564576464461076745086438046871363305810235131226266385657709179615492765611798401076763675904072567380106187992493461881833184036868403912248164229490953108797311257113054724521159342027021261936617232482469925913121221940349037158516354772248847325694600009647093894253900418236302302631077443914376687406509696738869603219005172364842369786165214740471276502060130838269304534690268767694014611485503186938933159306978354287719681307634011172074590834051965423838678700388873374495028237054312962738228463651522284072680264567002303512406631273370238451058716878961827174199249869269636780296302105332043278297595521932522400337915818341019913070035021753077990345114254066870593106378953811262982262101745401937529124638767945780185440072354226999704448140906418896957681548136501859927225027312591189154232829135585076490733307480037889613637585603403368360918740691288493043581110959706034683089926522600311493747933659883616280030017832171969765974455137793824342710564431841466858055942139589926406841310518755946099681157631365358830380841239318383156114559805570948375912513916984663554501327262330762241445095416285002742668057692701299268688897218031894475401939920942583377973815986290143204104533594458508316945679375458153227608523599140648087368346836609657300944251089319462779689667865981000664628233069067191323548062814850803491349771659884391723840014694603016435865674114657433596196554571765657299185283794495789713067683556120718067682692336345290598372517825232765177684030947036520267880520267428882306230822522497221594720604582218953031996176599767210533296028021911898768690004588589360663530809364123006277352999963862436365559080002095274203632095799323359366840775268116625081113666579994103773719881075795965568512530893233305997296323680787549182440220095327338873014777918502910962681222810564963098208468423250403826329873062368433654064391359392082686314432426623443337095655606127652923415030743182372617507682370525310592715679099575216735550259508454986549325964577163636434428701116894882305461282026157150622409462132130396517171790446283701192603351246409110350155512753133085805723555332631077244498824792050528469015073074914936751173808707481439479887516010200004798528265463648384060531750699628712728972478997640860613863190333733568052716664135581976334507211260969815261752635523574742088951564519237129223262309981666857011853130864338948709989242141939308488518861534795498411528653999736374243960974785621424595633264763777690220008091474860160976468012805305545496681401257267059186654692781689900275019546765872319642967276342818020949385494788145376012184231172820710992663156716154031760993657290318266193451156052516916178728846280657974742329031769157163534412969050664655512147797295384415565565734085921695338864446801490311631673202580808997658968816906120370424728207173949054501924950302986016260219342526254256149667683932455667832173389577069766577669406023210788690800861663030545830494093742524918071432711912907873088833612097573144691947562111594143190891011371313291083817279697695515120875028785993812808462606715223915859134687617444319030187074337587281308741248014531002577581387823757173042082346647398278492545733053695964155239488940007884267893835031051431674140074258804075965551553350985189263030046287970336148677744834508560947807821951195285899971754909401199968606847553920468691618361911958958575172250149282892918731127639147990511429155278167119966851341455520090354576931746620284971573536539550165259785979514544622521542602832615621130168412979881110981330030075146267194876494092863497190589064266085630526536641140238798825238642175064952045179514913203727414487581425167420060759777518450527585776149719010100418750266807337021922851500710078024955860180235691811659368950744853873993584803561072467594911033340602361358782560591100662735396991232553863711402158316426524390224075508780382463615831053950895297739758153005498840482141963624554170065733476856218876419424414030330704760587715669957849146341517655355143407237015243921376444699526907612989090255772669051948167681671803010601711915037796353737734274138684352523288594721368842689787879610897067950396214055733173968115755860657639063575617629198513338510184868579393940362300112848483937453637894663738284310317189429943010131218502365390632158578179125103521356300383541934011734705272069086493524482389384357838352628600344650308214579486816060611965972562609024880716879220268954776477280921844615218725441624262239286165993571681175677602028250860281547184265607738504476926573419202788943888958507325865084759140226540226062614434746321592484668766020106993166115276620046801732675680327173861289991586380453330646543841272537579363403334468127383082013624490789448133591684350581427570440023685512343913703109906135760207525309496157787703020662234335377625126997054491542839183788265509636434991124059939935329073290682440156388523103902551539240575825881781008795746072033095173898746679372823273130015300968580698155258291398995632142064427242682889432805087346099429635322868550502542734823443454326967441722987269311999600754105514068834659655377596492261409526404598869282555920843800865725030026503542932059187420232720876900781062288063874408920641816955019499978317512324460640631768692491537494792466528714254563194426171400093192576708919415691030586425226583547846127192115749286217667625646942958089855326408168360789721842418078847565336390863884088336110865246667575610922898741995933234591544795179541958550265051478383626571435612281258236077249518360746423091102357946480940756789537802773738807561312052438134199525349478753581644309520064013759002239841730623227815468350078302541145594963812192759997873647042320924933613756877711694540657342106760228015663391234129950302466223110792495970777840050687064451137100637162340205779208470999822357601848666434638487375095225958079445540150443822184043788082758498513100594898369107125481580782617986873650280609978561668315614455357818993233650557484757042996105100490748411494053457154787671361967165014612908575672915664836319497762584416964207567894042829033141366145923856613563799771433565924815719534056644141410181288372811960196660954781514945436357491369525051420142070160682716901614284780317403961889822515948726436677562790750674582455629299306553336200210503043657015607937877511315502154483218694479770055665730735414847104648744734213225153385439857241890496716259191659407503103602276766740078668641741444876067729529667843098930021769978224477908034536709996198408614772221187376984235427446921291739319253584923583805454200775099832642087891118940012643260126172417918266064755841988512882096672401155107292810646743311269373273597463266338659848609292187756548802346922522327313707303924443890508180221086257717075791743079854491981300555532202608509837189511489406557524932931732360383926642569501059291847397342499090444455457383571739266341588776174155420265684089425447520009740204191624126375271424942039264559970725134026511895633511045870163524821481955311129452752584981032223037099820106442808711585536721584180403313347203059951274401527302823560956910398360191287431743108296883399576833511911629039928998624643755066932099858919604573653356718314317335602880655621174386242643046486895314690067876371456721752835864693398353643950376473573107735290380749894313255660482616825421792789858693980321893431784118394334363217245712708351241468725677777799459683962466144224146050742301031493849969913437816324813947933957286008250316586637737460052335527042948749780409776813926261021122099622317064218918888970865608023597332597841166860610160010348372331082852532456857662027548354767322498531308223859918546864816321568424304177965110261644163031197475144239290398048066393958142236757764402944836362614866194831227502486810953049332755612911378880796703254560690294176068528987909386000672535541647204130051941980124508409002912192915899393422446588781185371031170857686616925645715663394073645810381960823159217157403351307863341446430087436520622974685742364929248755282368401254276209665255935447311533529873654470850774964037391188287128667185006944661182310400458926458836080627105685563576844383425512651669789602223698566258039045289721082516660640654737097218521413275270172253387302018834929265549585233452438504093052941498691901394219436108928251681173888156490536341962338369245799053153279363572130144382979740482868514319369805383509849572394407349346288044263283506432849136117525819306040669074674436122050299019862369401501328498661707907310086190111093270907974729066360063622053562079463898353668998338527769486799713718139006254794254116124727588735687016702739398196244880635467751376226772103198980391126460735003317539961095202361563433545068786485121855394557800087992811188835204846171800283696462938207507561196207052509611842733879656973829357996255857732537708605570879268047992346725697792317273104056661818080410709859750923529399239107207442580360293098243587028791565279524644966477779085170688310934995937482965229586534339301781463743215023536686981087401042904422184597417495735315905875717306057294124294455915428165320193360449126841010459357754234147399028422732014808433289112905750031406627838599432672939901634024934699139666293616467172091673801687965927424022555531954144045435233466485768414427155036383230604122667859867595880404018391908202154576498389784525879081954983451441579438238432179615476693455454868252332389485290802516739169808701612093733787061993616760926890473590331087914080772298719250412368355253257080282321543110658480621517728316518715238886992404140283668687531784238662482979867375911507859658143701653489335079759998233584686847340276344272097172900408701764263944745203078396642164341460920866366938211397386525699093607375003753549000622045692045374410569960540109402865413440139294602511275436005045840000044832294236205161290172917539650576378295462435151950743876978882856143759408654012341360332452848003004499346999645146400720600192202124061518574901338900004642148754987281597675975199346678873136571073238162059950110651598840385488465522661313269882369452223776837915793967550951600513822514822233277219156878104241827831155107640571003358727159833892316772721690395019828869477922949790263595057343470513571698886753201214235388661953336021761996850097287943320639178847505847928119690580519229836619111942230363133113961165289910838144148196234021779976400052022127542532438793886378282347206418224532963203594636588174097747745174410251346612910056406329676734546860036926396452488892575787929198739723976350168102401625937815927858512775897230346612257593458681141358485134252649375534025178000271565149569499137973316093752219925494825419520919286987570606459525668030617704965763185984118494718246804203866975967117547886800501838803434008712993831034676332436685509752511171625133250359188639487809935490518021309756173760262563677424174698511250530984926326245504688624504040740962627940038592563688094301594958179840499492117928846181740582144070372863910181139584851032469946566930346927103100531875600014872599956060728002861883161941881298873515728139850381329752458943087463362538062721097002401047229425684259939856624513064120288778125347805263812829915385538914901014799070744964772635694689314803292142657756640751691672785195817040333445171977440703189777048810038214111940034221862101642558779816916764282777857891626322417842771795727135222702318599105824258390198495155055200872948313605756741231535883383583002494450595241149744479018912209085722477643760359863584148909578988729019101976830291020510328030715090623483792027791315086070466539072781967163489204435934465562851055024537088031172889543843536721175659923187651902647837055419798273935868406827814480032624798064463598090783529260229171058368593409776636485676713583580132030577048410307573227976264208507155681680342035050590795803435386419498498327118883635290084927445035050614477636616889049740642304898233417222534851448548795523749001831488965770324946097166938320669279717957635999624171703904902408510766913160558123738285199750688656658256209419225609987231756076139759554511876375375484131464620890469889554467544627846055800208433648650431855042865957746527018570704544894106358316256339983403179460145472607130054665068336195074623038279368120524855995202619727602282096359676664344223027934489169372193001156961099259994955867714972752856738325951082964673148600477043668866719148219905052590655881145983431108613670437419054844946353768532838787455687421729310991249371599665635746440802729053558721255655036953819351654460947841390101219413284111030838464241526667691241951486800188881874883802528931262337972260771941612015974908566905422827972576363030537929288795652284228284706327523244954047064774340974324044558369250710413236350965979840563197680418654881079646198606822193339578056199889479737874937899302455370988176948742064108669901073407392229238575748022918316730085398543471785126571627604390356505815519258781147145272828137770618289332306697126361214393017955998699517815210821574682120490831721060147647842412746358108245381570828963321652138276275849737703232271643066106282747270266071621943750679835606334554564519517623244064942225744043079636739533872286737884175128740147083500628513201134595331864871539097674527590268475314047048568440610207703091428216341463919603089525320793169069184957084028745191936522037967570577733581630597339583916307025843889400729123815128464247499313840535742252345021298393779212534065349542212332406751953499799061636834433088648999095501052212851474954346225882358849602022235079013177375311945452871823058541826422285979583255775163153298074339095108117027849472828147389925094518213999449933968618247845273795234304835607094772896077135381004016538717111401725613130650826856306689917045571968088356157800016698212608147302148451441180702569196787741888022077671229228944918167454928310671034272665501421456892834183443101837206848790941041431253556208434805035311825899881161759284748102817806608771898395698249470762378718798563535526556057622801021578206441134174893098085878027906590049220716821421541054569258493898578053816869727271430336123093986620054565128044894769947517476997488816238461482618694461257912391731277184377247773056389167519687313976219057651724541169691097843356283132667030229769516990508954746180125998896374095204015599516989450738203368373730805345810564153571817730496755899365485312560045663014323687709229813645430753654892080834586566373351275301120848846390856613192127583622002969444439166219943242103231283870510724885052902699210706707652439283629357088717262323211237179194667689723053319690505492629564252487678084015050438183087144276278530071912169908144886285289554906428767549633215374458791075812108556991882952923621254307813424195976819345468727931418489094924296042703180039134049307248562172016201424484631058689071686147527582093026502565521239920393978338723744502877018259211954093522557947029323791180453283960442815758579882002577916505974645325139144255426063409667881753381186688061445640346384465597932388172139699887953447964413215562272831321697296751394138949388857997752351819491170851424220752966060280311357953184337445635098679272419758546349465042803413521595382260697432635244170599763451538630657979947302362052451050331356908474983360367998794012438231054942749596900478084513536130374313760843135857651422773798873099646809370235880404717571771687637169742616107649363909835882853364548699606502158053023644450357966545505533007240440049916372300871221210603157160037742858307946335426285916223895012967610747832305866985081884958173243286033289395532565101372067257807608757628551772732895690308581535823281434981027520655949972571368419693120229732610049727329653582901135675409290209221676635808247737999718971790345677655816849724291649479481721702438670470424392448268061293829394399463276391672312146006791474504336322334270179998899241232562615574165431340049524521876521296217404909144827332723539304854838512178112794832994624913720489649755933870954695267000984031974263005515638020184722381425077728261926878819963203353656291242511652210257249381770492572254180462239988343159371677539703475777955125792264154486745653407231787858886127432801588130957669851883657917778440443666652842091927305891484918928534325630596561994363403679180760246691366597479951418662284990406376685959177638758810966893974373208642087160213325110403018939651473737282229367658898546370657786803657379730060288106758344193541296791450628376245344741937127756398760649084512224486338163878870598277343259659905408466610981648691692381524229559326414631336493257592983176296276252823812696830622598742728318100887948621494738162412403024527824742685682667260829943453171736902852007314482548201290419436475815127932989380364646150095650598938322190587455850326393162452504086482542847790469481463079897668934247210422351787638531833900415167109826224154756139365391817017303268173965427719318924641073183562395367931547181621791716700266985535379998157012075745398078014183329694787819061601174345281606186672018036096079145787941241447936398108906857144039003754477869023174008277938954954035767573685651823846775800029732671768565488022266251500154254417604612659536127382848866331559222373271123767963597518210314591862985897506014204304982072545780379457927095556641863740993301899189878153638920260533947866623495053480998393260799064654132729567672462812547990298484049079691216160063130113538157907766251108662105680415624949171363355679178430263709553838273328231595786338349269321511140115485280907045796261165038281968632108933893064191223516639667420377481299397630232132989987363775182587924036370113179670682929623100383336860956938675154670803724417356151623444248301480531665965444509891742687952003117054323022322511311331466277685224220549561441297555098228890742909519644035523511050059489326101857566147028756080848212072637875080568290928625574066042976923390267249803012133278742557512519932980766875439808572151951447779675558527950783643201935112770792617763557547121073608623245129895836042590847746831512046737002612092484960359741276529000102667447430537073041382762159527827590874402611267334276179329653552498616103833986273571901080336364006973129161838289628324091206726028619657185461626743008221192018106130485888344395619978789730194505653228799466184371534960119121091686790561422461396342919587217107503785465718285977272062394035210744151948351346685704932788630489916973732550901683770059419894846100540246035561506604573152758502117139964027501405811825486968788008287524210607130512913034798651984170804649500160902843844223254940504665314047664625352261524338198382778634702989302184650441352349556537250603928215623648950622128912826043668855716445665532457172084721365504452023933685935625685718925516414725235976692209739406612624049164333240221366792767624156681338951969504056376927455206703997877388647163354548849477247560543855432202023878716953989320674785050547973093783010578293499317599631536548119400884825979089072349172432511203562681765365866736070719911179901033920941614645558454904704614979467763217151889060828239732735796492065221668487112561259751900562564963037540678998568073965285102378657184894661086765401260899676541205113720987717523590890315500859797754675114832716188622025130697809151798839866579749684997155987576336482654952239100375255122057542933105605160049447262113174340534233396875406225834763350080194461029731577083397299606448988449125362979570018313432053006737633160204585143852514035967283609788250072795503923323489018441957973753966363560694334296035415784527046341102006860640383356339594059892979371359190295609014473721351090996192648627095046783221880701183063970907198608384708574467567230636111490532447012239462441051615711894961786955276154440489277733581302369522757889940451141649695857863510735318055983209804943155509076015286925691846088521265230173415684523919592983780009898545473341990708007264939498731871662596901002854382718101470756781495905507884257770160370813666699966109785558807792342223795581417238621692851799681459551306323306370371415288494627294600883093728265041460625244805503993485280354971007809649792492038703554056193641287097762666656191206767456882255586393593468151548436283803356742245027448952279730316884615586433393553485388537846703828013643779706572236970844991868670313382879635092086303494662470028002514531695970515892810293981036454741186140082974071370136477635000143970007073297797148215429953991396838058846383061471802741557141436342829037793084743743153713484164403008043459737285953802344719827745627379555146287547931074135091636944134568183016975384789012066235425293824348834607921647100287600999067090883332156614183754433418132360640328265445677899095374427548049405194119394011567306763904828626196888959986421744783337432302614352798628150705184247839539018733420251638051019005056563444232736465129831503600060420986955557794803949483333154771340701668896441485722286867547298629105557711845269445331903287288345390601834197550639758404015432487118187985041664833998724866600978205130474107186484671292688797295967039654110448791003643052160111881251265349526683487301938342942639674962130916729937028027265287278336050340266864617350334448200335280051766894753952925935635445140946981128549984169825814302719100072035887663648098745177585043907225801353460378350855486207126173363127421906367335490883239811910096354552618636906926257695849811506056361647226340214650489300896876391418872309933387201726351200711583872710296429723038652396946150713137098491106303150345515223978273561919081338993689980352902994139230639443975555724414030823013521996607581150160761386584841753884713800547053992696464687696726241359549127027145718017443287179989380014735866333994248556681295832500013559008007156948112062137645338206684638780302318337628585950517825499106894846318235131479429675972682567498558535031121492726025061060039717911268836602006125971188250249100365130489464187187325023191867427589758900350398572554549085600265540934519040999316650436043594828367834652056391767278343269332099747861693704146458542853882351393489722624578219511804247548850042281669565274217712783023383232892950182542367318158083719253074611048025984642973823647707046868764369752845796964268110747247576446965001375392224262730991694542049835992197700969815062961676943483259299953959791855004344926609489193609337025626216798576339157828581201942210779158308674863040472340851119215549357222358900137681505333839884978596965571914090800711957261902811767102216762403109313679606377237833650033390302923013921213954921513897249664351411911528807458494481129802926232972392130572189088669850415817349546427052662581127083085161132564904922168029588188034947291480603279486347012260327518924703683201223048347336087537862931760158963391347073903843920757904054099675099539329217436221324680976852383306359592931136801185375433690151577229207627694510756303392606601542594542619580857408496073802331374016670697638984620878454692326414786076699792314720494919842148826392171717396550660579474912791106051015090397361101149168263098584437741502910433417889194386524074206204328119391585400894753730510423617521821738736609600341235967954364166046356182412096293807889106086151212059673901526635488917212030773525683775002734078985745613587296230108663457337318296000968499188925051968749040372739887700974032221920672063410926609449449316739523478457323872600404609494227370646604893656622913494525492493845650186204027698162618782041493838179126072640748434818905946721698185307258377022396087576297346961232748093459725461713662063825593706556202909177777588984634453888502666605811710436611363138801123052310643374336367549352958968412334463367528766132807581093665052561555822170629393580514459787777023431891104843207608662158844381602505151902419636620522395848601678900177965832578283233877742805971692763665738072101042225177787267003508580410451549411326100483209362597019500511942276883051759460095549484662426544626444834650967142575479856354233981860181701893553759938283144257261136971573816553528765291332050346286584802997988403854145963844494127754485252779731187533428508938849178140144105072507424030430500926379486872739587022653529297444509659961289015318402901779625189414243597713413791763400173512154221418931904494069873683316945381672462183281776048934569326450031993042292639964634065414166781906724746481081404365006749228528201367784658338874352525195992039644271427504965797784262672946806378541741464462763492744896593955730815008253374049888095900418614503431901497037899788161140485546378908412580220067607279870318503612278469752714819442194626430680857736743719872879424867365969151838821860887346001183928536436776287285737371286648452765767524201973402979632223385267075894809150304533302500270244724111088100514625192668147352174968327212090273311384128718192392973726661628817869027769037519493093120027693848547506725682365071703735510450895912847001336453501661715996537972280146315059159057360911080139200852169992415965654821706333059677573983797601648436926676981165415528024441600047336241255740316817058028773941331300320352529418357909913922305035253458438870728181952551151157166736059017768207890024759835271124204392259092963049350390428593989809388663721178580448601530330085283494408201516501348831089478674481508594672313909847258776920093195259111846339156226657713730282360492144637592702693232223013942258266851789345647491389124461379388572717617643775256558728038245854867857172793330156028613924107259970581160947043448357711485451521360620475666003154940237877862965636743864186369377625675484365051178695832873202886265359133734643359084123686047893335650904240567513434563504745284985386330979634085262296207004861720405144560116754356485555951953992029813346680539061828208430723709586429936995183483422584468682923279709271013124578292739072808882610739353357284139568402692865172609810906381805261569145633172491406318218071984290039604791547806691319693798568812316667790861671731085502545571961019915088736315402037260354140181222527028227758086900857598756601188150953344074376752404720994341665415358516663303709174891828695153370370110440324569659927947780748238646047275161560943134796024096750001162809473403979317688659344305228608264772988714206200710987352251027668006448110424572385388126904939237667332980777804901580909500037575324929752084623446965177522132908402131647626044711102738659141043700484995559043738752570481805186789879957586056899279711253610837757357907585474575015268122501275424530249092333363829588489072864525235224429943353132818088197561071680624574498763869215980923744289673416985154332896884317419798054172653334949257367830209401360089223029163499443469039160004388478878955371821041182964747074980204496618307138169532669872209691068130254028925196542510714737415842488180350026897582486926501793082570586461237216575578651117120421773366872792739487477273081792370311156433898084166151593890770994928826249942872066973069919673468833193354995095229825713295189973057916398424123804681497104455229096618736481440155508548764880766490227902572924930445138002698959801987901559327402197736111268762952959342135219509214812632469040118397749991903639913454267916375608616987540009033187466797472958531691431828255717965204652849944648386967225559271763331755971491072950551871335898915782771661326360259925455841466505507314646178566122865453774978727290968221493522852616986417151395073082521466889726620880779622237817199751353542607913400180409030633180496056189489673419534549855669732642935853419053619751347088127400669879703185319170490621611358387897072869719357790233113750892408790470638325392563325851384942758197528482565756439505341622671871940540774529341319164586660244727721406580967760813319342509739498373494448217355187513271395469240443665830980638835497502690331901337942762704619234657751318373451093838230811685153566208274618844002208550141311279715275079910198860394608193187576874108476905496080036569607909175093628871292953799264306206722365376703597361747784734164106644154798151940212735375596425732797095437359481600474916519003280594484113069394772432211538364206128181781931588972846000708937897028950517927493834544535808338724836944927673992735565749378546233142438720875445456795681064165063891213195409285448703930243709879168898767773275782097289353434569614150977531492613239611065301124604319535999700896704073678017467421518429328322943708599755332200981233930029219961947335437547341411329281144050047336154763575278708457294505541491664204982938643820464765268123256725741892988083749394117207207384411924066466339122918410156000070002901905960379637444813822425478113655300065132248820239274416753237912721663818911888707513713889104419883272157634670031782832071923582300547413882389687858507464741310479220191568352791289551270237337768302814704361675198700662760763748317905656495653166885866441947384434237633816064060201066890029417576875689890880185206408682977009475787155859504833360389179179420793469790411636219955274640132387236416783326072153893587070985718004410700006210386842751270588817271508385648726731431227134787159490679508879356730010714306781808949400013816393462448810505031170747136274643190367978567786094034707793646507218812090358131206276230629452041016694434941421829972634328295375049270014828448246761765107972523907362133899541551567215751486609936226898846660412670032898800678340096089846376574942090540674563743932620845456311014485324107040279312999675516096673197907077296397779026231240170172537686995295445703241307696757518693503010581674857768513108687695057002120675989106273651666180812242017793674659639942337453827625043931018730519642043165013236111417015853531815066506337865085401912236263224163340595665139519003991802738527350396751889351009045836864261979944409351330208362954587252781848065921254750560262570973261139658864312100861136325571881405992621492797339328145579557033126301971435778722702856492680175937371777893677590823687345593934821851021249135047088590097597775989707820699224553647989828565113643892221635238795231249687638902513968310881785380077825378350119363506479228590271305298020026838398747223971821738932734616279442793501136849097548226146865050673914437727367682812514899862459336253609489697500841589400979912285575771969831808071643677222575278907326803447380989783046830919700693236017514067321599226772043959753866143302819811658721279892849291686742187127588313173241434433412063614285020126531542100122288085727231641439394496297805326400568580881609877458783384617798309726377897274620741478625272245418157164964428807988090471020934011103998927460398379703551422503383972987400879530253429119572379036595071381284796838392948677042569092265107058726743647335258281365928965817677211977936361152645742971427899756213426985689205522294113533829622390809121501670724343552737619387031118723977781677215541057454627152204429005941048250923034178036023019104560859400887502180648709792453737460959160081115393527837076373795669296272867559443364310970994480583220739938497112894621640383056666534798720152074208645450716324852599355433213680664890767916110700660805136720265379071864748584269506856653810643263454769289191357987817813523598263191511543047999572883836997680948946960418720623817873203714616788687586598786509496805264041135502705114706631413792337962013180326381791732810331047552391666450051728925237436006366415960751638774805290338134337454821394323572178606670444175053502806036315206830937148517895416442839973703914667829031667646789814736208151595842223613862171160015387445020803404172559882634169688119272474977045778529277588557721286852411673121352858998831482814276166589260593294424016844703936295724574860824396704807620195072339942111097336021828520292325745040506080644157365294821061596112543957089021177968118602891441602976309167622147722263370854736624944547703452977371209633296054805709221296801836299172223585561173198275151990860298186509118128484392539502536269993842183183094626571209885701066137384283468100401858128449498420463847755169465003042305206062224551902060980484576866815968265660948835052502339937351468258348807269027390174385901558431166804043909617988524533326882458683271202209350596944161256829274589718859044719184949916901738391507212773623314824525510889524151315938412408625719149865679866539084317213360676983609832206145601151173726631216686347738362948565334329821513958641921577412783761219569484727621490739331319524337647018801503920134905463707467875242477224295875253219539394089887864272090530881347152595328154759376739127520958383182650702966769543661047119209164930414113876355626500279516520331870910453524535997422847975030925269338868660553026731536006513167960775689777169245366705749360533378186494963418955407524252433437235375831623419022737830632326484802288933332319841471351156458430570356896071486860170190779496194231516936048546433155521927519488027011491490064486359755324933646173230056008223495968602682744144831990220643086039570291698291526807022437310154832139140630102011262944339879508928904371693902324326248706295316301470603943226932551828417217951392646185447381316480379680845333501475228586117498799411355919322037757582709143659508873742837890613105175172682363524338615257456055203859298039577153703720236657616982936979106775345999336189769507732804100349779303556851960778016071811189433372311024068388312214837805275229278661424185293206288573449891892169123646509625910380115704008199357826682937609627596562392920513043238832655224742788328890585744555845953338749833552448170738148642514273227352392902942283742905741852220207883536516283879811201296617370021452667193264640016532739473543513956274068716221627640251829567177378989597984678424545472882619034919081306264215560135662684268151035879289631880827502624189351796178559763570873150655309867008472065213478958957012734957687480329619811590798119179493170439461070582393344571592784494561628818348121805155981807559632837315711191165272603354102583890831834496012579460325529477418231135422315467357957954774826733986384547633374603017168214072319514015528712250532003404900459609460456753978243329681993123278754046940928048958441617983886694069464062800917374933010405225336006996835798233467804881087029679695330207911461516390501876997119197773884412982767057722530457107086806116697047080055450858101876884157642996496763318496577070272144893361219409877753229869274493077340758675815916648754883022270838593994340150439873625644032811709909421217632270545313173576425465347318369596374483092866584985254290063697432910255952478084940032559774612652363069317752980446925124176436091249238082988514845759842939916565108936755187978557552511599915022574635709812878877516545173375020279536643903866926698523836431774900845973212639580318312811495945181205019736899601495437482748342789979034954853954850737566727892908426528154965350419114768737540463545876534976665093697182206624020982093826371691680289618844817954943414091870270745369802108456236001313797253653160938030683418640203856778394094130005588053718120794829020941911968932366426912432741665796876462771596788564071087750465936066031212444335572451792827493309130476607387326426944753963196433423657536404467872413550723602032119891351565094981712115252989630386734695460614352168901469053487042430512769892715719476432224318351078449792176430095005807756594127334063195246060558819692369439824714884444580082439747986365407207490684916251427042412182014607583530154299981407613241024252148605914440581224989624452109789879878190200940577437782340777871772076268280342360006675307457153211262320305604457242557318891575243155027543157442304127446831782600852681875385592306249619129875602597414582380621699957941239122478850675826312313130377630305564450971350177909300563130341651482963181037156736995477523727792819888748397154653458268989132292625870244164038430356257617765522208532912180820756562525008181768935506090530488519805941488009423838360788985436517449038980923044491462370063612889481124898082064841859154567536965950410596285075242988055962940645485233818630024434712388006601017968241207030347937015572487103853056097279346517062958348786002484836700709607306152082398042432559331726618446774329053994448702596305700214920842933996052635984455094358514161946305107883315409950634841540350225452993280421350742282519159740311126795186913922043805446657388855597603643936953692208006591275164376691811884213587214395971449825981016373273999620121114279276413907536548795722730658728431223090053634520521094803801117890608985784575761001601358031228444502205624885631253357428488918459053131800181159953377259241067304656491184140478227355999442449070003907173726155400154793024643262764746775471059124301637846294622040510050984526724357063978598013183433136320199996137565501002111937320825493506812065786083828551701816823663069478057782604226529322590644817766954360481768222505525981328981627900645977581477142558674113570361258152116197434847249234117956931601360519323686405318598951091499442452960758474281618646566839009863066743559284371324912618075879552141606741946122569296699786787133091424872744497829102805285843858916911888828389329465168048676613724137983894333388300261114270631366501484156679542824491946087358753628600963445732850010365168636194458719957482790174368175252145381420312510403195072833472283931185433127139859301760647831114011234059960792534910836564749467310538578785572476566125499177039687765491144744216681080246308604761923601466314451326847199713409308462453875952432938256696520683207654995341369319612030687643373625237700366855288252330756054184131383724625426541357647780366164011869345117034415749759931853281524255926062468456027186382725485439440701494479271607457542899915194858761762986571956549350045772546170428952081225754257084489021959437674528355960565639852505230533656455971247541143895125764169956097249577672380163215591493244555445352016754780128052930712792984372828869198365312599879678800106905415108257537673865907044398107894880391208377458928237926614441769761597709871231343817372766933865250171068924051334182951280442504803043765215752176605753962769111718435131449115642869399636172750828567231261082417762791478471328595385669064588959313045966939498188134017273072366074508343405024998495050599901030709026609692607027626947869964440276864099020959157629740112041222137707167432950610166423573042339418247357417158611523011264829753697172277807589286108769010971714241290043661339917097232203082130025829214208902977116856937978591277648808087322876983690578395402195900595028599832211930565249532578669050745795980777774417422797607064762953537022284995562176613639830567207457126324195784931220613504914383934972333624708014119238471100590059442396138653054926077725981382432039724546512725888631612581668347802003098132057581070819163163280415437515781854099841166095179425451217106728817249344870376648239051809075978843475076161008532043691209085145119812452228104833043528415442624770973128560755489286529916788013531718284016700997676265978754363942529699411687390925501132347547979864720007059335898478378340458528831359825580543152172509206670906942126488836026210511584425946916281858626150268662511779936196837933650888329397651364918901790332872506885343650050865051878043982584467126970364816983824054963240528317714210927197107702316912209426034702448483424163784685282554478174434520849298102334818329064254065025378744527799101304599707185653209178777243021698462234205634919679119003102519090121674634802176778084604672386043788640065550037444482333588631055984697549105980242390569797117342950435792132409454232036442611586763027738085032142801125612175020215770544719649981973120015301332757275962698676189702102479367466425413512547978661249797740974813757129699049136606160587308376500421565482427387452538634032552014109501113967368299925258929305966267731742322794894618665030540245582607776979353515917167818321055454074354284065570918350407611809129387520594533454812902577922708327673929268494734756552295876859086578865089536797665810169720813104973842292589066708882877235071956872212117965346193666213897332598454539145531201434735569540126266769464937787015152267676191691210159370299308460064945630446566301130948324893762678609826644809956068148514387721265918012968311934751838113221152153969963863141131045567953224695416029757067960457199032965162370024780520300801729463271649646453955101767917585311388458057130917645998314180856662940410805365194859407930296209872371179848027156637017235498523536129569142088683619419136543532176601009882609327161530458169159530376200664885263599294204483313256391215266332094025868319565643328972867624781029893125465525435448223354085998625391976259567280544990315173097186867031917893534235539887826672554630418634236042201250055133062953615679282283728777810073171973403850743157084056227764271611438622907956740385919006066977912876610616616196962557219427039355208194306913286850268803802257474997933227147943064631562738479487403123874048256621847522846902889782679940560656368304204278092919721791322444535522865761098875830467723744511988162466755810343586318667766998625282637156456066021673342888586456112312470222929730344025881984464591012315367627500487257114239605028901763278195835280518946224350560522509377458276524496961894808701887280030341591909664700851301721363407320005980734192542830044729395509018127848467796280387945293681848559152404431266730685157564602238406475115732896464308456051598695765029176703089767743271025705829970290110483512776160878640961775416920569124705127799050153292856456023188821510999780221468818582015993318255549360661733467194578780520979100842802087172300501112512689472063904505163309022760004723903634547239377750231118777084892184642232163106519531686792037168979686364752113515617774484743913758270349454902925143876432010134532704718966400308390970831663880531370850453394981829024162618457179877474388792896747369822576300032535499427651945139241829744564536669998398866826992218052231316843180157296577498981609202686069903237981336841440045164704403710830517339516573469245258366903062395793433532809545493175115464966127480956796677087629961831617795119820257292570300462895560975400890905604262675566411198227513067476456415193133586297087491293669297164480748460259227452520378914562055895149274697358883306292907544843420001956855165190388958851283942127110323798764418310563013349730140542493087462926355284109852467982504806939309066611838349294993378475262338495531779431605815806855250753630731514811196685635667267595554166568408236113516364100111310813434528400662516500534893506173560295656666951263295363594255990048937279580748492383729847167702498458433564820104160082751531911475435868293410187246041905615317251493449720398834798633872193322738516536281210279463913950997505568604721937032212258628585503563710710064003833796955201903833183110091041637418480051159860321030875178378054516711054069814356860616554157557690695742002096850295430761121621668847150429101998391524379555411043975754948725324870100896346636779923084591541743430180908529410271135298051494157514095423282830018817591250621088750269109244493431415695726237224363144108466342870765788652759268571051193430081845981446171985952859429029415926561993267882974182003316740013336598652304441394893858611451703127147668191681089179973232512699931597846994252283908570247432461950877260027188570690449593503608844731126126873038555798898925476860710553297178621690525275135924073604507886017674344804019234356857773341021951979497634435696153812615276572600063334707032501001807398499618560084360497671974746027219592647160187730191006895003771498050087062420829473855956394911296601296159568828142940191278457792181786862200242643636137437147809078026061307350297660594719334726919368896642509252149013619506381018349576712396529474683086469314768273418028466009194615341757330054543573758130446689728379194299692722662234946468548739073496588649791905794702347900254802884448279554115896157275191206844704190575591635187019626733426322801596279053097175267322201476386083895206280632762702993170703589742291022459711945255980745590208278271200713297554806383212336607298366023224626566155466145349547933368915769442958845894446472814954455828545218016774538673782750627548253432319243088246725185601528800156350203099797667664407139051251365352326752324822880450651593949538433222957500095928991426960850171494537800447977600236466584180310136968290874057804007430652979173982658044515407492422324465298679589044347515984378915876119151530541779188546218873529731030149047040296651071247307478444476428612257055807053953072680755526542080785602631906482709535650489060457862911727652137756989024302537982589925227341991301717470216367127003154612017719941300285225750149791349874035575509310417817341166036602132194029232864950339594449710999712801033992117892073727419179025584509379527056492161968660840221457881179893364208794696498409475727352110922119707358942711463964924943906141575424017215144413980694605068877905936626785630465933267958350408378989763614915793234073517375789310980696167342370264960526060285190122484538227694142675363908042016616696795202503299280412800866640519390834141794208552762804020199409074807152037712712824137733978489239105366648253821376691870515319964378584826470985090532482125921803052073295882385260939004535757107897494477214532520980669894307881470402065857811834933357549000729417315136984345088416949910411248742450760484349467290528708668797929136036832405196569873547317594262631859608840433082118935774274709364453098825630976116936245287558320387309630387998740258619092452467931740388546596230071547968061841687772024104608868827732460331242391228519371996111861207059645923863525304223738621785916792629746171537808260764989940666902583179078112526944706947084586087054936581840998082380399473547065052899108928964855612802181040023082184507293963915447933821831534259534188639680215474137211267481618031984124403173038236533777567228750149682651439175324033486489577855203756427129913482401430889620471360412839139834516508088534478752295085274937515163617756409269325098889602189018681165019321859410938785694135657765614946396363161143865463522467680420435870692284475210828142649092565050480769841297409196160726070947025581711178640914390508204149776656551607767157400385063037018626565424037085473303514330861066064151619700932845563996852992613978040863670041919930005462691562153796875340663531849078839109611406208964750918203200978476287885672248589729441917221467839137461120845311283862346318446698940246029751726405544459181992161446271774593543116504635174338764734979518023372176895581416154712213964834441634967624580575156936802688421513422932623878224437295845915589788568237561277032408836185057836508076836274879046709708607545187630782037877059061903177518558509715201942607523760439316297455783021739515468246043610430709703507154478426025318479016839394616197896891575079388366875876780102963313335905481339648681053455881015923115797164902769986894256848690614282848867171611288512702165823643341364633084842411977810413317562912232210633020100377078457306641420876738565783927775082986913319644280398713173705969987049518998317156353925426379306723258564768427392878437503251075762217977478165915237704482991821523712035308888839201015221832352455864388838046863713619646132572837362237630512186129001800801237433511679253147835433746152433469940436479362785343909222807151345493814562630049846916211829715766541543700505027466036896153360269631159436154815179259412971156615146003035757632402102150710839730389433064827141860730581816748996131139675056603027038197787391885892143765451785728211837321895628482835415451587520473878511034640607610361892931746287886160784581243167867114403045499261077352839974455879326460961006778076795327250069700973233378756347208352245556695080049622639720122400808833787531805317711036615082083734709662674797363856336210359782372078672519955925345754488421074371002794440215613152431589105304044056113462360598162107420598668013750077700030705347094373833253711953541548114026634636593505406079205134861820269624154280343277789094939939358856617314883207079270079040345676609847284660120041275429750247364777934702000417527265571978463602631111090544638771434869853983006925277807645595116104701833811006647687628087909622992761759009348588230956857131339991189744397632400325275578595383951231821989480639275140748799964815555859270297347188531180181233252983817814121063890677407818097643933943911354373694458454433210894737378919992116504909073278944032866753881742638892477324034355963039796956400692926799470693299069451656118206660256008211641483645980462131069367129744438916802053549671050827510642852477843397559867235335024192952866390446706009754326336733323394688105016516566164097950606605866742478903926205285098306070643714051262437419949145815303149558420577645667889483476624845411608645286824512693404183417186887674127835717435506884138054158568172873285870489114036693930352890110839341481596400210081063603268469327636354273854800518984852469381558439122103268130950069418924641213859295116963583122433641137457244606531739452616894288710107344042437991987892239880055849664269174286635051268517415120535495115451463505650573337335700408628406876120419626785138426273788718621036122414424992075189744698631358824093072931948221623128012438315436791366259142552466837517550431289417701596436045789328436112260249556390557820791340043180685358439433431199965799392758208054322700996483607732155982162153741965533877728435923771014382038877674554433366508849232511828585444380501078310325770905430088516895295141157864831359469067043956240229570482806359843076792799697076587803002246527966054283062967865992037198327258326410116363261055553084168821720492886001585030275317732772888073007042862015801484508352692025472639747827982849008904162875834120584376874398281405139328387765984977721953862059287299100668258188892033537953672546528927364560699474695518216438620656767193790580575777957484712094339419669493512247402671711107405124690409437430183268470305459855209952423096722405067897351787674419868910964703770386215486399322994372144429639010551831592161742475816400776214104386427854579424831757981136795465671508623484754540084009750932693374659786559236006110729764556735228774555781232850904231208181145159378024389688648112681396593158436396805633813542422963410720305303583136572861535917629488150794193314659414266734897487698067997610614072527368584689611129886755168368263332864229657277707574096939338172116469978143229099847915672350487515483274541699630659896866278489729663689887005081829167623332564271975706262419691168160041340930624260346952930089250395181065252838952606779519292202295260698922660657351956405852299659016847342403970982836042867214349832779796422075858791121665143380894894219118654211903949891516547544705316262202208616167683480043904775486346792859128747053984846021161707374645453655141624086186873423903606411720008347670261497329529992008637630379940749664492084928162038118526705278802189130847348691286212514452959908695499036247271583183387641965317415866611562336575399290018696011981827823637597192581930182054305186464694373406051877671761714984848390472087711856232030820628078553418505149895713323685870349681903039645452586424811277803099183593055560501993258325810815454953840337390379466262755468967960678962875094714096260438534944558532415549656419433975752724915786053080212728179824267839472726024045472639066740928370036085052601798203138276406692688423242573974259029783790254287894426969487316645761485043968415978435800665806022633499254957165653203234019934078520959754163034230519787197458495463756642096832050041241973968137472332489630449535243089814795786305491124915830624837681118043113011701052181790965828121314297502125522124120546904170711756737702217371498970567460187963806222881866378336181094908970183676074810281488422150312871846879334454566878591893819088873610753700077715284988041576267915481607012224725746299717075491752929267035339898762567184697070438142362164230291356473822620688303553160498535530191551095773904936310499350290077286912835140889511620878167867592401143415947538225923230743524773981985791180749152891576960692759288773589050921995763191357179261962980991142641202438984480177610813895686313591739042624389500780043353392047426539855291592470735933903104116494861763187207374636744588840031296973928312185745016797376713820421000799097093332608056528459611504611653017757282252272461729941575099955696432432255648467147906014299073421635946980216742982275668413032275965005009424470609362287367614020841211466223423676681543722568133380996729239997756002780827604231700279957731696632696429955456434691109608389345867507291825811626269512253020759756037023816073361255657749167823039366938188245279100006855730467428018153905463432403885756321445661094804669165975791318895661340798108329964451411059195030048596864033896775127212845034286627016498888211270344115832466225112939367794195776794894390474964073821604141332091924617350015133605999461511476060461817058110359058571021753161594791669847311117041470800530982501283937423862706387171533050492602373662867728194077548177664531164466513312301840555099845007507049412308709882512023299417347601775424666637969357194156753833009128033528452130495068615206854705564033025097189130449383782854697782767561481624566078614096500428436426112445861714247532429967493911592712210325929472364834685744385834442196730948156866988451912275840478608869988247914990672196616373828086351110223265489264890249218112547729526679513484170806127941288903148591961379052316010703944522153726670646181261337390839490296319223951841899212662984893542044882389197333926614315764695531147646612576561098330107569136920698250240356886167805261431318085598399646973055323245401779949360463113612506873164280493815676220946670819889812905343290898351494863715045634453271228621946688825912159228671452598341928593789915814468943478074025803979103388214545935623485121376211782240622861528379005322038308076165776329935218386338262526658241870510709784717376618547859334993527212706646591115800709835647547029477047061393916932458056998429418915716524117370948430635882443024069644829794854397599872253804915281858652370490037116810844927665819781164904023426574509326132788060849225658711318499471344990866021307430700458164598059341358608796144375800354496557432293147418139036111933156279403643175947148862513953732495415205861405697072929172260363405669249952613114500094232944521791603024884705709512665303599853867604462170123668250891073066491928612420445410222343688279995266125510412228151151096370718386315034287079969259921765941615033798681462896664208438329730022964388534031719353936860449337953507577026798357495360460073362030020471788766677769938822526771648800946128544096971248057517601636738306180689249128937810451450457021707023616935793441471323384090014150357121548118130981023763700424464313606253959337863607085373696159523357508926273674358253390234099245963003987513313197911865073551050467908179789436181508029775435020801035967969707088674505723510385709332980768834131031149986619212133355853528472491985055066999844048315153959798445771392989110095257200639531618446381945730396280806755894245456119585136570740629613608572785696851361714316694165911857475311503367330215242769487477820364832336455539331109266737391763018039162610564614852504827420779246790731711405475593487272866198778500602641339812474496161277888652987383925600366882915776415487786807169687393198880115141505114353144936512188027581733839874429825194754680473780934692732965603816172218321162683148272528329524261694106137205453514210120894302263086228047657736072261708562457125427696751565190147575717947637458701372523599266598299437985993031275067716014095852950427859279996161855664921992886404699554850234011193542028975391593666124414376131219419780901733871358756929579543567970264373139713848913299789977237357025624188120897696934710310766462070890109901962966890667764834095388076667868823585330946551360552510467831241820654426197616722118079346148360609630553323435058914440863511494536819665757740948358813363597791673871913229183286423630331392867554165329424403125937403448414471079471787827813793486236703421201060326860268898468555231481338071786595081269879167129032562679829116169155251581143945345065073344427701285640920082815257282108739562572761668563841451657484924036291933771074902856249521034882874755170706889719726442227151181732185768594492871376492136719817220222763501165134854788945852493051528003680717414622334643133600088369184106425014298466424382374267286609585803872355163775552044296721978665241887084187300818629718412697280222976430028496746908584987030044505010116299023820276409366018463748992630994259756047644923490263063513130361791412030689844739254974422111414769209778890908539770642777630705410179600415330828470836776755804394987316592096553842384987704190127781658814682081121105328360344018381061495541735811395958762228905150966914437515533434640729560797369129231803547384442915018843526074793490252866300643123066650631289150728896870662172461495324099733495496166671505788043258898384686668302296975743592046394395478844248226633591745382905395634569293629064953765735462031264218103733532767496630611477851133699719046331423501900064833542917945325310674128428742980696975288399048924941252834682076044357182439213965568738906009272352399295132599028776491412710826596820274742168064545123006033873984141808065416169725847797702413817400239482758152934255184022049280774361171146351767424833334499541684789371675942814035573359350947540253794269751134747629103047881221569277573197566331071434495896060433792262790654207847848910196983962030298787832540921345326008009826857627061371800123408974907804549638682332996284962021407943072667275313323748507605438536292029392211411253375042137561197862719476802008088371612316119827369135868732194873234712272741706463470352958416319414899391527436671957776926818863795265700705738158472403030231815320126979376224618559543681304635674686913552515631296384672591912534477587922019447845747505758226833288712099284128543441230940861883163386344521458322050947703476356313237148778171472171287291644520239876265535657485901254701151064397123484056859525453463634437301244961083210450544645070155553861093136897319023788934509383652459581192981301412260690719651791272213880325011879476669824563944151592762381399443067676604905814079547019656739936327673398610673632946672531884424249911665221390846708238449806903401310799994809597985530272434768581762836461576046563409260591076841083583356877609319419196511743829053338257160305257055377613669558217611763939661344243061365332530998661143864898551124182140245619894558294410333261807682355390817939058633530918476376605173601505215305778915049129242577764930980724939722459141333961148700538949826527287255937319513154273464913628937806261317999083460926917796866609314912262394076461573967930812718739663062951374496089769955583672756118959097840837131646251250468937888468275749577410308720852774177426053996967318722954163018556473657126373250644536132620824275490762563285093221307083396269708128738851536165593037420636748260231739259578590198778597927803526047816394843869088768027205987052629656801290071498903934822980877451903296224669561787143639992259688720498090146992511934927379767443112714485966087485688520184646008551440341986556401413196814662805690061907054166280284798401659386414512398941315333026467206289105745234090477391203547069382672025331216415458568753894225518653694765234112105175091983923364864823773670877196855666991651525675924897842543656815397044684706069947337793371656716889200029503442808049169304130322317185013073759687239412832953706840044077195698247683132423550699269307851702095830181377575341526288008658524822215964159690071202350904002387055636261124144801482379092275529235453521657896273396152954200484188652566067469238572064903603288074167544084375715023119999585711988459838009613174459311526683712890678131029883752874433211332452555287959675596697664066970524838779702069478839677818890100147040290062085989697415438531620435241298568934262570044011430568264710232860764254107490442730350898170582186569918637238968654402370680852014456432071950844999679228051544776733769924151105770270850707788878588163614537021323459630524601836906218582360604347378557628676015545995509937597569657585921947554690581089002923413803689469327123096146443242339219178318475959890737208187087228077288611729770027461262356863477066214508935741137521002133316230681531398502874279959658684736908697447874384610805160527928268411180606812155269446415105676238556832310622828179611099476284312395331016414139662467490451451008799588861451763067312955082014169128719298722579605666030448701488432925540235771671721031658622429171757436248462691899002261108439873478892446243249740709660850035191855022131179180987300721964883734216055494097361290779438800007979801222844403875916842737855644217565259611522903318482631811049432390026984472057738017845500712512858608551084936654915161075010475150396450497530263567967599028996269125635744937729439136844219572769191978462997076701354551869261064158019892597203933180887359033192760979474842119198252370123400240253027777067733131187386044027069243700170868070811223371157886165997837101013430931701737072286561380014603153851186914491838741523271047258680372136512779797051760621769631577632384746254311607025873922416478609554236256713527789490434886735397851615545071384720595853975754384727734471662142768235944113689192239723863360247752516217047799589224701307791921789041386214017091811390519853622036818470805274072067170754965094863895786271502846690617331850231034076995528245987649993568128258697733282140161358361639150081686389426449830005950718011601433180087876140679243315571536614034561485231731886238700645548405997359417375641891013058946080636680588752660612808459032542845383190229866480756261077176689900681400179737731693893865129425930048933774277162763549770654351486031528414275346850524257920707336211982402193568110651110426226910546609375595367971499850134325635891665452830590939284836676303964139578058048952997033256573108249977020628946996511756038662001936072033388436228582289798415350719405635660278768805751007109794321723902239222958948733848656652009791288445677354672984039805133561469827519925250873765819471541980135113789578071905486856968057697538657046969450714180834032700500910678844236131529802218148890753121918835027156031201548885924730768384360383050451477993155092666234995823052020844125053296243574786215220530802118232388004640340089480780745193773830296734560440043923520082990473045242892599778245949407758951415422468429691970751780132052772822861463358002191281215373011003236668098464055812557553727764492226774984448697783357230254399413256460743843964705147536497358642167171173018089634953635192692220134294216251001142846563408387640924172293600648117360924290349888681159562837078139527858948859233965383542493892347556129781273680676022335104648348827087470338061982396233247309982536806457521635341604139787911393555025381548190598753687436212195520896486610528391862384037305264205298689460128753539209947683932602532241048722867892753914319116783313143653756324030147739869196333995540012386524652932436193924493936124473465750503003880229457989171773134355965490953324220016303327416014674369788945182347665937029843568886953944428933488189207108852388059790744380820430568837723891166064473992440618193626778974267917324307732339295635153448741173515125482686966738756084422786942213466163473115089610141848200435402516574121392931272544880405513505616976387691135502823490266087770145778368614561748365200691208231580734559075701038217643322678680859121318265335392144044554069465707567119802928198261500393141377725919172702195248796633385950267276891587951590741643568471902170896738098687982721999188314084183167752539533386120892101993873286875503654235257006707595417529656103267260055459336867839921551399569920773053865882280627091804384438223772041904130258300165410528906118402937601147304628952790034231288779947678317432480882502936204369105359629965729967729274197632272445450732494965216439811376423401599427012698600258849667628165084283602525177100335840898852733091007233771139910554132935923929309417034483489978086413469435643122568102181174911558064671050666089699724153531287248378989261535154973586713501622566500627458110361920953297919712420707515552324933873199151365121740881668684507435223055944372367881827298382081874349056767135226823720802063525290074696685610445464207565533982123426884074428358592967246863112205030008823018211108749578049410030558511866118185536438770479901692877517263282935066714885508079759001323163762801962289227235638651196878727184151124473764125893595681106455137324440483948777128566744173761936385888454081615321490802951526723845058282861727739007131014819201779283584578764481967125324024814285166208738504966615091796928424261041856172653699472127744074685124239181251585042720478075247705283131147189279530275922718272082492774988627861288131768228352587659049950203886167794953566589273345014284958831428824452734454244849446293092660396901051037569392363814557527366226148566157466169550207645989665734319956436061299012018854234822766646091274387963806435589025017943228024755939119766122183626792896739575194472005882605792071401368677177856910188807475340331708819481001839685688722495203941064509336290729405968886488113685229716550654309734614015409177709145634257232916865835222757028727209723755497850907870745950516437739898963865300739234870579009506619096849905337393326933636773939692580586628300503179473354244405498012037268547050214703634481421835167053999245703421639781076728470328851061252155988434934392341128962269683239041022533909667509834251438075964595394476869442341603665746180359320024493009939528826446537780223930764080238797299476720132564587841867710719869996991776682020951729327415468661928461509130018471610153518757255070670387798761175142425122388515752511128633457895422784940323135818509363849083193348947163179311188320344341588280471522814107490057547886426335378235657366290975974380213588749308687999562482035605771762752879974383581579087587923300829901211317491409018736687492701937204550934863839494172621586056375987373771481202484513359820666339929491711699436746243179833072814416955573956828524631094801895916005658650788728245213283879197483783598729103515123302303765010948806532405651765885067013903840643931025876897708723600018507833426915107601305222903793701128095948601839677573982364109985455399207047401207848392972794559520688179034655103972548990725269254839270068442525060534616174961384615416121928114982746662501153231992575423479625023187326001028031714951536024184296062571601320905963937265406768391800005555045923526343295534555592334860686949111979561001726020893330366507217893337340292595064966755788033384026789381484172096324124825464356588321017131351981233052392165500604474617827780438129335425354926372411726750542734911278180009353622703189421891500973597222938830861633409018105885004754590191492600670658217324218255935767620630565821781690926368213347739185009199696451840074954081408429278133858396565099372646754280856967387935586755097699396873362602118120217528237282790018089916018941625213907773968917596240283883263340955139910184111277661124485320929285864951864058162390993808527821737780289819154774208355857196763516167674008800990149815216206001920107861169144478224441635696256060865660279352613783586362511572836099914960489594526262992585516913112234102601767989219291118226576886527138722649885372040524872709041839546631213985404928768262118990100572212248380412708225108317864624828384463190718049546277133878533517122158197376130195861724650870544397186613169630574071915518032944167791284255035628267013845165535892924221449770272171617973345868804129219858260914261343854684634942418418116971497167444545336936953743048465353528285583069067694496895968803902758788804241857441220373220955318600458072963702665860398886185682511520120864805695645119122940663613758567372093180556267502240101136340782135158101872108501719403404871166919410778517399134425051068960747847953459026056116148513315586796637608498809251123230498217880300617276246576548621114485916146273357527996498680240532179106462744123223186208013489083893063664678967696816232465385953288238549366277821230571211836437024213830641437229224970856497351673603146935071032017146367886268443909035473672818898583651656804945318226924615418345533372128704052261166757041990223047551387825287754574835294700057768343032779259052752928647929214236497358351165805868190729000679843165760032328845108168337851626369091796959796121127722405911333519383642779069470625786262104076695400507123481607747232338220261733638392240599285800148553448280915424124513809268878168726911101312501222445033738418211741060913771523445304494700288838894622795538239465353693443576595795089737566522473266367365587458450319183259090540595031954194812353021736883400623939317560659293281764056726260830680218869496919367696764018065612609696824072837468626555648108604466135810542738155804979666781043294027111449198621772909607584335044037954641644000700269121210282743116065798333482600795735142714732048203673921895727729489031913726644096959019165402470300219516900527307408872168191208300840922941473642096321453140874217523615172947313427903105603837800225645712187960147425562009078027104360188755175083920743536181124152668768366739375578387663275256604183348207049633464359736276325979518566812606008722290976609509873320219018930836597042314710864821851376184403584579936325505048596609381531435097379352087957494755268223841809840070234062922569591590510406737828329910631694863027079990258595324920142223573711045496661552630021415594126138227131559073761392452613635251013487107942818542302696004615260088327538961751549061835716561963964685254853713962356613230726221955177982721248036501365656913268295891851527216740681192040513352673143095150214491123289187683455130756461054805956932976541832162160563505400178597425763722991281426938974997433496019471690068969573892252925082560283707746419907824340977663616411210212259117571143415981269511667853673163350714011064026309393917014105479681417616874879076560066764506123430185401059894789427168547519143708286121955475958572629893464502203015389656204460947432394262724848185134593288366101399455561530662517443332768870674014562761140927295240687190844983479785626279556496937701848144578404303736401564250199000630190976809723451233327021640483905015674059956800822456686389720243071334227656048884027007808561226324728879194308144456192226936229052656348301195684408149042831139227242860187820019140070782227279964251892473260917754791498879229527214724392647339767731104797115149991157945023448986575139793317518451887629791228182601767685560038135211188681103750725706494379191561390609360953095185615781023359658472616636807961651720733655908376311478863765844188463197106390474372615086938859572250544670136824842640934795050411056315599574610615085506727578906828337575987853386891559952815776731797285651877645847752379338987411047113148633943053438108659449377084908062846273631001380072791279127875425219584152741670296819794360897194976802572578993409114472051931567847426546058187566691121398794024368456046406348105222812833171708249170336712924635690329196157500050485093152908721188855856505964687015844593750070758292041188901825922212602067159543833588433200439868210383153646118975740726752621088856862880503368180494256676502665707308366741923792999900749716299020152994134544134131187626528682890447603363784581045148840191536515138185773444059466152720849231719414214545083757874741489384493977115772967331718518797783450085348190630996157592261723750529052293874318355989722023999809121480125904215953813075655421740176167160326298081089680943513346765148320192698777427323283872173569710609371114237679348030355044213771423152927559195755882391274541555759515072885335258026627088465818337185082929329098748900025816660862340562150379312621012472528049037636261975429569015496936904082917889152184549279421438843362526260022439943972715853721780507073778590537102470448876438176039268746005348496330893244747333615576668986852909904563087733939820035429130639901944027765675937028727018870185466615814904720587529335508679103293399786485828799346269605111901322021466904038797023030324152270083184092816198893819824433843625971067211144025243703849584851001708428387396202386148511477653761577203370361542795768642991162528130766977085078892088359464290467268147389089361237248401217760950185528703998960778969101018246711344544745210629610824337466617264074284021562772653276537346947703648289732660821087925391986018831955682254907950087683869989922164979807585927066240997942617028049125245223074390023335110825444955924990664935646718909239987882465555004347059708200712914882781363952544070282548207388193395271162324697258572218207406340972663090712968962031761622578070184090977333868910068088037097090255313995924106035133079792609123557344452057166357131201231875837702930830405852066231116333132602263960879925125603593013385279374785208412759769194973819597772327575348272999265514174347037440134742682015797351016697673663170569567579312595067550000507469332943001407008296495826547817032354098914501534273421173702915279356545130256518019367144390323115134317869896494856774748267418342086662056782596873300873215979212884088461108149328564172333350739823426526130926149605211107240392171089040745081625566098350021474699363093775845383034240867147390953429179396788261485489802413033135378990507181015324788754798018864064775790648210202839853392496974191777962861317011884656681142590904598101758065644522475467219061384686250698552035498153511165043514077699197940965001594910033803018923537855231200499266014903778531411685967951285758891320124537518580534379436733098585431306996831966985428310737986366081152767265289572500815298360107671392776356220380120262874098426149978585441994013127735624943392569483296095430605967958092483638479197030586320528252997521824368313892493381105624889581215611895842338606014752759280378742340559159855429313757499060951298982467920387089471017979586550298794266251933311852353425270149870327059681980883557325103055724128722038841581794641090811799504719795011021678369266726719269870547415112890637625068056638351270739410516864300184785681825633276950636296982535971526001908023884844326463450854251857323145289305825100689016728653389314383001713905004055638590631708145884838327967000769131803442367185161493113189289082560035141370358278443601338473568307732467915319206656319207506544077036936726396690583722339309733794629301745842368011717369695086757056443147753163576454740827553109537878052341713738625683884040971060172112829031564523226868618008407905573863224227054909884953598760127884448715119706360375013210647086190222914747980721451144548005003767579927603816868277055710188987352434542419120959873480208573032740160519644134936002446369879353112144923161921917640786113075984439729941835984396964884313798478152459444789059315539505765670970744873097996246271529102442550211360253980650251118799472192851525793334362690952528376515957517094323012565380256748557418208085198341652106843582343943903244488577124427075823792825376640801411578404418315570471679289383391422952090873132737978913703747469908926537286027357992678293925075347976949607996009107465873103823795086421146492936043088881806637841546178576305219664411120254698395796624390194137494413081879853565058987366503422812368334289668412597475565102726081113689908863181880284265954197008025251882450865350225409631844422249393564073445506018846944423420487490896069178948963996804676745634275053173236154761745863308739900115938039488152936195979586678143674079489988555196106087733590576499999210218016900779360319564359394086031607096303709267648401033533526798851062340345535039255510815344867998220284029818944255975390764993594300310748578031293142506878733216069016061251524077962991458902659047535575594628593886641024204182904261939683064137226840213147535646797587183383060192673372197231045558685987332258704625091878225637424831228572946383980634889484573342576757491261068922639386366390548994451247867231555412305674820584243747438235230459721662817979406763904454598775551125137374615006415029363477682250551294350434616752475040715077923257385363563926602874904978210067174142448928492676562045484385038899007438018058107804076977962967932262395823051548047979667380668151159520141614424740444665736393297253756207547009652578146430992364926780430840577548960257185032523079688637146132662814043244885302530673442984973877077902727719878790639120781752731513459245954781007450571521546116802084057371615714736509004787967642011054452203690014268698740833834757103131219927905983238545780436253183502906395831334459538752861604556762994534532115799476676011827930805150157440005420492738531759976908518388902797086407562895901240883632472493031758026843547472465256747789406881879151872680274327800174711018294387056916793948751739975166785365164672456464826202077785680410047245727933798794869196901650164109344963890098232426391628107721962278700926138759712055765919135898204688288623859103884021409241023066224103024764903809279903541996067813418928530155770368906943614420847713578436772411097219312817202904876556806399935459978663215987309870203393715818447297070473399699771111234709771603168479533144494204131244647936125902805512369859004567752887388074546834956198371020519833151056215345876057286792293076694905321162720123174185728094099583705543091121764477347966643796501411510039595617736008342985739560575152200279449473316455743656096387238313847293253536692277766384269630362772163804451210945526545097757448993083615364510507453731618336544494502546617967343291605530106707635625553700665379486494630412484829336707538502025178805416464179213798690844135440381076287417798611923073216174345995487985731419987045855673733994714344100966080923991656666973573521933066616423054830436001917297080616118500496016410092994209216566897595238520942225461997972142751248376872025596837527549749901439337223269721987154803140284156143529533038272957728970692198401899461240834912465807892244544183665180497272680792801074037246076716178336319027775859592835970853321662065029965083125829744574412594821258626371781536153643644003838278027033502100964131609579648321628715565406237410040458534385610568292110626406389383802520948003143366411679009795722143262865360762276023744746392632262661531365270836033228479751890120457656311999542325671677340141251144557313490585113983489177144049979406425146452769950387580271149478083608363602028292090292211006518454725643831267385093752511279725539887445951774669814506030012547051724695796999666068690303352444665658820010728106529969242464589004869986217824147612176736897468121810851028549693480390304109517964152271742259488462288534247544896697782209199842987970100454389462155871336507439571433808899969343884624625020211006549209130165493437591498344228892224915101808350383464617342048675690529099791614887860128443976632190717175060697734508879753036034258034152973613255009099567504073944741829931357590604425704467248512339988256123577538830023089570470607186106800230089389900070186914265670670174452707752327319079537609278091746559301451148251438714076095103316734950163678790754418122268240204675105213058918680757836271588690985699538710534261579363828268991779747787351098309536312670403923454682044446990019889643817206292208414873626683870023769099582589550319549586824850598725999376084614866347405077901632691774667676007904949488990630372369778953149642345942184401067613712484601944239318452540048731732382187919097805385474893786830975406259125443241362363905535972837268597877977479374153727158104880740059005698089528234986561948164079754101601833498555380279931535225142717866050990137495649906786239929007003946785473738730492483838926648835886314164026170328839605829789819425511130547471869991159589129589605721271226630891584466327466814282550655448680845718715059150266030851361507812749880448510798513937887081875629752146813874781714652469967016796162530312849282186488765531630849358491591643558909145491197485697877709716425947140906950473371101823942343184961210428620340359525578189268237408507289605361826877330372476117454778945724367711349036879731469402498047908521224999864880877843512979964836252296625519407133440472106677709232026778503770485700465794030095796472235981547256950229833618924566886162622672830982978123043991967860893513286575231913611827051504997459637802258384688106533337803344044297311990287808177518136552510947472069262887602010586502400820823471883197679686522618530843549501875956758006559632666432329518767473942213317439380713683472649414803732857384517256767648925387108484870741855781901458859807024469541472842373925336429428551874345320675627194276707898818093699739013427476271081070619962341718551315954677522527802799490948682674178938772309745351708458532317011969399902385489915429510757686431340006417372561082468122390947075139065375353630410199059897422168004580386916321184967309400221079454694862224790868046970692473624633640584296589928899500565611837988434163605380359306906104546069981008685643408744775592943204578475842150403850054150618467264848851696156793089353202336590369069473544135240215911331469485773167776976323870501289430432512322506197287482620127603932081954536111810765078945862427492772292611513199528449627464796323386855203986928084791584543512542530547746818433966551469304296512411474110644672774056237671840493747034202918492913811818037907891774271453757711548200309973026035107759657447023557333254710618669326150184195758575110776551485630435271925569473533709007853506086106161777146063777965341223501367512441132230136674519836988369749220290852349959975334519984217661777344815692809784297093106199576358346929215741724079299886266573074323590898356020431719428680708902975490132151841969916833460914363744918406954531756260260972438604120201285879772790268735738656250354523468209663908846631523942203102656778202709281655791170803484862314136778028104892749519712104631227901749801217830730065211134487556488319160090055225098535180127526555143464795104738840229582180012553583002667757729559328598214440574130904251514682834951611941927139831159884803311423540198363992802514439864852644101692662020270036474255619051266685860173656729470372894211575159781607532110893487257325633079867729932976680145788046777744438511768495225359692199203753927713751328066776897572761518635367591609863954329755666904507612610904639163694534922402359078990796782362000496193999436797918432983003198804601364335268578826162945439467867041468990352858290415637052773766217026646393502873913345259345239447130276121894150015244825073924013318262594240769152626979538784137127516779077275437273376896057803967829550136912547209549777268610317043456773251210396817979966959017002997728781531136772711548700355053723743015227478697296438795918790882709683695241973719137309068573064222982686793218446931711584034452509331059326552428527899607697673047525153926419391046937820496301526930659733507248086773662039847502556077258633821017848057409560125582805498575404094389630694170507710136450189641608118286826319710876360198573463481622499442475460961719237746415598002846373235680512914121612807552465221894801057788424713883158051127254537912053486359704024983622326018149183415523244949055571172393273584216170550665090889339154819094216617561313975184713744242610153541144503417417361959478056802992127808840843380948299973956840145091710611268652202549256241377161104364378827635291687738124964636290430858231551008315991485684787743237546686516011869655217464518453814889024705418292379048647990283685172457911626221376789285911032396725093749393031435530023658990473398819539019635991599173564130605864094841285312933309472535417638822715016370541982647389784596985163307125042953768593865882849613113209838831504772476075983313712244324914081912934299034016987897133813638754034715109931509081428007745955974899860984619526810974960858410587769553535312521223195841261885063681845550433500036813622425422615251154619099163181979528559934874637298739655986783448600330866122313597288086797389454760480213096183835844106437254617235253690978904093901336500924711280215509157933525581069369791713696600210837445290019659679319890194596373620236818152984660179015511191558472186382450889439118132571995377135063590384259654892286897548077698558338283412705298818732149517896332501049818747153604819041468009364561974825508653429543969432320602981403056402346582206291231199500308111128925262167311029294393071514874417836338139973437521409300139959025600131179991715401644437543744696584527849842894936642520806386642353104935164870600449537242029162615620400561586209895552206889846884535460118801804495843491032076301883791089734385343663707516534374903625616007275185570513842908586510415560085933774886935896677553169784511954007981803126425743587517801067172668489064958086692549586106692143900081156192509326215757373809470718979532299012145226784826048693629998181858555963914095349440449390888928774044297693222511237854594291999361465388331916163671767160069083940419584602505171230850868898379283079414386862023287095294529748137808957785237711389453935579780279804264221271163703704758520202036647231605253674059202299999375655797690697394481644739797278668292062804559319320663186354464510974767934913403572492114193829387316062220815591642654447732908269260602092471925615124268557018715878593810293918531721591181938983109314906811189661157793320322488851840969518304749546111267617368010330558344539341128390439999202027678761784325607670191222911791051090669503680612165982667842421586592638283211435140663089229319354404019736279441972302305654084207955128077629583148187121710254442070409824640241490293411996751148267596614250055070809949360677703473393929798629320437694719866708265681374571066771301539285252589214286611920887844081940777235005330855784933463172180001286045616575804190071765943593372022264510893137529866014778404770742292790659679747774851672429405082271016774499088935518579151466877719864545254691565573454767398250772137629008394028101055082961504552200956106787294532300851060527867615962029427418355874932978997914065491715410992708788828192727145927586668159386597241017619411540719368514088756023545591391673047788289657661309683553657241466360990364016319965355458826389320984767719172211613606193599276354911503653835427260411108736607741630727152562034293902363883885896684691534030200440603066988751201550116327442004471851571191287192261827596615819829925779715767083410607675346881024321493752697799155213087330081015612193639972868570744639780654123802541014313701611076761745350687956499430815668132969481575724609580774124342167174074331866215889928340280244566118354908554297544682730986178695198566430680042821924012193437443344461028865079509022303419667523965210039062178311450772696619186300040715809373991242783840106357616953168697115767412441353224399434639496580865784469004339410251401956694570377618553829840796704865794254887615999214534679824661129728450734717216187472081639340840858086381855117264595271019221687622328897122060433921872154528700947186064444178248069631323338550269365580370896067052243516090901903781272834495417134058934304534783615281115666657194410062346819545113798839712230368999829411122534779518402642315436367671123739033508460874623519973633022618805401322917249319452607322890825510430066787450410387358390815575386832810102660562636927862347819605990332443125522962674989066786363109175892233798122638781504203445861177731092016730475703018780392921874504081998439444660159420571242737142771687841787263382797791488461028647938136866310048040043587919588893439304997342170084407401441241771080728823028309784836017891968300252365663354374637649835364774247995729035187812961865913831955025588470528394195159331442309380150721635413388788669421331449453856349044816513897732358344871794934602172979597593612696473076451385212430179783044149334477834223888076872627768617035566008491159002489706156632430684034283074926459690448570178971158408069827958154883536196722686426259617592038909111035478318509627814337666310515174579656370729031825773075190283665747555565960241766344388785783385849116527200004017668495774322226057026134267250271768424352275807801253398306693604961677357257590639967484887586219081558517644135644906965676395720861501082045566941663825521721291838320379332589323873738912634501448732975815231168845413440008889134253675172382553745628476078652837273486820335126011252144377712413575344099521536040736059139118963998703083376163991633035811963703479340941596905053447191929870424856724046979787160170795165970504582745089562869927405624684136077163253635735800669544231362272410805732238556454263418445361544750286946772392704548172502243249802093476836326638150377103267205335448512022633775575084830901276060991027518685181315717166384730289923759339026691326000467166670116490162709217425388970692500052710218662138780872014988414600579683222804092358279894588086148514845120734013530559551924949220486019820919036539451997859016606335770994285026066154337067387673659269905804141531843770727748459774891531197354999615092045800893544836435360237581404215287287072833392087631465884644730462674390549684410677481737193003199036920760091816398827210836829810707007177687965660643138975085568096641343610326002863727558165371781937151128336461553209466236012761371551172511996822220441625634060330212723538268040076679568207778432400498856260184829805318181059852208222982208896913281857755740492716323383291564729079629382081674058430016753127089016149153403433981991068094043454584601691128557740788310164093411527938623544093508690666648214816020460307394496368130126220637411745646618109930242630682476404996766072642910031548122696517438467074694500389934407200830150233299443172572753877689527645501397486336905433013987631948843976434995343488140792646236544893902662954246180463694452753413646062770234091134259285485812828229099478220176361688487522681331534654573652746953388861545879627237591320926716853560683238655774347760800563286366247352532884587048641392026204308563456421265549675529685518639725482574026527493329152488281606335967631318971768832630293915049228078297502512532897747865347411237403721698435275983082359571338113540922348008286512949244510676744791648894353508747314933691435877088525408200002370462555282350707182064713061288430547011921724046427754929444106993679795743604464479228252653129520722294194016130170529383791235406084777803790229140636337027027951260056479770181949275459071076634558013444877922406093435351432638456863063904827927179745478168444556339931579755156787555853761837993888051137963806412046805184288247892957458762561090539997785627990577979108665161788752138196912126573965675201804541387496443028409955016980438233829379245111669089298182199799590316096470642729158975114638365655093091204672677844509751741399584470605820073626839045461353668428858855970553206263211173639627164750976215566131820250240332194094550700780623630829362786435889921826513482435341740738204917236987800201121991438875938568694654730310453461173441730305789720821555036077257661801660258673969618980363771680944221444594813143583136092039889743740234333720697019901534045990514328967333139680377432942350453865426044171590152707690672819694686150967192029343069736924616776571062618901940625230782967394971072838760452214281224729490583538891658507626214821844404057882046402827012889631463709980097140147353006662014715248868801703473501898944315324738021986097492181085012776265543974511950245580768992094882674019687278967413547097518865580305390261419410613835592970698900255347306409893017172632000383359895475282772489801088959619062829319543816742385014186930423136498899146899119570875101046816621897964161945812846154546668250736131279128492561373205876075003581185410448930705853171278895226890115676329895405178453840747278173502533357284931086135014735841941175075943318220561309684298804396821800385161373714592129551712010483042590223328316088094416391755069334046027209397977362767480196421553462391352055115757059997248169322818725517032783338127641538338011955687858882363496614949348626068679314816633094012061326086407583576513010623439928444538668873924419492550805426647671813384516007222456549301328909222273963313193581516011945958772324951199727168968473282451685458414582527896890876865715042754783982192801126550964103466778144612057550144780853960178113518593983379469095532492317035343278115485889663943339354288001341984155581089837932127974943236067454625753782162260089647766434228692270228304865203642144763872964029460908848355066808656330726505677584779085846486395476808951158123275413618956667006091259235497862412468808937554365867186515096922478258222588377959106403636970639202326741561695535643389393975837881907187788432462353282662021368946273188218061588629776186645798295909459521183098059716638792139970161683647759189292518314073351409276159473163710691301761266221011945509985877267916644779316113043506215467653840088462726830358271537849608765445168253392582582059035870380688594406061540555889654591210856167580856302259198014846182481116325837129132186681902814454329646670151899135238695520814425216417184770230495781057093300775386209441149361431581944457108342001593356168642155202987295161425003320946512527925122876826093349288057042623839213909603544532340916872424219843930842965338699991730639858744247026554492786506513073224132338352928983549048012661591182322121930229935206691080331466016861234720395742038898128389453984697214955505743883172754978097078761771085233346688111352700300427557240883144654779099096301453656829810167270117399767732389034921069269812141480100451381751264965634100656491617715776483435979404372292747405635584044024021650227399761152085592445632925934682856817874020679862053661705111901818997513080449060348779499547049878643709933503393324819114169118640490678026945889800178861142311999284662792140264971350071883516515270818441445279231578522276401429517804041047225645011952549035833402684538914734580259168117186503145358191987644115878006753774491226013668148659988365964986056911249458034352147634102421472527948871712141490691407145286376442454367128961938011419323359907214209395522035458079364386403682815219864917844661820305660461167128372342740232358414130489124409838965691797010798110411792301356111109610360428346780944160565410640461549890204901863125419499088734846197410942921171690837537709939156514168767547038326788318594019003435066895741999030220346757946965088998606008454344846018310773829108464221049653762750347257470017463871757356012864865872684935210746325568251513976690633932900933885019441470875555112104739692198209791514464709077411399152447210298268920714334788015692322766492464556955291506556093586602203458181897539959703856555256330153062748944794140945901399019738842982295107457738070035594085462516560325893976400943209908231555198991912928909157342498019571547694727358741897514197874994921946671454640746444108351512010331884578405438477295859988194445090101648907746665467656817203706663928637917940182744882584781533062227498408953448546268983601216591293326284235200793874589386722459166280610723861337944503882621482034523227496747745243497220868468249603681334966736466806536705687568654732076768530346760559332535716490411641185739594862919979786858131227151340191876365135082236827409454542672108051598770904561695192214314217811663356397219235041698167985841820126426257558838399230437350521547690479106247048560288967331965338387443359908783314720614116649689836646063211108231133742764822844366811562325118273312143454967646711122779182727010853032146073573220267834592447160425201381334780257450933986398139338784476910589902311537415459540121799796359736265760540518763870093297585032462327189627997436232286793499189314212869753245881731336629135192767786385703743155654721569540399295842885088198910687587723472093480028027672299985821122424976477784587512948138216470527318472508389195425803885604695930773937063103122736927499338795363022965795816566012551752551607435095038846875751713715874948084815496309272726937743790451213856060034123966915747586823065236712374838785111152227710510496258443474779023984635329645944473317721979697654431315775260245504913328307756180263272622542938956807604376558216192362538968000272265942685900051265837860969544869609431711383305757329807630517613949291121466107201677658008857276397922872571714636280229800511459670907740613278420009101375327598103350429649191134127761036434144488766325806591882521908294883040424968052222481882427736640166767705898878818463061500845593151482704472687264382248785347935842848050948981247256599499327863026543663305076471329874253279852484238225167551280431115707139078090108153832663586167916574845085317163574680979077032791540761621218785921998955020840569611396635417057219467001066998371976598148741816233284924012489402226031799160048435579927877590443197654166481651930406393602666901273160910461433465989657370286496721982972518590048026680654485116525730045883533659639538375994886370040337271266110034714632284039806059688901505176287196021844706039491977313728168703707121718297946309377952198827864066958782956695745789867245262351094400263591197265839341141998042253924813893408606825184852081245645210473803116395432592439365861987346075927126735635880539035273477727843495121346982770506455005839007264006349619054800209136264525216676263525403319394043547289572079520553334106531396223128778421778368710591242227290484536973135735677658052624754201277147579742362021721536357086931172773228481722847139302693456022713223242810425408438496082646910925344402727188009357022477036850417589229117258759861988903451382389298368149995868130841177437690930683640440358945302198962993336814001224936401504063835262560963183544308372868655411705072029491513227162095114822876106701865723584115435493922726799138525600766445245166377387784464603287731010783296188486070570086981091141381886317923608999105992130735702507624667041455673920992299115667299132235328380248618666736042309365090926904815101480199939159520913544381169551345502380528434236003938040950233764376715386573059311819417883369407322323703911792960983697531920493754055108930072060663715556008275471643608402480223158681373117314264146104138008480426422531485014255991219738044038864426768010124309026686707587234094832188717537669175001901236173301587623478002569204328936610101364987189685196053289971829708523828892829085524779717815492845462696638655734477196494346987056127605547457643109429700159675806822109362449516813829393894541868268410409597928948977051285966423049825153143682466347684949286717605627589860992779568742208572617221111111001782869025682414921018624299117845690125487651522102654632873300093068176512618513426647732614144036108276074749814304819895114084212953248436481621632594448173811369012620604001530354383614529613416704406954398138294119635906493713297330879871564632542291326886872151333720232832534564611837292884945567093712766167436861841670767980533677855736987479433441759220708769781853690364016654794974378641174735639154167917123746350534931798223539906034706229671375972681538871736322541668041829642567681055054252315488514494467851079737342163737787928340882608732715889909927882570214578520996817722585855353082128378714636027216327454261942637203630492322100286312632367126300475018506410164272588921366947701096036658828951668865117806038047464637680860160487269039440574986283864358790286619443385861392938886914418052616749499696726605537639569028849059384666535834948404920750866416616033141733204980710235914681070698454596461588698318897617932307890160793762525452762080366237211338542976120153526401159239401798384675455772858727757754574597969853233879748463635356991202085959683847410831862466352591242386594008018766167898678481091881585600329748788629464733293036680064099113992623597465720505059161868104441199324872288585747132975388122199692485049950487778014884745520807345778189815866440097323698378081224656295466864189774645790361338417143603520942999335497368138289023988683113047624122387609601787823818404068094723262326183375247564452923198974195869298238222714611804284927392534063717717160484308433237178025641625805879629855768603601282146893389425045882008940527448762036022369192586645656957393446883471677190134367630832293430546592379792126202148234542369933566375615044427759388940859772501238137461522499772874991887575095330132810129368598379714678912482724606060911245950982008834940195502862968110591705891702620534401549028266139495606977163067210332245703994379483271867095270517842570521998654583736019592833145121759840426527236111845499735160668169379450795381163984052985523063415098946273466926891985828688123902130369917646931356372059016540671137122071419968101488478526990621368883215502040622090712448484127356621754795072101088710620892923185932215564090028003384920570255025254115317964643628374710149252434821352828924692383944008775998154404494714465775858998089948888752436571416990414302721999917757346047674710229533536917470440017880063096424459516723158251089295022330671470098316535287983425672128038053561344109451099863081227294271661376987946122927195204676180238254787086003060570349506212383477382521813301901051033412237480533338436219975851180347957078323237776222677116336425193888420574055946060001984890818212679293753387223474416701753058804359087996543643617863890821975403481873824892406031924919844628236709092105574396921566472064813262262097885317684950366718495053907661049024229685188173418037399678687485999332928692416001906868752200957385255759985220804000408296391948799924108075979999918264711968575289050043700363462907293637102680355542549598642657848752727279206926929846955003017315604387165875840349907691094995113011793505489019142795611245231115930028443226257379767409826551272809645339741886743417322819848876301196621401650241153214468761067044531474276906513206438737284593951563024223107308116777658796312388389344062571309282862245955370009245424632983051899803087245304238167279049287168790302888575317157162871751789104695633998960627295513915872298245065408090152022593410808228941399901403507815215751838269709070710969586346294031745130738561697307822693241923161780090008627362512493458503204026584122662592606796558685108932690006789595567546168389875237859671136841487683887235013844697185867923297937247741485433673289931657692273120087153502692959491919294646641793097201848956350795357726542941861509344206666477557954736951329281752663065697954544803990018058752638978237419078697478927975055703224299743881841358488146183001253433260516387549600100059109302729865640531534097483333300197885490999190065574553901029045732557913623301948314412795960589892170510778225899893414777237866899529075955293504112600586691992022753634720897667713423597445006430290241181347020597412939970106716353801251666156318244090515015314546609540827788625979210005816904726399633921316305177660725245734301860022465476307362364295384366036630894469574520035898076798521829941684283287591646311592166579892631098254677523667243446936463212355325663702603052488585407422511748655999437637132247467252132754632076389713089520282667009126058276691145886974627311478226715269435698104090904255147113789868462872274620503736938394302379641434214952318665550852424289258636815319791579779535147982481948161650015339684225511426455618202954247306503594027387425432563930490788819838349246938731660292156482724617878320322784598942249087074251398340839164433496728722247348379875071094575550809404268787573000755360618427302336326760094353143748993045994019203048634211953774747796636002797016188148074678210940790008296472686818679022357288704334467750632686762926122342561027497001424871634677365870892317847411488045208065548502013909077743037334641581214645737700820575445660818383360385770636848632495628479996446669048961830306543745784558836062379506790426491800356050178371390492465091313188251201604629138040308817668302282258226513200425721342017562283387659470090788929837392413686538947857561205206523667851814928854409343015434681703745003107785638598379523464412854892667972090912081023192971716341733769614804471537804501576003949379502201198363684662256405091548165381269476171625772610188664305700294967466278040810963018307793965731119402728054733258196533023755065325868144607605302099962513642909868042395245618436533313953021280862304019269026497464669609600896462204009698506186807306414356106021665023474455455650145203162124155754152100339074761998915726750014766896040954125202384073800824074228360134868753849713779112350527659253432975210475535070864006911947879320743107360485623401154800593538207120836103115509261465948608521127647382482146959350705276815050762850065112739354652261573694779128783147748970941263837038486239236542629962118196443723683224345967069784276757006340032035605850117570109216060672342699494015413488325227306083856681973159137616258023247448819629275576430985800899424508840687744928953391036882989188793608112181828978969446791163606999555052600407328075579582958604998942935483110585669592865298335397038171895503233757937799020828586768529518566677720121595625920143637725737281327032636102191543150018400011442173067804619865378275352143784957800106844667882498856754429129888432199543982790528523023129267881843241361346365190211434543543555795290983243484861673503075138165631338173970738023920844808205629638517463075529205778161586653444083416847082154458015446407040818033426606386787030586475888575464875547221313685767634898772013792945434874370164314709141472502208324940991492940478614658893889901586009067128801511332811165683126048020638144937822308561428720030403803406920120991228868690875200824040531051147367499956342862913899624550306351834186581306105519901118863720873829154997745834983243673038214555223701143247659354484284626360181964264603672997994003437733332277542550340486923536166283180395052469291438773019589764004579674650348926402326722939131929987244885172943322801392949450071840637181063748224827223195894741183596486410195686009526164889454047705308533262903424772777674548883245253024685033700192865962620007669416544005333411966342501825735602535987129369622461023573409136951559492084928166474697649844400316622035500137265834025638205181884795126386493847264572216762423819923188924461301762849720926369868000367164233647447962076242455489022932713718412735173526428482321901506461797160541831762144752796286368098074354992043133656928614124961459337645699414049276133582956808016062123776600676921120098182322646679969274011018516257179791700529112062529032293307372167461703062145110418299964619128551270998723562964549973495780659908797460134829066074090365636174709500497377508892981617637758053603313072114446701768766656812981333673715350967809396978127462250062738957368254982230397550241760813337393327239082318765147805192230303394266949991856832372679594342741612140426513772643915116742680500273128504862560007501542883569256006816460870015575500206430412744383069549016640919265395019501395085508490252781474128404586379725215239945125695988923781961409758434449175076018545783754123502855469714314126332657832934844284379676561019587402247224929062637545669537483128214654999794906503726541910739870504256759912287577222779874666859672914514978441744279021012058530704633291191590245444290833327276674300548969460651775386798634244760058589927845607031347176169534472559098801056242490827824491652539144501446187558041420118774716396157361337141838450273140936190271080766081739564709930500314039577757424775271571075909084104654663300792764357554598456719666329726618608439517858858748231074093145512663792611663681355939549728479063496175667141067489221086812736685766395451748499165205804982922123175755988003989127711516124992477747010320115099285205719723764563408563439334508486667011064001718819215605739882158758377321815598862938238050611950048347494301567952505521299608902537244550245300406772458770002642603401223656466599932994161402878813408197233210911000079503002602154153258860781244741406605188963405210924937105273628238123792357798959461237506054617722378805210142230663948860437834117319258419384002147202361794990924938489123517085845969597741921992211652367098662920275978469654099460397348742218221785625623163318373895854232974311925805479989379904174017363612010819130927419695649960946417763198646198624366693324829283772786825374390893688536219400575260457478802943303623362200926534037984392547581446468870672418255666983258245716369734895470859032553237539005024256069519204374462724398174560782973697957152658791401638261622264698834663557504791475768968226132861175589668691053166197509697253831084548135844345016579986100995510264064675585271426739905766681635989747180405784245182898473987392627047230659696733701695788727921226540808744292136967175872165818248244763121765214628026195194400011899521154441079734612581225332090841985160697403960161504068826962593192744138621825259492249259541143929681322181700190549799409440614060892963018646067777259077189256443053172907034296111851479655945219763408348542168530218680561910601142059074585832521567973143834974505214601884561748989585829208263712762148862497885196625202796631989057345987267679152515683077245480351259920884001157988552477847612519008379225912389456664412294609917127324706047139593531708965834167398554959817344334967273304584292993773371830063576236348280408503858282638636424086149297486102806909071125971216476692550395596839235920245387545556230356821881451905887753219388537510392892635413155458855052409839115350498364253780907913574610097040018065180830006893579146005959954508743471874404710912615963967880205024270037804350373957959100613819540450846879218837659139489297420891273390202134200063518448747176035724543816296028704545967471271338929181614216689004388236932039627259803177191307257952176137559031408171610021828563557693713811410589101186792152068282904931374812734361112206248644977046691034763575567187355702696604228812018644610987251867417411769571825488997805414438673496212882723771403801322419077922771437158340056175391210473390447472993596149030694138040486566017835500210134649250148256527648589234368416814399534847391888724614291519441405784425704129539624068452030617994578226808666598537412062451411509702482499007207739989260038786865943296740029817346975355729295049349828856087440420181096173176633852600905773901332463772607842491672905374356742079954018876382722232747112161747764994673549913736586935476841818743791394534978395741324209452025251491032197548926790606956522087547151679146272826469139847774477188868921572567462857697886593083993761472422332476449839119877769787906612602203025958372952232952366164527665311354339149773542606685943288457147465233817964433450356028736664423026424788353928282004210495819714559140208246015089026849468883892480528489446262198241063687577349146444181868460842999195619781348138748679123716248415105303329875585697459377750457698025620686911766362670376366132672994099053401472618138598929882314721964793305966080080433164361957930827164137859381902634858281191466893397737151003626232215942808183819306905853283919048881494256744277935421241686638363489719274929079938246631219963437012666563803377847725502230721326576981189825345888557121570810440519506445901059819001383477890036485376073477990095229330337293500200682697096725185718485669796422271701800336394951085039023851894397182957921867489997166420574620327354927146606208503290686859281736046533758416540515559811927924579388929166495863865110683455454556101208598848086749460428425438631579105952084611424230795562497914508933433695074437385903367646240698128498712484378292651401000842261806573652773233613476975920247759377197532119106467417178606235884012574955940004938379483251435434207269738281673136736549099727362673026334546041162840609284277182285430429968799430169450862264824942212328022001646796662241264738683615780935879138364076584331120729312015848223066997144983463219425082446325400782533682615608136640253407584464397415181121817857592497064284556905021276096038015034228646951287997299244812810234765585380622866322567220198079905031802582450513245286361709401293640075348232175246419186805066411534432556174729237502243429533358087883968592715409758566459686622802956171679086572964703524526964879952095203300311470218570594995431956762817257891111248762872864240922812013582089174198948653089925375519374404205282923042289271938169769047192367951722904400950191430151764747356322040290337102906688827579451010129434118101206982126832205397728284161342944297292443890312713170105990577436998033764868393701804553503960270352776446560391716615648518435336684021958329527805859194085711696962670249479692506752528330108422195718876035067815299526002324621052968028030467680192199027124948673615023531352967259725459309760281218675515518591766123458673753295686403979938275268879498072001040296301754784217898868334908651912168181620974817914538607538673871249307711448237760194621638182564995661912628272436219305995632364649603015365872645597337218484900524626712471754713986715310228893026231845030990875204861573924580419128044090139335360280067201518543407676279940725672412235203846323730056882100380540423461655417498745104313360985796005430576369877304255274305498745695839315667153965244104801161669995546834784895204662213032404571657418437482726784860564016414839233293599934677961506904616140371483395449470883039683695691226870453398770045973956522756659019333362373918562402145262967789297887955173901460100515614275317290694860768384170451458802932957210987720772560625043021604037626197770102606327108280425082262426269655972632247573895366980990076824093979657872319157905420603634138371368969611631672299091505257077716035446181635914062277443062494697586356936956313851639823894913403056842653661585393307836117149922717470162282867975168290843096314569573454261499263243404864907210910782369908732963944385937027425549011323088672094482990167110469871435592750820802670071559660012773802955866401655594315675201637260083317040529986243878638742841710998193605762694964707711265491044981872163226883839058629626117172974487429817018117735527895942774500752484429015156031452167040241079308850088189253578382466863006506084574289418099488880058335425676032227891126120283798833667201050764488665502135597352325545265920010666278569373024263030711837191946268622509657698232191097768953141830079688527904872508719924119093528200124278296633819308029138277939863990877033131059030441212087331128405970280246601949257277790351173714094557077242998724264354607882435180940012430969027926302380918689910173070196740200932691070311521071726024314464918557370626070735238701505365183294919381426920332867226505389880818170397147472187408913137817873826595677289099124512186002443688121397069769865014165371957320467257524084853107359456766165444306327054187694446680807147081835166622936961820197106187615390802318763628553406943812083958112292664350938382546595371704183653310386925129863869810418692213131827624592128622860960330479117522883124948247577459334181233480220251667214434897443222211245975359658487935852201952794635586796729071428698742950538585873466313433390167867377737961876857229440681305952789724494281405355319152726624791447109016585500101300977023959787239959399943810840397103339790317328853876458109780363961102872719719110871574708907838185669584184063149183602740956171096520679072332769728659105302091483742175007095857103504964903831725681876204134230921414592664838411317544668142227332109325915315546398111813112801100414015774722577666360206625497443385230637150372102738438047708136836521524879433066860809135239838455659087358520798133259574826802818977961924884901082659629137790413153030720305378479253178109320435749785939477947713808413022012632641906571111590290214051515905000716416418445959556659715924194744038577908586626449068354889709599754596543088706679186817393848042188020492851109911222302100519180002641955606218086558315527740443671154720057167329446891465206960718512073398296168283399372729689452559928647131050673878283971630488565008681724244946658080186852000918721345262814287973742100121601081322648982989880863739992371105228264304140644890282848059209468861875175168940624309626793525125970670757389333979046291548867503392099772576074716189942213735976850093836952860241615965028403962646266702276516714915335198369506047634148148675432129076312700303972736359922068486023910074892304095771048504553688004358409018714511978443485876693973800127775538883807577486193125636655571091001409913078306703243460247145815806550870981156103558535313989034032360625255274753939125478847399773068623713513687246774696913487326217769829249631876883939092010592487699661848918453156159771340410019463625387764972807259153619544418156159310044097469166099692341645728215991393099468669383550417519113533445265963670376147567324061019237304569516604218751160342968824860547190729479516790724201549258225572413548824308667657297372883819785338657982579944018333610024725601254761431925624336484312678609846645993322604512262135395726605266585470260063962732032575652838056947700817222688695057022847728381252465119003865091602712422687960351094426068975986625931430118810659558301395852842722116345998143806522720596577905620824371959130614690470296652098862421555825481625244373578955677138814871012844041390312407985674927660901213620742925640550549494313706711936791069893629449940963581930603353107175088824443245139701232601778666919007789336895603315380577827403338570667471270966499112440119973406600902164915861671136144808821287423108093729412795773059475610090990679635614468005594708553112528657136733463177712792843331474478786689206904467994227724878062596790906028829529835141511580994801075251666032103712122762657163717924867037549931996671795808522544091280824968991319095161156119483779107821153152475267301818387150099283089034192702540690083817754470830241909154745220047855207316081725277231648609214672884597494644531607529931896926944910970131328848898888696660849712756442447237247302489522086674302982878163643218382887848803340431054468606221717580162093909011411882157289301401906688772804914471070266229309429361609301263919903928220490870757877195286086512430173489685076848151849488447341156871764674515297881892303492277798987428898057618953292671839813993948194345521835390225020549001610044605646236908055783346624083502091498463867423280854972295369563717010423594138521032507507637570551363772794632171190689129907124912494980656108744369409145281998249514559439662739441390145064108579190264936872626858738921990255346936670996171480607193033957252870456610179615007277827081388896154000692601645166470313471466004931568228389298455179804501895257300524752621283683580923878098133091112071702311417583323517850232988947113739807382213562042056022891154532304863624107883962353480815665663790137455604112704963851880314766460683358602864850738217478067382582869169634873271429973863133732670066034237272982928451657292056546083814080416213418757499399822956829263845305387238236187266331510250059131730362632001565760433370572467786634801680242263382305523024708674074924145540426505032882305374824805818177478987053206232982185857901301694298905511748471692607899930713606135170785968120494361478145704285051634707617892996028102193516570612374093343953941079448722544716574552286771199005482537891684712169243081193462864606365670663303932653503476820291446965310253575043851616561018298388322170094635952598765813802904976624175801153008967483370936908829456392556054004640080665057080581340627366968174451247720050932928732430011481592850839794841863417933913193181005882139051853434070613324155877748003498354191421628549873866830010095646951388262453106363782112328168590678485075608368336000529355386181820232468494555507682232182016513472981138153747648938247965970163672380500880696425981470691553668660962536613468782289674366792348886601848836922852668895103084160503123647821659696080947671541229416932127457463399986751212848317694878114298225838122824784527307123513229745588666211258145133054169069920056911668160743898072057638915240570037058381393556582860500173794302085589838567626453992104605676916989945239340267747894180101103481019818837164212215782234950316711455196167707082409397043008228680765873348281006649646760210814408274060328166434317787411409729504911997102904240895986737650461083783225700137686126220094188594679777035183837374241866599423239333980929278334495964963204630038068153377104765565652410408352360675406930613619589367602812352621795871214812918982870893193335075994112061089424793487877238813826668964080947491137233552095929774465054697073114587346083599770937978941124398212900746235997383236963047495998939937274681961867261447924902653147074852538215526645307214273468715787600598349414543598927329070265299165486865847733088093029852400830199598575372301550173607072970376418492473200273723978818452708679552482939934876725027269928698297500342429978892686116720898669162981626625454810370408432024930370396971483812717571396594011087040632575154930430862949530450575629844292656653297277657557382566211472157063856291435647324000774385585077857905787612382442705999429843704236822557423078509881491686990780629322924280237202898634939255529625751250246429082344073133199404762946998960374935741914608645540241778409083754752104321214166139951553775285878620415674303960437141712270849803427041757775791876263697132901995416630467312330020110222027276037652784218131766162435201307898525540028498198310242405145955803966782840143577422845190961177995741851727158558752473075064728987921522123355872462537079994975588421043612254088772055446414172025261332324356721423835653440244473845267264691532559850633821459531581855512555422588155782953448266425415438003233335742513834182027313552577863242353653162376729755022262632932701867884064060336636547488324684917408310450539073176520695935500839004851470995810892760932149861684813586644657135910064987212158203598874416073315259517879509970741098270922445685315213330727157427099562430509686958603276581154756220348006842993019885982052075117899321542186542646107134641228199991813517756975930970673419301661100642504697987745680399089439343781379728565133742031556217516956318708727315588164473517893649978707016821588759348552497829494028779511194438404833131062333478340322859377921918250266745907302795599315597949526123428035303908208099078993203597856081245469789696106497348809546293987264236925199801878011528625000363006649366653424492105062136298055707889811489531966236784434568020070489929746047125844272428765585132127239239641206404155226413254369232096714291354017429449028956244542091428639070365100389591015089323573973491736240845623766685420730695720176647244174364658940314041964511021869470168802222113050087869377949241583794350047970433627979706026111556647703240574387212122132723798531725125353761711637400591844217326340798445653957127525474481225397017053826431766603106298716799974797167129947075335414437682600493698116019133394025391271693075405938887060510233842784226708828473337352077959391381543657676904573941896870502569127808946851670471652410548963449890350935788645738104764802230694523970687935697884085164942065367582249870190976335177194259934571090047763032038431721686127820630889638806602769324288870925594271711579915499826214632648006911161679855341267692512588405237859775018721950238455697849917926762157886385034503473118507055961470797480475230722127991543416439339342654332981928049797981649846631169623154686140411328375234429363435044229565321853586106802894235723174298724266061775531488550221887900686656030870286798776288768675597837598147109958166888756095114346032969130315069882943787684700135179657194293018570861550217167609838360879879947840338477932726679494716939387123272804988616948713833348822012606922122203390512356606486920880456249942400587257881901124590495844889390549779980511844349415960552782203803223616183454703773553105565537615107526810490603685276080979010965457719106718874535216601365703633725371559561656466843003841172603764321228455191417072952445288916305823400087511650202225230896114264052638683767302937052873283850958838952726074046449429347225488791255232699211906945918519158357638903051241025075582899792778586084905197090177742791779902956823183508068665747605187002850966627414222773006314639474253094478105982928197638292336128922827816442849906123278234718082434213355648848681991827778712184095623161360913132217576792772293608273746826999009246734849468788650000835612708882958553196921778677758049822379467715134709849220651976792547382793438410687431493535624864764708385385584837624173722832619629117730984162866608077117584593214359109303502364627975672417443328347589313999050959823016978792485397787288011552153290977824744567881426525639852590689422416528559815570853704863853072019563736854750500983326404176864122776493311236544139404432916345134222882504281865316664577636364348933550153590237117774896060559460699297703940450854198219730824701492358202197311639524771857202935115542609885793641088109611082886380046255310380514126729365635933070415818055548934703277587975672784845211281582636590112977155642462579614559564626308460806102838626422687634173311593704482045299896649234621038482959336450874892260029558917743846980610210160325251880587110555507086569760959831733770197117866484594712132328361355109992598812583111902891379150308910842958061557178764091760647457446997353268454032882676275924674099161432188030114851281921216568534153118266771820041739350869409412218158137674491439588583451861008694291980147794399282630664829013981560281021712536483755238267538512022011414467337616651295548594130729096535392410618696807949832813964477918485907130563121844235987232245228481405548833818840859393502404497995035670864950528687653448625388692313423272152099584357655298473740553840401728846725656007889945280376021117781288879922875083824249600566336557935265059110576652763140491939643071589607349367789546203191249656087008716396310270034425567928543714706434080899926850674489346640646666268257414743167342812136730147887173456845564446897106981315359945901899609612136662492837085288857941463084878040982157628386565887554955703996851749782076540091688098193771845513109720156757293612483823572177003676309215940675850897074900046760680917443537756693504517713811856022076973633963755035859791927264253313591874145255919435303244414465596355282679179647660199115024045021940072456933731723637777357978129251740720377257716370281090884224969719461041969412771675428829406788146073460682931218700570322348895366268122706967122091119389145143078652059190858641657377499029951046208942004961150093317535861029758110541747883534754436450461282850736540862888285888215375164397724566184106591060075608194666866387542435853904241346704179834817804821478388740269640964204384282544487204307421640388711277462500519475947469877624494575973984836140743001083904304226547994746434025807621119266238817722795713175745323244882954805738963518658834574172165343913903427325837619229820753550313101884377051169146197697633188540438695820490624826672252050307359147386198875423580755270731571273410468260811121341540253452092030449153013295499600762960735379790083589413041333924932844464568697354999390975853592636328443081482436455554613201301036592656295547487172503583488180250713318496799717817651993942406979094695643088550577464433527066161026085371334761479018703171579948371631195692475419474024918091147259612090436666664628763680311133162093500200125268098917685372422778966394555151519261308738706512432418094942704977610465457621684095478026724128640688664756938355492626266210333111586594059001467188615885773520471475012458325898744013265640419822819679273770945235518796725484160105127448637065944397227599685246322264100214829958228238014705651508856522275593353724116467967916125077563258985224277819998317240913301798510017014918661444689928076613921909646561471094535067961383313390521206581347395478101389296545778443676479525384494535147223103178175803020770262405803306393137763635897934900709541174325643265998565245257356075518578275395654103441460134878038351415405028315761381388371023853209542738325674890486438624033843609593335120595355300207366675129292716291392680276135822749654321540763955457751923822075425783372604829466244481318632816000319277752663508822221287425047427582831687149594173479417384734354561309341621090384321848726227010832520746525030722298116856071129934823462982854293194024098495233902830766649754927406097948574343641928438425152174513992760845525481878463344306016267169041542244106524439315216033029899363284221682344128536087684623162549243903306426631733022255382401000922282010900626654506212638860928885149969488404088791315252547412878755864746642074329346123520726893681514034009836609765731082638451204071168084352971163025411134164783955734109079837776327166988515012856797000056725639076461390119575151778278624956386826090328804201957350625637424153161828748848734349221624636292282963302266482296228610771540127395090551707800624539183115214268558859526245619823392368817888797334508955899817656133482696196062369388504246768291210792234669512674246392199991287294757797901117020567732026125492630117139125731474239791881245303484668844458905375927344716491568008375489097516572163226616738665382619516748606292799269284608044044735028648638949908749909364122760857235776417721245986405178781337638577064165949642139763201010959798003744953666798636474035347499305727083394835018805326419268588119664468944454952154567593668761342410313107164914765323038057741217037440296400366935379417134627269210637658355885592577365712222643297286224907536804366364896362376956438757529662489896187576465600916886057968337927218847099157497124900855933869654640820762487563540718935919646124816691725192742078608069886482464626189394937966487712996570990254560242852761039556998736381346324174382639010521361644954937151850623413825607072308125995699765874853944386762483222030825886298405675916707187321993966487864731829635581599212343099558424861470962820505733858238122442853224761661264061162328809126255418536459667777877019247986724853391166105864493306484412259147049124098464409704337899121594779920062254211064039608014016915605301533137918165600002132071173340314387200701481897541460221751242556670981266131943933184604652440857553222346271654789971061527966660205229003478750247765740226639990086331646984911933184825694151170627672661426647045354948558422500988533277011674821923558294198277123052133572584619665650963032854251889215019737757722962296930644848624938019427889264890462452703628188374792393212717917420075173928156659366147673262106070675835810130961881437226404430781905850605368015538633093424708175470534338077693910068826159576471661159334497073832360455360119852654244962128836010256837900651037092216266875168551437544887836199878156914913337506808628089672383905896123074726565083443617260500325948444940723185310227947403581328406426809720335414717441609585560464843944570466043945000018895561706818944608140230354333029550043214358207449684789791852741202649733292653716120182721354556377277087027775371753490460446367541161083145775530049491390833475656493140995201363504688193355901488959213086666334850227674216589465178470202034874762215628503062909314713021443643634784999313527262281558892382601035883980227120767275938984283079781067786588145704316939441027915689078019551493362001831338289821560307408773745452731567966297289779638808303940209781430782249151399733422999485554168063421008306287293790017686508615599445725626736327494414706785425987007602582298355618792266566460697821131473750287839500916242095196669593350310525406842816301081956745227611845539796073147014625944520720202370653316848956121322270982289329554294196494950257855317709196331587178982039922364594254347444558048119575845276704468903522666857353608477226997823579024885170196440385132213547131521122691669139522240527156994709125704015710440790867044165320363129950248599220844554821941379748481762894593319313914816558711175779469444732782331497007151398589574142794269689275837117806937174446888635661519304454501843761340629183140942083027113667650730535787273853915461520777736577809299258801369832850435986107833676166352584542467092142801062408208390068281004400293143880712045727769226701866940081032297881801578568825199961568967631659226597618679892730197941058033706124501407096604378174528951831046599475095856865680222924812567985162581133664852269475952131717009549547471137306830404858199245681364076775871891520269011967319972329538174840973699761615624321844284088226438904378306587315567092538917537063855282542712791116868484956919254239471376039614780246552326900882101340334314114469760205671982300433072388037560177220711630928038602086114445111560049471729893377325347280592202293616175216447379577784930642547519565320513425820215120168300454399405980237367767153460556299943470381628511998528776877431278323670197273823689663927305415666389761068225813078206818316571119706408300216028047087204264333122996586900281175821413880310103187576224168771481904437181490689550142163942408569921823433062144568132850602418406261079290922858666940826637836863453320369534159172828927922676973200229586579351745353068365113898733628718877310292145342695232977599333345699601433742220797527909774448711589399360076607453581527976743750578231100026670828895974008477133081821372081100136095077834220892146821106059086468337811841447006615490804037982241336438830187505970653593932939865047873127788033998930631693593799621465555796839810233892069225000292474632391463239054601292355948634415809635818559340453783547741373033286005779094247523754893908016775403395040353631361419319067605469791396835852962051635432031156354313175504238495720048424566825717487556565034131416479311081535577903687000261865541414373006687855847306354141621139855310371133598015785615413464638510031938448520510035540449158328443493720023869320103753557160262203818120109249213916741293802974708228440533279898871853862572701667558559550569101239374342829154230784779054764343185290459130072581730225627807117312931067318851486815817743096857414025445758359758186436514391896084746729355694329708859907793008031742602745322184358696261746452095674435588086439513216059571456464485508648484467036161251380587163977047777761510845211559813923454737982829534049593231818985871893764962159945389195458242673211539359106429498329288467808315517465108588255922656445302542162070057162198904052845997639581103761037694475365512248864728546637908534895748001354213089386425032196303685388164604461228220162403473607230524895143521333101996125091778225052056123087117178789527014100851143123120632518275968348999981283690968651419419440501714793627310227254869200196760302521032486692151299686609719848285761577728793333349662536713463659928680372365252677912458308578590457638467996593292253145472252176344043034786775962207228452142688200968541096574323744667883435576493748494859220347395908847097759322924618058543170566917693963990924307088004230674425048965624818923697466563393056906713949130472198985590409406535960404647878679501154613101965458130436179231413371889723944738717384549362582166732831620402963191345427956037327237979606021142235994073236133918769260949417053629812893822387533917834363687268870791526994183553831566286808827416204904405959371578994892386553737213175796034957376273305963929773448365147617628727581638232969086012290891933273934365813164547439025996325676744368862782140430151682220448889612287587408864891303313018005885302868071856572674127375088504584527381918605880088089513866350695526309635253221599906682697739017905001424650753293579815546404181178478290630819588906011842076736253777050405049573665994149841124163691029456024275984548942688475779235027874048461386405845163302623327056573402453573493113705958534021995445878478439026020427956857488217596820506124259062516843818260074532234440508094927570071427792445547793634223816936833668436690024825245739002423938050899189322029825090701953057296735272410368107788658496016520008147760016616171146479181290234344487996990124063325501872287277412030438519223219633912070073944593615190207878929313519235225969289047294996975466503118833662827257200455580008238856560176832793210178946690945390373002074993253220998742792930444071826825742294170305921995026725817422051441157823888916692932600467353937537567074922758573050543721140608330465922999981270746761060665460103371823624016546742169717735561372680161354788217241386650466225410841924600396842579807141889466081251503737193793946043925075338743114095683515263116342617896047262509783011057144122952653045795378773837469938003116167160973735334352380894613157208069151198636889796462167204718252760928151758650352436769977668321231546650950883351734259324096345065343561367259956542329370564473179602339095453565713799362073032088199712796610274223819291608212342460679909434384929661805811533912825623989509105039571905204249607386551279970251329026520675446377489699385287151324376331164072053026235730915636592561075051066279814953043025723309969914570361114177528660813974517709079477714407299503627448947878392519160027202999826664703320433517977157744493813483181594489554715221974773506734098972592254617194238181873171717318196832773782271696335892212479220049029906303295118972990482049241833596024768030981187935439433540240705357866964612085512070555176622386295742839939568505054579680913213531325410556206348659522038952151312445967660934846714211782061368450594318686418968387941943315142177099863804373818748336229668603284136241097998243239621803899797186188195816676823724763400949181503347596945317807591605759623557401575083541382271393965702711703620653650467195151867982016518182997684663561969877235463270269697911040202624603809299930922082535101317854933487362229103328587750466793059211601817489589894996025229004729161620833048387682946116324968006575921125247163158760229565295456062646742322663594906496274591815324727919901076544760293186607317491583666648679970581896793138384789041628503722850983237740724013400909617745633434486163246697847491645791955775777784186868118138850268892319953556454037847035675153715192406307856800256102018069641944225228777134190953035066215272653259937447284996325221266127790736628109679772837656383521469220736562529385617255020509563717333720090333123246757551119162836480383289761723080578543725145239234434043941702523634063976091425821689785489105947896689341592663621395097353209675948816490197225442558491499737513236854608012361412988314113740625733829212541752186031691054429759912008247906741952166879559096750645124282774145249083217854969063087941858899404893535284775483217275652025220461487735091791258055942903776154784740519374462251483649180823014695110245500964957578491131243043927176942049152926135244671813601913643728141424884857322962866536776282175766117340720672445303929588973598132665481247580439416379781078832490423148729328486105844844359976435480015855639345879377028040171305710853332122854996354257087050467433817797140388344979770798916891042267946868537923988462814621309166497000793073542246966263884877612774960141273828652471457417719163187425705299420875966979398519559164356653637715368979971885211720602688151945801079682314880771356342465234907212137428772375222627546474109112433633307491979832510202890827808325890631499828284156439920878038957684181630750993226386561816214239254267927938903356472682012433842728445468031986253212368668914852050965895552970132922573132206405174469258966071223948777558994541366396062450830557611745571672054641785686303860982552988889921464550665700367605867883932953463506077603062930457447919239268557000160896134624207377041036169979543680772360022018347318180761255359787902790027490295988614953871261500582219136524921112395920051843575252947135217547880686435984014108748276966623540153006961294712753389115117040940650563282572099259673455363534524261286519788378796909071692822984865295481352275014963226596263088068637548724860371386824867921909215818024653961982500601449343095028807716518610332020271606406750450274111615483106065862037635167083227503673604947900680571407891900230093674468121359637408447560779669123290209590791181435696196738441847632809902905078258869882089352730014516487924707860472742536873231754304255848409147154168815838369825000902797339004655520024895369190023658365166401431802964414214652734163136441989934495086513833543926721123435051500734849219102482798311580929859967087343917459956576299622572903465898289981189729363200152374902651162302681539678724463321515790067951115592226645184367921882917552276340475522211329630613774211279617347088291613020378150534669428389969083176616697377378209054417263896494248941630584843867699308880095204422067664413504630253957787818336800105953355154650387566282765867510516896303626989970776558680339353228293731466596619158890759569485261779925058087397748393946866586708923302717358439370705188552792857802326613991109718661358515622643073970006893107464294769376412619517860938021904394133237059997918443789326763242486628628159223998594626892641725449673254884204791523002302621820378877786462696204186728426566999692301746999955243772087518213298516797790877639220446526585255100793857563522471854120285687977143624153878623291640355269925616345544032518904983312273474146596387942203235162302000842763589297602373551320785499868053748580764595005127327651969659397757357486417469581152698260273409713436532993750359863167374729486616491521699012388926499378618308873301579050201570841304117048788030532455592921005859114879757350313846311887912280855113706034901028207503666786772620597649706188359928767028993247280933062231079639511132342014282873321924306140660148120431423243074732755677672499153683245133146477886878899543642755127197127763488675803407630569097574896916688195536236499075626872275010607097421733879233425592063019482424172149177101698592884017120733612412875857559776834190950367483549266006761190739837133816182528119331666562073927823379924082840751938242921674568363911788631147436590852713882645424959738046221177015663592550827884935044907674515664623178413294273089085578856641541647958207534152414815081066509675177104166766222416521727574361103615703652585265619122393685102317069517270018920556456898495593798494638014917196316186581387273128487983551008469017435509496326266717618055230238751285099366476251944998385205444904039707798182241461842193495763437540910519956900863688932454082072654961284979794298135135382995365230537337633406953270670686974533972049008319563415036490461429699981700606677701436122758167936031324051354657815845671763874380445971560246815811762659587844328044732204447958986045354076021764765820351905118163375369729125983167243640672835987460636044901482862538251380728506126992699296298424135879179030802658614313403104768475678317269617434029881529332037680541556441675847670898667663757604043575706354070003317427323792777919155861457378353310514836739812512318097344910431150989186465140511498789347421319856427258976539516265502355227419871643151879903633138711855710025314932622310595904735333572806307849512258282509597160930508178401816972774469107259956546326629240933534897419249230175458195613076802790400950222020536084227103416403970909094657603729558307792699465438880225189784366930998997098151535402479774043476520747610593709198741276755816533724417251477832563885227392519058716620382157322228953155429635808057272597835186396174153647174889549655468359343826678379948040031574411740025688066992756237651748603038655287700971546821041774945576299026373313187635505064352217083456069862298850108292071686666695959818489671077494914047733746847444460960320197550032271158572649946874966780950865342047723368052153422182725118610078948174167552395545275452356755689563521171889403942812003452203053213074489023703472101936506271173952953034764436350378296201494607638911566774934625093562902385453469320565345113985975114618362981858556929166227988406808299722568318802561131831402468775695392155314784392785138301131411994621878081185540753109224467203087145338675708216803607347372011045880418080163726800480436221431762922984154636564754492037618676669722759858342022410737147092131841593605424751793988259623528076367470897862423469144614645539680713407120716301112163947571555677530202209800021160203035637929250727147146984243105607141561093689447464621980858570997929198274690933922815486527104285017306980676787163516755046468247004047486807076024491836831115924227640461111273922376569535872473360278544056765773436395559971828812266261288959234921204329559451198597193142381538033232024624309045395509503440930246668496260317939900734727304139162597463867668384460577612931155070051810785531266000841985131876615971979481155727479381316199491981489278377627223039966650699712443251369417374795788125638548316168830056016232223249590730010919423197021714514752227070597194331666069959314240256499406737100283766608795826982724493162460532683523817894964094633763265975862208464728277644448632057214854030962354020097813043385864894017287083997188184844743898846430436206832149591795165068349609634394728905498560932202701127620887532713983275179676025299074870303584146742639746823721974284275312419599047545022461568782214212477871344675713432971044751998353079970201285940220156890804605450130416423550696984482536768680374728886523254419400088002766004905368750754671580517002091000904153292691069359416139915001671195792889693201374320406978046819513149343101255157984095432910495167040519670457888735021432885511408228496595955195645119898464768553211746146926677021691306281471293636657612572738415097349194979994360558128843163857931550093127301018213494508789176114947806758666201301862131612054140498781762106678827335484849764934911977192134497998357511096841565682433392749450232109966541794171417190331988802225648641524580801925078922926755126975324827657137348366442412758786838862112363962390606820450368706428139309865348924881043791133323669967522741503748711177108093920462133919989732110076761011163825346865927348100782439087604445308411244322821047353450823207425037968072347558881680595718565071145425990554706233565347021718133040009665977946263509699193941136306218163154912772441799285718583785962220237878027768318522750367576187840875956649260468031745698612140279541223343545451193247099794778771579568227125159911989991707151890803203094628438574253069938752147778467420920303586616577704522897176518910237928931388208177452918205274200909605234721726214927624676603524763407164914987577337592281827862147577411584503525243336485950345162258436112087897115845615876122463504662777109818241583120178554148216934243217478026524715610766771831354988101375028944440717500629237946496695317294577236006169964270593270231811973043052919274915089810079823630086750401888404974461671188696285531191784196733751523031673734189666664644255515819223270506537368403137567520474619405646277269874968991768138909884216734281565407561208444625018479273178540043909453320163211205289533042152572211739573085924559319773602368474362314756815788436356208016445869174433920284011505702230963035464647966671794952385610227242556625090535733706234485597154640351810054783288909018263376040763343888335594090929482546548395421359432825980650793709865956052307805889446116337481777967275878183219294758972494279114118353757248140604421898603717115120634631859093228692570908574791294031648918862753262226539396495759046843098732531978508283568928402592142956384274265606428198690775711622584350544601584730252628283336640742676008353889718289202975904221335946740043132156583032027958911972226107424488083370041505994385522880790494580910213524746714869039870851800662847766699604342698731553184989714080287011232232925509368429584611281641650657140859833017457617014610118265674821301121755577225540284439051738334369608701938121097353133559503596131870425098893148457149979575832614250818490392481826475633178119086451313910211394676348542825746643779287116348324683471219486395607695874481875043794520325886637500504976521951899521312910470141996131761277748322014054626155614930815904350004512715418453178528780262921989897746142969418463348820494602735733117270865920796047687142777657898855306504060961362453700083969156798146622850713087432311955906883734638153018039327542274348113883635077204316609072832423765449449295587833279377604883243702164408525922369273491496765611231717369651166026787055417283870545726536958196857241980015849249177465343656306407791015152445888860341167155398717749399504291928235106904360049117329488063599487126706160435689375474268656679171748208158220556339002332574559408340486520938161257017604614603003626300694371293800783467901955583812109450049001395356084264166269370078490461083129345130534874434604298261865646976740996981015138283187203270106631676217311825011309243348949598305141197268650415867059541359702812945143234744955314520177087366456280280096775821969256276972656862184687968651540401386500720133760622514880800728534770611369771812860331900794298193473679047417829513482580644412764180979818444190143677753180435877130089053216617520508247551926120873398307431870993432981019068207726705449360140214096775262788362239843732181519726901946210722422007354414073527877839311596405513537229184840323423665850820070961800200389808547797139394706500744891445570280770679683670151908664065113896591551574151373476737339119323902528352559643405337691400824521199274641899719064575530148390022709012146108184135640392932776502712846797906367916952528611452100924086653646979344347579779047732315538792684797018970931636846772321946475778856793934436446855458240253913127008353244771652286869923493097531176157289966425867016615946114877078244107716898780836568006710807451053189121049041659909208999060346466763952501609608183033860314025035477923512120198123096726237232489305463288782376570494725218637995796225144899627237787371656558128273851077348338204925683140533537053133544029829335308290659274198894618872375862300920289176235260559873719955038349614585176642055722461637840051468862062011876409861556054691730271710472635406369924165381048296057527319686606652156560726662836680601498907983305308480885901414422114706520368061955648118596025772796163794081488900910588475235032082231031554914593802414250906727174971165043994298241632361556837214579055116349246171265311633810727313930026654915732872092785988888427867173704002574378275563742437706976765814105948398473001636560863687755369140073822008172625144351109611253759204186581067599916223622774700144968246507742206501837076720284858742364058499511995971813644883047535943592198302515435035450790059572831491303767683799478070392243905833592184208507617481741504192600687455314960521670677196455498450599740759248051228681209703418127585689231636458479813458969498586940107086318980729569513731675637271191098615043836805280363289506162725296607626649886455547095275044767664479878614944149740913613809145348757011807933988333187961641297130463679338339196408988911617905976940536911540870205778097713983199019060293913841498935639572550948514665562954136534712986930646665410533523409075031883549543461130248485669374745354496669374973608079406859381112226661668284254098102146077563264032663587001281529734705238643950222835650649937101467575417827711371282540864366327753209736943200492940499747347932432630693974861964559990204919280030959836736972615010962775321407299236168953007243266632624877151499519166010717611354542355855261105576778640125083908689831852220545429141712111675894442993970372035190023345625792425400636168891321775841095141273150473981754857846362701216010482134043378256436739063745985707939502958128886775770399127729770048674744877223207351990303908618783342141185682128919455225559940896880498221075754018015718051828320665961143708307376461592883898491453408281878012484178633611259156924395503286293454270318714858043387763605701158845861268214229352207596958311595516475752141210125966503133818095068763025184619277670177477208518540814952681693766786090157360558733539987933698314723083078986096831498598619260437779774296561188429272833573167141943576529085408690548504313317483432376390207096991768452668518274927523605208102466192570385319347919028254280964398982647229567134749639933502233305737274181736962050659286455859471424949784228375949208593117624016548222452273700930725450820225919069002129008695275277357260882634610969724113412657943967262214382333190981157859435377327748738797950827681926883172862255255743387352093616270606464135482123083109202865387116689025602054630746283324868840081427557935887050269272416880657789808304958947332697487618583296222827215346602165544662072102640795469103334382093175191630942387639483528939281867411324832812696340986397406402799580078726303086640650320170486594806890648668152502273928613378296071869233584474072323107269016560901493398204286402487514949883885854042459049332142546845089862884537156149037424326497613303552197614884862902350924467967008007913147216483033639859876334529471082489321286218557800119068950906376802283216928087950976812829060323046311009086667303252109412801838825134793115780681881462646295924395002264337211208851394255918495753533080941232735949158588503200173008385068872748242779611431129723318254268424479143625875564833982974077344869772080849753399519732908571872069040685985078464509411963937381999203803110969500466927585584262118485304250961591056179502226910179773141691579188796363047354911396327224249770546786606566094137215059696353976734486775034011432357659019781603943334072642443902713911170079173634622246371206069364964809919608483507127920174869730547075409065861812897928162109603874156928423773283936818580919752145845898030360349027409815747023098940987503476709680652711494484612689890856141406276364463876549320506561871614504332576847251978633184828905967121693691869216716550415585734023803283253539361880771764540081451551637961189299823193204189060157529287537972557508758366403480001828726375603741230943187055930682321364505894853876869392949870092756854286315740413324227891210047189491899058061551979378124051103297323921241400238402050972407923224023587541992367339146393344142748018635244359092581996453117135551436440046825064406310398074020813797964571286522933435675719939515379346561429382199026925445838165291993829253802908912502449000392644908133978949837056399011954336947210893060607452867345151696394635711702432989091627967586625233677476477094077799950479267728941775260121542898214513907478832364193527408985976859525417929832343394437204936310055598121149538174382009158032832367855087764505737457612767632691030345741664389112618892518631855499675883638506469360040212931800941368793372942036823849933069433273185067821978724361509466992984435083621265659912999398745256960197887118275210164226887738362676338693499345102090775522343645437264366813404871129012694169494301833093690093539147403411927281103954392855721185491886203726034900811015816008273552106817298706316691679518387361292667764784864342122826095520593635643832715182534534419679067033658428765733677912098509256267634357729442042123549408873233841941637516291961628494446093812461050519127322044404151676094722016434397741333879578267008176416083609569700867436364307699694921426772746723983425321023302793682526215219197465874934164241408057265748423173881916224587921892042478211697159419252392736396329049286871722986328516512327229030364467801715770445987828224733428646555333999237964148092918787477939259049319608053748469133948240049226676575354792040739738597845053547199209706278138392459647171151503031168980100673952973675286549108148657513550338481869394212112787870258043468330753599428409205340094196981622650867047811504475403408361148328962073639776834258328955377415036351162175496353258637548934341042960446827315387214140819679012531279287883882919578084978583155488085110560363050290309650297047959858950087142914350196227455657058112906355241693736854664074468390073566107704149662495702249272989488781608961605914564775634796590376108742991356428898094634166624673110635063720652354825750150890738978461724409444382807203235487949074155453454649315515491889799356234297664660957872954628335721959986690903657415026345949527727425873175232430962668468139459289172010127042445774101291282318940672344757834985689341909894648435741395476399697722649279215084646339126657531584011481794924993025880443889153369075536470000699536506291727957267431607791390028672998014943667276954760462475256793239937358401131956499564597367355265411284709843205458615376383947854211335244651595312409266719806106921747445389331330794002338453687824595279553253655868111797300925578919407721007218656224323585852272100644121800216827328559483495076665075162186336807944442369464478732377985786278669016776897374354879026506464966714281577412246057040414044321694811447230270138759511526710438733756564286998201492464019361813284318765883426449985086813528493724852189774391268215803963866036483822544490956152359861008002209687835306192933344673248633972172573879592410048732582738984028061263492962141065073542640732404528344288847218591089791436618145408050390291085571276945795670862315544691742617757494337839274259370727498036486115196785394036944609379215549407620090943644765617863669903824892763057314025910744116472132920698024427700304169095627215922889332304387925062166471051412259183164734129037422936851432868800675780235828673189547900308823221574119524162746485513529603118918550251641930452166379080150883121572236052619086105068098656980784911808395614998323528297631278197336911804132609973693237322967227682016378122671798794058906465079849489306911630409408476874028041553676482067925209271226388521042106676050019507262878202848939094060442235515620712295616372470261030695147311187759192302760934554427618165789274165080772500724306291248671979986736822416776811913166222280120472718578939275385669262949421516406372995807756023433421625397407741264880912726861022172117663131326867964039761413166618535872412212618218592292237060543303660659804909986677511253330843751862327053840537184569166269110953403295040108812951396204848914656699529283231514669497979741694921117960178026688408053331713602154459915327517461732860145007980154678840836671046091762152168128446620265984311992319849143237147648424237700812366398829462703680725674182423073394907037264322816716485736305808195806980221651998880200748499973506228324937860056813675566515811309523245510786720963179979201890831659616871894333770544592524924690567272236749251193283950467013910505567383141454658240403715689515450258363423890172112894953959906609852608516030631003506056679785414189859475052114154393843425348034282936402946416147934489158089449507169143668671486710849234976856695566006974843746487772176701207635516795382860967858092248299442248579345991374446524625544657448654734940756738642388527190305502133492550813891102795937940608668538888438839704327163641976125229289765877144490627706141728290370844808377334120319809781147835559427797698204244057821424907134285035391621830171480168705154940043847873783055811946482915480332422544908517319022790728476316543335674540017905083931057435373967236576778701103684264019511566803693934166387121598762719332046870589945271932718342822195234103967080341440740347402920401094355063376393705685121792061769047586250135031808490303997675326209587507153901871468753663645695418513470445297312061941942091709916956120393326416807965275236905866767963433699217472772259793897300562770856697727285256074589888204586381466335671557836429157430261012247625709347757734071947437822391207455138110280748669460991501316508037962325994069686401546675534561801423491676841598152695538913023169860767026317708584819205234721255293876877545238941780839759765642576473582215957436033603650283518990155702670491161680120954928707662820917342335512545879393456598636822352574420155782263564867471524318418242269045258880455071486306011549246816361836852561867253925468982998512515727875060017664261221388048206321854820733108326368535202555122472254337286981019117657553647053844144984092637902914419159061784894181785385067269075789193242669531182416914954150670233719506637779446462322773740085009031289725320488399955517406083319838022333044026922900086975505906156043043239920144301533056637793008716951020502790467785631910618755177727635815504384178268961960648216164920706461404143793227504974043853452251401853724902693036917762256184900386692218954533001294304434145974179103730783357951566484572205926452953265946712957696558554730764005286791264074339255559356349633753739591278990375240026524133538681370985491464846623412509035674153860538194801489487735644666885804280524088486067706053363546935504268186757190383483422568652360639159222459195069907873202595149953846443047835165858171580058797077491744088630764839526095179571573209182675663707060860711263378602333906494409111945142024601534391089811284390419103536042416403435460352856623589077139385119340685392761605456882355075709881337108460463170088053060804004018442318998231371349231201439511699981858667654272778716264154195784927148997125864778503806191020981712422603129432212076311112356055372339528160814175259927608100314002822291697083471175177659129875611014934374813742984966365675803174727568079003312254027235918568279156023635027599538074448533654961285550996249423487970242395471485324118853314176208233440091774506933428879587679216556004089275209655228188662592318600828584814210682072628593196887600422514357721449038204605861297072136555142976661416978508815999379898515305248966028619735241903936664002476774953391720268844471839561643129720955189391260295511058644182472348523101853188534990793877079020444378835947020151086247764673431803825098930472377026224682686516147395638286216912714116891738850280780844710186653923532663654074019676160339114238501198306345305140021459373680980644077273686327163716900655078398976023227816652829288498110937749256900732652764377861067649506351287163224769061087038344000482116970545120609626946735155079748022840804846626065393153145781099693652493797083280447576920216148534321326839292288316224848533640733205154223452751815704691176461070680132339741160968449658257268020518310020960982989425597776431467170514626116635302568076846806866675547827669115543360026218074092036369732721045529705694510142872602892775154228009493719943245781016979303930050523148016964048651688145589418566740132478362610898909108666741368840025578919247464046921224874735474237548879784105260750237119234462170764809479966670972237606204743083844556840327024163810452386742779168451368831831974665877832642556988179637317709635284403850324592156548577928813310643848545931631919741115208003567347017801323062671150813416891891424968251967548316163753494490395507283358144003940970265692537906996741440926644021437005617007667598672374834502554272310879311907199984971042950287438687758850032062243136537170787519773457482781688456300307177775036719426756142522894748909849949562195333660889101136703054720895750048241569466470400977828061128736917944206069824817920989321769059864095040165458832164688884770201107210659149511560584060813229137191257800047950041014933533076428045952565954126312892094481732631869207832485252204669688373002733726274980623395980971749892403762669738149120961124632653591126546327853437713272234121165170034128618710093764043811796731585359471123245270047010501349528563789002719470053603486499063957725403088719161717916691848063795096238283810674829554416637927232665636646991169524400802967499453867764851773164103820731687835580163646268767541829738169886520785792136271091241613990320786245802444380241036836088622800911081977756832100840706691325208807675303628635232846488263035533488225487780568181805186254781850308441042917995599209588852990258376940314705184506206170070244552401142753579862000033414152135703063437196796350126179040880425479593223132164705288408614602801881200621350645126789983037180420187066478818860515705845376642935977609229683917037198026017589273168886695996724461429902896151155264734152428284798941977038174815055547223254365649471190696373544212973299007136158225108341564152044729165455609790817617263803792762281685834955685416754315059954922832983560027813485672066052437000067253435973247508873412682078578336828193374781832415008222069576466569985070858117404705071399448637936054538575166976870254487544551846203625919492035226865993482124073374544561464446809666138596129163324070054462857396148389906153936745920986816172883713031959693417888165480139541382960690250926856330547221119143208582734149722797118704045382708754761368335143691226299411958958114622278782164576807246672101932700172174350932977938714765969667668235087837049513696451296308445399827671658567795371561847758459524772118006204110309136948538588507432268855385653424849970179563146928426238844756866673915769516049510784918706412294218415730658048711870204777116659384587429489297900131558512714631443812095873433485872346061177119105590885617162970133248593315787598469904486847629700980961867492188897780443679992820242751764328294387713252232188002054568094563300270143036803012278929423766172451129119163361046006574270769810146728362826667941715935996697145542069028075644689281760311609152318923608906296769733667057325170620702890387423245265033620210287794543952404976334713440024857797756860733650756247833242057075290603470435415283765966663168928299393112265130339631358410039109163619830691136975741702592187470968954365723213831212622371834417782067578810393619455553207314963238603558751556362206258958969690387638525770083417786049473490277182730802315832321071520192544863629801649190122628173510147063635302036072832367348015619195720918552319403621052414523612259098491688128699535283998084293208087307765490807570109252644613520348939004235032402434481124798504207614452672463800895665146762488774915391837123479154760606071584542408416034111707119904538469096663600031230935543743810314924952295950493203972161632722614486668810291092317710005140899518594691683956848029108437411521671874366692973863365675262586332788783041645787185935853625460780712365258032351580139592685952596351899457460276091723651343554451029009704458491939519958515911797219660526654163627319475670795042748114900409150287348998891782187474816344547196879762075360557295648215502241925298137445527027102319739486257269074048307299214088449233999536886631635439460239143131033756682130286571846843111923346357869121722792606875418485762159232115232969242431794397457408227911644292213199572717579443862337103554823980699783752584373671749803317031894979233230213463791140238064222181859845973134779489165967018173072394027479345125000405399241509904259326807247160871421907789508434256398451953720534422152711550703822164297169863286882215022549864945702217839694107892111916631734167297628472780582246145552855408001398302364788624487427467685500014844899827288010892008871394647974417759084267448940196519959225256827147958667666143038621452950044560357942005433705012894260118861977309438191014009207226249834917139970761161299711708261993192329702379665812141454774682426797139026004521264511156988706969475505057373105837180159283555482871537076203257397320991322674509536707109785891424415501028556723273946250643706727641014690368562555484966111170015270338855888215627322412838198739352755438595900276901962503564823424213516530945686892753468546100307710940867918324962476299809529452913561839032149409994963338010120588425235838413457489634070181319713178233996021035878230076545682232507239240102292212287187866356066025013966659660885081733714757840624231716853646001535002685362689631241348246016574200155915262091785397097824048012778266329676773258645223236893699478889570625177028125830835912886670949541022732937754692587220064360928506576859637735506580558162409510952507996638507047261092863500261895960747428847220480810763442826232643890586388269690513353485110069563964804714858681968288629337459121736673772860128945572853692159656532301175745403613121416246891530495674503199428462002204622724659740152886205634478009546284055030290989429996593772462977872765782943068416627185540365964164909851477121297890728905843008654800806395122366387179840025938030240524447161808896055826242702305629308371780376257423357112018196017570686532038686591690310961496304670500236739640724949118309618762562791809040164665435768821455822231955719673784027961602332851961847450905117979493284086929363554089135299193860164259013888870345745655576886336417097996844987816352403467548405399532600906939343275658609229948074142604972378798312820770390018212330673202662611197976648165373273476107841203452086481908658949787184094399165773006610910678657544052894146104589587281599635543343492558114311602598320172415448399522326698022454713928357574771169956742280949281776324317553869858836794600370284456829772954703315104297395357229351331102609247991004093167687764309077450001025710887217896015713559619125221302707115610946274625437756308905673636523983571683878330962593907411930445338587893623287615335649912488224286295628884807871719188973026153886023736899930243226898830150953484774316808443105764019732175201962355447536861100799969512419233774044135033630804911867422963564151724737491869093112969762491075308755241281340443983239905863779521054790261936437506056034673767122111919124921464898910431446490899164640401398180936598623734556679230446387209851437470112927597126770616574772602917165777605434303962732336447420413159612916603986565606843156914345868290124986741122435285202871427998025803705590345586447259114652308392012053335963144734155973623144852436205524602371866230900403310590889247329581043667441000130625046862353264461182945434219660980462518693410589857249377393404257191588765017201072893824506997856675628268178658591472611303705830917010190235230507060831048538934979590374172840038415923535404352840772120122395737634278357954729152098851741658774028393095828384203613094045431667575655987434322530694151239026787031240041306168442961550453426356418109728823668848609662634373637517610765954887059618172357694347006202219773229912487528364130541447938884990741663985835635944275847425377521722377968705925949545969146653966292052037937018387653888495456949398072182718782632353837519261362956703292507543702041933904062427845864260210608282417442644120281035020405443262422363060885277294478152204592523649093699409603549111083412487101721046534918990936135805289984461431650422194563983296954854920950899476908501600442034298655403933590518315063381812273987449626136409162807954742262394280835304601778774334130644896580888755946798556851711984192737349432579687819116954856484989166596673639043388607943602978066772191687772947992519060077350462770495928706259338883970452152325811367092085363003004953057368065821413586249243594830909073842467220878675064818832227719374423672938898731780270750797698505028999449147562993872128060636049343083500782931407454123493094312756044186648916874209173092456774132097323112062158723276796353144829981658964130715475737740784071791252128775037960734338670690738233582194160696834944171672831499522888558317668712342898333257184753070313009863978463098407717114480154009291429455763480547065569196937940381749709595733508462188612303904788767303961875143836197126691134261959856759761156766019002561563598058249814227978581552573895471666264731401287833395389944558388188586860126965017486299527271770888318027401136238120713056159929552709892885141031635907148025626369740740853664340514132016463662449907386530769340668785361545365459456527634688694236796680707471960162813856923131307501809491767299412252555327700611254508169251758530163048110798388002809611931847728845031818436874912297378107288351498821006863433833647661376000929140999952163461541816878633792393332301512377457410988233330555236760650956395879218533528838489736159579875414487105940636101418165433313388740000350976659122069960020756962008963422358983961009629189291270430370861931280740844786482598950938736454307250820358238413923468799865131807054822081417159255702805111528270823397660075605271754760720275272604212787395095979129543073302613496098809151093651774181511080125097192901934282966859772321949820039150306597163763421366790523313809810040518783826597460400448405025461741958466822553187315584127235512256328874361289038243814844195640965933812811856224888627253097517635852443588343304089474498579999070354313094214312864512723493842006235897239130595162899709443143624590765136295766982986679148908132210153575237346085437624931751109820437205399587491821074343017263798086862246623462824754795353818329833210378157093398098960896824219423198080273086626497989902140693949676897899823640131641997263542542081727771181839150035963509187154714989278644227621369836793155958914922605761283285304289688551423291999208198367371959079658771946132588157037278275918136888224482523543351845514675241017823765334166213143602786505266831422680357694436237206951239218194559328405492935603926718616933376555805467023798040378170981426085339156193598808138790332267879139779158034697790746932304301178198026636612334882151913112070940594653731684918742999883536271069102683341476933094210814233036890093421735842232640582127096732059000719684991021507029224799606881278141212486798554109413471084943755102130727647831565498737742006605184376070572263700037869170979081926960923465212466069770739529517475248111657346904062689022072172953494652701549321786958025725516249379171199780606582234123173821772701847929000497586610446433031090220814077229401582323238677669651002269565319809657389950257683567087709069568145265140203584265876400140627935270373704183092227101864321768234250912932320903699017748560202030922086256643780877239476083234257465881346830291960095703540072335490328359242426774832630814816030444384051572724380774682859346353185384059955301274848034451974041076514516495542556145968487612821388180269424115664313956983976046886085006962985710176627918840983529244377712358891975758335019884280495405526419840590570857484471539211653135541657350012235744323231725977257918844813550473548215079062540138806157470228148129542131137084266363630280032929615963300461371404135461186780804684198482002997253650586893393751568531980277689040265201795841075020737625914906210765403272384195614607194276572297178447391803197574154666619837811285991111141068078954620873951129125389601425393082918106774187245611883658484512850659654897506383145333862220278236545196444391975049676710724644680235400389814801353498093163043984703242224001250350373277535028674120193029052456390385925729868103347274602796551556384903917623915003800916055573285002982292446648726778544588172979996563123614558945465850680345251511471472309102924403788477315656314868825378427864238225851998280452787361592403104927038645111224660918203330848663360507036937869322829007542958758580614483556182324613223320691671714115115541664864376767983888531501832114002631700669672202363901416164386423284092555406408376483708801952868900008776389721780497506445028720324404328644297185751856284508868378567416930284508838322483073462658023242510321622190191464963282665649645861700284741071124995224409005996370048275302806534293500632132606021163493711062342634907044184595441675151721694178292674623403220144410082524170375595608063920644873775371925562662045185606695540398017755414296948979632495607374603256002759552428951927356255731543014593151483384732190558006384347944300441372062104294545133011033277835134198148293152849336820894727959930533101836113578459666568864276766666395176129630816925628079075593890763554414393043010017381623946152937824678307161439062619496424469743052267138131199840188646867705344157410331511026472570114115500598928236865909053774852376833899904175357051844414445356893020958473433749313540676854283535719215273440688519511804712862702095330537827519128737929593226697382347839335032463233325364906027757595927852254839118755984117822893347815542554127885095221051562093445258227593972284274990646277650066705803441185294233024855900957528474065880774502162133039798562249645378235674084448262514994254015321893086669562994677226363610645265209410514351533752521819027904061863509194897581311924433412461859485076196801083373705785640609054913051656592950648190898591208531263563677805533644371017427390792086489569076909598846604841629334323889988857751289694583452748475220639820911617825900724400779329776552871177994737592693058411196713846829106509402075139899692745160691749062125908704363799294324285145954186467666306825366769408975441268265814795734351966330205776855386780143136326818591062457358707161625096963424911302522600732833988355973549632725589506349147397467250515213663961327787102548907889004631713824582649883964779567739431288163321397231449576786206947491939787486381999639794550970820792008357129455054506921328610722911298061077346510590840745588661141838538847957461862644869985325134406147412939308072839784232880148522653882325989414655921181402589564317493568292344647666710039683044312436864189912213025783582378259824780812083706904975003880112639768619899937092831879707496808740069094945968684839152917778802398927757675646457347898521255017137691058648039239528333580703345181630660647596132277963654085179874635128765879064844165038218881668236099085721785825654618924173406259060407067239804070986182870284706018853925702993398531319277263037797980569416157219515454818073236576073153437204257239015154978125441435964892699094159456962868695928759846480722122986976695134412355299520832677523221499097368760311880559554095028713576944842067817279157435160556775118775965248952589195228963839929168228818126358973338965768482724391475187737443067342856425252879996661005284297268449401300482015878647116663880688175346848028614915283574315597020291696356500701915255289320758638478724626912074744133254660859167194350640755015699153012162213375471628844728573321855833988653214664943527386711547825687366989018548948001760777341876622261754023871509223120882557606220212514147873054297541450041235176053819686106764086956139364057884576465248392882460411360055595708026805980299985975862412781917773150140629552663565738776704634126778590374272950548238895866801581479472043958574138232370179570862828090559413096354767675863862131331936255348347035006548385301944772477127580453792728486889370986015425134765062232446271569835499478554205793772432528716654827093411727559453959370909194994711721714037737348859636978964170349758179067615828565550708794141545687303241651049749410348565102110684281573435852463355857177931878967367362416097314961096613968039508182302666586859146797706107162999939941814041743527693393464241540517684722776281575234824416790417693407948580850210470227008720356818978129054246013493481730832150889758193277430368247273791373526944241048532310572673482445568981349012875180888760796819602883606428653036302583474343069063918018192348175937811383923985720222065662615639507109980438612215649141314865429462882369989064296162998787490978286822903993120725404849623494681629743386895087189500788375833552939198927076045705553149021248341865768277201421198951949864280298579921355079575395176762636330043389248537801474529181635488502055569930794775785039453838560702108307275754978726478010841880552200369105867815763690577569378646773643176549065109154958953555811681313977152451955399658812284604332292081545408489437252332132025300714803676065654779935948872226252668374366919990702376088564116918987937018217748905117138568891572337379440599737243408709915075005238631498327115830339340819937684390147250529084836121036787302577783769409649703068254261373097829001455450263040188343266698621770225815776150318296428337029716078616776000072780169427158385607028784907115582582128506582888449089231126155341432656897026251197772574189718468525663537820647093264903382936643163557288687482359622744512338764679599191949155068501026218831823940143846227486531605242985351475392404735287170340008880098399128964971976547502214558226032384585182989611898810036335700292212614703411359122698706713403328649468968923631178808189442756530115216919012762218907764271462921837778236647623048971579159709750207546624983065549572127550671955151490498102136863329676422012070408019891990479882571203394803763493214261375620510216511767405464723846603132092516764100478040524897901918008466237472401925658380493290118893956860447768646103118563126325636073304692319580247800626237642546442116023980101404768996138959162341627902579308341195786965562795951939283103568052138555980188885666809998182430135991979068723883790208514050439968500642683194799527186561369226757474333629774375092464007895931650830567811928547963915722422562924999238664426722138293432391157084833851316222568398785569499225877644898145863857356764568579830982577813353565311230976031254730060723479036636993147691813638987528743907762516441996608968976200214548126514056159254946792536596258338135225684635019374344500743843552899231326207491867302087509967232940145689353431544534638221089832961146134992248291978398550633610778001708945127840536211638794319468454190815166339589604740530347748304694515028931435339775272671683482819508035018534205966149888279205672889582983476695814214026943028812595022111205292508525066828805353885511886724909087585321077446204340955595109176566951163904763131156949680019106421079153838689891544398372813293514235690393056880297958246875999541342592478060744980789714686499069908119347047309653373690442163546335190869841617802000310276805696690391749553174899901969017932885296160228327963082814021230977722623190741146372783609334931188266265550934600296496893041611229052480056977983866444155627529729831652371839222484843025886271521293345309655124725140920767707889095268888572725745717559970960543112904727156824671848241912111155313229150554987175615932239863732850369151182488320710089206081094018649607384376153357453067563281981014625564979755590123997188547450459402718416845002711588674495347392128236392245736856329498121586612550124524216036136210550367319170719736695112200580012231693899383336066719385947823184320829195513992334161712743328011360829275750132521247206797908481303470039921789637747000410647424321768189249479088785370383495144360616055617755235248591835787373537285612264893685981481899255702089370723097834587390158772729507077562841610022107061657141956656310447180691679305105466815695725830714341289467722368566631638800705603311566700739658485732909834646195994644420734935391228181961733990749794577021193105209602780020685565608786120679953430342726321931874004933076225048785769190210580148277930317378908962149805418002207768726756739850491938044124391714343956208180254973309886984167787637264594545014403968336754241361276728028842440142396748612984975474796512128830467478329414251426427098423186805036831375662658311466208658073235534850201514078131066258271022505824868780452970127840301301237553364326065344746640104623262684302015566762071893859504958108260542723533113942858134152692787578668199432322286288221973858565513963872132170016268108927916751952785565181169235371266193882361852449981380743488832370422812966557681142544261325635911953944015044373464440899533706052481615084868650186872091284885558672985067692261894069846146351010578987977636569016040101816247772048442717438244188227885661377174812536398397543751222129939106091055820829307241709530857221426092750271694164706330909069300459289623631276114867364340619392792844281450844022556845199189244687920977912858260822688519341973946274434300856317743379856934168491925996391270652094983734871375435989015836249010047038315422919281898055858131407920326619547020496736681876157252091745626814887655452232949406274471754713451220837030019021931564042996511869410159623646388245512701616092588467151585644874195247265252582832591116302939662885942157309813741973451505058023895768118323227915252541451502941066914838778386949219694138724395521462365074552651879582569945463089233806882903932194930714467533721739923700600135752848047132198556354391296119804259084672552544836513268344147841169392446250168782609473638339623621050048010598375786027354412834954716634529366481967561201231199048110816326047373596870733012641045289149469088979531981066955306171911155331819506603678155790415292639180907218241862690249599384520160859453804938763719161885932819951994306190033025489928530005115034775392088833001694233430260700819774908432635037124388008664443409471306705823667357890831072319653199047872697603248426837742372936363941892693189636799973959573189481233717389644281795761024944037703172259784822403350466251782376594597508814135137622515688593482953480268123883049998127968491644571124287030277333265369865233144805325697249453542712658485638391465086645282229209387593587300203021147518214965056197357609786282272154043228977827750991307294350779086234926353990865762734015471598735837826221308976677971532914788517315031397812384499554897724899890295584324794097058606478832563965763645529252179929375775147287706329538402913552146962101158341261937601244957166174164471572132934222210581546892462248136965120579054030924794549273674730575860507273308976677480141714929550658711004402010787101560869871158478396773484967985688216434236016180195381161552685437158310157025163329204894130195070020272022530640922710611744130467147168319058783111020699865729877384070130233068547981443486099550971755005314545480652593434575018397764411653437983386074320573079507627987885854211651223570043400584548113049256616947208448560561742609701991463480444606496797808017015001475345612707642179814649291284484278241881130392876746649661100719384834322112164798914627606029931349555653615747581030012971135395518764690469512694051644050139960620719726332339702335039669248072974238340601680005489339430050787512759144289912294136374287821447753691334196408577113422356282567742340793277708356253141152581197778984056387853434804459054218743168113928152096233319238312749348641218075080308412817814511564993812193227781839843793109180684271497679798975509834353348875799433917559899048515072500377149589312342203663288382252238272671827187169584677540809954158985048278381394970528664954104503641118415392520015844675269825198314672566138173252440661925399058780213168003993506435820425515501905438554947397263967001298640564989936326636720240616019948588707798525648788289876349535830793072375371470414767819858421780519141170863647853153306718240037076294853322452335718562693282158941300893931158557798385689728635199456860997593497370838825353889184310397551162245558909617722113396339206809860444388459426087491857316352317841550142196106673300068656649560468693738583047938504929673336925157141238666387475029973462922146686235635777699076763331245867106917264817397419074253602914169746501086488744133688760468648027521237507760706287517481379387831216439381531211173164138185669084853095961874857823256244613857254236181415448604679370551408958135389714218760175982476589882774830473772148412312917598119858994878676479719664059571006301130727759688193034138517970547920923587738422659425374565243807693102730305903321661822118896157321084853429064466666329980750567925940652793071649874586920216127104407710852458100550231461009977545533853137954651091500439556279431641380208068801342631442412266659012877868020526711561713645896668591287034758276957714330987002487668826308707103654473100736924915873701225309434781059100250142435427888492814581756345057258282092538530995929220573560411520078786354449049019002465278105849139793265846021657941396308059482405786780533758180583160505717435831908632859323924520793841474537784906367714791560655814952996303938917565736313325397864063839143818949327223140116072527853358825090748221751812105085038399551663862471603604116427481326885292266155808373470010562658038616598918413091209654062014109949696543318998143833277968980655997273411212599515653863625731871572814472796585626209766472758731454178122020717263464578492839532505828197751863356485335006729890888694968681603731834986308399588338781267905214762926603035384966143913999298442704138434031604737120224352001469552021430284000480683501168374432031012315534112566230673790964729294415087192735123597063782884493097095842618844350775392838710302576550722204074483422111011400787373432802939664281628298169522176553827653928944975109928220854439300491719367825648562781879052997924246334563885970816706734866616443710637641019640240626752323769171132411215232355764713967387346052569503182071265670651164431977975778933921266071962820864049509768405672879871111456437551121868108587688841699968722092653726927574728780198304875931608445859817637882336323287985229400382755252232349308610250221241056145755356518359932438035584829469684274770271280279335601266936530420247553240959672485001888549138314825378952686689150401656595732891990031131836354459100190887097090456793964700442260871824645583994599833272163266946172407113348993495025840685950941560267723426119304125034954626996149427374689602716046862556210197474521095436801410536396712989804522024322485910445863125767676436250523442525373709938306418228904256901579422534594731951753204983262939012320494314948475171568485047247724798145583012318241028712632783600203385834106477048781936633652685009284875071045107385238610458768136571306517870989729151920236904812825824375566531184374396783469329381738741107920032044220130197314927838831587558353196193822287283450490337532127186493027197628290396500688046101102593802200051406949576309226142797808940199419661377478886638519409592137123969087458724547682748124774908610524708711709023264876364242332802186924961866372348425727278972560277522282882497242716171642079039607895561328146613957717950058383455290096105099036018217085991274499683613514018676580955674562750863758812684172836737543439091982565095894172205143836491118170917198471601253480142109351853575992673966390163347173607082803289762043669280535933815257918307067000569238912844911060497819655739880236966180833910102463880839758433780999654731436223522653166158917778956766424425708707947353227381061306161412040943172663302367062266786970489976703964901666981284098820060557814842800898039053339357909006440714250994953190643108256864008228712067548929696622321957591663266440546551524182064334294381308926634440649714164954165098388226895642205419237614635031758360497286099788241002041735160942221569569313191819832798859162706125774448463829493562609038418203961837389500308905763207504791156813582412538595908527677296976198103169016703698406252001632599949658442867152644579392354605270072296730425821174018107623176615758296405471154416923568455596387049961378419974862403066166944727288603867563352442352099091663403343915028862164025472790851165936039201189430783180935426886170394629988881768014572749087165978637207582651309382017399795505190439753187791298992268313857261949448103142831937686297608288431674686849105771745729517359235013865417968315273663833276535290200009155584235636693168151504103329903056951064641245834294397569137673038051790973464007385518844000682212540415785159317421772298888013820714962817143279461246010611315252522945755876137224826496366002316945633396634207955621763930430184420129438603220381634486176379174786641638374987976737258928526555633406032890610899745239841616470897703065513394341230727903764152085894381189001842951891841326335312064664581824908798506331464985545262378725605741919884115508236650484532384415375740368606868349499569582194088804621684591476466863147236229981849093703406238878133685764278309693315154490794240018484520079081019789547382422332756720743186330321740244686383966032430770331339125727270014427617502453486225370609820680651590099676283826379563162319779429747764911933612788650635354678873938423136297846394505075118792661800877642811907209110341467308240372777054756934454226951119204837999428336219909294771526788467202674732679076141046346962355262690311852809755967552508129559460061460200070336609863805734669021225310509159269763735932704752614144940096857175811474744297466210431310804085095266200735010984582952810501627861175862298808080827941888519542841001447571797372398891853042802323134515332482737267053432066505767463994849335771732103241140856882696881820184294400168308280477390538814392511893957490502420269686345676783620558163304860777747205244239978316055471836482725099082593153500677507411985680329963595861376825200621938676323323698077966492278159715668366464344545268452210664416473868493990261176757874456357326854792427628445609418502554069901319422412796314115757176103241146419610108579062559111078321912489785990875010514399285377677868623157337928980202505387308128294020650351293526833060960584511872525782627929537456915237849187979348189264682195792475946038559475877121392581445098200613733454592157905015451764252194661675040070986086981357125860662666848261974318544616789877471848063365681495172933599552720800605387043517585879854273591411647411060092117353940399231538123471682544786199273707375313470817715713159284961250869228421331078303490483665625363466244946432646497769072295203398030370963351618167506557561025970006444248655523560015888250910569038371419255681961215440754480139585522740330008667885421106176159606905474541908628669843756229207679294002560272371217525190909827755550749576511625203568793418605278251633410883315543038272193571501536423061187513905437733828792463564034739318973534014449271032001101301181578260383524951095443284077102529477416871679694685232387900619741543329656923695909688179835320288237603176125576445340502152889165850157183912543423820050801408637722300240518017756300044462243737053097319216461240937281572361348113108940249860811818323039592989129715292784650011684866843981877354834697164605878525018901360287306385320942734332621704232213021571366692582342015446882671137501005359176605845238242189049412980107354140552489013506548225251588015463935491774775793145789887472045069307230886613557309822645947077467628647187530391838435314964213540552530143034084263765425938727586161080885785808518949019233742603262947311103781506059096789788954816094694800580168113825671509639684116427211675541759786900320851513478413210948707107790456820657521335233784955900374933758951975514823679803107382706403202747229406053962669040383007077317568108100337803360464221390386791669866619175705411337875569230326121405614074444016489917867753310991180503635043989058676596012177769076111713082277784463473128893743504707948058186657647917226088246851636715820976893285830197018653773920658412135741021816527039512045530104971975105247666497599852749456713451472928217794449699543612717591088699777928187683223008204034564380454400170714227568515752871898265819332592117643108063903758398060402240845131728093617886342841084127707922916255075322126296687864849880030169339900643241182603614965618111136971940699986282552320196112398965856601572814784335772236142033396344848375988543442280586581677425303366133442227777167961648070620886497734205331574268559136767721043665585610828881676968669907630532909033851868923938506732525491659677561399512447935246892971238606860984784128572655358584117441099544286716593947409300325878232088807026713995422074495655066865440133303035119650582841516455077593918605888977796929365048984182840687659515845134936182526602351470086356547459901210694707606812964355974119461871099981398882763172264063521190316478745594006593902379745032021432835472318248800480287476156453467181076759963923491837537785324484903012639359768694457558433430467592572687765291141748854655763285499701872698639560282431275088650693959894427126143200229900079470056731394185946015845117917766801864436822567181084143886005386119776663382213920436386227872328512419495619672602798700234892995651629856669620298478613669395794571282216813278222212802638175804056297087996941121496713240219825206952914054995074244481923631048318654466830331235441639958823412953153406484243891677932684186405324813830889325753776372258061163519927636569279529923362032941501917682072153516322529622661810033569360864443662131278091310629137546365417354962527312324838714083689529222651296970313603683072796821279009758812138333786000131271126320530472848801257016810770344654591426644356136169616583473502790627857817003192830584283286215183461059271388602422402264456040243959747349254239418579893634798356175067529145269999315980521227910583746957579848734417375464346406321138003235981004186506063069433516776156477733367275922808368383447419325370942785864106263035818364995518708008625799518502411726923621640842379613041492905096363570466067731494028278559279600794670614038296417051386900552133317750481212098711703014489696946743670886801701277558485576028767047946259643041705738188526500697157103947022417308521404532100019033927456335583039284557005034377882504290568680320298453638014594261312477510446259336431143938039860913343940849859301584973523230269789296108792271901270365316677647882622022155029135804971862147747007805239030759528192119249176828362441399469056644406891880732451849136717613634827612324991344513993730796555370490112257117875916808133804933914835607359706816953793664528321702666641044808751459785989137477671153858187237177386128700914972905856734186864971954990740433668379548363580417717538324909211066827668809906748790229597698058522800192829008933222390427363558909750657599548390544837292605636116060292841009792544424907040669152576800528769359859519125260725294375671926941633174744288967080842793252283178951100135149187413016774382961627459762995678588875597325081304691509848993718847822361471253070800037988607220214924380503771011999440899078790105585174773671296698272464626014766874915865746062747168987542576602609610504839752553555189349008985392270672574025219727928445687715184725729533977496792284869325003444290476574972036208965057686486614867385646005744005563391757118047329788450162532195813911794282697441101056028774213753611283232890934026000685682020280514584935079041731390017935622060137507747173207396639385353042129228984819957327019255921724837948805864671599854263760802399580360170039378578302767261335318229941991770869759316446639721509993738737703041792987020054334909994160879604659247462645465013010949370753510208513978066487733330908785606854658396698573033583089011559137011614451813108998240599901263699590527175508277235242454155130764688345604775674939065959408860265665286060278136094679470111901592767996752865408966684902409287383531414723912740690356900088590553327270023003224635391937790133058922665784464852869763508828782925563425476286227321180362395327839643231293716934211206179434135320841801506860433731159504779449925183923756787806978683747263903589367645465955796567107715992744699633017303815018033092743306018364669917288144616146281355278769535394375617012738786881514380102510811982069521751641615513014504630802070659956331245373377390520355917528956820763395113220735847925731256974266691973212202282977002440156782800457053556089644503037965097241629827933523721910965468932589098638783365983978412636181706908846368650507126451722631648094760684839963889649412543145390001672071521542275206951468639299531810562906920213680902644172160079803030285929214749931607340970740399994722884512880062184928597979463493580041173802686640053561478223604775943601862705520382490102282057015303794640247392106567836835443746638325471950301006418471355975643901156420403271106328273051805151761671581444412933907192910316812048232576052368472786700518870850040733778426497234061699893260855670728926875670321846499802120247506271504371278047514370704401843427135773278509623039307311044772203608684677862710342095672812727847787720917751646848326359312121911555288071920547453376279718101706548247730192387971918169030261108995711949166323273274384255405959363772545068752479535934480504985085614591448265411608673612844340902193742178335582384490587402329141234605360612908607546972871450932663811027666118399800745662839821495367406825611659923490978074222361307251163247074490485744147434064068596483355719792464555765513234647600583492277071931880712076748714857157232362722433797119840836869477993114149438585825584358102819582806940589786986868846907949238985976708967154435319695769579586544697044816484636650589491433159222991991125055067870975865875671160503894017608339027418992493800699247252610335125115607881852275012004634786144746042078538816440201008247216549490370754119956070584756480581662776910886419221616891511427346674483069400667916413198248669387436199248897951198073494538703432993234605437432586746030138682873459781002758929850133380588223619428565653484906992208611300127294592258567050806961620642239099360650183161438141157711079258163406482290835630633398252764749093028385824481436580365792967772659828217955108265302097356833800550041181054705850793047546881878964996193735659516461891829217357061097016109241022377082913788569647989052369067985186352608730621089762679628382742563438734005816948176548123984510616555033852707679169429523249646779655039694013759453851900748392981279337903984888926096384658922651350816146830856347267371721123718721566622933356855549760772472022840661323362898486419163212181776903613117485708578754358932039966706120402037874209460243555470458264298125648361335851262313211267108667487417228487706199662702170569702650741128688208047529023748954163007187114667225301797464300517988175202906816842197949513917344638116151189833495123343473744967348587513859062275946261865798929013941769465220651939316542194069798689032439610315364598839402551341934377925314921722339906360224409050637311209332813677190061970937556140099928748280663205856965048570155506397436543918913206104488431301973630347785457621633221240022399236033382815086594844639627242388808295700047607354558749821977774828393769234115313279387157840492897814485037486101259359016545018194136537023328929658281198959644571183296531067409044225386556559988480902599319765167964052601385778690939550932022895561679636621911691869058298885047291233895816573172366801548726233823390101297628803441735298491834314669146404997885299622550924076481009898802565075836373315684425917504512963533630173713918492050433005948679992973055957295687370695150864341578985345574514474061011539186762144266388883425023099832703850327714738825552486064104280053755715198489313872307190017651693770977262422817124120757794715797484821570992837842567511209639531736803074912769344569750740035002976029871299302035447056480669264835392047167134714507139751357574684990814319412887757573615149689932396799240115259638553391990392458711763547090080669642358030972205205881740622886508978057781069344833266342901734414192738697129506965237493798688657109334805153088229841474847897100400305240316099616022242695375886354922244762676542414404200693734108343022331786533885276707915353347266020047048250067111819492218748436436390654416571738708099147753714860050307171723648672157130562366592274421189358032794565472484173520701396584787756621819322259417815470784176726254254010742985518548791765384901789807836482992919188969340968263619317960808938506681256722804222293195200646766133672852131614994568615420603124911015493815391484142096840698406268246019289289510806088123624124937358139648727247553616745140626391242936364474614996422219200773111159872324934397531653667552865040250388497773415100618300762913185007620685730157681522698796838528203407882534228143775892122185229020026899968059990142055224298637966549525521983089650825761682578218951655319280913710765896809000326332097011239106115026687051123711847972009572346636803340654512278210437292322201450732920247339648120761249074341085686899730430158257708819226691782109658797823331961141892907294466743749919647555294359787805658457234827673255155704866608345884429904551173806830916929029733319620650299450184470870892192180821115855654975164404669170375605697235660028439034137236148142307439556805667498945869736538093508688115328937848378652052390287923486306794397678431090018990788425430169088566163067938411983092963840423489271391075926605356875224016496064178139188220096394032429687106627891129836828368631798724217047427505514851468645501192766816417976538677589882277988720058004821776007631836881960949651026572572787548742734194535287984287185605775218444784423150167754093267828729896035279254737770136427577825526085444121035826967602164748230518971295999901036314095937593645368023121303665980412191604592497286282470468247825553557707948551849391505658086316131229618634431081529789740674931769399211414740583710386416209347419164690112275278364777042138155573603155240475795992505106264146974704070595970214047593400778565487476623321190678821691410442110619802250612384136160390041129970562780274648955636264995928291073801597739534511534678392046629970838403349309942801160183701007409031233804874581037919684801459147099234764231687494863293471244474465723043508562169689683938113494709357391704868377690662722690871490415283345678326210284550860558517237260259548218872783983137602597079978652142921238816762198007090883628531830548459755645693384556907936804075888937451796744305341426855858475303177214500457589556214643718108823850222251689265492782339352349141348231617674424381908125238268781098618942626832257143663895938479955682945797173337005214095495510190006527543471961047833793772135162596116633545005974707658819103557036351676006052339159193290417769233369757272464701556186595722745400445905753138011454402203768712244195568770606297885076797555540544832954847664772369945256463159146088806202774844263960955013375806631390530339881389554459257228915892612302240398044776408492627317971183800064066351449592132742598726661602295290552619529221223146996450831036257918004624155497766212971297867342757818630895568145535177905287067305605514147658203430404531314611253316388635634121270819773010863287566751316418895442208493851209034583499785915051161863708232908002025663685046852840027917376347390171034672960173516126385290944643874009433570950602251217944291853728958040833101157510441172119151977745015457610438150027131973613291957041897490537939548134016687944550734749679302366503714272018615274475877321230310105799281213562199692872114041837565186674346113745584181320350674869602985047189009051335307115818992626145528546991074331781166886021336155302450862418692853826453486368334146217648080352930022956534439544872444207205820470746688049484335667963352103948124509223225287700804120566561852781803188343906423951672229087289549129022589488812841824102269298277287166412757141277402808289773402741542931040331337681672780677894497767765860075567168010258441690918338425604434479957516071568075566446683769275120681411251943612790929467450248744174174652341061016783101133189630265110369862339579184585479901313761649077945302489643696080114216785157498677605903637168003273979942749454200172300574567420984354923796351019402346497781460682486243724910925101367496988544227492292516946509820730076573696330053682282640231461022266724605005996718120131336963480032080419276964430176342675595018204772104341990406770853292091602612633290511035653597210981701636971418877696722567822357500535457940963424053756111770848339654546047953931405870952321154058781924820317809371257731409254510512553817181686190303940419552754041369301999120992928402045296861282009742412290168637340023375292175796473795609942982181116089827523085935110681124653457735211713965085342336335041347453628244986573121067959801793329959959457812170920384554498066735145195531113475320036939074039265308212503241603322806540265247793446237413822282435777788652844595526522974345709875329639268669742977931878369077021050912276601561622911093482911825831100043253426961276718039694921269334416838576008403113967300878620495623696824973387017229406384369737465958229714511589380896013077384577649359800793705589460654765840836322755824461840297161862746412995716883992817771714624790971567172165789284762839039129946422244212295794757471938239204645914914263902199934307024877233230136962738970819008192384991182578494835582856664542455281491159904323721717835773144892787242762459248943870241266636836849548764647424039433066188683998980179851614810796108599515538332962339619682362497999043263286310857313836941617042859722099480375084885298360477198979636727687356406132114363193551313570044224681527391791973961487387198529434512398275363834780971542953815156245327514298015929527833023116820486064025639877178119877112947836877059596481952244911199656925288793372444006077395869095802607062863713420489873244832601224891711002877005196775200837928211485312156771527174410393933039289282169986746376873721598211054299514276193662022360711780518483566809857231007674095460933587433334478218352608568925193431369774397364926196645106791950729161569933756244222429697120352068695895619176765303344766048529924155653841599217278163472638043206109129631251149581138033482578315552907349168186533756287278429123578856058640759926034630434164290521625757984466383164949618736218270948847733935265556270419627671422631492494053137234348351473690362246271652023015479615164041546608199700295731164395693194981173452710590274850198104390936424281278689043565221339777310871684214153694754047343664957394373384521620035534481331692965319309379960735253696004418644935218870686598286671185907399855253090370065188373333269014137424926851376754282996140284858254221440887111551987664889865393990363568059683137968412772183956709725221123098376282531745287800265181222518009113453685640682698217907180286236347513845268592244071853062850186505332116725837951389932625429096284852315382971398773386675555546927668573971828176593008000890302347901618882434795929936800409336344173894264347476458696889467641115609399265820571453957069664663298953087040554951970043663001420447288470019675605920057105657499706679945177112553881196653681908719833562874138676399274193871502127290645576880581244381706754686389970737739446120272754818782817590827475943996272392369148791262690944253154060983239134552462597541321246861922987635475361208336298572393728039608397000737814225029240911803153460397599733111274410818163552685788971599667054115156107071411562001545137705142691556077991190771104162696811332601538681815469985362621873390111036440710761859784143059277748719806927387816072813714324827455406273414879754567480900803972158692054488775253115899343774071669365409987648090653197599624801947361826455614881084498099368198322526555985913357981908817098292402143233780687165594828608715890280451563199179840801409223298855030381923087016581573846892830623538861332339574767475762288832603165678718489994223169432879002339077056440651214916084811197768636904422546048362076138873120254670561374893409148912358383692951251618826734765182367535674571220454532776508182641175304332419414829276152979726585232070272424706790778632210661297241237778151852608061599766745628488789609561556344968303658386783243455186414855409197739062696412592414644273020410681395196334314127286023820458994016479171068512565872153193900547491477591090266654036820751197810373187148116444279575116916434316031606071809575131703870801179810309502255040506425631157974547974644726244986529381826501182002111542911300001532378861658539149818435132339037786403147305434923176891437734306985416304039756085449245694273946200771952403013857437900037950217244843771823503954449542495419079155467877196825029501706330305432778941134987466745314179996873232406015479707783349389822510363297436009169480130943391601270209919631537988080044854646008336053646555492982626072387611727847436152798041704389579465362870790412960928561490182251045898018880204877553523336273895807580172254880828619979028156907647908090017904606964817032602959655641442030716165782226593757983301802059574390819506113269263928600108602489753710923684933285802411627191527605629272406601315381550398183869166526284937063654800740626199808174724119339425011716203692703678398974594957271430756794272827608358688040031990207548164182961808073902932572762980246232798045529607080912848802903947134001976257150379001642887330825088968585945861914827355616009501703680908302485074725165829821537441649740989462429126559232539051364264786770398167218579978272522596890610397009986829379660169975257411495154876655143250078002804657289837507513841991674821662029378304762988197449648635684198197488067282891648550523832065795722048069059929081738989052630289589280490245873769922784402179470525499259721167226952283954378574812774060901091085393930678593376817160261549988361920031741136895907905499466123625435899967194012010364924618705551436178046055946615378209331503220371163814395720321750371032342474529301211687446541984938762768716919732665850191108778885630256461093929792993668462972749832344453964203344627596798237070900637796054871999723803522246903509982882916273784188334279653514866101211780844557650081293939133120755440078066079479910920391780690283903407637124138109163632560872672265795785587002640286088993148830405868620366140166372085492805541510430360086465802793893015273105302482885816501216455936513485731747390757662334729747117114530708133804697321908444993751205974473335113548402953678502410255590092370241526781655557650034296307700030647851493999328760933524370487794893409057314784453603017587757633854498436684440841770651517368264925766179698081376425161913855740585234131097238775197721701024551158188736406759959549420203503936227628597873546291409224430883905358928452307668263092078823109607202070993005161938606629107695968650197287596001760499795033193471435017579059359699357784502404429711657573965777714610141360115759600589781698812834251181738993034008028784043460692520399734724402948835711281525237317775175066457671173057682705936682646227210837130192269943692351703966356289445254478636862146651771759961025752810986219553075190832921697982000459567134879084090233780644460495565676970075619018484619879575260597999377895007549623179613670283017170039023200167331486129767336082644009407384177399409646802287436852627642905563772278929253361103166209303288009570350327998806186867390383220112671361241319517976772150406682328028051979105568039587596215156115415966292923584005972612152497096000275587661300423306227231080884010677082716148926016310175901784053600538494165953963801127320020535543591235027579676073303778216130915689734183900400391972692436864436514612392855185810075683054118528607208122028242210879326696809123651129444526061746979243257890268849902319869837495367726862671445646321686127612242117939632297337711332474527232170997244951250235982282472252448159516425465289479125336501128847382915580566698838352600853293403377587572049041580362719739512904404107112139397894076374988096384860467704495122152870083502863919789585219222214531765982233350128891169697303421789478653225954114431614336809633136709939732783825871346820211810584152983438387983285082774592838560954816636097133653268958403850398460822300112735926565850763778153079987919500741219427089032664742502553470333092087553944266951656259846114120467520339241596202285788201602881515376520721908815731709655810434131098284614363898948787645035058780758976064011083510546198566760436119393912464042055159913651468706810116804134301804677698883864364586148389135812688734964783207058485100436651448212461626202853287292148845483962937926030371813990004544111866867646079808340651894422333261867918885113452565561795629439303026246167617392367062828520880053947965209283470504826854160207891033279149163305762815058768825168948219438985568824682866874965275854443165896921077588178065090895002587061700749218333910288249225449087106198500383194066929039733907885071541973293719310659778827795913555066306993203887734509669626704312290293184751359621154999797467113480083552246134657372910799363526969544893494021124134172130043796798328629913235649248272639812718603966787099995056121127945687762832845361727003084551772546135177544007250135099622536104107512748579544203799470379794937159577761413649625864615107148235988400939865101899513647011066599950022008179663179110004278476291825341787969746214797339316402734085987439193175972675785144321435749087907247011012825245236490548234028531877182817124460927658368139727423220879732985698355451494597385419240297072840652774590389225999836768297666365771941662374523757084141104500190242205732862320420157424252162423358249512771932373771532291844017290952107567544633931003709698035056578090301333646936032498950564778775792757301173216030009305593472904896375621159278896803900272991401024228540059858076304099536568428344877295996580290538067202327810126116683288566557315321344295008145856350196786359576828193872733903414796290824457389507679910468375166326946259103872990121630687945083015517441650469155580278108912409734026391970099639994596634258282492060779622727131636555439219248799623495878260414286931163852150126404841685344879078154678096806006796651525920588331474848817079615742068474730262458044631477603367162475874973752279208118277426043252463028186775257125120308362308817060336857874429539268773153539060902482226387242597248313618154967233250425037500220356673921669802101770450326384831003930066792888915036043691623316614493730104664194510260233212490246233169205651041824662148768105062490810013980377175505469434005709540916626578796229958006940439604076243769540232603627108060656489599754242707956471355672185271287063120220099448522437238677760996276354180986130533651327323390159116440718232079407244565986719054477513429268164198566972607904994121525447975693955731102419486830326068658789003743367712799171619740896096914625233726631509238204111337496455324811536078246544010252415383297080766238411919144616540083216932303191694723858357592076049353945956003236058974204292190447366132472224484959099648185426268879752649517051966267575564557267486813052479861288945714313789336049461378593223182600715832131517848917935754471090459433813284369935423928552828673967919691472564717507561085669879022962724522263129641951307946383823710299829975443846006002420284507940335956588559874629710847972436304503301922839366017564634258562840574550510709820547777101706009734001886700065249360614600619969198190640105320341933997492235420239123238845403916275298139792352447637561308686458974993506188927704773158782541621570564805405261095675787311793467436360833672730992246610864639253132516645540793102589344323706459158963988232018164092039356181462889750769394288715069576299587661429452276714033217619586846926366068494120596863475335288799086457792656396330169909535636656004539027599317240604993131968668158628634539675987664025217295337549994038531034322164021869258256689422255375906187477472487585664678104271624278792999129716614649223046602304140298006500653750513602254371613725670034037406370950287129009508920548677082795660049969889623960735089251547206200196528981615407866536062503306588714101148546658157478149101811356049397467962334082701508232671142899212488484042409588122191921651129517233906491360712760575043746002849595020789035715790282086337060070894280024599069233355048541100058219123945580687143653728604974928406146581923147702846891992364275558858089547016238281848957967854929038521551866875835340758858006655056712821944796159671794598313234284500588434812107329949063462136798932856193671148426956662750560945719640786051344133285379734198058563824285317220135376345919438501452020231048050843570784266441677219380136987387156773632575126267109501676631998841026316476049830725636416230373525375607875494936014683164385171141832595567870479118246531534669718378128891445489824529647855428116195480716539093514272388925302031817228941823469443525126612639934717659828512974668998669148329840415599630891191038549238735389593437188644814405556754344694314773635579694065399253438444082845076514014905547357905558007097586984977868635304467968618670269583193853366321409903640773553691464916595252909413927639190515736333140058480553479556572646105244104563658056589912636459506620599368189295497140233159869723418450250330846859018301776651267059142254643454578767344394173624842568228758755206540689958169054874538812619112857588599475311760506454363665364377362888156294279563854002087783723506611101292234609912792621691797335507220031028778627072560833144227480421774593163931036952381587991144436008533303072036064731215151709418144494920204576605030479234170140281698205090928622242813442143971165383262113803962896114924771769038899788555383221368756624742874549255560498873094697674316677607289050926395984023807685408022225559038586269630196869894078045528172866202658296153302130262107687251810094529109188075527377068873807511532394883572229899159845709264741230974285579276199757040692578120524553842608816000936273288674241246123521345834972965370701466600694759828928106087048943539471944305414335928013460878044992328270033141654879591998886526857981210146934470938461957189361876916427401117989122043069608434206259537125585414568416021608009993047598178635245116207721210945505306120591155118313152771227022852930834400659557698755178872768514862245570683201772001067442649609938920222098773905115209212165998776845523501107368815150073334668538511355754444797215914914344219301215194488136889550130864427270383053229976896120059043180738657139558475237199567958198994012911654504502031283039466605812807867365693209893971816856031901610347704891165603093189025049108460145497431270922077703799553104767937804536814785875673030597268824927233012130881892505228718543699941240430838133209044580095825411164374963134735239372515344186943021232528537054252434138657441936131295756941396419303194819234559837702285525692337069460059139425262684152189826219121340861139005358324332073792997430322385801813623403653011670132514080092567206378509376136466801171019951232376575223770888455977545236580389581378256319675030599708017581988834346132691538094159900962097018701597221806538255323147260468513202532445940401486905548235934252273901589170282883117527073645370237215132328520871628744940448548310234241090830578376208941729875229549160850268734895517150466283614823763964332877192451330527146568821209084034682428525249412977565154536186331106560853017846573075840032491257233184073334093036960733417718396738106278196335841366872401516315059791545756780216015972847503906576400788693626312638929695288661291139407178595662250343762661527449752301968939333014792011823181264714730547350099414048509331106663000465581916055609238727278850427467148883228333746552809316767230413645768824955975730087656823470631538841412105815844558228326293968949916056932614979469348592930583282602777923733123495881051474546026412987656831435737682357876625494486356716238305063905435605243916209984105492464700858532101093627779200125273135399594344497772261947592748937242717605049727631865244598476915880680444502094074918507309152878440637960778870659048876518239821458521148279049017307258382353462437841665814955514261534501419432247866159205495981174821538013957471340273895779183078173936376637058416963053874858112247609975057600994060663095303162684711855230012688571488504249120371835340666466610671199348495980643713702530529175497642816327194081214586076505495110455898840928366200791193237626603996774450521685249395339931184210717604663074797326876586011836512724134197110880985890955711358320368013212302102081426846016729462079899612183117557286120748902288714945138688507666559745837321754865377622806429105923195218735766841471458510755723873703623947170684318161904904542307168583708558027269869864946384317448889242549072525613146409631020741801536794312975127943853790922192443747701822355136009522453145079184264832974120585896969674606670697640983366978288415552395807741083054214977687338451497121900503100176425313698734230240319796747655604490502147048534240410591281537046394452435132663988708541640225144654552367300193273986789270950128121095625472456266447967205205090260266718282903090690123287171970628313699265556569309431954877249840555970507138464872187964042430064888203881623117757003267269220059372927611406960156612628243019391253351077982457619120448888574840174682313862336066329801978001996088694895232617456299763535394219568649384914662231585924939089568480023864876190789951272099485864145882037346192624963234652485449879192317945077404559676879193121917468547704469791398459563778131955540962460163556417656388356254972645780271145436664583840831455063298382467636401637881455821954197030025994511482555704517878293143306477025315145992437747085316013379772086403174753577470223627530057202970206791097540007226026740488029993143655498452989606750218811751778299734797216212466290571851128853594959693504039246038872765879171152623952073494776539273189978710917919178441043623197945757479337282772857067606762182388615927121475937129471227277747916858371635199929900550013817382550652396215168488150877367836731195305628753149818980865985553904151876749307959759968874536563816979641644190729350847069218603820808855225927844350734371754393411185532601616043191030419830950614641769285532580430524652546083920696548733759157967970255198950799497897186241543365763318986718438820398537897069757697562784864004650699987318825263219522774717512505672244598579855089722493990589253734804852398508464366515833068494981029081523626580380213319034427592952135833716980043029647736595971152099392337001415204443750430252888294781739146682404945186573297807202531899198633699039423611206085869678768166449257288157743818811301453161581192771188173396930615992140795889690944928963179527234012319231809073700569746143928104450260704829509419135183489985153027833071690636533534324585936160564005975701117544176185995113891932927194627149238963412133169745586741670333989335582323665666669743197742051104735965098341442086406109452692478979396586242347665133137279591901522964948309992642219134067568606324541434774065700179364775874182367223134356656224669751868012702952506295630834538115638614310588371346417327972968201524928860187031129138590705661263111554349878401653491474147498568560743865826431995181547714716076055074129161028727803704459507949128092905086238297687620800584128183393403730323553073745657425394528939116770073839158046192503003255783718722812730710032267667139800047356570121972419621204907783260632788912701067509018073093767177693596762661526103417180880349501189687004210011497526020447932589864671794876989889961014701597874222738287754855685779520077320664764531477193086073989325494717668942650872251011589884359638605856172798797343107601485692734854551332502512872437047709494654421754862247678110151036123718695102800656698605475604987691236142151739756734911092334829998827932023075418628153506584659869164354812914891366146518174977373371460014177749667049650454099919233639652155269224946791893269720523824983913045593249620812006020539787671156993150739644647729044626442024855615612542841795691531321333482222058029250848588532290884948416965786497795396405987597798645273005456187705105000708320799928370657971679639762179803757539897239497728471131147644595146455735161868324988864437917336425506552348097722820915996632644306957031196290929978479742145604356208469862079953226813728513799289018708504959378115282808935917970532872843879927561766337721111198015766080368381854153459389616167972469655240412064341646643512353641075381134684580675184446639544389791440777900346509117928452201580686153045800228624476058303163190828578322101385809481122594762457848129573877247386083808890159617907926061359292478304232267461345836014360198726991381683411314884822950938594273117551850313518161744500666746932807971004346351969399248268300223391992998011478665538300093531538317075004744519763924381548398309380755963003147701492312952111838104599310551241950984924797352379518691262778758091126839573691104322390709158080569279138562904166525005969455986931028179485616187510015214474513460707854663927705964121513499459483817653561723072795658877547091181379092702522330983882029452646253169750417890430513248898269849148546344838248120270966393711427373879162142052749290280019149768272272768283745850940891609804009497566161129693543547964133690767916830367029321053094748101727449294120059212984733425206223134922812116615791139425042505951117105351619864929441384908976817209729155669371956240475465005568649116614228601533821212842320960586825217387081380825834679491139949125941031583693488451840708968916704982001582650126160403475593595020722414425990802742767107507782394918350556971540554074391830476961019854451433613108718007755956634350795990699307938170092411304507335681137934575804525379147641879387905227131763978088972730865074510719760729413093356332681453499953499951454127652862887023099884570884317383593536159363053753895635134287914628872476500804799537358961174552322539171033114784590681260837629832765335775786306310909465551521790657368796325907952625583577171121260455573850709404761713331123045586070173169232734243572237819806321499178952932578774973987699873299798681037786933064400715330440625472278199338917169557527467909547579230983074430013640508264249999298703150250742133900266846007623006969658362660175386035512437872470477604469849547366009008944152815409467429689197627308719059177333858690470507985160502070870892544241561145855924500755005480838660679799263824287540847967944104741345628534297387803329819133115361166100764096913855901934228127701348282585901054614965428733145050190510489553408678805736799669877752763965794125881843524026120161465839627075142448073039848091381644913510030857295625896396678372450322712641466216128337814697300135183139460447356450099563711506037378235593594905861644093944350477900421283756746853165236191092873702213414277478598865054104989318576351710192035423116342869279018697819146709996925214355228297472156293913839585139419239405823211225810187677451433664663539368448864399993449742619544734895005222807336911210304027752532865701554000390750106693512468673422617438935789324670200029350161385334444869225942731130796284790421145955202472843501500505887679392768143750731823650461535378827490975582116805841023675315186016070556252660500593883575190757107472098683130059605426844871684961880966406154397316752083009332499528269715729293539192991653398979727451667411586705046579021687845720795221391357005615019142603138836012997405256285065776273065498247114937588097720590579207892594292764802374154983347369017176778669899056994470642453250293641725051159076719752396171841976592390707981716137767105394556068622268751776706954519626567540100359522334754438315389328118063184179787331208934092887967456508592458070798299480850052448218025526307374435045758190774476878617178523165978618688127852786314063285704935649286516323674955082127813041050072423899672887807835033211775963238301267585337080186482055987790269633570373021397439638071013945204065793411589052899975012302897235055810026215829918826098054386122228235632310954901966079512191215425148709780431999970613226869906063947680942112333885643284976191103169359061355741652245962311849765038316562266124241190944776194855033739270173646620392651152689493821644345510222347905293544387311184436063494191372566032397011407966774096180553657804370761182803081769410827901452263268194450698939391664793501787573659688542362995952126791154236529209748812431747299424105105845830264299466788466645621635781499112269412408070970103774397479003048308136468495098184795687515439297260751226349921233469111263302443541225448260767075343743833814030630921567234263145811359135236236473220951012422267974590207028256222230549136021351511653483005731627678525311798348354895523838370570758568796338397731732273257830192260347802628928182131267957373039425175222012723286298412802117951170815152301172144637169821838233454056692150085905317735835194793988892141282853048211080304729766685181065173190308649014363145778339925832814396296471806681695935428007176281492945984585365418023636552595828366800243685940543939058844134205559390523937783929243583774884929902628231082414284642294490999285714266021756518611159210516353768680124519461674631375299920352002797731026850967887901721191245689888122434745242704125382720383200974145201073237119481520546609050361921156363454313239202113977443937213835005873341388188877211955834973050363535979997457740155113419660467282319529795006277944707217746591985533849939055193960672108334942800863117042610805365821703021600397643720924846534658089633301983478118450987776956629772789492859503276700908867221339780667246407321615560347762936339628843914836162054878119148929278140366177445580074007530580604424748783342505246530803576750651044920414908821004301998870613107224716974129914810554504314071994358030479842731806881444476047112769628675780156464983389348859270564183231441584407152502042163833248408083809469290492132742379024129113354757013532659898977578945995059676718701441074962748592775180265072971327119899752102329891008347539057163413399476411947600788248451086516923661178348814439980066354498314226363629318064685355597729937028820948085648189913775421960050518722886043243988301515772926853475850113040715610338115860835555265366314855423302023982274796540186593317710877396490828498397803661207053304370959260411362666088878620600766890193924254578845025378602562640859967124359876532708719255117879080156521784601537406979835018625025486953464670346001710527728642116865278479334295486584077281149256309944976970338593073956942573300047492633903957602972972138330459847922872235710761104776813556448899221977366097538987721757491630122473456078020375954821181660531149644227732372179868430222148907547322278605164067013243049429558989098860163386006357159940094468478632143792740318966032085216343599647816141673911087386784779844913183326435074270580393073459209510622116801401768851741164577048024082914110120162720222873164390360603784980892029065255343849437465945038277011961617968962554675590482548616489749741914889185613110236106740251672743081151229064600526895990023436615067606075461594635153521825901596168902660820811239574821746534552505980201085924588761799255683921795242993954770373358996693906276498733842945748099839360953983631235368862607189443501088854614943613304467483859915505881762092150662456251846370329914881670665564971228934333881702123989456123029619487608099769323314082268661055761569082331758673053894817414936753791380108806426680566471066406032068600406528502350465648949949970303456691644123785234480269164137402433585259991390836118083227955690279577226428564251913305079945271445017397317901087735343500728445817717659228124903626784603540766632293739566369038491158032818953594662418067568957197740190224237605246082736089279388098569702027971333451697374294033115891759824975589676962541708433882274622060242713641190507486225630142367245965415363846838010714026346810279295704181941004783236370217102662996647722868953756742461812367367961773094927061633471481852862509094577680204959930428607009165384029277270530625648704088233145287871099680844543086958876393758489968371530143594496161748887690370137741378064670834349181582097733525324244283458665646708086824186673857387026106140503455635803759832947799397854694681899813393514904935168404279299100588845892822266971788395334532240853944392324474314570727744793820344262750633824832696949879814465877859961645358041305685620145261124120715026434465856367339237489761444624478685056018047416068514116276536821314667842106765478117658864633110833600608361058066306715751705448744970426847873543979565441086093874837373623962015497148335180022446995881532749876504045523026048823296058886337023800988988507908753383688397033804826472839631319349218003905149302637988581970344068255136608471796390908223124464044784114639062490132291266240855748060302151079589634234870825758212703436359500789238168519231492736578585818405424482975876417897688195589192789145076076929632276357503256220990487203728798456112801443845564460769709857346247736321475238043608209157292068889564234729926538650514737288845727965244216556886017469056134948406262937326145925491124406666059231407099082673003188837630685491984218194764612182919690668631827991075505096605843431161887308440840271525540203800348653106905184503907350214309621562709440315404549985032329058004454000026642218112679318956706986202429067828149348735167510877261203923404256316285332625074880514172686560144512314884268950317508935017134355663434233794331544034867969851599716874818995590554170169829859962356046970536196944340465006215640446187006694786275649700685803817524298476305496478266392709908243579247880044257840474889699489822851452102872639357400473621119694396547887021090321955715936590838322337294482358908869652404626818172540417106612952125524686614146204404721418769738332224433595197351528947973301305437795829132545411310127329412126508352507626607460461253593264955788008762780147779944856964566281708775318931752934928457608180408454781217601905534450033515237239153344803242939965723525389659411140896360714698120745468636270182474628526913100432176534360821651163324765073135191204599742405713201347407905240966073306224148631660511294553046508712405688729643781090583922038970123003330592065951178615925705034487071691755406949429896106543847903601167634128605307292725329333587435236735879937822851495438289955263277034954571665158210411220520246050429465713117758248755485446194206089790473669354700595998073181713792994137689493718501872178575056954155738421102768086907267096198230660028987989489731174051987638318364352825006081349950133622271941839064475412328499454076195490241780783328988624387439104638377797334087322162062335144977663220611823805394496642683861565333454637183795512226582836678645477715217740308512280010803611751227066568789755210995086563454860139971409899986540502985380261643948212530948640785850198777159357005549155183710899462769032884629262904802328883287641841603066776665292418130828109803231695020034606726613565174037965092810499813191756207243149449850723249737274411976455947882023940978645463322184959758958320359492688198238137743940869785764316649772104356075758416461271232243952128937759746980896470230257913874950531277965449040662463830642145687874117737802450735634856099272340274547031494773941845737900187596758056818570375231791820920741710706942074822028666453040952289643289335002994598446837743964752930964408667002179998715303912032744696043652586954600013615077542384660910287709891509847413968906977110611790681299544029414805623472268907863350929591563631362031468142189246925782370410081093057082166147639590124272091688842867156080899975304821883445759919477396381252992533123313255782145015954683697465052943503419766456915512610752531924168502759457074816476906652034227686640214244623843605073850152312165625383002272727252679143303113412321145049667711820178681158098615276293731741610737928592485999225102082532823302319011453531228658203144502118584266159220228778680119116984755863494974406336121888804418601208738869809203458260723727357206802467975428738640413411309959121673438608049243847957633431462305207036784810668438701074551889211078178355862349939333354774666529652811676705119503761846942114688485293063884521223498870580511322477683311363042652613203779135260960351018738516614992265856820455209931734190601240654334438361570650943031585992131979355167984296412678888851181992940075069674032953546446841179694123628143779843077795586937658616707274436860227054133119794563420246415131038715762724240981128178543734653954583538635233122356640265288645308575319313772231111905879304396944358296184092338229902515758136603815677236475649116554853352873821027267021098839802906331360936179597053290001920461722918469652490832527606694204495004766266015748722639667311157691276040313685749227408581687275523665875581665478754849467534462506206898586054422599335165455744322020485229437754686882848308349048432587189219465337579584999883778837683839737094675510393613867600606653533407764752823304025426535624451436721919601105154561268786482412125469093677631359692535924809820519581489321186487242995934101303127911305895586165174470384394859723490808334127413310393930142315141041368792511139008729378072212111636939212261965260677860004068406946694725184517264190363737655660708240972607970721821910471766364660812660955400476319607261259705214079277765029974448222419243995634105566360523340016666386563213500399876354692081930700930833946767121479450203926481603218078594723394102879343163826607961600823113250380385643898876262942655022879861306233956096046899448022987673871592040670255829923328617701898897787680951488044367233723650768889511100854526409371258079504665131616535114092936062417845953292887992124670976662704932036111008255145969559544136344379399236336456881749685765554323112406234212323717893053340792618215674597753776456329997369648770686066815424514386542048946496507754611063792051551834960717538506939571094970573226481139140008990494824586063274017579158349935182705042658880366150509640343688235779720454057576947381186284053384388332519435962070449512941731983877605957158047545185432762886298621955046072831805572144703167870468133813531757652714996395793192766210923250067823310113970407594567334212447975645165118087204360458310013135176563349772900874063833562843191525204108927466284538664489392439918851758020728773443365902766534353545228776556664621656308049664935210729778540462725364081899510592115279802687429945818883241322328017063643351625972112698379158152358830659231159176164697047802490838599447336620691554158694372584587779673288053548703199277947359754206586793091841020957270425371222446698999145298900099665671643737711968915570781714216936698297916738228286881046977273219318974143859967558809206709507096683469699241286628665375061084033440169037598712453102027895552277676565373870099074705113406736810781794788401793381166179341738877668190796989789088220536741198718062116452011540894508724218461380077561895154962729219609053045033433510116063494763910573267556843126612175980133795110495099778964277882513996587143766512308314902736363734541315818937934610140995154940555867520692955365165806037256589728288883204878677663615474673272936137951329685872981706383694276205904021289490733148763041424224554630918585599553262735982987716031213002587858326595146315883899612969435938144141591107284916019141290581434875109001178819312576502997733813642156526886183729360482126164428071487209568398020624049144323031806329498575175288749651750167282390159260138422810197673558457791520846231870561666391543233545472719071360485008701564560453668419620276641433318482303963270181488305543322347843396991964501198412122904215219400881788728742364360901926426242885016159888074754327503362775783780137752527571239843484113580435111481640900431673322534311613157415660711456142170456568637796410589125356777024779141130009278406100526076436212913941773154374175508430015276255397962862913858564354432417913262112670826257494123028682208680125605348217632871872416331411070198844079678590088674173498008221213060590691083200954368343014243181787847730099405627128110618181656573059324450166672460099749892170717425299580302411611969512499360545602636620871391380771704962512255455860305051223815934854516723543584035673553756965699369631358071448660583017288239154828722981227271301114302059470504793378607632837300925418406705726482846385213988583528918406512779030409055602184821920373695272125106019559111150424118834842483536725288575788208939444917988639031200028161744204799722920024627164043542033114398838146748615180666444001606650204225557572161406925888680097961130999954356601676154487841989193007553410347530978404826547979057087565349425413210431887321935739711929113043511226678761365367726826547622070869398043432297412247012702462347973207675190713595538661626861340009490691699978468859213589650643090006953471792872393858336329423881184722365972139888480530773364745082664288059299583290590978885852807094098580349736619322566651985652945890512933626514203529711518735083185885403090248394704152969462059735339326606515055429138875315158457737422765200340849883183905866005640894605104833742054495012528616536503434319474579408404391168356816743579134214292618282017800522865951700164088654737822512961544112225837416320285899822770690397686283143267594390280193908364569149254716811471523025546134291144292976731372812047027217095180077308325424715711713261205225503328367287294857350571315657726960497282467680439458024234753545943345144827921031149141450529897298050827373304651542076262047946200585177597818657868087652577977881267856903518150404629288897046489246275517780302979619580099381718462019172729173167744881249851394861732095059252950197600708804554490274345749510698774731770878663491722864115841122946415345719366455291041950293405289402383797992284280278458464311666704804935530590052761139583306554855154213503243944632049824965268126986195736418207981778901900003163527356045426912774424037198318876015824662026647697682061648466848424485053745875586075669824468872579107999646453514397414330679726393500316977285342004940735670947522210986682927476154788352349724783467073768323183597453293046646404811004397898406906284993665437266296669940334197114526443947603304133411164895281443607366239375969396764184798425157212217418367722891745570362963808472279443585007202868159575479670981495117723848968278854169933885122341697797113364749390381664078646329624191305878926807582473988572458837763054385180311761865561559466777608652129990154307758412739227373070863583109239862657507612598267636650771101769247084320462791858122070142880752359396752622347545411106319849201075637162987233931841609172662472215358900510615897438547477333935175817358078890658112139433736283376404496443746580356047238313289484345876792311275952460279594888563685764086693171730230997217828957922576743793396414145237176129195568848838671779993248669150944150519298172055893350731836434545564267152568257278149328742749734612301295121426834646785949156933601784384959056217039918994186498298149098731642316051157883094771475662849686051570166591775463585181255650018300156911377318656049415015872498235608757640470752672045654988642192829090370613612743977034998970991836421669562372884839630388251345599871107149158448209495614601374193320266563455924474963618088620015633609222783934592262723504688518180527588760794840658768748440704175832755602353320144050419103875448823851946487459932725082420652159590946169034531589270341211327719272064436555798836221041674257337724573356576813117006698254320839578558354243788143582945763605804552869642173721145747774128288009907036523737286244842791325026727867300211118158043090666044429395095365920892075585948548259299254799621146484031480510968053495117768318181606878131866777063796501422638441470313123862155722939144343771203536306391018556190014666782119862919322389475012421008238020040582623806589882810645600461785186691850446776811872406619442277379570474263841732336303928011088957532786117275683071675710387831886041258411062239358392995771542624083540930680841426940367349820965290630302739639961332124473668790029399102095140781036830278973630226427218415998185569320650707786246402866168137830773022305789891538671151860485340352713695367239867578150619167258953534134082421848306736938831782636983408564904516415922197798984643508837946404847404050326914132311677808809792594488081622630339768603586633425181918656421462122286740310412679528406701026873460756212446410729946706879633630081647482333963918393454409379062131290199854448332705663187781670086803220097736710170014565997720236562723322462804972298957985467089287124060495183943667391739112108262507234282894800277832985056588574591896494910479287124719073248015047334259608554714558853658940694416337645515982083300316563785649546010637525283700826659538954886727659528098954274009757318103912633037947441540065466570493951417418636000056819609117985572016985174804823325382367057669525827073431405387291308952860039002256630505841670539754750009670617950529646911415618219419444610607721549240576297638679328931106417725719619620733593593826619559316425456423641874421353004787971965966367712570908621649012449686473876612633842294090057497354316385727576033349750512847415078359966862486887734390988168270037058905036789149444425415386296135210917574207485058315533002179355956397934960020117536929991789447679207218307875329725077799321379106200584972554384182527924605482576090494112131399293241354918540907759435891391624208429557724488712758088334162497025571363259501663432565536209682702517690159191831350698338880841145257030769948558335102599937693030238680663007019981396575732581040755367412937303044484376717555199341304263578615593415680975274338944024812855284078922185027464742353752015577801015674483352361259889481090229169460665421895958643187608318852907738784293628043799261887205631241824721984188633319382873355660048858558687521292617575004312874173035025131946874444379437797602885822265609830155966489749604486279703630762488473656080846437888930623534922218123419943046676320683816186851656979044820198348444569918523192880166827962473082194130191201177459740674415318276794564921923665433535745379768086227898785269546762377946221701820563782364731211425532889260897958406376041039558626256357869584213275443732073569853839481981891592144241416510479193380685962108916386759397176397681664387687991916237599724329322586898178035501200755181436927054508907077482165723635390167945596144850267716846214885377799982972150764448130554343745475033509996151385221641869766017558446797742718815865499352569045002879419724016035638770899552163107209590880702226531009008405760069148870379164706373903373493331759154161496289355799647153809871003932344301068714987663774834450036745184558677719892119343495366673877334225319814044460091216030105327871836367254432186948244807835393830760575167427496105146415546531226831571954871734638276024320441727219265602694574611725269034925245149804802170093843929733019875720957573108923252313848453170179582726145123094008799306910103129712764906770401625162403333245413860930203148641578636543619400548148642496907629295494911959111012334054549978390285342300731958528013563396482624448607200009791694494531756708739372703943296239289370970290525230155471514869336355403621698415153748957344983330648195635017425598039448310837482199084275059657294993161452802594963682459620708906933981208574366970574503785081585814686482744394011002399513689243634283835152283758624450472475383631500115618936445974839234237332697549886236008944010809505961331926976340413131037654630217485865597942540841611535625361896693691257575810041959847589527929774759857598134055139505920390476769033911503671065656330131263191291039422355251086559026346637190902174060921814428663406586924461590041530944072100699841134150190387705109666410010049746803322403809274864036508813026879257489016226732001320488671116278621964174343488636519467954440516956686339518493267440022598075878252839032198573256904102651708268408830355260875281012805551359808430144318449219889024704658150240223481813245108235882954644384923874771748075391933086377814594322962608097907060727453543110020543814281603824413564110202558723812767683247643950607758411525015149536624260932897496986943548142500477519672941918694501151274646829358772422663325000436679985188565721130331276558654699749869995070679523038918378755061172325409249481545942163347423714653364093805353766365513558601758276784373161260269257584062965956619475962896343105719035715140881418675589482618409901639597462905335901362419482735665415387038055265096243562960043889183444138232463340354179603133582453440929781119935980719375036442960533511253359717435828414249523635473988016594691877525924035490593420419100773112728290018223419509694685237366354856331073657627968553659724450617937063023035404976951796569776671092576005374821492710355882113757339920212014237884176545771057682375009819401679013313227481181240726584950740798878939822582170362653885629571702395425310848927774175050352427798773773172001835191626147063629527727453925979312782359016603669440870110362235420136950487007312923238177762883408199321256985148119765540080449644674097098360333725377731831278018778505137978116510447097435329296976301142458388082328982382707359965911215663933094290363572984204437076027938734069105366026812388458018047065010943214125315831948758320920625789940207131114370380705936679951506954249601474478952987541309687260198282499046527920816200483971144132778304085933194533901192364445759318693684080910912395007501602029101678713424447895965204253923026936707088332112007709322946249459486241109264323074394335637636236926124293575692879742341774849982247654103970931090457225074079530882523628527590576306584853040169272968798891318756980490745622228712291945486487259614442051700276438914317649282863966122296988711726370052339728060432366757870402467048999247636043053486896615313571623296971512517982491127230410769608691811998030508905866919857214339207136168340446046147543848036202900280197889083077883836826341193691011766827395449118793302403312413187489906517687307638045460324623608342347401189536364542549527928446458039502349558273754419872852177073320760370055001403492651462876244038238489068947183623873433664529068574810902122721435118272813745270033771756564935921318394279894001707767605729798641724234621235482589854234051212577511907090561303028312263700031074231932346526068124854973317203818046225887097326825797222275239661729056148949673323743458690779951944279221596294973758428682115511207058827878837624926627114699644556936171035011945972877149937157470607485983944232571474420547190912142476426875307027750621451375753070052767158044554884520239512105597259515873542264274839074333891851362698806176501174820369827435249921254235133964204171561209947686491274773165945755586891366450603886500574864701324390919187212897830761314374028166925954003178158403024910832999039530654685451740166857373915433829392338260176499180942337006014212490494100952571194231400280635282897072616203146374644392791604788544882490654322456819473090115051078464159530772526398195941602106209273130546197764558898769312851578022350367774355553388543414622385475778258380010486402058758924335820847745059579367874864333254217944771258225542736690516604402118872280739110227488002613637339670303094698593191454946770602048140646017172287502824394916198137664349273263170100967233408796463026112555223949751273050984316684553959671012334910408341000773301532434114136531295517057646713600678604421887061116902797201316044587877101492711241777026593851514609815874671489861692235317119196095585157181005164122064956633895646884014197225802259182403836047435693928353583132400518987027086394044279714567533827506927811489961904002432124255277326060063491901343320925163503741232339552698520179409557493263611228334855083245064329240373297203424715781759749049610869862430053096242039102413458901232515452717910853791349262105455309852292989304591280246209030571858644782341935853034833951474368559931509988904140671871018072697889227817218782848271438030360132873362398219652025268242314023726779265247930234681368119955881117999530052244811251757182370879440398120110417445733832294054299678878962370077337863435922002612495788557339433603867104727724515376891505777405537957112590897408521991782530513691371547216768156766232244237783427300594148356918704133502144001727620465063220376536656055580190601356007926444622519072121324267925903551257458650311258980963384773875783165754239639340513414226273473095495168213183595071681269078688242215509935824412977966057948678266360888710736751186710576252844711323716642325582552010996644909070002264116997040250123333074462704454621418992489543905194718601442381474056758077811205671121997731006403852267720981859340037788230197960053427309233696182288569079215324996263476511940100519573483596560534759487072194622692367462278169136819551069603907480178824415075561773341008455375073921645755282758700820079184820800731847895430055480781420094286542711998756872946212160527277961008721676095213276591684922734184420240230039835876530114117193770340494437206859128271157730083674474735657815058922226031880570353367112694880271193021928343037082210704628849005508702534053190933336057417728795110645801888698318524149965682438283974963028450295223569748615703460972794993319215429256512555223447526519078454427037928738643678501825336147601573527543286464455282590764011390137806103272663978178351786229658677468842612149260572505094529058242320266871086362518942342007947858845942824061402384897842804318383321167992176225900769701960277196678343120183176898414827305634608030384088027930079054349615291853457666353702574068284018435103998324440266132710559131006352116208127645693866775740270218756221780405811282202221669546948331739671886803313879538142132908502579079781702233828207304694059856136462263500967270986739034202885726424728449994150513046005119784234143986169203268438165808431658576328425269738898503774116329811543723908104101133857940535560200166014038718117530010833026846876568293962724145861814772744834237277514702430824446510749930724815472053688535464891119570024299287787475129259035388129111397357743216032519638503300768516549835970352942499385292850124243715215613949145589611173207308103547691688174657105476317405117548750023537774928217549004345466742448329694525055133108700332755234309642387022157615050757856083446494098402503266895757906003270731256608493738293395414630682092763696863233400597049811467914680261475955524019304482144967174048374193917724475472802969597787361672209325894599342374071769907954483206373754044507984790867911428366328379083022587865732777153318174393940454099031197903468579669595837600356846971896234294169449280128628045007009785712937429038589889835690902025115156997671192482683705912279907888690681649559715034252254214054458462974712519424768126814655155895760765089734891045737873367444984508773455096573168821233535227113578621966114528166353623341834319993319913494615717791411508348179211252631271094864038725996258486930788153637809682833923616375559044729882240021586447095594306837594137124137738844016197224850937515764507420116930000957291565386119547405662864052449937978669997520138079074446501401123885750089082295756649154958223795247414134889613401595990657623711522322767074826692784345573807217403752346222747148800681369991287989636739115595400186308964811414957713932427213935850299215591019627340650385764377916070700339541534488189663776564575747204793857727390315733397614489761271188111441037237714081294347099172734878540177943809478030788277025083837741133546044671918259293530523325990166805017265032712481514454782599572679912550349829888361568162644515524524289156404408996299853606016911343795843924557730904313810164885637204665329535048810594296304216004333366247493937196099552780922117493252884860556205245096113065772164078034335570927951008209116585174990046646662591420133674254335165633963470800355554586941683311888901864712369244691151260243121377331644715840236801848607691868704494811573684022275310294639430482489188105215047023644870234276363452997234996057063218750955366712116121361072660904598443097124431223442246288713803477668887936165225827051134404854712314061467170957164561756331962245274738537555090251147486806684771261806295959214956378458184137819350710556550529917778217659169447699537227615113208928792993935145218658701639513163195942075683615321308003708187164569349165950328023222726468788721677290563084488145435537104774285626411060878260120809123463057798640566506261926299176394583104265730341738499121213235705218944379895627670158696051713457677686545339102175599497891706700548699941754821541687450098677772571287411097787382817297175741473619990512478336789042976334594965170679426208532282068747657150529150120086504954527542813074653961451150516747302197398663933059070509767887573536739671194231962516755847057904822600989122309958786049438877817952193288909783752394934376204724357896533651285406588475914517953924911675981437778370359887961169912684501992470187350217370874060056248019086397956686853052411591098848387560170402723958185227975067843689418086532284852139081956724127138934876990870622344044293330563477532187331935843526926868050057678921063638212331372903588117990515847321898728406049924775001655233082038363593792957961026668742994709107631313040631567294030231622743460662044805140021960221948627321298529036230821076623609006144264564730431039746899573796158716212750487254662289948431419251702279739073420359234475376679821882979608681378586513544097544564675568268732546276264951274839089032223934977299902069461335713136797285989820831277128543411650643149564862709227366337496444781243438247027007820008302921694668467647742970496292803566072560763177109474621715006940005129073654569994601297733804892729694491904470351727956568923138103600553899561589393484433578772552154027906644378902304603660294092812586614999564060665175233682623170869226146433331868595867493118737193109287931708797392084181629190489907194846891376097991373457168376969883735786142199935806821559836223172302071489742907791155023911520423321626013164897694863243217781380037828082797028014914251469310597414079707579795392198167018241517555310515891483727144343419459961140275673861158442770886808625652888203135040659555839749686206205671485857429756621735013267468772755948535586302583652923252097308919998577918080649571949673235724468825743464204946456687102325577591874110547158899786180209766867102488567329821720788632035279131134649618193877392604714723645075208725573243725092447657320713020859317171554138605878858188413177712763486030664277226299883686966186203193781054297360493865261122654600833398320155022411338726587856906237053145801473969091625705960733245064796194067754744111401791089176273030593834453231212450010830911710489531040615035963672617718145660519161730712160954873009675724741345536680620288652310221503928988660112713958652860568034883463693764965889733827168511774219090564219329975624069907010847230882910826047557508682023429103711191009783543557399726058472818873160609889163212074422646996817656880780900486562703609071773219535362809377635572321732069604033629195922828305733948155043984070163058486850460541936375294505318189990261972895438983255239438582591722914353329146499025367966181968901110235497636400303121587777698073989498694783705090821274679753659847910372489335235426909884433873668043031949982376257501010512384532212675002956457366164880878327738051554910407013435218160758864695555112425712967148858495179195510134439327755603014265135807966188005246718390426018432041319168490939154232823700859791353958038286607547089097301597711824231132510194221318993912454551956122992308420675633734347160442504999915084892606373835999851591136296055033722751372578836584195780327000425944315998649894382527476272285304162750267209775550787683673643062295998886279553751942375407292736839817099342287008033128423744975726725993285370979459345024950433251930348757426568747806290313915471400639151719867691074425118829045572560993185251592605930975783373434948899384910936798201109703759599391391162708401765892804078107997704810600059393290984169126291402704549069472004661820965693095203137622070982973404657414991444521947708958195054346718033761061820362265243858845813650328682937525459135680224377983724052789735113527118928635245470974108124320807210083805659750167768275628444527458614246728478618751097700999393047701783829229784434706362469052167000348723340086630400747300999727177037215948175611150312316067127202714834172554184874439716762878641277653068957696292594039151412338633018722797126018708439363228572042533261104684265999190503112938344511635114481402882583311754731764319111682083896520208927703788743934265184922445429595884162862056952667414811746261663535541612612085627138142527959290363594876924941190762053402348629413892434074284269357266455974597887901063237355688834999814481214556825177558160416070243638276122414547517979914512417840214522026808938738754328751144248982203753772447323374113858919069385667344559671870649813640902277743577409486773828850517731189306799472905567133451971091625638386073012591489264253005721252819586875174674445181511872685238501174786510823069079235475510301333662402186369012220287378856050656852572490778091145362768307418403993423130440660198919008032015935889828686377888559883959655571806201610253164997686728259132913366113751349395111713922804941504370321301602660288917105860373231382555838885405176553203948679738060094314516886834373200903039118501276758987413822948126611682992958589002231926706940630346712860008594676103236616733999244922220724548793334954649571274621557530718754702322572298862672795523330438412770565713627409062376200747646604171545179456373843434955583643710898839974117054970726914343866356051324244138975652275020507825125521985254133267099156348804046896606350492789519727942056102102836251715219993083261979030107177218866333132239650060389678118402220482312433975698053676406746607455344280697675653467398192902889081105420045023805487304931885491063205500260005377467111735621982529899823506849733583359134823128636989616542723993230904046602358532916775923652773767514726042264725898735737926669357234992431536057322074098677098572977045719613561918433251976909590270823380249006940324720147621165086086621756811715589350129130399580655311970632446023331254033909913635830058444405058758249368389694042733167322347347532202606006894176827223402588178728711876835676649401104323907199742969260538780239228426672931868099559506911737215926537728454601300627353297160258613842874326176205374056116097949031108922716530751785730438594695737854594158783317035547273374488312928449917710485429214280139311856641939249332724823918676219774928649572123657588399396788774639941491542634386593893641416547171836491274273087381932133761178457629363344716444653010566158724170377218368873130837532168563291243053897172633456964720368878787091269618961325859126373023539345234865139404113276615733506313343588907572548898187577311519557374186750536636712510892453845917678269919136188172312445878199900424704823985748373581580113450775115768782197715672310405114555448582818286189368702744001754537059103702035822009000646634300592358503195700142924551568849473593740646970765780554885160843160613076374574453941665840597284742691830920704157538525931948764310256461297015803876632026633023979334933748230207419435440205534230387701053495975565181277247994701943845808107058813360710181471215546582336283965694420141728950289144154506324868831207911973159309504141769031573738477926156377740212222951808818737552011343465308121654538947714145244391955719502212238517794812480632307012032172755265674972943229842013496491787042815298522818219960156419204637534145987553046976012218747238429895828411226589262860026674309492832200553882664713245808791062635647638771627380041569366692994426311428218659033287742901498235519568947986355085717172624562431420155733952290961790177183389089447712185529178147044447876393114777616484608490794680968473582076341386658910498032565717545573997878947670386102300593706448787243634550849351378849857470516987768354395861875357344434138840772803137971447907437438020488549393802318909464994481896114067883583181077666649590744873614831625311283015931438143967085051796311116980734058895367909829517215181721166860607606770264310412521183015576617620796365443494535770301781288264681014176892630450857642537930311267938153301390446254712788094306837237363847726006700998160718347970629739546301026922621780904494677115679627353677641089751915777538900668030154462879980954898171616411851914081999541606029912954397597611302634345080849956392314039683178469807851648153935028000276826382356222712243025573103498768369492623429539295061910452690469239285935592459021878246042606466052324832140443179363983364034540323111548844798364805090313633765197727662018497738033414684835714810922238622571427116543493047251776642300259683339580303190155651702927509737181995135887226022389028863572458322009148953698954583037612137522921487594427532448226159824816218995860776651447710072899244740631084489244027283405767998695263648878767101362015484498788277792909590156343610313256755092275776316943056157072656169342408520602413027324572215493677408042861327313969612803735549404864539460009906533979636021576336582121508375215955264058408170577708246359347542233538278330959534162439136020783957344105546436085998475245435070406803062550484607689073712236085361239796922796561933200696920041795296533141068890711726921464530548506334225262504531027490330694068217556617726520066368205412642349845614272373070638809364459043860399666026490089620911392044118236671043108809616117046566175719181502446406299176268159111978532223267203359414971553445930606547191281419137827648250881402759381421936181065615291496994560363287895525125879976496629011313666951431180516761769335597342821117349567869851545137156590059902427301047953864296360239766347356659003143597681267498287429488808258029013516378174762610085144852378154410631057988705431232372286051488828466810188568054658440679917165588786365357017620627084107082057953437600336283050799742214246291714179976540043662075680242317805081465402543872787297188947398179120583274292566104634911904975305317047800603932589963752232234074925628318647256393127297128447494147929399691343025499881718531176205966426553361790590749197312316443092713419236635634179903318506577948962629805649833893872919004559909127371491025342240214328611106203568004717794196540889350891219797936471046980012231321960772605402146424699808451161945138665320744213937868280217594262710614387088246788995919727514532138960658752816855148930251665463763904661666651467712268176189387014272910699230368996818192007101902145375582736738868781852258049164324547636386585742982733592029674082468183424553162108609130788338458499754796335970178844253689243404166159699949993531961065265377410411419526322093639270577072336590216399612417737676474031353765814468607111291082132990177599687701389899811260538679853758979484864102646657044543250144036361659372465144955973826233432273452264935486969559293365744414969719003757849398876652305860187652196694887015666192510745234464669018336699120517235448394098046848685450208201319020985911209752579241795971325421790931094983948259592913825826002178142906148921057556244120338092464718418788693541385365291721543483161181699587909464426753285853702127303041581690661063320683551753638638626200314647732740978679373999884216268035226084143677916773746902507481972356527155982610885411128800860939454948746776352189746744700243718419695555666723665770154324004190797231021372910515440995953639304355155175622963707949715009411279954324356723312573095425362136095443458551182515118086206126086013832799807668053075106095034026407507794937198685579173648317396178166581266806903049433343499564028750506326521676362890421465515031539382142200942760880529130777787853990394156582058203254118674739803424752275830489915309463911377422124295912562292948038060978562309450361642349020839694870652972725700329735375173765938917016103671975866842078413675779180705402064656976048041738154469652626345397451539481316622698896617156097552146211582754890126263663950537380386079256792752299924453206334702291818046444805182666778707296869478175017994477471868025240462346297330295392458383350625657105528014625613848574553028715637968660666037054412556719016531127255167439194417474993921341377235157367767370388702129840167176860017483252083724687096118855938636693155812685954061519370893006330528255987466782981237465202528968606563858558182287373505728418577112065459655718460044051829558072901383373812476528266623449834529022751183056857253059130387844551847059020478087456670576187115753341475600912612121029354293398620554720973208575089993919393703049320315499807239923506812500520209817476520134950143018100978697222318597745930515771022238037670704863311820859057290083585299487239869520417141581090591200329509097791910883036771903625985191839355582919464904702740820022782728566964772070859101231847747265616078800607476851351631772829197139393889200852002723887515032897979456526863266083654238565059303308144915671605363234289018245805575488562298772631646164614908562694039254348678054525201447624335955900256555002868768462427280757103079924444740191207315330358678884126751303763097808220292405952802538209166379753539199940070866593968424402422476046265443307902845100366577350191808831780703242375222624868253090361093617420175010092591487984558034173002587692448167294909326705085096269457125374877096829994028369673494675504143184978553418014574185588514620074988281124025518366741630100033892266015260986384127120793216854317574644514264882293292797138711005066123551013469870927356484046450413682738062560670853190188733683402706292746435731868071225446016393542558661548863525767296204824341367305824008030839148446956093881915091240333285562765621444315736721148976966724124796584467565926903139255542508772370848918712468196742485083046556864526225392073636248481908265383414136922635916840127793922476473910339162275201866657838135652416242650076042295510130287768832978520590403709594814014938734534809018705117068413321368871098897313970782500899963890138881304608957900478208332253737697585460994032403689815212052898256761364420388495650594823339790345880681341298881517987064167116148280325668775273687078465313831622365806321997573122004851009224611737826765069421242440041897668238709049880460379422288006874755921845350900342069926056490153561520220812059670861363279329123401939763416060426339459886496762092449480015662798170287571737667274764041739338089691592167128105930179426387060413839841076268730994635191094521826829487823210446186221566590804138665287151628105810714830054762494753680064508903860683729674577079347801889569127490570150574678752279991404527822269977628004492155919797191400520853661574657076040619356473164641484782977648225302048507298760998897637360420744064115155572527183443096882544266105563773718420266840944990108227128246727574009636366155075273405327866155528940446737819752303416016920614198012144610454956649688607813250241891172410960820219381941819490127006688985169493825796880732533941273593075087214230130109779043654917535990361065830635401725224664029245162203820401816987437114866738877329022692636441456161265795754676213990336803812974930190943541760269791459158699837531675390006968636152961688560092820747002546104853709658245777800267420759466224047062468661926756564553891501483334787479892574699774336367061691568064959967722674135692660625332149699715619910120690569330619101925024618326955666624234910770989901697896520115153942836764951885249278476871554714590210657092764354356485332909452753373233128853071240021908756443577026255309812119884293664080849682807079390958548511349410736041052991289188250990468203723978407375595545962536635638725016129005539363316583386377665774132014210307222792185524332189964528213068790282009126091572823921408483525336811115508475592459760315162133882245269132657532972430627615134341697990248394755710606042382991857757807671494270850113242393765549234428310566941518748515683226767926346425449741450120251357774666017658073989993102921134273598252433414013681723983708558260126835726920524851985801177925240206258923810999840103856290420303163635277159039347403043329593366531468393277473540066323131381034371828603040425148885728032937737806459255985950264741072959707764208914722306227603362242533547699388083440551942335926712036466103437691257415369738552272715690300090690453097966138023074480935431193928108930361549825936927929604001632860831699392157017638394672751146267801664805291537083429200853950961890946859188521221879293456237810690857435430162165457149949533688395500142511729876655869666258049620189290584501427911348852704635837108302625786015120495584868227930765899197091656833885638326483024518581161732022686676354043688914393053809173558820876980492629778502281275034661243819729524262815035482681450019304716076835341576910285687390186901796330427655916518983974201092396086674008059337524985157642498739315067262135050403547907786597809746008515589560126101847275655741275191892858656581722036820123699644155023912290704068328429932109583751691265777637098571524216995747014956936515453533595014336577338196076994818544743687866734256149787732415273321664335139077269465817265852787341726410883394975208218616473374851790734108974071763118005796275470214672808880941004494602534647595009143379931325567178308709625707511500495926635433459085577580686070206148331770509695919734444019143336909511715057855559941557119557161869400426912279084740290586145679477953523254430035518383033877584447796675791480466510497758107075562902851832299836786489284208799130464330801003992725441465656461324901844978855918225030556309220854999326425954095818055935384638718089095129118741187621216152441596598181321366458782968939365594861443979093495763522912226753311945509979733681434530613188641081269843515922828700286246171819364164303018715484378612206655157542641126605525188063801786044994938940646083475563616203556256396137265328070844834644843283514777214485678312710443593977752470585297309517737332212319173632534344910662911559106877715320455491914377909393089046175345025000745948669094562763489131635576877390106373023624692035233568755342875537478314687863592848605310842289655814648047034451438610625702569057311388024398148845233618403104135492738886774047025390748099816406041071086121612771735558983906025729123855407700909252852664354073422472630309459094159988310462665625862635684040780667970795710872173187257310833466702218750864739199174947306667266645201136998890041170234206310715326436441143351310857603100599677330330556054564681837183039975494422562990699237911639225044225351657615531686409354528643700035028532511966432949299443456612153984578755561368582660759950433426587034114363006959167147752727450150259855779207749692988785889927319088956033458238532360803988474057642968061609186713409540608134340031206489499065830597071064215343539735956575786904781594492245173965222422867062652563960229130899185071127953370452425879657936150195708478765275919534330207756762692519683535827374963918377073994671201819290119547744216782642468219238622816806568199904865762656491695233666681108373326299524530335713501533846302188238438863874045541360556568862610513924501614920187204770313833751944230079642266796363825378529160514365994782905211722344995615459326557601383080982540713026492845970106314037781464893423304591111924502122013150334763084581437978792880376905574948977088163061842591923618587927543856856913660516941742139339618657229995081799348251939370957535555879780350528530512976133769193900787590278537645802697318171574373012361900287885778316152721325852438775288615691673860159487907509112466287287501543432074688862242919152212614364771742277863914600042180323075606037402658278711900733713854889452767236580698226257611637070424106311340143522683247629730834465375006639435813742315570463439819363529411592832180529879693632871513082233513336086835929859282427237400942343500650987950830277279962181592437124812846191182655706864266440917366636687431517174647244081663978130326069010866276518619586347081828969290624122514509417913944520816008805803410340938316506751811993140394775681894478501695568417827700409591334383723673363112562486753288325015237060523731185375786571337357679949942969788486924514105093418613588949050727552205669268073190471471682882460364689152567985545878852799178333511048207728975464026785191606088633179543338474383150809066862838546386768243343916996972271377452762658786363355127884726571704143906227906475970725046398686225787916103448882234134987756491928671419110080050192614560644977974640440702024870908827380754720003171345880747446995359654503201592289862957116781537238415233953315051243077759229869098462233130949450730488392911701822461167564231372108529694435849984937201177060566678792709643395440310115805625337845892647264859136942619084527934061264206297189459467077045691586235819129582915003868919651227516959776646949802888246895887972203314152189327463035298476448894256159681338174362276889049615034662683312220562455180821232664937216482241141651890306548394630939267585112357954999531805907332179651707893438587017655726193459291670609859748151734806143335992032546802088446164211675177311770342935097505209868872532740619799205755289878642414223763738155920293185683534880179844218394754572530405119958549139573602190738157504176598261902770133203469132038432899122303356617021962463455795967562540027913672673791233585402065803514941561011046179925993338306106242900946854147033898072520512770410771266541175742109864303937487512404496660383716875629001378527370547837650989432245071065470706533154534233917805976844072506193555551213952345266946435027409526395857857990700336815374915178389605519803843496404890174234561169246778028288718159792876543012028831815312022261056094702197980082770934427942686484020516937026168710108560032706915856529274924135686133855967157782537638108930931370225366943805645687183468722942120511953603963225662364476599172607731885396328181256079083163363015618483644986279505052178256298375052253967790213230245052699968034725786256007736864363085759832300795434993256640648510699983938169840245815385658834103549595290991209651677171619591749668515436326122819513247567327234448633806106961168631294548651109626783616921294111732651504508200735393628374144700519733985478174444384557610496129300232083727805278030487605407483705238704236383375420528975062233658174695760984305446792446018480432788077392532487116872053791174261317343137770796822560296421401440658464662412413737189126902782763076668242454597591603510325247954979481108757042069352659592121618867610172676263729174363755503516693295519022019787050849092307502383248055297815970422659679160997700356062547300156281345689902822005572865798748264460153247369070404445161559815358526672604022157816973988324033685487646871843601148839889286649942733510703622651357691991592934535131130949730945187540294581209786158697437625525573998687285271731391495990097491365716163126696178876565547349782642381882879476035969539376747425382398569389190575729604497754920593820164447048217492117307906603153856006825869618343659191283774333923898394265393570330278319387374193744729540323284904311896014341745052147858651476190755448895518629024489382201716892450928850344752356684561842701184338871571463474013524748073054521293525039868152246409203460902442901325454220476379477449856818014204411291063952691492855245724921975916547304068624454701568183433172027130203233173165645701450515416601852732760692722236835245376458899566521869768196538395251633429039017334940761599758420783213611136239489079655264932002403277133798867140207030678208780975906939066383427799849744265021667685958856005351317052782473032492990867835247278493535266688973500446208876608139142730520311942157889654687632009401468138419792393246711755633049697287230607692943390202974200633618050713472586147157361364569413320124627466841219676791685249171709312038932436162830526970999593702607320619429797539360082615026187016192574346452691443092141112325585896115662949200250169176738389966752222523882378730716673780887530841996841004581868098524397359719729242826251853463975295477728737557832692738186024499311271575365353918033820411037840076377424033962585887107150581721094454735982991517793467351488335946205086635740913653647054895934193624602014459157449398466950354624486635230894504055998480600661692297234002226693676533414861567553562087143318671088177529842736622340338329400700078721032805286767360833438369697554390257352270585175704354970805578258609623676306896004680948217396789838273763146814166620322082129214251431733483653864236409830082419279333426813796555522410099875555391912290111341420105371841120764818689401489538947628321583294272263475812910803599259180508829242283395850667647970773743389451176767111301107396992813020325836969883214622348370402790179438152451440114097175081484809202604483966029925648510832339409219009548688883685560691548122770178630657116377553050271922547814112693443999988133083001217018355511852363828640587147717790865225469807835073148068192145810702403236864680242198778588058377853708836857460063813547623409334043705610617404394624431371508296533966646591582215082825699816829679345111466084603374556887988034137493814154769215301068611324591829644098645590567776406595036076261055840965337195427932592310176836135837279948242700303981598776456925801439514487087744321574873974012354323259821262245696448145852169582867550165757167194463717218376698694427832988114487325178709877580504274683758054393266925606279681357541553369983819356789176892362469055093793710557948774084520367928352941560706962861572919618513240332051667734682114370305632100370265270162516899293784057051596799382359578694955927208817673755798252413693988435706940027487752064955155169123838848694415917161195481825830104245769054900695702784114540592114659362662030410321324303785623550443396831210263657113573029645734803264577203517744939471844658109325292616237471214744228297719638332403356912456131314326241398989978575520603915005914379648148337404554972587820883292320104331052303195937289435886785866836332458803555115571676131562194495077260833989624200053912445610099189503640495958429967966938737569324712201593999949123591551272102613833369705504366218625653581673138582746393399287895191560244308727624650386913928640983160912707687787282815211011068840857715293855134536596581008229124890299950457383484571539048922137536819072442953364722032676709094942291158706880112706383750201667801819271004301467554061159944315298746128054872414782999984301490030254444422005176177877769289572838527723921430887397180817222262222308678407733306903671376070459165515844218553825004864244785767013463027721181019832038611100838147299854326086541935670727663896215391516555256328865010633734218030372361545216322321347745973142861567836843482489431133265438189681556911539354472368539042671994350351978436255796048971533159136664291157223084632561152035544600248817722771911292127097071788861293320297889577281804493136460423495223563344362663248129568258418600200489705535911944094889568490322942866704874240108544246131433696454556776131049916293713361961745360178131562271118673569230840247452881539027101350794110066026478222888565831306107538774802655054266239835977074028452675350163132199589166660913856774235916871164015236044264902174356139491433559966552402944091839918557493512829823240917526999469771800382914892545738172092362030352309418074709927173548743941034852330538703545111093601845092464289934207540588058616921897019556794606311532911527983179592920681561340728443254029980011018868838770774126559612587867887694771724108459467535368277609546398657505239199172712431192602335942943664708645848994970623990773666596687770651220142935165932924671999599477097638056349054952359097378547286318885624642490267832020747125579309366307109738661621022939455586861841868640448699665650683167947023920880299513762566001085046473237913856670746381382331872203790604633640876768015328742830589230731704290128064954997950999654447930024548524377128871989457071405169779585927745127822301199163719129730363225151742855397115558389808627523259628222484987088583748658594087356787696455136467814087200607285500440194973722932727556687726414974332749276477410488626400133496957491277169285606752113770381381633900022233277486155864357727501203803973825367796998312584483098096324301200258800464432953679417183365173381881703843316380439938635354844178194151139897716942204157383968202670213171409886537450327529117881935677248170071394586686069444365950570535335357386755524441385375666322926541191835910418625768682565060241542480969162658992492061385774401243392198326614702180578959984845697820852735603636790464005857959404456102510001725186244290853084554856158207570235182491651795118528284955366684883449393476891130007298037512764901611606563575703899323179703704960923542423468483927991296548454896052309190628996560299887551372362234312339121259844221111681881203248259492324579507815124068969230665526375655338449989742781072160827501313469429999233319917946824713314451060516343449357006763167760144227070023908666585652372966996493752557198286500634551624407452338856587875303046281658154556997879018212315277605829536974543367373371324903142761489936493717236399831683449520407117434405935945299125642744758956692525314653872316604538439048769109940347491875323749858268511965813675285995290779895273174561045259011052927151147026266149678774731977748388364072460003215294613239430454214417859739440367700334917991559508742086925096574467860719327642752962972189926159655876088947468310646425232266842856016987764620048280338682268636201355416624247502868872845525122013085267119098378176308699082024286237268680632727451975325130630607590147183784331317714928733569029523759195788314184443337038873022291192313340676448639044135743416109580755977844397484725827600976496601948627725854913996933622060717543044413765792427640093696523203068864441428931205625800266954316172407028570792201342589107676994356732606886199410804328574331945434848871908425372136021881268353023265686265353549143704950807776547897434568800998263743991261289429212136638246450804077766451986460132163882963727604245949741709299487941273225418716445837958954979291194600851571096036933099603337366086233287236066111770343806090246767307025794516056298018504630884315335342140729380843313268827543425531475577401880379661499998441055557332174727583733615816054749045061475938557432210262289444915516106526544331986053634530831812028252038138643444072020239972040136015564975162482412389857966264415080457066305065475052418790803505603608356489538755095871924099510585387899281314761616070848381941851129374339166305681464453670369207795320892406478218956457727841905521218798542793273144770998545531641195091422945817658378933835903352927533510285389075564312623552442661795066860691963008848268672152668103081323106997275822375833417188947056602358354181495155607316690178548889434035259705990398763663050325696909853010842012265471101992947756601944425320248026038930205223795294082893451930994159382301116465806216018411768318356807359147283469450326321707197194506352351917236548247673962569864412459346972445936057869400361319388099511205080896799121225371284832856462633645634264904014108443544415799053975460776660190685636816676988918984885247029617500927722107882124916666163286402419423985181578257066850713241145810744705652687121051020177033963381545299709264108133219528952442972002293136099213631855027331687140654290309967027276484954174903554653329502957019549908872698363187534440214265217272764339297641895582523995596890117847443022317963813674347116009310369741993158406685989344369200240165238840381609672717011881915419244584511487894205604064517882390568176595635446070515816954625387209345347974165419142686864507071125903551070018172134903472941963417335952955945089734447424642367887695896728771244391956406765934079282297056730093032464941468353033981850273211667139474337116785862351428974632274161939158786992085336401248001046508509371424884814289288253875824515034040872219576898905989018046956107611909157819092743397670440085099991703471605137622318947159168076630554329585254552238964632549535920747250760449103715489155654417285374131318875999996537699531242707603640458490187660931677681824764495541138688807571202951451035700272775791026365902829911867718550712510566824742793942970352702559405739443573875684487062889058095211619484834215807523938529914354310179704347304067551004719871670309455174654111183054020492343029985115282989502293060788649984810218634323827902559620692788378813546114097237308640490890360763578299886116588733993653178749817295130372205927122672383435192646213305710651320010966613670793292488899144782116766003934733022248623458419711733484275251654070804342661502430105804696596866109692998875170105170575709863527356561484409110530781806806069884473430299937732753175390810518885778198083848355840276809831248882948093305828427922518525489614052421002132594635109092179462109245522079098379170005562224816414123711380022937691127713483953565062677923210946497709146719269885487857030051513710651806826723151574091133937710373057834754213281494318990590331846365133260320222099843359886821450409822348817911582018625900500267701163027696639581156806701293721924740856012211713637554254785473183133531724830599030137813477329548945162976942750386311984128925822706370581561518957759385764794852488129278812626099821941381999843317245148621939791596167843492504772787068500029355302635370221570648595679608746503224047239312950772708333107495503661514088755314957794089072048336328988168650794790742823187584105954328300546831227043364374825929802130722531624327913456290491719101651183323810793751974956469971203713760590175851212778492421395985640970816444331875717208498744349803572133219929013416651016725091053295305880659977500958381571668208641105233111102571479356823824920158170272154977220902252247864964234999330329932154336566841016212427548170691921463191897582896594869181564786730469952950962870252235949581854322718220574477000112900316059342398653963037458969007047370832411686644864221661133355942503224735903216788032548157586299082574259274483278964024236083592520528751711584393285841400417213679248009071803886944506920092190476117357584507585002433554905961761639493753118878502719932236398251944632446586320109015150253673319186064318081016365609190259150707390267730628316487356614416663256707727435936691028195565164836782397263054864892743490764418856982436204842403246857324639113761634487446091919947616429939007978819031342554008097192198305352083129164610442071309881856454177444176758755472248579710332596982915593323962243334812197505008415531944593775658948871523070735696204107153596000137436915077809076712483009353473794741712075116667030190940909674819317760703438276852113205398263108818907174271739697898646445516706796253968922696095629434744278001755540183687399313672238910852966441118050305182482538841485358676620877180466171752683927750152978246045429986158127232188304734399176967104593626457323451873170686658853930943488572138717924679119680471480514151864257662159021335482614092551416210617311205971871719986588360516787893225400537608518571414533567451641845767527751378327981825449789877086535894536957574247406527901793903318446907930154878858723296968042641997328054473006364440739419536695209288088036133085783927150762147352996586773833342205815963630850101492837902670772898317992585728401875532771256415001930854799988192882778241551933589791387085309640245372421518985443045460394651143610675481310725152518212785781952975864355458705451714824836826782099300556662845964108154796662449338571957119040167708891488688368206446993916807008073489176355106378544277989640141943644383771577881303169087777840530727627123301878237147857139484673462958336499883126322045103570516697501952388603635845175449494314244172288142472265546754561313064262114976901550000448859195700243128501766210268018272057862493251152864687762050828068075001206272455105363118702488534107127431419525518417069528320719534490552348247635247089638979365644160609403473734210010274900401661400477728901397997310975667125688454564207990988320149613061824325887182318983386109054088242626832636863344128135894617003594632864158347476255129608944947000246919476928734079105032350219461188561443978336112999950421427328259518075561651839571621223399412806042933934702943033496130641436296924006939895819416170544206832076851464336779306069037695202889083644508308750461809566102169336480462460509183332448526543803537107752811461882631233173693397477956498457321806675159102439516180401763281418777051858432891252092972250804369768425268638160995534825497140465346395301841503301367853384827361804131787918074379673435816070487771306210039807539593339935477735429887531366384242925557163788853596608664079208474026152736073250061816134843297680990817021362865323065645913818946467456684063473588052629949235556888605713599646904049233592178882512834471207754259690048787109096352629495439995980673164109649903158301112350453240521060493749121761730055993887316250671242580304648149304574495842259157482861203644689188068634051605941991552429063462987035076823296970130381342491421656765824014403377777707395113062007939211536652178585703694583581796053139631377227235157045382881182366039574859966347628814607034393700956025624442892922615952042095507074847008372633622542154249280551314208683679340380459994393116687367629513306397416093611250146520351960426534530732710077657876791192602630407477375002213764210445933545248817022856378960303728104471065109360681719675022100196393754508952771078225163200418552001742883401428230192516801920419855320231907519446625975590547225331788089916266612153297698467733817025621806079473896941239575577220636693623705905082645841809380615429767651214195348811309375135270466926209415850054530446536841903264745860175201861557640860197690436012399946357189055245286425394244142425363832676318446541109190074584121608458477151099816099408343073394374315695144381044821283502389540789181744347262671078163435921595819165073345174807378179774445119878308562063506664649453745593318823741568697495838133435846658456647107351154075085700653815008343562653034365569156675640302006150797661612480036132849586535117151455801525463889832432530858640742641129577124881950722110859510930052612647132533446349086385048806747665014970704392443296740082081764324094414066110045671921174422646821479949543441910134442275661616748547981917789120641667132812241046291352289957338205279825956668833757369792929414412730834916894143244917105603523893516684325083551825637133254167938000951760049447644706823749121233419953975122244467578287319710707853903640320036689160472780527767236955740220856037142797201381971414240519638900675483343895250152086267972600086010538692324286495150368682276957400347054298634098313280574379174949747082353512356984097900283952804935076936449004465405927140637284698093424236969461609735657517007115718601110831830244366107964471219837805296967485545080903368315309607778510533848625028036300585654052993820516955855412248914889892400811078292005069279443169459177212109793135798174773298815858082570615934564545256024605987736839924814548165956804890168878926275898524579136209904452407329065606100317334177095486976535140808504826920903187060559706157320905230934849779980333571132708142554479136362097529620955620599132744746926232729022229417990923720773454615758873155597062014526172387845442117958155069900835717691462844187797394430864176891049176816990973460001503757565728111514524990681867312451813538147046233439950764755915631838424686943513804280808973906887503224121518434834732640533887277832007679548473276326101455296125765602811064063011616664196799567990666730277723352879823578406917037313387316943246221304115913170708506498174234940484147058515336982456108884730984520007352068027447278134139226021235511074341149366369712423656089895789220222854781455288996985324017726499389535268152459600924542031233992566189471690389990544424948401754899495289138485018383715646346961051718219875923670070820589460217426623265684540887631568035615164980199588964815335013573581827541554768857066492048093235983021447143860822296510447576759659031142595583264552431587072283722251347253779938234861237301121750979654999815530399488072081826497822985908472820166715111956709816637587987976806694818785059052625914144913190910112768309934141760990665599659209980086938257314192929519227971369832349776508051983391397389211261179665558534962753372233934983822315630333308732097708761245957083176000325662524165700659348954452788040261762773923248325992682090340251024961928084568406620906931393540229381853237875310920922281274410779682357409463899740772184496157247010223604954934293818406186810710971012149662466515315907966833083012109036884897866137116678848067255429062831775089334916742890504370887186060148417248596641850435779244939780623306253148072358099731133854893056463286090946539884115446199596155606978898974284194534042077097545958234259181499988660705228349452843072733183974340403126421928392902249652675881939491604440187180042512715250245233384533909577705771761009398176262193676561053098463840803672534942875229088516336836637126859599994799983496994948250626464732096255957424805795009321046400537774136309894696691344617645606292832006322909757534468200530040166209894583037609028343165560196082344238704397212574721854362832825039534833273133180824340025296433514449288482237149183717533493007472098536485273224802688751261943221144107876170467607204445404049056575703566749710386424941747571584621167909988282117759774308285176190999403486148849433852036167634144767528545084267468468828661769581018656044690601912738771590618316104573016819746691641128335709849253122619806253027349548217719865592572231179359105058471158216588244626455847133262314553511330587898009502667396814506065670877430305772863844297802904787345230589505395965253728793400691857163461098764659637480852186454517766543471915387123316926535808562572556734407208258762741427038601473023520692745916315742373322664454022980874821966560833681071760879238791190354829623114489987802101478130750391692239362715143598447485745101228347336377754760102523651302510482494987975787131310342936838181071369353940244212010338171125881749562466494666506523993293607606805839899060665166178222134342137303852322581299083202790309021313974762324210859700693216994812782548139347563526621718660479939973201981547663600413859088262429747374310979340832474230480558270951798392576369653268168795233409916210327936596349933162765418114096834070051435430104395029848038395433073396614875691167978732665991249161204477387182957428841188430612967267932448451071670121802879563777284025706629827179182399219452449493825896850343579597300505258242470034594089404741253552916169481879626096282138947250064495736211377202435305269985184397842961992853638289937490690709375364052999047487386099277583234317857958244858821069205591542403171033594239801991301060542575144529086252113122368243014232543818656436688732352047422235696571144763227249343887144952185622210934778872636993063948302920458690407798200631951450987521847176397347236665788255144136422131719107199896085424650105942286185558684992497789510418159005789619027613669181645340607147947615336986780831233891458388938892505216489251297946446156134619667328014867329110847792509938009316270211991636596363049520942643561794355732630631838746892433201277670625087150851175254363313183692242056228520706879970089134482266064837914496534733039720568414866261481950959699366519401963791130914131028733108620142550612773576495219827591701153905572368222679564716981363623980650818518975194942965684199926966343319699489276217672563575207587744308909196844758616433105217751163617913618468838464064424159461983359852114747337306872431944194190229821902519614132470632214235763051786330397421591722040503234189583832775580308519486349138385734218425468089267973721338077152005259011328308237430166365640847787869399039723532567887722527097525039240701725529671444550004587227394038175369893615102389310277107345457902340400282628154156349307872943702589924784208556837945519512461892819341783849113680078451089502615386097310863190799080069529288108559018318971121205982213380063541742702408826376493927086446951283214646337897018613924594359161734300102875979284446248047157073212357298588164365533715604284119933254173158026361491994994319104480449819380324448274717324605909106561081426524011041505278633261273044037175300374602654266512388549336581291139593864467061813140837544908918707210734175146401180733129735217435169975774010250115698190348596761600758349663957321104474363571959744753624870950754985876079449767474533719356189211889058544751810112648316786899586956034226742563779952971925384257791139733999891912900314687891070231985927320261950788681964147658520320955662920443614898338446023874153228468618313327717006097811126397994994552869176281988910154341827213528343110425401901061471852383944101418705467524576852140818389180517275036830991251160301075757952682637930055672113846149813142595691514929010664515456192967211339882791433054351374260957782992347849361648323211170289724675214671540136414430736500075784498322393720757222196224933279944633708550244332886605089141839216135499166189476955913485264675759302705314938893757934286751267546776432025029021558757306944804936816517438198073707354439514161285718136747607470043284024652991348807779470426047456933389639931553460253101631464736022555325453188181025784552348725361584870777111351280094527861450322492405869187880970811405847677251634777682620087932712683191162811188571842031593300931227107644217341166418883586603618861744354242583715192654870574684571006962896337885907813781477378012128485906588672650904849573279231365124896572310161742960282008428817723274939841422738105542031861262438990949763221365911408191997419600480426103959557807381557550107940527249517820821844091541023933833018520422589550180561964590895785224012090771999213803701928255667498346098952392461411149582753103595627359318161716953571154854524636837098714808002331577885512689527683213413973567781469312609252135301998582930641168141698456502447061621393224022402728884544517593723743204898818381931635838113110979177657741263012538526364417120151565559590827615896869051551526510691311422004346991316077913869034242407921263345099578650452652753539406914343030972160952151518333550646995668977324626614894836032494194292468412656418007405181223457227353914454110832474777353450502474679298737656506928886514863679109464542574161320336042850931987045304684245788395592030785370982087904595033279772158369188076233776293702202851307664034026653596804334168019293988043642923525695368663070555818618853832567973124893860030432199930328036164657010889432549910906124672275723932696295789440371632473308024957065135743174420607562961363058693738793317287702771148478811305934060558824658048335777797322934475678262828729657843130246446862341708563113407281396672686655838732738093928661060680730312461738992053149011795855014595735199301085690015279527951436625329318057997601534479214013823252140457210442982682086816509161550209389887564136431867057457305267377190628425952086209313023186829096734666986633099749300081300334550207041935710666123873115306424451030640592252120994482709197016107572786697559925970322330729216342696298501132889713192180613118877294433973405664488810695996846352977926168673343008126399074765101427963196761372240904499955129254430789807998713650831559739277515929102626378385580599557662135731761937489680198446652607373867366091842440478773716893193676938414680940189131587769943857719198970681028952218404334822003480996985208713351034741324812116313810203876910317756052640873566816861065717923830789315774433548603276207915057268489747449532816387690092560130650516992633152695149137938916876483496951192508539057269799447233317608238669464229090619297720733369800741718199884282700928894381124241381338459302131479897502051100560580865921861724297452271686504342535295778651976106687112182576847669663839382466563867803598289204124893958165081590444487188763668842455964849350910919860822121532628005109300315141819368513271844670984812267100623713192322283495917898806039182467905423379195280169972550437641475662604287497093574554612291588783436597345369275582612338404830547902676292503101894655765757676913276771119409812405908298455508642000358101612441516983953229965117858425664821896205440709056121550064021961359956911321038018841655561903059589637614552535922034139512387227487356493173226560039147412176012038422050384502807494958597533668515504405328883101417698936029448707226099362110645558299092508433814349228004015121693679485184762091530821262063541728897293295362036034019665359078939226160276996789783583743556819609899051219924053542288599012614536516268084853255177603490237491126581842037883870148148289356727626168716030042766511773774785641139862926373052804124215847199494461855833043425457290807119166816472749725706363307976404645660581924722144866546818016456974644013890937243205573697853090367555302200798600582332531450758514159598995282936416178642237090261585880337520667179323326779820568030467521914862149057739731307071522949424130182056101686115366713738626829363825243862971208488724955148084544971459993917374866677340100787469173209358513847853199538951870201999018538012823938270135989373513581849520414074924281802690494904711524455840226987974842947819097698389876266678285307523267419678681113550731101837415398779861134130061170608556057276334881336821523891602945219146512450520364727989238994364120802342697546104843503162784431795419559733343797773807343770569613684202912886575889807731914440429489307572250143374638665710162908380727544236041129861868112361382622188571028762762355994423539220867433441537812578061285825304198724415893171855969423486995296703234691599590923441268730866858735348579808264433140078897324279431885297629740847857111036697388997674130450266686262650079269534737973683209800568136785172128689822221077628995312288388113570324664553731972920845572738314968554151067476260687115018380110806593160945688376564366774250186238105380672139742903660314148406613066623105953553025285826694823022221057412386310999443293399932715757213685296337705237506820100506977325602306363935738998636205512873598945730723548251770027303207706782998407547490882648920705758533071515204109432660470347484704328178732362238095861165240216685104837239496478492387172801797927405997451655545515553892043854095420269955770768999799562570456310868744353775929309555186493144610061023382239603987177509572637308727592826732956477319815402064949849717680783528505829959554233189188182494520333048606870325417808152914751850844525067770891574467150855721899668290076461513995039719543344739158963985494657947024771103498590381029190264816380966228339114246667520711340179136459412318375281979989478122673480243378467030509171053899856409428639271576400559687726751402496106249587708950932743545995864371383259753490916391966692269272099618569883090310256163983865173260908484610096909648812206907288473382903940843763664525267242433745612853124464153722912843702711628543775756121358588718009336947434481490080049350199025202748364532591332948788784521879276972515252119072833736093931034799885972539428781350168500474020263430231644403427466244932961664349866587149361116857648428163806320402693238561909439199813073045197442022883128053458939645647250232898755320114356227058036606964064004146319459510647071301501974514872727746662491193750759937969105980615300029429260132570490702464570036352767158283828689441645859678180647130739692406536361514026029305527040681165533668365123603038894240242125621530664228027665377357734535542665101775553570787764659838264034655790610311995942100217134843222141537311588993179915788478037180934651195418163984353731129892446430995644423458521378221824293581393760496700484170755435992133385434400261798809596396036824747615694745293597533957020459305765440999215076197890458355567376635581040458685866186250045775632445941704859087311251415185730972386178526247953726627970633910499530509895739027530291664423268290921460922160950690710198087445028688820751641259528615054021480032923260656766938244077904879273837303838459759061751419830747015374919097750686541261360050903568411749823366046081195567017741277223169646459597009119668166057660723418147899313136789203243789696912082298830197003187161444953934615782608796187472360976906993206876113411478460486645538631240567197418174271332577619864064031386665784297898355959215919536685449552021335431574381646008321675969359937582800908857518820080091501319407482774868482870336135495119839967741286687509865486331899547452607589374451573632177745674780414327700094210977040842289780470747527548397437002442067128686746568922067185409100246119366212950649710784571725198627086125491398864245699264951061055426968836485666623613198410035439313500676485448610712579826942972499191338926077294139377041465564816936748139121130841189581859094943664900685529883593628324825641748268199722241525119969189665115533677652447170623516155878393061169292287200245677816093515255414373539180080367374673582506100487944432291493302168189140853392626963948835810062382536710965247034195480110489891005935658113718390160128267037757374901095500522533508358191720354113609613945713502622675228503063384932692464365431958553712645012792083426731605440870097618243047678981639299011079088101614694542066116363003613672021766444373276568893376410708588743678585672780245413655726873021430546083343121412840164213120402038371709000400681447012165942735926521409697187942025705456024530864791497145799876195721632758739880807131659421369209929973349800780355252475681639343291476691052593186796491861079791103851084810909575505015380549881229645414679803354234013222765782461683983924835352489220997305263083751390268033794509474739145718590108582756479942108091458552655692178251161176655931265111703040320309633998664811129884372075367247783941253395578272244313544830453908885331756229607583806443518084011356808409415728343857477896118520781450752619408169761458203659309617889352162656312010257542797785758916654468888587459093057328498952472161233315739061104892604473818831439958774231109310525468432578112276719362483656815874513951852089003586338676121458276234764208842088149519633171134747426652218005928181462263048474781337783240319232383931987097446302795303147330736852589106580720617734296606039421952556122253850350939053824639761243638158245229118110920207971998160911066375154861685785671711174028845191705581429288452324553918043899316270111641606228595506363141553541176666088099363223026827796625173678044194131601699061611805360761994104469061955630180799085930906576574575079859782800363808591468081885678118771288087683005111216179408272130243213775050972153181225277788944582899314510611537271894118902917421688211543750083451623392896778941012377453418056695425256773482366562753725036067093882276160963240250580490286402197406386088508268797489114742715739217025729369358770540864544469451075290396723896557672318109694834203861146012978853350557334032074932551688494493339118348494690157030735441556909093491096188305541120107029242611769093580266604829817737898294379432774347313325807527939729910529447083408109406379783349261670467841049624280530672705523668438385864862406967386652671829082879395945493217787469905037662471803836173242343701291611862476958030359771333480333449117782971828490552207730282472284493477588689179576683404510066656686465289092500932354677587481058029703937149973607843362657341911899369911935957983041175374731179954378736355747067673124515985953356846129752516905028847589984900386224923651670144697561902684257355979145630159578467595665684317737924278664098699220941281622832903963660348275820225502988635383876326696421493895765221288033565838304510590887158477463459725274539382628139906500048033094897905104737581174449077772740754567624236818565675024077245746019724471564301700471868541825912583045249444695836921055740958107713430883552062131301882734307646382632097873927788476185814876047371026698215319390589799313356386384156212732589640445488588528899651108101130991827480137720494478203627876644477776750547243780540819547583526708175302611943691729953446913230403489829055991414387824177357968173709860718803818748228957862315584618474536978839921629939857362390343913256401210531034938208873040042220452518244349590023759906485880218691025495823224485934782652756088019998365250409173883216204761198982180950336573177853128523167950908226683070064151123212642988294861851843625497909144207246552596657835007957896218923731984997227883251100130737857248650262387537491015689066857096555951316604121327894660714049095056612332157191938315740013424556898238816147907137043618635448617447612718884753483987732368051409806579136072585339458199337529028229489787360465318488370595600675251748495002904148663628778148372918105755105515411718972556568517865062563260379554170730544669685328162350752734976629315636413373745759366112430294419976165778557697912716899873818468265599282220245847692693336367934268683637893196127480455044816253620669731854857210559882619960798439573264951545968644916941048449552743248684506826530582146122418556483170942945632427143597618656591151130694048784810970288106181151513058741964557346291699367824236559386380026966919720199486818786251238640214742496678039769305200630917652990404707453565220451105277969084774548545047685796614694376648873167648099528333016275421352050594927787781672953941400563793126714283692488752866344422897357639174144973845700618011268308291350329912245117540442769630296122462095339837754129174455572520119301464327673472994195070189362793989540769466493182531824799308869113239543397608152912132446090312039292721614457183190681226221842534906341889944493451839953423826558323256044734972050198646010507474373730897576848894523265639291920915098966467947564395143627682318796821822857777501019752585960132231612254181250951896618999486552253587151970396080850827370940683614563293961324959792134963606104121742547355290675012370694317723721428942593856458204780994419589144853308501952903071397257562464512281658024613189168589150193234045001767971871910281664978955814588442186173640060568949876283000860398250709913107213413396254552864594547647531915222548635556031335885981422295258662032650717537112799285852197281795350268694014794122604365185550302451543226510428622700426606957126981225149689248070234555817010723799033585642749847845952216477997543370766780757747619535713414366344364077395316175471885794310646138142961915880696816861909092842001539879156448085965660378296292918846976877935775260062124272399461968250569028241230664311454393653822856970818976008301599966919821576664900932054544374362021110255251021211572261547955388867060332061907785794522426281657904089633755278160722810896391331686133098151554446003974680429379880863890729077206032529706208682240401564582858458882582719700032613248874527430633910530794651588766673293743603837848231250038702695955206632022418890950589464473609305776604364094032751546879230929110097191662192725594067498779320226220242369913696195045511915802601353593840544205046058588604057209022512809806254649321936122658672731087826774290905581347311348460548560661728694732739361539891027988909736969917758373707663143115049989814815285983012752745152491396706968597080095487581081384506379555450972775350788159664285702691842803896992763255475405896220159966561863962094243540488546150337337583362497527448043337538497527986932103754397967462341064297997435191234227980177648853477410544151698173092839927297025634542755285538635180426384706460293816685347122807892388350450532400969245207472805628947620135557725666539623883658054953001368402136184235479206161188420634121492310855824801470267489026527548649015656695415444139782786554321869259617387387813749693857143959493979835891009612634537972154814543466148575322704779920126457093792288246213839119968879946100469730873744087383916600713537344982180307498898919042654403372244028162331208473535113729502972893407318334617611333145119902791680567105346551743073102754985718168769233418811295608516889099180291457276248980398626125810063332266298237823053286859010705070357557487104588699553140700424921178929801616983210210744144931356916002813771018405210933553834247906167724494232154605638630149613840989490424084636480694364452721353714991202199965417735415611169599888738373532314574967324399982550712854416698319627948068318923796539327819574542109950920536645004147880212459192791842391158654510948689035596342765671988669488267651681508650926215849400037730812823209786669614540772056058033943732762173505327263624604499956929095785574630013118161008844767826184364473302236825205262783599620346046109777760135110175656772877828661836819137208594280481085496436413876938868673345157764440206747698261112625439555826827774113917134645839938634786917776050001510805786969125636424412897567371432854422902053550878701033810100370225879694441444622089794145225619953135383420289640657353659841023494173541716102963124580380371603452672549085891647031183243137561327472686278298008441535177816663921045169451909329611158153136650175741189986507148618269171742753720595772531788483083430630808244821362701399186705176311028355214342084493081551330380540810264159577360865462712982396409457406470989815649104214688645846531832726935953099907815353037857294693061798600846059819778397184260439061436531546910829500670267034744343604459543850035716261851410570588686970220697012950800414575782274995594291810947120557084550672043116124659102892443821984703375808882999567862017205756761841142316025502440535700029111446697266511236970708999810638229521254910479901914190388899197168845458418666635515455826127317872643832479729076840320515775472864754683273497159112032573095040319058570810419744029801162832273944348931552898851391390134639516156119630064492555985316663491409526553317186594162409352718176473338676651466936111402402541040033047974957823501457612038583981069928227993409954473188576253909812893958171957105143175419289311731196622677400486204035932658528469441730105313732046290289963278006780700758335656111475265340575858875002356614363370178890708410659768743549064207792961136068509680947169188100238453781677266093678614906244910420523853386888901003150684452143454320345231380749097064931469311751455770103739199723349145899196174735069711655741489439066715066112039607813478096238148272535157531378922023331156529700999856960247448965437703913093463887782631223856063441625068052582161199370520633214672755880529820081626653531029330060669677408869843674104181677091435800747721108919188789560597909639538845663783770385703988623168971014446528056064699860956764977515639420129665355081438401966492152513638528971920483427504870166593224952458439677177036321041029826626859178785263843718697217442214367764818412299803312019743266907411125163596188558178292265006954284007516718282291211327940694186440808689266152297736927558297427000480408755928052622161280343121244426513336614337130782841552063452480985688952065638535863589767022500746503497767468227661855027301950588932660900295386828255378557776405189201732760906293023679864724200137369858166112283891393614345195466695297312091086380309925653566678750154967465067826534882504077028138699806936577395617312443627645709044025090357688144880562091717270795259629889032614117841666678119130307572626539214271588854279141027559225108080084562925278434419916397237563113306694490617730568911499670105101831904534695443195779391689570923200268520037590868545163088276739209589896679464006491096776832386458734271292970603962087657138317330940826927839073027527203836100881986746445300447966075730534818987951205877590700780135629804309221201301150532869616112540448634842049486508470944897205957132026012947592963067339200086826866577125800138133363518010474777539623553844712846687992197458308457406150953988268052801451165862847303660777616002301409624613164774315276044715850928481859094318988134580491508907732861691149616572886498830051023330496020686662349286130982509574370007857257386626180430587673732123320522244581551257793948305704610877524625968901977495096511574315073957936371518839198579243323207725083430988783470635749828946395170567806329924047272365763052286580544491087783718862553879030958040860842507986784024633715971849339667485339923812639292792010222981650380282794178041712009926554633410637223180686786620516442357236924459169069454185339537300133951714549741307694348432127524144760900242127488108074164667105155200703838669327255799933821783500366431489368874245069089590029534487116674445098823830592707091225354162642759663732795701214334893623882083726491741660115633669492160560691806180289517512337921210541940576229196366861688360923534690445769621920330212505747558480513066479999249619806444231632736285941024153250627243996501441041609524460845688420966288653963154577051023439775815304861418678914150529066257999026565916967027992009082803535302904846055368520755523576490870555983958414133799553902440080369639131259648012013044828031564804842945233164016742523556654218421277415078512854179854587902833092784045000742083177377164083179526658339110622056719091014225368932162224903942432135663142360817672685205533520281251033287904056138890553662217757751801791301751670146575064599028861818619651487854873118159417435060554608329541168680612827684770682607153094190904607965009048085699611986202569182062060493582247264365289776273162185625828985739571569652560720793651769441283075161955223800215340410468794384160393147146961461622192511718639865925702732545129587142125464791568985938059087244297190335534592324007858836805139948421628378330498980704581110748480216597679733825577923640377615003814989748482637408550445255151092942248680739127149216403415596897379836014823524850496920271611013064315748606444146123641645651575493633275994172419906420660486470730681834266925649710818657589134632989898360215309759320957669237856388276334565666176635193127465798789073693672623061778962480406279277189935110988769869431169834747087106993296064766424708912472024260671600343409769163084119006247450422514880406078946921244621135724618102609975459536913766050098520353893562985048022802513712486180978428883036713053851361625248569387649692828423182462047861641930459444707352242858929796093965133855282991112403864018030666763786908163591274585074138045637403894851483454882948949117725862343084659539669220387096119978080035835076603534407340843481149167514839724927017043053115473422345349316534012696881417115500413179364337968668289271203622175723922462499152221184319263617337571648035752391313564188255503329302065138813646929463485517179762366069320190496379980418966323343761779156405320181185912410053319223290980970985681697367329145333346466554296448739727310004174907944900912362949910072438525068209701494784232035024178249943071259211600387526448482625491379104443479276452232565744429522248996661583993488649275965541053140539636450603192785930963345256613971019857928497226008165538260514325610125299259386872697669413257347837505642667607073279483387187670066176921777157415212114307976809226725645467138414899732175649100924528409764398546560812116282407467033933546360451027221394904512921465687175836531088375183388264397244369976042337903577821071371310171839287594781870258952875611024455389077775826309352038951894177064535140201735234180737389656431547724477909895521101623420104915031961777504549904309612647724805647431408319868348468994514020723101943027679539382640759180417154008111185864444405118207444115346729988505783628261874528774514284969379143137017719148698828256973790008470769613586590829034644746785784724794034827367472473732545032786241962757881797215811396652199985690315376680931764988786024394264304142213101379404044186334918590189017265212401097879577981732112729922688530731911792825873557671207859868400623072201196953127583281245450726149761443336856958904549089823743358759435251209692443261261026966441159304474032238928439032516717959281532332505347312964302658527231436858981095061817947030321411280434026643915467314310920654086722095077423001257884794467935936765646437000859981306008598891544401889467135274306803157561705468693167758091013642921740276799728251695060007752118090072238682589811066254113852737935669667947301010467345671754676163004355448795217884670286610777538455814505554365519109192277947881716823092991238914295585322219743961774735392619136732608677458192646883647565983272941463778333494418687635782666246692965732335418361818463953296555215252540995606094453354060715848026852471060060568053316590256708668725752087767870271867757642038728741628996033166136983478440836008729161100121868123201705691992544698647575008758890322757052731140887870985092360704428064930415688455842776170858915146500502542828271292532909471257523954850938520111070685631722873343842346235941305855646920536209694408862844383984834585833903384637223556720718159783462168729409751455387013049131122757352549749318379181775107402278628105651686019218154034470878715153999653129226110359149317183593287762691914183375091834555572017386563725268765837285051833705180490152709191144374959576900271515953025411943791997278797761015962030576652162204175648303663298763139073907105086228316849148005791976539508327398970857277049139438129005150094049740045518931299197517840584542524348437255871517978844026207349136481859641263209747672823183569226294523176814392293679149804954350662314627475856288019526221417874019210177759327512280093428579351982071025123877207473968384669973738538392269892281688457673352316006315138164174673477496874480139479999958065542685936926821929115301945090009545773534843543713029702228537907508666215362400950840162447134072662330554041581257807704564496340755799090010736189915090558481675486769833162625805526981419044834982010574689186160060091533293546266340079186516591976779871226117370833950778374989507308311408559243346442504356988634585252543048238229391351298534321598838038543751733798346780917974741206731124969490628911255983604384480569226720533997706873282835674456408562264572117861971302395115275587310743526597261692233202730059053886547597997004092837907755093971840895387083200042749859392418798444841627436169989679237296144629212497170186002687846774926560829603681471795914067810411717607938436174221054230587445724398361637801258615701362609131327620973880530534943115348089482378584220437416932443935831815000081305975787983403301497183961917413852737565582091049000745463116126263989845829433483167376833204911865621943004040626444440013401978172083730676346045124378976322570738830044294412168525123307946923714495640146945768890309951804176157029257495934262448150665034131698476419985086795777728298852491728858940005425346910692526718586771311036186255976567164562326201892026220855496463210553311045092567956740503918144568411228932925847552067691452364561904027421297996052669280423165476875170474254304747316104088397374571135555286542809660513080387334493279415490094875797946327355454171297392349426510502884138475805580835611353654863322675903066625685659949553656988894603889539181025112346770904904334755570741030671156871818409396886085366031578799078325674925742390758327177204449373485472153919981954273668549635751157801179705008937049536777723727317863280216073507122880913820165444937556790630175750212222019359571077502268208864778953470793393548347788904383123263464999417586190281796984326230133165123258658805500781320908525465118530880337146534065245478295169831690584730797515155162240429336023337566421920316476855541353680872467756556490447616906892161145757111250335972043728028542696309135837684540619644253638242058768212422284966564749328887721751475427025670074219612531584734778394147430670451743796139178752385143290592429896286427519270731824823773018282653292415986733694503386325860592172960314953295532803543660876620471915435645906225894351323176682186752750212187856454815900433289486686677255486291184681520681801867279325020966063222388289303700220537113874712797367782915684021276545352854353325603552515649656955923242023965340911642116163666439978374544924588629211387756915796533501303021062960496110369286905120705699524367636562210865448185822723892687989705571256798622664410772133049302557739445478529235126439319548872661758295650955193994026189600613016701132438967743254062306980476685764625637407322247284562358169139642337437860216584042361638914723392350709285846408184586161008576935564404561244335203192010362839553155781941616920525103133387451805206632200266178582477156123726732393212888645459449436823249527622537242501379091395227040715568918173353509686577055510333051886707108851989681486534637086792725170767748332123848936641247830652941699239175662189507149987572143264188838037470464869698854662671045112330361048072084199581376810927101309771934939909525893947374341240671845949873137713450465871923895809702632380297473060394066706934933919164962470920882440385886365537969840892021648647409184964268133210344798655286918821194029288358107689687359280598816930562143944044739665579738540662297625931885717006163098286004383397508237208373951916605372523858453925581670537590616656142135728014983437107672415071535303914803090184184678419669782693152297785409433853581150532258043072071328723770895823503105251944290308373440014397961512884212175369332559046203025733681262738738747641567215700808052367072155086132074391743152957690969001370341456390729368104658277666994904794729337291734633953408037305472665356722424907965662806264102692698766713162164371506570640333634516936265801095608628881951368357646845538900535549720385056144730918519837531704839236830043705210825591238087789813391001912738236036781863116961950416883446928711092319249835103742284943479014080317370592098583682674981046621636829607311830289834449046050221609890686842468436440409112134941796595168924677089198956627819693855133389879159972378990136047488077403298092026895108228921848452994797129334026246049608117029810090631281520528266151266010239747176369593735584715951915092796260123786951604207642563545482896091404746483646316649805614400989381266670716440596541556420819892146251365586891729843645246636969702287448744858033895442989951096247738046308982108635529297705782033210381429688897481610371532695699922556760959531897876696829275052859646186307390861042657671625754331785063049983709431064966248840670274242620485217120826127508772147049449288219875010605449319466004542325075164362009970223706448545068160860642447383673560586027276096424662737780634420200777619686381652709505418891342392338747259843377075631655354225425645115780902625541981455210692186233795847124506627380958134278413401552107293268165147153373384467526915153675568981690774240604569751812476832491860113116115921288772018746824627159040187409234024298288920746665571882306295322421245670175184594929053272146832073578310301307153722971758522449980204116424197020996518114973040125645903379321899136269783608289700213120052498713955563161527779577744162452783572895891917937425700345164829339477754827502984759769826099748393831119550963893476501486038925829983892610443069312313022116942275738148966182028928565172847717059777025885820504731177399651932016318377944600492647702206629095970046870902577520768024715775333577218495242057493081457849161856380742308892535865387293653741427532033949575066688918533360139164624975920034171807565488138190145017594304984098164031952938838532417657135092415667283872129584015173770306142438903157784851754053786642566981196773680865369608742748016421426769918346220119358368188595471988321385114784684452457905304490393673631189951257092762741172748222845100761345172761355752146733282695585758893070615676208785352631456482638227919137096317155317306499375338109912664884344719591446324204487520289664452738538626479861285252223282365263824375318947592465937588909638368204615291819791367060926971906054174912879656153694975991877153401720361158205694325805347968213097267201627627396877941286450149730502172058334277300829264855200798218337806520699059934034137667757027393731654585388676717860951619679624273798521525244233543152737088362140412922601361692541218000172830325065814805446304720894798213796707898352069443113304683870252378579786381870974346045897816663852826455540090836103759475306379181751245454665023611199938422877578011334293770018433127341719592476783444301038136045763729771985924434437508591365593644056359443438790282995357830084398876887762258857434379581156341426767030761026766139767480479013295417206787403269805945789093636517652689560883665001400025577002937700201141281068018215790658480515947500141859461107009037176281673479133231027701174044282768842416815538708533901609043213742673876211528883029364206382331028895838202048997223329340896628891862098468573994172966981706619588360069775970751261090654904391904005831035936886448449975264115209350679630266668492347196147390696504465169544123001243248987309182477138379854198806083973379682622562740137435797694616107324657415168242186910424098731919394784537351224902469423681485903807001302312520809224111570894388643733204353902820210051320149313156485220263326538772674389975312702265509294168307554702861253499989156801148085151557465811794950696010566923157039673427561361039073353550593595360221848689502887745181559166817218260292327973459798257032359604220704666356992714040488745129246596658886037181296518236590473849480176122018520568377149907714508678701067124349623653168698702416117210827586701227446113921268566269140562621627683888390525176351004525792537577854662926146249013386526404570914860244157571643171145439731281704915189712411091097530392165702312148035691111426928027092992432242902247688993435882627554068341599368354978584928171989987656686671801344628082846101764546393520939134615787644089521256170958962031366582802663510676649175070913001061875214388293678869973626983383135571108940582578238483035124890885385394103230429272455945342358917831917463231624782328710759398970165456720124554015201129358530522264712271284404617459415113868072964516664399770573021906345419208499908276626718334874337617368841508440187699575798455250668543714027115225824104292147692302718252455080686787663750027872020630862380169268881140905296514551925276350202885700929012076221490111280677238100097767784196504154922201720429656088729939299555419236286829562608544993016523333910531099968160099877118233520685733734041243518246671241466833352271536946637239829761561714453288299453222863644419107883889493768662357883599721493640340692428653624984094624793991601784764223578833741236433347210390643582680450570916587180660861577787698003921413767612965168665391615800683750203001769670917804535566939031421948257833146322360598281811246436071618500427020171340362731180389185670742713006377676711684464786726986087445603365386472305552770576458897602544821725730861667486982250090134536733079627837101652310057458987766316064493526475750231027687076503783956813141388340680421513396102923075532286581328542143151258301864197483723303535369210294849584025109891927778598067574454683966170244043436701794588718393821313421792762325498308057682814846372660117273407400837154000103617548560826697227743582384850194400998611618375264115640380042239494192721696357539641891885917521323617771112384815238096457797350505731926848942801824648253597689932715528340051421423010945493986686407792538743687731357954402552529610461475634173989500747802011714944910615967167980236738409936540852900704849431505232568626307949466219371615174487865466209310180159658113558073286220083744799590743102654164883433727650233534747440033759908432059204984903062663595587830541396441533343948615605228324895753243385326445287048926902632568658073977400295908245027938825548932736829855007889887820959547391552520390090596805734460656451136284414423307515112385050525635398514868787887094287118853288878672864738686038027961639580774786797630472694151437214235335017442573093415039040735250690338722780976039294901846209856832070009816943745793722524703537326016558929783785010263938008452349118269740919879336422713393278942392413181630385162298760612162274777507251417765319377203694198252293383697579316475541313026925381764173774486341510624286267351053582634127895897436770361780868065197429198764704485695979152044828292584340462355060331428048820093506563115406730310681283756352659417437953845447117447524566380551632616760279084288103006764217631193657044674087237137785978601954931964021296354279853211881652760583738261948335158998623463940115691424949985024823623393067466084769791217234774599712731755315948963721750021491648552587976325672412417274397586899617718133458430601069575414300936568229748672794963699116738398965602570195291982279762878221876548851471476584417881649915774584475858916985183766542948398242749488575459370740570006136953628385850158492841308286611773620606252835302877700628736839613086867656688908766379416204616719128938598213587154160701252165455427377229393898619889521696287253571846699256030940161616844798425778898038350785817935592580831023814954149616225932503083120514757960686438473612842496844568678967956271778353521471311006241145567469429389406189723796303149646443331427858741448362711775655239653996369947122035814492086846459074737833176254241824456098974210056096476316135705537449028652223972366903213648905898906566668359804759219747459896847832229398890165713736528495738457417476578511410405694650076490102835455909177951716103629411278593936123515128700301356598879522716154207034177065786021705820629424565733050755071147781529570397449475426659742437962316241771016463834451130715503452962865311732027218911091469469330878055297450526580974045882867124080587745346323121623001279742042930057618008398620468857852422864980877950777275432469966851565630352609263437941474840627103975156329729259022890150910603892971991128686318683288686954238513790089394642024158108453512148959410158781946672809979433198877518975272586530880191863570501766809162525613485643524648398695497769311161133981028655581046428569039702355506566334469817465791964932978755381691638422264278921535537008291168130889685300189364282489689232275721425114516091216611822496478080927020775757565390365374183952932243218021071449636447469464992711888756160258394039382993509166852752214188459977734466574221702072778501910129513345674355236943622539471922463288888890849781990982528712523746590098631925050036464076101862519617592996738504316205657109811135461164800310701919414307462508265247876807357403522094230038659938223158029677415831818473171764407549530709060883018872796902909952170845225404797844489489007846780819969244590717168044402518145448284267392785890551609322422986898328025956179664660045138216185458052224528564196614458713989942380322205288935530158602133287904819477574336526379680070555422633751414408605979093468055440364974663050680054762909659240575507010714695760656332546134141428994674648198499366460706972949227954289857236118061534239244361016937449742784341207926935483447527606810021690434518772581378825905769386207585673398408111263862421092969918811310328225004034506574406489789053628659306553235771024191966653922189982019434078805073503296794573226799873675488454863459414496128047623720729204160192148213257778777196366320162813113680328846197910210409781749734900873490178456944473185925895035555786153602987613582953964052327281137999140081665190682372651106639157533175069400457398822239114246084137460259595813067434457029680167010477982996891602404264897036378070122025137386415345200181985746647131341125362388334055020941446199546185780936355574998385417067827863479911919672754270904741013302377492520273730762534126471865057114495487435264718677136525168273358863104151359611214608689907291221601726387900099298789475969891604580927643742385969836357046863923240863254258417434557963322011078657178767217153882414641746230843772654856262185139349963284717767579977070290443649990679105211391623664482011291466184278040856146096372293713589647766032555626343066508882547465379494117335764848721714196743573751679495478521766262178456516022257693354277966833044076094264186202810156191908080020417259714268970409765105671362675145703676384919918795805077825467677382533601987811805450774215692014450026344380576944852620345406575218168946120843023389408856692822344515591698632168436300160839476995609148830694025430717009918521785166793514194800328629837880579477847852539177532806012585993096561043570503537417069710853719704114025856099482450538478112607034672468905901411067611566262707128459646815532866193786486264197130576442275087395098255589912357974346026955582997187606039220040241352081077242905239736675411100739226117023158676036989279053172789501962192908438932346876701271783782034657977690945307993672220793863144191985618736858293042450133922425771802076231249881211532042749634777552846154583774779084174455440219801802106293703328034388445979775147446248536127473819415837668523036901656916654899667691538373499004065108962589600012065921630711918600193481853487329532837802454526494273423793015520134822967333949019675413522120394422352889366918806972613008847792751252298921653709352029674816861618308045216166618350661752124378260841340686465954710281638999279019946076211339186872963051447816326003158588481694047157950420649845580593449513140324801566639633908318522035091020332371580527812409019233452350911102921734831801617722799424747569799712557887890777662202211420536606773510601958994897409949333161927325228236391538286686151898736856089042016471275933812228682952984604439905306300543543471876893875400989702671414236752998316176195941892277721137920062649375267286004229257773450004047452618156756008097973219371951209674910139801750314202952137363958761645279754510757294798870191464798658645511830972297983698383197127419806360653733513474869731855228998403485183366474451373009434057407078428871201350613688399562437098818888550430739360078100389817345564808059163771406011548425108028869258467997206674103787579268952137710527051748646936477536040863504259780841934247517908610186069243163585905054148615200742381179413898953711214612896303029711807379774787771939479841229866865093370676847856404448921803771848934170170215593892056156974112148044448821310482677238798943600288246283524414702725046003456417568867508982617683003610712522612834521107470063502947570924140494230739600962162512808525710021265636777253672450337755269897879567355881727210130596688488445266334333349357524404311982336959796055803169792149308521308695822882296024752465993371686705757635372170619689427385375935854662311252067310197264846257129601340397040803034735763950156650663210650589548080165142018042194149854282931953267639427492463244137695971844533456125840642528864726554153625380742690667944696966059836942439834256329469650213258249920756474504118841327892483766205195585018642726896990283353094667446220428544138312914037098098563798829891393396848592570491333547621382028410718007430171697543358505888572684685655382219706367961608387841258445840333337115376612042145527496698053577475420704541870694662603764007573240805675994917817020737270022989552057300177665998763395236142017308354176186497997364366624450961266218093462385770133120928127020210402373783950500807415393663364153140475689299102078724055527699662827053315449326934974501751279986639412684453491650031181219999875505511442186287804646402694572963117867721507412335996483697591692118370248639496818555807382315113437059364639435295677508724924870697331252509964759805327513088105055250559691230164295070641260166362712270109795992042531557962812000197346386958787731166671975375858337430078158533974325471438699197806213558754893346931496594821989897361602709528404399210424441771634890250026258008600393110322201024199843697084696953086441352658941808995346695666964664144889939359603954676532329701538053418165705556749428938137188976303927838026641885535334898600038914397267385319226883151776555858745632438691562254851584907724893663124914909439279425167405426250068491872707042880158862282525319631680916579610084902814748129126865667225952563070452042870483872687923816287376148969099110170292502756071101072199454861846386779658147447825442018139228185133005375688431199435453032318255422688717012993885037744822546253455742957327046035193470003420154719000354735379624895062404279621570519263661720301465911677720412137876478741820928390534093742746758609044696895130058089094746181376673215211004644326631045270873224081603585184445045129857713447343805298045337152417435988242648278495495556132329648900896958584114392268423863932902621788801655446197971365741655173243354089450778759945477588719209476261588025891664518832693956521327782772578191169777547184810793861342972981997559921414530397399083617163723908454943641422566198120507334211490851206625013720573629947031546593596099206843102136913788824625657032586924429190136587455444199751652119435447685907274255768929121235316849324752180080792779526783020543214811867266166525534428701186124476770487443975314858563601196252178613638551387688843144373372287086218701137663437946290701293149381060039604718362826768967200086589140882148613941361289319096260391915361879527632058306434658010892468868405296398026279205271509090546981194967339292073594341873469903314250689131557403862705078704034316255389049777108526594695044150316708247121488103244595232047242507402280756626345045347207453229912110436906520200346933811779386273115530276928409069340766111643080292019637563502903098615960651135903580524149388385593890425922722598611293489070248669379417491881388998775704470940131122481120575510792703357133595873376983901475441636009420699403728964390678614331955918039683720374337818976029612912224731034027324795775332488759164496393118931430225398120291838558241316805013906401349556444176430037258678024338398574928793230349510539997481958553866952101007221689274788235937934208428327849429404359191351103797290142081999277126960902154446650577739197794980782949505408172779608207380809058353815306626438520961041484119194105999162254416164649796983190726103763652645433602688488877743794244439678505751315928633220821200231348195637779117003961516700770198632034385797304549933290762597835344455383846230392401920087504985235378330165564546328057944341834169321865505421312543052476170913850834893397905835336063339041337119189220907263372579812815641427241337899717537765946847788699202516433525311038668216366128776173568812475287860213483810125887752205901494492098537833820183025430285160097689903169285135623099214132839902772816667685386643606711728375632580909198637696702924003288458688837318795373790731279698031872491096037599453739082828130667814136861828763146170614133515200664237118643801903950515010176731827598632178465682898359780242197360698269909478012166314858310159232983504761714097253228844898586843368100229069780765054664765868477731671614311794103299542572766220798042003133649947637622089673189179456530949971686159043922313734981830964471447399638092114665498484091918545977762160870571739157382500302791616676895284071411561006463156927072441217244674477400763141320645718572401035782673887555009001582014303824190133435971608349066296519160884406870731694098906195815127775622588998852890293165516905078566354249304673452957753226745784053474323552550923296792321076076553595729768446756093820958762378884157226091857154392595790380596440953306268474509038647904401025815942245144836603572870379805815995608375659596898255294775414777596677637442559463165669600238061604611300801819115062582956006874999722020611597460620302761307438945401251391212944230815386911596971046886236134021695303040503700902640578350565136582598308092928288941878629696249586959714662182169619798517014630088770994090728681216009420921687326942767948687043604975194431493752960735504248201016268602961270027958512124564407722315615478217312316233161654771045414418338055767779112346702060158893511452313263614526870405061458355568790299045416386112454702034820684539948197448305014990247058877285675979863264060406490801690981726868732992568135695078116404282447673425857386996106665177056869778271714934370455291478053470109695127616507905206901535851720967449534503653555907109546416442493804058688455876699814741644343396515980662781996586793280072721022607255677113623171759037584860369377825552046155171097231525547100876997261525979802908553262653199072649444714620488447097906231921535476251484189451514606867926827314118072983217213644263787261542544685418722480294602096656643447475576527142775732274121907519374165737918613854913652845589094265663520906022163143382363081061783375557177670924695572128757456058273123699257468862085534935956719525283932664031678819083797747945007388745658275413603705146830998889867682176537913651036458045078897141167059185389080228639098008713890240934745054810769629679000896806453740854877197494787568490966114619260538463878667534945361012804503749497059633874615117993717194353878229277664890144207214875293933801048046370287946765651805521539323520105599392957852376942056183281755394811685925124437863474023726416817191167976276507587049185997063758530763592258614746511046939465644866897379545932256016317599426789306577932502479553741259288950148971098270446811721298589452793717791690632108663874047457432644151579893977991128925014858105004077796498726470298171876459045840619321310788868207742792364853172688384356803388851930221715993171502483643012145179757008545791304072301583571165376515912567959581067081066014714445679909114935842726940765757509476732796828633817767701071921524733559086130992915593154142810425986918667065668621096370033954714006395313239037459178729294621901639831356748654373157733543753367571627081385501904374854468898236654758849021863483397804390138456793239229393146462712824512618621997676049186312983454922123463724181345340242638734223033535675947452809335833209492507332767161975315679902353274722758167546718539557148858531950825598281120093548065226100433162860496288759889103962261746606002519507129650573173651337359760748265261590937936106548034918693315979397054191013088983782361096671082444504150993110774987965935012969020743606628595571993928026890264403869251437668603475639318791430041393057999798795684506933311978243222185510558626827880400179071306915914727216903508250162900719860039214491684228695153667656131509417650742173513082558835412523239288914282742409910209954990630268803537216875823732045337065632944616737582268966427750243940297616601135677464757636413520411896226464532357199588955956864003565124199998915154418079974257530691784373037686128911204553094203715782449848731613749930521056781902175977518656066431111101710950900824080535825815169138975481234541501594218469391200987341799521934302089722045924780452733169791848221328201499080443133788188003385239867914982024577870296610603290121536283088882467389250879547232590443956544257431748231615516045539413925665541496965603782695313908250006249724021552563361236268595061595658129156984783328190684177499739355389733300415050664650972904841803228079179165239504642099136478682206095319097012127158689190443472744737783161401226011509344027203465369734517598601585555244773623252280350407992206509236739866697553293687076715341907201381869307330435581868901320997304061875934527555919232220343400219177760001240139946616211753878632799493928326274830225206005049828601176324455124339536504337960625171658685501040867876558720582254289156545078130763119292622763165861973063227399208528791920646421643628062807691474874234574080892905993081128919017734651256918645667611678612290639244467738859504498524628569053073148436708765857307388946763573180361532761259628184067932646928589595258335583504220154710452743420366023343643530880371785330748024759954000363419217788859008930723268614824337760381076409906629516019637078406863007523843386998675090795204305991673454322302977510715858972076850489795392319720721957253089406400549049702791845369168132726381837105470950574681012914769735547413313218510690973018351823663725982668365092329534681732059412759237471855040741384980903220563326715062505392051795010167992746407615790789006850216296463538120959512208173649026511532746183030753451540013253909307966463424057122644739541253111609880009757519284552145149410735203375419255292083037439788745578264410975692857806371400034146848715265685986327487716351681378210418383553518482476776327787536067442248056945684138245639067698457448418067961590840697719339171728577363212743581838655358258115803564964846372712081373772659616389208290241433171406898438789633459035175114254876318392809368109239739236550040333921033326204589372960912714906101239811283585769793754760967655088667342130307315194812694958026247884083983690382289017903662898011853088561809419024120701896816259783633004275365510374496901767095416824903239357514958316778168960585292801161466245925682976031953405915711611412706560209359488867464648466519786723579210277188539060879932657899433939661610023151972444476834677147522585162224421807435693125424162570696491937930309092039016022930417585612982281280379107931959378261563194566879549504755150247369216719742749294216021588098539074024036812527941479948658820236172124228326157491125511473408761959631912468114022305588705667075472109231468716835194101524894297811376477853084311127757966291832480708964180770867088241641833551993012041771289322489871029962039440178449672695114458699205042093273296373389893161966569569635615414736472868435510518928144187454901045044311653387691319437800218584942345280490914777628353324008935902444076755711700137663771704810560592680990312659980246478355917417508330061222852402652297708630711588686567963726046762625096065560908582259564397219181887055647950085278016482835528844843081724162357630913328916608419576944586439787815273059278344916539369519511417818430912621992189286006591398501073994672872300960820929879717547821199377299576991334078851989038070265951172674633780817386676619985396686498045734497707589662284955561189882599482552133727328284703751532959598209621925773307613262662251916638653087284234263209514508676178933116294693369663091600954557046141920060086916719365777775583433122252019783405939359479128933070523008324987409361360494361437922957007012521357046857560220216432037140892993228197445009778875896856681470769581143179896450446288442786785349377130611496081887089769021792662965167586792517942609311674126535008667044542670069159550650152487510938555307565978377261501626231743319716530982555588292223657283494886334522039844912099536584542695109501671623742971236776907184976207597548833540901873029897230957907363795096421510149381594086899309741799237612632944223476254410437819925401212980679330500439408506992061914377156092231361291647059267476959980916189330630723610633491386122096130669750444010903314377017813612255004015634667973553635813802870204227505953050728643417736045427297816086553281025314823917174547735639830782591288324556247773264227064403417986532976144457006365071547978570359669825578693475821372818992404219614895872341435163823024552987499738325598618364334265765179639572534676971272785040572054220901571474093554913472431994001955706955673534780687519609316964676593466621016422494306741784424890712276835025606649388484017210561267368688841512235857565090142487630634100746397104603759546057403223868466097402860740029158815596073760692628836971748938256696922979555934182688694212131744618322573967097760281736849086283025763372239757457925610086066481129712623625013334968938520684584932574530448564595117509956698844470448748314468949791499069396316854798434607730186580512247448807801742382172693229486127296010246653365881253909805559815966456615629983313504357564020567657902817232061649814319001839412210830372452264830455728076981443052465921524409513477875077172946242317555005751727054684164835473621508834409142792230477958881925536723046524596060579490173263328714768565116629861405265902783484047850904339319482989689519845542307032109603576767366793078222467293171084685945747571207428942373933682345244825427188428641990247800234402318109072737827898004593666002408904472524935129175228912790528230851775602752107755287911983052987809381471317740777129436963688361018512781606250162564946608370215659469584432679374632707245656340589217262021963880835639027381667650768755968437692425840344110839352061172213873407530623530231688413561403295934741484206976140986535295675171292570781239956636776238867910653522808903141006984386649130596397532900319907667625502040739941718651211069320645542102405305090574097624263731680346705281846876780081736295504859838541751510714492908026047273639550221067270645888928377446782269737022787001603527133827739215055778852209386059001082140255186785365198190629536192790648655487981652889320396948982146091297326537970176845887375769054131228698551681638324546036626450241036719705897557400716636662707576787733454980974126067821474107305078749668743165362270421889939142322270667157039736448290009463094305367837337922714744603745488843760137718244220771282274521979150276271687292126122244737701339332529723406279064299781040516165934918738500961286051824294166073470132378718105584329461787511223328646905383669042424249726521092712937428227769499102856752307582047102568857136154580348602173531392547455060790553142552443645985626496736282146237628634640690042728241509606390926001429545198354795158592933256727966667024000353661745298200977400391788389088043803237035962018862218932725028972371122887769975088700272181827895502353791880330768108454127620287071962687293723844778664784654766594685446635921079103225126299643334052277861258018097016918413217725895687413552939355527279608559343994812565503823961408419328315093568232449547376107838901111868703777971108310181529474663225826805096089906312515778430041160079099583201472119686107247928366018644803432394905879780012091487258189186050682264938401683262882790425551223392148308867671283366782816831924045100951647197844611104442415846654215787380334312470210475537549213076770600290528874212713536103307327867529152372664525966010335961113149593806086538739691224746433214222880394481871143612142340188618339972137303439132725656966803071683860892636938565518223752028419019257034304703874966695882102295194427434321878549892200506491538627266160948421712030842411517303744586288411205096658950235975062009309685011196835042815611234719159091064540660113071611723351169730706798730087860050651021841670096597455766372193992539224304867026653503364094613381574692583091030175255437035568319383951099705505744692027829644956698888380296327089393328972345519236586874292007177423669640655496949188324685593514579738296536991093105477733707519945782244309643262663356997625810098307581068780739817699395865820323723265239613302754021614320077185590444600545675971125330512269553306576435851276419619942523081225079892245397401144422344607254969420674983274798016663543899223148986377214760088079038207598648212215973171362675525184899365739547682067988771259671638018834902011224991352280862842714963560566186095155415909595385271164597226876934116240339435542034645313286817307808561906904677612148588095370232704758288247905655489213427535524291737059447912405483098594431478954095338132134203068192977217120773126697986953552019188907404531047271078425112025780542423178618934573615007963295137117544563093734982793895750413746873125735953777213997576872207315367286853124533196055837602782109439892456793477822548581796050476243776353085765786869575173333666915572252758592669570333810466363220988111021573098509246220734821113754117811953782835978052750298617253428684450022483554067687999347335629497762691852175644520309223212654794889481034560084378921941567694416841806530761237937580022628167442696343196566298814465991928451272961683648432446404002005729744994165631058265718441949636968508178695397914122357922342737078820183201669093757560872453133485007567928746820067757039160549667151411937254068681703999508989623997324760574588471102659276654786489604594928177261103307295801406873306076185958874129548018433312652573044039831688018099208734782086188418959850300391990045877355100615896929004847766419888497211775228536186535877010020517100508281559495377125003077470705181420620644625416681334564031473910591153245088013328364214532557359849751560749055280090258348050101184249337278045009341671362692565580252586843048420844139251931728656798191040798581459412408859818221404233890999997107384152250991038810471443626485733417418789952361955490768547580160452090104640063253696081433197960327304301261915263901362590878954168467801335739788916428471947293727317830241046849154878795985880036543562848997471683630698175580154392329385946537500552014567825583512761435165444646423223197933394521164449423941819297928460342166285405792568364270289593576934717931652826730781670812701352327094870471926328994795114836785675689705280732854344740381394519035210982520735353139898497110839258673437449272461336047142095787246809629914719456901584545498264956505137372686060709552286727601294503403974604013512914408403496097498737675797153002503686438839462741560879062999485390831442644170405771900352649928606066343856213922611050078613261149753851630672721049764822060329838616847108962047247660907002942352423815393339828858486240436270350028819755304165747168842292081333806522178584206055192765034388598694497666668743652188684007672529862528226288870762623327139873112343939310540986740518289689939480313956983852960237087120569376439888738206651984562088012082939790612062031791584141366348834272689022755015818253162409982871323822400450065762527047657447623993371606722871402032760751634163806340093953544546954893140347235662046994593026993778254039807496046192271067843681453931019285550646896025203213582601232207194144784306243331759681311522938221129925556465502608711764933181101392555156809775469537812599153878198572489129685172131132374451116643908620514786246707766967760137967297377304403104805940347227762946102348195667022649040653588560801112935973708859178046732823133851670494824933959163375327769907588159235418699523609864523316315776362217630289876963657721058902684359809978780292090227650738233819121878478507884498141626503581023967472499909194303107427713616442778819481854044538451190376393997111242390521339274903469292602435802213706910926030439579053720348256167561348233079917789635776044123931056606190990395866991282500228248022567886671897490998378463279746159868880794161478890305819391038420159178149727506595093846919859941968210863546437182544640739915754268639295530911742173728407198317211554224480885410965606885444530073582364557832093940220395437313948324798010045692608850666669951987928333799209765925693152481935666562567229568488079316019037005666546303277096514053371723092241077721992707650559492000365719945742409444536715745326678449959909479229148453120383213730321055625071168457988677268429040680604311558444393689557290604025304606942208663922891672951127206026759063890327607538615586039934276622106079962048301319266694800840780936770181067765981800693503682417508993842457410263677470704283468274078899921890345439403496252167831030246294288850676911932526013256950007049411456938359316256927339791244111382872639353635402272708738667211527683216882809102880081475028255960942067145341174440342031779607131659715643318742858017412086915113330393924212234988054626443527015227660163286928890410798461204275958796869964910302750007324686031377916658231211652794730882470856450387632290836942957982155840670464084185420823434368690048159323257692129790890829703685195943925122659217464508486988039287818991274170607978288727964331415542134487864474993447735744083636414326994188338209689837417191353251778353722191621319122761803706320843500476788141084756750723217818650172336984327391919282080503717144296386324565606779360898291850631300114302856533311277294442641158635075412809035896036212425195950748808393413023807066677095845654983953491325961847123189803740594991563864093200673022429545804531472393280037279350107489297599166921803499620037325217209018278207672206293919162083953500568368376024646774773220402700213821929196448967452454299899352344819349319098171937431492264811001238778205280852666650506184740851821951525017878124325372579521089762712783746045645336752862773089848648605966523761051060867512525331280043891126123024146138033682729905014597299457932152037842385620231199812783070717617429176776191758237221740612704805414612499596685743079080487617808818816412411965599884366444063056925173746375278926319505740467043603640106513658750289380203862735863382935232528649367964420719579410655355071917449998232910842361458154593743061691394684699526050071195621180773950639801564476156722948495633270735470900503048533246556368097170250894111722924655449035323131174071340160625217561431838689489221265586425881208240885554464951438733381066673143897181250112300520907358663478750707866070311901269844537302350275225860896205285180051319505815928286430026461250307374670792639833975796508275403844223750280444868055758239880454134953404776344492856361698485373239511040736744237346922576266518416939638097220493954270501494699555227204324698230793149294996175343877998524509739914031000035004016008094777988376342195078299221409173166292316497448911215528666643176536451949142055142759670337819916057789018422553244224638065698793227225370133133738063754561236219182079203749993519651518073882984759163698158093440951948737210055070801829818586244422530759285900576833119887092251280118191428324319468449361015300869823573121166578996153805850252811546643186477529487125500302077017940291743995325184433072388295320179183088908641797095939104626639421960082596752334887367568198470726727288572861923256371944357757745484920352770190910575127902804197993945313656377599243523713521051311348195717267390282709341163127189554705792353523092521760428873991520735875850535975691242650401406901755541714812138532341208330208181802129022440062194495940874002155843551880080740890384762242349901665445428488746080953042259023367195523353718979868314390858061105541852712656347978392869455930014771650327902530974546417831067016881015690248161395260115730954197136741996996424413861930899356382311640514024980019707615788503150776861611410046778308339212779991692255060223247490272709930813276030575123492593260825899930122524337126428167191754520446654842948031871989531632153208630951289312731192514151219994137077550852606604931452646030710190151071803874745028989846562988357981323470159177659498893673493302123851678937334464032491488888607050845784372694428418402105482932810500355183076798726574289496894983554903813792590375265967937927685002693944663440475719555168262961034486739474314134005828539362126423140592381192802786382829562279799690392733824662628428240254119857218762394593103613521127948140326418727782347216666624034327342181403376290424400872495418329636342203211514257686159846436754304960288886100547378874524775025088018126672546512112803017516005034669433765269501123639338193055112260698140103799914539995305833359206476460562855213597840772875228349175639715663925700850676957425091580093309578381758047825432409767851240659331816231280980455209914519162727063382644076411454975791511178221212481650030059080798577314202754326069734314926066813855063167759930584447212242936093785302215151768269061264968137658117557387367868818841250573591857521026279560776104072541843434241164070520278802309352095264103735175075511952448301304258330712579197979534315806550122596754596725356036970741268042419951403393462965225084440716607306936247293952599975912522385845496048278102397353121691619167356049280302455673494223850007159953535276585960925957016963604837143443037446049741673955746401734297008865241363938565432165744285883489722220922308218285705498652408400445073729924651896989969835403219982129428478674610488508541491416275580453515574832913074129950445006563775944738485336938316712996637567771799999175654504347925676124587720921893683276308343499736021238556211604381360462156153236580356967439520993996257717479407515943438854074864612883994101912530095375503903486660131608709783933683021188357705783221711743979957535555922778373300342759295358089838385036400282002664241737583314895399598512367728934486387386104724505422933997427314676733840993338657756319888138250779014796279942200072550590702649883515581057851207905283075666260216449404990497892707984443431713597751321549617885547515717166596514799663583593070145650036246312866023339931592606846163922997167937537714605213093513236679281782707207170929337618380705007007152675874117999878678033787861699505537564232714126834134566985814643760955433136722217279746407050805892279843422504384240575440240973781026993437770127132407426835941639219760119255897905975785703060979870924690057767585173068636620509848106053710130261555501463009105288717905611565307509103499173394567260335161445617398045695119438268128458439228467476295463974823586166188244963800882126785120641541140437802201173995031094669562098226200284180770590157877280004120564106485187586524218022030797885887074555198590885190818816602465732381231731739026386337785874620967161291424891035361162119603854007950911061251967568777928329857308319401386577032651449449974297584669779681014007095544484956235630509609771159464016891767429096981974922261453213905809287918053301225139289967184556906684056177197813205940970393624089366212680059527222808831867860760766033437662693065069389590808203676864784534479804113211232791114239831163407966975866435806672474445568306588089509608058664240056445120398737606982998028645848670108333891654615139713121389417954924194077156731817502108507445070039182659051959818897697064051013700504265487060918159713938752605222985450744310948337277095456291791056779622114054396902202135923798170969303700699503478312704829801944954912447579645680952555431781776912788714252083583387508144376115853361400141956526803576426430781676192244526170325314674565218458851024061825998852482042106473061073166327265672429709752649179507308268023131558743320638043024908339156134837077573971733904129041981493927178399699027139888440005426416258395340187336096919017727812923729109028097937810774880795373202563622991852372871116026145190288667722544446983500024626499148470322355034093540001033608530413174936382604409364455852004480494401032244551502436261857585466466247981240152184714297391500298979665297452234150339513695685363068398605576288137726436755593581610600460848762104399207137857166980633639480020779074315743125870675363542597318449706827420262188030433399313039397655686764745342462470026743211907566802222178727717747418210941233046147722167130009748267336866205963400356693142864087633849640700538567531734574419337659822682838539622166559569919040037383617116523877756843179886242915452441430414719204217722221236224153272447089245642605246238797226796475702024361338894357783972184353918732053843532680426284705372489955241256593710640921194599984352177105290789101252472678681363541135799096922098313235683819748624682287268118660351090323470360389509805510185637697110897866051810714368272641810824075473220059229782662943358076210130542662951594557338703400929190901262213871866859615706348124686617334770227448543987270734082782321469954825577060271068562999191746018604793459284918496284450484999217559313278967103365588313322056709627927072744097841566544786612380591314325571382613903535688025191093274831952752265599717281898523143742475402540992862063912184516262198096322724049104529641818006978066001330510293618111462265366697880703557020557645099862156119209201850925751696650135547642173808962332471043489268655526863534741685842857668300659987609544756208259261556986708248524647363378977952081816718413541550162088495711965490563669238560793444965991045486268010469104931174401841965967543615176207774223023438327145863147072850638972334205528724161724799368888317792723313655375690616920481622759152704498716124765356068449289844531997935172383654063141024926946186032888549628476744152644113752110504596109369358722338236632547214856523859885094399925764507829833605763638441864396656952278689964057527705617039494312491853111836166654873346624818480324595996050340796424713831949700610132994606749914546938200847759135518250271287747224623076350260177796707529244272244136075917077115813295738060512596277731937188730673227500020523088676549127663174729751050379576215943491568611919441093851546355768549185330733104281178938047098916663656743284751751273630747818124292913464111873054548316907261706023114523315149779299152399973828556532045135867033903877561181130509847330683852415414661782110525457027680860325112779786024567995171951563079418191293802436731738983336877365806785251040596234085299813912281249327636580164173838007186411337169603267053907546402565724723853879223687565222289351236823389030370394643886169348898224182091911956071930005733773175148827710441905871302288465889649861345623531785569198887751201701156191599170336134530056140627443824169587554940071294708870795489064149843818049446399096017363091021427052520559695929208854921167080555613249183509573403712035649578365703017023338286411689512781915334674798156193329283126597128184028140520653545918423670842605276280825571636282062181746200776294691367546438398931671064510210541318358641811592380137859627749656230795322251725336560743854988281017625155381653012649583468325151570489890887395849650661151265144154912439953235300160216205213446907064914955366660561542187586796334138742349265649171737202813645558077943893009151511120958943582131676407443671580546591432613889836862058923247660173171180076464752348628522632024389823404653463143791205103862647116349227539205877850886606245622783453120646927253979697443537141583327570195280580910189441678822411634735188319227487393289138981944554201529082759755863826846293753407250955409858779582463822604461062543142147054745586509176200351527989406140838291508788686383893551295929105094576967318378604852187564491302365673868133830757114644152538925284163901394836522381670273903791634352147626176415144578002860750172982228514727585945196430747554459657621282202910466395896150190615403093333728247147704822035725995196254253912205287755252796307895473483240745925885322797130417482762206423763502749280702983409188834462021412686345343478150888516924464654731624044930816806779064383801805720911238275343324963312302234788176816084295051268878890439688595565872564219898222464839787868017738892934011155430663255080628464073012124934738201241943978599162559314191894907316626881007421218568090034168162519852012238825902520238047838475831690084469124262883647287684146647253094511083919591766130199184377692137565641033907231924320740492117080846782139348096308931821865553427232351389414504979569779550092934426529407813526560410349092856191736982933426589056141596565136554292412568183472909783780498486768206436353830359648105219364049228794160905248899010549248350347292830448626046846377184643203833100184824937047601662430855578851377482525740080310539240679193396195890900898427798773988677473974703944846106230358641914422622407495007955564269281221953938245866707901709468628444260573560583174917204251111230411411247356187540533991895612151920230481837221810383728134824244702315907052198361714478945785205245367191133298708838274025112117340567082129976690267506779760294438775369778860139248582428433000702717610518893758600293773510566129414019071877186800551067225522525506298281489014886226060227203476627623578575185780806448587841633863653713452209664383015285193689921471355441119519985453397464769630062287861796948722867482210749451785360363890470561421763832150390140899618041283853041518964580427742166394847901703465911353802122963637195561456910768802630496591971005674626445372100393115355305392188666087165042398796774819293692154916907317510606775756706077085733439236341771644566310512209677674326482794432422727476382109748639340445196107652814044888265224664782258383675804840873044006995464958353336997762262085710330315921595286507304432273123132757912488187578459699553811959597768628314565906445892881927549413914747449333602151698782424529346451011044129470111503667188189117080743032962038462646794575442519203834305362692361123287513495874691471751929559818775249574986579984295167983684020950808134176531158288135234350446210496664980753756878544995379011268447785178815049146039418721897105983564615193349689274386328952508932563604699053914725667099682502301050447595145586702979923929878986167289608922680018760137592088425114523856107650886410941046854285490905750200383037577338947353951888543036440864826671374482746448602823790413165823727958994945004810028767523551246569442484840650685707424831409598285164484931378561267901998879103332221170243561570332866855994012537356877551257042270013783997803508598737813171976270024391590111088203945326664056152736386973032770344369405485248872358331228170596321662998109489530412820136649439814191012899352169670039788791501464860794378068997840330273173696630437395200956865179342892866881751779148349775474016364732686926102781601408705927631611355847264664579726443555340045523298393157064712493470856056958753478626593273617565152452763484606688850515250953088038569816796653240550198121869754708946146611282796914702177712233664361765846297475328504986751768474734962286498439261352128660179459875099533496745621999364600247918239878182987478469735865348220777957447735379144702974632741383241031094871211926177770270967757168186015557866754827006106292836233100889830801213908071967300483934509576351563487654703174762564678970500741016893832174609838557363638319522133332138118544960879352906108705337744001414134451683998029028823924876273394709310999540686251254051508558201649593898243858113248575308271528827684635187317307988338262714126248585011767374269850653777779163510176119304204359952706732284648589966117227614551190802997199416581602255511329861982050463031444347526383418872940737236826973162358307578744355573968068488441936977201918170494133879283686705849843867630655454542791748222169306115786419852094417606732792095888119173980512208073724295572448347034531846006720786123890015388196463544891706823340345409567867154062475662908713822999533124033489310469326436923410264671180897272197108720553744764627267251588629294515679489163117198564890544313585167310037141428313982898193077343150853098751297725672761203696187841828285641008367947451280536710436864684983235703685946408038200599056901060920777153046577447714639782902012114000319580150861329591803115431559562408278171180727934127493836532286452866412432265354422385625831022444585274958758656076008940682474940986602085949640177839295508691058086000020168172236464263174607799636200932942382324227434517525054258054720246430475454607210661607879532909525445495263649180367535278997499618165105720027559788870233381851672141974838246771704218787829924516544277344096460833014762380515972763575039984188383591954767386549712006751677290281662663866492750303273449815173091453849003272448199001138954271494908942387224313175354577007434085752342340313254322608418757046982462718123428856450795214337895322419659687427326385311507791467442033043552525327809539829717808031325222563309536219968238309736122540321577779176572817657321441490301239341384507997591033516433983927687512064578621973672087580931076334381801428859436433751567157715572010443069207186855600949296016435550935945337752399209253795709127516961595628388351857550181030872749142551819473124751278892014624810355907228958213938763016802516006758157727987823419230514459860030650645411487115965116033660408914149125802907387598975703020950694076247093025623279806464564980100087608746602100649445785854551877172451228654108524090030543881736545947942513860350846017436355652858526954108247406992915751370804056069001855455355252996292301785518195757152819214346242481804250786033887487641147453878855944446469710874787322384550752298938574796270534528364822256712892496831175699018656078985073422862940540361877299491374703160493017796234104703648574800252297184930195874453786904033892878887656559880851184134349368251277481490060165953124282879021943196095971644789549242919045902725762924474075460314497585488095422365735121593697993692338211115624875361004339866992505642827173340892347979359678790620687069866246840728856300047712607812496051958686637931074308286760812130445946881316290666272878144133530739066718629327783680928646078581895825350125550858122488417851272793250046397338349460373053863147107519901800564412984325741120082266992609950771159702041957149183788533152616603960324833734889851549770399135074107642560972150454444038283551427852599065652966547284509697994907817907385735931535245252303839069261902026634360507624977207695608372203159703674861043212225324058356050363968193787203407629144746436484402480699954747171394939443698267710069894575492494948316888572448562914254065586394064101930933579521024571739258607822780746876052927659607466663912021386226826729797209942672577190226492499003314250474321297884517642112991412577318984392740286692066001139441002242230908205712338362533313334993877024193395625945722117417979179849998842122255531213837029461718716818211815063614845153296436183156698107590091809845601149351950189698868468602230494652105236501898240536378144722595990037726515584493667749016672318202740444490718957607953563686264617243903983700290382538429051740360339265380388557207967298444784336953263137350425839609035224509157029006849894497957045144695691726544699765098231735329504605093651656401374595472927758279843041584569370270212138956145322375083706373089451545245531470648552959538487312425572242035890468731152743527097237839479816282510763150112082332735461403832298089512094512781266092634090367848515718741051436962790265875988813587851896251206982129700996812979935990610603682631334392531087462088126006266165243388588453868074057030068493400079552091666358428512263939292637784650713489507026871387029730520180520254874549138576338076524232928370530262650146587444026354638776721638628780153669707974501004731922310004388827493721954988758293329023395209022797562878999726302962103130212311721744758094299087386548468755555082156150966678025740361262974823937603952877507229676803727099561245037929665036623922520369734153260699388642020340678205622274806024267533507356274978787437082929424836294094748334958457889330738762046860581726547674779037820530955383999795293183619811745199437901253270383779196484724457840464284571355155100125401852152062506885392936272933056099904448704535306941710437732357611335950878806978960552407264508050184848995346923699561828319198212974463619790454202559630598647516625383569065832715577655937804557237761638117764547363120730991547626916026926623852532124881278061361656371645828960281047400858923965912977373980671722026224478880301514139732690419701488193529855825256843696714251856896186905404703931343198124681635630127848690663423511265718810935754382291083620888606406347781992774050281897609302375936769000762532434504152807559315070848551113787429651038000031462548397106331891309172425848032706869616257171481687345886839293591132890918521639285984412186117504494060536103368433152723012730268084658358706290767668528083710619962224630106999502747663293910088405042736454314727967005905260748981272029892213163758527532399927613004554272155594817407193164031112793288543935311890481891179379421696783856931140932580060727022536064929171208657362285326608026152591299944650921481178662589286677262996395483245480226960696460362247092984796725253617979168135857329736268747257980795559965109445972073203210331853554110857088382306361354218541407978089842520737911305991286774555564727240667954713125708709912758569079677106090941002426194942219510088363835467342434227204887197778440195821352162137999007166315340719979392013827382409615083161827203445396815878872832544644424065663866211438664702271547018511131091499302051125189649070225413970063077244726297977443193147186502145484818368852891315737712510384371520431722769350579171807138783701275435453056251648440021601270720800124210356580933744535105777197600353935252509979086818675046435144141747154887211370222496331489381936724674374674647494253053513158792013847589863115448011735537914626368540399759315616887294099678091694449004363293803351913329250630879364041280593145508918113887899187835781640290314478124430300978815581054830248221501713357810653978378366619888281252978362420989964164460741317584860409817399989331754537006914452024918459354916944767139781377998857614768367570719811758365360822149013493375983309746640858388142598249045388175362993378735197981280612787708891404529168348132935750078334834110236509751343597863358820871448575258398225768619837258400497963038339926472472338824310998017646488696796676447848644739660518766279279651109154733392944329927440857094096934275343239392135155842656506293620921466141343814750648658127581774882534780173613845730510965315590504742726608886487363203824491594014098090812096763372255691188528921927708964515649728790866930245917256173296629100372013585142046929309114103596289648424394777042160366463117911521053128344179656114017634901105554977101164862294547082797357213298999781057419120738856877321760135380401502111942467240834084214209376834354571361326489610449376807321662930929263227208749964547182294817103826213543648016874224284031734400381415535836076228655627582953749390898095779875996771354228943565278429069599505513621556737554717391631265629337160202463220189614379589336557632840406203346396644394139041411660153119146155170358309487910119885888654332455219381109367873147201345547533872448718855427849939008258721007251806431106309343291502430439869118523833511531579203651423804596663235214866675869446298141985746151819618330466329871717551197217514793983221101439495132021474593874712915067167744766486838575935153709105833803857779802661987406565136202981147923380826464838166729502011699446237304967255801066124073409466777246872973136360651191825828742026824279911768939497683170797894126641094727712359775098794360039138458012105226011854653841904482166247889846061311345211041699373657675308177499496794357434146035436489222147820641867468010807657505564605841983482566767971472061988142505416075164057408835084416325996227389786693439021330030560645320974885648110966676790910948895403040482373533077044671455400044203184974485690447665661628089052940117978756798410392158676692024830487837323015606177945590810215703536664717677410442120373283716295847101023329109569040950079788506915220503884735239066976457648497183045930074612193999032009088608719174327809107553239164732757973091448593125308803906105531485064169795245746431241781774801098172026075982611310423689505107939394586982786051712919194498575177336936241944605624531085888187331306325562652058472436991013884682754867826938688003977970817760829920199223276309688330508436549006719817943430105877053334051944559946424373056026838901508368214604385908362551815788276919067028847942728308037839915275376647302785379800218935304624065952733914738502642888045125310747507768345525588543403729914163019568893366349832910701360199282326682314797436689391734472071209042443853181057216147025410900085629350757565592780169918759852660327346387853140496919892005949335972188187081554491169855127920739226761363824416140503877931315235781068633734335067270174814619556972056067915807120875872727181141765173501336444616247265852155860707873992742853509754039302557621314195654557514547742455651480042595333442296150902275510021715817971420355808248558021719743963630070557515711398564675938273671698051077223080224188323744862001837118528959691224107085790892639532787926140575542145962198541644582146046953616266503322225628313985001807963594336787812943922850800397488699785569252886677690877503514440015159282945236459841028509073903009778211394882890888954945541365885308132086367899876505960404633877237145926985966514349422204955014025454710230064595027547261357465635468448321515673776286464185247589848979019374626416853260516659847160597371511630286192597556151861724361204530690268271883747358274954206034792990297996967124153579074176191180868407751888718939385352095661185653583185778188313072387811061023262270004529248330560565686783653671504221466817066080433330689551795927204840049153401359290935266285213823700566553233463159596389488711952585761488442326326446912215690232190376053085803831864052629410167414463028303129550190230300908307706662253318374559076788098984485683424886234422119356040527472484485479415865265005352083197447879476577993738349639737528680106103331720549561816448716472149879356569389872365542970830338590188413321037218924061452455095671867029326629701848999114558677529940807742599990552761804329972674813788306353148671737169315896500763977345081710010064017549327847791020559152077778518606993981917430813605538360090506577257662891640044748326016891132457613418964625766103100669198621165017641944015715965332517530300767794669691594864434724806578196527925670434158335099223393308601496760186807718956724054304191389026906943029161518214209441997661834753874157586439171896329321216185373612915100652128322214338979199293023572074120758263277070871291276175576182729310527588747727890573108319391943336960401898907985029182068651257225199036830382618645160741948794176944703313975019078902982508209305697566128647993186939133378629076434814734453705478923373707200456031516613730922046044034826394131613585476072545693295792152524459923658259991608551934928934552773525118729605481547984426477265129366675744964269939271881788469190358427545831227874710757303950283468408735133522072285595993517336046045527682763188175579996729892597477952197106943523446632906534627980722852244766153571361614225990184566205527335476699031192035687710867872786068075027547328424638649252348901828565673376899966699321650665586990501857389920865858172677279893315021495773225133418310161786203490550724625852457769411496820458576376271415644533675122593932008503365453018992155325766652510094288844560820602053724273598948367695685894696860830809652872810377629272133050747363632105590601490720078555840268566041611509785577933520572672303194726759025311849364861418606154336539086957329094252876824740246182535056031567831400672075032336919951422125817620656603158328903030731576636148445801360262476992067263876468333845584705654644267867859573965408625239068306964867327175889930758245985592277617546751880509812690707402845723322625431784998866904350407499728926556432511374537719975200013364760800634729036206735346877720905802728921602757171594239223172724709349612982324299963118707098821554714805693448063254337871890624568340470527928117900708018259555283006722479120926897875078716524416649173785525616054299235784934258606658302682764483765037164801588312851527880132289463093609034847476850953163165193253018432144604330537404688208824527843656037283986087866404684304751082372108492795227260042841371255234036586138185507472262640418603435998626898066664106089467614933454947965740533897840641263038537800534254109319906951758057361678015778314276680375684247547052258810171538438314646950105169100271980472174383987362075780487937027778372832645837758713358420676839565725824768898505414784090455038410543569498875945164130479308654851727121245808197977524448697117181496876430840860459874688702166574201528673837327067534196296718241455864288761789058239810914432852897201969960723811439734267344147533849434805548257136897583297513643115897943627680708975512542758820590680706070691059608328658383665320553760619290807598160232367396725289562968336431855782671746132515950490677697937167607409094449093935306758182155748001901737539423564131223399501610391020190738786269649599949020905936419831505273281407340423393400303077818636192736328830141802232804138647308263280549125260112513596947763700021283939612095502472466536993844010094229493454267701277664134072295879915071807050000400507504124661403855617877678578150257005039141232034406335220194339950610848990058628350100568346817679816996510999027425356159448659604620289783247268843369722413415582432917129867167491576270103370502705605179821511701872562607399229591083688156754947789600333790392552782767147647422921068144316880308604925818408051628660154615225946571722242462616802578819800175526070664060782347229131867689290325802804699904368071972989338425925641863522176969875919419002547530594537627321044596589074253543873065758752135014267426223024708984760419169673656412115221807714437704937905312714243354584816500585010292249628917920473763430404319155394313539602146280737810140588747779248199458334453798167396134411864501079588923233057147240102919452647945592261185591015552718863402701789458478965510376124150062824779356529422014366713047653611539466858056252341202181239312175537333103656124061668741280192688768798320784887810650118736662253542828415440299520666806550852879668495908421538454906736441330567420844548183933250118059911443448119556826771715991822809846764808227851075170179804151426238398497865048372255169644424442725533254719573163422867569560136818082817835836620798336794685816246608966794653857206434937123241048265675867695504332924826035564026284817748586958868050315856427428930631529491394835231863438335048023978617247467267283347728156878590588791164399124607270093118340676506790864372189596015857676305146959407412768784853449285427383442249264583749955334876295873735205573990264164394253995584849320349223831217105328775714223144968146984247939950172788736918213780216570949232112366505658587730603168871056361357741308844003708430570129697305753471670607469974697186676920058950342197683875229729761290485992116772576598316514788929922356417241272284665681466878809420699549389247153740477322199001030937001471512213439088168190310472482568881357737454365143308426153306816175935055844694215879255367004032604933448237874909643112609926088939152755961908764410848451127400041472218073387745517217359268747112993002011975397066457705272241995829283806158057959350600816683849977865535942457264289349334059622085524050604575034922979941999805462774921571561381791876264371134386953353299204134779378482818090818576015796126844824056733359400081273083333723716937610683384174234186450788837950307845123463305725710824712542053987448690952649682312322621205108448583535939141362921930189019869092573322327049817122115656464448415238201908474180696457234252602447616193184960838630073834033807157391417238991444766497109488429864040866258115669815107714881650300734672321354296748045965125052817078218083012325514794255751323998126567854039135107925731029841636938529444639750184415407928707974016249039255482688703511051294771568437947550688987526628456979306555041811059448299501638425032157592689281375351716637805505812118150073999628798973718325277070677365805793028887550572196423055561764480889102539604135749282571327068113900479752640036380414043695117511683252661365414597884197956791753161153622202434453483723700457327607856421832709841023764357708294675186374872964858541674708358016298415669338942009321791242519366381977072155678120954136329387455083927779296483736627389799621569332324356867263291702178273729430112828079493526714345709923012105579040788509647263307951068444847452625132114998498286544598373325517373544143613102479312423833659151820207230730880069380669106375817114780231716350097798017503498556476242690180647165364658858710849976882067260882048916345882041351573511588582234889772407065806377508203923084170470011286128629373262062472575710277483007950195737416916063049761102434215582264315211083145934317952716057217985103133458471225233814752863742498630580124995667431075161187020300758085674996758034656884947917218059747040166694707477417852059933902564644912848652879499980286231708473272829294882921848578833852322440933516680403129505774046574050112468799423820824433260255531497539740878348227988575499472306492619885883515630602627513081468653959090427531114292985350039650808941630034721884296604438952008816505632610003010433671053057822650226962570771749645300141817935765999762570705982066015929407938865281675573022603776390020309339111025599253990888377240184662530896619035233829982388764731852591650831674222185960119134927334389720147841080569323550686155552310021940251624375090384837285580612919818042333250559324588839480891729299474566305932993731478330895586158903299542736256176314441393642943463319511472333704420072002494238867102299087071307586557879190422361084195491518871528563288024331024021287231320769711741167680547789217845904727297525868891927172813273744116154509731666196022751785885011309827823232494163104723279409032272212844620411850288118427142692170704354380265171646904890031566128746354647911957578483562587345231969884493787423062312043488515270332059964429183227117166773650588816075623394506462176613406741107761417973508537215743748192268726927802918671761713199251010557563352017429457611651644369317737611567511420367047038880690156959045982015179301651227522933502341160979714841351206667520476082763436548294232849269351043325614699637932578816347988877517678600331431066963937615385831647799201501638433130797451532117536480754999275488663868990444766330599391869820788837926719256098131936514322727934482356759139026734689452558928177170593062426274509454626372751203066988850687778688190359783234856919003381240896199567728110462579586169238509848257823004693631175045099466784946824693763867868426496215266099695309723005498250217396216306014461058070778410055105651635471481750862954067198452563615777215926813642571930351461376947692758259821342384209410694378641654873612010804120800729683583251894635772811444372054765122056180582303815154823965176464635786463856596609050976505147503874965284088160032771801494033445133263363591182488626121389419976707442902126854121308068617385602459674405609510220323644416924350357226183797547052958749635883273901430809624137017960273823559777041847004562322729796128370536169963267331450453622636500432736819203846348313307062450571116292559546779554156475580354519115025000198926691081588296988083234504174185918161909579186655235320034743306286858562778724258195777485388070104526150878721180118353521942080408372728088684418274500277264304699369095029301790915844697424125092352996732565078547926979670715702596652613144326596260798286117292916082697573417409817969475971634590376519646155990220447392884212648845891141185798521905871704305742368059135557570063792560305300736063268476817405253242938965315384097461886087928109809235586509942055983949773272667155740826934803940971501378981200191956038841127913487555879500947313615831986118704046482698413210884640012102650901921748037300353388532956671776037364110009626195309483947461042593716681313947417326914779992361293400018273266161902881465585327986768847080027808453604414356569905604698807815684863842950100312903507534032137642997757083365373536002860027610025843531317772967064397551506521167789472270132372500418410357352984563555426244620885020130826288247182020282658146861404907637621923661725828211697390888157334478519220972209989050509733073982687828155867020607459563414753835256786760297932085177930178011058249022562681767382952931321186799166639867091215223939159573169673453876601981537939091791667289631446191375749689491277576185086672749430030218419888995063716651573292500396741366989915717611289811584865328962339704423558718957173875645065647272758352350945921374433263743363975865160312301438429385623237318648101607421525282052484833086930691343653748529380723457538942905462186282292687237838826885275387303628313422940159347648041750602755893288243666704953579883578972151564638093970700574284804254544441259176826279681189149894610420990085946367261913649834189431127766557022729796548445550270149824685696200193542423340059234616457626656671855041773653342423193100305037108659444407237933152086179252619627792031388167859350782829853855292916096189589287070319953074642779129185429661160168533125967848131236860047820481650481539396177011085136460225359843753511378885161082004041061688501681629237688801919605620453021872330143846264607041050811224070199832710286185231659833506870580406534159939893997257866632756849135357654488185126160901974334689430659189462257027909226908855839949915466741661836332833755889351034919414531686376159938897569403573103604995192497538484643608110087866858505967813632190809235602648841009162439028648571207982267507653454959463798363047250924000444460373125454578716871707360764760612740912943373030399571101879204340707287710303977560665598390411750538682612989226014474710159615932067995161470238143484802664749503211670934003140402524439405814245715919525000564225743091943139355268492442925520102251731775466663842683130464137439113802346853636408857352737563783759273581587091017543292920856704758456126261744562141693834087992312165120947277970939242654791433871657560381905566970621723327772091776046443867442540805235614840090129582041923653576263829388054063845632080598077303662082356101549570550429612933324265365849722990739810063151960562880795080838973314727925080086259280980599718855098332584684808347028726938144209104117696975605995659705404710833496056572875385888252299170831853345582647423826108417663200901318023421801011780376090320094332598671210775784904383530090635711655225411773799520552415876266572844636497127595030479289248448535116347168456608945325657856812403536109749786235776171078881553095932023032390340318498159562117478822418801212295945605007902393629247656192515549896386084833824544469605990060958224747525202917382716502231389446884272498342053665572794829924144891639507017672553413908537917560852467077452403195748546233695959943546778956407838981846487860720227421827969204664063863858719906578746457118495760261093053033088399289961856527066305561172530098575573805878289533303467298523893447141562712423948036826903283256022788298853989838162513881816501517375679590974201697138263068410675361261692769555716936789213927206098456778585166810416177112528200135498902160652665222416432594192173984287626660489403686019297509220846058811851297593013577392110085843413723557917339259538279832163182354905117884882688235340258481667215954795050586819882503782506281649327226317069852611350694847668084196790251447662087626390951405814977589443797575528862599312713349045119201300925565795281408808123576823687581475240421998400137927412288692367464293392199544962325939590811992145280524220974441326103296989418108456863773433969207366993749260221139800254223085875069842613792832718315201772824135399773349123264909209991796391681550157947530382123462113990857223368246576722961042438795655767420740189424589711495232940498988289584336598067369336915907039723292187911315764948812919189711266590475630136604863362236078213425500458600075287383941785094349706920891378800435976291544532445715294311737719313172261837453931135023833533547358836532226720185532252654527824170596370134093523117346605953389273566593639218909547617015569292785266367763913001155464174613935599408853397786633783386904166155412866239409494798102510996614580841033529739821993508171980851653513782663759917260418872116811937978267360287210314194356940148654962447280603939223499069184585880392955100933412818235541304762090745283679634774905338182089270943816280651475226627954767711064792344471514058557657373082915316434812912672612583487989157480884851250733528726693872750461399541877887625042808245424332521625369087490195638866917415870420681325968660610245864337487758655775088299995147661970572376176343050833831306724580409573855231641555789189187213948186471868912290353608918749616944472658753223596151721726412847355651782354070372679955774701737163080651242434200296786230485375299869757068224268094348696381677088964730526092977585092722023435767915068522572352716078655508845617228201114701955137613725201854819337926458006049376726974816663612690639433097281203950051685514713893115155326571322064289814592191947704156405225338873244834314623499834150217960157780081626445681427615672515854902380981078072660319887287276369483759772361699597631188172711662921634767412894419601264251328202299244680329968108885208567873480090402446987602118242755553777864874421801276274808554439727569862964804522174994058629765923683817068582324061101354372844488429846439999664246655617072464127455908494537567017990963992547014353708274295509428457359807992686015335050073818581855224199525004271388207164696150979078248913491656382481086472293416924930982422994863220805544852615494535011941442309236543889470296818968137338642344064748094343864779907787390742447735930672180118704456136857525844381330117395241628791530479773708408882651830908880319708133017923260370756316152896371170696952945198730506576090599401897945635607360228323211799711512067280769215103251954989439880794680080454208774657044780939328677457552027261313502707287183344595144731568502196840448085313299706392563624049157463910912783697573737752508265019497881608287906812756770121580620182580618218094985419877962335041743867113537009573785875856898370720298378837961428246512357143949785621603996675808453938394185715631364243243178424249164947487971008908458625875597513121010207384259067913678676115298733001732506470077226109177059805209214751494215484092546386809166463430993373019432992741686912142108971935256901587293097058774330148095767771068212855598038262088832865948083486322542746872342357439150167572278926642690309529886191393198706677446091525895449673395911721686651327932170300710524721288976310122072445602661670159237195276858793746010463899164796824584793819323165650298945326888113303572995679913823996986970304209561509335999553615220643484656858189693765880887285844635384600386757206351774430180897634496873082089814709390307864733686559812401485012982183594497592736204405615721902488142397201639303067409647806536625621639889103019769588875384851968022515887967286196502851238090820562569669586830771956146185573631968472940659715011852336610206239876731940929183570344115694984891776239621282209925193022855732865810459207112445713652195099740276623704279347899137751785534541691004102708668741669085176471000686123240933192103193997411091113622729820152243501922065566114977616435873759705920290754042755396650571287365051092614785084178450036163280992104367080257799777536847395499921626038695963515366884310620972603499920025190938102834118792497590166309544637503500629791454307722551124862264162077000401167685356797605971474629064787958681293504829211757723394665191154340964616474545736347678965579889871768595534237118350501045348054353354984444601454051140737843295362103584306735466953469490377431143327843663090145372208147439437097796708438610775737384804941532437338014888445580574369034626325752510169405072110752540030323863436176328339282187250418823269717541876113579453056603181570921288985293727388625417651244410892962722087719674111335526057661207145654715133746068674267339222003081633479138735570266226083724012988302877639232115404814184285896941241198472593148386751640452065590082377971720427687961279641965814199099119628873963356908487295221568487029551716508014477813056145371689116459316841140343135918450777228327599031397370221838737946301949049645297967275777676233677282215169217356775428249530927164874922118208931935568493638513375037570268716783442578803089006511596679798379328592522652063200974228368053820997830756141580074516373192178879139075092440728511685525606989498657900218992643318376474883800210655303755063368098273053256916685475892953175906403994115416316119147861435449807156801391101422838042539291321617995126876257360061687823803437966203585833658903466708452721601850841033196411546781655484684893435645444740917841768334196754971304241279044021491101262905082740724879761495333478753075686061939291779240861293621744274893174581652138230337857845363155768364654896573254557598723847503150771341577818700109870341962436353432022535237343674932220750495655100793898635481146976392278559487903859505821660774930444662731869869056356700035433238881144161947812581327716919678456992092328380166623304941529953561559530393575258216595869053765054941542267358250947155591900721680812616802277999265666772402050717963932598790473467123751471556892437736264793396818932853244490994708302226354978916690208659344312741582097882862587405417639627215440013455369879533902929237006537088339194290781901501320729574798845008936201405310602669540509640623659272341680229685721158435936180792974125952874380905478694871143061474545303333233412875273053340863246970409332273336261211704011305004182199963186993555276094038986933154859581008086616909879645582640451996263310086121825230621514707735461527764012275907269512409242794552820764425815038145549129591259787786252792406115854454926322109961420438358651703068892398820202089652908347546437064438999224158358789198494565160290414531771332017753075912426913980857539496780734785702741659265464724904097077248114864652455962497872888112703234541004077415096744871159367797866206009807209842275546926106475157415067344070531132591262440395057125970608526790530435513122165999197208402174520047606188319826793361402787102455503102762267889456299780686680151780067901766019518493085111571277376023659063556660577729593717445773894034284240056359964336395175833651366693993029210826209835672054983954885068538094442835176144656122980162029385191882814353495369815257903780204280124665130535910197508010880196943053951615575986820900779013473130623858919562229592004608073255754276925560460584499039306626085193013983524452906529745464642093417104214978325762368418376723547355815416509916013271520312376321940915990081900380071490464279105180607983312297662881919559008942164522855045489081904084481818325442626571410974143557646344744444968683139537730901349934715057539361340052171380024299771162238771041269351689701032296371397249252350230030091680956030811951362740606913945024023107133604918863332446497024510697287360514897139108910984258634005153672845233948177679025468532781128115617515157333207465237713216776998622657037690921032232748293637861314149436739429111560266532953573372030357807129343835474288964295090399630244455077683827668125714300572284217268463154430017008664221943840004282238065330070836684718307233492365906234236981454033463227820494200006233541933149980250861836783860848513667396085076580986875437825588833151562153271056973497679671849841558443254551621576836979882837260917159148845263505645444760460183481641365981612568133133308479730514571347644987386937122000189256218947241135854050814488348594128003725927008063411480720909803857823947672431358720419061478782688727456971212170683300171104833216748734261123131674346187206222617668008036094475306469105456511314052110030990807753412008461552961834856081284205438312308451714497725238089500550454786801050286549173222302855112845216369282172334939274658412377863978052663752089458596449968697230436098843097818928224484569437589321458867611053965352197234454205262535985821999694413695299753432128668733927216343211658076750545227695140701471370714389591155028961748358490103660645345429304693735536305971001933144260073520507642439234254032814633264688242100532504744834870745370400049614477621668907197438853777222314053106138458251131211456009787886179911392154553120136824094166344127961425762044429231632025794749813306133926669242597504185151848795908753591458120565643992323037424286150994615824233394937076635588695944619134441423856035345366806837489472299832133155575329755512275962206099536220046947032266853210619069786323409504194295176495419697179909135552668889803730554678673689670086348080917887880224169977640479163471853668658710876135203084809304561881273590850680890574914221754479317746695284825171874677407058048351033616726024536671079594929999920560372028165098917650468209490341995092238140113126802581388301745115413750709913504753960764747170924812050627019603971487209403859880669225407338765084672980239261287886010975301336236522774659909111988682166469142793365325498649577639916110309347253083144602970498255467909490101728708893041195932835273046747541990625324317994096564646360797139179328199806706265159709317715891265359884055115476627504568120271524716525689099695825388828656258019094215457165739974241669647986465936501109028389217586423876574060596376980080770734419140391007221130144931306899784460791861316982861949147128348851181163657186630560376032394313794042386563087661261794076865336127205639957985067317748325591269280829289309598184452760094819813930838560973679730477994871127931255778439964785896940286887101177061037904308725044386388735693373680092337427527084568206392330171972968051834569827838131383415737356466505356196893710295735854406560557289906688359687183622749568559660523896935964046043408093849723743902191424483221289621200297962834237979343890418908395167977785006125831937368942768096399358138646871536101665911133111890177844971767971674916494191574471135269323372562225434053551247626617036105600799601067692338753231863237667904892398378931189365093181065142451244905882855480231604051611026930769917119170217326553079340520058325689311318881084555678151468278615097139840091015068721243903240280754801612884883928807999964905856266462022906272190508682401255530856469625476891163017784764614475164435929503379074293024886643730463451966760304845235645156026447382044228826571848606791500669261784775094651528646974360539162712690155727208696358104973175546029802046810064047021055555685851056770045782574128207486315775324099021825717460792627400937145386711724779395620157014970241757088286870119011425108095427983932607470029674991789022608171100600467747983661230006238384791735844795504446361151386930023136162239417979918776530393812227871998570840433719655986790483496615553998254254844557697078309866642105913743125253068469602385400766845828371392693634121599527415870487051602103449957110514173775865565699221298303120764492041097405880524539663123142589237086996818495908664749070048014589173662894263753118648031322702334733207493032793122296885993946353286509107765879412716876769495721217760007933335538247057981359830414123994444932557856010581844917528017060110558298938916453655050449276149351644333849824882487959253584929311379372622971914935603606707424051257012958398986207914375602614727092654098197683413415297341401275594855122442530608178209683287698678683346137362314017559808552999339247102165733363659594226734523918579104813952541749864746415449526651587465168798834423443530430203199194869853550160133897572339644284121115383203315861035105851397900568483653255749422018331609851253551565838889274214750372688898950943191743469724989846381807221516511265638770668759046168935477684516392009768704956842535809402872788459955060444391111812684832337389099738294545240057858317537462919475054589873759265801736561831236882003702679867073562359653083067311624611322143836601809639448525154535721309924829602004626174682410967394840657838332347700071708624583402553175651520012842144947012995033940231636520398511188698459269063759071849747758621841994380880618619743371823920100523629126423486058629915026952478200888921995261427161509692011212508073797105267470247475081942586331507719908851812571766369840650285153885844047797212632209774675668784184950374324563605503165667304947870900489064429861479831195095181788762500331151383823851695182556094939129951009043366927024450825613547004508048862713098292901716464080207620596808328496124251630423995659108556302801994723591410479365620262988894095227241979713103417492481159360045950393503470664260140172038462036802307862926057016361700703271538041405680239702917834613139835071875959178870683814562922342593660060856596789586942778187297515158182430167912163846509738851797176425761505971076375068676639806655394083457176479131746454012219989008354277094288892807860511472475219612310405347319330119095835267776481755351286602359888768068791167752576476380953929947161375195073132212608795256872551757932301103917420493176471627316873024603971948706808044910631166123795120469421612493684520250928137979561190972757958063930545547171352959926849828251109041042282160245242916093793764892494826233573357828063443688876390942654398998696115244204546984570060513850219510332924336932172815675987805746855929635978967716003921278336994831497525224145440417389659423030932281091639981621281397302220896417423938388279640008083522846321945978957370965618178401894331324484439149218864709720007176005367981083682245478058682536242381689557922303297421711643296774536751691346672491748489688159161678285265148516270313506370433136700144991273185972182474560008507551538758966478607377580262381069438987347991630566360484050199968085766781755033120693147700289921971916119907532589339613179283074327615771857451957602707046214301531850148094658677152910685891939754001107304660633395957258987815863302554797906841991588939930512985235566351685239709097945335468253391403151470022280827386844136372742709615811220209558369821127393450960224816619446624787309321202818699294936543864368214482364983321976768514536868921655178211003061704965845604518439848390228445503497255033218972233011663665747988097327618344750668720080264684310730908994175990189814271997855283513096017290382288068135120430701569229671908738157474030054779020677177817406512168596136832337404895127974234371380236511356005819636800302287720115715872924414876106225760906874929396716803731093558448936547366221911229350567070915697558595819149531646080183430070749411357102300580237862207716022795939970953630597942859999880542102679582261758965605456691372614950957166025623761771601418414498084416016620760719943850883001736987306079145080351081538244516351489130246278802856130571659569990844493869431693486445724793754387336784978674887072120070019159811224843104419684598753178236387999020872421295360475244703342997628749943819993104331527421840109166399879225043542806864346639669116389274841706421441338981338236273199336172328835063545406083364593388698988981711718984021365726262568097273780404770112483351409371830329349382125752755382986639760689843312982923691791007186088763900988796516132154329746852069265870453594455455625216768238984198121364193212596543479679401963923825191795083512771366717484700647960571442601273388913172370562322881185373149125938474028534998751836324516484504385355094444789696689845140596498617110521750267346371065481424880000274531989521315908213294620572551900606298151191108267250492372138131456768210009138446338377750792054299593740613178033654835306383412175000382263170545186817860407043993337579813330627980827619524638688170438102333280767241902449876621293014560218082223523117736553584439140756233415044161872419080846842700108015535867446641662017951106321283659804262575788769451668344751574801990604205524832700108736340420892664204749291783050033728242541830674371281220982384958608118230571426223362909964408603396922034213691244857944769945432884327954874912929026738828646319403549261244705742629947176750484839236151975501853117392024756062983819227820123800606374947639562896426052281228462368490084254076848321629134159551685720257856461153118860486826006358149060530889868833708895141270708687630723924224275050756562244139190233823040951322211455707559437374007542350634962035896137792898374576510462342139264526170223038068365313826096797690437023149728473619031176446193260081183070880342609672673205863397165232791073835313097488291817418672855890104010295388712899184858485033225419858925020466589968603324309075987913175234764320576328527445053176288660819544215656363071158294425927423250846698932079282609882106895059273943658247397255456334510049472378218835519790486542939893654430263906944106934276463572549941752203665502301842404025581009853336039902138980008340684469316863469701206135791275533758099693231137126095867550578041649241589831463000757598152391447370163582819636621992823082603554603417113685162083208419178614186752902310289745340634337573899240673328206255875583160016963015311603319522150867664971635861258335656327693601380812332589838347340464419206830235936472120632433754791221880146648272798087618027171822368644578609935510760125691400079826312431799568649065271866323227519351207265230611883289696286717694926168260395583653859553393224149129177598292928431307315472020301189171974865304693634984033845367883142571521591455476324543433434522013410616489900455879238978902317226998583227363987604195103658325594694533307404026803510645985051526580589492423488313961525262725941052412896861487915341132756414829404494586537096952450734210677663118736219625760245000128725416199269006093677037294127168411740542176595989327907266438808777767636095417726874365715547556019569109977041405121529663799364811349021753249362759090737509608087489103725416234191508713447148225140527616219358398647127516461259659418818672364699460163586218985184370716090556727290828708595069233925322101023946518159492298294442195934827459791021223226452404182922209038808976704826502560519530437943218334106357164200856075657507646910593037781811906399858187879704211318847370224125865019171463261177689022000600479043110595422418047744914963232264557315510269692302892754435923132279769113244913253711410818426078507081386423902979779333987328710915302551220196168055436295020836308331261980869259653504148851504319000928811005850184464580717599157185813469914076327038601037525225060765639586996244279760550759833096059944321837244550493428775078768126867125726108635947410061581950176062135025426328142668120749664421358088939049000712087673315303630674624119843191852465190525804779683739219840867905911105709909776956433298444519871303062209081363489976863384160575826826443526973914653515336229094967317684446902674193993122913613905443774590403237759618138091435479274534285541975933720496194054778025805223171368973222789812331689818511368683780225912329007467747916580344136297952821500408143898165652043867168015898168478758108944201499224576994433476322445337691109288801495384686027786804445847672336888211749686738437030801964311787332550331086567421056454186231183723551596152987285562738237602442523524011387148853576558906527373446535925772059349558185112354081047971391461894264446255655505520170078521704022612375448718814284484541685436626315740962721346245603246747154016916888688045531850715464603808150983946815038063785369865904449865608908344901065845051247772178565799043315740559168126790270872688170455122307331135505654650614041701341451979669128295329404810389625511807140798662582385478367388863830874543726936614356820075179390959856387014225347869988796305518332726781804013695161226031828675955288613147847869343849118067151394065622961613446383627285192485254952741255223461432064786409738140559412822998211200437508406668318325655297258081313283460024481709782620862438839842387542582254933891027461174602531974772730182413698920989331173934218385696417265007232489040409614025427093696371073556409047013894979061011245186153008203265940652665848154247651251861213431696579900803358755745084180499565833146280584315325014446301110035243207000856241490048087448884547794875186954771462133277365473165425772395297442988180601215456114774164977633355401345634143233878816050804118438163068747635207792718834996173486278859014283040743567216702358939543811949689874887682393450951638817006502956703669207322898175358567730874219728543977983848522099683840558016182674927414313813085979878839349539595678311329322537453932115900408636445978255534721774583002376768221266138307306737322050442377039546627437556005325296646462326145957769459697290653774994583016951714788115521490107430142928377778439031772062227277895205183475742556191756388905355094753223707817037147057680134817757275279164954661203199257341449003365582326630005135543859570639390452526946292215790244501814277907180362043607567197376994948801656732273270283042128593150873431439235660178342955713770632040212763765897082137377442099546710326005266064252866462125243700344667483846483715742310593862616016750971425260593600860608548922914467400654232489384460008439724886465580935876347254820069962624473971099916115692962694202090438368805931252907622749439656736512280668302037058511230743138233330887509763573261387422016212048064862204155537096209902646443958928973628529728236924374706440412262330937165655004658264536436155599555946838264349679264882920631299334037173708286835166866453934273700012850150935712157120438599955597443043414726111419095492355325536803190435848963220149273648638997596126716273815016754456795047982721134287845696247332066716859101445263284974291588540212545084093481190899441218657193823797719171152623602717885200759984770850540160023992736924823498729683990254315934237980739383192008957107152605981852783698334825612004182326464873763201260657141820582017557341702086966948024519287239183028978326464705508278480740343658637042432092850239725429378751864569537381587406429116460204647459547438597612693006315643244181504899768088248549081615734666891548630566785540475084654532209650907171391572133162159750107611204598799404359686795349894108393501061318431589236677301495030942070643785305163931350438388987226135128767257581211815996184907895779226033225518714709826127102378289120632923515135033563929820613660551460260775663890800691686874481399102048349936542415414549205484271963046353937652824775910100260641103722154058501766451856197761534248781955082150349134837747003966383136285423531571315630443920173297478057628042892016559935786780915992974664837596670685318276858684451248994616996001583791300748700147959213384443418497537203290985580476523554135463003613209278896593065080024839677655801315942808109622212645321045311122727455668669249457131264046607222392973113473442628405944738649745976202792067674428388959212525579880479824158311827410053132214604605759889381497269256255711466513352040401702432295967449269874063256104874817020214412838672425079537439162934617922356952647780642120894202113879924036996677753495745547975390824416442144031479691985977914994973182496452916734694509799570222109530116772259980220250699565475250242918027374058056289325294674305182270604209897182085454182234973162728973724301026376042447955947738000923135242241602364635355274623324321813126268521257376006483772076269977105871589314448385347925118157502194112657624547871680297157615928394175791545757392022671714316193073734649763491363218739047480492509866431314780931266928131715309778447956596088325678027793955757781356311293231651161081877982347109620182807964194037513767343170029046281884019834460213333354128262062686747285232601460362622801106734581044675807868184155736765964085673476906806444648726660187773284716669708039822842008356763313831907927828852085278389153841621215622804077490436817982721759001633041649986310153505318071002436038185137359475532896037237752807754201791636522682445862168438644424510459602214520861850369576942340455327831477865714997127923386521939184160516418293272901434715016398655614514430488222320105197803677438781165583616626745586658397424795582630727704426530806850663086640200446545731743260927959957068821941439702567891149309717465392858397837215169537544250043655298443701678148876402122644641482120418097634044790119669679351353354289508155666949163127211362998200574437545698941836712178524205962267651778380254247353025871254221981174964964580879420477919877604873455388231242370406364328646260897310821317433627216097675514904392441798116945855012277488868306307094794859076249112011976714960751536944774841782453866645218750281716693234564647345614656582180851471452742398344384315061120715450032306632551831136209124061014965630498167750998815514454524836304054766072076734337750392156847195952978625229487099874061906660382062377969326022818772015150677685728384818952144556203201215280626965917076543493350251981626792219870936387256902724128251835206716145854373937139930924978366010038914716394290859077146537798088393380202509614225847102196119601436507496551562330465987659689443622707163644994978807298047392778103935923384080453410071487770186561766824450759682002244013603609163047122009409933397593901083230691690270970643479601238051554857598988815197687505512239337563689606201873148919892611039761314959814952816286672759390218391392266527394665161909971742205857055570968960792122484378492792064212670873872505474521621383914926557522466035064124262855880743550770956883317354056883215494574502697708279315372284819158087742134967536609522425183054438876413442964975653445756131357213810107800134092760379362277365394608145069848050977340033042959701263028433961432583041882722508808057351441210890248621595923565072822634948697208100615085350499969549205309284364490405517709200563514639094516515010770372877157551316377460654874545994686508914058855046640095042618965844318640079510449058049064840852774777295725228403968172365208031980210194355535417810906397677370756034890096054061233975988253729578742291591382460555300391740344728206357440692213448911104834987823650495745885569949620612562529328325146935005544811654065934469690695527929675224536756360974139973489914367157755109730391471855217181477226358031108784680641387820980274750183361319570575077910743029621010918760571390005736315128644355442255741741966741774210577661665404872638396722805919543461106465054961883140326617983904648322347881697166692459148330139788838755845580120922696468671019708914116359667907162056850224204630039797717596989213106064710897826591736101742816250871661617401130815672803441773251350466548689197540738073779390410188558975669156720160984089906392975781507520449614441673706134237342748313064620108164869649775362605955063207740352917200365031567072251693882559914582300435453938445024697411515304553875725633487798426426530887005558605354906991083084360583233297449148132613975706424761083487942011551340941928425300729239148050222918207011424116982246496274060865770021458181802655124902322482448115378663771174223915416761196271589145428305271171218995841660360897767378060268416274882183506687299480318112032877445096919984877222930494432459361858917875488037126107646815319948645300134885288831773018777785611979660485584398748619580179749770255279871736629402241790285976841159526291967280851925154285904778326652947159390977190392570879647389394953744484610508098442588668557257995878180196791678840225549692021423186836192454964622241475690922757036232750932295491384894492837787219098550378482212840520235249608238747950848817334207746096909979586637109864658721450056949317568323543358113424021666985150514680686224791964161045413302099719085950499589167803017265050738400496379464707359612268605728390779379088278869884841816742300110358830236725042682551753486693900217345420504492765208767742358678093817520031441670081912269375845824429286310156968286864023285521869949807758486234839675528282581252601741006308583273414591290355088437415932466470808821993584046120675412270704723755921230196654985844717513344253977315364825648382169883926098311528351135001691800282263436198049706804340518722519022992545202095037861394525990790645055946451757319335399201746399782757681405240540239691563279642554222886202248633028496435709141327507134839374584148519361838701223635637858734044523602472789118402781488497096237323370687710410846627731772235169031988627248471641576285681751510521973906285165282633645070659381765915880638632399018488577158794326036336904629941704792472263426712466500427342286246171332129244737683207545683020277538733119671441814323332843932670015695838895806990240277421068930564106543112568064686536405923517372259024192664622799323099587832572320775148071781809037598460279830022808397050540588931665187148834607626324567518622384078945236467232867697426613822291413167195969938523168110927666883169875203014420599704987760089605609071634488382116609187837874273171469257419796021048764493839318762638121021724938586495451204043127687413992108572189924734152892918810045629500626366459311550910711047057945681097105640717545622687758276228863670929464305256573015840801771644693053399450035311421989660278632435438272034321071449860467473512095696158302211923492333351211465483244346998909818204813636538458200473253728385240036124892403142951491518536210589767239598714016828318804515622049783879154225404028213969241956138936068437430964384243859738073675389777764347714357125020868647655377905552850152809156417120453997774233622482826704739197447830553706886158935047228776043783543856116917316082462934459489319640626188061532972500933083189341329401437045472278439370687465900786437071767467444341091030945909197299309175013477365349056720749241565082531995921999036185188657319567301823511119097135187604730199532657235703142581142165031396915824555171480507301114449395677844043144690010580939220660575667755861937250075807191465416140414823949813506889281587863603436429307238051848639447562436741799316443323902449792698503663613566584268080067169944436372121307545846379213234318132812778472860638978953529501136721775231840379545377166957299815045736973692568262544937598026511823609259352801333549935078355635234336026926045271816631570838542500786479772558103380953581749845429296472373653814846567469792242223408033572584035770488339267960163121120016644061398471960902727163979415995351486608472598098709377561557142386327577299600835754006463383825767933699705812573843416762897971509635282145590167120741345532661380015491258202244345539686128218565750616533063745602274897075611520157191005440171743471491011484066011878186504098270674126229487487505084234092682261309853295906788576444565909470554095621288725614392894002239624003061718110844507687024468485460274756676191261523466882917941266064215229592652857183672086313703315600837626571939739999249263194908541956536741709921140404588075643671377144979343993684924812287704544879711044500369597396133066142817422926744955747768917438776900631832538495079062587636297205301570111667909157797532504347872064092233878174429415591821064034627246053289197453725695566670037193156158848417216192161010994228815940405299560782809382758058125154058667607369032006890658173797168095873875878982011984502276295092716363396484203209808650000905526102009456301272200741980494480348919457679861444759526625084988876576562926948287005880233779171062796070000018429434183836647935124489475002819829256206262647989664056586274844954158883982817052706669063172764385608163483308178401900375310899340852217144362382614180413163775348197955782888942502315317163719363080164329605129363613970687770206623937634613574541090170859544020851418027231453887825695808192351458026418159311139768486903423152281141800086723892950398440177829706704770811691225280706007857035190301907876325735130858880140944356225462790671932707103209608244306599057297928095577481240329051343655189503676233313285985833931161822165149228241225212896450130449435377976745522537571521840011838086164219073148322642373638567879910864896742285934852348137113517423267488405965848483837506654949718094590146798804450548366921864354291668901999518938450989995011192305960958185114229602486869205163420248865104533028428308352865746326938035858594366171754848735514033183381449510470791842175081176651382529084738140791476472234971689296576980573430481420662850186578374189997041179154987757681009948922163886577149264193847356319553367810813256077997717933354330826086033631837416160631578750985170425666220605774040648190314233368258197169165530049302508360581105694245341410284238558044361169041579225429916312143988436327251650253826590200095359754352046616050574995576593077371684255821757260501388790965773523291864281205783359656706826707464662060285655755706147926533465560408198502112069773923640941547385787471580813033968882479412181114679418559064893781170500894293951942994153300637189008948405981292789874850447937121307504137334287547746088559379236287010823418537340511391331125068966574549452971466705781415810812544987918299957738132735216310217916397691941513583805467992945002210451503993103720727118120731777683471169344223275188527002426659661040482729230922939924459140578820757378947357695390643103961629879037298971315523611326270478667703761660607242692123834421893612715922527763739711781699872618440106410335058715418111377202821365211695693261363553812883713129408752238583147287353665923318355245984361605237722608132977562212894349517733342269433537867202481368548604062764615950120625978081806255933304236372912696245090350206863926148774449470656504527602324351832072242093976449243636736709723251366258623073621361106406047728210154003228236451362017246854429276988020928932005341325614122384123659849367691669302656492665666592543977559577095079194977901395253356193306043055587521978517495662342365272373998767604579434571604070473181555577197182345816143059892191670704734091274286784843858491978214578226223361348603776049397599806440097245796586375789740200640968324833816127154889629242070364399253667903769360786667888600173749724077137152365793122384057580486695698934127896586802618624977029077320867622005470419310586749830444381096381100887458922198701270733383469757283580018944598113177594851239866752901216155208693701444867418787014457102576678231798297608691946535449899824651335920567396614962599560536205471578331791777984296995762046549753359102744509665660835882668347396369297045938064012771802551890990605821306245242946099113829596377511776242008223403299078570279676559523681540099731204945806518833100029584868214705110393514661381307881906151808833405212932003210638229270426028148146619157525777317349469876013025208235226433208736921172910367356358564713304153925027079008013160581559465246646704052669986131827472370970683892688298009550037390252847840350331864416819935019299992044733275836579114454477612674524180921564002826150481148838364172413226464391990693195524584251840621818922404013059719459101903346412956661478675439285675432206035573197701896517439950847995048603226527354438176519511287174172708799929707256886521739540288758000650879664954863762848208112533084052627841849876449837234523626636966748293936957044207850197557440664539140260029900162451316832144168775068862319644485814479984385279749036002896881879773874818147984965393777075282514947736303844376425139261949879486717975481696870319866441046598087895684470152344820199054413919795178662914424196301991558662915688804625991455594140511527308154366703925663926589034144647936865516076620018075760330329425191414429575800691377047478886423857781953062570092247766660683666697978626817229744215060465144121914205283555299608104948896453267799063008022296433264535045337033775542344745900683235397522593576479063474165553755218091435493095462189894312453296150974998600126538610718622887079266448335372125883338902617442977512986736182736399343264793319764877378913224090288443343251662113012026158042282958233827037475955201434896477088827944972444838866910023461521573785255524309468719890674435991135887943571583901054588114628543199703770468300642647221878829542521379061782950991843761777799503184810685807625383176718594391465409499254303251562040159068280946230217706643131018850553056246675283078397044074736082091191844310589643479908162579180364093108822993285149585413098475352368535933711660795589191062092358876866653263513791837362816300253906586348810107908489029826407707494595119685063403308565386739166725444358184495791072839554833896053292598165508670039371600570311237736838733820883101702952724112328601981156806876836611408303429916840528259796637814038889568626339359727070770678541449279446862507705423172216422830954943658196634764012220454722760081940163674869008782292412541035032971605160627267942003945171287070792141883587186882081316185615440490848405236144652729201424687532329057807331863508406819072544032796005802888367202421279460913293917991241430011007159067826293813447175786625487384461130039541494703544587685634728463821869493806627929787254333247987740213968533095990058509370470057281817274776842543637830865609183355441986965752478157481222842223517160923594786605470151134850131934400336101699512888461955580341964141862495643616749916281669112182351692222480004720257969205048068193073114547999773547848224759316556693399924498728288874782760511255703506708266935215124697171384291740031277629237271960101471879918551744868534948021103091198642565029442486903471580852386405394497558812071717475002871817440766467715068862233728738095727367476546505970601104062726614308387507360047119213795030366782690995708594717005740362725711429412473140078059614190935750684583523714939571465213379303172023003089254282482286048953092184397175989182688398718822250818960377810154736592694854915028619999658447238683494466903340780357725096259136359314330359921306538980817992295894801760983511177627935613677084101959810583414310075477734687181493352535772959565711233338223275723509086167176861673984826070852007388749075615349065196825603756706611868137918927497193383052955302575090519616833027947138922613712755043945348731145870294838957542009091678835073383146968617403629227777142065575562558918303695326780786153251509851416677315635320000380912916363251325855638464227909186970924915317547890973033877821196984142791296633634711005439671172588579407573864243484984584419020061851779491965174782010781320255121364068679967891492897532236262432614507664925943680263602610318008516735555116024262200328679382542916381680403811091880711161822107529765378875582291943462011508531012353185452283600906792340888359597141801172790136305018662672565556282534621681764705629520016937292301474570046317592651561876424329218991347491798609813916402680464466624693628065208881081572712012173750278125427411689451924218347341991582982596324604333588390182578773315261927636304712768469878751279337386241457993541571419510959258095459731563524384998412348172614010593463137289356968245562748494336671046837789969503311158609051042502729209741316732642033538064586493954118644266618526269943458759000872028675184845827813782010550669837458306544624574061302179079045065771939690664286840931455338578615134827837614666311400307348921607709677882390969065978237857604698258422315927789309210823367526444970397382605405834021448323198378310961011822357853272976092189494823226857067710217702934610019112171409995098379674125443352457686983570536095470758595562010123697557370857342804678407332488377662752968181720190012315026814290945635545817973637283833619547384067190339493679090839704718855351598348042090742256092305617879082238536648303916253810636794023857997296007014720788676667734146561136621147398995206705731127038416579019781849147432489793559159875281540127684196944521479027382948193717773163904921291443429042524998082349433383079461835562358074336149817238390378672336907250054425576307657067817343791863081392984816832339131147390572410362206435880290434607455177058227655428119883228785693342556651384238331977326955487411338166182749789349532333379160961326885410379887780999855492577463223632280360585345084060231694939375721572930440228505926167226217167175698591479933195591380542131044322985098533378482141161704982933291104702076198333383846256492259690972075160155900205223373905413188802491717917602402659807322320167694413184348557914223551671154892954646844824416919243029437668925023176047318054410353568411557941313773401550679627197430503181110584942113447023134497759923436784007266347900486983658050395846472356033201879937253835490372493433593739538934568453855665984664648048859077158159176752021396207525004519538331379001433220860522795028686857698620688826960943098016379943762971476887018287868950762612728028578097782296551291167451933974537941410903799460044438457937614342135735289713626142263088276864557793497691240613104898516137547137396639111960245067643973477349839789401786387109371247942995221868044044854948873200952880423086457283339123885331135999446702272383998936858163583111928691062321840571260746625257536233923528052171902550881019765927183571656162129880499506186470971663258794996844991537507608236863713988967298510258788821380185450061915736589153103930736058706461117580275034635897670538494282130896138652160975135656162677315794201437387402758156530570840438333001257254019932491809440680045688705278898590242655500981496070348910076737484404176606992034986341641205357678675101129399082422282396578533593375550606207357666176403648922937582308023406129680531617609224758439258416650007071035159620039242974714709221061829249457925198341554889631008467407993296482952651211832502336604511162414804280007671516699059292790979157097511752610858957292128132520764568991136003418151706723972811203339665794661576341115241996730496362278030277032502104605615110131533258829878024087645369409852867247364507665888206480583575421840895067099576668594982535206468984063639320514322973712621732981207030944597539011566141752682018166405172123970951095792735491866395720102758583343874415827262660920953894985968668733556667512329454226807416336001221209493882944822591749486911192868817975761854416452022523518911213071139088615553649180224050124797677359114778171691477157595613708402302547656149516837809739388141160866832079969068541463336521856239173719351033722764703056752709916191206707185406033645003848886817518180735353702494659667847780166889070700007446997773740626220963094246087585128135377493670391588284729194568275280269707257838482382852083692191102289241765441893252369742902550809587564907311028816993542823300146714255673386225111104590820695032934920510557512197861672080384493402773772441504416980704548188270673988875647068805763903120476569642756344348613286134468524109971919152564464063500836589096365280641251682797068939115371399213570305571494342465584238183704416682097085874438493193782337411332615331121251675046547090581729960951472938599662753474201419544102221632895651127219703935401799234944205378906385689245197793900787408437751213786376734023280432717699339870803545676388829387938839505378602493374012604145929713884980380832749638756587438250859257886732688256475178892902698772599910839588677224842782864858827819109458741972829147677555419412680206372673430476058984385004984176092857082328798074830969124462070344294402129458916006924401330603933677411777404022550564793717848857389461818376759076629180408256897516833730719495295987786649865348415840784394034740405323661951999005085202773933644952478828694845161996260683195059481260100984366871336121295867981682285312136510451118473704052070004925450909525761286386847283272860613956772737263389397487107799030328095548005204113044672611436925753982242383845263905894743068252712490934256302218744179330208893520335720747166283635166714220717542963822577438855687978784115066642259623961297593531646178932389938422603485541207108788477573315878181552108826604396783376908855268999951090152491038149694591636668481844049484294465565501959936146578170567275803126049370513799932269758886393388106222200785453681604461332242976262036288558534939327222705091079227892034405737769139080422982019826603577725041671181466049376986171614723794410780640221326567938701890314537662243812992071318442223549425831412273442286009468508186796529051793587635981840452628092378525064481982643160747052278446628606024304183169537323027839341832560769462146037404190258784336106703643803849868213046018601376742224105897121274296844125348248665298787839810968287014331473086730340790952969980894617084722015739232306291376786133826008367804474559335330027918647125583702620354592199331166433090023839614124336299374941982672587091109459572347439948721525015501075171995365259505159994156328635382395558380549181748367654328061768247371345603082697463133813456549480048416231239773909329654466363215629923883270349995012594091187840738439628054698528538158470091551870016512847427981381688430550807873890070870479343613578793368773813858061694076811069711248052179470515727135247849214974042609764883359864122654639575621150842498499779813004692063445887598856656303014761603951343892336923199594139417804573662655893795402841247807715963251471928964838425492179060642867818777197176249891681485198486859574000070313054913187164343482139511345630462112883552612093104688095815878146984287922420224114563453814453397730786690072470612049944596787943318111237279926779226756604170441758057141709221917031608784563702378288961869871783685689797286228444479704057179293261977277296864755857695639484997686119506452983297441185432317449209266342736431159628515775997678186148739445267062424704843444372920993368902973446900693157106223768411563077307127696951618372508691169427894133035860140133377042530431006169718141440525162171439356364587044244092198079769399760341779266955927188807483628152653369709920879371856223657376158514678162888989029993254002034721630391728823140830355463533607408590451689580900876795807273860646452308037888510747491257234568362069400207633531440554745421230769031746560628896763756706679662946472992788424878859820667297979255451816579298684044692756885563373341785325319593972505167330907128484491050538942119042172181688908670972938528737633461914620798904987280079175723597274313190811082113662099110201029299932443075145446144047092159642283242524693815429351766647594702619720373236869688474981765057638623690175437922494586040476979257482178451326286521194490244572332684205933625029528192996078558838943538894018450405885025630872278694961224538872749069638170893102628509534865529818900317760038039758712287372860280814657657468730251133851302818887770138973263537269865699132002065595614278604670865077890582843650581032670894819844479368470795419976045622487332658002557501870010604337979759772537678941881955781896384192652614342485535957097547716486013998731734413978557326332868993536931194507716693530245518025432817112208250359591374540634235971926202236260240612761925945549574644045086438650886173546074391237999337344339122884196590947572720526467946887116849007133225951344200810455019040853071429122279863625385818015085791531954643626596620378873128494467515821852722255401872180988177033312522242366021778309053342669104144785329133146583471968534832846781165011527271087302407483469960837316662539571753688599091259854791710981030519199925555255190882253152939743079903522162944012583946972899310339203577813404634211588647224922290742443216100950089009991357336890928975599770908230677506025631580442179253537378845519905925008808322166671134764135762219998798877539490163841267550776905288667639480289721797814123569851668452267663955691896565092713080906583603395626037110335360905587506710112409786734644885136268760942801065219838119959501527592343538287842824641977930388348594531005984481603933105541009545720521072508758313571896391640196928702208522570721652556146010806888807442667086470570250341748604424625964321971601422665709193884031516770481292096545196371790653439622142971241718289400704231621951131899372071302423854354673644102483903623936871278858169677024673023450292445540944238619070864870831406916055276393987979118406188715425483964019374520241595923947365639232135385700911258649018500848803347922007011085797989659377060812444823223278234144589679653321147982352293839932291551915714458797276426237227014403327715387759191668981724709735161773195998688478862631034738442056535779874833753544956947725658887241042164314127769917669607425379511678252787648261202642629696452673185209429809064880398716946878527238356229582927261849216687473307512686402684082514491679593587377172243723556290631609468385351183293605784687977564571741008495890967292922246177245090561880610884388008770579896114724303245420535239070222755343324909015596214379231658939917872109689671317713512869911366770335242774897858757614125151756022830807833706463072465427495037627171460118633813299334837116772755886907581239237887578156108291530733130407799958882302680769083500509244807577448267878747975569643883379370588782981905444404149321376909903361065266326190446591827345882045211337358379746033341415502094981981425209861061965781894258559869749152784332627587596954679833445327757507648459025243354545784056858682116038808315933203797867083650573592058853856119610118571734587137609539021666293710278539306906490204216079090467007570775666971283581188046693058183273540472289626892136661850162202488326394934688530327827577307590154480044509786813548662922915668732570037481575755151155209198811850731951542167853225141847480685384486082096600347263217797305073491823015585507105328155817436924743289081594654889397284457167760156865098985684557364824763729711103977769275575006177309828749799304618414673589571538739085684574489569538048943182251274143126826948592106668330219008553544968504019465210542623015261926671588142175138925789317456469511173298606557918514617019582244676577133574533945454493144933298879302023151916709245919568963510853479729716954395871406415082741994802845725729855209276480309421383530699514473812460478984902095472502955020719512436977028613013382142656196189102848277506619709244478943880102844651179893651900286597344193064781989704411126179927536861371819068411461607219085162613849286172763384471038149330449253765593068858993792026211012829954621477542977328296732356764836842818958131457408106189143067945059304908024278948142606362203709912124455046616574642751213607130764878532997820004549323057600971272900531210346358560100186729423077997425903106001428924763645553094726072343319666910667149843011914995941605831366894872782603305195572023577306332513404220541420143205406328395810743828320248256973460042752790157069496903657539167538902422599543963299726849750586035714842645554424809203024330609743021047780896982632597280720483553821386916788141414789696036608029851540881359561924243478882207987340462455072976898919290481293635970661589938543723464980704753093123169854946723349777549059870285187220161041416586961522836147562202507276147298870147086746151199361780595036664797509134914131024551301894271616575571327402634456324268075093509500051103429554551555184974033046029672287391251544375802168839812993232270357198146204246528730288608310176909070588943201495189476727456311184190327679190169086540115803131073446691989173160401659151526775558006758272943157242130935862629060027980440882062508606904586031735198700453405515237108343501967394362958220064787878547749987256320322274481086014267178043270215388094107449969659382154861986213166452882577200738596194705718626030509959354804221443437122809052098248886821717023768174838331910433281449953928058486429933940400679475891393608475306262615599128448375738000404372710730307518545344799366358787729566701113750216091865917701108684398701836800408292846497535852022591405833524747944022488922141601064916134011066269595074149714372999318165332291401962974164998960668633014185390327674121514869741225622738828532315560853144549002634686125065254082398221564639714346780040112661060433333629357059796390546132299209747037158826540857235370958577812758686907569393588961882500311790431611623887160736218728518396781375536998644326721364573167667798819201381621999705478027593928461468763140406857175373814421787824723663910908470205729714893632797437509185801889415370699845416994903397762195340966697070302517322275397932481053646127777362669338379726319580510035410202978102652845383785912037402124777625954478779918847685679935933633218621207488697901759035981471249287653729587778772330525547602144986085412665317485285238380534593810406208984910185965439764343944900793854609757880863277063567208371467212894898377864785801526112742920658960649116204384937733223257567253170190982976801913013448393529348940248904524498703074954371090628985771075104867095867028006324839254997411344847591835624299680618040869035479256959806962989240653161946878799905548643315214450532287669574859334001302064986323103886157002664388885227077738949490325481374478603803448865214867269212856411750060838216050792477754961872530207782765469408552666184428124725676779324113425204376749784910547230038306200474055719914462505992829527248565806895860283241332887781958716285626666322034899588903476038590405949101239630690926644290632131189376888149585729707366902681192446325752489976621776979184551137999695188673437372579798499749797047309199546518840589989306330917119534121334720524860050814085373475806957562257961477507521472038123530530278632231876749787038835878924944729440701576257962128134857088671115298173874292335416199794321694870375039952355818406435158716662677477112231091972997284555571493184273980045115650026709915286649278458523698427957808773310206803541508300655777541277125434886278318600493278046401317385984037364413553891036994799954119683970022197980498216020409432780001365824459612915336146392788448698078324072504466521689839293933635341506067603178704345513889451736619662869679485182403882584145224934116202008084455592252710348121296401453870894664687925388096408956547949574044394298027300675575431042435431584966722786100651344822427432613946128701367353201527663139438144726725568995426843228040460842157389983901414493004810827672689280783481623960913039293348877030181961597624099118696251339097017668149922048532689950054769850600615889626474474041495468353978991327989141568505954168838786303878203736321448548210908415880852464138628927081073987457107685609660808665072485646130282315799564140053352592217306475781713469957788061052525226073894438264902733245451137847635730001090881549498089755175420948852254818345604903376179491301902075469171059471114409762604921495319023290471532595431887051251362945671780451599103395684907032863032658846017917741025636714168507778224107865258406705912477668351544557774574208114698981803701814881877240586937799427316892716910515389502582545455826679521887257602505827849703294217023500224666051726413206443115713760594455288345156746720817801785913319224042369444445010959407017682620637330738381511358848935618523925771213941423331410989305247206773475925442930575739606002292028668545892965799563355155001507168735734540534953612539354557984692261335658366759626393568736189904565335215888677138797917982187952127646643651496992582473274194796150642569904415907182077714097658854804745690422309473947302862377418852415429272697771263479953071680839238903700769490380118457938136285137534385551012868848101188445916281610623130189206137626484262510151528313846192079778397012798453722055471014208426650999903655448715776028754379161083253873965078430449283561149697977522483384641059044934170579548449743091860643764821738894064824617267893975550468453406454995281979794462420518922937802562551341865733746303243514055264888116758318651666157307729070558358754429361709079521783466748389016614124659338572259711842454865759636501252904604409359910211346879781579702396486704416901662503287379239567172545663536639744749864784799019869215266256295485239126963364893645195676094421848413731508826797862054882036055359739328098289517061026964891954836984526080420809633477835546944279096280432327879534282341153077325895775263504754317248235288299695095034835295941484049969229929817670239345847443596505163970811752963618976686977694103556941035257610340090875657258184722831470279242813878691879255896524156409133805593799843310458807855790835889925206759843865702511416852770302161419236904751822211048104221816615288115810419479783324477901707524593810054763536860943824118972147851952600842720812221781986065339131638483596041057246544167143872780756937858264106488629446993944725940951815457171854906846510096462750608746633616497591850824535479381057340465571367028064599384079220753900513828852441616536689372552157696595960358275988455591031202931078876497504990681299836265833041592871128422371435975589863521773147476390257829674036628369275607203422775677324245317169765405287745410389351363826661045699042744423778327909311295214937583247501293145016351382473540826044780222124898596725412758566221998344693037635977944480289465609466129008063489102601414527297845527727146229409272229786217003485039069522497884013647287608357865125826740285204182315209751074076117481431287860593242486302311362167057740504180744378408690631716378555092703239971840566988905014343717165308159283613189790342624148270497705145622994111966488904545085470152927592876526479134548330656008661522425762391044210864314755343593652974456482988849104207048729642632581508679067782671139762389058539537641338038288653257172450572503704383924865107248767291099268290034715584542633521804385491303179858679812257008006289839043849131828532150838157594926546754819221262598579871706969331789226550755847009451176848784416684168876727756480449810825714870782562658804944209665381813662046382631366622680389039080400811070819737007708909025409538565791659968712550806375374336582972585648994067508707726057305989650571800925216740308350353693681146399884511782720100558887233444063262837500011255064619382564528987969527181624415414045070297752454999083620012743150809519646497133353682124312346473837929480703316986314890388884926678661827212265242170724829999871077721128223450134004975725018755546525101179088864255705392383386998534252270788530784953489999984000342497609288694446526185338363766940262689859587391119565174985967298799480509012459304179100261964760020510452031053562943374303155660425515339950472714494443326729312108088732517260468588447488647624988873276293299101492713551827854307653778072955692536954607063217318649586732995758376319389897653534079063532875118424907402596845145332415908187204939989729187932205665762441549781287291669589381560523934175336842968995998620365242149355919215501140439983918597331609713042553242031751891559308390816244111666359757470228587991961561366937505999626506398434189570438059742502510160741195212085903898085376491423626407366639689062277016421437985182874593646549546781384127375007808738817390128512494131597532909933336422753099887430321664018518122618628682915296767697691960313842115697866080737360820077490116996512848089223003086680287311230707191303833772229026120573832119146496794991599524096391787663190951417128268157694032822387194214444920716421013703686904875680065208409591038074278180089092698229373603755578860518917849125087328281334256782501183115231129807047611572691753100282512484548733002657720087699320689742665377158393118999891277519382710085641242720167552203956633496721086554193586225139908729338919529377033196724949809207848042266364762282804849688357504619143669511353540756369177555553768812968774937934977580773788402072414224062523688052588821794109564684484129974983952127991534361046424298380296634604835602498861125471308844511362402234437675410610808811555297516257970746782288551749785725510087398347184753275538422556479800133799846686763847317177008635380335178176555913929620993384956615960553394900965312574527239649175636856149362924143068475151177097562283362444366693599961121740313318369746789957484112065989770022999665974735442869063875870841426943409402675170748611271161131375504889123880201304930677280026446296144563774477097959876554653682418332060143936227789697804410348867075216008969372228267482438245703192136707342786296281288776495197431693734360028925732930041547400359150286888653067438528737355842825312946223108014310915550649785091134906168063776658269423697639336219574986440056320660678051386092107160093691723102224641766737116916171008594086281734254195100841281406129773030820006355942439191077907666084928103301078036293234205293281495931249598906982746430893202942723055932306042342344610274155989866987199514466211576919601449678996445573596513092203401181818284511113513295645085885553635369213538051874286510181733372066393117404487750096088468823048087020273348340143631679364586796662514592058840122662181208605184850431275828935561064186424107437357892365094563839545175800700707339389402358648817197394548491496737300924391728204722524609885361756300533922543248958782099190836927347098564920852676691535009617892970998724234129583110012856498202259175868479535852176471622070983757322449265033277025385983250113680356925285929916266904890987202835633812497519537790120146668452805366938868142283356585894593952295989728337084678061070390398895387028617191556150545894962686199205428761742489030317859438774398804616817697129776842698761218081907075305040087239634783472806908717050289619719782669639399261562816911198741342777820236537224934366498572801430253463083020001605195156986425595232112825938682978305295100340738539174793631732887984562059470834675009538376397418221032600012598237563581153310397857716131837192878909148779648359413785488593097772493356643843233428222701520935463942481297665656267416051368471252974275566349423982041086989942900294585779392879758560363866602831194340537239000802326698687077238113054628331995135393410786131915595815904671776532748772291329120697443030739531923700034550052463801513840968264840648712443138591866319350126345345338929329565971943963334438374858825269058516743166933106014673944021830090472863274231096348092200968245617900356748781813964211262215326108053836613637180739738445479712476519914777453733690485429057659265839327944846234316729428287961395368948041240529299303456948720905077550209904734688799519161853885794639628386751859549330648439842166107050720945266046268280328323928827340555400212443295767893525796573810263913762755542218228062652117504188456909350187044842299507825720666524142060252077542500641674228820113727140914362419177085723017286438714452617056651028473358080474258820315378724412944609120741069067426303683937477091689772207389053429123916346031191950094111036903399232594791844592991307659983810197318448173361226378757251739973547441131982915179944300741807406936565502932987701814408119410736397225085954648109193195697196212522461619297896917787284969555198815074608971376920700950170370709355477642206848682428302170364776391582542171850822306054650269443604424754262489534515166241731149156764879469108288959510770025809668696246113417042019402197042390557097629363484924421584275565880217912087255319506549339156697642606591691278549250333754124968553151403139460314333542612462279061346373343324497029532497968615195502855784432775579390455151684222589430102477654044430988615209380729139428341576911859887160997957217450566190158873659981466842088399287625636235724691614419031638495086747724857659937836600786384839594843768499757216312120741645205428190812586967592540596098832956014244212711720864693065149905675482363319938563850636973343420574427154277429073494648574136093337890570686178031859710988780370593790952235599630880967540090435653234612545854146888109071799033376706867498563186940480993889902505739496204608604114311370725241140095780014032528866312106999458807673488377715275269834664913498419245824661944068741231742370856032908467428244334662290515248475540963634181222782079706121934281471043098678113624964764817282194706972790531893643243442099169791293937836514292478537196106289494522601100952208871338133680406967577226113914248540843689162163748445414196910095834870426567788808269043813119702809790347994491827195315266403804778989498658392617923745776149592826086370819691327185491586460701143213609323652537570125414944201243266861165344873058868352824869406217528672717506453717062870157267322310181842095619513503883496567668202501924807449840249240272912249197524696855341237501795701628450251761029518896328545995099545053383607025795972110058200751041498310864288136226852419682152079215766649205587166153442766214308579622205895998609404272711305810839311796502773438190312191627522653226840908271307686400461343333587530853632005976393688015570473388075088468469335426924815951267059188251776097443104644477594923827392347939150908702703208842990373138542864005552486147256693037538440231598848238832162441016408637112417064904808759417832160949073568440482516096423091642901198393303830870120587413504744182343470870807117539306259094192504912403256814974629113386245228500794704307461774297142218428478369491175691478982302445835281030161966811892840219127962963118044717715787019423294667770170851823017028929105349215363200962652057196169656624169624682170167101459633027307100358135303505583220533528864714800101745770231563592698453320034010543153009936289275146109638997294289896637224745077223467562120123414022515151412159822258661886934055110543964764552680390770349686821755405629099780887904129500577676098397290659449687575696833481362424247251200102951858843450842312476546514788942594059525424273921173738037158985498352710778508875953644155947245211621804614017695208499103023195164090198839401799251288727707738966287080104477300478376475932786522745459563697176286191453166297463824725026669779966559523620313022146621652208901215075177666829196230331371740292257690240230218313309156739132001261623036529299629046688608351165536113659814588147341292212391207375784018733386870197951111648427315026621368928190536147090379310306432107471681783214683084162008266892123103815827286436961713751016698742495235530420128000937520643966320518669008878164266572301942169521872356192684358403586828899495395000696019326623472256350655904562677880121771819872895554311399806485261203794666736843731978407236899481728290262304350527033428838908445999512580413262873164554621468962278237397598185317924838640522629002152840181893706953050675091389326486014428389749841830095701504935329273675729232004687212128423663241509436074671715037502944696906335766191181364858232212940855608068075824747460855012691349902740589163761366749170146697804665724323764830979734022788617473235348944196476282913921421636788712795133531503871305287517378340757386965307597001081288342479184927646694986970849585732390667160626754967216818633224321158510795139922361133043420663840817489200221497748682371619028910265984382664244918446788126754418911397246863323630670716233183332640863086501626151095270412632889544667807027718220092090339943001025363667398323394749860084474340894018708198332304661461198313743383026853852842333724692308840971678280228440016104987265344508233271788457204382859898226074276229674891333756020499768666797753339923610407500488837038518600680841143016166724992330555993220655320137370915350193947033853517274333347601117339928182131585464660105032813343357879897209774889981713711941931225050410760042971482952056155542074963519763560933640227572884675271313346790402559521352623158988402518821063988758600771705049553136637229899795133958415571060291061358179155411718654545219455976350656692146557470016274733397979444754736754945616975185991610486678043857071465926461466381456933724931728113269542323709127569913312352450670197717236144320363234015119935984675949561252444702593711862518821998404491793403211110641683309445596762341845049657040431546802470706584204019848856874258571551297927713881035233059127846341843844159107668201297807350599232893750934425392544302583982926858775369520275715287611517693894776910306130697037935728440615182367941034600889818140492198782830183180383222140229155131417777149258901250229498750673453761282318480366749323339093438252438089099285489967675335118558549534437838345756503274090975103875152237107006518369458937278585482855765722318370974504430361671154035331702260411374357888521171187797521511839267212287301403782367242844117712045170595357243865217098910478690504612236114180231785846360071920398955409560610733372023891006965905553906635519345510050464841239184103378815076402476320332009734177257607659316983779430149502757973621371328340042780950734913040255688258329249598636203373578717577874826379606047287988054794337685055110939039787647921240437223287083772407912308612915880349871809987628598407127493501455142890819539525250297800571212604823462276114209880681911869115112129454782689018770014049970641161133114972510311012724181382431204174544687540705309453068283188568938235213005538433791057397355512143398958422021761676382261296270838354039447987402771464260775065369226913987823214481749381458809017457481757189784743851033517106572551019326831805323928810468702027585851259240336720988580899591743568638726454398865129348036064746699314342263781611599547255704868095483383984592057399157097117098141757889218160745651061754336610546409852469547260085312438791882011645788130264659332160985422075542461504382097009899936511261416754655423815326279175565098681020065571601154650633282159578696752365798715740441710054159570332859406905615922204932407203374142989398292023018383178507628267664628435701972274676797588787268776550797019411980157377665824059990593264749226331378052298124578718927117098920301378825420890144696187118312724085913823662368736661001900647017722945173325180259137228478091207681790431050642766919581490933759366044180545215559696252465161860353332826889808533634815182128041965041425695066581422851563387254462247960048677580150391538542985766361510720773638718912695927650715379338085010528195874586099785802125874700638994360916390274468426477621414348822516681938661504993621176171038492282555100438928471316779095739267195885609578958904924342165099659948122397526831477961084391668155499018181686797613570982943862255149249823298883315064046561600581898287441876482987480335048080939418437667252261365676699088775077068720080257010431905088157728614296262150642028233266735159088272518764886104154934911858910186659273003651270966441834369344978751739366761401400059874986376856044723952246363199241984781627861275880443720089122672473139745030866792572990497229933630489940006885172521588114080970651886364209390405067300948666811997371112588252843231663602365279776616033505126188180553303242726989772775446905891162933979034216180007222031584224685512607340730470337899331132049013158373276406321872087846900993562688329005324946273104266025369754311912325452365493238631856316273312430742876091783766190918254574928131863240287302788732947503452598221727252957144459849519717411189879651400733601569551888976392391165724411103396294087069789625606387095201071659958041748947808831150057419477028608600995137526389982150281382215372998296397179341922178212662358213775474492970622340175977599200784201510097383831905994510592922674908852960876166241440000949495813159637692338119353162558527077262405364150944234625438842249713593228240247518796533321958157148230472748273903115657860093002738140832949725041534620904629894988586200849428616207394981415919589333172179336267532965342183996440006552854059004840941756453496876948317930108797340810874005392939714364745885909856322758914339381683029258199349311000452167537723794002349299756951415765925598539606353877791665237311325028082833381276974545281763617918484135689261019803774919001848949202973524501119155087176039539302230844819790017676072843218693542010114081857444842470445723772243455651892963125777054279392971101544263224020851832423757168086421420874143737210620416734251038004123787050338865957250457000219353500239606583808547824557749592697603639911800219206232085472219239154514212096365518701091491838524153236492673817973573988333131873022099852656124730094911334195905374941307310066227847245774260534327380341692484475017783316729025917661940466752194719535190760512693330818167646405266175756930838911321732322029129688675285232030944278540556074997079524197132709636005300522779248039041014859231004695747532089467079610145651882144914783873204611605501653544370407745785523285421832190689105310023159535426116758600981859557833238408454726938607430103062612748331916446533190351703836570303982103715271798807393747051427471871114135804988699348018978500951083770154034244069182344707356123342409309199057651359251910127686428026293697787558529134140648823137091386690791901808280408578977813825104742668095052534351084371076339044005780659851928215716171129877512377085735250897511130126694343940622885562026649003108176155481376255745904000719500427317133503495614151935769444310068785624054839375292155795904658810384265938849863845293672688010130924009523930856483568487526255787825170734324090738720188951979092864177033527439749342221208725155986835184418099317571296368358906304975547784624636557582047033857401985981151579194523235838341203992000671172285433702922742708844307600497305692164577034164504966579129437658066490366027292032554332934865371886766399108787853290688024637254140286090367454999638989560595135465865585651798359370701648644672784192194086582983019821651126237261978258364888840082738292098437127943566794380546991988819968889039994954663736021824407072256330701691282933195944161302875385873765056107458391449009600355919852587930501507691814464558097409844459119176793777943928515151998688997773079479355605932720461445413589750636385085226278371068309531663082893592580011253568362420187676256304206466292267105204422673828968815551289799307819354723625841065412418686582978142664564601043993400357084649351457433530791711419585618917718033040158756498502262854139377971742248550280105522225307831404434896051370290438139463128525950875820686847460839274142337754695618545961314148605559563386510230505984446194023747224145023157477107826259239022292606122382111119120299188200249015342779459657672330256678247032873387446807789073751138888943928567042824827720638045827315626348615461731783197120811094333066360271984228965342451027298182449726364300324039308969645933230746556247452541707096537590709338227061647635138135707486307634631714052139814596384211178224922961858270086676627544288079018687081554965284855689708985647823704195037585961627791520208785034241096571308123140554004127536821394826668460171161457075588853691607828908663497494929281550834354242673255630012387588795931621305865671338938148036524866871285006906230492067871592307883587414815422564907819803922560668516799770833379199837606541673918192364594082173634465644261663983229420223952188396783936712299924267357542689957498221806782564900085800242199684978742044228470813882827320317182197618802838023786313962431449059808106208325298435124449545468789694461694848899603091914120725158403903547975953360793734906414571866604440107323565130569120308644707703066080056161777330036410363764136999628748062127401438945482232749241903228034057357527442775938795790796227753367341723582255577586802841917311656803557547201345541913979284519654618544957414750379815997734351447506303503618479255240320400477080617714083085307457292607568675077029380775750730639460651429034233147411756763847004003759474272703934303158887988280285035773326303198410197051534701363541390130024209263909777510829968508148536763269901942301409239636878777821215308168790546677276575973525513156423555799220216253310335433875358828753429829911828004409207247866150557504197402592528815876083717113522360448200208885197789026278591219377647551824104574399098927586899238293762808763366327027959088376660315777224945943340123275603560568799240790318266390487804914245881111179508852641781277538483760660227739469287330250268844038121764328141853448896069958612891225238852086303646215405289475591930614730438523073791981461218134257715533076617633500671252903609464156868257772149809395103059577270325502621575707989650415618053947980994412323340900422459670324954332066625672784557740912524928551944913776727230969085537136388934547947984809287872797533626301236252118614024804451163914161444327594690485562068815734636524896069132934142559599644600053999145006721545596498209677053827832000287239497314345451381784981596146595547408207709190319161461570545700523542792459273142371110587233472646973235501948270794089877911593020053652284566503178223147208650151619627816564356547424005283254989593523844733308220545225013392344109547640275093593931072468257723168953382740084209177350508036961175218079399647473919127444525674377204658013161973400235560538670191463930278922857278296698140663261363010669355258313187131819190173144387423462700406745010958000354619124571111868145180322954860264267897029629751267654211579889788707482918599220297214896189988879720599988389419613284371038887598770603529940187901683650690226942614585617708875919816702897827469376418944624010599556863327910746992478882019567244884383815930537403228278046623804780848851533670880324165069503204918613340470856922684292126185884356755901063018299521434000911256775659422915162967862913607202521829730512710866492824100443050376433395000053442933660723514762625528569636195452448231392446890184659850480115025667269958838953303942381987348206727329148387411784454745470440534098434283460910227049137079828490614795405655018376902021154973421264462682541283433809793127925706209107828356625400462943047425100382493122059155906277377320440229992330790526579399615544134485024747008408286819178594290523170199992077161364947628229430565731323048196487907912038301169215372371891409636638232268330381136080989416544213651490629895800619458908939161943394955199916382206948106194684250360041285237501338730524029462800114810318665936847057167680835379012170783341101535065015056149178493968949403063870001882933254131602365050777787706367881564958714993727335189548208897368098946933767671758949745148295501413267484325930972048064207637899902335531674132821160407549208075553916682684211839934065723817967258169641014570846819492615314342048780110358131703852527405503997895221606281256169903690886017419839295202228168089767461787985361384744347002030512092455019450208027176112682125590987050041274508235009669589128545598597324395321519840188235390362306652753248213442849535394150521642627258184618983894494867793383093067964438864516784848855547078053911524447217720662986956169235805818349387521674449036459973017195324344098102598188026425081751242605890295739328888786691553354415841716851463101547928559820472985479920034983473004387152227701124863641666206734082859470108518872838046502134419691293815105109433605394685471853312821018172722657512892163701915564793472289835708791303177297747714760471714503573922427035853730965211772249176442524632976128206937452739464030173310693748076505803900829159343047160950541986253540629856978135489659550561677864313634867708687479109838966974202239028313917091890158344715885372872360949039899306593409337597180670976893657554462634070231056531385308491610634581902540561860410355489073514091484371038401379826725776626300034918474060672375490978359607391004129417083444079053769375376941002956411068608615539578227052068238134931006557028845500321924149069747188984617516724101295155174368547615631574753256795416668865886139636244111562854810386003095631715032242461050169650846753947761525454917634845096164138487749672472271640883535860587101246652564572416357016970137617704654965049785092694359569390359520592925416418148925846078583967253021659142146554407444924521873435368028204021451283599694576810427026190778951220230522260744915236651787785186861522128788030517267289045416869583781754961077945930120824025176060391257444681371741474411736918122997289810358570181313341938775273623710509102514106362861685980004637201954070610714927303441977578628703958866268534917912791041008850491515146278240223189329519729330423515504262625710540090177465039419777146555682974012900963402211416721880920047547629200921064521814957754894254007253549425173579051939724008421000310213232101433337006817908602715055057051302649225967021041849120086882359985903266246286950995507254053428322165950444761053640471672853122928225356560953435459267090144500819427595774151332510905959761591996978324384232136630417773987674825754258248154585094925161253770540252644650879487724995330019006401169378230831533676962357709439688876500568838520161136189782809222725685736955377788930890371404242856775373393402517817355906730868825552125670193321735669153521402417904263575254257803565409002484379787232912708068240417786493790582824452337340188097227392410719404373674188728716251894329202232953796151459504971509145546374363451348264341564190655923167715299663096788432781670701658655917585325725885672980959963264048092993866442559003944890698221911640878350675949796259184619564683575535791930549295075576084803587595500065793275772195563533904980180786897855037241289854536509269657373658488515632203680138737845623044671597421698630123307706401944795699225926909349535591261412438322574653639657789300297414630284475106986742604169151763386928672983292238920918463336751808839107762269298088521580764474880661254699901913121772472216843800757285432386792236011848694496947014668108912316204982865311308468803726056136921169456002833394729155742599102566613514855182932536995113380025273114973556185568908872353214967688138273114970158414820476961235037139539095228062593986490577396414391066475562147285317145640943303900724445299569846129659342291541152802586502315796918330278584772873185599730579328843899052039472039779629693308574151774246850462623467281245009063620436780975447643150118626701414365650603590779922043923709108788380022560176644907968845989409489648848463297135050931685629417263350067159543121643202815038641221939921790834011468825599895048231969736748697810461115136240634855125961461457377020678737130802956136268029863397188671603104630790068402372775559875951719891688964246646787115207848166051572264473766559091339777559503527866716826985854123459507920005010424183289075553229224723831080972978407336662837571726511381241293336932002872626603532159500418946683200650582176599914778999715889460257227572334394409188749734450474610311518809500478650121266733984258129259829987731556556884978281863628333573691869017827904590322564010631034675513659632189851458425180686669001688155842279040894636540251029098922165838728962728000945991950818352695071066476431164891871854277974527922980434166895726585502666290010404359196129766836582456859724422192920271333570382827986902489736909332193245454126596793181539207006249888362247504371094293456826982762970500737649976730630887672439010431923512234387784155380893003533170663673404443592232102519058647406068231682979551133128040533751691005953496551051282441821612597310056447350475091860361278087473180320741730708057990427802014658640601261722061928733830439743951842410545547998459229113934280053372160210765894704089541885718998192058466820789332208490467529962804928675175710535491384798625318444232720812307560769968935645373147979167204603569671309205786343662480733662484316313087751811292360160633764704372235298100788595619722988695721999917705225436108408076259346662298503268810970974565399960423652541988400611021438761369361578394047337353133748627363353272869834391417801027567944508070861475275277405462727478029122618271955154405540335466252475696191542864275779398006863724178841797373863069580008039227430519866229467693810140848251080957122850915029254098016351067647695411834957119825341215748731822300404420575763984369881653723784236340766556926744383584952527005292271014093674369616351102026013451484046969311006939800809494993730943108377597758290537610860946977637975963614266141434311733796894334747787184578417569158546076738580586582755168548186991806729949508903430024695108647393877439384217527182633429843339805488892071693025744376139158208023757092015926038486216975371615519137476304161416933129779000845885369375688242809142285210989097706748938129985767129195040922560764332353662109186456071638709838435710534436643345247200871471673617344591026509004173074355353485837438075919549171541835612991666413853024768984801644422439391336766014632111180890201866937033934830250942520607085348483308836630887886528060367061384069090717573837059367174078941193055537779308408861426952914685887199620603569336516708556221211822170115564976203532938187194524684052231932694196423944208040470952840904716814762507990409302765703034160042439531227651086463382101694037023557056140147956058795348090450304612482371511374410301272805384438891105179890327370924543526479302802281677950240982315255778914017462663864350761972525168524421416191746634381636961224994565198905358699880990771580528444068849854522690076378942877102078396847215325201158206229662473792358712727038543385481595445750101063047084759381602744174559867489580855175269767629592330670242049640710006476414541091581814669210483410255934950089576674140659073298147074623291825193841628086805021701028459377565978990952304694825702834554569480858649146740849201466463960718398018538532893558872629441054171729858609193070343414130127450064522762757900408968796196450737965196706486965584153382100195669637467929373684856159554672994022908029710889774691047602595617620644629282810111267637284994801193628879441118535347524776787740733162241230299052231736870388961185138343137630047337212441515803785536637523765834229801622357646743442153959881409416020550693769689001100435238421763348536539234767307314642941344225832813478735039492503044236019120000928523392016606721881686883414793714415823787974054707498889143718846060233440262372106048766933762112663960458813824168021274837645268597469824357664405882059174633067733526274924350447643788140991279989654464282966305391997098946793693000296125260913111266802087752378087631948975439865834027116258591840424728671229744730480885289198915348640174694577859727026407633874626102263860974546532446874769936381811519648640733958515180120453678764960065525442820792607357212565705374311387382507570149262796773798673326611869340609854122090805784997129054906528953924058743592272602537934562375744287556774760899524224852558926662477582669776485721146419639740953681878520642310885695777965674797606706020906381581982336894819438334428776566708860820168502075958996394679517511643870653845670238642288780175050747524944977593112296223519789827154400006642553389418852419773084972150573273857917782286286569640586880634112829656742498070089578664377203715557629907706446948190882701140266500360193132614316959303665878437780315797848803232407610839850036682000144976510256275589647276817861198193347542748575488771992764637421273544295170506383848078547528698736363167711951535805715934514207629816163396979498282011220465238092573996843683874816019382897089045438055479416746766094535769647349670044293326507555884855504830073826015398207206095207108120431172756373800514024661301743755339697930576226181488412661699230872047264658971550213496699495800204851399796450803079960935248199228639287074254450660802771767790702500506911201961202419891801783707584120236041478258996744689457151381889496496457240218236559779495814166874001927477512460525568380822920309987534825992375983279128495626591374904922580865915415690369297284514004770450446644615370031932372398457725444221492042620852697813891265255283658529043552074820177776048235739173716235014567349538278177832462130466997425280030290365159257419210934705213833744483806839973693123610440161427955248427393242403577898813743248797276168069563614434931263757451777060387275779832904578236971045737208339319244831918270910854524299820153322379296776509567936196832964099285133965171303169899549013609218826798559233143906994063874215391752491139163493292363440145822022484603944646968305805592158997562177609987930735996677379614353273536712537840702344000233518383199715133481573764455968152380851385500729929251759240264556986368421785544381838644222086937914453395904661208953038498381141744056474179572176867799749004989477330909722505302252438192723330836727697429511206483650002674652477128202253080195819559383122550043902716158949482362249700847211284920622186611977138059011677017826001577486354325473627008318268141806220811196294925450968309204550409494930766291067227416055579651696417869330382695648629069375274552524567510631706576023853525487601384264479298335382988527738320162946931350262497997243610978183545291255902369726019956291803804426267724417243311944805785513678805135574201040646833115351953755313176992362700131849885762625937495502894208012412260232797968405100015894791332683723627334828520536506815139422214592563659448740561869126386093565631880542283296206496375760826990266808925190586025490297249436651827200692782627821820335402848771800321086747002996995138517878490798938630105102659108185683328626728876762616453914038539962396483513774799535582924999219429545368513563433257064764767785087070748101896111983024271056381803456189583995158541888134531091007574967264089771015146397121600456957261369737540070095702518559577783612307377790984958724154240141078657830114322581426062371837845717038481513870813841217042009898118867500750824514128122315806888265925736114966370705220728081650337540637180585732295452544191485709417245197995701454667286680711953865991565855039256008498796390438079697845271684759082269016374643919651772284071337035408442232868166364776557316378877419339693115842581331785334222275307257232829066965353770693572194136719098454644574601535013329416969789767139264086222532336054762370083610940116297631253261029759589659626719782180793224775179827098847722579198339489104123941850454047091854497385248711013278532053584404123429313155568781495936501759062153842126596834354850246667466400284277650244704405915104966532159174969970432023512116502696714182773529133777473272555469733598679825686188215151163199993604635017602926120759626121668158950193236906622521205412630761887000445213567867937610200706392466802875363835317759570630517253127264259298765780119120310684492729239120297142637259048599762293612343398303580555670070634908264597624464615732843618455627763188502905154924254535621719962449206806044706900551188445628546688767559872448816733283289508438234068206830267471763411509918571114834473291313265332087599473540143981637097297010686298973603613044349843436982142894132655545997997700508205507700299060036268827138102983715793177806136949184618067089548044578721341904154577939215944554101946459798930465026832159247032817231168471604357754072561129474226720520428988794337994562709895638788204648225532152150235521292780877932012328837465932051150329522020874811346865216139871481437972787446839687787024085844176371526355899624460767461380423049800551436064130203916892184626586893562385480602724077061836154799155115880917855307480782813197755922183873767647189350221191523326110607531945493988344226694002464596880100317951990904694231424147784743873304732905645075443982183865700840136975227102818515087709763209611959007494358943747098310647768198771094825890462786515609974048552644068805988300410620803783278387958005607803827802725362017312399045131305203116169074414533006993617650995251614165904115149033584615961160699977696293751417523266970085916287683344730271530249187984194352720911713631391884106464321454232608470935151179536488098113602157514573473984407999661672983135687783503748002960792648289353963005473910950566754330838351293701447257996592160901922017547652727451999113820804811745853538944564627288579640873063514411891383140581312522579886591190882994486760791260800313122826491523082808560942929854990489396277894630822368445687083864081163893376384908556902328012333130334125745723443327740890912938726908631388932876855496147506893439508183675114208383412005738497038032195066525229426791061809714117366104941906296832537583694037928939954551783206290334611919576656426154926882212888096530951017949581403350559382444086541805904674890937344493325402481610875148988791246881760361614171314223345950563360041500767135550563184873978132928333150037784016056134345480702998511987686593643097532426027658025298689113184418616102617841187609332715852689114122299057007667108070441728721130250541480103928689118308698424877328549085683333416111823859731442887150945372095860730838312375331542114843129183295285372898192989693090328044431319585761907882889849121350190621799821755715101322388314259057586186576685440713384111338279489090777860535747536501601365197670635401727237422147465946298526542650730652467463587542204416573111366018072696616792459926481030103576945395807416562393842640062037300573948304443700353592112163755208858033552282579195575117573651331503122064562598869011555185060017903377792646510584856021834026344061492370539523914482436341182292509303277747524532715817130231619147938069477797766759229734400498564445214479567183674184668414737560606933664746165809833961688996556313670185568368389168149281145308980577235038187710863830795617155504423455698067513496284642729659692220062340624591026700892113030742144759788985200996408283735687130989391405474194381475191086857028178619444881516791766538574164869825000962605094662352447294348591037262082720901863487845970262534715429864264818708229737471148066999390304724038865326654154670782856829292493052859891182617788000650018148552966372480658793122453863783858478155352088289403824642976987462394730029686192248866321118307171921711255885346625225891874577233042729512771444888976620020331334729602927048741194326700718080876500866502104961950789788281165839088000027340098253361508769419572613283720355155572069135359014005523928344494568001110856537987154220759213097644378260997191145954147692712305584045103451315137468668825758698154527554242678417637191570721117324371580086038757396858717724736946264573953500535103317093568117459219107622791310163436455433730382768044224656950005121158087143287849340167483873189961944817278695559355465587767461291810439392746899685211870823675877927672400194647325567782965123335334644660304206130918411428498131053921123459284524367185490030270585798894285621042078712193366579050894419893153258877210157723268017110008650748065846497235211302446365385547738185730742463809752600595450073730729444398050864186993732506691696176578497567370189854856308083022051599488685681322106751295097649418334110604692407766282834001181142453793329927534141463754368939904589665591316917669042485871896099765327372509656900573086568387416498704724915606852766008868129476539357537999432608533469157042887097803439611470248439031933358781806366937332401861760657433696466775156263618479390871953352881222247394565572912771849469507516538071587705903257042215091619438840031537056340071670057507565715621209299817084586318311708242653487774527913898779606469126223178979851796507713632759722303115793059610115277728926812391542567190449508991164942241777348985128195285332945560517407306434926005163934646136874722091447927754008540444672052547905754152670959744529905596078903913805109375927362944942630945110914024077128900045761227519816304625705116999235156781831762904804400141107653604147334668968237380902588027140866660653133100746450552862615487892847914396469956575087092258240136846547783536300091026919250988000288911667234702527401481131963791785382998974050286325871410985770091716247854198928430507792741700267357897684665047338264120732984884032495121013626471130726101714224573887437360505640056010267733917002999425078265195230717970867460871626693315606105057239024160262541148010544624814319748857951287618371576176947621872219454950454489155112131763928170381812095306391929288198298068447537001770200849144131698775405057595145999889703732989744204084449071876555617017678583141877849851437996288836164241094079288748461115148179567304506004997974763206746888742391764651997345951060354604270664905847870775087269303257657539354897341613961819660382790277808901413097340610536295549910563712691870383303646379549562951418901681392546518362628394938653190660205296911157998271082015881343613922052787246225978207930785499427901877937034425923213614187855714455161202279932120848668050745269992326117358076751002211172048465308598772788716168890454891374514197586378986093983006522780960937663142175167975006013809756699573218562945114449846609240200290967027701974089811022987929360245943438533966170742572119937486006558006525174058191052434936451760495365425895718005309817222838308076468730615415225416844494034334303430726121321079263968861886517749425045277814759590883845246373936865094875342489049801799019380866289498517000970029451373081311460396241031161042871100994105777012184979794837895996780199563382897845417434109569974418875512509346021475937319331870798876499440985695357715903557094937049335546459565187328374946660981896280156358264884860024076258182784906627186556247171734989829329523564361643330776776605164732166103649180121017987432780008743623247358153624881866160685829595786654841596540604404618454141541961142821544752682040036150481996288107228892077202569865755079856605489697337475438657161895438399987174450906143007108259376220107945684293892745259206245528486511437153353346093752939388962872034139165804160624663892633981561866245941142508125772576282946000528299465703828663186081077972733296457209755892524812012079245092215306886434923170857145593093035273161859803143108337396308497543496124576886159630987966715219776134286106928742990698419834766893516051201614040754214684470954124485736912450858034854280950843413706513729216186089148811310246895656530985589653629855821075509249402851613943770292429896430009662205124336006783550398735636045452965088800298099606718134311208538255343678459078848128946127478577065419683492622587255374280983124260921018180675631435757345934136599405124376777345977281067521069562310206555604960571590314862545746649809657335308616874167955562997770976858296499738605975121887809907122027067372452127965269026538675429321192800587867683401142628775459972986439629590211332999535848390021494208457066772863582630381350618005005515282352331408129021062880489819459137493975098480084817018526754772563860400232528099144977317613997668887067761074453664407944316115764050778647667508285561738775199952979223989590446016988691595667197403073359842243115744536273103360382732642820081008735731751471163414024522342246696472996604291372026056468901477044552090969818734384143694334276849015599614236593047723260925634444739527280643956599991267911698810251197302325632815690760131800852647572381862374286890088059148267186304222101110236003609245602122859564193390318526025308126499740368571818022844517894783914799017859809550753803663877765895701592425751784236074426957469675615723102694754269345763058946659976580212433084857865342425974919751714459267312329586006472737849057592494112163647493373533734388922445302431096652403085309704177099959125789702106186791444570562227377662160598554195612306682493321089351148700325057607589510922244270199216481686893097778013678623489153370115926759216400420994892077393015578545908733049656262078410517410114797879038798164412480751970486441319101155592807640629257660812313680574033716398900604599638059493260736036833567472931303521064661082456889982989311944528516288723041985906532600384691804558075411109860153307163002640272569938107328034448317350862070821261512636442563661166191259454748115053268173122947422744393226299426760040274495883576984421311855790414411521823555933256595662517405953130696634928413958912855300384030073103128053207680416877001366004768883090908181737375007925578605685963312431693987445387548397348869512355827871085978907806632391796273713094868779352937752735090336274699241201612474968429703547451800193646654885055240837114245180306525318289945114020332034111319013558250477655802068983081883060388309399606447287158606887678345484258179779852524423465198984851609626463551059614680907371153548737056874033086357912866637747144432315556722604412664845402593163469951421420139902661603353834559475039504043387742214465710222669487442150974077254989725492168866739770229122600622605603582245125871856720477452816726748717308497418183323051884605505442110242691264313974198742772817699586365364210917964159157830474848448364782031038651396604594391668251367676752561129458619752151594489003394573435615420246522648494042776813394668872887971700155816402833148913401621351594315918071887966910044363689388941536001889885469642259664713335973595061289624865438252836518985503701216693535506782360824734873050001663946278254995517675840473970575165182295450629216267443735613900140490670370783619226152874900676875291842030755955320306576115339380324315438693511082325282293321850045345735024600558064230601169124549376411794917282409429092784403569993664265750801207484093363005202089741642033410147883132082962854483388365747840333805013343327516512722846013759599018737249488460977768859735915621851491145058831310525336083100506973175867218235509177762956096122684720604021021303636641917708137454965496685048990983341680048771369588203516290388860938284502108657530081151846822007074185561192260845325209710883648652728469507690283445315559164100736275392187768280413743330322396612204564573196950702928990399932285011202994677864323230735511920837606027202736316249108790588590518091309213538511610735267787060507501123397137156671312026372281388719831392558990293499460433575402937818507704531818918964493329180937472559614147347728164544735530285930569054351591371665878279516944513473849026289375494197165479156125725262520543363617788764067832729007294080055535589435601065945579117288702219239863942630571176202845227238222149549536705896410056047497546549703191671427586129000479363711764707210536399345565508646411387809975500223524514453679571969271493925160325736868103725998803210922985061022152177946391588143055561542247930794842066334186075612215126148980326066938236675952062800644723389821991697016396153532504696222888048182167007663880396138657298678175781166553227712388647840651054122346678430801413095699865204492148984980724567003612303803331457866253917516559345364456169996950945307884201775004322660491470310672685021987026513200969863200858994333105922171823689332205635477045932220468975072022569567301829708166946099813377245760535403993207029288677275325169797853285018550834502178291506787639672018556615009018575280167917729577649807172281883467011699755574041099300729616226250152022178476882427049850808746638851374010257072941568413677134984912646792075232134764339486943529471183832704743472659731348380791693311256854753099551967368122007950810131594941206625031799582506502412616763465308073063319830362295171107371004761816149704907310030715311837766756878910448705685025076586516291187021060825928186727687831011181365048403863265356861463391296854263482802786874368177298649872946291225453971626449348195763157255668538737545021126646409749283439426368864026036893861186781756327058802212552712814662278516470184160162466929725417108462768425714081928022366921058279313055575209171781952773840777305923281877612527679627392934069470017728324745384266154140336204944414654406159604904611969467364337861074070931854319909261854234350008946345138053986087293494247715593289243094542477856792991850609253919656007900692381404612333029286766410038245013152038424841137103985135705606817050821381583539009860841716929644731757060229693171805653140095781804037498647196681498745776877804879816172711559255083017457287292497821984962490678329395444210679188463229068322874831457585816096486113819936633045691628623759352657601973719062995310098445045968501129787782900921158120746699682078595277009748178383270776263867650001604970565895139880870244629582007123909131793436094364697701287073606047340876877049455987333201320121230291785177344503156943115621640776041734634839077311374728865732571336240524193649932109942255189029693326265039621690181255164596886363500872260498868966161961490183148555853917823333897639845047474912891869626318379587327086610044270698679975780456168297570798770421541791178941172758045267829572862886058089918734749612658694184345786858697658698945309763299494518911852327364938765423962706751245964040742742289441044569784786416513475635899842434585342739196577322025108444855299363712605740263988786430892164187260873186821945082273540167957770109985046691982986467359919815261516753460811821522857049057836929338411593706659549069131792027406239160050713505178015701834195921972950966700188596279840222375828755214327901614762021494817655573469730027806954881936175449884626654751072269922326533331292380360142697366229861370048593095947616361159773921886776381863988207223598235816367551635913923052763843363030874026984709090912106030081429989279524757904384624171302516815254140784176841291980883846745013755253069451152575877218102250690895840732127263725008204803029695621343559766569555748895926833632089279519261025020762013858345694449378584035121687004246992418269171376361899918517067913535180402708600012999259112635741853801576593984111059493000347362639783956059558907740017641935399496022537143689693685373501302224621770243774059885454522675397767388921161141968722619707360241656450352670873260061611654428727121104579171678013730057698272310059491198392402515825853774709504852510583804177847982190317565102764292549309286326495462835265612463557786066947536497618374553480185268586990219717170653268530282296730214669572526857713729018867921118570332116252213750210073909441743781725066541421471520704585960439000336829486954471683468263091140725224389844426048119655765023613161100195717842008534840758503844496586234602329295222986083976545646845440496103482214777212033992830526882656760031103793493613895767544499598438099627208384190138627064809171728872997261173616018641309940626927393012218727683304528885121713632308888903934320125994377838680869180692880617391254332003691266071012904965494191182555571006444933712897548627760564990857773992608984913232756320236227632004049381137785273447213890128614635819100836724408948985647290080568523847112124343045478569973397711852977441966356751937159192560556616540422304186361587247344609198064552015175855520254871190504013353962365238773501711276613827114847922394185268935282330316541814273458731060150520597600841898942908815897194043488539529034514084963942948021503163182784527402519038415853622357155320353821821324922883239386017665230587088603156696280360837780811633447695739221710601677889887354244144459859812881785201340535280654561007546079471508355983667674935014098599103338051678985292295061530136893108002491485355209909618387172987377136715232496359662002828143817514575419243671524447230651874626664903564990082693479063223557483974498148141817028673388280606984622564061081864869309657546527870763139203452493184551253708720346285014556469175493368607167773005682320400296173671712554018818451584668397118837598632388386041390629405379010305925867270165736893812743902336058455757621190412510568250220169353306943274203230806638177616950832976476420014682427191911774038085489438211855784045182941858348486029327824432184295845558918347089321884524082501591797817411015789678553937392939643186751879525911595338328784142085493413491552044405004342046554609942056154273590593039939060211291419983366680420339920832830838070706062332827418347764008879256634410593446481878252724034125846241467491414295641560761161811428576785774682513856050028460207030077971034582648846497905165277428842842682419829581675364472485946542142007185539054169971275644380250764153003594402054358666348514278801152272917678625988202539170497950303955403921879602789812581173314361348383503308377890690196225693055587392541545128612429431081864837181550190337450641334184750869253959614176765497842933672558352219468608387568766636827738285607593820069196601630660753132206687199174388440562148345198585168335626634666944911431632470506638363671750080554239811402907055290097602003912032259992243043110293321971892623995171655542957371634386699484140539562619841317542140407748706000986505811109344635279164217446104909926951095730791727392686147523055967980851930103038874730100017307805472814835596581398536918984146728808674687821459870712346111894725621193341502352335009249584456308827993501319293052587706622069011853138332040738989163745997342331326964248766671897753539804250085568760327391454635441406057593098294932182214357805972551852608829203864727844889499230723652436980331687448196172684072483859658477067649448171256812230424176727413252467557312153038001758512992476202002819688469351373331749337085254970656825354090110024140995123034093818219409398333009119353368749313786336051809492514015657587721495263518630682242117799663211056795402381387735833954331430525928041644378895564115325828624226613260073250508847285787778502710345894933785299794357630901721597636990071611830460858567203248352135129042872847775595445627259405330322022312963357016179369812517454922247817582705068202589070217398000903361645195453650732492270541856213825513491947791303111152865323508803674378720098837439977618914220817930960717521786929681174188841575149936835852649859644586366922796309790549324202967517793382017983326012290568742723432689180889442407484385330107496835659165317448915459352078331957660098930484181693033441882113503075350707941713757053584619910008860554497106254855700652208703741370087462724322075632608629474344526506005587505229150411575864997015404951012662678347077307046567449778116802356685201629098694161279328405497731422721627734631850893226191442178321230682288446873879775347605932206142020312421071331490375642585634127726839059959511148629610174536551496866817848906222778446617568841688180852611785097051017529410858982260828378198505418466071513845013330252092055404023187080484985756088481096776569095394382746445849095324304209718645912886656971873017100280819903703059320864436037415341921787493597508070289997971896178948198571170916143858642075849550224620424033963943342073587766256106940714390484540032937544120145010627660938333897593770205569475370743500650534312971233751067816761616184194360333492965633022967946368104803190050937773830105389074737092692183895404036578562314541695150159003345618047955745165853880992804266576729382222322059708503476116888351931827149575240340759678496342507362586364218911501620680827463801757375849546867643812731946968709404136335865487361909102464948241640670731536953730900598497495355222695314974132875992152365957694926921022578994259959529943775958525591594356516135292262186983061031820618407971348034040898796906537752621995303075420155936997212468958610351171399029488761492472898575605725701764718427079797799504218969596145333200127784909429991264009327243041165917496711730612373789150353363212617601296565123044028109740048986299039281765325280720190018883736110450569422140043482651502762150579374813357161379999838978831881522020556935390238716233100013769099639354799398203852102090662994499721460439032470906537116904607599181326638509029661879171108409731572362558960081201168307857804528136220519971894538844878429330806568072167378720663472549030605145300881200059777311082211810785215720590818002328782000738375704634366771208406453551302599085032406234796412789991732662735032834425872583886031663298002038337635451505009872813193239303913573665001425528467291562085281389980996320753617122294212113099345067475411034913430189724771978231624184709836504643740993920042555284252928946619331069547071889128953438645364002910780329285090203177166825325296395092577107371801675545525721450645447244097768368344759452572254088743344383723659856557250740993377316054285731949353355639861357865198517199693075095424503059287560169831005705450128445454036673464606507169087282593792380309407077558696848229438463572896120327216978324528182065874910898228174357592342132415730723454177203476697965932374863123680313287563177670102059751880444029557249982468825985264863131303750694487890930176266970397970196383884112856446089569790748966924273073791634157929649293426132797039443581546510697724784185008591278094009877737584536686364441531935618906702103653454826313266947661209609353597884179561509310987536899801520742212978582235186212388896809896211272055878348852019815928583439872792155185343263040646632956438542752500313343823883152541606122080935578226373600208852910158823247052777944911328987288957728669420365921834738657469427875093325052470258086239384883925966787683330979976995239507948910236492314276228585474612454157763139777374838529380630238687122360266285611826726397023268560091903924974164878741885977042635737206813058920405834037959199281965949766017870450122164974453292211059598631749780838368943887354172929997931790135809951110450572036667128299609852426392234844590792276474502971506278392202221834403900213315830372985734401004201777267143771896887942957319370430068900132468822091928222571649360005272331009649277009807928524881279552598408001091864408630680323661656201850014081161771134513134703098596464749923006048205042189197641574530022636412353148295590825349208867186587646896562819481477697158327620497592667323184675211879669674197393684201944790907973186249337927877810137427990052654974504935716817595255156695033063801120178820648195549303662344189292178961593988617686262751911421332556942091706817900001574973162966525309285965063153488909406684594529783765043684949508186788635806313685865325128658661782868138470703799669266693243212166839469192040064937381222233834159243661259638619418696553587739117315782858637463790450788965887053494498763458590907614776230713445913027803237887680441636482541421599680108619424030344071910681400910097292355760964368496158080915285869009789069549748498214385012881519866770965671213621678749790759736817776992401765468966977879158283503846630670070774970236206022343498095212956760870495590993686892213729961180048047931701471920053046512935513627117520176602574993070804004977267923365103165899440258569423329438063269288661749159153910065719326895664855710660196747753531222060872493314112108724079366534553194218736804898877749141838591948394381505062121390782354753156670173308128513244709372003142927118144742049312893946573460052996998361248049055541362584358314552241601752569411788750377253014677499387122962343690035255611287094961167068231228234862280414491372115891303211314303145603404926298819198060241943663124439750711675979965345367696602093222623967634757133608723631604136069519764020625649604250441395610924344022136431702348153479874216221320502817104685048185549459488215847684982420150868181586607680086649435407181890813290176569344080565964701357872344274155702503402497088529287007566400644654765832085007020314180087151702569205916382296399417399015866455471975754260223265387429014391789159233547673783098413265409961776018621991688271701906248755631395508634423211299913341456222171094473753025359133479334929316384245360809024457044729717915640441374793567414174033150624723606204070696608786067308395259527345901827849882628593467356389477461277628517619092673371577225244780457690692073853647372638729707294662391046047302482743075685502597953964583929446473734537809497274344762999343390236352751092569583515387837754088315056055409395860796944721428948675464203995969638919564780837685946390604327038589789011593343153032379416615486187789432118959353422656183413664414639950509853082304587172558711959740009080492651212718606311723188015394425807194002925774491546787293937972695257021974527683204149084259020579464108287995276400853074888071856473892070989854792293283101179951624065979272813886001260039993223520521545283552097209179822243261997239124188177114896357999205168502586326553156564452736347710805190302983641082483675101277471018158775765115455261879740480824854980558091944728010798908189239552934151940493460792889268101766887230137668527460504336485645733277575416744405611549040519485284062289495120191020276741808170298735425210156326627901009389132405067811429040124156023529223966132579611007050711767351644538232033588238524479142784851597916069334187721599729206893431536808234608217378344693047617946348552848240093440238328471505451086208799711433235897484152985292750897114192538940873611609528226333160617923521428088729625356817720100204480332125581932050889638511732682850425806601480109188036187550589978239619464993506069673727010836226504328621268883211125326419427216531882376251957648521286704949814443622036301454101595197477110338367851636122140019510430865266798240040996536166197913132192793397298875199370527402768082350703633324370702097812683502915253221886117481008674052237269486736112163975940160427079423335788426095424437504243833055960951553850207136096485547405959858328629291955855206535976644736709266117039234797409538986864128345518158126499281051625729164443563268374262498967135968094478887047046545958437607208139840433891595530068529835774501792799802891049197731694834139859664526724934820607236065281224075098023197056925651483593729145969420202058397833894513728160775691539328641227387731223335057966953579484837186730110746948704941317581973208616531900850008166696824921602923242956404417787639883501218183191280796640692061182070231550446708138189921627390858334488667406798037075008420021370246204508868106434311873981043909309441129728869178330582591194443469608353571137516955371215774189382457478669764093279264765055105106621027694481835224808815868782640152427092674821745645899296326348084496358727791430549695029302789241460132268867730849029073251890649651385184370538162272141306331009805922772035277157093312541313890995256795577658681936704551934058067632907216558666754169666349493720994361163458833997871641930120161072692964178193192123734727408612935202631631029742932963113577798959754523949903171580163711994810426979529794864052483325600707355411402872423019084759626936799304113561703863268364657944125598272251199808022346183756885268599258197202318512788845072060696952893363247308037526155913777430282139027478573414451953575040008486209470152502278759035039487748642212990220675592286028647779137505996391521609761103348206533667544197979883611173175228884585928633612131377544548724381999956875425669798754441922952791426180773163207104855239269468776593185919409214665208968210399154286945235153426935300365673640596343039585133379678885629085853264075533418592209605362176828363995620735438827059560160919274172499796261609422278372819473075176383121417467053066725095236708549882015210598272683818192482419573323613994410629757183349968337736469895418504784102161648790997600429655032403050642718563099133050927063214408119608653441924004917716575991537190642532404544430050991444357323111034308905122400062710382886815017405671752915778686585803930227344749955530982892320646415727691558204769562453322896262942835698251324868727212537478977506655190689485425255001640706372771817925749923110182189708580411055629063206503874893525193974633599046555473567572002474263918658285487350063260427606038021268156108376727774635348461731493084654740796244526857720175945355820093101504998188478663914305496653478562468126042957385358562040811667991151788524926554922529278103617075417446371456164393810646571695721754013382796063594414888173929055529270900495937735427851235942442186379531045029734196107243481308349176632578360438558834783387001352448632148470492774605093793284348163773951375095256511602975525431799362693997998179648154543343980456285301137554000292230548189367369112562473391266696770342616333194789240139391090178100328655723055122458586214732092778179156952000120408656084329391548343809974338485959229141556385069176231657250301572366960265059250191514366106927878151675839455464011295429692414412067020781762137696306098480227308456143596650801485721899219539800101480104751351386799562546637352999750921716729344702702431475435696045715901895807643542388191817936376741072110150173316775867263024478106121248226158649580677833681246326848229869265413438674154607614670738059926703025536289472848341296384210820772247847381470053143516547365841960550862682055272565199570459504204176459328408805738134572190946393288192775629127785741047703117791908139050313707216347934853181815278860456024678527555916949312579989833760851120657916722497320833025648812100839055268910982471094819591093534535097236670566421690114162631663133948608228841387035377084099473063265107150615719301547547419596922107696374499918384496643612286986836050096468535823443186788882842993621149250740821982222517811840804364274972575491415153833617770774525834621744343999215621690102981666309764983973837605537614320977884969550692337466582276681874829305251882693602586275903139232050800897025162501299366776399016998970052683970597864907484807360295374521057299965141778707216586464893088018821058521518826274907787909321074027927018926064114132364667854170398908419579441692499363611315344426910042841168889142311195751285161333365722960095157736090982647269288384543142272323013783381932260083091552864835684531763691828730407351628628269147512520396801953877526681531224962757850087749926453202768729851342566983137574596243598335416151708884969227282454754277782976465795390929054177477554620177767163091735535481538899754860023538537347184100251992652423387866095981452120546607093563866474365958220890039823532431579771774975388787379399338135243824665888720442792960874396372245060347036969337726371072247243115270915793864845302517261869090107884370858887979872750049429272667696118635090101109081975481532083560422102630381351668234242589197763856702086721276036281494084121882139632413563927277605041600082252732946345066825137287551983956217522366732674963663873094002442617029609659158619112325073036518635833304044412714756461444260547277614161042967270520664663788739225732896608967469990696835951154188674906019299467460079830735067856706754281023441371004904662844026700479081177049016865468154777262046416887857669171380952097856731013423246279731970762452520566325159121232270088342007519364482116726163316411371340554509906103371172817658076661306734782281369596723353560052047894650933958523485370407705692643809109536479709064286468455599994501699789294698125785344170559623693350599556804814644032726001078410146189801440598842015933342430478812277932488814454274115421617183902784959463228364202745377341119056590763159396068441719643279444044971620767741972311953529809502576025339756742458187574754877829562818056359166747886421268775555122296998437616343043728427286649031054392260709894254663411017774509467394474281552140264892066100450389822280230950150343672347217168819173623515641737470567205342728680097263691339304864366015797273602456985191601075152194863453843090089669477960936072557312388312040347971746592037422632424400495572609968748784251814739342333823041592922216043361627121990404843590372995618273103134954823650328502695013409019229764579892740172933194273247178501869525112632250109936558282391597977433438672700797373336858246263434551640349675131688472534936419719311742243139600667263331224606877056465904210220508283636755291745781338603975054485027216980821606692757632851107555956837930241091434421637270724965676846019306536957704066607363225620247342082540685878905034309294049060855265549274739425665875317170591731719860977170152674915609170207140518694927132966574141955420563372630837179775773853966075347267950057587594828815109832499225030641431636739300256212053824664964365054654137079761389134354912400487564811576552315018698888765041922413910781809862475138836255671517812011228685384391812831632211475880817137170421341479054993310480757798318909485739677099752477985210533444431988294765133771339173274858044565126244923732897287661164604109876836544882297663098552549001112577720074190827689879447530971902427398493412464774711414351976209824745298953574540798906235958893253982235607799140592915150407459038378512930630538551035985986904462722399842425491360475390665408137916247005465091423699575796453271132074765400000024305195264220204412520110217928666884999585757186429109336137673702090770975100597632691619041389542402794004975383507756625741207241290431205274477139598164411158851843481078697000328546315342419861284696060497464985706015800397655962368091549595973156635857272421869185799066675955907893861027644272807105344088041402963446594866904503540626578400284015746175665096253289290269281649659776528085665586411141005181649942105486528237620197079376574054260246341025198649199049770684031576994061190626595045974324200481208057925928503912875495699181670899350137851404901947768785739559898131329216614478454498266339540088319867952514886314616858625415048166123915639390497239563235527462939605676178074146623628168936796015432845030226689612009258414109104470703811079154786761222726982826936869988600199748885757910740505924098646784526968280718105932466950823312809788877454003240451888198462032239371038589525905396763219889209891164660206636319317935151611393463371913593134208166201786158195083570978516809941256654718700841209778406006594140874920779340351236456280053308945222401661945779957047646614395415324544849500651543262209128900658450513344695174110150148897731927411132133176520404348765188935063959923188767094532987223507908805757669267659592349399931628678328058986977826141582644952036041857811365555583865066513268456449242203828626710518018658077961861424660638667226899348725873771782423601489105549685465972710789707080377576274700297692099529359428628597976381892458733615264602050951567345749026498284532608839448497489512116105743699447272809581250682389902552177955964646417909972862275687262742423774014246974100340410411777516094474659538159855328994320369259933305686269171640826639551355300105930285992410682244831033657993961845160043423788933667995701940158839197478417983749407967186000414647958360124906269597120568475682711594543799350424404916180213666776038505250777949650495016294306029253548153180851254174539027507009479064659104678754706720658907604195999035319483413289486747913751990485098774875838001803649533048209110687202866915905776344317566280356655865088533580605431512233149240218528602727125569685111124541757959163689464366659642409756447052298426323042956346381744427352089554372999823909232342758300368617042299295973481452882907991566501869309103445252432906188292462238167834785774403260448311922493752224786179348389425833736945550112854493106315601334812201107280132511585345425767485001305077247837181704342080587444813736184799015277424208323353659836834974325540850110374652656034444432074251533483607753901356689157157041002679324540891864673165137038074702652184737211300339759467003304593697432767838993850595475022653284847925411667344888077996154625330889695267068081761520344243615944880735361535162226433879931546709848148751527732926765314994965906550555501723497085489931081156431232721181262125806971468935231040222849629285171915215073890645797091887604442751911139924969381429806778676722683995124371724494003014181510788842105177535827786944110225928325291241499298164301473241124287565351783139732800191900437271829563667223070914573643796622950522505733135268860754957502743286456190178348680783785962991247458702847558872739859390565729642060660661338116056356291599968003496265454814966914275343130899571128456372712896046853314765147430411665643279765893102465754499451599066932290125940148826815860484291277707970627641377447274011225198669937756900743808435329261478034833321860918876730283137009855054523043987564800927911085506784448714721403501447765966235510497608818192952614730970886019470266023529977842157226605876006458174658641250272339489093084890684305559533987713160725429172789546306257175722384480417436739904174051812251932453307890819588604966982970738379416683797988147933363213811063181218873375524817658742462346908759369860977741096407670280201706064539356132307057531939055106385557454428349817737296164004131285681798817078143540976172992175373575314986550968412828545443926976390115917033036888177005212588313936696423149367988537741389393990149542677308488329942956686512160115000439755638910923821072661314223901578396635243553302554236845417659855149723779897283473777174211030911111378616811004088727843509991497272778713509386968948506594671050073864453552575936922523439708062412626868549132131790549138492943210258948986315780002954827210671143186231359071507410256239226728006410712972236639409730504187121814123692919468942918557622963921274152527968716924819136343338969253521050597414686407473980455802954872821635258707772517844453772055052002253974474679316316874550664019377590658823297472868821367369618981926535685241323098038154879031975849912744390136622283278288369231610142724691920000063279925518531742276936439677879715373351643734926740822381956299200426604077142986158187120929106323720985246979863677394922039235409795148922966248383670194717083525313130701791611674389945725711879954054182604979782003862238630282220923423474498141288363310865582154267445224672029045299450129394104575398136357705262616172122338710595822621380027387075024107410120219308046686999629041396057771852164754119017848745938736962266964940749562279540497642281478762689201468995954867903845050428412707743052481206237542106421027258769426316920001124835602136572265328722008488953843013487834111621456412618540525385858468947624304815755263426536670169520502050706272498980918240063148035053554709709037739282862679374194940818606632464558347223091943227162709848397625900939814933172341604445169436661391904590317616818296908255768525220961122902790466447777223195666448176512097725899472907322860046198560533875753257337243442772913950283552026688906258372623569157229615890074433978254427023796402152746130408883941671659915158492617722555144992770619610887050854811962407023829663859064061024348473451922790056837711270648224654688282992407273824674029485774666016134986328070935491682727257266964322714732864986755953556518071648868667912227638052785469357264736237551400006807439096415673835873394954790252229673018012188565082403380145075899844274053147987687736442250238469967268774343686686000423779133335999547454947758732245646327300925743953621716889623465415667033087841930718524881703038183252269197184998522140688977233638107718693496724889676182128965987943962331976207696345071038497658457598099341043107066564014445848873859461620234719904358333873436250968068064810611708771299955930951696935140065917578273219207641583933897200545845371778723267293815161086380781618975866659964550145292642434124564182530832780103769465488941697692302943201098138211030050187642386167230037779053892978183080693051430818421987775153403664201059285191409237077981324539657198799529858952905697569898858874920267471835978830015243767462733389009400196460424813296972862315209037415067115245895904762501676818988308305571543622088550403223838092117046037952509807842680160499786796348566601354263968086275486167377249451305972857448156216642274856635140733477699075885598213795797258009921218605502359368382587601622620551229298526965948505500986554823675151124319360987481270020673227186707284911565394285504180828285999114380619099249050432908724915123024151231104916823734141182853580862604980497375521626859960509754648390629400035714000812937564713383337568024759124424619050750276395447211199797805954406093140111522989882562759033384541768307833459782833659300031851969459719631740256690278394023828942456215114426464668369540197524741791526188943946586216696227358974950862062113738644517446401128682068933301375009783544382662232101886713951173891621923940773362301152909816468594035449826366257421795568666914903526574098885777235121628426070729521102653667237354882196452263681450188866408014020852044379823653792885346240468847896091132620466307477559825940211054759891684666103854642873150864836672517154548045130731832773910959559363797208288649879586737621382169288725099349587656746440348231059594047165464870440355460990512021658517461715181754963269742630027274738905032411940476555436959484794085199959404175552024395968582078198610673901236260233716411544690237183074364008287330381546043656715414653089445383395862351283766839138717207027968897101872951250348643925833036745738969706896350101680440578579124545692194376442836796319998202060759779337404429992746637816263960999319371565919184883222788087924925924750753213338996164118875640160257346593555348467123180745745287648566259736222071184110594857645875671967196959799528186957707547256044096601584082625203400937076194570442599629788346519109439365774009611551978021705693699155695521667703608960459746330553236510240503270908473555857662738653496827464221986132503986175698293207706001365652971154195941679653498765166450649692770797923761861981486448369084489390742201202733762523371604396417249317283585725330937183207639315377479967615365972436978359663531408521695389218680829523473848559098490365509656262945751143706483818180027527808567426030310704211465453107095819195226490186003800558032374295741951044045556142718807670234156824807194380067324604156347327340010667304111612730994511553344556689793987189342431696506587639250734018976384642113510441543225164854846461410248670589233414192074711667381168052074078618905184015841324981483592340225244110367311024457317209360851099325114077758002295261445512242825693995711275097342187174516301592982937331741045654617146082128634947927973001604567109682608384927477403670822976855071717784256802284331788270244527774894475298764560083999239017132391893656774264668920667615437254348348563994826314303554566581750004905885607862480465207536153697799875356970368598474602191962347098912429222003601652321298366840736486837510077223049134515020903576809018735158682842524881917035618799266307100806011419356018034255878231157131831410897778743442515658292176179136277354164435870906820750286108052549625811596240495053728239979065975406116262893129353634068115715238208985907876474389551658553630892636405892769938660740685184659417007131674485806460613775435567016848067911422901807386599514599552455834757902227271971859414498022296544782962982601366786551081530790467101008293797260509720266052651334366644027611690714943809847381727087094901749724974955577328378547068782119695180385738030538423780508435189192733156620423142433954514420503340849914916403722930818741081619624102042668829242298758184597907565655976613074888507903568004167848281569080072952995555361794661904615288031277372335931816159839014350022566950691120512025116766713960699242528357752693718941429821409337825504361458738785498220359524824581268332452997856434974620671408131786764028500905627442701358609984154416619340758311871188097902487187848956425097279878220236071833195612936010228428973813825372077612972972255446140092098264968256155114275085448566181698041968563300776137079322548775435341539385198112488288258303733613144454378165570092676481750211917057536166873249095775698831751913897736056890700822148519776572626653520467377820028856064385930164373413040183147041037459008594152390734894513507702101721667393657048542093956285318989073615372820703849980863001006645089563954499822504804411632010211928231461071832630991068618751863022332174344792933062363980616840289972544631173591274862385710531895217080986936592472223634133672037299048659700242554584945940086419262295646446565820301511849553941550636451258486916272018957693202233706889898415285039501945406888588378591808089763666031774189448490567379026069859899803727580475465820224145588038728808439920569251920049230225953726822991997940248135291680596427019342295082051300942030533004445853141239844157583461314363178195278799507403363748481221839877769306917545813354348176087572955559593308860074059864939172360948142137582805742568165837029925549643052324735316129781427795970573647184212538553882813992649514581037412460514056111038423708998263275558324655659183942504613973959718534755876305543732895260998578792880969791828470746697203064259217454246040028815575163478880835823429004559147511312068077957204880985624778117191831919487798031640983362723685600642521066089407173082803018042231924510763275111657005549470440366396055672196709444432337741982752507304476638803568506493616988129959135995068589957394163215596577575504200876395522581461876773425739328317199049245285839257886212336130231925471334732100184931263903404989120604441423183893200030427971038197667944045175728706936665127930960399044676330224571228487234001832021624760763053378301575317997230008692949202538321342862440751063394723096069272188326583904669999991708083070092727406839652245672382312582287356311586229152549187449985394271502747516828370338884083464483579426482908240019308544186921778580111200222132657238873497707745110100111818602599376525168631144172042395682076643773210595538136273197942578613830154480072208252193240836518516187868007828022890353201892275219885012969890137396779078219504735601799305246032034783995795535854402706584994007072359488101799203777965383275098637238165425797382960642289494317054773526419017288767316092922155109743307874855625122337813033488981051292936798593140720627728234288108657211118523131764088054628978936626065207391052538134653479157507749656145029385411737049582960651016162082711550171128937482834936261984780028059573372785125870022493411647679264515554968499776552432158742128182878669171991593195490874937305037991148958276135504653902429864849991734493522698731211087565727173778278205535024787849435792993840255101550110472503839515484707807509954394892487211807766963654617538245532199142651684137967060643702636673484757254448709038559454517120658688014882842164449073309673672270681556578662313300004901587109062167454805530061058629908074507179663646865406995082785633882937442370967423506865951341824642720114667920462416106914135161787698053887245701352478330279046378865877051926246578047997094819185601803231564470785582300252391278474323608941781276546925105843505013295759656176005954245363454896519720330086768851746332696939918739916095991027909774065214839243472427322895731375866582167264756445054692698830178967242516765422188341052292092593236791721041065187016188166258962190970765722362956648687339203781830199561213170283492051725180014139992608525143012735786897547064012731667012794841647505711347414682288967845727588430562797519100858527696818223490009051291052515839680435545380936388438981578406647276614067700375049817688082826132231363616426926407481556177955201236461644299148336163822258656208837434647903550078297601752488546183157106053995495575851585001301650148217514524922328339892646806888034372850486774975922576585270355086041836545705541163454282277783609443295358252001318326161223281825875100465345980992011050163215953760951295597504805009531684867838652660676539953134010368114891361302763429604849298224231342972204038561361267223040081854856280152884264401724849390021613151318175354323291047271305214993765458275346218216192328216355270618376359923201597825841357296990954662837563000230575695018569592172592055691532030861127540159483346376134859177661399468888385217205777517032977943259930949233558819180403188616721004260781579331670978269128733781004275769515041982167687700184951553499575917651092387240435989369462343845385020063292943702878980143008859626131974384737197608843794584931581204010257741673002202312302176248603098984943594625518864887345915412565926324319405734914661773268893619689928102587533308809741177084892260615012768926567418171612618177099394182763515966849799014734797787245088614019192720597540348548985575724473336381875393941146193749566161778074505239967568581446733035881636295423668895969303715666756376500266231345757466288342858606435672331366113881741218628305764747169054713608561452804511820203555111101509532007528921967565183110319800761317592232444455659433412485808540221660011799032822471704814193420368235856918737224697253520557814121710220953484899329653648689584443056956942330416888703220065361244958926922588976498097003827281903968565243716159237180225018924248965654362183047186802939960088813428232611755470835986967720785721533269746816598225375658372289206757873816284140689778882511327930045686819857299993165135832678723340129540308815715644549171504560207526855580484098002190609560617656746447504808894911484700001309127795489606063440081794095411386757078836409774208388319709583263216940726381979677600803896936219854206433285058374977517655703892808012754983794013343498359948897053781830747654378550851492008825776649401481543499553317398686532887710260419156705772414592540673616728867260300650213407828938814840623044765730134701827734881183524295819764104819249626692394082998878494293397604485835545814393469562683707128742926591082403656133463026591141035731581233803713443474488943565821267165069073906687040852575038614579886204050086522884583559836622375518035334982467897551234041831326816224823255356907639582187444979105846813970741379637639838670905573336965644450019663347115500940564053790404597046318051727273312849842450660310190692136415063550009228792471973431882827570184239065867572816222445160696536651463287539768110611947832222271984999414417732910819207484453167404060429803883109041112301180280634877437041804485635681850305523004872488068252083490414864039198270718604142753923417570028324107633594434233696438600569806318294750028147467422822176374888108270015406996019831530685956817955243071413052797660861244799978311558821450647916524537678317534538516597110366008327860867663532411440980723051900292175839195746119690144506510465373690441755203158899277007973333944604371817091040528080706262494415463676419865824911589851823770282192678535828153546446499273058462309055468197331688960888849479815285659270553976440521901556346955588541185957901537780648153708170272835939162730433557626719224985778902060517416865664917483021173212655088350069206195219342804945308450668154577614516352976459553078684266718488572808927035652610640456824973027541460161172565903182631874129413556813958062735052170209775351030098658998524259532937488581841016862802761524168986083687747189082524117242035970493079767823136009775107025950760932074621368400810133654611215982351089825582758761066944461487332918844092706995449431401393823481043148366300862599745239717642111058927022633761722090057894223121863532113387194937680445160791315890553824691495747265801832185872244833799871534089671054799341144264682613312164068494383652191572647939307042822767410799533014704278989286084435739810117199917692365934430926533640453448617890202698354463282832564858468222841680590770932992942403821057250175535491259080432184128612448995998047602093753954330920231787847312820992504445664951531795866318634980858941474987138769111249499456549251902821703530928741658571859530538360701766317334768803883104598621875116312467477605656694676290674351176172076756260236445115381468458303798829623133666736082845467337902441068581911580404582912302488708898374408708060044528904547320427039006363326832703026718789144962175637300288773944360242816823607950820106599023074542486529853565426017837655853992992308675503555360407989098001447064817548996362157863559995798447149079718372994921824217527634727997162653529035142981409272081604566588464732617751253558143256372907315596610479358963201623240354432463023995156357898902632064149993994441284273951403201987317971474949116632960456629785715064881125851169162451070120344081132580441796040050551471146464071837320982252153207654441439968298362846198775030582536046581906630119511154995358903324760809941070003106633200572812565070562099219724667208037302115076661388329682152156779844271717409701081652634886770155833678420951720572540309250941785124752699754380244160807161950469141187537337942004441772382654145250805680813741078614080978966095882345024554643371257457849634105587429985820684827766622401522138089962492378762784730122093819010957708583848667805196352103536513463486321244062020952035103286989464092597143711931135142829138164258623653504101641735784253150372409682313041927410055453615797504015743390030952519181124914616146158877746966444595531614335347464805311866827243795871094991054580225064617110814690204554698914132688252207505037833076919627781776501617723538358244901539229011823416559838460786034049388282958787508107866175470008660439021800589022403611371339318961126041408626532092647688784605911979496444138420106250997922089359859511204231711859728604772004766452257467255585195993497833276022952897013819556910737110016215462357851166599977819270961122147092427341737448726572641579862948575626825249619018688772737405385837532371897825410960963174594193053373222045048001327893117638947698972406849958367423181063381122507151987393434765125106488827663393296683675090051112044190401679975175788033222070138668324714378307290380914000632556967910606932710082984862204213475933969908275715708641776207157503248444769026227034146427389393549194096279738694232611325000871645791691308040275267448396958050673132673749008406252664869214137867746845461193133820576105795308199080485472172381808174086910148184022937314448608813678687715732528696812638936536919786786563767981005397456224864454544793273249813013804672519736652785833608630050420783075292084792127209603483388536911771392062263850696541084069596629231537149077566445371242256596964292141822649786365199204188653296082735979724842863604171878247606039883064741251699889637331534539943800638433353096700133468309556261790031019650055792578597336305273504536249445588745356221293100550876612355458376531598718743023934576860894369995559885101532371692736896756546424110721524107711842242320270745391771021287684307780866639672471122893208139961373857569150490721356143454580945238978892686417795843467568672812116058243352475204544181249585928200745534289804005266327180477600000091810417580596747768683638721086978638378445497041154587921360715135570768583114707448170170609487057330543414585616046696366841836976799956221848659779237247254879643966302576904467487974578249993929244126265466375741858728063189533598800111715940591066585907614265716823783612804704451520074389630109504780149063643143476982130809172097263237341284171047333508250208570559310781772402001047240642855635837805107586402970635525960700270220681438971939407570162301401397136718655448826434120141711650517847075088261942139580858613436937413120165056078201463382518750214929251739574674495691805738899570454655681739904859288735511536293971266084216803358515147099653211685230368208346153327678250819212283531250292454938314839816634218047105090647026092464570397192769728348014763856205808723969631141680847885649374858378587135840571425867066406280557671181481930918903575073658421913275870260445551225009145492096451454913120741670194914081070513807379019066707480337789467966793470014335968190503824430524181869065771795462564894653546960372510930585771490821276137771412052262339829367713888117956442470016560329606345594424672211042198207456279235995131055078948814588223452038861980360117315790060716003520513801310246516597483404506062208731416150576297866427314388119196471975838826837408800302319081221006313277628849377150585303424089944724029487523074244037756709714207543513269825260596775685573148996301155165307571864025409467009086429019736358594289686250084509116877994297403510152923620120962981727869677036037986666385640543780615905449769524523990184150723039401352059098036984151466697156702427443606579581428392091268112374578856989735567228833053444691807595183477212190018054445694122195829095301424419176993818455899721265986363212513577739672273732241715625956049590332314716496380124829133124173267492624087603082240370384382323508538566853188724090374288872500677519285800501722004373563179589658998833136104647581210997409374979587658024362314413638333798281012555148951680856658181339420147318416220029602960328115578542168285114021518245280983960997601707737960797367333805569359741071698285378281625332622153914953137271392920790382101617400148014410094645308498577867015766739488925066935801230299720893074811915480971329252730980913922316288804624192646905653667935913435904876654752983812849373172208300725462053423869229615675012703990992614923061408957712396247105262029638180983629402131879408671827477273596444489807949465481797207680388447549494208988539443306288998492734276091288869859612078922677638212533943306160160836168291808439097576326572731097471147168356518402790342522818911593253665657242592046408366311020280655613147775413163987376083072060187393946155812481511133187357161428130807105295552728716429855363283682353415695263280407015053411916289878664888995628507588839878798674127203028124434278215495573270524328640322207245605157240294665234429427790106632713633014295300573858797450038391642712913173988423567285326612745034998901287635016963399594434938899034106272115006288534521227761358670970187098801782563944496295321429918079593790056471785207616606564240050086306533691180508723151283485241940510141011062962589522280159858399090798413774449985882497879832605851717880997372564095505391124754587996900208040789518890825271095150460031477937313429700452931081894245729491769355338982135105683140429683737672484746137874814419179978527707452643192170124584609854021572983800372274225970460851879205064157434801377539126335673548595576989716599755731439584073241376429872000236185604534214658410117297042900162584223988231122192660405683181026804271132199863632509925781560487895551493471609165528151604725032646194746238739015782831230766178825693896342898464649644796245174879236674360859770194934118955539595601647704330263116801561107211320853067236426636728296684564782088504737888093461106911850620103455711332312221453045826135847892781368388434613477023355369413639338449147188026404326871008337375267909791962115923492188561180290576166609817207276517980520250525695979993980963107144292581012795509027946067186435176994987020458333021479728796720979355330799967227720335765148168102002885784960825335041936409069324719035221417316280738989244083573562319963202273097850693298871761697807027724142709340240178936917303701124388645079623804928125457670070853755604264608935379319958229783724376867283009276065554058808754428919408449947678312426507494704146381581530338268342255173894895861500408524466589661422105272838626329619805609837972156498676181813146978707880900954838389671398534007673862853082715607892838978282010973905482678464561244197982745112973461475712701410428258103916976880611795531591466162364487847940266761994110984413657557016014982474794389724846793973961059002354828963103779663735922381970288732828476347952891240276629133946339180275454619673473398563931689624724957736810805116547472148102473179225948406631965769030402799986825641138063551740069136037597285170495829317233881102135410914320054723573312741601012808597523019117055081015380482517013754636147812847179259042013285038138048505258818060732329989755772903801864010185330075847060823299648476371793785251919495922942217301078614127867206580444824637625215756671718752831082483269216480667008151530487962551981138148401456130421478164045539979746801789642298646103489100554916149622640300913508069880177248285863700593149787912351931537357829182435380976003917322481416779166213871081330080122685386885302188902404552087322239992996780411532168696202885105901621040869123508943333072552989812729360397384743517183288775372987594477062561624856545666129401849012901393158103282676108617696643465999371465463515816664108817390002550302918346752712751978074002537845895836161099002766044226323789333321917836371982207085670574668141466561731719169587106275350462444958606873582034793728591520408262896633153413107335143119563086343946987987429621285111070824150030231081050484446599172870185259870084418731570135469518809936837124836730147332509678774830241325651321156792853366231692347878195954533810536323099667258426351806391132480733190264827342945597003754355988528490053609158632387069557582782115433462159733943273912328765129626843964101776824461883226767146684717416520190395907553181898340150843809402154235499496512301563357564936641073349266664761683759833061287386180558833652420728586109861219694773752904208437721156130326690851198617783283277837627948073821169292749673548663480489139107336817058068162638061512657975641107681529530834841472316127692560115788941587719660503881848995531893201397429593766774184921965714854786890705316913645548926853837161507447702944270800327621259479496378832726339475116601300983045149171721247184312196758468974706000892766853945934552555805523412599829190462578668260010778936156226519080357023870374473774274761653128103292707740200693494828359219081069149052035420813038186053781895741852682165729176701337582114073895676019341777425854883691102488161936721369664597605477420752900487891512266751149761420756732056165210921792228886471557033165300386205629759395598651659443913502233730085803251289805861372141122370972099987311796521339462691690745059397904755974494561056939845731357781522702767015404219300474464237562611452887114765443961372452952024873605351629810498791581169417786475888284435243835111730672865691880389407266375413694930545149347663036862117504151319701382812679352329567875436067855194363945729977997462985225570939661361856425615896678108461197412391396285879839981838516690161192871419631822467441124210193871081179601247784779821543641735523739945704252532727992215937521658640624427849813190868234880034714497632358257968209329209672138619709523163662029930928626221314712716114506100718323976678956244156998934745150320974103716857846641561624160323436515905184810743768604106901887607542217978261494936849856203553876236799900062165895983516611764035247307515590277810179565094448937782897518148452341094793772851386680223507187725199521709620614876763229913739329422579556399432086518773608904416015314009546670794593849919699940353285751512889218134418511040803247555115718206903951185309673380288666496582947883895611246643377498827367144917363604366373908802237932026417165340824363516813107627912605820165953183017237679628821367685724600281011334941822021826578095063986174283476618066887392704968130915293403862995055192941208966214634423491340473752080143708718432937251603642884796619614859598315409774667809759281814608535582835354178236663814106362370537449787663458629085632978654436569819835193596334163746206267853133579120505658528423281291634299397818258313039978754110257954469518716218972009737734521782560701944114450117466670186628273802673118971583756128491537906226148945110722016697056020891129685274392870214661087351816579798600988740484557597154555675673695200381603063175490716770447134076035153392535480651980180887148178515969377050841889739338848165698654015827326017989990269705401140504191884440956899023445249576203647798973892383267059779177356285026941834549796108205486047328868926168615417997663798545148712594341966369494436770602975843836852037420453078329319666874191476079758963896872189872971716788247715939002457442900935951352469947231828534302161283423205725609909602246075570615461139664276864516102213809094802603177930264752222614696760178909443899123573772621022278081697935392002432791881530879317196196343677360971648790986620860720908567315353651594525716042123453710862424140635981022372669700267254469669507281917064126643620306220681123744787369245596329848930408024269284259622215220159150694007000341233936639526027532203189497695039997525347017342173540770755552326196461533647132167844438962434435243791285709152470969072515197872798699827116906233402409673623438776685015256369492940276487031198658114054678123189911909290166182119424464822489095618751636491572764347051099045477320651469914694521610941845974308782156673535317607716131231324387341414714792820354021749644253696709592946762980619995081848978674116336204546573539180083737620377237719701288650722562836409764774599120349717310387550013041308102549632146427396051538328132906615667551710265543502692858753584642761882157771581010575340939123598032823200186734792525738221746052020129370265532639985076843578491539208153688848676208703124966241564085217140708566376574022561217198975398875156018525396127186710433064360317618933789696239920768814063499811190302043308252783536759337083897313029741845320513517672615816777033698654233464470011614682431510659585630995082101759720420023495768619827256437333215127871926562979233467028162569088390194308266654186905728299944057518860979530806403024951885623814236411034675390586566657253105730635143608995423677991262260547508389499408831795919136783790910319582907886703761867690643929344148754745935582305230754372463647336809799732053561568845668119617796786690255654058242849816144075798100575288632082325746105076111879995141865930642378112359206884171581024212113773189650433636628287832726951424363436030984290109464458513783802514484847700110211708173976854454237471122391383243637260612498978126410445456032296238377292711964051933343889390735596966893976619244891573360199357330291872011086817032383050116145657430913595915245587685057047634389153186623039735710323474252826259533142147094393469558075140300933949451247870480409665199078914299405733180437966994732659752783515018864362253041311468343615034150262985574142685027245384047289786460907036046462285094773711803604888988894231209685533381787762796188331845712628542288553360590369865462825212014756485996359707029143905723036700977637986869220186533672332155053431374346650689640125882062192392098020268086909251518569820361221812503453694618991652174366485358825384277415974933801987808770421314453768991939508901387834730819125117438069716504534416940279541609281113764854002032213932308419723608596997974725405775531943633977253181924577169377905527243649451487782319076958363398663766342698534601588667019728823150643029717441167324750770410300354565414608973502555193388191700475404515239357373935106415563536213615113169078530356819186833944578595707160382126811089625262770296495266074647453751328627571145497255816882982266328306975344493042641739260165900498643034651262853414695828128620147925974555380840707464549993475872619963215904554270844095777794300935476519055522695933326701109289310811225363187492727120154041628083745551724032950865115635194410788568597966658889553868063402683916402161844268439239082832393146722191040470044210390700375988752548449245725888574562353859329382475753596958641478144201516555384680659592758454902274346321760878864723848366429311598939905630779182432663746760170679346872982540544386221118920477370551124905634238577937849514775303631781041960104378664243889689639865009094153811801086032162398802417350934685303440538001554354765091651835061613390160595557872080281781311210332710271458393622224145266068200727359203864660109078661962004974979400422400846248122731978791254134475933872794844633146923524770624042235368290237632275768738889616366885144410936110667775498631588912589665558590813925946345267525180345534580366750333716906947713778684720638907530030327032216233372870282644160387540680678979788069729524350432629178307148936160040721048892631585986714485314123726576456357736300278108207360589905120954608967655631746121731387778026910244556291438786550549662248928230134342335160063379234108787223363352271279553856661654182708822609029111003666019751245129735803083818752545334780386347690964447019053007951022589997897035818781718066559233984297212404805239028941168377748516916595790391599292596879975592524239324096655216678189482173448976152646159014564459061217537318751345619775156245069787403344829509622616065840105264837427455446509657917730111713009804301321439597737081426100964393831655280425147927466070994048920076216453949105167429788357416497821447171676255546467141828779007049262384040205279345995608116616048330511994002211515477794046381617893614164354849091963441802614105847620982740813089463837027544007438064879491509894942545396813517804981962161353278538828398048231240446113603029288340982296493995682250949604559856037711615799387465968720991878727425645523110705526763539017035496054923937073356958592758729224979298430810707345524810051291124272285456229774623417103940233927574135768154230547104995330756451825445672492212421612494037656471891872415999092771266865134928903102203197839266623940682543908559421822251492986463400039546158993544086895152657615440910829069552164591213580784474178716682128830578284413884586414406623125555760548886180587226443094528221145009649511874641001030459161800992576552872372578374236989797315144841562981251690498686849184221795330725558429988804269178858226454878361187027805294992969127449507166642253831988456661767347409971677695291159737251446757738705126499929865593303175660457103872691639105497119957681755792940607383975267112443816622525953407233302504635766833637365444949270693111449517135443895190184769443459111343073376702955434161983909613448621059956449272934473695944971362093719974031228234282672270036599897226774105398483039747591301979902545825590983166495603333233731438689880168916253541671336801081372584457900656397232031791185408460982355415508395862551062341635204433098236215466221966582659171656229760726252313246612513944160390190287670541146580606102113563735543379673074440005232937106106166144905999713537401872604876167906327872511733062938742573672543144855538183120164412912572670131454206158734435018757721431154414234106250310469096558778788179550724555284882970159724249854751552541778761980120551995440579522499925018480598153949088787567474917414586547528339930276693795737565544640704519752452858965420954545822572919690615880006358489638243960979720223379288173578931822052935825015628524176466352625667050801469418799770142092676681879225178444802235266517014160825606608398756745475582023460124493425569934571605736379722145215288056071005740910722103112935670744101415322721967646775996542468674028128770158299860727258101580081421686168067407636563857476026240226472199481671304131758233217402818577531521179713045035738626051076670224102695886647156563958412542280204435879549944506550730217657872563117962905471686738138314831353783730125391341480985470873664474851905737523036609338512954047898592376372258449356722422308714462357631257316477927964714103191029321245862475847469001439811292180974583148542723607198296030648811012545244819014144107900454957596977787345432160241129710447980672902954643201250492437279191888886254291975364741524540875956726992943463069443028483035310304257214189875092569186094387615462315538732355740728179244863284823111992266487836792728258562585508041801572905005136431775641359054851675680192347963670205489746466369476886170716479448439787284625292979367931384810538328969371548281215759382517061465641717296440103827251903192143366616902794227459041786652537552358419922930362426370924214597306526766906354264158160493716669698390744787595667448217543952880754955136893112247262219456153753842792526131571026139189064843018090665259705264322838326204220830514104132813288152152539848597303811343032858962503032494657287268153043034748873892970454339207175064878083802800390260931923179264394899951645641726874514068394160642553858814157054781349153861146816745782687883105019490443622133201184899808088563878080342679533329790694148955636022172689801943835535992144978679658649741729984763274401968609175592183901289011910302991948683001657225210187399087174029012375186885905900625979382233400919938461741856629093044475520321624680978858757562365084069703753825961065159788856912872074737240927603076049762884468114316057228291566584679355253490433089719000141636916662538866972239003005075697848244749941440745040928659466025906656527840068034320956336252382449941139973554608896311558561390007690074439330745535382066769694741498947634280450326840421285178931325514753658362671120688969682852758577428673235847040039751655957925505601967820546025640152621711681025139403078481121446585230254463953247831238578068455734145177390855346448729456959112261014415904690975149095794530959554939677412324440673636181481998594599826751001005170620735158066697226830294617001556754451376890840638757130856044984986382255999713423556408575900830435153746959954249682451511804580282471968087568363940118271748434340304691657041508056505352735465454895268787341884074657392186390408999153781948676417609879517661649275887640115136234410965905935196126224368604659381407948713992398837541645814891555039287892849117436537940073756910280373426507098638364073856541631698216935865384202678769390075000934454424201563230187388620876540786860086690952893346838885503076914283317773549970356654744803713032310328672570059744425647333102001189439360565308508331872481497827879200200209876134591128822554828526811301747410281190318782295564481033425060929066401451124879658608644523612227954662577152281401856617713041942759870430228806723616841218012793806675365741195298836980969554898502050996338811965142488558497677090479633477535224996811671833728992684546341223084647090512387530246507419950137661186508362855800705558523980329186986158180990621678930768687484545907520501064493542889806472932883410490047812259242379806457430885736443451148857893256073411185919661927676223665768083995668052904858373948204272329165530127984258990172538135680452637274532621874208723046205129664518323633001805126912423793738938971378438898964164290979082862847286012425357986362508752590204528893597720953301373490597427552330693957214097155785147002693150581304979970847711130960772466972765062998058612257666483435972641861454781848474828870133986388640568232456219776586704687460773866176738619314801735195683392334987716350917892341568723045206588424764873912701748743782899000999178739458295211370143541890283967514995477956655909351892466297810573573944722164362639871539613400862489322299155081331544812506814795121101246040350991446007647647535400973875454337993832720674787814527611007666481748977265361787123419161083760732591035711050096536536244271557386737425330569347233053928409130842425006904964036510771207507355846031893660713693314777566148014617473284813761818164261656364625772964219686788309139729386057382849984026672333990096266640913313122739422896966591462794605879117067827044914549732774540760900677195488844635534222523259822146443755027900394658498657809567185738429570178870289963499685278049421271476441765087396414369588148611212096698426568087431905571980476417500539053759731500916828749081115612069396366317110190953642044384522578525122570934804406140248842242584277808973538040363806979344764689459723374234666307509887511460717643481698093894334784945034150971329241460705102445788564114615616877025479818791437370527482705328309569943909869240490318935436895078130456599175433161122437363184202619009800166168400399729205063158555836523508193029813648489918590526159366357310261057030257616771209955685427294797919151214910974243153872375742802711141477185244323899733766388028698546821855420587148825429854220940865111761396728546592089398267088491788407773621975071165298695584193614305679102528170741239874749164079446706560586333723519487567697222930739170868653296296611178337425105305691666674758612946480799616014456943814073907641759275197072371398253371589256158279150688149366843803766145076121444852818385637983429093451640515602122265486610529358852659293850606142692532225749872706606222182092621469242952941313716394775544497088247649665576667450046390091929434280257765811234483454124564435925382673727650845143542735807495491474780550183544340337566364626745104998350223269221185670061958453853490818073426640081944793965268524195278301406858817381339402981591548928102204317703233998418452458789502018931271740959581665438626826735234649402278064301079917784128105249031646560648276139747985188818515986424280293512157246707356545697971479226905640256895025332946754653502343086354421143238063606857699093618006906944545228881805738894153707114466398584047448732674062472754378775090050643973971010095120286276527156663258371455229433136452145346291525263308631065469072341718202261596982041120642104642465176047925449942529794313845707855476922881874588137056608998608705434554468669480710944862749233896040807585551903902961794255129588352591369228673916036691983914704700354562033728966286414740853597558195047140848587958497691087112381242555814490328141067978658554833379864281413892685674681646355920209516529110245559424315021114916501752363781738808439345513870518144678114467431916112877528775726784358945077253688116660384531299538097199990210108265934147859424124676114533729711419419369444856998353799571310884335899534135956313729782368715879641864867710992841250320200976203066918140425402859579167392890372921123329224775089396978889846964350203858942350620417486972711217405005689200620194333898502796709149983333829120353513107979098824571929816370080634513986693600280544721603406630276645111281637118920926054749960298473607179601004456929645558866023671411766557516230991835012015397126617272462393524996058089322015998156000482961079483192802153178786189994654414224075179225541131489426544624811313697039244155346133315046420740721848800196632678351277281806613853058221889413580861661701174342444056762377411767630380691091289313830407317575210104568583550759011439516411593842441980998520237727840838518266997049553044252840153993051353730243312104601024540699847963723650770151591036341700334443128088346478291398332126155128698390793321626337790943127681336193694758180037818778184949785285201102177880496189770655768673798928222504602140340679781485615535543225447676506784520123705715491388501370220987648546574807390437373659557266024439128932208632791345455603137686506895349380428473070984408624119042876326910269662413126694730408801216651578318552413073532825003459489522633608283089113045739997711206634993205699671450213946215727537732796325189018177532293250958048636360427352685725581205922713514619189938350553257394069225332845409500268586166233674908870838479123111187294974591489930049851936241525337425541080368985656749711346742271581895680545590659941628925360799761016109982477547907519215822573075611895894447908006346558607898496881905785109161299881833986437727859751816335421812417883167306552096418797536431507360315803016717916436834703024943476637665865940767460350428984566434829128506276133819618831299496010311531298192389571718371590772120872624061792261373464085251567404526933382245595411192144246521114797286593222769316215448092252794475730528189971446018372888229051957403405055112581824064703529648592127739121842189029258711205621745131138421264420988946329225762402755318782054227397519972644660137773271179885136400751838885443513688833019483251346952088958635531573977980781408415572150305101329697420180033830700402752461396760180962655558316829688113134578338282646319157750687429273998793568549195245434424074309693347247136775935610616840042185369319165021709904086718728440512084036600276362386535849093469922919505070591252639480448708820546703155424152774598901622480175884065957073250279285774365568659967312721639859215613837027547953683164706031461588132813761918893928395543514788456225189083780325453311402759741687239650277133465098642408743518739381527345823119027288197664057093181980817595571010824535702003273209966370657433516637346126230299413310552388929148387192704619459691350990185468342735656802107753421206488551955380293203005579321251186703707834917218676925121035006100624874716972057544757079744708314318885484322254271617400662433701819294377603672540775687716994971683474497727863783422103807359717649416187460178210392754241776858719066671341256087225890150783828313673074091807506338146610919186023585294787108621219380687392585671005545960348877791944073575987995417672586716817002396747154746879677404232464070842709026965916658512728271174839180525156653191050249671352737165652235840768367701529775622715945741950012024956970021180637688362011123272564918773096489105521204088083025926666789319459766742457796893498778101027656176689282604082285800934127257336543095679156527471063353118190745621299271474999073060376840373938069289576617891509586539318583609643249710784734134376560995638551409052861142395648581973951640757571434808925526396845071421240365553250771565114613077061020615853130563538780263466624348365816126031486243748090399098488487377023929188488985981933379421912174022093479690294513402937868345580775542912691156187362238544299437853970788787342954228579714637333921469058465733151526118679860691455721585201885774574798158531982167385129489550541664895354860351532539991749041589597710093334888287619415947506956490142880083390472373597599342399670394839274936987889900587564734434913089467392476068640020295221146405802108629071691270349538671898741004345324731465217082477231409214064413259579674402043318318066301248757777468807302555561250096028064787476582828739919794781579247067407119711010750611496767991395365829995392705545571710533454641421748752942897017427108303138456779024822319178748009232339982319597754637445486772628495792912754037716968334582749222510906868126833412127177059420567341174932572259565220746633198533307331843448644270430835125752268476557129465201520025160751224899645581489014115006861418543729497235327068818755119362753190564648077232299330572032119010109912060949118340211001863632503030048820871459751834858299007881018309202788068264880765502822957997980143493012825535090740655172571838848661811286464386248280432867141229884406851260708791109406338978957113873136804625362319503954929760428453106975172873306440332992559430798454979895835283435927156306652403050047806482532810381619792212345786037391689650533261666418629131795732169298482555492288335773760146804176207127302219206735847609047405895444687829979629335975846947067430334953524832075915478836675624323452799464939808911107317403908913622786209742989545663231722313749125362408404174179853052272006421249311588663667689672050494156711845504232940107234057235530291162421698651313334038792954841988839545237570246820066807629199795807340297786036104294174596385157519390505302889551163496342909260606977417938554245648469773267897456114387890913854861319010415419020051816112381988504049001793594164244008609057696289496925991729333232698395847230065616615609315196764112269819406551919086506129940188190321141372068072616147498712026239661519559053404912284601250059949677879854936450662364560425531762265703114351381293500616805001016767637654079676428630673375508996749113930521229469411830796823057590351025742278736691167907811884157416849846771765743175580036961745591492862766679697200822683261632215091437846125479747251639580595399939823992480952623987485020013344632236600026364278715474618792198220580321122779629678646242563247271583321826581056876876256966298217409065350236274248085105350796846220665578171104664119055417904664001728560585406185862145031846775356922016191797984456391780987100592013359646869425144050496618495587227128527486243311143186144300314939152614091969796181562211285397138533375501301286292214057611263503607094469986882326414064535005816179621849913684882219461414716042231454397621250991966563540615141377699339879215578108688569303123521518036516594643724964865625536020299440579805566539213938424013370930731566097960124947400050418976782030257827349112398844148040742552385432490010018845608389512441380124198951313601893125642648091090641232662681702715689361759281777694638292236100441973365526760230055618188924334546038815873548446988634640211081471201620109195796588422039632012142242938674813751130474715010181428139055854673194445641286670244712639697585671838616029349338298545576311226523534371564778185420866238598434111456679743550137069460498368430828180708544428408147309872012824638238770893752945257717572572523695621774198999789557601321641090870346038147154889379556170680261874866380779312264831177523827692358168340953816057636958264080552346019878996549987749718481030490825159435797807992417442854445316677384988417009379941180744942344650032242763109312485283850442438751164712093381780500730676080338883330609569580403121373755841843695825493575651500861213313481496206156506393243385572107451705153772165391159385517672932641173178338665312849221293787463307082409679276779620460609866043399842094507868956525507559784184767414945924133680905209112355135659375284253444781976119753518740406121661543215444868711188768460625511051675555189636314354847730308319899972672535028819744453634558748280405962754667335119300464161054082012275414197471764994979389640930480751966872793916607630436030879820775972280563128019530071494402413018876087569348126813637781802509688192554629443649285519795486390428473092206058125013842960893759307753780870196084317258956208130978953741893958086082894734704693878359576320352556867761540328867125802649661739826050689604775686978879069764564757687085362679404671606719501761696327944164392743535993982504727265455015871213580129724223274734683913905092329962076485497398448154340350520812969524406979272743604160484189726997923138205994796853315504375949490917971523548612714383633801668920155311582906670418088244065316751348374278310073704416094619087726650230320276846220246619135350789341635796174816609555760522657326180918294032809445719827350748022015886203650784561612559183303171766116469908629453950608921283289737692754292969105638212606822363619386219519839367991295128684394344481166947025890022734246560374823624157797284493501968362631567633662769752649780264248374732576990865676642107060864827797019178797815298416746035420168259967609350190059526244159972997114862578410481361459355639312395155477573078577059274042973956911447585387545731903478526505464404036630899868304581428094511460029296005180462552706819774230594605442500247092258445360707497219752315919700990237320943168786416105595377421814062429569505679678461361856863547853806849340202842625958967261361031911815704565691359212383071203702951212955435642283820539861896524137336983878148908795889505152363214827868831701424316263494548382555903726680896765002027962399936182981399295803175442971569272799029135805661861005235372250499964827430145684311418299416313459530831390920723905288390486577383366271364686082897958305854860474509811733198732869078051148879595067849567077171344442228545752548303151985786698285877494591289180135502431916719591651887234781138709805957435476727217467703176851559991364889963577276978819119211737280413144761374979315615310268218890057859234368930429942299488212688906990122796204389948836539634445279405866865268416288669867046931792327616795588034586968865154233229896962214198259371532461279036750341215663866062630095116433186386352905623689959548996719719304599697259023843656762371210826404134669543012829471137437874658764967476200483496471917642827273959493388981350244897000076255036338532641267428790861398627093499641544524546931849259556550687884321018870017952735901239017744218908655936326967866575077371227297954143803484287300683294373803282160353590888772604617977334140629767125484702304899511975898755024282016142865252744257904159707684575521275632356070800543389119895804892400747245494356110838739263032245251465085941445732505969837844712892880246600414560512497957305625425631603131359509985895365433114517823353713512063446217065422181560976039668176633030336348879289707050113967794770859887937497369595997181014603380659167953199701044978076931182693797672019443734510662182409663791528858212844144377300946521730083680134370221405522851237812195380008195434031742254017875687522449352679382045630665268556671454055511457677696640956266253366400179601785058510144633411664940392209811801159779669541826159146501017588516627657520323947458440128137659528449475309642097158522879731509446265634350337952602613896849393876436627205480016012137787088231768337751361805397635671061322203071423547180387178767389335815039931370229164047251052523659222460195582050701535084372231710491741111744383193803807114697064236681216464773347776464379997031809283273188505358365254570874087180406361925325591661442801834755650183141028727986638689131478264632986936933912389822520122646129816193384634474313829697663870035437988666588021830875383614435789290738593704415014972296572391680768187868715041997953558478363321481504259450452867755466331899297518654524626912508044064819771060148738787889369742898595258194478282505840800684514448725332369231179088124990438472793545380134658567616241980774988879346120632881496725833183884756373576034032296885548934726539109758466599525446562770826081853402301738400647179707988192890330678135766869634847246619969454293426088897663665997142899119122888857420285904486134242652054286159277026999991974789682759295363914528651375966088552198073988836235690798046670477154762689483221021329420741460737338783124200777010672269361281353711448641208094691471685744641549912565249451932390226892591809689104492861300349103954571553738567374863711605062482638249271447656858928334386101403815553011286873987292524836708500966913894366113495033446185182731716023753675901396880451314734116976340846002375393662017244009771210171612266513734972900919635745624844349852376504048614140360226354829096424878477131872251773478412269408208209779361561007421978040599602658025581773576429695146804299192754975259214669963276121086667135979836836360760472437720102532630900183442617881493648341830633832258426274449304165338184772554432302754300852905464804778508055408467913951818740196774530931322422934106840023289324099956224033304880402505229642536475986271997334974774490650490874168556212399147499086443520486563257585536452731391102870079261895451219218057811636708625920610005143716574795532256793383194249056000284212807607908311946947159257091904201206704241906802176024265842922701461869479557464708794659641716478598054667068706888849850058887142997144668501143425265816668860881990066420759477907527215433653981718905540404603863671596522352480628843610273758338791444854789427891019313707342605712277152828826560966855459397945914723491299758202608766994884302228888978151092691342278336956504636273918886460745628862306807742948317319712437814283861347633066603452350123895412181505427364766365150919385856842694364660181260352645110791358292070321366054799705167960217194740262309862108927303078522169240879484833485960957719424026437876985838452147158352424002598630544787034117859621385210625563011007024254800550123398258638826652706189888303286239645600508888008920118395039281185108773582889833398250854495659801176860386624276757713835279087162872763136326107942119594704137445820947917633536471430874147456668077827690521675041860268751733216602829516956802322473806937304096953437770214289323161674361514532262037076611138062775750370014779882108070362178721520376729697658331476491993951397675682525224749997163713653940608382939223133967186798173958657718560954501175433472670145929243130152874171178736151028317096824630924118420725222288413900909580652621323176716342000543941346727412593072046840936007320256748371213510683093594861937914035632556974996614855260027121296093682825635951957997220676287937175160643687134072986014149193660406632954025141067923550500489308107868796740842393218832341833529062508383673378646441603354856406833527898388194905755404238655424516928163323780628614971485807684539705342469251009717216527933024531710666609924317801256019903199983484288885031067108877950364806432533216762241859123887205157459285447626060055339585067989025253716156067101337500135631557057964113647665736551314490030373381540590768786018865189360349231650530298608088897225791895417665717697190819928408768465682472436264903200509664588379066968327693917022101268406442982867863889702156427370709848229076679582564176674206569961965817239894571757012448447161333284168756354542690530639229879131560931252716546472795721415353182411144572388195692894832786692055839659778818601732737552282888847080651693929795060269309063612336391570108082404528534750029815198953819586718021703818145663908227917186912189149056541539320181387243001245460986559440486516943009345051730959641058471657680359032977369703892667485279406226737892732841662303912748452917726514614633872683116399225292601630684458858551645615091718193832983473735291513923879116372144119769941998377835251250070496783340487030560352046169468720250140231537321981385948712426034194867365847676289776611101357441819875777761445949958574214883414203072318273261578873690139225125939073229034468006207954610949730694539101097886000625345952390521405132727093894459342341038162361326211681630290951600723052512595613192370348031607431070208626887165851167377557734909007381352681273312822648491995574776303899965067702944395194626968783939582384000235931454195060882288694761921801320828580644658031716722340044695315661534797469350809594785341455203311620431405861228949356096697372561092617280596196721112265480164113690977736856567686277113010666655345690957463600700670015456552208331013389845158383748312836427541217878357689680335029615425682366078497069310172756310299986663448888708430254101301966950216883524959611498328529041303188665310797091809098515679593392967782316736306484528717355022039643426469122968734667822445336092350118554309013933801154253222395175398216115920909348668313446450051174499879348416368661671214854647955852400677720456703906950644507225912178926138281604425410271037946806538420035855741494090304133859068753830481303312863370419276669419295427225672127636662617937456487829119202830319008916869025100416263270668591093794433768986426783896208695128325603119272303582778959691779413024922560026663163704908948380188793983587108973751136702663054737092571302248289108321760303901689633925943123190287646365135990164909896766753904107116935814435246362303313461223173983504757935131861630883248764972803931989797294711091881715306585902582620331561816465232141163049210134377422908984581508751855402382988613616313599065493933690389878466744097474784473955352978488861535317266720925225921336615084086289714888371493762813046787730046561969099362817260764678378137281363919954098932007811747124471196746156808319795179393135628281018697063023342951603119538824940077593839909747173487829247096736416516147940169679900266358418837770358665905951847598603542393415426467515100146622548501196738921282947066821044061925027233994733959399160498913595181477169103725007824839475130054748071443154060460245602313756657894748220700259177375135390956459406580019616990050629410400304669850948150736558770317180525716473985199605412120577713088746720805214574114210359297079454181541426439377763188582595885154170182689871666049219496268678411219743606349767057877685407126755245808911758176576014184644208180224789036275569298349625205079441017684149651710284195497639554228783419148207647506583110749973411443036622961062544109905976833301677917375543718869076182806211705889027785676977074525843945999060869089533891088495474410564076940319110773078244180340597297879039689693304746401899646606960516859655271132725996437250905811191222528117583875891443116484299716964730353073857796131637077669053097160859704788677907314453248364165422067311083498231703974445805027211787127627774262722769374610837020317219299598204508697536970723402115224224646751305045597857446125392497617800291926146516655416892152662607302942288366910975889471326559428823862923691760113264321143024494927088634242186306942174669416486574175719950649706629420136957504017216108838111282134396684960481491449924332482180468341175738318144675146574187759428880981134319351216845686355517328775711902478121939549443002023875953122175024982981307114108841447667291014814885899261088653208304118499054260551800177282928189578176376796595424960333206038771685740873136828405021612126354401585368414536988817048033091046482957113252437010433118087830798352301774032897918270931590775469482855831402521141301275864807979793839701981330409898404064328126766154518276998413009219958241357153226785506641363987421101803237127551663392111564877411727849689824008214899190187168540506847012454244907126637252194884601102106548707832240585936406793715269090982277151281741468716600362232434551531220069220430367295395291791710129648598963716988644117433826980208992052056127681740930035486201423989634776010930927928785531467270447340275297540986837354587475258037001027887006519073513009442823000936726709099981103548059927164362630868010854813599987591230259359234354933125388765723199925767717438469602079421561804542379071675876037034953473307969646985691004937147917256629914514298799635996662183253336365088492861876147240468520772150933323000165270138082658487030984092581850940156955190462948193519038154401295928212207879733618409382873968099690478397235396268750323142024180448205673993553908643280135559775675432554469594506502274989850471722398416384726230838228974482449271101434166051391347982276637015141826058858576511754849148996913711503872980748875441876952549827273858349237301775748625136268574546370537029355159827158661796472300799291465610515240669954366588337839468313316364878802853286902988515945061606010631452099468761674571415667732898859615366623911557390815588160378078900576956547721459471194978755783601266960821963827291647973850095050402259702023572520318212346013725947834074122188136234081079222774161502420778265900130611243100612217053303044904218685159094731559211851108927105234361065552757151704793279475687873107334254166587000915167678785582138779656761931212487591924780924700702726685598340943252529389340187144638305425297310905196606984300351932917575781273458135878928866251210736392306320310414843125046745253772883847591867002267900677927437575524921833591406267971642204334093938507796181552476922722968436113166868443215804224920804263928929157984079406748371963774479848708531480401679343385076807680001227657946493568508043241708418180924679480295698112201565012328959935393266213563992774668653395661507250001663666679859180032293619222752262918386271774847908695382370813629693174942492939344684156035509966320066645189795362418815533824073471899321869431731446837258229383001472439835235755323984525539918585295442480493098659765784566420802871666888800514839129472309008933754668365006634720094981086949565376969461812674419083856259740895588431710459531463198897550712084607913134756628036072369155161764784028993510407336464128706066350685783704352631870881502934076874418668318312328562512226151490345953500882653134961740049489156426871034974605608581425452059203024371921676674691580606912240882629007456890743217775922702170765074998883886347813026686148270323900847400977113525795741814282955777786577082671128326171997938402000490089697882432754175966807702820994478935116079805583810729055377101020112015399605214505090354007652797456188317243094957500328205663735628844371193389651318861278453332694776242965129301418341881188313047330248396738615225068367087595844403796070352069286436878271779593515573150951048957814692147265795188926326177760908568744201196108535299527931176279237419762341983771761657621550195060517744122400226995643826764092959197876370425646339156515468114099947888624521959511889535143364698422501053286389625568176674859575790307096446399527712864813307038423038077465366409641068352040250680360620980347685625567109806406001710637486335248448494221546974647304486567885995196391814386831708814133902710098372843011374180543621782947467539784116683319178019593454276481573268424096294068307140195785748785833294127553862976637645622772017107650558909498918692937573333856208763019132109041713910494653038564947523146599022795014959492084321388183215706682033584345340607198249335506965769478749072924705566161854156452847672842866974883286037026109291610121898295597291289861778025104296119067298722078659517973921634303524855555979146265410207113352257265411868810295012813249579966679049695769975910094062798758557260956031064325741807765003090143887385666529550318072660356934558953110497504492567363436723828551276970732761581475956721994337725125149895270610509354882981113018230702387268848921590073237927257512144559141762374636659568065963211790509771804158796293007091480792594278021885379060681709636690553073836535174536233755676961210524621708168435005786358810281286464702389418923569870654572232382202805542857804718362882258466837902208650197564654353092259534217796426487588254012680157937191553469422102838894968954106100349604659368297028582667626001686832902987093480134982151787247702868053745509917768602499491102910320732726369645778426843250789155512272656741734065107080028471020683288219924687040033564395650166837676378257869269994169791619297448664880255099079518484372755511450237063020541060736382628926633850518851881131769107851912546075763950748699146883513452728804618268948768314794144717502432216511404563900558624584217532897450465412831873800329807798183817660576302278590214744408739463089621411776404430198642509980616141557964452960531058572633995399962801841716003184058067313668725716524283742860835110408235208601693856553467080110115241293460357580535145251093299264032792487415196952299872700819724185851712108184811918614374400934412823930844286184377270183702879111410679922994162767834760714132264549636837436922039600519305913261436601684969436460401521640016810323427040169965689913477268760377450807885364514668283194818364551041659133096060643734722248154337468905865376213122223037362864592705467698629252852020826057654389347170404161824519104609144176837797103979008375835840465783297610270567242636828726801844662433721646558421969126599168827009188369762924090035779692132828544605973238600633447543459511043487621254940297700059951361858406264880310805432840181833859323521968432635299202214722326966293470683989501835243744635848345237372927687987368156873518189143752781342015196499633111332403091622070014771655579057626987244145393550548970599819845918209969721891271033644510661084082705109200248197004472249765569039351449734784686836098358048120589237408370292359877294105811808200411385153375632969936981569215730982538753313034086525262395062165713796690226890814019136034643128431707685418350822570646148753144204380421471152453540107880009785238209059895492641099279326707133781278240611943731703877564303391979234575469501408155848565869297529065091230360203065976985088124225207246902047586362765878359444304808356144416553259574543067376918661116105047420296606811292261471225036969488449216407540200229788443017263929866623890686087908948043066781934702296398769679477972043025458940600407059743349624957822331802781625171393833175741139039715471546377688513256394088390092341045287115464197987269391298754299999335560586245985930638527862619944310022889510382608162574856747871603203419010366324304431444278222380338272258748971441940389043267856492227446705838651997257332250192346237473770201409449568939739930422218633758873189010387322793211678769197346127521808410901876085657235015779962109461302560690866391670486791925628799518046559536076867362568285172320400105679239422232727859614868533711976553402366557084149745654412657268197087907817023706749750753638045886828488649622856046727758522541235780502776331611187392767181033002568295250325897214842523628332799756432074636189671599564303322059121702263486410435559064729816463675488329701140187980633672172432141726909574498834883018642923553420748735061815529820433246012956260546018377011177788251094386766085138154241495803400338618126873057517361022640980216492693822539977050204713884568162511801385415255594058364808089709566425417532984387323795111554338555812658483607447532475900877860554147273972509384045386963408348007947074232336596504806744476686892577449958775113915958710559742026306487956127141997842812695975938794221094900686764075639451154741162287762666789876064931554872501915295590884597650922694338930422822611498697773607325150072308287506485039880136897192127951294371322760507677996319121010119481094018983827229111495668014199995820083444305007884745497916785897605335894836937289396377676602598586374328454582679209359739649724024094366552016915255781521972089543413230586758281649854426157972612366065578139158553573914876511243870097369676291890892068129147909741542024053194779033555305374798721636263229946143610922517446443739059750598860201619064710452887883882112523919170081916842526796478219359583003433675621349351874571164571451873593224162228574275055631568070823765973318284373336546653619543881473206533597045798073262302615707810661981590056787873952413724009893178044897837210407773912854207567332128675865755385501610710404508395944871783927446683217137631130727752165233650093097586141449062885674091044147743524095877310635108354986630352640863493536357051687998946383285722681290469438099574805652261189462891481458430670015204019343744344717670324988671348779803382886278593233353420189280567639111690105239475836577211547324031647335346185551960220132082422587066822253720793795481394525532266090331763521472893259658637235060581394434870269112711178057589214412465954662158408384290047819527438623590287338316337955947480196459485091795886199080444439183530686805678812435943742852048520062893031896031811264604948085033387086508173239783987405372715775417785876567653025582543889752611837425337685392711473704123218808996920995034095170840682824225988839939725461094790317745298396718479902718765516406318927168548686725998613109873108198028284048398058938509399662277234054856686032418907937544443408194732466265707342029121774910450618427324579294979080672908215180899824266523404429929040045535070832505918799261256487224755586225114208648363706015606587538922595031949978413455680233110746249915899825081970936289042833538961648308970912279758940718848426558870889310204552457244082983410307608666529855732137280417097766303561798433687319804027555344061722716332126392821102571389620301869378312424433122926937067660570896721301171191330507718924918670987875241973130409301435749604230981819362245784893897180719581533693385007559530627987382100569405610703593747650301857986289792994700708348905914788440331702613199826595353152363659886256232341743785260524091632719988051012161211588480067663387047672822536994710356075665821569177887869191974305336793874716602224838498457120339221112876933292577255984482283342760302802185657703366157001706743525204163808538010063871896022323385444646644171454075195235928475403769228639568199864756250075071560488266335890675742041605852115103757701742902310780507506879094308051753079247151698060086758369116524930601649095008662273099058491762737460774282883838808301558165650572788763472154965181724298015082177891002448000929119922790370356031061313848206755152830678240108411520305416516958889604985296520757294681171063188160320987333300290335402346570542175454659152383404943191298480617132907628546169467367708589293121429307448282477711695213855802505416343877286044058053498332153762744606855254562835946624545815703493431231130843023003664259391931541264200309420554640879175622090967161372089126347958520811628740631867078047142128138757804474269867160781890680852492628510788491232420625679451230351251794064644719267693437961429042406855843934850998720173479777037562513042224885630277191933141086566905702060109928908038747648060072307532042245411776296258451932277844421095696899672803594072060871584584277617156654814686992723289637442083849795856573469762468781699902844937644223427763945061313622311713313436067300736217309983899210108511959294633895296851752275672065282451387771393427180104369942579634801973186607485169202915012567663771527515024032706078705422688846896179953588513112516401758901743796172688943048162529001590598429565258322158557671834310391450823721859426910399272858148052522070861249012701168753005861484632663776475210323689859729635799719453598629172402838565792091480965394755870617385106192082361709198615244250500048115923532804058505817734960097683895600730633857129925342464849614132166967818008481214391031860944318144826883127003251188895118846064793966252881037508905567133886712375829592776853162571818840257075629077927888192771254830376789618796622595180358526943583341844303622079037119049711284735022149522978053923593916190122290809364985945915675342194322001342071190576884820612626026775510888512329306376120380756817604361631921475890626212641320420382547720876405656140143499207459581012218119248422669861056160361523882494508514021942970606714353443910540427601118243944643632027283505859764340881357791846249100667094548793559769270306714692517145639653462647672059617322137649362351226012416987850564729052489196564512801259459362609628813841389916723491614883311810604595195944332295825382665207988865107789069793146619348237188017424860759842461484860063234895881979818878811362182015575968501746246940110498530122784817781705338491923713513706392738375965192647700934281676736532864011836308168670129531141226481899806767785354560146704064855615424136195874989616112381835422134700052534135437790842549854129366171542504464685723380113633426536013728354526382037831939242833529995089278241264111016265213207801577521291361627904119712416073889408922944641928666671402773204233212625624505168738430856119809903382376337820269852846000319541071718850112480996142862124614931684989984606100795860669460484442564633547878020712146078348181020993669636737658641237535721544995508611286304168488295600777710451636290898941731057186160035871816004899155056196423397733075557626329084865009048945006227623460480952740585925232848472471634957405293631189994360828566037287921651282750288692276639861411157790673432099810623798416829386799626872294281160335729152443632511159333759314143630500773286467611746108557268953035543200518922833754936408259131125943099282493133010040340793235975125399842343426926492699724690698269872542456914662275750583652431644771450039893928301688797306818692473531381211910633578595887487761289025912034379900052361741033781373119495754431729167647973850503699639076791603404609153583271893648174703801382223110476179405057567411061639073270441218486736917981544125352224909825227588380431246815034758945764384644105159932927068821125857933519127718607169551787967955553056493703437112309622029093757773582204017760038342822597259916343506235715327646435920864220386021019097178102775998837038305035697147748538770226124247735089484547478397127498280134993600158956620750759913226405869645191955167456866733500105722613328919092136161740919438247899724666401303935875138588796581351343708537453374772561865796378458883326861268171600625259733081338990384081193688087879859469829520989916451431936970880973851569626669797957951574508737246160295648160138786412569535813904996044670733265844961317971073736726227920046791666735154577543604508001009365846187478369574940459264582165070271956406753583335894352876383585172868583239469863600986367565407247317750696793575206385594309130521170451130006772765576202230934198137786516163142024281853723809183085850770054195936521968801500622007727409358893920282932063881831706189918183782126654328441278410824513924684593690638055245198152728441253720440662188144898800379555719651500851815215418342589678649027612309384099064699638446357392851158514080884288044096814344251992838341883220050908099930525790632767499257403685038952393637542678934845030416181929985655975342982196807036224162135169350819189728328589076729332440305805973834960625636864370490398647894605949250964028447230124149357450531265470138455133069037378223222955018864605962185210916790192125512453114811453179564844916130338348878347488746780891109802772182275462652518322923639250228806598793033665976042149071646822818492514607692695336574317781448162859217031843532460088147210540453779172459139479104057634608042722581822201974031242896430396763946780773175423016431165674791311204873874919091416197989683559096318001316083756256520976242847329657185525575211036340385123270083204639193451692234786291886146365001679116684580297331062441839618789400319317611349760318658738522426508780242163262783064097509492367972320290668264281861927809263498635020643425927449999468697031596778738254274162887741685399281360748548057231829962167441591601956225996075239622501990476017784895629349130230620926947473750256253587812421902144060704166498591260966947572359834336635087730228977542785298651275344230610918280185744118919612980049591423517620113369892079879689315153536699593837503939568633954726669697621721642757906282516457088993045363736241793062004794667421492192614840081444500222024893965875364328950212999823088103008875908435605985034754340487261684183820340627350099814631310079734802755320635718814692037074338731930957191872070256601662901064016502432747591054343335211476745674830557280513371579510634273130734571357304010734775358935670539095148880205773415470795763273661310618171316575118001840970815706859357305913885446085598172617822008037407727557535059450804921201079970828859473375734890274343917705098836505408494986891115842764684367926196251921854692555748087233310670422187330412290841219149302130948565734852064094573666625266859407824626833647302131060354598983576382160164494045937384782455649831771689430618833330828242918649319163438414369949018348269559428433497129658738845830564827748471976347281556805121985294725250284432644273488711683469570343137890556036336376757471938052933987367278231828789285979931907068458018943591626790735864213351192717664664276433725183707560016111192943082801132555176826683818536358324518438163390584011204008665046621186060955690186690681299260209849335124067934497569591431104178853868213775378980146647917700148917474284762938308793103372981777835290765827241015319550398692218977093214244476644757947821397598890839289615738621690147212339373032484107597669180186951137903187512856986541611509322947432948964497480666698065080362524279821697661595322886277615768300639490526153389987486131825507638194722173000950872447063194792649622620129911064243606513996520073342918839576553658259943959666310851291396560322215239052522089047743211074157746772830527541967455622604054110034759274520698226252498394971549416216020372537701261196269085053450960351310672668177408868323696691195261393549873649399335485946796685422033454982053711376966147617195446365642009963823465629822083394279857271699897576692524694179340465616258976585956316243993185742888088376807824097074630844356292743909585255665014471990094588463026781824502973551319431544743975206301693037643543492583056709195013914052286961380326546947253425153462015161515133624546254762027445344150467324677831725563427201100851784599659424859880723676906823103310079831105647545065765023728841890524236685033413695455323379016020060572923006731896683690958555313215142316625310940078312595641559606711828768106981900056239970663980833284906838546378463430019079446649091619480220918009169134015841366066298897487916714592798550788781276424788556494901378017188228483814258803608175144421667738268455042599107839385565100957767652024207864557805575367034653375737759807239265419786370099767682675846812236091094191474014294683726039416556707697816012637976880113458936293290324325955183839699240559226177945970117504271071552986572847678993929252457252034777860299679330683892048955349564340778903404955631537497577630099341877670221546925775148554706178845076736443788779762391270563927575087745750696525282618539582050837133143230965534724030252766877962472827454911735322099010928181214502628638664529368134702022238849322156832331284140702702499690992146981745345633860800271404119618709561070993189501818722461881327840998703797939258724972758785576225969172008215841121441920627721775834642165274348852581977178476277640919128553660799743727359895412801726804367742241881919478734129549578558690041175308219469556204147130694991210294567812007880015494091090703145466280849022987924359824818207109263532322528815149062219717367664576052046438287020297130988958897190188123241305455642338803819055233429191439050819435536845696677173187722343686811502021428580123707764804567488647258757990692724362377979627060327062984764747581085873717278073751714826415563723511814796123604820096761677762992693389855951634155456191608758966541960693477949394994824258280232897910577301825663638662103618406211503127392435365195073629995123258433258741758836342593770719265548546260488856015887897781384353890549365543929672465612396354324923638042857808215464340131723470584340646372259992272702972966756374710875657726115729276854210713981029606671693837451763878083740569235929777883438082331960568920460087799208681470489854819338761610983783842820549520323138050809899832460003294868632839494834665246154780085288011776964952985527120497276069320097961478565051843311605376076513606296458698952417711080009243647864473183984400782532179108769215378440010533933195745721253045017003618316273848636917779162565820477683859153997113649962860109874650820493817296129099056596520641310716786726539560046764032520089190681872823061920632508795871780532828033273915455612677475356127089459909954792533128845042567223789969038899905530502587217132617307279369768742230906196242981271476564877729043592047908120373197097246479873085276278969934472907663009963600516289160279857915676882163414391506801884667100670560988055870705931375824356471486660608472341935263830006601962651435857485538519282219060382870275539933886238445511035955922594542193058016454492152345149211652612855518471433374457772076132305924697854091754937022356783374988100779855074309396733820723925637852121570881823352945434877644056875282904942653349043239275981230531939265842974406864885580020070489187441635732813855094923848423145761974774546669473243468638554681388081504241381163679378226571651398264328405887875923443023825098058199707635872974249353114876063197431773652963491418778245493562920532933484182764379517354207329473427195793340214979724449695127162168257420068981805763054033177938539016384594753499239645573114411635478945605054874742914380143053286929279154257191749789226201288466427321489665754823252042172600947872852417018333926145402470954655219270809388750538263008061407967151114435437020264843299981562436918066602669513799886284541407841801473013907022492096590732817644520801094372279105861483303073525462712201092757473029421349635582265881342462143725151992015135836762395739731525523576370864315725459890850408098480514085982090943977422935354502091354683922416521516148771466092084966219809447813812257477591359929991166592995912848621390463742471789838481476470291939232177061706049761251005707048204461438082185780197074306544053591414605130012812336899422077442331569989279811613935318954505006875229917796462364975951764949548642632658809480180777513047368455674606861903038558515947510878984938172990894376317132485673587983737259682140917706906100200461473371484988369798066691209307390478220993964485938252323385664086425463588085563672343820577200724020065880513351289025789390938849414421764620409271482736978203671783035468765351959227822770500707679573722010581361796850088592444182663795611844611728318104248866963860301701894536321219854844241426655364397474570737362194633490235679670670271655363558426919604163945538463365476959989089242967045454382472130792577976214819651098615206289312304775364608375132919892770287527210479795527098866198628167174288167698920763444830289265265894227562947353960110141180002721118107077721968876941392353114186305600978352844361742235542625241184024937771071669310369411968757469083982882965550559143772305476181654301695962920810271337668389508829432017136687638719671839498197063985063082368081473574617121555723211880162151924146101043662131787379841432920141235776874885096569051591742064477843258861596265922218887675832296560636233868938678475012466558187062552470416723013409768053200801281637540064383390879400461860866814062096628558803070734314461594782620516368953548086682857971282498115636885787058580291337188395628410634023757914792805300189526951253468051727874864448385276770406527400895681920115361953850418955680484518870424854069764849430319533689154824163151615730077579667153165156343631054076458307939205073378861953661028587394258050548322726535434317680008475856017832979628050368331333294037847289100583033371417209649601458020682642957124051080644999288893827054734192611262489247298509325177927330517498370336896959812074369001924371643272467244657709934829862995070858357693281976212484400503493331957216624711663295654407200539289533781060989928722554494411476607778564177019118114846240684313362021054268762198882194091822132082209126890131004232646102917128460601644094068144632905165129245847125802158512342917671426500867924155127678721499640723475980536703044003927959335169500033672706910667699257950500142667909932457351613954878259135999373994880027483218196524953554489820227486319641859044721144191828962354528973288008656379053159956935105283588645476222614685936621405772962010269469908262097241615027246591676216229638173067079816047623101872670548218588953748516565053596438789914419214271257648056799263699365266625092945118335483622547336704466423089183817996490951251131316861887063931507927052933712148967159802890956220857244084809536597334750561203748590702791283912623555062286460228838131182011515611617600171350971729574329771387859469980611261024312705711236069981154132162333810595722413129856269272747095743183871874376620310394293606557442090281292942971561439120819234331179959489989546268605953342511676352205262504238057854968846033470630756554610805930137359134935099373067742686762818657128743852648869859792204506401748359162384009970203014401839282546596211355401587401347401653803771228037485457890859478966690606951542870603584677381435149397303616118311933011640373865164972124573400978978268044842301773408560020729571889769779557242976718325570567956649921512922620611504607600607805600271101273817214605007257488418680761744090671444219245239829032721905472899655834018351401871169594613733911686061313764320001798348652844534268349695223954594857980820217932729226530915883592794801889560716111673559231254806840786626110939821631313319697003277611519055879667207009121327934841637711775858031585217056114199617463546886420592308540879711688771828552864364243769523460458256410986930842924386454627288781580288234739105532468184337140700143749688589030526262285187322044380289233552538348346141350295833966830247513643735355645522289260937560762575647450072304367635455671483929433032248454978499664767477225199139427808528414872161815054700656754306326012001948285330128013918195895553166340573459211121703698846948163335252214781229539115974499016402880720790893285807282916536345449650145920185112335851993370276715408456386797751339503435447274240679387654850142292913707842194848344278385378448216401250838040625635960407607447810980683129736428195304187019571040270895011077311695961800442872414567260698868497764964770267069956669452582551315976629954772685899010447778508464306593253230492750238769462967033906167746111497234279304050289655714454293674473844072128867805838067213242640535938563529295744129313638484812486409948489112224799278500069699320928542116971208509885266420326841199363243180653525606696418502985284052375475504139217668303661293722125476799423491173454028809991823204369181809428730232212218876935233197692613509259063283533847798675511897533781398590486849215976825302230271664021508564334587946238720364290673958460607264218796860596986539392631389856290343284216491803770010399123331590785492481109696437817479615452897057062602671529937332321828850430118184197272450725483152443945333437156171638066109386518714072400889137457249497562685657826729116869724363292093699675360223229662873276090086379391536078788621387297921977611105966654198025938849355013662591509808267245820905332292150662545287213849129867824077601770924739166200603142502386805622001439683903900329575003521951125067424271117693923592257397374415258079584439457998947205784658813928945456783035793828260423249306802247091930799973751060906543569405047949742923682556871386987945703356896324549448759888682824685640587382460075991161209988046410540570522068672423260429835679924449072795397977337328583215975628994464081377629677659016037635231984989191855613009419882637464304114277376871733433107450886362008884741474081215264077751301084509182058830881219521205274226969815085981562524528349232828280593848849997453135316247562070929333766293778576479832907441808836374445195568745551155906262307286171143665834045488375834804048304933148453849836265667731740161306775852195279540191287510463398301890890729193166813243191768371354739324139788174641059940427894099022077331287353640243387077188043471150329789784489888746720145489417384366667200034762349220640365927279014410372715533167826723575947830736402365219884749333817817311571933226934458695596269394316803521537335330753673990945779312281009184692350207267398530195835632217418256341252999276561998760946960312596218724462299428894914874127770258772634542652785811669620491254459284266604359474009468056130363940258663878100737741209108090159548560547689806175890357986466221046965428404578641383353897916936356255793454239152363760002326600111020803087457941025932272641540556231330978307764597353258258637936668975205274289012297801889490180466998737610071241735025284619714650386234469240020725019547706926009855466182920798376226189217859196621379329011323652213283125192926845932026644263963951968211235073407308488337039281774735191759120158773974302678774858175461098585674946054029287451245226961781886052727310409845418971146629773590117675248377044003108403424428334701645567065703403584810487254011747406029853027349343428395521683868359639808595166816987310771699081262206357070353274557876638219897151568450331116966451080600176592167102830838012406066016758026501778649626912286217071385026421849489196807436484268659982708638203470095415005185059981684982074262851028276106591070412833855533701952675568203470521373278726763409265199002748645145045780000370980706750603425806448665981231898140373622931596550431846942470213326536881421937871522995193095897271127850296931502285691146965240717994687275762019171605351964996082188701748066168637780204222075354294180848615690381664546865471667014062812725905070699608226932647392319291470585111227901666868728113554703393335055353806544047730567885529250608081712928084577228877354623645996728115435119615421239194218284324462245980869763566141050499210222560759566103815799758964308667414178052835714364050957722533656267020172831210335687059929165784030614633364695804019811257606142795905432301040380686576862329845360555956648932656010968337436398172000125612482977806173474202154634978975000614317374219496039853674900614239539938918891177199907633209525431287210787056771955932038912632825290290192984848899801445173856770589240242586088756280361369301904035152141096142373125648774040252979510893874381529968567745910624673983915891532858456932743827022775461643095728048990033114096197927261093166338566438386733573562297837487054174078369887204857330954008836355197268022016077768172606045140849984419029838554733248456473611779738838874793180621311493608808302236391269524302924899502240136039023437494608472959732705905665099860890172194949947232808350776759265446744798200821754825458889101225335116911378008676688030635603235650490015224063021078241721897856535497825188009576404184755203768282625415922769387951221893335700091504392593012089313288427707856659350366874918321674596942162617750095767850701923465827937878365131064903868561873306579350386010169306606176417066099912777976435834633324388236116264175356979267850540117074914748112783084028299686217229393266567467766313040390236806240128093372975654484936128152743653410222603528865896438490046632794429803613722440003125861656104995745694078226117085133603935797055202268247067755915839659602880717346818321619427688935810725378327518324421337647919723476888295146355313812993058341456166621117048337972233733543097628782972207164469437552980048821213109329523390516061597199137661116145226666791889180934228277023237211845087086013816767235965944883604819328235524803777901962322651374421278222692304726544417041710812527301041918511683986723577355676395170063829384719673530286467787404121775773996641895570395065647589572046563749141179299978384184758161138309409942153815758060907303302952088869895103673930773160819712472003860628353487696810854411153712911822730913225084968650726844307143293856076034508889683498787512968077603054076974689038717409702588895607708869097348671912880828301225262607952992004524461393522807658793674632714162004636300270509910329758430411495869809160972281962526929344283880411859209663578578046604355564447391129015123003203411268827658505387659858425738073707558194774584810227778889686317853350082189026812463546761618650846776492517620282188987933425152272977954502109564377730388011115900987851324906933733041709064057726193044677910376621503942899816883278913382962973090709360639455475463704150858150960465847323294652944154489740412241225665940410105742786336153778686131689389397543144019060235169883470662354280839537742691951556062276970614843206322497513748760053899608628642210970067669551738548603236680342199179025271059954177398516034650430208975305940071956234009945552610922061399011061238210475900343612947916146375810934221483483414542581073668858972689988901192508880701661139762819986152719338837418625441047308485726521984615870078299724798255515221082871632964108652688887236199918451363612842875565384893269245416471513482837139642823068084701912595402932039648077541229602578996538026404584633935805302088191668914480135991119662231751855361756859290872370559549931959786210313956172604321425836709409469470312540547860568752595344306782267380281863537900855116100073377054396977687837752588090411780308468224934352988340926904218653968350295902357677151966978311978318329355043051843405543592616768302406025137458601547429318912984992535251458695205980965344977691807376137823132072679888390016967167954750884469930938907670311804285644796730067094790486468438502827421443623829272238658500929537687820230232341774286413259195086022835352005303983175247928793659789339456688386244859520653965446069062752659028335418420371578498317036076032900030441590956681689875488805084209108748508475363615548543781842178444265444309703042844655366004705404094480334253744622539640300087532083360027427778195814870252203894517541811453036004076749645910135395024728547107784907368270852788246703653083996490421409311206653901465666576483873882765160422646470570810321729980625468410638310844258845415413277071797674864968383696615291651960663884044849256467334344791965287246929810715564522384934988068705379626892722638368015705990142400490369909055981552568673236508271687518438397480782045164529227441713308235528245990654300379489513120188476169890371646406775952886935305095208774563850422713470945200211319409259217423900862525995144410848966888568156328615313619410495059881202144349106581510710719633684024340300186092194984856547992701685592841348340146791286578278750175197592509786169500287518691538877408943436542480084611327278043409342550003877792704868938874530157597517392091729884504796149803029393397676939589171860748641095144685356967466053141999423192834436712402566256536128169443905157010605201024582491525270187158115922077865200899727773834763126251609167631805699257943704942656016011708387931348125060905605096566505798654943139623885584121954452199911373578744894728363266721914174798618144211204816358046037258125100054387701072312735607229408533629790069882174889422271552473078557393933299653375967154417143081644717606770825777090563529905011209459063547767182979939343829318017478712241797963132694388040204443232322333206981431377247443747738358189590448550797907564353082924497892189869062049020669488217245194648069228064272787392531446245698145322905527329230434516543893287061924424475225152324753048981888779151212244304755626716111827225320060437493169277953405520052243820959377282739322432722129026404072034161282970214255563651083705587593311974288242089209608263711660609730092545654202019119628909093481208522875450532209243001339930216804963767269633131693889011174043447997227663244168783113598524153486255419062683251503606641740399877323515039362596040089682012926458247035844582088288904937475161704211170158388140404924583794370928708074864994989920251224992994191978748885265779831895309213311313812202269363395654125930864365165268645270067450941706715381611832007517093957245514157185708891731267103841521994018928056858202702981217268450272504415278669479033178953197051403850044866285935254251136735102715381421190123302638903033654867694453710004024261072872747080787751062423102017889479372262695757261995685292744068244823419096361232493516354988182280484993290494556323026392407838988077068440113969208070485798871828297950836142793068923452240426902037199952677320743263127524170285446771756576819372561608721559743403642973322489901952817989293516651342498157501656926810695518022952735323726275720289501751103379708997372868653040551943395848999156230669128990929774851680505459277150196860073314145551005653129499830167503301851225977234999306729458601023900103980979607048052727816148107319063788675053888789084941995832154260657705340080863855068223675728042985142236384453515404202663229016621988642677833648074216498227740034968439645717691049849778864498870615335852958066596060649907337338158929634613353714341667706905693033434088129984970707108642344781568064019092838938459771368282864345149499034720852665335216381052381393168667842995087477464977527115231952411146536950816594747190865415973561668304542669547945680718876792100986256038290781715418190392762965806862951311618832136182599855497191553795875641147233471630385716052198742660112664900292107133130218075863964343990827060348759224876581285695400804878328943549898419184478106565003616624670216605507291620601000187930383205856764231825041072132087785835826468010543036977358551613624514602769685935376207434048679434983981219006493657577565190075295842389827176646474533555820070691360789469237220177418189177071682711867758046351667981221551334832649050265492762669741957840165783418004145478100908515669407147575241071938954192960913714984413485125827561046317676250014798392419260169774886196676074466032892571814343807591714443978508190662305937629086178542040998806783621002403897075253502282441669611425959200852122669533608029987913364967064636786311002987192781827011620710873418296698562748645284411592829923130275576500476901139318791161228261128742378016559687226856426637636679512179388003552578069676310263043475950251339904623631956264791094430250058149698842209253939721963756977326432570211663970955028855863168722537562936402203405393303543822910398013629821461252136833835846055786297265088074736359243791648384046022249980136370715063830510238874608708281836369377389011864893870999638865633734613697830640658458313427719643864521480421728429909535923288296004272431307984559927988606723304284898058081711249633041697873206621911027069930104192749451006022046176626386319840495165364224180375337613031190700747379193833633502665517268947600962803212438326262054111626958527024850676320844278841051165058194217875738122595416561430398417340625244464459392018735884950373827736123068480659963553640604792371623773367813762567979594196743975172979971252242868410056817949987740954453165478736580603058306351403754337533184030968218092758937362931201967049456223761121430175627336352758667354163075163984478157024252570771578988626807805959003398965480106546264560322561332683367194123065041473753677659920047894913805663341858235469089046421812702590684808540650141127719514769445581624239880467394679936208046679379794241139046923072473837226359760507942206542231509782030456975116706368964808704103235404115355732376168097006546222316067632250088145645492132099470032404332636878617048481721888081501259880143780443622477621687211413965119265766221418049197232699335934081744344037815965008276071521351224823503927445730519466275521088544078401173672915962157616502813683801293604074604140898314322545962504846473900399353192015833366692871552599830083812043708073728178433173480728627594313148705609485973159158923353224508559128053241983867295254933921493565058864137968421107279495903736537999487847357930129482023195565626163273011955778640482170680646347672125561505645029507109787508119213564377988468238483332289022987091364285162449703596224514197165801162168287820927236326162457286856845543350505888128443111814567749823724160208371098737123200253755979331527305254172806919774814975590386975753050732511217007514438323563527702943929122235094449701238084445657862218943608449200234733937728856258629128780703707064188197459271291773111453323492297638119849387510605084550806665897258436661921956289075075590095369803111116396613105226574626313204814251349689519683326518754517909096660626767423501279294901531995638802266115014465245648918449742476016145236080442619533764937693536021278911014195015054942171395281820770024809705800814548380994729655591180695444370562180871116351531246533658210432648271343079946114549286313338852893625955995560380345677637322239548623343380741526872873513142651096790986952734659597471245985618111679831119994069124007572294772856261062679225108021760552657275880321492547720411971729170208977466176003123703425267403449973850334183570754146654931914020599310894135137180959498630580483813702594541322252953466694693331911583632490361001137461909259405857935464380450826774523676147805349576307962199996865323611207019613532885791697591979482443036730521911986509444381320259564903513554851371627426875809647143100285250044555919457417406328030508915579589407522290577690628096630211247954380233008314299455037699261464239411666955500107164312413350136258613213067897376324874964201795669846465217605393417355416196409473515906814790594917123363511060713938889696138679529555743127591315658725542249318889545283569727638846021169566869620680134799135351481670388125235768805677750853344800346370079505394662558790246145951837534292407480526908415490050873466260308886351561271298883551407365135232141258515073192950538241323277159700618929730147954846850299106927387396791985361493526626681183390509403799440028794135309905268591795502106350881071795686897932860905748337202385330541592292740079903532615999015159811557242318754456543482985145889154038886890420930878568524723162659844382205538015266778750664941162845018990849686156230603219275152445301125395231545394463804512519657157897600845502104774230050485439109766009189673497171499657465968849882547553143238437251858354278486219545830618164294178263142571665890908156380121287628917494836819816613972962117810122509687861931186160716524075505141986513090451623372512298978841277278593159361893502697717575491915620036242774836746058074512596360792283224749876030325001843755448359170488529920422864668715200710731371115446622365574774979997827113607091120935686992893357100556597468894637827524365736485035865263897924192991213500970303710440422590356556503941895075401156351628519156024068793352972330127047241248217983690108381281872949915909363907774344622430788183505328314834906704976790456072364672928051517078426900194551059443324244003235832112013318668160960093678722402488893518791923848459221325549910972581001284842918023227170438323993925397097038785888440846987992456216221693715423741747181840334002425426739381236714921981561885920668194682036518165538010736724256062482152272791436280776269684038726538769740496210851741218556788782623656724500682196855607916835916736612257823177729198779622713604377858401174674593462945029753970810587939105344823085221389048839603963364964552289138189476477928595821991300849961019436452230678851723997233164085726704225805070458901772575677218412861810439520066745591045201052882458670985791388042408508697670764205023960560151919350776813082756549829209454713677944667248096097092656821904706393521758236472009916809054373482023176577304019037724972429904598158398027840198165552362906013605587919597661851920839913759326977432515131588267703022039783411498863573334772526057093043494746279218704172628445887402218257016423594223307502862141818501694869548072287014487267771931199676157058663038696031087653921728930394209324883929091352529697295326858278778427009899194787033693685038486536635236667187024570387021042451117932633404191712780514029254831470924130130491517060098635547203736137913444643990128730401410135318153225133588830698403698230797838542493532380731111587589335530097538598695735500303949733756915606907919881524272335387834139641760088237379920681171088745519712194806152148364560053600044081787457710108197140339379414833940562624141214755775569950991365688704541468888741323018874939403761981993516178078301901063125684267402320609657565369633985267909487664518593057956701272717423866841095957146203641924221547865127726131892784815365795288940026539082813057565157437490691817352391745999209206724045501389201265175231253208191405259063315662819900900019906051006315644373447277576532840671975190070711662070630779098178111829469898446461933249192399914196804860812727369211636373195190315100315398748947376299020576505937424289393380700372596738015077252742340786410222655949843628526241351917476577936265911122929561052046735409507005928760277865585928985592138913557623854744225297663376922686192122360273942543203748580085874180434820840417810028110055358258702770220964819958779666863537011433963011994675225237287876869835987510842954076217544554030799048699273224488355546023994516488525873598886979787833467811689216676326598110448143104619035405775422929118217108809521372037226439249201085972183052549763976968780965515038898587522264064701195780776753626409513927804478782418853583949369363654885747704319586191605946628795289644824161991648729315782966342492199007544378698421220022011090616927563716171634862630503118663675502561920063986941297607626454829833059764702229298088876961960954937538229567397984390899537890306589978299176426668325798102907467964049907207347212130212384841857647515110667323742644988665391499701966326107667089961987214320620531179185620670221589823475225795790138867586468290378322132040326422636169957713332159607778698721453207242575516997854565351535373185306386811240401030459219752007594265210092409856976853505474258638788434437496466967886015168665516519424820446822756854258410294536306468869969086550655395560366131556859015594315072718602892639078720414709976859974626762136066207962510000421407290305814269599655572132593880378107860452566579230910078030233756274033768588074755065607051473758220926965965106131958447579534488459651027195190015801599552298951567516234752463802429788143228991340034339105086802315776075250990075914617867795168944086742612129960313098527757496041047876597196850625807563056197416282810812738331042693808943994643074931297803177936822971149826053148764923815100235336930560672992688821231618204029245366314516777554715436993524620856517576558753550727940007358580618281087186348149346540175868230833794398989596084861360782022152400346511937953668112673785769324245202371567354813586694126198809904993686804548821833041330181984961373310308400897689728592208715349088117129730589931658908240459691594390024330285966697369068067325805379420678621748914221976768893883579432412960427208016023075415136353842090183223311364817932291627846342407896194287836174484588240908192343902028984304331727399176015422549392196329591404200432131174218342765128045636275549494910777669319845365453781693629149165295203956553743567881965030635231610664335283827351711247743516948638399815499119879873167135548400857629238879861417140834936472507769429468556781777820019212253557380256928872173540214562083805476678106191198187782230853175548401441318581835265763236703843737455134389925485568774775066185314153144884092125754976097444716693062286660711312250260155358380461999865672080551941881507241260715702833287541503773110786791117276843686794198084708579902180601840221119142680732396163062925784282019113191478835277726921545802409269473861242350464808546227187265215689712542502642331891891741368682545437392842132607922795331369676104096960648240061782877988916888299314145487349783699301008010510406449222103766199577973405519343523061625088111889940900150741371922412079132340325547478228268116958638498453238793046165378594327975374571305515673520359169635883620374889990677822451058941632648528440706340065249833921626424512011917672733725557064134850353146385223038802386151899780726563588323544418709066391524576203186538811642734049063057629960289788978266516948199276511654961285261639486184962006328738108312435642614166332752823560159046094372302095725129278029440797320354102141727993900966656160024211382696192974643503772308022690068632075374790343397089015736868214142650215864743189391688955241760443950472766854215298805496827232010177790288717794134493734560370567024884291211437601120744793897046896576239142657630847864817901412824078485183648086015980979436100564524073779506782298594916609787120483400668168138076666219953760107720990001147045469806551566309999456223769280629054773000826773516452941595133965289581018708185560512728243906738109518350119663926661262996415392881295498937629264311655209500709846722944365170480169812541637803135595313928180495478057263712569874612700358196926650150163685169570231181194437392796313297499309830046161599470423518950593534094116509467696118762217317338799001926137081918230497316673683290646459668361729299576347690821708008169467656759458872594719268764260378071931293180923100921340011797616119999732035769382498621618700252705473605061030533960595156564903092504268269976273955943516468090602381677595076802022443440004799263967817180811745321974240748041670879112842180101592737830448769035166747338526355318938401925719990096341193745718830459244988642888484464500505875472468187579396248896247044109093333789731241435521004305762385552840914603019164963129660010414212508291141873811328982798040657701500020434238175911909627082837183024584009814979666608835391012991642641757112321555892053272231022284832038339752116500331284988913842314508012059211101783169286492545652864139424232724531150421067960018917305658787907977276850808055427436598864046621468276367396641667042376931113988506759403118072869229884971961673537987582053063259048340429667762571134881811028402403064430809298460196674750880162220165218771628209760277106098875374820157681880684354620899487749736778548285420568781401773184057564358618370150671137675917618465430115320077327356471044433317347832349018820425818059800003930413248940117231000477753490282716486069993190919873636575071150916396694245665627044104369613068372597748070120007171713366421923216359318190433233991350353347297610104643937620464214331184338348904869925008663192520818416673083875299677018551775100281554054984525372163870308046749801112877154278480555404529624683791203268270439149911221188169443674478005518113605047866973132163580475250831575527999710436342812795483632053005334991056826687021758445516988002559297890385781131733051108431972485296731372809608701733072066913094884300983782809703299060817277077609133836742085399827831017867152947683275876512033588304551914370937941213149874525477010029869427234376205890501725725801783403973319646970461702348223562814761496805589333101100167136092575353636078950388964892733115715796873809217922123587425051337573888958304163227188341876750686682444630965794101171821046816993432606330791779864042060938766724946466765221783863412690796668527934531363657997378890454223650407437485618236746569299796693556504251819444421286719571065914323544620870309616134823267862749879540626418947644513895976858571180179233767922697420286356384268928335930924837042637258839318773119304570981731254054793270164734443351434568691122329798165788819573676018740201842246049708509660042088954313567269362319530412565531394374404730523232976898870366738805093589648535731084240475951688117585375785343272999497819657273612234845661475326632038999819242760893806018666145268199978354833168485979620215649745250994170921780145397553643968050217555277462256460460834917593229481156055176568774843914784137744371759680939422422073575807170502316860568442317434533227391895086795191848691775555798610476950944744894184900192391845989060701912410694798486589817054662636815133959543552091609386186051853133737528555929763655287051593057497966692683857276783401248067146294231034664141556044797781785605871212683763487739804393943042639502505790910435706085712456749846334693378199904985957808481613146028756088542687931498426254677599903518549822082223968268848214486832855472220240559614280619468555194661315870801789109441411345419946622030766064194629474646669933422552969224729065958127591593207536914473772838032332151410838216965886826958373564639888276718466180482725789749742881863299655711807853773819231661046712433577214521829618356852996153878809005072900691929713872474681581662586778385805809362982441621408119669808745156605260362683215133034452038716515344290572667164593810313187406989335356811563959952626674897398744581660549162999139437338330890774340005718644952471106311389271441858105373681452303231055360955428963749059806013796328911525819881354734226899557760380579548276267187921593981193193241963151429746676240609046619671763376118473695091206198843994815010962375169972031243227107371167134384417278816156067569305063773091596058798136947020803471164071345823613313683141830032366919004330698255257136789644200634719757579876412152709909321970305504848943759807423613833630471708136687714786397157880021350710522017711806359999937618441592463398600781392025588615633449418028447118455836658774296254572125063297867695289424371315376959393237459796453503396731788725470927061760851705697136703980403183858893030276937795375494232091289345441686122814160331024554723283098805494681945837681917287250981435153170485479777499720878907210299867947450604209086961765625354377190944654499137522363592660024067957951127077684396118554102498168176482953915362411164573879494574903885962602550924113176803796772745183585909969250987588309633959325657854009326304671982631475085664696764506386447336610295109380111317748768091258898198770050679975143455863806963642650013725572735863333999657256439713680649651171698718596853787537862014081700276498050872114550181922613881302351943031728059875083357260330685242772793289513996150194359628060918477487425091690628314859439128411564150041102679506964976467235959624404800397426126123974408676349034852371869298943313189915271614034232838606077837622074282075504701665363936242898080667736528183575828282781891130747495306770494321244807857656080753100165372659232354069274534716305191423390186192650454571313210634204427344534683632928391643336296564604255932732183356130267307368775280058063731835152384509922240606302614940344975355563506537297774912803007466829187170375574454279251797866839574062950368296078886281795002741650381903939817696733210411443054689630823249137851715162812930676936675399512974999902489283620153042062482774181295949567191756282003158821445140531604187766596504845749173292315341320466803876890290416351598302141997448776171707024176840012725153415079701754249900313588067258555146337708862840692982162828023876911720195923095493301097120990614980031760969598639180939651638709191395040290099950234337242792155708017540227140164533460403174049879843033900697856364080490930241805158202710021920518452353128514165387194446170951107384735012054785938550358189629872738753372244055187196520564302027310446781250196669430669644480605717379928720808428286751370079494436424386200922743621916080444875820812091385764631333920373932919236561365622522095182638688623968723229799260434188575017475011078780146320764326178208378020662605592002144019803747581977307193932299409960888576330210187867023470812641489678491358426678429963114844626491494539612947420510285947040699914390859618834666738876529645859931965212206654174363509355573538712148603643218641694308988313722776907055128368822951462635555364512583072280001234403771217961861217831692168753127611477197363978048675750125936740866989792756886975599416049267544843898533583497152513473217283449838056422149259450468076293223944176615258961318673526849484708882394673732956482006778584174402566056154924573547077759267121822651504116700719335123391529377426720980745857443720476114914489747545717518391728891323305350550862769935929126633349184917798712567847613931690102580150884912868440311110588724099176915897507852476107330450257181798381661514621697141595889203840324349379857885622015461939737381797452821379214241390282687302794480906474803623033379574514231095534245611392433449042959366060514057850617706348896562554585223592067061686957928341708666398308576597798204435321329927669039523288545622303770948246331095342882055007376038794553356511433245301820112309181555133358413555036683308769057025302006882715759360900159087872058606143225207577969172850632730863327071225910641692696386191201135487199963238322513209210458196350471608208238828912708469296815490675693473116160657136668396340757816038099154144131165949674950291251646424081855080051338469692623480990196161263036267396261469155542168210923833909363212658968178438117843381084739597502512507577539099314443857951274405539719036805464020605969178945084102081441670888133800865690527121883596651156322167461287094571022935162750097469182313752346358871419061947750609632430012228069785220554097416715701922632374727438356019614751354083780520454490513540230435960609650759784552227593799274575591312496487754343851823747341629868487475041118720834826051880889784557029555418691964301403417392512579199274815643013985580211511934227543211140551917800322514942442901632786626115109938953612756169309539799380155666244911832515716687000377111793029031664246518093940299762072510431194256652528547923706885005275312972528439345988513146551781966275368319014807680406296724178664532677127496401066522889690969774026718798682740695961314621113169503732633774173721434368422844692160765088002841638968727442534160713073271416286464395720438821926035926884139322655778678036786143087841387989354988635202602439273343136978195228706982587327938016164251831056777098249878090824786931602793283916674347626743271628608562796360289650581178929208981328737820573488735826519251320204672168863961380445411709623995385407576696315930383525780545925274934770710752463321929098478902782441993258221105085359813341850954672897599580400293199116217147250224884008213134573480243546321486635200693581864691882085733330953085768409712769869893357255394452376731021451541786399436904027294858471491854762854951006644152822667425333435458344842764520276963586079371906236425925491972200562406310695283960348852675444693929740484311800411159920162476594365576167429690332969541641472302233411677784676438021284874310639522760491774475321098921002713855544347400457687862096946749668907159395457314831491222886839591887759429203260783086452468370270040637519475625335312320261594828318742980532975479577897391672846937194528294518708233938469243326385291231572177354110974766373774531059587079781339072611741453403858808801487387230161220734744158836495804588393337246637558047199035724719142879106627415033862401994851196085775985020033824509501265346043730438453938974791492603995893768966414706376123959628013487901782073018209004904846845476645707546663054579174370850365523141440582539510420536956555855563952982026094732434217679234511278937948057596733830866854661728821322650767469440457364018708160397835186855559666828983372388013139973388758592736007156422356996447769545687722035989166443274146306525817244109127196739694410267131669088133942629121037341938091593637449172681837459684339747237977695001568719065406031822111927558660818951795197463146122704158356705957412785132544043445154471249132177539247994763138398249343045208931956139038451727683426105433045046804910381863724835676592094111052706644122393212092847763177739853032264522215510957433151349977260402561857285211652246199275154849232048329897072071286038486210542050308542990592807449441842452946211433857566592259621871722202583004962496872318349204072407962178859159734380672034685678020045333274441850230294557839208605575437372616410504882661994869448683042910459315203563931151146230984347229182039411197236908181733125744969297769431602699213701589903260381441414198294674546086056844960569744088908740305827974117047380448073034246330345366468880773040974453174535062122737088502956859700133728739237185297046121239025696738939602733170102658147013095317465867171176305445450351932727568828253333320105668123816846936842565251922435297562106699932149797318390564805631662622299308056681416777469449537348762059451850974502977361111772388665361836387796616603160149866311676604532900229966216882109392659909315836052802314797671669050625185155750329185790619460032693685528044319830357804040997865951181038150619638446442981741523578831122975379512985947349242639319318481872644053544600935735853582768609794291635306428315532557849474360686475986153298788556419480655683023454224962996486050780283025480992196836946343436485138888944256111516933933916545094886995833661721140272790775599404844150556056734978153185999052672485826877919167174261468749345076996728857968619067274004516849966859273939705071548886929605804975095087420551749920161074322934216433703005997737135119322892825353484192592627889975739705454488921219671637955279307358132717078585956870169324851151602903091736905650581632873827040635329742739058564911610734262059532523643594069979794036844728248951690024551778612424973025668197910949143089681735784293352145964046510591315327129753099566806156820626331300618255754251587424335773436873039201681885412297292393161059197961477781912492905677068595694033573553787554476838745203071197940888342573911885452062947123252808087559096961941492064002734864494367511844738259493105401778418501024170459031649701880583690605215062617796441044609018071223071134944886056312158665256047614580044797197303990153711023100471050702110069043631575527255931729042181871508053804553271354601212490015216954113973181592732111140152791927039749008607217918471499200371200834591636068715328922413381604419970316234479761294259020484312980445608473893064514110934526864401269779462018792290707929133188822760363451259871447914517600862462704644443164274293814282127508737425473039026060940574387993484790897847298021346069657114109813705497704389825975001402274073239949895362887648175305599413067036412338546822227304399656236841653420394477621473853936642318521956721328676960519556913544934006778479901044295044181216519030154775328229812428766505992737660918663954646360688552383251560027446853320958073610272279290033296431326470042127082144556297908763643939234135660552626761067209773411195878024124622977805759938339628190349060790031473996123883835261141899914739278630900768723828844469049125160116781121635019389270626016216488850190219444573909697503872293857345734145497095688837574982162384402182605459604084439812571608946286521372831185531960902987952530412730320500312772244431258289865984090334427401497551258023425025505423638047469988653237134676339715935404809692168940071633745831045602895728163484577413991982526202498821001057668628140131309933202581898844933677258013033417884469064953280146668188608189382525356575735853673261599943126696696677756613657021678122163417724061081249243432335195302644257928426745298876062831995152707662366609380370976863415730140102811734976143338419261654814055092115835360435836363151499498512900067990368897274407995369688272696150331824882840177162780901197857029976706875716887650507691989132716318219634561965139501539636137226151618193425485226846508588991224084863672615013418280124721258738333913786710269410038682877611112941054672270763062336360451388722231755314145623635381339093858501476839338579640222328674149339599174430881229033131595959685276280391233692877485823804126091976936695155863810616350176098135517791618543040902280593539278938308445834484707050531480321060556506255362373668712163815504363967218291058694427863379954328127201522845241320735794737427886323753319361748183966039818819156041232642483045579969164341760730051202093104929808036671893638247749601872528839690986255480630735420024085712551231798583713595103950549804299814202030932901743227474350554999341864489195013515564818843772604051230259479863800833999341936786929188757820616830829465846170496494278280502779229655174582969198584343957665740320726623966365638651803654282941793173996955476703710639070813052065217215669013864187495999442964568312606085278689333724219935498057864751523272205516752940994414603148682194877236613323418464504662200335105213874449059340896274951043433232780856483242029362662851558385429966342649941542017015811267387477689085144094306225185579400714249259181643290514230849818001641836723408794152765083852781253693332442638212907308029049236372237327359211792601007814592874467807148022250741981244264393053632377157235198982836917956450297250713602595627743367019664006089563416676088035542450068707685400607973775991074791261026113296261438897661404317998685063336060117765308545837256044189036573043158904194213687998646285523637642574280268768965460198860443733832001790545329792678481377690456008545946850031657986251846327122502523714811391300774104000176639027999047439481774595672939074441959775721090102100433403279799411507127478865550053457679049025395605447040357564958916275249953429766617102943827489645170827915676964328815005707392580362425908387085659152377304536515924215471817609141239188370312611067550699048670574656310244585270677385825889423047980504713531367898065026087184410855980655062774938693344822130424599274191010810397257947588284859308247908455377406633304154636975460065075298709021589661290714120930542410255196479441467717140356975444853905834613509981972961707885101894555902755436958130866681049185928495382301462303700037006065219861652196807391701645573490518043010649778858094835517077404811620009974493693495475630508874951232804491106749704190892384961379167708061938864850145245314575638408277154404342140243512069218953467082849483160728087697520102522350856907206031457391449904706388400345896699749644237533236689880220142180861251103897100688259063271960395715566956635011734831570430387156156061276416668006582426831534971127180106648156996682638418747839472236877573859797592803128087144456832802310972340133514140966309585601950431230554692180535413723063300121497714370860210126510890689216969973108599540414965032749525055416500047468972820676878395440273391830814120645366568357555263674722010127719826006538492531187060972001979569900017951878789976188849209706800173944182770255843532675135641272918534686527249990274967878103497955442262111107512838318500783561362747403340713869163112903357968808352153591400982205235155166004924687316532349871449223855694584137946660963127107872646528589957627228595458538395701105114801837461236872059398762416890654126267227825073597122949270876549041452226316723409565268106923815853585519816287519522052482217448374055273810380099952443397081014211768439169686700763751784825835437035907574445048190866018349303268905714199339854200503708314102807026272871148067403858977922066446043457933545447855028487015485330652090429879211583634944342157224946280195663684571926759983100378320089987919399267817444309743328468081250312921566164101809023080729350818105973336552748967608544527793226357477909917735761457181928863785499121050535993075486873170767516434874771396724386297199836277124991859926793240841860656817206047529488768601410124871904910515762649952188937558357211981252945007459867837181349451280918868639864693542031877222075845720052541530903115715016826249208332518934042113996293063376460011228027641858065541469687414409401005775223417838580382632163164355161813702934658601299305710715691882617884946865692244094006729750340912828829401822902136673974676844547818652700171116047499784761153248767220409503126891876604373634327943929819156714480032369321416122198497064808872742029236316805658266372991251622753149413674344320242702621015594412119538336992473003707766846887663041288814884887926588514498238762100525706460957029123727234059365206575681898861872994713226390328887252545765671983029496573065761392453822169092646467708316608124621058750929486331138488263194466853829889025353299079412979012441872211000762471810684909234327148128084552492034471661853341373519811845429856021710956014182134938068044304406089073671097770115795707219727346981817838442781710090818346214472569893573386315569923290160914175366372345146429585926717727269102841795100224968714363555558669317940955836645253625710439748488467691888071686876657378172005208412082405637691396483274241666661778675260172047996550304718558060219353758760266200814639986940344340752294077165648084996370800945487659265702207033223138376881679973008316737416632554781976358502362031650634215159138032226714984231762285020878099573470645418642527661459428940202238017807474206369075177061888155241605670233299791872865972503244563846878098804595818260326504966762393058763288400297051690725767470948017513482744419767644210775568610221152423127219994594849340679917532308832782385008901353878256794071633713216628262506483840395071725016159490890902811843079095797720659409042216258302853522433414075616799466141783258221311591995409137810878073480568207912973934384848727522073143189367923058745995020223162357938912025829053938979142141929179634483975749843095026303808235605284605247646357931051183627005800938669413496977848120476169828610828393852138240272242501266115106080595272679729661645395922926536817809344549886750565596942974387777275996868267188065821773172901905973289613763660597468983882312213178307355410995567788383140562784033638052505799007456247126230623108205702768588088803532940351791125956932878977465524015561851485854455962116979615121610677306073084668040204527630461835516981791272039063346498078158445992299748620299437682642678567884637959224349540058255949354301958312935380499421658774595308390934740415050511177774990287071528587900266838207434794412717327295203629022354364111580655258196658235839349521624538476991271947307546278477343996001483193117153291400965675235781059259600446395411070255459550018490731873647828052868380058701993785199067736299924020881231858116472543475293821262571411087284281823778635725045693056599246166029954965405170077506570496817136302433841269551365354164141994325143752712064801207633202616818791724051495228614911399029752738504097295566289093716872399904968766544435641443497503096390256984932944836076466154353572435304828492022597420766941652874772248497807067492500618957618292973894479470156655259936790664870650287106886705846516386030891575480225915399514579046977930083183430015723963022285450216368346719499293753429158907613268058498460244637679546257071108270329920917315815172384446017848603621841781234981882421735927060238401112079564717610625680096510920608653788897914242374204656555006008539612484570190901719742008203626849467474459793531325203286373817661996423835430960765337279638978457674309386675390366871055704544158436011959393634999837474285939698689850256336105711296462840263803278040016994308871512872381230062257606344698868704016521125390136241565398512441881552179092045602118946599643701461518895635176118346955330990223035201004499345417057231454552020005907444513376121449609401908348198470458086763445373979562237873780378036334699375953267652036985233256765618322550425547323150508804682194108694940375899901034274139207119706584383939525847376180347389990107610842863095289347847021033196799277220315682580892358478944373697816633162175346023145020891237810360440798850298689091044125874910542061556334609737981664521112905924249145549897336990602768857599673785913214029904293510404081473621862775924024358647609084104810565431949312716409331758628754041372538521992866202433165691353431606008667132633773695484549300127898761371549428592607739820168597419490797408058677649566828791829297732570803085570685300650625147436537659103867998805672300449246725434230720182675290947236516585337897940678697597267472555556527106701350217984731733089066405717015130066601267965042954901194945457360344719934071110093123185657917966422118141259126050209634040828815077482836485085089840087961621447491354919405013282824823494713416562237313816325800017111608487707082569031771111609364367212077249659842251767040314548718863483382652308811506839715674852719050003458470691147302883318771436843795909336217257294850257425425804030608873834979921549983273308731761566718037314942668444666191573260796661011659329118787888919043364257982431225428127934871889385701884217506682762759205440391940469854358777480874865536078187640911365333512995825091523374297478837793749234295938912508106299246165945457430589980094842983301196892753458833544792147308673257845901437458927767018974811266222290867225948583065339379211572393212566097094217869368988671165981739553260557533398765819825242451483995648142578647593924172955720410598655003744894539742530273990438465168117115114249439455377075341315652323084376038877577645465058503625421210028550027348188644586200603525479462045469909752122555001119692404011175064515732124060210417921784008392238282523948407891881232622676398886753266093624847323539633979052963156555430794129907851790983274541269444047620965454962451061921180709822675354123707445123704311587389661665359445645317305276549271805984171519959070859306976450429344454030056702313471747212736445612605289291770056800710951165394448982437887189064333110962649392334402602561468334873231815569714868013578030795833523332450249431436522339820029970537394301423443471991742221273221096130887294067566440732161225565752726240308452529247769646493016964719962872212048118799764216242430035327210543305708070007916480997155958093849130427514859660481393846973444904370093580975269235490191685529148218798961264740219217086230580494475110977817810047248944345204117782346264130435246356909479952238291776010165720393974880686308403132270401278099727597418805561882984619596863434033764776629094425253952340596752143597510436929180283535898701660057386607433462585347049359713314904368370908488789424897577036020833058365539377242120025567409486730996114494372632061466162786883343375822618532628068057268519822657398085986359749735704494928505910423036460271188976080643104169263608184807246816046217872378613865318895363286499762649169429502907024281666964802721403365951314224658673317686628473123140246413943460898897545611455373006553554220548233593287255460119624525505805631433169399231505838686215083459542543374663394747056166647434246181136747954131972998252005159232935635071976868230450683765654067074469124792043895472493773114800364087012966063771537684243886835965939662500357853274448053797311144019316003229701996187565518245181985447180058103274156309018232871731526943186928454066788621415801549922135540133577907217339287337630067036000533618579554976888413313063008892572667635943807674921520918140561214175675616540584071573100592586849049974060256031323017974465192317597113485353457564961695562692044581307252287604342478037626728317112173519240587500796620405722124553722267255282033315358209562858727144458285843689461824644421438686270981685850525986440792234497860018888442308984687291480808599361657949698521031669190133760254916112187741375048176091226945899124384403914189486597799887748413519781349282429003428990712155817452019821141287364870446054007839951759012163066163971784230689341682487802020187052915025156439859093054069456073604034292286261301896148433524520070011787221646207848519924006362539855761368849614308560037851474575963755051604149053510232287670166194581634235807937305812789675534500483294142081955420188634172540579752202723102878314792074593969506286793493789110138691686473375865235337800855123091801437333926500718529465508425925864923870297423409194565834774028449410685638449027820798905524272025566936933486199476032056732707485200294502530535491489876527254404729235160300665041937028499553137535454689523768810160867224757691148942947262467831509348107396416832166710394551852726070493704678636000570892461710156537965496925733817951467174226991850937686767109697421857579729056953294085410361806519595106095754674249406271147800139594841593130869328742255746019458602172600569118936808371559477552402507835850045137785508237185056205828550749107027236918115621344503638887410474285681076636408671604832767998383565131033792701492630033586662434330703645633915287400269804460043699503131109998005312831216122412624574419543763886753836649936042348209095429293119230641458645280336511330868913733583619077124423995931602291307135996911349478658110837082379863554944818566489765386430248614122326608828659230333357490662959312675691978910336118708165213235969572865693418623389492484350232425492603873085060576418619377549557165484613243651795128965220236579419097588934647002209432827888019333339885145984402260323732755767444379283475106020032248715115446477948178011658810133940376732932383173270349711755873060810045133099037097204095172226693741336544306674672464252695737648235703330866617691201980350262693870143139653008072402036606265970643211341872056877966423620593196553452935700528573271491349293657041248864799317946234186825330654973649507318689278856118856409946619893828104381515606673119053189597331556815119897088749302815485125472640512088746367732749180236216574456082573119786252444414004119305227118537743818261974286310649151812109101058302752832656512295842000925983367333459491148001750540119108011555534579766041116395918707129699010443740997953780791455132759373637005994873399936173113990933824401481275208117045312498273961038739780099870641472581369655337209259267499503360060887819183779704573206364532062320191355813387584894525885810498818812923124237716457441132077849370740404718312018522848575388855387250939720421380286203648599437346288321027791606866889290858781724228196894244605171314753168796987783109983130315187621154139738089069841913907225292554057226330633493580361696057538698150312228694466999438508559985697311731007335910282131437015550382454288693143308545188381279321648516067444653975629018988870703920231483433401878029470163643706015277589410073205576404199710046284081953516212210564322929644981003845980043824546042782902415560050028310602484374656075288700930353717244610601674430177572011495244259141035491332873285401655381807226539435999531676975493863955357927716544681083799966914156044948838065408405908047434946817516193068878074936585489135126406865091913168659603321375993049557582780728080291473089866910071872351025439565496964773296326497167018015302583362822078065159089145073529203065638717849568751634848206715772081407426002152673349723431436960826237280100925765714311287372226526460667658131539737272942253351873018589807828350391192936040099742223885216059354022944958091819237551115654002827919449287669251918963033117632181134413956496606490970477959839445509839321520355069438238084731295031914775597032681567612997992320326637374460308150917581896185610596401633677571711969299140788020546217256754951150961969339793348696183458770192741818914295499937125129893798219968037313808735586552297172668255400034204586482467806882413847012964594334189700298315299063025497807393717059762497830409953370140415761239639875485602537273835971151247329623993100456613897379237814718705941704705999053633839794297981444957539397167557456200527275936724744799246147715851262914923024858875473332569002045494244708577348379558019583616500874866713314430825732156613553369608001420953909778260637136352095761187780569536644088544254432915925196649954081101696416157705389898922484899221719083125011845041168962579759089286457758466355863363428780428293998614837453120436826766424479507975744521195409148112726430029234238237916760147161494467220632875958351630950324968124203331639361331818729933498155428817707499510969399244351213050407734496091956163615663446607003515860445975706331383429590373110404054350152190815093920098930754752887744411377530636197143518104231164070273098547733345997059260427987717474307840132807495292289050986153590362443960867332253698864789145609934154484083373925662175615038370722340920960093347390723715906563316202969097531737156650565553249729732935080616633618756644127875946352941390888413957471485196265478647227518969863009977847886727943531530088564583536146792395706058046629635785835481527191015023070137710347528303799981076857839538802175728530002746392752426624308733843203034605285105334760375927318928167577386854698765687217819943379612209572106929843834651877427919375328051676386421709056431487978541766481488931270605002080203983633137143604776129285092190866902246519789068748969477916208141504963454386869886407199136685916590253662631505488115089860256076637433457366323487831271119095083592769144698572340918990221280849980124721514116600077533892022171007904904447554587911502995297506341136816284776279827440916934292470449119510516997350479844152398296167892128757242288088152579422767023639431926182058593614115550027448809779440484563512700474868914910531518351767130629835242198755258490867219594422811854557473489031510699226749103663271776568744303168450772118803356266220885161997220344013964076861497064209522479371205734374194664264499912989277018165348300151915473753276997731445454208848255807178177910876761292098663650599070322790146389117942635110395598407397486066413867546981205769525059077546698798841175008840961227975592866302689886317218138507915627103512454002635557830863480959097917400403924144991054727263977042487731813434538575958589774299199959546734163254995553886448964006922172175858887053532013101603141925983431203266992175281577791960080069008621829438205368476168002178158122658581485009461428477821700839086601502571670654337946777671289062069693884756954795675180522528554611516222648651741776129275513867918444656239355736782747715905965133025432328812963710077899107749278076661805018672057766579750496334318036148135787658992494541605895941915875851102763227712435295047579423780866296567802577703253924435581739257763570576632777437202927815073897536381254311240131038210810204027508283481287572247569017817669524396362073375450485494166082654905908891775388207013296984513711116042870246907989262120492386078752081163348668093456985540320757946931030992462376245050209573533259632203411602785162396930561757545536111367994595251411087062444353992718694391737734837130843496600467992316959888911634538796951175610665862073808789111436796310070937093305193703883218222481203600205628719530062198057181537915067123533818739476792786344471475639291705763549957459715377464392712952962048177259333281484216442937090195275923525339597105734322595752073542874160022528398983339370535527188664183929104722764047932403470985777233302813035253566313723042388071066622803202827769436247316950177086255050023027974698378575007257355404198697230272971585815494360431467567844649241869494700240752777755740024116625520522193163821506647468003048452556240683144836555898151794364192001933143163180414974665743909056211457946641544999848894950038498094727952473650784091916649472424946363463647415109785645333419900634715944827288732049170242098770702795583111800446610384810109385021015267205760719193035508656345708267785848209652544073135041622397639166556681449146080232819842428951797922783314932642159383469242570022752921445834909549069287906032659205849002726252950559262116480296928039656783777581720709529815038775320933393498246840731180498481677490911727511269382428615006630090838466799266888723191437810377753178738775588371084392895905390031168396514769441234356096499908132215414816732908815674826288542552228340643814893711423299320955198863609890012048834521799969766451304778111542735688284760206125393406722885057839162486627336757809699812386005780369461083884832387610714657783737676820630085747892360089726968484800686744692261300049451867432632091585099842539576906893579340246774771725547949599817468882295092932449157868426780188474841006373723584500956283173827411989055282441864846914024020104760135484944622647118686685637916208379238883883592959069759901992096796403911761317562900596482447789192469458538965462357733928668025072360445252599634316924146322102295922034394093986069024408418212909330853822046014327499298907665727471447361391823905679924047432634606391324017220346795831625283243712774245301247655498287412750986551905096230716215312728186265092326955523068212050202368887924696168145778625076048018000047451738631095399063496840055616901839929961730743944880808621838098288632023330619105324975480316593699213979796332100977426565569167031383469630281572932929295284984566476423850951650139535184869534697494040320916768761736173565566639482472295308151377394380953143215036144735799914229461100630702688498781027468116226321128472723864119941583078988373100957376777063217466849634234288666473282518711584069959934346017046629663684503142842413972897137085044881313621225463171382293413535718576178561541948653654440454806119864657632302047953539344574420263775847055084192950702095679635821154822011993124032758732206684454432310139187402651350795148324610766654328900369637280125482287388883959573205177850313174093875900550221831524995060327285827295156246647034619765214928178078677289638167568037474013125662988827254132965571877580390462804779502351120522226986323943411171990054777946034192342658163261971115480768575186467100637144678234616096202902339194766243570793808100044733072974036915824862684376979143942172715646697403791591846203110270555729581683108536210837218986713343511986397962298003379557203372556641862400959250265739128340456255446708948287351529055237419362830361156716388991747828964233679841225735565728469596494703561063511158092198420374176139821608881730672739483422673477795984146038210139838466112310922238713422606147499159825688101769385817030922604476404111988383929716614415941778325646013982892426440453549323316480525575598464526190438347514554361475699576703640424631515461585345970782285849901433035012921258302529456987932131667014481620361864914136651838034664524032788459918317319155673738572770858835585778373535905270855505354516826489222576410157801885898124186343218851332479015177932525499986451095691314721335323762728435194491487518045903504698044693979281786940473729374522239426522064837399824636784770011660429699700763639783368404646406628651500697147731142007088595762319318066438221997923351191621530953953586353746288451034991687070505645585226286551736395451773422958892699532422041276420526576366720268462443394829948889026502528712239545544023203040485604969912549404912204890555415739443162446807517506294672650491744563426081001033587909895809384011731483531718182158529861376448936041392794193969340065470470103619282215668099231391857681238688002013011810902670534131202095242259479033975000562971806860473001330316567333742077136148424113370995469842174568139531367287832054884355065825812651287319718504639572681321854303865633615293870652513785682488800810724658574240997576541551987008071758420662294008335097414951655079198330424051379218622617388783441504140971179790806339646180552091803544087849353697015376123910287025194027332729700604387134776211910258395892811163590375928080605794425734198366810815350955593698768929525120097962930486675408542165734404942950524752557982345261589513984422155776334539351816949878415454878732782304115497791372563842986631655471883463404438371553073932981394772779457394711494851288994623502718939660744095898827952325771269890817285128965338398510012976537141476563993391815216714518689353222483380576172125409837473059197118094339297543623467436861016709661070532633413564997304533359728451074346715184364380443793665560097155067781814699148639614388510801867281860687636086204735931480739315221470284389720655252238144745213161826458143477271210150599969701538919576701659065908303645868083552976923155784452237322745636486982814332433812420259679974458954365835574480978732128380058609169196552146513198596478963848346943022103797493540289192072565870207507079250380168264035003370114596086331594217943834744607363409927020500766496302003917650691423583865098745909280644370597001953996315818125570745700489256908803830342510782885503291302485251363566873004934267461568464835726073879994542997946708733373529482430181658588094998421750264316154215828797255207450022412365441032487335916047142872873018072191899049726261614359079021542762083942935218080121943565056511342080318442660278023754637257140680679993561063148898490232989958878685207109982407346887589209179798207970872761254314188444273488699810733225956570304857391050480230492009971065224814443993696080930965401991139826167445514894222609568407841440916653141668136929992287975013778041727847262504978934351269781496381181245620454338668730366198727461699509692173318737208643693328434657951506817812528371764651920954700172122376010982094548256661597523132571334313160835703910131481358891042007227322268415572274411735172355539322583211565936806116828487019516753757306205387655688994464738676410151626954657698618372281500159128131668243916927206806773783651229163325543648953190926778088633724961786990081726166595414012626608828495407511105419226180655046567154031390508806524448891334872845958175891163864205501088933724549977026840232974700987406363031072810451280848733129219644309454958378442036322081006098192331517488994979762325100100613751336736222450065414844174833014394271280685008059615376910794393913742919042906117981169655190699666936404569511774859900416429299755268515522875286583411757016597917204969085078565648698491174236397172981187161303337384851875251212235536198320286088739441974668778483907841059271400335628984900361301433271064900130760447587042203353786081581569262312256710724661579017989347754996210323041892243922805167779747017232895953386186508086670818344832877605403089402884288917204521379621225793275228322052730890450184138038425671022689239967725703649478467523483494753343682745515084302814266706963538416642527512297432483692710491292843353396229791151969889122116134592775051322600947918899211190071552802870626797653812445794291756782994858521397230751383788781000809916278471949809800707363409817777010983841481701127867758818122492884391443569188634477992927293990262376670664651464751913995724954898086194349922574631350874636101825697711947968803935612345155838404791782066081722285573218308557983418775479830383955101212959670419980820716128810166506636163619810590676495731215245813792544427790988710583816900380168777532746428274485889547985561162236850042373517157304717566454533999187673303585863759006150822721863977207473307750195128858172554526859140598997044966542926543329999178116575896797367715172967754758907336439890739005888663604264750946827698300636169288734237889203689864081885231159016370266578512732400097812368348491713984429893226237520598727781150512127045508437966619970297223134399664457255547592823522744977795926062101742031672761075993020745760637770013701262780125813694497843987966349722356688251021168487842133789586491292661924964892084109534938101356639538649646206795496251686652333362607614333338787975167787201835912658370093173112349400126231828584101767292815883775914398505117178006907331270685736559844533681720936936552783444765729649030042846175044819483092013421993178544694708139132937785504303055104880271264981673482867254379581972231607757931723913510424788354969554507892698196986952154110458116098650127611084612150749888012366892098471500980756730991340490075818612339431014902248505089586720715339787844457373918888834005446377590817398892120814680949719797643073239181863404971222261398906587794386575053964456691180908209215995747423624418426409660700786728927161827770986732009993564380077820415429998930399730019001670199286082047357339986607637747557610375466426805515783392556449637231486599486048109277933814949757017920369082470245574249376560776975965057491897740210928643740260341964283220966429955764458291052599614480991942256035328993908746241655305306274825058773263753740205497876903236142972645693253738202819626422292226825101946480612851379408060986565119596831421166774296352681833914494750222023133885193411031147331112994908682967104697781632781825746667484082564784588193138607769247438934121487159306276813199382511351269821411111656928848488334884697972044120584565975781327899889673713794445327026772787179060144420026800590384251066811277327587684254130390959429011779295611394196493033016830229952951350548936146838407061717453324394291456321547195605604913100515394066324277351527247084686729287120749980890120799263282249889916114845131436653743125202994572432196725534251154422960193767080841030531075348877978975529157658601376863415414050547735622577528578879883502414691330787380054065836409645611551993027857131062789287353884920761643642222001495907338546847490251785369631504906574713597161869453433107135859882753678313721998789543569497144684042950239701940746151814192481626017174479477195633959138646556684427739033282554807219738122743789916177025765210806734279548783130445041843870260339054417341258542685370821976710375008536773886747637459355591952709932851081088676112057877947387951144705598077086188645288830603021095642955056301928591707575271588542782609886989559548066103218451845143655387463115727692882591687395612216806121459042816322912090089464474684304749111057537808584152567295592611958904372425540949524111765960751411236359171638928597388381629867434105945112859661036114983488660097910563878135676197167438964969106682546290405726274932616800156680557635575012509433505214832519426763579447220310406101766369458281048557435551890191226188919022226131937732167134951486283261512187674585482706795794762356493675437068164757649383309961299632789268761725472855249789182448668092810939675282675557412910959977784037476205868702041054295535944194263965189221689817731739823501924782707751503074920568500792018445604411089913547255480214330064699232013345598553360683325320109703706400640499281835795080553158984511861428878209224984251765462723066859876479773718585757433789443156798145106348330628528299697858303930863277583584152132350000052575831889768354525000402424354867954787194423146032142436696469623726657263199108794173706643369204584947925068434494666185700333026595359879935399672648061603978884631720659658226616177824480055717904049685786816368233740907975091595514822452868901808118246190696127087449093521491498920700224688930509030243093310315064450086447570938071796344907907950884599760828035563194541788477599587810793417805142759522167335420672308123415808468502763318079273633870145204203264050341187453605493172502635457902684266466445144669147898419629005428287852398921440573743696837984050832370601125111908176931235913195507679577497585295472418802829916208519587282845306452973917212106615482901189086801480399043107319048764690152788779229811055055685993791520803820067011612864636282022424133122438318481383493242237391461754684938294439264965731040262614153012858898940667125059955917679631946154452918599992215669820589840758854697229354518807874594978259248309222649922710436453854896654840157508562969719851953295654439241180948258239655515968067336666144959545536049106862913893938385789575990273562487260138327780051140361875684461694554860802472397624254558635142599471558340487634078319562063108264078081586471621016483851826742595648984747521553203239218050640630413153961541490674883073846910206149591702514013583936781979067158163826899373743072269918787483063420895106129901436120041800107198265949447123209411789516260031212927539895281957715284403885508698077552183915107702876638060298964896580742083251259815923389971483538457924287550838613196081418158018334445338648229921427735393812313858685161239024720867369929555793643654382639271959310251891182246917525087824097337334317411849716884455936145300919015857184545884661772270873223889729357458403349245876486247331141079898103998416134705390920595713936080744676879988748185851257886139484584777502558446158057469416366640005594081654311888600725043813620453996066292302380480196850823161166385953890884511789200455662349520034342214186649325584372165831202454766787611958525419891244292362655175942572155184130122037262459878690115687555474384433259992154138989341048645652110437799010487705833917851913215489198642670367866697693638121783443806483205970298135136664301847913350496044919005612870930396478699595268357468112006252854519147594702081683715085714455200981876531498717251602604165893495123049611924062533516285155682615424549762817582495945249995645520799780826869642631682212528346202179227163938764869174011214352108565484684788144066520056400306624250007349878375492344667361564469091388445939833091262126406222774120876300149005436818582284085098240706543672662191212044036970930157824691547492307356127281360265811628534414812789924881732886928728853520371473941325749726026073628195131977093056476135001134574998752740324524131895838286056100846812932156835358300827820109225431536597230197347547579837124317620219576698731884180312433339287613307518156658460354680436855150698884819294548092956030617108052261884787279195087839403823392702536696037510366229867297706412008927266101068085312382550534589567032850540229051127044885660445573921468476381364296543840222249959492170936656047973722056417281156174944845429171551780813316210357657266730575725322568970304006283986513354125644549701092066140789938884564606706636043769389548281533070216542316125674493753614183505034521328907667400074628726063192349518939247963193917075892453441294331090014612064313151340889949754612952525905205778321485503469737922717821767478203629420704949720510861552977724872885406479967329611836502219191135614101483556231131959215824767763368782766450870324784560881498889834583857288247522141835707321715190220246049839597476158103605607723637954920825348493896047893072376880053678643191297028796778806489878283920019837500974152965551482622684772691606784041895676359090659433252798735936102246781860753817439528323554679041911810277826808322665986410422690218479513820278361846418992249400729517129000384678296321821970485768596996424479953302190408078682651529180800788998007284565988629191241657932192665296394319151664938200789843153294883371799352954550694847792037878117240090066314002657189931509225337557724064056726256854863958364624419816871974951103969600311171277364547883465164360133707857636892787949018013558441697894354229470945333926697963518343683453562519522676584513464495139229887077371025945484855579566799704514714953476435346281581769541905037909198662743829290772408027818513008294195946398208155098132393473105912442724556872800568681972908411166212335043744124086093248586434998527029427233817941279387996425572086074482278765849072271425566398660294811422263731324646874889101727060761507731970188026941991146432820807920724748590301048990789325940006716554124586211153952452752932770687274687219490237174839128667483515076346971002430395855692570454982887989628847725023501970785621655502835145604906732865437439296636358367746546971861137366049993045376211116666441271727001558131134020936019474593006395461168942450746412159724690719106185943778177726215447434232256087037009669194042439528385409964032145119101799094568262377013328575039212356914782765884422067166342306451959384817985507316668378436883127247140749895070263080787041785324348903616610086551768181739173824503775610879105967000280083442804508896185680361765027228943343731858247914351089295528994817539584606737675294486632661523545813758196377585068358462054339507482530398395505675941539828807610343187391945550503796584015765227928355235497906733416660237349919131920078551230853548466075520709651826558362560850798905433582002981945974012687776412496510087299565335875625246043360072927216022929424776232686148291194498717084423924319889684797961123924521514222170411892174631507921023360528756595240564971022308032385254379537813923269791632769774006182193713544595383114572190364980606179007156690938281933263187720378366612976061530956143585361103225354934705697138356683675264214239209257659382163984290760772387436923795535859809413380219479196050917678971132063656724848043922346945106247464544242074957756991169291952169838539470511618395323569398036630540208478131486370492834817846444619155235948690775914601036433031187908573776569760154780097944105371648508058909703255801075209535759838310913203812528301751471536931739254349546685575622052083768798119212705628759355003109172239840135887478051388438171368541118190337605418161306325704872723783005144347680279566373600539806753517553305305516464002166922273477974996491034854052959583227375930897296118579668369407294450461575780799789307324216293296910773925404276195065093449443214219057436732036212226446400444790708592181927539476061859157089444055432594098460883234861968076573768978287851559426864022852348886298279013611021358160099886240481042227429493227310082405501782647699423482567437369624904795172892150729468433036746820228312717432951886011342722837598214719864991370178113682580571427484709677911809772677312828724054939024423780794141464506826000540533508348319132258893286302909308024946518611410014242790381111720158268349518400329921613289713470558914076251239570938600803657207033421844736741446366068411073208714414251969852785955134857267657013022310921742103644690864604651822936089540402998901086148978223213569545552269199167685837122410423608361198333771845071915394953473485446035007130666679512786126485483364505699426791295317593287840834310020351558325338319018599339728513764864066281079438784399932088024468122485258312595446467308528539251260704651648206178112871033298311329183635204801899267505271631368737108493012771532745716155427494921663545272447892016107227723172426767838321089685720276033530744683716935862042560352717538484219545178963649878966080322455386471012735936579427497831235789991312324798120879589381266865490466694728333321970736740877319181852488250173710463870062848078992046651963803143410241187369182899008514041771600475105805019969792988783999107770995237713428256327907984851348864457144667095831107586715222286445102258633482792105168200602955742902328067891446142415090141307813228728329810798084790955361611095940824728268842321333338932381607925291967501760245636535685442744193023650814041247199344496041913035081651411995610678822015273923086243983025285127388602002028054143361686499024228030245852837536557855269421598869918624372156535219528040800178568160473581260465191462544115855369539881248983371935388804218129552901993972051391845243967888611778450403646803222578851386255227220145149001653688552449983200574702787343611209188535795449456548098464655068614002532684144884502299463705260510319466920949306468307236650806754508388131529912049874133973486393473537224262638693822914681757343876443027330107904513490070721636950608466299784037289758541828771903930713614339384855835826095493262971647304278937917836827131891257247989802696384750846474087675913466670800519633323246906007971112591042785460448148421039441069795520574077470974126197622627103664273564315782153965800404329497315072587147731677509341222549688860066489262004270277427085012443179079896824285857917122161085984753669371322345575975325100896167071397093551767889113856437807726334012863398440835756872483263390805713867127436947397600377818593038577491016020917755116265036573477332387149957326566000847749437990802453824793761030929894990905081377320102762834148079797988745555924193802000104631811328557277279860831795521467689445402971499906722339999597595881294555634711163571999331918633876995614810533627310188477993582387677232436024166840508064196048710885777437934698535268607103894109573730884871759153971280573721472404926887295172201971095928958699835785177704797267345334512383968262179528095635159008820736066034182895519744066624939002360579755490187492049291596040929893127105231189997662352066105246652536426914249933650984532379384786883062236702503718738512281496002911185249056600698809366632891206192147306199516693505564883365656854709086589281977934327871192428601227228991435073830259448959223429515717476881113338769814586481937274393078460272264905763835775303790397410790593705863151670859697428078777837200201468349669409601208213156032008655455195237510015140493852216843879901643723636560208444392522170798886450905598392533165230852023945985811711451592032323710463998829212419766834932729996962017486308836633863276825789589969024768603588830103198177795519608995128217203369072435603366090944571876950777209748861014562909618708090116106060333312864905680952910606072362688687394156668829281317206569170057243105291972425463728472734907558297030389463851239366581330068480228780097966594901002717720603259066528087545547595442540691151531636465220507859791034229822898116830851822936948444547548934083512072271508968692838067605481211481234114577417114928554874822900081777398860610958947689953929941285333695176525635065052176227746592715547467105580232892965753822570103481690935607505422268080395580696281825715011756979023099428279995295654112585198863663182850773910092158469872450666587023643594348497389698653653604434834661147309895960768330631832689808471168691834893785846401090035352051520028803388626980111913814847502131633248901417794682097163042166870017139346054367325118379648732821322254194638306962898281025391537595209091263004061390439122938737490747205727815746039701283010138863410660957963375450918937690245299538107711775906731932981920900936233726581036975534996379315568131217703181455828328708481683134475649037723193049820161062418879942456966106307950738408405884858681026413878590148472155907785949993660096215399819918373114219147077295140483361028114167856754662677425396241579678105080837366628140731753062919504357669811985319495912294238226704797883103877514600495368621673659975206467755553957763447215703601390358950228791732060707434826503746389579362944304171241188025438212422652254345686842267572784874951274457357635454511215278176194754502584897651518947547300869687351292502737926845131861876704839028578762507657703172020911831244308533718235688597331413300061085050903547011496012899920688575154941628373913862414276096941389930021307946978684149304593770943271565492429896999475689563947699183463330557783672003383324810131569563188590858013103652216036406253767012927801141293376280662674066217795568098728624250606792737172124309851377551370660382873599435795403724076782426196134242833481388870954229999801192129478747975897215808691392451642899540935477739627081566657501028333661950037813781164820512213029206151749315713982009735256061723026773103308327581957069507848431583297618181293148035390956972520958838129008092683477027317792679140392699129057954636304112784364567776986506086253081359562284242699999111026585039253374375809094541138548963994168100680009471657058057706687957215276550609232092848427880039660493657329580860154335281620768889810492075277632077606842247309311226857031578149991632998190595946974641907881608106881878588120021807176851418400048101467261362877726129375127613988218893041468427494021929405192775342796105705474018815141622745443893807932209768909943755778855886116546398733784276562153365970041004189314013427789454818311252694646632640674183591640502396092331867832626962317957364283391541832998793597557785419611915206359170597819753948642541972991537197872382645216147723963443296003409364236399543912781651728291314009573626757447166203687970739873562956090289942049575119975648426529655356418244508863091925205400845525763517706067042565898622594570906547323946473877484451899250868196952706990100567040412659768516994010325619996106268978578563738558656773717092841093196877256982831236021508363892351041230103285987993805132841403492317529615091642655260294168115605085727962202707917748351903532841943100960445572590062714402487514533923926440789593732591094753205546284194607872586768069547512065514714795036665910383500162694304359332386836821684336205839682254799336641891661743776648803030550882133107138340006796996046403831213586742611352025440992471611557932587422010166259587000362182719245827394461448680300247369996085827094127215834020757525216407855583828165438667135977445799085853898940160622973152774430365431940420203799200136127244079563169982031438362681790149085672874846822201365323074963032120278625065900610855848822084605668268990822216198108938210586414493717211914884865114901699348882533909737979347138847996672287865615072771634998117785744762838762467329871739135632516412140667364265573672246076232058332910848750493005646349998933581837979548243741751737798277005222048151846730871207872356828769165629607595097140907984793966245412466094212953904463165897707665722690368990869121125630947957861242044964913436658162965128845734010547174659027084087646948235164149071190138039538683320604684073974801516929420115894861242334714077939428809512520200912065287606035053924933161531677652143343432767858016474682508537027485766788034658369969963009078638245649615892466108220283249730456737190097914792725023965624273458286563270655845419364253992460991630936105416623282818666638130544994107573389079980514494736771217726323912524172553873799914429703046293468746991627106584858265891440928140396854857697396250301748748752871992725551507722383547086083475402172893171780322130226819385822779282439199479791229934262430373664240266546685120696917140046563797934615222398951924896070916656862696860123858979834640510303264096165398220951507609922569460233828323245595637205201752848676001001964842485568903943444788589060924407212350346974607295965039346825611448915397426882194391753215793656225872854519540122887111253022161133789872886761579879047171605745536583514354861398441281471855958352383823480194017763246341975312738902327018694391931258363683468232359653598367634890780950121389197189675218922422661002406696574359998890731396982752992674119709252309742735821303793499803923894669500572266999820058445948532537872535238826897952374002304439234313733961651363407694466687167151329588702607862217194448287910709813217038030778704555085266143597449785710199153039207036352440734689720971792532847684589174810355022959850399794522329648927235539577620089451693668805742217544231194586383537123827236265503302680892319422646645025271119981528546177476883142123503167337191419712014728785745398998960092771599010644972202125516085731546077876893944745912775640104100521158836369426838674402644259535808289687896128925695927505057709238245009469078535601409788578093853417383125113269132465894281341608720392145072387764788105757849763083605249891885002008701010586005052895945335999488234989499915970003020730929922660950627342374345338129551912847729860831216859852830617610299227217084426769996306449624834552339305476904277495298163712600685286580323188156377993616841793532429673807367031564891166756402638575072920530623762258467579974166981483881997883003820307617659083371424539483301659507733392956961133305237277426110310622608420895098906923849897405342276839309427682163293543137347067514200153974456518650751749736834209031306990739217271109022549748743674112424875989587845926262847166405780427950009251303849061442037705447168138920686050683864131967794364095059603686065384097941267334084588039603934071766371025121061064616090658011303596895868323563760980869578294231457292152184330956280747100557786944374163139130109061973116443224198278503035387760455949822057019765321665607378607401493776944242216834947657636837573221136032611938043244179296415929628562998562152728222295091444207516682435039270611904872392695955100259621177108191736786325785739232978900378402597666861252844134247934486565845908393752900599402918417463938760227932107572414407346215693177128734773924787429044518466607758527986301333782165401163923966966942852868283277557704545760139443355966459916310303010636900704600013190416517605348661281429326944359321337300504611509306529735936714269741403018339615800726842694555993429256925043674384331002729450114145337082482294264899012369714605133854360711568388977068708146523329473556654303845303356645866255195301846584232791686324304031035731155630042168967668333677983139507359009929442691822760100137371688819645171391322339931696099159518447478953469299714298193751106513548791832706511925841058367278754934369578749295918525394914302118841719340875401699752913919155966053856191242283080795355781188281089933008175759427871961103683703759587407481761945719305850716001933774762241102146996922877215683036816197478029768468025136060315737318698541737687716274186759813593239941578554960111971529714872000136505071791990912672565669295105110764894705286341445470127666212251650178468387047550550802851635932795621769865052291612784723657461787525507437046048977436466553212020456069875503480180710770937702436515212956414386460152069584478242405412471430185032823116257535541310466053015963477859434070080507329001857994113823875262924644837962329428753055231092691261418102493921417756480581842286400559929628009565923518892536597582061354010122277702655810500212596114107003855588324966652379724717139653992868468473161962376458342789725071629170720220142897881741709898631361324168985060841051496251205478108844675467456238948311456533494118767372144605919111804597030737329098629839989836961618768050000359509452299115607923744935705275784368707183831438960619603518917023352855683018999450385934598823459344022373951342732063452077312351567144331036801226244846696593231218782643222648613871221736736204471716805652626191273254707154189724125507529585510887930736107127482748080520080564935306208299687552431393848995812536462618657516595880488087153678133231080940050454985581501553300433214870615069233715374176363953496840673397163083624809912403092466037138683206854708276013938154207794881019420605136717437248108442988126447520641643045964733621402819373456561871377592276620624377081413500859734245815209476169811664967368909210032480695879782615242184403154735905763691901587217772621239505104862924633768383444243713520993917240048605873666797599697772231083688500333931281121826320621577003804564130031032020823355022381711814745525702332762204291628231974431003484825179657430759110784201529862567002010111023893598283967362417438103373486054630930675969623372976638863860855672847322886454148914275194308397000463276811195211092680869710809687641835584897288472830717707025892416490346717604171070712805252987752965165610440262221481291292970477991094594779193479571428721878787409273248280010377305776770535860354019066821319165178632016085537793302893530197137903539354356150107725530512798840790898089625236796643042907450426319225275201130547512333310173447547458113036581044604920293166832397701890213790074433896779769073757917759722718349352247907997689567185846196408806718278688103995079464357186485866920042338414758823785647244632105032949953336242011120925736255581950447854506943482524959746006038643476909528180362403401397681573162793048010572574639136709392433010238045874944101870194985519954743267033255097945882607967389075987767040581518082828502032081099303173952161254925475532059549738986696398207068861639101132132633891980825910112398616481117818039843633512654738650207089553549848945348165277969852326569742769808634593808641942586432758469729595706564364992619567681609292663382179963076515957513679094237223327037561305327490550836645068443348916257208485233886074001667747840550102349882567266241410282657745011458840638346016907480280344643478134736227287180639932093328370097135359425662542209278070006420272221395322356080229607496888738269076659390658015423071386701514296647376027279530287768398298720604913090226487693760277277181450952610999406666763341987499655400186652431134720145215519623594538719844749462302533144881619471912254417027887881474149012294226820910025712816397089461679810937558551481575120388402865766879991460441035801162611811506550420046156679715755068004427746321913057341811729542756849215911576899173494781064965136805753664552726066136809018260411413250097963237635736052188253518199644835172541759731990856716482999570574430675985563032148057780814499355727896779307486544171301836284886028174549297181248201777197317906347550092864596835943851793600233200129839794236167624176407668223144780648519858950412797921875013158850468962590355087496775570426901777450904513642575001553062385975080544261781169369951484829603938769027050002897133660008672020703677493768498276415750568338294107051338223252403019136292719629752409166431325192001338369809255941987578939588039791916015813474683226685528596836810176822976807045367009116276599420986662696297866394428346704855636123103703192187835704799257315853296011603119823108355778824524439665198128184441818380686625545521902015071434080113903265493366921412885154003863152849615350728989659885180452169719855351032827430678306904718018942459378399764358012612478362256174041270670454575463403803529958669683940664472746703768663654967931993222156674264688798102258107829339813628241229912846329433457378165768246615262892212613464626728735550481192059655250704198400338632174751939905780723729513853259969949042095702349472219664752603953642932261477475956522104094555329782288550758602758338322115515606659091132377684666797251379133335418733613392545431351396316164376893114185866958363690052023374829743068814933825075740204723147566471117977435276944348975741197619522235524764943191543969628686565740187240502624699040487511978254221196650355403183316466681327457947982060037941755866625611291855728247991116582024366401734407722373537871427962470524707952060896023614770871053294168698069042984417636309001784345547694323714497030192709227901598568581480733292076602847849791494993784469142186126033659129959270837390084962072924121648697069436426486216911020571757898823303790471654063705289964433874655367642934653344584943212688268693916403134985313701114599724465936509307570567421300823000162944501644221893414999795345160084310535405833602480336342092215952636813636503228069298924167631758476827020781169539711383892975468861059814496733080613584801417415038474572283279211934236728584090569954992434906084174000892485878991372263015499895505731721465681084023899852454946088276729491650170830976457261418797705808453137563860730283277203603371848888147719302950368856233980290915555502994429751271657114384214307130663599356542646216858358086968536525188256710849354811922371385882271719059001693543113427147589647400278722302977770984703541292154906066797627037237531906327644138202554763416715411959354684846615921976187889011934135834527840419618386806143639773356436403229001419841310485879671842065560979810645587068015678212843547576555811558442215844602173909077003442116780418305835870328555718451453982232196089712482515343213741630585624398873258434132171100717307786199112527086298121515986950445039777347781924835780834908655480203594063728927851888603505564779290818087632263074415690050342748882105741478885208539286787090715218188971295242723476493197476214921097278440148251794620985101300051904585550502476058003182064012328600353397266577132048691584901780361042296462381695585096431462070182872805047839619960124823872106216791638105066667778514200113798594890712051183099955373688061504987664290731287929349267955799714645048704763629039218839249825071598372344515686999891118811920825369466837660505883656712130625437349763138929346240464928840607084238345592854920651228437944000589814729475541922972933940050222887256270382832267989094516698540243076673502890560094459867868842734260355943676090652964791599555561308565918624476160657402369022506416139271452429421024919506688733310198867458286035023013028676893942306587897777032376735743159279418848953239017633424499200961246448613454727186988723708104661085117045927216816051514487212470114331901792812016370968956016895311571435801847996905850473150348928021717434829911196261468487510568801251139767662085832762696556691503795371628512697774217298623480833057345455582106132507031814899109215488211240629729827060757214290279751799752587073050324538652274197926348182461685097748096012029122814995817857856307815916851826152740177030004860041882117584603695011503789629430884206740202245619710252265658076091123454229508070524228099041007145457925155401357509805994614309440406496957341650699399706135669024720797286247414117603268277195061702027985870495225557928913540250957026096704481965360977997271854202380106028859512418899745668952743056201171770710932862974192583642377303404878816040686814261502689012075496478551142971172881942182374310942273768877715198371430150241831810624727878774487360391519000716632306299288382312771290504442922456122176093840082926825107355064512494167749234479951738263517479524877065193296719926465455778231596586786798553959284512578567720377143821803170155614309586219577487063490294456610576389997763209295823514143910773938702320244987356672810973339944231750739839264459793816507313397227370392922739170830877576881689027684560380461577169260610502891462575281600419506163961492820923785291948404068917242690612609043589142645393265335619421356668341784635214670273755388101765110003715998975642833412274775687559886561463905019868774082578732316258128667198214993244832085750593615680007194138101941726516136137933165610225347372988981383248046580110280081701719504019398484163181046334888285287075811007112113950369216365006142871499077112304576570847647365126059100675451606327598311428551379569144206248169890727931431972608183245997446755569077100188210973655628877332515626733414120487808437023255022089133929024696168690633823582746243318962074530083354450840062182172516995252048792071523014603218620404315537194287685384337585070741652477635704636817696149568652612281788911849645518429028458809153769530258681912206798969820578019505572715436077141372427930781776311065789053825192438232478589656951773747570322750065413810709781755511473057900274873694092929299553041867523868099292802361767581291743273606980503719077342947786703096498973688869445402957927929542782097678652253610987990515880985553818970288821549890208786154951080042585777697592602981852401559835084549420778817779862890076263498587072556659042462900505901273461610752664082526295422635878909450787988455054982359699732615844256263968767994827659487858940827077703487122431012128636794349251722595035025042264128479818494946300572753067318484316121735603986585072561853178293950711857287265180903498599815185572092355204598348639646016655159413058541051221010280672389541772510527919066189369437956867927823069010978599881458047874225515883567659958794575177035221536070718936795615629638266584152918224420911806625088436304398462649748615611714003743827728647954881754834754786727487403414843922689904187556924638377104805067424089585180978017133838863996540229550587348793019209669276726012412092767300978944569823726356114108878715451093660742094158982015880342724767790158547522349720380333324111833687594664534699814474557391229450293094035181058251088341949888686945143798448385330794112996196914188850275965649513305982022031397264233063870609384999202008921101344158764373455883436775961977961612182538387234445895003238784770917538161246628355008617031711046091833091236993530137866420676726756794428872877259103312857660738208413055269636023853285686767935596466110054577786253235092136578468375056429146336312596199314084804401543211112432167098321386554337742453535895794072009789076862631103553051334758021770821352593512392007749915023292241524729838088112236080784096744676236329274843617355505430751488018707528073655502030821952299856963915930832447083647833372204116708479073339927923170969529109494366703123968206548444390954805155221173567134388281984133728861324331466922540849712988943786977054261357205467840523319272205062934887398944664701721281788628137191588954006823296756472485363008086880629598889966637955210689135787835792449294823511442531718404661761072039022070730140150025055457349086348023074224127418599951167458821582360584396887445605658085373125331278091359994020862106870265996165969571212204727376781103239181618563276327910918294528651815064886277712483981073589812481947202910509328550895215534686032213800370773091706006453215829338904290029247870892187459054485913044322806331337258873539898132258306843799508339383251548788248166189779996731984624740194273533605712166712565884296504097149869806898709479333584064882995349051126698602063843859499837076072940123423868293524191563958049286119295506550653013275198885013723548781851019243365222399615969713121439758610059910446934990272106002426414353451701370452644238896760489999722097512107756479682612842973762970308440183462008960673835124878232684028884199284311204053759787220994309335242465423389381703082759572826669957222821066679317011708013410851431407113691536103118783577281302244223994609417608160877879209828374578916688388119482516529438855822834593568734078605012038742845357844236274571199337678032592181827045812756901553454690986642008361911567479952167031834515002670091456307241266385096651019598984997463969970297557363244294528665203389979239338881589990757278738313527181691334376143579185348952904897436569736441591411725899216560534000614415926442444740218315180158902086983816663493660275046090843788323006912760717034276223104418777562625491403632045884187575629080667201694139096867823425462896109688208684306964288560943211329294105658516882697440122628053770049848355890982400895898241696043506444649218411686653410095954414512222883664237562535046802259248456879796671785892470680529581536338531237020255080525716916887907313557675129866028288356281158181697280275885563156053362871199776266869131461181273696458160412717977521923332084214050055412194118309865973246171960996499463322909136688201126578966076485044653306967142798710018637699493197999821669796098757760944950663009038892389216873564382960692424376635943876392950652592485393850183303669209944436990155897490923045243602170923467229752221478168315662100276200763149913238075207388997261086849038585477393310860761195509229198025802597886621839346102330684966201586578698954808925506779755550110523917797696598536437576419388578441760601991593032496266534532921566897026487334536356855853301981688846606053442510589663606392420721169325270816974844233136589838910810581519804832439116782665126898399086514115796977283056793778045308617530090105768782157656003829445423866559565015370892055457890895766690263866527848418038674751728243857226508645106922669105965855023301489578051511436091734576705863233284029447361406241853150533545289885808711305556666425970946805720885834426717350253057704499158698441487389244002567107127752391469640641736025811649569694881515208555858033882457854955305606221429698759053427642262472233094338038441096020544874287349014158471809242980902724350368983452910019925775623998026488336968413231249995499843917302012546372748763369922721146490172960707906341698687542209224664670581474103478027363630750340269791923907184356753072962490511094587934186252578917189265319877011607675004801840041669671864488559946353986442638709074411675732300175632765925757903227218132524274573816659212904581553813530223102755987527052267041648629312455537850856076282596906147773583959690696187600635870301603834258194222552762025973416571785616006547421887774253951687627517027844726700585269667424412251265223934598102753460683936167975787516190905120410348724330726085237611210222627479735158598208875997167523519733584467161484773383408230109070378463663519837694803625653373758191290789079485763359416294268455901037137429564856397998545161550521044908062856302604093399537883345897044937245948203987055985516623440314164900237129794592199718287181624781197402144556722861005493532266847879149928715587224531849617364951090579662783664597064331939790353631891574053277027796540796400378001881058717437140305096292570441965462871521788730488937723107935562132191820147296829722133245003260785490487036360924138199984302812046908144304439176265184889424969752684941857318013463229253942061657810696918078245140373511462221051221195479843555840642261544394629761785743298190281886655811598639989658614499819661796029447579403221613756554580426897899998103320897398288109313347075837634165077749921421562546443277669125276462884703598679208173297744407104550315603254328377242711446270004009039829295684278359534158286887134199095447241130778663139924560651413586872427640779370779628392604976612148424533937104560436524353126493423332928255347517175660732386246370799862288141843780718883243338493282719098359615799019034945868236152961347262136086117822225608470803396524855882146899108606968438517243068940572558963524859798775016507057085386769731721270430353759737645339189057292397678743876216611491339809518241995666377125353597180274757993980655958533094038050292239255384315864357449103549559217176550528623810054964679801103208426518039045338271797835926071206670103468747717721769200159322326563113989518647895132752763081318687298694562745089053083811159259202508463236919521773757906949966732431853844436560435124330361879570460916080973828813029688402705367956779064670527110655127646075888014204427279184210106405486501186863585142549336002851731924118177259532448607933705825128722803923253864545229566836592255453900758467754343298719193362329476699675002067045083141866051706481577963457718925537963605388984477707373442416296567159302552211091146837602336115414991982540809429027707370793179276426352654018387051773360412382645294216230722797475582019141180477860296228205401642504835217276508997373657112358524958915820425448649225925172791268510796623535680944438937679174340601951837180349729158300277180785595961183435819119577830829130058433644397495225789129543137471852558369904275085708363536319850943757688350093135462551626456534902941508834998826587807697270379621958364252324941558804864955575539569898050327509886879907679213925531468053388737668881570609835042065732851613332296651601802104570614288817172818893102352147543534000801722282482151226837737972105486529414560890931528836677183824191855616419166323217192986413297254950728796368070303823466576893870791745523024409439930394825716644522216360559425322045985523934376622879465090871325671673049145452224329911192864116269603139578021440321387568408776413729530236062663943502973503336867495103253548161905324168157684898033792410356240796584462531833521406115788211691843274959578085739800465228457530684374810165071073673443339394486632637715176348907628532263884925154012857960328737455475145278458052284044788053993076019571610015040420689539219534788053983856373672126561060678379704206922718030428473407305131427134791966277044846246378586760752260159760807658237922867677629523029297563754490358666897232350587415560781266132387189891853047991191256517419887161531217929393632266374609344134952540471680512486291514266579099321642139243078303712090305847210474570249679752178492482099889318140731204662894777104559375954582456705885983266216728161147570472249295667557905169297692141479741954900008421982024507855973911630240393519714399754414043595011516533843161347206963928445474316148454312262432649306925270150955833317094575339150934460194401436641303891954030129297628386306025114580078098696469234750308347134967363977149075918912809072889817800000198429038094089171118834428990875007207742443788757162149602303703827344037095670858201078282557757055477668987024311841372894614933168806853487537898563198805501732831670620708211176949868766027097857382149972838383710666392229403193758006646745215361039777352476995383445473375751286040865826880693963232829239703015940501404100975729627056013135926700195190051609782317275542784868767153797300925997694877182410788535031193649440818528604536630452917906152516327521485873097008554232654542393929824850598324510086579243445506616755128961191470172102067325030998003725953349404457104353390190464523646248351903086805053286787465372123511137293805642627831541751960983113638190147537406584530442388431637007452631007632912424672931205104635222405673858746757194567690939332321267351943710270638820428890144285821169826232010961133739164128226416674601918089556994329719737655676066860882763468114930105710476832654592464538756075600471441007032481533674080221723741170704433890414388092546359100656821453516954158627821107723365226972562082150198477668702043192965651378096272209639243707868242103875434869613332906350716783775150070845347512767820863504365366629855162058106879668403408278184224993733978494650875376455565861635404332000561114630715162906917436537567023028741308313374635243980963094596588809857474173344576259498099325787959638686266482974105374933621215588073702755861035975454567638772096727975038780625458372343768667132366099503803163987872842690337478419257885188829603002610579496756879092826300569135325651296740370397256126021174441055348744250484997875013454936497602958333285088333148853958048724040821853705779022430073303220868695340984102175123347825173078589498645201878563960824315735757625747728254095146217672015796964653005957677312483985365206141476999835413376464002165117881499890891801691044328558245455274164361173040666811918006273517895464626494405451284504027072277415928861302022618014047996551295531767664814875773168989086348719713458577153344814014270736907186430728827668744559804459533642458034327705472300985169734047477023766478500912226737737040838376462711023553084765147185065920421059985602986608983671579208700691106394640093058204674439842221680019045415374154822117018413839671580602279207155863347482553393840202003789465765605694063887075998705739253869418392653784798738565578060084758366627520579478174148297401850978892733907036782545912356327274516227284943634833228434690189954147320112581894490485626805238269195800983341045141178090581054673972724959632951446385179432036973174635726961137850535483602706649914869989998115870582342183871699372553731286368966732954069174353858586183609976000918747008914651249790044834593856906801097948445030177872154177816709305023016494049558188287074006339352123783001746844101090029968601449166410904637010375908661480799547369482411773397042856132319562584993403946195636128031880369636643529100880540240066847290667401824893967819956467735363019051357040350041750518302819348833086365673758280346788745569035538272743450879344793893866757195045298902610012899890185673148988415365410884921400244157590992723945831777402237605247946537178236915932319532713695342187733224045619592879217247264288705132501426708790684117192815510256168585941191660816968897515776943632541548196610062912336306323642387094583469273366907196083589605084785874264058600325933140135921827963505919747597369186021004468242991398892613049813073937663126194986949521413155004261144154417819120248388869813728531265835840769773992591398886091425156190031191319281274531524522263910149842797065257109500370348683727504668967119069781844774197434723531527064952902862491873186607545776171642798074978405339119175633552562964778667231101351840146552032363520268018307678191310166957686204422821033064078094322420797033451223202539244709198420038809804252594156135868246640027768214353399336617725723895347228738924197195434387238014866076721954544713897744319803274559393921162109081006902214497908597280742978065518926642920903029057792243975606259750154217055453206950516341379716186993240830273377875924887467077901780212450731806224207715840838703155978263017811504656722061057498695517225834931370967862140291119875826753901944632197081394695507706063082266314808275038335604174880853020234856076890092105306777639937256870781181877248799145166402680128443762433225287146878643691679862310702808182758480073523560848468743205547247960390597865965298269423509159978345411629220961550904683749299395367260574155373572681364987376706758592425690412237619161818732329054746096193804984528908070116095487205538095632627595317141823696808570610477211470913096414811843037201068262400227124271733713295461169552523653209169481826910222966773214190560044710376651666167757658538628897363008309586029703217043372539269601657750126514182150877375801524398693110560596742079136501508178278953012069798857743835842778866102580582764370836860176023790241512944353955565006232052668225780099658679648535003750360156133400957352087500448949954976701409505023207043884784980443843856929669925147115562999353678926453206828492844342476418788809268120561409110171433420448403402020985128699349394935408679477185878323050218868458158518627219207913082864477135913352123215288456209804712170018642649286627091184362613750901164613175471364556287159925161749377797980276090418382600982764102721656347399005230449165704223871063637526894519299182763978504299981458551258881624942516082745866833808197881590108240481262311942567281022548925510844420148023351777036201027756960112419273602288367503875558587396340797158330091723970987144862049301566689992358297626659334048057107271632580257054017333578542919945852774450688351783105637484399639842092980588179090959076237886067599262497419618693049949667888948648541250019797473690029248574049705426038393765708272534103506454452403719988979349352118149073979452364930992237514455469137597278553762247379707281382341047913577643463580429082693994963991524682409301844990590814795637253445553620469811899458008410753631241320504527501846493631994137731098155240382135100972638454509236990320147044466694753500641372583714345370645946582310298291296454297806787539601688056093902939281634510142039722959767602075089624053958536534774924266067739846194253327065350871893596469256731797382180274416305932089136896492756176273643799741906092817334348130731375242239778460828395155087608208061749033541626015316735248471117024804195014216861176888288957810914806461870706668969082920203079617610745140665752198906855886576418383977845501977988314584753346149767880833331605621720669980410964638070992212921069948016799951032191469219454958483239184668328138680922261363865437966243422345140605725407261798467892973183766471555231006777714416848581977814252351481606117621638398654190279828002204842354211997547685829086720960210329988703798127263394469968986880449662489105338862338259388637465444235731282791147313660473517943816651395004071591089128737190718828419395658746173083095046501855170841439712802307985636182881798712840098960737406844283268727455091684463686483973381231592851156296234572991597000328850377734013360650803065323904110654688306569786149978240454561862164948743814020615350955981328473780888534913942283927423294729834065296437989031339681294650982118754394052511529456664266059906709642001335369840466506054065622647672931543292765254128436430203804786285345574064366194715655632561805956244119808794745826168496894158982520458741245841626771962846037632058635883312403728770516482545783201866467400749636663605659719334338383896552638060784669206112042573907548437917005340213572445643298699472761029515360056503349075825381343545358463337241712135987082580794223868349073966883291438179133484538979967923237989576391187262555296903366702952270110089638375664146534049119819036300946929145438039762093440709743906504658855290081676467910905088097881965692477930453083570354289346881388721826711184356101252979551831913605635633612344963378791387675992903344781758365507823534101570871084798855711920880283061523182162117819571393896851511995191668123419156069700832218023074824603432203626654043673911316509705147803982193249547963900385477533993604891769264443799854099280486045224243943783102276143788082890851914834407540597063001225739945922814710820429485450137590563197526040713610913028762174201439055284595931923864758430534547412658004158459773806726438278048218748905863336558627759643299412295992083932308673987715539676062013483383303180014975888575347673230725468332290205810188140862900663255604146019443718256191288831131566246384524140394700830405098669817012128265680961095963632531240296476239055260588217797507203346034079936185199432468339925786976018864752779367212065853893184380438608645183657246227834955450321679822640928417015738442990272867687627881004275677772126903911754352295993653464929120214133513534666725471557512497456902640285411204248148995844597974436193593152858404530223143929266999922063962691259230545692049236424278962062490178031925498576959277142224921644271824219154070113681674523312003564850834945763380452441567352540018666907995541641793060981644353956449149975655215696473926926740909824186422336115341354761194193421906441508035953317772444293736897063838173432830698998817782497790967878580153085476482400503730822531820469627033987562402932557999592782994587274756531171533079391409357256920754258600062123879857381409066564558080426385514778882881412548192071004120743422045812569333315546434056069718178403051123018080640011668051649758178118394168912494383430267759098038914707679953429505334496782477906209545573601366717292643504278691342661658635197718081709831437217629983655844616061705760245826296911236813617914420116980347720812600480629344902609440403804458252321216476511523543961374019658085294707130336454925453083156613752350861349145573816669808530561851897999674710224404096355053411414107353470808623084729162814335800253382178841601257619448010461715761395711985520244189409405182824470849308209331278468251733872983535042063962907536015117079131271083816251375094309891798673053562862607778487244824501920563366777391486989648710639050031369823622467233704196313374751574019769205098756754070324887570587974261985900079113030494928599724993846213161202048031746698577003963096430548822986693219848638998962797539875280479643133998190897782275909749192735841235368077483605628120470648334590343111374566063965066164804535471005152532580665426230002776185557038548284118456886622967460062108176509804856549795737418037020989910873802962847839110873127724567706112713988601891060316055134052326348714770706522240408375862990903361200347704721069204613620595330443375803292895002008052955935600210964998396796581752104710812453239222708213378111863475041167208565911274501904773064938743393525846427419084740350216191480542023989293738284236565375636516532681247759752107697162136940509301325605539616675290091589326490643746295533930361398343277371610603712748102980971284512001061848016880755347479380089536808770260851088957640555434079189888107039189761089982996128473892382902834985862492598741836192947020965657782029703518829334354354695120600115782076817352757242503633697249255167455918497336216153104866764156647381372418563022924592336280468753938079232496049860411480926366073146917156371847470466499666217834469019703067994147566896971871294508589477726742778366472952735529370966580305034835941308103712257689241903335857265616494058228934321698439635599600730673354449458049833301687345828288243703065789701034016701769536864887451849246518702436895713933296339139627524585610269892182991028908241063057903229901037968238254940443338671381977350039742743968104148273352700879253302846027346463393123251167446152813756713102887054350765655941842426136386159964539665944851895994142694674605610575082354472188254362627471500516367578359567416267133061342787282029228521721721723018757785822498708208309434239198577118627228660090412468988797985349715272963068827056181847180279036353823630795693657364383197709089898482023508174610186744910927077734518750382039680940524211618722977776662239520633801916421773569554528322768547665179991422446948771153712049900283861477523227301216811251257927700608922788078689004042359795623849842452392474503232919204402187788241723337131238761307381481597914562296406595146224850079084295772354291431506501354381941862373429801274514329242958065486580048284414209427923556313102198707693941654133441986882443304088530808069560616340377711081526479690947686241299070652808051061017805394012891213407057060593959218373518754840127956042429732837526777583213637860416965037876225532533896481365673483429330873635139527827212267455007775628876427263784417374359862277272826899891359705213168192673693133509549114466201901697778660555465002810808173496658531027683619176556683450148101871013076631106735606392186318215180833129566525227726501060245955805665372229548187609871889031261510889265781797396934870936842814078526149689921065520544352336041314590790974789657102001680257763052724420767089950913656833459606521645828160230839203762309383476625261359530808916560555969707504347581659315615071771284961725096764135588495428051976825697675593939325599235495737825077021824859804311806024440250995179533814085439016006176150266022747288640616274634881533670569601878787412072675155817304323990940509932216647934933338239605371520233066884712009644931285849276699206375223727173364849116333179867842779567880511478593194555773470928979529905657875084319211059899113540973814603982664888464322835604102144299469971075997601040740128873191318183765585314661225571355154295656203201585381496619224724804675012010446294585071356017180718543012518567772916423175490427140596600503204606997688022724458382278890320140704996077093076605857132221249681707762667511786717141535727299642747886726670770624052607443907420943926438918510772499610164288669721450525072170565824281434364811620222755645108487061084271354839476248050328589927196769476460758853937876951026359285187781801903384973001025365646974352070241563819920072297620967780947252114437162873307970211038294518198654772575104457773600374574055611512477906792005394921161104081209737215695455318593512677906158437379471229786816282912036098542239337637896758117881742252984492158841767990982422966682529340737955747141558336529477498548861144746394588932862270254408132774023499868460155100919582685143411233845119233347332608004541599578276996630806387124217803439210990877857311013918374991083260132022733384443657881406346973810534043792661078360211546067243925288927551670732224847689498950986613719847137898023168997976712744653702288485737464774346920269978783640296096823986610924475909481804114820210605824589368312059313022215018053335747113332086990774004577144147359611216657132125658051679029351831931626789887680524923407321113950231221287695110614648588538851184824342740079650355219280246592977154351121428473124019807516539527896491106330521816178801112565709119793514417279359913191909373832557982883210790297427161942983566539494507055224550663403934653917118043585368180519616531785817192702068111133186551630798709164283671311213954907950297975963809948389641440703771768865013666091220751831345723624838329716388518505636075744571103761262479573905116483017687948899453409315191139370546485127819447592644420275032606370908369813764785924932214769229686280361373986819018852202094841741463287385893458026803509023504561166434974706730173940784287319965054765508683545994238087566401628884151340424735461980742872209429437060138359300657763302637425620830651427358371252470561684635228654936704912863498079847296924528367453986864988208245514853928902902973473480817212838071622083003043939827926515949718331106327423847504959129099138635173256781831747906062619259318992574914032973727558581926680837803089204549813131843276641638987496609613466070223535467967115310357228914489688059932323983777493697905582397315330971854082513216024385290630659169890989133800754535713357299825826120525927618422517014366026845643789314449519600756608763273181152662789797420507519825470214388608474706642248090556856818045231019047042568500033491264010180387472288482277131467121382200013860544984016157462347021307921884338942499863175340250333051427288596908577057657380437597690191042261197088494207504539717105429844483413319496262013340004930623553691231239277987218235437083276445249372226347724792138114131158410394114556125969997225062493749109003957301682174780486972008124334597553918795626659352956771064386323728308951333780098744929743073772685761619831504941618435472877536609998870020872833546117989211199239484750751911779478912664097537181553169784355399356157854930707554761688455084526382999353641699820987598304750890841149460392707802603291159838819399166240191242777666890690435469968197708965999543978353910429285143119622914021910479581348546586625193014843553772866437765562799701709333820294563250702713435955992147222828806883114417727195882116368724876868552111890451065355870554206116547923710863647502998165397172874500030752623319592774748977652295124783016730482635031012501748998940120743332863196528717344145650714942135113000280919034953518920782531661054710450702113942493548686626115896268495662517518022484774018143014364125444262589230470031161520284189359450458021233309171167267333153877778016003458514424328809949852257232304161561773060722420337060720411495845567555460030333863715216978833832534278437074895403584833819088645321829506527329441147961549219712131670135543055645201025028250476396168363643285119664462145774001785137828485664230484429525932702560177535162628449597408581005957620930579328955856993661839102462595251987672343628244060933701884979915689860587712091474700306413826698743723553636186734125229207395376106627026727766649930530037256692978938616415373624114508664748237052397491558128887296656369631786888081302404337007067945917206550381849228263260420225845562191269545506876904682931868129016901063735858822350112153059712438998730043543130170305392594374223269234283880413855923888510785854452857960113388002852687324206890632851998293145872982489629888826367640329640325520628321805474514700357259249975815900438976691026367078474888279123183146587580768299869021532275160109640573787335011402640413015283079577005229412574364061975352480564486536746922701520927414655568276278648884252192605909265135699519762651024629624090898083351578203187431612330207485913609223672654461793274593519911302894833757191921247876321334754659549307633632642746694675574387927191837726625780573127484831831787173994054349166323726591484036059041710561539711202790424668758970571756574763058468842412203800353967631604721962335205824046979933315958734725063773782297494152578234628054672946294239024513520323896693298019444065328523827985292866874176208454405372019091039712408006895617479641218001039029000716375885472620944679974790096889584089079700461270110351690721020532125252573067949069202165228205114025604600225801518158378772159210099664959552341350114901767550912017592098566695919566640063438062217208687521836232940024383348055327021840698696038220034334505900414817023682589321722183269075282984895975013439987947311536379431038097026872750670478709098958903213139325674861099253885578733650592598216728741704408977621095385811457000077770596429338532534775014309224483088129310304466042076714115512862818426837309456376374373836056811780528625543853101769327270602036454073126711140038378608318855751912327187770211238095896863776206227392382582458358162509754746570760856382366086976026015483426381035099626377049786144433840596056459265733701982758406002181561528811711137241782255957120556147405418829031639995499144920718908024193325031367809316435156576604688020256651771567390887071495184962889969162291667117319250315435367544957122886640509091015321409438305731855458981726090008130044827335986488063087675657626609533123278391514878921489294133832270379546026746733018659266107826383504957443393483924251869263839024765745652087221564191830472634728317901177164089115625658689788837312497905132226793839832801165447803571493796829055633517827000408903378948328927287329394546121325671106621032461426356491334889232418345266260994566247124676345882835571575641131018077982290924987224218231300055938967522100437287846549667276849457353798815813280787252760486574504627193443880016766010183552387995244578654053872338328621798827019188408441718629542460830859733723082251098661068124936146713695456165125519837711275427640078289254594104344802365254084350381697743270932324704021447748444855780585684438664681415377384102003791139672597180942158308732012774503892642344150962182696164847607837188655420940500124970245790625047316002649032955217603466193839857473616165288548665602156569330369337084541656778016795273425280567965391156946523396635852034533922444120995836445916106505393445259980557959795876709530052216969829013912135634663844067158122007960744976298309720144940729426657510590998008939196957109955808884751579068615628600747267585595003716596256429215042860188662908094189772613787196004640352541809941897355256085947599615559836550381363686747735401395971460865104220279677498394272066755733095211433486998282713813032242656368603277559652190563017966842588089998805197576589508958413024055399233028415624267603222408463578379808878809653840124151018794653084639026839252551087448442484731412817938599938949247426349546461181414104718815722374520946009482196101471763149622638856984420217355390210426781666154143735545489313437418012078459069309574385618441978262756510052447520697466881057720271045651337201612888397931941187126822407645769710041114480988808759804384099595957546198029380272225073784544748354746051165300251079297491630960704558942355244227912510497109710634032742893409480143110340519816057778986246285296910506173089743231339408023435283856796256555024279355943214378543872806070848605217443445644323682136007886429473542913663151458139770674507822749619464203180570303825382371481709047651381586265576384993535943615941796171852469620241212406760711176128964385536384899583532963938537686286295494679617395821234683806968070773355091892317263056887664977053015788401102566637030469762608677877799799726038894107351949404317066526172351279886276420492424669156248870566756539758310448799625832210862295358384261600052527399809365739006804216678255752498850859939578356158203295389434605440902841773454496051135123480401270154265149414569770796505420915914287858587962213314702937379869098058554776514206967449989552403676146632318094834097820148015183006007501244497036503866643863507036519942341842111034553495808777597597148827176379447875214101367679191952278080074476377609640997716406422046298513179837196706821448648631287373037553591402646994024068608688556691172015451417609194126752347632530613695095165679531320535543264119540275149744050534010415686316078882566734417192138240036359030524957002117686160136521598471254495905588788883186691664043802035366968483635372022126653046186833348643746078266516852948209907573241023156461631367801975934063474671618916288189242097705160959113703797253025423496606737897160539949994283427370599716362609385202039784455865739954721874163969411264405064720809075331166938628745246956948459640093164418254632946382714985635781540705651252709498730567444585315716820096186907083327321618620070717143064458700525987723381807246930648836142907144561885089995802532290453248371568311839544882798382915083911954266456399812234473431538910334354249569140678254368163929225232173762665610452398119922811520105861543913307211143574572124251911387218080028936541087621218041132133181876217040489368482930767897768967194732476504594760380995066433005006829028663156592876543460449290209229782663739037372732723076447060737171554015805832618201785283068420548978412272035945124885887204393406068503074038749671989208809994407159053025975403441614756648974632659103765020469999897085701814588012855845384348475196296257781522136634131016827748332207941109532515302135508205910792830657426479818467565233371338556841315545066703291762378535495888478101115639504862947676482497735050149864845327371312283316345173294251621995221170932840175592187428974578433087853141719468952960750882087002127956363394080252178294763370701779276521528886915385547910926881271043867623575436729668598356961597419826974907608124980625151784854744281135897737997852705650314599754278072697144230738460163620366262748294979220643810659216152995717977070042008599831345352650779195340802334842603729505625494314380017144816947316868367373592909845818833416401174769865306912476543497010891270859305388504152174516067519315118638491886224043016719028939745147921876983815055254146408843170445663321141586249401519513215425583155707237656865799923249653709131160273705527251803200282857200252722404593906581701786313834011018235387064171089975126559596388152118361774300563601255797089180328966997140082979392519636136777734745282582040424546940280614344611300087977552442206509855111641067960253393545863952833933816701267138540065048199614500327675268858253580460119436942145794837567663281652065639891851640523534161881770743430189495572187269362037028751090326619817724348169997923638089154398042186375983975154755836443440069982827199253386952056619253203416866637957003647372787046395343298075742859491221893054364657459460900191102877221655099718956741544773958204057293855433798929564946598986255893445176907082681040734534683434530033386897312999316593010542549944330286341293618071331779747534348404468200341057983548694882642433188369832234665034461065126796735469566980030285323857985707263035256960725555286661454356088562331607178778002515720120821789587394296594200824709479964377592983663800065452214987960127555932257236565805003008011429227713531655874685616634068934314621382680783749176212899275062790392091624027462052094520455894872962047852517513381673227239264661891637043229897257268927736366475379135310423506262198454813250413834756535306391113250497745914150014960275764584022234655786479193433056099361498582069310078159517286231505989915717572019823181873562271175842024845627510999499108921918895752310656696113158781293950750067898160559999884574512206362519938600533039347508112075783122962372798770827511163610789653351037130506208325006106484585719000114560765473020585136535565562573015239739942925247819933682235588675643998820611813726789248515280750992780819104164789477089973829965409519696512284179902401603644871192217566090221847446151908508908321581801227588139689540391525365004792813074793718789735841259493932121323504279474702204264175741584061129488861503840699428216148270890393360921432208242617013152945103562344215738484567374430171341910915577209002226621314098990576355131473301986271992774249302645454794682256794484519303587247186833318464297832095395225673607162535241076950229641478315003941484027970662463168396732160534394135614216275091212002145655992015590623339397291347704321673503993527650525011139589540235081487280941211085306963889619846235968097361190772297198610703655840168719138707841144092649262578576415103544236588676870089442393999148564899607978137553944018006641736244757771528460295331284051843100809110410843490505220060710723529163311341620581630254857747763693847893786559459784117427543382502871180459562569645834635983753402130987993797779571958035528516595846173313555231103051743553984663015113985854718042308227246173490144849032501832274642149525801364751273136579566828215718667723175185843126178665149392566049897740767832960020600595134611648083870429202702299515731873360701713404680756845558918884029909610786692335543231451901654852192127743006344947212523653265112291552836244702578654314686499051821718186681833217874712607762732434863770263476858696588995415491646164511326917220519344306668244957924039593442711572758270880887122149480996391177088387469966465081254571909020729612824125911042564640301445986549809592990836713001069094522529624745344010925236506583445951959440406136505309054656108523857407533743978902870792648573837415473038224652292307170622843963775319261071033332888838267708329274288075414652390241726870802926961773428285114674732067254608510040117389811332164993541146331751189819841181814230295968517232768878798349441878678992181235623093814364662062725692856085965390706640665034437621484376045276219042679211834319545852340952197787525885565005932984520534193895321323430825799902649024117529387203890316935381462049136261746140901979494429383879183139792314209536040336566586760554097595583026797242990681528432847010931277976700639769974890289111309170026525838969438272095369638828249006409887428982741621243605660575985191124573733936787717845993029194929461815782351463858687153232283977597281695551804130576436220972909156417589741468758510526511237547167537804832112352774271214634648433693036537458618233031198880909567732341382404461151610227426125229787533821001615217348693523374049473343326163634254356027718418299593356704736476540887107397578337844032778429940303696528746302504973950432844608479499812614008722634986724920576315423738582541184549850147614452623468316442293389480136110049012596815619857969834491999321292467313554479834482556204125358862332660151224621105363222232830957316980456306087349300200859634566180646697973908091386472581289779077561439885244682680600098091990407677015703709793011262304595079252812206193118004112592067238274172642025891352956975035005267897183190786686476450175501172354493513774440552964304058231845809167992108098935345185258950291556382410398441617107386645794956292265611991951942780276413964474476324362377041253042130699204878636151291651473570842784593793620982747330608040168970818122634055274527659554433972223776415290464372659062114713617928593992451906180774670054036159403907379126025006841701208854651110670028594653149377275870375327779793526061917242080176657400326430690175294833775710840258060755792341675806442623026378453628296299480402961503317980122338768864568203897162562745791596994782648007746586787240831705757059490731905643552979822038658444475280402114019252893442162343960067169387128896231163075709763434813886571267227141722681317089283866453838153048125981874890334633164543434732642673791182435006233941479525177078123936263527813884440447318026425682537027685414869203180186369789944235568654128476275707742362806543494985304177551359105223084099344660296603499503676357127323115945889768610157483851271062657258322578681207968833683145793276883917212540504763336288605714834273208368689761143126876972283359012385229676536918445468146425468167278051489819608218090022216674113569775254329772662670039589211914238999703649567188915005116136350444253700024274923079472579598496752593841808176905312165672078722958851160065855171410151417277261946640030454385076479159785106755753435072198245694760844825217115096361209271236658791246365109621990204541571859134585649534304007479943230564871400482093309255882988320646925366471784769587922782696380061090076835709397484105519037389555484808686981582675684632719367584976125713371845829191921408102072931710613710164246101917119733491409718883748993586223979593861349696480457212541557483291516228401051441118844441042316372974454098947461806409068749845464047676533279673506278439937606306715752299612056140609541446402633315272983872915543872217806135726638879756213170810772814925028313708897183957836345384097724869494870095244140350065723787561323262327621229392037008171918787976811652708995087011733987731469979925744861552848791245796589075620104251008084867772268248767881302688930765251724804481541605284750939635921826726040124560811854687129443575141668598778293903515772571905550895605320177121811591112320040716890088448606097826782430901678638664446680149507678688477594333181868568909397056175488178909688984578470032253390601864655977025012149098734012568360853933910823347189852869602508252062913980389860456432879873760658300398573030300414060147486617840023534595443957952146580901040242332287943855422517404993486366172030507664612991263143344439371856811179636404128867023139683292093231749276791004842624935213148357538276673669745155938885465998076992075575948412227712746551260579377893792858257991271330025297617092615828588183736062685114926112370314486808182139717170861824865560368873127125981156175368742940358943791571366207077385296404232117101955300013776669663846675475132930835512546680911904586404597267618029667847972568839880937657638934791618666660995002831366476700294817594169894038362596730778635298342906772385970654922966591881082721406648048163116643307159128981171090349196035675540276330297601973003049605538457114620926931130154739991710026044920064477081455592055795217853706594959713729167906591581212802567546713696706707231834208936301060903183548553521914186172161942712445803932289095453102156730507065455890221569100841106514198642109514446223602802518967048584906877514476952811076860015869102545294114939652222216055376107351961946832975545524832262447074864076439003765010353821543182258472674133269575603712806642439188566626062790418695367538136445436007511275587344693548042672870551026514468152327141525560881488523398826602118530453935113522576873768203013329731546702706269744216631891844415341524715940880326361340005601078436268463813671776661561929166041059700417746390795504922718676581410091316130713168369669926889294122210859629182822619881039099043857959398993800119726103031297854766372982727797805298436882517705482766350033207373964730683225569755920837273516771045136408213367188801626381183952775895665491315067487622555986578600764169552182038033334989776174953857916005974311331638222187237764702062301497540083432709857109547590600453472541072165061079473366245675838860206317234697476790018811733613034383730656687188703443692353572341401434286790934166960233463232035489316216798247051249694134178024336551253122214577815297206806425653374661072895576185190036121580874245159816173409704984504703366334927138168341832760106021923027164493756610586991315394045499552272186832985819348686614995159630035635454405655720233073326243540501908963369681911120657086467568201755325914646420332727920510734175652827756837379023580324981738210835749021715027739907048903172862233633314460682704631439845901576018936610628103239302565412868257311166115893426094099870513276115027218717245102203595219632583182218950534448071320834238892463605630709576005585125473137520208257793601829971699948495974358796202229413223742188477644228450559023063543546801313605087821255110909946220891357137242054137024302005816260211178826689581601985879220100923052609612294366982203097765370898444281221185931689081747178530409948901125969226823267937217579173632588655079598388051216320103361412853903748988297007355361449832668971460880256838374267569949500524563394362291295479415220855525603576424203575456825256582413470820944036241659406711504380655519592695771838618325530013749993450700847203823753170732383109712870469779546508383790319319372164853872521299311249846813822421119285336057282274306051213563825306017053441225025243726633323464812849025244927313574526026273566830643230731246757321557704270858853704653469004522378766669610682193091883855802366941506963790313449198172540921784919749842525715910320484420696039172330007020073521154745250900017824971731672098695297476811621964639808579594663984289029515295995818204771066624511254696450828528025143956422294385321497192496125903701171701360639551013135581771032614192960943802601122631295121495358248229373295183546390334898737817159576547307788230086412382694467311138344731286527770695579028157076033731774595492598825008682453864337385406149600286867933439074626543467508594289691503997632827213294399302256606112722133391175692542211827025045435325172542030843988428732285042110123954033722102733664889800264084750790478855287579778498804086748807658547563817520411843676066258559180674300660577506969727283028767746770096609057268408728799955078029634033858149579310516872161968222150591824993142559286919543226569968014294441849992839548974010878055333735677967858409943098712092847004244037684495683622746943784305016151558707898078309020293461154588387827943273142274356194108819580182526057435207910705468674216998840833792453725988436955145095016601896139203255497745963839431690737212703426433887467161779466730709975134501504206233144214951142388982800241783742769709278524538883077422891674409148570680846973958485727344504073005072381079202401345897511832056467476642115315676082742675558333105491160311646839291404370165463081572389126626178356243502695567449117718642175789486068070337504491118612645432268288564527865611882018838456508585444141366462151202094846335376248719531629212109457469112930890919485256352636061691140485515712074677436201212565885290948486051837150665074010632939643053062879013256417461332995273018083119211829696189435317286875062921653889548429025293281643737190779684798202296873003678788660964559546095137016404068419089086915476444718622901666563304407948689190588558787413466515666736778036455178351529342680751262438042093295625160058488937993744026527746367993782877433965918205486206553572841560435033571390178336767904376898423058316274217401521128004473360156596862759289162664560148652792580129325330111399519600235169807495701078665729675413605902742439921159794502189970303717403734781179848340169023422352870286613598708469533761520985459686314817743125412434668080556888697649200302714714093852275872753745387904665052867459648514246879292589015151938442828081907218412321337570783096599656722467744310102191553534130493680829394830249862586037733843111573458692115236529714490593139452711677503764622538710125267468230867402423060879325611860101039310769290522281598422753905308823616132770524957884644074309495290413403925775822445965183730793341747497810890658094382275492133420525846931199359548494355228029996842572929510164251130598247993403666301511402985973485087786007289806400858608761387346701697606981490293294369620552447983043913480065785023418680548881530284334975158616705645724637832664531102698336502476332829202789627553397491254025872031508411652585778380647370975996292489836847256320366822900772621084320463892749616785402301399664537364819728600069699013676450499825284700513967187143068608880491916597083262531496053189144467269301823622130377831775135187284341694442662083127421282662408349475014672454202275733126524706682730895455231756805525526817643491358794913805414712168416252937441535491018877949239850179105347873862651270664301550204070247811986838635105708802850752537450849918982340421940384186697531575103829276574551107086139251866336839425135618336177858994464560859047228577154488251327026122567330094600115810517862678479938313373131912183376805248661363873701066210234558088302163714136786620029874567952290945706181880486569419112453621797400400350479106345278488630189384995126312433742985148676471270527807750662553373642205586082631567175510625102239206252468160953999576216787004064949062177825050705899694465270187651788363597881702124965177078823659243550751272409805559699662324315716889412816600038074785009808450354933417287579122810018213086253575113216296263960209917149490150682610405158328769365759038769450983672635293220968291777422499434037223944352739642389252689796019217999168007913858801900260315910290194012442748964799229938126354025127087407442323258900729527192129804948216313018638986121076306615676632364706282336953506792839354884983704379139426297567212950417308716453045725171585116753177911538743282564739376200001015590985869222992964233617560268030979504783797199098258029552444803692125869989543913460032448668190296254677093251458108073987885655618366316172397272873341127888827590849749584751596903831827729042949851358779114987491814657311808846265670538803119641935428444723836540887772588466404580601639031995121118974911859975344475477731240500313022079453662306852229734087669470541907682410607867294770574069037559231817751342324440907312500242116213716762953746231704053283592659226452442482390705914285924350900878360160327799175032995029056110883432644030684616160740771471496964431977093832869800170281966076512964468929823679751614131241171414650634008603981246221682185319346035829478636773207588880719102050164941029953265661792045417142784080122496190055640716123372347376094410118660044917822256415507064901081526367818803026831944163741845830216495569921360894336447717604245818527622118783372501069126332176637969260982654689460113000206417687688454103667195702619569937231354963495402639107988208858007401278684565636982412308036064260283237003750135073858967449773105276143098182845158900154069681451223496909750734412062234455347942254306014451047105162863777155311518723316110076190700744666350551120581200243326554867481569649739091991650668404896428253229232211840842694267884032430089010794455979454231075422625900990736082434474869501801540447862024006632105518467221790069532002446470851313258122730307167081369707414250803461938888463657137533924774631428419264261657134409934642665505864093974950708815227683454078819458729088487163086456615903230995074810531823301375856976571148680012393975517135321420521281150061939828880673459133113794515351573403929089361053458343364629816269288734948828571793054665296080622306886496075712844677355398181658569246234655586649993810823105982402840204999007615932285113502901873083782599763669951155973752257756327112575769636274819511234837933692313598269244840804891041851376324018774901641923123280516443877036681463386247558626492871930549342107511852736198348692593081662819451542414070192104479176884446021404339677966887105354143554962350085723241543458954666093044076953218771927087249554064466335706501957756847246579969890822963246781270423373295765659080249758945461491115552444638464932734833568157821725671584017223474190684925722057646678323963098741568211395967321255230075824665127148279272356955088560155747814341101117603848339265613725679434044687779200708007334890932659905763030026695145224471905269354249254191782504512552075177266893157308158495678327531709746410989542489289757626682936145827724329496023549900437181108329123766510806651843783956430668906310643487362172247091142187498501613459197690643925226330808396593854864447815125442559806172063383540284204243849348802615718625711206311207161517110314764726363402777102830636587155795678664208435693838951663425877826176399944780842594417600336318990311564145700453324653897165770299109860788048865971004618721424477326924299456904414351940281404694517406216978386438400902820363438545988970891953331148089878792793473984702781989466561023217606023743370642888397604967521717112128888305135313157424757888190901146704730151894929458371197018779149879940901350184587112280046031584454675458606870426124072503377187406047639518366896633079057752956155312819998132686204351193584348764741232657704544000845968027337363970304157350336191761057320531051578945191393860630915565638085790049940036540610064765583301595037933249077533370456899084065961572569096212689188518961504658373038670125499057089715134821330938048422934518977050035136505260375483502229577840376072185110951571864847916045617383314563482107368355953568125225165205721520690213981075612445488680147294017527378629672819803962839319207792681245289810962633756210721700596340950077432430441773542647120028727256430282360441917823721183539437590943011952471390125893986465649579008423288999597976398915668211820996279747838038030802282869912014582251080140549796049334812213053107525876546565855343606464194086611610076564817950139155780206816272904998403122992542210245145041305939223320797791121828087939443905056709730073603594287941322680383052556050429023635905509412711194582680708667119412536153193343217918952287367896167264880964693870560132378832827933042498889177165628758110537110615794599575738047865669214715596136830893379221524211730730457078082678629262946218899264371643951537506522465948878193425870381701084285631442051609091520607942840718314923727681985720222608071276829652563296943666328041581789089188605086284124584935230658141042880275986070513501151527833180119477880146631441633187834882272170041383678328855129404407781047371103632172697180754298450899655035797337396691251115889965497505912843470160023939835862716827438961533320637238537286966230464390930802194790954635270362491079954696931319185481444076344926055480923838256814104096642771081701608360306189138112909795369585208101842838933854099456862478206071353087784587520232730533670183520959233555921986455740774074382644756341651617873370135442204054554404105485928481826757483171188413127579880493319418941549772745246127446454479211742406813528175952084926385441983061680485632821431800067151514776777812096654668532432899817978425881380168666844715044935026701988215092939645464533395771166647241591782295628904643685254246840082964976158765308361957651509084897239749712889487879960017028940697116008800398555991293649917477877101576874695786629327742981784918967760596392640174229751899708165309106507800292655248088985545519089539991133801960593843861316650184217569450005282459381625254798786410823724179365624931946034025563398661937640408842497099447527283545194414661833159588724191863512527175893302709663890624905433972860617671537476502265926284824560296063338491602230579910198169101907115908084489050446311248533191858915248133985423347153243612218581542168680017082494449047630363853958248173116993855775203344057062603951550444619755819718046321691373911854421202566329446835814236296484671577199880565098760361765654032096563094577893245872100390115686135163813418399033135083491943835515075611660613018728445907140111312249437502340766635515605962991688100423320751174984800449281467989215909169816574728183586761605566145022437575474275101234452204127483657467344157146497407746045172482104140872229351123905520315070727810801608511233879717120774197761857755184100532255239436099722020444001457530708317055882828525894173607366146333735234296262703560838782710748884506226926990583339621405911919900900376885896745323278087035200451949503307826403787235923357560604151797210261829752828531801412119514679195739791339868130566023261554209962889027991446907609381455187275895988345470616254133204493922994844108911078709917625711174269010250322582631363495351777098363294837997653368826420516850788240537963151200899428148689457536168303151036103997822696859741945751181238085283126993961462207147853951976971629085274300455605009739214169966887012328149814167757226459010409072704604471817480777108169554542618738131978879352511121551194059405659202225037530388404087641444357246525533346730072956061548352542091313860938711339356788501389709456120775271481427275609020271086438631880365447061539656251953527898351404865473590053156711191035785446697291601276663359923359969149132469969622778832060147227766431844004598442188765606773454599439621116088552616662765227007160033546967179253682094648051340294771202061824996607807756821286309371955577627507757581515536168830891810186872074169997297132039740153383913923521947247146443777998705654479358989400154267345066418294842305460839078374609924158304917544030681372646994590233748558816026378797319565944722116877473824218228374927221923245304854822317627593359090144925078819181635823440076087009132532997185165248217216948625017646256885340349856378794456063872595584037307919768051569094789794637500938287097029240829286066593440414703988829523845683078745080204400160930778460377275851781051090034993331187099314021994968848717352827569540598340120615952907937402765569239816609996665667170149828655630625833066399513292649506899041956164061625433529197106553198863998143430918043733168071408057545808727227113471452216497277088247414483305637064317918700770030192526133432635586214253426411895293788983426261591010799100154439815323716475307489980986594787465537653799819203856267452088744006650774473384508662116867437420007959293517902664532367095769134934856014022431295762132145206792196634206096619749003555134170024142916126416388443898856829282559405069049808134089777500285877711024920669302289942902197011168867193098839500936512331662339535482752247363841753391074814957991602238417239396812515336219726011951809560064986953833284813765108359671114606978568740526903994230311070026035119360923929506996118563886190422109864591070199224071633613367387029998992762550785825370600656264473875306467583742127004835823118743557670606040485004711347062917674463313030786487675678564110652140194525135729857955936621338262743368144863151695292108560161111966517943226426470799093314577501076975334234137319955269846451080240208693332121185485134725250790053644123514038825728102959278829042798345265187407056516180675288903639576442775769086497471147644284180763514787843277997293698757972659137107962248112341279995524922670588879602632820922607960350718147629053589299647663517259877000508114348296002418263265864711658617439185396404773991640498451451416860600282173503657241795761722725451324758367519712981007179916155719956594153087665332188978001910862361904790703185872852080477916320592042688043700811710383205028626304914492644684429216965555425279887726544913096931184755069253711420967231221506784297323890021562429748512450467657200913799911060526079355142898454018455068433775790371186242224820406361173126164165531962722964710649388610519808410602722047897664644576097077841301457498402900537923770790204143433947501907184124249505365028636350249941657764337463366738308913339689009149813316380466097350918592543043113109220469562787541842478683581152012446261195109785075086914982886312512464757181204764864499349239940493933334664218488580495920450906915536570009857382129923739076364915243153895066324558564065057229627015169763984542982605903837612253237886204902941120608790117287855255274586954492688402460959495032985185706037566851926694849182802694009044881457838276670426764286761124323377201661781146141136746582058734352455990649695689228428543516905249343718550496113490141002857499823534098846665997434138444055756862498488356133558819355708794335606918488172315728871438632086942096134641293227376526769411173555084019313730756343294914849862906725733191712047446173368709781229501369764495730703221622058405004712048956015606544149543573429705149125367084534123738660937610582223933758770896945880685459370200207019775976159664687833730033091558079201035943056872286164942268944336587850327113657044333493107281203579156943601352159561690399051097836717205406493384550677568876184600961231946607103654736633635990624631911869910760562990511500595661968194633079684688678568562211433098311638467236379709847495806139756893852104417226310684884048965515070233275194966869890293538536002233551451696898670468898726867166273795860700579944446692775028090727796247301217462374787154379224859820291860817252473911741254095566121452782664274009068490496207931814516273480461791432281911622491867826585109157463090537686168386584000086169827595753919589249706267183863208341208223716938245802112546153263517613183943786450564298200033149822787074373108426341741248023171320710043816229444478893546668292055105590658752740338103159254893071987492792838078138611936145846545457819105277013001374341253478851145927733800601854424196410264548488120829319837493804661590843734715495417535651680743943572175747859058792178698566681398782675478155256488265619072667542432242670659327516282055795704519588242469659444365866661908886530996150337685145351518193000952661730724136283771814261314276284774159809144704922962583677180355333483216034505342208520862861100169261130847694225215198136556118574630151140240753776200892114434832279703912526918811584515501427123959146757268098762777244698658321373027295534675562358216306552396007769952447784168716942391025223105898874073695617510656286845814385022247288150889420902245629576497424835616926554531214695618809110521377946835883852187217993934733804383159290862922875534629399908571128673293477069028367238043333385525913903309577211595654199598865149778674022881582096887308778986107760447824348142707424594539094774110847837693833360185766296516283821157773833230068948234572022451186191266066786187741871025546538147869749005657450722289603420648415603743035202871712413712156404183331994940385104096489857579684192124747004758552030175193957252197022971156697327470790798989753050750273146282557593441020349150036210254872265988959390976775516361483180069534200706075150898185505025608422465394442434951201866368855226630911179268836020649206419503413655718263291526160170036912996212280994432472766938508581397860352494093938144302439453210100078993123998037428800596910740264173929305595435321116836606209806800213148249130480471948104571259306903493484000082627446128177102014375815424403297067048564170917702529152137953580597722887831547665859228023429908121006198136308494241141708502693755887869718413411270213128250185072510350159518865591191424338869882215259192432784567325053373691198121654525502763419376079655778353719314395040986782994530922038599329885793389516968468681802215784233749951578908902175289227247481041318238576110140722471071289206025062960506301091962719388072779137788527450505012353398845158019322973416823017159505382457762588094121319221794054454619573355458033070348821286994488412250950713476385408446072764214025119694147775315477596206036323400493159166796580897475645658057738964798278762968803803287018643588107212313548959777772544710437281571218669407749163546509620302866907382118733605752525168128321601404019761441608877023195445981431601481109993664841510976857541397951153756531044571603962338050543379811606562949373729496900912774314681548598184225693413341537515793678759315452051098654085473129288538615001264628748223583561727586758059500263853220196319686865831285443776098326610320120583059518872739650602530634125623429345664551793675687675392414934500069501730524007511982609803772295585670240610518508334143375109387549032775178222109550975341132693530603458443191167580830776294115895921007114600713191040563760373677143801768617786226373189172852430379016260009261604066464994304423340742482097272082120146165466018526799422897714284211212524247625904408043952790855838468284011419728762965862526630357690877951092851380054982428191415951974347023861780785290309659429323528697725740136457541143506889626780387850628693137762026070317401962274687541506261452972996763289025671203755677152725130134702770267405526822730456410623871833532414864338444882984595293178641850541977115776642101711800802331475735554611053444613156112589743848571414118788171380128363201806294948484569836907467850967563298322048414814527290776183781578673990599269881654115602113362412059254375333691826618422714869295235624179546325475002965837513519568227673331129222622912100098127113209588493116551853110956032737392654481598982124404905752481733852500616680001903338822633666714395917825921739776871075223209492205819338192664632554791966610216366719971462545995433492016172268640643477330481026590966411251874101833361411254370329829121607143100131722702259325413577585345434365801240588742597733950086816414347786426069225771942591086284742153966848676730628154632463203456127097796762688886693474906386617434295330853912069237959610018446714293969857378649903567964102136731697075033782220182866845308780145419994004764332839215299627597405699364816992880283096382022984520729869699026242182464343589746996451261545533801576939254172926340468210253789924639352035299254820666606468341921085481161897385853359959228117877503494042595592322369518618487114284200735169742841651998406657274188007305550596668804423630243959013981226769629104022142999227885026965239289754206051250037859590918755271418531289209351740097128974092209028078342016774102727320043983820346999204768020859608348200694474839896457804770094257906556638734838589157168029250348136112036170975328341234633366376030929609745836070502126954337517954270906885524477335697103252806884397041827789778587645653371739645860423217286823250192426442527148779732334356718755358802932113987385081136919189126623077832387242622154247306100686206836094393176008167125578629564846891748790170226313465695618617310588517611983294642059415877648645072577663198840715713975757612609196162242526065322619961939195515449989677749665738874974958874534018708894559566250292046015941626701319819897866163250423233524051715654383781136210304427214788233419567882302632788800001667271979703487419911032251889024290999037064493146364759381930772661959921565709357276775655376927108323217038371635078342283304900456854986724464361026719675180549344257267560062116280288950129436050956969297966172407062743516455774327381662643565868978977840145730370798246807091998170310838867850026735183381550081284381368816691852201568306599892932362802241184682067339635215449409238036660596627224577089447002913794056190510314097420240518455386826731289399700788023370397822533583451088291520244684720144679027875235877960160384034941960821521345563054254105409501177719641249402106982175473516498487776586301803705804671068177969639753532571593045744630425483761945934126380786443497402325109270346617875403954509190800826122129498432119809395376572986897301176876951860002942224905148886837578850986107561192135591500316503120309970191946349031596407912581126881615425037519483363692515137638418936559738152548270640323862858477198054005262340528808674275890525904582790013630662719486431667063441928996490616199647272466264176369027173439704265449925010803278437430014824529069572666319473387505594420668204650710595272823529482739082268894885374602507277643948660959414547531408435860164154527392655152061660818385396098079267868557287066781662890211464476006724837902882415654440520925792851265259589654506992456674399285422617286638838051154519648666889377175051321518634726339860189404827375659860865092663156904112582713322942613629031329530849052700393017673922356102840925524125784531373841016828460819743564570614963727676837371729292377211042624832042499525996240798048125810625031312189275162772882666758733873555306115817097329124359696508067459210750533138671285088520148180448841823847322704789801224691126888556074781391169806017667945440667438085801550447759573128310766408491577929909627830639817950861179015307758203268500460929243426572686252538577777491259552317989534077272185468239202058185608362517414688512464097380182327750329581503276299640562406512512711050349890517941490188341538850617433376852389670823388183332255384328372155679434839811529680929685167834562982112952942939960583766273158887137243916395980124744636794767071541730557800705023841624772175016090574542013582187324907864662926956016429051501576788999005740007133369164311243204459747016756308079870404109785468872796335595647327744194761236582198503687981712938309289514553314572411746214552086213435848868680797626543717158196187540330525944662062123761090758949777387216828927423938466173305202898548925388318170239798610023733731085962217982131436519383379973785562069533793394518940536009732105349207132538688079480354760654998988108158388349366378804549814287703031227025427896137314810583182377060067120997649952097030973613010738347925112961812169527293116767776346673825625589824135492041088258393753029288818058479256021252523396384298947770719199437440955125611402563433904468580513116814007949206560182804260510532165163315537239118750993133445139971272744219765881544343961868224641561178824265873112155182921756876270037597754204595691762042432452711127965774354192041484030357359240088694907327333302809689581191607220836524157549791863788446161408617205593618760174694004352969553729664878511752371619367692110435648361347263141999579999954316906946311486384553932117282448867738919903829510618818597080607548274425874506352853315362490505070553708058560806419599340301050024284701196283041212196234332917289352084550923630667296678026156085932510213182989324776683874172050586249496404251695897329117456643005588812350477146406554089383596239258554587561859354223794497472174624874101933316058677113292248411925127503481186365108000874491701767775646969651954085446057668452042396338415718634194274311623419850901045960513869452262023398785611785151947742570420197080478042078193279276403021932699812378135747397842141179973720721739467105656522227184836637526892368195033036551096339929922527670093235266068030518119006913288726311714890394277725401363162705364197130593497969435279442663332086506280810509973122505275510515417460308513055791136297944702199443768694860058787254728618320530737168755770910370073220637039420008085932830103430721160126682956889377110777462244613044438344458248589732344744927588364543030804462299582869021677360312620508560881958238972591992022839219416769970807205393248536594627587322325559796724762713032597700351223005005077829096206768539970548167463268361266094402623665890752816907198378989580357961655379537521915297047874005245814427554640834964086343291266702877384028026814624782777283681170863138384319962119994324301849761086255425297374523934142771261063451847253994874784754829562608823621572484784330509477681656284862626836127975785240624428606333526113002082201488674369295825555548399517376774725674199140627538233583700287152621984642479615916386223566318405641137064423825741630046903724025112182807925211114043736952840860132099757507384639512883494242059581703641282844640951321418400151731600458720018979288556487873176039957769857389361453723098453514962916515648558793314183120136185555214360269877298973699688055086035308266218329362657330849777542964102252024255978754272731034301889326122806350349109368635799113309133468937311991485797183519102435557762700688607192739783078600919706325852669989425607261462528606540849332082318312295565164778253389621861962080315131692870220814600446682800670400012168426613231255343349576585948569829563330892421334341186720125410516435191916398165381364671366152742340879179826992824860219662952442918987448662211318571445384874673007361269991517038955217232159727874326745693816354334215493449125631122691065791877410509721737380405370287262152524598828207335398017648100243664512634002081084856846559995621575921138528700289729011393865745950525399299037644344097556998601121655699634797465026526162229444159247991972898078560900640467762947389793583493126954309395130025377237659099998822829884797642116400488754212205889962406051646593385554369221522336447293027984573186253029795361513530688586800462977182856594241142516067008808052287350320588031386576137535167672214465334314071536160627143047368870209974342634519217326768122782463319129395338801015567502876576292236468953172616710063891939733173582888978687884122077323474258875224098503439767622910115145360691624255715107002688742160356586270064451402178126653653685156124818302320576721699763785478790318038425230694815376116631779718623542625612938953385211625655717552535325498347702561065833900554232965044803704407882589060770636472075541044052648013817943941232257554603702110137667938561193086106364530300148864432881040446470103501505542176938563639502026584883973003945744981053558434692865163822509206060421968984906201190497817090258929627410289268358469901017404202167401923008867178559784392232692639261195634922598740728318417010656879844315422375850977883587179449797772987894418114957440362518917957266245088043266175426150770992459926743091648514069241286995466511599569497040602002334497720737635711485535084163017342105675191687148199774934548391703978596582120354632198443397514205378046691276744745752659297051155317300313947294230406238058888907976319255951539009776038355934976939652345487417771487766292058429001037972519986539512722213915331792736376559379830665554350152122268392831849951713654675278886279803339832645184412802885708636511625231585923002933596011767299074399792118760845800731055435873792058588829368226706034693078541822638947131216653404408156099607378188663488640619625033426559396037230735988574117989735395467198151039422725236415041154322529166150455400390084106173154000909189442384869538112068537645152589295110573755251770094570038247127870337909566652053224255807696097233104145596458458771124065249990707451598614454095186118350395505341326249454996065441081571316100857505700921532819081716064175376350889334720868032367905305551421293623191193295760606113310833055431769039833125735066332416725024247693877623133579835704194901853386524995430770327917264946408028693872000430740132550424998367110995971653725043218958055209309899587120660407205080555686320979250139024707495599536809478960673671346784946198928781558678530873944781931100658742176363670382681331877841774104411481033830300063120400523721402345303459090404582560031595410623482947344217959901407166296704970343339591982131674159131302166551192954307960498058380750123005095306367763915784257995672471765107683034256051855203191637118860207023842934662230641937884018614957976922096545283414769773051414600489418286850028483623970458334298218779984669847761658010464338189055016405175899820458793594007579533794247673525510117912781971475847440191026546627892517694449452294665406978155894263363170575393221074098464384128673673344248516844271879933412837398656132190794847645844787478585355208856820030739805063061908874996015170254390535055755416197274244898919672943137158749401195125022051052575876695206589456586480440021261748639398667808040329252556885095070465556664511728541129319394812481912219447865344408323493412728668552774471231886591213844904124888591047250733661639616189186881814977445640190440142169459760366357560116889668089160230599957006807557973771265988143727011726842123655660614203312969605411887125296874496608701969242830290097950354499330935661059629059329434150847617850822432895459723146660847884914434069347456686026181002345112369875445335581825936171288187023044662839564585671875887414254330714187706928353176856717644732797385901624429893584969921970442839853514662140040684120876197759945517885597870267015390508533371150097952428343489848637240773964902281937848990161653870884671692821823199116756108047920279998800716154862477499673104042018117521159538625311445771078962988537331090213929922239604530222757072658005350087513522959854032806328691399028911046043968416042301484295325607063736279532185009722592755650317150365873026451768845721325279385632564048333804901625696338756812105825742199224414721919094744222010129236481965159103324967822337471806129776862762026649398595282759127663253082700208096763231272643698596711459901416984903966390721927249419904979906545076818446129543953423861198117130845624013837800315916816250931367136538188720925234103980975035406724880270744398235501981400465182798006211136410923698685327844551963336414029657189869069499266323730016924168938934121092553275102498283558886139707671365410525565640802623085885563416869079248496212266854370613338876155505588459102346499906306911277129850251697168721260898216233620060561575409539871769394857748665907520168919094889658213751727643021032708674519457889064577065276066394358245109492182252278292194521977286383577529432996271651477364536575360671793195859845346405463981351923036295422584550663849035895911172015401991942711354914913037365665482169659480203270325398130960964440095287383954192852609293167713901764145945944653648873751791246676924309547507682776101194446305127671552157083035338294493585371150455735864226038013781082214340647541179986560547579749376514873854471552947567115000117549327982781045489128089158658449406132963520708898529517103701977965450587184905482291262332653220844384010416049577318601064263723474790651432975510132897166912347132163605364568413224986420486529467448951989948769174186114319649696497632149419491523318542125214851292169669731530261456951826324193877555585502817196823119737049955196187020556604334861213820529146163752758716995753066852590036268789398922192459198279889730838230353947691265748425993613507732799981875674548690235662453307449089298175170085652748430625307768788287627734557526275814825190573019164441030119682647744675187405906858980781676273300968450958152103354178380318055252971815511684176068310212554752785979525818676029163881464564324786624121362370390876659068207734198864158712480060103956546766727228570970351671258296503389192383239249987128526348595241896072834730895369010242239234493960973526776723190912741327316304437332235394525035308678219097034880129718917625234473418057228940433136121492001265159574754989608515683415877439904974368584638395390483741974875446512558939741751173578484915173197596154236000581415657410141465038900729834716285077994696347439599731881457339704816514138065343275816909683420061698293544002384133928857989969770826396494465475770724654438204020683425928543352039892771299840819799529940734646644084124832713720655076583035855535831073897683255918853210377432948457669179611054877841377600518294560248271557364858010949826645068574971935117565076837548336932378763220286263004203261809022002765743249754198730706415611774837525814239218740360026850510756086903907689804989337341084748535486616620380830727516563991241574208423175762981473918424556515794512404413514584988002677924286218373893343261441806893610793505591753072915902328870191233314027208142225861639382636315041585366310053757863507882044406090435793256870494079841749885457023589950026695094195595501998576848996932508534907248642423320316675523319808200880649275362175379306254447101880560127402085385364634587476258116883059919941129303955749324683118994692856458595130379371967972237921119575457537178705387104710663952068947944109105681479342215613599959000441772540240386815325379780567460391247039007535100300866030041591911121438509645670360556292897862546600165987820037517524878123569269542100416530449375905739000483487149597780980374511345597488818793911845795645644108522457413041329837814837386749697582121833011821107745977538019983318628029340729050530836702965328768970511116884236913761318305392954202566294344672885575481511996186521811075335737678833830817628440421401257280947794597457580468758124427800200265315226830880507542707457504343163892127004896434647563637659904454907681297398423404586737904203089599974293802800175119958946016992092344250239365292446565272520413233728164258166370507786976405409502445500655377601546683481987674402944613236903550884486700191769768889987956660940230084253238398511063371400005888819761488874979174501850898974867225439279346254982059125597406434690372706389578316487040618571482287010166588457767749773455170738262065497361575765565639940722770030788393614279692821809311441596479142324239286086924035608700429021503505107994776612523556694511976203357261794686493795384051419715034137256006006161251154474412705152535434831483151927367281501558720255194105495675308577662842812273106212387627187741209526589071474413174037743318710134112001859772860268226983048010070825443010065061364284092125260858943592052703995978088410052840118963161530074290135753639391925727348644430003373270620553707879818151040392590119530381399840219651782018696142233423311134508536987344971887288530435041497161253676838320839480127937103963422873803482812521135036998538525872350183330678618488068791904615351801545460854096366451685944164470779572936755495470668350352846728595560608619438975299592024557329928406205216925313974663222874721247279229266241157037584002055537917283282910275540350205696682850429294390150750001858773603143301723999410965928371391543747472443302897161483160564740623483390733170911743228387911660230172742169409171042820395795047559021507138267378003446553797109979786559685192750054037506042109810428519310511292105457994853365685723628792584764499311015709730617512796951836621094622148962582448892352423700431243462204255173284062330916902620109235070871074954030051908447007699792193250760593173705127633769452957103838605627320866144196635305652132859481935331962592822296883112173927234725308787442654882588887293842432326121306166916819860231215343728064807896314762919792791403587420896001072988653600325426256263775626717124387522593319532692314641750136091980708582913185504448535183083301577320117093854746291942005830867635986892043567462210358201731355151026773495254117921568977783696925179349569170518299449517737937359259569064998287494434815019917314000927733121697578563391959355997612015206766676467265083983076952100961822290042755816296307111863951608854472986685057500888170859313317498003719060456095180667838008049908727212282163882311748886687827459792440630890042028317700347482368010645245610718887829562209836995919630796584323263364053120006830183633641118960229703890825813990404736404907719672837197707401526467949682717211826350617531034099480353168073377035862773199491101235109766290114804375545851222226113958102379460363440480270941807477680836493819619000715549887647190824513642876281535383160259040788204611761153915052917876361761827963914680347763916246415476682255521377927084108396257209154274666436405767157039747604908864235721300870592630018207238045492451073669125202907690402986766422946245609208767735762688848366336324110096779897268892885017963824678915249016240229563316064859428314763022095734952974954488275680330373823104872703271654374906784171748268765875525654665986134619533281212598419899019421917369219386643008736171485490225278239032221598742947480312136853267740201095982654919272007761601368905914693652302106748723586933392239728638269193379352000025476377006606454741570908031778636173553136835369946366325151823278222106464330427863134858904337234999491786595003683608395786605635116334500122850237606562712891564489944926273338932953594887185358466725291293981306026229144628227989889459378179521391160429765902719413503641052163610616703668169960887939564067421325849080561210812063066664522168231416092991582410715142641838171819504537122321056511404402026442752728072176547903650511256471286411509524641618846084381300032376899891119186760767204934408943659265709128615930260378922016894035940456164759588811637654503926673128280036820130941240905166010121857405173261050170447298428740813206854679213119822955260057002324407073683173257719097012260984448523958530058585148739667750013111075898178939360850193128270094707870046782754940537583749975914684366248779826000664499718776645638678851094991195453560682066493460870205395272765918489479534576857578610797420688432735790989495394817779577199581882006306445589821888432059887556858736321049525467980660993313652285807171745681217715476444140235049508237758014703217599691409851113588774401521116349474164670323503484290128344544440000965980011202457725786222963698402328372436630736961175963545938368581073676431357935332480040715143270707893685923942769912854471299259937413937788086649403456564625743624622585110507294446885927541360007991986847831274157040382330759266335688474607627458857648771486724030856879939542187469233375807579582816371908171525371618090879238116556719141148061248596458063236841823445515116913529552816156489038473386689263220276152904630487714797188413631491937819724098170926894299944198722221664569017320460747186505232336041872379536592778502550847115338640369984365416389131362023782943847578170239715878978721413828165840082003159060493643680142732094335541989555617126461855889004252998992217257929604416487961038759397137992762968386309554893466930667411773523255827699166210392731203526266629371200538248133316289420944196853119023524572522330909916807236680440748053744036743401413169096618500861457421664973767900244768051191894367194777288244748109770069079211080014751851694518706614155164188830067081674673902332458826005096748402240522807282981331113599246061992241518221573792066039681620540959095421440555321333628976408910584091137594986280036082352735038121492165318799692440771973701802762412971123200109731207926189269754414673768235083409131883729246712673340285902113721835895902715410469716103055006775900401498650701289940071662114006459535017078426978276350139719741006565066801031833166681273369956263515078239515254590976904520859331417080967295061741164776041328845157363716841348500270493459492362891694038856307008919368313142047326819155285309560970167472147275269286319156996237846175438387825994267485464339227317867329293763467608612080872304642522926799053390621440687260752647993713806134976783154356974671129080953303691266118092032281768258132976978516891734834447786570120668675641973947466367477528371246096925317830815151298116325407464825044360721355652622693812361691118182528162138218763885589673256857490766389506658799990359528737630280874392763577270536939393927889400375281254259901318576689308283070330346015512493231862642999828726740891523074782289446668847158940517771777596718793428030164366281951680744654866373743288961107243045777382729841742702169237629849258246072911262333015789424280738362569179024717838667625284494423648298693448593104951781855155517384609317537324877715155484316672425304713550664327927009700320869868707605770407775655936585527317845487628926552000763765963702924600984244550822851467952313216803529756117705027221574049977592550934450352902436049557640965331990470895125226294194135831252292585991382590929050270073787899032654528310072014781000464227154527752625266882791663008993874828360205462181427805660785050719551224683152881437252527036140216431740848465499709322188472864782292777862186076652918039346174552619057818532876817155181577918379369567918712136997834370669141433100110006259674485896859355460956484465616651283931308253756793649262269193437573554171393667176469364653820689850177202542088389318519290243368632143412837780004713342870165429373591773218229927652514909739321917878751139554917659267185960312801291525012143696347504305338979209873597174967594340548220905090283444908873840214654132912116707674693828016435960838882559788532803214357003049691529686632655674715152010174820483409564844239288366319834712490506416200759793333062920336318118450439107683206679041373112711847641898247433103303095043510152114518331489409502977289404318002525860810678921245280767857188122904332394022063700744862220526544710722077244406304915052531434739652367959061981440638244592707910476131612407936728398217121486080508768814876733316088067359707845487915509377132796963974121785829989286405418095323957234569409742189362247375389424481225195686314270750978413891131071414888576349158389984980518133515376789535840865960248370571201667962993803111595245639138703362520420432378643516009278058018978797085157869724790704840265675904171285640414237483341867489281321798932212509739222421350484476124180811542418299106888194165978675719429275837337103687312171018156926172577994351851881442514331756206636287767810220865342360372049990227902091558019028350585032477049429897960479972510404352308931765776986235482899130123919063661007036169290168070995069564532724463857199676781772492557057812003125037846475934775849452360478890537270513554613554719631424349049218658819430536247219281275116697453565969241941597917733441432776172777754945545327454319695688204673254474000312627621802114624472857973289651418608982789934840837489487056851976020604279167467283558057772203535959721821700750215102392994307749098626791631225333075179457966816080133633724399136587206486312615070640459643328404039315880382672618351746562933366844421797554853006559688798542632180376955192103587029649500315450475039452738631956445813669514118055000600242112066752839839927574391932484888211677866031627761110269562518710103782161008263187006521978373987795124126055580793224072933565367036730026871638865124926439642279630670766017026746889812732103130599760634955872328112115573410028322120225751737960288865009044882564890887772564503028019643224075355102080109786380735206959649104982761204002897793625003284450167685290606813882145347512033749201332257996665819845583320015033529863586713058226730890654706737321224793134471622960716932698910293660098962479637507790626196249784861668672478204837931208497359621002600068738586869152421419694830066069819109780890598256315098288780536060528338650304160772983479298935780190005796563000810691566429324154156307580968380780867654052586213783905407066439687752398679529334525316016061753564834342253933342619924500046390356157267782774919843620916841907369674641944997245869703953748827913815839923525455709387440419179427676632149731697021646955479774842581563818213150129365931682530393838607711174684091515278471309009467443378472382225175336511023935535595105829167121851487796126486818846116978838218701899046291841914562386650439445645747605023521430795064754782625138985145763811784813593182745137542099418312905850880011227140907759964992866535533933425079805773212563883373647158353379241302067023591577300732417175466748841394361057527382279570933248809987813004649728261266101474134749653012900472423279257267912434449849463957856334300820407563381642986542821527078756365503404196348402993954857773005033279223914322887209999779470760682010032170150327965350507403627010169605456500242596774689874835676808029550136625726204060923275521959961919452513369330003911453149150017248925622148138155610316756601144328237946354570647232158637154140054689657608016270884444542360480884535149053925746822528061676709897604985412008090116540133302047335242162371560838008676299761235800761469943442520223667473268507076072702887786549360288770658006159376524878654999437446989654177403056231141142577460051755487864585974851939819193782158371350126338622652809950088758863230257987909204405705322493079477942960455444585876326243923350539141888747632342313975214870180763043237238090871777003970352882603756601678638554969257708849049019188191209554342452174291922860483037391764059227208957599434705972360093556059000916471009236569164140316697859717439344379886133184917034469199326159836932762173135458912161994391398559731597108372690838977538027920103761511224322717284744021228322101783073336658988863385541199026554350767443140676269219700556060912035348843083933675556919120389016759120361406175006018093915425482957535507466582978353188528908272822697701231469267478467807753553784004719413993060612140003167671909416903034884153385814225430850689154557933433617011967646018096133430659651106681915237921181565454392131074452019318496111597410704740088583222613680708592530329159865820374332666162395376401542769444004846759448387439084633460580437882065968959203952299253028232270859028668991764063273893098034179261287935170470351346154078371736358595994148925835915100688384920891264890587898002111164107274202579776072948851937167211246998406188308628322360853694920508650226919315124390467678444031677172574669918173527862319901441751295305457804683102389846253217668305330787161409039939095598469473104699753228599292164547589743945087896070423649990021878136671257611948933495415743996524454479209496158945355789229256521683179810739585609883640521003242802401830405279812178240995142551869771052260288678145823857513335206998202397831441068044141053264660384159914273986278755886439558824015398451168270534923785619422185911352893642052352364337295203746055684707888627126696514570324249678160966679731646882915750948059553232823632588826715813872800882292111952711001892920232372259184057089387231093352425087548401310089775769330636750005863894415564281515502523113345454988376359407630974089315979363693036153080254992576168006740013904778998098387890963964896220900562117106786731290366249502907292029175226973649451804118865567184910635992470043835041179219254738143428784141854697708730432107999224784520860125229613948954859221062747639482620588802542744124269666628544276319269935721616089243806360118243650259689410256745620259331950370464527603260020186212637765969958586133055644362340704356074873980676305748341105674064027922149000572079238930459538238399577347317727213863348112224570863666356415998569625085271093020366929701170616371141571339340695868447049541157894394709376502104977403469046972146915278991692528145760663103782221323278051105491506721620959838861415933691655816139998254274601681240499973514243720222890847440577894060252071327294014972790622878187912963527241540965056863301700625453169347077277945554335735479720512570054433231206608764100080095259141571277242202779300568393670739720810746518369351346805286844720655458757752196045106923110651171265412011958415511617135274771745731890299399284925875537363371618790020688306952451285641732587368335440380095717619132826911537946798632056554556840159700171072702275185101818085751489874401977430796717774600040595331880297200733066573048572972233078035200967414422456649693859337315557644323527391073153922621462548850957579543365633280875527495208253856035888394798350959203296859864339345684934049034514922191424318492339745057385726634882323398969148533241373891050350090126989127537350109804659925063106538538033250995779089897724464717097295799519823084112884976207138196361726003244892076214946542395867438482359213751218060620484109738707077197848500821761537822628300239635024689147417936765785272993473473542081350656155279415248050911109618742961037781162323832688989771731015895511453307378534130089419095482919755726419256796287763530298167057314695028328466942897650668301740294518133033050679413973199983659724859104272203387405108389356787935401147720667848594524286482685963885613712095069440425069299860112973912517766311977595328055214031925868345933546827929931228728343523766583408716611170610821773668549119647361802905095023165550642596962834550730940908788951805580818162596312899872777651249825803761827051179136313100112831511711598857462325621689446907856463140677249625936998107007205360192162815812770575023819923355280004773591341643129232973824462134038902048745318330540660363830480021440089454666766310971003736294897560921844257567206048035805887017210373016534281950190261819214698738267007842718039863406849679956944384938949491524671130416325367310010072891121003189327142428182027505967070145947529203507326349821536821975142710404322666738650356713648928895327364542730386934620015704140453487105871998115763624313439467464438857087960488762410191766687148162065412005490794709469003928432074388912969258027083543430407881196999208541015318088943416686105114700916944885733733844505819332686114964411348171914380645288857906607478543988526494456389101216605859795561822982658791799720041828826895406299946083103792665414932930768229518617955929463764098667662257456429683799643155758908409698071570765127135996068534653405672707729400253389087918211863651616782150991017890408713441205906996314150299856805670567765206630989848366841399788693687016528239415857625870170926013620291074416062204571296644443424270363074816282063052404716705619795076805521977143488658270195056270588596565507342474751729361237037986672712882401903276303418141868251320961809715891590298165687025300320450263221884749343843854297256071796847065194478410460715955704077705287031049198140156534003247556654001753122941461374121704547691964848678114650511864242853473231240728818483420545974997722380992997992773184902526672723794872543389783628109223654374401291709165498837971068548524229651592944551435410931192383980118622905790665811782424658703139092009430257920720916073899150820591327998389124632369103391439459629494724701682577245180897909182852128529861008992327803346179581966716679560521996564323214935539118052886684993792958064245076415808737659669145546034514041523045810132640061877765779219460426486275236070302023570290423658132704781845578621579028504449220487580105442379619054931500311283759168216062084770436124064921383211699780516871843895056759983453365786560956736492357908975358785639485120346727943392682043458057830091810065620778711944259802075839384278189652656774345434307314144589659988892865111913458761718062831578848318261606168616869743313782616085901416387726262100420513074152421554610911985832070891284701051372345511960837437678258498312751581218901607984484988277009717539167826559562797419706990983868351873016704191947247435019592864899769239241092067780582576368712535344099368030305229531078135620530901661367564396908299747183535067007468948245417532831617750659531051020426181818263713349450012875421687835075795895315258122701238144909588347316690907146191388233956424002409875288112248142216402096512698412958139457738837652950793301397302030089618657877416517800601364972215821936975300449900646438883542959960918233030515991431923891358023188732123829457389232034693350596834148316188822846940283432509917652193513435404176336083197809691987652384909545226878233087830655226178790857261745030238927647992685008820813790981188234580532447438734422332219501000730266225805340870113170986589088159280115154733226153244892094547847926080856867997934596407067038722032311154990254018339011639532475604850689839348490011803260830412842577292424562264775577569137405633573730424156389452524659096188848012173543581048695231799710819519087559450571938234406976504911855930956167952716267074397910929503566944181160334289273591324638735022134593417225346826064101830242293235463548033862083930408891400923917172346188392824339492836955998811193774111000026911658467972522199912319421153404714259141597960954701006258306189499968371513825877608115460097053820082611824393254059381793300660950678634286001445937556345010957686138803471016922609235514548412714428299509497934076663736209717466166212493242371176043177886754073297870030156169448038542949157205247466109272913410333911011474575139908356674019125418462728415620597360020666759517131324545983435931345419609515654102002205714101244341262832763358257430247458684027656356367104521085992417117625346533260919592742388311399857277054202416887596546556352840061188933432874307675337500634605315484863672579672376949790916017598267831243926489391459641216305531424988487727639610550916288387168107838343444541017902322373951283698305956197246504894774031861695657570267900082471218540696859927449014097399585929377779877643063957454142420388894129440640995468881557359902293943450388831864510803440445432672460755282726273918915256161445537691513565333116862227674327990416486033219518678253461527437641708199346091337090791916453927271190692749854105320917285144076366575050817532054858744819867904828890998704932835709617951681034145507078842083937319925811166944095530573755712284267422194957162346570523179106738575016584506518963109842199574659791186448339809279104514586382612147321720050748506858701456870965510117809274758888090436114108621627219749610288135350206341298834156338988697660218491026051177466528385715602325421959830013714999385171641361875901445316499923469746660285827522096769214461490791068605049701580302336510904060295193288473268620539092199399340444128148526801939235965968841772772945957557739647951260625615864129240159832758716735974367886256021946552554749614676051642210727165909434100093073934714847414135639842443010518416744756425660900379608395007765914743189977176444697650103087819708283750416380067183309908426314279855677152551973586716037797064404100447291000728155653519316206614243721953190542327659206395677469828807143284374840712156489002156477263201801230776395996814383124189335434348543244522932135433822848825148214161156572051011068516996518631261275745553236248079379246931051770459610795255468093217730436738128157802299551099020554741051884334668893844100054085042835359610434102335704926045501891939113025073972226625121170012317561785904574966252613892454802106307227331188429790908819613116673974800894722100087433877830750825238826620841974511987853375427888028552657526089797299673955991864634025959388471884402284756262866906440599936315454553769446798855201857013542370579413821130923076646456940944593565703586417741386589006900067521693334254128257142419543117327769240536358963853511099360027061038660946062024080621602517188407458289966529034688065455201151116976203392075975297435350611003938471934359746186910660549966507730568014643473201810656131434609543206234904081648568687078025030403802828311742495200368196829242686498933567493279988793163913573620017956432327356457017636174713695632981157515367999468088366593501698226441438900219934624434982615149165324343148292382154759012718530322843012896742149596629163402409881097707283182653669192333267065217919152615264064363303469433962223763712231662677929335733605212258397872073158613756670121246477252969471110486229693354702435527179663230314783537636259993610376618627265757721180570421989405187961038362320437516187591966876492619184097114546643751488507204182536708705554686642636478103041997134250648267159350272058494713689562674468843163389167812234939980521179774435193299134177665201939847087194058911673487492506798994668170998450131696434942864821168500811951747285682753374467438968419827443823582987602576981025119393079510130941524546109130203559755780667410399000678379008248566765289104024866477604746460392147142960726823766355350137681616491651440882875326944368803416270261022853783323379806469589206063514586758469601081709877014733273889924600302533754411117031356960470930054997797045807345907989045876826117752427278354123309441429090512606779432153572975528535682940952793955161973480951534672944829093988036330397711431191975069463275106288149149524224374227705080281198414647226347140070913112970727698462324863206295528299227033559520754188118905129104191323765080482161699887742767485250499444380170443346223099416703888269510646887211215280670171156586727071019530686867610760660596358435576201059184444170146753587834695584416365920362999318057331244414861435523600982236457315029063445830791760360612559314486498031749825540668103839947401631203704993949871089772067764070871366420961478171844573200863443819355076185982872467804825593520950607892626249238518616439454156601329736992829912700526073693259379137258408253055307069878622476189564743069319368233072710422153549323769634727170475700874232726674478595800540828621727719887215926371376026615997980253724875313191151253544908823788626367202433343381405612509793474835621782316013768246293288922897273816916927946580805382126405617682275136210751972813257997399611052308458468789029511168115652946480526298363260419716883400546493253110025519457883341048458281808690596147698628126675695859947533750434416862293059486885383612474866159363793622814949357105375286490049236076952181504224081765132242696085449479217229731805527696119944361505469968780862202144540065692184352891939563770500186021390750711553083819708925877545726353285639770956301661148226764150453508257806441133108835347722124796275274848465948213904764215042429557226878636067229244293942131375483320389755147158653979145732755202769764432135957197178319140026370255545878955625743405106380263145407982915076701867802780696150318494390133469408839892530615178717773128520360403651467600660740826044132217101577953114381598116800450607369445066093628986212483141872767138003297874572444318174158033421475094730918600698462741349474207229885403280494853697032282038348308821013725248057369470655142093670367110194456641501118707362389534967208272435107252835215881476652206533954075510046675311918564710032984483771710753355731057342383418418517589140026533892350909549626023577159121343762932159325785912657550387052664358273110816702881507918141748270585779849869820129277412198857047837165500743175266360698281911889876389634517909091973552950330477153882799930721253285776375182897752179560652314993473596272311313005709853590031166468803400255092504312822013881319073618678750734392816932414062269963045761751036362027402958052405750641961798444900774791342538187083426313049368727032657315017258461271907217306474294508609396689424156677863234652798702317527181404452994863526844932743644209641725665738155507102360168701507345374173368195554730412452100800126517868438182267279663818124838342242088486042017384287311075267839976755419204770777100049989432309898068696240619391238288390616788244853948310699041361426140117080989200231437864366504429155918695000782429996036667009090211659946964842454326864696966449833265312697782753955033565565527389035234496863528935306947862236792332195302763757854270334367919544711417177118815480440864516295496488309589932376196781835116812666737487507688133802617645280788441966625280094330876198525790198296740240292966166135685800827037490400479191220479313312039680944701516709049832156234580131018607099447384836008341935482184621058184111360705802591771190839802204680043686417065847037800596177020429903262271641050495786278742895599944296006149236699542398592965023325053968614683003853444318901651734135492707705635143313327078593896895684651575235052259180099731043820712476864967873099356985369637131277207241097709719788184753750415024258063307622367027116402214190938350026377834979560253825310562888483889883255960433553324813569820252566644815461652890526502513262579929329111894546321361395485827100397441285513676882355078406309500275154753425783190880740803244664114435288234606721134825488521167509344712155803957441715050809802131080938874609628908303664159391620882910401662785628398109098442613308468830700185688201677689289696952627104077578291584238288704036871392003588015013528276164094474450187855018372327839045394705167511410735252485026597667649738028947586924150685445980237994585340248445527095470151051628455128765446512469421121944559600771096146411964570667813133415325744467883262072906011549566705657852338250166580922968397498269964230920284502010982476755855869623324483687203166667479191752023384366733162629789336286146215728741523476954390385371200422382757764851051042845855632571429161325894823689795484685261864026776604465244891831091227460940278003977425524833551278243889594947039054339020439778584281970123166420449079631610729335591457959708483467505428804679673834920395501941928281284303471934613870175949569539961749886915939633832768893579159866893307129205574114116349066023649810534822736678738083304820401678239278133470445458761759684452564697503432110661150405745440761182983656148924765268210797475503153557680873223661373551554034158381097297994205479058193519996712229840144416259626700505490224122660087020796878189731983993071172802699752984561589293944077672682389575698629504988037222873333610062752935944474488954655105405486853634774192076084310680506941424193526434993152027766605565111878289621666067453103142097204871367956370300297499848179591869246000059778861923676584405691959480564437877253848854744598767382475037695799046325727128054509460906471829687506298933748200925385636307821147187352884126942492208689720458468720673663833279436306764253640014094067018717979908603258864550660366065011831721693406739302337410526256739680575193410702788479914818356206671040426393262600671701628368655232753248748767748064646842198674550634974891454275894076342476959745542971245571016591014825085777740659649278458199251407087949090732038417841478263082070237152260165904411428540023250354211517507714508321055194293586247320902350515671077587823327258384006767636347943585917309564934429349966992942523261106037407891701161983148542554320019836568016563321123192067571105711516153650109868719465251246526372426314565135895979499399211698589358521487172801462924312550290882938100004356286143448270949050764180748485243879699926743919470948391865455333786257827330703945848915453560695998523148911216271869745762296861472436149810417926156416627403730602839485551778083646388832518654487050315353633956292136875835906777034168436967910302629762656719912500979863677209593940139689462852963195600012710915513168868725325303671581489423517673608271374484099359730189438969118364965960581266623726412394840684663042449798728196187240525028237011859925396859128023536124259691225486705803605636403176489724301919104521315471342933494092157757308505022664382306026833841657009032923767206282555295453077837144650143315187578798930052059682938885926018308815925363788026441298084844835765795616607226361612355877319170716567402007516102903142349298099212793636838489752133065260408890019644594060753187527676127006364364850527783477217296857090253904118468741013589078929946235180233193541063700163752973519250673656978407609937480487478671701735663122879405129567301582334213228364688144941968559432172253959714341773684188445453103856376189287325861104201188341859179559388189197409726258144963458935460084344957830232689633583060090521420264178287347840974066873798779173974819704277224226651855759136594051819528017859991119042252539573684290792439032638527008260379222447527604106084306686775383280263360530134910933852212143733274467230846011489161249195027780578082641261382932348101465765320528032694382051326411747519627670884687049474841170438946403413857371819901577822709209200442729996583742445819320345800102124501520692627096383271993113983959318972557598201770090788962789800848717679849256020521238928924340641241991550708066549094803715532259276642681776167817835436917329749230999125575809635337090074051096759289302776410322906403733740311367050593824403895428897800317685497142546177103902764363103417410297444126458819299656131986859672554492118323401983422067329017570752504928411571449166281227197503721063896252407257971489898193028456049153711053467369245854364863118370355228802277305722660002513300653167370055433188573469383994738217424086293087067720800747581994689717223662686829697796294193335261878600289864225217757871673337021723749081412873049186169517765548411608303230177777757557970823794654711365952230164605262500184504423714244217057479386606024199038094752240891195131178825397124743107557037901329514284301264180333897458012146453204600723397619791424804136368086279653971555341232350923168731549071074823741273746815691460905199486302723352031037226761076980347986573326466658904116648423875949683266538903649016306807183751353838681648566648013922751239576595582098882479847176015794753766744103013065714867474432207036194330253431377007446543212365640758936237360617340016929786441092000555134636100180187192323818891529117753671514710974136452986946496230550876118217486591260292028962399166126397796137253809548884886865467356510871606875257202300324826743030770371054781990412706349621541306917399907800827148248282865443165867058311040503923227011463069923695496735477251895027891839499037429393502292428253535550905260689255204198662438146833878058799561793784884686757136698949919673139652499208844534827102130941278937169988101757839224027190666340167979262189943823091522135108808037221586573714248691922550404954788346589696197488570712764823860609701320391815404863076904031030844929777593624164620314050790522998483899512661012893114122239430629969055818159558139637907033607786803977620437751213199220829192875539369877813099453712467442275082353750212075218820938390221566212723469631918856051833675527447493193037789375379582221862671633238235966606388381121006927584951932181825510901104709063425344864301982796791384884553058255582182717887113024369798129921166246186028425393910754511563888493829439439119546784579531611386860595212174703540745162541648513602241963655378135476138446613458037177233032848266115168559790875590880804367179997036000020878626177294941750493624916218859213545496485100965634627240166478056417841934297666357400611130641985864632436248730046655748285127767270441781563570822597320178482077892324021789276878032008725312862463234120137309044609768623459904965968098718501111832667795271094379063936843811676821628089329757023845841980254122478865115322702567298443205747981673185519739600172219213327985224961878361465435771024911894542020685527875264894566098193299721478272126982595811308922861890349233427323169237385658807365071664386407048386003053856283474691931178102925114207746292638599966614269482031465911213070622930679394313859745069378449377188134841113721490022677592586841140723569360337047072647883069456689359890736435155539240511032206043357013522739951336637927536517787443416693563733512329755357396176281519348317740405790251466121404209140860733761493720558212906672613211804583538371700568833787846052095827964628550870798791035793829924218955287191988266607729737177349330406018916970913754181686856190482039146667677589371256494542554417356250469675441521999156152173757676922781998877997191448266535865674437243080579684759892181078676160128074513483854149426740326881201475036811127215445397720285724500171333934953701281840254699577648324832112263576851685005615888513918565134346392966449039523275259446140292890444902571011925828721730491702295300831029564645413395275689241960932603724995542032976810637933205093008489966519668148777030466749664681661756363067327499687007210355206170845957450737143614550405197849095476705024538922559840257428379292204824854979684016541962486244613516254652428646047270590786427586383062912342091061825062461565766853798525971841395265933658247115528859041410330039407160280060478985800264483034131682572126430282074649877079047992997700263728758128217674230791758669538800144415741596509195808675892912705279720700529342513667916703487073729031779743147622266486579629557188382416426063323671564721614596327314195534204326946849500387255606018511188062558818951187370484443931886206248722487788749765864630298595388082322468406526815703236523166533421691713312873919511749101833371804008293624280115399824449747239987426533954290144516904576187692567858085756638790704609339636656621170859411967868437203511360832766525183878567921832661915031831054370704069783272273420997658422758169984631255428694751591351171961871275084101570768464130225696350615416471889704564726540995051864680361981645974597863218642806922778774545103835787442858654886645071089805667401812724183339047142265322463209578177398206735815352363453711322951131423497492685861134742675051436540197814016865186091607650673470648560960996738377383080280156512605133114719763126026619158324010055038838187242051901524963638888521645390357111563362764417028337954159417396242168521927652727594480213791377126886889598263585573999540178939428969990596623804372693535870060052802376914973924073013769182235799655858715214608871700985527666487166854705213908590346639652648738912194707678760487676199698432138989030562151422535417018764384853221850009115437281451445212939106685013551122620978744620397493751486308639728528330926512847265092493580346990881066911562121155528671646203260574203734194315730185148432470946473667200307238659270578275379365183669195871700737713626922041428141459576171813701694971337404518165706753624087625103987684856154897098431501440847312742690429705583677110755467772420110955756177455096327828627565935436512892928710959994379609208443852791889407758074028420355368278437232556685799089370012914840282628108221718619818857393496914550821984867094780079813700918152613868980755608942007244031508972055741613584992767059986168419898372713643550700778657227635650586524530120097722166427341800363715106998068850931229928623567296398163118720270766275544655138915025442306831199255467872670107828696796824708742359162828477080377404120870672077976545875944620023002951374523014845264136006874112076975279253837174335107100962635485957092815058135513060381214419197920664626577911837091402010430687988936290012487189876758995678511399591866636673787364474685667080700624435651122550268317476014061691136258362618853989232433979511699684852224796141023968950114268824030730527562280931470763062605773745710089368270692065762739763701950479868219934898507351228476110725081186801526421624881623751568858596673044954067854262465166588863072639263405622903175159222409375672318842390247964024068361055468942507030920912259100550716294339600851030012774737968619032697061630321258088550212835469206715964544996779959428208801967293052658648327329209692972446460907213904091582116273480197527452895872671626462600131252142345633601109941523183106506532122907320340106450342101449222256950683906933357197065941350879056120157112783669302419370959923898698794258037536092296606633009255056950210969384015228526826764825746038122891021700640884600413045174555408088713459971042111234261611107706473373764465108479011678929104603800658992624206527450354216405294035178790176805976652141088284907640702791807888694250283234041222259928694838111415839936864310352035869382559225417626244898677881092513930855907908260424806457874802659131696661280150333680274986073087660705443573968294597474524164155819336225052891768327272498532249393683931423997683623980234584121544757762966443522438121637351704168056480636611460284138930178160789961547059738890630379105069823323282313713591835369830245041945330155010396078273796721734808892884088552955953023880922915441325465472502362063778580818374725733145074155546574950716923521313470193719450178306137215744557157874047096541005701047388604800891745138030903638492968326097269237603959976253541630645905647483124472517194343839049972543622853641356829257512338346917669563669252445461064272515845448658224333103524441350905846918506410227089306132810538202979693067064939611661734532275445872605587040913711605624378698185056510162897124794784579732186894714237834963103009135828408892219730327126690490275181486038998448290710648695587382988716122639934677140693864392303560804047138890955884749227262134303731621553263735031675752406211729532172736077826684775411293420000912069602658848185176226868894504583209257148161802466495526762958570237955402037042032960136897046290618350242479507019548829343883891869610041418148342227756673709029330997003491018432523894519335787697749841662092383072017739637735407356631723889486914070202949251123979988422598276748365743638740580770698947103421023822843986417608751803942501266181727033400704617590634929795933174538198607137602079036303161135314941475911029190786302257277100345973481605988417728039663887318629834267350520313753670934455523400836001707226329945775016238377240153680581104080365049610546807695668632769109375144016718903364258911795970356878386002169513828322925435778607679663241639137955146752393873644352122039965544167703372371933700299319271881961427660365240786401645954995871109849752279602689356732019354298193510574994266368652178050915674057002791396105158106200454934015809603916737025974621677508818781913818221713452486341728774613679351863357427030718775359657340794672634983553068713647605166328906913028835766345865699575649635378112544352889094025389652629284128272646055193695030940333191423159869112352216045291035945019779888256273422996820825018189536535185042165870313988083792254245052532403493519349052023735263468840123642895862283353971097917804209940317416453316753733389601132481204945325545113713286412848251040416845350534465434534151701050775504791667088615334484332396708780762386427399711766453095002225012775334521416943683219645407136385458762450234681541455644577913334032857832524123646005081116548566775015777146054019642411598098117506411788416784922996368830462227144218642165881717348029201616926458021248520501228884683935276662610635176022578093960891927351860110602741828870218574809110079371940632625681217822107917226615592064208350798174753171177327858518276899327538050872964715094928033093911064863332446152542327242106856194432827577968856801227819702899479135939771889880989446956026646284055421573473839994512296076531645038282079385646739204063536711447796693337543992742938519166102195832429074353774736020963024257860864927625828184394755118381234875795615938662336545875184612394283490114300759384745235988835832100393049738187715090369944368088801849718141586137202833375345650139101871895139313094110798129901057156974742611239266612693905777240469321703217525414755786575541969960466332575243677433885444143947267622901548643572828975131247258963839405309399888571818829937765613824658083353901199088657659373509618510364097129913658463662689137409269528025392146836319974188403232961749084202039044943351591495399729838841970197991423290371477641122425281271709681536150356264825465273901327888367223073031361868446146394171982991524351584370102599800307857132700522956252466823499468279445048685763772781741201085569866253069868935001374998896639395311588750019328526700014501802897084864282594821275488066634417082276610191043275934985386410263442535672679027392906398517193713475993277400126414121770815733751480976440053752251299600064547894203388121622005368505628144520157680822481765181523218885757339168335945048548959639202077159714326261926725131024995199077528553702878731448514981475113297355292225853395119018748942643270310381380263920605284405743571950563711218902849166157240479620082366952455050530033679056020685730900567007103962652805688972185724350434695686078596526111174648331958802363105870784874092630808889269711100463321016151743007196203994911934492350383889389626254983341198027872094115001437853845004423739815041583813686842365476014972012410312854918077771743058844401816087897237832409507998046512075484320878090400258148440995723873930344511341444363524408450881183108060295350526656666845104909671972935543040353578740505836955874762328623177266132247162241047421818703985753925373858097329940928686459175748260709697849841274911807004645091638343044080509926501990664562588525985027511071825445415896149897029945096675649173731146617605690416157348464073615381245342941967222642032375735818037749400948870676557141674658140902145092947127172049566954988853760059814785262684367697171640988612898786012516118040344899799637650873628547113957487917970796898740271832102422348849183685874625231465000930064082018250200372618395069129246413241387172120279270705749089869244278756236699410341661557456079567760528325558218201919764401042092259937668451870286729912165634387431556191841741750763808934146602216185183693398853022864779746040260878767930731202397207306343034254434670751134607431688112886144126499043951437977883190599433196688168140314371430148125295198594943058299068261053501795930261092978883032036620748746032526542469670662101777267364697124374435380690503206366344322283743074000095629318978021051982530851644733619007264607303230836507403647216005158464100101651987052412807505520218053368958659016751150178397589656478223187609806605843176060586264361937371829243078586818725469946304278758931807141322096859705119329754115143079819521505085943924842981531175317114101033199606360442971474813426286133531867207784476619636719541110328566844557027208453295244715657599568955925075017302578909389378389971010787799721303633207699683976881168460218723373818835084068112558746814162836269676211655910667003072520618003862918406466147147788933291836091220876391476089938955175343911131941432408320302387875624318444039495965808494692837738224588865543339129445378161161694599112673074507582536589216806449302866755877346897181602752736255912468017488661252343726203751162726545347196903072447986397758915722175647856995335405813149368749407291958639204352367778381764380739066449082130150357941309731361121046134173935396027731786592206487337697599000884195508657219679841536900608363864619563235117151545682855652795497686769558034555307368554114692411768572221598702766228675391165017374640920121248386635288055296236492726777761590121264092842402984092066929402454840040121266978993852873599683518958502603644410528320612331872662807136763940216842335079335159470544377218089583233940125229276185950902583528415167000741347656134056462100100593884892418654635439735369702194885790436028893223133525536849195234839923477391089002121648028324765366105643533226144362226802533767365485420512874098689148282820112178938861470137706369291469913843788009259170939912222173627546389731172701773749153646309884565882607543576071693382162264697726321321207977949661962303806053401367101974442099641277565145731276603035393267125314170091820913083313052469238004817514354091980358715306366181068325532955560874282746134737559243301605535993006351550799810848742301823065838960986977508185424312497384977297484270724421201479484882759151289686423367818676804916701641154129225287864276931976732266882022172381275264766489910290862823783856399999402768078467748246128478142322069933409556082249566162950723904652823821311145580070530966879204837303434531069086399241087373544860372051670580901647107394640293048857987034623855585025262736613404427108298554211405433750864555299155009769334288465284018300135137024464751867292959626295019649484633785739308670020382054424129217718361805295777428933537477720597933131565405254472517587929624287126401739042376866361737011665546330227103685268553873770484179774278800873509290647339209219446537623822111629223750733055436270009372182343753921691517567387813667989405170083327969196320024745741259773018667290343254154403863362107560675389198771998023674850559950983036172757408416211593806090649399910529646969979167769169223888216018142308603831138019980831471044745305608121420865233520384214274560267705624633566646078713747765598878119118816992550417590079480346959824557903728936429361898634456964941394440188990943269183630124913834466292741074269436638864668211084431968765583815189449604839999180756856367099129368403094899526864994641672304055968908103573310760624181067345606823508153652528783758119246218008990451517299307100543054492734258274979170617318501493149986095186265426355480654451455175486850347023898253602136436313799431909598421306778169082807436644921928752447385378144771624120907914765807272368687940134904908925402114331145569750303249641915357359973539227528608190851521043457949654405307871966161824187778031223807108058196961877618785028184585814163735962661206285364895283592360271182511189078623229775757561126987232589344379734560939436237436372007567049912970093102555004320650005661439111248319820224947824639119260203258897200736096559741277007917417570466435395451662560224493580174577084455355295519154505111432222883074304969948372580732370977625746387695727399038904738124572044219337274228162755436964768655662011567579339992134060843126544113134489387757390193065491414151750136862686182546114798968558814758408858195295691025240102063942773141201634049415459984545985647284494121554298235681417310206307064322251876547761936066313532423041395330169874915615104540056660477414775890590513332729219412813239898620085130782963118090631485599844492172075137508013028005229392899986809564608229451576364898131604325637470741570941874485598872515098679943074714190971127810531986080137447380228672575340444943242987244049808460745895976813665015730440014948968605001064245832443238939219204632091270883441315234805115548317846325318668326777927073386965447350925501204549832884410787584238911386894730786103644560506166140997586014320236132866556320328550399163833809073258349455355491236384056989632040877193378810618296584337627852800109881648108436168395919710369155194107914369439880731598290190037906896440867054308828872403341661284501429857143667945123787917031073472575450197858765912592145022763374609546465314561873088202108222787554914799958914772813285699142164356236310193892584944662761305367160014598365833485469439918503793158936010825623090166642301495941435712181443537163852022980941186401551102772560265388474236086383872527779389844366318787759830037932232431244867100229224910296518899538314651186916125313409071329755243722354209593086455939793732656689732121497444621060008380343926231045335409383777112554597458351340501444301799371507230625126248086320849760868145635225275488905498041952824236715425771306509076527653585523111475874935867467738066826040777319849063525085131169414364807814268165980895980054350998719053565538876416081347901338661991517151359484499606683010721271747988313591076159670269011689726146512927933514133880631458431098637767063423113143056118734853096302546317698117528595482537072761923618526698416161635081326681851985669566700353908082841039130760857409060040436265718005385986736229308212166712900953871976016632877385856592280580144038598646846717983872770748955176461687836936109353770567304015467025875620422027375322283811243431453605824750609055639288636157676880760786178365466484117429238867902870833681605462872314240884115216734047477272026139380188555431928512588574161536140660469230909192910227619456569072778006620888694135147299320164227488073138903671316186988041052421779782542692992352179208493400749817460176758524374762479039577871757546331348926937139239681501685705006510452355629751307383930132759523197169181614767820993331261726118502429936373257217622375931480956132846795357637712797499758347894601990180738994552859514615253546929317820263201165481244615191355627674694260416457321758893048167393700604636688422313010429895229940148521402944880325704180249168599881126208936740379322896177676898114840183576592526531291559038695112995995219702626283138810626102307724316033412065187681968008793704826461278842746440570374858735867067818807523928312637532315738389411968179207132315532474171447697060062967739863661182302566548271901683669659237317516714292527384359112346898759693508418083669323955053874189735136075451993401052946656235264605239786594953595672871705239418517645360909144333785229115465723503124427810872326333021102400292021515512758829591151313077617963644862642384196088608122240004518760744772194282077573415694286293154995523903326317038130708987266929317198064544169549634121860470670526572420621358138647272987884814644050579604348851071934222574195098778442787890887473122498108298616010346964057986911003800866465752264749806927662191509096654013001374256887427509996117647560191885117799674647464660647915807749416356953540822406289612048964572438884172193069708974008348893614527211465769730356145104016046319192176230152216815052386831888099650997426791156233343996763908526005020264582945137639962996407204644973913594186421366433946680639531177365567733911111685236425069553207136183012957392231011957872489382638714938555990271006112145587993802694037466728251676452943064175035135147485532006518319595832150216966890513311460479359684568991057960235878948185331405312444886670799949908428910903939762812165858490593071652002271512088957415589154193780684371399792390710863950396089007282457029321991335414662985136376913835384962401295779401577506912859984235036216155452609062387660172155647663378560350908352336823526223746780381364218034782235333780959338869786004116793032782584540159857851289156545137318614458477257974535097598979686308472249954546148523625831413326110689821685295387746091150485964107580741026881979759068733328440236011588797386081866004095760661119262237226211158861070578310158341007617251593752979494537616732952134840034548641839838097241228494287283930686635990937647930956001946863453450869609292172713734839631859866348530776954300867706485225483056012561858816476919529156171286530872931518018271745971939948843538603469860960325392537765268093217689539382871821471086039831504580394449015566345018976671047154501651942217726242953966407354600927205779938834827490244096192452914935168169215478812501971737223785581562317351528935896367473058451942937194957844841237177734082071776195926677791655852904703982178041645960343517828906087095330350979713987429205974120241155207582828772644876344087339964044644951107696903008065071111678870276554354786350441215885294596881047352185668985220352364038358541157083785232560918223210886719534675933338691875639555798099282509160084299385196109317865900518896042575380417311262649044986407906098027099669899842662981535814348745446926695154912574954809293755284719606859192759686801221189303745132239461532020847031799840723170309288901413668419470681784572167613012410091972373380145363777113028605139267034331327499077323350740913832097791079739191419817693753411913512407899354831949957189111573583075109290745342339162943018508180117574799746484821930555227631819353436014015986317321427320116944186701113432007913254910811337913229243740391931972183818419038526118639606815620431051090494627868728608542505897823005592749288902913901607425764107475946553842527447462472249426316745581789046420185013792029620799548103650556117992198156052410109639794360483847594937835303019269466269153910595029573392046816343555083284159582828554901322634055834187582766448662028400870078600203331864705328454480197434484186027225539380605152565640101260888629300927197401174746249741087578225442318161666836909776011255510571675821028181574762217969137297877553612932783643671254938895624474627870529700251345127461121038542084570786731669856476744306927963724339628328963568855490085106714498336545554669743217299858890520980857440026442631234940860798190885685878356508539216942857424011249465136126780535405567527602171383243365125279732621436922451037710035867639009460647669772121480498338295901355314412429877053466057573349427970711897651887476820801334494999062507212045806021325079995478897094845999561753872899161367695513725380279112614677043670083227640543042546148342372890147132889610662817669617788855009583649025551587366995173104365582008771555283388364640317625239228684760349380330604088228508827667879367544038314432396372323094998385985660991456397199532129637172805002149755279689320979872162451443900090915375953900400065247562437648249693878762662192296095920263345871048332619824509891547365884519032397255636197958342966576178874935901162271003229028114333603348313579898158725812951562179576244922205345664073533615908119257900971294265794608376112953704234127290298507356824975289527040182451304192598493459779023070219261498310059601711259279964619781209003932740601428191803395915793889188301389230364525012039480955627176330514391167447717717151915562112966687712149422431196073429169192135341965266239578990961910218126576874172693424135155607139677789491532780618678433107761117688088007518708319076942455079890994442253772310743277956483859710719362458636368382394623899987420134496055156173171315619908761122073959696473730958772937818229490996451893633110237091056907620771326030330952329165530731055138485745406949855341741623328147009630557601414772785263354665508466713535103054626925440165454817857837056286077082697993441384205503135660005727351630536836773360798938382588815137087934438956825168123422142491684303399890235298510233129703638857672014685061526131514322348431677694895110926945450826261371909519171053296866405269587765561045148174191916763077312114867754048734493089912530689346585886290578527768800477218407392548176889009927717858377463729290276255596261838325446447633967622908238822299913672223702609729466738393553339415105822865026183227738804207654414106496258002003353074345291878485257891634926721189444164333749479478556068373650070322696126739189267652797492976214035842914180198002056624882186005210293129900178065485826674736350428437019057040307615296390799806703790392182837154502068354154047578790135541468994492700006091197974522445238644908037310643179117917214895049671597401697618005475724721419991419342011489346767830528084404945797749521666780086741973515763414895363560790012023774961468019299954938339404660105225872746110419023262274184964084776443844610388172009444276205191347483958109694048015311269011642847530122129924309207409232694281013540817506813401071441489560285411771719562316703619667945668993213281099292649043840598099004744517399119903541109367088137590204891653350960364461119961742394446170242059823652060929617419603115602455442113389245396825393321254407825101521739014177187989545208262204886339983297948329023882066038546004161442393815146641964584892529495075317707686655728224126632062180759252367164541615470881146905705204624835772460840399651134021790850686931291557267747500698370977009062412511058766697646953774850174070414022362593005210477140416880927066774799699815067640068339993967231992083191968872959154693234657370749870963032326500489289642622045345524970865233768987681693303966870549896318359876675587605631140818590642471648932779508937453526007985825310527980263092957353917551666619660333823178078595999944306649585276346262491841129134545366676356511323597030012156369182295591000321397977264592240802294485346870417226544645700611244348747468700993388381457499231623140994853063203806167101410761982173496032458801258360030923639997034571390337330794961187588713038670042441504940185793736002943948247368262606628276681203675665866385433803448228288744987499880462970732374757068646218803083795737312427801372541489113429319736592714304297010418492925286693944154503501263606778731720591284720925800006022473088625165019435194965857702486216122203444026175257257800725456471382756353918128950875587470586651348077766342038894889989730886712164937436510222016351315914570955912965981303524097144794101963013849711682959908696286701074131522924280834969004691137508585778120462388279349737588144710943031110051954690125404822927619097762184037884841557944197985807756288247941708521301251352396885655594025387119313352027999085431185372893001053803746981511821677273920167198097520742920873856838826499218954014983015054799392110431440541455862003884004775841624309325838061769057999207781459006746973379241104706553512775572864964581269553666039326410326274391808641529144111380436315610191745576710434430100969680088541975028527212275634441366905376726074794810637072278261414993471797008677444717175481399234984953741042894467811854112148659853760318364017502266564377269802783916588006163960773034325950465883256225890456032605930761050604665678353031419015961158131385428135345793487491736700834532815587104888332588165073379728886602469613141838123362282424276827494584086102498992784655550147722030475991730232351381020089811845034289606560174905134532640458315656590852205465762220730335114052346155322487747345478472765932032703419898394119467009846785388377736658809798279030134120872949017444712750979711187988810850519192800214875973454007498664912894102054007019504083903081472603527062093258444216704037837237515022954011149927930384306124264941065338179617362509541825072611179137182901852246480394204081869055243666372924015057513600365988696751478061662172442563506756642024390154280703059558522271972330426527010240196818894318505936455994170587621314271798841605334482647280057684319410091874464992499658690930229952022246622481878334713606115769916337665683202086060297503241261794793514481680475959234841194115204656591900005340657344339768671169305052440581944700660964029407137595178933463708652254364508147670241585467418811384027828364794635741997366212827476697857311361497416728494052282500171184961915313599475304064515803084269722996545023456482751501185165812525692627844937441414300481818145244259840666198606992456096891017401829457940558057445188079284812088395852310612697480852845858483037184529849699259860376539671533314293884661743944756648400685786111855525492137754546956335939295121655847208704007848350783697721531892106022985724165441060705752486272793558945002396957131139025551127272037603511110267764183532354290779126869393852737543251459479488288531452618656581486913034214429405907965413142898204706515205712111916194806565603588480038784501232674779856222207890144513623557713113525372266256245854374796868651880747087099295511050929455952223600129160386007382632850473653272870581837537121503963302353761987661228302524952598242974319692371868203050252203134467474096778348876744911610044917850116135578722444745677495221276413968883380971044281262598076345127852629074708934303180849616747876512943865122249803994333067980065388012191229095633715295741179421251148647786074104172603300708604276062875463117655714400146901351250383985355851156348023069445506826199971038064505112822669243383734674539693836695717771504659425918572015038362748964516815556386179916593142910165243013845678817782980806577133801083112401950322732791495733264368028007738203845649499096854830986516397032184147286267163420860524694095765885507919182404255575542761912611406554970864321885368870552235563847484175806575154546682909555557924882618402179268985858711673398611825904847247219399702221415985816797851501822121354574405174146577571323016264158576074842096375999195196856587378191681930304852294814651348030040323472741991032223675314363550615118462399936633725786986978073580135146767780303438550879176233296038559727362211613541964847451691144766771301059831578799316418950338782598167384631374244765206471201894710669052047079295640669549003743144080761017542612164694157873254151270036511370761119642296676808371579405111277526338198526315033089014940168022887971320038462869828964183252109280135746037173744828747661507856210407382559172084859918194052960574748728471260426469823043900902585349839650997633444562131048913180823811974959390516764035566800172285906077403689063804198785514702098347926388892769499108976765173511200762145557618370372683694256674934201282114307470761090516953928577754424655125051477414290677324148145835315414263853004358460924039055594347081231375345395672305117115701637700649160688163785477243296413481976430405960512443277872240116232247634204447115117895005718188782030948440543749470036924088696643581107473816084266811130060745813098557978197126186521966580221190345274920299499593196542734655517251749654600596860007689154126460040352574458926613125990992788549976979672082876869079098294462026975664749347368817678212821853825471767274596098955885928821882984218754367593918176840631799819350405971577543444395995156857368340650359217783223084337626875252644086649989136747121170212103741273451856440258590405265634472898889227747358034047225261464725561954730314035884504581412335529945709148356660503584702247428419242261399679891910054799793008302524433572727417687596254724451849632574013248371739126346218095274876700850876631518444326250733111475809973176038376159123589425174479458541291133257958095059585621152108610125485472289527902893335857275085363276703567582882369646196504122152669831472122627495931549783372665607629367121213643022946361851977557079239928255421440395642589386767421775006693458232183688778707319831351178111286979802898504666956464220544882430511381843008330879247745771543498718351655070406673628497287462218476264550331532844040591933497403756385881769242200120867233076803899736631412478108335881985986931032115487444330973055705542602014655767316874341301915638111219157349821573260250944627513530872064610704528515149437507953274633997692474282582615288324285725015063113749689239562544765958363650910773022191065987618089876184534105990716251247287799227200316859467778382362419292106738295951432676684395384518624239922305436488090663334660018360212360368161516781187039530772255333678496450602878008404498763240894919095883325448858183804807112107403423722340018962939187616520392392265955073385756661522076512407722813594971981649808551306120660382163153935387563486387873918171770095518239069915918719511543243410034224113250055395685407047679608263504894470056892413475101503809390695332338639477095769343680793909687276333855329270871855572134853050062384263025923462023598361423242705565992235457967576449410123607762445473477237957563322896797954712255096909396536197144178146832632359102232156572728157794610862977261614003191217257191172329372983509523437110856492884886520336364748969619627722639697208817029879002796015889361431423277851586131296970469174564481874976750274844739323394269718155899311905521912136572489747068526645963924122750093478865474270759650480968781078804340133791141001732899218617672195792837972966167562739496266749209755411248425317572074455750713070262809507757828992536631000896578154744506377968140538109099730717842802754291457235456261266553191937954157509675094431726900759604858741558348966116399742378115804485215297393283916889409259852176524717787832477833064548154784524114501654623582526050439469525970720109380133567428480437811548028034489605624719092369241927120985358535405164760960832022142955745050191341413079241375016446942686349878289033702811082861656372544612005298895048586670607943316095066707105501740731256744068648445858694543285623189313603906283580681307883572597276476258231459074181355839573817554222609677377738752206332113377377793687720198850016465615867659583568016885666861297712613449249440618827056856845742557479522877821361413075373910873565521804181794173703833006637936421171518873681778892067139202238592216531416833523513641830276635861302043223516557398087950733885990270076923995363150054695435810320358365834489717753260198420380746020063885017020365101670980998355627805883045231382459094958809669737569135934622432511032473420929991318366092449531317077427232347138834892386271280462280304255303959768938000213344133077562738435571897152673040603044809043628343348007519794498948182924612797924943480788632436345890320828278635506590773131564655444352606981110552773361265060206228477414589801132629677280024948572122806407157414079536883944012937534038472809194445622859386286892441360629547295996000989808641542273170474316173194896965771866017373718853905454426928070189789785336507373275186243064336876268961661953299621934947011761730643368623456340337328846754151147481592005025858526901560472557580291309310064206979472418519541159075127142587816779794683191220168023334284179849947850527095565660245981682052879480079833131983690428092828841849599369331303504202754349829440913685158099448331347651567268623196149285539339881933206995585472764234375763722618695577472886002373781154002360442608540977416385490920574149577643097221921340210851842954237120403716661542409655788515054414678082053785286583893179744521450250538773620359726873198394130024103105250858407387372418619993752877170498123564556334735696842989024721155845733262775440983913541157370065626615626946178531918726621327224492005739531159434119510391434174256221457947532149952904996073600333068162664552928347106838339285788140600225337484147098007460597937772636927158872550935439717235658133267926013459722887499164983160384197529725585270046176182058782454694287725822640202652333136618273832362813222776406093901809307515643504692739510521833043382483467910869331758729109444093816482408873129385995371495957105680118492080357781732501512127772932413732265718422546922654315260753939796948475480602748978439916216910766662092974882671670038678104690022169376063560781390252199294658063953492758184905969286226776384595188443606891941525369737435766615935167763136011815605766382442195265604526500435994791600935147044497334771350277509667060937681380508791005261687695862142129772900284008242665918289945985611549661608744460219346779832772231168578708227104298285839831035304479384075228444201936610548894714528719108024321965521151096819124754583338448016559955721573071730495037116593038174773441307107905677259197497352846595569964196772897649299845963764046299829634742323444487906365688107291932769534771516664250824956763098370003645457790221389417630281563977006123997156145583293440234686384742793321286763528693539304098729246505385766828894115129652054384791958128819698486706262396315648995560972412427887453715437781340938807486349550904421308725458631898477290700820515968906433864761806492998586493621204572123519271747237205958056425191907234899596826945149391816867383198757412950131760130532508328767537246487675005303694541484629139242106824832207998288154243107997348793566884384154146924747223765907051773171896561986402782441104840600850303582887362510879243365370761423109085755639021562091196960572130360282517886974715522518338574170950504535056705430707549085696054102325723352270332862842520707109566873517628171950139298852867932546393240933317472431278328583911703483640106655304912010214820853054806198600056027181909145385213426477914290278942411392647961550947974694836265173273717320138491260112983434764105635527708487524702871644816722354378095313202612384139060912391468631413007348921024707891907248013865740748683578171848051541585598996459951864104371341304916964030653696515602889279132597394290871089419676441782351224807530427874462781795171667790247887395781705962432878020036509454325343893585589369439839421249240141935659072252709751458250478224477608324725706233560324600254678708001416487198182858220835145106713851145252433768197022745272961418935521739589850207002796411603870101639687546815571173690574834824754726466490567803785925866009136605496820051688321181472065892403061217906218199671353461897742299974021368329274699135157697068049195645087759364509119572857658609925658869371250850102919713370626737802082201345885326011372987981206040534568317009381205233149126719862665490085064857561920676415671878355393900469325008538983422138198046288016825754877612518543890461765523987333180803097301882289584914076485841624361020263273009369472864205388361403206559824370970565389872541455803512971645375672690152399508312307794430346512736583139588956742762804084126531264870319884359093039799030553019218671891224915013528523235107791037606990064864205925478660828295542093024314676817307177550145059124307395764012700443705829793038291509436260947578240936916057611398508898045166377996653911013413351702668769705355156756036510216273960712387725784290978682203838994281363396673878414573422961286789673027800898558085254508239332622309355236617526443851105638752359595769134916138220155679263929534399168577242125271577672099850847689603936361590502403594918900830009592515306486015328074950929676863403893000035101206310211309250005664846582362383200981178768128225525632432448877680179117098150680461775805311529514918331320619188949602013042152548133755022135158128729213435358944219885239611920731171456707744685435019236016030122135285122768103429462147241667475901523054655483150705676520007929583785649620504142689412189547670170157182513757481119959432552196514049971934772354010260073925173973806444816378336858983661907297133182835695260918633370765419730957237907264656918867795562025689673185564565431649933092108357248774959305668677311235336149158785842791536649343555486642037881157989680957974121179095430720861907749683230996603793334490908694798492207208041828322699366110342269485142793098030461395867049527936475125787964781320570099514859775370638782543412069475841465624933831565697539591223820095412134510400022514352439579469325388135657038879592464103101077884927468985122105890703261634828187569196865776406320535089926671759515133867723566262375441954360473883877077366815815235844025303221874246612816416734902149423737716415914212523353136816815722607726200963637508253520647579176918426214294404794010731698714883490403643780541360320805949925802652219295303630068191690685011562180106262459639622046778351832254279527695207770874414967621232374917182033000761202446303530663550445876201399873641052137122381330925285252219122297365274985691872977126903803007407136172570450016848841406700486001056062406123229764678095461632016071834878042160655254234257255624206361815579870426194748629939323760822369777030943826440701580687715174516585311639320766552492163395710170918705687379636461160781005000414995990893096547147795448441553504993011419177063945838693159423177272617382175753370322391617948578387919405030246951182944738198388991539588061783204122714780824465931816366293745160473152186376866116185235639709704878291526666384725064476460244562981377175176595789395612213569863028922564111683047863471189662730270673848689329867581090896025299591804628309988881301189708104804641571770974934789621092889897973711416610783846570692901797431573230942233489295592145422305403172806305707957306216435413993481057357720533551481659334458433552191157759410279156114312828651184081795387398766513808239711100463876940651590496040932203040174833344330570664883137282032218926855050435723605421066271401564406747034438505742192239362488582916494025243343874467970113521536725584337029547036915800500123484039422788661071872284417512659606352800915616415294073653559358680609671781765645331103542886298973579612135108205461124287547043717255797865248069968613433641505593945683878227805470476127960140633309807699914676330304589051861989136097080312211596183721668659531971169140349751332276070115432706144179146233198985733962959593527455519458606368993462670413333798912334235177727863778366780796845201413925610206330850232186388358277779452710312565660853452761864078266540632513490360323236502180044629661891266288141197506120577115286956514182445736201025871708496441943138361206536734403830304059536602259658864269749095202686548294303646094407552405469288599264597255951177111358474593441929616563831892096229063745517784122563122438979011346369812573101881815413761759745887451319744188697291626422666877137759610660703624418226034857479572260998951856778624529030406014277218828784301385340912782150439973565991974242373956437872851433254619438365628516638089971103409005106470964196951740942948718864835053532616833464104885994769219261676728967157632533607378699025909685299246442065983359531556186460497551737144709805755927323495595924440434822512378413484965236384004358575302005589447774307326813317480768462490830406768214776937191904128201124780547826721538640639649096914307716492986081318217539696065057798165166981949598780450416691642012317091134159901681386696124442521558897842718623127227280403707674348382393518151067042478214256071474514921337319187512451450273987414014830737482521353714796992122994041431355337140527996324346543583734095051883619500770586170221174978032648419986636904247455900775051814673498434109493086895957794303571991358170390562119908494188687448410531699563359406430984781827569487924916866780043273254535060464064792883031330424399478162882113286465494257429214290534068533318021686243293398681070184114152771946606578728179636997337166067813554987056412847894983035041083285601360563644902563647577522577121664504060763829000529752078499034699623713949959132271999001675834159515664919469767955476525203834275228007925595556943206990697793083402406921115462365464024939503359294750978729358641496663361683803548679278614458216233455848808398523457002908937058264894184888345376690031139827993161886851353832816056106039121529908247797785216370938255631690757136414241022658066523996241790416137386786113980182473174848757540725154613488810962843439385488149810483346793507376411512899919592139117800457450476538518181629811385954810286180580140067025521630255474396652812750941776326649492817599183314167785597340251548635157436989195075782914500607239035886253408094248741167647787933855261214521091163332670014707405579033235368077141055158206196357390332520689191837760107633427427930342387460774121192494282175058826001793390135358740342422312740751886515405182027616614100399546038579577455718395199845161602579047659537343611351240908661625157095322112471383527309569471386581362653148778945096412374966127463733670262312110860332036196149568439979280822071255281350935887722934349882305169939166616192422640210147048648846913765690823089866123640376886272045455304717509230650363065510957767760361721237784120938833853709018497064386064065444909999581976656736463749674652424398004810445554998157018405599223155914872554235458048711566137435368093552356316556581152516364996236606216425916070515562026683514883641067047452783718172360378264749837576122104595366658308660765466759692766814694461604683978757551432558978676165409947671787991768582539147508798630127483319583549239476574332324366447919835429903735885778804715814721392291143571679501753885878421643315041594344333231714143622092503877778245093898266613395444656065427920542612512853566554131541669536953336386998812245159332163849435289160980652878124424216152039303433701902677327854513274835362938836738286302135607979473134969309764108286125411960974121576728875618444105450303134238555550646934066007273644542114990950269136348299345658924971246258849125360070566290336357347045638637097955914600022934336515461553838887236774990707879580874340260870976517124321219050938927373005267480514237651846495104065016674742568533353532075699472525892255171033148013282007372849439985258256677756216137620733297565358174757842607431616340120252432737057849393393026872492348476398489726708423272928557606878209551602747746731118572467578421311725158694972616719790600877404849822782242841386240440289680134934680812250088449252643769908220053232868369948987321495986955478659425805580382945870452374310504018552345903837655696262878600338572108748197441686378912657598740183199304950584942209494413140307240571834160557520556958940020797392439110581705053500498046474818437944584243965384368884745638407903900983498433541105017508935369108384847725701047797929385671338442635788492639348704480692806962700223922957696472587428416461913938842029982019531627734739594224339668836729058935292962646995589002955377616027811543951676005304027161679321168442015919692360935523951590425780492205395838713243655841379688169381605066817745599593861957091601637348408294136413308547175481459079388133125391274885867193056860135393547775698650792690701940475099006944627017371611740514919882330626389908808327992615758822646876271066405560489851781293695482593851308600561501594778353961386950958296917570834739487614752619605486361009602634525247376823094448466015662056364442225548161127944061625602619621389256989758545286365722497655374068772657568753660564625665701926178215397523131059942779409779778163494141063336305430083060904558684351344973723714003234346145557216860365156867872368091833980524251634671242829352871863530599984324297089696791498385028443143854796038900157382621075196884570717693220635995317809853056612593849579149789637634827984630631945569580119575840396662955330012859548039974109422896026223383162030018987092507912303925093446550277096930757293942131163581646711369797138733408670200378733088014361167713236828238626934500160930872696172083559057658584935613966525644772414943257518433285761257392598244009707183823959920966646703808603691945852658165098999725868850996578698967320999758102732008368277499634294931411355398861687444455880372189041838461712213369211796042161074116600882365143787272355819461486777711697101133512014633602447838712937744783635812830896476474173978670715944942276046965357440711896235742778066815837614821275566328238121734272319993494824928660037761664492646738029375696164241647774976389929946774356229424232456846292853356392564501481119551889442324851287112680250616527653764290890728987138905608734461418089661305074697777319829140653601843052776351417543382774287333000792024394673009909230608758103762642775067962435391986683961335870026474039062179853045243308359826418574070008067349778925540445318048450502489474807704140751137735179718957334986962810069527819532420849233064185327403442049147362014873358866934519601434888674003811920686973435414561785014622678805416558020888957262315875594445581198467291675122830629889890924474951693834573999485566929815973519559975820255904533857204126445127849983564735569625087150074771493690745669095528631263873731149706266344581306854711068263090894705882306461012132218285114012067174988930901268454599294707713957560031349165374457795428739292050929414917576686098397427878138222850647472554608529937935946594546780313836703847184444178061505449427481395156836193713977522526680709706799096601045004030590424384001408588967509532412211968855209497225393481180698553222272972177724601712022347198691059314189310922339635256356148570964995712738186700262811619094697122366306945944000831276497979027462101496087212138309420008868507867941414969668022680984136291268758989913370454118577243288980699868794348130388664964574664161029606963425807534590819289222112568838757611532197044788092043870069119248147597032181057418079328799172007462970909851083137906139407410125752719718390372108516686908149479549456128389914209419747000044588563919913219996591635495102188625944375825420890051025428720526685986482996055317931058197375097244536313985132392803351204270225618602365430602306568022142597613604583780950132794693798470596270044617997527990390499380074125518358411529854008522794140414093935910257663098574177075884255586663420851784259191288342012515993989416622656800223044508391240680206321641937106539033611814789275636675031992513239169192509817511085555244193516089139685549016291971085799895598547376377071793948187875524210093405402622104413397937892164619263752575749551127573243816381592167871971847376666398026872170207042983264941215582047196757961809034582404086159778148170787964624981273954856059348828843232758496492245927743560138702822085887939823379315116773481142651001928632293008021897135820872388246958379859394256721853972650239433443845548302018161473432242236058815810185481749649018846175351092190233970939451213756322899882830856490728317606595683914651158276415913035856709198141822078324944791515069819521775683375686124642244260504891937548488775041318126301196085959448153004997884753235404632477293706025539742416241102449695693425910935473236783481373039885729434819871408928685903848273991882094279919069637056970518027598442017770848733832193491419372646889624938224312358203543050743430510317353687654877841825417035684113480369252442826307295322672576328824434227962764179349770488434212421509421175393817890244399272574872466569210731866596216107831566350992926987460662231172031887888687109942596338842090899948474065091492446261159418698126824501220174093327573753909055704037394656576112297295268249690260647604512477822883157656491829296193968835571287343933178062221632331079436279519672472771430965655486397408612180695418942568718064324410907105203146583269964234804564394128497446667873919463980691162947996060771151647070979009209264320905961910513631079482900883772879939253948954926455021062949298438872415051457395788487987402398684874174095894152007857153737098956542378007930089883600715740267142611726799983334108891610573015702732622316665699219404210139615824527803662422074609119755251782988727519705386697713221241702094516424358796677006558492556705374527166298171058382024838248534548360296506502147026631083155499022817671578708805924582059762850027281107452111841417124003926718299705531595684876809850479535530041543364570828694616244291945792333074166832724695627218057576830263484950028836722821751273531191674386745184754774598367321655108459128978342739083007424762187644458253919811111147008851418139242341570912763189457289508420937297187017034392654771335043377009055720981471464736480696662361722047694542568004087830648896449805817711852493142437409099901458829025119680410677150149420356352993489362445293251530278450680128118300250053064730138052482235981987808568886002834544408896407619104909216773043100646532341258519292168651179734862371413819520781335136511868909494451848379772456028508766831283663418819584799103224854926002902953731158265506554849662862469854870711069041291882800858658948202485270756850524893670413131074144587340272638360357101946834226766075692007485455158629840630951474053578326388172068599380727552410739000580198527163580718995906787554126405952368457996230623655652573945858512564786498578019160576901614376785618123591081786281668492421701922345226800311489121804200312955736352714928308007559864807371930793930437718379617423793081805522782265559357994854853946769789537325224531850410411515749456046778914406761736239976152803997790432178704693437132347688468812427116492448493260161862014470329179150293123064647557920171210196650044736445971392750154063452646252663456249772914792344008354840076314373031134246943942837899904729994396828224935907143895569055992591681762268505712100719707842698153706403511609998663823757561029043795909685108805990534099293982374734256895274259373891146193282062187247782964895150317294551666511443288282787999965913298947139925570084826381719160643544297683129945477409057115915957249655087974784749751873712966538786322985868643888499381762769331192663342474776432047836158820845821855717686458739668381215672854371451861282021613198302579522630327501736718971887942917147179725366870685314184069969818733110746172011874268128511756116742205998217158169157170357952921016952750510124009822546068781281343438225531006713581986178395826679351762740239742256895220961532245839896752409843054337295351317071762578766701385874609359648160490153104240076456388173330715795331084962599827633622114466260666288452285179643691359457983661568383944835910833526046305060370569245930599847551674147351620477737509865744994545719757042946165940323082788650688589905796956411853170992723825916010778097669603954185197440355554430618271774937007421185049107852479492051218841291999901949222797417756674497241076505515556423677902128075518680387778359349085299229411307438770657687844356327476186306937375643061892982514229677357244459703007235049393116368538229462761413234813565223906811850006620278304261602295971915377980818530307723510221635355215574896972017823275160407128613155418944722564657365232149853223149521848759370791653452567006593697513485215863079931087195055825093298850098762069914031765985848406584605430788089466235324752378388357372844559257233245168448190341838632261360014304962873714951768512845005359411974693287227901959649340303735963959357982299372362767584564362708686661121265778896381833435190502510091383611307937821638642970018779081625511292388356823709493430038218074434132664123652978553853484648016051187632729228456321141651871658809260122256597538407318646052871486146427273474820239828714784134988589648219313575156254778399504279111653676245848618250869823556146645930307353964002754669042011214594643520817199211161356668012726944071802056326957676698684308637484096366577179197163538323223473793327742023484573245896565057169921610771106964782168058981084337154688221373508110181090022725121194551406507060620037236846942518235727454125739092180917098494120649292030051062155807584514513096994183337661182950702483955100368531729258638068027002793226225547282507535390057303939619287022634464282070019551983645812773198077554617104913702938808311971375305369503724566102734660185920940275364359435198442278555410600158583709439140898114519990356943033533365546640068019743601548977870214032301209734055874447084350080084240437512650428960159872247822093038637333293006012028193804900010837600386551866837973053675594983609631462352211743430849798527436734226856824887952436247331829033289331936349972875195988655060986539118220553816068102405535497253211805609655417627614903409961526988662474233581533341438262730499176095415858371167967965714828012038572202712281481663994782443877114395297993049153994105378928625695479334171347887135577134679684517271267491357554275740344502163374432441181370062171879401962624729309420581179045826809368895885287432234301103551008778077000721202233249667058469152489009135143831970216236773703231379262715108181202265035567099735250188137592507229199604698634101268162300299906409444744606248429947769884158543755980999090347532577167364518016573119941777641884887014486747553924449405706263129930847254218435692207676457197223797091084789234391139721519192921275151479127746271960439188350379764663343971290049216142585185174368387353946008071136454420459153866678191651701429287367629768655329760866863581098620070741112989920426967389512639599656863451103285640887957073276344776522604659719324991038000036849054192421795380737072059065189778671410201682660320733796060980410804088711773560638564804669997960708669800675547667262467789015152800256257522478100638213174412876431816610452632882524540969426196672274538536369027247114692310294307799531877495788497063166299161394026029739540266461740694549570205493939906373256357650792200560276780381347147985788990912802634068430390605975830517852763343031945109759883622391251645915651336706023317976170306136511123702335294227036645096052468484315123264388359697782871288864560060773676175751425723910549308574573705231246690444368536569535144648649215007453270234175852995277648706011885794012229597439520302230545672055248380570783324010237582841044674114049777052953430859160915592015691390368960932745265473205277208750752317508964350079952568268168293172414909788410868973408007426459191371853910121896541300779884749373047598158353466225701008515128640453871623785055558013732564669758055031899859442666451211249782362784437023173400523089261543122362115906144087966275964752275095790959542145302382665047773442125426703812082664797636759392188618369297159080153904780351916402734087124427443363914417586115168096620633283052436819357956777634230128413558699461743502356437367811365653016382064680082238250524878039209771316000011178429652641884544277903820555051690593798171106021926139122782108130644151545477912792104656465058679072518435929363725848885889580339911845326412397100482863384939974945987362052399459907087516892290432824454848250109651604265714897883471896944849303075033192063707480505763969282425542379809346166037929817048691150304386574190749003164305968533998334281919749130656554976013776308928683233649646396739301655313184249668926061731986526253629205492238782398851935522835627785233165885331749230378598965193065803859985552699117995082190305843908142611315728865993677008101942549705768645562569449642234855632762009339440250670706531030358566877075244666573615170597121953711920940943694386104239574858735895372547969884073959771155211413478100913818910556494620327088468080188921601373245871662708889940864116983559870975664617009305764971042163879252521143331373732386184076732129446804485092510702448751913856788264825839391648244156837988915514430130135331197397105827543755289594958020649415297025774166562809999700968871208830355024980071479979892959518224869213286003368318021653375080503815536245927303347448012930286558022374914011280234931834138437830427661177037776704619283308831181477647242809123522780500642776776144597337621830716966582136411574879592211091313971421385568088722012215911845455349880280114171023461492033635857210530546095852080204256907254089263487643827690389512212015913949076260903519853140502576163443522380140326747486038464639795526367161947548811027398473607247282915884795218697499418165406054406458012109677450204475969753767458893732514153819924716317068619226915444709757078097205854636254864108642401072569414016565004269836564865451136709348290629943715410466806294127977075756751034039544618963164947496845815469811667963634457482214786634624242036486360308559564590676623281031802824498096434223128948186041335649160926293676146807286577320750043183169618628218558094340847162040497081272573106375376625971325346634814803198220731923056245655573636586378026975462159505998048435315587482198003460312884943539691137532615630360522983179568979827988400283727323821551234064017908365713563120533726217419985034210055725246337274766121647162019249537946443867973036635911466312062402288388737418852871255098533213690650427661119536924427809118435268443187486600687778805780198543429482219536000371857859929186161502141745430215988029023695085727089304891542329674443125085343303592978211034660166191809677483334668127802294958000743819746398262605784474893590027459493718322474294032735822735778016746810569110530940474504438357709958786029339068697048967095239062533650631654606171679896517894985077785013132791797223327844640779568368827037052168438248829283362134195566985734654537192581805755260375123157035181621536653253789660775471994431510078261818408470388327871948573806611945292155094441370908050860439074483394904517476254970489761250498101867662846094058330920575188189981033658050823066970436077078130777567862034378160464191623079370832375586499930257940988196009318218106596307284538036333791268600733483393934756303923050574121530027323448803271806884379380539819522051414961903655614647814434823915240620309491821368883839757886666272126838286768980924008507453992276621845969449519786516109889626936752355467336490274813515538287702744614372970063551104349812271541529800502660872868023427735868014281804749837891220376538686812677510562862455916384496099216102699652731480581891232867293793423634605290197884023547855846076496475568089817572555271586649976915556797521398685931443211356628978726963660457107778355220379404313606618200100488412702660051517870731065430794722374736536562974445216884790421959749084685210252453923135616239999792753099737086749271182310890746377975339723375326507348745955415044235784923777847479131391734544190874079340809330227006688222054685932771671598764078005153490097822119654758815635197489056415405437104606780908709785278452661852081638447772867807898648345566443725939031044927795429918094320617995796754616127255049973447318104106088133529595674833434984139297331765117384349022305493484887077092110594483295809593378612934249933203070567225797604330954647316142615992342938101642147562149699324553489871950207728049048240405514605429214267871413226139319338527059747815750457978443367389803149245590884650524360794432719887264723667458458509590978711702776971380583662241399740637810612278505508278185515098784386828741059142982747226683599024418585210508951809255374105692276111723166672031417739206196606051564189614423006248312575977286650058295772292805779665074047537534632165847216075814748342254740736169131191544837113760659517920977892538089713512309949876085804940670388747789266994194684196009819154175394322174943195366476045162892501976414354432047252213471020434710910846783956021683752824666497748649110475723402796951812653391320088311121867170477472291379272714025190182305546916285272070930745480620671134689924115198634086728259064584008542474904829305350378479074845072574357449312078368317113809592103734580422437865359568776678998475901045050978357686861046448812561672678474602414026701521598954955248268396132342293668361535185506676790002878025501374227056843602564926066345324275419926111017588006602519623037610615496832767333422039544254844929417871518934578659640327218462281199491369755842548602226534149933567864893821719194251206758126345414462096174475021717917367635140952525639396032158703989571958138900461536949420989998697444548209724927709412108123914325565316098316479929430313575159431867559909922795376540464150520072271322685009631803966908020763363728008000657395295046747956068295420061023337469232725040942895384615790897850143238526179218907603781374341045459562598063980076575050597260665894772141156755745459403021064846675809407360708813070622946263345776213859178507787490229548260144141388311799317576953239542298872780346389478777333618408552752160998360492458568996887682853204712043664193562323042176655501485315097494456826501927340698749232072886701304506551137078727113058852687322182876510704271529534364252240365825188805938673851117739757723136986297012048174909310072265199569276723983293009714798354312892679136335248168226897686454124746002666234157270924139817959043592539638612251708884348713650975537524598731467191973693195962780020434309375099784184253370943073377319239644776485994001201639749368559472914778067351703248358672012515885514927626450776545411168103821039752102355136229787537708273022569493632216498691103534327556315680227581030420700447910042014434732611634508915843190204126755272324595740444937608013195300310476304528464443553376590638828366936918069168042903418361489243102166829021586549689771258547239457179607381908255536901744203279846953023877886217234371800365993865651913846549644815782583330243828107184122360640145436077089061489917209452104932266119892940250527199503413871966498764639951315924829068257553495098268866415078139889521928559002035745127584297255234326501631312853762035592125382873577149605779610954846641550798234691320471516328540707694618563514617378534656060516223094591154633565898071382437180528457212894177247446512598436252786081737188146864983479866500177866763580163348622981322673655094591109311394232046676231924633057133279538529910551140813699135736417588780517496708530892498097777908473954159639116305897982273040906767018922381296197054264141914177858421756575563583847765564845686764574318921732445564369435588307898351993815803300128286624670744129313148195437570071293292610709481511049057651922865800290715890646327523265954250588280222184508476711967294101350490608033996440869683742001947727901829369186370909606554979661832889334247574588424793581129227174308210292485187124973075227191808567329124749615981432111292003829260188685671667527353574363464028978016291367829291780307608071892488452655983497283431572022918071426005858783760155862821651115984319872120276175820585049307610555104608652978913165869402866917685848061382836199295027049276692840092372153858822255893401509843580236140732204706628740882216524490313173593907587947583486510201027890282240266341382381087999557440127047587609183257943749754876750826326230449283370906491486563075369091483788571533247108272390674891259198390392542349012694744372481935820222827574073856764289176282106720085794805038103605780367240797076714621004767626459153821377131751492560736583311244760432285766954444902036178078600817120285823762303171201911106035364736880332462730362172508673703936697876535778492012450489396109789506585186882531124127365823720793630553091186641588707266272864958638712372333421297273711613876066002397748059198847835607998883766854551272240867972944463927448482320350881478800503974686194851560217370008389628323148164693480497754964173421579505537382587183190287800604913756983208237300823984951416863454948008680487089684727357384709967724636134174985436581072792046984017493578574610417406281727247528965131803036341685719961896942490301156958597269454509230478173804318048723322289987338406224229645634185749890368701882204799932317032234031202250465196167329630112364337044460634916029835701379215691174259539994689015610335085633415107411432958298123628836413450833036484082834890108010504101810735510733474000110177217903944142343890461816775019748412731854109024249695256582106797827836620829650708644092773664441023678316714000666721556612970232265162925945348369060592209021253175958808800344526145843236300528681409873114136169009009579988969889878298709455468960010826114474773721182301467544918535878157065290955573608664741448605058708461003907574712974479464960157124813878925714261259969201728215093814339372578161217139379915646481315895465584588176277337673381707234908777955236029917941066707937395827178105370405302366604291131418000197577002571615441658749044689045301065507445142086667251326768897601137235981119567826030528652262787478420242675436766492928155728116618072243084562379498590685675068801055230127777707644543267873336238610561677881643824669511438163898235753297476234165167032971933650664475891390744115040187342096216986583223252556334646684505856804531349267133618053932479016923910748579540327850929038865559617930887439555681416381283985564087986633753491942214570169237200435351755984332222006236095071027861259522037503035545688245290232922545236823768635174242849491765617958505699284566526894918045209902503065968591546733760403549245887880222998527226717425000411205232683735309453980008454881960957108232174730115642105938087509071456016602861616976844983255560211961647281698341868395808022766985500850071185786152573106505578107625798404861879577623772413509772535790993847931024260750636614379956843027138570860746574233813239923006981846601227068280659869668855341576534735340311226914410181336955936547834401318729750721389197607532569642900142482147041264810526564934929057072871770919883850763116414957235343146025531292453397444275451938971307707351024411533594231855512406368178651881880047238552465144774624415365981645184643391033235333326405541390798267945025755192066121011193105714672141976528507518966763758183131631294779342537079625841450568205204993390465188887499711329647460673750953633250485016213971178090360197063787908834287192622350970006215910759026573942698465345789125545397059354813923920687304422126080810516343361917933347435220681924196704081345985725778604680964274525797900258576196177989672846833752176073542957462041920666992097493784478891905267914098222106133405825827686437265767617402853104084622939722387503131616755887281572634606007547499645321230543589317362467475926734375445377459539900660602393467154093208841603600898167983714300636834617513907382493627727636748360986454224253793140762216311176442153419371358213341797291518691617111258717997142024545051614923195553203904920561408390041702258663326526887913598911029322515191820922432867539063335376395817821877822258052134781459857777972911820631041546733353588442458626586922797674257122408051159216080665399418166156146818073322326612913986745972812811949004038019759573592742372959070494325094162565865277600288150412915406432542844296871735075273805258314530264577449277906260541653796017855512864303664916611166906881305530379776481152483344544345983821432479204204257967968387039254717885648589677006257432922964749508926487142250919447507079431721538181840776160088696582046195213231909717759823929130619336580616929634216113240959485005843499693848749019694643275983736308937162448056882807628268420814747305477474991861882154996638028522587633097809387362287738392527443181881055934970153570523974376021845759522930613738352420784254545333732690460649031521669363378365499026692532652454534543262179767288939152787191262690200239075751097111713367378095948276593964494820715660870570503903695175792551271483044987609610642869323201649913716470210679612271550723770837044919858836329385508549460823672535593311305090868387789258323035280629922923000328422337131445402528085780634934711582028767383761911554597304374439145740618614616283017218524133572091386840788787936718402216562232887740857983965844207748699642883079303581489053447574059885384051609698196393610581475801669997628514377433277520624018582197001177369384067300763692454879174176069806807288464147710146026640598337808202866701918011837148613951667050842692321440867547881474246322152396493108110925269299786636196194096985810616358352945085400560110221510000012614615340537253678662641601425672263539494670331311019266732464504262766542617712953032493279255564580867905854569299912613094272426038772899296351290876180078123563966674346699187663103839552473518778851469044433600647691561108178730224026112932477320789816757486410998845333864046013956828128482235037495790274609790913699729508942537305718770502019967243818660156461663570271697375117491495147663651864514932266867219762588062967084072919850828165962774020926081132226343208230041184998245264294593139296043279149550543914561155838382716422678762276906714592299658640382379957584328179080140553090943030020919509537112156851718769996214096064908002681137664284701959682773062494707330955694200134553452327170852551859605489616731861419608536529848498476069084639380504616207560101773038414393989686622479031874370067382975547461826011427266569355601662253965177467380562346083006182924526970882866433419204558795896035637510783195625938491321596350620964001736766571425171179386561305838686386871215975293531814928643635841234001566788065956027866716466906376750786848979847483410261004994211181182587392707590763262165370443333564537915652783943944454193774314666568800249481919926518843029826244689791611643265074635214577961749550562231296235272967872572289327255908506969205555083242043772560415579049074906916045919968430637345412957455147277280031544047852392527070688782897044298313765676004372028460051175718707016578631829183139345630683189555293613550733056109525772434852437588521484247073010921839202996991138541352629212103531522293137434628605870810603195969141943452978625564940766354060843718243600438646136926009900625224953099276049529083109432947756208945229264597133275561308113749457713537054640262228654954225141334000794192284402813120637166638145676270785111729925937785821026834182327214310902314417013526287325805718712868323242968401323638926944805235118752204340125104856141405643910403478278819841592697432494827047988544704077018220153999244348827549313413252767100400690081068368027142233885272730228147066005922313462809635475522840186195898223204309193796006026932295099364757103823455604490183662970563284153046432558103956031842605624817407413885588578843083947700517756007372447548736281181638459223563738493529318821226778462706296061350875786628578446956793575196700376755662038425541724016209230146603801045679270336649978878084849466321454157394225995014029376203242674212093509953576920038783985598643036264029988513711604461680839502054144992185160055709934792115014306593679018504846523776412408347688622422373158304352159244230904752540314503365756947204182372940887724835391812106973001316011845189340232334335905524262831061117774847359431920517204158743152364983397036228269102052162451208882838678131145014629361367812960762851393704942938271258263212688269620129962673595212144125869516005015730323782989380158534752636717059598938512848916228940267549856997643344848552393115415918613144245197566925991117699821249744916976840851271465685051559349482532526339580965274684683917821005326716756908693125908666556880609413689069128438040016120029205025872838902665919279501152456775858698611459247246879198709740120954206435578896000008446715294941159315127532065043316452916037487199952612670491099478780391822806914822876423739052168887063857282620219125087188849094893215865410660941559841876688942049791425515571548889438918256503592397284587600298260758142544746078148671204609595863863058488291745546366445666818662936031060772092014304627995942262692473502506850256663974083762018825888971667306994838058357579712072110515851988245562262622174464562356527890325856922767580855690109549148947618244230746408633713382602484119955540227080393687513591114145490270614171019165025850068130729114720586770623679141433579995956446163019684402696654834700809006179743117597169725124356309923945913730735904300841522129612941202764006705601557003625519369131453664945620690570994319753620726579730168960098421411577371386705878841360359393135893243965864017483100816094919216778460107859149167937551836690520169997981686461657438802167475693384865551398582824113699141974016594437246336635766206239185085958439296616541202760823812988232295060503579109314947610012972695479406658798556882248818265877991773571346397171726597577795797347930806357267521366808857337849772587495522200872634250015358044135358547664931734419556083778781865392259040403559571534848900240554029536470877021573883089149531516571091835388533739382622782581674082752632036559500782335795327138174817268520904510327985169872378674377601840951581034899106723143420686022588792084761543033813291648230165387267685063187380727306939024379186247973528122578616046525119544721878995413169194824342603248040879327448773120066913537426929252789833454362685193619777478725517486234474501676236560774557995937817140798549492407923195651464316348781155671362987794939185796813355473947955432426327881046242228596379647272084203429839790022006714620307281320395440311423467230394994373106813833801926990011448278629936316856485892527477865259070828788056230232032440416296438423270799885438298600077539474131316601155565225413916883096807159841100371717563866669680042941552822746759281610317366722969700350757589448287020689693527283153147759287098565613531033592705250518794442004996581581033186819216949292963090658132997272887371188553206978805700082064977673711515242237969766025584614979030145954062770998468151525676732057443987818409185439356649547880346433915553351908715399226758634774814441404193772513979769233265696493692526567352868983516010258442787732093538725635034447197113188915160817094643996258661853049092172564979825656440211384331167560920630236832771643515981885987628609945184473691227858946181077259630823449093179292949486423203750417015910666545107799766887954443567093054903964346522445009809567253455645624368758321137769288236150623885387010089013461059002182552539671430091699323331529539470508545181245230432444981512079331274474195088245127715012680309958717759639821206036600914160630606659811821400648234432210616556815564158411637003775940185723369033159074030694345949239058643280495739468808336985685197367210298431092355342418316760352949080251738412629921293752159357280360898970251300584685179630481457955869758854874154783046141855313835403799559857072125380368774656393373010079118358462163989520427653941427153650982914544240526571997058254598979971897793343046865582262032829524837697159335248964469798381072686681587532196217215393044057874986636115147971148644703342971737199570144266953762867930557392516257226895985138415343264779227236877046904344596316954751858888443214238956474829330871005017013831762052847283237047589760705566317458574695373333278643720024529720755693346173097308963121973207873505053895876256960698535479803108084644772907100207083447954264727754382438470560114711886254048948706645125677106419926220380198890524685544238028522186586701104696870779171210181008538314887463641965653838796960592058632588309814914141968811657769138486678710233425973591353002780563066994677329810070274476437908964129834496050670606956319468397774411396408469994167885493530148998714258446168370014729492417090181919029901115854189762191293807763882716414161935727561187293407625635299220781983959856114802648278366680183820428737899008100272168690455179018252713917676679412754171647163311283786474818644827799611836175928891889108114280315281892108683647088493670501148161733439015362344178226345510194852254883671263305431199105175777348297161029451348819894624510662224932003628377708380232486016583153773633518892100108925977428214057566907199204144821079179208238292986274196763246830935173281289800424035252113104694015434396444992818621329651670534950904040572816684069184171120301990480526149559994343569331309078972313641357230229462615852947811041216180326993422881234201525274960050588097805954076009358951686021103009591188419361529437835148247705725748759903560758093412086094481042638570890571539473957846823422262153632386692783306524842114407698281163422389057035911557910941665273892359751297601883703023291002677951145935402750244599580220330715390458178991142342517059550340492402125944721117156323988114272449033934592086612668019073275817191937139162412467844560564088378756329587415716223337794768913947730504896398776142748687913958471418123090547670210203214507417965844731120926703797497058523615666655650828827406008789721758906084073300374367440996817097712283280916867555210678511387859475334012058282598890164348911677968801963923896012483102842946529913046985939834092735370925328468191834051110180758218833481855354514982192913774926265675003316097929772851153986965012145831738609340785988362356439561302494414864399158791772150590814244385563151830528579448419618815737180200679209610641021889034827060215488770097506787494288429235182975044826572376095607512932363964103300357237144537928842315444398905484930304620738977938131780072440312024307303454553704701976900404899452851662181860397321266586199403337377723317575158463980771676887608447144085760035186340633995871268148897926687791331211554928365006373582069210594109665088042831005728879390749288718050870639442422501147087999378655631261919393487041267790512550849598403049080604895329017702647584731179871630897246313731475595890390710032096915583773535521852930741667399123983643825329565696323583839865929828716859175195484650076873123649994388685708526436202325338179294131280146284770365336124689622551999297731701638019342924925474301415446093800654086602916303356707861187208656525760980761830486728262152878761719034703607489893359343938327014108810856611296661829503350822630585458113920953043320405641698677627013437687217547898780360121417069705898000904531670755808753251422172648263262952812956460037895988636253340522345431461584168956528046149191136587435459228347083646709749621564707868437645879764247651285082019902922674730625356111303621104141418418710870500790302743518450369328592016150844388065360578245665959988589384289872205863099961523111561948867353802970188397921186148837659795582923128433669372034948139760148374326904824050523293055058538748499018528637023012590482715293542104947048217639128411622743923157083908094229107473780477424122259183712544130029886142512820844301231514952860120278323393714757748883228130849550597243689480698766760465874637264498543933883306472077953311424620765066857593816315655440749931542007136115952210448748081340284202441244046372024780449938767596846030901803979026132840322169133799116296685644498435091839765078557561859333139512607447879612394034266874256893844645306115083030457628832191682037989668094159674898693255999106964635376968665770448650407064255792424174281884041436854327662715380938602628127637079174635344313188522907673915436876542961288674577343349855258660871116882884843512656450058635511502791536034636845312792232888349348066322828950370137199578400501995219725691194629671591490895526817238085250470337584875402974394281678644456273487600044817640111898352291249487704908854576675096117077919098853250223159846790630985260011433508083245586042215821292919618835048481492267111189737590038644117016591401644806155726866732592675729595749312262459638735880030484845019735474098269751850488928552783686613061044800783789966454264984039829877155703226340415011936290675867390599901703203854728654365042572900292518931996987506193186150940402621887875499759641074747945321155513709568423517853523596011465538583912498244539504473462746367959262122622371769532636272985564764133344825116330626325520156772660002871969185393648839075440945027655361094065308818206982142825435992259563084332985532817494316085058001344614085628852278873122476104804262787963723995214743603375755335860776566262817823026331669627154024118495726348743339473440516921019028575980841297589794756655858935649727652735956643262692807788558982505412743740953721145734272034754375758899475141139469828009362625351662403927462878387744757842548198927775443487682029604933970762166822436793789315299279315270640446652840101289412745357835370918990740514212080601049958334140520872883918341489736280010813153084456002261851504123477037860776405708902182446963299979151619503277821403976765925834192090125269425676898523921057563070527528636015009974131926413085485128235179659948352312250133218560786322442184748247779655920997217341825154926431180977609966561150872898339424416180983192727675100179033767000067359876499566175267862491710806846580360509728455070277486578267854393356209775924494277971686793125989807513177184653993842709507453301186167494878444187157340878816508200899511478929378949732454946270850772625670752406959108464026144846073028980342634601901840679449708431067189814269959698506639441612959065176049624921288932567755517138354654730760661949254572017084594164852346899857073585339591523022488078039201739029170468406458956342137823798695858843728698254428061627546680318883379029905391052573213384244757391381918790443263587865250486769127413227046065511617016647648912063206776097189207750972386174705895777556589242531375508845182370398354707583581154169166212909335647153190641420305111433233041733162828272142220370095943072013052271635279040204053127571089063083580518525863046004508605962166434068047070864838013296332588803528517007312958627020931910525143585582025243687242416158624114648029789480929676014623990361106185634808756662037280320432563519681814320156034802653284108683218027861392132187384882579737676942512573450632483084446425484738543916443071781575421278403798280278478613204136466636237943123837051447256053139075840728765310408387900213910161786250711855829967835148495365594300721567972142045090265736736905598611523603636045520918362174588996997349317458782604083243958320969669183767543041106096611458484157368074008054834269244699697387237608103618892316473416683066613067620018668256078509003203883141045776758059126912220166417797971244448611932951547446977354705531765287353287663985366762801086270165369715097761337618963901761606374146631352998117186258326151933072145699756907351564796592970671522461325274034127382286367427659030391818010548350601858421549079003869346710762671070286326846785402598189854794142473682595882066675772314179891951617433655543930575188366898727196046096427120968054346357275855976502966819371948225139932109747259291566088327959638351300617517564097194309739540673125619335380286312554350072464180424025942465825597924212756056287549269008755160446697910901405158786307389568933617272139007475018553889947779713051979414345760821766323704697889278393547426531192311052988213759945462080840345027877019973273237033197483206693790533231857854908952712237110366615540975439043001991253864351511543702139357027392286639180606528769202332650197714928883846943187009649797802516246546393053849840305911367887125796893117854502950148140313733549079723638490746954796434963468898720794291167992519810172361782418004585372434808464201534301069224271522064907836968910255340004625820426745495354339089599043922078112396831893802257496903067427234826124622312609322985898769910813953836027361685240209420743369398035729436044531204040570915105349440077215360517343112212199791573756521340116553608898164630673198837219424593017493864741770491468090815780245385620568869180138678197346806809299421302833015658475963444178990798633328989192841584273821640039922226874279227413996717114183795153146749290490121212899466681431119645784828947028911506477127622495270779678310019627447713045898569725709234375800402069282257711025835893275774031887451070880873341339934148129400983070359723600164709310808594509287496290613767863042003708626323421022257136674624072777826089923925244363964128819688505843589827459308657202074657819894513607840837390196103342085928983633871000251057477349687990297823382638532367155695197290195523442311256721522818776738502186594079607494373880159439531518915036662656629733065366384421750279259084752211624108132192500093960340159666964780856179507478900628144971801620311687354349424860566684364532644806778073026821996859997496719434192383629990086271758924417877704752132908799528616596714989452468535116606935330692432623542111814823474593910246879664077321523504122435575559466059230342508871543601667002050007916569883680515972503458684694523557386137996004379591574296925383579767830131408210715190899383949251087682168945493930839540168780473356041101540489068746805611411166888714529501050903420977165874211309938775601379864490685104285960844087796700097760130288328415835594786008559292809623027372351459187399181314357556663190082473797860927479910762682452528847976670622963411319670281892489535106130630664054937654846822054816456635237011359379468858637363102674177649441225879099015968219681236187916421431092694235442738853083133379067749266872690110027739170670831578769700035535493322852520080877056162283674633712492046754664684765083610601785820288915891503563342251969891962293418329429257205838269989837085237038690814446637748543323245936848437663638478344266762645270333349212338670951242004605763845448933812521295128742557932554269929357718903858574765856964586378295317898309936044526839347082759305195085400354852510777935718056027309894910229182677984245886305445722020899842294520965506206527095814718074892934050317428624649659309386801639796821364924750380554144484011334169989952808429041656229524885391099972587178683577475244405954084725181272594752359670913884254593968415643482634646928707376588914601298404660050432909840230879245935115734571662580917999406165863893662089973328179584064223184223185856607242988683131173541110960454762722399498878225383610034453863873560624955528794257933285572458164895589762328200477571127762864854496228942645669940911119705385397824888088469503956476265901177976145056568020470821355424515358357166485618123270518086568521596832595627293501699124894414684297182026500737012261163658030582456022023447401753769371727562926926893598682076744658282415508241307453382182755356098838424838242298099887869578900352099640331844565506706369899223975953294123081272388988745653861734995647377251272055889887991971846074351930169336869659010153979385275650442915645205707422131655436276557173982907948489929808597752171474539957641860355680518056719110335372189381877084252289220901811760035374168688784168419863535966353098506545947314535805630243142736479371317965583006398871462499412718809028331085227043433062921971055559935092148606139850580890196245360080992108366686438525367361948155026927384412307251720648728352604386068871488148269762397557300553178988960413852874424872513420045223642706119258534398984722397851982421023507708115356943336338036247814646597169310073704378856750257943222412959546071823365921551089069206912830907387963782656821940902331915733413967786927780307386364410619647688126198221778535137233965536346726504837011664878256998562334674939651529369333166894794888999502701939249647909683303189001429494561914565005901702749094221525238421186342699689096403704316659461161756589069922509054430042968688963787770786160988650744946604365906580747910531594745077027575815837348346874830886294907650176664625066086041876929246431228891232813884813869421986762330340234815340470746035567675608683772857225513343544280235914650446471138018258278649356005626113917477731757730282706779456095190635589942412392963301404332087861566023580233790085885655879430714717852524750170705003290894740517286270670056036277653691633187693976338102091070801669026031514926183423260104154772292549911216866474156633179660337997488277159093825777147712623041047948465264114794632397059252535815485653895372507059448598621320177141446776863649768212998545315400691408524911038476395509405695831316864213818880660698122717841122363698534716493038509589965543178670687125454175870171066180375224923533318856472955696590457007943083381876067138000950602347345227515145420382070264141150660836882531310381888055640783287331920710173057400891290215388860287841743270896613510175468045980947424947799081939135070428345207550347886729997063269544998868412013422721485099375216301453813871989388017045850632341281368255784056863081690459365201934423016329230839388246037872164849942553605995119682707095009151010628639536641544429949225049115815241473101419232098154050754938771798504710512810046992063442565964974213255113602025993889380511034977403246581757417024144968772444112292559630825007993285597762033552744272190932961778950556538670844464829562154189652982505186904579232742987951823827297096289881909332760280907816809468897418052834101954366550104903823940374178062912757462700567371898415323373237878429160971270114073184932456690549184878921141078425044634656889743245764873154290709223486298093267016573872974697689308358396990475292998600671786986644134709966566226719691004388085006041069438304886893059840498291415381840810484693670701160452917692004094872647565586858247172722723724251552922520979930306003599451806350941646501815886907936791717008946088276098273864793692098905598944155070383043721011577538544253247142078518496970052313114511728577176229643346667217506116557366643124689381648444389933282313235098991954689789237258481626491635407630234741134918142137361912362711602105554635208898993993034530262421435077601181282630289029939592272434112590678222578366344865009297312843121591106605410778357925098032074570134073488867376992301839793608750924242590908640399475939588996599449908696987363094831278771563628980519733542163709601456785580604954416290601762929852820094090158002733053171303523615392640119451127058934684025509608661688303847452251085877871416117445400326942431412164035724566078453138855778134941237470340518230271179220581826479644082567490256111990059452932715197524641486975855284048501476965785768465135725749738034103213404444325908983031119322303738691416264790078206721979114695087078243617989833575444980289402209517373357488877831117927474458591295926770699024398253693468451437685910794731817060906075118716295528303752466398908377044002796163241287068838273818442753984426675951580729448159746252109708567348732748735549047251921575051339206159651171676673858479704871848434542068985729999983346683609979049598155123430035530014893198379608025953025371347379574059918525442890795400600558645313597316077303480035755725564260124811259077739124947247010778418946862114385026951516530434480353501263988880485275577193831041539309588515391716450713969889655999778163841454737075760034934354323823982916762383189519285435404799696813952232907428810315260443601496904607390170174570234865547052412278351491068193439004049917432573407283066404074060334371658462739095033241750094704283452164301870114608983524918312095123961321689880157163465288679986242327311808423124785799761913923895391414297274848165905966738112796189256172747549790613666906862576075899309656057990833151022575891496147965621639018718602722097662467217558825931975643920727216024859845699598328175492150269629723343958080700628080491829794088655927241705249499209959260344196382958003643452315532876758809239877557786803923465599437069910568475320923905581501909729186521717816961598042835029809865273076327640839941170781331995284729823209328350346948215007366355492605407790642090891844039566145994297279971423244883676395818912656294235225544794199485213029436803317127048162594030874611724322135427942982549927251102965031292344092799289170657164085713317188094819073296663152147590321627337257458858239855543294434620424784830322859370031541947731758329597207592111461178504405734394812945515707626719515004737090365864852031150281409756621932179263203556412109226450094934266748333816648099414088685677665273128377232185270077351772671105795540118213322522942147746730863099758912445323893560691625275376999917169600700097189761934269317007270044140985238777957118148580856239594141474091923272929840749586168868701338114873506760860491296390594331170714389119452600696276977343607034910441108358797403213110075828498899610174928813016154369974363823427891358901604963802684659849873203676607706981211421779548525492301496758256655080260624018448484453807022105863811415216790206448188860179799398344645455801775082214792193954272546518274724044658587552092118892931534667130537622026769023792559449351317103944187664528745233996996572848589370974128110861014341414810786075560776703102261338920345789386601056393921469067163535177431162349180023440036690037553294388999642633889318130560628656237780464844924587230698989773220551053408110820624227185541499348741285264719296852181049512124163864120982768285729557202224865751660669248919502421520339963683043128048797241771733208991735589423259337370947121110045878441249264614274431307902304359566411397343193159980465036228267415446733179690965774763744224025998077529570028686863360362345519460788376708928883435648628734682286289470294897653148660272634991111429005771522696684480690336110072504008079243337741075730038863536827276500848235552609469546589631172648113322044035118522820345287908121753545495848178103182538059885209389668616252068191439921185264638242846106645627336771870625028862337178714083696024126549022439117644175157211451007031855081140767841572211901879823868866869030695794987556148288856821137512657763640025639068805754223780543712059822478690544268257353760719246555352892773334761735954790287725893474253597522522043414407424569336776701772454918121101001355514635458387821288528304493524671140634928685994730840822081573266642142867982770562484548654078225454876548044816799137096838047445408863467167181047705164901832481615670351289514632539054236404208453340824699660353613276674209920614521756627360231803375736621269667670980411650629425499043227619998743471492529661434046002167620000080225599632774406603855497946077766148670549686829210894122896775083464845053127385516641743097148890529808264269599656239144603000266828644262396061539580421143314056548189206598853566801773259470834803908638910328691220126825733941091558410378071805308997449388698066078831700702593144992699198442521671154136076597593721516428010935737941418001266164576079916634993624570956772499423610580752659907137135063870304769498772200851128605434593019039080535245443519526454295508921970018635778665725881346029204555536935766112715174518809674754374480152694530372059080187195703194344300347333780751580448663002539349632914382988109629994063047185078962397750399030367787692666530297069424039111585180269015767157084349342466907110361293438115392800118601804093419761793440976698246605905739034908124325131764397349246485713858516156823404314701200622766347281129957759142257097286285858636625877498149904553939408195380996804729438685969424172842064998562239056672936096166656016662097684559301598518027254109724188441881316494487992997242034843304550280938102470908965027855879306173992699060251965132244505988089727907384569376964110385586176396186629931462928284491458027299179844801483032708980911881153393469587512841886540560576830073986061108786886564849270414666839709197387396002189482956505766764426512414224738132287597025775867036102905262115094630821127964337119347362186248408250465417390932615998241322809365738770721460543120288835563619549855774475390258372613137280921604767500452460984000119174666634246772505126929349007807770158411141427006328444153848217500182518136892171799838186870196947305286758252246250201223226180671091590816186081091950880678832991693055451863377929080305967434787943892150323185945924371630216408464045076524852167890312946124441012717429243084018921226460801324230478170892749554939646623967688135630523322396393961261410058950745437004708910124493358208136193195962060773927967673623067680025846928147656342569751053822821886659290470682329047304868863030066987766593971394229803744782805504786143905721385749342684014653154973680333897512777538459740472160540461486297057188875813680683944668834182357641740978112039761670987646080449449006685028513839788897376881931238680113172411175074567100264830300923674591591743909226429494218090563784017364848628690424580820233613324520670761874818431780016608798927953613692355392533995688272936500649466684819949160029105803083679009045113491786149981353954910805290465567118882789089331033028414968510737421621920220104439915888790131723610643086218322939209157262370233969226016785882682740389408070120333300659659382141010459284215997208410463526062737781491407123071468040012909751538543692363500590255283014670542386457085278348434382916360755824713944491727281033966916100841782368342580744564026014727437464068169837131958450609282333135440677835322759121145435048137162538940195560976763356885977799218081381041730672602516754474428842968655450503569242462165118565506032651840721233727095028635659616870810601422530786336385514669235253799448282615931474012189773668389649916207699341888745891544588767876685011653747696453833437530476720846238138860740373716626748660838408371836227017439663014115558778326716242891009694448068089099816055067729687934685288610005925683480614142206957784157630440311647969850480215530192157070129760850955096665043524429163708506726900425632980970201807636378741956089622852436879236973555231871383624856709902655215394724836372028324142385942134055939686291068971769871615536407223208182944096429225724355155396818202809884768762161753667605409886386571582312039026689586762406776643974005429798457763653192063662693698445174329085493331750584036887064164535957998433424123261192429426845828756590912507420274093903187196837518051380415134281823600362844526399157005670304221450857904782131379199245285787904782514127630474291367956331664044273759841222185598614666846195171223985568602875788583792177240055740668433829474036692848342572776983478580991562481834723111140134369740932567569863508973478874352849927893269289919445947717844660821086987908792521887696247854288880292458586704943005817664921825337661716019242560392620497550801481421304130529243304261828933211967516274284218139103951302256721765529301604730516083841118572528440973093501614453510488375516640742332591603062370092151875617773806280751075176501042836882365640898328498349894010754556767954171531459836148839879244365904876417470913431019637636525936497662400708948878105630539714516048739995291295325189460422423423047588577303676124529852939340319235823188570593168319805436669728130553135074781720220445026888030492683189281702319970248973658135308554870507558810766842241071833374620244765261151394874355594250797991360768768222070191274113515113678281841712597555423996983271333514895938200504479219553940689585261982950246222860963555197908460706934031364007013186341725452576330997772696777457459289711697894515320445497624203112585948303145807191809467239076542755318838699545625029919477446907455497737454421164079995953077907244762231011813400494367757792507096750327815084806775684529040733740226056067849722092268041173176234725227357086898224625956327564274804264194460167851745925149112878809674802728694853314061236800712066848416312863303244966579576783455759920604596198836878586307693238279928421915491363000455834590797865115526501272130720179815679285635066481114363435347356414122071535296633988978155220788315194933950397879138832069690484607096861303447347726083951440644457284876818105711124060348841922928900409854680775607507764375080743124655813832960113042591911462680466856008350607590877877564232049207267829484266418624541012746156082067157856218583500611584313561745017358726469101720817664799058876636920847824193043399017732581462706820706407750809576639194382444587294299932094819769012974600577669385422185953024961746342454697692778592711482616068855660720634387674603012377900436318674565534063255224599936868085046357779305874386246417762911491110076790429869607212683172880578654480857919571292933521512360721826654240782700585900682811958055881291644873769262315614670331496880025672230271281401808330573340189190701531291285678917972115881546419137720049607434274404259136857342316489366606231360942296000684598202942457428964968242243977229890986068536843388871980534769511585995926386898592164374346637458123124246894712318103456903191079482218709588299515636536066494840171254014270168206388888110791300944263597765361958266417866086804763715953178521886405894341061713600954660262538192218122722495790205741412990012051953974394960739163866263906826908512655511527465055493795903293337439298341539272946208998655009306269274384557404976511341535684197413693862847041640894377746340240169432227742586243435861182457031707510899623767675783856187850589974239900950474366323873207205622327551340999584324330898119726936631350139850872189646518397913879692671244454747917032148634333919095346795162727187732296352954181089381566299555592778475209134310723657131824530666538137433526882970155116248514979322258886684297919417636107730230635002686742088452978533483576093446654369510803780990374506399359430086243022228758362039535774489154197660833965409616810002172079750877865373735783390587613121373736690189515798728601575657597505062455798976375998430939585697457887521103987799214403066507255790075935737923375602111768659504999128230258334657780913899327047416162776050890719594509999660029968788133624079228592970068979691423131018336250992885883761082042861949162608980713682404560592276656954325826843295697069806224288221825091837458783039352287070963167184319199612192092778759509445719610733659440134829577850379581760751240198959609691455518769334454785262347636663055753431422988024534913016518645185500053341788299572575411836622021589469869128282078330197428218543279282550590027090400781588586885760034482397531349732078368156316025595067475616836962131980072304486763334513440015844118797061911763166086678585897650675598053022870916645275771745856417459017603929761846483921667601055358284372255384635499335978586138335840633572139565157176242392457113184322124713657513947439387159452336101214421435922155717455589813915956731740790409238308295466034490150582701870890125167286018154679443188097293415335732311259236336145755588385682134256122314014774380913087630745887424192650319531054103666426876070736238614343810067502055473599790188757041542960766335179957294488295944763271355213249838071580618300397921405061386668199933504240468750873531739819044447807712456995851889076970664940351279071881639977084630505372674646800664120131595138756893597122845951903919904210363135115048658295471217120969542067067738428591640224667436496170074443673577774916449569367027031416842818044172341340398191997165371796152071024165041721213389902848874849146541410468710740470454372730588802498252362086114809292788257234657535623782825880739280764933612154089932585826731190985348184485450467424691552963771532183677247598210731064067744285633193200030363401153081006482528829943360446932654066470510678175928997051816046387957494036528082215210464405977195008569642271102857995469233074397045867423016846927035565347565248323105072177801215602425729330718331264064271715242693436712572831717543563387537485996064173630708319361775959612868073254754973026350554200169934386177179662574570575415987289501734099916883170613867104116362992234832102650540569126030410505327645102455431423602448509613205764876459402551633362633593031233579007888425859991072247732703066093928429025215469508160373996510040124522950828351076993218313307769188193967422089346565010900235326006197425805115755507851615096430468344612832271725778656302433235865981750666046752924284415744747612055319801920999831079670964381386294106629523163905838301463563982119935646019888028273181722170973675949939040039339687483780725308553721665779490143614936687511286485916011576651136108949721500630130740862409335149928523914518115876095483906131908190447337874267674182682119896257985266893018400370484080183100593929315520260786511964128029250943491160388455765386588521307459886078130624071360390334270887611879157471917545135799296996128009519743955436570070458526317837295760675129921805124344497169159639588338098874291568198893117601617391583250803167064949987571618041979487287860471033064069812363849223625551840078195605221653268819191745935294652205470235452930536097423811031609167923291737801779734032080130337993982391683685393704581407276758240295012681298561200534749757277607778204010906220058143969609873437326420885559112326378282495065890901465517105582495291767777368279953397697766105887660640258385280009091154665316742228440175588135828856852047936528053930977078394460089940859127194494833134812725623117888301020830986394206114969447918472561081050714961891133254792932726645717427617071947493768827073415780892659893057001258242024383293961185358499772873339928306545797793587443076483638115886032836399572478101521742467887045447138227196833879499916455808972749684263339817553429380077024463271568317525135839336249832142348134969579424535985840192718013768456650601141150089331929661449524314457603514298122138406944077091059534106965160240302523771030068292810602275977589091179634115693375154830384980428238473758749082290405053053135315948538655473874011639986312249648014556369753825926344133653496042242758260330069313350427855845419255685118089798396428536252377696950946911040718666854570443133708531106167395444753294560369392702640922248515586456526412358476508630901931613747632781878438677633713689925741972312748051477881963646363889966733061235114871730628233115583583551867412286438041274735854766679237015557439424231530749238383380322608224860812082832180406009059131506218606744841497812748347679679954142695925647920089856196820483276078459241423781641679905948195346783675911284625743964112227336422756630435426801102865343122054711471926106609879852795952109517828864537139401777860621920205335119071275889828144991925439855830703147105908058176424559767190528701424576525270894031118499646202536602171834985454936820831689356890022625822226415240962728870604758072470287432246273655424619134175597567234289094620366039330826824589842405949593628962962719245641108358445357193209407054138596292734908175298287682664166514683829980523911697085089221988445039838552377484893404516544829655130162867049158552934575380992152943675645835265476654479173900007081923037933849350314840243288905863529280406994522216928419471267312692147869549000578863203583035862411534372531769425013120101051604278291805799560169523695473023614844297714696912158345978713772262222635648092589259903676099864666822153874854822559733572231082431513078336296636007862699296375304159612472300576441320854821361695787631598939186858116614630822552766896168881618516286996527172434544899075196055191679245533612272907042317430840766648927697425279680521686597391409801511386457298771780953190598152969323015791270186167370973535570734774261846714168745982436712229631323736492023212189185606646345058510553017190163319944047695282414622424025735970675996465610469604992081885477772272087898578152701923388695951550840104010107111725658417838166775981897132815357232961962324021316370250796137175457736054317586921289224531650100015075561007632842625184911561192393352547591129670216641164770599968699666264619194862578823571998789069024848274270025468447631796902853032194684360755603130906720726830725425965513400060031925812431872702353521541585264229589592180389374058371640241683024365966809789002644023134017022038876894897900770176046921159555183522964221007150067821928174930797363071308080965018782841376660535096173995698849449637690950535431453313805050847781134798669630991037682447424210666292325863906498526380105421668252235151721871682581846682371842585669377902520345720238951852944665968642138941152182595165598455604124614463925871323843456884557678093520030575324787127600387806782651561056479421679169499038466885656832156664662672728194449971427980271016411538839001978957684345619641161642936185657077510064596694877016802194956879059681387045146836467917697920832836204070176698608352595159727358250314635122835089816940323368649628429679179051422797717840072497862078620397753929683359996259573742964289817324544120066145739721906974944386559760312070006451540576025754383382949384866979899663732484300236010462132027569001756587132884802715568552946265836914071912031068629237372003187688520624711818855020614126121923064107089669717343779500939659902841814056057308206149060656787324781414068367216911198913904244632580509188805232792701053403497343222703671671246715198694938451777214346536194593858350287887296207344423005321449459982203847817774838958754033447678678922531139128294735583152734426876223680061341802148276874712707655427001513952228363362038863015960505599881816417429762884029595723353961186356050214253499249794392259957773377446375041032517693625155224696223371478125428844479540409494822854612065371595123707009310875850173732233728814174400104141750260462349443451890871512935775683595848679459354825189995051896821082285500056971090109826526951572175376529547686914294130757155329274704731324013008347031019454878909921370644221514102398595532381810470787268828919634137063572824509111395446018175984723416629550992402842754926151334158272311705837276201604244098183025001252906948346048970151882002779538838933495263317609044377096953991778840494078223758175923516049467743582743633383582713339099218159428693554942462761135194912324946790575073429209646492001745051888061033130855624619255273581402426566160578965862135243027394679428677633296005144285418344568226347459378113706880240765015600329287161068253582788283594975351976009936525427739838364865031464059353274038289573844448945382273879511888017885195869497240040759655104525494005647518026531120514811091386524051895929863084923109549002829505845549392594585359199690061683911188981822081356108063713090124581937839308545955750899487947883976056686517352389518677080600676421002502634477940964751932590175582897057282744563644651691854697544594019673941490183447454769443083150066480700308865597398034627209132416009599758102667691917373537076144296761535906088453063445504440822212547851353632739410054994524391709053212884520785170409976350678139813628968682909366299301156440917853272030975708266774701408668958971112499078620699752154647251045804054844651653201652768998001370282324300708149250437613110430834466039331348724362724921328630087156362564011554307090538223400657992266456149138989627518919912432186137407557891803453590772481487312709082591568504890930080085429957148630182740791100687444398300742839147654367958860565303631988637525908031160133280583368860186533297618845642401100972360069866071566522884331077474083174567963033523170416288867610165366492459889236312100131035491956919577734761117144472705950375267340647992382442488486566316820524703551635069060437709359046977978412724870936476839822459342737272126866010821278689319005104416701501914742953607743605064493475501476215551190281452433658289109380487838227105285234888324294442943581535516103932866317464975428040972163405774103162767052755636116757997024599952954620171300475034111935586494312290813325565822450225807751276693706726881243554025747595389745323464831257810523854508930893204470025894384049556088373731120778286542700417111109040836575995937099252766316976212222028181433548109646304662937249481954784802161326185806321145279265569276637483944617998766243261318093488044157828633364012918699116688050167837873625471605622987463613747734361452546283340562921940997394150981565964771230322051251569212305458088554941538968424797457562882456240823363415957790301304123227489849811415842863147488508394206555324292972141777481101797795406485875782676758645688083566402425406579283990610759183127052462944549841860600791041499430906036166857346713375001881497834510447022701997617567218068508464835169454685388354610541524981001718410801703861068722654117737704406373468171778338104821664508684885218601679146359575381262821158009411439330137258500233552269890721312674671631296783907451430753994123933651355622465765384736426786976505064127638001865166603577093639459271382725649495039232053227787317264968245034863407081009009414220411797077710722665834015249944478205055328205443619370103578851341536958755341372433530736108569808379837268768627213267568289380433029870467536991364539583267074416686153053480064413038137505655267179563751184522843550536160986691460511306728024050103995046255325536100630650010888762568201064930826527890071743240431414229465489994480865157993582225224418649786063597659118965380197650510497430419805928991947819867879255947284666966778663794144803404778540428537520623034035350342235492067291576911674943729517308880400447705360391985101803241848815060313883736884574596134269413695066726747896913636462430350708865672970616582807430418904208528200616471940965696381455160228483695850420420502969502952370463026891726301389997143186020684419040274896931725974319511840946685986770265556155591738250055254944921245034393054614296333284511526377820534436573575637837273003925946263515963556013460185909296016249770542284319147001120984252941010415455415156905708487694523761474172720858683290397763235412851829675342483319633741256397585588141530330988948898316453548925777017009811432272168590172985620932557503944923474640747037762013574954575519295685352336300036245805374763768586344603163113983032475500600390075993027285484012900708909215147152297339511759354616831458723163061228673642784045995106976187886442340075441201404708010096627393703503954315134189424304916603022165339056900587590677228796659974879063776804242350510388259750266803356840226715580829278829561533938241546738183587458742524450142471591747655192875132958351295975178679604136253573684086376246838219421624620386544244692789538146668966826700237130540316179152917543108223275578994440297977848554539336257612842443445668542286632295887064464002768070295846282388767070005364334254677213089267291303641303905829813215404174810415344317230819277745991380829617578290417354573384139109622517768078626743477160242597584750000193550978141600113870644635389856698117129423462586248216257288845639022841565273498501470239924205681229785238486306619567259321015040645865815838952937314424265509754990953419656496469053928280178524201880356431396652132098194206816758034670444301397723689941038626353372985048139278689632143968058030846598497616634578970863652283956604923134677281535889285108209044689489063551181483269108358910889730312786441549559986643890374059214454547386721951212328151544570787306240807672678319353931782764287364801375387541512739547663733650835969179037913298153531314426078638904841086747704693813858254474888887857396759060313358930468714178395683302727165764537995018333807490098447296601601975657450971348637300134264029699803610840142810288684338612217440662548767804484077092040342310373341494672970600491081011216660372029197884489385227086624821714295569367265358781566105740218543062251844864258515292319267929024223141090084213298023301619985414821030019058550770178394338287904714094440389262263522739014880173462605122844830726354052736960317693811937554862097056351481369465587527631754707841195950468800668829328917952518754923505061708487250254929059170825145674246456144053900217335220678264895901662773156709283080051302467104411925558212945985800732704876335532892581254981270957685503023722262582913635041361054212915527064804152134018763849683975357880107193453301605597649942656872332234088588535925665457144999759995712248003016909007994045838175012957876504063467878374734311984448337250267094460622394072718594851906387014425060811062325002012447435709300603711293435151948208117698851984892847574579657208402856513989588549744827696974241533897558546593850383241073783529339562319653667632727249610225717075756514940913424196637729235745482141301372606037554573183504508220030547558882258270744785002839492323919478259094512354788573911256864431577892333301525047350806429251873978022773186716963898487171402967022936882845844958192901138728610861599886713812848799011153769960666747574019323241454974074580300441613388474057575924834242783964279555399305376918142262799715132188487936911834857305496774704701217598959706513919481259472712304550911352901233091448667289626841269087917707334421038661756033729511433348698667058271688354337498461334477405974947591455548000807093983117139150204826765940000521393177021318202165620961386793237716677570059187438090310620493839426615747763066515184474960540383832871202742117121987157185064120844344800741938985434696330757630382886336969706529139365407558124404157336432901083660188267152214787173222903645425443443092412343290203889722623291100531988123499576971277265152435992217704848818671253496627995605487688691934201629014097352132716258873124694843384029497874123705017505760996935233936843191306759822992168181824501838691863245981857667282346603270883902063735226606392018841774389553798501252846241980368708354604067478089475835542591800881576806443819944200025743154596564114827632754520085214866869820987117999887103997831784323877948890611033420353278644539802629350816790525947276505591825964452364333111204389486288415980316211238300624640655252238004171646682133595333937541211753768504849059119581726200230833426349080180571291910813030509494245904252443793470520476827719430550645037364071907269034142707891146064604660460287024067226984844155335164050213135411204379515864886315895343004613937559981898290085218138794261119603262492584580578343351521357118716124997238187792923155410431415788909590764334092552544710597209773530112293158607666534688572319235980156237778866560858839940192883817165673245029159921439233156719147037936740854576874315542880451753062279866696984747421952165531469502793666426221205715443136188065545915947847413419082432779080657721347879932819794740827100419322894159377292791667576428019571657956939901275956618303956368321993223167710540945728511682345730241817573945909790061637422667627656295284232164547032704401553297855114486925340890432686004316417356401004596191543550582127631632049263686852190463002390858309361320212862252261830614984009969012249424099274910200998066801033126823260292429638649940457409549204182628452781793675774253782533836641586989820456498898988243759872891876768798658682994465100530457202798705899422108680696590967005704189722990917327050088493482481843254234185418186746340171146511182933764183185014052398498909428348231145293323643490386652823178376164969783746191390317976626142142583235298226231512616695641885627342719039526252019713099306684295477792525401643960520511382656585671133768896742543854419192847082015444068263494281110107634267247531073600281589639679504591031784890491720378435811533329143040049822983954691326735440656326687679686418417799888869467899452140159131387794829936715261534328157401092467447278324780208875343967256228977184197029627734955646409165059085909633845921160729639954771473211122669583469497303969445354180539101056738343418497573431965290050470287138250523498208054965041584823080723764132209798237918321553390798056138638706262819306553202686539443451663235250500409330160946830266690381936958435567050523241744432158252374231919349818031952994823100940127593968593765628890816481463857341481842612056071790390221594007741175930800763018002648922277537150291721547174463983949254790088285011056154247278703260331741048926488015360955387697423689891524508690357276166216339168695304952974327418331783837653221618795431200256447093113237927813935530104726170645355793459685304642443266116073958362006310607841747806082534672079414448503270650565872965179263706011753604880456359262215344719133727676950618864498019023795419784619599793003667669692986116157634356286476235577495494150088317712443512091627308852680628176568937223625801233803963252054433010391518621198988908323158921185901873189849120474694531274653061137084660150136270389829849004893212741733946048970279572996994794572063508350763111828734101315269527997578106280500778175482690849042965687493811482735663683300790723805365565169268652300406793431637260152507943011300549019355747810143948056662999874811707774525833877796965605859461820097350950561505781028612076762158531412548381770021349301008423517889325007437277409889609745945133788553153059204332132205212718263086047093558178031577469265918369779029316242048907914446527068759522823614067191102520268284947062459634856715314787305258031344830650419425664469252889630684668349384521694632277476614323476994542609398466212300961220833074756264892240951558919621063411724020351637268558194999235754230187676474000917603769930441205507465842476053045817104946046724339963618179585406097816766451262070141469581901826722699952279923634435993499566888768359679828578672267255999190731679474190423876638456367998318557925403317982404867695510111208875419068275685342730961544716704069266244448670138333669685017325809599162626363252251888087008713148075532205623236433670274223488880402965603636147185671234647426233241523469667482529265805912310211864085915776706109573481820002164424075265049344565014465238379495369687587241098690103189013180085671574167547792485362724464247098427959118202530857768082370098590540389698589303616496002586254731121781180489705431915239635752725512691798974551328516413889502133080685724388243817123427180180731783999713123799587394214169614064704168386007850151280766980400210808197989705359614668858762137146870129830595799987359995087065490732959915521146725942927229585216284993862499082660112351199788329096267090404529855065251739742373227393655146224168186551569324340916363362934778417943890427205568775625340019259162180406465721868949750973538579755091813054846472945323654395263648959097895491827431164359021849287569112661486064508478633013172455975778382697934177601211608770585859564092833955616973913813565604133257393237775472978190786329797690638991616114827193614864363024370416905649839917576460961391209459766869224708142454461407690473229374179448780032661794263946801715045361370551175970710308448458184254651657102468105680265238649596769753427074969680117570385685642961062926670376560904675335140615433794815736013923513221460612690567901665395433454506156127252375131678248751113248882876177042681462664693069463169493347685800194952096354659954051265022757345779836863187795087903358961257901709802807026305925783097775377625542350929678329614634775567223997406739988977845612437681294766458029945068278844742326254505484489583250978981378258627194441402481803869354973593231103785415767373780493467280428195323929802183262313417775283227586623206587104981700694057401992919712039948760686516756103055596608380285049613091796532905481387652443943836329108726193905256946614914641579221596906816906746147699609554877363159923433568490624943498632485715174123055718476603107474015444420881587495386696254810473265077199384579003859571082233537095483117284693962951637924930260271314862771196788711418146168859713512725235677920335838433652297762647206550100684032102193772000725680823750978153865426812698943436413485517997120673299705373141773450973995036521880000443991194230179192575460871114346551141522029136605397962856552000979322180925044851232460861133569746221377218916174907145715754021648227933050755624843611126517600378285957624709164799882341318417730721990101705749217535092437193070309047944595816038455626423607034762919979588231604383306867682667090760430638880579546034872039561806983279553269793922598638335066141722828870624665970358090931080450079358939767709547907306302050889848823700605765354331734055093551725792445466583877507169122089953290878262889321030775697409736004222813219208095549793691448491646578597762258855583163783941721379663275860935253373928272240859598515624198441159904128759987307862011777253378114052715753422035064157162026086168187677887383187402902782868503748562775821719866180980422568741319178140405093754310138452859008004529319062783846793386062302113431189286307633289972095076807505142425413112562723113903540730783781012814434321597953761462654100085332834837358334400042071142442351424791479630416653844458111170756671393823685855925906043719780007349814980203055085458103806401752833193916354213059483115117530196033520332298268035378939146537845087957806680940790851052021027473070182560730172097547676768833726667860433964758335463951666085904858382257280091195483120113795822609444427701213182186625008661007135117402391659683308661984266312249780755885064132202446919552826869292111712850402827120408067051240214401368034529550365760546067016832839568252230195570738111809179123945241450762322827091784165996725055003242558479892283995744617703401752048732900165546248076904741392366184021551646183236227744817567725617655270950804608168497772140949511804564893956790223746692939816922325836101977891721114273460666209679493464072704467841590153929438016622239757669919449449061833609185808712843208932945628059398223561487309790142945988475851155926150237063762423978775591470365383932234667527464578810635745449750009260645484049860385160756845491182817353905408062999867960351570250296962516730063482590390622629836676428506509421009858936185079156387166813700688067125750475375671477246214597233164905210075131167473539891236884442451987588453114409957306111595772164154960454526930584527651771466995073066075110970208624718586218092233327068682703133685032558526228888194400683029323442625045486831221493754104443220454238462045481246841383949129915205337141751602047260707318605961830344602715219871167272667524870080932488332896707849492904303736102093363548096009496224854233189653764848182763260677567711473375516566979777929250828837682926269363579793037179741087894926408185852535016996790083354543436283649441899334931314554179098598867905325615353718163005951740092624680048853738310584323292802169063538943178077852579595454172155057493762399283777418263031886478679355246922650532198262077323014372574643777362182210120234468262733247380247028094727231293752859663393759494290305378713098188894339678300687177652510210781559364437208873820753611500401757927148379752296668687310613062927861628930416415620236114194700797096712597083034549728706017738579603954249345459577693321883644535722215515491690027617726653358045885405729857191371374165868739157512720689079565901887428624663628762986241076705607554758304673053018564028396047143474594960150539860739877192012838966075206821020695224473382245730897775855595833677134235304161022397769348747111553741519342342036452455819349431140478009003330407395525234131349146041249843705649332493302564274641078813731308409595417188744311192661400330026574980823955301947041964064086725422411981334330299738522939104155376902768610717031379680685998311774458642468421243976930689338575869743404655453517041836740999441031567571153648254433812380143694266435822178196767969024293613202542308756532365211347291165825690035803819055626620664243471527157910721655158715160919322736519716926023850780678904018869731029391809720970916424978567426536647619868459506210589443480865445808647991615212600345835849371840145992357712598560049618093059011562527212646305599171967686450108399200950433993460137416722669789851099963598782131585992866328072531370616013313807244889573245307165549283918483310874901865906054158283329963762246508470789502600426474828396921556457603790312058100263441495675442319652055453464847883789928604352726150391825263150158838158340497365615433183628926543018585677076276498173415666356732833543259651636373448150086694357719179922326720814150493296728069081375700360958761068362242880562557268850487517341443344688571295742438630327082936105155698490309225590718057801985415437238537457723935633585733435231430338081274959791061492016397730073958370174894278048193516490340984506307885761829765181105676464385357533991692486667602912482796859332397301304755088064793982384281538533174497327572200574970063206522557789347164307246878493687762578009341406190851810716521302094214731388481816140442745110471442898474282162993512468344109149154127304809309950055613065224659840731591873060848788056974172058171544977199862628304012354551733642593856494986891557291190856215076200843660817740390885513178287227417983211501251498475770492816648618311415860909999227205140193709235286669536158568272958381841627916262054400915068559082721381483872106061108006913817934169716617046967338517031857398266770167102601352357226736118132178641774434386289645891864098582251168316502150687790754831119002585787951741157397549572599506793319789720619639584235832557149132639475535440770508548349377227185744716251725947331536541318791143903831827033194277376770768243782753927950299729376464025952557249638416378308494584337712599198979906583092948998345725259175023272886967050490033617851640080889711437094336542063926138461783297242055818979917717893643429203379072479742355511461778655024705444901281050492521076952043728631701138304406838078376309736254908007133755859468986072832580680110014012063228242036708026457392384875642443036004752726840439816195224034928518127872046334576170380584543383001822970325079067392272478172755944809784858819182716199394147261748788981211380392330111836645030440120670715397256079239130655855983797207814617905247464963731778483940037533740203784568212263428475338479614728386964917353661036819865285986946591535321043148412629457309439402601046100431404900635573860916439182760654795175962325113684802574776968559097273807504600033075703710194121594646384991235470464099755005593909253804189507669796766777468821360227794984417263691633118460684175832219698833456945269162239922728930224013685953582832576669126132321084767368305161537409340080768978280848507940379532581037898408994461158347187723607845487129317417904422901527434891370562427905912187029816724271884975312877541540383491130739484373603346751313864613745179866333970858935560736357159130359199950279065184490655935394546147939060569489203662939621405063769918203800402732877194335824652304233739300018336294539497497942131748478594294926013669971347551843759349307246756026559156479913539037024547500569629427062977166920858986195158324209901435086578452153707714269155099656268425888291818402091647376559176058637896009951047950976170671223208474636732055999902708335541844865296597596916002537362952381269100216507702253157079743155819219334222364124496725323620545134571317717567474727121366078578364985521596364519419590820369579759190925068719434513447423744722509018484727508825650721130705038602095616215935403336338931946197826867768917915115211635091712376486634354204322872445376291863257198187732432913827718270403192216288567218362969799471551513724732631577229740239775666415684436092284625256771180509043471707383782493065554273194209016037348849068138093024521191443381222552928018119437258606367040229050473994648213839420081365964094795104865560132329712713621687843974871401143463389936969221842120264730162850748666522231155032804524129173654159010075464505227493151908614565283268180911250721279814890822605962169581908470812038763148034950205358151035828098548532454027899160205579275549159250603262248438095343108825786441266789776728386537179784107141252682398975437317726066164741805890857343369082576370318226434956070006538986046579958767245225327014114610131202229900997711380378974850892147585008145862435101412598063966664841407099259462768476146463359828644856030055767904119448632898841205092498583013825699505917234531028224621463238229010924162297945528180563030515207314751617292616953199077450601171110586764979211332800407277953843113333154490476724213759124308845864476601373119859178704457898710712418974938259819885303478782124874975907693632697934493459453161063914385114579134521964693824864877865177053286176913745267426887334480443677510612187210946936924637824117497612055983123578018103380224667830463412358781078556223485869052726023030370834632944191396669942938676300332662290674908416079085632803831467201891716128362377822484311341166171695408586046603170487503426160305674863460223247230959947043384563302009396390545293833462451339503838344814985639650408319539580451543302475924804849339364979045337360905278665393726909943043308366086697268705361699507895795344790713383609925049555058386279967329159966857489801812720249956111457529341154884847311524243919682513459710813576717209673489557249712409865632957633258575326259324531959226121012985175052478489705985497453335779646595070484937883713410183489590650585285438866706608463456432653130058092780999658917956067064921653459062530879580355868572966162497671168791925969632584806663001895759517605300930780016421049282349828837552970476671330852751281451836161413994672781984179547735781594915663407667827192179581716402031617769797527270484419653974481079768827664033997180846166789617810777439675375766775235323186850627171419404207011191235938678792237297721457842596767027589854574829464873945839647365333929106322501966480078215415732853014189739870500592678860142340930613015851418078056128074254371220980408750777584400893791240464544165441845669638976190396119863754619492832949873149114327459759504149331509061200641300281674050469622526276847290950702276917502866788639506604224628656083094015117244265423331713085163575527716551767422962783578138478365206273276947205211063155599162971651599207653163358618053016126716202331926912944650691520398826031594676956576125443914536245811758616819020043936593486847680464492919381661157010842600269776287018788930740329090016159045283500625336365415664540320557029943574041801531718932495235120702507439664566949968625330044676452160504709547474435313704656609510006594160713288032814733336594018812812679542173414872267393626125687030648253991947859336252040553622205259140636956309865701770369707306108336146368565469607931418320339371187101093092752525136113778087849254364229145116172045410060990190055612614353176412643869281187904783393061695981196819026089611221586541130469247195330006659574811564840853599109976697517186462355025009850390139435659388728672807907670398426043384280082686700406590451823638309461888553245384173156541682595111138627942304909340140086366422698108588684510543484913943294717330841034263683771384735227255573928020128833998930708835524724430012433589144368314919944380773604285507766629402060050163427983644462248732768194149378130164783669600422899520713533613923768701799635733995576504622812052135922624962013550950050911103220466966516024465403505072729377350366003213954030707913008956223526547468812407445441977900461569821482549594432670445818322146547921867943349529650323246284977332221583013288695748154777666018325427374352628740282221898660532749675771921996495020006386780379803327365170203279515842975137940487859282384646165981266533174630989219105707587222076465954980349102307702298745423841446386431863675235903016181108017760704938257437348716387538751120384969953093688283576676870134924008996449858735621122028885772962086286812174704015668861306535173284004403455677114936458096836607998161451230268987248843715018580203582791001625696030784386191809102294146861563230491531350873987976830808737287610530375631546297435112495239410887490344537571265429106075391009283361992433596898949322074092196551576372835469446172516010625492645701576778486457096527497026182674808903782577765339680269811931756019241793770478849696978684919891400188261172947717255921057892354675022990045257513476743151511305322689480003928738368472138740387179778031471384676686637133337785814179089069357081297769898357497434115380202050151206724743830994785635545017162742673390888148912815301380065758409354074572141187097296265937528158676324475757684841122243595062818590875352347488406405637711625729812119553471471661572499987157287974447727912068278444158247295214131954444234974538911596627795889593962499056125230149433245890014480147469600752903269876692536418751133671035049451600472723741393999095806977529168735814297277516855303919283781405656320526420481058443976583806566340153556365209748495563952055802384844394706224340498506093378164313275477303613635251820438886892977656670530943172525286676767777849753735543802840642043135442004955764652308231510584245421314661451030084069209134465099915519376770174833822578488236549173487086570077702009077853886900402393846301246614747731702326012209604709107317396600674306377096488178124790509574689761537893992831562152135197064879297848923344156381207325058626513324400762967328543233810400128227169867992387127835717989878177068236733526098482752027024024414185915273513324023289635298839361166357931327038855640993248837068602269231140923531042426321768189473466962529954707985590488505540263214340500165684769528862296116571814055620910113616118988270368527098756550515953604481248917409768041861876221985927358608835890885972015883176277495635469203640401170541786866564343788785492845538326493928127911089620348859179018731592953139635944266433598523809320941629611643867569712050760562576237930920459206202506798529926880180152021479120967171927031077828472410378148051698366995194251171544390938744273007219791644831805430805689768151828140249531152735084933691865000351432692185454353552204248034007764090806637959861050814834155282961294969774630364379869408188120034473047853982011801432229908128723403073386952465030054765522146779113159229983610641986276731862980191174337953991986091003057863888530946418300153636977006965328169146781076476771267563552125325631517142368489931848433816281328484703995246984784509686149541698967846417056739811637542620434537168520162103838356843516252743198880841237293615846621406877675956556470182945534502608243888401286237289792555405522161947507874536576033934908091312109470071297110080931718722462739489846884556188134580258315194433146876621150045815486160553601065790488372507316763332873080508564450041712097655080745648530618088312996947854256236494653391984590171650452225612842080470112302320162811148473478728259251619385912639478097880959266301473106657554457252122290394441272688172592512462270930798220357452488701714590713257282041553693285198209852713801017782886471526818933604079913206209304016592635193536560069755588597132462713068380064535526615937828451451740621050372342988777466348380185482812048686766372207674825569284383670877432187024004560268340168096469823064906914654542785387832336307754017331912969733293967280026844786192130755236603616767695290661732695850285884955353172097756778130441893896369306939324179029281954508113543104684221734771270211963803484912986281799923962558782072002959297287082004111502699964790138895081072097646703496283081123223490138202149294411151035823787190304274626378685178094563636338703933537631569642439386984084874486307938292130765546354032133518016434195081753238369879732063032423150183338442808864195092871702331848409018485455014285074781593776535315477410559722228983097955442208191359730261241183348761514191582192215797302888082167750164579787436567404749995998716689794422934340022514090902272575745083394431923614795951466811412018989580490423106463223724620937377484635886160311404013576008735198386138923713833137053434679368353985903479190018964159639068063122760310773205808760075382990681754678541124488433277761370411185499646517528151746804072380476551375078733121915150240124523876081973044133284786560958791591289160433838371858525255235371490775675836307308845432564816253039602111534460882258997215867504667988267528430852952169254445942342036167101986425742432698533499325865386700994735603780041030486046999227766022268683784455367368449315918810211716256963994157855004672272042526166150039066106129749936881304931209705837910673144397794557781975610386487520170558040754921103619654619827636330302525882231270905310182614563460680057587240928689158582988898699076933552136258635600786876862853982753267876845203684975922635385114307396944028598965538910243746102531311380015046748574765592916773399499173992276349470800721462661429835969712219302580739702044047458475767568064609123343693669907936617552718258471280967946978613311042480392554397407402137956902068597084108426923149859537269536240400947912721283627705166719940060007464657543313700500699967148017247392471587973517473638319867514914722806920283693338030072575888652250750526558854670618527373931384346315652886699232838971847751390546763971938421278424118222490570500929193531220457393083376674715463486660840415083748146668992213914517168588968436605796136897039832557058443623885465611522903884665780827742098300202586297248002114684654292211844436200108834960405404813616952457853225313306692255523254246928516350771098851653689495561441537383757111384676413012194120498623267299793683490181758841599673836895216771020733955433856960014553416209989601494618128607322268252345048630801029333936069279834602332372427188693463521502313765946584963005168643621920076297327084716355274695163405862093825926367920247031085486500093645171896827837673384244835319903410500230537790991457693034170705213662187314170578134815436053381286320745127377448853651709217113941100238781942766882698490276940059700782986627982981815174666588226996400485989217904768916421855834480487789071461469931076885767979486172336492488270560078469628535841039157449310042740761055476410207866164732714310635222748937464826187917946055410853326923232733180696267747946601039165319924678400016163307567512561290069582318788000013146537051973486099253679630944422458467473758105039889324617137274813621086474174843051837680248210080580291925938177854473510196314226066140116439415897122908025985358915661868358793641977078890014915791362298656473996769551619419151760709875031626798483917549600989740662233482837581352361343322541746167347640461567269331917974512661861032064430811979957554504041154196161263047813591355438648861409727644366186525564895054743458812693573906029876127071927266610688892539367534841232546983760910332626764704352114626186855190654272677321496783513121330555974618324754776757940743523220238547978437737659236749551600970692996284638570848481342590047118792719771742927119496448560584781265896679375411662611128842027146645578137668749422741165072796455180276577481017019604944978356097335019064027622857201536060149095897736407786605236646132571752925882077224817649079049030176424877981739800627422061054452014777441389454898867131730604935038767280636696633981353125367102409777293682549468890465257967213543723116740211604270746007424299000478951371628922396247745792583843839985257535442232335448748631960953984905393977690019884970941129429884371750061872163615680720702195729809326255580063461471151223233223031005989446313770063254196796753821348206050159846848455224236780575849546314534460601468241662007049003957453527822801723630871565219608767380225010903692132553807645567695235407436058935986946971206170620930688482115484441562489502670782963478057789126811605833859577456389373309525337706053234417207604727730977977188583090782055177400594461047779972737957525823881136642505130286721831722255754639590392061447897430884839805701356772962255951632752958314633909446257507744348882103407438232414223491216852439307522401447708497100557584154563376926592743985529114127157169555598851717498037764695313733580828974138438714867641419459181001386757462300895220667688402183291097016250010964661281896255311158952258892214244952387935246989680287350240795989676599971312469610233327918042903801295863106726542183179705043326059184783424125950018713276809512598296557536141952793036263195930259356396309767170947381956645935471233581965870067920447756584474544339627558290288875482020427212821560241925587724256350054435652068538086504028219192924048447706234502973526163135981729496302585855042607370513973397020652732473267825256113368764457636120206728739836132526007414369584894053727903713236070094986829990415511956531234228011624541349647215901365157303374543627024530962921213281601756771753991276331791359216621878681721930975806292037031161576024654321929597751164522785391623644834252539884986516125117328866670162643762904522476317653425244457942431649872594656356055331750218196321503262413871555185081962031991231617024883669694805353355702781423279768116396940129963022759814119272462102635688488182799932461510134469854563234887269049018511483375661638320219087351523124957530092629975024204190406268893477773826007383642531826853971680877285662477355981406576405396552699618307099248545087357595908071007782213577615103453860574339851697335773445366265983082783988084438961291360700346738500458698791448726707004397926839836842491178898472615653756046555953159951260801218379012751862496124969189047596184547349875275972138293810379706484803460152228084413817918123953929074640598585325868989903876357419578427190383895309735553848528486817564099931384053368700404922280391150420877234762902597742059661771972089155016703018088137509459437952962443921087580177388163208369343210920033844431431588548526372275558423094671025193756747668152813119941519660047628111539694809181685671359011183033872145417449169273043253338875633079330226163225928623057354224158915280308716689384890614676530442494634528422971393755048631437565786836767287077038208029878254898596720861455349601457928186904624636002786528460363530735132710276982566668870851489084974017687331103737733655435695140276760817962129479294934401606306077030066725359045716226631754353477305289810065757038477104198742650362135481187132335282405640259279925296290170347272781305638873355589597076012208721527108367010449344759416063404523779650946637697292935193679283719726255488310978928442319179727279996963131844683318989234648160001382316503482895184494990553769471877643735782637344807445689662901417864942486732585002566039823053701208086599111836059112453776250533215786880697980275490103512935337214822003556596716273614056736435462354554095888270978459115841521626483250999293042068909028651064186740498588441611499787502253283575930675388810559124253066981631580081301545838673599933395520402954734591102361274245899414740173154143396235585295221572030973498674690266171896765675213044975781848021102252211772789145720919375222771521662807663732338444526787727995614801710694961524495778760174681463317956182886851627156216368317314175172000290526485489246676944791461332080621566342319271666658310280224977060076198126284627716100803301276859679397187790791612062243786272001546072457193835446992529640212927800873574116686380777617290917745170899094917965137146334412750221914248276171171805321659544178616170957293996447294591899059979377077698719762670624973675913883431364709765331776536455387200201816520603188570190171619063426263630635176534003851664671730076259180975074580047618369468813769358311474570973186508767629000815975042833486180077618408834582649314234388045276710889168751555605334173627253589963872722361186693426935414335116837950022313743685185891652879539742669228072813961164893205936995097556351743182576007167329857496696220128383861165012211093383929225563272007463889921979322558920331389074754407215592196245386778760573901541643386184542982451165105670607381425982747823019110576404140784026081712222872826961915872615955224664497896717064123657372060443261502503226655627620549346810575615909981474198072210138755121076747828545333642557771332484314357477358177184983010005041691626568314882108311750976868389151957844955425391444541802518995039120193473364356872589231907542462648784285636422503242249750353755927357948225038129338272816613997388495827655357423856793754611770359194356879286572588631684962838232834809845761935289224202177185031003198477992583510380057502491289082953837435414267075445807582072141664884424921601448655059715520633753559494703390540805199664372727276337933756124056962990264464171095610281055312535454134521304124440161608096806941238441621009047163220245125798488105105914352491070006299417887525275210527687763974675217204019210884062159722991340494379057895938293156958321705355181828120546925704773200277489967439352971908729461247215395893332473251616564638935522588300662193338990306765738546791798856333613665617598870129803252169831456095838297274842168786441427008396565047430354319940503672543876080169584954515553522884629471480537660746063169179909934436114648880182841409237399948720674068229662718953499589943674316563335472582742270734538777897988558207766604149853309254871881149204543125294000265781081637174834371188995708801837323443435012917274549345565985472154599934537907011656173854454706694006088268078198413628695493891574854238561378576376364581959325408323007590299871885244659222419183938278314348166477573026567731934957838750346294342517140466977369390653447400490468452839775270729990809026501396947179105431159987915996119284565124685712615055490693079611333890573643452363738891132452184271194142912968917373192438267862500219594663797853962918494150063655583829799030644230302867421850408518473115125865134519667656506045458849023920355123576735492101736934984881422621911898889567119105290485082671964318344061906961701406797556363657555297461308764858735563007079076695442530838753976025649990219801009850594200738108369124454350370777636243952896588304165305560087792496287544890535355563008040151511814821395761344069657959790392898800141984511773039387524601668736114059977494284757871374154073111116701806818142087306469315091909077864673787433396686621827588926767638689788436255387286303512704656071650914695720916932423068723354522312862637837150264196261002026827283763027367916304099444928294475721327526917408223486095323023985491966040872375590463420393056922731199732646776170310880514838853545712779178387766333709743870672122739011602637070815200301268835569176501454411820427699594983163315868849446132008453477712677137688868620128223324355005252110462262701419501638465785515630178331898701085302233068608049319792550343196485762156044920911060586107604541029464447410713564118546224795163504329286714584210054729899254977171579864174424728792652925624053614285345903589974745288521748946357518948849719164244426704965962167298758484328958984041790524273141039476564798105230521925932157642447767755549303683970000501320005051060193819464369158271708879107276077224241751743384941039312715514330562306793689611880570311842066918410654030362704336222921826542555908409463055866915099785391449188555865802649947350592340590383505980760408533628667939831592938931631352380196047342364822974808000784999645701723344603122582569595546811093091234664024301569874638360482604131149399357088669931868319105143921292957350993882395200045237740518184265736209272078174975722374511218632916729570073428787267081152106370808141209705736135542830368233741089565268599376260058378945308239192585761464357774542113694111488822315988072689195223260759382167855296237626083671563211017000029772823000530448552638683395286246523529074682168678942316672889187561928473203993375476931636497119878474532456782716126111224367269478638910164200152342137951714452835642049731653141208200036386811720983900780261691883864384027399760666799254913509106482298067418273765987232583800641101385870562978828280334773095395069483222554450336052193090923277893314545181066314783217296017539424227669318688837341411326040119251723002477561203536656669356294408021230232277602664859345670689827664698533705112222185314279760287165854418604905424387880068917089197105615902060955620449435381779622655855876241646285988582508659267394529893989554882294121129709690602594900325106480983439321614755831414527900911475271307219988362176356205291355032101251140860611492514655445020485870270022762518930136118868564107395115013780419992100389690195335108193443264522906524304119319180693153894781769288004532964084241503921191153962982139645870039234885458036263614897846796669121474104849533820176065633298207970825794148385411387057032518095018987939308887549225935711432977681984942760073759457216111519074751084124982548390315400066676789591845006488871958497983063333280866093421999995377319759030643700502057181694960338986991832186383368869866188834701357258393469988846885849267846942169499671470008808655877335640801136283686634823720496525606032831222727201520669514676706333410947870477167890925009092426632220090265945039144384269130808346806559050300285753415694971583704477883365693108328279560415209608119498134946186959797270007585092370391540392811418469946444000430104193410158667751676043382361670797606781338374703519219574123215818260035930138907801986937058636425227262736739648504398812796208782795102074511360178068075826211820718593172371891977198958630479833497110888034587234369904344801717175110817916682302648027724968357696416875191958210550917989893075425950305501662711078577167359860298235592746860813126224560079090640476066043808934758039205215048647804448660846658184829896880640053294975041036341424440126283274054800578595183426961998383736521392103429985502932476057773980891320105322082695400820877274319590763191502217474606372091879783953736645627796829139147496450431648473807100739070801407330175152929831344630429387291184401390729425799560628004098406971692598234950722194939312894485389899308650538413144117080099020173433742376359095515426913580089441439354405801904865553788527343883341846591309007860192438357361694549063258132474973352015463798671040786534430415248139336393472174309519992936907702457012209381436379108833527368916332623353674445376080243388482496554000633395288651287062704817207210149467189433973298506220360387150042318474239717860688174432240591315107083356059223125985497661995714410555437999481230083248513004299133872444861042049427174489500109883796568428272624825050080441007196645596963782173741456944033436620833392643953951002352559596611117426821234698897401082307897690145500493256920155898901016604450100947186103834594638687706495019831494658371849094834749743283553916341498307746049690397948998207597653167315174898168516060824026703617694152864212373666528141259441015484124804650665792309988198376246524034022161103656352461914702116165267648864415353882061449247356992906972900829733056929714463195442418678210825331558216149896875313810812867912049943510711971846484069123460893566209727516465444440208460670098953698642930005745947050474896994262086440831726750409771917995773719564414539252989606056410341775889318345899004114701130021404179984221277003540104311221049870615975225708600983534646433970881893655739625557060429470435979219219459736281380190151577624938669175574151888804232607006291484494481441383023464924809941090599896163547775882124990341598367539106615258575950144853184183512533973637639286964624709568815345399867754895493711067004448101351882408351075203723985839161555476220410609689201513179810925407932039168899450343255388584794266936491399267995213391012600605349909659116657466363470489786784278573500466474350833380375897634813541356655140447723510647399315491360425099906965584639597798004836563159512963582386165703145990166479158619648554643994860851671032780039011256638151451916421001080469283032842579904237916718490715166490574360410515491012590731430164847538748290980562677524009847600188616555527478217864495813099355689134631058344679886338652159197474813343688222137186235009909405005192819326191381412997343116162511802499421404595467758729208474709766283271262960218296015184966357673885744921082905064193758569585020082031782810441410480174029014621404672674441122002328344436683013641978839136459132202930177600256115252132481799800524875327162712150867646218812336515479490647665307760270085146104010113391558977915402542676021213087218855440238508193084410293418776365513742768177656278399584407599097057993074803952625282131325729554376651328957894393651072209038717225363571574543049115115455674016961488923108588723311844438008086926357524009929368014195764775614852498704683347547697919167244293070233053821324464225888130671478649474651252156273464810644945556499660534484643254421317891916255377881208748325009776662077504905151675670161601202315861375185506287304718682789489734607552888562823582078927434968870133452899273773039435541964192737416757668573981156614411909812620737414403985237867136365775676862452702432488687380284864009143561493684679052625191123397550574194195149946362977683120550425904433471570401798683244505797469652661924727729865629500972858281376137123886709047919756476428355284707025549899348050721831481148673411022091193200437823058295894260125838324476504579860853349182818112411514149686234048149972545492504267804125283013709599107589892774467952187952031346813236839259102334381637347205797453957135601229855662793659865717672104815822918634768006543326198429492174166372385104896832442044960844479422430846882261783375219872183820657006092433933572136520738066773171617858544345299044389705406465686515871567290255223597275409468697113063035547895607887545521065839298055620477878075154032188154980078400991407391805839575286695011175030996402479145458619586943892368181716514280252781880100791786176364599641198189082623767160058420546938459508516728059096775889529803536873007950862072075278845092105328538599417315246482177610931844751198457018771862268480817249669107390019282884671284548980281867895808970354990220435219152101897296976132857054215230797837900327515628223569491371193893239778964534799110843731330900262440115191453595211779274700370056150715989274027923963832897293232309929334944455062279141464123558028663841373588880730596895522179351957401387143703096080427093405837583340389008136874449847198830731622571238690769685896084001117956079136122618274877919889030862585968993200835370204104390900264939265116914764678097041083246468800083895331500670344279965091085274455928362506333054748307035950405627874881885159820404579769388601441987783371738963181175615307075870582785079695312139104924760618300130801090651273907573388413760582637154441299237589330283314535149604750623622940844712744444956641219949522272163850296396133055823544222260025753844112669945936008343709632991756379960637478011848157579625145484935359373404940047743304782791237881710796587783950627843300123820933717449529589438458192026215878818916930960755874895455251663406724894711974821850851916167735491083775258253239476433394400536386258969999084796715617777923027258606987323591258688445396804619829641288753662917789463516945620886312475179624547886825255641714858945102078370414367990378481982208247586453599414379502678276671751697959989248239613524752030242008852435376866903272600258090430868701320878026167509341882802883787500334536712683075609288424238569194583817626335689037733690040548915439862195200053369297724356542497175688570380249056649225764736559969709057575439306956422953785874228572068835281689338328132153748553972048927355239551808890134180262113875783548795038891900832319467032611038857925551278872072767688722341215040793675052258919822264189558258682274696180024720145368101854254000146151907964196158449302190074675729284506651782890712691122736967227342066610708797169809934298946497492541886747445652484911136659255660468251028395027433275022107898908826045646378605518222841527103287149476346620008017228153182203410109272813121387434265284915137449273455378042143915633239772576415343116860399866912550086316971053681893606043928727071693974947388737138358750975763136917738754337473815790152757234569180470682163500161226055401233969137450965742567089584112953975040743147073075493377669859676083672838996049708341068111445564921586659727314247211309666034619079234931121995530783774036292996496375725895654681417112251315591935063113406664067574869416495015688853948822920352815902059601716140280013235443085499412329287913811640559852508364630221460443901058163883807494440470208428837469416099456224396711405745185494506992347127648306322095360761691800864919746759352043529278375007789518305371459341075342760847016701993495418415472558328175817681263047377235696983107242059230225053117218302032828987672349512302862682662522406180962177039855344129764816390564496797926217381271750622407217635226220258469216224531730435005743878664531263953530253741627329212714889330322661486216123362510879436487197127648052608883587020830495060573356613000511914793967517616940851471380495423579647790543470813211601671673798697754186440055292446536248445493979517778204839062778161855858654139378704430998701804478698499386402182017445050384705332920984567113407317766909268211318439810143155708265757601019938589070653858485031690540511747670087072565264529250041083087629888507560993377050415691613935085094102029961204884850759977863937049336361964019878017584119517012448134696465734474652531995329761277096160458460656254325328197068540047521989282236492455491024719878056719772305450048807184988682801798241903201755135175561469429105199070690956127338846168136938209208472561135282178143603185096901969611259983508061584444018085779099314239474199348039015722344456496691247141509471355225269935357887933538634431720598527987853196679074162765373303054837518857336803776211317838189396652320257650042882046823087263473435303691841673521932097015941027790391867189821311668422410782167090243535831049552953220206476642865855671996052476746038500201628243212927108087457336423546794922972959236221440108818262324673906158576284616844469778410771913033557404632144646205392549186933536052272265122302545755935859279080005467853035944797040465801408318458865758332491855314245792596102333311883970089319946189229269970133524184286964703202471265351005116984854743312848261032136291694927331052489576817311978806973727392560572089920597838580645161373144129101669257763279438670854526043684102418834875048009725919505765831743986728305348648774484062640676311551444806272553610308649386330209034739097209310088964763800110055002449993645427641688185312281132530598420480292828462532419692964973534185441414011945619830304349598851868475646106929456950082017508517195793300398773589285878064768386906486280704621246422230517358750605461693936709635221094586557786101869393264795045022072357244547321020417453819652040960832277772931503397438437220357793577019907783757707065834286533262868524098328898970552820201318548244916510890129731439048196271638395200402426484078979492455079970929678280881968644400591414435658214283692881429291419512593871795784747402869097358403292533521314054052669319469412554231656658953629729900428897338339055959698006213580882299962601602364079580912412832276901567515646539186544773888333113554669751601246457316852880484141638316856260709748150537121844230521397855031284202645972911448863942857830003178292206554941812970422625249074391752277202174509984932951554352241104856382506033403934791849363137762118579554209410824365381784953164977223532295928897697264394809923247489310839302358700265935380729270691859988742569799874695973717228077590051964129495961879722756969535654316235101707104427861653763294102616989867472971884209015582192822254544771935552298237762886404545679615336271926879547685476866292826836167320698048404209668742978376284650633975912284790433335916243829551091449546203154303133759590887511915955120963916092159721020160983294526187784182956175803530353937047295487837184708549999316002827077964609599081328422099186906877312268663161554420265495268427779763628025829731957443269679794696349468336365508605717127228511988470197382666052212426500311351226599980090480368155541531854358225077665574321038949090750882855125457748703535784859236768328487382674322522613626477877343839510037369978672371052165115107206527141705935643135042547177012640409347119407798864832551125594349681373407784451269666509948115303255355972373529566390598033171024197800767218330084648430782100623005524470649006018670371663252089466362489220488481190519451169433222742522073443215217315745205998228785810427583831743438320041023028643447097168447578456025608290119738031043218349725710382219963531752180511405207941138481454637049620053812506412861696260778696623571608403047479733124216306252967196992725274189802107145434181314307967116612835574921951809626358103704995116538580587044411207033057599677593980229380069760199374017273382203318801316911304947360238484853045957496220836888724252108491575692056511435144327553244511358992143319524019699347510596079360483450547409401444417323447902831811458969324745474409010366098628606933804774020609482027156349600177131883732198692345461187395306088060371497473059164233240554933443032442261184701598872901574479420369275815684160495073635606361781702981417077261056651829889599551542182380227810293214266580283181530548995974739106867675596698705490585262439364146783059397006338135257467355429855711876567072105980256132892558276015255600306109521356846234278182490867829538908121594623402017935623736841487512902577777668014984198402616495206687004800049054224378683561962520227431569655349014176840831802996394123513334944777588594448610721270562311337073769821485008911779904554362553579340696519633992559793106126515981336237603055094227463280908582888321713028745647306520513290496225815567922132319286948124793203775583035720797801104441758979805021947510330318761817608708878822318407420217366759050512447952340999405047950519596061046931735405597821928966871609128029068904384246556047274053252347822271485675893424739852142332159940011427031693058474716065411497401654574895636780002793610208816216933434371754610275094837671681158258435817194623322712879604358191189806463185248104823562879356298114911015510645660823091715100523737137722507645118855328257472760984515190361543083218928023310366971893389434915644057818148681939859234876422582330985469214043859346078173587639145474270160852267861289861170777247242175325430205014427709065848544189043012673161920937192299218326464163546685926482873853556182999721557183516661450192733116418424073916530967334470303125530272619271994367696475472053668470017174958491573109329970352071274213854376623851874776787423481107505346741950850122468282215658157153832355871953700746880423610105152622029980439346643609349534025927684676277799173862286176844425768223107210881517678779304223109468518648770442270919540560435701236955055012329748358552414216986385634736807430152483203215142759755975457518160667401495958555935057847929116382842443072085986437340187095603769941728375634052208457094978069780838646304736624885509100447673459416068902103049740661881355262425644516124053941126631411737604364042722602005822814192399323803421364869028818362998870036806957448182572005380407360056353869586514079721150359212301969819017928567385480162211850146449590266848340976861722700255165021725276885792435021854555106624903656355276386966597859250693959875645555299165797118139069054391668297829877865431029796036397833886662785559586154911713365114481989354305583134490801926793887573481692144422517221987474831477609518667521034888994820680231542639667184563617653327986444243307760894614961096628288101213665572010119722953915784286324185518336344475996019575468938967183142656899533574966707690733257008933690636195624861692726558189130061911167825104222803222503570959752580028380120244097171853029260937631723436679312145816284769823782009936350961792503008431394178250469125137574650769156678534202646907852757806821423683892357577188568363182102408998939410789619222997303382324912053013262713550401366866819786912254686444093553836147320060984945789774366365814348810656449811312843460183368805854495878583526294019845404227963049288915689469920903356013528295097993304976076934071005377529134537895536159196540690065227789228066370486969832785212485855188339145992799571748487133635771812179526992403675670844640130560206583590741216959239732424952697561944696297540578115314348192200070318196095953043052400687272190316767918105959219901019352470075504200387946907411263971078062932112674397940516706083462925988200008333046660747933501758059177507745596963134102453161341132342985301928218784328498221565542962561536897632943430012240335997147107885041515554521357290662490085155186622338479694712883315906318574415820676987744537223016245517935915791601330443548198746670418266241389657443490766700091244307953349856982568194739711261337089736441442685015412240378026704567607906401668865138042736347374865316771251567653636228808033802789955236382961765769521670365178606257061188650534051060121627518534908750555775495849757396421005107365295504453574929198526067539994472280230484091414301005682787247832455556151558947700877574513286437149351677525330942743334860091055153743539944735470593284687056472418825506163614123047056265028147432241388572377247611224517232594314275418301709615352398917980401650621150441300157987989876671941561877086832890254825440743436714687247483089315835900599884155398263067810890437593112574697535203745720280332085474391478359469032275955566559455541629340933756012954975787355433342062466685595544733096436960567857995808631917092908277335727829121283756843642310407835097329518413457513574798359446466195665871831287645918295791222136869222203506896800015344497303509574011776560432623859125329749650849126367042186848987217575447574930673315767303194919867325993460988504173261424807605854514863349996991520847119491203848165840181895844153674208998975102253230151019408407642277874783960445582959297626961965158056684039327532774186621262233684043116053366496080968767605343387764742362675143528354863892744081435619006570970509648540378295038117264018879026260414759769513442549060627088305582733115198881457468387628890210209268011499061600255789073589686057074292897818142167910134686766422332855908853734664713823726213137123174949198460467258283824852107595086879413172936481790899691576062512418685531508124062012487877879830636658515602363000566920647190180164415205570756026986295687391489735093520593853140275319359067625313744882865928867341440151590785315499641410692930409654312321128257129552557675035212382912313458351049945689379616759390685437739188791379028472653926366958292226387455447808006363330133928676040373376875721240416015468578328926020907026536808349488231173424042389489572907573444277504952827083867633803793786405735114443287840975381843467606182831148998571173807282484454024639624108836657354521688768772630808453962215199415209613436393069320332512968059430578247121617139863718349524718367567195340360258882079787779472996814899541603109814186581468078070790455118774228872006466285456579482183943770015956144025727024829392616160093857338933142430485153140868491121045601402580964936232652674070121451624107270178741556903307711663485714050759763963369656445743894465779180424716596759489996048887044463690322064033520896837946207207278560246521150841746231502635662924314877896859987460797782802852649508397034892884496502650357752402215644604269735748600604924123284669214132309744708416398358862027734326247247645248145697357722081415371143604300834869090434745662172973466318298160128836375069078601943313993809531827155221185214822135054081700570746113282873722877850317706105016344833161006418508256944977470176023045853851810541550238397338615768640636171976004599476272832434075231093708853126638369221740719009850445453112240611645895952745731156482140523078960698419866415039147312530219207193763119838030004575705666687449014171139668154371075206891195588996359828298927228187915579183709010125519413342344570818519051305734578813967761625629477453402757048216517023121011410879221464584113338908380158348103525121914494838075097752826001131931005843950720977882356969629238111395120908767271389446118182106539249357080605528337559960149323583564981471958100306028093561536631799466169657611071699053051852532226489877870252266554723424939543021149761135690279927251666129778093110012784078988775645806867701270907370002705562763944398565858162403626907561510311841330482788365562372316659757560759930529167458716018815064896671096434357054475471645471614787062747562443667442867418838629200919236636596672345002629800959375609018377483470497230402835008176961969146323915877102140890525122196355980212327393981972467704623084586757993600809985680957640308687804414944883442264143670619434985456121233128743874803418476507911474459279824453377608127172660123095052648759974852034942912522374357704496683808893288485996233839289371302491894372558447604956254858057828923640440037224529003904540037397764017237314057468932942626569276794313380964273795976224146541144761706466743185068724680695879850428316532769801716201957186774123905082663904357574995903754481237404186970424596320443926798074762794980764544074029028369303972915030525323785030256998520579524050667649164871926246198070109090783562313454523446751272442333169597396293786707026801658338003921970469921992746458171436823956843264161987804415081846375716184790940904432782170936506215316733822067898652253448549183362319066304307130708274474453844186294787956331932067345637398262428556324274852652198266022128636776665429694630608162257447038496177448093866267738557494435959800889048547480695241227324359308096342909357030942141812379790755745828711603434877436202180273236205218867825791219930873592365540390904392210977789877438795729261327894475496319311075885522810655899427995296908521372125403305718580241725983355530488758955623980976172520586267118634251066882576678224530572020253445036800531638391692176364794465269933418362240794255841579269871115548850820552154818908095859136222981763878904354922834624296333113402550398916880798506710129754398276553660275953665363493611982879841817300346555174114849369348348897309499900095587194014442408227253102762306549424284518146517319697797436805784218422006098889791245914058445082441550774533589764302737777283332538133669031030366554886088584460352177756531724412346887178894282859582615699247156949376023675647789526484093729319521626360785780118619062025418181002811732294622958617578936667921452916548438430974159138947792277048427493748483208122362831537413283261612458357222758596141824953622724974760880852736409831390272021824179371592172705246193927845251563781032039198067069626403060235990298171692585922783221233429011066768157318468755333614264443245819816636455256202974995566956985026412092672491507549325900257988922264515922086964155629163358495192130264613972410550236852618645315656887035108287155905495412667580920232266326905386548523087124675914267383724626687820237874180701198919769599514197807143544784934357193937034120027639662913730024201481221948803579032357191908418269756061382924922143968049261585688832647663324129134209210174950843473842594340101372798091338016232644142325357647532903830048316869977913290144042741203741631988550484313864079296605274906087301019688895693579222088685773215436611197624773279415030561197006235035539521609593039426059614344368560676841589999996390521043990613560522950605891878045236704870215016107871643684977365533643728133019967242878632746226865942424108235634509498327375650705454714078511550038014325627801052156402523650841378553489582301639159154459941060238596369783104324191480875047157458375347067570612579449661099801260447722800765750989970589661512235504081891096752569516985995679055306296646496030710160635080495440765555788348829199282721106580382709766129343338989591481310038970467026601316352796380135727209859846736445087560794188908694667418320611271496853890464687430133029021759856063627669434173759746879015497850110757233008871212672770200691477727637541376607898688028856541573386329092595500058896332405847263822564430187720418372660357930565410454363466073409432323813421812374965484907469374319219591464288761435233754979410766052452173697922893066747329754105301880770599294590649693306316594738960387152123666625178499920337695463256557404343986621157545727470156030916196094346448456346346948541799509853788609827056154116768013067214423449657595263364082254786178966083817226997305924250441974394464671566987387530696763639518007600350471453601147670178593203577935816300092872017328147350960698488633077109018682954194321561082093876750759346635916859978843989423676032498689407234168844592855931407131392225928711779969311337779551385343762011799842322275426719031983897848211037182656256089162232409824930811053044196131904879761939638111760900978163118566427033901668716021786866811927356402033056490502407757538966191336585140279507280698170963198932319855526570764215069543534398515792939744346258431344821737249159451421048144855035998499978027817534935369876095115012670220781798064025074831389400808499477016536354150089948482275604939219578309707196138091098958415285040826611190988209971108511490471754571381399483324829559808368560673145698982891447675944427825606008860072089400169009217841276531943285799374729103244363900281512987669247073637635435928277456466201549226168814957808638948618956253620295371525667531208257532833543979470267556359586935616841033554305175666073354668080342717033213593720532372154317472240434227527669248074035447991997690643486359962426861576834216041549122394010669161257232906064351717116122003148420446757009124078648625479412458297778413486984298457644330168514137538817366813842731550567359508907359763211685142348989574363195157830287693410216835426606731002184222555966699499616422823041644240221967739479233264434067408068514079720149706288004148253020242272447101287678876886400030335687974073554015966480380059226138941508983782648941093109935945899297139120794861678019099963434072968487681904853161496697105755316540367040886202451556181667873907969974264368784229544020647522741528932096300873953579696241128247117558804648361756047407451055897308532067801121902888773603866347155462658839147361003832012031533151943022409776465529425301777320973160792815863533160674200984770875019411735876960081874947935857980905906860464369587836364746208211688523734113588359837133422851744787973521936617197807270763182327536289153012119862056275847438003144805860675087059586748353308123820973753370661905964294419778183223704928986956808323827014334885986478812842796862982199682568252037092615049665645530784058172789044685911341053287318439037424690190278245387007221235998856843454972957492735284061130668156111720722861326601804250297345012294977717666246857204313650791999027531880576508882429818159055646025596918836508666243466156693603306965217592629775809376191677792508068220592720511101474101339986652600509004131924322953340822611965118485599062792999317083228662988818529996159122807798092459681928173730185066843236022587749828430308273075587931032179106860525502841758516517836390604542692961677297974880884487944376937461666888427085289131567533438598189058000105158176714306798267588351224990486518830479532908338045422984371858343250694033035606857667564191257110630456532696239104292763893903011037131975673044529097001795344312295103644875466799838073283045771985470006347370044802405857065861003994389929404758004179558992841666708155351259572169619568207570118183878146330340352752705308348631556651668015897943494671206144144808964652233457124292774264813420851420893661617193433953154050301078512698456580265923365512338981952774626987599215405805765690636852086127622059047547232892372176016573687031770909653429453205718315627634488388405972429304046319603236298577823887542319916155821125403361075492470512885431069119821833133433455259284618188249779805679484006247205868243680361371875537104461326976902769506418472678977652863991535812750477720137854061846090545867291265897756384830220493740095595598814655843033827660089697802834294104372124363207359927191484877893422061452384395229216969023158585078676012461692139701914814613746530787096452428725935824408464118989135505451676183463223413822320042015485044664553492264104385495117609684663862551274471870798455961079191669463653935197060362786281644799334820508337105273212480032551515207684016269399048246454112311276589787917099818442785365682560262155290717451835383830332525186323345119156435316988194023755592598741291157959725680476962321078149764251708059970406118296774209677214144078223064998891509440329577578130244421961957702387353562864451237348258968398156432219711684174850602695202645140632068615506768135786483038707494307332674756738998786776121626335102572674666189848320817012767216249243265175528831982953446216495053819248874841927341698260654431706451969704322895196236747684951097969757792771354380597560033901285230625461909291629241907191886047228867200958972130265460312855611340928588541033234866948490362319854662492673663202213161962124861759255561282494874528412976223513636236008418871688261077279588263241649326525892728609202685704586695200132201178519670811963955365494955842743638001896468701908008579312442882293897690011289925143700788237391274670936850091113006815740350955620042628057721414474873657209121463048466700585941810390431848973561025460191946479923381922039455935406384046219966862386710080662988888938670987850096190037889051559556672200899561278848466998909060291814510469218135500086066785319130284130023967899396683150855348953604767241494542115279975159834321216188543556164358536826218847681594809639160459946015213824887718024537431420158845212860659764244048000727439756214859191462395946444538530048606043574606733163465634397898452194949396580075303403131471003134156507912746200846136667483257337124079765053485250460827705771278495433576058461675177757308849359252002993842549150860353271499643763693709803595705624043763605914243271279479661718869243957025837258399934356222746304328498632237707963194461538738844360764147574057618256736282992420928400149112121202458724625460278935047278311917860994004562287849336447769762327480156883440703056066413900860507408656474038171909564118925624943304978332823325303853074439540035851268723962848641066445818036500870620146715924018147461159521954121687847674239885506671247551249817863945761208804861061688582996265650069841737003695005083221120568149740208566967883267421702540562692389744003191742925663416263322075032817207458907705282218577332709133553352153507113497337355846770333196538779646778766069013375872117518925924384277551357629446720671078469021670891498446468367123032068775482453471166714484057701850349098799235484353668722299742047323942165754349907563409367035239109183261964546575343591512127703383156722272275121199215902868937622001078418609715833920713549685134283060861259833787121350983249560524829046653097333792170553754587604815465586208541989071891126738291498249379828381072403652310354396116180380738640604877178863162243580890323598593781065907632459539104513178868003041150697543279641467563473884664626353794819669589408906946236722983041887274149996215371910714814544759404869993075775158267226937095183659265892142925405307253465382132349012002732317325957070675915155706330484881091777390448562880369603117339640719883577782134726776314710306895032201439904044534852609261253765288857074743344139217565796325039470194671476311192410958502890940507427543949912006717292837683031572639107100334976500842881635900720471302134079733131954776386792932936806045959367067859855265527212816393616697498882250627641185320705907271555699311899836612413391685210595414682013532329435831329542890918914360378501415468619554820517337136592958068322587356098988422577345952675010907419162946524578262731009131231549341109548233717147037964581515359630905830880653422870528711581544188540096701773936469212899328971266836288966376324626719537163225287465039007409328632502145853885781809771247867753955572529505405252455315484372797543056971628331202483257902815161745471404069666109525401393932588393595898892694304999830807753665471455093108204409420339056631782370246145517680675090605976368033801259645122541934517647376945164742492657978769128914696282863606623588256809236097414027366743783839064318825582560207825762544444412985759782997325065692513071678243129336308964670678695231707114918897498602847228252546594725778775990672715965772004458360061453263921266559269516105038746528966507795068554785751970059414774375320200466338281501245871175936817323283952825366089665956160215485715981480106305465534987283988121578479631279195446251684901812499722560576251323882569674328624920971985242922043297871722603702308305413439353097037789627745584916575538750720579743308024812859474537888189004526964835012058636319616464628106805246398887193178997486227888370899531459687066749906189988228539743957843577354148712531306834825803218360346502666726099892242717919430397016772554460821224544627424836301611028493023863810917281744761364016387817238610698431946579193104931308519199544142165940882945897225801931782423648150786427328801594739852068991445835265957051264128808056690622733896203583142582937605113821610571330718549214192828693783656933937214051324513392433464031023111340801354278436055162950727265189807975677238186399368002359034088601560290066347210788816058766701012986359482042077120001152588281257084563901979224107020265704814917599103894428191405247438107316345193482289577116598675456079034333400742666793454756532216064423853787469491113617718736944020049856036734516168694337122648402466563788763574043947972818636562625556876912197544158690117193545942261199041293210666921206873221288716003139581038997525870491466166405563618071688059922117043042948255656911812347921519518538932740822762009416332788399608986187682353877242100336015946393126614519023023996871337542233383387380046869515081933046488452325643001448463508739312911026429127208207564681082943796412771436648071539858806293619747736459145615996230856919658938867261300204523094624585192031684163649440801393685958534616170118054022653581002376633861634914723957426051778194699893870690508791558526577519123365358683844730330994731823305496300618413007754844367634041336919675681173431560386016099696020559064305333823294513387615339128830953592650124354889324528629487523187858481452017628879386585475606907396060399470590107879083728550455592111817393321585729642980598291133994761444054650950255713727950113598062947589346251513934027388638837540042724854102219855999268235088497284096006962190233037469777891531964601292556224503544042063650562902763829255777909256599140133105144341622257472374149029670594332902611515374192024664076043756170917026175417013346037608403327774720932324209077352981366649130842031599206062473916843751695931417736766347054664037745804817202867090916359885164866336567157302598782712951995558035394665454990171201231672515527509762601175037317329083729440997855502019643255478828311377844000776353229515409808376839819697012627583178746557067614643919621530880755120087876800393585223481826651451111685658785290189812083417630420657345710984557601832725601004754476985676364143518040854491705255737371564425040593559406711900831136707910189964266668744299831606585070745158156570378365185776552069532929406167491534034301790438134809429245581385252624403685891310340684278498618358643928872963112986342751431916301422341631097101082099356207304240027733540209308950246313287979380189257516379689204038000487261755620180456025097137037093570784547074927573593451753571288667601247666003939356932541087180529942005597370357746975577892085557790026596188725126847841445324808954879825140201472564447527608755238972488499154147942891477695988997306368813658743931616102830363515831802004619685381957262438154067310699230959054715198048853312593514528990405234657272238551278488563572347110830006173708446377403634931132733656875702576997464872259801332618043484630147612319628201579381951261815401611306900600687050102440256719479473466789465052865535260503510569059549906797717411180247050749142496646857782023460031965053621140607420201322624104181854125489773530240522939502402620671315420566864109862752647685780418300896199934532356701252344141528683376276183547971644424607240024287127963610576616270317577318402098772171992892057877510001867026886337799000845960829976880733065246800961381565569932475145609758461572179078127930533130922483655018894357650271442707624173223780034072039193317218280529961562049457773118933778640358169296079087054366464952572818860624881628887105869718468063400621987183592079524618136313406541054519818946285009149303343691400924472309530244788831422123668113117124578300601985994995172226306575697954393679924979260392705838863870160598249974918369715866388032690292395809737105986269357854836999439552152296382878992701229505116887786875255070126260821190160308699162428602088635591883958457043657725861266386350805179848697380396364149998318875925774590020914773780954349086284616479222868352998366858672687618648170828053259481320653990224314673780267116001098158103004586163728792351324395814091659597231775208999126563864120559181118405308644547818747642839610902244906424216621187698785730841776413787451694453074369986057730791006563005483199841883968648604832891222440168151492242269372703292646338457605401439675346482619799510242869768517302107459385123560701152659977893401065184316017098674039589633674970141357825232093092565083743912761792647288988855997092439444444549989949137248546232716850920555492593163331298448329482850747396609731164908325517951070463420454178719317380829106930209331395953416543446240570250274655179885294740630925741954712143765932102521432380036084390934742244022624331844123434426555533272123982116024322749922385818991640408257576663966381634941348563328327350467515552577674777410593683652402642609840323083237499127846335169767056408033041787441102380735299479539116979877484188104988033733112193568756627597893683131154571005037634465116520390875081421502375256748968288579481795800827086771309291304316126350186886785415167503784659412164702231351932487866614240926386918434126090369398751126413458234476676001646765546275996920028885594238013593272968688058665045447408200488626043683561453194394663414900939860118668368396967811043104016030454125770298886856211534080666483151425699329597838459884436030309180288772003045337847934786059871858931186988515871518962219922942568112995091500256285407295483522169150923901106219634951411129039868513618576747638802464809723598656341536172131194687032527491366706239194117873498555532397053762634017809849378070903980975432737175294986075532761257369469810512615990880733398778194902713613602704081898114139375486027728015673413947619779568114207722863714195169507428479200228535743385034884717880219960294427087998205653354513709791820845644547924653174376315156437783560230454080701159630792242289973408135407050113086914322911673658452723394523822506733500607278033431657473599248213839276635148775718663415004152582912995188103510506500347448338200421395916046369385811133676935966445736262056734574474179434112646910790040206474840465976035920289855471693003733274116426972448013018873462772024532847191478068781020791519644944463283758839195086543622030296821762217584421437669542593453847768445983828805349934193149025173389332932720265452602750692033573147827377832568270064867844795718356996321338509890923415705210562819841483994781798806756495789792466382979921264224953116884897423937412211108724629037224889239503946500137041499128686258456394622289435867590416559708710189411553758040260806353618154380167167288272729183361223724268677716545567166039846933866949807858691374531981324180561459139107001396677687222342108733533202718509596732747682806324566733180337563714373413092511203685182433688412812299904316542162542734092857888806629573604148544602059458101141861740286157771665479859358423515148968406068048867655381736080644854522463891642395300760612458464399164626147970992318390853392660814262324128245123840832011137613522788795218018023589293441276976880270854181794448238355784386693694578988661132083544943137027748691085533544001361523544722648680677182175123227876386725111171227741165691103651658014271486723840768927228046178075393855900896302114855314916870834371807106198934815071114985417033735602954944732142942557799808763896942777087752066007378141873349253338747693207582798543910532722691778864005408444881441563346049668233113163561136987205888182962087424364079057392640977868223209415382547509901368492161921814595631600694750482586541985199806079592922425666548277059917239333640956542574884012885532322850826449732848747878395336573393136244697850537854283314337670762954710712710431920160622585625444266321819381669650206624026426174648000410193516934991221835647740979151499642013806669230255744903507723805773466858524757862778404177066699557484489256592600959251615216609582457753355532590052251985519446936224714669981023752193301832970809829745681737663487447172039147808898268013500995639449445039760536843082116338343430230061425505794530352952062694780775142569794293877670782877598420153477492838228147982021978519844387997703424012022350710821917059823954528366458186184927758125188476955628094193406516271392647695222868561729651674370996050004242336729178066541968506389848836881671398720767962376374236848924959495212911826271437701343580455898784385121452170659529950982529886746950121293701740595847589430563081750828371225051782653830518417833469249012915792313107299144681199351910124316127103602824239464147643059571801347494891381106967266130158063242583627244830282543124640422310331842945559524350212725495056016719011646097308388378505708241799536314914714438328743514925997365344521183342502055194274726752735518199732273620898224247970128857959838937967411797524917502149040128800811663843876888518002842084906679884111909941642824658020302102355822910312200968045268337199713355899205965465766402208038214164276489109139644195392031271734482227115141184162491947745578329191133262544515223004872791906712686581215534539372783461670462799772277934739471045241697794068236331982093500460769750912338203290292275605578909231122841353130024392877790530022638840694451827745825217640367584832560638887819062592788165662988323292662547260251898117547382112732594027755261861291704526889906067840096582241614539503661764856699606902386608694983224079708949678404546465577170944347125864740114862322895600855867049673599509407460905460121066615151419861594619179524387452215754995065046525209282182009040778286812962796102438233848875856324532172522695830003060900673085401016041463461762727174391185480477883490060400015040493475892392208144851012799073202386273277448002282643739081416929774869601829458577822171875471490620799219244221723175298160071127216633037076701852254352493126474234906806633757404691974247120002800083250875065920523185474737161878247214616588287418750610253520764541872108848517437339981322446522140075686454769916449840883564042228800514637179078961620858038815645157560227905814395861098128002570760476245133405641608331349186135180185380185407215674752538355546791079004640050942307492331577479320992369388850794335440087311735740452735806949383614153211813837126395617445830573096841617122020900011658781277355780362915979988499760707196854840407853802393862624444208154272351830553394190912399025783845058123399396332958314296277025666266554808595422813112735588665754230059638404846935726037579481069843991656457322808979332298451031422085339530496978549772565391912370848238773281127194788297962173834093271437629877648920612453471501399763249039592078078957272331052050065029932745194059456422096130166131659616679060699539381006706332954901273388583259122029759726048747538193926892193772902269252780387512316832971303224712694002675820836286282438690748209472640636469460508225932179945872622315331795295347422467761303625605734462765741195401142030490695587811352150733194268590908843893698497295027236977414400420456830057214514273439984340143217381853871105002191044140463929273362593901433924284834102925134015975936351379580607308019835062324523766953383689580054187245502387380363719612569511046875549435410306953401858049117781414362202070034977206628782576970454277456940876806119849611233523924930948116966820966862714876296847837874285028863596785683860174259648432296825768731435912450242337768580108909197281645450184433317771578489552606223829257342139923871083274847150726386892185877589600038817926312244759154248690798043270013014543395778329860471965407632492135921140525748332590202899782535297312799590190760244169068616497274696964008200557046015820521377578656766548289158431545178468688082426512453343875357360231463002149178776387481065811971588250288612166501743591301234087831756908337598326455144955662200544210232896294336402741653073745598927536439995332512096913644337133926528829273989275871556913699706204094329214645181849489501206573954528115012389841409687277250176635633421704223230398850035068168943542974374782571902347231532629012628424753662134416378919368653159034886362268927577941592271654731545145975103568491870417887222822802390996278854709984619776254431520018448819898347744305539899731387767412248928584957208188217883462883409669381861599855498246291907394352639396165618695280524174472401220422428911885128039203600482183996131987080181805680087238690514060891481342253100511057893033536906033068004349438651485081391245443554066381529556280744547010704674888061499006675001790165376779800660525134121464116989053252524238476233979511366308000498603961068022125045847470940091050785436847621613722407567526813024629136711895861306269402277316245510731554481947209916560488138996253710152939335917948978083932716697009083608111047483780664879678471131251412596940319859025274232252048088655445305606865078920919363196066318489205573963563937654168228664159689248781725100186634533552505567416695985996131183810871388703398030364452617173475814081780248648901217083624251906052470582718965421475380378324353948821957452270796202598911488103662522475212311681282098948583218458769268352135644929218671847103856922815357805391349973644290020364096939432386092027931656440338778628925966973357491918618774298686938290414391781236323504785532613339271496598850612117268137878831128932743843823826058305256118724254020599401349202014432024208470290582169963871469603578836577738631260118920937406922258323427149530354436127881602548343893070811205217177661853040534946584698002491264179742451543893982261753209208182671844421099104773809910194422877242430959231703022459286340519539393568398105971644070784731735144340727795233600782639083993753475435638374824996562320851662384425205960138955839476637535541561335808127349286057667917936733687558429742207613736757810271662875449146304253119544957119435855416632318737909858094286732273539480104428123087923727168788725261602655122340441650258002017151151385992160059125475614202070939341572271972953221418332995594699279835308279891287457100189150961384959361368932756240546674216104949958062615011926244536340415927132890344340852273412307753835071059939075103026803316147053971679320420461110872958362546227580713510186779580444290357634145857441464943649558123831253961180431176033730877611317130838940381568407665979083999549786257660735338177532834130281632737386446264519790446238075249621475546233018022142282028147828897129918167066219071690878784225810635874714861384849873673069177177361517609399531132385587077963996912469884264795997008694532657576515020323756699238609464598037721848631736116895920774568966669663129502511599506574946733256343100623079131661805761800185149990211250842489941139874065143353847359247761512700692448223254050805950963697072039651955669816290995578092207903328049202250893771844347135421468492298553733836639971489466904345666864933604851837495404718723602536517565326698195272633096907266444831413149856903270112705075882073194327893264388090392084434425175076612893392362519020949185042066093675864297230057453043872773630984289767089266637630316094973701559256000247259872034182297757573177549932820510650023321662364439428470733617777434098061105196899513222202665065121862501640376309572523138793255011275983362335051936191530036236677720794449427906606764241497961235307904716156312131552715729813060234626533502911287105896932602251898972050555416929400741133848824675503994203261673264663468924003661331092841561515136463468758887533463951820004449753915943851740862738142603628953574364292733767466496787967637159053336583770990289903874535676052753290468631855259124399150242997753633992585956131591376575119252261968837060340940868330442883776113238592630152343477608873936007478584460241102388660398925442549090383027245256585797262043132472444678363454299292655374540983822584003303592126511402484860726499075665408386233463962646186286100588904115336209114094979932272432979101817813339667684447188439293481037232603830015015547831893322214700277654937094700866849879018972184559792337688294559770856238553198029801113108829134531422715278929604708615134437078227127976585538840479856535190418686782526246154105437491431248060271919739409586222781329467968975599260562325000229384469407983295605640196305982926419841247084710844214100298189788258936939651253061611464001245864010237177350488586117430090560234063972243151789438377697797294589922046331919270136097502448639767185163060482190039086274394978427770539445036315370125937908260704551859343903677408973216190329389287330355959210970288511897410666488014025525818106784778127560354199566392985781640703320613578647168066466662996781801880009804512797960193542275069083210009060529707820419813103988876095884249498805430449749442813988057772828770011436488365366474628412709573062925851686397079975896612336399786455151784459376549314898650036497634165442473390907655985800386003764012128047647364071116521056542210727533261516051322404806669798962488163637890621826760299710715369556829822990232832880766185134601080863437332738995621870590936791105944449516484806769775481368702512654226508942480858384346528803430120475084640926753145665645477663991981854279184105702773124613626130952792521221936330147627282875983729589750227114686750574939814537073180855550938056793798354986485051373568914411419574664865693811110079185550410242782810622218114068294799253236113607252264520288030273962233488157256794507077541562229017040751424277384638167832178086497628666263270967110331734672264800783996610618012356768603518734679493100668177214714474189235176538478066353477320229902634913372057095073968402919484525215949459868969475565574299580601499123078546627589847218299111736577826760757270310036694327154329782455530255692376020486931795849200023979757168815911134439889112953472788730895587411019798484871534636519697567911537266652105500951523398835507775320525944609153668700428735935086363668292537386750313079443301582734640147862667270600653143803173407253285382704944028470840160761405479280870302236584148574040569975110551087927729259764834112464597001613393403588426396531917770492501463224866423288434655240648671073817895638639065672647216973099955335103996361999099218207212635145596405035960465443056882516314294235330427042846702199843448927652798564875921314680112536929513345693960072515782263424450188547526947037713228798054442670117752662823011020034363580983511493893173967501921162952539938206402032139973433098546671109805572900298511957586153688153686122490538860106016110421311980117057953162700101878886200854382108368001939099945123406233353833913655426264050478986439687793293838218958108380024371769692565294544163143307672263152005755274033859981265525732981027490444735509272589940536095245353512166342933079893427085230119080469093517252138342259536193536030339612585088429920507826212002844071520452224760405741180429976659472054522893068577227787736081646094220649301943429535795441314144873571701224029732084671227713598104435607326099227324361212277337967193015567902574479200930846177886124165262709826585997602724611006293790952411268121635440914264448764916141970345500971821749316689296387258073805833073732120861147260898056153903763901606270361108133865834185133017865164036841519961169516043857322239532240609939173084459889379057088363054239336378457443493208771729267939924523034219669612096846945572702776780290054325155164930678250557437341135769574301822924545965688572957263708578667967751938454650735698375366969067219093779810985963648014406631648451146974637401588678347071433932073015275502088601553344031279858573431394022628211097896030751601190677036614846915379738876632499339124788042698396610224312763667938353183308004630119014286748666963493982284485982200104339641668279852621551478994379062677381722181956090814856056832869692195321457377855549857447088737154888121159769342954594660457327863985547468228055224821293683900207437523901512827731295094043827965429026065247424412575858053284915583830953750013794571928247595677480888994452539327035976883966071707888931373555876605896546029310566856079833475922047609272785798119233651226935334937493964860729752734522691987631560076441262693577437268072121841417105191439396500090851596863196566622604337770047199878518771727943405052572398548227881429542813981490821316079642979095774427923721410415403898179535039387347667852914957779919873863770890612300253173537571605685214847362247267572803757855359193745922480829345411448263838388948532991776318009727635708205427305767869017883861084620992994337986225690985778668680750917435007312192994731708950570301860382122417281300773480371465625690045969092742039001401737575780451867062920310088985219658980682500751731106064304881752223719039891699483386646867355247829907133256576214877079288092607809459142265527322350539195820806919246295212843792756298670344568060841748788484463223705638757598800523731629648438518687515587049353431420574270470406250381507973331028376633007800887192126601894202436205670093580044182141551828883106319886791990641707397630304569493355354723236509045139761926763121400335990101448797190725198641934658642145825510906013721902844690349136461474414996569442458238105455688884656039051428514052461790592705301538525079401402362298763225365619662410426591125568019945959125386282447801713214405711069095304321238085143808261627321216674553336786254250419189741074528168611765738578826076076239094079157624896751687623242384835185626498238114180241225396329401373312701235780892758284641744392063689823642420531557712526704691301860304367858324798315844252910291996782890958544897804625130667235656342857123386190417134204510977897307828443453916789834598906280520576578343453958042217338163337694177665629018267564082130750686538914179262552357735046356898159280542344711907395226992115057820782403967295907418368418792131875932248708561434034089111323013958817570415988603214878041985278201645989206241857486751989897771614502389668902358525523694345673351831063665985110364313593510020813176132185760961226850716495923997190257858696104627113437732597713342815303438050716916960662137850177288441476374602532707116961770613193624178345492084676435705787243856392600338894884433523027934520066506880413276294972618367777551508562480359406118573581610065652644468694008788773875454332213156804329718902516398192707405443576874838037003548610055159308853696492002932911773965331214602143996008355197693598372389604905257471303647477641127469861713710373812733672651202685835549161460346473509686366003624059038168504096113838408992096673301277635870378483873539376843534591128109534110057342459574827684858066559618480560330055466333825330579064660765970938824223506702196114648990992487824057481461725270836848205890688814147319501534226136216619056050218155138010205410820422941309769982252054712135838130261945690958515754103826884405356438537363778312902924715373301596756599404502865957735750976537462953973942522914458114288538444142208922807111813367468640572860679504236623437271133218163434344705761735471163277165754312759865607196953570868136732963006807272530251650015280109281868565024927850589257515991085806744394469414691860974567979172026899868878082063710992225166433112887332513278926223401000150165802859247784199605169367577857234993826097963747479922127920069887861808619301076725211175124748807441778825966976793009029798234510410607484494332144321823709068820022745507044896619012424761134575304485768509541179502017283852564502686595842308965835998900993166506287112099347333203220728101018022229699724595216927524857276406659201411121521194548857963289360668120245693378208080667926857781655996848629934693480124465771309108262486751525812527744926645189755850239017977005200942549440563645764818345852552072354528741822104098188398731852065477745650988306512085348256640035695859591234159646961309734924757724435533786258279123151541745199321019225888948096889525342071467066297707321105900730897265599396240094878097648795253941787196661324227358875646389027736750549460819763932367645531708641472669974177604121031654962738397421111984749466137578393640462752483275665067954006971455434901702975579670607943887527916843207697262074927119229723509285527476770957863453749364302986904702880997181930799481821647231474014468701291304271931979224069727512945243398902104911932030450797902178642260213037269259444858683169501504789010366585768581755586793365858613466808442136429840224172395975287021297579131140039951149301737148285855479736467370318916384061029545782757126090878361569327675933838274041847457764491933320198367119306432164452769562656681944994181467460958016022226317064710469170145095460714044540347223293552601847922745310902592245196653046386507473533056201974446510357299672354784637031885673865385707052870574070989816947834417300067655201018889260330319856085007631633361428795839091664091514136247094180562885185505655415668804379178275427843454186724530495423779633239804052125971563406281068568895088993201961254296081078314388190843258918350523230144956980652181095796293551651901838175799211924200591132446628593835791802668365714059275980342757739238648587059532017626215181138229913411213318630567613550587748812178409388765495273091180031984760971825995272097398214802820882799228598990294298788518825924770795498018134728017551819578338572548587843706875794494982906833205602389992474979708075667610878227866888562772400169922618188223303483874315941696191257645065596181332137357630521470586665334020430064156185615528556208593859408919071821849354988973512656760441344861919577243556210489498518075604566531899736112432501919675847979933767948205157940653555877703974554805942609387130899470097460306310577417799985882440129154219746887469557730415383192297178347367381131822520304761378657001256041575711606606054319624818668239494319069491842031101845476155501282176229208485360913970967442300394999682470826182251178558565280883495127763632410035026196940135585873150997966957377782672718606371694322584390071824360592155733076454801203683993771293176585137403986039294269310471327193129048373018169629226745788954464191707613355045655453151984071118570870683972999503135639731084759166195248852387470612693499037017720821800712363651567436714307966519743682723727826486083877110592565371500369751248173685892368815374667388277998211869992803180014994538457017606426902685786435465834121743721742344736650763179936721599838824896103796499547175927352805289367786164389812699131651477759156640209619065302974879261409276532560098142370329545415774582205473156973536562954412206692315291476547139366781039609131029620029107393809077213761000274924256973320902192346885673695201302306402421120565658576849314930769308462586977810265319778842266134896602190261970758452331034370146759673822055043175461642145355623021542547186009570285213327407761911919342960746306570156863369213239442713017244349497066144926279919835209742336534093952673097099619249898392780888161211526663871086308817609744664148630085770253856151155954257567059261288862597588244133133279297494993153928768975171490569242030066041613315652358139518002507769676566641337994308830054589314555164909416100485515062722065710582352409254224300799584235873614096746381771721898905263694090169627466923776144360501616019081422867964620997777087642051347779084923474593591189043043027965946247529658474111957015676769630055983615248981857344332769745905482097250391521889677431684027214905707992661116779933080886477212443213503744464398440203561363067826031095721553917702757901235488347212469669195263704802848386680456183975782642357296027502803526259964899872804876596180094892953942048511791103675154128275992689106285378830738651295696489629116898600168205121937211425128222579132516418197297188086238638738908906065831341464690037809550308152245811598275740225276893096054387201973925746250641653562784517797885216878202737856095750656643963509923201554886075822250786315617561497193444507481406403961074029016840987744482878760117075537301496969596865102452073522190534039993158601099091597440271209769058394650580820708225243241823838289908133558222401998612388736936425635746185233045504550808862513925187564445701578400819205709991000789709163825692666225781875301641145841258618919952642544119198280113895719880343084013639597545090514917383818137145918876960874810000240426912435148567172637507450759257800545051148069682841101282239135190985782914690269757512074805082525572057146632478328557158133903205844415716446097150947083885563406440676269031120617223995162252332890650373987999159285022883898200375413884727589407921815051504432761077011859980829083418176957558298002338634854894959265015118514353009694614186553108737478921295054075656773410207217647092030180849887759912579672891509007235149312348770736732738417063808934773430719238261240739613509674324148729374861419837704070012268533622863506649938474315217582186606651830724920957187705237371224276469206388621089053102035887546269134425034484722052813666977339386581952840326870323530667145968014484413212644755338154540876112299091526497173993128202032339065272198148858176286015758241046342548142455056047122523912121626349773274084473772528523910745684029587081278672386876019568318865234538124717797676573286310137417505651519338002226173128193125937350328095409152380325164291972102204445337077983846604941930343842553967202781178304821447203504717251304788938444913273196320560407738749217401658429965237185007160696218037567866429140216442610419182729989811423185967185616270327953560372968548948156713715802889837107014093074800172727904632318059133964375373879249189630863881320931063003334815268317545566143251148330474870067379488053652638278023270458836512043463601538784144490893284272569954645555194372400952815302636954948043360874333280032969099318401177165037220850656967065454668566434762983218700297652835881054877224378476269678874979429717537433556343906840175279526289482462591152940989281146562865564828764995126103472008968663847987831862154421220155355480838565013828459824056262840506947741294427870053493413202504097685365964347256963383593166165749738315678368521357162928903374309743002012898958235292281585438567782475295422069876402222349398632574612306097268628611886950087791686730939584212204351366826204898290044836775604016240096437362849965154051368780001890297503350497684871545573123382954422121185103674212336540972697015671566198688553533417729335986629879173971539869880385769884148122801000272979551599047879930435698435201024112251937580042035502870254030327376532305994083219330415208754214771227716944316506931686690526581495798123616078145522226068955329826285223532085734805701199041067750819578705826945691192000861130194955483734110021728999698385912735677382261420128420115502399695229766658121316642421743803921550721523269462641009666902437529137396840126719331380882831669948700084729970774798100807232938198064789597726493277276595354423531981968068373172945179070566579816069794258702883987664270030280178028348935084446161676846085844677675379520527183744908231212659053883995411102409096328196091129172184175071689690962425841093846384605072507706497624828536550691582243062679853086142562653323900284091461168187725763786142747757316708586483895606596240189228510932510603028253036437204238320848507651227290885907588030858222950244936198860766148141179609157076558325030851918800315808245303363884824821379628405801388989436458959847710450050636104433583989331319394851526270139877455693247209713954367058158099181464864721997135688682654408213121453836094941027671267425856228445949467600423091920861409248975725250945282096301802898131178218653848481720717771274037608175851875118412927285011993541987841277981896277550098880023435768402217949396397491034884297505607944251911543853981457923650954898624178987343402497947110130160329678623648564151141776883601752186350474530422502370794360180139254756689871968117071526711311273031844772408498423798842788692929580180590578685195582237284601861192054808626514553012620856138052308819864914003536731105206103284026540031488928859537013776434293763710301623885532177151977723206550572725544806786356680348433685543445360200944503411704605092154829787862394970757586633338402553798985492589376266109143178409211622911859987455956443455478048256992894877857594760504353803411733509318714979634662722022466627511962535544977965412892205859877230287204508874876871511671453827630435776996469530423410625775354856744730987147830439584260123219682642529079439255539561720494424931618404643006296303076079770649921255521415321098198179741441304840976233000006683305263209205527974756502680394875877558588091670778190877323303627012587139278355901887026388759145790806450199772328212684946210820359596744570231571700172471962890711928772967428769015104792970182308006153545747791796946940933309198758085772636448071696315127500585045273624947787942318051927598145944555720138779880861366587902620617578215921193522773809960975094221028877782722070409958544442069764953728423473811192853224842999271017642661956946174660691022217603198847344180213748331202707413102545660206300055557525341039346643219009039074135776874044700349759526051512769030827976053097416898711344145103932956536726669668534173822543009317870433460424939729279987866622459371464729644631279915387485939851025738026227357324944506934526345723003779653242391299346880168991044031263377092163835004349817815154332131000272425526304359368531363610953320019458374319219251445674423384578703395689280205124961062027325730441909228332938291606873407182879085188385131215299777355267963392884956001705875034578493796779528795469642721083544891713765187618482654286204934592546436299098409686400040297735406325831232551513236870614648658860186783626585297748736382763882286812286395766835042247694524913632281656373335906037427703306543891327802365358820976115875354181440217087995574352684938864488843655654182510804168573397339980474229410555986777759426263992572750093212705972148971043174847825311174224369773111443422297814933981867505485293928567263663029176582491026419064959801785917642638655922642911113784355740904010690784950836967751814463911591483368739484233797970490092018705397482177142470467635492760068005905799351418678659897659899768097936685790452037848837972261826639404053800378339972689991260480687194540006620751407612820424369794217550336801850545228660918351984433778528075077776353978766729154308831779785553562547430741028265856899447018681839416695393864090892469257749238992730371335756911806181228719568716576854772550118945400130351608710390588266242863908636620386624212842179970725292198648302222666102029228566078935929675860809651136178809343533034889942517465318505629306680414831410057398127074991428725868409122433729903550103945463956326512550817004026247237539082897067707510976662590964450231764352715196440227047224875719186975205156859005211537147194373292471270509204911176114634303935793724700688993527372404878260256660394835635221394017134969523403031431989583103085617537365157768609730016398296726146251705765993363326715289675059121864204002093792930203442429787886907367908274321729622422114215223533662103730918062089793343714053209437027006400704321167338758858682810449020703275890874837595556192150219037041878536755164002702393020785500496609832565701877609373541067283112646181212459157501323606435808138319545118672853350613811304847309185085155476937253518518552293275196424010614043259480646916322919481102232529835102392850002022267321916693951382664764839153777153496068282544676924797749527338971158103382286115208146282257794445512125753114484540541878287593310307721299011378071557610216238410933243695074138152156570257337142795685304471668896406901133938654988529525501919879305836275361031592091822363416238533856902870484125935967091512663231224615341896748409318454088647317205540881683158698525219668936832397698306212944581431078025914783642964400932702772299447026749228257291542447344610805145462134954842595137848513167993680527055449369395694698364340038637137724288429822587420077607950261717884546797005230977259904491714656177772422739886475641602015012992048188814404997088513386207704553832827482963153973695065444869738476061126106096226957719204955299434810046294493977890065308323879518300510028815265205246279744733471628089840936584243474288218267032671309969548809979168843375685028344714251368798348674410503915630490427974380395520140106816480026194857510940515607202475095035041317616099849612535381764490576274851551210591949360054761724325064627644205011060882063811902216061138923919639054135031312106721878515327374003591431803813763492999208535998465663205228279536672232711887588365563510056872475115260466294690454319968827059996653656722038113593450995665610024971726552044754597610419785426672872098913000336574089967682239647949585075323690727608549885173632175856430099963198954957123928261067841616474832235766817074719567015483124831824409743332498527808998701439453447031861267058285284248986822550425162577405450846234056051849124959724299213716305226280077976563783206665658800484661429863498464420002321559624624203688141793736724805930462040446437591314375769367333349108677442139221050400194038376981078360127333917414069149897975670370715571155887645895870427457331818875220162643668667028246917265488353241327644266181377628381721615817725002146957316962413603529660067041765267921074968172742545534279259457876026873452321113078135556026975596900129519290192301413272773157475708422647483549320269314924955127377463383118482250535910885067950829788095245085317589950802063695542565391255088552133664271026235142524991630672248211516064345870906118447300814621429348310525788910634677555979566008847492907065805991993012575515339777758358790729864373898183768180500181959187192486139553560223207504917380495592038532145934447403388413775328064002747391290962356629878360915010571163446130542123459226117602162326269586081161183100460592293312229597423664363964614640358304542260697800095220806586101683704574280254153243570464659678424573361575439803731734522651334048252761362225788297243917979226935541244823357383192570205011276385587997472836782580400745514497281463552757408292069660463330601052210379098114225750327397702453298638293969996537422925073028613454933032843213734899170282320856434820943101188396443955180859121200687529620230465628399412963552510317004334312640385626175149579425064487976130932569946643462056617521401990089440294932930756643973967412440854342792280134137943598205532572073074665968753357897466616173947936031037826055654513993025570905043486308442481696907218340967581064668162340387136352282911910673665880731051469859460911711967239702724129843530383727991462694171856467570771104164298075641272987592521653705613196082284294927407002004080176751860762210064811403734522098126552526917513085994802108782954968938638154975562115697302584383766733821856419753799837452985925434299834222447114119101690041668814945307393959511026337078268373436263141648730308234867102775308014616052038312155608454847027634023867074698248869808709460089728503341351244260749729356500340997738441602851347416241805679876156327778491749324151621257222444607341997150598107686736868198776426859140341351626076750465548480706818284762000752463273057100417914396138506762241262268975604465223978669849013854144492556343673053663328258801831171707302075183309646507287898636246070851139023062702135377551072258708335680969011585522055969197312955859450910352461899829274072211410674927532025148929951849861672755607301747741947808984566708438465998918678846048357571173614863479286903770076741925091252095300038332920631313598134880451730550893437995518911289399028447733713276095567300888898331523169902904335527400098738486489270096083549461300159397712621682161440621999512308827218068591443015271603923147975470606245414499775584569388727670450899432180882687413831205537727969435155200495550314656288637786711272300105514568519503172797717959268996619995266140216240556824683061411928736450262893767740016765009355715662907819013233390148167804974045063429630599776635448691973816581262725729196437389834853199190852584887751759824708048496544852236550229849124988878659129909609006993306771190304598166081178603965958553798592883698134506973316522093934147383792493408246680389747062587208552541742990985883891550271516890450719453979745611385336363375372961667649311887735890314278854875551117826267667145885367890167951367221448005633895308210995367871104832090600427687609592321921846663626002213998842905771335071943563000398882376802719114691804159058676398628687008121836473123225275408153206406559853285286553534777541162043995883642070270679294635838563271392092722658138796056180824758784287606168485054597795587358880549075805368799851199945668885080011877060533039968776073614979959615047341764035205808936205634674069186005968711654378399536976944653778010504141143685778609288948246800503944843992392950995115252066283180382382829276687362590595100539251104844382912124889539822507610216787632146619570707564308823637849614190550969792366917906701391035613813344458736714350967073152842258134254775977658150752211662186329077863571760065472820712886124863525486422618484657694931511829214284823362283160000869504199773449716470690237612901712283253990917490981426494982057462080437034947984179556845164647933960055207094109838349220310607999896350885072872199964338822218999708610864106718021475846759553774693931134234474652625949031550108043977572790664974249085355299348583470136860691778355719590867159413038256028290471856813385325699683152432300534666903092839996436455484280832718649035168694684592225079111876754160887828242372448950886235837121767786362290090204597663386664863681556317601181068884275454538343798283568699216977472592199521262214756243264590608121526523198283438869285401580660783237098516972917072476804491831556395457188344234932198014404502800631073916542832698763699998917366076844151421819936211636311361207716005892432897828015706641251280482527983749903407239971025045805527086507625272850709819759262290426741518515355763899254529748402144855289127810515414436439786827269578451232790243844005075173666800860892576966228721836557900089802301201372775171878872033727813425589793647958247612832302948611636530203210664888147947111625370404318399658181562131080854427997569586415412848364070016978183330741535274500993440485862859701147056570737964769337070900735136889560834690604784877357305868179548836475580828335120730791253367167634647352740830309016846795547023186912299626436303163263503754371124719412622692917508826341737311077942360258343465001795296724539625672687198043503529225498063396962485653629341646538624782588814556677481935998368477156941212402296200187902261371363620763555938953162520300043350660138568569815600822909899697280564964291346181975147628820078019060566858050567950312884585506479128503281858506625687941235741240229814979091738355626306921391525506703806904029974953342140261476728548211957107716498763966447207184842438162960384044278061740209990344008328302836599053405294154666343570277753449752445867439650699487379155424248989165461325751932705715845197399762119024070303394900034825568557170814342798460281034746235078545843314918848821276558717201580156181907527872130907669701264966410076171688277981546665317253208821369552425603882604308407389274895086739492033379891816596926447634287309487087909834485403903121769750973797905762065207303647171576269389637039784254100297240475064622360883445510368770735214428589248277594717400682516154053303183304833166358327301242610609971029112236822903210923281688310332430949771591392047456745373493284787877606238396006823194689233371368020764539088325869776201225139113200984550468701343687227594576398730764101535404317581581476623444583616607693340867298777825979523144837198379339619298529331931482884418066208629736182722919408828744158058397372251990374536472923669829788127538597999722131845157781364690003371635135183788870736080767399481582609152337133176765114544377846533302248166312885106950265937279108987040794166107934086338922580416898052738511846425281796378259919074721972401615910467412332511051754204641902802181234469715772059707562895272123860479207964934452792321729663817374895750783847032295119833444885258741684722013749159503290968110608154684664916981374070595339285403661906027793570538049712404589777494048740574643879620349955998062063720389634630637696746759633611247403234419505758028965951322060137609617029545429988880251117081163987855577303512997626218212555099848286094630911870925437860167283789199162273680262795048836672288648521159644424526350908136361432021210569420910254247772043910004716209611507759942275528436867599642907046345263196462281890469982393422661566891095488764047887958753104753494785581502276172073308122595643007000683528633263329649518019830798725486391702866373987928825687043606374645769159600613328839888738951332032270828867187557423179166543863387074304810371234461924740655001963194307421993475308997255845532341401800752845467428125397851750475042811070610520215683021209160572122634875091299321881901594120981043504071375599976927797614731365482610753003347078640004611580168325701428099635598838197467957596255668329697076615602539217032928716546339611710673723583400482591281505132633821763559285948223603220404022405905177520893595731804532142265463578003630223987261909926729305916535596619668153562287525769159418444321291661882105038522215325737883757232295975086100177442949650658520305382722383051136986437190813059014324477143811571976398529703687583727539043960098094857672287601716090719956075742505294472319498129995928018900049632548171142919834044468871861539034574109590352328835866946849607510592121373343669574013675524850840515779868707938449350931139133122686384028269622047888831090336196668998014010306981549384473009588349734345129128548742190964084302547462109968463656728789338557327019374070555155964820770402395287975835759592057559691896410993564569151065722559410581933354797812800539723742787291037843294056519979415064231064910142855714989316380581141544706925034903816069165096612365604084412897449251110087242480847028251065004692501295983444189306575504625566058004392661623546877475274685106263549164941659281478746028130884342273213420715740827646037929306908493667128090405244167877059729029136481122653843384073340729233810148440951121563419409783172059183274473373612272451057738181655507271844498200549383471005898119738009224255424851542867249313110663265013827405346297098200558249892979948304391478644275534397271017688622239456729391932932494395642461311202752582115727741477408108653022029341592959055515619822547491664406362383610659117787079269278909046335308896431743163518675686299349435797605221321327681769965613903735647589912436416448192832273274479229458516977103368803193552659648296963515404786930938248529634247342781837833170088423699056504925170802884695509971733389044216428911132942639997218406184545696131401950875932185078844424532678282041960437285805945208709924338357814313481492696378709398042358550569458916407753562212255624684251722402662046903805362020061668932054994120840912777057643282624393459652382634748568874313794559117394036012257910107600659627057452836831440805833105667357165939941787597618070161428077417953084567908993735969062310512348956463231500858294308896311371845694625226242798619093179122646449849376388767133355794521595179750804208357658375458680459427122132466884004598920600985784737939142456530521485353176127569080133002548053834158030155016712915594244576594763035533945625916237404127150528767218263697611844999488974220432916458162051566065560707392869380597981416019943777048350326878357829894113803092249936114568228034910662363253356939544248567709338751164640182874855029760952350440332028087349139072133763592599714333936666135256632089249305872498032036740434157702125865559833441192823468485735571595728657697574202350610253304490860005674021273509023503231994805712608793882892249193911412243493460659715794210762880564187825079937801912216629453207857311114631747972594426220387430093028359078476890353618343624834234806118859824015320458535318304381221764454855990946645802633398663224066072498264605551892936667726854421230798385227733809251048211885373509699305573339894588434840294786684289095682430201153278526040187480623975978156831632443952459274088947951602470512020990687490625915581104317331367578829404751156651787002133894520168051195329265697918381257876007267716191711342935252934946168459383322005752763714079291912850650451376508210312690925386234365192399291212414657098448891416992283575725449904172405188763289209930928587991844850678638720140285966184710946111829024845676316032739317205075399535160798067006951191457226207071726067729434056102992629093007696249578868712323453530607357549339194354655187124977262858661850852462469809298975776324076272189074667088868183352091549217678582072161142000370270534011857723380571808064038325403686863239054842102342345836655775332029421878803310710886248499678020341519962957045531044540217056338635888051436407241374991648268737814909587934750299343760236540612480704887250934909849108480920494968226028698858473705270281194303719606284822508843776791754703919353511424715376340957803346212413860758680505245557975246298788177739801134567496563256131797707856049669889635290754680651215985412149835843953033485867790959411830554462991045409274816375583535247936578234767324715729701265997603595153177010928079812089590004640808824035232338637615319536808906704493180457768613795049832016242103336806169901647524887043085929487459823733829881898542791241804360922806179382144889038547331279911566728533986233049436130912496890687749485646196640752936144990268785381854750780418396863194400205399685490689241026357664378770794003025953317011098262756734807313303527216211276934554811591087814824425419687076329269043503137185253488452632214321220638494196065085646743232555588580842031183337466568930231095396135502074470380442698897029634824919559043509060079225324041502754514224409749932885931039665369837884772119574793017862163679386967515481191639907688405619822346885627450115175001188787127254890238806916696780627610334729615972314073677481914168227750251982870837701015082738805356317123697317779440373236610654331280831234732374040672459001700610627298050090133963985262233192359559362370205356029893508837068432176111340919059551574351169829886579453737975027477910366264131685467248091723480270999067313616000163122169133680925972666534879818477773175948725741685604638473011309052076022845153991310612971075386638320909200399447518387287782081955004347691456588385506521400591188264139506945382814649174280969288718858412126162682241118402236983448594313474108865624545230446334464577652380251852191695075706485870736655159387261700667798522253078362067427596229296139805966203634522177755215182218996615070736423987325911182873630113722939176650817078757901444455184104346101227398120527296752886612500151541354333974007374526224589169616581873067142798735277190334088244289766444712422427846234391491710957972743348866540647022720664283649965149123179787664554971116711576246475333183654126738216599514635139693753985026925168606702725937581107590730372159746323822451924477512641099518599697889067211740153549305954128978008472929748995697533592165340127373312690447806843145749406468610306280704915258723949705525753067697094414393045612792541831538141122214835946073266287988511341754631014254782495071225417291204478872830731618556119108366232603681063839088856842561383390849417151653985560667082436132373419807396062291443364844406102392295231047802618131390438228447631851688735645112793299085545212967660522153659055388910617912076780244470346138327316072503381975691439801747905576496889495508946387789637528760556863307991974754069115322332257283835522629133256643630889686569812156789195732802512168531707041312643426707461797862856104687302426180798481517885917537485784687061089521647726013290367294000218256404693352973420741343831350504593222882554736950775489984853440802620831590245798164010867059142982369762190051909648043443064446454893890859673768012952573011961193937950440823142236035081966033983477197039341372669133712843173374114244504736223511981521253395663540044176324592414826527330949296046095227139339758114813650736507368586926816642295667037178603115760719481037463577856610396864175084784085028131889203296911916361941631609980866079588669779665791889606483597813811445467080351477889795032899548459536920782997596460093568212785210378432935389494294988954752326873396544036395412136781213775112121674323295567350340590616663656022274445037322457364826434590688801128706395024405558758620238824862324131459308476122106820761614904433070717265717750545240088765111209992780051933131432188689056871303029914012467111442090053738278622245754792382294927378387227142185510392336934960755450435332648493997180725960861006524031275532708630458140423805594725025859948579225881732517222853481017194849459682803868819312658317022658748034895811285063834193224437386883240673776347816428872621984326341598291373512702332347051914526955004988565236251457747541081934464096959963932977697157033389185022560037240021102773475077704499239451591819184798183847599991984981249856276749099848439501882035807356584770793345896671729020481128302663702681376066312837300426383742254723853033318409439465401022048811855888548108669871186036958178983925308541949775109819095218404374809310577356219992508568760871796763251311038654901936130095263276811061783003905529922629720827858284354359534432975187199982071231337506214933828482430641258989314996173698476835784253049267650664039697847897995409865510597581638025581218027260228789123590956264539762659177006482168284445863912684800154171452559700695134207922912295613322717677195312405091533583726188681327089880935081855411752595501711314994619005888390200473780091725846562823168928023786787367712551700582323379443698918549165101240713420805325544357443617082280638467388704997867455109944310257753215776267283046297981146726763272334694055883278731598968658847012119117498633328962634435829121826015819046758030078755412843739800704863227832519009602457148947968432801503794918541113404200100513917371927125565741569461251377804840321753826584524178995861453988950805420015340920116176740601570597411056452246196708699930290254110495763593212764359290225260974170292511208694902901576725172115905827347221661315803008447719973668201774260545922532769574684836000767409777705838823480972129197957598622420616298886486021365429613380738624459669087160959087542375434679843328747061985349563584226691371589262674745534061241423292664826405622763901072350493175786149061836418862222208549915595686508712080125082210320200444294010876970741792268467474973052862656141857653920233960801608386831062092134670640384337304704526102155978969662839290436598812068673539472063361742868896782094406210842562700852018839432517466656534486828808435540146678315673128082608054471353867750022634537047532210817610097990666065027926030369322725892845027301788263821029252177069386237428387934452742047456870411929270050422725828298822601491617437033253796840904005214306691007433933491285878247693737366294351139402489488231701717696704020411632601524163557012246660910478402847902214089000827059314744451475649083761872862734790102821901729504297146282223072618760413398191933284412968410847845281727934689106619805604861266852472227725422009753389289980527937676211006224337504564285502190555917567577105987177162754140655971828515776363787127831331417440914666768502358030186147422119799800008122267693638328854100374848895771578181316103498256353773555461453025662075240862922563489083372906650746959839158298541199229035843842735627699021949997075026337878473430140515157748979686296603334583269658361499378408630364478654334617877746445277431410686899965463892723062941232734751506271128355465077350346534437260254880213478939354130057028010083127429789932198000777640390098461035274355251416038624421073674239661743071605295302447961814667180319098650707930529779982688824766307853943486700959305246696198085589415247167493889087853028511327050203210189785690934133779888462346849709720958170186788585579900623804156794852101958396300998661963626138718098663355951932577980956017311049636564490486302501142566142494164354791120202919758659782062029511198710498579591287222538068204831562111596215672143914008525500063387150211789906186481169465411549372414801627666127403652854284691834041199702007298743808570513988146114198181913783913666068875500501306486868978399419964851339519461854209752289807109933959804868433835206815031045993559105204301685144951469187710645339671686498972873600713387513392718877660146789012350865708500822400343910665404264995217583913733283446822775960990658606657899833711796869653703301041264585674049136814335341788834914794007294036570555986793788908673296089086043702524971732903940113014182167539416916598199753265296670237827679442730029718028892338310375107818706192200272686339572594132623648229963227377384229043005928914521244307577830787973327208674211096594830665600040398181852281220633160862136014908457547827658783683214313408402909377578271415560213761390440173397667499424822190291766381654281227892521470736454501585787405522093003896653052200272851815907760244205686337239809273910214538389235081854733145178054668563114758636159499041032694178590775997005726332699981699333384208842720190959351863326355487560264262846508322797423404440554154794029065661555554288081493383457531457616221490350564229374720677214103323637598968953549010207673269174523967401654433757712307802462715493257171839567329531679972406948601503419219437368864865519191222053301207915892274179105641229498125606675206237755729017852967433167947438047840554261679847808614222120441395515641320844444115850830071542152742027771025925733574632018810599626963326721741324560507961202258009540764013383335578425992070855848897246837571053239502569230594999463541032575932155353240816213319215839242518952107779879038488392854975389256386281303026214396891040084708033028390550203682701023404949600127932053262010238335497469416285385512490174509659876229276755114100795419285128224208787159670407290677532389645111561112559146625342719637905480323512172581002407387751611005904617864164532130143987954999829903493900195492808760077918944432717583537995857609227339413198204524020191886692124994015077338525635426661107110627962611791590566957010213287027958573912846529272473053709953610075848222854644390729864479766639252527996296526311302020959251479055024375539425289401144396717617107680020798647750132074533058193292036783289470925122145807225523735115974031406276265966569453779222393810220211348987118274766278909624994605426932813256494236781373414250413348195696354506957541169733398753827227015083012231821390983558403409772894237332816570307995280053811062933832838117875201446499752001431085487396376679377700291915306040649241951841064496365538424305444454844691710034312906041238484100867811135458233216406807635509407699889392101402108423356285246851325133586572990773665046062747667504655373705610364577808675573739348989912609784344067392629154176764600156016804430306995550456835108806783670563761943663526773164270684616804655194080721793953320173312257075993120060590613540058606740976307762323319751012977517274214308533100752473269145466932736613635672346482948464741310120685106267764168182927716140371308736083666498923156022140265732846218197909636228037247400342973993089651133554470998289950685407469440464823897049602455099907846551311462963829087651740603052665596075595822223507612890468151579202517955650731175998491842352557907394900062682028054855738031074791253788999308903059498582222946741887555045444892702997668714621755842148598230942625392192158731033284753275868186106762965037518592051192611594167164137218289384438937592662191269381255397389785716261073831850075335945340947084121465649473911958997552591657325751653994513267829979121184566941490823232455439015729035053287224395010184406666299675224542735595973951857257952596814005797985171325396336541479312991256755487543692816604023731986485877078037956708971959876770754371884786688406624399415055266549984760766651773885955615948253379159993849970690641868896103565525206810079234330695696631638380837124506749166861337363825168909744684487345583742829220124027278982558432279077498349834312489525976532497442340026594445560345887182286637239629109990744537871227051722444983403999343635093160406575362794265778241545943128118429856349989505226570363745716206454799499577988283854548145311195683295723444517889897088439077717344432863871603025027934075303644644597597475882625582816947346103179207612885623144218733841965759895143203642201312168540443381249652306741415732948886863754566270543458830454486969080720813079525540345067838481785031246650282014034706624051087606114937031610209917356364360831384191584717491005527354496273321996375226843056356047902811636098497147965227633704591320493294543056888366324876477639766296701355377455657471316696116694238974052221403543898305363451280696849675661895692176744031373751462811617708599753125167413021634051135454446558692134140242351657375962159322167238403711848134762000006094502215575701404911695947938949410004764922846938285443837462495111722580160577013827286952336623791885132815588505627140855545479756513402637447517344879441125658540874392667885462661121086178983245022885989394277506639489338850848279405316409088700222044431268791523471791700726969565470924820862144439066759634488424129891242658979904287763406133340552928725759563438215613471643180035685818789421484785309803209610963093187042341427772695035358470561135523134568375401056544876714734387143362140475295330640951077209454239308940441590637119326671399636584974237910607845154232942459528236895010483498068623738973845576191098096724926572253032066229264720529753498564056606910164707708634211737302509747660733572927959591711166833231069359729050631353807683017894525278593377243662895049121741616829875881221403280934140930730698364398583429469038265989331870547001335343816121248845764544887434957514451407126853553456522370901612600102367511824299738641167367180598518973059243494054815614568410069224091788384569863564963937593718809402353129737415017526816342349750072797137624721259006710404114851488123126487047659597125295844534097371348807263506263407814198082016747811161318717427893481498108178564780319641168114709518653941763487760278503047359198184096556437237492188820476584686433239499455162588766907064990623746055982826490291384764434108864006514114861184230950059567924846627883206814247446283125718994521021164190093143713585795589441658248271643286186125254542969452034372862906138526715569115010108520163205592366321377642254953648853342515754007795632698729445342332356179997541438542206683797565982652082903415365360135318963453686343304430520388087638905426193902874919901518432446174613694799915156292516955476022525034446859992808120763214887499848702514795805684089524374656330725104094988775921588901601642022539429083571554869748524788166660428049718141732080930835852253221764876302450639995055834762412586744204649475893224018694942107702933237174500887099831717432691774127486769205089476806091054576781441650588031391054848828377511229058847540808361691640331239725554147969574641682621020673724152564465474036693735457030571157125916202339960716045047668060808905557182843750747552236240580985974126590468320451241154058192620047689689174747506164511079266269068619479015782321094040433933651020619643409175742192860446243096289717674226671828857824968715110746071028667686566634314761456095221926788385291381135044379407885580340234957531261157299282981805267230147063823775021635157445489700869750508289920591039397686477496897859278455602089388273099442307093581465487559568333589653019672329366820811605759264060159229667405189635065403611026211972691980862976633616033517912068456939192826426316513285550286059825058239468041502964066515057375183301180120510140306717199255531708945383802787076298490147817203494452720005647416379827506971438992967215638600161262458065118283680774273560895955384698134058795780520045889814468558577347052643881178552668644952907067553125251992810177036919661363386829308250747486936374644992691884857459376295080726510842588656221630093633241082001644973770085718668652244264275126985935254973380191531193125978198399602175339941870209521614541263883385408462906134063913733823317138971407933730032555752089613892023082362257537603452804327924629860259303996943108333837675687084959254822649026847490993317870398670603858657688751965897538738432539095987296196628038851823521918462796830446817334854009984144809115185753183672128551134874875454053765491867646282936022611537870129093364827691842773787486086509549940298573779789618970684994759079820417792175121513950719126108070086979722569494894910312418846848966691078379811117098003136893994027043435316236801088347606548314525084949896452051301401565167881928982584968158445187837673956582797486391346569075900496024686528830899476963951530469578079558129606526222438434637175579438298214912007602790076909565810054096789759077268390168483136414362336179052019656868788615307162283090470868224964537823459098394329034569743555154978754221071600559289564106403799416043109798032879178995115775647660317045148621050593050266563938851784044037711166816585219758342032180705174006799900774162264823407659300073832082230364735540461827083000822691999281855140546158024755276707584188555782750572924214704546486452360875274472544030002416220452299924722110384686488067468341864848949033252837069755170415402270304197759214071283685453402701591782093422586987481362563418357660639489352437052247894772002663040118718054526602904078135570508595155541336696959001738094708294546370697558167117765656684582526667604902464674037155065356251506357695201957224793485198227291076800574106875572126189797794323769750105277910773181437539805876711856082174619550105621953190115316792616069453389212015943105505189594680948387027840082173466577275769172270542636119795523597435192845473458147994847745657186007184786171967789845043058148036538731486334776436019330182280665767982562130732301471339452280339189412514632409872804112291598310235679422824408232792840132962573568488052787745510969675729632781508656984177052257080775509495592651463430672483014568787836255571849389294878835104694696153276888021703597153499865753717084830902761197780161614440595457386572537362998801906292453804809993821779884866901404475368504049286246652868238117723209880163568853793369272924936957971893474065829958902317534633198190720911934778743621566851905441542777982806281376505399267766558197164659455128819227255968158362234124570293119309690943721298686752345391491074756528949390430893678381584575561750678693968024865141653781512586966055299554587337483109125864386659496311700809633097164364921307291496263629642154694994076360288872011518405366192845493436226308955843783010572966374395674170282500378734213117597998505928672150791862990413925947899211232434879871193972578779954539147359438167234314628222167565892231698786147331149553401185184244333750478301357360875631991746714165969737506922280959277728701741587817218026793799506444713522786466273606338877818015849502014940049749302643918756240878755785464303370787811691398323382107190438375688946246589965031844794892860531626908912555372989572917170443994262803816840510732992622953925120760188566979830204273682767390032139587724530028443817824318188404238405894494164985606434882531647440748595125787089518223112678391694265343501046408895509703332237422257360999964770362580087583868661507193124969212582923176315948563359699319710216693086873178555078297346706947684523310339927708357746168187718433008539953745320476640517369207503693947089690737312741353759750533405231296645946277243577512987847944508956364369141879081013095256605443357341693487160529319715698084771678562291161004952655279967752210464604749532085184726711349669980794321001644854527868380355516286219800735979149179567928373206022050010097450642620825879717509449916194813171810341663544151453697465891447028074575886337213507580456331640406084018472894771652220444453992205450659665493407538809498850404156932326594611251788191658179124494767303346437011628301077539910873345989806896171004650742734180890097789077871403693268097444735072524434442697626068398661289719197645337830270249330610254701942364494088982985570092982392296103392325673549314873771341724923993438918874054689556058035485058478626064341929387800597517844344440214590660875053752827122456271341108169067003470851165238160293173360173386119041014872068131622590918506049946321257277975700332467761741277972496182955451735449505437863553386738335833098669357473442511157773124806834844979274076100634358008631566676424894984577820278388851626682506206151896353305561175282525585892283248462226432743640281882067048628013400231097142793023756676623214100437158463554808397236722487434005383987067330333111240398539853846307694769608975001998369518756761060963335145557790334803667551555946650053269629334517655304139432565838110176932665061110490676145495840551896562017400335137227308350761794309548436811850884449935624380157167317354478755924024724754003438470138320552815508593023322085122034818886072463691137940970517593358227952090736092947825305961352544989903226352193460330960950137841756950460890820047468018675935222277302461585184651136444891010572239784978817252355963175318259256895275494954742008361353931309815436185545530734732574247934380095439708272162657020917501603576645195153838114059144612210970577311127594142332247656766573239602766657224761866809310042916662762998496324510996252051048108759064666819552356030890307352616240841595805496354860897542947203713643513342449562517498358868253605908315505377272903757748051557357776403197852864792716623180471892331352327332962739641648242500001602787921391681601646619440396351143486056455759840337193498805022450685481182872150390562272817546537172960989621474913884194930995722339677805059793561697793638326109669077965921693288756222773289774120606545180113399875983731907361111467521865950278730097370357943820859362648762832958616301382374149140323021838204266138343753863130440719086061951607497373925801909349318780741281611211999768678471617565545450846691833464693915562494313207164306393344297320142241116214716679794832573966590384051100133230401810075397630599259674518044536889820735637714372479214359272133594540467280336099947290209133521438476679357613241918397829716357317548589540059730389300395081566961707102029970987913135358719765440808656187354102377668869838089376727298884453795318577770517134121211985131492086263231922461747562461359597568730091471070460010755062162620956948681947467250068924137136108386598902250796824621192077752376285714795865615345529469323582380665598550539734458588292093528739643385465911175874911438587117766969606972799769670372768137035898272588623010205666775161450134977534254946701493057496498758137090578287033536668418641870427027922316509383557042533108991991126508265343158174581805324450412826377803434676428103004878727119167637952735774170095065665299867215367290910560725781818314455403328499161708586278988504508774707330006258341482944012502817925439157019121541205117003761481366109486852588597995758316603948936693898551233896685122202024628050366172435337365380852540627305727174210785297524149230615411133060073799674076499042194197649152294411355755471352424475355325571953077017455152934122224642132290453154339489993628661995836209384312376078514426182225269513157171213082705082367756440607460611615726745321384356912340748578163966462906587492944309464993069247399756058768993764453690096304302157287202207228528615353431486005758521915797367195314127176752975689967904445542911469573979155932897920031122906863961618878421206355776454022296984991332016713471166951763447207460784656923797739378742710566582226246120380942506487078777825322082367029819197499632128872538868127361680082884578143984143885483576058546360797569311453554093768295959719021524606265526704254509321522448860315903612516015027103914920596231428002428699311684515962868239101059902974066084321346891976032866040949432204534145116098852614485855544495307080265431921568043322765900867772657348043993625859510647536574079237927556312214361775138903087861442232568435807574352881101921990540561339093453409751835447772023712636234850634152593137032264751195797210445100106438300727658803293684273988393127293886567218058673815358026930961981082705416943025010427816755263693109371886502339566080197791968064772515046140152706553101346097537998461110446178481991285884760607399147504511062436680915885834386589399947084546338066480838399889903982406281578145935681714140944728795798125296298440488234071781685980371562802760401644311407173660246448950320902462406277972866533101330649761821684942184145589369538620023784704096202108742547317178998075795823127383047251358194474218208210796309368488234363454546697320106927040811235206149835171859193647314223524157818192913784463280003634665440121851008053628381990814894509175752038038177409341572225356422702234493689696930815312620184345675196681207737308305941749295280408581374820107808139634503479051502018250618332031536813411803861044892052827448639929427905512718042070105717097336499611836036405124745893641487331352926957218426479511755286793515555234073327254611676475544455674395076581111865533403113699915948436526603527911489166888265073163819690963949258991881188874602967125381365966286570671897611694123391538162168663146287837497101565034124446592032407563173097188593570709377644886258221860607045985447297196562598816462022639220537695991201414524462543928963612395940714333086026222438569936140603009966805881418186255244236161158657851274138750745174024189995088729329508728552640538536526730670394440720404940957786568167315334739009306530011243622519455326423696139098738079460964238196425177003566164159881531444508435114191498539582727048928786580736830295522994109597981794929460662195355679952093610667950282887106063710316295452022228886274859374251298338190913453105672296528444416334170210927536395150668421277244071467351130857404203211983940003841205166008467361454470242304421762033714306910366642138975515757925669620315401419420659595200937688759865802232209905042742096769299293985040975852378671111369742835910950193938761201681234218173740687762063657061846259170712809990588368707803120232676736338959535127761626757344484563511349690059503058683238113107025803733534775558166212156105741595240327185627131871735277464442572631045908366162192733761423835530812785348680502096345002385649189110416213040193454762898166828034290263899461503407798720623927194514587253167551697676514581822869683452607238541670752594673499329157811477253841155001611923659011831668309260859519609333138334494118750759356077552471860756373381159867586039763828901892434529641550569342550204012415859978370163049082065262832640640009632778212755526345445088481185667623004323947837401299343321740000822785241495224693757936947714983506922899562751787918517638034701987587157365032131428501231462468222423832045761588450407371373959247131017954977543477077046833474434949709750676478305928480875643252818934530517458568346804293694811851433996657752460224684993098312914051184152836250219646988891779512398589957631905391829272213851123811928304306879624873225277821092804384803186545612100410784529411349299441753422586238317621538560954597224295070371382486243305043443274638475809761852354991305087628767654888129427472334373871873790412484102117203134521198480151330230141888814364676227134621920782253820167866774242111429441988868401430472596777169674857205479065657857952922946656311287302644470687983222320887953144413981361877534774494044500910154021896326521547939797502874098566072637541918138951719030231366738644779796567098307984325396336774497902729450121990036871597229286672145659894243707694341937033480431700008560857232489958626770940108568292887508444072077551074707982917031534049894228677138533594509192826329157322204579170560811910144384789831016206714068365041872802756030670697749844889879150922694513644065386425935871275053471833631773189648793721796167049786138159137489146827759618018269370722908821442276698246630063297566641251703691326207368725173210409627087644542458603540184081668106418316450242977640946257257189326826915040491617623624039606214599855418906510688295249749342100618253711667122719717602052130872207779821608976097606969761683105993521605171885070181508092935326928958031035070478748579485687874243359750204912964352705155317581912859175528050279733038169267044628089950656395930520083366433253354363884106865785647168170703089950654068108464174274965100763070021600447534315730093400574717511022112163021541180077921695857868029325799585226686494592344189671272456186510731175789780379183080335557428869435566953778858042760418662439989581807224477298905355069060434271320751577023096148968628349994508522638734599378084652735941486977084576765794570979187317607659037555769283427224688173806633833754130674552671916420263963813657447172563605180597754996178976514772629842236736090409576662835392659280611762832551971483806760092448555467229116897702610371912384354972575338126001427605462767227253306812795686868984433093555180422422385882099534471051344443737868643154494736740176046720094149356837232686524663992683496094974938712795193633889448611354014083870895266945472706628439712853509682683229642851253206518120832418862014496668404005807348893933993107560796383296806675367872385532536718306886494925129510279378957805727023374209712428368194235109298411354068854704312494423089402698267450975911984036375886389298920537421568337628508559834009139578066368858863855899510371478413963295676073507133235262727600777826675244643553580456386601165355109206597016484584814334864209365676918744513763822381132882288729107266721285970396882778999847680820515833846726769625282807690743887870516931851026033412138922032340164308413610937012719686673024981630444614832988887788513270844992868139479465086088326937462253055693104727524446649240319162379033474510304048579209994586062503641647186727433628822259683658086093697035275417016865200984313531736739660479193151530671659478940785974746992610061059591808083508513130879675870506802215075898756362332854354886980407121769100802676100372553943826618091639855701164538252916330388048511038013167414990636339744904515624765374206770433455034382647478819709238805005140091012884806361979705800021644357637167853497410392750865557339194112782994184499719297640339612735727038198211450788332146848523949390920591364834182829253316577682959647690028921055505568530846841972961174087165303993428336631682588067136997260277527967260608782867480456059524449642432331933880705260976960792036102498873251899115076613709871615837721642927223580140189721650455957731331324987017494424061538046079832096355581800960042141210401564476087922173370660121129500854662631319230350624648410339092432520605962574078165557705748274545254060483449069323867884665012107412843460362768517248307373593623426586916871358516814713819261425654852659567597267993549279460765652876888651548554636322063060491972358816169174745450669724701989187173004885237343859540389616421136705310105492396834200207185360864952764738908713539592740798788319811484548812135370343258905665758596522491921564516773097906355966851973484642989229829155997823556072174349694163034104185720297362151463492092511073170302906144392457236657669785068210780304107899151512131029901081352642288276214449662508376384414821440535892900390465243993066946923930320591020707106276723637023853714087583107923808060557042088961556629763460286653271220051098620712620399886998970331648487331142588332996371377819051692029793192469841251474378522735818181383899818926182555854971342112901545846673689573186042963093955633454294102760234953683916510841382232537809746712620680639502366042462189666577430177061768873078935195840016098483616085679169535871882744986051558488403964624680669747421780230061069332583110984373525678769493071554805904258733430248689025713378551326224834338936964868493408067082526964802948201035936909317220061870483648804181131257048710123222847297585076075066119982477636399342962467783139345991510235081232953092703627486947104834089823235640599815316416254672705539238667116603636730106649345252348596189108861670245914370396814579598033666347152973238800099791932042561297336479695623963787049755809796793130839258946347514203930604145085779535850482554656946100042747495693253945483109086431553707459454886215798930237665385540292584542625235142480943511733923528959862333956162407748579240033931117254507556317333474234442884513680108674403414571047398689723921929618669052010162901523751088781392597297633393731993205146830928059258927327644106470270020600976735409925475970744720924351784789367864111730438366633494469069437698586991967190747534675237874233547877087677116406875771976179168405792005150849989753401508342449991112048991506310061283090387119974048460868511434482383151257729970039796329068317352802127564055411040137088049818703584209733650557463253091830946700395624772127392459028030061024874995298478169870813302476762493181206838358964278202965760536761230440150545630991234244897603629393800576568131085789476839108721761276480827090409758336945400805475744939941759835348197266440517556506470967648928773106425960173970331988243267144704789834366898600408979741818186935994051419816664090813217582529987516082619911406791995964074613851736527641948740130664584679551215476756089892957879148411897020726225678582007959221304016562668405244221463162226476520332246264290227645504340576902338318854302987333463573522078040873610568318598999495068142874768509817992267800999972925096070350529812086493428718473517413716749033612509828250308562946600303963356252504338071876946430150697138145910955700545363245706777688260166645377606296044670521835458277915965191573338905422940305740245767500635502462897635152515511567710012733275685535476589715996700863676515063515902870036015319607321246983488201980389735232641576374337154414695223735061587652148595075506484415358739064125020220037080386258265742413715275868498418981466165657963505833343889526672901625724192234818348398056610641697497286611590524945978901223981990999460038339287172567218674805115395787724903728535243590472277208865820195895976693316715130435100599111232638705292777710162160168735858191956287981501677382192537040121492974952830632399546711630856765042641008768337857740804223706817495424577811526884221109781039735529728125255281602063468541840174258107976655247140470975910181204522279380716102902059725393827042804832635812843936836773059976041728472577975656083351677561409118122824406077068478556158810426241597156745094560579674350114190898106015213792367538256858546973185853613283197741813100807142399347616605354703086331188524426467189811590645666003049924509659085578301744297218510651868887454510651459666297634354326504246792177555215801327058897009745278668401572601784848827898623171430434354120413344472635818999697612884794518524522316459198889960413798885044567483343100562848061080362016764574566990432857626690076568515037146573674832534319577596689213926252203396085871690007389742837655780456424373850846464589759388984857756850962979641020583050214524692279098996372483527189687660747497097068753604151746950239181203136190502099135364131202819083992850406793782176320396638189788732610621255710142081072857777550396610672750093933328259901312377120514144041681488449610776039617557673030844898810562825041320898027194271322035705787293026079397392615110453864767250427713027110759695716542883248175969823398998482190394487179969244506980695499562767849130773422586264946561964914228013212602048840756585458312236586465278858653881187952552234397812761246206063898935828106010555887497921034239200914838305108291771056702257264425759277930678242352975154397152556939144526126159868587227317672522341388290007074699120894610820079106489482202928225183293532877886001488814554688883387452540426023153833750122085657983543352785439731897051514047789228694395746353058718923531657268601404388974737817940984176822872282861420545675086094188712023445253394578254007589285298218143291923167238592421560801902616762319191886687334404811729230781015662911952164230664142349582358176652416887182226967665555067838735319727051919205790504276690824860371473117631227664779822852251433362175810179309032747051570792301032075775912836182189947212810001304987597709489354745764381581805494536236705870652790877179062512302568360997586429754626993119414734838311412191111357885452985901517928345957390446097586257626193641920066657441147425590950584956506938123818631019487821176292238207710061937141869154484325004415310136992895232820485837245780337169249546996276283267195694248246652984999336763009362763091907461420143999743555978225154953927801792366370888033112776302107736136280860255323438808718999801468547315301113327428917877413753116346877065406914010569607458095951513657229126235363291716565355180388218303236917691633917513121024205398464550499512810523615808352534914116133208529272971328155871526256529642432038717390015249773996659382458338189435818030396342988858942804127506370183934442330383826737896382908511584481297177385310515025396192023143013615940996577962401301021321874411415456589306476708367422622727729566403228451340664362468597939967632233371809203679892369033505937508861822994571749423046736753804358793904213141986724674507023757119103161420023602404419725418862875254168615944721317699601422444959896303987693504072725368461353977886744305644614179664791445778475652985280213835965446608776297161626951446782531422240481215967274410375680170483657681857299864429649065662847222228289309752309880729234656405222157035919773475834554564110330517817624748305690228345058453633283306470064257892533000183215761819978830550453564226871980978732619670769920074957526249246674378434635668800203790445642871309896317232759998678049138996492354508221195841021721409650173484182699017833500373684830357379120301451915407410656477816991352621521752036173298607117606039600906849479224549830311254170803274381057980036736313163974289289078035784628358848273707025719421229486059886822900565754638189064086890405375439592001559565727053905819990537287168062039210478384832503139424714798444928149710595239250761157513189698971705801888045445230584114325591363320478615779352910433793389903731507439186252670615633765274559427744885109239317964244473402773125656309363194916852671550731014968678613474203461381584049563808024528830339795803115654197644777139311755630410401773019562191382624187624272614701072314480135654799793359862243029363758197263351707995724736066228949528617501491239449188958131229359187975991891611909951271464552750570551387655678977363575210596477184837985930227181650028776228292262241239551794994866651251584223715081384474701645048582843904252490182002785977409623937748918756672185338839278243039836609976119291485430506726681263844702287593564984956024062635655827650206251518847273453889148701010586633287834274836889832450003123875739649639342856972684021000134658242769983130260811606552911751384429360667125409943240967724899861788063444250164942048366814142162537377154923186285034295229024385838848653695405971685742376658728043973153757601374480572165633780022154995663296558393089659074046782629789390489673171405473891882689420429697352625688613575896415795757154387661202140106030275246510461416525500364876123510001279927069655122755030408950402334966336765117274636105948027798410070873289583633278544175768286544778927130393598074549163924666981697118089669566255578459261324045165136143302718244534167945603010846960535092997508663632074013867447030850624598940577362339725151208768119700560048960848479449574477438949604338151266137200273873519662728827802966413676235315043381388616220520056963787743270359118890534538047883658053301448752427147386455781359824945909831989198243028926749016481960295815498336081336486110106932954133253562912423863269362863993305644365955809153954242456365175798216633351654079676868115720425022731809245987906521522712575063603303491344777732909769467380622485583552430516741682017776992242782588449339353712039337848299894482641179041508263237934062669491183059068131677342455406579095509430380262151565139369972854621734607578428883744833750664158826968699080402872776290496026264874118870564324742924355402483924546632845522554071603989726110917260364133631438590115927995819185842691002147052366501260040452409767333915910081172490706315070239745152923052927080433156960321472542295836690936840709080483630883548215226107346902705735571727115530170350233042927159232010091605372847128821374587637502823302133787481979776745072152585350093009461741983925242870734204287338616697569914096856764746150766658672038125786116319760121448684779645623211712485976302735994282566552071948261291346095253721846503295882605996656413853928265445053968359773007045320430118394832720570007698622640983647495626280486459487312911730195823693389527763364820414052250146330259346669568653435345557475649643366953904523453312301032173264651949685668922768833278723273799394689232793460731211909898211590191874996999490252249044360081797315281507935998164318789005243202750586428881523252090344779272793702139486069219968258257236480057901115894863956618980735254706429593140088591323978192466537448088987671753990087791827048468189507924228663578563731270732099470417269146830266458949634382863733570429761014414470933559807590486961628377662280731480106109486902109675133682612128899959737512497313561555359187737923038560834986863309347364644310169832046709061577466409933382542946581292095384088593810499668462928976335864547813573601753967627322120452233135719824662107211869499718146714608702050092703972625578385049150399425698238034045686097917163622945688451136731984094979097841338969989493459405067395841963227718542473114963805499666649591517821234743531485502013668010937902380357896540720228591813475457796015385125604760434991126841361852023567439680780328483167915808541494831949673827219254491418957653510072928487455288008787158217533120009329477171809542623689789249326227988402545437820200006594773205931899341840240476138537366133446024245911482976793613471386151955580791693271467005632932409982872194628175157752028833382222247380494953028691325919013341394628912646364403628238420679076038814729235160310992209828958834191069428638230066035554262431422328322925715702312907502368985376034887454607588487717184671156002465321274876246946370297545460782052593812161061838271465190546642927464094081834238243789691127912893388282956173712363025264393134634854260833980417768025691861862200275481174654686700459730957769939856443943318335633003618444331734820942183245976400631134958289071093876195597807734121927248503343478022469391826676824338032367042149309541791704829580751951215886830222906004069812033973026505953631995122368559804345123109113820510699848734632704487511565805635080326074504772570915049070565877063032512517546007871325153066788538099776610847223686076829957930019920095567816928988403759090510871099050770148304321411471508593896585354862486579120082627545238965012901080268442248264586210214291092514239634311148982256906511727300608721609062216406158444589425992850718734447877738416718185596138800784912056704387718293342377755032342749342453065923195592595961650174777425045106414234135042353795287746542952052067645481006890074355624215663824238142630645127394477052984175651095308501840978408350076519757351413264308281727680510706053182673247261076694814385418675399435716998765970733157528195880807929087285577518960418710166721106273769693134085681604008700679309080944472684999344059768512848639134923857583189861563641414057510695273785414558602724926989952431514237849729008041940485736302918249730394470381124000236061357938042529771053714608122468167374884765482846011587857863286925058141969020120189713015846174102896473503693845879667543889528694839688934112740397765729959618378937057714686207206178719969944976812610176368079073854386351374119271579712840601270501191939037638669826598870128638250385723703050052973937695428380175966831938843821930150184640955751562987820096793031545286168114727825186720157280299865344867640436591101450011527359656044059838059412263903102999787164798383034335408304962169721648995873102205996192835424996935632051392266489246007991597012871665312011991155778364358584441788118523059590220721601380661788926125896611822192421948729928329707725377524053168995823936432257448151854293890331632228774586396359636361060873277730417454155089210198479991761182220591207348892781469416637148288871346980860724468850158052207876680347156818345926059018362621383532982607514259606767612000960508979489000450951641941539258997010346750489336755751630315042895876766722721799388298426876498896480977833536696057760596004163343145316569956891343659004525465567846329823860388565952355262220649078312133750412721239871134037154379181704809516941623509890554311914313760453623690670135442735730543340702555382981952142050636904258337224045488352204617289501105891604883040479072499146681858330288788340466705410566244696352022723958002515067791673878504295512960765738633405358042382900298602732176823966826331399785183924949133490278548309997235201858611350251210710169665330005042083823090316116032000455674168100546921977585361440636575706312083630704887150837427819265632272027843422423216701926245383335421202767889309267700058665976381199178937148275721220814689600924821515346268875582628077513605878859401070305883577019943036988056382073024781698092149491878569353317177824219848999224572798938658431799615316909763581213063518113939757827212212681473322650841439392599338841399491174283600452236078552902242265749577853882654710386394631249145072671789607559603268732946550186746305438400392700840599769920439116845299832991290860135518385457528017623737250579590655236368503547952088435052565964826553784053732747064055095463698096619094991963267562005137366222172388986152421231672838877514454487409811801841629247716198872753865866392670025212470657078070624743613133511526654768904849734691036169892187568663457092244724314744514566538142898017926826385376831711385564461971841295074465607774723572038371097913792602678345362934734061342769553817021216048605624815800674610779017482604639673681334094818405782522904656119650394234681657444084938162094460961296433290178758697118256887875683091697459292540796207671757068595867168834395280413742513668472774488581824150779379617748738547702796269735532404835445925389361561372638903383665072779001624309858904582821263927266929794126999858840528868260431084420227460035943042263258890981731762519246721989201950904462385615331721364759879809578570226589910794923460609486796233836628846736030111088726900057600719842992497724660275845484772764057159009052639043775911436460215348035194995048282015834280472072062461663391741549124590076357228446211334791870061354680128136992357463030756329146382323888929524119471627427429019293962539283722848128694824891802069640873738547248288215323979762798283389373615199680972285805552178187574876796224771670184562886772734432205899890801487562582991507065042008956640908004167815160659737169766272394695566630307394264913249079131968492958414872844806780408335171387773959416043326337741733535116010154509634195359880110867875318389740865907135211232381947424319091308983291919835799308036335154105481159337704216446792688381757156817740608909299720559629475618634948598823456235319743766711036106427106581197152701695778058566754649252944187747286190186716301701569465231070448220627927666057700353272739974699049192552620760850761899934792789624063413673185734186466951556738341131982632036344617688773548286146718148992284430215889477463121570231492472894721848655530434518129547818486741761761205392720814198582651472163231834245403178800520874486466229291221135115338355517665985600483266026307648340683314054751754634349254276077842348631774075383222781888356428042491863352491717895603084192289271688235636452352653998466629126834087538894798694981095357944531712808611160731561803556207545176139597367548047164829500245784549418676562029021855144480940131158986781293805368793833675021792818990348241295926651001533597998882632383176156403104514848958494028107019657971358926855030832189569466010488030841391861268971840790303832607769871142996656847687148957520437212903406860979715950545473594003294006394329156021439047722238767911951607094013715590073314082692862529396554828204303268868935259850310621364714278821871431796550778016891192945295025876715082652692000472603255378006279928055078646261422042923024599016569896145586783189717623777198782870621429581525654374846114700594697677842220745495784558407386810499432386958347706569714257468646518284597943668206847757504060061039453790410124375105046430434966770029936506799793791539144424045492564796334316609355954253412916508569169433256591823338427864914686467226200417309262501619582656404157898991430891347889553622316482422150828737915904458489250062138054933869048022342530255008636204481101146699975894823151627629910986428004389724694128008292173052203467724300584352387692450893801885310766044192707247550834684137016020100695640758120145523844545635614515058249845376553429589612331148374596842468392834213320677215583911036492179596272328719562401640838531217065867277136725062448389433351737227188822912886954745723245301570303619831773712474378557800979642699939943652927261971055185683042678840066660009621781343354188658264559379626788385781750722952696640105927512679633371826385578322366293890731093327248604529092334464296501293379173299597520860777975218260060561830066957137311534755279882132573277935767826421081798640474380558386813314512256691310168959680060438256685442887669358468172012486825962300818922573429264312849947749337676272134330155428123714251737934742557287869002847513479985284034385279727434888517839896410641502659676251021539990641973792998326651461277422384237402403964928824511003424666841090901281366109181102843439884815850983239316516485449986331386451914942548682054267817981978135206048686105715348439341138596701501771829927863671861868401621313633521885585875634759081119873583417367154402255675690987463715437014094875328332308691239554712701571332289180511549841323080066298978117070978910149396614442049836119964654186676124522121443446441026766902433510045684316723124786660753236046196265691856215578274521144691348301170638058537854571941938886729748174533319306050421265609591253087125240921671825334593673386419488117666756083424373831794947520784690786213625221351979164451880071974400049228762015098581793217541713620640652731891745505361127613339254893706963101426605224436417928969818144060006257730131882500817394491648125824534773327816658182931624439441530732102089082733352990938484979952342766341716654488705355213119822257310056064049420278329971691787426575634098139804443320609682739629020077999801456415823787258749400330743923716805951132845583927922894236314202396726572902822573535490165016618775906053367963918007541341058245629268134611819507202001914185499530712638055075541077413997822304300323103614499857447293025680321669655827028237122926556677557182509188961020831923833024495348888255886308673508316887236478028164071435351961059341018904991031541238886567015728573200569885876691650851115360047181876421356303035565028633290301193713690729965119825921807024686116495775529005933693996903045290838574018769661685010317188431541961142859144960353296146510669749330092552012438881209548341636933248261864222660876456181835614114814027586430407208453183192553725319625667704339110050140418673371530166903433508065333096793909060640491308117177620237500951362737096602611142153634044977178127990523563680001859488288729447366516774723596561595640482819690961436460352143850503906701318717682704009287512256328758337367234451896317321102165015647404353439524519361358962730966706686837193920633354073266070490277679444543142091430356097534621635275361587880427728785174216075710121513844606440542580001416324821631996019876326703995374171542922470445495140104003503648901224370798135014857897678487174434834673728352615125220612704301239054984358419778185093078401104424598694504933804620264352382511740717206370669284130585094987737147634066660893479885888022215162715902127193715013466318427365798534193763142165098691326064733227136964024028632618332041322945693779605764400695143576039885520173178127533222403654210522745443509602253702263809467306982450959592826411356553228836347963076330880050890799297632273480503543637821047813829130609677617878569275590304241858339733943700650416539564619506459794357154309054838019674135321695576696280516517477801231024365881130861097183750700208376656990015537652369684821934929712692111305519448228553081124573696219753659466197546053222053554609971538760675461330485947428988707391396115176783254622098866051357168231460568550484760725979768948546013468679422126429076264071232501111062535869037048650537703984104682340902177956169315921341760756653253275898501719389572130923443808173813309184898005056316439402185743074686171041870682458066820828018165410183692884690440897382221401453947308459824644835055496114221103396929809657028649262341838522162533570500318461655106026884075715750850775884648424902857715460866602663316451410162860615894870228717181958367732358091781376836999667228295229696726196062786215533044570633616530531669037358982519218823612568641035067172251384082420219657297498265409712980778358287964004532608699188708815597737627945830943352733624246403288068295661795066638797172963264886955066400760974647192993233214695539770651308911644462707523977798305120178847313949836017572501026402085259391377263046335557878605077610090649432190337297910266605193779804166247361270093848054983909231675756618834943212398776365224301508203204215574487213922191341057430122169967886283159374497738401320222231194941802908986906461920951249078279878734694756187018856901039635048813230404664157275114949416111323049812027486124013946161959896291607779462746572775329123354329104773438418058201554212484796184998762259094761321038883418106304010965492850693938508910313305467942714551913169656040682533244428777303370995441657845132912880892994260968097064324482373927644101000488206531006851467036196728766012369295292717479401692918563793930919683114288481940719599103312758186168034551985131129409297318402123961452337074017311702935541498404667627493686547133741673901191079392717369862252747130887449017394638377721750113365688078943466001990830875329595712102824385930699453994722198519740475871818665678906943659489618123765245097016164521030402749346471110027735659518301402433481705125624169026852765579017578146770840713154033849717893193560617065652193421555656903577468633253009829221200054099538498860446990156599809154539008603479820344071110985555075114492700280655477867347800122823380330022508571930363718446191254477475555694028475373491520265232312840057421923037123261836916119468279470348117790738385196572456088362392669085153481887330509074136263154310384336009244039141716225669806698415181902996051170137913568568355084503350145043314551779249611301159432841829732205552111072534778440284835049549881381932415313538471486852502710084968808997390674873693732665814957877284376250376545706869811771553773745214602041433047374212875960109293038609933584513121957356509739878929735191065310739562384490032765164629491694710624263993178999709033618109223176299578798562742371060648328568523075287925746611514803067826903643737646812086935851361226034423393711775621013284712621434971177880745802066665362843862603913860260771049423176099160540529074867241487702743777943818219376080256140584051610307813497003861176592526657978370978889182857252517128444163612369405390701181783718326354448904100277298315552694846142878582249371437667921743205915027973068786744458358890620659990035622179447084103943472062071817148295453385336784029180173042394949537795529007719985881899217124418874793998693708989879375237930774842837081928079233343639511660034282316175647709640673618650071028624022526509773649602007781627177835765402988597830588538051852945647916576634705601925925529078844548880264686710573989272017470658999725652936738672733839592274157387936637155694401354051058947204560335638301791017005148210830427659551880850883924520217820669420443500942036136124833263678963247861061967237478669249409415034287729767767587069442946925098687595434317231710307399914645568502588542129843655564450242706945941136488763557158089349982811152766774967434224245933539590684251504864675524499181508765408309219693835263824328960908654973742999559118828423745744714050506204497167212858259416269368955946946939534631970070938889754604868630078123343214742379421531822219108878096958290564017602939435145108657682098280526867998304714812217240772824037840021044987278839807341736962945283462495510905076327466787302454681040366290819628883333151116997507037004297287459108894359845037522155492793748173439723946562098856855068143996676646650759412139629522011447215435571166662052779624345895264362063930684902972729417263441695435732128696362926124973812597219803640201891411958892599905599222540409763383715028770189253712130323882375988879792791525327421351547128103039652366680128358214605529368344483447286413774769778989106700979244985812420301972831059156274001286819719779632408179823617844444128791294833892514393421276206314637775576901035762569996784932944215457559384625535508631411697417887144066212189968324200160351875547041606953570088123474620358655588368311384221747145469191934065070679573355096386367306742027726148616147898021665721994876864470302562595326341302264251404097690922921604043448629599028646519624792507920068108059459453548034181259843023865369901521390756209036052335247214697665732072389919553427315898449480198989475421350971201607719095852900799124702459209236305141617430912920424448052489698830053336455566191279542003168321013339964264208781785860304168246185654220948974073823387235154041768212912609708280338708526601313560352969261316664847317458700215845314513236102357594344681572773989668367001780866956819653209971433674225686143618453930229161686709588023825765562734077820017132589496612785840851640933777235044066357865355226763517889762426588039862597964394548976568574874009608351123675223581508364954964911062424693760302388725186791506613490222872802312214814924616054309804382715062953108121250966128620473392957276507926181872051877523911270917889663185123549554996199005673309186362630172922482018779439843180405564159388332061947147824990083167531848022098796307443654511156469899023886515445492046765811868647333652775505680064700814753501195483379745876575191993751682470222189427476634951514677324122069294107769122980808250989800732482165504126854349794045664035433961686635302619035123781242903578531956275530631011738412320190046026480151106907869374982856367554904947266324005144293957098328533445626388827983898746558938991418366393617286334409484816190427752906625197137427248730532332579226096883139983487759604138273504627340013068028334854422949979850743539697754027637870685589479721751159329974004752305693871718425134212924130913369773915772227944418327219874736775100236875161237212701449421465356800939110287292841992408101709589266517228889035144485564476132841865624619327497377692863233387732161529988324861934563745088202759358789587600193139369118968065483358024088710940302869299725672212876390621816196949063946372433176153562370970378573671552373495839294307732011152317149504660626976285016146088026266660365049566293178017215666305561862246416617376943374084908656412484776776868839740944634572894865428309992551284471390708509118255280552566217107109690890225781090382724865076498633549615122644371255464788995037095021018842079693755240926891099690264658280734012387885313328209985168196362755753588147486407305242499670257535171276084055598309399748446282194962631947075301688158140237613321491154897596865120744363793201925431620711094116156500855079120864660071220054379203353746825619598822482888940109817803141876643330312303275896803454815612147420250910739535462276796501306548719144708165761614682593808750652880536529092851434442314792696711758493058637356514316078414389488213452184210816433629136091362646712827771545564882868985727336506836699915356024540115662937286260966705645423934293477965551998401998114444985630890038297742562539415314753386507078541914162441169633048337606878405575296999850720545094348087831556661539113569475694312440598598675398587968033193110755800808805641405389687490390224673815816350444015085538996519993042658178298163100371473464391834483726804858485956239908363739907787187236215832449417659945165800196342879471766829065200048581600959869382083147926345559366037560096300272461913338744696803350658407281801018593620991576138016604647122744646244164099394254634099847331999758651848174328568200428789722803557118427937225695424218194698226218461262134725462948532249045541992253762294987707307388798918652618096206146622755412557683083455283977064574098169055212939015284249838147911877969149585500750824454244492370966718945340382160045733569255690652353284186972366924027069297455067595589670197613484568926170249155866236477612694982941323909513086921757805213075585810740435249043234086976430953366061512239805845099219130718568310135133830860936775739332003896400514243440103459551176212986816472525686462479645239494860239397215392125180793568686721497717729577437563299998141032480318457934496629794059719203270132848359788707569191110041671716009227096553015307121791164682040173542632123692484663674741872429617740025528235449636633095484655756349732175920634399186176041287959246734012706772118020077799557957887930088002209947778585545510702344176218295879156628248721045149047665717904767571907877436548534039103278429140859286569424300654436425763814475517463890278152922359943318875250006670313569847409188874229001307550786183104173446913103747254283159892876430674744531598626322383039609675869055947544654605958165043130348054230178646692130008569606495757181633563281678947677942432196072295160675793815944913215669505035254961621720691490785768826087159890358699046344037173163709054768290042951351888879458792542364276610402136336004071776529486125867833543118975860373399725009154330088433817227994831415125190611105385499239378467996967351236335270930404046650863311281365878006718524078449470273296518645290044307947184536583419824524038242107925970825878759386895758285915108238395135403331720168161053758001953545150778586653875560667602296807721708940222452750885674200433773745606236221109370829820218203640180569292936295521089562081568294320058197240776944176171870746621722898931495971319027784166850633308753420276250334886581826718151863690543183051221702308022252729930702966628363923835980622046984004839763436190180192687975192241677613763257278269387132276831355152895879644705546732888219706367649814259115691424355376431318322318510271951596159284617695570827804681496437200037066252151712698109880951002560488965696434363095808504417902456338841117434987076635946545634533248023974959115691627539524210620144638613319297617501192472148196964317529716038962295971595321736306446570320832949340857148804352551207217814704559728028634412565998186252810190573702357599954235627144802257059373725734383511163288248727369863265870987388070785240360933235778549525191973371615856150749457441157860287145781632598178574018595081770304896037236486867306568277210706330286815281863984041015805693920706921144079594040117583186171865635137492978032398925286986553640837602502784879651364574050981250365797961007012234931372966343496941156133532987899914261190241054179591807193119682043294704780705762360513006934984266584715266583003458335763702795544168168699578686538491857674308712027061804908084573024007240315807166118155286301659968936193085490010907781996542524512658628287317435487100604550531096119574472074886603529459429654164454601550429474419938743515120177294823926519034247187225630891165670170143031319414751348986291237130521206020975158452272848543351889635374184968752955795352013639363117671259723671117468830322307742370316452577168524870635256185515026395598997222502301932580759985572871613597466319492772025348859903706237460843182549218390384051175779547183207189211305870280510117671003635322525062710204997956735596639636450250618904719717628628059708707977306860241163223555319885744510456911104934496946507468276897873423821870528303153851216528529560327372430045149583813341554383517053429326162123692299317742404093451414195312063368741941949450934006100453601516847916410567860579971518269609941822056668685705175770688412501074422212116128037571861747836031265258687601537298216379801554175118484627222325686033873136698012534844312752275055562843766456416837051350053790806291999560203825053952968312981075399904941114635157262307420792345705584577001527491465323711562453682190898735027032349968981823281093775072281786317812288103111607239216439729033062411136746077711031254941208418734136347537230101983885339529926269955489463469002488248113156421341978739369654038739338014230203457970800678359451624439119740555216016195910647442219621352661198156085688235413570156982696968898955383049898617237558293773800011731140375410215011900806987821449660773804431942778975954180359598559842542283751056256401092887545744944543894631810222183662373355175733141259051414478427451325965433924351045380339505482861260568587671278574645737655008663672531550444863247679803082716956920703218410411749643038408368519876913994300408593044589937563328346471234965266124797040212458303446484505211827886502552112044642007942329658386298973142985015849259547429941832868233897145897844465348952431205489249377578403053281155484632113026820350229361776239728637943512951493659208234346812733301095449056195639025032764360071271300086772064935504427326087956741770033658961329726331307895139577371488856733586434909828374206796619332792642204182453940862093195513776842750009600313681300507910008331457637900704367611377966381618659370687250162917529762633399766463726718226228261492308000567790650574350879043872868313266100198482211766420613029684848699507052071905216687046557611776487696767933235148980739303617479977805906352610245558427992832403988821557823915905281588013466805071369591696926609329284811266035213435828882109854009826738451496234882480541286660616339764278360011960196516480015935503200283803223915698423335561567779609563183083267279205378140598709910187578678571409738524977684108072370648385188813870832474516152275953748061837727308644418557591648673550380747405468842217166169052546672294934403159547316093069080201672599250498399282231756081250766304439595903444359643689699055462816438806470238265151347579656281121750895869102003017148713011121992566077641167865035194975195423501964856183800629222665699463768382111268133803790250638269494251514015015109686215607753657933247336691382996698215405077905723894081824173685438368746878684191887375318171651892359567744652762251797582822494854985008217136331687457706921330560083703180342238881256583962067601747216926056106016701738067092779552725459335094120128879031085907933415385559256401733296207671416468519372760403573167601333165643005903706419090273520158593663921213568114521492771937946209900903743483326382010220905956801371358289462656383239191892191215883677454868586410274655830637054010460976923577058852980860879605868385911706033760682531822915297712674264174551854123463833834537802274654047697348455879235573453364218146582548845891158522804484363480439488828380106679157440895754801584304132453397652756733968029019840378057342386518733129267618175797241661563882058154216469847276340024130542763776228059974804270832221147559926149911234270747464413665508835143214036073041695611821953774078578255964169822495487559152045508111957948016614926400970161762155778879531317401821999664938333506694945887844953957621379427595168773586060631106553179067633837411751163604279699042664659485920342710757368588557118173600021998167887110102921867188305420464525895269299672156186252440854409405175891352005838153016528366162288166751011451840453361836436111361564534398897347668361706382146513336454518968425847886639311138928156414803953802356004257469342053695334527095376355792074370065833241192254911549514966038495858121342510067289693813120916113042501157938485639089984184259692232415260825678216518712559676059681250963842669710166859687044611817688431987180981510354375306528637032445475583248656489553264626386719303661008153108252882476314661344981384055296766401075766657272954659120200150329204562176895008224652075690533143162665606028877806942025847988124704552967273546381907129419846670938088021234504866012416938093118231003071658585676234350624434246991905648210098963455847957281503412188448348697192230797400805512151855168393260465923681139184680543060001611893750274648363216147435484574513251985586063789291497864691420382497118322989693967891669115689454610177713408015315604531753269254545280974235001115266640152647648089117868338667621527072846093749326637049517631378554489904753263696063018421452147058211906254737070563219134600291101288486682844769738353909124537953041071249127877596644801007532412269944713667964374507057010687725514466973523049518439425658782196354859652034734099362838867315933948015233267472555708316031142159249469320585425892355934951550406835522457981943565267077244725191493599491198221877631479443643023365591151378796477089077042644928048473019463854526905065785331805677393130928580524040468600417150217481231448466150698007744085938716736775054641791182608331648691127353290738440977966383404929324758320706662704079549590272517671825806820254570465142857175015947026625725395232632216130649031306245210132611387032073890151780042699047389428236366804464133919015228676263306909614267677111804464256120524725986281914005136523277581928954951179941411818364539176430608645425875919450394227694347033123874793085550471209432642287029012103983561999384923821291995681869863134742450130349052510607411700111551168165906393539257789413405848975128360872925541629584660217270757043618410166127577434233290216439495624416927379156881655339462072859117171326850250318979275772241782927764904063460364926295475339955287835627315736171181345995381535346906596843642901400272654456514893266735628540470306442670994658302771105477214721425333341628363439188671001573843959734612061693317013260947571740856800833669472269180263199434389419817197107633431831459492823383844317256743673738163750178233170960832536294241965629044591804052495594759434533977700476033919179471953067614192952235241944621208295075432187806343378049130804667150676409192331516193376089106184502660332355329393800453421786247400523773053850166735319788728508742801193913330796720263935778346207510380050148914659134114615479813718480082184250582595525868386965990024745040321122870605961664906745679712856569527387615702872551335136728215192463222979581048714034824794447711832528967803941117080299114732098851172085432835924294538650135449831094816713975171472514141609874959116650435288984330228900959199636324184928060637591706505031780893350513576716851567959058939691973749649930751527431540982671926536632524568569781448699997509961951033286943746983811460050325911345078576495166444808764469531924646448975577301897552081064361841478268056171517496019656225604781836913191860195391717368921227532746509656538359661916910017711010036008209665455007167815521092724436167561846694889073332577797153917583006627185972621208125617961116115062099988611352763449406001077074689302111349220489893848507517475204426262387569213019150013398354976011352387865115464326725417775606662630781404816625178389830080983101268543760815813619581179044340117604507451834311251486234007551965188481665099201804405757953767161842151810473944500301829303680132865241239775312159178839072222802377786140876361312763554949935682464458974165032647484778384163754927928929908840488198608235971300178947676512668480524512859655282710412264340745174472501960226782603755698500697189749528125367638147012250107402362478385520431981074213768316045117484339508701448394646401065865245340932295722674046430553507586173057768347908594423029062291294260625275231738460257050387632546909040337513946622296824934423982304089914390595226065617844428368434474654283627158171587804427145339624903518724830080817026331798435407825733300559218581146451080930919963068967819866719975075216542205440712447051067998697692521165392364342106875274259299286919159290981896475549752529251526002371901064925478851396891233588742101007201463891397468047924168321048444693495039204153468910160050239010215025327821702116570168452862035817722531676836446858359837825335287165984633526298609751455455760527807349660947230270650486549588105572098043193855282791289942125143809979355512272144002858290309026614546856940881188124222492217878972730170169958703177355012402882632532553027420059633846143591211128879232697914956437560851624671504909832209064433917500032861409526217713502198854813762812358093537476354126218797169312800151954476430747096271208201937714225705394938645458665728495452070259207214525607746177239883862825124373434421930393241601587136389287678951925276986424753962758991132905089199868979500025107132905299415435013995225808737311837988928447875951992857410633700328086334082346519349867734443703716227185188513281541958036445912710638761180174345844889988066888340848576295515585824336451534451192091032865467452604893703830059353175283584875658295440164667152793045461951811257862130887166018524398147700637307306006283082848532334698226260125631708094880965472654397958316757518389991812915263564062063497040734594773831794350630158676086842436941245652141825559169555661465019943968441159785125851050981261978613835646891252509919738422456959809732875950584050988123193237609843689719707224573914812026436034445467132558193128980161166726005494480595343512817948061080880914537963402102744734685332521535256283471514922612099395654762115910156557782064139054043816660170926141705573514592346879061550806386633570617649638017013109583328161848876481518641744913011069369815923611999678277967673556205479953377948396369416205540466160331603865825287155300277262670230835886172447019696114247335951986832821115730188550996634010624178993202089250213430958123054741714683052283517079697676660935090108837522987256649569151358047368063002279387301533601923711338271246046960387149379746149347354717936806865271783999055405056490397532855269188021743624182246926960807751656932451335855227901238619229625083136607733746958218946748848270913366963173429887416956536717723136992353920352046196959723748218391714776527142572421549901862965967252022122186859743090668309074114333930976477037464554400194386338561982203799286979666737819095027546243862501300296240007668794567287237969326606043219558646437402670207374862929960039528531544297664990651602159276554243369341204674419697183423156752333541492510116247244144763549947500294119446341853211980639487449081474487570054692968256087192190055985207240907278048012641875490700422086548250386813930259277519652078286150795000512659895358994113493277811990976831071614526623565326584905398452908865476599873091548777291704239588103085431347518808697647964409402460760136142911317612635386825230158845602369235043120407943294184281139304487678144246457137705217127196845180335011077537359358978865683477395121873072495513125400818101094914384271577584565105129941737572668753797686375778484293486454183104406067399425370197016593567400000202313462708881947309477868486524591032767277324577198974367598135273894969070991219118132279211705688983497219007870627913430265260542772500308968096086171371228027397076525368492724125371771982417842119805964143907375777424265688595700892705841869822995528155273306908505294623748903134601048641102937446522182096571818285500442267635059408044456443970730619743548148682237287250830544300263238503699560949013255939290409240305990474689705278336031700671642984705435005174402726866142126472563491108198422269705963405384721443308831638882173679784939231847627600004702054367847536648624328957845411862085407143340419189636460026348377572451483352242753323610171656955788298442496707388587352272575264262132776178349145658141526012686833481606870695756884849677035879787383411674968009135025219453147625362855675995094446889549146950813116139796482511990013521684813190812518524917550052876022494430219394261571864601061329619213584041161230890150984924464807054481342882264449077659219549315122058121302408936462508039431415002210021066703047092319268738078143185781471373572304672695838361653005923327727580355527665756595023766361608558106257539686870329828341561848861766377695576617238287806690853139931874642263082093022612296735090282798858381852559275450018000983470713113441661883410169687188092283047795435976870447717148327143642042197802659031263331990010038361797078590179636647061524594646278074332980042281057092282932894282049650800438162255485794411785048161405611746411116242777336812281547521244358970322018332467318679469560704422377393978221750513311578788905038439576530129705150357297732241389137030456880867899723320353571425155222708758205343655483010194621610294643394464988065285182900272558019910945019467904681171596320474239810847388545448548648962905153243237723343620167441532396672689646493688782930754200755389197541444085304795787838792185668065161486823866995159662568029855055991825604712020920336186504904937513868578197136602844503433389338627466727087271376033323112005111625115260520117999502218276785941567629634489338618042114443768896621231765688718863909419181426324952248504731126012844830858923260610714548832698235560053982759447364017657089380761561802776164517397050618380863359288109810887827060741072452419644373914011572187505482055139808221251966254682627659353449863416012482211163390875642835430990946391821460703055698049225613121362811443979883050499550182042346900529236295816647103282461776702850124942114955470686003071652365444005893521555913368012406093854976240022706897137197007746057506573425114480963024362439765793103096680825297621234397892024275364884092983350988421376734685741317170921254421081319079634454786490590709833812335267201886766963557373068523862564169477701277750995257304795775980753343046732149871514033836349697644577929800304605814117035005484030438895930283769968252599571773513065957267121476299788904942235353427712945055646873246048515184721657057211578945123308401773441431337691516291127016906299239610156899327163632258306819563704804927673891216968148414990004303392413422268836846781547234637818083714916159023411617797140550192137819832092918205924920357227894462071921125281769695848688216049994720834413861514284725013464789075804470128506427863470469568171503821367096058476100794389678152662841746578758474853213516178393711255976920880769719130958500975119672322057849352725575001374656251800067803673101999018339626885047779892214877068775310655005867806340665618394445770512837288962590018633476224685938492849845613447821254460972055582699675197582533265006100527271796083320942570869545256091607029018650805029893054249867018814596335524824843279699966199554111140908135867113722264233270073535675249846407632227328717098585787784399566950241836366825963616400275128960321926401705723541817898683332328831647490909988695920568387410914875347284670520310049963472518899722357873445664116710053547539456927175296299067258408194648128805619624211863991501081184991358176618115325694057375183563823239326420341528227471529096495323266052883405007232778721929214708521655938093293544840261702461304028042930123215153647226381829818491829700277222357994425289700798078133800138932226900553113384553146410537630821668969277134809237825262420521452814134523845472853866467846306190960120117872746860289577521410514388111804911154605256385659278778216662465529171320323649830262435655965935590542325068079686215338212409708370026877252269650567571674715798812495322142835609433553138237291692955866973077295605589941274015919872392548048484691907636159589165797064485347042236488533528345926824128109105420628050300803303108843286818217602502795743812187046254653390661334374212236387026243772346872158930455463132459026265404019868312587229701813147187413778998701549852884057607844416260049513341570117719630921471790628625809556546360122014721895591821771407205259332847986163690578388681833152536603912394938462742016536627616123226444826348857004995523498399244965186084842913274953005379972752054735565491501931144690444039859965504656051656281757192461122179983238767205867093007227313231107958745604548422532702408890018879605924582043757898441501393314668993210369677788857443551215147206765802170751758765835411788089111049312250482127769912975910214405186452032838925642363366700416652825464208117394878798607946651325197417850153645147063562913929245034128699761369960513439441705617889183091783065750137868740678900746116160791913014020200464133738137066366891876579956824500042106223653938850926727818660791590438663142261229925686978868227112040901837421563579344346070991248933811889308610116250669130137069443491968329522957065481244928687313731644183421907350476368020426897169035029567773914462995287597526926644031083245628138001059842052628797665239745740784028102750512169717801915943503417683085746941578759175476887433510533890706458890421347989892295166057625602648531287815774663650623899394378842053341708095935926203006466822433318090203251846020452849726371736691882569602824866949845503978978879780956703499339137402872585045121353155881172640082285476398669610263410365618940876478424342062040141347441370952979825707197279125400808860462852366238251345465179044034957357820039444862696565643165793428114148286406700666169458673891403365684043178797206737103395160112708277303102218008719672553872391485356339676448869764629925433354860771978170317396633966595099793648459175490305210178176458390196430929793629281885749716668635068579205696710186083837059337366814422702106900458741131179088534280336068556894250880696239632460116717336148765689596879803054703160674090505006360216135294673837209403860038344237869782496450575296799114815852454572657877198665252092634991497176466229803414961857830639840970479881198260403147491251174368233586360890276350446132304652438664311148113659144744829752058863351085001912069673319579268968297363876965629465945318822398806098416876011580440157397957984595025944680981965954019157612146934045755219085550467855631135487979787155455562759646117274375653155282775678490369282419518163576330210858919861442385125661870776773536524818334714893462492992390639513435262833467986492540225452601739087970885692232465227198556484173008333869913426967464479849961478274257284323239911952770899911150420541399717261156742971171172723017094328510213099353046751290341121412988391028030202712093819512825970432378984746384528420595831933901481939588008820754796400619224508579867483944344858988437899321022281308006361033406964383792748847944475475827354376790181799816554333773337029619952882700488439360745384392251445211749348187995081993162630174987413256909892999696034932683580483689273664983385694353698726314131623523268239207438490815109448917582127447704976503659388478109223946450330569883788236924177608261712330587997937512284959032657207182995385726885016494118478239452172751574644496129482913337652110532082424697005532664351917855153267120911161945861030256620249875784034847840878350100243254046006855530092914908599718223209788203148721192597338824909982108122117629409063706980656625865587395938263417659535775907330846153326452333093253575983245287546170076773133469737949695163599398669624833785253579480545452980300281102691950433453101225533345927872827947621831159802070542149635060805502298860340332459170638379406363634017539782828452181113927726696735342422974805542640837027365841560918910133861808600190644980612874874275613817584229955327378678036332469338149317919744051826115305014590929114265885339167426507212735382714871231110362254309639995975759866695231711439891721866395906989138932408722014692220130996762118745430161909815202599598034642704230583751816586971337682939233458636830277619888500469945075662084279360032804055936889662003713441543073285390425472509929788556011465220705055897044572970004829112367671027717126188040032339156261348073761597365795822223945146109107743773228763276786948715046322297046432931472984831752244425921813206451963730944555329984390696266683053703027185334870005742125331401836362400212727663214173638661209268876904561900827610473608985637322269499016183437153339491896813772647279791108265529169382766865325754790779547753361518014736892289650523579262680632647408011593456339759742490350909440166075008438523280621092143641875525327462190773396680725216147615151210703532919958865921654549513390576241912201690104756683113900337391430388342231654713557559396231954601532466498686556706805599003111537921578323437203897174147584418555591555793723224995932292833373254030696921174602052162962819414585039950446365826175514643701574605554941366377465063609479657668638331884951170026750648147591116465100772417202683989470336231409634580830107037996916826372103530561888653132902605312651597381030433004971250825369043113158333383587780217985534547305098570771535847525604287382808407993808080123571833192787320949182910029656899479546038481716415864179144260895908982156059697451556328998494769850711883926704278081286118295411057309631450030291286273439412322526643419434707332824189070554985520726030542448783191629903136691171902708625284240926162365237075729773736658344592356812934250186956959208474478256160052141366446713034947691496862913212280218981411128078655346340412950701931492801274568829545077420445166368523494143169234397114057800945130086318751691424094995209041668945882688835926676839543509574749021035088706744135286009411093829614147054166646401028754632149734649646758975400353016996591938386535171101788763937875237749901624209651658138055919623543030698778884644752236213776365123420335377294174021067517861340743518009725881456827729593564724235410741384294763215889036009354504353871188177538554390614027850917906419315910508889308094967919037994865285983675026976733261923328037931407986858001994696358243487251428619846765172754799220998614689239830141750329417528283587038927803225050317261781263440330499728535177730428905076404343719865892047827725958614495154360563244692536159685203770991637561732239065524120243609385728981502876163834656899935005380499044800676431384622244461625846667916780470022060014242950198298201397789922479754128794463366523186785302789739665516440661700196267805433725204035784897414371692510451804266572581427689064132422996253386230750956334484429570310127691047655501701038018598498310491131933566413356601709967294698403155526149479280687210168027156145260756970656773914987897655345523719183978116998727065002758323824209475426049811652215882671598138816009339333198054056902051986907752773818138506247256494775840855162652067383759053404048502796089844226617972524120718237678443153227429564023055594669676507497846861932310835204395986806838903298761344004674826516187121449513196967575751721957617440976514134256340733058414365049316706402968210624671776672928395446705425742523063800860414838789167354526255351824579355415848413822669090760056786268880431382863652745177109649731019694641109661424313964959248896687581407919272133405106055094838682928977866844656550085561943117432923810159214003552095831166733069484951941438970788398929339985602833882674756681017152183773686712055104610705037104673883167426685903459127169623188823819041429776141522378944750906286282348114005442297535403923639727623630809494819840201469400443291263457533779744747261561724463569600574226720607924479838158901733224428158053735383662141205936757025152164137599446306164786059803089624469717452181796773492735124625865766571303601106082169266170855068452148019910737626068071270232650985436614837071779329830761791644181343705221177700649225945337322767220923318465254816062241704811953861791742352433133867618381247567872670046822987756917113551183350680444354705666034239653070334974171018462253552597119091226947743437861670110602504573113888118540031114191771917717228906356973422875339686291618548208676205167121444672099477566025682082543463922053967517169174047649374844706138851562913463409774550531514029476730321153522381570732446623853947105508900417252246894788628254382298777661930068739712910934786251145185347500091378848561653805681173230958062032534505418144323141874019885375685641971834476512110855435763470028679681619664900159062736689418970109279520648203415460637316889318240511570108206910595868805101243901427681950498578247931682814387608311047297536750211184559187079434290898669199779628725189500298490578265681503417870304950240305766415084020006031895662791401958557492471976940466293115386044115673745696598311161374356806396646456114579826305362882041597861332450667658854238551244869285023462699121129119717378034851593089574013373648084603822710119885278170606878354225722185342403945599075079364331823642872616521716761422355068619540291777796878683156101742941311280194835939840261535767588616539473329668780872297843666068264090914739682128156016744263876216793122093584188708433988249840921292060742265216745172017491740627395379496768750409971712981049173858686468914358409795096709938752431035056173285088672641850196743203111753537116626197122390910867553101163423928860581807251766935889776271632186492850634747259376283021565097387928664744627411170233759762907055496323027969199405118802163071685110794642519567446684002305978266334566811213258800215226978275007138776889042362636542197597484573347681155492090271225261993707221208997998564400642448335450823242008551174569664584997650620021872560654760856942055708048138495743774182051520523077840378711022904050722602817857992838947686452168811019693587978398097012414186711708784639981502790713058055089514289464466601823512244692844584237750811837252671165299540920715726061861472249415026086964343027029593707031208363886162968552822464103172588188515611704311743834940927374363141095252972118351790770886280861440113429661966949682524171242239787165273494218234897375978615772457161071728136627485044885450450924722969599261288752714209231713046497796782409455934038094740330752272013290857359018677020055965152761897333863671593869310168084942768400339343677756485827265420110065775446369763814826133379874452756841843891934487896099373017565342948295882287759129774733479459815845041906640181463349791846361976496920198229287755872083400846791456481114133647095214369829252991105521746441150496382299350087461999031814879497794489449489399788612704461987564292934813815794960476910480611179729147201113104647370324434409105115852370754425932811841354237044589515580527845308013082008936687108858990419173420540734874495928006170720125082425565565375904055783923237372672629319977576638709642143947306184951654721523505563123694436760257072193355530262600621819419531207702340717303620538037874250050223644807272482520991645591628537942103150516241141054133851921443363720508330762355335547734254625427246708469356942586459880572206790435139753556207844884395440048860780594967931077569058782016591542531305050242576981150588229230844592809411240619460835985090041964480020637813880487629041552769292672193685279732900856123164851457952005324290578277459418998801562239083891468778107762945042787906697255537629699805452095000064709606186661674232417940123382906654338762083377095141545887398985321327384689050398177795718815695201727060926341047972919468477941023096979795073439986107349988978625183240403257000917677047850605019220185354539470716306605605622421832396597459597325895380345920477973671612763276530265433505401533302219497764648781266039409847650886179108407471012859607183213610244566165994677705811837423814699279734839733452410655355602762617475324303476344563977156453945773267059002580278356295178641958633156534103380433520957493973264377415472593646314569849667977096759022331872477324780297611634696547039136897496880165065478642514045279052260302537026478773751808729049755335189442283612760564085405945409160283834626132985078655924514960755995389067123792046622619273083299713835674396736518292505598134714415378725283710704434811326693796421704051316206654857161469538516460685104490080711153741342949335868169148575795309235138865373088610848488702808735347899743647473533362652134487309329838027279227342829885870457380495413624976493263483149102053423605173658709240990202168785241311276843935034133151262845798503781166097899932012680319630357516382259135160237812145598830311558136876488901689711921382285898542404809948016697997727691126269129526381528790110941267380361128468255057787439075557802391823182315063919526040730957091316146318038473016862452299043772656661289180264685001220650742907780957765577864990434618825108377250430488389464764787133483190154820261618413516231271558025486801970948050219206739966789297343550331640990100985410109531267461875234327555573000244646482960259107217251621251656448968882041267589625953360494255536824733041738115036891219896855318787738947347176302858394110129190275746221477492648184817250439817411182450527262514717575743850804138809072775971009453740568868735899740745762226436790555490349781208859637289786459232003576128765981403418832975597256289942872142571658975028038567623210304575756037850647986284859577475074039161562351972242242434003620646448882225422081596638618253929265812647405913894211693021175487255111702477557452672181655183358862957158376855956499445172556264182046125590761148005662418740191604893178407723169567646332485077896238891895529440825230498937651646579714903747428180696840982790216349535911248959948012693184914577758742273926757718066391199374989061784947178392125460209469422998111848340271749712101860202428391464348922070395267897288220900257192794667302802738259500868043208635801936029922634928395553571091442279390469101928930133716089887280113612594392837555561487714820539138839967717113808328417748365332175438436516797650938960784638853993546958263150173986547513279909899669587459810007801763966880677883755763651550351335177018594254326229868965914636296876342128380318704321103393448272791944421850311210583701560461552424511380983356613054288253452100443788515766116606815485923989761446899767689887621231189300399820719488228256476212727760980107865392724456912685629483284196007766653688492477365864045237653887962437160768091763343780780701952073962109434816201454386984085948536409323693409096685905532731660333691754793426621359860711065016469952546517037819147448433610562902312981469819976203378526110869380017356798675266093179192491596102736257352111545798786107496659812538303224212900721072136430972763419362802241569629775912202242318076895683457433703384742630468565165851693921867403074870016046864987769311659661504343730647466715464645089687312373361580412120831590653522973268965164572560394698068128861540596618323761880089425625434810005780442841856090540632873936344618000007790458418538594930539262752663820084905178649373148538942543243408425570234141137618873514045805250460418550091344305464102133993435773380046926445640010123681286291099311163114611687509024643579954481658319777394496985408174060298490968916806602561188513651251948855253251629111214875204360476549863556558993466712716716918848356240054660972838928880031960224920976480253668573717396212123952084321441003375302649824217029731608511960338816854767603817145365571887489509173981576595725612230366784852096088703707698138420546224155627618546888898741120574109901207049105600440500657577402863292566341492566019108766774909706123344225514208265274444428932446445046112290151346033947975277732542014296562266954703398473018198133284196412877468234547529517804957477366866178663145387251598725710116525053976422935788150445823563277862405687397148081319369598499169889917268852418753462938989312713476930133860084122192416544447277850143263227036702612743708456051800009416648460770117464093412898352027059084690246579031922279425111505969227391687329472213057737983636619093979527915427456987969042889879798747079233520535461048975688398341574482139848535773711058150187168613366523842099300243721332534335275888986374538497574351915964243885570816214429457769508905395725103544553915957621889836007392442838404304080153011506493339414774299035258562843098973591613966481562336422563281404070374090083818994957397044978137227484602428368013552883252231663614689142558305542669827196052955926970392174209725302418673655348275327819020917765010681004225555836239854888836140761346896338586405989858321657721921563068834477665730056802591770631016524476299533798504491389310539673475772355891204892520816138068543451988005449868460602924438207879320179413353707211235395410909635246860013716019485140934774938779805806687102288201387359026075857982390619526854576303656986065194265780236588469571104897703807178041415526830211891409499064876486265204074909179409670427410682029021979833381668203427662904452318433372974936171633341418859045355443706760312857454405319085285516777758963625707616415608565654428010563383777816493985986054523638155565874721643993563962142735971014407813359178765036584007568023486943329368189491008862412219132857944402861927888058182804640168254936033341482078828249448261573645333672478445878281175790619550606488107331813756090813934277490239728643822811113883046090457301690660308288734931435927921454733500918257164308490084667651599137961141150566196478102993498848587616816207146772445678301183682074514254632502446537216973808715085339370776935797366400892116262575140538758619359060623252455826819993033276210581011191805727336185202685540704138313887919897632219594266237267805677534089362494182358150509165063058026827257056258095868215347609890127534754036903644605481905251696179575207587114836191481676797075159842447300674626482363740171707538520587757919237010901437603115685270201011721874644808302356896401412939537943305264450489331180389358327377701489683717959474074254113852973152413938055904456623586142520224428285563857221648225237047984661468007045966755106075404130456421931946089541706361047244517479871448286780878551537597579042299988910200682700069240875851693469180680237257815456360982831489300182713509146008809991526487499944513206234583863403943447727081313384498663263911407343898996502123355706545503477957844177382914254982143604711391232536249145611212186309418200565029686091584048908741004998806822734076566344881325726528468178242447459543896540713291464372698957730301805807593396619768962769738656726556015318773799367132935291710683506310203682398147081791316300174360598615545295444775857540941592637733855957843183702008958077283030185123834517299851918497136943592102381301074231840857744932181709657246941325997792749887001910529135554618566213381227063429287289989417020574278977457603402389262892052828241725163692723204833226671592676271510818059770409738103666530951068941768389021298574233909696716492077062865212219092493035753755972025304309261027899583708239098591545968334016266423093600789559024414176968405683339144664885055308118265516081809299313013672615587639257834755079560713145768832821231391802687345441753331873361971475287289793206539263455373928673877246248879422743971152278861086042168017465525321410058008667965861025167295266188053142395821546213777679471043752292466624939240280694726073128783401094633698919172828426328684919155741410399982229791599127497900784217029687171094537745779985168790681087154094302688288268756628404854101425691215511395659611512122981608784690530722370567073281320913290537608360198503547572773173033576480662228922461612215275380908652984944551432284099308494157146369153094544263339907091057818165866711272690566077844620183077872218248144438718429856648217507937108251024027088536634741215027683788381228764439105760158025565278717795607113879152660305267413730841149453976395257325511665413110191346434643405929622996220176648197594025307139867951432421590642352230015073133368598897290801506005468155996261276287793710075745997105487986486658980183223477847893453797846930739862520929506181304769999653495277876286351435316930222950930295511672026971353674351717550283304329816663632944367595583442829866416178911049477171514707200679530857148729748068589537769157132286078497047364001981609670696866327990581601489183596575566901643979428327712318901685375396475565476627429982757515031326149031923143361342067105998017292165263590267451729594825101797463859049937947496363632866145602908935744596777719855327858537753542664651186078090128229093446831542981232057301777356762870233146777875338413468681333973270211666630028391689834313789336184365393779168706674877226257815494842572433168101116860836666373124727501222933162582776532122193216467656035897762324009633179646953674203356131512121450444790866542339706487953354082531345703765116696758301695358802106406434988662142459748722937941415861240554745109331669606200618362291709070724794665208390672721551328458552373523736077448505496186807720209184012586335278574771946456079294511672468246943752339849624819141553498003615542934134353183844034217827505859757609345491747108941584689127622750553752859232360581841870485494390510647659140979285801192559198294774817409795720970850574519505492619872687773181129286362456960727635887678289061633473542655251191311651083858637974962147710401212290171530868437058144926787788450461857416514411081711064571915311549448930892980675109249639191746234675769084461434438312016796929257071760670771723046135649427686535659878134074524412384742859352020973761755364231345962145541481613695804819260934243900991405900505481249244542648395704193562707492334057113682961869589469231198648529573747189240731792127274178580225836253541734377215584026542249559770759695283838251834529658806492875631413018178613660942823559178831494571902066613851750353207284560376048937893110172779515686821552513582042124287646369026551982587746738833205471573146674731123604510722268719926711615526542994420720485192830310623549333778698309228228205877607014729595247302482447528052132031686588903582435890416198910356158890133466442277126451660554987708928149401559264733240907396278296039526243924244502328158581436010982717313048656156437154867707194360501614279737979993498479966395035762987436344115439930726283141671832259797847838261249105022547746889924242598516509111271074995575466958733068222609520102326907377564811860494145906742862314952765601222544929851329535490762379144971168577403410630901726311243230745086026624941556137610992684606351936359607537872228819483022318825769454532476380041077668026294636646433266447613836148667972197012984532581018490518200359296003108557611647838214126072323241474303160758492985004112447006621406231675399816036147810774359871978612312399531274832597212852686084781087825083680524391944440429468054503817041767273503203687913262737054963807454325427793097651582109888279202058542715780903881047800581749030353360889912024372093387427393747560425809756232709732998219238128683870268354875232811669164792706479933973116771671548036047335060629619697237737486032671042645680561617469770954704444460468361220385437402870054567899925693324215024328724752194882966906471013235358295932388253253283034975213622905630164776235377119803602445889564561537286319484121116799028466441288510884324956147180541742340840661154601945274786559673845415848953653484909746351591282316943769496349336031544080530341112742523091735009613461666087969062689234004603138702648174300407506421655753537673824569901554914835018600802315583798103488048778935088885199755868592895864593106301776430160481406071836142115015404286748177485803859801651280891299883284277823720488886429827817383760246698835669517033320052570838009198894096087046337146710442509596213933477996551229399387945613547467040516934869912292793811680014512464192617983968493244372983379731964664809287557737612951378946411509182803859437024883156030051425374610416814202401783897738769636282851304009114437763791538492349276865804462832736563928012239659054426415254213243961342490731684002250672344802681799765891397072482515208713924812254753835364569054917444389540949976038469510580670588319431208531144204216241255368637525470163965024090170429298619882189225036763066662081539863369225754686735204662077960664357728799037536006480660517532733117860504428518262636010335586112798665777735538823860546762877668068405995737977168329796250135503986517168675121705561127028980779007368842926231719005902286000347105734798613791490212744884588430117542119321622382756251929725678348043081730023980254800179299604827336403734605610748661903422637967846157940868408909711581739673397992715970459042289691935017754082558424075565229638333339933250700699056014072762177823033288251020435940935591212409352178748334321474676814745262564650948803859092709024651976533395568118514860008412424071443581358053662318546923236390551596327944772114715994125999226384852126843804009871527350009446811802738025270784214331932769705523635824755653049882029002961986098729505873707166597157859100688621802192544408242814672461871902613493333548726931922845684055539546682125186028896876240293356476379616758921713403727359424211265197483594312235860008301243489630235980624523870415784647260297799792440630214901566015778052420441398418659608131322751238780268448359597072109962861086244745393657277169569237215950989795625746708631863152725016491424961856903703412040818721677115543870367619950387089771875200728510619788728890625797848685538065735679613763542657807224085068496540884378371777308266788618877684673472173765798326381247041357322331716507658312538045874248651181102174275830775829139734861578160305120410771572331042379335903414033636214452645265723310685782244889969363392442740911307026422684893529983318917821831669735687861398703247606700546264679418690488685578971218133282994196764673095840096907570692435776340579298506997175421915990501903074522955115642677238850456498737435876391255881580722980627291419476112826389385839209263353483468860867935893082185464196472877423399413515519190683720204556576426162405342624218326595763198087197878448497843672974687736851216996793388531119388864566360643317362302799219911993055635500732660573254013327142302115094470547901001180422362424635292093403920784461620321656845191010894138491122877611896375241874867524509923729257473464772319719814987985905052638119414301759339205434149376871500059560795184376722383744067872996126942429557440632605633887600451565277853923326580213774268547196771512214662590062891126491571835192840388642761734949384698111543876222580281391602738981031255169691847970364108676779800542088867693165010300867657570283334146621889410561637839543512256528913594997542560689156056289072719009600467099217030851664868116581738631002285152780104792626874063190168903977885203347640435007629962787813714780627167425599379832690120879439968175046246493745145521485022069571845829624737864136796492512813440498787840144467609918442613583029082066088540794096708634859161513715914129304704300686870138724794959849784050681567169239748538145049655114818130750539847652877887496013437427441570726981752009929312262929153123239960240219795819525053625274170380211895963093402506887884667453449114592415848348522181468371431201506603527340529818102744991028150163682403705427444890061245263504891356359828123730943539300960186280104372155806249090902529034963785951253947740149899811936213333576301356329434842365006304246818320658309335602484674988876969533353199791191171196967049278916443160842855326120091407811771277340827890184017316630994580257184116485491962299939560092890420261575100339465721038588872636337638453528520495491149188342449293527448789188428186561886422138363336389214509046716215575744076717480130123758912835723663372532572450908450134172271406337976101644659689837358258664334604635372326453968877824309331310253841974355440435004275994830115128449810281923381918643411274776952194416686222151816154602185907777264467469646068671938737940054172577440363263209807301629923952647616139963192484781859048647362892560775268775709211395522541898285373412355307698508488511779211500581102991348416694479724028924370607171555997535603726158677036835328300745247913501993090696590203241048318547030731914516472545495550420616186461690284231687804171976494296258203840549507659472422577978170032173986607949361788149525446698290468921452500955309391589979791978577791315192011277586041358542639996635557804399512339398049122325449056760024292295961933664656591973370358209382927496718654591736699899861851352512474974499438368551656600932439916984400529625486936183492715247755137322063274441274489669766865414345243219360023765265649084158194623868103083923291940996886044037383225389051485429434945062167285760582306516461492370342015217419226064854079579860540585231392104798178045928429034954447906337269793898673113900888433697347347653224847356465711734222549347980918509421403458188408734888016070809096638283553766669083472042881315138074483676098737314283432533461573761122182757048992169553588396902782965272863023792450399642725246202642684956627966755174220879045415055657044929487974627472818896771417476191060632888727344754917542567200534499754444195357057652562222533344843875408571103519237444329947851091591589813449158664552352059083795161755378574017254277296772565664424007444232049717846303207954041414222562623937757387423057905943946327924424401702995226466771031216016231329924492583047914061574722258291403299131599005968722596696329814185238840819814149528007560884419498328155115244595703250724520279105084220237001219473941650019651828932135493051651713916696273583846684276425584425060306780597785097434901508907776701983684812005980872409929762599809627577103179639114821130099741345257497473498916084172709271500981221467166021673630249578417948850049763807519795355556746333565666930907813167864317231876454038983229750744896029770608687111432812707149271045700929034607650656245649577049673656188855520603391569668525457802686158996595758161293378634794442598238605286900116299854188198276801712748999992614107574858661353134623275609672639990730290468715993018973622198010669622314568870230427781785104222028270350124660332906834869270934691643055392659824799176040111249566280391589521846754736983929151257429976438237946933101405490081972315834713347179458787794622148645131261316849668154144870570356557065271840539113166412103038518930786281660856309574098866510208463561013983100027787677829312008132077420042064191904941321680274597501062027736045646890101052213837359801623248021239788608163640370621718617897149519376416398071259487881879716073788625128601075687821866071308943464848503676425196441467215170126985562371027627575750424771085297976758486223821664086688060508367319430838249618793083512368647781285182577545014838337781735264735317976272122714991093194202514729651695004567280820247782727921741259919279502744348884299142121213201855167788694185286845604089846452039009119438682243587290379699692988031311174291650238874509513445239260700145238905269847756330865365392594638739659554595315350338826084012213294892268829813462522757455229076634976308637327366819121958736435090697893903474113841299610813531177403719000884937166450583856359504989853689794865295168252143132518558436052111970892301835774031132933896955341573198470483755730183134067224350097303211978965237517723966022010840200788561578319076075935031901749353691448284151638912987134789802287717052389750681418480074441112120295052945114396743966605997009705920719112397091145159725921217674757911219593465434537083364568054781246848060607624262236498128783815290012629675015165240080925022308927604373237113081271038896364067852620450908430560391349801808514297199935228909021138990015960676000641125101264846614191839675592090950781186472331821561827640509429582785088676133351249701406044066937409242729584323704899261929355494229788598928381092419299641803352690882885958201841790432214753684048533967996980634013942170711630146169978439707607192750242119930761360367666558002820805102304083470461057801579933475394676495305419265873574725510547379092685756116358178071600611026773421076280535463802220043912257942042583346877844814706326568476337084673818265576212053424565090939869005724774532335909771157782124472955428842484066477656039962337321016500070591986758797621961611253793202493407778585286005450331027498400899406387435851003821484622118780973313382030035935336615500943509221342384915432242782932931933257705870136764916565006050345221273257692836431651010233667997409013071089235877462608231787292519899301643943391276415160294896125643684308950905621478226286785341786717556837327268369788630237735416417622025508060569062525916853558392914842374304490352679230898845958593261884912710699455979754585276996605719628243929032356638804095579354089779250369350178026424572384601959739751376436354378623149651316246479506898511018669169482321810505760067512360035174152125187547302224864657201101764700701442220741090151547711689978020101549090831780279861812129957375936606330665153284866637950618670202750216874161463586656586502056568540385154418120799717579440831039280669436505794962119599374709851866943365386309280385534147060010547521518158313863807078412962474177541501017313739827228660477901861145720457328147506308349936482988847215657256178617468790333108847405499095858562942032997068765884062952508234233038729047308493335436136959144481710117801361961980191380800467284564577786761390047165918442639224321143599029872520590357908307500277370947975802585510980552321589783230219676019355480942806709103824710986004549817285248128433528594577640838441207430455055915987641721499757620791195322323129209205434978462679022678246487255612463587475197571660617073567763596099289251360773256810370223272779235502567331025131342729298768915053001223855402169073470497916874790863282669937700332406801306396724752505425839373624895473170520737319650687500800459003207806939886650692072983493653004974366571580418010440051250492767751782226175448744950438121884075842905083604830142189251629878900467754950154715164981982318289447579192077051272088675295765409210545321018731923548918730106862075557288195220142153656287714945331693316865613058939904801742324038032649250366904654032768866196076376680463984545028795727432751003422083766634769109817083664792300951260121004925717890946968063264026777012285151501484870529345276107378272087060640631434695644727657052290504279622842511817096614453022662256762398796656332530640483669408610336726718477656731828821397409005115466593389474887062536483823861063865480299506161728921519934041056761846367938644827418297875745961015305069473718074221042858078581073142753230871479585948445946468959974357202044879337430114236947682955421179479457385385652652965332337701268285361835222921570935154654624117507196229215424677954407668019195344326407248245607364999533583163202398377632726737056101820339501013522995897203832180014139140516295298875133457342078010673963542204250370614255770151039648168735201838171533178646638437649065771397373895987222486936391045772496896063651534646014554386048940570886898108883587422182850049038673232195146417365583048351008557982238454804065628515222294701947829881011736505717436317152886931851773270343992543906696991669462706268687158701186079753023137903769565174496850329775279930160304205453961818379940766382094818718730098190806323080194052994893414928025856459442970994476960476904649205664074312203778128368018812633158805346218678154421179343283064956664003820022407031964714646911937673105121484444228259740451765098110919794302689465042506334460285463896474283095948118040056145987148972713759137528781995601448667260373700980324579699634183007770928993939696930783969672737284107409744126999973077655377707556923245317044682197837061826199302013712305929044015244038796625173392322708984680718368337016002151937507857939746951957289464849384321894482103772230901175301777101094640139870243911287979489696410962686729293012286248639926683498982532818523614433416209208636523620973907795195385824956587112118055198746798826617881251215647013598753522303219115750387349057164737751853499340968364869074872307399699859955405565737526583474134760400551449576766467368291831339767497355099685813391500257652458960240387708547551402379914891271009348587761874756427334577988256206696866260136430967995650312521982382730291291693620502363302574045551247252764469392308731053529954888563913923267146507354636289529201959032426347985013203557701933598316497228486229416903988870307056262714296369718949076002143562571597568304283872389248930342042623327268160898725347488197803200174653907607377321764310743275915998256932994843859765828149062479922806663449527547666785900702299216617204919196686358549216658745434351654286208476922651705799684143596090387290497621985793800510415619092441597206102599321080595632570424452060200076324158729944058516158983465123233693323566970249363133026332771079595807785572571311802642975219328980949519425441895614874424272115258676359818962140638821641691514369241390595212127258210311334759719930973216072744163403707133109326027424128011047094500329410437840077670101394563425636937349791026909638927840716704360760074460491304866526884711231680334956325757799143587696532072447878994597014647246061839311179081466612962209103806213548494621655175362751406426578601798574024402807182192037359597018473644237390072717457546254944593019233934476930688000066763089153044342593457135623276493843163516667903251337034442764760414158543527315135854358059146572995331117765246489728168891604323256253334911308583639615918515557927238142499876084044537873208151951358038268728968038614315280064289123539891110019077068682544030062619044297728193783696579288747075838162520722176404859714825701958168012452174212808332051344388271636540576638716234363224876150222270629210368967415498540898841357160508028624391010742746186928891499996022675093469060894719445934845255457275680276879754601673701141709262242532923060988125266112964669437789637432613938206377352850552762151751224329379939454098451931384458796484360406007588519628027900364951189751266647755059375476483119592424287565326753208043207402783297585493678409088049756886451021931357653199031472115239200774751481557294927724569067554325361020305528977786974183396681375776943106981312135893364330412900281348453771920768007675634578951926749523624535429826133546409962894693387162631522331515268479543677016432579372629924832031405705344806640473917107739103312972791224118275739164718415172808895000922486544128341463100335671205918287916909812044248396127949380139994748600250934290099473973804740636535346264731175137363618142643078842213777313940993809663913455172109114285002478153601929735461417037596769167072196508339798614707477518311734461961787697924114671605981341042575543268085857498171610630895088912952068927207601542058476344099578297667303314838655478336146443604922401590418264654506535939860195531677110992891566167955514995950448066298803643379851800637282872858947725150092180161071426639823736272546699554249148787099752559290580892884054831140460044205612096586793990217291579468582676126105838328153028008063379315535852734344244218096732782169532996634028196905539412666919250285051609390330886357893304143614381079158741436146594329334420347085123297995613122257092742874893599827427589057713954169919830053748433041595134741478552917222227188340405237882687146976223710854719974538885093044034218037284388563554285710921695603617136099168128789179894460271916064818173553484405012871960764735256336704570357138036918051209276056865272863432760264183504036931965961474289151809091208668618690600138569576740696698935498966528036096623135547025652175398547316248980148918640716948023432587412688829877389543871332358389868267377706836071107860330941576721719436755125360757523607649220243603840102226494501012866200589277926783776423625136519756462072852799398806138728016108366926551525053681889859981327843559309175527863643815580410955420994698116234756219191897428491241021154154161399993196398486267346199692211260323116700713299093158912459165780994206562054598952336465117085768557203152505019730833028302670626732761648008919382405733952997456243564341157906027821923231857684140342770749366421180763130907905905820485286619206372670298228103679975056169294749102460538094064442693656616445199748767281536812622670733157297993419104435371279344605251068357053225567316772424527668806302486287368488521616075441913847142827898725866768457903833427566419140729568148533511906223306073369123839475929073917361587562106021822188331676570195557412265377366021195760841369506251362996307454956407085400612418676448222352521032448216510161835602987518014351104755421269469732025247532131316631122942159768759085934103467701748409448125461870636187937698742972465904627618333162911900934541368102312691393308435528870447594432013028867316060579892935605540420763705436378291324625123238132734501765068159165311982812153860164974106095063656372824333155970503545281478429985258241832711518956030069879792720813986015675975621086868768636163349794830866644471437459113948343349583673074955908934869711928295201332986493029517816822744551651531933711692390907768178677228387593248894564883509603602642987784594817941403754084009279090680655971763252279017498122288380254861404007505920708665389406014140929001807751467202047621031730871833428690080630744045209715279646547152935566915289730179373747724683886011616110191113238713991417628141937086693386182137309215137583552963221556934534174398957455717498704474813414046774676442996598786332416917271818470707356258865328720650259623952881402975920298579602017028786759148126986174330208253582027447293903163904029499006070745373576584913325750803362021863182351399212413509820843026985419570975778891584474473110938276228361824543239480740879514568319467930733429152312100383997883395886239917020119291054401866429105730374736219012995513268663968429383353023960270186214983817614818557291769760479372572443114774629379336691864582667830208483971614700154538510420605052916934313052094100427449332790166549435749352611627216610405060711235793733403592398117780093085042898245203276467970653018741155100267574898276042249254392458104145508779093515968328515154478278034395131544030473347545240076107223272699021344531895984271419785462497077457485318153313011649455706071671173425990593149689621010235987303813187365399690837701867202228880725370463830836682849390243880352678289082283746511183893651518367276987753631251910738047361609331370967419811158713943131304255401020145891143892221070995945903938607559011729555259103979127216485576022303497499598439865141564316948398769242918386744728810439520565198853422319316403413544495114407476631164706872084391323855281105223719168364453510426088435898460028552613127489448372804745860521645263273465399401746532296326395708272599251433608141601134176607093453994013432161630038617411329191739918493233557128323472092625979378932976510420148688642923240708892848068548268909817696593652158024996418637761097482646715710192924166589527160703623647080909597146926358569305120130909943237723050044148301703921344248455737506666903782304428389835551579587500473867179369286640170205565958774989725518701330307067033641344125889712350288644903572923796080372658935136460062535286967119220195408729869522608598577248840916578545952182016905352588272617890136089317787728629808736139730703676427585588139104341101131626033168109015401239111548617473555001176192302774947747946185780901968021252149480438672803805246304648607325671562083536436320995219086692800607206874884137841616333747216079051012296274569834274658635131469641655149033714538581049506589665976824141787461872828276891796502060487835466329190099169921719104355270274556062270281090758053263761058961991561769830356941590028397481670437178719134831999802944526975906606245515272853388923455069445579337152563837116383547028952183664559019812620921307792984065286182035060590337872456966646304906653239251189404256940154071026557508334567880159131679932825778448102660844486274000779943372069378191169114583333748715728235882709095152915784703632649825813840048123848629179456106036429900428859966033797304340957023037386243258513385758461089528477586000057313002468181381446734329019784784993564890817761000508018622158297724342520507264149977696377903119011204434710695310910460347065878713477207214423457807300569961084509943683292745725521064364435341698345323975778529209052668805713435907220253491128733544920506238185811157743508727367006595973488727020607811456637354795331087316400970683633891976024336140948144430614742282533910042861125128442836977439621410650507057839917927099055206752969598282919500546426064580141136736892631203991561768223687785507343086148522050235229512752700316716683267005569631342954554721133104539858145228567581678787596549964619456638770651551363072769610458116401499944519975806639464805304072666258558693850259888113459345481669973334758538696635908437460986785333095850948344737977771372683783550953989990873466025002366583564311313168413325018842357488180240488587768420123167242299103382886390932507460841034338972490936999573105786160809861814283754372563429701491843647501360992272915786914904432517283220856839405144314537007908365575642145698085361203073448945272773337182122227048418322147603204798998473890148946340400946204367977385951642870482316311255124772274395345919879507008676225794738270969741995453936601115611665693545520859811526791295438548167834119855163225146702585892799406397715998136510582640339781671608130703708511247060868285028652495099394908213107977826194518106278212957785218758074362300190449895520848879928290862282584355164347008490412645708948314164273256682574072339762140598447276666612377231932840094417881653231109327501097663593260386493666111159028909594709353766455870813692383217754656608450028626490270058263013708870358440542237139058833238382226110082184542211447474905817870727404604455654453591478844852715125969598818106724420910495490019933866695798530980999602490262340624462654385201094411712638733750179235828203708688149358417513357255999623258218412942254682972207671039593368694343559034195826072355625270345907122171047627650031900812764874289381902395936190354535273377552367480695029599843940626158032982311932528509042774598541445376851385953368257276050684563951366751107066985171825758905634506183005537148434259444660947201608438697088185855295424669807373215702679075769021594366002929016672451905882170445514818592558412396725269161316068425752018777600279270983183241733974881502039637415031452712993409643306507959068210925140522057684360092123825150836695199815795103583029120415353465149256211349624668734722946939710720091603037979644181152279260042019281119471243098868596981524251217661033308673731128008958977811711023865939184516938214511154268261837774306108126756253083683254511178971488254726276709635631235096249962056386935948905724509267755617707334189279259949543196720110994911406504133027939033261624290824005862110994853849790302294868436248721583742585531271811840294437158190139420208807436771684392292905105199754733605628321606908048950351882813968974035506007125471086297522048543879619972381314477660689957681956059642560159440870599478107069372071571123432546611967115796049705512996737935185742776079927031464928833130753432815402683420776242721168492646342444057296104109997044320011385654339264708323728442483211054271977503736251965962881103165274094323047801860319683118300139972199790317399219688865378774024645856636257740340549325950216363535350897060848153474072053673803495165989517392786515912120274104932613588685692995800845195985071672717645728743118343745175141987003749589499190841336160951574426804950461052150298229945057507696896160264299321652400469947020136074984060485032687730035139689852522532855144442767256475023565334316234453320972900152868460299566234547971983828281521320916216321610477949653946952697181651477987772562366320157482439592520607811748300414796135680076294135694175369389831395433427428972327703750783905162742105200028152748053678371095896040907141744167889326216152569370224790308411984774910567604946558431982301444878869724939138735951832881972715599553813952395651617005815586645684354778506606661009922480802308234704265720145029828365752370526635586355571718962602049612850161242288790102380516361765706235897409566171506801251029935253556488038050374914412715258147696916520542190663640751756500723825681635760321464826134180607927719824737063085380444391646570573305038783437548078154487021576714401713458957841543193361943797909449615897495322003310986285602968180513426680848207686157687649391166651367103575360006803545568587282759760553032476511562631573101892804070976846314609986445468964419652313844897341331570426473687759748096705410890355809119956290787073073221523810107841288258814009373830380651660844355249901118148339667003468065469520659308295432674143573965457059837228669851130605331797781834979245483609354343946806040896440246935897133537363665250446943653855718866669214871562977570667266805248728055111132436392684411630861126532567698830579417313733364257082367224160541493405838043967622944445939810386133015307132025007873951123765376926051762597735603366026468564416849776704306701811827120525560448196820108769144252427031951555343525210405327940694134661672100317851383185586192547097238411930930531467712886318213231093234298246480791187435959697017593921872922985838975034441619409541945565568910557562750710459259708344658931013103737567912167705530413721350292987536599468780381410759332896589752152729733124691891265923464675011626125682502308847858831230753489758834176676157653929600492292392251185591037483179649177321323820769562727097220793169433116688116314535139568782057323245018395440489169018902749339353537154645372063503645985093486867812773621083269354291442635362921181289334956345579927658896575631742473748103531484674941085711536447789646920888591413539381519919437436811716107918744519456611244790943595392807056957168872093510331867471896382109134493136024515592047714661781141943540572898171635783301018776807356722233501049507806476905875106716050205502173418189913398594500340869566517612434648524744365192717526225640163745724253857239087935283212865664408207596342606601496440889513385010163199175023692703928620826921490141845780527216197010302352771577555256955793955992025001874988630795354206024294714364362485656710815323798114020654929236240993749869840777725655660438062815823669940610815143816194562987740772110387728704814865069035170959086984967459686540411061769299031924063266053631181586661830800256003776115998482211450451395852752468727750049704296598075810602317441201338809406528113151082787502148396625791685870105068295178816076596888253212576966658858112856169018812546447082347980705316290710612656015496745741696696346770679206477858410038332282644365438873880769727352750123457534826293130015297427661318058530588458471434560811988365533755737603700253054872237381684083511690198513465513782180576298955051985534732971790833523635151186611863992316594190996212828839234984898094408065699956497112904754654775762053196820490178775765272386673026896598789320572512789993764237315914204825296447210572662492321521480524225081568965691827403642383865091810956478823308434031049258019607222134576814761778478453171440443211119420716711931534718271974690447317393746004213886292420840133494427912924676299375464415092688846195770840860425429597162618151178623690635601646601612047934705660498435662315961781835554382709248051542124681772759241598349445510996497709281876454525523769756276398797680193204257697846710476097043780015436695002418494950896176719836064336643981446048337493997770724197260130690265507096173019051335623446124884073937957008348686346940071612611500604926538944025079961713464436410967242687598772396162717446706160825377900437546152010241515648247884675891160093735519449950750334860214950736788109170833005545064040299449330726607642158786769448412534842115640529271780219469263338446304459083187737374983408461629158843438123011076359282332627916982090161676355559164095232889437942958016325150020938142708903303809704676696411482378796867113032281571484988466750145690798891718868223755253668192099239682735416405048241569532071805455186826228666670148054416556832685703692251821061590530754144351198856012473627538260503902623316129351604211827191397831379742432537383558450419287818032479236632653258843850694179992367957690600330670703931663167906415708659084718808715287213973274566276115417079981833694556088261511309608954565956117790877955194139455833292724180106262310378279234375656049654223037475787822358535848265546711623899199445624563230275643914184829476448931985478904228093910735330791446174431476605503479074827663897459862019014847752716062812972893053856795371657573498137523378787952706664107810293584550307887812383323219809679230964493507582583482252567797871165891234925019007487600129322662445355769380884072906419662304243881778569714864617860823117749696129122243555846645469493141895132519129823112199284241969915644592087898129082229473681317802696252913510382153177169517169219674186037014854215715915991635915729836378071996384315456038442315276906253748035839981596221885957643565412125957926143999274194463663885143241782800957176745223735145235966223274386261618182693556528558924743893181056606625848348677177700136914231248892826722426583429156356900825166239821307014950365017429486485456493540570828002260598892337581936256941954366570183318103301085395025472304300527450610012580319937321351802681984778333660309583085529681635861066170330128706764657654834144190104986769795473073650382448536930443312839356982017379484507925904694503266847532682112771818972282253823533294485296496875020101666048801943208851102833778796394649481455751040484676487798733545623441448608230818053015240870863574711573369277641073966419324188219993896493835591182910431878665837519588862174363770306976683429601985896526120997363277762338521735670001693917221033975013863404919294565809892557752801767488174783769128839935794141282438955450233048351626783789979346410955333912998981550717088567615730281404370251450597513801185767916578272794341377928183189742844021019587546940306480545536798099216312339522239339354193432206916663420188834307157366663025870354438552290460490093254597805073275333910067148446459138347221855987964788076789782750242089923901352565664288252780148363097851502633012508124748480373551241708162238888737222130964021908360323150478373217554668646702751619326747557127035223910157361789724053764913647821937588278706447201696951602855388917141344118504506844101397843758093202101701211980882729215207458246757649641986511844136210762440609739773982426358666138467053088692784388754641540900108716953392026671606249059198660005237085162986943757412975241618662273544901061981581864840657144014110723340007559529880169255252351762894728718223869745758144720955474742388230713213900357159598352706941817745725719609489411529313139934874016813786761658772576225638166046332413034526322053666258512923157020579646627968183028601351347298504235555688757292602225916488934560578681093748054054566699116832630442525946025465523587296156223913527514812186657538396674985969732529542020061875698207819735771020021162193704918861093108544828777316273603529170686046124234931748221342426357549089119213007676296681560365447596748668617807491073767437510822596170886671317433093824722283699664606256985111236333037908333979954325554033934865340466238031716630271676527343734634325260398856936662509015879343111705504453388849540531123664232128878186734097455987584969410976127174707792277673574759778852851503284379880714906854661010488268948812921380858046564077573360414501927563335524364185542164272418584435525256620941501695404026961338369735004725188223673656284181332029635940526453443518274806250924295569962095344215474617405890682766693229878328574485961614677151191643168274813289695197857631737467067426383421909154463191668738645678469755597257599287882964351098533671970201673527743665171855521213756553557501001640000035204407210822985446775077072869265415359402827400439131585385901982617538497523282371484134319314744380768705802492446158939948990643844687747918382924107480158338614039061391203345010316340159449228496268777131471653118083683811703970532017915104442286251439167333974309655286706944347129882440933199211132433587660333048234487731331746900734598274549204867866800829543966800113652642126122769985523024017157069343937452242613327378116744221128772369745782964970574622678250130939801515451090841134060550409929544305415386111354468350798259542032131483311421535998409228861395102360082050036183221046911981771648688172373833601092894326566093254383028503254571629188698431449758333409063877614510253694459133166435467741291033575933787605180490052136065526897798810933205656136493270764132864087308099961339699936597786302687222404197421076071348675014572111560702515292475182137412062168320070074524995441893352086617786791415135420679761145118244774510565759392574901874713928021319451910942094402874536368506408214665701840434479121171644830453766509466588211592960754756433094350842123126244871343967851660351650469080504762293872470622784167905832559382304624695031229731867067785606217864784097322320695926477689892074062737290954287578621510877780101845087672140510142390982196274415839460981288423194959848128228232170216064988073488896808275373191545011289060991268601948004981780848670069648190618378638046760583580232970105386719596521062566489450926459261121930727787459296913342810317916318345907155034447945830527153856079430418479711302494802332303996627493142707361772229085209295777772512371199469919763815606415009685254176934545574995036344604825858833014151544345551804357934770165344432660687976267034862185849234653790449722637687863981014299037943848595453935587745087313260715940881349751078742046063202430727547059860240063407749145633833811036312266028140021309764356157235246896272172319687752659536655621892082394151347905210604456317221698662959948054748106732426088828960547558907081375383559924513537942449242879800727004895516623446249380818282129415710334615874961483723871089679460641797274711301024953433955793987264750168768901225225778867135075379834768713318059457005552462600936333288833607343929464709453387056685694283777510498807133546165232544751398251196161325555958597722559635609472334251058355822409260256872521896349018513032417226605659753835286653695916322593453178645551211225109575490569121678589330817872109240732040237251344398493947616467844422174109953299080949414097709934656559624293508663974082912306714828100100757749061928077594850636907896612324844807237019926014726272775827694462528492266222095973781222314424989990867058311977646101575824896395581961974208808850081193794233670771875612120635243913241279185471458908278434390066199440692512509241138521785796552458017790699010442901952565922947297471108828980299931891498765150598437778471919415840964628975524119566731773951894963837171139460049165308027770050471532139216078538258578616892121355977823226301043266541806879743842632766507326350330893960244978861623072624100532120405582976350427510121381857384302045263153268660795044683768248382782265809526175065547398973156437617125622221290731188805198975727396545048298935154821067443580819779605977442144732779462946776617886582769815177318071596238299651424116960320976108343786809659473989407619044285508720061645223364600887370013952330292416584436615324826138974874992127983887883625460985577309324005457686494899092271722286501824958344654883383746367938792922059129956686101052777335095671466788262372740565999395944224949836484333080744745840847552456365505548386538021163877108618939203330703492439651087353837305842604149678648606962764079870319425114735214050434623569812804964237146522163011936555178178181054033045006643349346617257441134004916953374401639613219884798752592446489613251315967587508471859705727080383822338776585571340530577605602441094813505288679383022241082991811580355113677826365559357586887191362292874676817135782866348983447870531800329466470954468249627623970228031438317964358658060458775074852372842037303115621788874787908514536178565582883486109295029682127011182657032895850218156556684731098543105666778433629786104683810565511001857792461405066866430380363422228828699125594379340443593261111440653307593314501152856382933011634708301425557823349425884993185581663930246268408304183588096953944760374009908742062692493989750081919614123136166426935232310963141963753501830564285540902362207148379177735595899838820586833124188546228736573956314169220351281758351154183470490593568471910669306443226011892516848284729824048512911490953287793970645724000264999362054170526694395235351107996669476933503290091072986195715879053209244901248140597331978320514374125672005068073492921928528392748943180663481268553047564427223056771363693870690642091907284810498974343787987708097726693400947532376481264773916156309712064927256073328880941409792623573503956557431897023572655946966296401896445077174771224405391202204969198655665943597978761410049822804740188222160683354793951926478754244538936057207324945901802555677282113523459594847243683588240302621441951027084524255963668770957183570317818370240794413405512292311434289310577940049458887252132165333413188964933631321171857537716792496942572334328748134632166762410686478496169722085147199350550358767284387371237799144825440048769274333304044391656503418402531546477998317631944420372825054251959093284026418098796974158607401740693733682851081946774751124910835351671971859423432073134308982573579698307755797176366323354959300472534783947874223078941265653346507866208327924395702063544590447061128504631460916392371077958304359659271922724229976893193659583931958165519417978124864797040540951515779135592088548092466426652174147199808008371584400203932055378397071821403612063850176354663313031200527903885687692244370037291001565258958846565083274684704932479114909203667371186385779798520569892252919208350782348858191606219919099811482257818792594284213020572398802113239890967972100216980069498469864685458902602444485194666791854316988587407666312474606155336257865528642736979246839693687014561702619182985605648414644390264408069767468463218678767172404300119785342480658052266086877361748215235437760215830965794027000386069303733143716345071405102336978343544097746071404069962758628657687376519919384560513000554036771239531293965577120622209570601468911748138480274423094848145368136354656752612696174830001837196896197043388257981104283785955364824819709990292982943985852808243683209127302125350523076067499527742842427947302796023171996400024272076178178228485674345473932984205592774933358973580465747990366575227126150920224790618228996734578608420752567388248757895333547512094359110389269120248746838094456280444664224524092129251716110653151466866965759543532904021887557104400315878618662841833407369512054528249142533424157739707434339312106193868093406253399270341928435446217995038103669203330731842081425495032239316225637205431544939093909749163100947992095166550814547613219038100577028139605273190789349604345837113928997519064578655333105221785676095431439894969912173061316925033081581403365823875289003179691263945003580700297594515973449060336575613800924089153221859290785735294759796329588578283878181931674932048232806109123914391684465572027624753831664626980297676073613039394050402112905851706114971750473884872760320346079536058537306191374939689014801237083507623129433259538002263319533831007124557797021752803976308713577201058533518151221605613206988168403242026162811979698084055397167504299520518303288276982272118221592868496982399566732527243911255983954963183169679306880736018362567318046141813124040569775845547984717533588042076002463394266761434943061371219742900562058263852153650671078497524656068760852753505992010250459187285095039001742004710698903118362432214851431195677940816324646553796786879197406293956277404508888853549385306443886472455752511808282595896464028495928368925383692512795440504995359597951726102965720374921926873735301009552966788772184417411507942256221635230426069330821582071073361937425962823462229783415820164383403907155234427066186334723815820251969592336471922260518385892581857722703105811336891976731307703284589981132452196087455618895529372666826589009335379940241052262093426285574958056741669439791864749102552068250359001427824800549841206362539948867821465387094314692879332428578689411671454712224124036034939932455430417838563902523797413536670213737324887144927909755887385106669790754635742934381902023112908558948341909552744729486287107558163982486720194375895140609166052982203418711929149160434232542913510559502140103326298477399828536621363928109675651788053283677865983298885034669968840740142401523579895489412289403860616229017487194678549914333741416273102186692248266560856509373672783654048812255149050928890173339222679043033212083755825617311555604940214298980490462679881812620899730410540794842109531973599300378786994649764037419792605802233245636433637625512291361072634335611961523038865721247449375467744835759718818852834590833650165381136000786073120793739028479893634488640761023533849067950254063397978718628709564414040387218155092532112322725147524337196644269067233800453527870663612746240004760267473573752475041598888048243002761941679723170056848825912420269154107348817178397488860686883937885811349845422445807424647078594224682019651513509130290661482697020659691332782125223865279827692745832432933236161970068116873049734588762346415124592729303543154810573313002073911516930718935179277562009921843416866565941906386717547820997140076628673790220327604944166448436707119100190153870816729141734273732881931803886549356362501999804656011250040843773194310818062292264340141201469828276113411450809451164924293582141078012796812679932474424051741763298864721171327903179480915611148700038004605673063025113328687295063030125120806015124921531309443402851297268511423799142633073552622764992827939450207996261493938409321400023684406755775018890552253344111798731499977691565385039912460176063130266531093510403375988977145285643371313729792338936876636127063434018684196276850808677803270079953243821242551110114327486761278536910199730828912523868160995092644893273024476649121023408046343642780852241136709079403546594055769015429090205876717459741221377565267679290757433638174387263527378488518719383531148115770443377557276131364457456441463001652573226078825265521274241217282819291169864487723658007885569807520839226054730412039775129489159382938176515271041199084353898550884750922224796883557856361730920560733798050922352674850971280529372965973571071603647403994111804359886076879878047108992793956502176604971403732351866091995267561869159623176180111181892769111788667301849295576905742026145459332956336886051329925334342133620301620984853406315118015287523432982976659135561809122769829699573671583801590530060287321455898778002440817464286400238420268337840592299510556566292140906766639534792539420506223668802486919901204824688821129676810380377882591402866878542374563538301302456489220182785976210220126697480625164088986332983878225661924492776897592098293753939376613740506190119877106644786628641329533915105765042862910852345077513526352154184207739412081455175106251599393358047564947633830291096916451431281959304090517963978559663082645359934042211541805067817223090408220443222653972548538545994474549924171825769532605985284489732394912022832428779917093840843325116920941954404227459814080909043609141425903978294996030429600640059557402783464369667469865342385041585866590147460319712805856061749843652525222406064614148389996674684051663110340397152858923441709625857408094323318927361334606344636300102680622948917157965886683231910081400128639110560831315405250098929949320403977419234222184490809324695690308756525791342641335206880052374028291197977172575720961550638647263719424322895510242465385326981911974125685903136086671263349000376543015505720899942962651734756360094217074242351303737380116131093151088559493206504215624535983391921371745063876748743544017208908165875499413648483728157504660764930572013498658126299266201189896064913101383448025053404847929926799108146801652071162855717624694013286667576124143335543092628729385537483723692335752748577521716850376882812584334113578889095517104173432145562527185143351886626408078089032591555375582442932108300326636921325274529721985474902632414060643747816614766000861704403301700050269371203622060986516720540235177432711080951286297376620164013459608673075272473265233896621588688650126577582982397796651761869860103776292282154276409124168922789956886092169396157026283587274412119056302511464714764173553632863201418990339026494920255987731885607161765043503165084375972647633130333223693531200889437937835693575858314679004702908721798085695469815030918751032713704912535128551067415680446019046972355173933302235031176320127823009621652896986179995102176399978436570315508544281065093680261680762049759637831458923360583892248968059827291002957444672347396294577118908003730873783621798950448963270642087072018115860667397395195810539755103683540374718438663270160774683924793672622211751478468204401595445156977855624967913869720211214234614041308724374769958071138274105598012252918279486296059437022421590934100705606377540173058355352432382834591349400113480139130617340605360747249265566523525179818216469565799671712665879499717715617068291841369678405974564151908271927342006353456469922404157743409688779958671473631482217582500984000092302596561058155266368510312267339154817724598365455483111616827506862490228626195309187001637303381234667904311565893119841490243153573889395550884705063566729203435225885808823613506152556147878463798148122241698227795641265943707759985274394156895396217421281853201509797113587536631386538124480721177321744118255627444249896274645067644681601589475721555816875926116834238868685430939044638370128582585489833904657315703992366061439246811817625418172164452431947273910466327272083922135260283017244636689122698661402598749496127934897449641988637461286770752000685766480014964188861681715667656139389020677438482483844839247703361926454703657835485503668434868116737655466109062879232619499083338981136372255084554326953191667329205595566109115820361759330356165160235899126129072857995246120842144088298421983083313728996091190318080200540376413183703747815579564443805012565585993480547487709652042900257887265464618780037378570469782732099841052911527580864372166479409867513292503523342554026274128654637287340330465224217041656203195310336533660701069972137522924199666362765813481853192842144008806803561826970103411640246800966391904861971112143711850309013287624755027208619729412589598853063100520352524106602196449548499422718678153616079440980896237174888313729907215676016640151662308894456112439184554256025813125483768359874416797552388571690453402747593538469218724497350385685071702921052473651009346101621932424596235303850900592327300862167720732478590022089393372068986070635230264878687236962825886589387554277927983769639855931394772031644551311730987697085917824867304488405995256638438585120416819129834866453125958648755956506204521915786690585456506531110769029744087835033394889377202537284811485405053916102775814239360328700636766153526041183969126346004480056003273184947864927314643232598562328103673131154971784065532824467347859472342074780701269096780539054402651280486880334199589728301150218663494953658090999523316816592392360406284293861152151221636643944756526792887130348014271436635811556496052327012110868901950973299039465418225137381180111152612952717905412137713527597464031211442668131089051409432980248870549575774326958275472576940891015577464568809262872139799048885364875857780931077067680176222718691624568763662520510979187572405371774219332514989045020261827418907492263805585007870095145780640966072290968262407635462980511481981610957601518603357758449124428642511311233888340553730340120085562523454427810141043401931520654056250185921081515521521206549420136546444664737919291504316563856341352553974763642884911560314945958582245411445317535868389205450860661663808000288298118303400383455260185463351835465066095003517769714991320594324126650742541157713209394302138923255820277153387304799656780814876481661376430198777737647879281765262709830733372867297647322938013543413066285102550441186893386585022043580007572230805621878060056017826119449093913932839517511579863903818294256047544565259784249318684955634213953687751312258622936940027160570585783038291656877329182107144891491247675338586373494886231476737474249658956633128971151805833440882799978887498942869095650622947133962531663699369873493948611729312171322799759508083162184080643865822762897200531951011478483023040532627497044065336127949272470187055842683213629464076796083877158069876705348070033599385886744866270182162166125472324495182999977618649917333570745956030462320885443502746264916356062037484636932420156569609317141173376206210349358171112786008654695823292539781338124902148601501961347906912204860733432371974441681271305674559732566911996619457591412265691830556309472713194745241258969610342306083592706312144418039262311961748629176650517949773930008195350317001716030739834529266125935839704933091945565518836821490165959905548568907832773394184856471830172837996655444251745089940908487413245670266427653598135546222799773860775577248150815392754472379660919084327465442593441707009380512397926339788377524987360350459337720656134628085876257977516342444417945431408551960364942650592597785454907873889340016302467192454813245366382636374716017570673243752286211224565725393331649882941441112780005479624093328399479075019458940075602585309250937644232640179437360274033461866686738250646124862177818063848734205941905984055764378769948476472281955738959878312521055286534008006327104355086912412857271439819030633168071009722354883804247365128153880988580938037517085280740186208279960253607688969772442526079525599832465341093055994341851131794508165253971896717125748027438152205455588002991760066662888699068079850063322520604892662220980794032926578564945385268614467424309432454577239985080177695711785380100749220413015434108999761392363003046363618024868707046412442582963654774727063381059592270549728034542379333082936682197709030668617783679111241515612690805741968583118613356303806938264357711119989636692718749619354750200269525912187726056536668166224371735819713856261886229820155253945737061348601294738295443163367827015651974096514511825361275311400095187526484016633809047376427634218100233771125779972922119036445673214915798060379974589390497925860837201507516572596945529026058467593168094135217672952421910400595797310738598273130768162625724639111115376984108520727149151435980863632626331416673921005468299083096154404993757963861278357197331235980414841252634566443088238821135277412594285458223241188973473493192576697304949510715516017000342060898412846103602582893699572403004303617995156392407905744055587711772282754209641778927961685171618228109524492478132352088822812101724515629357182319311723962667368396212405063595360519780919658323040204367740147355424270097652838767351569275688349039937306355156167969834095719076534476404939523342190380863203184476416345308565611500633486787383053409597335371660164049838569193256357436703429079419669502196122287389210581963820403839554282982653877850803340265860923120293326688663667833986329476341992257990685279655050245475192508910609822577201042456957086687825928251130627363740653630455123517959429563829868829620865136501912731929231007009736421615971430180697861557438738387296694197760673388247695450060814873715128448181818844584012938775053350868679180219172240983282311427590652176201927232454965323360927878023631606462507258752172170452513942137063650958684628344527410978138256737110872004639575018731024076824531524744397540329377663696840117206782135111925523835989242958460120665508211596686605123176604132969854504896637015339919372865977961411078785560389915906371685449899553723816237046171045388960334735930971003964278573470959119382044245784425215334772196743375092743665280927404077968697076731139557635448364450147816157490715749966988367608385765848989037209857405608188001811284000229653965457587936898221047461867091629182243779435665010575639538684469783190036963249852391587678843804597342756952333743833931589458357905678653741788651516883683834755224216360806006150510875605702620072672601766823149099374968593796626306412282783388203389620671851005352124426772960814742803766202376287887362669554216977054859372906064013200159960213590764233388649757012549949342545910562482900853003989059091443700536512930481950707085816902990485024627406120454176705504397358131928207736685329019719667508154142936518766771474800382432238828523104990168330201462983744410207457773718070594983430034253678081649455117594980573961337664330802618761153468778724085701196024725840253248146113681917657818128683917954279047297311054944399974849206646633619877136164580102056707040417009953922683387640622183061515250105834565102908811465835560433170515811890642663790267395593505234754859130894716387059280379226956100109560526045249054594342873152723409160076445242236164404892926872389317556944433933105148913730499488767633553215357103157136108967148067455011801672802569566410651869344405698877736852094539241445739570374775223184626565657643994069011357523507157152435223402442511386025621140944009420917011371268962294642692504556128585276042345529252447907609185665888206229263691045966460727182765682415524016157268161963434503780910760288436156820694715584879611082517174985701605645335948530639495389062609872365097606868865433798615291641485322440592198893128264071439807821581499044234696936954847736558086232587646330271661844198246168657960931233668512959633328372590339881960728477271851707553173741017041635663829464987376646298048472093267370458835896298192186703341445035845063826562940184494113364985937385784801162750860923227289436805705216973156201943802507714948937886186418686752984436877730782200972049914402571601598897946907911562375405242496239915304955941323082297066947343275852231267695476846140750471736437785154461032341503934042474326910464890610208940173607196434815482255764694038273158639611459487965863350930543382421347175321888354997643371152896607175489579604324247438665803696230956779107397538835088726581682624974166035493529148461273213820087215844772760934679362669383760467550110396784230880172213252033420531776296321559679124459094219627967399655320825591290058257985053548647572987538685044192202385919512352276291178163522393589351926721045964630298379864567541158789234185252649108477925383261125629167359580562457968670565946379654578766582014011197475406503509020441234304338494370013282157761374676844206460428088431507531707464150423737994965935092664620694338242387688206434579521158340182815487047147332872635459073711373261906241661137504621764870697403959626471851362897106192364987926291791076393785078016147140337626358162817066681770808735659596088164522346464719622287760570071849248563199254359302848831471644583544096579778773763625266119130444402581680007662627234970809788162341368500998310345384974104590254373778265294640485598119496469470235452503442474113781755892896436942419265199410306843725093707757765786636088944851572034564780686441360183260135120554958185610302070310109762430603745535496042989592308364469586375663803525801301288789167327761608240033473043769047959432124118395840021928874768068471834966888691592919097217623755882115832636729101281924152749600978026510753528947991038513800954921540503818796698942025360270639665843793114848092982004695251848971181049287116463829561696718639577822797404010791888670762193244086105225191107229734893803200001682418160715388043007904634729630384728468019678135366002415545186133136144657867298454082635741899835742675800824111697677887343600702892000747260744995497833301474653413785879075973989269422266842080660410320421108142151601072391615789388085847272968983700566311681411617615350394149514097193131236536312528828279878332216001564757234380452263859282884663360749612031063247040902297755737730887786705892740934868948102695102945976954840492659120671257585964594824992032003965814708329015649289017979768212130686945638411057411097710036761736001114258949903291554507672744998804431099854692305025640680538009349745769626672230696040851937898432852021040816218594762111608816845184276940853644145263459073843098500664521452905681684970294031289580584107957349175328169958719506106719303270348010565564948889831606213711974393227834712470881290219942084257252497589203860134315948074828681506611668259731487654938741264331601584402944951089834742226415605063018910875322639638419337310164555925425010434273222724840574591197305165766040244608966220595212043685667400493569174024257907093490325328100790354264774257510458354501264625631071489061430951499796002077712391486903703205705802873205503004547307882866819787231452405029070219356303395681274914593496879061267866676066227171057248903305224043151285586518723365509193719653199048952466508170847101458063295867374583551213756652345956765823675717244802931460288119062398563070742858447199905545189815426641853419890939923137154530135635284772254979337993315955057836975739794358860726311570556627468774488430769362067330460051887533754420956075200819219232229728550986231982684020279844680675270503899835654204963092154032634313068986733457219001823199301731304759517574399469625441450600456625926940236119262407131644554759997681511176335114118682805770868974388993528778942645020062346295239162634694102068008203712930599274581035765753919282957631501032386684607945749451512046866622025903222102186795896803334004310631845403568147364166370681607428645787837519897564366265206557087357845073742952614407983025647001809402598032086743688711863026886589244048928201964473844111461770350210528268783937181721767130777825206568071457756303773827704252271121152821234411930422271510930116550386090693782999739985837768314067482559421431578148243765479207557332129377095887468642384954634724296618150577986533718775165951804717353321482815281026377492263257998408771042460940176101663103953209615439025369248522753281038389176959518937958011050871741550764485797596497830879530576343330630793969695715338417925071865381002644821581648007789514516307283403247325545661054464337512411783935880704663458927157842879904833865881922949836524458345501172301941282159494693378889569426556861088806726743315847306682321425546491956675314923217680378558164082230208237257727892933011502412055768773478450318199287114492826169796566679760554196304422275403845955749460856343955123352296004352139066333028935914432848659978714565693170372252190553461206143325616538523332262341020713464963042703449162636243696372583500055753660677375945346438099082659744506884471008838982006177511663882487652130432443299894586321784564211324355744488154614292512531312509288093618138735891744492825696801015646545114348544062883610006747264549724006520988680931448345720032099653564051012723016902054734486099924043467375109893060620532507325373673050582399053217580090400827293508030507143735067303017240534996823656438330629048195873912980803888321850583060073430118337308014188399947560314958368262231709148374037513054318756391080087585329958520259272468479791723370641499827886841904962636862619153582747503649639730319100678925543387145271115232518283561164759731356019509830316105618731259003486824221883245201154928982032106823448276720885918103306106294892971351462791502423770897487777120674708015474629740651291215788883482378601514937783412383393548268910511303767367995478791682577690579537836299143981219989840858037026521693339269040431491500750468717661439043341426404474968496943709876052435660696349782622679047685243031569823941768168682107972462610348035913325892438804949304851630995493096412908571685518288832742234178827161174770550976861035049502511346120733545320537331756053836910578330130946279325811854490273249347782484055365627135581994459743514444788808581926546021850965226887188295454307521542467450672712082698735472289602309199117278009553487085128511295374256935306765843363157445995133523358196753993498306523643466769522192471746082275861486912679275611651267849289323175565112083678462079563315476039219829438615093164687492082287303215317067722689208260870113317320255937059189556417369672620526549237681612384116393636447198091093953444599768222582611335473191961617435246443304053128394697757290665276924904299574378739997126775988558074311277550408429324911142725023995513354874176137288667588895378431449414650795314453380611584409914574110329065301136132098277058672148402399445566620870503668191450505548725765408220010332164157015514967621850020176957253137227240958462846538944658841610109909125462320742876467483318325274041764400252173121906518355798091076889407024505934886673525511042308472658078906516774730893761677478095803790955201694604540806739856344728991767653851175952875785673624475620666675482163575490310794050322546621765681962087221453257564224203276590927072188383930266467217818343081196714418012650953634276261385904020232575557151486031483517365223767639455811247808833957375996540768502285708703609105463901445799770330573238411007106160088626754547206919995346797865100245140470799708077517248730523292616301196850378405769598583471725403507170596997076547333683797992876674445605881464714216830018566601696690822767167244804171449715245134822526031944443287335232701189264008383013476016593653662321671800650516502717278065188741916771845678204776792883379717318266038825112603021269270217419423526737209795317341917211600503259166470666899802458463449573037769356989747207732386786416412086410369664106993860352788810256990669454783162979379572674450010074586962904631072134627909804342666466344596149907170336244427450585966547851695059411611754652059714461910647152886742434908729064648939437509881111572875442761106058251199322465567897096813434864787558837983522797189002920820671816393194668808720090006376667724506617483906946065889878555284650374397501560735655589386114315343356571252068333597806982606194373923165927449204907550337481478429282210708065046984867929859634003744579949162770387117137781188379661437749173350627421172820827107532865403196157878234745277216317895420317072183508790036084599692014061204194276077888713881017806204325967624927245462320354613800628247448481291725234038451253622127740512280303285337933046767852956590229914023896127284932326269893659743913139012755205559859076262067734246144459297619190482858422173640326433652030466743792520488890381696338744207834908205191908873885096066067619008362479686508550200724586963754383690550423652292529607916403842996345338358697908275788130876564193042341933947185448230114925063879447515397147221805844807592018775252659124189918889704852965924178917269701219147766176592131754369823017056459587806655069574627400663215189095562542568609878904285077730878960421973399418070607439300011092261279547916522432972221429102724547273723528828804395758070092782718102244503525482020813288515171755152909385549510537727363824065324442372580220165889225692078173092761631008354350352336055833225810624056201357982489669376065359598367019064850807396900625061765205949762880978842257440028627237322557438384158687003564478063154305541023582733762575742281169725858280417476770782406690755717815280007485631221922556450888565508102407985200172007707477815469135178473603592432548637376308256789248312341714736739065382699921531726537975662822956190619440038331485251508243246130196097983141510706850771999964483438100329406186911513461422398605685439751493267233369042848637871205185549507824184557626797717078558318200732112276993930409399482553666802305776358137285624750997175855091697280918597742514412537070119008370655501035594658561998891252110165161519577496354789146223025818722886095348121511618131071901053084059978485795082889507441675407240597133233918161959534883702713990590344119468672662170149687765793777415610458888113748061981512668835744674813669132714647697119824077941468094624280170418858279617719545826619505663501657299831344447690344239325984949623245652520163320722071581975817415911831280667120760067421718147503864672862670547663878726694245903490759975824693244509356027417232844049402272730535234162529778703307990228176696930365656087332691410772392738192423951368352029507308501610555770924287399044746868287383319362303491333773119175540722171751224424800947720565079525918901062699131030351653336262089722802646965812786290489819727381349317245053318484450570567251383925661595455483294672355323111595611149371086530139804139210377017375179033981191414942442850927316924259022522677091954140358754162729781425654711602364231444942598114281556232271890795638486693904235141250288942578859218870408410960032515442358412220109062713382605518575448254347712642756366989735407978500581724913010854036684420355603199678666674982902669105504327886206284246384310538094686391645352601629018810442194700010995539117726969296120383575793073786188404370209838013915144234723300612521369506808114554155217571047234438786574639229108834707086450893328445496771226643099220137656483828849021963590175124595183651931490337062844093806666972008240766267769890865515510382597975569340091066775172889977124328000239585075838072227248020679723157413515807087577078607187934291558986406911280147461118997923232170378243930478868948887727958043723153399984580420998266642537468832997729724029163396166638371643976359763021578406728307377655021973704108729418452961700996210616673151470646867267623590402726322609080984483632334121516585742581036031716731595634592629199065626607872150571824002878312584247180594864875617834853567915620850198509838044315122512361149581440349082237422846873402074214496279991146771910455216372945377883687039824267428059603933791139468321913402217588157909640135342103151581098456873875911784246228537761165166065735252132347715191251965999260933918997535059291345128966345130735091501746119966599909465696815854219399297215298490479263794911363208753956564763165648106114141678715204157214515334254168187978804397884435278143904802785123534333949427419733641474413929615388767389525987348133261777009388407748476456792859161891729432125027073027323798697873401567454285858126636754078291654544597807537585563520456203949522917019029916282678481846072474756274141631572902414693188239233736308222467622736560846140004872514471023881543602137368771378978760872585458058857776040907551898364779637805920554214147512804364815808295041825552447685933891493076902561292190028047612957350034897179161871316466225306315594360280683757668940032911379484825509855452729216963805050217761224585791561185318368020215634424279431963893381324291344072094796693462656320684840417856609776459663785868964242920304705561532057242487957570266328479098019026851115117011345835724359982360244905870416025491266016293647622440592314592637146420188244318893743961006618296616989511170091406054547990405535112698364511861405136174622175111125460623057633349191544132752603458519661845509095095194169462365136037192201022851125274528309805309525043840143960846383111310091538064307084472231207687744804370511465482925759948261022203770962415380777670461903079272018981652617070736533790621282509582437637012555834499215781775295509225141784141633443063497977048806722085521678219007142791228865688799449247374249905224564654280301896115071389034564097965011797586156353720234056184205493569936247112821070138582585845894763074386960323000472610568084474544691841044144780293064779475234886581846139889333798883010269598972916439367550752150956361102732486031055212046742075301587808704660638053193518651560058980312959021436492012699648397708466782672249797830797062652378587443237929160556460237802188729450845273312673965076831668609388231093004894994996484410981624153866617285257156988647168683212692392008032208351267261533991683701777567156497272903873080699520607321201309548494389307534882231317464488722225932767811652727914709130680048366867904861715152814592550876413735435781965690677487329854148751187658390748929164111526967125467116071418742250570272964406431375619818959286252400542335851719672692471732601085246591386395710232278669585944991118947495899979406479270836334710035395970403443282973646593576082435966193402742145877064805035361642413892974690802056910132373626212598398799318820476252685058918810713191897625423088521179336107081675211281366419483570019853703082382838091923353644806322388221212012897677684344362892670867072576010034883868788664201081174175341141032067838410219924043974880846180529671217186030981398061693845056546754027413414888342493935058458883219060358962532315263184977498971387701728973769842801782681309973989716917243248755882751424714828005253448475945032016482975688922411884577207075226338029512061242011839448869341963374230528560500538746033054460049988374901969526141598764837791354422859216604737451991190652935206004242819028832263439130135265402232952190342751052535005310512889157855563945923920994441948441671409860702353083920311862264818453043209847573006789186089377036410028673577571312131342729219570711326127836990507954910628898051699025951859770923148232581730188463431766492847836374867043806119965299351086795568861106842694176902830162085596932768697517900461522115055093578608707011626390539905833661497920385886855728427215133129675869809843979721043812409386039012534796276573884302815393391957842814654699869851998567004193438991573830467159752315836253234423248984263073515641254199945893184980020232401097472437368107547716518042515289791205790655122280868129009081430459385794022967855336378059057254340552046593081967029112741701506649061415538616563342835972045766689665721654122903234537759237583605158435500336495853465646694325228511663877337083821574024585991144667183882102110295384562515624919625451848341995386521823128934371200001583296704167855096167356783871559200947818419958621548177736033783445939140877886916695724278448492847228573789056521015105832052582736921346218587235407652999249616157787317116070284432363975535776442916333189461755126844055713778346937584353103886786317437520301348802056770345200738725462213441783800223730568367083824698606343101572262667551609051752038722151895127611147104131046608597622263022889005539945560601634642634811074013970814637750385045787463405662379083645625159158870387642141778471448362543349735475192173533283911710606760044735704200840282867206919010166311006066905202608305192976324743249289011571286744261200779746193832041206926237337509354255485989283531601553948781741712685776961338430038362077257441989003396183328679933417513147350843510423970537096005619541257438568836671208056777781249321338651054003178987774843230077888786183909283216610736839081393607279871552974859689966027885256181066763514169494833103895905445026815246913077680094392133415958399489808280646200198734286286046843835275541511899638175509714337377317612071709694867817757945156808890355864159754411636347794999514190901075275308103890331807940145874027479059602890055775885931351944502137649160308325790820131433200755520620600652523539911517797213890729134952255289227139425374433582368174810445244169321355279282415222690718474949454485227677405078492646606711649607034443475616372989019078816901696388156230931761717607499591440568818770890163161185659297826322536186608990150856363153234607628920344662390614452608468155833719628684803385899243812475540445813646324984004970305231285781101872456932955692827176980164207329822991759693976062282204271280214228735762401618147100361823741922712301071530384451212125023324047528264369575151406705346085710834167713308537872467913953142536751913659146487529467923403729460273532413515810358028048403628480230835241555873766199418880767769352000318274807965059060622089180881704736806726822818376762612202939237964154312983475972242001491882451015806105621151062304786875396142272955190520554358118536970176043366728573562460163464304336588807103547433735906230641467199616744251698534514296084408041639513460555141533251225341552768462750577490744256649779322683105913374657657201349713270760947407114948931095110203704808903156882869422449989721473214062101018009615630570693965040062461875285607251370209592181323718353296957240554051381893799879371275586925108279922102016160282247835873330675142655451612599075560079154665167520606497017908860577317267301239664254551420255082870247516579404647165623513975804695011541012517535955063066162224674287396930654515972101709372135525378661450058255090821239814054785415258337657605480751005966102499034726814041769993692596249947714172560495757905822407064753066173558361029719794204806310683060239805705414276002089907196920049881798812554981805152461639432823876971905264845515666670654241411393966412149359238299497861587607753824236026217096812223555240283101564822683755537972378539079457194839671347171848686505947168206878487808170719108256378789826510336625501753078603878704080229067692032340317143955171577037889189568278252354571389803106114611115578732565352335079938356188070893848765170150951517204351374508228265133606207538799501370471393584898551422660925705795673986982287125934321198332757067662027604935531158223295339795283722162674172390113731920451969449351827418492922611979080463321453287010106980771597950395588438476497367752798985558499264751331941403301160219843271463542761362050520844222617417864541238020787122886088884946837008004515282241601910189842722018330308257472104170838028673335957573486888652140796351694550186874221023722832868209675814678411506812514182020712697823005001790856527192318934198829132089647556881647292387627437983205083525070350756234420830202323578079623464662812363261249246551357435801655762449359371922144761208315260759358625021247100479221128224429151215427622381332495500195609110529464684665264255536536532585964789503929721204678592686619682517816772067154453502131462597614847171781370166839308674439230353470976461419058550150517317544133381493731365335393600556896361296721637731219034604748589879897969660650452580392822610685849559584867342842310368407852573021569427429684411048988819314179351168863634503603937077895396120744505890167092441789866121726540810496860589548788647811076667474791687256949653469812749269379517939973913451425108834942360695344260027719142421062815651926428200396947808405385976545851858520200522700278224286920307670977012342952671443091023453519253210714532662418556242517089150163881183890267267202456455420958139518779703543081550699101935226238212129014463421558995368195446031110830304938388217273347776252877943867728625595062028701673599321829357983898382199019301067619220795078723359211396980402999286149744466509298687575809348122759122553145831961032451019775961016484962498979184081188817720425941312656547532449158210793138412726049794870809429333596612288374230160037960992641618892742808158537278274743297036284459638181145714649293764322443905957281682632210304210200075563102260119829681975936445110516140526987329958721291781613640135495123370509420591428799500914607357408427080773628822626418104914648617783086215348491741581848023064745050220107225405005953432074140217043715732589798320690102093674220729638769403064781507113488004426188190147176080842307270671624872054630658074173495841966305253629236628954704262835201567933127084315562708544187455485276098970955309017811866018314752430101232978449694444172582262076936546769084517890426026564927813216452313824612266436206082879993900094910296634642234568706546697252159032923514745688732016426725404505738758178447631082813845960235652014386098688180616749949003719256944175124169746123412963146224767297343657231903405057806525798823018926287739730589051442999501616210375330482835624997404949300830269624398714246270644319104485151407327484258438369665294660992372500999296917379064162135145241907813521757073777369124337323268533739768982555127815265561791888864803873603571983146740144108466344099427674216293051302135407677158648113956729526154278358516487763885053027177500066590330661020861394691261140619692432101880798813167076094231082898973936444976805024194981419172205096969170004863827143262978462898568185811570073282355170120005682161383610676081685599899097885229733700944774865454122154160944245634067712797648231264670036778751079737874471400353440565843067437948830502930753801475756791316383714167975509743263106626806021047324448526190778547959957207988030772995347579085990775762401466155365159536951239268791105791884027368973930778389273945372027367565501375333205163173808439044780405147849791506104273687215009947518690123638420787091808291273939265844864537934785742294138241788209058764756887507900520137875499949850903881734231298919603864220309545239499699449917366226796525708149206034575271585130614063802739301102155461702675615129122537264708282886952439411466637384311635832025802519903042274038140099614844409738636420931418063298541861621633928005407420991298892794566017242841688138912954784953747755476736812626390591439615139618304265988081564443144409063823850277761810593257447418894501696304210479528982403132858891910344640758398083863141233986098490696647793079339868827990985919159252761848160600570343918243270150543183216685285120290382117784602925258524433974053623526470284539315382602083201896973214342792077179285765948738779810983532935175787823084160859710207720729651761920039099267530368930373549466467808812495814800356759292172440533210784596703310280887619272377957020605482626667849691771552906355373275420015172442211117400847960932344014862189722830572723651785759600838775684011720180135181507730757775447430535597493137164131329051960404022435905812639750377857785325774272251969494514836945368221779424340407329391512809841760568867844884503447421113998822526989716030807446273972258470303467254537766008369987645527492875481525947285310188340977934321267222756417916681205613476740983928321334158959194455115845157898645203772248782821219580560209862059150974099532089391573911976114923271210953418757659737425865437548588227666738228399720883633833794790262039570602157607984754325700345692116044489467335123724057708872767002888650736230146630931448494558981396535975863839512084228256076982668644101969461781103644363408835439748312559164269511554789949705839312391825838554002610936515567810154193728927549265457175096977248587958139965529547750064072284519124879270175429039243295429258862660017552918436714274299934403068436384431051185687957002653944020487519016946597926599690459847176687921151450747629125142668670640648611008762335000221655462809018035113813735615976226723394098842035690589810074923017725849711205636487032711149756443664186235455267845150105084183187721859221581217632917155374294009991591173214004273977840425392264605733758219302745671208729498327294632137380081366687096626489354822662102848258630041987941847387883947140027388341783974334361306089856456391030424313568095918004104111523703144332519464735031114420712002942465948750592311753837041508976121775157858745396071114986577862525120432439747345290320282858714786382308647602610325787193169893025125918219944167110093177718496413961159252428645637387799702904275051921920704425137875988841449917517639048006430580611165125704337748993753765612610903488032476568169093304530764692368632379842095471451022677614539790051815091973374312900845167505539027233300890265552248415403590321825183698078719886908958263082617426490660218944157896834008782911080039226517736404903518831147999368263521002036995795904161354668314113628433172740872438458789922561869924801964695988152709035747449957863077374066435260574379690118914935013603516788925741254980146893121951684997912984481017458295642396697783721233807636369353139389312022629107491211200888895456416266319931638710556905112115964825076624380951739399197839048237188257048102726590616805176144603519943267849369989617872905568795172847996007818307534466098529703339304309446795533719575633870988391287341253869661804133137454706381314490871503675832367003419458385427017792469059053744444249812290684012225980929551053340900972066853681998137959747837526006829993644316349780521439622328322712510452749262382216195139734460055023100048806716283891678102242663828352933976532306202274054338538160740140417177064069910197919853314595474186429551932171918113708798529326107453481563180275856469380023914919519735508463977330814665381880683765109139631575847193604732626065229910587803263681355538459814488519089285154143620470871960271773637758639831356006713918582869737437560597717662406929753085357561849741843321951736362581510867738628112869148917638698506300675046786211970558606713042652426996752587116686594449635383749435249195660799786640409903827572210586783005692946736020999976953035424332439509107041929444234285794477390730586751279345356335249644126771412804490315630723853447150997599139376927466249833084645864423261476853694268270608831477157717831556645426091672277661687476126919987656362374452910360222541998174812964450022153793295834372268893159069776485600602499492142158721287032661883137659988186792449448440641267492287613393875083723547955623617168232052800908820623247805206845837155592844461810157668373641118125457919566725510827066352508041747805345686786025101221834723667965049915643224068254777471957565417450595423560779732836278702878222995472920315800651024721924842240456340840985626653103209718136192192868238680603070480569144843879950424660417265846750225857823564382359188866846194019332671581618890485259050310376042258027915238051627860873801374642786281234560248639377560581076411601515548734606033640797966868665438024113933866403602286182164842208570255170027286413403413464224553834985397663102429993672959377042978119494167778582742910638742102824554516672621365125930301394293638572806163833904887692708602937659279193509674639255516721846945237101657089027350804230192364617620085420934827485657206197190061519036924564970223129099073243693601820494777162091877691386177757640143717811716809162192107699806000678198755833490681865144159378377866730998067408365233700540629302468735187369972350505920968112008725640567003010896661213432705620522506930799981499321218917060853399160206459367507097049695214199521975969860987083200039328554870814784862091333546938756907504655672419586547708966723930684156894155067521053648525129324603202622917138534658801792105920907858949858621114594350967871484423177225868887654515241814950185808010592695328544446767090700990464806366854180952536092257498862304209138922351914321743460966754865684921564682496186714288784364936570694311234316928547316067252913318439649734279641913076399143779299960195460281409710297301767599856406780981797368195011104090339590602846168463894199694670043600928882173911198575582697005239858681966874625829791202282720747916189694592588314345848315698791108417557504425409911910510308676847473278363807297842178881993586191774719089030856759953866372466411541712724561816929395642690658557502160501935792353412253990837024615132139618740739225934020616799354840884668311571107479701990597626302084083101976278758724782187290668778026372280555037705198704704213118719451817524456132757896369021819897832875887434962252696959422639335988671382042403798005217789120546487348848045758912457325335817062836033612338186609968652969812163179360845137500883426626914649578659874008786027401981733976343115886329303550716988535338797548724149483913022929119689196742506838050258299556972918548116645255052702429674972956508728905876623951085943031565304138915278621392925035791655072689639936368605429758650262435554142759099027901298137238476485623252749991207925653421373059140529816259520773652886629428708698178964737304355291897321041353169848857631398560838898694324068437422473336492020362034679608251394654027945091373478207007723532215941334656206447197145791324499345921060495669010077365764083267419745865363596237719340296671301733597204805703631832726430558919441984163605829823563140711831534056935644631123407604536888182268522586393511948455239734667701540287381715090444130055175331481789985223795978022050501011203783947631960172460523370089814071765981717209649232618253312238617052249280880794639015753889634731140137010947229038836428706393195260664848181225044707283636191630561686448751873507748853265302322643040419133760066853555772603555108664665589643562287417200414756583209381874598722315289585572864256698215124398897509586481708255650849473412217049791331904635660866918043147832455713663686448267005381813835641502342108045548625016339725506555907248670837176905236721127733519539161635861022951632595212987479434574290799831650350878918494421282066644538386420971894330017810687489411649738586580891603974226335193765403790230558334843176535983812590017074844032068724998039377456789937765937278222826431986916372689473628960167797650488004963213356351309611429770047402314349241788978005752326161382959522003083201958579121460980932374399330855184194510916366702662884627336526098303195331499351449470413701162475764701488237963662764325657505572225169016404483243375329381072140333133332665427276981305230404135659003078750551177881384742855119244076428223556509369639968860885940700151735047132656760434936070550017219637167824160688946770503450860875533194927074588607277095617159589534424704276458247686584534339027526435083361098388994372618511657490751990226425804409475888936219846666706478078078558422397336723522484350040299311033732422353578655603220701478566948579990373693407769509779017682629966785668532017627014589697959018347191598568900445192350470684881826322042298305165581584146438603683740497069539462393542899908843814234179947064672226010013482891134193827463589242261664207836537101039709296511560775836548209771772051623732063360040526345607274763119996192852274944543862072236429174466621665492129679812958786472245647981655560529564469549968106724374909992128294920742026648011333205941665616993221480903310410891937167051515241838149730309246373462915019924017336306905197902768366385120095153888237198553283838732945593745593512229466077000519939867157062987339172762309418694368461128272958192242389859255989233252148913119153295156751122602479886112646911618698993768926110724889325640078423249903954015247619513098767999265158221894295455283596415698774943539307965201589217815198248787338018493196418847279897543207752118157300192322894644888630697268275650114264901361734544796235322574361838621965708325888106068327359566067752514384568087115497757906389275880992898821820353162276463029828216322305423287479652911619529002774607668347807663883026097763218920528985929843867456369497416656649776318888239457532999249583571712585605095116453313224272824367125445992659650178254383157351601339290267304845462862485237319095721772852129492514268456841306699417143064872034302441795327134215004599958680742423840290564546103139369640318347767261077021690682541997559884918049424165919675355657090581347735418920061882281048309414637780252568561582962044550300441009952296126586704319101753048042287416161127969395672307888823835133829384452106231725724212879044049192159662712376292248621277331919196935647933707359844738765389789607772275045080894459116306776608511902308326563133843670434400536167847517147367372720956686060203140704134123053781910983637169465984874300914192352008788554643705857701575369353327155075179598848556878100004248289254474777698687740436863701515484576332616812106805435013354457741185931659179664439010477796696391156087907892053552778497467870907991873382338886171481063545048796829013995918666709783657198614787939880154330238461499699776882748041856706738998114623217939211303292866029044475290134550085784588688535511346702557942742647593931360831227700435639365404456322132215693455854595509046222750768690882833219921502740197648326840300805839059102445958136753514607962126921023093347841701277041992312346324948179710864389159588576890393187789527610247455412918488865248535773447441466616834529287877099149651896929662362197649085984876206180588698636810912299850680561483577861603709033693284393105859689308457914829339916940780406179004279145652176890091751934180195459784709979327681895581052498706470312064559524751413269086391379191633752681097920669772709231971285492684606834118837987488530422235678837370407079258562687821621881686068183204484416319432725352316156837891269457008078831327622470700030201517362029057931034707204258287095592590665075846519787687939920456234899809079607262814497770759071020901580700306381424416441841735536171828602207700384837960670119882214444501275576653567606506280077477926476997616252969201858982198883031506964540549235441570896116514118903322166957080146757686129868752160150697225756648492944209058425784510775481595575561796732307405398435074672087579415225009472178626859439009157942416589330405652005144281233612835964414195320727089579610218530550118521670395395364117025743746262494163837707140858140880409288432822895597219034917789386139687013094363230109282153270143342327740047840866846921154350188163697347753465561092393172979591498201055001610345014145100408997960457966563420479044138326038709177564825867292227276000006384435871504860383364821384491067338620308305928067268378834205578366695583539214609992168782841443651348264150930104808122191402216015187910939945320163691899163026861023029977830109579602240107648557697159113369482540221886456840241873220778496888505019053203354927841591063081637680292100875950161107479942040542293585900047226381516707058936357496845640429210371347715752776128068271125332484556648719716009362807241930179009144616687455087565757023334041907453654931604248819034766321223510046429134626710613787274104522928149162228282622577882325618774063676738500492208458830082291650279217298265570810442735082939871133540522835641069701645983344062153939664533653370176347388168179210062783413800263763614706787570403443453754797884015036851047509461274617122515833909067020984577730002958060716651706872323531814508312489629675843497430827739189909320489844172498365968761978276514796607020748199848307967973741691910711916821474123329956979590416884093950830081219167288604065102730652329516076524483378982913300538033276113886876921110590449817428469603295651387696859859106003395515674600320990839927668857133304968198361706231034358116505213512346366389846299933132297380172998624887394639420787457513221979129149612621084829699570834601731175984512819407453482270994430290253733799814949752168509310332024915101944331127027230161153645870116527958425166095038800157994564122982936023406544046065155434417230829272182601910219426111658593736692305204324283947808948619392581763488463400763225246814806765355128555896080916371747345634351710635844918589101819259487274438237036555540106480560323033603768542351139929087189419553756127694868864801775834652571320574579102679219902312317126879729986828626342109568766070756086899782122673516023631592406547344185030022802813047324513209610104122353173364651292816656454716708911076570574599322039221234717664103575157167049785967039384547987935946313910103819528041364301799899069435517221809051902209947341895422676176501020924379959321955153970286530308942733550833891669871712165086996029672012117336015284170246564251689338397876932937504259908175924151961340785071551087114476378368926546494417536746750209154408037996369742378102936350683204296475776911344124477597388686273119230104849929279252185485553811975860753333125381936482554786968392661514231749834844288497278982347434147463862511450485783186240671272053013617526172895989796051231628445097891381919489981821133715626287408954332171602122844333315241107842107429709089465690712023125325724052898718594012086450035196469843664339515594823609311223449108081763351515206493304029746762379740348935229603347578417519987123119737116560620862494140717294486545146253259375531518266090824174311286091753989145429446769995180886847225047409047779837423417420588477608909894059388016617013047489587645079364664447792843282307236255452978363525719180287197958846813338806258592379431626713997699770992449224996231787830159249783181660809211016857266074511225594106301456236498343450745841138221995601303478271858723117296643497485241996510197021674652342707022682309359228183273086381476611161738335979048117610829070303074950337919464409923305270004108009416858924807474868724217827741744385702155542736785499344859819030304300181970870107519346852949171458207658574768075102894190699761632319224358915820367229609703320181531161538221722194587451488889982407064711479835854214721564302519709055986946620745905514965590604876028192766070353369602192640755588727723275245737223048077356873131504579869684378404484665945213448686301089118770936058125193328715072073026335638517959876298474447710664293494953499060846020889749294686925955766724775489978142085158965922057196537508041097665145122020741741029772449492505902584350362912995403825600965121658385260091804659301162844075976321110824682816506071844360238891200390744685288168855728648622189280794805418316133595969918253936233578089077034247042884453728391538824229659021696500089522679639862649337367398566078016847496347910485992326133998611909163228516743747214545477374319139075328720592053652934203535387712148903787677267668352180432929254045984791989779762720427360089428427576398122202626913400961988929380256720585398528451200099232873620983584693131693049762047316886843429744970087670863805105615660884768560097835301846024286323255457604721121214444954112782480549793066394934793268415011303649695911458833698286683225979933406174089321109961182614643899688405042430211359213554566895229840179630924450105902428906797942691121262577617605891073140145368045206418936829783035288054768785673616023845518828706750898762606425362326324699113582133872732416873814713841756415950859828926121003338025730578227874306739640026775673723272661370958175679875173470243840530601659073540397856857545001218655583294229047053234986467545449824089971527686678785048738054908714730090272331961863391640146383408731865288426558557772819030268723990967846980347303293724676584564206789148908047501076727096938605490290328298022181964847809849215677889485427728788696783051691531617665396252200952863938952330346067356340067456686687476050096406042884590386868926285811665167404351359665330563786984719548335951957865647818957093005833854027265435550819376821738776347881120724191705610148909962075358400467387488947185054492817818424867058646175890238091453459948947317250133722347068732009832359015419621080844766238522812488710071687200376548460478534662887592417732686196531610028063457998936166997605728555819621961287253264691398216910570918479327941366474774185451885608852240228164335028707836734343536043915928998840246631219846422351271338950179646742748422463477601901677925574904573050225335121336061659785032832599690181118077710826929147729142127745578811741895914328064797486300816449018922292889065449403556078824161512498648234574547303273235296927044292371745067834695819865532095869694621795557185548180163659168801649984393142156643357311526930422249413753643953855901506723691412834620510431255900691107491134216505907694667643706492149358595571233413215468453765721003833366085978736127412238017691541122110062885866258887846346703991052796076256959825142187502369463120723821004414403525420477331191604983939439395941020702672183652518273660588483002568360662032025061709862392463967773264706889739785831279973458701694500116300210101657909346133108900674160139487955465841822094555229168160931418029042370523133008198865989114454563779611660946898551840846586650995790644374354090172041383717645424118963073904170922860116825521738752977650630463621070401817896488898672890103284635448484127918857070896983184331243264493200037490920562678552388592744212627132937448017027447412186548934623120311612515331702148869721099756706735566446819459469035004397716731308973324678466742929497893456919154189120325032205762511689528907440618342672291747765657080614181702124849707358309948306825601687581113299242967115033331164775531887049443020572218316846300156644596566268384660629074969076478152475614726364497529526985333704688799725883994354216460828597430113031739392738371441480670410424257551266567830908098155953792727221271670843899681356630396689922213932093713113024778394303296614636135174002603481597618340212769606049856258183955763301578967534601097980664209548877540664588054190369581970283405954072417416544944122813519901214946502460695056591587254786768524322769384675468246529563565156063398483230598468577720511881946918688155073068742880631133667424358890305874979882428143221060793157271710731241627089729669795747995778332811127900418234753870544490164283772715268816091412678027894914389651389968274537052754523147739261828979813396520131932058280492838116440173325626310061455989578646100208144073085671718261355450250173380287308152178063576715237997788163939852506730621589817694558666116919543676002543298627937769479346904447506180262230690299535137524109336621641579691952502112173120144041419360667925906076360879191217762979631731920215963169757462094173725393319254152985417057058139652520267089197779024237507076872159965649105894704280997000054685584812010061260310565267316580414416196895027704398814569463368134891417160136445622070057187712683056208375130042186714568664499324565763577330730295685910444021297109215425680733504503150822020087657888509459766515557678880664804899053961181517992786791756110039679203738914313667452953532909772454458916375560209963414352325337013967775538633379703958075260893652045248078950742562690600845784611876326976158736282116917367185489771419214237216458925374120929039594933693505328282244642722754371502268855181577693280230626645460045673842444791995239006072041993400712860359385736067951036219047724479147397860750372422605934298913923794554598878142231024309939919559971706113725669157335051350705997332530149190637191501384393342852423563682417008479143257985228183333808250531243279949995391652716570633044517790597263629180801313436043269820000562487322962065531399246346092006832219792155456637290152572495010289244513780073359080415882885024755830474103014601906990729169190810804629027264519273586784966213688882597851909970845369722510329670042021107700604298321874050315201490694061586198073367986258842627283262969432081969052472969523628380930692918885015144511337199349318898447592421668717908724899714699003606836019268318893548038317726669992655462214637737028819092665729127206686627849056658827011465316104306914927141504979976343160065073393803942660087135893689819825160322808033633740748943534345503988130434128199719269974454935175401585781124911886638528175425011363590503858082544329221526806648213376326262533143325968361466817116358306212570207344660710320298083879788814934158852098191033553045186626348652982489812616764830577628387115872934479236604088289762824628755827672417220472946069685853584509701898997786817746777880698083480271057930784056826336639160467662288704725125613171118560137700276918266740037164477829939515089516227814814999574230657149485845771447497417693980513719051385809177995987672015434185901844235001669946153693048135374153151848291579766755657568792855886688026346376121697747971593598228860266605195529932042455241044129217888779162576014060819452411127656655747743863674912362848302671478389469269555329626584660690480155266827008040239234188179800237906918470641767618217466548421888186136534404429486290068828394275810652146494020787902174382423034237741401765348627813232355298624004316959653695043674742349621545020870069150384129708472529535743392569147979621656962981351698432062369259498349562536375768380236689912088296579104739826292535966025619178248410548503201064796765786055102527604413690701515562371485594004806774537005864821679711024091309113067926202059974143257699497586488380017893865056313865164705416805581003336897372467357981552655278040632822054209075183881009432362911370186472721565870420719886371936381840695086269267574654558797708237843582100797142017518676451060598471201001980317069098590375822948597458311712269178856571741612112456891874188147758737562217151358298578365720588196977345754709921151082511467309274471919457196472851585430253174597621970620217932702760573017767570045318490482005015100308647825312238382089131861700762498184971810510435941683119920106841678013909080130925243377152398525030690100469931934345121289737167728420565924699517367005880600911429194148718138941517854262701725401686256501123718879510944156784331643958812636478083726705735997301128513783323304403442433474144300255195457225583866211195620885742772564330809582882919234260165063732357470649057054859797232091549785358893927893113724874654192554260757118355992850304276000036684077040263023404942329870944609849989472560973454971325816475074793504156726189563544630307883608741235574375047430133167904047488560667730591055156173581501681704862791999200273720191308310321564973323765831737592106568368092469137498039334857821186545270837777505217130551661200276350265506137215389228794193987889943504065819098091957282383011935448254840854308954051497854276922744204905882648937184600356632826054441881408202043359899145719001017839647640801093725351354256450686741445528359933699309410572429565381401147505320927647344614796422326591330002779554624814311126907530475975619412773141100689368622316829512478892647413651629683039773635852900654933071066376593632539202115347055090124868660880353876034535081469685141963790815570229339557698199409927974209590319871803761755558331180353717719358397097002538226603430162766942102781612155415831238756415093480040965143921672821537701238579287506766003939467624646668837083088543091516116142826203570147932504988886316827798371856444712408437813649915565151787829619961853047163433873386232053768817790439495213998899163307334699151557884358829267330525385486544079552801788050427591924393860257015583485419754974638151865619802516307582982106465040860453335260838523231496395060048035905684674036343056686714426646596919017067094226029981317930206039460710767721206677153840660570666676121444394314727530861695074104072245389223601850340888994644663997868086667730431628769445842554409274412552257201694775912065872081927432373775854134621188149300494540343446243496275717183726756343452184330660465351440225624497667961620667129312417928988757838943311010012958372794058990433084402130437876495552884250252622904660932913319105971496070306269877149893262741583137966381095967331636596659184614700624310418141589666737647086706532170961622433184412593858871285991765461754173630186627713117063210457472296765147544093134092210817310289111984645994210567278460028221929019575095541199701697172967853569695121915365474451807884110324668263814385044088077516476294390860594709184717833646328130545972580637291691961001921641399509376942970480684683024357274297859293062842164050754877059491254300749569015543506761045909363500282503107762085750719865861041604811199659211599967899553362692410631395045690125218437279532328638027876815775390130345043532808459310510859596396350758169186385793236962316819210973675373035576089545686563261615746123518031525505742434508361678305445409572587990733153594611114738644958480797456647824051235657994599308562722059756022114173083153205003688629308064086674052403951435160851335594036272693799132976637548993229530297717435626718923326575398296730201072058532863973784692176151449124877339207088654054603338867144049142166315229947566394639136231031720137510710077666218828704357097679342129899630537937864930324192939183152202082965476589225095657163564212852253026188559596930184255976195383368484749624313504844315399437498701104421088807379444372568942190647230561301532316351673207482119463303795398381497109608652473116503128581945869320549509645421451646892814118499081291735813270840350302330385373146219778965211913704155885063830671073361674072866116272817470946603997722016829436200019719465421813782373455215006133992640092159538085713588560402362784102998981063215113920061618994057870473525846047617021517025604481274560951359856552477637308762433969282322338717576098418887354847889600953111931994641441625252208784180782019903671171181215961108232547591261603235100639782808846258851807888996666571671559282622646206399395426860239176814934082221220839641778130979294448707770986502814049423201728651386309156656175101659837520875668682361606435820611475655902307352637888548644747876584211267172754990131330453789855022657039159224193323348510659823753713630156247334125511727675501933068666043221795208708586705715979148971326842416906668724672690641552961079811312706550073144677285811271383284880976781026241791821961453208048096808867973126515427872962438316853966940179500197556458535323696875120114800620854657480732002105417218477346966563347105187717966606689336371881252235861437881337437635394822541713440505782596315166027592662672332686461822776383092102201435846344425120764770028441599749742196817178704996202346648207466927216389130924009175415678585469385170129599162046101410367303235329111563511895934350431222108993436953303259556297705136580361055225783565396528975473093200542031465338044182234922019366910744133996005739721317692853583716800791735754244071628060316218608187025875124074609166864959009180203668993714765502420201530229570710557554828208114966040248465323009881041517450786497931030016464255739908207009543745025165713413819480761118153063746193909176831645903586578763333890546675872069190485312698126482098188603231202703456678105513384935587874404140381304304012080618170636901099449341153689906919895822983131681788378061995046774000917398786404734718384523967790329000267243568958735195883168339695350130073465205725846814020816683763488676527549536845302365183862596022445951030308210417465042573599013293042850666713367834216781925028335824342937440403369813828890594314998590148119896638794063119829797748229186198701933561288498450774842116647071651057945144297619499335743977960715975907260979052441835279506051901177374725591083221107458217609885129631683997631129194071926131535811507208232871669989548677906481739171540894643764784083764320067336073404337548650711933432065198076364404332132948047527278307270899230949489175079188016799893393027990312229545224838426149927685140977185506210711645827796379226359831939186705613198562059368762939301067662197885469052947549086846273020085008107369710187113523002937624969095642951989786172487703729350755072553573492634466047973770579078766534973738748338868707182066560379536913508024915907920757941457658515087131719524105253515396829226104203707422020133209344416556985521622983064405398540957549468087858154887446884611474688618839514896174057107748852429675243793623056286447486753563576723724050885310652665538376785527467470266343454472911188217725133926971669792557634062904162663247393640942486300693919875680423099107390416921343742464122047134130455404283021801978789865253300024968784627469067712606295280978104739451186671367438551089759906226923254791820557240016582804157717577614775966118592808958595332183789208416599494953881108838024170308085384421833162363524625431460397884009973774019429582944834562277122548493568798328582244491364550294023295216993435444514093530651146102121815066033706973848586500126488778631151473379890345414394721988505208872429429380869904739219950404251190648480196024317574247335116797379019113393129483550101338459282127968438396853641541241082268569151152722557021861678614862478114811229419382769366263042086590112036861130011423084691813765759490709903127266594588745825545514252543338303438119811811211701225621801185271733625190968204681425620709567452702911022371176962072372857374700837792548826447776491692653494223723833840396683537516174230145028711497582034053970024528523741625188768555942449519647196842597967773796933720785114519974468026075934245231261003030123375609518750630280527977632300975009659113335904620832374518186147488642141866594214554699710799288286383731059385248594043813125333563080674299607810773570548330280810149965046397799621462478023196671288554728240683280807099349606779705316488671755082834430945079250351904857197160774297543512497754393036736717427588708993619538396020992669278736302288824877498602423609280182501727227192512316022316828224967497857291664726376317204664127940792215234822607360725213095643863597247150603146738538014728154854471291619649337586266093606705843983434295207999848475324421426673126180607788876461093329601341655316916254257925694644252178990810035946626651680061990249036769742409022508268740421113243281478599256566003894494427827397313251988652595590122057978333412177424747207532346553946635425520925197839224672490559392515374404185433272630837223261957190169785027047713471862940031464221294910831705857562752455116870720367099793914756350460590038143769920155252396115243231530093306392713968488389580086447958784728311323248015678679027186732206716922681957273904435413945675526605521984234256842202853393063612512184542704634277287355411219630793828980475702615660279973905919356164461392697067967725595945953208228197807991106930085474273785969703997966607366916332913139412163993798167588274535608310112940900040313206066797013831786477437880850614692272962692913679369136831202631315243535745462575581512469320530208949837526441160388118760533399940650108710691900148978773571106411887168319140688748401040204207170112089002633662779581988412204035064343573643603370127798615196260366567914267974775748734089008145648075819627871732536095302084407540378601297203599187933121916303437672071837572182527452006677846259307083733995152544615477652907380737928477678785970271334528710585297334774584997723709942745056117251542799249114610596927083923727102556794114932667925612557704150672968019717930980429900490398966818633351505996677087760335046730620797172141491291330528422882251404178526233987258386637682013501613935147036566533754890134493615559163415855828691324565010498413116438951593562190433905604371807788657115406257647667453580123957884259014399308362928673007341921502111115589314393424495358217198230110225709487206374558925362865394197529288362174304248739771149587870451165711084401736114849462651175431687194066916016242353549698859457726198985253523585193518735200562505110536279082511193366443738042521057090124774033033527932162933546107430458797024268249845361153088080127685278984140637688802319956413345676473846538676870280479516061480500960952109027969120384873597527443310344974745847189366036727629545213144742650098883265308977525878510733726537623936180692402922724846655980669916206704944181057009119758577522506636963884946165632929121370452863363059804631316650112179770269191147875597621496019948947046001858521890894500194874645553585219408343769105084584047378541980091836433447991460561730839240363387303914069468250384377171703020221537218700457548003044113717220723952272137082262292752759249823322793117141240826665383964659801519972801857148906596997516591062721902647454274978483926145341412721093836769411476628281192284750233839904808819102505185633242613715415124610998202771225871019374079002453102120876684825034107679357388936640013703829027655567807528839738523345393558277887073200526900680412880060811140064938510924992933632036720400501435776326516749398924187698424236459577336629632681007983295972062079474044310276047461260268715239781814213387105346809144717902488226288611122108478899753701205647732886868900587858264310360087672021123425270817003522856514194462528139484497649753710884729411556047671532243308192805914585568740261542528372857549861733883891042976139397442739291228510389234127274371903485213645203970019352164839009872857240232199835729621349690151304881221792249012902313538161943652057545033872641809781308781672415806777446368239822201106680414456004311352236422900917020257488253156008847464085510753027344698766997051280275279706593198800405991440693125825382437807671116291156133684813977999275847706153874162915921127992676730401378637166925990488525859939312166677889385165547051437054946102486052924888440161054660498899688717113784839855190430810843961797451618381370707944505462506852366244562867095774788106527824699389397262358280386484660874276786779578177659810074252581889925558041137843473269314335136786811109789191479400044645756822886275596629321429600189492039354674809348732366434376447564688083161967664837402785512246301022886425604642394021630765690376378088303717386900104847787427860501795531291409538099839835831383714445315756100507095096709511606587551247928567751877611744439381631338274883524142705784798351430694873028519132383010487926747102956779178599618624618157276887730476577069379922091393840127762589113570499514979214187560852193012125619338891125421540648626123940050618050392429279762100797330747002631330837406158947886739820038000017187965818299737311212859406826264660211827072374776524031219940589621230467335426355287543721606276510927296438303152074393265237890121754606309682401793779277339091559935959844003121262771028672336659328299824143660132489002848999583497753152670284811606071724964549243780726893730761248468349719949254090900411917014536470582739138680030800018223152295245020942974092454754972960125647692171257459195107912397248228309116722273986551754015195846235935231965104969154336217004795618884876601623317288737477476012747638885649309769629807191699402282136182979967694870308521424079178982616414882863237858623039571589150997843525598729099149413761605657212612606635856506926346070889747959109961831574513392158374837902186530579045995068989324805843657593711897489700723066248266163808149068708999357289073603659761790090826388172646175587827899810455374165425537231796051857806751436678797762727271399664848617964367406389624911440157002213254544968347102378304394918396356893641641211322972404534708270162713896791456831134961109297506423817599900274020371590047039537095431064350146230881238870460009134161327488792249517991120410212265307030207084722547033132791043074166378194855912091507703825336563559588315847743785258548196546657065196363026546972627839253592858884616619346838570713766399715169571712310195861495554976639955083854811572978085473319699463083356641485800306167856215331729589702418016772923305333069239335126276491885319791231000356549130422658437420238799798908760240189155935057286978163502000477336345311428097294232632168944004994384437614629893190763418145439613751067855369675064815434134080658246185278637481946120653260411019325765445627543859345031672755204952657637692649206001623311738431009168426599421179977448652510042710224588351937748062300265774793104217393241293679405969528216464621963023173646730852480781391656505845161866325919445825059529974052352928121915852329735141634729809508510171153046501883457140887221961472024282523582875154585926470528589333708278684395823907449956868619722279004216729153163429537644414075226958114544036844866348061350587170466933375567257403420337061320414750309686377554900009123242913982174691404601604949582111224883145747794544054485469095725156126523137974053209902936169732442668456786531946257605293581435344250209020596569819255417540569279632021870800377358534810918293884718378557734711822748517073716351999952811418256441474848384909562527212528085293023221635486132971953202953088965036749027756856032447977177427604595772307362528662168770368983837577056725531732054010774920488797029914156695315624371904593890413123036122879619338917641022707409144873696365058891660236794042579130066960225809715512397214389183288701506120251034453862268892795290768834642444848270729103083571251120367953278737329357003513106616089490742112158152456338856625823661862644605803360304909401667129137769751101485005280022335041486676557713236204344302598211556031729304390803954225511481741792837952447412370856151332720885789888463714550854574371122362093179541501217169828034421984322816811649801034501302331837489980326780836521528992616560799238960515199393688027545427185364757889854937444558250496703948791805843346851798734250706161374759700346806120775637923795109717299020568920816304683195174024154523468638071368362630559988757770915378199914061305747457774951468639407171385595284018943702092953237110777921151905207183874700096889702969541733110457884303903888171319347129926731508546043867988417417072157968791796277020463652907451561111715167123341621571166876915599555944844633591884028419720393688519530842099296593172738768272661370922914168138856368535250125730759995387748534639030462875100133849894831857024490564832085523868843888077710240624327066032814466458285052089133870075827840354314696734322507886446556239283385739409517335470600114841513228372405637211870303506231046102877191226424452207754874221725203175451151801330140498188371087331956560775307268024250942547664635214495907223345554723938287155967767877646484888665339799831609773890296779450643022131613599887447147783884513616809870201539836475894222768917065755301577784541297700883405758447246530949695372853730845417843372756389049506766036448332179987347826091044935594889053629800004784597563085210598094783500703534712723565964442445812108110958890040572534473817842861636861210586964111991236912180344832236500377729951912857067650704362665608903316051013370426958335971077087137214646770742224801239730858946756917045760512008661258290872905689089522683288067289287954067154275385562234268061862925071526102196259444452522270070944132553709108288244528296776397450918777987381387277412920472700907031283588056058228858390332256762580317643069836875676689286701671692564333426952966013291588335341811959650285231919596199046298944975615644833389843240740284927840886762753126150894872062498928461103712580211473047394494618187052669371361373118208245164165318962755078653394260191567945459359269585578557258702109490659534536242410206101291192589008120198674197876281288267620250100266639580487395879766815029255902071370849419777499263488572089255136232986362734329233402673121328398585900016139303302140479844662560492598231739141060977081931628508208517823990389103936479716738394613350407305989789349359933361542927085206075551022850110892005677684937539726329016912744986088417779116416108402451216743116576320892584471151117522488648015575521999882858127032415287358307255045252785537525494484672462958354570610090601062912774372004741386382689330980329973821370040103007426009423634488032559392197278109320081161402459482748984199013185696448566130474812007982875233957787739288892039888328679644451995216892270460198838314720303194811730419172005183190537878787061039040948383039846479269773226802010215171027124579077204741735238897581597916943610488065410033439996047544856431462089990137896261416117997342112041658427661623044225267854358643306807623410695867627131914936567546332336517102214690211611386576168299420071128237147437590366759448480883538705917343561985172660378446018387301490102395212745993875723226988675977888141734386530574233033228223677887032799235878112186961313819762338620080337238464325650854033944459789298829977735367781768000987197421580666629640707262692561478935970100873166234441340290155454938963525351449323469774421036161236144401830445466601277888099848165495243743575033817376124098714665330095960225847020609243373760471436806933162897695980208099435252752542665856798038795469594024038523476794341691010088801148047371512991854657444442125905860925295885784040566476192422582751293603589414149593357669674979382752426096534847522111532295171192783215573640498002510296526999882677840590263524805544970092805554739912265777676707970754145567097063137499268194685068561333155361753503076234009576657104374709572144981849687344408368123809756862992215538887340594853906486787741029190399956675839673289779079838509623497211878827155337980935349745641064154500389060801795822146362955686824587365680443410233568699244361330872359428209850670189896814917922535583289239807589348812873814766518772011952884949141978946213090057681761700643801156984581323399015702490802963221288080123756902454044373621198483588499414972817476570562246404641497831800360385673981883674425437808676412274531076991464353167012746941823921975707179723672672879661862139083849341672198704105644129178140861190690590885719197082768630035177926664582104574021711208517576310197575894509821204092211960846058764497746247275651340583938101341370480296069480841165482195988229979077053111569086252626289713979126290572385496004060284472370769563036779489640554073967671114271049325438432787609183563603599684296216148192429351694879913952634206761272061615767455452822796025388304172645103498402662435199129239805177470460751935904956562587660698515821704065122650275074995436633554663473102226102872107852852231910473125532515330409346299698693870178235041516981455212008163789841315759226565769618091504153667334480398744020547232562438434250391274717396209771366867213352843697229788483746881179158949603182350589173521169675287040239852463829703393703289748292920302627388001743045437360632601139637081630804045657560325458220713506877349178929119155386648242195629379764702439595132067388812190990312208712443458238913938661035088604724363753139666971468180755265231741072744834922790744988977404595871922624690415501276371189813058117344627209087596327577598884132035799797391409312431277801952687972505745319888964663551660043995833835117786379953661358854754761941906401347337307304079459807994905150297264551066368947102653001835085488636404045696904870011579957916570039171741304274020492120555877599592844102778847517852251090700078593100864618995058851269482132200241208927738978257319467483556961266511109276712271295965602156283879128207447862075897047441550702082845607134314076316773418333342633171711726121292415249808442775190365708708645004905420118084880601340227690957912939998651731292291449562026457044693475685234890605616172321488635519203835336696207408412451235077663314313319206421226216605113398942042493211101563800835659362723278426808539767207228138168110380491291432510729101680049698522865937837843120810166466253518240135510581142664764972852450479582999348515004017438185201878640539489600955040207513229068762707594373856077614254112763570576135211762460968596664375311036862514565471833575374683386539835358739120270294749536498341812884062262428676386404260327026304881187268165009126699470588979871093859872185981702391175275531786673107390885635295972118589487723064259167896174126081917132101532747431684244906245576328883053430661505700879922048972420636668122590874545014324820957980277841021584637594804304921727063011418348981283933553495207437528579787844885151969557496015352414387704552074118822588023712834761533437396649347218117101335343894985594779461588946278457887337597447785808705445342306096393469916777612047910526343979171845008484688848855187984047575822575796903304315130263867955187230785357919868061948258070238532295685728853728916626141881459597259446680451261527292744879584345700684755081501261466845749404744036021193968322521569624540111180249521051413447078201993578177563853224266449150368408605758053490030734945026038805436938367983121137834557946138871189692363766859305674148903911706866399522892921641259828521494848438050621482963777201921098650539910898766887622007157994527430412583981177126565072888446712844601004009047692278760733365503664197224698918225955002439056706276114302050871006750958028502330113758208175318583366823497906660560610081451348569497801641788415964011885181814045433576138741946266080161695823265842816760967717157485679705607468826047942008881899260734029238383082149643724476708976134267758178291571934207514444536264521050472757553794694568379021147436741716019822438144518304014251218036694674905527001921324594844385807013359713811843423990910865102213725351565394238392998176083391865400666839011572161173293158569885716612717310346954572453801966288292042006125465057356267982749029659052323065547385779765126330039866283721803617407347230897186191689085468755945966160626043029666508413235324256629176528615595061536756097949891039244937266114807942897382026656037640310449456911993749112194951611952956954778234900956469969858389815977595769853760028149694960024100530522635788242962518466496994427950182785101436817177643304617677305758746033336659340303461698540277375602630302555590168460182402455124944337373417246432576361542666446984846592255493811657460229416368835825221548819756341521775617940650612247664511311540343131307783378297094318165024338744019137613751003579725322104332972831535873782681156089095739087694350684957729638885439378038498327104576317429751016181178389819072041170834282904643718890205004032272747931658966637879965067168880797293140883754272953843157835016939161497476789303142769117444149427209250999468259792831109687189563920793219340511088964632201936761118959834535776374071774532125627565516251725669742880672254127577090906506083127614979661698679354355326873923110559957096304199699802705625191100942132062386555718810679878349762815060037658270891677123395877198665905435635935328611951954367444602442000121875342479874598483692723777785188602038178046533348035206884419607662337965418946696870153938767601283640287441401186959449733367881271154579569113370577163518885707658063430446095749972018666667383453851347659257004650981310758597186030409738023553673895347073253305938124597600772663940767840308247829975270680615287774074595966984187406858332318751577488365564739111082945002818034908549665657861757945763418181180803092995648808111946931485688699022142181884079303191366005118787281774585842408121457703192934162862149049492784207249924996262875155653391339853856320268022361617119565220476097200455885348113175811333528537481934226167596767837253804397960769261511639859418963338342385680278288703060125145899226193095793602185385979239549755009939339436453417928574758423816929442705926398968011887849404478157513645512156971756519316979618264034027693838683897045812118100992034711231067859552829113780777990867575564934885092436395868699002632247863290085318749782066616881368739907053422751976229311094128702924604850998015452179574983428249688466066671287892028554099160137459518578870986078981226044095560352364506401851041046989804601624665887692837512474824574219524327478035257907216481597544451618898882845279268642853346903418913601376345720588641788717551207617454829816150825328576960483464313467437982872941434169588735804821023177525972759384994292764427553701322386829627471888381002659572226964867315115374583489250751688240321949350986036640624345308990031167077287919731277804811815012752613834524701375016029934762982066406251915989823756872272512803567158528129953847738268337994630159002577419539874257896228632855298797802743211652872699777480102513192116032475119030011344115593962224548008590035116964520422353469155413499185960810876795857818625718502556793519422008634241582239036905849031229192136286614097953096957160032420076988090531185528547305845918538431519534970635971194394293646608110162310149274037106586228147216448275960222153519426866752952754794951079039605635694842167176727513430167334596969103075050930843586526638947983899061261813032731281602092907805866836525974859378403912485769510019165362323257113582696615650554225345606767933292149580104779443461491698534222642780284179420756460146723209255543643938981512310742500754122938822802364388793372445187775384413285179952187973513084347224290850782607907992737708107289085187516371296306389793291833161028412631829255338258376631965361448457008784942143287976899430205224392452772744212040642232832642177559857155363510375963724934815261214743341210115097427209980425186355341608754480712385019300099912017620539229926630729978393527246542758467131184043601107341924359358587287324425943704997935356256597549734763542658609489005182520060250419641620795669486642725664822542790333205778025672980749105053336484178109554506334065341471146159625935514155835682194543079135732403283081268397968331458404083222415560265262866431912848547853679584604473297536998272789350708408447949050828774658046457247010319903854344154586974299178626418157079651679369153044814245143368484508170449305440648343061126822020624750932621075842919248710481082724361708857270448930639297374339595477872584038879456758866885326844586293406934546186470414254741715293646534066752305992831191018839799922333197552293137084010648758050705417073759318606474693199844825888166746709241177706514394000334231471937215612093590256186948552096244790170818029240450358874993819029994213246915894257044310694808971933901253842657269004849758438640308436729035902636036976788510772842435852595659691515317784348857857212132958954783062686876270567131637700051665470539356155630004265599240301615797496235085834379409775434742981498152608016670905173786149703824238102720810827207442483854657298594461714519646720241035660792443372598315082251818990753081319161370066713481083487931534803668001653634870320535926400188723506583502284407231677369018913085159603307695833041371994365449063610179231058373617331073808096732546447687504144961873172944610007093572708798689586913154416127264657175944621893673416940360996424592231525954979625998352565691631723301651101336909844958425386072280745877113710937042035530653040778963554319699761721949374857656686312199495358273808838673596022183041727873698803779686478451276637088630931867406047159418474385779360012993675387522156449322817104799998936392939671632771771401303643623974697871082324196018276385422002525461800174165895445336831293712981088318898855873902693490586275334096921037816398245842071807521116369420922474042218343012798441449899126233184336211555281765163328596452377947156267121931145469340383327586663692812883006195797800369240184569444482418955673494916190710942204483684582060160455834042313796322879134765573805801335253019890868703844071492197401333469073153575146698626160529157698091695037141521948444589305607174923713770920301562486236910544557462508918668566232753536220850839671183532351014735448558301253306240166414832870777455895413799122729925127116057000923197417211756869566761623015842945536030318097325064940895477075499661115720994488918599389384562007462918946782215331908030493704799651111970076342150238623583709626857429054739826849422445204618813944638933904170090254388083139974564030496996484028367857415122139509539458215484302362751413799927719670044786173390241435734119236569035706333805591041659404924977444735081536123265868636739942085253229557038818750688523745031105807782538346799598513482507964607067578620665605370523356553165705057635833329793823972714434593343055781176767454633004764129241388519179499584311568770250692779254433397098599303869396791299772628166810243189156078506243011955198666230928345605244145885654844415264410987983793146174743107607668686706741311729019372828468369018164432935739996357312453457696566593349785143492222781017986449933469271568673962983083831494506517807257997673445040620884953416846476675771276585486158411574675762129728360096095216124392045560846464276552621146267182564648425564836010477461889509519276219242659622996494733954807809894352230618193983410543835078507799670415226097631486009570323264579625306185785364113698572422745655417538809823279894190348656755635706719594261938191459212578612063780670312148145236049175398215830589709550529209643511421308273232343678871313580466421836532790283692564309847067531906706610897872745003113298691613142809710551493361237657865730654308299265195030915596966405400854472867661956028904995415513366827765803632270437284954708156559236461698856380203601185952486894206149023855252811761181191417086598136103527327059337603871373833049492374004925427332910715480935724811096368697016173377310953269373147406571344224978594924876121289920811443420010725541760344618891626935433664664037976826888281826162237456696886130984715101737884629617067884102011508144260639910372976273323059862214149659669991302756990236904378494866489824494305958004011875663001021975318978022483219028732374984579795914813510045811395060851221001920808766780718217167374347913288445391560140572659190036841779200578888008057023543186649321917206218625393806131571216104673177557068372186971332750662409374631356615979741346470428800477616442971441888392224873814656756530364613146092232901770260410250410062067180585264992831815698738094071256555067739212896437150781297843378741918777086142582626294828136720177431617551100526571627602046896276922243184055461221850181283445676085280376232541913332221897007478131074135049290811788714321081292431911143750532342398589553556785213139998372435069907279358069075309199281594602062430081576652509959060619733286601968203424754676144805279162309463660392191220075532051733729948632853571118521898373477337230974318064383291696185039963006873492735781139012661853233360383819066925618174179064101373800616048641938966339338886810243832421914245990780373926915113186243389800117988429059205462603227788580746413671411738665495764452380497096338310335056487296660504922152149848291577680375257124639258621247306269615138868766037024951391778018039152542165238796971453866363678408318694309553170994243524645562675427692476718758259572807722034613599037394483396878784609382855138674924766616746244715408661540199705182672629715631572515533944427632534229082803495172594317460334733503276774807589513630220701285703388996925499111818507410236206859181865605868581954951024801333180158983289806749271293554073008019771962971227069358975289808905468355737614416482451570677304332713679242576964834591003149101683737124612223078118503180285017711623463519806305560727551420011521761259855463908170121627583078078411955835809398344094481692508422181725518219469778644027709558226873007285414491879856050343636658904040775643194412755830697571710119659899305240968107389660735115497867725496866098669443293156955390785426742927965227268510197089903143991748017784577318298239332251530988176409641776734099514574175238203759136483921737861565691007238353351795823687840854209232747589791105783450571279203695123977667628581416519580039720172713811751283137511981796627401446064991797829457131967055663042094946224314105059772386958226401262905180086858613224450142311934448472440959918962299719790044536232511162836680960207792845531114815287445277866009806465255777915690792133408832062536522197182070506851987764683385133125087457754417981889747940464977743415034359349605809890784704727552645866311385830426963830693546758473064440096217305344593622587449233833916204207048955243154389973066906197930530300938248368018848084905714915765830405926903255340227294238919292440265644681628063229875334696336026105743913797005557918109657804418701160010650565576208551261324647698590705085613209553416403410466417721138537980661253759891597767987046853265611392204605473925320771395632755505446497591912449047483123931791217539850659818610484466524364072493973638107631147993413796399466831986696008371645793216545532030393859840739914777213837343281115837985941713191029947764261535366242019502115296870601394167725637156858164269881612536865177498796654891400658669577606795611429712858267595225422715854352543904969040441239328981800773094679460563749589826258391914287794844170013389878667856223955772660403109531151530676638080167407176468025818675670394170393616350624184449255306138848687900459545979957986531225377537218167380964773861400512854276683608411374273276392549186967561871195598052148242246151646402040678982414490418916459586372313881431658241630594236111044417005766135557154002250573598283488018760765303336612858652574455628094842772380315345655812501327465914826139129531376050979165248871236447300990017939585456384610015398197362268327272701036528729250349916372792885318599426193058800603196153163396862017332373040899205507760276668726770110491534166380291230512269625315922070033751231927534697956810972263402623430589911599624765708105227892738206253150370101798836732586148805089682037045642060514827488678172460013814756703652016905413020470322567247923093900564397368590074268525287514203524847322357003056990192523930781533095801832181416067872770186146989235738336273261478934896700840850470676633028654277999844060664552204254075039846556753560952887762564748655398538059747139778291706981884231607269546127729132525926207872493888800912643734552102015816321387862541605918216342051434412967440436175580002752186651241171293880343576791656444192002798380198939893797715881655674706369738542067521283761289699854021949959919167544210789650993011632588688449781114007065240034692040510420685106764416005998937739190467155810491768258923547507191900437171474740711209854796877945136988907029006671744643333074179429605421290569130878320529378708074372202353749440198024302445721649345159065192145312977359076689060780587951169500145393028714115500171480591042226271582336151505493904938257876421500290116850134122487697390105685119779815273871498764216713035018059753894468096650314169561592409603190428663256025604429985139554572812652495804782584116691900934954547805775647211040560221723946523545286509174037429069844108335492725183596276754342439725540928800509620058481414509846280551043820087105458539994151504404052300097687561694403755541428378257146201836419651653643380614019100815495048447110324823685462228804307755814588990612541745493788118526980208377180758311061435984352063799502092728854351373907352933235494729961315550511326598313996279956998779330004680907229730635116940300250905998897774164198191654447733872617722102137724952919041580528099589409781117449308223265675553623680360378015380021972892691287469423819640326080309931902045785141132181190150635264072533341348306925458753017122656353426133460693177940394248868920108280085376754900851347912771013361862762202308455551889140902829032168749747549461274895124818222291040919789922097272911309091413670133033185300784663807522323348239407870513723294488619283766313230096931986063600798609457705780603170533423414991359037321190622451971478878512862516525835322898205647763203882565469732018954455928350997346239129500536368634546705870384098748893446047726282275484673345047620084296859785484337178236466062765402118187347121003287084677203070135186849629335556576958656532991375720308386810127951110131000808826511491884524503317298629834622766294981134396892896692601466599504453055538198082771203661597377516240221029797899412018736327695548690642054387346848091505811034118623649714753689055394215605764372819035933529568494153779643673899686957953225420034888856967634479386802340491930938574326326911435505315999814952898028973180689703343502156630546385588371829361045472072845891381966150990552109977516954264642734661316398855012986201317161661835621728360927340680394870990881814932119057288010730788607115478251533978489281826844714728945752476809812882596907362939694302355254484781243354843724741366773779380120669543487046671117132404307710703178540488423071895083686570001980299816452206686763972704426360305355572901986227675774754587495198243168913056280289221684322635618259136008282203794190168858638420640126852620070673149883593511637458227011876165669210401562005014879951864855413969444565264955122642482786546816576869895368048515501867216927092047245478563116743272004008259229876042898270869729138563649561995318276812029136826612771734242222068213932676177455434889655367887385430707016764416379279636959888900637511170254325871903386679717163392399297880808492648962269946097686190393459609540255721174398610377777823789196210887997380623292087586621115812602410062872900330938437836077169208569879295646221749567962713812728571268359725029399739593717954781674490598892610316405873762217196313440180330886569385321666518146142562860584887187874516521246140376518270789620116263229544784316234874616376747090181260457458783126131855346998427319666211481651146983932123296923015171215952099512187885288620303673179794134990446540583757476549819465072265258871743707228162464199844754988073828416920894308700573596113646292492632878739602317350856350657188397872386151117791086032237486343030047149639325295654458107268861183726540540764359122939829427742976284658778007552904980646039560257805629374023307212375031713357944945682825617986477771695103416055739607265208458439822946391569271296175136181332219666346356905409321348814616874527964999272453731740515665189764576536525339443978462290439317163093148057366465434957282283622502071451657559355822008143376934971283786653472606464339995905931695319276521117357360683799037814523561308010492506008663359930422373664031953588579175648779041183771623828684973176078963438588893986058782843636513395063847915786149672817249567297893644623069064668150505493231953150268974455533568854048946627325688835897158728113092991023237036324319289037798690173358241352150929897574948983237491994774350697296054186449839508977972524918563767339371664756074249894648193663958939735789806055540341151774718295589768494130628223403188308103731290839417865122130951484486148599718916528337040984670830685303048800695164026115250480559123879024407941321767185889533141786992459573697259222091326220964569899681314477047459040866139145462845186699925430147627389805747571831600396432544640831165111983339513838383967265160382291906892819780222612935104404596845373353108665445527689064721458021988117092344438585107734492526066838230195495370951929575970522117983193383449882243992629896369097547589190452146410662403855632392416323572784142524942772599384096144868655773488773321698120907632258215705782904906706333009169786120838652081912705803287717841996678659887055994132608961401298294492392314325126565876563892887270668328900910623395214354642990978750430066283725308412147701825319736392616263991159036247501355904973835623650921195514617149910016467547638394178458912561250502179811499734705595773797060735700139493891721680580826756395992648649515242528196287876477331544371571186873250457441059217911678730038479959169623086665957030250943336815056181277210998209276360083703944202342491571769012653145015263606915297463742612003100182467443572672549596382263253416873884540232038590453764722634608878705731612995291532253548647903984958153298540901564555926682868430495393637193647605226225986212312702121415162871530497049215371027152600408669261342834135650707661459552899638300584672760848051529561580974449502498195779680351654742694609971953227218595579229379456566336010370212320546380169328190386129313274670608594964709572361537860522937485226544347077108839007853784510275102407343668178427820789147761588385594527467860564778118314500512179490231565698066123319146972288163976210904603056401419772905137968468894416553238520692180827241755874895411451307603230612774097433287325642125143301764084406203152580793047559140515269433845841509932073774124009869081562384253606913980730743587939107966019916164047217539914314410553018284255569045939419776285855257823703119507044654643480696801374887923579536401966470057234493142547472535461255048147882947707266597515395849689416607833035801142876512395679603793297069894788614558237451540977272365520029276642600375410818307093552248458857871324884209634180984927043003092959253432914731945628642136851199342833140354775818823969139900473923441907891001715649789784976137580666428718605485277277881904361226703636618404551082305445862744715550409640345375641191430074456287271128198179919269020366093512245576400763663184878695618964494559073935960953742233767225370601011572728189774118966881489002205113553804592771331750290381245448030916797699149236878043316863787571852870395611086660739910636894722809816443531460030059138069008295464888946957158235362433454702764074198917409667218107017614631408543188338253325575043507894587399874521979640001523724209684504560027227227614388883728584569560892967442802551679001021182838309017434212177803298279537987339243136547018661681025608430008250910372474729537759803282597189943470299262369659890703163309217365407819915405558175181079796527337195247335060989003073379361790545132375169349930076537292283589289418326521424280473017763102020945131293469366915558535748738197211689209154083351552409976406322376527878124404062842072968350917428138972402608691236802810626298150582930823919197922492413371200850476440485341539115592222042136061045637313682797756445437070900498933579525347179301584146647892558983739290680650107885694325157171432943085520669983780605932841010279121379467119204141977965660103743235822713078541024367731481550497257271593268655168838392880947075587558895404034572424586638977095773409282039649248365706437102197573012396476187861077406563665733521721333716055714049102330984794238631491876488418107238268234545424062955197801820433833680829037854755531197504251257819948310924585618715578298037250673093993224133965974063793509643142326552591495068743442326586227328128044511194505240122133624329645588240444924945678160544903194731942716727822942036082771473542349295026030856316278980683075000834576662398868883464991837928802138319890671787824394405858851131593430000536673057648341329704589695139341210490138896564067980468459670094787544090660894505552004868088023887514305309439683489993010601529256123654144251896686596028724775267786893368153610415710074535119874356485110376990165112770066089295988470717384260582502518395518902319495570330600153054542573025201363501207989672649382263027250594476024464132009174414671662747733602121696470086832723906004326084234358842778770956000412698791688814519806884320968351107660470031443664157083552792249582664823940508552696004867664308571145474582311293464745884729888588285027577640508947196135415401387941042481626099481627747765430604730057535338947555849122710144405408601804639085995299147274949210540889200637855214206262494072019008551898547575760574041081322435595389459008726551160529503344213538726144614819823819226866465843760138866486139590865465784588057958214788128373499399828918733186259396051225551434898112612534784436227552716780226589393905910695940971868616781934806943897806558974616318482153237815774091023758786164333241563658783630556156699449185153568079432963469705081914488851793229299586419124429231401411036194691734271499927535777220199372075658201177860246386838422679790676946288022442624860132847996900414854529241237747455949105950235501050018870642258776474847480027895549679552334410793357537542599956824356730014981913785625602296841977459114153571126687689634611763686021323307974033142588940181867590987565246389681429079064647336212999048643080508355102071960324451957601283738996194691805372370534406833208732118400564883278981812064216879705057284388481757506366982487561118510741537477677625505260706313712585169827466613057126542047051611998407121858753713873990328162192897005446585879069225435668981465830470345512134763887737556897027553971679755903449263908459982660608203673002181301586379837131706361358846360526133170322963702412177069531507657990957723124400107036660949729450323411580903718899061388676925101532138085390394459736190300745238848650650888380433097155721022172147859754713656872462123349523587428723922080799357485141176791291182234639483924944838391883898570344374955233001203260279298794064592808073274892586827164494214812383805521398378190428792143067542866968324030778144461152791497859545036473779431686768427833854513362310438250226048794479506360260203663735655229282576925989681688990167383938241717421709520016785032418320842925220876871461320537888797175543328911638610487571940291327769527670151513908183337966421981915798478645954943218041902811173804577300505697338889148809634385258156553038713103533816855534309003695161298163231575457357243605571394251059484925593589325494634539520127418460431002585260556341763037755985596449355118430930004897447204756723928434769623837680809035247443593202347337407933151914366131043022975715337777761339062142446934274417576735461617941564707875854542796821475658817117790477785667016890426560724830910157348629656316606377680084609235548520000496262612779889234614687450011590328167171192844683937002920681398449038966436827326091861107100222974400144326000165367089714243570653506882144634122708067376395703255255662612189065341746871809633597507236216287885845290921762906437902040957685422844524556369704721903940342364906647179858885748268554554773607920580602993539406932871024189687972829907637665106996932966916054199959215612739710775852511456009969975782150075320060451842618482739895126440095857186119041268163851175431675267524775995266306867995262531668381208145681091778016577047831991654474821601730266749718451195534903986501037162137541450862941357496376468382663459121327612581916261967189487832540020217526940899189619423864314830561923507221256856352365064780015693788474236105900924118475482280332176793837344590256232510480622973247820142320548547112860303527532961223382945042509098379547838252268670512801669285325520197491369900741247766481760772956467859254628691518799632222553662384331692623458610904175604185250314721603870655074091670983849245893134692704906437610600099865478974436215512936984950107688177332145484749441294243843598623238576103642315144866909760172527696605902910933444951258742733193182759227834286635069619011532660110802859308693936182477289917820852498211601751947126615618705059841786460134826248744839991550072614619937978729723980144355247022712221221074740373802110151599487247470658170649965230367006668861455767291034222871680360697779923053249634793119505327445849857130687613413883317949801252895449746841497904557115472139775039286995331280620956836006389719537215923788323236654808213108939746269697448440909629715062830966864592452381637945265573902109967583653417019730004586080008403942220533513627309491165172871476922816524025675575995276012326690493577130899182095885640415510522390522463388742444462343773252264257774913435167080387577536697839670042646268561896114883097907136746645695928269586810175943297516923133596646952944084630474805733714139715901603144592848163059989417225432895174087630295953005757211360069000500110576748276796854380355280932284273569601517953753560615416420507769908629310061303492874403126897387360595688938721200304175896003733167305438386901664680098554613958892266232893358950913786439674510093992279295812108316774714824958591456804227512526909978524443289267492757559947170036868209218430319712210931274823933106060490589062301930903706403948300511305173496865086481905406023555065601784347361010401709879169447755110847547816418285297545023371624185081100062159104294666870771845295512129672447649354881427413767813328659241290935070716750157244722721589366056694437248737468834604119897280510398548473122913907913796652731515076804668945394266219416789596334921381869507106145171034311595449110557635003104893795399053134038338812232972550718167860343407208995257469072138976032384717621657364498609841521615797284300136102428234154850498520585072208819605090172057035556537407928295708548509617103665259922456134329720814398731179217066902086021397708391814151778760487855292130153492200983192399543727117628296784549595472237781021675064623221702829215492649100565569948817475430316485698113607369129657793692247143226862817428685123113474003891412160964706039793201491112019385121911674912647691445742727661909898109836961206540659406154647902686879797043354519222247239958011618546384263938626242017622099756757294185382755128893988996557051069666379405815052226339086823366116190928557620823465474496514415055352934743759486027551970026196213167763367357175079391621372130874094853432406494685573338735319134940152739066210806530448270932554972783838544015377380236915391007825046314071649795574993694755037618601489696767632695506473980584881938865158069702176056199311771910775497979395482946707983844220274446681916239058330171951181944938758705400066038440943098375787678429431109922144291669906956244960832741435728355023620949905481544975061669438685958939146832759938564408572761968601226306114924267817114865989769930579657432897504622441841704683151309222422512711804528556731929455323810594108100919756326273230662466591998924556231743580296243878543388172631210479445977733544421608164118017641924269163288400676766881882785458106471673298946695561092265446051540872873951865144705407546859773980975878054462993070703274231176400335842550360241518368582250331068377352370126711171166592265814778574994933697169316602269247367166742156108957764238578877664909752179481863063071303931112838161567410324599285677573204900785075265517919561706322740116655003200255477139639361425854429967355138377383678417318284217478469161018521500336090910213172593913678591988880189384849196923318937378394697995599637742662701433529432653129510243897624400585469352189433846849060500396912664031467716326965123011354642236257337214911227977865080180767945503303262464895003406645309449772289863580369326190374473951419664160198161830597664903127810482898559800502005878838827169365531778393364546805045904143406450931128241344979031489177228786172652786472416205543664336366430591703596019737627053224677398957943947541356598492214798550621702541916394500912142651180339958846154273784004373070487612007167393389065349150914058668270283716660116622687168371570939106930305018868615008178773824751713499304973216061518548497447054738547500496596766015739212528430686198871426560610148685593166947401631300385303917125597343820236894841575632040382813106790485202014808873320391749543750441574414698450202243724991678551395483146550949566703321475513754264023748822028848013159851503478019310266994094384167561204807596333240917306791511034105527736652725715067476082200253436015003292472814141786896150305228890088501044964461980636200596918234396914276756176080582669305790363432427577271335580453617426588808516683358019487548463374762592477507418862733634328057629742669770686035170041140563621565769289842429304763388156054087089405039004340269733695777526704107852964170270912128926254320377047096947854034042496914280813144594203150301535604898935676559078317297600082790695445326880920336953267574449127809901738228327205381117275872541703519956700742243681629139478492222580774031596755584660097445782590942516323239283685327774606727317249232215013901427898530466726721046567571470465237174605276653847156798527415751069163940015043140185233004002947477132288348359669029012372452330749752614232002182243536496401604172493742169241285016206147258005573573044046303819391162056339607860453668705715336198806415381406814472319637518608896523164061757631580091507163142518433476909816788178334497073415100519939793795592497862549114697963830247442883086635183890152322794951152538136686948717210563896853968242215481193233468343021064990310882975227739487760015673582509574386837861148387715280262397417418296240966684988029310205121561893311619332471547374135528425232736644165632099727588501083935424802019431494715748404069022343543089048322491365170093697561236905502394847103763999506103465693490063811273372769984689600733098846969156288338418095508250991251302455843589197073741975512144089328794453337977319809814423986869446092329724407958360125124787963319916726107698399482112657091984412381337213407213167939408706135749844491460566635950203965067820897368478736069075162119015553738731442418075697600017170134528787833342589972359116136146029992149340211135296781873746897698243367118409508367230222170671988037564811420715442026096404693389308435660205601603169900049630600816489557183564141313511731008220139305777162846702417942807600037258625041619983159710841554051364539567819476244364755177852362133191647792704982419667755160099753032006951756259508378836388403627906240868318268327778106760100834997656063222776693546844961801132628133618848162514585109191514329785269519199805189641569578448810298501979967921073953163475455320271930024971050432970871414927197107667527144225760768774995863149599629713429117376263211080694287617466965574778089002227709639214773291100777177029517319230877168860171421718444076368384181733234807582303216810684582849714172286315564005958415691636086130875412935355305450292726474126347648821945600209316532047334103270500000381466755457071274017170506364072595779805297322168573480049538066844047709918513787777772830921049292742720645657137367536805573921297926176399306167932313099418183719277839572495740310186862488026762478905613527042664075133453193032624800322152768982421188458796724371891417150431765753750933137876062829084017168283423245493389693712668750612343880649533192945622511924267601530689558515037489420361856700044467925770197115770361585274855784052251257085900356305874826251434470286873702363098146453558803430302776846127772783354994925194840472426351036204858219063217666628492983060448694502637436611146072183773298316754166350987072691189363468031633459695750983993131487229273638814016069675422750980029186200311043362279015343108553562044718745289669580085212810421269976986924008267973668448889402815474339827707268792775203173868322928157767502819171647385759552020084481668234546199924237476719559966725309886297625609674875452705305378871837058671565493371934818208345544451978687180287783929836368434383326335660193314656832958965701672330879875138279647781406372040070058743039524916712351431828739076474896723306136342787939963449504615774711002398287299660230373834738536799555305948029412057693672916588110947682026577708282502485106579287700966797120654658307938772620575134850685239553278373295198176470623517744605317343513254231636961846091762741363060950865976927181061107401862139603338940596116705859045890893545999624554985200389174630381417687721097219473831118149455775089909402929231358307070449800125137894933726323894267262881191136081486272966401577557712057910838725229857972597456770026790158781071149269245429717520762307137909592241692447114902186035019060397851342405908515141206118101814572918736965117130125024815059153275124414050231017647348410585987451518920630477887799167340847041023996458854306298487805091527736997106976840634907136296245868582905619078024761219634164501799032306976990117657690977584665265081392101955530365274432147585192599882851425395076748711523181595095268673506430463505159127896182535590572843959747628206411993880811024212476681355239083410031184529882884080253069440099988834097064894515177251232240358240791975305010015990150679307474152550887115215053933797037624288282805679793690436753916229756397316189301709929654551415278768312481222002352280057513461181175386632309010715224712481018046323900869418865394073759898067474382736366480899277359559672666258197263042003053326515517127126706294171960761280038787463425619281959224008695916880701815723433094941743181720682555018354181815265858924103082172291516496287448623075860344656150012531582594299124558137661901418079776653862216867908065128338479407865747445024807205147237308825556280941339921239081935101585615950628579718752995714059556062519176552606671720355448730783156920456540767007898658582748067981540911932563678712843699821962039352267753225646613312413172842561901587258560056685760492773739196455985623845328556628706729154865958671472935814545432616777108947846854824445884196161374649592653613259913477151489208588272109388283468648654449024081015823693516150753613150063687116922101462218389305752905920236689741485876665492472057161100249717061929217926436513824404071778082063630980292241524364642785672986170172859043087645300625527819803721108253813881062092965752198540059609547495650564542239881530754584493482008685169309473374893903343928619671978552938201812678080195550872026651320805111884241057504293434379736434818026817470623316901454410014238433255947962755131692327674746956268357262173726005854138679048641120229285491630856415896391531371600307899867444259553556594229535523350760259309353592860829608240890569598994036002013721696228184107983386110451717109511790145342561992236493884863754410679408593513518556350992784260113502968668588980139030779302795439190072603666447856627814938393929399791232916806061852265988215003001910347882635570344496379624161731844170037724506423712549497412820490292459353777226209204411648187542134260370117453188523505780431590614885608985601632508723690452171497742592876984878917838081969603388090104766938166790464538062309927549855145859736044929501457495705798070444790830058392537319119727337268218160768955778229189480502738663979899780264918943169200539237175253788570037311620903337360346995560031305254696907752967965944495533954765510502348809283140882886516836198012215222731919347376016152957942439627755591641573991010505498140211830760280975138513772132111366678520868133113684428329333430310579283025955669699521374001705928198806964649393629072765699475090805412177774762086507262938194612498627826555112735500907051749193548978920108361370665848062234163025298460561583398083214945271326493817663890857184451719711169019720380781765210368593132434754861204305819061071010655936726163076043858313942892168348230420220935632332100885859595690821323058508642418523434295641116803157352284184269791768837028793741159283919808863756620630611903055760762653501892092361764939045251541597398765205538045604557750306835439849952518635240849131629454590662414030225252037074892913038757370330112171447812216732834579608302079772363258453484644673138404682720854087705908614156360194184013965034599260518984366349013529570658674086891951247386021779170005331720447610951739136979892614183844385296432311616798363665491027278514421664805993931805024412098246230385385830484366493893210451663257544152624562629199243522125995397552676166304031175211845053616605313934967469169509188648958159938792541216821491218183184880563952870224753594811063102129449050097661643541569616589954112412958585730993493943011795177702381608099637510042426342679306316711084220555391467636357949799314588489479788095787847631527537416065435223728365645305767668126261623201920618448413638653882635787479636692264420716626498203717397638314784912017437467348293570205020643060250648999011259455537317861234121661762961348909599048867461935012955692881184796860437560012102415330888797976781332082497194717961739870786675622857544566408162180452046908377817318736052841796078385007899817092272690849988089223664588903486677672734394500973572008482781440319539689839094136834027114621689307509195693178806451311024269501687553861186543007430691962927801286082891533280525846434371034663764136830269424519481482224544376752258400221095951564831194818180510256892427077050002476994367060595990384915919490605413759949445207061318559392846182000245743362736409689501473605518478347495443518280173277881132765445462613766231750789920730890451770489850350617362133687938302472920109937771368134877740202953420864098692583903588897494664279347875913881479708239002500809451050383900094846725865847588237240881955703179029683648712259974342281902294820144013703488100458264249128025930031216547522414108191754505717000217557179957156854079438899015653035050864937039064502303974680117187140506844955801216182997100876674351316299856015448821138070519640822802391482462859011815324830780564855899810606611768898707242507799600369396534131852983553440921795645204550231549827773496044255842964882744416455827357327800137707720870385781963697743128080282942968396729144226561400762725001049681747848198132422264469268033320156317039051400986388163863152723091303431944675319091036425261537846652516453647730268084644018198727844601746052198378587355779415970477748648297670698272402313843132418690502733397834693026213032348514750951559832757350277414216700479933380488805721583011293579475697580447632750883779698085407539747250458402995374307698627005528667647819773736050342898605337041737246936985288482327819916396153027365554170906754667242631235676814780170222812678522864269701313151448588700190526536275383516961133724443419741868993860561956543891093683795691702835006312991140696634399130029642123431037832907628754361501733793902122615275625104002293735513168858519090487716667820564348726857310673181514670318756231683368602483588430897191603253517064112985696073824388456490977238174039288788628495811104241836884636584260452143745644570683118778960993743392725302159489539837261383290801662169109710947911267601363471617746173851807547399574891741354146175271529613993985162149527694111467513657827150611785338640091279161925043759154929626158294469561148106697725980377909557797745242159368050269021335006107558488036241259371961445858967207748559285538969329152456268021111782095092821939716544151161877892623140021193372606055663322748484550612657265022944776070872390960149756526415057196411600029828754337243584266604498484528500229974277850880980529359136876476379549077220865630939767708243557522125846565309462022073338370106091863791022874180854937426307984415133911429471602214707389425919813225801519736844424693513488101509419741742586888238645581071010637256842493943171837879463743143215278056360960769394805475152325605005146257101335410020696845128139954086766955944752924287425969004337948430315267023888275091527485761426741266826715350248481086110840380088760699896607388291660281907887917095589551141256566289011969987207934801420488778432779801209474901932423435967141259666603618562558816372960452369489557641806457741639064175000023973891753751923909973712527361605330099997576155376019121316768893767668814026063468610839935670627632772300530530636136056702259159247491562350414727310652051392212753706179976335155620271941862235822714281114695006792839547209541293760955672936541896302557748170583954016994094351984003644270890630895026126899178845907921450692127118172578356653592280508977200272768981560272619368108708889066084303886670518002597480570055505519397926430790323739412545375165193297493809302601323246602025872681716304629153161056544458285292930696617435899568439387963828154740057040841837442611931118878102300839675239459202280169369848507591174922350086369957121115867106362883751809863696151511425393334007412501015059163073137749216822866063042874013030191044365808836130655465916164676227244759429772433314914923977026836396385204573706071761056931592928807038258150141153657457771062671828123828262004814270721626352878961102839720484319312143715150784788368068760059081900707889191769551854536943327945091305283476220209312459677082853826144422277673605607605009193283196757536288796166784827817273751658508186737322565633593934636471136563427119676809177510781999119982740326984586743427255637407630404397402214671673710893844254270687179854295399611421703199682341475196485903602100670699305832708719492354962184168324316189747487201738028736262733406179273187341148738501409263578651664375298071949190052215690123198325636671229367062802957437755471819848965053503817570494267931178177872533752659979528815811524784310401921196992256576414561735075326266046973175452545102085335084452675962181038584270639032002582010031031423386005854567802575183694732405751858693651075436730601576135216860781511154642533130518093694672178803972509691487822416388402294454528464960937897480190846873871087621798304996580851474042172202808743881107817013625017498163833560039648543345270396446208965678536034359324777353675790289146423561118419238150723301252244366656067574594690585597643685717963270898696908133300800316642739344990261654734171607847006426221551459165672543797895740835413425881900180966949999130101004666722798968091093899176306406467967813996330979979327086728671439460857766651733276243256365875765995614895049608499896296630852239328436497193193584846870865557761199546330600077083049553719720782004632330618651006732600679774194985664106472285668366093113147653221062045156239765139139759579011023528523429186145527512743269875252929447600119871228382230899470634737110938111210420310195138725414366970297143969497809797783428920067483611192442005064170480932837866327320928543793924821871195166927855992334216534291546674649023470838784316441336130139836113110093232131315489333958510206245877492269695861687687305556397483659298139645560123231689618460452837326387998812884131428945835277515453032130039459202205508094522644075683114438341436128542828055105116666072074284457312943098038489545749736464720227560715960226174499152181324825751132837228310128296612434556805314101147445643671370272803923299951627533126237165817795554190055698030025042954235542579701826300884236813141531185823172619957937269083396835237264646958224721926440200090908660580018096341672319829827137211864783856629448467464235901805942931965764702004857755377916247992403474008950831352346325245458111289952666617620589852228643658282634882020221215125770026931381466551858139749865921890323864113879173524267343708805992088857465780586672161400615289262245683910255335174237988880446268011919760110948308573889324751527021138282094119011911898298532244125986943182946679140625041390537745128011639417422802339305042911329394953019816557340363106124510945110139122162362486278627677008075270579636638612063713639360808739014634428943469602182105651426292617325641879902608564760463762485057888629535899713464424471869191322132062623166555989424198459841967110383668497466484562928813065565223019493333012961180118594347030848613328698416646241807448730596302751662345433401897932699567548503291757127650435086553814166175393636914339255713846757487871755239580158775336730862128008237212218296465071248928682690994179814880111084815740517386277981110730645308094494327105754667684334866961675088791066433345291051982669017968641301267850654347362006511321281514386517702064588183236632892879769277093621778004644467505777260032692323062076993196915082009770369808686455299281776487355043701033120976562298850329834483718214612943447641561606500407653422426067516568883479448406298858702533762825399126681255336235029283204612476224580482053268258983997313057724533992032534572941246858927065054541859100796091784199529931820492827698822621499382163684568146911655453622783573955450267990846288298075665240193283687954865157129409190944993562611096458561828190479266325872294313337654635658437200382964536955173296540794333818074060556433586211504977601857419749549974300754069273822879609928988349540044185670097976949434107806117543590605468597618177949437256199824507569021122024756223860499802168905906908343337004568530513610858615768709893522542489028984614225394254321800111676770228661679896510861650184253039817640139299836194103748223693285316189605370978037878523273653522601433741856654390242419779621726334473701191531340363107618707166973886192568920799135948230000572039621520101088155717080320122962465816621661402616552579986855249240339534632975117175189459806472994451866499742522437774098365131039343867249065161932295664243195969569576224502897631779189982248205937003543160194147336096051527074642256876664666400280853187824185588154860160578915261760225879717395973397575572247747293564157291247989339885079571432731273376802112767958637454482539915032545648468572838244766488108690083095601163899191452205428136087163408006785440584861520211310670308296126236821740249424646151598824625730721078169364386986013127836629760351953373632483351122697603331262637306926783739364359286058787000853211868335568951649082871582886029003406598250626433974077878067054055870691333741457448052599132653966839168235963429907786125330756274447378675721312522821812711272095122942116589783379724680412089808771407312257733996333709978658694663124970270760722916714268188841032249470422802853478126571759989365657698382603562051754651206407388023589481961279748903900175224795321076810175981940238688769761011455192443670694076074094739482316963611902092127445074928841393467462953383516180899093033878739226559142103300702102051133213154179797809897457455140504339997177249949405421763055167382576230489318699292262184882655283791080418615679302896485656239347819991704421812924138655407385541037189335636059968345779486438810513619558252387207142423565897808072541110757005183750743865735378347203528972262751109741269281407926550389915963277246016328333660129353778766920082859333122637971808787500002694206711045184586688998529728936193943124710866843119179850032462695634424603931730449576954236510295719229730114512735176774809630247651229095891641664070376731132027108303930116087670206668942588209224506429243449394531749556504634219653747868971694403442077540178468790236248715358705774201432491085486526757454485618849006020211807698567845779515919250862513062334333800634663902326510834307686060070435245560677451148140737069997249125648062073574845632032956942564286641231624681753620588928984083161683261505733909194511131900597908739004492811764242729331539632671468500103393566472645931920903934140743584808315502852247483143822230724236576777887263365020274456161956870861389227114757324506227374359624932710978254720061650249345551251153400184765944929454235505638032106916343153654261626653285358977662227722321641090589377905537339380401286336123370736150006483272170474517898413003325920750877998051476071905752249443907038309969719221561091715316313868667935815617811665225742624452527532271547174009541701048900927231570773690128431284383863829805109289098568147290070634144068340660684770911727105484464128797689442631917088754206902995298581918476921544354178334902189506712977883995664954313080597529700662822101569166589832266290426511372875738157156856823463194967052093592622827052234928410735984717756246296315667878711020226868480330537581135149519713974725503139763443366723716285112773141029740942905219702875895611362579903605351755895477242838921437618982045964877521854113444599406148892112465976483132852151793823897756516895749578660024028061123225996288724258401574312728031068777060873296952630835138237654265454858349991301808692434315973971968218693047639279665941232799266339702468217962793788144845617344296354215057137526842894609873005813515351146307225937952386014870006098407894053656146701043634670043847779439098711508632260557216910249422812544979018467647491800111058251426197478771237744943534558312937169118668480508814240073949435992998957913650981115623619286188283637348232881395895305542627672147428607773034346531362371587726656800641084401230694623949892489264589597112025983162522084407737518759995466389639664651883915678740529664206487821895656624493533125253644093194723756771013249216675626371578778902615274737808737434525067590810552318906443409240349030981598476332916796409558239705942235681743833404039016266474327327870816658542976776702025362233785481452178735535704566884183870450859640263337500315737190678314364374217927266084992282247877413877564599718199342481882956649860425626788349002118648212197177486344813433701628132108494788005467937829029461694515447437642542448707584415912737821648766101322145301964290721072808680869929885209782549059640764175070015177801924631299656517242862588497367186598558920576811306342699291549954279514535937694165883331338772480899714957203620256158013145917406915121005655126068386662666836614730519435029903967380325584390544004806119822454442065720174598818327368413853183541772521528886508962652920172378351997951826243375882675874670554302378104214699036384141895615182480975303914159572501855651710560298792777533278352616219342531875162554643254449485837402430537230111295764127037629335219586846033981779643731990821559893715592519336522406474293139124723677844383561841544175728128288575668148134304662276840217805244447741284055293621019940824900149700609231408218593620602160011265567793824138865964798515484857535263421852131433288978870610857526675679118864295370294897382805095900528398143571701420409247690082004628729095683624459758851250998813301878138853413782109911579145608492041070047075112735777724753128277442752541122455744118753883672744941504402341065450307531601460634508784323937584081292107993748747977480467041192966289249343800934842720186968124148592467956421570524406690792629514257864250878279645033291542913289406714862156223421311910944256155119944923027138389896719482378602702098684039201574151733033012551973707569186400491442572462537388095003378648993124900671640456709180059720869016386671110750948168402502225042479773960832365387624069025653839444306280922754183340456606627799857768786357219536548722385537150561413072508669147372421766997652504345812777454763145447996741211274203800391701941032634933814089621708470377825176968949732279901866597934032415929845487627427626123105319907211402769091260508143138151166864126879789894658786224567796494324693283963752784160917243134253552676975286803424095414167828610193849189111026621872093096886084346110078921585832148516362550851960663224952218715546707994471288894770893047555648093016377400996686076786314892009157482641164042283262587025809507134880868989002068890891736969833671316861795377846512925927654882438332656026432997376696705348558000502042391618843186984716565784105540851145181879322658625915057369098913307314546578099684836598002238779133754746676959525394027426325106334639434893643745666325074644289474887310359104358851059195533420994127453700107414515651942263536932389460415976826192111152318418074947352478486132182683356250173328742202640031919932597999940410727165754571367349833832767860515660820679326965631238901400478623658244891077914860494139169999572561058842559326056185860935553094869599811297151910988584337231356047402611618260159964616060166143309503717664121548945950789741018987096245199413624239089859515441342804119880993057545313591723451575515869066838025580098363247130790973956858747977068668652256134004351427047312933882682055675902567619748913154021465087302894653153558220853505347785004443430444721132593394488487418836202346351927550729984465236604459291250386435038859301906139864311702658290851568064829338180436438852065873311802272422281993743038131300163478167717215628011785188563702929793176427214202268000517057156185236889308287739347890161124658219366225134709838429855915412922312168278876084588742235056069246844920433149423065912109360580407184409553241305135939387323011571159201602805376663681955520130408377149457740001179554390489542794593063162187797815216796700764928693860297299833484119109199956904484336220527851432246282415011238917140544207093484662895393876906598603446868538684763118001731999320237440359193097055023874154286559511545935217325207455193716306904343442595384448903385676549640471214422769866643910412353273021643612958814112878143746995700086534085078474985655011773719090904630140902563597690807715431171335723461547616953206870619441431996460642722959898357681345922278679317154914109941842399431940549766446426360694207687526441662026776681904001023102995999446493576693665078095364570367204151686223686173673809418143720097740149546659963521929378600727503039257644783839061181395019333391070706688502330495410692117669813716677903060270367539855117968007933695992068716880374044953700644091924675751825012771312804457441127333612471249962337506975201285395550749716999615715080609690264424615945935367760125441616272890916865303133219834748026442415749788906818628876196801905596671791126576122894684446297484177175593364622936611918571029001547748324617555281401860819012202298380924636912699949368569735246305865813191080396699997352008655264566012580769590465996741263643934731978616723066194628854556850814558650943467789869106473372889145016745746416359434001997451001567775749702967391758163586301770798066846891572780807162495298242339516831821997588217310571234489945202765647191173088894312983775535615930243050776028126959927213131211212297894234391076926134505374769047875500012377681410808965684786073498718182283258093339888483120395104091319374614724998210145548070945453436823469764550451631833836020258828899372789844557506876531909184236645185199758153953574129580891245256892429764309817280166871217726050145515570631521351827768214762014964568953574148963304162045965810550241978661384479279952932269145936564150512454581764527871113071364433782456537608238500147436633192808000865405184423207960985600845508992281159652074389562416603040540744667698631003105780127429817035046344656884052742035620696924704917547687403240607502292043989304124678860415764877939290495353761101684235356399050677278203127621018477044552988300801167830129922862803207323422965403041067213820245827435165511533687944832244045275958629150387407659935506317101287224453899646536742989075663942247680068261291590622016721638495288815992286336239804782858377833233071712280044161911485999852164813428611675829390187621861706376453594178229954405047337361101962069501872510614548996956830333487147427104416311545252720460854845997192475216508875115984217351928695633342849703680936438953585295132967147110493982985617496295395668676952063088369403874726521167366538113234681566464999423657611508513090602474260205294832821442322506398821346262695175096423555250238457361041068611557576090305105032086101488832317443234825671853064780490698173178510778047130910027358373111367054249661374452408309340235390868873070587319089123599468913048091554112003333723245874242484741539821498598957526593630409314565192725331564691696556957298247540458268282855956572168804949967662138495395597202669582528914470740342256323852485414630191443396525030542529380174465116732600087275894319520579969728264953939078660755058411670865544800722649765113022908092151548405078604176067073972982110201226006296340811977735418459769005802572261860016609919195417965821521916737875524437299528574698898544359437819024177071508397804658687283238527691085382746885976639705354021679074518737560151080946106498189922329588139100908893064360575987050719879826410204098436937231915378872392338695479916926746748018932571746706225772186081228859326057591802786494512421952868041823756021563100274211040887987840346164096302031004916970402394897059399519403877987900353947389688071677262055033431092778578267185407460339986067263171195292745974876631998841550812862157895412878298626622490053759763363509099549202764199516492548327215485054759530800726750967526807900498651254241554824675505161389295356159104829824170814975736533100290737733758795922363441298039359018926309106057196308319453293010122847149985602639959068724368412967872075024380317464877670735355317648922858597991585000590709938946467854141968242404626735732425788058201614779837182198561998729650249155707613045505595562143945348395236095277401192738178921707471820606538090521532451124465266146065694034175509484936881378471517491758628503776420230572707460069915135875629026016896757549108363631794803832247839267973767678690418374687763495339697152297664057877012366133073355053133813043101599338506822486962767529581125668101531900128103752595326465421485566261168610779471919407673976678111415445636963908237733859665513672206357049006791033838353985021275575747321267103142538021747543876142663458160040642609539124863444726025534755995540013123763075701906958507807071190575089347218818124893484323588284183732170177068494625976603789724963323769639806025259475365030237109224849634967030105483464095265811486522397779976848264901232347182893981688258735556057773900115633223880536836289479021494711658353339767713418623919101123080047716847185637995478556481686197803684344456154893278100483327378100302095924574248446427796476272270141197039936265945380711048772421828220456426645748611391880166304146116491785728510035741863949970899696849939559647437775234030414792413309211369745709337546246435174559637209557091693330981196683932709264529306826623200573143684644927240526457634582201672944113136409301958427062362678603966038773337941534983879093670481553536814364444413815719264612167869675651016079622536329710355472505358836440745773434739302725075295623596481541832874224499061585537228383313630916666718220251054521934215341650917038474939412264373857340518730783806271206323890008043304887270533966296318313545074264979779516908945165451380459415329584454280754843115721063931612337940513199012250708792760884509838381324209311748812967535196358150827909195536250588500889423263186357988284126271190634726418820235623683363618594639219157824160658064504756434981751705430842702391482560160576058796153331649921507567052814925418796344048621424720042875688029343524987216500779086237695046138100890963745673252145932887259853164381807638163244585886516376183859777726136247504400302743910963086488453567970397727202729228327507547553326662624268858142670731663790647561744771717057595947200963279230152204658215918576969706660343800645233744042445398910529561113584917550352259314336140154602147436173477224975676821851141976628977228614216060243610259121725427483323058297077229164136278614162544062566826543472044237404317028886111327404896397754564736277794552940393741592670154029106557896403146257372164351196217215610069235051560818483320510550445334350825097478829850691977274279133997943246864750138660593376778331785520661127546475501996264484112834664195349394437785933295348135042941620053572763659952084660075420252831767064104484992974023363667559171965593588403045492676613494175808262464840128590717402850559876352616200519333593073044952989927390158043957260122859188034612363191466298684646540985145320618647468798185689791889445496297612802046144298391878793648898298409511699528669974105811852314419932244185585683592276712736758098089783415139231549745798716281929480347574570058028104663889885005310659143803435212057538235356657759413976493999350213541101871187466691047255014659438852817936182500371769861205060667469537983654307363414754079338844670214919697419139539237464626836109459568814760019720296961231147284775869015321841620030160263707780735889892273329607247802273014800416948518652788777775709868599618580358953406869158966059601215435304557834244700690038588725219054517712315464357405183673045940407813879208280365498525545722803366816262112895871502599102819932084782138071143894601632546933663260105008066012915128420695704186361458603807165471665353447820570962074302373456477060499730330362741695386897964059184136536385021867892586782858105277838544334794317067614309040861537455602543367112138246238733659305322856066769736433155089800525004532665840863017101935094366568379206555760392125398673387004133827390618309438906842335811162181654565688985832819625324756609493470492894686754417280347000327564591907273911131204583127762541887198001166283898663486068874601347261288525671955483772761185158879937322524392227483223089592435191648093623247289014493847697588945922444827755086588951264904067366865737890777934722007662397293059972586524876066052965300516386588080987966764416109741748779435909791850015560360789551845000883658668882223557290836929291733843539782029127588290173275023715287605534883213165176757301689214067197252448294212591295519376435775889759949958157281582917147691788496407157678854484413654705149703103989535200667580680445369311062540984460226869633305642839040534078141550377688288844018080500750083505788132029097417226850684207647753567129215902957163876154459859408753302109938952936708753987372366157485895951471891068146464180515325948957859891682986941776345533309056780241361967197260100139724120595807508961722956268999778721824958645358170763751576459044545953382184871216427020212264123518212743415276321358813053003459366461236023906076244663165064984605329389442258787751454064660268122266042744566779251182914435602740956100947967798596957423953986235825926418859365696371212560780014082941128125736805191971044541943496597506801409980364813289740078999422525019729959697946085715650497570668443853810313615498262903883657442384299726152963450320585795524538257132780127464520668876973086755779197104679890630336211550511792479707125470968429328424961076404349148098315559042688530525500091895970586969005414889801035467868615441951983633026292295518448955007326871813360103779378334456318660504465072261840713072323211226883489104069096170607644214835687443893242842337388429818571375134514840267637012743985149088849487670343925359715423433389728173320706706068468602163595601203094642261099556104992702310298436878710340589014306197611654085262385479116029043443251224564321854559179414629294319556957637537813559224855375476683340228586442849416064686832875333084162738065518921971613351865497393967008964908023059547770128550712590234290777561270220003812085718553893851097684900571138171426197973164832066161301563684397514503596032002687238573713514544302293081444130196547907444835081349618173069967454049779319285328724507118466586025783911815608928501049269526568849181236724925290308512455253958663911022812716110684919163369342252325410657199451307965200419935596264226890279426327730823166365778568783476137447617243752640205704753140161921114616626535188420306263030962593895530528301559518923310250571094037807361973758595578492908705039057537585667079906089203134174483305830387576715682880669646985290655588700891113421545239856723199727496666174788820633476521804736202333676481395478765099328084804903392941263004974065857405615689317403154136185597879699826489679883234413652276015750750334530352908653927895878449883022878740146836906010288010781503305113075843336751979256447657190624189006637250766863020250196235612430260047263773322992394568871042270310512461699361705169518037501004027743001781999288837110076149577819925804774363338420475451586355196114505104898206020617103865560934539823610162568886381617500842679884432823134550505777859166135304839948134730184363204640785305929892713342387949281279687548278531620152548415260395308490997980279887445675206842688894054327096664148689531894257342871621683052804107275105155594776138328401526276373731466631164239592497175828132147867981723991595435348647241507035729967620087260546802047937437644253013839938047103076157029369795469474510387048619435090542317039434621035120017507516247755364316266597580753536218454756855855222865025220727435936205915137360334641101346810058555564823941725117085078844954266320494369349728809561212796415401670789951515395281542940821760275773732389342981251859778041387307700741575927058488440200671656445671016431088211698442372629259249755816202229121982265717035610714523556803227990730692453421044746318013816609039183783481327659569482210112850559104770655248903603513777654689585129957163423028714195461547155164123623896926106779639028638994556180323806299670414072337780024984307053668721505015990796502974990259835564648953227638423350964886979973220951731711587789765815841222344924932911309368249521846696993877363455922361983308973406658299539826390692555045880337886618057437134106499110048775814344053820923773986642940680810241678538676068047685768037568634869328504981731900832803834411568912903475347116236539859068044385886064115705078481922025026940790543569701619141781681541164984243635709371656812914719426270230290359731589991687312480950071387736569694915658223691807123277562170159339360848207030876895238399361164472423779797263686503296978803345794487880437871252981448864033435591850909823957372574109876154354199273126537109787952453865401331661972244628598253183375038170668618478957184712334417023345341255232192917806330856515879382195220805273349338386415227529899150772220072309567015906875974460911193631810704681711090201641050734612656220726891839106149655133944547251218728147019098317626997186038144064622781167202573838218993799371675854875669498952870232229224173014239260410539949898089717127519027158978626323896207447668126796860776855905828452489666079967811038867133018948735816594074373235613862572995011666214811859939288465112050324153851590428090603184763637086699265510642992832452530439602660141669509981868518596093282478855362426353881620109662646313155069979712431007561415446542757630898058495525717989970383848557153341225015683842149114431134758210429167685318822997401840298369849501675859448988851310374149304863044989897397866081763633770114998118971370257164244140187206247797115721468835355848944311313121729327697658422022219724095444405195922127565007808157991510951910398975755394548240440370673844599644041545210931053745213332893573086240116528958683483623422403237776290788957159171801091013674678172789221050252982352291324056718716481763197230243500805271166545511967844391294415908101372040226030358182359142585289137349507304666686365618769204184306467085366953873007349673381111020557921388051671681146634711442866726196880515790372457800212456908143633130616241065528409250002137059391094981388263821276218402925141304476356530183314864923207969596526867423455164106607245870490560117738159595522035995167152190438310079252978109574192755540606760004016547350083286543139170412023158313952238903206800458447165468022367830062438220784131417413396490993038484636900293977326525750135790013369153586197101310970093174872758774513703801298800826472379735547986348562787989182029206301598778196775175305991190380849906623948835486840037711448678075822708001070114665980264531291527067525275631859226943471592720490655003111842538390136918817625296711848345092304251688290004434923415823486726514857130494555899533604214672684314361264267333762666881838032988574052029024496576494888978571794425743434856091248253119708677823125939366653458300792028401451576394577028710296055143442947085770982102335202810515999151061553439488950782885543778660770341654369829067996630245824043011130842184352616795414783799949689334970792014530606392691728718159072348907009547703320979343012810226038861949938866367181185541773182235133467819031872192896624542074323130062632362983977347103189476201601682906263240546181941967746829972372490617816026936561040645243616695753773826803737231718547131414833578921577829497670651032305476636903605845406929587682473059603050048814046184270431609910036811834188793044582711686924868305303526849007749839512247147422322243741462259832507162446621548341258495835699392645307224311352125501934071311691410396804896957977253066970812313579567066140729338047464728886062229682718769982024628657257417992485916097120057341234150252110188604492304634179922285612739016835289992893871763839496398919961816416477841153808821773221907015817654486090872300239847331221565266896754326619159513272322234377767393406104546365209286518966464415225590433265334079045549722193320370966643736731684378778503807400173553708805948668868367191589503593884502820505881538989231124996514770712646638721948048750000951075725864830102690276485230189604021566207182530950621248010467166165814960655658861563602138147707370336087177937515283258380824060227989907007033927958679377591366330859237955692351581939740436744276223492599880799056744625789302494760404839080034492220062835911608259345626233295819599122144959224221202689678815680369436805552547313506407705612981597868568366540457220232733090068306215724955436530231185344363161265050189463584581632344750356765543315332933138342694421028301255274601772077689536889892054608312369029971308544269782498357132687035351526072229859118374401704543052563901891481971881853983500535374160220237838687725628910711347425295933703320855031832847491717160124726764856319652574815797077226667960547385922722465281495328016436058065182606405065486851652365005865480921956789126459902362895211266812020774312025526168613321379789249897356260456383151473905264812849670341215070878252634375711893727392021857561818705230975514645407897911226739738183135855809778404856532917317173405022523583789046142555248173855714549368047700920098688996734452287383660361776496992728163964206774955635647683700888095246098403209116530515259009087892299223939265412341769780990115234139409193174526059586474132091130757514491346180419917691829359784681110115032270644327473201934118965589462859271685751023494819244829112161067367443800044432137740543119231972687935091126468881426404270988823552028463422345797032055426824375577818987686563695799216027522224286161250733355863880064184897042327577902885224904756023329495735259716832116892050406664083233524725028811490549151549408337241418101724595283597552826163292638182829018625721358455247466870805503524246384667574429025501224154146359270350475513347066267875246127455655124123631540788724619031635236158043619997630993201919539246435122441000793042605177523142248759572168423641141577299517163485927615680344534045156482394357851481499097490407821060133208582746446255370035974018973964401440657977562071389185805338819077239887424467655848188888020489112850244139460175340295876704094396758442098302840229789422774602058829837519321562584286338366032328039276845766419695603100258982009190660647769842927058378763100891353517658095460970630065735990581268006090596457320137963586363349937983290043469010768160328324713533956320613433336034106644988421245405337195513903349509751265350987392516852514828013036516836282705320517175882281922697851882051144970712321589027722787758941145791345461632570266252463243896359442345483456730505095421967460433481751963740167928332974292637252970050047789971630152556099627629410047148723798002653042805529644868541254238054130910280664913448992684601540696164316547499990456877085677625628224250538261105605536913920171288367965572669420542064010929500830973911308156352077877096729136813861832781089035793214193354558390407130470278541893281853764273300323337856017442964110087403064213361665711094897559713946856123869069790959376157001181845901565784698701186418435011235380818652515772205304436659935945128201358973602513806312826531560278106638786178583607867217198452027859955779124273974374054817201510704748780671635370072205657543133956982561502308322907407457057768224954003071029205087141310783475724453547715949553428299598354192137677649413337377904315959456097186209276761602703994102486325637445178293208002954218427970570679309682153784804004371014615241745645885352779549275336090002741230651395311488861260819963042208711479022284306403696378234312042002475453149781707906378655714734612276067551907369600283949011117298747466848798389854204761484278935588304158180398025991160023891112256153037275735496361494397355842694968669917853458098043388655868182319084861053418188437299325170769322408581148891604957200648000361763179538070990385709876246812929720183906052064011371886802488494040878351643151973919109633759427194300383192455530513916804678184281841992073565730290181366357430452620043526713083136666616246015407001478418326988970217853245894917152226234046266212376347184014119660482012485547264127738985736226246133626899276555601905411100325083522953637011765712033919273845855820584125316366676768737250324093725663672901525672683673257644655307801072962884137793031105773862762965422726886214840952479070669408255954669919110532019317469000418630858013008250814021070561120203241706794420459725031257129894695088022518616040129447605672389537977539519816378458757167193978508998122410957931928758919655375760526282588458718578603214312663459409242148397780095894578958827564924880973158004611723942797552372414567939278763875610992751449124507288737654959852084878603477902716207814555015654066444250400592085193872775593194097216714429232114285397203257768071076963389246267696836860560903262262520180585407487329822964707231928262880702389582392793388391113929401690535032225416769049715401968711397290136383267142887217761309087115978070061024421798606424482313720457700537313652806086192093660607937685995403157275912787578372788509978938044100060704454007867717163177763533443655135765451348964027699698531600178544553118102654480403112960228065453620769516148117348292486354108823682767347176010836123914358759562313200628268739272414326170250743648255809908094791862157315132950253334049626925600401172912117497834654468995866594686826046701196413102176016772367181061364158433707839272747363860488287646074979522403648765162944817180967923859643630970261497934288161219749034096449287895836632836288930530497378735377973935291698894405391791980486208049914795043493265588417294255015417124390235246766829853672694206521239031367420896749842112181099509393209473789749565505705449939992079885387076575802805030992071549272494109104313127145523042215461814796703065749928864904115761095658403896349078057453131820344124479196585740653062490015058549861118263629475218264309563979404270532788424673865771555421001251637574210778958784453619897586325728841169418682824097550693805114869192852756306055575113824212054675862029710226190157694810519892728809344258878485840445302512831676899874569042925404698259754122791015507666429760405005539692141940983403078909985617205475939971761754540993777658579637308049319964961551932917199053950689327265784931674150705766852264542454839218608866487626824162776148115819839968685124509277281469379562395823126367814469582139488124336650577626144364932768565788680131379909506494795193851015051779163018642883707923243825710389246280389528137768704892412887901061702902766088375119041789199675377290106495040162865278212382256119241043708995628432321838492498410097633198042707543717913643274581567370499253752164251716486673720188999230996799990045222875613720151955213392528567556461836782771960092236780231643220918324436086664323677841883291624088572684221221789095571227208364632038863453800628060127678117932186900130343765688799848482610387079199791209807440709581899082167066858390262500778813267226644487127077941872180701546424599068851336486330807299688996141565558125842356252230316369977084150168282004503291261570296806328949176854276789710681829219293673922676485886852289418376261488611507231272745614774288078770793390824379575579417834545106544461924168445582917423528859119993330195069537021664717398517062348413127984154725535511093762905392398866390289748584010764518179586275158973225543336380072431690704530610845794827205492605527967692170683063297648543710793561592182759826478131445998761624827118095249936194106490823659416720762278325615932158946465647801001926508374036308623785668702395624566600744184268606412555405179830700245617737842281308716217910960939892456904648455282314797567889804235676674546729374264378355036088424077103381360482655302030345933458760208675420847993369726799833332450844066899423701405724462315039037592041759947636770205602823455693383629023900600908248605234433285029033525724576388970959086565209834267643395371140426075700654615773739989444330300742817909551265235210807306379056817780562480345347275220051342380973542431005782396327522415369385380909894192152516552253640608217004056950757791618073448735227623177002419113196710251520304874691348270687320681669732403312691643268895627291852936802456427040100087105179441632235327987956450606803617943608529363805587215886108350342693596903819349014962520000530127126571553291385798553289923800307319104874159932516418449627265800861358077635345496253396916525747377129553531896145929438514878452536453502227010674087490670289687311224784024840464282777301000898581744599053895721428415402578726313234072205535530647627338499531822678465288798235268100672053655120433048545554989109716769947938209950742183223279750025416292016356596497727589437755248820752654079390058776360644707546450771338326632358584900697898775338333912992680677418037390003071834834489999232444301682173943514096458099947342148104576693607810607428330749857822213682615708998771083446593420629645863643361522736772545171210095706825349067136921480662977822750735588111988261158207312532051154940313573567101816549618692738184181899746065789363692375374935225714558859250498255016932023407383782600376033319210332508561492149613794969158470446976934827380493696790578342744330869981398017018794358560364372267075521182622678371614152612400026386457352728878433597782398141940321479875133763640388830964887024230094509282073154580229755765350656540957017075979464744310211409816406885230153057160231937465772021844157200741348348881287884531840156113059577862107461687544601560719278560684155208755696411910496546598139224128726622785320641325116128632662505345788517195378241665494559212337902451857543101440469204381358781006174496121621278213524834358961913356888476350227403102896184428046968559584778456397116916904131594745208588417090368205199120368666256984452453584142181946308239448823007869393027155387009542838552280187489091173555613599238298241957040893253585707308470189029244927001763440251678844898224923605563595650886717095991790034549245802851663681389766219036247997268588732633946889329652255578282734836213018044514767598134974606391774891541396710538431213719189718125503892633617462273595574931264725446487754606708293569918036937766487501974551405098365733853647507498338831448804296715820093924615742868414012605122584582112126197529672235065042520500016068236346085844912692206812936457258695234065572770573971098460520304516851960398350511312964888873531801965234975370711223692014270058839818634703015902286757613720361349798173236187682789836072001658706056678151386232471359613729314057476338369852678611345975966249117399467222724625154423367720127942112249842965349367162872678468122493049730998356794957803900704589564328674328204601960508002049147363971870063900763628104202474180280744727413642395865684050439117437063215516067870030532660001720449719806456512351558837971390419657559738930757731309090023477490628733304830577134679701705448765707233388809287487948792149332421816158999286830581907598441243920317063769158158190765595214082428461317024612306637232236733619154708521962401479127285488997533156288288436763048066512730071898547268356051915019918885148039412174382002818545588462167481800668252960237465397845797337915092451859709346587818735336829899877275941168667726569282910114964223015139914392264089974638754422966091958863719077070389887037756790519364823324164154888313501806285490841313751664288886730130367406715228825745341054901137020577447749016450850530360869430754174938367457282717148800210211750657436853064712422646643738879199290820416947109503821978272082258302220819031019852569493799542753401498713330109127825213705016351761523951711720704395978437878462603982427018602736561553145172514093687237857341050819181346938682475504678632625195970047232873218082643996094242247690949738662350472512428658575631883948149125241338009327545438437634514504552189568625756757847203500505075382796886409680274841938254429143484437020261019236132075986450444896468833131928461186912388537984855503715719013605900299837351483528324409694261984922897798071541332725962074821297961317326303747447061335661464128277378045335330954493189386615564872474831174417248056467252821456546685751643161916038582707309232859510238326450038620173251068719493585121480858343139879167957825546318494877184096729370668736250661415279074353966495349171137018990582304510395495216321868021681024586432281644101129335659400478066391643007226623520792785679490450154740667171094460999676489868210162126939813227835988776450544030700480228171341438600210460816850457603687153220523116466439201370171781635168505137116907405663777291787569869663232043257528042713177632629836573548961449242592046378232218984195082763386078023031422751556848097878354056868352771789845222890864812119318358301320846576186836562619426306615593128766088608954053597914757783594381225446791685140136554649819858406720207263117715636105734692053024672064746156772598761373505004537271897152850229180012368139546865230057972906635183609508350990111809705263555854456250287987798453942425336113055071465191108954228340614742194033996262524912979990825987278819262014475460371663017919676394850261115126058717652475218432824389242052537016906984173493507620860008274669201230540206447416645092905339074838511397313025945553687447136098178315813907555892530449049931530425176447317286386177745515222169192270219891153817142627655382288284819917380559255655812443390241452867979216966646731584277370033299503313807115338094668814508593521713259844938693971824882619897790341652483893652962047226986154935783028978808054343217630798335268121345700920357033476699520722019859455941347275000068989607197460670404874474681327506580830463107225596637176711611234325620339022057121336372175181949106350508564928340151857305110105723997678460088862034604533176386557694346074376221144196645094118168301862989047586449331899341830833418488904466783635853940343583098808571649458528097303688185166922452755564854322691618655644160705723153337636121951640967663824430324518854703939644307179378327289518840038581272437931116491373574307520582912860379014170944396709376765766472127156033041791845451373556963526277849503321999614089443386901687527958769160931524197173142408936301495333460797796867516050389963468046717415787454511416330888506288038467488587120379624649842752814210279754689720773520672579595094342454210177063194662517731181295550610722664340889998534089299363859535046999181748369019725221090750374793815112144492217617323114568342097721713375790069928351480310105560051712629271595759735606048633128172424258091651705364678214059740695128693738242388841432643671074458273568852819660757562876538450617694023693406843395639413745415735525542732574515131712855141788791162061371106485374348447677968557034847811438507241414991060699995611369740148212025037311263499551466732684449748373769315105496973914547981694000889527186950505604313106509241793793389051801468048587900938791802065768744700131856770862478921244367606591602511106751593186846024549958250741701636788321890520832891460906370390398473802203996095207772499536983860959427291750090187633477579872557055525650615441457932028671033172805443960992870887021062737309499260728377779217691747260786727728681534237699770354395376035092438918928160737725122048858550128934220655390841762208850764519864710549717105092129310744002344777883533346434730543610871417760215341372616523948907156494669971038866161950442909503014042908436053086116674600239657829805389305950368522669332715501297842339308240042475188042828821172088740480925012796831342309477310852461104817257843462676726582793584805452800200121891314064015956938584246509928269469774763764461418001283434206683279086810855693987224935781531520052274384419194967154198917168714651827716178149249474073429708368731246142364169217834942309092475139683920118509979470547793711760081234624318904256925504208532514962371209866156082919333352957357272775005889481817718492289469180339378947505398649704788521519662137820550251130019513637509296041265549705608919116591564722324058567742473372912761235685384307091608743086944685581310890736131023540566903427369007976520684254187908699004357407615084086655188656201193008686595604549534230076881723820590852616958234844015171014772908611586750722787745786479537445656558919827212390278383895856790377189350674830134106979575568464868923676959658557096817732732834247999373066452516519032555519356979187872612155569676413236484923710804068701138457299223362768792720146391001899957671913682412146058922408868669375461278241670539225000567875264958129968671014849260095359196929069644809564712555682909381122039953868125089108517961246036809495322655037524077807364524187722091682141013053809817270393814451350570415038709336452060510782677584755667129596792123889368577306618237298842606510914794064465187896914972204960363690534820975372673349710269483145532335369020346287345033930449207786987531437212051523786532784478439098160411390760489415933382388553396512972337198224030117190182797854779233324345840130206707403202962488750585368383619321730348960581536919519378829299157561674561485885407725876335558335175986609870017817950147161441220348620325913851392615109933520646181595386477339090019783087556017306168954056149168055146715259974494718587368431262045576012472763624741670715171761621929850573966640343949564567578286442291930519394231924784617379422756444554587521703866837891112328853355485223237417081836297881993685779107174849066143326411033464963343750182091591133670679254336461882294935291553069155930774161283043645462642621337458733065330024653204424272929035542089922090309340867190582922977503609090426537911182493734052158017973459107489212383306430242368432706870499901664931974493546521081294595945156922185125721373843170300155380425497462220156627987353127187182622030827113546193665648093760515121779707535616903424986299043390985763678460574481604945866187694145251752716603875212269601543599228683741609582228555751866008939516293585015060370524791623461298581307137328766212936299439540701537915987500819576462491184613241574342578943837369522632540625248522893924637905827517207915794485220324957495667084703883277742232543736667222668025790679120737584752832210040335627664379540716975158363440396048485310004539004394070017052434182085123572076616204534977834323237012054033848026062813500470190823429930049214061195943770811661188131656917407039707263421669269931162086917539444993229006032332048474244490758524324957452939114865385400368071395474727185574982456892615028424765964774848178186169632593571366560235835187186408095217541868286845674295334216595848881327377450373671409530295483312403562779767507857336937987741910774811232245151047168007520092257536113540360753832488932184402783988330800388161175267585344598151546965442258735713196877543372387074718361946060179029406369386894442266838399038534985806709826260825775342133986936445891819660198080716067788597157379895565157315088466144590604396281074720521307830511220902918510063581402132968153856338440526435172599514113798767056215690544723442052651741144956111832475381517773563861145906607884076335515566106970676905202284344229843220369858891752423928721542233750273683426806073994119089101616387854988404827446107517973695060395052251464511232779711386774433627663126664463103008026588683798513226862129142547803659870710766295145905750525279655840690524860093620371540434218597215057600293047382771120851472383392653457812258122560829019067602596943767808223250295932421922087927542304044778575742660597902353221744025776121753393927946674127319983054518318418613432724059446969445297601970875454156002139701720754775179164398782892498547128624604939772141931078256768512258294117289468537127564089045447630055472049074550256764351729617532008072093963489422175917226433230361358584264473150156360731098967556347359447868352861275301552642045088398468734942915476214230084941394179521870064128700621969845534511851281990529472850185404935479415267506805703822950730467491492563985026667515093922318962484710339361506902455401829440903773206811424009442663913068511240416807836233466611973521339627272791816928562104021334826745669688231362334344395206420820314508199165532977955652696401409678268049124917379148943428207979947024300630523428435370561638822102546750714018425984446761528107041199799355546408736467804635866872058503759226392710787334494484873490434259761147982127767543104427485626415736513869150222389631988630029640810044941598898338386697396762860544662459888225813342178494777181738499785928713312035420285370558119040669433880220377741674146919825652881937908827542080002948789631177279692581099583392525686818879535380338517698882666388040913501429073959314133839326474552220090257361275820954747724630100622735582701747326105654900427973375743664894777939788066456318458765549578813100132223900374574470300167953181485527650569255342068692595067985741777022696256477889892470225655789521706020297958047391696470250127972819696307939044346787257418623557854882152702957166975909058353935453981541380660910498471014764898136614276420680510074968559126136366164143552203349756447720828837561027301195383965884340927654896865991406881284059353967718333269546980728894730454191178002917537504893720493098714809222952185771544405091208838543778624308792073483163050711878954776239629381228178060246279122276510790574589068446593924666626688667506794294967048901714224878696361268055529921445407180798209613176039845792635414490027446378692292610586635700074628186661997316483358608660772236549360426114495287234875723153315816934596668820398669934703816913264588791471355514619403072699062877903985059756125842699743222871904095514142679537299957539301025462159916781180265794653407737991592630400059851620324013905447544130491962578234959967524502429832344674849821198852583534805458461320328289584116846967371673472254239590553553912371716561455664702557627868893706886132458667238178148314569661799452050243443264287769654841256628678712892700127505352283207413601167232412506723678034102680226083616247822728185195053293523610406589868831936708762316558085742799732366351754821666985087600255115117752473478139506339671951815706860498317518903515720873472937872564617183746501204813411210726678322648570050690769698964435880934534592811962871997349938762476464115054899742645993353500042901927377329226582557442168385083052803181762210175319375319837036995102664691330407486274260333877792946299484366515731236034665695953403816461237800405906098713269129789661426860862218123979677593368079277840502970085467070833059609393486542404868412699597438760253135727463509852196945217593507489394528290138391545664504217437571513292238769258964929589275497815540028221442047403569576721831709048717187374131810041994292743205030143347160351965432766675385791274549693751820657051146123612904099763610513070011388453383939380464074318230993503464964043291564128813687037794478666568220273180382277295230052820570090814896784202106129281855305746339578621645702364545605237741302273503513264596771386070405593412296985380842030866653601009992779379071203767980829063670554418431892807025316073535628351935986565787571386103539114523588194835204318963553363950085840130620906077193030445475144754488369277765997933456049969706659276957399814398890950634826301490472454893714292975360170393310316783575462746933436936143669403396863496525475421669572391233053972079383943561480853278553750045481868468201994087942043400432196536110706920277660273959461005110066974882808208323572212561271768194921049330549374363908049765266482140207089508111170306244634387265254578128876631761365674295221676120459487486205254994475865235631829054680870497813795729811338792717109970712736312837628408266304667883945171185924578823553119592275961363360095911159626628534343097871912929223245695364145901472320894127995283577344755314294627642371554741682190615114979377764061060504529221547377325746167016541161254498940652623929644701061558841437937265291998834415831778160416044246816180103100282646951108364304968819501581572989300419285820170269787935457517302799243953434204112658675550459763247997184545730966134070534638126769253226760983541294286482072608673591197983433247161941951213199524242483090371380473733175786432402663915752840138170595464449662004103375516788647882823487237035533588838709004647876466551329527620369349877792781504652529349932153202182800518095491842442551160397107869321441596504330276584434759344030866969435693890091723891994846905193069168508867335223245278684084511875382535863972081478635964936429781213469612140438161797770746055205596845748094835001092836638365622926400530319635182090539297365472851074654407272640697821617189360959076243582475107846102783867849146731304550099284792085876413850002579966676679871113371605192165805734525109735256304753840692350564856711232469741686015248101398421960637717130638335756739613148597147700352464862898674989516421271489238729118348900511684751840850932550288294484377885263181208928390501808299535782074353474807799577762290082717296145848673788795211925423402248907481701056645208476573461234185771739080969107889369148072778598894002572984472609136752782198900894578704815031874681368367436846489098302423939627083810920329627968824018784391292655428229491064705077588517929942598865816019008359851103550514085177254371003881987909602076106186437680761125889398425900840704976844187173977126236542697202082437048746358099421622156924590600723242325062389892045824241354757330083194390957479178480712108639494562550192934143661428323481623250579132250685959447239482001965195206804554698160832949129082936863260865006077475236764842796455245066557723012820815729090387585207226211897176965601842993829028611907102322939823114419691157098094043980323260721952407317489079471822070451745101932347109163092656738117585435844438499387119985657518947328915765426056868823895078125479654181573904020679496359752502811041487675907951269576766058813936927337147699893128540384748794136854730591384215636653949728213991940061730850624932563777181539309336726561307108759343910962466090297531388562103696543654018813356325269248534486000424644851424528957198325318029631089321497886996748086366340256370982085637902326467354765495669174124443664997950296644549465363729031141084426216869068174509422781782122483160989192681471805474125532260397527360046240897013876616015665167529504740825227410030343611389266506947189368606892238976365173575190172037182272829606014453261376524227959692325368523151816545871808921443464977709865151083556724124548927516842331789020163882376926283193087085446015938571974979982660464099549906720401936844414156021009670586987525996401675163650765162317930424322953419149892304148484219622795438369553362865555236797519101325202184800193876015378734792668324530922166771478101593818095162371077065408624372839801110246441666718947657977047433597420823267599561313799675537304832026640991422092765878823919288884400057479960092112101743598284798955259054748856590143915758296272931829653001612389517229490533886438615820658034038905682618692393430370022992199237017326416835224850567550521711709905070888781878385824734437039930583501168375149702752904421067974056781299011642702139007267738297830437115216732329142700928968017221311697478228432182640727990717257296395848984335761965351968605564714797548546945605501018982679068374902819222908976602285746898154208107836018767864055479933526242785117323409359981129771513167861817067580807311726789008862925235483181768443491786578286087728580043929507565257960434470500852838478546258481076750756786589765332248616562806992988149961195440875791613045699008748009208978053702591899043337184821119852881339645045096516218161854161349422188392797391315797697361671805940369124857938261213053511981581300567011681889973145554423893483868996336540661163214460453520211922595335397115425016373309413922175331666590222868194167686226160432383302391458684821093451807158633900207715166601753666031754834278080927572382128765882520682977216085386383302527881836143863885985633911993928160715837059172713355826824567941688886622116097155632936486064326437579482705610955278720025125677346039711823565355436334470185059867049244349572305736339035260296412288492673326614096675415885720989475102332307405475488887219531033719898574466350397656138452442082599330528040807463914553564062284138154479580796784160350891487803615673839963717508240710311403578776054166838326229140792039396108141162274163420481728445856861517491656593829322708745952757546401166873643337631243846412194446661068016188744642622502781358527788881048632279646661572527952123799470348163659777071836110175548188679750035539528850104443735577933414650202539870676587051781565487363752662096367547729318943047407355230259022119516557364761423809603873324645257272958186571442734392313697188443320190404320315756700806200027788508219403130663448318339815747508372536928313100177803876322528711902489286240899072036879337398894647350194613726774065629117594090135682397881687124217652647363179887363173977810335689058621463907908195603485566108231610925564333581727648270323595719897939152675794924026995594432773139372779111901372792672743175212866957189039107613774238763937700883985708196069934924839149546306547952019044768270017119577242910482888080072075022810199169246874681563794811392094613250118671310831925137011996545837026103629136367229900101744001531398119500747322458810490105038931348826660592447034776637075782493467872836330045031890918831612679452966139580988607964005192396595856076855070768930251927286230217808226369651442748145078281254061612211069433861445750510146450562467626629429006006698612744175915163607561087580910086619504008218098826104633627015312721959988757825665514401874781833962020095373741912324983304534618041119806848204156261273301760082393298097954998562857895894727877575112170745927520481798612763882190143987475683172837141533215244064283061452759765471278717291665593845129837319372567153495017166297180221398078763433320381200054162724747157638646138475910563263520894814050081857688967883824444058865196854619391081091563198372717853714206048133946031868974674725275922193642830124399669706468072632694963878128121619487728590262101158938915602806004649626217832257772691725347051119932157659782468256193421086844547270937164795566964637627101460053687172293686900784825818972960359932353508837659509195487339301857373439064650916086038069559055045982870822922435009776237223113876983326523775352520364508101136664856105169855051211288276617104580033775918955604044154674942262772152071354374570297073681386932376066366811891660045186133889079264000474425204212674901531201919009643462968764399239470839909662809670230151872601138084124485681860444942551082675006862648926086406035793915308195180205405377654964242262699002197270615672000380665485398552896995911777319588718246924212122478315185464782158030678351383568281933935906741036974545702213605898614619342823787453836234621740748419507184457033222923235015988960405971251278634249422053985659525008693932425007411479652761512330951283438281654527837150964062071071813615276053219853366528641086876990058808374725490763046589001098763115581117180776717474143643463771477030995359641521809733830206802212673868818077435658898024446449352230743465094169211324099627863701473305513970080605549990396758875397980250815750322651033151579310767152573747637188616078565799375611369290776314536434567983844665273109477640888900460534335797039630229976178787862439754268792412363795626294746744710487653395355560951241198238431274730390200365567960777519287423441577141110991371107432921385863313047253813798363811012839425841960565960193075360767989066571740819840982436096983574841653615469608335215937093280547514586333496658728313707244718044460752792178323979245797024584800277084691008051289164429834315537744066537309057688873285315728175533425452383290386499964652791862567352706625555675910557929321461389642612089982890706472153778507196557458157338393995208852564038793028680238750513769604767316658807579625853579075087744877706061756872501573348457626035102237587397474483622919526368916018668760121484148839543093228329004430001418988493805773791873772600590827166773222389120582642197448724623221920755690534613484715586565512548989479086838588440315378967741186373678269169021473742893393178731653333040709614722922924939501216205972280960574753848382816620604065131545228467996676983234091134136701859830037657629373450775757646968896852299972827752634098415400472922263935242521276567542599287873195727735352656539670782896309093271311349830460939901626147618280016043021370797153882409500200271450194294209414754703313249195588841343827053863070691519977454897493003295730193238191880070309196180711752299311458573741485482601036535034401393948791555745314028573421885190716983316982719093166144691372063203103179854341549057962100797211075323423466570097510888724827749744575992166001250830987997881659722656186648282667912842796118800119579215387223581037664606360648476239501311300495997783918990671138572431286768036766729367701000060730891499989981513600805544438043307371814083798781183099891273548927631957848398187773192462324706463491773759834687761678064457978413930574174822011636822945456220655325688260759122091223687768797909020648026833048928991453381223043663861000758064254998848469502408874533791186118267109140044193533192080633926780285732207334485261192572121978463780669916499348715831126970508401702124715860574548820538532381677068278772614274222131458899452890820749093336613659590681944546681407247987490687482715564975004313883177327493698063138442629601997992874879321502640041135506111769937830868602481974504238013998387181724882551634023838825942964567333509161027628612630882106236393890334583913851030932083815019652877067812677655329475708375420788489256613112840529040770923901985690734460366288113622728897780689843359562593282877476168435852839057245973840289612739190500777242172766166962948043213943997921191582360116652245978246148958208697216676546487126569657498061024936685482725771929737461949701010862575791649960287631462461936822876171873985016465474004592292513225370375302231306449400086172247066632783336888636566110520873375617992359640319296618164650093646991177216613676189437245148032729467673291147132738867743695276318372769291402224304336657760957036576680558578975910541526163216098554751080600717891617062217844572054682735098387745854135959421460615462284115889230077710642072947748808500391190173781257394701654206738468877595218688592078774924200857296811169590361560034093997360508729811950656794816455890231094016533528654764447176322801091929518103813987184769273044794286410249549290922336236468904276682993131376278039404415057568227849131323715752933136027637783835601405132267115434162475946132116332240730089229956831140979149368523988362026106800349408773907190535976818772530195392765990525356002968848842160273144038945695948580799534202390620644870353643985666361453683384466561276592173117753087200626063407078111489464604938715432165700898694790604191862090265536629608011476889001864078714089428310807249657252530180945776085330177386675736659501849903192253079708452712402966675104186545929227923460128750013408292760172137383091085011974576762203450415653495598628492625957983532891664174695262105912326351356684339562779043298636802477265629218364681220005984111689132807206565782976045010763984166673625996466535107600400335864756498692332149683793670753156402346896596178302927978895061831618940478667606779684215650274519089687378828512930819805577886579199550155401665623946238085125838642875545323891562715076877770832536967215071902988615295843870051140579453546675643210882153215408560581177751351888142646551645626256315008344066459432171501737907380911028946578613751351909521280246735758630569412654205097960835401778356755833521565941669044198079689522367343881149961282993317023829629993766275384182663783606951299259083957320004286838084983325524685363885458494410758131937392840854991181027042394689419874720427971769113876639034017559699635626537077443873163653537871420774715952365639882110917965007446552888713204681252765655744522985031385963981003636606755289478882596032323593103646837873444326862779878520030011472780180479913157909203372407417215479235527010312153346963420196861583207178814243560156663329932666337786423505157291766911120635860342336535065515631431506223814128365004409314897432402758737081969540980356587512124387630081839248176146987785121054555820692602851173444145989499454731698216438592208815965421002147949617053961206250762734055495411897358739118201871628141204215994957656704569709988488174115961282321038259236067576958700576302931348558149906092749324523137405206019114296819630987887930528521062141068948678361523379985949725504806493513341442228797851294780745909452687402088133715139766365471436060745001226819194812296408566709796505289301898475808889422330819620831949990632023644461078672972937720233312605681056868202021833309647541395819419522631556488253124862335624469119673811776176131753511584531617271483892990146546460592963776464698201834369028913533787879631804811324104083893481328990493910006610700900116457920204644462410026945855746409992565434117698687072326758739876192987491245678127191650443747560246061053416533362486036829931454020068982058522672484924578374075305532059521337649333375910093577457698414944714914894551703658304568192408505461822375889158968524148272084938398263363667207631784183233351569919762135507750908508291865029582613977114321006407401703149181456074824862615156577523944948253938918671015155314574610351726185745210189830474916028884537642258543009235793420723329799227881739283510313681406587543301489444340233059767573741620187999489041703431128021489602327563938994519427761258717487733264459603422296974233312218111478137980649811522956526737357850528085544629752241565718030741546442596384437698068553778044395951214673637605359373404059500709349117626925791996110213154898458807913491998238670938917455943338320077454905919768449447681316987944082445353534024657861127526855741518156946299137421936611539125986035043747334575184241643665999280387055929456597154097787624148004602147722879063842946225067647744475892397890072465770970990330415160374173209102209262293345878744046480334674074968894972903181851642412714397671935487591193033165869723548220896380151929839065580541666684045873426509318162522285460582765600910177959070964872329452257687588348185413960720445853213000097305072955987036169149681181461965538991915495757976838319528827163445210311352689390820758066304819387845193819671298047307424109099598554046125191058459766011270195447190266571093926665283494457689161258923607715513989411870056593877798888229332942640378015131333327114863450131387834219114837678158553503946598978852503743551708872190841509016448898691909007343228148792057890663859623521650040073721535240625361672561614825755518696762227512782682580208816527377992317772324117357284181647203901236768814987307870439460104877476625742014152922100426621349093813203679407985430385908643855199011747802085739912916147815928416989147254483958955583920348520971059070231643117274443345115619788276568589147839386339475017640706239433638893996568299570470016994831125767364802397304085447241949741483168212156826123955609699457768868030617659027211766243823984011646219697941047006136489248082714586127670126343861899391185205297046902791030892503182060091090865354927745335717094205591211776812106730608931243540620697925417261029082643002741356952322492978257265142426138211889625139364716320737902630130467393548459315176305554621158849155985844075499550846843472359925420859612587849216206115003484842263662215510297076786961950670643248272836434782877795498657885888401551635120814532868228939287185515040868004492751786969749353213239384997564189578100602814956781784648896868957387761524193029307584708700545293365826837817235178653434441546207283447729035987919973393308587033908360183757102904667027512377748911676235954433875860306055431118161029020128494146643340330022878749695227959522776278486305897552238174042976318071342892634154080835110934528806665396890900278749990434102309596880037799103581556219894421691389248863614220683755560608409676167154061779645114134519032184458860965787977034101103264276681728926407153350872937276138759753684972303834094330903916216214618307312516340544796186614810219188453890372300278412618674855314351838822311068877103665601664071497698321116223246850116669042700350597938086845533650553019551304845065614497171416818547571928383374472065396138936320250534253961042004612770118116836925041572889834316657363148783347474168286863499450371174509759154692244826755288230084501985234400564797502032726616035379646377792541832807229681941634822498856645290693117247087461596967668432178519395208463690826123899714442734474388120589155852223838482302889047211338329100924567488053704001026349901869980485510310313721964460195110863096374029389509140593769171680686184285736001044444971965633910573879214927540220328343529009119773368683441712608112269836489835987080856354490397280058389912620999935430643079090931630973728419130436533457229463305697447664836820795063304502806224605255819809095232807287331701650683968824848588843721143518153199376078603943898176346936681811917862057709587628610875553160212027322145118829399001225444334800615288381120573307617651338039054646222239161918241664042918240343093546335797456029616891642366243811902730689445942384876297046482633043509998109634785940523341600412710610175209237596142540491594691490213883000205309978139581187137920763275355252386684929528911504418517305838416091582783614130558940202040499855084950622750861383898790981829437579744919380857777252098355009781232267272676597260584003656404764004117377020382591012008525604802718675515796891592144130717487378596581956521109078807962511433550872100387066828311957671706300375020017303348096517367568775095401395476089068733601805589003192659247209187186088636135247352894177087154839997852380581267631399105958230373180055839065598618600982399457920106564181933256015036743295714165391750256334102574884050106719402454977727882831923786838826864705139465583223426011539065783396023846497127144598539230412755670965822721672065796342906547206003936583648941209536608076707836049667031531260542330334769608929386970313927141114467762173331219323664907333674505194350556767686499874477138333239283600611775964925245428770121416716502672774367109107285689280834426465525874953876761689856213185028915949378905562953867637859826543138695869282487301028148463310890590008540329280357647918682401627039729502046958352068158455222427067929132382833677072408435589751158975185689988368555755126744227004265915947956127281658713188449182852911059301108476849328563513340777632139775436902569893627286683020245413575451581046453603603026451291739078721382142558756014335032102924257466522720570246825438897332525550009169735475273761237028816440593301435161901247163014893506036330596434107097061380714472159280110766643513184059656996240100848084474908078289693264764813301611725864454401152730039026200502984173679191215783467380272001837239804427246274874442201666144996043659481033194112187390335457666358530862028943892388467532628271132065941640910740561392290416742314297501255619342465755556587670431216956738899674651045458289016670867330868638935903896704733270346019580161100719892881284189406758461132642299384147099781544644605269970827997581988507661814493356878520118194560004166975694311822169996222927975480264881547143058370565220926723750123350952808433339638119795046446651140541126860157744955964428314806793938313751347238402583463443053621758709579360427102501467862863505204613347648074411866266819382223983060537944012794444856655809311154616258028225917704069194693995465260123032170747110755001032845381469725005350061365733770345777282486748895903625035119155317645545595081929820244429156519716347428233983060866824684355590486287391015887447058726089145578240017569111778199309969610343831843572138077741367202304894501669131765096990019665084604672721481617082376940358954070384673054196158244057169533687860500776090579178540553190506726540457733080304202614429490790368979315655505927181263774786098884597331080749274288889420999473957910339460817438084718670889727059531350993068422529940077688399792510436775402179631167240080946731501894830161498416268959796292650159501292188085882769270821450051195647221679790205963455397660825782725461759677934375684423067946087359345422788342795880459834492202397702466669040498197534480234540469705284931515194164486401647349124009173495856288491093285838164282958695168090301943149476354898364640823027886269791183181275199877090389148252426596500683270926161728137516139026680072172526647324125245387768069082674959903720945008175066025195426612461949958040023941181164585225316469566256432015247201899068607643221130102940934272352206290354653211360928814145770518989624295213566394653202765654662403389236323014461042347522548489330852323311861022368969668174242952466045662773255824716855460361771060739091455650031428884865754758659526123751283635802435660620791152094421247182515036526800930822972178277056441180836502710279011052696689608502108473314507407287174649308076433961557772006541040075665362747392663435460146595818920685873784718749254698971990335975356346148226835991271057787857424938317448727303646468606104758949282694486022348822470432626490783946233974693854185915376936262278459752673009698228046039077968693890727462315736783545969470716817204721103989270328693933223605772585204095885009471708063845711588277502738487789548049412100526644503339735018210713101415117431602345525121124751083346922634149429716069889637972914013890539886298075717433866059392891274846948376363532305167087093807391614582045881018707606978251032426457851613951392962587552112373549862471761328541147614625104830591922762017700044295731634975463887121221945311724178130713935223633096953754764841261587879466275187557661214429498217937489826685900388159499094109413611908777554150188079524902636421837341180962527116212554296906457450757433584642588067551462817551831839149829533594319241703674804980064866876093648738424174564527773972017212002803868953073712807592847121326032335204053515282723040510692808684464714436236421507518402747195982258004047874339729432701545447488278268987833729294832378115728550658344843828177754583237158446025055125849968697434826195836022748874326722742089901908867467882473922946342270462426063686318675396014445981313863379114082654924424442742528952168030426579035991222114554628774987724292268071199414408038707349341639218718587062191583107561583123617480493490096667174046023845009774274121123319975661970616084661733198696676150593297328168809369592229368523464427844380004239526404404824062052116723806995439476092569798687971190298087619257548975035958998919501396964095073666173115224277928574800997592666670704626889902630694457356077919325699798984355586150908660341208789782669914523888826956595232042861876278909087609527392630530430756009976104248849960268328444431350770913734593891283693351311339974706030948838032397900185437351725853108059093011501188876802390853708155660258061949728821388673535871251014240067694991509816883894958737268766740577873780507067514377787557839356394984086416212024849180507677572184753509954148016136009947782865316095684402659730039232780298584621679030977398355710603536475974332478421988656598086555180053279895552846962889682962026195536033752768315719853963467161549178711366583739415834806663798675920960686036386174321936705129074621094115263719027516633708016348938135114375996560964434270434604145097450918197294710283071161442149750935715278788336866407817529340449968573763403523849738224026808830902458676087159301688523298804254575153985826198375011217978943212582234720673287730341474384931721604462580407624860416150791945801411337119470714732361544730054480587241742084761093406738157649338432325293960163095621639189960656043332425227558402027482436100493977288220618669841197864830673510543350470337580515958363935759083822846557014835791521852089163106427442185025006223710017826405129467279566948099983087538609432749375798101278926032377026054067165854730771412628598244342983842954442524470603814191497371562604670357152693155700195633636785217488270029236508350022802974314855728824791954071372373119479151186841276100724453052297955280764962465046142887800179331661856915863694782413113448028630661455232313461034596971080471388237238950779981991718878228773098842670517452308961630085539901669616198732317518449583115599866026898650601333773756009343143688486492726342785894967495942561782324467755527846154123120034373951519378045649016064247480252308424504189842633204958031859260551761876144966794056173334941372857903005724650014717267859024033785963086649177025312678426115636728752498726294993234810653979743724251384432993664742704276005440858301215758309721308860381023971670245043035295861086865787903961197900334679376463576635419356573831493044896043536176598233317059656398059322454133771177378034291491553236716472222675259176344927460604440583836946938226819993508164159969159448485183068967671761606074845988845122492796083694390598592281917948296170523938910033233604948740523694516892060939650291987177704007285324961161174983577084601881519470900512150813523370433704989812716925494249914991213776865738447697021043521313712461083707407460423596853169077125962687943964338493131998983920705208073340826426669213061905284376925204494588878568135462900720485480523716180051001149848682742759980540757467069371067359265234553508005929881039857869145850718075948793691377294402361800576290351888988119307769723894975267734088286461320460920063508885922641939823350171891786190236972016648380635712766068882231177387158350540696030720519858678250276073256777348941703595037631337912888825632636610274497628862776970566625174806662868966247058034207229716275268350917125734758654276952666776996755376561668699487387865949600679921553924972850602571286620942185962384149177914791067725176476923463006741633254651550297628611993598498910810821678911219756879531157233508429194882975626764165720485540490791992560995035694481183741560414003567413310032892602912080073940197794820868062510380668349591687677245886299189007280754552458312888425222571237105964514028972163437169752153105300483198552690163106897498042372723908769522359428293481103444003025984909518632852420379213920846159231324508972572754582429652120564086645181774725145597180283154172666535851184918635551458803248042733840519681410701031761022491042477617304690072730898737545814780736148224023198410299929000124204720754591295517833475009104774882298127976141667687682268279756773377596106945394220130912673342813678612025335738389067484154686999598043553383704961376734979468055744613484571775005040509028661931281655987009826499048664027820365925360034431484821919953492624116671474773953369455871706686752512763596528766964639275976372701740306022317091468014411735345675491309577858408115649826855367987835405126267388064590680030993578041413259054943050179604312522137781055294798929403879514839024729876125747982573191612799928923486157832275003775321843866020232338284732561101949631362135942228909070608609275838519424786138071160736323572861650733331881806770017637435557154773408752384159140316283472143702811934530059302775540686516740008081482051438320519235159855151494417222672275875869039371755062484468734163015829771782297317796080400297233254566431474535001840820654049468637941779828461134248349658945168903805517996856281497763268212777296012706402132411248917835687099238250369853316379614604250569952462813313244823053728821053372049272965855250071722914799776006929885278471148447859581669971558391269260450794431846687729433254279859193094488006421817781421644879831925456701087068381736940241073469195865491657195006929879504078815042407160482474958086642739891770100167383259563245845360053824626561647459782713000021649567341322146646508425380167399902591150026937774043063782444742141392826522029253027398902762164340241326957912006332450130019152916741636868435812287762840039606384845732587495732443096036199434323654324061282664508638520743556258233257619098232882003893892722045094612733922619282904447571783589240733865554815510389995021731719438326295964844835869908087470436532226924276620885649290924321365448089119951128698901013640887879078816306740172648129231640515185797503726222606816751906612982102205136336800579067412974227443628164349306104691177234124636525164098786122037452459154935381403354500048100394657129971566905241576633834312731204729801411472315714525966173579864844510425061871566034683458226204907887104062718354896782507062936232567118031140366531765048872941843854668078730480550694047334546058174317427506699566606512052438197597065754587400746399962104543113562698607015405696120824944737887892666870431384376145227596825642834847907792940171552416941358732329009858500109024318581330510629908392014694011683133521693176836763848181448710890220343250162477209406734058500104470742727394798621856519488017802227830688077229097917998929234522054888050455321799545322137391546485365812971463688037899400762475419039403745095028064532158362323889227358823010165892921488684055282799057904691225984878608799370834551388492055242531150335868867019573173207268416294207833806654378866796312945460732680217457719757760701292217310902903344359590059247313207411778805357524133822237120539735550849594318144699893395224064833364002023516571138479943452055250944495096428215072497250447351657881484992306995752209051475605790897826614583139465462639540042354413925640547022381002588209401746312928706988098204671251451132881528053769005495403793714309400431209484452286924091025346469668310294842636928769219563663059259700421574361196574085380565433620596434069950747975016816099201871994079946622631410503034873210342585984630526822572899451918551691104827082491789999491634799085892553885647303513076770784187362435865882613821779301162427193024239535343955864204768492493798587693838348622492163446644308455336590978248910076877960997498328818458010877711813332816339091434571721409464989545695320103132768350146469802655291903689683809377769381416699536044426123796035154587605233162306553772324791867582599164781906307039773480991086024356567999661065626072340826927045096605337440109510302885859792716786541034212963748994061733430378900567574348734625681590866790487296854714091401671558070619989725334997445659225980568461559765190375321154225700288132655654146187157286074946878957825223296574833955541850369387522645932480668182606001037238240712773876416347982329843625133542599552253012033009743172703872274316116069109174824225696701287269096733244107792451556523094291086976775833093225170601548656411699132706254450360905378964471466778490711695806202582713626408862153017984207499788363931132183348937437621453946812384467418993550127519335197003537022958355760910239432951054970381916786465454350971188223402652947873108004566705807465649147864051525005886801968381199893452761134321009499707310092022711286620354591720800783685486996592975124049709526182951677747609241204942927608329940004510725821020447551100502946489565228130938282710010522293096376926317650111298435345152406461973678848904784958136990108365738353133122782355356418368155957884536905996171566937630134091011815085114194060221248239252949812454588309661261991394737018152007966500998297280909974991572962270764708970037869683410902310026441993136417437096934193813938136533983868090790089783509712947167588554770259504439209362726306065711333171335349750994675453371889532243548991710926870390452851983046950586526794867743934907960771257077459480808884358869003307399584737876665334807032811094560882183936087763806995046507771091158221326192215896381775746801027671968002878143505628319591552598780946633698117862025538665765403736757535459145439712470856118175962563018734669170247137073763999742962662933550327402118350230174259786898759135294411260929642299763012084961151367085220364213423038371181576997616845224191072894108157965055815870941528240198325238312206956537922506781756550939912113852634737668439932224892198484742589509704807162234099008192723282928674126017232863013817860751452902213424327887688173119596746643088274102607121047247631427277394161973662557451436267027393657783219533131416640625811969357292139143651569314866056865929075889351710865455782495988043565093348429564403764086089144805715594758925026782890454896299281461325039615532521785635560368467048177380166900898209556477987069145558425148084951526216821601671848704025652213320665894174541911191912526870184922225160757088504351188675524725542935873528903963779712982687405027740655957913079432607732112712698527572681276553510406078921292803984643487820080316172467798855754663615881309663086332451439299687480630117538703972889722864546357550977306798135307491819819086587990326724864472549660776598512619239785273426460033003907806117163067848030587269989051398436004093008424236055688170850273398043037098251195082322630452540085375219925447096878795790143379160739188274406582364461590511183569931868579361549969798077012359627864327698198271650722584316663302223621397087990357239218194016014432326364326052553693312580043795137043751101431211034456859434721841903361257013988407381923623227798031483567987659032625720507699388278135590261824856204476089546016861924054826040808662670641638455309065263129357938302878536772232099159409050395804690896832402650708304950395983677603146758424800880613907293980908007679695283207794919791560016784091410866897241612736660712410869088234475478581479732256934860339265011514566493480480897064836417144245274311052978913423323097954703604557265633008966360951614849537052240527703958634995449584462365611069748967489489148655996942331987276626644099354409438225876264223377630349250849320074846470833767258891982613431989464263227178594448219579554915789196026328374049447116364440034451473476873047561123439924202774974478130910171468257433107969826853138887159896034477328742073305219085084163156879384550239330854415264331755558595008395425987765381345740689746205034727833643648053208488772587733475786210466223294101276607810909829564839468918048371054615545487795321244385321302674435994586946004739011917595653075750793906625941808954507920814713088222963096709461148695500949659268421310433464861024293980286866847638416165441334430716000749974566756366329329570362962851997605359990005478162763628589407180752170374231915695740771642014624574190818991312451705346738163665258885439370658521851187958753224820298398314121362886443412835212744085801631079061914555812427898562930047788206744477396172310751417662894665754006597695504380776949061858018677829651355176032244829537892874947650356100603727158263469509632278593507077670030471706524578481358513770626393905533817658875764996441541843133514752960260081824263565900435060885588243663304959962318993577833830582084178069072055372739161799674245164592662453095658926444357192185752954166969696361362492709208197873864912565340548560056456199305724364497392785292588686504148237107984825784051778015427027676302240449436371984274693975233527461843190864440165822230740796095093961161541136893276929262930173346045931022269012773285161835574877351229800258193934727440438842968612299647838379502481087742760037565867383460711939841594222576525267556802996784960489323816801821264510044575077629198878898296340805408138824342934383435418602546949726482482249107143951659427227445502156203426237324341081118445363890515224859379156939920788482855849137138526101786194659507753034514646953870181519779334049103411065240963254412106602872638617953169137037472101893990512152317926774209449640970611503162319681536262490116113210834120284515205805721311125712230088461436851037982850409153755061661722750380741949545000408725288342241898013283119322092511517866072911823728501629295099506008269948577507156256076298556971272990152077235954861597946204358413908285763887433157903330206026765759262894279423910184199293464232533226330549766887091991476561899538822719543655608556895393007967537602437121806460129296542332116670626444422141473570544336248221169928437481488478217315890972616621059897021623814738295376022777590323135247503509080175503431985843723884594099285155506912525563958605299009021868172977167432212388206173616179311782832653498070103471644932296655276131218785798784774205893348621539196296564071582058814718733849680532762139866341704994028222979010922725193269280249903634793763264746121394879559401938338416100805595701658961136333534013715853995450241279880657225460388669984049964903198239331473147754681673613158196838870819510349609966880915534879480870896041504439872399438610765485513961629710658767598156611669994799770936072871185496268009395900625863078836686920241731511926930492393348801297201446645639439371314997695723016589441766428425436260968315750480971352107306809692785160161479051717625213344461835444969319524516634178548063968729704268262999498129059734776008330377583476492516901856336016573733052248110771297603429717274095221208654530459877676836344842250274233426618527793526157985158185660569986003765718733976917820073646133305878992443802360517856715271791448545904705708750893625965795576134949164950797023708658877458032433365423621111386411972522642209141518567425830315045733641002585713472401877048499300293547886555257188767115210076051031073570685396327221108376786708054496754165129090786351283181299466256211494330215376705602389574493618368593683633726033320185673924259786812322057209589651316754721862960205523382603612813375998946740201776993400447976385572982325224191335918973314452184610282113415685546437070303725255488626775892695940925190514477811142779512959902817746704097997149871296581430854790799995575892839270334160910108958091525034329555929821933337565861590999780276787082322194708838717000344251956129965573427220524165283497268243807258744764609803981491097291521264596139097088139377559601522518073356982693622761092070775324931824110259325000632251161873814990448342365235854510173321842539802010518251335031679192073350147988407662588769454230126458516668513446814715341260908282768765197953349907109418758710572806202402679672789366053282596916640172542086503114732165809700153017589140181215342221375784676136505314969289925897547084937075184664102767465837147514908609189084765149608796374589614471506830074178923662822964138628637236082551000931072745366106419502793734201974825154873518666325191310348872265853547404383568317394900010665014709594832406326585982891104887980869062905893398725569822225487821673391079720524067399459360403220223132672843566084840465235589058574967544523165746789193118641312749978763828079245580059932197649554589152581755507418924471859751242877335106056372125143905144748053504683316951650171656496208035014781257932871683684886351862146020278950450972016437713325003400036192231155730110590188892099138932055750872821853049171729621279394901142702519268892419129159827110884215738107746604933137588610905762924017719607635234495530375927402697358076023940114188998184002436980449632220414598351388729258391381610119122950483879378851010596586719514334088222425293791244690319313386214367469349474682591852638255426988223583281028419647490061262429374753611087486942320651205369027528050386174623250450537071168822612705627612072764722576091305536114197756031010286960450584238386213825803886440456141677343209491312996637273142074599116051173137237184521732796091896253803560204319086758451085622002993994887328174358512274141139317735609425789123573961190047058966795274238036014404064244114790418103941518964184019768161360587867842403936446326380659152107259930739530276487798247430977453195315391288853732077361997980136869134043165347425648739714967148149871613810286481534751589952008056873105605939037331175838132481567791184109854187397893569095543365747331077210389278752674360372646987041708397629262753188519176184476513583486268068194055144170966357846717662022951419894473510606185616806243255765649994330363216434757739591637126626920486705279106331522123539569863581196269330325273789397975806185883534301044496504483834657645662882560739625415907254073025388357757890846904250018116960687461526767844169049900538729235930178898933845320961085283905123968306472496313580243188650336878140863402030641913038161997845546040267267116863377539265735830895928485212985706423703800785125632100496810701736637072268782386301989782037458584588956791074302371326289550355105323155954385823802102946582157740744622462753636541527026774583045968085498563917885654362062085383621199853962140298685137171326463045291962210112023271802891907977718145450629788017649848384500503728724310972495665064205960864752148139826781050436667249174769403722682893351326388500137116918107541860365090904543595272288454267701746044984153772938459881601824289550871235460453415335328155473549072244733530918312774055315890321058756499238375210597556053019600959876901213422775206928439600629804446935888906366897095469054163284191695459145670629412068387591609507190377929913193153987493795389990602860276056902950354348501568112527222152444391542584901552797002913090143066965769821222417638511645222302070833034778507685246880109147709787119782119523937519622696119337643590842296846738009006185266574057594101014555839252911293399010098476678978586366936732286991733772345863851475329334956280950831466851343045657946161852080396335867645481911224743182313393000076823191075427598509031193550988794668078331488146791511561128166561914567506923603520396117796476859550149528836089343763474848544903389430383368227910724846421059941026300748195680464940754867391058543264930450385009797471557393128563795977475520183524358989012371629503078994247073795615638633737458654079909352357157938406166813474513094596692340346563539611900176112284130471612740352078291057546773675869739851507839859252355252225995430523941224810509531067453838929656467045476495752774644278762018886066508925457955243762823493559769295164586795069651097740251685440112391627233980238592578230068905886502439492063727013012986461491674674309304743250396432603174825894875982537582777550612594955769254653468317636846008944315314293081043315643548530444282399652471211515910588841403106468132136730810156020342393852515395205936064845540032092055867892307633534563326978281503242790217457077613536147925041557137125745028922569951996046576933560350620200837130344752032664965143374142437781275993657928964065107369030262394384906010504399174111889121058978816744616207981360096439921452097918733958729952444452098136739276951656637544019315429581635123798869497342951170245842305862633335421625245627230933937555472747280322348596100628987684945263033570428869006192615081542540348803053935064547024259822742173617153803117624149929759223644690368277159826363713738673579259302351291997315764340126212058189304132344611177559823198107705806888286360759858062486526882819669583391153318411742814613812549146820872820880884752768095159618071832432737243656911595329501159646352876982216190560053868187588623045360662553511851064723789782576241527609392312967477112956915060054805582890263548884802092741826804853255734445132586308554417896579051514630194942634472719569085780365341408072319713347369839482872376233012454217263043901699400049706285701828214126861425324031297156458928221910428892060216308528682942337922355163391694765650632646129665643718179478994417523715494376519097345864491539316553113609572505490579990943710771376801860953625057611293535579060268656731663257270158432840940229236497992203364818672800857070251751468528929154090413784526298810830088861611075093353826903005901671774077270772273337720032731013936971872171469094087552393802946896756716623727673382864674952703396905118265621056374257617340316353886994294856084596282546262777294903951322300107735198451715081959172094996003413992313733149963675043557068304099810779824924467239079644038081220372796021642068790083393883666278331348497882004876656433611458181319619773643604785872182580760315793543804821728418005160453954143964822713833978885181965328234263472848728246399315891929762808793623075621656489282640737920164561455964372616481717380164377806561026014717964942608678907001800221684892051979379200313333126399964641178061475609153987996464902970491481105899471815332930222545218951020259327657937964101924638204196176735626490074516244233878075245030133102034134525188214306289489985702431713776846695383477092985102808450024444827375313645639697815242511945907691761370990755092921384266685607524913969623433813689180078874365093023484924803283951870601120542227943369196432718426561667010608591392025792044838590141362821209850231580895270531238073527899064195155397461886069036013740605379006100267380867196211705259947293932217867198799443901693818890717415211801286467501143372403168200669748164449611261054147904719358050684907528638098082805627286254654968566749725384767294076129997147552565551049731773524578746022673540744210461942890685090370974280365952752997815457902591217765421756858849264078515936759078591408167643127910930591797048647050778921673483603884499054384698993489294941329552200469200166253441771888586434144309868800376826564824109878567334570605027635302984771384973882181429030475660885628110162785692077831863729580140047200507935138486586697238749855430553260067807293827179403914885586548360074594908900813596694703111216857073501968938995439285684274439610036521799796406367498400639775976235914304680840147671903617116393961533501425515546781094253405081804753394324830575535165034386788800003864134575844330715733743506145102051247099501078039521389324898473632306079831162685688989404530233700746307357258829785517214999091509972607467417898036248258526017818995836874130161517798045063415361345184162449281598682014211313915325315868029038347656099299053062108237509625618435376659423216920257004906546495004347839860494419309053171844462088035032569172572279430235828829547820896379894080251275844856733897340996151088293922501267057722890293697208373835916452121830874616942974207267892745972414664129462427481405195508126508964996879850574945831688197824418906825176849575122656911674388839501006029285308990248859069379654748249706779021765051542148141979363718758247416597325852723060682388659326415252936588448163791659452868770518073230118164063796214740409966212162212535801881909487321028190238320399587627523258195376151253777551476323784683856114501100392884207272651264616856273277338236635345196249078167809942153989314516572793235592423809886702806487474279445736445495791658531665832998453120761851971192854080385584504646590456419580746932506670865309438544373325879287278962021008478900590111764490571162320592058331367386809670797509759204263363361107789366310741414140150275516396443534564500455621309451090941699531962193102839749999016303102175606678941321759854121891279845492185115782934323256654757042305038286835546271664561877223369813128410545058005792934649048020740228894891081756255307808637443135874034074130576530811414860601001507791021405411505912294170689275756025912388475987062173384229029635595779155159583667360440359104917504155391124484587576271613113807642800463575195771941546657861167330532745401699965863993152724318729336236358588905852329384229837398072151734020177977854283204716287066992318381077088500405415382672145418106839639117493269293308875696576742246037731792389959548579896596707433446871846404556025031180833565455590456797554858752858287348446716367788037799344619839478712478358193284600366903208321274572904896691571502599191318726778781382226026882945406414318267601997338956113170740172067787248702437429698563616246559328592658508324784082615697947907759242064102030789190112722602945091909522715807613918254826139971301225013218448257195536465436371894798826695835906935823333979598324111453164258737544872441945731853224365517448418524330147515030525435031473873846049651061072787908095166411475547490296952544186345911979063817195605288317474426925377937653500986231790746932895134931239614894854260273083123362016717571670983444665649881222187203652915892000470323080505971499771807489182247970939942310977507462402099636051268316940619043118024778941715433859398101716296179060420046095378285185049625459942893580574160838817933008964229502191757468390171013459893717159918188498453661129605077973254658938955582032135557793038281210660342551191344091755790879705191910022111867798034779029322480219981465622078790040780389770755177474619718602809738179984493268834950574039984540662172654496888555832619024057185736827026896484088505000130754248944302001754854515763672989459125603260323682651940295826280533541129681442005848007780835992924708948836009275935717794486419908700673738486827447242511384368727126364723057785186147111782377531934869328620964695082454125229527174276048553528627053599591278421954716509550338504997216298253682833102685472028312306821858255020627617958315841046550405385233398373059176179839200996356920375326684569534374881568547678333489992517065513636133885511644577464719682448796145302670862914917811771078513938245420049399438668213426630343379246812563484260379804913539460296974987057088035091469486676186449661798502378163430932203080211112374988820738391808476624103952570173693472150267762465876329861791470380718569417219276401860248357527941757410439412908608687856864862459976456954023273118519941624657959813802419656963056422748955340393938426074626719608701983526130239317078941765075646150958192525289545695656856888555979382634198543229135429602256774054095536728188396714798531673163396730075213181558068112980492618963283759686068853619951050839107122777446264210978054485361910247557443540708457920139840062945566486956828881864974660594657521215900275982382023395189693109199434336644208611479222145792058828649787746395550759921957514842315552666118488320886709783696857384825404160596992078715318396738037032908585661081068850663236652262082580003035016909532156881567869149318452959458501017900219676323545061573773191269216571550910555346917075399393372857643971179715825807629932861365133728635609461965477177206942503446074069196225493109851633092784531205987759719173824241137493862333209277673350436453294733049955812155390393672801363230357130466019402729275746938789638317192312825079068411381635528705750783620287087544096286750623234951265450868490042071689541513586472892333510274607315940142397423381778859451243183669842827028945982850753865203070164423907255331509735859350671993324604782861438800768508534436740627575862510028116898404520049726037605845245186160259505011641823115986617152913621673358220527511459048105886030346518569766111109231275305808498050778148445431838522553870104984616669859504665038696288047942006821595965089227701200238742530404401050678060924251521866849320763454650871257685711134798062113978878699725299057936547607366413287390575655158475454821885834484349663158577452148062609309142918058009729591949376265735391434234865044826967494218617476877329386460076641172677456095645314245043520062598672266318933487736100758286144779212307703176688355327232377631757968046406191509705632763695975519064789398975550513321003887419896757102688155171458865666660162771856969524260296350835804485503274209454345472748242468568479668181691203515027325756579276308254995212290349556349465041268304752110008489649898478422441612148741130132876991198532709706185333699526118953274554168005953941789361455340904246491409041811889358374433666836293965040610836467914366291995402718448598466349314702482388871487494016568890884987893750278023431606509830055594869183621676449215033975314988336907342296590989949052765279510932984865310599861386519977016087468008796637301030401005200253342270725926832816754993828767688306302877261704798874791674528729679151859469428173791527459062359103835564772936536918561181927079751684494557902158920131418542819998123870570841163447336810427334380263213487222124115420523764742415162279698661416761009603111063629591867539482668740859051689419521178932433184287280551878550376759555709401268614715325679344508392824732722598205019819036734163272019984600000566879430782159558158760904602069349917377860557784990272273195268199645316497326577546673316936021254688873374474452288723197105959483478861887441471062659685560873550127656328991298266851253341700178250579048118616918621823494714700512324945982237625213934998843775765196678096965860597015931940787102866085004834610831086554332459608162747967669199102790340365478683669279064988695307936831082984277224922440381129849250556261566864179856007323797263968867632548177201874437236938335825505891052712070214037004148268820376843301332182978126504798157626778904229080929485567079995464896057688250342414154785422865961260353911692957252926637607124172009617308837151912134196227355526755214948186178562369372931686577225883519019851402139301559509603881050301602988912393753779078454018057114755337832851912539802899432518199141631195034845378064066751308326524460378699167428898419939686756949643102924750280951439069925149938977386216975464040676780303015850862552444691172523380173015475573357278366143465662893316947286066215140696185021501185547271358616677780498755052057361129867839172374422711960699135531581707616937082195172507470262598811482263603740702031713853841467831818471844915760780332523156947907798368015578906696223570334780158378277070839186139565357283450146606462199519306370672859312759351041120094592309014956810623956375611314502261774481121263894320755193636973524383811060991867148851463867374622589693339681076619875268609962562375457475233935610871223357287421523067974139645679955157584575378546715535740268151640977255264875420920023529262189689644054590095569848912818562565245299082824450637546911109097720545680539359557894229928626742372463620754076007149350672703598919097408239204296537969718567368484482090828113354633961005905614905139589978054601230735673486574157347317562696917313144312384932093460076345891586151928016970697336677486333403954392523227030666697906656339570162679911471707276180913150519305281768530041556761494871982463991632776900711286100421157080054920139550763096140523655599851139959359800314188064506866220765175684734970095962714054931133349280603250727718919324682917957088593254366961935818614270652836342278686495227620653053089669702421693362445994270249128140901788196903288014178826141138431276438361227127135341256096176778105362616592398794529700154195192963484886120875679276893939649078265610094390759487711628047847168596273967867834807685292796502470731969062854526784747574823353087507505137561007532071402390467898607125747901114132494103394796316962356574894972821801045399642827974204088622770535133735303133069270648331661702527328649622996697971042274536170404422211646283430849855232996678330281459812423924336221550090848847842733568331904000803835331048808605788663941441359761225718458382104189862487390337756034111796617099925221664556380905803648628862702539628400668971166475457934135182553321513544188764074638483086646320495650491408311424354766079645372021621107515175047085120274321233660230514907413884105459136383841851967833320345588340409590721866156782198889301171098804564682421595229465850057089427603674599183670548760118354791421086217596527611025332928603544596623019111758163534729548520261482205788902194955185117094808725187127225677498127755825212360397483588300400324138146789382430293542040911746156743673646527725486985532271962833437475104939024679254039064208293326794133093046555540528616670836389115792413635178248792072685364065626804684458197098560980109780363729769946673897738148408106886542462076309469393826065899678431840308616726397532209138843073448709405803030304368885612984462574737592684988568751095862296791418901677209348922367441406581417423011975437415180777731741351670865675912508297494020170323449471696195345677523764251812035225785539111306702297302271421663935140126799639224137085470337403708056995884164232431489432195378657132806561076126703729764045730460057764464435523510808335048961927084171353553571179408329569687468107530439413360545350022554991075800277895980457864061026129893475939072229653405426008010169650661419213315195324059335258866866844503199601265215143236233296515498158914604841027348101454979223254742159834415186208920014424644152948460132700980152344210666982832402338122011888363396696681773076844105939010800935852475601294384732838306774121956302927196836827447828719309334282699094240498461701968416182573324181842549043149156298030023939355130449246244846915340723255346009075628354054133768177870176329442428763957597955976743447872643857175860231618936538366622163911646089994645333976805055910045171821874024304455717019269016041447274251397242486586021783010621234978223839542122586478171365688347877507339214312190323758097074331802665161982818669733431168377134001635322961076036567405323400062640660886068943535567183997336346248173024408210073882775352463519967647943938191771054083514223227468244273754199871391188600448403406951271545363549560820026041786538462042622994524590171938678158232628055847161592543938568820472331003695933943762015189101326597143682461120348988202332757631608096509131359512039816184966624992337626582091930460519298599134614792954773744379629031217062053804502695015005002245851943957264027735371599857064511201027430962740273436205801609281033883358860004411941554233402210492853052537947164554075752094495108770639631786305238808583681279032764243779885137184353220261230194833880383869215937683992081145299518797638610961326838724375646450089240918023327740044853703088569767046944321109790746418569734311418805247645952810311083194683114281692342527925632969641068048183325867022844549112608160640335986844177112007587331336054427965820559325238961978091147243569766768352744793763465219199661566369312398109340832779769130127693561231170388886067985465961845319365483732674620542366421744164536734628424203300927986024898257242187949093258021318830791524275279498161388521277939092858196617267411630094596659714022513867538920404605538007975609829527877229219489908201568805406915797710198382831461427236022679565811508909330855718712980807019699123463863561758483265126352325816256309421239520286861825321302969958125885730221110808946164130534561516213556013067470845940971520156483213788558145616929412341854039159537636679229700817427922249414318371189541710048681568065767494568981869907120475768710145078209776487012920879655566851364314018084339767177368739022102892757447880012063406791628954160419285592600464424442081763063705697222777467977687392146057530482126226692385190894957617856811442851545987329532101346027260805360406655510734962047993349085420411992929971972905953771077819393557224604641848019120624688372461744618175991695230121361235397926145099756218171832974402634402952602787236647212032501525951619029831459342880523375441402336844657432042288660580405758936815550275803797616915425979124680880754310281175889338409330049685256670020334311226939414570052324006391147261898165584145984914627714350826249150957330430686077273261924092340846395486408210706600373205819183773571504214395099317995470738217048756862804063170376748142390593708386909605966232507259165063576324527888438589630618042158481428798006095213085774913674003258351864559770778613428474438791570585061804595905982429708183617255963798984330644104833786414772907468036043076901124568690356644332966480032821190421931890134406443182940154479783431118218034165268082659224745775211799034538404444528852826161303065278570653484306494231554461122412875432929972058606269616858310762321538343302410044554484862779227230546696768987551827285026613814908710022464337644678188768001533253888281684745430795042493719110321217708003586048840268203092034765868760600631506086113703218317627887472529806971397782891982027906644501391372431629283980829709576424269720475864264775317781503309948204656562428069382212146562436896427574121969074323982308987979585903011014945864019900281968753398156764124430503855562935036102808822612624588463731662323072841912671078549193747549929111203989485054140247913336641704936164692392133344736792965464949623555454920510901713248994991686280031669519893099758188543313038937072458538206499366500636120835641265190003178835677156657303435154367193298066015920324106942615502752597216568514272448603819591355897253813668986997467086375629535473905385190798232958722054164834027211824192370632606955149789614145199393668562953683548132283308100356429234802484686410242443350194655670811852591665031453454296791312168394253615583992437732007799948187387957446056650503005874339271676739356753857451797615964962203244062520398870960068442368325476549364688818849168467750944835986890710405302101762064510558131321753245414058104876439784671885085989613886344764325941232548684842251167948665006739765294008165927393282534842796602373703067488862909314828062994049673268206550434603532912612617114631538690207670239920829041035946719883035429409975020394342119255408623086059715102277065814597750258979819176652653729810284969398312663706817134868046034170906442392668165846995891026988519372719416315784568390425677451797811598117245205837793565208284991185921418128621408489737334661480226810140761240675530234969923629639555231690783553016168253551394814933844417977517802520024411581038537599514562383887045979494779845542907493804906798707805637152254240255779305996805645602455152438308697029840829898749570491095109393503686566067148098123069982514875840522377461812865454078934620294673333763136409751773294007651344580694979136935825371403453429971521945377210354215348768952520716913662615852225359424048768745837092909611747893533258889687842092728145944822721449248358192860993247441510354630726658563747699708644553662511794657688664927373630935273669402403110814958217912359792803377540329726333155181869939876238260319980241494378382181354188653909427789925056711341894834542059512546471074838214698641231673661124249505356869959261198341416997659777232585964484035155991792353636251115824447340162603944705580237207247049476287896585877219409306992977440307289292379824644574864942799675664544908624933550566729109635472241222837079078415746516611249073841723341430400220776514876301569750009786354228512677147491346685347879326012285526830330253473502646788608355574151864803175471903583911349739965778116306961827482083852781973914399424688913299973221113920090332500626193602706654626727221604253841677278358651806885752690465053208592215452711103671710939262535126661129278068252768833932784708359642891742561786399636483534809531436406057600138238300501468451163201598251163714445095326855066028566716135106693838059672358502956733629621300182072845019130608843556892298929455965223343767740079773946063258557637258100431789635959811934841084968417585451923808355521645272195822540543258641481965649311475303523315406088204810513929968474702803402403614209374484877950308835973061762124082149783263061178998215957107870411211208310724764952706311863470879580300953221183076491719959974129521645821989312951870122558716260614474085619518887567758139426275536198048217616943527109410259436925246635145670680694245372650465545892178749709724348017074765423848742094117116267824638275802476804149475325268507342527896006555974797622439466805393679279283832515336191190343175651153325434910350351535791426815744037398554017791173919267667489492335299194411128684262310570391722482938848769231569771018604409623425297307297843909953612031210452735084432761132861444492567494125096234791190222888631895463513063793191402451184390394539423928464382686931334105106707890480758673158531384140738541898546452687151362028643639071494435392385290463672635620420018291738808202268392814805935762307012960751572693873084769345140206125974403244795507875677418932246637783602390597497476202439187490708345649156085176557221959736474981107725512420107585467746118727745026262123998227173107377814294889141070456136437583776354422929010713879342318623148705399196438375059070428628107162779959371136458067503773217257945431680607573962942654531218571683611351201403900299901334998842606399283273122071477554922364308335327338080941474946095889020017345277065135725649023489881130221622250727481854726502264268586560012863958383722119127238942034962587548996639034556211795179520028227230883879983486371010631625581015571491091270972850841835451425941066172164386048993783069390614966519500985007083467322487221348424410201049321190697326714893962079825231445297660005762100135640960866426616428113524119421386873694704782108187759624629406567308275437340629883688357996886967086036784534417830656557550097295553977250489447535090773612493645904631054562481382164801224123304282406813427181563172012590464581903755209735221282550337414627770205213775714557789663237554099263737897977086542872182829022625452400676122672294756743149030790109837719233963958846730177527749707306379922217047500410844892039091326324489760905589049704996871066291705705613452713040011786326652172738331328575889743047882795377011150060271984052475075138582801479410721523223599754326090231937630014696425683653704171835947043655453954607762588601068369649232974357893340850547551078446815049764418547030885181253071616669146440763474638047304301739579664781521174902322622087683523493658819605329823765505123841291969554121955336066894304461823037111947427149190510698276981637333941702772830251925770498596098816500449254301754387054005638436315488447499528908294699420266294457630685236783932897190891542875066712951216967692060886283241744553765848388385043781705044545063392039561216855437719679410276488057894298131449146015608698821043751524760287817827505254145383481282869878750898482363944949774070555963144869436507058089078025994873414058435025584600955059805136034882839380597273232168559232319113873483450122935332417529170838701219632433274877336840465768963313746834239400581110802676492678639357500295828081092969923013846319149306320194435011216138945145533396819956388378771296259608161058092844154873263002432842322081657718390896647720317906997740922846153168307157223135213368751666004081969817998114711903601704696964001311987161032043723537749289005819260311341408281471208429090819744556176181452553596639854315733342206073445591751824307290376341734442599457843807606820217670146074725870301030815567317418162033667465634034649816381727928767928886989511356522659353224334921310638742598364387456478786852659876124675535368727935483990061199878588720675765900570631942164678281372792407663772992158517832083094850274486113383539308843185546096766224400674225102351169246276398831282666050539442973918152874815186743772945839532527636773932808047369885213503253406210401657092704004036195545163560543010604260586645402351238441640360494990731301488346260674887744525625989642053885790672349675678485380070225616897059361606299179134786839964335680524919524899228588667447326484063864372332490766347321828818548300359613576740461105957765845028657350341177941023788941795507719736062809874424649304655866511121261334413882134278928769422206736897544190674657944254864705366571294008148242801860095497579506988292881894752394905063806906574719406115911745964513566866310444082790817565876678194935444096502923105572280950045859974994332441666533350998873181867588248180767310682020635139116350276511228840195278106577979114400425890926140217475481487766696597260820648565753769482018387670887761573429916722999279126035987878032102915467156407221173450774546960463004527492119808059444399872492486155786293267058906310927643408898678921140950980081192671505356664591067624658274815893924541020129822448057294791614038581804844659363587915443171548888009100958997513021026043603904029707141064519590199535219045622572209128079827258166739673033603931120021870510654655682166159575970309458351249215124825845646006256493622143064629564823596815195912378757693560032999064498237286166700118378428727745072773434907805736070327664797729991967730234104564623807158396027438968506854142707160269728037061600477362763486939719713430192075872918569894657144600499106377241993409818005276800516553447045188997596132052812401865623390448700872171586827507362190067353985432771255327170901410782132713614645122721095264842661136736442777452090957460476635780901895421110339109186826609708646995835947470192634442868877518738987973921239831998656393201928719577996931713024514914946084698234624472012481764672337197808606207858770859081442006049296595618804515582916305293699667512268070605230249630591815656201008785977908399276989991730392678492248230581086983562051523874948979473253238033092977248067716593944371476692196934376776791788090186060764898906302159573513928882699344057199082667833100725587665857348177242428979735137774398001404767946725653294536626141594396469656861419636354940254895998014605519192988620114850605341516672843607321612145270127885432157583920218517800228046228348135114145535931976190684729607950178383510424140182925723603878113182762380059438997444514343261401113338391808018235277001520538073238320889333685560378281699568960427102977701103814608249872943993915850056960408066954047428538389659869845470198112272143666523438250047646046402288997089186770544671507440769414851554618681486116843367366819444360228330628599986744854575770626872418475551967782479114120982147580214181937441820246870718866574608495687075794591679578120006816797215382370499164063319445783026023330343230478185426357774107470935459849141006064996256103443981837541294102481864389087535870953647021194455106110878739360500262005245641545802998406373710533766284411096072626188730045308542691985051348000536716996977528074385464813253129829828312256815963961308147937824174478426382958463462106397355369890056389375298567178881066018771026992253250446818218254808279229542438226247875344370385641002055506525957005444555999347741359783300809810012731035537665382277082311006088271559797972553016347540858340043499244044878588593055173945129217392161680616367603563573590776748226935833430463568695616340011912774908224552499254308065790784538871803349966493043813596831012466645375211056199275730093601754187523547957102940835672466973961550754604785412807996879948769319120382656587065396642841209546689990572552135137428468776968779824443399442735997847554722119441889061914491030344764456226899026512503839106421318603269497914395951469873922111723565035520793259539539877564453269796560477038674648105608762579748181052653692988510330905820766622972230249102013149669976115110265851478892914527769475896940125384166773149042625836530218607916561583337143474336380521731502222155337918002165833703719190859760996420644875434209231545407890314129065413123246736552769335227005222993546857757108444524837547702660116773478945057183549606284296716540729440817335598953042616751997744040430004292206104238467667217340057393814485559464544001835857248961746933740752881079929241731840760721472691292544782969821426198557662246466780685251204161506615422689803792763359488132352289256441227538102388873192921187302166992321214215504994796240748793945444617497497442105608759752178060850560386683767494206314229344792709074112012235261057367612605527430988885345866501977453407355947621560349815883661759079679499080852819776370119089904786198272701743125103234082331278276433366789378949092948595602204954341941101108791864955064760295224983160460902740618349614821612922472107845236425787963475336297220655845331505863612087167874906474925821843727202927075307952686330237443246925816191655320310197885288135994701159450261665397826383098239922625700031830248059383074644315064663374451225612604599417628821073939198016362407529985823574303845144040604653558253318367974587687132602642686250513343303958842595441280164761236008574914686853555884444783858252578699139058512486372566940194768227876104042459558973624290526796284233671528609313484632229391219658483927751537222653488940771156723521503859463959220262427284271746563183673140237144245121494586598233230018137940331111873253958069307006402790571288787671107727167461754669962878878933320836539284140536317159807295603422909947736183625159121918092204871017804263153642865984164072112523682426788053293174323640552684654593125180846367016150655464760848360722647657020886861362855408033744095226280027874346853776480883481855119987105675995206509966731637978541984495985744133360319216635289533935566442014181363000094720546218703842980390290350600004480663123550887688771295270209952581616374899365683722526235726830536254033817267906875696621268257603914791410004821500761904927656286751687460948013180628590619180729450658889199462725585524226112946338037349308319386684906142090236945007271868750125518333670604038804640459520635565055871725442022117580661631871595755132417556133887916887557263056323739673912469685202596794320257784817253943524453492564060723968161359502032602064155469359194402704875228411488718905584662541601068172352538913137755303392002484816667728140053100858663347322609328439413621184803294461136700694434313526292284350817102723538757789674810177250065838174676921927343771221048641748545154780579595878883957452695488631785854207104168640469219361345913832191725802311048289636148074198917031212202381806431563764247381564951675342370821494822586434191160484091430903588709044640478514549664100745877054769207709782751961397431583614506908553209819112199772256784790864506968394615685383514302769588758612243757210779712982648065817009652507646243523721113434732591576058290210480100804570802654188435771190942384411365762661382911981326197961215884762656358257330295018828717256885218437566735069348998677628233473702731141265567226711259159792353800631704322049041037728066510177963763130958237901092851506129041968173040392255695921106486852088246255210714310708690154157893422991566266112380297453962457008016094005933960980659400492958993779015400858305137485840062181147324045482709199156762479023976644294282558890448582091770198235938888678566843907947831783877187587042752287884094971868001876894823209448642410703290817344312964297742350316486024313601849111800287301879605102709551221728343170864406540614712988551546678261927866385357034688785473967804402439510288126173020460726622094064536846763395564270386728881779475087622576998646963855655662064734026123900165344923648872725826082189616222697907880800166246445706074844558865782669018213536170555895551581634587897330350595608689430923480958839501526155331138930610731972562576463825940867612825875136675592538644599462069323175251787416387882859615830724136877093094872374799977562689068648707505031427191513991943191812901004904142954976213361323679915014357441125635882430511818319636886989366766685622433798781196351629799347333641608871107489816666738440639420419161178235256053303733211898699792959482633282659798916027814648059565595540254155617816961204143413828742098103174703713568424745224674300122901713906593651824984305832376363558815650283342082975225025612051582571300933207840408708402514228577574992020432888539796385900079713149103559350671802341723308743023180660535965988469043238004919971578067314650047836687311604237392425497664319910265519609096314979785458171927087178177520801520991339769091295988348348358422386788383027646098558324881021948438123451377009059530242174137922143042348555409268640497778526487344835592379856905271905337684588580393632359828522068708584851515714692477606551816970335272372735656187507248066627232475660878737173686038587568716255223916884279333020352185873284909289669514536621306177285577195160011053975043730742968252940265589187084877078446783522506222984022252185711456487353831144867987381721448811323797821942696360954733536365378759597064735754797237635406508013796685481187856866223751218136373192166838019646010998328154815369892884498102996166070909515586234545696394269804683004856591536162122945233864398694001769452747634136153279523526255848257804539424269264328183153146521074694348094965511582057117766318810276828296593924147968792907477556344338588532472719298722899656691305688561914384735886089443394850106153500929241656235348629998671814409068187415527023170012491551461509088533747380550483128649703009137174706808040625931049782675222793458558540287432202859424714384859649812977278164610487691607779806570340077628813508188112332998387905257371395019164617486982545362276544773151094038145833195780075775262543999032013287343623668872057934770008157449273179862974488857035827168424552913785386847340526744655971709394371381594896643054362852274520175044285018391368616523829354906557469809394122217776872115887493075373993540336361831484764195499129819158019106644866705011514713265198247946310900984342230922009205181276752453022107131215342932749776847579729886121335403672838964149010430654567203542993502527682653925879170120707287222674372551561436365889142316752796527847682058923782091523227030944082951269063375503520417080070768790917399465918450744228366153906173303303582694380553501047522728813972662369245719167657625625665715029512080625243144714363775284950535169593370637020898277098510518133214717899972295019381763702463939249035662464466777488126954579845072031182564147616237678910998198416626074765297362384755197650674525210164784313486844132433634922061256923538651940725812009354991203629218299160972270211296550902919557520341376837541051535354339954375304433765469068729966201387256445228543763967251958381180071765202644500034557945954247251813215120343150054521978562894903001567784735983999532784986476750235809801044691583834813891972975134619699818174969162160132027445021988939301872349727855220238330361596640508493546408135629950298763001510195789557935404482859515715523542132877619790324979192374930907509584831943809530301080709566706389911451970799785910825096950133338737168868392290942873807323657271321504142857880153575867381074894479488325452544962296984962297193328408082190228372592646862222565283942880253628568302598966720331126404516252157021246745538546316585541383008229987670557488290352584689339749984708407098333606798528301534736358289508507158046556141184055139882554888062799796077038319485636568334099619562685355943453192704427905515161982930956792952995202540530184891853980627810381282523947109977528000103464241930774010930070336333910364112212388825959609251704785066458935473521284885880818821664654732657311114319471926500949334230483607279370990772915609904286813871929545771978191477459201423632730229300168148566904145729002911408136451748429877826978351092535466532390631222278310344824008998910958515347053572896912317278247502164777189329732376541478677228508907496942660899870949165782323494105784562596784926257018837105073992027263273711586859362178667336151360131959942060701254990484000553326102021393590592617740687027777228689750114700266263373585361861710752872152341486668305394475611045180945410157058095704315409402695687954465256438780131652524208166949372244437964842057410762297235540033248574812813568448970119635557643805029784390837854295965840841781302569726271373389402515544913500609986931437005973587803319958092548629068556204708212078129088356831915916258376187050579923877714505405840196477560634628565397488900096768678968647336980020284028862125789333149234345682709871590976965690606022259410324010224865350459447566124792484550848014268079872710113691052877086190064716418980174437057138967139538450356125091162365124251422695899937349120381135383100383415780006772890230094731697233030339732483321147106919667681249314379552036125306009389661794820830658246268462997180068743380960098890968273111562516453514816513723054748762585136009158927152480795198187116836567886976983181687428925150908374933848310140855597421388279131907280920113832290538952903893890569975096046085189400584047258864550759048837499098198565019165092424830076329390868705047680222807770529828466718197126918465113364642113261631670144285648177911219906140427646179502923064173727169819342480283388523781011152086603608540167847677009574961284547912324515910629002271461289465516126829897334503260283443267966110429211590186016135262472582752750334235733775323747488471585175253106719498462141296776045010496158079083809165106890633121250429142584874887312838247159746426385979512240014059790787809859567667338406194279148667618972855037832680814996960171648625341798249739983319914823817283794732965429295810299112180714916445154321365102313664254938051288614445455760785014335880561020725603263079945334964453981243183574576796838296818150530756143927170162957587469359864710504090994290833285179673637417302668168378297918121859388034182715787486721575564351361678262737560099322058810314282305474409215479167131141295967955626938300717786026401667601593365588206850967816599544260156738218218991358486765523927922091386363265639881559054616534125152922789635911337473169354037035368306904910789577235610844292858520973932325980679644798081997050234999842956289292736399861603933851927868666718115247090352909506450736219660723325358442223073624372140024874186866415555581727633989601752520491252449995967831558294388781673844413688013695267131585837213201032304350930337961327115688923839393603014481419913162863664547106930878161346583154733917401326729134894503565160442177391841647115438750841098954500496958826764508556235586542575046437752011809946897423963043072702398546426611706159903535454158944679184861745677726440801662554203178439852613801877764866548074855747594767820857239438245261077758574314247209301815859093561760889339029092060556756528562433179765701850628017274227862495406293563015844295181687508490648401591339767297695762558828543877462183381243240868420334248130177288274814114932166032964287400935481710299051621218996712831448287977818892317009725483774488259049943293207433447782825934650420833670561884511563823667706108684988574762930294510518114258351655050927000019868981646071503820187126131261903066192920735542983106598266730990349144345314867692440368361570151951992252060312407791542083033901867583003310302613854585749673531874243707875868969180541585615423465874923107410081431704301429131386235392723013350288302224161281796413274627229344452405498197977802534351613623210698897901994570675817593661258052192879880425769431251005750974848109218488870945946625979011196197260916607091974735329045472803374627302007622038851292873570778413896964249929792997513005427856754427486364401175822109048409022771766827804819627630307066976803979191021107430777258216910347810805597326919292406252382440296914090980388242028584862923590757990204758762803341066408583562378068508897512901681479766276696468991489019209261171616134395883410619920887414557251684991345322137877591245601408156000532692518879266646531115402664503472045933146465572060446432017545695913850041595223754032055071408074870000090480867331237444704828586271092826392771163871532189409912681718912004088681863051016160525033198733849534923028904979805853236927703077111249419428456029978224881096478385221234669039965482750630430706854074202664281856571534153319301772423851294732939814516617378117324614342275129579500863486238183656808054044207839202767887220864351291864966972463124227104700854713992917693461329773423216697951092465961727749238696271810635974951271726418874160926485204332374472061994769038706828067890576557079135432501906984210365801506430136350544626089131109665610956091506991565140656639083807390182725142552942438942713431964180541518085614449348599593704765774761063676719137740541932754884181916450436548830743599817600290915310949568707264290126636931936186352218257249880634747346073863044979328285257922359646901449967265641173386927358212118862897592670518158839658179137828580182647608113485834229869564760347861862249445294204067340760718269520621840357667700825213970044952186138411940996017147270614720279120320829814582357489154962661463196204171628990004625505853875614459152059178792161394353966925372534617788456171227996083589505113203577471035124483861738450201267698925003932946198010951129553531414293979502604904775721442676362049240524878866195829531870175187611269777349846972614782442879857199703091151451210578897643926858929864159408691231245166271372533927137182105068326933587595407502488304655744881155183063310451378147143310569189639191664812075977667655387999883420013392999432393371505647948178426460999743709579782664748775326265400205351438475918224816719130007568187365384483231207677343458692163620060252378148593465205142601325593330941086677940551250995988305551138514853424971863635307673763116096904084197275674875021324954560518101564713642873168337321634069388872360499727796037586215382729249828473579011827414131271342791983184308198071895303970820378589798838275049519853168483815837581088618076551650794404600489994358172186842034884923370496899201364614830116250804920227647564682444938578146706126394403196084326460954257798884164208353793811106839681014980624108409077083040290581455032612350660148762964858381107725929530588874342274103249198441638208260106203639780806090226316040128946524939507014166860788736556210686400957242600864581137655225705801726321528335720691379401011650395172790211152934269183305278803661628536680460996593190418074995835579093197496914946324936022696040937313213236705331705047037456105195230129285101839453314439751696162962050765673252296127426157979641694632884320237375443490919707387870436654434294133412298032090097377836599316374335073567498936897598617828516234059600378201787847879736639316768099970750199022172153142230747788471941613285161967098652737487734099820572126494267142332821331577264123940111054411167980862499709571686713457225928479247344574577010724213546410088739044923704057390432845206857721061022552492863651619432310749382191666484826942530360574445702378925434767127571968108414830459478808571633085119813857914315660068547957215193338681804082327158174944049368288440332214180232377933199591312272386017950209546541277841181236007316784584273207589638677190952851862792741534917989602967323883431530092499060871072623449785257367793029217358012457079060417271745574626394796055005348758743757585433212040770199645303017300362659758051425337604856727546923579716357364243458712245458050218518666128602684321726794681408510179611464510274456717875503662744151450538165762252775343369914033302466661519928463232789003461067708400570642910429387366094372325647920723666794327311610266764034000631953039351791553989723045482300445772931099662476419721411797225897144562148164224736386608857212942669874224288773752120519717002042064565787951460759277006725941318037255062435364026734278141424121709750613000944099629708992470305685301925752030927657173669420161860812382538109847974609917012244708755213941742554780104321028190503444467498577501251835705244439666101438583924042911635026814764401769438892505270357197333648414996452697181566804480924146678685714192458471837178595765035781392848795795539220552440140588343746306482615190010670971212897348528514972625205600224548683741901207060273232443234521829444350873605340866899276905989441048849255511520508335926733888532893195745250938510216552934177830777476920287245387145628568586172504484621913961224599581834638234680618668694097340009952789113123347600026779452819503023980502978871707483405526494087560096680196999036421792239323082219595946153821043425686936850180358504229295592364559477433578866473410680102046546463176342096561979220193603388823354232491331336174819994624695435581872493852794726707163421829972923647459346098946549519130587496623342914836194428155833332657633391233653798697462757728976224404369713717580335876851128940149440199792404916627402744612252891762218593573534687453976570514895577957061469117564979584735625464812061741687628655458701644389843268908106829479097641489587078799184433145835849794079611108348469744710226604028511252911525771942964762515319336387825376838889301594218678803279184161770223197513134449228994001696634782520052883635677036763699306131600045931736871443734770844148026521912780665022599055205033886288477312606313626222813823216936378474809219032906514392386804920766707743667975363362618037232861543163426278081351013529800533480622087323867415986251482459324207384996012781477820093775679557389100139162885384282658966277725428294578524923787472278192306021970271296627266332635298381766062546050402674492351717456575195620800872763909703238451567936827160346593882428841805545179738765545406686007019108843939388803592596844980977352481149097825411781352100659862232574860118342248206571872090107545994554511990042721894862306260945487991258671027836897535946160114485905105167158078296353226827852906373893653213007989421349718527849836301151354650272009979981065557592308892588210906402772731027771146676299716187179687428687045955352135451776923607934923123102317246380230240571593280026515236628477531450288935077666670819945385168094399064688778992548077080411872289021628202258127392485336104762650969606062679478567511947182199416190580189580356215974577319209382438305985175027424470193810511247645147469571801095655592160128490903012210766995772161829867911962179465359384885087333901060709747871434083055016628622114252678262149098665553633657088656157465365965364176239433941746171223058241567174285777420051850112818279392942326275270534291757997082393772805893808961888845518412510233778871738726775809276803209350331976775823316522496436235076780237313676344032995555451964362371044058503671492375432936399087490007933966219449333075967597351206121743954332982663677521799787311006400022680159575165332062544677266320497657864838448727980014533207081496776434573662554142069417653722037808201108728113768027289880181537107910496480990006942767274387296590111594813765554324845901045476896523641437893397474829353523879118858658266223224524804042419585862104619606292323012400076809092354665300754471727125378211276301859021071962019136823452218759729114621502231219142823013059395495152104667437021106708974607484692225394470561681524688831222871788942548585589324665317440496665818889262977569764374782016449994513949380969432402497343648863180705040772950668106715683745875365879548091667804104848578860932615636248720095573903461191648981109319822783827143215691355269124724622916433078271661717670678236602418841646015955547947132070984146227945567976128049082923671042703379034372184550134472938423653024959360485091615679630946264561035025028714422653818520100202177952354229886793241696078452309445416428419482437787440215031695877814043420492581504920918362059955371376196279271254540601317082398792560370555384286508575452768429299378218889486027310491076205809239262841469133433069672490158570369600923405180502657187958657339390911770115919523557576793541717452824503511022064302539810727564964153933709042999377764824751029887515973552535686651061662904540372504351778417565079982996704460473163750582447300502197936403159770103021783078743990118714817448911035464190368693927944694110934641772193548885751164288549994864482830248782229700116278366818319083533915750384002073636715255202689255579426443408224152984004848840612822967290890488125940113554190783140194519746222879605418575262271666345951830771367681679691120720949271300200950195214614086681977711383468921701436854107209643113638091064006111638914447087793019776156392771975454975341939506333719758898653042454922863285570215982217768426604905256156152869459547741888655780288809607146656452416203087335906802569426821453674080179590963827525068143871828034479507698646400226680854054648116663284715624611169401062197727999633060280513807054788291271829597186354234956133460313601009211361361664652926055424561674990720501861232497010780503803832252578710465519200899574279239604487497102631630828704800940721352494197146237071911825729069431823748218399458057287174284885774666682329853572473103227428439217265051268916973688456714647304199413535759204619163418941215533183227439377602561191516958159003585306984199719793110022315588779887977423665884928739375495104314241598750402599527509488743352430535919426201956251453677049792966427551831922950007254917254436801251734945849337353762899293688642646316648536044815404516893585890395830369863422973084267648150328026186707382077571240409982216254759817919984163106146202106200751060073011061535641784430439929170804460163226565842280726435543363344575275881703042618634684264355281367310723065567217987098377825736677049287630336238422138871936233634796377735149490781443946708688978015633166249280323544489143574807219996619129310277862074388550934739440005644094938908142564787693761554168062451556977981641741167711243468276941035368392483603278312527709092019590951830990510419840592650094781009762685675070113457432513218347272185391884826241282794510903592846021327048501866866889273550090966631840780640361945644464885248317564271638919521766194641244033716066190989432776542517158700867913362918823509154369877590370454710226515113856631660297490223309193734273133841607680627294929206232352353249726289466807915147481895394361436374247974859853930518534336557218946434704586103703015398445640043790484086213829836378601325470126512702344608792384893017796932032619888178158783931886467928875755985523127214576720028789094691173748967784759863520493399559349123615456567527884908083699543534314189842993256869458282289936082490844540399800734312289262915393800584220092541500921345100415599649072242744428146727075722403182789659287969394574219659532843181512671441298346282315129955094709641328249675828006886888783759617308710461338905587048483448322114269089825484514630933838580311629870536293712882769541538743593380120978816338583394405941219593299832685296851547668472282971291898436499406932290956491083891356710508482398186886774127320941945493259662366364836244198940710352387682561871383256566704483947054755840648389512790712242287247917367685357275245845296354565300563183801052758994490652761962385018297645403788126468694661953621936564976344820428433283868614085847662221600584347123407452793483972738892237065896084810668204788862307022648737292344687839909962767522840775008850888552906810924663094412167759934205605716849632046053833315965402343876840790914969941197840621173927350650217984230007700704314388719405240562224408412444100664873538146015798273290409352454392541499699209626059175607171973190152146446913379593999769232182191041897202288161056232795375796006201348486493193369858587354323653482252645118960143084248239385367565831772838519301836569358325932449576853299166158231368280231846763858296446041959500796128295518925537644375794265497223242680724900166626460428363575810617866816100886240097958525574953902355336623296585241883262193036313152183170353442422140095615757942022614654047915290468664837201019240112270186735671798516085598706237733501510817004567247629862961262961523879320402078751167137208393481675043879129795539674107254559024302433589533145988203027497816031671277669716689394348566666395664423693437013940204595861894946148093641742180901698239576163505290775723349038682329057978344142456818800652316950070131428865076530956059635340058967923113324876649137272161570926393785397975397842491040421627384460412893714238598296473762628778164943276545358906059962584006916393279291054150605180321851070639456880733519763023300016804041046153239194631518688844666518276667422494797937923280916968499442705201761170719194112721658927712125762596024119958826862435477606855112407966535486352775525569610395529575269368385864275240347810673375926975956194993612584837011540696968827618072307124047790015209228760894685873205838267016498807610707081537079399513516899181071272185197345971466470657956040273199952605664452468761104773026487383313232385489764504706846444621556358424704187892521749362490623882916909412294205748051108439331749995871773286455712455584582856938596118053498369888539221281528614351164486011349838776402480409383515359035196960041760174910139751962968476937497841621602129788815405996302553179485287132241100848940752193041387050194912140224471384623932419431849376032876208140567447465942289482552198343879275082763754183826800018939500222169190830119562363414935421177444769940364057815007681184939211660427258396145536042914702619989594749526305762528461162794588347793303517838852738171032259871478190470139398505542190807255939592191804875552911978092130857273597158978003954651973863090659766438993495473011604049451326847845631890156433169904680794415605158849467005303607628594364417017362234431721471137840302660248243412261750687720017114512765848977665015788965432659617238262086042136591996809108812101290451660010368855618936501141848872916152102211632656439873927201158367391672319970813230120589354573077780100172124987810467383072908803283928524135926171416829343688241497178081245247981693700930355500039717750306082026206341659962762697557756333702933585826494988282903549900825767964906485412886149995499890837695856912649527996804100554093711052942517995157973374112337065539956268981639110097839646929539828466573818541976753882016871792400781492022790358252247716883314673127030445091474442334613658183705738168765554162770022515999409340298703323819677292712852310661524266571603044818280806726562581068445273357115146125949790144966447277448255740643075687610084998636744580977910456406174927173151661199235407752287477464058821523565106514550648436949387172495583486471000338208842930601965901955678270322033554185675394484216985062818159258006875571602936508779006364715367912578156792848815882900320142193170325815851949039070043453073580919250696846660642552671570536797306205679592630614179253455112493677458454264638887201079724969623565288626644730508170422290622492160587671636288036231272270656858260468056972257010458847665790790575611479646722686361333341620830793859114821732590123393793853569099197124508489409612437045515083169392241619467102716377265101533417623767721209109125324154874196561872142439564575350337969065490195287595380234826205424835734626463220557289028442249578408432560736311342993783318332503089285450042598203834211313561836151571878409499670016362675917661331953582672350436245604243226386950531342542941605367545966553259059439664993389096536139604760156819988936734541838414853679313252245638160858708219687466662882438123138400959353206124922435604841441302160155913443331666948734114908051719932796579445133735688801011390319805246461503828474750873898633887588500072176732271412687004949414033925169471868452288285176424962419367648670042485119999363522188719074901841187347330082411858674574014264416434299313050105906265460704790322382828962682176379367335602402934382558706866072094334623966831931250123739113261032578290597902515599048013682994127431193953446026824503957407285821121074946825009590842363000115543755925029922518725765997421293495089210287041839896059077594955920985377286422388797042815947354568190306106491107055571109391952298638175899239925129852835135072277689242550049309159359998245221217079528666910054923125031992467020596953268930906169170715464266979302266727662399986350470383896647192971011922237113504526623556671043330288018977088810164032105475007472840916930970883878245954697200639749109544747820916044452397561705010349686152119917702585254412567317142941401210984739506111258309486754835610703426161006395435301104267113322468691310052975496367084457975541949980269751913911823420860901287166901865188714874410460359223867371587971634800650768849955707063543720714294271217958774501416806205778918260482526867562940218579449578626867512734875525422954974007480059863991514303500744642769249107089805335496549723706808246208897096129661304820618173451473395896835571313642231695919567660991999647546563457264926144856557508504200363483021750933105161833338877586810109255322759344717270680871564157606827821275844016872036198126847228888201718164260814017402170092747197027656000362016477866177018351645760278066842511063699548469431154742677472998697489276004945126667462589853650023470242221636354820354155066208222832393346068880175686405478266141674897794044746415626394146182774333599633058532346261361556472287021309740193482579315568295843630034009224272037014719776014573258834990453857627486423325903805358506896547676336360870743103388409999703156765749621862048424199549646963150268001222298438746302835650915884636576436175499337031101960374928179222072136650623973782609865000799667814065184622459972589436975056189425347640515100207641378940864337788652324478968463219516158001393402098030897525194848448758134550227071191656099201159202874297342266740848435417844372688954254563060800058969077473999272479153445494821070155576818612620512528047210246115203056508227620014791209719701654752597997379940208050660715166413239161920874377316975681457635591002887131988162764598620468926757746117219728704063251297647806688999061193926828040249836626478633793046830295600070874736182237278563209476640932232353040871778062809417396376785587352635817861725530447323053146147515972358582338841746269602209733980456103071341880292864535303754545984920898007574096004316608221692679055271434758953466986336989951968928820666951696678799127874108627813602571805491605275989311036576437678456047751415540616323915083207489651199620483576353986171436720872703336832121725883346370641835406375834695017334833721262774917151254113193778046378891137398078428217462362837311424262351080508810890449736506065799953276109965203232583423908586378964152285208266824120584964084014516852825396583168744322621351817634580839803523821582475890834968084793678271240230170948537449792377598248481424404865413285919593785436144852632975960601013246130918818307438963089174832525458822701335887510264420450664016670502253799973196035809268367567697520331102464567164881370719189325613376269471529613130696118161214691665717838818529404045401874880831158518263316832563562682130425148293585398476391543741968695238260264472031437805018434405379288788626351797286365930951518991133187346907357858463713589766739401743116034042630743385077247870598219340036104902517611504124677585384805992435072844066181853623326649877345129602265852357744534167007479958623998939319661141659001591627552099711158414607887447870888150842516087888674991837017598501188803457906684118787891961067551067606385103560280161286068470453458684164254093119721381105264094032574643663870602664347210089626885298170019688944644021986073188747223048265312009862040247561909760078202041172102478473968891153410973095336105295392462862850070618480277295144756324925815445352267262964968644395922566474043985599184117376405459795654218874660285940104202108044817064511995040545232086548640856849444751767187937410347361515774230894605011707802290824252013386041699789166663991840557184504155137963069708818422874587844985048075989944803384235375727552125930412484039045219854273271893967321196827444316133076493640617069984233228742472208619978047976325440901881278129084670893755467498202226475028774166782949538814828253384418958102271707600875948294365557802622229049083919006406111790826263820931632483054319180058704131477517497901253147118144361300128013327322525180867077996515184654253107072647535474762365026213805186848461877662297892298355743505219609765327989125609055244682791675783705509325327363283013028123018133824113604275288829059211954195736543932860025745546307993276843881683234364479649741685963207251544214889203320784529809321636216358154485332833832085742161861524932863570648289145086723898310928037177601067209238012587932976448608738812501585263006712931538194814466814318261825566806600909819180547736552684761257786922314580291095329623217141816970568704936091255484073504717766943568857056074364485458856784021793942421444689567744081141373438392792605401172224774924483022121418842582864777648139157018669465527766676428979901174231105385105277595877485947102918434963493117351714668488613837498382150781709050330106087837399147168569773446645504270217220303680832261425360611709444775681520330242550838905545414584243078640724173095782239987559999702091546840974002574950496217407879519732097527076938540463520388762874089394391859971687300624077877056868319458273461392233370312159420708112153446252166514279350393712027265562593074203713759057731604400679943825891589897701933807434272648379624777512129756600241349980868387896600234116323539616112925356466487718677439702197662862355697108121590764672187038687687759676882020794008957259694401174729108945973154056916768834755523512003490338137302177986105756520982722558630540346611286447222182349172753780096669041703129928610301116742543054119905967140237530284972572242502287871383264007643558069862378350890533692731627633925744948892961951009997261683725283579789607524282374201173767486841512862455433260772684703531116518048312156807037156831952117488339881620204130741042291695210945727262126283690257812245913423453944160779017977571990693348566610956409397374625623251016585753210126111010327652627853108392656997961479725634709716659269340338527569168098869571824955054924767180638847574122887928874587033302336076543706577089406886366648460521708290416085662745797813717675408504430555591830847258898206036448417405668168129544128399299420847529857654338160099297141990945972508009864506504269567538817487199676142770116786825826921553393421117945749843075343646461624614384416348697343005274490034832312489960053731798522342832356640397031094277779191004706712950535552196904814937807046872469384477931464144848967184909545315712669046615390322910701125250276571111610081381221565930912464536267137769994796631720408398642820284675629682500415942753358615930339230977780028499200055196566405289255805765207620480481767128958529429119485581603581885814136415680833011284455913906291309757537571019359740667215284483755773961685087034483142096130924217058399574029444925407907369733902309333321168501714110900720272367860575128422855790193476629112810449927770017413501073551634260313589547948502766245152884147868942642592673249809802458265623290819731780333117721598315850754601432187577926411960356184514102181590593292714752433534018583988179464888116931741105090254021894207469621301208272419525307686279961695331674304184394612579127427316424792606848549668344490621339742168442462551408237132993844307140792760293308276282292574728335806915541267648362000050237918109983808878041211144801451845323015259843640748625295637753989023592767253473854706507052237527850262649113779293433837293989607464061095528707180246664925907642357049635657323705993421690907293770020754978957675933355993955084500354707431826958390221018392566480800086716799305533364212871409015637054321648984644254534052304664190463527053870175978622639143567343427594885201355396506066435929790204904252223864847055152813693616865784123505002683731093652891470814425564869776202609409041441677053791495457505332537359158987157231455450862830570750608684301443431948311943908067592402900004457156154024974955262984579505738256217939267414904314183851943893102275932251235886295479205535270684784925455398855005437385643416005960624716080541737341829186161678363797080379139162914157887956690497552017670832586852932030951077394433672472647012457455107742593187628383350955002519457838521228452181825141569737998189254832752910007653733556504974419502182641482832781370025919001708102133734447356812869210547729885064228701476598388314485083071061543077326499432447394561229503897818319147776144929119808537067023818981569921722525199037352470276794578818757631080411393498560351227851422122286592631320090866553017976704095519134768284153399240592944748588502964297511674376658696858566953111316332852863324394091591435094332638551382138941272686289187952888689377625890938888061501352496520219418588260563389380100289823936840639628786072529792606258988878384899338431160421229698943217649377669429580411498657257428630726130050506694506339448864894939604443802103655827125789792358133576840779487196597097306986795215734163779073141321182548786506107297930821936361413147488972112548034467163395027624817644833108401672194952227729242949667757582806183129040011081090587716487315632989876062788613970889632979140919447343215197309465758373833103427548867673115879263963642641824114136261024844186645219776380800996166896217872777719828676401890065630162226093783921638129441305588993075127158134289627141749516136732761269919642802776202897999062034385662091395795582615538738899037649532231674988494057459819417220178692514242723746262884581249484988532872527419381832651711399389060764169699636889900823333241881552320217487214377930963891139646359878527276184549576583341022086193782556886368543834160797501478705327021913636157721044256459884175550840687095175548789732791160018998965751521802299742999221971166837545405965646037653293839260076499747912647081039979381200633348383348218644645286762118630584003367567878178455209234457740644294235213303673603020072539213998560342692445035808689287022965585637646205866493614914102085592546018616648040043167256800433347294842925169940602470674936919603721493790940776338515833073094350855400277903928504308791110363451391120473632835312202109632641183883907145337060614375530834165775693206333207512573449951332382727430541584419493801910140741139206462932665750515696297154641070203400202369262993669030935751252548214025649619959361990206373069798845622755318599413637729937583613396903880992312803035709901550917522184703027009338592333274718873347924000307723474258987234309266734022608434935925411769046414803898671464731817558078503326720721694191557205494274541373894688145115417110395889963166673738974936349650988535505217795798875429565716931061358286185760946958335003867417668946691697398081425156413522931402020399869485723985467998032496873503368139479975326395988250014518555568906882645693867305551889735152598894076270294349169150956714564549960944315993234767998730081935128905943658200436007198857489101316048053091041691574583872133359304761757900673259610136855802312803414249920626762528027971870697964456236278309435470966845289331443202217855879439701446524977212021587341060030198392704150298967222060787695641814813746439625653206627179547333034285906920840199034312464963165805014716769455930083348858190696527609672368111447703165899178617979517054630678689677287580366237688595223751665229347076964270063076494557346214337268183859330523929978643514850266779424858272318729868419449040836533269947203218260197694244418698299662817345601555239275058839840008043026653999361850398639724265522612719361695596300131077667120174114430559145205473818226073503280807946797449857527981038104387399989115958827107449066099750380293309860248148888306011540600461755152832431442083431497646354071777918340845216342550743877707019494574984925989063476739490106552944199495493468609130682175648990314131030347035088986575026118130728332340457109001069603538768290700692301548178906383059445394739333702687272761034304596476566548296240480535536028030382598834489213446350029159950134581882355135457119436242636913104681090514214331319673381924252347823418351439014753064037778198972469456525094652180212075767785837204817115596114712505322734868892937404170399011662072527814270147474577662025346867804736233326370300156117249399503950158122957567253971266927136505878227516829373890330972309615228718439778970782911576947036561250345755040099930039595108040966968406819702787834331582386260914005709522820343089074407952322496514585087647688453347040470429818137843679325742099129804009448515420135093115376394010448117277261485640232066058460659965847643978569399065618423725789514065286807224878107226909291338491280137059153302791760488178651179066438584400872795124535478232578860799648222100722518833687131375269173100285069920316187066336146682285221213407354094084397439841504463018127444590229214192095647671778430341874577159203376236756448115087480781354964649878221025358837682336120421410125165340053980654438496285496740781688506555290808099693479115574696875869368122607493871811305551368337991010936329319242658791943330197691589956941024658521964014056717462354265127950961480354772044371443360783125422444057859761756183984022651802359364930603914924333576248755082927445700564491189077342363920992966478273532207481431517257081173557340153419410253946040624281498131374780956010909469966085061212871566696644705453503574135816311226361846552408425823782228662228514542685038748878184732121334268471686636385803483665170199051975149924130128927481703918010721784144924709202075766045238843010916008183285013540949113314618238002893493760186091643057234829467902466038817902070095036494912594257673473622741727115318594085395816178789108503811862127257148029487908301161886093366958103971599303439922123664092844013201288640787108458873967319923646579168818980497252608862201795556847053698694054702125999640532173690768492713769674697580830138136804098571260444105309109025495326024040979214006683572519411544838505027525872930573788078975320892392269463573195729801712798431047386092290801518127469959576430845612038127948196055888046583628706214566414858886375710296083508911108397759379429062282509903656448177266139491399080036199309319148903684148705216741489024465645070028191451710443501388859726855241160761877790835333191628878667463640484367866783340428470785453618353404724643147007443043543490569916218915477594635784315523105353148660860767070369827623688008960902683861709957057058767607008862192778611958872960746345689679236915542837834293884739364062574440176521846449235200606085263226231425301999342265561722154406093442702342930670815781761875901688078362364324351589424333266907279188742894216012371917653883905372372552310162678843452899117448685323379786284033374002670890130191319431297338546284794086987976539780022741666144186454152274958757224706226706177345207341490360808175880281929609584430145324591512282330789560684142568903918757582486217148198129789366801726568530104665086216031859329546821890558549516753982484942727442274066127709827604419281614855372078919817892836536368944195074434183236917085542493139323777774178550603409033684572221884084134349890902799124727743214941520237600404834268591532295216406140305581638927200972556948874673692842940616099153425734639149829953673566556154551299774271639353371257680538003649115173201990662322291892056670500806331339877099554812564411447863365146621678190344193026179000202889644191865125070525020870743300032811650655944131659658011830256361281210734965361737810294840820809622024765352939710373812428189297021141137615541480315648812765155298864614616785881770411148209717730128339148929274421638780114409591559340866759618891427209957357590405673559004875988353753023753244176712496776975389768861162151841179819245350409291209585725337363383259360257147170688656860580059770449495796076380428914893259656136344880345494665463582503928970112122683513276867725385780654767567564946426228285918234637896997038330385854243043245052533121001271008845415176092513562018271077674979260545409566086242740248637864984570992632324987085522495533272257161623976362644779473133785590282242522240305826456000995394249833314355872045616009066248268268283767589975859052718083759180180740376947310154520737958354138009265212995164511329397361822184947905758247122282847763214373792728892222184829921703632025150091520042074475891454307220917848444465921249046085743800395721356628142184845178446428978976720721768364264120357828657287510254087939926075967489699086346535064305254170578804673749973153563853497083538287902369434631496036949769997522178331297118297864931402034046088044012763654844869712029472136495624631127404442070609991546764052493564106218574635743590329737243518160998791188733901643797033618359842454467997341257499029610084911704534099189710263558861498513085005154283258498192363453162371346515259081351004934667414144220033864173889151516590943739869539845703047576087436185904495801102429708551134497225003352414110257835905131076689041003206753613663041451454357244200102562415214010491527507627440334947629186746048731631654223480395120286884620004522905076491395095250653057712024345613753357813223143696490888722651354850396867401060991134893878981443105900593519243505425634960738127239022584951354497776790043440252224997160509783652332979365705420996420172144066880271728065227891944698321950915111788811084877661262745912968313814377868250229022858417132123978620518027229462849293431633999009425043593237438591372754655636075529479890772823289744997130123619939454588176776861087473141282030976628496385194221556887432691921355166341595488569929219654207494281786689169008461970550184157403253395373962849984971910591243705083985481271616072923725557101293784721653960536785316395177826137350292814797411401666253755400865187423511406739717235630696190167763797715116295012935323887827122295815013499015465445241090903356431434141019224043404891885307660237785936494534413173917025245980795166530474907628628752700925882199188710581430333780590684397260862280436496966893182544804004202808554233496692342788016674980944681719930635150923957932699858083551129681284181442268571267712645398769308130488137267740572411271818252865774000594154151721969446980072487267883003523138641696922129918807267544772282042688410135917865401200170737711362280228908820879399392920989741131093521208437975941519890844324464776746537411371359726270392458220217033705611770909455913792665721607961045937946121800672929762462295738366889074791017389343800124926213370111526840572656302914957198087112479175996610651031155945725806466663910335506194878604958136392600010883497201934473887375757367915201199563544587430267131108097637299979338684792379684078439642053055203011841392980027957633212437951386839935934640096938239261575383427892075413575157088622132396533824004943102508501507407856548251942683959343667713054498157129769760065831323785528209997268692263267486687936067586338937740070258146766158284287576946615735136064084156773394503496409392997750716848604974361212717863315779628895769410329830632942239061218057256449896756565772002570060247164160486978477118226118186818702116033778088425182222950475914133399587900672373055112511108570575637186551409145920477827368465495423534665734615003977385351577513327809489611064701768950165006690743852672097559220842036270597537637825229746384431830693668366615410791062184846677899797329129619816859261699039592931406154666565404393492976355643581428310081880877835120992207883882783334320652385783989757787810488232818991646711107822176230199773138275915831812271564393247604443884537946716090625021296520880795617626676245599361244973738792889328144833674760753740949968341678301235375730947883326176915154862522310153319865951240951471602531563514264963662385756460944095513371227023173514896674307551077284302178625113941109269467739883583352240230304287412449402972440602707589216833071272213969285305679919972172560284661971622468259830266234359580812762903966551545607171433300248401834865963507735051551439878901754861692684749036650913340800989971330819672804441456123273492556140687377214327639640626102574023725635173009529108258478717809448357357018996589729956412958110791775686871950969297550330146360096815453790372702303158280809201105321310013727162800584256980230574887498190307135597026239119374003469299862580822784864653814289578355199598565108442716923063861290839905226398350716308263508428027395572762242624817535311144212407549496988194897860795542728766245974272089862165828712458996850130296226998396068614613098521466369452324832849884854583532152537564110638297778935758756634939107564425031382845640771172644522472359393738116688111236167942278446901784827609589494722920289486218350517968539575684952052193209942878813794863767744021058580572021624475403143608455350921326328508846185351214252820774713346374855425199766125213964704761736531421392756561517830128995119753064018902686006738993753928708536837043123579708493773048413260146900057577521487912516556121646103639774047202142523220538703871825672886554754391328328426713782311599865214330650542173461090441531685089231459342995291244841463989219235888916342936790148034057592043548204655782504457570231126887836969036112862083211292475584616519364380257594683270676272012168852419708451544701698809043273409556303539679192698286647828876292810296688736619270899828790633469320929078916439089694580724860641589144394515267849071360956295946198135303424003632747344947780920206690010756836142415327588892020218248491584213786433440730409358532077411569264662263298734592741914755259528016246072828007087260260354709440980116270701967584761832418092913993566232384113857733227010837226026887275907551166325491147094395953977601087800717208848454425187541754384548778137197933019942230465479457025742552487578914460998664384816316756738979436137723530404232819493075847587236551506844909380803759362153783908544771196926356033839872284985628345759958137433905236819077149855203491798196179545031128741477640559642863574925649791440210319010683672453735226340328697004545379122498830677113635409268885806428045514571686723955332873128438368513702347222293535418878590923482164422894366443648400506959501066759376897344463482136763855948815936219845102896442226004833350571195747588114845020286281127629613119353667006149245728735226064056654234078407481334685272287358131005948616747668042697766440089287442297257850217038121211354428886090592497506395426107491065742780120276053987061716179872163301231517232360618079278458648030807318657646370593103873159291472160629371126166530447572999024947331483601192791744162964025619598130854770553304457044062266446394389793666963460184973497320503695478581828018614315655494590831543044192955529749300050646757912386644828518479182362856566249634570955521423969981674410711276701064532586908847033009113945681022897253825356698630858486451251379137223865823287612783121207976073906426915915527086567133533029462396761625014187385328087569102749004691281966659589283313784962537812857256307329013263147979368784805056885681405749454321171833510259811147936972398381460038968452919825406667606947308569247763955985913688429051165771016648760370077740492092315405406732886993945631389312282917461040127862094762849630058615922395153133139152079994501820864402258812875359064090548106031726806150488143495949908102748661153751201431223373965510584170560559258551471824303922771172769461270759390396223683814833365238369266603051200770766422363477175123288428888926992225413303263658625683091745033247001767635686042221571457799535035583893307347314194955525557868736256742425520447014741321288784575551138486311712899986243646945804533807289249738336003962576829762991038278250242952529969735320988580120208320913732860450337254471027422050475372631238640028136592045073024648765964105547344896317581371095143305454178460034162597945880148355884594085377612985509406208788815101266612420796954239982122564466754227827090261951389085882086389972371495452408119319031819354407234930053711753749849161740260855528015262693766251358092747629566422236639745855067326409647083597841208699434967595200237193986204268145058714363734531115448001133632738773451419003206913423976584015839540892544627508356189529525666284102602203495196474285169945938785393899073388760924025945045568721350287678903404950524331036118352829929057035352598097020652577395517852673453567862175372226846881204228669134280456446013365788711768214763508312237221134376359779112429311942525034238243041531923924679770768895519519976740279915116082516527388059947606756701096766415997679577016611601952069441640014077696689665498376135740486818827504852304292809787661904027033992136230649814204986084706458871851927974826380090950709144437231724584225517835311221480083311833601058274640920973724768056118903446886349071498569833635441587197865037745503354428095544937288073607956276935949798554543046124127476347480155385145086459107163118564368935282399701016174247555538869122927118497724513564942891259694952262545238553180038048218308027282528423112049025365746727498144033809821372793786327754763396667491009250456483022486312275615458313222269744339616341475971681245149997113246749688214610928393794028909121007962593061277799668670143709319416105514124577640569825850800718918809044442048139417334413713999409912217981731871516165020307340874190009791702328955587677495869069960630255346861055459796355033981130718792942301481740126427381324091322046243318139351518801611208653798994021565541215563837721817184021864999513788899991912953139255036964839196482395802397737484974864741495493682704828595758076218851407591404473981875464333995811693063778876041128774985300557911299806868913187640341488262551650522570419493641760896215532415215975607782189293072172430500853173151090577394621036783713743889066344741939904451014038061826105669297713362099297496259714923907244441455512741178853439884361038381448562779294684021210265730485031336973415160894208523032563978402325129784173476078822568237124838263246633720062031042690885336206765690769206214666491008169653405811304543873252000674631872152296099380229854569938974482701844583002852136757403534661589734352782022699859689412140894342405478839177214420882820216483542103403782250731218586144799711544130733084867899653323862421279813240581363563977561692632200235726474415712475963822563025434348922567328525545999303762130106461796431028323293934325473227403528303782751559544214928392476868208650815852436360652462916868131127236354347540257026406658565547769506106522549081427844535688519325894275765925163610959970435287601629734450976978623410290754581452378438569846111955926331513315436857354951767206083716901359230470991292241610192054785866172067723237620858059920940299452561239322225647481053140665179100233630571368788380753285545046903295853605314216953758129320663915888723161454393045320429668168312819152989883445053638361392264447375023739194121844291404467435365723162273423930791010006431524330889753687102564273893223813051862578252481211987817117074047697986267848829051997146643386777616913688786205761361631438012453924079585331080274248358312413855476592909422144198862624701213315442397065972359621975233598873733187952114780986297975221931838140932005086506871862633956413956813389619758631564867435482577344092598386315311456580057227444682801712409633055809286206414219190687993481877977824697566839287822398374973938075731042969127061425287087280925897998277234931261214846199066427407747383306034962884510603400319493542684984666776207646828489845967401259332129951561120846029336160111783801977139835204108116655166480722975025056125178907020733230668995187245151199576406543088677911595316372975641843698446089771429797019995512259710263279142121143797323918230845939538298359872966737908652527150506407676190337485293660870219557503396126011375050042588654561783185780257619418386631266497766831237129616565993589284521449896982161255145679572935474128728341169897904993957351208984600589247426386213167012594884516570985238131661927525998909749579209867681165109468686294286088744618672094460758085036509971173805165765415671788190933728989860210908731887133284587876033344203400566952963908935868492725948511035072585126030043812628545929742011664882754371456009017463388389284226923054539795129916620015600398747955495939185493419470725371838985348534739922427899847798616106779462197119443674391411337392182028808962121550440835157557159494255494192372154848059318999648886709332970693966527001384025057690153220598183622425690137678917918217991029699460390983710955187907456404171022784722193903865207799051153101236037344087715832816511962140740435122000704315552571197018195675660679048071957668960972793618740961737583708064435443304900567178785277274573487029420756844702593196075814739860906360550376946804076129828941245636382760929582440701499979450968001024901430116029885733705344920023817154537309253299007632726894717046093586114384564767002715624867751248501417182112496402178824148416979175701099677803636504173588792492727751148072585388520314749536272829594949473464928748173475964357964260215574027038691049378797711718923124543496850749724816467396511338930762317156087035182237749732384695596886661074896136551274581788897093040120943898932709212357068169616668694778539416552991249951694798728300675700147799677647355903544039783564302380898302079630535667799575592822274405382631826357933307262143521922280592778682692244614709166574977114493910501948259319549268324001178853965447962028987698607854638590346225928024025701717249808406738256854142216011113496651256072806572830030660986708368175979391122165110900512456434241496680521535824524219449955328515579446982185310454426049554997948448279712290869434127999168888446955301672095944421849426867069671675997967884976559879651339387333364468192785525093361144373471098929274184558119813314742015595717923843441704825100312938672315455369134301404829300463696861673719171164857029869517680339264025976913861838464088633048527923533073130761697148291819444328399414444548145416085449970810158286269507092774290193009237413003403730155046675756155057302654019102296253833400697467895902051213697900178450841685176891928599990758566882129341969467290132223901350376937801210517199671055730863893815906483042608905765790850612176772793220047498055119447174942359150369157246270498227867861707271008263297740090696635786509346083271195989682297428451395302101423113430393262381815252425977185842108359957579469711544717547294990322873315976812899803357996252378239318290296195452677638238914791333158373302077989202996982678490263559373237451488426335510283735391997332285828547587134565429632614198039449825559391274420222451707192236484694213875711258775915579849346347640328782288805356889471803897635653901135000827139775448721252582665716149496176801688479434692217927549330439686370772512748898136589411229068771824641816061424450631172975522747477067736234525207106735229001225377567060211289552524825207739789891051030903897948067011276419758307207941559370932186973565049372181182711225228154391701471747903486667194271348302765011455951975254563898006772510241216190901537015130505730616045535420923219988745120926310664523129742354526442596540291428689304575960038431127416209076098792222525281930066877580019643987039538644556692542132627835088106310878250595502418099677552818379910974766295137751738289950577031804532562885725371044329504077619766236248550382537042714479975391904918198656769757561523786558589248049285499141265666391268947049184218386505077373486075400621693386771136376829403523017503543889218714153774435296872628870764424433887846887368888595021769634134284114873749922520304345435020799817151410991021396857490119221855113528292516231515563969714551391568626772568361871488111774997192910914522027007802168961329617837780439887034027888587513490155885494056824381639189476852746313994916598045815472622902986956140166804192253717604899747071454755563454885341958537120319132157579432027759675307353498145058643757651235089469205073689919377242806545076743388619319216851987215277045424844372096801519277449832772327634424796357930322277050218467030045591984060945343366254830049869690985551515227766014635168085812227011615601513881832735568721173959030795695670792607323147209741664419268028335152267930230773488013664274776797728453074357238179786801190407221214603409921676649445122112136748156955059252667481694960159223683908578834960905108528888285557763327968252649558916442307826525301244771072685177225674703503648827266954595994315192258325932575156343624617794397320853153927824227694597790438371927216560175162869654403358713258233483165394389235558736241639163740537776542514207911352135711901076948454544163527927145529713204903404692054436820187095341396788871996203431383560290980212859844505976421080047288852106313236791607214358591712212316987719468364303480264213568110147393044863735904293618779415999077473616923507041970698313162100167016221128173578491926964893303791023839263915052385737445927682547807004940330020847972243055516402853103844154694351745913946560156146754277343125583779880207078262629907962051191122407890392646494181272842370588245464257679212623430463381289177980823776718224669544121438125140899713529764409718324651252141843551175192454134732619516801497451797509758578181098189611871363010984775903008102940290069556184328565293906621857667331682307253240451768422522067446968482302211723023003761913811649481133398530691469579183953073565778920064875084516898174780838028715042138998939041653485101421312455500242648632611366527942690585029706213124893501649836207882888247616932258516625219107090259194322257153369138496708671839512307803948599046059248043936183092149337834662259152248129986119721019282629428663485364088473387933754544098376658785396881718370194729010502907667131416819029476983657658121752023165674321036081562038045149250477279012871635474383513224481344035260246005827754393566421625360080225667367878167841928146906720739752999245608300096205630707746318275170718053135093889173925165250476483432164311990838700984279149754355993498388005175767285982860660277741381318649182665758181740918352734955287544825744950224067001360332868964991007693809762665050698451725255331966420797720407736389315694709587010771896645449873910008265836142781808048284931783045949694395084599745277823906992513828263134574611266492490166814184139833893305165787003257240075260122511729559443068229911492201157221170705842917918285747794064701679773967065518511808641964830365458003065707055904538347860373920926523926536574710337687995273789790518371041882493755988867711318715017776325958852414707776223574296556067422430576064900949072566274095630512883787823844662393750313169925060906798541191402422062435430034547186011897202611562574469490458331850292830035169277926994624760590834603890190464600955183490756724556407872419525123589600236483109863356394543612520551636184700463489701409908322248243671174138267650153910979936687591709359752904050200378305757481368605902347180683997479393119381034606847889569617034571498701228780123601688929682016197679894634940352471841516250226362132478610116773922944457617968588236996714929358405256965273783210594994539300286287136246628560545369253284855299880451849708840180440197709262197837665326386554102002054854738789018116812901044405094751349010782052613783525347604713710599669038682738613435846036895731467308985506048761258987379687376608718549480164195922432833024807069342263841052410483060366329382493273437222204592656925289993341083173235225945983596388723383992175900305072397946362165257586923839887715683998218759339345690661958304911462417450119120802201585049379530604404047155327102684122125563742498744815161202487195293935091097154476683218903493800852087248528587263906780309437514942464489182461584319138620625113686840740586911970787522898425162202657673163140053982552626709519147112843056879578459124796677786794427890221770333024590484911529148417558379453713018173633732928906376534771174028723051786805492659951025015069667754240269774830777889538475991741738338023848292620805684600836633161401682160870833356668754808271413054947677700819302208061703273363356084699969542980233763919578184156355127193218930029980102422514093423034157401286062587275418097185741587109880505313637005517040057443680105776454260207727276421666655547137855984594853497834583000831136979960469103316165504249913828456042691002008076198999119554607491046140538521320291086967373975285231032773670423739541288679901652735784649677783991114463430381195039703178363070501307416337624813978413174544195023353068562618568051647866394216071608823781966538092729327460598779556418407532404708500235673417016229797306837565176032467337491459873868247859264350083285032329141685963600230319427643424907722563761283639853669643596645225545738182886635068795091195181809966690638355390700388043547618936517062998553686926949990333705216162202532968318549528597571942927289923354350889998740659354299677967178616867266894716153738051145098091755081780999381313765690842555617500452996841354796997601252386512141320301428212722801411941332703162920641133048959860554285452225200178665819525230805767937967667426805406058832453206334935372149361810322185068180945056453886018433761927747055472554089631473554372846371828864206077562370309794350921947172206287145265484166387472738175719356141937721196842946455672224247568468955097821841715938076497791990072934500252005441422237245790358458789216619508809661736177737647726998138145527332688778819527408748971033381931413767127281426686159273711272757480730706730990300309463909254904405587404338265657691932672316525357508534170684819081660713745097508355950278011591429535210438930245214211938245332157999564931219422967685905763483359955817654434297024593855220489964146506496865103586070840596713678147379580570004436180135821129699806120229171826558284662906392043633420339521121634574947410535495006442750997447255748916628000805455967241152148366303720937138757138086840226582815251283768666647572478887492818686006754963300696815321717034096491610702331066029924405508878859264827041419163452402484223277680375069763130568374284972510665431014535983588753177386948326067439917253490816542563421310670582907170352360550384869777808320660906932578237110271904300125636019117956031193037260706148628055295206203622544174035888911191715870046432639963649361442278092962761393906416417841407452373969758021581915009641223887488526253672730320861101362340267494453000746023673631113242301954641558729828861716007848438364605416399919179118693580462607916780546935338399448289820495857887230314787872897639508373110859970034422292493120181082099874183869416187001161419530869284739279196540442490252252170626179729132195183102091618883770104751863694275263761541687584912408629546098705562404244107319107871027629792012986565048183884902661394517222506908988698065316332945076786353733587689013464325396981496368271792766376281842599329280361914416398600103198176867237935289548555954361117408930688633158450817650632921550727332053392395493872932651751663084216672341847781740766741887237669017932457240623169175822504497692922675714766538852136328309039568535233712149473100731038638942248300139952662972574749750256389783418122532586017421578418054842554455601068324923758011700396855101043671177779829418972405484249327134569957129697647052293371553327472927018625698024633438682986497423829405019879469942119929976467674562344653920488227838693613888761877954145864173914833988429088115184740089618035118894868497966462538444914798762891031647807677966489541190467730641358787889599657743422211588607472660895857551297832784036408261804651988125979992062657251722647819819104897167059606317758159551391310683296774790880983593294913531843374713554323300871867307721651463294360706902252867984845459646045172229874861791855766874824348390313118627531748257537201256362742526169148675372475428201005802063209919108360148508284066138179802116174290406916680650677624283283837808023643795292256904909670690260503746293372292747183528821415834768910732052252287049515504879011533056502219581305078640547421850184684219730295477321219155963856802955209243028474146834371884928176979069616404984483738481835597652031971524187728474678866818226050877231309728675056663079391506607771158665408060724559710199937397104352587610161733679845136568146410844040205644112523586841248253075464402604215793044214057122428067738835374002278786981449853938537543695212886096069802234984007180996136964974565239527474392499614532680321456896761225896019917789734194241698942923404465245780862092602849003868836531137159884159408597882985024007978466937859929018870625441862703623984516842820620930449135310383479886172346111794353757974367843745935540310717782939943838337936924487473940830837440846757652588555062988923371736988705454136197003086403616614704568683529748907873513509651582189017157352502181900059151795590757794095159873180522135608820824673389833660398451815467141824079998091322975692690654844681131313432162987474302221652298562886991493050202088243280204783206895250125969153135917081006661086695715226070698491565018217294853643392538050891879386762659945214028350619810929634571366034996020618768722956674878415454124718246673740927473289903605414025679157678385100752348135015529571342692649443967355796340064981980593232676152688790599883371334750290740011291514226414947453373961208907807175910681267513041250455636651788615163617617339287201312831382510609923627867162203538355481298302080357811253005397990575107174265660222642455854437432732786019303148313806159128324546407008447136152057415427042848220197726715961290359003830451326877963463424446290819891613356542327564540049594786222322644702886575415849651528459790795351294037491863240653400712803128311202993109626859012954377635941854387556541138428362141682753129751070101569257637288736493992741418617055410120720924756348909171357167709196541500470904305878300329415233969004444833825605058186077777448992093694233665353229705292727212722044285545850521816946824303958420701142345709201506907364188060215315519184657936723452916176593104842543832476549815980717799258606746719195505944308515227469009626486758811831189625358277471721075350388084167880323016790446135024951722438368433207167908554129914129574530530540489726648845470483942307280274563610952178748335924247503147313900921499825676830347985320957442446903828336374945761580031506526834101175631181121742354809375451460536619429177236112940549988018799911074176815333315909363382054811557333577178842271656215278143305088115909069357889249687439562056114703849206119506564039416844173831509712122505977424519227017525784311450833165215753011899563800647526480760969390942717273990991311840765299363295398494916906899980064930320625640178553696334132908309909364105221788258811805588945622791880979205581037203921950329261899669562872706091445259406002283760302836975385354692902634319298794894588442346218918451590534822625864506513151430137614170302083355659800127971883618165392510085119108505804116636174143245307149580384398642979481076437243311409040865092057015858506163677192425764406771997554322247195902515370652847114320541277157509884395905837235760947771384502272266941502327753101316809276516082412322817452352172775728425023625773529369536669315829902193715324708661095606556015117123949759555976822713594327987975817468400368778747272508802116685609501959083708427706162980394300161821610601398089989200275097437987625264839516826045791783450880464413324786105508199492688174722369494923444500223852668935892340913439530271427731088783896139946739824017448841899593829233291737821218813227353312012532278956350906809859194265703994825516702810707744747351940424377696142521419452795021556375713364374472924925518873683411941232873728490069533765552228650414348910109100703089494115327882039010759378906271227470410709222484151642349781060691207893973166707741360123761570672767895783731623634933929418545255510946396339515690408930610182142608042540235236215057190592464695755697685616476365538284704574491558749052231537830648435300328118478745165802802939147087179435771597095922950316063432363982019484992814942721294466218028556446066058919919231129555506015882801455081778558108434161127645944990112923378927436363647584101605039883327659304526873137089129369643589999587936216748197206871090621151053190687438069697209639379158035777196719979039975716396969883149586669541239743051904815275091149369418737022023273406880739710692690256364143575923738776217869987971052114725904844995743047466154647608327151900470946179815732931527921874476657338205828857293006207307734037159842465150687928241182972713300609984649932965339356312744890821015365101454376589084064391049684399347310058600559811887616609829750079470365046005705515220156588608082261816853352507919000065939566361384663446172021555444307382184817406941236505566306226760390753271752354421397459546594207588755109467258952341422330789555639620380353119779771435196663331287154478224074867913794378456691520099826199582795958602266772137869569828089618355985329877622963456129459238463988063455767793084779274696559037008726061834115871808559656897015828384076330761299939385738223245570330205840163618883967196574422529126330990543188544670980638308438616045787384629233371032494620768665805414399646361862560997017989800087331525910282448979457188468119047753010916854357468139808336521342109893814824472810888703636398380857313036466050910398544560118666727421043255850633134428896577553634856436438675347304415815300096523757921274800481296786496551314738582448155316340718281848465224814231769724339990001864863666528977242494631601523016560566987163131714065435274157379192371272685653169316823942848697619214495479697193552746232625567501979341773905843036111657780376200784199686700186047322933698019234527117461563537373239564258061941225722152328850562496020815108732548133839207295755874384697571246461956137023298444025858270848742348809860120682018265869956647703680056327334459971614457600954204552532653285002107041911425886525175874987342211418742389671578334668732829580811427503568575964211138334299538744762149883613486697150026214684652093810624395414514395897605603137852476118604165312947383738033588261150789095371799561373289968874561261631851363232944825522951312800803126349937202714249062133071853707379196346912466074741075817143146541384896478324197505304785433349048927334491802185304360395584172078375656255862907341649681568390963687161158298757106519750880670637304758077501397528571805683966540766337241046641685220868285946502034201434604113103111163841149318320015565937034846170021948179979731194572992717064158176180939157974915305345694246875261776906040542695367167218350058558254250854193199468607772622577650335713240826821011600087058638769281678149131788940565413368514868772274915677016648943383585058380070202820823883428162815831153306936722228519492823503626347709331457562814094866244853753041883837804783563220291635399899757699170118454483727268519852485109317344149607234549997294190024764397284592684215933763278994540871375132824538791660429107010343545415660222544028607664341262276435237184962777238160775069892103518332619313078096458858201525297265009792664922182149764596335862214995588306132761492306975302157671103353337656171118330848723204020942622121716922504309570716955924173129870016144497475413186054693953137077641918622896502906281595104012741361884271037587400796362633596049097640747458382921172797599392028828069422172348573159145268504652205333910424070022669945589730382432573998428006581030617753430778953342231957438828880416451808120868286361521225676380435789592411447129912909986267363977291245274567037940324380928560848223440608287376949635041514585964851204434695424201148768440144907226265999598121561452776842724843607218991838497642682148570643662408895295330147913224717871139840410757985769786085439670858978745209205102466945764338851120028900760371582586280210280017910074162073912791741381135911392222221796920976790812308755149582835080710024091036922024478023068999192400034676653243257050191684949316907594433814829957751221008524821137472696045670728994632337223143782615842408218760234222204852652531918316671580925018432629663654995833351600121718835495264898533230780412571111631626550554591830872991211724698166930512317837290032301405306236701021804401809802842718343173232101124520635798456164761482238014122635447623231595892545429008239181204634202107732975435949728527034587826180985443681979780916098825335649853403914256080557964359316235941183175364577034246493724035630746550534599082546765637899401197045584764744407927904602207970521899995810650454036317140127027350475217348421995886198072238528880312106066918293686755616068202411519805770757823506715715938417392386405674131117307670632018743659633274685823893740780309257420260664278947622488742638183378413011543164376340107896513468639036868624694192297634278014357000682726733291082704920318891250075143399213173027142838228051319544378119702350914392196682237101740396408634051281003342347935570979937049706374019175340737023032393133957937441516128305678967449700405169008316586184850420991438002949212169103321343355514631065780992024540016724918355895780266565358821228911219422359043703057942900059985470089416053373864246106777975535882380230176256222221723185064157988396868863868565899350355131475414863382251789965625770990961160641458840690512699437951708527525596265779518166839854938724225804464068743473712946560553815885748903879667837355225497943794309724542413807811857825097344174584975075241741824689906637912152384739979142051947984448994884775495204811331915889058339045199475342412104821126788187887723727857592572738057379570975928626960319344290329040016185893398760145159599159011786868293275338704793580004931046293149059940802775478407661253000700620152202079586366517110193911128246461941636270070719516883859416596600150054002122768957139467836525258201677370220075848316009325471726713826491912217272494543118779996204093934634386252642287116864935678120885541887485354058271912448827581937135713361979350590599543006641415082998665704812484507208008390356961991527725330154191648275530540127609393286255680528529983483928966135254088913059490105524689187543006055212839426073618076978841624525816774190739323799647339262353456138096740467580145684232315793015274580832546621299738088449309885518698131213855943040905929262474573048949403138369386612800119989689765753928547703572658746370996190075436909341882657339685938661805385087192566526112372507690090006264926964044389980650024181592758054028439995708093173313324698002741102576789239187819132569161499688657456066611768550917469799616956773205982911651476911375414845459560303555007188123939687656231601926377000123689767654440286402876903899868680872055657632841348304597848934417159930496872873975278456708105271645525044730375178171605159478464193228639117423316846647135933730169490455064087865472830633925631559771995495816027850064952156425105807425358075855679528696229844678729016745267746018662606984212449180026698810910036793492925727309353002089355479052369820042341149497542359518562507126977535776542449183750595378159394941241775124773149331248353990852274572533839354404258996715090297104138417428029552528425026182145005976312445542984624749742229442487012151437415074343033571772383626212348095849590492504422783598836231329658073953880160023737885990538907316253881612057625264004474853173639810667537976798556067373670689015430191245122399401860180696520295717186713777402602797827174590743594875073022375265677933031317310089910512680317276747709804283133565330203246442216103190649680074767233348495784704714856051789765323621743724878272765007895983085753982903782655890575585563804273316801662648212440295646344213494238523806752140968770485102476693463795758016351730023240961996361021073680722015699626120091250601981260375385081513652180224118275784798722698292174812380684307006137941760174452758486648311742459768054481140270906068965344460913714863788578048949557031216738003864725489289547688044524510151138489104932874753660155922355063759474093883320302069498821051234851317730335579664275401702577788322741491942200256190215182967997356035514020455421222035696148503977520074793208266478929403253989937396407400452320813622316264878293674335033254251466454211496923932368638985880273587739889306975547829215243767209744494859816443160075302390669676740365988309851803252745264591276430745110051412241478065256528644959920513669571933182599792276375028651096500909777308345277302060370740686023519060497431035826221911786826529648602319971856277342738166520392221995893940972850862287458029025583365443518261764074927316256124657724659935505593832424354718431736562207604572624091885828342890651432430152653033743385246829226003958375727389712112036717562118249693724332065527458639677145132642187344361010792144595510554228439147753196697491659774402368870819185082053980289240487088790877327980213846693737005877637350253773341904822204015006443841981937329656614628360475794020815957122255404620702822517912705473848181533184891255783953632082635407973152532670212078662031341139340590352650942112190640096394746181771543200457555803994073938143369362860182772850315520286143502726022930777258421108739037858192671385201122950497410435818204975477320627002840252528050668257260757807029375227092234337665189590573141151753470925403675591637630769247721754874728783279550990675757198515530310027924228866969846396151763260498457897537059065410578047037936979715716835977167964412057690365507193991822762699929383065430698313025662993202344445478160252300336909531552972120896220244511402480133710106527161237718413268607336351663975423708394839209950807207983154158138205264221638634477441211524396152340665058744435998856251993943450695035853952317316942788285348159866406433792753851937853072375274681801469464851220211643640364769607475254717386274952180056540287412475764778823215010729656944130922078297471151637200954252111189682736039701491300926881675212776275972595657891911592124055531135020300848105967023192490570592428817570625077703830514681512581321655817504334640656549417282883025658529667463926413195427346749532879778597222505635622238509789472609863283666057101431996204948403156368970534891195743567171345928264795429030519872123586223180947020329859258349940916801233145888483254783560881083709799600789635206459423673341871920433930629453467180687095321943596751937482543569537341111311264285065367842962856559051386205436997733890231930203102727073460421640498292536482945930809339584662145711991590806588877296079131937432222573568892265055575987559236342786676200922246052090601430254344250499409727211386246334270120007159634116793707257918927712897878251880321053866361545228711799040986507167926211967962321325626582975717417288389778275147099715618024810313838810423900849772804251754061727768249148031773815103459154039341362467782286476178375674732175584158039623367442065192067862735386161025198200752766137302671149966032283817553198210563632540320898838092766746602261645245723041799811749767548578372425053351578065394880186063250242501200508007311481153723007912727837516137609683840121714379601339744059797566621059746465929720383067343652757183416793669936616604535590923427540015374977233221721089098520196824724039551088470612986981076330846638346385495714649271983103690871356315773922092558661403549418648890678431077962580044332009253370961938706347026234190357408745984664350048230181405864566146189533533313955483181388211990029836076816349085403799707909882754434894696255344168768399411869616925348869823082752981639924048212683307365941772987489332501568157015177492917754920062657533419819685802755171187673103511816042282627291200964105184625597546349767555236040684653081733766596010807330008365834311468633613775825601971362884749166539707912056355266176293076300851813352599766630768232236969459294959443517682643290557269512312057912118492612683062048283179041913072006656207445444646002661020839134813133408445823740253678258463088621303755730703205867204524985886346278198157350928620289278487884640485381498173981346753782647895942836293250133036859429982245335148047863646241675110423611197720501381309421118974848284714919110413248212514427496532448356622106588271449127564164415382302282557945869724194531809081735620342786445332627347743312349324478835650089656002223790719421239631605615722418953953621717311980827458273448388035134804964563796478813991787294366776059468390036714740560002539282973734501952788739142953254257871939183976095495176929622625451562895991454329601334495352916583171169205217500028939763605127687649783789904536784675046586512949910924493357446527509936186343612598567341659565508602319774204456633010557282360018819142052198566076058841717092549815570870383562842877204734698924581005788011165635683159232195541697377376551262405624644945449530370907439879443328089033517087061884801601162544090528791228764565427857137862794931116706770896010748090915129184950879724938965278357662707803875111704957787012603058165075768294688178274327982910393678747101028178646222008658695187084203884631377621735146777589167159091584465271200874490609238029524370742346088168806086168406744450958636939807938568879764423129821620086944248570933916519616341247067191732869781727453309829054868624656348211592570216812112768487973570975466578280255594526901542773170940488024367633569986709850356535869865175518857132441402554033233570291198056158896280364995069644459682823646760556616754252486276738971317275421781492636793004998891614278281130577298463579894012945608472612782552914422852099783105677034921960218880693637438520225569311108900903501704770838552139573609164968626636152452623526188487889176451166696397452733861581681220904471024449789475128396989245104961379467852172972100795100434457551950296965160779340545891338826728918545497748001036340421044327356531096090238888639912341483931487082850161943211149796392833276767557986171950822068813105024222175525345552903766131949117999292636176371309011775673986312978782274376967748635089058239409029815009752791853314148640328330816935452427615229181775190838415381896693009276827414202981237627218815171949076860660565278839592265424438521891032306735348484145517010409468346657022532899382255147654855645024448890104536925912283752115214658602777166483420385097651455978013197469613771486127306654966492264445768375543174675791629399765465050535953360736443118456880143936858302417949594755399710003947440275625785925419122490689634694936657085065049175318120798201879998689977851460338169468634103871415401136161789563732336271048712710472035740918033168466456565294062567585759018284366957222959264847511203918464138631384234295097192098781147770634742464175544016901250735787941564547146195370230738855959447250363476509828785219748221903319451506009353997975925446356846479299526680769971536081628700742818954333624708592895467544473566654744832767692110253950187303461099107955654589452775433150694448185433054732899897765709781025583523974239333739958132661961111932472199120352536808412735635028740380467025140633978436764029215833042128216611140927170906687354363274197697516510875864070247329219992481021601029297180093397991003025959258153351424660053987826309404817016191706453649797107408087251849855449216860494905591972273846952087792834409916749884582876127710625785325065992729125060095865717828501230916744424333435096000062691019889929034860328613792545489676122813645869269912227855399409206125286972940872322894837417533818514477565387827780159858300113196723173365523728875206085885184053514082119494126743559250205521801924934073508622578102746635627910818932116287181797218509560959156529832702390583184830760949462939223815993021084123872476961909474328823229038908712577556545415830547859019098718111653715107179466531345687799467742641787833840539705276507366158998658377538292558278131405115775999816834577361105583057774909019121947437402233261559381486626866150965392976742360364284478769758622445784229759139273160363111651964431777524357641517019859697489207795151070551012514771373903066838843751108617285501672598060936589352997489499239978615730955526750949983541090575377742351004830392730256982658970338070745164111293680661397799210257443100096683549303493817874090563593713318120131194132412720021241787484859634951182534703793828212041109237613906169664758418062241761784394003516524940132674392526481318020327482370387093428288207410508203997078646371939643128560861471372353619668214079253480337238393966409782538194673278417694920866664835738658212394525794912108621459974068799951643221472194605776570933978056634046936474493302098037436223939847615916697712704359100232285506905758181921102685676874327573676095139798317935031636228543349480623255070047890750279267081430572060254935526633895473733742580351320887666085167301596876019269785887801146854667911888984091397989625317187870561203123191091695180665799087000361529482600606946792754738633239058017105175305131800492405071999268656163073169971583966633955003601347467271546597528378321700070088195958159999430166637397336734789571389035865462103052906525603941674522172190807155198273731361152750550761294475028559575793211038162163654560716554481887704672310267951656699232039415568800208953426179464711387856444664372903825542824147903391387971402070633716488835213083031163795853523209625768338802406748834040435896465590479681558084101188123868749034221583392746904603447138979405067972951967308154815984349574261217064118982788728698342937066604588147666932406041548503485523941203246349883956147160560563913811487023796779244634582497940644877183501666698361045494420549016055203508503311976403513933674417724867081313603543013158705886440587529704547728774515680290442963617619371877837118801680049624112753077639110943944638126730851201969270065022592877366615786067276084639403491778658869997322844153129924607454254180402344321022817562836447119339293932110589061904398058119233671541101321365227820036744633560827090743927723259440008348482971926880954813985316109470294623371902435639873196845881176096908209778121019052975973425788261293405796269510112345059050017279073829383572690372231036962459647338587751664872305243769150769259761904817192918778721965684909944804783877449713524098373594139968605292921851614441560716376411348398267481967811140835591481306011684606619048967684888197033179381846995813370700430530450212279385024915827886520426520156509337090507010659517704823453439676525728320489951514779201075712475287527602457534084263894923041806507931444115899126283188636892202567435580179279889577362592318556365218054563505027410860449283929208446846761425128054296951000900622616325748458471471603051607937122569578713371130309922256317374345671896971839258721990430473527199391560475853331116315182484645648443368735261377991210285163232391001693419803839306536101610497645485839601051201415480452024903353519320943399293211724547000448239175253200618881869555800564785277040474498233565106747887440674466928011439420991457558830171791972250093715457233156367051819543552480497580962145113261885231752327163055335080169191229552027307164821965338593959334307504889633142861414075257418797295706099208396211977119434556611653798913015558371924941725969157294056671431807988222232688335618392385974326637197521704173629883886175691781973596681053096005682996496585965777030504273594639548680010585618091839433800384511822299714436705270620958488016212067099427177020361854072343754989030048365245500915322354323577160357283970490082550041381601013367937595351645188236594463405216397782060468882080097274814951114420428196875571943955710179338680529320377030025373444799135635000519355210974202459697173779719596783370750412501286339409605476924164887537083421919582454921887000145749879496150918753120007081028707199845896379291754625165604428189446867078341739255332451333764614033563221242007888389103932630289402574102927675651706703123201031485946519807719083273582317002602193464074521370873171594011797738730284259627800945524704786492782480968661707574742683869750627686460921203157523367050281779102566958562854908642569966376022921645333745181895698961615154117710970143264289394995943496692046363926645741437992111494116896262472105168064738913040214329675024711894203729998816932154847921084099578168285328121937186650508400825900122374622355900857863570351330662341272232520375160498763601074709648123171304168834607816773730292035862304942145927436998793359071736569917199583877585980472776186823032817208180339664890460898621639300129413133819992127119704067446432406087465732636599876289025221195816267590879362708484025848023232730764828611194049691224674148409423059159858009549081048320539986185909772889698839465249287666324881603640243893891027550909163988301300330568907317620882514693604476083254087595870245020652999639439229428232708297742559004895459359343814638325443563779955401974824537539328410680219729960627916695537831274336207491436120649485308854990684049566271351202811711111482426535196862105617457250064786735288151540072656904946153929491530856124582601665119697379518878614602306305016756042571545602456081960098779280802233079812843153478583552883173063356705937091669863080356433057535393982576843387417825543579728404311486359421970399468071037892609523927368107113299496397333581420427883671552367667464669902121605224370088670367386235452168591429289901607983474832396559220635264965017388107041264036052239205788207330545160803797874495855689964815243086981559432523772287705634897499257211776179154999193328516253991639372256009901247495219710174123551084342224217455444653342743130682123538025331819742319218336878712195038977425693799499639680775395859729737017134969864261283846541207628357971687247134529182567940655229688462630180023761520032574447596099840777392778224396536273313777455531845873956394897643672836938994225449072282622505438916107673015598277181867862177673439791084846057420228566737088808100795340445873090329429308182583807062114186976913483134876914799600522797648373880692137398893106980294097086971516378123077220319579882673145867515471926358633510130558662275207952910645981557303478198511249492754030621144196861004645783618398708165104842026197396435243268927969731632423586904215763875549671355864207340733358278849924240344137957823994941068912796817008890325040936023791136120532615491215045923472290086690337601843889740772517746725719435548787236905496558226688354445574170389713936469951548490245782902328778222714993721205401503416864840425956169199704141408879629355024608817956970963930569337082008970623405861460290315480197737631244613338089025869224159198947753742700038700911034195303978755317564801146625825697195369445475846096052898458998050232377085752831756777050673777171493284780664180953006836270589890262743134060342034560990682792702363642402975286600842041980614026159914389437529099733548584699778586879901673670914118042550256019421725333275391404628453812773775123512290136849492835605338666827751685856119422884106143683385660054756289860046723250405116362617345957364903763037996274417996692446601651016078701313045764061681494754943365236745250496521985990343590842968657302298732855129357596231607380301306931282312585073515762478254250145390483147533961354488879064092096934456343460542911479865538846903555048149805612300346154017410397984657514088312401784863957179776009494293908570508333889731321918762816737092376461480587288481256628856611762920024897485438871915008526504777066327755504123442370032213636059478597190460452039442135592621692835114463561150472998098188772270973944248104994321610970296191550725973333583676573101203797050726582673344041124269264131357359835085124645981312192665958508852496791507441706270883220777641060861937630402723406432695554818659544150245527813886800822743714530749166405747096368309182435084689524579149622746410703427871231685849402035212158192717723603978322240883851470862680986934292042770431164154732578516371183397904742570303919237770805671357043297741002438985711909174718123003494805585979178743190640123362737677405300776929241092800927659497909516554237199716947861201429383622754930047488869328249734686835069844610021847371770970298932050045354467867933863275898612953280621323113090543424038803876307005828492871648018749437960699924545682885258739370442087151428324667963668458949829936239303375313285820112253648020121763964152810864702633651656827320173864939451883935249322770690356268518940172647353011614176850128136554204201082545951643102727552147015170092418133133975995734209148186565809509468342892462699494074582343862941945682449776723634845199311755508009636300379385375055959791799604184391649987015725324582026138819882985711714977701615579509951430429579215541945567186672087887382855486446685733680855258442829300209433775449987746218562257671190159244188141400352994744292498717574765650352549153176676014615300259767248616819981164161335405077905312128045720479341479019312562266922192616093143259560348226515053359100505003718177977032069263988815144926527070903674707051206031199370666668103280455222640905680256503247351572911997963739132910118760326494966982132823002782015571428692180852256226996891732471513320156046767148744464182902628661013235897150618561045155982820175095837556596900945656759101527861906264772637999280519176239347284713999620020058908703573286508860094168320542347203770436747552410291147846923374721602174913999318317756247053764638277767171132353571142505258892518040245659663350169476892575714810482255477823835070177816941527409530919427825591257288703451858865283699634099406211518703034629842727754349756530581095052437668883733329932717973817150100730869688003579710800707283179010397137351201915870901253622739210185021596189638130711122451315803033135964635746295798440763322855889420634430431441855612369005002241339267423138291491367555693541701360132030017719737961839333844032482137973337121173849452126662601044062161143926964209123657108027555860805875797069509939601160271227005481715757832993235805543834903764891876450815795390643105705538530603925315060536556733161983197152999249956383004404142762129609611789910739551778240882279737399564227484712659845507790706466538243895742950960624381592957321252940439260735893472104937697747367627772128833032862962028881799728187532658307553112746463441921582442613370584826173347521291222335007241131010149682685258936038795496548021610549292863843700528176200004370852872539544762407613638942588842491321772210905852798504435005293661028507504982044522095232481976210876801134005491343608995652213928656561504131982738792249168522029801744451159543318761157244336339661400868260838192792095768553987461209318641984820691219768919074617936143618592687963787080638935437219806413960094170760843743704650850168924791530898542157126015617495921583172936008522392410362431942357186894408608820391852650736042981231802308404922317967516995316694914535767482082034082833776840379055329725917957594340673126096504431439061912981692552064063110992841002743852128742389411281844245866201303143821202041155052815811735459341782968158564482345227538100315478439024344581412691638421235033797167926796627708819722611948520532078872810118783966356905690248316081627929045766030094187584749009221495644947414840343530523545940431703339524901800822584164795058636791117382298191038610740084972316568516927727085461842712604146071925879671579856324170187362388846570486101921888035424189568408043137440378231808528649136330437397839248929772331831978853436538370364879972409768320811728222118010540738520641169844007115939313558225465213268357229456847073123973464866571489184080749787807125560549585600952969619930277864496791856025053650357674483148016859372025263390499663440662374731224051197634042991571400316761593911620585311250114831009648210404460698676740867670047839376942706216006047295682832714939010733805042873792814999715698763483839899508731122871004581937543621145342367778688271839558315833165831612303055480273767486605233924500860411256506376358021327884598175506643317398029658578854860347886233304470817950280603124679714517705248379917682761036687520345852523873789841317727031218401129689868052211635221310301190561830376935669036632430810378800298100621738116407498501569740708684906460465907111839402319294135356335161102117678920844668887901403049390353357532082242914182518307716542340373148723243181578380091082543776287480844574082364012175644156341576225932195848112271519244009370775508396570233070575231591234604289913277769610014395647110649153215958689678983038985562617161472747488320104659961431560429587008830789039536489426919347645359564072160604499059792409123287378810876929341594252339920608811589845860834599335754118012219267880466803613789546094080327123278289728072761820138886827373406858733013050514279466031048319458951126136722977763975117845596470534642373134852920290712474090714632327144937355937414452325141963250756278337567935920637824822694943443845256119650270301656252444806757332268074942414214610468567497344435097495011302443050566656029914915318570348919918697133394221501181405904193152123421023538675633164569627687078840323311144487407943300889452722425964187121344938596994454425155222419322706596201847582361882737989542480646675599382002893502636720374254182595489057857035456504649822866646625794070430429422904494757418448675572059433414790551739887975263851411416802704678015767743494492923034415289698271288458734712757165740983178223313405585803736726792636798585015070547549501986143192626352665823932746169924849736437242713466912885290377740287214697155755853123372617534275500059500068072991640370339188685854422185962219275263824651388757870710559182755918457802921699546799754296414376209753498039928211156765420806623226801781765658559098095465469125766542194786418768121380648945357110558617487924740625343452594984506513918841743086945568362187903146184864000754693796211215045709706435934508096197910230726032288123872848180051231591014857513564773681169511495074284581429764966536397018948103590679799954212399651005550741045985179023705987520858494977930555279254953640340428539031112512850747743096430609910491940067533383934210524632346420071247458540731550995058472770286817676804699958813536359924599884780758693746215752442514889444700853132098903502458985091427839616968911905339365041278590956853233496950198617298888425270917817008728491163552155553623430023239147421444841754449265810444892070263466372022390904813282088985271643027384062835747286987757140606051506453976851926557090865091354193865256596619779882809193760129306827436102081124291163028861628670896785119266972601568920362443562496247543853912423398202096307432512124454301056485251426747178826846275813956425604232720995418787029001165203866985804286990777232784108360215010884640906709517961716181200621700247026259133277384820586711366373911480566043170983183503723485710984113080856978117896933803730079171815699238752347658237311792818475183764262123256117835847914649850192210973769424154601195896684304364644970641409349318362572512866973583428716346274595058200866309835237061007596431234904339394300673678414678495781056830580069347853222124770002033599574474634072832364895095675050390934464265139144349353046999570832954089115640278225808763328410107256136372338795101237501628381146870272269260512702762606031236617480655793314142283962018723263139299709440033355830609330738130094299031116082401518966161248440752738176796735403786724494222817872163275828869264161796608288622741353344627203687211710247757754599269193022584986645716972869855121625372544015197362818044888725711072788394487836536549695516121962765583733795958457299401254768211348703031612353702754405438401449784672427653800861985023084352387673314005428836474030211691307271696008937532130202504357833518673047154367833017420880381917592182379025530429729724594035711629761821508852103475320814522824027139722960065540838562003462231084585925302071340757223317040295469022501659964612837004447456092970216047167689016541598058942659476379849238761233173049555466076270641151706923620883569690554692584208595982720416025802374200360078091579842407416576087735724093412032617902706970862501068234190215692175015231662037536454457810344243180118621768748056623670285088445331944712340465555081391907989165074299349406825556233563035758951950775983762247710459571418771645023593113511884798238380393260511224939557211215594232464164468200924215586822476375040155764952639784858584983972338389952305950454976415309948824457670878400796610996136013790719951734318915468441404072733896883045021680902379373208643520145017908564372008141546364587541730440773839636779731193575931271739053389856784437262231160866576511922435979191473504625004162920084459416058447799340100289241363146105044724408290715378279381071271743679308459445301046201448934248058573817877827960769783681099664174295970306051882975247155836339677233507934732702594727921102179667906757952194914904332408561196040031471711806559865534081231746046646754132599369785789602340795662302920648143650597048982643064908610512596702372519581296888419357550745720488936753424164629492538262218674797066372976893676494013572380690988387035894112065241853412033388866958728269522523121210552489134596611897045048350788524535885356640522690560127019578079864912065961050684001794456804612045109819798936953251042958418838136887499856213822968874961599699215378249377956968443893529591295949384606002942793176491565372133088258430581680949076805970798898840541355692148644182935774566890560906088556239101271037218303726659304845643713619184798120485453747970410926768209478662861001525742065668460582139000798112190660550928709393825781695812497447775053190038353569946771131446864293807289901689367464862254722478147400161250691675813587632894287305564847157612626008165253935936777137282697756030052495840240879701225503496403413307870333498765495208222224699987348422380591303390213468082539342960609148129477512440072882362337344401416670177860229755960031279457763715764608008365655723198642674573476576042457349005471521319331897528737250806297082310155407323572183294036232639197409398008244204407524956007828849789040756348679487496184706296042978873554811334732386659599363196503383049707281798723188183805785350155168904983961403607988148493163180781749362089410024776766074276810679339419704553011744220763216304550138777289274839615368662778626141162591140103152225989324099644282715319156717827013552941050093885229367733936381393780360933255222735534884596436222573083642342873505478466080004432504545324732770139480598764754699568171727517766708934157155112973089792599120535680267476220113754322495695913614463724244877138224143881083075230430710984737231569408794165381690896345314774388277695713786263084988099211440070539111777202449915076540153485838357365761339541279476383033756562717597919816838091041213006872052123632114261651335722514523452326744702661052751161520846286867234965762382585808762089119536027590701369802109557827964312146774565342883353121538765802443879622701540825886628526743874426202489484117922677353904078231418729862991716290104892022408670116321815960906896655257799299685929771309261028311834092751971636675360719471072197776891441457920660148071648795380334350151263892643900330582634202264637026483076676141428019763683782274328472882286110425605763920743211851947180648909295053237888014291836436484268163159837385573941477836863106263170366297727841822396592519039353292517469000569983816813765055840901201686430886198382306185187216698853634413328982436856910426649141370091749779799860622031563781996566231707368971669600106614484493139628707702239052390304592160988541503995822727713237915955509282689836795092465547908525972965119526828265865081263462453562470029033317477959943128694611828141457674154401200642916330204454726309210087084420683356399764496331219268895230779335573398460198589332439418298141790614326663876917145441046725394015470695543628566386451329202969556632664865839755472679850785978521911760179446014334187088767369405227366632005929770211360495990902347515766322889997914025617455626435931253851760897045087721203330465314278099331843314016764882287108256097971843443488953224724637653198537420922767396444829197245966824101954570487324237232949814720010219802612164909643680772258557336115924827916689596731645251406239910577290272591924116559050970020219134367519648340970533751373955582221268202407025168208373267155928602736053250873118334571953235382031870653865116576726694111575331706673504069910478130109830360422643238691537354332928631092589200979423711114035062446463775871382370396394867353845159219662034649965355174450799624206042946684673432354541676566491621676046378878277463626358029980305995858446288534942129213842910515946513318958557352955471646190926630163455578174182001212070176496098855957432174147101115674040248052389868335452317602677624505603455001957977327157676068871824698940971833368641398416286458750121942438357199110842585307260638912828523137917168025982436048347536582622254928900042807956734591001291631017232672776469032547155342435993688402039748143655565335652139427356934645908890382848940343138628411300515225612795955504482913298047372904860822740107393620121393657031653391582864670145011711693320841347192301656895396621032904239861970750244686420511926578674582907242203948726299369245860041247185868642633547616920586520084248049647943164099967044828662177530720810264783706868692982696462115161636912829612176045411628263230840828954764941701084560963144666825300892545719974645242533489186237203188168910931726568653874234444978346745373877000873140085175819884417571004286286584862802371806124093419295195632582645934044226862048629211655832416533550874698298397202965799575560178929489320446455345910668132061019050431748131888785480337989602167298687464056681778824582231248529252106138564185133020895469953812006376704805875468202884439725813119662721556218792797664932736099223438842001360638825363507447496222088493955757661442714057850686178963703247683608626680505333861303516113991980329079599499981676866207511081397801647019860599861895108511184524184847928482128040279894075356531133530773806937322774329832290945282525381006825573962657867536148556363619483832973627522080429727377867491531230114443966672659699544404058194361425811586916563463709475888253935658535557284727439396811742361493655286518387442831134917781462137862752606540312832048660772915936262372733322302916013667026913248884104394491548144316062505524849217898996051519059101343795170009425129303142548683090783176446240837007598809743859077065852085390092566397273506207242658301959657834545676574652128941409558303607149758267609129789467256032544851187592383609514186261381592915905846819999132572308083542086660544133954516429211998205984458167873802021805366636670384230683862148167436502924848088303498148643336732849397045388286527264883696766612939854964146209169629824650415509148297248917731929256298955117809562199049974296731283547864550509985575296088340654457298925619009764567679279914242800946935066038115476065498283104429445247713740219972909480687479879844038799836879353188516529050905663739056847153662681756696244803290546472433551141880158839838019979003403294606088252899335202912623805353541417295754763763857056956688630921788459062226506057160072043159807238832546200101988447479733501072711217698181444372211813292274486265438815664609822966359506720120371818302236409953170486330712901673723222646254015166632880284548878268172840486467747986899333663367083859154725474324279451631877705281007513412732742597055559988346402137516247187947965438081135775223127325835580016040680617483789240395743259670130828294100812429622244081970419074880670449109764389174246898842186359046586759476601407013553904673917456395715802105436374326665600774503648704222308390709909677852830964181433608578706211199643369824169565031262239373055437119889111610772647674901246452356716497229307720687346214289188650587578886856004920431141908527516711637058033796791903313340000338833101146680429431831041367614188568480984319055527455815907077078389093982192306402683404968734399064928903895356788215051379098340239633508387052227961665242861983270599643540676871032764283119663654226418250043377098803459664154828503322756348649401342880611447446580951913877689483639122138256690885546576695954715548167359162564721530407347331597043646663624964700602731985706334481050127059298345871778079988801443467165686624389136433451660788282735494161697291267463253413592115318036741283216189473102059604684022879054539594977308281382885659037933049631500446137735665483231729118169501705668261328680613625297570338891373321510680990797228004823783738810571255179477228208437903942166356978743602328459034913306335828180928604535945973027967649551066329848538571149989841574281948346562647785642576194060674538443437915027499908096674473180647214809430481899874706147576897766615822321230729525083095400331416508641125413658345177144105522108994757483810707666143735871449667342456915245034237980804195460838200020661216679512762298862611222751742037527153707933254688381773430153017094336367811867750660534170590398785686970423611757273546073352303883203810108984952759075377615265081598622787433686513759913463169015665635678412463477213628019385231252162029130573359489162559791621972282364479811797770858955502468434918607121829918151148336111130187129067062760029479137448596480971216296221075741469981978888822260713309843970020650724702215991053918297541813466251697383238583258839231365397643447985522651138138366682278312642036472467552906596531268617004421740800855460500222220310711615447539039142147901984638621328071760083863561795384133729579054829757985918240816056682338578001059861201884011022455932139463514355633326304195190250534102808283766175619908291524821248381198611089116113026855401054239579110029127187103675740110232170558136410215643876178880965023230728211727995636614047536096637516734822347142574071721965543145454044173540326109379190044250903259464949450808691284304916545762254931490863613528667539949375930465260810127467307822705775982616674113807667429425368807076313700119736304184253120936570233606811177876893627945913746703173741385847930577113039250989497901942924804828461097020724743514773490036014963439773584239255683443446154058147905880772722662527353777218669703513660206072126374401023734553630471124732130979546752381862591983992955068221291536241689784153988833582667430519957486052607822979674534318154583153509079764979271619910064735190659539358180825934610096080260156214257810268998330032235686176519956873761738482862971618040724360151315888792694058397740358827100990098481173479339114066805606727805925809746179939467526844978833252275053331757706087056937439060883933448833468314279049637116137275030776623177260317608951750985178459370924074164730192713814847568276767761762212631950507596217588519063697100160451594321827803620135665704752302108287462533051365206798085204171184734234986678640805310169530657328369364509228026542014855419682296073647921124088719336716709557701609965472216219688113375362764680803164201566884183709331529790205871089161682021596919472444637337778926476386468710211693979106083433038394597903407258841732696926789551088682700359801277349819577481017180399945147573862410189107403161919367408258329632362742838196919427538782244284202201315013236985293617991314147127988962557177272842883961553486868456282671972594471045275703592554365993930203403881245635475466796540855295741331924187722930961201870626086502903832773560504636861320966922195108101937267867446789152501228009012488227675937886791065140600991788843241267394361824445524557081571700031639685222738375148774756603813524758302775206149906633598311908229543570560083623455690547395602101604124054565151460377490517408253786612000472822135662180357449263558778428895370901131579024464221921949209982996744459596907231369614990906939148349857873747897888907437832859171466695999970952482985450205224606824508349321594025217763204603562946148177852380602646705771285148770309969684812650598711588680679066067509593449743026518735111109941029765661102081266168659883126255568724026197624802646392333343010399702459518647505284724665392124778766736512723286127918229860445160030056154689530239140169542457330668665975171623281845602940762204151797571152551958688486990988787654654704477219625527273225329008513575432656265695273747179234123815861510631577261388574334201236922202268071841605359785778287925604718104964551319027874343107367578787929659040504715706200636955937565778219961172641522403834108751881966855647150939940387814971508695423397332478743282940178931680397019967032158034634232929707638307641331448029230561769742552338749308884969256831838819315387407639149549827233607702182681550962870602715470873237231107372375258303648751684146742866209647422066754235417022922659134751906699750745519025249487185313594626269164500504136739502817300330080304322945433144883757766471923166200449704140217655296781372968155777448827506677989547780578771937076601439896727856848672419960040386219705188888226004594289113269259832317704760976185791730528249770017004782501964597423625040477702243811511432054174968581091879045490215674748251517682474449423504522899541875491128878373824646796099278355507312969405598019431168016782230462792953286688305496877664354393548975122341475993348929481412371013453981258147603673736332753658549463557970813216182794057844397956891951750400523386823588030683254755409341133396454512070284369228558999769385665403165341481229443652169616263888430215529967643666820521455407960189239593221592951750741250199780776729611112098671748033827767556771761832644383247109527082670744174641393498161146274541257117515106468660428106491433639096037865516591369990685059664786876725750214079566078138980704429557717338275635138881883809601206593133098287381505178175806937649040016440123610257957516644622100481979005328531692762003855122426722304205404270982439977918269429958261082190247097821367682903356042962437521433538119643181339847603242854302754396013661547602350756302458973832863436576215587911991556180908877878620861836285513457563229405774602132709835377621169138917516251097693005377905733355188770120313133411381878977170711572717620410273870505721871292785978631298495581937695694173877458962166750997691904141244451748365180970057515760641096836673919386266888067129800087000634266090233424346893466733896890647619679914924889057810753388005146555444604467100644112670311669448664129711864487669268183092209191085931827909553361323062794054968959748760974597486405189341599930075080109771048617113524936417252894456917724731739491374714108777346876753039501660748347080416008868353671010297467145077736646000506514870119421700488160309905294010433149650811284840833425318507714661064917795855433960852394699595221119342142439037928169795629054841437754828995723171272038834489217018764054375948974374306400637629823791339847974756141463478642461161613518593897368139066478109571772813359975702926700093235064384854701856259079057398325334950075226004844749038838868009342612719265423587319853478266530709976974648703154487244529710556322617989344976326671056128176268387668535296019302337919476163015730706359917251203485346239168962802912356556213750485130171220431327061529091597278708602230668592403705084441988738433143616118497553227821077107417811183355926524223195889712294778246492915076303768690681890786998710371083528932428323229957430535250089827500330160868364894109267094323916566763751525097451532240333863083984267905592154672134486907479809523755867928524825545307112446487644520291851740207353897415475041816890695040253345700699635386347206414348113840477959369742828911866981553788702946571283791729165181477253942505606226726928818191130908390011673950511305148874690000681776419484851284338679807080302680640668242841257229008769563280339773922794808797723040978314927804864256204484176107549533149800269538385460877741706931675271942287256086112729817839197710198124588085890060797170869098329526280008609927118952978204895810785611945829763317513344415835035248356395220168520983107970758383478900228246671532968256447435043209155222645291416194688157539201018353640396760447444227136335542614157381345562332856803309344862463327516955824310245433963766021744872838616568232146783270797949735214441171749728380213595279149076325937977406783330960495978027118888299114697739104731307647880390704443051040630185363371338603802667830067291546782089798445635517124818562487333131053741057743151301125978551556955118341082215666172752804042374832437287513154584038484693441832462405808522411657782580820183813673390256973394885515265152959027257320551967417305350633925913821325678788517152409671527654757782858984946752438341174145041376402827367136118403257296594894953057025746292170930271859097231872918515680618137336053462891921383306127113610612033813477828170349550137419085627583894917705158508963826718176882401014466086774914923320414989344057795433574512115297963629499172362635421020340269102232423350711170237450388628726630128827132379203220083421247685095614060658544274009978466826382991323249743057693188915536472734615919982510722188738394889506839459751897123234454554839837822294026876650641680560841802273277037691188801118689007213595275611365633851142711723979489651311695667426321619525951910830600558393964812456708870464765672085374339379410548577317260449045383407868504766985394994710071226771554849212036546152769254390181479039943027670094249810883109775722969078701524378205118247356287430705379337427738252146290852945626752934111459287619717400022944668953280177354889100063741281792084635861999219852268266801509130890801050618724698509881639684413283206345919050248357760037796795059419842897172903113353569682933934756374310513348638826917256675491615950816836795969006696519925866093761249434569917224340905659144985356894569334228903605859366101579088549984322078185225065386660318767204449610742801652889088567737856637043787035280618481665128196338506658988032711550410654912464512848160658791602055223501794196557536922129304863255264768559635019302839519488147857236677901252290868386564101862411532744753605040821825603725106385929445932726016262164260689215618352309213985407749566217391768989083020223652063317138153354689121374370617149033382717979803194940248923362320733031572793352350511385719147824907166331191606285222516006669007737809999398004770664572510568594333886048047274734569942104719946511198046112360644133454338173329923040554563403128172434432099084769825636984885955249364196469030286481190857548527217864374304873616076288653276062016151555089218332912664190465412649941269716231466767592874730105606684337055528655757877150534786572536964076746952273401308821940821925694018083723855898661544019445940516018544840231469123042671077485875063847116175066854810215149984274201588126600998154616392413020572199478682548284263516929477044488811208312040714104244141147156956913276633731411672918371375365993231261712938016298336635026994535113482552427889267745121263357351046497512553235464118102758164424299840102485991656879925447064406470050795544379137888130291086550177360733298810574937095153569062828521656132593475402264532630332052355595120769833681125670386908088532818625393761803165047700252070628947401313401501129956176628014256139860871314780428001599225519445760862659450618568517254345256190441837192154203917476553480086459930420535859227388360892581028804383950437219210417824758607466206176242896458044038297721370242682640780681685703426498765900439792996303703152636827551226260186867885365389521641539764419288321794213464392218924642205332853813426854932101528881028408812345693497329107138750070884319578018993381733868043315550160471484551674296261590146125482528240812945770780293149383709579952875738666993635136776727395345417168247952855856558668107429691732850137389575582836438411943245658569040446810629059910178004574138332610494243307280738743246124858739014362879132477919408155203090532902484722433442002498871061189950617695841643234217139653386688940589480261469551819131452067520768835789798052233502065864188089563630456890454508508196610055857579619861394544403130925328089844263903480980204592933503305233720498324302247031935677514710689514183920221023604524118357876323706245652325030249803868059341763404445502273443632015802493135268359148216915812245492913726321181525730637564045034612560298843386156545115118250632835910542586572128716535376103580600893896413266194468717891090356761117587429149269232995001293209531142964407455161172165697870548885319982328780144646854596390079465497916830917365069067963693778037452745421899355373911379666433305892947953920453465999763694345207233874280610630495426607263714226384415970685491955411910427587231368608054889332726044233328718055996026427824874664632988872699967751097621390202942189100136100472003898337903039165144992210890052105379344328789394752130609896147926269623740382600705977026774996922105162612917515266011104811939122983714756738291270501629923696461761908532917199316339231754780763650270977547541458486116262024086691976713373187034405838443759622849818760637016874059234120206636830160939593166650889957545152450420157809722171918740494379603013282026564059015512218970695937108985653996470526148943621535197414016095562322045381320792640078555252707139743706501516136597069619423724365621512515324476730548681307419952051325546772932944213213616808307017173012997634362526248389883451448485431607122062707672993945035292154979709668924551891296433043456163263275488121372875509599391925671136572172877892060886468392745081820707157159641235219545317546039946182173577190178184063672436821362123292366050506185988897415905568411460019414554142923680859870263270561775616696283283757922362521831940260893752179048406254818447772412531771492703840335544434149527237298041871467756524584911292310962447018757399188225012382617142977861492294980244941039762108570172041402018761290500733359788699162855439986638965741725581946766337990463657140666952241908837625053053486384512634130761847307382652725409774394305301320899968668778689496070718643054621177284480724721505639835325645971286948715794633716840024937299315987690310758092516190016309871981650509296277597024942550527601413469034258367229634917551157209438749504446785100019955022827542977420023012171462710627621433361395358994772907097571573793232350862879263879684994320456410937400009042624198030095717702136705743264401534167488857748366717359423654965137166531434950515966444655296638959072556856580740420394594111711493651785473829607330798006809423785569566423888993068477738814857423573653673813838727095635009255219258542211253087648071497408887122953007129690239418016709611455800346422654495640735784975013348250333659973220113337014071010574081943364879614460138789136445792003553503491095118515885185868571376721612444214838661823625427832022941111777884104391594443891047955263030974507076642380992537548036440563608402142259372259222156836442557954745460587575337766107865343278247639595561663637451249617621618699973429735551299691651868323004730757558114934437515149459886708179832778555561096938258724107695630011201031117675759998500216459267589666770013402818731637933171998077369055936718857632613623112735430721745229726436539168099817492391217660688196723947360330327058002627532586798847329257292907868898311835427043512500117989493690107978088712571732051160256853593209381955355319091759996488729402153285562986751038521591790445963048531355568282393836857891531849782645038738961683545981928446257438415709324275111027284315749820470099177200357196362597911377049734769001356281510485221316526377596648323270660093652156679857522805629396221590736410094810641530424917896797968289362615366827483887790527140208197580968516000309514154547979042314437868500364802602080615766654017665841123539809550920347382099775129023756554926731592808866951847882825802975714500287252768091184887269185197896833375077987799675469149495724971292152541452016109957371490813297131751840048017600405504704081032499041450366384375501658290351910139232025682777181852581873891207875588182274146630359086189938235562376301216005442724168122415160741575735222024790317899766782074932243335598327860947109353886216509434094956179629013151631660033857174406096461750107732275353776662506546322574228863161212932611715065839688511121347275714140607688411521821456571565601027388230548758281731061307994168202266721568975067378508934850720153739163005033039673096330969429567808897560460070433286195998765603535863270014153633133838744441923064220576520999226850086861936966352981961509170822346355796109063687456769097655953503219642280360003880032800213429537474151804768166413470976475087491591991661728322694232523705729665327819246093207290411873295215322560347192214489731373885101817643699327296125011414240890718353244682007115188512661784974680617869974862371994324385869904546982909894880199990222920812871559778775794839093710913788973453336308510507267540947346029798690443809143474431383647120476884850873483989975908593766318045219030127305257041229245655439888891362825335998503570034738441693841017895712516055018481525499148551414031007860884875263100872857816567497577055167794104278391437342156650917627034744419754761618299713265071826771630155736208169748527376383102414465716816079127295240540452237375122878275684804095270955563753472223055430666332561727068446647233769451208146494364534442552806976518968806356866528936099643490713457021444596245681761454784802333649037013432488069753781086156704892471636402307814815180427218262595986254954538564980631987425580062346009025617605612142039900889980054533680718131070340149427538461118649158316373081858260720705684739749061124877021021070460246056463068427954828051578200357766526389902255355340025175326660936114006493184460491688138415623112007116375900404527917580653451222006343622512266936534990916598309081592778845105168200279520808540510699327427197583541295840421151020329828873696033808114461605981466757743442584193458274887805525190543828850318711068284834151802263473543287213797297278185617843489532485548427929334298052225947041383491278270662300222235084377718604086457424624195203050760962106473287797947849483325888332523804242907594364294567058720609007558972928874371430231971168141084202265164140637905804598138081174976613116533864491923188953679759646116475503001327373961804390955935534684715419524957887977007531893125059149446294573839115947264552702599882325930244366748943964395138461441858186644800142305164057410263215284524781304050515135478713218751109190663874085040208842914710322685177457143637008108520274377151707076069173273960493475216920652555875548102059890914552375995182795267635077971673480388540965583458165530742141204666886897679280539458847647411389860799523577358531740836020124123980474370439044849503305183151392602397535419245642624011338081211428587115702404531088559285022274960812392114849038810182283476988384495530909291565314373478192346669324807354207803077029530724747722997602735350708964119880234457943910268398129891583847749816087802257709138751316899098952734716099470992644219751773599082392978621078188320875007664953859052500135932528783143930818190991281513634274642126928696449980094745343082331690087521070207284132770715306200283512958071831854293381231373782990901260489657094206270603868327865276823505070097279787858692172335352534526254906916848284570192679737047653154486026238773315199537755000212697886864404575562431048737071512280512465359017948204609080945210351964856505607019099181279737486648860286938340408627016542548227768968707414743037981415561017616634860822144769019702808074767080118463007103544060316758004501512228346224173395873072286024911206960576089659454134886725025663592017637409246710273353583967335206128401875336307330421603551161135009345829942823132682917773457943985554736992562517106106014614556007206727652802604057526077632201694573355550407064152999773533605121346089354217799014730835201774063278113968143973136998638873307310091982836708616793800158911966137713945165711057358103787315744516008343799734644002576324104456399502225623397611759675035446005079667025500796815480843171601732807002436547678753683431976471996652160899397829816574691572473680117705556399740883433683001770437106116421183435474409630084077740982600037381887937482563309592510111237717030768768518810381592950234882244314221878725240758262324074809106020638280762537882063718394859581406081742917842875949365346305573885240948939934477532021643239129320512507561859102687840204256433053859045214856172825573674993134205617534962591018789580718278600410737056918912410676032754722882119227952698646126720062402768010512688626968309316463047064289844312395024351856242990175941401628038130237148075370356196159634448837778820200483615802354190696405518440840066069737018095362319285024949643438625920008836273577595236145253162294576774304427511301343284793596247871339828295584247745486912008966918053554127954072019328082833533348059203431293100414249470487179874617146435866191188227975735488631581710665163771574053019318559449588193795863950831026358932114591919488260394554634584201429600953749689818793821270614019739400526108558986112194177379030582770271369704113542867402485422005425898324921293200037629041472836798846334838873505185821115219302181327271668539726933165646725275500822360011759828594199401167577151302607527922255679028662694030436797667767230240314931725958532485994204248713578027162525068439280812084213134367667620314754476279585149554709955219084671862894268064827923279093556721895804860629689562523784280835828497633066430283881291070681582607473597805499740984923295411366945797434337743256702609658141098258036895263546497616553626475179566071862414777906019954621349399850881853529742938102693912814081457289905571272151794471469403791431923118669173994855044831804834951841962523740979941738398618630842926639157459676241465701391201579269498488044598125636851552556488603365972032540643114784109954865547593493527751744451224474460179195527764736025008437045663114892848672233809304001215306847002222124521948864664910693337656987086422387245751015939228925467840072104627403445452163237043742158139704997987386445712881308986610513766556891558931494964717960308326048106369011976480930272971547164674727890223851528971423235512760934232939687200769969655399135207265066947803096701391568954947069306878904897219161363532740301540586759506221643597233707046997441404465544743894485665100246119976351593068435591030969172363749937551488658376787838529028974377672471607249645842521894779532806429364021535105324859641814451777182984516339642752156918458780555021277254314587111341494928717803567850922361919486859362379464462983330226641842929287406680304321603672079235190924258209641990653377229574528018579639078288842452524114350337541586862677333317674103446961792572288885272253204561417313794364208718804896608329978010262043540909883185462042537206366636607019429378898881109430585172943288464946325243634300936955166897964390350291474806658762400482378419593922847561383704339463058033110206042465474762497014570829218342934909881829520332627321924731380996655212352853658646130723829374921344699213266920846128307228375699653905395259708046206603051991742940427597624371139861341741653517502763168718332768347387791286383579060833384492441597623587891216033804916529082363566861058591392345970976072351571527531357249070281760438566365827562567474435636195525014003171737879565080256166637312242734533924946043669740656998900044682603982567097551259683769297955920237201390951642911170295420545866791494087893017695335409869822485119671145822291395095607884767583369439323083560104185689871982002968198743389637132092227237259469656624651209542650835317129118937425030930762843534736381275758742017491581453395550420278471143841979045700182811611157599685580799385155309685709342399055297101924436869357225363420158249216964941604676215153096253224318292725253573770915686728937438498254575273853461329528980987768788962150439310279321655841844270724437318125575954668871922349571180007657776981959698841696921166879897423032373070819088259520839331308643988011440067560199590483045789245558500431911714534240910312120904162455935364561202551932467737998000270098115225920816865715363413062862811642476043582812635287004658981237424954945243336368639970670870489440018307688063902379081290703221954113139938520852931262786394306742064047198924387734883932134520649569258190897852144090945208390655405000872120916292592233910717724467280150630653750270516655745169826095146291699989711914377351210428652001904049001954862402911601599810666508971734089063572613584804929573892955737686571566405442018368631673857427229649864557069613586561700681744664977922254484305988125386377220823803476179204163059424576602432699994956269177123412149666809737766133775521062292436154170913334287300540717104093164787565073561549357056795383521954289849344956259630689883222836905590541088397082778669363113841527738395030415837551672356189864144333999490344706015417105040889782595298911971975724245256947358238384743385190553673661277798149617020879060461816781638225497829858160008100863033573821173375912074514109228839490850206079855418098089789379531005487418289757007513267803214894326742603095942555987894688896768980140740204588712676193336749662805419584304885037488868180755250960422983856303842337343400456623310400260337255657927364425480510993532838404017987197232693862014215396893745686912805048727239499646244205791172008526645818056853021744091727126111432006731008820477323305076243641742079753966110437759699188181330561958642919633420444816523754106902003568582449358569127760093780446121574020569166524759090222989230791437581286931319351419455478411232655733540985848397189099500954092364170837607231355680915291847111084457283971472296622681233915625616646540972209665852843469794774547983827825702895787445962746973879524670018504600095186404405667809240699639508311348760548237952910138461423000641790934610215458764179117975883583399772417205605586364586720815400515298495355467758158275306477569156125079427377170677012615650246055369538269430018577329843241860514722865256509594694257050465591793799132095304485621486139388898107798974197130433594018179383471368447766155788595405658682416169817322612367960028193893082202766143709677564547061102104040568587164152359963821401424783189193647975262003625969529138820108705626383704971644775732043932903545733672692606228006297035473435918507122329960840554388659850847095221005703823876845576601981613591283101504106836841621675312422743754002958686207029030190245785961325896192968072401838025831489966990483238984115242045355146635807800677983299025935512951625937998312742585300830240321898082839986387713019208888505623529536287791616319384462922018332026307490616370359772137284999910361760466695871351345315907974345953656274209649845410743184466281977693857812546027146520168193082238919684654703641217110578415966767441383862505624596810925638715100491608947315173740431705801327400224150260961198373034122173801654773288111334830385908686848745474931859625381253204240177814220571825745597650158110338379747335289670583424166773915466534800562401582646189240394922526762452021207315832101835747215252339186595567760226015237111629836429265696612214697985799808894860876820619842547509821562917076289291765608696487615025777827682809160214950404907766255938703645343750447283011125211809139883111975514962576777459234308592052466149164650226660976247334667940261835541975952477372234618645842092933967652150761440877996674943206731380827565901368388574152278088101672661009140859644065737459010902752568530609848085617804539930789948929401026158863744166218536968034651640884519327802494595039062680955165797705211800987089408896913536188299478745976469802132695403174906241109516591620601491315336337702517401329242823922294749354023506768929926214564193744669271371232371630383282062080381508144575263293017225011955319786334162489997727000605998637805352418705941616604389677899493737003380112299475124529329866992514047567241555583243339334716719233391946401827657260669818279330498095515767131591626233718928290026760139912850916267288877093905111699941454677689810508483611910498455235354812352547516096009972237383297365641600363893292967413134051814287873127074228664510298736086039972792085124948986312000926839391395358235508819207522424238047718084410067578040865574252408610006239634519489156116049708513072281571573533264599944230667684437443266396051429698108693720996615078274306605807890913743812217627989508376876787419523219406576918338810291604034589712328340214987698682913050584557978734833650073150084904923583815092148642987984588297273118060920236536561799304533960164827222162419653117957073551744124693819176965043333465464646791920430725385001781622766419751209545098100027361022886066392634665925108866110046415055488474123399807886218320751026200440858669918451643128206400365502450604288406439606799249570855338990926660180302488544861472473315155048637242086250151957929514081443419900942531604427553054060606345382198304237821981322050875971736105488030955487477111320884571297865613468815112604054236394032240001897845402772658580403903188185512077396965012851549053489861276321261248103968517355671821386406220625666702101614540826524890933666434097248488771823451376746273834750740183784901822828393304166138260643710274760717984298781549034982764106091202080696430716599160089329033266023606401849175012368186420059324338166390878364281716036622074530528166013789889356979258202029489645061818154615011011123402109049621320605138376549186512453616719581164372925653916004336335705839437749361749908723368228114504105626396325085023686043334374051949127649533047249976046933726882965942844242521117370802313543855169865916940395853413912578071633931421758821127391619114977029725986827975044707515021046672535225302184979193999609723527769517276955602261772780710163616295010246288603628526128766096144214180443040238041914266902887263640001626384185314718918195757829328230374168038373759631150844267734349420870519211279818935092881012581593612499215540409893836494374484473151960433019190793819311506211770879400195493811452263609441744848271736675058614735177512766705984030171730009718880379756413023467735939170658638116102169614279458430902135584309769119701266661903552239263000111073887265943274947274499217291292675432118891460049449912676630496045178629034771642932159013515092829558525099720016780572629377713979813604133038514086930020067897286735731572428235270629398225529857941921560894916671086096778054394684936544227167312323147598663851135271022163567547315322836362748818889499436174119173186568897028339883811161865068959705101078890754555379239368890910536672669009721860911097970962405654021040581653857900873294066253750634542163297147498804449767230167410843055722474863308486604274786683040131296345054735546567025836772900140536800528878984607703881601886231670268916323035914250921922565606330505612348492748140984647803763060754732126023150515936677813459376713680814400413656822706570296387171188879935404495909230829081754925689730972690340213616018613233286982003493246966886196425602996099578115001446534023676637317766025503187635742069685866076303330130253574275085829349827408525755703257142901325263391614795532386981638385259896745945979202896945381100462916515558638583866481317061557245287155220329860749213123349207554411636620825743049964205196725918044264502650591605556676740461530338128566705600841745213752809376089614782793605057326493088150824709686603810237856822596532846206373321750636790179674444363313330146317031468582646637863750269223676042951810560405838091274292465135262063880816263630342669565282906824270755456010949357425618038381071302420860433393482920586861771592072434965234705134016169384293812727725288517972880590061372489403257231397154428647205273861213033639700061302710683867111836289252194313461248417142935949244051651494588594492663748729271901898385017777286211113242059569568989981505787408603984450983539300492777092225144870028283238555110573794890210468752191911024091684229935007417301394297410690384425790287567054836410162187244019187614206751574322578286915450620462040454690595292593289768886660451647060356420986750853755849565768789406900879622874426571814923835863584398924749376019691556170510470968669703817724319122546573259699832345357326292673016502908224204762526271223953587239669395385272401552576365493617867611182713088744717607022806711837971554138530140978489687803113808547572361298653859799513611308048882210194757667849067359102727602542282429018132353594880501481544360524292566543246599473958162511145476720882666766170088743693390504655372241579909915866829541212226812610218933332890975492760644617033707119097281105003883999557515190532213035695043099401877469959946769289867166708978042372416516955023246617861360364874345683225356548690461252267062425217238835172328837849041298409179245481829451710780705211946917484307905433191510794710700166044587755117946976702053945448157031216628008109133540067563532335831905423715861020086322788622933310386336675422050062276484676323088884754194060045221716611541280500962377310206825155891753215354992664016003849305234756798988567185804518315180632899569286765911027146778870522599014312125082038822608333479192624126278472451292971956229020046108170534444037255159175120270700718127526295724771955096962792769696068679346683729938512162905071207379830702945812904161835180722796519936653515326962530742123376160605584406620841739493078635428220024855835165783976173791799777787546377695015696502051480582113076621880424749937903747641169368640539306473196986557904871170304022202230576872336094252986323999361945094736914261480470100225279749153955707921941932116137082635264814574095452587463439726752219548832107076582716573568669038026417186296986701599654879897014280367410186844263159664937263810228640444330269413974507856426474560653339859424541769692131956193743748295465277360203633753360958161247399306406413096603960314736523950529891970124917714094908188882848676225529904881736249015254658029423301075519959444628764057958128958279150013371355441814243355263177241828879195820712074816570315650121852095483136985474193807679544084754110704642179147252615142828240640173647398219468076538075126700126179164742661381880312488298113413317271073533769288131940754959946473932691179061534389918016216982385139672471706819938218106908189680512962376935403051870396703201267915572569755262502846051646569379606933293351167479665316688023022557003472207497661639588857007132050596638097793573661780270982207465017008011185936542912477545948446138896249503093431655366717403168908161010794250864908643606339606928055365917161631736539961062808462544839541899267152893801803323618383931810687069682036932474124268627398282791596299969413335092381853968337194055594563317375352152860821771719078568066288856069237088483797223659970426036575436324804903438174753896479857325031911897056475675942031144748578068726713030739788640080966188149411378096623236960389861884313862830353896329131482355459112758831457620350124979653991824059779736359470796742192919706682301042553427039756242680723155670712362634668338506004605627354929349315760201027238615605516452632485822940328132981360199728836647007506635080311136713639671200410969915336977474712921247383297722386438185559565170879610114640496230778028934166411232685242671482372168008137439219415600238686124998171688718954200524265698306088594335705873372427167045331309872256460653718378531790366633430403728088859153713137282751194059276897621285886119215059418579253829191975920419782092042095021250953795166137683717007657944204661773539948713940115563956047464668163684114167672026818357797537334534402378217047444218479446205883804696020740501534740792243406532842804064013786610376465109959815386302051048350880263633294562822110804022633027816100118462337749568424893630775520587283460610973606905467002912726299164893157908497684422519955438329736095644377994738991065438477768896214787158170342992895588536103698601848959328805793792731239104834023459929267125099049005005368018589553616517975769771529096803816230358885097205006182057071895089520872605357953158217563950126405802756808264349361332116219239339628475828786383977931493499692951075364744766795183280219705180808396541647248822316129920680843468008466313871982972971390639385733784859498644558750221165297108450004518591324056602810956042755732506022108490064424313656872295316927731264911029541489135297343853212656521489040567364857497530336059746621711227145703916996807626217532677469140400705719439864794160210572730617746983899054578922859661452754961775619674059231671601207126398569511734354611267080811950709480789033614491893998848172313296659577890000709790133429461436329626691841092570226363636121182148262823891068027606580566158106736219672995136891883125823697894770455404255180484561240695648670603193573297731609839294140969334048461692105874766850028811361039210162520009466598836092042677986027824609925591833808780232634032058848868751249226198440230517117954131088789160153242872460098325070632491359434575597598299311392607633062165980579255948050023007411350041843354403606699408011420131990144906294633881541858277332777223152508455726816708280546357557929720059399134343738348249685917006528629376867519577961671973790534205765533258238709188806839057308844656872286043763214940300371918708819461360010910747262072650245674271644078849825138116533300047432038268165060248156105554973813157766387091093556599298676294999628598036996940722570766125783952057273931971917897224760139981015133220235756174123482310054238709456591096901645558447142118280464515501625451793269696504229100625057370410560468416782983482449197481404079038491976779218848322042934500607784316704342133798392925383632530005939616394315051365413499677442518794102723438610722534876923493977894007256175452008796661656364894641458743278503913313728946221481902810801356791241074375361476759808852678099501013263387569412045115259187210233151821966465626722679329713744085061137883599962120770637059032242860000082950217009122546972577643224240560787837345372955764746321753644010087148715598575030809551535527362874550666956291625758359204321144214182080241467659489826702187466339475721556997389947424514382104517990534144448708388121655103302715529112459929678273916028997758008772611762815040124170856838598770462794843830972008983739379873192072243807006485789213955047168560887714510096234672669756414581077821754191361844034965066427779034692896155965777734887654500025463556530103474299474449858918326781630897434171334680116484097470713882592459861888577275583692719455510278705608321443103831757330545521808659306823302022211535000458133193666383507325290372126223951073446912140308576199494773522589134244078594870873289678699662685512982755434301680346462706296318100435555262862675377951953158039608810552322894131726120467569261224114678930261716788587296038351663535765659822504442455970565856000592671340821533357527169224681999904291474755702067383064079712504426595226880560335555016877501081847056647359189045141921022448584911860374832060319803688326854197507578285227354780677844458816168819407601037279746241305388025420627139043335551743253627304006369863711479409531997622375824740980376858789808303472778511376556116017285384830010554457031763393649501636630541789731821370029698639985737069670699339558116765255447240282874703580327115488802518627001637185661074459243236106721507415492346305106788240734764437946223676848058070260820765612953446649120247529620123804959904175353423849794654558973760759020366207700297406179370195532010180890104227114417059782102946954478046041432701588542091302737142638570343713677447050464989380385249583202031882082756224917667711205568160762650883506649262784676896303507114363186101257160689118476940470157146015589464135947722258960043018589765075825742953150416006631067217661897172258029836706746386523166615867580197830836056126073344551439010017932406138484347194063009917845448294368154251321942145566904876704395992214186486593124487706302544819206906159290016146831462935300895687786211270013525103613046996650892558815261735450627492032973316274666277968756583721736615441567313104498376970179163309982176971344921922091818436113521692765490938728242728779002669729889626778905885562883280057313876521008785848122017171893885698999403378670353805768887883710825293708098357264640818371614418735370052917661830304714258193665016520987685990067250420297745779024258856759139794832365687723104806847062580176751630545629761088742068130160131681979418886028801121664351792217666997410394404665428957256767796740577933682726056614317138731418937985897836720548669654452606847797737797113122235320951855915861648068425838383070490426803776117828186238988882454549214265336644849139141186243835748390325062353391511793607573746667503965781041750745454998688266906576870068815505705325219289705479213414450996814195238773610426063559306329095368674734961631525368818231049775174896131357589004835077629494968452172442353749264893534846076789280634259477635271751988496266501517300245615641751123781120167401004815553558722851638446418561000686720067129631593056809798773157340951121650145485163400794504572304347171610273461359979321029779225568095222436974239827700555007712074798583021581462133658718736144955956698614258849770699652395758782184997813639435826969893806194361734659778221673150580305813653606219485203867708988297609508426551108986310237614818882940573950859293453028872584363923226453403781906383361670452969964472641868183833803591131841151736896054982237509352086561031285859123470136061964935245590943250498961675665573874876865466131876267883287185998087421214110209686763029850607484550361660365826643278318458517319125430295708695108639041840439283853445597781783686763471082359271143511871462567900686245977538296198446073759390103897744484334560464384856143017599646722776193318215073833632225550400835845429073075889941394030087494099004132247857800172987128652632442201494337723024521471558143470259264264803392771587712505390489477813492092606858424817460515775907196571821569014137538489330233296074642858929607754873297619733241679600760592783664843183360410335019908511202155421247964637690226434195145258796920759579072451348264795483975700645115661587904443721642119789270828679683617619950908077561582817331127120128685417892693398387042448347034832246546539540092076547129256348280275706243989137951521252201627613194899534372185177989561431115511620507405576892728772264373734176555223396062835008361330125979469931132532259638750496873607039146120239107107226544408260978330760933033502081290474435346833717876052320462954214294421003731504080232754720070484828322101179638957665588301684633488008266799103129182929642702314091466902189173020250628879881258139374433348494563671401347993784032484809007443076550650320479232008462384270090784007335621300068638001821356794528957646445386816373055302957497028971297162969387238937837495646903203172565347211767381940947382546541600074510253238998024578878394407418358472358482429149406622258061866843323009136955038259907103155530300782682251048520538331304293029665320345442377818811883439512601730533347854381011223306070515721134747237212537285198712029080557773522485314272805129555153503099044485604931429130252789837950024345497130093631129175449869824262439033671415889155617255244998048413535084712879614543467897741800074640404801977688425440846576151704992949062558493419109608286818882578954362490424055112938923620496957900236389606015245212519260001002170877821114079599528875959108786407225520248231612188496388110785590181657579872753903976427896821752630073861413992152579937731598247126951570211251160397987914451787293010093674160672555761785916452349894276130489672381318429600674444139872890683190869823533970611533726828969650109893531610412807621474387699876053243247617369820818375804514026333257165082380865460296460434789636177753123246094112518358856954955485162646814810052771347255854425561037958474718922783151126340179757553201518960577112561400466959874473775500229436008166481539480016025370250506059903260239268555481566951600059826591841627373636681949645639066511567165462041476848539570971607453059892970201111433867277876364139475464658162090687947126016588664324440790114092224660109229970705937697984171896149045396700399780039229977195792244644319209008991102621556579165130982475902273698352419600727733592309141416587222822919240790945501567017315898001880298564690456658844713609750298313929592356585542226901957564667302164048606938924991157584678762100773503346422589786375751194550985065085817812544886484662906615780910532048601777480426269749197549951992304491252603587910379762491419130152306387076299229431158867993948235844060190225171468110760045595362568978896030057174381855593180631249809408988139294853323305458507366900925095362233981350392365580524722476192642060032654556287744261663250677513448271317313104965093987525047685747421866682801804799619108641968942834040589438775193161479993774391125750771502851603412040223173120814019539650072583806373124085319625280868905839767097697419355837268428570644064485197496447118457705665124890576606553370841530781501638379915152725408288149164802770525214856656965287929130816363829526684359497324330534463439686779462947195528546499885237976715568524585090613430719799196131069648873221031557851879998293843994902798842884547505352760025001111877098755369815189590092716397216353663955206986127265059536867974550220953018445560731805521750946856533546391927175727259583208506916304359203849799920167457153331101843248767573791397128259075298083204491008591537213646356887071825872329716331767205364505746323717387091629961245587524408312524104484369425063650981158831516918147229163800587743054104001915460788625612290137859689577590970058286152833976779771489402031901257021292641904793351242421995350104662378817134052273884553726500462456045658842745415738371086008316594194982813670172209680989750030996297460073571245812975142868222317767285171105049198600070096027046400663397732252857511056913109579666892336809584404747503154744292283584075636795834803293531866666931555126770154612862966535390518782007114508627821403928985752635709848324187422753456901403754737434286885372639250583024937627970020620127626108564278331131071819555178774471834144598522339099430906703884530554517868491896108762683371044649105987437454530870429444394880075413291109629086455860150565354575301871493473287411712865623977690059588712748743709711896070198933323482867041803634225727784958253329571509944457119049856156515685211323238589847177034013849675769232884784158938611920958201013403647901208920506077309163679911875502600345927193599520340071786877039894101381537016672010350368102326510280502052737967632927824759058043994882841856081870361255617418435089582492887976083342010442971173652573511107946188944425277384925189474085361474491022855094451655858223704576747411647500431694789084291395375231719375595288820136398250561151595954836703651233314054245708826145518210673342486598495609759811794692081066341728247341457128049066155713674748153046858364456786311259049616487558095412432030277804415819421703198238205844984454382190898063690298523233703113530818175438014305360399229261318218637255955769411614348463967273881075547156074532376423043545857724065292294173848542453944308459923446522801025508461984796504357704111830472269580107843384009589432982565549814069611629371903985361385440435231201135453338399485078712228995722029108154503256302758501428436291103728859459728304397673835942845586584159748224400447302695077247559185468970574333264941619578942268017501532663544656395451786137576978402032569689622498446847635451434579621968521224846138740035898574760781358549622053973089444248325163762312961049013745051933704583988165055198271882244491523043101185341424150150493498260205890892799018635290049235278807070897983188404255315559190146818763806269394095360776890245202310994853662693609484550044303798132602282527876105907894990838367129798976869639544926310070941594267278710513431018647164749387495916076909283819432860613205932537244733635859112007629816648985777781712098980436696853700987443081823786800045613417553141644930840067996281071036299531381121611786670322084998587426204837316420663586913090758400934406337642204424961923978768009440896773742615440114547518016462873749068852507437020838367746095730878125987837781128052056349709795157616606974484144282444922597325521789728697756334853162553096214245731215785370295916266866443945235649951299900805582639659796729565559487309054416606419183665593214313146397880232542543461371817429124744843567769946048502547608776682568206197570933282632873810054875837590975027735742751495007694115712327775198512734218624915848284635462792497989549976549223110988880700052976487763201837413607402839616792676038586831406816648943620422527259425380563091992337868747675188825223845787252884773894622216710082336312452685304546113720283956866661980191102710252311453632407659005161272474362806422423546938823669744976113628654799701959344264267189867491419517646240911331622954576191031892143426312741273618779527186493240418045317362717827428751618370472149761585833730244198213833208809448712061624920553644244931091032817931104491933589924862422352440752572662857542624557318540212715836309588699347969610530906956379166469787666186420532911298763183427837167195247995218690406493732563266838168547972927435779794352302467414563231184145040103183609554451324128445373571843939967197150173471491017282216712323694655420782383915411859866085266004494918345768702273504083798206362798386425885286813244598919438901621014348385666748394442081763602013569655227220838847543071556465101583376586166240085283209118722165698764773545198778135957986374717270749281121709222695792564395658280867905873187790710357415189102901140922170740248506618529752467671956086486449934413005288968546158812242542845958698923714760239629972872116994252864652766885618281556398282952477825136421577151539143096576667712797174500618044627982952310870129488749118937810206777458063807555972959030180020864064230662600375471560031307764064077056173796880477855099685628624840714815547272005707079497403392452792986966455120149163579194122592760225394432371819425373303998035315306742230804243917863915726437872658785221958688042390246836877959851155005378990505600210704130063790072708659612581572788518731903969187646461199425304921055237588857366253528956933703673559460512332129391554619355731112009350811145029557765445454661708254340410328857703368628281168313661061211138099216877372632240610880868494783365339317564912461543490281430576109148293103410449901782499520622261944007430394440400616189243193349630021212637736957762124770227735604354898500110744714089802943848027999826884610004248369992226343444953190415164407471951473320614218318855547743790418229734728460524297278447437819405269036394579281288765384701482550078094036373733506275589071225105709027616726973881776433516235840276474156737759195703622781123906286822853740435278483738343145731769483397582088820244407283128563478261082724991843123509822209831843368568366011273406449730342999078971744552408264752493827416415205530055877900447759569532873726786605993082906614522205391203056674816057470273180852207380648516599893433209409292592378199769975901856796165756873822662014494038742096325420720842343969298871255174272721767413229163879455061020318703901597188896498665585239659394119134056421764334533988571569271008125917759103803145551617197269115460282090164979653369843575188108041308845164421762636545009166315711961825216841012338650388371213853593666980948101752951060042726096904105539655822636607992571289394729452320888957636815611751200499880503812961936762231633770199726555280459195055865935346553519920348773999999313377548405658097335368253028958649156639995231120135165604441454947957509598513338767161986182258365486129870680861809944724905210374267946867194896167181580974258572042002663151446047072175096747281640535610424118790237932646236619320110848074260684942197159536349031920761048554862720407566059670165596169008209047447150500226061169131099658711360642487427937873419197471918745360356218161135365428514970028873166184333786770984940233656801725112936968074590847108496841379218676330860640054031247248946248402395592011237582807133802445065149967414841791939235032493925565054514699785559286007013672295000889598512952606587370564848394285350310903097489466613464636470623539213266922265498219331485420157137296963819452376388893725680327825417175082082561910631215225956329444704749370357621185167208778892781340499084395306761158577668153048641763319366828635459628194170331438381572585428587729579439718043464068620367395771858144452467442606138559052363302238711728373396887049507462005336996095379835380834990662290593264833737617043156743733204432818298077297427377546412125465205444531680190045996446965042238883424708619474249013675917457301692661744381409431514529555363520389341694119881100772565617842982944660147761388409298610779699050075664399646926348659568445337827923473399059350147245425304166988745557371481667864366198000128565920486903692945111981610965537770707941372235644954818032494543883100293661601184117375460175055497209867924316938026658427976465537592164951840850122845937446381157976375867298464066146988507231573699577213989562903026397476019465067186212723007762732045295263297480546762209547771020807325919145967304047536440401735988450354786644292258292974192542839873308286866633815089720507741111380151914899015421265626052844478022009788831110279959093962514205024249377889064010256491734637955984458888883666539790124753805026742080781843615927880617525612204225961719688202008137178047739513061639903193334446462024365912495158432290161737561131467372500512081649224922724677921343787333570302820506593394527810228153645565503235030585783059585702890652818343913754508339930684172951960628213624593607951922756550626535971418247099869072964651169439237852421941536497563388695834360633070560046735240275734626485735826065339731151613789403798394020419469790926185381968685427922262835880823693844161917576224742368827892169770852475317352290916603282575105038312656433603461320049536518883293162245451330678891594556398451653201857256958561149155970466153831388914466148553080298852402773921602978373361176945561677591937028427230849937789151892159959515241677369560400075591654928121981391081791625542446969175842378388835320352122926816206735458602514252996766868259130964151312821955915686807623444056192655777894491103698629407081193699546731113198820632144454956816677892568074003138773089211963874857626750810011016454473686051111353627987574285404367009125517632659893075285095874691148642748204995964881503571068049050985511369136082248944594499653093966863188888988730443837585447041760371691981195124900567609370310290533006658504471674471143922142812079673599186232051431930167866497315389438304534536627895714036220825291643133494180954160889728982726236108475036007650940732096189067388581236690715525410032164279770983630220048698586304357943877633227892795851314075346415706564334410830672404085254628354326403648442942396495489916808328544516513453691033572958335875655807228456754011210039865741662453746498826913102245709594324199533048268719654442347191690287948201780378776865451885253038293241634781752103205758961115314917404265215113958870675885412288859344128135468754879897841288785189678110185740759555683838425602502023508531668861249032373356117342652589207081572650616480098210810175834902051029030274802798790920456966371853394808005008412916032559477920556590527661947160854912691274924811731808652910324296483119649557816628405213078973969081297874846432006502831009432073178990891621939457198324841346357145295501316124100943071202673768500429028955549510703666099878306521759469934235986043469471590173421375223355035594881682754001051222719729368812969549434312077030952331209312443457385677413643361839526845527925640202681409620142991453261275874460276641331071775461038324993816032208080178207004656418727090726269581890614455424429395730153404329178703857507416159774133565319590550784461603450668011156401767069753820402051988462413469382811886034165492065179194368354444067218671960420783827847805323236602968544063706146520395857802807816074479207007878842049335549230449168032584415246591645142154934379218999301244024694810763014620695062965571348317154126051029072121946246940892781827576009567275068563860909718297944994272059091684070471996084843038960809463131177684128366445603028570639247165263171999272911908688277521927334851997482642327469719718174430281807937861107153468472945963009266079977091094228406914508094368248688482857402129149367034925437730682889059023567662236380579891540175114229074759394141551766526271524452922876858886108168717830475101250681905560702091220487060900096883478323515227474392357801099555093555018520737731425959742918567060377193592775389255589478321808935249025079697205359605912907397771830211820877876752559239598635300748764606701665152405437881932017835516001541914820108471172343624166974549874518514638061057497240732083027258130799282573140675956210574741707064774400996874878248157798372843315508165485772073934034882868986655772194056428379088351653547257379789276608179846797278402357114969039237498360391100823248013352002813924670215174870432678449975910124380807699431375033096589223348371345065569867976093896748038105765345782194283782648494003506739319256662672890675268891685093686668715896628447978807072018886370282978245297768268338045168116860046289983012596965819441943607017970378341702171041579622452343821616554670996209035576548865492758345843132782010320470395045947816045745091485457938375797869990613746295520992845248267397309770459239184465956373207165425635860857149072354337905830120318809559255692877346405753189331111452356414595963694921476596245533845179409075576925174403837488783364567183530305802175445909610033761486738206259180875396961879116696095370611172291699020866172695040883445745716064285091421284791350745599899823953421205515666857371073033636511927264708341894369187228502758789624057232876051804131967889497209542644239787766142790693778458909599768730509069891234932002869816432648904413388187213190016451182242456775806485172029158489016825497444533537899619141073475415133905281203202140416888784376838976735236143042666400394857435833268111060350326773662018871605392183464898837461720279778309175364686616880166069860850479065162433529068224340499811938814610524907457421945060465197194204985740465440898542209758817274844869743801041846907050633570986384124819636745785098642262981620392001916801391344609152671422845460945397772356357305147131400153593625804256593625109843115191326113423465300059107123046716788826766317856940564635042721633761798127156320068299961372420853342198064749159590806488721538001860008612691556738931290653817584373983459306292690728061076546590230367702327301566080455769002886441210815439586830536770349066559911163733978486780522643964609833635632473576235093947851078773723495090786013310072048712380276641372855448728240747791728810034804951768392616131116701874974766574999790733183210819259866698250323655503001704247101588057841532626453033906762274104956635891409528009715390666744645244341241244469156003398755869019048986755010231091774813175952295771070253736065751976266752292079673070705309123173309980027054999196554469823889518314793680655885828037396235366110449244164592108063165521796285971560111472212940174714745679795410704369952851990186035633239833524770437758855742743682520547899695347595730385701848298062040149474140543350257805878496373386405953772111222536053096856684382184659050719390086893177174662136912608151645468526170450360077568185050487141867697925772489244683130762952374106033171441594021048664306388646940878783606473160631352541690976520008195275359932603543434702326290747712478873980885095264438837681478391451175735464893023100043564138288760819348558583991003442113693805106694382249398883645685648344708955725314790248668168306567675414986730231175857584210249936290867801144537978244026984585298372574981206275522562007827850195192984307037153162777289999120290738698009376942143967320422472378282388496069301445173268858096780886244895500696570069963986802405249281446580110650483955929555822670323793091402682931619729202156511893818321109882464057220787721733688531180470792028762802930354028139135859276291129676352619454677547238652104405420872082904924970675556482575491360973883202269192617884995304524135283401714285486504093696999882374104545532943268158713807214701673141563376468383030740595589170856812375225510134107862317893713667330744127574040642992757861907905030555264776551575146597126440849646937793897472071350084343799389404258890164782517806095686850583992219493452491495034138410396456034580246832247421547382037073458253428701688465097947876121612633076448820239439427877417741071567681447653893902604234617614479203817890726843391972746596305476483003502658745090337983376671282081917866273175091228939605449220704972769200598540453938275658611249093285407750522015428719192307934671731305519312104251890975161532833223308864757723871361357151115806167773974667322694821256075522910781994073960961937963818844622439878080383893680578660076294559998357763143797524560120178424311415032888346946539734403665984478944302097725094774466276955833915038972825610482656361035087557216998969477646651310899603204310225956253032097706285987849182867160086173355849075936584065073418171465370993538220986951256046686950297722921131712910804545925256810426028714439980265921403537512269663591733468136547610918740486163464284945183480641190816017979297662067726096670376818736296292274506366135759867046809984300229037067589628743346527000053174935676776445548718787000747426004064417857419981756957537919840388717812681602372882345309651709840430380499017902178794452736518803251336482296117144592906445671428360969902695776302087110615849967683853620524954713290367745562438782914745186565278824188555240876209016077659780616716491028627666828789882001101076114102293523176253353657321818291428124283220503505741292340472646374915634279251038152190820586577938971213437201184444001358606942361143053143780405178400135810838560766186907508253621704634206668002578095175915532931332804863806219489814101777132593699541073925385140549967075602638871149891473839933123364200850583708559813416052446299944743732827864748137543977959496477571252329027978023763134352962657552662769605535586377343517802178938195704320763956222302347966806355992302674773461035323027029028866821028387289621626937548160636581865594460811064993173257032030149308251076257403906970000447050751425382510650257609511299540064994277165752780878536925486770307088491515954764173375696988132610834449497732694200117858622744161846382496349977623415740957773189162112377210642197002428601334807375820739487089502251830888328160293358819554050795505414729483841313957857269833336132014288369203356758236320636704744371617075795991078005122186815011405560274196863919173204797285741257579449656245301709718895140876195066773099658283203751310910616605766494582376476952506513373583672551734171959044712505345472708739365867349077455319933648078025816775056268780175711465387989728452117315387316902765083947384015849932994235681791562630520757682960900423106997809781202087814037803949712465361155089718173598050240230868312064820107105279717960197169559835569558851583343163301079404489415062138640313518197015358565289405343191118427292051193890206943740730098413048767904774924484390098675404540157210722620563747214707713630024382972954228219674450466664005338171020593940138000778304818264990302773220469574604001950104470210834872725666298732095558504845742021580957069680826729051541012765567863374196176118672274084885337559575556027546268638946710526304175677711446764841799158592482643373952601684773605621900805377676387009090493698826631095303755967101533810863038706742729827865586633499945738740453408701608075652289147501415374705263811133329246253384477138006917000025822137666016115195638507738167092253936338741978455434207870317758167802217291551186355747016699324841488647546756448159523518224160588294103031792076156474393538895007609929440316283995681974904576515922561758842813884760320617688025222702312855548861058246205782151304060615036389298672357624369879084571107972446465910821570064021106478050126915945793954531548029351528804332838673242697082298622717554527643026558959165224428746902204350596871505614052073549404778235516424550673120158586027290636926613403955077689257418325972335465796025415780306003519715953960386910852798242155037618489753200305210813756587930477218978627625927785289564649013894518393705312973867036306284194606255355891217278562586624242264758867852743109419279163659775149251844676143190710955137330189210893699412913718055571617784690077406267831179098183037904085881555782577969746717482975180011962442606144893138669027788189702103972226009436134606290159351093701543835499710726663171594970587855906388298681836197487121352322875164317733379881014188618134056492806877406037577224855472254448001352585332871744924389656048527013227410560510402589632973542008864484244519965119508068371031658687008277395890895787107433079184634404558033305737334235983064508185703481891485895910440819471403378827978472686041868436058415695564843384565385132658582349498216902476310416668631455902555794072449318656114788892768755104097562153627522770935585784865430491151225132129121321911262499344000326128328202101761271556371632163677048138794133096048744295263513343810500993107887131359801495460931753919031265981729531494141103313759509941632062725907912380089669913704205262864550789809110977129588665575848953781838721037235329847685391630113157575533064079354463517451583453653314556265622004890712890428936905882002051332079582126050693068908323659456595834094155862309088023330340316424303301143169973896265817649001441690947773850883801887344480221373779009182976242520821994975701851160259573934148138486442339864217361350919505744133770359173068578390111795084554316307382236154751779682185750725227229469521874425699356884833635519912113237712072912058035381675259197328765312712252881937894767767724228347791315233095978235637512173366109517099925395642507806312995272551683925686289351087445787138175750456365768573013523146002360194531828481997679109684464771918778788109664773186390898776810421931592940116476075446470106523537875940814066231454614961228058402746736538321079644485925048291057449370776255560663834262384698531649616249738332080262076316113572277147890930417699851778957746824324377816719969485954214189557996475412205794598655497386030459900786472642755477871328955371193240030424178921892312991844701915017868684882977042995319377216365036731048218042680639255463942705634487492265077114421281327099192374055615418369747670063203928633769340699745386575812425195846799129747786430566218488692268772939985626182191269344788724948851776654451666410353084755082661436324786053116213856296314720809532212415131642331137585000575937227514735391573632336672105845647536071230345241488005617252970327321409049917825806116977978821758069449913183368526115580353513658837507105763067887161533561707505573316375778541790893055872477018971073118329367375123651192584644387829110270724594178250137710513679735978249594579722886629569603646212345040252528008537690983479401448160572351275676257257471501066750170227240741820267970658084020560925781561545628828128284833681575270881538669781314326598226121231327072175666868531557639355227862423517356380511403030236005116017191445747471687047554592829331785244855906305340002625469887509544478109430308610721619364857258755393560953568872351490011451391820418784869590911633701011625541385230063977593857525974482862618490080559926689808936780483092725988373696841484456970384460107746330684482765244403762758252348987552501795837771604574302181235245715658249628047892098687360942151535981651055512145769866225251725094648661883298249736024814676637465794816436091208503239648509275889578086053464495113334131943924734272186666548132899557108145182727719890623587604352071283743189678071851291116983962423477325398620936499029318099551228851894849207376870265571415983957199357158468622939283781228116039212073460674643761994690675426577095056597578889367464020858356846679286492094267852445793264298025039385153540053941712295381085608932959084234472714162525198288848401610769130303443163369524218928692819951900206586662279917420213770966009929022930291632244725404646430112084399251311763652873176252004971192051168898856495868186978102964676616912733430238274530183412452137217594471353751222120391222835998541048223876103972339634525776048168704527253681406883497582248578364308378818679168751473406969553207270481534335389570401710756537059854441260919122187141518411000538773565243999236426525945741869639215979011743816304785129562183369536776019689273998708819679039213188865067066894433697984347784200749330122872190936162051886627419571600561685461655391208589509543905532686082025854970535564381730589386509624024354592929840739184284223211822942349410546631677858280845109525807350675801695825391226106875901084798482289271390737916835850437305607423824868336681395309974164731516393472749367738001105930733433050852967321054842500268914778443237668286013219048914771390810133489372773944348018143991097094562860217944716282698614108684285835518283572384083116129392931681421024334905508531815362117610622047053024946959050288838132250282935223056547729091675601423392393986272319034477075823689168573174959736736346147825239612963124655502529994058581596544906537756168129818466262549094268398069036154747303816384933254207301343353756305715937433946975962668360026191315308313995828419962955529820780493170341509873010796047612814795077922173105225640183149704396120938082174936456690799614971709279860736348887811300421272106774536603591625115562826791443878159839604905154867357063697982401423935706981055467579638325260457345374843875345402885892642268851030169944650213998205984171761761523467311881506465785891794727268081731256369909843845773123610641018088668666993501662782360353715086788179742670565341312986487251555706159689834124137675464286969139318180037107840394436299552789030987400969141264442573582073002933396890463500756235528887222852666024142631087723007033804801650092955229023330448768187340069901095635042534183338035054359150201926433999710517727768494955930152475824061993969227059399005790039911759930640118994853594787635585576578207437121750963152268291218140167690568058659900252047926749638406959814239688299754448573955879514231052376529880120654644538841833276369740348039490068507960010299920261845822251535026548021427191776791747879551133377486783525103925079810242632926017158500450873130476868145503497221125190481707826295791216776979072987564131883701267621790672941979286327499470296751074095543608254390082183289983414358253267470753133200755727441285136079298703140036154635390244457014293006507508795156114463048487815986727805091135741661179285181957640290265281819872175862730397890976681223337110917283188024758705444908100185015987802594912546816418615509575062150592767315751825289854687116288311764994091873407789995993521580502831568548925471092002603616268188369219076769298650742926448716919892048866459662929576133657079184472342710444874922223693143970225645508705856217425918606344006191549010489304359039244417498375757835173558304884468734269847430271183219105999415825151058557596011810629298110186158136736875128557397950529044833996855135328841479289260948188669985892265995580983437911579633742029479920508050294711078458721638583228702490392395744679303484307324202365981122491533592449558175381091664815203160176085069806659347105351929070563504803019859166082745822907456543067545849880232176589466262250756096142648667643337915259108512951502009999961039032746283653753089762340113889910501507034579474089579279136417582631919600651365344005039655869759117086721895705169238717007356153583546693612644214208272501119445142668607403944053251745087548469466365623100416297335570170494940022150174214176887092628164066267969597366244721636073685757562418581695544080390048304451812757948611415301531906807323317266034631833888791268853583700848388523892429880519211811343839136381116570106265220905278284266761700677146166434923519064607079527540500071526906818819177648611908274435190939440632739343223851097120072631662846232711419452848098684429905109063745526466455305020955320971965026066009223529317843655431164626274712251616103955503120787919046357935662684473617673987658254141118179064030374654007472457355616616049667977646114976828311046189234078221347448604309590194808244340285043212531736132059460916305809758154056426839265054683414313864309695064711812159200845099281587410653924671706254028408491037364156113272867050935836595145568577531838209389703848720980050277483572247987362984852514207401842282793442767733866894630069965164430298467238253825013622700749325585728385858749382519261013399551918629067932311156996535039539348188561560777400448569626879930562003533585944163817905462871435645186820957778081820994512438184796308574388252231822766022074434438725890874158263009835594546174029370015671920514157056133093048231638236778399710490570944597598064642492357646030719479147438046780720241083102035752240106065937831962960760120068523955679388418577800631191025464785979978802167518285395487008024334028413999808195116804722195382419134783070146368999064890946040041421047113749802221768795162099258960003593246315923904961336558726729062684198583359008468597338515548517761209419261577084548504506103294715579165246915991763466382807650165281044046936947227637881898033384154656441361000034760654169609535381601964682329229800941994140699799095994173741460318606890393291442325484191942527347530117149179008704586247925424499793232703005591297660851454240913122606180585212008033745309716434523616195784433680773937405763135248579278119010732956490562013588139913262152079041992206724844470873329018270220843234998128257498010700831880668252623722517066768437633994732029018813196764516348871475024987532179030463450536797954498825743183075268747819169055638406572422757613210786169552303848083136002303387522370449693784398286493030129974101193820357704671978906076243602932098535137236357490460616330670156679257940819711663883088677389473382414816117234197512435543724930746730790440221211478481776751949941614290055871681124530998744388548163357323279698211957693623379646543790427710078423761804489305166445038125286919813142781741931720538010221111842143416049106671949197387175919027195922091240603758598756256855616925799708182692563950068139107813107672507728168960421838444258545540963875931382116791233734496762793970228644520884975980552952462568460945980389965125452109387623939975370519317660950442404811923842470592348674537814992125798338054334175702754143955143331823679596426784022742896731706016062320585009522852851887622947091352768213258399968550200890801480636547415900648417559473327405790310182935435305582442364021260669690525778283243577537233102672544784347944608134109278348802732676780635666395384912510105454837411668341880803429883625943343286802426895426530117302129883747219593748658988365478596244079133144618086930200472358590611481291879661229464863197114222802321121222830442113477739367619597616524131623221143808691989974798229020347116984903489747324759929234687300753944740082859837698364896416987238638508025036590542953335717911247631630719619586708526096348706980677844336233350283251202602048879452441407415115612631423226905203960673716995437646348224135794242153949179495459497344150876755176576765641919432998994463761427961461491279076876057012883412712863163694783850176169495605082573954386876493756737425218057896059463832264253460719955375899321204630645073055252602018403771328116197120499061133618944507099436518058140684121497321962489146741255448766773131456676579487167962951249213389159897429167361831629745152266958001354023881256136714086056560510703042950280041047485872158656382373654910570911522226983100765466092016288049699534262407731060228868939693457745167944167191383329529292980910512515786128482886850579167845497882554555665403534249143495827084192157861077452489197066357336936640374598260239647119363198977786388613201634843426906502570742599523067282461516916757240509473456102533443295721357860879965241048416638921254704506245155208989504326040731502770025760064534933068701096347009704609002709297837742565824441016614025278463586686276542214556223786247001432809019938953408896326410674698290947791712639963439824255595771658677823938619519620762985295625083988517653676239802149113289581673114445041373149415550322438877655796742936742858904921412820774359106539613768147529311100357809700399998752604838893987626698888025534701396160535109276537122622159222675076469815956007282098256273840465172963245266092525444870433059711676661589521923043516241788557516423233457867389855116474330116130987778123796603440600260723138289426223317175801723045207953540891013126103941439290612958363372752937552376820338701011720251311590175850308652022636885938218074980039907855256820060859976048652553701634797577249621472315107090092135477860325414901646346437712542017554792533201341757814772062718248924512723314650326829420305334487331964996968001622981862712260913336166248595429117090326200787058466895605107210299206570193102470768876712181737277990649489258835754602779183251724060081353855982553694167694158500225024248230488444943382344909524374429478886366396761802185315487864016863172401831884977717198618118923480070402991205126873530040502099526398299836867596596003191608091797315137794942238664638058998375091182124724898309525109763343245490957452845178581265839407097430061116428858166459118684658662164293951634965895547135960622493973827391202516608050615124675845804515696678622206417956921852096200362494540485581964106727799482759775661430902892175952300200712010230469069782971033784732099468800011179148828983023020848905907644548171871480138001746811102360121244878641838150016744575516896710736252841284517740923992600957987111498042638338781150092189833380117331125676854385169661144154444509722992397523364566862164625145169289662109239346001286884506178627515504205289468386432864673275991116265173947206094103847406945006544497512967706894141057661290592805837141724095214602237053032689299313955204973756606208017262657411090108162516759616368785565025515150074075948248618469059389866199392044277301120164150234071211875942572858505514081421834742840001673454949872202143662774570947108806934394324285567928774590744398725391284456164649132201538325046145439909890516522218572844025426347609434840015307610305797873518069627144525440440392028289574312800406537732994030727057291163242932991958589129083990044818664811788075017044553680258778151330760819222538945463867085308914984840855694930745300313775205308887842366062122446326756585996795454165068450278746293616804716823594544035964267465486634955356585188537396394256015320410046704317357287484371090129894532110404091741737854941949204090269875492458080033462881788899980807657421785556418527248299071419996093095598271221503076750337044386643955509328881018288587254063493352927317720579692825664998378183748329933489042769682830535790032806152544873606464865333278082890984300061561560946841762463154015520981547845514618731729574845090578995688455470960671128664668425691647146113265259560243206184664167785092369562957839864167883587935897039158671271116584759040516854329615029104773906861099619905192042870479792048764210896620277050101785566582869114527131251023095630726982541939146707800343028290956322841960580315224354709614158316300591272383728355795660686868737137422774413861440445068971830415992243602601280433956718063773241064062373878949186081741542248845770572163493046009462779517559599847579049099073710806348552163679311142076666735274383041061161948503444876214443739731099070571457798324288236862790393972908946336609482643872001148867306582035424793775804184447268629726761205071645462560563632424729933310810716282140514073558076385751831605298388552907354792507107574951572891578550162730120340643862982198583712631135663254280187061830440792472229129763417282508643234192276075238444341733577645620449256515148763183991698520276088550722382139855594020009736198064462574666889639587536523768331086164313495442734959150943835054406402074200591376288866932949857350775141525860844121952736646831104624624858394420590957198087606468011878484381273670446021619459622572062921688247597585512186218258425828698434694029159657990194263189870519720320465416509402215086625689653840063135604184199543492927986956750408581327582824949012508087182904782951682135402888521825863555206730824409932077678068561716071326874200815271581235160487398403920322578447240546970035165730602340255610274488267787207301588012522346291876900775105367886443190648717842640853036984821517814919657351995108553417143031130302238038953029388890058613094518156318834549789945990139536584687573963513949502442797076579169029268770275929045506422838461267028834568972114545062819099937464555449020660899909907348501216259934015246409164561443972916425930346820309254680730619249917664711696417987291664057565688384969982639648781988010687783962565689066228766219717982801053596940373198888983504685589390664755648888007331965063984543710140324138833964029909083571435911972337199715617050028728216565149029082513054146568796643178547033038922902057558919983551769757398274140405783480931048267999967492698577760567196981945573022032655059680482249851273680663208777978886498595883431603389547801867312728092624284705608695272161615947680060457939164728748906975070355861816141520725024258789709426098876297798562541328775210703897446912940836734260952986130925391095230755502975500441142278153743419172373784484572827747995334242733093240394212437657796090223249793062294421561794490155626990893075279677026112523470994705750659218276788772483038617024811431883355766702561346475478507251182839593124818092910614264726405484212725012987210531830935635284203381842059367484321010064726745733343793210547054784190507441025872021551202835967596951887500052477983315128862981344358321132208407204382746107436753755100534737453266874692031321464890149299309921663766179988062905401987412187247249371361689307675741335363159804568623262770891171828684922529350702245893435685908762609904024797233345835345048952643907713610530903295198067155763809528499285329728996817416863208114155775734855511329504518656864368335391319925771558312448258088462653936093989111847416178127712689630423122347005350457573689252663970276202712686431684230166727818822906600279945157714239632015408645199925714909302985968293011045491515219577528666762838732715975772913678975936986386510513601535106227516248662226126698845196023395254979380539873210038983093361435954055350364320556778528772662513045471547569178649422493691338175139589258580185511753127104350147115733975552310255797246094228800156709743255273644754390742711270414430852363517622917520667739302044776266089064357283364494387483955112618508505888353085758643260817124625690357781666749591078781509016435402521855352579585732446201365547810960752491247346123890564522234704572360216222839445712720462052511617229351435916479646015603671826352867527802468498527515234675729032636870580058857641703736280346251233848554501504683776979004909364660195721954511313221228680096018955524545607494227459817499364966921149748660533087012116153603470036574493294302139238822935591741600834793447444751896650264194176471780694834749773251883185171048762463786332244958177770285816301704300451162872906128194666465154378919035244010275274716908471848526279900376745267836913408767466303674485887021914330678438873790055684260299384994232196661445220384266911676321814873364316933095343960889725027563874735497301409096631769436280592789636396863216171632141156397897642451944788656160296258587107316842542106840067951022439076054299783807423445909691018354332634436531225412676137086102723536393174026777996696557329650971601987292798397040918768087614377178135586158469220817158583253926514674809982930097708214115054967113495037555291554061911884252199773824226435860249310191522420731814687092082604581677073102304753338522249597145620369317107880721053231292357536328001599228364466066933066818208649753996393904300723192157295072877727462858653300452596855217867783093355582031642639711476195506663167399407629254397064085168454756108479775522754577250642889526847656076152552210900643187243928266699016710117768342136736854177978920671378492913291058271827695893294401122106167118795513285350293366550968848404968265342549884353235453027555330340054223106306309466117035839325882094734430573876235786553679849398423385557844711073882147708387323283285569366845009070579893221677703299332108220209545517523705641041362890182104428661059742761773714665177090469049108434931427950909168939446313688141301232401826537168307258861741307749749845861753069822642909412498239412350503774663541537290608241530364412501696696336369009368078475769023202234860295332623935826654655900467173533928655843782052659718108009882169288631611269183619169276585892220865283775245489132644960026416164640641055750828872918720638538566892860945210068102496565072997939872820717123654526079199908048119716379392648974619502812535545658287789423221955232926024941869724556176754556086677763151667634890105412396466369951707092828884646218692908131052367991973913247768735903885836149940327000851550024133828421684333073013339907092648383353934271149740812380456586616510531017433438753042267390750219302297683072306874640186251910039035007566359200599612443690802610661483564857694400922495086630376036869224027074628394063605788842275186477385958258191549792867527826566580070684223822242150965147861113105166920322468239679630102214874665104160179562315056055869892882416192510893381830187060859910559480681072712684384431284281968959221509575120862400710534604359441239600106472280880920739579786849145278721985507598295612651396822793182796622538512599594638345462555477563731532471078127263941494461145167939536058536852792473616395428923618950587526271214524599507516623701900837632550977582246904498932277266697979190105618546744101618172820598683692110685825410501402940849862378249405073406437365990920698237785502611861234824121173620763460019931704825860508061386619113680882842722639177456950794737853819674002038652757060934121466875627440775703470923788457453791520142695799306325555201844165963627413816188791870967390282901968560990568380726329775110158011105959415527076958896194114237176338911693357790136939206622847605588971752643928025589501743219422433418253373818160525142105719984314301425925419491355550128972943067077410954798796742673399475383114698065071138883167809733798685896244507900566927810941738968270950636688315531994866499134163404197796257989338844170508080687259926409663025604156395078987184153088551671306638893910737265579080291596820279650407949902835175402535820951416626426655024254053293712613379574800212327525961452347802445748202512195666149807783616541571412853299060752950677658759858994378392449958533711972424530833142569684509024777166820478287612407255216353575412116506289825703238594092034491535273451826237644472627970509915029945568251604258596303684907219113097113790887527844643586267125589641077865123184899218327621880004818400318444729584705000387251857735006937608546417712577493858467983155829775043730749501378221979219310270485095763436392052583951097829210882241259619530824313236960373634544216083185025990361690424943745999601736164869617542374039548609204806059271557089171285225276572430070962426798761873419033456668280740483198043784658814751432578297908962947943284735566659983811380975953056140306498226792664939102901204809064319898028408555448256171967822724516270581977937955066049252351464592253015974612469139541295035193046686473093591177620635459901732363910179958555181273703023979169875639090845007250046547168363625667467525192598650228782716967698548561837221495839509036815434481907512321014656614952023393751249774105072780470095662512451452139847490100616990520580424908316043061216465501678394397204195034900613508521008004246198934724688326973603783255420345084589719480427437530896663482744448854235599542597084418312523041411575178947632606414349378228941689880232807678075004207625059907285382365086375391128145154178216427859598300282876764927987175512367603434018644324720284002004035957251544037676896145963993106158403632499082842577790659112468614002362896139421982179057808174549304199571343056068699134807855155971941204450773358959014747921796835413709894621847958039692261357793546769674583381815722032387981268078487080625952317571547127911027103035356371358871996366677365170738191951282651059680538156600182269250356121829187125847558493738160974922812094999772864497849657847660652700527382053104287168550210749836595730724635532808042038706766873985811243702758979227774984981650925084096135505035778184283471908252982004936067047109112793947684744022717020910673118303996535203967465625753229852605553188608864111217768090404885264087468033838362712316153336500465146605026960322492109791346970901553117312792843763850576951505127500709106555246411921134837418984839322745087873151122514367942487694929553848341200205393469514924968524374498707865349125761845185630871528624040637418529541417075966628773405593688578923060853618715851427337778565253673423684836695788560746250809235588502468136747051461524758378077706368186020849429093228325882685075419212789744494590674214365325256815448666392172706770276370996831203511945159884875664086608671364913368334712731059415667022533190747280279154751392492720108373731042010586969298891959858985984150533198875111908043004129349308087632836478092615106141329989344997229344812883708331341322900200975624653563332588219559705832075513464492100849832639312444322009759767999416013675411954509205707823322356507765741072054749379146026168299647357183330430549004550204780373381123415516345943268457892712571051059571793339224104351575861509929323981581484433920751247156767034687916869882977721877963381635993471441928713939449935977367024306097175988471003086780657454338752880067784507631974428824408018646502666481566488419421423400708351874320610777485178474318648290728936916374492579786611180571262227585865805821197332204306540951816295871507648538109327094911950351373602044177610933088196865023242737498543008602839706588751603308331095186744311656852268767851175869028981131801211199149365465743900751214948511820529048273023688227629733935620673512189062119604250861866278665222722973428576675844855733884177769408507378259302668901931010512188441304232765577575799893260255744930114547448256391165918627541109194940178935800605023183656087312299121539334561514701067757312678797625509117439967782367662275413547308342754342057252081633598832422661945308077661458633117978096406839031409067610807798132449119903815935248382454949824581063271408073415722685543048311866058580332292257001086342504642925370473611209887409248066320531115988897094725879996976661472882748838904304509372649846470177316346963601644353559434629506449004632444810761978193985697408334787849571709435812313486501223954197274989826204725037521650606079437242421038398305933918793426516330883890323445973273332751348230081701348102684781911655421494452848677175891263159599249504395716374256042176321889990081063732388764486109402605555137995669166469968632628065816112271507560732265235802745680132429526942800155668389360319694757155967337765635800465334196691482197617519098570714539788012724810546107154300170656312496894346960988387496648715680996392352600676527676388104113592677758323624139203526515280317932410947806911247512857797894378261681700632314132787060646709277966487513525352093918234898592399896681356340496402913932455821800010688933515939497886761378994418296745099286961409226847189757855126289595703617573393961311956655954110050548113147397416993874004256821570061367669084294505725790927245830444274830836272459669145729730561898820670230264620739618646583260365872262793751251199557391653224478894152705055990066153009251263727340181941846305701693817652702421776308502500926054183787246427537472960556333379097322346968858770633417387731958033518020550944261211009226238593313854953384763568058443279135823963031212991935045179035617958078466067774373347448546404421801675939487431853682519301093537480004446537473397509854784179040086260485373197489913519977604676035644298570748540325427129601757781036292094704205337847618846974783632117955089732418267928537776346014421027795095693531343875774216569209626660360471963146431437791174143378013777421270116492048577220895089792880375951000804775277639636696826538806714984280444015960199703369363718257102888544968855118599762909571921443579089455987162455465033172865479243782976848577999948531619782800606852597740542409630410629040541758198969949146393435703455915893303173017671273616785632987163446551946605511078689947127573481751734812937854924968344464276813707366067439474127035078920275552468125416824114851172740171523492353963781957990323136463553422049088646112082987492728076489001375907005074124140395733050504040922256892174354617122766379987650598292048034702758297396226745054090858561802124523318695209752526251675600038225479080650356671131580451334460465838608889174817182507013643079716155807531685329898415443988980976202070678841889223306309105159482608448984623068397674065172618173306540293085862882292688010450877286750521472874165708544917807773787737255274147291784896236680119562736985763538753630709893754935620056372334670612085255776242322278380805895935122087066187327185970857838945889596376752038744524928074286491237370425365418749870257117335815102684900283921354854716301019408957390882842578421091767841333446680101760130404080810722900728323285227173619155060295772612261222674966259651262796194238487599157458125676821047407683607250755654193900316274908875351083013228717504234052127029266164597997566489179198321350615904959434921770875484105661932848520665111354466357426783687172455457599272225371137945042654692092944431777832035940920578226145368377641017142954922053346195483177428520537746939140876186046289817770229747487544202005390589549946883241485180959620639822212247517969128288574612529314137860994593666044343656859239752773735994399606705931736846544225378231632049785135893311634093724511531570270206413914399966761065774467985888714028201906418015619596413792562348238942036801533724427484527678276705822699174774828994450677012236636384407635790350413471413856235345472345656204006771053224359366343575656709237952047129505451410566625278001361932158760714437599253977015945807875121002482984792359532108411950412967844271324064459784373626434032529500181005023355351362799751121482088669620423978036679017310464773007678841616556859796097515196783022998442371852662978860630248825910804931718210974190660352810472917117380657410600769819966441734623086041871744877584161286339160550964121458745576863117269839556291482750703620059192989068540916268688097923233643149521003206193189260334260573446288126495853676166041234141331714488031850871600549001890014850474326397511487483934699970280255350037037532315696790681288760897458351383522199552185500697174002454773816872261097080447252201943278112144562765812857665410539125117163674800916090961820881471788390324671408140214737110882289460278405176289125078356101354228352624779767607325532613992683793879846612808330335423649126366101885382019341389043746725174155955690001339819946505379848283054749085787932446774168890734803220851460914812018790722481644147985725569622157546333459220421761948165709024210806534718609263476167916146966407289494992611400226927828600329569133080967618054140689261407162398772111123644557870249625971005916159788451709096735169963021393764453481404347138597509954711309396888866574825271903548782470973321033695813792371401495057300369152763239806685879627046543699356799290704784036693979830856780182220075963308713815114931852369395591006903837479625748643691832973055068188718547119518044389437549303797903386375927811653846498372795523024004892256266184633704640780189881562082921627331060913037528047071958008405632474186347426105629254191291313566400340238110553447926387812872322624420736663240451505372654249254843023876680124438825494291654775766552021021168957780514481323702030763396101962201506343310160278338419710096789296491049942862455351766982954706146483948665329001332082048935514884723908861805638368511405586448577773022749176226044244475346407775335464406640167645484159964616262407779380640315513924597588618787919183886304646130961839004304734716284285553266300892936028019040379799302446345306796192716807168634063455223615796980899625938760957216667428585503399058175639205987129081030467473191222721575588489708986545124422012905214698596589941599954237774110114838221510611681994817139701248289851011307110343671150567307641012319000909236120830094288202988542468272576565961316351454603405831441245074331595571016212059008772598472932574793235912411709179046989755315810096725530506557432520808654158180757691253195699779129010302628142294751755997557272584171533547706573946591447837869476046217314444698053444432202178886330099635803085570606623325083926364570756979042485116098115208083387552823069095841704719880522620978937766805180767193231105343226891067000586625748629015517950203957200561332782034860951050397623987012280409366616326027410812374467521622417579216771620950268926074841921954517126949534674806433717857787171422741089725907316642504633274489921014229097068653721915662501411469532590063917391658732247969887819426469198503969288597507005098417367103871378300447546029634598140477285122518329447978005287466601048317711236665013245185095007639722247015063833123477285335607264199745847659169104576895898260638993781050166428285013772573242224482808550325472778815678510000686035413833166752777751970067115251861481725797491447448264478817566204712412540259865911574328026443577828613982345707728332707550708018433159705946805190300301988842486768679093126332042643148773757281978631233557929427760538099954326457798570270583923588307288649563537329710134205992814935753248309446887796091579803127751197299286880699979552289370206873302984490177507507247539513704608359427354640458423068467874548286677781692336444288820582950174601036322010610224115987437986946291456625736889467186855918456656701463735988440465799791055047080711363591703440312215887290886790306165774461698548535396013309851636168736807249589645451334936911051606733296591838514885161601348163550521202976027567766971205786066579295425843686858756303882578100923361518200000277301307981341673130736745732521036793533780514868630379739086556605505727054707640224630242927549545809727894110260365142516509022995393753781833010672643855842664933921604192602702585978505333612821316604744966170154673460104217714058292277112977146437385401921671267711954331211892176703417247875475548898503663588044633300542950387811744529876932012501744987362127663002388045072903189631066737413499936973239726700714164981317506239030657314974099876385470104515814895758072096874681738409787978198602595891459737957686872218523016489360192616113776751700191126716892711881080136607616027830826677853291424684941434427588786222448788665762071049511983156762445267946207247622278888645567161974426630048877356914298591282467473343529325715957110357705262215342692710782208541368183282313803819584661840609628724992634811842763625213613707450639450393132660861388233417669321173757188564279932946146300557347037675491073724993200236855065409406767439224282914293086955681265430502476393777636427783631923051531801946295232697551019467711792835878616567891243759368879159811939778101153629261758608427549996796489694484703618571157513734975906856958168093726556215244829958616560104456918115729433191418341556672746879167487637523546263731459529744168117987644335358479662987998824188979841387895582004896887644875583237811490589733221794239032216641013639355234953337593661183230003971334546464150745586522531485863644854172731657959248749665087761473382370444107484849262678748373341170601329727659072150513828454370949426430156630917209665403002886415313279678064483540098038736650881596499953771240291162638555072714633972762585346376375879687563649402364335401723661484982455722837133435409544196392003758303313957692543926532173186405651982591600406885864734300916739498546645920347162263146431960200732565482511074722771006068910631336618346827423121171211325882762986699246191326559735116375856048099460544100325621499282696406936409834361695852256863761626704375242615567893082474582808586960894445614017167728321614371753659192570512551748869919175767508296448699827429559408990838990793093022261056050459878988570497387310314513426005124115398200209650465025467372838698570980480824626000419812262928290303913384587478193254622458085034705789067259153443990453952184488573472585994263019156267205455989203264421086719385740510211490887636917257631026282877532066117092735067894276406037198279621183448085177107526957754559087621033356743189390720404981676834506234458614988901619539766493354445660608296996161106722076308002690016355902215935431025365733335575276543185600010878666653608261047047890959994453066010877081397086588584710729925105308388217222409358469705312235051471143142999492289151324553620644056226432750407281639660936884837804204971812455458598458743648119337027681147540607688483324986619980673395885723321092725969646531900936257360348073493780890122309917648419994520587709327414718502891348318476795410232468161491963715703760680214595859676937560967576707567743328790761011727395782038112748428117531740474373337097825794068522263155744642259513492752045444686126093604666049182408029760730707786816000583881487041115930065980663042183688211873163466652567971682195898794242145771434969799367206847085631574306203009145847340303675871558798887495569163089284020356511163402560362539868093774347058069394901344171002527689727652487136947288196100852443366933694656298684457969414024592175153317545414417666341632217305391739641949960323623842802111825326174175641372460284929070944149209286883254532730459305528908768987204384826229192778738089900541132473678900980525404598987820111027260855034079071306836745832226076993657151140322974386211359181908960239833091476358942001754677679193993262032366327526051119180027595218530084774827795695035092608845896167709446146818031365945404903560806740222143207408478273915527853586198888678422768280584586542472968559535514967012219424072237281607649202951554731200076113062137727223891069679432667177116347880786714032116947920326977440802531017348939482990159328525275173518636248893346937284100909748514858416234464922921622045773096956275604444025313900348350484051234485589688566652304235907518223797525257618043696564447161034451276425643868747385126999492344932379081479715429287222656408942591215328165223803858434228820060375924944229038865535178580219424776327098876226819687271169147884708441257656882371899289846395388598827976711528308453981327010737691010140310657497046406779023859938615174966107482845500252639137715435541818766247473472198830663531789653221619148011975675128635112712744930280452745262922335260412788809314301465674042296366022781070592915516348335774713143429487818329359018034913195612041749231536104247122312295139760811555046075038301480122739849911738177181875996266458574134828102818444352388514828560557994843611495300700085395081969110079804235333191872154434588623481280842663458862881664151505285700836273848807444584614527043657436786082967133555368567302219343776973010031273611365061313412183767128633226165950372555214431173442688246557368780363182335081118238431643536920272438831818340512060309792383778438150935071290094905396196276278843817771178991942362809149611917693385601928374818825075951671375700359020893078869705350384441223719212321285690176087166424435243916527396456380514515853771841641942262899193921962061221607481064684769102393817291179953317141373383857378576171800789922571654725120597610278318521998836375589727731627127944568945210515581320145172989823405676340231369826597155865216874433619323709024360873348329498046875352800652741757578418598562873630694099170632136504802632248991347985629781872186334247337933035801760990942064579341758736040529954684144000750451570925102507315762137237218933633685229405058432501770715201746403171277250129685895224227580831150775812027613731200323977494457554128264911067577023826401607440002260101571822562434501484558984093259809626023050189350749769119184940257657990258595105650137090593839301051176458535771189170578963659775825846205322684661708262407049303590143394796057427711875064059975414414714983624870331247833909896874249330744696972294536116374676497047371644833943262937912390272201297034026376232695655664545825442322246335938052950441435868447455620255587974436881419440013902611041387942894912224068843822218652562450908797268030968753232213024346595691452944730242413698130748600155031394186764111386481625156716992466126484013968049027345426748978337465860170007440153511117737665922709762603776820610018824029709742395710559606281995498746899830581262285091155094301727613760968883094420730361942348355681985211301063251571762042626410931444907391969563959627820785374465873879255195173194692754927487315354859415913218555514352200649413305503104469510481367819573458573216839225892351131186254383572365830024226222615176301156532880366824755073986441208243890108049975776532011866593073353215570894845394272878240373139741692148314928739828662265238867419639725484836811213187803741387370601388083694546236584046166553940599422213890620718760579361825902886499383739922012815862958189681102195896688909845752343424269055223863196628462608791647584411122224947187398357415216372115929123789773860987841742586618507236423976298593373893418031221065661728134103206864220095890983376503626512030230799332858960347957387107701019095699200014161192939863139291542010931590319058833809352813201610081970832031939254636639789923752458537447482520951108712548251139415975261677686028357694295429631802305578083040116196092665000123195866063188235278076657732848895022911129685846304898506586738376256140461645552452442640903827933049782961107654145601245841833823967218325134993517100392825189875434666199331530735140214737470799921286808169558881094413441226511445315282251430335270546001769089901702509033107419805812154113891243102159569594950341973842574489665844250362668150521207709105059405290451578936940520064071984810019867159045932843767905758023151695924356915200159905829318779442758297410403030941233083114825766542684385751363793288104638317276646332933424631231755016390543639734205242750942098885389919969167489970823172033965877391756864449067694629807878876411150963225708649183506178562176208891398633443575197870871494979839941471658044460386192933086758414415299841311024924305367040039702584927361887078403317663654236337698981862924293534877936004865451462410651773337351673930321936531853039353405705127573281778839681148508915670703483875690312048035467397557028212046948319465196694852395090195649980194979320342058530397536831540989662766303393870887493893261906149972128607771891978721490379673163622509070354271628310495112273695259322027241472927633139040073777597649805852279078744521152238477718541301953389332917581711205435166896994552738555740858698990356436304677386244937610864557592794818438263699673983172371753998581964846945128149377686274330742376686049493884894843537128741703677142714375895513324380552576615278049342042252276819841695471041922186160354038526135804731221514961217402385889704422797512612958915011541108061027211854052239706645510258384697920864961291744321362955067126472428056725291956728599735101119823599885659375551362332516162082868926389720516016220773515912022180145428893572055486682172991050411641968094685107352901729645504178085397833322287678424211569844533153464353794889293786929284496752063212294147095717658143879414108721700630793570053531401546333304236701662230963398773411590733408967129223762891202040967003282809641432143161788323762212755009823979272467078664412277264955207140610148756773987598060592642574783615115755754129715681116088325998015865059547248213535408174164254116771474987655745920479404655668747644409716914998735364294021507993304333563773390668972406337342420087196968666416008518060136242993798824646006012646690717218062685563002529014513904157566145729039432027809771351868819329396764127528153396692673725852625409839966637733420118165191936282135373677745057197745203654718005786553589656072774580625391925650494408802625358170257031509372406726299252770629955887861553752578872081802846620610173946156560102855845927741682299502532587307064004170542314919589230838467440851274013593529794127341285764682038760674691990265155568740363453067747341525623377327408276787555975879850923063104534519121651255335941411306037903328646415579862229064110780956799638711949447852868546143603688927286300657828741758833226965949294857738734288079119348878907472838640366015980924946985669420338140548205811034894316863209606526134547227915971350333131987456057886856981583060827558171428556032401965598915126130320707501107585750191961024090375358736851624507677788769082234344236949914576092692280337403210607018110553553054737726136467230886180883649702475770114369227133376582223529946465925059264368224487613516993754493801621495657434409344610231719281528661629419282858251684776253726839610632176550532217246376579776002687914276072896140754605846793097549684110632922831327872384686292913609548660722414251229678354794272192704879900688445214484266133930889108444816393366103651505492566420710346514862180856804875061958538510633831707074263143080414931234503601467919062675336493800927935028151249915731311628423826321326983862011109659539239524412395246677755339935373233216721763076636523958060291207760247558350631102833262922044083776759661862474700726526828889582495337384342090594257522561264147781055398160849943543657839416216206738346521573406581295163767965727852658372604108118997501709312549053509998938328173015312719536517661975775379599597337978658654340702695795061629368237130050844540460504159257341787280699106480919142433135461304789908465135957767044987095934826456781953402267941373205150333625360408704839626596927824151392626599306983947140262934077142835029612092120718811056943587077894178850483839372792439918743127613901493328951645814142642242767506448220026003991030612859530484956984379948639599070917636719263693333682694286904417140028787671564498813379709596887161399964728567558391569337221538049935322015114691372051650557926450282554404301545102900888858633620687658828411404720099171886845545223127814858595483985827473444016922142152767269469467233771598238942796186409415989190893877066697270899141220027706136649564232277091911396969817242828299836836184593407107582579583938092906171103555404391988711262181528927533911468923419464366406536188448061426157343572961796604797570287415976332378348433264853237294074571703320635225191332348862808719064771875301673281237783288868100139609393161298804001552271813833914494916323231752138136168118345126734044041519688198009052300512222388793059183480014634852464316318332861379574223307171213082325276324344126740925398443803111412667764446587569120925660545903079215566233631300586078311453488629026376135868006273496098470651915972649833277703816557404939766245434626239693349796907704231683221773672711132377076205580893252383290202041558140573450789097908591316853678060364328993228111659501827188776853226640799440349750234515867201823170132114015311680392471881314728194904177815774327636723796888904832424613550149023388660020820566819459636113113909269789506430774161501318962211573753036674756296769852555136547606071098234504831755677067427169587294757483360376503040454052887124938575545445696995090566672475661286701145442542665144494232602032956255287184534991100907650679932943709337473469944669138245994948808994837357270977330177319561620718807270790220572551629431212658881923003802151494744450582520558114586857961317514021446851276839433725535029261771136160217747752765082430673649160455194558884604828597631909202602639703301132535587925294570580352332723844493416363917442573440209547124594836763112081200490360818785248012267779877990494501853595269371909585973202912552327475164201910129871103658942762268358797823635180009308009467169363267452038331380989088278587934241553622688021040379221657645414595337793762949388371084562416167437936134261123541615361994341268343425828550075377558053623069832799212279584876580844211431891123692688605490113712687859304183231680959525743562341060689802654686908018895231126899328324433147791643908509337251727536375113830935353003660752838414696930936202775342341039478822088478136225509280688802906759655269002561466819209752240739057839160137953439269668830281625827807527181038083174924494448956189696441851932035416585397639587054702682578012331080100997349804279105446153310455392153986029733838711107778631931576043142093078011822738579984149266075032462065859499205642512639908521925253344355885629233653439534067001324430214977157662255202114087316769458382383850300574813226287579715105565229870821403706723838702856846142979617239120319043079126371734114272982209745815953915322579438652334921352377076072616969234648945826902930490635365884406276970253700088035184113056373113899417934838211633665675119603199954565333208007469450770500686135628779218832212804644874279724744593035351948492735904399962498146193844345215412177511930204069946091099120224752114558191632466193035385759709949006735547211874996665887143592071459317558568593199360364081572975996840476985232617661816006992243794108794890113957881815697135430979131628396529922097066950130304551731017867273915698325251170698650653512271555159221483475883808385249742019636513811931473571118192158917106041525041390224235629292629897461485957099251409889513977299151798004269552842218272841700262619253750133183319762275003058298254135040558024443124281557037348290341519791540625743548442592006197211382518365213357687994690717826542330585243790301362800824063980446747243144305049699751374389731151629604211350910440179490601489272771297925593564320747059323243639645334640395991193828642527376509322963986585274115283046427965516704251363919781118551687856276202357555987103736355252975573190614897175315484106927085208033992958456329254791135803271085144146973937771553972268535279242084944317559471273007503015096826808496049089786218305659500905139152169076200199213946142277448415059255015550564878746873558861319237871132217131530773055140832489104201413068544956345621547012428507041253086072558559378866677215180695503252867768710880406118887499639769873314629209400503154083642612237741528271152293579170528877884257623038631658838178482304491489874765496108673276827863443842431593369543732344515500779257683190670555501374101986232722039408096599270200384569346383468073354184428353688563574676487796773967017142317123750985478616971630721716593267453467401459348674694328350254676484585979766303144658118692609254229011921731015635962023810365344549030743845959248130371592074826535489090672240171206613466586418527596464468697893549158020015223448368051561623453670028124317908895325987841177516809869809423206583864627520339199656686179210150626579711129944052196558086935607159278121955849287425317771909145774943133059206866755071103034746433700533864439004147417332059952947816626277964039361728388966557127468486123710164928337861512016208775726326554513158652467061255021381014170745293111578181886947935483829319901732207785415523636469225893899750617542802898632166474410383590422965878467524885953156643611400239867968404118030040714253131083473722511649796910931448441212289155455394099733442175554797411516524344254085268767511806202165090085577102122662936310890816599498434763624255983408206021588341490461017820335369154618956042083626665289928315877114739712906799371438634053114487457257380787835803264196045521590679140847738503031409481310772614616563652408541918735350250986501764588542629677886932705720220204432855091423925434423720697546437933535076487544297063506514786367460827345596830364367642654318464279410474556494305060273847720521673853591139162105237672292355347943901604648233392512072171897161644768929907788445951385455246482893978528368119226109393110521562104586542312698324655848574806202741011299990282278558433179524203519670298299953849135464330777289921051284075477065052531243503249830389151986167049089036059225237487580737431485365241173631330372322954938232426640184718386434170988330979369247750045292683512885627891524465612150033605708105404566228969977130097279570011686775221551283490411999379982580121541498520061031213336535218211880434298885717118773019987222603923752814994493094032115921021391585531292935219920573755838591872805134780213968089185495087159135650039508500223957427192411616560116295065605511043511260838116033497111213789381113702576761731071163457657808786506554889143111997195086384603736597759462494497407364534054503698508983803009356284785824550914942952544137342498913113286583023322622055645133129296634331021072177967429995312750069936200982581157026314558069625206766484079065726482769083919110164752037235401119503501452326335207353351738813959335645080093110672304570733667755123949421150516034320832735343470617601762020300010127057359888259643154610009145444887843508119168074887910522583667340274233925547232861091995326258923908902023843376110766639900064103013155027805035842290675405185100369944100579158887709889244548713203711775644911102833811238246075383859456684470762905530040862382257162751925274621665070797570046800160748747333175788423581262749561798131409240331908896267290169590180112751184678197642689482592205171862889893516723892748029955051951746833119462654815727997684476111025205882360443057307613081292344145097566429667341060572322612063642183764829670175108282192283546605330964575715938040509283150553334747556862289171418835823023094675796464836359824188718078833184877840820962571027406066255334354583325321266909696990600261923564899669106736447837763545476666384098412668570076125611500665598755234409052335064869367870815169308591813919615418869067565026588403284922279121098271007113020535334632974097142252451342091948736567661295113275829685668295977664785711188077488926228377232816582532932983764577848979290305133708027009493284314356796206624364276419605958516800948225393456336933205379797513006647011289952643722945690923771250315753852779433719478228982986217958984617745375793510148143295230658615596005365886782464527631363757505670744823972725804667609147848846442055093304745523327547531720117078892910845901721044095501709511408581431215714556243753108632195619028337171827122205578018907662946175970509741030082585752435163226257144761338461318102998591146567980019270010646634546643971789101890125716369549221623641036176406586198804816077098367736813362435186714447728992511125265972656896384161918681834141546318121621491706680239443916934027850457247800758045280070080671616446395714404072509783635792056892340471136539293437138584271071656181287073917886534676432490936726116787124936842889263518676153350266851570296942951803542901315862928437626531235300021545159748428077616153981054997242831988987469806337219835257516902571520939659350336023783116549596741032543468642091997881520276188816930187824012243250351139759551587185730271731260622960858406446886935909396514727157414021963413463624682313014098812615829033797287219610518138108415492765315726597085807504720444418815537343002957961259259999773175917914617608550990351189571415571479837412759775944358281026332131650769549899917089381630915706039642367681248100133841178572297010149251788931202014629297339084485669484004091466182773329994316788931920195780618663594907513182726798942527191043050767538043387109963126330548391371816522227038388143149710920483790150527302397354683067911176061185438025451141519591000011450863874043127561666807087142246237085834810856616015707801605717368605002131437433690508781973957349150324594673885668596482775420630847435089281207730733946662944437531183539737083369545566273374154238584003475885780794543252744535617989825179778395449707959675552846680650808875098539290162856503151555123655859511615572786972188308381684642158653021679514756477795458056160722827171523654592660461005051134494546575129845973027648428067023761884523838675005509768457195072853772761467684517152183944076859032806133967195529182606126811955758545307195680808470621766673090608129664666906742068777182561783111586212694598901109772944129186524466189912268614065898543588650077050683578806649937989829127368716889208984973465445521323000138647088345269828566693088659361275672291579268399435089476865307085504321890055114741472253621096969643961723549333360112014273841791079699251324076699948571049688920311586453586519946111543511072367784618044875409261874120732751245430056839524519708078351434811201671691403419786401036370029622405745383568516155135051999374211976834371486743969849355928867931606090502855898405014292017223951397235129497362192275596251199978693564170668189512497714388008575771684588225005027462587485416671706487893244044848716890178710939665517815866358684451219288806970252199166975906498952068437444499539928088546531707955873463206592693769999276874295736665026486135776974487528859882175096225058794473291071196056815677525993972825645417611959436293279437362642561090664261311919371932413725667608508511270360912544569253133946438894583106181895164453310423561989671472892896197736406065627956151686682173760268675495736207286874807655493541077853927172646975020091361625443639130725467211999807422655658149767316792654304709086788877835584912715592367265971791499227778214444292490488811499935284581877224907972411200813243280285358689330801292951530652857866411835244369398236892873038350849718248641674257566060245853807983897781851498189911219268311575453699723802676788126624401332059859900204452508119617596923026790266223222307939080215442426479361092084187365757616516746223003754537325366133092274568556135895799266402693196754801798080268106815769825070635210232814582315579156308281171259248815218953690222874572868011057652772572167047512359384764388311660105513157100694339602599361108438297463762872126470221984766674760095913546454389109231147660084566071774503855032860523096489566612542639033067407289985203686598324858312029356720380054725428211588526106607583009956321426333410805355076453144560736489057462576333990669511751478491133944246237053226840242860460621485513640338092117208124978268122305194580501460330118419654317980440106104201508154581031961695776743144041095847335802404201736730721841840085720694630349900296323717963038341193654968245607019518175523272691622766459045333654927031571601725498402084074520657474084479301103754576977819846754510645106208513956378925884552769757518494050761646184366127692048879856003569878042125780218675823344369656311557000343743088028634448694674311243142251305515190595649717070930573779582497565947224318472544212507138676038270063411623530862259709500911780469247199929628059653571663677969244942855917210506424090906135337924636614848715717228718719576974660859969196539020386799158564709966764243351708965324051891530855901172455363814935149989933820539614941844104281374002708270942039457002930777961438082657609393279629766867300549512585521343455692770604172815917760151064992576409574372403139580245556819752522585565907875265388706022471139166096458963261898681550949562235232560595643538254387293757558792550103688793087027452518934965393190551933652830177546952348287027034402482129614946099419373372142357799568556766485574353002227814236278766483205229739785894019297893878380147492165386201634235699013366165232537475619902458976422759472113492505223498322432119665208750480843789156754885370742555854002711581461496087666737697273547573172922193219410778927182671075717585824211559059766036942012572853910674552518016019103780716488760648987685696565504243732089267776368762375137142188875480732125161799504395388322783607102648370507194849420637151538634617220369266039776538428292008412008409986033327726349801093978807553944785403835546710230333020123189202116043964630384563083139927263331810639837811506812005182222235481944697564385610134541887529454829028056996521552761372433007466236563977652022188947073175883177755231494668779717402174733408024854104338827679161152799536501366836408839911258050334786832536240146939549992693496966264145221226478040712157643392366353808520019967693533923451665468369916290477467561496917754728045787538070513280899266100809955320437837260145087017049914116727629036480242362912028421143126091780673781249681818307622755855047308942186611503905778246406174245802038721334876979064596610070299588156497770036848796641395008421544527081718399305086989799960163758950488605916004012886070301336630491374209472237935872745452063063430544724474921082216725192685020739645459809692069577450803610534336377988788665017492806949191259910634481472819775444611104220001525132104220386186151040803180512620878136088718602818631343974037068068249997235824153843456727714420654855002926648635173642147057111039896379007723204353743460153586769083501727311803051333464151224686547478883765090578590047712550065908113496131039974166957232213033708348468370548555255125418340047677876348322341797513414137162919954453097211155146908423750007559562314569573501993965768594101702684862424007300131256583040389455373719537083331595222292112942446890216917476379157923255186473465242484164879740332680129726301815797729754280810493857467107446802311800301131293449958686547786868062305703269658678813988709491032570219053278520280652456340065426311713226637848992276008318524666377012487541329465395611153966350844527429644817517267882586575433911290250403892332687210457639038173405810855772377428902743466589448150064831207751478880143397265482142008784755589266293831612363403986250774688304849701981506500358842898417274598261723114608629728587960769858103409900597088258468818964229488774019301744671225578974190682550915802532211689588211105416879009687401342915568658335024388958523468354052549478528959079130781301082664353779859884623606096531660160964257916786027289785019400185888459742912446614292030688191345855243302414331049780445533855973924875658505174698432201562181207641962941570363172958973957454685843221446863451547465122773795993343401472520011238098542202890057121514839651299702087718950144293161429055451901299502869812739642661821755165819501503571470237507318250288282819342995125670501076066779851580426927093146140995999851452113668313849715247042211657726092561179007136877440062424173896038962542822802270697036501290696749307390587973806505989037999449312719920655797374912676554464170712289059956915504812201139180794087079503509500934937210922087139839140548177645532853805236246944624030094386132338860831094690604822459070350268714461552123891055795199015829485496940897004453834828895137890276300590980814766602515326944387556122660604796475984273678215444426749799451087700472224073614843576061813744014461481174113067909955690822478381560687782991975051357097467542238170870793520140464702415732345222094668327794698219505959293912918092506325714699391450836607210378661742737516819599956585993301119406558449978910235055186784161645036438073432250746456670954358994323917742304536145339659680683069558245764258342582867259908154834286618799531591156385970684231163006226653612218107237994212523192837630688035140690440873807913086673117054231980065841014151597902414264765284517778773675640711639585777130800313485064955679629919894487288996105960667226595412363380173720330100242816751890214215613901783485247925884578741677093739948133429360751327668238888735392419885427066801641166285473615302813215740822606366034419930605948783814579249961155624054794679629461888148957550542748088183791860923350155396245781130285105688391291590317190608347568235568648711353463264873473494778194974996442793997171923635224810856593848553339616770180246309952488884103026381825499661004854350781664861329062199230283056362341346516524192907087662748561748196648326399722917697773384630942912872171779585773938854461687469212873740133461391846159756880784956827219522599450202507580907196955889922402367415504710681062891182590566480607156134579163546259404245970747930681734468333218376716601385125641292318645064243677339522061897701383977286487188961104237347850334375940363733236249690795170228620223410017171328600768213952885644036673492070012364203812810967864254054484589004777332477132030234034493364249955656209342808003390600200812238219917281763835490842954998711696081788489616819003392183828677659507042259733505234469579303518663718958197934440925431353106373193724043639787377662194366213050227348572509869285679491286093126778745490822843068511664680026948349159645315280366595229856757457258981072178439989902340044816280623383903538428202733654587407425085173101513978586154623040731007072873870301650148000842840492893018472489490346521821077253186588623498044729706511702296476933485667348644574008408336273789724328615706240800819442846435236880278888480214022907647720875178368601807327957336621441061410873882196907146122585515472621224384529387526168888552993508734791095266010401261843275146595477300464746384519797702280750204379501822339908460661477885782057993078266806111868551140581383708245658937961519955103124400050250630341035241823241919319735025076420796722283076539003423322863254674084398898909773225978405139599393370841823519895857226738053341460318081127121671115394656529823977906334446584036651625375354681432506428786809891709120238117464171377246801071091550517445833458557043517916962669262437168684529924457935755816369842513793546926837603500310129065028512384649640706226692913936217064633015845645418709357298680740181480329261506313510432669933490803736011505411319239213332988051047137934472915323621592550411636231300500164302282822617679499546244417166994607423824252386785292640721967842517528266850414106733321740418066684924364351524703135090105244862325803710835888924520117184110787714224621027267288342633676815601539323178034684574437762697079491526237738519483144920243512872924880205344087979281126430680582833683908410636542270941339539307335376123423991720467609791042144019850219683069164592057132429705058559052568868528377741345526114450969027352637807039800086388189735103825012829928992089354037494529197476221582492981295604761283368947738036266008698838461025840615074850301850624894697207786626829179220575359863286808539359238890131313344767708735496017568444056881814102935017606525847649447600343023029170310273600530151871877321015325879341778062034608295748627791858099558882050449755902532368638869710262248180802852287855966367130781016070265197908711725936143673972151821604525443683083034650532224621850317099077664888827928175238321612684574085787336552650938507831418827667802683381599143256886556172243254309215732247208996599731062980586580614513266595123107226520296022620218339046101533234633730543079410860017982953864679147651358038323872257362344858462722227591880249146979850694028147559010151978173333712395538894942433783149023084706084320938690712897957799925529074014687144276556941397044839733678174108058886853045606020154575329491088506841767651302025668049857185989403206592170664793482092543695681736460221384580593952516368018559355327852221242429089016786679895926358897424708172529665380997032646956778656245765740421469532412133816097701215992955511072915212296673723687839991369654919589029781488227831572669393165274410123294696660207394567301862098945548590966285613170489659134582232073824075100048609666138909439214530679919521329529741350614603125431990095305052157779813991376824653963917040529240181430483010691217401594993658460041597143402076019086967986878448701462243844800070929815986583927351346222163749308797477112658482956426683264797640770782634475449647714407452626423998534458310555457947462125543811277653879059097449950537457870232895591922705158847298118715527408651411983965753971413410730436845958551020056694541782355338787194322581687718902719294184469788577026898614978707414255688070393727322347053132476642871315758418621927323304044123009333259002046575962387668102610408973712811212269244961738091643290844537037584142924094436427593466461271370808986160570402739175629994643581495949967069281841204905434244559285640492894220918759633820963158186631527304046833118621173200354798172169186261185699862277362454860903884732244904263823671853000518332080087940343833090290564250523154945833625133246399970954999015538767938421064217697906501289324574346118814106124353928052163768064505859653798880539815400688325907898245659324105555385277722976768925732267825186075524971808901561945022726872248680392309602147142041522385122707135948331796353223405039555099446595792681273899931142019813548250599358031847150744180766780819496560375076443684347954723140287519619830186265260231864817019916069757154650123298346403189474389700638416377530493035353397824107679999217368317509970458862802484641392153774925118704543607740686741306108147951789914136047732273898534672348822115434432261770532584528232626898228011241611682171143308818982470572134753729744027412223763333188821648990314725572762083654957552553939103638799412894205846548293600170637192497840127952868235467416080250473925809592908851314696573430362085426150453107840248614389625183070272757138293183696355399547249267497540484489045388283981647254782611803143174637479861889952637118497285591418957976628490080096663791865985044541240292327701321750595572945696972397423392449575112071219015464171938371901355433201335357205860985325978628653243443199246941989908596956078084276419727264450613508839592597340196272945353100062648032208878293052063705828753404979777179857043990557272969015492878013499844215087414576797953423837413408431862372918106139608830865188398834633019813805988840613312432683541258297073228188545507402534844158941075214844152538540724739012368418454496921849263099875315489447081091011488479784286564954524987173130060618542693644741773066689251869144649640314437272805496518122107295956197907546225053077002903427645670749625708195020656649571867354769327546885034463852596417350891935591692771151861918868592529145721105551403432190152770768941779513438186759985229630936579540063451160675984825459065531581636181478773637411999674872284180611209604307025405439891979384164312379316866598307779872958972331035194466722543533376707822549862590184539562091480384369590425648128024260594594766464722544270234125082840478470116336334069650725903881303330467650462791503325145097482363797276528259135820437678404846770287535703720940904471607088105077830203496307843320962517489783105045643030915131830690222002973631123128344291509916734610441974890542283941964221277240076213111755630468266120164018874264721700307827906385389150976650938918318982933409684445850850267969701944171996574809855323645423704754713137992295004879711389473132917874439640924879528141610728838773740805870440659515572227604063125744901157040512528841455666597652209639133880891517468183628067621825758564450441478023774069565024860030534004387971353348242575556102000677056109906580119334540191057616260665230434934274457802966918262595846999972213808601505243551513525627746051028176150242382170269424592640955795143660137180868565148015347508062239811595196164739181904447722540527525532175107072975918882514490218291843214412612615104016242795379594401412658940043692225700092808104843368995858258569128505473134045569089932359925567197374207864705088882008537468689751813982894795974948686031683831580058335704116228275391564429949064050455473871533432100499752842114955151466890223351951696886171617274063800198924810992755719456901977494402569579408579623998755613633514709180485727205180747276448510950264408267411385796834859319200699400655606236979843537633272707250399813372824883699124346350148131242314518904139990407881366725100787728008306615269029715769177769426182711965273446891925325953563344548662301988123049326167727699733606304216992813902406000542031203135020827442559446123473715312466549113948273385433579006345178812515156909420205234579831039482618467033411222064743536212912761169619222331623062594378845988160599500242125102788878478906763714048464942341587750018831759760568439613015136365453975690001490104477108292112566356866362744951159161877152529437667616928633609164166147515270616599006587558605410146716432601642630687413802877336005731889349957333214788132092345439304930936566463028853783264139564439404628016296062427901220554329189620162123593016147071714398956456900852891811048150306858809648607170977060099567185878847497258858853036873155833846319875557735607320209250583463350750104634376298782928690313408683952350759823160973680872640442182431402134183655850671620943465194505912037912595186462133872306870127724876475611002754617401353465799899540947005701957517287194004394441790202241667659818123648890568623461400023665705576512972539002924520504996310419361406896211439700293315588728057809793894738023025744555125681587179432477113510901737780634698677404559837503202884621749230060258140178908239743995748563051966064921536568804733889526095578711455191802931308104764963102976190381559223432193274444050742503787029913631224956195807881081512779700402298540347814854854046860220487839692639571551956234935829488250973851126001723735487930126178793989225432453192171567853410934620303696527221384246477025640099828708023145122773663928297707155940797049196455356448798956529370579402143964027191603827067211960972255023191264879108195572253330255500571837588765518626759665771942014356818446777550694371232551866492750403101294675439454656459321439523564159716033291089792861656747235610071647059111023915335196672834502846152652119500785949414978841822083450218815169724894178576952339177601220067850354901832356460824914595778007203758994756084168056373735194122103563563086328046335254276356797786278905909032302024001715426696483452343949440830604268494743363789745653234401235075968350910712135402314889351390136141547137650896432111939177935060149206736928848459189778093606684382075999989009489833007210028371278007653849650499722413523807555952339255153849960727717627203470603130002310725213316990820137922125669492185141659142583394089697575168505056049782151063712352924651738134435513576700765124427931567486848631071973451020125622845454854291675578453148520893858617722573980700156280056759440314728438457847119019755225235281560928497084599637355227327760194788317517248021652865363982430218549755011946801444974884104068567952107001750386982033335442704912162313142898855613773297527782651472648699312733149270463457084035597294821483422780625209551823915170705052665386382742429140887396941602439880888484580300570175789835043904042841734457153067864868678430179499454617613943833777519943631908481642178488181501805341859688666717585907597712119828909628874854630014888363899567126289113683044684918861464215729099839764733384908333205895959908287189062783656850924944322819310319921067775570552447240585514952576388856770790213721635510497019629946784865497740446950869546120202749778278896111515867818167742966935786614226580619359589068487628740150975947137492645370448391334103836408848591214201118507910469169812246990289011842190366756107173806633686011643479479872671882094088161749271090161183545973015020716302861909916989104674840003233516710278594502140915950918856635312226450922555402506266159923819757454603068372583346390820399144996363311964572761973816393113791290090699223659661600401045983397513441138920797881946678659803888609428782914880236771035389868550691997647295559445818837522480722930199712103733526803575695434352177614319220881628254861725523764585222749844041563646501678739365937504241534522290521695923121112748225923175933085060656479701224335253398344446550043679000857443858932631738095721576732961140907809486612442049078135816974714372295398094447424056532032427176236107982565253250670187508377456436428590830709966112003022135381665218224998372214332682791482969120249866701674360873830392886406788082434686153446905101102457925198850920035358110300180134915124008707673429748009611467049770775654192241621636228613424676107810087159782633123177719131008741599450866407423528534257026183986126828044609335690677209883715523626988500078986335213883987223781108700899165931978266243003305928796724394520308886367460323996656776276843736790019623790166855411502596330406164919199248367009847230308072664615503079341463824064778695347155424372265597484952844487845927168633887365472522111902883796204023296676906469899677241576797416025976214857394731826310621321742080004291571702506097322298800657249117868773151357738640825678713685312907098165644766785951902114343186179133792211075356257547217775723961420314260416976230131280145867925365381246229877758826224651551436569254787316937859921608596418709111331755224078363373030193722140697054223311537536342668488286670842372489877349194520805266491508641134896516059198106148396902020387945816447488110081023098603878268325388193136491221105715230596376651985373833374982719895318621136481789146294744710817327220313917593125468147503177020604869602147791244748998713449100075588516337658507238654115433278493641734733112195531167452672596710901510936668076496361692323158527633698994642296407185504238848705193264223290906812491659149703228829666581932319952487004786280729128409259096969281059525112387367243145619142270254290958252944948466413925228415180996480505025333421585387793238325269284059070824913874089652192106330329184744464331074822612320936657000850443578196230230322169542204947996289964759353836107820354436167292677221442392961819968352016306693755502413516651112397629470400197052715496871111468984389763452353286933898913820146142831789049771279660548563553347337531304730899540928089286934855794794359034494862997459861947853305535355248148470772828977206386498367591285951282988578677313884039843518742830253380175158766830302501145835098562565716633875015173099703724710439008866598355245958946784671991192236443833119282018013828932024128246766255846504392907475090851198186998560823665452850661750983814854524922943923673032525792908111983250672506582701112618583975912140465164756526717167303056961586064630301400075496191795532513875282487756098327232025621955026936140492316884739884452164680586032034695903298529620503425813797357762893789875250747814567689308702711199873469114763093428638062753863882404124844565658894093603525964471787097040874035589298396729681464020757455455981751682364195849179137968474606952853252167380075195025674086747364793560824181955501528099767884730269425965134445562162676209399636062672712688934083041830423011857672032443267534991494374863767198591120568242668537652844326149908435511964196210069303862239640873030856727376940055034088286752311472176265228009006022410364313802793034644202791996806607040150470397725790876028297136537690673461804425320244715979211060125482030229391190589737105128349544356435823462542948034198045092909764483646712834350825399100694472123474373208425726121667811277196057522715517499379199246651039429309666640687075345890643887606291341283121602676750299908521193253277255343839431227475146011464746672924793273057923815456827515020048364261937104091640077632613102463775465657273412791194489830202785548621830176132915636798606267092393078042484161101200874301419650169523418528611361284799521836925952305278010879548557283481122766303759538874899071214179906472574236655675116703299571055564436846468629063473682815178041802469876769270828910955411223724412249752782423221469540304910688470004112104454503048067478794845768695888054709063799845969520797359406643517418775184553209769851580068488477494033476059648800224314700227646332621675880350587007773956060589685485415133801533381001619713903078707675931527862727249406003602693065877580586629988255525214674901650106135922477327011084751693144982110682617576640621296611193564999564090665907089765704170678032760885370582162530376789128537075201141214204357999450946616831281039688322603777471689153461041902404038932290760675023061512749813202529570973640734723126054830756260581154132664330843484090172715238531750312604107826483131358620860654619356089100613648119973886330074056930039112352963421221375518198266813517130507854051756198387788743118866755106652543562478270358716714818172424609623861270734409734602024766761044958765875837465610053786447967090958506726650242285604627271155643472191420016024823270971109993750682760946495720411161784687941058248807285002725701182481200004542120784844490976595934492505633033662758695178590375474010085526672365601523934260369246230646558355142776614210497669006322411400396243683332608315880470439237578813664009744397170454911313446985806396034805363382739802723425988961281428148312949205827380361920222066063955807155304221967796769782524979209909144689821398660544745082720775580456653634058528822688069553622308140564604677941689986830503636992349234209049530466553985939572680469264498679419032101815106329057290022471349404776874374386301932432319610184414929966064388550462211476315972729803844480279935832699387278442713102325574428291808132079166654780396208401988675427294290538622994706647417743533851282153229293748660361060388252692157949335534211048620691487497686897324311888620213410222270604697115972504101435462246934084798260527619752940038909460727456817994922120589169863999024451897611755433914775022577887926594650785373767431842628699424474127722415053851842220217882326277189544687763295116595207716284368250860060242343921995914863461263680639584504993764216618364448847776670260565753914767953542044729755118815620323721208876209611045298498490846852960956455822822057778537140025200452790177840857436653984884714744708503209296587839037714036093070810487529646896007869797446672383420698415002567625485706908412204942311571429716181571363249733677241263691761639069455981034683447440937862830569409860887134408442257527985428402962938020126735180486540746407485307539785082542591878875359471905413223835234147939271955515348624758436364631557481339785862543241228178347854101842556688334135286008566244979930087984112684939654348199781838921887353454721925193037022153218873586361901296734291648726636227873510166454831501361017617610610816140910298715863675607296264575259206356632097935194228672928788447042807342405447046166356765358145392134636850168839451956108114478857849156620094525276917394693982295381328246921306446295055073633962967517875086451319184333173988903103836831616111173338003247759655032905293069558334730514223133952233189819642887517993552562538034214667659404998320766054396031096147731581126577933285370080826454603866218533640958108899475994858918375011617578052238979124130155642527191903644547154806398194666582574163716372307164589056496602803097641204443553133805884814849497313097826991433151283562334949447601041043984742525571780071846602096013710178375100863037916123390708557268285514428527401646702588017478065564682886052054241493086520608998616930002051654202844424934386686725509577844387677125612739821404078470264540459484389574310010716832299012790354602170148690039454749997153254614312248322464477660161261129234806874383312733783797110610982556053445840356094245311073705855305558759770935850953311189854629838769820895117420480247856151761350851340633628220470327784224027266966457181796955494728434474404150697485770044408656689760160655184253238584896146217164553101098346745915890312901785449674755767405987182503505000176424299161415798146529996676590631160706830343207821600511281984905960427937701606230658850839715445901221727092380293511597754356851442071319284056055441752067803217908485498968609887768968516579467414791688044509987879813276165107945339681383840929650844087244963472423369646085690121534178598542026747810157608140216258059627574344738889077767077655543974305096346371479704849144328805175872471752113726292603834942170557850671649113049425152027744028643590043234617830081785954099423864377105334818975587410371659515092518504955759356744480581062138059938454506599352061553193664365816440817809703431295772778810219511964044546057393591999547967371997112702900019600036485085734278146156668110831076126419000497275598496298559385647493231134296179144935660823849896372389585765496742880059293145419615578749646662579998621213524182567990793433409121286617877940882472517476615201383962617269144238211557074392749929115976225944471930487205039241417011053428939676720847412150312517192125738124694973237827611799088848350590640140565273233391537120755398190893614822164822303500460997984509133399310845105322061149066428769973305595952094151235354006350920535068025641971468244728171031236897548075798568624816885466407600012309742462173772909661049262804286701695976073534679279241564979223717089001136529051173479779073833680593019637929834235182198195311597073316775465848271298453404341622566363192412971235936327830471455557469822695341278247336121168012539596781123784551853898696939341227335169078246332030980757350118667392796448651635595629796914851963933429092068322855978432631943573721616325316408978232016556563741005074658319597637729005364774049345545052483449986950815682893053490321201577148589957019643862053685235708928517702332050391247978424947322401916665431229956850872363911063774282382859048144524488505154032751676998347845546664567124117313496077594216853334850945114893222143233541971404773533686926168080320872764043857668239900895021613714872782411932114762271035461115968969740012899335321168516607353611323492899593022538235811228360963021859948802296727373095425944067557138400186394576498674343970641275409624253331456853955247984184291458292467353766209010991324187967623654001101325476121826829926347900803096968171824219660286006458748048225198799591507742190886727799206495125981331228945452918847076721985893214694901381507865359413392971985360047843243099123703938562139691026913158185107587815265829736341004855167845660768779067982781386274138544287407583543730153341935009700607738022967854325268692439147813980826973200579413255569216695101885759736613073097304451687216162938574218567406447149139537057546555621563923026888473475598193373584129295192898615776620496004569852028818725077907465366592030027196486525973983410503041814534161461530422449264844865437305374808499248149841073065676157881475315723363255054012476228639828097103097536317241424350213305973033130773646170748087779980525212770109723960984068099271469846235403570497963984715899736150519401264431464318819983288869805328753058614923431779105749806703063001626584388022691079301746611406237278571493259645250907118581271746950826323032841763113803148114370574930733557644115599626551875058784142936360900439622912215135534097639302243087354959371212781978502183267197191096935965620725624768401650451980610170383865000419182720100429175828567077428386745437014884125639858948751581639488583501174210483955437829250574718955359888561053575793850740194147001301798232118161339793514759237047793702397068923060128686851729000071805343571040065762083939770047950079029543785027216712748134603039342329090574793719914662118424970781643689799016361502785262319520633744798604702181749812897939851337609372820974656245452665169303247791183629106948734113418332506888303865909731767314974444975734868073215548318482826516442751466294025869560383788181232082123168676812706501552530990237285097140598949414981022895288984501215164074176217448923871575980859523753518447652047743653847592980774609693053469688262210626311566456039185772941197462845030346191260993192220905576834266182539201434612054801574500516309979432012904500515332164984461244808000452283051207137131640031538216936271028941450870947484580923890873955000387910854201326082589003484064024228847027200048823312289189351337248497413932024254175659563865071989567603704724332794949725954733616500990090399814673267055171491033201803385131228193266963050071671933041106099355092733063180610171290411255420853940442877827603993720201063016115031100705202596760286672897325571258544586392946117562208597603591069419056906573759749227687207083310420820575168152667660669946804575996270047032819669205212156109062051216164554528230306940662022222212795162869889745418425617722203193279206994441702336610504132337189012726154832947407801039457200860326316646621397615709547878027690771299890737941469337581952724376114466461953791396462909186689451826805077454504605173766885677147856087624674524071169605309563490064473961681306501792404628239201516011859128672925557152513345151413330755476536429624834189123259771945553817571299084956457303457447905498907813472892332974508523348690304864724191973186160512490353187801879339697748864854302889581457823982712331423149570887628573839869003523696647902297582056509404454564846573377197446401695865672941703116539430384047545926909302545017978286286216424272001783874134165368243674737264447313447933662971518581548159356203311351094985442836279632621187447522725546565716232330560458371958268684397140969558143110246945496347331296264744159495776852969776451434362709145257503051962801519422868877839587327193422005117327860823438623188776668067294267971391668244872368896414884453504983577047214157133759114177206029455021199941357835119402778035309363086727898482602776302804843787578358802162808193517272248189886901046375923899398974150615679277242761895494172654124277821938843985883778226153677964797759482258692874057473761469683853883860405946220514976309619148389010392451832219517234973711921270830692068741800319383848497663842048957049109856200279911907973864604866460341619001528566930034849944082111064220494031812935070975935365579838780345301499892827785060455534361401972234375694182418607300324733921257952894619287009991359720816947371574437416162712524528649253718899013255017310283646178019447430279046283960580479909341754983443113458386679003301165957169642060418128299178136711405595880541421578236140888267178306004537667594246059017713944954846967475613645479612092096503374980009185876403719847728505937706226759446722310817729579977089325874208624362052970003127397177535666582701224454287873344451730846607431477421853647637137276512562964104747353035424180193576748726905433225179146484709478142318649865605233437629986555970824784173396760955002919626372920783769050067137650018065415603864241382936298817596404307468169885446906375445265380938690083994470888999984175810788079055743936514666599335314644026930155154838364073702944538950306577087453072675934534796414520006510120077241602872347008679289336972796699342425547924643431933106690378500091427011307157782246020345541626377791908133913133146353275263495108502873855314971607037839156219819479140951392162161657094097213692410934615842522133631535059933660362720985246745480173931497424927189275507055695488376007753035979265151649906914851443766705449635910097820523738135885063931930232244885142498258992929820652334691564713973960626824471426792704921100742535021965959299483080980901996125653255028093694943314407758295810060799497276842366675047773295603899900619158051032051568362565917856089334541184708853328173114272403202506655577699267300401649741230085825383082087071266018424940475426109710697880806230917792016304569777193979225690207467716692466108145795382287429519068758114570513338358075738017983266528003325160755612540241704600221547941445218344543867768290939813440764224245538793563778105555094193818296754076613686890239680936742532296308952143324017586284451349046143567865973233606939223934839627844864893087919615050273256705815624395913898161058818498447210377538903757125454406005788165289902201021015084480278967962639454485258601551560630345598626482838609802456513992907937919205085193907500731960099225249964388593574337598942057350152293627320052159858893051326506979919923822774557884020613483774209867614229786923386300015813136987102467568480660340574430449952467648011040556573747504804991217638833626290725415392883657697004528264305745083544846659215260814252292316623811483472779432370663872363379930953833446509292044807165437672731320939214920740173230911279606379422379983582962351853650916085115039950163308933972582815269069497209110032473148785725773267255737734707257476570422273749830167744382615942442106895762808632905095022159334541485992185556639283871451086922025757418926671207194528236863277869341606154243740774931810138184952051057995062602016738848533198586857783097348534498224602335722426664970833868603712654151135786235893288123428208748123864422889694518327241816684517360937347964917353151085471816428371848721720483306727890106905294323474235112258507216577312772554623812687829978846821998496010339263085305969559441476517749454683011482687870327137335770660365982319557403965491739299515368720360445853807376254038001746472738784579482707360674507278535150293388575971775871642948011799919582362937199352890884082342242304223177297443726301538755928707564195823607354713807982511171693847016290422810529712713988046467945677838852527992428159396537256406753506010641181391742817380906332384393749979545507005480130782153399908441020008436297611710309670756819068250110601909761985328913647590172041954797557263501348929601543120673522641130835237884725704662847996423553562083689550689235177141535761754535731479089034304313680969131611055855737030099203430494890068925084354822235293444591827869782594556753243927368924988711638774145846271235666853958426734515436939619531910098607715642487718298452561620598595862602505057908303795387154736667940503930059820954174406100680628179340947352534211670809793114728871992372237256936932284149916311313086562123667966230906381507748530589451814656297112916104691064618739452619264725070936845721769059552478981442467524308821991256721486127293493767370315077045195482116410655402740943506934092071606920825141128542945766332548469455291366680622655830496988476114953490650965964342593934245613885741052979937885694677774850211057710674174940069753715953799348507380909682138844296939770899979253365756081193353610399884257908913185135550729514624763529344132571801945274298039249271712967687638452298355664471014406507280733823349818141807609943651776494901215712293186804320505862718263927604278896161740663024169169621274898330738245479531809703665478147834213024235048653577931049141100701125859357625891697810822749542525894950722256681853633494046423293242657338002248548950401482982571878674182124410327938597340926426949673834766244491563642135566656087404373030752662179423809274990998699216607868501880545480002747552278958951716296444148508126136070330927766570916282363543335771441734649029230924952807601568676539497804719248896612198228443745575452200095533473785022922599332039920698434083523439476572983900656139679083547790841289537179999701193909351392162083982531616577778161384574651817497178296141140961596559448717488204701252548304656057918017103292214767609376808431150118382921430442516376549989962536016394195884423806535502590194457673987685097275675183594419260269095101243129532079782634604254160028045260680886107633815894518821986401682533419542194902873040199372934385869668570847725395476130574424534710932238948891200786158038430513408291068534251386125897162545496679153883990441249331428155893259748968090347930903670970352253924924294250085484386059483946735491361708883771143832200137240603266687420313548860922204709705537856255863811496735931469569116095008222122258383160100269881889962367957614530491772252813394933606753246507301179054225392658238534182620523967856028478629780350795661907151602051554416485590615585336878295682157175704305068030627473988918532870846117179293375012435606697080590410975894917377839887430330654335136964095766551407485726604613504613094409399465199679156342727397739806528610797621005138940305329423227939986231254621910466081759243441860698623464480649971219721948708817537683808080244085812662743984002909026424878930714081652146461639105476446947253777173772871794498262481655711205016231641631744551356628601454113256775192254093965535281684858306101615499244236581641372424854075208869820905532088819705359563314584393340788394739955227586353976308807592204483378597598737434089031680228910689365265997880467313007409039722811462993694685980113959852594744614808222814807759889247795252396680861317304187817279105775623988460800602767329797144643167415176731214898501492087497934589691991081379597975070012308327566996530743366864983040919951066019381280767881841155459176851079317096094840311298743124869163204335098075237717732682530495039410440184816290058133177698748269778476749723674553570120583367807058248850550645635677505767891632411448140899874298674277591667061874119878834149383679679013669686189742539516953223344005046560914886799022430707121854456912381177745325148257742378674260462077199204235570962788296755974736814762658308851482270733807330137277829540512976249291713490450468130923031156081310979429274018031599251402444248504898573380685962895370326375470712239129302359116778464947546872627879970475447023476062451722759152583445332992015705849488828709210922267411143805295846550054473552856379802897767577066235277757235683896810738532508366832188824060394990496382390036109114336553057272990902462270776974316002870265779201542812863573971818115600799345189328181875842152573090339960065848591417746669165179488745879015319313490555661900025881793255461345338782149677430732443588085178242921332646973448894596031488274398311292768829674332832478066211365434301608086356076037201219001621126499925760897114579254331938894359435119773165775551433042143141432730720979678295997241374507495391876839292269285398049721681122085263332036926868269546515945554412050637290227115720768943955662171469532091360580910931484322932680045770777251352459580587376473343863316340178439630076979538435883339354065948253882373477918768964454656543391730325926672878369309878456744190025908329727128763441354712273379716332072489699550284505465248792507467168427108794376264400370800196355592335121678544621380160766599706237387304890875957511277563737509570608695957460874822596883085336858707321626417591572107787265016202186360772458594475276950966538123545420830070567155609000057649517622573850172880792200630164139448368534990969294175027408560228562064330465877361808335125782333453034393294172294547689121172758385406054419953423572114008502673792187532128993901737737936532284467406968257719546087182295554747258448123503250375053088651784351155108522489010256681618534611592766642840832703373714120843760582923477746530511848400592564582919309171606594910738556988683462821195818490545450991958297654807660564531071945808149611431832762382642119175129993375785903939273294651162251350520879150550204902002951558010727625184471805853922746843275223792351100035017683107446319212033771579814718868930547246373062410506437424807615258817472034936713127621912268139667184831805855800384503540510860927169242129764885084327573055261045836141902652154100046235311483340495399379750777421436241306082539052056123112854992571157103237972506135071874518862451707676952792170595841225049019640375906000769314567416166817594504252797561929975498949199218808830925378438880089978670662541550224609000177671819966550604853440189535681021460269314834534444193033171227747926568865495737368497710803611435414493190343899598063523276899169010607147779001292026050198242983472563661885717678623109441817949571726502588414255841482220514774331271690815985268705447150546398360306060402425627655026373765731978389690577033211393689687256286556344620285729669260990363983390174036940221061181503517205488195513342539926839559340719009124986348989223229365906943553346014712624040522499832051545261304017732621864306148543657158422294738359788303317510075052367418769407954455359815341194066494422729673000505545847951512926607019194307877589400983880141326276940199922587642526911176220863405935732658635155787654409262851191241298392245222779295398889404123059187147488101446073448408958755698607622181895802988287495152299033003729734737427267173330905461932023849784770148541533314100259291805631808490552151322281855729830626423367444305134881206316783831338016487045665255087394903399708951659128176856658186057657605447474677265757400537171999632058042840013790780415770546772680187488042259584869323742061125808696243762027089903067030260117296174720502692876752545867129429165801513414921630623752713107856515061878179247352190055170739073428756597212442374752886604680509989349136301522811587040327743688828009105480916878409894735091511386605881059341171807872387417387798332075290206105348135739629661420870922494399140092288516381461813477929635098151830010468908041411094541512625851601627752922121317659448066028218552808331819594308531411033271722713685028707379302449878292868500632381155763376747951461914211876460643890613124431336670938773684728802980706168567856952564209339793185377402182869488522618228824118426535308940515955545179192684378854655390531706880651645449418564697458967595364141471790005024585306806877490363436892363167618078732390365358292287468135847711295745905074496092951882833103691259478718055695689697223913694552152402246127449517824857074492823863324903482760463768088696354941818694329562903427751442869421387636534089111770503044830635394391334355880512854534981104982417451225648810968301218020196091166808185688272819039246905540749280344734669749626839817801636576171388328773280677217490097912418950779746858446855270678739325264418424112882621977405236705767858465005520145654565809209228037614562780219324444806688932613371818380935840337088430536146453314970361359893110321898247957290785414401444511720837454685839646817425831277873357049042363900691612951731258412971467264160643298483033778132672798993469230846038622521750651377158957072709301677371333878581957886120969609486231096346505660256083799462546300461490123233739933862727961878687466860077328361395116878188025072338688710224232983928381114555263410946431139419452768093985848946204070719836487675859999113295988991556046046215068935752727312966902192067808947530205837639406666379632878650052814071511783625076475598971842316341853275780907253914989505245855977095754957102476263961547629813354174437827388914693918863082521654978896625644946949702647897418212288327252668383035917727501138968033763279098169162964216839146999261949395201537972953760301302206771735427367712667742899060588226454920908439339824883807981905673844151726272541296897950423372313924463935146890483869958112192156028653126538032708108895933662476095117946127026216283334582649579656538770213656937145372037655366475814154688202940601207236438044677173318754704157795493171407226229746993565988950551611945919088990313420743397890059833227790505086237180531747276485455472033826992326185131646730445504436549986159202160306103172523441047740135477606260623594002662312267669078447760024160079709695077774931463494151988928525695837381389179836416467104865210405492929059570925920472810806624318092757258428297363080923205202677570511782112895923789923734309044822522137917476274486298591882084008062268989433101753308874304259075264175406804031811511914502468914752948860699106080840954993253506715711857144846177627339368584064376924549825735350507781130631324700658586342579401727072462083580721335200940542544528605628814758887229913842064624176413279485477694490909902046210549149117592904973569262943377759749288221584491086461931779287434890501819095503776215115079132860728022516694018372395178042080525821928716761894737388124440888472245648212948628234907812401348763459051917204095043699522977922970527666784771394448880360783085111632623890722239246538336150130165854859304731186247946838808363077905694297934806316076483139709553237262250927120269252306384887429615397380652493339364108963603961025219610500661074971654018358966125709428098580770566801661929108553276358429870428832468025003584312296306741873927056255476766478162833584846664982911909614317381462642230884375363404516925709810437043387840714092224765800829337297620005513263559919761391035356490261313509899119983775624740702968489990815816108541078780456253998585425271115229984259193508399942643257927683426956781059153522710460252379204065567360366515318955841711261677449797792494730113969203343222060348394112728037021143286778127540252691790543006930174286336083506987024985699116065939767754804335960333079532389869073871354049003579887612366435531406922392861418992677448169559004198742750215442376925433786203867152545082540603496453821573682975572037358315619149661522805891228525007859179596840688339235177640319201720441780094329236525952680087133626375323829768715556082394635320992445499084848166089120616078724421146713565593219852109267389485157884636331837339308475305822781937678384915193479028716813372036433100395381047504439731488788399358041677817020870981991658699604201999643373587087115455842431988122066795993123719858240810701743642113038100173933474297908776605579464118587285592906907832311696210329178786806453240500053101582054106226047675655213358568093703330227318070128741159755238299939811335132227652137091579286782789765733113290627637755853156841365683600774718458543883113977975142288833246755144832712498533127473006206342241165893668481495523398228444693336134361352407676943545999698897284323412419911231792076941760986718424172263877744287186256905494330449080798289120279751016442874140176490811832765408694664375166320611585855973042732933620999956479707381385617454731747502123137341922531514927253475960949922691320217822955311377581674224561663892872611929766236444451909740202867703292610932241502976604041406604010135224946036266402366927396861013976461452457132421468506228565360633939200261223343952711128122468225758626463735214237477763887871326728226681372158418657758060784033121031443565304549197643630985622526480241118725244576774491879845624351324082674316891596325481041132800766735524503818486531262809111802398630379736567617672971305380824538468999837976213200165993482961004188905470421418746325318947069921583409746000247520700176654233897676673997283371004316512053858192977645521126547355430386895866915470620064300109079379008254155872128097197520486816181770769896104873994783656062608418639384060711455280269295828744491250639713620688516160225746688937383725068534047701404225822923318790720763681715547750552906078019966383999416699194015281128503242595116519069474564902001931460102276426187257539445146798517106247593572867644968583867042274221358380694982482037025658513219995262726137720862114860775775620320001591418804655595670123131566661677839401860870501468935241514570410898135580720136081957740089483950981789541256840967247059538408254754277679748887677572655232325310580161218838766171097129081091979507951620368458165291114045172148683574237261946006593732741668022993489793179771184403469532842425596608029185335389942631067848432250775773313920278147684521030262543011698267728846747767196199998109167215720938495253558815030744022958144838548779553162096319355514323651549765092671737162697727503438211760345254954501231222473367334517620340387793614767462902969004082875496086628380241649632504584368969580568514560524611861182088896300839740400991780908916290029080316888159076953730431076787655243407343162591128622162244776437937771310110956762181258216356621500925246714433468998975611402472059425653494259019945276632880800538116458666659405414557285639648906123728924481990044872014952033274667593076364286709687071336052244730780671222414996024590836014305040882642148082733049356629029866516535132201151248742905984402253612612391067842046623111620631467149860977985109644978221221485854934547705746145817654847386855111048528155104563781208163720613431463137083333160734173153951855844408923578842757023621143479990566155745821771636681705205865700367770095272332866133913679077239545486563571623833143930181225677360910021212753036313065729024284558343928959871106639152524146625386357356172218973963541867170023978223368528035035928655797658889585311183044273966408823465334086947430750860169963141066274288519728714007108913563334938320958825721084566713921037076782047719468750491576195503854198101591946204635605088937781031065845629113064615712203195756566031681929423606916470605560142604469481131786198080647006004582353525914587345080990869951054366797935872771868567459121319584331198247122989240137610175417447348032581954265086836592672299660384118848095978949323022516676505904095567419258093700961966960080323903270823725467403120513770870170589662952244010001039110869285048263108579549248713191119919016316648835091427742545624327648503903047836760266717060810997911700483844904558463067195068011951671406262240470182836691789472676326744100845942867431891596950619592668793010160128004253762218073780519481865016587547838613931897337276706719025882557194476078818843357170679983300213336741217665872745292035635310613392972172801186113742392884096327866276589201245005960009850422455827723590075295354189514123960642877575476430577465325830090685697666131891383767156934806477684341450567846649841771187651238139252359347665592329031345016326785891302629784639727853467394894998043301438975546691457214101042459116703383283485569584228519262636270185514705152107456263233317814409306352356132048879779760010065256531932778441796540471618642957846882454097516587881317640785360686478921034177305148392633712826457052963512255449798779639925202240961095483353271724888220705523754466635490582709984524582938632314438906848640048081281504794840752486710094117319944855932796845791251362749475400387442666910720453984057262980784364405793940119432519554491619003133412938319063690196666622648793109875988730866290475637012337269561783339297659258244488354074266066670183236282530943307184358505763286477091517294286502284302762705650523392117421765964316286607115913868511577918440345508980468723644719383656197678065585921998451499199656890866317685082984325357059702407451697690279218794383604677866824148130698190711050477300597341320927019512030347007714335262858949612346214126496601419460806734295186847394358678624008609442141468464921559308442218339100741941809313945740390724697695337229207497905531647603662443108232848992880099466545125059185085509435574939705584996662529265518718874038636702360143138735492994437469675902287977361969810529875365425594013357791611717104465709250585585415039262747152594779536664345821475706338004517615827040035679410323553045165057212414574081787281450111983340794166373449824902941355049123201756270092510714647886337604252635658468356097564720268477438006786391859842119667060679766233211790552441717922987829017745519906251791087922474290526174524068941387971267069756544183414565338857828319933282637331059630565931455048796607466330055405212047008898548813709135186883720097398909232508109012744393133614326971867850350188249448227142486596696353906137839231499552697559173949598544295692521713315095225542922079776148643086012043743005459781577048280172495477994135802376868818080635513581740269001805870245818372301276033249582557183547405804382373580099829401827636391921028380837587077765809224495196509411844122463096025198652814127229065698262325026517287865092860595462044929789766198102108228127225600912727964518253103889424904292791136716707153053827058446620778925801050037598656550282953509516011468787356221373819960266321770337439157882198571049963841849303118462494843053375393282709316832777557049970745500744350400302467929794908338222940607270359017423395522471787731741675142878116037653226281243197950705986383770270843940279046573904405047922986526554453936170406900934205628458584658542158115457270350178091725483880973348866144265668809421564542154192249342546147250818277117124520514864441641161295793713618892255089818713021163077413955216334777504166838178975686949651961033759795716845114822350323493106791861846507462338334989073470390455263654315089070940089576706627765428512805122178592044978213187386007311091807507498005921383572779934949440660811254791630763435536438949487519816883213856818594133873748699810305694432872852681561322214803667887663389714494932705424633740425118164700603824975438880323385699010322358993051652436940084851898435693332630292522480416915589064816719787984822718331113408887353934807331115112310301201260975974369095681136713819637546228935365852894646722423714474285466800949279887064679239605226066403744258656348827551477647655817264029490293437553419707710349778935462070791035804111587933570691999613950595823003014441019467810054759497551522517543169280180866884522017924035197360675174533224204453017569818894175243322283520462193880196715830781008449048834618174218031616840020359086232469091941900013573888871040317155476052949707721706932470766987971731017485012782420108220592537089164314639552494515930176549454575545722040679875455686272105939046591578758370248184207894073224447925761363386189805387223181225394698310151103633170532981749805313038525478938469457520619431408500043892915570947461942377021396929964231273713137293361708948309679955866989949251786590416029367270184041983730957533159999923730597529195256803396114380032977854778425381748580998171025138185713838339639774947055975998171711419890429022501703397617353894185458909351149219388703036465251878595531149509384503498623029244816142859751786479772457561314795498828727243240094738072282236893630248466415734405419625896494386310377819377447044251244705850531258131400444807979258123895779843511004154484841979079124915337361579860429038459240668068955046483856787379483293012991651353885557255889084810885846511672964740989656837757430891370838024442174865682204902979242065156654226916466230300614728989211995754992375206651195837949285918110948342272383644535561035382449815941945884195872157009693602169823116569283587073082895895476494288921024754310132475440195584378878995895863580530711984909908146373346371480713583129870383027310795464504931200772459212674685811468076600276884826706059942955533582959654128059814941763712348247568871958610494694186083347788907184271053319242638637797023998816125512224670344666692609508253890384327303612800894653723875422633909898211190339880966793757339443529600699854751772462810727915007749953414952186379427952573191878795056432575801982988079137694880612777543681395370534216730163701595989703522987668467500488783987177827973995621721589263602917671495160538411946083703958584742001090080316368816582619576196035653126231169515819485240875008374338194474609591373514103628168189867077845124268512969114990216537362494972636399846137981450881268246223751828938973476676119723942092911484991047181825802970737299780031286486808948847467408805315436945998493062554096168439709275472951619111499432399387719010473019980447237449867983514744565885954532946423162056974606307473599972998501505993932230286297861398335332357895648007598021802786758314818744406544752342064203472123512034307452624507620223767084253148197009606079424069743239279519134316584568862513488413057296805011134138407571416406904353012783978777178417730873737530857889948559903080399724232266383704255654618135511373027881743840387174762765429282697280799632126708426727252364367838783776120151539907099396557497824767224988749553253857379943537882263734317579205559977853835400180017317322843243193348189258009412836424778208374472887457647200438406240482144348770817530358004291392652619078016992406877779846473376873051878925698886770785661767036163858780382972218681235022835728950490660191470283319514550255684378564315567031411386023013632878013268998356987576865585182645649276249717818622960310828809374443591809201148044078802435465515381568015985994130783541645301030011087415263438935036264893840240205075086348098735492313741168510970622702439620539894646711557870314259883742232183630466736959522231664270350952593933146633575791912701654385686721950020740139774927096300412479873902712653431260295327381815348726254965990431724942297578913216663363211991660731303390423085628148035898361845888198720962069910855009835803057320931084950932333171204062381417280867484736358714450278188886872049453085548490347894726676176750839560351880986312068068321766669173018709255113229161476035783822158783035468328030422116769980813943710421948651929049516673562448627210329901388260041352607336077556002746154415160379100127765848846203870738864660474278411998696216333635524945944162528480252881137282145696725927213290609656923002783734799191854439045090258722865317684001435339987398435289921905127521049767133915898083571903040553661064447553708336728218692176754641016728365798284888531243499153891615175263356251480465807563693985896284247468092740913303280599170116404831823782552095123251751096835946043738217903337835970977752878389325015085468335276253602951329710057453957629055268257957397482199028578901260106286980197085501921839504288360124776801864180361701753643196097967470417825291603300302158425668768523000747826781356162366089561852986533222487173182382489539341669421996805767176149796024032132492178234441891321615742721711301829883338821249184452449509180894138734628765196438528742773254008997501588361287645786463560395754193350334342049642355314017117781594078258037416355048120218352933890987456223419495554392755097007476556459101427162892697151025338145684400988045899962617230058838280989932901858286622663789983538033067444793529674355726597771962025616907642925073313429814022238670543898835937883020373689029140588845589175988673763936736926839361318444391825777255088355508563730995320182498703036601809280152113085005071679135721656036643606367212122873984034579201540055749730646132655648867520939628564819110916874563901987250733807828191893889443239739906990310169660441566345563533296208327685387988844586597618086501939828545174748564239337654635392997277935073722705645478419894318517916500331894191026760979105671535033738621836556860227836183703664225844760618042683974959970224079663699689530253956720378328166500146340993943957707067940020585500723398864413184238231949945199807410490573584189774584139817681492812233135663136293635629373855115169122981825940070304961206643286740459034184871561676991721353418972539852360428556314636462653894928432862459059951319676930304902639441448642910387605853229428529826853428132988752831514744546721368239845136934343427930977671716419569363131237159915450093448933624894359079875249697852388713668093921330488533385919232201812795847286587217802599734646223078189928796107737570870912672724396794058629932661900654271227136703493937784619181786055264508852635817128304276059771521014648211589608420904646137801282439797499342464674283610456334591594899752570274976853124670017804944022161190419290041048336049772467917918120996115036099193754419991092926819192555218246899112706193774755494106646061908585058246936614126929366508200337366825451422726511322356445466121058050088680497943368343767788474652927992753129861438725453675461013428573344160247798204494111032834322438249790834024488338637605565632151459879310304216909111611340687049233939071526375053161517832324803606727307069939575392352220514561323780758282100249909026725952895521801683864886034463654885681357852966972040406057112342903332309839189041662818606119770832917023960093023493854473400277453120644839474531705396732515660269795962888633012864901325075669844944405284980550206202092517675472186930722651740034662122655574372941789516663953654290503034181428338778273627326445117525244649608769508136662788926064034740738834766403443823921579797110466341597098113590300146572586822586931365086791397843138478760858190000317362104361196764408487289866043465700915154320704192600022748452936329340035353994438154024382334212591706194842288602280316396966115418905119059156887265897529628688482308391190337378777135123175321987387566565360345164170502657982797969798052348657097811614102571428832660429675235142603162925519889925266721574681951933511780681739611929401361816793966307140970194483244521219926059369665701771956761312033837588729599246427036681602800678009987830477670751920152785282886219162154950386945209111256993346564940216651431513707808780247915006589022227856613190547712296344270830540119890695387628077024516410278950052296680880267425810602852177421407252878330657569252576953298528590018486722366943837022012147659145099827100312963742655462832825044021562928508682579075809190727498739225413374126786537531730050861240388908333967302960095217643353608345763259944335020528500159308225666584304372153238969993560534311575861223773442854632146506805904823369090356361392000737424102600726135442681945381658649231094024384717365961233386841745037760951870405803119300612911942522894684656576066718346023766853023662797784257933389796767404930584774503505950139550745536380109510569098199930188224734091850773437180995430180795253978341024862363972069596638816956351096959148716829350714391922082577716059938920877471942208784949615389537701833413893953501486794968608142941296828725117063720006519830429110176877948036961028892750111536437211675341838214054788653498185151704459349617065631922441819091885761293684722533687745235592136033141579701004455116105075309142749414781119517630885981024887449151763487938066029210589396628751019886520732402781069886581274308887812772664713239056233022439130186994421326778440556340204646750999986298972694067903678115273900096543932820237590226482686265295446504328879155563743969127116942567733159653543011424496692781944801635033904473864265809567883593115310995289470122924210690811668706126592553572635068087143559244529293729559566859186979666460270248732075666697072373915719795797185937320153113131236888234505124820024379736932054678188633215900554461851515557719454920699624918387939237551804501140585116192184372610170368758099942620783900238941096482497421876286788017967271291318098138163868159523491484162042913481332261026802173709492776893246247848902990171614375054544487461738328220418634416287225095867261143678774290164923106240097977923533167217711614213699540345930956269806856472210956608902179427547885342634415045670658524356026105736870321617228259254313488435260623348121001152941231926685435637346832774482894935909836020414196752264416938437090093681952353328629295182539363152535379845409351407062381956032866751340473589704878782775066770050849791374275265895002784937292744409655365506556046623440350254766673146140315955038965166780788351230271071602819408737922444162206705010705636388198859469245296986291697995734681984381443783611900492775056619632272675262840557535405305560728093425747864612624571718140026528084289547388763203060115219555359101921331199203348709072280843399700463300588475161879768574361553759737795463545021883270657637678967291898992322359939834509718859975399588979058586054625618097680513588247960779791349724354890973503773850055541143616696944891025447770336210026588119571700879301239440093921427813976396608937229885479374835121902098524929785196560091096729776434703600759383536892558563996923444777014618079398325443405116794984841021719586619136809047395824785260139221411720514475075483940904917108819181025739737186631334059339463710091926638836198656341685154851471910164468419477899677865315167011457578483475003075205510361813305650781102604043863732523143419292595835336174598534797913965056153806187149995233436690220302706912330517374067163726154128295743650052926444451259140577288764564328227832014061925476220416232816518717607862103589395236236053772785099493627537533123610920687495964570632693390267067733349776567036864099489190824931161837111494000130507855887320348938538360668743005651448990642650944175159433682234009139707518860447815735524026975476345720879724467240423545280577432430897854364346853942259395473649342356029521249066865617878211627212115575429849848925533461961717119767132564483809329851191721345348925128401641206475646480941537990403604904809873551157223837639196904817387707059074604873957717959135557267408920553906765610459986301864690778476989179384776145809525315390833359931432863171602699387549112268510960479195749233484003076871882569756371982609892057690842615580770583027019505683870676116739743370401951054184282026562497746016199702547251784689681212434467354033375319037235818153243394957423059688559000444499018743504996490276138389145166303559966700335147436466889541055695557082601727853404212724035356025830136613798744593252820518265201188538477164609785863903377919948900429965061663458793054906319725350145955440670473667145350652180002944990372387325804274588993313356436904329666231743972270668506503291778079737231096147006813172697014233296711006180544415453232479270950320880817248433581687148635643214277094252096867964938217579699517268640897191575809366087770764590627887454829012530891817325719620452919059086495389503777342093443004214166761800831554604584925471984706591058892600154835014103393340282800372138751140670143407804629409688634650603471251180886486714125318488305327184037928858829560867566912144196888307021298992706199018930353463651849466846566065180974267159373583344828260606952256325946290188713807499879425797271314645139365752320309271701963558817994434802851074935726862551138170374773770348215387548822293955135339103989421695203717305460692340575928188006388795134875599723532101423576017555118245618034858396291205801225906404628537256907553499911934417723575950200091627062548427478776641163343012602249279342543295916572835890053791477441661971797769442465925822975503143148048530626458038050244690190928349763964345664418336738193172706082640364540023143065129139323004872469336297795876543797330681038095021872710435859803799695149585594879556990298698979683351101213407351377025188135622509448153604762091152128640133637579049734747112656299664064727077652482066004367233704064317918185835113794856167005981167512984415050076924710339641499412302839317897004518684661373800820472531858220751448803522422482428868888355016056888407156990250630120780354925980018058160905856889933876521685048415978878266855820352405873067127531244083192472071495612494202919723682536675646132841988000760757448122413149107780475962808513516854278090272555840551289444665201101795419873545967229687328637292370915274764709562924848000720892428028609730391677522136944299951329796614442969063947916169704473450971684416707276362612855192847182318077517601429994179692483912197577517038669882437064146561737172240298586010317708534658615936174675853979300508138925523971616175195509427082992287252309861853606868985222358207025538484139807479968316342008204790873155760269970151958856062562101300390439800614749665269792798188650733311306623815987217649753482877272577434525617482806322772343048790716807395554035894149426153635712742485137715898469517228584489517495825989586779922442985893625258695320792080038511670491852956634237702740251359006376170869416772996487804271456672147988885893650177649102743826915813569325233623708508489674147519187855140049011019583101013391077934661200031548652013936117611134482382903896890595036858681731959049131761696070118123715267515154744858948607503713334000036342156693355228193618776741889543628070951476742942264396607989313882809267477386958284483596166495467085890175556917307438294679705803002150147954399084685543134969466306668374743132795512193660296397126551468278580904518097016426872120404976452983769012067240056277298877324611556585037752990755770399433873315250474622550391443276515750220015875401241305611875328582218587580920125779944831536431077500417868013217653750598310901042050613712384009753702834060776264023440571454974945845146461070948908658056692751516062243744970041101845078196008328103894517953457788591437908947540746623518551702911993612222541454829112678378908930822321633164685698360074673088531814524697132274309979859135598942035436468819629112104571029400303661784020838469001700495505759132808527150764274028565207834517664859053448493367016310103919430349763400263711793534363085888437262925037380559225397032148671274369270583538695523366617052378740626893030042555825994257690819866431227645631021240770801379588515789198088142608816700850108639064541743371756991143024208599630931679099215050886640654648505500087498718222016257215780312904842840264445010313863123844642098397325112092291406236637727561065696925366506814589364893712808494371824918433232773442821225573523320507063051464392207396834623575506396052555286236749939223535460336466169630355359131823409312206739822544390074998373988896070087417091020077120712934536615528785626442330167011722951934184698353031005741759665059635599965310402382160986402036817671453963153235770322551425486536043288422684284600905319154249624864923494558951960183232931427257526624584753825007469557012010184256915228728407220554174029589049894406331740555641680184454418429296219206918540367609774053523102529821619218621117138933919979870749326741649613897598733921101468928044915777677868141968819247699395439563990735943729997604300264630020892860572292096827487703226710903562926500170681852128129491304752519318205334710700878117416240056748993657095204389529276281784063280314556609445023896088219370530579419459030267582882627591448306085946422621004653026950793534235274714351220222528279330307260235759348318408983680542265044313119856706322477970907270278215441157532097140120710212849623033890073616732591387770909917315515127959030585480322017824530356218357270214747311989173027773984432586476538766797512342883917126242908165422538163899551350979185943819609056329274322614349120602169594756278670515211472328039009935268604883706321901755491160489150602138724079157530967583890580184391232228586577609925250433729817497512750886474705526546489959154063063009331251718586377127946715560073831505157979046320906881233189985010911772837993113110597421579729557184858350708970056715117289393934433935884263765083273558534175840985560606661556094833683953180544942682066811318925021346316061612704026924556491890138259300868351735665894697895207499444281671892027736447904689752135222867899480707197667101570633851234673643231841541781541765403802011216470008814274223356684399145367316925998153495360170618585350713444267006633350879436709356879831750969580560490614258598087417669654401194552903420509728421764886172091595261133056481312902431241861054113162024770045340300803901407137941824495030833365966348067778204742487392513388670647246875992955067686109501786511253027324611933360418709160944625414143132551523754723797510696020275235426262530757384617161565947353218452873889996344633681127968499391847362544730850347010903023845827038311292394447130374574260199903766073164396570926096465119663565438292709833614657806725271336615918413681184571879725856733989582503484565416994364948190048147219662102246103162023426485873225181010272974729917248376576374487157773124872731397687126284138989062778493335143040408375658008542740629822474346515909402771669495606175986699146113675468323110092842433106863827981260651227194124028084653493762410595140833345547514399974760917462806943382258811003354994911947208795007551014930034727080773038950596495375876098444186216118019262703338500960796452620641380046767154007081772698821461228251852946802830302787585118942405833799637435738150639883999843979961939272012368809000949789233514341419901875711944191975806490625935759848593043983641328153267453567764660755615818498357251374722643915435359911717779538029984701602618162044231628657694296235044582597560570239197736116070055407378045333171985490614586866347488971121426429702207568196287199351390778595965338985754238991222930229561568564227056725267147246906302032984358373580640723074695565456455742683917122516676682837833704338220266088046028560671322220147546533237177284126790301558349188495170195152858002311224534825147954902175589182118433423565692575991118190149749265516330458051876539500982188525026635124001666149233446039170093797177512189328545512747559479907801395457416841076561239065947310078952595193415272242647162002695216974993516984903865376573571634314764129330661363231061971803089417723102811546881050042362774999164171597111992981165273450102526099015075830523801633028348858082750780314252430166751631054474569950410721113594398757117499695835553521354074812394946770802420383446700158081329506648351194878810611132223768627168443026924263339691070295157821095906977943055071069135105047177297456469656788830418818380012472829147446865020474210515420093580244532735287824978752221952584882978972631621407450935110145175745781223994857707065607637924552113668564374087592730513799788932866997493496294961523644178364554816286351338394716336452101748907177906519510471036410839517082043573805667633183842194769428798608977428488132556830568936527911246003944126289339727789812584269304786959335585091831664280357133861153038622321740779776731240377470148817359588892022954818063521185541516621300211824084890241664231378317123071875111002478723806332970232418854156894094879320519396381625096770638174266107024046503200624346019922151671870864434422411313624035690892679191419946433469090207482785796857059706189957775148728960035429182672479842396952873663394436579179020129310802210583445020810767018927054458630332708684765857454532174681257262724343336692466112337890477354211748865741303330648483736211889099472435732127367645885746649230127362746383700733986045055043643708649977923717767908107146654704196594536466602193444446854587509125697244789916036655652931527025140988346523858714426087185816963809938361796189718994029084922786477993234187376832469310620301316087069899107427197699523769051828557328749411468470852654794463161767532556725420794855185656945768045681082471513679781723392832762692838359960913527676725545333827945674324665004995966930624397344956604803891306101249435285467416540602661529320811463774820484658788013975385241569928436220021815511061377405211095450821238822643590099983959164909191076550183849969854210560275434941441301044692935031558875694409944451079211218068740517465806300377715612020346480401728165972869734384836700964388025537940177669274337612245394485303151879919404301697894952154089418622617227450308940339984714358830027412377881166257170901804882981379250528591578388396637708151219111940045321572144951010735561870875797503881685012548600224409053635803985417326646492801513027903149710344850718272650693583748355698254894970262223528373048866075774124659728509047144358892775362520209931874557261457111017686277461913123473730305881953396727398499026240522563953332458265353267125044024942828737615161702632481087390500999630355738473863277668786274383287505290757330258308027655969462214592501230058144620970218716989499686128803469077550587990678782498627027796789815191108055875295659173032866315215163414256014276812052945931801580123003445164093955115606889585066921563973206493852842620225747232396528708987983635907398786223535912711809555302200401319975530952894590059286220557778619937898041336886401575083428886674471277556854697371768341098984971844819361483578340903953715116017567399495383903163158922889007917356246805644163274419265785191563012049261375390995254909463816822898681270824518140203013053688452533770282200204576166282389460769171565878832129901407664015960367667201964252625453341983069658326191210067471822707836023492415998263730237326377838163363163022783869042975754102501061689254926869102065602370184794453488490445558939674936567940755725765630190584506854298981918071178732018347025780805667228929957384593310102813768093210997463468949201994233398492365798244142116134622108745030842121631029516658447735931803279999686299720933751202911696381551906760742311987027968483254661704013240518446838853810544943579730398115609840684617787778630512998524337076495275567966842204649369870120798150886730059517645355983380484512759157853103723166870982581613757775345356029106755113006085431425064889206248595302917728581024592186460940532750397928861039040169767549013818631510498111793168020900635284331518901050060798460072099559632329225512174031154879637399896738336257304755705514228274102155299533244238371728017123892294661064421038294971092117831084201341128180065903604610869517336076530980030230425516252222774973366539898471030165474662630869386484657944172758871310848528113826042084671642748110692243603497623618792320180313210775884588582830097578674091412551227039032859314093918920978432844131313796475898388365732996474454942950371354465423611135737095466840197406832571868327303110648901004338220458461245227232709071877116256801935481035373731930880370708578510340768427954947263506903260391530928638296659696922457493877551971887926213843567589991826056115137162570185801795819368955416505827559098402232928989199251089147125709471760761585963537472003895355235083955317029195074017852133058773958149565662429872845875564503533598795872427993400546436818951304883989356563807372942439538217697145558528595653631091209320452845954842560119566655741206144220833936881214066052983372878152336188173204769747277757847040672936997797364254990205808304271516367052239309073982201079580773153224322592217437256632137780670348528620066234839023045489544364318810571077201887348778842639772294774423742636723722085643626261164404395352354232368455999544308720753263850125963942027678870953968375060339439014978387870280921346461763441354760725476565824288800436160724930082715708717483044350040189190879585942064287876869084959055086491457076792220173876473064510681041742641322368582609226094051537606040401245047129147055608985346141640994849968346797888789501824284394933108273800608021428971968840843142620777384904522135630982845588639741135590358495946878054384863319315676130195712820057691540916917875879570198665044759777331107409977647535704419232840971063192376583960370030436903882967601839783852290694247903578557126060275234754141375632061505926205992132921193893685925799494511807061311775712338857017666521861534342305679822093051201983587015911221996582004205945114978122780010034263358741701606164896428238448464389866238593147564414383566185283622796745782235778769129343134552771300365609586891177582666193947922080220770763048419067831906372973903188305646188208673673998853574056931067114114982700594824415037171267407597631027916473824829284133736504751103808329044671081796889895151755044300312144966639648380926608829978352649356514273389434368508668350853248950203455551491602573169873123284160767609712841189714813701027244965449735271168456297110471013424407025595035413527519599546918826345717594307344008111897626660687626597958111294343472454211358180307509581598510970988514892520127674409625548952672498343008035125692564228417638311241228297948914510795536053654209557815066205900260305635516377719154690752297976013613207999635231194170947187656258118846598288170629912293027816983879650338532308537541354345279543023169380607359877373675392288232557949233020167576676074362892526933510646263322643857187705262522014087391407439885470799918311806575805815043397416162473998947814632784394788388450091499171441142725717942411646419785723717044625405951963025517999233933793136326205439819450116625823446115085505993732120663234246826676978435397909616170832837580744450157152952509459223508805177226206902814631383612993966677076905857543007821124415567095881412478462676701335227231469244063315356667675901820655547243016037765396320070195324748971363476038120839360691014180388435033409644518739247488000632396193351865709162907345369683730018356992899113617880014711576562380335375592237306744154068217751757289370217721192218684561352953438723670545817122060154516646373672325912194755363791716966122402178872344588413565891046433176411066282280199117613642292279558641277895385085994209716363396829712912872350449671402913442288818200928603976531441814892414714318960125379511197113974029160567779760830118082973937061891047601494455280788167218441070940266700148650723433050710414505806710962928974671867256808117779933527044906202265839130095736584312019053830542550062874927200893384684965674376198967465242627810241099627594243939381291463640138008085883422738068196524831305344560233822042120324709626637617360799722816688745125023670901704947192400347545714593139228032349290436482436626976514143488417011516134026059905563970892517443687637164188695840706896819518370056427553052132942112470526235316889820923337293801592283273986937966306711927404731107242745276497931728914119729363936537067602016715086826926365725360720637358447893742557157937544129087442513982938292932529144435682045050521866030638595454719986416290390227818791383388584220896894400978518375793048494460603399018348372098320106614415901647586557316264292650454958410470356140984964261863470951620898703726502146822171136937335141465137286712174102590243126910772089120521882241319356669724492062541852898001539490512403315216865262014757217451066596323488406849239729695326457033279456867018605527962476645788852281985809177262132607051593862581412397097730110217760282947447112591795282444655140793893037752011958960062610245891754633268697034293560374961919811471946134902188722893318652460803359369850675900448888229522759345473780228005540917574404523393188117237749345492925636654030589895472504998094819454251727879359996662174229569017483059111785356332245191214028908846722456534518733807287390841294914209056479706102102535541627956128891434196922775542832190789343411042913433023501918316043879925294060398001202954285032221154249206965562290817646930482398870415326137061374938221386747196137813141287775324712198100460973059196058038601220386710432582229443237052512136464814387696873162402930875917324247710352758378339700033868966567206305861073488680381328276710660517344262966820041272493134767445713044164245498167835220952311206229224182768820224362389544114612599439493137617286506861150964493613330679249357509910804065277684499553739019259631476634751095708944688524945885182123483941527681483637174318314674813999303132730169923212991056597165940090009656027982982025826652978631849264475064621233401945146887823391794561106722819967666529312845780125398755913764104973276200952007106128631538335377264608692253901044202450497527155885134509378868293126730148778289496167095096924295241420235755142191830467915539550548230506430657334420407996643163649348301595342503835344110011738523606473152224268893537916170661298104449174813820705292177432396690936577283001648947320142733138225976823800300272689479152310677703364352913839817440524142720722876358226164145461082845246800848865886667774155151448809023154721754546106787103820150740092197446736239138557303738761453821650289888708499790587329563614867844234163898914104896911461038559455993224041665152009847383321702343686969175621351390580177716975658292193866140518144255665635696230335171468739989055336747086341888068053240740912771861675615233811604312636326888354320975010806783116228308806007437163886387567214319223080221537511825195051772406108395395033850765057967650810732816842984415845308869207769689280815699644894995028754273659801219452426922423811984322419865961967893511618335324167373005767207496193345521812256513854597392963629796415064616285927325329623708623011260477703611137784833648640134255039184418965079959514308328907762543150350311631619143938471837516181701534832349172926183930136953723165899966356378898119189193361459194619113590153867895952802002167009736290226652488039849171994645592867615136493694636387263024478023766653512697902868157103348399707129025208947080176562098043555274349841078470105553346690488258889979251425845725744468312099897854479296930363730740694930176006258399483812651633250661681132136192352868353528785312452257213456630730296684614565090388799473790270657317529029080094124467820376855730391987498759177124180013460123830172919999966265794950187013337064744517899413716228724238567359565156176917742396976402173861822224086004631965657219123926502052960800591921461428956561953377620324526130930885351340411440667718387642940511953064929431705538833515688774497690705599664714189992742628157311552888959207773348244336286060203684564794031512298258994536889271025124274143676378856925174350446072651002576321163223937618390587194292685818758997913434888444465084848450715125393175360413626028652331174776650246709725875186141678358828710461606662300720187404408135564059998940745280588372996069292214580860414724570479409997760183004081675439811887879894890101662014412363435868184578271513535894157329732560471301679575462931253889400118841466253751213833794162368815589907364141571959912820303648509935552792283823883102379191263613681067054750722107159222120444791546514575119379804691195494891605666475628366692260423824968098856592407578600776647562611664542548269183318608418594054413420427468274509391410721161733479214538531813017306719645998819896877350047943935320209321972097419597933399324435166234939700095598138855415646915962918188592141104563189075367153843946440259075308704993171212207595635993060895692285916079880505003897701116128318023187568604482352085647732821325331220997959614242247763669594833828120553820162227216290646275989495356779104310962052641980039064122446152099499933070483378056318125539582475934838697582296817243446324096695232711361908160630909960555557226209928908252227862910083593886567866514172201506902096912587181742913750195332713333619490996295178734649757504705058421787237324646131151095144907726865200626901030497470643275786819939541740094712433789896998549204534230502144419162078531103574069829624207232191142560649600075539075418296176759850397269835846194811702027614214492993348072202912745010384329183604516383236082120800725944164020781406583783559004389743564102181877354103552952354618202865390950895494142974722776061661663622939894352687279266182154105590147622160599931106105366733289335374376870133196672366126956665899016158352923817199529000651699511766514449911276180663453059146185562611907922963963257418862800981910817866553218662331822921146867898359995213226543503713561516027457119090693671272016223453312042685043008789606228532776592976079108102429274903386472778903895600361656290262947747328118746334949294409064375757569552774243203985308593281053934823257591152949102329572386329752642952098631935758396203074460107721967713004028976557358120290548066872114680785993583328772621003672600857302337754112827461891107241116176724819398351550972983541268416040281016473617394964473967374100213789854922585889677074086960514053134093397811849127127264388259077252524329526630394425232925202741364992024708219825441439784262420909781030246965130784575485285061861398895304306564615091551208330743335691551532278806486421522719188857348402071658739548124107781248202884149700876918008610047810652836924449837863404400521861405682271942877838960369081240674790938241678472807847432074724172010881174249341583766776175945633453530067295992235321784046780951619384267448014115659815002533656615128025755069221791747490595822607971136397209181445558650735471560629660329159835589712883335643574907824171134603490094827438037599210281359133435984439434481041271345727300339555015475900090033103423168862133442692879221880392272927062332096170448883783834447194022552944814537909298249200230217860365181185750415509965437644972101525033326215478061686162796818806145978764294954861039925725758095674207615956169364725712886600964992813809646334123588063213994992839691861529896661785473245763755208678665561991286518986525980937161132570097459720564073656270235687364197428429470547450298232777800599910276934331803727890175312872229355462909955189692219244733919027134706357150907544292969677914463372533907280858954232538513980613458965512270743630354272990466074564606097498298472031726817652326269893474189887346171759609234017192210008413132838240976857973710413424428657749696739874718580620997902193438221408946128006179457013023140834096260130857707175077887082221302384048278563711236239035884241150513259557806853388051040051335822967356303549812106575772484844468451790707662840699783631998551697608503119443768968411592299941697154511088388479363663783860671579089088049277014626786858769185402526152880413185404646835109337364856944489577480820052861946099943573808882578659036592561456151606547339449065290234320809491774999852843591464244948732369877388962110323975704969346657779069392141375462672440066895238183389636605501278778116016002727010647270096020104316173252896575215754561363782067227542278351161039677051628577178027165327665983235186610580528953276890555011965233866733770497920069599667591758539409005908146219815122527802661189584392148246834259365254745939677320551178714853868526646593451038492932842108314747019856785325622623397008447474260189211663920203948024082615159269657300798749033968844086843012986690573429105541985623319990059830851341155163347411320789330204454856706787114254160603745031754329873926032064465724129606702528534278718212601986440257068765174258319030480904535307648923437414338778183285577343516108017129998079918752631956859549671474819789849862340892953106841924519787923905214771190012521029954952198825687764111021318131852933068994462815381138255086406029914944748564591914184600136564804563855133261312778429381820520502745867756921773447279193055059682710054359627968417518512126555000961040090491637749091403968161640953610275532620889889367255040324600163297714573657379157626907300526732746827250241857459218877727595727889708676851607823080159999810545645627082038921550283286621238357211851100617858492028564533385909189862869724114255758568855503900111824021880029310223556379022116143662738701686617812833223988615275475151866034910392689877136659733462545947669547351816103921893022930164492714837624507241723563795057386516622228776243370973834870357703358334743776446406956367839680239301727704360667242498140340211085685839755015423358054176508463195345652458456945461566233378778911779910081462062869342908145849457987483343011801366929231169951250592577272349485370338102250800953273697320837051584376758496219371518618209628662035031363929425492936600689308964080081757657628149232525955907705199379159631217428844823752583168446615116617028374580465334424167625877316379096432126990161548079234916255210959412948390890857842862184672062252787954953087360183650334850154842868209814877604647866338512500252039428746999238157904521784739155514896783338029789406137111224046303594297104419542885931431680421191908379192622921602897602318112578477122279169832190428479274588121082168890345547069871240836688608322863570989714129730727704141139555436247965147952231952161549436674899432247103444329700323347824658081505105454515692835366690745060969153249014468843528787069096613834040083905079279771978226028341879439974270647854760930563765832580614897501970616349814728567139625715415255969550465377346017394905790111653286275878196943490007310455038028711651371488244644669892919557344827050343810202253363701331802667102200858075738448441180054288618352000902036446669297125335296135923621577654152601095706536579073329155357111042582670792448988385803672371261566486578582747825614472720749794996188940416732211343107885188072618278406464371051970867277915776876679162335366159696757850922900492665839965438377283085849470439995904823491210360071876501713553615863250749511700141058090289733949396799227992590702938711366899651080863540673116727059459280979669654666035893611102111259353908478012107521748518511843216865224761310782856483607760799442027093881450980182183627443639857667715406149692238870147518626203405361730562133403693864766932147406271287993487779648604020115179303610704750876408336711183871226597399442916813559765025619166573328877022844922488159804485155756071599098650963715065651692090177317647239562591787728102058370958904657913820628580599826548940281808451236688859081591825078352103402505223897446047568329966325545027267288239678204643608671195616477075422342408487672603192473618829953035844453889743764369392172997712850646925123235527137327960418433931783293115076338917626541512745605258653733585608999067601105805666552776529242024312555750182502351911421843476562519203359057621637764410204967575920945473392116860441066747789494976090712063340376960797524907436581058264245873021909574969688800138227286821183330263032722708241524475896815583080091028553365367033508768833521119831656976021085388660285863437768687974979365759702626578074209009369179006042089018108029834166469993263639814339707864597291636672367356579915474788460503709897520828814095015347914655143367686341402149540535941851088733574928303305462455745116389145006044895160694758577985879639024276606374228739618410376009531227320489713397044464228997760018320414653804009261666377463854272722953762953647045224857872439528950468176356857804964248614503731685341635996023520676241243113875074223054459808990646904661434206805998657915251191450023225429570756377845144974542978190614433146240267783227050072844994021321807368020723893539314379199078012498848439321594714292292996861581213995391315016043917164399432987250007106714360197845541478898562151337950239126790767910396724729989862134903149247535376994127139161860860028366427230836705640612196003605619267178679813957225992427484495043940794269376307202799708439818753130308466073808487681852587787358587232352197191867100443002318529330625837132631125285657022382246795478726021072182808603273211354729889970373328336960960490941954540656807424001733835023417147791197619622444901651088271102150548902621833445117877728717518598963042977242539753068844977877450082850641218485366759816220516238853390657310001043981349816611006665370204944455535360804837555919781917681081689855592363770963689423316807439387276332065528492594047736193688027829814529622325555225973099573810153055592759072295755046566575831989575768829923427903434215140524937046207940571780852586250098642882545506745623672722438527877289293911841386727300560599575604386492585832610238609838748095978496265762121362838152197294328091408570483967927682051642460243008446736868143532454497779237093492379014285207271751772087321140237827441945273400535358237223260578899046781035802644922563658068165745724171011432050684943128884490211789280683773169166137097585161966178297966032471765565612473149742826378560058923817647359646728822416738063851116242311001683622922656611929692808198701280828623862006288600075577173260735980645498352724076286490047746257760717283657564975551030425538000375549464372528374717567163449519725676136995561703511576731190658369878321768606372785387107971459303241272096583760567598311177376894784405716731802509798141895981133756320847934489897128512006497640753474895474763721398478980602823544303830591999197805467822421288546248731324772346653786138336772909970719333027620285346963929062100792411579956907153652549440042034541149463872122577072505293984908643310868485489795666730007151207169099420672652082063345733589849921296698710330681735532083982555336151464909910941604887514774082272678274455740279634912720770867007343465877040446594571599204858714167253140495410491965634961200657264053655512505558843722070205485321678506666233099697225937456878506209728701261245537435988509170204849300782888934240889418498555323010263374648372626687173846355459531011932268858392124935641889677080816422816810414030417175652746783302457957001017883823056331881452044847322327366542874938521262309737415238177424538267626205818298512437935748903606378786340426748830746677480973022172404708051758254095098864489585418241445849606215750045093942895556569313382758363540271056032066439263005925166442395671061173939400502339075944737401263408434203377202825937788355621400775674541964112800145284187398001988157216916705930566726450892379998250452673989479997509102932191494784161152208048405499439054928701180159713852077404398999510292298856854736494913720010007129965139415264246719491561199011662711987515664464161875410156923130293621958178926637757477682338418925123318014346669125372588624925733562906466180722818759415889231567476669463795923919773598275688713765156791957726541749951500569017582080274304834628809973864478744881860074754602242277371098554147725515987666301510253178390997250380782480584015607696863884290397537087820563740984747076586074211325822469018021862865288305971230152359477861019610281912956006223726313011607348597640499750009964009211019191799335299297344223296240125885776313298819284598939161454427806562310223466631110746263992327706716000898125285704543302854860233183451816727822862170155444642021562443518952048761365753524134938239384317780145150217836703053821606618275410965792266141395060361759346032765647915961013009336383565135362149027528552636862538966400817568547198901311223756659627137980219943291392779040442438764327014865451841984978367340059461352335149497213601926377654350645666566601359416819251482279077660840594222101122638611418400971898964100936457825663611418126133878414721318725080620863110663264463895320490611239548565275247364350636829620343689452020356460971116941731767365065047447770336488009538167854004887631811623573870079239082945215583908296373138083887657728022071995680225136240530530833916558354410311817532279891568442457253771409766627326594787379553797331907505664248561566676138065739863990218289576177146516374752057802886415539940058139630743457191147401028151323539582779227676419221179128479870331241631616038133714199551563207244220707247814224119475729418691275767962278604887193821895304663947161261293421309588103646198832342789389916712606571710543908261324480393996993985350524426812837479828424391610209072493826010663257531752844246427140002952059666123168127177771824807402706044938370392620084763582426371207435503912494696402146427493654296795374132669920078512414024583133494018942307806918682811445950314387381600769276440502623840796106063435729723796651898638378403260164490126082399621111539010058390139916019001285782145774315328654368792807196020968465304010260017823256950534327310746343411096044177610874036977818071610724757102202988133963684912062488566839363364131756136903837920947824282085861280701137079257270023936073698363637342052062717508376048321454011132611068109531604824368860930197397973689773332810606693386483666230865725976278839233593404446024569650208313286581751018614170673923428062179012208325819825623363494380634837401501446016748042994969560779582888196958693907937034614442264111905741025122841880521051476835845647318305360979292557541723051031579624784487749195015117270153790682206715274422271237892064384161248231582032867588363324909635004169094702201729030381973290359126078853675700097496109824807690810106713106193151228333837973316318281895639167633817996918253116060855935955271707059722568995816181833760495757366853254425593055248315500282570067190018755329528384612666958659835118556982966468349602866185949964192613751852977578225621440786966015237414672989250511213542555367321183774355630500501591922065836966561278551057559613331744384012600325856739044093276481714097253734901580186031336054432137896118791945469880268447807189377511293458537590351859531282757920244145709510146430857528916159969779215603758837636493343040172733605074975976637162570442119767144794876209073768589591844266699714782329197852737591368865868024246421493565410170848973400031024670267281036651366807356861265490119412623944945784542017591690456159692701860574574853596438863342512667959944211861934053992526936082986390322149642329811723718175063416462881819621360517258503522680283966789264078796507060324793655584079858851665796087870766976487654649344072232072089666386575636045616930925992480361924845232130176929097787560380496401790200318264012108789405840340608387716871532351894836770917620921102945423361467853073893515140175679587039689884526935079670569446997793172612076902014141829889569222615743801185286710195059022963469886156659313439613064455376352641532419708901244315143716052644037741507946175755627581320187792263544786408702875585996482532251134062186907629437128361967860159852558085826370487020185546012672144203273960121273736005462357804172689052361919481300012598575719921440292802378221292429878759058688439860714729761107265787017627486599912358455974515666784410780159704116451652075884773347572883386579946883454387309134871095305852621904835441402325180160601487458650579396135153575381716392595218592493508370725172301361692476882864081942579214435744202453872186648133613647225649183722140762015064235728134166678714867986326753039885118354661671869568149542205370382463455778341789608972932521885207063037463815652966934353874013793875132311515803585867026700105656907782393152663737056735075730888550739096226594964749130285871908672121594605809293429208996696689634153594126671944501630794260965381662457011284658962554376421661314621159909465500246525024727489987948553069292585951885161851909429181687914651612700697782485780350232127181131673696901130543760067390841185419671834321382623052430315567159303017232582626868189384542106245741530367047780952754009453669074823034876698153360614613208600981732162186744434710289397754012243184085546032571241811447534500217094491053563021469554839079848778548039933453189316405634104816142954508006013925009983285811930642483703504609349806189296636451994451312474936897830119729455773895428654704284423865393495299736256543503144143458070632461098516529593515516384096095613815827964824656516695769148296803434007929827555803871709121928216050763569591667339003274223763152446169633456256029211811677083656082247413195616347415167251246022158785790888785674735823841968133429792620086791694990286687134425905627290266598115399231566463599776281541520101939837225858545671238926203601234138601803508192370114616729576331643014477112863489536499329946304646113102214600520842511707500406338491096406602149160640470148344713361794681955367691489102523199963917408462271265375374807582728297902522501969549910008794912022674350989969503267282052581568711563489694565627719955098130393811237214154832125965395598255317672092565706476356510042505868135502662661718726724406723096353740692794505155651159624775693525508676620455504931583822234220489832769894212740004311407044380228896950703482803710627280938060850325164571515840252643586499684900427967578718962673011386174780664474325972787151896003086561654724938390786472199236575735532796209869404156995042971036877729726373814944240343531303604038666743584717687741810588511333640306101883528378317634782966102374689089267474400280668637084790205710386823919607476132000562223326190852006901293310339218277636615449666477724123547566423557071610107146913238596335303485566665640854064839147990649222409722738104741971362146053390357508015159653505983370027478769687596138631324885356744492724625400646841709134348159428528868396784910632955099490253921432164622365182051585382974002846098214847638219726534363516305178626681521015328816472022482417186074795438358679563972674888333900931049752352328615704468513614249594346147680982798453046237692625446201557400878889642555563686389877281081391542847662222149873391693528595225141232767295986090770556708564735855740014605700692394068995227917356871622845638125350119014292713254848025272583516907925655482586672840486757202499846536315478585300656896487682583625313433131779309060532870595840540238819045524045392684089899077228261997099627221788687578510528991746359606292408692557220996326598357240447469312102284479294933349928972079464066884896094045808695293727082267178490425291335671214231540023129415659728806587472630288590717175509824415339299667532994757299284320718002165110954931120810790078015039405288860500384573858008528913509239525727027026387896054861092479056656654529789061144146657312708733848200362372658127345956782494560842896178724453758069808664794102989278235695409209843942807925646370478821799392212731304590648517121043888667196209677830518819490471634664568794027566966716130833677481593231035635598636442200197505963490464692753608557453916118468213401090559214177894130912744040749025798241374596606377701967595898800785736542923460142061734813399035171256729888454374408732432328422467659600101853187410616639131577311653032503684574404802051957748208108193041200582828211494862380418669251590295429620012459537597543309239939634397804097423685549670639937249505780042991824034476032123397215327079173388008805209287886101185480697073480462451249742476353775665411397109642323012151684970805191926517857980973904595757006986732940725177254390125151739891858566618088409033047340691383659155998679140004910857638995853845985312660586856726929581463941549810120177131106063582038508334301611050657115515551802162572912720513401837468083593259175848152964094543650774613606807134533146685793131114860276689205868418282797963133459089210858483911713468217876445589416647514527103473907732317651209548543022105445135706573249441769968799878355529975256729136646275418930222458046340074335602950261353436352653118052116936752862007444390675223911174780325181780238072830177166597313512342690276413310584955491058953192269334774792436707992648282259429297224960438915211706753021228841857681599958736065553310889654451468048810179467419527140527088460238213833994558994492245777680398901719137766021097401802779056864390074570414956491264280592966665662784718864870813698170945431168008405164563188136742766074895075031106945022592477023216496370281407085387951663797828055793835911671983115509329488023797969469289066990953489115240237285569541359420410252659676023749269939891226242543806484741181108876458780264144225853607543681093476020496003266315463348788181014568598119840856184142209501988247072393138603192504322412148945169536225607969327035813693876382769070225240242159944461455876176601643988572152673971567790065879045303138336916758244502608455672936558605323070778422283507807632728251393758039184724974453827468536434134521992995681927551929407892346562846099584493145783198719695308643477187027431016051548423447955605108021185467776690441988071406036503378182819512472781361579758193825188533691100268216627835310640658491106048357242887040731371621649370211852973803275374823169712027563039473179645142181189509337330795836211072523979514799596772626086816423702746415317423568762396707679829499937381455634951868859648156137548131952202229510274409600717015886801798622754494779218732146349605945075161102948747179715484322841183832271993570015147354337623575222264199675741492258306918149694516686486619147238627911339243048161043003775848835142423687468597989088149359114312848819211797813283781339942153589412927813668412504314970454419087575308146125312199350538476644317228405950809605768206312270278069132188319237475073285192680720678103139490654219315491251236582312040713338375198664877372270394573797588433302446454683476463483347950666943689408191465066185432090493595648870161746056797700049305671431793904120428606233194126957633048734088224122201187565849382221515794196948379525361720330115883196406010131289832578471070037271335769233553037936760318638686032819748824098194503273877568393659018606589470757713632125754291955584602150520735759717981644723093370299769372243344848461777056004778195228639407752948603254675661089840529224756239707504764157420883922380748102514103799285022815069470365178324183603165413359127075200386846718544942507186143585150575514907406244565835168444177173304993661146337717140430711276650328333224038589085887732282408316086869503383281109179451951945716285143665197981527225301258948129593257365131382951864783593072903637906889732276182852727572836990837954149775481839088331640903019488874605908985440577119665318814939648428652652355117361930466503509334705880323276735986843445248890355582750998657713557563948713626790312760653324239280322922644868415655739709108493847377750919612831668670784061079821287173903057332252924484790517454960469996504840130105688452490049048628274439238855345819866972605553044113734849029360737517903083822834566892316098867080890777184795739433552030813648175430595042084798201622188694361515173109055617334053137630696981468795109641095049900160409659425576969699657772012702266919605275410051505418561508369335485433823430970722293529634659160603897236149578911573078147746540595734335952020344060077257909699588045966853615567404358642951209897491390577345788923608079198326938506389710269209628927061082398564424969014151691616277330233925724808912577632310749127719444586692276524883432467513699951099688081104741253762131444198925726329214074111252893741251048223870150666184968109496761130193194076213388591152259081179176885751833599856477024699856647567201699403086428869360097515747895300738152798902601904817288326425377367623478204435141849094232141164719883260841675281589797011594950696963914223809567446854456804615698229640397671072814362861367768740335878567594588219899497649842022543910743342602115427893545862371373310370714993961968321762943331016876986513608128035892217056715249372608449137980844884542347033941567616056362417272979657193204238023680701810412819970781989437886472706392435953666952474340657785589612813332921907380494323503660858917998318521006980807128303396123516755078254334761397637780623655525974289044960907927591861244870790378596627607336583541690062307456875304855998239487392177795952128762478290336963467490714814847667409808369155359303232322591322070031164555710485913820680124699711511490435047172769689306389852561394622255494352574601896569870444864508105363442855618801212987460897182862402272307996970580518175780103792647869971516775509657285567473494728217780623659767794900897248184999013525448677908200511018864110527284823294294215610177361494826044709150028038276163346655616570496100850220302933460698435245745414577809199832759135683579926082832388943894070171607171481431041347870718128686929641715238987317506933398174958189171475349987648743001296016848102826639833728652061976781346803227608095129737883182273796352669084184048062877412653439474505579589538869588771279985984360499417925359513822336576471590862682768803042420549114060039924635649798040241769249475844646893946544802091437996412184328506309079802392586792772000630343138557154836519656797972542118511944088872282217919690827472876323668331885349399336274361404351422297072895139406268161552884047236571179198902137463918027934182895915225450380368595338760283332071143566661597028148405050651527166523193600796038252976800872928163778030718294848653425117908203674608268749246446080081744191105812990163028138181133887033906454461167223103024906239797554430757790226389292785896126295536794496454552059080690193761412562792040454878053572756893987324031987490623456904240176532769623422840492179845404637963351813086580786668308076383972407327149662983799858307838058565582431967863295198489835166040885679737579233971352419790232157572307514771271474124448809770377951151710808044914751332785443540310036485804070707678422958010369417247360781983778329177856627634276027327451046457673247536850026751835720230675657474820461747578826002389062996907264221350323424326810941737236277334960695740409499527659194498905075600884257239538355062764842766719267355439743550707064824095449011118835391521928567733804020510328308380638922284133614826627778586185339624453638686671965454768249704602032905123223192780687025912711811261359631689702791334626110321154226320930423666388299892700594082329096188528114875566634171463591645193590014929150691964915334658958840674399519865924181172317666214556991365275600692672390496052929658932856342892974035985500581993094602366363943621417906758995369588091870673660853134864058847932074361492873584090056576184185436344932321557947961208195345675511878364116475614359370867748729870185675841085425669594416801647963453297324047729418260473051075003417701432770456502506117347779770330792262418043627004229105805594138349585291421365520345204542256608045588745157258791068031048807709021134416759456711964691181326536722911854473925731539950908150732298889832510263773702555382208333114269282101244212695648905749870268610285267451936847575485730287567394940266279508104744330878788657289626707076488877304163929210828625933793094380518145190122895955608941923706342451113676957820590509514540776101527689094589298315499026463255426340820586093422007200704033552988054532809635741697003267883638345252666386429180889042953813219633410440148629432917779140541221683258162422737560073188918374469862782525531102608784260006620676895647745265161673932150024063685098231863823035196381753040803879968808841800105946331977729961685066419182398710477038770754285791214079566503438875644143106002732626960775112381748593000100929733479219659620421627145101750822291955619350217110768430105963320951876352939575787695052794657089937260411728094547056711602441300611644510824579136360520535030749293552551262573730295945618981512439457222931988394080636154409712745188706000531305758752988922824416718220693532765468505302955788422197188954158067132430295652444060871516057474928533199535720474662421789135348793409307627727302724169477188493289137958350390353151340598589834661382559205036593326951314048274815844527756602907161410968672076376812638768004966015107187605851028630807826293262115915162678153255292641647012324644751932528336996043020671851872317975676467626296266480162281690422987579383608648448235469062538327669307505266663697489394607699316778980494598411160055704782628309253681803186014514478808636101686068547440975293346705998423659222193561222493321120643568633001585979659275066455596754884059895761467017443560802834870712562219761105744508038111688530951361139715874674397959710926554055068159571440804609050543158982335532782611258951884970838799164612144447768806091139856350165462086738461811385542603775670294441137552332475390077170818359586943647235519877527439205152601099405367867334654323363873325963285433520078143098557180886935274104835908014752301575029746089776155809936371856320916844760951984256120128441772129836328139581111508328034832354859476290261439956553812556632309869233194348476408619432133103934167200514047292790385347374886902127022553732554563142586645511860125417839707642811293041025406659273997348054473697460119077888265002398588174471990373724086472195557095984749541059736201103989800858147004959172029126852126835415615013194830143556370340091097388534251219941123365115229398089975029896109183419360738127817792144596701932481046946786132111454631256838642241505171640381370281002649597425049411941424042388530347104021676079594511729420675652538534935362718992615256595904391180314478240413678673935414371862908505738270929177821106935431453763174701457774162621816599719002831823238607584057461191686236370608187972678453835407416754389686445472210446743930014472250867919088213131909631105580003869129807065337842435551248714263727884742754538277152460133494193780677129783535146133876595150722382561699120834184745884251347260461410121901971435935277185428900563241479673292396846857940116018898356462622730142231442262672870579098890071579130372414737613067425745578430770782088576854547547193751582944011309979117153856268802279167018568483968412054798168797561078307682136239795620818085931608082249413435684767027549864646027459708178526828083107083028906345919043383010697562234649617150722304081457830060143035782858095143183386189037018486817071218840215363191890802723533209282816432976400995605672938962209857720584417559682300219247290936487758264623078280860614924608548506478867070929452532933815486392335658198606615332012506777658628692031824374610921292980482957852707923158190051413633060269169234248709869114094917788058391045992645630253717921403117297954329308742626734000521159858436707691838435092587234367946349004114704608671122537045575479702449961207317150775983352836398925068736241736614958299330779494064228080475823827267720467313106750877422664694287996001314532521605227161749709587587049040749451699802523480655542048165303707736910747325976866007928387961184369504829679464413933038655396257480763136427115575623047822743674390140479281473344943704501805566718976485243627878491281602061192521204465035865859618381113683155905964711922705692699479844050460699307185622659272201401180512132408163216287276074852286837765488362134795463480037052515562963190546287322159945504993684544331384090296855105175233054271810479312073562646626970368444195989210639188350453445508654345480801114638969529486853950370760494968515105083292480121253499031621951764594802408527824887632217126449006369864743973187695331232166317864802931357233181005484401811045119354386648988824676883365823454318203371598016998643128269253368796356356337897723395281901255670569557253431225828361240151689616403592654850291683499228422485954210040013175837423835681496968594582216424681958336705974271204215345980355329138485404571600994772946574856653045637844395980479012662136968883074680642523725601453536078311353757451589687418188424625077954778741689451383683801261183764241994665544836449907152145757694726997162482689986818087118250079945044664351464685496172608478519605820627286201593364533771098194910307907064021270348621910839323317845824778571414136223509859524629869756530710318134317025584387009591665706040594493587863958021950372281356049555609403629003089743236193740076702921208451394616718816195057259320416689366917115332707611309837862919765541305835200978271156013532214870166226635780533221499733918855103769091299446518605213612584697053226758475848444809861772415996232330962630501101309973369167682697404100338902601064870778580478925269915897912198285041289962631068206468274899381026404458820078139907392789232223526465676889063469378457038382004456531377776837688737901646922841748585056821073490625358862763778867302022283320182086281684998719282069490667885236021614690341975870350675050596962957487087238766963409314981358596907670540289779111855680105806584294007262149726409740372030315433454804239092987606217012767916055362771211533596939705733310074714125654608996780648812099123969508307321533642847511274253277123942002134524052936779643306035925712593142377774887734431304911608026346773500569983246430516596038429745920095336773063138467378446314124325743423691691458274969428831751133109977732968202592194989091254655714478150116419949956414086207005160961206555309526548900577765689891759463023880771881710606556064807473606250467394165919830113192781204101758019980278040920095048008497500697373110251920518870610529755172664176460817608269082709880252823231653454492299186079437950688094471011746344374446585953142202016175163743589661056729188517174400731737851669803401833007840783483801155038688474240731338846737536808604085315883837385820265970623410548438290134575047731158024011480716869587891912261287320996957217022932214314056300797243941211805132091716206559276470208548391773129346156752055759834275007424219642828131343066100750337449599649455276511159828894541463496979097539238287493972907283768567988642567291592869331706232052106633964977124429472294592388613661249373938490088291568597505048489661044524405335958767437347649349739391522552965273214821144965536846897935464486488219382076417465259781821222130095783104758107667251513035099250871963284576706104454691522643777246833912100082905606554244830092812950917888481335748239155742278326294815900803527024669968358877405074193044661077926486655975875994553529551620948698252306262805713617302093301408044317837348477408989116146014953316126674002045874694379051481711615763894936955655722966289528465820225107677541212823124498011741574813993935386184363509504327550734511841238769854564868277510864446963291619729970179038260603739342443117753184299992605064945996638086995245718037120685926754276652760641050743106017140877492653887092472181181660220264534240398753151631334861744749332479762135914979017905979485846898935208799103734260317293927574319613124878263870748824147378124419140169136240147498117180583738724624053652373330444624049098865330588089353936123449511649614834498538048553166102716485319955728945915635469840033741307174980735497208622533269405044065207905773326036913083820461047776182021408809641080580246479911037844174697880006384236756637080961763396597499095083385430085177154098753170394300807764080846686961724824744717336853272910503542658034887048357166604609148062041518863207111403609838747981899867262359553460074603088408418918779047216000627827371504964974194625017346885114815015440513252696397269052978419705798334215694139944060601089455431633161346941742163302592154847059032787884479409884978383758011891448841060403800754866896116309222173790332662962201242986550792491915801147411872452569690459784719175993760581991123414548336090366783711207461998259143530670400577555973658778711699443937193741713737883630401230006854965776752100692096880154976195193324315179838096520640705814444515506639019493310133734603043025581070804081566679981167759445135066206440234666332581610965725517692879305900943981068611314602458483873155477803499982388597412027105338408077624506640442894679534221881274800473115949445413994179532717811401504000425660699319351966586404717308689253129218614780747782623065610212308549351083987945594147054627655831783597928784440223318271906280084571123029082417939711984511939983035706512316010411480111134715365009407968938664359676173251581545532894798215675642063354476976765587057136073616680361839332668243863878093175195478231700314799075115487507332000822422562261766761239140517153653231838716680461207325136497115879475100652316947933275633236806025077106381703493592690904430582076698612473578300570260525561437892720582281040293146397536326226337952054135833445635157028672623948048584892641005425031296565388056759158924705374500150015063221760674682519720373490347595686359146177263184322466244662381135472460013138013776298252828807416112845108495912233287488858364936745230144897633884289503111934362715656641876861416801282831680138661718672294290119763212547062990375449867827277073161825279600830916331834002539274155374657669743450698466794622404176965201401119335032536823749790208124498955457044196827355440093281886669659944437501311201652164130822814625588138232673329802739552850913594928439923210317990854863003065675834645300066079474179286631437565068316394893305231195336399438368983519660122639929503278605533025178313820989429166223355612373131892150035893089569940599600796071721983224838197886494843025090244093634146080177412110835319703644192907442886225180479622311600699708311329124255216306214436419784983881014922725331846269442334230110149892680565602824718129632033987364432589893355313014235086562692316734882520415037938252280526138091481869964926219422922167834885831138747553780380620143697593409707338928468921468901055408974555143857024867482122643631392648644729795727182863449723197164371549885490508168536822227656444890193712122902297552700229929285009016397223044134834474490457277192557876418482752712779990319672229840535848802973883940324518918183752420934716374504193224764125443821124406540186616814164349493683293628899945196335494247007734632708135559932061402514483843186348530423914398913703059707271489954295816707361055621917337057857640075371457636802300922548132148479493616030717400315563860696190734682862150531620228886110309947879201060079096072169049046953016054337993357885778911148492196189576404246163999554890384333391583103225173069051756254769256227637524284580397538775615930976373818193458964655016058817904174928150981182384229271574402102561651756694054589186130943283059623173114102843569713910833777874301117525327402130624189557196887296025197148962591236996942617512797605105475578013448628033224050223747280291645735452548652139974120960816127138020818480725626396186997561307444950295481747318045946311630578037236618382644959332422068171488926709694426356856504843946042718326264265877380153149780396852365698265168123942469307519691483434829866278014619090157499882615670488105703819201996434787035296442740865163935679116717981216633703008815051630738063216257917796403438216376215673214836535609795376236485338770458147810442049696084162990521897353913590698598479364186425118220029980044271571195152879550123938096146851322458215990123438037466031420098327421834914303375486270657727887273808153607284188802664383181163955302258162294355812361819379116775797855500177622487226338741909821502172117114680369380254354051486357996976532783722594814827595628974726688263298330821332908394430791027487393761365804718361746650853465276614677961563383743254323403567586002896014082420506887671616681574936759103156507818891256797694121672288138688956433606275833895806022808890231857186175494850755411655623409624974307295317207451499275079720403843630131010247609618146034955870848419362821692717066755493146226137246508080173127020847178997424658263734896443385974595017459322594266413476747277884920442412816347036913275701552629731919537266409716723888907751497158867308867714891323826347781412181837526170858814068174841672787378146868565876283010781205597332176708569173575137343870204491159823465015829695536609721273133108652842447673343920433433934130297497986954006762661619457766170469108541464798928636844404563236403969202448748226877194853001244031959528607304051424570912525391563963661588623276837855493766795767775917215961656956047171333324033939540314134786977260700769092940521938021986681859430225871236538992297438412274115269712769474549142731785802764743317195169353123844274364962296069569476724176876669751039984092332805315025119930580901049785156797872357174709838018085939185049197656186104889123841150522674697186623073225238319610281778557899487063834989350823105966889365147300118429956366971177767029241530503425865211634744111180486346228643855762925677115883043878144056670122186479402968676653192984607662953885176138042582418956460268024960291898762550793441871713723237915893711138204802500243347367621273423158272855459735184945775229484225636302680914688715286230514721197890922244278567546757284120204594693193227808947753134538852908698137252575663785794173134354580335117525573046635930890115406820582431323008017661499328725528838398744318097078968945888173126596082817878112246039501988149510887387225666081685730202724958955546355760783926129865083746584811038199865891379238570822326790554707795189180937061943971430754740900094413944451587474929913372177340223237438223704613679533433529811990673018343366316488720399847482504218732827845057885279125857950904098059226377752418308791553655676750483034239588156699756785943803334176325324371269907561219910255452492579551331315199141642197789301406098962596795174643535654682731483109199081310306304091543636662026843109759642527172956127418374796291893224098596432560942363501996230215785161418897736273464567947338935147361892505041020599338054794835308760738323537434707120840910389840285965568674558013902140145095230887252989131617235800268480276973171032174487489128588432159834881369351126677436035857641367834426298088118001405819186456208916235038753686277823698487238293420309519201655378091760687631394324068978392945262361113619464885596162688606484303645716454775087768595397967515954622110430999695590004496313895620208403532046877124421449590689115394116877849357504317102380920279720020184786755566835523323882012778047943832633141730787218107154200308762779431673743125086167062823095428166972063461350156305313761327035870478074903372981074381985675080077215838482722364777927879067474719427856909883028216602002473373443862469961396197477391344318494959804765416110248166345851107392833022244719741022626439549699097760669370535245984677374207452394827667463725730640545219254089260990010292373552205826124744401673194805160426784988408010220241985308987468889666226862072805392094598239680887423329894675143644546014029555178440993869723054282573612459894111559870918195386199727198081802881846177697628431837645084728815278847622345199225776259302340617677568159029357374583516953680265816869907004891456349445962615712082073772594029543688721028035805596998203716046957682418647178997310367438276102416454772579817890459141125797921169117756593386387727432766590838939033655151611839916479429236273748943265262338402527814841276815790695978243916518042364111011119416070739871303912211379975088862216373262439470780356624995821157815335473000663354647118020562378347710860588966377962295666446835935522254434693141636781625284030051182194936949888095706192901809801482982432593071743171354848136100558884617421604112315662828816459088729430198558252469813195622271073391189445736385269385564786291027810752312022801267809834818400514840985645903061162300994167532037160025691450902941229170687810242821130609267414559510546511524090285955460839268258641942221608586086859691088783751162012589656690077335200936931761265737083759413438427218310584338060802365849319394250866856193279518410269575315066200541379178109390569529724560134813991953117822286058177056721196872629944790017608233350624484120536150736092098919133243087642865447413408202869592025613738568831531401842045960709849952183454669221085693227541076436399144531771637263770492135429548338291820057555554492674157346992006594874508581283691472001540804386880284225480106091541333021082561196673609172158948408882436879312635359790751149591401495304896942796624232970605162933293235290570816838662694252848940090844665199389602666837290071274150528875089786161300024043282825152096683433452942119535343897709873942478050719744403107874575090156616347904669876593654341903149404026250967086713225910589867724579128740099036202362498936061281798676887413433655968168959557636035081708534278675537631056141445396844026019592291768377242135739760850713040306511978406850242528079220455493770489150023521135981305856930142125180915582849119025580508105017167128810361609145672840238003798517975153086188219422520445821860873601528963700846130034847133279986830800912536453158730257559318110608290259061330081867646758433124583930742132844479916171483702273852315240206064295910131402567614613627754608116761760241054875363640203147307476299812847347568646574970296725446842691008145389377134236532998704700138035172686598460720769444859364965731421122486646484935072130220418521646066550247445240467761256187414245341974071674818838706808494053926623050609820234535974131470066839246963850836099616963727181707259213037240035888441779989240778952918219406773279521153139851681103560180192991760441697643967598180200824762570399759306408461296802391588399357729085288824869211364647125242384373560909705393035099535351770237479123151820639106275813846073779263825390794643386634653446363032661805806647280499272203796308775572037092262220815863425019980506756915190655663419481391561511465445176530760805932972083986633231493416731039870912562584419088546215872167228676299161093971025871170890561969316258199874387046654312466922736509055359022510858080512806792926784084901222504101104169560395826666208470054656300299682772360876100516589379504571300076785606029260859206541454600107990776541683535652381189072797570285323612077631990442183022309762247728658577795786234397767265458543022199376938111864724510366785039887321022336517417424799664140040933705728741141968904020624888783057905400506750127092862712071070540354728094476213592809159792258566172287181304095776006075761771119047575364911425104710809454082020767794189182433645966465479014245102504253948668753101660998181210110115881282927233251626151834553384846195213922359267409259924759732311814830897117128596449227385053520350662877405565955743450430157233475752005005377375762769639620007513677522557518061152419417027260060462342800352958143719422570848193479620077753207366530865475678513156076501838591909804892585170686427406088515611214283088026512758627734048100191618207281063520003729998329864128328713423044220142847383344262506739459838089328184365364460929345246175013190886269338233901825237948689385018482155237326442415123562182038050687618435273620899916113959416938281727486344350807249120987486408376716025472953758002287141851353830125391451963628733674665794451186964890827467433431793097802388684708988510784591640673698306028675619746775068531112521397587692877333975887005368626549179650551727777268993354020378822590456387690604835123733157007602916949701313911824148300517637680207046302790871260139867247773313545453726732134275917416784003023834465288430487506844345861807853106304385805304033752911518398590776996467849186922410996578796563936306123624855148440095027137599539901363707957976111507625251412719445704520353500706043903615815763573905352423869872100735589367087977349294342779276705972614797520709033429841346793110661197208742282674081518548905221639297898097770366440668593252967086297213367587037660168182433743488476371430021670639165684213038969248879574567249930232557782496740514289183548022053623510879078619692599131933207649825889992476944337430753086311339381064529938401157030488670970244087504777223484087882588441833120690675050170874586215529444299298166030426354158541935743672687881428017684617915545471758878740300459130709567432904265704340302549866459126900929613821211890204651995882162425549582736415320861758699807084024214327012193293733213619182226448239176746221540215057574936458147948860102153088117285523498016100301758861382075097013330083601993237046613743805410704497327360055576609604797522012480412012775513759859632072318760090101841781521086993781059511252139357802975551732323167436846139670066362937052230028031093835315458567675996577219980165505575942132904613592168597228502296736061088837427439728567281075255106753988159038118350568412874440515715502483078920690489204723918174413093244794687986617038408771542324328281003252309691604696412775300162230254054345011468464860777982505219158922500204613434563896609939750928877392893800287512066871092014685844107578518848987519093273060859145766379697722787866812207184851278290068436997653120446814594071722747583355836621441181399791865561459915168401915236102947513836100057433807250158022284275037849186081571108185894088910416894923798576984161329945939987685242274452001058449362571786608430369409060600274838879092248332386129851588849704307379905351471442949860483965330154439190518279955498997159319520523684522672795618536229138602062555110111686054711633225662441299198715507453839288051788359531516418885941886300185902814886624316679238048272868723594559156730746327328079772968222164862428787089006391942724437438855179455131836603975765511523139846101227895877972946908477833589586228716801987092938435062101814385270171200918932274569891793421899815907283405156184538890935245530168177637874730568693875356776692156896796143545703799309140347082993853928223436411685101801311805567690808458668394755215475338190416972994055287857250049274143042000350737962709084869625987156060369717699162791841095623090570342433979407982179767158230184160065728683896193363345359339451243662476318244797078079487611210529548052168672637068444838533585471766665714780170452910787530325672534236015351683968713100773618339081859981115672174699943848217601232470191893726799256080461857696534337414310768367848311215036872005621958858871364375489599226226590018170827213133994176302095592345305574049276538717557214277666549160372044781214716964064378532123845902228210945504934234950742086495671331065757390869805283635176991608250549102494342957039937515674845034302546588514368907104863110305170656229701331336735178782476549082263645842565054285497666532113299196457945629715473272878418052390041905264453184187369764762960243747092442729587077851940728322982681579120839983299963041574797978780934104923828086233370441755509765950228039799820902298746033372807948498273672974430866114775348678068716185607359720959846439074946213951165504584893255633698020974387526412523039644768830736033095495018609387200293277088795554458157402962363178483717190349769119296251875153202328337314331830532430297501019556435669824110352645783096701188586083709670431571733793653856820376215637843580316791029601665451414293708030951047297368484093374733048900889803940777947774379970691119964480604549194060775858788969294950023764648815269693609325302135442666694154172735789408564398157255443140573963004674385174231808993195138310021342185118701591979721021069410473111966975016007784163005230761571968727635933676973597940124877271737647153557617258996940583012714739042590620808809558651279730689751393749942609799847437998629113599146490355942557441507674748064838354792423602375096299679509541003501349568583875443194970267882269149936656535522349348525192559631629892408530611620938520273097249070988903568156370029123180003094542017141947119601945503334527160100812772724804984423111384266919935753710556438260246899101769243466423136838315786685536507049874945889830794599399535918287525430680140043164596328737376183254167887760489785029147259787061449401807320215534375813724563421035281084234135340187575531421907326433356587577755137415464589726351890862789082013253399630132894410580610170886091325481035302357744362560896219811189146822508055120079296092285889154517077667970600616991229308410043586202328607696640216523113486160666572754263367378546610361395360326588009116304901597810457503287613563221234987460078233234279337869895458903946566827131519868529951197066995324807306564707250485434865816041996029422124108915386195893938959305135425310615502205905671069266080845708984581065644621231045817079481717038570056882173633758745326879759772397075442595525775649917807408147926263231830092644999237171700463131469180174520646730621483249152445832148567725977968849115590175629893295537659609957745171753108954020385356058468083605684060502264958813172328756629591856651074195519038544303053988282205048422496604350477466336807937716399272340471583716258184138706146746908932608927147377567252777768217331615267929626723392060980431652519689455090186826564143782485346531150821775980655588978083375657220964688714274841360028512294060332784624419508508099439049702988988875700705411534530699970461545425554310333197199699826733023963971517655334861045846827990889585739984225272241489132851449495058282956973695401414221501279648846439148751921195768232443070119883932249805791267070893668584447237597156329047226474374881700035558401381094740046434754906919477787428434528280374185219359341174609744641642014001293424933836575637166644851499304833712007914716721753471941980094911166410982997829062307847612607658507149262591069246197846233107216582759324732827477546862067768179751101722384143662328451056194901196313676838764999204855054028511927141592106132409993504673299311858344043899720454489635618977069012396500197605463250987757547042364854900038523059904726378845587573672923898782115451837273575021488662792381135842996521765221593638844461565221049461055323622116715012333407633090180580955922367925650468659256373120834296787427739833817187291034330230127461077911737743551203012750013418572969483710746129237303589523262254759206102420928179763108570298322413312312880542081266089372364467168087069051293875465620687175436658819898006229415886216804293773979389398796082011585469612998891742511864906218242494937225992951282301419454563096114957703641510474089675209988530000507730592079801946037432509802421374913445143713131186700921401431461815366594483948050569209422161857694268384558813762150334761727679279972330686060062175202006500312443141459158509223642288922961009552197105488345288018336249231334850147307290602658754830964483495806059279821739524102138938797902038580442944656587723627666494168160037958725546791301896299095368360658165918600433885289211049452267862831441005935233703033718084720804509207566484615597223492664313784073840613136214704882009803867564871339305049473822654645128069053361378645604817577099179379895034136585847730634117914529072119772142383597296032681315593404827817668941108410064703420971573770606006324585052659085031961566080133307065292703718282955088075729314421274019246045211200074009893633513120373601711779405399210996190688231753579767218180106652709220753091111282007820540646938605347247975096449293133568559103580489208207514556661364168560798015283868505671371497184629369991198667056042363726339051021378659806065668765122539897621327185141245278431970841291275364166096190052736606114207096789171180086800874356576283440161189501965774366032653839312426828929694110486267124102044146045546059824431604969058126967295633318146976467202365452783781419711345487201934589857041884613078297212526468526116269749785182611919888974930266046879257627603377493795220244403586617936928485542852723587531728905373034075587749702768414624732876715325875518764246351908488627304492527953886363852162828646934794930992965878685683737614054524884975640207314352020504936294937873635017742018201356820011161787625746059785946511499809505436461492824980150615155964096459624428952335623340008937711476372112606208931250637652449172060975356198138168538751475275424016556706866406473418505180646917739902161715325264709626885437410188646525561704453101192705187710359542651439412494197577405816261724964805655555911501868964409505831775138795875420393376465936867357865825040192798061255097684296322901723562652798856457324427915929826685794248252319625772398251767806387492616910277140548005809310825900755673444671504105414481690513388664404164458285677656129868184969409173744379366575708411808178719764822078205701214043335795648403408376787980456867855110074091413597739732369816375996554934625883059403139102689555408017128791836205302354041223968153374661724793506197648245919268884040633510381324452642503771773562556855583688689962200396664080413834950649333771499493099160527328439379558462418779045889093844444411508774685168567229371070840622678121734168423535008664672906919063619619469374548770462646661673424407894921767456592661232535075752968125198697904765638444272740261510135712504367900119415947585683432680442339046362884461405520530951753270800704229423284408621700024841551325944523951122310562997961364671234520232276699364960169992060159392655631234991933929500137520510844005873582699639074166673983716504304738816750432064655822508379657672000393453036394817837151568192109545302165635864301314841583382516069865326022736327102501224283774343472645580984167069092104471755083561563734157409601586464758558801970857045307365509574502687249604926631448244841328984285666609696471054255712638082323272931182040382628529677784726496783999980979273769710158158795195910305188870405845863466189474292945366379931340917890261113664800530307760916077159813978796192402626698930838956518597309816407597749621552713983585581324990676882210455166654706492212818819057694158192472815310235971352646218329615551357101013161089422125859467269370912380588423196778201505689148506808149356864263121158775955360352506420124772537096570701549089392470209320364437091112842794914310970493043305056730330353763172558220833998186102785157247952307319705357562887789610198118646358245007709882249016463655719437448192811183025808625060920771390485570254188828231322845188365288179703576368816888782734384255866530185508050518175603378108292303589990050971478835932081941875132233905719542356285292594748572978139671741196365471250798303569610183396332216670880546015513814684271186319136267268875960306097804171697802816756956208866632971098029054669515333770255508684870935978724743758131368628228012018965075212826121049925723086036333042528442343002216621467337289260935432695842939375772129250803987105850337107472080109293205232963822156296789282376384829899346124852870600011052495918125276883898887038951760524434629423033365900957268236450327886786060466375371110780527061997554203173611795055314842497464415817287370012255604475165419165231720986182426602870699357021371703208027146983200259752068042915039182645426146630617118178155229105891727825793869854488238598701008432924511108769542209294230869176964871013011803558992379914919868395131938640195412111897944156761144039219174429537617472943190062157673392574843525945500526765018185261700239343576019882269276860571305563609918294945243829529530581254775148401923779044321882399393265579981818952715800541673749886381263048058489387057296400939225404344847233039280838942117237138711114024509752840105486229589766473267963199383545461962056479796843001576080877881509183356700506164397395165182213859580069429662799136670622704795206244564225536552151097066515562312748070123811668974806413964383974330761797618897722486668848726617683331377468591671139258478638500180868062969859235972868754175253995238289595017936809870009041631593187845135405628156845856129796674981390555275363539204585503501197004961977721901421665875495701300998586766781460573658286435951805039882366685644390130236730464655582063526099748564119548225457634280027967784639320970325625825466008740549434211243649531907339082877878134395115668885242529329407284738007836695929620642737378101603903152559008041993513233769316298666209590231145108527088629623457648773248113958583126643527354214720926455692457487871058534480960016045999952777371396778404026773241446730092225835443120864237084262001091611315684749474072111857407987752510714193343663803846367069267277285555748320213764830498499727744396533994182756148822895169626122594303199687177638064222647105813065858955488511752077136235050075592053767724998977514569270917544618176522660665174664668098648066918492632853370423451901047214440257730506370847010687577310088323789624772298143793341837572807303296733832814398432560225973694168107441836304874472175916550286964314142088068853843486350126232421314932100775470886927764142742970590490795758753605555169752503542803966662508193350454834171934685613178863039577556602202002282326452366973179944804043322538941693261764457424833380768199351638396072023863670640708374120866760768026503842708803947455134042650368165232571380894567994341119949645256817769793048838442794068371743916924435719545498220028404091779615230190136110165744566711853930530354646636570948619038678509402165990785821797096328370570961872015155974557903871495712965480173646269758661640842389404111571470556995552224795874067825963106171913122758568602259800041785850349170345124349506262050046827103158977744732253203612017591811437485693252271340852515195167648360579153959329527246751645772073052239398655991626584159212009034863660216971297224794090547878380425085041054626997016463685212552507780463958789386704699700276146889839088152459458978279939568791803838995786805109654156806989418106146872387125389319514763548097190329002805757687641522086442751638389457918313841922033115001532893593508196077846865578105420190043501458677732364356129795066115442381773671018386004603656947965032725986241616000432387848659213845749421024257173725643220875763044321072791835386560346681042169787415392452682899559368596667522330202214325538732923990765564142947012089222139663719275767583617454149283183791594879737045663578970820127110367028282040101718138019104940110918342441135552554865870667696692928885254038768642685540734430022068107734522334877046765089425399440313164487886949950785426806817049849589224325523098814259997496710692272119606525545810849096291891084890387175394638544955020387797741763330853354874020327376333681450705697823462577950566486073615462096185727179775161200901230085816820574765383517867528423245329475778890205822555588425345238201538750414878662069396792597459921575704360607712334087537719997116569228669824899464483956528629291495279825204399030715116363375692910305936203188321679552215734965060397153686554957494122548106035238014940458244934996444210254324103376010769534678215686742492818136297057332846384660050381402658045259901550896078731962260762854817114054863327634402136004015985277374216350138722731128409782325152389859384814440852561843088952883260467088470386732492283422389525063373786881205955861315116156896550758298407775252412712350821328022340702769181846263589444708030849379720922123019426551002435415544613756001689634512879354185645320866434251075245492798921520700009197487126748133097722594871601393285706380658440315981284923247961418835740870327640078063320621825421107030837169660512327833240065664323111525923769298033517200292301174288507854584288610650476912669026959986978278910672916792332765451917605386523592400687709001831385404129765722751378036283339600254932872720474144456109186425375466158303233732931670166878921039173641624779539496978120537683048544722672224436813070013497813269476934498515642395604061472849321244727660310645227911249686460573249602428719361664052707073906489833222504271884079843766007382115511978104004086786833174946064254345850118193376545599193450676421920260001256065811208817370367717087721036326579358790013430201279779325666426062004612772709275958314984610967326863476263401613050048248684565191436030896014203039845045846426590407251189575631757264800929037368156397355407577066543094118920985947300129980535401873012523585279892450885172773501624547700950952733300289269421012029719670273087826803346743173204523584774879879404865780330125528714881347366302042859869587972571332998986874452151516613289602720095066896075536589897273663095012630810593311736870495973789536018907344001400090394689349449985039578065321538371427207007957821339179485837673102452360534018524467183753140471181298534839051472699750461996746741898825173189161856894726800830786138105466173143759821663209491320098602281799477432081488201073242801033560116608367949777802518234239020730205111391279815450435508120621855180937761223549991088521194266995864228037398882167623883795752835623878319704979227290043676908812817498212458284914216946971577918159261610615942512776288204977560145966564976809565107670563477244367395669530216304934807394412564184818413435608097964132897974241399604508127022064905411540921634491363200168354175371979448506849132764327279698628318221890537739109944349126488963754371639055579297109826438045988818767861034256784395638698899781942372304251961969799523553991073434696672363413071642225117778490610128282075814323263105294312989087415483207085028193952234086618568578670521012570659512285189716959656854315710059856462281283770545887450091008985872945289876356957195369118288834720458253720967917489613904726736337420513678643500440705470453814930059780685724456122064327091065002423551438422306785340612283421172859129902991089741680314079621698692610816408418612229926872336859034256731648351157179402970876461670063442490462351935150160320529910814724292935710394649661286587198396593096401054066124561644538807914471276612487063369854582615115186179362617777549312290844911639728168926763205408288101237673225810878580787365349920651191403313105383652328286772069495444061248963737186627542815117789013168275736515003453136905778584131697155500688409811297473934560503499075366183780938267330161907390707959202311621450072513194100465377245965653397362574960291331010157048861606154048359882335210748132160861828413046060262221078978704220841983483075652379481796950462552015925918907216604075994280621860322600929201498232226814683685741628090222038593140747504696067596475869939270425238372013228463806008702941878871762950539560595948696365793906482171761876081446972924718802694656591043799595280309992175490175347569071041272305588596045161669095677938834400924629582434021631546274942054509891942759428161039858809500883131106117604196123304624679326908249774113575262008841238424919785847705710860973763713947553588205784738000377227478587374513100578717231804496658456732501682512551820258091145699870344822655070803412040197643829719855944459258013739083323624933701820061629022413215465645611032727002834136763586630214295639438961188732249797565788651831948821994443651370360289683223824620372288790448788819623420559280058113755751505960659523710345201969912696989500263500837972783910737989424118581977489918628361396413902990008425071759324003070847199389622567142512794331953216716137830684147525957350662759172729752490230178848153559022056039502939818663768079674111896074427571438161390199080881313671130393368176606194286293431791430360928035533743698412345261950495109583346969483587544606733204555485431836474486157561109209387289290852939141914565476529968728308249267347076061332748299514834199542760614223844345854657484212246966115844641296112968716383784011628356492768034213547539014859128913623649364034906624658368240528336097101133597220839811760239436529746955088975389447568103100217748300035817438285746767017423086921567645936346064692709437083562908029264065578283070602344797314418534223703843119609442775607628234008551089649879301102496612695249971686898320782625600581959138934667419389280477043926583215316298899854108725270442082703686116756023005551268464651018507287395686852735737289252341678531324913975809703435000817626240183237552014672311583180845425710953780895782393797670075119836974896873068267675435217830823503127764036616822647733876043880196034270424499788430825592141518564204585869571267262603732884716983582223308092237494366722114931723657436905766859859767495059200256842766799114016061633494682775719160941804532722731077193100201324044345275980349439078352037285602296448281421149148813489920553592682525538507209943730150765480090742212459644330724923843858319445676125887914906384379117205714297386715662005858966127969339985779758427113978393314111089042637612869258921161967035514075479670759090466886063350592492741699646169376637673427196234513748303780146994791462254265939084851725360390034620794146223831887020890622584721881890647099202079301961643128044673167863311313314626912866429389617695503158062429895987639132382486699504449985705895694743890938200027011235622203415000348424055897004218396072077661847912726746836671883917398099228766264439177107906278844226689958720687775645510277644985308223778006196014179697373100625828400761169331580352609399324878581693582806958114905815108435704992734839998898180360578267645542366097413083982029553839030580734229424278682614534412830430423196429898761078586957288648316292617809602038032080049755473274865566661579467378790850906683783889001110033624452698820898851778658155842220249772380749897102728928231660607303168328873342853207357864775869888489468259149855344163665030529355435362255571370224231763500580099857228629268539517577559058513401286957911279876454077146090518770382621487784289944692994576204803425270582154291660222163970659876413988212217888679943970977186804884613865345996834015420474144392746468334680531559178307285108250203633360238659139817021081633302164432659110369363096789917654846799547130273382277737145562248423139622519665217276688897274964014761057209636790818051821915329467809368994540392340035808802862711519741022196127268032630061127237182657688055226643391782278476260285031664177216385033938646985550485017641697558734687476882697722059851241696897722127840029190229085101299133120417428051559437948944180864208715696340627304572816463595877377560233559349043272634585176332358232840571365639271429698335990830858952355536244967685059169174759332174773315180759361498957309051084156091311072787935433559411940070960051934023284304173132763542083752811495565911484605297344635888321608414773094509003867125203815868465762334836476477692725009230521708461531666799687790219635800696536299081161481558099272936470814226682317645207772570961656146452265591131804388864287754464477883609203727811477723476908745183107292652874109355305889903041783320816274416594738340856167983678032976706642483885862374540809170545983449074076853648606250781731632975386568927877705945319227521693823945425396952705930149094837141824815240043229871376702366709190995615909493311942363370991751771293082608750208602667546472423728611565118040593232792093591153086833772243427113223518091422137015373000763971991404949331717268263299162699827666611272518882261290035870250682207481001486761949388568320434948660132368415893441592859788825919332162714634480664666529764827373550396172711550121598919940455706036220564071349094484779249620648479251020904223355689871513487166491307892326035808001175517545606640644705091954278307335441910903499623553548821814122436727503763543813951370459091960872676491611692877374940496898242979000492662364612408593828612811573089949974214253145384482640191402574178560088621412513771318911352178950087316877406689741412758651145401873439116003585258516692307595265559278160822452441556489192754155020284236436583809369370869077362098274879141674749555225610911115008429626490003567304072517192291200689411734386293258916225878718473680188639550320802381934928272459279450811755026824021269556109551166595285831398985429209238176334941360223254445235696074337225716244620568209340358543153681492586518603297188146236079745198954572771489943787833295790844322136585336041677251283951218294077655987398915129271159677580332237437253115212630339146320432577719433519901873114751735259748028019038350200141258946740962148357366620488833945616313853442853428890893208798881790246384031069760398965989514384740976314112987464355096171535203831944158858227518492507659031779159833022004429567059463158922693885229607139259384379159986721726133045745728540547295132772257820333712668759684415610840989060222415279154718998597642839553029653219047010770644906059948514982881207335866644749831222622083437338785459160058340144450812183358243703735628606480033449525355423968373099703541180415000144395826801878998114635212823801089100947798028226102335989367484018468419044968908704875692816935725592607777590383372204354021134875408236961579291520888694872325048427516268267271689898126113210775694669887703975436985224654260577066078344668839234135622037239684905643945681729618820363683647516799109454943572651946973948541375092168981567032797198669823988597194593705070148476345176929736911669234499266539912144634107422702672218411790146810685400317765108443013590253247766352164212200943092786350009954243284006537988073771190823227733626369021715411696332139506496174203325508373913650375062576011985765001238909807131889694547336316625329946693909219298937671371142177810087504051881666922569149941462993983112163675402125864174066210010517744737516137264365475230134984544455161229279659866445466459091443581743402154081017553760708097515786504684197123449331833821855130243808184585641325183143660443058368659756225242736203845699547347282545606370844457155854960917602989832936723148682570920365917147564654371520256367989895928722529603542985797095371584716414888900203457241032997690465202280818582916255054925312515143901645833909369012276223574884885571684595209588527509267213363201503320293279620999963221192945891204318441560262524535034101011509986319383331977975540267185707175456518796516447765858917776281711546338325677661031172055645693755610280061948887346917916074186397951872091008157815050835528802717820545500782747711491909564359807144095938182940247082561511254182441000118344695076544049583082402157451170084553011337388831314603906685570043238979578064209193490854087922515904453483662708875892046514784668955155055973019948606951113327789068053045889272994568320392181414216925221213209664571460617746933695577472807250716678025897403897933862673319906937798076013391041476375960351846556042798451833737747151173342191096548009803649039707191192532300744297934019752450653406970317091276234868186497930363933098443469940268398581165810848660395516711160258445736160771089235436769257783335939141312960096325196432717498006687022965180715563152984639867241200724120470216500689785718188741303112323966047051100433954764155417653375145369238540739604921263231422267939722025025398319601970850966610219967947851150870385833536198307727956224554058284068108228418981914838783369493147645707199793117122992525657388867135851791614536049157419443877225820613010201054831052148885224393937790845221404536812335879147808861514815542131985634095574436136267098495642375543424621888184424548746085900696112086684602900806989072328008909506990538965518121905523573639496624840046025789015352884891610124735837655384000423487606457756756727950789567917826203090365335789465114434893730136065529484868884931060208099977092668820140564975412627982150127790784156296231017617187990252028399093251590169211773080036691090212267666864251986760661542960280945953047864571342398186466876713017180987034404692571775298945858020455014835748917104026412653664977575021804266418608227207097673448147406661999675239808501462244739335784797961005206110295102402063831795018726236105149939950679731135720344822039732756742525858246011763620869641411960488786918741739954675534149850710442095804666913531156538570393736794063631508033956292579865409280383451962454575590489528167899107141180322939472070083218329346191142428130054779917277375718766347222652180952629563258182227131110969352569172798884566016703408477130161830254849263498124267336687542482316806892764420367861620603651177072230552392191984202971774415037473392821001680289185811809379331133994283478869147978438873488205130895893008562085506457348530455009363036686283993713717241447314626694840689757108439452939730899184195740680790644647784762318835453806792688810679007408054675598982157607666484833201351049082122599608975957527618502117503929909648475256638259499362045590601254567523546490680417507040343789099524048341274070746477499698660139407578049946697127225905420421774191339286225542925563950748235086035779889159490668600061540110447302440058379951743182133969615990753515035131463078387741726040375206681847612259243954906391282926535603258398586498938362695130232299465675740473206269799729587851890739877042877254798433920909560750378733249391118144238209294103782163027031837780422673428843348801310833551620612195744561102730207176461628034323490260018329294607423110240191826521222398556029273015887254704199230504205948653388093649821139863481435484857523626585482629245981830132517343492247474192974956951249673256490528434097000637175817415142368413878273935441606022569214634372969525397844234915123140545361013611504673862004442014133434123805959511172455570214170961264597108869035164483988022318077601173561282862938969065795382065910956850338299257447114686109462757832969744029013484583441614491491245445405159450641958301221757550003597520648643238385949386904423192954568101064411270605815441646956375621282677756338535076895422030322998836711496749352214698189024113262082402024311644287762538099516534822954130128916576109762124102998307644264569954237846783283548068805469687922782956145891640945895077614504939056529570147206010514275431685636927368335418801396690909602407219816838810813282652364450134226489415085534135538865720292009884699554315923641681607685861701117382804747829533082520011321157923628075371194963246477781252069356096941940091043863184537120725847484710178087713832724050322357483968619090594053412797178620228019948572569969998332971165376131309812714713460795464909382729981204638499458577936717028798879727136360048421852134233510535812885075117866820141805025749945698171284407506481519334353707519445009074206854280921140290892489180849586538634999580005109254420300846514481410150911577643110092948214390761100925291533749826934739850916228389304866061698727316914965353153111133159255526055464779564130070521067253805699945474251287158117961507237945296565639491997607773746867290491081375097108652210650190639393459073527743622815431322491804584985515006041504242253477154353384806042668903437090780353292824680805932065177793075826574548891978191742635690339210348781715525661361489934579879616519962759762161692670420222133704042579671478606499199999341015387309776596136196221461393814162786849251566402391069940908784417385056586630631698609535282448327929031083089420616242915991847401026945873865811026436739174312326715269760036023357507465725688137489844490072453959291757901344539610364222512336321477510346001312317221850775509323630175762880668789941243426568398528190693057642226911054094407056209608590433168441354684611719504075127706467081974989034755749625451019918570835087187872652373041542553497459507855447672332175977710874971517973305348416998762373791352643329358318510317225897781491949355491310038968167503470431913012953644681437757410955511300785878757244219346520494472316605613604703201779695405045508222449672653545066097347829245637730957576256518201194718103530069954749723030763524687374628023797354053167176093676663277102319065347334111616008814403782321686735053046270505064985607315386298649783395226462371076166103291109015531067335784387555186365645453293923565331540705928242450610380228507885579821539759975499477474655881595797432666998210112426020781101707159644280202226658673214762689975493473250944069589728008811253792114052931952424015065653228821585983625932422314741281970252663896247471010735159719879663940204347031740654331656746661493489679470652270194084559590868303579864773831366615375689019972267102352997350640669994271887064845276417564635032233610572775675896511013068073834014803742288665018576787592491771642776596909579467516755213431740582893727913564055732877582133347381610129651454615635942396096831979963503831888202881089327199861135416804530227279488222789600507521794628292080282805762751105185823229118505711774094997560973542850882565205667582408330291299026323079275970750107438409208361533285404922434382745461227125482641079936133962264330319770001395409869721904267064209899924836943684762799102536576669497968162261910651878251260152872049473309569568369479568081102036132705182997344402528913199898386936470438530174611438105780706580318442771520881193356943053106761802397100816127726800521427073632646257615960580922996617325960131685067451696759276763392769351994416751282891266813508076827022948658832706548659278411714621549332599846437271139514347579479072795991936552523329040312516733627708266883309000157974970341775668209020749193896584888672662774936770076871442177489601845386402063450557853377471215091954706639564409058608269839181790446507314046732146753907251653651429461824017200441850635095736441965928419930589031301647473220112687326498544397140386951075456689438207878341934256091397508116675780443352932974806247402381788886320114541176988227472479871540392205191725914932796161860053812559490640210862777875809759000330638037002752986924275318902205136274879280592105672119326889359223073662852127422003082961806561349182241347448748734695299611103163727966845755214063201795352544654653187363412965163242837387830338768147837751870982586905413921604281813516451799644147508682362104057918895420033907108505876499166168245222988123715533291249381795800037964417349386650098142629703387400731748177830057217521160882703484236166578521598028354082284149427993026851199481533528103022703180054667551265594360318112580720732944752737132017282525638036917086821940563705024366162504520262158113072055538313993043653688455890843453169838174784001234972079513897633273555445146828684791953684951722301590605231610451735465008561035294505826554169664443883119361653621357563962064247274452001791141349905786196255856990508048882281081174006311417513749426587579032048791824596540047305543802246482133820507122672382112928502687809975873372924646071466439943070082375372073654065695806663241518993973837510060007634061312447931521135092154399646102033627415071909800384834039118462073423563169654690975031294382957615092849780354460585868936226289680952943637493516286648126084775048633781248266469701320090957697124189574464289444088484739161699055855131937317004105672626379588542803227904239874653510125967821116872395921969899188921764666253845394228870167820818162984174601491492553188835206854879805393338073830881500056960943553787979751864591930762327911233036567798341125211157262654795673295297852216930818581751859689426096653391693575986576755408872268273876297178888314030192743480808651966345214325624554901079021632918894791221038399256388618406715984770219436029431202707058082297189655288193640573082233928431331568649410243317715518147792082046362312573812421062342047078928989949616362991353828382615062307054918391382589312328210892816881578161765851042228606025455180797222415165271411551158058106871457003735503332700620833692113416691626370760784978362752550602823268520402393855872218738421387075136885964921961454671109515817724014412899951199774607175431793554301921145360186514284565231186563909290821342398625265375310372312484487930197933230403992060656626576326916904334454668276240063839103206411547296227282813371451495928286623057683778089381929762408215665790421520229062368995632470553281775957754128033553598536943619861887528609868159147359859683444383725859836223690594836137361716728280065699270459810100526329308119797089039331322443988536520727537064490864996069140555764735920915134128567596014222766416250516615717460032727594513797915380738970670551843031510162917549572205020506380412922201438958616492174999127445546583095321769389772317272729266649262655844042960122955585149055388714215677109737800467814366211470962901381926349884860865209266200671144530267474969937476230786766806663737337730501525653352285938532336243535207223657141599869530278536712314079854745113991324191233522834215254952757650666534594095633386472907762939538010043724846060820572368082781494373698822456581675344050890925125197498903598490116221827763617571598387928046660782116735212712731947074294836247740903038192397952080389063963783383475782607550967149200743214496774243050852309173612940511488792841329241914608409944771484487930598143733885214283338969592432550320537265385481769533372389564989862812769752770284260706507970991025459554849721817928829057027867841428527220677664486876274837352920348826973059696509935646279989652639186775990402486246861891473659383290474567379244051502805260927581776218109359359853563790472474843681776374856136854110078683424362054240642173760301992042752720181210479581323220190437000017382054687988653221335486692574995246353568722902871152213352700938538046520866919624405172186232070704790001519461447858083301287065267007910659756278985676311955178501460643547949339482048951800873055530371786580465105307014140010088217267634005934570450206631073752423423457869510976830478528133022298212929665018692031940662468183616713504173191259834327091498904950133481411561675713565063308309123026737151385959719031751068864820424912010533538080778532623285891380885016865506710278232901411198045366781785292127131227434790748068277793178720243655029968459988332067896725235394888936009582503176973106755118702905492845074752855938724852528825133629860160396248996726557030344302298569121739969743242699045915700972757455442406124674407073796123476875935723578511324820940835625552069004301344507081415656607462991951152648026447207827496001818982337905151064114819406426159430861280420571069994885613016599711466093656095477669982343919155423941449825853319130100423083755719179084963990943990953484823834988361211712184470001448943080575185270687975318441873521696061267093950776452812991290273209344237703748019515108226830553878690841076956218740410262575530649383288485346429187818272691037679543487167240487817182746674289185782980642510365242429631124880711959963059453635009642189805113406969736700500127386827131094803677708754098042488766071346213533149240316374688509188659584804258498866223338745851074918023830267151791503171115704273328636975954736941286521355573153370090183842766638606592871016494339373508422933714912282710063492193622207036786972965763773755222139076946014267436564151364021678089765208405551876445764168600287118849713474951511657940261348706888881749673663594549041447919825160098324028032870180452433164380411408750077799108768747157846868790288966052310297531184702349470450734841029872157728618880748033325359265596730410815983788975896134845620476363921774065932934642211211428946007085256448526861090093490690466995607622496979500984611356707333627653409231478793219208443745419754816542977244107769787571311539209191290108078258912704162669641189068348101529315057477295739655923612136960618534343158079629067681970730375124749059190576293658917152885251441108875242463187144819204817019185318412534208112423482291107557341970695383177147120394945233315409602299560569940629963037296076970446563540403556479631346812300466171139162762915302821353017379648194711828322946588408311282327994122257696984589252009423526123469840354158215552693805060376675342034767993615184429775062219411391580240933426602454709473273390057782871570742435031064110783909731894531044039282986447199191004896859665858558023422277866675190865231406113191450623184888441549172068925744564960061865941922533795263023660720400954328404475973319483387809726025937910365347343979821368695193417604963862058650110288348010189971287220220916264065019325992051881144128029801002534296644319380575777722570495763871998317664199271536494475988410746368081661878968234240705420502937995657415012530237687431303612130227524919395364305429500038595931716678535135193973669333856860427450931199730624179236024215377410076139991561250400003270783085299521960156231911708675831938804537696154772644015504319272289776641306135720802670242648565335026647692802111150588733552898392433461904067965700657563427982643129991283560476229852312395340915522129763758189380276889803809127007326301440074912821032848948632852029139913497670712591090549162037646934430689748388550628932121442686586052808147163625827413832223124610799390756795951928136686252170152122616664780385890182398111468472727207072785790042731342794655765436575065337846288160482924882395162194063984917044379052605937535433236472795270597645990127816067410118670851583218964579590062510596835542162079675262381873484968192697770312736084182558361906519174691101261506245908799133987770573362132177468750901986479084756922177710884037891716423289059562175912795592172064399128219133792705176605500087098207315880994224130332023931725530179542182495039444186786263714031783310438014982344511176987581284977957627268377962321522342140789067794460807358699159364196854295747190962940032787811199569230978592726627846501344375600233543085674971937932147799303640475320056086300017761569071480170894518311589490146650391842132934622698298188508110571288342819034445731857856649813303480054409884323126555478273686951053374176188403094529767892688407134000417384306456537907158585988870510165293632500899588928231850706529374770996794048339807831680459620749558011803130294689981934155985828141713987176540342686639379966489882627903211608861428809360467840424689402058739096317739381861174747586363806752389855395230734499471641240236877271678430923231060756438698966614103495517803872358494881182422372338117160967235561079596383164709049804617609123170173653585842105259378853113344062387994108023690068400881161070831423043436518735422767602448099290381666208074343336162368736050432858680840592504585574696395170287723126669704259907813900755342068809212652216077559692089359731356871124713568388373581631818349911644841230627983641509285630051995049371177849821592923378452636094211658731505326255833739450416549617073700747921012943436390436744243325421603494163747723977933767024998353715709790342603006185309938871093064527785226113455398039877315811010565080562116266550408120688007163238726237800974482388885232387080805293645200662218804966220811350173500943894605706382685090456687552216641247072493484015162138447824947456437907410298799810711675794955453846822055161952959134141261021743330447149459329427146731536829422079775006950351978210027155329389889560050122767816182803391430387300893561628759705171475696521320493758125676289769629474913015422454201163730107464961768812822761036487840290402475858753126244929722462382708435921435149634355317125924914861252221897750424615666962249915270266352395481443406056954565985016986797315628647837327360319341907345601012522998971000171155285228852530992418364301587126866669275457628256646758422299353619472608069603567461639852536896063379046539185412808791091691233445616548849229626108466451947456800527535878664116650110779134026748962379209997121606314067738095044269482063117151709506096332270177790625282460861048155883734397371267309719193730987580113507243529843986081216762678434386005376042734515043107790781787596152673952020378097804796180789806876642210801933700486244771216030732306066589514607537709142798320601505334430025371124207330294400870916181589001073438384436534903558183639232934469991681816988590734310439152064876167630254814078726657000566463109877112503049901076330258460289086935288265443761483736101180437902366286646036685723036823832323278547032017574135062842900043052742192737286430971188402440600421646280125153685181214512512340070121183573362960456000823025227526190030892448290501811439756316828062671413109251614486801252448424404344556206845717898303066720362167039367731499510661093306597047192482809639820371868369426494473733246828849471451111035839742064428858181074920313161792471180054223996228334637975304572556745583707285267798264901859791475254013950526652212525370860892811555181355305083915845567077326090405940455067289525530054343017867184792228577097197947695919044701339892624917524883578223442620471046330081334337100659873933336453553048564396071788102419440105575895307594730255804755178774859272887832450943714542094159806985782348434570292670312486984548960887436220663094488963787595937574082666920429596424522533568383782510642499277671299327430524217042129609511227075156413651823450576217752332575194006678429396903130917406637725419243258994544569471800736507789119380946515105520427633243777454273424032380410260713961654615767676764726342657266280169592353123132216513815049697206895376976773211030040588843247581577608828567217476801485449349459081405706274315780295156207627520555866783300138335639697400081101938744979312820879168973998964008696964564738510968045813001424175398707571975988066988778248212919267990070700952809355913428566791451754506724614389437626638519013514631448873291742319754656294334943076756905958650891858050879085490290424543462690239937873959095284342629891720041998468349460535408500164271976028141885074669394816549373464828378771798147130630110329549381188257044213260726166797209320473687639709288691067754609468582946656435629359118375630878637821135653697442449153121788625334480000224974651567659134007474483925525221743215574326464069670371954034661204330789046090930402053055579125378455160200699798262214939776384376712469609389784398792772701498249905519461647893866230229965345577131304041463500204405253715829890790085786822590893427651606863825509894546779756747359230845616328283083259809935752637730462626258224316117455570531669743440327788292270885795300373440850506006747743580364482225852626054782730581679384953942046368071432826891376461109013945037465189842271173432089109559316361814338533875577831064822394792798285194780904239624919516136994094622075320527168070020527330839302798596708768917199312272516518622012359967733765502140944950041334252837730072544702024530099537954294171569296563574588620592009784370950090432642846521166785030988921274817193739927583876981175427458503491515149471647853071328855416874022399672224024691773178428329542813667179782013405803090391013255275958299938948523074581410333698806089438133340550587830610301544315312617992228929428183000370360757140056114415279273479562344247035116260456556546529389034088700808870717946142874367404686262944306889625661090663681956509243638197905648774146969949066575234739333562228232995966070756575281210650832989756044307778039867201845297828174464061169045719532791719367903404548330083473658930928096590124718901337687487448231566644910228092909932732277989714328591534703236428463046838522144670877397467856237309662999232172917354903243804040662322998547885316895161118082043915864494490471059986048781053432352452700252854421089824945317285553800743709266425181072769855983891066540985478666961377139624373166348023322145735030914339175345177346147912069768948308656557771224923101602152328560765544371718719159609749544316256509860722659033997631860307453974024404845631140334615761775768115452641856128195544895197064138441071801927098194855714958427833786406605789790437644518537141116773589250841445064683525986058217382405494014024531506780490679457396712562808801737435897409572036879004928437207332742557364342587120965405740325324167742491086315082076344939290404117691150509221484575396434165970497871433009330274382156835853162484366152258722058100745137683519709551692864295277515113572607135889733362064497427395939548783815307576941090363034055728164077766563512032630843766827579660002980375192137306875129274144250741450425679092574430713884468040906485904355765500458821750072441440928705851645785071943276565235646896682815236045770423165313847526322359989438091429260611025058226744294376960451214888089319007679897790550106792270628403656667084095109505255994927518514511074777418561665526572975210629298780408436061327254744317176289311724437328617678574330617620679423012081994941918676076577091547470660426416978925003216168753853018104037260593501641692128247171758770555157280794040236133979489363747454416779005224299480516281703605539842811267609307987245234337280018459950922466319109457162600915319080839356057494371878784730252348723349157741935535300212336599362092059345103697608836628618800269045424981437410378496257784536649274661905745183429540809816873317467885539710621353802411540695794810447262907431267785697281452839698262346141572803548579807974129108232725883854080104863928465850769474416017607521150406030638279812717991680407587710001752772386260165035715989676089812620874023618082886104775739611487928715744586036274139330961164441975287607082956767559623532358727869502162168532281501084894529107838687085118244673932515853319555097457225097910448366766716233873327284990735520122872226820739173630903838072142154819713099704187237188287906225882730905549270070015795798392409239010542421139682679789632435784090575274452240927548616126381323410935294854775257881161899388183693410928671881858729225691823494132331322122730971939461616700768000255784456384478446814477428477759238613326279696970544707449865866666637393132474413478689490115383344478828934955659046157381796955639486231733154718932452956447408088020341439832968734618253912687339950953493455545845469215694448160642643885096007237746924403278648340749434063132223153718781978542687334312304188866930349372715796529612332085669617111955955254559604579137040564854286243213743467750572112965469141162897619847964114722043148939092339373779133332772809651935477146392177714157291498761366434844339621779262679402834589295491371969425669832113928079372283951850059487549221094243772735401244753222395551616732307909163056376543619423438978890372219669447733829013105108861563062382113694444280936925791764764764585181108704901180854102654751907325718696183621993924568766145679159293629778631889629771125282140921458382308516992017127942003927944287767798713960146127575955071663726278328159231718376094069425821828469006465948458607495244126903392475089882982513793206351357580862430287290048035237601587678163721284667861162020584601951155417542164803461942366037003329875178611973131038817990556269152332010880656021847463406124198893907002977951395802566073369822786484468047613705964382811407202795698172553025542008889458544465639241072685500154405678646658002798554093383179349111160302447786222570499101160421627920028380440106779545716783440828526840893327997142828678402407612706786083577709245042734143305481392709588845644186897472291729342697312410086700922249025032140347726298734985073652963102658460875922513034131303248039585657296507018416982754671735627564393315511763863145250511227438376117077075894624330861489822642295815373478144298285516010560074964726544082991695152257095778975756371877896747811644949696047159327764296799319699394961583440979848120758183986550730451381429424087012041372283005655828345284908411986365116920053791974759998770934791497728857242482108904679381107988011438818857405606857264602572451142787642186148035174348828778197142170032167170817485750275201317217181932920201634750921725447017118693296796529772249802080317136150033250332604277988019081482717577405862997430208182588147361861291805136747613639327224885906860171111112025913357643894617989345811028439742497457207332342815188627744877721467645650465903623004054493170040573812205558631694184216202405611465900068947779203027724351363106619564117058564010327559114474097032559361267751653244090581601607651115811653001133354022335322499711352356520754994530364657073471874751382122455310071549844505901283135208146466672779828354971371422719476680402538550620541037261270786953612997143424427862193796523113963886014465061378948835676308889130101101793943112230384169316321175389639078430100487390677439747546197286660400035016950253616752286769697100925922347077568185820352848131464120824090171898554217304926893612096997328598593821408374635490199818154468849573584730930100833962613541054134725318204769401049131283799222160331281284121012567101421348512083205231974005728883312342788461154374630711843600305732368997413444521191469982276827047405681509084784342710155471021003756179041086197386903573021619387346476475937342604100531615560588956094887023221325742072484971006702085821885228609716892184713785769034643593623795934154091298477560291130503673299226898491335751625073615060453049194337982147756141517390395182960334966696847186763697110990469287700032147504472309431595227080137710651137268309283908989071557606697632169346350792557759254134768831791056003986069528603363391448766899372983875943473881008122569401533413956025773416171732869299988864842691781899366798744714568200577557160488422606518946195165128280188297294560694078609834428120559799214833920749524985757169886589585061023615498500234617249191247105071309393384302547640315388816078736215212901193136566336526463550937980960222258619645186787605068189819067223493362882614410866866034509934729403890682109367737382935859852168983919186850917271442437387776548312400922984193209051140331146260616998150032845141727740989200875008766581753782453456609199581677346108926553345499285115576658227137506635894787042246251824090383342263900653292059070585626366683399377651507974684219089041647159840655538750075513620362136217728320277266192796309163918191403242740745980649922129468968327955764568662952451138912467394396426404324818602765683678394290316703270620726573614075425311265004993648373228116342303450256732010975331446885518523219222814244286020352766556440605033561572402253509756515266979691776369083805759030351747048629230256955531525342573270291986918229239763020264713623811042337988127591232002889909054631281800059465076195846387416369012151913666129078001302288136563696102198249407139921184998600696459179017740151576022653675544624112363236734804405342376521615638460663457866876589730405508115478920272679850793428492625873221035825183523133713383010113059545531074691475469454594406241716494403113949204255343820374982440616266120760626559505115871743870114521207004355095495258730875910587245235213239069147152196764525857952963975263017348527630161381510566118932115872864185360448885051663159521916708022621413890910432756053293068629179277374294750307339922863482203543311801224936573570703207494109070007117409121332011081603402355671628072249865264992041889925383951941497664635901521753453851528543284928388946368189619791594030208944903384108593177883177089564961512178758679921166058002374651297511566167161766415411897206857030452157467209031637864059541691078150004670710236894778215809079781023594460245617960159471702291134241974908877899935594397586832376197326686631871111782733496891016502713418098284321922804374409396276422630602758446657125270215108883099323484796733971874644795517724140905956476463447959754825586176654514083733006288121983908327788663355339121375366599683424225971183734929627395509600355915041178112438209105005480297410202318778938775454861286017405697626948086046387263882659415032871964507423670536472694053297584869181663559209157719072977757833859805843858403592265647083894946900525677874279521253018506240343072777328293445322916752852921898181569314031490502396116635214936103599690683380288829796956178818318624290676065193969672025764984137354082586153218046858108568646089212259364051516347285034816041992926097587237795342956187214240877523418280036204869256938923312026793076949691943123549349159066445715989524067490457134173699105395675568606545308436324954629606098359647609771064762186815484521413223386354025428932413980702507848803735277599598280414470039580109721166333762196545020437530103488104594088322286554206542682052134162303926997157230806630771852801340739863452862261806055560348480223562862772892815097288445288039480670171770891765571408305134953345830968375912796235653362191903374350176971487422740841077079889470015609411561448230811639710670948677408045318109356028831000381737711361422724017376044557309633552575378337506863249197253363464807442913484128857364679399438563065771201521350523859107252821155989984051574114665012845244846985295599757834554517927727940090035860635515715352842953086362077849705519833313797325802455961516969041463545226485504656742488624306556918560190942470854271654996074948870636157117457921055224162737784964442166625189763542932870904947054893877589033506086361389300237490343224794075300026517517664958780028316148839868091772358243972627210467572577609902837181633928358977341147223396668399970627902872780782876408712071534644398946514543542675651748928584581064118806519702093328391687749097512915857273750923923630894734859268024502524983895002765439398816493281620063542235133056295673414881720116776009925056942377746054360417056851990548627875510041908476080576968339850431872988270760335177201202338969858878080774173300775952081469940740000561519677637628679778240204295197679798862847729969564786611942732851252110696795533964810005979651241053515296507124200057042783714136310442784006341486767075108744574146739518994247373990090245944625614749368982069121658692144055526705743881008985583138969743654499170908081398219247817869476451128635490813097302990025769733140286607965300716214800488071878762881144609769630007040585264143725992353988128713943996426513598371573117422510182283022428084223355828842514963541869100819255808574938446349644938311828101413003859112847684745816872937014133187561919289268081281585662356500313865563724213272672747033635653342435954633266129948876376376327861992838584675009543205630317765980972450714900613620358677863677017220972913654655887928825311275479681071561060705326542632217036983214561825059768702263544703917387913617971358466983454920022740240123606438591301035428963282366041828122064352195653742372824869766593205592279570270351918721565204809363296119743442248566397432303135765035732465904666801108427749448459928550379507745985019377958610049532991182126416132053642829796937477987516134070243773035675327013325128263749211628055429500003203963814446635349574817251452024927628769912152828679517598201140130920427832013282053454410783268397361767021006752646871887670308186463666675696821851934597544880741180745537947636643225743759419267233011599850852465974007437693446192724629686945433285664917068406268311506689234970996232978773539220211491819378781243780222246901853470699168167084390591464929430793404969155478373956758633718111122342039959146710610961363884258246285255015096356957534446252253963149689697529306457210609279366904599584074983462898117649676757039974400161868570126901941719464818390826439774530351058312981296966722971448586098584995039212640154579022336049183248149835575794238299947434500432365018541518326644942586760144551059235221943810456375310402586145081739219716436260242144050474388011826353711240209807298663438444524335203595742561535654734548490854720651290429578151214084056569247532833754226155294747324847783586223443433826878790332098578444534487378836486276075281750009329590245316076800912330175243189801612240488124919046052441586786534186324917956498462295863968249908346084237796379371610992365214293988841547052954939551371009659653979770732990950618781184994366671373034572932199774320640325432934260438123608144699810502793974495331115751808252474410075299634846867014984279065513190490620378292939141103212688637264477280678867318389366281706879631812311029489895782241927750727450356378695835515236298323227220936542682429940597688411175681231908442026239790592071114391918272385708771560337934761167411854548176552197986124143257522956593636888908349538062949397112648156956587600215400448934357799893791482395303126205701831220973818438431730047810475409330549257921401055441276763397614925248245161757667079928545732100854654573382134700151795058139064922878502442525771684610231081294866980640802622453700451541632346056807825847898416108213895241417328758959738786069464551471542021732269783221782413022362503315154446416613982629175392244593118092297375115730910440530619092453025537250969858909073898535448331922092105210164693443624932067758700373731084914269008766748440804498813252854149459173610313527850796166876519248898654588070843146000130396657732972208699293873361835608970322955148377353033108608167593082553929330541978318317789835131984583343776673834317061262096965832626893482821386974718863884016955084914334775797276410152555454463731272602148973144558094359967665053969062787362837243123905791811804297614745462389800761168142505280830621238117382201786072571514939847630340155227057700077277104188204426621194248299199524056880013818547558173248601895443264564145692906449537063755420688237020164767924755863218573115830337593281217964770637071983209060875309544477569368409642613054061036499924279288975922496317155642023546406005147083757373098694331171360884930150798486604939531185587770913487285548692749737186875183400325217979865505369715602096990738936781195061352196359116414573003884538344021595205271460670683724894728006865477261811946246758969641114993948184626296626550981245942946815656274985730832357370610575983692815404019067756709125775087053008665622934201550052778125598068969825202373504314573720019460086850678025407467195925417457260808112681653195685856760748239016080481086322587894645058605112725626529377334102032813458136891603710599493516847606387132538167972750615291486237278948333020278072017677651818439407337095107601695204279987713934568459348468748467588248454235600098676313671080018928189742890991719266843900041906655531082680319188363340562178524147027376193209630840453620974001477698414067686596544759716837360562642322603891220274336123664051024550623066908993767011982601415945551408648458964293113783194715680223699979208816177899605338429589933431046029374851054277166466682815797457840414557803962117135220678994740348407308194793650032582761509985555223791970379421002468393474792690007461285518474799014519857806359543547487775041749933241153402018122070522907055996718907083009591139953992872751706967041733196276134639030373265893282478118190146002654412074597200432928484993180362789611849298050054158597178719759357288250871067053120720218828881678807185183168024932695089960407632880719009773263046518606467533308383540346517397643911687016962339905065098979402399457983281914290032191744144329927254842652882613042873060985429040069104784975831481991748013622747672049455033004988469797655518346537471187199204216796282376114457968884931018714825759692973471385104690472631876517568393953562518023187643205257813962050808714330940210132738635343315743249999758450254689276587679254608199658606383894522072883724215555363902539887494177990866327617907812643048550298071474575995872570493765242976569044308185872411507653781572278385120170573899631388210982275726982652225547231890524680845984268752723056032356335467030587369567852634296594036194791414533352650715844922842124309770202278448318351934810109558195756649858664303756898034370819887477162339405725295007250879569669543846321845553853271431985021455042659037449588777526994168417896245840396952203955640035793347711741581970441988104889290390745587480562923224232301065237011190591577124011921733412371797840288761185051074012158303799042072318042365511149821185865971193688904274857361106300497985402140643926511757835178004081547180113449198575096116143416327513314708130710628667262847430876832812345770567608658090181828771052618782175038130135642001115072804056427989861145646849354244546454284273837922962131827257692067433494746375444283411131751838274198582092068668027426097803292692370326404913718505146739097934611099905832109678834123965241289493320250009626974534263554087204496846747617399183798901782728101077273804175427413736666011464493744078762270179123317784809256553472677154626044232929157287983962150756469079653605606943208393516961859592137488657758015980761049347292765551809935785568539702360310357958986734117408771052612826364465701296630111750861273381794793508303121791462970041565470500368177868687527264450472755893314490398382135332180250416466874356779604180779183151385993497994946236153062279645922198039748326687430382049650693676630926693396060568903229857650222914278563424112794582307721302798656723094044266942928955377040817514176670528720651684491595183231313415342949670924217640562113768875761033165895476285743528890969418423692830647283644364538736149983859493360360024169466789941747586614438340475172227611031991534308591662152564088205546943646999456486572011777772445425303316745542066229265032686175454465207108844553464348249170071757855202182172017294484617282016466344714660009182312175049337686498110341151932111440288868720879615069430379493081820145411338574666947660853340694947607429372103252749079608016630767206667923615253615425655934246704382897631686874201803970348261753309304059539452201956438823318509325617488726294400067268206661284162491580223862433491392268879752456033755324793533321822209829529171284601018394606354710938628948583050622379608875266383523528613717176444238209633593033718072787083346763740846800427972757542731188363689674441570606654834405937103635982606019404541027575815367666285262563192420463534939275193552348955129064262276056709958276553400993291398577843569935439435600643067668953427844798512962029630983563465939964524997131025594530980539721947831726793179029234938960608703688218685299581763214972728761771249040161854578928440569073243434678958480062826788808739912654815292792976428266953668825743561017825259577668529355849840018115228883775091246274375252078355780084420673984327568060074307919453757848731573713498275890178895148374210180818627896966905014483291742284837337328135921660976280766076337470525915700364404913474448691820649852193801743928607891114949588238151395489208477613921830039618681084434300123872851463452347726414549099435323916337089156358427020702490520490383249436105133520001697105430917321910234445181951924959323441970037159876199623798513142400780859068143788544522665859930853262316356986487750530986509142701523947177948249697256967461999624689822583315972412696314912004784606590152485707721227598552973654977033125406555519191007790269610289764344680045054715881512643902118921831736345610021158574654399509329854807256449550684574349776439249310190137712856889271548345750258984424728069911759729763682045693126928548190731796531367061262133540257235659594320485478426312598516331167023949262474689177617614524715497083718495033485424824331333013103347485792069819698147794289199294227548995081295771758893491130848550946202315528521212509838751828155450903598745859343125765042144667016413491206717619816521308772726244643388814102086614131796658142060500648335651924583006631708905754463570716158179846449578559352424624232560756459288571282758777004815188463566146649133874910147923069865694679235259168538618038592499646840721805852996268635866933961750043002803437567680545294952813427606327807593848017058170525785504478409620838139762189383147444910918741371928536380267024567997355424214957237941280302233997709621087473020025022968076133819025443305037461977106544044825626746943340080951188073850898668495063659231160278210672536763575477911673655532749354218815864802794764202665332152656563104147700083793102196338157901946042846579373325972866197292353173999417265201488523237273854525498361095662227792648722788883032846479193295115103855443949518234363674752286830104784077237697285473288641546833238593715625464234822962103169033674318498022728610779393488853921702022124013329268253722942113115350270007501989945459053775547687351390771582367102864382296807496538003812651842932846376932060005562554617738792877821816389576883720634734675094830641769339663933329783828755352136037914032196717114204908901379576792909637759631455290921857893151594149347390538732595319216136322489759851931726722598060720453437282416256899489587800703553642908892827679544430394982174821458063330981444893206220283054457983779803708294468492958509621688561269808530514813250697015517627993626450746999993386347554505684282443871028681890337947472111782267034735506078254275197505946421163748810295393979850737068125684182417692030225319744652362719261345470988745187789152708810499181942263357936472714128195441527140158746333057728819995677770042306355362897571180703869858271902691575383377397965622712353960475691806052726178690473778835133951418689828732606850942378118340723224987990967147261623578512477896526747470270535291114479362446102922460011415831136594510310947454817332884508885888459700025499708989140104551943678692605917030598448090587723151255121571899642431539036554823749073996372374473990750393609625716622870860108393686898500374891399048135767458544542435544286378767061342474551685792839633467972807753547479046247356297033986135874743233805259314990753108115962684004217342348166475229210201986326573599262986622353264555425651643512492462650551423086295769319072892813900275488557418314507561199648766506165319242603578882175432474734165597989276240308754112539184876032536659245091933206015387093268403171255906453949129025245549771479051332994168427911166124961737152366730433419758084693233194530756977808889082442982587319253887076960177795406974873239606423997177437644958258257263511573937065689915044774398218830973628488627152721970480001347499538743764410319665111351567241714324609499443323476373602628782504621727717234882890297448246896406022761322185502370920580428861151510599291691468912951383628944622371443027470855488742984713095807948208694263842364300264868540745879160773476510568290519850834266328899430863389967532616792495741000525686872413282589239294645752409613262897653146537656038527240329021239603315348562316003792218287327307116594349422543731952104008213449127268524519483588425196070192430179248584544946988263183553293789905664945439826983276808855413424158502189582092458574361985691076097152019567940456050154254586359762972585339075066775436361358894032817340487215934480331609100385478558287544869206831461105614594857214164077729190445964001071728256825788201135241943904384494234064713990499132424462345693155626624372268459429578343086809990927173599761917031339097368372125398076613742979298600166733223335057617506901902978861120383599490957563767503347978314883427345079682484290324154356227191476556058823285966267889001477834251121575402687647619201667164200380443941634159185797889104154607033252405770394640159890352053687981591056785970344152762737376681764918720148213124476217275512911653813250110046827847743084892217190523392593983776611752544742812495861675220829981932485136761411952845739109190155431748591181091222864197008236706367742185262563510298115968390527201828292064411129805952447474643979971887809749835113454960915091710052569118000714427866360069387236113777049689646749326819879872940352182202924704045062988764644932438623367897507942262419907241375888284870768819253510224179059505325646433634907323716612646873374669665463490471728119871972106289175179794040853088916295076774634171860391219588433389211565274182972823456665758049831186542693655422326710323582612875930946976300520112646637339618256901679671850187792731092808874548501965534309258409850308953412145071899315279143000832749754782525410915852920492335788647003541873459429937635443950607809852835987855362797273908810793139005873515867813839014671434145766721058333154205042435216369934840012850709865668430075212969715384517789370934448803697255813021808644571268394074594811488478643335087158887246809453433077433261724135340437671779304539733433013867320937856611356979763372057148217397075816003623424041386119282703438748324605811089134472144656564662872904156497440492771362332028178345635457015356304636170483419036424847719542476903015152544790110100783037691026047565692864585968705190995044838244366640241439002213735788461427022528735779200538763695810834069809062454749318866445474596010723137504200054651747268211389501304143221858013230019748273209573787251242165180610628691901847955281197850770453870777423166629978166427143309465635096614752636701678176785434594562746122921944185986675449360187051225488759276078910870603512879851284490285988939592920611840113568700574391939874269046988051704545880990591204039511422316471772837715905314857519751164155264159483957493415502125324673896192543006377969526729619034726593945333333639250822606209861861913234023847334698863039803323208058662495473323841679754930242727498458601556347894410172404080947726954205537938331668696467139477136783636513751676245093360995161747770922444236570352717722293515500306506702343608279976192262695218076261160851258920757826494967313982812626207073981374817274756300376018085987545499032439683183705440641400776441975978457117450064629987237536766784245236095986546715967036413087161727863507436317787601656097254876137152076849307687211325348212055641233644374155434592432080709814652510069526614764497629540588835047468883327710368913595275608330178674015345254400358300511284921485561276478118031954555156022987297777490212011642296505051589226461355596723281816276777096889557221506021758569761660061457725029540773014324197698318269931943944117213103588820617953486952582110643961018292926948964734802579938099558105472597127059651410845809327260212336112607129809853292401084844645500557311822793860356798744147033318549023738681549955998488026395909998886247630090025778184354937262501623145686850193529784849357502264968549857191381416473056718443339839279296774993086628666950357323748658820533386636282656977782313762826352615281135053101125692613970705338405618637013116931337778308706516384093169105897037484013962684759231236228083298048582042258750235934893003450466458307307699564538684257482550710061161697750013184308197108259500930869707664248694693734237248443681169648937249861946420955730028752916041770196686136147369992374133598386681781130191037080625346298364736771357134105772605167753343130534917311279808282268976731251856174584464444790263258481629048204573563924113530249844237517630454476019292750696704075389490557725569603709523265740756088681506077990999770532088180391655431543685300276309058689281180121583228488499515516892893886437445821696753884044194043543713282023014841227124883465509330445591804380799826705898612221152934783581796719986052310649554553775262805293004379576372452904385201318048442196078849609725743892826433737909708021698170640309157330413014229582821389826862343786522581748925911105376400826760062927574877128839025077425597536069040587256924551936982518912481783816500640741085071573644040466505498034533860871288468802185341363448393805629872035353338890881187837984470044946079745145271450568371753819883002262588394054902515576357734231401658367924592774928634379810993423644294491471513030312222355940711651069398581073688891575689112406619220896481135578118500000019604626971997946899924010143837525830635541025544088087463051900935776289925494763254832900419431213009999532319317681768274923386367252021048118235087944596453891332249543536278794403619993951460083706151714995387893757374626155252866207558881553744458530919156800961685600397666499494572769125168621976714446357845715926094498656149830097527356667296647541320949669538169726920992097793799194354279219889974042083975656566895435115537351903385083427814793155983869377373163411154343313444164816254173483606700240154411454620399682104373058935546666018089774738393259985018681902776243251672821879403652429428294983433879954732374744021378273422331981605324886312727073164141363447845762181104159808687372064568323074875422606882247776594103739664543114847873118619633436026865150923560908292853781753918806886153231748778688167147188446337241205149563038983122451345906710641094522195736877795910864779136206208630819910701760846598322655491571958776993798222101927778940283647495737596951971413856379850558618959264530263185102224266117158482950137891570027126289321631735257869555369557538519835778277339951749794338210130706241336256468111833591600909623339090718511699330348786144070069671080823769160572483067298214306874797756741869807875073976444207086452194095221766293808166379370408377525401357892145064867330339829078713950392029207875299636265264857355799356346273816915683211800242499296269845687098080398669825678741048604916790103600173902534956355227632298128911029673198661633550920704405164687564781755476485899969665285436460647783384623795134386570065279946122913861957767479235644902527723048394733223499108936335831403673949415476218929025927491037056175149108199237805016470395519186069567745397106537013057004446990091173474757363121892502974301659581057650381413542194431273378085226976646966132823378721184402668146667565230402950484351702452405950676806780079121167296316330407859027971138733575451987295252299740967039557817946152268647018825165432417713922181315083729166448577903060095522996748530682273467529171122513651523694777474922000613576259601910026496103198716343894879207753172732421358369320914919428402492653460149208735311777888082395890145924234524678072577890724645216193897359773487497456028419165927782908178767117777296172054384955586083659827564302627180966037119861420050007545412882787564266389174947803395616412794254521732774293451320897723887154746829150851859713635553586558241194187497546299350779858749878197004856756186292883703887167093990623809079843264533066279464218897426014596944284128268553656711270687304244311158483977712298226434250345174877586072874041500038518418962218277267837669346207107756784422216317146596093171886893060741172177019229350388822301030290578468869531672795094295961077806847725927766411305162548926814888608030458986762534990922292545129174925742196176438497946995586140644588418046541858084961709511671848456223692296717475140255561898705641582651950128889486124854644336473807482854027400737362893960854582161898670530639857312397257734722341329837005858505111852528852984612185133133707921712929858578023629179246975700360683674273358299675845942634398000048493881163219279711273382244181419788845846557016157101374723731660221812502681808278784411541675006927345582432785559392030318199929803075238094581023017608490314775244836186539702807513355621454553416095971464825042627178530762995675549637522937169244246834331318685193901478218669890010449793205441821050032131361867744245935927884687800560330027272554135995334521974048528079563494490900719439291707201608475061685769119233221532224497537433925297807869652644041245760171644465112650165151883428803123086441378123028386975986972491914912794997836956074793854137983898715015218089127462710827970969694278489104547103287730112223234721390012589390331044089472125810417836405290357470267986806360933163522098153231617683594972618947088319430270714972352994281170562466554972164949711611119935456547274381670130971408929107926650009475576672514851690867819104114293197435317790326737225054796801778170030009298763677112707576424175957173082217726914745330593646069411604716494465178406235162844903011244038320567225875494510807292302534960519690426795647862200547182832044877481003226288134080180188657278411186330307388363186479512001781997379906741768599030555072867334971483420422339641023056707061997205591009244268778206551782086997231145479244254814537909401578851844002407318594859997753841378030658156183228961394426490178293344241173155095090773539318379757609188793439032598735019480113484204886623117211554550671072822190101427293672358207675492977782846113906588784356401713348510990760394989856146585288206971241672235413597814128299695384448518843320861357545427180276392229282233613269173060524211587261976334548705373838139697880224289268675644190025005383366906338481422742899522636500327817575179366809607935664853841130693333353547408869993056966370019666268955756629523557936498188049405040684590721167797714587017741834612075263922397010743215136673748891311253854858116035516594253943539487853873416778403568623579543997374117685433059614668815915006666791634887392607894083068848829621772704035238355979285693417900897191439453742959173030100958275035717989603824279518827635910303618335936939248687788228887879330358581980436477226710599555058334375005007239931771023403699978114343586292941900974687156704414123303233045226211917969656935138698419313614698903584455957981166003671057837707122407441882682054378033007497190074556486626891025457518541395112674862835455606785189862253449880990147735358480078211012169105701816817839258406303507000028392627165542929301172840214830541025987472087725215629592424306576942614027640820066081253031738740028178623349947628804192437200843072512650935062685626708513984502202411623878049197890544202216162139345567787377933610647830908591472659080824347531053535712096790004565652612707918788557709103017786445584467438410014143103421630665504169276205460337523350693836633057685589992337881693966270249715084834321488063470312497530817578759143789296089255309728129219337974554295885675099615364736361317157897411639044487747463955712549104593547793845321817526419725219811037649772076385799469677404915702891988297661597918357976772678778530324695840618785209568205904050358052756198504863520113180294607019909984220389476186956701520819149307706702621316363451666659202105386554014571699796117480580110646469515697747057192651064824354229063856117056878935431088418556829960344062628633654454317993152918087751644431721474245556136171386677285046491367016995605128566276459834147214430585094215074495603111587087526042523653039288078933998032577837336321172406161094906231230392611444807831948608477208098380526900101722677398516353961519789017870824979191439492870985746030571515174906966231972665309689678441688387603777513119007535963601799682146205379185145873446089568362185072743522027773767849854395048423751657365520787056499934691096929701165206068822415505519562151809799230179598186788377149988193931622792515945308161311599220193199518736862612046472326778405607279644016468338985527737632015558288467795545645902788352952942777349994406297615290134285375080546252712473523981678940006425529492150405569927177491074253149197917372905584793456225897069324008970348439903030528828574030601867821039533210881363162868032602416981629091316906503527655999585363073030492707117367266619468484728682166065409987680912033089630861040915230971402775776073571333155970471006782331925983597321235638181536085444653130844501112779047799922750663352068276097340804422029803364656902426537120152789939677280818617697638050938813775846092044412413612938998508261534704630799317902660386111719034535286278628145267529065968535205026198835164930759190641465349194899042598515107984257871073943207683121469422165369645073652120237769338160012700067437153997027867572999896928626662993383516293192861105820897314567654116745102091613830880036347031756248036681220132699740417235047024438744218155798064566106558982472453508416967969769019793209427869025714773869816394292057078981724086232383729497758599305938027420814177232749710563677551040566582398581346546990381584503695969756069799069426020141945157259031629717431552091982252469472289263821502845300094547190876049608382097208914314180688487990970098674069508993734415186377233319265933893954804195421082938604148309410754822560577776474251610907928235280539434400161027478960140924457374060224934986489370245238423852921538455088326702044582354392975528674478993944446841990461125566511275916382523148877870224879510133965584419830710800409043368132946141607938100198144876426537254100629798373369559694431079714613930166499698035533067442030750999924507677634974165462373384447580359541240519491295739473488391190988347486984180177219296077674691992877499333609566666555692733956539257038897767493880205116007910929312130518039414076761211905859942457861878706369213799554908092777934088855528635411806955062922299082881402421669977013381477407031102727041640696941696516269092860370952879244995415661687401599451879776021362811005591064694266343637206777388158521214993049447741873382298037592487877791785004092719223580302705754435630542231253568427976432398989058489485605046757134805653317296510846333552375732949221601688282073809632135467911456441416756190118828489702401857772499490881162784742882423720852088249105109400783072448677190029412814200173163577719653672653684264423843368289614166916490883263312786933127183468077069194492455201833884381553126434361227540531893809488094423788895263044554222705522043626296911373714288516302971465255238685384808584681022423162337575964272802507768430262650019463080780814174505825409238040336145177708562425839069862848369224820457720246989580803681687747016322629890351904207078679978574411731466581967632665638987999656840630430702088250000139601504839255614600367823217749723222118314929249122826307466499592143682329888159586205028198415048975691436445157676272465406910569098920388889970539052861117736900063514102834424205135170835061847314522915385676135578719535125184271643737112437871134246526643888560890588530074983099535236948387538933982896028552291432113868477315643292080830898465316235002688899316778668583219835294813833741939328774940541373583755619899665055251090011988915834942234939597239220859617471891481987746398256863267848400348259678987106775252762352339568086832615399162950558834300644774040204799154882870328954520939362970067643651813963003186738159823264160935194757860005159425717590278847932560664012526251198547269063448975824047310210345461414707365985972293865996126039631969160623944716961165556177396339807344128056011833842240386751481846680604181288986387069352428055322258943377109676641665222590849174648321147363407904764228837414878179840906742981363147511113905037087219392221566390599220335215938703951668168682247088589688899291985414121641149539906495599345821427423653985939073280741006744484551649533592782414053244646263010856373002614281390751346241975069786800854545009688877859768042509269767170112625602206387347092873125644461448615809473538887395507612576914667824360544252325066568565437312606127797658665351665319919998112598520505530198950259274929851973223056553065463958809084385947898251387104999768638081107263591820214022514766740175872738474160876724184173898817880627195125928216632800952763609387100325324880430695930216573145769203247838470137171294915837249548496563085221104284208545515659165429446292875940784670505789366012546638022688997613276703788385118113866421857792186344286336112836335367519749482578262357075842688087406180013772305523360912213960709493003774966885053423476892733518196166286813150808793112481306594757585242019449862870612794333880055246044394706481175154994852244208352566844180793560545155677471363315609348940404405424622479415271439798283417120051820137829851484464864877634142755654050354187896034747030992272796647186542572905510756345999472069746824762671557962616909027614968910036521481842792571654521796918891691125533999928514063401175373807128167212821360372321427622925081288092391393220182323562837767610095941474454752691466845172977410047093119646848540197184870964148819679515977783697286839358404567383811888921559773570772497450816967820020913458307930727483436651974331702884697248237458820405690287821139414160251026056060914124343418266481281903294069344290733757727036762180060331061427559134908164275434240259005710565325615880919155233451630342556554610740902691002343203856772787829822569153335889491561666115789540498827747612834035790831431103275839939354057277970644635104297673614470337569169073169412664141700228095886195419493615960075364201225723802485471507474821017651066564373972800668478549532879404721797291633621899220264867517893212719316431268904778335427406918654641085043707689225709710415497897944896145369751849365307564890080857165894164921043444996122366205653768822026798899717565804936114835562598577252189694038845567647200056890839152838576763198812998363813206486912013105012215476605603985506497502326867561223194542321982280534872950370921842553708221411689709164915117717653175011452363127046162295768331440002190019702608115147575807232052887425620062623784901970504351321298544261221358752459915203304624082926581977023559199169698666601532286674513348091409640030746277239101915178717491572886480694833857387446768503189500045794331035742521913749796008881169388286766606990690405553786687049987387297256013818593542962672348327162453208749856409103414112411949159677382557218786947703359068417628400160060764794741036381720876699623639360261950036036360955420115837748529812598020975741967551537432198615505196417192629783346090051871563827600429277957698538347753203222954240065028403200645538093482776127436183541277469112787033168874725969820814548736010176420885426541514124793198933089565651090421391542217836257434069990138802466265360704489497562102054672651026437816457371234523264770458301145233296470940338245444516034474944416260064659883106027695307943446074435000551597430532261165378278221764325460097806237031986577193008541103229954335021120004685158502588994902797390118858149439357897256147574877098044268919734046586312705584281616715887628331906098008391035315188319757220652517337489612033258295119772624398455210017702276725155700403774900810065017630153591282685414704210798631456630610748354565157590898128220922950106952999007805857084688982473799921236092742639514380791154301073729906355628021189265943160363727096131351867319565103768082120423894667354182397639478379731205120245003300572426712154459697185327701771969053690806207447766147760722330684938829208592504374248713129596783806944411416442341006269585845931920174000312945347522371300127886242079258704606648528017097903261196249705651745823670825641819639116008651612114402369568021449552488004113721878031044465498339912036428325667792857829093790628329146931098076546871431293671033323522693547280614133532370931311938811523014436974548871126008271374906264785566830640238228868994489330835103210110858363041852604261883154143369651401269000924312461201556817115169700717093376365004204666150697273527808853708441919495800327962168691278163676245817797052273326962130592653817811301656276503413440513248549347533158877250537111613587291194010361780360835931207749498806289846770206305429581129982946930374914037849827303702669509532391365600847144757425717304626160407559862325930803962977526755866643446990378100174742682572047270363125308662024633004746339003801895741616588300407564231715332933634312999616282561636401177899841196292665291157473666365244432994197042769831260609495848133073233816122634759401718737310980597659716205538441178535426043965667557826692402213939705261175757583934899949194147815822447937351847424064515353016087104721231127777596592535195813660225753025576144379708466815482133605960510324121766949870739719463288670521088393816781076730698551106342555582309423407768909179540515489379596800043184501067894358873334962876184252959021445564827546447027356638258351805486101102588271891396689688971519092310166609371744176312784566967692195141478050421555380726108556237014888246662379855796595729597739710386212138426245491684481757992673929921708606533357318245913506093591407933517361931761013101883981719382400591118414575184020959173905031873635162844248456594687108395477099585779863160660385719569651665117356908171417324735537456738157608702105977096303037034335912461059252611960081582207097467637017282479100040864351349773236290975676892414036469359031559060043410393654799294791119030486838915369404013231460427982852402424889528113928677787932033518751804568111378928903701393664847990034363396891793786994234864327741175431866502076390119887259164716158474087776701905574532854933348515701214660233822964856640509317798438672123875643205854192967528707769450928577137691440618747665425335464218176962136973356253005275093161327911917400781821321711285107580525479459071242031308827364737423933596641036154308677200426288136072434707076514186234748283957153811352709104356665021329109349888977245240045541914977040970916466778897573678084197858126129440106659522495652280195158048059844543192994626470001225796033138930134001286959641545466819943673095496493685279394012273593091776690740783390881956177824005712484990433774784043633461636542956196341721133431496416765460599150018425609423494345069475901857048102124028669778874605241075800284822468691858550724282861324386450532238848866171831689120902861160891104797602250395438267095719390964195477411303328743986259110381888766049188215914207107615020780503995805916389565474087276414855990060756154971428058227237779403193097541064930898099025578007744753290047521834501732284220545339144229835752242401412978238223625944155826755337370034095529689965753720393194919635187785839222237979469511317273551066955641067801642896592385286734225773545365347788672673124668739073059990897000288712593233732675695506557382676441805562843272981909438729636797808177657646759578274508643778467492319802727527041537698389968327727191127689367005561512332594710246499392167377663655858250652659326578873102650374094215676747124131454327386365189498673183709530696777813367651925060432175679697115449732599183019980460577892674882501407061600411250196880110380165745121968326647929901265455211600189403491345155316278733888857617230556489246843238125357828810825035900158230507178839790562659039128960717843649458616628992824738962944214895273670238338027103328970909140828370874367389817966615969314245079197351159307373671883145549409940056082186538411404630903454284958198241596242155337150298801301632335870343915008711355892651532105298884574078959653832452597193935181427711866427868952309978287041188617504452691246987678206914364807858380921857772114253666568106450728156696409885398527844223987138614740946558241006366006336797593625630448013763621582446596230259447348785223933218534052501253963341857788823277187657545486551215205919586904846758298047002572925235276032576179895662163138664810991736666167836613127857790361581336804610565063439291982689177409704842767680625033385737626475585694972658984771677704922272521127644092022991879808776883777761615667501532816855785209338657200331168607254191198105463270584667279543533178867758220779426239922277711539689024402376437342138958881199924334997799154292834522810881938061367775201329283848645810416821028878198499921830002842607949113652149513282576344087116137702672066104940405185516759553430118951370503624526932813333940487145175770346438318942317394468740952574392059686626732737684249662390788757624490483878197684542025677821610146635904857154986848951662557060080982599114561569188227604998992372463328613508298201378959698617829383611961815585204846300615051676419598971735850796150381918973631753985496117998888311678128724496265772302828296943642464801050242068288348085145931991973049368860026496380677412636419425940889735563037293985938569963868908047213097014532416890964654953511186415402920853149094966074642748842349063358867314792562330429485026905065730362213614275559837887837603801884907929340774730528439436261964851798400923412436893981646722958792062222487274875906484367870907665586518432364221514201341855739612557616407381291691021805682635153424806835326745733983867181613375556827525693748590021069685626928096591006947621613825444004261959075363037821780880357954521634606251334313219733995310531395785230860922589332468727616405315970301229991727774422555944778852678910371054206131026359530145225268064252470182329429853093550695534048106481247064490857635665040268050598130276113915387723059599633250189285450944288892411729435673030486142340784580600156593667026551764009604558972438387223244340860646918502977376877447405939784213204402033367096890909015652268769292508958439184770959960921740824250079640602318246992878302421222897389699252145613836193652331600103935849380503019782502456674837684698051682125389071651122549993281209075423653501800320339425003360297851024784321254680611017135382137768685821313283398509369108079848412032773661777567525058279752748039414905043013030856890492192352010597394071787761964828357065918469718967478258761923430906324518152565944662322994713255172561547503591183292473838611974671404601017922938002290608525060190799380371843780628516920309106055239107807842488332347461434420488664766641548185038022283037050536170719909885947001633278026470642802919963486996465033943934867062630893896438221226327302181612988906687168191640569859054117453605491732607800223072344804377207711926516723938306044293777158900392868891958641876056459778087178383256234469858976775863977275602580208442305235021224356402493212138015101773495831764534303144114539254706884110999533867774583190526542445685608974640209680996605487016607004320861702645860119190175925291757879338459461402868223387005376703264462837532613964803984915296543286591616785820452622474659661095960385101524385903558800284957518602666395443000636815073276439910412045792566455038852377532693400812577597368104878160487767376361339030813525798222707527434293884369953565310619337978475417840339317736543037733436069805107964333481886640587979849686889252652507502295466478837290391542067007931810523186193123334994590159521300764842961201853871648463831455248226047689347454609293006700399465400235975846152659237767737106130691159696568930775550949937754858705431106062085484115727253907127291128043293454534064762159508539877671122806124806822126817723061335952797241091151649778429231109218374165441348089180332926192698842434424430027644891696600333841090812841497325157618575121242550985436702719775509698129782421397400826137066277386974471924445816167288208185473796074115426194776957893945261414621461509518074940145100229030251548344329235857435137575912922299538782426824502910818400327006341231121592167372648943197048538934348737880298994443176347571642701610199586418275322467048217979176160456722736955859682382067927485086692886160188081548141017980449185150851350146157023017230045988217762759736076782858252820221022031647063022646640611267999316054283274788501110532087307065592456383431467369659519849688857383143846444505703070029163233587712335291313537164635541741104805391931477342398646833660368993866204093435380007691339765646624252539435465274283631290301903946950943633695009290094136393447441956471643296585478523254538859522150700546229447126538733480751626440390332187948109726345804031983950941929531929586517430648741191994493540074178655327435373957655587554039898410020591983183866306300241492891376518730472639913859302228903177629490785149863153621184174178850951195477259821191383840903385073676866504843986162825609474030718518272860696375882564646293550239220121810798953518586815255421479765731828149131005302894452910214712160816722241756561914579433557241369922498494749102430536683824050377281166034039014643370041085469458088982815561953729525351540352518173992420404630007445086704542876626849121612147889429914028972601152725148326083453717120080633343436057899049332703786222052291474549223519193263098405179328034005695446937388293880388068990293977847837557316865406954510305268078341215159643189581694084970332200713198099685238572997320150334189196533532585574804439092973506088673633310620249017817046840949679974909957297952717236756985193564652536340875513660008273524789860420586176890530122958099353272291943328771762320872518995207615037077653259724286624265783619897236917149585032554425364339175121764719243507182402174612839973800851664431986247838786005639302064742266785912382307736180651711971624667465185303260118326751445135914570360678643271996072663962771830947705247422664299618834839431609508348697476725609139525217100185579311735168839238514540757553189684679329618967649075440160806202432867906887880327361269293895328868240808639544320041776915228891771099010561261740818386243929458403426771585452540793064272623285696150525228510405683830974627328140478192714272866610343053866512130444722263206001826776415916800523728418142472496651955407854498939021157433245059160917898529710562282366837159039588927657976867936896602657539126817687510483593676279285785628019934063911403037825734580900886407074497860358108544318576307866890246906547450942016613256184451679723538547359525723755244471095046240821585059899991045592839040135542379377885473354922488754050005716641832423661431640459029569723018607275757760856530195451476887782710348576454848311613183693829636244079893947537618023079645358108514817017858852841826474217313555924210973928084966300047606401815428829514593729441033890351940728061889409359500092259892474497240930178151144495675119365368476818537046604505299826856760756724094234521234916619449690475063722615638189147387557328435063701489182358701830471303875247396908991214456565701832672839866519537726539942060184972669603545799695270607354424888587758356739833131137579012486202158272244566866274571010262230637230558669918630957784026046375734256755963558524288544696555525815590634781277307847930585720699084274184510431652956694127041592198095788847847646833568702142540820378321812352475790716661497367407472865232261263071917790360501372630305783439163540966204364875326925021665864339693708288752129851814375133250762696605240333727219452817040455402844604076013272154800364224953555607110323027025652734368979897758411630449466978274981809804452437278077737720203160216759415993648015145624370477895249392340435241818812953313095440721002719326518091728398890429710418292324612165601323106571307027525361835613674488586831684896953625431719588629254880287833579842498781543939572511275106527598693429974216867405636020406040022278182708963946428204044934890399021320358994703589233122570029270983749503036367260736390852118576294605039528524578913758648883371884029419969488148378483714779763774899563751045648539789927741483430372379831751702514295853080190809564514807815437575060900218432126251167686663907624661302361421581640003398407488536066792355866882532372364789137183830314120257241703749106200984242732679511627262484640474074927456781829229921535650488572121457557571728261079669911289908118825905374004174275425777806581225173633726342984439636332815130137263046417473009471705909000060369926764882271512945814012498759088441682273884250446533025582566783492337670561266428725547943220433319120746244562830283975854466319716372967642758221491816401574227600869748725702939061479842695150503088895658447079858698335517562846197621446585575290804365521447531797396416355838879892756254354635828250437337845058894054699504905756987441848849840390308163542008259131461724069340550990260974897373614262493725533373660434198031564537420870446899543862064417958758675692455691614883389239485980437819893535330595170755144341029729289796630962036019497364985218635010239827856235048753441142816062545511866776884055902520613109473435400831412342509282642830815318798631386586856135900443688455841632879046960738338341426547607453507070219539320326065535173706094429521295598076671577811792996968421602209603085451100055065442957086214384113079026007903336863093850509628089170459147824914299878310496557458732277308126929110062199549250331104917553210049982079089782056631060358473764402062650680844441384464099451546885086156897944950063672510173740157274855837771082384365631759079963974153384271741900109568690907150943044909255574626522811843010091825127920226883590520715633944443183976552312425749221176358100942711674081920639317022213364315573234716375220330920041597930521927296497901840933477257310655336267001372335044813627567216416780175919637217055309152254696954527771287579179247757413952334653141571097725061647444459521758245776647018572300515494854397696527599652677126160507375528942070132983707181355530254828398671592122796586022558146351635528027497648677146997918814201609646922069815170898337239503498252886385788841865374207120064131373418574787273941796220629342145789524574931599198516287716462552884967258524814192195214667611789601069499434319960221052812316008519491982058940466096326436711166596556473352508484717092008647637210112331614381700967741250419641134534779941923977257215053405754257173732492148212523743817611013510928920984949989375864152509964659267351781347490803329496772401507037819171042216445878684377246025744005548434341548603080856057049742431138105404886847414070047544225108230831617491565267001538503159265857525131197822610844263988124936838074578536216345084733936754028080555777080766493326394043523876754390106833348863629350724736445482444789484201915211734485598449102198089350804577213285850850468229321873554072341984194250945127621788406650486193642454676659711338762010132416880338037453364874502578900161779988587072766781563767338806952878031600262444351895845752795422451170139354923714572035920092299708258145271669389878964611960367488164016584488046893776097695330695972939616093246068063307584809567407018976492078793451504744147375472561471850714446233404083741807015553143432371572327922936246330933175955407028412753679941268470004630471943808451565141902060675434638412580638970756155004000981952032182095270748007210836262397033072863544260177118363844880933791289676029063769883711113230495652832666496698523740982586530179487756137667300188201866429321986704999235208805742037451325329964256587210303495087990795410522167623113259153404834684339727343846762486335064539394169067473691023778980854630393857907696822793027805414285572301510109260319808634028845159504646088899900032429551501699421150628043397805635207958633899782621554749898661026651146571861768092399196762238782168562880932924925880890925013925459124652610042910903046183145887974321325299794674367561082753920627438134019355946188471872208765062035694203861183619470500287660057811424061914544349785408014342423085932269316571199177934565185528237548412740316775947742753369865380779823300163010164360014302248968035966184155868691482658038882333690596843564785303655929756010748826784057088712721969540186457744043769417403652722659480560407013048331142900065448897093250961372101088748078968041717837553939734586420371464554214820826202047192981138928446163435406698244236213089054338434495446624722843346264667175425561065693912623108300311727911864174726433401576145149047911692505373063144646722015107624824196318357577942589407310317039734289883052516168962681813118799259267464942259268836959028154261712923319005561540569507312704471707801918264578068671160738509991365215225741471396577794816848997595750494536484116625871427248620783321664239323182719836034811064719211254957998488840811811835151241419190528276305741513955418125223908123269939086886671392677069276819638869328770771533892519031487988211843416988687292677154550439554565381552505689038104647909734569257078593240534590543689455900796992868143700228873700794368430386793694175607524350858053180746582116556837230021580934727886550987812529178519760440783943932639512465365935558595485885541709197121385363827346831790539750705037253652407332632895258438954559199112299821434390142285758507797134818158947128846661251401685159518144821964032036849736107928986693005341849102449906587396542324826352745434822409431552056965051092537223527826255201801390381061222524626879796373915490733763964613560324421611933340378799621971577646331564903187210233429059883478514392625981794169947025761759272682136605395181462757884235979273937884650024561332110761219109507122380841189364440325777111003027188859676133585893372580879352280988824320397425045900802963675737951139205792020925510706075077872607974620693062592433740770375011819488811337289068607611769835481313573693634616732701987128726191809534579872565460792816886856664435727520403803554585998746080332981200388191474695422232720196206960263739456770927510077383749321430642385689832870822148542941566266395699118070888661907505769401190285688632369913983793209246755870354892245812571094564648048765586585044892366918348191170062514566473197686308859379998054373261574394326115418345733761203932516741831850835791880756255323657863842966104407777995276862887183071384779804942501618431098078929380360326259656096565725441489114314211325540053184194082069033216009252439021433847552877123513550083603118010607154566494784110723722940490696555386979079464592604091991017975912207250483204223471587948987150485802426662647260368038163820312588076140102671210406943927123703813073000070058878781947136944669546221320884944271411015605765353141813701748880629921667139717232902221449020271467714432676184143184189043350424191661140644870991432144196977760530598144067308366921631009094006197599188428749756931628540008763210308972569744659233638029713019021525537759444961982214178090869147476189813443695796585768755202148487450475967552486149921310357015350433998318480844200992458916837765280905978441251155295605687572730350627834401946041807540654202008248565393259487075397884665825327094482965892535607873607299420554416789586123814443020067948677594311665170804962551106461866027576424493866833546950851091396721459927880913339025542875767128731171228369750285877036977578088388784728667456782231551912749178613260198065627284532279510871691263640057012092869551524957390778387903521037988670936589468888934359586415758860198866337558642485224211652070535533977267083782389252422753286117071382641449088907770967487869515576941588181395851934522756487248106491437870992289191808739698767307624540060540795744941743202927693645887337938982628847981510118512170623900001424675469041758405816832150420783876840974864968685040917437835759896036870009691299977574814503011916847989795918802659252103644414638953196671317370844619098947161797566488359888622782389665270724407015827686447370423784641491560035512250770036700627088649085261934465164407440471820795237673716142822370003849999669769249877583993303233982033164074359049337875711311460703127639802840034377668866730773630600286628809744710307498985589297349896253245437741565199187793584346391228209143506778835218707978671212036885241527524044560522432886922099107232357016436143479276206784377236273273163078221145202460012538842334112274013135982670459409791512775618225374870004308342438595921839265647342580146418719747500605300934077826248241967810966665486977467470189715838652089401418491146167306423860097347713360755251629919169710003270238691665289174940616951676998721317076882107432018287081028516703495960306822444954997337880660145664211284012608715197066834406146301291231629447706796530763910867962651571818406182269816647961208864487351861352107397939242753608126547854674103400727125306096747450797622635485318775777041966231850654170530421603525222547925430457332294353312292850700668240581842648734946880200174061821998543392028867222534537108200214419623211702448489711760721843220176110394400499310988913420300573219441090271412543746083536621329857531748902899706845618465784466469866370474848563234643029635315232116835579000715202389906220263849199368630458111880680058276919391123367306587808743430948151850791046865377647548713578953695635796967946920209590305880864388715744558785826170917962686767295775203395627658210774199670453079130597547808615775635015017727516408669418018119327667109042644554845971171948381084620935824960972516465978315460353617445897322232740787691484081559015200510733882263810666699686311884638757992250382362281005329170750927129137037695957968551488903187069016554681358607769626716706649780541348707678724980795664781217213724638074966607394613004005552025321667241876036182311992751973834214550635284764357722258181262051415126127111005684606376562197598633131089356754859454682915597798066323237867013013387117842658986876957300909964819959822519407213973065385577015818475606503195081762882246156543914216595355544517564112968675001237133115660940425025455445521262798301579935448114343838935340229014052155712932576177508227885492640730559642056655777982466513378498839728299950917851921391366169944446304729651952006598349475338785424753570349562528897156872578447889001213514908358875161328336034378336350690170483286642070513371830367431678220377142735767414595777316249519808647071135159761750207464800253733694088754506462831562610174269448609644875062577520514068316054076419358492618563737130147507026953087807225182517181527101842139645990488321269915935885531679041491366927072895706359832202653376022024182486016281515885826180854889273419293051091070494106086593494127062700835854293318574947486706256757319817216998487694745167133815813622405195588144442763808572533655826094473882609016325587976242602796185299243490334806815903030083554856554930450471238265158784853437756448425475091206567375569845149786748193590662696202470156660001125851136157511773682074847828539629538662280898471389116705890174864924523162846911687689396203509256050070238736090986927640751427100535719064069760491235310190538723613393758410783242892053842881385188976440331113273163169121257524233900340669648823859688167974316802593982551713609276765431877705440805095545624464484253186393155228336849787312777753130412052979090079656176407882055847157102616438878580317934783767356148987928016672910035558392829846783940807182058808065920893359807399677966834365268644135219631989703178864515865041912948952886531024557626457937563352691271965969531010520497886855470832463345104284091613003207333536223915369097357111886986848316710894396849030640956885284770225389038545468413460051148838043041873612217685953287354933545026905261954801643618173640796794563382008829955213321525854891202059581793172918487398796406177077075922143300231197542319900967524653897825296016273538595943078427842755496595422819300478479623747545189068548546925234677431883864373254704848322251019006765529551102074287314133003506955438069982352675718139002377810191283975917612806444688448523886759876735536069133466182206777966413683712136439684583137194500930304303641081146576985686674438098352324623799181421209214258765758087415824829857450008959992822442526594278811135975761840484621381149026305585424837543922279294021273779674806832890578462449375271378999176413588591277623638504011137204216318680695000570631173824243913245767099466367212103865701885211150165115773514954061604940628923742966677829253556247309554987888434575465955069996857637184352358660023874471426749366455958667649491756604125749447658555383850766484757775440770142585746947777723351971025481747659454365611491266051638735157612056912048376139682165304303762987084071969168889383702045213085285237284417561323243409568199689620696864159253652600004265750377054107964700618013738369023155643095505148532995584695709050873944793668395497817087221989653842165175619027082026362280617284522534612887167816526553168972876075334184678561035088428935929041332684100576995732348339830725843078880230010476706474169236099226218636668028024370420699039925986639679951473913027564084317287544357940641978595701162723004897352114590975877623461900148197119864041581014441123144580878290026844957295854268843514806913896260432667069281943957092758014935534958736108452877385565230355299940893718721949926075563983994436698034547289138367772499155998971578546865026225848560304368279055895942839794695086459505794048024499573494759287396549848433976099365714771499769104096306938772341985286879309045841715822172383438871913951307178908198552650431836786568656388979995684253702816969470618515041538594145585351973846502737784843557869837687413025241561373118524382851637328708615900536413876072492556132352339191206167777877666256005550399404354788824430742460069353108989838259892667287114821415393614695338686179182177426380733748400294253923570113347261611099274532989505335110618577212170889396095572188332432408425578666891082266361469823478665402810716010540253400913624143155337126638376295129480094159921217222279924685069831365968293630800479549191081782745079422162747520428141387418135304800116081160769150952448091101522281971102201789726585449096881334833157409510579432222019422115179685718607813369980447526574309524342428181300787365440034814678834549327212411800300038331524191995562173421985864232935450324317616883479222746360057674600047914832367640499162949042817453165799000616794272110793222952035699582190524535639771407001123442536993696049514697142163221429342960116720767531655580604014615458803564960975638862190913780370388819008044963583117183955873558303821330976116739493722409337472719335756432218497891370977819189891792448750222915011793862415424462837103936299190178165985012711164921607131955434354645724673916189382091524573626792272072717522354807563469508109634604830533218305581647625699111832416236970602153617458630917233236315979639611309445748218286737435776984378319471578981537360839738282007033881734120381007412895194690668331227479521743134274917785780360723373368106680300111935619520421704935982519444733305915008283670722120612091974337791980297915444884609134156281999551724655402923130711836573477570682065173495875391252352483310189554637913021905109800112876988727029296068715805200179783731381240996735588641352118329898684248582904583395537377197027858124407055970137169893492227574498908380159606341262079475102212054260028439387192118257178466660404113497865963576922247673114802203410483712416127022340247557359767862262727140226826567364109241294896428930987171919217211745947304267646551004773149605385336074838580531711470650721144580701682607336282337875354265181209152003813626553495887092355004920046444922500840261327716156537232312237992210703284200841185628419463434530949870520350975974292686005518106948515045617704609163487061707734304875381978241601276987530588726794934713878271146480256255586673253768029513814966928886493910253850983947305260772792942064751078233550579213367410222162952997470803752453503126454207975218969166957682822408758993463024937332637540564994296813437910442242283453747567424801532303410289733608826123493855297251345238638024953838916834896107899413912095872890314383938415012858002268455041782165752114957519482814183291293381887989952092667318655458249823378999709720887275489882447472078419728984312825318207150854833255685776542920791064137736914167760000364221583881727858584920170144452385116994488663848539525178066257371237463029441442974410078764565950689847926784321267602834960156628515617529535380907914096910948691752583221718947184110388195266345770367688769195240270492311468246207280208967780928742510502382982650827079468264940508917145640683619365622958638081073526568082469394615133931116528190537305009320033339129631882065065197375171899292732399542183558703519755869237362260657180718613830694406047354039834443656195985769816927761030994947549814842194519028030921841732102872394760978598349008061645345482573664729059610231878996057983406250279976647008255064180221810771423273390383316248471524154538990397739231230037211073018205527391058581103132237166151059705382028687184010601397291455695496681324696528084403045664839497777229000216710985406715476109188975936746887967587076469823952170961602320108516559585816810715600189377374610011819531340128882610208701924246244376761453005131379661799366809082573475865883307519863716364218742878557161766973820272277221278747970977758634853609005290175808367588102670300502305986518823387844139608784406325419018212287332508944206780694718316881991549639470128483277442458471868733859493963142018839124795895125376432506030434457938627494939907926452696155035296856897257428931089221559937060184521512582102997179357689907575945357523432041666215332664619359159414421294354710078706048496876666807881719902489767305532814508772780400858346083642858946685020988034873215183103849055770191366307375387747788592412806121354238401481860622330134208318506721327250859501953705952167266254079986074168022483242877973158332442276482867970795481669604756543990686085404209562111071691255736648635986713777971396237183619928073724044634666051257317206616336880011903054475291354159019564910316693817559630827195093362213859581844741665486001978163814009731061136262535542722019968120508342284894016892999609931321762977835586031632618111752083140015747671588380022122003804170880906171785787138353273228572401364237988961588453988238497931119495607698470787969892927460983289082917440704932065166673042706447628200153255869049719949915592468798830316532943060808629909275449425818101498984642490762707454557843999067744138317244788850477632958824748134791672411030347306396804213423524651868872916681420216298711554876810387989468419441662490039662735736662243916714208440589452908642272085177734983051918656495399689574179620312429697300805310228397685157884915696311456878006478246578449660982740319098493117325573050040086896744770764065099988681153216829665442715336250957787933105149590503154136493104090018075719677144302325995627838969334490690109047343990425939945236468524723375082416246193989721870214946303496940541764482390988944020378564308595722105184223764871792932287950418971823830149608000515281642507211085174065242159788984194695235941096074301084939135708939011048925330976368943632508444939572545109989418335719790719547406542191982875831319321070146008219815758892341341217204029709468560770351502152713469361539028736266166919454172732272147692992147128572420021026289526110309353297699733764553404749658194362940941879688058223304925290260665079527980397101227027222038895530649224830993419702508860778931053461468501061858374368537306699228932256001888814108461244361006165251992414142586853945005306059358901401072797766993901246718046627673105414624678201357791924064212157264573885441246854276778074899905753576491254819320972889335347614147717989220053118701737111051581406047223312007069487674214080304000134725215772568393478598475954513591629023990062817190006811099976009965816137517718615123327202435265620417568348021320070730625500254461577384338366971812070427695460148661768504990527914668722947285013366474662715770085531422694240280779592862902108253947109540222886167812725969678375462433833941984060404601103397731804469352516035232989053839334116594072947078454468430865335444405939028625027928693723435924531802088343173692755448055479570896432224444681826779289440495054694233204988468640315977867173009201166088989032900392856189102735148573513872146322737535149858339464118578023210582908069862817384929206217659912033320061118834782195484855223616031520550381334445932509489342091420658629099830971257797790378429561034880548882077746701039269430206950249474174005414676279667695375599455707626355509306211025994306830098838887078889408977605635911800315868377489581316686185942753702836027880195830431953634274773769686817486359935772739960305472030453697365614733826000555451930924369770000454811178499106404294724682131472384029421171760962103629499056160556713721331918950571803401617624167372315369654214974750175623303122986374385095597312385599085269820698248903416811305378703768201781479547393037452466050717123292670854048815689806504617125489400377074143099464782368033828844483160722387591943449049823435217661045143578528374054439352230261720462570793221245836917475629190591454972504707560142396168578142569313726219387981446474881518210105222274542788591740245834148097032487653526200058892838024594205166850433623649376513136868897093074779113465493144801051686364517693195534455503831378632212729898634109907994567694718416642328358567106748651806626754713767394117975478963637604779436681061193187564103024542983795987742059544815463304010611555036645158183270818638668209110846812142721500932055166530215845564302788422802554235176091260457349550702949793630949740087771087357014659974802735550867339309929006625139889206591325971074741974690181891592306228352559004164831848907053641191952857078063457197118057959950667340959769873661359507945906113146188907658454047650172575482726703383177490454227821175956862021217426403101886442128334574408979012269500374053299771760942099102755413421224958225654041603762577555868620624701073122670760035259947769991032753706214946457870635712203738524894326018861359283792562072833091017144530720318191193051693443203801135256464415472470467294853635994856694447983861909413993230971057152382303890928676551332618208861080991761745142893223827163748434169875059304103160495458202869046422738104761053688825730815499712822627638029105169780482688427125774243309403117409037289564808575042955983938223629311172989761369074059130122563325185306853376876749011049420537483684086843781152482134492513367261505270756258855407852794019700138702216267297969433438939880462216693040903397132030084744897667838239271875589726818828200588241209926108800491032532476486654249900949749185342946816787125201957416935766032544401154111577438310116924367776191533790513540641643498955911831240565151421459846016470080085167708869839271610459528024525498405588878576251744837912039246630348017067715727112155737653203457495958497160499032159188062017720785981314759747634449494381708660389414828152587629415696793898240811120128546829778525412404888250346093259902750288919848562196899880255105485033915330538599092321834947072104061257651693307217350164636533254703521320104702602619470207257732977821562749278744452865090973531727995242403251584087848275225498347786586695604033724721884588007306058115565029980695743732389249133989937871607859619246641286433332812468018094213584856608645746571185863768540276903077570274163084786816201212945497383744084728408687286078520732881531611350623694870592999294198835461795737075596248616285184771025707228909111510692447698105767052440545012949637242025517945552367412360073424230585558687458178042729392426712178958271269467360930461360286758744109737870555206414624469523693052212560323619836787002886043487531854886879243409861488945356829044892969029816643159186563189458027926873576979101571160119212324812284840833488112209781066261854986682255371804944376240439958845632130035955995051785934227436912830151773255416637144759100838481006619489292005983551681178489296136534617975012696313361737508287910244696710487540821367040202888397268363982838120304325004709158899170453639591209889390297320748327519294884886317251532344053874441145914641699550569721223556857765009773209667897251064934168581673763002608359495566748684900876561075890615974460573630907570518403775953276221669147621806234985243887213179581663326039524639270216660179384855095227126024390767507451601970588844533735211638084120684619443075289299253218800296891814268308018375178335071830687285659581845763950879622700571266826804522137782375139950446047403302599333503769906488463762318648576402236273642391997186441123886246021727072934499480426909631057300840904230924247500857775775382986510248409137731048556991777275434435010304518514765196673394400817125465976815055237677989939932275741893199289014795973916713815595515536502444259030784311154663673255036042835105668023103584098228800384991241823301886733823278720081630243265849178272449012744436719331197420855383522558289637660696045307532757371655073095028850357220153153811762034044126908901947779421541525493988454598930245648293774362310651588414757451267964381129535987332742069426209814285444648832909533923571859865671456474615704593075362513098537898013600335676048946182066155761877292088097755115228481413335677337622627816332020810793493913486807633921119072813569377803604699476677092579740655100940178844625625807349374274111689022186416568622679359897040953102769698117836593126015869350871165693305567250472883530650053120584215646395325921784917276367211453637783699387026056795204796473188548217578049218700068563061098562910426424515512131444795019269998179245575585740673673366028450558668753660410882096559945539627908632188569543844391750540117445452958163668973219451805176571230959104686227063299237546029334906068478197471941333594302989847040737260711738190450647592238669876229225518711679627821948547062937408574937975664061469426944919997337984385671155202914038604290596238443083074129315833581271221131629492085054793781634232246696695690578600408554938153287313320156809357320696157246601318018254740219126460649133500326701253124773405022344533235831755364957649358497600824221518341694551012160416908891013548264379710813186776995061434024757448790854818501885828435801853308473329236955353144411283195635196990651586848611093326633431506418030815254861101333126066789426445199812032887803102268560448797710703120235128677178279458727872928635460686211237307730151669849197600593455813108531044875442613874706433333813244680735282642997880050489415218034807130098165542253406530365202850999494812971489249052738024878809893809715060301022382578591571707858669405967081452449818692726419079471318588357142438302863635892264651302628078793771919553148347033573049838518048206401445605449013575846684853073830640533487960717259417541202346705347940724706091849562498763543019110639920126983727156569464030584862506675380643697485065423929776975073771742542165759245136172314869188796372406615307532038265103876958775289797087323220409615471062327774005289800820038639791806133552184483715551211156651169026400684405389532254156871362397828088644295330117091533743671758366681270908068881961457317963126385828482636718166545454634344506084469195349126595013032562570029496019308439488845167341550477533951167289523831038763618060013809190087739957421877188530981852121956205000087037712138301377518771557772332708143718865232215426684767035640363986932297826526395600484645044820893199619230744380707940576460885686909838166872684989888349617535055895104877103610987720706722111644986261494734951163455882337678064866371664568609983887419042544186183121311363415794770939845297000528978582279034610935357423531940565706793302146674682427225395048122737496955567652195377382089504531839252855818677926149595119700616435946939874120983962166041027791658228756973978114339140895845460821657884000422880122931523202426567967770258017085793408719103611105938697211533681580436507875994273580941461528422363837337524650547724492837008332403060481156147522831786721795185990430744508654796911491089283764579070995981572258385555235525938728064816288449781159071689044275430509381036382902636210387562951358785567338838521606243665557344129824340221921694334537222020639539510725323818334694911393644863644876113431698537537929573430458110264686173359191696343945443379179101831751320604061397564566171469326804254104060082850861231418170775741637539783620528492291132616250184409229673829518371330570778610576428806812799539167919561415283624300172056035660408225505421935845151424630424570556946765986869327351508280261287545495715204746765279591445439855941514721934482556884847307793712931801003880512457153067372504454857096891929960922249479072634426415509179184782170127091187622704534092236212227179631546979883797672712271181394765371255382161393968017558917507854929476813225665280348302277558765908606330234420121557516512235979690995104586352013100636883884165505143652209526670158142404887429614027266054666018028754891306461740274657231891463438168654657237089228223529802107457635996103486650686214538018256048026659113092208251833374261706021119946666755935085636350339089313430039204293298821853556394146912183225735065150269320757322755197656304134220589639261474266140292373958998098545992670133719291193806697954857087466034932234968906545319622914199698251749096461387394362820627411922581920766689002293974307497210815092757182775431818875068639179668667063792606447347329420100678806053917229995068992948607191887660259324506170255266950052257334965067957399906415889998235341698464896620191929812679156367945822954884344537027198568232316961738217273379640068354804411991160388572439763095761519273914426728950302615332675898373767170870920389079841885449422330132485500323091153622350488755724157197285839454389248755603782509726120408281624389987436273503799953238974153014489879017125238217236704273369159398606040947939055346810795344580763255437250250434546178781934282071313242277619802140170708970683175983315986032696820016858260680697943569446738975934074620771004445896979684866118049949316281334124395457879967603805143331549973348973157574862551334209411451831941088848292889967346991089356258096555154713549390239466913442389758648930889953581003396908404132417812461243723354243226284710779155946541115211651054191437113982339353583916737667861172745298047269185857290917906755728191146065491736996103405279565721646696261120755069126377510453621166009467093707805881699260801979392494879830738409742973309301708481431939804726984518279087871676683825295148462841705202197610095012199979293898405507791087138410353777259561612267786215387020933182433882320024627215068941463455889740866093846584944877474136537335248626568359845739149837821191405842169653337335076598770510591534320194676267414164498866344368813836079946152354297488188755773332885654374200990344575379429575935845416168499952974516813199095621375103524171435534510327083844980831486785559902340057147565751955377088944643136824434492804500404387999452167397928327798355417996147800387037919183634405255234113364649064552011761960063949896045793190462453821260367007467110518892423049920659720155593009692058128069138458315809123783613235347558532225118328303253271744513716197025011588991087865807072119424128284510161067280722867146778514592192344694368623277334817673580377317908796516116771523066148398586051083477944888276151651050969751424796328029462870901503732407240401167419711574090488486969354103945664045493828395795830081684698729028320076422139694986987928381068913671961236041023723361268956996691506843256023015742169046406048387775948962489552964638140406261641045242525690044778121926705523976257561431955486504710561996410334671802613930707759491593897307837531864864912091905772359682104923258174247290737944989953671593556444112106999685845067039092948418937667669134965554677492373713235014685174742348539158258933317695405040515594786354647271410956533261141857356217320931633330281676853524617187778847706801997719042821705693194685109990539421894465672302219467173005304589201759761684372928726049264091582643545119616500621592241097823703330993891321689207327901614938759877647426120667781108404056322953182059467686194090105921334911398199392977119459845383512168733587729227108068645986952491179456971377422750921695405478155185227490144914018827709034304434594267876646788392129222452298901775053661422648237448199415053217508942330549810470166455269552436336486541989883303905799088870871522562348244291822840825256172839741639116528259533188384796703446166590039331585235412370764201939557535035157407244124747714425297026525760934734551460853689188950937472566910662147888257749780337700084428453733116944356068381389616354749790851928691308531607008487380157278658184696370468358201958042961184649510735036133100392065866580988712541684418451165426299367508019457777599728559471755371372485701610053357682962257711120630609338649670293044143739632303190611211846619396391444438509457499080452700941262533689552011912199034739305903955463504291889582749392436930489405783193362930994135900943394899004703135068334347161361006138199488796855034648627652583583031133858642762296674058115596651110603928388614656608457002578286155786121847612199302864086069952980607071497537542430230019369627763512572689627239494799164840141824317003082260190682023063219052925261801459411211282194556019859310499952924926544964648897308750464293970123985050118166861070035585150573505591108047676257796405493720234836484845918815586392521636601263234352040017533587489075907654782833541537301583129344490179889017281994660964944162266375965136498060071466239438283937783955251437648044638704894922875141070114132644442516942068888539489900000605152876582090281891682528969162664404639564857349975291523092306832914970742356678922673550198296290896237384448169086584299395021777138862348786912618174894148695619978495350955751180747170265572027739731695158853548430111870873993381835014611610178091337139007090525167651481433645009954875667736226001013523069167623225146530621750808372258963484416352071210832792818547924727791087204520796946733696644744090500090618292129730206611424131688101344048787986214201890968619711198517996999610924969318004070515126546131728591770330338289107122370383640718306781276811566546767639711699220719068182445816588354454235695727482792626218549721673086094012949682419598871488294030984771413904765621301130195619364322437871911783033568494716451175667713331494324440005264127507227980876296714770368453217983635422130314666640964588057802583810732771271284726091256232795854422042906334232269393952464851079801425373745175536879312327755382436849082360193105849719480418802761078123143507808362337515673602902251903409375190867771449839347005925144911615319023723058591694862367155576811318380813659627266542452385058112744758021811757464322903596059922057591052016573087116421265970245084336776000602763991095594826997412514762417898336998032510535554206540560229292289601750889596212703022064148877162763982934292368519751451162985761057342968837400790120904150639885773581429537561491412165421564938983078078925191215668381962338634718306309757201837364091296477119424757464508443928801023050059718850596102365914129710516476775452643084166673932262667844923514511345473310759334578757325166639303790689931386336147826082949970013386481696726626218991273898119406232664832800222987075440184623182068139120749822517305424622352553769528127847149336061624323255199458615441781176874359922294126908742686261025052141611412471282437608265131586173608987491335818022832237045734169458109428053771672111733459470134800899671628573658932617399116105114815363753566512009057381156187430965576445795259659594274529185290116088397798401703442279599230319897088197704489639185311307478295059270137649191977088571502892043207090178559329500333790625085624583258833978598916996470767979186514547653210077469357554953601540641020276021352804685222968870345239032497100668859258401151914594102594330679981146516657117452473144440271471230068701958608287498947186950925049537829897622391020093093088470860174261620250322588818742912368699233553190554561540704062633368544642467728235470788554595479910483191168701511794542156000202536738931269003332341147067781520659259409617268212740856921571801643496305148062312472524894911004058945833147747989705189929754174303755752648961263749677228797993059349828895838317542884037355635813422431559192001257724546730577156649210288430616753611328445350277165129207773283205794660117820025367882288567715318912700976297974480599405185212972355414442677308987674129164571318810888312740544126346592533218067186575425106083732314731116919227788839960851772608303014188758217277601508981542195530569809664110468590916788729298814476037514487100557053134140021263122480244749486804360024687933357625963145752519058585159766873118723176369266021374067434000845073339962339026814021477252327074535842029439556511577145165819009260724021435852359767765714504363387096955145434526644221623636916262016216953755037196414977758060678994946285518549126917352994196771435136547452464718231745191927897781723118047886222088323422858819718550725385428543437866661412831015293823881559485517568829452587621859035076699169170246524492129272542937737670621091344054919550200777135431407706342763701368243601531516850372028982695924956455447023231304312338969482914090574199241209498815205748900001657606140386950662187381905979781261971592257717195026097392591626659936676687318517392716671102317153391488777360641985578996169718480782922060023552368252625584920250987996827998687642345972363202712446180021027041942521696987823599431390506698306620856137295092284788678376991596412708338382033168000367517734729970635906553122767261053702694170678756999562267260373662144374497776966182180097183602439750262533985893434093751878618851348302267314859665260564935494437053983406507864218338082282517184199498213684615910901924395868965852430140995199955358999221284592900678216587191166815786488715166376334118013151701610252778091824084551302463199367547079337636852819861857727746678173273417300328211253205890788513083519329158141230050563436018252212021068070788533821398576833061390404882794068716115822924174029275979805782287209574266992724674533585121755328095382367426983795963103435662589290286329352954468700137963338925177969440260388345048430979016979276199727559978832301340612493348264183315027380590114056162609567728784770679813820149232663350620642828048987669110655592112713972452459510375290747509343241034194473314008468073140164934012488620990798123470920200445668538661276764957915204393680112900643187358738179704517361238503947965410628855400619494103946787862723189225984158166925627306655788011433008530986974674198216392471667848434240940118905946285888273720132786002501667519953155240493265625980428100531431919011436401242847619717803083625272878374600117451747570351583594285286472438995937543627916674535683839752018045296741253412123083367341685200200345202995007563137362737618177272522679660905492917761069078274931705689577921268577373390463191668424755305878551477884515301061987279942286666820465983931245826258021709099836693145066343224095003006007611737831438617750794965175335907431933564780618705853882972250016578065134591403127393587877860973099277854164131007048183367348488716557465023038150799828985819589025650836502636716150941574065197122513733586626803144110950714340285067065101774499040770430891635644450433053681397070234356108996955750379557996097395401058685393118868615007318760502821190086325006955250076001892149729891808676720354657897253419511100545609714489231800004581183503728653154230655478824305534005079894585977472732429212035836165241208088858336527817500285070019461614748528099238940696172561389055839995298635283282568155020307069429765007796448694822203358610799980545176484077645307255799324385274955582504819584672964913046948276982441763482168773932550727176905147758202381094958172458131060693500546387069454561714091305558198343860662617752825018813899100595662308843133963517704253180262280003265617750308921422841452321066090247759688564987243005846661933808943456921282838860869321758496489132924012508239674602795823778346816151600366531849022761752057574392640903393160431890788266450513003879002431515826790782528559662349875784119592784516295373475716762439536697966765285330403743490470978029939204246984566765778206955586762678235940169669722058381101589863490999510270781416634482942747199220267173802590617341799092371746413837939364973941472845803500778859747660465911217546104486269291557461327075326339799195912013619626615951137828497654619425875797291613947705225598474040774929020565389648063462323965131529984866529751770348454546384906620653585977531605267582599698998634533259138689553952720733581339837526238136611814951757443555829733020145145857468413529964599275758165664919919366975752257481524655072945711709923367599194072136257989215806128205461980586704624612641833811485284038748409129553558719828418515970443727356058297769741996956547766043248858362647582091758071827381856686083475591560905239422279559293464636153130587779248111294906146892470176353805042175427215580377658301207083421920764075236929859070095836977627735782083432490346383529832374315138259023631610247832235287073640459461610143239087828683661029228769462199609456645650920417384812319244458108565583675769443698428588623594188843276753138619175026577739628966707682326787365561064796946495448335444723715268369785497892053762838342562861168914361361487666174399656102556799096898762766351359570422984320049103179364807342506129844577742913573236474552541318242695156071092786082006126584639193562981484662613266829281627124068187812830509519671182784446191783944481887721733558218361507558331977543338310456216199969792904691935101518850712985092025081080937604469665263382422722892253282167396523342586156257843350013505575849893470995050331008624609814527591153814649088498535023916647647189593134881387710025812575121977401891937398281779289104629279796502293874582856707273969305790559075590074132198861806247649696615501046631301638472924135492493080852300475622026062497189789320943094288771998545591865723239207865494071018956466706502402574113985689121284236879989263790873177173773185046372153169958168138054995018319631523093393594336566773202676606625306323110695282776622465915233520341362872381250310024079267403127973342826180705938022307932799164992743970491462276338050010503242380452591331271665631352617078827681518978093101148366230681577302117093973595847450066891793068510166304000535151598836338725443759941569005725350397690442203235638808945971403111685670439963531504019785411314651813012392454055985354132767184716947378601987332604060700707965280550194421153219859571143364498975233896197054246072849814137681890207880794818560919816325321163456826960303614417777031540993452449593907317938368627441130044774202798335840867185438330449183569581693608672262488161044478664093506101499603999595486949578909943325284429910012338117166983548727490658734885197178753000251912687120529376168680000641463383499411252551990143447114185547753962268471399094542037253671069138266334026056659545566687075011480715918055382759359277621330863882861465607404330841315539245068566374232904470514103210471722899392358797860006793956405312584495885480812275155594730972000466211607558489168678305512737267383058776367588824503052767193488685701485453050437790111058623808159893436333651861654143325468226605713806327195156339752410991868766328981332556740270417646087716738917253859953948301902382564510711125541170783257702430935347513531262454365913560259720161784021362329199814995336687914148333786359264275144206615405499334325522667142512717444946287441746183120019338437343833834165752115044028119269873726752815046392224262880238736062389360702630822686863084190424857635392662340226263808854861413561211883373957354446686491756889392089049447586622616783936831128876934907600850997252235659505825350963421426533212380810384467204698253027184728722631726172333453192311953133379652060805022075762330551963261812665500293900887335995692751158203287984708466155836162683364866143041050619301878617624338758576205639533504373964904468335171676201680042589484404953665122287760471551533711349065213316887359771588899743052393651299262265813573566619906715961255426263916734662290746042998145721001809340442999294877285131150834838101221635836147524514206698179815518090740839654773111381925575147143424317000840252176491669755202211421317905402236554503950515228355171147828876174506760578198065208846752940406596162511160002499638536533529455093353446635933772811534202617794071875905592028045185841984850386214072319508391461181472490430267511548498272883038379236433488237899449109116656518779454645395431488084456949229101904277217804695579739433840386371654656037351422993369986322273986555970936367664218116651604112263911060766095400263737731385563667447224746667004594209863597230659387380385612078163406127166074488646559198207579655123332196722504374537538435252212813553165364662598580921850831905573581823580654676106039106431187213043790381750530260268266220334432323585157347232129069892872416192156371295955779625694075491118446657123308029941806590985248537010453947723188824586581178939530099039893530244477243348562304772243190487421318876536995203300247738064444126742321368749163899610968308820100228586807338453726927118194156995209541117601905227224431998813984469561434181912763351624618568803244710600763344447593906992355575838191636267392236132203951033593199189228163866975778170636955919382944808279561939022181437163253175167838225985523657507263358982150072287751373875145408912023216240587407146984722886751945157834368026192218467071825015978218991148002631903663268179028305764721976701786013933858286278621020988058739876420404379128476314660363627906185832193105660584122625233334908367511256702621675892215968500271061003897379023924107323169346574500235534183167820859079127248556268658145461854848116991214168268115817563018961245032503578816417145938506349412262283523241270689553888308774402576021211462230904711533739867741457702198452449645580160573947359013345378307422610041617061389332781401646554945062688252679398298007257902476588681410817823938519650525956352985588680671560642333307444499920622076813903745061048228544296588460895232876985791834353755065604233878108846333621925921194413841999760863289598815441544070169999490245668593128884630283813479334597791293835053502970899639934087970628165476290716952506745121665650141833530832300728031803080311938509370769075775859532403779909003345401535115890855588341637315918084646382416385021023384519636267899239997517659631618496896800401035647225602994153251869979323358619550531204426744800739451495323962404848398598102163495498696615160548834193262716045068517699968017321486319373399176730002792516593676796121836470533158035097271461166765974436299912880285152598377710590749464653677409286128316722205862601585774127789537197374334676708987405181985051137443780583042552789312628239331908493816583510942553133099050404682628704135722706723598617002309274738510250784677558355580336710533857606960700976014509959787302368558130277250921912855550651547732888516797216544785507305449949644705969405069917807527251459236482596205119680628220859966737054934181372855936838351071937919661558029444505887033685493108176984510499212959507236972435832192980388200489665827068811152425407832162860379611445468919343216825969680606983208102953209266700840200041297031785345175086768185058487491301775883304529400013907456507388022152545782002221339818720152528466525182155530670891694164176337973747236941218268740972420800706532318497465727020730630440830589443479075969990279752923129974654215404155252085437564484183833684612531346566262261087369591509383129890170564649510429013597546371653108724568190030939666321585196559557043209343627695887146186815688636941588790190185502705869290384582413609818365992972838944063203043068659003546528854597907444210388030703937976993606527246774995176095124183480734624288068300654198994232990598565949026322947652773672669595493982916683019910434390501803087297284941069769892996477883212392300168922637937786340974667847638209125596528741879435037529460809038587574811467907808734690807476027241757919426328188902700368248998311783895559047646112081156223058694286040006454037856406139613762469086867377146869427675039299511012597610503598349387040944240394992634042880418104916293268600939815504221018132268438750277090063962573126633117826896305283551471640956761827745636306821796990490358807322684427719734857497122744452860137583946432359248938874116943016584414176430266154360721718783971052047957001248975134275900177116396356526659611929707984036109725101762099289903254743899507950797393684621582928131717479466922666861640229963889856817746998969692589475833663303841463956366677919028321031951337349824004963730916800301159589497244595411208487136828276507755424009617399106951317969782101625354201792023072819357210384007038395355278557927119391669010586529274166884743241771349600843850460895087440870054061809804069874010737673878602880810678121930764590544115570648489572249162281365665355171569144903702526883833515568690221487906057286738104325981391448355992565898105297993265309415159224589023182534458003568820548871842456812395973442974653079738973231788323343990214197991339567054122578657911063591974272952504163029136301260636371413478907332302825585537375247165165625019762921437691630055473017027331121935540105738146822286388766360479129107148145601895682869889335167281887751545379828084691529391732605014170527344678230175793831706024418088563555895124438402494481523456626249929443261861178774439475569330027489529005969573776902027279710055777582973336431764465602506457176513565540750102570057788743981569465237782654786942807941704708477829334757305360292712560099294280673746996985152297145981986025840324788451597544066770471875626045197641267314391366447542596546632125504736295366290252353019302929639944514134880370590812883558359848910946008171323984357825647230980594862798844435639832819225329560039421651136333524333672728171341409445452218453995104441628178941730086961596049920717674977704920480543910158819182834244511555508571857023477379561489780524534164490901481246979821596543903005857567528471879870333838661426283575425781783521708182937723688084022330081343201842950067493721123203318866042885956119518109146300902342852984808634737329710859308868176132987951320229717723023230634487162952055783369931249278890264340751436464693576233849980635398706443814734472097053728480049042668034180890232071502098853052809951539024531474770189483048090704016264254269957210901009840155737559897023208921438629842482060940992736743100939486052582659095891628117519521875461071542294901939676252848564059713119261705385267060347859561921401727292548777558481295869945649090497305429425283187719203173719804726179881402011204827037614847046659268640021864416245205287309148065254043781301991098004567957598769964089827372447511538100293398319716743804060655149763556314637983970692718788479087557605801387124264374262153314772882750610418360840987965233245745417862421911943279605195820338322417806382110185130084911867900340176912294932553854533756148377097191595253498034619486325271851612247677385508987305772658095025781255494210660708969733811725851717166335800332581272469286510179174905744625306397825082852051050432700051271655830002587786386507418572738389138922095534996825143231386151948794619949485329289718117755699875264626855448412933310508592204926332626413463111702110002192549623983666971058857212997765791263223042079645824555887320789280246753509099680965539529328103904900875640195109922101394247457042316371934615490528288446803645894903028671570510799101567293665921842881048222208418388367342067504788638469451267426249419514234877081495718740501018432744769846222947778601953199806343454416678568130790011357008488419501292406652858221480858564869672589984770234440059192004184255346402900049781601844200718905607273338309397975191756249005301074576461995535059929966717562560043239084108951464567758795923545777961067400897605632065901048392723451416841514685111901833537539838466054912506764344247255759933228020733063984569532636137452215693557632028108232849691963561016583405079413603591397941981062652126776358658753873812265954963593486077015966683470441235385182120272162559597469885651653370808391009015612287903368215615191998062285847117690517433019702458445269547773734905007608583587788010937314513520396573291686091256870163533883977663505546803949183071107175362769254371423037450309330729364414429271274453810268482839879163930064327430584181988118205194323226533428069925944097820981201937454316793488069098296688709020032694630623766517605007620409308702459845968887562600684053969305201355911854796979227996439627353842319725332430791590936264579233790435553478939400967276586536565809126335033323376795803685323647051301330231667080191400426743366930592643976179748605079290818028408859307784961385508056880524269163635394051928598974395161961441200987014884339638118397149742683945720317302426849026060786512637031793887231249538161411542730175274112418919246130781323949394080171505779735791890752150590217867138772940180316324011296402764467416691833533464968655502328508780169796569624443338394056647605085894534709339751921340999615427856755951318804433081737587477724256195422713258864760733553469282267603299058891480771063409476190024057794650526961434548823873439301361213770476678849959472242470325902979625438240520020066698341985265538877096624476384602364091632809833667014000388662845574044838953477400411921832832726479164101628516792052823322263943364723016467049309488715583565816352578707227739879918798453836112330623781510748524536849112373841746465421738424293099573480388100239637488464086700268875788351820284836088556010513152586083276297214186348672804496250939802897001664263712981797136530305458828538766287665031976601959830730460074231505478430098518185032569471006799938434552577655717469439161685350617098880843288470653832292390468245717786390625554616068170685732647929634056608368372219269068479422444503556154305680756678070806151163135389075110548511316673969003402958196792667395902086098036847807733300926978708663884998963516118727839148150331995779694601947633333789551490717654617962645135170071062930661367907741451910810982525696882732078085340146084038100184705134808348757222127007720673357647069433902903612299383645378717565912789095526159187006678254579905762736799597973384726764527801382030175179396194843720789059446652041391609270102874269093713288029357190798958195830106222685301994834356455004677121311197673687578336053157240969694602887887885689686183236658809836421935679817801074017932662879030078666102364335674242750557850694801350638781422633799806318619582956824538862338115030572844952924328237321571049709740284147574455013818070772268599684420248742734292455073008462366265316267188609848893741745587733343060792224737657781997377977632381315865244354215607841838070589189107484204741994251554468975419799239202597989485313351532211417715152324847508044826970016706615411057291074317163571595120249502434364413734231434144344167344373131895473723650702767450543830898296975382032862414475580772712722122355039596555022371928053205413855407329968837802179151882553171937996436305709941461860382303302562916195704813985682759181511230879085904083500761051385440343161351266166468673772624687412325371929690789003804478780901331695110173112149388627150901959747602074033294602275835076434842775856510773765802960345455595650120159755884195479834052997567866475556075088207013643681640854471954412490359312561854591694998713307830819960481828445980336064605285430281545548201241694374404630002727889836805545072771625810442582868487023574033157884928960117201087107785188706675895974650572794551059288688732585649565702877595409595349673479290569793584571629090061549985695255067906913255510858840985671069612698653428480540156982861758194470539341107670851740959282871972590128384877327724567737085075346030608685931160151124353132841435821237188444911745042070206324927592628360495450373934544641377639037169944021161488063594274916472424802325888728273195312679362897277946799293731684497337464085940535268531384412424343307697563403264013474067227906116544350810403520448135491352833821088471741970049223496317118049851312748285901108854588052819833108280933604149363206001724056215768291688770001640038535183023990167639482925978038754089825851250828773681753334524345475817431065398538268723536784034080447583236505054468680051014823144105581752104521030206864337623968533663557516150825168855667144020502798830492192044624136181683752812417771724646891632797922301338860899520654666310697820797561746389023248483903749674841237050500723800710569593664055144188617468795370634768250889206508414565348881600431110085735715595793246290949059704473827370782899173273100672825833788261868845437759224120481597277406127016160936828719067760147007256109356714306661437176516875817834459087103292982334571737671318720687249261288225209131158880525739541515758649546829718452776485219763540858317012032199466672149689609254539588857812590409904125270383380610042713585156515680749006612991451640014142223672120541952406701067942288315477258375831420473582467648166964653616344721670229386521296359763095583839261701917322922112952638368576726458402648318691304923981945359544586979091350085632293822267313989004448498057246882099653184456296921824609275268758614490664499245436432078497712467315081783298396348988285084825372626350288670536021200499949920400518305597145239392251942328515893641771602121572663759824942404792405965050818210725438784727013987853941232168094576940997869059563170734241495732395232198658308021121591879953736850678124811130301976213551503605713368990250482673602422343111435182317855967474921830468048793724616377658038985145544105739019421004254399522046413600194866134819390984555437022116516620447592379570783152322789618847000420897693676705384370024385853568514664738245992618150683249525060692231192414313627564170983950749305781474865972230470556858249584218031735658861320236793570836172364372676321824603861281998480775525431557489449768969205561204878087784636615958319160544288857373120086827108337192643775715178360267006760215202281817630793578956343703837651115229911256004501053891082962816667301665141918010416352175228374768810477418272616169655094260271377770757037874317618542201110207061159136856066943488062779949707890614312661349829941992057277618241092561510890952642190558888843038393571655517358820058297802637331111064783821276357942668225160398104930717397258621854170811592481617956398902454604472453219422051722335539807455196564088195061671890197978798083240750176666574688175057336080204092276128846007324451971337587328839499893957951560373981929187018957413441883405200698725787852058890044789056740355174337405811551666443969383409031801951776967477158799122372374310070142195160425071400299790429963122480478124458975541987515733805786293828167931373580512814284433528180270384417972920268528636983533966684306644755636567932493525827135194670775130763710490442293400507658409649776505552129247163751833816961683667176167209847175295872145904070208910428012819407373879560551999494121493582523863891220146344726742855471668283192601118746997583469703812591969200417153264402789771494617191687634743990045527116348903882777420962889727462196964478110786855659884010957593509296294547865673442850505153365110297472931486759018074350984583735296893619239732738535772311890511843132517961891762200003237344428849674770800574824974085550520792212481625846112198521747742341526180014562231566450477779995168955671816786494204760286829019903436381287693872373355193135157926262125661337538110427531391119783970934158136348007755221742173856575944573274660228849719960452706747656557533623193147041582961375780615657506813148536661034049443968737265252049515341236702922818848123964723710593611193976965472599940410704870679607821882424547359558605734868537664840891348258138667739372798092716784162824864109688962200856438850926028518716913527051906411009701199518031360181196423447946101779902302144529059579926903951889190210066398732902941784066947772013627322256907835614948457311650167039266697278339334414445429881005112905335084930641457143743792210989268992607258934751829037603236556818598169774325569033639372061530630327810014673649701337993710609889205798421700635148098524163476552426831626487802656991177096089909121349225784361809873889609535431884006830053807432536281588922349671520784394073296268439296366113614955338950799544965438544519582865546043908591337952551576278321837061776002738720519594803578432355679749843696363291804220259283883427830614779046698041540075796584619001769241302673339245216105249858817653549041152681763168943170962205845286944467603906586341836537707654910352649425044822406396662868411300874636533859846176312961282724371084836988045114973387141622051619520845090284577172863135548994599176012887763759671496335656622579309804110592244317700212193487705482388801806977654665202277568585361865434921841121370973468825775692591055730567932930474211665119802388233808814352448607988425145751818351540567041055229081787236284989869471107608392076269077197754507677552526274941258208822013011314290184687256178312207742039971589767106484611641767055476430197566081083809607823554509905106601278093580865214984263079814384814408584601060724140420979054004801093328318183554354773531667299620844294346170088913867851531937586780515196970844057094410855955719471446602501253069332107096668809700536384653651789966061633268526183852456020736773192859710224458831537573130372146437639333555201899987854815333053311227421281153036078371451013268591692386596454028919248036060338339520895817627680762486973707001390463786041067246687592917079263456457100496304962541814100399013842053855503643738678751480698390794312343514691100465829037362926173011945736630553361814998694523843898643834194844720019614928008315510466755565060388300663596484313500517115824950671193613274027223458492531409598862367994952562420602350271176638986273036918886015701131159420862533757408843770463823068728978036776899830762232536353808251433874865108878153072090743546622704752870348709391146797770423966361391696494937202151009702570976626950556029329525388826820445253082823209979413806023629098072316877244074257373446956545491662418548918752583431410810066314807210167073628681522485923458121392484920721252184373997865007124464214526760703777531724166679380363348535922078798922552890328097963216294308392318400835950541574595499445579147858657621221031074665435640284314931214986721823835963963965237481220334705869972854865000188221021845931948906125003914098263748893912322326351274521227026183463633952975472021403806146863280231474300308956370489902261581916920073751935967653032323513648859155963772578427441913002702658194203051513827816688602679558540259634603313675932047591075180179212322832440595307268730395378092701821310977380730601141115366866848660851090820236379739061918341605046659444199722172802780055978124965725638009155107958636877192260661759295871931810712883564273433169835513358508601947111020774652321418079225538172896748513435242632280492263595087958061914113666053132143307016268626134713311158714583529284708413233417740777435160877576249976563719513269994861220362119451862330481182131266995929896870146599808464464892488623538911645450622746304042692025333718946193803343116588984221086458137154649178536112113334799578330137562365881545098505546139090598228943834143370327758824348302169103336514713064107397865928342182703394789293774599222503760477763662845193786456538179927948647799424851843330786940901603701678446939321231774715906897432062322631714740512018062889319139975088421003131776325215723759304174775854430997157010266669279468341773257107279206072767262156956071488359877595003795130404125880866522391820188988559039491632366639787797257007493875253503932236806954521411623086258747326516776195849982558470197505806129367602326348083859397227255611772792342524915810056124223404890558111690776685244810956152290775355749533664551466172696352382160944331943250519510422576387247237367548834955705341280635025830446484869673176811096705180082030743182599271454681530210102172060806693111526585883904936212680353470042846143806784491893863526885091917868883688488181480477110257029554492007583046432776554899146177903403944242209901462422055304137464246840401308918961927512642518561444320407368443560826719687311872978099346947628334071291676297349123641974932272743369624817964681932782168023607914914090973252279624808146154642202434350366277062963505458468511345354464895670744810869091757966043183231078511981091373312044689681683715732479633879146341902959240519684127013109186142844240473442044056900679192860596726680309668336204550856044303828177107276541247623634330551822380688141246060836589062089019251712590252104650786418364865919655280534147594956362168699716159292791140500563135372053259824647963834618374483229410998147929243986502361727011333881696734867573516487530273285898118799621828028548620396560437851994330746440853588102413354410682454635319130846371620977871999121403779006852471878230280139900320991244597052601277331906907984223433785463301695916689294588547395094610044715326362534666108352215602146698016250307000036125659919801159338365539649307758498943996925900211523970455851478999694788275847877004968000367622298380455982740910283679831275395476855582357178452852696737220987207892519383264967901524067525803788921473575790770414106098322448403980368004634683992983806960740116054059901883404755502595022380842392160700331526453607899595933686824984495328200176807132463142939544747076375116968651580436156364371091835625295359245516821635844416698237718364080508159387440070248944239114911679533476496889639494872820342611915532904547697451669037492739349026612208029712316475345794794003126402923462997302186311869791240018442970303352149248287119311393955101811400324217974412155362248651095623558765826260958300747279067774947289732868903408302419282880531065639107584082541991519874036196289330064018970816425796740384140468637509410843156696016628873956112349742093745772793128266955722257736759594670803949093777885155832152740684552665310909344984826512911458885038726499440062819032484296014335000585414712686293674645278212029177794371169399027396710198412975240938511311187467741779069667763075277897963618929662259711600394121238608510794406943591126650193114347854859349951464867230139628344194007900076841755512669747956052914633458341390580828454790013833835252845089489352366479715748280112178559772166670859051975870959018911481151035752207284526619527804173714829120491937669990060061024806668854659561482563390423533773873444756802722851914468740440515694870026969951520726072544046553711190493477546427641392475999435203359419394230873747426668593112614343395575532340819723480333510594214900487651834385397467390207915020402336430812931535040592869967738058791215556423405644034645507492851785643680377005540325292213356712614527787981207236862866066314030513874956314510062181742763145047142632479967221911385418165707431652055165067659930524786431881516052772225446983382994834515840033618895998664566108495273230639890849170795629557194406847932853715283355658369216306480480288042932813264135965930065625343401577392458375665915682449302963811080041466568298341981694345734146048302037738617876993489169889769155377608901249252613610788924588369724604614586397553857374101804986860688201727635283746034581462910408324195307631605918269882119111646404129713772764892928944205438211788084503860852297764166985278705513582728381046591054902188317887070700447965738949209772916946809954704008382907530522211894191462728512207454116271389780918176983777498376818021312955192605296059042830743782944494814839752605183726422537447790858201465468798472079972843514077925124044392603355588658593421146121160577811967119813448052077217118528488502706361353253334908655502758166932797499424198625783289534624050666312840870837422065901832931035865224133573440301659453145297816482558986931510830747576909084854150329616802651787340290469833186566162637009149422783883456900118259128350224269246596870671318651912590984455050888902562731787319053526610066148164748481869174757611933872703542084591728116395849337343680545878475120839760980993480001931822910439508490785424099436302489641144679181442272353428868507703481573583791350507760857015172106457423855346878391232850127028868151764122606948570730962369363445778375862407261678386146290774014230448763112901071451030091631136185636363705084216238698438786084321286676973394594948045888536915666639047712025990552081528882934842752408745363942404198436972340284377767131995502179614169017625699954437014152395541126384949441813683142247094697341895944659811569108196758514594776542315982934232101450757290665016109754156478847604069116431614541775767866733015051221619711238148730264825101656200028668161770644676063308362853403211660001020954151220234948261417457638159072292787856469361636078426487778895443160272110278482904652812056264571276453026872294324300204151683014405128186136298097552297861642836067064467108677771296137231776367036144816659195288164967522007306168114033682205917255326551359030114291891741541597976332237052250552618997931778733164447320728584193722495781944685287745296667574963067583058069525836900571240290636368541505332545522808643080121414091157856153247925645652048079821879230913473225345813150234967827796141956339718010038615027428877116365101270168683826237831694591515194905691050238538009343055753036326203479062675355714642844970421314402772870598731659388514268142633976247636411905405679495219064089612314384524144037673662625783990571148150701709158659100030551547463821493331686855322607159228353319521025715560879651463110885403081600437983592730258984132876463011172816542054721323967327762561841489454254796411424027656987587728265193196390160294292260138628963238877375768471359066375641640789107950607724288126540776332034554209861470362022705542793454758771465519966183098722380199200837640250179975165708207193815725540014121960103867621723054766963750932154703617505022745798130028608694684130559535857412276038843693891290069987656319703897998550734600764138407041179017292319687999684940611744572905849890223451924577289135932288267237797365286865263724925675217075245084165424997792146656068579573853586169267715907362166929237042239504385077979648129777662184156578246758307306280579902009653455855753946356232390237317231096311578380913934882987503224400923205906222382951977731349059343699163513657650033540252719371692825793511983688403810504679568245142589868258288233329955887505338675445157974603114374422723036707202057020523429903145781583408120138468579505203708132316846889791890525685020262268609689545345500503441899218287110429069378767799392248304333908478475619683771079294612606858489594025857540244659537050386119439820345190129384292957504321794722387182864029794416331079617299880606570474091021047683124422485234403232173819536043000337156223493859043880392838692961009293422104304746316268366005176880410966883793291973991394345845326437566125123734856057078632620090556175962862842054296087798982164194489129177533626308407909781255236299155089682506861880265834058654344696482545366950882106766849915975352567803138885437267229195835169936691662334945618409096349221876108912302707014208897583300970626938018070452954209389541374183535150428891220685757865643671392553988078031807830602920098193454594397645331797956786500891560431931632465965074602282431015739849759865981840590627791951345140835436772456047188335327699664117054860825129636674786583166820297566402079546526551062352382218062851135189158426664056642327783010844182546100672759200526587967323658946237443595634558570980270181057055186351559852040512160156554883492261757616557487145073293162413010169770025127436426009147331679464095844143128958473308633907350691032869320563825943529464828132150741955896381976937221434427730746888630280165085008679217708771364015264251375113015602290449016962882701497581343390187980534093235375203897827367154658000260705759289389977373809713779099618021946197740569645347930010790294575107374204430641548066423069318528547818991219457178046609237327639790653852446249698924749046422993693083405235199427914149645778868817816694022642998529556297997569472147912514422289997985498597366098864649178267543106032434012451684463509139998608696761711161756414722640938835532818180622238190562559741440847758202403814300491010365319303260197636453343164647508818213835698731440849435798400887551700224749071539352824139797022587392475320644030067228197424816857477017436946514906058241591420503592984025957037435581485117072209621252851769346231527401846002369954481014888932777832055796358074850229498606743460797439922137736793535317098296549532900234805909894111450207585192567685669773335838128246617703175453274730870326894431408553145332352122191024082097685566596731876857740498380003419228881094121577359429621520418989653418585509893070789483305117029647976325272357220438761721770520085759131469157933990447130875933556403809752094268421282955358222448832946479277157857535326424688325379268640969103998316130641200141115954346458516652594485608941553409861190850710576110712570424150359251411762008511735865994625742413873260382364303307003155266953052364712948329121431172883680028489161735115869700787720859442812630700618132786528876359130236921319810352539062492976731688340001026832051876387117938502502126310240298421846814161522505308573175270092258719387348061705216622461299749248503877597123561193105768650897760223369703255629795957642498743428528535166999873013717355918176037320283200120631352171824666620942620471746544138528849487924525467210096863298672938967170268233770092446067626964723687605285613980097754090242991205564524805163079876622402043485649136289312019023557550645334340149813637615803051816307548187331635764735269123829633229368807217118940180553557104080650153843188434762218123384455716351147009671846153436711843970184961144881777309272024668573196039241285895628932917500296340120030958092139733818660489980829222721425811440123237215930886108760944525769764852971826664717739375919226468728569780787867265123579387207395837808193116932634982669897069090957157486093715015954322915498663885351491573639247900772484082109701633322633881605981735420701110550985356702544093622812240690178545425598145936306481420426062683291271458616764210514364804444333423577141590539257174122053624564453834661234592448412984127806586751021765632636387912420789324082245558835263686740439299657342767732366531460846126800754403228576058739540329491885970782003393181463785862355388345058924888662322191277652160731648958658571849042998704457450232188338881687958964939877608454810869437669793726773743580501687565569635549243405288524795852710161531988641871486472558930987651232366016322875933611212014025739605108848751461534826904410419274539406554060662340172440426756409304735238600297403963091346211000992396499811008957865684592835598060231842764713388341845263998213634152313308745118942598270050348463501026128810485574952636126107906454711435873913954504079179274363830599027450544182997788521965924509451706653105025445492126498991012487297215636368256518592063012416940253556603893529137663533824206963478968508204292390376824503121542046685146026888102697413848644973306233818481786504109897498151203521182008420929313327909829375476759162164377990444596303504778894843878470485913012174907125389156525760204219136782162284133082772285802397113819069462168702439472360789111149089254751586381905308165253278037303099650568286383944317292655030999737548021266265167605204117543566867774721580342667767704871765214661373341727419695734931211877447032450702356389989187636469973204617394211999443295625486488915370410439776131763499800211273676293364628905004619471251490181744970790024502417934058055519263997860082807681210219465266283283548942588045530200378865497597332902406491444819734440033183447119831675047451308094671820700623844906412719270878533858766659102647613609664883594222593974793258434080156036844258210540300778088852719677346801687371183959267856794555369140098282752954843856753549657814516427054766780410595487385560885914844767831032060522208144111508833454224491371026660020401586506288926483614619895526203701761056603623489294227316124006880058573798159451117719516449798779565338759674596346955488151562971571640326736680624926811621797273986051641925181831538547363827732102463242677528286382294143675851020507823399809952231417037537170445573452201966839152190601105930841382501035414511225148904820629190227654640119222974601506933113291904282108230275433289491913069784976481750326830806298105377747008192436577967065594567551858039617987470254105907665606959512204682620482120347148935938618846075009377565905858862510223397460526321614163528606458097208516557750249921720602158603614012316503641763416685422165629512038705919512921755809321768271151546278758148199342568707475168058937006737871588097898281783030512615024646305615249747593451586739435675747734560218193573031211407009975664977326913152964121972826621792772784979175889363088825277609864836740998060096590519172050116600752349184883799575218884183622853866370602735861237949041648818324627142818894703574533187491776099397690639791082935133297956169440614051354924910017700587031401457417197777361853860175110118065607930855522741661503794071897380044772113594709215935595978444554735833315901036871642077721041828330573796327352101518569470792366731024800489390164939542804495231541722909415168004659983059814725805562622375748454566130153215711701063102528314303571320001238729249455423272503056122942707169347382875472504036343847110199853238745299254459225997429921260999142220318313510783650977296980537199542713169233680617081404727442907119453451283347232581772031763807261358675976574030067390209862618704624257131343680728691791661657361277764785355391198834048479439163880913396687414194147676345154422574380970557271062137322525782068597977784868703889947239274506296425516045603040357950330487359881232870159155264137138849550805655912006235246252263360964475259146181771996469354992143689145716344056889557336623470143857829653323085419583394673745013458249703943712260172024573555068613600235806033344030635840960459938096526827787205375620859557345745272416404541965948241223007439456437881214833144412723356974677390050909275402163763028515495942914259627693979618391533827907269690853100672769256184929785928386758049201575144338472919264638376601679391470794231907696096896757827630306344198294272116731204354195437264666759356065668304550045668201125010060787847492889326250439069730291259093094500340237752044659432060920608118750441405729386089183547508767329701918330362305144473250158124266609408238628330278093817178904333403267629856684035988109900739528608914288602925832051032113133657429397543994435103423174656966258121746100182350801410368012787460668747807268389831579762286764464338816755297529407417965517130495616046064840050231092352553969632976697386280275510379285628782764611906389445323585389915122969514285858148034748725956945268321493681627720423788142785599682513399873379237705256772691742186107407512148804921688215922923119793078489785932642022829637732256340928689440048594478718368841149827311457740637462994168200464197456143728823119236425955893577619509064503355970308806730970101202730576992074591682437579715577590950906170951611592027952116057635702178166830731929338147816507313217128076602276284044094365989656389743631244224456461137969627703720677864664508340924537081002772096964796471028078478804101646714721460574918306302455878475720864204739045736292117620169376466023556959388626741312325830799937955386475562163255303711988264154215237481234546365088170951613725625337678821064626043460777012672221647673931835856570651548137781546427449569602764024143705533547039071891978602255458299344268817185449517192198288419602461746976466612579839619785806901061537576350033820088095110873043253167823851408332306815516124523400372000310869208739715997030967587918116785208801388465971478093669564407463778354639204909734399515334768979151720091817150174738826697765454013922681196616151727567535464140129079147148137821706046211533231278409253682421583232941453317825274496284376678260584098822747123573045956269764068137573047877198301827805240637537496352739368602162185377447034160835606832463279811578471983584246662864710634425707772985157781223112287939030278047738541536643702180726137042932072128641295934380857700993115675559747149482122856662441698890826969386704356721859525963497037425489530735777675925496920058108597994784428748380576062386368781498876449035487888004334096561309589175573676143495171317079990301214268129225887780937371468039388469177967731662618360734280632624940317628513251972724001377676016624862085155674478797227583830679853705734327405607296952492452892228703549827802016474011567858725226243229023176401015331258666339093201838892677243030080164805344627183447325676877562183476563527855165555597339244599596141710614130826645442519074771388388171318380975861238908217064755184679166195359440382249798996502722738505931093942678786307137156821861396746691271558004392148655541448208450193745611310293809887948357147612840600960665333185481784088602857321049159943206238877492836248812222010430883649948955119158324500766795740782585718193058170390621048615508590723671093888499236059338466009102957412295653056403708948984929397778463963769820265326505702331861702704101966024928307755418673740381849496829218479696501375378720827162919007580921127538424947972702093381193315045821851241849991073056620942672163074660449205916158398029229708527422954839842803330291185924564944478140153919825728725643645930384618724676598395196252112967105731618632080814011154399627225627309431312242614075791832231094251910933875301033512022139092134484101311599092734819913608361872250281146480373608022397107103093427058752833402467189414308539292658356587134738101569676141512904782170418632484516245384206951806298314980761593033168365370125388270045817342351267064383347758276369675533499209188521123974115904298282173438892097470301452415679298008666447925154153800509736684147522191770203673398512800127191651281824204218107122537379648605816502832227437077559143014559849941323526077869990407783016091843269547822456532788898016073695472086463014709390370699911066561856172458736054575708768329548689790544315025555110572986424171298891053454149720034178987045303878206995439909238976259768299994509281724516018563910565497541384221492085750705867122939162781339295464511606516664733943730417268204249910475287632860153440951101188324332513613566836400019781038868985040392617951263841467724465575270887368263143866071784473035317658024005536976321325685025353735505286716270449246110216407836487933710217740121601352163423849835424607259501860453303026196703405436316320974732328553391729315651767910512029748647151911279546231250881462345869044942370997394491806908161211021285624622216883762363013392000245513577950244036104359898986824221349692277309060079883415742914648276665640710103030561994644281611174841216124217283378421829592269853705488140242917809908069443905600319819816935926424921055583090437075598203464287463492940456829006177705201939660659447678525713270789217286161569382643925956131074463861420320151440850926633110949511234799624882591576258537104398449057102053192982987310469875844994845955552264571442588083237330588709358459850287354343182855773893268819930866636741677742830785248002464733108768087078394479161488850476622760685037563245390569744982406864532017297826894175783460399994964185218936371144349954515837752938919842931430973777827517151201364014441210481653829469997647937441207116600677978324261138597549280745525290689483508658572866830808824843578885422055646932398246756144163032576500206602048014340037639351827389993869469124967216599343096478368923830101538007199118611794015755567962922811051486399841279989957483446767365421315798557143138158162538054477043939440797652674280911696213683327941545086463615545872765761351455247194688709676414537420488369312534482621479944773389129863343286857086456216438398151410457420409506431835897682749325175105077580852851929470578476722969184388782517120800256732434491365878778703033818817960192886201774781393670293258415834559863194705741010532267376780183570788763774804848282759245382768176470859368176213337392524312983108941161861818966828682299382466322857813729214679221393183231502415938847520858145256270846106359639272619464853732932749874581348381396152428636912682958592379316826946489366814922621916787200627445178478406127016290947129887350090856168296706693811983121113947887354223694654163653574665464991243282081161345756161348471412257666966545990790485552761452212216632197264017364363033984871094855162492927384069050189126582215931963941061538995963673045479168904170008527700682270434176854766003557096580115188280104705277033519254159028791837697924331818392759000472659925512121105859454779702202767974550985266719506281637531895099219537863431618948269190376549017066007664537821779028711139760075613316931170828275998271678135675625789518778715997438952789401936291591224831815783701830825638132765677043327665667462935931531092934237856209540023954217152363487219530560635992743427498484456336456670611261166581899059923460691948635486643383628390039427717484339594310249938162158589800209775288905035478798300482636641316539011346324791271067354987423255776817149674969582968607401788320708151129013294149024455315288769314759926721883745162935168155288356407300367720166177791758159334089309924834050502329760838037815709947119422112369797170234740121053860905942242882387424676063707669790355654719886920318377429665096986520652322018087790611361627762343528499615562867739603861675805699737478676635059722450111754427707284039791658219880709585984087632718822360329436914165185859572407075894306285426177125053708966169196306479735810127310181287979233196702943858634814235580096845080344679332554616480240973268887035272056990738797005011836013350199061578235455194220373168347960721174450921522846883780393953834594153317140070433613526532675297994882795402404255094183750626817634603862467587375834402322598766185608697697575386500520127093297551745768649931884472096257384121340495262409426644647094494874310150499916387090186821847507733267188461952373086994416037851425051768904544367851532043050687126379084320007043239853504696672115122321087433068685809157754331281117750821818409095572301808634543465983674691605011198855895153965677238468673977734323740620138012891313463456762123845916824703682352913949656073605505031715664514091789797760857521493576350312330406122994294149382830834312252678910430009068222182269905842945052996802960762456596051714571790181451801175328255411066652911672335411490741942342369276554776204353990130751189347839789608558763393725796589891932909628805031208963792531925019010489361129559401776342569179079440815797477084529981703658010699726426320693840621086799726156331296618821627484838489291694586727646682011469005265412020815303640839364169136908073766223622355347426968568297439687964403900716139638127404864928510241519032142385507337014532270380856717352801023381811761902979526935042894970211869775836386987338829349853100366465347741497313252558956404961154467331015412163098201029083273915558321860796668546898429842798782496055218109486395306169295061152335604192126061219328769198568162103248281792918555368754959465038967933820602584450635800797255563442366574178387097704278526776729277795717480163932334652151419886067495807461113960753103451096182614192547883301949132607187249689770874059848289684080470599761752893524771764402221409974725168638325824310520436282086680107687787276031212143194941006891362648975515991052168492078130114809990817618019349936528701065526021308215239493995126738457079724209692909526809414986786406943402677706539670361373301698000109721861971600565615237078973393783998340448651546987790061154834128471371724435322216784581734814003350277670678567007919026058003991841955866413297749876235194579399274122503632345982288398402272489963044795514882173490349914790906689445807204371403123135169310442716973811700787684246970999868248240420472405060529897528690560681877249218841513172947620926302106272075300207471043529568860806092471599010168685198980859540868104890155435902816028478067881134663451346914825224981700625225312203112933484921536854854738984498096095535739328062538117534619371398712536357786962760377526817390267839551186712650216830530842725293304917163886846141922408279548011130144113128936531651249133026929641898205283884428471847110018140272826525679389673403837813999489927630186507674707210503673157271729794967918657136644847783547774122884952481541822897141786816246173364121695907127463802737715743523762592694595433083318554663097307236499927710827549013985466438333929912563395063492080396955225015111923487675426829325438901060228500319581838972928993706212816299516688558166192368189056296974756274809129955498969680292339904409644946693622807720203063557727877767029149943694230786239880329388328701603499693045296391799980509172964473872314809323724644814100426776430915959409131485240177908537639912370245195661099632130118396670791079627977403043716987856881080675278024479044144453868882614760857047243440675255241109933610418155506489939889518848599780467859470607500808979055446028368159787680744075373539941778786097415342246673288734832912327152045176316564643536548480957389773487309348039110507667893999470557887984700647530910552852297344845112090650724404969742428495230416723132752317829534439515352795888894437853885563536350843960871650797520861214778070830288470842718738738226585669572392203671054480140887912959903929249838470735160097123233532629603473552530832524353622779913940694467788989232202420187569275659507249574778550054989201358755099553297475786605307963662066191142434116088655489992596509261871391400749818664489025614864211420272656661422615594146795709041909028301066496759495551080710035238231703497086737730862921776057187093585062603893197553805646103281330311859037265942156696120787987714861237539382949945963802351431599979465977270619151993827385162247534052152526030012279381631966104337533927335864527009673080518551920154073278308712767205899411373012968217223853083462831116259636735812889441678814302551247236281528425721003409959694341195468109325639614069038558232472823817531693995178025669604278829479527472218762833961772410693969573491878048937615147980925168275118187420727872758077664577885372978423106438529536903938433475165388860094530999590689878802606247453801958067491728888561523304467703149210701926060657326989265995704202531549492133912614167955088587451857863390108378881089544850687624410912924793794130505810944169841841448139111800695760490605562569822253850206367165767207960157367354104392270968768620681623337470010036233576174953991731666554370026296981003226366988196504173174662259199428224004153903287192506807911014146355501985578388054987016389198427793615841060195750215796123167514569859392015327617217359851833004671043439672189344834210096543513390363124467755980879132390089022543367168419040277802611276683086052911003866639729653032431639934242488937381113302273639065986189233187018536782342207351105983953272982869371002491245296619390392734782269236709443480526154385231181113761882151921780903741836214421511535473813846625895506256449148167160089513529165648799414771593992406479755853658684760387100975775098701190372618356452206816271020804907258174328891747222493019410977641564905170616089885195120330731554665403008905185181181517633492666777898660021268395418133247605533392996250220300081574186841138358655346081417130212244567558298016652882343844031609085135442633639832315765661620580373497029885052608491243592455236706594720974451341082617503666858378965542882317883020642668786591019076893922016579178685381856727815177317549878155962831194320915211396964583110755812702033186262069024669507130610828232371963676234972831719797902250443900540144177570731646739647611565701836349253289049054012765292886686453237811061190215257043276331420241019268572912937571583641236661950809071209658631592925944634989395894729571098883030514329944320238095994535017164863187706785310206745143069105699628474482917726736734047777654595081283052322823027589917946642591062794844970146185536352439678815500914692518879458789250607155620121762066330370192755487375725990660481133456734500834144560955265356832326332074628220972806320911534986501146070604257151917012247633621290831558791719484390610702192477928325706006985053456499375624200587257675103130196881052276675301097450265706028964846692694220404136001781939971345415506096565687403352867318000278842375929716952176175856293340424237613195569250532073558676016897788061629445842929763516327268516755409186808925421898804268292811081373308611302063535668535016654204211333318344164575315404446563667497518159617811326707948850499732941418155881965509714896477360584865191735681914702205476084446247701214104265842415247960214325561113985650999107729593876852109892731886672964203965664939152785833990900705886870081040045626626635029823542289978468936448325402661285490771437800620232576418565496390642555436896707961205332267462746021543877853789143457118508483538914367097067203707091724383620373977951913131251401923739092724413471827427200952218700625242872035139619299596389128273906008463829122559780681654746707640740892974183956663258739781682743756240199237173837076435692838562699648763020460396644677397052494643096502459662946756352740870734807409059678411919131994518563909506138843551914738720966540281223598522546485311578989206136004829902181048264603220566306644275598084646829319936832788367910656797954310328220459277251383524233281866311345555790767991966643582766559360151489960588941986522945579998822657852116512267160239591754877701896768909301313744599890249454393599073386029659935252425825089766194686306533849864602565565610841137716894173663806619340088540293396482946703181086752868964704833632544071095051419422281074071404131305612136174004286618423447073357948253523487287467501333827064242673562645520166500416498468679105215288135757894869592551837371534559703044518390250175796421459278550802553703719901849307434501972831258163526753429286662765839600013861945976412841092423171785011715003621789624382259970637382822580551832917621734917376002057720281727609679611342323479413952885548965091496522049591947978195997830456640515115843508955423278369315294473406506725947829140148356554503777274638589084066498701132063041119506043113974496903918375371889523145829555600128265940868024573336779999501235820003957777741030655073427295779231726941833457216773182055338264423445285103086394002073744520193585362882833022035220144196421619700132550806332118057842358371611217896557985780173660781476374675611538766277433332698517196580125978258780774592901270181800383055226595911129757964834840934982224990809938360303936548619277397163888683438612224486764911047084036378343878951739150541757717040471820582105980438873696714377050218109274527677697489152675554869546764140223831991976412139430601336843647715279873072618191839968392988521411482740799102641476197877709298741074385959487106389887125305995044604425114741184120281803449617292690863919248968306670446843301938580937908381390860361166463507940807402767396583902088285429722832712594306942940356270474206833127023383693937344277700607598389371755433540503629136738870030918033410966677967987542754737655522431610426040358075989116895104509060762252869302606864802153534232593993477464682096061240379954283679751287929724239684788507826881161822112185979020817388554133188098744831565223821982924314236787053505276358190451884636520557247828596020969690672477241540536050220343152661900627415441894208576919399461919857330785963939017547355456209267797786504277889799596197332722194081049353656778215830152835917837881350427832769462391033817901866086689755565617972566816552475243552884623184596286037655050475294698303713090241483783398997490111913766789032849245951579535745466811355069089662304485452186261341594043860931592041481710906541428740407169057941852203231804912301476180246279888531286533198786514191488705422576355811827833259604986198557245089840281209874446456554660181629442315668907117886294331498230694867541823671071615900655085152815290290147316678498711719558643264365719449411638465008744948093823289291336402492978753449879661301733332500973365447017875184269355383846573630956049114665810920636561050886076064296474318774760388999023495363111687827160016029116941723721580762653880150238673079538897101549246004303608144210963210834551220742380605789823893985354645441552864356931134512815864265554744687738313187506128752563419694448119693392969230483818811165139739464012353887570995390005981635729042147370368558626093205495029266906887861290278195216417663189945539625983391868822285297774903170395421739162688723923460023630113921923840249701836954356126861708976088786461110833857104559618249163478991047038677294580886316324699582380172436708822941079706581504153231638817026114411642981436816850601008812452621917522654976315272219207463007346562264911280817890396289242498816887355449068792966094492062588984442982971728655914372697477923688989394774459071017757418190362993670991979610965839332078077462821299003079727264811217169625513731771564254905997143880470872154318011692716047733803193148700590481756135961685261256460871014619681188943359469684944567167432334019573037073672502873548561519094245731910739165191269919437345912351701414499938917392935621598390784161882634118260173464330679470711734679271712896129378816549838641628543433722011883650785667673228699938422496976955016687689858112835514679442634667234946623608937113106184419597318870012696587723319059402913948893071376380821228093681357825588554537069857288000762530543018436172635763924501391448998549971410318028708179679611224114966901710058657639504801334796829418482116930378380609636235558364678999100658530130796366206142033820377228592643829583981049896466120806835822013896517858255186082185604549195688920020811023839839441885999567120571646813433760505016725146376180506008700060466577469747132504863017067446405980136460865645882154519520573681643161215623160826929632669350957047468142476357326273376096479869910927688409004525159511731907232189389055240337846489142256586009556154624577247140249814165030101374690579940620138260067569689877253011612845743922685559998055740790192706792179187445086945183271488202896855784889593401315337686903845968396549483577087014271399677693255869948901537261740182884111109333383347577562473555425223020850596276455731602733249428756392650028849876836309126943005294305172149130118390569029578015251601979168566900729060963226326713762619339745793528965552408930659145661257302842094935041034787644416713730259008340773949017238498229287300586111921661905344580213741951405829642633154413830014122102463116895389133521015851582826015758214312488249391532922645942454116024906225424120552744909207203887628568416249053194889233469017981250433331531709749811983337528851979289925373884075074158560040957878031178576208382993292086011628633873384619211939914875080957840594461711660253372492288120810312519109116005672172402117428073790019678210231037475873567999710961622038464734715391587641125729318180181693910291933215347842375830424295144393362340907471048250134746984852012851065994947207831791251281891240199798343410539907191914449761379266518547675151765402612406418323792555619413908247681958427596173340132763420515607556429428081677022781140121791389138818355415822280309467072711024943489634750329418029189597285983781138562339510370738011785254904326910617730636938916505436218034277260958359970529581340632107375985596195377682716279780190780593909555598316747482813394866341647197552267575171422220186456557886960625331940984985788967045479853018247440465870750155795220506399215418824968937700354359925329996611147049357637691283243877103166645782700809120108967647466536498297682432483941687990791557560602014626691758848515484222619182241437576548059640146051567013422072391225150467212483755036507172883997795143873630911222077814717204596921551329363527621068473130993340197806580833997178455809819296962699736958814892487491184146826997009819932060241456116091871024202792223296802239754119250161667216673489848312265545646737252142898609738578150159753792132521614793820730433490065774846261933237890555001567211040080307592208548747309682547416518172430802907855894031179436461762355194059155502294592852343050605648983253382274374429062795468157142051762825898539263012791636171404864771451319712874728687416650628308527066976455608097404080601106005713908244865852751159540053449122184706659093835062935808650966385376014192835385535590658089823440569570434369393996626833146069650174405314111873698723812799184219161753907004004067202917751154653604762634891458578218634988283454340230363469054253473291534127949125735072709733786571485383214806503652892147619192408362120006927698338392660319995568701246401573085379448607449721760016049620929620637431925609833628421684085621893716371704178790316130746664215483961106760386976354722232404283162049516441628324847370739579790637670364442110152660769061754191339894233862153628259046334323874558457086651684974117688558618570219355360739550157863700569629882973617051898115970000550343532974265501882482523946330661871443515472690858273557496231754923142367399791027141989876901306540446586452352137767480602844304587857850997359553527434647678728040049497476435703767393024791298680755281461935574614366087270888313886271859188604411137121828283599120846101031280734298950738894757746027928439364446856045309621229389452254610470524990037558267571515762737199024373065228614696840014481711625314859916442040636427464528729788732935260048500446021678138180379171467021824347182290372594294738436575023328678926436065308435327380418313628848257867765821552633233307800703547324479416007204313441615468191680800483923406914700696529753465466284596021114922034004199099270374044010135876203611215686924751388067082568433897320794370569613502215336464941417186136208391487152964428314042588867111164307857369842842163183637407329122052940393207893013058147854613263392757427750981239428055917042655686377742455214503823643469691773961596368018248306210861918370954876755736871490412695460603020037845037394232943621205883875132216227036651526311904586893129889644651567401189663886204127575869229406390076882953224817534804517510374741802344902941346571647015444577313172641817252470162240630691755316996856894674061198264601228757601646300775099902991203316235615770568943331050090987637333714803909254274304141312734329287511769090489257617410249500165236456786875540490053410149114881758010534483866707007833117482253434398157442847985624773106446564873344472128347966448269928597454044852027793541056024716685882731092849040873939642749915460495754869137211666441358624033423617940333343949265235257971335289193035064422788452044342863397398415598158694554463131032060425998725770488219636146405638047743289891238692752859084882891785836462997047973539053877375666642790916521638854648018236448347335506783273692119409253602028481061356067778481672690811390876204776824391348957462364170232752420758905927105573613176641363605368771879576393361565512504592576620808997898061488056248359541743411372267506124232156593354068493125335220149536456459358364516688667262715981968514723119939424112231705951158691416532654086329403976776118301954844566094034292087620416621306275830552083704866171303850036241974750211852107420270014955023278900153491784379932027557810558990564980925923179372586250396589651091276738635174328175299951164433236742448925599367113056127190012720101240830487886720163842476699699113720360608899691140935879525561830252412514007775047279581612006201030620148891850320175589609649465211733090816218904296474697105760559811200577283462589505946099784032345507178505494649465802963178785241367845891204814237586249320462674983007630831710878821716809235602162254357587429335650299571500288643298946007705648128119131392326364460959218047333965099939087554223158736638561557153718593465182124347041898211936163088849935852686980859802842493421939623035407558193102581918988623352121403366424845392144763619707234425171602751937066804698754993538386323219873234523347307653445364902079210880140377428187568685893986059928454444841222778877709724350828593669312870168011792287855774826296442914895761432637935737916084362776068942061045836902282566445587220800265221256327179042004839239931088167427125645113793948958766769971766371889674027704846950013212503568468481582336613145803451999189537103673646450403346600492994115391417103411303566082865654153666796026413769286038513470125266014825764797641692727899417090460737702663068932317112876010031392872406417685420581100285802717788972882383987805524758124470583811855277412638491483022936485908462078791585955313703071636279964112855278286499373493498248746993954700565112514448575839008272993562705239350386422916693760634481636344129009635080114550591972068234948876996520694046121845561634703879566953511766820056398731991811050615653074224046687695194277697313894871255417847894922175226434135426212972906872486993089562859667951833124491939672182856827707212275723302167186125022309186157393548032333223489875354687950705038798652538000778272989330777239792194238943000178750876417698625091460855813144708568100343305052505077410652238434716032435819980605003073095364893826204876532127800563918132493293413009547237806197965691633306102831422657875409740053377014248923036561462998504051010144467938238118824406429483428613840729103601017216514379822517142783472607167971499830832284211134237021198108848198139115120812551358340272641055091631231009974440767348379321217913498844931057751167432775453656513976440081618522669132243454567166058776898506150833574151613764250925906855349759733386835685943081426826477340738473431588585631948439968139496427437449437647679449259214330120318100933351614027538514315770635309138540345525459587810255862476776782201008787812992233285465337940987519856349070941003914969977278431790703213747435998849631467223391872978142167263974667547827175248836748144338890252864492120620338285957422272251235164516527438857525776702427557468847153703098585253571130881722115740112181119923447597729948122578965386191917958601934637168808375612012156232778774860308329105014573129273160261327273744397337633534621732845130715143938872297611742098002013004866508682140765647007708861625801638669195565614718690773710180847461399969921151273221571565130338830292148344002629899479740451891703651974975568062906602218978540818596210795867940127988481828592518043466021462126766893160555692390932919991649344303458709988121352880935614911972984927771594720107992080689646610136208393492047397773021033200918687859987345354128503972604492125636297239671097299351570995823442974614366519552752936843009506732562430654731652273925295799010439629643460273492974823227609214754325402635301976476381562753093681838469281181336083925244193536252755599648021837886904925031078240615156267803672822639540372601399095044541470153689361051916661940752167453171261347411667786887009397693104618133726300401867111336785263877434844362929620738550113006041316406516477853007328331061321975990730757034919713481435669553988067749803107017092919798954421067080563818350411203897836354950484367546839869685917100205211252764271744170383968016215028497691868679851325259105691776630664747965135668002903696241391372172537093905009450021753270910538209360854879408989987934334613807070036917670159236681047866005708234627675418304080066988406779332556650686459347040484960399827674089784513683140657344680892257684475641823420374680435772125397598683813265429972237275983200575011335584820809583185080763416938827462875875417850803477100370749792650485312578531403238545681715992279780797795825539995431907127586635203554285436749077184208141355863712166323891624280280909329039992900534209529965840347156123828220284263386845057807554650561748414115051678168044757605784976514766741115542152579361259938703200886868911537723058452573087676673192061114229704383889999495529343789665310116528832856037814686607242920923658326891960861354388616316449480611083729229248279350232924633751492451978968423557033415278811799610149286354867554944398111072783725483789032096228420555141121619417677496588017729772502617997933595557525017727597850976634153590217685828208173752272634364507476013910179043043081775414571981731581982769215389054002754163003525565984582823620219236630975814733500256007286899458087329773346123854771105761346561205180971840658267551152790658912293350621301771680073300979696693907808084723298365567327483931557343272608475974478876024455706844550636411298864372359669290749754729141715939082767783766983316186568811429069321916381472804666859140513192658274208241798859757618766182912785315059224571248337544741141025979331603894533662210042862953931410485709484297071329169355590943585902297121188840154080233596027470388184274120039700797459117009006608317948410832201492195660379539067665323861533308432177398214717289088455386520053481015292357084417461139695231260967369653808178015616492404239759558914242949200496702172957995614045287280405116447299374138230369555465984399923413387899599947382043123029090221420762684201907257147387520489135685520157133685722553615916059684248752283200623753040755398244703298340372276036392366263794895529270081308943083776634312400489061477401038553446190185251978982597374476471530740384415775168758003269828178771666539073718502146280877565764160860430385812509460959790896154009835281113235747937947630363886649753892256364166082291693890340150517942742988082596284641506568778510836721544704934377334840435107286837280763504587563329744703156392778571285205626435784058473851446017783608994660496659249474021485426208781195341293577290882881511707973553638851835693469547808939081613042851461540340955654106163162024136656112414604558504219571409618630354430678755272014131420409510769721774062050123632222371998501428187705867156458117776452520349598122927000434938010334587861340334693512452710876307139559520203836759002341625655037371304121131897500965065697600095973624545525117430184600044658419518679193265319584873790880291138676766350583376088640284426591254590130906767021089630878701680060128227351004209127540674098578396749369013836930261011816895390219073070360493112216455928261214882867543405608559088175586868729943117466004473395375320657871298220948532609388323884498636663458904522649069991653318859830714140903474285151780107183062148992111172325410961368035615126825968163028266274234928409832952634625824702286290115647966603492630239785999233663293905556540776552961439258466681102436679104435331948167298521036391524480788390470842642193683613678054916898862786921042705108497934944318068637395994908316137766487280958482434718648937690267258315598719852819769833874078940331478573396422905410945027748326726753401399054817115397287302739959407474817403955100572593067443885608713317505663326876118124914972482008327075109758071945165483238845468396807077158872191506518244100300535327654953147096827461090079447560019587300276337656938832775284603156605447526874575154437248493045602361117561847047310296118446320370586605967333200315195593891684660269352232794443502649982956400603245020549097988873287322558744063582629410962529725891375285499447057881209043970953316568998625304076117430209668748737978004735995310477104763988696943499099619488057914283580377333778685591789938672100542148430028070932380271506302281510326098626154873436250886692056094900535138065274278102293882192123079214070162048414670895771789298226955184549471641614650493261859535015554957911848580618325647894220535170658746885175504790222025983662098286105312379268112710215903565632760776229583259703952677759965040583481481528284928388967074608147402304646482299593505111490788412575724317698794783736398608594918770301923888498896404851634060667525234968049335501208407944289497069071158069518489650419790188139713630845007468479048758739945199005291359273709683574116659641053899237491835580651139350469228886411225732975008787163095661002744175985617705597774610010771775510947403071389544173485973100006499726306492741268979587190920693780103867374264354108976970353618529510675681774778582331720651181482620863834152021828788734603660344000184057300623466029399864901008191201513356014065264599133685806118336937674645443094239453907537276554283502008686262012338216756164091983168020170529145750002387542087314092371519642222493688751443712464676564423441945160886182484640803191847450802327908405905004221485010909114557087265756881817747863323751983714566242749860726943722617111725526367623106250668625668095397421168252697007160267801347336224168730741195197887893959069848247410301009819486960029895343114900472007171959603106081829827980835657800834680500616463657382033707935420875777782105525910261708481554818147460016293338092545352080854652481202335909036655970579493832875139479352800536331373499363609391452800843332491903005890746759197065996288255573544470846378420164477186687740418911245551101393902987894678494043534177842343483513401624401119947190817956289186219929134828129551299314558530741373695828079792396845978549504714498525135971563577828310402407513489302720079143439204269423683257456259032418516122670085466897917703785615728274607513881944637775369379223056795276830698433227212001763490184376112964353946205287259434001560689921941750482027005348238416303903785429408037822244374441613458118916369772716368925337876446955536561019843734116510511207978322074686952857318956553581972051771251459033179162331422710351300843766247285571657099128499766140973785233159281325448961249299629302404613735356651082550444560986612413552937639780612927132178829964706975052891735497203654562393765337796844842067955477141823886112460519453470481566999223315207214099359506043682593606584204592038684617230055768814482077070529919171688509889282244328758786009389228246647631275596904277353711779843564406779111121582131582410640129430203036592757336007758894961662786427847998017463903234480263202738678315324320416228132666285662045482209735833129069515173311063667070045705312652574398030047717110605398488499463799960835430156849075030273846465854979186940971471905678510831542071667474496828999201517497463780063528581916562408621064389011264410236710128687548808105019161561873355727193628733072184950575257562081935662653892454702013969246305342710818384909095894863746826306475649729454102432218776520741967304347076904350195149639508858983724376808076537219743459487539952540708842779341965344443403382680507825443499631237614878758578967561871042882988095574959664132886246146940715734012093315360043946467209978435911846719228599195786197821906502266142098909395832853713914066745994182317496480757692867050156896028700745256775542640921947343939274313276133607505200760727236387617924479328976374558666017158794589094911737778308647416025458069522214282737731469236621405208485018815283428889605549096459942651440810931660417955258915275480203998630521935228560370903130846350013609365394332899677902860002668874216366932876027183689381111865255231736485605724833173128072112266165215161249522956548061033651366807528481153108707775264821951532660690457271069961840989346444878975583713586698151060440420575357985886386552992491869590792523093513278275159886384333711379293663807444522145043020456410087054047953456725146514453405158538400985226372450242349347139801261835678406139116925393171206851224935495478599914955597053753926490784033930203908996170904523938402820584859942237928097152492359734918492523181110557891738776718252938287966837921068662972052029875779104287817764599066891584044236641751725534290426435333650665288760489267097174319311441012707062706199861964067697687024240587544351370621873746563122148761002768726811749867950672512970464424394744807290775029245022309033200749166832005397744986195084311963558894885046461114558743748342281720776923435286479369518899244791578658799239330821888864439843036807052692149788851669965675742138055986517106057122308894381672019999408179768640680218443968790001855620717671021087208782834698330363189968212820925698597306669915282971771710684917966733930918500624914363767794437677155534481492413713333509024860270088492886284763432886047247093627436004505840584132309609245578363293250426591824947732932183767291342969404659406761223512110096364153505142312622218494665654086120598813032949532220837188183928644727984413074203129748622104294047916300927038513857386562059305202059011536838671757845593683619015650281424767968044082479260283334038728517240423993349506922650863540379574852279901142026815321380876961540919949957777014972863021556373999454109537437791484635168931163066584623359698390631615809620177921910418413211498241964432359577764511423741947844458104378615017572748002545565653999611366841491715237441215912977905255340353009154754471701339476230231399153733334582815561080957600367210065030331005211162634918270801552789903773379588935647180655183380295265354050906853033315625287587724084258268926187361605917387580852118913809772271748752273189360900202855977279369631139137156278234809028906265345102257960767580706319603553863824410525828157463333856876293304012298320992195257316144644290531326106369144465441703477396991614570146764435713289003664078237078212688094714442240794032651336799063731290547440140501420861301509383487785590247173810714116444004081904328959188695601094209540021138786965087389225389280637578627358592269641687900338095350570251218692040582589472801249796404717940475952705469497342687553685017209651849146522319836086083709679761439633049841651152950866327688259473892241908267730778521869640631240716510456672464766532282049127414185438529401010968748637549308876662160067368885851688439583731881797837926186907627312340260979593649467118628586186114982118071787011938536949033301389553305317585657580051226760494926977428421217670525533038884004441897495736755097714158086420353544992731311764402336546239944214439654795459985368372827851781965155884753491783807237616829758031003352210816650756982269065205637932592770533588150930075799491639602452654000929493854948963071309219795612234574774699227261556597422773903795794772458493346142213116733202660684626861117679826326564956929940813962509374607943167503028485949220245471590625314347545912691467369930773154762426114719130121141830066096023646110912431007105687334370229808462050887360540600593116499176148425621222548091917854550506905185839164707086651134763169046609630120466212498208773389173385743479271033921892649475875045097451484714938640540818195427234656008283466523554739445223969914296667231083691947221741670792506975906106136608830505514527049244328710016311245955122636153221234294057148511327644011660039454092556591939901391765033465595614826319531882832605766477971598513009956305233027590848461448372412392725662783669063825744449735128754146381692708188586738473939771238110563951694522716561277865653509544874749111745504901105273353697934435507704177447733840534312709504017042295510594602521498730323457642027572986287071749766728175807193139095025014875558909422701830475867311896585497590273959891103250030939296170532019920657325380453429808311533638153055934150202211855922538463981929928974623616883315345074537452292066346606406938537273002341824338590059972471405187848003992434680654411198849307871683089275760384718542747155366144752662915807760491614775841512621830003048951175167722042228067320926759302047280377059690821735417938986510232223894066203960559032052470931133003160927213980624086321303696141918063614541301306347841113575210602882531236922089885497145265083506995422815262324200875626740180743580509161625918393870412904454930326612451161821024542331608604221431520965324765659607857905599380705764227682435973684258604378220853235075932142394351662582094518587691262850618263612503925014638612158067838834250739879945132383758722651413315134450434253951024969359827311496638538111932863046419278695769378382370654100808098131034674379422833016862291236171716577302416001992759731628023867679003914921326566074819674514785788316478745462958559215229839966644875116501433119485895313017003375462630431283327011671941619794882102483054493071608270452463731775317758516897125917305572244041475231771082043759722562977373445974717904820226307034139417730340820561059267847959967790458982689626335789112097268578286348745246509761608873761041872093968168129518557660877186031374251531413774506538772071913503524227550149758294974652885882289125496896126587082584227246063929526874577779060855234217947092058228729619415138076904806894273386954888396389870105762299465567379940378468541104411131636182814174851558325408200969125115884251290550710114548522547637804637582212793432176888603438039650434555783515903244333364428909597398339020109207983013177686414052502160976373125453452047941083643614622896528017668666972036279884072559012719013033563026279189557652262970779420603896930247120486436624957170383390919526467645578504880838347464973454760009829536453803297795489559768502122142205162338343145115071665757412688314144796632221931466385481417917239217603362112843021641214548928025350864752679381025747431379242777505928509090518550737765468315344894623806731255142445955543741301740909556184885539056865695315713393112877428546146856046839449113946156798767976548398180719615288654259942140482271536819689358987764795188648228936055658948497700529599235934496539709598466610977028436489761820439119616649588292998370427179782381769910531966539843536076323389021847398953575684012427516115420305461875940277996424096731519609515970930273978619783330155608466389987723511595036699630555894138189514101207943853086690077668645823808090194917882238943175393583051532355924923370888433314875276465006170347482437229838238065776779544521337859682685125325121486605204970116851699633419107368777665087433487974324465513126540674125532539268146515856420393514391016697018548097030181978228012860889825824687233484076880478686113716267987726693798462978059650757064568738697828244281558803870132527229283755798890732435656507052644471077152211791509186724298958317434149494700578636156659208660874132001221167732552026600804510958558476220989480966074313257104235669364478211509456286312242717384245814334112159917059749642392662032024700465751786367711225696503176180289194729042128672181863252832645724674602332228813610586982181329147613749377866863420604818270771137767802556782082816537588121934043560404192911073523746431983558045646289775260664653631242175242022874140918705291577449108778796241515585772384296030240032973253185258917620545825928667616776607800358920307912037398393495105626238435280158995665916958067600480068098319897664374378223990965684752200701671164432357194161306872341238510827459673165681601068357812340069327286867574303022121588087356919617948374259662901690395728925629363830850540709190780919167524108789701158887562429799358299697750634631489745432208821618880638143011449809297602748391551960850753388526077845176056728548522942664708061099683681668286401298811565577449050505418372173692124457967743067215345886138094864261479818295440499844825085842379536155417545026387870155185526800899435347654933538774883954134579002969230127179096737065042696103379840457942999224977236358848499315657481827085519350255891382057099464113351206342365825361907620287894078787277775191504215541157619701050748914732181592248538026507047950454020796539829580302635804487038782216474486815263171521886610492386268905162532666974364535250910135632934778000894788848259988005868721808558454732583214990229217800717656206885928901171483185114609160194797432233960779515322829474075691024066164248136107401940015539648660961225637999180192299736296961996637090914233162587071824649214470095883211150833103541661048454921326940801566625191951921297828101556963439046228332857058713474777539503488373696876988006172716906973444389665622288388707605097276773403329562455349002490501902040262772306292298056909371010295660332168359557221137228588085269145791354168324079361828257103136834745260410705850474260702962659566891438063882797160823647410803832699645799903219903434280040348172567618641399119302884236003197546847063868306327673030590655261890710583069514627953239742823746965988391564542929811055658862182914339244853098572029502568539343805621809600215649472507562460727167600471652788136109144742116863206142568712311676265416634506625050544333189281896436148941463090183273922696122678005471349007166632627608682717917277037100525892992881310959653439077657038967667721873359789001718777458796149185298094282139207630967622037300054898322284084008365540679746663573236675284826210770652287313718066060352617956119004485923839828505388948468608442942761682167364086283873482290611436440493541052966992355198401990171643789649951013392251889653161149724525171511803122334750411702487849141479490526288352844742173754626968083337505212984222666615529464547872207430094978216657297234508841689099439307496996375616628815891434979696098244425792816006575809210555701075335157959848545207796641634290241337689977249711421403883651059751767625715082746052656322586074023495601076091960141473630973563684651443681806948795383076439566864245590291756979687928746886896655312852134804534966891478967789553053875617659221952719124744445715373074359227908667982618750492791217041975364282987922437159222182373811738961359430030926109007514679437739997765415217839819353390973166463695384931016131193743554550088746351786056535455169983815506425411269087607391151767660804036728578864126246006860205674257337021476641212539581355668101440060198833531690703379730938281662062070390442377738691282687829128749401125002358791306468394929938597594110706522000942095383381354431614181333857637906436518980660941213108904978548685870099586450877015326217038173939597375108517029473068084647883850937639183101868630467271472373364771007737170784296750876123609360080254406544896268782979471490189695201632681907167659064819780711784593638518088439027197504779405812233886682733163674516562108709571648593136371052104487464496337748065297914494844793059648616867049892830065857878630643085481980617249881456503921547659468353450685474529339130565653125435719055013660451831696033380839944698301991727701988688612817278720494348814564217282831012858605535642346051717236360193449952890183413510924691571967550580973749343242717675304775058397588979642782820460939841580598426424811621373502264330777112966428332064693747667595642316610416041132597833023137366718913226109311220533168872724328571766528518648208746515445219417034698064446692290930101437732933027840005571526708011179630601961765555380009661896722425711224661299895511712666188217435076772783458668405129193246368605168069425622690913089807185335628917117020068260516208939539852655819764689212636659948992188973418619993766152169927874953421706016514755014419596072591336150969773582172213360485456712951226724441312713225848439354572213149532998641178429611494154422954490931404121781533400665643862547382185632216842384730685896160316046467761864645142621194496070102803876228299761682752263310517240420417144269642393003605744508921855786115010487779359239829154430930695761439678663582366812829852836416860629502608155079371639193650219644684241470058449215950982602898420111661011970431903778649023151658472295344326517985442420472765390701189447652586423736735458672899036869417389815719707685236597893637152210168019671204391187885192612970117651272605112368719911990297155440605618309830294756042195180511978257282394052236522217668588899180263778634176450356163461904638759842040400363773030998045558275607942302597983697935239191326273545760475496515371813390248808654642883976441456656921904378062379273639776210988157147508085747458848140460335315074776850207497449986399777436326823862519294846095335320569481600775070671150015099409272096676939639079209872480395517395286353482620049940581467916912799260334232244117535022401636658803452754969241574491254000146510675983879425253212272562765901397200238257035581199945762540119013389342044757997276938872514655360937095473213759484860450398928497258373252429111628497049959256562088782132300925332230184884457185398928470836488388675501174094818961409850338618075520320377203198873108118729161283606109775308714027513922063244765175060915553753519043249910112457238568398479994848854425462661919227467298349869148751190992776115204191777217680605489111137994922134285713659619958336018564065603030409710630990667820717527025574263843208587140398891247975507363556320286082696100771358961955923714275897591896006428914958857216892848199031471395362587516816756957935983300161440519097600205976639117120101579943747311302631922540159087939919267215871375448240234849207672924993171359732208117949320594383742796222785438529270368969435731618603138903744240480852270602193334144207177686879493914272312196819475784303481872414334379063231081250706248246913233989959223848225296181139095529625288240756268996899577765978842980899535190182027921650881959596643340276988241374451253383367430786252454574649257092187611581776979385686234910134737472364005683563202602283866736019259001065701746868502979125205738035774292285189723322599030399258021585463707836838592035494582793604600824827353358905461153807867712553612473961604734313910659992728702570236709328453462245254638971545564040050155949676291463649976899119209494483140838974460237063890463317977281839082540408420457493390359658127052215257323849022471973285154452954431342751940914929271126583132866544034799932760803849755441260392629740491197209520578764271956634996850566928466457395099713611596995122786553982729478472500477392756596871336662679215681817757106640828583542371294287972253143107765099192964941698117279449193620183949969826912751561988772489775722039770262180166924143733219844978056610680222549277583411452871476498937155302865997919872752072145956788090286633893940800980858985336605676057425237002622882265570809115845386279336168881144442011454239498935791152563534480791473456075244603401547006664842438796671287499663810643263435409239548502874311812338125739464961744924275894303230851776098553015252355819394113863480007853295411077484828926547567364555160444027146134846559803266929317120742714083642111592548815689648092703678975546153519342549011475956790862874399615999469949667198216713976416263414044578621648664738745560660438309217896446166187061146249403848094861057358438262457412199782463448089458030732247130344741930903292069757055062202529580309651946114626825484885260051664883462014408161358398360620466401994394143454290441698172727934047624651932087289191649500922066807681972189743343171559635299075621935733535938573931677982528024991662745491804636587883292597059957226279090583546983358412713509629287539606898165054174652259364530579453324777555562930134338138224336442598114266068035270044912680875355823566196927113255738591892640509954194532649024504026797853082353082109374194183542335792749231252318614915819575611932000881660785841628443094772901577566214250572417644218120856840968175464644300298282604076665914215875637540149224779248032535764003864132606240853837049476225543009243288341606219276171186199193206140930815304586395377244822417382048124094094945959072319760959714405254444511848053484307073682934001037401726362348733594672523286671954299638484376421276089166884578937933467867917853430450167027336658833889571400783428194075843815157703130514558673056637514195807963461117886798118377922292555512286431250494917139721671319471396651535562300800346286580788351275006113380870567460715857501888401278481635078331253811330709581769867215556875394955295185207818017849932789612572080203179886721151093207164444391172884935376519386868107902457759823827531692439882051413522887463021941567225456581808476886634605513247137708604607274468275715409062152266203915087941886795034602155429179991867906847086690605665937701732438767721520599964691272891349626074636532709434021442180633728975531380606635624669475805709055720007271923321120246902568888053698680035212000831071306200209080008013194703843415729710489576405868712930337700025188542813641886344073552033521077133465597197039262248407925582066347543725046317933317035766274159016448502645420842339056391589741555711193427576385007593438747579558200306483723509384330897716292418504657452935146131735685178388855468912551554239754083226055954479261511376760885024083115188116214130001036420103469558825342534961162441432953313682666183169099369896244948572018873239060897247853860642643176335868308923506986533585452428044870907644579959311389053452326741050464841227224548765379606008317724332001604995505811875438525548546317103023594358855835955597297818143240936538914669544288942379733776049761786872475363984677030270123495433997330547164762878390224881905284197237577269670670462095301854368725247087019535784974870547641641180220715714142643291349165517060412171144458990293476832447418402126330280406194306353371521109014296550446954370797233255923703603810474703488948645495723793338875902212596633370453492563013006831105884164884214661147252830165234218996024257803472530655019570447088111845755484694491893848363600849151062225868727857247480322057999738946323844841927638231699612020621391893561075452688914400391444664266556469589669868261791456187483307005437176171558445947626161701848540781608522146555509159686380382657354822922433893677963847432741891980573331252884896026109896931031594081541260041693119088348876013233460501085359839400087469880302345430354095437845487981784220429219443830548957471871628230011618279317217358712784731675310665942796843032032233010060679729708691682188527964981733409795280073264144439349153684853447067843929125875718406075016170588750020026823332172823477321084045222240369247582392654013987409766044944882570316758121836680964987192041423933380594192985082331500866343596949062039906730295775812989026025366874278145559330997222064009860793149059083675611511597392874603722859829980581269846173385440700998395138274966089825070805501509963518611011105766497132851107220405449519613500955719263180495167918688127669544990937763835195719263175245869714745254515342006666396012830133916636003074235253681658716137939969682857897510498598886104221327201869003417842384096643458328128481857616383470535809532875126092200666454301305962824691656237668563005661466668909381808196899437009089909389836651914788310049681092431765920813590356489792826348881767137880105745624517855067237357037820104403803179811533258603972551189368585193218167551682794551522383291013877927744574931918913778834540672413894319609122207083132298301492034069650385499446840606009337789273097793453748250210188264539764896031042527880251319471545105060313838953617996347441481638102836095738393490034571736901640117025995640045118309281608908408763358607563098274516715736769614125292814318706864079661623321842500141616534647909341695766180277909737664784752993918214273426846710217801693042010743072136049559067023116646001069636645930095158748226934654590808176867570649825751241264615139079320562915171185741321134659567866897400940946814955355491398458175359211116651289123571315933254414245829005375851462941847307521667816501067234019924775458231290802721166872054222424992675333194179009665829521336460693549136248305734582830979717122713954320741566360954504599115030519204592985247482346574349376651942466912897836688626705268416934120869702292145169518396279695982627942042130218027323254534707109286897765530222733881185589554246693650924045799927208058125373855341229460049763178888552240360542612530743423533056615766976985846842908990914717790393984500777930547875818450926778209859514256618220930138395178651177570223870980109038545840796122749080936534055119911110685721554724312835225280228814065475690219007003317305504992356706886884998329452953215523795996334079689346717846802909641522715739767754487586349905561890205474519008330370891688476190449611700060233752066174524927714214613583932004882828944585904713527502963004843021141715439273672013145194624804069543070839330055989765652578060721547930258178754474263394929769149952055188002596352596956430159483729841403295015316904273532689317071096759113680273018716667201890949257787147269556426881314328224686044017231222016021005007156284769842307559182176299942950474107853031791800056874076320400028179439519194761362437610242027401660843879044638179242787020908174478247807708825800693766743370983352458312833015397726068009209155901453702589289369047153151703252148932465309586432864201721408970654036574125650259338971696674235329916628614010836824242184375335364495266006941237746220173218803392433208387725894924203827026360524123254023454009717966193079648731278977075161569655076175328456699587635810890039724704970269118859228446490614772962640276033023820532189212982249161175365760323997769797454458021557926795168910985832191227055964035405158217579519146165017799967978985229109653100947063665369350151990697695827233058810625534895089962658068782196489959891549756067217262050957324981129137646413881873300429088089006399724001478788455644246519374336385719986621477596761383530691419121068055079619223607171982552337084150982909119167879490889217476264950084247261521415124913063198799535347566726529398000324898245621618565557334213899338020874907616275741980115319741533148847276504532654096263898149478218788275134264079773238317100446541973954091370784569037423830205033208148532315961192855483514785897556709384971613362229754234997856185902759042819731579263498652510461721720599434885619428547421036046602119035097424594500251525841747385004237010604511990930436058313603188369925225477848806076804505503199901473078280101426831444369747295471658926890088999060087292289734982741095241902193398422708272656606692877679482433592518709353672349504861003117661572037629305815984169387940970840608762987140851653423311830906984094641862291742412711588572414955261937227763274040887997911668845056254051318616346978611003931458870673167917323374280857064854474478388128897352982419862932271789000897470951861345468380227008765180374417045595730685649548290368090999443942236209208004036468796700456559799898163696134530614985111423443553193333595993560470523299514635668066940509881134079682121129155346661402244511835239121693819924082374942374467836584277566739120775171439314977212863826715077950965263753627903438770161473979503957703292752823801654415044359476637746379910489657983047353786474693207000256965573412351846335205953538667419882478661140751112882444165575176207259709085266126987423340875177086128044093319198028623834860654769073107844148691502356625763689311594344569701183561206555167800386739008401682211688648495558249541271159372362041668217929104600412966959297649818893170209013767086774799856459410777670213236560058643624200189906853514000200721076978645983062489180923741012041685307736905874297805054837081943120362874691639331785336006160727409832745546974152096412488646917895228678700907979890140275058188885880213893430277746519334586862850869863106191087877586727394121886162116917728617290634021105224712498765784723323467060806643367875562840284555877991957243199500478280135039158466731071421798210052706653133476619063357109443534882113379533095266278733656041231407574919222518654359375116467148423778736253071104893516985619545374381851213392596369836907259598450039417207522147431515459446248851705210159435789364988397962902086917599388011322975660659684490701844488969093132382810469133331896077982617505255752736353331586446610332603788283924161404483597027920101663020559428748895284924120488072898508349984885451760902420603315111158330400504395185881397764960218863305012908349442834955785320144658161841689188340352412186548322806722563004613837940248242620748730925053513082419490911032858574322366587591215736712705319367535411546290548522491488898035923385235998890640708766870945437499698937014451665221451747166196046758856169198934629361439356303237145386969088793743195847822151200666729645350675781780900158942421019341769867496146083804776500247770075601339696101542252435198301752691896753692864027575237087261920135698251751915975879124025123482895479446449901570619069935568088077554713686126731618105337537626782997102193239743742097456934332851493940691406060622338265575550353504356919320614613726784100723490669021646829857835752720361138357862555079119824197553549322563562180597324510556706202472236150740080055956763681415428209218282162866996388060713145586536848236976799516835991517819275439974355550182348073957841526008929752978289195082707185106510404659574613785360514175716064544581951393734171104024690297443248010278077394823235965563038814145193237841925913882393888916531133928861292898203220067334303332551409650559251428529950259124835936366210296925412703008464509441551135986909742520249925875912733047965815888290929540504388238640774331090812249221783303799655484418796754277362114774468870679124278968000300540563580100598017067756818568176726168258514563433806792353519528219389124738128159056537822705641515265873903577799233136788742010927621900766586840614762450077981606988533653500602491456359818777765863477589680711435893576945235741538781629559462715720702159596461559248811926893716982534483884872155368735840456666626247633252475675458063107304199041738901132701212433881750300172653657952087086806830635808993333463602487800104932996566764961205859121479669875262327432320512892017973851443677203727558906844381364341033050661604685605386736877526906554459357778170981796249816946789544926826365969336917483048400743881834233024742611840118318011482162792975551698035809465428125348379952046752454894011768053156443061790163664575991758047042288163748351769877003742842652737194872600243116751280181807984071735474715043492016098208949601743784120527283684150671096024189672850737170834339794415939798926339089960396191784724862040440262598487167792870565611412661070467973213296471099354233153884036629370287711945513746909489399681075025982307151193273989572753999797216273173997269376314613311689709505396559845522897862352268641934233704705370665960651164951645284578643069779574533870459780846885182975345491715163729953733064091062476340984348918291473819779755143206585337288588221666908315659920280008464034062360566818425384372481652420060141551125746410439160681403064402960839157512795258720350188407512116838558680631053010287315652612798578990005992601606228309590650203660124434207573763877250054910456772995338666287217216520909039903721095496542660143001513228477077521381181437261688723158436621870411830389221836296311753448596219026700735058308477539650573532998797541250801671812201175198926178276185676301912390746901734850302614415802214377362739207502167685776232029908362621520358508748592913119992732383040729772219526187643885450684390259977128357015670295822684917302973582228757356348198153732967906763796691765810308155826051461410230088198015115625684278946883289737515300463112197510528239887965340095204268990014029486336800061645911932174838701377769137015490507574309701371867012195108236246954733832668021957195182656304727922244935679019176316266335250711326550870050263011742836045239387949367327589735981344860794989230779804748565567940405449991379967536966799027853206011754199439039804189708684142536148283821683549113277752963150102189588710366557858006272276978996983949534727796448763391852763607660406050171606475429747088747787113745932293451666957283575714239611885522964633610391423817606335875980674356079340549616438484770068261130887391915183897291329296688331005542401588539908575887560982360756454740305423307139772910070367583486930681586591895569386041828718882495446538570042360056448095698245051773900754093291372990677621263570263114380144294237722924699162869092248116966547000621497137170291266271501154445622755182081794049540891250466025551399203400069686012106766973066232788296368465585392416702649741387430154431402173232770188957816227128035850646299195212524750433276767242634270174092832209435888407327759600135873692480166281508053869279121534342168690940137333243829513575216982044026379638973591441092902091107408755479350644505561526945482657049765101177376296488659524479346054641310811078155691763429832140655175477688504173651092288505102225765917295665080677332847556181019099091657142055230880789069958854885561302437410484061062716136085280503713624412621453370080096659572947066304799030354609372203331142670455626280284685818884768753631431273504778577397475005316517864144943397781212648890313508141143751580433688938578444610548219618781699871322841188093453908289045148695060279878754400579816874321092124898512747119993470493629868141710493018941318519576700328263976805583397550507347463063423613457509781134534713056459097113817293018508842644252595620870390893659387357337044549223268061088793843008670149719253275609020935696013542784447557186203295309448224395426761178182494587263791105775062391502625242525942104934137350090592443410311516933307478914419715856117314853652582193481141128425568979728906021835090963975465811343078603218356834282262453932721937171274575182429360694964298568812745684324300672655648642952025128835165691132076990050796198690687854122799118057262170895560490357609274293171044881740176435995501441097679740867618313910294374616588442236800342510623737629469571923400876016143329664572562025338872298104518093348137070770928507167665931491391621701822149045138506488108156859225286211377074681841731546980188873743131342619954159455538884490001615560564080890902689827335819016306754057237227886980359211444780009587589282561970204695573619717367136295127282837982593313605986433765495551938610672986081666757926473541412134759511902702619059582640611244165349082750802429360250600138819930994898217818775779133526638376495578574766302228401153713401226785575848724554905952240076895206794637004000891346414427249353612219806790074285917433496533519920236940212244170930042809405297445338492064790669210312196944628983177040360761341568693090574348124100279828563907559610475133662823710271242585779539979712402808282367767557392376616468703576332938139895377459210495993970203187798536220006514452513679326682888787139420803141584107330013891331320268412245370219716654092957885563029373995975437857164667115620586102730498441535568673542649689217217311501465600614665833529487908873285007017821216672017782317396717700635603605208780115349206025242570231023595204788713510496572771590901000951917344995170707814238429117101770355946271187536096868741159960559989821647154766738375815822112715123631515512934147322067098279385022012436462121567319525404935544720301545350107357071330411806540942681560880891854535557455765264338496597993976160113415052794217422377750194558968596693135432043513325410024068863344257109999896202116477651900482954313159635448030690377542682300408549911355299389318451798797272681696453548617084063930989545932435676940142683920284743323427412232921953585017285167166929259632560703348068090142481668921162348212684907963804116339230158431781765292032193051708803831963144329800123094373514026820066739023976170420682171323393223602390839079710136280872656066722990179417670068951765968712260750447968420031245080897690937355612810745419824961519520229119862879448863696605826192213109341148608536222598142084508480020875858852268828951698458756988468864847597078893633767915479893275569685984516715984634723239558680743699670505830160607954570415972757466098721849621393827210206191931074756271787164587669129233850480009719152522283001031416709425444699968712717209192595529569604376950070692272501243090865933802341122389478957422199083786548226505745446243025907751879282116885312616115927765491921825487871859879211726884829177599785009974024697711224718116507489679622969357407607911613072310380988926052996828741439575597910428941026373014257458408699279196927763860853845828940710145096320990427226436007883704085897503223350735573666971133315151366331303379830261580740476269403686350919052386349530318680854229990985987167114026180155892110953732088977776467771072299532101367847409246504699105059106792423392917430798309925394090200000094027213752437894085502355750213136008362117311855065870502304813045156637909609274896678865583335109996674477301673313958707374178183679861054474651159270678350929053439681847232727418442652638084407844736777492315849504363687362536899833343958289053212127787131801291836479572493734388173596226750630654622031974376950925050777730786564824306019013366314335281219948167898281482786731083153232338479676904300376796592480443615490865336563133568941135801460152319523751656199885701649912297573762402053382372882380437119383563588458760801695298412516671061233461350972086323370999453813440882773008194154171777862665287740724657636188231639219740640521866983956104621499782841305002202473610855433174935799926319214677165865837896885666004122964872296697417428619462861486360765113561414993287063622630063960104758699758283301663626699330012945965017284381376889853520540612552525432740747563949752656956748786541187848107957507708943883677585012941692646784226795507165600660490314551543059217639170332928077525399963257832560905742702187700926642263492179960613456809610257184382136781659530327317963089074605537454534901671117812258814431983982478302547409710989143771872416994683281966164191597561274215364264960276064030091092387918841812264616735207519171182347584456716806701060362088301274760525856614424041877642844836381791844820156026114841661166165116246580058115358825612407671453536769975290134541443288886398241751588669807176348911901469821035576483147187940536158460193083645275390186912849992961436276343928293411454514492178271993715314221066310654457284516638983633725369765488514052074617603632100326812304860867670314174691381821160875440832872847895467814746015005301327512242459924337259200661973742848098732221757023139550233504084030173166860826920689545402590930609292218100724034916574104759898425444550608276547669816347599630245093022119612228606637066106355171269645990937054742116417376755341250193835250355139860662134423125886867099161149802895970574221581252681526737688069835245647183193678869522874416124223477788498141329732727145498990195469844931491796870034260706902727557433179264515649986240471676413992506471016817081499818019583697597710700798153116278870752377316555612686845260663072540338808299907027501682229119093674161427751842119831556699960625671031518632509033353788836970118876035571902876953688537474194439970251052577579548527540600621416496736653069088255515152301205672017130847701590396053066860970362846192644482598799175005910206150260346748240261020985667165883137765854995061226595154329378724655650662142003907507404308192339013101223113882294355642967940998686382581783256262375863479400967297294427137863141740988764603163327964513367407697138306446650215261360381712798573866560286800211185026785844741624994206012689398058539522021772663368852615152085920591427137071301369023282639328134042963967780052499457669577564087173318819425459317823153862366237767809716671634427738773989370531406879613174603858913935385329350113099354611283621839611302131426141569607068548422438340052651916802802868322554644110585951169723642875949572632991398231561719640305856192733246287523261386652736878317535790575828513480683086757227846968759057723348968648852775562712511102963796361435652897255122707363439214996154954265248869599953732153946468765758921448410434163202865505485569512463609808782555160533819255070443391826814801914665033438349157197885037894961559572342614620242758387559976570452132354840122376187999792457707307764890657177215682313681426481053199862259336005834423782808975328535595935922778099364973193555975969289084849284035362410874770753734388402185019548919697293819039011105662509039107288690715915105552703258358992800888904953223183293549734342273568988521687239587046201088969771475295210079672013581912888367649574901370446372614042703484467793006982655572863779499363970233020919500546801954418059621674416287209856432293591109978017008842730186753802373208743709077172305893517049038977106242830954958743355677890616207063950241839166063519303266343646852920410207649246629853821893314206863577553240255573829025520976521848284464433542434910338323468026240965520304906263643954710329251123752697895813230861018666686132308630584866751583812905173879233267325610747651227569153772319915824132307573479930238622560345736677216617989824876623966921186242576235119497727478606724452675073079986959104647909895223063467015618159341814394129162932953122549325159020271532380111815056119195715426495641905596734384574770290973072116216340050834792686358955121103902260631425130373039823275237114817668256360276928602159259475581867376241311692321139436511956719131505654708215385427595280858364775584528768726538716559521991013489538600231216710905733413809374342693036038930735000162555509955386585919329967841935755630902925280667179117683229415761343671149682179468057193128702871209636149306793115125391518197825331459269685672098098886399340562586426597997551054954964479753229996676338273571803514406664536904557435234001391830432765194416593575079173745744266190949461853048410870698589179377085642132577671070649628230903454633308243249278568132459534593543437134541715374550033617473283198137597077306688072598383576185318200946328889703607725659368516432168441430541860674885225227269475935008249621910556891270401567522080150146047522513295465292472685891490628678833980114183649371340938566988464029730961456130039765069035216161878563590431365137838391854994279188183433183676074168576871519007462427703761914348326956385773144962775039513713718859147170614800011479825211671047625564854862751470406411956697599605441923541918929016159916465023190896546963541806626397855506083577119721506414971298339156642389261873418314795121622169107847347030777304650960250970679681970629611182792266060545359070322680955123398911531965233953331763865322748728795296221907729914212120281312866796588873485781110065277848045749479329327219625502891286776255703320626226347697481328814636855785890546960476883497523437326112133251596004449235182882249087832855305959618685748081322563268607550167109073070728079159393858445203018373445213614272573861925174775861828326926365294124957019883704617402648079886852171600757369286762900851879991918550290959482454859434656280643941915344012925797995285517465382144529949190962182127286002580028288080644025207626925023196855066126649714028735948439558236206712561773574326130583015448965315361080140282477967851688928242537537552414144629497944703767303630898325556176645532492454562288596451546007751993694355295556479304610887972277809288903989601154796071444197498049630747120879468066056557489858908992227789983692757700669348798614488367231092913783242392334643742970574748825876563595802136342252095750271407119579610301424296946023398066933350576811318376608915844658546026417317472150001161542188234283073087016608960899540231435437273296764217184521228920785714273854299632753338980789277224382293197767746105519650288380412827800405611435685424416350762130562498314437720488763292544646071427367799811572475676965418790047991945743032086076417579094853712411103146134269926426452381358812704382322587689587514116115524948522653399814856358286385290797741381007344163966301740874645418990606939076885322403481755026504432204245743025975225934889681277661184591731005558703569814164860249159166448872538256277306517237734673935394534391386629566422473303438977600267913410059899965503357911866561629728693274295577123667523430433019890045173736380474632890814066441898748910876459780906322513780801125729233096280646573353133835103534725617416615093541935803529696990075535374768647781676013259682709304541086268483838791730190260419868433840308265963537332343654752542987485379599251119177201273624868455507342210237798672935752138171670402483221159131887492464720196997124366685881292484569745999140723847641701153869341971305763576464162512383836768983083604541754448885830894911612998617288896848647285854611441743417817319299262941628438998562262516388446834300321241219226720479864211951797001204211998622741009375615805633520591380739272405415524309895511349398670002564740952165803756274212785333027183735287638669746536530301637168558939798867418458884798413172361573177403328139224370338253068841742687908425546761517164198067808461283568057872783861333417400496607447162829257997803876275956003796332977922061797287467517534459748910400963166009070824345779807253556162041046926040496724678209104862378861951618941194154710667475701974154571029968465576800582762122597979750359844757525562171335555836858064450007655263927575933672761299430019369977920354488360702199048186463523039773594470788865115110110617436955910711059373656316184295530887012759992026546287367846678076061556172858300109587172078697565944937826764944335815652790709707914128075896334314053613726890547404456414540331623694181603982789011786303235037182332834193092195771956244440721332181225502008001977206665440700880817168265203189145126919662784952396104415470039322022250431512223682494846544323115142563780218049976692442457476880536716221744223352519638332547121798895185603094384132438646044048654810373347588008666767828835750412005126558227567634524566626468622148781959036087538213557483602563278773966557462249330374999293116107653157800280690848549219264100144564790615973497090382989664906963286761852506802011777265347200815604131766318764580249390695507936677066178305044967959960394590998244894241464058646667867441806249069567091897701681595896714158544890929307011730656956982326115559600968734669373727465102561187919741329054646493551095723228257373744995976135923782831949935990211102894249527322121850231459700902918613921413781153298916373193782186050807221535103543123312451675151160289737749998613690633271775044242593878805126648347659690492478885540892555422999266563928432528672160168200606285212097019723241602351043476307479683467902422772024792589982115666151754581472960639213471715080088364962087791501290067173262392499661585602279729109901520186255632111453403319819717336589574308838817305655644979174635837677135319921358634085812990962737170817909278680544841417460187652681531758133543858649773452953188422028727798159993156833258994825002879263687421065358283120723961391484932351681384821303023042612221661559441839325704919802826415832178356315863898487797418209324924141382068675447230755481794787067106775335276037813379281777784505826511071480609823042177422937279472637511002834062961305940056282059743043442565796676046691000821343626614132763889304019451334072869889322229589755476672323738586732609270854562383813452039383024300172304553218449429624455470726977294745231990109847550581918705105336442325238983901514917622427845317010840013075005958913229135180869823581129378337763776760093943461039931172782795444466879674161292673297665038284428410921924089886301312670093074720261179272651124446179826877046069769178591591887314603428130760936506077459153552963414192308408223077288451783309716728650060283544796022712574400743682298826665757161687912902481899167925406661213931505202774688334307722817550235023183799017110487702490733706858847355644466014887586089629563828224745617559634063645906714531882294879594089528509473492701206542810842302607571904364625542817205828822544274276719248437692140171526790400969068122533433293689800480524081418271731371889176013699951883639723499533370316311392410858979615694973950133912109115163792537139947733504380841273005945242820043067088478511849107652350688096831760109244233081340734829947744941162961358571662104144139262480725662695003928968451633602354494555940098877068833064833509220066059651593829680786237509238852914270324415508073739902658978187695376301423285417944345009646130497948370956507823256877253317087612941977372898639366938806500515064907449578408034449565186999760026143585988809307838811996131404688916754427843973588035465179330102086697885260832962293232387780614046828746490983014876304196878018774548842593548839742031484430155038504335204616514467712218032739586263238854670985962198887718694828063868411701315289896615466018362112003399224883859237572296323782964145745674254236299767487549478066844263458756239836207064220552142610099602563551045873841957300758915830625404511206896097562819701658314561313237015781228002669983054765881139979839297191581819659873382326368450466338497047889324623605277936095509529169949633402743670693904358635583517018883544084194833035675030797306934231439432623372168277254508966141722567936844286108472331926850040049914924762658129006531868037379900917101359761772980599603407458765481502162182638905899583419613903952117339337432354374124591657140241653306601734604926308707318913431259950412364348220828412873794353503944990089042793945744478455054659651583607437708079503143413443115150807910223351456757981991819026178333882843332451162995763235048882866759586676621362583421804314203505709711413763737441003469485016626026795114301034777958412448573741769288619101071323867989391317758181857429282191194170857903113538572237417745588413051696588596347145783297341994931627650416263385597269514379821898446421105773107227542070828592784136951320680801018070998079783670508497529438859125627064072885809868779091378549490753714387296771871681557751997407308583974720986689049312768389042297634415127289755304915590256073363409180876663732428156783821417452820434795355794846824076264467635210573899740118420372799770251252053828067617298754241460072688188376090507392438836218085592682838442659577462481533551573824942885121160128648686945638450969688655170174511767061312755288305557779550061248989864552142390402068026034644310898631596417919098896280452069299108616159612881752265532834878179251780709377562968993343713402346981088975021552340643878914411132049381302066258510421070481539518495163040211685755705806872247999899230238925304708646933825287027984650296054759581168564219187873762698032005894432457771483843863019982714669914524006881759490160738445553612811430368847388084081946230395690918707338271720477599539961170372703184662461479512090078173785813247484354044813862065834346932764761255021376003337761234872019397525572955246969716421083498082862086707366591787782543182788022223211516429613038346777559891631963532256130161124639190761080247678479563260481907472529676305585667226322769784260987898171758342636103713386727190316987874142465849496796796445488926429541288249179575493951365038928793856884141052474583670941601979850920968338215739476432224489687840532386198332168411808938248042156493355685402837479176795645538412146686121229009992424122735354352963188116152751498925346588076563066468560609761293299984819292890621999382638244524514988085064059661793978440915580429151007312320507383196987104608061399585064147934307536090626008080796293412930576847032294078601701915738416602513041996650788872152919753283819130422196510187497881550814239864251151441067629510891335924269696985071596023441807075183376154680677996282955966010491812174424223266926605184322556431379647807102915951767424729848356742296272899800518370464307454829353355378593090113717064634017945852902753976564257510742989059139964513058121645149455289226715155334237176595717177967527266786298393443393937997521128731451957979067550377992067398387008782011952043355076492568412692339131237667592930386890694836516092566050219060837135608398382641475010696035137376843273333228962352814058441028294138874769203767647223975308407368625962329217656133454058255400297936991732510187057408880316047178296519669083238903421822954117687360984370428185483589215875770640872638785765495118000439082946897072239218961337063368679104952491045083468630837420643594046895973733427289645402935053052090012937850197152479518777207522620203218426998076909780363622416725060766582311921258265717685745354704315855444561852262393068755717994572185766025042667419111388648416289018718319032591665296435142021030407110453086920775714986038922701191857586141378862060961870185956580873262078700588553179561921249770059290798337623622488347330833493149807261155244794600438051690431501643682015617379861531368457625152809145284735313874817477549605653614353922529867385216124888732243051494349343257808291497459469355527181845112430278522407683119417871830077031560163393204898816958022488863637372268390536625036227059491369126010017663654105634611232985048171280309890561109636589412655117179673856427605984940796877051230961744463067326301051305588472498736401544194447284857653318996816780753898347256511982966721644213995643069680438913181916596031885966756310202259351472449941859341073261973659689717571911296464670995813924177999256019388608530328408180177364688091698493932031456231555754763054277691099992336009079567311875512704973968153098848154992073333958171447389791747505988343372519415130438342272709528967280808499009810577930081312911762158405850035995515444005183370207480089739029470069760337691888900243425132023908647287639800986013939784350522877862256432416363111630790644450593646427025952381089039259298910002318898158790498146412372520091980891989114023998684893022625403682921111573478045928484228003788640560059588860122932603940322974877284604377396975832694679487950869064310355370305428223407431242370286128954684600804054028671862449189902139504960886620930231889421789791600598340300340327162921069515765503096391277149946587291566113137671218223500289461046933150773635790441006707524336035166042765510414231274835549897759664276516857933493721566846050611584225070055711314374797567744992775833798715329526093459554448349244525364736502156427812633858585214121147532645545713694309712604537481198188302106245230865729958791922108252831610904426885447097678289755910230756665290440053856064212628418137106905031556055417711159603373223574855186244863663144104723428399437060861470013882886737341434345854770372501783960328306048066354101126117252843318414945908334786444422388373983251868231998685123219115871806612900278199649003627051576590600365190275117628689398521655250011290277470939067385728430017456891252096732589565788511848729429737182241170894288905531982362557694370029293859215153411934443497461776224285663612540446510313942634291493133802892825621023953371220098712525364824625335117363222695365611986521753484115970462158417717195698813963306455857883762073746379834582769000870342289674746793536147559956583547012351875434768354068164064955232768132805173986477003647604865391466495747547056362118406579918786044903025741440064448984920935221650509452057987065481375679304563285041907295133689076908525971428193805880742911177405951020511550865811500562299247051707280435682570088875326718281285390364196977689774690233148639072336302964725409471214182168565916845623621627230934245007482134035253829585617768017842532830647543188697352189343110278655986991274307587363770212344434379661485206031169811943383191290185831405257798365317481520397247560248362188272962996391389345281232202590284660355202239563870363020632872128024983942512733994298110897785241203762764858375996692367193078048434658195448553940187339332963021639653622110974531901448376856188360734652417678139304048846841373941336179359123913332238099780204747503546164606584828224747703672375489903824044776808382516066060410359513052832288407087445432180184658328346187584660035202989005797862406635186482581871625144740223080356119599488314520472827642551411802978232452053841857751503455971421711797839070293523619634776860805172781864543183899171022391590168990331691709911321007462184669727190312387273567999201790875932004405358347948591376175270098560607912215153204415227235225231709375594784674485593984550127727616551503342035199443499282241607836133197014203357640099920176302227851047302874448431798434960851793567752313287338435758089220148321415869473445086590423248687916414829895314057239800337348645364177156535395532557400665243573544091536966386719582235423267318387589524532848671754443493994489977207475425579978527014573333642529913186138896811674793055474933835088247863822737941462614608962050355914917599635224720749823728694131241026420348202189232772521747241406362593862576231569975011216975495361113924997549232866982507395832339068847177797099138651315191695477179680134580142958560209403157344885364680553697021138970026583562124678516595287528728221369126333165254481726941531928584683607260335429000297857657054662460276954021072934628860103486501909195857474231964025121067625730187635129735476017637081347980514818962262991910279015782954742872723390980317370447667061883817389926141220317877370220082669110681108365700869410130343794542666902219300039353695763130157357544733529247885784751165631193124274005151791631362296114370571512888041499392546449383187372807161063887022624557776605172552670488616350392533290933529833479946664185722894507717969928651724660703546930360792038078267138806819068188784074521483138296832057688752008905852733676528903119088106255787327524490340378723227104180168796250792519062826657719242064335031472118365774904469438745920282008861424165068404766741144936939829034109692767083742649628248514731486918978879037176453584864637947453133018682568621323280443303458652785133707575014148609854672195636911244725425679306223041746695325791875374885609181068872191475026757333759906804301464214558407937655152505958200901864397316432265479112351358623764789005578519777172674546794661515324019958370584019141998126137214854899255407271974573000234601433188843531075259677476724892072742968528826722270174764033063412108937017344705106851906323201634900585535955157130358340301090746076277855122791646381348084800674735245279261454832065885101451025691926912081701344837678199364304355395404841195446654172803473880609493666067824292608169004125247925294541293082267783273060478160519659111979445104527276560305805421487805791894013511486788376680761234258628768209093652912642548750122443825962688663175895101527983679793699710373545273855291494863417035133447755843630487571325903490943099206584665689392233445578387555358711923420878357580848757804291883238064662783896979000136388475103490500721284819499697258323513367806450942625378361433347867705981104713223971621786721323971861225147148615016887998859019634477829731697609517253960337666694369527585066165946291598160089428826309521100773111122969845216677086262023342040952860371357420090988706703909235487779302457474786388259322929401780419657975586738129200058230334950827542475067698858383871820985625613429246910234446139628622387818353142583201740335038551606991514401230307744449350425494094666239156473704207979645991250887388478040482994901482143714087482078733812100577442738991266508036069588351632149697936714571347333365104525118201056101907861575164288276718446195121320821051496996778873723973568421801958230685555627390163864768373050213699338694611779319828444086956579021509537940232783212391487890610463229073403460807670614504621017237419293739328480878388958478348352716538222624560025436617173439684229305570428271844219340649774314816006142266945964404720608803638214995162938816502402395014952758901231056378402727890531859050884332197385915499309898432545726000056296581746331997574821760242690788503031185425510807608382327107073529069452813329786519213138818279722940540884020005315034289366516355960929277644146558370590680191597518167861187216029021840646166461653316046980303803551672278566886206821897827341407645462824151367774525523239171749913795485021248954195683898525501444501846175408508042199023423452864223882313550484796461071787126747191699820269982969593788923150090433277399175881431677418415414016792367259631015896071214537658127955429003053836866363201562052499832292696993052818528496478962273533414095315870808744316150694260217097299188986048205178035640790898231521495775128756250700809981529432217758627077242968945420040022935903786167967377183064153922463845319290354396985021971597466855328401734627158666450132414791797959400789097401390474910670978469994875851401290340499129873300491415442379696708294933075520417214653398855694010254146975252774811447360072452921077828783251782402123781482991928557915711136140863615920536630516944712290903340575602295249315627683875054773828236866098415976497803793568333838125927469095491969807978858136320086539987809715056485506644831383894791794123704345931310618499322401935180005610188121321282561102167073875986595540007932527040818881033029165828008422327586916592853688564904209825535191303489539469927531560659563136315067414080285006910920621911353579443283013758531649285440205404922499046696201233181134846116707483843620766932046767307758631301521141826880482249547414977988579399475788673749857691289906443040837023770451465420743307137337422656649694010885518753092463742122687945583924665587461580369317108964134650823052783683155968450967388841206705715744381318366600363175631535419176297509874956865718839580488652340663746978165690334715693415918052322548199232233931376386593126685031410169752599303880208261067196733176063908558392236686631045778124246907661097901237730739666410129294728637742815251180125116676238571314677952632208818520159954543387151069526093673973175663320532313299085834485381871740495750914674199413403588312524486354027050829537513002664823790442783134864691270512274107610596145619191920704312083795050991066601340917288671036003011067157914196088908904296477998482225236038163037191224140532922532754559120745381154088907315207925130788024264652867336912937398269053406835592945084619683144393306525489448286720925083969705194268537887913881399263413546690245264828944948871685542129567311791144706355417029080993931936974403082177566205646917584032702770401711359033119013267701843499179375400006145173574278124351997684434923275004365387332770765422610503573183846028008097942521205331168283143708183768339898764310390395895243481792799078340263379442109990812195597830084099013622806345773021475718930941319503934260599627519375096430842217186401869708275737028524674567575499659600083292097543335324479394779541193904163299886371197332427479694995576058700375878280038502122071884166067583949414952015406405466629255158601658358892361069568667038936317210728572175325129941843771090875727379352918687107733150336167151201912758445319946937227148390229348944839264711087088247692435299149217290639913063866432809090801854134801034920200163798106852918601751272306605486835668378288402652890027284044321510155250099475531288338784179221691710204885070040566430306516996542284055467062269019656633167716547718258439021587385946644683897793809987433313137426193674295474621065412173002257927115131616286878637575623851683099574095054294112430297200742320617244849341915205846726410849948440504305412983440881065715490793297810247605180661440277768022030658594881913975569644852712682993050853886657549714175464374226878236747824688749847070776777091668618555002364804164655107599569633398262013262931844353575499257525901519672363514712253879162812148914302891143725531125531618792990690507788401697141330391336955151637537561977047467543713865666034765657417031650153248316815266074997032787857216461976729438971501747462943346132342234784366124114450786684992360939437203995005300762432668704064619521041504395320367332533700927835067944348138865652719520324018539834501270076954274329649983156208156125377055845015291129334617661315825774019329521347561094339377526487315215265058306780237376010585888865684400983207271824694040397913502086173345104826157060528038290267509189577677971281824753243190064684230132353850518591948699562880040579714653235227059168393932156519735628191376627727010577910369324149314551884697109239327825710960095765211603960194437853732377873180561557269978575691188070730490168606640141541067036224243899407561764410566840468716707570023721856298454424046868796145439664363088941508857783364195396464976397950391896483122187409799592660784503451364518582811696926247383051840148770905340416031428088702612447405994276463173629294252506373497469615430523970330653203519260068417434584391906419179198637473415623108203991885157222031091371593334041872279418393992933504875290382123603006820414884391088438633706955551069899759195738348500099924054269980522230316093156893887876291699497007192654564755308151272160981561992634510176373413265257740243153422166752959118526285405140582059258005543344350944612350730943440047466772662389225338738875507597742873551393872645485854158054121304243210518986365854492140997040296042017033255950555568049855363939770044988482125969060058009040407620952703313870554434389826441127351468285609692002036605740763378782913295452628895729008118775106032653710116824216590412772181087502974554664124427501975989373517725861611427377897621191568602058088809435531251087593159936145575126906587373409169854569217907111223346412037771627518331774628253971090185429466943893658339214770225932664016482494174598280368829324600909200556136573087910302992856247422357843305934292785940131883758533854989756786998553741877367822666491779456702450327351805358274093818591466071828162196601789893097921640504042344683846872028112086614271963804291436725151737419829004860858856981584487688921701630024083715189031320995536583168745253775137716400384762031821867693909554960197135558456480846336037126506824441582464679984210659498479648337143411350506303631695144439097061570917618244313859224248595622462933178604867741083182598653087117587757443022869271607566890695056894278428369677935650319282550076266898699323694682224807517611100392839699775766016856814034894229929778041799770084702764845333815193391923217953917202072936644993940061661048772270345782637137453879717659065640951549161360897994686279279462394740558716157624396232709186712039020405396393707739539805380316678180460389445012580692777475119474704653372982205442672767745884915431333957988585646906342153177535576171388078209098777606255034871830197354369845859801560800066808685060037451624326690525912335077989434351074898018047228351862432482490874717257031021417924431654039688579272273559849158845539647022434089344349568906274632324742746781578947537300757774648859350019082929492024298604048146647410166929178741032682576783873251614350768811038185156134648945330068731143636926119664532089654082759718221138497282665729324706737838163086549441964057572270633960098108813712612398224788329538902897445025497853045486360037810371003070453155475903719036298020116460398569854848263087201485379990256856220027704327760050633670669725964248916756375489176424872451019296866428484797897991582552859497351486331168319030688506017469455860606934773128679520303042650063522864276440895560524280785740596132880476498452872869771597245318258908802719117723825803354215722777249978953274216740389715532942263537863582449890759000176128949436927935312514650566848060345411324154487088712634978073029692234804542416299193318252601398066073080191901060479600023052670697103648846846789466576795805193396859463680898765549413222778580931645033530857853498662225638343037708089894032430480417236408144201850701146180798243176967925956103379734604647765733950163261034802289413285285473155021298259180675962970826054841930210149738558186882481353352352156277570546349060676342597186291543114021532888175332899593677691297748898793773159094764928431077347711158830178107702279109546229788888866882700183865630478480126991318308497315306662957746608187263750942845909227684419947129441361673110756098675651142444550292689212776767178556526462228715674121555811355786565835576025286901640146687642209699074760984968170860043133273743074530526638974845025507325484484662547948008668840347331296756675274528249954748385102903835743408295089409467931864231480124231449609202828862875863246291389166397967931311860782704873200301859874886544103368247183929561595266225356523930749520865962487348718595713995853219713792697027604506767917075972665090418845963469575314462075234722814201827447250554440658178183241087775334869678187935188471491867972178890805093406980529152929055422606957219327964691730902274436436837932957903523195653360098999274973931549453695158674233423807391178646376255779892028418808804034261632098600326099440511336437132363515425212304966258529589499352746162976979559730918808354349455544762070372586347945104027072778527189633822364433785086007010264269234783037530055888319931882336816244462549066530565351813551210853276547594357392252344675202895571512785043196245614138494127032712408530977991119937368902050459768127178679714120139433156755510866316180998494176835525580735789021423336683776395529441782688146177488718519223798163753114084811456237419081976886858376155210335848769692284259406208646007616978992742889060925580832133495867900274285253634573460374482427103223417434743642393905351065576749340864314611050591257398479106578194518901936230512000779799275739409189040172354720820928399749299229724211129663339807008961494256361357725998237017276713612523154156948851575290741875432058832680810207237741892261182409695416267486665669777440714582876353885535512433851639127672366420869708753085480214686858260756400066063042776323834635002302863554387287885643204153159888055357311302224317308430627642616860616253635902689174119199811747552883941420785832206229214373134655142710870250388470077291646126097702897200756150263168816566931951963871669748323597351015062384260805894291935707974070786606229151322065318817135450220320203357717123732042336113409072989314423151023186511570538945232949653039445741014179652248941554371808377735275395524388389003722205384057013179053313949114429565361028473664381188255170721768975308722265316944740635276144693730610477790911932703530590156407809767718066825402562269206115977244087791364096458983267552087618376591638125435913413000216969860272438191266161423413780516646094812098172694200853179613471432781336955861120771861898224128532248059215935730373514864970016089071201179216437861681044155040505793653334926913834346898129386547473927938993539389409887032840834886003756742619352645509194372590476016826496566449867311531718547203916497335829438404661959522051109295204943628989959173816038558820125323880110641988715134332051295999297565216627658663230753546913752455587135326379368194255248665168796543749992634754380138907809090282592163144716461761167735452868628917951102656351495526260477748784227483729960353370659668258081589408410791468194432445803144837118455114813229281752582135217599576375729582009080302006513912560154247438094083826227186314125039878315337119598704823547487068200100870729850968692250417014540425550941414618251235312536052350775279842797132428072891710156996226183473616264105763451540107231358505076199777590341954134994557506724347289747587486755965954472741818093367145599129417081629527055839411596616521239391806546920410816121862708776603818474605445496082717826919345589986171219736933844247335019472080478389863175003867323043441500960729130794247363496496262913543377502777798863507668149121511798307849588285618834622435175702603992751942470166611617999614022262213022401417807076385699499698786835111011365408588356443528466100517527078502888040514697499964251391476494729548896107456627350991489299123326453038321509295107538726794380368903450829844719822477542876910265529730848732298685024863929887072814874394841357365109292589524784239796979769678409306568081870292952190756813661650324643798520099015009195138590900978178715794170825020275782381789728511753858610711686048848988312426706025355780782097581625151318268626707135904629308890214864734066222802608958155594429096846245637744610453074969430899675275703535264489830090602347067676924818634355061341411221112422444606508194121598505112513319710222825157739508207940368918544608121969451152709786258889679961250622585362935475229749971680062429206694899307070528535243603135987520966138124607591755649860740393101175628094827107342414623999216001740796562264540957899692914891702522633998967950028747504183422401711201807598715962903467012559179101566772921495138985419799500899068753209012824372057537489451885812527502851839512232041954271909692133123943931125580562507755145290364797391586156022536209595571472403246601428236969311910503956807339219018372594718294230037679067497840038325841538608092970361671735835494879283598220744298944544733181244401869532638098078987570931173542009027321556200024089576886157730078857236504466003165494204989931900902411783486659597936889856688849750972180291059310730729459503530913180815734493982350050732828512210702563393432395038083352505751215808082652563535885989461181319953065292565456428751403459820849934446522550292926399764470805128272587546695322439046555652357770825525182412152520035335692013487607687701063795435582284976542929195731821740558442696462297666001217021689020200677898378644429867081085735265861490230696218855471867179932856166402922791430398004472361542667103328889283381975068980843990444720639440225494396466509446258366978240798172722492247720507381602682823581868725928402604545145118119152630226522664726305782889424395402719905489806478736045605919734729988888308949504688645104834318784287104471389066744064588840076714238599338215221047916671284258063495206563911199633621643260615212792205129392843781746872648711603488020069057583274479101341613028389868937742896739160532042539481929618042063902982740482501374545141503375345289519078552212108534435760956731682479432890128607607391134074081931170515093667275478961250125622003950931726912629341703821525322986413956187706436345000788589914801948992246069402172483638524928900726701768533939766025461534051064874274853548574643514857030160359894845750479508801573722956927220250967200702812237097623805308614237057267444646769319517172627553640737371518028205688330072638689635440427152089958072265876056499524425093145048007203965746570503716338771485793670776681858909747831825510693359732558868199095458577947098956425265063759307144310583195690999630811467144926815396103048475337687002716771963549041729673335321497103577664739925549378512278652979139416531664568500564644849235957655030197974571091879912455086153975229812925287868111031963907126319770486117812494839131884244729200654150562174262962065932135439479251526309331228576146604964284976934925271606523405374990688274243864576775491759134261598164689703411929495237227050843500697541841146415123242075891130537040183366922555262004355981783883831349446752522795210634577699231752045662005537769284089213747017236551255501149136176959519075128682004440064309982283506777368777050577224647613660597160623624461872627579883423721645846167136449258710296913416293877518563352300061720137701765107500869147859402959025455533289030876599119703749518804033570733908592476979454410117783779831407061558096342064221285273858281536168673876458750908912621150034237694288719334969895721342473957231708311030941911208108931671601602283936108538833074580650232412210207288967346595152361076041306694219899328299717560521062777545712274218469446938333893469177267730881118932939179309925890439052151414128431280118150023790856584169126964361176507809213628114835755923742317124899976827670467954583739961359531860863935987933669866606299457375755222685961510399613935132764125424320512338341698078181674695650975218910643051747405139074814901497450734098269597930402442292235168973200017700367943175495379284546918816983659936357921594486865874769009156358440061239772145305501070893500322392027488757897996775029146219793965726774437220117218926736860893273142787204113564131073461293515927727168933154863632048317793549383133891070089549935882142100331543273418603145051295193428351357347834857681876343223847372659015535267154292505930618265813610444062215139846400909972488924979411312986943406892038566527483222816554667186161558142388854120899849398340410853156059115217858906949327723885296352454138940329957483687419481234441078415485399140974433302512342239169661502677469713487025966559263132359632379010025421395302206945050902285826858824936425768392322969177462398109324476710463005456728000599573468707599593571628835109341256719121984545744611043561842688962161587709025771687423877999942126866040213462937810018632320002632603446563357985041133282124461085085649392790166687074775331824960740930681334097631970205030185791629927319948186238441870411045529836204246421828189290898890186032746831555252276322580462727602385962258847222431058584726475510281753973714682256348916648154800610140221963213735717672194046717468421188664948176600256507527771017139001484712654518100634819103240839002999970729356252311474581135069664668109329752623245293143551821380947292473790643188585157699999011239356513325740247846169428796628447160178036724131005119068009213547920304137219563059058409143002741640343618446930028895441910816637283757931940736837697420502323380326604568004458620188249591993080557346944304954374173719911087034881094558079942930790547690196983704882315255092776898981923428620987503472253017411739401771454667384502979402270027359699590741168565332774375655409607310269534496559915550310506563361027044841240593756335979022213438437838395363895373512879671154061917589858520619588758579376087583214919569061682482445721709093272954034143241526260006163553537560831285962663526484153858830660064497078566826151100088888191825476141879865340389306782126539319829202710761735068116760041833277147641029960093131489136966910112273168654926483363252483397023954706090387082409861057919653977632509159790436113628552947161325331062618489892723717591797152626450793087906296088544644113990802238630851686278337910937796971844996487679359469597295084589608284148908662547894500395862482998711705076383039078114352051760340135635300386111513679042159083711699873109091110641120312158131642103607252045377089261840047797277432912013811562177022022482836222754602411594833858120746470579695481922759227426259536915031655487418573944531477223369693599136514263923754765670705904150435117929592612492889437287832034275450338698011264031268009349443218340612818515832209987574958738191780214302948982203091779673326794344251266457751436145958990075967296279236665212540109088124324552802722381045218962720224346409966637868833516172949368250577486711939101465022795217968467237856850156676446417792856104968539323919043843600416645490293120382332694221700286793206262945469232695095057656981063011297871120056105947889636523187248921772680333604338040352283642900124007372284373742356612633355983273414208519568943166001410397978710176175412941514985202719672526302878450210344941861448633121827943830424115233919712859436823465012025301137576512478630376875620702429413691953851175438179047437684094482342308757690994797421340595732160892432712112624061936590517756024485481719485856210805940610930521967433718995546917167351482354515430428448842953096511588932267347314132959898747286790269751740274564825991913554435810477641391515153688766621879245115784406581920753908273070021580625144991169466894140977588818466315438262158690685944272062768264076391065825307004766132370505277100488221730180527427363654900500277882232605025865641269079691150562947901299039294287413740543926899891963092273721164852112515791859935517884178198286476843184604538127738537122924360665677821483451788915698613150395668819161249879468895598556998321074748912305487849405106311206210607745287466530262378483008145641827081789344758631272182265338951490074035139147051988130490183769127784669866620549613448516567586061507933212325518905298690738004763602347538053063796675808818419390940849176877096191108050545611655230123545011987478163604760504077577006817225797284647441253080838938332479117453551284532109166848574928436440268820835290710333247415110802865915634628886696736610506045276017289244492431919151232961386816110316682204206241024001805636577165041695858360805838473154172545259608077500918868493624709814116766223487750889983601899718028796400194730145693429794649729287603382247349955197288029107381374282433459424925098836237076035405185172129582469865367082809678534236353598726161946023007055100500533937425819680242419794366340200819995359943274229800832414868779770221199859742881624229777302078190125312535762465756075280488193991678803461531881596789051878695722262522135257510122293106291336655442717525782561694410920138160083638055476901509114641154603058773556636628995143276632308578670365508885339270029751566149432365008774031082251395969991630987724037103930701264068781456793540492497708938914168043801819634667454058794999700199037080297078752439440420771511357512788572626821043830238245724617954770800976303569796073416795885666528855091192390565423181013186908764891994644836606432545655049274509437166889529276510559059439167826346529790405315570282666442278081025077984295173408888937048261311710625504203541724840064816532050287714388208089778161285808610691399095249040497657577974832968825369873032215530305878577297360085925626409218039382839775014345758558377498724726591623060469052367763277590205677394235917394603283100162547791340007570466397087232819140468841306010846493470376807216465324326876398334834699443971797122553201219207485721942808521210576552261535319257372918346224634902825693487887475249374100408205309263905454865194801526350874307003695915265060234217755184137902590063766132889201803590929230696338976575866074666341828658710892641510682002981345065905249311932883112865454841980434910733876751600225330167699407366091494088180045980588559651755027432980264970240618294833714368939966072854807114513001290491966207538531500184609095001960179397379211708371764398620629160398808307190369586454907193929549755062094399138319104329058086620075758313155513604539076605363299169293480128503972309045288314602444479994209048044854034012739853452070889645574286639472521892693927232110111167226418583039501292829841933884841782663168908221651282223404988632104948169184505870075882591573422175187602999083126250080692409423764561737673309997521216436755122378015526708546714451123422051578040182697214789183810195014392407460626406595215192995598750475912417398504234083995934686552667493471324025530046049797709796648233388205784991757325873049280433662614485942598811994627607713385982117220182856774709013393373956543592051802067193119358456966103261466698688930334600306871428809592619223028908797465978742280717531564243802120638691516660496474969866586634477219011499632380622986590424766244325822002951949797811736723136576799074927331837274352070418965441810203701701245375714231093848835823108496026493445963586539386287240719554631598055660566008777630338065582554998420007566428263206569426626761586605420127949374434136720389649924681122673061507112375544363277196235717167799203363318686827125645267847010194979995297713706416449250677215568140553194438737443058356077013680144590130272599671571385187479045873484576685670207312227456289741404945664420755425173563734795788202549595088823807786719995308946463778208804744220660265901871733676486719431046683564574872510903483047059153491936333260395129533064398356306860972096260247115190165218475130403731901693205021824430597392519715441225016079456155259670664304574537034139721852926328345322438064857934795206765815820827700829304182217420495357494217991826805118312460094046108567067720643805086623509490027081757475585472991422310492882978992258925759223569924463440360910878714948572017996066723975592296613078544550493614594801589574165974663800915266019496041867254656069473071672019223426609091367389692670154207390702295348734335885623026818944630769161166714473091160898686075687202787843292837671820371368125800321576570262646473093969811867766772871203016196100297445612868633904472671382238147285642467907140639648331942799825040797611498045385085055230625937853771757216408639356079246029059268540238965812836627175804902780294632551041565984268656198900898822008071979032019760488658389689259089792636888108698386921246858534625319216706855892432038802044499931360115241483843216749602477815058596998793533956642135653037019418704884288845584222003108002451691684305957483294569896110703856487546229895589535575042698447208194639753435470946679919985438568903084810726346249446730987829673712125046062297780544386318682071798320929451441629088799960741164858207601372108272812880042791005720292074769520445400891595617045040177040595110715954682860874372684410745526749664494809699546109250601381070165475741857191663219785768617704953820929287067297332254764602172621745915533711790956040250731545470171811290655564106427844277824283960444985453371467896518328559682830705483260641751368982731368073768747407011835739408811267066146710385004310344837595454672653504445121130316284458706229275388669314754870883081854747912049846942736060980975158694995365207157001647068476996528731168779591893463674938327225013023449350178710545929025604210510984675640421700826092194842720676763363044720017283799198000607281054895129409052324085368759453423294458624841020419849414599410136167575737409041782300970659140451047724091551911831775565053649061527593942787866617250984091392490291433611987372962623433557642131611569291507000256677780235445694242801829907077598974510113593485506848135208806780443002739750610704094390612058677624218079520699458548318292184478243465885857680753435408921946654298356782465821025814666785756433772146075075225338373027060039002990434361243966231655050243568660206361226644663858076024843742527397984338686173555595065070594218585081920144465018533492004496363470117059604853789789067741770571667584652423859942680318542404942733524361738118926525640994074175763595931079420308135912080550419665925329407944982764750396145698157557386768060563719493041578777187995778401868207135200221373593912079824258495392184871568595949302574052945109500148208451522647657943334506131879755251183558394667765226360649055366741971131294090160099463787607968231575081162102682327978999650542601369660663245371474400534004604092508889134256499693606584013171098797033148797422111113262830555046444275932762009929245890120251398987845676225171029224924038118251407842784183058883866024641579992251196967655770851973778574113286533459476771590964605734704119399144860270358357780227522662682758809991976969504638847795636152500544991808090264975022525060628799757740170577295355439419318446456077579772941618102440768535717959145586236727512809678727701279182761729128764642065357963526653840103725934299405296272957433073654530599905038043748173994485091070227188501551493174694244492659892665839854907122818726926750358535662934605112821800352682251524875051652082254265669810413448529148274719037680464540972032899798136185870156873174516505598929460507820843709218841654078350343785526896749337885182517228202365859066189362372448789103749376772585955303990868420341131425293116138487437412655776080674133396215009404427894562563511694515811401310992356406368507331670257305278075843380992267342950734819773844991268449061611816247695642454745500113160399169766232504505877285723951577631528589848996021222835905084066146210486137321973119907308576470990363138235206600975088521050980503286464131851873875471277184743498020428607880307343048491196323646068300569369618673810256130064865975443930895843615162730807061830790134012458448652971194880019625806492840997967725531564223465780512322968606760892745934034450460151838054274370769999485302769931348052089846050425275070341475188493102042315652740624551950422986366693183463096794522743557316056267748637712413097867104049069000903399005357568241386409038400861689946480867148041704789754325425422787677631897070363541009169750022012299241271274723434576350873044739213777286975151702913042770040628518075169315923951553975462499389473868284184622527100355194817484090863172510049948464292639923461875513717519825072392738583127603055739219502981072162499427361386435642486140187591128032251214065850035877541317702048469841273444335356081624607278436248871599079186671792741550526581200140135282460748530090883952913274087865650944747613876255943429753621514572138717536582610765108300999734932387070716783959928210859662850642433668017187921955678430531306226183435688515682752841063189683497170676858495097146103272809696962404496993059541145903885203044541683611375050462034004347267240180483369731791864540334903085827515788148186791685831445017176964717337084625264450503324002248146722337377098544567629434011602027258500376123961917197838803954539828154148277215723831724123177535536823536754873145295500248688453745944428865433874904383024181731042651114368031179827207185236156626973078939408170603877673606027431727755930752241511536924381396651853802262199994418379165577539840099429623968994986508716884928616953718949639465774689033328642748549503580717760602825652708109964690928878726933674164078488432075243232445003671436084454628341198013254676920020264376233650556923459699788963348541044571418993587083067680587820000052135294197231418292090061154162051443283315120493916857320797521128943904851815621717122613913252104804502785587968673896977630143953712924332003217608000566272653481091452959979108215488271173731366456462741635336910808407244661392084424432267020325840705224982066895028876224456299653899302457716419181585357593033808451309364149354673435255365412642901588768304922083279409317999914392796900068638286533250864830315552750297306100455274801216668170935529783034548104849637911874988462214867956231358921771701318924332821178975722362580506389103532729438631509200013969428762757616125611715978425235500578189073780172916712935554834828215154659915877879562127566234109035211803741964042755564074813473380716662424482758009304825223328712321908858759580768855747027301407360524699947728239697326463714636766098844054032100477187973822509751451158868171108691372802013192902393292326010047119351520468949966052977134177279391324735910604352798052899262545435631810858555320442428847231958758181474002938291267754991335724325076366198585418690390770347920356758740481293998544668264474858049600026769395868087833681467975140588441587513682464054031221037479827869299699600672778442520679277573496328672609392699776792883137285868947935440840283404664513612008750487937961907389663750149149311734056809365922329047833569384306283360037733775518552199617676049868018644610657445234087205914660699690907662128754573697046242416976678989369225366120825046572420955137547655801588459803148982768717737602705472599074128138442440859107264360152764984707513341201016028997230772144738594344483836335314955546289014619322758470096507572893918399357724308030223082540343161533496318277422795889212790599411800272048442970359993605552588312785342737230240601961755279880292978340618639002502557746621717567389948070230358540778116483591755918892974335346843722643495614779596547245880708701745049381405234580342720209776645966502049602171299812979697451683017042187075779403094746430474073049428352904801710944139637376889308219862232284769804506503496363796967308164192997480599385703980328729040846304538753511535893877786551490967912206446521071349183831616156866963338918564321623803895744570411061701080653179094092313842348623859012650176037257926790503342141130173541907263682796850959560481713837293268167484936956092484065177013756209287743301030474045591344240411331165988198320896594516660970267384607412609604106303597934689635696075299929754803469095309868526418532424395705909788858946679069235733464401568742342429760813595904766665604885364717651258966026425417120596139687143852823968719860891495962495265690586901974386632382812728742895346766631972701467341786495340098106001232423134118549497669248377758597796590725011715261564750626395094992818424410601989099908573047100252751587302352222874419585018349506821754260855189544378785802586381685396369973415811229569374305372889017292320237386047668896879084852941547015464211296297877339595045662643258449652402596656030951738798671801031561226943277612940915983270733621890803314681623690524813742934414454863036058263230067263197973004091966402706218351106637562025761965631416666566895395027215474963823968530155977918641388186046352112088133772686415958304826892016359443013487125659490148569242294770372788318488957472661737086372935840285659399143024884796486065348141235010682765153415317769876040243448291342664901189953210989089277131214413218852352118106365874058745465310092785696886162165539365714738111785341122256687109875003743892612835674864079813355898300762623824110154409574460119366700646220546761272902729992332268512169012892896378360666907898098027775744201382421093638036113776811076982529761725611352272354555799516223105270197895257495827346880665579710631801072979703098524367810393400798121890353267784809217955656284595157634453965410443737905999518359570360676518859529497719480173238254349491109165574184023006326591386539110358387904760752315080639661970948385666921687840675283348923962454592559038305431234063371442415006105303465873735044479426840933696315642287500475462545841453409244336922129007247427054059243554857557724293160883642856419237103520002202342529972983923032043635047173482316198041908569733388203347776947916000406669727445858998196283153938627774330363363658419288989262474790835823946702242303856063749873652100014679759831394621722851607954194106839033241383543655341723062564783515670086705867206358991925857214057865797136722864428856240058136713577317010241446117695315719847136315062317719110221556909471230048410122618405099544688936768614266354260494907320819643160301738457265312857332793365966468166244121365499484620415042505899810605095134763742684377282986200627946135675765060098447647082913878627045491237768783242784221657825168309201821610610049901285443954234867769734133069401553655585843748552331193370526049899043404223110977815874645301582978772133863408148468286266348514020271505199917498076228919269159870733937561142910716226123522445275485083468049333147152957943586809964624015119813722775837908752937154202049428422993906630669443310551771468895571452185550098959262840436707685904119072701135742730449387551201447068009272283561843595194166246308821849453932342139150684190450335684389154166477013208363138436239929830368343795395169124636411787915774280875203312926875587135127998332744858708396750132215216947992506496248985289702571456803167238080931812022484087474264529157655427110860418911859091668391797940830078220869309792322645874206452434085990870634169875617561101822965461856926461045285751578416264376271015236569426192914531735365976999882933888182724562858896649804806645859805571505347471836283186400806553685801643446862496629103850119461148687751831960093985818595491561136202586282926511792936042745188013438935923905748791965848996614855978512047838203376333071998956860045077672808179199799774075410537062177143392391044034151887681528194680987462135885146202194348379665240534454321074395845218808758159176679856310688847378970408055639775997617751286715835297836008636079625782052008275009456751012279808668537668978104188352289513350222915776089266120366413633113154395033667274400465565587816656846645508051887319348149033152582203133868958579523398746300182744007647232017286750354986837887190587731021028864733349171230189749100836833591049651915679765281676643952532796718875441304536820960899472343961401536282426533583053757254496087345728806320714848253220193399403318039984087085114394669273114479332460181680274002878316105992159509217702844598680825324397655194800660507845276761581703802874477927012545770168817925067167607960987027255174033636500768942580032033125662787502903460620371907723414622803215072676816638632365596185144904480154429910450922398876447946921094996846222192521617559361429769602805668986817006752022148981834792920689386974297591428667902094496246012028320046677386777542841636353506902843630561876271296087397141093638589606094410572078696554619629671456438043039715326870078632325777823026856095458717034883143412466368218904713691694593423581928521833476088795569323637692587282541518777937072788404456296058834866884272166065246055648710204699506649880338921318019826665779323566334889262782535909460105033884813827174917853740734103400895360479832875515262690066465659055982506132993460118842399145846832121311263956442299827490479318814683893526580500385573252557063062642737439537960734118849657421230245368572467387800522979715547008790345177574771812378584043684577511564715566263605732331145523203743341750628711740313641691863152223869370322115312427927047836373899653553660838572118690413941471955656250556573389017392527933142038010232201854350951593208929186451727337879021655070581850197607948592356088175389671265632158310988551133410476807387788958794148716128389721731599270094769397185097139948726714463394490818678736053403896315851847626307618355044407573528299941193233309788324446542185511690986431708028218249337824931383793943399244623349191006617181017580181920858209946755994408703591533120989865903993888795510900565336670485764401458418810737432385847946722055656136728982563926916021846308912678888399765056634402815964732843736194715494423205369633657827599311617073450379182994488044537825944419799770563084129087824565595031915324044540630392318579178831967634681708186801409167200451685426730043953760328191376762874742002197757659370113143755454976903881002438170766818991004797706606659277135496379791188731065208250407612020501743656639894714071156857129883800395539632574549631090050393535108724027401231672724303338383659975123118357129335886873018497870892143127475354540773311804020813810174171783204415135077631254641101075028209450141672895751537402578786782700859270399529947247662082807018276026147612430883234948046783390334620068639213016938666199771700022541837205900836132014841757212868897457191595802404527544657987511089989070395152376215431731657059376073771411202929781829503526269522382650453420833871117924036387622683052041033235682291845213871416235485588809826724610875717602164825102174239877727610070407528874931582617355160699495334194789325960167563720147204170295107001766042087265267897584503030676344278633309996179457127131371825942121237680872132035532279538151420459888167389024137292861930538428952877040069908802659450912847853629133290026827457978783943996318960298197789557440554243201733698411592682937560609845533433973143093812028370098758693406798899558663429550685362646202117787984991817708787406890797267639344218479140632218505775601854045256781537015211172595418975293018416656828914225581734390222718285952049002122287925774286587967407007381274615408986486339392976780223751378815796755146933740573819046328228828599556762052988045791443718436371044164491562925097269315296651902474098747342129140644036362049970844891996893003817151158712405364570985352342484914926949672008903392207955514826322084460875896192420772457342745494342885354474059301636150642503035060850569556708136955504584286248461875177043289561523845026194199523858539087513437865996374425537508912373551073722089713255381312976279521903744885085088624892924491495128005040527608547333396013636809584959578200979211394173287871727541054323254924391477269594258939681097352163444722472096812848936980779725968562111030269081250886201812832965919053660827091111045476348281896643180071359170373663317579022234600928365950579278139764314550214074928368915458061299022270259910992297548190536189333492183819733072209115158827800394173492008832530090890214571316791708376470253427182838374288097863925773554113621027631625296218782308669695757105111287130273377953701814843375394436043712650978230185878382340360762351441909053195870645720235052663747180014727369732334750092728790675329921126363106650687842739611705736587871875176105882996795010002458846480466561243785693861362893619492739008366510791252093341939713258945667497733553492268350694120670420085293915744509612516256365201495195965878316512427133509394327458824586501762061935436713421342823035822232662505823102132591005097928868577900964404323925665566961372006885654884392157418286219689279429918078444083985955897746501772595018924441157071965700835756131671661867297741127400158915975389732481804418180012383220001654259982261843870585052580950811899608461414467640292979455146694931280040778736848695568816635165836254470852601315978074337359735847794126127720393335342513268635671394891369480511555519549882843424782930062805690725759363829764702346483770914516981701124941167456286494231396060491705743790451420769228591762198574473180012956241724332569742483495720043206281877258020790567241349261036617514069724547190726644403815088874547576703949594859997069644342692714953550774420059079474862854708596831414417827990141064672587435378621851696070789883277187718700298575577876299259177763717977490038602657385674528783584438483005591545631007746737176920848112302764766060289475730889290382723264033628927196372709196917268151259562374016670071459491046039551418056738539991582921405072191065071040002228777901769853933371966286144477939215991134034953363989107505092933150707727907719611669837462145905789762718534256246767396443727442906224553739281967906122904776849193052536183146510488119949886342080240131986246039232445322416444603659425268229747980876204444240102166820648245538316831867778374213487928082896773710481462175672460223370356784184263425906301700829630298573024583784539916684668262577221060814029593351571799361390155786572268187927415661765056555779027544910189930985330928096739739413392675379197379102969114870710381082083941545915570774564047370585268739815289836511317050592907639884342063166189320662979418457487242719441893498292367585952357954424344026414968277306146038815078655213158316616051814534949519085102276526077331981754988288987051676602228632900837025926356333112421225189834524417315743987422337464110385776721973978971276032417128797117747234372775148814290524437137927107648170529557176486844301981797601639989179718137019171824306616453819784203353304719952951502026994474434546007013680399318610059257108820221653947981430403540896475760461926901346666106290111782322692269238399207937678762562819877809005020015728018193540663062825060031355383661963491976683148400907671669020735313226950278675960313989875259773419350999494875559727926169267390978375273043427860495343054339388722445559755218916787784795813105946459729476835924083040697480557397185393787857885849560954842247859149907525593829939266637244678435274020193136763619757398040780525402025560783476150992812599311689024603365105815731831417394907093393917667047078633400570816818223267245496885655088424795558932186161470380555811747068827812296202236955652878607755777666566239784632605238366827205125133995014397045893808931317710527276742732629410081141796571513771957804831197901942184221880162352112381136668135381379351197201567117737277238187069988115212257193788811222217394418166278614674362875520331869642801335536795037103300143498717945628418785362463787246412579921235097741884669945656396460576226580472669884401207603303354698574837719545215215640545079010650317905252207171611494727550740548026232324353733065653399361523526151005335017868865463724434881276567895781830069679999604254217306848642940387396600626521105146566879534701535679108530251366756113634169552127653348680263695299748953764502438385255918741653074903353400489140487825933239965519080858498596982951394360946109380858295044944075256818370795639575031864521809923954712286220469023017178082391061780011893863976574060244156806159816641817423170319964418963093078940056227698996232539931795710422119675037675398753066644883423995821338761320775188587956246432283864674730489377875702168894795868485891244042749712509906156141028512043557449458878813015887389232859571323255743000141553676547793722524513031539260809154952700226184498687254153867327100677452978218828669761999185281814542972912200368912264556086742168916684666537456272108936596959772500886223547133695436089591025001129385669676472673382276331143564811719959574670191739169635789795497746453856808316381769369306641147759866673188438719795379069571295776485026479491284264030436984058655180793836184924174047361891698547715624527588451463692170385081187918366947994022526728860597558127634547573800156621051783727996993438937062734229778438372903478078022581332250229622373943739270131802774465703336470190200182227290640624662619813522354837450378265701949426038325166513172813344952872888108823752064062823389975921674109800720331837750090860804668047956837768539399634211510312646146836593633896842309407923253279870452739076447173069562173043930519135951016417628056930322729003110084450067325643522937865242547030630058361431721093717477448163847756908346461564092036848915938281245193216322857297211227007948115802359064512119119378225163321115081865375103354822960464612730574974443453296548042765660576916146811694099993235052326033470795790030589584974179073751875612966322840519104428311443927186099226565188645487176641227870440137669507046433991523702213987492122892016245865208031417339296595190231004186387899583787457718416363386933515178376537814352346927651030479580976834418302220185573143159158246764070044156416537179102644241412435920068989064761841624687320361684611465024070411115312653504968089017964938486704489355445458475777040976746588020914439901328736130445642562574933742886079903975667936850610569421892706293414576668271943400129269907039881683534032514803884696613300559859060086545633282774504066377615273136502200613899794244660676505943067320188438999160856427732654570590589660279534316710694263999819817818632491295077372762916641823003748645944324854780441050853535506247149377347135911529778946400552513816054104413210987122044524832269111029178758451355397237657491532036086310419172595937331404537115597971034077459527986137442595590470151642294691593892408733016448509847990949069748289771060571457270940522769509850022332821386797496663035798429647258242242295922882751693889409498399598124092460154609224792459069108015605064506911540618639439526128990998313429947835452678297891317944388291185054216784070903522939746938350966955212087692229564882021781133668023106029008538823495131508574765686236998814017525256188303867121000930175764469186850414535409772140912434733617932322236593544796483664054104453382835669273612324450827766511887419784137878966064609215032752069735373192709280169494584337717274581148635484798330627623088196342729042902261727886594679176193185268183913270234356780175510550748832762188568282181152970451106230047341266414677603552484612427636934034553133473331673494937080250095588881239806922584367895610534146943043307396076462830420828221046564857292646003054547736637157991201555170798385455794560734765295567937052997938206638533736799104478042100847432808311671450149636561515388128506415958286453644034756582737189080814411250352398407561318442562224180311517787755037596178454603428459896095356953931510358672189163622609238572587677137629200325043839157320857091077210458114247816858601521473076758169964468904271827123664392146557865175399312469262174047445136986051852106321789108378857572907531217507588473753081174519466358038244093240292748007128109182436656893352866383254372954516301505632425331093312549401835050064450371254472217476077524411646370645087486019178330665905530910371571435564991583472846345773568808421727316350763320737593184842275513469745871230899349470059518446648827546005442080173235151647172748316098646447102683785851167522174970584710273735817035804175273951601242392699071046726923961754718248488577816483529749034333719754829624274704999850908210757087438533291873483007889109819451808953785606940695771401716718509135571470760451615509213693712550153984469585164380116355187400644493113421488490786491237815299745302702561726099941881320565516384371931485601406093498029283580892082996070189439462966254090029422989736443296556292583943945024628140058746621532268176058548559595404015013510987549231610690123832428863937438945071257628197480667909570671708997650315162664617259708706593393245052099171223033064329237976370778265746301584521973256767258437074377351674754182041313745873481940415927290879147711799814341452196401232730821597181482905263152187380916358720300819448955286153498039281280799387109867144190661449071926655710377137325668841217002442057190606624899235265334895918396724906274619180011910243712190164509704304574133365431536648503860873283604643599821147194499484348909027043610757995303746947946955901862810403869124591273697177055226655179108574444477600285210478769888203633363521433190210472414351215171522797882710909081465499014822130613023265727222548933780017349149659593249035114226140776559395954580172073200058696737678343339906185420955486522601164242920606908177667298920037653832043032070366768545428879575261883572868928673400194222068182950809634249742601592178560075999475310987481924153803602882174156648043967840562618453333679555738177768257048828072016333395026688410316240009200063322475270317092573697106600181808622042024019147918803830158610147134869019622326755996372263440616337428376773636116133744618633276836603908148868821218099969378684517215910768746102878482840222596843834534785809958404834217128766473906618326151571583686184215659869631735528053839307425128081361823835872185933609277570358562129934118920430816798703079394839654552232042006381431163924331828550426659466915979324263389276180442148496587700727530772093298698292571306018622128664237875543077875004391197880771819916915128881446361271786178665810327417622812621137710857715084643130950570572777058117376061303303562194685459102466088059230584702594613210587890877279629968282908492686226723144822409758883469140775073917388849033110723671398889450211513124314057903322121454066721760060236243372726353457574555368108117862574018893855700103244477712163123220835465959802714441898408024493820265740638184637748501402275104821428927789696123886734720174264924734330458839858669153268953813335854414546555388763554453638859801820335571335524040419781249095056164998730681526019851185962130882771024038393872059613566498824028487438281559307732439811097088738379730347819428012176121303666643127731663674817133799327556285569200541825664742158450582494178701213261322292624006583966363901755202565919265343893700750788204330965133131367430723114525643462313924528821575139876597621313134197418464672904734791729191584868508889136401302167543860437459594287135900185181916978360231135551092192670860224761698871596287526768167153198566680902755068422969062692691278363297344618051335167017247606898662221877987723874053178747086940051062427069217029117404723122299603384996193107858767066615424782987251592145922858288764603883558537699673783538053533098485729597045495487854038391345565214078635089359673273676641643844219742429598391351141899488404376158043881024360823979189210337198964151720059529393512883812082232510676056908475271551255482693531291168730623850933889022066093735837259379571698387252137047517158509582909120850185952265894021398966563148253479253108268061521947128791672585795681872942810051744262420273555395879458612349593632200179673930681047173820995673850729614019212513623243554099919088971690438913097195944700202146570321995859641346521186043744863148170758592948823406726680267730740766191207868993722094871044638911983700715039428623834034815674893800315671413755109597454225208232059983098575743006189137257733677312042951234815726545600532381586168369285488977622929574342799689480686519661449128583270277647448946367375559204986165740317093091873002719460540187112261528444821299379441280455328961879411488951187644672764367044558745842336839145791879589065410002684000864283887133360696588882570656884588908896766369166151081065623410775636200232785333674238063287092117785464036204827793047930769126251044170950205614879748159147711271440860415966897474194409614487867260507886252392828165451074292258090706816422405286300077212180986232482574570637316771602922383011838450657130464925342327470266266791180369528637145278085893126170273669759231967269897180350084082751492380225653299054981796954537372779815598440169842233255719469413915114838230041032574233459412860153967824852300912494350689538400612260206771055756411131980208166858246609156300499029218166881366987136789770527336947835744955601623009864722670077740899110762812501198840715372800684110473493890142249251115850014185178909468499834744964897331081039886206776633190236119213655969618802991832623781828947596580891196909676209280216371388618974703222147795719997397990638250342207249471430477280952541823649081070493587845573729230279117567712000876020694897482450516002404175679428533268783167721560844461940151449415631266951537082943769573723360376677504890631742288265383459692062986917525632863908691045301055418788040503440141239595482017711660160915521211369262345333708495035423203207311808400476530538509351149015906254700847667833661602420076664262909062116661911642436574396017258370920983470118818511187839493358317624030084730374408868092092547580440776153839617684975290118174270052800047337378252985079953040339317964611911631779382846807327959500203406825868654966457142447371808915562702577782208235112064890498021147247957574981111842454213382310828422784403464799911878510887894772139684452564011565311893029669139064466537840478305335444516438502811203028227495545157978307590603715001722238451986401090136446138231403169452424812842642330552101540128456837442795163427460572290612544560574046462705233875491009343365283762428061131317022207778714868516198596629469804731214377993210978833709927356705384543108789815601712353875129002022020057684868776863656418024859047297280383325624340519335449457099028842784663858380094003676041451531969533890493413196225082740974787446829503912471612072480331323247190113186208417700448593114570776075115730929624293075264555131327685591177347832625242028920211386761952709435441400417086578872274729772998846461282929430181983447006193595163800931770385375741701720076568372871179850967541747100989280389537769142255744918346619613439682025657523275705059561492486844127871874619419213608126421974246054561811444886576990462861403591108717290422316459984601884273795944330985174379771544511307388322883483096094683424790516745871979306686281786513509480962026603575390284565691559385228712789729498453459748936983154731213277112640421219007182833076815938315847154223904528671838710071625521789642287439011891990787830593285715650303145709347668165651211783225708526535485595649681188119444985963594993638205188661244366359971945690426531961247835321581450431918236706917334135904248146991324703561669298585692320071580035172692273533795216914349805039124757803385991351632769356726435071231676968635596348442908281108467187969118824704403658573051184102231834290363359262674995482395738230956038606267514657907301919756110247457028291564244019563390072741936336167328929508757418122663846048561442374780954041764914129297712596291891623162513781525590772172121575849087222297505923810278130447815647387947094579548428922997539117887922247044622234134715739077039044865935141683630551932332588895040791263619836715626220622656045478470823838101371215547567511420045499592177816644284053414497110205910121717859614174751086310214529758207816613948629611673166508443069984248338940657389902443157982282725420249933802554445400958256748039405499458833702004624980282116844764014427111558272478523714978402028286254450038005318365596179144365685946693037861261794376608258166371468529468231308797497836302272002928391261571097823783275690142779098428539647916659619821468279439613133342843116019398963154260346655912681844979998447901246578450510385682171323191025727526648295662576520934121070152704158122790372938917791398438765665986033082014555321737950481786712589286933596471375364764084400762299283139618893779880376531160682432865028724375227416245493161321030807055482210417498832078893835409173935389807794060733906121289392445056605449494945457472923982065218702816701424520861799538989490536118052907560674466755399417469839591533333857897530498972002934469094552539957692115793523739726238591951906886185369616796279365539560103038599622545684110598804710270605940846223905151817999145959517233785446465339057900771529328612686709080696711666215608031320322516173320217522750263103612862076027934442177183881064990905449009140313383396016538521611532955838337329583417591672916289038195638302610250149697775737659847767542337158249459607533440194315067231576721375045883114627270823602587220826844585495509631321099604227786564715787472083263267052162554972039932328408312142718373266144847098073341951445330507987435277449284064285871402768161071260734666598884202712990176118331889694873643759514868327255117990427035252642709416661985519875377643825749335602371024568388047760070967903218517201467144808662941259147170534326595839378505255749321819518866593655835350498039208935049338932964122027302315487799781624419261123779964886180336284018978280544884912528465385711692269263342748857132020868285562229668747316887808303509394257451710243567519432505946762523131010679113081699101038542756191897889709124396784841559898901553942138911554606706834335234899757821465492836623289793768446926019608474395885726538373847397538959255988315782755335718705118125116630607754220018685601876712916464296269466510828818968578538882236903771932976747676501307320261490289226137004453261783239694747771903678947877442502548816472327244041250970970024911989511033883311342648724240845915514451099047752035709037236881749815256895637548113024932898101626748289721654359374616096634859594823845318310589241462516995589284658308771344841381755922612096179616364786281946924710996425657683455051769761486717809866431631095116959093070775945271101138572560380282352368379689498700701071865703928528800921948613024492197327913880746997560768189957844582290558339799753034447113683006331184317751451096749077811590197507777670454022336013038009195866087914347296371091732714474135889991641993493606968938627855603760705002691850612547317741478222796187061054264999241982902680166074740652262012301377816985775359070404763303182448778376410866742026431718810658990952990485073737990608468884983952423029692134926881183979387544546961786904452798406109246024612089472787961603722256235263348300480105724931348436349992000194758209862026634909379292689076995217741106889217329510016888757927517626838233570067833368704007227090958456833713925980009255966803590425858288475502541161407595840412685204083469728392062915629289844603496306947114323002163516221695099572859350112217050657929589137739035027888778530812988552924383698570841556648289666325203418168228989558517342058489773534361845074753995691690498387687187191258169833414068409691474341247461565629123132289093227442804958375773305094189393167106394078184880874718228901571874224493115398757847647319238095717451333741416548341511828521393057402680845164862284128234086475193882204529245041126290084962999913389961234054391061724128228462094763120387248503966998389765300827766391741772566293934883584991125782959082247350807923779645696549842454370953937796573370707252077017888310181298222986432745026369232512576757153010938579533341067453632884930234286148894383822134843963481478511083962296371258328525999372776046145987616837390033586746544635472906295608627070530064123585029525527825881394735953603954545282655098023838587522773789031045605630496942394619799633182171404999357931076587000954130997725875665410351570560646325350293717496745650107796523634762850614033714277045476841039707970726705874270723526956586665287852172966921173355043198660227054424364980207460458059170062150054868899886655719260095885281825339997209439096398127118414341695855715580332296170941654088235632674598062554362460739986467378212155154900164584506585711849305073420023225148408377026028969674795175302695035794345250724957037169377636228555373526981311783733707529402777678539473669661812908454800012479137024593281749527339964404277902292415690304000482908505990485523498975726703715742537661639384728992639154743909530550364577835038042987602140359999466118696639098141806748537054755954070951251309917892118818080388067481789328457232339299629305971192321106873146331825630026071119042867016070773589009842447498122007078519630593271445983291223566406078399991373886399588477686031388754652792514380760179372533639358289366388847368588710778058925391390948325628604071287498979860451192552981316031045658296957472429408370267889227931558253394992652573967475811237802359969455229152316044660353929600236947199757170323438796791280670830995052640809697394683305082779136499191471085727106570919155877308385560537136758514635322488806530485960192895423149078590633898286425000685794886108990199510215054846509736400771838078840731190215097303229651697882841066839351852188865524626589464429992798388230976308452982226211523435536750259650474693203403261498462407730177461324970309522447690135453009697823931771360056764653192892625490112346315535837938678078725809401611784331056295485095340365261682057368732896017866719029347123161720603377122712441470583152358653344679957005991760175652557494790949152907546638666591302391080930344379366498442493373408239494119557761372251940986781460805285038905220788628777056860222441379550062580320000152311019409511481253896353603533776763712037675397367969238455519442858658507465885102264069014327906847354271105946939809545894700026169708631819801362122316225718290572790938296189318363530191818665364848310567271285891939208151339657314634867040863411157786884563389713825602459594516415952148037521413974128323728085594967836670731794275561666840371930521088194761659702917582751621395029931053940190265087073027516951942868600771034817083968742106322397435687629644310166021859102499872636698081270896884348506721366889351674074412884542168748236511343051583294384366940101852217551018762207752409742481018562845811870822889927594984075745130584957854463987311701531397127469779516664740553833552368023071606030421754864427711242449382137049295451284801276426233731707657185327486418890395941113178368523935109869235304123285405942013862688569774713395332357327499760197068527013990053425540701406567141747390021381919897227451569741294119092554243022796272482861074854152438023767615640147944590310506043056098712816271950876137508172340862178493077866361768899298320548312309857307214959997795323520499141618030753543548920912225052025730159053114013826059187752930869070498520827787005535100274131409597156334083002536257650021763577487747357586133012420731165969841327574272080566908177167097269830235856267335114176998774495768389694126118400665875306864934095442100383786353418482662654298187132634055802852570952710374602715180906565559980401500172462790683312555957681494567739244965867689228644399650966937340715331920963128760295592650087000457485278244818111675643856845024738687531761621192015806326812187438778408619534166424199933208318435993088924026433587553857671290840129514997579424832545601585684511157062195642489362509024084544859597688925402053073961410544222709180484080570523073596727844045503565989762238808324377380289608827546419076458385885152265602534036299981965374147229786982771315374446040477564951350511266670064318547366432888647220493729972330428026993435258779004656369586647872966655979705777386735024443756986076613166884442971510515145448053892848639605487876761106888887742334510729480329956123853342034631932125913362765742749490969805928653915667593772292099797374148640463599304186700994921813220029205647750782791742062611233248503575924766452541149874259530694736556268979233136083099811108561333745186840846244120302936458425596462848436234667881380371568870712828017676726347594686389479466671064775186598773434446909332447537922382460382989093536884744237441906768943157136042023179028372094602105676951688768949426500877950013878934586538636113270305272243027997146830667527964867757062995379727464814826832027669154084769651444594555831616890392689117044377868795842742242752336964856454511957458803064260050017610246818245149735073006962940609648404254747884757163499479788010317881162684807008548517119449936483452203796792260440639018673394964785774406013677967736293583457828393983351445656002465037617008122672739863292603954300311934914204074061221633817894561395128778576902275687445164265782808701516900680903791201184075985508933615162983806445621035551837967798325137850331292483371371513418697562763221603523686715217053201839622502674661707505589901526372852727390821586613423111062005410111483995728562850697563740921544287990476921197071439812054006437207199948403255480536452404429471862789634067215709285390571626919626947494092955592192709513226989307733458054806450732130126980720402772091593062559900420741100796004898367776662335494095073015685510889940512136518924741189042069760333518929829350155444409985610700173153407511252599973342839411085500455152717852183354993261644369978024107609988243591661907042312766126773218764376641995258117198286920755464193904620562335712946236037362944561024271858706128468470965754933714387288442157493118638558026224541240429120242510873311351366305922814915867474359841328817934510721947583302133482317765433229281095134185271656028285706130324349125814563516458643180503217696807504419179551834854892241483720957712915890709870469497891173007533620279135358417251613768406357351701674896864117021006828949389801827549508652156576890511141529661585660358926538275126055495598143138348291514902766227747293982406626865079462105049200077991951049663969093041868817409110166780229492709395032774564069615313913536454102040898988342753106223106262496882677169529732041091000559649143734175861770102880825214440550326441440219526574728476156454678205362822631820963759082359182765713046531684434548798078695634722785814215794179376222287328747225133729647744965411890190397803619674526785075651354734367822731096341238795576286840274868530656369014460947457438368786668455018868365752250387781504508153948632054586827846043375433274734422395042640562512472739452209186149977080272493559934475385830136557282864657161783102619966400319062460788236514601865896803737872750287397429731817488706931460276783639967856844112068416504224363709542000385651688081061158490471045144383894060095725676153357299882639106611802299005278240007354994078104567582295902858940971638137021708946887122766037996570630786636346941540193062967407651497414402291856061294483036989541215155593426419024534773970787162647062443310469969465393537233324119029990839557155776156686010734753010585884520050134658899502617189998339384366819258067136359982073345782397538947446251591489599050324307911504400802032298360557823877312461882172292097446874707041812707042995173840128386147529348066971249675748221940077999108943099865079327514327833095668792256526060484776654819743037261956427007889374873518825917005671562019289558215451094558508227288393877852965096720557318409603335207887501050468297526323156041127608215371647667917531348045952645236646601563449221328410415845842285075030054756575497529849843174943965270433346225725348001045857453159476477767705225400655846663466591707966137972217542087026794180489180238842475876439230136722864811663890363037349845173990972725219469169004461949768184190594950478879669147648250999609717138055752769293963691061400564237650643558500184181550808531034907093856051484926275509914062440029560977691566201633409808517972887572576857148761825502343211693481656807094032712745624741183260931524489930885368878258879977102508836736927344412848153166164068789224819195996708114565252025339300978624617318045695840476122511452030405652678583076072936151541596875658173001058755469495844524829583029582812958579936852891800905648640734948307079697200399326545489196170995551700879799167842713471213221424145259871821690913797233530947972878284010007353902150209940262427588854727444712417515222064220628625817476745273648638991232932503335734576162191239537395046395576795306260888334268378913612135058369188355168762106629564593078011930515331050959537912208753549740073178099217349263427115270594534064742080587116459639102101185379752036667131010910881199883947878279267445116291032508105141020322309397860616657140892449353182654864876888024015191912783644212001838463999863594729439139413306419597283994137146249545367839044115504126386382529070513367586839566917207889674453715839176013478032846291538086172753163127617057452046070439902317424719912126108406717918987528080306796017226244135525025745814577938451338478479136376003683100850464527669136583512809053639641550310147542006646796493313346413097144919714625154452101035562130678468847652433117865790834942425341087425297634807587525716178375193216121215692662568449854031583423679482412754878235085686186363668097791082933491653255707629815471963922991618630652984772704464522237215491333785184776523461307551239110183263461396350359082525474057001622498140793343487009585180218656215890060637734101743487907663641383548393108826555405719842015271221007294184962368056582638363466846739800219820600387914322549472218471114250907051084442393070101443809510350070297173350446683154722858667005052111020769964671487765479048495223294686939390572292074408274787075255773535204966183785203276746783286481199831805376860386325417186203848278169257076025452885913418580445664213228491056413838778561007098507722345903796246701010216321309240444401466691221425984160275552170739973021580358623886150224523279195531823750976371242908779856793279310795018397769260478923463241494568294786405355586650611037830578541102684815669605040182750848096689074844098968542031086480581263566861793299957454971991570409794635452604867126265998107083187401389898295065155600988319560201336886017503854471971882619089148201444341741090106837422303226303770050696695010648378813167200642414699093994133589136485287020383804469072846868994188869721883030763772994798165988355877232437150161773483579107656396915930816462152991107263364392152483557172989622158993932803968195761903583614935286727131233592233574307399102790452484713567727955828898845541711223171815445353872628356895041857627636614500699181784716927101623207062415949543783655685368975194058182281929519499620263671558021473672410587948015672641362901234490019983014910913989096130358656580328691997217011201438384963785068174750611616382220184147308901180502166524037258968933087940165136095066801927013320134060240998181482267861463653956639563556642368266488726138793150308007069159220952905432042975228602718286777297814813011740419947098810023013413155989210788963006783659982893498921535488440380872545137081081904621515608453625838999780294765583129888691821939542818380528926425114565403022792605444360321364497557791975166258725241824806497019241001330323278053640084442542267863638317222001113999362489579670342918420684264748947944715184504552368354266512309854917211863637537468499560784061728802771276934703384301030725776967886598631449789490873304318685491092397036579437219502177977667733416206701747648058621403475671404403976197225204688112478108404886617839907428510550632482026161626447549373052506086673091645445976091200589873173775812180661100810715183087006002978832903423956876674412089098895551784783803779956299441122350033979693917091661183817641949092245670356937940358099651688133119691245182495766237548701391703653425777925353720673906348981516587761990666932009517638993911510346924800724297862842366001593721662592291459148801902230501525236024938238104100803395170989372251016705032458764988404342945474715071666922623479405736104660219621490168870931415526382450763308409802773417995716187088660257189352477649850509739070373006947068336011216702492338250521131341257732625425664583134228624959126100219736589862002676561876196362310438383752750108125476912074678798343015759113316264804601642816385282632458951721651163859431893503189720620548220670645899937752228677544225987449898365060849785082185663567117566195176750171901037953518648825459542774892507511333086008899130388797324556247114623610444973410683925864409349089032729026372408183439891005469709187380207174264875577938867069009152358261283652708306526627732789157342359664958967885334289528870455003207676273633001701350563565861311998920653916777271080373528371690655942764550828301422149529039784136689275675878832010675890986214361833480850590871343895415398325747116806584073842584300577318357218429981465753528180633134851264295678896238693636503227345627661564869560522542938272719253417369704730394715308118436658715564308421394953130356344607142063065839601895486499533170804213134162278334877995834611053620670212355154885108452170389996526063746903002356195376116670550397404781394836834311845300092154665306536394778446400739266221533735108569165813685439039314609222680913897340076423828173331216585599635261544425769081028124434586079215644475630549937574277267133903440958273482065222525908446180647881580087138428789251539736046229446205850661800581362361509720653695884943775036995772449938726881530468022420315698211075548706904380153607583031877304228276385573975539938815708654268056570908248682418951990304142328482424772739412640615145620057582643764705581480615451303998201987172695222618183064286392450927130882246245781705660734929208844764297520211343683983642344685126955181646207541631181460574301147487793345788662093379844861964682090832519940383502532034992041952374527947553795618860433205633199966768364906500344882377628226676945496185676962204551032115073946621824491020996600731521821223815190755952992948969771271496183789347773051879090554876552462609310612922201858471658577643952515936335162634695213022780839153531432649236292229607471552125261074831401258892129006788236819157470770495117131720889207216384965100882488333780514994296553012545002582591411716928011291078210944852408815357362828817451588929065305839444169897798913782971594293148888651273031692108918338689877781860504407476969906320956114724034285008016794930269877284972180125137200867055540127493331924249898041398064842565302248890924716280350146426753314750627114013252292693500139982521790858173106559952029158952171740541607150316066873977962933595120654464772927458345733220647160789899685289272059337741751889948447694881304047998969728917395187588242954439333934094548687733430365480680072465990061098625347011017890210546317403900724706676939113086701625628493254319047399301884234417505332374288568076629175964791612231547757632027393919911207672218253733850968972773903837635421829518880657347827065956336775808633347453791340892314710020688567248673106982952810834386737027792339619259612182573518393922329142363720947219659907381928896398819984560792977479895682093145161106804125311755699798884650201341091232956747318575529490408704107819961111322322053015442570356265623366954682415532068703018652356043014762436439700263969299681047167747542225488088555718393304429352214926984768617301480727872704227529425128502749238140871633231724317149775585662253923994584627977102845134723151801740042375443974789012103038497438606905875546029827680266271515404819788344554151495977736812633776097315403399889226905175722534605741744328604755757687682272560100564396569304144241984507696702586489071947167240779659454143449457904542187189303394423769414678858285770250128576237409534814615852330661649831361732518771774425659119275398360665984164311965937331547497669414651770234498588149101550552986700466913040244170050832100977443355862320685254360484331277299339436849155918250401400097021498540719087812350899319223918780440791512823610356142375156101939579437140369692556448850684212463536370453156687263794755206990736021451457096948972510671624249561459108101183817414799153222133783354829737107744197456062058351362388392248461840320402478339429562764036609675053344943925825105190123507897492379485710862483422459179476309815505250096474595387257050160455399158198677322399835268722223267738090937717682768767589733617403723982540860407984450609996126447363430898132526772225625330619154491084618403209222505298855116248569515496122883413889693142736848723704177546458253464535655391869292004710166409980915591629309699859056042617567751022750019077464311270526933064327127667656846948651132014291079483355065944940755957041445002497780472309746880179659952690822453096097684571052111966702802441243892438788750987763625594623853922091679919819003471765407259959366714066125035668497782277940608655664301945723687581748268687282065786023981883422410156908528204561213179943081003054213334565516920402371672403688702760919738491172498255873036185463970518118023658144751586997290549383203295089152387310085636514036326568850112276608642061152352563759245099563279630544935881330004698097050725389741405102610034004483190285727314552624610327395466587469962201877529785674100842042081296075987582992718067601633038399957921231539987816999596725989959614386999069044311095007357923656594041692703427973570076232550702536138762704901750448238319662629727441650539568411546388870231637848549016604504162431480503626378168125672717185187628291198015459988493442777105614125289757332125611528511979642672814614984093206785284874740456316299574577456579810292746690070277325991447450435046773630468059785561269445335494110622469356480908509119664367839821858176325418736089350982124675900409433930919160911807353014437278030709818299927070828415191108075766656454038146741645134182570730643486401594668833808968527829756488390636055628473611920386971131659842495090788864630820623423545424281081505881263210649256750968706230058379374185326224778655107689877474816649519538496951827521796386242673520369725536502953715693966420413903464812527035564942052882025997387302014387936232853475113536098732460818315937611880574040436783131731886431638868874723431336008305975224317107538523486881001297969481702804657193502759516853143220122651544539969840123234060209582902420490420789679492192099584915279555012565623815908929913629405860878145799390967882102508506889764765578981551140227213011678984117880461381790666446498000192954756451659961748403057851142615171441399184046492848480405471663237629016071918128859519700964074929072465024549532425880917232963521575104693433507273318161347532761506672479546367422343162720294753800458037712577242161779289523007732503927265477620809076373914779854358418573318267408334100794090797394922880784514799528790833896080446382779152940879046493561822546848342383578276816563684920571734974766936666022080231700726843427632647209073788943797090034310432457600577198968017541679581944023154456597947588551520028761651665605768763381916567313746573650105996063048490386908257660719219504795945357902103021435642683238523727424353021647135486791357735429825965940077697870612936690159388606717173269505439693060393847985425438863821564602475957281807375933041978920013569071081790773419804526980761698721516780497226181103677968141937103334016260164878421926300782551611705381228040910584466142642923038601867276245423978181097512431899775729825343209586999759328480148202040592201762204824769922134807483418114965486261000448028713760233107936527623821551062661259304548907424265292892859734853665907877471015204630178833854292630017801944012410504150275161250742663894999267504915286479567138983218985604709074400768968340861668864023280161959241635736120326240385927513578372518696015994031093678795715980286379206969366925371983482718295818707365478438084480768484810709024890263144139019063125899377802628337822799818739687028061393327027674228527017948385113325715454528976421825222606253257413299334871624651199643136761294086562265704496949570196507005205854779486224996895631382715336779447932046845330678139631460317148314718431918096461323027124826731731389464605035611557409293310985155328451629067252056748908907966330919244984484728351097266811014732870665904185621443057246944294072093164272606019257480470310465322554744339341597271189524104152592476357424307023834106434191879559355932654583963282543650553216437610451578416352944025783756337058847932624000478252734148451305720433236799437535559239712413750455929167840213341892362299139948857175454375079342236640225411117606028616895834684712240501503111062286470292415553316881233882088907882338706736777578923294666105561344530053259266444448938930796318205538667381270740796603857904532689375662068317662940040043678287962816343256866878795014164476531914289702412618416245301773642513348531840002394779717640545129862505692669905230372796651531483271199093228846832308668792956363087600670396917573556029646612233559723092644787179365418078242981859544453842316166846849696908095698028779926965705980726612165633055677483632490333781944282920129059737419267306808491986397161536587206813534276695559385603095388213393266648604912439759173800578125925335896511592365794453780476900571034715930544423711563967367983278653894665066174129880214267461809542878962504973303769033485843825802038756547434954937947985867893419599963006791627008436335754037436695508694176553550289388737239527841433871366123612206117968629981555191057955327528088696097309124139566587723843157320668963365206971305416495846478191447332178250150352416588061471377479041164240297238825286369310787705023514026981128133536732036953531805379409537273139979798515308591288700480791191372839894619532638855932361138968790048128604755306940769517039214039312705608969986609419990081002795369150446670525911294036704431608483953283795285341109919047924723300034224405473938707495649862890711053085512622752002552196945175786598453579642458166579892196302500519361638610323475916672757560747143210941220225001757305764725089383258043324902902875479810882647838347894089833333447068954987853389652666014677436453039003277294181034137382665986777253008721025663157985142525628645024264619914182721066147147729916743926892325234615801587050285229153803856986923457692872161489922532597443988795677709829312888582817269600759937815541565728460812474488349598191126900125679499528330287855565115552651799718112597646686862133481019497797062522017833222024289146890225395487348351236625198764365374625234778551715366408238341493153138909837517790470580129943633630754651393468305508973471129076691229151699896012954482128634180953970591370607673441230984605977540108836019888098775246739893062984473310195111627734644015895627695503046675790147459339745040061973776703389567438102106645743556372827548987993496586071268980651680505028178951126654052278889483144127608003625077080079595009109030532347028692026151136280668263008504578274645118980440242444200091187959725496954077608634970155620667608471397770712901293960518723165015557970776463389365203283069466661220483467269469603342008770480708323857579691180004293000345928286561607655378169164680263155380966575774245419559200628692347982669081756715422333060405350977798326096625702324581130776311668534164186222768616552954803118628540101056693150193857660379803335178083401381312532048232798176392239954616551550046661802584176117022470898602371312269022789992937920462968730479285463031737988760356400645626296006925456034929486741237569218453424316813142923552209785818324016884645643323035759175466120618147683795038919001092504028566658959040601348091881671493557900442105965152959347114829816643723770780681967698278560694403173393371560834264464113447995072099745566717671645446364976095230171619142540996571387666129148023447466995905513086051328475596375108202153568351916516227470062369838272507786487880683729666284140329795022211575435321648339548117463856382795811220433030174418197805907439455709209541560429528867424542231757218641556149307483192793621517669498375161912862255283242570043206199556947173552080875223555534930509937775633131330680864265176181173619080472309607755415526657572936622466912492938212898675683700005429329853850245295918459595438354401835403329241952082251260785166769826168227580782915763395551113232495029363311441522172208678382543765043485328087546107734050416585795657498372392226768076669634815425772412091296773098541188733052111737006758857968521301948618504664205073413030812289458230104107109545872854961056556490199496136180256343851169173234921226452217974412909441175707914894315437651586423535386878089464957181075507832480361520003223183687384367132977042639663614241613047526418965047568341484834659957105153794405697217625213834924679949912413987712110232757697996997753753447135703220995448498779269191024890216062261041509835059930551354610788932245524127166572661564119756346233599816930511713908999710724309116787988171757994773130467341950624425040584258363465198622721017760932114623159871189155229182762979840450233021609549381658826923336537601350048730831894499144682654315527129068304439781054593414137101746223350021770756711532432570355480851501347247814491995584229048159209391970698423453418190369273852667804876308294439572461155241775536415709029100673331589023386714536924710022434153762840360996037825558574516680617392815730099181480874413782067981892341906950499406123078485790027263699619937524402900199388670401864832257811623217325383423352715805394734406267094625283478985965772465010091748038456670769623502561676152937847825800745032884016383393129421363546737983048045956721088931557894016712094924871618838123409383550356508428719767131107256859012555827305651752001896336352177554238394601108262982883575963989267852643183077733829216260147919367183285257724803003176709712032344652893081285647457733871990981029280353207624783146716093975330592925124625338199313376319848290010287731821657094057620731883953149456635799419614190270514717300238550162144673218161424609455291971308360053714659786712243873279874398123169146057244080441104239585853723716712155329616293111052079957253265704904640345839525509966685451049257361499328400594375958270342679158911553875355980991282362269225881650008932491419263214368945126646436318642379507573033260833845985476928126856575428287880804094738898756495737211495785590174210270692029408785094010007838149852285289264633328399111081808438988678771088018472664032381220123134235739336449361544590367277553000619342900016304126594635051085323179277815280734829658217600107458568684289447385779081247965647500955204486105301804999972284206716092961629354265381451022981073671367239981355391497710971521501597144437207552180543118059237399918185779411413712579981854224417185820627186786450878452260760051443122258850258524842422514045742169176566514102942830710825680937063843838482891035679524552821943717778283616850419528569453808226105025280791754256396521423152446331076155924274191245949276833301869245161216974433875090468566922483336146771518154636552073112431102140630184267262806105684733063437762854740745492527729157998941257961229309017976925997652608885592508714529116681936896631392813620182944050976987955542703237165715823843706414915612392479713708868216899659137368703097528576086229434553741048489932940012257394563900989406020104955331032182780591268314370910522664420210032761019519168658007814860709248321771367176336328800319233093469048565391025672950403663417633972909081633271003712603566251691891815331507501065794456134587097351429411990372644565325262189641717617283908617105062741438729038783968554193377152810456948003351418061723620008538251859347137901470814036638224904799537502811029565743963901879540745764885260802916294892880867628015660899085196986656141016502371270823611338749300777746519252705637163793136837418887089746059460908613526060435374293463066959411713387812006490306176243891986453556699875363934463919910012602428355375087069706374785594546285357431890102875525221284793165375092532772123260935109649438883788306945533327538890749879981876256333734294989445951711807586483686195490200518778429015361554790629390625747802883178504594508894320899277178231080240379425206766297475826491604577394987989499268186327038034892492705043965104481041865333921885770476120858495014389608920427652409321785301893729656480732972777109640724390561039531750202716834466988764094615639481504142328665233581607522271421969266736223617703589541146714706102745543999729405754532987129800389379492945092180291614737476211815011159371418188916863769595988524252153514595649583698263141877809173690222048463089758826593368714355996839727692518606428604017466005451401395330853523338970256707111161526842229166503136901093013103274646668963637587099835343148334620623034908923793221485418783062749091728783022264588381834366593418457012451923730491331068513708023766699376332852423293533034465673407114010907801448106833680780856794133621320068902719052401727573269075768238338318097147320129836844808280642162537117932211701407695079947420145017803480406916112261312271598555675032019956582216144366923633941476154803099461578729813889675503245451226202233801986002332895757793225192119492868941063815493497459959215013296528437410466163288940129870123431210204769597911246564506934287062366186136652074784131944668454117994865683163209465355030088479210070825640567312265050025334618598061850628986753057210492624976598829886709864880268131696519117000005741639478085748068577355999465437889279752220322104394127554394583608090872928162073029817571264372804628266127376561872829449475335129039675154046622735759657091049365243102361552098819066662630319187047696348077136699741425028437958420906482350691178784539658506673982773905286263733595977337547494555267775663540356229287256666590841498880293364500529875098976428595852750137369538131417727799952742486196477971351768147403336901702326999332983371072270715737318094343721604011376022125097834811558497036180412640260579746505301006849080932083890322932716089398333486955217623926417320019079106619081277608456101274610019154504901871163920780239862680896580740094947378670694789112639863081466964669291087970130605920886291059525912323207414478423521431324792021108868691334794141928075074617986555300603793644108789982139577702190126422225488792650616354606100750600187284117162250798660928635499232391829651429203110033721247622086224162291495508516603357929189416495987609768407755161639775006934008785514603760372525105609705670537297017683740726415924616795010844588220580582242681971725345017419282543285098598875432938180456421725139956268949626800984075101216685596816830156030861012186513594325885287652013079180468820835804376363010182961659968805934602825628868697459500126907702443060658431843084349983587413271299316899023547450151425764518449307068004244824292121189100348183874769706933222898034290307712454111537841503667776207751579407748629735216592922549929140966421754503761479274455354134443537795184989974467962964495554062398123789995231620234445096925198667798362410605887978640999164036427999036627046635175685735097240527459917829376000490299855464614974633140404176271957330824139841721220724055145498858783307185222944665663909436412265830868525005420842539584529472326960901952677393327123899667594380369387287593611054371427762612005624041707861822013415004568382992945319289502851608152368766401372321304442236325907512996524345704790225331481382290193424127299761530569475625307384997559579397389496577496748822505471670839954238970698193328384420395310043576414203103479917557185034935637919601617440255988938362195283196217713727169553656304186025169219936946317992996601864968615316910080748753852160784479900376118928177664312426954736969736707084935696103713299647229023278608426457459834279091782833558323082981973072130124012307394226747876206489265182348354510512265895999304797357482407914096550494280260815857098338869748493821873237093771968346790528943443109102560114429337386865214691538662077313928923347914263005791690030578558386716404678009760898669003574554552519750544115283891582836233388422728366662170595118331778863477199653712370468119047497303076788757703030632233159643672937072569592661983823774879799289113286035003681698696559493986701879811415192483048357151040638285025478994169242596123816533962014856189433971491960126926791269655005791817073066405691297927667548219021360888825950228276637467340501500254126360896186687214573070536579306753784392568611368277545583776451889951992857994278332681195841003479608830864061510620067879654876774376233748445793944512015565960259441245223235996622870768792296691979476821278538157652689590044128313982745947828892567739136174401553484737527701129092570007168868570717546868807742180442239176482657790215421186550654670280065525813923004991717303569566324709411754559186636333308858431337594253475131970135666426168431992181405136395108973746912492128591400165218265280073567049421246773099059588423455799820594614272258645472139124585886971694416219966517652330068990062074256447493600252585797968367573349361566742227930238824009781096606596852608758602372570755123682522693436670897746623056195864543415430814909834773925603727298799956689963811207529730745860679624858673316607677063437592950302415027844352898071549983725104469562697135378570640340112887587915314971672657897113407249756224864360716766699040856455438493676869448760738258177090953369853325939566768861718567050241318029205940490919610471206726968241315106084828368276372716734903220654957420510820259080625034118624068425641083474769379286581716957280101869843676209929174926038242549358630655359147702129142048162887267776033875392175546522218667802142562503666376257645488908042271221323678011495813106325631803589671676312970210081654334255103845303260628892256849673507927163357676159780976186893870642417226979321664417405750152042860950297278922009738065192041502311812535418313591603011194516967888348626359470144795281225385303641671677532362015465511199676358253234472169506783974135891529563838539495887639522421626167065263978901519301708136205425642774740153343661317535938166011183956282609474383106413001296081693460309784802685727309711833758342431567588475959666358948705845228455214576024204525171346008463842352997677941301365165417509391908094266305768364261920067542323673146792083667485516498362074954116017430197055769434935477232383836519237853141271987503953507487072215380667088555264109666072372973307822522405905537185260170445321847216763556217791932167860031501667732937509763493828728949691211477706177688295580034572886543859415130439945086271498831610185814360752661536235122349104046695853115416359054094439277091645096902104905949328841686428260839649014594921337019731766458342041516415529489632395098527308303000946707547707102245896897910505673553082566188484464663415896474456558167703777437573992875365407702714671007864706708966235206065618448429037819280317714631777172103599321558818981690975911300191046388587174492503991585282846245050305119286731732055451904712296082532121102603457277804345812974310702829481198353263318642621463927333395015926381259262504310549705052219095523675394483175633667796396971571779783337270290840587186476075898731411507943573396002237529153140050336942750006922255068743212964507738173532929095783665842714700940463275973276284478737458340239093574237971869808344397504324352744859811866530907102833914480541202112933022796035702858811901253831705462759213130771982592140223271992994316632778350365111204546153307798152771562341237557086977287431650211812704370194559605888773245012479749532067938251312203348220264578315677566629509497371529728622871054201244736252258715838502352861623473539727637664854602554497576239322108924792327566945218945299625778528772923812078643530998412413674031242015958202565752193871455887087233916793786373949738840444916476643008271385747576286193013812555089512108506277386038725903819799616717922416587430088322576866830787910322124273294951348655606708449989488927705416322286621952430124062743692582969732571903890766394772096416601917695691866533218258139432720229201849553846530741539637639508450419594560166307039248833424486161617289198554195281903504396497968730749480574716101775929266269018228238928142816974837291671649605075746603584349149602511429549672115899447298939985674532629616569036699769250263578211128992333400813213679981506438366595514145966982234074194361971414741903328106879011923192969844297399898702383303910735944782035991786198207135493530966051363243811297485964588996533658118702428990356797996766112014503971469789919138914533457852377486489170736734240398535307845447243795663148733881564661458503627095881970001217616127636613179188104239513177263284777050770986428768031385867413879383312672908594380452136511409002661851339699547767783657423007730356529832569514848546532803588846780159367675481488090009967990879172374269502408777579933830800897651285323521724622306004350485501842616291663024103352059531691430548803345878803781579094116552245616811868213532694574716060616674648083597078149951298562301346885230077596508724821399472309638282728209061412237952654284879378591465685331244871903337085085237720505168036521040237629947919481169941556746426933883694119001148357323677669858025765660683534316612779799965648186589406968506685371751082290845900154227147071933619019641105814084036494144464058858411832640627139528434846416730371099098850727427610311955173229105982144902029882605302511414456240045776077536892527672432482474861061464673200737874392350486010761153798248017325125084652480538816554868854581731179046510228654641472107215263679202072734652154211456346114960939934054433049071913758654534813651649996310477174974948100566709892304097580062768120316814016548449066222184814264717710535058381049851116942795067550761735176701261891138306668577224604323113197795412676934899995512735895766240914796468117827033843283905381915856642572245120431102697119516200772128289698711975206719190765453013427118042211778311070819441737889802023062826579355364806681021325418182972832469118688999885867518349980533825422047977448181518520319329835834823056674821190716532766773528331532107358313984901003248864707191397197435645403053823285594586630727983783490957910623502133735447752476182781463776826958866697967331701173356172150545953656687562249069450970686143339987209120774811703628994875885323938147244548740921827281744345542135720257536896755593157181475035791737110136024150782067029538162887469612456926666169253406498787031342542441918820332800420537860529680060209282496465005122283231697429155002493705885911399753635183311410196528471588681899779682114530556862423924743720856840857671271000160978263935609238426737253293921044717827337404140161848342737510532699975154642217507175417638561658635805610538411881718244449565001965705898563525263187818225955445116480446854935938259513445365330340073022339290056340907498222279767392878194351596357511432543169048317908445107397856360214125954777763666339942049130856274553107847464850794716758879714478064759947557324108876131709094998402779148363288727069928580993325686941710501521918578819138284916097339579359054161042784703371914800241917000090324470086927453145530061923333745245462595544749209595598401866931086942870591635471614864989015975837125806674451727625020997767373508281255524352436196466535718176099900000048973282712396740655717771885865814293443712915055591135469369927122656206148305088463274414587676251656189474658561426811719521209387907075383360833585791535657477537857571052970799502887675089313647626126731586454526832735288933463460356922767578554862213158421623341333330823400153230889688090501471438219808437888510423742448164236190739726931822277056943274459282329953767602893215503316905315534584320389054186917897873627708679387456300439032669170115928273917427413823352290593815563209966530327603277465489150801960936218088647509826506458951253567117685598241843535273903997122339128786117837314474923894453565090905649069865422398445989117671917764809358988120713405552724274096955215184522276563517150604052953850118827713040772060158551020215721910482902147006958919155968360487982833744349460935160394093986891415877549157863358496886412357139156509904376143938349889869616438783788266638356246296013800899044111445867546589855570385375983976504842310743317497669606642529025542400161336732895607895286410259881260335429565153248810884578608518229557638877906206934675446992977098032030011211941765486421136410360378979991535306621828743816320677328260297694623771510137839727428593890276037507982988635024636897306633435199382602656507604790188456721066644153307430821325715597649535030781799887157411382842573160504509495912105388789641736722615376069744490228506178655464017906269889116216619048710099570347182440326978449262002068070794072174795436916544595575509278495804630811446350680353169429800498420928748059647569495427734468737899779290702090922999979081378837173733675018102456087433504295223555956316708728496211003099370353045724210726794453985267100529934952280613965779642409912451476512236973812311555962268847228838842172582838021702922892037504841056081644853693043910587919857391910285422609181869297313689404362343219849297584265908305357643375975932306696826032885023479633803824778806797827457460122467920180404164806668491557565262415337330320351548898334222671367214205726934004320647596452015966399428893913533726597624634666366190220513307131879690907325874284081816707655127410921037668124063185631411134010893093001314989645887822945722548280063425332586152625525309925769711184979637863483455030156364831752405070029839913195173528897154645712654231053901073737889225013207737543786560169742264760832504891800058490736292398463365142419628323169692616823704471447945946300935713533983663790003948016851882837698611231655853928782189263759866539746854146009496260151281687194093951410512216119532488319684171909947427560601659817581310806100928614914254127515632321831646373441720212712227051472577555014795290064515616962282756414239007601416417506866529385443847578005609319678994350405928192419013186765778783212643370856857687831495127770203382204231131302933764930927640576925685179406241152298714300561869656938307521576280437025321970542198648798968636593288589544294842232035535145512327785408283165873850544726370032166077566572867857570112981401071867670682753072912276291724036042368000487663005557822020102750791053025675263247292668715358664829155546904360774326119675109813037318932021490458269871888645455569906244245019570923843999132006906360480922191575495434644924455535634803130392614057634153219034570521382949675766865960519304998882959789017946736554947058893652956203092918368197915713043460957932849198279740932671230309802711843239218974312829165483502878225600284249289323608089528030970355820400220999204698797467541931398359265101327484965600196683586341423279238264095824599213240211747085092300098742981383488858606403048780545549010431889782277656960074393270708787451418073801621455654603144682108733163002343694839903259130920169022009145134443672784632305904130968251498800479138476191961347104435292812240298569788783125164839850033843892796253485223752710899443891043384157382815800956088845988211268001574561699778066810085749182904012820637528203118827390756918817789249366125561711565208679379135860960403499030939674921589270287617877416054936865185863392358259170145652390979050243185697337072059747332518800210372988768908276616736648743527668350618115595857076820939351908617751902512813870855877589110492230715126889893484782872679994743172363481138316923681322205823571543976354601968919259694765408730097847806230572406443511456793828856480709029147340796168269528168153037177452468090204159550794054307353091451350525689990375274409069835149774155381173952861008480101893515001367049386603679569263824890673059936618873165435020383261183037388890080787580801840846944407724179435363662624133808455404000666792960389367381355631256562648326478359429259504378729783710386377402224160494789147814719112959187362532505675395394537662305592384920419960611651314908495346114782529800116007101878264447107686640723007221685579887992555228030822368146460160331393462863466764385658860928365651029672442498917822327929173141555765341168416169135563552506541109880651018192545076212667772784028830398858149603600158370175522951007796246422210500001080593584348541581470454073546031321851531668089351518171049469199637117511851521496414792789985721873147860620838891359007812481416518711173382871945008366543103633738492666386272249718164467738029324481921489809485755272611588696564801863368192860589687656216028842128926234643725404720102365007170314866302279831265926628743989976020131715263797083270103156483047080611565440138610595891192689342023756053118374083664808741366672225415267434321718274622539691310603372245297010249438018510427925106115742849022147042131696007823326285222570972041616125720628486299606306241840147942582947777288988023257373074651132974258388232145532090991613243120823286326735208758770889652468394315854087902229041754738322525279832915450079747767755459407194690988493166206901951675357590693590239758514178638657493125934323418850521447723395507433804244686283813064040214693192815781095695650607654184645513581622832888303614104560684640757580866477436094779696146060384174806624230292132325412959486941034637956316743467849162507809698750500294550557779346972799909255821776963002956282186299758037348734514705079149471707587557557856102302073222061417611682468093857855673672060804101533325307705809496935805911274387576507880240863707326905823691485773903067750453703338193886604279190811551829575418943680173980732273918902792842858078184401174088286084639190941979314244753764919303196691080635691326504051237202365965998243406295042722415503555771445574376668378205998719710224519823582254387435188744989424575756715762551642339215475895920334956056587920522270843155531943081353787151436882030105667999269607241922307662980704081962991797250350614220689799261018077133064638787730344555589521969543938522609910588003055909087223260236004721284210057149038821276721601814361531711156658354454954913842758835535462513780656231065729637449457061246633034889752063860122358659265708782213288033726265266680229582013119182394115995503101553595534040071142828945662620482831699977176776342059692500525515268354998822438120905674673805105722766592596703130175750359979115753357066662252005908757661139292597444724483128249874146422232770811507501632436410408220318587821543297746378316080739915850130881498006467658564762517795198083033373665495363818105501004807079222002852787544102131674291273054169020719069266689519677581859071302192567385513201719927298593625230008668325524361593680057569613756002855440728857722062995484365547942718030059846407928281807902012206036880862456236029505979374233124442154638251204414658741143298068841285006243539089137365806263399362185692114305029056083632851267646943830097592882349456119568365924877644359756968539001248899243628087035926889035407669181401099277201072578733191643292838241315848236068066202049008321923894066437075497390229852441125063017781302399296182455150015486604954166412120780411581888795635995598622156264009694204159331977463057191488170431993401329592304571945486774160162075000160436178899241444560828094886995141150269979175605515341135310822527664012433090648793999840725794513878423726190548631462849404776936776331895651013721014539774982793467321152253082710017608779192188345438909106463961103206084319553490920312299912286836657615982007030845763909599791681094670140758453476655418710703933393179129978041973155968913514718671854851234985763449395156465397671668776368922815016016434815044838315301160919101992894476078781818291307477257711576213660685971737664917883026672393572146671429477302065339096247948753160595597487634403557850004353096804931001794780197515701445287281060317667465881411580771292272449707003958020763957469401713887512854451417254525497366696255802610392095532837417297873773033528016980651432228484601284221382470562359144269798874941679592261971073591877424319491494817503221700191221283630830108456249019905943655119563267148380224384894496855706687430515163519886309232118270848172364609050821533200207664683337844694954225766552127723973506981322560032388635044766180687552617339710594490300339202582851739566610591660150776208252500165388091057421890366526480533564437348547708898031218190539667354568817697460387176859751797101743674881089875937345649960585041982063726696973413712311579708651072849993235569865071271189219863173109939594878315235669619684417438238236436360612139873046743640870744489554657811733785139467476249813391542362814956053442427085280972295679207847188007328894898983881709470012912331776292256718740818954960236721767353149762830860921540068629810939050675145435470243270203081487218461017581617829459601281294548446204459728803053214949092419877035113410687950565208754394617112334907897961507266663069383094629353485793975282001127514361932010676087701799846981395659904176459651548512415489582540421264153604379727392660126279863867612979517146037857938035601147337299079773566061220662373317879586421781227467871675981597287583422902162370197196040237841529953741843968895638691654472177324435535355527557218625110512927805963572615757356752137336370407840544652511363525414410137686291352918065295829948510304772866791121313963057429630354474916559237785594016322631668499263499890759081614366583523647079257698813473639376824066772750181824578778748087769562982019238843440590480796609688933863522562445119538954078371278151630933906692674492768887570401681841124723861233080338722025568093381803432703670012544599435479251560311133834006930957853637525093496342161721403988287132692845659277117865287700546550206382607208082895288107272712020581700542124214115058793261754813067322982299456524393110308156092541014846703588525336276445232577321119994297055352565247102102785378021398913033490107000659202026068988770607667918197526454752374247563823905965384476015336123026071470534994909593465499328435246979096897559787841139588132689917418297767974616311048999111319253240062831620365326791487642412161621478676985494066065609331563207117725218447484247876156201193061325668469136867112914475506383637026353903071268387473373638453687560367038360890616094671827175070214544367489983385736641182326345615183872594187151433709621661080624874857970122306051731583840368032173392838626804141144460228239852991017719467103306003769593192961187624251092568035909780975257693085050769960181190655839379223873902534474581492368931735862538607935429585894881702955212102802323398488305946267771850385968773006633128626256491131690498452223635775947124543267433173053893674821330529089315874603703577578997557345544770390905147612863686356379061924095955745269036503915567490253705713175123708030736123368352925803276911685212516861436799002760786232007153051500187941370692004503043546970141253746978577833868294886602812858585114716004895408458004981281203446223741208075163397380311897363552771367857659257590898039317039290654668532257985788790011408666577721592413681499460039706955528907539095035775131272274187175572728871490814828418499762042464437796080644757417914095218055783200069421801167365734061594596121141104595619093731620426990752093644064116546811038606456429536575141698279116120626818350682966807795805349352412834308445718181910944267067284927349114731415150678228687507736687791453610743051510185223961312420561338468001987602235397059870189833796841080815049682508904380072046914049010503443159975835049094643080399950673470471128023366371340694825367110939449429630542699714168268059382579227372630849165991518521382297831396666464561722321145304578687338495639817145384724370604730588347415411758182621356548901427790524095055735742525670030013413613064009520142941264926636121098275902213455257773933108582270195248818132869389507892237262023039643461916567827995654448155119863267101509254649750978650524109896452633698023313072378031106714312858459262441116301577879726169473635076547932685057569308510058934647276890253960686886027243544306229201627482982656524280688388463764905911622893503693989643285450039242991707265787625747433217390814628139294400895394810759738958116425856040164128274957163266623399414174266273513993806979754831615258479998806937734102120409916680310089968647678261525123867003224878669208055736469385398750848865627644681289786641990440494819604703755612119155563817580659793600753860334888973649940808541526039872265972530854959104734748150685038938553223543607568821398126883452816772185872501360814699869112179390081799154015811574500772650342044642517769135264222608718528981755609741732708501763464142471773843190542896438610763291885800077556098135584056275849351916037792046530068236639401973749367679145994124140462741530992435666908961543837432839193346661839467553342771041377629219109594321456151765005398409871070789296759839931713046179577061609942630860411740904708984711270554612493038658233327266586652512346354013411292128147280373842883679507518705191961455852740356899800196461850543068177020085317771627123414533903855537838526746039836123294338938165706182739199812537321121049295787474572973118980127578772570904920641189331899555681580687315881701595696816086562836744819737695412230310517908838235135597217067526608930149386613234790821234458429191927439243709718713321927160918284462161791880132226535629096934872466966454160089904315182154352058678750501050513676395429960105503692247959752329948242314666886270890806751171254225775287810799587085901573342245985222193932225276585842663055302655612389091044977896274342073958775515973358974501270086156744180699949661480240839283346931189517011832389847147178296492525626024752927491176759484379068802917125500573859606308826263375968781330913690404934078856807158379076624032343456411708737740582964774219214703415473013102438618740236575792858115789327170646359496423975891984408784660576132910960541324394282887652094816823217770673578032929086505119783633571028271344914871776258584116785790430546650411313039764685312776651150328372358077231602959263009767815461146419726237174695774321304974202275067328947928945806792498627335838414300877750541892554152022006737858586197461881668804911445918232057312755294298838249116495894712596947739196673215360353780521469145323468186837413476910006161443196321152756385827616609392424023470525251155270806856718009233626299169644872993741208296275979472640186768510918282331758152446977066661819019650849920327240163739316715827221925556028172441855679845678288189181371206216994572277722173555601600400680522017022826997205399242824456807195857336075571181989935460536956605807996971998044723132029123802322341614815995114541361048795301268331499888086398274790426784021550360299726440526720447076898200177872423517440953882583733106760344569326789577269171138213446524609389184396562652856116035411350753202356372400841388194093046614007263098219200673357546962525077790859561470101474631952623350200304450031391797296270740943805035658440949230441189286543590497764589064591014040723824087102524363844829634611039979595130455143282090480065832546329052974907137766705129228567354005820829130187637477302670738409478474461960480093494607268626290289012662891518617017122643444609618295173826241706218400974919978515017897389554175160826055053461535819786849132675567515832421503170640352327558786167558206637555159872370153832857455515316087634057532864989985116363060936204944569237409814905803561473631713559142734350167052993957821355927649032810713424191511009768565511269054874043853769213404989096018538648161600751309133366687654253626125400739577271840168475431091821379930475685746328810978982733283879999307983427226989500217108524710249854324820761396110493837642937667643323894133445998930279066047587463603095571266107908242005292751349476381930643045564319389410841810207595943311904706328412089085604358644060301160759528065327351330307682947288432083075034372680542434315883399281837299354912719018074083786339950694294169686668056134023795416828659988945940929330598203640342675199796002730919242578394409602957597275215341671438828662658439394440045083515289235082459034827365159517029156635752664177298066838726540140694659677011263021577993662787146833124635679838075360980476569945493869133625223852502770874316553207500767385768346536885913330897596318013368803595473255810462031137778939905430110441701008279333398359631189843737120506190255313548319459205151126981986135297524807544362173983403738040056994786195077025476521232754005291907545542523400689751590638960964448665860003527012421351155423280151510821398425939863439302311450265417579291442587712374018321126046226924634217843678990616766755633727439611542290878289119184036816308326467251657547751778202181234204347121535713364383251580611147532119206008279766334121534868639641056094414736267549432461521338624328955824382556016651008925205892785538649169378409343407529320194158840522141759826403082094059327263128918455368354815813893584655957728888016354899601057847497995722081875035381046223697500101199281374684369578520412494592238527801359699657527259003477996288932545659960451130444233612630329745245894684918036393385818660153610327970224237009362687263849146747296777510817102853293165420076840504455977725588532131514309038971367442241688060336570576794248552693419833868927949694193025237060025499063727749530607964671783673020579679388043984402345961208414793778933726591339993197303877122355697685049142592135994034361215821402514414022713685998565283970595686282287536376943142958648820709340052844964144086316999495085480897056717829936228286382473844289378066612994873565014339853678764208660266258223592238578877830349356650779718933637456769215395980485863704810910461359450437132199930762717552374367222911778240990072851640750659405908217127115215227590492622273664040684323874043387330983103262045772298834885868781344091131763160881953151200761696430698756302750023490498738125562513317090522418984463661975169935946455854879880543013040097352253638546836228167832043175161935112704064393310241300643953505977466592026743885500813398225659432079716293701883197910876362502964191212385736220075063471530674205381078816475592167510114407727995793875928167677138336151129174137967856755101638306539889471362119981759871039939279677457831399813410695615405426951623139825228923197430674994580862446192130443086677429520315572374956819807702714993326936391538361563129497524519741853358394414704857085850925351339072437642633733554266347034006285582930644935055663815171263891414696091068819899068110831769818254527240030183731340155600145153630768065179050743725672090621847650646566670080074306528896582148901491256586206788427489265899042540264200664388000169187145127127067030669890890453612370046715719546018903407467635359407280807383784870027735771669039805779737815397213743536655702443762135997849959072065403493116790852143215716550023672137017276199875071513728135050461985991772748730486190567642728977293214421502936831671694959193782050729411609006279655794504995661878019642973982178951318197757154370804241868166324498589599488656014412811017662803571803741552770683527217200752891985248389721467638704416877672617917765263197713139348415895366563488869028914919896756939501226618774887453559555814956517846120158664201910332587167978982811500512924332390743971267873883309170484399500169915789688062550368542642828439870740269379228948751180938226424508480682901440301420451722931834301227095836655995909155035108525217267160064233326088010893189255238171328383617079642010842741664376265909520129311968684890984170213707114225369527451758025245035211732777816450224755859627531048264529290389830560601706631312543928576858366598532568904004805695649611232846979051578987148014699209552097473325540112744947728533176316624322052196509200487477446859568970812620423963591546851984626626144702626924783246873865475017735495269360395717624911898717355136429137606096355887808075060783634397847085329486579505820665403015535708413997747609755896608024410525605841389127476479736720418128066530555291011205707555710039800384094963420925338759517486229705630543040803575460171722796920920093596362160683623708827564077220387782588629744162723242427402611179152728676410177029397435908406731059510679618198152964349557030726816271367167723076537810286678038840019248582764308140505508706595469147946895756618478604056815122629501585738515908970133830423143809971128920558006185623084748685739262901553474384363776229782727249632437584279270264171508893357964756626695454932530642843208370241493910355906548184613814919166862071518083972436401582961949856376074313789952603048416517641819615222431877875096158623829258468346764947166384480460260910286874488375281594910258883978100052045889229473342007340758367940948552333644770562903886659105655763122405577336278371904714641101921279902019373972518040222347954664820521627325027575938597162745579931816129124290550015525446116934515293997201767163181523752009650903538318386539363727361647899074749227949091685815166153334775477875485730091868110570667147779567762632746523607878794049357584215276943299182971856542746956552426454256577010976939329413197881414573538067846170372705252861701562269116632182658730399494878119424415813540759139001932321866316529083616312824308297074574619671975000759467005566046880007108975797104923748402130012209211386164347884396328887724388489240193375111067287300359320184002713423228363129444955672286237853117825565045249187865493101123915519621665590431936606080153838599609957866336900365079698395063826621379736637541537743304237026323670344696011837246369475740792423803725213857690044219666744419927806253297160831273638974304642152806656265913059836871627121780633603996729703637599404555847000887958794007767990280472495520638940083536668802920726255280842685416591491676077563667618168005655028586604016395032539708558476579565139832270651341287294036858646744934954494770967429988198823093457942075917873497003901152448199219787180292345040425796043266202527590182756247403567650140979440219268505860273609424633849423812098352467206385116129522980727183143673985011665706878874705934767484566900118102645214292952057966365227200698292998495621437538398101805372733270337023454744134070584027977596968388580232647121542392271611072640344839835679371299685173379635840830405760940553102716819866611285270140450039674228114093060784792297881031924189923229036831006706127611282505627544372621223929852651954534262398439827113970564069591157888311660951222257361998374695936348610148874472136059695465949307477938770088290597763968330358714516765093760721579312080233317739608090721747957106997885739949689118423691749269972778361860396291829494598988288336709039799836295420454399903101344394593216554680193053717261228734143916031665360755746492063398206005442352238859301795697578834130056654432316899393760798531806946993494493853437000799986122518190340972561675528104861877687968634151977203238112052248809113273105813472710869640885398938232909054189246968174324831081936921918904976814596112905605119731628348172000677756753332112263884400501232472206165826682324993568365946827311104575899377848805564128219129834808681053456610809479035095460847305069714150154307563155547494125257491767617686987002762173386975429689332571856285409007179573444146958519257735859720561420335434018036781544178330356703037581030631856411001088996097654410977886251046443033518791660636595346623367493064342957833809200317143048250757362603455906536902246089665048325451032271541490686076910931863494741670746471553042726836375722906015763890175924306489139381205445795916680837495879509769476676348410148645629646934861186737557989877364230067050762207422045317792594682398598166604508219487724163995356507708159891466514259240843605803944604091841853076254229132012792268908225714902576566192714950303358725316164118577467080616901285825015440987887884973446081017463115757699638981485497646218798803274955881196575713623434840049304311114795511670034256676262885829010310049535140840942399752959568551522177303395735341119225863022008164146523159313943423742449984302062993626621974125507881148940768691984633348673461343108926057665064349524253346915271186214255188397945038023501736708967750564970221737314788090436073019068427430840858929708273082599269707689759990069779841108129390716904103097456579095310227291034786660487530803997584466291025375064544134782222502123377026597927702920577941017632806667573652251519131943980021360492517629856698681748771410985991490956403991738177250879861426945014151024288582218572991582105778030230767810018782879865744037696808491739906887098889774673542581800984517216338165671863884696743591529769998238589339010495585738218162400906926554557262315337867482153041078043643116578772115402649202309339881872355122409115485454261066028240177576064728850875252176287202042529010766951038887289700615335268880507983094411554914611090107378357165522470457243395136549273736596626808103448220237974303250467048116545384041432031366249555036884265675960301627615768586805711214447229961933434704226713223880601455531290993862505306405907192439005838790452148965167960390414693903745918800729740469252322790159416386219813387296320948874455129042656425208559254035057806607458677184945774056007372038473503171443757477071579957261417953496827711532048859572462609503150856667549365852794674768467172066718657331782122989170958349344161518652886392291102834406107963539795532630723456138900180975940256984587329173603241982640135348453818056555624372435973631035510343689421036636102791379681388852873710820477077427339244668960248070282734571490960862833251518323824610620792667392322360727233463210513858548683464774304229732927266495799579161956802186106517653079736329068612453520115212552879907464418672207893743644325191782802590670474160786418091472022498964215605698076203141125440562749831239890659722329875367990743383325674983069213234897530622788995536771371181550926377457715041740914513604608383644010924257330325326690155891443291429784947008611525208659922140040734119899164998043143085174823636555200356770195006680187943568754129055268918603153671475937622474001750808716612474523550247646042452725670501201472360616372001997703657354425302175495738556007238666013497787507545966758585728247290983213709801977727908935318603588757653086297589573062720631014825958311610427870520880362069966059323065519655614280848905491001013501192786392496133038122951650658264202132950935819137122219080821928305766957526507458769754848248834279824371529481544611362420781042648872127642730975884571679892497303024944646986467646617494719842748107611137263981450174746281795520675439060714216192175141394992658544249368191838123717161831233808130585119819781686279906689389094642887419246089382641435017319250504775172142972586472845546907964263579207338942447917202037024787857766450578053367675147050737738686662823570048780270252569845393360975004479070058050930518074257896463261973575576506260095819931728673422746440207164442812518687102178228714431459846649963491399081104738584940015681553339544726852872392731592632766302258502247855245761943122228220278381341247253909277812627985759541899261237995565385338059327704205587094712453460008034272761834653542105684559608214782094373323003136383834569874385632671120285807981743196186452052938679762043126973012758702810905104092907071668420430999561773364554066998215862585351659930430930986502009736546116666964321898364369360975919044072862701315992262169493252545803670268873031544696960263344000884077933469214812776718643106647384525921647749855499478569954556590459140371777652497576553325073508922657474189923235567703423376549842868385528855107322109151222825460526933009273051900768059147710498239222587632170320972579412356813979905207366816946540554432826235337239400255555082879203810058878831374008006087850312063409895322221918828426845153042062434971435510124195884915558519454512832062222177380863812040409360591166211377581969998331160545293871478767831424979770647682890578994165902522194909261329284136280816178873702163633873241561101570651014421047799224544423539859909465807200913402834748686977022092436589639499256673401429231593447933809440335173434345801844396513161788317602566749904161201301973227041830981988089526264394111326882931750887567475630280637719071515547921271205336727725396420527800557847585285123006262649934052036818229956349767567987304403603794035273390772689557838511887274881297458125931699837011298351302640078303239410574835483033093612350436416167505143615338932269658965445249021201276695060816899153283681396664799999254880705691919874115871010525607756347578797878588551490538414333618153532252938160504912760940208628767821938300883051241131111653000841931350733310703897444220743385902307837651649812044249620318297356777384116581696753101102241793656352478092779050311722760005399061872536200270908297104329715380249274484450122249763613701133501766951950537337387522293322274888619383651326771172130492669923499022571442386259118253579628709755108315460703726628260668845011674911122539642619947169140113910263674300290521651118897031736721885354136198536735499431438601439615504097567234356190850540916799351183333816733221782218919780296940877823689542094150234063594925306180726717557547072687468707054394440569472612725470161496639039203754188162898039467755606232539844484475996656079879285207561821599894210006803553238731794010614285361864002756747589861461646264544830809800754629234521724466091041652287363737571919586913888940436019225485775975168912042390963775963028931153595803188335798747413768564536814960517656917335061916311527015079243898330582971825593685529164889525156338251488586092797712312804595042341647706984339952650754414938145121134591624432094041974152589449483706795652896470121282700652554964796007397697657481656887438272531107318593338509832367282806210654653310286529653228319569855900410402295701330464276532652529895762181425614465776655220102861793338198912594283051203185880884447656408477203019970187672561792915712808059167652069656878478515620791839077535932912868517638133100070160117153653311260230634398230819919372099292826833905793763761027970299874761803964471975460361515198758484375528779937579560740557620419710836852114609399178855208553922766931122785972741588309759575284698503473020730908178886033661416363044351371337456840129372747333891739010579224864103093221463534280314087415556882915043472112992593581853474627748466918701251041580873542754947331872023279589805011874865148278811872057494180388445847646775815923718035338326057598222744605556690243679825850602460632808929032276371547250361395267136667798417752899023919123220979141366603444224564257280608327930391678835844449787356859843773620885559344614465239279964243900372736023129655433843491748310855897810178368726077395954974035020529373117156281904670788401317909493575681768607971601758326052793273137263375757372217266242146576907723819884951838943223560958682277766659886780417687303861557108191201308361150707372408588513840943251937885564389414820542524987511473314094695990705290484935176398099394562524237448971555225518306899832071867577399161116482962645524737629656555339501290581010368681594412097005993630792717852205403630861014109785147327566755576037822107519489152811284438335299141464147917697220582937292578821137191831368681129283473732572159768032066016440201692207039949723138774087432417551571367713999087861268125848464310271332742331581564223813142943933618891411770268202132848143694298253966978407051213635304667267448545164207066130611746684323312268905883328034052280777873807860605695522500611011734763470663598973863722140230937495316069596483398742417003103200112255995779113211350781272881120165487955479628502242541537952992026833471417257063031971640138637909731356765340278465128737080967932764120268408898640096284613446118483593814856740182097344661613135152878398011362077316696795654912992691197024768149041766415979958036217472248328992804962147402125289912928552083649233716911565323602001930987092736551660913187960498714190850631596620619244362362455373875905274135684624292727804091845915428170571390972214815999180598448961747777854485367522838597261149381134486362829125020980810027218173109600050424182314019871484271847607155151110603253672637076531737796543676305157696706042390034393912548990163370922361553342100344784593754788751352743201840324593809994460381104850232252533719537137065538469406411300979539857446766976239219949319301861668415502710660316436231746342541195252894303639932295565733685238229760291133149126179226629394842775695995605431090088376119014980131020043672987178566065596524309074186085421042763972686986319530568694464618107510407196778742567524695438361075974494638952993317599466041767180858117833852458630888417825934559940503169460108302102096869610327049626489403532245262505893317460840126838871692299701208786538216815705693961340853155184286499522088913626586922767849414073455627546077619553421896505108297240989200317876129825217072155214458604291621293634060804453877768032121084337931375764308066235801329759700520550372919584198738932389073854067590655340756660899562056174648476364912375350402744045237144146537905679979768965115594489573572410921565016547671438410931066878224504058888686371212712602780305570782670779769995267621680538434349925425403890190365120322075297942200554095793699684405782935893597338290681116830659512171916144605998485398012567709190874833253756845145293113007317326883466004442999380497499957814988218907551193252627752738140182484386975113207975685451438323284975505139443465101724256867017283544919350565271336301472391229113823853005576664197356191691281877197185649703957706308981775808553606724537736909459665540083792163825374537851596513434304849710396273894111971247903994404247893220343522885609323517781173995467912536352673229415590809543727404314413588949784235724407227965969299840296574848977385252739738947055861549683944103590929463390834260247703637355692347652612217634618198404073438160787863807612779190877376560276117215401418519212572387419534748213852594875526814729294953893581487065559046008937973400659130450293196022298111441198967160466179749646993212876565603616689019759942839240226288501900496623298683370431572411496335120411683939970755763404742214137761634933734401276911829956915363683273715488117137051192375851713844431253094510923005537789276991990829559493645703886780462047562894010004328525244317636748145929159416363607373251728541731135994282954474809560324467234011833054984016002012993854080466578916249251994665508716562313079594131102416847518087987387378257433252685143276052349226506275574332704504954499819148425335232849880889381646493730716821273349499513391231051544563752451650658943486879475973376555429100701417801919320361836612974394164829591642410921059962105248410096942526719567814746420645020898882253962873239193390086086949870132713296810488133339743698650195117941958103740264117848082528596639970028389833739254803747955182706602436293161457048181194433819551830841428237483787053005585753153232926732005790946143398032565543675605957263719007567086738452837065474614385129073590719039923277568865139452027212008137841121464517352752955552329163402905922497497303161376262445011183523110451872555607849060768457645328013439149239557345123767457439143841057344508437199703784546426002959737613379643089893942623042860043465545855636660772259829318063642078383224478384616681072681050718145502838355692887151467540606191140145615743658156584255137101204431112350224969049168114509139009444000122055465044502775258621775862549639929575154392091727981790770562679120926476756283607271063618497446613031848595134388719155495148316207676471482582528551077239449554981210646476320515178353801412974984618632173972606640053480117728497773567112814336082258412364392663178282537171075508033705702504035115949206274171768817706170637507269107834392461136168079467265016959235540872224306703561637949869223746083816113397307259217282631742042311296404165270695737027820762680388550130622708546264172277443853077335312602801014691791671049126149776911173955039619256622717847824359349952136939374287710818121636009949612010746239304034442602094768042631657101086046689052393916720302281489119846224770875279067431996371962875480973136071082124807651110157063675666414131852689153279654086201309329891265795186071373789323530458291771378075337268000862833344357789730447823243590894377275407125751468932287709610685976105129686799348461982584939321321847992190000108573678746882958640020385955978676918841644510827353019325498598609088689477210315253077210192188892784485244001037720102043221119959882168683816344980276531790663024121025765623976169501010237283732562980509854026170239536540883212061490977444470625350347351009874538263161228610905486196513394876376466271357644294725079666426828679039749740635805837945421346695356159834151527828598980233657707288965728832372381980722001522111200171940713754471087187644683812098488811729208381132483297568124568599358205994716472628001048915427932726542086094318753758601053352091390465588774265527416574082147156969304214167764880573677541340419289752706586747073978277433704081536695582209789139800479447721004719591445906092899210162361584235003638830332153357112752786072892501683488466959964190889780801942668521440026457014038195316054861249372964218353959405733240764476566718541133330765827945324216447884719503651813212097483094830078426193372786772458645686265718157346702424710822427152911037839780242848305064542366889933801667172750809932372683984093291456172577138620159187652186735231276992556408158534962323932379233410147660834552215221008163093462920453430536100626613445849484079782330002389893552566985646776606152547706115931756622621014262109076152349259983482873226359198057886634908756615172924666990075835981096481287498051439679384007282754876646881094591859462134870790765464820643003471261034792582968330965621368251131667563235764309753395844785587999404447561558345168772019092274483313478276149887619786642713046384795969430362320496954485078149979885937448395306770174313958786627322531217953523485380646438737422036041133180709426880406677609088975952379198800791362812046426531237609752778391761169284858965044661663396674740191058174947257973818854767013385037649604245700022902591223994214039369285814367615197428390261468158209006201340194511698865735130526859926691842687975423524153662280928297454873654550199601477504766962204699115466515566147913702825007183788225882386771749493243036267438398014307230389371154546709266039437494426318306523416357401618326838143140702506301385808415458255302114998400767443029360377082820178528386619951336134592731669481364432736517271032913520857761460663795450130253983518452760973501591499907389061449991550491785057606799755966629559192945896018494124047144090773130690778546045386623330329769661865608269975413207951101854365669482267529421309612079691041402659999036134119907306528191550185606808421481082741319564500906794725172334563362269717902496639842900099720946551450705744384902725874088098037278245707604872856780699443734749069173115196357877358176930732701131308611433966400779614795531144498377297905066588036470869958481553028650771346033816153813430422108315223348302878628908173769887631662367848517477287782657640970749580267986689434262288552777978760963835195918943064074312799204687221726803373665785720146485912792033568989107278340761458798026298507410661290306463612680374899210002066216777710326159357750555845755781792981992803634275287650251762978447297569787357173728226888347735112308344533752283692212919732158516065229865909716122636292469026277092666213677142812473711319886305917790540595290683407108628997497680879354559428928247472724161607350696631014214917701775530662016184126409404477705609953653273951132708709114247669782000081499646825799913482657656232597321655163618074882254102687564864018766742719912659546417562685603633340851777890605977915281029578663183102269715965913632846590551103823719003135182785435938582173295587762893151966016231423711371240962341455699672518351944364728854551340228599475038927430964861440932163226304900111039552878194332329125887051456837261751898187951835214030114125424841840232288053388103022655914990139684186755261883894623870639031358897162281678617417579632821755668796173081320837734960254678124810535704765534418153903445268791548725240546458943592950778843841926878435392577503398804583793504931665455480701659234078790756850930540605799406531613442410352114712366728015259426234803983190536431202426582318574246352967253419372465696220274551911129205924337271725655176234122470896684588689589131881292010746116173826401984784584560057467794691388357965715693722715313078857423357778206028762330243442401475861865458635115903363717756538260651101878902443942165647282841361665541036349951303114820696634282347660514361610499240664446346408735715038515108914807478550301385259000793918899331136509964750873326396986596031237337554792397963776951144239837970377186898988794642542223527982278346934443533529472982470961265522364591237963890361557681067987014657914921171809253295972016747379450720716840504440540258177048442635964284961208182368103038615861125203356016724411583395882684088107441080354802530087636273259624274269261197860954660061340438184982999751584702664805402472867794769892105669346829612969159114109619006674349531568687366162539045102395315909597381743934615367232513912137258770014325401063599097953528869336584561686778094880326294307076033060671060462024273799664176363845877815655694747530211629612334199101117564745765716109469621014094914097854175328671694333485543237827949190437766870979582596872491933713484259089049192597323287384361575787711904885170635691577014332915708451512467854159494851780338863520527564595766973197919126898144806998560790635378756791921695464982446043679206127339174717079901010719286057417847391876348682503092406749124432787856293531984472873314769328401539956885095366849684382433221327883746136166951996865256918502924391915134763989034098277435387103104619916821343042293170459249804735852027088054848160651826245674958407198436966270273023096284055050319362452138321680019472054971491044830799255505436928086477772972380487509012101455263636156304036066336356149102398410335522187086795980288735868109050643506146105062398567277051246645636638769299956925885836147063869324803154284728789852852485555756459224449348101144444160363279015240189800794564947208236568118860729301451051542644367938952408463073703277792888862406472953778591020689877300441898018599336812937771388630855883154209153495769677633268785268088002885345506081829082085295773621713623782816382064801654806850922045491086684082999702654481996292658811719670707044158587371988022616277794321183365581571397622534422909761887028016862653732538530713099626685771252379742152064757800837510648119220023222365656959371426184019585128394037932068852211289347432101248724652960440829743128084459627211445296943102316619075637164817814051181400920708834898995131614907855354786910724031135724818155904070785623836144268476798840152800207479901949625394600795376001257016030900662763422707573891281594084295418126314427208693298175433490332323848403521450237760277027508398504952501133796911606781589052377793815475389761165663291026404659339110549828409060333951571152523075931136922689326318689451678132239488029009606786767982237410729205961908258236955496632958523698907564740633762169039882111993077894948302016789272356370149548989363918704527418725678458760149165526210177444809849718475074555794395825991835318526925134154614236835802471153786720714026762472737889784688910305054388604082738170253216543572281917657522773366678114449159474551272438748303202348461302271300216626266159102988469544591982760570640336088901048935514289555881953047898021638957640469818779004194361564129359778753220927917117122191380431073191982515316717515340868560031149824925421370109470698342459858480605481492343967827150675170694343212447409841598936129610243142113960003432163088904106810581076028780353030263248096570204938737300569502848765458539254227292872627316349368799554214587883065676574227283047273376400171230482397115874691170069949114555220393340318965794233479604278594129389575384354271684274988708082160846548833900814017240530656393016995691086811873519257652067739104260775318623918019189035505265242136681405689881817797471803345533142864709981794859067538829397892405511442359814739108201566450499742770000483752277071573963375139872663813227468717572191887950603106796044793000658025101421912215539862983023814517824988996495120727950347930835630133803507374350189351974538110885851202152279947322646228325717526736419673477116864714758254012011480248680207378303704448821883968856466060760604422939381963337083229981574990007918103100144962084063570577548602921448465225763562879220860122990102272294878306406584834204875530150169168326464915205616406413342701604508556270827190521304703390299987511944525558490641199558154556680772492915801067263187501510601953564232409978117891821203994988808940774448741084117920109370514646404812262183936162379172335909397057361646238370127446572484204572530329434088735354254329655954221259673052535720771298629333916582077544596239309491301434246252288412886496094189669346712167243987383285312635614469202300776382683930267422133163719716295975559827501334995878719046618496002292619482940570413562815739660964721618794796700991754580556344458065121971455413218458597375762996831283634110699978377169381440692006517615550029971987844837436611092009329993328996947859328686134180423064940564726517326811148697255081803490391283385876965612059615266903684948206320885742513715281995736519813355492551777669803915129718896841536443436511079269523534512013495083176588450331416320301442665188294348388272992014819545380235380627140947739925564214476077614608144040917052580818926908429435929250844738737341639639000042364015276164798126139779871700435879453389443528439235752441485694887439946419314009576009253778411535671202865150556287789587769606273921912913138896954426175442221084000398647950344173690424737604436415334999677542364494091331584283411614704464211414111164840613990676227197155656272723394658709282798309456980220456151931213777408913269653588914622211376430101500214409685480340907820993723399838974217875641293130895418682198295863585000888098319489976306428574869322807977684727699212242376420862541815476896270001689155846083923905501785860090665556927936153460133544869262624814830348100301998906002838709731446732516458566759740093801258556553939234476057696865776791994379626747325559961571896904534348766593072128344311748570672518223702884645574330458366284056303961207806113229011087288922092288045628270988756929317338132739223752361305973478353145110407751483082100897930800217790597877096166783354401732236478389671825994028856324183719076915625759522072144132839038983395066667633685772393220497205859509516354151016180992086437658015501506940406124855701182094370360099128688380016680183813136908979726980052078776323318212369373210433051915277908270641115430172731285131415816375492700191626274275841073540995026192534911621945577897464109882222509896099861646221743961481057300340169631753326558308317234561998388878520470708859986179621472033199179445333983144772305652477585908648433292651532787595335870296601152960854678034566390953299507580679257090588110528973815990789250056572518744668778578085399441703056041997612445364459292892061313900954846768330307221182889253950365880505376376601220556472570572918656328857358152554577779578782445188843882586552438003203561790078299177179946071786013353994235309405343405460778598551215088620031604744774045579583180246069203672317454794505659197539637090075948392691814519801145874472182522937258007241264196606376229900544559903499417356071913406530960715557789281809555849417239233904987842533276053599479278693467930664182616290275230919415628291009691093580081787604803599492131056752095179071819982506408046462302401285734090641573186417955390991447860497250545939034841822314132462899122202676574377316120907845029749243902489191431843031173650607587044652416371817425415260324837982742767065322510466461633266701814641611993569377311752195913832175149858971819200122123797198934766104009952770663829203418563595131187157092047008628713714124325995017507123092297607052701779266625646180410846860424692866126483345886110319874742134330962813006044613232659102324803902042985349251116602570204508422531310686698702644538086217434173178399454762913816589230411798867506898308000532085265968754851148955234191421210475755208551767000596261982130901048395464010469819932598575285293771355370489775778644389406810012894591985333947160739286710629994852788643050602412956716104483387560331748453662159150840383762100800182007579591471687953909987081473035255665078453727652126069299279071309003185542175716034310576740321229367196014883326834474991906193495041948013394186002002335690178676007935562366425955249800908827699610758443986064103613497310914152886699359873241310288271165986738988563139223153088858767979739645108354280704297929953830526346764411027967595999032076936518301136863626483642802532990952516521460462815291800615542083915159627028083613102267779486508531347804230730500289976467100924268844926117355596389974721806567434711696596622491068477087308335236860942936874900268906402822818763552505884860065163892429975816063399071325285034396195377958486878157002597893576913927244882886091328676040517401184644078217047463168388889854983852919097755646304116573783933672142268652229022007764039196517663398664631848097628158453094389040432617444358892945783816976357243895884540655863308523292763683281990274204937304831253369398775144801746731953198952669032253270022755989434742461594312652085122341833717453132485335910860381757374219472423907022522400834154695989008055493208426400995282364124623406168422918459303748604573738729245624495492185671948003127860589693746108645850559884088321835558384706975319309013899312199282064792508655043462144080671539088107652605300341066939038210527659602910056554345528074878082218699709755884459444211479077532639732197604679557562531117123332330940496223828799783952537369671000445006368611401718013482544735166824505373525166170017966212672265638749973714028214064457632652339774472810448997122085260027952813235618977412123590980532482862610177086544496717118123891434514199332779828106141746289111278444420110381815995041394705265324765818200566259112308966063049763170083456378498384647352568327362517472492089146152168449156237301659090063523812700557570985193886299862259501996062807496091248158915902661541166703448241812884429076055539233736624305148207121005396143463349347760405043583583258068852968680146508298736436491053122858854462931858064539401649635542033969206953472489190912269673110987483411392778446679133715871230476518215832877210267680517843830934899274747370624660828204196556391763646913405439148751469550016017045881098729896619870636843361417917076582969079621761863463100124920421273622744076102789974218464322170939045050114459738155391534831151959519391839884843101210374466714086663307887129053436202492334817730385519532289614650967697036177085538246621998148319167913301962899317589606028104650028049734675703974596045016750737807311821343991607020240298452539094931102705002723808748399215925980375338050572427473811447875789881325959605768883742523833197968214779143285353027623768745409019489702422018372925092084625920985152507275022967314130996274803851964778913512508261326600076743273839211459379863565216842388276803269097814025442992800874643768863270603080604798298086916843746711035581731417124488699637244505993312268688003151839554745327274579482619772102843406706956112589992199165121124509669358641182846956442801386109425674344848840944005781442688164666332528879177306781913080282187058414350381744036007335226431574882529321908686530534483492372624480310172738805688133115551635848353353602243182777459698804482655310641493103417456046814909491219094496478428067989369606413394482384102517527649447545650723091422455655358563078228879141514001224468112823348969145261075767805161339562055421222702373831580167870495102058063956573229231234169255984220211733585888611113499839802736510130122533081331686413582263107821994233934569893915678534595769123938818141203367084838627871709684131685963063414921254216579267870537969976920589843338428337401302043693764611147789886760245659201392931535780440132994555183288137976530900744401184764057909812229940930767109766423668166755641159918206786213059612010988431069948197402973288096621214419038560747710644672759967297359219174052369024582708999210592440377369991374374441357874537772275488317488306940460267254282619735411839041870208875638290613235348810165584964819688468627351648863086669752930542608753713647724835973057813018636426874565276061192999066505789535825465247855692209778813983991602115737959729484401213999312867873691857912149814693637527204909485477048824531813178831019474659515452137296113759934005425185144995528925625067618619905669235474111769249281562685162096669139475662753534405404019533375426355080336064747274211316590370881901634704794004884884273390560646010570255424772796630600315239141649016966234826240444188187621128679285955406266338773129997333378595496004638073735677156264338184881070749039761063348897524075796435954135531643751457284425307309562661354842448666378785461900751218251966653168869390784075578775952613087897566401818806034328694416671089142658732944853234404302753347960410793372677447661309603667187973889506796724530416086826418077539388819407066469756551016212288944114967789315859693147595499731556107448311754675494537983216825128074072797892184651094577997807908025031524155238817429506089254838288753500244208953815074317739133974111976787939478844600311694116063743022028721955878720741114157367366694589769321797045644213362974760201726165025681474750527344982694918426499465876586259932697943240846803514044031222219057264128414041561724725511560478689775699463467416749068307218048028195531811284736285279502224220120250666558961924713376665680220715159148115438241555867402283509792071117310460108190042227377610664800778815196682617025480574457153676391962190575438335040653551932361819873681504277193091519959124350965531306498586848453793927774243732233416048742317335395511573289654057738744387417507687520819413954941160597641765641373158846572484650871824279271197417473991832170689492746557891884675182168860759777236126087587980121528050676890273278857313765092072713060276390462075283216401562149053649013990077689392761163149965810323379926233182431398037342062098942166311815597230284839823284603448959682746865668640502748074808778733371961160347888191742795788381164472032761794132637116102780290176008946062341011238649893026821059643929845738780956480056518981413101233693613720989113571443861523327455873535818595904299821820801059697950833060712378279178618069945802969608937352189487214300158355020569013346441075139087670099766804550106200349497629442153450426634782507131060676291212695555773205074062773936144579726526863172104938278678136161954604137976388536152731715746915848361420195970363233218420294518456840640537249627624545848108030610974408933688677656388268967788410807315619726961395951312945200145642116927320943336481271150708204585314201278807202471275097355087446950872162734944821997092418966476164445524472224141418991613219267889718941822620114542280593772242225190119331421491479631026252515664016497904699576229241452156743182388630583338387862397968357913012078027590631316217209425667477782180835552373923330095140447977843541818260923177932954512593317921178338916714216624774331755592561522456767738012150553864424617586844634921014432737012823808781885193981654620145484239260140685789563860378758669060160299406036083482491959260181481195450192139384486432515838700091270108316236510473022317377707445423693767202472289330787748730659281250581563282339423040572065192068860739628744160644420817056980213640184783844913053827351960053635914464737882557706361510473298843278917775478547548849885806598822952037664342306425186579341151061351158535982882639242185485393818449777044678032983909617923531849777166738224396129353247049111007446488332210061068976547479049269978706141630089036428395060512232878789747326422313792486185988810360579352513355550388670211220644250279834657201099453441880062886988801656095049197602110779386726962921994640086984714575787359520316668466979950797146113000837789634548032000220730308386618857553578684166234856551336369483500592004906195891847163048462822951860503955091926758025079266439822477044878738979857798082701099725168755760187840960259903102673209242312595599043599381408798188926011976162276584519489016181976094849959449385022123482647096606795776006014556895992507703826681483305077570216581598818865479260421851057846456272819423306344974202989980599592889007153581512500115389624356449221985701382349772073177612793989942173510527033202780151846768226408290099729025465327250108135247647511712260978654209194418261153458758113766332118513068084641538309682564058836395839200593731430985542015015759136928423632254318863523646567189503674140102345667304834301958336459025492141992503252103980757651661894715565364926482352602376755424706230779057844603474312855013931066789668500951168676233224602631424736473330291365925258001272315665427066846320587723736780918513908486576580574516939222711499854214172377369113632081027653800861326284656092911120756490221409983540690515623584103831946806866216979637716631501062899132520465071483892637601641653867056459229730533388688843584591026550998497582514273237419263244670486413482540926636325780314233039654003365499157918978133437742170133682942307115325316675687834368147163558633156068047300337191546409796892176518424856175139679716845583580840364303082742392530750848402034352765830399589827023912124665804284813467192009189018849464848622598825304637533254885935043904247905599129263718908236779859422404419997147519214508607239457706238785693810302052810438361804728988016988035780106710511623357473622282892586971711517482840125146837333533977895390259104576929816617877434631979402416110466092372290603901548530300816636695774380719485849351574453721154680532963562866004499579806020961553613391477560258126652885810475724648844836809592839641730605144571748787082721568628634677078654387583620132280299718866830807342698006622691337327438629076254820956641608663571734076729054108784592252628439896565124742044306267509172682882327489396533872392634544641059519478135876314237230905705076061370628477443061068123024701523131926005893030662505252118969266402308215647838962882277332762576023066659097671798366159807842151232472099909520763573536207328257500536263727022309612669050487990966660498564375667213501234122850911524197714545755275520652752241958916765781146171799927658747350426139004652133836085942827389573629172679802130743921562285046483886939572767130851333275979574462898951085799830200195528281019837198253665125583705180899992887280886131397977570906124522551739257656841315916634576874598331185712381711115355518568577082472272047801132698794759063743037135661633348525894526797135245325680198290771620356944452370315043770983154976699680664471909763639271815021544503275360465790896014760138641491691049662256349850366141919690884231875040606673653711971959958697344758210543220391057884770966274613001303511194866581098662773339013943644211615707642106558281628894661068944438446935360683045035184283925060322313985184745002715813765416342630633744161375064221100846373890897626677600236148152658106789785600194254723533906757944767627458568970431173993468104486340646551227351532204541062526586744453411626861728253480068705697847043120699676090549379695161812592831327436091659708825676471002750380467685475925696096164718702265642906063161940454499713629193828187809893289312694663537043925485389052972759246542750795126221843288129393629306250040951479791738236611695378672054138840595985922099876694328947798198504497761634437983739707971003384001907378974093667354686811730099109342555656239881080935550819775828670554657669813958206435486458122403196231784281714503610935533153841560145048173028917801838400883027783271627572233302447014062035665824201360806445776809297078990407361266318096050119096986070858530551638932930705416420014999471423562541544164189005162992208658498207869995328767192287596498883517414944956932065199474268027982382875554108397541639150224790553017540774672811868561915405111805602040356612578773351852800780298631104562910866350553367944567227962353514069909628769562815740816066992697748207612867057202056289225553206383173290367807196790563026374074240210468655036629899063959350921300880580003168558153267362886182241578118242773312461776204558985964032051361909609921749844631034315100838343647693661386907808918608604929897584444817876950882064682067250239850389365245673880401694561451779218090365114438223614549969936325191231105807721132759951405585937663226875688288436912895248952362738891350212903212688427222928011445686603702416629532951522558356032911623296734894207612761542511291574867474936927157954296407427657362179094445584149743772488570440740381702664854727914525343419195115634129430958571593083591932616662650212442713614310120555333219116933709412705412976884279058567133023230418616025003541711387365703081832363425072916271481383041442146313383910711866987219215293307232374129154139887006361061106808545678712095933474058651121655094931880283399688066689833233340358689345717794943964320487559945946950880770064622400336668916326970944222143593743832614191227062087667229137316154107798838269632983357652792142511104218848835980975937425327708981777179175460105963985168626859871850292628151763947368612109086596211765694603801426323153446163449480170197216706476654854998429350034302030856481288827645422557820095281404963782272639056012840781956770409624502912743190030200380795203923818464859730250285351240377142291671116112176909764122401645209904869936015682985566185819753444130487094169870063895818049694414881405732488920357839706448130910326075229136744445763865264890890226218981957309280445470052409562759809662680008571240707418663898743757037883913855567279747759972087871186544962039744062793362449105552643995154500731617291773576873540093896269553209223711825359975987005067984335071026152918742747489547822248970583644568049800278733687138894331904076897746241007569863928660084311826297730110807152030096759766283779148669420095084516287314303708847224173662470194267673382357308942955470108076490995210810422787849600567252091114494172624487847314976468365430397175442501325894312521357605055441084262602786333371380869067578530569989828779638225609295416771147032484297308172994988529345889329141842557037352195773829448513456663832903984057722570903529494968953661774681774208739983475648566448467096757979825386844161033772655960865222911469881500922152172974240469461303162062581841068525151648952515941539661241093728759685471833471029669888020972831839057288477164416174316468822703121686378733745218187696237821173487798625343701316413882251253099073830883642408467601051837695403184698590713865154539726908631131851811469032475280648180825952092715123403931666821946849324342664675602555244074465143770492276447838928150079504097876546592730778856296701220336319198548721021425410343745328712259138581110846114377666398360658823221104016278930090934036705531409123088607713177819230001062332774840822319638476289456199340451137824999729021871234553319898233969108852742292440084706979740903268533070960719357229505602620097015450535837655337087951423323006710414652210310421650814134058283516230065862600450974921654018363176668615530394258793303484748385621983451834440144979063132344317753540765775772864523821537810481101159745432031692651159607697123136488387237890551082720065895945758884931110943884650992371083919954752662475701671025913886939393922921538635430340563611903863294695656521696470362399659592428960635224029304464319396943663183137674913974544524363545489548212111480281819053667936741610788619950548477458332181090314435738125948190656459394639509473249545531847480419757209351265904820217781139178880768002829566459122618697051298389029502476515094944771978345395156124577589099757186769597989469056236378861535296068970682139221825556773079230475349679278872963616215219893760563088144924145245410729559077708427905673269688152172727731861852331306429351253573061852158583490980398356227809427088626066171778849925302023827429178774092495507891404235326094185716903784544395251103765292484882431612939576321838558694834229253205779391372095651470999674735771760045873981154294335335610795894870949903787716984553014232084874102113554854195305960523090836189587685780690269494856645446092787748831742812555254337511024484499631735815496680479526362755111638187176846444509204980757215941065125738078484974820245508596563080848675882929325376471305769689249341851969038750932686623798539491278182881132468003957429174836052388366353218000538608983508599349889519721186640126734916187079868401759947598428313655154610096804241365596046116253884035572609600071590040224848068165067282848037748291090269784002088541507101653117167217887611352810962877299440125518608224875123818267719305630707086573823949735189361115916558423896007028483674851708940727117257367873323304056898993657414175746060350958702656109386693016679909291229394142846617677494135320522358756625653864066521269400898673940921845838846059814840145200424253434713138053409250916336670728578792703634125844214671722679471690310557210469181368057626259581006440784232052589029639559459940853305722344636318897228478525688517695723850802906733039178801694548645261683091005804500626415045979821306328520690177877412119940173618339141374268607048230116397739170435174893345000666432762564671880089962833262659456248548787563441837296405604777408346951366047383281499135885823562507335099641105482129297206491755512565181467817862408268544543082467393422748303737415154773508038488060847844239531123816695875729036275809566798656502730395203235713213231122722507220508949115179976231245669323281902953279759107335019367606041886459854757238175144550621397147939670777911424838289611288556671254641114726601204784410414654237013777358911362990462686570984794902300479558800587740130369882023462069858224439206986990141090703694971849104674712893917038147348563530712669672093625767568038905292839354030192323932036953005225250936568514938193740509473100481852672268095769589252672482338549737349520880858636226685610429850764734626777852950112013913830663033513511910664628508846132014649402777157074391985112694599774986018273694038048236634108719848772219648207397372749887786013817584390642859884134399114515754226919729862174164253784027596483558231023114226663084581516596025120118800027322215564567449774217265918398907610142071112762613006311105256668895702559179876425032547496172079274897922325374666518557711561344596046560036416280163733277109319272080491798721192175733984511092804593536243296153665981819537475579315817011983662666325029744554522739867592524899981600723993872305062051821395265464767257845336752170064842252708500443196567458777723380311488637610373161807487164550862798422998695520099432342728630221528339959146532014513110269161684893421596602409231548744355849254657383557536003278034064492816227541021171706537308858349297961147835522459992035280096725140831513331997767590882317743281670628808665776548523383961136807849664219352958776884282776564691997786018687984453253041600528954681175989061389487419756499066897988752778028143634454631094060365393736261120736110521699826507311081225873971082406578916345780324818699799889691853293523201529936610643041790849621755091818798668682429338174974415715752242436489722908012304571666388377701699590899343313286388181349752083494323564136442802425358762729204821063937083551462864013260851402641455837158978141999514381420142107434220279136159158579666920323331422389453691979644823662391718434263895360715536226115776442314838601323646402205125390058209980045390442696647149503367349527646955593551479828248126547553873936590403930394526804125111364439272543173048913795311175808474184971611230959881077503953903647199734931155415745492414854808253992262034277041581947916583887100983179608148492784465050320328128815283030067217297725688009732734676200433911457512959306416233695798836487194467328646659698830758407111666547097356199864189015841324359693257058427487025285007137894886858114857601838631601452579598450185818851502849123689657303981119643789776358329050855521804444846012524016123977863406692053309478509969417327305035741685330491100544535397321017685212325439584967601139571731021697545446262632435964911689066916256849734876646677526449784038619039985070289008511063919459666842525993763149980586285544852302215400280792561135931548833084786833654558144038606615554188306109036346282171896045377013424519187137437555487259031679018595139010562238091144611705435885123348143007075921095195922095397214136324858476151409921828965552662307195335512918756097842164349766844517174780599570467214947006313688798390773732871391345786647850124013439798234076728608875789127734083197200664645480293805228669360630366847662805392723409406222419366911198961092356035952756173742795015823306209769190749384870260135191038428100572405480918561923660162021541686696038435183921661899357356504866852081118646144246874128713599013219010684015562854734124030080346863100039032212154625118820533642431293943189212763073061169924842997811173447918732528976125049838458058037211942540409123098837723398936388002100222343808825085136925673024733749126516074653855603829434941163066880737186445068825357195404905215481999362480057035153544429796706578331706939180349287543619296377844178076642665635034347046644481393779290064142763459015493137181963463524877699212546875625541957750709630010336191548389463738807972442918047496666000043385449552877949071358443577457178535012395923415610452713575560086060027433051625549819823437832517588909234885365988841002062544032003708012811787941809919688384115448619030219073859104042568702020481203632686846867263817483426627030659790561895842959091528582406362132801199107009794777974345277699501939834752686030888339079403002817697595120060157606578658596478620722351471507937899660153723203239050540928056425056362290151999826778772977487648937883189872143330941345065108927615797115781644875769686875689779073363630785219284474505403213496796365942590065712683193167869036714785014333492512037849219035045780556651004306390949648163371976223329721741832817646073449390185698269713830043003017942833531434368214058554595642294468876339084158988122487866566976159841488374498984594574509146867063407756454873690303628624994844139383449669095787602059809069267896005095320064409903046655572261908563302719621781460637158353831956113529133591086865989382586260245072387419274237632039765308311489586437166482351179194312357166068694138328711093338235948955145861102682616796712431135656699111523518490588120163243511965347743601151661256742900154969046099601648257053396461107957515167001798290231095885746940917438283715335563680627028676171243534461983981870795208431617806977729329658256260526909444960949099045387013771344715890977650262657483403189986309028360025112105561348423919108952495655095262143811672397267213156390959315864253023326838885923806767720078833224256005182839779143737267136304989801735786830921043506041845215445218082049531619337448269205188973108912458444754907523765931911456773328017326036778288619277231241990057374008662362040539535139685725223924668265799184634923847367489110649139020813218401577728343806457833987874906799430641855942399044685488239373764050465957972636025016618850778095259243442926372386535053736971511671471015292600724537215565298399153874612297860094889442952129633835464339400063753953369035889774505978511575374684490064104128568841805213477141976774866337682590051315157957756380070578055884086396379823288844627007505331250367168335322102859249971127787481103011187727428646231803836791767259873391381747193551412680109213255523690442914009073490724644857965781362490334285764595674826343573883516104567181109250236927111525030363601215508851600273501888126520047858912709164917639264236624594144793654888013188282592346532269823361809593996664927703745635288599527935266845536114951253056084454640721001686341053855302849549412111028728276918588504742408208823923542822932280932141444247689063985237686745970673978918592121734131286474106528805909815923067451917903950964282464840269686773982896973045091307389414614923111362841818649397559464699033821517840790554487642909709024723372733514288645232900619854553036811653683456983225551227179469460893312318690442245113029960454256028875196557302241396345889807403673656537162011173701363326604210057464608095497082533671546999320096196831096216957749286609899610646002781893348188045285272208528966439999057412401459056193883644291300175033826934015335531738369721681882787368730116742411955135972446758913268908355768335132460263851245204539609130465307871723349864511648515512400864242990656469518651600493997043308468796120296460880990137830051098527853158950311255369108557790785729684681819724818926866310048954316976811442445264423700397796656097808333958195148019037566727251395455008892611351386245107704664177633883939376565828991097763261466770160217079218491883871671846925347128154731199207467647475237892765011733887308410113953687280219539953222636891106257229467436013237939561661663430835275285714562656610687830141179653480279720854952194676832164168876591439064579051346862456338693791675333450937577600727158622689843986951087657890646924133205891952794773427160882241698352055946768928445878760321099886869668027580551170488792552209493711342957523823327207384771470654597862973634938791985745298208235923883817313193264163224711906313297764874217308596838257042940487868776456027169606185042959924441483386657545265616401566530172311042382117588165112651643161112571536556899177929754529495869058204924520474372498657110094476728805008061223372835002631225579087822040356680385401085844288895399935133520653975194532400992497355645180320652507345350228185588330844626435263941704049928364546354127663164899370496718536366023468194456709285635987388620133815640548985599068522942414195670988807433579796737029139360386869932631410485850696430465151073502328639584405532328011575955905689417673992018079518116449452670177163600607796304869417528153109737568339577263269424438823680273886269683794674311123133343134594843331416424704142464191493435230411600179839781156091590552944987293769237358193797217243578244738434499469954281779778866409461652018013876995828623007123086946831155165319336344815276271229048499481145477062733662964968634026453588863150691279021885168346142026325760099210419774095696556415210942719985987954300590112968296506097733276827680918785496415936369104397492693192066300017435117202168959690953105154426506438061802452428306997601393141247944383840502968063661348746792067504040368482961159332823464820565485821190242065572604311074967748821727548797143616241758672250741253231083863549157211816906851909214063069113080593689339364493684132576896335622779690733241282366618650664449342355354275823030848768832699817349320002000855877167987248732727098842597582081965472347641692737182561238676756890529472560122751532466355823498322509316100565093089184340776469747623651947434532596211229970245571527873145103319472774006886638760464203556912967961207573392432055671720291986551412266592918788397552875442081447113892560122476181210843780881659314165333972776400081133256320666431278415903920234039692639313749572650661363351538850657190479773692414886246530050375038286817358705000701358560958271824953669679326576880590234874886967277443760667365149515115030559323732972140709068962299079450478924283252372004109178326416738734005785968566568562562905406642536413334526943519883699054861943081448439209819421120904610044657178493430164398964377374444444199342850521582676854686190163917672602299055947612435226893949667102139517245983587422720948089914802969880348013714235586980676001616748964597515077744245986401527403417220588490081717431542215551343141398884740866538709962173883886630782510375321829611827308064180915785557947923942948526551652874647879764403160757851546576346911370395170910185257685847796296300386511043976591063331327141276476071962257840752238205105058085674921707738873623296938784749056251286135146303901218322284384133575032697863057717972790631087448055640554346339433750251135003241808080171006561561694086199570582557530012595344330373877392256857283942729972199711455413615858608702179431409812409358304732630672917697844817494991416633259426745089113429248907355880452784792727201717081020757221658387644843195936019054382783643955625911323674031081313675490165727845620137587336302675002435501241255418993469764398209700085407660901964451239219560816573955220049728334781624542625335438524621605154187557106515563666980139372910302093753774226580746184563052857830345043077800303345361466802054215616700203126486897055601092340300631900514191227066232408785061867651307250379396491363718717567854378988374787680949280840473047240854369567302406306012459784521385856077325332076760741490654157978238998218791645450265695944896105393654827968064319694187944226676598488220532059204483661924331708115217200900976695599179987332448321250493406338381886686573496147880255005364858591763216982654021117353529491490230432136009164712151901295211426637837543789796561834218517850944865681180842834061616185259431582040083670589264865722181184073282605864677937193183846240918840288011903904836474258278186787364291523665354381427777496956033915397757714070535091439987917547049902997331004468886806622829635195597968709713814697119534435107167523773509364600696372359044620854365231061701066464579935553988046363444246869855468625252084802508817171506416827625973439584665042539130927736257240227010498809262737950335852911333731140661581576006593492043041867371406766813768246409646514054738928744859917376641338508044373993916842457182624332991951026736089636346660537576084588993070784978949560593563059049686451527052660434418497606455412930964937588580065353384145804565652590621357596867775571576578045644724883568774115298771607190536654343422171186146149059935835433995431506206384646644603250497128011990541436535913950524223325704069304113735697519100736282775684643177809355928876625550663208397393870782974353706710385856438562939565856766060947445754319256748048361630111598864496479485373365062996735759877100800624301476571161382141382790530731219690678200208721637087542224714178641827738648113163558194631350869386130067362208894853017683228139069162814616970305723628340113601913753607067116122013898083755221296566582698397055412548905702001567096725395002163741942064891846544362215626839472962951937842903204141242244618623692005439725886965279562399940424516552940441528863570239113628410861175693615651323157280391401275067987931334679550838059017652196541292636341567844958672213520280366590439705011450639463310129198762771637986695859700658759413819987575910857845785433627600217220698334281000858645960906968270779387633187217886043809428133626437793837561168289226160577775381502525305927023865204383484365194246838834447534088902464541228898984234296374880988903800420530332394629434656322160658101465860855715570621863231819139152645280617215863251379331937694082746944771045382548260680845737620154537353643985278637509554339467275904005818855431003504764864896420990230197057657050577059335835117504386588877311421066700150396504712256736235445331281350436143735960294653564066853174290964660209049506583415695016424719991990782555273923701176187366957796066824063917766627479694165459746212835830126276810963481237264013318896693889476524486635219690066248771126965790107977565511856860831546863756890118263051984241390477327817770133595510811494609331462396912138025635612164854294028892456585642238459410606685775531211317790633721865808895463267427501772846988798993299449018439471219883876749065511041411339176749617892352616838337024208414561265085138276805225882915935636566499425904811044794479270659575949847116799863448908518291524649182807685241444548700626387546606549049850045330637653967151474110123431514542751126215803697544238626280890316647395386296268069071767583480111116624459372850455071404927029944861199693291395428153792855382007070288505920041642903446613565183034121024504239414060109447539554149886578682944426713053353809762689558960540344451380990558951359011118919588305930776266479559949816142348098949015007434225861256785113803054587550721290047820335582237616467557486141592750527922286266964384850866743156010898096323899793251666441535964720868649479543735834090001477127851391382349033233442226421964682361728300823192505654565682728209880953069084226066960134149770704366567742567874127346111527222574583431840353541600285874480372854033777059256326374706156723245209150509979300878244067830185254975620627141284675469061030887049220465675999487152550984183134436054924744809163588162937623103448016036841936892205798965720358336713501739546052307897173148508657675602236860964046194043183279669248081693022650608811379052834959383038910936035466236407857874668420663931966715055706861020561461174917530271982279169654691446148518811037364848197977339178378090487892666008962280688883208201596918675406467267748151432669239277664909508305183314974704338401224688559409331380592071271374606560067664709217649521978149612230144931189175360469055680305626420375538206178672381411385210408685922477670418600651238767606941948284845613381405211001866319874387895077159217826647888480390003547708322202263610866003283723445486402220485654420392958701651239258926007016343513792744957385632517745639247312220605432788464311817766861057638626560279764874827475753901076512962762856794282802983028406151146609782467647634316927657696482744900982930710510026246608552241477683081404431317695791237665192491070644323054419751119613722877905309177593927942357258966614064321185199654344427150588928174128608374989917576833430454948447025973362722410462013714372091628705346543564997413224164224628806525297112988551990441345715454995435978509264297530692018973304208358991710445955038628476074434006158960769712305837706388056818942115640740913080022538732564706140960868114822226137446377000604650347370242276497704111513313561581072316489706688101442010621424895802998960360351347651729071637458868876853847278627290600268199460788819177455416570241844257835547858404863395939818630757994703858914493967022957535555414233904722335268500727153163423957873136560535419374005718062597252996737545174363065364896009453523145137759658761345490958879597978947354200970807002863768708303762166286936968156260894085845744561967001865768302513159361601913364597935271811401292324075377359286501292582585882078202001284934835009908823044997493469389199007048906586837752876586484460268116589607951605897126099387480206165175735138650658509692862438456488480105184781955039561518146925432956003001844943931862518130590722384549799102389175078214567565345356026943697914013678073160761105499037692787654921520992021775148996229901160709139553333668916903813354953599612831057031217313819197842971998029268311190790557015083234881983066872268924788190608762932763864691056910433393304114017613485360134606658455133354998744892391970445551452481197482835234008676508836851321424033005376507394642563489164302110399125280141245255439645840690838515986208124874907386124390942735251471536709937719594304962389381466705631612972547243442111449082507555005080167303008049194490407153891310413033828267015671398170434178285051961770579903011895487505135498238884225677123088857164923437628276149271860470169127144378901890508053070494100757542753554035634266052919640573435387851105313321450834788666171622126721693689670287931425367136994216432521045021867424457861918785616494164567830938165370781701602952227930470940758258560780405233525722732595087113559137682951218280374918352068763993040870692562001168976781824239860059705526752238644454302240023327266454583718269469237624591974682658781956822023575317629568672897874988160417666839530016510375562269032679056795662874084723228986203585733273704461537655518955128953320244623142778597083606433567363219815593775256732441290992083860803284384931829022730759858228413087409957035273578576069901162820613133817720106447825837188549672783964211522169017446536435129085703170280160310791715103328074739975049721305908626672318917263563850165670195044405209128270555892223288885255770906347213669827929826043695164624566734458930098133706075396057589287717534365762823247992796173722026575620044482435750498716853899346673577143655085045562460430710764300513667622390494497570505690001028666422979885147621790496085453512193994853005092219677915166175872550433475831686208377265419067057242995566840580983581993540762570149233341920696906874212663931593291083879973052451249996059295396609919255708556882366894105725171508248101937113886994603575265713697327950910149687733138204958135785302510989384211532800507462847406697318497076931200922012418455276489888091188401112460900744542631045244898350539780865920191558056435500541668218121981791359918825288556555657894750175877608387713901423923025689603094574158279292132012426148995441536884675827032661091078210335724585320650743017077571385315717155053243495330254629003842401401250738104000709809954290031505772864909543866420698483150293634373815337569207307285643982762513296073949974141540967886684565431410817361933286011850775522301796054365175432482321475458176697364117038603091513628746656910280091648064392519572302520883086664239431370004710561314389094251035439937473080008314377275833874606529590905528279258158665193650570839937640705285806979529030814813270430695652852580297044482554780520766911986536683260455906862691530468096174174477555296124161512191125945489709600377726203745131364361770594121904004042233240517371621134986204495263000454030431003560066632861595237044629831062124388787870098031208720267546893164790976681560483615324191951672479450472344534845435190061728474086077464477395125683841206852509679527407212051206281616132862070693633144945675756075379064137601591166851577619476509061566149017966842006481579208418003347663741451484987653260995809079173023598783090774476260666281488658859666353718365649862850607358796663117446827600862914855481888007464952341890140814139973341782149526398652759706508977553386379038257159896458189932934566066511558643247857791327340625767289866181094741867436812574840662242251686640196236512236178913051342671001279458140710439177731795367194074509892302135748848704817706129798314409990393516540086155256006330396995701221033692190718702458757646103897138304331681396764508501361705916322956537210959603715710564127105784812209998636356641172412916982581342358091102618689252963473292834049989666410225666475073311785450080193312644742619895107781884301594432960966839561591822608390369166275691688083143137562907059544631279421795029788745106890758756620372399870491134851561657965161586452964569932389432514367580441846204638760693179760761295070080964128605489761556359781235580165541326657754033836109671717434764799482667499547195158303892367176186912270364493128260610968142921089952671400253059181229591782707937868458282540735170581224000144042360159678763729918347405351941382406345743512312273340534139693837361558663574930543845582214876811047045366035917773236030645273293797035741478882501599597872628222024545114717388705700753597828547703002812884749665246316996207828020121479422159811314652843880322251916234001750891998726755576475606679079745852593497590707296674348611050660928463446529276320568467510483353237389963572876387772961989339341862726227364102271371761693181674971270396669105319462787568302862913250521994791872868618605244457988557226058148953431671613950850722848324359739066881184894477929069713737089072817470629253613318206416200400289096518559395782185483589526087683604065554331064546676289738864265228327330106909270892696884635175403110161162267663765234555203546597865520080106807518813147457936267172667949705326789897808024867854163431631290444750153788740672370450537131302115940618320935108448992549047883882339296144598410619266648632809910993971527129363214369989479162012729976809254386205067900961556843117244703613653865493431428952283450965727905331869763270004989254517061724949224263236940129550225570887904329087884708138116994831379226696254874898037495005894392948737091360667929966209859689681603844758284337830719967548429664861461918803926748970715078686920884933266235406123553148674041642527616351773915992238901225349495710151218775568314939216253698044345354040700555352443965595964376614621266688405491296686312564778044333231794655099659325646540478180242502991218398757882665034094045485222343512741303121566613289944563292623765407380367603811669777394769870600060382674593353289726142200342089987321303044028849503939625133507015233717031649280472247238966267332911293062366466598838030020875229428462830642953853996319147846023082564671492622680514498289046823249870179738405094032365806586933073607949369376979363941558255572034796708407840282772717790092398994384076429963419369480458481736681035855853591020350707473748779363007040387140721061788077634788939664665534553674385735040425535946522211934602313894521543460839648091387116281816434873278207645248358357052456121748201202673748398635788059851962706428884190056260528217234745259073460521066541408982851059327257145729273399408366989842272847372087144189511452602099341180541137808495356592932493180155263355509324408729873212649867004346189207807587123153367415707134356923973623309174475369540735374434164131212307868796980750941812968199126482988070972195865280039360807584919318377227364998698142076750202673812184495363300784899296653718567291808173724986651019801835721963036641955331514059361978228602194710778801274787775772083608954848706746349076679469893524568699067314350752629645608771579324890235045756851344446823186449919155867902859140580416350062079448479473005930864466790420874077124499774991700870236477776785969191141355399129838334801313867098192414158532448681221004303210302889689652186422592791506868281669557599699599535539535593531583949013420124337372960248694942035445519294135570209222685678974212378262050723928277329721911536892962136678529240656049408053813854162615271753518166227965564572743408602688939630184905422513617049439628615007083652495049040828011186116236631342775768145659146780935683294095963733796650355822825153611214912871125161103665907897261211640026723321487607038013509771268345361046720295730092518034646891306017075029156555526543634535168059785843014735692636492908474244806775977721291145550492364243092545268972286185571836331405393977049554598037356700307286429041707910438746686736944136920208573100192499024570640340428235398346208655200442434454519374600663908287899608019237770114060233977379769482059483884209474073241568986819973271763010344295016858451777021335959239455088939542201133218268597820100587936488286952587052628837101554717839543360316826056191963268503087045475281005006888738496509452817654280304636350246094610437771142358203846178002094026057865831571864539479793967034751771710508892599600324412704269270102280694690730485369689956844566189303698158650605259114790124458487035640676593925048462903479065907870379745234305300893793288447647270164173718998412353081914128603321864805485329693856614276841903052428842929178518938394726756741116811157944131285261844206700850371568314779408174744305152636697140399087214828758296228585358165513804737610707030279805252460889013023346712792917983324405488607462253150512713114860354292201382476406269555509179873030833071744155183046644142791717807204536424193003700469288454600705619308654682401978165474034440475367627342677522455141707191221049162883800918733631495809555426669653348471582987349232818354642492096919827967253917326148879113813072503764122773605449535102737621463440071520664279993084105769991090708586744352306672652055018523269752721843349151475313048660501202628244942054057509260324321565430492879755087139810509686028511934449533882206437969322962996134389095942699144330151508919818168614127618842837289605615754154802590646885719501124958494403363727579785142497923601844055120138641304168979114939663715915744755819712623448293264424803735622564920139523320592468192643363946215739012553710854037110474163320379122344830638723551167663292189447685151677515223729906700460722310835347095921033364615512410252781880369010851933749752546053728697781568070189351552550725538882084784420036177554933125779177321965775990619371672004787331086471489781678416484551956329905917829634954435735716899052566520668676926855757796219853336789523033105393009818928378645678901626403537989499675353714998884436466833305356712434988800847652735751214889530097422481169854252357667696262053062382917175921110858586941094347418921420089642754635240053646975845511369163183775068903623177567828855076436783675780748022597708777127704506908198548928168364153367114862894325532179386945256289824276281766543929022324654269403656618348392769950893424178307522787568527692666092520817994852575616855133887759483204468088801168165337887115739110075547159212976129128928910328536974178805441247445257383612252516870695603837382510738418944794645653588360547295534643143666900038381849330812449891864396275743404076866817166440583474599146892065647121914848191061502984832826962356392353542079646288787807605724212962089710362832402488663514172020174043296065064451144027945528162734536696498551260991524753254752373129603851998664486828907584799061860282468544058036786231460007322683370126521871918010592047244712250050900147748379222319405524680316548446433240975641130435710991500838223251904437351682942162906212356462404704141696268434224275693465944635268668412228020367274582151490539411535833840892018037641847429341204813066044974349394198347384875676933390003124477961024378634445043773515140415378537643156465726928631390844405643885856728535357918082676848993328829831019758305769683211524805201262563219999362075439045555126482916619003578038113080932414086321834129406014714541859121876740804217527152892743676948573486765133598412800053984371298801772551779132166211187575867441008329824288480707454933013310029618670980713052877135616874841465429944835798536758876790709993268560550848015905633657925917167866714172963741295215161724592174736518496224477931763518643188773681907200471422995052385243497493441850852824252160487107885182845419823615827015309263462292658454210595907828036957855732249245794583520469602227343038920857900534970266576547931327944719922624075187379950274737182626716575941170566305317891582066558491466695969940509908312735192354913473037744306704598716576459699928207621389428039490058926085179760748466123702048714401718827101181371842993878801864412684839015752559937535505029818549460265897943791340109613161945445363405019090140370304472873930454071458584712941517718565444391121769025428968859959337034752797200360706659185496286235204301749109138823678425935212174818488579936076220140449476206603150589979526493175537894062215222790980373199724059754302748405815877495639838379019016974577429107369414543939675885038748920155076959276106099434177185437285107655712034499755054122559305350774039488108632548568994242047821411948332290606455527329713752574716430930414452442009873738831122863330636419690439163565700090601041683063308405567041077052542035556549854916242636340861862796659027047924001800074971707186604228722426838484640196223213100829587884067999781818160088480913003078942288719358153256577984768239105394045274475906078118392234515260897977685995007342025601995386288820343843524077097221762825925320065458509788552426859960038105464841035402005572891724146834960195727633096108914819829413944885732981792327347815670855684473947272908736367391497567566196135080391228619639985538022387002820051836387461948444471584228140973741022975749938182959382620461039390091360311155548374124316580167723282933946828441000127791208500652859849710718782786726350778395268987180609024636063792873475156798318788118427468980206577173537935410458288282154399205920109977926351842650314042492382463354038558491399899943073675816958431973983505604096284322396880432465306855469641353631976455789397680276051438231548937455925882832492286610766321156811529768558694112684203452575095251106541615765604018949100146333393540654658826795019895064985616307567857670127010743502315277098671697020631992673748071111903156911360718959270225497408808218357122303237886697992350140902608308202005055217809294697820241668635103231685351950227113625468441344797699205017252370046186361298997491897375722364886542479763808423878024821898922527918340002167132159859938364110626597812183522592934748769570573670148934720194998592056671961191100896461191060015133688629853301787884223650440184856349755942768701551434217789900146313012490149190089104027232898660243667401930866054106981574556567555166329197354405591926200478442371316449334378385763847044387752902674408082954704178834848283500052629240273210531256648370050521811146387012070984808413620686385898508815647946576433446342768442099396582163232618950662741047899904476912995516993093101537229508102097848891130649738871088395225384551495367150130823797287439485535137664748260205071083732454232471655831030491018967559171034052047589507160781595447361224077749156271702410492126269337968489387788371007570447666410322962087412177244885154484888202738570423086362102070620872816566298648668005216613231438562555953568902915731263274113620758713202033818928137587257830720739856897227670283530199882443576651846888444206683222105189976234874359088028800376334389358740309165028954912559800423626015476262520682083372983625518974463962954728173980904458727587547748418768568731791317567260067505915002855520894844098430962733716126415557916532328584783252731339816069681765419473812897137853846960636555808549232606258380622491012094602617453551843159820962225627485684465748042571138465590077734960063505880418142668858490016660191371117932524310449322991851080242652829894197741017640249577413434629315844999619024671613331584366669706824278511098537887821154921183591933698415363421039667800700194567154362576665819440548165405053586173914771829761765474613435299003382498366208570775994583145546852326804428252976617121209402432938757025344608402206785263553715060396224883055508917069878983727120019676823786108679273178989232411433753970481685134121959636460548708446229821597233443430887886728795177006245459925652044863137574432919722976656219506424104408815880600708716835139633148156812186094774973127654046404538090026090145171126014084256129602918138648996510486705563939111856841440832956255252079189296461961394452353205553169626100287362286353847802854064924916185023075331445411816614691748352215517750146014780208674725834155819608480275650119114615502950571251027613344926081749300510934661295825580470387789944231274678642203992355429515529490505935373466807709348894420030093012978901516014206273351258393458746189470567203184943454050220454473312530985054014168531941924003385215020384107483721092844759017387465160098108005090086175000986133739616469449651125112979226472043495183982000772993916788054280916838200128027932157674578253284976425108266393096020966958155339383443002285629408779803995377076360965739519271787791026324433747627311433978458751704140956930747692862662032714494359680077447219301232962516187135683190364949815160107070950088169366916438327611360817764045308252831955072633460910767731231765532944535693072186475741555542673389240270960858953457412557318445443832534854335740973304946791848249749617614487628240881179095344644717124469533828672631233468799733286056845774255369180059874898119945210158417034843240813022809074726866554648400426431218703252232081588051265903518704075705506598923434067319661464777078931864861182243499011458665268841097348527580574761978049424462797815801986825605163752329927640864119504518435428079129481209404131330993786066665606348601805248522320461564625678429976254333183843109485293034056105226203062523715980894364058972906547272613577093270603923788551931730259970987390406930258098622362735693703655265782497870044544694669709614023393497599758841841375292692549128501783594699408322714082176113915229387785232641468659916307499857396708171832681505808764449825336222165538888609788063186725956285461005374118561607709098018732604743620406837731462762497599804661713180990590226233472021851810253447723668487148636313153361662476817772207894839728204622214121927788233463059333737690283560098339043503292755085334057792153876522736819818318205217947943706727565370788467848480452456377717312555646412423174694994893512213202075721568462397082018687036290503171247203623219903397527744078636922961535618379286502879320543151790369675587263713576392040173104993214282694718077797712951671979903018297877841994663866226952631760370500631659186314027435854833664314626021227313815635462818561362556876771861279372092357110428736386946196751341536679604316679150250540601007552286326521606710476006191717955094786774619142783874603621654149326344311439233690775550388071140331885821370113239898224381609344079090983782420740486630547137680043007479290119972318024109455197742334654148178771595327541695869634770604359618719344686716867517373495335742098806519138024379969685151630898290650140638547729915607684630254740306264670652593527215548323290465317197113035632338453429017786948058081950977076611402163242430562707309732221074859654684168580555528193579203914743001682290987905198742081107139277988533809242462732199264009264808990132010634029285836738941097357270740599238203250648581523585209510594720633548313515012176379469107897434724587402480600500624241248601156368425756624705899077301558971639106554851609715928373895974287757704680211519989653324779231018685297116810056348706610550840500193563418186511621964335526133443748920136077349439338631526612870384367440594497695774604838105327972661757023362092028700347883511212554632297875364013484570524973460853598393556592730008458439271677730722174508188544622468375710408816958333731816988821804524154454105103397080096525832270517501708201678903850263868289583191360938444273971017457440619545667525437070955980134830099776901360245368096097757046436910340455014857392025105193023708200359886431505438854343734715609315958559125033221015250770296705579534287781856713189445021465304602283802735524893657046123406436105308389337730035250292050508853812113009226568507556397124458846468950088818641165209852968940097508898903847262321701742731356025403830864382346002078676953905825057216566188467556878035580859797935900503381528354561334343723386848341840001839640728769615939728402680828403723628683953665573249208864659439690091108298389193769156154062091531575498922738748119565539043691434152072596973165158958419500624763005365897627010746643925607006817041405301971901683117929198271642036244686731253744208208018734994284926692563196758865487585389040941037872518969349943321088900595760105355318644659398506396277924439897800678688557209548596919832024570743948048131325865569653318953275584451114295317112783117707027703813191624718187151527043467208152692288055353150196843740329112988100940816941289285711130562666684731973556373174448223804656941111011738127707381205826469264983503177475099000551869778776537945591801500271705400135091134451787221366931440737749169545486840256360547125466665837236165679102702771719657752012529765912539545446249670782999066804141592466765032324277646086725569478596599580779882067127611389065586125753127613105991915054483936475446888347659336643284703381047074695327595536811628669065383377836980234930423238553072947571685822829543146236893225593789575789803035435403334911698005435423202296428007491319973864898883875036019044428657075393968402001930872117060880825864241598217782203960054229836828916133251525527463759065960384345829760142833223801411115169828621572965204801099705263133909945890591792025573194972411810628025512367135350137369496662203222199922122304365345017881547394269541401669556156369017944185180619252274176238552524337388194852963696367598783805248867879678046814084498137406181418588563274071175628090269831663189777200571888465469987234670093785818998920885382380675387568880616192500968369154683179191145548282862022094349057227681045749490983662323175037824037971674439146624187557499512327451637214078526886982831182666179745925242894649543225600084683627212429202854592676398199501602369568497879339455741926935281639507639642250266317696942556878690434030629407751235545496381261165879573247168213278881267615093786975978884250979988953802331163894383902967259404137263526840804968766274456197712964180328695908640441172680829588650962935984585729800630495041989261232494986445940376314497479557310396173658387083214879047042501390727635572962436762100368805621970830598608374699454883958384332139374421785065075316086607577842515353710693741600516187411552831560780713239176972752706651733485798112425329884863396763865691725085137698480921906076989294848895749579473557859671592003146148015773376532350011821980793912033228530559447947185280249487132753557896779864515202376133196775679271856182192740211878943625322817276069548095748249245752266290955440496555149197218749269627119104783240976147343168662211599197314498172290911866535405807207251602668746952905604206461624772695761973804161374135449019024776636448793532396131385079716959154639061328536521899410254090026181376838356347039487634516733176974656864317291165930010624141154900201904924335099411782903858839194495836787810135354129017380957179490333026978029645581996175122335017673918527596478773421014094433851618893192534711679389205019968214284249366808234825524319378755438508254521139586415437957522145519295395939558936630052651068916387939443672599021265828226354832612473414020952978748310861341127260652580940155711518302785164579078726393558021861501919998554160583269388827094143935204694052682567179383187917444655634644067267483632436855531712234776334375243793343262472353126213556287884509319146802031307451579107273566218179865655737294967829012679870990880653321655992056173103589130565940393641253997055294256874566846598261572773808095706040421805570035889909326663474334291331389067280374957451497370714186539275243394825046878126582768115237661668226215021960337761040259798403754526276737498967825396475344945461407188504750399459735122457385571350973218145244836086688104977961514257893589769448536977561981263001094589380905674454572111239711816112991939925765850495687845063389139809162965410762686915110964292151714795413823632979391173683021452501181687092977054919572241112078057406956301054363948173683601211711730995911286860598998199557586105288824364717052705399186887726358469251423358242681759814908783321652696315957929302242543809312761432341984820691391284924180848195044060147440939215606413797378261395774392022042527188021290945382498553502365086416081184691824865264393007508263523671635436000128422764504076450361459339811718767774987068486985212607108728230089711562894139431542068355546935826498346555065714103513421536373057235713943065413970955246236356304318680055101377028647137239211073635471673226003002921549890401295665803705256847913519531121958202118495145056848593612518162204489993199656063436135954999685381356479940865500890377739298690048806016030118839205121835678214729270621758373690702897848597379851025526221905163489057909710301353183886967876208448482645135119361048935923476807295519974427768402993994816728442072945911584582555895118545574684894602141194545868019794121490620479401332429287801905124507933586450767060554168249723828867319870735094512609002267413309584481183261941339650394300548898324168595161918326257054005285965406980291606929259445601045390379654983177549979763230101181696281774155125030236113954256411732222849565029465173384464920882775139766869781776734019399225434102856956108061564506240824677072888952169718485163538083939750444340341468940040949016844234402635455728154628850615322857828774166184185106457818536377152132477708010525914762698036875738961085340980493785894582953706730245556683079920263339463421450748023789648756212806579063222147289050260434580929333216015311110758532589278061673600859977629158488268615676885663088638273646989225264760677879710175319301792338946172655558518623675087410914958737462109516106600680490279028581960794874565766667609714768095080483463485587569349047858881391950464746345764701217457819072657594367240584215731070027208307985024558920671382915996134138055227147888977223854714778395919214994758176723961083406996468446404328988400217415043934939865989195045925008522985865311021394616997421498329300972608176686034811286434586881679235076400876467279073401209948116116737116415482110230450044378289553787223519832185669795706654884407013204188535430993102733721566382595194083828737293396198975442874674834459271379574943494438340543685028153761385750866738545470319231472083987106577391897293315576241858680825572138882354910501299937624586911518283483383151844713031740987698438794153637918471541891613731461074364371772729525327796042753465819502933698926507014067778463681878330419537204118229326990006080934072740282675225183215629243725307849028701657399875682251046376345995382586845766471228168732276649531182289840165962944655298983108857710101576999637472742645265379673965477509589009270217358754639885560379509515666166270984455623555172138938549282469250539891951281786732136404319411493535292291967143587521067077369988960101838960882364683011702202831960973052777241875502416860050771037485414962689049397422487394687304857481264213065087530458903709474256845423847484933467316490540032141496295559369644051190641652574819709440437152837228724484650683974544131459532033195959220041756924554448699185888904821743317154185987334772979845220680801578825127607533014330802908589895352645239543902397674274463903787198063950689321194944270016343242288220727829263735510489360766875254443406697527027574863289504087196442114596462606552732024290685587608120282721843756945890957117883281771803493330821643788854400866585174449962710775174337127750225017383240003453383032434591493922627520652092332003518502466560573955815978625187298879357400135247498247317597855543979979311759971114849297585559382614219594980314936145584779467229283585454405442773902367879398291336641762340726451672295100692281656100311258623197136522861171459210509396040773239508354947517086542396640576055747287392502259895558673579899124176346508600547377968948350005788109769528226887988362572730033617426016768653456127767870331996798552390093171602647454820629818118067794374922271150212254606932431392355154288859309784196643836661890128178051855639282325735424835813301390330042342452200610744031438338845973191015064617693175403603135343961974845851655695135078414985999790805758610467577375216601903391868480199043960727939018390921767562992310933777926382223461657964157572798126692414973155721562682418566531537498404697807750485319055656594032955772914807381762292000220897588322308114615467725671631607131832271397903653652547294938225628880455045778623478013601813132060085524866548698979674849081747980017101600364960509358964111588028903657749722834456491380378379776003177481390377572447066468359455340658864908046318663140504755324037664881302185524813538329901521496205831980192988246386624169421601399760738979282969565314708301893284212158604519600176495497593648525854710595534659074083506087352921135932665964761383862597994478448120931863564062015336272092252386021182096432447755245333602865777438730858000988861941228793723476521387189318256119661605458556780471489256087268401511202791377532310642834794321715065482469876548031696921167466473416390417735537935273903584998706792804799431413338255653017333660298717977412469444454735949583039235555466401437666876227940673837267322020924805129206401487051597049310944558969118954926477104412877610190736055179814793657759500004293801647270492189821008580164332141249742774797395928643765805108800428456608132384423287181415252370907608500931868870638488415028215271068012966860044359306785175172399121399598858458168498318446530402813405136826043734132437183285628456650478724473302635641537495058048004238396847764362538662736200875423333619877201972191349293946972550944316245058836810517183095852614217424935208934170010744801613088548671504820384821361045997456641768108817442989050814216878781500289291090313122453483697015849057347567629684125241669593387170214166464815495651710820558858200378464578904279081880631437338012237751864784569438355692415476959020586679310396201779727768018077724067592127808431209507653708775112325774754760483077853470397154413633929960405160133206762509113908395080289843610695234488357999154244193946960195919329587541440220257446250918462179551025062709942556430487019057745695418393772885527756124144348072977755833014243700736496334866658671538186345497395978288070524268794184531233434039087283480259758471066452417241640015996294100825747208921169102233494561645434240222246364680720130589580586362230825111110637737641373246283028532763518127498381431539777524243974750101237052395637765853653297293698622958547233493735143662014933095940409913052711920464839780355100545997908155604592647480143835085638693494617727821104203634436412205236430869464220274821627633441022429960049722127677111813090467718715766137244511846165271165599586873988890394063446055043935038261122293014727309886247255390959467273766338607911528978357457365425982186866248409597179709674330751191734239807358964811796473429674568019006812653672463910905119281206942828778607259287685884913980007018140875012399212085114282024012443966447100490160278522338286175660147111642876957314692545326848074732503843080236046996392775803042915276456473036620308975776692002488443309012151917264544608617053392225989493176480641824792387202518321137132211592648080642754353302410306612404388278753159785698173092947624168320294381383342562867849855336250568322777107168341943360724480623701975803058770136823491096847069689360385898330698742806418691059572560776980665759931077881891965803834602761222825981038382162264673759511845982545612297520817220590513343991807159158635218372528949681288267513157065806610819321058074548079307913229407592259497079628078347041258189073474024472971939358727994881593214170995730050700832014749369289509260499917633805700042123001978398298761671071319720695404733393516690319025029564824765205663783838058829295709919587449410286814392634918615695505735139234339041069387546581529797512528970568270913247768885224208110413299129760383446954170264317243528843140537859339331093127953744534777118262149724778957167691094699618477618149436798276350412523917830065541271998003038582522290949622866741778998445722927081356394876787800119830303047436389653654809201737155286825571596694947668890582316886112722309781122895335920496011049470014441256081620217658942858584888159916754502593647081879547155566098584340921261419849202097469742750499613503510096566516938539802464594051330590992660188618794987650739653514936365880274301011916180873379097379057359477711177326873281063226190765607580770533356640412110537281115677870240481870940006382603810353312624337250646231558184579894457166565216398465459730247224043197426739821655677188371596614820795259197788509587547334481051639148518985803367900756854870996023639275989409552213365250156876699487218772870631371644186422463406144127434813885599022991706179195118232055741453530125284925490596652556902844212469285911776547938001075556429241713097626226827040285270489067014475761815277306996708321723494416774756575110261524762761370671365504436643421271607814911074465652456330256016788723570427380155778652291047262283653389862365376506909315212987077514715461372555493342572802298898255633063622220263399355243883300526745119505297952024529025921700447573049369025011505992115476237583656781092728289207632588820018500503965926036107751605392556066450628564688936465980325094611488054790816752525039745051063593523556516234197464481318262577308805100919857129182803359688953548823102135741187435627251933430745449659545711302574631849988155579804950351134980741208603097389504712544042515497715961641228088565374989764293432189867104811154708417268777413555914313006305277443474316522965619009700972531809032006548203107692601705954187500150347090913666072629288037451394994695881418512093735824442757554109715241310367582062786303004938003871283438413445285540287809800228427336377433200799154685723605851858455950253379650117584457652904696403316408155204623901889066944367178327250377213173815547248132423958947160666259358592038553353410384025359645463939187338533314258870451911279689077759305502859403386839818814014577547241165176821591248200060917165984352326549743028122501842279237973597362177748650806055825377591349916020010815825680608751288088874421923862362829032976113010188347891191704034337704387168635639872008309070215787316870439550968074131820623035905698409475220439206278813375848538532639462042500516668246839601140950415944701979030233680609171474141990826923633972395307286798985529406679190624572061968708713383724285406907751929158940669043355486170702557647139127021304208949063631885312917358292041056803740115221587751075993951661635228525669415263013625087228102530971960189322967369938232288437673701787232315443908822622529654181710397481575697958001424286399297437369669101860955025477202390761909086301898633975091586833579593252403875300593319631674213236238602641123490499111450959461972910744562000870741308677175796361469494491699641607159190217104213240434677920434030015768141848709313932202197446786027244408010232751869021434778797974194892558849879932764709616425980617010499474508815475159636449596000985121992829537704517122877598748383923457959341544690214739663103690107093927389431398416774047678795675180551976505400955477339618763998738719920898204003993214953016083317297365743473486368933746866473113552641447513697245071636042679022677919238267200481769298142248026754579643507575200839594495121446232513553167002291005075975797637738019472888257566904667486289901668372537839788731570031147717312959817234728215320225327736638936704156882224917383793644887733697294780996396168204302179655732198871287143122911504984312089039254535309929793607949632415696880763604307180814275997079779404310983603473155675435496742964895228488781640292640108087555567695991132938445613578355492675593982927581482750227388904655612682026700776022330448586607827328533956352276993650011326901888493565312994203527830977617728745133691950039099076808885505576221816994837629769523044913886349224637518975111342913678317336383468717355921484268112860165379801953654910871216172925592630903587980447140280634166709716895241911920106667302947278734785478702902267854990458857275774537190270123018101533623157611891388471843004652098991710045986370442731884287674714126401156981228342510059013276629014189549847735571888471326447135407893713123002247319906329268738973168693531166826376970078741717777817187393071909147468965609528523157008729964547471008037676063338382944032441149481872602700396559586497863484565477038088745048514734331785205007064237912904581476177056426892500598882882630225215325296071226056346274391107783209751008200921693973042509689405308363836853474184606272324744649325339501776547821294177579055652801290095458312816563496606695402141415294301211804468365649369073595864869987367520943300182088091840339186281758456367885998973876275969156855113921828377064142108067302684663812779855302445918504784141170470619615205641389713951760065231011287871236592845101598792404411405706560364684353390272166940170463561923751734754618953865901767301074010751355687782186142337880156560830582758731129287531261520891877074034372669277444125123307930270798299073594329272875720701810156745691841396025102009301867205226145403092499895163840749869016282397160532367625711808987298497146530574168320764132958948868816666210416475794671217978470488234105351135389903906075246189251865638011159878116987973645575544406265387613085566388903464976071855936492138688991421101077386365081219194917883312188325173959308079583418929932735625510601135647559247337683720511349737926608536761248237921410816591834374983440777948654489448588081465202895243900777787531656616192183503961364872121530164176546525894579606456037399781381229133332243297705291213226533692673326169254846992898709870168276607017349145442515869103976894609027291139187835642162826446240992010252875485979936296099816574378154149610076424414311247205675764479699443262833088345721276462363929395173808393685257573128635280958610996737941083930589996072305234165079779401656732614792372686698010216421356803455575002972230733464074122932168017581940618522668748773671937826601834241259495830537091589849464471701894978591530925985446986625358344685876687706184074493639694133898684690313096666247777797976394010588556995306426539389461390539818558943607086642355764706868202530401251943187281130520199496689149242180058588161398494923289977971450986523071625266582841074189690010545182077007012612601781325668102434926673842578445831047507981593401070869708103387352812364380060859025134442315169267689339307130695543018915984575898605455713639184538187772848227734696738440819064196748483565925289051437402617018946922069669950791981250680100082398806851158493637983761757174549879476699440886419552838895290103936749173748506807277909840639704231230729168488361966251111765988571809967262519332546295955997884951109141899239295472385976861664075820543547784364984854264981296058180163777159700088921527745786377764418553899499633500241120181294645317304433362943710971178262720060037957030003815819952466675624297007951477022605766652777788678675521399280384812959269145496478591426267545977801706244282982995637291999856262545261669592341081454240128994527501035441032486594101148212204400464791060324368964752250054629717592872144442741024516355385223469594177264450539207450876573951969008602449844001843328961816519857154482029930834327208377197740633188207258404244851961374398402310915447470137601113203621050344371879506993494512745765912448357881318242654059746632852253335539094084185046047424341618172369580084844623390317983658126781341038355739890551952533190642528598654247418264996392705468704513573842183781993639785782108693578561995166738246100674423592612265359723412625322280163576212565883718413040815158756939984818693071856951516099783751909196018554596499486504867230492947794519064022025354169451219383135347360524573549266359023979246414120109957451640876409757113150432987217723099368024990850593507972004537326998141011477394885727570006248067269106259945375548615203618796159187137915115415060042524950219736704065139024288181486902801038993226155488377024248532597928923967161115914685564050008858519812257990687249627525075062477572459403629077219539699326504887633033276010948231322551598530329588598980432296392438319979309822292504437650896309236000984191523931997739112318011270002474923777220767290840773572916263637980749761621091285076187970756185030108990035194888092346005857653542664012452394703497269119909380626597690218792722375486101370252192576753616843323821493599765154972673234701230276785765039927744322266204233715351630953699658951809574838873921366036370697734017675594485094820932351601909187549257825738838356519489283856615601223334736232165519904446638526629639219276800978186913375928246628549057045554490743436627739825298322119900144973724994453343343858257824581138678408756031150674761958246066121669959312167849385081476060342526731989318255342924505641440266902281645774066115078946980349254005218103918330724278541966059513874680400907400933367003273528576659052907589218994528861672825592032016215122267657172629317086767725191109513376285811979736672159613779332105925649556165797948984821429664011927886431862024259128904989947930501146742896496809602066960790906317774892521992154492937630447974644239901997853829084576079992487839641686590823449662206436461549962764982000842518792235204101249523869697199535667862641903357148267086343540445233071739128143366706329112082441941406400226967980611778309967405730228330482382697785250617824999802256247431941557881289842722657538626704196128632515532116960417055318305862284063216128152298814069702408304043873365590521525112742641732509899503597296517941998456011026446495748704261238529533973713724672666385299724177592826743499109396922182096802815581207270696079409958201709195289207952359370312938757417561843045910841820478457871096733225010056161760665231551287064717659980689919163330077369956542173578522975588280236394660100674128139175369882217770417183553052503425855204245746345859287060919559518616433616925745209968104662687012975762731476416022820308435452268575810417059232090286205610038598077820231332431399212622944729770655883080633966857422312810885010788076174594998618654571234739066588464613330035700527798775441055534260387771827527571357819793498247727882287079559531171819616456900631643427027816491435506264330441709406702911252613715140807691887263900405404713108116205735056045744820529152134044715776673799347359698116203478180912436508103335493195182042284933507431731915102045484635310720792883529283763432835671280244950789695328213619711720155584378608081266973361922840864799368027006675906638402702021020000039913109307439187128493371461264284813374174071302229330699366013605305380686723467883801355621714151835270001397001126859277016035819012762974559728443242673995592037871611852856812536086761083226837064583268458197410023642294985985109438369806784617106743586335378872503774308357863615055375760531518763731326959537198659950797837309863343330312680617818920586023530495719825395706131583288571581628779306428326104312012781659905105906363486363419723955936399680335842572791412998101098868129237566189714959849620617303877254170937812048979363520948809308682878974416126597896735951183854569804970308106862936496816067637318661458870776277018256588290939815407090405327763843582636964756230890131739592421605709638829707954389348159624077793869568652704218897474738154210148162973072255617840990258170218295541031387337587430239344260308295343077244655477298740272326278235456122504520854096097031688594186881518696052605426610828877015804314197366719086079140016484654102214276541022172916618793204046845311846739055135708683206730152071058377703484888097058937000560588250974866399225141923691584837645322218470482818166118785401216875631970369103079676774102175381289812782163855262122977376607686857844482107751958948817544455334676658159758734415257641951899090733134659177458769148870407319698187249259972891047427745140383401787806062949096518916405328150279065113685427820383546279256216103913825116120160118574189228942390688166609904139927839757411565142528821774354005775076847032515029234280476325988402896773286660855099189013261849846015085865288101957968084611085377909853324957490744548366683033660546923501319261803160345832183590386282819103592385742056034230115651112505514345636734475851364456362624074082053539541196483026989619399839315597057512835946562462707665824829818118632351087743729756445857205685286150033704693517157068042188875804019892269034183092675931084766398101667934784757967385507734058463689858603628400521732877658434921649588054576096115458978252717180070156852902178764498028387298759273146468631531119194539743364164262170935779491947225825644282149693107165384085740562254658632518815509455868940877757048674629488315083491202733394194801338965326236522482691321550855570666515514758561035272107645946499729497228051915789521963116820567677837311698572721039662034882776848945497712409337588596214774148270832403174748039184342182628788658627602858986677530460371726854540541037624154794278620773094040414195768421565863163546701548126424298345957064805445496204986692255162658214768210339496145621637948374654365379574599684851375104661329872038551432904642651180795035172135400563746462849099473848762431462651574450673837614000909748662423558610921998471311438754643110818475689578125285994355058652618409779840361660323545411865433153660219403387055849647863858610654663791451110279303678027828854922046060117977518465303197244209728515496151854051239083626391714531507628495075004323245992499050968712638954567142703390679512109055134553376513378673680880721663197900653676052141504002790681854949146162250700866964866122202661689256199709071849992068468796730073568243414374208302977146577033533584527259417555342356858348429929398090745184531560596010994174537079175585769238949122944615965419991009116862665416895515419475256752270260046840291145435051425515076332551189848194156610258440934131392236220381573863860031550751710296599796259972266511334275226447519949616347396644850862397438469333541112455173577624191429617232080483727267148303696580051010363744454981213041660473397674263700471546918592486028131474357084444409347791477920237758044992787967069888461665882501380699851174193939381341310514119863703407283005955736835461813252575401285172508994207846854541010470745996469956509875800385128460834752029542923526667497077271856317399232474480837200033961116780409880341688043795319565386996878703729471157900610943510456247276560074636873284178181234982459755415682355185890713817074837709597906266477464000324836328520558217046949646081170425038253734976877449061530064167461284743380090312981192538132365840293458777591880440186648701462996452297751097334747948339559797957514244517285044736180906664760076403907236856156478460613423511723643931060799911859336534223741263399827447390238520409406881630360035624742649908461632016348144646183159310313672315158517836780801388818684486457188029471238782088305158827614924986457201818235579237914603499941924491993278803223244038909785332491951857176564180410662721402538963165413250575692664023311274431881400208112333502458172623158695992387920571498393931170090892134770196718573139227236265545661464577187954583634565167734306303756860916725481710445425750652954045299524019965880934923290033563677508084806443028668442236589829189191794989631592088460420406870847471755728817768891310330130332697286753027109605218466533417036329821148666676253490371017349591870520983391706051342115364439287572777743527181996129403012390001997083328937421824591020943547185245752248952219888925271772218798782209623523656462434676203737747685558308769674329896513845890843585904454400810241004910481317829250061574576568847487720014857743731801525878112545325367681929075524778365595469649295223718985220279121552748004862682384233454386733140757863617812939094417807629577946154882036139991150073334750044620198962409862201557724462309672691847378508509775633192035739021278713786264865738580258734556969182754623142967195667938572992474715871175991403896151433781260887572421421184954423615069649859295219931398660597717192881223191181367427932543637761143409108180732133396964976152348610287537522477122584608082128584963091310721291107899437580744212769492598347063898708882354938975858828018519018581643206077992005001084689056459620491604641005923593308289071911535759603920065602709052595858223437856120495585394328177485957709928240408098778814057421510860047974186698914268851531595357419331762626223202784695966343102829305576614890591134687018818780015075462682705746398411865671981725609904552847449207500178036704617391825237168566677427401360009183841843486164695457854650457141131391697986743423555981197809184908340879116000023860020965943150669669401822039397593496994950517554359378856818357269827434695134306127294574834948791440204859124326890561978415783196866056668839562380651449176826492427362405677570678923650648031887383266509486287051070254379174950472207436994816752589595943586550662198417158396020223462658566578621182092367965568413010077252225938499792385265954888334725384339471153114980812276297122555903511268631945937795812214476314224284744808047529358932668802582859014361329445779096007687526266957076015677883936063618154392432211277004302224881261699575118386599815209787723041468912689914202070729204425080887461096252193079975624074892315988344796915430674377237969521118969258173440102096897882937011173417403747095561281617325366849569200974933333702786634955891379377761347262256524836508949082788371814260529171251059144516519969566424952524510975141630346873109752775145672996714506266186318133884316503311629445761726596676149268254358802847713691527854989847219346153956363529927367974452337378660804580398392305305363989732511458440685855029211363918067562057787326210099542474807788939296187491066936707372899189533275055101766374489908391738720925217070323652031352525574500217454105863953115376635657708488760482724873766825142475770861723835630060403866514232493716249181347658949688643836587996258177588741261472353252997423559066100230619200247243631345448625296519171314212190522953673171083249911353828300291195891612367195073975714533726092248668594010250584991235639759433120103341563702417942687081768049797471845873546682935540815771620283761373556969744954992211469212432191783805399814631447247420293072116237913431821054923812165481812078580278630063142931667035664546865618077430019977999232125076374374852366763881203291721141247071564244291292985898431005490015582056262647429018802123161646702660923250165898689032388102768947249533828090078060080372229787549389546002473468179126153726171944025305621667316090009249503670771112880017098606305237780855647948155203128177888897767291561078696639764852645736203423759299630973197769006538941384506679778306455257847942456540121422817080446091659096450107744405886178426329289899304523799324446714319104254341852786819394539508441342634083541576031582083103938349669139626751239411673843127634577839370673333299636863002020418732258001057087490041402012932691224490966941796385491287844702065226062946176218546164185997676911182358298524758418566002111420952007085710364242022004966543741435075764200351153871535607581167670569013502690517651872013673811219483286256125509416167546440437682144513802670118984072094132520031077868218767255331362840201629048414126190580483332945610473341875272576347528531868971673037255615242519642999120056617416534577006975372471580977198391567078205358705421804119660288110627800948187486305710228636391705393111926518169160276085478663767546272544002875850821330306176144169125657941226987842373020466483930888923043718500086139830354849310410697907044379513370574518289309659636874885455075450550372077221559475144361606290682529293423669287285738806915053746842752542734634176471834472959799460880784614843665926027796816624032788396691600789860258197393697748921373343035146137465234649178997992605670856644593116506814062089198735552941593525397243448999408816396528507600849044905114877482377239095257512751700113831976162750443269929882711762025296339302934290206837760509085495211761896797874458539555160609563420491136701395445683405819043339978352863049873628820607420865817057479715988576580929085566035824253604944899979822495094532809966761336712777489431857536808677517121215371563832931673627940359242010375674211381500426790255450029629775906387048648782424682678096527422281278953282876193381052277140117515962899967349672366199650934956967043328404703543373495474470533800565503856052700877288793798126104438185069919429845817664255011195939728905740648679817757067966575705127266470507841640436935677188951452517734811071541187806613595882308300743141125301976636888166535797688924524847927170950860743371066709035649546469235813914180299926764510535498602462852122139853033964644961473047175897196408315102798508242025212174823061318553272987843776356223665000017136796478286085082367603648818001852189066648659480506037144065845682905292839080509408481940493851742774842130806735295780176304255234203342891790979264883150483269191588962330710092606652341980216091204340207623039312448133884693721648731716251040482347406048291589842883484316723282025841552162914044248107564379416944507943732196399954095831768726899146711913060525582178072398328290006914155570964778750294823956525073608550788747084164196248111035951678385761654845174698170515539763155379365658806247538164582127464914702270051631405368010892630406624329268799100526348718917397725470454850652812935767113898315874973906398343530600450012709827861662509345176107371592800513539897891250889957575846300238378040613655787115514139877611534056606486602685801159887452006586805155983562985853971907187273073436513149566003326635613993505746937451372461737003771618086323531044475508254213063638564368294858483734326734884818265660326806406601770868450809128231310057624046334937162579713218593867092683870393087012303269678865207951435876788425846178131615054728687089314300861519327841116362925347694155883796325634271571959290615782071235055753197737003399893083880655353246285304267985422766086381906270403910258893008668347145993084259428050311872006983732434383478164568469457281800462421593418865752884692564138631105958629401648725871127764597507414515991099723610601936135098151395949760890321887889587638338274151625514760478086768724989518031254418166564080154507250672027558747644631056430417039992924325377690016464801944259652144585835468580801266008835741354595199832130482799614318074016276117790026038337316655461068416238450439778307532712729294128221344174440111353551661212858365396926940932253293476548676598685828910560572333115607918053495750935075293409746132507279556306852962527012751254291358679300349005391819274832888306058663713243073149021521701031263190528924488291364537577315393899115550907634955976005396613335628397250961694010482508248480580842596965901181073321915763585566869540154919226238423745425627387269950167134925307623942544293244407199241718885410864375057927393483007550982360405767291400790284986548574913729520793312078715441591207049230071281472228145915159540329167075037037527399625799484948331297696226821707561224531288895018894399762467584216447125795309367407820991816795752282892533175237318520435216533585165914574435356551804282257982342416840416714855789542305355331531054601921930491310608570740787633601356966423807573156063392765770999664144954826660748552726082232910200776271699439469059785659560648314931444059695509717510740169583834495932061108176196176351380733120101978833288719111403502983206514713292397349749710351118770749846750884611266791827980901195531994493096241045396528583641967333498368585595194111381671134828084086801906688659067179586447653427500209889595735036530325102862165272923227621533633056152797869573811996972952389434221116007339320336707856225602307902694975270256691379066067526258406569944162862959947879783469787024718967070689108563437173784158362516137181112720529004354772895496899033218337295222993147984771981070144436515000422455459464989139717436480737078150632843747742726343100182930913537402904477433633952096776433019527572246643773214193965930334968861934010751196867963767743248478040820346342383833615184934012290977268714897563290429955639947747049091290594412730211078194551659897351857884968102609097003707228455273486426200597961513018391799969664616585225258169100570993455385744911374661864752125216594723454662341125710217383376458047125138548943789992891965007068684176342425000017431153364223575293353156499230688005996061024630499222631289809839430902714674900094708887420199090616897248154489039188029304820405108279240142372717095391471854847219560610174716457621271938030810552526365796307262003752160344273106550431191439027981426656173688173416103838707085485278981726578979077808851985409836563276888090604987101229549776521572939330652156484230837811242924522707197918160449137830714671967388683704741557906501870675154620359444313868758194935077786784135332456063513449060287055838348743632199650750843258233547771690965521479695413087030113300298444072114319366656964597904012360279610123439373281278927062470599899562607848705574071152012495079564739952613446735465003506040091131036755361672265918008028379957820395958090371449197902256918827701203002319172899161797197335297751141207434304827349759576591515897302954068656081654200429658378552205409912971038369863829512991902260211544918339864929551289393834014618984831302022492330875058304311067267629174963819842282172327966748674835846274396632890599219794901793772453441064868191243024897975499090180256121122412494182563449216181707585986044477318470963000129984473976108566203088256891401046803298175664921166216299874890789962697636305293891328805734825091388520595131097567537302065948250700597931447952413518286502895294947638321060728863444806873593539860748995910319189281976244968338229995308355418819047669447188896901236779827419096677273484384000797054156475199855417258023222480194388015785368251829418027062889644945543787931386768241302660454135120568212596941623694518800493898799172570574705585657994459958086623759300474910886746343407606945324829434700025078714305345752651230049102363932310734864532796262169155320481378479262749228661965434474046144589492236203497152018998221133657046715508009197853337185928393611897273319827089104611174282334419644355952669642010046729668380110482867388747793565460226874524700665362709383411892485326618955600821847493312704749219638980079420334652434642671876380654849803278684965033911305627733458636120888224570113636206505126835909719107188004796941123555326700528358875609509268175350775158821406421668114826940377298247852067081129534039015631220475758542399248724621009043160506950232880455425008075967948239560854288486821643208472674033337276069135813559312670484535138049408604805188217949383001912054151431751398234218156327744869479659236578777387851976425840563238933558698269616399921383768538721477963150805506481811028325819902166756528931072084024982137078958194376176716523866875317976368006121162162020708246740094166136288701876406344212622906654565081408051888736658365616706913389672626496103896310197330450078935562319562436841904359965344246178932829878417361187924082124414016941805520251558431985061624053588324060020914619215524788552540907094045512173931273380289339641674255636794355063361890952773715730641073369940397355939993275307278143375374933661708795316897801478794536121825878284516497610366779971641545151993246650804328039398942934205396967734676576853127752029174158259518826470122905575165605183712852247624535255571658303289691308242810164609639890136155957248396021523403415147335840142900817578227852527888112938220525829150924544697150026163051809702932641295363670152204861614228272478271496419218464595827999327139214838638087108857894772650501088551072212810284019637840884418179508802877378650150646237218804196669586512313763857252996071724597859318489941061531471530224022204600974743877700192505760104155139489672486985381547686332637567703344033182874841349350948175776049110384809817981899702838753562293687709208085811662210360793330426436235967238283638065994508867532806351040668700571878916624835009895321381501705273393291957775499391733609394191156853017661976049006725603368753519347688093080345703795000023523302139404852279331300464960338520924962636638288176824620370559145480329135557284976699007730590773707287327894696605425788835928690082047513036660049902991959268499625966220992374756124774257498809698668880776452516357111300028703155002959856073817684335318733141665610696467702482016595332850702481904338837670723072651535235009262952345186143211650075636107454247921915497388989289145153365423737343838979740619325719402259653624671923977866706774326899814939255670016950443106496499558696182596532456337122300287922573546221090695113600410397545152726489419836404187371415677833515047403084154489787966486546558059740095051858673620973928122882968987098899789292039544059355162118588574332303795666711638435257394378162260217186706187934046679995511959118748024252257326215755209412501408634602526097702298581653987512379945701464097713615866175332726513963349004586323110561261408939758063773123809758779024932354302727216162775750650174277730406959073444835271232831783228353744342539408791107202087975985518529783074393580652106084313926056671200058323164437734636522287899513114207392197474548626610130097306098949493664444808674424122840076698026661378265090851705923549733008257691334465589497086080556683483589607463944339462458137955953954852364482845883523112721591088923430559924604752994626452555839990605074460050177352749430126482679316530318249124314268496901777952519764507926537062722016143361580163590573680971484840940588110728822087346463090207162029665927813114157273015490169813050325608648319533314125901849366912620129896167510372348177822029505570860634492495678440665591652187639631833478461475387166418842940137400154392974527642930337097813162676034008756678264863596549107101932792218713790731847478189659977436961728783859612787648448749755796428629034599976669300981150093716004445372405904998829464536096860694436604355412413660019946229393041192630682289211165266351680113255032149361738504586498430609943888457448330440529032704161781284310907235304365548007287712845064206579173236190018943508983830485975824002552576912909449866638928380075742146371239470412979855861542101238353412248520820914745468815355805033254980869778522411501336177182787652977909816956570308792556089076723042235735532440432400108250648594704617180058588695209228582923748688629754302078640112777842138407665899366225074564045765116458514354628164983442866430712137061175881370318099474052326435009193694055468879626048964287947823091078366269504632502436793487724667859396176115269942919868255831182368381670586089366159742603344575753258879403234579675720928450606388602712356799376440459491248424276376531908242033852389625784819890970908687227679685036099782179720479798560265320263918613944264872679709436946048623964923718600331643053321325940705116334409648009320932145201133786816965143039951050856713164173224312590179486676498056297704764760218123238153093612877151226345731974403275899788938156804700998275252626336389539413084205323555965554707739563474838152739684251130502816374820107091001805149485340993923931207211647232951034888530673628066493470213745252443598289221776148196812955187823371610394730050067522653028924831068679073172574764194604740556416343823921950285713917673001424319642709781562363224515035786860224291726887091061522264138245957801502936646345389849902807282207207696776126718545643346967926349705998156307348558338221653956512584015800302606211467865965460129335818869832015447432355742528731815086084868246205386831641216356368899330573021820270104448268148997503562881030666875224607013479174256488726816933225616639231051928888566539673157592714107187396819930181599049067905936693202266828966173010508747174177906520018989350346593918584401996257184598765729853626817710928308012980902348969189329227045842513944701904378782971130372876815279294601155897034315809285307555995873126849324099301834306061972422152051824718764517549334969725982050672093783851787145674617854662982802620127774374495340149211895048789985426851203193602534355294700779045919555774788768138661869601875152742232637450853818802056866042066890910270019314550942994392311517329872110563747879801526114099948193584901936616208767652387036626092793570010210538173583555983472293258439613903685583569045760197106794819499876852678130513635156021276196741569620520403852931717877574926227289578770742106550991618528810635967877217046157578587515181917593853857489272109919089715863531966595892996704422208600134945699429991208918194670545631048556501378110918465953827672197753871353387984044641182843666807091926445037006992378060973004886286454374677720083096221631879926783316847021520087484243053086406240751802542844598208630624170516058135358787178669690714132388997716536064223203129162810224825391941225537437457099079200514787553179993440238121941086480676982377057444654793728458006443771803234519161775874472463897154229522681137105635440392259987114831261105816074212132612073062515969668881271239786825957892024113571874658552194069523332696306012995788133956292983277461519425469512310447514784647239404978138742661219414379453945566136892588681673848341914782312757842492622076945441049154354991805088425343399286901736826250617185249706263564969526826793155869611341785926473688564741795279939909689918999216218610543768377737986336653440394286967531105196250173757346761777988861491492817678854109197650145398955035261105375455079546086947890640159374338556230058038344968920871035527997665755518440920145534934789362610603063121152276862092380221281508003586567046258459800758219666304808945298632158313976211818464129857681923650493765519205864203118445357493561383604804176798635352447940442976785615933500791702395890733565057257911261526984809618302088013197503467391729692990102265294623404066368879238485838545502066777806754218017028523165354017940838189331154381719487525829681840874475190954407826331824586464107989851302410647187427798588151404231520247062264178630965523165830068781285945868932967499129852087362471586834232090846310369535589193832165948471840885479758254402284412059936258834184978196136138814834035940433355112752051142893246151799221761867838522793638676632172269462309215999894023414333177019719684128420049342422312999025349126575337604407090854572759414022292191759586926040267108875623459385069921400072166081687273858198123925430600777314917573584230215327188005550319829645843242694796267283462657649335419818608245152153396703993791585491308486405536657921581026540489877206386457392126868948650394853605328646964038237603787695333433927226071802703238291661978711011278144821241876349943148943123057885012310976621187402974496205871534651150627720882089935485718448572235544322253843686618401346957232267750648835940241198533860351306042319029016370389428502946999310887495312799137598627300028635290390146813804517825657757802426912635455650333271670807586013883975152941747126468066477207407129675779261530686370072309638516055487134809941934142250139738844647750065483605616509859935620976606765782336160463656517168454645060189783413675105733177784330111235912902401840028690445409260129936113542513587097953170010266789137273425352985935226819009754327935817436910815519074140094113416748629792972475573393014372990406230283161505244766624860741473367978141039257341363430446940472948964133077044059047484696159485575197417848189309927142949099229815959287012690231832416165882094113274755538831809450238512249035522761195155025860618340651876902077143769321702026796889814932601138367545346223833264219600852357352176370538973277104663600549995824759183042253437070470656320672484198125493078878587234303372221097834927671736271351993426961630753111339600442298218916545419900213200816207386783824104693048256583476623937396335177678415963694692769470999236128220863741335618568119371698873569707876982548049283057302105420692239684026581381942963142067878632549819489710364044311354880651170661965817390309430355340695471565211770220046468680179559503454070010646766784114805376347120118455345352199119210509257919072023449114230990982647145603014029465065354837421235890184705383052388880714311258221741833376423846988431191933460268564940709579103546484780639424471817867549033682458872599724800526276089559762697620805192271800527648862927805383748873736973974355937015029906194701051694166835222839950417296103371730773606748315030634784351385822225372816737641562426939228041675220178425578284368143731636319416773758094414436931913749930651142224518594788247405485083103650543460333258134522413550707840877034921541002622794737669044438698898943080612565170578385152168203286040868175755235165315627882481980694453128128788095007369307576521788695334852356310248295753541069404571798548752261943609589186186923940999922707636887830860983473781561878154014761618883125307069305558575708617009999144310635668568040340203256499591810472252370052223885687583960733473138964449134557032173419700784682988716308162887576635422286273024195826032412709263034455275485078350766395207073522850859693789838063226978693028540770070523431935162416333931922487341125227193311716613642707403473048303065151267997096978211293618729192593917274500147442251017685146090539001397777562927998410312102001692954009674176695984292226116693755980770265724501164276808329194258635897559415324719746764562749751730083150893786049769898066715939760634851301810302391735286851567977816901223924178010898079874183164860544274883520538750652906343853600381315513387391379072540280424477570593896758228280575473236022791185235880684195961293766017511860384901385103786794210126159884158838775392955980584801470759245593593546596943922303471636379714894712564721039136981897820306425417577777931575951199111690367151227402217062191157627504152621795624123642695461185181854428943942580497148420027130261568346925826698298947965659021075805869964767518157366712554156268130215594971739306110446176317898306410463446836391832579807466985343217038046494353317800275354676648618575415406899240959447084532887913012048513703773331476256476757751011403860316050819207625975140788976373320482274153038911441774981503033903875224555023767952649708377697573663499967171625639954377987070555170993458075178259869691029112970692852286472408090783517864575773503653665195121768246041222946302728477969239662125109141777171164943707896853000257072856510651018376990948673285490647051661993827503185801797994691409478843338245796677127710595139079667537349671321662652407801857578418666286533474888882160080973760055786094942628515047332951858423214009362628560571057358001621485553826216243121782159982726502975217606677889641476288865449783537359467019419487194577676922915545444132761127673115991080814926039590325524450698634559733394809648238693215431170680042695422432577438410795005979454638895326952921783799612388296656400576213653391356515370130373407291416892461156719525139406143233500658657523318830107493710563150581012667770518815608502403068443661180339726069526925861813716374651403295364657264910051640787304958636296526447745442831147006850810112809670562685899101941065900729172761003655513181278062152706022644478029278331628595313011098899409159773630695543810567747750332445823094248811439000926036062986366326145806374961636158541224923848045869308137468669789075379590879996597306946630958763266681532913283507404663264588555558617114968098425174862794259584133355689262192541957546804079762842699229329875590053552789007611758293444210395993811786319421389559929525642181705778285148519162626066694503027282866802070558619419936681053942863340621386379530513118447593614222713904477888676713666463690559994375325408403311124241000296768311068287094312557530119400891534505879745972255318187875842205203340221625338433340680114581356127167993467404237670835123583586516908224328842629300431440272021811966119058657917466799662492881026152966754841390050388560741169596333085985433602221696350214752937882157393305540373011559273804790567080839269366110505533598615955464689769798403865746200164702168119560137933464905504163157606753092447733917374821689360681132900306430190092997221966518746354502581146425858817504604448401281959860774551351462557129876039380344934686652211820797984163096760372928381962309374504274909430946780022538466949437636823891110961852017488188535850745130493471922933823605713158240077991058163396805584285809863571166299898027292414636827395574354827192651657856365044402470495892173741585031289798548562363862098792942724797466885027720892989916279768953066502862601051086943723712389434892420593236714711538789108713606512793402393847607863189714663966229765757996767108803429187316812473775248156262677410985066672270242029483656256567034565528386779014915128583838359121996018922324521036111714268574493513654620475844457164500955896963823575944173941775534279905632308093931983604733594558560015522226805168119638623722779158077000108373068013687093870540846024281611657336486341363787862195438991419497845793594337197731560860580180548945488860286999644327008858949971147844558318810357373318480936137983569127860801927608339466701163444004770147432903662045935309351954748768375458392224710556781373885593746748739178476953187073195361700491583001220386231792668545766319066580010754856982807711518207792872134982828860740072133772729754865066957397896243561965412102093028757203717403988291342355084943718672555567297505712976474288260659162428827320336424314313339399742945093573811879619389147636152749243384173875791272786523280230422033395568616317600762080412700445381759253497355964992029045183811622295261702744591147427004589614074341531959025159121733123955691567766420197696545990844487596359420263370348123045300373850033242482399795399572040265370540285264915388698942593159375699555923931882323707297487051710181658113705111103682995402811966672144838568699301960221810908681454522323595223931779741739558131580045247839192159472007846257606100399165424727239907819386731268793477728760148423540725375871733543528572608871203187443832027682830726629989196446207974489114561080148076551015584055946983272274834020969982744317064015273884196220763141860817102256898716297991426605977709369938539592161690602869249768209696205713966076358742505913010146216654110352714764504629996745177877350041336888600992140203421173249584670600787583466797658398862895535462331911539299718922796225987155683088360285058422829611145187296639985956247758714723623961848704229521306218542322297825997359653121707488694219711609278294807631199912183423120052916326308055804081938200382778328000036975226525423525787894503763908375465858424515053005133448081791381029917226217138399904685290967584838891536242575679900568926142481306317084868663137757794432870373269424300643878127876873254768686301604545805250353888251359240319230326736937506297699421610057171335880456245432092350404792256956695496473695609397877722549346439411590437806676652035461637796926044506513032799914473202279692626278222764074250561449979022062960812563463490362549505128658876007776053235720074511280469952044765924546791872117215096437958778837269428916425796257633017122302071410895163651436724299709608241500187250601834235028660621966383154894462939396723274565544082492370235353087519262269488665425305857229758964576840259684146394572814088517768970510494826423507102875189016059641333417243598657327451534377230758174554575538273648420373689596732356487968839558722221141230930295112373970427750477092452792941044856340783449546624517724508588423879421398280913037808486861794564711644566608637205572774471943850476454556105787616445867797589808638964177987042141066418364431056634065533999084847375763057131147906451044229416890303967508013547776088944765392012658947536394355679467943155860943843214224956333176441546335732538333737498461925370685996423723265797090458844973348518091135236412379216665808315431971303411840611561996907320052393952160571910432698713686631531312616705559293494076907569291452460231582913484378113863701048170089173470853260643379959240438938891371137090106979290335551047819778215554852556478892063354336927801934250644450120582488945521228629517994940547459159778471323803000592422914456906434719041808210818196822230980685884663143459880319805022229001669673385437968930886201223193609494061380166712647697852150802748633226310620923034575014675973456413122376094908483119707906283306638936221169188665117295372419710212953643234720673997180340627193368581383952201618364987636942284123710326304075832250633735690263488909298085151907717051761050551011144813782431715905274409307864200905388879872433270269409446702364878300602649072635414924601342217105909880929631469725612990918672374917901882239958221838824564572791226722709430691144391605189335542338611342710030183773921052801073530290090015840611365074967962159208234962306891887740660748011076369636029437009073800945307996241412586147991766290821797209496383099026397337452272899459260599060528758023713090527975202268711468135357677021028660405956710506493801874000700413287384540837927326340915279199302187653926014931313489283573558033402538116289848413039676143077602164601460858211231707735900652577134120534558233746924051650407999542725159130367827280066965528666679302197447517558926082254820230490982860673884545947771965031903153473594877807710850047682117730209936736425485926159695295942123990605289746847753926723442798484938791574789146309619774950509291481727251569449503549771212095596867800399180948473440034192167870798246910233785823580891101106908861315506867674093548442185491889876660406756281864105474032875168408478904805968189165681284192280090853839889147762311031109276347145597798566780564098786797571823807387558686272123827180614664841030367840612425624409910124164689993432453952455600387304462460371052956225714091568818640114323406013242618322781087940699656053156871743003298815151450433094747425698006105891433477643708782204756406088858548223569628297506651833598283356661041668028774262148254799005370329692645715060257182896222977518728396420734976956463913690673574868159839350294460388975723995631174472285151842611343295664623114564796829600224809631839034843872503065923738644630780544220091694363793220050506717221131155945350558320987721025857210885552643159823905956038772040393994750167757028995353188745394225737227998771053169790608830234942553321822105130167874032390769005396947041197405776854450540339122599574446287534796648084964881144541888085507553761206411872216765239589823925272627399080539859529449196478543728430813880308563416745491289042848780660023900827194138582312428855530047084992039804349618841523136869544771093691606830682261475224863303201971305882031934025938729451404258389225295689348694261001118234422201786855530001275935248026663255250142802217968910426753606805321756707949501550735784603766848407298860714423068642187582127864555755308681966095003522187675331603277187988692380124185918335638429961119018890911129370301094996836242190595504096837788714462807508356673108252770891119795124945434122377580777901192921100620589462025370127376807096353253478557369491639244948328555091121234666410044972534249121380212172928508176507566787265475595913472931693642280470449939188047799315632483433817694822501509978128551228007098282726709562347371719528648386437413504700918962494312294202262276972335917341718226620901488319518214971840544184091184511566987200304444557098282447444453858675880480210915375703344846040161421822346339177015401857036824527340490754895399074946968110957619191380712456862689680873599446491677310328027451838955106204552955981358163401584071269744805174806917776669385437845594190134515798823206210047036121286008572754588781175231121727791615696178423880475322188620324365653377540772314066273214603897813126950912983856203150258866947392066307027156395333409478323004070927820345445328328910194017570082997430880786357876483848951409884532886779984304730590367261063823215372322547926599820896575841311515349081707357052417345167154662140619882139052612319073911002174546700099188096823369572110504337738807745326373011567130943836305823396893632659879486718082257136423332329975788648504618866239811607279579323134354170600639912506636751656428424945172489550257194688355759668180392504934060433555852415091023348375523139749885513686067581231857168590333314303226264343718933674165964382967834147892342008719445548398782004909371898689770466046079800590063898282064933913055846857065189477294903789661885431850511353676855431926097139470460616482532599194916827537432932895119525163255063528653511930029770412149352216499982793874953765079407641115489848350222175267959890390583848402375513400515358281643889967319527468401830880072374572352604211017314534311724178774078102392900711258131662216215294041412215509843362630028735891189184758623983889377652384792696669793094377234812120727522602994502870193571643131711094773177780293708630893829202659549796007202416033006942819641646415914350586996652522985310351235245811849126317282407272473299721069780679269723439806919973862909706898253369258061983283589284205713588108331154216420666214600218445539614056387541898770178469389142715941454413270243500752330931547828999287764087962056339335522025388971694716132492614609621272688391705223399186565439978501493997387575826805911220308438488380091697481066140327199254967589013831630159107300669426421987183994225763070556675445984511246630150503752062176356331299153425198678281275305922517222565547280733674765116602180928152759848833563804136643555085429803353301056092757286267214949783645397042473298870035065011795005453978991459406646825305493564757429996099687037810732513151515560034370242767670596540964492203901755409675491107936488418712197017673029563006452016052295118274320972502033249414511838308492533763238451120294108979315979002471085035831153764176146028723660644802217961761466714529042013021882867420819607946387716996231451927124499823670080044575477240986062467794698999429910159615864101234574350706109467051097160591195927465958064868895094284440435109509199144345168950026628742427648583350141823241937835574038641106451490593863580419225080414689142352492784214913351056307164248663045302091979951475771657499903795340077805175495817728472594032704278321960291445248781717112435538056908533793252659138790146317044118762510394397299714390959571279896085256899213541513174907568831051644975209582864262348097083214197765557408739034783083168559352449618091489898524188689933570734379576179249997086275988219928668210110618239215703224542162126313852181213706918834242021792713626529656556890953489477446640033225231271037307321099055438461243769299067069166420595237753645088120594705827359386911303280502887392842203218769332911889954074939271230938738747546685497104151410718671993619403491681604047026970769116000828516861339762466226205080939430500376905326169558467185562506307905889192815227813138379391142288034162203836224614701431905397175766637806274064271819706074601242315069973201852052075505022056282344974690734500273360915702241768005318031612453446436787468421549484609449617450848883075477207750594976465455272449680405063320523304194499497551971942022992557861315059118805189242801906812700217599722388746695231208055927034485348903279848852589376635142134615617980168142825658461154036028423095384244281593472371299937909045553515868742530774804783461805324673110036542553850791189807981831605869815432617783912000007791256235616774497945245439201711844848355063477690117780510397686099222267271130425650183768548402208394737410709642959489137876041723849643615584170866673679459737663107641572778649867496239767862499460806842564582373769708983853498682546073355424885403369226383164198795069044785766779584425690525152929006447562470384996181168455708577971121593776075449950325188058121617521351620306411609399544919542661676742394688825815269142329481975377700311873752012394773455242374968935498533136514801330562107089466464736130515373459472867709655453729175802565894266493823248808989835300978676285524572224503746284712083831018688486627111061152311233777167489702118002045846785860607125559746647139775518706014178920892077467147688526140820483013562395004869673412661451088262363795269046353704160786056820147948386817836583040667748391615759657789999964298573677812471535123527689643777242303592579503499603400563676187091395458843496344097398138411864573634850530374138863819867721025798740911065978788299362245179023049929654038861609873545271245645408958747187173573129302543157851877690151555404575917241259877239463658699119422097607807910634192851397579839415638365228570311815491304500963433188038905094790528061091624923276989943195883949154032442599081048403926514021555085250334298110292716875731379268308575921085240816052821790111633645720429030138917861184046348709762499674554779557543163682609879928399841714790901706617569814523308319558023838345688705529378922558022240975374221917970849722957691626522479889223499484290682446214635107146376905618560010911455457730738297925356141390466610406822281227827798520950152125571378212982886689750779413784194597540180832514808433926827465277177979108167888981940468400291968066760954734453752296083168831593424948794008679800719820097398709615341428160908275226697692568871880121504344428840313825535389514633132300789923595658301795937086163463833826450302702632873064904632510070523400267845648636231406510724901410928348938885314626996727323283361590663795306539194506160242860421155335428103159378091287378862814959701848341631448851963140441865012471906277903669818970355060700973147781122050045283266432832965910899797777471785167205111283997226692222318725309401944314704335387079498693342338800806260666110303365431447961840468429615485753588959839578045448743651317193434986272344583117334193575351241590513090889838966755501137135222030414411963651579027797257475811749959639707329521573598186182021938715494583547146117474493841681715537919781470104193087348497841287947664143300813914098252490512926911365413445280168844724368801477625140527163276817458057630627119449684547088906026337435535654132045952009746254969968922799003218319657262671680615813816478817197329513200978512436501005707953341261088100996412795262948537924598557380758696086312129006315347051298231614595937533349283879382802227560899854127801659005573576218447045342631791778282423757086874841057887904996564890478781114352423686608864703913491130289999114379756246811869258056078521597553855950446282437962363393614750923780601304684999218666185417276011210149919023930816895277948883199255172009247950956342736960826147033541022659221484988856707052778088767835846336816698952006258269934626720532659997817083175209881381097011283637089906697087236859923321937994848069675271032884955460305449595234512423791242664482005669449600753759324719808210460783415613333055259865706091020436333506172560160088529329326563276953546863519323481530398086743664045658051412968079403835076589061286400613774503899192408320622576001268883770015893403347784326151714015785790306013975566452811731107000287127844358690460364800304878313087233394086406985564221339226614734000019698000016928349691154568809863496011187923939127813846422959018459443048911058186631748750526322303750778877047559208534266829616789004801629800175941435283295681790366416865437870179417950065527253884580213242582776208108366645820693554354619520254872980290034761799270642072713538291579898640894395052614599678024623243561985000861216688678036894811967714034363521845525033500190204872696659326179404118013078811627024267347881377501367574009603520620092809846369198894873216036313240073409637781867247170719489155662856956488054980488138845840466889601822656698473078740035171384535110946088900101373378689633518348122142524987467662900900143570551787951857876608970407805457617743844231083884521339858071836330083867516921782194664356273677409051153958747467560287920737804080957136769621949148555269025914456749234051269477874871202283460903083464559619293128647131906608104047118073440489303198450227579459842246578926805655927169476969867221974295750693902817151366713041978066855178367230392434876841201173163697535328350210297026712353131094957585948128300404945839153914953177897731094432517434715644688001746851468121601344964050822681606135298185325052919680350779136282600131520631431374157669247533630108306785984763460127286511870930266119436435201898522442843845190662556417766221443025865161574778254636876682237560335534128855848057653351411047834404208807996864016167326391063286798668072540542272230593052846137347563341389557543600304864529766005741831297913346983041054584779865350893692266970584569955656518736083588340345345232235465769010894593620049076067583693361699790458075465877725500272691527408526156141705284651953385309154751272204288946720286347179380543227414730430395386282659548543763741891258743751436877218984694929359034714004942681186520442535864823891849416284277505995603966938650748706016413537433307404854702107217013233412253513795221231773060357205834419243880471405682059807332779869475414499461317793432082547141766267110790348721132867750219691358789184373991791533525819495335987891010689331642754272236668578292297884882506762080421928391333325946337889798562508490373642172073257459483039265211959660138789475062523671564607166955252776379648903250537286086428649544577690458093348982429013351671477883081439077858268387814846467605158442838072488357640416121932908625714454090674333116228882847616335328150905558246208702310714422482542007604951272546178890392456784153186678128413202312984611928959915036940701838240828225446780646645950181098751001110159399419603402842384414248528226917543888895762580256767991276628263505700461131001639230764360080100767540626359299876998776356016380480680202860368802286790620357403194953952357368948438363196853924577172519767198445381068306455806427150208250320556485712166784859918169583599923979483901546841792276234994195399768927542068938605232566314677984801968175465384755636538556805140381124359816921514030250236714574153782294106184030236914048008168817669539522258771039786625949074458248573039447607381925127651126189219102315182555606352676799272984182106848918874923289243085939308970946903830495460795810039797634356926636616847024931470648489383898044566313162063939030586909830842485888545880794067667902829622452621490500605994742816740344679494590565372882738832322445801525410820695885785429684750585420799640360270243688144771587417389981737171405743360418405699827537683673617769361133312582855440991562771487244507367107348967174892941149725646331206585702141197523273466900399206550404232423647845175716351078088652901507550837165276502999495467714827322781635273156984297457435470464812733858294485181909832858127333426403506857902133311217606200677191192327408061881977488082666077266942207632538398695841630905207709122152756133839463977796707205701750588169811833284666575707713501628641130587041337378012529417410578929618616510669209877835406159537925780719968504203482130468423999116978461492602396434552779742519267811467823141548251043821713869390770247591300521930251861745763191646221905724199336475571727482566968617258551564088869796565975348354969485939455654466858208404924044522216478614182265088247057106143135075780149982109070509419980970747910916522097531973890114366843012673056716467086492824927553994591009013498904582550453637738786187816694141819637919383830358758263688986737475124443137277667749987138487008597398434970255952115381317002618711433104652952690445183339847860696287158512780685067060139479176161655799258966470010467440111175766048752638551739781644735062089771208230173726833400739914917947102225498024456721517722239422466682242698098845010928290481765693817837322708668412637942597582998920696070943601776646970427479832661271678612917940415695735983767256988813818643454144330295280107752959805527762273676359960070697690467964564025804921466773783350075650280286157082342983326117432229448352179732972961231715762717075589854496284207504392112254017135667166889049683184872960746933142041916564248115717080857751921360655528293812098773385698602703625685390629774683150107257193516544648312409027435545062955455755308038467099304747223715187617926864255193912111507305998594908360907347934466773190104997554550608267059152620382742635480363826044113064741517401203410248433193571058811091195356192090008964748227635907147391702463605460574119375727698502031531258589965470583393162197344257499604008147813160013350869606708962804094551910157022144611155633870065013567622485956532947431325811028743748996046811824453275890996039829874354702189889037864401334675160437464461584109609014033008350686546968621539039509955481154891080914438412082765418158048135830940578762575150748139961133488388198214608877830134057927774029968284602115500014267293216206263295230511366416188557214044079890189277792394021295581082454196041034301806298043102320325461986785336604330252803162677263913606742576592503002686205099831432343809404801074234895007347615666217127372551706541607253873831818100433781457942251692949475903785247639147159527923611271030282015181388236077091920003644834788723466851963421742709220697802100517318302175927340463616121961278512370788044977814152327773531581283228440984996980955069775041320024419051215022889496187883657958612316769960449180826474408632561113963534059882740202022725593536073151074919590805644849459324913758025003213571010829593853189091560829695746555946449020161521913408443758674954808810232964625484896361101034991970080710674718821791939251408244469035141813221101514907201906686364309239233316962388884123326777673300713780571792092856454043236535311139039236763837997496434080825093322289944718686608755144971272128822264855795199770260946748533875935731631177960645869451136845507315165297671476901519119703365084511400106589925548975863241596668045654552321102778284891179447105800484217193624701090067010113659129467997055627534499191496365299962026016463013274574877801819873066215490059464844079475278086104284352949282071734558499443052409329569871917145775890033857835912261529572496439386686311562515802634876539689125940960194559879722670593643632194518074861583450629374793597504400005600958731708355114342321156402023550381578146711421046104296630400588515901990831551253069871400868219308377491377280016776886673102358303056300445533380986247756830571058574701711015994073972494250853263181057653074482568277717222031864291744471937565229073906214073351239853265568230910410725244825326693080224728659356817645277218501615089495174790711301916613521455233162008149837311546719960513877553131923677748476623357051805527786026684335499080120217210453887282932318481800705355764141115147067801962060863648989708822660151452675226419024563847195989038149768191760671711341471854591763585883326247457259492364075078842242511817323535136731113697383487715028265223093192110329713725778991741849158821196568036582104094248469032390352681502711805955567385291822354940545121274554007845975107798515800721490818237716389583954078668768186915204152180755265752088703153643090675628222654302165112830898463723191787957626079887938718472409047269292844835226746893786078204342675851448133260096626874521514269369047063301926700316927910978373548402773969178270245210761600558749767059194871705200479939910589099688685909073096924540266348693460122719547094545732827774345129916525868762929718066971951777281381285619409144467315083039864064998195633200704878119224525534657219359786623648616277643988956753886791321840411782338081217290733241669593914562700776339825367792315992581781781977155164227307636071810137890305327530602223647830792047596061702386500185578210228193965132401742590477271255670663017646699046631357664848302398040420615835021215246392932692128380703029797042503002391809821927106067029777627724525643190286904106639329566481310482831927661459382611529736783412675840320488729917659082256088018827431850140827286597406342396914769356133916291077133439501731355987840499823077515766179731170953214275857850787036173229976994601691202577909652939809484343086148359458288521598338940680631548596000982051543260428526195700163172319745190630568417811823755911016987197417361215349364938363768028142630041453518213068121355242335530807776425537365481521855016038016320672466535376100438259628704082870552863196192594569284960276303707371447304302002676623885869033995173453986906967708666785837392937039307594634547184655708086056645933873530664406177155401432618068523489846137893126053263259809074979832994946201863282110972127413631448418114906484578515831517337451161562129654548106222261715823027407924110388894886516476824322925062058052720625742188782443822867942738931885552928245391293664170164810693433189093967645831353045420131106301857957110687899459937173448574118352361043493200103814509521620050572728170511132250659378460293718230929249748989411739718720869000933356098001803399517475535326873001928711206659437797850361636038315085676239281219942481926204047375180779938552847322463895940682085656794322067730359813623461985493618428111539402539881928201721375404295558861884649154477215292830523003318349382461607735107045304609628528433457104080639359841593702012257054901985914776503591743717958017319090769872066836448451351359505086664423848641560045658949753445900751958959865460644542379709676299527949233043998386904330640449404508547614927697896706156431419476692261019012891933258931121166199158979824158230419699731176386656731258593923666187041068929326836053890265552153414122883926371890022356947356777434502155025185066366577421964880250478810712551790824043865342402418382591866949040362135323171066267135680624233656291125528836250167595642074125490550649847266897969506101987905805360180028551609463029495323252607473059078741816412509634601727231386255297940277126711178525976969995259044012445275579525086587266539444180849893848727783512455949239319682765309950235662210958442715248035216607624364983103012099590156842195397238960680985646009890017454691798752285029327226998488039186879298576652096433220217927022176288235299839787481397629045640507970806962097257194810681857948231718829633858920386024636163320199252265778254512000730696883161760625332062038979930409901795675803442740472985958476260188041621564120109306420287547835388365525981646905865279813230437200642241508343415971710621660520788053896204541266643331119450520586135438624765637638918102250012614311970404252097364178600081579419982362506850904912457760114312978979453334357243263961340138341413993075032870306769477146168965690106009298658828527804518933904074799051832886024756194879699117390915438967779586223856249613760278798668235739269178775510171602668315624928070018700906251451202189937450240701425973616872787804268043572184935869439127452491010200143244815909295487107471793224259104670554062616141061002388688911117293837187930072681406056056923567429540689493912110343545299689696134524963865119171305040233622201691538162782511083674848743037913128686969080332703416775487304805343860568384089815696593019062111046812842104492432521937120199274638360341003852896313821456871075023700262534885234452959515441728725303589598784469157773823821173141642092379965750966005221535446240811198701393871973489737340085807014130715755317796391349431309116343425992345250352332872486015960489475032239913743619725422234778000003681859891797366517595213777887747216937734344423646861322786714253367985690569512756860538132578603647768130879604424033700341646214830499113370835743407864319591436652725193513047980209277756109418677118780315960402023955937118663542169120774331372820101017788966460271510807134609032719458595966662058904950638573898972186816626454671865664882486426049268955332679968770352272019423327551524406780164022993781434120297374578489213164235299215137280341159680655281407253516971052225043032549422692968981403077148064340816708194412035700286358327158119028982032400719815851650640355356349187016482301847793765469268568939821360331655128337405527380520162879103619433004271221415767184170589379591747659073867435558033885100672549042701284706749636097506675228068635643230456850692800704125861522654056509344769556038999267239514761506169880600364127963285391517716916761016337426162649478028352376146300721328768126051621562990158853142128264688830014987042226673783100344860995550533247938663817905951876798395997595192665006972444769234239075424485477420105850892876352808958541976347913548397193847567982019742475053921798177762765474813517658212865599826943776897643041323287261158555575716711882206023633124553384225546486998543210964413564310335367065185125904005142641074482567353326126674472476351013045432311583930228622051743316761731604726486006263363216193732155361301531262938539015725616865670270291319317985886079529977733964783075681164934575743879283810400783675406616317930765628837157457657379241083512687746750527155952573928517264693822005452850051352607917173476400003065450507940071109978742324841444947028873200198597295790113599126402721547469314827869130860685745310617157032156296373379888327083115830360946954132730377013384108625908128559768485135314357296025851423648923827151421828019550048921739747795919695784076472411554467380728546770662182491696409059115834539628030251241422161734476038532337353565121110381770415170454452811876591519314587367871728620213638783503402201716245808399699369478624904710427990973860108907576967496764957881488540916269335143535170465065374722569531940088781280965598654049393684909370263504711444315557557049581241673523791684752075636545712633356523816109081931454383862807372537044928938934546177784458424704582392556751287190995683239869799194528706198190154095107999497081373973794676881536807913998241176015856814161959923961651298629561584542507363344509760742738799627973309167703842803008345405786376529388472960574442510312627843313616579457682870569127811917789331206188813950924595962133471243443248576759605493117945817613488570844802453547140351749475078215370810742692615802998421600605375105493430814322172405768448117341741037634259226168570813209746653920309168376981264715637293774112049458734608707369224414439154061849647367942232334212820135184424978480426605457874304671384818838213669427473167876000026400811911051210467612897408905705040747584261129247667030188231240991422366785564649675103229584915564225790260872810235683104938481693379804610351392283801961348789826924859774958624703369748288496956398010716860337458012337301307801938707262191312781367451505371103191401213340025226202986763577875413301704285144929577811359385292124662841424396671887049379777997255298630158369139605230236816347613258629560149430399511483152685126427756557632151093936109900942272939719006616004982707894253510967747284273407052980324420387313571168924510300603974138657454786176213318334731173202261871661211386397134011349608414707891753842582937655165037115639083084975472177965099340016373244084664282678330034460299312275285875764218023083271929417815138939720295032704368949671827536332640781650981132418142000002439917120482803056923367454015668100118734041566303694364725522884993992692781108056057936420091038632976876435721312601641001553538540801378323549310347018311958117383243505180209840923731904710742041794625457080856167877819127012667113460626015538658169525255827975178669929194714688408096041818202447293466380835450016857038100538903035096303836337189005859812501545016037979726161386624239020221616853996725017154808525358473205255771637917468880876671702115112059966195485989984872383135785382742619119088648466817704399931514238295016464359419765787841943731096993770676766103232463348375783450687257104199791255535532346002321903124447311029583472711260547016336242323574792050899612945839059979964345181421011068980197895301313803835984717581844042339021292856499013636042750192948255375747160283528155345471008956465223075746373705247937158683792488182622693782507787311044523120270156871109283334795504743687879321408837956786375132400713190644140678220303649929599155435396917010867674180184678747989756806603342382788475491869364822624534610821467129769789889937190662350020974409634003317437895155809430613989239716555423468434614173560722426260695778280707306177262851022172065648741263674760108915060329181736772325130459954667720306454138584136085246399029689719365026999418002870196672878143541081327894019089825558590792193012069111551484385748131906298578941084437225153428910470628210505469775313202730056875857931637510084895501971356858576261239458571717933943177808140068276033621590580193271494688544951119783142228541496040647948766142285878953769797865178077606131221042180134261520493129952568480050047693011869481234126172814108835570372043245228554446046892754940307384520612497262489452459800021134811949262243858093443236675324454289665242201720679610966553363980259659053884270469326078451918031776110624910696156507030591111847455769339358752638383379963090307410668228196753928261430527027817778281197322211602008428621274181201442371117093260986210663010443469018729330713325363272743978089488593931534882573713921981183592084838737424735818283430999488869808035454174306395565778966635011229864976004637778787660814134346880504066432465096008610518345985898319742053447024676399245884631206333324791094932178745382026547802477128606414938836972296879095676067916812303509790500151194164819896793855490832919794097288114263059537580252160749467906796374345964587248473707896027688860752818493186363666393842939107324140336156423781782929953502127589269501612022430565783222193258248553345105473804848819777946062123850550644954847622887258649912538535828515720137934742637896379638594492706290642433011871540405542518790562578306915310233070273772153769550038839363546664507656713796192324581872680883727859456306857770891728332696737984332819941247863435491167441285933637556896953558561644639061564380980359452444375266245909617896555374358125620210819457602562129916089727677327554916029528555596382775609942626996736930054917960825769986845956384451084583753739129554683336972345034914035627961371060242442439247722679178603414614031679221801439961300472486070492107662367672352765074116871145858797566452239442725174366051701719200865209956728000407736329980181234695993674476860497006936571719523194751631166779788034787017236202720278953699473343442026693331817613236774476518694593482081087655744470513804677511402690199669948944548933165633728802333336101765443469325822513542297036228681355366605102090887254893150403477703926581575894158482526520211960106468544683038659467478363747975486112799808922228450641818053286299708392102911443848107683247073838749707143838324251525036437894772133988066174796622073856951829185736787788388269682003738461397628081394120095372785386356179963996278392444362352445043571401942602487668729476712913708178389022208335707466396438243367431858833391043887180927942608181290082562972218720292092061392221480772179089074057903594953764622873217538068693736997411907438773984531769302130737261447276821746706655442904787292719519839391381915741148517099792022241303562227877301659921747078039782865252943312692256854636738044995984389393513587624587761146359332965372263643459682885890127826333586390668602582280133335076899305277253779114737622979260636945180585492059464557631505298495686299000365242289893467774281422616965616584142420767772319243276586024759707339607621490979291712939094109462902672206847664264005202477504636578499355575525563430359604519268612328697685722224676577631137516860595765981635213293944069422361539270926349763335226618674423889128816092149810304661556049979938145947117251972905917012466443177817856782199592119955002145132491545419246482392976153605140073269225114120702575332052840917851305346456611789070894016505358185033664990201217121628575945815221088854388903007481513253315232231733171883199561671097215550552735787778610472732861593399319892945486939893736712938670774116722439327423790914801872204193829126725247946780391590042848640583260692608640423258330959078322417446203976641364848750995210616475199590980632511727873077711655165714503752625768413351085527176202894708234053389101802143710282118321911246451889214950941863819167492548301399189182938592926560184981428161649108170957177098410953702195556120898185992372730501791238103432301018806064492553489352183747628322119096676235572976990160821981284475529857882134491579021854863244684101260896382887360230257580741242882423573545985661836290104828706344106259410879054186307243525657760432559255888152073906461835386504206813329861269674055400693857801478920066918643349294608036871313329983303954924476266775181448219845948274174099739471084519127283838725553385463224442547188045210077256720481199004046409424546566402255017898801339493313480786358350038648469852049468695589034382828466670557353816111085482154636115767434139220627002866067122352499183826135262562204215933309445048273342641239808913563693601837345928531083914124194205539540403297336985369556284538751508618435314390208462552918487124798809347577277606078547994299834601926124686712279712739489353945769905885379591892960366044436470414643435753967385041981898761036619138259769857713351479752169566053414765959187327598015510802926241803618141385864254257633927155281364559670064397162663298096570092315327949992389007693747641195424540361418412477113949762554952042022927832566495002334748066703901474058287544923700737795855504165366150132546674489956240856498847301719367299366939135099390260012229217690265965616370216563657560457551280443338924254673671698147281860261646149680577417000982609089376175014886854753896146034545508526103655907683287187480064599063745588230313088493811457172056080698169653856291595362666431220156268870932709403554665361736319991443873672556320628484402934198436484690908778048579555318538290748374392444693019816937859858480432842798287312362255320810659124158247705696641852123360542569074044937018187863147404657122415960746956713641917979418326826803603108738801471073784816599405655580484327285815828964744347096251682270245274750623397054334100457476918294805308014744209100095428031119542114500043958284699264815578710085245745683212250509138097616567231675062862722320567086128252794134144457348387646105057114093522194534478130263767359307327107168573150518707675146649829120487429146571874015293061651764552762321764688632062670157005651637951711077772932096495384081927173760941770149991669615895138796561751033669311775285519370454287225518561529822348147729002187319069953547600588817144318343034435317544557682460860611171019200180096960855590132748226572915422238194872348433874743163065947835757176814595894873067079726704790428996390970426000541170744425307627588817002216430531110136304386310868009032740356822897689061114883664940445560046444916073741214201171388664820674263386243576071851368999070884278911363511279495281956044734019068145786068916748009473761922429956531158918840012102269807234293103713420738905065315218243422815409591623151067188654634919825984627416007260122798876805883193452135791426009949951825744678444655373811861355344562442697290792923746660005933155940834193381123015046892021088984177840075774137731214789589787276475530091465498020806050651944536802661694757439991156826787538970810450150459298258176010670145007297270591825372213436435596286480366193797530336738857475239471711585758436096754909855403789005755205415007736488387348028723438417800052459831698922090466327077212369424701719440984582943363360104152875203062718137016257764011885903721332329051940250194939223368029678374222642487893608047063496495215356533328366062276474155830804807333970123569848574731796549691011589487749791674611579603084050658009464996092564791692982176101808892990903637839332969824195355463287302663320858106862261656810701737886377677553678358792263606624688175975033857756744961763521429511739636351924491217077576496589956300202384497305810500541537388940310803738016563249583858680623959702224168172890569734752276242969885006553347713063907100383081913019081927225375471035524845212823775197119834219059022845724421021038788128384187049525170617814761496167282095760515557308372818647316666765392695512657881334087791779080317309246655358182543977605045153286587004941343953780009472622373460786827508839457951481899408047067611797843613469737349433838965157593698816097074128019009710787838729998432422123307171389317121185231532128935745209039338195055498989688618657569365641096911011984864186265635949737419012551781011859514675776423571963044842260664024330289927682907875925865494135487827043081076788202823694147581691048280340606082274315231093042803953342678085958170146846622608167736633246358982593981877066444596279013292100722318247346638676544232932505179171744761988051590681367962795712275491398641316151410324918709788081380609131369981797012896851438380740122343611658894773317848984164718457136556029265462717613567155987746370956011280330156661521690996978477920151737309416761450399847140092564485795142097447653388678759576984718627425453404226360099552264825759303109097227838933885397856684481584447583798480202168740906460206112335379750641073997042466939271066948980021348314201879055977280737946123593242172149431688724759595029316782569303935704311341259281368848854465924429980559840671427411714254328186244259119200583083082134470842637379766243262459966270412067942780631174794965797573406984293243828339017109807642045172018529956498349914219952350874463265937451995765520593912105935052757902668835457566301551294954987016133490907572291365349111935039730933418282196994633266736940871245546411654810545009049377080021479782346111299053422076285209550401123279751951801644216438109054488399501237975783337149497312512530213954152458523821679931194814461537355212616851695932065034598870761134132688472713825207593295828767108048404047743996105769401787332710703723531772257578130322439593768116607862667541147231661206932998476952248677985200309553524848327303393132197367202243626430375588243865179216680689447569390628416430484004900588317944417229115852178763758282364352954168526195966563588876080237471916227460214252243949329314420414949000872988723820664274528901013225232410470063061413719788106682650204679697820163747102710370333657545426072162721793127785357072386653093208743006809443717217174736837748865088589849304056429951633425396704745706735783277683639227022067963073428633872918231101967402565620026129791262578661582182646972506494158417945368479906686701011796323156847973892840007789926762356984128099312774352422561454773283530549447733641183757466479908465684456150179388926686656502022253796642099775505998021899239116864020780778465679807848091435142905371339043515340635827088091087351150068472534904661710969013622924992854233317380951123035323410986543612587056198872278849310151923298308291504094474842598919614862338047219766938408715481898451834198033987912881905603466231613764030424235424064388138525601800994384030159602734368128872134094025416166166607657431140127880664215616324548338284022193470477688467773844729089607505931611706629291614014903188748440820531609211053370931961611638412455991508140947654370873540740168215758830751953389574652983000536804759148962767311541339304380074135276680093706964696877084935975293529608739952518643857354304534636045605187979212036216874470467682452969744627472117135776388131009422712615258827113108315824502680273462239980696922444456845034903241503418684676362957121524378614104396813253342939596251979975907963861027658264518300613205697402458244244010293636734242850317212543454069942302801979631213402827094857266185448787535708115004013847663719242951601477624760731202718128504588933792715056690580581348002845382903995812780982730804975732495427964741368842777956278702588219485244050093336911599370049472835033837921252633482090653038099163809924901861601277085179526354545894342331050104510720888713464535036118444195536970844127756987343815774991414483380017282467597603131330531238966546279803382996638552751672276279928108497058650336558236702839350473401044982470517452381889084146569777497757816454214322630506120714071434189028734066572933274434128560349852288704054558348960074071419142314682712788142481377598340086687901236198227302358687966034543864843704278004145541905788957222056360246244552503316120828380045658011038176137108947075091186298279302931484025564253900318604017663152826816927706485572508726634853441274281380135912804691713795740026863889466701623443165383869042745694472345995599411250981566168203918068620925541825275026530823062662971286595312959295860053442654505663272056099174980705551396702460659072703009736703545382046073723492775254182934697896075605043642671920438491514807787199856440837295532655435604935885653397017101271961941480427925452657347282382090927705466629433956476409877131959928717607750608738751735286800332910640811882165048439021648966297818625743251826586436674292883520101645666233664072868654994664124324146388186101262481850112437863308952514780872257154738280279108434103590526751415201569029353979707877735933127548124225224585779796018952774955479460716508695216535350758817676936968093870533612615179646774035066492410386555023676067992503695049607884091506700495556627552281678194413316271687602687591381063898667671809878950731396126178579515784793368520670130703079833111309231644398303199941450773151922445426014807383980389033344195301075697961975216986250611463019999087498285626856703689797216451087708708866041280292181060022633621870245334868495367876596866229321992296748064007391480984276583668257666683264778561859116016568849165604635713422537467461856636878901760418630674617036381347989178096778849354979831344738020386891605879329854589539709253467444319322269971066818496965961152271124502744955930546628972313838918223189864861934674568625321146565624347538921179727200827472645559013670114283388989867841706248134424631778957489093485916464585643956317044688201987356282157134101321378576043162795722039031863110803083669404832311297897072375543545830392978046622584111650025205652915634526824244032746399121134898102908853164041431886134996598253452036382173651897347919683394368221540112518099570271104164847953943423883406847394278243902865406733963948582327513862771110611884572579427851992655424258377149488467530434302161427231523921062111446235411704461791333124517821878991665127202036593339516266631716840630849923597167485564378641333298223657756187947624441491676105040232363809366644177714789409148842358008964905765814807503337570798719251980865352362238932812595276888004308392767348806101123006184458546010847419147837404245708944746616562490216003623934322316071972240574763054202567724722158708721716773004682891030504206516929856890692693381914112374149506567476476266855605880371441799854154478614616427340923785542871121852930953541748305497947903854023233052278108505076919380678854789228359027388539794879690834155970464510812391096483533244630866724241634656387613407266441519677873880797694701742541532455420142082225275851829462210968151766162688546312831874711974170850144365364120507059425482423192353718070538433379341527002247474285779481259726102598277039036833546909656975337422024793388541437194802776956317308237164888596694890366486967718010019134580839690703808255706326441608216745916255722968072199634299025488384039161204694705600206837903654280258085290844990478557907773059046706180261245974628290972500222164701916311020731877087262142028770210255519275488675009626320018845997647136243205091419897614373344681482596386687088963725182083104309465782051572233073899532644704029544604201394412544614740553414627855660935381415375146698503134820803498296058893265328001589708056972347468750224496461559605683151184993875888251820078002894854517638618178579635720933105113904159763790697502585821672574956843867438822611454337517979101447397602561956168476655486172997119719304489929209489959804759647512615236252071251221141091151858746493640931711720595463179944671788177615408233534320559970035018760019816073244583225548354684459925888355094666887299594179543633035292109867217615662212377919260304173137394004711430336233652168506199099206958048089836647805731323488943252071594231375421280951420547590522446084565522416770068524214804050627822557470592955161709257691574264177855732888998618850180857344606254213958821084899102054705496140838075315582641628115035716291143522620625033017309268702758977883875829079374289903597204881017493692496317121966287938757814513586773983270278341705514917142833364955243269507235827912301465703875167745907494457036220076362321586109099893781726675870605052067755123205840077963794031853621536096790735597350982816375094835436246134056926901869849702642115893028317656941772928441753266327178806215890441976647790878665916773740577007452053349524365060998381202294490137975643484558772095855906795609798069792418966487256645716204966411345091982773416823605839261774128923937866581739922299050916679122050546664009631829436975945565766976997387721281391874175295571872430756347191664600645729416457074224261708646681369032290304318108292516716557089345964720182664538099858634322943395346259330185219335546028271474355952267870651215320136507942829137168893171362246980774419865169698743993878512252824319877391596659831700830088171150468890574512803878292146340458231073397369446856263741211744313446186343931887900984894953932642648238275623230180643007830040309856791557420700384050986527076336503675385465802258139319218047724686135097927355061324291037739806417510920001974570037044129845786156242059332977355013762366250046508261719860985874236459134765573949227700528276831603148353476223811116721988944724787263701556930312927539892931036003924186779490139101228925140637090721844420971545610449869789573631345711466789788429057851733913508587653655399493379256580749458439420308848821832762586678668832723732826986799783455703817092300916597834230087303966669388006831131815026979367891961752588606135222604858269799341045826279022108712857369202885854519494371160636678446496493937997958838206766211947580754297221073985052815566668820163866527270217761914228944692748866845550284775190504349097240542065161541804033595939117743363971425386435753615108531853550920866229840545978855598476828698911406703836182404934766324745288470538775716503956777461231565480432698314565616953101997412903816251549818911793370096099744312037359087664266934365043716482865942103716380491989168757199192368182212119614088833967189678886959145032947959045951051844593360908547732904462702031207377075493609717103273905045761678512399323866444127453284212772345661543296101224305208208689854397615107206974748475225595293150863962653666354923627557767765023990863152864935107145531283867794851664231186076989516982175644313213496457511692186973942847887151046813227721694917349496215074812826344191797333431179491076607761138130850088795397769968443611511786288771077645143835766797774528559163681907573699322062626296882930080561166998897756906036589015495510023731419160268922590854873033003650247317256274220232743242577904134118169785073223379365309865191003243857458404146219213442976593382903345621695372560170206718887018123626591741642108169623106300106030244753747790849983920975870446358427733299476327113431795705355094932184941154910823113116811395826371549531985390094932067293498072694914020722066592880061236274184781872309905847625828853237062137385865452798243105555243724140016942386766072311053053770344713649498640860618711807151315024417692363496371137643309472741958889326228830182729397488701923480301792536634672764157324754290010709421809731448162825690365867697270012638048168642231149120952525833298533418572913916526247975684148308221738252184000798838422631576422224764125697352660605514502482640825011117934414443832328061931413943331428899727764387399755249108338728126861481784346125116368086299340373506381498836159848038165797179893702002704453296922335315586950596864708265873278342960677425023063217422204867704163521184891611597544343374735597821772093815014926232561124323667863486279994306102515344212655810626795247710262402619608248219683607578865990564781965214459607829408185048047967117157774110598592087404769733779979066763490535477210332760482661687433750943916856903810420229931169969828370122950323689562153850026131214176531139146871220088726712571545172019040969488444381625477108278283475947839134165432018484027143854385825697873888203792682622826614243962340355442987074570803742693239362445173319269204554366259983785177257376088296706586938510201143516501205829278347754759025613519328562710701688419696976210540640840150987129094878179122215401041898351232260964758337439195119253999929612506839448359623795460815102235092412472589797089665086077064021023797489465996369769161126820457763765598116120518874275197243930274708373647157132038737974247722388832962201453608042060722913066153780294185216345543485921521809560390353561134282257534108937385629846119856366516785411249876630776272664996473340017061377057485636282618812969330921040279533986100974210111237089674906852076364351664910677830612424894178783412717245212499819851033254560740335218148645268717572320997129466547027068877103147668043062269897554846328803947792423856297992845971326935916639261297656213068801326597693552783448377049575806759737674167004650693509945209557337106889222087580995389289561183121255915056567520601364866665409390970005470880871983401042980163530769565834031731177121475968274208880986179818915265541422528647616472639746175962338761306831591060939340086217689737756007855502950842323897766890176189003860615849896273868124524525123912395491317460245614382464685846111995938636534621643263802422608743065569731897642262460319267174333423315288993559753376742645768814748938379666364976045136701097065366536773043585828464556969668345932508620579648303835396576661795458656385829960922633558556941058424683257076528960876118224688011902403604337514805231271617793410525687720520476118285362379831113171372103157770624788697384307197852915729569816164340929642837242762602727620517769568746804276384842936963750296902120234519591628347015487529855526905607607396796500820955982461891802959216936999832902022628516750879021480178895280139164035542742614088076438013826603064235430697752155808068603651886041896976454716139119062222287473036530671039825679281120126927706414969788134580695966730139712092444859679937740072266030938791892756524924383704968979971939467648412869374135618827280364272159042855678983328465150135767234254886333407628369935940478024742980587024830684514999949570355730564972248586424643185263530150355496840078005585397933892399668906988425258078946819293794837880110953886835667411784283807470794290475042372855013114371970915927732650467304901915766154315310942413177213208555556049651823458336601217459896524576308882514415291893932796169708746957328759898032309586485614603947655193445453158622859721162320363122140605594142803331811058769525703885272668261592135925832741419889098048165410340428214099767936562299810590633679830777377236553176884906308746515313643456771762756019291182778825012827345931624525234963351142709009387641084856389450695828454465444006220268591037037066594045383419493779786031301836465386409399927490379111883095550734519367488870634834229779074331111752146371267727628922144551935317152766019053461160834556838158212395876011035248337913982378247763558674375226083446871319199562839646679785151595874146324377743116536222884570247724037966278719388523722006682622407844933664771187351428158420882240343560367801271593819482989013451270795661317006754297009334626372394595574525977898544668524284974365632415284412810733478097782882205775442161495244597771428995994908033945419888004466917901442650845636781776053338549680730175723542715395385511760475814759378296006533745448048324436630149975029656048925561322896362038416552519184534518593286002064467268879978132907994612971167615302989407308119451593035306090059958514555859570914871326871188481991829226888342707944508154695033230200693447655792080475519148237058558841983085332851652677355816175600422001209380907663287134081639603729344142371883432688737869730415857447378487050829841573353986129455466292513711806669813540038421805760293564788238643613696609511766172235146566669271933034334656692931116404661821505460430006480471164258106197221915923998984816747294805663975810786187808683260045322459228914783565999729739588055724773332110322113288500090042612681041422733937572667419927901267460512685025363205204010974950915076161531607903467502861976600042318152873919867260284222813981831179620956073149705430649792643726844258040782476935343022732508798846746457350229870719962666266664385679952496722425674494774693829815733140150910671063143352499752490494636239656897942135162716825121226332622824388165395828365565642579539395173188557818880722010144152066091532050135895351131886674475781488990531786353810345903474963898481469817674236341528733934584262484535937530322237532298553888431238961756343659554677835875847393076397906945920974390063161858204495507366968651414938329238219724016564827597373431672372631825731376070654474250027078699522165785715622475904353753835607129612202366332339589043823706567837060482251019722022448612777250521053111966358387130661801511071394107520932636185032020085907542634085167818428167796593539094773247454221089285337058520167140427175499269598981118122982694973668581418064258162027359317089459728967116824719234124072958179716027019631969686725989137605059041093712618979999769159371416938449270296336899895015799515489805986316023992304560118600633606750185359304825469222958845879187559243928724554001334950480769573788508099142967501329918702944728266812381836792093218818617383183273592705742108125998736992848649151042068780481685797589673964523931908789750496723297609231661164988185182642754664687389411192537680313313590788517052507426682785084540703669205710642069459893851562956999155023084060101974340007196308171018138605700043117520531361365973140455704754929266796571278999059107253460013554520328757167885490960660065891692672322764255633521409713116320447741475261702433856810051484732301562618024510115852951368163164403149123058534904903838009322543513549275156114133222213209725176854305133151732712345230322821995200627773847180783689161976331855149717109989931695917348571464070223928772511942218667028907754459292427170091390313434477261289575925698333645934289760307431573577771565658784814311105370978053003113905367092467599710902953347698150737348089571724344769482949055158401680779985663378798287230605376407572811804742037628686334470246860483564073308711375176646362970136360139311440157248181603284037620869461525770099603072507831941854492027954564759153226610435313916397257081052302277131493037738920247036853283865044162889785710582350124269766412309145023079437957928061454160620061105961337331283171976516829204031200255690899283799241005551251880808802890202363082351287336871250173978147680439244770954316198272230736563439790813512388160700692285286146450312504368127791415449385075875575077669726281394425772565830386363575697767343314349093513762014382972096003035702100903308181017273970578357131309214189525542896297085881831299981676540767321395892006345440668387770853234582976054954988378041869002553921748671105575543754911940787608512205037853325571306947528413469595406202778424584466110753519741558010440116593160896614360116226447271452486673169383890467327514155592109093667375000643446313536423161332481197289008953637704009954667524817931191088146091060514826652587702843660681435748277010655572155607958596208193493252817380105483737870430664137552924241771474170636834313971009028349454054286731693837459254946524170173393250684108667769345119374894389670072734281788361588761382698888450010967492883499403182549124916747395575748914921004094689242401410903179086387548717586167347625502353236776969863545297679487490612627220284055033661889709513631302652710467905384884981730397187450741671873306626780796781072590487869880448142200030661388830647223373107656551959535725075294620744386539328828291401640059268441426636685577859987116479439354808289158571360337583797287577078452074636461953421120326533628913808682279765967421086798320610279319676541410566106059677365182543892144430620656553452104526732038062355258397110521332661134633362615936051523336442921745913199032862710385704202211641381673515237995869342863228724332463920127505635569178948961503404649106766979531156582281628397021928205563250825740932363350015388942887105553517795300037922551980633601812710738114287903761439509009658902687341565220305415503820697322368178464211443691792375838556755918087857780185086957962869036528207560694600136723805323251248252197006141878544890470084085467758097925337355915125031638336713789574253281369594797599274717691655962031082637468102759442777345456372937300754351450909065091543415754274023540966371210958748646943410293127413092811860965212041146152735710712989506088154907377090041154503911808990366516251518319157137669667802228948984044328293570638915636514626739120139354840167529138875267956696689520279694275256240881631703452143087721346462753154092651030830210299489849787607301352046649106021330847311947982914474432347812356356066471376445997094533828133352763124998997186111643382959049023038854428188468356701454050155058416179224398604027940392582556449082418380041190088915577085907810365820933623964429855647120924841704145789048978531037986229264201712187383111507714124436538030813554893387872884908418889734175973257064408552940253409339094035776537590117490756434104949325045252654248355476098054166603097866969591012954890205122043220532817884447221704858057834827887117561490072909282716711883432038490246713069656883000882921003036784797622379897650777946546245586080653287572879840788223971789815704831627704361034488130508263723229806170915357764610843364561703295205359052992431822035044436021539973575985737607838694190895003691757389538014419277539206355543802578432771481127980878819663767402688575720694806945486514917104527849806246975644512529946106136769059815914173573837021009135936166984800613944276958457097518317756960354871990025317087881724717912829889164814672224686640348960849000983032629923470357563580203777498897283500789390180315572178620055771139898364340480120334265147039845483222975694981828378842985712514741521162148717015948829545587572961797029436974511313866604448860667089599730852153486630861120425556566514210493706009124612001922706629740116253433664894622601596269484977750194989947826632985763371681897262410197530568116534818657471922688474566094791349222002206729654762349766141483346514200779397315458316676318339738804245243330960110029436989835215311597792845410408084286332935136583390444838159956829042620499532816154740265415604455180829315838173858302495644682763831157723422078187256544754298592034941852231313415132156924623545237813948693727189154156254510571630841827655390465620128732831248615348354710758652906886781671583756484808582600539765625590914527498754718074580685496872160798406262981346867774871047656548583131874788317196477832565385135116280732414527132235668885970681744918952161978944581211924222745545947247462646794683318133619681585159828708170366235628663018159359326456417145564790440405622086364124799650437196855169155055395983160435639647468793735389217314961706869943926486745094098981994695695201363902652361606287305900530221801474589622555056873165575394954234440031071013459445314248782363045654807310078957457213105124491399194899457370347110981827744492862558077791303327245372238347670354492250525865127739742071986325724520463838286504557145290340617666671176887274512335698437390443565550742051283999137348371363968620683028285094324239342981440514741753445929232978903284756204406505965229602741544928610458752151349387125716577475481284345223710863760534654631768489547594747722727482303292238579096571106606730858439737884899332896307538095355755382341816871876828535858895603410789152453556151637537034624264352132080040201349999343831233185493520259165695672903307439226252930027857492643394267321824684993019531581087797129935829135285594818752517390857310120755029866973261019975704382034189072834603223658612721129509978024766117063600543885077791683501901039041216390087599530242154952606106995583888503569191470748126563941600318893051039723037034027559144763510070969679419464034557946928423823987175405830306509964641023368872358547072719355210163675691187127872035715325008701026704098738519358390827959249917438009227961425166785396472617851716591173370530653673760612030877983763725950011983030808106998640504492579143502195684568414475795807419012377994057428350270417916540189394097402973991402177226229074374791532743872903749193225527673253617198533462725377542874616351079887649167332732823927096169023505998524853436057525664854694941163330088047881625295718417325496607721059083476139103550476573961656992377339482049754132843811729774777059292310057414783877700373479003931690949755742223053976253926638376836541287357185720431317808203744275543004985419545084646526678049201166694356198921083735430375382067010550348986688532745773747639600146844658848266759580295311037420561828346356426515201180696426471201353495167588502331801795106028618512335981985287889551080774709555543798856119147887862129379590896510019139954918549906614270736357512853922407223683521551248522496583776702152190382252060836639614364707709310007696540382536809356823686921004333381753262973140476663300832209840388683897521964352980008407152224260355736523875643342911205112546800312190823679889805293669489628206623816333834653136640219863633841578332286946652079368787452408167977630302104488227258028440304802433037518409255473042399441994637583233938974654007736451005086248408925985593100569767535538257131649256346285984032497780820681094827704752768216424487098288752898101079249864340519765024949064285709215698099726238199118420770262822768913130897769361328813471787468042797408667516664936138095791190212044639085315312718650889563824059476690925771581267417277862546385835336811733810366361211252311861599189766345132351534465888444967573022087319946445065546021252263484138774968118840301432533742622701868999532884439621337557953428039012330704677475990683124060623720022400893686911174256559704106573180377667602854025204252783726975230899934937207172600340977531921928068589357422498084503739150069536914614578705952639676365270223537288262681798118591342246103221386367584643423832048683544038837632033583068628755847050105768197282278485799369160715997022824930849971485969016293852986393215419344962759640290695517472552756273595862689594942245477563152090698397706058821154158730257096569804164205654335139647975663688837564329873625573708032461897489556255567514210644319258334631823637335942632100864079654900896331790138041897630651250862078634049556916837446501534250758030200566838508840583038842650417945599326755946711080912909241316188633078051818201245233543847127858658185322914706801809146516252790652681759724449399180109347050178993586229586285672510045931916775765725265118312807389136271040423321770091757092480903424556558808490796800869799844465928571488053373049248836657954484374886530521963727985225249072052992800182570439724794506654407559067511197614470774606572214027184696890490668167086758215083741054348525575406916193635860841329801708976318793666663778788437145440705411780663801087253664736742060085600007781643858992592612437314356022401109331212986630503034443657964546540942660958179489182477479790494765779290854843474178813818302676872453600513589799546058595509040934880669146431273903492202777654696093916713287276250996277359316214743843243557424740748744838499814806244885762023772111221488647668080234223189110402681873753174237164331534337692430821504404075604519432823286378145856440297544819444931858646065735851719163842620322393030467226405680136436785039651846810424943342581856507136957448173292829901602765780832870507815698017979884159089040749504110359473186339271004044606664660396026933846093030054834935971010951139852822411496784630908864090891202177658187559556444202198108627929824765705218018403282790826592346399422747310301548041595838891030300677505894199043041472972533486782442725456014098277072863686900780601676235758375644885983740832456508562623287012404607747201484673415327286398372609432099994013101962567660081540532516986180116145169560789003516122226492241137570005920781099206294618925080561685272412309293727104483874107983553654833886611420357264435234035482491594807691979747358193926696692890885516548773217211529630229489438881833979520081744229946761943683093433615945017097990467193831755775082068836014073964216567347851136271802689620067385739533057337615327440785688098377101637077291719555954772351867223738748354370876735245057532591229392958662412021500080656382107458970662367325655369503682073527211724437715258170900046414453914070781332580948162583385953673770428864656151597068471596004858539709259427909299829770226058197994977064626534041614555991013764013944669798105341182564454804553640841192751916698496383502115070023797096557952782721708054718749221961861908118830470565878476570365559055520161737507027918718807563397322621342388562326616675643840799126311084373638119285720403009295377373913558848246334079260074169124398265973649895504823585851717931810899524833644753805988494189092143030875165465159740723162745328462910545800321617548219240542006298472249254134458995950855434004457332074034772921547937396373323103289824187360466323175898762686736309343709297180205762515845827514439526551160427744845351761167543277011262934157390759256622794994718870822341017014089060919833345628801854679559737446272360499294408112726193680243413038283900604294221921906916761347750377292460345711737481017024837452165151827152976043490468728434955611079229629332641869796587349588182234360833921472372380245852115217638804392331122996443390719010785896057175076744671883254015903430584842914810254858566985998149649488500061968979096783648788276840033619040105861865986698044855067513536992270968511940736793754752229185495071231588891632528362171868049589916853072981135356374387874686090328173622295858947323784508472857348291847308888306033675089527732714966280734133855597450137660406676974458266433324444277644190533129440338800545492686924573139482756608233723213801609824719231165628626351775616476602739693188552635619894614760912763747514142180574055979394531237205747993349555710491504086330842599839358931675504776973807695094651712415832130566769846774796620608584920107688498799487877059942390457777810216519408409295129347122864959327333747229645939472405406662798664436143855983961676121439974936266841239116405194368124314186786345248908555850594639557745066678229556327349392735778943862900847438122952256013460725562836691381200699237324037990044332150990362629136370562475506363107331385841332980304451513958349374109751555301618146705978908857984764354454801570070938739916254737059109237049236090519910376865217409313419784525247210105023759333304339204749916759829096336818778247238043352149450237601781772861063811974772579858081969393777690247443576453280989865158886579429237888190300389182529970926234822884078570227874648366964170569300210435990390561309714732151993521784370846510100527770494427239677136477884861126820338665847516308847676943265657457426510789957725237039583603390331200527034831097623650098844273059799465568784523272800159676998765254468281937644380066471298606353122076710257383863131006064665442916592023425780469201464875486078218206596126302092643491532193315852481205371163539351741600174561764083733049659797034429620072320950730748372341589689644785263908670250509317495839741107429646041285152281529243811023908190651408208966810203407322476434530636868577946062493754652516405346462174216078202628041617061744195639634695414751446988459975909422597028594874589263104928689209078215778576550305419625545867704674088934207093232546791041598338947724977500098934515253504030996725245048165759991251735338570212542050528389380432452707719958934703667600788385519784049551487781991649847130694909300234959468625705140563849587756193010529109198274765087127781483068184920085510701444703243983478854991659292079870035590402042776923158844288888103800179804787616282651544902438483655041196605526446258614515959951426412522847952324562308315796951618378865184352630655550403676082105552014675064296785713008207966527545385503620055620097416368484405361757072222658003989053276624033497594396104214225449726194144619113836532066320999942826860466284828764530235055955547482433554429495708868930813562535183014899149744495506409050843195093234335869021479114064248051703438048230863577803264094262767406444663801282502367613700037451652771447137673940460824432442855768805135047650220560377985119335207703549641257138061655125823965190367411825513805435099281959966556059697252978139410810460218881110760502904464630847807161945097372282581193130675985342337534276944981815598248355369343941926639659872502398907003549643683732489915408475669829207752628082526372836734123953681995963641534503535445555344672851681278708912320603933356272073882435507623668043249582630553955347738428838605938573721622630473505011812724146221652932972570602262830662497412828685136732604230504025345746298404085760560698557044556205030286538514420376594147957795560278660822380144754021673359124411400999336366004929714435177913303108273312963610368263640646304153326928317062895933520398381211124761788581911626046620589370994797403681465978222057204362152593228104662714133197786633020191974510473164734016063308338664067559974229273384391460993296227425012787851043739978693134160988432299896282389559766660805183358222013593788531311406967650091947065851726437420024074423011436983176104743043824575689562009292588812876987453707997186781377969534512016332731558938395979027284438150195209850802503661010689445106020820064310669611198727088030986619217640848118564275481282892018682204888489111266387858062875540650299890230281797897295000365129468878527787399593540388794465890144737926717800028926195818131747920223250963411785878874226172622258806925528199134679574527504185954441130348676290333359595896902033888092460014519202300052839733067966648997243200224472710696521035138896229336352635315621991346166040907967283310937290041553435100513248445642642683275323327483884073785482701210333267091046681107434757026626789284406378852275449803078792300579571557402359681739480534344628385751367442875773030389771740656449218997088666354809267491427836115827307213922204018973945782656790329255690273462881237161108768242129204405911597571955680094578210261787337275332057661698009250479150884509920372948347433544448884811180512161203726499874599152818656605048395876155794728374879330935588844248277960192564496199172941216677300214196518537532467517020568545453555342323375795615723472388365945913113379621614788695167892096258752675706301282881980255236497565909906254782808064369616287843700252174098439242242623703806793658370131640210044321457400310180651782428988922289587903629171125984939342759823536655421465698048945867908619751183147199790206517615189458577726296642211940002576420970309405785247226522729611776574369152485007354464577305638403793460449373152804259906385592278357802555772355355597097423421642634978859458684413651932652766775691294627076133747003974826789984004297824657393174540496900132575195686768457823237851994264744119268848817947456992788092774139215280593830659817551497456703103743192592770137702789677622742700469560110752034593021274638238287318695453306900258994166888375831611285994162522458222904715509198515463211557172748063837387650970478220096668911018208564693322077057426671651754558358256351486985086608950417237798564951540839292124429620461645375011289885567070167151935287037479054320597474298482541937024728788361922901164092947989928569874468782334095957367136710857338999813561343402549388263961380772617984235860974927255114099329326003161890875841359119092948187387830484945447196773513485951862183669668953628128913131025500300256070304450952506930650050354802401258291000315866434411235118758201168364774026112193739583870708965027217446372986853096102513878456729601278774217923011674816309173021691560635938099575770207010685816004456980270531083669591711689005448400171012281449296070656817589756994080390549269682954460508367898656695565578716903419903120441205303145428115474851359451734269406592228927932649135520079569139131220632977191848551386727980760013694556614803497953988905298942124063735902328270615366158269824966478625699265134701807282464925870628948121304208084348799444599216455146577243341924485938388542395001258391553848776851384088402666244263072042695528528698513213633333370177866943991921150750313009774740342541237934497050693806473603773263016381326614812286000109713789969714299054959357758451315484091136510899789890828944945037144547694227737062695378856948315103623896080229030056724901427277405010492801005964267773518199770889450458647873018259177797536944933882375787902628241778692655212512633164131969282954899417854121903571617206514284411909766177524040604990883111507067983326615831577537468724960130713218218275829881591469616965235322124998198352198743655843203737375554773783141370057033390903878971066936114188187511499761030188739736634421782878691993014892282375480561063525033142645250309980194962381818188771012077550601324910989074537964246852784876398387199812473375355841402564717714290243176614936740663239537750865272199070492143412331547042832957638534972660522367752839490207688664619225017225388480713308865249916712407503203402455226577850580844152689490788451752692891841027143099568544280671617067592198028434842799846537039600522306743653693818954592629366961442431885389399008057693388876847201370498730256894328349647502579188523506636090269879236578197937626034774181325000630850025151766852617178853326543331454174164188678281051049096851713951222394639148460485791947260113600750742586745962406680866758710878401929870842115512966155274133073389191719919012367690684039057880332008866327886978947458553912023454079838452352110748097403567004391270488474173659451865424042323342135335369841012978722519864245701754613099418953642774805675315039356353258057360674405502570881806139433417025683112679466458524435452336829954024008378701213185008929135631958404682993922510594661939001699158215346245020822507522222689664601105901887524384298059413104008356260076213104122906901288413608280005201212099213041329403734791860132161180000656642812866950683211248284713326096272370899050615631705681015959613870073764395182055056514481162818136137969215782429308840194232989497590325352607026131485652042174802565709595182229335489633266351234470945911477580815286935262230239772046920659975705604953268083900042280732068728233394381307880358194880666673676315111133746919008482684628906386329405013995367296775264333400134029526143294665321520677022020858334227791543430958261047878282436015036054967173723281564613015841574188200243204959388879348752891963516637983741391586376930834959660832543761998236921091420897504657617578279148716357860465533234866422501546116606338808395512623481793485284200551021954808301066578594934207202176961460585386401229894371779686359933676839998235421987957650927261682526346774046668944398926845042590072902895468208432669679347741559306077745295731375398560656859732668987884146332858247450639797244338492496497120514602868305269859190773331289914174957044921882202924403795179184535889896916686100834553147725734470687527453845211265561245677209423400293419327308056732340091512685619671002776327880174480928847529589269854148180082347094179293223618455174193014815501484126261931058364003568349190664772450774625101045272728275347845393330248911151233294143065796360938700984467295633614845265320295917479789265154680313683191030229036330075201544299417687994918465125764600366867915136705155938812691739392980528166917331484420569491679172886235434712286790372035308960718626717174763238177410175004843256190292470679845697068136039812382827993382830022098910531899540931215363860531198334570145792652865499034847567409604201480555875137454956368560784692553786719864747508736469917098303153199917569493418154155941020841784753103513535850474487741509278084200045134883810071519238224164767565220849037133951677005168598834713998857975275841000149753975086493281352233860939675701568417245211187239103911325074977993706856205633081476217650867691366734245366236035502655013010278875695608708242766591770021891884354004388878525416448640265280080465409258844872891101842924058472777899774990616798735388149892916804244765041490971776300494568829149899239224283412082632436824472234496820774151798863413888276764524939792368733631055511650242102580587825932706918125223328968033099040356203750237555177463637601662145814817569674241645765366957311609149035677825403386113692076084409939530775575033673522335842345132382945620775570654641334253855234368605743449296550904992653529311865871766723140355403942606755670731988292792915723671221689852311866678274126531239996358068926714685679310942954311349658323899378972745050862466580861256788946172855854317346733647748715388517215672140503939636313744743482088631195240025869005807867340265176285764700736071225071857664956076436695336014359198529641973227997068186116658275401576070521897958031704770472147679889697372899833843167757915048810707794720407397018368333704857044546105429062635152123545735313203803703670348713223668112881263154884469909135579101906825887475874683509963123875981503140436536588033930721646536403677034469465184561766627106487722024510948020774962207353954499921388244086037852159559522499593158776875021688186268913405771034333756529048193880283221052362070529533776364438562635097548344967222816065242981532037557312216076396020005187670081741011322573702045267188823595268716362424891479827264084884055048945929686728237735621679980249052659708530055348720926030773547547333962194423437271080458485772751081962412241524154795304036823471876181331182804802424744733550568834509182215337056900068089686563845990820186277544901290538153034200138210358757377974763219041229171613757372008704821597558512170088149388156681282437089780269782790525438997525713444467244641517830376204884836973672957962249312857439249517628176822083771237441806630123514200935973774685523102303604337985012066278066765714135481457889665523528115384583297011722862199693130367770897349813742025466672887936140789202864142899864685324204311502445027462878825639402624438573519970024881872173505419998568267766853744858223996978868084251941633984797317876028437409639598531250459965160381918660066097376033347501061762565787108478167223158082713355514988666244089474960750960815939948533797133044684772279514450212900768942793491580353831604142711401880823940171469424224292635506010006348776791465253701251925089627698056871677817332599906578851037189094095253563328318097730238459953130301938001806186265578264863369603632842862703893026131106114335848961361783593073143529297444147659453680702805111651547178204452445902503157809066126473937316391906906460715157623876070602323438642866534936242656821458434946573297610118533155184717296851036549193197365108879472827866522289921428673430974431771578286106448136180105117018893309777514361458161437062218688159357026964520564834372320027300329140999203319959394017385638903721007106173704201982725418868705517336010259651575977362660348299213720669952602295055078739945947738764885146158844360333140985159676957980711419645467197425897040677309705179502725255183560140228837033556744374954233341071575994977678596925878485883692230718400434016085751313435617761802202340366423778791292767657476996626161658541580907619826344130593012319392870236801077588602889352609410426548474344969715907605564939722399923869277880362129718133838072613536394310743601529592692642252240892386989575971231406335744392618066234894007125827426989474705118581604045370131618548890841625244325627265793670544648792296026672316650172600745582762894502290939018836273448029344481556640683953889049876038317636691294041197233623083377175533013993329398727752631376105019949200823896393320734381293360626388530646356878111327377901700021189264798351308054667815143275428977008128472458015226894139585266991870281400897088775132318212150582238403371966582261901649268291502557485453635664967488415239574585294159885736327493265843951923962195613672593391856881249232819114057503784026168563768478492085680934458567787019275266172518726766152093704246270947002142205105908668441795509391852634474230651709646284691980731618377537413672783442808369210373141261442882053071965674536129633189792041638690653088255304503862290358411634733574142647283986990509262830684265233270333561940323323663390300950146322696734418735228717348426576055457752465970957391603015418644792348954289922326291712717323429146278892135171546629926037448071123439366558191606764453414210194185699141927117462305543260009770351796952664505119204131655830174106665926686703892255992185172975033311224878575514632847919383630447754927706781772854460332676307348050569902748504259183102679303304387645253516110792889818936081832830522797569918411162667551567351204326834426554017834235985234276176101795684945527693981738186594437929827706755838204781032523181597156863340969771836165002396943291810925686965435422294622306262122163188704097492203968431919511649348380280513476047735604927201852762444034377157457160399135967506902928661811496559537490031746488312712726596403249989653541514738264771591161409669996159586515788809291025641392155054885228279492471068239211415984419157508187488318928537383615938360315312028921450931883070114520888276036623667262684491724051100539234328992095972966734496654581426768891900754019411230082930265752693734826503424248208792989298078518287713068185528333516494898923622364814284291319938717611775378753827811803888799438569121640908925739553818870949349582778179079571837423909879025851855613107280763232439288737592133982075926667878860097010455472564126480944819046039488099357429970342242359261670955310459462876448826723673900055811968776639444035835139282140211187035488309907914585548311236061790707188228364004673283063438047491008641802383531910136546021910549813069883836627715684117182554869461504267309742607772046867458696944834282598459221137021087592430948746785993059891739837476140262975913385611910787860200895072170140670818526134818018135925675930180470646377154400731348213655261462018298116847862040855366318621853293554344526184888227810803292641341733463167894729961696804519779606050354850182360407371677476053264363065974339853811575765314848520159270032667525990069786160231710268291933471013055730037862085516627835281393090984827444008117730253895302646453510199335179548745026196881029285689360965037776585713893382208806995412298459513405364937054366520471942397431576541057775415399967167291989964236330927884268678165199639530457163824856281955594435475550330985115194001955325719055950149832768529721810026982400608560936193933283384954033239863887136517912877961542400482638336816313538547890436694361776196697472679177897537290500396091351074271906726617336802133123744447089264915477265297831157960572476427147319852788528079561639280106126434723132039386893707946024938971828180104694825027680699793853495012880194034908689257060113857929095207638758123909115911275315042481439098893053028337478004292713673396060314243682569822185685592087555449304572155372068866595710902055321786460973949698644723236947726000007727746258266809571043487414609682061722797762653054086893077707768341507756268127356985302345955985482963237526003508992408237108317083276323906040474225141132240850613832175066638328531753744521158669812565455793897232418444356253799365580121283692925249235067500320744709062512492166196744057747822329137250870094909627909970480119586090165612770232952619730979421295839831294450224631812526628288337037121066972124984413140153928672201614689818798282237966686744394659729191046194699376218019473751755953878080502318295234068542123050907302268526541647114114621241019380795973308819526162709573606104755289585190821758148851313016243998457077478489504404770539784036874085379078621493579239393326445114105757078425297726191441138416175198903481516006659209789442200155605563046544257011643014603675627349883404607679861080674092387951479561947386267633882749445027577067515936119857417946917419700265156909135811508003917428083201226997920971333723225192656243898059696938886459016403960502168816779861603013184401180981445800651350650782207260203858645344042183706273919459297398240818336017470163368079509493548451822661936120256654854350079396766208721897970506365668288556566769742754877101382622551326725254264810576462341974041594260799957668401780271474754573750827009076296551453583124133359233582707169935790973467979174885951317654816194501043960022722800089085166688326016863171670114169068316187422717217292004191642360370407617485489340222084189845855045164351312772737517223940533321299014938741191798872358461016221198305129719948347232096029440960860328889462222671093046822907873700213250727743578387631694075870919298971259257995608972383649544691713034084579671230162320723356330076667343307610866305911773566416237190493190643601175828068191992415361137047598354205476199092660179269672387111646001800980939324612703657295446504312585594957335021838819066265737875143574470052752597800982182210779420741900606569834028350987401705694973672727502104902047704363444151330009457445518146069511016776959304102339901159860783746925393231148338204538540452629410238002768917051531318863052583908409416508642431993851987266807934737853911842301296097187497195938980873129218703369709297063774510959877914072725012924592513011490214017525364017070317562372488896610659952368468271882836546530627655220130161558835218583354374311179059070349242472842092753622894169765272096691598197486994430793815748688905636085531800000175052913212946561063209204505419431332070341381296577418759786184246767844848390029659931866612328847670237899157639066478570589196901558716582955789535876461040191260082075949579720408956549499332176849782833497441033015913316566464315104675450515943498204906802511780608252798764931041574879298536802707541569007310471119739297917587126103591151986290405721615081882670456954201114837910509045160338964575831021859077328775648921974297508291897627874370166488223909826630908393475404528508478273904055267522373027373337451592079456471271239590692522312949741540384249937478362303845332915843479190445533091440183101208055038082925128239939932233881734495760581158985496095606764457962745505527687490955070410332265538007886036185105790692068727844269261409704024800609499309501829948898302913085237285563007592101223225997272880173135720116904289200226552406320206622104018010682622002599186774451222757675448904909076334649003889253498319311333154773287794546886008718790474955666152093880939222502003420314746062667359154642701257639652189761336558651482879667965908341166604067991818424861260835392015597145391652430572231352535481360976687335818463245067029037976092736876856996048698073096932412146490614862706380765154857332000840196737298957108061931744781034026763690472249254789342879661435908385710101910610519082470298079742680552880215019506287260636785574604218001967717299501043759637550421523886286067289582958873300349475716525579681084803492128840985920316989513302706926860305842635422793662858884626601494812105436871850103564150413297900311438166218561022423307654236570826869688898465912377465404498760370367938769849872715501107878734086678666398046578663372910711211933844246112410041951496319307618193738700106897232938973425257245673686567751553536078484084431494196504134587908357442431725586663086159319652329332138512207148384674694266247868892672567428051087172843201832328431535578954061647266373094815055140534243159474869040145875978871880235098480609552826162622752731146724066723779641118493113933211701882055202287655289254369609935777898143342013926359355151324202630718050448013730600695229049331871422767063155476131369999730796761181853455426586819252379486297989524841027431125028139320965782008453716400335623717835361626081696337932418948089319487425607538921093555307659496832554983764323007884764444806457968025905594220329740478591415285693035251312630828155665135839980388978368820643504250986014578386730130456473472403955164265728602107863263629821544352402327776442755390863553823115368973245917449421851435509791337254815377555587409773205952054812401756056111050150620096836666455193010719819632124070779593474020230509583341794179866720335219738475396782170110734632636850977171468055605414920958584851896122133769298891101418846640909035445265396323861592555964879271378460990186005376543596731348560098713892467525772043029500061780474859311149748934665050246815072533003412161272576420107546246122303521661564823599533782330367761812726494378695506662978586080317984675975167317222251874390139786889121832387054564361551140862685434150656659663677166723993887662193486208351904892169264040341097190438918863082224311774700216904624110568172958123684427620490470997934337618116134314470745362724337138942931054726394319871155271817700867374061644501870587251693072291035460574872072551173045587998622317679288733878199976526975529098102823355426561146130063248424066421223023614251322376055887714049220203187494699708906092898215835166166505926212749279597867603996313911886384229313540212512541701918112074203129518540009383245053252917050800084162902307137814612642722038851865034060815528663946132331099386006534459069207141988049606176154853748002586154637386050036101595948733318282782522630005496135624655287714983315287586837017715368504242105367227404472194149526522858985245531050472906820759416725726761797371746850015891775759942216706750617295280632093036279939449452369026149539434601042586800566002867853136009699968574846358184788947716514641241798637661966424548338114254075939962923872497025621910039494521615498922416193834300061014342995026800270149013804727084653905940910488659899257153070862337052661177515939807364396922468728365830970903479376582840199716952533147215524121003094016811211694809758730264235481053636486092082183160184799511241381324944020772115192891906337042030495994686462537276050107662806220891036070876227535377218658140047797525957476802290587462149182698754237369570346581417841546523072246996064269275520934289437168329085131325214681402434986331825078141268117640920689191131469721464462625491469006770716497633542838608587185389315816295160296267639581085915540093977786126987875565177136837800729584249202384573423917566308513182715285967266672865754121020604696532906568692372234435591985062773471364225434506925612208961749144380464003544832640912497590707614462935854945721883322888242976795515052823573809576470688702644064609044664366009777894286779407330165514220658987169126479744741771459773701040812109463599677110047458080475997824693942020310941796863390518312547129702334027886996017016715805507292921651554411596355241067028394329953436104183830376566347234482592521721801951920524163531847877916714678810699776880161280531537081713510258802131887385783095637517626684199459230443368855415173592252492956941928103421606356637838272431953217045212028406440726487163920442470850405401162009257364425779028542667682138267889550561987285968805563580858116774423721841632931415885335463692790512094756934657517383627787216977235953341921910078695629787005307955563051896194684427618380104628112144639796085921280143766083890480050997356124642810072773103481154100898634848208776080824492547387746508037878735852455955533339976288586275772112230610414776076140933244874622552736136484806216604926399439587657808067256680280636319681387008067313963933578184533831970920105078847151358500851697325849223901368683140609920886835629169786063784785734271268995342675147164610928036407789253916520585607355555952700396761414460425779086509414014251746035264441703414840422660354437108255765578244923780970237654966091582919051574293721885461114099853019242681178014949016911571974003184968218885134120215121196846386859502506663497278520204264676989074250455856403975261510254981662343904173182380367321999048324486795623891481837160990213753701290783217852436912190687018568962573066192950910625641235116451262751562038992856437489065709535220528370982039234370803312497088010025639478443017056438737642949865271787794472129261443144885190397074641149116096473305465930148678976097158240907037255908237030330780562144219481983207319089579312339795072453507928217057576561239791102087693766544994470257009428993622342656391703387762479020403647685664302234927695631113156399208248646732799833916906815334018843631311657733151107803446575042931419647714822632388853684900369902255260384302460237871855623459963252708240039361204775517237146952991513221672819904541704537669701536937009229015742501988373873867696928666575453622446898367589529534846784888646559778132757070124090293042238283663388198229364712394483639125545432863986816856193089310411792214131732335696310933269821397739412352006453738964081035248262068455029716787889546761585884043652613202359894641264737549659395294424657042356687908775425856874513724155545960041549344701764670870826348857519017085487539673294362596866970764830085378830749025160600498061541061231519667795107328780986393685883012940810364272866602337024223881698262407371266065188635761750507783582996590446448998624978784320083134087904325348737234245273878909073509821540846702055262127596063045220209916617801956354830265711400645887918454788807459629113431516645610136649842428353204679802231017824696142658799796032863981950203781569303916891869791757966422165362627358716891243444213005012266818905808776891526336792384790911504745234814117949342915542899960069797785007466288128298810928887605103895798636175316672154921431573835053580193155152791577334311253912527865357747152597314266706114185817267591009770009308277893615211680855247145733281996284505408023520191891799108472026840218578732999604856608204093697733342579792790399729942583358403876514402170236001259191211358241405272804200341102284363022699429455836010377647677244321552793534539769511339578069837662249361504903704048182436204445117648239711303091467133608617292575212863754185903564992154090973507311150500144823057722641499306720984447539758368646020123139317055795797067520651122186700723358493596322385844086271196999094994334378268214339778527299624537760669302609686276685572551163050543370852145383607436413888185291796334509146144110281700906596101340981532142505930575741314140372073183580683659276442846800759263849634165070195151786427645985499823152583327770243272525027526791311776298234561591534855323121085247916927996738630136971255736433794426744753967795075244944251460712488264224089454483996828993656412495438039133999858201211663278173501898980096348888420701533305615737462634919697634654420858217046195271075536178359243668452267558260795001190704194636700846588372019493404575874199128851828623508491945246747444353270558093647450178137594470409857586384635648533857177609374465856785543467105843926012589001606802557802747248795094210154379817971729561614978498108681559822232022304346181466978986049653517718324026707032295101397106413075011912408015060761020110725199068121856733137453817481706124941763059643160142031134856955936249760752810414117597701467168989998848963690028096675997414552286434703804579033193650598445672746099983042043449785571895818504521686282733779745246889650845874047949732039380329539319103094480167549105506422781829925761616059316592037202484162310533828582381324622365188324116154357243747222809705313979041220615572928176731421115775685761497560991992170007897860078608239570435464752820503728057511589003243016238326749277727105865245220294180947521025684286898153923920796964148460022585904502016306149854291242607157703971869909435921787073819886004623820735236995705369037312035231054231966920390101298772918840051180445371939155976479621925685431631808061460096909894907796522770078131070911614624678920358116492630368931126037538103356249573339033441772290781387907710353144662510571664485232220357856610399717650101406353889360050337032473257754669400244376169037672043728753704625172402015500951690499763019291995157404064950098929075590075571015668176075344887541137775106856151145904459501712536728306450525952236260276738384263493323315549699783056879569143268229884602599252204078156256432018857667779552449556997477161413766481436921950999149132331302101658172115457000723548081278481021103274832641892169317373573789151737772875066904604491179684690103097898896326242704832591719300406880064244460614808853540838701659852243246090490737083740876063498876746533605587743627904287642324332063274502936159267411196698535637736298351384533120984701549123179217168077599051743447526443262244706141659211908339493780627275758051075296422018079336471947105348064016739607913597113352073028467013722971569780231247934651690960459103724543407954487509305575291995525379559066006293540390069650705885872054847235591047307344611599455695988922836966009137196488273284863661093805570858242863145873070296860228438226823977744139990743073314718189223014097504029318858470576327410283735594776934662870409184836408947605342975991507800317941408883251806902545219323169179387403477123013651612514737154954337260734503097269534962070107767405537934676830315826816557299224506663185025144733321299879110730320570845644061328727423908072466470777561402459969091679240573763931475651421704710741735092545432804960531476384057717059696771285626820667018496721512950428252964155602483689391471620654917006996103514308427263433443862831547562327528638972239257223140318019398284628026903758874597752934150723271985185606574142226700477631044248950702057217722391734455702212922869260414061246905999150772106300432895292965789369326562405142363590119064940022501088219942404042667288261499733792681044459133559998520858982907730921083252099437086150010003263011011493820761849034096396980166131726594797734202285497170250412159583519202816431241192963693203313289027643542820161754839309551685940275106141847317978626316870904918118637606701222329685072419917556509372108224399685947896832570313497361494200190927307100698401036164795048330752590787505905405550685167821458175659130114065942597261357698879020219925240778834408920250349532956075471997667639385632965736635022010054143035039020740853796919191244335168979735632947318192068449113229051642369292713940913978190500931219841061712101843431169946346149027477821886853370151068073732037887012311005595524297922630447003502778393936827019393074581745219021793571081097110929675040129308027877901759708930836645469824741337212507389507054004294466467068768602220779927052489652657412188272322043949213970164245421062065307685865253072986662495708637616758549270122069796708024706871365182707213842389041932700061743005944332076029611209961445117242630822017648982745374572982225560396836356923627254506103847611713208628659998001294951314009138477913999848649281910856804356112797831776602142464137321136947141762847088489787240659951888499804050254503777056625557567768391138869355898703680194630116162242444809814537419532902628504865516534119896824585365098134668746612900772993093820995564582703813500155764723068461897694790658508141276943842183023907816014499972321691564768536434002849624623668059454344789606562541149007560618191415270903260671955768391059898364800471208672239580716329369008270832049083630364841277123724947497954762669623597147588599525729051291376307553662106221187714040228659609949361979655510421204287555757696723852952603417246792616561615102471137822571598885131028095133940797639835114770945231625239874191899879769380313202986369170837111691284097787321459135837233653943935370535173699419286043165031742263779657988040168288582167216810008662913649879541569030415191062633935241004650328811059642087499238914930569389084960975673522447839358714383728373243465144947018777787672264082554179143045547270280257358097121383787725468981925535410343684832928710580663777158831837772258374834377035530220309559292367094584319664941137868057367820982537936354841532252466226417863102104391263458813968976630928467810432906268383301266942232941470151390011804875104346158732824039924214192909134915982640153370422590097978043430177690590442450602208216810371310105184018720636649807737665514890822194705972181959933485975122446530407128193275009126600576356124802626602454269123164583951427426169231627109199048372239943784856441096942489231611771253790323723799997243672125199584314311196885594250446941312138205281952361563187262282515236487039431970316463402345187866155090117589448330614050846623057338617551725226468254070163321621094042474364340111395150031347140689101471196592237448524281568868257221106865934815135388334883475229460813211709625833486851678169831441649573216628157407757038544358196395304924820532860876702110065468075896535693128294300907672899114025797342607229207081248481485172112483671441566613381010485457280753221951510139203162195766724087451513984799623341954687227085536967001164383725977590449891540313131309820712416465426203553713837030867208473291870158623549233254449765432673565819046393843507356474137230183553796693570498415659397856321611976133450928307769217097390916363154128361832244626649906742182385802904928200909835640180487804408877808157942359888854089981089149110624297689176783051719182309299302351631567129755193930521847713924195986356454098215730571108546383784838946326850907264927936598726065908101992257437494008914562675284357823441483622628935165887369882073896254297482920384425519247367884955961905083665553697662920564533312699791605598917972452549237441491192092306994746088630087425861542003289623956451088912682509426083032500999543677360901773004408855644254789041614389115178335183358122192848482306030935541045840596411504544472717853313086296325510980146567354969117247111278457054158364683060281478694291693060073097820180803195247006065698278837668687406539432578061865073091067501594740139229907719723604273170794132598292137917989307933758288094319139775780492658716800151762736548700572124535528444774586939290927949498108852739491682234179604166697733149828412048266197899722610094838636133635887313424570718717353827215472741965295001130772142838026328573067544244454943934799056978734098178895521416527258781808964782548452088345475904748379814588195694196955809714915665633014281316657403607158284678381874997077225149482938103369933875559409702609046234240782227880079836610623390235864966541626094096102107408960343999228308997484876160440882309084735450936308685854707444418937397831427979196323843275225522250145498521408565021327761243510212973410547552620280200203845124201905848316775772219564277753660865539413546796414795176638580624999229263300562211670962896073545923418263078960150556160470542403149263537048813019202690299815484971930414294425011341482000830067879741213698329911449305227685072708607969092710876793130088779144187663159612503618707330716090362998515565972936506269399342489266548931839773933220836565277766155840540989708327620704656292253821891766401415912676397905594290481182012243841185183417122718535912932128035884586957842969796293362622924313568241403918002106390954652135441265905237511100086431320516719247689681470139845686655317512319089042022040483931338344178765341318668835844942391416592255084516764527130988863292312148908340287196836706394232547175200352508137284550316566169389800655770414503066734296234564387430885945186520929418627713098562744702693574801776599764337711334072019004947681323923910583423991952984321492929998888715556880710699373888451249367422131348254740343204267672548080880456122321132591505130960801233299102082089167361887605502250294625552632428479009343383784186791359487769025849215957380617189270302177999245155254313285941404907339028359372109254159193331424045302663405869486307949841017130183362448745935929771713243220561675647575735295126535169115410384898863184557195160481679050644518345519304888188449260139848355135189139041812860404502290316699540350163088028948075913058226684123843469214254842647488404643606986237680371408652094116927547769419626959930709534234587001319387763442148292086832482846652979542239457831463284603545854378294780778579107351867368906646101165261563131487684770867803070965607156010013452647300644198141224983334910761424709267624999795529860368432623027619332102996848353302704354166651522549929359138905444669553155393206783524722988351213179197197478861094520688910110649362096803023367687913293138247852849375744364294569313477308791089195473680318482198912404023065433669434404922187935625396872560738728876224753830812243473021743484437038336483836517546141492960065725341509223391915729234594386268984407164986146760067068699886421250596359803104690817877412074625878152575324855577493531795448489258023533140334567882161678262365750706292985624737840969291620800258069341475086692057852224533718451695249911504896537734192257869602648515362040064495331084327843038003870852101871238046816723352713179433701126196896338068214828552768616205716036845086083750359526472026217738483729513143397670673398418219059886891329823206485963958804385695264964127376913948723246303437021414415999985464685819755204926771784760832926922890585876192258309151519972288913436252496860391569183098242114179517385257885626078519844085659464648287316027487201792967490532408750607696632650960860488934528992519963423585668304327679442054070383684085403807730098450409596165830595522511469373421696213211678795233506059101114978322528456191572527302099546567820042493040067000983175740285635371157586299828154683923427669372971411899806490221127576149315569863038829551749054954412919349014681189878258180567234524561533634246882093736756582591837488872603685311563032388071071458239948074432420751907403630120721949201323354917180399134625746065520920826233711611536656506501877900254194547761222142798204946213764179417462403966412431696399912812988623723426165969991359833482361723956098697159275429798199572316379743644509473605678515054325012421798438087483215819745278284385433350268400516582626838469761941045702208477034391017365693786136303822014389873227985528162711889130450955955016687000074855635511704617632381939472713539856518474479675951657476534826779017829198241421145581483714377025543561072324236877769981863272936322627823476055454014331266242670930731434777625462432481132783167033543576965980087015575269950642945620616560745874172103974834879980915532530367565304759829704584362973217370468621951503382886591011125346190558078779019643810475878848215415628222569015735253761335620369972542897109543947202798501296233473227253769490960499155242178079170958789480398135616467387091816143252013676370930402495033920129818958036174577516799099527593727994782005661164544445633868609099049376403408471679019041019128035266744496473750700005335440248032571984181372924117933897272138249193409164040148909251672247780522075707339667505362090952977991228786021219723797505706954496310657289516669283244704690741180404142273124753929223964809338352242843835408604049376909988836037096071059916658971411159501167595786120825072022733448665652321922792325106561510077853969840401343050747569095908598098441067441439171187487187478684564224531293285970850712821735671353863401326750699631393314531016880780839203488708795529012559575763818024619626622937343334346863675397930696881519539025241551810978596474818471854569161784878259590431582576612537037872792853344887668629452400998189874194506142489369064082256026960953135999615456596512314462738949044353029795370632112358793892780600827060274614921641841787338442359943914840648292646342148263537426105529221717605941550439225888370754243507021716559110966343589825456625979933125348997100232551822345245812215853460586934075209105959059560401760303008206053383730880669413821201793780932996633375070884145212831977802738048552841952184040836007351604412463519057422132964304652753271573624831736063431629978186739710896374709960252799863526272088228687664433851111474118423992863412795228530441016289872641825142685829938814280737491734301078410230707932116570195591909153476132955142816725359394731514567862883713230664560590986699496513261743090127803289050760276496210132977418438983112791908112595070339792928000998066181287728787853211510876104982120082994679430798560455591973718315749381517794278088483936981699885161228652343509912984696211844393165564864452402394511877826521150735391514561976635263167670873222669520495332654759168182192125970987777795975341703647760872792264655138177881280496799400282176337798670454835379860468703997090553874753459256586804175728485380789217569014692963658841214961939805020041223644890400375665926002698555957762029132098067078824957098412575356548861948315605091647911494753441796599996111957484790560127142691364288160242365081613308521270633517665844253023612548855494135506731643273797479426685525423575917536036151846231480049041224997430859639294099736493522598278694136654231173594831597706824843946188815832237336559982482726044803757350751527951714463008422272831316683033385765309963219811403729134940772471634398532954756496815916339619539551292661419121132937419849951647665019120462354232969600821480288639802690315126162506779901182420580715205716368210406318873996909593483880666365094815223053510799856276056086601870616278228506938010565162759005919385384606704477474903796119452844661409381182977439228765417072767919084385006665244731123883288697055328317712403939437904993886075300358700513507094503374394854407922082361613195608901306974990114172197718956485434628667018927106332074682979910743681995360026298230620652235924007102499420695868071669113852664487913611126568022103162859396396424000768386456047143684465549263969144846381460085278126089813922154254807449205500775186580083163002188503723045478944250366998587964931326131608456668198952517559954564723750562329804130075526601400477304182214905630796342251314216984641370226135972240830141695859727083584864739580203301922920074354596801731519191551203323506913800172169132185716054072017229127794935683865924175325285163738778035497199232032743336216876446098796102075337690787960452808169514422795113835595155285988294233987640343818678393179318197748932226916306387450047934414967288842352148149684583639697614539361394279976992252762894692723769567900760893464945538550745994226127991303655248192462196459077544235843577085585755670910627027763840831010808459096991137497013116345750586131332524755792906396852533231755534624003276276783733578930401194484477899254290066590229025104828979397413396300400938918327671686921265918027093345949532985236378381285320906325622665332591833650389033069691225261942757357445150286704924186871418901235242419546571394802202119936030934840715136859560775834205457998547988969795214988071504260019808835559966932418547292346528375020078280591793535651536376671101885630830675049288337659815643516137008896198552606923002395745632788656608910396742108732590566136367884597613124438336533358239157433834361471038249626593448044539795255596708352914506626188910918488635588990756410305434238012525717205848663633323588480477134917830599401035454788691467757830519185236439428964369965097097572857067480148329080319117941608763851795153651816366240748627012766275797943515196515160981924311473232346451977484042260487274245517519142357907020079157920557032521382403931779005067638519682526154815662069218815519339951015662629963629698110000289615418812506262159552077761218602133598710422832277211974163763028266427197133151830717574906013994946710956466114688892799341281387298436749358144722253548852179176854879146767736360031721685073248982033064369606107424653846727486132863869577860774177570655581156202349313586395385840802032329286998576037567180618544019530940651916823087881770617658526373532334073595347347554299346939928952180799342752059525376521182349546251034970206452870474948343596066968114667829684884062303601184681677948883215311969405960937143007972102172343082770859825680535560323639268791301866076147519035742239609127516145060986153095052853981890221675957196575192521424060802912001711475750651561846540946074084459489014087845864425429290438680726994936700523419856731691988025855014135590259955526613641090994205297188034620051620548009905525755918619979820821577023584829445302152647952196706253637541537733134553662508878122470706305369620365793525487846565871276830856284740668734706256928533497699100976172754449901127171212851878083489960718887139984333869860797819073454066954558230860672086886248104232337111972299986087381172920952654643830307840203535184377295980299011314923766290260657190073344723209746049122318141666505130945257613016238685371479786847386776938884122814432327190563536776892845349017052558190395601673375271876149948499725199210305493632113765248300551150769081418494084132050923739419845887804943463246881111974027603973769076376574603311118319420308391922320406666710644814271794179406976535617556218900406524861171154723872393273602852535314538424022608968082383253883569871387387266307692305338081052693511064093015593139916373399651537751788402994516170463226604756433458684658677952255947004009377887127924406139036639338377565017507871665092836665206492894155798271589076699933546397476018682705824965459467084924405078350285049050935790976525965713117722494366748605566259782781818259520090757726248263349339774049815958673558347668886089883830118222769453739759226872534903052951349698877253623264976582508700923569228266498955068537738105968542626447247029856265194243567603408700355837574358237571796782194968536001640410743349206899456430796007256077325102816597552827316002833894038322215761324475763204791932619096482148641533056863845690655191705547362973824981426436618202577577130080592620774306832393782211036751139421480337338015884423233534816605635682858539460713226956283538635583236796715249595191204542970867090683821706930643707640161038483511875168510919799243479772574041711376160772704912617225403907109061183267848810112010806013041570747498599552746965810453856185828840032371274255477832218976735129934513571835548097096274897057182969348481845591122513172348933376210430569637849793138247517886093285185541345223316585387897611609014482430972947262528450153129319765457562322506803251726786512478767372721004755093426561088878876828404531015320619203522341186552000855718801124710974787816653506549205913418725286831297364088269088086192545102542953103414001413526431502276361990895102213320978824055303728310307637392956132693705378670082842499538932472892048193742284651528977980457978494379029609728531653404591736090640251090359330610909550081449470655058243156631009830510613290252652958476023595207793733758681708710862822662334308412295175831703475956565588248101729981263876196281358410592893713518689292764391639089706338906777131608107685394958554237505024032017727949840681452967450017839281134356330435254240589671805467062511421666952611194737878584258015744559959607450648974750069109622036453496938406465508354003781715448877178677829732649647068627402499375800440998177936430128599295766698164988295902032601926158057077982792148135358438271704347815272232364232288665190348855570077362035424467713984002835574907937992404693534352950052941095989596559308068819649686801302368905248644352291277644056274363250159138439078247899107111545498570375030715316266521199860297329244767585780106136074263075168697313696212788792169608650956361762846435111103443279532960023722462921384155919884207967376668092002118637469100067954736352350392349463036857061110917273032698589315809913386785567800833951057718137090909607378004506939646837829445462804821037316636243649981286432980645328856668492124754458629588617761493206331694166588116359555025552512783720691550858589628480769528431374356633037747004290457167279408851993796740114923366079596278844614705467746942489233363109689971098607888233586562239371455562605155276804891445638347466800180673845740253319631580839441677569380162536494328032652496125636112181158725378569222193632879112749917419476333733890954723989073093016845157568284648224582939166782937894059484042450214691383739346570605621766458624229649356900212708573321501341183480535926073909325798659382379770187674494763134840967131862820344679411663527036328885600485807859105302324229582308887536797563142985684113010677719933431520364150410478737112007104031515063317996708134316523884425492913876406416880500781881774477060403341776764031930303418313229787663146944386946835766568523129769505436479629617188751625752002407607618282048314314954908554349954946073424990897834384709958371100704648233186074140784694568434730933244688961273492052329434491525293946080557816789311952860094983175702811743823512685892946835564168074877847286228001802689685729089716320094159079749560667975429669829778705011994888883365807632695989775564295333190790921722644108711711731917360074128425642779878411147635963394997684001659352325543665170568211441605621615795317707647812219829299585390472504082979529171545731391625356526222711987149358015292987795463318616869215622220791050968438511364529387258984404081849075609537782421036770458781632361247812466566166170831300272693003481108622817172903103536572081711916359653012720939093893946453018411198289222856792462338065028736416665312372007350236004087313488197894782943476873179385986529810737048786353753305927869899148245637295664486063316610480173955957961039072734992788749249732930129373260599036035366512456878972221692351733078662570258201773643194523719443524035093832077730036463518663158304645483116724811579548022571191895737355491505896988643308147305071028252438421060021099221301402328697705302668997395505098656712932579490846174260039261014709424722097522414561957503415604986466738908657726051499431368961679151587453981109179235545189325563224166440561392907113582346621676327744989939338902896736292719636987354859984701046754388658061306059488567099453563565893990782703571189137469219504374563630748599199404875811192214816836836406445606488911069871760094007904663473012008752573572053485085789677048605100987332571064447435384996623779340289943062707848853937261048302003923898070797254371378172011708659736065519580971715734363826490946577296111675575473685658377228480791231545170269695215708343706187636961718348955738160899571683848039766013291924110692846530026868264759159559267060666659794406417741006979098763501166015457420146201445582059559747234408838005299780596550870068507438321327467867716355538826851682555995626172893161588043690147149492501329796983714391918534539832864505722728720030844574496644740193118731138887446618189566853275380404394767857734621295218097901678027610473560551141569050639152964703541393135075441235263622725128080720755089607435596014033199360628473161964182581881790870535656883431783335840083469770291332764637101165822452827200084386414218004613253781378342030342556632653702588005656373918498376598188508709037958872472634108725535082863781168937738776406746231238207069348404099027019837838979993250989209894801002805776283108180204321100903390273137228938920311889465648914177924491492147834226852228557277262398927532431513493380828486928746763188929910479557461361533212427801982355051620984311733025851866792149004409578790218939595708651487777775735044875055616864308396722440268143120796889289714914167365349668699762539400301428398480774023950526249423685547717549916868872156869727463169406708297980209892567062174852938551455336201693686013356460725231750533776136098310356344419835916627384510503942360816078761119330024048428679341021477388383043961649500484085987216616439035775944769200452002274001981629629542167527747266063548171579098584551901438985819108778852567298392738590075864872914402530951683939758867949080087958760644041216912537084547814015140194085278363006439574651110774716067837546124217242404382972069857953006380041568223104311178035598630520765142978823891487821688137415803647696006428391876976463432587391963903264212453835038676882608093847753037417444583918236723214635376520183194568179533979844228906366366554603936929952823060639483554894096665444314134251568373093511133044303231220254871902644727078185734197891874075826949956834440717918253288280892036283747297496058271292787565975023486477977407333728076240132907305789393465042618920281744826758446306598366112762362710615869431363978769362512669168088015186282853876278195586182292746358002815357517817926456735577785388355908435238534415867071348459464186157126170386375558558293400821703702840532246019028226303735925223935928035234725511737115784860113314378562582169215277292361497059731856890364681038473365776728689907744241357561813044643383318302599075038413311479750301836942521299772694458346169798418194146019002098396226627850862985883656670710789048244860694141488898212885779741345665325992354177313194261769135545789039562125045475342260857495042014730458275943950706996293912993000366495509030131092622964337158876916673705487221417024611793152545200196549794281077013991175290337266051551850761163042380189716049865407680332250291354005327943847989198087178595076075494375728637743357010001316057546815210001552829894155824247661241968799017309117691641943726520383215886087933748319994097194986136724349241089101171063515857361632967765784199549693591989212134115972256260369548146262282345694841641409079942226985503807133763793949334523856013132364037167206747851438685483563149919734757560642457632342109348561722633172270121753241990251262491882482911018652670164926641119052756835882337466960558924289385960625364647908071594423905450217095511833255562168002833782192877356030358371744145904693632782795631419695609645692954794248118557725257560742747416696055056568953743756500276642206453258005941435007930417606397066894827354635415142107818963295367915700925735123528034118291058124108597784299214473867498916064135409557847332766990511854819565007950833008055955472015042829442534365369155112113348047870743267613703961308104645152499954656788476621956130794046797989546726587191968505298015820334033013798726656562725195771945158129985825601113510641994283082824947402110150312502837672323387017181335538010665772104813147174030097545045792838184294975362785148160449871108443032866750230831097386127103982118591761139840380361427768083822420247983776565362528937158913524186082183984803820038898469481167557403993614553883027212719893443257447382480268025885040461360869986093492351575180264864381698427276169591593828169542126486221516897294348912211245319227200868581261099614363155845586442874652708286220449172218293963332473431084937442498725172656493489615347251310123030849797096882473433103722676847741645709206456427430478552625032387932455087397765713270617745403960975228240788001270558705825478900447703748106952007575389237387716492163961184960977387981770989255376630146321833995332245525544358020103447126352957723595563688508470307878898264180646664642480123113000805090772356428068155420642503634638847025985875595255072370270238707202157094153730783814968205785992126535273989757257157005946334035223106289890532510840032167930311099033840961026617556988146325646750272413161721876052147075878192567055112575962685681524011595839174817280105723501959428755005933690220408372996431916460968709343996132706903793597956619594763770795777471342244935906773378445782292766367778068805661206687893410320364042171438024609606148075864984831140554432921770863476887006608003463719766265637397238077994948859138454383640060012384344219188264820046849384703661753382543095563039764085787722275962568515022176231024826060323913962969145988880977685154665727961992824087323619239405862110158455979755691963502788278428787909637721680375682982531323378104441177273502689459443995498597845763765848799091944824167953514957850395887983249646252497610223058662953349787824785561207318171931830583908853260162283478520473117170852459710364577762710513931809168993550313026096429514159787147891307854370353252519075105054207055915103475641453890637247436420265787897017338582999301750945375149846435676249141880188796710821127842323660451526413553397639630969929925281244575579374221137195199516708470384268444235306254160033886966758012555994378974257258873646812150482859693567251959106893944264591146301533814320959460923797783828715433914296154065320689098847006134292416231943687124514974022511990294380672384829035260101820265474476582727613813968646786360535373366345558089816382403394404067600692441084333018748758084205893873191266102789421274105771229992222763460005569198593863332742064623247551549628347148330180524363220123832233705894908029165659420072041470449002802846766207103213683687736131631314695067631751573245908178019797271849553417506270369100377225538128894356507695596479071876073362016371106528071404679542340406594647084864355831321021951184713196997925924594926875178577893363982792665149991449649248713965234535339789782849851001240199635116585464843255141621006007845205778170715886542164931292788717198620199141081377018038173590823487053692726514213482178545462713848096801347155443710616207559302470117423863752357468880275094033987563800067270451009850532722499118885498142872135681854273281378858040279835763317140453167470785317955080578047382109528700475557721604907274005609593048575640011214161343222789296996044687311230563813129948149367914930644106548872854630132220319121260379780085629614579282142870387920191991629399417533896638713710893416571274395683790098103556214990861725561406295829357755052116510986630890388731009446028945842587234990806903731230215948904185048218177613139879258119933070269273006000858349521337954431158652424143811471912366927466531271452541063848069559693606303752462937277273307550990169046056809260423704709298259601891876334027939029487012265420738591466073350870429609082404995651876098919669552034114970435331180195643404009199693552522702112439176567467430888044258494013123660451560114334449147716070995312007339860205832578105103675095054146888204760518607928567218951846146568828771547465850527139883708378773454149516605746288934118963994858416285913449107503110663789114988968521688540358042460043846716301866252014630591440512770761508144185786955875115911611278688248807917650414493274637595401532251528381365817488378810335812170013027648440738914922951159322298569146422184284838633572171188907514660681832195385588619599837931374770664702327364284972803054068390997192022171198193059001895423782897700902755733284167023364231849083591236439059206934801165514955034811926172370114438585520582542160469962726497786066047678796076402578069652186956131447517341898957640949372949939800253678128912458798199771362384276397762782776030629728577424155665021265666045790449498910835851265596189547492003323141916422648346724706253927342288454184579263973648136493764000322732707233107249775278594312815621031040251706670374656416791681448959344918041404333351432122362069791633573281499081087932503541387338962002011042806853189900133004656998830216603223489083630405363306650632982480739015144729065882345340773972563000799211560205210242637941406412555617570093032804829896222253825160686658028997274333785265628174675390479688329754100800028647010283577583716700821994978823174144112970467549468682452649082748238526239654575687998023546366680560750563120868303236649994633468938495305229683855989293130795950847173847677451020875710768421208291234646167525856546295180466935820994083604739981338512664662711155312319406873400163355138375703948476581962398775050407040819105962645403400888087785931542216488709215980180370063076268908679407762887451705921551333317895577034888946139410164309856886937418867930447313901592606240612622467014481629942473619038897823199197112620159683521108252133842492671046744813071998384850147726925611883888137701433703292527047770292201768624214386719835563671214670774487881271165662725152618691873578547773696182704428089174778969195977378151671910718627974243007635612866799289256455283522383358696297596968466697877581126296795942834746137402808086567291978364004603281941605978345103091551630253938449380443047771561672707646391833026218304280046014553683803361342398625467169426525999094798615909468123794131930180435284517807818361918270776433642681235070715404396383702135092114902380040352399453880608912793539188757023527069715524197868250733293876023141074819082005804382714343453888427178712327387658000443175672244480928757184739284809838288478862768856099462308252831305064325790220916996201350801420409756779096726442065298101508828911754749212035012759511944380778660424398273382565729704939778165535593456753035426228467933420198894248264878503600192872905327858885874843112197429431301777568658689038009120144266335230405118125128049675947712174187121322310634514087153503016350953936328255520201949142168553948785424785850266748791650543503757025156280756005482099562974502191484248692164256228226287237149825516922178602937385918433377654599253194366937000004549435817807977621455955403202146412498406781970600815115258478055234316284233865776233542234125201314181019366250230694454610161410623968114681989069816361497221312700811530436637543904341403172911022083274437477266825927047834571997581505925490305699665772784049170556311367031299811471992632227206240852127545824759095220411247946996879377970755307952240365688531751973218825731327682907742674130442942617581847509507411049509468998967276376782489812170652812197032073471517334263817892353465633848158057070020418609148892251044442758441872215228558919699290220360432890672969340340088257522836437999790553991851659801240675567430981908239300283324702093601895438485953141285565053714655005537375580912966398670427389578978125096333034348475324836825768736896574147763349401914532982096499916903416214585211897225428831229697901120982290828524818734463681657775014669382808654097793891573093031877581644459534060122426737144639444778617593982857497245336618990402186633883418451424738915124789729622777686877789510809326415167721458853206879930935444245125313836323615977281966953245101257824309783299446302418742422370545721708540120832363332262518085275486343406303727170434056933933240387275914196208852251896252370193627385552049274727836744610336001700221211666018115128847051854284427336121154483864368154251520181551025088142592062061195989125475737390272290099681286742372939802826817077415210946957286938393382413963160694168155281559765757143942626463209089949119873023320888422512615517666274617427587377980656944906705206082896928319190713484325705219213013469057276858046989614092070427458646501195620400734049789467027520078598547300358190534821021800626300554903604858682719702553283413764975075279457317433655500622119423899952774401240269699855194566432357922287259666591869788486153946870753722425201036958601060075924620979006207288490513035074789979314734329192214319719785497944341784183584023862041855101801190937777990891218663463265365280770303260050614873938415304736301161906584358284777661462398345491753532925059471221145283634737403978604302995143424411295443949235042128391419915539986111156267817377425808496554480034013221035487617461630190581438999195593642945040527513462459302554969400276074933930666278291443705741980284089329135933819699892603339589186843026629918537577824057560224731587455697700869736732275766170670071383550552303676382986460231399716505664641376767261434089632707402800894667578473131167644255371432037101276710156010254161478359609831915508821217200062263390482873981566928464772114834947533754449536652307947050192097472509109365855323470186819445533784051582084172837676134479057421927040647815908132249224636904593040076697389724698348621339456195175663357946017503522598876070610818352318729704443992483612524116430433999447883001732353441676549600320234017463767663139415918688280939905384486728711586602644058869422339770654322766572022707764359414535719375995080158959511388590553419938268767459173689623538781865489174960434470953345600256572454198035866297900358773311767596266792260515912396118596128088490612134820894028463756716446395905344476786051159216500470334447597456110577574852160764610747132182641724410844215828189984901314642030746917537747314618876261655963514494794060308705547534484355294212085626530991042989751387785260884194273376647910417584131911188771586009934401393203705474355093764897165419397165912706885426804255381797277340295893405610762609265668590221967573579391926374345042462932055083042527292233738040279174299786457829683954933918683489757351694690995498099112349711396661350039151019632176692931782736194013004700735377032623764541081761584224873031922389923012033867848621072050995768613261121085009992416987283774225161620668425150784606228376188859123475468129185655363958980253610719063136943625259310631957753035190402924815916470451472972880843027503645492379804725578909882345605897103748090396539373671958444752873881832656561757430552094238647649694546016992745728804101593042448922377912452117700828449287827204670176052485389248194751171463909804620172749708021580349531790740975442913110655213979475804316807372872147445262631419239773049828355013211189812374758599192335944285477979069657235716852758555042102215905345011938974459558557484338306447511482845402373273347706050735071479030995290163942691841501033219785402397470470623384537625054501184307890975605763927251149011880488416841235484445198380333282084721355237385124171536029612325879174718135459677207602795293723397396700028777348627383396692047072877580384222437332212070534081016879448369173024819772877551072540288914108980547682773021027263483899201581602127369038891603639466768469872389539412488917308018928235116346290189487911017979240348973377489269026792712533950439067662966466503450817266781197372684049818945267342097185632790859258450305230603705068365426354706265029614099070062398711665900726792780262361326186494797152337611339881776041514171454113817468639303100546043457815069883262861163491814749455354533256169154101709211390972486261015381776425917442637753482278640333781797913542961957709512814518061346001306728333452480813069225553364465881823006612274414396988233843276913541538164241591961409004572525235316703479865549942309750452218902615774189665845112370945449327798243281633266880325051721579490453603299404780408005809178818461355265177206207857281635563506136633346428831832679413397625110372047121909577565080417202341401039757501223781624750649793359262155336746013504701671652575050103423897205674625922659640976952294177480790017810363374672161773066425875736279099606666117813125679960062876523389488471986147233520275895573761030725519887135893121143926577185636059574756827391588969232322494193462967257019699239211494258448005414399698434151242666836829010979438308366139071669193201672267360269037088273789768743057183366907717539170779848309689111036486281095049155813213527978782664344643524546511240413627984977555256768212565426800469616723514073234434646881683455073935089835905746906177304892450351719738919996170824453774213895103493185772860236482429782164273474984326628102889204154183631674177975386737778831624984268815647900597086774218448634139370673655737404447747087654669569949451877554519828540779041981675337467510085525420571680563876308969205072192072365384770291982409441411963120168155996320395297549323280398661152590063768981766130528941503471137904913661691680755605777354856545994906821236949608895702292400330692262928721259760997755143350039902231580230548571710676723084401816468505645346432711856510215057812596553655065241422135823590770500214754200212342466450022931500001340148748238288126397293760137373674567388587086781260139842657558969722583575066621559611350639187234708507163674690668461293426191378886397779508362586978286818784063990928543969651951000875668103982902307259937787199664087547826403647142138511610937008480534438099204705364300065462534168875525904342570988868792629943690344655378946326802105569529976344368390804512154348939928163575968159047776179184156960391569046816039631832850645772591011508836792726736969395146731705074598862110472200796064912779509389507137185804049648581190954803730035803612148026225369662097873723633186332018603066581235449205053366598792510054972339836539086802926627972711000475525673582351725316244406219777186335040589522916876699253629038790882916403653993663166500175501616697690362991577088011913338324825777841362170361906520810231665015336568068346050939418190889369434854880362277203213491370026039096734486669549213102742259547439615682428962030226416310493378046005390144828854705947387787404123506212671278048371613972060736294470988098754920439234637869465234528056377401993284339948687782000818068544309588223735952069245752900243907828066149280728078257235397140720922429853056034439560210714600166019601037465346834358299870866856316717963777355432160888216392618010250844797235806682642057580245940649070670256696483272689231701431766037576206348248671503327053319908131128960524542689882169561454759215999450967525719747749394684595315858164906353009134858826597448987977469437993937556389497584248712997138354287633979246462217830579089869263692880450892356218356898470107638101114584912652910696375825333989989176300194673956079177445535318279401384536978223027760068452220187318306095395975564431827162922564587957541214463422165125507815127518511435988836907091093303491654296019488475194350128935357833167719975006446187888537164155440020942920457406274611182091796865539058702944128070611947332109383610676879956704383987076480010301094447674183600434019496069784504910150696396743237811272147077037980306305996356898956877152422642756699982106861920787210341387264021764824802639369164550818994534978202360680027631171194419705155116247029145970483563105689255449695702382174720745642035626013798297299912300664932207569928440760654648419135332695508802877318471410417488245009514429479892006851749166434913200698854078997292947945219163014666387494330824462728551775004589035529678327956280768881324962403120209105049813557605800917093561708853044332808693612389986024376625766433898564643500247759887457360703685865822619969895265695502332674214262213551135721631958969171050659286314649745348271845921559573674696136424443343974968948008208757799834889718183697445589865747480125368060658149846372813456938594678495309627704148481247892272277532901818586740585074245838989319814933370837544341910202817866629636628727493457249327419902072330262032322348057648154272426263681731636554480787791687461495834725428190355119742465946304224482170016406033614081244342527101453827425337148575306704648416225520368281353982740414012518260012514647788295212454159163159772825934378286516897104102259583644692125697930062426858127291534599491261910285157120400086484877826845516434739219334541562954112481458638650519904238645428901597318566518626815586381734024109114140361120272503171920838393154577880218908978780489379459220216446465683509111766678315449200458058175537389486730644031345018804065046265763897068977607305348015152694261682721400959569176182961782448247540892761857074252309209845185077246606486461147085761225951592411888984444554320131821007685960509784432487129981555066778377864762554788685833391656419821425799297478528033968981339178574770459906521502721068879825461540523218145690574203209832743372290682356386133067569099877440696215477434113209904805619386786159590947025360898358368313916719105688720492493024034805354977599141558665672475345380437017721993237948130029083378492444531351446318753662283816471451946269735212984930650884701283986659710941967805437319867870452857503946946552940879784620172215267789070574141701597685966190618782577507482927276953548072145129137593961818599018738753153900875196230015657554485152716673996098370135834129044718896895372645389880859016590498844483627400823287861291251169790814988375269735101919650050384096563147016408359460379057521471019598862246503633975431652393851714473631483582036156222379624094871118859446093262069578708846779938125965383026173282683995024191137306947103713206530364793301786873080817181566295039848750537841936989151610335216427706869948341841967993604154524175006534346555473043783420416308520964049674561779319104862494580163319039781068638754387026888753500070294089229151727521852641130750526166294373468276071009061191302033693294029104842905951985553435204760532105378052585474863509339347880695318720841345362618162619143149426399176916624826834350984033482733304553239366730125003640452626829315863605757237180475913328511581346383992528207932485728888344739359165689343721457277394496166564702473454964552557425225524261611395664379878467264933878158993002414398842675074604933810307320736216890137935630972928367836179492392425092730401766306098326981911876510512203822125851073586849592296943459351415764628897794512645397032195776304524643164233902991137406689469404029875308706312602115475279338888880019222762133118242499434176102795580409523874844242752479473459352847311959811729174728611566440704688268353570990931149337271233348637782259138590881063926523767408949765652668108612108079235043370023891581842677028495465293718398804981437674365037111475788724150061325220120150471185334847452600408972169946444825367724153351344839266715898028099241260141040170978498032815282324561624320557256646450296570462549296828521690667127880381337306835914320234830686919109090377024753664232726017394907459771853091089773871349140662136567383893871848845662661397097948248208811532421911175665406389048795758010341411887121351618163239150606598977000143051716429011498725263335570214144936321567954162061210877327048991903297655153740757927141964278044113482534055261367537668636712200311919524160023009085421985594455889831854635458024510689927646998580822921607953561406566692401614726198004562226128795483127249775379684216952970613103878112556494218421057352499134123378461919597920336973411628945372707143609339060748493397008626943969060462953673105337554702139211414661697654635379825061896400338363563578835134966671383830973954141522504587081750505115045868920346101062766692584914306419087992022565840063151247748026801994606619255023404219314819267453433001783164850967128675234766222703538948948972432479308867355425614378800306105814081588254687766237770751468566650568609200529543484192209947750969803671654782024487986549078463216571584698936408626815889846798495367523897313084100856300168460603056307168165760856928868498293828690376696323007601921399693447198161566865027236076422728081479778317700321918828720306479444149580737589960406965477134664630049635158141291325637251220184680921456302940360706640420302291939149575598895953697063925497066546585823145043566655987962287992485218425247146114396172672986657047848983962503452516092415222302917461104833549223936674877296300951660877505811964888441430507609794508257321748209680577705246535391277796797129434799421914681990736756571690168293198396225650140746259648606166688639672599448555454249775004537235121263556798685983278133833184975979871604115035135112238934116532400503965622850844560092806898919408297326648002662104537406992119503804809467605418868496313908607023333528172072431646649176627787424448550168231310962420303027939357660248936077931566354929555871492510811267045447345199959691771351545150934426486835282080448797193993401323996387987717143527491020152060963428019443991839955048566466094678743740325225034900376929335062822332500896919791450221331263369313936038229444409010842389861621604800619371628685147080938685771262001069440668680231953630915253413403350322365627897777652257779602817946108253425172835378578609127066303305342781770554041339043190990175128208619087566973493365081142241779819649616205644059902978034547422437467096494372089542726573726753530988503677069448961610513118546788952431883892809142385437305455658979427073625890218270942171888289258974690056795120681705884891242193140575519983488220271045342269244755176699567969919646568634021154409386194614033324601977731872499021187970682258094369565545139209312859966660236310607966349707366081206746076957257941838609987620534996411595341653973698351489615932296810986394005064906437463076370133212390274235616041226340597125468410264676359909959102089462776905222271125259399700534651664741093653903935686541117139152773072812240270507390961181256290311264446845095678754418148650011451052817746404580289225308599938122777127701322568522218743535241024910566057521534204000416309755292475461728664480052861973395668575983789579662873638669011971308735841929638456636555904212628334872216533258928742336995688290288483634599653880901184754503249414444682955305296540628381914785670779052055420496495976698302198814063729833950928339145071700896094673492539860158649721967498213506536832504680661054833030190741877444971272886986497076637449144185725158433878747780927353115004232983216709390629333754826264278764201664363981302825918763976463924097164643144972763722883488304579127830612877592215349075396114358793014807655938673311867637691078503630248969446555791193965488726219710156090788249642176384249554493363297864449166819016723482986988425492935981186338428257105096818046826818376524670050549254511646164268815596825105116183952132155970281006401981899484124252177444339827484442023921931705890456804216038372510922937340667147232098207856954021799956978266344955505184560199377669277117662584573544191410702197752321224206686507539253016331452360726165025743168637747248366050114545141120216828305675535171161380852158876880325957905480131913765921092839651688185723112239785995598109279135354952016523454253448001362681507059526215578169020331404417878083586069150254684151324832708226649704403303466303750694851607680438475726687299823214397171780965851030548130478171632399693775287873852898758577331063095449724865416654841222794659765176959955758628624670339146601984131502716555777684868983069886464237055428238542035505581123718914196478968836889792555196104725181484459051695106852205340209549895535696969614478031643056033399607925765936124829166239088577358688181755348714025931126890785123245169570400647903488689680828612691754099029983918374530789977601302845079238920110489697515902560510078085483647323456384966771497305674756440478273096491163330245776783152182870076487034971151077239633354123878612429734473193630593258383566029718367945144729282650086663401347059538658884557395663670590210712299032756895636612397896252968309538990996324017768209418339380500724410961266795712791262549692472360676351156094543333946567867989971856536490483045975147958017767105094138526566262347958762315823366436953614857866256738230149830364347713106753304902386911000037912222951538577720370820955526236479998739336135225815231804530364734240765381861858318499366191416844530033848369825261065069372519482977080671518572244118393105168946325893292495949799652388551012309532707520600167989199735495573595694523956413816453201320940333788324325181387129053292938299862634686468256110467260373984905561829689954157773863410883352573013118257681700092394905396115440554683696619560837314179785860972935259477526050043503448193077051557466200922121238388583495174733809322064485957504500966290892870329553946593472999474694891167519732437512202483302803772074021821541043642009611962636224609145556043876279708205391376012920688041712622866446091413368167539020169555647351854050070992848283821191307588075761399700470613354186020435233520044665536343264050788482045757362047317417251601201347278047301258389534161934552893616509736637726488231993047802021984361054259119182770527927522774795336502977799222468941104320601125344733680297049456498429387054724401170437334722063531062340292408608538373981477798471327574046382311033818718229227842581976173800722484852231984046529363402955914350800714524613548698610619489623271137159033886254888992614606349644518873567178781265660736283302433412931900746870343305164609263423149881983393511646330964373690129313117065361294289637183491208609775655785654998902170125082068788988467561936761405156785527366981923872282206141352806132818869215393887904444148603520126711378298281536805140029636014677090499409759763532374989289526425562902350250131723649313391756574693187514481864610711595866122731582944782182377241003679267971015481117633747807135993566515469437885655314370504078989365253188997345757231866882531323843888282715033869016618520658612635747219022742166567892646478275273225142412346004614663273910256279453410144873350938476660283625930027790020051633407507818557613860599803660738202425264619200092724151492874392906107896014352458798188693590706304268879077891605798004721262499745326270252764050997533479239331276184049236384587941628571350641535861637780410561804249238003738723282790544097464067432213667826040159238331466297496820904517570671037038682072709752854374502333899225473080344651369479769263486476883155541731116722024868745752399947014926086538097572981736147726236915187853581189027591445946048782282504968937504416389628584036428121624386748529913407688274519636528630416425319468249121034775859852547102117817076316937285967281544017696389639823841658354402738617369334371233890236718761605572722812951497746556445883445243988064699426625751278948264920143653836441779522025419161187576685637075860192785844350887470514497578986518131944159647527883523268731685642328618697751388135509957440248465210891968854811150009591679449736172246633905786745293323699321210056265750362460445097899606226067189755602945612099315485980362200399910721602498657356559261876199442663622093217269623672157448654501771331570444965907816119095797114964245820983037260481690741503356680994332080555843129622303965471543574015996542813370781483814628041420154160880275354043369024401358006204388816231731220704090577335432040888738258846656812488400151342449700500969767461062868417008803413779465901897675325648241847348444293410616191558231863508912816845305292790463858542468807654925218540445373684644880978789061422151540634564924687247190095623813363102539948507521877874417746763771759886669101027246804737593111326751554387558203424858878154306803482620221816468979593422246701436911718687271411845179170951585238863955294312890244027100816601634511559988536083898057663531721686592738905837846854245888333909368910197202161585214858632030268544507440121720551380819248027697474529083538520229277320105115828618363671842503088731688158315193870582480925488789307457724143788531007087760852253660811827223652874553090246755093346041119449983593500239815976343895785375098539383363170258177377934951483285588811602888237470225520508371799665472042777125161666986574615171919783073152136239782608891492415927130783863392012254256764552853277606000285788533321288161414683908296456421711306290528347444859908670794048443107319739307606133937087641904305516282101635108634257156039361039339636754520110232430287260479664225263626710937176135167765724237574071940747336679913921065055684372996880492232214358037633383436687751306802371448438220777671516104037482160237813468591562080940306582622994207741967879215592264056209124921068956616798039265441577227267443798924380867814732647948972876774671600773707608313885155980428761879976740535218685738765745815153619115267000905148650412650414050213700240985630460503977140992642999234674899158720373631456273558738246374763228878240855252441642187269835118996815374481537798266962259185937195863520341023253975359037648030915118243036036988352842186639001213938940951760790001513016975436068345994702621306625223394498709327344815096617143425814288901271040220221790845072289108277685490311066418913975751904870221007557781019580128513591483476353035236605190170508174398837801290488101573295317163291648327712605253125790589702889296583603102451270848742645848356952540158963861465491432717631309908391660035355061474628780217091329621758787642588391570514453402884168501962812077617834866162796130955550053414324510475725537813041722325124422296739838520033486721698116657886803875250418119623891986076642904612884880953257956806021395278629217739071841392742897362162149859303515446924967883039990326063948792678491980369817393738530995425257759331074517638448500285542903032235749867978254751932733400366071166969144529898041309978266771774974746208039060737759838882443066799933614867892759427024064761429045614699614724760540546087942934180181067144994793867006333939609290973856090065810867324053473561510278856643082625803276565995315259467638763872460103944357045519707699257016076660354935163376365114349062647534867132544345449503419220903242044377232667969091939815303792714778838114198072639710600947608485594416342731648812130506244106570289280671136807373244500949432723961701219240567077153877972612109972708165415128317061903969153852987966173075614433378737103077470539157397064814280990549040008553696260143290756358323687196721880567370234507812833167644158306776300666870201305667756507382789249448225170430241589956595300420229189820788978227037197963181657143175135348179692775656420008955194664660135755407373137740015224234547167878424231674304620958161946081994144978873987025516939486595056481001416450467226444027620910527291710193490963816614671457148936365829073510056388314297393327802324038462591800293125084409286055727246730069773428027715715407758262805202299320335732021978871804386421445631113470413980463748462162542926331338066243522993187664845277174585877109053326990496450093756859674914199914514758027803644098021112514036031456355015068684136877881028651204407506114590013627673961192240501863758896248045837933416747645966920982623523150515108145845200082872648882579837926233761002739101927731798691730129771996581577159060467306797643256604444568605673538030044082870246253969051699658092869020903844730620235689453347874975784188895075291981987496605904741089038789245025752459416945412108587867724557897967561892333166796981207284816472524548371560781667447665292365321080153415457584170889877889058296804703669841018414965865469467887385075384961837461142010069808336099043302039417305657132498166449801252297601616726296310884364181902604175747722835847724244123854114100498911765085546003020877029177709148580603187205393131870056564673482784826429668639701990036962291390253835121967365945839671085964799048509466108696866494460897701447698900761251560418977630573291187190345343137496749095786365043596205602010875970053435680525836750514068577329165897330662754616389699786078946306178810572635458319246166462413393631033491908413264102057105231609453051783460796353743764044412840563948563334563183582719826365738962705806290669552976373835771841252058493834571041899922061196546734073221090544406662074284627714587709111135402300293206337711655865335801739206634673353086155139213923947561614491297097918391142118779820118570804893555746591334625880127882807990301294825889992854937111842906675536708722740548085006111493987647208099597691100765531673541891660681314683459187029187841245310759458759726138851555651127326704834943673981977207214207363082996830520753302521643300950962583871083529220013296014724628564394897951295417331030244042770341281531122130782129879019370632249003111131457982963943334190558677822480053346368777331103092053999595052329135280870556197502457669231589714033318720574619583059036018679417179923259419457290136130290601171082184347370536452488068085922305591100211450833349094534949532552333142820264057665291329221502967678014298991625174513670934929394278393367365589013086243161699095607228094207000597142440924790434175650014350131301031473192161425622938520849049382240605051291905015850045604986833804137232346680697967764123363141237919135836203194228226894139876932061880694145195482225042029240152059856837533660328040683628654630034640230698598723036541631762570345495833265704045585339535165010057853635528023507880515698873535843100098594540954012804246412694197128468801271167701558609678144238140977544201596060971429473682529980710529923418943616921104749193629361583234832162794779235032551791764115671735935310981390535326571874339342413034258610857311451136889630492623144401414990321777958222974947900944473458157367870150053021270967577075550921022517276387641461280026311381931388417134236808838586875087834782444273578482286570116562839013839019316362983957964508326256355528196893282901264913157079158445019311006445779790475084955774477214447741720321781675199037535506689951441992436482320400982096710944637359559557737031751468050654487737226443645175704969426863287980274806085192248530442753067310262929096337482129807162124475199353003196510659888413588561308125757933995225870356394982067088181740679098166123129440028326218205227125594052272692694767200624729233127735354996112754151315670704039320169121108139767542535734101176292844099909117369950820105800208656714827222500808365101440807631959447460847705263984407990487191909590596731037015655368620037155318795582444596435388380223342159323340705045557255353454143929916178517488028155615340868017406228932620403411796575820794775608755655849637438436282522769142310280000204729534065164467476157835200552008499290915595555641768501585806835223564683864079908135755730132888784490858226972785541942445201710371072345083599273311169285732547156894594700712429472655280556580360297954269427803147764986249920218594577539842939338855907898095547322028119513912977875653531851930599249833893773199937809314906631069035540859898595635153001019334596658619241625492368010415131592379252193205613094350573074602294700915200473432441965442196368099147360811945006704395579010465572838518780979982775530110757362752698110270209737289667345214329699462367292302384607739850664308593002973637009986131734848118482934307902076984008398489590034300540240938655176114578983823134271626296921736716025813710279737064068869193758298029053625606124476622305834326824478824744427724209827782750841126395585012059977238100565352969469198240286723746996272892589620658284836884395002618676445832719583357291184359789158298618657608843971088099637111555844229485806884036473940554787907699869423531464062999101090374739671049189435872814707992036344355473183652585434355967493076844160380204043507451983971779012802978679720280254730964130806412395530526297511049767247725907206309921685685588926208782960251118454470495372917391332791123061039391550315612997891861953633121142157414359241599879906047585840830638720970541490540245622753705347021986401713166040509917501111550610223327603462802737324348261123733689452987686732676937010785790933051837300713748193002667231368600918702104966658386115911468798980930996710313341868172844647257345826242869121861415582492435525030076634548215839326071769313721672183401496985717483800424350696656803058234721183857381376327776502858530516910939535865755003501607154628128490719017305110375530746633136365364584283482737168774310949949198465193283735124505799901028459279414198832395454826406056890553303929666720461235734612943895298175009821128742981217056310203847830074372578103817065829060530711431446114149848535352845260158658480290313894976114440179190157064022527379939294578478091354136886425386229149846157575895649734344969407586539519536140643239851790494785041202258649180437449939991831145683119515369173817984933813672578369401840283218973479270184357827459059841391302963260103394412860219299222837267328509463265410769543179639624560241375974391947142829273224599871873091361355166793095583081023419735129639957574624773702597445744469786872387815196772046307778026381389288317488843646272462066063342152914515230768517504563673503096300970778608684679080256289767439864489464097487261907617143563974687097432090057161899191301579098755000256242318670923122841598073660618032657015650968796545991989344035289845446653875622682872989333858599645847858306339970471568758660173736679747698641689731281530663365302181762285179644456497964013641309655597145812120113648457220867759774428121498014554382451808771324758669994475349994264670091101746844720183603365712735951555748082986638919868269751366265991647969623111813257657025247958671062529115567706126643085832171574084024323276314752133617689792361261353942445889695429716426018779161990567251343058060231712322752894999991112383676335877977934765059202744428875400005471823995510503091555800214072898451740878521789520068773161486139995405912918643147221582510125485356682299537016441255796859272860804281890849319421431533545064296027071549505647176326504180711549567924222859611291730477493261182446665789842088497898294288034843341258684624475975305549393057781286757904254960097126678695602418616015814936756150627246026022559418146247052044905431998572071535175264015915206461126044659317656413192168217640159306401727178077367331720634210809053575633625629296798097938813746878965468314022029201951416246199274973384145814143344234639900922118774288612223727606127611450630400413121711609596336626211324315422830730003952699143104429673100742511954453008260194390055291255812063602268748430893122658996104125368589667308406278313162109745054913204761392567256176517068564744418485185233238702583168190219247356234924486052762095870860316013556399654616317148370671128672776146581768481466862780543487916201647522505363854826240240722677020466647630556405659086454179423568600728365692997312809709377297668915869713014046647626457501820317619923600565477600651024333338226327307268880905731178278126007922727041877030485982138227609722579182373940366951597420793263261335296025704586381692653585910433098673735703621403074283350816801726510459222848007372415060100858239135694563296888334386971227885629966910498047614805439040443192704636521614453503725452841684952254567450246470599793336868641065050845887050918202237186957371861502322160747677868959742784231853106365149789581447060069700379647573911746665810928570878587399747664166261556732997354452073207729749549550631225753277777609533038514115069136921926937873301903962148407423057423827325908880379204091120101282946395558662275482382699719818231913289085146829707329553450698675528645431455923797680000222547721763129947497717851359314813658388218064767827722504024206838590230988003663781433882914255664238434750961890187560087077781111123467941029508373862573541813809574127237687889092050654599329033481559269556358918726784581365376047556969322342844037450850828488739206156570735823966392558858265926182960444311971866639474813916288691008320844246451108547932114800475780905350342938976470351707853476005864078180037083595082670301486940009978471472653735449291116041761902541553806533614293555619167962661161028311037954154303069781246863402354047147760544718458639956932629512926928226076734262601048231038468524856183537772467899405288227718228894977349274863224710527728449216984368947305443194626811569632411600614978784002427933184311897156473537730684752937404444151301425258764820661424817061550999946676421064995318413329570671268929264923701418758948216317469354787369628844431138055279804649901324275752413482551754372851940020167923770789209548851669856564618433251336384823416563862432206271112322417387374899644110626106591912202238630682845488389092556166765649651562406447148490436097500506814142913264303591464488054253921054843446600809356040884266653511125001510019466214323987087037932195649772344724581649621235099795708502986101651913570092759600170217750929815194313954128486113410513951668683966702187084682270187147640560080199099068019671789086902069940789650756155393587340013559819065392524420337321924258297291976370012533498802767247601095139505129654057636727651595664459748930310475294170213573257884251392232545030456443555726371681149329784858425803573071640911021517203825967103019729122334448912242561260641118277951226327662223410645101903310002025509643537747290902899297785808607703344693449727789415847194268106601436292948877126772475725860547543159065093828850077247576478978478740097859600693100902800676095143124201150205354282886512689938191448957262367913506710489469588305088932137597035383311277678389863290094459064139414712341614308871875088164366730948262013079130939911555081324216989464267564721260147959889763028278439526108917615855285500531686502609393595529460544510657732387574298429555910513024526474788662670186375502917535072922119637957081165851919205478885192970913244607483455798504752627494669473978609695796482573208981281653383179650956440776904407986667422753773609867978420506781986416591736799169795579984479455722654157121401855614107783430636183365219473471044701419595114996594696257474245819418356284277877283409353606886273838568853931759884537654856028752094798296519551181838457616464002398762022866108725306453541593581838328908189631226573522745859616809094684230618595917019075790159438030450002611165224194122014735584583551476281204219772302927513374283073925398515894837692787343035379424959180744376749617287499777549744260473965646130539237897575398662746219460596569880075849249802858624013284168604366853874585618385842578415416851797981382890293404139686373496740899511497793971080422075288115363371164865718039342152818627985124855443630749010755384069227568191653907529660256406296810405681973307238660977480686879591773904426927645794318405511863040802342782751156562850876811613539243527395545540321866877725431837820907800670859021186241437578850588501581370195961134788655749816846547538462261742146778477588033856494150739727293183324343312943036987497725202545282299641463716322012834312154159072544287463866676116565746194645199343714262034740850712818664712261349653025486072432828814082438497108599483180711044185344843651493896980908142050699178456669940318923284903214281033136320080291756625757019742296041170234948390631679169872032280837334814001154938107592850355735937452367959923776655252707499834999905317218899491257920271936204038207179831900086169218332667238795935062254335800792630739024504334331397864483662826681150605858074737211216302372660698551283554256468242137019270882442397331295733374471832483279499980831324671822303678669785477063565656222832149140049393851669622782350973482653552700859025641298358502126375013986807308249405999879286574885559913393564494906956795228236561168564602454134994359776907204696700567735468510796643391532303878601456724771268231085448576748924888261511569610749613656037463527679572380990074470639772700470313738078043279733995540135311844798335876170498984310512513421506666460437182399864999026310176814828329607195691947008417785096710684612415673018932482585063642641676507026826901627414954394641357328650567399629379892056310450289064395420017694130363626078584356707498978891813339243984806141009299567427462342363683046496722773511325697628058209994299239199172685473984524690280202414514954131572031670035463116607614456340538919908398519393775291588510609791536526290358110031710341155748908926795578395714638290868586224557659660429325171698718701733910998380821975130719897844668801899065893445348533235058421187460509424923272914434196865311793389664378935750164333553750032127371918554261577969440129020638144680320583334639226672543203977034544779527146067611221009147123961182115839258270383295740591958230375263251932327696212115060443345635753310883031453633927718790987206635384851293791833511485057021902556957735614351755549661956350139126111438775426316321738405313694164681222622151660424628445003210773610713441222430048090895983334553365840227357456988913090036268249620456365372664849305612939808448375036067400767463528767745257593877172278238856525062439899227839495908735525121415605039141958413177421451529353675915021204001509549093355914207440243595036347717477361774657289670231937409280860164281598771268391724140395478092213209403088315348065643103304014460826408824953433294223541244433605836551813228144684591842486609132235990864909917162338130191096578064629649320140484902598893922411379259522000507161238722106299266983048861190870136729499733328690195138872571072470293911478499618769037152055336626552491637154059878204054104977803471789446682537495210078359434251967996370296557725496729039062708843827966038158469020918673351427417357607365691676260595053606497985871183355592015841946412896574327900967593189009280416804245817861778155708003304650159277675326001928808376643450213272158379579929896907015851697163207428419017583646092590612363353700646853979240028704154413059319812558036097727687046286201051806249062675130870628625336540891790790126317036518368619205626865991895561176737215281957546092212909620458242635209795707361569195974905384376597326849536237293284088943109008955619650118146120613028355566795777405564770663523430134189299187571964343309415197357997861649171683353726877289870126762869826438462006387649157493306865726281111433784007574126356244009772003056061782316529064636018264539401271298065963405970639787301821835508813166958654144956376445995373515819865204810105801071216886793473301264659178773844450285388839200088176039968779615190212736493723620198700137868615436900011249382966951470247922657299189050074589437384548294364911185267633343943639564982938417636785118690041412627916564412623399766275125939177694940161496355179440690050186339803519781600193370264378854503926013970105179431800603822494129039533800865459993845494633806989762335052598686010002651893283374869430287553149214451048480844339092308373352371269750394863362049874765217282261068297753293207576232813275003560983208538443603602680363726401779617768098411182840521237238735261981649203394776882373963968492995952165335520527477916604388955270700151635429186619601123606082107557451292928485234596506976469264116136305394212182201844420133906865706313587774195810067136433843467830680980747521718120126557138994066926072686025196490813135194379712179352855453399331708321738938958702876884125139528271127479714925203851357608152975799923784859656309501334723401386016464707564270267386395683628936813520634564610154255410571324787917793727517963809542249394918622076371156853699716643052771935595167590269571732792827478865569601848117604914112221085381560121819756517965376620888899757657386764134026553897192740218413488227959055542238670817737679015192613438216615739789697230070696855643607837396168622239087744954315439163220699113448994820392450234951602812139153424613248154766598623504355899072143353283577946509067099874037782677793115328457347048587634524305675427144071624324202931722858388758318021069760087182625837000738422497382714808432245929576186666895225477971720177420221209654620924758030668037500662552161793829142485963658922432409045265995193559721639762625091381925798388253171401023607860397651437297052782734756916904798052473346231520685413950108803371515540735083486032036838290514066661710305507912053924147413608605753113794414148437140594554572276333013747866964976767480152743347458678243006870120375164731054173999298664787951305547340309776898445990752187986054122653587929327828468852232597636674986303917302370041463045660997445469248822258492347563992445018841083707929355575742290378828376723938298792424230942859895909121892824364886720040603047742591007010326890807240641546702881970177526898626523974639999439832565576018221224206017424014358743681958521568985420803278903986321874264839847300439560935962828044973615261990735042610352983795808405911961272036545766507467705974578949471212119491282157433844993813558208492758487588054704311609526618832739388045683377661802610471918602942723731957473512641048575876569216882223232008678896901681653725802757201569959663080219585806490135834400332258908015889376728620202301564426003306461258162679987722952709581193269857879280798691024425851149253556476151749243312287394411711160712001956994668116841191537182758164975573731263519744112940989612205088655783214438347539186649673406065927614905460165287463749592070814991474473031035992949237286673542653081360061909595110650617151614296837588418501340432395319783838232845231578717425350739608776704063128380295984958155103734219492587887040704677807622097760916453171199757279125300630186224693427288966134659744724593069183162144150622673784103446610427175635553758256035031196195311315424875233927042328844756196473265886330859646587292726038590421071199028119028750754302937343459291482492553558366408178995396411124444583405334148117073843988118549384563151241225534390508119821090957587228658435794689861850754084282922252916198049210982169531304755866145853879948678348825785245767317635784913886906391469942299534862783106483137543576203562970610725227465424107015650733574332443054798477527065020318393635404520198081004885468112782090876466669396696445098738356944885389445410316395489184066391653633516086084087828365869845314792793536784224333456332193545721728736659082690861621788249305048420334067383038408610439748817620797234046324207051439214900435999830792993493842970255652250089372555721915346117084691955654640020984455830903371101879625326711696936874134896499249146067721584752487853160560791978109422805325237159087456068123606315945938906582407286968809232342419265437874227033616459443966662185746978468958133250018089157955377200275684159512476145023297589316391346327908148726510105387544810082968330420922066330523416397182611574229293166759151734924324253244561851534789375249348951464387561522092894968867690097875596554072713577136409208128162141906477374969922131760265376687835837924886249104323122424879671026665672410858925211270395277172904463134026667485998228287823027430060929487131928839110820059663024244769025828838072376203218046372622024731026244865134125857078334395212721381340907192264671786636193843109966099701054987773451659216820990835098100760548377438676766201093823275591248312060307462297567576009885954251390361597096197645555636810957334151588774864275078081551053895753051709762523795257054242380197467375670770613682886271874432916944541279659588046963345369881162521333791434557328117641015381207527749908445719247094750995473229024730911970086171088259597459351390850440756253596807342851991369101145896149241962362086147072139526200641782217589619136956457309585184030706038128090343561033592766333146380453797438907664809610165070543626431042779772540054719667311240968451270370442428864632360147764884861937616905110826080847088165356626013967070967008253836950064016317878989332074960674579891142945627719295198804008850781922417300364300028856171472696275007681313111163708370788799524111589752519373572759258785749163686707220130805616046371103756012145688190562336001102127568633289458664711878984323866410612134271654763927512239156061292592737149923198845378060289589485369439663587714128739067484640040443394249266234243346548505775282945122223090463616814015773612535823476751387137502691430647781445005411210826182850921773323165994594175513328596972363213718980745334831233096805180591133660836349843731279429388011295355820037764854733715904646866110674703987374714775098009064441552786619351357122556713159802848351041010364613787203997420772081214982481827854331232086320113234773372223993350089873618132553100969442173880159143409935968115244152865377615381649817245519658788573949896839411251718451901942961661529673107276939600627707987884674507794888401499024923071995823196597400804224491079924289160988418221162657789607574399752599756607042060968494867113697547117884237442953572077867391446543297323326316700451362024821829592000572952954030398636441973545008168818027604438137281874522925388388111897287120133133942824391775624410517033744470809086995420221788803888202597551277389593112920089580020800268866931974940161637553931408905392573460792352797045202994612429310456116115328451471952891309503433955717885346884462751113586900925456821482847920940504131907123648806529762045387761225604676056101528601147139759187261056157697803102730367739174595141693734447750372995390993694172887463835645790227756768521369431785854550470639433076646167341965465799961640543698098650970863607308017682074891171148726639343236892116705765349665590749094383175350663212847684738986166646729164624680883306186074855657663102012670491926853699513063508693883732377766773349185863109776793503946790780028615216536163731616076291193612351886566139494722143741765542774687175129136315680109050828001020237851840066805713006799539876662578797095573347744357320220389134205386738635511207014286512447357534699484147651064444800766719427165693993453904688912542563392753696070011001830908914812436456473227339153203947713821581701943964028880090038940707078010195333869476361812987096519689816252495796503269566507724299967523413618927101413337163665682503610881108238639560439336816275643822934446316061402278186284883627737209544512764479035298710743510195256022859464300759348523014832460534999662798758008896602963435415579924120965766932925900667667126206015124973566052041908658529317007426885473590926387345152715998110787896539669646234788208462126467678763368904298047552263954237670438375671733881788694859747460645916595045143559005045889414560931791504754602315335860867401742645774519741265899681977782250528129735348396932302507312234942019595243273787016341405628544182408781292964990625380445297237866862524553455362090846519111139961978677917959236857990440394341396883010967768659054110779033276083135922969890734032324486079142297280024456431784644955640744512580930213967292461598113088937452247962311656507839348846610869274886140204081702440202738679431600552741974240003592823388926176449628317135099318211282464751007670106381550170973915885879769571429051683649165547605998535734750310203302000192033719582201907167566475940672948391247243489259101399682112837311880188950678723419733909545862276747202115498989529514898149617360091051143333398984747545743356898074243528424104976529719197104055432869908238960414456192154779656359832675607044771366678867392953211452170116119180519082939773391078462140645278412697898272589693396698274731912151402309170108405345551420554190496282015679174972873821456588036467748061358732258493727122566628264171781313039826659496680335955962186528334146566877280450613264410732074408924724215111339329798312922848323835010260413576112000641448486890488738280681933229313323951523844924639309671721970258252963671068553612226700355122226830948990308980560895174441403840597680072322525087612252164538869692157590974041847369705111782960536945445929558295324768645937727561277840760071695041719898911929251729355083385178021897660869704923057049850845467388567716505920673569117088378238854680768525059386359877654691633228631816843100351754433910767551414933375389721365556674878699410674685242454584198347967497631182451916380001648560005344887944819942561687537178519408362442511961962442880052106781401700189706108118617956765863123684164857083575255304940326604020016029357818864380070587347952837912504385857488286799453819538749496761628652761672948206720732674241263682913959988745263064645293789394477179862599514377293050339602756285752356219389088493902587038788479463771181106853692986668228360530111799050282246644954657098166867235331388891260908201514915394042087915213671998889149350465503456287656033237173837707857804733501702159050006468535881441982570080718798412492434056877535114874941577460174445981115724184033786846745850976408905659046821359398547896486406660113333904764186775698415534624667910499292983427696241292613625878714512434609043999807825146278717758046123443554194759596868435905925625321645645165276020427626597088619389055584832206581656751810161982443103376736793764550858149456932191083024992628653536674292914310733049655887016790162624831840306528236544794927444833917832026311118944074809865789049284461609018714259657968865187385966721999144801092339468073055461492277692477713594575594590971477719785900878841302666284793271556855917738617012557271097620573698094882802226102282245738306905576136216406699231330573232503759558721530289430516990942090583380606515828498323039463443575594302298518334621775357445955105683032478903604930074275473833327287441948447514983998504710934139272398148886649854491555585990735160935378977762299413354824931822181941995479150213784472047839160461946346209657006913264853231527158843220285143530753700323581112220960401420215369501690798833782959485765456848880435101301690872753341998760702710581544233415549396422173805197606454386831398997183204821091446770083712265635876033756776397892503419676149005280133327412642363159406020910086801888250207245049612520529583492884509638265421897253731286295693593897229041552279040818992777370656881034635594197109828094689354616593204492222763880826720590377008734337914239242165314235060702374583886531321328295512995078772258785814104259391698977665043393974481584441068850223107507751427513029815830349160043726996752231142212056562606744836761267936806883534887573255724630667748477404866666984181852584802962769043437227369153070679814708671899420572782668380899464795002446891879861621764382556118764974652573450522678257238646689147664851068481478800108701795137932760183013286123891286617853109364588381814048345242815007269374887565514597468027119824157773375273238908015229489397689988635882075897287007157560787493806943138316165557255541813711580550194044970252022385797602029353303684068765145064793609137346435237436501699647584010270804878970477787126972932513331032436364761154664827594972621194452634080075476545047608528723474103344699964871886211210116818421901850020817461120916691054921228812949023215497110548563091738347302915320621730448130459602966783055006334401855679544722469698494862417474026444267491443347010107140264985388532270485532242731840667391425283906709658312617696213737463982083089336450055067756775531071747368570186271375240708134595874632036331759157279615926924230730809568493173669803244418126363759429203375936628505944076510507972865351059760375793171002808390873784096660197488540488317056044013757340033558721360303987169830996274905117669310963519970963329321059288613136596729902231776785956644424216590152749104293760799109883908818642082122709679815954297877719127353270793004137398838921225953091105790445970906569917760846026532581575745175758790275700402958624616116224370652473054137617240581206267888008182518500174354300774560194670115361418731202035431243911269728202936631978063605951962671586719337416892160500142266478108389876474304524234972205407187946462483986315240225174653483658377636773630847325589904186219132703288988310637285469395850175529709094443920481781565257804458837045796680760597860187420442108243487682528611543664953624990872509768622021514362195559997184721756496523733078356655500058414299907085205431543173761361872249261822318007718458582796099639341244432311442524618072195393178550800655783446096951235711072837309694491154813603147644878818576657975795611152281847203060185125963108976624004129946273840430906391401455284148472310451639606424748945156891385110815749387945181802283273595775800334543856831567298827086187008907661527925569338491323773668380136501425149610826220117264591915989111132527119041051178543912460765364903351083528892910420597211867511745592656817010548318839852747851231925916508665773689593153469680131414581379319259231836359551506301712808719356836416940422220366790153253917793213407486676230173350328470337912250945123807719618721924084457235579920800759237763549444982914630993901099656244972796938683314468465360248709750837648903193404348368358793020181782930565315707215157394714166229863833738755902330483744354001340358713057333203082625996105609693999519510895766576989466226158229843939853590131079043207549369124691469807559958754245697711724078324001497755612571398850593234927827563405048489598899327227887026103622686943781971172548326019134044378169102214277455729958516022245593662149941484595405745768305107550004491361559339486991486895614550374870735147402847387754541314935832991410618678880465595825631608547336833955058222689637934520247248657761728653342479887114511293043298883139633018627418575765247350519476157857157300033542695357891655689276744862284943324918197018445088974197013482633163125937679641934261802585915306601476842896227738268267286868501425658580165909304776674627032313815947377922278118807039810035449803043135439249865081190857271908443388594920237498873352556362901607036055272855146566323969896208937663439470994549756944131980293206187816937878987621610857472612521925834490848555247343283225412958978742088392424524297159257760351607193588457397254056838613375286998232332049263598749751893645888040565223271793217499546930219031542343480713588258868362014347483232804308285648998059495264108261139284728885451655601813505338079562090616276026797137065098788763411601511197505048504306047514173828490829372529239009179405689836677854965264949931192144202285603422138745386188073591528815897490652197919176327081450500895883742829093163717892499698450525539156990072922490670679635417204470118946523042135107471382767140749427512119035422879474296664515169445612460588865820349239085224014618619781326894303432364959347930573482686288672216234177106150195843879558528053265402697974530185401665152810861114363647880619901905658635667306465467515514504759470290698661430734941404695644078491261503274127079139792412537281154155099058919414041948826871266647579937514638593206479989816491224276793468412893095272368550056573897077910434624321703128118699596827828848069824588863247734507440434532466696180543364092636003501215086542137241029978449406725954389603093965670142929294368366133043183681090428435311109948191773471164257769876993445112295460498618305722886771138960448046066525118676782013378056154583278459638395407146312660929432305125937551242310691130243983927223144307454579272912087664311983143857502872737041773580130771668747675170322407874376093887281927583142464704375527894966554219831046475830875922318534522237005733308691214301249341409315857203419444661873717470351541864605602618653567085157903933472612403197040987377727913788836149211231525280036707375597653724129157218637835960579332134375494760866580677108847574747778906619177248726637043815553430994712978484496186646545969220137333703036816273586443410896949068274606034524981078123320898888281096348500927983505100701878377829134611764103341345479521320282218483839073961401046344389817920585471041479009719757969201392904321460691251924150319893156216282413609401485740587875855627284343201388689817874305679451353499369765323753226929442072151083970476170496147424985961538340462331903288580522793867886570615752193514636231339625130723018399520066464839184538690990458183922600806137717215301293802373942563804853360131431648664920829269494926688793982032193282880692848496136095743680590380830142433446464780149640217898564409558157164218984537213531881025785005830749389361708998742502411706967921594103371446758646165939080247262601662269337899371256354165030993638499441272061939738705145274055687454214870050463200481896119918340650166370960323399755414488679222103892485870066810457197236467800903076405996119489131298427129910904498121458291138929036186690819390564984070074190091286010240519225643803408794677112113510752261077011674000021612160688701096418344605568105695685522246235136215462865293870955015077850939210046185563880957279234771824847693834897768726681894083490259907593415990682307503499694059490533743917482686878736779779557247869325995928110169131739894030833729695337272597039902120042846768517832967863981984432737453640031251724245637648601719657507987383938162464151848245692099679821897937434220058367343519369044862815781560130032866340536816766580834802783858742620826399210017391140558854595196889832866380346929629157346323555115722738033896715147263769445524190703880705044793396816135523502089675125160438486591727019115247319593848446915020005381626377662624880966777749076265408080407859054313039740766298706144522520007454325525963488836211488256903455711636342191525451690009362651813521057171062424888913161307339209042781962176672305872901630952527994599653359458954269501967380333891070803402443376204510142298586165746535857232135916722275545462861956316777089965541244587901813129916690440361764438676314497742674982196442228706435399471173454972109467925178910676063548207663358246122662360438127917850161126016240390104325990709773010382187370032076547936644753936166992406413923128328985067265446404371001550374891632028862649314660391222590499347621949192235304356395660698658851956851041583168781827964518434073075466603562397378564756405020515680620705587288304046757486161612711590848229174014728879396920819666452505679774398518651624964670505545422009504457415542240281468607824693144109298505025237943601871970500508930260293950162872448268625067617720079506321166980947506485030431132438199281746757536135584479740076025210274035513302657227611047715540646962472106263557178942616104346273440837831109347435950545110936356189295725954535246426356113020592016385534788964340011204975144940227573975426476340353999736826715024709771581320371019071706893149992141390753125839309796660187475008781737933331539334969459830993129701847596350524038685941681621963317310479978474912537156436314708092753819155680004047875033158028226781287798339673903389391682188199599156981696542445253222612935057909546579605307250307667459262140193279652051663415138064419165816846772614010711142865025692622465576958127948558953586988065413352536598727445944306120292803502919583808365368162612609921381085760399661500092799347636970982296203237346831478890302115171650486986014552055664812586726353218434490216928007430717610563448142654511878390736817418454258995851347942028954501335329353617455805494667371987295041883607582237644614784630087537951771937210395921415551651973726489351088328905805131765211662286157540030184292362512894617480272868049378815497439977210035644039994260200150885933740687731247121507206731057736285674005683631663149365697919976767564329802645984389823731487648984365138549723205157218037454164955098672033969078528333503403966666603543102196858226476159680310587332990563077404312821548507903530673146047906297459306152554161431674427095867891795637655708463501508939919000412867715180971649840758749749168807888241582286573796193378779925335841332041796890851887668496982021333399057701825556570353520835327524655711271218712120203174258723758882000521097177960299458530588411421232431802591016033199199431830561725156494997741714093667478848627552562848029993325437744907524215483936036980732533028047171607450074870838846316509386464978891764688166093294397916622331412589024793836321289992746363879152138100735055371662805985574020098216593356381872760967597422525150522018731219163136944320640834427891463998891740186805991971988515862447054917514298533469291946667385014826410639675995140829980697484162606402244212902393347957290426136409113252400634798105133334998016076846499043241545538312185469382559751243886177096661031036570909280234438557488431664295532384588134623647275277642810352541694471696002354781812010939634309156287411631998806946172992257532983127651494859650630961160260027781031836938626116935215035485246721815276304543635480799529525223144413548646626683317483545258968027859652646572413620021326088599046163027578831747803514102935409253264236690220746625420602355613449654447362128872465685783585213758814912815470745429329454288979510139486485833128048482891038123542515053776686567454733488584941630018675367432207575010727598046010610950338599710877398447215557686529459791410973238483808940323629486072072580876980597139397900736396216647828929476942112366555316940229958089360355745896942928480663558933739044220543104422156574292978271689284250823766375866407592221797047877699155123408449210514012831658615735660030471998290015955074527793297419836084911377520101048695723459418467934303216253295804818003068165847980460977414616372553792612883283607544236371321096266643654472962577332053538416686907872259501692383094473624699363995081889168415910804925856525833176217873862593051871270036729865999958638904470505997360291391543482302150771416921905905670973253685715358226298363080374279297972774300847679546699355117254208025427969079356928411523225681525820098016004881497450888866430684293102235714495195522388656949936468873609333895022571202974788457835055910274137676684012556350138019260805467417279617572415517555925962992245619993263199605675217170060696077102594097554513894454720403138524206863556082373751469679623258042415943505598627048164265736369963064097701460824991218025248517963314048617855126356142220260509484441848185829862410551290609125784780779764594774602821425368545353053497478868892743608508919779883487303578754559493665482466528853239983288448429819036913488029741003758875162875917449136006836674144444405320562868574567058931940816943132794833838987592960621914936021179718398918874432730786629179399822184512031210523440438901459833063377255007880930112462216074514537353406336025873928465539193892050901992154589745962739049649023419122534432998466879511844424971881923912585914280774275483873414293585115697750078176370099305693730601275242909385935728177215822347467704091568610634562172353226906946327843809251116331932282336291256282092693137989768158851359327921495950472076990230500716658220395682530760612441485361078100504658662018901155410651755088470152602204675403015667672193222699577883901194609953545349417008013939899145517002560986020756558911133701873949111536502391506483211859715010063492564849071729018229762143829514338720460270698107225071428101971301430283928893417773495675136035798639959642457313759870384016658396316102690921302377983729612141304419257476729990832385750876126899296450311098429777876658149899675019443715264796131691035843643511221576445055522718421756585827246111314311841910468621396553729697970661172737531653924788996196922890386113248240170299971031127687292941657693053640790122749402212494020935404552520614340109348085235299615481493937429682479284390761590633667132080049359619094430984277023242385512034302525165590136353042744603298547749019942417924035887949342039544272222562613655426346079958602897653627835879526791175186043355194941445384440998582534196811866737630143878357681650176191171525162768607721622143149515432601100086260116265338056078486323373739794387259589934648516931523398936360116406101011695366240391430477422472444595699964393623660714519016869512041002545457414470567691697149933963764790812223968124030239279892933115409857086244739287740347168466721273697805723306137826595497854803990166386555189771346976100569351403697512555127082199892099217195074191481057394236996092982878056721758765206950879649576862876179351790645168931864368966613459576467582256094571783292672712733052822737063656774373392464973561548606430740727064974847643028856163286859277481089533236176877974310817847720013683996251152769679608166547736778667519541750109591177852888830928951600551782858278975877411306039069645023930578518723908875640580812921201312371148845972470478648364624694716013116777760150212692678425606509504399684208581956967707223777989572575701283567642042899790182872636028546078750450113453095288860577573542278660202110906765915905082155771779631853798718960634361607888649180664116466830643523284671613783850022800777789670939526211763843496863781092919199981963505700351856529163746123742164220987875759447267159971725645423983919438325658621699690397922856237990900353416675163891907824008811046844015370400504463906155075250556769689066218541694510787557048321097691647246955027479980585014164566163729387990230347923870336624779348302973685396680369729796105796693629510253002489350425263228541920684282717721355913247633283449701898449674079849751563014520656649862170604869349292107156718432259787848529585288950087728857970999298944828577322044814155897736702431799689702456652360060538947071394224834184971703496613951731827177355997311701160079330226338921898972949108989524762494322688487263391764276072596035745555704212933395744406916086723266935395306849059149225154645726224164754853997572688029228294040077798835714069578865842958442993505295782181279206867320190194308550702168388212605072961330898017274609186094854197476624118823937738013741151617703727920150968026507672006567695426886886901073748072569574836454118405011506359560616694349312843683942295794999607768752491092820409303237266134138356619269156445999762953471230288225480785672040289592282583727403046738383399314917210440655259057487995633141380435329517268857967027288674933100085431655148455547777455538588429282101274794674770836122913920464352699417084624782555975551640692385443617177312460276602573471334516445797728811382836362883609643058473708853652338826181807139919016262665724897051427005953210224595974013308888581703244672098511442674224187782108870210525649580975477786663183709223757046001781100911065814571354956969558319185730944432541685465838765930054364789895641571883634257185714971995294853023459767284052726597829915163829650001690196414871524073447350217154239244081581239124698945420624534255131255564914038778898688699695383060337512653016467683539233153346760371483957385753174833637556873744328745711574710295934463929448385328178188477516493153701391905889143311903318785131288541372285704308265065915841971637864614963740632290770086868445610737061335968354897071802633078118414726032751351677920465873387396848862876026912072876949438555848502298429188980958374424588966199379122370169388948584242057019251263887597237909918867418640705476876868677447144710399045725578303886818556196773650784241595877729188248207146650065786000863128000510080215102465585381248809123049372798064976600495955852390377952745931901746486332359700322424620037301816147147374250723470270622419675395541071404399372818773164009914022452141839499735837809259042099226480570507663492576877828718743263202841874886885926981671096645576515029175705937098026290457021878173685973556362061183808865112133310596395393756650243380729027940492430116838606934219059563744907526804179717959103518721567920491329687704788898580105518937615540017252881725469023324814894248648923814712854947720471929718870259526870898267428833081858936374167957500223214326951396820719402242570167297200045953908748562955426500201272257397738748647258469057320831570393345898423986209566217465230925341124795903257128268077999720583961274496414852608245882469931209849403470184313432446494530963239671553857174933596008910863425603880125352550028346404262107670726420164971570528127777104512910689083686885869385484074857713152065645478384596344853973180312839689844523289868685418747622228293666354954653867637910216342931702819057423177831029891449515868059967575572172221893352458106517382772589164492968337410168398815993613758669925718632202400801546990503025344394448263469749457299034313125789093707498937576350771839230671027326013056064700625102129154614623548062918811783142982690366398067097252679917015733707471172222632100422899778653498919471903749250841338651740319623518690298538909240211095918311922928128568252019531011567364519599789906250238163227222008911159535133342578506291678582865119873304143037450210455709102530798565712076810188413598228095454714992391215327612001153354455162755843585427513322777490025262380955479562533102099914734957255305528724197202286120566568928288137085405083476630174831424749136591633289970906623821300555681166121148408367497790491265839647645908138901586245384368710119750392086467509840804671536391047482278551721517804123104955688598793495420622466233242283457037011046408573466835648854684431721431258742528845281436243572597207881038966638658144748984612907407181057748401759069512782100015111590778135617638004793024706676360117818332781220836651959897261057046008571025486993795399840845307829375556205048883258746627271524998985573729190339976902536205053256527468769895302769023057142660677571126745317138268677309952673601495899949266709719431120735569359544138158776088690031826259948196744028039080013427261221411088634144759395958219546289186431777417101485522943006904324355815308051747132309455123847933231984037402522719435869151772145206241406851393599559140738165790526448218968450283885377056498422122101220118725717614417307534591964484885715836656852283861398706020281779559304060399008879295900145355078294172218366263992269608293840979360700779539294457418745803379772732532253029109059451234715597820610761229569457620375644951671034567876663591510678054982187251698757837191722201188573655078066781942911632635766326018689881276220259301421075159988102332923770077173841585981242031554124716199830951543545819386658533546541668911510905393386699854293584513524250081302544178494948110200179516423527143674120322850437163801910604543061394510575497812061943653379083296521031345803831771627893215344584430344506874142248406189981815169324686084341992864412428259262091589378985854297595768616296343273427234522446520112357761557219023261066137330818524999226894950282649810375711811793285222895845596346941811616439527085109576126525401644366458912618559274265579227937863051564573309313217092593394954526199508449258436909909841881868393187021293929884112046886627909954924979803945921236048532217270238335372886222751196343033244245717821517133955239304042420802344216786624518149606167496251415098746452606608671704309015831869185474413144603218870831193579840872057711315210071922707695642486766771069030203384615010211138641993142721891964476491453841955540865283635159101333398512697219748532102193141894738068213698979285713128161259780788073275054561079623362476690614382798066925185498148461703397058595458902846503755703296198455129149544266351886805691561837054693853469332590435882913665733551580685519738944317911439349583962550515378920119561270267569777432512657527621191428385438604166268843541009305850587352682786447279125498274960584966015176672262457775852079681633373749001912444064423697201159434911627263185700675200362039488904079483691550889070521443086862630062322603645732809403572646475798395730643387377968585804055266326819203374058812312875744648483772013238529178979300392207716348086391250895416433635212241318123488278771153129039319267362791162301507259885917594454218794850720778847301174222409108861504963276386235628517233997602863285150541803239989242795161860546620766866600390469168022010265619272498140216285116039477079922736029450194354310246917167983153920893020129758940255659827054101098756662538028529768962117695607504154618316807052934287611058466403718488460217387922065932704509287510330966716351697592130223050987228450935856589558164012767900081224129296417413803168434359621741585645492294146989237986318754984868125728076107309989804469659977754506512405289364722913390917716563667858702233710545694662369633615467655602012022699947894379996007482411591396964443340361060750617999308863738320456887976137641380943333241744947541181550015586809162966278140281150097610971002845884452920235377276265071632249522181272520604043400174645806186185806498094279903488933695551508131827781937295331257159535486823569910425809986721665329529542751384284378925952064856377715056050826753331755164153831709355896979638880934075903701969055913145012591078947378197126199120094546402956381545122145515142705587465088905232514156897835531926151053900002499171363546518010698079789440616430184230506196547818883503601970133431951377320576470265408044023503952674200691744783018016170464462883182292301476460119296442167894364009427641642195871638062982428811245083920804640575021742183511205387566179248086626877039689082102074152839612992507976724234529255553270578728015072451609915154556270208460528687539353373034029533415766209060320000940318223522106329599864707108232219332718016918730045660778110402843355604610955496040258544223855230206579649606876177813535759658182132865943021014727399536288147789072982053310871774934731396434723164528165542447557256280156007769339307949260943894469728081484217871483261333089864910260056863320912355679935995856002515293146025736564784643392717750002955122723265858836817325079963822151725768047509021481435903231923879138628980151927708663613116176639975025869042656422522695946319520891503789177835415126458603487377946233248030761603300071301423158130724027316673793197658442505280809089736046378701839035528678790397562743419019746980142413034398147897054462656797070947220000295900247970976110041154976064435713844583250269112680364846701063920916316023499305619878642772048874671418221725966216263420303858384772886625804516839749122861433277048013886873089680226738569608338358129347001292806640337755453886597027447150850499135763442446257128283356616906265025039645446358975677887636026703667799905308850210115981257557975140309310425693349311033928448533936108919628156441118622239031610997245449987221427056510437346124803193804729607353290411692748780622791493189806753251503432691444284363639100225695330304514691867801980314634897932646362361785550091243887288578596819202188621519535556579369619987460199719991641561750791055364918513858437440377698361784171127697818902791162482960916584960125241186943372608582117625826066602418699840089064211462472547676959791022430043950611046199035094203454751791206545347080281804129882413952798339649208369160199097297129383486031742777125400955684121572527379913229433455412186595498311232075401388007726189452853266965446338616351058501563024012641366554327659977422406313390043645411284121404205809607676518519366757610739805826247995847607857060653699396211954341553308260460413156719910194374910162341680795174302142766727892545359240259301027635342071481661511432604633303347016334466433695470369702621906979078696186494223861656432232519503763425258379879464133225294675249748779529102277373520033131581536812598895640208478704857404643986466986288349284734534490293841625222687429539283773190184876363104009463938410378514732629177828150192843815679124271523995995622656558668591787272788750719938845613075862549504476110633965167755251302275645555553845264143524179781960460950151191284530199989934840902245454430103238610215218245035757396656182723110945513801290888345231285713236939192373680918224730644331392644147678610212178790498875118240474408472142213741800814544271234528127687462112293392188858913519624690861082385915221393529814267185035411762841759613280103310837524129573788630478294552002852694647237955194189539773856346396001856187697286755690868842984299604360746202484969474997563507935228669993032701581308406049139927878455145923524093974077761247072586490915898183777714953214881297746646310036121294251925341710054318200177387283805700565388800962513728437507736205451058863167375912128688041375138566882069009181634802405133908079085633976916323766711207719365915100007126905123321592686735313260177539956957413666935874680201020177185331741649474788543010341241141441662281763800206943713272656212500970727828571163509927325115587871018980531198336629732732600760120000949608602259238009574683923479410977018627704547208719982754252236144578013342489807832956687653922758255818186350232996998490006677861550996146448163590529893651642221016766275880299814216240929902401261485704610016329527680424368430040413858677098346473816387622289179919682336814785942613980911237797554020483027127885528739571551910611489144719368119786056432091887039560969008148190544681117525703728212239954874295673890067318776482840684978623699467843305332453576321792409826234662495134167060196968719418644372024885943311322839153058811066243060707153926124839735156709434146911894272001402146903376980581899204740267970169743311113819494737053413691265890445186620849727358901091135752640023854847592487587410047437691246371183662421373988258173624472111934590665069992184708983401696351353058756921545066844586566785739127591115750949591928319984445722346099522497240358794320275787138140345073498910287088211885391743217512348874253441495016846276378985755084962199666584259841573255907729626464347539674250757614052135856569985011612674755830738350238882840489321134449065292602415988583598152197994856949952402734268029945557837980623143292971518822189605512892196134784360058178173109858110010915620685740632227008126902623983501361342161354167812379986947094240462701663745596744833438170629428070962963639944763140578325116696546020098722670175022077460885083896213993523190725969692245536045903382509524067763540321381692500328290091518659015569130473081383207917783979503048436903448895111196668155137245617277997509307734916121428255366867147506201534248399214490423375677517205060195774148464846982961907845939988104407448723981154321272726464331823289578043957735238448591403670444719620936944381459321846080480096039065849404140222275935739125361725672353201849388994331960622360296391491476252738100806024491221234579159547899414387348861948121521297565197049915510485616271816233996576166290204293393932895487196588407274095795663214075778006468014480091827489498370218691694683151447052152426764729811233644809726679319400158727155705137756955687347491081805162978334133493816829430892105325317001847704403186323204879147986904833835527882848624485097877738150377572737975492196359519542429195302622257251992922907784277639953272512869381576879830799858805049404560842920811214036590481933702552502335737626412615057364882037620066856100077477428321105713376320821347040882055640648275591547874656897182871979875914490633042226356189532190914192763018281346117653604977410431954090205319077207092683803343289049082439974410151272415857538676908066421748388434325416750876796164433404740624846535403625280154158694437889693421506270889886006478918224116701556956448683665850363056994707074830487791113068343763781312925822532239967962557487206665271211637370766524797223734388149352947627727810325279330874752315742542481384919584723112178551918597832543424122077280182332595053108766791635145097602253728927477984180941682296384527445762991808735551985894645218556201144524321324467371682106665324686818282934909018145507679237094696236805772045115014592137928922060411572146364097311452862264886614385456739233460464447253582055196413353143906020784838202733031511789102650147982462952342675242660862981911653226687821959752218425632231635203190460088598690308510009701243764524875990088458201174201182049610448107882250077490983577133366072619906384598104100501158521004407371621603447836882835905146234186793511172567793619215057537627797061350483091278108365030422531017700698251538173357927745715104328746212031916731938157170130261680321316158065101599705898774446419719041775372056848648394187396544133482063236800962704834720547300552227210593999416399823453194417081427456513520851383522288427038221957986776571768872674271801603394842853688569438429504676330509948383557687986310071019192416440912744271501497160480437005605149481856028807938469148685066822629453392547390598073661895950096072321763256249477544779423184821772963485245662921786933261721605999776941701588978136592038288303960938520957797763628190283631561389698778811785999435835307086265474917683543167346630663514676752195171891367796136207690487870180807701843158296792334045995124337319671922752183155990443917696206551636933757451095916502424529887290987378917605482074115405564337938655505991159944812738020188213658879087273001588661736274857786276709989987486621944841115889446722862713327939559925357406887854135057522373295774951819177423970436343605995719486244618090133137901466632263594163774460859403723886020257295470986470834339975843911299709502701227801616604640334165377815364518314305326544146997115848127971024347957083940412966914861099280432824740654778847736136180831446909936565121609587602928573943900891752634063904912732699392296259732925568980484045345949149038045804914909813945025704860437949295581802373653220459725412642504191918027924587612463912382672560524287044489224885632739613475258927036874354376940927861115385577374910587740722452477724688198937058491357870601119753613164132265345004815975343794231466369626886229942470862097927147913684097080219577860870884917608848959924875727536661949348477410938525922194307793065240673312317988405137264450485562732825201963208119681721610382518099758744306319753969812665506582902807119400842170088009472510090935393410577215441611281725759910445444345385079246584981801902910029589395007615118133589865701678998196071768105465414730618471860144759267021099162942853718142366697755140950305153806333043466946283963367180540909453087860841299275167886221560952472282058030503017960445616962814884502033688522313320800954145094639990889585317992743438677890618074049289274525039522858187294574101498051363017012389653271225956335309085028768506340170790404278390538563585513456176784127467742699885575203939210590168503320959906016883413313747683293121505896238803097767311862869935724129833385547330218987783762271619078633450189677950146040254635434998891515729765464375697411563728463020248793564887290698709978302803195680805480101773708275007556132485945894496997633415370453073663244614205880898142832764989806945225722144585356051397109115190096296242443006723034535437981638761895805433704764281488456230145643385717104547782292323059690368508643305277339167915360005190950046927684231220539808771538324564895879924355162427000933599360078351342709053743566114696664543383777376241742229075371847517383184869830896901542976607711765975442997029839165660496387560587092539434925675996871284621094969983747547661699189564210218198280162715012603464544871866424655991019812805220862736336403920016170458500167560093241280471426760122385513139869524836924060645512645493228795222783691442765027931632437312239476096454951424885825556246826055701197596111749272549347846330793478351467551039216489448984032264314798263185852171119609118433204777293230939844778851861150186401248172129619682093239740087012588120664795345380023948304412618730616787477690718938018412598285462194174201078443324411509281480434745274454801337849824143439431280681305784592771642868905787974455354951017321527697790199696868750230854211198582537869018906915829038295174974557777880028473095767226108660201791373798273033725227098559576347349254315035650172525282390047990268904702942642295134449300432780385437939430467709792771683880965908744224222593776211296098323347181525436299975798458834796919732163769478737795113326142800724511118402822055372698179961268569194152028752977090499281564708406624977491585261561971041120241347189203484135753556807687049923135944215566326885306755551400870823191930577827114749026339952534146990165927571370068033676181681065933126686071264429817919451160577143966927283469329741094438585016580858849450905149699607728256045473999459227301501050832168426384337335044026090378958897459632863999232334068512343252947675269038828195260549442698973290035904571489002933198342237087393350445713989841879007412415240286894154314890399025405190692496704301440083891700015180122161330303235288324040212655570889556503528190766524900891575236690265318296428145566107338689852917487931001934521674515648180282875716877976739103701059843456447223704599041846601004145535233809079804339657877227800319790220763296347036491561311074938884466873526706173971615491180683576599630570565306867274363630927572098813185624467960522323092258906928050248285290866117380179428090339847466933315456886324321589896713408350193590137022422703980689621925146756421625687697367732260846050442847884936224698363638698501644011730840904177905522918160934135950985276814064930298278742520150090991907545638924985636768497656163760546541374408780490236779756821169321822882884946739843494095401627342110749202235944246276851124549754012701302915464420822492707628049640414051040995109967828400735078035348909129538536046612803778035399575650788341313486931441240023440421829589413266144201332068929078171634168270454532043055641802184233943746111212205026555520032858845775079377178791617555976288737444349168246236400835213395012742965315009590990124952823216099373337075243295593445320780723891323097446863972917991361839140258050030273848998963821530735795769533034733470317463116352996547063092640403639707147988252190291744266305816219724515829462096252212163594133090078667348026084489181609374487233512254336107618292557415084337768021705660451173760150330198076356579527865184804162766981044276737001480814074501527170879914927699064400458319720048702618445714573465229165496467470555581328128956071918809968144746146929549618489608066617480252035341584192443887737762714449230379650502886787279329643842998326050145322322020890961709771076355403686877348564990339892805885860201253836753813018080386035097661274758875357166371425032363087070364628106899192348379016107478669564867606982841372087271657834813171245749579722216299310794813119590032430560829944363178151806715875949384242687770005228485220862839204278186552617943536160659811549942118584297452422716529324091142404079660080721773825051449501844781911548312277289008181375177093325503974434424724471673944188399946716063463943982790862066071888634659389446191785946707371213441581749404633157376962773801090354661208635041299972254959897754829272678642685440153933007803602749126754713790539208473769880765097393214790412415669137554093275742291292543942767103899802705118654801609956647617136134889174192460496627906444954849040355650264754359207013224722239492612425491265891792254559869037545776632294627246654284105302670103952204370284392784235100228595306383816332488867156028700918590267126507991107783257122999926083608116027159839876730761993024540854414443685327635725053420394210789871332500195864388527113365329271823887394229177870760716896992239004186763139981130946756443713958047125776155486837975368624110333325102680452380693927760735073894621168657696171982624978276255244883469640040836445630827937333104151590607130856381978538517322758556628219558997398279700981127189331662471423114275049880047053183681076650221059416788492765001886192442759147707738599096979002188787398747480160927286898243259636907206599867270969939712896864576697744963483846488157950370675726975559888882560110951298377333998020714558575115624980380017603351768123639159487714015251345867718529884631451306490163741169438579121568132394022472957957845454204229528746348799607497955880344507810597534465726986738599894189935860903708475031076249436381717610289910204519481135070725557114265406318586987302517978265924481428206090429076400913647722583332178518221339276240312328495171967548983074615735424100070606367523867574967353650366381440953601793374813145335840912126306651830444933888387258041121336275732139048219316782513161911990985897597216170948239425263063851275398715001033606596413819428168995677275701316960254539929153261403798637902499652287092950908122549804407805732880967630355266215174497337975404005497332173835243532096345586068511340996968177925108640783552015468568143331008979158149840975312080377667154641041709816759798879736002263860216419967263732289597970556714378574321013787404927918885244638845531503339742696973700176103998606527280044751607633796133801564296025620842259373903663422869599313172188716839447344328754113587607643147687503425013618542179946212502995926933370458171233017191967102548322657571471091021638347884289067609595628434906780084070903348192797213601914941444689677710607526890545230221011320855399521091219018530275843755965972649495614591785334467387268771314261712095744704174615367000816237063480036635211123353311685800506616740459661541055700891271151640955491227911456794167398104912560498624428632516534601346830785457034887383877517531167095382423592974181184466734882274562467799885446331040153600203180095883448993462580187766886023957405328158952830429003132513302053247879159175816265999975119556982770102514163354742835040069994517654164947309281568071372596523960972591449040634953221957064261763155331616494809016712239402911959920252374853736170727109139880071066628333183618294972904859190496177945784309345806277011934210428679488878313860023971604247795476960891795860732817723401634819859307895884294375300165789725539844434880667484230889547726511330550039440279365012957085648175901245624097248166490043661577716009467474132233755033373059137292244264016073089539271642419640368962253552428059125258578171887107650698402339427962472960977843097708306984858495798373572161853223068724364180451932730758197307061896789009239543748346317307126881955989259668455259978514633412072568731315836650174817347969687397292315771712103641524590733265509686526921184395213695148991142016108957088925891027549441807453098178327457378593736398774296075400954198830605186567264555505384849997070812247208832600514199553073528947688963538008445642357816051459625323391017345351385230063744724841605516800968209827787459345824707658537809789214155467454022758214230818720371416720098063013793736974885287439122083754343939878311361062166833203377801235625345145628810059698465042961228621650716767195386311069237637812633588889568981946618126111863778543930970300946206019087278060274081724593262307573298583394088010330272725472230052851300574586216747535125571057010986127329959109703051598679331422294359257833587759095409241740044623884840653234573234101307886216045308217843400801335775558495801829973567457342380340018194347216290519628879730030111422502872596388761944268746864368208467789892517249615107164327820697774443062895720604567574718434832671372902509040356965323124750760494612119442673995812765806204014538922849769529907108109865900931403770515341191386728371556308036538154860103990525602090098103357971006169485461409383762751860279275928322971230975532259790253474190110089281767454161279632941179051956410965309079161629519642924963383693009276938279044144402277626082087083681757072307486106334211192198888969678387612745153620084601213136029194075709407198604821808075915250642457638511533324779028709893532423326009932897777751412884897152115312162467363661782631458402970634234356154720918361981260643551785712427816725658805679543640677436676426223753765701225607736290175342375640667999054673760726153057050462142223568350100496920053665071343123816180235544245157806001720594108884100898564818579104363300108193599894898906257059405945179256861039252748264341148015247135670133064268253437416033695945429852749048476823473280917618714488491044509414263492105589541651521339710475686517623304018787218793602212149112457392890974362658258217007883059323161353091214723077012487769546021295676981231552188937091652727828579482602216808881654238183322317122099976039498580347683588417348387954180180060165544911038867338951790433271908035865249370083095970298379659792042850074267630429553570653436168350817777079797345647312617935833744773202909099229689853323078042708843985503853574504118166318483903997114793522253406211486511981036552983277555167337951245863610111501839592769119369776940982974329349405852733475731554979315070394192405850021284414990153233326885584266119234814519155797143032091210046494215361765026632715709915434546332490452166769683336631639557644619677890912575839795277546536991774098060776719008756273207375378762001714379893924778192227565718726173064647207681626292115240811243668260042494093109534591115214857572785507486900222429306027632526508304124419032727209634737776139470922955475519770757746560024761251392625927511606160057538174039988410603567306325186389824989459163720163449420622959706646427481139827756617121987264640007602227253145278067937698530295167699638073043893953418415643552954290649779755961439489001747221003525626921250516308082217854787761573716511108172251190140625676323523058069043672582674772209482995142780504219203072995765266212312696227689829249862942463023870398135853506478879392619038099201061457340510822262577248736477621070440929372321888034765315297306238753993576055523975170407960074801691585963808371727421010548864353324497918974134356489681075645870652716224218349949607333525180154885561871762022410167278742511484571549489682242879384840490961734447008929279911439690043703012913370237177477248932538034107159456201797642154246468659273965038208149339308744736261140504495502594254906348788919739340664435226930886571852654544117929575607094256086966100606323917814181678300824331224475457741647320438675842615211977492410763126680918525640598442678089364951437145379527489919284940454667826678425323108362558581878475926908206811542894818600982812446962796180097666763135228806905251051629496815146142246725829126494610779351729742597246095419131923252563073637009679248539542834961351414029422107219709694807577835884877627899493020213372668878732069930818175308075546296927686461624493062345407159644266188961720147248319286168001442823689381962664391906500245129085411147965612413953606163995661701371088093876142486634314187033846737603631840660458231282000791926761214456690499170104689538144957721235468141013525784741572486751426195336091765118377894560671361973900780114481901372562677863483140701178431058623089539315517271960181661923876360084608045599458285055577412163686097953953390608320815752107786118496725305523209802958924385975867036050256078922871925499957199899637385703920319211336877399654628406765557123428088076790333456321541067677369915453470452928669941240668146055423078741515008130004358641096822960030437469935173579351819272718755131696087018872640081844883763951264877945249292975811248865471785040845859292227541341172727218950057150701994581517547056232407009976522671013121179599977529556703286780903443488452869518899667591787852967246495087917999178490553272704092416417827333697832725752553665483969095850599918674595365389591167188562986274307690266978340164228245360105918225437436814311255892033594208795006242673203645482531883784252339382816104370826943336970517276012410126616852079240198002958084518534267221036041008267214475486981733565065356848356780231237369131735956951390546256187531913957354534361440766117425195492288514552956311120757317829643832730916360357000913541282462150468495680923632523824906488748462640373468791403344359782075938993114115215495046835116488644884707147403911036508359518693803825099911244178574184922843426930104889465560058495742773979178879243614708613086770508481359933222994819599805943052756397671018592025626062104845369878061337521914558844680460948727053424999067562359982908221197584154237645066370525024286750660681076032076965637764778793270356087387438414671725066762871688655936995731664720899126464499351723998107838326505939259671826079057712623992744903518000577804199225718078393329462593122703695036686719922943528564668757516099246954003685602379151515916146719635743110003487721750141239188451549175372318449166000184836453842504473948389698825316531705541996242107461557002946266781078728913080667850125080993615243582960125453948492542863536496400822704910713255845571779875278167521230377027053796235833764732097248479208612981383135555789590825514371185117490832053651953729571623034449987604662202357108190119627139099826728998565664680685678043218143265375331874653289133814129141885740472812806250036204632983695045800580070927038431291906788573694255015150834611136995796331839013509013135593130037787451896785444468108750806888793235119856392028529158871377460375355274345008799868442600621042069083031589612609989106288821279423294910115506387161980880563397839439740659251893931529412217355061321324120537002035262665550585661969750413761566967073693289752961173384785087402479651964042512863669675467609235419349110608250574871568081952477993015552818529354722126950804942299415131866572246514960816609856787788693217396746337569034290619082666696030361381355503711774096748784393245373756263375398076563766556263389471511369397555218285744773815966258016868611415642426638434103699415076831069234665401890206337612710534454987826097943569428943617169270174780538298614649388111687285481269333572064678510019683336392839185487632670259509762943557927202942994242919882235677262558255227638007565452025249984460305456110588748187489621227761165632215883522002627098502558293153875384051017078043652221955622089659588403357341180460742151999048325005029008068376083232486088469488739659063975011564877387290379166336145544750077594058622292307616074400238567046917407439357963276679457479791272189219917063232555544099357619103721856507532457944580826671655135678050323348858333290042936438644291229709688629042302459264172977444695859489368213025280324308715516864037801049705611336969431724786701143832437819345887672413485945850729197080104654779566176631451542900784780113021431641196645431137309600257385650721133041547955017534465417193114082143120827413014146110538441519858579923239226337968498353999998627252353118211288405602180067899409978088899206633991008141135212511967264161633125911295779489720674312909978286488171726241961728105627482546020567763476214388702174349758574720590060786714625033809589766181256511459327638658734444041583031403811022354522601111039037710600270154742742429599440687552125515997243845577796671530122982747208634104519308320439573180066941845142025486286902576329496204068028095317337198798288911213528368042796831012945726378382512662300619526653285037232125014890116696954757740388810242072036584130919454377827004627381199043724546807423300423939222612625565636532438607545914733486108547370348688542568208348198088640870130201552856706022390155837887072201852442576532755585811943816129508364381207845310439936773837276675175053574114274950813511403893363987778356008015919999113509584501752904256423533760460007857665464933021087899161141401520243439500009808035086923813351460343641246532943493227741018332997130345765965223970172131686446730060210640853235270558754153313762008875726723513561572970792874569033517850149835671283638025574668093131504583830761010171967342908423142562560881387313257597598239867370729938231897676497162498672891435541602511198916773478628813938317217626831349821773826594239798821504880763337051544035652752834859008823172126993395043954677650194098414535024501254201191560637908113429069415525297924205771351707229222406355685218969859343226445370650949141033005827649280632709403367368578284763636040912502456426503810153625584572597071994784765899985423781059186898479855052012236351212161334909474677019067804700903698909631784914443883659260817321326655038723301955041091312718940838069532786617445172834147692243922647922882670291714446481806188490097058143164036943319286539480877398498414398422103188337486538391766160707001653585591497969433850356278341869234851057748410864961412765044325678215247783820918942160899061740771466995968855295125200750618396024366850651028019376656889595373335898985452811526240963637378752889713746185116580307900011292635910731080927972023771909319929037112717734653401388936577113203167685359218701705604236764791845055571104176284391836943803104034015879799729678819684652221693024019905502006524166857082516562902079311085799297796510811371015847825899845765426102580418764823124007476482203733242344417457643331001643468372129096450679088246320046443949624654657351788409643859168945119461799627428401046740445302672491889010311237738198993055650141389354928122446827984771171003984340018818649005304407834063902770038912771730345956436967991324710798183801200899172347158978583536426747343004017219984819009423561294716925602402569749318378044259994556488904932149107218815867238653419472163022705511300213075335514658235237683098844959931744616606550976385774129433429613401854874838477384077220572946913657829011019711676825586473146176970499841854972788289452015920488408507341859618491320682928156752684318825020096800786429981874167656983723906867261632280591844814142315689342509303043725322810777464676473077632777039307133354063992350426265706737323998924632162167732637132367017776311767120999463216871275872713549944746115209336300407592527514799985269098155982923304911788566620302919685049264181089363058227069495523585564939017676025293138161381985760906350357764666410715178877632297846759824084978304710663976858763266777578130149760258695422788385512579050480281435143163156800982264985575558176613222364361984699506819610410821391340898697166776017867610916408838060272973117634110580381490525779251833976808452132760634344341040717913125721325803323649654316404229351558978682198761795070727172131583405061709777828121795526299389843244121597646525015382071287734655278879217117868438898752267789867312101775252361876404998445671632753771287809773894254957985062225407865687025706577812697914376005221819686241475520547739289028469655428169322251957790280135759622596175001237523872346556515961591039098139455127052219353473434232161397214638024662710591597775450909080635290540094169714528192264538456456269022118930271977310550937635098195926307829424439214460352887434651027533713422478186312184337791302382595801379823745216655430172571134773826569614276785367708928504037526073322886278061683818109867452098611707821567131407071128407833516350391436320531242237791709856810145271881490410600223589727157104495788474264746573332570211405637914271454753900248954411551462559155566003704251498389314788283532936114814169807529187039631856943594371187512909802517685123965593459446101834771110585859143161025841910612949162531765075917039598192803574449514245780724555358386970920514929375903495226024199852206913961413448487755252691120084461262824554919010831579086861844406182970988138594716418720074350498447846994244091759667684026024533932641790493001620111688446930513474735257787830815803030722585629880349564812404527169409156804233234952954191920841324991781347654999348706947920189704585580435612704679460726292430507414918678313562393568637814330332525902654089981352641731106590513942221529984451786261443303857949660117189730377249998009240190724692876321083302826269630414507912627245805994994498730984753049670265535008139209868301754953071727504363956254864232243757327928169424117474907257329562853316877871863032875347787096231087625354479501044842724642755572557355341435945341257555904123718317305208671588353978014642425311091706640616419639502665688790306431588293485234695436310316220198345190371457234406098343743820186277455542642297781524380063344874523497934727646548960153888379999078170254257193772409930902136181194716849865653572896850357875016121617758279745485538332905362138809636110779640547241450064311190836416167044792294458250651395836069346309366808648846231948715895216476317618828368253815342327873424176486742714134568662259593707278747893681428532451632489765562113117774662224818822887212062675138414214864956186017241209590914977044373605261197800897923951200903968450840585361058740944823761023663567770328748220146587183396624192767531837207727373621444649795908583365819832854031935864381712632052629163549800636319169947168802518893348260025072346811708236255061206147859450152813493980242717695169877409481702537427797938055607776217115759434278165317966267414380535317544133448531823113740911313173446901335911704661955300109283499942213435858167083283306695142963138325453313238709844503087253665558559271076250030947361656764969452214829053471153259984184114412298118148298726816145424557871788234330805607283188466065722095726070397944754932593871790260251545567499303045733287437832632589156158270143698264287804198177747164162478212072356301198833846448700487004464575222372287010890210981583181269990138282851955036502481717756830320997086901084833832578337861794050819102682597624480080384284615767920184141889584208657481099670708645091557331076984031352275028267900062952475191711115840605159686945758657450308304622958590969568831533055533956161273507411698444830593246780462340690190470361609114141872931057794440022853270107837308313093316494679724908423349071002489012204141031052526885523960496480938076336486642132574234068509275094976436879271730870508603667473560727144100647627138659404234796889028277691032819041474592779192234781190098126254224716809642258140781631504894217203526392685627867052340412953523744430022257550850300359531604508428280627298823310474316086036653758751831190937601216141870454940487190944139720740233033816437622077348007699797034227156817204787926033846155793836378605524398926491952733110096073505527133459186641763832041614728133160179426865848804637419248905501252267360103472056873322669331843967341546892237974220529353418894596469558594188100731202072548705276891680562731719301840070215722188261439895686667400115467221638829477466029668903173316834542767756073143671202098038871527860266540490496628614715059407971701226171935558945935022691306971615273686571979060667015637860613508763617052939067312052662553366212459719297385314539356845331026389265147048874674951162542197561672915427757273814197932635161060431558965945616155974499971911633030228744960052294110308653973607742429475381306053862770654452267324557645059557156578061400315811862688775090606862100102083243232846895843467667281188580696868449674990380005358924976222559024279300034518087063353889050766697498111407843577131530334270358006181639423610475635974678021633353974914823111692864778967668970926426310685510894643124935201367313387140848021166562330782763724223858989397199544855862214943883158917027951966090897078856060485173671064138585880723897556308425952622558053607858241426357882153088779856004626210192602292881719697318951207143744416209279980440955170761835054056464187725106143188780876886590611966612113152146029827809698520622675886905974311553515285804202644236435578869553436178942233807536060492694167532044056903706545910009893898391440230217517639270272257880736829516541684969154381653385526491640085767268760553646957290144850256920132855003576681927597818617361209201282277083679213477300512473872832758488659798544118037272826973802803774775160343594535774516865384379531594632483539081134442565111457408163973897733046427776352884286663449653108373751133721157986320750303881810630848387548109376743082641071852174494167182211967324614697212727959459801547350842324109201677473966902026350151463887480589059738131864611099080883326977145576426741078149339123729556300802396781330750644591811391262734933008429228631624644152641500495176698174522332461164880890165699131857269391929917712844609520839345796877653303701638346167843131758367714135881360426328435898517858290174777179735628733097733280248506118882378066431309552904396420592468663974739706022730590772491983374705676735640453522843524956633548071420485905804199389051187118083941517679972417413558547408621108371394563550088291816376312011170875315689492790235465963487746979308460022636763932011342927962566371354791728936418923026006670407845156128444880901589245858848503439658215429375067844170239835134411679262441855417989371159091280386630686503430254760284829151592427196052102636782599916078355522105364204359665709025632878350825379390099638181504079384569202804152334930228735664320251672370495579854414882674228234128660450612706113638426887126548147107148705555091845608169315192952393847433216371416754413150713481424638190374150662523792221871191541713630996855231024295306863461332369415572661890019763104968237924671647647090688603844865214672789994800077641614034378962839980648160628905345505486701678450807824870186809445735444425488079093933343322810538725650618176782716266141374880513074378884979482038156168331182892278823251254909537029974272364574677760696039337644744028706369399380753922792428483004526880308842483181796816996767873860862293747254189158734822486136995905271219876034926548806599620254698560219238360772327614030492597551251597651581137300085312739538309981337476703029383853232066959911762457535104858928041025701001093284802022008487169970301235982591447735694333637510110244091356019857064822494560313972307396042876020677507569791975431956989834033269099521049380924979226124278195593709044927144797555449568818899093197467106789203866640644914285341465073697178454987031617374535106321549551484300408509533307572845597293400502798191785320236286683914583329911380622884927451344785823187355950949936028364814159406444759002696241547118718583189883005564777462300694174783265281149756772221366226025010372881585701442635810904232572262224231392835340066068094388096174430186501575177979097526860789674852442031228434697732550484529890260646668295885728384443699295936866587235350288562659326397255681172556271488285790944953057478890007437162248650460366309053153293104015476609088743691861798414659640085613298794059399497309987102326905419039899281252312179133086724681393721915091449774858021115536461209804185529969163503694344903328966888688035741776714115806517681443400198352183360451821329863651156961070413667492762903074720053778787662552916904471255660754336999167562585376815366110440918441481512892253468801773645401739148591036753328294132475788522390043655995109932771586497195939007564257163697756846062042659504327853535630960263805938009094327918517529057232311966470554760063182148374163191981959961289084417174415005191981289566042771338377393063384925918070907787231903028806808844074461658975947208573179902485168353838940055745146885130620896522046262899646350038924653142616225578432466896378983027923396894657993489966294764235202404317152027010818622476649068025549168725562848041363875546283251109083610738096494553820463862951187735356216064496670676862691750157882870290976817735391577976085460885235203507877033587443728268578980619937931489714580397593644556278063045356396017476644692018850337562937145845529916733276105058283960959761817934243417339705152541733186269854394041462947812904397335052804071852808508432843749659921933728884842792358232830708679057126615720996819967607329941139743534378632887500331871183568030953822934253234182008669875430896287940892961467034576508512380137167436639553303843403610766979518521773227180440679426763375916972834781478840048573153333266105314889792958924480862698123070722870730713000548223484834836539082552714191310889085332815393932413592176135092498642973801764687313620155621362971920522589835931696606297336691684516817815689393673933556657487167289846408069056586987118530686297972021127993786548472487999204565232354485210091692313284013447029150832627328154467429652733950753638739189017555920339302979730226015752756507289032398616648883906674342162074028256222190197208982421146086890133788283557981224605349930819594086113491415942298854258444775567367853975785180578655221998464786215730913424146858709418212601126590504364633383211874128012932665693045972977518597266373894935045365166749147573541445516554120902169229987278151901687302336905527480952889536271348752811601457439817034900035880587500253442682212252716288295010306557841775403650438023917977711880401354628342834813336926995932987362774477638508731149335898117646623518288198765896084528486213038636213500732608999660926105789268840974896493430818230675511049979025285420231360111989780634551077287528856863955703202053150117846087779308077803555608676887518784801519004295408599568691352634277574101404620241919637430018634552916289801760212535339905088229731772441620168528698096891264831329128636906208613701154755147357758302447058272959441807449898100234008483582916384480898550848620835454850012693709774636057998648447846217954752185093140363897610493330703500007701434191186237874207358983098507937162002154477349849607078490341193219026375350604909918603906364955814370288669687555270416089043228120538539941324206897558465107387795123249070214462704682759770750126847776843201356331585397198751625691148519949988770918610256946419498175897918312766575892978660846369586264630723529789324132181721850314939243330956138088247577329650976550766186385297534456082164463658713484336004414914267701845759855213015948778498447737536611143503443181163097176333013501114591048070096025322404695889906915788018763180430352830074889164486065155382032989737926247688706284235749941209870514083012214069635599528196872844008300223382270224216108099903234121631577764557296785981794926480137623152829912037275490530158282390177458774452357511684790109268510520891523301429179785715317920837798993670271697474535475354977518779344169437122088326729454642216567506160556273157412930702615393001404516928850038038050028443705779217151359840027099875855823234701711440580856450961784081722978681971415311741075348448049556867464926454384462549258127813550755508946760838718708997421944848876070183033334406951583015987140903883007731978778335397596772994623806827899564743330508576670516162071623227913393370871371702025044306697033760205085453722561082943357913019901775106147072716720130715810111653355145558027274316776171245475015324385545220964871576059875245199414075962328155388886093822734858096168633388167228132878377055001012069655579976734023015179959535680633310383017524630937115115151257063084305558451610904276631275219875239370862960911819157945867417362602215213128919875397615325130798401377494234212193701448392236013542050683831478441288018432221979149783632223800594647392494672523402348860179381075264963711006089049205170460813669003185063068512116306454600142510275007216981141705859785848050900609771594901972260289406503442027644586404105666852197406862620868569415564317752775251325241442606143700734156497189091718487885623968684800554487385586951266846526968914531206430719329001029198225284116175338079339445448730798363412169602983541861433384296464468352344297568352456353194587173723218041122793681120704470393557222630481955801268140865719431039990970087048338059292905701892272435763588326429332630974805793125540503784571627298499469887054403616248171861473853186364408776080693316414397757855291063294995338904001281691364532510864806631208333991565229846245887051826525231111967686595000225197505650894728133582861677708866342235611671164522038142825549317040229820949923303923553774001350000509718566811261278540405126779777846068073298106354193482684891128341672452277454361892347061572175727178425124954437573513318287458097968918979065257132156668142069860026198593827683880819743701022698070439258476966577083977841964262340243416668144811251406041000094823937183574579261020022274524986999947411374546436548621746200310703796737794787453904141256623565405992273232780044143486580781965719786885847609131849614765489145692829213041261855055895367289184288638601323914905458687259397262344401401992679616248112139155866782583256585615237329970184799702671808549356828786826077171397135073736366281615717496446050635616085762169007304712515353679034233518402814758443901562106921491904798863087410454164662113812474837441277399147220495211824963805460569730962066212040331424501029063149191715000704259053439936061092436836358148539306384795779627739435041172570456949223880918363871475402658134901516979880696810132546654902993522186615211143754665442082174844460760290042233093663765374695417016529812374413618316839513825364572929225869283907965732244758799575551631321911114752938393667002908378367700620677837777824312122987697425662538739368992759684150248033714146416163199183942853652532908072212195907320618212922346051157906765193951142348338555171259500797692254292561684313956606533921133976858013628929486614014091905409302303274921043747311274645940022667884545040206144918639058913505300321701506947692185729336434203522846502253586137077707716947887515795580634938830849511293061860566047892861576038678696556372542256963872257673556330652623265085182558348461395182165221842863672074412675121880292632439372906451198537593878372967497572295947782788817433866267662954591425343893513326077701265054769039805316224496981749353417020253334448751615881292037775893605611679449716938905517396857182142426179987281275617610501417176433802324700385874012255762686499291467161975032724541511107231444674431553558005636781128980448606477328109540150759727422349861164871246330128056818499323544056846624667388152864990735164347025038607100946578451908590947123370759744388168643098797943925985734845171095723888890211545231401181192220119711695452624007486044118762058801556073775616142970359986264539635243918411080213951780825742108110379902241859552711410569840868131998942569189831060358898036168233129709579188989230678215578987891956422817521357327047292114243105081494952716986452374787738059077180494303758403017881266678612110384344301354430351326612182023252019659853215515443445891883377018199320342831402262650233212235616754899713955391480200592074794188258901659825637517980012528919208849245250822276580629590776268128747585082625728062074305052108011941815260461092916421878416167352713592326225096044934493180484857369075399509434134684117331467276496527031611246167035566210765477416141013205667511715836595775738536898033998483887243806352493322113496847126734672229552230839932533938380338080080389889152201772609649331778584045491619801655444795622264482666606653859859545959812562139866262596470977786847460797084739603466062294589730622039482914775558239034165147384449038618750763898659893762262704146605821346040178323236493060386643759564123260228977013715712507789898076579213635005354416437766029668231108525375023381293129812029862714362413327121500234782901613144801656042857996711769649199728744915051849745297424576008645936615439489353612509721436095261914992086846152245874878576765256810523772813040847249812742106443097089046703628752504668632737552736937761931108666777147500055247818854189281251633390006487729603034793170463559269767432173597419761473191129889364667126813224032799756710433548670931625049584510846525446997982182521955047985506170156558783591209434105567243857761154362870059879842291822878598156771714545413973342213135131946628137781104874525865657271464178328537898414878138310925246002736999376779898164401268527769720572032283196751329174672240590497976637015251749698859609582777687132066706930050599243916218186614635661500001875128436992409988458870998021751452580580054897987007298856374340549186333057515758478386433298170173366107338077694246949361678022646310077211396431280915581356888596204887723900062363252391371520900834564565001069000345730907121370146615860650210618406752088193679210940719697176859953494298320662985404553073384086753290752459756211680588597159777395191534384706690919298058613139046246887561608393073123077023485570207604835391385800627485137911710041564963797932363225671541452326228515782378996474611539366597609946842258991838218576213755393747053981350007539955074362700268207105327698779522850157230004998415919512643223592798715918996028417444673035018182955223988367823907594393273488502084789416468794570194692425296505191897467933917523481534994031024759955222257245156062329349239556684241694519163182088262585859564548221594507413939448355922296078303739408291539492934403650045514985557013641044462519160496042087205754332217960483398130747062405789428955111889077224214878712185072740028524297412600414729998524973230813190968755106661367473324886936503158735715062348060736890852951431765274266660585348088921498461510034817544629586078158094229784556524906099834191542696027793950783300563191969657699759276236023962972650390949507942903468578067722695298578269223681656523992982788511934009977284161774595472802156794875242027443272731756221781638856100244389063730730582815041592474746008433785047802692255593537119720815861424461624923777272352110074528243053942236422931857143056159838917504318147389747616877606573556483588595277349390949449841242028775614354954443508693107933306709301030463696572999696724915265141406426555817283276744830871101596847373444926462889248344373876097910882585148093570745316775859530683158709894596398516236430819243378232246876758915970901043547489094194663358980174830946259328089270879319045133325636663290416179389422576470741280187030349710608355784472208790940481844643533118529398487583341208326915800834100708796375707834042389024253663119408155013706802422078998253218224216976653574307133942051989516202915572261434364369190376993508727511230739442669781693393081062072958387427182208729512620416319791812312917720040537817617948508513264106145906583728497702433719885056333797752900395557984336764910052677793751690741175792890738352106871512832832969155471642945400604238563592222181817340165527330155612657189407625483134776889748684944792425736459033419495798632214340488863707961277150983924153474799433592573573300780330735632351467450861361244464837177608127193333998164732112507656529684182181325766642197334076256535071845457584843385677460336397576408947654701061351261621388053135143778317017033828091517112110291081623376439727888634112355949107000074505342882326224004233574171852899402177948208298155701381441636026204663508548319901000180908206133699402674798026698854226014035824667564636108802729402858340079228989755275547739413229621312347523002497654893452088000270646607448340938168330258548851630612455118723957084938375901745871281334332949229024558918290128899411893593688095010826633377011002191605312779102257753543376809269283489166002596553699781160325064504888964437794420795351212579382896429341761572119816297355992059233482904213608143029156831864290156227084464136400003320060393902362258150045566556365645219826241161046139116809393175774668018801252595638667692526866430878988440823535886168977589859917911057725068011083334523705854846673236839957936670394311092135154617351665548350500235810484271640049856188952535863044531647288722392787499019460962988016515446258846874093931891108092068781540147172190837883371829078965600578308646083620957353401715927134626158808232323557899568058127684875352226487749749830122335338310982095226619966352389027886116332483496821605866035197896951707520260167862833707884849536859927861287907735386274514869168076331559884804388296110327871117259628876898372082572289780037149336029467183298864647119205796629097050729967946156146278476076562781842233108231006253768768235587121705952360957976074934340899638150316818635093010073150013616671898630945213567329124118889026598128822019267703879189713070013889018763846717000915885164382262373048380392486265133903812630302197315183790888633038600191450743006825853714344701183910430174123539130687187649380168134404544231073384470950587214360640376318452868443554807626432027479821330421570520237266609677767466718381633434184758432085543066030530570768806809438458962109678765995977963504206539597982445555874719806520490715551426899922729764975139758894162898224546577956284025255433594369902631836954700072659551717859956368485337847416619192686546747495982876518112418534976969178901428562975683532647682432246546001847518782648988245251190656669527308138080152230464639119711609476724269850733698055169388565800022694633266986512918075565526071337870565592016105505858617845370236204309743340727607639557262910889170649191078242969699894014721196904838693808211367797342572230195964129520776487795114996169727603803647187773896051543665193326451245632990556238766690130926819910734787611803566261099832922343141385775999548013878085179305927419991017180440713447158719702574535121434031632213531755080703274865717223601487334043972793873462312932613319382055899262842050851014720829267529971050705551343155368939846881797368298735989554169214025757526764461362017010697760143868548027631335119213864742674778838988363766245070508992823160829536394737787074686156835357874243599107262741236494645562658685142034812466799742869767842967386344317140942252932336828760478434705276699380713503460510959904061852185417403253313301006311206872269753345308679231655886988722474171042814557706246094762672575299851819640239087423368638655250628977486658123280218642496071181429605113529514762831419416205596472263226765677019635463690567666834483096678017481931484461798935049139588011955684879435702346469090274845343487791407407210705572884592283015427107876159661443839493862256306869068485072602605726938068565215166351641230386046939062984939809935031217152578993221313009804557747452853859721158242863431709314349423966967679747022396442988102499623777192630199515509998294145675982579719911769020371215353316203141313907755736525012584288798326596290904644156287464776324719939654098641625496684452660281743729731077979012807762544225731954879432466416685023657383304810416972232957444104184361612625654949388581906357647636213482937959205148150266725027304865813467568443657032843243771765428274760399200244535186965937885366518447351191732405523014520506758682253960264222635861035825287061473933841852043040336072561770667829391057796016058025182767783357733683294741274868355336952833997007468953646527872690392646583374215001427376652114279694760715772428026766925347781794826470458988006989570280549390382044402200966931081289054553471351446900749092636032206269267500462856835178490989394435867619473781401028941679947489388008667907398725496268202643897145175461178582773656997488523795023980499998427538959869882088263222600492895760310776059951558509553465122113526444585633519899015802370744341947871076743688259166080737360575793585969437243674872453579734786607999375421419497180778576881902072674694424172884915879077705615577687183271788204784426192351684864061062100426039220097980195390993872278329043279540042476111659358226908797178451949217638598258974651575292162864085562395790886545706159491068614645466794637579365694981075341458483651568065275509489388899594921523794113496078659735848104263133991133503890324284735522267081224652480219668993302979234694938207886193690842580444308242994973736415323917938712509403373976716411204050064569145087388274864898312085799430982914686639642966627718144431426514246372540660925977339049274963846578684923750803075664907326967919526887691180379180018070274958010261371430653564875579428484109840118136350872874877445887974342979284439487690926256283068683547300923187192354706114146162167116278089549297459818345701006998544091028789642480044967683608701918312953473964019312355543342572440616537424699467110026278780368792918519187107446406146648870230855150686419868914395589198765750168309881229678886549962361205883283005760222876028372117035485000133403550718036415734553135381036982176296227869637827966679383952398313380313841881610835416269647272707662353053120733217749068296752146002689466424094706934096926270850919589697619662305642528204856072869144785654310665739634364602485528431867058286737122405422689489895483651026855919380630857439616226715371063621497382314402976301856538434907871635783688480279200539246378449888774912495322478084905015874413660856981499728157324331511676782974427134823006164117637949747928915997761352691686332983035948186087261318015379362137094321360063681522734864808704407488878396428767514034979189659479994193685655213831111046778400090283590910485514124997347378089588110601224734710091318278057845166687707231189432783709824581716601690375431298891419160877230812783518343224251223193024932412541608406000987615950771467103260073736239534668972321543273304552883307433806245474897801014105167889665056719566677313822894725035704128118274877752219445871692957205817498627915229070201218949032063317082237445661070210496407015756063626662086627843838233156119590806788835834749995083694050836802866114764622946540689777810931274505131175739181627618095532896755612681471077421966773840645339625514163113593700965595360188308986403748105810309826347804087501270217263037493976881702476643814058846725873032035834592552183863049653917828477713638940976247699768784874202391639178992058435751651512830212686654026543948383656290429309430144720540665688919339032739892243682446972517912445673526343858486593048576698706869940052814001050213993794073395686147480991345053980758394947355904169286801269656421251376836205325937634224343656028702667068850900136063418702748890816347391821410350646797482104647115041055486910536144130669388349129232804968581911589624521930971519273757681167085491507912433713254841127116883135857392207974251743543768410415984191985146399540629193846514011698040571139321693179978055758397142482268887447028535424669548331008845440071790594899431609573029438196128980224183053218030087720354434434960195943256464414265729543620112028676548194378846488274640967156472407677205933324348442872284846045464258468564902299936944438688578790927435462748495070037985994287928254465976512703268637039912441896387238562664510136626939324184341358088733159781557467169098068865481124865628634313366879347866865677250744936007445037732336524739925244912213217162268366935079761828004683035013374222336842130122355185355541638427384938170650508238651711598278770047830659708207893409575169617804291384559395008240754865395868611807168709110996319085964228847788375819057283940540685984266054565649942692271013889745547224609805361318714094893521038022942165400303835101696978700803721927499953184121127823781951029731053732496052379957125113929880291593479289583269287487910006870777700213893610346706890747273341370933086546604941136123693252813774861233927009601561810596632473429810585469059643646521316688003145150458365390724176873885909755241217334639788077457101979996046303407551303244379242609699033457724142225492962926173508766710085012458702952852829964527679086914318959978191608435980643957609852827286723043251720591733505451897120298190514583769695563921022171659187300753398604786189844042340551870762314164749838963053865648510630611334630031665640577791116990642418588127616793576418152466633135619986526811843197862957959152401819386428901401247235351313333574642141799007829366845346566545825380566022084212004261828945431005681425903211013702155139294482864994357701539237180285454782975526894764513200648912023564731275696836794902448384951721614585054688240404351767141399123445473633784298288782690738983736289829581791307879076462695108327072412749689545070238069533722134240732011204038192696027424226788086741956237398219001233656723427660322694791262814672169813433595213977068581907130083827604934583830371298452018040707080193631382906538257794548046296739598533790995972360331115151254906916015173338670140492487173528395648661855396814608019798347378866330809536360102982772726653703198665999461092648420722434487174170469026632250180116049628681971503343270692601481363306128508905130839099752348704633258985919589484627330074199543228028261778686044346990753392337124480879868502130166223172852771005091408763215963108682708287635435525180034422575282622716427932608531456424888993438269270671121698021093136797627180428148133271591705893672846898591437721267255157878065215284665373807981882037061373070217704017792753328020989411435232528762696972135784774742351444144874648906890016635107715683035284816597471527285017227672536354282972179097019330115349906206829720425153273630514025393668358606534032031225167408546968762686058468790420737885078688966926104710097169066226079962472238558843804870068210209865233200891887448151578190021633058520958401931836627176765531114523900154454913848564006940526966924489583044255874569098677527906255405056808064096594795626137747287441713730472505060554402486369335130775946654055933957882447092407202806331258262199960003584871781482827045648493825188790190900615618337190879632435479777670503832324381674006052171194276569640311873720527198677127608664945024069416847599616583028184847237469431829729427318216584229253040647789595009926973523503922503866664052066581167640577878074637876771868957119173697852309044910689456125035298635128743919306624121433388859439499529865854671724556756160522947569926772698081868967037304350684867297932842097429699402048312030202461332837525799360018215591914411932532623984353111325013565523184526587569077081075790322531419595298675425914185696485127553839011624507202378732120121747245046500519942207187592941265586608064039309470957345563771881952132993554295933685232803887627865217958086635795511841789639346404352994755889655163291310338045273956787004498920910022976430850890740188027922957418533935954420853253175506717299034314381306781548999936989130184428647269226205820575130692827197516087837156223137409937985983263190032558366511622703340598192267479386469025223130171156018529790594690003830569026796608885059452055217409042403658827002799883122743375199314523649512301160078765956306879934087280642545831502925824087103787703861088396497081100978045354931841741559172513180472302143952643630841112337738849415620775813824597400492582910383404411541870425725544822245102063002622175774503710421517721214979520486202229115772343810797788819696937708538305922216946566718402560203736388102022866093946284704421721410169266752041062050488348372510065062609715079642072197595221735024607793625418976336410589067045753343674832098976756534637117541081178646406220718467419219653987355307696509567236158184534291433977971026994522194260225744360186495541861794121733419457769969931244735903440406147239741023567717666579229952429884536703589195759622979179395137331224631767916205982407329186431763248263801413611317974984675540179975796356510460687225948180244397444242121452623001411995783736533353809842425552795833370429021033213050641882206712389412060510579891736705779877362000777648203211697940711298400993908316766539816153816635086531399777743699264443232516100758685880220761289446511636749680247954627238981610434616911480695126372124550394588536838689220039417457077688468858577986554814589326127617776913134961798292455485139759251936391618812232032036002888356582752963773582321291045335745717979472466606178572438677915763770508951108353822448546916563901299530673063155388461886130350688283115970000587010874409606971591809290961678128039584694967175075945860031750611002388349643909088751827197861598631024586082795487794217186136362155877058750080652403123259026305821485921018357515406077672872469201594235695835061356865187454631826867210949617966890183735765819169183253183756171823994888005440290367149846168390254936066952108179217992649852155021566287805171858019111681092617631779777626544074016427054733234651459823690083162985599597090569079061237332274741942008948883035178167846242731574041571071493860219033356844245730535059417891465295364249288431124586705493959314658295619818566215145438067715057309695970355482694882696630085340242640074694979280627669448575273446793458032450579514919026560252386911789624975158066510311903295906334204398703882286305903197628011266471605991997613009244499641985410912766342632143245658112030455348168597983727801596705020788597590508740588354293844169139672994158712480790171989916772264030498395366928663221535771228983977601540026811725286473163674254807341460994397895506907573062123020070105885472864273524506629190529501598133356253324325424647607701117628522420025264467945268222198844408329352483152662848741066256784464747781127036787626798676753684610839670044870985514867584847219626825908458820106490566952784004284792466561727912946898402722452039555909791694031267365557217363611084828004603268537622691950088621872293454026777666084770269199609418582396412324794908099318002137523886650650086580914287528027485283420507446358047397036556830891723387021472567693403164621753114725424782043480379936748589748109659372948853557963369825480588118811443542569280882994393444516014223471187861728062115274672095105963605622718498167945802768735086002956934370459574767012631919975513611771477454098959069111734245552536804872182133266193562494797076883940710320221113462659428356107519804812779665955841305447109164703529691582646675157738434157718417808759986971440817951344270089616158911140586513487052522685162402085452117056834496500397032501863831184476174098244986512772469503888677859970913737384515008333868362673805630964924671584079186697274971351975560131037924404986619655201193057431819351996970780834500642974151114991815258693159242214639159277948353281606790649707914477166634349205514986430394697109381699930566093443671107830659043961247051362089441415852853624611739333948897427162116243320697876363762000037412935966265620560570434657253978365497251650693548331537493929076981632712705138825407012171872269015880203867445905346472556701049205128870620511083969625170345180253302349168998244022657191741145331589076222337975092117017337675836705013468758501301086590039031503725407774507939024595801005812064654851613148323468945131398294357895866720109244074844154671466853230779473121032087336637261025180161166835878688301162044553705902781084452654932216504170899565169069232951029826306547432033999051660473652164218727361338246006970608527028841496594778868159806336706505611475336269909489175709340208423739558568844679030871248064317263117538450732555270608049051969144531552210206881892591097305004143140052969263338172653917997137482781016626487325236417659699973232607548884410567339911576100624942604960514757131223798129454506947992251531645240978920611365242139327132561209584946920539576339921513322605227635578925824528154661945425296981708932183235694874111893088139621131897337119093329514081687419876247446646055306423621115764022210454421326430228548232865514800602039112000458880709844897350291542762771129202376791551461357342649102712863723129233157153358396499731532679005458408503933128742148930925231133765767442346868944358163991717965472466059046672148863563453881362636138799714491111984701732093736692722379214869233786109392550521878239442854713216220628128637134234356257507905512165095516116065550203910473974748182934838724072949672854484420350396676086804162298000363834652844432641043335138625961563609102504292605859012166972334307648870830051633373440041369759425843205507735823472829066202118371112973014333093942631269687671149242664314583174114920490707395050190193207423152392129083186395294828759897812670470670363699964194833265525821773889594037209325189559122508798848154796029241573945124467600623841747600590235596833271770263245289904993223816719072226826466859887560001103723465224374278937696898675989624721292720113760659695556820314211375102720604159051439968459538563997816704844709409319953113863632496913955002968489305613510143268755043539740806580196427966752807354093344449141704276264665343536809777623448786265549348749264050949403462236257586138948658923684510865320304559125258315206051004216583483226879999332928005238365090086893143777731139320276129321954236951588260904579387482944932231041760430854959453866236989977377122836446913221004239756023714807708881193671552777381850563338746162281375935288086776615795444835142851154866519852477216774333563324682316413377656521225807089326955670010432130975669418222490799613525630283439881208912280489562963502587112735226888480697079188758405568491090018045276968880717919682974285141886487083037524706064873634353747347928638847608244200239229127838195710482181003190579351964718366268967520940467066447646836129673669536636234387284018259798036143609589646028078153747944144645406550497616723668546367282279284299849210004705514086631868662164547499014446676509333349716779396582617960862145465450558615324804113660794166298010457129588823474176641465796569238180853820957031372489267177611800019170327371984560786784781879163082519847611095487505523646486933016687018047098559021272577742688675428588903069703829130199776324213839359650923704365772106265995144144413349430406322762948832640395752691976645892452545394285152455575676412948673833937955738761733012075822667696309909952925010763665981302999704077528337364180280047742194160032347342095573105875293067033860362281350324999456594598763197126294922496700562734693302490425176778871707796460149885401799092047760107364164013077680342199665615482826275846473416237228732097525891198521119365116504000317840563172379119923231654048051419629434468068105302988500009295534608877978155591174028087371493494162630538205970810142786272628566952699742795368278369458343919177843319042885056166175155200899605116903703423440868123193280373552189732451808737143232082777712287521126540746364131447041229146392366013789026159994968406247631277227859630485147578062766489433962442357805320498267055395245137107458004429516840711025551677374110979474613990637224851688204605054053372788363287789353138093129220012934464630596220023739375560273194665296917368284442292529682021804711393405817942341300805174254425841303862194960057987725439844148785786927508668118369897831637162938134305872441970926532029580123577656959847979251680570330746297637397333816632831060992293398734170710534808293060866245222555607433292318629973205579473489249506740075839197547536704160101864146485625322404981288521017163792379006900295113820694825204609032507924740112358485105379436718570221916722401086362676839927712485155436494751827155178330260468488584940072547592306917934921772728856349175593159214436823028679322802877924324623942522900585751469658118541434308899555670969048975987096634724371666310397540846473564295359688489275506769857971767103918744468542289880890550624841998614557935425735518684194496359318020049333180035424835588463895740500461235732376806391426695924066933933174102999684037012022131639397695320213150981212331450089584762809647425198675102894061953753142293383910805680809514964610763834882251131644564179353079364004493239673430467440331664906783938457729946639904027245813424119873990511324629697197295668733926718166131442416467368600135119134974728672535069816323112006820345578559755607754635334144297927842701056698024825074952015287171862394010420657520175212766087258697930771896656869671667010981007957727015103185466845358881605955528351674219574140866772701172966711792236346570476105740700298241692248565628901780381578144793841351746909622408483147108314829629221243765003400550056229567731620780106385496734168381076363931589071595473513889990974977934200577597808930550839210787025695115880391225611199646989950549505562172554850795301903226203260989538134783219032344079818699603193016645639906159013009051569746444760982325883167705193152752905127599042832326620877160977088226673439005303971938436129986828641403589596496279393156501069693191199473472596004206619768234331729193867152011174087094266992168925483320263415632970333961126518078430715225721998079947023702287752534688343305901370029062920299065616277260117708625369265756689329433761616945834624226377736193708167056061503008999847491179500014783510963002541756396912909804647611826232100888892419144859079324914994584206450116578209399738549068358138763077629015833407756040550068808069079066129262270376417791891262630540913752678592344589154087053460315876897958458761310994398629464784627373330017211758727407290086970471234055214855442486161264046079219683676438592512063827378181702787087929488905427342773026476734712029959227241947309165261167593274276000911907870237592723147573559679973146608629035158046577238528332322045174186723029978051026056049543676609450698647787173514882157836470403895910353421813086559143707300941504045111633289473571226064294080972095639064113016388283784639266263730687677118685580645495424193758352626918896802744370599231935626564272407448500227536880130305651374836692580252389204145491907220889858488449507849211278588452331401417142589784393759699628375413239947458197678489398701518845838989351313329062806300190769694303371552040458220376546140271573153333328308742422946545622841115471828962769425159703265011828630294552885143588722825301725053484675352275182167485563970812179101288688780924158827261541563703845389638076637181577610566713622596535122629887804744317900662448985403900560938148748799803026588324559793276569421500871104774253681564286277556542578901728070868747542131131313323997488582367048259229792415106917114732641469952673768264796935275071846413155299523066499822557434823426543667628616618037940806675553738720255739234983985093506947660584267465362875560691425075988254669610137857796917290872982154179072805969380754893683614865694336358643205456516567006604141673449323850606119029949034049650636137012132944342574275011113204338799333016808215232408809069211793783277117203320604243497080456782555468159874413581584895897444069073366248191437947854670166480665519266286092646521638370808464215506703459081117563879975846094560079382522376370949130241792597910724327410465888610582295903469695525509271012611669594768507614366213963850255428117576278223895522685385375941021906655546082791913364445659863022814473649483747727813479491620560655239375545205086480338374447842419616600135855088735430501437612503116746507022396182134404870707816480238086536089584416047482230200145408814771075819520112011766714566221237873785724229402934512342709254087572831313030489001665051190891533809353378700385577625491197422936814994685507179871393539617478519015461667590715867810898000857893592817376882973269475103303166056953426800834884538154459368694888729007488071969032847988016814356266324223386308559737429400725917993583908340633635345573503656464510090528128950096148659430169514947878844910991657662260792439347164382482422674963647354854209503655655663779400299135079994904909182643510843035372170880395645340501230990257947379820096587008981476788303700996830757041663201264515954981879246271654156147361169867334867597005097080586415892920546858052020495860609437144542694376376056437648209988998300619958678486449507514087360154479226099440023896161127094152084682851958749771620764903692091467589041949820064623219353527841472567877630660952803432829620389390313870213068664339515723680435485802756236973619520902886698902616507601681918326967079738545891901813053347722538643822615515012051022078109737149641215936079769957381178262661848670049608162798104832815438238668450019193995108525414054148808370177469316340198418033126696457647999413300027878277230753937228164632783500596382563874816314474554559839827274246299659466199844849335151563983020800968053558710038142993612247617453997465927063928980774349523298163400297769882979319121903308282430281956035333557606626387392240413861470221861772522238208299262675497687257894028433407733057707169916264994367242934391719203712279459467943602370771189177846359912710077269830146771400616788411129034236629576800564974011788820103651684614447546942645659904932420256731487804521823808253411320168008705913741211654585943135967409373746735749702928360201471531464379075444709821305230930729555945093426643180772819819709380419505369160617402525696773645369300179540503479695621623489768467770829906274245346099762499003148119588813063625232992163407117023842175770890483599917044602006836867047057581188521446476625837321419002308335114018737965513702397288918495877601509552366945420409312742703495960613805505100462216919922348846984165930824783669111474033984084843878849621918614172173454366763374710831010122239783676661996497904866587296220171066221108138502171152756297730097639932239895960705531411401878460975505960631137899456703702075563216788686580848439397816294673839488807167233273852192595638605877925970436253329458352183310043508290182758325930482907877526527857125345599093934915947377345795109255743513648870961571474789814262926853076158699191388907094484911316232167093696850397579981282135719904015583735899515454263792189607418780491032035365132244902812369510814053290251699473855568176010809727563798696067723260003557640419119801730648280105941573490436557349908768111926597373665720749821624213730797405693166149274008035049343542722127617869886059084869550809006305102168690286470592849296683031138747247863062301381854871883193777597782433310105808912833083829907854456244295787562161168320179031707444569784462717089040469359873176721731833274884025685510657524091137777732873591327719720305790523135629554713292497601202418333616955644043876514311513576455922522586486445209348256891364592460188297434850875759416821106172800042554426706551111234158764404980075961262872906194024821656620674531928172152418371399131158266656244950346471503003164382441061285208434142159805408924485914417661295136141018357818786493173776151266681843926809003763881361200266260609858187644479611277227454386951309779783483143894205847088693776535684168627353890573497514094547595643075951315118969842724575230487991133728821250041890724869670095296083821249525387971633133159659513953575559624016094499178594040448792584603438993702309720936657624720393308907536666689492621469707714340981513857764812464447528472153990441111899926275569742607114648703481997471685126740836725706462707301513958432044943288815471587817939384430425605340557654040693789517212829642141545446435451961313971022257127767587559941303041410426198168411692519548061107804727721096350574327255318672641158751795625979654746055218099198235634471564005954891152579149763621641681443957441028516350342679513383514871354321500497470782254883696410152002417321246617292207241339302741934026899832556603774344454776468305055790101735097727835250624005179153659479265204050393845295238661964130359332340230702131598243005307373492364866158249480160204648934169851691406130620113463533558482942245286807640475308037126559635469266119325091098194020594637740221708992502388543256532681415650835644481935128528811813194920775541380873295857577649465041238006828366101808554405796381409389834218501467606323035078386248309214070442917292792228929513998074089378439385397786844824557097345062085728180877074037406856708018318099685882425791082119131997508377749123635914005833332087659529754520413068020491955013558416897606549664187912099979233688989119007478565020282245885459901832707702844827566110919972006889269665886583389946453388663366407246708066296311385775548275014538152569899523607024315923069531680342177044024735342126464445719977637490321164424978875670606487568122995972361664858190437599014171065050425498957329652306749497286476353598645484143579131383079930591081464017204466001648701284623240940049712003486303812866274286151768731943273080577035171079951214999783161359987251280364140335104062760944981283375956884908445145166941765124995261847976844400570631796110275879583379719575740354474033250546546129486608866878451247360806697666452513037479805354091188843036737318136548260455761294185557031081409207468352664225155515557022773821268475603605185056203801256135447152595376054604575869174214682673952391056204043517046862408296953713319112798554940367734622173032605904502196524478758033380948990124192124360417671836322038201570676128096934541135388599420855838925741252863041424640803206615610329947117761035896187612410830190572806181317570576292113333383322149665397137943974528473095769984167684523564925450752201094752383079669427594786310322756705294243990516933052103702583251617953326573415902153346376937325167190638080698182430919193628410729624231933278306852635657777072611856763466814087194886695402482045652465504628206617074186357067262584539695849498510433484267910306514894808408635931504930077914439742747692722018737346080359059878669760794393558512898278686740308982346408184710005567002779253746891859951299851449100481474718758063268279187227477208172561899892780461744125406969405887133730784844966917654833480688400625138954246967826811897284334747539988149215762374343444363180850323029901116877763790884849356998930982603926391580862098651265845697158555685916643536694341860842195833280169295569376974778525810859812938460899585830194963990110745692190686316130278211177324153176360790290740464913116074792653924016295737680477856002472244783726670291127259584512686003879132612451656398793100474875781993874595320808522201621513506815109666229327553067492946619008619844673622605224343507917184136698594284075393092095964896573070653764665447232382044611082626996463612200276459255980722495270354890744920537729305443080599638950213291685741409219022505054704472042576148487938540275602244492341683207006854156505789830580085514661631892941754436151629394631853633140071450261823597879513205904871070219666528792012872654753207618731964353970819900927116626133727080738779037218374945351431003565711887930034803144755495959290692885608754660859711279144034038631975594497378001295125148055962024152335189932495938142554947074825731046564858375086352516420990383699095375419671938428564124975763202249895212528049316148854086205888508783295390884048085404874207984047535134782273208104548032048147280817357134202214985435683429448494331171222306768190376103192776467777642176567891640129472455428134160177757195280525964167220063475858471098054163072061714908362506984715025797964484752302511961099587513260531151539749817308783118708216352785526791075320461949779101746988144526432184131583609075198994534179030971263783504405630308445293201670404579980019899331350382326043781406175233256024730846335397412055937260054252184134368928567439099619777308455195875112948514775552849852405244836580312510054451708101444455389605333807934280748945324727804513914876315667742217172837667807864573673398326613896064755962842850223996211343383761582563957090134376266743155861714024917477264094535980320217793855796505137059044051272951813731120377272249167260791410046120969601882770803546956390299569634061917351068684119470383047447464196027220583618444369794339659577836676772981399658876848963473713239491024352107300249717630082989169670348850492095905004382961124933457411711255169102353227575936605788275986960595062699554185071403664219425205550813699177731856203605198401505115614257826694600188821884079433281588953304669192618133132342752937639417236634945610517656814463555669508401733633205175134070081525574357609618640897884152436159410749814171863685183031673958482580055999740571939457569892087536180068595623298141432298339528814676719209861453743986938188803171849978286840386690645513165056252078954806162555894664387262865712342059782730907205786646516675445152390634963371678598521231591990160215977482753482929511132764352136714781832825608635766379934668385959207749176823861823509430027075448603382063481297995567828834579136777057294237403618716257751934864543275993983901140178908062398057416747886753727767346761354354869513524754200781595055415511115634611161273681900392715816545881215945219692098554473057556656024036449276568377083380098672426396277356064536376392763326732241635006569957777894733124315899900583603390374976270667531487474835728412020523842156027873801576349746514874631051859118895174112103495229971799826155916541264241735682378575819292608801656445728975392836352144178157800080068952312498492075654934699625604148384807544679228964579079775386366862679659328140436999477185938102509199490786121587844422641056060953869250549930450209880747634425744682612352316860097263443908098474399166244794423048836898767729276332202505190824198890038726698235198059532804901805396910955674892406795806941591519574906172662555289483075989335803715805424700793385782061281989579800413316937453218281859430854498844853842688920342765585298230971459991693688058635078863952400565384725465574074745926733695349099944635819449818536414724340128646716448199238555149320788835316594837429732123924040186354843371724270508852578478187590608385292927811224547333592237749890293587291404675401759747099955171345555154862846975569378272142983877342562838109549854223287125186187177635154299673514074111851489458416297134082097616376616007573714373731398834888971646652186464902866969426128893568437024891910989560637830317332554209231622009194378088558247195676004832399050666503266609615650562426884514594958991562398457507104215829685612784126401986691293177063235275885064559731352974000422439617113427014458317033032287586791225047005754583482879323906543516949179136136037096832307736715802791833722196922795781966042472482411856951042774365478089524384865184212496365814307553480470113621589718477177806482186913010641640080338002722278821614353321089670856524899964055571176648553143712693633730229439861278016596553242404840228628869045366740228513528693556028800964880503177669010909468015144018121678653287786824458763598956246637948016020364771017849672892963068877202235782917951637894571541172928785091405434480895866422234896904934352271697985166927349265803891527798943595438493322966244405661916461459017699875469732496886451134635332504237781883121728552456208051020017856215071135937868426331557548366138405364312856149554182279843416991154121585659948682124513993291735432755240420895083277261727688153007995177481378898875587487526719116754701171420141976320285729623546051358963868245552368890379340912092979171826527269867011679935000660377524363445866008924398495888949983535114101708412232236124355863699670160345380587058000223426913054583437874419191959446351312724277102428229821265796133432866887365186580258830452149633003494798754524478807176216145760340300397496658514642679904763362966305531617676677445638779366652904577986707708097582769492863890211420795353285329426748145592483250974062875417882303994961502073437555343811035700941092761032180115088804058285897019544362706524561798254933014576664634710954368003044896459267979440934060598346010823859042262004466483074448927025322698503519548701710915743463448059876907154544664734726020991357144312558728787897101255738564037383344605024727530024343869137370251095304954156724714353132087661513950921504492434319917038400424482411120923241357718233925590071694806491297199013596009183326934543336683990190608282308707200117069393754787578397991470028307841294821857618006528842110293599190759440768533133296667727856286018353610082358610569224221435957689167365324477441657436014899329489612034652728610727335299936850766791372959444602167436444736434435031731248715062254178576797674688972737660892677025746180251861358893390001106096166765186905464545838874232116667476534773590560668733302285839543934769720998493358708167140777037554929555831945323695003509810433031839739291912717281424000059434188871429103250132213433760863924114321771640460056069042472645489683996291298940756442396650410251875103049730793777495191446310057313551156646632927094882325568085888156585068406644340207974982076527309044023933518499424761739625994170193883651254740829675550607213244014184987144467195080338776625905224796805033318665200902844985025802718956433246682473340749272764479506412851863413526172944944539897244611894649041871908896034050925861706226752827461742810194537463357832508786602658119043868690218398463107173254486559333053318047486786251654572577677938129895923809389539071683235127299053891715947260635700746789974045663229879682405875166234713147424113290897549401219789495496160505404022645795574748787772438864917821577669640356388962763157108491749042507824100050336740325332188494716806692634448717119737476219402143087636605872946327829816137357477160153698442399658197578974598391718684540200597111059984773334997086666124286528509191600829142280148504586376812169499337954585934191798244377978934364703049043122952490930750273646149756487873042207482125396090837714437178769901198082453021078930517360047600524701139419108787265144533964105448084309847776216194174810207672766191684780248752134777764776937720398411069124062341734504148888072213785378626319401596449645213024281315919993036057901960385184790768542500376871978896575112540254910412096604807339896244156483438869563018085296378652037024915884641905156319051644650845983293428991710500626206090633192863554122483775086950741487267093081281212154933968589882327855799649214022269311702239926111742063446946535169698762672278951323693142601371913195014850149182222142971882029681428401114816968190937110504484105625029544144260483499406254964615080110938907074680697898218359301329113297473114227676667514772361562131431289803722806611043452237329071938221069375924355343164348263220027204362973633330994385794271901826022383753211608270582224517233037594897822947196584027104724419647895307767460432747462935335183073070996348663658059922385439310668812841300575294922541859558842121151987289813280156386523569814154141626844034332078818085314673343051168116707559363232496078984581481315061489064672677859035422531109065152191070577652750205001354707731613602856414149151620335990625931413161474408602594494479295150472952415537972973124551213667037351608795142467301037407539571742678454616000412371820789263183927961090175846267350123484860783324250834118893771459260738525141736363226914837675682552696285567707091073601362906820275513142034362944544241128688063638838952132189503453550709755496889420351751175470198950069883379474499225791159885818109627147985509876532180079208904651934885820868517016987403609644912442774461842952072343195022126263821078691253498706303702392489620479716130554359137380544037137689804205573564893566559902010351152573435825283584425249462991001540009002559131375080912873593151199397989891672924430533616352959132258385471610502039303781291559130433083817512939627284227422541600662894266277132674561527399482605835598019046123648764918335226355747625724203982230887504510171350658521980104294192542880563339560085586856663760569965855595191644747038879988358300610120161605064811772112165756633401879245293600937278476437402497330122509887494387623487341070114861545575534785034738972679453293280243426086380097596605829351785973194532764431747903960160414530281105786179874949473745371707052758143462967963505006027706796351386578309520423784336361462420432051041772628522583984715369028057880758860825653511633293474922955211113313606854881410736733676702724603730816686308195674498018984182936955394019325302493915223946887916283569692685618422066033414464455447295378835175414192806620256721311477766077016859194387685034000176067260711836517231174156444439298620590898654199019773724322636147915197779058765369204077149754821343567919031666252979423429025789544001657954384685533252884437992199413218880212571078146271333520907610880325701263232536801261210566291464583560114275812067048805563013156134635595932394909047951449470493662297169212170018673259847677937228933577613052380209493461123611710558535132776876794045296632400245656104694516088252272326811572693870333794578236631741974950654207090579414308070974777110194461417208470038156522319745219693731721649537549241717570694324718623222469120003326688394488633438793708783124188014931997484074117462896086784883551658765544737428128734934605827018001146503429568050191147517289668192873606063430731231558892014028809902719721132238414028820104274072872647583606460718122965799647293640389997678020235752515785114287894713375996415261905452496037849946488734733207835238575910156045684493876743209188572257179964088549078530298608468438244718109190695911081763861349014684862141610482857297043991105714154202801524044947899995387066091823936726568207176771717153910089096589777475041397520305376576851197366268089620264507442526586003004847923009364196426818698707959740154494145714872008614770051528028925134364102353973330699814030077234112550530810993279605215595031476578676996283082105970259142548207698324424255189179069056382784552751577413541429419254173123440496326196084696240998938324894321375025479993701251864442637011810956549461228580414393891098959275924664250672349076900079545531740402387239848340016574486793482657105839609421970287679402080758592548532279031357661420547711011234722842072865615333104315307346759959504546181451087128786504228240644490670212637689245272566184708983298252741307741424244607790464652029455348927854957086623197464853016417098347344546098461665741426542188263738708622731395243045944974184812459451750096685727300381014998163363905352057002750057580209127440811744971250629505234613201738523911951365180360722997571485921552379391200081999827255707568454767073612933379250345139972660216020235513234909667904318133637746829165777639317562830854547296227445295846557090951420082360395605924596843939182877032913626982091873922161484522790454407358449722085271533208366938277673848299295794535436890779611570246277182312110147770048387953170454189904348234513901645212718028500044648732484570424834696935846704250658227284164456744501175490132557492558457837999850268110606510253671996889093559545704465792772336267844873408251253535351086930545323100258667582881348891040977901624922980353793105302417928674335780338856419939962219543310289682984890932326285371009751739154500191438916714199497436843245904480034900412876140758635713811611214189691590289796199291889981965074966354490233931006485791251718374505462697890284594988332437586335210584469960037481500468576370655883994095132464988313719622970860883973778800753845883201404852678037940196275784621209119580175996872104693580426816396385411696980633444508459124608484218585474316818502508431664034089459717520572571047328657114303683268846107043791761948010204979385191380001611048155879046588537108704324529468171134448824875449525191539805432261943227471815254149998318226111642512250021731660065945068243101089319211596139149224428615452243829947071917925829905606693688429715554983938899967358670584747937292339154938819393093661230049159881830119577379740727303784790222898170828283439656519688332803329261247466475579068584950513530093851506905720647015133631250597054756655679054774762262716078405803491407416752899682030120899054671573771297706346772924071068432565837939448315546082191428604761457471012554467682843449011359473459840642334655731521026872235460115320025056249558645683137436758652408284491386482715620461312231314070500871303923748879624623710672808220153301261078402538811051304521726443983672635989763045482546780362098847813660575922003765140385055027051275009684864325715223037810810991415302126080411070956876087912206351630454553549054108356176392234550244373588774317489525399739532659979939450030034713922191101251420566228448146788319451335916294102434584354006260318133629214717087960626983549479841904690744259946127856335919649191052607483157137113873447240332750971881884160625619990533434240585499215456344804351957275128883405454447741440935740921399304034357968234492631718619792175604648854110196435981261886099901006339862791967153391169671508075195414928065508935711647734464925620441480889240347065915844234282415505506291831739249042563212379924816282706923564781509945915304505851398837324995303221834605044459788661591764086709900117589017009788902300282818703005841689946512197596171760154028088858782357020632786481488725894426907941581964147576975927428263449282834148034010968735649944090281753657138660170115836682782542673767624737277043935573484935909080119641396638879406764256101893852881173052254739213368185334325127176265237559112247549449772455713000769083211305219497378847455223879515193383633963806784632915335227551558313979077747682297699492665316543426852710074526418900706436871830517864353420698182789951155619543833714412689110962585464578771344062727189656890165844838294392361837604577482594585085838527025689033850776069145822864016086655122290551396025712332131037339459526055202206509124133787974608438220229102132628740084775218376127143657404194297582262993129748473598246441629392783022215925516070950052256972831031261185613508841046909206439540961223830120823989681448204912994091539968509562435321181321223433840795370952065232380823936568864741653272618796597140937645215077531972545417428282351786286411661794356664218639809724047623087106727622488863923305311421979830838155195309374671759899012023820087892626752628804611671580713535491722780293166297971074532563888631000571234811172559021807964486932019391355073815341315293938172319376073358938326879466398132351324193969293116411953929669063897755689652371136455803847484145616024876227312306092891945193859488052666308673150778283035010940653425740772181685663467029154007471475972490458339317286560409449543883526880743074514265805024342149610859867951452852955696906276043770194159602057383773114970853561128696797718696751382575034749935976985808703128477212398197227064276375776334920391204822724760330668003085051374254293575847376939474633155950853337080158468248043514904751067278220589664723478760769875756542414849170521277493586631882984463898203676780091467536073396882727035838630925019670283450858579205711062860915779693305895475680606955765114674749880783782078718169739230270297232233514491623809278915910207219050146420411193047650500536637794093828321487154027424356235171153328546688885471053521659417668479198847257297766398188659878574539531190946825048987113220709268514775999907085208115932221846816850985472288205275415170956676331844183881541216852481097263808969813538104289066001436576570396449318894470651079772208613963082400725119179690111674505955463892324523995883098612139419444371979986301084519245390108162898947100426750088715627782654681412661431422949442220151233456017834148413382101379200354533403700302193870199385704646224901629357320919914194337431152226856406212005274412460859576843454654394379997542817366471808887231396857504869424958425727514894329085515289144788473823704290850719300626047787800110390705018641301165184774595351444456860762173653921182476015475326635813188158132164523318381834637146770829148315640663658345749424880871847916386154522805376558744288479288947950696316291885027212571521198815522234208421633761979840547230352564428978162422574149729337804809029647681034777987843463809509849119357560945678250537761233108719677362602096239544900555789875007446992177089514878899853129018046601601520065473277209718255010945917759961083955668047273624371673440380128485616862119366224161282227484586043959886214052520179239575747556382076005633539171649322105162845845225561118668688605829215300941936841611914947886097530643870312814514031995120994773255832323121411248772972277802548524932407100884049199355744139244615627596199002391745725361194671340105082561620019776244004241398879479371427062372722989630343835290767699245241828196247262777277601332388929592342395403817427902171391576721854531474084572953520565177012330103459570123755091334641115555906156245808459865533202663416917916110204692583714096152393342839975081852790008902304762431805028881970163083781698284985534073954115165449468208286740887366750721051924348943532990390150747461387027951078607806815713366534314952351645709502678762875656247131989543070454980268883211190848131936182467060278060656092632276666193533373389576556567695065107900491225955857074432089450864907007280240377947261552887518589055918827939196907374727123144795118065862771499924446275308881989970955659913927207450640580946440160364470086461745520514771753746246406894500756044225575945899646303871900440359022322627561448574183334897080132314191987018778854962454787519300169535433697416554543005511644260896980275574768272300042733850776854585437248154537240177652392825524901297822432734287574971078660005124392186930698677542832207378293898144445037743339032412878907173730748968399683060333309385971433776470364338132958067050447584428189089197130927389539279364563113439122404026868562762737447207261543061826917186415791524847237057276459371066795812554985981105747750057334919570496012713160324564714579880688615731951134184883484303997353458711709447622488720662428627588268925704524898917511896167162131963993413992426083463699944098440423242386026580399997414781250875773340105184431721297083996523638252643962547746615393183305853863619599224633033926738283991423930249074665622108696293501639184059821610550548244930539433376962987612647021493672958648959719007603507308750734433375461929053706106849991076325144670901025931892788630442824592033897113431124589407626819135736054330894263748763873615765990169658341701481205221495696495665445516295446856304713717205234341776230797015696267910923509775634574519183038212643223152164368100199366994997731828789952461129789636523233672706359799684831750983417361083274506338623205570592397113325089793018741517551883957335260282860317545156133644973858719990316072012143972381205547781513340585296673942468443820009946446470391532820425813513284156430302107411050958011242033759778041492711009418368775938527319015204703734656919135176735293527410422214435126328821056274699452723527602114743812527167538023559827540128917131154170999229874889896071564423391160010959891554817128475967334950149863413909108005273851413818655623081033383794648669127238367639454293835422871953854615222939894785289717603380898143895138506339990982849263178139721615212822231911118300282145173044220003263830593840112797744004886466357109393198169459530987096762962542977944824836922647474646726474962851267501903478383326917718573164017372933642956513740138809131521527563809088821309225481483342259686729369047994567895369095192902163709421929195376080034021182168100040156194784267126222197445657345625006393836437317998816397396889334044565024924551144598385829605388184603953117359216380657521869445897592840732736234912568703787079509862077276551017515001632839949996750790682371584940301544755624323303491490841700289004317967574855828304955488020779028844506680052762662158593693405304035283207976030487012886149244078280113830455684701341082768096657175295633058110127933117326443957007698805776352444446091634358068767380906169471672044986456884876465581167290820821960312691625642205126888863715362793459610872219124631264327023854648702938451357358828158047133369536349766016088546656123397433389326553020190674968673698953753594713032341490945986352006572188762917727817838858600484759921254218388111463203042167312458599075586722377352410486202108060421376592632276079667339820462285640805033584954034421138108144709915227299928597485045463957918426723770733715832869006544080342143507038296585664829928901974403873712935545414357522691256422137265595775611692357576817497795802658962919927370885611115393612745329104485882949461053735182257426294048648299515440949252063967179800485404300503846207330034718323064833507818889360767500198777072215323684055924440811087494339231134672296743864359508510475083888378851821638716900116377654621972819198907816801478682649247307907560828726837925017115740141156575269046514158952692606132200619151577305901933180969372273406440924530530157823561792828849065984003534162591404801686874044275463810237139430665860133036789563745983183843594724966474512890841689354302673479049319729019198872949000215441231975559867513156090476099934525203689579871882064267366529625247639167768218968796033507927146346959067313668725457049381120205752198698094922145609388679711858148029360703568338076528403811809699490481630144590649897517048344084047059592991025987781095358079579841473924722406705769027741206855565322822652703620274555527795627452041154695284675070408292846136171494291758069984679738335985965525079051646550108279230923924084608005140267178549435674237602849990202221852260068015623929548233473459687100341531161498807675119457229865925203243148629827886234428610620324058107639940101358340851907526885823582521226937297964261028613357477024293466686206448890903647702279221553526753774882109119036637703399945678892849020957197310889922259817186961858864822408362678152680107828205818856594598673790605751147411984900687069084835446264435587608049834047003746795414265752676264478360174805055488627010967996942978836338956287038384761827216177854691371910822978140018565227023913072000918763020326967069518885779406839712450620954351321601360708836080482948630819767500035961928615508832528791668469359113906891220105038298483815340434403212896145368421390172998493732611663899013031903680201700907179263049989998225207930681518920093976517225954081939088677425973937379282780464465207872819332411628394766257574427691192255811510199900381839025359139890369239172252714017654633898400017459239406149967581631348787829333881989449147981982906286624303153982181993490485485347099191517870186175729126410347514579515564174431362237825717829585536655536109706048588080139905065002233023251639396791639819511825266124690296527630539454704309622462922459595960469964843963364287604916165408237881794685332355915987267401434414470672921701523066372325940142295548887034560759496090255812114924655755537670815681726423818474051162698255613276017701276398683026265988003163741960198532835167123458519618597153262997420345744339691619105933990729871218108856836070984386045148722512409945929109382136060866697095140534183142108491919207866241853402894365055021593731862621872600341539762967930734461198684788847995054523180004293802935257857548622813528938945620026082671434505542406415982820440142037315344345612467054600780120954832044977081211502162958183592835839898654509465638529367820722865000193311566668091457674811244682039356743267182013377515837926970568474069665370927813369656432010315594912564498420417740692089647032499362165584231605468082471316379376494412287749211465877293164292891758807823371651804249114917857005259583814233440420244828544495146986293354462331437822245581007723683260577845720204709242190258782457107975510857327596316370461458049562229154174142492504372050795417541814741141735286534645306027280139629828697532746344639428505756799185304830144176352456828377915218445527448157426898965579170165907120090416583097717755210341992700992320469430336588530012531690427573587371703063683894372808377302890278781137603676403722808454364097612701584365813447063046671564662171473585805532800748448260677115655535324181908720455596400127283332008747809005257715607055882827740392197755989282796901685395292325348506770656889066072794235758389749715764326619830319821927080016271668143908672264512637451462512956276817962448919741746225726251243862509147052438778574683735609904590347934250196342490299824563564582916041131656905186144313704564455410974995893179884310730102508939038400239604224972240322593872327138860849469737919891563066668992365480112608308674284372481969683942219568595803568062770016949726303121708801288061187043463236369553065858363276050481073740651945357931188410962528995519821974641667741698035864705752319033183003168537059893136466816778297578213143902526093598376130956953213099989352240880902350270287357661750854899855889231606011112014162893523634917063861137808745350158746685799903670686570673091863209388011446640302119199191932027778089102845767458043806050167036170743341908194885819728805053878739276768060263711360450447762087845298302148461394494254621758152800021743010357085343582285872113910534071958525899490443686107743757177525991618273718428280323782995488559266122002569046538927074870447491791071758321231383872413865819328874759332008924557151460818752836142721973638738499897416471763256349550332817054695083436916308983494670642480093229853546303484992287195787578497938330547925887962459481443592092920345216920129812191792497552592734671591185584087274054289844911073975026491100548428742873761546440351711021992178280761940286105839254218923276504056755864441691261657342889989223813444531428695007116788771790847025161420587708724195301268489740246742177700271135087192081675756513019420152545738807134587289233531759464142422333343525732759339094898457220821192074049466657352431690671053961041192252084992404609073777833719379884740350082614253164531471665808270645921338647625206632463340386563187800619968775464553295195118927178111772816664401302138669904296064125966902336280633489228305990755736150437511488286424391362104931233707030914327202534808827668392746424233977624537473446136784924019460331826827643157285315792113014352307051355845030582480434127227452248264445008903379539220708130835094415926132830686986698497938205863396093942502718509342627639450333805727903777789395667650151041035652322326237217770030205078087543864000692933898537896293215305022045982244968882095682524797522374241629674190889268538671787176557943898555520384505062853546755396700472166243292000262193898900346895851155815309265315138071950367942197139928958816064846882063926116242103917269195354310593886306559460253380655881483336581144549217249686658761526019743846583169258529644786162983680329598007104699234108030288536223197468544645919058453067737588327765321236434036096517234286980358438240417936677268440485259582666656964604377709878889074139824345509422128494938656780859188360851629648921658446769850789823244568395722384527287988178238774509927679685925694727016468327724337759843517975672801080692724489237024717360754376525731298549639177188124040058485494454591143887496384633051007766345185378578492420576364533485989753398324027475638733869696857651852436928226777444474356531695240847477775462466286416778183016740560602558759861216173783881241776450863890820267288782749324383649893831165978272687789643659568874800184626941599490713962844239425370233269999951431702507839388437754318397649083634855534556821459157313003815785619329471490600535813940696118832942718526813791102278774365678688975713381516384331360199681150950397275618238542936485339953577226464463870718006804935102349541027852054667893689488500964442162595172552965716626044085599997026500042703459547050797351321459788142520356543373423045058335799852037051451758213842231036337780093509017804527753621064968773109372532643805983060178204508091835679505651654980594443805958173385178475772712271608706630843954475499597571299339708471581397488991541274673671742732745872064325606235829097957977317124832217914675758011531548958832418171145058072741670246533171394598819151040957435868364487544018391285119731777692907875018871981111473892105633495460500584882683171913909701530590814834776694397611583150090871282247237259060066628845472985943686797419994900982559156046956249543390981965196839865928648329827302844492805766096132278901484021628908127960444542604463675356259346757033555699521529329062829776543366146450142015835237358923079980309618930299329305113069859251741333922231698241970867429136109024605718366140027473123496413997017132437004676829011645229260014384337369672829231197131495125666448291908600240903180511083481732142528860555451868700445670365369029873728359469770510463626183507575034631971991562115453183392634818493596830070987109344100858520251487298833326714156468084796615115543110446290888382143410991801693808630987691919159350795327922932968484823512105951232685705480534338636360401340659361689690003128859063097742892545045007028176826440147325450453080789868661278017285934600165427429659345902407391156604175039057756487419604332750870157174272278794785283634986107065110286877096517701174421062202770570535006320401468137276628249253322518854891491873080246797162034705046207953582251289496986442998115383130832039834019373930479865799126580301191763081948170516158941765211522918446641185041836747661898046885457469832150482052614200586070320365016085590367724971168327488172420060572756295313373475487851155362122818039188251114199662602775892035236001842978642200834877085012727705182213089755857642270531021603729607287841632696019517625167088378676326584692849286474827948213912142909139385708687304645774701391061023011666672946945878655814684956847566834138775613360908626319768522175819526389520608660186868498961716361847315837394557212456900576857883639344764788116997126279371678241070945989211255836335907558672553688497695025039987409624565299744050892790885760179276605826449247080742396128231273881175591013968270749616389420987419265119304921074775059430933724413966197759724348796412710312540097045803164834900449276539079928243255568432634448282297809662168842612105300884403744875586101118771972048877765155660574381204941462713852069548390064220305359852366413737445051695919625040866976240329263715436042438370324302419768771041053636537582131407666997674224802192902215370836241116979228360656071085423718929621117018123145725061662783670423022596848483610965516752682595224437127420183137269845064823818057966725445174475204143397637589792830849232127853999426732687728239437767637689546533440986925388270800742349383861629784667382428857734032634628442445065694098105954774100901596437967639144480878238599380765523224078492578795098462764146302961312518380206609974556566413288090840875362288760252086038658015353881928001174065269546721810507416449964147462397486277808004221440120979515474379499980758903982551675656311114615208153412509848501289951970625735090141157029503085069592223160315746688662219280513778975575310517778994006512435491988312739838172587831121122188054305696530876500804367806896670736156766331165849270924977390685358109536005753220508360674441006193793044973564082412036961405743871693345493044150658649772249940203735188545286217677198872418141095904183498287835307344531149826529222634021657791833231760772608020682471255192686225218528479809803700628251059349011389591712639851492026126570868148254427275159376104686151939389922447007425634637931645793195071096930146038243887655085158388390813249035528000597500119923851715659474304626857879780138546401648321864215875363021060110671974989509748326119580296573125062025422946671265335204781434853372623420879849312874893934958589750323324772933991318583473214744448036732028061824449550946723759551407939476807797082359737505129955596414410447566637997592658198137712125978854665529020957943642182604524638878895698365040288226338854176171665839847036759685725387849157238092928229451934956255918091623983445130843423663490269419326559749381676356473626905774770096950757757909261927359278782007134117200183620274550412363811434605686499555401200883402819996341049616759602384506102414187591820173983034558515614887091396180493284046441953703410966950558495881004162911300361038870020969723009712372588936720830478759794282338006502579935486462747437621351546508000195034315381592019734669945905102522242130929290828148355552417172538516747031108065151409827898279053227638706857026045076272981052280467897530228802011615990852465387152510231463785592483792445214188579966846470320228848514738555409905094367637059818131102641461152294325603695382028806485550172176380973278811397975838700632035952834209420672048563466060431332148750490644668882630463885844697735945252176834729273950460230953637307434384086220927969971588735756648773170812357812412145094373748329882871143110361175250831260309568620941393639135666944395241568579462169121235833988849871302999916871727448041796276256010865803314494796255283322241698993311019777210826792682368312380287145609215223611983804302855185178790025276509646001016478760199085787712816085393107597366270689994129448502135956324255664667871767373229825160412403719104274590622008131701014535521533779476692496443797627132310084743278972914404037239180942410905000556515094011391856679998203670880723460773000170836340888992492210306494238765781195857947358974433608682483898054320592620037873614675098651812663472404028501928307858949328582610895256422159047109740548283959219301099540091176428428453428303827660476525408267978182875354349938998336058315682432426294692567453264132529019579317497595155236856058556316442029514515854697014094506891623603661346919839871299500621214475135018840172827337633476892689997449098782955009063562136907255735463945272927828647683419609196102140675717810849060252526309655731554594589104660301888786450291256431452333509135955148552286778620443747972220045092064585836435730282422791129907428263251779144740959317168038170742271071222627820582737992114666330275024013186178587093407560721414803943170523006144314266798970067624176750918066401915862045616363658143190632459534634397622497438955166947617856013690258572780756601481128872622528597990366083477845100668930259166236142902871459792350564282907703692372153549112994535534375475247493634027311308928686866399503202451522554293437816568050157183348504302055346089385414639663354208998248697862360812088980393238850098708505416008171484109176365728699888161596954197986764484020519181776201476875891734381329377039162709835540376423363961442185620104381414227874370316792544725101113614862190928446668570886187119607978644406696793844426167504283988295568453210379857155110638355606633738207655944030787281074844029765776901417846525579544306239258126842928248273616582686303233258253015530549972594842251944858190128567720140426582958555165220703054785394762938699011268479648834373988670105257912927495973498459588599330841134439489819297746431728474226685670247210872478563927217312676166591987815804425035963617072189933582741125529768197364246703400088369715364103496229465021439845134090582861021855808230183112048810045574269966772393938650108764142648976868737367973092875749127582093744604461351205501081185286158909655966520898646166968235458242681931919452368049005539294787022612332547105634605216561988685333067108620946289601738432601099878277838187566037614405508643707299655053455898605002646910389942081315354872277222610831715845646921230259408954580300781003536222113294746060003935351082903755108943646161755401614467457767603024875934842356849750060555776781334829153657312483056160292492307091280956551901312154952957946968555184806606960705332477175782637832481027970354225071514901381254251408453273536300542277742615706743967405992788643737813586210415281477631020912144343681599438643516179077960207608255094446191520779722356893559800719629037161241893521093242128770192530106917976621440110874284837937834399396624223788796909417992809156799351624294685015284015630057150974378294157274112368658698372311987967243358074678516013362747822685253182994840891232631640320269639785825287512352288513840782800159689565065949976010831508858842016998464632077665780752019503401501383599797258536271394938681934088207233261402961802262147387136070768043019873468534340723613956216843534939143603334360663778411527346188702537510356465870548523839918510434083874302457141774990751891550368002214108092605034898198846751799604467553156343083944448320879929829202759575633522648376154225374939391176792791782825489276227189492152534810663548297995307241182682854744083228230489785314295821549304686329863948932577024411393075951263479542234881426333821085549089522042403126645098787942874385013773128934840060770507178481142594880832449107795635081109708885586357178365121450725427268083883511742402204564805593708634206977808694577891472420705928398194464710193900344505748715374622611949439108387230630332862883676027537372315584057376766253593065996066076170524603983486307271671243804841845681261773307692840130750987840906805367019112130723837566115642717130707121980410953471192671601805422769622214469193052265092174466332864435961380162330725865960319031750863613640021568571575216349560056528123016911338043665180006139873928799276411605931967353345872078793987479726320067766294389679427752722384801016234696064605401606711133681919684667475445719914648232758951193004169114858329512968022685707658327507432821999405797372794696482743400167006181186842356862439350914211379900086833643933566723566111801453885001889102903207195117552095654556326928557238271401720580935254304719956846890030253521238949415802778405095873425172197910188830217930475253197906879254907114332591927129379923306591086457258777378815959551489945315581001570773402691723482757207525505680120817660722823846567119939942768702099595548424288136102496177697387031928843032373678119352867097405786482952707362268852766907056127944410971553005312040461135606858511696210586555550701735112879444822174595701993732593494524025960160118459046464346916771670554655818836836033766418131743113761052100782321618871738353477590247776814491822634274449618781628344880755143069390618573389026357665147197468480122638130763125146149926778192997257039186025818025385726808286957624757825097660167899572080540041332608972462692178000281935780055572585421110512917412916524821182817335643138863837236470618257190827216015664575452950608595018882933203546817474412146045080923795375055372792509722444222799714475127215847824080204904441508792468884585202105990729115871250409291509004079957450038776724501480971202818231875686226399111319845932738706028500414335080464710565295443209265029257136658818572842906538068577147997086304832137674535492711576744688948089617307448680034998667858433755975648002790702800764036159495453251426273444847523527325238560254982152315113557169385756509752530836796709641555646485197168808934002061581826672065416345134363510107221576134617351650085795032773264343851301782492550421692659446925052352737358278829914590837950083996693968868934781351595560931609122347828703278467210788923492074434234113420066493065659724766984924454273073023427759952078628503928442691830581107955841137722397166798561096317257544946986488531491896678034852202286307986967845082186046697034001805827943262838405156941782308757335615077394222721945153604075644000546048098302572675287258507096169870427392441858645280348175414299797770441267462632342921438259941520716581250076482599084922289786676238664368140361344759656937826648188492453342436864297803632677514791964503419138053018329357763318480632955310179730409422763104649128114643598652904555475531689959924207257613464458742254272909195288632501011958126772353387166937245300008945215638230162277188503032684848243673287516379375033001398998182903602948980941282036183585199184639785981193270105704165793214295359604403459441598401089624836808799204296105436098098023454201878671038252838479058676207822683281846985791765624369722187058463853732245495812296799100729978342829723229797060339280234497182599751717678981733497123345861780331753883691485255717279475243530769695504874715243805342992070482116170413394908604533365346800559044298962508962792612127412243898863758286376980840552940543291168731345522730980704136852301910294815738701159688125337404940757615664459146793295958894231455079122747899502846271363029567613183024156971376275370733188745893064473075523332347746729896411748045973200632748012156823630201562813956765198123031968112891242127883602667325551939411601862772411777833602433226493914573936080839414143254884254260257776699059658567789560503367538011560647975712353018581847949742470505983012317451067404310660576830777004938401762783165376754962525990081142343308282749304303919302599176132239537889389736388155069594062629289438575207712481410189706109200133866186078047795999302115837673911737794949099705131272948645538529406042716920203327393685856756261618757206349195905790574639117671896805616011053109701648583871920401557679605420192744289509708607572064606851591939948453789526846295827632677931604815392172941074826312071366230850517917953154181503961059123452254327608445949810652398209517249998779043223974529904819239831599745420029243878799097095907819248611877589140947840256822272185420402781777371763339101953941350221019825672012546388530474455951161085367695691465046588514753676372188194983587000553241752551548326338817659665192402403295917133390186271984205255711739679645715132028060813980702477688900454097761178498307201355080775827318987636551225336119735207728926321282216644264474839033403615606255349339869377655141877031103522799452270350139249114158329458577733092955796053607165189530644670702082316332487621215934047950707393552678393216117960585294120737928733334059416959166353403300043031690425192925379142704130724690297491243546171642767557185072226212914618377262207553793715630043754853303247460945420754323051330563010549344565976187572906732685658563271221303379558149726046543372636204423364094169632666261268298166519855971528030886584773623606859211996014182359837692466286162149089283760327369278961198761584017877304317156297617017005592851652054397364782404777174309858942103243964704094079485102777359011944452511587398513578168950377815625534742211282361287702379081220793712753269187154354925195539238347786628097938161009905162733478394547056467770354242910625378208910672532649564851667918360786891743445669717044646439054848462272813175248299174460591093591495849515498158355993039551488821372602100788709082873937769497616240891414186517448740193555452988931279721582086965410072632138697214675344486939245992088101315953891375378903112952942922499680103082881093759266830264619712809301310955269185914756880765938328174854080599464179061215051447367544475945550670667891298913917138343250645123068983088475146802778136487886754652836706761564990895430504866572840989834809427605572831890600026398450196277056774608352003406903088533811521283458282061241379187128673375706715413929324547430460982972478769681628204532267595895042397617172184890782716485492930269573410501665757260747575690900702983636851539475933640041515062367246752353730449936285240518225159328986648095916819819203235994486100413899288423553157950542512971601123527564833747566877032244534991071378337936511179891598755262561075186574584455359546361676583350239660929328672797456087324662381275757222308172311390547215315996079065250100796612308742400060157954341104591044064480152855627721385320741102707277309567916923759007140639254537954999016657662070568588844474023868456605114791054967829727318162163594150645246623930578903413008543081797689727645060796455553084200796201022820855868826008106525250431675000163562984455805725337110564964212335245112462854725871322998462061610299610864541337688983007461457384767706065524953531869191253813867141490376451859317984255857009740298996366369177423996305057379167136474802900833285489368853520687503772300317328624553044872906553708911415577371995171954632407617385646393831900149752002096714565768479476342192826957086170117914030337526054356485819705451724587541804469235876671203502220394537558944265960908508641048838879521387024061606289160859919304418810689673597588012938453296934033403516857643672339868326890543575673722547020501259501478661719912551876397107470963158984491450727447572577052844486325122250814299558436779980950155230066041647613433932285143226179069920533834276327022626030222215256831173339434647755794554134845743387880595642342313682502098285262895024011463713503943568503462822739949553333903700707893932459793551831415502289107379222691976446728102064524697965174021549953937306662543487745171554361135065117820962888716377285978584715741734316360850818036989525516630602593028101025604612424526004927334849164478390327167331826710504797245941240599806024560764558064572843473672425539551680358513187968045214286634263933791631915240413508929610286233454262263265782790240151943632191485370360352883764849540426638726623424383573259275023874140594812921282301561939649083640851549793371902905449186321169479657798782530221646385156267063662045973168700760608817915420394671692279506629561392126664914997000739335708896028940015417423141410883074963976692087678884867425342085132710874984770557426057962490047918770115680679699697885613367377882227616835588619841669546832288411652615488786600680829989814632740892947220716036991126225478194068852802315298653345633225358123547134246716147588602854849957557264975452047412213778433126712746494657970368482873845718694926164398032919024384336865754509314680522941221402961809775043847886936604217975231895566101350067872985364396665646627771900519461490446663603134956872501267350275882705093016180133272123659263160670693746246060029212549905650296233520028045253899006582690292056346060054039458092526141012845260056978568782733943154800935483317718113152703257416247026751865644626803893805694814688539233859178820664141887975149173903551923685206006570002610562383890688091350433035289216973680276746449918219956974613051007169616869313065194982558919327929616023519514758165119542975058058259226924553343166915676380538919953694471372662910912670213090146573269362889012069875161395286009141871936414413736369436711789064598221468490148901676028796055402582766454928314466882929838549256111604584342167113289176634127248472740857007813229595682641521784302008254004844147470360321804150894221343621739021632487256111515298567907063645394473981257678865693400461832544570325598723297015495346601355898897033737907730041961146415857190475288855735337410805077814934965322263729615943711654320552250547180782576295706441427426329264793449217565174270113797544239687265229632858634795033554564043075429153364046101860101853178079933449229992758663103979135120590065591489977084502932081223338644526482636619301384221383584936623132054002697905968950487103924548006196418005763313152472775700259676453181047088304530020927342828367938399762173901473789917895426893191712217586719748174800567264769831240866043193761773187385357222470933874512554617252053562271858264262705472382778971306802054179582842248903943968871368379163391016362953861941491536526966274198234451607753968706784396022982621740596306478442503948381647299163673847737426013797323377600240986641955974564721762293696629885021032295829874564848271714351702718819156995589479276901884177799935026800960277748558859040925229394008922962351788036773324013105334715768286923314060224000272389852566950906930805077608585549249414617056992498270508848843194848069199002870063910421053601045997192985097026484600655608615392965774850416744185924384961693710028559649974261050806101998440514461193296440021764128337557374508161833163958275869538775026166254414899415656686755495643073454247597270056026799715864472282864306915436436866640844990492052255721357248595457872486667677118040236232182290273627134298158255756136567782848517901232155444509766390338962369952305043639577899450665026684410685810037464216959235339682771591482666477784975026976015913751212889338977633301679928484520925019013858024158543266532076499355114815827993048271111512297401579652193532034173485357277918748775575162605225602651165357172817795876941537878778700559393862375624784612452743669246739514868155513484880532470120582064013408418307134159225363012793554548112237332023725750312589321274110776278664566753039796803425840436336422497274890976793719728235592282805302704969392166198853465728332015849144649035887982289132424060325952712421629263101799425552706917928316399590848085682888412429345317901450737072726718424365994141114752397403960494152264927664058274392237084288072417013410095698849679236890198859578368221431391050969262249528031681952566845173893076215542037030434034288294807849981362094090360895087521508793359285183081070036355273085122183237909761970914570920864051855468272911329730614760176576925637183842830218888096344389738215678472831047012785515601737336836420040711506036210243389895083883798062157070938200556971414085281648795920123451611047631256190269444655105224360299835476800716408331528486143281126226185875597011467288457322772060650277208498237153821019597958705362785733741931704898984567156413969257168566217827991266587466339820037344305916539462155141494919201002181021513451301462736600522651091674391075366159534172990235137253586380582519353985030109186621433643431247983091842575217384026939616920244607300550333224057569214204435983322621616061460757239614272250780996599004664382780340721234317197489633954102279285906519529703390944831211579084999868639657799762487458602464956237831933372358715320473007948106877750595402046003776155146116424019726335806437226673417494120937123926601433040715603478479874026697864394535002502735850208350492272243387384359222198744351004353686345826610406572188277492080791546572710337889204908879858388758245653984895359066592376743111310492373660118899150393739931336836255109164307725386625641971029559128853776565432351894988974503234123237484207356167352520033519673705072708641058213977122924126332751964603004609162305980838203906467824960042812297308446892476547576890782461460844469119774478664949969014063404599721680870872492050767629892877734328831686038348070943023606969836347636225305802296654749251428779568489821353383789994229504988674779415635996811819516707582415709330011939626341332789858845229533981637667608831154235524355807822984342875935989512472665007126790137335545680573819248381753670790606690485808029184091799326613711097036186839993572345490717614151840045822371336168658992931195006925268345121332038971412894816691154857239905827146555741920329564246290069832007345864275462959425814860095481275880075049117674671937406024612924464037967863032649127208595876824425364494342486372037508895268460935007650661239672885366561204588494514897175299050709002148349843695500336237013647892142575349062065871288070552953821689477005853320308065972682421460989360150596701312852648129434245043517367764971823102827339845785608062143585984612324021169199756519299234519035707871057132493633346146280322456592302616375401316512287937324851250544773238189924801190391225935556592093624231351634864271045292274534148683822225016639978549310186038708312675194213519937505461378438033014907205747572041905390023264077834869904351341545798472561006859542131505104275468601002561470444140437848921117219325847436501001332016295691853642414726549678110818902769274009719876878829088643725187936102227657649701564305723807495999994379353246560824198962440520421289833430890158900016362741748677462337649739470435299540981670560078966317689577849431645278018094778707744441187924202780768482456681333822195570157632875522121276130353407471649485368586181404694858368491055027578715376115661885503811624024573361325671276631380509341235121060570349497681796042744867755472630906042300519127150664612070613625031681939445004063277887732276278134084143696960791109037650627190157318839700950451382813411769853166094477627914680401079844576841153460103713331691964075460419152285590133148242923281516771532809578002682789706364131531786623157323309849072439756964855854091674194778923404637089363690065383289724254858878024763613984397891834883191375074085132996478536851236862709490132572592887712209393743215622006171966183587178011474255546989622282460364706471877625009939397939440219391022612653639069503553200711629867245142620835933608233606509114811703391112628547189402267642596207752030904670825598373790562782573853291236146731402157855623079516834000197939842375410708829153489471449597246009802715756364016013707882348248197217677456960577575545372778603430030404193821838552486719379484150940929228418695759970361797961821389391244735230028594814105121872815452017273427096003297665530068104227590786847997834478724181485605935808040847421956166734058781672868869130912012870948693099800396549574611173914810165680747003323733477140884429538680054681871680635986002741806116789061133550609037016540746445705907369662985245191780039730189048563392633875365572976010365609391727806290523353438138074945779398668944014032660235390641703050531376917669454942033702955040550868983925319802810736412930346957763686328386409383754410377708483059808316092499524392323849058480358173501538580345936280474653562133112466341913611634623682650697625745078555470440745420117103177121236899161999281576050502336916289704751923985238871971294765973805337181750728394494412408132699193614462221458303753434055027427443554209697882888042048092189981053125502430746525315736424649932804960366694496815505729805308624616960750339519211816920957543351940931580068073098467540181918098859632425873321262257614811782626208383413922885405044190890098678481206378441338720761438750195981104721288250926646347823145357590173180605779099769079664168671611147057495331821070050087491184990268847250113878652482048061568163094984545155135846609854041335435490598240598491145004612102906417416867992729713709183632305124121174032250318563551168744780319555541776450131165325726512032177791140551707590310014714594136175081522730171513760224281870215959992872173680210774932283477849524872320185174222804608488961212304244851515271762524798788861919249399574250020124013723301630500990400829979271859827535407537484575115717240028142055798661684025811729797139764038388745874067429974855618221462743087302199868679676440589811717758566643234678879778290865028494050452889788286121156965015694555666849146097589596525417472964143452066292785049078545389569469808802163701160793196737506869439549739567965967955694928573700585419432985123558232569582663422488433357650335714342688256381586401326926603903199511324228580767607336657611449650801703411385062144653461060816200388871652806299854407980170219840100744794378944859270269207648217596683849625726607668043570052648143542814161110125510964818126689053481577792390682661834394150423617420910693049215251416783056326331614922387836544572461391071936617899108020221521122325196223310948108960682073466584588587716817993942368164029579278065096781090088522412929474273889532690361361527116427352156907860817706523383807831146509863335271569947521382286072721253592111226768689913794142083068764673978025339518384501566871300256953452391733848542438614046338728060823235023815927573570146663618830711042982284072826835855326207528535274289303222883420617992985826189962762399721425757466380995123803028358080201189153105287038405517362223009723881951691288029491874153283672909407522106194775384174331068618695779193027880380252193601431312128364471329742262584874547358163134907503773090075676744230805748421294845855455064813042674288616002571051313345677523243422761146856533400776925268072085586483192622254274874771741381838011784359591091015712322397399394741701720945357060096694378021786666066187799158123682705983001760628764072812342983340430139604985514272615646546509842035380606262845409493878264637546914056452178036099174566371198311479795825451836384330908888388706058630585032709131541879695542735408163312141689586026496777785288792428313945337905290511619943993428556729030239002096570371115371261006742610452635898312532096016761689467945736127445113544081176990290251462759269517469747381069963508647456894301649080253705172000488706034284665889579444175959974004971819662421077789399871763623503339790002741822924771634948733209133262791489806061930943172811893403593481316972094570722687270719164570506437404188913468739980816175027670421315570527006212688611462586292599097073923382852319443921479780330365200557936278349437787031384286450830307303975810516535847739078221739926999785796286194774002594582574787684671139299111452599377523683365688823503915992691625704113208863272347742796825182131228251726110432926238028747250151625400553283057377591283652220822972655390071670029485096344884187400280251193345192494435024832324110208095974878341660678079783345815136178777469444010494494094249983836338399563376314506926811893707118144327680363525866320797297248677027822277971929104840944452124739836319099257063326388616355989660049513768550848446774408664252270913754391036262544016264060026815102938915261887253513972365611472320956996785675223791869414463715249667827455350747500487926883069016226886484141818677437482901842197095540014248924885538302356531509772076433513555525807696735014044028085790054835718225187234853338185479835427523683028054100776063372261944669125446929390676225392717750206209472022165803838082636656140990982746216525175243415523793453618555858334113318082090100786843327042936326908382650359027442690233386181038443503590755869969677672987583022883568987271346601739821922954214008590138383568531996849844986732608864265284972903713326369853834276621294154213619219824574540731075683296667559132422885231681654220955324609691802797105453842422060723286112257494654442974419261490236143723486835225757458110523553876528271277245351359972240788447426166125301002920632129164625930755107414251890031599210068723593702316284959475034362917632074884295191001589861403719709848960703088318776044027411396540240953514955084280473357892485115873627663604575228013639237901722195651070551666851573250976064260019606112132302965696084909282761251323706533114018975334060138079738740445417511719306840979480411018122051180371994339383057108926564098270668160643946172273451789370068510933508970013056109572615803339707627586730428496107182915689471134468856908020856251819874291464254687385726389628221149214554571098732321508471129269462817473521810144983617489462699529741158772952406168921344138010731983188031565265951797380888442627143241819581844361882130913847474388181335754782545504861213670871339617556633147177549128520745230217461746644305610156171924400225986038533448171564099709666374484556245641870145666049968134652191657215607252649314588485012041371396518763931861889680835591356119011543939965520461626510119646275339837687887399085980569020122193433691821212013676457173819842621130812059724584838263013040915356932249347191669912307906091538636398000409621527720450626223581649387007514246060103671385222773076016769197496061293872837766239028455998988705138825613385966131133395063618914046423751413198825008477114145944687056042688031730497377286910317571261396913976709093056504632766460739904189884253055351935533136903543014902237050605407979810007776410594160508228515997158534373918393050047328482180782805990616276634266480202437891524804607611708229935342268290902250586939242676902574768492002930525367939527233933065824737162981244419275535371321559329995910439524754135979383415674892857615326491876708818807070485877661514750981781814094187609582557266614036094027132430184935601445969855527604878247349639796452935870663214946431233147903761618736047101622924083585304192789668534104190566853076825845221205401136854140090640913835340137434174889602056224617583187612597938703206390177539953875250628568971690563436903516387414488450484202469213711020101018207208298516248969621744505189956028567686318798575161312991070866229802130582296907493410586284741501825527044084846121459530884810449329168948821456565022783032169823501574701117332568175461018208689096344611899489268259406217541054666508913992061371524079661933920710971291289213199242466837831818404554473067702178915218313837107198694788058933724720631832226133594782452825899994964388996193412318326789110369287562065415651924278737578862958539529060583045781005945868544505971968208334863954091915966330706372781849825904003399977930747843258548779337061858796987858776794174043661393680176119513870874310172062593225417357024164352929324809905506222851960232706261384474573815850783407201376597694390143568033352962114154976741342534666591730198070812076568057108976453780606682863752604485470962186164762139581838437302611876148701381663654689641534858605597821578174912620788031019081501490934485403120090041271840206907814534337045847996168576793874723985505437854388728471127420080005773181677851472483485624735790504810735214336139224417896470783857929763677504098262777373591087438768817241125729783290363970063044121951595615502332160954590979704025721317390386948713523173429562341173935255656590186825574635826654538699092215086540637283938569496599888497234506922182912935411635768078811891758164929253746834190327659560146565436078767300236902049790846455622826605101644387165658453971834401776010649677655937185831153013267428439535561756011958557059915025909669391700745760118172453677246819081243022789727378238143550376857663534911779194234741196590085285725758364983797158937286923825043375355058310719514669226276069573065941765776357917676689429865236949694285125727923485423118875218337438680344112918487605443461913794961325898469376646510903137075929319260992622396347383603285745330476238706516312782397998645631008271578804860854993713176692456493828809097944008559140622912663144972704042140237100823897934936897761169232892252016260365724548004349043995712886194193385828689834019323863236018238424583440088958671972429589368908332336068455783914804980144436319232405728761477918076833533603588872838578580660816855411032122640714009748392467023178751427336620533850440993882699107277154805099452002079608195656982531826183222361166460452494202766201783742471299610724380908510476531270015250024552329358426518508241820750199562912016159592801476895923925390850713932474867827259943775851325287451128391813823702253470183695177846465759318331720159716345620278154588710475432909327719670242079522697760716134831806645320381857672196318743171244563084985844837946774812580550160147046243546339951482930499830742397904940868413931069204599817332947778551535039059244588228540436685313631952267786223268629882408381615125422474950422837150391560649146984984523284915377799935946081765445149410556031087745682578355507640125830601028772557278745120474378496130245535836740343900431754944140071534251192566419668608809325835570153768462795463113309329074437192071627212258240592239017783547835149102669889843362661120244560758883886165016195385877146850684825989057262334200200231132396460103197026304134145832406800746134155284327047572872407653388160496317345053098537188408474050836316147746938511089562261499259349844181341063714534232860769109696414130132451669744179842395447022392422303603115635546089674537901329816980158250365826260530806229865932606972969427797442020341949571868408369850074082387252329176513657199126513512290808957773892883991290274778648209040225136593964538794410100930831166914051584128152030136235027088246504024399011438815089529783932540567262406005436815834459132196244178067535885962352931058398424952119788006667612352808171699931920668265099104731546973885711879996318096476000122033330594895432277476844891608543422796508400713059292814971912241614356040514386205399485380733548179271205611248590786101553935215230009947232682954130890658810726383617176392915350326122221109008274882186874677160230254192258441421475022719039272154891461739607251898430968516038255187960452315312703395232293816083272031996673170377007080646162814762540220920277713326719884406398812749334395751666443184879888064712418849837558550373872633422238201282351990455026533281148157066082868227475711342562359350837594162501049758653342248993941821636445928646315160187805348716354581620156930302566939719027408147794620301623669037092134150191788487512791694324333652620944278175023063856123944755681728844076030484734918612180274382730296272045044148283958579554954062445769258152433405832643255016492887078647090100110286153324298062008148700745127674006254254150515703261593241640984562146644763677890564105465504833876418660775208604771128625186841482582005241216556737975580781022225986841909536929435823178051509264401965065592888737639996868530395250300364986391392553703712632912833883316277364517171706255378359668342102482099644007259093375864017534829889041809311124315204347153604903222510029364516251051652989428825233706120612827282845954027279810310156913708792647714697380854773757263879993407421194063015504522630520010207808418080250231044090548049557038332145392882239724882190168750742223825131007914691429836934147981466562036223943469548978477828041699251761359534820704817437012146999127732371387960580213295393945902381322704022092041339006419032720254362197209823676157670916929759419415491861550937980802017309844920673549686210210951373970938344941727026635892420552970998970781425137469803288542168038450013462387865406847940161779003170654992803611888315964547521235078635348688450163544194171123233897559428046162103484280991630534945115459411725613376650013362274685103935631744058057338559582891565665384894912916505190921121723556011883096692607498140791741751969961936645528051805308467549761006288227290841532910606588002388538849985626263007954018898223947693600507431545716134929116524191172910757071168533919384182895152721326431068508869061310017010946213381972056663626310983858962231809616692544220136346998460280486889430151229242396688498831970951762786472015422141069152675085710138636589782820255260457000905744730625335186621715169835731313248007780012582160511160582545713733703246222547065935695443806273596249065341411939328434033971605135166072941981096557954487871111941908891714560038537850076802225499231805112483291165613823910128407803042903572742322941495430546572309807181911501347944332832767086589532100587975722272833688381357129093107899442290304103040258722059462151251151878620256745576585648146125523813324161879148266015386587512119521512625384232486248583417068954077103018569345214169125297692313833918917265017604248600571124757600419297567308276410197765271586016987159497535564228003590318271897139927389967573766998887744264144486691561535591113170302365755889133763860870803301550915209074823361289685860833081362702920437013859418787751625488759629439320698916639436451548537510919592152029829117253263534797246287754563402296737874295233968220733668370009188920049887794659270837302752294212595879003252971071625942658316528597584907972214823604560405434300227316628636799909427669911367795984481353074102715998906876865934296886784197037162692491170346420376844477473273666422039491636567388099762722872699189233159476667810893777680676643750063526890375110488944801702966941925705536185886282219874034095343356834707676497927818205592345175526573063712648865008687500869918647936128068609924244610634888609384602066501722262495021865164683885321238937787114910815140806914387769909591906136222093490368017305927395096979229235335140336689200103135852787309770417191071731725171698789572897961554996647494650500264321529294065916766603668777358944538437787222850215377152709186057254633917535694579522601271698649839547162411445538168606213225107283525809421827126361001774171155908881898775296683838806423572269014751885817232465506605030151516635481400709451980819115961716297087046232647425706322394563440475057228750405599327826043001378759848013481307896666824087907130270731883200987531834632735530951074971112127960972595697988128867024304287320129311859259371901367881593017358001847580737013967548705641934140799774784730487166950303815777460796821962628979358414480928449381630254266517781475786629013894553811500117691199207180193169192675746058713279299359606831577584896980467469413921054262682612477339906915153714962577344645976616326662991939323290784277417387867378701645547828205188891346998572013519016994076062250622823610586014392952288636000729385596094781650884246650797437809124833584859659528476975502717505884822678482391109303473129577574214763539639698783920638844188308073848084106487466268921851217933460829760366747002058091723954400738821821931867320115511986624519130078469734326271041741386044189792249601702332953313752319079869716502299333707150145634334911081708689707908334420430665137066673312967116780534606386974915863466190666389212720933550429051630293819849042962826631906861734575930768170198738905784753427292951808495121197674648462470561669142850015219017735903703585924793471860156421025315806661223062397659921960009410178192574829555334070754274531562365945215764744086318399959387490941987433439255930210256474294861662930946904776065420643074064253296020305664118931108214659008803350519413947397973258020604337435900393741862384907853173688064683428335340577280719897089280420854217838014718289523901615276709354911917021645062676328945512477308808029420378241829378458968090333709189041970104926846140582321089424897132823567327174880254508162339358304577261081485214589048746594938604339500467128528005526141268978949139485282689114902132471892026968893006921103625285648312597154837059427719454136925606321033052107432435519300353926585104268832682193312373059854374939236032397659285258650345727457368498866913836937475891912801555623192617156256016357055705842344792720656210170612042867368382094350474868557129139096234542170007108420455170835325343213963293791864019757852755173602978091755584766759762147039924887455348304906047320739697535775927059907382637510411239440621950463659232308510112615643852552328953318038583500213855449693709022457259751062848995589066801539909385600162260010146065878755930222124036059346827852927430938316436118123835424287405222772973246021372240944273888529914236479043904059521843783824125109817825139338181872084581677915957937536524188907886252240508368634009909494419952727986864046775124452024714979717258040056711313513570797174002341750399319871946448195092628455835682735902325145323667765578195743274708399575478468417195170294421774199025425958052200368735251976920672790170161305183559983274859232874099056459702587179638007018737430202201894446375575058632512277139725367879273986195621381559255768497631507836138495678840356056926037258886530765733167294871440639798475155550974695629960071305516933376042436013653342268863259595056669415772382976625866552197730398783885763813511859205521597562861244676099778636023964092719620488000141900251987548753974919548764808757750261464219741133317184115191193353311110068903760485605450499163939593948603617606703627707026104804384853943901595433985400145602743757142246034936796880206896685957844173123794741111161073423268351975148103694527502441133839140951836822990776720385165646663286850770206776505987623851026098549851263703624284201298374465569184210573369707394979452516675121352264211600398098908096293015990213993862215211506833255852449681481835255497770472256847479622020844257783788539397436914394184056371910751788452970501720393844278458618675875342622029364839085003075144953456277688085917228797259242676583915355204883008176359475672876412677097361602550796774105032196028952184340883259866116226460512330951108053308153435171169998555398322634935949639422866632988411667980178295161042451204296505778175844140967590970249242462025171169110304056600600931678237172129706016632906312624814946857645551263774389876351806162620821784340543692102466160550183771757988024948338122600666194053688452931122353009694528884509919644623686364209404915505000070006150108074789401740275168247449364916355828835640458418977909095351950946533788078817977370317675695283792498152730753969755779954009072687093453927370902509068489801909996490916928158265939043081342167840858096268180671022928298200154096308134714418850221390844270599922993367979183967431768438430589234541069954080278244205067240094820314226298339609824147094565514690656190405559366078255371835749804874011016345012926008041085866014533447392671374971894867625143802018614960322403627289479403034727611019511799785148073469135762736718821758031294120212359026336150879206647883741735745132441474116802528873729428675936030434632134523289084009291547184603516497441285828612165021686935591959791647045425680278277763087653488586716819816409663332701936692042797945784357937506245026922742642913099962185558629402744691602405878108456348385931034002565041051724378812285608554478691783473615138537891754331683468113196526836204655144035095713552760908771309020920705303534861308314037740765994622413592935946916356643007793058759636197263711166827118575552334500705127844807987809201655235321831658660303092889690267753013695616224306239119375461397261374946858665684443942936788043628389864358219527229977305453653277817189805122681093439335230654185671198285946055206346748479701931934071990302870487795911973289221991013723670591325533652931687741708347063193961544533172239877662670935578486256906864145036708150435927379407719158647450899849212042715317592207634794172284327398831043301938548141582572962862377254843421963956838599399437956370855492271824681852496307951861917280591956832309586700424364440394225325460386299688932186718396669421776904042629028277503276275294944299003658482409142417095907254814058398722908834765034158629006941477497896415525623828548709683020142135629517097973931192260037152924292051961065575508340074262925414202428718386423420404327021264575421815932323872398885608158957576722088369335849872410948944440594861130292415924666141463664013137560235134059230212972660613493821610247409858601551980191669750247732004945482606934093914550688564298562484528424065980704383574343124155468332610732794901247528467652179024851559512120448011560360377143626772324821620893300102825615945920753738827997650270549922748661694036698732280296890073789665213795421373888265549332244335739638817974329366586575035443822819258860898838834547458970861504537943893501388012325844630654391887498020947583462186426270228301508335602526538972445393196288239487374222605050977155892857919941912441730635885201165615294780794811637336507581536915631584036422444972010596076555792320676115137083981960774863414750526622294125374718496243073354230096495131532504940619950226726624244803051667110751980655187828490531267117703062107508051205728438486334510181676604467717451230645450160283014527939248522866150088869766751614732748270513761819658156375851803813786743874346503871742657059503035349713345407147442319652944441755265666963831955875166849168663684852160876900706641425896289459479590978526182000054061049931444151311604440886345343741697076392737002028513463611823514292506428879086386606162222866976802668203130559670566826265641242215007454458188949931608029088589764001668778545656716907029964383475914019922633180607682709998406952836649789294277711180908749638677041337804513281094471303926671582792526785229403151560748491127938585500249957581656835940879034024410577489752052718298160525695627810873014991165546208287719311201485925937551951315881206249677181800200808007146731513010588060074615951573732880094510431320476554705247450346978147417893471397847407407769828568816461619802641286045860393015709472176232927811984115126978141682355315051671460871353787599403983813633035648103412307453895287773974117363553208302487835664580866860647035373731831585257908482841941434138854950439739906482117741627898590760166898603129571474338034330101052124534672485201726106047185258639923526429017590250733950770977240862812920941311080084419659721954737801580395261805624436159818918330479192906552484890219445633045092720597014665992120969674481433335137944081644616426151730453442548634689058625718141121080126351933000407794452698108572720845193645289102247362245403421579714295202926231762729511972098016748578298739071444240940127489311594537199565141350777620331977513416229631028290698925500739462705819681575555282013955197255138746044405131700461421508028855656935507322380545756775199526904246829898374202334834203722083159095126359536054766824436699859357111993095552206362788490684626741976521828587405532064173591252096809434985336608866618063506202981333663200119068136755752551131670520923321844698910439885586469845487039593864969632980284094686944272750313123791943717538633186461789671728059015454878558394965230534583622687244291353236114587768295690035501242192052479763880009184503692496037023678930302779465187087600518539517754233737451255403294637865337418762742413726586390363041553993458525384483178193938594336275750340440796128549046416602783004522261248181626455446390124093477255343774757835223527693186789271952378014231366272756407582046822715413452082812025404191388987230808911218802535729391452884999996710278520981771961975219918285561226656648373416832236771449590921913777304637043742352902408326203315424769076465083424545357606512528720647755020481391106820053472288458752884434977519606447227794447271421943996455740142301019119991639188438966650804089373360929366008939593033062493000455434378730565990981469483359455359949627641268989512103767109427667638106144108336737516149562869856463653262181002499887978438560179614344529020116462283609166801947232743147609112085437021732549527843741157003025719714580049166438339761934777631414599060425807474045246983826848146647737251078619441874876193368500074133982178492893504211862047353616424323093997080437403025776683523383121429637994175776888197958458776399670012170723230150930350557788396302572587559247417283863555199505726124081459873648403897969413809614107231953599284048426916897330450683950054359149138095881087119058464259732207847158117091503616657112008639259884600484411197770040831188996679142363226098985465587335717053871000971743447379762728334193109765110368874759692637500423255443137253343164182990271292911239684623660913073025657776926567213996296763053688148035069362708246126131789042008467652881525775903012970074965583468530896318874459259961414185950626660865197053835400231630737387011264557474127465384776765095631456694933827346435735400206163563694312432159209790342722127743180321951084309583763390543427823862538629885164289125121603229823314386637960014103943343670836668121081413725746984341972538705991347710440031548381533967809555858788251396004315816292749502091017433120605343244075626424858873378767616491154104698069825085645594718465690791233268883756893687768738404361131455327812970721397672293501855893462595003804228022238870913205832547247652776922629032439187486342010966528405935466761755277960109038173797184351087111210242460402257705584714258159344905597817693671450234905338335865849512719671564789415973560547645907126721913768880844465955250832924901310518321381346718117966218262247985884047183834073535741993357706196515039674537498153445395895538154273320546330719778849167404060677470287030521986230465029297310788736270279501546827877210181018338197959010028542775197863057266093825878482263302749553536161152620030681209175776736046906804345659617460756144026768641456115813970088309483067333974572230064988817954537729335662209973662248228767832127887638764281131666891359372846877507274958928106798950156494801964137551493295233296884209116868396834484623523021865080828952914425279456536353503059905754588279140388915651550322938348878273163328130678520366017447226133395338586513786216328429807535956538866724244448084976897841158753405571237614585795561306278981121010186791884509583255823263976030464599972965457609929910298771869523672366035702964494780583058942598545201939819307513642248542404981758394364680389484451112363225635664068970270360437561683376713465727659024372952040930110270508919400962341149627314555165184882665760243170898697180328351886021800439528999881758217385112392906715535365218682344739507679187234601606919010913918558473730753699538158332197423522435146516619768717528551471490983868652993479689732457221596217943900335170883696939726269014261607577505224236654585256470671461240913548709907431976884984476447355382558155697077092026023513033429828155478960219493339871937045106615416311861852926669073983916412424384196609551169079503410609213371707021069653785306137902116803964402832753791680643818290882131171670552510473326456316987345520641841624310622876401505173229613608646933565651145540341399908645339280788353391230999030024829846605125674894814019589328671694372199962474581371026510608677094707360608780291244854493754628854472366853512936578078289198055626356630368282674474559826859708573193642286997168092995962535528407505855999306655885123040886491441928013060541186309229569995811728316999959811380519171382982490148847396077216844352652341319448864980777552083540523898519914133107294396835443379880308566644046817398439084726868807888082715105832612460593136797012696328524706316758692931171109893531692988945096911322709419749687123568328285882239905915743750653322466868987830613554821966844950313513130184925508410278521280910358273399312754138378682874505131100314175659856336429662631413671510000817215460032871710516176670620341822747423604128471059369931922066641210674359429945772408510339815115769109995000978015696350392249040023328579932804771336822609865796755659606004129751026701135028599432245744097831413027536641649227527174703619041953829137700023385090612547699929192116882605781151489708855930069057103110169333603062203796534774449421033455245794091619273682325517123283379044461176268565466438762322420640394260822541999656944880761273572018486506347409049323765233846913337880637654052106233475369814325461289196129696935850646505253750198773796235953598190648038312188203386168928562500131213085041410275962522378950858424889673970247442280266042536562339068520738759878189523705733855220341409134591875698640184000590704460448886052301163838970043846115747573980852262771656618385144431669655492566044342776264138978083871755087656197740329873297629049354450421590720634283797073590206967217832193612850126704111963858874124540004159427888391105092204060128910860964323785471687713273131432507009892857660519007012354528580007402749528514461888902489509873476867227882060132119659447792416203960685358248770159448047370486298272663178425351563885547548906955285353633535516933730052631558465047321201771294149378459369114478070165723194215203711148131768949921703493961428985570213347817828699118414873493903831883396609785374501690991300330089280419259037077395065899618072003083680091815015499033915125981003175093611139795591328407484636592750656175617334327864770815491428235330578987880108779434715367782339966121110281706918999842644701342596292187895185869743753158795458305240341645008623561739612896569125564938308652186316727502823510966848083112638683106829526935952979651236858884434368394412276672612554938984395651752516692040343399135179396855720701942691023281045041105260619205107027738479607685385316884070124627886974812063412020745651660200061052339823020894410655338457249383223920515391848328966963208900579851576396632992270860394520344615044961858477281310242740773058676331243478954312936221829617430000733196446903042803405755133068060536176154245469026905111679401517715827752502567786740887944563386103656732863712405690483410129847732016027132781967104684014586184060081060463851354738906382285762343608767112340243794996000217007955304202362960228260553509086769053517849146215053051229473253380234823333909770188130822132899285635403177764753756392706192531752918079679310130656253447815475812991012048421033587577278605031895657485429774611364443206468787132235723672070111643524645127633377537504542320576502546562775865073003158171701046249664500629656709604687078084448836846725326209730484044823735057667870991287086342217819345070052495541828478951682331671599247902982515497757369320304278329996982617802065911211346652174123884312368499851389628611672149128742913845103290574033167887248920821736795308805594976838911681624480382237652077194010505593020596223373522498258553055656610112383571004341974385710223285303374147685006725277310702781176564445287508858725013648956374600202771253176675403171773179634888277313124617060488724407752066429783785349531120068871726025177770893507785009140144698983412237688386166476805511388159744995095720560364102053114824057661979737115322679702390397710247647475609685631671583134320022186242029276297350894468183149325958916826450962108808556938496534609893504386038683562881364780819473240327778878265107727806901094855861661044025455044566591580350132981604423397150021346295164687522788893627713355701637450684167546740167459816430893442598469861784289423278019317389796946799857943841082652401665143517183754723398085700198631997539935503625140523460220745243730828827736081034682175113819435683418247648816733415583875046096916012196967891374364324684052539753961327867933218421932464442461027274428462499212037767148191835288092735983296290443951306736536730231076390186705176607451066079093839143192459033050186045903501580493868814564124014115409847668502014465857249047451721191088838938492927452264258570112656285454042334782872613588212261777411942524783766836249681347842011420414161318796807275240782593509064497790523246450339221832666327198377412623690125486997318148442718223886564991262171139529651063105446903920827372835859917642042514508496988596705941386000859573693498120337841902973694908728459189872160415391830972815110003072099778315878383908415600572225687187511706000687914997905432051540551805312674664771067137779647605408587926274484737959974991075726678857827292613593816329028613106797280852242536348669843107837625802226146074521127167436817021965130220374037602591582552870202112624268267380633496798738395882362779837867016666331659670063308410908180514776332768190800587767962666805684376236337779377038464575306904148888496083103461185625537115161915986879938400916167277326152457891928673894777921127722447061275443926123881081127170634693367764741315968405257556696974248269569813343659167501197173305376558157118554674598869903077159092254545716317176878450344121983059238228370783070717229935968850440729450172223273988326009714139094291219551727852531222997938046682013808148240176645101806145070283006688021334722374113726386060459321628457258071575576084067467592184950047423962470679115403708416661260548619104576673933488320692131280790039969016943304008862111780422107468148713229535013153714479373700877649093804889132790759487004989118488844614302625564780346863071249007831172402370031712522809277336525575467473744397946244836987929986147761440401470191627158274805486748120782398609910130370616498465773217653728422316926277171855445145826849131265440491525091174297799326187750662098103884823500726111581375233869728803739295260806709425251207504093230725107419853951380506371758042230631055685599021912338825610957946341948809091666054279249901440017847027351738517895947653587928846913283911139908171819681553783443961809176803327960043982911974921583039669900734827573860522903709699201963553556811392700266454064244641968511196523959590854200697984298685449957859247270311667155731106170128831719278113101991805983739044065296380086475054429882255318890664307845327043664746752542211680882705959305498581869864115174858006998958909079728620160746372605995665784303486465955662760161978343195933966883329399897945908620197230807157509423776560583768161553183164871593886418362643142387356762011824112636286613601148414358269185330330650543001944540635837727255197420050387426340721979449214910332628880793150057693233025836094269340971912421889520231711757444461154237594242766190389893736108312314045856132909771933441310196577238760231418126902219081983031942022924558510959809484482256513615704770926876841965575277694200825521847623254429867844422728512050041134803558458520125183075190010496876751313103169285238197615464493140032829082012385512782358285232754241937845596387557202240713279531772078799499075839330775662460377753936659801226268806765602884885027084728913205864687558530996478699580109802776991291250928990675547532369472863896746365403174982706006026338821293791873672483604438914933563024647580603996564972165116051167880948515729870609249530536337609495875915317444558655802945635810337000458586591015587857408412170221906369100634321127561607311812381536365988490465750000229866483669063080509315239205847584971775986954230696293600339363117617598333034866263630448327870677065603708877005767727793338958401089110667881231095467238244185651524447544398808410294872297717874961168388462848691878311742122461740989622885753593012843367104514740453785685045337996661349852990653307569576229673755475302320770121336385186843736550736965850376812081001646923201002635434469750866889595269109333999507816791041448210244379452194918783257424366422406123256634465488747610174535868946377305248629212789086424378908063747225694857112304693067117670377533455617737696329753081039927841538528055604419334528152653091797657840057626953401890251089311174190624951966684097171825870943727121419635893208079635278400002850742581084564931497228835625839688124192802391707715512718897831510282733054944994102175971420815891596161094518598986871691470372886389898422639647587395309354460862293141984677615870515426544488717066814334568719929868523475041804366280435718178154863816902652308018928360083582284727798634830055554521306869678676740642023325823591905239895915877441280567595377072436792177549868295649294766300669446577275341288930169604180247623560546801745749171702770023750602006269888110736494309824965579625868120019038852427148504559664757825633000072950092588559776131854232819689218262451911890135595475940402239422044924064789975266931978146259493613399092354466164560352567757871179015332087369460195422090289273927936982088801811369276508944581084860846612660919591095792303725196665631702036846993519390516723205470218731185908540128899774589715500162201654050853228172671870484115030073537967768845577511828484013189240193906206848358426567592742522378056727043575012899347365530142444190360668912107101249051584246132683148454963969059647229141728224842101610651750870293097883149829588500257950704380972589043076204594699096287405368850722727123336772358026356444491106485103516801263758790051396074585925081988019691486249148370490348817771141679012372696817091042748389750994004669438370436537722959585818740568084432881708164665387949990569814046558829779926278498929500372492412719103116072947718933016356485546588922180104807043614291274675997355759911597073824399853591835580911017056106135350748281090850881201581247744893515695062251838544928715637022751159071293632116043719032680190394541169673559495784836433520729572065393496857340560121242791997198605736996821479935993593114188674654968440735216384521946144264302153540306937382954347717784168209474804294181983269186542536426917545346523515604629865173669306704188821940060322446687526037359464096499113321326272682543223343481440523816636647704670359605583184823843948253699630092291384636123194061845476733056236168859118799327551559204302275293548331965442814652001815116614231889694017281226797273373604519316473891305491429275824700199900600615627326594280723391022055030852561009909616537702715231794877992907777463703058191259108875655080274496122257637403976966686166958981667823977351695294724996602410194929802652325610097423381024360766421369917423422457588194574462501372075413890666069437953630128022056705063364586259468591946544813429045332177162712797564429852196213245587637600960104849963991618058361182308668138641302697966231771451085459861642298592229669734924965484540482817979475824909971705243618166960098212183118731929346549667171918996357015223576349377405325990843716670355513322473270097843260717282699856392939617015361681320541344953875703127541723354070710029403516999734170467991043969454932337389431958622269615529886973015995772612566757439065762077449017631606282875776442500957870978526773499635799407700599270240536627258192220861187718350682518492976458532313810989835272347666434463350777409146905551701423792623862686687382457830633116109145993271584684198308635025776969529253897787597186232991282087610738925292729554544980395269352830448007937233457014678505965887457315923987262987205803331206305623894488145303255094142349835657734677719209900860296509784935328651553170501625340092069134162122631794834175646077764264749776480892371142886056749757393419624959482333497207202983255977694396124248559790359580891055762792996195105521395330119304599749626474424746084685954261321332878230788638121859598757889989129925460661348156248904521534703764238216116188452537727829706938754221276325111676195494587537650096784332329917438549215092053492169742199147729857503455877924290819168625580038808183783921794390055749365659673502507385626152108194190593297951178254815081074361083539252963281736004914783316703320391824372910181373778703192447548609895191351880120346934465066352382729869963685134198902368009881815470181737616331361787364406722241916626701671652149357200946853802853068893465885446685393453253539968876238064811619750463472847223196451757443763271499423792585629207272799864620831614206150359256549365910697147740454087129233575483027129571864610943731032267482818773699501588340279950568713717348494788054817051762105778767091050895958367289576176770368051019262374643381161855216917871872437691132063968199754725258638287503375030070317087112989127537979638543264232707886606081858976878026345963814039301196368761424579871599613557282878498242674745239622260444152420254397803270579848889423285794176735478552504315000244116644132832447264304971956783890030799426220196701376338343403799662574749394758574998717299721540498554045034491021786438618400227731758885653404872163896273563538215010761357666713801860886166187040570224855840261295646811611871005835416396757732390960093078068740475905913405207190793080339899251084047292223079767104893258361182616423262475944400534547555875255917599089725966766078137877310253448463682411875354637675062817263440205192092426906292157303311616807732698413939385688287377943155231536846555777309606883266695693720132945879865066852598424526597766382799202885599446831105152848384185075397823607965099469521477877141707922648894152407731160413819834528491494276210782018687460041360241216381111497230368474407647085269817466065086106158310667672649149608759798623586122607089078817355308831702603930258440911922153268903842701009349593783142839018689597668179428851270466364201467910068565642391091038276887914016735377252384703070216123501061932110591008056807842766004159684855523723134604320322278848090548357832716154595640770457946255134261274426367558546830863396751384809096876161072724042643855053124744235983874981866469180290631283974732293633575021903564375082617552903747907324552421924978882776559957849379460487353063983945284934849293382722092983576706321832912564931611436675612901213874501668816421992650106769870879361125987383248123657010818886601624712175961564547602277576765917594664924352709812038973759178166100938235349212087670175581931870766472962596265214761596144745860823413986699227131247552535845558214423682844066396506511210331819743523500213537527250457005640489294862935815439102545148995165430196456134471074928146020738328728732624654585898536789501876237103935426335100355965721623797869162671210563993767029202520279724033395294548822375445185218706701552412213174792732160058946721730834654040072247634009515147753390774190333854762367006798393860702068500640714180901232398527851512022205230571421631646755648787102696641368214517915113723477609465246233126162343725430014282257253373933178239430713143940289194528544390570300256302870381638780906833901381436624124996415834900114008198109986751873635804997594241658400418786674033349415935588363367264476950198552854913013933049679942901650867958241804727950764947030096624447004772356744118398722574760021326911383756402618436505373468737068916362434282067420109482140124853345165610670714108827228922775175095920726919399833783341697701151738186072754042763898589369629159952391993035479673342207122715085872528554652480936629148565617687934442888208060757773041701678706883157473105792009367437218808973715631947686511584094526197242682273306034862149623823709534746294552164899176593103015447125965923513281694087049437625870462456055208413613415908985804732936975523943615572768169702151737332709648394019526956197474612045509421221576456046721156037245030236878533888700543625305653938101054425158557840868716300948860127517720912149491250338665486350082358014756002857789379885544807729204117266524124709475040303771771825841896399350103054928766859974011450502061639972839060112151266091279419628606493030853796554308131487509421220574694320736181973783165753799927374613452344276642495022179801392832425812728202649553298818725561398065441778443100594639179119727460178518897630671365105516678675198849731459586050179873049630779583446311923545900112537030490111186750474569891988274726004126562600092715865459452261793631084016517113436656757959096871664738515961629591308905555999877512098046498816122106205659525358025439208365569504702507347686496769630210669702964310857380150988344043901290917309219570893621925178311901096778468896627230441083424204439786892535237706254280483974284930094643855435750457023445507954203145920145483758852642053845972474945361496980322276520011692302762197185738792353934717893005801085839793315283016600310012106777910651973052234102324117560013604777557028408860023247145375619614569208150773333477642660291121093086040775080167876061303763805850482846169362450980898708036419225802318054426528051582633955614674319636316756764475835176412884322891583100008790981801859536660206122562470632151457918982526669103762977416534395294714642965884245100428685117649650437341425049973950583042242912763406539642479154106863926719564196146317162593496988943729728897168963175018840395531914028864762854913732106190112984425798770440956467305496024285683922647852242625093586154330391230204781842792042290119078099979838434073171377698943969607899551524139883146184915926961976509201097692415208944068133298293677742424835870107275450137973689900809034088610284957707791791312722010219367853403962202059498242203009336748773794131820509717174880761216567950005012735589140508051598674476795582427134935925541898880145440673128868190723836761166140899445911384698319425452890320537939718606641454498021073798050072595353405130699845951080362869105432214698861860878110797771003238274339143857887653988877232876615164363702089785880128235036754220035334341825085086461604589093099962930151346830062737410835020740657056605210911198503979609261567013893369762322240798069279703930881038741509764383393697091306716904932718053138703817939391738064213637828389135882010649446684698300695209222011573441819292585747203041424124064860508458861016983779202995991717319783768539197048157722507492834740401456150000538621597564044810174110631173239970469803958907300162433545569008699588030331810219857353923124199854079183905733926487791146925868917710721215147210193800456776504690216303412270657077446073634210092640642320828825709709581913844515672965842074381289267716621683848664091894949806548850477314682750314016585795718726579716043575608634929786296210404425276092710929390678014149635149216849154000642804314471822906306805219906207760574831744669506984617168519666376076015982235056901763387685935844425002824406512759988966335630891223064805827232507030252777843200225406796075854345799373831433776669822833297093631346229715556928106983140647796240480850390049073359012304876881350843237295067575365812462952542847556127833252223740912297564702026149904904639603051605693494907667205856879390702214710778352080976046118098459769765729614731046160686616809203425062563325017632566505790650162929677158873558446454685606585700105012244411334845484919179838308489291786628651388776006658714759029348388270722647251513251504778593917926627752489575295811264133494040243917298245269095356094962518857701166090156968450360020475953328962480688676336358799358089094969167525631159292514136662182551648393171215198876622938258039538484182148797218505727753691969042232321806892621798358813858713568106657892021922311116872255264641282219281223792158505708589432683032156666368690183330742195326718676689033498194441213014510310258202997344700192492455169262055182190232422253263535970139548330485861564746313345561496349679254285889484118166790159387710465474846659179891797426706715419129896064659607383456488767070677035466859206361420825914864672194544681927004490022335640560083265998505801792680561036848725986010238931869232236500151589436492038317363617435591013470502503736198680650257705985299080485059603162062906949077687738305862249127286453691397620203913548533058824932611751877329138967718146169045057098326138097365262510824124147034985044308210206972481058871034714038571655204988444775418210045927807149005240107180687669424585735912140912582430512230251581760839349960611244156334122213296440803423882006201217518667755648699509100031152574598138768852556325473904503785443032193527153391830648521046620456829537816922476528669261489477361290921924799533376755496517880105214229094429887500267185077697190749484201918411389537205585051977024434765022375605096512361294599250263352353381237090598775312006532796904983145683833268977778666959153272212466582646225023918444264744406666139995161934833704714660062434746130458232174971881163253553575657969430895271730686866398359509963807977935747989470987085592184720302760890826995318287417353319164793991756079896705066952671718554683034298752821447822681815554446143009855951495402294623264521857013100061902475573284975799494929907758215962345655758805810560064820481476986594772335830614061222695487767077955156225526502221017405749407403987479468863780495634560603673821561295137341512492551589493756823751060174880472279994591988587078927237504926008521508817016759057277326626253157394876440665295643421707379715109147040024471691746181689703156572259016610350604792806384485801788859701652296465480511459535586882373143634812543372390182013724982823126977150698843855627258510548979956337815979018436119808601832976957886156022700750256050497344604128787524302579228165045880537403090822786443413771094881167964012778765371185938262601892683161911887124977464254884434327506319958813255254538874816464854925784659015776497415154783846152717327153096262773784705322702664621280262735134382657243183113886842435784662435513514169622853424010864381784848165178300651389033011607133039613927046981382799940141928399270484852297273192949826365390614266954324621459653873712116749879308476172077045650647061649540977428393342316582339921532663488598128984947419402901810331799477541110064203296716504830710125762723569002391735140946881038336550544307923306590061067025174487595454388040030033300033368552841906058348565352759035310792060148420284905573739835209168066531485786626252445199969607261234719442884287621179500276259426799644324709749119515521280341655193872482296634869705879996982431811919962381891951746194202641686090526666261140937850750731192451221317185001374411432278518058405908322466691557026286776913408233293852547719917655234254078291494940757322073855635676208224578195350079553087860263992155950231029270767902561236386661574196015937662885657711660061096366487606321202990441056704833967424471182903817696954833261646276554345838230033215876380891958719902261024998032555970044800789636466611439375386891544121294385172950809713467756601502268948194247616406612864345203709410291589603078196188312014112136731808188523606439141054477531774142022030105214698341699698045032474165703837759149290306050809241931356006661539509892795273110527111306494584995064201824741309729697481477457402999579935811064407394111937931736021086000032897091939554652386693610045743353111474905293299967216773494974669943736489122970529862514683768779256322872708473668426654775306995265426939971951892193262382804361467781124784338576192287348486902673214349886782833184029651764795582591790478160922204865303050226667868417682823224195959527999253675034488047548096570500578418151712805840317934920459931768653290070493031463858857829388009383157335195853687657333970117521807419373469331651444143671192470366332805449406465563782168749864632561681767110805625617286843579664231197799012349471010952395657401209188668626891973390620091989806258160051698614131457112676924568678962209936488313191602311447150859950157897443836003797837054127675649601116995851732152709927584446831273449249002934412300837693285112149869807209967650052764822900243228591090572413860405549899035980150423716074356057513257247488348334995419061739416362121824285474854895605957251549630948199168468131846943999841793008636886104778853557734595706637450949330030842243486175436437202476466835632715384005505434801797346136516483451420451670765781220824512021608558881803170078355745087811606820063480801222158329113141658359680810459596108975805517782741318909762211270722602113296439640562365750252191129630813080379362738849696709988355366623803798117813225599431319707516672473626358905912971302025168171323488954622296236605124484361049846777607129253452258193977112473961348201339769588406151567488991912742964957230756179670920964162881188825763162221287775977516906719763553773543211578491799788658001142381260275953563475638148952443858500938182358532992501184035356175993565844486797370461986907125369158548517462543264507599995183020590689560870467740177368132693376895377517829604422202146252133738542371285284486715335308788426811915111527190692005662173010608271748591053374134990012062665856113904136891220211049011360322442483887759518647417108731858169054284299522548752899634630107373133887637929149865464688531732377358639724800372504639426849260095654259997842083705475006740404437061708366099976791534803792617792856700479490193479024764501203202651899723516300003281181414712873162214610412639535852106128741609984817153377413118065844349289430134863517134055486471166651338043408867694106252879129582762807657958352870577267023065860360164497563272557068714846701152126438186005392003395697340727257604589139198926436461128702407682265671127258017962143807556226393923083592593427109606056733722423309359163220458404257509303089929400881828955907199174142405462998425105836817541632832393432066179355310542640832316390186182731133707653053988828632614863081560564658233891970129134875200524735456951249997685314110750258374576945621811680830980414504544822045452636741210367976014421947359021579188164917396893155639622356776072742306247127390168586792796795244399721353888465928337720362020705407888334047300065480134708002662265672122009637222314353281842589854975685629352753456468681651041202665508423235339277967191845574121250001502928489770147373978895635012502988604497397422202797974439078013303679210288056254720276204231584241461968786183592284203555105498823103802872546847240288760377898270415936020817512933735775831327387838419577594296258113061842505126256137704792838655877552272918960510235109204414268594589465302293207480836512396569422639373101934212365362505275209213368468102878587507457496314448988551498333566771660577140988693311962927847430433263849562051683262394651166959331073899334815996630267906234523276942305102076821840418413088172065687486554725574444619011657195324627113075313277580842442237072155362140123642976538799903385019428189351034607902126832450227711357664500818445801095319313586235978066916344958559904010337289001144107059153395032776024727138703175273453378944485240707535314922334856269136593794215485350160120787351644874654169626282121402512543051815160533727808734801342927094387510609233090377979660145738180853391951408739950500665333132819711977438418765412332560720663686519631940116792086459314777148923429725333140006572950303518067205926035898073439492067478840958655210412234135195940898369837897953632498360169105565856998740353117836237801307081458303402638658451779990728976037228076687535097993974686985010047176679337432730138050294535663790887255714522985735495155744975389856363643731851908246224291800126650451235798938517886559027069828239011942353167921929721050670034453185397803304746124556572184647784666827746438376151607054371527497312801975403711637836930822506730784529461470391027167750106936616410194058625057814985022803289839352494982940293953218659837001821051400466456481762747262033437083505389503722939903359231427347283982344195002697091149567805167392309048163835983526562014686004709216467529056929029894934677828548536365909383387735185743508254019285198306698981453842125460746601669484643338442439278974455160543022685097313637807754655750655140763300937226430933460661720693861834181865871708263237973981295527573205372095578858326684331016294041292826937080467262287640969037390195887692457689172401864500864822151657843988427310832611036799232283060447502225928388410696691946435313132192981609080648758951165336696299366843305327954752080064845953623670452420437924260524563861911023198721476601633679683129380030178950155626496244531276957168562445613332952544353471022260113976423646206638891387732187292998619239306799892397046512964112095927810964591464338410620909765449835719068568919470942941218982077978137371257135674373954568538041690158335994769649015975915093378575249451959044475200194059743280245151297517221465263273197890082798403994015443570108990431690521404365621923289291162714682552838340665302155990771736057833168662568039341668518087355947679793508300473372302381186458614518200569246125202242971979032902240465426895671761845501697353259630859303534857684357665817717969915411130126413192748984500855501034297744167356846722808036329609733597850423199375275946602710023394357223580012759238962222179963559843331542092779078654826837436571806086115039470566046815547945375218437048337828038517932747014852524524179684941038770428397316315813019234145775974913540980649145459530866096214897586685604385383177721729257239970262891722560744154865533812225414705794299809630148264551917196056288955448591282966627197281133646876230755020788852340092716418780630325214965613291742557991584585044422653935784373973954958752374219432348724328682708569592130352455855145534584943202591127832064928954355827557667729477224288393749530585463890821983304459555143310119351336684567484934770252836548909900871888569178736159599701086094647094646868603502425587729371721933762552741633434799409788610005965174210579350741592270237822636486388933568149883329887629278928858096879717411944912772101420623233885826916080804390311003422945258795837450385163512500817043882531898390009914814077485995370864825725597598661998376538484487428021771885379705491583993070310438075413907926932823907868797178818759489372026636615049844635475449271422424684508478640633624847909065333675168498295920635982808305257481134529661398525276179390065335203984244984494654605035366685781031814536950349002694756234776392746871129321098527293330120805333633192864221667815845232387758474381036546686259993456174876644283526558831802738759096203900411299178516287990218108285223332704631040074225518282121848964366052702610959646489350599553127848780160347263389560529538433913094080120874363885299909585017093551782242579245180228089412371101436003277666243790923259437650245123520957341158277517854758332135935026087199356147375881015439265771160847076294594287483007874543334982416593760237167831936585456978608875636686596862636140643972656435949123977679881020356123121464965677429903325649369350559011375302581419570096344900552469267132818839452019947326659253951318008385077495877125714622666117155346154516532716737743913510775124236774172288251922087166430013607947443359152455482229010262129962828220155379488452344071166725657823150807115291755782399453960072404093251820500987372886676549908988729202493188009602395929124439300187553591596011057990571464056591969143918121419074454130007240403811365630931891498899783215296185854456082717981010159408563174814870915287451786031269123814408404459410647277315500222166051131236922030277936925424625544630968314630241423937554238278315680303034892423340915834442878488898953399541692210635974297668556225478982432213278972633307905867857275858425438136733750338056026720235874046600460313522374372565034394504417365817388856573349415639214706739438206565971476527666688072510101207839482305727549194350054213452716508096486565948859319091394068645659949122893776760684449202384149755589390022353312104954405083040365001532931259583537604005446787819197296555938075390225024150992925585055677336160981602881209731947638891164747635099592850102717292484406318432252861942165530287904681021568282438031988590978097471826136652154488540404557654348322380302573292271436410381430379039222268196094036458915689698361387944084994906587293848101711755291594608113186524195022621443245661245349293343318986611994021716447195606940399073252030320398451714967099318239759947982070029209726021089977613626875839076180745428560571789347112751523543113526705303763850364599966583037336885546696224972808499095771092231877239659190187950718082072313281314245489136274896377711752256288584804809126811759805268503644326866927279168799204529955648211903192907499390769851967373125442724343102319731404693168123598737180518124997564686415441175554167035520582044201511307393122135093119909846803826763048833173100360997801088710967247016618616103066632529388143298639261681615438020227980031099535101851358471084094862185415226100333045991358384055501873066795779663461613656817488562815345988809671068974353393575546568180265895346932309763224372483702105785895070898815286459769345439122147120553342929286228723929198005604247123023962065226641617665632378880124610677155728823397892974231750829277919833470833567736847390744144870055771167647733946467179328203937681308242802575779639779684907317480037663883469123132803916173577205624377525734356717815987036566983767218024444283663912192064816964635050617123229457902568024468320156029100156630054538365727931976017586198502768297336417708354230129500849597260391457691868260151098291994782002873350999645003018488295617750914048713039584812953891444811653303085706115081464440127791734000813574080763422754586088952891747306724636821061070793199449971405244650712712390311046358986224415189752607619857418102991195983118396318290372897160662575061153758401181273536281622670546072364968680753116637128112469789395749347715690294723449435418198217930755906178520222991201690379504307418295096566185459651347809024162575696979736273186324963557452241889328079863096867213524872862440074913643036788875483844863926770545549551086671224776434383599554292895611896912752482309700518116981864738136798061407336902819292013192576978112175532430393297865883052584286377247506527307686564823296558200411656586094919097582888417393319835762953132569948060960472605892749097870297009194799960288213414924028988029747621832354876308631969335794510827490589696462963999199656576483030569726702917753816029915700670704439889914106814391641322658145305224924978160138562829317491269155363267065874066433660951423845711201131394207087887405899753231056745359093380847607211006160698758067888796371868025980468752874687418847625230509957462863576551590935428895229787722920565882271670230020065140902778092296712007957960385253450277652145699771472465058806204421686883820394013399677211453276631639187080588838234754368011875138089750778059269646589102412562324211451626403185508731981325787835566851763889753207556752150862963377988153209327949644581696284346570526145695550289825241571576109775950469840325276717710906821102996251763785626077654834629537251528195343768980612810145053386477620022231731503198738010957265863730362825940270510799033178805127049081448508041341929279116107112417394278135339725624895883626245570699682703157373218708241250979002121039415297306142739627617049009125430249272386581090452935598593487420277318310091325527146199105875616379880465968140085178276782929715230316440193785166137143267403924633409808834315024618594644849134483673467745132581108117266983784614253238293981386258893562407312599060603141213086181638870716734551644166390718825266706171209924274048191097249546723043375424546910306541283280109179807383193107010321860979805585975469177035732904886094819441928678057485625240432282520128207607226632067264589981544893643650426231881583667308668286731294335181316872022327634388229865398973260900758504754065547665136388776696296897638686564414507054634611433476618172316960506886584489211721767005406957671513506955855204354480393312426285070872933776665406630830584643156612508950682753750503013176902315728205079344430258511976325352452528037897222125236803141460048204755163192877559969464954915532766624645289972380753760845184401844909376814799482982235303113849316266874708711530137424325378920967478905824127076758722875087710304949192498833070603643331763539347967830685334866116616243631080714214582869393403518970131593657229460525376858710407669376252399424084629458779621329086989119007925384739806200080430909035132116035738055776944941287792131594579824746718313951152290602754283374463880997700692766455356239950546550515986399238546870990366198756806113356563389260891176976743135291259470379952691355773062249209034300506082754467975496419415541875665054407874822890430011150268192333353483956254415589421732479085737301727200807380287205159745234552362765577730232448145957249432732971272992681252530707612504105123986029278388343633735815366687791328018591347630149325700160947593181436812766861857508211643262261040809087131201569976573616911965296539128127153273770322610505872317685011849469077084463371472691627079422361979382188103173110286002065476833129081482382429170953873333766453651827676088097104226998836714274399804685895724649731533359381574973476810232806301825904029971739909953040081625976415922953371501319250439809735210861929788731836257086981502181794244572636672839160727094554043339706820643566564348976021049439860219543929102047272984535007705091152289617054345710710599917030689748822674363075789688877578870370553820591870625731277082845997242708606816744026602149463143992615880748853651502404923467838223405719301613232857250739701751446294619400797094795589551349771817561557071975681772249859240715382706859487516321849879443811587720969815921969173445567176977006136637771341395777773902161487951689571386766149623855476093620998011967394593536979842295291082365755253041999962495827797299309959332646319275594232126463166053346830521521073228140302992832029780447825785921708363720545112487117728184924461064931395958786281869798122551450133333889326640442292003957684080646812280249809910289433720595060900214149859747990583617641703279427665103218025719940622646457084201475785934911292272993730147254547868914634589716095859202685625431443728600395421060904774595882708792824082017114216498328935787102412136290235616961257174342301006084772648571281590607194624650494721117347524629640584522650066197381903020618670894275907640487546935265056129877644346857682522885232031048847845833645484859396437749161438608551925342009381545440782054613107272697238075238262908941972958984343269627605257605777426198316943841460659394811757359571454572533474350310050740246675685842009085752581113498427532328454693241447701469596391872368681302466406585534781401775063650750442235120833456678270047412225741263147995748717213939693029783369803079954805859504153164875735475043888908147865314371244882902161806073220690699263764836323869712916067237820071835719117186498085247214819614091154811908792565927386953888684549490108544186397585901670819880617330756427404372477507047973309149004593958492254996741958521936998848465034375710621597103599907002041064831376803764084805076474756314994475588433788577494402181188488157322720411883320431074439614772830308467520519087196065322736354545408309862497265058834177610157062159613858935372193560244868372277862280143693060750008286704487459403741471656949268045944889514835268804142135562246992582798809048300840236608892522959198020956323584306044027234191231556663287918123048600975661474170990132162765930429660928790272308997982695452537298296039311477626838743607869632572258082027200698452377006532360133307649922824209630787220623489801773027391439661942498348985468547023897161205724521026575690223092910965454423287483163172972649639559307020794115005222221383190740099572686467463975563902798842776490940161917270427085226996902256339010870129345697498374268585734797473192711482657364828764127798136379178592130403116387009053311068264436380074423568007201272503186709552697113241575781896325874573944250938237300006227869856633864391976266874695939696647473357388510227566929673674576566445749250639611051292284436857744641259417136042571131224501114441492351312647910033499485604253995933310832684487268696589542040383271299228125197578105899341132565718253475301156911992309785505714048240535040495508456745781025476696734901546001035209854282609933952013623780909592101979129067619631807235161273706956212194105434063444814628645902038669938158205840924635257950292666650961020072754037745385177903328888981931993734022427702782961849128647060713548616253493082741255872426810273042859781907727642282189505933108095662584135868284527902293005393719196679734994386216567422331964274990127292129625177593030309837536304062923818213696625273808623895590455313181818217934959281689927101723482375003326345394292049625986090489553119071555708925992075310935637540759662064053651610566512662334018328137664171013756826617457008314295932806092943892396349149671158211071840679380468607742428001462098434186524206248625586093078215995872301731394192919456126180360151108759170762171143883631186724793513782837560207803353030717878046921807440219810922361209006706142549449136518769041477674312085192369225855461964527818509074388853511818931039432483379749640012895393389522508744778580898603015795481683792188488678224985123281901708379617763630995385492386216992670055206449728226834013350692490490933353704584822951825935559894828608311821617743705572693029826047354111072561320970566205393224992360891610560059853618800988097158918652287909457163392342585368834290250010080759282410432593867559330770041313770174105513078923839532945734460908946664047813775951152196711627398804541549475030510632910857711265772876406340234707939021992397518806490525971064640852224395681747778890704644801138362157424990675470133816388582460203293413794422241176075534610197861249008000974644231584024222921265254602442325598440048357890955632722731054168460061277713273141849987505621700391238569206637777898398749734426949233492199438211517692129114298606697860866947825817745639689171893772627822402326662300978025511578376019994338810872107685635916912473895199550523946959211973271395532822740446562348028989673554579321935173817982359106523171110566991374272955999612919903446431534824963619034963856010637500561611570540634107914420358704830432391799801622421231262946965522097258614663097610964637523745957615234827039424050951422237865707695374955346372534340122939011972667900649421188108606791289875608194739490387755604766318663278435810863602243619387301396383114747600095846980643551614952359785803667225273926300573592085274539935178607287314898703391135106018924832113964216058943020610417304390855171224027069289055994759068191420492458664152212081816154287072457240682047222945541290892076165789586403509992230371306803968273818828045342228527632132241795155638305053821466732944348247907185568917266485012056679260382764440240814842261982737065927813542780649375682747241546587379323992486753829344419352903054312038774486483091571526634460807277369963809137335511990831532713296180290730218324457463174015431616214716316037334439023255063831914778768345551882566746612611995138597436804180198931705033715444251581416487006807902328614924166050326623957768219608502947713476989386014816504575239182321372330461382017323170339972009667816427699579646720120165684165467613443508992646618149097561626346201884751989133558977392396411926100757643259878180545306718225240590580075765831437666307654694031710956924633814099689631535768979806458968513597324143646199205459402400341033035622147923441593072491227028919780073515369277764715783015360341931319754742902092906733513941825961287152671729305757951883128371178974565706975385090599697798328472218180786206116167499803790296517438325735964110086265143152261225880285061598425926878200281554773678629461538571478309330605228678407966092836170229249351145100564561070883856625511828770348569366734772587781113013829453651633778525491996153459371376009107413136785627373506779878011640437399240890317591907513446923610869624484850728296873541516887320401153144530164255031029109798792159516554984879304238865649257401847096576844602504393656210683602809947822302676300139601607435458962059990517099866001300393468423400746628778410008206152311986774191776914485387042202373509501692023335850569546736103221193470815781858142111839117952287745663479716611270200428070349658658672062085451871753809130498272915491766099351476238261961813232880880014152763793214818062892002607165882627591493379038553860200967842703854625657881318349832609093894763471465596029986396612293889042868398301931422202503006238671821899002666055157939653752518588061960881881943034322868624773345919510024114760846776640525262508199355917450443653247964997563143781942524400669865751610720492334154993687184366553194658075137146252852707622609363453179379556061570439552130109556307586381581793987900940074259841615131349577485287959426697110747005799262535663698763924481493539301624990021256208408315811049633682309582141457125979140991071448169246991280424200138056247211515874261725376776126859557715963676670598952781872800620206833088763141807089857365739569871702834181565315853883136140026496826591164945213142362258759051564705209932174294898039045664113986303079061033357115953627000424011314439190926690450660586470550174502157694314997548797269964409199470961928163181941325338052112914514325005231278600265794901550339445370141228733313670735438764161941527073716954004993506805689735873501220112173067375225398626944894907683656848917870742500212082796482800562768578027079881623360772050083995903007906572682389638567014699727070450053930459062160984574800031125039941875269348777320790763403292782878512146028657459719596681014584189200811563458298987476119686401379525112130047981604206923597848444644977984581388846132006686567317350427090731796682099660043350243936331708398936550128623858216524386809249219940627504707188115783237481688264882302204723090746249521882904319899731053414387917682432025537678905388025133346324122190986591403470000681898031973230090189972616517293491220002908204185536155108181211875753013717006446685391506900727771068737685025026753710525961037475219007944963169086742001267248135096620585472942042950410959816141095297288570611406655380467550694469342522819198528867620073497240770537795025928073650062179815908866978553076953854919806036266040583260128232781570842183387014683129502897984651177146115169132121989655221453675010364718087200025492536200030427485344426079888134965665413689050782867139366946430986328666993649507810417144820504862784321275191602565961823084642139724886409990917021006786397946976301784573259509690367325602093997617977873054168155923042855869850738922283204874944534175122658753696980211875078594409259786344656034325695363343324828749955439681400095677626454292577885170741106777593651779994654989169587081758963482023768908904556299978328418241620716632884425630677441037552341379821039720702631594567089001569805112346140364705246453356598284122266131568359732388979821698296173069401451159944050873550796758353739900914470987434412689425574261560925624302939962804545011666293889073026562730408232956490416966565541748214456332486074187306927615478135864213334379840858796998452781479704119539250885712275535214757459379845626063075807839275738161965734627873567369772642513240920027779952150261121019297085815070389163838526098899712119256415004810564384728257294749909648291552846913605458146006682627771906315051586712718960541599705267427640711794624561403073419230966772818429115361000900557400280097272636068400904996169010746221574738092177824837883251513685458352836017842436126503130910160487653196327996536685270518665535486711941375106398160657513532711996145422490874607908683667354440013091082016523830018112610411938552638153789534859194078084461629493329988275671170452526677992904712852024750362041508726253017394975850558839790654267220048428656917406720883134710542508470022803477471374648121657805434995562540465054904005237290947200491163213206173068483978609538423528190791630571576817036871135262145114785157307910635070650459732333048120559971352284848750929111010939081879010342200144864873508167714486092939087252201677646022938421708270969417640887839784946372173962986935962427817630237775828496210968008915170466712092821316146053105124852431962882647099576659488513562756558538901379558986639872392253597166681716014230385446740492204137441767628363600864073658718433582646676523978479355337643205661340172103725534253170429972547052015952819508603080387705623784267666794298978840775107707168059329018025059242984813490310474972973743732110308153635441333640336924673914936970959880960111611239465237059360576402320394108276890288141813803580664380958005410818235870699277345664923877459633908869864735098602094414430209623704841190582632737135907871165762985288535284941917231343518129344623859565618337143418128749131091014800806792225143408517929296799618686412101823049602212240042135482638816713549829068633744066645639288583354688633633039070109013163221410474953160034253133023096411610036692383877314209471736623979677064748803222984755606873857214256686309568746729244565696434498256360545244924802148190576512431645413655459872022539884460999305273217478490407367551739015310556412649567028087365509882992470331023274700341242939275259179832989088258045925117140811440720073611491425833569775966772119324451183186043521025659873013415240165259106952848761253985547936285182307683239951848971125277987643794886333849931985040130579141169102006823094969436652451088731818362360567025255485125108111765898923097385890784828251192214830570594035833497831148048794357533899088325662326083814371407040914014553355474715154810784839201597600254652711515533220076234634577519745690409547349318477995298985284829422215269954205723512661192074017876887329582799332387663944428127711660720002766616237086997364267839890917979949318459349564944325445573516987986388476519483060392319302320828550539199298914417942316821897616958102495916003317304080301631006939262131790555390703559330072072937331426369987045041168373714721457550416300039793304177980111066244578420472372133025497694195923054097066972059822464782359375760069218358927594327654204396351940815363423787393537047658965922244384085442055646331052000047282798042412910864579094970659344412678186794992226060838827846634366756202127565408182108166379267093000811865771909966551906565192748661895643373499050811000822919606340068244300463359222378152540381591478295251496827625766317185710680700750281749542630257957073775937383183623175591416183108333058279857937727924163849250130387033355350185916651478847910222166886506455244894365621609979040274445251383342934454233616703797581886445403316842526962803269904540295424844511989227613957031239032738753840382485490580281839359945209470444022430706854459265663500149232231365249030195709471026594941924502887449875241981879078293086267393690026469839232061501404950889577264907005955762165436777281960075054801250807973147261402103452569367925813374284275148082911233233877089238534327573228106146919403629770018222114797292934068618789851945794921110985461754540040707297160629133120571798874987315062061532233742942670644220421725088674715974009271061286372952549990546445632267630997817478463413899870111089852021007008412667531223529648871520175660105273897118693804960715516223853294272037991107536026116579396116025351561998699741351433188015693031548562451706448414417030890322851670589241964581013989341519855952000871650022529829744918521405323576961643334785276880034064371269799658655972205101769083647081391084517206103923450263862846122353623182053125658590293503528882125102013761773524794886975883219129196871473120438987932039492979632197334187904316646903610467385062344679798435306707959457198739325951457147025234598985659635865587415292893180352290718906925105767804314901263403094093467992678309707019641338510612797039250175757401311380277952885216234123656922404656539239978009218787074230287540959972807639932169139071912671701583409960266957152232282481125821703699248577253721726253099737189513031109624991071408977718694970001898750781460671010145445100810583780333808917960374649494924657037025500973578895108635470347289375835955349580385965123331553779718678092983478045222709974322370995212192380700499255406720102850267657802373452142442845538314680678122224328601344250221053909035815867957452333120587732420376066487550138723898891387175821670225477611275005217068027041725794509075345221028575776413604625969238254180223239331114409904450623614201806337458278182976453134611601097370571609995991895170252635825892396732667862800613278391837138464862710062653615608556872424562708810666943546995299644042284962193137260944697745937776827086510578249613420319143306378085631075151564231270486594855973991568509798782821303664316475383470108096625452736883439800982911454770465583964218231700476607606850845293256737523141091319372798469567578801795126784896857809914055444070655949280446289542056817326931116790949843100418863982266027021364906355925169612602641827391676499412003221900484309761676944315568005308851104510262257175032546500771311787766137471651661297841520512782418142700109207268363310315872676072543532413024568682389052303736760783566851069504416105129244392730191823739851750838731242371406404235030716239692511176009974313323772681538163758458342433570294780869231648340614239728089765789486427002119529016494909192017952389257304515161358630631621465240281152484010887028589378940767272590846609893318534745569282467179557218354972145939452834585071850824820826773162709524246559431092323463766302977653811946441333356011165490915388281575752300656393540510290329788118680637803809309828882399859430962155040592572235163887013326304980716154235451911001725830628982977862330239858410147398669204088753678731337555810620016908416984469152314176579847357864354462639528707392632980376716280793986658552347564967530956884642739878327896733952766809105414587516249455726117872637936685433694244530519113931460886739927805628642023918942610523919158794505529471362003837301148905538738047715601034491287235907789777574711553007523956629699358012191980500459399321649105805657713977635641962768845816866430966789039639919193227672386834620184611724024584982637512863756112688187998182080970703624442408342669838448828369582948388907289981028224961755411382414470613393198734057302417574126099420910261251369112483048267144946340789847640320647392872725072311447356400538960938684686469151359056124684497301582803854685990971472036409533767797777060538973134168119906607454786615773358854170015039931041633560893314238118597170926071394555832033055524631719773063020061936413337800897015896557673239503717725404936602643797891677351227622363946795090560955463209521632541410579356600035470543835822005357999530976963388723618716400686978599102590690650843584231258601647240980714264022839542613909465145572893287525970626036471005382967670751779009965003974615019623635105106314655733288292612621603324583950849328932136129456585624528923103582708812483594391925329334584541573513894824896063380585491617915608701068438492407850308140503729532888160756458271871190505898856440227175408305906109700654280061742752288647971214546308966252828332828839760458517822869970673486183201767810388340490944201835278732481891228216701998155424274738152123510412344700797970045512105860406690836894887391379905519832632929777078793835012399266164501803550199705569538393988576564311684023817987807485136293244894541895104850402998171105464938818537542966271366745796282392101734080597045833631761816753227430904675674684747620045562240314202669776251303142614423441095082163658425270913385496169875983278256505002058792798074588543808285075599119164937129657328799246595305118524586363656709347082083480464301845297617848629497117264504655858970490615621205334467297355173900604532657760097189625550070733442291117466935821815650279800787645946537282128639126848124342932067168274152002899553518532111740555345367116611206502631135160236845183222787886392565905532791167644379504588467799825724937062471669168065866048534375111540264041202961367732866937008024068393922032017930738864218080200148723664663906247892885595615988455820502945188934092963751964505014071701200541814540871660143195189103638956339112377115120749576818328380278325814980495894342611040994377700955865152725201815422216670702884573929580997598215569395469444597404662443496909214082974979987261601780905183447508854497341646791387930863377007538651975188499783163907677180605286882522362302067208296191776448581489545831569018163245720377372038778220221861100224525327388060763335468642468990071860192613129213361057590202168412326645133882400666172481573717855488279488899824144298098362008408977597856863296846753007329573492044242447855825790343446591869282773853594258848396489496750017886763940587797491545115684150565409660506968014474987138524384641295766695599488892874864836661118639846641379515783432941453431323549469652383322809791867194827182649102580396027828271484800260565411362166859999446875277984136149348404780988989082091349229707976777662484242874910856576827124836589150220238787020610722738908265357949150541604944630256974340442358869216343048622513460065284970398238589978161442679624743726624005586317948628811770558394375608803986538833320263320356654022597596887980535964517415556859834094482640300979666573206221259709319027767024901688806474027352535610821154111806046519799139288816286446867893071752544298368947351416081908668109096105763937575184515428019104682684047276132020757449309453920387061210328176376372609226722326186857106580751233783837598506525090786929269524309234984582080027011338858968317746953103602662342841168862116564471488222294044215066551248943510820615171778299340698567431687912613736530931061594835703309969233144418747965695578070118030873687161870322808002895987350500534793855219380346194889259663895145247066702044690042360581914834736516577694175102164308094396879303636669498644479757039175026639967196255973834110236418985900360707030655118131398377271715328401025118044684085804460529160627467841197061157876269292828614904016940766331161498218641139807333873060898010663558826494881924370917555601375114348115153366883559186405483658891889936740552874753068401294316387192696244353098104795931428698060078027405527287010257882734799891944109652601355280649787522719038099821456413407992058874967364092333769315223852011126718628344756487885075549668010176393038377823813170023107566452215782752289993938391822935437671576895384065022540548716649563739850042640793435638519384963273126503072155243361831491439557857305257803002136377612771758414167551554610049132570547682363530247331539835742240818713619855984363407902932049429292460385924393807883442385127788274129786534760535430931959254899378495573704804657085404489718079754947151878947632120238693230612135290661484894364583015463021187758783470653065901131517937033099557164988910376195414946599568231879266457206926105947671337160851175973627861429589325534814714133583534323156048836934703497361754074439337237309043968476397042690511598328144876312688944675277682260586455371881652412407796894044759927115612991233821823120429450998903183656974632272768756861887219495701275422458120932168891386420268629095603412118075380040715642647800599113015126330659334073382054356268532216860232292117366197432006624902611769039410606686193432283925086048526439143610828623291957477204076926001499057554181768007001719083386216138867627263639862645173824764562816552083946171910146218703351698623728295636161227823933081344821056767582122166137421264141566170544248114712571224904327868528180173450102321696007074027825115825366088863534576430748332137996775029429048210167980742981308295150218657784769365019858043303316293634465263341602999102253988043963560024210667302421192907046267035420741805447436117537705612442914107953222783214353445907413146880846748508908533712842448423139052208867599390557797799359798073567525824760688546303104625362266746445113990564984174483416808356776959982737784804324784480350939330788613507756230667643764596743642264502075139744763703661009207333105746529781709659011222417508121896831948164794811329254558523251031467984669602189254607179001514241445294701945079957863040199420126096046866219552920329219005531594025222410461218535238108241517470717154610964678356576929072284410916685985180197824049519665440358002641322330052521955025540501800097165363556559250828792050355835966803994933570233084486118333362845781537327925137365139910606562101817849156444584850387500321723449201009437532608376457277382955599144730829539013855153590608241837341228909905564153359942403281250015289278810229241559937183366008043002474477482627543721530274331693905026067217652135137692936132019632882997724107208113195809701247683196498237382891050789724200444718295542460647251180192952749100219319268249348567564709127566347756001095675763975538051059827583787974528723775190401494073686132092175341388965813532727690200479915901430171830404383575933342882373430499882850200006144882553432158627894120081056550649603509800220671505526866465676603645168788647277525046115502650918046460902309121557340425170993223102239745032715834403507574653055516757102408201766979790453878869840474209999348256164155932536274878605693675937723712942582044171193763268891558258612319158173912404921131131250274721022878194361749645216966700328487177190192224582574488556444901332366699313498228562299109966221434381871875032681666763094070191948010763128462697845889217828833525234600652330362463368721539389757027256368358597242136873557655035977281876468727225025790635032952463766051118588482765401855131264717699016546827174639086182461071094855798568573339951796956965129026461132776940109242027172496331010480852432606925988077932246812134553850296903575783538265465087571327879225927937364090978088761191533704680272347815328358459434815307075787477977344921326259384110438003470599611656044335590849158199009444213475054434018914631399298860566601725142464924302726996856323496296136276241820296946561908720986846155734103889783947128118608172416233369556432371610444882185614805452224717186929935132586343010183856204443475175697857953971116923727879949382057838754270491703671169562847097874713430006324422258667579517584719702716654894006565754094530120301067787386579333834978717128675901813780915858096746181693715038661687416396376189950551936696921855991860007041901022943282796356432509153610996922971089123325114365722540839112848305375993160262436514246287108487182682367388984696033565957388383868521465871059520506183936290736034429152750884248071365900027363255378333749051577268672555233224042524989542066792342463860857619869700400791075258324812181800582463176411488437439911336278466946885285722701809632941751995292476390362373897973000286794586023630626870308971125498623012180799421758753155093320168251826965381042333226400996736771339347750786132152617015646345827565250218207064346189106644477561168045873665552239057133435816499794030571023460030870493366842853767937681862740741523969547598500011564924258043169461503029777314779372653479880106051018630683754275422272855899677767279576735210109398306103252699273343731353561467832702435552337710246805646457403622162060735339027731706589147985586932487762650310419530083033091301787309874792899652071386705254192015602013189276389884733121674546965040822358992376461735578536773194006662352752067871620942557053118682297042729483225036867641558021849884822425692197091470799295891244627975764562345420587772683761461502130650777326884764765620206342496784802937742888295322733544500857813697377258050952776369224921132197543801807917631137511259205281105486475750076106235320161714889851108913757510537425394299137476190437419502449450143687875091723500818870704625438679022033642770988006112161936115390686742735663523219468725719247054976599438085964810157420040667734941109233159551082167249697051273772662658939832786498263917488753222445794679011180866497848636436618034267871106542312197485520513067330156645691267348197648261587506243270679080271172461023677485723142465182591043674978900733109937560663701289982386089831476222308898866905553676652509419919765274191370897859048512711292451620306538139821202155741989374338844787454108639134857537586526209879569350889762171675089143824633036335121107194116124245464845360427915092388988577638053877696162876044433308618773701077392971038086168119909656374034000589343077605237630475508988017454023331669520463175132826323382908941287051144645559868741894059566377859748006629198194801813629230611154671744273197547891125457969056251928164010522925399998039834361973365944569439180528595265976732358672086132925850511066396029767333740562337770734679597554395897927492486118738858361694409328010089276318840988092373614346120941540678109382676748911647159300708268617145067430426070857805422766833946020084619173533906762103575830114685219071009582166660871880956148179028180199529723778071885196640300064403165036815303365248255029816438564481371522211114571926565510071585432621810444868855154364650093097379030930977528146908131602837308805047574501666585607427990888475782069881227633666971463609523198281963172034225614678857617031415430959558040378750279304417570324885558960162319592481512269975802627029427851891229735067837640340244041046720750361343405774816528331406664632644170835036075334091013021702303712877716312268388499957743580066144995898958814086537685823142283745550534673535021650162699342287380379154556107859167194185925137257056991214693438525758106310985426223518726338575410176916426231048768644420225437236130672459311827929580361999644857205084981948515568724008724193511214069679266331627372073341613288046409665573903715745987283248429049318848253291371481291807434887274749772065279104551851723672257247916536264805599939632557671925994712921860126662646613296356996432970630834828503016737149333501416427680717439441953618110255026523027655034320584063925152827656232084217238216896805233796062613362142850976386642789119099065571268435964219136617672351056400787899321359181585568279501389145725946790163348936221925716300414457261527197734638670650970636826162611536291243859491463394551215014483712195565723440296396205745669466335829632557472740046510587155598689767038773934113701162300982930903747698949456772975227734468616732374400001705748196547958145024931862902381746367629220659460231588767803059433306387937103689013181568643942113050786811047812452954252158167572150247499187779614811134842440084599412348846381665171229000227239875226816215744671086969733308719499467824659758930214094950139381020244103688962181648320218083102103451515259087029494184625531392013103623892686050117300874351805517663517727909943209189751215775616903408483684305065916100389494469750531252502750967474090571414882713274587695906666434495005519066657631377343240470172895102760400058342172474626735900118022495246076742232065481726696618352229023952117124054411465868125989629157157467091885000187705112023767079975373781767059016346850032568628200317817709799866298462206236079647554806302453154083172850000450693020444054913661388347061465324645376503419129221036518132638197830969512301395642778343642558579448389891136459114999958382444495067988492401736252682522164692071157023066146611870022230077436855543784971127963843014883517122005321197598853858686121208848216240091835034182104616220421696793582214700578674340879991194703601782351422274431819420106387528566851155387181010754264495090866348573756561167989769869547568646591511545259084438580558535649249991510331257301404892686769613298442253370862302773891548417114973713215713669494930915912353090337156594298842563165746590365179223420408207632063282214797555451525722832701433006761004722691963778578159577549641816198954906830031398203381404620599103980458325272336230001180853373429108835960456871047072160136702656469374354936874360197931699451750654807397607941106758282457766385252897609159159021752978519188661999130686647448616405853782408617496762366299498901762975699389733841527485058023906646314046208696122012837740845212025671991522930244111765426774069236910405845064611320541546738473249592545719409039363976805959063357436059733996433141707311456319423407978444125823280666010596903012752387688598322292817873895420214375942900568156300270866323926099314561900590824596352891828632323198639808731040014582882321727025324001720400037713734363777956152760636790635719914111915592939988157695023774203286104108810142915452418236183999084629344757965981961762136303679417709961157191966229209633141167905866063870963923326040373537543425420698140144394440908770569495751743514945140863973219071045711530666587653171410121943732336809253395833846419991451506378363325418309035753436648222202378860832917023635029407672429560943868810177690673481182527629520607700695238719755433049242458321276834070087949221667641531371093289768287803957301700790128080762640455758745522284034144076765111086310491686527909502464313421462375650679491752044494643405682092668114294229224799705395402857365794849742926820629340467654161032651329531142957230591493778040236794168779256783884618245105108357368984718441641752025477986293553691422914421322715248607131867096825006661793976673596078806485995497005337996354420576326896164169530364715433530275283086475162824162176190514800669939663341432273166969923003568102280212911409206421492802685847493059474577899515229180802685558674966897979158507858059212779725385635881597676241847814237675762593395756328794239426975567202505354864937114890867079177591390535440294510533680252650761099582620800267855800653825657753303493187315759278141920238347795360220835000034176341508916084970566104188306943457365747547715735687638543816709408621817483850542582837918375550969631657419197907368762675515651630881023722598760000250404134898468607674806040738637484934217672525486804009054041774639697518963654768484912773244694067197707414274004753904205500114964645752095722883142304896494003737378310625771599041580683722835928998133495454587363194562491588692927001544137894953307789778354988779609377186785746264143997911664585548593073382288791338766681774243879421482638595366764498251866901757075564507254632577629835009986227513529506356171275434337066918976655890460336906945746481509094956678186108570056302789193267050197347127104013041117347133781601376019280324633402644793143079075337947702969430484405879133687752163440237754557996772994328396900248579471354869570774201879448145251378092106193692397468919126528344657946864261198243491856040510051424204261522778603339447883634237005897973350908004200382342728722217466907281532928216541101790258636918247858524764085447462767252001591311479855243395719575883513567117180572890887167818264063961481321625034515748569405504307665249135425727669649915971712285291718308443350113438858057653957555007425927053978538732461334941975224412136143674584106824281716747536470877002704023779894639897733928754674278233949070690907498174703405219460237584351142030781471358902500314144561200763994536022941133158906109262166721435258403036571344372193774021483878917215518652707910325668022886849678162677893048176057228128352540524381794363590719346089904142440433245103570611460734805670342470164294653627962626352235098752935981989438884784172291052672643401380476117018894213302119486825077933995377809137517222821324698834156742690894468058752032656772164654350434867774772183685980969424725088523891873462335352851220343591742777815198951715143177377586877463220287888179941439995990689707436439945296826411230245659817399245003852962234244693335899842647459740100590344063033963941449445976115451780389787119327655707211470941434951704576872252356043846221558946868127484047410329882669473708420144057177370591227658142010476765730387237450344548820191268587721374990739972536776084929993729071632532175451971002659720107362857446437710890785256712313325756866379374296758868479246220679929629731807032816541932218667754847642448684104691821565724254855239496337731305240063733543295169698507808471738836535696093498110072013210024728650147221836785689004977020911971886301049799560223061577159094506268093557584231317617365484203622087528074111724680094148316313091575167108912397559728932891509874920752315805255019742632854059847919050892365718878376384202965248179652190632376485123548116417552115818995784062900574683006032659650824478912471244497611410398290981413050041499470464740214705010203505615276794090574267700200713935375038181417610859004722340814394651966481441285566472699439693978610453601769636329171948994871703162102003092902993967775768735648000506613405374959703630234038078942793831531360431193848575556472448017911966812059272915718868197827183813040019840798868352451266276326046739529823508373820808515704410291000672003001236541901984715254518414300684677677887038141699829207199292956297304625603843038547139833276345912359900269155872725666849865433546424182251452728383123257860854490960426555651907855616434249357045456290116778342656515223646810315295513243260847440313898261696967913118151331039154973301716712285715414943318381999926632531738448507296147844336583190175806892082237407280013107292988757232381607560935152405826070733824516100898977428891478480983835865599843532558217464824888909013565076027674176617963081765658391049784992861410210558303412533163665045077817322732846572459983748631695685916568007689494659165997140312481310136097844108970039866560638453430222473773360264712041084732475743655018849656750930997519997484430045951473820906798725840482699410899516360839616993066005810500050783748777500583094142398590295546243483097272196397062100027616043552020986150867329305953052617689927218820098302214153156750283718581179452555279276743546474525058264473751901065301692050223579866711557593381921938374077818075754829391039256573387245728883414471134799685471536048394864334977426990096637773054924888832582847699058344352071175143463231850286229660079078630670300242186035388253315725776186593595441707445263867324443824708192788974087532786491982825642603655323992635474166906717801298588301613610331371038438214852018267349698111639831514848039421605594918762520976205098724107644471166111446699060434061390699870569462123895588752774373175653963473457656334823630109860184455906684358018137581843765948809766150413203869792354575282179945608729716683032155891590557738486588340896342829146409216780851066845969842013125434619258449604600439184383804052812219233021920399462152760285579992290197381003074556420192213642161430845573822440790657740500856632026417813147074861326712710774327791444790758258438420683250785961680684005900704163902869895484671043073272538213589517293464915799787817650181589895554339876873706610852967616231513806796389562111217255102590339230001789746400163342617444143138778972980282568501185634901672810252558391391518707162736142468040794299893830777341688539324055703135201304730366650671389202438404213169245127364762987921179926049759690575100607399254429453784896449837961061537712448672705250055936075123826341796210120079242676067785675425628278571611864046244704034255499669610753744570333287669123825241538110463106864936452519292809490504578569770846213749245510255998187188461718847235599231435330484193787050501980849264932690730995615889303561688945688521278882946790803865543931280091168974060523590330695832412325929591557469113128495922268123436909207139408337098634432461402725665918172871986514607933104038131891507821924887755586879238881772354564915735503283058993694577591595851871331970345827069453259477106801449260436292339520529279093085791444164730569867200513369324301926609887392330507056741041496087076208985952240739221665513921502155522918676918051657902673904974452780422674090972190906566975136902437376204184794585637987861268250478053550241401215012584220510484023310582776748348974751031256330246630111073337347452124649310318199266486995125293563168596011924103517278056347577391318199382921167561233162357920507501629297513910771000051448164334816625337967499147832274878467850588948006275682907191303219215551202047793529260182152085847857811639450587777821632628901132960557095515673741780983104764283567203703402348530273059793270392872881692505285696542165338982420490528376040376734927171499593932791175672059076894040522938835348862892024869225788309238998055427677786198183755030082270482318488185149411448225833894915189312125898732377196663855828039041883448503845652469845496508767929506844786468747193744714768861896778963153481776003633086653805812556804907360195321576426277812352742447931770704543620972810929194456432736235656605620632150969678236637123598251360301364862361685364818501831072648187170361345997824477106658833429931987060077656192868455160719247611266653831892201513561612870061795374990528380181222735257273587746888542289198656451665521037418176157020552065288674546818900939959763836195336941311553947974267359513684610376860840326092563795356511314015069914533181530291675969412681627396916654372370159666348968661744335208002661218200060397750374596927031945449388357686573946828456719478957510095009517993872762174070246391319672540766426652432929330839880250146203343234059381690834603049366761891000091067480183265743043816787960675596788976806872160944390403633737264731211084214866394270095690412553310308688284035113490664307210903227589852559587605312789646889284741730835289942265873187770098476997384127317752415672918167942136729133345824208511507450265854648510774446237831239219966369198858288934523034767666905462285833114816088421911218017607220043134230536510462706698585720460309084978108751626113748752769886702567693067118422595610076067610641952389231574456864501716157468977855365457961579780897710484650428049457418617586589971446610392798195765736869358166349793157935323499063534103203117516729118195253225044866289300023628898145192326019164781242664350003341663952234016702597656504307262918937513463895999984044296015323369670354620014995160605879830999924888179504433041785943018009986554420136413385243094530378408258537554557116178982263411055431568838197280574129745211327787628535587255601745519594367724209908133701206954932220964596380085896719151899773883104207610465866088258144545498460848897134646378189454272317371934746351989853173818776461320466503148225830705333864161597509669933252560141962675790018178967669476927085853783775983041850109765462501013210136508990675554267354290972700512785523541415177241165182832492863802961706344450963346928553019582683286376581461971436026944694537230960803805569713078325891460672444906142795804205983258169921241977817658175092831107009448707666995421466069515555317620198931093219301112342595441998211118953183434780112878349340837309534547995761126261146508208870917999130862862933981429608621658610662858110508971940950331932004606902634418050969240503667578927478840938655973423666321756503360440645217278165637392975832576148359993513754288703031371831049455810570621264200741500519900849158646915595463151473694161417354232001065879840487146467873904888206110707738229344849930684226727456948070246621101649571335136207903004814074948900901828066465574303722369693061768105475422751419556759642000898873276354791313765326152121164769285335764100994895955558964816656099276982421280561112183989916620007695824430582360202522341534636598553642671246301546544327537981783658993255621635401723805683630074334698742032138968347862480785396622283177712989340391454422367324393614382999558339996952596282822057967372814323944674632175004560923472133907131594091093008202917682739051349976271072007617684387366067277764074783469421615476949100959738563145415774248092773844172727411040464467356982739839588927166018492151453760109306419779819907609752309041699636498676303672289267626844550802625833586889198193614699706728015410767753909925290878225258113348403093837846492662463716619362037208469787713887576220241739042212442611576701966195439262782285098373698072896415239814126132437251802012249791329246586737004205370408272823425642384979084805527313780730805710209112128545450892911800630439969389521751724595623313999699100081781732757937984142410296621959836558402222483103415244444950893256692197997246334603600774062500615148796100328934847309385270515263170016417812311199593138540068757328399767732251768137583487131157514116382363206642076496462221254727511976523613860055964779844434399890489768308514337823147700403573871409625883190676115721733990600216065141889849821878894238722189909598519510777552644335509066568311802207644518004353711393758984105372212125187972397290211685796643156694827618161748936451342732458022294172483061163349900708130332062884805650533304094295606886396234206257680280289380125579937018178101194577498017294324551350395407170715102942722430093070691476074981462846482945780502162892810558760723147606050437460332917629184530779269623623521744956293432766500084739652113834652409288940834244916182454402735099330226276421803569526920345378430889775782762915000444569705577028162554338617550065718715293857814559717373905727140084787393967865238151928824115865812787513499306458492023547612084506287596451979473427404190667664330401215066015401355584067642782455054864636610964194922405896104696690996666447679282247469594152318846251376837901108118687768078491902905671926819340285773032171396789898174289722784580636819594512261748349473563381081276687515801890810664974293750385411643505507327129408043589854518253118803664613753191313426546603011695948986467838940791902643205679565873617461929121504901935561581337831649068251933949294845866068113806080611829197447874161368153519803653549479979940348915996411997994530883950113772975287812107012852235318910563612006172166055158733930022092383412392374843553612542550315845223395157573917380489484313884037040581743867810685800485801307193217948543827160351452956351556565052128270327443817543871894737611095136487831008154133278460329739664521393961971054280231521689952450439367206285751119618124635552700899373826798050454349439554060957643550089626155638682509683868464002186543794851414662749138273999489140490773237071138124494487962451344444207952360257747026611352513233165428981951602298663291941550992755155080974701557187445971418182335669687268307755319168716334898111065729500809816219748236673359887320854728882085604948257741442074860667911303571364873824290636958434945351547507776589291425856611960253105630657322120248424439692896092116630002486247478310731101753502251275730935398915891669281936688556007941945279069856874243710660078152366730428484003874180114762691858104198062992305731587868308219848486629671640206741256959598395803930274107566330561901967127872201836332029981643828023075228821167590067902221853493559113822986578816177761883300385336318204161986305523286392785460720634206043669120294276446688683121975840373974106578606510863195474244128500085087618752760742876783670062556043388790946284859317266256180901252406832109161380620166764244440425108178072808118931262103618262658688321839741189865272627891451115324005458181301626273548969336095324817175036347858184704085272169975148148872968595437044215600291931059229864758252807489927177783452990718470792607458199590532026029202313981150813293149130103679675078756107183173717131551259278452591195902373550680716628334970592700849961719942871440181579562779212848516221333924644676936022465901554609586045303619156537603714600374289955641793876790777701593538644201188389936471890997541014922731445944679909376970209579525601260654527269335596053902380108232164043770302640068519730135074202580099161032205794566560664075393230822640304778583170008631037138195613613127272272069318082055330169553735903168779428836365091713844760155529791701172611083280739063977357530405287054444639325009076918215971742667477736044695417422231524555344279374879562253167223830921514502807082356747773713077853485162668157851262469409225699826029417458349163778522429772251950149095595816415286884479858882234128558893856002049929742918591682766561204057828460705015257992275229849360129317989699189546583321897161155970357485041045722213441136275573578401207030667130848042693697520949769873423146351943438188437133548695845310887994570195734035365474038085183089638109535085851922884237882204799830742302688374991133770410504978816960540938781915232201326277898873921838027632898673569833198248985004172594207920657965329406254475438318674419595957928957783497585521952326781380110008808137856004309164276201918411369542449390220465103549427912694989370393323351249774648854984645573101214962175864451329575500312086526453907542792125318969622968697669505391576967360788564771281426677230838428693836975679910214956442994493182094156941988607589067086513576644264760880744039708323326995092441250150182733676653682572593567759285556529753378207735332938936588138159879284063416409317804603605751577087846182909438732265834902836817145838538174636803942628715625364979766997897592917328253981285186781662884580055896798534494157702603188870206244325408937873464122104022787709213243546647461171137036787423557222231244435400333655851659829914897497107986430121100731496966841087799528833775064688575467388699414447924279509991297500643883261694600429847194019320312928141413032042877099372699409071800140873234349977097633191179382269316287269305490717176708867634444052133403903288310944411287020759804572970992669231446841645985015930091155737729046145520888071948473386657188308080221840249991093448024236584219272886214099787538710947158279465311187859809569982309683728957005520636243684217263599870131971527760801698016953208987798281874413981618767100194653173876604432419831826366784889645099567042265391883109678183645485659295162942429418676505374984251597118086862878582450375802500470894918583045787202020353835073388247572683392394220434980358963711708877222427185169322073939537198859267713849291567290465312368635774916042651814154098518227144220493401290438877173509562769954418084531155280319876039363071376630881108118133912176194907582563357176024637971314315951515394235247924328064569185268210578558787733532139858298914811453707678662880365237105676639888568895171383534787976353720298397939206578755612464827510912318631751571818915924887363950516438709770736619947634920891262415561875613694463718617497410749330517719759465580309165194822032410311841783078067571550244350256864747857193248626039267968764007060881579519904621896429778677055102094169564249750556852730850669263715685041219522600675091289510468871662000551488735439333342211076000036139007754027139685163528842506334364587121541791655415429062625415228647320388338900081936054278718487077725777316882530753827432327220258358876517230884015804842697650597626285218898222453002589969208183966323104672981323390149612219902684735682064164733016273368356206279320040071324713879546762358959020962111142258545298608070190365169235810529654077697568039365061387272087957159392202433081140805414522205831352071220189789947684280768053372383215204903441011075753063322220173291735857713767538451337506482374692465907140227301565959180186253679779157172752367543979978493291235392548332169079679023458011457060475252000633408537726658990091588300878790244695590566942501004876629336708405283853228769522254443554736782044142828605368623311478458828892982234126739015093880000761018110313608977211321329839134092079674213918307673044955050774531824642887373699050065769916222596601428277874982771125705478521699718449933391782800665104289418994216706362674891642965222751621123528419838108551878454117776275549111160885250673034009050045017532351805451557186745724619078627411540343611108141198546141746240669259801859501452687654096131069407197890045458458818051100890546444084908094029199717528273492147214829962467275463210122792847048709301695635313646922359000784517796075638250830065087758334951219278107887336089056733024086606302789194022219807636187467410514662779637582839904831910897635014382665292885896401980764765630942300779337753331506095647945383663685442843039797458307820010183817086027785019460258202394505060486863961720134737350160999216047021096315925789877526679934224462991777527658723102999572082453732622659686708993345718922677160747753537387760024205198475569005439943461739178871423103637127967437124977806002782068352132427552737329441473592907860591876971801492795843096721073838316198068412236563978543342635179585599717788340514610372756882241004088442003185506997141550455320041981543127166989069903245902197165190925579023728095196717087678937101355243921565384145354613041168641167665672960498614142616081225005119021124322094388539533295853980920600770234357522978982553707050270939826630271082269575921836615679875367483420163143965768405410905308271267723482680000615834717666840963344672181687614916327267369437194434286389269611956057875971182428089117267469026334297211294279532733719835102570694551392235333247632632863416407494601683227728653482591704319851023819118345483389667696295597807570462790067648081049873108640409055726341277384550392022393411655204376349433917138718191250844552884463122233976787672224313387742017797648747786690087207556732905501440077140047866207036390213733283945272543473120935760192983752767647718394125302763004137939713800810970133148460037949676193982006143118758549386489152185146160559402197460629686394295664719487671480012244590983673590547752372223039147947221502042455019627399101320876682687392102330496054909834374818886750812052375352239112052804174642129801542878904096360490988104249938345669076983108970487143115260361566985137683956247955322663785622520343244920304987930903552550104928101253318857468408678286071158667430265859127229373995465724985716175224756752227416464575060733333371174175884698926097982082583632192037505187665955154789063608016353899745730965115219434835917550518786740081839908151259995257061865039726997117304198629747681479781222195768765919451887648353845131699891614815050143951121235633772700829956345590935227142645920227306090653919674473780530061481812536995343709764541253420848582442918423602049220085347158622034374159913445671851871702214966684862592951987818173955919236694357434566022060638695380725152800217141961434334666106364178897813164014979079477209909777147353382230549326593552023162760856709357399946518216217200448599045238074993589200279999506209689098275932292408823850704546893154390366349415552139034018090932661759787495517716312218745138560152545798311503006253809796547529180897782984464302450523105760166405301923926439391053367661604582260056349094714013912434240655233187653625208337196288340949041710543588515792763194237848142535373527396473834191181458545608973553027885661853495825786935642434929669300859127975943566504103330733893675347711597687625538987276549620308826125961380190694597068283956718787686331094970265221267446022028649371693973028201296482931887273771389714724801019280687084175413720286505686748784258934288375235265514810380604375585561073200377512323746738131022113265880572255816460190296418261120589264107710910760750122246640029049753079789331520380974499288614209113084867841329824422982095402228102917984240233861285741843663800077963319162962898416796135912224880787583329152052910798147515538672793689375005152366681061066206443511644148315895250256658223671246944019159055071298573144364745732180925275550724884965310253989362914130825679849321521538379744570622280801245610216654735938172588827374528704141615804855357454254835796483928953091648447095704059421568165826794090779160915236690762419121669106124962836033683286907559649555908330035294384062073759650244575455311297417927585578508613090639285410450802508535601730769690083844691961018038880832727314705922232091255319977373740574949757896038137035691106808042597753344628615768590143645395383262985070984808691245439920536165818155683706204657068246727510405626347238592980030539346574696094655476117982730379586550262919750404699125071676901877796989414822162176861786825822365553890454577418921426841431824948993288999888391045597266155368674269862174891788794268156423657522464506130954018320008955934357469998266266872504790561258203636572794130218921005820708917232643558964162097220927993304500498795518102520528141542760591966895558706431148140875491208624871644280318949611448464409051496329947322868327530745735067458885974193631017998641617514117864436122042424026931938187935081460863916759052708317518372300696048282120874377932292553095965069499002169960703750752106810299068444460084886574189206585126839717472274109117206325369598870851779034592073999149836862716438423397105995257963513727318239575429520104164607570215843421529340924137876494644989038410707954658137710970724826431183955752316581416388667589843958719919933555065334493360300165569127511845740666740607886269839822641553909349582877621385647760774384817078815008293533936644617832992964931408011161226356165686052066315980197581453480528401436154134265198184284522491942603979720434147676914132465267508275022040511471539974224667035108898309464735337706298803545323365497858330544905194259622539341587568760208731460208296479566848668878431189902420322909339584381878597630838278882469909913633078196294929932165617139613209719143934745580921689549533284769207651619419434776237126991696577637509042719328810471147478653864088047704475089895653455343723160766406774085392402503752653240877127506378234847094754856613284432669592200872140533416206670750090715159428486973720214888550154571408108319813529967215706724757457855649315368295606658674145484134413869058558290043498464830385241564785661803954005647569696126218255167795505921662763020480594085855908266321360239316579837554298841872292230525136698733353719971496056130108554023588521408197965011605488235375867394441155365105561766300285547480638714463941387317013355972798627078769772011556776786000406292527629653863312178565436406493903078548284405440136948396911398825317389770152634301833898824788481014856041299692437822276376557246034967161642461427136221179302902712474472539884278342456870106169158101089668613067001132795465899796811405483366618071811276912938371762304779200145105154089127818895277198475304099053518572634885656806102585196824961580662691798106143922310050916225024210168214437489600594444430482353404289753658632684019214484582900962563558027867777124340492066581802781747645689204631993037905176260405363883246879764939609055098940624682655374154110503431986750935313644288151522688348308562221155107099280675085735696526881209435111634693984571793931970785436605883904857050264474119343937868370534107288754174392713707542747840828674845427103758170526167925774115946766594052115017497004690151198653903803665445257397808197240364261616397067424998744070191671408740401663130597183963316288843898735517455358730901923174664668096989362329984396175442313741851484618940666643983371610106787731672131958556354495921594922184954201410777538964980702092857753936815946549875716063978820999969968259228978454332176862650606498897876050759765406826454705933839694707593952495918992942404529030653984767838684056916680411659179057022117395419351214217750135129629392800419661666673826380369160394407030822887887693471025829676632225607587310556410894282151356358833774711826622509939554970757011598777395030636268163094230671601532438962031189964503222924828501555520796691212125924514732324704349819833616797940000258512155435662339525076991526885157564662100914464202406685966951913223081724356191406751070295648227398584109205728556827283607471188765655972724574060019765489540434806136329891382395393331796485978546833084336664311073589139025352166363867196849226486972858547596321825019387606230959462193699634454473172093853937727785865396776697834472782036055388035941563374786040579467443794256353913850295396413842563140704358579088933612168394962204144924449122678657835169245298796560975051695716909813511425172397803893851113663419742911085058474859286894824230606786884895865802015734354772698456837416846247846483717560081269934409440034918281629869386149095115912066485969413052167603032285316165469699607172093747748815115208261918148911913189351851119069749398983965172291461811958063405147096427435588276832112741833829662093810490339291103732019105584560080374584142606621892295317057659579483619157396559170862792713390919271560744127217011454133524897715407478194681604201410614807046968018205299292435122491294797035560742881628047105249136211331974190391292239315655505799094745629307971942835859809804980781049020428793187887279132535213264307701861868230709392588457811159795499855813760637746814467805263526649975293291639922121078363022268720244435889653018069801758906549919290741277066157915441668076855959687694478634849411267231219931800971552361312043438312023685135498216414281599050404163858093042770478600949050796930798188689995152934261266096084377624066626103617473623258318082416196377447036778393286932388362614246070124441537695783762913699859946455395699952263903353243478885122648193118082676469299087363286150124502819330846777639511090977351122123881607932280298018287460163280089796094632111635150422042712504515760074550364073408646525681689782637957386321744272778932101997855622426073212010481704183209298530673703815202728483984026250205339777196529797770025204272571200970429097371442964215908891755789646547405521725556501282295255135942934449936965901016397437239463757284704797794745154613622173211391213622682159404425319898093785644472896239126981280184551192608814732171456176451238120407561787461895625871496582629172260866969150209232300540712311922368837244199361289127985990046434004206115379973875300246961900726159394097621281580548808569261357377734026145754089797966347326498928247613744025772894680426268547464839371436070592605300148866695136881299619317659978297408347966254688591258673682307941032639455416408796088079674897558731341809531573804857550105964560864135032113700895776775333983425460743276578206891235074183432983820754154121786300159859354202613794719607498139231368302980096542822464563748875496039212344176803469494313909717268323613382572589440538325239166129812638758137661695383214471617834833235267222050829323405834802189072423502200649783294773452402131896111741251382715028926865243332365527606376245976316299922259871251526945907125762887004123788954172280872877478345217771123861034885234198325215090438484304799530428117448633991610384526932868155470666659540883224677415647539267860025606973234607540762743990297673008486542441324738121589227770995307361720990428144793438560957194883490661723436773666569639689996487499704544827014621919774526019373448237608323160689836552309915003414707455578764239668797191919598964393433950430745142216349059853152475719719252225459969776389591474007228407296592298852223885660406116376314329278572085619317239028478414079462763674441566165920082480590893064689841982836116205257620525482576102520333549285904069353252743990964873712916969767702470527192694985486749603778984328648060724575559436297616699834326596241059727228389046097451179971262012769961938157006815188534994851410308386114004095385441835510644652347770672635122372010546495633244377179109178581005758433568557065015786957668592275837085729412883194438545917044016870673225948206796423791992354494323007486265408183607045399968927630236842022836173800506434958096224843714099655079450773741128666030706636949552316825543964755283384117765776237238629188495602817182297906778585422808508114880769909289644928291609140784261286574288430320405426172951577135128546818076617585508563707149174663285880057874815437417576583016276569847264235744144176539367992343342786502446145435693558082920542855450442634074444697672928990995563606174186538432946819711925448818627385509285917811855632766810049980065299830636626038934047807967735716036194920884037068166402933711582375071269687152145062539345368442199791026398019116156036640436769101433351420944900681087688830751646710334686359928657250476876467596695665669538506990162736013974032894521173505028961496730933867057089249318800817124965499007082218700871266392055161149238745607570804599883921653020634088206637245523801066014533865154937793731357475122999770586222439362336820698579190243190485557929827145347782383576713947880831447338363783365512484002306993706474524392282970656692281612308939736312573065386171817949570525157904093830611456869966149365505340677771279077774864451902193233322962664145902117026562022293314793630271874414113220825632025939344691389338535194583447277279452945275556697091841524007758953063711197569811605796702601380238496901646167089760727998893083339499502237578252087649678317986416232264992511040635726157108133933185039396559569142114197764348590164240666892532209649389195342717936109609083445316612102008584084557898895915648540559275200359825335012816829260565277647090070631187361825317785252698112197292722861666168357115869444797006128251879509252733479644652306548136690206185528629529304327051122024996726242821427459025605862202355607458694809424471070502703624792966116516900730663807292553427653851533881806614587250100550851824028045944805311495117156244082901539659075552576721070776373263466258293853391624833994335803917048806872093729677947950296609591494210909096154355344730848050503211624331809041277626254854340595105761559099663251775392366013671096168766169723462356747903459677048726412846151641302062394711253199539363969133536895881557124854537163503054799640975408051943023040243719733092643664700260718875972990911438325096488111039599784963433985849397137238663428842617907753293765271851909185371479926564344328544896350511549671921724770092761543158435285231473206000363560378449762853245431045778422751523422331463493852209817551450371677678494151102399262898046438231030651088082758528872314925402527935127712992676806191320120516345994727526764840104546146388387793081764168932389491837596802735604464753205170914771712560528457445584843462026878538427342584537293581147071491095006699487258351322884676090517578971348310111838412709661539450157570823798254809417372196171040761725457724790084162239081458213091651849336692367844222872689215891946522697424113667317755133083616896343257577422374200373507559019119913728818676193967914757810141217635860157113751043029261605783958777981185908028428520152868388692855687146302985065340829960746238357165900757703078092690217489748475165700557649869282909363681113556809995576227416078739062948411061816390210929111426940319299418314055426651805371148808870491783541149522775132925623865669111717219490016173633168235116895487464739576895659559410536914879799110072695063817458453415289265615847623171501716209861036622788728528719766468404821688272404889617210344595112188487431035385423793697175099628494939231635238139946318261501230887197186491363058056809012918336772583519911769299311261657480001797732121489029622219710762334588529350714309110321393706674408952673775124529089183602711613307363907673584435992136467691243133668831471579394021023680301382637456288310222916426622103683872735307759715288788891530178422910731655697815677219572137661617655444447452030240400576116223319731889740621880630618954246937781896171341469618030982506601852223364327130008125388416726370065785860061831185267740452312123835259032830192046607994714525057249537728101227022076339272074095051365692588007357904626484847206783556278598237660995485993155548282940673448431399681828983738716583854202558012304747526807408325180581797276110699378541603422193230511847679730829922687275517435310180593495566398705583873462876188907453026780232661912113549419292580244215702790022655577248401143051402477267331838481098473154732694738589016930909829069822576031307730317166596158599982094997639441685593170333997633998271840530867497960417603567839436354725860228011822760134214489773627045579270134408558491968495918315015866534358532841234317356818377219150286238680850168210061406440336014665767182746918369012626695204752749039685287874219768182312814128069047546903921135537220979355924846999871309400307146605603096332244741592149105798371277485813303255575649783171019218799109003814975996879171148662972524460294689660283237707017915107674684491477724515498462399998530482667436986261683535291483524827733526099924765481881789271038732059646102261104049153459076267133203684008025077160713899636015339235343875180200598633191390486613691834797537560374336350846866092831477715838199038043953683404508918534607646619607868576397302434937928193631394897152976811586332816173891432398381850860360001237090586282066540582688529665491034179352593778121598690886683385464568290582411868124489464114427052752715643460890533230716899974189264807496358142329040723233428943230315595534400522586221886686439014523947317631062810165707399705545070067662358854970313114676667724606994976208946134305819513463085006381004908705224152849848549438119592772344189097049777162343103540973320128483850591095708977078764254572185947856767303770323949854593167409759322699546620890463676915664006940615366923432984561732533477199071021025631635442876237412500457410563724498683362215943714984335290671432307929197026968752137068441825299326390336554086068113398569493772206604870885759966104468865948897345760197469260620418058695897566532810079106606911701392093012352908253160384927057444179700873316103063991412441968201633080345061712895923502289960227325672308132380227557316541004772578972854295134298455299786518614976273110198787991137690585274097197084744942540934156429261638620818118731710471179199187735311926138475923014308725829262987748393530859557386443765946864842644489108116664479989429905790027477518617715500146797754126610976897798477508150288743150294644483022180884887942916909966352099029737746649720387332771147347304230381572754816440330663891278802023069743328504542284159085283831256623799958293722514964387280112543133902132534018833883941614209672508924965059858586671229371298980024901592209289494749177807670482172986245719821546772989790234042600726190580198646597354678735727387256579434398383401291824117471183075745742641313917631006520689791240303271777985832959476375646202286915989364233642193330896746754882812996414826245341084283077518501338334810686841979726621556041613706594402173289629887182485756784396447106611352358667567727944629763296720770423120976323730362509245352425157978230973793163153459033872464743674347819476983018962695944707433169723882644043931505256310560441174650350809546915641935757766467681612347147094590670714004089826829269693211507295640844826470870620236255179308737267500860623526695395780923597570533519747913365957887700191633440804876605289007310065530766523885773933316783993527268260774042181564616461983717522901129082799377994692042918437489388408590001758372967746495706642302132409381459210676795305735132749228467619041988041284951923021800005502064581235361199845007426256170198651861336459390997463165278900682491165320818030863982633964799226498645131093210951269104742821558599015510457330166764924927445146359376861757679947020573964549207186966101856011926366774777172722770311504640242529925104382485763837611584070331397370200558149822813466938499036885304795417118574011582280724119155560868048034586492506460873762799879786367221627341451546193273585399341109572070069051334886675873244126814845913598855388805496042975275786337252264005265330983224489875762779127036705793443831723233681257662576791584828577399983221876412818903871059678230428006359657293640384901793956313724870065629317154478013914073232486155673499495255353827772205928737382897650224565736405633306319628255560239397216513709100327696256066373559433702482239873730032436409880051863386824492670507142281256756435697993958922281285142276851444557135906366159993015816617481180079783087995314465927003505806361792307187961752098461223595042756487007555781242415582610619795257069929593050410818979125605649841739415766405203867688106235258296131131921949591275951304078632682129326985241589704176996300647711918801986757158070873933312387321456229199151896684904012755204711793788594519878858355023850810849589343274830554657856218152190949388030153065536662590605192097509884998324154895492204561420611916536606394799206163335506154680498364819916821327887381364384101992899608336948361998119025644836318118850842191044068173291698855180150617771913340346660620757108462818565538829471986135768962351034813870912674817769796124258664785643083037926108546510941970953290289832256818563547431776791582971398482042169764209728815868515415740406866413125656473750926096291064941042117563137386417867450724738936660741590352237090304756141590215924632230252269700758687041555701543512129891077199850739413589630788751001827494831702452549785318296720228414070602651145501604699746507728841444239220572430092979160553601479315810046897079333818299605703474462009219895358501508436007294102771557627944004570391505707285630648390194228501455653239949409699190347931291417299850381745265307174444982244771749458106493811030535027461295304579269350965227665522114733778164514962844068252226574566029898523230861833882146423651241333069248508484728905138522300307225702378149222410841766320734120249362552930642600839570381818740529223621687013153608347958387440282532479472284490375751948247195382397432705408030116605584793413160258306735801816314057027081958276585447438817639248856945094089829945788266456360154757794728054391019537891148170465846986289425321162475492754928377379060607468800540774185279118853747397881874230594036986061139939968994852565409238689400212489918470233580669189085599243050746541353254390894626473867844601476232661878657283228100637529922189727926981031476656890620823658523724200544133044555387492395337603569053317601973552848368981652840050066037398645105426896513819329419191340791663537268187359335963607985640848888984137961109472473310367035548748784236275946710864026686303122906373858847819913879676965251557596983235230790522232504641542734352276335184240121006658977373433686931328345763438142688352478876932444677638216977316677275437556411468729836547014564854370171738449984697338608734097399448635732924500292056859120237436568625378657501426535069583039763283029877199305116708381006356384869590763015386047648763072090610424430398051299922248663221052697307140352605890760427561088759516622660863851227934769215800444912526477667631148675723178585071629327713512000832027493141538080127637890410446397533823237496399075573474753199977020839129404535695297943675433176451895265570681113843903390973858105419791516250180244734955497255247513282778173482271190393245166225167349697143374168686438010926971487155602470885559794497897648038560199003187911240681179122773732465688087781893250236678697076145624975364700845785818131454242060666239229812637636543960267491632947809235031937456739121639602243003259364639913437660089703751446734161376332936386618873324307539457000854433547137231717519832526856813695074510962179290609837609943575678721056512923408991435826008577549477395967436278596757306068396727444975874798988108768190743175566620323968668755449686990033682601578396091414853005029012634126101375380278868754328845210763154041337136177713273950487668858099736707844140967500607447013188435538783719493074348582369693732317656170546654377314797549493662595048118846646717967723174495534752128589740174680846536253995984923924691941069657555938758936917569534444407075263610453726935943449855323005394819657207578562288074397701095200593087500573820677938406992441704647546386213511281963622426200999445492112412040467780865896017707694099297648799584687130160367253276461116138619746074958881385715085713990206870548845880713123149858870721793909792850143343384637137775985798542317064958322184299701790094258380178742223128154554877288407605958962087011831183795330906784108573054051567246679146925473731052772698904934210386565933815518484310874953164262177393689428808412900003061972823724636359232168109780798960914749417563090502600041963719448931574805058376501913843022022675126944358149777013284394026602263036121557764638910788383585557813216900387460951724975287121128050628747195338220723342469496035015047660522261857876467763288304950670235306644015929511073208845463184591191275134011160210755848981852655816716960315737368291220046091375320876767921530956299980943385622887397214097260749164445549602241460078903481804390653997890454167567017079101757624389350372390754058393388177880047697133825197468354366055575417065074153716698176391134057028664194887770743810196010853283739381607361269707414106619978833652882779895976853369187713268766883786746926061302413224283456722328078126530014512995082626613420245313722636973253261214400322703749270840947743349220383856132211280629962100698513369630817735581933757828161809405251713882381754343863351745890233932969227505458871645477826040560858811253810716348770754977205504793700184348847482708555770413216462330130210529340005512090627534222236008798466002247500755653932927105060590011409117366501811518808494535941906367547963631691386370459298386239742489954906583024571517057048077701642740413153617383227647122252292944353065585529760123331300953610494946670723836362827137989273184762810692281348771007081250554959862069014298811739635288054021329812814567585150696513302363288566114678120698879398098041237295340869400652067895907957922647402546860188167672654867052880386737423206057359649959578317743167888725065248318644475922153045490516758834969869642329782848573742236880548964108743169607155225064906371594585117528615804811721690964823236610991106345837940791376190457215207885988365152522934693652515149966150442630678558564011390193062599932534825850765476813344480506126304577921794718334836485938583804895000425759090174713857464030744882205705766764049858825049669245418498885898088377107184486092833326797602338970688702191072693907058171650743945781023180151461299063880891426400789059862040203410041293352878050401270455173692335933013833202101404136763572336357518977565246667404845818760005460202488216619404447232644203394171659051584965338539034127707628054743833847052291265239398182873214018229093945864980764907353185212961100368947758798549739355700486778807747114568779328809680956733611190253162270330439866661140280168377625160584190593003863638213049314746206245538261734755206565943959282095197018685449952998185881734467911559400859605541169397311961049997613402766036301509764737096213449814729315664265445846680661716262534728316905704477432155157290704923869706653973549215281486911466818626632397222092854048303646733898937139302432118485182227225017490428652278964448862682859992896856848139548348399053052327551610730451162647299788158691077887566886571306781652274900735086335591768070331443807119593586207958831150423465767901889231845787484773861063797955598174262616491446745432097041255028616708702528374456391929559957352269242592473504981846530170563907870873655395806045691456361931692605804301991653704414376392579118695483252858215260948660260634883361109308152788158093706983877901754340067542676308316920958452173294618424603520519613580497961453797088895492621998003060504988649448522124415090678334449516926955094759418705270302952737457968864663965460629982026107913291538743293233916166288081186837463525116923744038763821849779195124806492449027501766574204876509309959978173063484503872429199401510816900403216253746911249057097779036535674222130566685104026664220793884833337196090469824903219030861671260468925722864900059647570620601617680483191676917861847960419809951511964330421014172228000603770086564736150513306238482546066779137056728071055844463969038381535561892620202580533350952017780190474788102719960289907194595119261502028237308660794025309369758946172618210037651942627450421453138421165674958332282215395203652210352135472464114707961074511220573578169229461058180864170775384136514505193449362050032797962093008432624115615975957542581029979980333990686188674389482226592598742175477262166991632551043707025549643237173038418292575206028299348527664046051272236210880705903026837015421816092641783841763537377137227251967922577857197827847187158881833096521657040220075452640414455475153866468389168230354581658014620243319124502340432461091712544494310642229378721007062562725887525592640578823268578541243749589170605403839731055595026804182979650447771411436442204631689468976756092665100058762935238689496956127638706569565785773436379748531435461788487804087680458833727729325493510818215532615621887857161849068644879025349800986157209947961411620387439754546711395989439235471139386140303620894021183546638368493835539088326197252969780255875187028212057482016061121504105227423402280650355698108701776457891694601156912117789857854048222955251127090582092660221996440873874394655535156537258444330114665229152430469717072347713616645855986335193307228241695225906136686390546953447395791325085671913776075466879691713574208399358994789597445505689804674299853832926882512924319416210357459933054968166669370071477735484990184353528270936029606619336465963675029859546803643079168478578283667269610203319442479529590502038932364664600975465860660635464719204305203606456302148049129801254288803363668998166987504235532267922282826878106477812253289271392354147546248123920010229584843951446046613031346461237898928239530607985853384422962771528174934462157170842394666675285381055588570772034471947532312173613099061964223512240020869603951518378921537824584279305601875590174229174314870107554307975314730450976667608502613319317039236962446739488213217065527910911041255915939598257037377681248532887067065528080827275067455891194602801098435708840977442924772521274532686137905037207309943287739526761667378968587918755293618810351102907037712762666025577663183158580739800442359368279793340896823881434676551887275882926237035426449264968486630189645385885407653988773313892843791078421358888005163657085460604799390744915385924516385973418339755008813877852482548018981288769332930972195320533102828915909811270246080477720962785628610745956453054091901541280860473397305558683086763201291113366045307245601088510303879404412893836201246166174297914049123506459142550834847342479387122207122797254430337644057925777050212732411500572898910101856127933021556764769041527298168583106020124313709078007344185303454816031030845308105011636260188052187699579475456729286905388244106885366721874730690017751197025398269016577989095182233190814721020174126120214497894682258959950193319754294350426625747021079781333121427689341258909711555507032006983956193882711646776718537102770701905439729900562569864483982109060906284946197748094747888342556044660289335025263336481317715528017645595285498454629248275303137631521327979213273185705746065043639549723652243072365730921690071344156317330844182907563956646153460705428733199214349104025927052556568724322025418549120523157463476173397245091510771017920121250190826340459231244131676540754213427140141364348064087794869329684604917080967800186835029796992713094279811762682366271684347057355117991149791223343510975788099318262878465942222002306173425685522087678737902783091362233063920827338877347246165943503507771926824126154696618954115295787601746227326634463469154985418711698069458600425293476408213772243166611352487761585144384670538909131177930583320067614073417468925455698443810617400249050835066807833697887701844231979439805486821334226285472027710046606796457061445031096616075998367318494786374672505356809333415714486079704778732635624222584947253986255409708114910630977362377013384725163881283281285174177744664631439734047225495508157293888378078629227578833103000795979599467094262293391402475773189537223465764078644479657046520962173425105779433410415603959101654674852294993345963476443390519373963453961374840588722046725581646940668287092548947212675632727205693741574540177240787066507377945050052336201104566802778124346344723749832006601641062423800041581125132455970319726674683483029871972017255371530849841843791528084099838205182731099446959984877605266052214893154405808519771163080900765313745488311268981438753748414269049980468756022957112027794958427579009380247343141036592259034826987750750333837373586887923169523181798711010322833888185793269574758902248001574053685001219929327495180653858528058018376915269642834358278725169033968815249934441688172520827550857895551307267124728881859097185965984985588192364461474536467426080160867064916558578641176599488622363919278668850040620685367149445777020529718697251342328286928097320919961606299339849926656154645688575683276363801733781281225494109517797329344934558759709823365699507215333089658480931410699381644366268243435681610030321334817164346081419772820819209810936604690440178976790630957733941673791280498025342329413605067325935330103678275911955983263241906200316706054011541019978355186503214690565707711574165698236408209019143716258973219076536027858620208532110970133581758745487384061643124975894007714136125654852299093682216585627333886147848356071461731975115232391474410799217111554991825285814712424257524450761488935996834781799735746223111744275037010813948411377900433904031256356803342756387119876820881249203372330926456983065573839621846107771378621201019867992595180139642342719340605206151513361863864040765805619558623691625022482255102211320320549731683519490342039782350238735984444670283501068725667227438341541412956642756385885111348450973235146100049160350264059094664620281708711688651618498309757835085879908381273814920486168397575027118374382697950706163186536859397257043396049094111105183354536299075740326425574370789382964125991148025295161944752687750893666863098836675972071472904266934033300706967607539825089789732472267559599103865794747093765178651453459777234470352936274172635529345126815822435261529336922028189698346869710925328081480294099493127714989307342820495203067961512320999970101145150537579357471852969809188890048619137004898484342754870491218950785856654323058634876747598256324184611183202562845900394244697866490466004390675775565880928811636981751805034914472011002557260651309524678115289516939178747822959074325928496732197159056927752742278777571612183748537575543929753263233766362865411850967025908147009115189589336193701724599611827464479316208040060913432573810830221364684540304975211914288931604760618886034509410724124205296637450388773626808159080226511157093044941741372879783991529272966813851966528604870169248878615765888314298830014215725049966657273129967515045825114894174335776619290101827332830213836826916930009814111787459838216798806049258580512408618477078538334939293859566945354770536243647059436197434388960847541451477911748261908901503152093300025106996204643315355184119725605513670275918790658594576194992549939913199860202601145985969194684760499069228490565332664154636425084274842073223925801209772764189892987905171484167971820851288893641265230008436687528082613586331627380857771192622894759825934524906833603580506652366591877874750827261787904994439919593048154213396061934464968340958474065781524201685261216555980168748334508021813411424729993249332544741516555121151448356304053424561477593960314524287101441386734308151650371318013912986065320886240798833650667433504883434688590724522800678837786787467663705207691444619601361439712060395257029694384302242090593940861031219841931156963497885646464271982003550609620326352957428352247055215314640092387025256638319825529433462768887284704253691802599613162920912628984005581420029921390259697697431516910071463031349115850129471391629843514311434170942471689488270819290046434967044212754053024832567125240517457184092860624321270090025648646988318413865106460780429674431825601475269166261300362856630624654689967114772461555639214983233290280863526811802583743369058634070129965616485698146107805800274751420274332600749345347308529986563978650725742780663368521936632796795774790111806085676648220715227894223576851926664558927106477168544005041420859645641207984616717354082765329532263118674013176177153630608443030115585821593323261260780598247511135857000768673651490043509758886162096599863663430197851854020203662923809813772480064573286482104619447015729111523298298152882245989335006546383691359501594073945970251534034726409722283850770266978909366717045995993917732178471235872587800028929684886435144581199025600052698942261913840752128098416511850096756389053822793331389513701115682233989479354209710530384151276777801643091944711098555040347815497812575515578150760756692482047226730467168582226018599812665271613460133825653486790535191858735199314743020828766683304719604794955097970757684306015433034607071191235425811301457595024395739643024032457506138503174234514997433041817067267434092046443837032598763839871998222722228493960541530059150599351170321622428922547070712452161343981324078067531434044710371740557338281021326247312008631299594764702586891087598271145457029178074284888556666470924099865693955892948113352343073467022953356196957581740085307705925405866180126930456540059215695432457304096300064143518011678508509711446383936346097837986878289105742128767936499968506772502544036522372810011639583215569679350021967169125129894831399641021347291437543178236297027123920254416096744457686421151383299009146484707174631162930036069310516044456379178046821370047272557500773856502226127162136667436222960673787306153473088643578082590603275858657170408874667107764442655671319262510443144045662568913167261714586081969597244835748552019716903897701156905295221532674034072551418727541844539156931653503118162890074597090451872907194755904111981217408561530915331284954322811330123276420720612487608962724024188651360487146780297160938548937161295738735372508949871602672261769938591706008024535767356080387506961717113897443710592886819036942289237943208461393378924292438841549415518998408208203506643844869890406237819755692432937972324413933730397736144642040526758814736911937369629285669124922027497937596970829276113262395736874682117183678007158583546247331962209736214285605135238988498313875100238594280063637045697490883952518156669252383364643877538443001004583347989831336942603336500550177701101625561089970216038448050366907192616357928727995600777089466931257678339461929645808764377219625493838651013353688151742623147932935335812404005826481911119320827859268491448291966582653198215601011318718154521348106828311368866712203013853089902476920765749499899190470393312088818810528146051476101891519018279368337853126431721415722228229629367122616269561179918602663886517273187322665206678631136605227488672994694813560280817609279710959736634816692809354027153195371593603877440866732938469326136863876031456368661635019626427598506213566780501204232955351968435834113635983198248630179833326854475123492994732246133619453403310849695362833582850462870684713751130625420753423102708018191231564458343237561628818453512553557443356736717328463986491420681133712073482565916237274605286285776860733204317449142100253396712599573387280649836090248364166214284366550098937362007165544140727808534307366988156709959856859486505564693119884054808989867962007463679173581568346838761452835888241286003340220492679659664093667099211648132739866569088874683852112200494724838515033638267505704384867599292796371289688219725153315446145791515489738733923603267324094843355891106929512953379527719319584897935483282713000005369416510354324341503767362274038523699593613797093304033910427558682203998023827650945156787701363520477920481841727035729728458618654772468048461814754304367925942850382095214110089076804958675227734415756723928910235095790436287598182143736314184422294023759350802468776113722393652558012031270326298239875539454875017296917057538073470434679831425592086386074649270653969232638254464338447353100552877889874183163541488030047293139825694212983569525138851677653351812722819343086136034380113451414953666244287551134115391590937546860317508961123071593673684082827593988376799675865353428930632317513967356299384688149417457468426127138793730683170675164192701613105302246882706735990242004159349532647870869882582721852903964917344326893759787871459537304008899834524022899777472573742781277473568596900494510231317539063290390462465555169964467024573332875311255949224275802322545923493756331958343647365986466800704075118034346421561218685124134667202938812705800008188287823064728155562306073389655163976843316747207617463381057704851062292912360213709937055101337157179993552267158043736597743665251218379921375538689880456762766457009713172343607522591912567770102247509445499405428419625492036436906587867918953074492676649061734981436755606609584993587955147730273850336875871973461161550061768618996660619586316559542737998561633437664895206220767208994028068859220805322356689785203590495324862822408800850484533257040969179545428535762831176827362055390357987266740701116770045890455402062164747263092173034487614619085555139585766246202306185795918021772970197522414883351023144229715226087509042665494027745862568955574123769534580039806361403431950419335440329274464712242364424586491490748413199414047210096924606727872591845119441051367873091863781100899656055204877953680023156609858729795139233041611581945878614485714732875037771028733013758664659047419927520066043899268907338385928761963615231403208145707140800150806836726472189778686245404392671432975408277482096379529878858291443681909486932302121329044434644997035429130478646806683857802113333891666707075989159542929449509218928610566505042786031098579233689113946848578865123191028283097132967937315550455536022205224714566979632097509934182926808074606400115624935764450054237828015138966983197820323324066695975902888203904512425996538568554805117213366877470984370565803826555079950302039090677785444603499338070716386368314259457147163111968164080882064885999455004400394029084092415410069336516610891070148046934717660053565736352461871542595997661189626552690630522164346020924760755064419048910145009372586445007314349430238706062469254101231309534427330613673080045300173702528054748600133038475626200968893412854792110930343499313263095977192552102254310991871037126758540460457154673407944872306554274182585243071715000484299015960203853867659808986734880742989300818639769288338443161279120236439827296753177140752082832708769122387983167707664769137049216475373007646702785655100916180152333250891034811366565500846679001970760843872513438041014760348584711138053181304052106591098197308374414822303031643312334797863758107452055585701108353943386116331626947961928278053073432674491937677406236375641335756567637425856128207767832063268602659310417806141964535513059252416100978728191806139883635042947075734680372448195623151025534907504110667380346650444953469311855445754164639977838493450774713853177462759584415485915242125383238741740712974581959043261840826499339600729119827122377286051670603589840649950695022852342227265829618209991947786414024809947145693891071283751192141312176031739523353399481995732685746073108574915759465553378057941705854811191061740261258201006932659521412590632456915378129485733529386234905755829640735822001253894022925541857457810304083142090479528337292152699262635979205878937643836885016246082003219342806868165924458066370763269552290063738614828566341613857497613881279426586872249033667084480097547095371359952332625987038576727396541855657935719907767608370538459559059164787649171068827188476460065607120419585277073907994108162927003635869962498305191184159157772443032681234794123607952374242085840276421816663870110436552610828081867684938406661524476843093118111488945614012215422216944665518779173275979901309744240990413895620458122862873153892633156540813880073993193205084307667292731755908375260020248586241882018702141226197224960825349255447236258818329707687071438793504634692579060015825146994190219836502624760649356748016052412750728933064178290152934117944532019590910981353140514814982656271815434225441980656230130739847615521967525473736758073520569808519165694031321886452367800573638449250207680602262658964435328553798158736944972192143502887543576035499452881573642993153147544672390544986501480918738758350090945305606573457491855137708684566354955870243799556990644886387228847885452327444342794369781690192190305019967139070404968630203580467282628186236668228521872578783798938464176107548200990860474542062016438150875776503346943647935453247227758042254248217985964954222483397406120853022003164532632960426633178411296424510435699204892337988957973842314420683378885593938090152160324856141294901295503773989633702302206934145888261307285450016523861255383232698111370202655646677203844463952894445630099650225760572740255432829848826382264921716679755837132359014116987595391639731912954131626313994364978581091502814628273480110528275236894683997346150914127790558281248990844056955792709466289530084782439510644754796987475489492214369140398004097194838950081824007222326802070365614066116840812195947696867487007316865324835419075779186172873207653466147710569589822931790514868730989272242719998642582727911979937037190184476851250431997601767735142665912157962398236690073853824336631886478095543457390557703482346268049250902344891014625550003612629493521011589986510265702275995405327741023778394965057542169071911195391746223725657168557630216187272170556370030986467191143881636885946035299131747919075363058110417310650077947822230733727677958807327369229408279877418640937507622998028197322206195536848728349259512303360506772111177932344464630949582675094055327601603430330690995734903634598605866284698892849785476549585466433001865293980501255305448484056307277951559915530470715410659338447467904115910617990468987258217016215426599130195225358148297611883412158725294182288790619951502326344189258595485085809184870929812018583471187707259776946130535380812018627016725350179760182835858201217307562315126109557024786370495003600711128645573822683329848074395150968958870496499340970936298813324247207227702438068663529083694018565376850871285250946928762897411421576781428263384229887581619234733055227296259173076545646211196784142567639097774741325091557046318484236945336963407981407251963029539399136672903383908164355743923917076675720303456037111231552517692312381160419652282611204648248795278077119023456768223613914134923696602693931405831015013920180508083706110414409656837211445965246841058108969927140697830012072099055925165671933871283479214766483831845586231251652230584797634021496675841574404937832114607891790245133296537464468189949821244446697958140581796784998070304499939468373243997081269859156468615660698721381473927159018732845238173134684407688727793093244899939817493800579861649003250693609999718830735092810390164416621553168926062709525087547745953840838940038460615562147714889272150317334204903463891982523989549795640731035471106809319555205459963546977384952026040155082768723757086873657513585817327154322375316369750105632048681514138017187705659663684273133789053424686300453453907913861300285288170611393503196271823794877041318851868239510533363491077921927531083125077734503242969553610252867042970247756762723577339994208335687429590071233813021429170370040059777881682757003338290490143476779424931903519882123361962907507402908849806051262330319088890133279901059153168128082317112472460314188213226600466863850268771712569221315783765493798967903468837979140931397098310107234425415732287009633753969394826287359378952734087004629375558583438951530406668457706321991256133861394407988016387395703627587108681566674230779969327874426219309997897728963858914799912186106718022717974572300809359271963443817808452473536233512364688674125485840724505343993147281321621325249622600107578914452804832598608311920761015894279547571136282110064489733278475358928719272268121725011087767159009463054937448633746365451105445158641230297671738555893257803867885958634264008762420577477580325116189776864197971408492205655020337832563058393255957431887516802827871921613551601677859647453775769788043690948671683522596236997242012117800275243836991246457123791305415268508464757435960785903558761521632992796160928773723689185600445372155797186776630234415967945652655842339465437089697123872912855006375339451142757664202532298827942642257592595841382884316666534447439611198807136672135250388494186314703554409852635796886873351680780759049051101969172222971030806276736502800642948539726274247727238136797054277310337387652553601267712501937755310650484273171704571768786015157316335889600846206291898699642457768409672695365708415891927374968614193925864042851829482818151117848030543887623846314485487140708824995103930053023696842152853897579466283132743565395438224513231730109756955480758325552191439562702072986534499216103672740689260295431531602129243483664696387423296744776713504772550785896248974629442006014674199773014085501016847878236612976109530635316981837223247784129114647563908462400936723942914999915287596995785845546206686616570135655703392659894595224191312479934349396140987680057671879853395527045204525087441485866229942676387274573917135798087370740432101379463223971190540636966804159200641826417498093729711852174619511149577218106648485849012619361019968476138876244640115648109052440766331439253702003586551692233616382655094592703154756150809536091335330757999547188751823646214185763080184078956421306743305000549968439554758266564258220581249338257963438825950351428890591798810680022819866051118800562552498356261216244220898269739984635943325809479804073149703468107117066312993496826120195583222344322866395062662057857593603171175899845469404590703369830947320224481750055175621496821602211089376560094154896057628816886759716937592983468358480362060888313947842869671074799679351482867859388812824694673022514093915991349129364023609310284268782341366420015623529467237859589425152357131823809784625924353967687716399995256567888277075494717574878569251698878069559011857154335290586059061082123804179624171575603216292811241046821347860088309874952705635255108835860835198358239593406321285240873956074263297392193119054876338345516066802589728320313969491298249623708428282303401747312975047056417780629763157771013609740427613627519912988320119384748157690705677681284405170871971552370778807323218094384860315001011514542833165856028277879603363091791849825989622350224231543545858318755763900448761830928018164383944231016129009904466092217979050490149208865534060577872334056259962267860764449006065235145605460138152357027929164694490461389436254873112192277877715583062332431858338013448416046730455593491784528159423736184756669889105377506535056700834559330397169758454442915852041755117978654072871604565350101071730095071740253104408729350502942566168752431602037135252689290210276718623908486333540592118861263971070964657487373405437976631814602481175304344905026226027260776734856510106267233764535979813871020005028186652301571998993664626428143645334143174802982119177711357080802669339090469428286384494551993159592626081941133515712672546430374649774617492187045640056003256614427409971993702268814223015679561467170662523427144817101949644254376119107079488020002323605405646822710253086608614775782524155754293923500622323662941009878940723570738582766207504726544653231759727813421283433697700971526479162385744201004894433439833873863089532418055545089070160861889037102910504830163865494235496329755789907815727695916450474948312923548543037047565276556758139849799933522634493314013247843264813475272880251922711719929039903412164913266171205103273849377720264194078495997801383630365173453567966496480879582680684457853937065737215996598152472705072120204590599302080429240264279194090087614738193725454510387774119160359656987098127812000404626408769521903383900264642910113661097702560072501988099838365588417379715867186611849540795647481307141290988996805013182327532481253081589178713396374741033925389617207174897533036271626158114501645264502475063029453019991097747783574394813692078383063012764925164248983890867715147358457782928162273755222153122155118753703367594286011472075836173041425915553683071198158723614964892065155251516690410063469205533636686603763363208241511617417972170049832406743026346499890590247916615833181498552012838622710577266297574049009619320735265454216445701870584048071610312251448886957814743729123380034010022802738037284755655496220661851006138778412396949716855163884546635530258767083862198978569913785162768393504156989676372773086109099127354131997951436935324074808995270602767067420869978504108652862340708008564403025159590053915530148371444434057372483360783950410914994282660279871392056913048534074095000326495244610676239216504032102113141471378877551389656547610876219056666954071456740331788554012610492168444841238245920174061386965376569972037772952409850834820087723115492285386707877822365852160292922546343232875089771472996557926944762399463125642347964083117512764324677577336014334129604769411800155925040696192846819025511322565357918841034955598946775147974358205690103300422420056171006192892008627566473603628212497464485490447800305712050880073795148357319946331081692664558121498484804969626421683804047920837368103766187853866219200958425745553902161856370094575088752140646564164150563374752323697960297293795891402482297833771183565602081444191392219017470888087481096331834136343463172637559422757901319932492097195281800145665753866505110380184202024342020693123842002077860767467452660524967402443130899056291586364915944523700116857800261744641433365476514882386441685375717035026236369722958001509367329235969568571089037550159952400914367090687561032036956084627200448060269634242551016359813592932172985474384899131449244795454027251852123239546667801921827178261478216110731426855700321023867421801675601625294501093734092134870498176789724569685163735277631336084415487304696029581917578913768022206544781985043632173749967051315722610742491575698972205018823517036035345488756303862475451133586678173313478427577244178128798896323127802187937199596949680543857136397023800135866231713679598736291690884289368462121418581289398168169349766566840563026832611332874728038442769152579257692236626077908628363530020141957324045915941167557597826863571572558495668048869815885568789909099862116345318818217859643852875873954983340424548904546908738889009977623160642808754364835164557998332229377858267813770438252287924943795066037143042933039166594255227904162693726733882973937163477551824934760398804205748742922003438960086411571187186823845941676278271646339438961943733849366701114918214913895622272932375580531464870005300776761600181800965014820745664496453928728484459635546022965999633705216940256770087669858614524851729949354460072958855477317916840457600846787469165559808964503232027259810279260938250286634519461721706036239621336034276509514722727414758078378680854795625681243687138467432967124261333979055711484986868612813263402936342671429937489323104878341086264714839926077055870964528067335392222845614813799964064704027009198585943313426007309281817690500412686398038461156380028099128326025016274153091844555960520184567945349497987993475475041121892956563185268342558923015628523299969446422425203932765014513776188716732750429125279748528820714128119202423726662200019508303954442551014753858639348968465503790436685041176009411742032113645830230719908079625630934850179862787672763344297669683203439225867601928545642865617023265524415649390335882397291175559340177208631721410412457672436525647663139264433425883857067386855072878621588286674047258203250778623236543948143528383498610824932220152969727379400358945818417146739985102120687370562617501784517556408998785010503449318410856743088896992545922350955364798620672006823439938057591947553611567889888904934105414058225532242703992482701987984722851477434446713489769021071835851321264582086305986467620253698106498978210742799045839293424164101961284877977419248498314926934977294792452717975585711262381351467243656716164998786969279214049164743798762768156642521299629356428006671046525781735083939328300111508317199641322274112927624576939657351076746926944628201085677467879429818600423254017037341727085085664216841065076628784991728185867311215567863820563058260805326544788218283391838525786501183746928175770789345051505514085426778837512220985818674341992639912062528666626165363054607544671000072582326095727931823037157276071434585509332908619963704655665939716910782583507797853436115579213048891908169352353005147826529646470723698313474753323437607572614636450444149804482651076266114061108649170467042142379193523157737765616182658560494293130257900320828139450638939864588373363706111994468740127175722007434936465134999852637792049744618457309756869867079054064020655183988959996216462173889864013630679796677646458623189056346231098058013319502460311627283636824731515367523090538734338845521673424181197662998728209366860249410072048182592066787453709706904192563437399705713858931016713630399793253240037104936232272026787255494283832639738450781048847480508503176834078686206180588379974323108360614543905999195036814619962532085022077956325942462740007670097756862956358021975369975759032966227915648567871661462612718394036998032095257618663229641416834121497018432385316132117734501512737554063089038432986340571555940423031907338507163432831877627263643923099555769734293633246338330739322323671389196740689834233102637697412135554967632781258932202260203444143758952229159666341333024919444737351798705209666608891940616646430607868092207559328396242232641723173674281728161595042011370268961971880859470791250656749948745225755458608966772811524467299981067677588179002133530483375603796725411016404216248033125045773533369442461420475534750035655922649527902265375599284901366086870148478128217865485619649028218520054255344018663373877438399209901297941577914703153549185733330520415282301711657986535241253279298509523066674808162314311949163079413013871945928277104841506320169490197296473209294372982568056922448166157673029283794763236650321936977251034136404604657307147917162069102971428409596816714449590360677221371400214688558920060698869186919655853184439292566528187506676153424226253344771569676457450896014145313286160126686813981349829719386400399232563713112041985924028628247429932624274372727152119293043863081659756258777670400394423127081581595200299523424095877301934566589241923328579913989710965341502499275788041301607102461337373494458290903038878916230166775079207539927221189853928172463327236788576489790300931797936657975175586090034571432409285554632967615485200639663361063797666925016802736866275590055162466121676158989477077473150269630744054222918353252660554838761291827584783978501445836991841275201670227616826237666831190369127043478002152584749222306530726008265525612331445302456506438949527245913367160288862739035725646021773608148016907415499411928705587025829943020381153554391405632650546027331725805192278910641231551130790328537474665624047828177748180636651675751065788059247648055629334819821194402301429328496529077604188691319557197527780782832054774540308798215216368197257197109755221507268220062242797810926776216792218758449352908900629685481678075294097037302218543489183965113067745478943740983198470551708605234392357521979855777450173889291202670487789544755699941873454261134015841324218567327384003881165841781069029220580480794591150491129199078840293510893015055823488442206634221236325488124067286699602076013481340804015813803544607284694605103688112103833280727952340716160504772393154866885382432547912762158441308004198123900354255035718051565603044017083964705239773467017660694549367057759077931585645030819681358828237687587321567467690729756891376947931484425364546216150774179885225286856893416405665387215763835724673949377733856282799451467781211328790120178230440237918882767569940328387066246547492199188329795314081310129778592513627133899236323063675598077474547136010298266059603925278801777069897940291930461650189942584223367349664988823974067971335304639878129110492886824773104227389123061016193829429417560571719600600657234946507288658618299970696578273739509200324757978265671441016962312862836391677218230805223414426984977854810409490068093602457923658733588807099627675585107703773882423621362968308771799399286971213464905799154283010821273698569180928235077886484151892377393519083910494189198051267991848918502449877745395425011578784352876191681880605421090695728374223387022595908883874960790316971677379488279288076270941359894675838800547554478680766760993950665302574651939996090430118641508821933651305621298612434195219034406586779962702845555778881867759814067741633404156229816034192000788853567140759174760859696276246689197726098156441716913609922396544358760836463432897899809873558459060927311238311226887011855913242023384157073674201737510361267772113157362380414655997411586780075827460249458085115585189950954959523897429138205863515472334598880499170489096424465738562517143010998394634895978413767831538472635659184256518828463977568849884508831465069724173602015663791262084734251287766701319866970606573255094029020426742254053657026464893865682249592788231911849805107709294234700412779315554968516358938432628273442635861789477482382992383934473675092040496702345408023838134394440574236515084578707834438494939776584184471219424373929193241783946552686278855516617649962271550833778570607818915008535209239826216901948148248309099754563866724444725488791630706250477697559308601077118583996147635059464624390434697564771926284683003863260291314760394232964924799652429201827090311749378146537893267331632632391624591265926033130034960561870418034491092244492124227077909435675139729083617054073113052754519700090508201062330287018098371136883566777151022908438702847905089944974698044738458525929213809541636094576534052862080281937814422680656128039567124998915450931893072184113247069821481317414371315771066318994443220238282679744044952693377352043837650990199469878591160652535350339610169192137732668357826217679016155430697898273628541843230960456669957115143405859091454079259698044669016351953150009435003191550630057381415531045776782756401802597254658596576875816776265444540190348773752093687354643243489242392751316020168076348294911356590599976143610423676640978906545278709113718703892355754378511997151565088871936194128954873752503941716741974804318363174928859450724950306833104974372481923537944457089155476369509369384622885293312350610302587744407704745153313764162378487432057963054381951225673834327725488451680397218745863308154110894306525062425575947678110240545475999991143128435913464981317348492750885122467635708962356818560620993683515780657163958717832041794816302891214190385905231959915577454223319839474349442183525407552145557826290020358598877905796699353165445956939356324109087185445928135281169066201137992692835511706849523435884774046669220671887769600190632378822580173186437879058691515737611558159998490155829675460943720528291389677840219978639336580851922622444073564328075047461938688160333121098182490848632472534519679151934518498214033237451515699570967112783896744590037577414517843021743405988565700604467505980321284511390791405854993964704780556249960398135927543901879216061280380806104685108296143619526595761616316933153879789714638563347221103781470712698958313716948895465789402490512683669650138439599769288906158120208658083585075220406608227754568502494417981396763991910586290673057443766656417365724917706714353752198939633347443842842728244236472194212133391836646426660277262668712216573006001776681290896368439774544174266945081793186780705774197145842728066301932392608677492231694637616007166054037672298434821237009175451209745593965030002573071778626029539254867809465577916045295652619363361210484807929479398792654276108645989135062079304757012166308475972646979016152818056752133044781593520131867952262705047053208265553688749614178806537832251955969197840416609686893734086059955650968113502387764248411473577715944029138471240623444391213278999060872171889166044924314804784026923346680168426299594077985970567753782650293465292294825840007521320244107511277628777653419673509140191987490841619998627057198199576224182941029825289482421043965689023399274806396482197442394000661199849024085150345016295902469515109416263015696946418821671128799154437437753955988270316574164224032004196009802693935257085421322487738229281652477605375338194046551831021138769519137160093104689727346910220021424839357835214109805218647085874041583170603931619814233932762372425854256377209816076644999061545295754773884605387607195947717063682728395157379694089631472906164736942229238021060853448357760333409246156065543164035777454663707994318143521007695957031705698548086295676206040318008671121605612860352218583570441142642432258089075019843041214425076001200641029295699764720739802361120471425707886425020116475412826013620562018707087034032046631832622980809183647814783283579021495096223638448202786092364355296825012915305673233377198355322519042273732364777179310695892536710911883102404569874991104275526230761994257695755980996572860145765777747729805271440898593384941083658463121053120094685873026234204335445826815971391729456210672343213741207644024641209085836286209097735124583918291900472871055938845738437142576967219694806866047245712867712623528819691278430248369677654068682930355259677816509529026798812442766417032334958146936890825891442826919923319105827623520742879553873640032317989227938848482802394653870689478578257473162947340196179106513158576047573509846894319862237499620776263184100167794434190677429883959935975728668699761480013312421462553115147728632734673170574736026271498778074744257825975955658332995406908992135172554841557578002461620519341648873390828090162117272076177014498341069673344007136239216113978210338428845166598266127035273685251423616018935734534297375418523934212686867216483821327989049016367091359862694444398540740662419591144372109337998874533263247390573905537527392188570819394202727319512000290149786800207529686078551290388555846846029772128009546788722909450876978745853666012908757340985047366739836845798643607941085793347560926007160780676919670214140791123862583076585060549016115479164432165232390975449770085420235336694834150797415317709769016553078273691395275497229784378607114368051984008556904016879258974032543445628074079140120438893435306407096081387507313154851058436286648747007898767920984664232923277268562466591166747127259963799163937430339909290152597567085975417950473088195817398332219776604637376217987556395370234998510789042426474860674679528768911431290293038778132145512006185020998235897799382399527353649433543003951572635839860329679651550326286512281323492308223819788620782158322781603622994885092980612813012676463871249399413699315115263417338985389948215969622041526755909819941840574046097588838898141431640275752433033929435926695920559140395164435048553050986878243986688915029532121974674400960839697874544296769609118500387822031136993662070826619261911645617436646131733929483904120900204923181199980115369972442953199296813926490347206607224135176391728464980216952547292356159790114745784105329007190957458443298579871442727237400534037403757164422329443894602437511737059745673106578839833147407475443601395323918481432249108486758569413908017794112320067831610968021016284691359269878598687346514601128959768876217208191798636387867823023976425038967153668416509591153065465167814639081649430856323801795282602646464658098385315988722447773682248667375725175434755186362333982127722417518526464503673249772168239036082153307083335960417669096448782405216701786623415796485249015529862277065271412287835223461130904559579993513640521306832897233425353052856821777898813469346855371029871948398131868576448876169335342847503128559585330933263784050217029073631050759389194558300367712652478627713384454099897744281431043580831174756486126668861271316318889882076021408059045853137175701929689958592856547284280371455663204680127523340081734960617481321271425580279207002730593120272519472950951760964679349794793204174210927685012587313081986536567882656302881661328430505251512877698757071256162937546346140865201916802789269391918180612581195805827478584500300338086539091000834019507298452236476364869048922527038864465578388230018866043880850008548019817307620389957311206493816706770523705440495724035726102961238695902723294927058274685219630189716628981128727269184331359970619090532542136995366268681576039433697311010630335454286715497671526561453574649209749691044944678614622237615459232978370822594744228875844389517494503882920007937387155931002035373350203803095734979177986617018705718669448959934501533447682208369653847936215321693730961912191395641556650996957040007924039579849137259468797478021588623526651521948397656565535954013651631520379685929177497712548983085371255339956220509118062842649957901085853577834556984493678912766970678345973107560453413648719477272951161426222829240398566035869558245398459630764500765856012428741521252057350936634176760788537875395802875524018605002744643112841322808434377942326719056765394128432748837685970555096840748536593233469812079404471062788516731704265666049937516133385111115631723042005064168433277614993908607123282650052426475576881334206115133300294146526966604333400272966307682770077961552883334843009715701378425112921410107564983610136001410973256474171348555540366285995258784967576969159414269106853488658296952452549957298898923201485436111106912757550609744010243278596833682964293680831640235508852151803947287717828230885953792900043379033586203500434000490809837843300869795995412095476674000366835728332162139237186145538127693313607548324155779900875281525014972356295126384520465420850465983725608412838437971112505336282239569574386328169977411452820525671946181423606044139987853210063511415905654492323002662075789904338944517276944408433716434687930646067002571920466074768983722726711507225239000502534578994767714616359307545153483451689257329130428087478393180429344757611513592900299025721871158177797519603644845520506200359150096989176569711837816112603740595977591793010106395276486060057095212563268294205715078083445803575935035597962616969003111682499902403640759751110443002412133127802805764416664496410894050420163977330834253731454078665962769671795290868836601228950035013408714447029872804578814245466676651067789585705571974348050430805420593124383094062947158339146726321684962477127636122783384268430966916686971851194702306243634246611522996230529573957915279062268860190968000892835596138797652827674302523702643826439763571581384299122689934264748452457374812020552269846721230375692398622913340762017465174683469137649996976238717050234970191253988492606605705883263781239476635805861122694707633613230803028336542842469451354601225724934042711724275032900197739373332300131731355113924875103542989072652565369996915339280595470508607760467627394808825491858258274375009988707489882939874936858846142521712640240820464965232950331730221922048082028406516665970642532420436469407697859923484070462240563809369640360747531084175943434098265231716296133305582831660217348968223296644125648579406332664087320699341699962784797566092042444717064326935265441081506692166470282734124935048057498324116734844543408433810931014464104927242414497115511056218870669733389993145906033919672292599131929286012204499231153119078423629439763278027940744905653796275804896452315602789631512206478656920456056779432897259149487189634421875436057763672111805591529705934182407571291361595118903583052931989137815394218884718983050851198421506388855473891801543289446469688983806961165438371089272193313501278293968466884173088169626281343592893547565215897058280097662286062111465399208801384699270449887697373751321887233837725501222044151262860203784311651822014727136623187681438912195312865829727751237373710532103536149950267131840691079833830947583416087738030487921407359218288018814467560490167361040542251611070651621249843977932961841236521614625385359158131439599872790105993214519462683165565574803759138429347086161645518525660099147518675170576592342692697884675004727886845900723608611304152043670041913386345597189501215028577098797185304640899722593221473366258542223404858767902027804736678258000833637011060934897411854365068037089221406359199803043762924671080302866175357517800258986600384108988974647066689807624957559137824431445509915235149241195153665788938470095691347781728344009707093914216742827622384961173197555594707824657199229345121334890809928060731937925363394918163899494033382198064761975581672220426948729463420030942969130234698492079174677354986479401969064264063666970517829547016692240979366276261852487917578911982380660717497416902176201068045895075246232148242783102712748060932042147892335533083328242660325352967304574619436453392078057219593476410548349109962577315832309768383862756372795076173775776485544786197480100845422600523440209807628154513975688045105517516976303345389025342856053815358947038692781859246536651464433574091440479463306526132464786067667141432152488823522904644061290459873486892025989566986007140339635990904603008482771703445444516298425776925733400930733494885647116729187291530283809266385301738068741649997466602836884079910579833363138052798248432476038247126052204254982938578724887665236248767627955582036057751702359587356580748849650967815549476961843098635953704976979397404331841176929140211084664369166675489211642713873561805893457527571167103254536616639654385859123105059667180668903445314747901285292620665262601481816800881595427636727390377035781866684377113698348890793576606350722675526534634476229644575787421079163755654779798740250969878145499069320557602601879403209179480855288675233160722421693402501770175885862183975607029970646416312503693455242849513825266469205373052900909207626321613494500141937034328543448122812317085767228029997420323148474812419144280898056167244689527719405825497586337198525168655110687032894187567460816374054715992576093016163999759143329217590496811324719179686281153009832487284513413338241155536638694733001335784591123288071174177192236631223922636411730657924622698232927627301405350459249370254946610112952282212587145795087916858755275656029113968706143184912196482130911365850285090378509889686309043518935919190856017973278125860401070792688258306943600548648320667859101479220832584735170677529549588061483516140721194972887496365692263205685417672798611160570729792687789374302994170038366036801572507160615756665637569607409597158712399941609050349873652042720644760408050508997101289918316809434774667461095594934598032061086417750046272780273859620663747909262117992330940043019157635946219697114868672915179986495527690772747827322558764137754346802312485481178800902201382869934410246425895727256950247361178394172537927052013322698452480708939685465597303995253389931942506421879100302231225660668108761324536426614616970350614604491427819518089213352949021550681863154375325621920249635767485200582380948237038863378772670185698253511748496224366982060100584991129587626722330186816928268443336817895243450956611843735230276120571937616255859658281504273505674534937974950700502445398975596123908116471304948580833807625627789012533769658973175429966721682236064822702294976096787963130456955134887157268961688595775178073339353732867702015252456703360209096230766993137646425800344768254363501608020799113000679251714224454093404113559034890813012487744371594088158165305852184593030101723182736447910171454790535920261349017966110071079508572913363932367017463486179521201756874948430827455375767113424987362352701080977055503449313755885180911642412203746566099787582340268224088489100725261877060655227643452877921554385733626454004065244547978692130794706032359621470377369642044362111226081630799662449012012308419502884482028947603198097297846542218887936866597589924340930149955192319325646288750514574428257179313429129692218460896551305221585735224816821669542612528089593862525232545186572875050290216500740781610422503005720844860236633867626487813557912345701908586886319478929501656939767941547483409441469194166685798404995483127285519986994433239584685680198806605879148895178122030331231697486453359031688982904015846998921845971474205933019191548153118528911944120412739816257267428277711636297195912928984998894407019408333534696656756826668125714303977017399066669385124066151715785878954997976780297672969553634931592171657129736501696965200775270781601711585171901440655385587919617034566596027301016307002215424636258204365002667948839241175832933697224318641350901074032862999945987468186453861484022351197073068626195741061791498235403593738433026295156154291904214114465397683055015522291808806472557565124042889917007304851264430679753086972985858160214396092502231628230532863476208365199272630825895468441233725906865244311572259278907903135023657048052831822639824716366687668935249750840055816218044057728647534938152931731918719523049187813170517568131714780300790512570803203552070877441440144480124712860459347114679333267189092699014660133725041716222147070299949562020968952120029298634419805774342723200271098234324116048025685887061613513804225690962772686603557551904515786907452337137648308692977155417440306860001506706866842541552916765773388277437673784136384704130652174954624363587739489343304235685399748855791079582600791387954551937285816726974076210812257061299672855921467128480321373422307495179624831065928394294493699305528367865991812679632833565139843125885949300735023770729648995459091606002906146575771725198703452178286648595499759411399375025619657194379461129611482283018254741394311321883222657862765113237823161162952878647513238054710916956890793183248337773868764195786243443828609387014031665888786092682439366928191607741825881636574005139387651499725740491657683703484722120771928094046813210065591899724762388838732847659089764714176452639863231823260778934880648207170407266708300232727570514588823222762242836932985092784411946704285241673438053508520060379593633948350479725330542742743354510472259933212097137850785441383712286313579193211317751397530064227527500436221792089371461873159290866936828020085801840636058553830226678106883348280006050372264237080234766053905682356862115120113483038673539896533904531010949955131872813189015042086717217379362625153437154967685537041826899971879952392336956225407459318564185188694475014094437378590934884977726459283789031748924034359578821005615862685118854609524294980138258963979234241130423069648329976648910710732678850058181844031053581316870526909149603998332849783620211915607170806568535704995543006330145915728966356562755908293999246869211193906430844402960908603181017121887700569752967725779153181417660807514517033625465232758708875951968693534793948893805904657613595946127785711608369340280728120100263653271981435136763401702854271845899056628859284956664644476978876102532879993960132524698851183226223094230377569409343100154324774673826352736015109046433064840873835026995363590331700670929065704081625077043041828960987039006033550065541329001343669807644085019238273861237383073731754471381585593489855173429392520417580405526843789889113353704480370801751422643101566078057429853320061396628353899431659448847181488098555352338451990791085390663848666171156933182432249900693624796742661755449509585883085481433674200329197746420300284694492958986759508870348207642276331688045038803705013790985183877326645702897772564939757846287037958147094965512771571250438070923044673183162395418609713278582490211193648832053630357441044211649728387562307415051151979755086892256715659559517051047581717058368402382013382229075897482586481636241481699295584446418676990936440813995367378049524887480122175694868293075154924279026859654008903092534359781055477221869675264669030375192299273126550146204162262448532163216876787415980006139703029433564602806375696018341368924001400852622323702453328469205875097572920871025388743456718299262103624091309886179121251517337073906365686647465968866793000522466590675828017479887862871989365504590685321987733127324550685459984801961485146307974615035519564774570287605681320967629097446669421440406282991887496691647534777758639782011765566004496550116698203032206267400542442161483492992738849466157381814447739899903207737835005693293955727392673237680140924231078925921124051001159636617869995963108414147392331355186805886331092927276310363187809875090284643205357537283002110193608421888733615751976037543167545582585266317630410607608360213919625224541067706472658084692319696752230390130073845639237269977345750454503661821626435109895370468489620366326590038214348057941574561669436677022889883314788103395498934127863536229586267328240336638244654457249519343750799832136114984117519387101412801414093767553075853032080845905266884606203686740382641125174864926027295211974336134271607563001353339304861304657828729462865971703391441260449532941856730213494876610118882923750097139032965409206663871817773778180790477949081833490866735094188566762792831877362805167394186663298689456004408987263136717066569954511207902595856716170978164323222261013144167825019057436545535600282401527202227179327472663493542299096301107173170777671521866617924419990284380276882223539753821856620505800616649699499483947850461554142268748171905389569274550249861634880767812032471990148910054282675405238572223847209386314159767907985250197186583251725931678391662183207878587272671400932489537590092766806308346767775479935568030798453579880757699086425700506421620490379740290256755981799099432604819509119877544490113454803210383352863666464251169934540317975213002536916941123369424607380832930040270704615968106975099631270294231497531755274286830216739451144270147198069749150389368101499530519451683913168608474574301214760168689219435200539186790606644641212119659897375070708914078162262264135387228819110997951336495376042981696481327110348699367300647552580397596484125679926949775661143232328881448208704190769265390326189056748793903340510289075436183962571927058804140689405084041432671891951649833481603322772054241040238295800717298524057945203203874507047816319802947670422227774880745043216927478483352312400443710614362792736969936222592896558419700870611813653685204804102123105380579428202117032558371592718439707039053409784693936086093484042269986558070166802053860645599538467428423848265016656265704695332004082412387314876318024287147281252116801954925849136528035813017242127561017559028280421801016852770868785568040161852968413662401714216314477427080456157084996761258296845742742562971103061201885169324436714215147336904862093975517145183232619040917659393864324532830289621339869745539403153436165706065923080427313884508767422480706325937147994426814718968804297348194082015919618894134471008900507437066806293502385828536170155649697097912333515860046734462112751456668831934397566367861109385844594386152925069722411836062791788282410727352552008371696542019982620647586774051814819346341188959711051535257627921309485518005249200791030208188129740194833981763734934983771953348685738324100089921162272387784813997138853966706693988631322201042582950680516654824705056333258404669751830857387370387733692832507929692130750406549538730770801308891211758484652727810277558883559434904390747468005300611964661150702073387698406757515572698964910787707039729073183546203096725783893391979991609081946452721969738036399167483567394553975942173451030287567534238242053285388045403977989689469786050211434327694873284952771194710805937861375342416827956881286894423450989430295897196728652193756750850133929117725172999434670570215043285959999076376766768674282581867919555684745598234701834093029412396020391962921959453428235974128370413914547447959454106417022382375765023109713749670166065896295931686975020316613912767167530439568036346436928544836739992469570694844582548140482375017285991984760031141466668675813245011180395255891263865733003886574680221206760106951778539292903812024526254995580051837318576819472611505872283937995705425774924188130333729675275375255565438649128112284333307431546688403400739079006942314007411013899240034513709184823494519728435186620553103555930665227463588875109720499275822223473226340495056937002268236069781676185093027502760951315645670698039298706855303863115945852156043839796011464735518731387095013601029011779822476001119214009426273696514193627529910011058572491965769569340282576067510627605996128829417040000083530292586982356051996357055030428681150395927358849349583179151506950293404187179557408594104941592979646123107092871741281905107545331311040158017118557692714565252963384822369885759535413077091619258015275869218192340045966653271670437007757519652684632241393331575427125940965891962411771722082157169060368707066984135467339698542521523274919865473873391609881654455542473781303935465337933563125435335263969948035123912808941580115273375878815412194043812252062316361010690181860837507094771053882720626033851571221305453424455205976259778722652203911538255828009292095346054695358891025704942649812868420205791402335517949995490085048225048716401755883548319286020144168726968554122667157751545379729651319044737871510707398648501956747132842691947283326108431604267909669375444321953032701588170749501745945376144330793282065530278348089992450777070153829553666786751058508356237334166716304554975282031477629571958293714680371405424289660975453121572042494192984013503345598930171068852792549001183665247546438869736342418378045506943007668359354896282992035144149765554935266611733577644139149432539824986215969443780488434773270779113776933629472492881660577402415302803603510263275467681633271434796017799972441761047807162566725896877202047744416416486478525609507002691376822001762452782180487293413954082961692533402541969027718451605956710371348771832919469747110813368288761218541168331627923634051213480569085755644183850520782432270090039123727945409805230395385674962897571773743708841337915607368592527740019640681472985864353349696507202082112162065674907666917348268307658404355857176933478679111998450635134816352594732432693755323411427869571659209217540319643949504820057062872461041058851635898571628216365236274555417318454771055895064117020819942332104270370789575820073176245273580218174728642555807869675129596915319734670116014455671613227398150528408553227759864734354999139042929539692043804104029263363883336514177720234853608240521811700658411124272073416566764720382727555005508718217814642298658215696049028707901081617877828442607159208020362118545076949133775838906248478768625629230207926246301333545783873776525942486174934062197463758992768134409112901565257784346411809726470231685701006079462014016182056575835627099283540043552607765160381077313252235907176566534167847584502402709398755579211258694223046808904125466154356669500290684638746454548646144114867120089134045005824880058234300627919606542474060848126102745404251669721792276081552333635893031889566702924551884979574110064177628371038137672684655194617114658719477655220903324527570875108353820150072771173668884581463513176880570815502978238784916033804606857402754041336428429214643347676205207372791347703676026318214403481058141237169546948790162795778226984736536572678568985281316920028545818255087141725486088045167536614954048174356129852435302140814887592340515173977183309091782168361296693328241288519599712938661665493671133510021034411194335580194855909840224354808857867660242437502595968382267915913081463638017692849422129813950714729171333355853313605223327064197302224723718381646554308198594246016879520883273870351841209386074429933620889027542564999513207126981861735144264914350147835841599783651595811627239971495667278848759868976848735219582484631739969384644243322646071129146148025758284167584542602771317899558802160545849956566847174788136402373743639251446596346562584055664258433597629810879963906908697266105278634745521743442278717916113417987784310663380914731448006718510873282522503151154100732141755344853200795311452223140411660211460510817096417431197304669774403172223507263080077037662592801446673778901510468817208467685748966994559339999054743150904980892067777272157026354182116930822127058024315551925580899670810352290314569898494653902455064941535217491309282290555616294414703880229665017475826279293261584305488294208361079551638489476331210872167101969546180288166077414960597794521382652288827442318532749295374124244960104077546709989018643052809781265763327243458532044874276213640135283225964711586389801042218310007932849991433348342656690075411264505081060131529853418440002557023625078145909507877396444730061057203327973695011121736662946503181905863749230175283335238054912379804620862204741901792486929146663497659149080859227219391926900399733761984964537181893667712270900844036319526617815872311562925600278259903791256956971138234863745318618348841950859073884557044561832862954567596302673758339678059805437326907049604971415699205356584963019915980085134411384861203763253853377020789140812345671455147941632143908628003657225932063652613911177525352024286021757991191701557728903650792337494796132357931295399884601630210205133682300050449323813480566571717302993544849886832703377721736832620854190418826047465626947402571148330465236670037605484097738566966485343797040371554966506119506774270802341333992580809702848567038090309663219291697133683510929932935589566599844268907193059172893460114710312518161010211664888525143090675211609670761033424914849679049567522741470107318715600072467490508538074063734708946245918462226196362287332071432054380240150864182842699188628660946269013021271450630234908271853142143755709929354418588965418232796081485883985796753300107368790201979649605707990615310056101989775508146124736950879923535182296987295468254936376203089136137640369160809238534722780559145576094256678836105223979331303547753344529049287711746960098677477464603770886877385437459447727373033553960759182514802194120361349725574399335134357638041594124125069428641379865180202392464650718144047902601243601472774472773786572389816185572375425113048655283206154120757861713543186289166101120017521669817427187667208428006772086802473760687907812589773303003465189530504283971784120475433943390279451415201824579691348529250693761132943555564038041859322049491558004445403615243276979926018986412474781938409916943514506259140411479207629489039756056244082625889728532468602799687820852689339016450344384904752690512364005410049583382033258420582590159915191374237856402382682170937245048239621372474525719124155243078650984158477164207773613979582846049479141301790856461732847299134568408001666449924173071799392605866557436373174056206695133357102142304600628931830668021201649562204754794107185964938790865889814565214201392261320165083344452618652851541087701371104369957684269097943399250605619444252100555903539566326051265689266187216149940077942573870545323625871157682458762465375015890046004040107464237869746720247907251377924309343406491691565479958451167161295221514003701578278238854996420165212410571068455025359410706289230460886416783060828118817071736577065113933671991721158505731268047099579434300816573133836649725949708581458120589936842218237731699981447717940278167369834126570836274127249037678731302870736211435231976307878535755548772855542638033160369813853113464013294554456510631430844584920767332535571630682873500096636778419303148871989960987610691483080166974691258661022211353827595880180386749829683666697137524369409852482883137447819413511255797928246304700386001163728199382465296755335900436220477253408449289313106562364446250197248091259859701287481994210445421213841646594981842161906792084379688214346916054029177571916835856579563053645249345366860818161023280464545923418995916114247935392582904575941811381615802523490347725245348568057730840308403128087300504249947425261766416253245610171123928596847411879974893062415229819929823577830667784027481190411159462567164010931203989211752232864929118190629576450322777918374404821114575817404890674947214127749426939145347623841537391835429225204588458353910793015330427530834808845370434437655552678571555776894820477922881082083506997674333955622249619007236246210429760326087056512109452621559917345147771760442583112230467612628788962139651278303545217568952416900756839521484574900041579357569374174546925970036435770123359330467344045706225223360971436264448795431311590979932354907509687368786360974448842042529259028907089349580495869283359886479226759654464727630402656871950080630316651629568160734769075591108081461581683233098933371425869894464649883568331866595374447163392852792945464717816560914518789078487770247021247521417231464344364910076699833961283214341325723875235897428087542943566697915290790504930312266388346514369274680069689988174355197902857663422614229121608385372423015163150361437685292924818892097427806163772087353969726027627527148929369504356319187743727344851999747694700239605852801597715289800948367743587467873921170490630013202973062269661299261437995399980169541849870622760805330632879257794328890054394027091071495839225449957728460499175604679515501408910147965676788768071837646671441341081285310860757790066624097562853753092670722930592271722064335360604258772152831390112378065931393955247563629223956944997113918199642926645407557430940352476705404017201235042720142472260343945511044836381481139354275925771125475634400990978795529515024527064637624692496227145424119439724649224651961369889750763680979336684512899620293593157881441319462507700634869273459660175356941950422375642267386850029235093442539180012951788087740604296765815085767580797878795590466192744033027721307421604415978089995234319384117567080267814448843158091678646963416054595941146400601367517191058984161974357323046564252512155085746584666260221850351956974032206513098592031739977096389763198456683821901425006393204578728742794124242723892329957494138680130704463888679336818386480196760346127346985951189680770999253223875694898581277331930216127312769337799736824530806430701253730284145501140490842044144734628626601208926827887131888396847256075441971495078424736245152148585085836162202020065851533736451807952746923105202312550657556404752873550875943361914802094369222900968045688261336297516237692086715987041436058176021988452826500547609120394785787523568511284585762842085728126942844748928972933787681017569868391993039447313775464791708838527601114859301282467838973883754149494460436556739640545998620890201094356737280581782245603190117333472403000632441801945022854813026858024640868605477487792195639982429231285884397525811345596514082098745866468665474678292903613439977015497961082525704060172294971860763648259163822245956898029919347804268396983428219096448804971219792636129420680172932255610143835327239441958709985656438975829121193035265040743277712767873521094307335975012202577062582123638022553037249980512453395305086278842047198762430627226742358848887724372883093758035011027635839121619480961240041634498657425368903506016629020351508532090404847992028369054112582749163956150786024139937632576918564829384770424053596979085174693942325687080069255568526532267159259214176385518580475256569802825043539829373562656839505730818284624329154571095029051980038410343948131481911500553062688615264166898040071062907672581052241298850334125344660947228888821858608856395301071381148673327674768180821615653777242811562357454862782241083540416095951524856036226582967599273091887930196254500685825629904654970034824391242245057329037734317774297356204411241461057166827150905662961007386720702619094899893939761385029417088520313843865642500667165189851636612494905723400829364032026031277473046024825924885754934805631586436730532517507994169158538025095071912227391437317078183237833051872486946514721747706599269773324898326302325881615557763880777161312708365335945817829554963759126909213094805659425399010696454462907253520651570234645636931186967046461851989196020032483869338596269937457072311724282038283710970456231865487392169882557712229957403482139268869038247954915347035184717693382840328729724516936057639133722688794333509105467624997536657186014429706462734551500858390280919238244763012411131151088901352975566747278503841215845243055251331264311189436884369944163512848300114541574388357445281886565884164766247818341781575004537968462069397412404021882521075268871251171762535592477877643639213570233484890900148788782466554216782965357816685615763428561563874296449885792128505387207714395052441925266161051044455674700258756859774159531842667347561744718478469619958405200618399676336441887051414684971501086865049702949511599606145339754657792464266602994930404062689404156894552164107108987247420800463505151827206877375926246214043776530457297612470602741486990063058460361716580077401548110137880391896587299030440212589580291969070337752235425090980594522085097626172238694364998477378303799396305716168037480644294866680460575212766380494309540666936038331756929356977489190539397272820077637511710727375363891122172234463146315259051936235473321204065833855902961644795898731809361474488197137149281935776895790475641078897658282185292036434942541077062855971766753660736182544084772681112153462840319138683994166777150311996993651472440070018191639948995857465154992742369421460721813000480204174300038726904440397033516275569151228097184701332329953558548757810005120675941305039603202265973616902840025869330943324351801016596008863563038073162013229174228237478824803531119351960967509794151117927964159978749786166493913307093461407670486310973125783969807177582265953676732310999376457356399320558105196241468640364049658527945402813384563031657883608105433711338002090920994861907520614801821748900178809156563561242265888796267260809219964598837890257913233449115643463052418262780938256115842790756749598774750076940025698956562367886096359359035235141859318129421294857254924540230365209527865674270608883618566395984746058046850940612711919182984482017833763423380629548787022736318439072718631192653904356468123072815226188834862574156493781225269817087838189481316846324487862244541539123834880248983149611574690818928687538116437566591171969648862718480232145797418592078386833749591174131824772553173733079944291092093653319314763349331505131692474160904077534811038080773527694017163085856774767698932918791009837111001807668471894629934795195060690203285977936956976186608094384905680426843597569059587734362434306368364239156403041125918639608245039823012498693288822796615129795945928475955225844365334857580332168298425431208702603375179393226869867923912558683124997680486605083938988325303218043786699676795190036805495004966164970953850576247095289212595049957905410279002236470032207944648791444556483078336465511162049707712753085348293051555496582466776485006396778020260978437553188766262111292690669078357034124467658455679242335835550186428717908500220299509484379311699632740134377373641654970668882198211579788282482091847104561293084323656637639206351945166101272498731040160048037505650403035979155502330183370243513589570984652033947725056071575409427659000405222517578580671824084326330924741212357551879559674634750770110317317478713169518858912492350037581008326860824295939946600929007807005263988938254361064959764171538560269118583440965344338808128935550864029428591717082631930274876563671815878468474190311846461616971213699287974764984100434763835675354480926454676933307666503074882189570704347397252353230299374997682218161404082183138261282840138239822931346072620947684221671549092713381078686028095973382300535629001948745253815356960962138860653095404892200232151427806959404072417134627191545531835990239805627886029559606924385804277383584476642392966865996732770404834605206288218763875809428575660289718050179589701814471851026380681086619690759907345538295919150972717435320920596487841124134651237609269583349402251779744360607393281602986991322183661460866068473850399214042318167847860724226836951360917987843336021548268002427712600436199659309110358874498876719875157461702248126078639025797685403854004260350153930218087224571095405809928375625394560804582356699830327973969737079277759508353323104113776090570567389783298802046300379879799408601609183443527239736466746213525151506700168662540590224422662472788952326103436503288812700379092185156542643794766761743956476669356384154010590197239104286568685373416989105491749917454788401564586666667674125344503829707952329799979547641233819988566492575018121260221458636373516283602011293561481068708513328914699818146731001585313130110373197184726696267412719899938999055751081798285282885847466708619452543927218194621372884360062849898583654554018436999107456235534205681357745873515798266511537413308328872743780543926339425815676137392567518440632303634079549146977336348948751436082334765745219589326541987405040923937124376123247477225159320544974902282960338019312540267189518982049950697684076043309030768016863425984568941699934540749515172120196662076499763032322449295327111315691762267624351391308107687699701207933613710132159433711152422280908687836394147651345316281314774579669058941202716556504826002362806941384947641223937605746329041845630932117780592415705380385038013564808145632866543200597316200031846802787290601110405657710431306077984770620197524050273979594580698981817205133971905548091060075803347134284434033625329692626353736562286355649165485649658047567639120525577175178374793769063067473331392373257938731927934970684838105732591513335013732651998648222627604348113817671882249448365902317072630558622312635952998663798932155821100271178964529006198676095602937343055541643238775714992172846329533077390643875024745974164714811436025049499572200208846579066661711760217510679855368136612159069378049376737730467592171699498426424261183924830641242964810312310281580079924901737873040070957305050358616319342303698664116362903206405913674070993586282894897086690818206741275156640502989060188914821238748079349208348494114452844105442747981619866772688556671593463896394753940626631040414939272589990155935180609855677520423451601036808980398564155716276219095511836536359302627792320424455347987532768281877128020375563222016242104072043814938896925174493762190160663578865717930384936101121576200562868865545776540517727459251799952160431886164760520703759892459180361576378859527552896333856853857994410161537937470473741497785323216161544657594511200571187248718148586664719713380778961984487044242290015772675541581659396952864466408765808941588784316398398993402254842527730702470983814226718903117268731575598569799683986005687445017428200995598371838498089946931564780217271719721138760518856292541261145980318647366177998728357568682721993392480139081980595074956288570348388134643932002358396889026472402614995651402163693038328308320525041032861982249234914397154245983674072834121568812037155129459903453311288253973411662507545382502835486743617939509778059657012155646494745639025073456617293698889544339854796620315619044931616841261938605544465444540994337866331436634011393580470443551570767297591022317808022275002648291209707183434630846537738074910226987668971374681163028853388135082063770823679415571841199679979415410686651517058766187857050054104441594919739548910660535641232343753626184362841521879385722709793639196671909548600620905605346988988035883924862495734331139427263971374634494772683453376031362866054444240675552384893655895898714477003844992204781432945243127408438120499706923503171923201431356617905514131139583149797843314238929156669040818751724388973510997611522618764935852128004577347491661870968275434093240212939764484665388069936454695969276962268101691875650655806116503852042839030119094023934780132211628022628489044557637428557169633857661675021269804094855541064147739618630550228010596641947362376956644934279954767585195025464110569268793323396883526496938151860919844184927681305028019247093724516207423760316868278815729887531650156268192218067005470203562114858111218258764245096685425942099884679394095612564521501998148558317083949973548783438533459164601942054549373541981058481838918577100163419671510762088719740380820427515865995656846864791120217831987443636635097168775460685135741612343016437794051549093860072071918159714352634679490460030177860193619558903454050838536893833672541542627555873572026889097578358091142177940725427801013392583534207550441936719581112121574429551117200821165424714810832989381500848066235282318641203894907693770886709749953588902568299956083201124095923430388416708248910645055954732973890729365327569871188585422498807873427719797131039996227112371125322642020413163204534736600503947831579681839786694715209801328539726540480828033275581701762307397782326483024679629529554664620535502589620352212305481093491168356429302736608780455715819804995707791484788268373787488597070894006532240420539893203685017939002585983540587718952888104642841722123453506865960608353863317343405529391791744545294262716883766667921164577613583814025485127992685344477903467505957987845252146272684029546095417811757767472572595894395081663605023496715829497337026632707745343162573528043001126952562896179196107437807937037593607284198196652336833924794929360434524162504729601739039413060805517445659529319819165048606518128101980365923157473488168663515905288918011338660414116871162758412883288679932682509127426460855367400753818830216836871892569541968295869599324278654119636571458214292645860968288751005142278913073276043520129292101148776335247072059291073514360705425469832219512854773801749117822340086007089368407692606129718676405296002492757127524084005655771824329709542951507433644612624834147490506696657782401324634447711548042466244702765144353694740853092105927916148802430864230330295211672540744866035175729015096486548614348826382250889699274360403900711721882650122431709414669492515496588782715197124440121171488128090965136649952217621278730664193134823576485168187542721003649014404688241515770339070051285133635519289882163319315777055508841371301920704063059029315000256656271437091851583175956414872717871572607331868235055624578689860380456460030271329942385953715288952208400782280962151916754015459769684506839638521769113204641881916154405974321344760287712457597366250119519253149500005359617244349796523086317431900796862802491696863637645903096313300320576825551698807308996929380073075842498046296710177858377562852577040842377035786251413365182525819498054774261698913648439631135189263526256612412260059143732170872162329582228481798771095884541350815428775469866739462029708407797465150802112350080454299338907591931078054512181894797564894575599727026826936693608371939205112836547275653545736256270669334977192802192288141178487819781480324093459318465840989574225709194596232087697074920776230708254882369838944715541356111385738384113272226894979103466165053299021651791180741512511254221260136215947982521095622291896252464759097726044028404068353003342336821582289106688369029635021355908349980671742104038708633234707652672436743945750244314332096301601123920548915039025551598789085780104444473787871396553091561192226466723827909295833257874506059645175305623433889269464451369290985933725544437479617559679853133822657725469370195035819991871268011216248456374363058367486115839028087502822433318777093108629014979722870400920489835943379218494696930124920901492629804602120097024789741352147446380629375436637509651201844053730160824972313960863275873486513298047496735641328391972573314112210064657630547827918420193559862849961129195828995284355520319829777827938262117467464837332505795789679799086499208509192369095326548995640376360251523150878524125526186758913175667759587740447106040315297053838315784168890751844114260705673598043309631116733450800728932750078427133801981776137241484176039966930212135034925308198922849869246877043711282717465118740406915614475457468711268268445111863507181049894884747708038074263737725750714368618821832296759578354701737105374411001239401572856538332920181485069199959041549132963456729566863602755151993302355938627687130922313865432792629557365762804638953663721982853956341869654556784958061744539759789663657766377403249150649813947325579712060709967839956952793873690674843645836087015596739779388591124480204745983834762000438321086474370694069862587590469017129813636986755276927985344807191283056776320019639763295309150882639911655545703222455701714982187292147904902139194257200267794868245580428141930224155279444820311993023399930059437484364101717313671597099114894380148638915454604013903523260203031273913422789350837144231690135921351328843009732351365354601534485846371307225937295571340860153584995197615427463015799796510486650217668348218395050480680932019226537045329132860726127386056428633901649737255535650095616534161434294230164598973660808856138772401888640864992040203877787671506184405857896578562620579536765782163801938658305011657240239478467177357092701717851116247265915158127545692059098034069954480870713255016394395376875396035025902026864686757291577975509104729331202570757664203897775017787711725765110543864725017814328033331807347131232510797836120802684425729811103326494122576574738079753008125867939894542794851665843076846965456953950226589208123384168627904787386890856450138544128888570030555154600846573583331544784164667297820756688036712773517704858340165150979797605674871661209053079501680493219365302417387877854854349409105130253674017098692219252808852482739138059403466519631822619741249896774861501678168234129881661721393709834494582056544684996303812147454021004615299228361202630635830909613692997100220802372286994920500740075986371644411274910740780179815000308686864335690985253813361443118498552807105759121267135452565490423662641590432200491809094713507318340556737649812829148884994581619946195105882871835526150164559134176545077258034702851048631945530507552365099191399666274155944948628373302116204884988989471053007346403053961324815786373801331491228555181121960904509010147307162096460863732208259494720628087780186877716353376506731293576821536189815944625507124330316418655637122653832144197127883094206395685430775530454758735822565742650136811054894339182097555145709853803190919821973558586276058170268702258258856068283297474609646582994606433891632442241038245083080597062123423964252024710517022685785125071304177391959951303489933892995616121339499014891680902426866321807028538210824346757016293970466167278196987487675840925213865626100421618860072186172430199337891970236226215651979808804220977579120581536598505484849366402755538860918069718321168193774550036071252188849066736319509965127062636584710138158326860128661747659013822538166901969085016737004779350823156172583854981406802913449958666267559322710264747287335571939858258538686755217949568968182077629451818974195199840654091901350166794007010037976568240302922865283823980995348143346946147335567518203778234821143414150736031620394957051870657953085836526018614053271032306495005302810745157974634620154785215774790064796534963861076349091021312026604068539056971329361024486281649974761280617418153224982406876073505847955916366537772067905818972065866696512724751833014117513805517958896216558282424037807204220113155228486530042354218124931658923853989757279330702139887160779675956712090148378756472155567827918040640300889557673763205506898283023980748944505536931329681052293660874789926741042574526774476290248316264894706243962797601663827929624458469898197068162921561270865847266159668559784285474393620753302027588210570398436174541512443942719501735264694130852543689760329820249245305468456860362633920459318153169643315611444447854751270975159201824867756576719294001390591970584216704257933615362951906021296661455895255978473360471974246561123713010772597155991328444780045334112684555161835044780584087191529331478219871783637918217402209204804156164075887105365989616293318579700838821315185469632661061276333067960675263881137863803384572634686873246787646631301547661491975801065938906304548222019552233628538675936010127800711086819335349320758503152389038076883902828052555488292080149822451183545986364917832579342818731472035824809121719363911407451202978855144565979984443471768036022294134979217990014435159354669731296173606739912820204305842101653521981738395268403566336350453367446509696504797789139619765699575030059697632530784696517877583087636831459425511533480045025792441343869306973222054306257234518583238186862612381550778493100694674755935792394307482355367882299660787901636000041328349120666474823745749462171151582143933503646040327247992181185304302657390969853535366413843669518403695442624184334648541965697178546420275549211897603240994189001486250112889790972772473394322405960991059670667349126304493021698791327790410742877229356601091736300416069843203583734077732252740776496412044579620448649435722644425476376971924213087782626316796005594474308812132352922265749226032190968468019725246391980306179848745497052254610825667371260044736893582559558068896055767450122705478012772109330827572610521828714607283227963191196041349121313635773542763994724813871407741178541661341248471114689569666442446394305154794188461248727345332616001394792232750269170318067884056674035351996945382266137018087981716318206761383566833175546893079963628960039174666962975925093157074688880934547401966913366281240620314233701847668771244655186171234985760040992501085481133167543225353582767854262725397715679382948728027438144147255036258466370820490868650857140773316128070978944358186802300320611967607551942539187989267148700123853809338505602013259661977488845616072027200311054567501224059876035750900748068205293029349169661738782085806028794066346582974487874854469459016603738195505728519111400980392430138655548137488110995010730062575821186262591223127704593114191149251698908226657239269366716724856947391930946806965195894538953256736663824863496701980772793990958616897277969658709516635150478264130390273075826367716698335601293328309059506103063907697584877289756970332718550303285004577181595181047507915220136325766452954876981951208644002462659017807259820444364735298940000141004550785014155569140789692687844722520933634595857462251125665772732420996255424861894490329900818576237139635978892933711170684434115080289648718284349320520181341462045112785126809494376813307622872405979319726006364844850072523594880167239475784615317173808062686690842686095792498022745728855654514231071624052555346718777727869707270593382183181864281120361900488289970131283484781806153715179564791205667657968837256143387212813777264303173360950833315311282191756417777117520698794498691318356223311626943662813580753347772853692435841904634596918585080497585889423182556296283579622190663067129198281423957728328239166363379104995783050024932552781597749424473646022293375576929190840571049789069298586475281227026860832082420091567158717185786790068971283345031708914014601519122009893133688179043346385232494502625592640873121337985336196158578933616047580422163954141132854807220892682621605161569849562654357569601870927389638322809978110474787959572453666930269495374388198528302200543300867171757804948281826748228273040253863996879714202477025073223962582468060625239147088380143297801057763674125715189074330328734250928549758656967372428411026014408051536327271156298739115357954047557004923510418224567890439706334166617846876852139505425665734331506855257192738890796812975981742201411059885096931597576784578651424304626790830130023433650492345889498412277205326751614791995956884762306821129242747571905617736652500379131134827144721487529932318197758383771287482518176982088813363957106678403814245053641316321980625201024941383240770094639481526570188564944429525785271680637319469602420449504266691040872121381054573421375294729755754692859150692301319882817189423663625838481759258968645152543159664134906051857939734264115443172238846316821975548383755687743009615328328367921752258517248240373377106373476004015343062333178975623813076964098647811164168298118943339091833998877934219966170913779817944545832802470369602829914678359737925235124672409688901479033222317181728737123742144367186415816107241148231863173266692294385678632511139535193609171768175891322000553447535986623294088482158490372454211680853182064056226544740023137298459789122494394889553128344135683532713363343430588178441289829273362473878196463438684836313105616031209738694792964440874308764765391326143490338338343853357304448263785931800657217295756621146502898292011926002155838350489521368444760503629166218795296034933417748896924806404653047775522175954794612731028078193535152244970485042673695630450440426687633056772564346405951650330768831544606192078336439002777247429052339026601088433187125125288061108077300131529026912407055428483789666403912697235069882739373308124346636013683790043829622266650405041836415340111215192294422698534571425373549463337806222023536332011633003514442305754036126090225054682919896620979098683537968278817998960167061894492121501935745276451184542568281359515320188851062961163936036211533594376117805864296454017237971948592400882610501992819505805891545620269449861168096620347064027599406841973737892282443563374227430502217370493739881877897621647146506325248412670842356699002727109441047400829381272313106530669008673963511008705343441473642154738573519239877365105444865624830852173438000956765856352836805870212710815825005224070709550488305584626847050091853989118173739600641645776298943789623559146564612738578720895753344553541256705720329863740706640494622219655007134451378504072266781967964080196698207113427434947796603186492729903426665823405200236908418607993087761546266927931622384359436652484514269410150337661035855449076254763266761597040076031835385437362305663568446997471867927613413244661961165422334884048377857383136789829008218295111864716744550393080025396076351390857608346784518579403512023327216957317251558677394174432718061530808341600118399053382338854633587645082089022326423265568978823060808587423437742744614266867095462394711931055199589217366172213010531758559980549533634838390611975043862275481955992698100503922955968578233711796332845447637141775920277567659268617212471247349402189919542418395890113899240389485090429143400875644337898669741046215297085376875192685909216466504831565092488052624540100753583554387791517424210526210376008281828936341862391621027983481609334287319635448178624898706632024938324401903958277351224597264356085067116636988130358848813771541003040659320587467922734307233231372436286951183810204203734025345828796452924554892668057472271006959595923582441647717563436643713484525421082468396571774165762651129527257034711795941426605972116860003085131313917138783355108969607380704386928828054944156639147321345830400139121271021168549084790268904650147421332882811258627137152580694363157314754492303557638401692213980319753734436270128047169722715646162302936191303093237220129938288858020935537523314947005637952832646714067250522952635484835177792752104326789647048542869392073811622916879427145967200945899253639100069388548949838208090321708131953144715259678662032453532972971201804093189515308761529188206822945143755945780408759701274339599137723851028090988805768358202514680235111464941915857927613406087814523613452353457262841186286053991499553302066301049410421433494032775031283749559333734527210101694601158897556017143150922125125463610383125505638498733857492130376307271043446142201890594633178667361340646380532024517045169615218549911268325293422393791547642673507496227782968886203700616167769352229649748708395565513005237813289133802281021298380095459489663688323884749528909481433339346679445241039023530018591981636526414948055194807136829554390035790716334093786487513963830055915499722346296684958882043436298209679889377942324700514292451837836593586725690021937754447413230696341965929886778788749062546167382419423033016973601691724272209180652255937273106449514876121346151387083318961673989253880730322277195796310688443956546106186876825561360667759856672650472848291202603480595681873844670724050053677442634113283704079282942468606840777025759253443255503617764800331890640948151290282142693639017271713990094917537072263814371492108336448991180578656878220873956868159684233500611350258973785418656869791161411337100231735299975188888018529330871745230439330716312669062672888511955347284540020425769322716059530744303732456844627927217300503026798509874042880456381824510839417263930626773681530066025454054308056491720298806920245393790863551482941841138814626740011997004294219993420658415534163736265578362762451144002956730874804487847121624981873374634893189471098972960512712162704469344676194511499727468325001340150210615170472675679902557113011136645806189992944310480152016527061059971387428340752529345620154082502416599667187023947821866318884340004577795654949282788849772491887824396936718420901997738198974735799801472510225248239133936009357529441988285196511360103601574027194181563678259658008316936279752202216368958083185717050732298649851207600412716765744922424159513599874049462048829430413038921719466963387918688623151540831132004073023821648579631889337960632286994110335535255670450153179063258955318634664430659890653061668690042847841524065696591659537052478411652731623445816490674150248195328499569699049449907733226952924100267811954548178178183118320824367009064647448769547393413175784678065076378979785112109796445905049816623408345628420562261019104011492412527465382862155725544785420740323491835569652507522546695746816623825309399233146874784494764182050207897302287366367088600603702990223244411551945548356588349859914799413495672988436592784146836691675642847413996212473238596837555554358999134655730849483829036531107383830628800764579837503533507084714875161692572462305603771031491329777510705597054828698752559475342411952065924476777573981514567038722359617596025726469254364662028751294356420349020579133459379028270136768151440172426226666350949611833244430135013243364533688460697925657240660917860037296557369220496124027388649112994672265469256906104994502282189991235261918747966072456737749208521224228678836362115734500164619166968958107860061720287881406907208688368537046053151440616859106202476185125811920504447051770330994685785912507620636468071763359972475726203362994715667407076418770155618260494707751064274549914762504615047076072491838744676577898437626805687109138941901023434662256645936975240652547890991103275188617020880760826419182883248393347095130963382319403756415029873747447651972218758200151293531928302762489202174470745091416668855620445576723980396714769825060791830278369079917870217695773177145410376464823377207189716417078537030799495347813078042927872284106619189329880150362759816688043627490822630299309328253399397147201316759233093300605487760433603098045554796012151209894172668793106298940076981955168637584392711401233592537155748726922645786988134240067969395553743446544296821813293116926429159761496304461715971380928656007013321054778579014252248905314836144388973795888728838272540668600508487555513866357087994112962882880204285413209161323627851340242237246827929839254637068429120834735234616801984781648877334499572050542545458271956041638162912848247733962408783138777791736988935065568211566633035088558270703839182149940196037716385662216479656534322558058564379758872337717022413513042446162075748467404051796242105767271266648439099279935920573610827536581326606466356745463272490730170341091737744006442673393571161999419679963658543521731256699257800556937730883467967278649075015494182014920715391561026969600435734468630809015260199104622837629456588470410009370192070892941769992176623217978608999940870244012130792916763861117595325759604846855906212561842044629062655413646005778798871446884971518057501807621338561653228342099848410606445186962019798778332967817931689646618358787228469280842020312894661966703461261204775906021951891506277657240647096250272469714703511737648141222952080158115443906282586308363326788120293503272676728605113429975649683767905640171750462772493854294111636562573912047569202974857795639558719726106716628758278076237655460488156256085369295406012086962478105308513361289883489130220051365197668612932982666543249132975617153563547247477964521243075195312732186704000147798483639976463288000098476049913998412979696232621921980014377211605593650325801388397492924432373167100964129190525498964442317606969802518501441424916039426068256125141202996185695261763125986203462098649714514191918392773296190222362455221832201907023326589720617046995013119511854149961854342112192241308447463536276720282067280614621253738712809703986431647170032880349583492827621072448790875839518908815528323145895467087327394361114170368343283895383254042489738827837896801308813799501058452259347491928643536641879976983599277324645584792717822346206903493746086312147815786471047560422823793958845651197718437160742311973019157037062121503368855660184220356417601085037241188447696167967261914020672167838797399309776466180105420830689287360208255433117116723896545575100623104911369032954196940896569603012634425705495353335533079024132745154430928804538453583964023013593291806329158519375782098194189638200124913483578506854530275061287131692711220005727146288503948830618091879657992597616891088002630065679849937433438323240518686227802999074852484628353242322799871066562991330953556518181461611809738672553427097443711982481334342410197994972536637491884929079800378223729224310501250021043587588298593055221908862781272054754934918121741292710381956489729476894556898604965030406777502477437186801109653022931350138264284570027006466278757261438356352788593563982544243579099590216261952114944367062999661778208607804064894655635854641443170619119250250315302756271234694057339118650918646589525602206238788103627918480842995536717477530919813332231057654381655139727652092243791890296382609354398542982125298878458346348572510474707729016311232284791373381894081530286087547704469188856033253874099862475047388956223354373217977941614967706680621769471785244406158615144780691863786248074081989713378395466717951874993948065138753965286779003817272148567114431018617601745817306691779810323256325242340924173378463587535154410462083644973752092416059108496307763387361021809260665104641813254755833394004223943512463541357010042385567596780308199961032486591662661696823697561800742918071927271052395641572355465782675655931712511800693597060732456509078626971673227911842089843129349376111838133314044595228991930756506959309527031214635034846388462443519710114975224011494490249631355503444320842458863714567932353198217066962663189944801279138018641792503117334029785448978051380843870807074248315795536751889618342622533137509096741414131121574143401988578919606066306640361648754083206297325642596088964022245895746181141546129806714329284790435644326765004595761919592006280711736937076895017710648618866601366758703969746249148104291839553762342825095151003512507213330767180135293241026326391315700120112748616437638640836558217713646189858980875417330099626150750799408142704766500958614111852984909487726107753965883895153257391412738330905440564121323146223417709634677099455112487636227536652567328239604305940912609361721780910278595626628199333069125906643776782131064137193609669433612412869194783929677848475073072845168363545706822283031613627300421000635128746194754448023051094469150873478142827625629410589374811094662846787423263461935725459094518101240114438767058471090426781859728903286930261377810917177389604734365911297563299870474667220654829927935517613887400863816413365915226768582938906529272253268947559476409528330437870025388891823691503812081522594471993985644150170407180842668761656317405250756034609978665503760528768906577948450424716474571538075776290632062003337905346954889633537420462094063961555575697821760490095207632676285199506891628302395672101020557902745195995357610127660645980812479611641019737751985734579780524750801098984427450776982165827726687068439884876055478030939475367096664675981883737294918191590192237873701084046111238986579285177938183402835797969804359389552873030504992157841988655524485337639488027686237815504522204266418641506124021212734585070875211043216488153571036600254147736179149948531322025863612666047704517587977854930510840212976925530129731622517156334567335194961771764642697249771844849126597642406730261942885944649638665205553974834745321665182097351695143049343127299436861108374336201673648019454107781902283765892997880059609123330111384915567676189777415421889288896431914100923042172753524029143240292483017377920024741698003915828249607242987201385228570861750908222054350784597143851465759166434617522331663901276919113044797075632071162413947026588992745651923738843953189740746490600631733369850279007577098692894488178097957200412717541411518297928555856575892263771749225990814860329818841991333944325626698494064278966363192594709991766700948038537465872279591214481450299388482696629961726980025362108766366455296018373835857317572290453288109338512927101667585450107738511814274464764854317198009563282429811053825831103935268397686504604986658410812384543226027088353999388772217800789718227561520484696128017649095151538005614680774385885964520185878234869047398094296669254170145579546085792002884459042077969500054622157703892683945522796471810470300733256296443766229586810172805726932075504889456081030116298448551762872446587662781022584810162880298070462208840234600492349368841845499863844941228594939832204768198465606822120240351061572982353826353020478814513338924358612355725114606880676634437406059705465825454282319813803139037175714340450088055727629294906516973879333180475271472323899255824714768900078035345251163761745651952107605183766571234198910819274387327462990635553644384785359500955513446138809324853780468782149702020582761522763363330631382717610672841837641909496821332264516598789515120053229298264717046134849846056290870702241305666034586104614631050607549691481864285206118733669591089316024677493182042175624583289243383504493678636543836547814600343518087234797172667392444506688723148497682577167038364762397013490760177383992582920395224857054688158779779513946058002257196800389729012232174678879933602856967984002651781593758866693533025860445120245165275283771326936193271772660265171548135451561062909326255528546596779996117656105327058250134897656365226854493909520825324667098275998747107493168432270152349866941220154587793662869363806994059789408574914700105136472994715435843051649852568152126358939544159659685904108048815246777099470786501746965288751554519093866826135232498751764726920669213027603831785296159799137853653336984637343051284242213863154484901200705410670925550209161770555456526653639073471952302735690910074873352892494818471580503506928793253681806943684007936416198301796930875875459452957396524270605023095213784059810228349789653208883985746327168279757509074090366829669355831435222133857176260532996929064467000008280293483010348296158753934734918987758973301765532205063208936866171592157991181329799233644115452976216213425997065148804493977640436094614528214066012525240880264768457316492879617397080656341332812718543214881101137314871137023796436744739678546334572724309173375972792396351961985705646192651032724471904483204399939374110865902167186306476796036936710070529977104026359394545196051348978198872475295338584979160548287185052677386255584899964865116846646883369836458570749174320884207415485673163498665009161871747745562696531282446079298344631721351741727729712759336459818667199194860865275465422882343107013319064590730808657549087904002576092242223587432505024417779696288186059903214780416942155991088233622083085003542486935980857695501252284990941887425349580281847177804941380979121746981894615938846981642469687900769158531169528583599153133232703149524556288226546409756526734367502251990312643318983471468721060220327723490551287657264445666623086934801499318205897994344660819396633686903350160519108585269585791660309329658995163911511265900638329488786389050135486796257639669455001812060313108707081827535516262858314027052414929782427040154499857740419448036650122247579687130219639090214162106062822834914052718053234751488847912947138498091560531756371870151310469956404518394477985253207028276908699286005635858479612064129493423183929477281330533736519821462574899798402147782656981135249472336400926343190652108542902866665530893141647083971320007585379207374499786062930657469525374266327630859189319618372317604744941451307249602240282237120666089601906260675101612625039822555309546779788880434872276303068126118212866320517596409611591862806687456849725952651332034931303660182255832944517364211555725388891605596161046299890470547941181655733899142589804994273672093826427484464488542270945860369521698021931702648285729084904186606462561822335934312660403544188649709476416577853852858273165010636859242456300842585158763968398792131465153217259070710565838574051723711271952345075174629491547428413258852826588417210070506075575738142469128216777525272841848929308215811923850627243742656836456569575406247701854741472595957912657970381398974654869996278346245426796298124785994708407579524164832169685854071245853279256385215175917524412851016050120887691415774819052081017861441755835312062997944349671285498127701158942344713533207871399151804533690893423661107815014898485376751493796475456871502170999585916516744347707543138041255819909077561652212013486675594647126884865412602500362535722456078396370291799538726258001292470643981600624207449051278137071446020571054945018107285714268246294950937554894414549815349404648323469284898747769479420263323183023671741137483049130945632619195489957706019803095536453069021547961789524746739849944840557526229415305699810242467019971097897146617980404996297842842253282033341157329126537071723901613451777844849582760242929344792165210073866311954518771420294450048138008665577316814108150773166402608778183579520783868491191419455305006234425050922866167438032956578848498339092799571869813446086273426318501356386458900646077296509932855025567769264247306980438948166866878235236642893317025270581675595027052608121746837169885172853967679170898521728606342669575550861176711662277182474166952313897616973385081730847404816522450550727556760429705639867287119516455611409635717223134593641978236104584115997385354344944122809836816587182605468183624249984242268188668833673750658498481933371618171836310482439659398179013363928686478292722228256970752193734550577839126139941742041031758301005997920296589640288482353661922833402444252271807443150172223820871122448257315220046891743659187782832157325073328723340770715682926050022875378429168855059891101135978460260968891014701994841676671762846150367891344470369412671759695557296155266233990934382581733121835444826953502381903643196618200210718728245886637625000971713851808936464441699255596538659330622261503706431963651931422575389970115777568762748363014228339192602449494216469137901878342030595225633367290876409623010240747691899531053751430759035673935873084754612874042549960577058341673969549094412001938313158505705748847236791277336534556203200408659054654346076992375027043942309295937233727772419318848572724853637120252424818640148966456492115469571733261705776788653460004526759908507759513765448731899800144572283512956813826777816389903780215725305024275030066070549755578120327831874369488518190234057595848957604111679782446792147571227960694290094711703700425968312442579295514502890952470303522482230789742524384611100911458379600015948517688439222486816945060909350885723550240637380616899476925013582047031836943294192997943746310283911038671054935540358158117219322562958499408833849820689023174374612872044941374125128883986683423339471950461881532927657464222906764712377218570372945504525349116363998027279776929650059178242292947187043071093746168669940564663810663860669421727348554238182383835798722721788362876153397962677188965800638715458403873825998682918384788060347737835013618777713293261968386984783689829408135451416389116093504786605962489442529048887329283303577721159483893488047049790020602334610492419107443859846386043985741560537958375130616920366469368686812885637703829702198766534629368680395769292141087644099928505927998900404824117300967939095800858443734105469394672018559081780504213476010387165384099888313563761308134880653343944718482008925877451599345341354693997766545924240741534487174390643827951660795075013420287638567278646573765574094180112549471816537372327029640574694822964665720316286659369922110956820950547220984730013262792918694000195119064409219645431381569668005950701014902182081966259970014602279056443858991858603202016161667413562370375109058867926505840685467276311808328982165619862138081841076105441170898363282224552047068463552663474842999645389014221466822101224475672826625945031780109288886486939453358826886997609492720272509006416568716280540077233495519654161923319314245620281324349001298932553185556713886587764534714586488737447011155428133420138165251663517377915468507510941485825579906526825720345027540523386172006577813861130198076396984671750874679205438670686656404872337770497381632827162567109944954932446202622334580766364591655283133960618557241889892701185620932607640027313447225913069674530536971986599828314484735794623964567294684670629767366149991482460971134525864345769706949003462950953768385178773922859616755417281633172020303201078729300850895902907876359378691318970547833078042754230901707701645564648380719739178032591359295420277121594073506243388635004119539620716793132509319682532960778847984101721805489254347565502602646094993472481587767874125053788922420768962616755160857231444869240243603491990872317543553129166441573891805741333432369808292121992729639448081960176210772873439955470396306676114754815689329954655108737148074508657683565540049373431875823120791369446080050026106039067726641751769536088379638424002365789478110004109201470061889660349890904007862972087362969263140490391868975883355948881230710305902304578720233412813437241939495474481425590428178152608823104664574376173810733042458445371105625436434547560268489310458471143822822573102342701553861668962557809817244030048454349443692515616978503801428554582909441428303259255199546108034460939160812656281928228494771972104210010191384599223254204360409743729826382504866510664296824349724987256850038915507677269298382277912560958667275850231598447499979861025748036104465753301279439781132689515721768073737215246824040893453608358334566425980245273855197896044324500236686238977857246234862068366790068235881983194494959701714605106028753195249696292581345181278162622063475761880030355569453661689836619316960734193893554644035997994249257394430178682022345277034717700337804890713607118533946999880129419035905645468386459707467447300398066520795009137536568889101009255057788468655102064462610098125193462488988092169046866191969630157970876499720522274780399007354895460090943444679575244165531990045609352677333650840628573836657188042227679662945024394479451688674945237691969256594341223736805661685315274627056812270252618825574028748521742528897348796668510826319189448962589353247793908650870796613293700966429834192884073981670525991472366898664720876708909944622021544791148914663492235650694962686203078431720423317795637510842541259813430680009454236096220376486487117525599313482980377284228483808400568221997164393028056032814652545783869358088941370494675278492084500606835953108758632553540084470529436733300603543033762407353118018055996469454113228651080008990130030192158527787583843691381358333442998981602712011333259773060567312158453944072008812065521743767533940361388251740581851696439898737369423523610168030045475599317382893839766412808764678385892812386693452519306966697308458632047864245943334233537708406788797538109399064479715111138800446522570315496820988401595060870835987683417834310538812750565319957515896941506378246173200951983902974178903080072947645959642247934008220394128363434051598691691571848315982613672382266261834795787133520622177137013039193224329534658757999907977710900146438446173300074106956431607591909278619685573383441204837885571896225395090635906040880625837640906258720224034387091985521576105230436125461632864118721211658959965542286864871964909927346109568423129717972679213359326333632373594009332459415830781071830829752547777054793718874939939316541442690464665042067591340103569690473283985848398612373180490852000976579812721986476325096025434917114871212419042859333919317331085483739482194202669958901472044471287030561480119847524552344942371653102157438153896164983384657079455478707713192997033307576458659556158204861965803846914248275725177515332020293695619356538407839979498577704215867213021158425056935442121852242869907484550984573502034777280074452636925545703645664247554704993295501303219468192865822943817021886520215421497707011404110734602395544587449787774962248163826545029953218456996699142699793877295307429407905044168757721196331954722817096870620263696813786920932478983480840121335182769894695161881056730918630921123920663003284189955863704470792448978511997469505992905503530647154627591384519451455177880980005406776864211382276837370183724389504343382945682614214075332149210211653026949850002851074143181589865602294615128576251452539000420308479634792977901525334834904939291293230017212868400564838964632871902012671209516546770153514975799748133378804895746833777984540905215283092810953755470916623953114844638556058506263693165838325090362622649382193315715142955441921251416255194286715949490285916835134193730178366211380748140470942530467067253985850305547511109591216521767025559355414187026247836417194127296261088393501820035464000697517901758455232932305415049301614061454696581525490760484071719922179054773637073437459820102320293897246020392942669039862943792027939733091784959512412465681913431390689783375115439626540412334266613691477098540436695609849565947831136428759480773649774557769115676466815658751002960925292289641018124032997772752529524566995090873682153552515552216514407364076919186733224111684497430976299945618997210820612752249035096487208770818840297184087458461036713680888272834847187128752955836429566578977278750738636613341664569616031812594000722386378835492184657974175249034855282419290219818041152842677237515029596877288486608906190690919334988704555160922996619343556536501635442948291162747552606432389605424037754668337680565577720260507819837541662960982178749547959264173719257953851724583485142682680100403132029238925024377619175535339183679018085002070947888566332942252289707701168348983432463209608424683449455760263799722167727076680965946740190191300309713892659286198340560262632818229681731084171424189089240361779464748680998140029094973935706528979075687374046055636196575694986769759851566830955826750163945245161067186141463212175805413544976438566805397585203789145296826055210726155411896448918831373591659950056621283037448509551636100623353757562981853951732053623141904403673346709240273671797345153838365731679595860784514447065406816618586472737059640485318022989629845704624256368869815019135378035657373616572648467495799839470784984589193956033529217909640623837109931818324437588017513891966404957301952388459099246350143536522614269476422910769612038135884190546565576700138663078457640386519285856105492433991092338006596652320217610994130215335722231885017124124372234804767536241308154663387557239031974158214491587248981300726071083503440716967045003643452378707792951440573107186547735090793219744369060513614683761286168236046244784350958819668330431966038557095613437222670205206717497067770656015570042468294167099640810544113283642520987134958865020078913415606645526928015419275632746079246181234925151409912807175898471055221941740397974772383298858047115840057793003624354966100495515586376053768478427610136169166918647115142730226168869133205114278718383596638201772956005321445275594836699968189105490963218782821670702776980519397747767473350160592760960221321175387014561996636104775943780939900163729109789599300299528308475979911714102007794930599619712804163748284283053898561463663421452074620880998598359874888792582028849096488951564382922375744582244495284431872208770788641064979129285627714239248432710260836029731852259910738023032799463287527039630408523626520906430478211817267652555475908890517906927582516220874455698001400604124460263791723670018864135902417412027791665635908799481450656276098163412992686802337689772017108225367029132453574183193166685414032689272769258607729832201640046560490975037191505112742505051661292698242491521438079212287431634644528122881004795348312397655584279258421501026173761225736432033284080255821867860508691255541910979664012888233498929807704285984510039393940518988546904625071013485550331008684381536115855633779365362856428963493794844034835241042516386908397490554063124579900150673055138794011514176878027616499285250205113122658423272287577574185692230303930816626168416443540729985003216322417695446509107134381510330391160174304371618594798963366787516569693433995227546339375108901478510606329064717741250912482815992993425577291873410440625086039610948057645246613352975255163578418128972089210798704848405348233485804092926901843027534407168498589977904591897842967602792643224461053090822090397753757853133943343213960100197209984513200726425793322666590031057300689552649106947491895376746096553819754879571902428863923961196709902602877993634503868989789521185246018639064749062144547195739933110795822219262274662806069187561059327395272716101863931814332282064127928579563159912463945295727345457574700812267752837251127910938806521534342358910286765157921503516738444733557837385400630321157085601510260444389701934954272547610895990167142846342608024906938409534565315160350959209537459649715736458032019267418623231618047206559286133640472511636279999886893262661644189440133516908798643129691552380945644015258875387790017040783196397154383906232963745851860564585281466935635587523011782056788716400316122528423525238006341974077169696353370033863447491112143484906043558035673866226782129474818413086275840493793442551036171627747072761560833389123059323161370204117602973438756646410836287803363104803301000106464349161945799554056442901542222479369656946901483757205996687077913533647899754436177856973835904727317758653007226564401390727432953449612836129937629856725322781797444366783155280613593846008267644202298310440889647590141146462098617625890060459341291162039331804078245359669320341719143972860327470472493704088759278456250962003651624191460637805700075023884565081271395212363611100819211429207161213655805609885316523314324609801312318122346453357729389585718083757490847680247954181293262537631859374012760663033861834003332602626373424992692139326096599077077303744504921384894363430864724916826299109765553258498371497595003289657973143217160053582897773058000337914333733974820994346813545628395106616789982806829471503060550967943873690610271065629784292101289293484780683746709254229579900107238526278449381948023042772213007748069754958457403651076190800313615589745971903722639406537625908826510334373228154932536727592786419347723935265438478584037403534842709175164159771658417742744510246307044079613679038582010076538542999116177739185024582115077465009450098640860493788767365507158232559643623915125152103629097781573959765436442168142210698153781145502898504213462577624411552864075604819429935195430793009088673735222104164359937019114562791158397175320495368539841017703611611079241401907263754398954686726545668461634716691341864949381729324040831118670849858346510466303124447397659696171687535570386121318033965064542015827442112176785100750806440281488564197903597367783696376714814450228283742710615103702582981280078303649267640328724608886519250000499301500879118457535527083903688744282374339155994341200097646536786426312920278517767703976886082877808368848230781566738570584489023035168700412462480654093286560543594657138478805175090837487991372775178413920489842738394440938466175636016477500088307877254651918279122898270858530986895007351767898740136353757379959258866227572013278090499876273917260337074862291988020494646379303204179989766043019415226909856704262560357633836176131673905346834768142208502529883615576844982529742733427207193950359495087763971510557014834590200178941584397309008175430705283676527813056595168087462607168153156651998587526406530813056732288257942520729745409365414510271510960928832594337241151582802898255768104558963772433255688411516023782621576821248780080609392060367749988506508686054719152383624677223402314068829337134112340974487446368058550207823621855825142422600796997978694654148246992469714152355286215578915651597137676331402671391984357294300228543396739557979688006629430891868216280807246078351105173099367098694307812041506794206416251862085177272701043381385113453944836417054880932983291540139412359019758409222888467817160414679097975518951738889914611265588635464557288042362948071751893849214400587213068855814038862996212401657783541275007515705564481759215884272586477807787853236618528460886232220773656471072330484863283886659229036541139788606633771849360256797446515597499397946311146498288523050038095557842097818184411882782343235883593506887980318074403761160316259757728612732572040481838410584788618177119315969466252351132435513912128248032311848432897893120603105946029476609927596164279065716422308645419051427173436162855820935662733428942934959294869038713071252681017871426953453238721640395782890052491088474989755343357463529249876570762005219545275350319517676226552501251184867040930341655436951645301026550192331609195939497354364396191652910093681767256288640448266821297830305354827618369237139496606403928489105347231198429038780919264005847716430217870207447291785192728468324156335850257096504354600523490208608110252012817552405815046971755619066374340251136352198919329818215739662067710200345409093609938106962873132868580977506425601001766420206540358658888109406285064172359953617752477013256007029514152072400778259612419357983600585146964823693861559012282099172744484076797781238233356391794012948387622655673387965023550721581533166880350787033697255599906890337391379246366191959700590787035845190992332956355273647240375397110074914782877733219320625744310601103149110129067599297642152489262271859094062615354915662215981587048716594092513764518671151028790956308965041735714390721278264203940076835174012301801982467317432381297719012801481639860189417559638445182643316864211331475216693633397613845949757676371084876597532059647599871986746077875338297375466666266455362056877686255882493372852211711607236170415705522580072118925941584178013639236226705652637328106374671286019542265159204191243863838960836299443500461094527856977151226626905585151507656786849451364714293984811965896541157118770580018530705758016925648478738393353682824200731284104332405530748099712633255937041501592324385588244623959542671812892930463382634900773190994127309592801706428630596814518420183555930048085956151202230823527699080137906688352346122511289177783793317618800412624668663339249812128098697759149584500359289175357357766385018887619576518333021070128941474624702680131924331659043088680533269995234919806651832225816403204170473986354174271590426778001596920747083390171335108659221657721414498307415596159976605088891741644749753680523699279599712764214173781095269073475945697328611338710810495020162547419555055882726031131084175668792381539906080804468694294438644954389473942799717062495165364327927092196125657352958820073704657003868500372265865371687011060423682625151836559670919623699379458634359121025430858935719046794072352311896541794838529882059659008283896752546749662083806038605725539625144106277932114413150047783798681289197436177160235473403509468100681460016158219925756179671103263067907976718438148765667188471272316442346093364771025005891361959602772691876406807014313854319412506735835031109563745922978108376323049006764207883861238185771071733053545692455244852634036135232179734273561377562406631772005869387881219668083523629856846612599333807613274401140960591665578135013139181523264705034623311828672443965006149536074497732831524934952163886297101414048970479516174989648238538558726992205038118049847575986461246347137125994912367453176093240102452257899676173015471911680243012486862007492755042564337026230161846536539024859664644414988311252271860422666321802097232215543926275050175057119848622282661507802418769712443264488307522340363029645997270280445506030704846811713686293617885056603603160678659359981596149187941232825113169749637367359375075034308659901249138105803478367238128523692649042387629988246408415354598998616862127119133926220367401655912822553694696604380545277353854337558170467411220281736289293393969386040539006558808441253484687626683356275052087047514583414606560647164324098063896496669757611463185565871601511264841355237695256372203704961150366453308978055339657894166528009546339637311218014548797852181617779495964943485412196806559844142265986711501208591729464696270248253311972591350501262893835049209620976398855596793340867520217367384425805022777709871644310029345169235200931156262197447587621544156727884818168027084690517812057974739424477944155143672637585173284897987169072866274166447647335364240593593672151927334329333317150521196050470073473499279844369689286350946880559863961038740083152871896589216591351308758640640195213983540142444449281902560425263903023993332384601167448912291842748560272819282383506055791288813811994977717250491131562342936005395711107623040639278144472059913171997734897215730594206594917985695370850987908896213873899136201374639935075792233523375170006749845673450318025535448648497657712719321367250893008313847370862825879867097923748289503077034513311185234420296466312686402533954322038773952627734756293801563842226548050984444047909143422154264449551223568948457028087905091798037509033406374705995816407335075775981568271520908445717718224269617572643815564255533770419379958143122715008271370068534956438130539844952201764629643334569009330460211487176721197060146684864257686589303003040499720733820860968657104918424230627060010749740050654469669415138233015968348117451851688032757283311971205658751592769968610868107401443325932452764826624843936052651510509140924354057619347412191256465007138751882342001084693564765351875384183643957849703049532266627417948316030751399561987055693151742089302891319473568867655257939841668010703005200562549734778838944865200066012121162257682012082568939881165175929344372821342600219602269569520555200757378530316232452682632628914964520221139772373330768584362298009520224699522664985814144736671746809031115910480277206603002514247476806119277517293827087218897617380229229587720298152631401638125926295471847588274148379612979851466299828296920426566429609006182238459993440384887612997540552989664091816440171871076473636209935551125459409720129940753243551088373182922577279263665072173055492951919081751153547121311586522927629777253903087363573135063653280641982012014530182203489632232052295247887192617333880742511773839894285567561164977163491671715551695841504844918724423122873240344485474008173799533570096630622938296228837597664770832479208873402614663825884418478308295520478450085576172056641737895656911092341110402534204015068573773794427289080639723826134488540836575407304391541819862780833190518942389286325482435735500038496934840512313154891142085650422482741460619534327180426444205587185819940273779982641144405207732575592997954606896405481003721779721970954572401641757468530865165678368996506840256760046496251228735113269500458863019348298375374164904202468228639857658819208538909806931333531784363549655140864159159004671895928693898536491449708640571951518198372906015970647324783363148719478117849417201437896995427369601876827253580446848079076588061961462734648950125998951636948074333030125490102302036085239607236215400678952169855780892208485151650945107241038005115881381006063788258862596251735971084031269202344809110866820622266966176691765480460039677789622344992462784373151621536422330018476693705199510100100859330771793104577495019158428534249962384452682714128664019018660003838685525144065828135379051336252624058079318858826537178358243315396631185590939764310119504538781249127992923324263426114277206040833153683406611637632875993543299835460378380210296665658411273374083093456913925425250461878463408032616876672842640824578133983282342862867957584359871901978047419413510857996887021343896694202497190427225426950615839397015284180091132842062182684845720092663931912536055607135660370334101740807902387338458908535321381512104820308606238177203170623285559922858734997036721441649305923821442404673817409472040245974505085097993668786646752911560230491733794750555042344684509390163585475728051760312924354842480980864212109108778287736999332084138623809507281430885547344715259264823215363919951470481244393509299440759658333506503551186602910478055536061773075760959737789636756676253885304373364953346668221307106536123566033868643314535970004831823644481084771486292839638624445382163923794087499837801117964746358110098802430456910373358079559948659734404161116595044379198289259188023055945915350500601955010586454942946306419404742171940366676783019491856348470883071332123685733527084108535846464621124366465112989801352279222410057005792322508107529399784096005540405505730798891109839431372904785678764274360749589745875570143040563677145658600853969734799009693762860522601056335447138381091170613104891803642777670600664330045863448843650899794375096781812782173799002773378241106132602845689427658651271180774726426964961121780282854882117596286536800772116648968159437410683381765365110837142817188030649283062940377153229004724619445059381758530876122637410251112582660659183071690919795548987722959865003679156805812964371232981743254805265645506765132969665497223613861958235397652974643716574195075476188158898631794164858964743778265176427599127958221078585254637182350910745590244191715641148131746597479105326614727523212588669875698551139898681959494993389184508923039604981751415334538614488141662627383873334807408123707675432776046877557625918668961666602045050064407196441276402462536323253658678206367413154450173681644989368646374337777524365806284720220745934324265677375022903220278202015209736303495169738931519252206951860302607065290527468680815459609152986954073702907823125370830829809438588725511348141388907844093156130933662183694744973564145492164770695173130935425250788942691215259291733936751566821134915871141756196030473106707486836440829516246724245772500731008946307375689828036118030714298216689634507346808356767567183823551906152700193647864360245642250272193333312595198543984763892486229090357829333239060868817346954243025393877666048401453937034669060466446148232753542678089790458737040735939847000369995383121605471062014326741023773226028739548737982169463347396532899482899618702201224270042094967891643740921010777570772746218657124901308448763662935057150726686603721778714095523804213395367165339448385242224142380955275458461514743583628887672331259706601089183468423164637447753926259044056014624297059075472038093269168794938969322276321966316972291393812757744669117135700121966591477117235046109691122852925537623617153917050897669725387523668027443196011894433595738926831122673050975370699209365694394680604504828522173567360990174033713445398142530554445558184596692324615970092905737289448978283622041499475292544614960061272099533457694798453320391674664987102897522395420304192220589518247022459113951324021080530339137693440686866201214314835655461893638584843023632405166689170249399160832049389805096568583325879427573518100622550580729517462411904094158238147722520659611096653271177768222889037713219163402976834795421379045370331896087965327329063671126570595989234793476523970662621082143897793636204973990042752108469527555767164823547872658997394269651701781842940724207695636805590294612662895306383482023960880321982953025702283451016511854502975244241274053557103885843265803414879473486494621858127839685241289224663181570672437909811415354805354001466256059163736966933659136066637590259630189775360405246515128335268826987499274759228480847233796461417279739440885342896128718322381823566533712079459695574760968078967813704881655898236121085993290417460438098542181153889056011696182651211706747524377391176663603490002709803957968021684267869391066796134807157649158324106513055468023199178657417305729575912843273296186570313672903103797270273216231758347043010766777042765926220966102662722635799531727565379909709099578079054477965549765589353777175930145195816496409433054210854552336224633564511514043511365749707836465459143369512717023182744107221053614315665980834365562901575879304567070691852726393818635370300020174695756293707849896552602221367244907170902812689072216141250998622678529451545576274502962010351865006949811051935565069760550068647213057874083154972166119201468333540218474888150424354694842562085236874138785112593615603310008036741951244914931330750534546878982883059146469540724608932176189259274941198370574544225116910772310682169559140799148698158965776427149785439007196072728069536635833997612996172363864147686139648579968685017772874541593248535400360411688890791059313869411443947744582855989030063985432479729251804710021903575704891508060593689207577933304538512287171280869003480207834888325728266385798174809881817340635684083718644031005356313983436397745020765959231433700771291105013166704227609429986734202853027123873347482195173415723322773737212778583139480183204880495923636817223627741108283189594849641826813587809525477763217586658391524660743178423600645479050890844804572838862178170228166944267530821295243804258633134405535967485108536124294677728395037241661298069042976391637420580542633876256056254824075267766410599914140306070035050198967802497008037288133196833161633082454831359942116360107478665629215561390086690735683600324458238752068269599513752097753476092964654711092069035695351401302605787839682237954895209530749806592261998394668537886029547776039831391235329729859672942239310995476739169616974067865642948497137241850456131729634207322592965554410673464612943471572151894201910237570009924218398110828075581835888760765087976282503680376893072514439470226348360690841452991149796978046097395518440201464366681356006675022603390097221452958619391128820812842156403409274334547936742362167412815674707097467589291550388065849216777154908116603099222056617857652124682887860017096655313789958476827612288360550274105894359740324551332524189792339787570937144415689951951234047692743222833914291508568277909109431162291618933245578658517825374660988679411099666115424922229725646976560653183919287693764805114693389746822131536598186329935600206042151448516766716554373059708285142860099518578961707401033260397379294641088048804891008273499808819586919299896649767496391831327747627377601342693862744520215230707359857272658392793556575730705257177157967551573268874699477960624531768225463258705955081619952159229577560283734313586357664666275379819073861235241980314934759616625968990290510852269245641634378654067585022158051184390676944868656583258257014419014024425395699117166351760014280389138254570393505484394256861674915458152412520765257972881565475685542986610797688154519381029090329839448655514651986007266103409601278144633514641993872788136546099425442411840037207524753948738780983414812539459811707041637582015749695550057413571288598368090946059323632966262844108764599367770221599635671357830624500187394303786777208225664441809698874983685268196113909016516872617484090572051148673030609355605976174871553288833648230449381487623535155927868028620702221818484512944687575250891378377152564567562776060882285325507666480153211843672891890164778909386601870348646962906683244424848616189601042063094263645256611790049507641653415993738483102653500048113239658655548732276253414639265453512689743575064345301232068692612555780784598685997455112360483138398496171289304790693500164861619675156725471428938826994953195605256948303774428576525636720935764932373109831515407013519714780586986056017549460580489640545271075382883568434767892648038162129237379093646693961470162793703354956208928887478265473478142035546160478169930627872854900925457123167212118093335481944317651057936816123905513928106806278306075181064232261588621994836405646703173511931824155734468340197688748644298042898044200941609755176401688685753721842373569648062653729527494496596268593663595533072683839233013552051181781393832822440902148256649787038298030260703156741694703629094859894470478614927947069825876572471139642129543553108784927830164976599212251942331566920505238997042114923566116476757498764522714017421901916056734780455965019944151028310448002701386114424678726070784677513740631145860940960618194266549956693440270073074154578161725511604091182636207577554770450784630007209385346003727734938563353989583271377284776716796099716797042287522216829839930789504907653888208461548038178698907548546989041074501635654870993994577060607531081857171112361999544395812092086430448170613315194662980367959631211315908425329516739951537662329314133093511276208411491347831498079767299491022621740241993310292914347029221961758897501506534455641213278783755243292663206300818435295830539722428922690992967732521771041982620242977205261906013532206214958659111535914974317359285503625748408163447236476684148106814279225201870084914238243040530812254955785192381583722944911067900656852583918404804016712691741016356721750889665173493717005105725328850504084321438176504557386113291896311068013482733561765260521418748896027214906696963847847078701588659707209542564661298949180707924025258361086589521087460002274115625625997986062465439744328478081924797207334337924459368825515824214563320508927293303649801603006556340581513015840974449606645805523411406968822428797872359777720905767735565989001904149386419104029716935293418930705957569146417438018874290192639400071720212618704625792382132943145551799603013130242355723507027170048341670822413277167964203645881808800164658587221817515978125234059760429115618376894246237721064570171445668721563845512683945327594350786862312851168399650174287383490342754804671365349726536517221445203751236702104047447624715142108610461909117485291418291804463365111511320834820597889022958784282905294022366533288851860968431437465626485825863417356955881695689891705080246962087687311186794949185298192242985455180163311327894161236817640019043565321670728795313984512369379524849862080121620128806082361775449643161267481215916992187705629936072302663115442317102793336845985678164173258554029557592741106876816204903509872020802805440677680035838438988537463570302079611027252970406024471652147003154606606290425608035680550315394495619556370892427937726496655960876572729203529132944460975171082190329197676538129641631837510935113015033240072652963924949774723315278466283307115801765816270292078094401249966015264258150360532275466987977834210385145640677924297391271724757376482180022063142859854257352380375645889271620288592421294722547947067278881922381594989113266697719893638496945975775671469093537439299743156501707479791074788322771780452653811688111321934966308918080168130795962398683029652564401573866561878947746572209871191812595414171326847171282760998564417161501200341939762043969937238875997171744979990815880351789413284042945386997276630734416099570013507779650036787585599700035094196669380521425489229557041246962425126664404112136822747601576290412880208470103192673295142260467376003389852749657561136585813994477126442328775856554751530419771979431595296348064510330124159992120020469680164838418940230923141245072088987333745803895059923245635407565858875741307096321751101723223756247647492428664442312157849663406817019362211336988566757684134402092645013047053279967844323168042214367400531839480323986041674010090105597405867957852295035062172634283795235931659112105283808039599412712790674292774162567706481814693794423783326488646489816541592770355769996045857251384334131241082609092362059884720967863627321633070689771566074493418461090757286420689032604535268675586037569534793857800884592294055944611773857140893017025674523446442123753446432791266966583528349163364081050339294404802943943452425118889380633869438567242265570857375016354808745758509717591628714230682811846029754023981051917037379552982621141741259814428756542598369497323350983114014485150909960811853019952345288284488036814222398901322517720342212029452951631089158684713487406498060021627387856033049975832587567099437307574214013719108352710313927931101813151001705026535202927947760743603268545374155866640008030206396752982169833788233570011004021413427420707288859573086262697841306642118338372160496201692289002382257400605203264820859357232190508657992009456138798334576387637345350362937095962126187026098768883913237338958972391203125312984499895526454849956967306614578193105918633755711379813749158548136117781973613467891101622400166151365328819928596477545221791772161053867237134056525984595242609905449579211680225635495484333863261757419764909819678475398493352191563113413195241847310541179677069372248843641782460789007329165215376242496809634523915477868766497997460017209812600522169302916509942500806341815957731585125065667948649743365705278019291397948344141398644378883448989884504227373080634574597187075684094587312333875770420486077292642896710704742620679503866924459278437926670069601468867958048014401678543063420214618056856201262893154746391830303332721309848631042597651931518520886210354702600940627950809266658597976943023142635579077046968557505651217302898776592106078074161505230944306283852028251666918409966883354693486995172162892373755606140539765158331509681275987984889567926177371594004325566282204752853058514439607328063905425026870768847167748943503756674301302634094989151205896537505208882488456462833365520632449623081771195548733815621224156429914972686515292683502286040091044031469779815927094509077712878672667831486771186284436699843030774933360865148804842016846112095998654265809811230834688122314713163830591705573278778169029072120213466222394386659338458398844730250908810971473616637285157551387462844400564734038998503624620533445402455283799109264511521848466077277874183596101958793521675104369196211375435932806739872213094560676188617200097506473122053949264294577314034848982031955195466012884993401904485285530185741604143716065431589190807557731999830000554357652069133121324618293185737186496893000388649714370945394603894957379682827097828198043301444279195618801742002363414767488493308572768654124921126833455029079481896446617684014774373664453655080322613145922787081892306021388659644200826340043980358423334318310576657046342624048220315553470922115647875561291932128080611138497463554174480002947350609271070433915053356257106136379328551081863074761613701111720468508982702347208807412337943877705117904989869310050756365290989586552139202028597399447697539182125167194912433338535588431712508181716169984556446554298623198130652204001160270612130191894070073270291586236827223735496799260381518872678862854179568260635506336744687174137928429411794132557090860215181164561065822188694784192020439403658188276863103152305313342852428205591485371685936678478102278121425298747270518040341020942860320393209854633020218512198795755119631939707293663819425812867215048980848877985387788394851755753595937018803107367826708244947309080676520206692788645655578478369611179973279967946380442921445003824855689260188896689169871919837587606741479193532654536259270771314263181481640533590837888693361034856385729191857312916896402826394114702116798041172308894753079786331819297310715316082430586838189554560518616862012327792184616238705154857847470807412940029578697591485007017549378626651498397387437437938623551410456049521301244271168357180788404460597143893613754674549778708417652275418689188362482461775968059054712326093437991471013698356608060019551177540080228212802627009096755977303023983931407428351407527784489469342073162236791662946966668930277422654434414466027024633471731576107009959783616100815363480109869566666884399402669255453564244372522761773196668599707539628096685212746435677803725737539410738088703548836840435956553504068990320859976166967067637049138685012392590826590426799726476664980312845378085198889253469561327947530280703802308392902048509577352273109699211873370395478823508480041566891183884812522870949887252210108363927097037269158373555350093854408304425430964321067604458390945937959560846057465129931103631621587360464108464994560679859224039543187699778731235337647742669338745736950052652883099156356961394941702696872195214527906320717425459916330751101962436610024987407593611415555446730904042299226125570705240022999126483090052856280746849392103920633114505804698320830456735049208958839475239044126848541059242458513156857145965395241723685894860184063782579909621479931985066438856970073734560761912951686929438483233138404282423234806165013033903184649539749745489099198851370973453181062943552341621935222689952520471154328715375211559620355568740980446395632144074362087041705302455781071274811670684438984498174455645162422829169955278381936798186744262902673678137012586828729079628256251134153201560147646190693705940990141065910270925138174365561963944029215543785018803157631847135513077028586333839391045213074802027409897647496435612653980827156071407478279543665054843786507997178717266472567083147167489103601941979156001239847510178404143594177578440876057095509156456913999360044036106555004970482087417268579282481233970334781763201962039661379092222535118213739865854140681719950687091101978483695548117228166371698884936149026668182067070335302447182785317427207201394776569233277016459757556152429120507836281838451842207601128529581303562699379464668858997820105201050665351523791629345815613229458349297294941346981866415539193433730196508454998724053663359004689521227071591908102017185240084048128856578420442023811662565298602808035067246499525682925013405461407535008556735656171828596009762699339340457416558436447385981764238380901774796453979344324414332000859268649904528809522354074279994326503310751853389683244694012283477284083293790859646894559010822730586329152839027777647907264785101781941801912743036496319040707385540894615401224698095826150781574821241497454532315053899067781084971076474672904496995197518322704293455050830141632007146517246094726831750395263472358889694786783121031774373489778251182306505804375370491092070748434762748177514961720692972461652291488923563206057917095903340072506057848133919807175295468851506063386697274955003525286997537115600855318943363805627013014297894856875326082312361092389076268071031117119098820453139030187537981707104890046445418479228112217234284588376178460029986182895918010534448440172061726365133172041075449276551087886702968350978729862490760056783007612444434424605985764557408828956974502625389196583475098837950412918915647236206383840423115842298849665427645665021658803701401448473609914244680104925397231827163823986890446788825493341169692451777546781887048421366737401452109445159906085390949021040238654646770988503600776103620499330027908465196223011767522092743094186833386214584344916049611167994759889309583605043890790157373742176033934288548666883647491427451242751137096345949461061173740654305453957212260720817651993052356878700748659803368408275650511853860463535755583455340997141603477879153317101837830667493247692341207955428381321978641942998335165435024272792407976368415630127067580838807468886699552494212253622113905926624661934485828264161386891401911650051843790021658508081226711438935941041013958963267092093907252166690095635921008002302860164397096801730885563487127590727796204624884132672789971220592313365518086977095703958220949123261707247093531668690684930045524568386145146796313187830054456674270560162961099240738194815008067502989908281758926491884968932502434909655325128392655111738755633256996103704919836888282151621958415108895585401425902165618318550345773217610720623318420426717311116532276463797906725372693776486380180394484595986848150249774410570810583091313873146827899195729984648120464162696899105807554190418497594243581936496173904868582080922921327491234686728388361402806101255751649307774951064330416265684576030913824893258345039117399803738994428028007212405581034681132909489825386752228833286674368913359990021660027427678149605039687210149302847429953629763403625243256438362720258577528800426865368613525031002508700898995933200436332400235605995719339765766414171467590243041667644366459813351988366061525393735715671143035977018921051997406227583950270388826846883576508504560199259150275858003730126678582162654328728426290489652355418843248075394935001695536283361861766540230518639293252046072232060763640413717480864028276835852138818018793616391688696713045895866053286957609776163193846568124074539830175295262175942341971341769961477773907996507844970381914853259281607950507152658662766359237121345251360283146602218075653797540417905776553183706878131266180960171489861804094380293738995232381266628994559080760729365512244438163842536746969661502791121750102050851850143938438545220062446173543687111554501552642849887947407601771328008129039833030573667194539468600697094834872660455315488864804402260813925729739495415636827236789169478508599465677917211313370270443133427943647415753164436171598537356724329381875353186382029143231945619554363920535425509682175786752570853132293061841571246189305201953080141552176406956657941216800599234432338433180876267522682765196991663165370154164629176156919326470831439045693923427703585861445436089298211043075940508638170895172442497890228513643325429852208108868962177461451986003015403601868777033485395865817231866429233575110042962078779367318485796822569988231873241618207831312448992780502077893359458202244646010433048743105866462312181843348378943143537439517999045063170193505781206527755228743035076875077145170516407196507586967269087303880470409089307529642189674893742482635701690753402230983015642916035675472492480480733985483660228989193614662309541005232888667580824307966961899509048052413355493962051656368921623250271271430756036602995132949165961541704279780026882327396612812657243898066954618015682103022656988904150768021880971902672951006390078680433232195459177353787180977336309281206334873998748602680792747494850376661948500452924681635448115509087619433816649288182041285812701790086305308795271485782583146597111494739529840443284578431190436690402309890452048349039197217449705030198342058724104445094315134598424937673900396623785506047530982054732026027124649919711550518942273175154937792806251037494652846444076212452557639426023197779355887526576029512380513558256284249879034985282368699964518184067389093833144430488698142729548329541881027096147520363129389391214910594023147572607447474697421495426398930706819584226177793581973318279139030212055074890155817737540527677149920445460972757865351065917026368063888284671888385528773549097633064000200743421044755058589158954482439490800517640244695850805315442351588339561328139008274898394579893910776415369880573608981468716262969368920251098164015134083446002842372154825732795293641411971831108945019576396849746039496173368281090520001393727688323503522184429922938135621909728963091679403268446540572783684786825841757849795136871833696814000538878677063126267118853255777171840364416292469142625572650914015647954256203544313341769110468464570024158382323128024015483909718047209522849818804573850656658137562386891031039159340467599477144132934688742575736518985536682096632841583439662453843560028426321940633684793963630263680273772014212561933850120018783683519190690396046586178279142380386612081985644808075640694340692307057569128806379621933556472079069422333715072777284108746052820818834643680979040532000128193108889618472596038664369155018259400222180009137571983646867907577882324065384987109537960540497850997578782490649185714169929364351841780462530824707795858415699326281216072627509975805200193826937110389072206995742132254780710465416741516331000693363320604284259740246545674572006891586643658065296538021203333428844997071480272323543333224130601408650772037246831739664695402419069508290571432867266735661614646141067449484843404367661665365089844265972322090073809422994865593602210555205937320431196087762573937797893025493662811233437445472662869308350545128304033622522855795363251026713414477979315825535316235352133342198795361024005493426867102684425040404295735367747882652061420946367920317514133692052360901354729801806383188328244594116412260644368918811781268546218364038998231772907841463857912770670561198562105542537465050392098283436739684320330914154126923712668446147854259901708615444855689175033318435932770461632053182800629560427894432496775289497226988743506370119972015053164401619211118186921815192479049812810460098573673303466908154155091500776840974630136465631757470534382542808184744930433072896010804301580684964035296953911256089688100559763247902286595290372840908497453737274907585824012395047123727075376432217849864639944589877134352238476775866417862874284703907176898257425759009128115058278246938588787726635509965462949117053341371664760928264076879320252211228154536930287546351442971347581737542543943578129663573367266445194077450814812240525387317708982284561892994997757958030491267261289429859796339822079250712171689147400739520227527539922823338742144007072168637573535188513161995385887946049071963238690586016888043221050217839001515339590772951136788472708973764937445743146644738829025397077889224047999915086729554577118940773771152877578941858211623681683358984374209735132781653476431426501469557853440365898203292493449510444915854124489258213731592088905977148369514234854220239975665870357257161723458982129036766896371714941462782525965399645853790270324530316160244191491311202588733468076521999862023970637842115470890446805012544558457302904407023213183935874704563624628425386349717154980204226999662574979715982517088582332265995368341077892576260592471051430379705778963468324957937135443004615670396644746933756230533385855407210167218984890034455702967039280985238501453333858987717276496410292441676361705156462792671883791647221666816677332774752708096278163416019711487924259157629578156130763791384223285969997397991121090008796302018501094387391598414902534194129216814602701718984808253255923590083537355294457123892995788933065453466937280070005349706942540945853874019695150752818705802080580148224275143148929170825559772169102933033365940082687872179198946317973133988263201506204843216321014869845166926195026338041348100329025917734522683420800499710537140472758695169033823041318069480196917760293981050340587330092439531428555965454526277261736624220253598253979769271278416481787911816120175012927665367497713841772094412003712803580547159122728995089821246467707908914373830061398661589656734983985379106939215024202321901773340401310045313109968461719228551438206444714170556248241134704593920768838402443105522288980207494378776678319971922718040334195792058086164502470662186813049449841403060383421999750176862480447426768186043016427430971169680994652329162441618429704847211211283916767770988004418404686985823493715839976234213332916367625901309346432477957571777349894160792984472171103466202917769592967650759620323551237846906779796367638303854587226891799525374223282985791020634305585239846134000307440194029654819806396099119932155542824350645686075916500662310875619207705113472003645714166399388772620572409062457017411887724228092463938529528680566449743942186483512437017801315107795781653183999057170619434498254829599122918847125324764531295347661581382157765300895620465331824300203250288746870881803084576980571011141620722681224608534492524931016080163076576307308977809230463806142412973280695066498503476158289463115408863620877137111340939345237590112819233798279229541074834074118880763917585385561609180281281793803953132681052790051646466976265667869701082733769310246740295944666666537121929005581779757329492500184764329326586886130605255738143911593929390407836503973424329181589418205448777169885772458366152220042491212447451243522124511443369150120076998514625313126211267544116400115458929643896666999590518777407014390843973897223428304359500341563864595423559786434559603691842767225049271338885976857533880691622652344495739807947464831118918704335761761096149785221320783557820077047658308568673183134662533286958253886042283870686362312167248979154452565134270142411161657452160396365681550280137485444963524504294918230247701541211955708843910181868501830164627782237747248842034910150645942999775728699948875766786103374987094238645710631989411855881021208934774125703444665117479220738755568063903009989732286964487649705618638647794679958905670193571145460534416014857313371487510286090646291083921147107237222399225216318199395457378683611845053850857360700195445293471628551584040264706143244805623361996967933456309481888538754968969569908173284266775495408158506543379187578137857341388231000708507569480902839597478974811989559713330496564692077771596559350018075270677785662011230389741629244384337909775708040820931296302739231565528450358603447618027730498870030498957549410013149250420960764280302194285272287334854893129951016686366983543748574781454246093214577905821952392879000009416037702014805160447694770673751299859212459702572360264639554201623955126120569732619455411567233592549151531712967809845685863264995780670018117983443599739575773265974467371862041608923206948145560048989891180566480369982111693543385461236393383344764400947293120167746850180594526266118001992756705363109448298791070932071106024597943479608830703600641074352414835629765753794866232181362274672337320265660773240119782606864911930049949889124217126470487702159249132174321661278758916925154656069439601712607972971653026437753605855746374508120129456460924327732809629261152453204238026964826857327312802638219379277185119789711146949383821075043318254395653283536568145393171935696687197961436320215149894032933507350328933747962186499486895595668228956359367254627723859518792468401930522879481005378856448474982429393023249388324655177562694540088862414604363503305074544158758124466220073704689884726278247506539286916275454892660901443025439995099759379089518411920312518180480224866764059986382584707016550674567296359577883822097293316688598677958624093563715469144365091965107754092357010551835744157951162976778172884745712736434925845649389427595620334035526888553975745486417956481519585089187095673294868138070991831971476566418250055638401659034259242262691180041323811220508431874847730100933831135005353842476259159992099355309176021447982893232183539075119916992336023263459000050440516415283675559503164523897564175342705062609158232372836847736953685936069696444951317522208789609502511376923975281044974219276247524610550064919362681671477754380156720746014986913659193873330161848459070980573595025798190865363564940178837697286116993659294426331566504397980558331898723304183744325513376678882749532590844934257218783883416867629572825089923774117344722133627543202285902978218854148423253657794729343946806091121825148300434174946819454376025395662300928523026515143367749074426070240009045583251983155519747627316725420136713525124586364770573420951311631338623597883250872218966744954883533092677324667742152348972805103549320223556007322533223578646277239718139706642363530659390694689366518645061411937898375556682706328636424833523945770055766448820749411008294038048351131578266540916008001954359748393756989935796195323022640420273201505433513341679023782869180155481112147567802573409035162910551598229415527739997756973017475402977747586521277162155148700049897795094736590944175858498713850300722810590673749675309198404521427493147721867655766918226141367000554115430182847558701649360684007280016484433132097377870629173461886627013343225566088167475799693409127293016506475754219855997495947419263810771472493508976050918409388253560950966525705947366336653248463476786740953671414053891357094566208511151260533649633861235455347545116644733479652796193543116777060569882969676985668660847580795945711475273218202165983935345825934088531927039614886823757499312639127617430377661707202878147219666010559887687625040184627956442991728710365546239008761477807223806902309654603654878620458441011183186429542361536425402985615811745392385067484405511711684107720537637524532300528203842532019312469452193167675080964736614075897479844721948298511857169209529576317502681407252047373829397453626465951291596104562153891611539089425540614230796601747540216433254069457532180547227636194823545677234826986009421291202132296954494472025429299626828046670996664437693817892767861916577859603589600726425829115660302244932106212223994809922514793641759659208143668138415144431488816067410198666285248098298234116219194955092048508103524430576169340890959426354405287231479163309330618715411264731456315408000058295608772923211585351330862286253205040567450687547570079868131626554933485743708619357359629081896968640154100933773341262839241417411378387843303794846016345921738206633911899026622737935709797816456150017648265447905145530483352519625803681371250649888789077196023991490606096138603179195833836598846306625069674380966917487950578241105013919786593025930629257930016763153449527663298742628172742997793120179805575823191406544498940474739033161063087115798952599594468072242503505714635664466979794580646580685516027760679601021421467802222788964585110910225577858387977821557203913918461145281864986608454951853913992380698922453487053638973799421719904677700141720686535314466837613041153141507414237251536694052596553598194839358408064424777996906867037897335492818726055478143817192978991555925442764676022482708596710311314495423503128310051352201364567284604902765089614237821263985780560460145639729454672283853320544359701062626051234340611122931516946764309934056806317922730369439237932060200875445174393853333686677454342975433373169623062738549957254093344145990500500305338021556812822714559282711865579301822912543954677768544273691619791149912432044112924842258394443515071346618184276358558205791303174157840186997874216938186708528607213521384725378029287809218644098470383755235074902217665163938206617751393236135257881903522405383634881971890693227318418806364574187622299502198903013103931263949529838722817162017881756581800883074683948519010949361410174050550356044945452015746634731693691912201136595172280816962833069536834155107346005772210404382337887353339207648245356775396771616055788172129099669680044680340777410090820563787767107179532425973962600625248481019541219812014154695455477771696387646661508727399321487027377890416754977427930440415320444749209346248656586536405674369361129090515377484346206488826043604348338160965001456543189293044924292580934278552314761516164972408310936351591308890561985666706339951190082671657736545941486407461916793703862400800551462063019245780864909688334007863116789328600786431685177701099158888202306580358489105180023135204855536860262236014522920782813941504891953395279225092032168934522031542072636933567598435554631024337531351322261208746815462297264179484502535609672281641502889930763923878025901648260281625442240986961378488549937823733638692547532779052660784480077650800496466284547948962898346291815649676893733651413495826706197052922281985774617605533744078429942017394607337192800246914373389005088928246428942627298537356610424968538002785826366387695550521426682423029185861785685806044639172889834200969058626082569158734753960890350629077082595331054464262793675262618144682462125622031280707428775630387695735127615618254316726873626099957528333060520892424552091883963851162453715487563044760612520232357861422915866862141284110267235341331213278995587980133825567556169748308110580237528602380854693639413958350935601311406586457182840424780263198759095740392529143970115838030300498987648510236496534043952780611127473966790275137019228946663577655268688044743768897222009947186361187063785541659287969941146982257103213222891898400896877612145392300731955503425544102652068177460816533520019142485870124958855889555262170904574347893982719533584839989758617976204350106002728384339137885745377171465239600055476929733383563448454466770959778572471265479062179428351863685636563763413811205414060549810930299578524600158031240822938792094077407539905773529201439481724087890158647718864649829586717981767332072922850058325284926249964100969110004887351239379808337075820661758733029640947691170225687119320101008143101242508090251198011395114289758806391081622753603015759286474338972555875640600813007443322748897293298811203309539748534924749670449558240776995576762998177960492981613104513086289492001241459498484682577301998377786757184458751066639504549269615907012301776757743878009656873954217879587794663441613162972203773116755253919041734508654478869087872312243362574560382199052676208455900640045809141085993816945866875998269072819085337685639655685752171437904526560877409521042956905154048749918141877892599949357395358589034522129546967561950902841414194524264576719821929184809017369759046345470608520565293187280634337846103908398839241366017225778894752260162344524421072088283234870673346379658498225416615372808735348082365139999659624297647225658293197319923131179696821121250241351476314333894645866470617687524246566874838341787435954236748973924663913012119485770742921772044979493952519839985067408620822504222179737761612803681294603512372153708610475502889005003546863532997548099728861662382393417945319057893653112838134836115625596803879939650349774387630032932986005196984408973358603342273449811952670966948219003161320203822995790172826947001651902801394645150542369198001461247770492714577349874597689830182489416149587103441152362938442171290439683460774229343949345022310627130935778381192715868740272660462403625536916566971379490562295808783758638381898425117095989018130103427543697075635198388005593503712263816507353236975306333072711180681966341400154622737882982257245664209678971635521960965046970701633419966962714963603670388539832831342280102386000149823433157507184316664945935998563954018669110733661708731316358686185842555846311552072609643475270771108998216764990649763678875307490331358649087838696604467813040103535289493886192437875058454352816217556851476091370520643077722067866938664465315031853676981600865880222747940251050337728001276391805618180099458523653445624009945103958911985475902372896425443393612039081087577219608576262514455241007382711623323235416385045807123285256460140904420309300751494525885642613406078643004611224518155920082413819174426633432457790325423450139582641420468696297266264803865308472294656476194778171277078446623806695073187426783026209452157019927456276305118996153493272729081809833117159082232748674209499680187806522737990393090699416434812339785265640452280124150335368669473210926396385080609083353315352534656449180296647870427348951831557034724226147709608592070606607700161375030129243022193673675046794082761057732217137598680565818464796170647933718088658755001863577337408200854758498898326617235689985931735567749344259025702641116293111636130476878437648004189352530132930859858381102838355073653357477789651789020423360783822644575962967723307747126661740681001469610498565968505499481022945855307082618969146299646113824253072671869074021601012864574263025001845758138034967756883171163193967143595665839217135390040863272324145932261725964494298444442819104483979455626055634166698900444610552215244769756823913454578492608740588121773195830021829994479613368882173836138692439154549230809962942487312229720266861417388533832260330260679429149645953828617681054039440588433480471891881331942808374848247001493759153641873259131015542329020007885257877450775970914140226000770051313228959017088129736509890154935569333674501632683698243369186474279049206005950601102970467775354209882656588482103377446668515264567226622690698888284536752658141895668045569875317987226318212753845537677458851775658704145186948685531754222947278636969833864028742344823926963078444830743550892449345305939654936388858319243891617679335971895734332417720208145113012768154586424462216995984387433389115438792755093233160004362868855633707216968138147518935957394675739045505763978803870079483354850842148663491295565440311272800883248009483152741549694325609148101089062016357577454999626144973072269803008802567477510825300575499788785498486698875769424473725958547307965636542399411252179532297160665538277051969953880025101886884910863685611860315033484759698749732355162633677965539006569368895588039541013951219753729000153261200438980811135637871737449398977463786982425966099346333029940369354815915260979830716180937331535053997807446522387942508680970357871670624039044124025823425537006025364143056364377805093317181574110882471454413283832813204319197320951415700877058888795054255909062634825320649516684170285224974247367446629818594060545336444418429459591999779541176779309259552930945164175007259874305854961087586057560580939655779981279845352447837595341668586216458096543251479307727505408895325354339802715081435079482257320815072314072285676679853174232282210968871168277417322210115363454022242139935446196125766196747582548951658017561620818776661209039456750768631508336094032331856346846860726184331389939502549061112175863354036519872317968453556909599824508852087439339179089150242180881817162230692920191357601305565850315266300069221900018062904147078824100749114624277845723171082489290556165288187464467094253832382110015326858373233193546936702646372255478852177008510964231357070001751873506529591837362406861750086142680536529786076811114367675241205804940437609991063669570855728760198740220094870189278455003000867926409665854130829662741890773869986534658080297994607788090633858494007905053451913002278012788171529723023608350603161836467832844429003965441379026703419143276308397355763077097548516554830171557921884768910043525303967435467100084802114534369732743772100014725347179408816802744393803258951664786348549837506263764326216574704201909271040276446217425029517109848465538578449689610964777492575346682083765395107321561775125753153906658766597889949772292960294991780095909781057166684221868242799395886291241776425558562869459681675883312031577632422920470545820599878012505907933181977722558673337735149021359530735048894240494946506354037791596053065858330321356242572785052384578644603473314356186793756191268812537576510644714342089450823241045344795476520639287018988044510390105335124582099934799500823589016477933841834538593050498219237528355560162653002905450731561989170698368660139060001392479903759492507888011178526385429405096635519750649832402719533898710975439525505695689505457852954570328336769010044440428310009358398646717080544126744865695405612712952839123554142242575541086974271739718265900143304325969718138254402446075779981981748660697409548956307167791447215879378610997488593670695274667179186882874298673293486867824432834133170565260305865564931845448255331876168241450858444617819632299957789405475105456910592138272770454928547788664959475211769361146233645457630705347744460649815959529857142518920930370713326213783327898756584566126905336170445516923138634732485686860745102909274116110311234260163988728258946732913485753791094689407520123332489204931215285436078809320659202367412563027458294924489417920485799471338985802234190871064857152338786295677222550131897069940467055213506365220273503792175288068651481024316400912240622370359705458618927352383415569810071350898590400213868622499788169023445986355842886322396724648328124992004729865830001795751968185451430920313118116671308421225685053197587663663009717877549607340354959922029807885050214476895526144836328231615761557138620289807919947284434844198609087584184524984295633530612760165093216598767740380365633206592877981179550711827513941987866478851059551073818213548734266555099445390893576892814153485509129725598026624255906958696957897754399101947398239364706820997079925525375156431486141954380665427499856091995917662407219660404033458466421630333742600738824876200387106409865519541760570467849972526191715272010961444716737433785464703874272041702533129204517656018744441154105238771839953495351015163107580505940395641718011595882163430436248709541758409124272864980208158007700698945358963153709400413174223777082284429215220625790868619005443659745220097774011315635909145828256132959802861264376039671477568302369715832285549294863059524963621086573502558575767123053138740044378346325106922232360673128068736370405930687221568848399986443965632840337068380281755397918864673888105271471347921834449868755284843596160724394620757059484405725457617299819433042416957977326348732164624813987302389740771652820165538411969160743300481074434455469482255751701206019151814833712475587899354378188620766351680687593639609865799130239082508913805814806103055179313380157565083354837102170050536613295859843983855982813372835786753294709695119869391770051665216175377068880104527571256343052335819927989127475720527784212845045098470527458902241390687294055257728419065838272898756372443648675963321118004775833930646261992260364582549620184916695370170668486429904004864893773424674152134809671784650398227395008239526645556885223135402142781284125068469830662917380662043830560539786031739893992060605002695198853552869228267603192048865136192585586081524995887903884937356150348222120621681446888915722859541267674382802771826255053829660944078022859741650245978333187754214966931206818416571274824605964310723342420319240877700999480615048023308565509909566113254657378304569802358192428261121959718062197535633144694282820570074729974275827805033670617750491190039867779877114989910978235984550263985984951677990755379856795718711160281919184770848611104682722714316214608120437845662487969013136783331669414885103192052110506125273519175762155915118930027900715920183916393517254586899411835767244800384859381124537843908817051317189009329663986018484788949040709135752244946120467419755999087027353160178447651895989093571109158050048702977883595002739792099757848758380412206334518206581171330123500922659837214655932677440138012659943621318906478280269434883025168569021667212350215214333605146351457210823740598570399675097609660917952847643783606654491913433687183203931726470802514484183909505871704952015700977498021760733964896547525865384227306260212050531842563428975035032500897997745554995921638232721516056203243189872117623135863962858357912113665909188948255034107569765029218468360089748076634922579278917530953129104747051717294443937332403219783597137902278211107755416124103836820924941980227118929754986833174029595664794992847878459460780537020300247098037945677849467641433770210016648569670668282194635119085515397859171643009193738842916363325764597237327289676261811420079750119547541222888728848625806489509601050943288588521631919134342705117052965835895345530261408679542717099863250252745116939384976249692322380178745834820372298021912764304488575461568070195955277138402373585587854617245230141719736816594674567983604377725214395485492065280269332758594103060219853626602653073438588722890170660683565754493175929050524201476246567295230628013524913395177461855938746140146526996669963384481333043372809041119189723796694265461379390932492244478161481616608674952376372222168671088278316561877546695176010259155712056151353615324778382068511545752259542062957409960624473524900579259610512244091826093678116607920625357119352545523846827884596080823040785184158897319209414711256783206208405168844868926002413678044249755009476459190524038386926832582097685103945272770632172824892857244474502975280065640754909705820734350691267421522584654007101341221894745627010332081798311951885793083912636582360019534489741415072502953493379157748062323570970411539758278779612441894748180346532552407649982212261712679240802211629691597156756787109420578206296909764536910217993270786686378847411102624381762868947727040145131377370440389420397901586191684788043358590467375288017260809661423063392408920235370874138568157988561288402881578647550310984206970465192106565528627932183960504679900269624470881570395118905241472854078313037080840863696581740068045303473689000256569453942066515779323257561067701198026606883354877429155992624974109739999911250023741055482478421346742279590447638822855351312122385436023594315054837569806886694122558000210573157981946646533226624730967658900312744273112779138778679573551246972418778959840109617929458233044966129476338514216479778594483441133072966479833084734628052583831393744350734052052218030766299728004818405491441213168545883459322627442509633557194736694319080359018081830026295788595104545899526646211540377324589316607193555194972708075240439195663886921916551741551043163990430772408995660623103918128174977144325098571427999523941791056175289284940436926600118770523823295876264331288559569753298904452992320914246228153379982380476160959611863089233161962832254985122850003074315562251900450199285621158249484000817320029621670106637765042312723525154952937983248527723319657312487893163666451559249318006498528092656668484665086599068314114425446582286148984618349006079689606354514444611366764102285517331922557472733633652061922195630396465680083658257780724390869739668292054887753295037454603622886353983899246139687630229957359109146868093628219154801033826182588119312770245020687131031445415818705584425291920431560290127210199116391910234728345177011431664503850815705334941375887941610200499183289379687941377468640482349694362186697852065977585870796807290802524258619579581111751582361834210887580361550748790259788157298644044368811822862855596928003108140173671291152906208441585997374973297444187699772592383510094059011393894660572647275814705092232921447524862024426134322966844385609388760688042653126803215731184415998646407938953525058536145257013790394675052813686956326624906112285612937383614754803299428875292439498570185105946187777333000288015455488351950676118657288475149618041699597062680246633446096347644189109905931617677099713683105375179609852591896990472724234841685841045981223563890217783854728285163745179221487138259625577238864052891283640396175267882304847642091060104068103583593241744597548231810652127242557169066531053347178402778605520935238453329159287234451342448921280519787051734269180513721654865550949380427489395660381138769495788528397574914678343331374390937679132277609586616370107060675224110086166183295704063840019307260816744201632132682450684287659599897991721851788533560945415122855754933935616115514397866408497263472837479706227467111840415356710672518369386115419310065905813664948654684496222144105585810709723754110151894483089628464299911577264049427510912790650990532465664649733338117364124455028881434717557977470866834035649811539176832066013329747615173868554727917168932365554728962959090400042128208523395304963451968783406750191339456568937333622617466414367014904692451710725545167687874350129531739841820146548925580204224809626708905674108287208625168126401646678233259033451531639244216147089047406486346261188606896435422173870908162434339087874957110180104438244176331953791625051956740774763178843815300604213772927831516293048680523165002182805361751523200249042325782626387271864745763856943111151869850767009262298084511890268828819893845198709834756847401602713697279626456461248562198049088817729486871941887993115061694300099384344479121222331956934234118698599081402949957090206182675364000835599735911228772142212612218834905019320435399188275098445670015254640613339170620240374108459747156275919109312771035197192055983056686258790096463855047026314078840309619442461036408685186143569013647469401842440838694512795629631786706378344455108591597935693770623167700984098826612944401383940743586506718637752848797565280168860019434032841739057144160444478825979017580500550622602065521518349053129348952546194876659562212250078892265289178670103858458363420075017721272966667476230333124267388982462983773539157061356138011829065587258958777681487479108233253417700602462985823981451280946269490037593506523190465420034326348935584106128660984784906761311045091002610225936748679857050428070537691825107457128039293955180461696753714322585183960345497324162371176350744725117516492292484183548848424554026880447292592909887478928361789616592013413916073116529519868032261357099841561669720650776625249598798833088663640226310616403768562875152793308231005537742966911466603716281433913565625399996231599391998959313044797467470470949190271582545468869013131434761686285004619954699871095256669151626534468429800119999740529156270446945064340943056062763398435661865505768819004083395236887310548888641016914704536494864158099195867976245109017468357035436704995349300725879055345021878821706925542965187572641234478722915188055803934808566758566934533882358491576219298278410159266684309045171366438650691246795471449608625344378798345069829034193151172810273547326062810935058752815606741516274150122363467934214300128344203607384084372379013699006313210451002269313394275897790429601961803954746344521555046368995302176611232411342872993644555738755516950539532690218568842930704287310301183866932538141235077162193169821971985086572411480718928549146148600949854613057212813462512529998711368770487431891676705731703486169622007383866854044153022148281216986367641867895522955808560283649060394889469551424119943771978098480604553978055885856001531276437007436882025237447131886797927491214235764687452078490197620699283018247461566643194014245673253033430358305061375406316486672082936777836080450421684822060486525811274585190855106687128189137335968342675769558577577059720239991765474317667673983308603136174182786431249520682696783510779736039082932215741727467601497700989619738672627510726285793451439178817467332224201863470691106431150863470195129703056962818247834775699766897578383796887461610311990334614258159731866605518785022122727369093103300484399116226460613565994283794843762806250961838209789598050932041005777132164562375079394400974842717513314939470210066740590316694512627277510794001295807262215957864205741478811587642975274364660246250975679092661362189412481993478967686227395462216785581116083206955167217496169394558929233377124518319422146025754486566751564449208283778692981738364366080058274807886126610125896661724487825793929501224527990878323298110534717779118755069447989147925823685874396859896479858050303564050896231441294495931885726576397228359165151589720407037334913650314997203045641314962318891005302749750837011440088417606146845279765477717469554496153668428882154444009740438636021711066505615800957215659659182073722996726833509377577544886363248792471011957332781687385970910103351053601130035748492285341925241605037102882519272476081993636574217350037708681564444722254331107839746456058906194798952618685605623101183834099708466300195879153977515918539442233716385881501711084844832077190940983461980136249979115304489305115471774797013042609935208676875133952759618862356283825110321162083392956280741579977063065639441826050821861564495781725865343841683565292711614962486354220377276445502964414293679670226988927320844581802478008993013122154540703894646469102148053465597285605453306542311924929977823317779716842591523338467272555862924704391797060821515868262806413164972519075150513942042377842533101330756279320500207907595796199894490469140562507330206437055730827331262088645169979499049537769798955033536511282919357300682791549629171217760817489538826415983513520930873808942351552159326527378366214318727701946919961784800231696462174281909746170132252338132506227204350984436674373203385816966071709172664656823593436864090646571838838138967230396992722566414941685227670340649256210325868883821012750625376266467383153923450725692469386046248860300341226560662781755283206571439103202672603815223724246747976655403859497904783048754836862318403535563399433875948654294559117508664640726962243337323593886179801111253209641802715143777747988327271092462508533750982860598348722103876187279027701388112411025156700614219631468774525089702727275874857265338607931642438977762628071774271530240714124900289372269930115253480036904735196150422548366098856585872557142685105607154389312790848635219815235886411651332533284515659200650728484302619103235539617531114373742383262205468238201748479940350847140642304705060675286510987438561190898749447089158527274001223224558568634413144982811745791695912235219174830477755173072088304121600901792690643911384738516242818487108085387137794549127196409302233645958522945404462463146098628540221695146658134490803888285969364361096293861577949315527574155707257777898867848756623041787010293850376305575942561269622540725767679558370907806086804352980224807794778387347835961378818738776366824027425759937090583221526427090497527563947192104057045931049779172770488862071812008459815101803711574852351487160608903886322070092246690853225909078913855284511962727227535209983802517325082923220222329391424286951300277881255187836803541251749414692520390311371854293574001763125472891138455130632579514786217117135357810145159577557041680087155833149011063362413859490465752488121817692808152348118897243636882130173241139856008307165154841214233249816455930825297721051632858507746096956859578455963335687286335453313242139824297988897617631526242318320019309235069548133473497170373211925011833713228415746857974319153580113360089461031273770166463877005544293983062237261164283921772903734014070847255912831526831807649169845609380499207160150436276021542947849310240253339630901879505248880155839997711890867233435695727910742255930914477531048923760725888944959813657946741388868295332257964706424142307519805717969855201795821601576434649364127373205620601593258177003833834959663424111940480664608849097435875168777797444242966108073908159264909844431592897878414278867251611603780807682454986907636727289043581537446159941736882377905543993564941816022065390323957008261413201943183200927926139005730227721261412321427467253967571764784548594151442966770668440161925370046576844171874546832590869865212804244263886893517971334298077554833383996286013249792594271114485497951326414468906706739449689783365182282851706664844764784845860992486495560757626680144960634425485380497566090624558904864822101305408325303578541706413514163194898103888085603911143759819765661633858692067051693887097699248495014950980757701146539742085587916460689726040350037443073752493961964071656847630077431887355928547023099258724398410990877954298086647335280647231021603241117792374114842220456762277494788121776549189421107429641790125456419115117488641467313948246311595915756464994722774014992582770655428108228539661956367873374087999488602488260345064496385484010643777769181506572071035476693384609214930829583151752112399823597520869648681279823024899861406645834400147440291232390844392656247564121804308419218373778996950128116179346949741086846709275095029311165123915113094919552287375920332722108047567403356996760074300418328894598053566960055588691882244669658874635834199082723743658238761961830305727035973142016576445003234336339341207246758081498609567119246653676466996302998304568347909926854676597533416256998785689479301266136122606789874558913086544278468342740144420529004946208510320062225378202169871867954669938284826098846204482118615311466604167509069897222086474554212874066998007433085948896606210735430454420686148574140626743013707616733257055067281033484032501796849568704733065026962076789138182260735987966257112019423064524783621632442000751665451484807485161594596960229460687857452720083632201942392736856517080617897189964193358478851573554011843020752048954471757267116355951445308900906392978486251482596985785258304537153682308368177885940396718818359626232638873573532430864056082545731729989019884552513399495691375513931566220909397081620282318918143072632756120602790001037400833365771498373948424303192852754705522560971369373207435163582766664706124846334323575152789059173516678501857587564282628298624001266746428099418067046298994405678388087839717003383665773186505762918666036937016422539627193884753787528705530647750920009599755835070216950748912721663316505025809376499934878589559110740149368704797977786978842703435608698270823042856494719461846472695573326620035419088850212853506150575930712062423945798545970379717651260490400669281642022021012631925601391107194520363602770397627699305571965123269967120903443995996081091829342818677111375171452511517264043198841582598059351209787672032201223009108085555454943009666281595373103421574346795236250148175732223140224479081404788459564767702890468766876817496278621253690876453480045217044144531211709407405542976090551780358090728933395239637288303637329926537536426656062468540158353778070085129081932971573272066142712989657087429422436149498128760252876347102741736289482783341311562094009356143584269446066949654351657694331275676752698625619543634728093193985626126277411448482504035340049084421552062786810974220985863190242903280323447369731910175556175538709325643137314220907864617219691861029642539312422162488663556512813176035859406780633735034112371560234923666266541258628238315346627512564150130452275069867897152846808599807246430962482961826532046230152284917912263814572432905449216217327534004753931412558708097032927794951504144596938077752242716754463052591140381264810539257095157192225488475838618604757510881466132364815720836081263409329012487977371854328073845938963735365523834079577436106981158922852380593861359586686150748483559116504411541552004063974203868623521554852101479521121818711888561902363807434389203205108234461672287854928661600510449457246875804046402295765366965970131472182894979829412758836182440924985275481430716089032707933110933762017267484561179639623458758779122438347294014564249846954555646881711109068813118623654319222525950322984143266631691437472424213549172705745968225955138715916749340575502013898808755805806793781977272206510998100771694774429074564582089348278916189715675367572877244135998377393493144330740924897826803702873900323920766566223931087114329204969596494519482838463510553318679483057462442682340871261446217033792105054716766917729031348582485565101920408907126900018627268925109293167792146238235401951283718376116528012008671827117772505252547728852571313053986321020794550358587493108977420819100232558330035804446852186978102546958709854970523243060456057318180867736781129167145316189924230096449331882641120513334031053763992745950339123435606106925114299296114119302494703463900734035827315667614917414895062637132871681154947871578306450902141288652627239885361335652725160997598258351900090305755623182449575272875114901803780216960898483627904368344532098543100837698916482737660720079165063264156980980241606133394832282353139155172972099996969076080880794549553875248074832332504662280486361468241223065663061793587274478035674348370967571709087200794165281914251796811559936246311419270555213072953090129538873197695322734729027132670661026782692104980282969655206090588448897647328873404071072264593445573509869541333059129041501400955731128490723249172631826621259744986119077015977736810926296352323070872995478415946787104549371831189885105592813717752317225154361452399335343300114136259528802300267085217829028469118035374880509401091927444599295044145750003064731668230783303838500819956710732174544276768355066300251377802066715822541638791578093645366950002508011130441072912956498571200063023433834383853888190402267713806769768560773229558993134170724556343636524854792003243224809846704345896703750480940059800906160175666749745151331206093070886322583928138458080797518190684184239046253404680455189254082389082378338076961847450711017319229761696136950457195956511465393526699911493799547351575811330793276313510949995582093563871471594477887363253785142933958670869057912913302410949111062349971224497120022197164163224152469865044115412938051478050973008191834718209553274334390017653559892561124565102261563991789992691947753371079632918346530518965717953418731881465600402517687571424854818078113792033318870789052350794230123179288275254878326171102959249152659202920616236676057152149945764765098241742923288942007980023107887615474787556762761591093664342831172120230928056533187295873514227748216198957691730188252901957619535522546021498809158879974384710855579799187832138130075400617134555046034698422133881965445441281511951928522680572602731246844957472453056499021098981242304750711101563487976545360384932946660303421061139319202438764435243340663350701445757318834759887652341027596313285626161566103011623239050109528801582814617467383975937182938272438054097865333428305532567603082056445747409785345660050582844724545235828639058323703029528140091768736896327547138336478976831709342530444417418533874234547625230316596733921690243501246110329149968423824986909383462746293802659686854313733875368545885466425993905597325331608540588944063462217043067848796991837765715754267014582053163447361178546641308999902695961447627711283621075276497324130501133846058516259185060784100490801629653170253081005613760674208792595641502904949458017582092781110056898778786760296078267478768120214221558213429465962315969042627301327767406365476999371390619593234004054035154853883203671395826186954713669812145351826746147427190350074788907582240841705493661436074868760925030431602609310017216261603222328584195491481063626783592566070465725089644683096620483643000306939787355656621968447691282993850295253484284359110735768876175786710348986580355921013712996699250519502566878870372596694251185355976111580478320090806426036954755678846716788242363015423848340573123429149991539725577304309955156306781129874997982679426702230830697504891422506723204698890239188600846208252746779107185088898634671973963350406345472374527373412317528996668431619409559520610490404847205068971557895397257453344362201856926527830797513678572205926646088620339387922654220979848402264130539869122303644297862314656881013795770460472251748099622144797826162452665708937617793809826819593208898788812283807970984038753706558088036849337897186734802411524230571072983113304457704043549188663762951060427568685315559647295675480735337075133462511572446959901310899861553844348047034177026764859789311729496478536416565056936453730375714505897563887368305402245978035044004864337709984691627538832613857200927568478363634086251716399440833551388826748442755995141346991695053912470193134135012739469895487605070742886078126809898423951847464935990501833162146195929435617957760482798746083627412297194745987991870494434494265107504922596129797543069721621619011001965150188923298213531213944011015899480190361332696163597025978086816417028557596302079602929450321735341080965202939013497957273131912916070787099467053695766456672613196076838383266623185258343749923944290513098077975677003289087238690206618406271454334965602698567470653554766832420902370445713735957958767518352711898754454183512596158114884138858050257996994384996502714442145637097714142492063705719338318390052797458022772299927274278783785840773440631477639415810966809402405409482366958866657285155633327484880063043624005365849067323508437109831037142340583853557912276229743065340772174751633973745919080921573239316347490589129694305499970722373836527162228373369195718605947862339856942699866832440195543264978379147812421548148650220027518417771977459939103156868871084490378172828782328045091349940956712983788314601214862637703353202267543268270217315467140311044192186459165052195235338667772203278729280946187811739473202709961260726070923804839045673614762602174718503823633269082425894923471787164785036697987190673051060659332191093023272878529925635329725525858541517339979645668222300898570917278144561663381090333633603077558541363491482679992450780937718631249331586901546639382843312717120855226054965923545752134335448912623442925901697068004170907077831967117878497897150550194589492441470518584162574529177714088780561560222768824073004461350527838096424813987989718378565379733461600179283782620224501997030500175498041322416315596642042532024280838348523426074305156077500974165914084318104080590104658632660651487936170115891821182335250105785596145161150895668136141172032923467842292014734065377399079124774060900685852128880126025239125872868921710258432543612930765951275387867915128870854171872611731594063302622192926572656158897822961419815690457185139290184947710036295280597881944407980613295956472184074776739147208603038399310626936760058159225679540112688261802466888522760130886313301215177611228756484344262019439038197251768212959063064447978291897194507095065732013811361806268907869765809892092985658392770410877462987758764325991603474762809085387641144309555333618561444135919104785490547580814842961567472491207767819625211446904888992972717142466442589859081644868664766107701312492989524674106279678360287531492262688732974732775634908345680467635648177245713318181405814835924425002411173903862913796146441878475701859105637187238791683763692310867370318879222084485202400756072960768656628852096858270494424038012540432946670378902243550807087242347060676140093706006704843938699006728698979442758244381177999646359528233325285538665223983396474422375183853823865694613470054493714730060670252539287365644314034310841921619758531054008944287198091846596662490843983613694637286537000957666393270136142213579968093095554149953100946744831285500213637719361513195656806995437567702096312917147083605537143120668449146375415581677030872264404365686976671914427372171513384153193815753943869719625503231409967684443867043729167104202771174842527230459560359273489003034112381155307879322768875483280409847070978688833566558790687197812391056420230258853951042449666500519361709115849818213270011585664604949876066348503686745142177743875600236043181779208308603154183690817989378108282719771431560189760852437720785579354938253313948315716881182362905517053110005000602924245202072249564739836492016069505846740073894806805731246254772877553570530438120413376426984550067206216919664217949564109829326563627915198907035359723798964151081486400138390910605428308381641490102589023907225857706481716019406482984040379470061662185088580407123517161377611247356311675076322063011943014059443704751059953000002964756976264290726214456863635816076060003871135418629965316984354158002857283886216963006035683862220162241484208006106830381825747329182330513091373431489076581399105390965512230129756584978846949851244270792655530407688753322055506583313394934607826562791978870035856812109405496639293581622531546975804214015251973094526235596929130221522661910725070443325328947464058410735419629719169867529201064563080948247080817113264461832710428406353613040418081560150446862531775746965948368503381120082185332541725891414831177525915513644243995682062126265578609920349789932822105682307707041885980385922107098010653859099986060440221184390105524424813554700990170841670388027358651860626987980290354204698287886596536424389874413676553624363348755916265935548101539161634940034290637800248656776697657727120626023373834442568906903177865616383422151613111537879511901889646027055085407244513356280081096629943641573870022768307070808932331151549205742995499530404096191862036652382481731131778208729398395835523082957959177311406922590988996231505708131887946435943632522878105751948106793655017043418780723259213233178195325452498631466954708206726627795992721625212425224311607758954356413666419130763174261612485734524757255231229944662534501817211101045517103289590295635668708278646105087327403125471302165171878121209986718735437981232321958936472380104106147067165967565580806824656108897728754007096682126394563827123933548130289018153932513651593828545799383478130573505676250899167171128542639608622113627956041780189571158167179309364564034280757250994263890883832988073976221118081546082697928437840718952220851012179959077889667194781802715829885986896084227452950694054773604776959219226431693323730159442845264777666086363837738236289735770251274747112344209590506384608578183460102586937065450750431702047522675688627989949907327129160833683918776754265322318437499850651819163029015763968305945844381200394088935363148922074810695232196967227786429902211676931841130355308748358007684800241988213908993331197800980656740798991118522683551947923304547241120122273157726432034949073937762339866179199497110711019135330134912312780501622160370079421805037591785303121539085542538446822514777650740491884440929235798879485159390129906833564199572348416299022486143498099032939095214604606116633447154132592794159630008904082007028714372752218252687589776817145641603878956810409234758429547664576887822520035592385284650667963413435435191458258444483099403862784809756485236200624740925435523363611623163898895962052871129744874349370673976565462134022269792295420731298084393085806827640932485432766393279174754573117435588943532025656915855396088334129564403892573152494788798243523919837242165153565090702829202624866369458500932445346661477983586333877183287255457981648609479655269819457437532711320519111616921006089122159867986926735731633518845140480215618154325640916182932547878951516427939535447528151542824009396629901417941323816483487769927121056311192748746501947555988375866853260608132258193638861735109570056851127972561652436547666097278415419223370356387854174014467526123299106800727258553644930722170769229844086660134542100944912295280594164876960744799812622299307952342206719217170719619643206503607393014679202799276852761996770787312952248723980122523504796424538519106532745938848931064515598086222675348750603099618822150855688387883797857227694366755758004397084981199595027117816962235448409127362795442286649210213482874812963109597190700507980904652373741094513918848284614110280539949729306929085674792153106298209338922577626046893180280394017187572245846007831697380033120053375520418607090881242691746572592706620886257278712207397915680987025349325022911450307891165642567590749814776824061709304651675455611501282371522619401460666967077218573069481343143032829755435886091105543061059103980135778397813323685650153191165680994248626452719695237041676016660949760219671739698219237057136446718708727705683593959621721860580297450931066426949151126977216327006004651163937466420682752370781007991281862844490408937452133886978818897433515780503353599521691027438775562781457717191392554958013456068726953574617592424764004813005639299203534835121822321431159863364741692402663234378498484237566503257954994948072104568238584490974410216399469000926676756821448433966683372793832444064549918391665070260297581072026316522855901072240615837696503821829165148062748973411610482378542952941075877286906468123189317595087259136941217310408703250420745278795078825412741037614271391972532761337122142403714793341868892768911591757679056945128345688670312502530836226431238706995016938413284541550586532994762879975583371652621725401480080354246653616057044939701862916167979467903082022600253545334705865108470903542313142668536697667469325329566646084969181406295027189262049917988686569250705722284180062872747015155960105349487787495647857233440734993410472973585443980577016631528826264895261375381924495715592337177302432070695752346349182952265640762112197924658470768783820081369400585912294507344536567639596402589377721844275637498744650078796963817240912273588116593808578377638225454687103948743319824814782548320256303078290437313438520773655426698880570385423649623491155582648464426808869920280456010436467334808247208385943675492956331565182091962573232386404049103995432071897554528281824774949487413318632370913487240567540573563395382372682967423888724941292692702293154498691671368865193270954156036323544863311159770774345387534259945923901133016506136987684510240537160376417909333761552359076646155566854261431703024552094852860188631309174602420785134181716677528871238739669728683288553799130767401703978887257363982932304665673977178452776998475815062302538479114102049162377156640008077717129437604962904964733442037002759823345283157432795045808952757404868641036934673861790693175522663371736655600590736918405171298223942083667467708699780168013211135981008993533283659231513643965380745896344866879696506729625676886272044536507191218785234583662647574137227783436642577369023123620590101078552287186408773790175824963394492277649451689894256508282223165035712724658695254489012095356674180051198290696015544843271362016469341837041857026681609145212023830429403469370192737936682984011891559245478566240725848037619558124967350027326386036825759673427704708717506263408766518353697863006738268351447543280199664958511949878449384733682135985387807228453773057116675015871636304487191810864432706762941641971175162866461030892855185313387085473328052100202071453997936043824121162200057091417806904104538650176978616445916888880291487084169141476810934580198358718214540408824502052119588551513770631367811899520088474981781407568537141596599400540368270557530823191169506012538908024321048042701501446607125021466634586872246421207118550089567296407048728775467676796297322681317371362433257903762225354786823103140900918467526513449914028334284473038104414252620126408438769799900675805506624490738128048905724946797103495789027609635562487054246719031303755840430683947130550949852159284681193041821580537072103891036607558381218829684031426412446441995250127842388267302960519236232064677627067380296644610189473961957428586394764706229055891611279192754510413422541496475954931973074816403694067336096196332482036562004149312538926555588646875748255064970188290911341900999514085048333453767491282364200110838509807530398099117200198965292668929447934766668585787003335018479109721705681172378766476649932616744419327049567140888884407330668420241322758463295122964247703952323313676648171478912160952511218300382259889394619423448166772601559536190774318115787411172859304681857543177493750648965121133292642456282525250497893721944550564040393531044094168271166137285699211047516624504905432281421814377013657257179720151397942989136109090768256986567809784277860858755101408411724132546393296423565760424419347934212718194237041998853868820148336636097987273247541316955914871176857283865154828511773954162333212214783622181726650826794060519995025436006317468397471188488392231018994304041029022211977198746038016307220793130874282114593104384761454643799940326531311649225819275383852939942936123492182697136446010791113917763356843559501050091178079844447947241607238733484825233219957834030916354436429930359691831473321038320837821377997868976298065796212141372385346758697893997199055198012895842909605822289305134154911680026104568504502870172262857301424765313315409395421110739638162738759185365475021143525023049756060004842598314801833676993041167976301264886308528138888010378271564434755841735198435397798643142791786292855210627215940602055423360321476942822373342062143514336858950378682830915262694742629990119126712426321048578729786121579574067607110075836813625400807255624507963210122283811496082679266725490900000863886420758009736710023189093829909247991720059307252481070570206890614835291192555898293916889938675339101584561523029999377632076552033117766521258625087427068734961680726662037425054067400496511240418653589460169389137934416264360791607820601945924181804974467619820038707821428658505592725123730108715194483088280083679066445551454730305037385944138534566709824832457168746173361325394381351588688904263837071571473571205409577064457401609033943574972598920148923439373365081474776474517931016319376215560744924354251098728867684831543080110590845012306648095523046115229824746516932757106740366218240732481874391001834678210536915674897281157722003841631551963334876445006413919177177549960134260202491704386678446532842482623854845124367057838244974432854771820544679402858251940991218315070167741894363936472009005698829461282154023078366154741252847665399322262397024912046198907392695848743805682159716713061266571757365405603835704334565805382452326189658336973497308977896211054741956018432604029497064682986076388255205791448522749642665454832314246604892748230287930921187157601669140572240937457828228618642785493705247000040597846182528121956962832497417346073344496123345624729277079095156265736378323299729269155573872232650570116157385016906342970700140062372826932092042442839469498055201028444684386926025953932692348948991147740936734932968340748008862257611009175011509248020449358632991123841343576637896831196881326374588231782178308375108641309970029483961407036844881776505758365593277121459435371606743442339942239629743058919350186759406199353659495525324086691649352125881746999515068391155161466440565443704378249505468953718307459067789628625524169096418491159346791306768342652776057846580679574029317186892147493366334358820629015753013560653500403500526054849013379199893995625432542304907256103876712462169811849144030312266675054619846744585819359003663743128581912827289697490857112414729792893068946906286964933090423573263508712887359281200408645166016685924804986025236678373685530988931609928572078987074520832869076862510056726496127423444558382140160280429195471183508661516525348135900244988076309530286140248322389054952100427027150658899218826189010572298365106130084182894904683997113688104543705868368230359109834131546562324191411011431071386057464860664841489220137435171142907514796757327585582445277538122289315244562726935343281950023607918864645064513353146635003883055901301368991440466092352726010600110560406664124505239262058270344991483375574501619962584772371237575566441207477681183103738901908412858026708733019688884744754031581994982072777474626907928670052087939716339556881501949983885729140869006230464449452200758745759898536740480838624948565852768753048990827218011620396530653686915672751522186220667497753517820211325532111405532901657906756292661566921211503952793349837159359475806104417652458637075986686619832087319673199259067957074607719416009476368453193797309048611626061945034243376452262223605253861347500588134850921668387981372637654704938966172158799007628938357804640937612404040834857797485596908839487296557323392556844532700286212497799879869910173044329586515924347864588209537561123051979185490098490971427113336511232619399145721637722852049446154803986318123941871591554454028359837538075794174745318254715124035902537668432846869911358162873200201974564466469793231987484837958140282435542390262847582754273548434428807467000518604592916213775113775784860551318462969421319238971030302857815418038325480584608186006631810166005863483952958033951501881231105471840587809176240141890023819535279637694991345868321983816045811457767564219515920653743806225451560823353909177748989485361122052131860310378658028462038310160271185743713241766408899197799332363205296815454363548850507789765566600707093137571445808276978400815373477715093433126435907970914985908557613328036743391488796606445046081087816045166502056796464776753359337799685553428873859822600926501398533271459440219328180553372279250930514095631789496468135931291450656235619664662837583818977038297494981043490762683457245686913277898692714232689437825225326455098701114290945256043753983394936873297164068427183219332233111692665988008945612280509382963954286439224085195858005435255911472040104846444476793014377187789706680023652861079132238586965596506338920515898812584680882309477571429578254859296077216928903519084604553598723923311787730191199716862534756589415703985246736755700477226142501572904835393710647458743342043502592662390521929657818699341857585441997127663867947623296505893877182212495692632536948515829100358809835540568891281688267842612398180390544185079828313507809459275012216472886463202256642249220039817809094908565326484702132174322160172030813061627648423292499555039531521598131539553108092861361783914120246914817530424161948488486451573668227955509147060566132814712365136156179614983282231019687191864361517671348216993198570897579089912964793276953203292288812716478941931277974316273498878843396058110803593868387871652944096832055901533081245371622520032743555740715716121716665136600888624388452301632496476498137313304329141591666165665080256223947367664528058808361811135539703616971994041895183494197074870510468783309986063865237263012788976640261752533677427703493478567007182771970648145224982904990026023856099272126275119385698077823082012593795898858674378961721520621298283194841722165664680404558311695836857008063297565699461319832327624084495828447655402381453116243886839486440898138832312753257911061357313184160660414700357798532348000254488429440989330669060851682821591202503149025941269591446315352115629785139458090976800943605148503728006260113092258333970370934446790883330357426769611177450081598602386400781206280460343534971841967510981048358315582461759239159007783045786998031387935181611110281154215707989945982446552423983902966232841579415825367141360959805139846915218878611176078106288741830559618323525718503748567765965519170656296636104779145107786341364561032675795968376338158466677986583964496069000792570913931360205178513876216331875444552051201183434472983876653184030806145679501142862820697844527822777526633537892327541491083499211218043326820277666725348959303273916692600374879307600147551401685327445458290308630369459219550348289240856133298280591561531274838240208183243596474683729280088574929091687881544115769670919910693281261891763313866124889503227302110040914857737444291777071713625320137375674250727159115879782560050048645871931262779110256599277362670788856567817046564423817123991733609858646963671344784318531925217500838603283677677639608499627547859713517996257612793782272030139905658996647762252190615677202950131831393642112923597801155811995256696733361603518582505952306995726686824553020400427179145045193803598955018059864198822104692144059100297077444721992965453324114058970576641158211437993218021628961992259521898660158177034455511488824567745340126400572191194807883221919731362708805748464836242067163085239153049848964494170802109255450758076500985020478226473820810085302741949657080128105567797289758385232412592510052554190128974306530236855587056849557507914844109806371593173745261325707086148965297732839438937845477531458517262971637733692918800526538460332715352435719629335363251337113750937351961083493791888732365819177002340263509987448949004850375058014678465005749802109543090529558250484698402863571170399260007031189616169967808900483987507302398377892789361034569773318377963419220302663865240965136187488271995916213969407551077101622035401418162948862717084980887000179995494160608147872508904760368233127761796803352153458367667897178214194121832227196128246947257762089170386670011294628932929513855857803693908980168536688378451894312363430454511349443778804418169855809577439686373841614701174036368791018820695583857797578463350573238761562796554295853363383082905141801797366448758001626560440399837250676722104909875501493061892609235805988464749509645226768188787040045948245043828096648790490733112379093830800342042413077427313526309569076138869900043953345886727692508073703883145201685000030619671023892029048369368784823849913958490256429323711380502840102385426448954316448455287355368365850682094223422276358116849744005401283837610982741386234066482871149106564362396232341740428715484227477280005074887686473505731665427969847449635291479343887565729173610030089682272494372952449931894633984713454276951577710228109178411262588666226228875634677147427864560437491829942662027651251319836373708673291485057952952095912532681069919866200839137385686425233647700419352212734810951509707563480981225242132040720453160499355559592303828020296017359438768060984199967648948689268934931362190646201902675471310226669756977329892187913888601564664661120282493709044779653197757101123706336167113530243018340821861078523758019846493780069020730894851998975518285756320014540110806633446282671420835567735987276063067825919707710282911566695173709310457665358477190081264123459031431342702449439208666624564368077759185163063914782234071855184889784838628365825396788749861248196448830274180589669581503046063633826105704063693007563698915838724561240784561035198784126608007413649711666156468499429814118447238134060017310198654063624372980917461441539339278392164174430314027105610686184073056275914438493888734804361379128565659549731701398673437669045194838492705074662365534862543010814479731741268604127546996482410674361302009219935815137477317866121739180502778275625559804152168335725056688644510619260608874132740328582948840781812558652798251711428220764248020869586795709633827656442121269796434683517409268090321730177205361697327405313728296233203348708100312160565277670251811906911256871827693925890323663040643468578980164416853475068537553981689469467541349808988330938941661566782142843535967530614326674207037264309346558013685191660179173479735956847340715939862161264738629712843297192285497687853193354431405184325605180408918196833916738084997736423707345023191838183141166239727103956013093951876644522497308962632993403846723049773757388653842711815127460136538553925744672306341815198321098842608606641184329037527789633170830729712968854920272275291584065036939480401102743331773581052109600423416199558040049073948166365441470151481206211025174037458530438825794978985726875990199076135375111696643176209250294671318668799173294531062102147162965758247411841908453559486685100642828673625322325606577252128694510909418522440823524694082747929661858716704782938928563810128315874185350692493100072715652559753038702478036545833949144346653722759165931738477694205776368494450898704024062660480935690930542400589294740793030844410525434074397406914985010466036114032837285077139657793031740164969083184831483340634928361857041044175065409951560961905228550218805505718137297189114826613930818695531997942439545003645117813671394892732284967002045415354290778478819607239159724641746070933148414032384822866559175736989924431534806459472182812506642140224161518386544361471942369934283077963021791635397221323578139656607090868158874597386163774889899967309399288773250629173624735042724327341053516920252457873386200664669246813953639993507394762212964453240721207919816855179720866544503557702233718769584377360186065078594865525612817731782133007515297823076006467947547925052296210382291167732206843678766729693641433575210676818099276418463587403201228983047704343549067258206089653395711908607405334015781885017502905674260395072065777098592888807850953120537496935880258414318030528939217982835400717428669433691400272663759576158575640104331263133228333200439073054648864532313579977427809389875399893156669746370189913794545057709796436833398465728852855775605306985948918563617095752582699234496296477793566919236035719470713400654513006389361517914931327862887905805031874631444429790555061363766685170733059398698080475236327033205604643921881705975046250131577988453647524310683842194612458926379715610165402028292779659546698333738991964153404805429301662098616763083974917452684869743407487707495928504502840610056215648066838261393260498694908895512635302925782525859249037003621056739222764166468488752658059633307110731021217223281293798960085255632098090458040221378216563526113267871369547187539647844707768712429661661492753409641367907619731575311109565796293057559845510362651421300288800218091450514610392994978398012135197045538619111626770714941758522852939942532709343968719414572753041225730787334160592591112295740351875490280518720295299973700115943586392291397009371838364333840876940786582092893512070381591877630002462404348970149668492013305063207568039791908276799502179050503365583431692148740182119229134252945435294086191349728751961403588911671292216219477973240994439496241557187036042420884754699032787495351911223556652264605130504552452223666665949417015189544494042898320725570658320133809562512996488227508107929905190568011713116685929004742743323081228761017576655175215910095004603025269175283121967924854984341172372751679999522497730075714743552555011810094103630253013534651773385431225132834565778968701162588968736119777009397689944508968926446038143182043694392537231932603352049842142026354510534550276598130276828469003511134695852182162020448236909674289314603903419068856296765614942236782347223333199849935457199373859745651194615862406329352948107933712608729690845802237358846538065512717970551307492506355006331585140826622178802106831861872477629847503249671914955418964297628293572146667398681199622021842647636879550348589859817077605667695292251545182424209256427160517127401071642762094957161486012902294073476730311705065026671384150950229586583931266493437716850231640751905159041957900604628484659906913981155340356954279742357434460309001383651679991447598497758436946946276008541387064994253383499302413047192990135098756059788081604559297600412058864898870921350907235899008661042964002435451194273693541591000742233759445923650521503385601283320573127629052252365244775641295566755909345726567703772527934857813972673408694014947236540930352183463149030601458636565254040260352933299842995485887929363972744795262436971784173022968260812687568649972063916542227553306772432417044104163004156740900910689547810720373442154532002865455435364449329670403049076163690516045384445558567240031026084441247157365395172193638775258625032156754840411129612093693251431465869532447674639349743303669967272605210052481428597562515574766088435699817352126135288082926355331260298106040919607148342219490010582257903261768911257837465803674199801469326498757047457372018789294011443314177409586768980079558326366654165167175892589989930768729036601108851322208659169343431989215349139674397446738185381162737546005995064864131420406844495000941854469806432978038006084972038413417827535635633935225798774503087250845200061488330105780684829501185154702876553100080204559836966300188671198762493682767986319913730610237426736452273692461893490262561640794152633877749274247641792109145659174829070559000940554249488522820785789254061237777969590809292614785943856086115624669683179469909285345134638135461158256340665203056332041186932893417226561457336805255641244161820950179158489640841701641208253368102081629738760409902164592064659361068115028546034642871356970619489400772689899792283793731493069871325750670770432568718422634617897158730023579087645644416092343972217657402917391059604930899590260471224632624281156995389332690677068027017908837636791794987188629520379179733998068004183687577359948214989875186702039237082783658678868002270643446678553317116029885917940506755365574409902660595948925702675484325150239129653372655522196352133977099947588480686291698330851535329679597960204749182702864912985340922604110836152907611193420853634171791400865618106387572279063233796492479216781002657401028332565879113172989968719598285428022438026853851610771855524324143527800492959457281457801813300286355810289154031229476196532181022675657685013774220165485769309880889476566929187735376647541909345495781564153129435559922926394521218685935185720343949214978408608537035867666212427344408122727295356567381207189654589098598062096400021233927121736870799363925438714655103285290770874865994656632340044542761544230951478810940144559613989813793641103191987261440939771964507342522999652363910111344661340535705888440314259497226818651853001578986641150350123949857132661097875100720708462823893673481398313745604078503959229625315428345996426173499746103070619126450030157302203911410986976117859165544906193709417633237205675872194422814250779796793682859629759107055317166595875624089928488769450381229409234025463033670664430343060302706450210975868103442808259670580875736254473410887686679911317959266611685799058007295568756347351276378171454169237403970908718823518894059749297938928409674989545459529950349040972910841931148013711831696414670154778437106408856061265246058277803100294958755322488694201918752869218146272337899496875443356331968570402992284706204002618408051881789031179866876777226048158556010277458284139852914482252874807100548634384485608963339624909600225592551410826419838737196016697029805057119397967141804598713165470963101678300698970597625935693155511415270340755184779569333504348470076298370923209287089201325022654768780369816499479754383500862734823612417314910739832794935051601723294773022085854607742745683821762702648973433726518660491640519671206019169059591489537757393399398015346215365873676262629005208773393500022390051224438383660054145605464967842908949224879889029894115698176305393941662600821507882177753695144802858281673359422178307601717511294948313851403591792926730612542455103001647730230994144626056051331079403719819887956553329708564034176174353831480000451918204971328461393903809861061626711898489551549988536495852619872894348390596363481527134995577130445890068665144313663514844138345332024884298849877543319497310649635614167536285127890546021459570952661828233984605023375411959664279648946778240613450930558049025899649259561686328685041883798464270929483713754430711699372466849612411378438856063068157295492507654688046135983681147738102974540062659701174974078770271735840122149481272970029454302329261135999963546061309837464483083512200479665254270931109514012990622930212460794098042057401943717351607285505151770475879101812556706393311345555316956116403307520251437130101615075490976335649872256462493972576642127875337473661671908544714943438646676011123527949937128167480816608970408953178396504862079796380772505148210554929702640872709533002462824322984515654740023679736589165219223252649177314113906695463841507930404123050607054519807204576660792681157538975745427282106171388679263657720383337686328038720254134543332902274949739930745224889487446995336621576681024058880393366428765700571867120903843943134766250117008373990155143939278311615158837878620070912422626148392348823416377565068480654305949733941829158127283288183898116983106589048706092948108221613948753419939026676322474742421656600009029210074701805329954911054460237473722066530594587348214897487127128368352757389069402947520515270917511156056983989934539951841829982681909427331876748124634379942967553089962906701099239261227894759226101929358484511114545169401683020621079232193047288889778871125361783125506401614477715153545540833088069253322855029454213477239609277020710445887021822939776161307211176740979436928055375778641553453991684053766070900393855387790227287045096308850277363624479780369626059523651681786431137405369243359480766533945519760290555428107234486358192391914613078519500569262048432925821821915406342020461190673941453961936865546002133749461202015195864703061515636201422245472988867643288032353161447807820448771592598475401991412029186399664957450105019552774933491807002786065231522872518044177772806117012121600052822999882014936384372238682693157620956590069228668557261011705838103585304389775871145773993332860734485761958528500199195208691651562920330809546078753558035481195243702278020035083459798272476986567218705071481996712558020286094866719770665558151161900109949909793752848600432033578467922521899204190768524311731125963073141494836624761475315440508749616852208571783999549241832287188673804387625844075168099787395402652882811229009279773029476129509997703724908359051186148606840637516689814353837850863405559357575599748350359104339429930522279516085077790991192448901166743274419268618571201214701053775217997896422122521021893620884256109890342374355776351453982390068491071294214770421460410041078403670384249455693152149140349006875770275821868677507403243360123045711889550616558680808666250562040566290498438359768829409780337078123619037404430960906504970877812607474922416108048184646170005981131501975518863248375233020858889565543537851837622050700467232194440636035949189650217669124222733595348456321065848205400464755430118718204107120915999519946456542299098864030007358572455680059666570059633593855572260127214442960120310326723169091691415812457390836936106341609655014296590056958541576105517747754415208444575028881313565071201807655367125668289215067799048527438014398126080606560630103979004720047132959997127238217698092487201268202098201563042891187252103162399830418575971745531429012479281437114072972003181513728034533703837942965654990920047046096761949383771908043432129273318873913047418826210755426670377568795236639419061113599400523473297159016098860289281613105261561195062161928424869224360216836008301733680255712527842203932722758826796112484334192062336237475390836409404130557886338332836005120861326233766112088126912397443234882204346452769474046408830278730866217642007574731619352740026673833946767462182610492269358373740665865348401977545112631150902661447986922978152357626549006201945084531064937083576074686043295984950018871158149790620104265916816019772238412994135151822552604829465786989784460602358074187418674809642507662762942436637503576167465758696445510368998416496681072133287847915464427802908252169062410670014542038075901957330416626850375714452764787867747870403336134575466551342478340002985546392308363521007021674220028267353633370693971613967686550524284908267828709329639223645874638820432566568318663235777840519139185741689187213182919036154564739466717125763512823391854255297076486046998819081718800489603013637828181291083611869471705831019807939351997689498516943083813616968775039598511510203336497975476476051382125800430053812677720745850429924161167339833320539122318384670445681885880381908676728446953550848739496897958100614211237709073839028037351348462330199607605620869702888056053050721176891062955655369772871017371855064207830738723102548029605110385968178535180943302246804052705541415505659039368104751154291250748028334939732981747610673925322032518884223690176833538689233134107786822701876606646570724833243040975696582631099831275350239351054824772371230094047566688715010230855186261879760695444514918414119109929151219155248167846504279914286066908530947611018594445570306286319341917123554246741575995989248163131921717985078458892733355635975888339820774605403394171160134772787944441912124358688904390742556788656700108915263109348959201085723497528704882397243554450874838423061580891194255566139301849353093210004262789499698232985350271022721533974130987790440632537367201954282629206348902030620983718658381379289784264304427556088829516444899221921165030061300378380854058184927181353884693870882955076065902003517623397532215821687311579276147115362711193406153467106285282983503329695002739451692394370815774462076376907503258152903446591020401449222111290932526932059919585339376085942081844656796827311613099705991751999781373507363206127977996997633244003202497942684262442408887440669256262297341913445301180695170501592467189898324630899405276795962473255880750833853642694122829428689200737598782840818210894898631282162981677392179833857520067413035785879492168422579220922758480070707342128485075809538080156493331481757919258185341236082136763311730168272384564632689931070707853215016760158213290943793262375370871252211876453422081812273527645625114724436255625447420757217080760534376268676446721606595657084854807144659555609434518536892390614131106318693302250864382116626940860404307510511128893907187691478120703845479036249925136263666601820448510305153769305976639186269681434781545053669222669315493808435570533425144991255533250418070749718921465250077760867060198230684045097486939041382218826022728502824123225322778125070251044568549128386829642397871903868125588449094814972493124815795114137504228226557332510454900173618854681671745444214148122346332341239283954323461696089682749342756818400302185601050117566947082343476690412472496490228406955840132173706048030918167317620571510252201411500001252082844434884703260133808724027310420469274901524144534974997221244317158146435058519695888379502364911040975631165811566704988392938700416713051890685031312253332850685015135234728733016113284564133062720363997477132355949088067164705594906470268371818821632168105480442591060449716716276557397071894047085057774880976255233029193502800594277051339313839015299090933815115495550100360583923300429854556849576306763026322298778313185924584396395824377107665087537066630693694923082210940485640151518589632678178780138232262309835098316373049729501179936706225772429699447132182499460040888030607716965645836322103133197194777405650125654087192200928393298599428447729718710417702117124429522927888121740023033042607220826475874439786917910867923868731025904103860104248313164663795554908470255887414148048860121538804551853441971873831655952167712949808624134891172974104849285780603460062272796287915094332719174644661719796932705828135637456675211524661717509582813853010615636484523620593255551412049083299934587288910503582777158393871725871151975357306914133417091839413880641329282375677640049488971618089297684068439433625185544506460154644564419223472221875371039312784902605064244320144100568547020757807472569918406679967837544412631723703429098363072043009550791438263089438188271163786942334802858855328229484557333282086822055926943279885109929861251256154848304212614895437920371072501649616299955964184883591447138589469370378922438844192437186947047395490627087254859365993141929323551756720154229183252851431278409377464306360929766751861081712162292877050279005860067683464455205383823263697619302956132349644610544458145642164106992723375642779781458169665254675655197186112432014235670142293454131778347286316501378777679317596213073667858836349977957197990938613303631442160739925212268745412606263985321951817981683912261993074352144837342968250219289975396880899872550426516986786709052296263218919820101054290080288689352867981324982333337178250007832645859014559744910753710927932204420965293209143226003951179263633639471425731453445525969318551050312557783316746921162601998704990830455528784249568877569017406365895895433340801131723095242994776873591620955718357752462800325654510883012531913294857644647766266521528448534395188903514937737017549817442966815604086446905441351304503607353568728184328665199847658554392881784729831802816128858807347009191742981695347198965577930232802102427816202640558901298877893145028256688315559680695752238144034046097073461426530023571945554285361219461372201093666486271537509422657658269816713788292626442641935452396046093782905171276043597945101472180475989023568716673125117616631303466912106684958248086115786007274354584846252171385263891888614501522299053800779004821354142112717472950861212688508704427976431952204259496273592282421452350399910467105830061693587453806513101287692969100883517469280039094317011229819132435416317547677695016735822594151873764163280814086693783224571869130496673275927577385614957317133658992826695731940981652295434168567303249659904792630670203585994046998227067847286173355158399522719812707095322197138263007387194133837671319603083894965069838859674488530206555767038105223170431910553290794974749279969587484527308747168260309619464586724087768970880465376620192158707105399458832145023083737005546724386078738689188052520896882448079085054766528216648167983710642899175729055075186940423706027810069811659598100122022612512021894754273242026243043313702322860133838192984733100032337277341345537122282339514791992617128070602720754413572066821443128849885476492685106363981722540155877917449535542243682097654099065089790031970632898952210101650355666072189954555644866600607495227685602498840988172724636740739587811663942344168599657924897031626809316923579383418871377838062721091112430299762559616358006402434955928951200459893644703083125905512004467746568112681724709554671952781721203290458817273638033121417795133217412571120266417788200547250015183385616733943304813486916836243510581899025976754826506953879578977345657633978854477516960120013807009913691936496895662987403603464922936333655278384023580413667745590904281592714441410227501715332486323427443347452077970686905233940572681871564666669118082792488765781400547596633132690004863107021014475726312698456854409655155630450251718548265904793765183762610299676584009391050975782171398357878575146982693428720015972927898579823253101795957202540911607234864990341575729394161718675997590931214245262242019483851719821130996954739144856201676918796588284671187565934268419735514360756641499679138372501889116240405691008460489046643218391101917969070917766921644179098412966437829337306959638368903841729673355679494954819822203299312765077786723251330141134867013928134940323909173724945786245507712188885706265377907924381976700788399189779441720001537024546918889251496525881551570744849530342585680032121176727187940053206783297820719365030938611103450663328960093417179309547107521220683485843634755090092055455939589498859062107681041843603092483449877080146706048163505371621387325727269394534535467376546616893936176541472483296181920238693281092848267612795611180224243775324982738047795524565168910034942858820308056619509546994142700108513762042869844505838887002108000804256160885996142124634526615280574522045830242935034952320482335617798383077883993392450242774601807925478379076235009484848191882793531257327907251402670425784972935758425868826053725799068820341874085868566057598719307880650487612637985299138172959301473499234980231097650137290647796597763662983833442708912304706577950349224523506835416503217854227672008044063184402047190182139851826903146518275714106974453553665204827273797283356333462424787203119568230091283201880593062145190672941935155358852817193381419905200278571400027233736887933210682234334549864137259203867342725893223108402323845262111206975317309951557534471358391445442053012438073585366126046811655491707768629773628712600973657684050730094454972945220313193577425531741526703674486697905510760713434238644570356248190662922855556572085333146890203223521222478994013708110184959676812744635266606990859073506993640492635256501688192842402494926353028275797343130890368198064266755825480760344526217223063408852379483711520660982689584516415746259530012606624367700661370558508670164498152322167683931492087438268084511297800044354634860315047128263499790980395854939452063417603469515388204335010578670334675739707679549188002975468251651911110728945429603652902233977947842660413396290838427417792995062856845153522097382829343091044244424709833666686995159669128863923775987265076242674359853612389855343622730730830510749701112537396231240631763385234248470284578685683967383776975874052795975673051133269325725057561086957958790948195731202955658654577019236230220839398576455407100818628114697551396200945613206743956448872466296463752955642980000245149393109419632770860374540386418439764425488718495679123902494931271932808222853290147942956933274175064467116572727316562645793866523156373818778397063144768670353769506915146994828899738107592933778894607405839450500283255423229341342660360229882565893740672642459117833833143546496768792463025157627664659494016333800014625577517175323583989819262350872250472903092243789998551277973263427280156111496812404155529766134413381600091505916770119797111932974519044428613424982849295802635005692884961314718924333642590386590791522382244063170200137936194616384747725131283930591274949527877091249801383022536729070719297314412367783226364902537182736536579589464170082885554173302086250995363951625275988292678781908252302112357073059140969536440559277852298618913673896915868232251570030232970808257851768724344083277830988722358198166863420280465793891949003751114687339413247638305476916361368784096735067888882569820950374510594628320400841544221001979420843597505998337028558533408717858205825269890809990941107555156631183831321499527325000934195789929373912523935414549797559530306287279147885958655827789745833867729602481327199422223067873980311994936636580913923787297771146496979916989134908734809622021399758629299157011527412516861765600155486307140220630277255183870493045625009768179597389738592386250104277757044927529640025248405914662069282438981727259647423170677425506981568905156337618408933796595918058048828348159173254875560591308543136090236356551353590402897344645472308554526405419396927112942631484020386591763052474691474286851685898545193631585601075516050182993573383700283335714440913105901263373851470776494208278296992524504056682700910261366494745585530755821245745433431738223863612642503295658881896359485131537668678440294707791149963739790458831099742206668561065186474742977703531580893002275512051878289093878015195924526283057881155383560450632780512844064684615011409111984729600901893347740988114703306983489568882331828756907565305713109152295927500783670057343836792498436225124279149572106550369849540385937685996869259092776717387826783940617962523530306077879773545720951624291977690985311967842392616297827727581101595885094097806209659574546253004052956555244154974448656865329689097806140213124693385576257141587325689761389158952889421809952289624727393249662984003986582651238355399290950890148906143164399348207451514650863966084780711671131335085899762866030349261286116137343710435666144173973881644443461302337091481948890535203818244619136456252457897395668492949500259577091820204913507538865780696929385902062051007757597926779484625821777065945711381620296110962918559104242926931687792245805616779943026000963668480520696864951371109606953780001659601773913286059972995220717318511809875711860739111921348661090264992234804751715526676358169755964506481795164129520263255436180334340451576357471607771227982052643720474230075494418760358843373892080679129223422766836068464827194108950931917153651519006893599512540477779172117779016514541768219625977205518898994772422853034288795564964532619487479857339695607311428623896537456808951874671842974641708118498671006586833935146111100143021164085841050805149680431637568308634634583570218899631525309126080643912092869325669504137577663675009456019497634228403783715163928072231774716699475355451584246897547546441896979873404949257666796358890654241250222415076873461531742594711399440311527410162668518228408104350167345576525192419171640399857201704736617722198287305546953905390634624311837573162697612956808383535275831817737950793845343142976100397673530759178500251171231535109407753519959825376934840279356330625715609490940729923853908028307359375967314127486000587588612868759510452091190309199992970563395803813883774265158184081687755593272555023175776328117452826169877018897318696281257485077011566322888812550784532202808365543504090741553672430476055167570553774602244540406211061560361859533307744111533387157599244230183713127944600416010045597862263967049305155878018807683514893168105264343615624074482939083135528320593185419522311990270467092938221592389732092031262339730131603216497888148351424091648077144952211765737251948714006091956238607668933792174419639581901058289518358962140282828913872867903692548544362681398995087768785319455961266522184652659726410898343892283082901369544593491915170603382581774949469305272185113223410583467749830253844972242790117069425498253172592861910640711616409807793139457088262676572125342645692416134087773347549112162354237593042283756882259994040722457423609551495215080660606256727620389214492836007460444965313990298104054544113145477521456833742122048709726572929245521455790165098111260291322210246709423778912851413619202513715507802218919999519250600230763068846983956937060476202106759445701351240584022570923216295209035849634180658295600760222713266017795244053885251116264856487061605427600043541622559545422814406908022811781534867632947464443481345738432746450507369282593302734339793691188361523965591596906976160516297113506044958539681243413064409910181351046887067933434961725543601817036370559598485804532095975324603730326470868193408338712101219178237969072960808346343838440107660199366535655178030210162016007942234372524497107375504413382116790541372118154580897132307461701748014254604842915481736521891921614233398388997058584277346833344516832919259489222249187384164252609034239860035198398624838801401633274139640827641677673505935943513757206308059067029210688356414141942401191358576283848420208113922175302530230981315427512676997188108779812953968442591615543904678177026423574241808836032110194853622769033785934939001183175390066662243084355638136287858024215704068540678683207168923835210902025543764209488374729193798811990883128153526608303174498781949059424417452552269101705369210477723321256830344365200152671002500153291124765757432514352834638579404881689896221069672752586890010989052246182568270921249465469064052690988699239479685100648009176378480798734305394029358869790264981074838862456189914246770723729781159621588117916358759718791867619281991335472762749893848670461313184980942649171790946484784802319545879495195662500580158373406176966334979518818007986171893092956635659815807521670124033883510283226297315973420769657216941830737841879387339968611987158844053602263602803202716201434315749634618270141726832340826045095580632213653750448339095359247143935173343849559190292484080589181307091549679658559645760675296328675917137638307468430331146147420091844688040254657170327546638692034289946669362814308068547751061944016035953923733104666959019090120484570831718279409046794002717554295567074970352613429050607747787513901223408423101015415386420212210560921902849658294598311456749478836589304082021063209268431477280368072521254867332445502781358662510830572313905998602741103601200999387835530811857116841973918605341996872382970474053137686125599426303330154566797975091024020204818302154226841747201676418635398558732296125479463271716312894957507404328445644540696158470437425700542703002815268667165043198986382994375256447260257306740928902496168683320907012692660305095864277806437338759995227961095985156167211517427960684277963012343804158100256289713907378519393764917482506575123020726581069752763193965808566259829628973146765948967665888590899641560040918118059579881683090918885979288433849174638166045987070517411421617740455328788750201482765291680245771898574168808050914364486917241311995478923103113046388354528558110146680542098027883848604102292379632286786979179609242213477613347741016735037993182124658101587552815012655659591279736653103252189104891708997109067082825670728350064943046309387063921790743579453696364624597575151763599504923311437548098303682900875825901521095154211110749972353299275474348283138978316412714249317606464740125841199572308394055975068370025134738708727817182782449202393353645065783668551515462799228206849182332137318144177754765991917451152107470110257693417533428807290324933933674294981557469295593859792343669402358183929107061922177461255932048161226289227887249897160125964376743858133365488448848867551611151424448144438282625148329183944182452963952300442428648881714221835259979354073368744119249348549145699595622140458601452498066330802846834918979839208617085069268710209876481306242305449875338263182349868443782505244964492629231933140643056563927821577289036999443399071798998083820783518887396199813099290533654921219860873065272694794582536484054240474978454235304975220780372300289955260931153844126761518767540166766364540357957465610012030801948777601179443775805944631794078572312521241122915383786601800120081849398424205818515243767396371808652193192103520429239497846265541791669395621630642164998287317615839236996820928901508820217488150525801813402465426987314913524238448909196840030923311820978745621910673381563067926928918369117575200935921462760351770161479052482974579371740739076255281636235741229545698695097078515007367897041403002339572141585580313674451075855007842893583888552511387889474675314030698685456344478543652775444175993670735780624650889597412062919133785631374575312279665635978201049507790631119013631948953255926490658642641395521749158597576625326319972702891278231998705664103928895590219618721205495670418833891891445189929905617714798015881613488605993188537380470454333162884145697603694133187887782088061410824750213820191864112810388016465319893945315066078679195315456104831710790892188153351317397877060700523060628037081119284707910680883098463598632206391169028610174820867866499466445781219576357026228966585205533623404203595166369092947219490735333491342982552981550299817085272531974882434459662788255063277785078300637774997903161421646656107535179187714783060955235077363210171298445424709975817181987122381072082733951987770438224005077167370563917359408372670198230539641219694817421729645861128647663800358372439871678334009242581737668446077403525442163751927326102767363468586278542247972523200030414593509746452949800577345418211879518911653477871844778820186395488300227165584227819155295976690571028006630882812512598151900888898052681002382139079414890886413997016889719489210489743561209131837266321539691291990581957385474668366890542365092609331932944053525300328081360233909905721481877977738512874417037355657949513045101931177856751264135185520239850233080501305383476012027678004237711932249844312020677675919334525499238082608397942166558153933100987114465645082497499226429765142452057483331901956558370258975032577072080936763901481278859503085941112043466594447874415317274930597045562354269861138446694320123689376494958547557069433104673153307708044025243473224178035533492329997512080413112311853127772444749822676854954253660748588034789432835901645037942948798656113236687576185069661643460888037325246622646640434208256146607179038668963301766085454238378369515982777292207963277877279830829973683829698420587836557838100623229254407891282894989445599999617910742585923884718835083125730250820106423414502822028297499901519923339407903482193850369679716509766298708170383770769320371965548456567921835996158508819241961198470147184013301491959630329560812550588814978410255783883979355725937622656122366986487786123582581843636755476287781811907590874636478728269325303243874271294527824960861437335925885700494831074157346883445878095388113717081206217979225766682578559451411416134129421394980709962964212364107177082303160103202386493670098537342724094902674890548574221215936513946737722076922451199468662102297038875632923915550916146923381074131015474921375907013725615196074439835730152759242871097670333282226576875023093740348523904062834845055722033878947641233342242105102108662653577997438346478400689825454759541082418146223632024891438453913062335963314241254813386358989368878079724165531879317461001985843726405786451312888301394587179259675301197466004472989079384308059890683001806201404278731983209549225310210056193378741467067936878190082932605743473345525378329699180412126051325226649435955123912703668308866275771374705690308990495511473441690629470479326313971754315774412313188054706131169940357703409252492913351181725180964384177793496195453960239901002758504698456378235615171141024339025920608070823601091378408677526913669201860880223429052912904937241247316822074713700781592905303262285401306069642614283268526659741188376913826425899615862648073602724610241040403076132898065912467440739603668586059015486431373635101321427739950088744571558082884598649214770907469708253318891063206208227124708566563831639373147499650081757414255609246172614499798267921841527023100451691563007321211638401374330129966591437144796532140351194563123806053244548858481925781477499840431394517106833425193575724231824057624898566349968921868192892792421384760272845292411748381215983077172296229113639068923707688397962281998934713962101401888192685118271610889736899552066562664816202271461509489698916972727893010515217332389106500956745983910898124021182685542966326222060980224922381485374344877989353061952091343126093044046538315076004372443775277090434672110053574416549891094466353616914895248558828624299455892536556761280448654161890494766682606085795610003182407567036853153499069897540841693889783751632091645874332021785653121626622833201095710643398145180185214757017700637391103349472138463446784550681669098423948273723296452578872923390834032016956058633346266170034161334011471463746631320979641191602960092102087085415511650856235649640231390248461547537977929128313927245997831238570124348117181241353061741738394135330244758352067982215717486722407673900589550542049984392385546335701990317351898663785160411231177932508936744143608949140859291952598047037116173135610538784639667994674749447752583199920025543927856056189586176799633532283139858342529864184935142161912315128474382375073002955211383663403116256596054776232618229110794147705111029452762287636399218093362780883357386981359587730173686493588748586611660571822208284246172098222866854180747666162109645759894759092392356475346256344679747164542914623314777854058123921729103646182915556255391618338572761999403541754143167524662715275714949204174896703933159051881070234394489013648093130279588148821654697606041428669845548333686448980742860783055082876555939932680310461366107806894527997099345508703594174222664661961424009700571840149186698170953287033314928962628304244794904566106053395094260422143550340013108532505509823044098824442659949893335222836224157577242092486470596129904871401891087548223999971689426705264301627275881952780611058188869865530885380357583229654326325193029407101830670615911040864340984037463341854882374751767330394940242734278472860648433185935831062281995311577507515675102478097590435410359916795175080388834435250836066653632155379692551699133745855335364046266059129167902188222062263204628419956531363035473784441821608171407726135843398397848235500549131284775234995230130178164408185945903684464129647954011103741080549383075443995204326543482674615274273137441579815377396641994954159591429675149185833042680898650735430886209888936278480114873591807502449184721133358617217241789464486159745007919009967302579517173453867743071196143311401844623247863566897530593023220195402850149979157212223780812617890200818841371667230292490347451674856864234154474888486993163596107561965977135929471402223797130239144457906367658305625000233005644430821028904501168180771319004453272074740692596877760031794600956483826184518637776324065541687704974930108847806610228649322510375584246631153800755137495929351746652918890959856870857459046294749822504114928981208827057141599754852842084863481216774724051623176230013620942046280132476381961145605031646672734700020142575590500748183608163590713336099430291452597929855056934555324807355775101486374845416040640355206943021830307951838566125039315164084184966052927112134942531897330227327101393339483107597862563993246311569260736922486623147543317768434529852838703051467335222464827707346264841972326235384615897415837821479827398275410995909946620268467353650021413852913462748230187162414371478114819368906642770892818026888161267517893736120121285474538756398911290178422377415734118284378445245117870047387238908598471929813144523548115431674842435125981081707597361200543593994614947623159764713224373076314360047097081059270973055954903241214709773520228083100073826740821961541497760986155540147707530183587997914546686726445364941715002717519120515813793636251587333723861815706665985365508878214396978061250878324411899666133745722504918316076107385169572948555195152373655630404077877692588693143912477005791697285400840198469883662264265787017641354622073540837997585002428921880998838547296643552353687726084771856317620606302629836066382841353883219463425706716912366382468243811684937107094154873006070841055302691049343571026726434424613222818044644229868791437276140749410462314764824416838170438612037816828592858657175459178234299452518971424028680982727781118074713629943083459944421248879698198424694791602951211746682509465341111514425370298202518276516504567256797317139777877043269295108300406507818967356638184131262153986561418960196801748915935055289285124647302120287894057772616773449190890774325884734697521331115553638132943700861325518230349348567406998756865112073796707385172080805435397484272450545902620879040767415918701795102477856814091104338236955545775201247490502898816766449069185511295444888508771250446259609003930429496793117385684665795402689526162179981516948555454252185401858588095527161715885334592840794017533329945692848507088363067946202068082474899866527195122362557820001630317406728409519641220590299313064766920821904840549764839483608213937436790572456649586683969294396972779407024190779564644781371335407653101756822249458952226537643157534756325740247723521299260783110176377073210686272835415927449409615610947469369707290851310407815894121302616140889184838695095303379934296925913810704828172981150394225189959067067629858277202032014312524169910507328897808298343547908800454316889377025946351999116807486655911113386393647679919201741027122297857264033600976295627500598006715997440446539147217015850315621066781584579832437805838957644780481689204084234087099114363714816872691496115843505454489203872776180421388293187892157471005148514249673568185456568919647770666310203979148675947811574315066810663098578255347162316854423332123016162443384285262029459815867946793452711495072401816650067817362575616293477761141547737980446649287810454932635169604732817818868607931070271087596152528702927408131673855011051010960109992381668249272569080024578667318968555466537211865589273217201479264399582935980531226150522770223751660411226393972796771391191156118873215997373972197731492968410447053723710880958923723289157314449902341640168194979340909377489815871123509937871910432757307992201854324452677558438684494058878654906356673488300550126923426106158933181442086249033619348442511463472104943575357175198274635234870147015364053403201920991887720783326434682579090293573155736212639261659884588812058056108216774777641372062274003083742157005840700647737314699487988943810946962811567930677197457422616703715548164147592950533390747266031233110913669827955958501039814889108446072055041275395657120121125339002461467528664903294927876450822656190616955299148545441420802093819464920985269928504956544979466948605335326519809087923429919001681307454966298280847440754584091751687950304155677133822891696462142300822942999164905740968546476303884092032837842160911547137959754229581312312866192046461477943987393933424475675148653980677270292123765737580623566513732751328242175080641652582020196582258578612299033201599549731208003437563346081161577236406802904983059905498246832231895777646434259599132583897689175517453999616844770911997781304989275553470433810357592970574892435690519004760619723455214529774272662410161854389855089680371672446641496768226214795674487992304128309523725701708690424718753695410359716992062540663134089502325050496494028448384746960549135653916384605410522501218460958005424722155108374518161428126082614584662139952904659910563597436349181995478848357141023975107931128226078036362588372935360517603113678292282338195438721702930623862778435277306403038976032117300348894920566523042324730155619964229450002188680536438657521538298852932162171512777325594350546455504141527406257065684766768609116405502074178967518893796836659599074699849836461973767995050989317994553365588548359302791751621381255363035368340444788818145769255215241405846770090496115997611462335564948553134465917112966441247952987036513791000190813665503061011907623079106686925752785515026599433687559666892767837708821192602070204393695313887746190758331680677020760627617715657415541856283884433086611339479075310826323201221132241290211353102050784669885149050028830071047474251122536838338909300493441911932766492151991543876197045039779125633384617796776748496520238941888044890470492693514786287065869489527238191910886225770346965220256077210765413997935540019209191784425687196958246608899273447928213256811890413927188647358487855575571638396976550315655789081731275266413089357390852563271401533781816651654209050551435978389657221903470327491616024419694945426766870016655108255825946310967413385606577379061072603988109425481480602420186247550399988270613238385652110545466592288904527552029135746374161087871295753817528702323062256366858923541759935452805593864628841536580120323937310330215309671523177729230526762439378505273609708137339615299872575354122715778235089463517788831182205800794407824249783894000604746142712239014694807539650536416715786293452386037451764182162130911791552549312755752916259561315590246251327704124471182181578716418243466578446859529394974657925152760796692584729737207216326225960768912255598784317174722318402669705786715798002682663249405799536812234111452934163205934122833433039791748549381913682056657273973434875634810429802154219728145859517525799656255608160854055069053532638836387790457350133328445708097730596359734790293867761809889047983702046422165871396026531580838601624544160506122612122752496376009370163516226325959648442779625976139037072156198889306076094195740174957264064698436756890926247630740162363615260311646137089810270374229974410449897896809667048940146068774867342995617104394530274877813338156259924247493465933251141913833735655867006638854085519481783742335875763992173026404510837459247054534364840306678515179046498904757963542037812221266360715230248567290300659741083417027814316091759725187016354649854882778773331316305660119280660097968137803571410679496662000594043931873746623653840052213059067174722451962744440555768007422874117535603700063654666495051078239293507833216337870466138109283136139871145684692693453129025742588046920607931866208476786806888408553351359158172495977661502733729002530410064203380541101547463302526290075858367042679279726488036214930563545822469886177952500216915077736253636078417946497117813538433824626078913590390277327637179222257558344088579154627313716964811971001722198215751293930955003822995274601321563878958078098891993192626976640067933379669198115647987145406465656602797872672449073071606158723111577185345230368518627987338261018274364640765189513031174682805571179354090048585300188104213246005892304573710163304605184435184712203788647144661093689235206520318474613231084440942741773954636730059392003308895067167129158326421830506537861254823401006796166692700707884701633660812169206984379354880453310004377032573535289158718320372300879333790405509455430989739479918963227625826312964867725248277350701672404036957748068788085028158610562919399460727764244662658248350149445990302349684813080797644628092061648428849582993333560252928638448354597198053396293675416609990759544165427857089291488449552849605259334519889746638544016794724203846248779830287907880034699346365726255078566242399946438962496925369596096779937633252873446094757747417656364029832600875451943252610141518129602368524427964039721964434351281568468075575189082740167985016069606735383263237439970189719700173701255551077167486189119879138028295703658730645354462402840425896149452449163015903766669769696685406420227582210998796862975757910901469356354469548393907053977638360517468814749650764357509828698869990244393890212114052026960072006503036365429333740150170101255331689734041762284197967345858332652486446876904797558014237575791858405929988250149832998249146861813859460028920813663840352183287156639263803458076086920188887998317896435357831773175122855589583597864252300419210552563227623596079083438407484661304494631482112766194028942315933496151325080641223436064009463555525553116274590687945201529662658112307808259193116193212181563353592949849676187804194238701879007936893087981612867064712951529396782454041079659690568198947948491558879187349879328119852967074215389346977397927980277945526420116558423092937487529108972446840973408732666637953980084353868802697461474639069355949024874056011232660464226711027232226559557905221348907785285010651803819156081031908564814030060334143248240975923036672430631956959740834199208749274146941034268498795995194004940641557298324032416429298345818793211315422163631199858048474697002458469584550066658680630760107299183034065004508424503126451626303295607847526122177917364449766385122992035281471517149936220263965338255583025747837775378216519291047965537886092895591746572193293375077347555723495953827965914866617301768242966020612680455404730234657690695447200973330851831074839138415168309207955792652289476199649860180516485989291283733421488013478637932030679663371529670296166417784479020959702055967285494261378348484333947779058762602611498987978992490232478693780301390516783035340562425731365322231429828218023387493345849525575640129450113780630943618279318569694465082102373997794594350709263062306445016771013343306232030759946266617474886121503063662786629435144263728882147700785472042932770434561395280367068001082894922436445482842856308726160670826924047142922561280422612465735583450372922981050643571904556405223288324113136978452166385760659563424051409550607534718626213434768742776666098602016268401758991709481698356273895946670351461371103903507099170745002232500439441080410543971227923200926426499691455851039062067476171965870168507266495334150402235165043540238270081131181002678908850189039092128994371157835205977491170933605437063653388236631557564618291493534023265206615606464916562489914662913150416753209282854443344200926694883972992744637358617900319460610901655568339988693473780880760407888362238512029510707407936729238158797470042842339065383786810055415618476719221855547386927428999563067346819598860790289766309467795724345505929145958405100832259788150425631628977042216167341827182910937556464055156346221413566607054040147919268409446998403841167618297551530868109198595646386664066787783266778254985006274608043971256483266799938749134114689268071744285341541644739966490522142673744196903662033047431620530860929698254322591113458535122166177992337005146188239097640586258007699696361157161049399298435484726179227088202432778979052288256107557395906696321483247535566280397272057879168366105766468856142621589331760586245886278763753804671941195270973765296954403411412152398156984956965923645385762346350459610921629685251727065887865652946117492638089306559795565771891989585899493009221666514966078498290287277879767303742281601069246556271909712721299420985668697021512676585609527433883821980104298469005656376650782436202443232786253496764037406130060663232275116892821373757757403000977655799554250466555305229126892967728700135916723908853518861062665402783968550917001025147569008888958709912166595418568832705426741084345327967383421228799130190267921339625822458154592632307479167068493543604681876714769905628060432472354933256129347651393617781085768224322494646419472266663365476266460706027050570075782911563870235633333402014800965179012852867264068628096303822959649289119634627337619815007067337544110797433268831929862272486150262172786611078256613979485612504592659711424198915016487418602916422149037083487693745872085790437329720661282826847295891975243806419666935656873281185581902269238530233716805006491934825458418231787232443673843679309659623851559043760535311902958689394668781668141983405496163033449298994217476714709209217366402633493115687459305551510000377059008191208799805514039564147693029634819924685842285097269582553928321693801098171071230960831827272674647507822421832627497502757147281469413112181787450414949425070449525777687464851173472397880317777659099002974837462402573807880946973775276704408894520765437800987140992551365313136004073776303900208504089496879855499550253797528736005617556936071731055503760092846696558127698985604560540351940706232576100607534250753565231093774135225525490707503323581845216469492100790117197138786520936459596399320995319629278007450697598263419635753302203865331018966538826458231005543088882433757656017066453946970304162583894155232862282759392823037504939122825686478778683535055312826867205981897565166912185661601755632394926933528846159256861803721951625080350052174552982106601162220717311442595747222511951262228257442278418157234785225648227348917755467411367908005847452296412989863049638922212467530765027069905284574463071521068175154011629965896623160460742293393449020258632221741739541423481053878486289275863838281765343571453037046257189298059203960834965589631700919310261571305129275659231015263477498220332197066940499336285901072218766895753707529424751428977674418131530008891819140266285051461287600569765215867089455940891687526995958890781679285959184721439344717277587615441047504231493640087089635381173870168519362091879239663847016425644224227830351074938149578052525196639597394675078093861254830656163534144995791955203107801126896910170217707151663993172781512525135544869677696765968264665884042862315427555872625196960793272987601958383737754303057628804990125788902004095552510699767246642246653467358750956010426308725908202970775128690993462730624060803283723541005033170779633060815777385149939957456928107014818287492373181183463637263709256030229384439127625635650999144344672318431212927616528489927311066776171989419798358789455910734723485516915330512955041381089361160118969219372789477018105814633685435960882925610234808352010809307833283431420528727365698330599452792403181833656002292276004091009097710174849730510668005118766432188212352121631062222553373032000219951571096174885703009364586271735217892881389539245777642196309516646201208698251314247801532070986796964743836629933347461361317365320095804088122215384474475833892781742754387253381864632876300936448971204648956276421504813525036979405837760161719428923677177244017541602336337260017875831302010925338728401164166693027171764839634577930938991248271239676552218475994533289520700247139134846773011091104234318328832167367234995860488372038291569146920086712026232948948953281306435084997368760322433742776531827373326397803848180084212052566456799074561361778542358157899237738167010364901396447509931515630262487463395321406646458697522783551620610597239493071866252869134848943583606923582407859033486718511890940205756725618610192226053362881573742537746094160937140643006185585131244517319121596697072544597550967215460663032072388253998781689020183625294750117785131918577825456858480142635895322771854307977549315000396528688466493734698609131726204053607423161393626552549363959006670874933770726490413987452208482104758287802268935294173877881449187791783406853763611664788972672881906807473665115270577571498557330885223368256954762994733790473577455930982023379754926763260806069543330540536313645163928088381380348179397973860442333986531585948288467107686967318992720187548795378009364890086947168056349969168862382007107465718561615271581614708295226598816755835265382590936229336524900267970057325634942025794901337960319265446159406085497562467125497698885258271318699553648926806358546281536408749824923286255602316705902047943683505758794974573948468770432066065011467503916703035640576559699064905749696856509764095359062832148649475345628232459716068928144572350137003457787559433967206843420978019258303493440153899830772919522357691247051617775235497469406257511026090155763835277659060092644533729498186760882882152161280203338703659271730743500658470078374117672263671615817046010660505660897863299954082380484153636718903314566223651730102025059750849818813451616772642370031586833034684547006858169878657144713869669052150485816093834267454808694325199827375158667990520599073352872738839907234826512931810695944062389351775309121288629540412280106578883838435396211263344135278756086411742877307602166165809922938822578320514591839044887716349634080352168801979121182851629563557791029627199980008644180048058460324692242940998050801877270562942501381105884565881492075640989101908139288930879107862493535170133395824923711082365611164524820647606426491484290466474661942112752268147192572601699181589208585023770084178527914700842781321824578760728069497967842832088869691242939913338208582225066717204213076203935474068045355525850988588359879880984611384385420244226240949359821585034037931356250215139252190121436944952937278296012959098900424284946066919785861572926709400625501466441526868325142320612941014640953009243317024084440416439655559701205653054800958915290121682518379162190167958460423536551723818630386449682080841098298083735822862425439393157231335779383925233168156505300464372566000804709209631379185797511361540723278600781805965092789540316967814082148584217718067737565379320112089231053397158229799601344824092668492521161979847293435968513510965931953250259977112704337777644638349836950418221122057805002779910209763917783198281480161818628685832087504719950858033971738960842856265348927058811669616715513227124203422710499457400316394040297951821872636317526876891873650326047217665781814613353025754775211919832828962527688387377773925089722075877835513023618185556188975684931919546328954648089965728652212508551762137212541822589108711334584624108176031441617955240689352952108639704797672176511238114635278878663630168538315448963942885196956552831614611832243734771957573723516980347244689009641300495371537802443389475743400845678580571551972007054484280226967478659594174166083464110334087816664772277528167301086330940849455729851619169525245643776200722230739171154353195621526111095580548106471714068848686930704618221568901078500185800890249438216236787170506643667243427069646646495547130940052916476018759859741513514427692225015201543583731085573461093153119693645188970010457700634295830302166529093896073980154936218489235396820284410360733638364199164039948557962307678841422435465292276964397974527030095422897799645224574704761582317470478404620138748242743776840169880524689386510727947556773462954015558093699012850223280080298911678140970495418941012707426081919798736991140374593050690678764656498044421981063935338944358432683680271211298116422313615292743162472203902684335207212446373179899646505939218114227723353516835379202869432123003157281462416623392606763959152297421756642715456166369075358248426165292839223657574356329097441272090876462564427348756647307317027895896628334455578341472688127560328969116106328138639274567115140691334206492194713280302946064759331207451371910572137384609447776033543449412393687352743487690925599342865302450554271454567051001632769123102236026007366207170156506621433790289414149446536435859422194965037950460790785974637899039653003189737122568597569326273932071020012635439567406739470564708317957096390520560808046458892496418108873790326947012232635294920573213247684096563959353942165463410269322679667737095676351632711435910034319332687804164210964444776114001074906287138953399270754430823156000665807839397394045810923738233410098990124593408742233642604831913930589409072335469668596676549857146808647668331606004791429362139564932214472571500545565812200939635610034936201504564005762407121452347731360748342645609683443377835123029386085726844842908429652498866099199011913100381375331221654057348197175185748186939500754728897485950877708021501751200656414859040440737735466385855124247008431753146390455919856062696713872903344520830911305908654715290192015946785889160487878361236922373140160179189842647548666403484711330058088947531291895508211957861219874799031131007555575551232248669768974313763397189066678837661783901510173659145196324386877902607467139795440674545849152658529246817917376472465014727718714467720575650619622873853404369169811070878049788666375574591445445430636078119367571499935438623274092272945984219523500427592340594686659427787004861844438820243969698508907361396966780251425436981715250708883505415156810834589147846927352567399936483383729252410776778159910593773435915445657289287794600689977689126493497837484846636649432471978233797189636215378802066857680828278545858090478096664225558175572753396404799506828483325160819629752515116339000769258220176590377311816703279037087052486943558901127476502671475104688631457522709374122977310357468300865293546474308075346987086757020697394718803579533560706874161918713929574333915809485391075581411606156051816397168452525128468627406874879827569045640828079675635134447311717570009775520736181105884124517748396522262633395139892239373274919592064911871341731537906666361786592227203548232282292732210626918216476670347400445069606651301552392869361404067039705890258467835852051270784588871369295345441144012801706432018453371940655714162583577463523669918626566001061507648318141627080874615764152380137982507950345514288938678378218207624170802405286257243505736755808936346320964779817470532267046223316045497866125640590450898308215087950261012600333023234636985127457295728113936429293411274692938632184672812539079915129063619737332401296198940240864492263329468137050229040527056060504253627636320442648582985552987892250810754111595412166493361938060456331618282014923489203720003372163566328561351210802801120343568830663430281283329491091506863170754735187325212041491760108997276545802590851597711408517440329992168466023504551322268883727753311725077342051308450774993684003812302853794200082589689594441751022107200112512569602461798846240690623132879148190482490679498290899704030153073126098897836687503628539309876164727704811832791009292901255114421468947348223427366166054573057389705276750648944004139280779476525091302734670809374582535090144873561414426370971446825334944155663551382414447582636243020519175125164306709572860608236829911313490355529307426618526350830436698678772714807193766424868287751329740612220027429797918431310545867266613785747241922679440588555861871382707271276966063166225413976621682310757037443758587066943117904347208224270967910434928468952993297264172842383523421291847408784100108059620448968586755480044284256623896981725696161462640595716385099622213811055977996999527038672698496176439657505521937740976731722930800587178579180848001316090294848541516664105801670435034760386040865563992041266873995356762561214643874727725908217085557387889764914720680190472090513793884704315144268817761270944493039797255496036458044169187876648510609015353728579390117061530519118387010980804234793274137436550984018610037789108229646255231838676168763543110704756779612523673768009350264657462859999391449129677540265827344388172163527643845498659187175538752735946843431178736840714612358960762438103639712201533434957082814991289562586645802198793778173485860597256978304308690596691727643242570657266365825795374317429773013778068367096467783251436555693055346934196264988146045097599588560125603154300769652281173437815635629706276113057323148272210929268515085744769171679167672125455838248987157377549137389291747717394323884455185122783682217468974404355139855071113613335994852785390395041780381589497617057316042918372396764840859355535132601700630836808198148620421105553529687047941004391177051421717760257237051190793156862978130415273286525716178314621085529558732698836328254567227156951745652002526171782819085458348515663962394469821792914514481798624790120462374463923870527311108172618656866045987997785260848917433709679452829410862969712884362588837442298971799121666513322890099786810400795127162672762848473639464307261564714318543719715395816074244386600548750624920287285557216390453808994937136965512336446792615546456160360280302797579690940738816195624615003030035910720143232848219367454964603161208863597487848416151947805515259853203401698090483498543313362905514935076121870665870538576659412227771389683323355586766329712576305889261172911019551934790327550493109652629300834555214640407559291002478589435273168407879881748855632234746234500419343393363616862948321276494516132591577480212225151106180577113003695709982871261395856803329967737680713864816621147841503828060514251188816162893617017255550184211472738554483202992813956544892781169767679995402964524732715555307671409588632216688935586123353933909551912225673541261669645960432444529756228786091244487270835916106037287269068160141237089890851049755248231298737850267957311448899032816681587710216757760109049184718218141380951948327056500312654143156036855885151076423584438555706321269160340688087411348828137192975758536019130990803256156366646608071372436964009639817183278062222548448375199313590680433040410584714319912632848631638604015432485475792787884691793249239161945643076942270425353634510836293770115922467646662798271259083120051537507733552997094653545933207066925968974120071674847525530552522488366125738570364142120696804190592184865211102315153188917207670228463480735998409510871758569146330902377783463872486058911814503553704323444726326450802914742166937748654578997616640131434887862006630319764347157238680152600917606181465885983474090945545147036027195520921221278705785810623721042486095235502499169827071476459359531610220504589473516064716928074998215456120819037328391530916617402381815419034583910440933998903011929193848680183127282547009608272986563789485876706785155745900896744831308127725245695216475646978727201112310378515269714344905424539690807001016995143640159039415799387134318528355014756256405686755191792529006316327210818117948615154147872132359638506530168926640467173130083119200260548580738114100561876418744061325400385320524654042025687310934076436331876628273533670886549388762361777515894848583090037401886039431819014310393873795158608327165136979972403900897485041992464267639509875227678560446246554733382363827992675138076105481715381701944050276272013656808527960516958702336749767414553673869943488913317261188487753156407676822677678348963864178326572118138847180400235417250398737728399652425747471163822312831516607549793051012577656087624967556406865464152221985736672871756490407723996925273035511250079887067851106041416092842532889454536180969428941890983599079440593335242781337393804757386738537668227977318783182830373350461348347078529176556172756908373824209753847600885685705809342300360562783380214353799615231877444174389497990152574734254889787848930560479753171732591552903266134392697579871215117350335373306306421982783193454472107645043203612966828783561951991632896143739702845168323269458010127726735582088863292149461497594859717338202469701713785235279774620566484672291755114535658006314841723242909373161077939084002370359272121547152159057364789146502902635883053118369386236559427571301592155209822253122881314483743697072091931791176200780110350628555245154278008060699153712755510006206176441198135006286176630490897035079103015275218407255668671591647701309340485105450010033833962393468082941791781189022423891922940918455019283968151297630978687226724436307581250369077305432344324773731265083298729748637459357546797983513755605373894903461099803372697041466791788529727251717348118428411923319576468550834512284878469908733843413653797081575906009657921200454034220138939403183928166251044182707766317830687164171756709027904729951544432969856191853297695141057501068755527413311339455268704106693742827299040259066713033561713540634596631332075438789444528511225577032830205522348533954233210031374490905381130977293076724981067123031124265275864860306901224674358126929407157122296390258507447543576919105688759498276133152318641654069621999801132944992354511040732559947024971877148473996217501927749323805666296710062936696732900396351083110154285074902954262358401884454153149667116765372517637094884927832771985178728639798367450474544178664091350775392593972148628430840813587427570750659113245009269382228264403707382038018113764035107584591108657533669093682444908434838191170855917492172273935171910543057279285966313822209100454274157399612886674773590427320976331104465052857940060371098557228243879894166971557262384795722032723084815648531156768884429855438919118977784068124682612085599988145495569944813823590158569610741882619978427356127485455637490661075296148501325204216246227127476012703924567423747248500219994339852904042349836272859190866873129348781248706470502367172774009889603949489086897541379654936212809838077387325118128633220946364712679861854923347542025754548266460148135444817500513985049327324088275694819355121893187461937882808782113433637650206292162347851300489233527645818131115141997039564407641499120777650623463046449386985579462867698094453556318238522820085748295883781866501952485754037747196649268969008628373349580442069829718608250057066515220890631601210553262001022146106153639360670538844273425299060401331958930973908098266241653055987123881782691832542349159010468958836870522485619904874683453306176908661819200612958946644257065056945788810767993090163688945088378114783663541247554940007886010122770469781633462868305989678015358583820051122530442220349392538438113694854749030038874557345052495987100277042790928854629610926165624963776417640950867353817480714061587425924472633585398036005730504428867495453924463056625502859276381055693933415378706621932123332005449508139708384502938369811571986531395563003038279294355652272950603745375378498359959135254856576941555333480913954535259648877461890713467963698126940300073630948650397487989196183372472380772622366781928263139374518211408258441006629430272493969875250726942198099818654985441348104587476531259163596247932940138415683317933868782456682596318149407914218132316616436422849218015283130707703969539391880645573215306431311217652354327092238903258178234709157834038705343082149668171291586791933155560387424822699975967470819852582495955846534190349391837104989140372323813201028444160672028717822142040051489794083984290447427358141565478344790664949694853571345000025163329177060911444230635808401835944924474220576512714580429498465770058822055636581141194109163266139616121133965766027091342304102013070840069296480884224177806560909969988329128104992767312682287879066687084643680393184295942556728036668469253856923417438670602174921532361789595600680411395736770680819053703148663716312683216954866933372951033495431050657329119446690113804944597455816826005271026549061503766640659768682039763148277373569999426423861922213110017482156791030113680240482539232356116513556127007806452858760175950993191995466186831900468370327111968179911017435413621330889358725327825917156084813705655074609687276932446199141278812408400600402934578958421500388176284014673743447572729198445125295283635532865112256576153740838468251115542219496198254003413505508660242245316070342821599046304629579415462091539631319867583333838024100735051044071561883520576595483439168239415314830955497338049991104963008507613242748831387780590950306700784505610762089616566020397014925665916508591845662515617574725818755907313296626008049615868627143428056894636700350237764483261223582346703144355415448938459431908651767602904780611718141799789243789266326176287685584745622483976223269514210018539006242042607911130544011434880137995461198774657673283493149590794022113223370582450520147449930181441805460579315481404853430318723713736439904717104039728455727325160293576643104613343370592471675272126516071940170879891842373471567418559263699219031113253654921257028656506015192946821743253945693923820904688611283063907393431733778031736861405889709856127378835969552166912145862001639934174316089223079698015322312561208691538282217712186098240950322341573547840303279870774171909062552315162840262267287537968132132596042840715044159350284421956619733330443608901934494496040826086630646449205902205444157724559257203843492625222678780380739819698930752212072201848002135470353286305228107045011141840034773390705560732536840205215954438901880153718365528715419226007323913291356359391663930032634697106923653405957701842873398439219129982412319601769905814906852965177157896496562292995329621536367164735384887822999905092604657584433094210784363141960640991006212179458469923865919394163587676893124952171037422416312085422789062224447120454372819542884885329509726657781037476786298675469228149062164342041982209025301607278571958478112877649175145869152336592636533858512632055354918204436168588088019879430432369299807718350462099202574265041383437444075168760654520649823252882906454256117637957004481384553565485612097424406495760208746181042832770590870775762858307423297810462536404199588449903731193149139999675587542669378556690012415936621664374529683575697248131767612326756282629435345566869287795940113854586090412153265853999301033759417657010925578310180676572299482318709972014234781625215212164129268672552138453558524303572667759993046753070368928346131029325078229831037946522892107379606468557591230773800622876672187942507220475504781108114428348221690793756829799484000303642591398340264122866675779205146316580120922619088892256112921160143468672007488593101503184920355021624098751283708084858024807051995553483395088535318190739926109793740333403666086191119960563041216323257815312355654561275750877824581208013861345474857137210517289121937873608333483664858309250857961441834545165511965620530851136819771675594712612780464667020652636389608751707222185400947093272265607072237507007847542626529947794058962960353387707261274700467924716873257326199115420283578758450360825665521129895763799017738450615345046379356977829595251531037075998833325118306261985276096704102551783598002669680613114647849888561635415094371739117192989443067517486755476848778913662048054611681028527676670935865548791389000492205539795819245146130941747608125552585192359530979596130004312971203098378104486827235606329499083277558065702982658112842095312776118886461077845674798229458704259667812717889755601581796415837739747100376504541995937382215462254790679074092507580322641660293439171999975418231039612577288780221507868928927911523853438709660486157320167619474987464656817528459986578611764671576309847516973366439148119895509242241056075042808702149775467860803534667336519144328097630664772679671246486656069661041251993561161651628255063062183677118998391920970262721395152912569934518070679733311241890255342255111870791479076650672481441103779258176083813188806602026792253281698172965536445180472022586716058507797992725114702477028323757152163471168473744755230510671807115710051014338315870454548122275715084288920256880319597315995266004361656385836471417571482658648663488803468184354673143771748096802159206510539973842639071894766655556616974920759763430046451999700343711372506757183192138915694141031590785791173886404699904929279022701969017164353868779904466946296048553463850918976805255758748862189974129045872492704930319450950684275256987655694887033964774265904927490707440460645761858553772145420905698048420351963746127989704076683057804247651397923564405051524667867724955118321080038341971821890027952396927848069495881456039481976892235760414894526984639887192523012725024521269930666410177143887743043027176034995308756298623622201103276752698102922355782833586060174645268462898757264430749765630578434060859629261860552864734411118433114479777468001697609082361001567916973661314177114112547619300398183241839815337851933374853209770601505860394084625795680421527789434356074104360497242759706339856409736008395709080319815455997412839385387899216572948527447487637919312676347910977959644291358630789814229139535316762290618638835411248910898761549521672088848380510218161580275329142758826276095720069567388532704081378511175090118333111742438171549470380628631995694783612128784727659193935846419794292826935304167011374755115244857013516003674723560842799823840849364431124091525512308537412046572191415621991218031842113383653500756775704641016084048404036242661480230709221690782238018965570767534870413811619207184741857517037826506825645473177249229691978139191142651599849956938611389977039675322848794148596778476234031345188870769305320131692102620163830508744552835629822932891761323935735212898711184704557632479278862507532654579255160282711113350802397683983498013336582000251126180236624101652069936672418321423942821166032421805918972099823700337160758206172713474356521795315434126194345046771802779575657878307227997666480206609760484450854392811171373341328795831634502701210925617294461997192475303976451314697085209083167030349442546281283056939915598000814021113872002745726881288752629261019154134458189184701601442291563880177610176155084661451702504454376669242639204433070366211293501395602351081096275657618647692003788033736608486074563105242453335003310365926471769772177948149444498243973644514601043986404808820892254954285140514670722531549521409124012004860424056207662436490873976923184625779701338248567621275018442078778801479067399182710659702646328781963281006120030134845150167001499183002168791140392576741353814920351156305966512446679277198978108558326242937236660066688995508232902371003180952050243708056126752713769557505840902348854486072856430469875446686556169617558822719946961704302782188998198151903987483905659498157290118193400441921351095918672019756593149810747474204677255401080947065148455866837923062960578925594074903228588672242018538037366977093836098146327619809903462877629300450633347999961501955067794848543506790960729142583087239429380574977905823380768418752211028811376421804730839975993551226082112835188171967433411996499125996209148419777830567749564927113099564855890550702872642635991196182028671240203632547938252216604869422419253099725360759052342893221575740230597718406103009736866641508378018767888479395616626951132563618527370811443623858889380044731906220522135045025068239855329170086710648046121880818605365183776609516567173104237269849013131860779624164349093139989535522487423194450586215823091631244467246975346556506766726313356664829092594209450259683934264300536919498073360033104149372192025411323406164485707245187848747240227560877576443374247125750147534808612671488668918856178220521634357126830315223231279881115768934699050367413747275242758492950634521872531260678816530349876447233654631765716611227151689018309922852825462481226675365372085131431974739172429505301760367539998313728994702071246907626185678390538308820930698967467867129104503588432593206916036704269697098155195037976884684711078184262365897787446302389404216717624532232755308801362652426189386443111503975089127396545831206724091479760718254628121818752937111113877850845001164693051266077189978069077474801894047764962834116450301042776066680352858773256354297774653272165942929532178983929651134988778745754545096363108118341505949370671645747883832152732386465920693379383368484829294642694366216931174533186954308903532885550251743890213672985805179642351124101329505385521431474860986848368101884049298194539179128337975207608601858288705978159681021579658324746946786242944607723743907479077937148376992646063769299882174142726131392611692520117256053655712590035620164275107560200227920559182369997593055069688108320386761953405695719628815476578396752240593701426952519492829209431794977542447631342861906789668251860035408911132825338524465014257293175650016222546874908557859328471268426978430341917380638979827693256310158608193990127308091609277648156235352850649962583167439216816651139027200694275601559542579600157736317275906272964046980772932590995323041460862214822992885128313472717506691574711485331727726036760493383845038315342113482011012775184242753877965781395552943370403999134160456854812647840487228194889595542854608444874789290830772264198993482635623922481462881200218402873269204340605134824559146081612134517917947750364629491180889021275934441209554415143584043975306371033914032340257426389110102162504690159550836037694947366891460504777225928840501975214007753762844910570387889921271244050375193083015730530286609332710144119017864005839907474134298429991859894141578955371241245179389565201601061208540712303854907027942793730917953986869975563862591540441050550968880549867865019922854675028959844437784021699277418429839305188520506414900909471503680988990832986608145510366452088677860718979531629406726384745341807852873147948160230294388388073356653698398690336672074019582533737102750125788413259730075542916497616974539691982625834919560213565308554347204760886171901636274976055912197221824429616066086822126934702611255417493603550999127637643734095983748423168180066913744671029855625221345946105976022853380865198641889162163031080464157577249776880201695533232024000016054742168928832881253236345765995516272272391521960672479210884483560871847674872177978882874140630694852431208359497678428534708757443063698756461306569947404374081903333285415972816543108341278490098596449639513989886023784289014455617265971477016106131468898055370149602795523718717245443729734158799239882521642976229567734718234579752847244923011629436903385521274961593105748833960565679407890873093637880330464265898927433424339339483774198835499157602993312310490676595965091118591295502681206501724520281295753855838104815191597807832891313001080659021119217946939697184761104917956235892382026031538716657309193620782981402926205642837777614824307062921767282162397953836656326521834089868962251415443439969686349778803920650529209524217789179485995679960635521234027723907494820384382178622124412472825017741005062582178510470424093803046858656892434447423863471401858165364291047042334965334686264076486893920745242473026441497599933894722245622403383048816989718374103863217676156979490339051800270158586560097410769664920154907644538074951687963366665042455974031161146863377747254402645580177575680112405759316336327686153689492140385219559794670925271881949063466989498114495156522192085970590339526529631124271684754512594810664449356046626025741379161110144614702861405044650308418668429596290124815908873706324036194670580000552180139508768770733192570527628785538542563335031732033359594942837583710897496453285050060870488423796324493672612891002111085486538486603194294228817393582342576102065606627548422613511701776670858609188286989582063720544974820670537359992130423841687210116958224687332631877363280447668738474686925834554837739673196945854167321316217378083299446790972490760734530909484702545034947157176670653468405165046136957756793835935073766529390540583137854783004276884877473617304767020276030150173516670825129997093511731936698538549946261905017570888493302759513558053024135057419456650216661750736765766192877968057390905857056053537315297305305064828740278274488191883704455298882924192469244460028438439526429612636491264151634451171373525787268542517304911732996284218503433773683608207275361468944166836858324149157903727604758802793738826896915808843753149398154913748653784521954724145961874840176805750434121206396168981995017713480436206496438921730683958414908615743026594344590718301237123471264437834577824281059413185574425437107387540363533772359065111717740135870247613320380981775379042101657867208536286722961720021382035782275670424085323588302675134508453131318570248945352050834389765775674315409680019407231947528381081006196430614477293804068874376772323740353975020177358054005925236845679592870032674979075985246029609828090382830729295340612768441186454274016599246735806724922411538088963169126003592915270671631119561175474709766965428508471222109994358552058185100374726059745789301572594620280036644238537112452734980142972756962865421935683112884878134076870641878751177566302494494941593372245544082140129713791292313672704599647468179711766141853471974327940304184272429424833326213067785553944855274314307728400755622496307287602498007291989123322447082296051573984287757089590200095555428757207243163903666435693247287811330072142375293170570860079868944913575037324825051588905674582108868184388150218293155124304958002744651657337023744928642410828385270042472610633547690040249407745963912389042970877451591049801438849578613837872759160636226404050694992123985103061104865327440621255374984622228419072877631877456753144021431268265846119511115832559497975254937116197742285237240784438236186017819641536178825971387157371238332213406211362071174464862157703882725802386427827813490289809999724763223823644544502874023375810196793692478212538743597701462393776493610024570935504446419051214129295093859529441729668584373524909625407509320675889101624752203465657325375525995492502211838599776817292059436045900474943338576652756376394859758775321008406689139609436861549191773584425208502719617403589525844045309406137258200239038927797599220350680789754092131555061950579421974916123872812273457069822824705086216063495221221171807772027749107259012992936553534702587956413715981713397415176991334241403478659246306062991991293942222068074776260375956392170881154292810390745132615944485914640220503977642029859758247801553281470636911970021673630755879166896195180792103223553739831218612768665510000996426400119194106605389407122705585530796137705483719403777406835557488551776439717005994391923857934923251127969134853872021156194393912265271730188193013845901427515466108220510739868687344269811109314095060038661530462535450166072924305182510886874598264918220415499887898257843316280030204469417483489489274894582487982467116265701817943778062729708432179594846520417237953165407381935052401990759408222265622261888187578584546596604648428954106042277271309793245280476919467401549570155882157010763908241360384047705419857723619503480792027455049286125753152625055016086986057108905438327301187996346315496553685130792411138131414374060565594073017191912899682920974449809071543093341129891674092318079634876151701869722397578499967908774892089946158925267536572533732304941885405294352862395775548855465915384936251230547750827931646685652835433319241777145327860060675320665260818907691546728005643143365675531418003321650087805046340402511227722574406940668387713652937403930444642083101749285257548223887114254216467779449210034838350871108093103779040461661008889293873053922405666007639057485210410417172563333489815357107692088173327636688064969474028368491257572255118700340287937159669576563165769086572081712726346176139042583298986830631565247245347502072691636336327323149006839398036394418799898087703174226656206821445471784499195320722627933551663177617412114383190897687673271456628953898146393734248778619664198266909282437416287250583631397284174944366843688965834610822994439254102240359862017600762181068779945450291956830388882433995129246789794839623630399980085292230281133265613985089004943759222629712677411798802790012668034615743139453885868013453030481790538709835328428577419809287705097103088125796429136968106170331040464392328438971805304589828742721985511587522620600923057068894404615429655132141121636464551194113043623503248487226980251435316886427387699151483591950102257337902514075218793648755068349194344740998702003373425359086948794327901349168557398412388656105338415214174317494500653955625674034302477156742563299301192812434907790175281119240055868849344502943677289430912054025002508642193656568957651646369802605044568541784584547226857553882161210771056282858879197928284738149018090441226040058398158180046107206141281184580450889474559141057052480916162313453734900952165500952855883759153302032313199996541830268971502516105349070781318474734513820928942244734519428867379884619816322432916064561490224436490039387636785778124063188259329242562032918935028579813446942034681039389424229122087029865580157288331849706953111904494693388460763061601409474657400324759471107287137748121111361626657302216171799070915374333773651345139466198696079979386344375133960331584992920766168598091593637764663079003204666502622797282033662422566087935892930092366073611788217003405455347308321868986052154565040270614019803134163267817825091815470875532754906792714142441430572221965877294549899549719079334654511741481926818422658580950626010942084888274124185534532816284142320997800006711701285061281832629872281328326333210690277814142267931338056927212404498332088396415217625956423385248367618127742740209753075280705113207315157315713907396165439075164004185185862992186922432931022295297298147506159207852180384418723248861300737188448758825902769373232558921343076218328671599291548089914431299157160692008418394301694723481187375985533084912937962163113247307981652212456004954972199863591350870741673485828045658114390103748659251094819200985034982623472359709870886726040155168047512693808687965675091451443474109057624259651561391214694576089413914206935369592210030111438490550533291691148242410162973675174411994560311200018280946970655476251781828494196780101268541283228240159233196361413927988507082655205841428934513390488912319752244226526957254753914120015705383871202219223948405406433898807404381949046283191924573220994356875675924203626441655524446912401264306914475853646737867174678276107508501703397175201353930350412698826786029368300280898252236862784735296896479398850872016909505749297117316660368124088954346403516298359635674202422923967125539439026026951318431254560848891275679349897552627578340961667063007475529216807988406584438230896665048528168181703567926678470055394791682503579838959978347072435320620454086692975928805660483634741466915173525357427059530245177143639294638424349469617669515862006868562271760327282599335957176280049738512557732290731382884576317871065691725558520596095241757167641666384062239111251620821437722327944670140990002484201012515383034103908617634675678893889295705725547911744771162975456234486667623563525063198634252378670468693611098191794523797336586701005746059958795983056667261190627292152023997814348111574486455536288530892337958151049434809764428396747433299694221450491322022634286366264185118345922934831769664175196179082104028612822857999107756498026871310063871619543656775264857752045613394531363692260713718326704479490527377216245651132914173340980207913955596686475529791308461295179823618544161851083607618151722673277461601757357765748919913411000842375655605473063848436134272420907946078281893572601553126968983355692231357810931498762715229411711281427071379192521226510369302357527102779722654695442053209125572272989293622317565900564934526442702348482022385411167386860002594927444445817869377658926814319106464769390560283930166648410637264586283054181361848297201130997454932782841733742368454518025833615855100548280043738454744078374071624926520542498324743375977565454235023911173328500463501755033510562361862242565803621811262183825278060025906057506686191676518332663481644780853028973566179446262083720000632006864877341366803723131124943007442027148988149457182907994633713803534279223824808419286740007379236496805404783454265104114715258691944592853627074315371546104506411784694673648512335451190297934620460278347047032866796180840223099692085752730797091294225872515853006341736214202128956052258008534444330109883405074489831405618136359650984066859997618450226277770427705215616568188408470715143165603687012933633370713028308997956909002088890872228656690989964499729814593786069191059990111121899620066352324646498789390179547025448339501144027088222991328271398516962353889321224040294165495799060114222090593765070160382325905738607193174509881659513941656549012651960333139781478562541982418159611990847505150160089410826421472273156412024867627395297115752534746073456374985991624213762107954834935975366334900864204779826202160442962719382171673485815127254997468140287121680618667304020291669983365852500413858332681986368517615434698556274271687442427726883842685396248349972709891096362462810687965161572948835894633426088864036668539797839443275508525132292828973672606141856474477406548794660957666242177893734968167281702703400450391599178594200193288693610184003591149634089836790936890769918340882622762475589300592763323447507558653342761815878441178601521164750634104102430616216186862536249541122086638297978551889966418832209207821691774303849292441744611215804729467547562579860610567736841903498537484979030957011167534734539504236273196961483045797529246687628816328282721102912472607360269128136702467508821632823854916929190713312084946435994164795815931536362874480695731937608185201358450828572708573350423532368576653287389466554392321402500025448385715549084702249066492954591503804139664413272885646941980309647910241919158422412929837235466604983804999647550039334040470283841101832773309155086319804206550340103778789359666989171311483658860077347161708300567343489140451417941120006512464066851027827099951759477338894501507752688860929388408061918699175858431135294733818457681850905733511910368722285370834614350016629223530688530429167828264252893799877045164174324946897666132458715232112468946779720323051154868394490081564662168842317735718178018178978929857764064853356743700998644147295200922829187278978289094431800240438321474334178777704461615716246145931710736874239912632713621577737871312130706934293540135905934223645853122796416755864756352772885481279759819542263860173892749649514803796986939729853383888824043660439451838622908318691262802641182065317610767345178259229558837991881972711794840986279345298162631113208719990087904526121102616033145252860226350946994663195910856428519190852051843546995085915406405316123938100391097591546139395679469421986387356802736825367215395757710293153518112306458384196146134089799074336890874322573189451884996897739471519725989284773930980013786175406851617926152526030641094969128712422726540615061363351242709866971984657185218209642006152691599261601578064414607747047261591268317095051262992251704282349173620784901964924947634739572760429477848470362079751941703308861939420369037559611287974068366819765689209363169154063842934351465038367331235487675816789638368085142496591762175639215214272527616361917942571229494165154302236393871456593148157249402635051865678580646961577435933417526942328074591072228988775462040564957757842713786434293697874566182009273618593852879812594001237408558156418489352419518613562242166261778973607670737326491503803180382008343232791086600627476726479230222332674048199050732393271327157130475294206606077371409346072984047758209080396324108440977510798402397448244026878787161236324254140994913286419068523184916193844475703745735714460096620087308708737801247134335754269742571865617397609807182361455129784072920381501174338117329933320659676939119045224404943185097827710861261441135679433331990039536523631930182513584609127067362668146443325579109731074282309227519070652608332963313444864206944994912332829148458960812557349227307065207759990778674429436473307896135805469450905846443479572624261804725836139278863326840324073683001441612840031285345395534863117583077102646587913875548859030919042545425411980803868910063179612008085572374792131396874927965606104776180519668315928076014298747468447675753218202225048524100235298534406597206074485282384185301173936395076718296329224642535916237484455536074346078324544620038533735689187024758369163547299117219077418724051416170133948955757647502455533066071468751845184782623422848163342560887012847158744772417430005984971084680010910985245294425588248618349145313959842753312427994827801792291872616179241025453589942218070983965429897204622295588374692956092377103494456644241420325121524798209358274365243513125012156893619154105971724447952459149453680166165241707233087027278876123032468845310952274920373893715628760542614008842364101564722796545913926227753065209970302500826471301134206529659418343951911775445205356276524743170204707881526465345564449015857326369570243238761482597003609133164870773448217827603417371039310152044184092703687270102926653401222660625899122921260981396741800221316817638167666124936614603490397425500948722699271964193191108476674523810572921067308349448339961408993338198218358112932883511778298433438452993527937673154860663562139313149319909413242051611079060314549693547108702009691182260972779783960060753668433981616844750643461218075969866439129806909390404165486416440555127124150756595729393271298003226259525768530641404886415824718559083614559185861389849619822008162890408589744607954799252150385304958998578179676456191514842794961764037564490606175862765920379503413618789249201125201419069184755595767324728522608578390289291802523199154055706531110520227094798176258959438819180863118006125618102653597085131814108302313869685381455206791226526291842431653606862927668479442786618795282525123532233627083705568366708768860547918380886001497428816244624361282415552301669241847398919174833547370138608249129820368699290878824902695164167487009458091318730531894503137734848881382731425816170159924638953634321548270944437787451275669115113274211048003398682412492234224844671729668039156566337103435287375470496066812890272075026846885745352584752065087691390508300541720515257069918063637938421931748908194511226088082911709653606658504041636952789481723909709610159703005800606009614953662966588859147376742749449127529244403676931047807770796085037218690971257679127674071213056053207314954986330994905626245616888106199077869090186847803677538582368118722127639622661199243978245300815813258776355658577823333657813288884092749883425772274387004155125937918891320324726058711957452857223286282214434059288430116772101026365136386039047304914040165437573944287286995353183643994585858167084393104778557233515652369334650608060253319931304903410566443285432841866050050055666030261308027129674020681112263589396031767361408487378618823743098089919087370186124496871173094392788726290577123867827090676160678202961393932563414730790167655525213361248817306342773360855640520518624500803024244143533776548961530197822785611238590499627817656856232872571373911388522452687863032387817063243114635434075130394614207173246557974950358555194437428832735841092781304934290391184071650459261933658945929327834656342042284188478183477594180879801477063591025276767274166093732343376550201872794945745621367866918906443179988403094545881417975585431258972531274418215977553745553991077517444850935232229016597210224530321441778698686029432695157087199161945053270560264418951648839701198306638616851302670929482686927207045674058588719830151843989779905934755323396187536096005511905291469587334947623269218184366808688736756218423989668133458840444913721906112144431506851981010201491764909395696413349592643741130405679378044275061011044162634559527010673708960951649654256015532415315747712676570049563975787788611451664174636283456285512408957711649332138226972883386281506242232442058635673323909678567011736989076710625472021957928488581572233624438801029241740583518558531615388549342698920275170152273312722833209829362064290725941563567170846196158094617810187187550934042509245939175392243667551255202833339176718452640120588893352231721440183613753858519427939975554483760561329800149360091127161330446592531792663652289892695871973985726081896159594660192444538486033677473478226396209485820693151581165339427861218537149293673264884479568900086715174232971797494042753580193131537414683098761460718903252364877464035004579614691531119518433384429043049497366540065775414405988612232080199191165281786685378761869171411089931357072461030419401122822238993076278947281108550582753227765013969450100827835990431099241598041203794064969240297361824694798240348570108303106267915040898890898914865185750064355585935995222401686008398468647601516691555995489430045979099853002868474783051809372877500999969663839726905976443614706997843014320715453412320258751772842311111686765300509806392215807419087032842502928381191328408204603096245827356605888507054561978098021525359446735072138458964384463465535698948925517742930760231816079592105973295212035998564142980378213051832625168811407239907810322822616944595765926728842768502643588804694996789994553222445172879636857268636745754856634452559345012594055838124424752811040381807917642771307581056575008483290466632503465402120610054731354941668788021772473523667739585512640360299259018485933233803548738158346474732380340844034172586573433336009426346153889667436580822684386687129795563654185176201345852452923979998289894265548990883356476699225885162322467613702380788808161123111243416015510604027441021886171043218223198786265849709396104020609344232412583722458516879702973931389252820112572666709483016665019953242592661526852277137572069567744810284160711985465315493863173390838882011470381041250097812995090073376484788810267754351509079503450917801455261685954744823308563919812759529374770554452669467603210700340929715474028655337197738773997108270786181250022375043092652100887110039622327230955750328244841055890338196089634936490561563681936834077992484292782099771317867308517909724136712292116267184400728864273950340961011424300919991339225015544299098429777066879330121859998310492197536137320232872363963685363402748667729495976519561077895022715140179583159799562131585491945873955201449049307405289076251633245172362591908373538766456484700801665935615226674966334268688895845406061851742661103253600560381167291207169962010699486710421435496594093499417411764567947793765765449241414071593513730923250459875258200124393729402228870363554607165230791861799842099565634184692245987580094644547396976716355456788047657870224018171567443005234866683441976086884349489701008452252626085467691761772869396211850770586078863105401109661326843159797255005338808885359553423050154279445954580885970855657643140063915990820350324946822840680582746436496306848019985293924018004996784871922079774725834049103231954074852587409431677026395541978934554834647893437813372131208461422042508892172865307048229513041903982967152393370074991174573045377733487869410680418870509535831921484975025838282222081233397061848569333637876698951965368438604956387701350594329219959130973219028427700186744709458248043692217746136280211465113366876771168465689621368413128699275883480726296593936838444036707458697019985007687635400244043193626114674978319961953641606942166250128738335564023047128212803905822925397745002005384483586814933505725850118685826220192169706868949136658199293102780828036188529181225720867167745377495360828344077034286270471910279642323359972128028206753250060090841622865155963572247401500481212832835965365162036586271925925564035725198007591610604702742380989322435487679893806714499399686798737387108409178121653960953467020672493645600403968871632260091411393084181219803659731592205993811240192051780441120342535193037619743621308481207819510019867998196013637882407699509778882183173894639426694545446239471124828025282606006897709482074437970314103153271567926811034143208135785802925496611117409044420265533339118821581026942254015689270859272289998372919615584398179681695046504352840338968196057875700369077691850799793815295372946556337252701442580701882352467179967086854828862947319263630862804414240089061984914914184673407001027899289920971847624417350080888474799627159875095735097063813325770668130239602041794343047640809874457376995295256841839407906896841729689867880823529504695950595085412803099974287689743499637769275570132282586414555364632089315624290041321921904938200733027959799734525596560451739183486414500132622212881427315204370603143714567248437007864929206720373102163534581198826186915327122276775818870971253714948070551445043695072165282964005555983511248234615158610088509884922087302568168164533225418744211283540358674684468806969392398600104923353513003082144526013101636527075784906937588726228690260874850635390896451404923751307759477477925728018953167766360585081732487821599015084379782550911256088752189228189640374517347262077499457344977013499837346181465804424373441589999989187096519402857709826863617995573405591930374707486682712237642851415152026214598226965828929274673684109121965309518402337596647976322076050404713208463141846381797394095910438655620272445389123294207758404364567861025891033646188956382504382069354244781181921537241893607836315750000836349706958026388139518966494881259085439626124990521428774595022539267541902794888338267412728960611618385169148068271065919439934286785956727186343338725415451052383732547686103149168820002935660498833738146401956776713181100174365720883596939126915111849110056056115820933631742731206325248568487169647791720465278411593396718515795264290968662499396324839130480923267985848606295165000547171656183009964208895762810836148848055888120610216267333177951576720391119800522074346395193715426310230076962381505250567972171684710295379023115667970086333049050163982337193274969367841740718054333023458353758592619515595058343668690890458342925847391460066363636569550508906308159014563736488810892542151434491134221368842316023851020449902202636415196532409965590387080413986899739273463466987623779857416360316778434631849358958426503312936819406131793062148661146855021630297953501635254997857449030430125686622251184233886618495048756738034909883811195478187184596714238084156863988231007911318552763995986904787088384274515456107108866186938794469965158121640226487445980444596502356591298373647885996206276467918586719423190313490110080118528786248879830010831865431857673824639543465038345302095990501187521499607997674101054908629891400309251957153042166376118252899452701799969555048410003127256111752931105364710400318670098611257587620754140210529321077903547226433389510540302874960690008347985081598035320821818518182023148566590567246538142139241542638873398929935243076249009885502347774705260732784557705089239997131942023917263551581823894810362863417966166462448856532219403784964090325788942178177814016293784776603107851190429574209598169272019044343777513465548639926608391908357788355155132739409426531048024774739699709665468946245311301173353940675175047280363183605340102224020947570442381052174267792624855719636460637249382685824579916793717650526494128131691214857406393087772336527793669958089180991053166678207214845304576837952150919806240053968661544233020146585908472613067638160198031545489397722387734783650973121176529881099605555881206174266495998704232981212022582751093439766674109618948801812144494070154687716885602700396894063145439382810367657798771521224719307058349942786154154648012821701307200757273620040719150153414223734814835519949023092548514614785938195012619658381088498663162010016631581952510374830832825833685544796215764045721835502393111699097368991958138716189481163235368239419015018991034792940572101799130395727856078519715382588541075556314973288624376181599761070771604486424540547640940985902874603895688077587714570146768854447412405378670921134315387449211967797901370640252251592982595967542786694831726722898600520786147189598708625939221227082069018972690896283153584634501638749669667902066969404883396399788810342818008613874947774805016081088851784304910216046637544113777857018637665142313410428318051630918919378149173072605370252374844815384687780238549261317388714556509973521893752778727959986070381998682138158164563834857697765150575250075223252947200901516217561856098800188569712060237681417609056930811598458159696077087359442559163521784058780681623629127703006337151935623499737793560719945869737863276535042916537059393490558491234085345428614075341512269994745041618902054525461131871952742152149888741682248414818833765636993806386960762090148700191939227977796934832810766307387948735798632765216511346432602182784505732054341830449972784274168348040181619749674429710969388696464146586652229098786691761413740152864652886514760524065145504252003344280735395963121029760027154522180807991013520955512931218811992555218718338027199488126635143452912562103027327984172587593704132746427931072247081684768967196230342344768040227539718304970964311849535887697311563667106049029148806334909329085859997503359776955802376338474855181301292026179760879956380455878747027017566666623660803934883433263523619379128735232449429317805650294695262046153674592697214192268591330511636732113865366095485684660115912985880637190756924177934232026053537443807468149741181801988762397656794092421461950741675351728817115949357829272976219947625497340116374924417198958343254207600659383886200170768737789987813702716022598788361186527661310219162551194734565913545386442590022806985758611809445296142132657095272165397339217455992071293185335794084944602356269248031194981294511847933764539339574869679913739184320283277042249639466161143860390199993912936573842767800100819390818600721191655575587784950351286152452915923514229339963318658924457320550035322791594613772901802439606934267341997973272970473376241742966219289201288263512399255291288197071617308686587532913436310892103034251611318731873576236414627570167762506243591795024101715653411106037940498815072450910285812721377303263446366100734932370410008683890749822392770741379294712268678795403651541554745537122037873591638623710816305184636375887078624845328777820022567756155348957475970502520770207302901336363215269488615794140048138887833963302883008505848288789623391529146506437649604269524956719733379894351848640913718854847413875881977991040050725890835350248563268338782736010231791026487584804578603112660087763538592351392755640997964422288517265561841676973476084497062743821057406766288251650726071296121745880871094506629066418946986600524650323753918621309130189201218803009351882799786589653341346402230571698799412059768166390075670637292629033536583349842636635203508266701626092867138790051651042759539217933670033583003490297713996745094189481352105877932987982118244912559022146527880864495548752582138969972716607548132407371493192748438689409340862835929015289174798811168780111065388172608824705124381723688574345058534130682473617489502804205180842262490030055348489911766594255212343306418595509503667771377849342491155657739020835310254133475630393415586453674319490208278570937009062209636214710620604140370272744667570969420768290494057536224624176076691629234581705766113100459294641329795767378971345856369590024929296200091343028364823470021991453873935884232168882495122635721198017134091077280437817838608407387180427530689141629808799294894242944393900684078113180742696959145306123032299635381634276864577110348670365662401970071228420353825123972698976959165151924227009402276362492613281034296219045573088789560476893724382450401965925629827685771152014329236443011497984020654166013113522717939670536630948883890487836847169445764490316998962492716081751698376571461847562035796111293266418249515708952971613791622935939048248414649474153011713562844549525707870271672723999036572687004854893977258554190731490484539436966579016244823153305952842552672959396583687371389972686309438506116907981687989298651652940698600517383852495377805871659700937123307443513591860330265629408364203711504254811240427818282937133582174526075877524718999378633918373969672615554845984799893147156167310037819268614422517762858863220050946157569970604224316036492988899961336271377080827218751096138923011038916695212859156099898520615432521650413806398950783439899197647962938491197391946054580307235227612540338602600364277693634845442362430249344165536569668969118535996797791210643791065281596428114575835509458644979931808300037470146630756351622031682100640504689579958259762394583381775459170008267545073983126037275453300690032351097579516306659033537712947950480835200054393729432794841915928737418673976583364298543128842409102008599372887926960439655831070881689626448955359008942083288905091331133433642480066912618410345046731990855925568574443884779076681280950864820169409935480282041613173862468430435305461572400830619857354158484471951716176306355694632145164840527068125027505820702328687456273629212657118084173418875258573668155882556923058417326812389858848548969032962192042816150262541548148797464517521413202064646492242612522097936866861241415499432043340613048542784907480026504751266123957709795582265106948876029452561397156492151701612035015934733279986837834532645032780261709532060743917430323326188321980249151333188120365779013794108574922657445253074980104824032543797586739987591402965917258836537344612790808328745543895447440520542166886750623800485780525100383221718180421169150948419469721945367887025483471417541263577676519847721936890716749382890417222535877041541188307052477489917904408154169554230380381757836117293801449736167738050198962810178800258200303748572772028498876016957623785114118542024294277565328725825369447350613600895535825525762332369194374798401174984582846439681175443863936291367205748176583340925723500065015890618670125172738623316421294382683765199484362368265729218717370806530416499368074023131164791607033454526078675717029910436351708192742627095387006784731973298189796487885709239959830503930607267703105422719912860854652600098753423899511343208186373745778596697365530980952971815370054778220105612167481552901884683520299483057614843951497198886291376792245130606388920019596787593531118580271380252799669132056733569715239608199973276291294553141243737961145517684948648588124392206947534133315537364742087307057264549022189401240690636863566597058225498258560082684007852853468101627182590375341285627677805401858315872745681822419551036708397215074302818541939884778122241048533660984276804386299370526907130375210541183718472709595540888526820069827000132526269894339037145644880466674457860835125922792935264792322632884268620492705683899441788672892868159924351395264770537002502398698896620793153716110816563276532257483017961177103314453866006492874961582761625774465179774554212173151187436780452242090707472909822974529868163304622660037772911824216810053245220128318317548879771946630181992304000367938634701389729961743341922303602896260364770150618571026118485327272511119224405991352457433418206330155361964511010662595160078519680394476731856362946248758297320830980257713810548278971268632491599505426600641322731785476103572615458177772039258491370704293422364033443914270157079843367101798291706294870967874688309976277572784945969468823991987165183136175533585650931112938329268549447526685052110210654521441392740346083993311273983152769340603920223874799732444615163847351017236740684716688683169443563233367376798398947881563284364662929663462158915835564883247280434061606872987682759330006130200542104774090459593380113096723148414959123337860433041837398354408774244450706482515125119318361940215653327477443969554679686114143152641605775657481970450154495736058948964351873597724691448660730504731072904141256953265920653788143518575916521502876381724440301029434393580436793505444146518908791449697600602135748669136741191414368466426074407013079229890956959801445543517398954667697329428345307378855583411514333563434645118815208415076304363803996016594044156867556080119829353572798866823839160075179026645827456397432320276272868434576092421098978835232347858670260809387777077000965206727068755874063690395311112692424459933794543984667754917606712690167764348493132471917393288457493287960678190432991287732808525774920753109882253209585732432113889802260931418558145565582633227777116774943351718739818910724622849681034672192692128974503118828150794431200521264023025616172368987140895273795845591115736187255793284216117533596572562803689956979831009963204743866917948582956496718135589404173707947350299762788906490507606456844115313311493517932222941993912045711229805289872171555257715498490781437059082428202357133668542257827862879073344561866203493022817558335838052515048843397685361981913333527254296122251073714910981969075840084357536244286427796952932442075165026322459545021098145387993614292446355296701635877650055487061878952275547966079576430667950668489280988908762940949490027308275128297317541451353276284916109788129711240304026782463818841782876636812643609481433044913496358503839349055384424753823526131721934813930471195418300016584717566605579945766126695963850167154512771073166643662495514468937201906051304386468644411675597482538669282742462641365591731974031561058301815962112144980669417425803101768956295818895277869227293856020738537215724754014301255569446558374735907016670541087030129209339321350588171173796002949155252385548810751882022494605788671726755343014398047753092767158664154087001087645347016147037898608133736788627494044799320709311115202438273284748590621450674052543518996327708537742063461276778100096769747879185681884558031623186248311510453467348184438102862280623736636315051543499130979177153425872005364645134197066779747189787345746053716265872737022951179028786766639272329322809556147164577930391302414480893614757299591455587993097930046964873926151349851156374907251529012395542859388345565323481655384845407928188792159558333605990104185337382840874703722972853955250251132989143253788131223478004652868302206268635931032682375635494569487862161316908545259889033740342391284368069115273002244958904514427544441577706975935228721451502544295249302457167272128141413877755792343118931227912255270667086471666470407968332904721198583471700064102757893725609817904152084022646288866213549566161798914826442390775376173894209551335851779870941150202185652233846593013480931151845038289881873170985242260076919612764059606976880709861756790444251804105300952680497909874399700854103147585514660423116846044398485914038467332129949922825846681054326999033085055962680141038834762731110308113901702268625645681917497739896169544376265181850156267788995897369537694010256210124986282482184431410191933610216857442141475930860539805161496658272828498843905327264337994036381223886887614390903663493455859549950895915432165180827908000561914710240229327640359145156305675212743670947196524996778971744058588396872807134175554563727953064074942733140524909373649294104077111546824997809482021436572021821767475696175666680312125522404805920285949645688311325251883665517578065244444425304502425377757069310458057152913723739178679988748549577027809659689795133048807776051119796522107752161828303517393068350671667615525660636979647032211109298867845205045136237475499700168624217206402583183758884770578417826997000063513215838091008804428906089441728353189138238802177048409981175154415441989153268519171304851526597671213404630591518459844578783020848619383050299934835171776355800293186091575327432260018970759787515907056211506934446978714998383661804761472620523782376030843698631286188333829594245955934769748466970322573699867918622196764381878433388913371264184634950214985522887498398335986190314216117724296180817525390803419132692027020348074484814125153817397096415886975652765636937748060537167320936882816052942430893716429669600295229908784850178060756691623862489316072639937431609385401979434543683285535178310092672102576111094330080131888277516232046855417719330061987117390305202789944283013068874966711122367028077077754965562027481992330007176142681252215406123602960366449443288373653472837415695581331756141593876200419747454539316981042113914277154129605591841236479847339662705244742594231897034724914561610498104577620037152494878421130936865887371587614894161047081293610862367252511622430684794955526221191831942543690530868924079696650985207828066999187303783175166117061008663272710251265451796802724180211104568257680931777293289018572503800116014808587875573803898844428879470024892103276778560578386081029174263053397972198755587346619350351006448219416747513661745834780195461514057806425063524022226630865412245023386400138054416105307814047848394792317904118265164524080680923381643637047142934747105757133267213260461559585188917402792561773888061466409836060863487544554201803253227770066415432455541441218714038728133237390392360439017202400589329856886248669051471649650552073515780265135142468536776414084497519851625059861128735343347211998363384409910502472602229897942745284591157303144334095374038075530666434528545481581930738514166697664320172490096815533891156377839781148430034069577886962970172181888723716933455118416269249449109051598377970118815342363939795477183205830262558385424517196232875387001710533163605210301531059489523641002611721763819395470321341120439022290022469280873647768499034081916251306979908244885730318139807279569681385756806783132539817668760000383542652780114694466720023701925136147781459165438437276370750234522992019963873026133295359978466630854463511495074778370541166213766610952995446473011011751414498947692563164734919027168996615020894080941077301956310924063680456102691494990829168388393367986619485287367077476229606265981504326193314926709568659432073379583394257930721771628794228268332676794336625554422200463331830147071603170544576576310686968650645321229357708339512182566088885711239284901257501144351403658153498919665864026619731452881394431359641705143194402815443486275200694058931468342402959368028301610609791047250834018675442198743697736839677081443354407910943317541861961329707914739353427281649808006900575491664606876648070970695739633235770941044641860354930474707169212656924019053011919263301013365173786536690301943621193683561767267921098927612507889904497600769521813797646177943346874777369700456597422797952710290195426242819417998704630578469713603672917564329208211667178162792552743595456968841348539585103748022195657063216033672177743214877575400609231219154164992170054199667890142721085971523808731640957276698454862762661940927991402225764143840862033391072762350046603759759111898596618360232615094632421845234431517387955000431228892263715721908515350151090079838921837067807691012301891006341155083089127705709237400984079061364651757519532639402882846809166655766957566227648443259209739889296002898748332413335677735654617173118223411011967109663438025455745227121569941099557782963956833057998791644766270039241215640979111439694882027561255226686550407711171917834680922544971374475592694509609154719310303124120506203851409655168740734173352370272074188135408904730602426190229399023145351198654674600782899605080464634616667916992016237217544689980580619306564974833417056545235274814362957188194390778918594305666380964053479707090145363690744560262352695202592068758000960738711644163856381111966109436233959304856272700190925944061602990530430668484251777484765553209221016179505703007486902712621497520285056325725814234385498778853783842901152619549011825550815825734704306324199922751815622773448556968869515241690833312532739996779068760132936210389657844685661245657152507907628013436887521568718319106791312725007958400542202152343452946128103198392571844509355337383337022729039407431366849098268685646331714122285418403224438539638482816023505291442887168404972855767475300023872173975362817329502017492747998854769283804007993380486219836221060234224031898833138706922697469608251039618254778111204968091293488184080892907914592551901633499295206599653093400102055224170301656753037256367183294627425438582058774125360980107800690626637998169580340622582193016454327123538715164066657672331967476103082915925311061420357665785882732175648964006946473578670137934208191399398886852933680644866691810759510338389701874274082858069614717356878419916850801084666211934727143054303754671684693032217060637788943153544192001930058135987940953923736857180539232590552356223739866250547827626637992878793742279577533538932731546481770235326380942233194945359693593220886254274376424526991957195840790653495381392392900349225417502296137430656167437332670372587904800901589550156953261372990888593165886435294543625642386888332641298784510209869665207137493946415066196391718109095267885242839776257247910639678696303884895966885408095458059608214521380704800944987027423922461207827896599998611727755055949143959034099932684574803015069162937539439157621738436942942507466528401587877990683646607655357480974013669707836227094209765943305525630493930289745651557894110748191632113619702829819056985962200959759337849468961851619048217777348550079108401806844170927068291423327639094650944029014551640420604947993914496394427857833294340976535880938388709973734570911264332803088420503593947415215353967669379551480028307965776853433985632070874844986571030810189505735853525227309673258475954630055127793217865738849675233438904997335156044657221818889010639776095783759437975087778655739982854951236873306501897323047978068449806338259017713129335347519106337489179757093586202095122434536944501236758571376641910327229949912173272819078945470937550140688753608235788264300928727647570618035950459975647209080782499887582179835978619320473991934813970201674859804685919441399066423743608983057830950751531322760737147333083877055084306115553162245990585365753985937838691187312270861192191694655694971981664490124430822530140609872735552192623285004929665596177328948406629526345000441863354207453870471489850605604912561964358713428644469245902642243775986873694749117255817454977619683809838253009744851045844857301640253532975716769227152179065001390388780678304570288525841844632638985981760333511228145407890175675904825493247991624984766762906855833737930388125466154261899889364451251831422676473073891774206977380781295425109096469629951909592396782308489626734958384396820496000429243572555963917321628392257851794322448314540442700231094638148573850242464855103521118341369601788239270987170498169631283785915428251569479581452254689602535489122829421892450567218344150793372558665094895265309649235988355013671160721535387710235524875852745354235909632442975001083537190227315213334490883867963462302252168982897110407215633798968923547394227093530350586438585466301415953103956680998809439872805720427329650601260454684699101833729677130186396179535455886707324452657255372535765138980517795703841622334371797801170248971726986943207328396920488451433200004992899212698764848307539053144153527517855778872981836502963707239686249720637756083644390450520637306251129708799355937891167327287377164374473034507888033028381759936613678932581766798159737184412753973980054312014805183552992827698211943161975150856930473058080636811629379713569103357372662375310285129074789609818496300455513914123010123411407923948929457448562785352504522230712207340009787696680781156346739273922235677811518785768746044544898862967022246931830049885333716135763956441447099088021532267903746809494031271427492473779252429456861204071666800124812222199031163404239908206069425000516061496027240097111289378992203023562838259035947544284426612723165660477066682047756399790628243825706266905441659225205002690328301123295699815927293836147062348660506200940854730130365814667430183419399266028574306010128042616354126986744030045219760549881110673805769899767472990364955214243864423226308927528143511263947253220147501681724767619020498977596411779517793245219606717086025562075652328534426128930386613690110610373255082718031628194125189052949077086826006831920572372689137846753050398205528428754058010003398635751662116160804770032270042071729078898687782401876624417646069095327870789609126583451785415100277185675349453826618429613040114531046838752586225992226500317850150931647086697933633396729080802556479786789290258258055785828159676753795529939526873756963344798257525770652415236125519309022187744254114314194574075672291172768551626085420214992247537159985771750313923621424707154980846952994692726181014660750957947399756187246303147701680208345208495528989184822397105737047768284934215978252033271294453396006331073732878951564771892365834412915003202661970912103864249830263380190176763641535045588989831325030627528877246953980119329246811710883923619698042259760113041659662909780212282481117207052022618745542452921099855912461593968509703106946979948791069977580241185555473510647552989587714630704440928393824679095795831403066897999057855719915459286801563408322819285138332487449203972975214110389496220403814313964688279849708959678428950578968697925585891125360250948313481696258154263582215190771940685117421490974290223937721123491323265548270857222101317319767964940371119353989405044405982989666529112571132313114269849886007944354746600912583150564228224996083714905394164272487355254582484697726093634241979557722572410150662801622570497961003791631314668406469941128576271156081471187242100014695314965509342030138840138143200504467967519327719269072585133740369914087593812971042809353779596545091940872156651630290750206149115909679618289353231831257789860217894407425960519422984227883870801378541648965713768270614947230890114636259199932467803784330990007332467132321253275512284460756095759279681235180609727415402754497885168183937661134178863453323116384817345682766836072946553033457102523466086950605316335126605056725600101642145497952054579930441401681340012737277311632727736327626687555923044723904764636966636423363017429879544373504478253671785759632767709363296074889623118433552602092484722787999043736950052678659602388101286078336022813725154253324634580979576550892918932915934314497749675584346839472534503239639276168340874469091402201231541345823476935588617517339352348104812095793019771241986732034492834407245364698857256393997171821572470885995358159438416976608022029514196446586196639333496719272859440724697688202179096135376169806033370258089086692298204005067139384323073614890941662264553892164995568913159507255727221773195955748456124340675154750108594615470633724626190454441392680595156444493875202481097302470131364601910033208243721361974118837055930732548415815386142006847929516088731733036312038746980807869790687770844329450251509248063650974512140002425751400019286459192700301184095006679744663498969668030817821914003076442036436963373391064694924025076553363353639811437021209662122191626577121961107353110488521251989919987821143272581795921264890781284018846844504278619059582405484855979007833704281046596991217050622176437447138452785685492860896147018375402959827693565465368719856669198637502050223177432412230237341732226164954919618565939373692157157992664129216325472171542090639471219197169315203035083232554245545323377684342022231816151785383331366669267327245451089419536861222239586671039045226461212819482046142643376337957115061808462932046108627924848289048716230549502549589067216616134137980050237645717591373999649837805403547369768013650549017054303668013548682713797622470972997738920098938543696722829922888219015804083453631939836322149127429867170805290014711631233266602344713328762904797843905770684098062057170917017531213720063356604494565407277962257744553137574917331560368276299988963066757080164550503637783260636897701605559163514011352713325965322881406055268867254579068497829821424411404503580404367201053563946834338690591956574735188018167205033865864313796306648514731457637811363714648422832775406356168120497660802571632845242166429067928746357394941525605722651620624681248118322009861156656216517517004766871010638290594276691526245868547582894612744512362957715295539700617519046871858089208096019212272874901910555144337525521408152993945872310773267072871703403310278883829963461427832427640257798453353840444662885694592465938037790443312656221157364663819609899620754168840027767348978175751124736912030554684422110412240231508869026333058092292189474721203255797979881470699860764838966152759155073984353613763441386302232567562935224318878234042252802352322091890529454968035244969115235735385780671026806403644965093076517115999352987406695939485021113191847323449050433280370760580683028354004155608614442731069416547362887734929998999410376635968562269820256730724613183501784358074770929662094250658823264213581855444120347220196715638663276000720422330063038115808570360602590467682627712541595417345258839166696799612637225920458470024843280313912299703275093502723238313453721756756264492565743126046877674778732293653188837861328528384168253056969862436091155527383941530893709419339874741598714748989078923436315678874640636950695407937722602630742769792499763370102018012572631957740665299173795392879607178179204220031290274218071625945345674133486269192140952669223651057167288781166933560801934102978088268501951667297807439251103381818116732745009779763197040937174200531003694485159756011464160884233913888318066223808661940424683864049400434768273891359154445130169052608328394151336242752440418837448787693928441628914452541387213564399765817179263671513701929220119643960915325678878415877530358715260018085789854171959878076040368694798812188534899311132377261589362291834144563116294174947694494991480565315163490399985326372717304076028760370506820517866169460007594439528200181800123238290936061051637229663919297386968821647686115968718587251348455266167740758321667188371531194016399413595682287860616959360564912200082528372235117940861611160561789231674882285647426675748311467426110827318278389039561622603061614402283580399150985914963130945508331113502183863527126311210195366331029933589771288085710784808129477054651747033450379979199718224595801467336313427532176951943697325905151259483209956054664217332615816615007125460503994476460002066799663496988905569142498504532695878086477601869232465537351731468248702045529721808805121946813240333897040368164592296795345876912579511298084815537625842617527606645130204932631763867050582089663055499447919377230408496358133341520652911993686716031616176008571183481604834167703049243112906038270199602479906486362624389776327320262504673448585432324399928607035618316067277660379914268674271788524991054416478996211321018386729977446039846760762587901831086549844457966556151228680371884204454928916924961614974136882728079673315432193114800046716204963494639592746225689816219173970617518184865692357036072278360467575492346793679034312890929044905242982757156825737164519303206323822151625309094585572847506911284054676402733539050139431980006800942904210291472282642810103208276496621453703938170503285654173844929578270030146428269273584447873666264657861542452690681377541074427444739465395210307288681233796331401771647130826029673146290977544530745274641189707284488500590956784332837715726236878429902956798627773690729494728048696480949491696789476400953738577056344599118219785654080702247787167324984557074806008274024200152548642178932400279656997475383258479304393569852651791129629294637405230322819551206554077094152472279811124569732948538669676271939327665214485921587754889224083772294838959646165830730537184139215039311172129698617447353733450216796454644770523434509800343471044940443106398851782370667720945497799113950697948179785001846850189241148596948103679888028043086960019304082355070534727181832840128251037078950298638433588474291085874536256643179772738282359706680619594555396798842567092328851972146591711525855761022478927755615973864688398597948078118774253873710689969590871779283387086322330641170504582082824492124523461684660293384362477167510650035833142117953145657405261127016850138711817036455857923287815801802866710646101267812435579331184538134745610588279700688207875500453593350082859588855956494045597805114159266820053068686498213704313581531132537538432275343598474315998356814564213509735202238886159747233081846220432485922598417873887555421822763172218270796376372201799255754011150662346440705193914304723044506646692478442538966887933931760135166899833700532351416485482675510537809507872718535740447085343486432847249029890994346663188742556050078833659849676362863637221366963067362994005740933461968951775433177340903372695172329144528435786429103151397701916771565187247869639658968598896622323768336874607605588930629628416006353388717341443153651222055930279193940678351830751785433856151526064683955654691479728701998325300014155952427250064734981961990261049275073099875548850237308892679912341431267352296071738362225901284715346680211883054254568863402704234518016573596682258736430725276945280037024281008706083182445421357478124592788347719450622032756425841074926410837412855414424504678084441947152600017909206284362409250455555411237365821787966735452639822986976680387923931858657282417522560643889975459328998001806450143792011678704645395900430183217788613985822089071429425499726456866231724054926800287898251475389787114093094221037329466205177122948677735655590250714806456553647894456629885588719955702265450568228354088295525075347086934561890045869175819868321550290368236639262594851329813902847226245847100448122972522214045269037280695267040450606807162643359801505172074109821942590828045718250991688603937852131972606243604888736666405976795857710868036997044052844135965101529324969324861983625847040571705703465563181466242485519281867378327275462783737683255610465721129455165087492209421963741886520279855623286953847117022622867854323348326428695345692293097853878937618988734101081567893270912703977134891838557368107471780247937323639346295654728270211061054295393282780997148342495414508534871141901335833006696526434395411926893922638520310577073190478109535438258445296283218528168161962189080720199630193179801109019475426607033206045411565046953150362607488604178416481616424441671854493191437588481148207254280376528870638006513132063016315265759107040649106471560185506962497767298232427422698173474307451286439376515370437129780170002167587926211418332663858919927396887916916985622307342055607171823602385702926513087062200940208876003777084020987238904229038395147456173005641684876562752705717640369089280518444164420543718289670849764177656199250646382285895035488362375198847299888378644657052761276163185809481871338407140485467904537969835857912798851857114045784163189784373894273474918624752108107307119047333968344332804863074237487533816735157372736033860061739362635212719878816940394774303095551477672171008495830203914849317655118243224508880348565739755607882288631588579921050575649795469958860652676540926077769238152496527360303316392813359662402292090302007651927591267043845315489067061557070973471259463683255794500336999085868167153420828737467768137288222516551948861509846955615156159048143667265173768432889093988088502859889702486992332568271137355133244975164327639515451165195468200141708015574245909014018066189344738204661044050536024588726680546452247786599186383369457505029310555613932612027170238473586824920886570978696972825378398006768602035673418620031652245996439412384096514573074418043883949694444231960501104381361847827803173339525226806381215619097796453377999696436343242378126498488202784416106516563668537997375139839049113309264162480432539647465420660158598861357129506371939157443632562936678674385089030536599263293561695284851095012683261585110753485850490126291950571209084524970377665512247747492785315736177023529487510806543505218221321928405302879811830942122967911625201729785626240050957498866547725881000585002146760873186594237732988189227584238787847741730197038775923858448803274839649765302876192653062776048384134484490779562477908656319510096912939065520034177444094468295840238481384627812123156136028170035389533751061161030853448553044664180731276007625511919157219888119082604420577053097299622154393485930843208531897402019179151942200532907087850221877049263411141913778815289748038185721645796683173557489765237140624971304054517591859711505110646978487510198480952167397084879874751450643136982077320464782608458275421643277198756300657346964516511235001608614099062769029336006814121839136093730004163827462045619703014602823492290534467148203635024327542362288870287144408367425033433058693609700844530697764249046645957860799575980098203232418211673260279068377333209799357920277484876860163942796132404937698615945230295257633900051729919630215226822801487466604462397717023150589422665757382002778400484559084199058019124382084699236540566024416973104428933372061482536309016370193764512240263463697269957300897037676277908335873228658543088585433814425348837555358262471400490676989557259901571655355232988628412636949975730404062328230965450288245571838859143155364659649885620569480831232434689798988968863665701825005847508722332213756839056597008495847043625473663617693923890518981937592229440059214822543988765418509753277256912848064237040200062885772270050428716142896933935003393411718811701817802015441728700974634947022835247642311416764429989504355222035322466793121939164465695011751391344176875532782973990331274969499675222576697404065526385188344720855628811996735492364548995371329797624977935525290670791255531034347309490450665342643315667917495446949035290601878936461866387903225891433393699680673797201964593736789244480134515949485852036601504444549560376307114841101638170389429376708272679410243927174701059672252685319312615250593466275507805512345745863813272959253643735971781200542082677871801046105742532598554045086866250693919271224193269693290679028012990583197251905044562401428684475652547507465458131913832843574326775954909504127128314780652523452588860626335333256179112200278027272488739436645676844548894712895861980163379639092291846292157784797351440910833337091618805900364073846983355886158130116843273873106633851164982348023675027596286961059192100729617269464772932822683866367229412912907446225846062302140260024695918311622309841303873993306615591138324798252667186200909307573603694266077272129546734013567581054417793814518129061477601488149138494177330350701057835508499656482095518688941119686852900486314205151763026149697893301339051483307256016797419196922235371960402978692896155735662028022697786783909974511097307091907834281909468575280973401346571672780370980067552425979395068708348488968069499128808614333246662153032641909885542950072622536052436474569248200142587060151944654668503289804380822756615242491771283054538448159644995305987022634192629634678254544147154715197066568982627750813597439199057240103981408772353231006166331753891746816585448957863376899862505494069714057603659512058365644594621326996160464868506552416883895151907909757273418074364327380698519132587129696871553343579666464602500873284252715308787076084331071823097757364336670015324521815775387544445216313207685530304084724597413446287327353773500590587218125329536224932163961396931716492179021650991043460059078603707249449375506888726059625964050925159270739994229754725740710532459969860571211312962909326923287269147781651706371306006375097297393413614801737749167355882748905125735738357126626111957881959391742668170087670916314036148041163951143786482804603465652034701408073436902783006246288800040770257994721833001745707216127475736619626191986011094305355684185005922298102468357199438383252253518724479189040351601708109450710611794642157491667291617495367879714554471636264614715511462876953804528985455638182790108196990336092598542267619877013101716479325583617414265547724099496335608717798440005056135868054902255799190963898900407353137926988795077446305746141845917596459975241557922587415741414898688914451681514344198419457087266921147467948419315288373306627982975924998713660680586350479845806263436606455513128967741109551318784204935637989763646461425467364016904794193459251610360401995159452031260952563948147937635418884658939842841477988447876234499677710884144337871874420805154223609552079026455890313788884556839764756348696033981157644224631584202747425468358269834925130743980630720540085102398377098354061996586184094296559083889215879982098754349482666885474516119152934423857451368163567330207628055990932695468418648974035413643132818737389238023886592055526557969797132794874682719997175796276056766692051054730000196090609443586190485044224153527018194888977554521102321207150688426677386281141517441555799959780976563082811172219885383447539485561193211620502360450196878089336015836911119363409503354214602423573935476254639921250528091751060121035866028941336042266687501284130449255958151529171472449969267850856517382385154873829538889316671947719792683782222808605618540543342699512182572295110558621951325590157889404864533483597673655835277073654505085323996789765510896011201309621593115388348795488713391160989352423829439954164424222191678451895345719809336635839355692276160538372206448755141633860897974935179468626725980654123226903825459279117505424147572927470822364514156911652570135033487888377046981040728839021287858505339610930406280153514954665345744614494804269355568089705482326151884639279124319272495166791822745577743010848279982051272928347537965653985473889145325488385884926351304025476246137444813615052462756271682147512298290205170508983175265774722827791238331212695467615360633358010696279763467252389382619098483664454111833686787705282642355815648736014270518562711253054981795882416043388796198405808095128403897340542604980139058628129349560326123002656312485833859369472929076060972620020127860650439814304905789198754857626229571240073696840717186209482408168145220717251767758421670510113270385966200888458071894509972973319656600796323592913002384248898204049033483680914815878276932587711746161645029640019884887935673956704492329593864554687611721565376028121617360119102417369356252908590024405586215655184075826043036727102797502125492943659951073366194823566305796170995161462258960597662344262299161881890666209188712391946548621534055947741225969620270306905725222342178229414760808350216401203832612931801850013345846570223261592893396825719317151010335955512308252640266469579192068904750950600724070950273282843846559843769533867463124054002190835360688760134230308336453758408275486478610760390539564984623071400133642769401774238945679216882995840065300797109215175554630619626385494926343598249476662256522475293386104763182958314646930951535433732252081453880264568442292226495771044219774347877819551924825754411327744880985815195888362388587389921722203183907954514624055871853886012519677827181481158737139305552856396958802675272159742071076852679583445493715995308132756687085241838302033871369431154436969028026043895277690794223867169536780141244701251405003900403330072825065652184134388622547555563352234429010201996103862153518764350771873732558225309241040725810211249551628341132576845609827021149009136588495425159612192742733701258998173812051096653610999046773324388379271769177167174298065426455436962722442616594576546281725724273823729282949914971950197372656194983879612674689372138632828306259023948179468334061087944844137829465994852626010031944903467382192808285716175660331321211429455360668144782489358879546428005045582885964904925133868680518306325043672671037690043356609755676656818000680949363109262492987474495344981594403687129260313576037399424151627863604009380938446334202198093249370906159550201172972750392918598301820527503976481156957699447336658650714809741294403260024451091668420166758149764691474797718132058782700907747593199814366426111047565526977164698375273305163118944542998266081509348570054411821898600297663407411497700534363135910650861344114519244826298000583011386075427896581896994375335716614262946100783722873926940841081583948197877289898218983014042522512648411681214044743922927818581499895524479995241206842274765768366833913894674235102722298076300654673682429362092712496031346515211824788741282851026137680694239441082544965690973019658562107486027662225213097153156346058741797233064352469561356959869913078658967245086440977472267927617404403411601267478197434011375406939899114728211783273399831198469598451326834127108953759379888637188898364883161262464641785031437191999832610042744992895817876863201450715171970157674123161052542347079316735719565322837937454404376595737519583164689701858151138684627198787255092274658905985229683298184384193721173070032950226990010530821976619368485759638174671044919481269233937201012801806977000961037788349231464342778431854829955517788548187801614851537876585402663121334969229341835725493560547913348037974849576664513885784544234095122656180680549168831386051761599213014524707525066699452483593429563061313339625159337567786153125254875901522827022336202368712610132777108832470830025298782322075304337108402239096595212337204471486128351816574266293532363044403875881702615422396782605276153663777756454414181878350727860173944125709594206386637563566216702410736151151297446705258372153551970410807675120200131507330082605563618906737230142142136069971148334425712339394319404775689548843588594403629725883105099724490979012532983003754154077075590780773527416183354283030844791253304252890715284151436551767010327778286997753064848591242813230085653267933906066272059227773801865146842735563980589962488808590792920876225697951097004481452016795331862680368080380359745206640735677058459441255769847228132765436319161207580493046943694354555896710713892745931277000578799994127675283708636495258819313844079350396897599299839148071601107754317146060139474409008888068776751697502055956852292404808439397265198054237435137436557972609643204938571169015986301788087465835316433704567252540963635306443620647010855505717400687469028967319295917168438008229480427149695075122484639590394724516465697175024772959390089640834094519925071238190094833354495700686718980151457232336288063891011393131191240190593414432024535452918205028009170722546021024543283188402105888837126823089311016175565780453027225354135929867788267578626721359102686052378093158332452495708574935436139051776706737101436986635675179804922053597366081224161941132893715059716730589370656780944474644398406133436703508837393400238444560678755340425232545000728425556918234324864765278547021716972738908415837438882297820304607073205525245255826347819870923134783116875879023394079468953089777269680364877765381193824335451937852554565629448020664524860515653993707064941774320403338542628511258414203345538396610046037981439494752788265381601327817099797765082856479958463475738104984140808954072473826601264379120818360252379301215091675547163723043279512611946469037032480272435375432013924422942490055883414529505914264443349568687216612559749580068740349004381847578316278376889647644146773393259209030031351762753443059751712449175891885962477623231277365969369998282345998992340467154607526836856023311123802527048464204791246688567095690635717836165893809009893097715898600054691210513292796039191030004270814852449565477545090923460094897165991587721108325970611630922938211710852638937622888830095605285604805798223081972459635770346106348631161916226309741880232903177215829774023176540848775129702637578205827503923966989516254753530372981215134199756792751490832739148354924334715027869273161139442338952721410668569282087923385262167143422859921715173303423191729953182564532124612189725491482965967683611354135697262405145682771810962944596105984471755002570453216329409737923453671830496275923332748930411474338712295039295072413690958264348784732226897180845719084943163448645694595235388933061337608628134745619947009061843366634488783451956563721069549993065571537386839386849440813703643150444727659082926361020063567934525997847255111516056353518655609331906704934012137613346553699386190488497320158099949823820035912393582127473018864934801011330999560327894121106822898675837712089337322288107516477618628826836674355452609957018369106177119924622891851078853184277238340769170885257046968558524518766804015913547800329893922932498461279171910179698314253927580303043613908773777630014072776461090905256368204983439398257611387592313181319805725656486913513468423659527462313253738336118881663138706200388934274072708110662215061066399856015412029839445395793309963861017737938395163689193226241835162363444879576907928666619819404759589163695698069363892713359064793472848159487782856917092070346884215762988977581773810513468911810647496589742527925821397174796679338446185355885504355995533130155706242018236465741417770985719440563609522232668652904261883577661712207178741711106699027349216752000486889266453819229895699343060152353447441784350284273853679217061143009699068570178421437369128195709351820403792740513559313186294001510045211086874724989796133492784138389667299290666504763592703351869154869860099964629594693824539504696279450203554351534884566591934340256760222818956216605417942690288005391027377463339762407323334793410700520847644900620391635797493553652007291342043260748101621908431504854671453437342600762809059219104091631047179804206328427011770537327652082613193558484955206340516003266311997166677123943920653116245007062269917930642617136105732876429008170743114012615492562999858515448860495519161212833037938819449054880397069986885123784999495326751698430379111780922437480952819377442000612283273409232866998457393109168808630158850519631423816006567729414200275040578443197746504533966952496855544711780465067688876169659188097292434700945950889851652778772017311224786496248049170277263948423927850980462606644725127196259328893676657220937640904801730884687422172303967545324390274638712155661893328549550353122394662468187347906416830503172161113831842403913911328198334099700028245986685957003194439558044320106026800887956613412723568101253859408285119502819017668706054445126664853694483740690017371476141771558322969595325815418666804579168411437147837807255341832093666281250973602587047307458860946695307002747120629323180643274832005976889927508186508753462607071612462370707969873516409251332868498559796800675150961930001130808383823909273178463817304821066472178932901050477417930210558698802040281311468510975213199522888589526056986625462841623997227518466104274798781565911221680499958063425777140847880727540228360641627949251251669980497861815754309158927411684635449105645464461391070969980466676124820482800185306876382032143954352563676816372181855450999772177870273349800727740771051472903044252093958351464066028002421036347147282690844793498406066377207513664852218198046803480181668124072780029453580591287487810850986196299770276982564638560188519371446674141604899142503043891771128759996387293030724196446571566410261716262603098597628555187018172636729722702478401078994376431947330135277378789118634082751283706059909278830199375217036656881192044916270551305534738083116427393932420250651811669467411537988372258727464960195090689416540853319700019037395146384938908184818572195820788482100966279700898259563941080879653222187985085817876401590251532307904913632449770988421171883771709527062883354161571397868599043850613353421193094064081616312311285268939852467201099190039189655505335223023643257744135368729821508616059248597338372891742177748065812919144297004478156378937274866370523978144435127641378479012852607347119487030602545752678603577842088373123814153509645487966969948191849474278964265608473638864249997022663295608384199373374088696158621390718518734859211955819094456822850438157935489086956333522299559610705119303230156272421738665516621530422188210433649953682223121648419537829010975169777540996941527488294781842871496992221112646221490823754245665633129880462461858016368814360159111025137247689425044345797496784177988143552774786960826014010098618613098714027483291542335648835148946528303432844879485834847270080223489171469981079289128205808144445363488673882342470768483522038423872105299257976921809354833486226713790464436072616645720136933403656890022625453503079470479107242969930026170616261909342406900906196830091716978131813935434744274205663861205392591979114090176649288372957810607779777936632131204749130165349899714204027906563200473958950440568622042431734478762515934584095446923913119214587596291650881972615198786022844297152589183169354241359805948300122033554896193264665527991100558584101855758338028929374942709763556866034944103728907934524216337384063151997072992420463769854337705493622009449426907256957177380584567329115482978186047255484089447167789275096552040800453304619719566115705675454409957716692890990246014755353571155783152093224660480234747209378910957312659013507515611868838246031048066154026509407258055180186319263520540954451951582467054191707847465486527875815593202693307989148274764767584631895769970090178577337250148522135022764055829832726375363397135145829479445012092002449764819842735617038583707028220681673019482745625870522976774386568610889210238641943953898869294585720742212160314292937058271865252897544348001833104655389734694031205318382990404989398398053928127524224823142757484982402716424948876953770691188765191129498630259854662003925862802483658217909288302552956342836446663259482837255432090948689069362927092549973650795760239019831348167359255189781147351292758584337505741558731897149246245620128269753822892459630443667753116015383095812938221252196512735283886142134132786439905848961973883506180725561772787598693535755973060901726287024644129545192972543898429869302941822032062075744451619289603428427330683788882758579247075535420189088043812028819060909696787621885466460899437427400607169512718482833337164461447533369777015461627318345949206077765765897859444815723789289289321889665979392156913523620499792829009842228321376991579390688894020296726626486992653188882439354778757566377497571502745673209599591595577758822131843070605144940665207456769408564697529419557149533048128659329807759165347546048353613740425276159817301595373453351311415886378330350509985886871090050919776767864536450163874051408189622529107286836758838699314327729744163795620162439723029157096926101084422808391247205032378162165294179378724982149123885906466840496345335727596210377769053462646071936336478858372507140238507116544052382488551572615387049220773935378618789770519070178033233240516895473011705541696390690503853848061243921311711938024597841912457906861880437458906691126975025161681384540244150134509135051742498769304210820337478014713889347484318378870510111531645089419956653717295456382538594452640700840583823906017854125000280533101955638319079470717191748911165834242824424689540622608871903381330849553880714088553625065037438314544989273843102080111424344854358598476922353207899627810469648299910596028970854539416718803385805393775518142673216307601069576842396056154461644738363276451315672828035697713705049360702403201179528179265092191999333837635066285442973144899537389367500562371584222984266951064294937849732740435357698168300975069774135411154998647369165471286319597243773352881179324814010419184781425473944208018466150713325620132813640514706420386425327428005188330986336604212912587957185957157430717779923999598401613158202544754438428738000025675523706294185743145867441296788957108524014553461835392969025525699823442952669433174587496852127902983707590236743884545260984655810298933121785627071295448430529565426818737911271221743098494159775896468967148344126753189370396855991065472101063438041034224795874091236115772316521361729004904028846580326657749047571110480369696754266916075834500372163293077085884729555530495890312418750819919955358265320344076101539755303954953070886537536278025698333015261053725827883753809676209453778843579768460252358702676345979927261994424563870635370257272911621933220687155894341801074144411877495923436342085417696973996508698444859472695357118694785904579038081129823925019184329461274145870457345057537027081216770021562788582130040691493412266348187012211394878512337787519973978024787386583736372163054696297451976058857851311573013361051539179669132269810399545383127831189143455959119381655623311509460894407913444667283118954870178379443346215057369557765072991570693599139162008957609712917083680003697893013249074654455278238097462720736607783697497123816405907061524983322169468082622158824918416585023847526552894824213835160397045264638916803064607588389765121786914822003910444920807595270006581379611359784774500816641352736183411192562570655113443996409624536297496987000096556234496116484286931562690913126927006859602780156860018838276098335374408541319139009472050594725808545757411217769883380412654928666086208096542074596420964487690437781957417603880688056752566064104987764715591268440465509393547321960699864911371054540505635352710217014042644010058114352710937373107330994689538305328807506125060002159525422022628200973912885025025520219155134933638353485805913536759632577195832494009799454523155054512854496194897970813930250812012639576575627565105734116526278915094994271180244199140208743066306927368862700365546460411020709681487304356339133223028198356857068327616128489978017278966153869080691574794196965712425144025122935938111141443095650223710223381693814264512470216324829459683550416062169884972814419458593717343431476159765500225141719238883490246516502965625398474876468598553969618677972518278897657753519137770573678642780913017005337031451748584488182732585918543039203359540758648690596509680940145369781929557561999994317600482338220170772709045028614807212450188175734564435764154622667084173954433930604306440717496000813771616831245818243245884569434552344322649588265048453912599490951862162756230576399205199276613954016241838298245248561805198553867790863115572795822314566587383118171456561511944081498800694408154305846219966370101449503099738959861524340863054124043011587323157829631887288098928565375350947934275743511900668413196646687331248092216046124249159515729808914043260945980808736756156918567127190234054400238659154539916908130787959234726717683938907503967186908451838440437245228541275041155453403712093385182935099807944529974665082770840382591733910806783501661899581019496409149239802169105614677093451933535747655864814655003816214593910588256152877733614457877639102153813579437821404499714322178290400441198596213391086854055066502394869256117377670301572260359450429985128563338186925755656051718174935075030398305625740020013177860429277288853327575605271592744310196947247213701015595640089767997349107288747897543577328767071870539906562975688969260748074429417608298552539741238669968702354536465017121764884213035802171650337435916617576474343976296247985366235959009696440358076391955988971110988270103554402817487079498288088251491661368399606913233222551853869951515163041158216819489479052236081754983519082708901512358571281279303550468767874439490749856228018008251391250202091004255317167613670565639025368800566987794144961966765337310409885360405100872114988858087692492536772461916776491907101992574064347912179518531625605362792426642096432214362111249493466207630291273425220141132355537384356645130945023016553475373474390476879632845448180806173559618993980202222946804043936541128425178745262321758179489392664342801368050051621474708533773162767201755814183204224207567150973683286571677154980293428416748937091396199231183983700196683258208348436645555258297567450840315197934803325028563800156336048861643123473447943296924624364910395602917321659231440274095750157741392847613503679471958759325957414321865127279555651225664053214621233820515120330821509010136885895186961849462394436278750196334130958859059829227842078218273002847532291135433455425519524808808773427042646031344181445157496518080656864814043213079706745017013880864287543251493697084822955284572657323377846676404101425528253161915019577523662869448863056607929712513563583686282627610497786708740190330944761122084303574907537150126601274710786109793236308035319388726329709753799100800598693528317528007929915564623482816496281839171823010385087248701804949683806501711716657707789427766382309449988908492644795312383465755198871143054695884819549532144282673815290097490910369308951345782898593809206992228477671342205635573834772937644461201202095486508630503856305945459680158691629132996792260600296202712705255920832811209405316544304996809685838316760285590545162777762721829058468362212863755198941715999678870516951038078695470852730602305586672645551042532127455475992555819811665015049310242084053409593494376727456308403733579706659659423888217887460872941345780908073378707667469228105418224843388308828378030309417524749236670972114904424952610737257496693960007790946985990968435208997563457479993457901744274356914785705173312137983436961041376399818974478900032402607950001145191474096941160394030566323790972758340814604228841122264151087316377309277655813435206012654703958590146309709957038279607616864060984526054392144367287437201435530103176652291245762861009088796783244113593352236197636780413817263905738180417532315388463099838474207868346178023008214821477958925437823865801785200425138691436746889227708627013902968704612103164916090130263890205160739210806464879185281019101310566093720556111418799011313768502884348286234103458251330004179250655758365068078945220010514655107975672707068834980707636088641555300192766639411665420508312117009922189018164899932173869317204776074523800425941307223955873219461193061923540553637131337111789490474588085020257003620761634179576570996617222160802245120378792814985866294985106821020089877524915764290085057868798068582945092562644468554468855891256554473097693012766912486538724038342834132709617268554489918386134195265447780062684635856683925885077986481149021482216789835845883320072218586388993413662775649111735859717813824512717287512911426823485968842508056601704689053322239373391928538943519124669521158511027034860438234789888759977570622032483540954598200203769450737436573209204941913186822830394084267412810855800409073899403114516554045230465867175132608237098148453549031482216478051081883977597830483963719264526003141013474351918120021048917687694697376009780573093709693587753165525905872248026972394872634382786960574301551696245606256251353823230833776611199352155059930293809017921019137823215545833434209383070961941708198611850689686100417124105490487266506653539153749784937718408091111040448668996115791538135285909902292926324438357328169877528644919944813623592739172442879372237087761500524201329671580214446202197247332928444911911088883058935344432983071973795676928904860549877628000799125641904907461929056284999650677282581722808536689298817869986361759170892479962780908277048857018546679027173575315803063405258697795581860064426954464287120625541778155321587558457668098326721717270692246047363719878533827201132938111680008603180914899492030179154991593662266763836219126416960141016580129048198194772642831453681014125883688335320138028208098223708978978536225752671613794796171089663258136611864111221740499692038269756522355064135866908738752881428361156773717580722036574214544532740226149734891686760699851330299350728663329457991443987620857947084896004024286472551860749839772351029996335013676401719716409792453506739274995453878084275540053483883021740241014291215286945177907516969516417729546766574023798977826076945761667690698211594262874417077216102726229500358730879827957724882955435262701530797706104178093782621971932735233842408412431816908264623591073077162705699784014089996797711417554149523282504893711490593432289865766151989689284172474073627168201212111040845313532069563298622063733496680393652590869856841294452246407746112295687301593553066558359222963249446549297054645852207265768894348501928970327952386611895699779834799224320635762425449213605436767883738630016171557657364446121601303585382955729187617219655057146237757395002063858130605458167624128683500376453552762772397687906637522284070543903704327419338220109037643069598171008388390177322454310386737409093084452849064597910676135188887089922598809395666208285462013989166444503652322522109901268888655086325725524540710215545895888128017562171883928136436554668429759156338529703861553282348268830867334865192001927327850940948292986468249443017113585034984614761079928358429552638869917475180203100218727291054441639063782173312560095451969935532598920393564466873456152665663660682456291449075270346247541359695955923857895358964031658994167462982693549924686030698491185936297022573590735988028281924303355935625633106318676170519217258623530330137209803338318781062621805920025082027053698451984465215727090288178226402577482540040649403424193552808646537109866644851159437594609557693044399242389036592013863579579426885639566843429770503025571130909600180716150202888388228865242668664562725918668585653745581684469383190058431812095568813469349608732072363526579914546839627994378468397907028923060232921308965655194995956091157046797506716966129172161442757386072201919144750143605820669871216078448431957722057732907735244288787693169826175144179516442721908340002895832466006730532353883971075121857463188507958483605283407255298634183355060134659972230989764610573681394554756491671660801170065371659585197325764407571161903879967372149289422906936565477998194301506791945434884949458770702361962630767071550794607651204459291042953802559999692133917581385765031908408373798468433290942486382444131065426597532072422739762869113836327036823603240617366004209014528943786787354710442384931309662122676000779461246796746082879663440442955889487447820976947547678768702473150757187594839098363797294340703937939862862760651603574043123178083346024920930483813833067888336155558975718953121087314195805687175810632576652500953625559955334808519434747419478383552254859113218183971118256371213360893725964888701198212458328307722306645142212884612856655579606336902484338979966956192722453610022846820343784784582897423046475755058391576908123092676150042284689165030674779505393682058141960461928653175875437740106403451458084590258230616422793997187977813298292539657159755350943415913606944756668953953406324695035037486777157510828850839558266314315443946172261461691814628448738791906938980782052827804313781606665466176766337280996966310493774894517564549951062164487223912583212286513719318629232478890348993639421568038648307741090094969137687622620168654963721069345137439425138474918853094163260782102676453564363545140443032118395599134119577978904915976213972808981531942803753251642242962688106937770592510608835595210259670948517613327516879946728663039206258444406883853120057421814355020710179377627822901136357684114448350668914180676127693756515809982762391259385842395203431010580664882930867033810397698500303363713542938367542370932648323446255596543946086167712045186468488906914229958397756772852415195908171639611852368752997109213544839997882569829980226043992019093756603729795078609895201267113429317735147992150253426760774539603364340949928085840519554191349407459911900163782726288411184234823520607776370529778735196546400440686421622826301860605241443517093756857580604424452395569223635490250687230126977008018510783302274865155579184953936062197199690680499590566487838343709555906370988233259458744073347685592205565377797202520075751213924072180936687368415470353092445534969412365075710791529033110581661372501778697566923518539248878990134299836722347030420444662556782740134971186471168050156621437812092798861222698788156461345758072596954879603386445501041298650931375853854943819698416050639304153832743386589215805147829172485100126410745045777910602300722783350758796637202238576366168842818526333098313283428362217623703619142088368554785294400401754709689533900760937049097473594684344675540474104021993327723214773728019177425342279755449710013075836985304059600779449067631202497604048388396602676484866094778695834764794179310534338335488583907337693245899446885123894344929929937842456281976574629573054029652253826673098320152583222008846161046488330228172737638509357085576701605515401761927776052209632427260392791516887293869003944463886257661823666750932572107357562990182787826765971303362782284220242648650763241636644918433163834147796800102889265223861497833937439226461875509908773408942000998435115755166254031470750477202316604435364153930390484088379584843654079033974800991065353669124393419036264391827749585523341362752057758464016624625435614175411002059371021730240035249448642855246042971068190049303827120717315843747245044461848888269118281583450621287322215095854158290744373488537464903853294161881860151861403710482060733720974977235618283138241400645201748787679738470117612736736801003351622208906066347651303948121624417054475645225967372579243259657750696519961429796901268143399605431388538644035104799081488717025186210423744305547432433236349663877611690142448618705543142288794865828121227314847798017056825346932130837433841579492521377535435187766453265837304980506272000219298843822353639546765261070444817105136778192170750053875038350653256340650503385689964003201182182145908718771650162324702900475951706625754522509081707776451476421787534734322409223959407200094155417925771221540819873027170470542869403250386700149704295939575767328353911669685681801429565132660599683167057588904365784218693308439106735232592293214138527150937496485158117595184582837580645031408683364791431000185923861747382444946960500136909905723185354763888609132938828323399019977245236344839191224646369651408313631412691645919532463732623173640660317245018407486667884010344369165341203035896614099063568788510418366972767382511593940055447278664685853970733510628633318048068386273122341396553288898486951326821457412126702785959016676392119342769307028452884675039983746500401466280876617000648923721157303001477455960117332984271477699778588173508034262053531216511531712204203422940772373094089466594419303398658019730875384486344226675733775643653943955375809737665381280156495518630084549774801754736196636637923233595300332548650686917094502939833465612113516745141592564579225035384830190657204418201893328843883145606155023249973496634742806391220455864696955326346048704558987349520927914000163829728102892311094731297549579056333213606412168460836158111650904692541217979987230485552196384216307358519738035111237378381326723383766960346763985012665574950442254953290157965763973405016995167053922737885989936554015073769400218414441809517655065769045618236104255090473689965713589567308255600820568663538973585294841885674395750378454148942392025207778434584383937310093824078973972902722357206855151571627825927543133331505549399935377713699651276834118875252463837839628067612140399677560985576462291774184685666125299274630966122926617345031588043295313449643909851925460872944653809506255828315848865599516518421825217699156118505077288418934437196505035289284729564184072507164447717964767808980564890662146424393945542491718623159227277499917824715300168524882648405312079264029453009025177288334431109870008845191331166995546947902776753129371727142776882080381262773506752977297051741571176068857583538332066700697489070174115689567948073715283597172789450623421499230234416809259521041618611380297430621116368729512208626631690999075933575324021784767205509532671724641939809137272794776279318835212438032134594893152447508552564822726526427458609528078181895477472270087326644975820131971136333599623823379866232618312500488894881747598084387186063175677686145912392919108151129840490033996806401722254824004845014623124972392133600197746924965121151073153032952178566314251445506453442307331026816924395159142033223752537675611439413769145029465452828469332323241929237185886865737992811594169897983001821089471235241827350148406919908391912857277224827238672661398571859893760069720213372015998917346171529615456853911993586557520553945475944277232342593705529259496241665049786538094052290115746153866291450378741648890927080892471489114996939764701356485031254486759365267654166108664410350965871836102344283711236974352123681013142143585237097353098283335105978960967072089674094369765062520024614821291270295240428435785695489550261471698049127914430902671078064723641875719793295826006790850859216107546842381506179842130252040468345515619550880540379433115995805087751268569823598965864775234710524361681709707965167544777330088788597247712558452827746654695210828458371663075656734000263120025495113751008518659988302686608070386092904651372097412363716752564079575008401583714737272334328186081676063158824389065781056726425374800375643977303629168986711302375808396229912953803995751993337019921107497402745930933647113831633404856991769551051489623740567504742174870144669526549651536911938738346549837474523195676522321591588771400548267987419674439684494970167949850753118307324802042638402169558071231770333089852403776325666588408732056198840663299330016221198766978973505139711531146734016895050634447199785623478722087625466034420225056936714413110351420054508765622062609814368892980524792001146124865354397383410245787927081345803821910214005216700598921604315457016500011834325229208360286830054536934269610965638626607479489768451177759750586485705842447425745005938088125050263577752960984354372603152811324535208538667244623937251452880014797017210158216213439417616079886453900278888335359574450103247442384816616931049235454145319352925413335221285416906644843805185919716624655482225320672221989707918722612327109996092381413606658147485542744263246663727254260154286419624743271022658192552739272876147402194721804817919752515833969565862965347749097495109745741536448167449997093674303544971015861930700786503703862272387113727776725411340960225756738935215453105357622016548681990800428355276922004574283411239333655815425243032733143095537859680411875703332180770627335315365903478045999894548733765105403427998090216835364210478839983668070797616995035480071752315838912370990596902252921238158490296383984986374619983875842480907031019479071558771253107082395994977882482105196652343498763609484778550545412186027748024408520018853079312631977745252309526872789156143140190646420508272548024529630152808825656218069950204794419398922918576599174852978446168016453378273232046054409021194686226460989300289609991940320623065421516737130963578989760233513722379302412723912746775057954784322739756975930239732374875339835313093842526088775999956310658339197464221267581224184549975836537075746127006995139841057722217014329835506294937287378644016888913077865441527347209488294198294078697077315904594369295980172672832644161356418320887363152727211156082365838771396031779943357042592052258571090777650518195111162460348179961510154103702659392154546943638164335771332357905439866684900799546038367907439309655147683734673430913796737467324373629015176987894147942504530415609137234781840641883904555937915659044280680978247441211362587761778259093121678179735863203724321725199197383991394520275173506197696045169269132598932373142158727415927195474868185457663000452293647323820781984324557758448337590736129956568733461553250657825618747179844496130195656275577785622527234836256394442101209699875650839966915354493958024018611661053109579838886081561399654886671554989217816838472461658603001038497999443177850715439816854304236388547186740822610270239113783460054425798729070678273225367714857806261674665308254738695466754041037596573865687202735637555793032797639678429526739149629739232995163559127807554755562551293841894926590374734862518614068059412800319081551613185423290704639090078555163789623081824361411700130671266088793456813338179187399712839003158989685562340304726382725464513363594812407180040811136984568085866733164650483561520761614867450130511145103319204292803580357374589028183377561192898253262478892455219165802164288918616458559055741988119590637467885140090137717944959458160044530429226647439992698260630653621917473129767977493278969316098612203550559401721204605957531574956068775102717523275142124681862909689744295543912604511005878321381772388879414668465079029600722804011928216575197172876582954143911572555606802217438250875429260625492799528545422523918427006708031736554479710082635421290403165525118574974565514056193867115205586220083345596090943033029676854543392732176734142622521145585773627640005873927959933332714699122677529818550290962946427273219081195844880825376729334399840453439987543584287821547943107888680887918234071346251419543002612461421133101049555922088870120154217422248801711641051296404691319861031811048870824029902792158737658194739273615677251295352591082505419837802020593495367809283261336354710499918568556262525508319876336509273864137107773004324180282374737548001999138534983004463097441565466825112798099182040527765045945127726581770174040438562681782605202614218647391751058786224083674307137535422182406368548718266692034468813575116374669821059646132315342253416770011981823885101866580368629105484357976371643451397093412514084209431655511985634539392451054979766888838974050245295729676776399204385421449186804481243748534046752881760644092357282635595812607346524651985305372987512100459815976775037393622684200163579096325073150596212487592436028639205910734049763370023130572449474937915047442718676638421557148095988177057805850714869348773167405118418837438490720283738055606105684599477763777125037178379795268346133750598303555627465876162762793646092274291283368335022412811930236806540832054246862940353151445777187686578111846783644794284534202944647052650087653042302158122237290914600555460540133617801831253037824592428186014501451944760831751136663101218614006264152741803877557686338603110334541179432241475157513236507059568886469288852251409423321792917621404484768597346270226533714040815606326081970378445162790073161823080302006313242236313575382963403626019642396213907916042329160115936685778254137836871131404791355100724306984718174211935819656005090891144814143537753904029787505205126494270941660756759497869993653428293488949576169489721334104558854267722314470025446871611249326226427856366702450553539345612217618669630120403152476538109245517685724448020730074223994923816342674045488500778702793305484460661887183294586698353975778922560469106116530037714090987156326111020954547616426552473527530838865427295771539905140406007143866300774693487857590672693798871153604253799850372995628197468791202317487445041361431473098126990674457882942250653897718884789657744088784323858051123244047625395388893313006530929781852287149417176953488636878647904864874215928550821732554297702920122695528263157878398619555413031367030502590813407908690220942398788132642089653769246722916021721225177888459385861843652088724978141993985027550803432468664111772826590679781015341238492159457957325940385703201456804835041571147248942326809201858418836578642032299509959586230103378169036488208114779278756997630481336747401372253837152296176855072772198822666427134901017013560100253471114583850471986880896561619343692675982050880846356314924411346415710262102537485500479565993128598831323298750238274618783388790292833978334122439926426276423289596155224017300723672843388785546303658116503481332820312980190935434863956542684693679796689821069456811664275013083878980125651089888967510520075000171486886087258298366636018107752956976398931988065411850982928292025500174771438021479173999787229596997221845066391858073488060812106023725342454925783150859988875141587625973382961066084300904878335606001765998985330725100439094925274082310615755094161510239297809476405653311576268315074042285198425669373545816875458781798963232033723860942828590719791656403882743042219270608042946181133983654457884710694839767787528305519578117569586379098621949740325563319138225382434875531563142185208228145384430045661995491393395616603841676977805492278888217458682450651284869806346383507400586991280452542039766417125095008465017887300776307105204845441652221491491885070592980225137486739635886547969879755369539114091371044870221526784414416292666169798818069659646222806089933653675851160994564805761378718121475457871855841435695709024157488121424727142654121399006898648740451292862380425268841765292182524923724351545913366609870250835941518281259266731972645863318226059133988287319141590194685093174589144980197437087709331165587985587517184049590689357819689762491115067991745880617165742656377697297091913712283044170065257128833118031049115643614367908847938429942674062431076363208639373673350270521774917035369225848110822303543554142351443429935508490185165390432153281185083459698912609346854446207672990759652779107422277328491944248747298870060595190927570586703436183269964554652992044285829422120781820224417891140814499870416608529534592807136122424122366590735893112537521577360165967888775093779527351769606379006219416399528723900254584071368439770033042995604334839751612187893612056548742951963763208196039975275543110607072196687643144986782894833928465797031906797280987733065460170949110150981722466700409374612116990515878102816678845299515068266952244259017449444409529242071798238095015184893755173847119453677025925078363717836747444151353962921976161736504296545475710339026785811428270407788387127898292689700544174449308816019207440356004030502497175403873133555846608582131679628982913734957360795380552440624017254240313147215622222693518157490967929014826114048917742503054827655017748563165835695760218582939924939941533604866395339936345744784943624768302419909959292852783462016828222877960808033926181064295980147872814936580834237291516404416649884295472536832634564241470120828048392348412708242986215871728014139436619491482787863429773879266396762510221049641181233679441409983060940641439621405233548070240862473580674717008761411025989463240469079202421142338375115737866687754108801874366346113813824764170928667072902106211367071331224797798059141917229139615237655816819181334847799577201002683860538881794095210703036245953262548518846395862391797459819989491273166797625814984104724089178921759580110115139297258416250300613666480416344128497052774124577735857840065005723022528283277141002631254918019700105440544559144414756985871105927352736922165439147509017873426624160350081422188964460857532042430663812526296765100249599908228551815034958102766188788820865973685204696527253791556620189703187794445123992382790201347769268198456849414504802810636648600982886408964612294896475349300695313475846877027093872140201469415708049781133990562838946990495171481989847179979935760294341470783232258549031238177830061140961602131505783037778880233959248654460813880140268450411973381282434884973974347333459026171329476553343855681875351759865032839866550945525639313818084953470617816666262405040369325419593771741945337822930747376482064608995108288835276540388375977541452857865421568558319706428455112208363417431786301879879929655241310945737428726921089889127407521032137682154381501399836172509820248297460372403506970551586891984799583229858399104406445277899899838952029401170795462260231614623735625755981102039391554675346144392798832695658812642197572532043755061750990750014806032655066426498760500347995791858824852252351100735636785821641717942631496523711720954191580540581388108793631798351584605487195107527022777666705101552536091143387942353066499647812335850486396366405876066649635540941547456584517077938991282108789729600320803274747191497934740418210928868543340074692826003315491043153497862914573246145402219089164006413763026548292709177447685893185609598037212656281057060902084436608229659552026003361172390113855079765280890136344796139007213960825608416329978895802144750287907006091926871318432659143218728463000613507028092457184004608125770519074496989263323053898909573826382911675444498987479780734318697835100987164373028471969445103124168270935603630931884388907613810585070760224975626790002537107581131189963247347258784731890714684588122407333147231754694238511419237437197990450770494882094805690698513988256614888816556172420763746179023580232185330214811334550404833425215050530226026775450479675389792168828011734999340894715261676507269888105288525850702468623228681062276640867608918782916186758871466056321176460474631448878508287617976870072032947072432758165454989525434253540280156197208619108824530854112405170219039158943413402474129469800537304303453630109876179750021182072183810121252780492719622335243726526921587231422055579384246827139799560810370367583837155729188707876191840069103654943360269356015308966638598661154631427846149702234559144826119135476728720338867395171615469152526745097390103662764853091220413339052113506942273555174578532169178786808869067204961679232657922231364590913353135572860451821428463010545437665409672151878620334136971572126689653477794407204105089985284885064757345424201584452879686084750637860101514154340259649717148342110484194812250515814219750465240453016985401638924586268500234663110715509972026726326861840939728240130835259283677259944419971480959086275702591439660553082606305958557187855160430624315213377846693560047741905736597716987848465416576682385991695231701800938728837619057307520431269916324483989487119553269659910679464905554143000292648774395628752895205793253076143016657731360245227489198320327020452818167051248074569046569581742483928822616862254864939258189476511864464983670679022627062993468133501467979286464267152380973693479883998498704450857955366832023985140139384581745331033563464237552331515621801658334038643650663305941990054711790978420327855308199894420194284517403484230612579184403402606918210930140342102152254329546652284064922552152466099239519516436756389879407586036166729187530382040986090346090291587285981747736701508601008020994715215446321001730360146616031833174151262897020014838236645931715294988217352410580189233369941834392489931572166485146457810738363910467631328115764387106815430168240559090734684576600355054509221503325322002379269946843116621988204677291083304187820465380093345574931503665355321514773880898250459286476599680851397586437164732964376059326656670649235920737307884932253365615697717252129356584598320708087253826375935907289588790966713480495942697721087420473491639704047073707383570536228517249513628394894757288028768311206340568369886345438360654552587832887106070599521221535797939146636512556281492621187760452607309900574093748544501923816177951016180625657262363253888912583300554133762251285311206029935740899887395561998602106243631286041629978633788565243412194330404228692292561323097053585557504738160003681572764843144502567352811677237328506196553012349669038976206232572602601600983173948300492788951785647810142559051225565651063246988408211267980421659439613987881226999362360832228512191067635332354385777268504932046305017444479397952040015095558706890098033379371324052837362715830052959715207358002106089594521845962597393358439441393276812525992938783174378924271153025486581918007370728588128900955194413158994683703581446332043394859322525851997814122563187901767400112880664517361367417109568117424518726645563711699542933109697551574829832571261903912303249820453480478674306378039161203048227920621275501537317079024797071116279079401538552465805070160083998794228899137826950489186974408320070242711499472008646655829120197225150277688682893089926626967720175139807986236320661044791161550293951768788595566393101370618882576222069498829810047523061473682661119639564383589849349561404431277458976463615833489900166602946954188897834946462340175821433090677949181948519130553437318746844751677647511056782504141509273942604355702099361666471612867898353879514392859018173288175680980629752759937292976857598018553415442679933669866339927503964258771033808949640737721920768324572719338609511023890726804254136761624348374644205761911452920017327478304069281878848121612869313203398762727233208865057507227412626990557242982652532495280192358226715976664171095664041873967253058785956661460961459707157507500519053704321580247561978820977501311866361751592143557526258178716691330779080541404933125823001268984277693373935947785890263391004467708926653681409553754213278051660788512819634731935773644797269341164222561969496473758281850452559629809146856351984765217670954711303201644324811681017219771963198062911332817619380236746089338540799878166734042870119706366306177894673948154461283270723603034839641411440742398971670687514603018180957352384746278628179146827650457643600649235645914053583423013585136731609422184380399234175967810959720889148317848717931681897475209038488316972387641478322028009752179533917667139741895866462029296478405440705950574010037068326657110151402516377974754620834981509668152158876044453686850141892899319151633520618545628449626323700293980001831176815849099674972962284148455645908009660428836674126382066673338722676944517392059684319180052538822242263176749055161784793127812815643618863143111957774274458595266472253701998477310082272318669589852127474067969553409950289917822738036138540853309527532752295290557904763188313518220561008592424220100296459683048348555098873665855497907768045068497749077222541230397008474237577156392958387316900812008847706390332890182750930709391788534895720503379590553620411462438781592496778553475221269990898966447415170143920293697345235213628540546839067821276979459446195313894834259503455804999786964810908058572219926303115783732640539064130541948685024726482262690214846149846337708201078380361559654995275755516508388850792477646640279852648938475865304090874376368725718903075926139205649824118085691039434824357933306228044702356340813696115665765568866275601768662975911803956480608267530854310748661134942240860708635457609769649317104827529598544367413694084817432066868370442821024489653540469482775607651185780640002521000203432944732347961369390960681230288333024740249728030506855990938879437330546684061131861928269433946209818627082048109309797741365688478286151780926591154655171162105164014790157773623917304933769211866017228950231307030055848103829148881273052682473114948898833231330671326688830652574545395056077146569871701020259614266614292191196614631120657866214296732921033849041213452765645283485057220947630017543627406530061786485001838198253893626407178838517353777318539386551916438685672373091599798398877327362809921306441455032388844816162435497066401072527481715422939263465755647513003074973425189563859752712090241994277761737174871895053485501097979635876245280361760787611753457062112255096594312642713743591794649808515950917622185485860936418261508368654613794722299681763951751656130222619133394975051991392677541185569836830574329833355644584056361490206114266332835437239627118135437068081347944966118550770394673528165399303412893173551933039325862352331322532489339769928238044621831497273512606334006004895954256366944817284833074094225621840170700831220378136224997860170668997043187687637783665443899776700590336402949867503880798385747526886477371944204313388062700533858446583616071338331601868699225083517406157870962339446188878965977118071603171207952521879862225352969798873958149145487718909708748794440333397827979256146327189065607359883351434396281528258552020649992965813030485184247404431099419344756933599789606691230204436334907124220388047223740920286043371856418137897915668383219950501915802904817262201176809182991823618416894742201060247734949634154456001330060922338271528504065796122824953261003136096060115949798036503271443723995071743632372225535726019693775668124421248673247600739594559550916272736811039961330734821232388009286561554094448287569766368586846094072925520302347720211252082546920493127560178738584072412245522165053093951787763541758121035431566987447052257411768530426526775424078907332314586160856491244911143993448354758126827182731269894136373433265221449146630382384221348864631382418399001528161372336543123565547673182002770705516429859023699412812508307738850428037522012934174125884441619222873249070085538660188853594582381735951289819837830838491407244942778555625798538843283169056977562318065687974362346789524851923914156184143637957090156248734801514418990868658001730303598507641540234824504727800907931993072361447367698008598576654385091062068308340596603246115361089095933786969777709516344151031048304589969641859433875738782258843665082321293504804128361996210333930579972453107625591240508328352782416322842290242827541229471205290408723427956807522953200087810651452834170066989710692046819067817280567048232079516794348712808004986721419583335127932218769633208017914218398776638344723492458393387076195061475652183030428204275049079178427282840929310226527193505200005206098444031860467599113431163943750373087784705280207220661909165718996247094486727084333602903319042317546073930545188717763741799263674001468915967743571806685903918552080512938278138898898855620344112486338787820565296265809777079115004980061893762196783111211615756745900095285651831209532002245365149818768483217200709682990648245806758463246354556096633144241145060592890055929777335144176395079006807486089389792388497699433561072378887996145659208814808779231028297922562602199379395969825535229844407455591988590731721143226466929726025574263002917241144332458654044345653304610287176517558026426060240738262423623267031750720339808562644954622145757248520033563151982913248676601706588645723548517953869336642268660273052088518656190909751664390271219968383452781213731106727129825185463820823571673516915235172842231712348854491810244825239827110808704075787185264267260710541848952901508823728434983626572166488887183292800926396030506266734766107010879194389548963089879977435168713851958901678071560347479658087071896818534234179695872476269145543185493265543571607138162940091161177348535957735201490565505044533790770495486087094809454772189257042290695316921690745721233943408284825627918147061509419824845733112201965216801253319987065240547557711976700460215312731121414745566582604925152592126219410047473786993386167249787118375393815383683009636653351729383757255691433949742028873499943454412210718043058044814840887887752867734645147584489488601469052245330996952232803474831141711287075464651973733463745105737836609382474794925102552374517066628810454753472052332523994319489379356922251170345648547600300496196618157608823853356833452197026392406321682853130253628819450732423294365832609830747331395697482688233814804096142538290863607768274454688634972894594209207442056340580785904957520460748380477660329423888548644587992250108083497922037453915486669065766777517077039245964399638127544948899823332204151721006773637095721757069867546467472540732823745274899427238934457775561056374894074911132786231980805941239768917049301095016670774425076307519519305820102272134292208269764928364183787450413976831109812812994276273798471500130224272219105252321364171724457511343683309721422453333920106142414949387219172431341768189999694056841466547240710368494866585304668772400162279991089135830783791286301459590338558700959207164830942963237379847865242453319226789147086910824763050848786418861638904318459608261301653139960093043619076451264803764176919348175923660628096892758233103679229362542360366160042589414315953696719373234988622299227992217735171499357742384985652313564627549590225006698291189988469989691516198348586025808611018844889347046358809865546816373321221606146463196661600603065064611370073712772493382526059198616023896370361009154355365930898405039978072230596026199214747355782828099508779062791705943132520294915767911431739544322415454460465018334750060440429201891170659366298303103608125413249352131842486869925777414516473868020693946911329004710665766810790976135665965519188141677814678648708622483033084491673400628279177909124515879193848110212299841524472486137596065003199854578061099019197527988643433350726389632447507336055705314413069771515506701756308823436225172211129174864743547019823210375697350966557553414774370971607124960643423025531197033875946651373421059970729943683872993102237970089903299774370038196760966046672289128134643176818862531645124368461451033052305200440672367265351393551728386679437022308187230808445988329271385645059535570619488883319889473404664620165034875177859106984807874160346711856798873971050573997064946480715533491212510914827116746386160639043414982026455077564093203119944559364898592420965519478616874661135421708433921338713116668489414073086378708178701363925783059122001631892656752461759114098018908538271726183810768221881918361497090773695060856929026457122617468078455955324387878230619794997184124386175359609392070204552270214553003368392385821297049955890430837078920216507008894382486924465194646135388578622671918157412217555299979610259243474147014392235646283189383299385183931509337090717845701125524232789566555716238693767335673300691027796063975304532826154625566646671867139937157820874650814440076848599910368874280934909684298808781816951033457899908116816879461039970639517076460599579054493416293531822093266748965297534362156796129870750363341211640573674456842346084402712157133060685892870306070971531320311438572260910279594873569816633724662285532274840832003948180808794638941545788541782496065409451975631219161427197126421070815057015952359226496169605579966719247288971889078540957476568437647551776402942519091781875521246273839548647726066122313770326452866555359403250479930830395915062192765711842687854833107856779266596609014003605822066825471122057490130527511905052854955641482078875579169824107896930641288578146008300994369392871697763983812673057977876404441112614184770683997428938653733969806952643788802396738370898504080009288607072357746636622742623274770865850519817337181588458804755191492458525130623421123718772310017080704780237646639726011680008378037465583157667175569091966286607172981555628752481849681790389714890855308214681806333794253751675090061241897931034057584591676633024566031337088434828525183597140706524812429882245117040684729404132412567366423828145272486698393432205514026422549733859485286487865519729466258599937889531508715559939346861465722603455834370370012796510128625115322990792155607521601068271694888579666153148007638996530600603046010672907710004403081066798498198738011217888483346751147900162065903315638452729826030894572505896059909911198445053712923786712585184045654248343690919786488084175892475332779109351956165642515763831718710540186102580459712533652951907888120054538656910705008569843502140974355642875315855365972689606461871675177082817165274819759785650409698449853615111807124904415175151425363049134647731523506423237489301084845283614797520912009646248807866854900701226605175007496697730767279911327351490845445856613589053471117338888312670272563086428864494154197132352116813537172240608572186545354791309907430773453405726903034304944241151580664534612374023804515751066134996966743585606162386105761819651649778742105353755193330239770351426065605729474734643851232185693995605445308594640397882313779377214416067259428165628148833882825206914561114386762302869058226451417987403483417574376193396542434865822566259366458172753621173531469705278238785998599711151670252645987518267193407778864129860902345674572557194009905842379083479132294872369155374214346506964961567518643499436530191313080153544533335445681358285478280082851538898116763978326835078628977505088467654231412119483859809712353881265448315003110713342337146769134405794411659380244404464069799616626306499155035916186199072068899142352716438687355854753858507816200253733907796392548338454839736335012516225860967071783624628052772678910327917256513951613133024465536786104293015968451383557502032057737218788542706588590365630884176285320742812009901609078119606433521971550590166289392925292555129454366881564260017311480036729128468723025750040366512354049497557140923065112921599752756794197624088697731844011344139591711826120816100656387646968439061707263767856575614697694158086400606369251632844652030596159126420434805177967981890528144304236119328896095216557450118198463900417798783870354208988346694666712486167512350851506728023869533186142397114204907065542342951460110302129682400010817963289799846643188662250271383195906462386928149707453743167131391913987891445158148234922243407670747131194532215658904441843450128484668048595788729961556849335537604857214760157287243686493005968295568085635800974496680446241980771658705575574255879480955468004971660932356508924775440764939101754523598639468214601217060325722870487069454881168507317216163490242087102136773277635190747454630551984920008831728240843972144698090961123436708315363159052347541516323670565010824709133462152421626966571172176651448456478029873864797245102760606034905034057005366260882370326390071671742560083943338385896392936238312859598517139682733442913694038841526274688837045291618043256418801333336644159658399616195161280525508834496371701772232061766271681714694337035595387789365794014037385272702247153375525682340310009090280818007626012071795249469341952426047366058622030446070972721597283077898334445335338431896045039332954174651690888080027833515377477069138348580142830088405984668768883511026855219495793255837488724817996397896726004038994109352775362097692877070404680635435492157824646430274193249810225273567193370545931990301312162084677820719542359199503628753417279958294632980686297465866978349731828303115793575949437625394850738735921505842805912844252623353109505388596069616257043474483513717261403486463941652445771130161752681822508085489085849576757668986898386974626532971261988635332570143230894884921505017571052964188792431999512021366882755154856755939438616918476030235384729727330421840985242349601924891627117091241211703653844282428134014571392644685511271980737220449393059389389796305951389556643374261272172355190386627807748850863237524750966897192810040688514729025239072753158218697026973815417609573987228606991318910188689793701049550107473954414011663006646760126958141731742431960244922220043335132454852589910258214130826497620726226629943146722420781661239151738616720446242457250503339794277912067224619460545405825866235948670565920183095249022135545492220169119431787215629592911020766413973329633125411246987675089472566607990047423356911583538767220202117309049694658469426071487721533958999781550111403717490973282347472687808182874919676491060841821256842676062568879177121054477573776001368363888601662119787734429999626165036229521913416144118942167732189516558879464398636084758120315600996369086069833945345930707883005310862522652188442432888999055151358652315365183058284636591322676339880317870746121308368810051140889102700575305005109611212540287098730371521303121950659780234912539520218592639203930148070823526536044642943203388231475845433437078249404722006388335652391323073855101855499883891569012116829160791137253011617878378543524642011446667255679983265054809319961097645799109291910171957197977784995168603794100504592733414805442362701306682411599013389015232443417579079739130678244260633160121130532320100977183887872630142009878048944832705791834062491922409800085891709565887759682803513746100068976713237684299879094625497814471468334171329477506174555056527940753722564537524758075178639992469053351397924656099813653674556631346040154319191793854003575793637327626969950429380635328632336737054272050092408186988360627119038515219790115687357902225610302315768803751858408087902423915844740011190673975727061963615444133611223366832321840343700210573084489546393693676531687596802860314299719783627771272764595049305788491463881076254940088306774434213460362705592966923360608113035204763124134113287700059608629211556404848737677273558966641244649654202231159329485219811709035002093824474972519516108820803796352243530574546073545988872734374155331244190764803584482864799166659806580635253712677779072171715796732882019512792610903218017770653748761844336166936635073450711666120282235300219327940897024883139479578247992955322316983234945701758398632417932866247055609876400066213925259853580663138633548970558932235217125435516486512038173950649827780616420265079205345093646380295196117772995487257806406214729144107402321856928161417691287699434683740312301517877746115450840708913360106257617310333975774415696021969700849444521304950809243506308824170816238188602959168521934646313370279463765284338831999201687076659443816601296155133599237609231554650947466759768239010256407692083786496632493275787764441722039278829307988806426351559887868800215922168128462754902114226559022579294763387903999552434712607213893765422486564472749555025286667510499852443411677334624317395741469511947598056489543842518570788364919604598172074341263412377194245656010493652014058589340802679707275321539766784051366638102688107586381865581122661175321801568318251510976781895258118393443773581425106429467492163234749722787532664241284265788120063962802538918846532152330084170468730955360600931674481150699875507805171702362659932433490225435557524357768890010878504126551516728377372778443141032395954398226641445103660996323576518595399618622711696472343147620848986718648497156294437432522834255929629026032451913269208294454845524877130309975167457915984291127749016558463705496456647583370728716868377321351807086323838818952828158970950601947735765907684710475453827470444090793249476147180108944124812849217599052286253244677344032674236486961023083323439042716847894986337839686458510932678685443480551516052531748477125165285529547517674083036337160895742969689624632319150576967710992611865705269375756645158304644193166325381931731782921912585020724093602731589610478822227434750308970293750616911943655357146398150293953234424366723655185194149623905345814769758732784881593370010593260269832393464659144107078676670561911377680645928567531286059918372393281716285615911443996786507184561735823926504490427536462269270531295405718432636610579681616362504485654754908885388904297597254744113833676962499775572604425082997455127327941448704871169393041802366737256264019164400196370695086415371795108239023112794604803375174256778734450571578266300165027777398972619841512460557881507631023671214528930358690514298941019387270781017084703818269508562156055170379155661878295608847264150690684285091020055818718940705082757694074283571645441609954536462676510153988871623170440030135420180073145017442025399588468038601217599817507678523978931070282909996488428515822997627136168898444096482705692552288606297287066804585694028196547322043697710209350956442798407852884892711321601851436694935713669282914270047134283723309310626661052349477797670619634071317460890092848424576573118193867413926723247590647503172391442842763175233507611883247856617940490402869984140309218101231165845346116451860319644338763824646626413329259937697024726508544324097206478617178602979515716007527363926354085060280694182681537392525204763748089973742588372292087605690884226797252842317168587605355204650050740708437181550919739905487181606426146771111336882572052224346467114428500101862368551920616780824109500776329297035083307325722633538422209879737858714463310343447247123474274436989397586945474766013073299837729786055679053798547840193286357017936658516173897792526051087934130858004515044204869604555043089947132479117439362168984100212228477688002035165924865461441450843210791938786554189476622544747290239833244473375482390134413057288228335449090669784210713413569975937373393614194429204175901219071509584560935414048381395498000287725630492165142807069642868836703727236064455823067307560575413836691300303417212923495292358440265816389075848598652604395363924480511108057412802121758101774199365778497723421906736492322359126099322872494502195956462831055144477308055168389721101141994719075266743468732863065502116491814933029680512185263721951137080269051543367546742092830101560264935208259882120541674399721787017349681547168438225405807330606794594162789590668827443441677928089228289235641325839439192292584774319564489735032270733281041821674020037724543035950381694516992612020309372958583640264511626152603833003384466031078089671800821528550847240972533512091253431882996296397208200703539146972263617631493859722011037434944317632949706334978746156339036303336639397389931206991354601963705564659788412786458071867289028245144563977345807362966825676253699889831205365335338702356091309059138972836515406668924042526354527696801270029972717378128462579282990849183331785763850084637953753799451657958469940822384366539496649914917298176457033658636517899087365284333480456762550580258046016703435880899074394650746482293030866593455590151194950307376268633985157759430575998041135313236976133401666956120189206929964788745637235593530769557424829843059485672396321315337565421948873937876728882089186547200396918609698278124519786614201391461096452247384173189383340879002338585669283066403847044921005109245108452223141015886461262288748329199264546564304831222643696764758789215019754430762513293540555974579127594699669991356886869796078715600930110237149561850935377995160344745362596299850578797490632644050299898899008364216713708184568439531147860655882522617699088591286674919272196241850847356446352657011068335814800665981814799014400815164626870937054594905876535015035844014150782548694929308945545404633522477148892057283141028561111413930313463355188297652256340793418873741227169754154262284529961100106292311066887987732882883677351444700335933565691105064128670300309736569196528526011547756281000127884786742342835592243967927016691847141160878298758551048454559683969959966833796690702341075822519160815132997869729211233966370039584463676210158737190181009156697373202762578426044059067084268921461727666211914752387252876054678336177266754846489354909441464724078807404093701491972386827696555406840523384408440764335576201683463482639091301230747839131349637034200481625766552309158616975024315556695574362187312174559855992964111203106805627918756707361250170950361327436923367335274018379249455739780581216204744359149023622719478203026303804926715199534491913138371544807623920791548880181765903574539067121940717920216263306517837409761345450110422301688349813419543393435071625751495025860683501316529777911822860731043882870148150421618144424798225826391655445901509365533636133497709551750979132999824367135649501503713672878801122848843959226385788939151309125110624330220109778846969225082969413145792798988068317972671210572581024209271248267194077038625341639207151006506137122285834294951098718061113844800492821990955192453217809829686654904070902198905427095005843329547770200884411014951854017108975003050732298153235288220706364207140530693725727663742209259776799112436121442167445501112914367622230607468724154696580347320546748376997113301354474341792456415206884723766890528745511859573860136457110215257461365563985292262240228767697793153024065863813146251261711953577349448184941639327200939510093139094721138064002566678830066033220798707293691184220610381842654132519132925658803960554644083005176835861042487843807349136985991412590008205089531873011481720899296535386983630934477953320702024733379270934861805237169895159852117524094799458305067935781130829888508055099194538452355043294424191869887951021071988747501560053691330246451843433945481399029214878088728818610672263557419204931110696596938627456903825004177580312050335968137670673161740354963905219040363263085609843193275106556814873294623777229596348115320454127230077801323877500863995389536063876822812073557660858689919387439771549549194163730304318501180869970835029875167016128190905588439980243484716896427453538099505849287575708253648689759340766393011997908844624614062953650695089564139979853861785324905118787443384547044994921316705028922047618069898795909258893471321359555539852233942686797883015423728634122740049760164224196176347726564487431740668520406934932305354843895877209023229461892534484822186727273477166509423690851076856059020453894851215254733524323369883610029551765892306618070618392028607055398527204612961508835250709584942868759458362626009817156171896807009193944266376579619853330687564718800521078939681565267035796910572239011801446824077500716847523523284604821340496566673835629186721095079660707704112001746755545240177320247141922545707940199159387165366238057023206638100238040621490175842028127854685136314868945745785195313409843499078155677519609135110378065106143227816251527775601281832238015471829387723682922199211378435353372247554042782295324669353070198367324752526293314241729687533641946301141138800794868741017594664149873530581313006850025840980583462413539833291193372916489446576043415508813127506221397504011341225892827036394617139575886574491352259520468111275225293188708003987992775565354437851306439910911129676160038495496269674362204787042861855362702004448359815632325323171940848831902539777112396933228028578680375904175010962104335617416273053533152744645108215458182844216729215079304536121826356147647089171479480824917556561301544139048482882975548633603491910171046511603929938085246348196963267631205256404371117227290451168856051129098190139260655504120262325456571663721270007040446138372314010790793176694262526174796036358691971738669687533968061387202826978153945507056385166501532532547670779876667926658169833461592963482315304247885399250669836957174562322173080931139758794395657859307782955157391016326461193598767437023181976471558001481657161660397263031324710473633040214524198367691657280826257838501447274971869165227163133249639349913990671307916025698566308744114454244301367341707660375797854399694694418115579632264444961113420382909828888133770929198934506859250020269141415615466173953332855443804926345924776286924375326309141504649908609799540190348044386095538478033700418524908799770109606990987784601512600951761944817786996471837781630875962588819627983320033521871576001698961146735940861894632152247947902182812611187665148932417371817493337484713219658988091395699025101274497825339793158551907462688578384438247494343956894290996260626338769097446845119513476910497589921665356071377008081491452936722524890991903512802733442084410568873190576261355519322406385392341981545240625093643628569384479545245585106336913339366379432369624547270881724519458357124649550537268875140973011005333875774174602133897758308035425303014725480895495068235029776583828899691344515322096772214758167530602856838962774055618303308470886599199643175255649971843992578001418105900514510944604493897595904642696876375319763456119788752302715511118826039472195495814807713884739925125887499373956569005913917476774786878046666144849866544261193092156933209721668359745423216421715537159461386738332951069637626015919434844375523996207421581638740329518302769066446668786581417530630373892604353134352971302934915687182733749262193360963088293694680309120525218268769923974458739599153941978911633849493311914119120691926945599013595637210329830093044534489553000911214071003604590608623941120159813404396873083627812488358749503284549323694232202657909618916994726510827037341498824541690351778657415965472092662151935944593624622106574535971046530958236368840923541809013214934912478536325923648727593965467563184143129639002366683990069328037620863933108266983371593425288921939190811030505806181639387642317976247362427438673786481426748544962969047612142097560041226890473704176064774117822612974040501297328957603827228591316992716248886176088639545459621178203464770473319464591198468779850964334539797456926918597942489505280025811267045940566562549616751858402886040217681523837090425163042979047705514717226462675785751490738127956291300928983012115332065382772262036652944410321510565173091302365065692468634600736422251761474676632830949489457384250806371919384506225570768201691509431073407446773416955470124978060789619655693296378547166636202095526113414009780150869922477770791820009204390405519649376069516196319877668120183835216159864447908575813232118413934444354227725503151437477020166603470742650044179789926601108172382493608808253924803438845661806776525662940893388364814680820466020107744902230258307258033738323369166011079186018779934427543329187513878466764601883788376814752678892785323523423185803542571596484069440379205424381873969202268092159266247733194767721257146412420592763167770396536526264621936090320346967651409562047507934677547991383229173341264266323257296745043548644841155593039133594074635135466424054378031353056881305906250469722605745550929681119419831470447254226877390667602370387463442193806494381179533524015492810202591367619443479314592636704009784752854064761147983420513629240835697957705812427376016758597150037913736789721407331140008296064567495063856282074490591497092947567534654470201547649892942264470760381739144083824499102398886170688378314003631770725727851473842202446594557503850031808311312835469193481036612774950053522270390248029505119646571376502711682450856266008016231907402054929780117792430291723619493857773850458514790389471235953780069389327820385578046943331495799040043496788436492910976045909976838179479792030592824843646970110509214530331788571801175307115751129643723727111642025508135132469503593777216186769288780268375973873539709156020734517953364709881041340581932288016832233113811962054372258714035772843107534746355701522738970542850722916835447295376278909427274128127952624420548890090321776126476637953849536064563229482038513300701366665317758749584329196311493071947277092572064897810241584829022136748120702691238900913246230395979168422778038826416258141038938388416761122592820351223539479409948729996598299576536384379595371763527554321929305552226464837580511258238402855149342306922913790890943320627728398972714328165135431510966678190546234271999292912687026100015820378154042335980665063248315658761147705002126784533119888637801839843481563405068971849647300235963049818851362261522940208500335312954101837914536723547735214945513972360049605170978559199576862226402485303479213487389922347027200189744579459327275616093463779070663696092011968967180028441399813040799774571896604948415201015650871083956838562634699794709400542523079852147223734712586528762466946644842995760428323565438995990329980909752747558774839037792539130499917031057421502545869175538363136786845702426959953300258279925339686713497012341628094180484382029106625178917556386601568582896014518031153138545291055694602704005492367261661132763844726935075222501246652746088180375070416811362702050390345858640958221318270306816074485313217302244843066310837160336631854933510296810148918025795586286584453989066396021120128918797620964358818982807900344415269025320548225396882091080798646484286451863282621542836754627673555167446678915264908708806152590090479839349945408347112223661146879546319216194011995626144266032066285236581141619951215514628462928297837323694361280901599886876603370413583325339576738594004955817133779039868623222436666866294780922824542739519912984923071988753006937264111217152607102854432511606025252688061066128984205830263961507096195469219778267418073987168240540639496361411043315526535459435770152308500310130205423696138166605117630138301728773175438276254987404635596446581480662533650331958513997737204330213930784264751186574400493912869688046695646863273292102726496846040473292504505146295473829561235322220778618149773700573388935509181798443703458297234216668106107680893847009380039287468638076771295209508207419574078401020419921867860285576496832981008546852269980217801998948727931658980760217374545254551558813396034248369506922310228341628505275557130526441676519696831243175823177156954614123143454255622304299279016837456686298462484110976947680970329306100672517667214559179312945149052360973938098005151210382284569825041205060590979334561922899332652927274117005510040290772848976808828447422991546738359099570069188498042319684782576949086549835513228489780658121719518406355325687434099008602819092442366984913420043300250485778582475859483659929079718160671671647518671241342955126968471296341702429992439618859958060476697505177221949661310555655010139608545409871736726578489575843928042068280030157331301553249948344466015077017669397736660735412284914981884170114582198682508998867109331496692326369266494087499213857788150866444932355087129183924451287555299104965094030100507420131739627690468796922594685830527624956719296907572342776822162130935510222930909784384603974469953658935096887561271623972596655969612429009645036818560502186418707442482476958676259384549147998220620183354749202341964263056391642659308218715329547037332971618287021649259160687753476790395290916525200868521944038967605149226598607170753232165428493175267611750447095958669986240185112673158977492881926204241650139847381395824623732317052372248292107481242751767647557941734581745582771098295452430551399377858566289033662161612736516626214051719812663524073263721616425935448524724008506257410417691939860452481778630396612420931693754021834913937066784628989424128194672924043308932011766072230746630896564651140828011557458161654576257331676365217301376425892668806488720429615097154766816358774300060829666143446709671446757822771453971643196222713577427403217011174326626196742048689613147483685394091104470923706010161583399541882732398701768028336583313870390768024597343279767332891803359439324393570641898991299205114999087551467978873510618674212466896779714512583799297181450176186529974405212456766767863285836809199488923776445876201078424764096117229706272190742634120457728249534389658173693627498968153591013526838040233972401083904630618049719114849922944557817501384824159127974653485351196348533824839085232731387271337059055560854792438721544535530069004187399446986402132970398982401805398095310586250197364420375904147131918493718275298578642627838128797107647834358154863095168832180198396478075282932681167625475235117365156930005487232811460666373048677345847015279262184366547552805801402231808325689055733166628114879061630894707584109630775017291087103046403422192690144981878790275001315913293328089648161349052415071340532608098813002899466267607398652007812984004581970738819561137912859701055573157955487294186938419206004472566052701137389156863476671895223403528150916094837592769665417487438789918493996690381832890201596010290024144618767565405085860647694422807980005971795926463426118946417473885554569286005893295904340168811740311683867626025132360864338507463152166191138646196796917915149153885227553823771157355348838855585208926949618469200875543984895788166156544785097795797514984227351308778473860872677521672765059224886429255427282893770849611284971927640643383847314467594607464236832114055932414927653155560823410869496667954788580372181870020423351541307523684659610282058405648634058789018071187830932844155211462212129014398721548212583660739471989592154842490882765486344840652774663225595990991631542122804865884396054111650817097430970765863498213404200925531379168304902921963292986742656370739671062797474513045771470820687115570535591961725389637907075679265591602101111252701371922052471164458253841531475405219917938563603376119731550510888106094801810747002331761956700685126163527994912244981336451085688853053849975570025509699391567533564734840613686162253329819894628968277513537560806567607273670539076222508357515589578142315914418899012099833401541961995097886522524709726913276918866812531766451273623132133424798084416526162957513932905242414982181672840673651448729285134524627820727482831159711540102262394919430701646923590777671263139356813452230370526263600386277154051114783222323147249069300605635274829809789709372201705585371419473825307541797073397756045183164974375588778099132237981170370131659884730918244536936076579249141208801015095848191918134370015738649928074185968070073206101372288040115344548677660571935856365258080804951395960420453079340763204792107854617737380052133496983852572115214700183169896954953406642640788295029385908188511400598948569080500054942935876873965092638075415670982374280245356394312393686857703954728479330334924605986625762081718146494198188322581799158389194674243499838033809354299424434567802194055697579115510553901550043984567462160884841058122644634120081731405577768296801399037666269000382619369614332838795238672104073480469179366873937873502083824814850113556086926068668471157571422438362900885793014829109925170910671590097708294476535920532344346887472078145088156888858364942456959494502218781814808964054915014274687046041001567847189458481860562654535922671233971644157623943803594386066762583829343497734190252848128011948504992820523785076922290812876951169579367281246928728465322428540740129214294907587059537253348975702263680197995608869430321146585168491572971799616104040523834724895696462500944100273287327621044571988374977024057360570800153317219587706078518697741987376644190053408423472070400625839905600000955567715518910354644495217418153274692635400445698925975245968488117173100136310933580969538013458076182627890845971511752136329562328714541952794942022393831600990283504989883681673431294236498239920289872494340113980358991104442095755302421910793677353215376209397297066921471230500230213012513531998773467267147413938622628947735131973452393275440110246823923974102769223598450223020283513826266852978007767127845564313015319473193306903094610805685028803541416635618045569830560754360762446096017163242852401654153849541873130684864840486528726363438257790522252310411152594235032333118092163982020637090157664954908545249127409647661789819690324078103760021881155865227467707195671711334716785968498790512236212493053877165990068239883098455603042882401563052588766943606121574021898651958973531776981919797392441776000890784435805657134918765399529183469601471307818570031832053663669610628046997333080749307726297066702767300778940246655072707121313617058582217547360335842013931358396363696931013682632187500844622111774615925110414431192373255156207280806683519454264843656752214927317782305446077437145352488303252580199896451856724243279646239960853000696457065306217991271791943314844105989012650638020510319809761599848837790472864356692991071411004270691409246480797804448914990665093682872299397226655261163191779066223344629822611746675937434613966290117153110655895107566065994880445509995003960030003011862497269063788165645173544980907123512435816389490134296571107943487492529225781461522982765188270461726967264764381051734666010234426596959376727280017111348268093276732132623990019671129605203671637897506845763217188764446446610167918857526312477534810197576785051757866438962949552648340527196497686601745006020395070385769407881979498456921449125832074715271400177543160107142037447937902565696704211221422003137424701389269887265472195373955250782779022347529286139140771208807296922112785501000088210257861580692596703077897695085005086503083150278835469686623747955541877269158487844286193441334480644570678335890428872378897349557809110845191947690994083214020327529181722872507307681040206908557788949984523006952500879643917556830870090483380896287790951650543258572797522515607883689676900680348446309247180766427355916125486499525489970685879167589237116787008783795289038986564302047461143762722759492375545388648891177221606377670459481220988490425258966126180641937758406501343943601889694882022604176768237515010803518247724184566397742069271710846917853378499106442857155048888218231042168876486793182557418682797349775212513083105090846860017514040417715070381471006929843193724233692959255676100179276009815848793499217109672679187010633845381255800028111223316901022489454914276038102252376113460960751260684463992816512255698839889112148945340119947826289810902754465773721099889986928621046947329653841882051807762278021989681312257607474109259171879595899874414199653628246535208635095315921601174313146711050553567636251495814096473696524749966758849655096307916224213149045584515896526391096137780973098444908771975526249224435203263522448399447124337934056078646325377134345237082965029119258094778655711458186592978233492433985355801923579736476950503247689362496290098810451878680329920271553213341468307754232851814772814666143335225912191766989257294157725331318634298706315392322167073946592500886519908964092914192938066632281350549160033066504090449290825887487900996552479755567247661515020436819062615160528345877498484666130619309199306507227824238780067280697218263230073871268918366452591000482148927466282138459926466060819053819984999020539771963940171373843215405498990892984232820264823389989585773714420339727378719296329875483410689349238757634390320968111118598887560845747917054989027078858054696645428633668880780025221271002331151698458829366777435331033764893979403798992112930713181968611998291972107988680131398009759142592329742702623199375943216343313403010725895813473364624713253544972610753557671137830169971518526706325489860025233434552333970926748608726700121374767759558745180890956293766814380741036747225369218643572296637019713895918049303558505387836689348434836575801755937735109279929602753107147322114285281535280041657428223504895202716056013953516588504932584827164669638608960121568966770095360621165397581870694432356918975751024375858850597127626224476824664917947446840325477662352455175796150426135033130910213897037400970921268995122206174946994307122949712644094854180497527674080946786543349871083819161950254376416621560650406987034144386704237573591643442161392004629184848333581827685998781076138583970016833646239807876468857779177916891810355921109644530820865834380848171122942225430693766699308710222011499303372419315618272266397122091081910410601774641356838077267010917114835765318409053665681058033721733286596171309942259586572069418101315151092357414471599192465650747284149244162370745248407193687055400973927403796400710015161177248133444673530229824824793249653828576479746001970970670151429266373487827167928204051509076016082412170757085929879394377534681051063320107915691125479196695052686791281120437891737018051352410509109716001457679533657103417054928447474148961297547631561504249645275699877895848115335970358262477092246955483031624707808444381991520629274758207077958156523647877730430215613698849436181302399855734773821792021681234146689051266146763076351121351312015885070978706137948167955839900707445943841737360490240500027009963734637956897814301487040204096572996510121563802981882775667112576646724783258118577392432701572059264223885116289277079908485043271598409067461040878809228749184631536655892603791047430807693405151940288306974036059717571766673442974038426770922347431896126754150868627542650313969534007775934620036606107792606610345530937058230213737957595688937634249175751864096321566046597485137699979453735169345665515836990938840481782852000268251249571088816008592630062098778543425819093014864180624616711586742867014611704117803163121432353564861383944501458453170631589331337000241318475119653920744485273380375051704863907874997318670005445262560786306414387580672347260446214147768596748545200066063713115632267774285775740069478468005368464431106350814105434532517891632650511502081179774866055337972812085354132409241030486720841899749345780496037163065926697303818522649525867570366570833133469600623475940270380175696654270155250826749585349847897099088539146375559933975060127034493576656424982528256834761485354166167159922236440679283989659566060587779022975251533912373522547636736985370859166017120543994072825285510310446559351865657890623769647528331051346414830394144858327237710337564537637924542223980642049595997357124708066834114553553953620158284182013979921591012123683964317114873919547963002634415716672286417470038233762100897278835077383537736073873403199205659712374858801494880338565133909621970449552343600189429872321069218895975041216629991211484753141278434075425516173889839656361792838674553741012222340145457211655048239319890239635982938655729522212574405993903921803572740377540235077792735430785041925364701509451993686501954008912738454809707847705247151434811526651609872219785990448586937354826356178416025478577505124866753744722589724405631606002653348708085056728653409392669129881998495652221081601918823681836648763460818103672075830585051381652526558235158431527762181178085099140003653947647485684646610594958300290881835063817089578733291290053076321145297120364835040667041376763148939183418381393986782305662478207907490817051308717557589128576441803921634512733739835924098514020330870645948940219078047194146985442935569492410184351860817333642775031214195054932784769333047194224964307740805211607619060291887889662212007564021089884026994639712592624800862059657059514829855640393463484632597699738735070298664408024567678493522951179326593145303671649324860113155930481533663222344543411669365231404870013151451852214518313202282247728850777047121593409567166912141801695594888268136825448675280775298436352355806928163494348104260728156300649782166182813171140120279411005133078067216924423671430661189133350274169453103128268683635667001178569615214911479965946981492730307895437090925901225895024852190647545271582652797762212163803598408182284037637252374752714521655334538492846411007980024087409890304802777198815519781997735019585549143311069996300319724592712377693959655686135835942307506007098777735086713878369140630089892800845687585863486979692883692926421712350261690206065155419247619992292599486344696161375022450695347501495802177141677759553371646878512022751398443203465581046086126008707357320226183776780003475918584069975133803480559300922611064874976915828347509555302692483488768419705643152097746191165805861852813876639893310093519239515718739634907260630790290200820112938221451580720667762405425939011842528410084662982724848555681267888355100654323486883385234211483150563189291882183369299448613334824991536377849100410532656048349748399129164953102605347797863057531068400314471438818175493090141526273450719995784714983430289145929758528826588247368736655559852441627136484991564333938820324291139334227956551535839162236653726555840155388275980653940164771309557047298423708400525683033225220151681566233302882498050222540069924523645021123347116558144165543882511009596414729063035177712606567509141845326528633809181650320113022065008725216913704282491700743369083463109350728496372490379174542097589411552722593923413060642982960050674742512636181353539571763373096919270731120688489503686037271744839313424357385807180189247248029923783026785119575442078287407669549287250905161880042395380685975549972078279708557793256186535716375394633232597381867194716673302663420287263618868404554176848690990713078610801131104040745571534636955737769435288424070960805513271353324028800743143628872440973174845093804632327677496509983775981081651750362434522904005295837973631801284150732908361533715194118370628633682385177636248391258005356238847226947817698156460612292658685335667660757055704893434764824767984562762682069434363961227764515537711579038772709848585954478668558311465012537873897837134917185115578126933052890376072463118631856966817677435965251318010707503635849821543573461250357128575234487245289563237431368293800175731536614001233846823351330646656239317270847924038118094398885067013451774533135993211128397673665672049181191502822345334925824370478783431299339375851131107614141485752546975825031509722026767546529351250702959786585153782089620801254974660680010340050322441755132133926664845452206253254779996066622976025782186340554540324931975940633216008377969239938005414564630681926714863544648731852981935515472085350467330752075233756504823131019393088947386322823687221068220369116949804722804381138014465025678268467201073507364544091689213356095322294484095193521094945696196733434483891023113436540767598351498203828497645357058000686708700620857831784085144510082101236385015657008966243864457218696513603287319582191243035451724078581701749108991405399266361636993861365802012774060401601139389017960910739524434171061661718165970698690008648838930285760242820535266490207209839434339207687932329968751902998760580839590708657123018064966582271705884980627304788348483706895701004588848313441218317260061844556502530036412749488502334985453865506229968088129327819721725121931330578121311772457667405197710860721657476046871156553231586435543758740040582748519309415529604358662041581034549523871642121694672214172136298197321694343848003602876622739127433800530107980815663605497589835813715319187565251431887479719703701789110729151065223595580853248344424380945900531166401469306021540581620856428549465614973711352075297663766391421571787160683490200139685114662049320972577040827739966288628390651328818669218331627487825475872709770339468947345542532522614524873943528570247382075819014263663235579127626759697960490917775132273617038101098171998713153698296122970820091290269143816528640548620993681717123105366877172060739591775812013390228550492796996121551496964852737843835507564977018345518561303418688974753508067367742461158645304819315688724054727541496127458538522495224814873010619038486586465591909260656768675213832821310058902076685396206728004496283570018177911821521308246095947707977521848734834516042873559446674683688932362944766557323061254662212108216425525656552378851668961922774977459165765278007520352583646356449985355861270441864003267034640306137923512303191619780658304872237776576255367653910525204193760917784902324386520364220283787819188912763619495761058565052014273179066379433416544607477300585750126918405457092831861494591429375944837035228471497910146138348535351920821965633869494267047748235090285274830824457207250649337881148485493787479459055489375113924342730693671048818806919359513270962690836705108887360290606576794158377346183536579591900982271159213499351560300865458140375557737992560773156045694030361521614615431042842321941845381185733548262478361469031216455759011557781533743267882312472620292296057261228574508029692514954426071704170862535603295755779859942940153893173353229743420400111677589526883353229345302594977373406029741167092894125805397379496074405737969274068881177435161999752096325781365421860074192562048379813288309869278053294347353983843644928167872787084140503267734086570464526975705056384797391158025695888939756168836066483139880322752123602533405364672357825460955283580911262508331950795404431529658348792304895159026867919986047787971864596088220945239374813562348770193592007772726999464147738443306675119156961172971760418766532553163657952851494746085305300622070297849942680893585457126939954890766711616263775136117149106921056493980475803188737089628078166939262495947167005261759956873413537127083500489919917752044471325796159645063971094826263417419031702010222146134612657399904045610772368279359536614100368138557332771098123609043034397644113297435018981249511178353905840394091219011924788940957685041847752273699623952124022491895061145350246935912187520025804114898889595671936429390563060282193105054939634166790240930173423673697628600951791563559438175321009658167932264682002052411189827290120291563168773382537501245270230228972869397533537336421285522110573563643116373413089091767726282199076806215024575262277142135951035738364216301317607679306810628728608924609119805968877754917766561950470930066242812908808892616836081971935052268807689230991432526783506589043444072311069042783620893450903228802095105826154002020302895387667941896415726139933161718420810591701880566973296087332076007886243609380129331030449197182763120649916255342882781528108433118537650955176448632051046191527422448925780697998761758178232794336118754708452038917010102562402714487775026932157310931688263888793088840447155844300641890705163943487572545568684164899393448763626244002784978764646969441160681747611299822488420522429647825736254651329170013539026088337378274853431693407729167324080266693606454114030290365247646990397417984832728530928073531859723741603704428721716978338147264947571738266425843979321675207940856074667545177429416417486750536621800877910091482153465518394225487676718904743942321084053925545379999994538270477023071367911654815328352507647196968149180950975070782109034859353958667486814680235085971992387200869426817431388476196330146748519893807599537600320531369632016722374278124725212048452810148037996921109744873111119822720395464628485732755219327061303815498867910549330831734806691623489717927746141211910483031376437012201459270128215263208065017959236232138957041287293226179170681883195038272807177832765636217574595833567876785286423623263135285980686886736990422742387487339736513276767863304205015040241083488284898494543898431273595395162806604834304103597701356949948423973354052980200138362661776240996570299532391962857593067671290586162088003089594060069821025255304671011795408510730733985791610028076303811760648378399307636894045655229495899162187964466149690714133165857454605505058466056740779316917321379563897709595678978846575998244636010741432938751043132431528549279466495572415762819050513688378937467641750003037543423444846428886535634215858281985885896523803131840606498723456950663806942136858309378771416514328379876526314224220794719395415677384281261265487133581414921924277668043420346293208631115858683093148935934880021870491157722312198323290527590866277390837363175964177888711297503962852637209720173381552018834773333398249323953684262052423725756406625235845896783294157554089851557590178225490737727992831738006387314925830957914656979349618905449881301307345057463628118078478816594083580208691563056011850658561020866171061039638414024403169519081892872380616835366969819208479426783356869409097293909244714589762623189289856861681737187932412818085479067150138763996096012637835788234810462399509036386340112982795216699061392342218780641929858426957095666975450242750105649742400765872928540388120984440933357575123534325735871689122379873623898432897098148998069098451357474907635091640816039560455807943393940563022453134486940323493601369419785241126191676736015885289270490630484610460481012014144279780344813756276212449240609822508697580726541818235906945963081755245084248852060095520645457364892010655305517485273193577080452627596321193016703110775528601386121326925053719686646539278147658678315973529837111549869123633897256443885048021506721241745536335584892319859670765162411463409464825481867316082892353827880760529218314732831716664153081780831262334230393443714524219054528958248123731172866768063900943408198796967179736895587945426016503099679719765454919529548398006583247943463667676886788695512239998670902179966178229837086094380504359715995618512180650538629178126611451028626553690122923757230663521920706587509189070845212288592971859802160583274739278626335199764746812078705297945532165753154213204033893495702116608410723487509148873246968185538640286168844572966623311965582300496963398771100026070751893502108699714226899337435156698595447073516113464168007086074182530002161188863208523296336705936867064610574061890687921708506438899203530310031163799641641573120263919903358929547261365299549975129299067176508494902047908491038274106162712384286865515180480944599093269790289881105577854661019101117417213279867747025642938693659165653977260186248801386849602168948053616105983388950286835678378657063563891628093046195462459218479793703265772348594888397720981365746023963563449298292135031460110195301151189232307975611321773140121949792633604910376858237804057742935809543489689590985034202899747191990050775161304790787908177521253821897057750412623547872985970589846242894675972088434666344750164803790001193082777402967498903830570668438175759341213172465485404342863780431161739811801855007945013947963437784652094296531180315253547050081254984559208489187079972721200644097778518590341607244094289744581785741526832116646973574429722229098431977757484592756614096891341040401900311928430064818469714860271111504492795912100633720093741418577331631842075892747390064901190630394400392318896229714079826376020652654465611763485096023278479246508955017642339239840013540333038012868033458512712707616118281601409038445789444104039306272424049219024486273598491035359263555139218684050837348281246552078458118965111514849368391049693500727891631805912301367319836154893735903222862826842439837873542888706693779515163764120796284535853183176862020706262496030265981697817801883801041879831305918195079814615102733966620525386322465398864024576424611281855905373110645765501189490588966742201465871404197008465744723344174976071463856051607292378341915992370760450329029673461085567852478131226858929488968449064091117891960116884841788918166673925181385199361058443821344337888950463295621911342063567714053343741879571527588150452322347688887915729505952484106568096439904526755137234793569258065481515873099453858653130010533755728264317327995674759687221319714462302395290135840911777306811557087628995238815273131176547109093342354745570042496558067376127240904476330080218665385858070368040228812362270759434810447991331573417428287481015954600917493267600951922280348738509835945258533380003497881680020344444336378678313589985494513457443768727147912659527695672238886344112128017750568235112159348917644232576085099077341602996145727704100518852619546433362995474687892844179865983204447574146053798952484114309203567247896590425727573827958131861059294133706094748750433400807727552893897313293659361882291497630301189967483931834515298944600653121359149686508357694526519839861111147956971195157407818374364583236170399840242392828876804039863160544319372516688782575726831054515431615226780652612126991159799614197471620283261333003828806291621082045943689055711028356872687729016805511482051253816761640198414344826812811568435381126557080574193289144507480973778093207826490937314931428002921000360819210874020679168916756847679672140070095890322147238216051621966207654544426070107997265788161126720574592505060634094434937053293415354380961687764830104039257660607412759111480639530677079322642284140768433958803233459462346152867975765640630913568676329618509558560249563805181920252496029073249840444406902887891928988256392523039363098593127926969807109730566722697130437423278372667796833245694542614467980865925860041030798786958596989088758884018208585415480700561618416158924486655998423675970087845533263573757209366589980185612123762446713406473368510484134030821094151825841912819083594842260310214720078625655229064241466711262748054090034968732822654629255245115619803467999861822290511811676386466528555915367460410470502520245537967589623891112274392877061005417678917459748754663437866089466710643709955507027660659621433180431750375766685508894103809810595991201870221600163182882545674553645853198710637203275057997983487959368621442871998958709379517636302777368802223418273310641819041232872169742796709395681610141432081338157777588398385137158509082085096092862738803552202594972899085176853180606111136667485345575472564539095307523101782435698595795542348202479735706299255141383905536867157468633637869103511034445541853393668587964814189707909035176209021725112604510643873555927629541325346533164171736579313759569822481283520804183033290866939665882750254480744174139651524884507358916767708113099866725665615482590639929096609481157813475149879016527982804877720746334595185213512629441941550030813668126395860943963837977868437661666615325562455063208887894535471146992899211332687990932844636276217441329898483751818942414813761818795697447935074109752854790465494821366947337871864500460884083625166095273997114178621294944436401507871669957812567240106253734059771122817993277372892427600919325043135879935690754161976203772580322802603628779753631623363490610102912914048077375664812271293209257992511448670598138295585618298620262040627679530165995256921831609447309951738918303005578800773234242524533275855294104349928978389399739881473929927980496336052044756729725629802716567013710587408226095950567424077864911374401171240636964714983036338668640802785715296987000167672056374943229024530787989276603332603753948411801680191325820146693041637482968930157935878650384420571105453065693379026168672904119429106685401001687549516734527810788770915008590142907468706630539384839602806431831802099454314625989164613084514128912051406364808202606829975991494260973470952794836877577245637937997292816788593141069212924881866512789399190295826483113059317797365439851672523374032261132053165004062783898899277379609296739090259402440655906936994925911007952929488165096262210275411488528695517480032560879297397797132694402338818446508510162112329758387592921520559773892775470145870721845400655952466612993314897588332262585899697881279176331347311212952045767002101113433664179104854219835856845233233694970512886518373277943042157622002102448689670233578253948890747936492367648743565234592266042740884963725989161763305526796167146601172362944851178234800706031738230220344029460427382904954035976386829343202976135285542281538429201498411714487521585340724575875101716762847109271028361292499569004734963341596086258821681559320336972256082431806022644039632738648346812586446318485398773268603779474388192118579621181800779009126355853945915311512727135127399934807790908360594412548402631987211825765157258543140774198926978235481768261411844451897197552438512456571894031187048553341080388511155697886451575772786209579842192493149235626393401685462757511632648216458025176946223437727048486261209632736260585521144009724311229169311419916059408857832642152178387776625717602297453940622195757177963217739668856078037335987977294154280372567254166423531720698180824945268401291915205928481471184602571711275444186925825748058560399817144228648391861246485110354970812360013715182461519016552127093939076291286637754874810699332806064661722487221656611702914400782088762450161068836023442823810967872386281992490474352332747687545148324783525615797155538018204747965181220823855451132734891458707189127786305977314293294662552057106629564106944863699942401541034887160394482049130761358507828515620590621984700724607718799996159350248099450634357587769974893487700713556280491792543778072505155014866647427780559813220529118588527964532403702128275602171463371695530117841998355892168164372723997826630278585849691518509539402273295473260429992789021509115430835372521121645955238585160245900740808361872062899057632696319422512205398896825000309167273094489460778716495398832668928502620265041060379479982509246467593059425187940277900886068145898781379892831784385679205380053739935932873967987214697983833502926418120855608356557120481702168154209082800788077086672039582335086481293962532646548032730317246494206936198396897376252246621055054509837443426115306521271880776001921558848056868181279298288876380421726167411488612141189364363963088538117900324612158030128154879361151002353717346030025111563849918059687590407425250300100077884261685470798560154368837904096496712526527188602508314401539164968344813663619385810727720115455343847431899707770117218056914511791391045350916112633366754340403249125071504410893429764490102052579880326261070657528193446281471325018120730716400883709126471774658779238832197815620883206840027491349964785044869452299641133194413092268580997443397647187291320670143429398210978170244912543666540884468776906346090353889872397826384050918175561597985119614379727930114432935632780211385153564323596647227278161206448261877040684358048519899487808058172637458417609922773060969622821978319151282803128610343569867179555606655070519046574336499559083310526384418253950399789762199884181613339033520493867717500791719852079793322803456524534585182488942157154397347332310541514477655096999805604746552755920681808518289673925451524494403342345729260398336291647266568010240257585080700342266911876829101397368567273729260360122877276280924727920781801179468669433100620949668153873515589700268023253735418035900893991208611142227747247012559237070896553960110660233296182583115177802198082626597603905365034753824301676285587103922230686365142953854924358316723404435208611980127413639189082239968849940703090336386075304681796639645111325423108693825228384218290745457710482420396199676204655176051149502840938981771597555593564801025503759437633897017208167692753620966198396630441408906748044368366746149633141002203397309764045273424552729541406492989889038480470090038491126731168847378144610603407051950662444929896057614299279731732998683531090256296861100735710132851934538080243247657175196775687286294335759046587104982270053252637331882915144870808471860004118041154154913008645254270562435416387176664448458810922781136262421637890169516840995660329462987482874818779877464989246572797707442887857491502321547071404455384050096578968115478478597345771290765782171624352155351988262523893693492797086989177296902943415950373425430688936752266582109785692498235809504023311368267270181170715288162423353021228388664556432984447029532303807984534555651483005255475292082383556438996483383275492191008180360734823310044618050109970460756801167390849872288538389106979006024861411246173166457828614702025109726716445196191405854637008635746195882190598829504147739423864600596296862773973352812149186965826620911014310882172052423568407849393605828692492552922096483308551710364784087358660797853723855571885857931610547618713310211249591258906542506720609187943032198412231000236331196599705480185194178032129727265985155241178505971376033718148610167881298952274443833191747713839776387997258466386768159252427471014300185882353226750463055333524843509036678740367280693997341542751068724785354978570316369391174997926089447864050323724506611437176775380738377124556575490713193920773793710300718778471338799413010327755031370803849330023391450208199918754898730707797280527016116744826648394324590080524751291729010766468621026059534595692746158231748962924341646978018657688098695613513973867657872526891815583326027078680407616064367211152857376424813928321373456975556442772448925367062129817124052849864462539912244408925016743742529907460078283494083221908146673268744382055902288297941193723860167083339343437924576461244648860743408746133976348509287464388610509027222581475730824600152148152729136841168792717785644211730404434094034250987464134058952529791956262306725170091212102143410435034104804735493016583431906377287780716539845069156518456313194187572299113319145974769654701854660720171090239517339373115888632661079552269730093474576493390105149727098469501484803958756373944087414681669169106705509938870315422297011409517758647381448892351507272596158757089242667175872974870603913892006212484928526463636164182391328783306515982658108166209152503621305099193613304916288165735626545837007212759660484926857809963595320984583425453012853334425695604954283812656862621568889503917370386416116207862286726722780555228383900490922882980124090567268782666876311070235244176104292773629170660292642760110555085010949437903391347263894158307332299865601239500178895124030828738922100664428111098352378153240686605441678989412947717715266160551447222537052243219215524179794392522210896809670641424789659019245143579901451312781358508851071471470950861515836430368862495584837486951004401968195909269275322208309662185042734415938887303810839267893800610987414763800981071396471182614721550366622792957314485587339318607959714482420222805005341899614575898578517296800478171091663424710376212733067969171480037655399135007417261979370111239992140820073628891562796394930283609609435888723786902826288695545960673667276924458788781332607434749710195667435950415956586449340979085961219074581521436387297820470399314525984548570027875209034896668633050078108671306864511271124452775443768326460543188818999709403421073678971433006131662803313722011566902700851560659302158605748832990086673001447545138057350061237491593211470138904748154687462808999556899450408263085546491206171222237202745685389690993863143438550719133424608820350700505851020970834360704905249603141666278275913817567040609774556629786944983514500214322818543228175754745318078363304233735242481147621680368027000052761768016377684820196352539749129056365242907011422560850189231573472148011353001632235823387820657193358193064546722604411098363005105700318500997605220057318950747218559377716073512659121869792627138411760743084980173454125963116675022934468239163390623573434534203713197740534115609438981291161299950920600133124020196821651434353168836446898436358574983438333096128015903858176571640894901262898386681343334668666953250995961108138746125766782240041867896664328809210700424759900290732256481238292821552900153105447218538021068421466707973391789025608142560219151284783311610694333263773922604400676199938547628702483204558152124135501949374632291684729766771222092769435633592519716804065951465818354541302805795486418403450776954321395561905138943535289635906942731248586560435081842137014012000588090486538573519976625760133752798188037130713964767197388591746664693074120827748913475674627198712629856944898994665625661368234382776021363091600717619282412653393325695122383315776831584260803023411991414249772151900251164136750314188074557587856192857081041205522735637230572603286664911165181425155086997021247296326781084276530460667754628333337927623653527656050177407168723022916385925130456413104077013602181054795643610087605250359079863862340152206275452711915121374213765644485585025167365619513606867443795578049741638836619067302332407254495988681110835841337858409051086481393713049404042322929744167553200707636175717259035247950725460853689259737915464692649506352150885261302146360877188821114644751706921885558640271033719153756433157725941857690160671065545454894434739552960604683385009336859586951037742274177410968545646077941048123648476335064122462983821822369831458017589846752542263337413696237995480337374319077283091651604798033251584196739250472665958198223089063543635059288528353896380287875338188995231944581853782501883823159154003260492046524949552200922796128644021874708215207725167812714449683705632024336329296587522660573588358056153274864964581726453948531589535348255490086075957925200423811731705191401272681576536523181020311582866613719647927086151683109213208096840280188607335203329529981964958471890920415184960751788257029062590746067765912202994171064086073958809034571894245263765488049138432951561600716278127007026338177172046233624347002519729634675081534678782667351265774241197877731530142706685042585990252223265456038380277345182307403089675354800400795686278726149810118427226926983649598969138029275006601985273271979958184756405198054041204637127408802622723898296006249756623552483560325983265681545706144918986280627872863515391045902264754627966831790795736591997276076175349885608248138353982312458096054874311025208643813452776376870104513431434654586582972116488247741247071847804486243727908504934806477805122101667809138220760537976599847611709519544049789529952187759352007734741831477608581951797878725189866242912614136016483747783876361664767469667817464468382776743184698257309207227120277096454917396784148582806552404684406834801039813113006521358403241198676552454167999360363209573035627645658181700864037463686864451807618699401065586403430487811644480739183661164642890418727526043866180891729627230079249383845560987577463828907062060067751552302949330050783487014181980722949807122285535886813542630985699607628085508576813862626483817729670518777662528382803218870910001855229147499487250515025434646413450959955282117132590377238811768248284341849426653516167443015326186434043997926068538597118397056221756538705701231584222948641264317553039626334737510323594263097810529607357118717110606106828959201943232013344314469905671957630974176417300748242869106147536633032364166068742052919131072696592263001078943795661468183891455025004735757424614295448604309383050490822256196647266194750623944070735628265936111102681982824049068148211986455053940438566219945054112837628809690042356707737867137500635548566639029717986949007024578672550205948706071753326612295547464518079440398469884505117327513227738483844429412511904831161124139167512726121590338093888060456872827777125816297623985962449081054498637998398227018042314983526541043385400525300906135815081324922459496631604894746759925141405268148611258903924382743964891748697688086594447371444871946001961544140056907222327125013379669432681105297891339945088386854317570959081516810573180207833519433489921453984190994357225410494915719527288640207803901188949032918853134222189202111876912182780575507341068946495201376813049468455631010907210706534437113136040208541440689492118803543296939528680665523634983696485991520187319808627257540404660913666786533681289111337121557400985321374378534854820590962095517328393292605881680460260097064269608133880779569598703613614284543407497779792808788774647859034332267698734898433289399016393254554108806517497305967695938927268942151361201746333494293757245701019263731454660093814430297744904430593428883621172111833480487378285851508862980788154199973036238191833643264855476561432167640217166170406980936791850642677948403568563225109991850440292236624766375289766647222270446001262682435526471143218747999422884135857702247835842568885156895576979444257723119908904217533710474184824481103414235797884586382393812363838531376177208117218705121676146333370803727033364035620400241836711660672366167086940964320623984425296884296785883833454528405961558433434436185509988010579607789754309664554785253540326899062498139587873684438614954754281004842252010329305073300465491901781303325204028716478359470134022424673469050845048983996859704753101699330270147565567681467235871193521702167692321297500290104058652358388724162435973116990266415072346599349109874929347699118041447492479495125475712806670198477719720205559149689350357836241284781896858997264448863536556750726255626970501014991643276907151739283477690278424625035348866322827252922852066057236017979304305439553124491221633310310263728960551464087764016185655827968699948080796256431100391386026582185116422487449385655637220429997835001824690639242120324763233186354224372717027249371198225778830733269448546131839443796457026632381457266575719217324467009264608773797564453913103047423891023285060938537829217801261668584695568309579290775789530732108760400884152434914114339814850025461949323874058774412276093248059480714152640162037415992790017641140587839010330220227570803175585848000740820389767662014787493679521400919489803612829679843310035895026105342297732340542437513231200321357704928133068155593364363131228449574341257686848207389859526461269252089736586653854651957810411770765411351455510061010650064627145965767155907857016285318020640149580466382830984306256750510942676967793192475509902496130593273383981494323905008358637064302863143333884233229348337910344373392621864120572476797948051287574860983622012137081845280904843751177642471040879338859399967961591449733929128143237856862375602615980174998505806684622911127791163549850155016218751883870344956246312358582945260186069472671789236714108079572390786024265743884897405018982429278550039567854575252541664380175526152263179580683890216116833069186438960379769320980206780072715159375753651069854780020090792123495624987791648750436901504140111134932141854218627820115396202231444058146477361722342672810259405180965833780800135945806235023345798482689773682863641915764329778978813769663999001370250100806960715986661712252152166764142497149885947176691933935440429860269786185739008343836094015874634255116285882166432085483465827244920882133493293694531715672425660751801521698706408646741281104823384681195801841447679065387910796968952052563758617709419213357218593258817341124230472181265756289929223301866096330706740369369806358962954722848490343636504023153677815354168096406522937343687693824460938275974565212752912858506496609805819808412345128629587790306054371409612963806432369906570869321717711144324917326886538650144130564903732852992514188676853224960657571362917189513959069210538269118637689204142772219923457565532494567508689237970994141023378884694315878418143526686872182801428763082908417743627643466201975989502759280881299365657622013718550799804693485757755829274214608516135348382966832518396772997027513148611872113088621932424837309816949365322982710324094846446656929047433650556794698456640341598720770069829402949133490497683579285305633141814132266252638643048281461130627958881991682268700020655223687462363338742168336592607664444609002367506688040291600986996098818824756006532353124059695935029146294007975311762167124460452343363618716350311697274901445296447970831674760283182029291661137663749278764647374795613431248579927944386196179721359094797969475764087354148693635333361199798397716489661083836090251530641418647673883000270825901077317996307657438873331384448735677682063297387753854886349935924805789706827005681517452944704785173432056149544478778363942724988287439586368224240599275543015803857163601496836979619589225298836509282576668773194787317268170811213671269474187466715504085984484572195467229672049616182334333060766847750360230790335151638306949036909290324250797470919145032035031084772871861467155981782059386494779370755203700026517499557556985448580433195191664343693215226212231327218328966176188325623718335520238564359556349397873321015045122392128653771510587567658372104782777476988142872652000301441259672639288963314151682232917113574534584706219949753501879918800706802290915983963820326537790475539516307668184860148896662544693872402612405169526558572842614017346565211019366857050401651298929386944508723444112077694254693421597021096961448036898773722276410854888239023841606010680714452405195605787806979589488709270347634510270426159553194491939431675729803771703428630407353023706838701475854119438748332266015409110879223724115068232921600031060873064016139461407076402627507853075628044295060422649363360009777681030396980692514353310057471022210961358385388868051564081147377382033221364438070117536184186054466656828099086573463203420271118109252138531116535109970869394542674931949347349300287588712101710891507569138108812179460028368473102233196043524833000825521675704060818036637160769674966155870474735926042886755235664127335036549177215029041258856938389658638293000832744299868905260202108230425594127583415018858304084131958707533695725523493246621911420188412948733719651399863299314208493929070565542407842606061467238140588115105098077404856069414555615154693528263970554506171035728034791599437441840473232245053381268903718100989121704843893994314586247243365211511815465587421589418121871697862778197488895090561214755416882278822170350213349165299478302934087243361530214987224106116577591019219147381712768714695676504873478422982540020134159941830062992356184956061649579881071798672684833952422644613856523192273043027853621553319023838889551613075435415815084886462538165292670934975311985499471280346771003261122943850360841141520843107324116433871986551065999935189911618218997153879710080669784815235321471750526331558602375726087815237446159794185475184754306943451040780015401997869881182687140836400071411069171595646632527126139371620787927555055096958379707093164982887661631165624855851137528886637977688973758939039311318517875142981227704667782036431031660217950806536867588747870367694741013078816919211244511593086060555056037646791588654324277619079076992088962521135839177535869910918645979967923657121433225776594778263248433695165396833238529780384639142401525722933199277032767535472229145229383188290923802462114403292325236962150169735260785002700529947700718668908421462242980140425761152526666313187059776775882685909064039100226348677640405585602473276497503478870688524308310066896368176023141708941574178018268905628812311708628590105704384542443917729983984696822847705773984917231949806238276907617110973639272347812876511255159848976903857306625577907609292211965575978435587586384840284640980911683455074282667378646991467643746244497602264296122713245303229189665979236462536021684328902492600575292618604872259567236302526117455650662090945020575346313073805289761820038252487398854957358656491276261861757166718041847840523330423689314794683944935056816018697274593824698971225186119979797244365757752724421620735031910079830223642620206754982969027031605305446100374533824179559032397634405612278949850226629460302001719199588712954570497378363395895079708397043091595395748208220018851882235266147310018600440628465313604019227975576771975085051849510234938328483502815403958065581093269316489778669009468911364474184202821263706148921841673279696192796220686549772782531580740769217946435775463425754862346909436903083262101845868806280076270942648124119037415691336263929682113378365336134302758916053665239786035690534768203385385406557460283038684269041050963404919123465120355459687196727026674979081320863819658270252311138464319773696357997784299174251483725177483177126631470816466067625341780600389015205141538555020029886761550721484491768776440884518897675632974989851432843678511541982113035343909806056108164676034983139630023882529134426497202352710914828254230524836603494873408238231141204215359323957361986259784719415624560654017021792188908406464348101490324734746769890448819122148456101714361286701565393145070037165707798429346425966497524193014289061947128257576963749406012061384401366131117096874384330101634547057534562268620295715989407237124850671322249303565311278498279761914267573687120119463460014453941138699435440491617109642909689405131549033415247746558226675716993594134501097152772350241646684612697422059262606672519877438703164109323920433603266909993429539351428123520812716226138135940275757284087089722639300883860465541234291006532850764928699745160219878866832841588160697366554623464094537865081499714036731139421221331283018578032671077172529763334051956158398992838871478899129753453517468741625298843777861665785674313414793435931999129856293767066270836871406267700198246989227463583445490785705290986785377943072885226230819364198355823984286330390126888963113724385710984682571077536157668700473427699986412205764815837552953066566307123164647108115153506038372572882660774487702447027005701645958916206319366671386313202288425281916843021868273805138545784449955753965535570397353520710291863813066601453829265382945716061454172728635426975317240660709757680720150764125655721723740554017230709561396595545350858887812988843655663958214146670254113761454731612881161277897969004668669542233447830189126116557084989913334766935846743827922236427151580563364436500220354863291490809651668584017964659608138410851109268566408813458077059142307079923473445897210598177187889582780259427738142051166672526158492467675641405364815390353893884483062293577224875689619351648891972729850974909127482316867631006836829727433218248849543627758963355509028919798838365293778118885416813959443876285842415712329147936119828047493977042317327963622628349875624272720033898791438921367711043531510724077862046134106254354857727017329252259577357531224580751885095003508682491089580227066035744100139220011769079127139103656924618970228023346821129210534633929310682560197612368661817858854045053681618175840034229897647320154447355762031096096854478743388522332708507530922295521904318012309399020345118884481111739539157176159860481796026475565452580018490320608616966056821954880102312225724743099845613976020541110323999069289956514501897507912086495240923613326489451020240003681635104466697201052945017731503648289740394177883156289954461151707440828937329039919861970555602423889326125513984109623659655596155816219378601920467993798595847772903746986061649216949238671413329718841442362576547275230263665856079614479156714542840759423276447099725330107716102909951526168870980019590967297960118856775964642892304033280249493809560638023756113952424640995419505461303800924970482135435874693381993695616116133258747608625612650274702875219396601538921996779354293488881842447678995020526124505656858339455895661896408746917475935053660958081145511963220119471239300480980946776718392783408296976953182112442293750214295248436320073334053298642380082729997255580205548083045757098959923485496985021542624336769493127946552886800771543899761484827130419067835497671538013094803016738998295786357072169381194902013071969780779511798154742591714231397369020466592250015905853428197616617851662101440323518875850988534139195377509456887292172184063290161916766620026705979325173213417984508095840634612239827083681168645914767220625928862854198516246500998602084824201546607061267663452527811739471952457569894353937909530393158532042493162763685766877922847458540403496762692275020456522647424073800628448469305082545868704661289053180035806819007979248037237906460077060416080518655206555068729131744664399230716305896156777486131470365473529189725067034128317620511141871329849846177606924746710794443845485849598462087785093124188775777109380480236806582438955413938550648628700258638746457261031656747258001129146401326284504863811530369433568055895736730803933649951357272134544750531431908414285644312790819869199788721221232565297999345467087702126963063532825260239694300090682235469306640662609223602117934970161991937668300748474116553186888828902890816142020256173034275783623148870584115928634137052154206031791685740896099624885727669407641474134730433720847994244736785902466123207420775311638369983483752484651736596369164472541295553057011362523496182886235842070419029897449553327301595025726164536324725223170516670238229849199950679666317326455201657329310242643207166691199540459488646139038823172576293398372909109881841874938112509038835385638666745790814984370147958213514439083829007889118940526101142600907819854181802731934420538728910751355106966501643484467160174458507373737327199018162702816997363098140695271806875646888151428402346313445056105941104004096980148126853839398941922932228833878443161552625378367052915427424773938001440590551199126717476121849084839410255018940068870519992714474426835743159193400800584189592798167592182222294799608288921132302457497024178522725768311044854862840391353481476060179790719230207817745092251330603676250151202180764224536274961100652078451178091272839704182244756420999420843426277523016782447419837519263174809269432272871172827681722006452902094711139043057001512297677852539663452787585409438873290392507519852417350276169732054136274113071680908626949030179487299957577304303620699740868811879737772143494458570176560053228989950520956669221446342746117878297896485575844654176913133543337133320550593380039838798258892699698524528044505547794289346344318402372526303274869985911366998031106829890932092470551427929112213764994725745402007458683423564792572965587662363638902569156944398511995430681367238972897489465367353953220612032937431378987737127895151382103004232848927819924204175372174278653940343291714124260509632145951506011162002882112949962020657600278949127219686654091812900378338277835777403935994178652555603163463644655997272876197841818142848373463932230316656285781195901557623231553068387925974493844286631108198971324208115470937534063452620871316706451404279744679040253178702621660916073173204709314275334018450271027525164801509197562187106514578351680248517631225026367155393084914609586054808352982855546876273097948991154628202973384268295828537869153440964598040377886549852230446104631479649164165543671483560056973337812755897824862548670354119006274631873447774134711140182960682000378158889828680861860916511821271742883508475321900409530779541540296707195340310368530108121322556167481032749794639794386457558028872581485941460742050647484812117364182712752300738238335126105116293854995670511928123665292415505064820669034544001404957337985873026396392253364591121182808687791687605264945810756122718906551970804282165664888631335417528053642078187389517428360110876477427107852258607060754766062113888189850281635660334071303445818578115124337544958730694276427285756917274936266052963496544416446297402449867453425372890424889855356372999667289230270056596669096323714887221534752154566846943192620593707688089971660872137505890363221475573503158726967218198801088909870347181624042109786625092971215806129587478729145587464328619019775680342247391889338133582583429746743319395655835267659876920794701858400681199334689251930305191866374022204368821570933578206056989100142895627057570178538986942419149183589281798863866727303386383320163986086597431556045325622972339505842149409640802626039856165921698518978498754525461662451976539879773754666607084229244287108274596397790828765770204287452804022461572201720643133353158020598293518735407272682010729806786321842609175570095612178711948056823082595948833846209609952672334000158737047119730384645092508951109359002457087943066825803344466723001348239139162100244364532814557821152110357754480420529627266435411356177882324978074740509041371079764998782620802802524704556469033813531692049541695271002346198590928986740125879589916787331278559015104801275338149010875329578430586232036120601027669213543302454755054725471681521258351059630324439502813522432589692133085857215592747646463347105781505443854642568055370125340528687785317018287065302425582014057203866954629083856638238188992102013859481504356562061357223517632450887723363314791497177972993739241299521306673715664156020777417138717778617125085487636924909067339991770785738641361912191463891639813471940071099517430731762691565515536855734331082788939082358351912509004463226710987419161178535150288751279927103875886840327761415634092692136361839989530285144974486811520565261154099162473265269384460686843308561230750891510949781424783688664916004348033031265216802292030752429367848917607138526698004814181409850349737208003276219651695347302258718085113713147030631723421402179959389803303506391553100742943124919022005070231535980991941059266608990805652135015983932986252240251152547896462080447567834727760013338768337960560875485300929214311586515152670231919903797640325308121588822234644672540787638339065164257741524718343353095622029833229812764486276913669542827115041073361364762506978922850672570569178195138626868729775954315833918643077203425531065922830584374447565120238413423382037137663845538185853996564625663367293297297528084822244497993760718477025077929463910476760074064324307784904449008175314343407467239405335932966107727192384173435017117196746892951801964429044062437653015905563745459577202741583520227487921391120149985595346656779719036192169742913496000854294446116090386543269946070456108195908202412259133510936451065623370380603970589289674405696660793852336479289394818129997391262287232428792104116036314634466665496359850995114553019448299537750518531283447026528863058326256568194389248486348407246777006662201693564567960789878826969462893845573677499860170870878067667921248314937924610542817997499832321330788029474261916249662618793693456733932941449472286843722315942867375195278696781140360950282141238140650632959053615397600778081472178086823143575365199314995502087944578343641233751708685586783250031023475264295010514273826826403832918560347916301933631082134727097806020835410787259792087721975434502874587574722160621451289640882867862438013455612087396963391125257992170366545341941714413724638033881772085785442048810554952531136459172269500700314440527918044732145988610716333980678106850808048389922266120806926055223992642228022467239592600630917965719539168253668111256682108500829583038882493095767487633761477125667444836129655686852206895345173214382064674197134381085152303000140941823022856547208612530211589132937840922720878718792638946265071814584337618983974854999813306196721136837838522591421655415126543579410215285975690227258606598391736302140240469358180282842144672107296258246992254332499821809057506150684501722612931984440099639595709164107509068616773308188492698058918367868693958087891138092423605746473644758928623537553136213253563721669544222804909043766533409953306710216185157385841690581760388928512245019061609345716500911914460244988361250951504740432967762983308407661183792962359343706019242845475667835761677243582652608926834646565752357254194702547818394274037055084056058635455217448411867266843060681941031189985655743864702328488036395353257945674422395892004808996753226284984210527619655056546272670268293411888255916464685508520966212327494757996767014222947443361435513553662261078680759648482113151337398029812814042332908512598824188078443231296427593164398632182533451002246887100012173484462280399735791904414541782192077358777663711874509245663904589867042050660429061353371784163575083902475458835751987737020407282511369048404183365951122540957163004770204598146418331809155206301133904895187418415812999723246020606450689775110599986759393565307483568234201930307796313303268936641313401815577072453112473475243211940277654576754873567450782056990059536931670034118178898401749013268833198182981114158139179775472438294057999902373663297233504524110630476671455191617292732286351053572403619104301402456508039028846174013600066640795705168463380715339500378663407747504635775404519580811239958575138307131215811541201729174085153768347776729713777445430226210663372609565353782445905282288169740832665770139309377941859353039198813475212850255496270568390407912670580414062373626173714081715459472349557768455458554651025937310987198094560896936283948835640894200036793501884482369049403183727152218969412100465077043506160378478541918091080093837213184134504429487006448138081550712116823229708817463162338055132737677086310311151907709178281614405030732326012554605684848984083384719351509825683938827983178732244716363121011221151925259242789081812179846066252254524604009186424705580007525519218020672169441859489661767216885203170713845584608918048376373174134312798637255306021057728384560551043012909120104660726896363367689955293962385758230836150453008503041550663585412809614107858151627947030398951981141408263408293699964140659772103229951387900543752535489752330063613177808810357099180778941960117329803796903388330189886359270895602418611881171051864090975748687753216344945862875081022765778603321617444812864034610130594673182378760883412014583292017901544298088995571708897557723058486509448459229372243946880744130763983069177928407922007936672832515327177544672843237999988937093996545355286657591039803270520067793301483705840502966989383077971676146228423644909747886510863384284323649579623749053260777559058987778217953842121922644150267859593055287428672556630280777795476520030276318904990838372180160830063034102095582488700425500094492092583422427513697590875579573408155223946392489117185533531443962033868972497350405139433149539675435335349933026026488094567905866721007753356027004842353257712316512149279937766226350565237939498932349385971252835633185864465668533805301684344784111870476173110927478003523727543683543467732941065500965269786565792571412604410898139043691526704465957812342025707231045643347376688539136299507997572734692169590326894692485533871605561341978353098770514382302156876543127414533624512255576625973205829374052756833299468523081755958666211098021311143964044943944954866211369892335324729860319666488002442967747546872563469251261947257730934412534804443701514703927167792577583523564146207169910143428216594933941842556345360998073637152974621716215194777079005845422102321840980362537995660414924307662187968838808092653041117472056669848492028559239986225066815883081474213416019533184663589788847891028624985173826963745045136904238868706807536634838041331618342495848857792961187920395503664930883417054721050733542104521221157015810956137253050617758337865228724405421405448232440995600979008824141537552759127530478691661334257256967823665921533342985175674477106388788587296287115895994590546114076545686115211637771192995339711739482330689687178363223463822539355677605443579125171969546241317221292339936933060549060220564476697898633009157385159507737071411028505864940338189516288486137735731264343139550384991357660383142637352503592281256869020755303336130101579392869465739796918133548509178033056908094568263846906810463029443780742537466890802634951278389031111456648114333545731613396524363773551302789376119484366011037810899199485925115320557002156482528568682555787275415074211376956316760285399821333579840422174077499184054482945280262742244804126109249133629570495691144402614270493815948780173654261948520758825886377093595029756039356440411611371405983527533853798384193606488515358779355145433189532190589341217750682896789623086463366451425422905781308809836946331660341619657225998426182673663485538029204409094258031334441528930113206582966527564642580781099492078627694921763759412554273799392676476574817022379620058177703915726242255589831435744490195610755139034379722090698453724647952376661893925407771352836561932297430336806647551167140498441141571555531844012813639977290731819170628013942426040820041070434815173971858679221450040380364367478003427872151010323287670378994104218994876610785775736251769318551759806382677467330976586021649354802820283455670965351650925016373304160227716343628078692066572044870508365732005286517277180418132358970820626010527844942221792254401090282437278090636398838673377047007428957281280136414822241799482000489957592915126104098921292718789517417257794612942993475373343317155744349412223453287050460517492033016790504150726019896287374217689543579769664269599642979650348418678640099898423510302571977925555337293542831561513649901978530445473396412587425545578055163478885466793921124770126520629415060712031373914652939601811652300828629348547738624898513885348924806220222063518916014592208267838375020118030523099503744548650914231873756215458316971802587911876831533557246106169617591898203770322293155836146367582401720318507908817226542507301311772763464801339001364879008335550705510807391654847140952837035501750054851017236368276598617916875965569591585796171522409938571157459569265319806949426014448523107714970616451838596734602729503988121097184750824191388734852979093627258881914954794425488189364553580676579307434593246585454112269038255260572031250095846525341029705473849933045545491241862127733129508278524009515361820425906071227050202774245234348781153166807799167891241173602877727786741240462256662636973011678664456745064401521265744995944753026964181907360228862306037541079278295381136427848409361021129871895605169823581590961056651878795361133421753447777004078142048199047593354792159185266535162939551336907773488887469638481954664843541723537249182123628206412717668787941849377008690919210300498977301773769640271105309692167419231621206213755170981162162358247853461269034515904670712028606938894484461337082459265168415421542482000296266506702669146851800432294340040379627822253333591131935398432426318739232689659443227558451417049422247772093140878534724962831134966877376157188500822512198457176043689103975711448968461079512861899321395829928797906018317264001385705740283132857588325360787403041774923468532892669803023341412952029068311294142882073684013510029146263974158195309699829448224930410187590108938586695994407120193875825842594745417091706297789569540946830072646633795785373685926203537586346736280025156911334044336704082106005046534434583094426882671665820846612011556407318981274587248339629434116467518933465702350297127635812993515763117903762125862661422252722171839035564397407056747003782997362026415084189396609693350506786817857031802621633682998319499298828767202081603809214350395691573237058533615456104900398567435219852623145235968014454910178052193806619352322033952348165798853253155977635999902522641970525876901198584169232955987425435546348566542628684556056780168092514514684112530587960494755833448798838343738519019242067711682171246839228992256226343152158548237562239644597016781199618077927000372664764757991610561160387594936706092341166627926692672433919965410499660823584935989051462469508315349919382181848857218826049146512708711763664471679100124529207967338504523271417458255657798015363306474938747802599518817087503585693294078494656360363918474018263462477857698816207404711776537055860429611917046995068325505732562120843777890887222332326422821082486170197499140117835677481859045097295460494871802376948975128216567427918573566593165566141512313653936139880859055064374963282430132952704591262890234950783089517626371959578569339202533829339869830543236054066821443251553157887085065284871573411780846324192881999384054030483580053761498421178155134662089273294548750523327299968102509282213170307859548019456034356246114755895127315430374981776585951612640672704255179436677123220868880393661659775463687279267398989613307833831831029176087144327588360728408353809452112924208097382515840140777862173256227007262290624804272298382986836099354591184079065980470776556788036175088368034355761769144298429319225997127814426852828628410879594717164903908009122827160287614958713296580406564571116044047955951081016347133334924937467789860119864645975277636465159203483916781241992006310110775603164313855324010903610746830455831559472652325221282940740794589851034792960020215607905054784054712601620179712011140779579784001390419436369795442480694062615849415527343655591096062162242920268967169669774910460588939984860748460156670600744899107457141470260503982561365927065327063765557394036817099781290792273198445827254149721038705850161256442939816991809562434653400760132331880527953069099466346227888435441632556907942985581169381189112063015823309820202644694785021696463937999256088925618418762428497837849662910598575379094993372618331823836893036978470606899953119798673507491194877236207945957665336054876082356789804927065624635714851728821933454673359602625671866991514234687375086871541233538731849960903451501070859360353895241700116516099365354646752856918667138218447941560687871895144538119291062578933661646073103320911383385406649276313373581393318139000553892193741116947715791690408474006338179725531348861947011637413917850819703691232740659168946568347109653248377329884595211254709373930622777663468788544701188783577664142197131929002146552285692296008117282189218044112863892054306212090704189099541180709244549601541097992756229097990211613584295479288399770416815943910838671748341933103196963456235682719477270796642076199140126142153153170900844545511495389859201196911041035292498499342954086297279268364209750313527245141193021718734639460244126980303103662256895378838957050092936775991916760908426834487618166974274124838305186865658152393634409868316034191788054557671185810746640623646073442663565595513614136808770247983828677216495813153330762697340679449731426134297541884404438689790555610137540476555426647060496884867435528448764616952674427050730148233454913766183187188189705176066917123927303233366214761913580936274794591894289114782631926707346277786865045555542510144425683913664991982245437805338176760029335863580449099246941400067387155573030807345209048330425577384636581616341826825580251272351971871741485982452235522630680626877800335108996861724139705850838350926010125770873728767456769390454304043333468956741193623691000154943478424106597522391976816771482044180259603252555743336853568260929251013740977794394168906905627215081239533747933839799224716855873258393075681795526962634708032292885792046934089715688561743838276644220166505630275274181002640894340877535130413049644331980489885444386537404797916650033085896315746845556062250162616599325980597890523549046242061024348998692893334192984307925371474706760407085358749352989871528683935072281062553518524285169326357051824615371508191850572696095328784211906761599856264684724606604004728169591117941229213969835014401934396402891717174701601516066667773017601884828055035007706817854623518811405705125765517441500440992076588146663067414490117619265359046182570601469341301712075825389054070599811231759052559722238713609708890185748289442756499361617896186252833603969459610321775976950938265796374908674549431113273429715975126632395966817860961237202666869595797959649482288242098625155228815060528957835282802049124229296500004968434150148685975371016568853940452164667643571290398628022859470534121900565575760489747761861535969304717007907216723539983506166088650304675703512666826279464661701267842982328223938674563257433077920072168614022022791277684328587615804539483599139738589039483417531589426083037388140565821750732100731644532726274160029027166926079738942434382844680099219854294271674511348884390518790463014196955924814645682724245116363524533602687896500161128268707626468660320557076189032158286742769441719386903408020117297389538657163392015521982098444269507460088585847439683699123442677603394547834952447451603324960325991548190027407556245421174130605853955820215954595696447345846123252242931852837749586398540646585132851908822637888272561965414393780968543450956861988291789879862359521148621649726228463944378656567887881426772998130888250164912554567447600612355194248789117272379095171153509858034837140341074881489397488117682542221565856682128575241015288692641254410469349083921326011330152249682910658516628582750650596472003249176087577574951239198763612073303553521241299368854103318525529580033606286802237341381463559822971032102439166805675712916407119718516219269105192808827680685320261195216216952977485128190207597545498347938589076435718911676595712823656917133514430303348462782207672131587187352818082950366798646549158419094325801418752324364564596624929467937384746552958203591368201654590245192471784568931947960635080459637058164534204423187328074523143898743600191339638523432171752619966873546514698693076863119019130071999092587713741109537041783422822178551556738241665956741219245430114152812955321250219050752619590764402329645830499941302287253164334613794925070307112007890888335468077642914018003025793852591779596511825012940427030192937063886332939367421188261064570481185108181712179322810583790418165438026703284266709007286458510498010727173555486593606759528631421912811406524103980592302271656490917849405691527538588109573476109992002667806488955738156821955037949714550656115498723691745579365668795027225380002999437091237985581509959990141663657269052585583858555335532553005440362878648700068294747208705906564705657023608398065703124814025615523795769349994318557370817203446385091064163863353558395284860234056535675207895155862542284032530135985098224341175525038716667886535827243071154304006733975705628824251742697899294676066813503986598750802968387085071609837944187324000606857028993145590611890696945009644707866815021722611753379170026620164640397723415959550899462111940722203245836285942831227934846678350809759791397864947404014881956787634679612285752428026760390557087400712284016317203761494646395824010342285669193707370919393604652698076046251080074289108242666820902662015461442311042127476884275896612333900441087039201488151287160157636985723722810583682546340605633615523157744857577820093059136035858326756678638425109811035302905925334948075466876648358162857827408736252483619561390690509478567596410179180319262941690575601923361306578106704876992403143217160756610139547677532091460465723422580284401583159386175597191354983107887345695895654493079052997169843652645048539031183302439055687773066008787611234040131932874077287829731649208099512055525050408732388176805385856222480003821440979467791756073053571536310774451893813510976652663420445323583005706184331583948742505376925320638762293166975197301171184095440080257623217400568921888850394950491017725425760826478032541273383699016425146046470294803177227316077607013583343561049034501836012683228641733344602124366100931239706046772789776473066126550817189904017957028607065013003683939005842782929318020642588931096544584702745792441274942332773479690271030341904117422942317557503444347045806652381855901424703819657392791205089264588737013485647797819785804442022387527492911897787916972774036752909574306933228303049016622899713385006213022830779966983058042783328742615567796586316265919588813957218441061773891126623576164270879768474220146050873539274000188017871380058700841076276201135988192103104969614765347365803208899336195052463233109172358024004046227989153396697822998762452861057207725313000553851765287994355277416040159106068778906585657659554045592570869908438347888018843529776852858606170065714556314364185710492493010936698104022573047902387101484248583088708063116365857854251703252422108684826676081236959336463459826927912411071183512453408176611691994126300428931648247561011827579550029546945934692250026172939908544285085618560327424272256031998120820153098878678493780840365791664559373051032555746540526413478403025611177330041863785671443459444185760897910150339118979972164860670270345876615817364842378847888644599549273530285449311902211339776133008791885727531986276497051840649686592467152799412673335858488406594167825417329094029782696666455195303285100097280281668196630078452393616801089352193218237624816080099092864236959295490514414704555976457932475281826511291515283893531534690595068130656140721529339429784328283276029996580815263895257706661065484284440912695119492196321703432463772609261759456721849871648583016832152492673717511061860455731431360548603613834701382785683262496859885823403113269784294944290311074606460919893998542844865232664031976629705561554158862269370116106729508512556394469852371988842781852163647494739568609560238232307682244582327108925926337378823194365610348306792408133333484488594891465846663136663178640179520106702729878371240358526927943278519609739070763335324465785076962618033689150505997259998473785890048257518973732694298640881560566206261365048069399122705137440889175504723747516663172819875247408140585442913143365173367577878950680766233437983276504789092744288501260347828256475066335549742976774642814294951386193372910671742207599251418509893736021433062379739241479272054255873298683330363674799453074754943992799312968263353256004509621160648012810982982798686361726233393008753895717844718658320051092496216758384059575712056610117917972343938690788999538665444896021398077985758496807387357033279979123979948599821229520327235896112105390927327040468460734204991742107305824757248033237525983387684058573919355814295951417138962400693045049962447393247756250834539906068481159686735653748014464653168412130429568242098061448942991573298888497726496733421642823026482496203399290684668539289535218335065022487707991552705272870332934576726199627820171172872353369746174231809302056115918154743763237406758040398358579287577407872906324241061950355975917498064995289496326659481585701052824113599736311139688874464673271172203193881610233951759372942143571203887347713352013266798328716240043011878983911505433212748060801006473694230954754080584560240620303833364494178682782764391473149917685726944102135079355600726414802269251133328199984484231197872507347301941938442078506165482307889018070579369157649493359362084712332906196912868895741666133866183546577482015133519540831889096033884012137046530411133556705894277398132418290737335757626555184499026471221826859230009290330193175816985338794265357284872812975491709707715002212639263835226432479535827540255865374743635655565894535473084783126939438569227025276221077894904936087511447385386080291390842905123186684347032164348345651161695999389161499590304868509225462646063027662495758831205476343996514237207248304229339415366633104656954351768601134847586191176142677134134875547563613431112319046226822667243123521480741451517291851695033035478220461747371660355308107083805412026268690594642725169875235796750050940313702007471535686527029584619136719695005771611449035949699202854331616850963321828751416986872616497396770596485330913237993721181280913055298386897250185285381773806356426856646783394644751921526412222390924236334490008451403077008444860768651101293645407893614867906427877965394998480001328783727038979733921687502438077114946942048935129607078386676493989776440283567411175108867605866171598086480309910037570176551506434678324130971162496637717717252675838561309858351900143249633747621626765745641056566676240431296655142320993865645302940342038125785190973323845893633384400083181692911200982791705449084686263318196186067647166505471096776373748788313802416007782242139479847304330435236680419716210605788861299168737766519734964479879732561743943866715133735443682389667514433404770718696355953724853844506879190875462313871970694419852252447811642652378852365341187996176211600835226802765346399409845784583067065170588615224861327591628429558061087517223192548080244116196701416148779567075127818589196410973588729487854114030437087805926209316125859067879937909306728121584509464356867816045074704781672478605689372491280857513016524382104691258284218023079631408879418544400253033228895867787071383211059352946963211630905725798405780245301863171603225123019917573742477226182117391991554638586368853086227476175470810839238617160135542760625882024592592066595126346158168731459440943697773663119504806779982459442113657111509635026415413947053913048971540943088466688314293783289853917829631592366547766203247868387942638899531604783159511069893856189902627406225448298185810443015510560816302102293229160746024807644281210441974263148219744558725518626706120601349321496743899294921570125283452330023816875292646661084011387688726375405315964254973275638618270700913748277487272252686037908803597708859253693715394890347709734904528264507692420315090727108092372267978354761698997975354459360399588915742095930351823491406525523320613224902580167313062473525245933795081790897109647832920920328982836663303254733709315254865866916086799579580913056039143318323521099933343989024510754977397664546662911329677458460201111849667759759815578493435747791444637622455810599475142162884620192314327604824280660179672257973699278228629770477133571899780851782499587925814292235314167003291634426010655490973737146005047890745593514562448130238100289076371450430060064414529861661413072146958947079952440633809563679853613098566299995095805906480124439371783250789992344258607924562355628688339131289484043779705540979344992486962236320399172606264729003544905389040183432435107601979595995990429813948245522954896051719556119505923037838902350739605766769972728526344162868977336647006796292333528893574095185980830600837618918363888407640442459213973996236877314476402981992074110769586336453274224381528021374663169472770405039706629933311259833101341354333680856565230429082844491958838305803814397301524734982142919888816112960458672890035783927365536780434139985900613527821872475088466283094441695851549625939360151772147489279259137913752701647174699535429852303500702872359546577964416569800648634818252983480950217020187840049998066771722607983997677405104036078375434066701351430293121013540203615596266196129465151323111282219640467229109804763773487167214880942419796108206300186180982955905362430986201861546275023435414196043268890829899318530703027266857854622922080430509092531568598010356560484348986764382476814993428612421328159260109864087613441158437919196373644411192479836525794310147538487860036813229523343900922968944055067924835799612667264359079146655998730736747311806709425581344912124766285888168062737823833863337466380779897737762011694132000661769405546629898264649509512895388855206804227037822016660044039111974535079655744959393318231500623329177109629869967034219698984096310209921114588205246638345755921075397090024883347198005790679811826805282957510006488601151281584942233488988212689893360234549371190289756325569883528012492860681043125635056652497668185005976621824330434040222373200000997394367572848747830369112519001311643448425201219470165496603147253138100584751203031228923899062010756149353790682039205126421793119521900534074228972618070390095993844357550889679633676080652916442803445341157762312849154307690778369302953203969106305009623168965660332781515605817441947880771635553713437104125709175016190206807172213103553751724171463062428398856150875931749411347687853077238908652596890078811567588571656870419825046707949078203744393229857147849974102704963876689985019517290786351328064492614991154152391598299705838652761952137100590070135800630437853304202082414546290103424288806023290679601347448559449919342588203055717799869971413058972201107681836857767182609131841668822359765877949910120773670186285430857879635882885421636765100247561279397840885515216209799029466583668814724742121310267793325310823969989808999896386704515843747190897931099076223400423585758527155308550914480866537415490698891900753696363746538358315634775613747304050073246614743047268055770170664804405885693745742104119509243772281429420322380569577443619892905822670401983788998187629444527074809812893437816962949372160791250975463309093927987345527348968641117585643272119420084299998109522028534704400075230092748159968105430905913569734133890601268540550241243976154885644654594191969718211555672656040919006792988661129800997917893083811440755514133454158061304728637991929613890670414156647063145401912182826284856221305326687090160097200601228010633454653712351670349838996828032568042410384521361382624412299210068927563154788281051110777385752982494679439246227584444942971381566204886635768973007902508670388409430598156310731422585782591518041264297436639501715477613521468555455828308048403205393771620654397935618154301673864850948807957819992755916006581804194301195611756291535209470962123086241010404960372929248711182948890238692205705293976354727637633331806269553466421586410314360639962208534677459782389117158027881163446880402169552166514637616822764461194644829123911035808090006889194503008495797338043927643993892427175002345512488304948313944731317873835472866198545915918927875409668653898196474747368167817032797465118210759068135937879344893584923583447067367299111605335074137468176214942589529934979335574239272099616636235324045440628509382247689464506501314706743850626178773148426809159480985104880289822608841781294689444601966735161604990794828852883427528223053561535779451710647367726880827454779239050715346910842384411863007432229363151019878784861283047955521227912731432636886433331164225261118808050558367955361654014191026666308872219805871279627398953820951613168466132186688074586938901719789845529776648943538445330808135704862313067062102271530419270985953271799881690899782569419418043820647522257598406918567427905937765884650644260575846379343949287571936612995544285384868517252098920255674594805974072803178812484874474330034747155722662114082918052104808318925177355438989391105923234657696150280940431677634714454349144735618787411651838599808370534245497954900597945465134752790516612230708213088108107985612114947190562144518364968272102325434180856791977514802551747838969258562370918096734775886729247305004303414320011243858133798215039873799069251802805325924824526663885248465130921918862053276547851163842017641796373791482124622885672479983726967560508051411371195429931604954519669416665585977664588951532480697526497987163133892489069639384246655952208644255249024129154278706659223182816989603438620575548002987394176142635339565296616782251100450489434175475963712720384806701016244015072005073939177640848161514723266156139321244563650525133498903428392771014053383062000975537685396632518379246121950623010133624662943967393540506691117476004386248199563544645458871045966345051735262697268561275192460983287027724286659742624233454813839673272682732350333039745956106290275062846631440037026463722918005351813310336369252284819385425496019053183895191106418486209246524595676265270675778552780733863926120604661894180132414090252341985613175436446767248400163128788545192216073179408354149582412246048330748145530872995493240178983609707638862590544571060469909379806802089656982037335410905249017259999999788471146684698280411133592893818532401744003047036038822361335173638582843721100179637259406893870176247834461475406167729141188498958541075649515819660847169113506069240711249725543557102707038630228853353343491319805590006493132887296613907783036804359159781272424847971192944508234499295275534254929137441464458449778148276825254851094834288000223095727225380143975883762590932137363572510306090292538829230398014796434954622373030718320806125909646153128925926958101442288797202009974769941683913843323733969950200355008901192139300927273023402450254506942460724744855284636718630116900373017080041125586335753309564522458702115210049608663322413817814698482525492146011825991872604344463951686528956652077431259464733951796987005594291808859778963249044599263604639136285437202271299943255013943173260140456407266152480580506213598546686861220271426057661327774454938262548259821338974300609470206534431280418007395710903993946515621607007314425367609591248709638370660587243326126744380136201238001486768408016505748671126182659821003482196492701184573742843131657540599709955554299880039270675883965895609420072465365402144310791410694763043396826399438480646506150437589562080121346140184264492009493525778403252852802454180746923382409705088440881167374470491329900391418068151653128730175343409095719179524396276532551372077229945526874611032154716620461711604438650782729992220765196079270993743280712280779779778866101460881892173765991887545787280719128234759594133155451403339775404288628401185093849725399694566548409423422818931662906418951068433458782804607730860016730387435855295407517165491250634985248352733271483464772086317986821945036374456742921620482597410523332508888135358958517303872655942348772089385339857905507335749924557594814445002150552445834806725385129328775829292529195438380748811478461004999111029085161566374355083525645635998768835254044569665862932769739289302617474344262847966651799284269714952107092783119083115720744200967545465613354758026748922898031772594662387363424612670109225023473414606596316953011300711734851490365183771183476937907064786199755005122048902265616486603431887675052887032379768022186071665179561264887415273127732789866424946047474462651832815549124527549806945304304081253773213433776618263908378952064846699366768931003529204175658577679361354455095963871211831723921846070365767588726307844754176404438963791738815965686858637130177599078628734035782035025103524828340912284831298176438944479017943531266800208211008416470271403664390804906429095986680003658729818127010521790939425287509195208048782211166874868104037108345591231255637790827224588091177366858687693784577228286916104676411161952748581187521280111447238287925121225864311868276300895072501749271118478265951420911726109454952575850296639109580277930330632306269438527410344292703502461369467732021854515310697395263759554576354440554933103685458047349097943341754963656799139828781724456066331250372275572173807654861032318813664631287907918119199333978159075984546868769164717810546131283618359953201489675712837369683175472121761241574682959119496703055670611331852178306971066674623787858893279775040249710017679168038624030200243165086363524977293698782837622905506305777374356694103135221072372161563040469987645358156961915662817382016553590796071317571324074476783578309926610684791086668566317226571965489319220421157245275776499638832926651031843524266052341489397809616886830248350457610807290651532058307907649062904611874624183728919500270906674048288799658880005780291607874904956217392608320229617144282513750730064183781237834829621655040463342224661126554364237118471252987275146384717180390460591984896776141268022092991978605803272341945910855597417842103276744326223780250413842528310422413577128786482419879235633283565526282706204939218236861569521930102364938427231148644993555885228325211947141701362600695558609088515303124432743585582204544751669550164135619824346291146251455872659435746226962586466361968090025573325264874225189404203745872340200530730950325134948524176534081469248343261279823959190647459108669243624553332027195945956781769780486529459878705951821103778251952430746986052302775693665857896479764046922932241410939395127023900184432041387108904181619786870980872407140652798530879463863960635092356782853821648953811991805326339066324782513072262870838056569263221901862620291675428628227923606961011648960288431714594609765894457997938854351772029719373988036205337369004279031755099356262472045318431184225598731219052152775265716599629891998698448582051193260340213172362092550199613436403760063025714084199905441674655950496615510409162526698289544561223434839616550732241562089523137353585141632222115584180286729099613196443763625113473130216489440013050865124642193711190850596167978054555050206543931585621606520832246383974873993821666944116440552396656088880961729779151883873288609579666121237998578261582304094943932963984422762664913972165902960696163006023714140567085997830119685943070370619123313436876379490574616801029534525066461892675740806683797139927444810145207566965600502226503437006237416773052131441310549983467636030555313645181265480116477451962188682611951830170364888938186300017870753387707561144739776185482405335183227218265271669938985509222469753566679727327832843581516879801455544016016361779781693639677284040052194766020857664911730050287831427531923334252734784920967463897325003226601168040368669206441364252075840560290098278058787080967270742907189582095154831886493416924924970546231476778343783525950462782690848382291438969412397336748291038529514627527638919673928747589026233772332017283003272087582684864515079763020582746275592101401014823404823135845588462580717704690580367861905004674509103064249367421538690394260558844034487043278202141260587530125947495590024495400674778192302099021878576382491251945774908904233921359079578426400669622237568427604480945924808659289114125161134910869090527610442365544363034416979315208319880427961479445483339047796325415372980729129001827351092649277284390604446155830169891401139275318855899128658683678742689775440354515786918523345233795032326267936327128452643685222682271007542211701667501907909251096760718972379795438309742761014687612153894319086893530253459798140027214948234318197528613970873116024937897753157706019135299410712244491052072308824989722551791158610865156898525799694257575760448716192809490219224061750740252788314010402181961711333328755454790846836430631177678445505612640206136194069973339547130694590349494511213830938431051390413940083594439599269825821301038320150401340178969045339663578361546619461490839249741661570887569712729464119988456040319079331273989395169733077428881788177951304590898591303408997655880098300382169662619276171119126264969232217288041430151473099235203176676807372102278508986390441811309018288101824528521739937407642113463553029801605120023195096715099097830166628849331006336202016721628114826275790117365792799663865990722917746811395804006600676651848310019496749306049277768598725615195458606781300316261355304050012429724445606632691580138449944049390952048104228832599575624851964697064035790440328228436978204974302465816859148492718951719264123683270196849059825729432831425948641855535755511676734528633577605676545579526714721433921626086074069142304257898418880263945202212717545756922146826807484367954422770766071310605899486221080323060007388004826938663459803012229813590356072716852082471981123753108170578368121981986887929154069473909176980555236414998373579953631084082459473093454440591578242125084550600464343557169305343844062086333647173188818778518177459824926979806703304943197176304551852173115258959570392578154786927260682788244779021336615364196278688107974083758676442892815522554590388724477264253302565145778309839370599796710618871591874462891931772985061586950374401991205580260287705594347366555814488557594979220372903582659085611581323310899292535939049726983771038455271695854073295981677990981677682165352488517645527568597220932245909609083889812181397868460239853357595453589716286007796215434388606832341899194612012022404310843483966494036795896948328441107205011663580842488577090174052468685526844985051110758920343923599613138116664768752205190001082427048242020263033011471015015997955907295957839019604463459889187209138710772726936045185919613960470482312977107786965939323899955872582725727987636348071114223881041191703121712450952906379275685660893932243612716819283946081509974785942199334280115536989577071280222322383233142440188468029966912047078581239376341193864603998493385803598985110674807461910674652758824064195884014507500901102119913833219612333798522401199949388306242653751813224712369477841325240606822427877235523552849261193095351379784081064497739845362775700250250707735099740274753975564113312362947238018251989872701564902597685178443752994908156418285952001759069313959708801983946080594919012920590649312322837527904222916503867606622652429218767002882904308513279909209977187045053035759202457306922210754173947585578042124665751997728874823310287351167819969496376802617125507159530512159810032528120004333242998421757912074441466117235935697578682489918260706517581634396219563127190170848766322363353610925030915986882763330758192418449127264549504722596161419858865928215082706289306845598856475774366945739322594768066064855053199499235614503388917779404429160374710147748797986513145001909711795418521550725504281792838364847324644910388451812669807714040309551539030985977728864351774187996652437954263274851485856694946794111212234189440801540820555315661878205852784015266638143082364957061879518892055598379838927936907667911418837743339123187477390530546401785002417037511849285837213947884649773272930544803643828534854466718112432581395010947643761400384880939595313164778933952041553876893380876435794904568629574363169175212001759007452521094883357440393215357186000817830341413994653942134493164834593231671208598195840055506410007139457821518034895696707595020813824061699355317450694124855480768635503573268168325791486526673098962949821307241252000480630203902317727538414100108949177878717481718637808457558264072489489951402588746069904035615539490323947981614308356289514414361772208609416987420815091368545447113735563965716647865987027849284007868240422275669366627107056887541592679954310233724067033012999772803160422696859925129538504098091073283995473872646411747574270350278288913049608392939769179338092197357851083340706933182176273677107763746353398035094141169747462691599878408282496683966984695692346502064154999305652381086686163963889299337751558149405679231890217635178785379224669858395578708695868810440947487980578036773822021452757217039535191692842572618576960573414379511269316330949981571434730667437483454804453849906467167732444177864399212633921320601282140435217971198511791991906337875839195773359400323865266624354892052394449580027788577730050123814746345717406305957368202951476581889453760468217982882837278985379596639774525541666861479670078245016373992258541816784919033864467982443300436037513320685047571095665784583958393819288142267205679892171523970874113212371535543922682956670858592892545938337714515210558859649431496335028652811647925715834561181689616975787666433397123837773614971730431247908998007165941957111435465621443186920033539466252474308750848995801247339965233367486993506814047883921253642824001127711903364289334226954167142941525957604614213244691188366856298054582275080132122956799391074702494872438553295908086251018580179212057608136165885958171562632797368500549100459442748775553960974031620140420190501779481233792619338072491451742403084683908578487293489576099008120979264132073541164530606669285484160732102081927367386085843706658989676971264645375480147428449046320172427535660639803950898742458702728247943658103197221047584226918668737400806093916414320959827769219622488685268369876124979490466813931561715521093917183765827602722224305791344955839601372873291187004917593153568956974882733837067016696853499932122639025108033480898834690149485866914269139284460336613573852450435546712277809654472649081811467142292933972863300157787189217618574644824884629037169397828790930342458115374497238092765724344996697366510039401699345037918996165673092671524661978186531565850169487091820458577197948542359713221571286714314170082606276809143264386366796770110501115220207919791910470779687808170768837780007171204647043824029441229137797131549260375503080422088079295574787413086785337190763063231222297234640874469090503582426825667263208337110857972587950967793179123975603500500542651432940585198640325628654721596483711221520946289142894766265015576806921079619892078612886501331559932217348059170310859050928300853215885992842888090161382597720763314594795445116230047776539375444422901830049820206826609539443149118364070253997000674821283367789338785622877618733853308880491642102068067195404251736172785486903421153937334060168003717199224561596123727782928511787010008421572825118376723620576106087941889295537403251791624434282087536746669430164853877732787449810915960381186056149272042060490989335137046830420634329220701435206006915430537096271666728840207609722602979082193249273586252832810762537341402892764060117813394023524355729012786803932528274327706566846835281982214599551194949330105098152228571376976990468370058524757853413582373224170073102825405688552103961487531204127536717676482554186103130329515924341590925001915752458738012514489971429016789541254370365005628432105433361223758530491569886143829072781023730243235485335256442807411528936928820985000511911902434277671675988687389618159328899360254508543924771108868375243535035422997448320705828975357970846054185838680070819716574861135428541505243811942286248871249956925194679467300114310822425700861817756031835902000041197791423205399135550922999388498745944688329289883102358426234308952447515232068546534511054787360526368930606125602620104301376797775336790142192749038966395689965193901266635355842113052002238544280105415488217105539357658283618721419224115259851698146068689473656478592905185897746011813964036369752174445010271878044790618794081863255901833834392496592986627921299748405601247126991635530235686776579380148771513712062900816700738794780193329081079029556013445245534722629309885075020037344937780476082444972230491622542889012085162665050858223178277450092065626012450941022431978224553875418255194725625594931449673904845582914578218694429550460163221478997543868655822225285592392015214384676137768776138437300779512370213617965439541249627112049737836092598862860893434162167227121374744362922090786688162579955203059473199313339542911893231831275600878501912296721244248294084558743967372406096001675347746596050676244497202835007592754283839930936480502549471955124125618502194311893971003511817842141581876483211949663980272558227039337009023504379573566733641377780358449324310865553378540073103955495951300198648983209358756864563598377124882402166775971061585080861278649526072167722101978815635240198716131605085193421855586353654485194465487587531193275808783395053369303130448168059598941138262793059633846648644072189495189667991227349429119639478267779847066227636830591728197064510381803072242326233603106691979257514296716965243527031958362581500597621362800787529493385081150986700644429448129925996579648175616832152879613167304963070146848142701453908366315283736364256607897126629512573253697665494084142858291764577286404322631630127602121342033561004126075310225938228111924891189305102708407533878225805960511403431281559668572558887970523595459294663330704193899663949717339438265704547959359477783833222989338283183933735261273666137903190734212968990682254286512943758648123898667682410910185493801978068601139321912114743684919461538205245397185822755717224365768879214070138982906504063594735517504215414562483696580035024096629909186453636724948676540240884069352790879862413642352552971799724893395040686804339682540005719878778697116759149365776671083784557188809353905397275916873065690754278520482331974455240128383522985937918254209365030670877099581875609924142818142839541045009986729030225158392116305568079778567059494262556954470006491495770106757585651087907019539114982420398467855553293508958924174084494410670990161800656418200401351883476274526129113420240430375545054217288069563052527050954916528799293938332084320103137001665006560889158466798587935793305313736994233028461578122342534849551750416598448338097830581844665954049864441319614237718147060923541839910723932812984813573369761181754774743132382208599713226045461720472914640608664556832821570304449834948509969457760214129658636764509971110049656175650842839808907503740517345556262374366756166592068858724217616944061287256898745993157460306160310064684521153642197507079945916557381458355391709571666384886242577571145544854783115499209287058504220028617894200330163561776173453071110887655995716118719569653671439573949185645647241576799392141841202369331312050752131589960783078470051801938570227359409256673057307457156114911241460400168192760258985981600478812543048401789376945075746677278264243134729888904593072075497907757528856979388611084584114493862292871795993576682945225983269556392210168660562717017863710317605384297926814755985405237153554311441923862770843115947970202432342282994567390990717540258443801167772476404682660973963020510994765307719983652454076008761857137657138968451918590682276622834858235579048781764858791926521142397669922672819170331037449437638287557504739331727513063405395437995102022540985768743841927124563813509342096901784243087717875667502288521805054238372915921083455753238822294332420421670907260508833843576008655555180341332973709989537991527125324474084782253356892963330296202087341976629689172954635469127924326744852665926294437799595716325964026856117274294596449996054750430441321263464013177149634685626462302975690890625734074895150586946460602739026977040361528195247624397978191912022751633588512999349749813594204632487066016928733192844049864606453370663768824751272350435437997275700135931092285880099286624025356474463504620486365464829606567618894030506222219290329632957333577808175956398869617757373235030697543460049201808691430807467980983886794340678122506509790039180132382813608465543131327193154408903809237214744800352212771252703124043159514847174858575033272185458391614007356445370629372256915653707352360572585841071682152117411217468823915326547748985800533240564636369812281858364276695751047308967809386848406850490623376682830308732415879753447495135876281656704641977029452088848054249930282286331586042926392027823942189326237289732662183245562175450060784741388560922633575880116620491806747082155978298966590786892888527986910972587952726853167182429420740169370629388356799671235937504831815259202709084816479832573409822636341886013436571780052673672657008519354118582821203832776008838461426193205359659482995928009728398782665681270345760909735999452367836717359342504147306062832022864848092232760057049825761504054675712279893835908865565478302874167095989892822578177897369719475108230894716158860296679330812248679666462993698698461012932143281473850420449124997651327121252029051992538569982922516594582600796457062065669304101626138624466531914199700755955095641486835463481905878581827549219719824046693935335333914807106189361599851687653218443695216713978458322763751246063576522837774735256669042589335775134400014792589574051093268420392161079201081066805496347345791782004873142504088875167344524863194897023691995439594743563008659876566528767766524571626464929464387986926762908788057948955069908567853169269004739950507191094846121701714884571167286582961804870442271665005060849101135801283757166049625559582315357743089727227835089414447653875243927648272342369349468731026570496777157219610949466337542551856967309903729579030971802385436846739786775690237979878080102198132743445469372841896212659027065943707490129830134560981051643263927783002956102326753475619175691817845409703148026442723799952471426286688377066713474982228379633087762854988413942662818272988223158592224781094426641708056253455381465728770745992571083835778279023231022936244738732519209685573288644794417793741305765208517470679774043393971245286917645556745131032813388928343732203733700201766091262415210747714562335290274636335038814839888906524193203044013836503508132888620902985382247870589849432457527393057409301092798578643116985525635456685789523789376741332760022586529248234425124388793530012299317521209740676774786222534887091617181945399972306935425173019501163606814334003056120221396590296389078569839999660402175099091038815609170143562317516360268718044885048663073300572425891875107006636540466398074661451178707824696345222784671197461442706950945959500799123766793134997283927277141522559082907506524875298568039114469206664050885350948967344377898746687711857390949150770732766262400633615704259782302772135362786651994325288183916691653906569794661487673321797744553416419533927772315722067828239993653875559736760424977904550768426845069441140424563812665048085283523430152422462113090144949110158046370733370505056092055503041719522958939405978600763829322918550211444842887812065690035731294172035739663068018663571458895574567558712934867166297207096221157858317870702074194029560044467352178539103156101188867425410915089299769942371875862499451329330212160295025045084277817275797321155419964161757351556656808357004632198790675074645173204481598165066609684157526954128454728231790478759602725907781165898642035134037492201037668565478293702671649828586707868549448574749492066563019867816468193206112327324005827693665404067387022876374465561272328280827719520385496198496756657815180246639882852961879884612104574913256560897701895217279547016598851475991005510659923983515042810105618451129464149151705060061253174196997817371014252460144795338508258564775554387139286292966987310696731307013308137744988273929407965143944138224553735817202059924240644404827885047645067595759217400720464281111573369828961236978392691704898085421534555196142952785933624886371177379348923428607048675793613490252535187197250223554245565493387023693586410563562714432531483466605201459430954549813918743965729089023068502808882015534416290679293474794270241338619005303655304779741345466563299296919069210698807341684655458246314033691037514798863545777424495703047316322495254373693197462281481689289128966597526538112289781198664411256058927223711911226254434621146585091490585897591057670623293905462825040183073041395762199926229458231559645919406938352107426912831677898317611412304964135913935098709276199020516989538254012944882102371898786835050320973575472772799914491541029697565003802039075437582853641788784140693772337380714184778912717728719347275061170117664814310897739475962653069846271787278155882499771060473978725558622591219930735309325328872794466759217981185526934139709425991317214001747889117608288861871190872344190163407490611815058519203239680675123135908769171165294051199025264446012535626150723634011701141031973268672463607425569474585164422164939138478172750616878197055678905194036020314152676445070451786629088124840924277584164909045928893593672745976346580916986743935643032914185293465406054026361443110333888639317499137789260524947583327728241817770035641271811104254506141349741714719360799373800857047766900882427330061398650282098803994926633126738415790661373899705870932962219166369810410808159832176835528680965781872662032824292917142674862086198588197284537405604539175860112995980348342893483871990479325581390400899573143148287330755361763547856410520636123932221911422478726034020771735176974190483815256084559820144833774666919872283922835573547276938993424198176251383823901557874741961503080843717000962574609142892164726082835198651382173150263299808071529503428583846351938319233990182867629303271797661891793844862151376865085304294021185988766015749383257020865405835877137496434396125324193041566754417095473163539489522295691208882894598147909024004250382994995599841333111580946464032684437534169620491834768750477276068817173399073013087728142730116469135082904493953744881196109542838846182328715016574536440387818631808388854429723591210844317716566457199221851648144072584121660845043092070982616294742515295854347301583423501169549109926019101266487229091490201587815377574366370380214534366447327575351375190185131245093363076378921752989172287891449700157451975017186881524429672929842082456701807437656006934389262471928681717062804545406816811493474775677953738439380944256435834075907445802513084126808909721681242925145222501512722637070928940728188174989624308857548214562136276026889173953733769643066612496218726912380813039719620487304316031632503512874008148926890633866932971652712155742967149233574946842074866595361514186621123260725002362064608217584438653205985896706156185951436132625170721584225149288924266593396679064104216650346698116529874258868166992143877529901917940000332305115441415755768864385191780400046612967228285657467282561791994218369062800358155127138443014482482213061203984633775504180428737272168006125018175471716905637970263405290385929665086525396550870073510467042992174373643760435092485873325704325888942127834246592518839810093014890242216277011863279951383997252146838396981536421972885408280104088872882555168670890587979528216218798377724188950341576898115720591601676537582942118888710601910278142363584763151424306653568015802630118141412410842666689186187769460834694274232002866263290845341509362710514610545755574226501447102211252292278711776549530447701218842476737647006900321512783364204786312080910176199860429770311879070702270836557760767541781304283918299550801022871574047723135520353245137134707497672856829033521117597740723584143641147767555475095160320573206873536658451023526041743849110114466251993247966449659180361776214289303850805182873601137021486827465525799660211216944398564422024166655779942131957996995399530648211274270706492258398007728468318672182983045391752822308377259401314694287361670077043289213044527393437116566855362936547672055473676977203033269582784066791321527583737608607575392055288493636331462384941456899477758226104422952463202105282834044283043813207738506978033818173781637828759725904134999086108564878693292947569465535618625531237570407967244789221156788725053834763769999282970179827596563421722165574664581979777985073813553473906357018258921955578924851908606338118352599577317927346976007086145787872732791873855188756712403936320151619788373346255508319302500455173646046853507971719044857290559502568177165527122734611658073208560709870600997577006628747436623900165005902052072216103343460712307564527848300392067211013412501977804263368920880239612674497524325685575195636357622648748516351895833550084135049715679675505825004014480259530695237518864429428853383081292941269477522529971368755528868306344613504976747419423248276531083085798041732458854632378981489263019384244116282072258093548150666599935207196378546912200078971250951987409608001315331560119692525464535371985172654245428891467905889170621455756498609771961100764928593206717484494371258378363715597214594131378626790231468326894813339977633336647244513848245450216496410192303585273995630167498426914495927489110143378339895280286358870563154842573342539556186095587739485865341866085392070444362751286345504604808852003806766821161619681389117574427926799416828122112192646649798707662858100344573441888934629708441011882996040103470232134818911984137793638190766942669941202614917487544480107102691517029592227721064417409115464486675914472534780367655049778773944440756475358391377861948055593713132936142257410979973591247644537953285134245234147682200063507196483022354077667441594314859905535364277424947462960896280456684528398474436058351112394742507183947669402091897036877077535726882323483040518421386439574154610463190183583100343255039889358724050614967765674575545986103333392991290423604530668667285435543916777301238758043215957502336940042978281469366999130103114856182671373159621213875700827196044488162017748508152379541459267093149690006050392556609300149706317919739250659365727559366611521035998765340187381518504923388713576945432353509812330578375649355966248637084294336738969531546911424265166240275918975897394469871604144209048048885507006282869801100504376052403173107730697519233632432132041131423482237090610073929893140991852016839191334994007687013477822793775239884142848389266186736371364082012240411075982711525989049188319997850625529287285732508894641970310513689064844132073139999627619706047534928682750257468479171856667275591078116558883418393293096113283204460710741592380399053731738489123083272729633286624290133696016994909190245691303308527119169496370578861617624148209513474324118205872408984313763213224119010865197164047294348776893770714780030451248275557432655197619315498923438347939613026453815720231699081930971108430976503162092843234282329096088543310092309587802962334542425554909085229720448028939085139774673954439795069312171391944041930700544445564485385571328206955992386000960166280433080571496148963909657614931797066365675971738227824141517149646701490704284148752996595043646968623212238161330652041567436335486526213569195996360744990827650681484224557367400543929380717256051922306599404224277446528476644894643109434754532428686675868474101331280441552863613789988771958173671539986605425858956416593669575502877204824351990559219718866529132773076817339865690315786490281651910629278717497202895544452298373238637085165012164989453267558363452557109149913172566475930154633937635982856349680146846673626347986911419167792589662141838909600412332648578045408399552019260888635358812073478612411066835277069035235564559178017271368399663731246804319425146274395933074083520544606859950948996730106894841583422466290445048561265676871998156680506595532692491722616130910607317319943957743094609833631191749444837878992537832624059415690023492151299182533274562003096611098870937285483601565185962741201894801690396021672666060602035437346472128347103313855114926606592857779009238584530409569506562334334107519434549148317308337076067149978594797259103573445875998169634464580576028368891568516987169440443876239026921379714350161844657906816379989780295177801074758860316374742245714225202335280852756211054455352399435279973177701113972120427004107977120763390707396716978364760711640754465873625804625807031633862751087711026701038341922904135492208835967409849445445243027145288321680774616048628925305470037218905486612803396575711278566102981190748888405954550768210534925901913934139747570672789324714592927944817993329221165991595848729798498800151284117478472418123620588031667373969847064010215567870125651910022564179282707138267568043962728379803711726760627906081022923880224734928894422115805652720430418260982142185847390391369386395796467285002541762841626760747180488189770058395309111034767358397070523847171270640924190166685818283833782963112574824080749707562670277255782833368714083080898963074957677012563858530704054058179011623561376957592787727628719150808411764278398377577268633009101649390640641366298886780437828839162052579249675062149062682806023027026906346403308733922001921905474865649602539195262517441000547880112290676695241435576084006951707595015783132556156170313896966387064288363263942796424981991898123991614307238373770105968105359479904942036294674667110952690855050402724245378966340850854184051039019704752191902430819294508896912681549922908514770065144676745935128785526468449117786355593834967837380344493390401394027178689640626324254221100224187379146479972562498139440815732197089189655196883590673041144716135554459356321339214927053898108877200754711771624931750288930698438943264496963403719747670784108809648100093546976014622201368033483229823620546660803538712207286754294182077027350057723083084408043359097358237301414947646454802246285047268224748576524253001853436156092287603347285318248778685050520505887437732256332527082105005262465871869442580727570561855857261673477776041209594511752537649148977667915513149059865625373352198266357147850471160107178194719614079791281823629834743413452336545783720968807210780838022215957233409654120993447072066024779325534738384685834032890607864848206198155057947584490481036677606594137124779506089766726492260996287179862473430981058172015012867301503459385932455012868376019312061676073791531110063249307007699093826558856898722438101300135503961219827514427276045282731061483948129309555810218881829996814996767520905825923677899498692619496966867012227668011875771343274360862025542418092366729151532303061670850710586705453695777617585377029607954937855110794544619905451863842490315852083269029399011040084559388073239194152163647629687527106641813892154127505583232870318573815348901474558153814739337373825571505080500625540886329703004518037825869464430245596424163580277200999827542960120974625478241671644267059104685165676614971098200193333173956217316277527859413375772113624533166141004939378660972666088086056672984153967444438130774970227761344348787453631523203970033110960910326621919526782630207430082864238713924244877047069425711389739285434102429050541863710374971578657089451911617869999153699155940570568924770168159517051936388616568211812289566959254743915511371439537822595926589399009233439070632707711526964264726119151519359931227393446956649010285510625659783125763675698577214140573349320162793960221854275065048202487302981214873622137579031821968782805694893406917402073289650021744815305857201719686685758710853113779503781602491497872912742389730168998924180722556842632812059014340879563637804682356083931268789566768232369361423903003463400383138970816030984662736690434865695697208029627146429759069654831263968461259580339176263747184788361440995728148867434834101017682260881096913314567009682149292023341702900334563236537771767863643898099882077620847839089223703392321219236146973745576279188006541842633052265042171575494483449383028591658658190259891363659438834776382639617911908698825656969303519308126108778939532007562696375572491986982720216298698296119241370768638792868115497369240125490032673381624852218236042969466483023691113080338155621190304308327410004833279468964900115063712774134763537470909769914722258411195146503731538526688573080792612517350893014953304464170670804137292220380851250749472581499879828763578178753276239493686657130124918673745234380341504869983392244659289727028201765318194140950570505016789733951509098770022335587656462229732368422195718009732243958918499918069293038875342154742859455974874960587005125208394423277464582894427232314615347361978408468163655449539667114955719796313057096028249506946276629439858292743865729232085543077246866269235511425187698562544572431769075731432031162247196822154736603838243379299593469549356337425621806193584074292694818391320614898034204929122851854166529415428540676644063924670243517828765116159974857869707091456706002133286560964820638243629467194254134628005662391296534631767870695534240755782087624275711819448725407050089570772805161244060496718433478302747301046767461172035650958064113284808471179095119827606333929481886344692194207363033282202166277393749202639494803790634464150552087690726279313537152375919108528283272892673685176860019734867925727839045708274123046069480500581898227680898920536375937273616733904934479722134823672058347768243524363630020344663592628524890087586255008186017847801701783750346514356259865167454784459201968837431420724302381660067087756853693451060563027970194996098630374920599925174896055188044169314209505638321395297054825844037899017552441558300501332801637980662028099569138076567121467336140545566189990212552623561066477607088301012041020799699962019129424029656586290834885798086532383705832086528998841927344159864270728948741289498159949719027849361024875480206824694269972224144709423132051909366318564149362420577731517498513483244733777071038453618601984270186372371599075356854797609327980618945573073898717341506074492255277690685582292187824074026234861063191924344681826664026602660290931210714387054841789776363705193529053889254874010789251987423598477506762181920426705037280026231367058611441018488825593069653658989876335983111269250046651425635921569473925929876977005844589513014736070620651940584189348846797679403361680634713530256442297236183213973020233654545268043481575242513099165648427981845948434774471366811030227259576538122412746483510448719527395489505286363629625768896891620286620244621451468123800563214608363376065363117286588294106897847209405772811319395475467108224387696864309843506382637437221326264150891384390745614284094762381539331665912722136112977905699902135456401647251113243248391605020531068152125082939402544484774290503102556779502726047239270819746477314900994995215888362317525931543733463552911309551088421392970112948394495886104661365556917529896724250919153985817153593871378472495588326319324762815711111960752442332539877353462609833950763277717760937915646276706233751538848498223546042415830894483037008338274953587883912603389935078815366546874262117909376092494453789644030605811298170326566970790065378325624230202738742194106208463309000604774923485697521417735271811301424785665615594727834936418770291396277226709180499952456069594157469684038298798421010582881566853799171452751827222019264950458023011459931978947241463706709376805131399763673254705113098684710045429849034557349124124886421073217749362474536019605510967681628988343114304073252930372687949819814771641502730202571257494559627710175711493329799452237875575297488686853566648034676706230509479583109069380066194419414360754077585067367746248802767898738033208240292984978352571728994904632250105943954550286522280805930096970928847149521701330691790567613839371165866179485164207293465086156215150485781283271878483436521603525110102376182516674510307092964363260026635165629795457109393679504005874730436953745200830173324525992475136849533230934164443057623796391387492746367881682776290870550216744773220114173551663839061107459939333084821495971471403576074262021289786894354687936734572122984455227464974658904103401778958932703102649701844027696684050552948319091581434257432591661629780376657765429943412213986885364888047235298017959536692138150839663812010103471092167418377348690859377618226661395669159827772083950530156901843182767033523298933507187150366599157991099926893020829627989127915392177644387092680922262326047243128139590640842730174104572290820755459365344141482164941809680178181428784226110261303008082988740377615433559894570334442271948779757835454032719292838141489423348581956070873675142447791762081534502321248617859418217958515934158589459904073522806109116123072977831410222468690733601145807029400760884827345792934933432283980469188889893657142488704188724937227865938638853143631514557475985595234591988585209448140392819193048793363524555224352910017308407048925057427342747409893135147839905160851662181212240882577586004864936685015353277612667396929927232553774542929313362282545673801179458853635248594283781521827542934734313764417618089418702340242399172342079294370725652295378466196795936892767009703449046923305550967811502788240298056371020955603430983557386832196680264381958575480320381796726081252422556988878543284029109501398944875924158942544178222918325887093863763288701043381268516940428938105111557600191120626765425228508853562966933460066646221831520471620708286335279811887754201781692793149086527817924495881145752144298835164004150821331444812354322583939251186739201021820393635963009591705312921065338864559678296585658276231316812869468902320446987967802105559514402194337558555241742543638453931262281493186731227285818023383011807104065254667910965210838569702217870455915741893541417292804080860291125507199131227854573950996513176568675590535879450569737594301379526137979372670730394066318927874107493804668631294384533067249513778572300574891483473747296626764371809432181839563475665544798020097316380228745424274605998556073048636396664470167325265311516572314530479060251375499062635942765963176374748527349926230668164918714231211609406628885363598006135789233397750809865586226358911831852360363324639800926092633039287863595816159389670332836908923415964181603096732259237091003630490945150370037435393825960695424813293398760440668614544490412924144957810708405374169992368882250781232178136410712544352070343533756344889107822367972797713210652501108760144199916635352674781545293919050362946604260789892131545544209250946729487578399097364126347625005349127449065120573676155686437425105525247422381007258825505437141168258144064722852296682685846844450455671972106151246920191228930067918096326574115162657514639882312014669990695190348605238457668212993251981811167539113469274103159565215220074407690563082781077235902655081333137204253636063724246847797616191998284167779662440781046518906757034053352385495469532242072534893724864571090765515779938865191103311569507709951223792619945120455611862437580930967786355921922642932084557712351551274358645139488799473729179325570927955574278961302467927297308039141261535412523847937201221492595765581941027596959747674892087338253990050164466552293122942741145276891140365883737417027177260297180330831358479961976474367867494441352829659479153434686885436373527889867445321890127179226042475844524931836295584032153231475312351743108866271275794669621996727316627060706023081872110349710612002584141110929686910438968973838358332244473344432083517461505422560874790581656765452716777482698251090546599836904617648514633724542187158904600563522278802752923459437601953738954878189435746983016401846738906271236752402590341817050550965042156518786161586561516572618599049205317885216679943403849908929254202217721753551585355961964613975529137208223690793880466714007299186726187774648507826546132975571159496552293789639967626361833352528275402773973970846574411314966795149955831801119967946699144024076532831252365136219962005856799817940403666957979549097887214028845763438476225934926948569534376103084418217929149890890640897126044407323515413474015593962078907371241890225133257592304217325725763802884606067003257859911029340124063612041408997095141020815219228920984056187468696988747884581016636845030748355870865583516714595480933282265955248278461783534228479211131241552768511716143071158165452860683319959667066056369828699348959105750085197030858194741858237687268393273065270120973735728110130133894602322870855248986802434355528487632036058288145212588439356954245891775858398505223581442646658182192389608544422785167108360867695127252008222079149800780052579377266408403573887439983763411833787320174698863602088506807703889171532212179583504668490027429998055810222013695476813456099727363500780342497957494735156210196276446138487451756764124831088122321088632872146416960192391825534197418480895280559993190791141408873764113673313616786573410753090644023684816435121629210874582414362656668567063389104688373980051162702188359399830853408563293899563686545596702757574978554060652819555470149505515892371076824827218962337826084125447882928777394681760396000657922584936175369317880024768465842407210027477207710403717331382629857685881647360377640131544449844015220784770244655586565323069384335075674589101943647286096896258183126822183139606204519359296209657918108239556016229315024396417223903242446155501070198117604857479264117055415150367337629429558023944476992001272474000710706959431220838649669394380718153939760255627813834868527188395209549015156919674012671907466394317604884468292645706052310654738670326816322559000687373789671669116445951343524432203528783174119180228678870720657945606993782174224515648149858631057798714684685979080801019199519094022098232950094300611816554831865193960598518156742520270488556645279348879305027921272220385937671700068293914312618037913944705625067008378986959667701065002919582128245876453751598542316144108392088847448935361656298855447359213263986329316540691358351774684072729446779917374482217365276925256745689868064116511969237713254880257845341613486580889101301266354171857658788838281071103342053413657871734388075725451273766338258169873325307338727092243772654649895046728733928908571683793113800541141185128414922744276957726844732159468873974233359357418340035564956909338275369102812237333088182981519886542222442362133559305033017409092116870369322893652659843738673811235800435201983138821973458129374196651117411578582988515325810491901275415939875551001084047103738183182442596654708527343814981863317820158217847456797047041521968138440436389254155020367988898213707362048044475437630184068321640943114500015109594852423748250176515703644559859221819793587953325278974817802044914395441822855313716920759612131533197705569965859829047353981020357580666080722654433132672924010345218750529467915796600340105908203404608223135451301612114839628741335331737413986447965091699514292098112510220706151918602999920013741322686340393361699995861665256900723056493922854273329765574839029891007371748477473076787148398634104590327031043945858636042897349802249410327693038267654804376391127024918160215009888492470386499976769781645161196880805338481685992548440591756654196944626621377358405901539576014568800161153132841022781744611185688022237751054436282003657955999648812409730119582919485604810817153413459868475249330011550750267660759559719087233842834525269454878864898996199875993614759345044772894998553360870847348038127189303328186337668648276729346315342897931358719223138564657963549349955697604803672119846342506607335771302444171595694712014093710244569924011587653664171001857898523082773063126873454784043286165796297969111910626764565025772269856269503556457631292941454188279708062076028710955174160957842789225494437429162729585263096086969083957707564141696625678681005761159242959027263305548480677778796421523323192057960034406157196184502601414110691887541196417659830239872394420216476602072222115829060576807935993621218648847096895167209294596201670759258596940988778882019527862606785605736893096975670223674739748926040124894436820343490319814511638516081595978750555702019185214606731979841597613709650827299327254828523943552491893078704527876118830412063138187714522738513486537262684900025156973652612976678328204186680923866746323055433483570017927530160540143092585641459283319951718799973226386581040326883552091159952255967566221366702613220678977679137891414609925374622840099848347440355945920382095575147094626406467262629827493226092434081650373931794158378041085708647522740511377498757467633075172387941837081323360487615206548332109049108676359106073778876631716587715647403444117744000616628110656923158335089659110122949910189019444757063121130881158511460238810301617434018843589372473331282875085970559656353708445633734592016611863475893970810461892795240539189715704523118944492014664648384845170517077891686352710329371290884849426867281193951021496466402369814465874540824245934406281227133902035421497048274778513133601873268965396336590809111319644925399415670188235947119496779173354819640711700145448849566657994843161501828273811763152994229010885954389115246575874485704094681204885077501819614706382189635898571472465180921274368984398530154668759679531101321956695866853960842818549846329298617076719381712194453113140510675422095059196213290584161685848432713172853061844697769215994469810991034564884439698676721245268094945835847468721033464478966619870539893669043614417924277178521334535803147111761249572444284494300170055400758984667654338421954090745049193465774581838878125165208681962839503171580029894930352773703193020140246132529003241669019326429183112622284971284754927086111537908462727269497592644783534424268346117825283683583285876013228522284237458922557977511175775467137089663572040512552722889849727477117154343062453282671347677030802281486727511959012726773145143697689498526760021308836677878004640978403901369215029118055569133914804369646415196922503850521148332221104428402543114646447765128441276425348187731049718034729968491123682304548137794469420667275820603051946782178478977509862927420761651117300549298912463128808084383368173688323174724111737099223151049818204842905803681164885400948645368355747263981311355073002412085509951504490473854989949741385032967784062734968228154960683076422154438337608834128081431005439891726399087821139344223433330530065024711662307920742331736434761255085631350563249385845377329268842912861458734906450080920174898805083033877753294115107258728096968780415442941790095414135752450733611952266153327793667985280076545404837813315784763940003804277958461166195567106118744671308173403721384412320227237028965941103839543652193311112215583829252272350262631437615295175988469448038019842237877716291862952390766748723323496028630200498813628392470543088006115321689425464320932944471590208942540301602090334318401463343542247885636738255346299894437503105030364382565045394761731075354811377504057515421963445643307681033189779144462921866748776074150638515759542137408777170016498770215934707342134438896871508433370012505606367834489625792946926698950235992142205219596522141941081356710848524674323086905155128673629129290672610863770619564110168640639583050252627833948689751421992091515634775342597324447652711587680982317560357106863749743872033139622368096139587511930523307619058453491169000861422725618204894190918822141601390425516154186372023241220780991454753836684985759974972133677193518236703374689515289243166349830190966022468192483720953400264129135836092372607763184971319267811494770598983742410084967364579790994793095937853123864136611726662252938721175012225668368042897586744541707962902184818739701853187536319929606588416783222954208581845107945042349363919988151069644462676461704649417130777617800298740359623680488947958525878825362342566851201411788043068842707649060208796521400160590833558081774465700418462504369664608035836702554006486648480510753766106823301037189151089889579753319870246115557002726941919339414657926335429714455813895972282270612942523014922376143030497005826828483400081757422617574251822217568567680977868358983052350166334050210999626890184113272836897929290163279807952776156759457231667491135604447108575682554135630007653801597306824805217279153564620092192293255228140654218249200865386813009045973001509135699820510537228420313582950872756373972052598888605836516575728397304654704950900363379109726000943592520733804504231780160599302878491781579478855984099437191130684046312828878743319305564205124822069337594865385806281078398033407729225103444790971605719606937939553016501573944286207989839778981208165598845670426080201724465967386234655909716426071664900370230132641147751549481200054877891849156769792048601787239677320705339930982238604581290188404532481599250685452796024341930423993006927294298499819234852264493844285174203304355423175278510086967827431810102971797271151108477200027990658678499477337206506879297046563794083355734037148141406597281500161887230219469410516227763360667983255006206859328870590557390487112009589350829434662124336105628256810798943147757518164626304891086689999287879864421683862484847197047833083592071932439246430331920582105814032743876612942840121935299660481238833238397012057043008963784924603227974963952943830634794139732779410498663827947127851166516215015598204079867836110845586524342356636472043001174139423600810237288782699752210195284811243179775013783658764771315423531182718578642406219548998280266839472364860612336622217416897793710709491786844009929222370370138955654298749283554147847742646975447674999949115682406814464715005461469253893443531212003659602043512808265975775665880829890293643259358909991212366873062454108862234713416618682181056793612863227871232449636830989357582555075386772029116963459350065712417245037204382591642109154474862992062950166016482120311696753999116212531909590704124603792745762918277312993551680916336352873491646550327783111611624339973238161446882440490242274568743021582030477451022640150477793380469016530168532995532029596810862424815839980734726093925983720747100420736213009196617511428131261154627521648110846906109027575047607177886148634603072477417788953264144749675990941973752980638452216577702078541561333724915337670817379476745730718500758966482908447708007781942850047633024926864211186232554621538558416392823074934926775260780020264464194109147641894555951984180574979950800361909107224063282230437845458881678519327900079206156080785006720202406277566505222402499624305983849201630685794598823456925277277966797683744135486997410112081486354245688054950081688274481352150216930912589763332555421695538454280006919197901990385936662289280256732092312253040198662116744512766416050157425172035508532932456134943760766384092903840681090734517440299594917813371984611763321012289159373194924681830056385706507495087217448614390833773152073149533337831151462682385197043992139702810573706223430457343295753995757838542858070928956586990830844850448093017719608556012952260596807149212668228329776537689063483786717649770307420913171125685887008092347838132325945783323032149685143963815788042573737719269351870898906998587907416200871585884745024892564060358224884933628110585950640118711237509965243224551906335803487185673738146612597593646232179381755913215141782703766924732515419010854793252476491160273493798127149319393432127881748905921793816996175792133536178037668259806832620281905681129706906196478012856643426055304732306073454881163233511364811348401295601175404157049692023574959231014265389325179908745360040838414657018930697492321295580951090291149254057563553305098851633464388421016723010019643555417105214226102872979617410715479797259516924056447943888214292003801030114278309455406812745774838523601472762932068672396638689572476667812978072025960687736770157408718615947522225652051016335345431291776801216133858246323014076752520447137472752868966592490501823420390922955318217382874976878810408680508226789893534027144304964042301171478399102864972360630987300734898873026362210642457698764525291537481291750947026626887618946173477921707506253749837268516696520772899679985708135706867210808493123251655703382810778268448021474868666145113142513493568758693983181234847996121114848404792436834230613560826535245619535900649597127599183653364893240417995743318527230396532807562811774838886922805915387215278105722685598708210207181766932379032702022170293036555775762051683301372234067472432088503386464084484166845747294301983158449212060549488084028012406511657902353208861194006903874254114498564287471275001317122956327287677421130560859236664004188760281487979700590791099658214228855172821151177109719963350686384093222839995980630857772779348763058597579612329603809856933696126180456690290608069596806499134914554385142713753037271631509247691450992961176944872139373127474063790550679314363173134934734192467648449739485353560409302262969159746051378285838821649601514315342177291947085998991623544788882769810780598132070055349898520468293360972295184723124829802247504771935960304683346512467273466433130792696134616888786061960316482238612911318457846664533082144408975105772593808501837960955295480985717659361538038534946455243538293557385758684443630788155366944348795790977347780801654258233547580293823918159292012873105010956501393876643774247044520256529202826426144994565331724387860600089755826173534380746996141637190225227971342570546344647120191972488502095535789674691412302012867978924538496200090667505196328224862999904950416130032831874174277446135932401306013916574408232744214756932484545674622780719196776927922687212472352736766798652577850647126237217408404817091788538977384711368950626928302685272703224041908614446624981512874828529178552699714266011034977630645553926342705822403167547736707130322868736834310542622240778266328860798719845357561985594092966590771252436457822503998376650917185797682259347093359948613552425450954650525590453832192699430887110170075032857214420514488828859544666010324223776195103074781355514807687994153865341683991126055668115981584009219248086574905518997308331876628584692161395407147576675402342724325391962926025795460757577470545247499782309518623767046251970088215362331826443264845878766202898065390288606126643268044003785454226678975163021155676408991044842463052712587310792556907559698711429009501948033496174668793276236822980364271937800840380940157291739296570307834887275554696827397255922032235829998098420988770529779147035781982193721807168379125788110423917780058441048646135230671454964618187329792543255285898129712996634440281345095202615490809006587709240495615102331404457254887043790797659786370927553966496047012103535819787498781660942001242783732431841559689422983337720560545480757356630812410011302460332637171315224866918834985024113315582585423503159449522529872378592198655559455377035494117119917791521696391167720635314761156453446766888401801881131651999531679764627314836523643126822389308302965215698789538358666090390447446696455442624472416022607504138035758326250695828092544494887963042364482667402412044690295506797117400561690138729845725910881512047954418350298248718818110512241487642008264470647332560986235586582523062877227328507011567177204755731788187723231477822821943075831966344653616328592524861401281570151827525097974713987808795751790018184004317753290152341374689387339687602075201153764315065573761414526730980671917258501369517372945247104688367179766701070242627580869997349562119625995941873112846501771647620194255630997534292087914099056428855875494864123268358655973018549602677583896285649090044362685117748856427978850659304178970951948403389753010366711915113436540176777861390964920895864808446674851577791213522282158852089131103783266433002375219373334725706142596288038147058591396928747302120105712978468572574104326797911503197018870022256375937383755045385605049856282344483973065108207766905466294401952142674329455144985614460818228747793453332623078119497203932020130236168336462891506539934053603810048598997626052105713882371390643112363812596756950984305840428387043256510983311663635328814987956404635103229989813637027924311757052650456442189268922338690184287242603555074870760512539612391492304598812941949542651363765057333905262896675978230641188225909922455238576600406631076062639334238297253980483024600659576264126130713565430207928554365569683028231251950538847860005922960769254826023614265036241116647468081106546038333725507394599972353823710766607265835630142180789015737689659055860805888109894146827767115404325254909991407331693360896595447137786568531949201073452900841011524818910437713929068221117107383992859582487339039951735741718806804978549744407697681300938775435558553776118046564978093481945645541006949110118555835490391009327898125311679762583961812527329238969803240073491496506178663376070581806715724145154857736125392749129799112283613556194412255339388527387967944258756920645358050006854584122398236006774255287522290681289843853030873369271461947312136221091546357213434168663480207872631010103523809445897424506775383522262706342352133851801734029337053707156860444408279513179803503003271687699766737692855564080045284447033806417019468676496626068987494839428433239189106356542508039954676955261479988988299388819505466873799326930626406303829860806678303693311061394345304816624937650389297460684313714062259287916816564552280795144626048630211158791902639833855616687266503965875699649649086291197836905157292449603944110400921263316893573681429537214531692024643764913757342826272659858275630629615107675234670976595319747755480732755366051772199552978177013600601316351521061752440365352661686307327318753058132715556796787025984848199360026049771005404088667873308973241349048875437799016979193752225368420768620071289576765962516230378350158156447874199011307348976775230885981382525258864034512997792387531117861823540775175723537769309735945704050877607878350557581859652436450952993832449660653818090056701740989641663083691254381276453382057103287267437413405355419701864586026544276513319477444056860178139671518761915079897182948848592074972654140447997774859684260525337484122398424490498381987180711396486389005143862719823819404951385817374121896573078939503996509449107858662863766704664061504666802804600094760534910942847187880167478604047387031029746565871224860096791278651808281378984535757642465881165174860091950895244020870951963683120267043931164524610396659071401904271110298007095729351618612611882270798933406513161023188038505435834758136709211809143735627042527111217709559849843559155022534163697669062918034670628374165951850669707523953950110829134062137027961130530648691178198493243324297594011128141730440704113102859788031695691576741470124264579242192107739042254494603244623831575587675674296577344474303329106881643153210280296495675401177089564705950533940719305611970805717779990061979364370908130330223599730521122240370749753956095706080972126760700397063763352747088494275472649275953029250407930696721412916077719875509135516295429680502682064065286129007689073398681366651039036288078171065890368077586891377695893838002486313891825094606684663623394981890008024050173220251239290930235513025030132277213246058636844623853013068064584959550288529263267894543613391995503513974680023477745225964765186848953423860967661386602845561272750837282598531417454117218848834694801295783405586728547682564713173522971613683275530254896096299472799823023380427944823297732671137276070404587017460554413619754480112468104716697187873058521236829881970151490279216160472892699271896068855358262213798476900376867531410721683700043100578745766074119095361139199697065682441194851607673356324409424980453785160367729124622365730684348729035344588459643706316152460852879361251087881260894518797663770929302650890013224919200804368111121163965535376598078062357891119261555918079378551120716741632531977250003169196193111125487912093689338776715936072262547762675715173311666987522708899372310939494222669318401986816251852134145514745015963025793668605832610978109647224660043977365517052112483066182282443449387953561837968656138587338904002111750599110380727644131581949035687201931613041203825976870150995207652155131932421882753898533565052833088394716178891982280661831510613801548350973019485795493965444968535580516826106372658724189984420793321619181493441839656308693726327622028912461823243154540149077454219710611501960802661910254502190823490857873976663940431654757002407180358262565204506955815273950170009731303620913934871471194912832222973727326250987363399666469619882261508161344541582376338874050906195853906668086095316758036887511609434701656318388640961597498271591561425749654462361972811220578368617155229242507248058037611866712206755073298493540774463890814287619065690034321876677611297444419348273840764330381921245526444039620433084632449321672563451724322616756690003647482488536739293171042247290221162315156623265801545290141979549620823052545301817119759469875027947103860925040016566450117915660936931209758231113779730846343084618502710967577249262219738376538696353922887947520388678879454243746089858752247713510108481787272586102091376842464615458239364703003711041464194105692895586936814900945815745492833698954279414150197758270739513581374399477936980646413820442854583957711116655046390851853538858129549506204900861448993500670419498333784743454907988920569628249632662026697313738733828974355721648523101282475860928889357335276725194793855846955126569090280495939592754479432549708870546443510656211802160044369335938856708556081462305796447683471560933608609160085619864409869992417320817584396262597006441395376785292256128453829138627593461551743907086417390144174440544191339894589330845108043132868663786503908409621574327761772599895347766008777092666817788935086744523623009620760921143554230713007160102833730663728498978386219423948654488465037411243532124881202175875637696418785189379880359363578798376587524360083162485210267412222388506469753173922693780353142149639803748224767967039564601021948768319251766134866282376384270301725524536414134896297293838524446798012691363374789531093946085780890212554105561556935717770224841895322803927377968740161835153115292981400875259017080841152292486775903065063100818702280143160003483885673596335972144788471163971707107167834959256056667466531332202475441170799714945996245144626494528602109174388782665750885709456610931824718957359346506145071878231480446748279915537204722890992519760451268675178646729420770036880048071991993722483483110757250795823471779043985842292050401890841131206905209162536691971859792581760754814317311973860238647108767857261061627026954857141542995000906717196670296789784061032002752006669003770600544523257575908312718850982221840409993349362807286020486182982287445993669966529749990819656918465466416242642360976484780209038691577348648196683345758345410912394267523369985371871504074063905837097770611434637601873712322401358766265626973162995354991484184668751889738463319804631543705315107387403629929897606184865728294920426605574963690312635261240824475065760344620409275754781794946727598155340850583961784981864414830513272124322368467350547003053331819439236654868462453433018087061711743780873370491011737251683364550455974746246399994188436178717733235065898111057307646602724268648538471034099209832173118587001636756301217869716467494198987282951058661424571204357459577016916110380425631272121051894648601402551599940125450043283792939169994751719339024035036238532989858226801457556946872355983491543470373584690291493714635089712937524845283067443444869675139776864015888065645849456517859423777575938225600667280634322180754402028766197898477540985096140063956421767205611043370664866035031234083672429353112481427736550738754893644804843807301270674898955062832410381979634723027913996865873956248041048414304898964827478382641432493818179614483640926928217837460070589395953625523435169116512231691108556218027541249070824361561184929374553396767799758751271844826032598607702429077487866653110061725099110553857857781884337892025811701131676174571312444001566099871613464009910260184101404558829135340406559083968654661810169707907535767116353365456364349659945526639306199990272792139034800480704085077859109706435898672014066824481607386483132312215157105998705797782017900747444584924415821631433340481517113862580937022523600330154979337837920464592391411517669427578887908230281680359637215172461231675611355569546096439978892779711686073143899120952618068991457403990535151941521556615053264951786530940979867273270240238220990482097519794334493557356424808339539580035738917262686899422283517624500930521030594531116380272870984712761094874661712530232063583218072517917530452555829212432332164101757928767790787189851826212837337893797387087465501952036986619202662232669367383572112149732304745930058203282434836755566814638426601614707825457595249438531735090435176866554732590386062412135967906388361271414256517340416157144596278198728235531284134873662211819189251721089215862594279210306867081918735452979986656992711644637959319588395663834880070468476340602303766374859222526856089420590212968629211397687435822961000742556831659852786344417304063719412906345051033028415386229572547003980434575999900880521389187554210464475037331298933903610985731606376287551469370216602724011998028504420461247751273738043764465298408735156795912751567027762976378088765956310425391010039433591250322062989201079429655038441371898553188604528599768893947028365667403024635817964814833472374768416945735957864389026870126885197294253944288703609985475133830866945941366122352776571651626519936603488431154514408464185664165186734485855252457328276683473696448192503014070965062637712833382080275193680243805787328030296948428328374847056141766963114632716258636630824596069761798084098230152551484182270723719791242984716391416668954927012911953402774779085560353699640602988949908053592866561324371837948924118184067106638811628968365248509651845724589200465343454187415470433383236232222261060818166984117574888576647827539868458924111001781331156163628045370244240245190223116893718562139349086306198261497139463522489429570578093256542955151081632775291301215558890564841377529380336453419741161886217398676695077066679448252087375356776443576301558474712291093395576689357987941519253478612289678963550168655299427839644870676259278226826047114029609094872257241510175885350582155319043670106081305748087298558109902412318062945346839521791663232732178144134541704797875484816129579263133741583151127367086633721244178347639099075595229913385227372121549770724941928667321707670745276346466382328258265881824390931068184231927645084031951050802768157089564404471513571942033116964734460758928707141657544247818978541560049675236714404660050513655913685863740907615771874533642909397757066534083589830061651879531910316156139829549182179624799001404044522574371715489706749178723700122824490911413331881291767331098634168495751064104228937124775214898591201667123580926683571304876122640697908441045698130767480541833821246436811212939941333804139796289952765874732284168220645910423771023531926938790117283084837040373831126351779430711257976358871241850192774718692588983085444705195681739138261772379087187219512781777468805259387770811374427761034335577636664797272805513170821687905011961379552694948339207207937010831843937442485011253342209670446650460434276289796366073943097328093778350832407201561658393712940432848479493397062410138766858663943544948804797680680471753753237599934855536381002797656220227073607002391523542786313776416201225543817131142465555576178054274423246113868574052921406606239101628554170520956398723154830908994940562384100183617167517801894868067432162521784814372604619358292135873402566108742208124677252440039813687555206751736931772379691506374098410300136369165090715455898331897075722087232502262670006875188210168895316300682711843667218934387873974439137428279484448762397767022768518416242691738590074516140473387044022306113019804101533559572228817913876849755514213077515263357530652932011058859304039505937699452464077498854601671804171353587766521844689434379261087048889705139094064838939874314717285836593017731427658377357644346484923912885335209355044409219903388918124249220326057861624670482859535613040366282454581252034639729515378097812098302670007927037689224882522353568311408247226594642244348631206506103297078217948062662436611483094060789333514774956507989454441588230563479226310379381507370161463393917734225684694550542104234504455765529138397764263313763958179767873033155017650468434317576424911841524827520207288928421955366370325714217906797948102795840890402154029110215354526280512826202312383213451173806816433126341816127623210184482448472168401022345147445730758709322417963637496959276917430231080259640439805617878857761907228736538989015188047154374636789230424714747566880049365046666041091333845780192283063114295690830270581960761400443627252149156507014091718474307680911231220003080809094883126691465579891532523669906965775522268834677689246043579622548750629950753849193685195997088885603699687649524122818572687111198988118475008663590524909339599632649106528445520588330025737857539935131540659704292665723406033720122449037738310882636871393093049686766641474751072167138438777122164416527359494564891071839822784582845575697466828637110553079980561138298087728787011453263003060628336459213386060993256526059376340707966203944588026639952894315694917467494920216879183687567248878060695132142586143890792060905116078857142983352526180139759858310919697328386999629040197600069273316329695146224627949674049508383123784349209517415253157198851973344290767620173548645818461381367526118424896160048260439727638102964198975977529309353821755008400464342007606955219705383221487715485394042765732162641454034726157218708728206866638837586145316112888731814803486123693625283898207229917850536955676997990428020555501218293901743329618045520160397003827832141554618746614137330562046005694082055456456967395032254898562978937947278528370450657360295723055465383445227349361402807807606575450708009719322123979759691754204641424245127196855540676206858047394572025396037207605292249547430619959428651349252852316633883859302455150598682448140370568343226885271100944245104739056833468675713453766946069410238105230524963561323112169378914431353981396339976798678435883273116669574162562878610253451054622522448637669559888268274077124223864616966772833232044926047258818848771925080229915387505798939054672646230111368603959500863693011484263535425705017841354612807843094102440405013210071584900321561385463895938952278141440854771837241662243947293836676400517867086259642439568883826313021408129269197959718334870250000823115615759169855766471276562767458376528340956690104122963453092053567422318548614626175954199615611070738161378320127675248042036497581828141670321789468500176132555793506468682490904069927562009886862106726504914254434525826047509224269745318616938769980403624247163404829643099714561791800356207942824849438732220522027214070457004814404089870475624259696776492963275408222903126076599639207989182583572565105495340369147035250454479105908910165316014117293125070049754689719887723174971862419313265743071272556846283858662671153613929782770859602327448412490404038833037958832374124969660733184501673566743863598157447031945524290471651593476849958419880049451896438848787260437422523841511905773631767765817548589498643294654563991717320828239012702430445708252255233496318613225400283867601136146894163214789598635490946324133746771499809204190615450136684065719652359577926417161367017102759705699574289539029166797573613415340949197010969490846623509759998793788099930939868203789077547437361112221899265146720328272538148172338728012914678744968881031638899355237122587724855892395040178435269447939232004047520687005137911819207614164091224456704909539085133184424172988864248757606759129623099221638129637125880213875550025621637952363480728020533414963602391582383307792039550990534821681695131628042776664138619142241263144929492931280818507022856603804884489258999571766511757661532819509799385378371895548927379431895893455900359539497925684746911121016696473968713295961216273284026182639249083136823056518090531796380556807066081534242011340243240550217179964889057391189074708778667755634474051108168042344540923925156917409911842972976694372801393787269951476941481421629248880928779160734014046907508473113676357149583059028257506325285699599943194919108791679503968413661861684667489805339521122823474917183193954383562860941964166684026935931844222388385841576531317574083172026491639862190431535725029606993696680274184257847330369838066504284634291088437862516894907437033128969070262090909669472406473238997164100768767437983451253239262008869608237811562399481256071147493870515256891791500403552699314074088694348909222307300152498934628403909424025514491681409471029267401516948306630541526895426374078512612567795582964988050426432038547887959362203293617523922792487792222159018808695672527469364818382079886946826636792088647992887212271004564996160419625174083156757141766780824278906168426664612874056847779155532279289526068178345244712972191763854864223699514891283883349781370926508315829285732018573770843538374657090044350638988545485672366468317237213573726523540031421504830208303583554831711750530643493410633829118258119931798949885032521495959588157093769854344120629576000997616045517023945136244835590965558458884583172179571428909638962322359400382155860564910270907764663626976879877792993247704928725840619455567139110914600914581529108401851671240219331095491655776988942188972912337487142760103335505636929450956695407594344033945755465296525200104347384937610674348092455638226950591387482387848744300689350390826841827698127726552043560794930124972553162244488851775280280276421535100810284233741487478608329776846814379163651260586149102507470172908076893063456739895551044273931220224021818060025596252930374665858521492948991223077970373720921693129032478363486575896796288565584536292771108580477240096077870809730396503705967583135721812171373671479912284001987758751451232112232385863766391911763512730237364491437440538510006237608694994011108121378815388759370403861325286296441773686786789483861627848914257488550814240914309655589530368305143997576995846090955338335186532167276788555770061744930829983144300207955309800408571929329760576153238557663701239740332858684696470449088413475841678690306332645173227891999159654049747382449008287546282532453897469498715385843802086769948457779574899962287466736825182973210876969760464983595643297181092640559241231653220257595931505780985424568353690858194302738538564785641173957279793333036729116953117258170335205113163035130141657179579252190849925694001469871936227930068225450985001881602207055907071565760954197747157882569964127583256356662689476733145928944150659114795599851488527639173608742862496362999694674202633069510675708248881955296426007106493918411191279036459298986765787475648040267240443877433573639498601919609275238074544284485348115662734529373943236912543727303493005058411760350845737799352163589094300940558039523167489155047972538527089214200593559907066830394929910687289762137801941020929084044333122024155863033766147277551208369609125932792541209485138517050909215799926042250118556639926532872071396376576608382922532533768572156567033874693012354185025729096277540121010841485212289237906157055153404239865752706872391494411460768310256139393825644208152705602492582879799379956257201309822739118430621690477172628635063326681317989287917720028989475088279277797441724035691975832496455919622341710787693521570272765697019983636623556766280498861885737952870643550854398146203145883798410701212366234135589522093153638874298695837852953818945085853195712562711069053361782720184379466528314003030151737538069612932435332013439499927291273979035863511366334647777712234700773624413955614043183827572907341739842145266417230811845608938661136158570553851948722958605755231312476453357476366154301731304579051004157036633372823403979614871062576039343790169267440179348169164824285531725046435582460826279255773385898338542787566168070593969163710915669230248102641357333512198311294189803614850743270021609592248395669857009240166060578438286839243746550539226171625106450075013356875103204731920865680986931587882135688524432599047562556833047278241476925862514523396649464077091961307210603077271942243079190881757107621109542875218827021301142968062624535233040523683527665408611409666945880187681953652555460091714353756032444688889280804820417291997212036781708944229056507047900462913038271464865884133412609100670762410677572748780481474968321924371949690135921178297377628356529465091717714217916118337493437158476337269634325910772083428453291243846263942119814724681923350131722302648494926931711781785196873663663072072464166410848198273343156942147610938757681485453730180549379782317257463506876520357342162075956010378496679290365947732168693071079838995255360793212466145105397799749461416821806173893502143020453118532500564365083374771468470332120636708226554651963924667573424752206592571874038101854093177804306213346641763911299129766079108677997556696379914505085482406867993385656731715262706611081222806213652339667768973446714421910206259583274720782515328398198378532492340055962167680074149094239678969631295807074657913203387600120063828199659520029409722525218483528225064769112880010871488134278849041839432761243379847681003686295545916436821285972086835604536190590093880951298291791887128768128503924980321731345206053978235701997744112453539030793699719566921839619030151095768806657034174526408980078594934176963525801835965866138381757969711781045401650655354708767102199695076031155421879086622431667975651133432621357027705348178259273975901822210080383275309502113630829392760399355843751300472119099837970109121068658055107305696960315693046781400903709799032327778161893378310400240474234245732477210722730123472156308077044757730625829442221486813927788878356951189016303807220941315001186457630392837943555385132318761856178769463886552839728770061006044596739310496712283808670863077639586258618669557562162821522733691942575007293534699535147244132578262218501108193258889086618875997833417524139150859784566844728443529396708034052543123989034698461458354235699940741774122859726726569931274947679740518197341226876997490163351278924971487432601850411335508326747182222670375445362892799484486105329348445616845743147502811192655503904093967609049180994472544084496624088095760310881912871730675754837716713484526840480219829516356557464490035974507205456058620144634588658246284333152231296057205176646051162284304897092395580592957502204076429500143679483797136189258708432034823436569364097335604952292576541307187693105729317785080558182731211990247978118882971685418059793085105025066530055840990920807102998702232594833995551809379873351068040953114723750887411242551903091739655523189351593225134181256139936618031652072717163348936268652448216407745121106937323710017956539148422595437744747199096560172878866444821611250682756848516842032412874766202809671218077371478768197524780405404296071753373382669230219166228678429279723183749097374929846644110862170051973512569035573377352828403654175076919297158482141769778626414679998050801730212882095100457474415259893574336506118992018368287944309028312842635542750923309069840278497188663009844318964541278609271828280457325115492526993051563811620546615547559047038221391186099496232668872065872480788094206156743586292997861684672302131956737730998485029052733208068467883907099514123731475568719421796482871980840650367966199336311314947932610047073991939678941427346165036281103328900572522115280102278836184737447949717745101981652651097853124284341195399291084017093527777895468217178802546145127267507716645430099763521410527610738665778821621480303952556540222345918992814466800990468839205438313494910483215937613387574815416869202604575591990857220593653187454651571829904957979850718273643621388847404198785286867541337569995709413850899384609880388766568727599267042306030772170354403158248297566451120679597072933806493844724514305021167118763599837694829597111506857836713675760668157628694821652759106941934573865853728682092152150347102774647276947774756678597419558820802439961175638152774883043979732528250859414952631197531405470880061270597191207861873508566435343545992082632446105856131260230005837589940408571947710615095142579118911971599488142973376772653153451979423140319686887405335740218847206097361749520378355691354116046678361715811178372487973004591871644929340098272097060804134201394203139026750380169186865970288760236643604142823292933122508968147013272037620268481739830015601632205382836932630458739989423605888759978542693585071477199344151470479878922002939157902917214190729313832837168203327888013571005095558347620487594320158009624132175433890155463881628010171416559802910078094352005772091731349907248881399810776796063426504549767853847750265878633997778841117513973759359545495162116040360373618196629561671755751962499041961912660623563881774710487493538036977883970767339408342186200953225366270206440982455841820336436778778056763243935294333417243643492251738106723348235412174154452252901852679215842633818460987807081592954564372369868753669320605966169626014818941165398165470120851722768955378433446387513581013596186889266437450272942165627881035481593809764508204396522658525957671093980388054232586744928392777560804132431306632305349540017273336326097874342222965682762917639970027911874922867011565443171233794165985129650037770519128393431559180325360907139230233017571377440206103352374265318660883236310293436789026754409104708344749215867614703105242564821367244183087671407021860376018608585023236164882401577659065052642440487959121372970865086721930788749491182063299670545738112998071829504222730117631198946838357187809132734309303398012572109805379350802339653759743970347265275001022184932208328530605435243890308956816937513550277835573441366271958811827165655992210588797440521903225184944769297446004020287106937721557766596585398682620698663795652936809330055512671819159607430557798161628100302595973452012912716752548652001725132671799494830408509960238946368923593173539452779702297442844815518451565633076324706879642245155102251186121688456308516442785069761417205733016559899169270264569852019922209474541819329114684299843473376530372533167145435810204803557700705540611307220191863926596826193833223849908173995608005243410773174249149164033847022452646850956646765065613503927457226522763870133334018504042959629084903197050735624690656304842700769485108507530212253012897424024575752979605304847454543831797158994249876098443799495450400175522332083450752888651102206240449761657588399009384121480821988207962685043835905530576938352100009476911612631131181216576637586597507215321974749520929943085165269994089186076970970291615456257253251490503839168872023548659968450012014127792695708322340835700589431861631867516064046253565728731859324915398371486367402773513712757065659433060946207156130586561325618125651200733675136535202915146802711946703828090719538098679550903509697127020396960856951944794752257555507150234368494523373236295685513861338576584819686415522542165939350270405059924491656971682154904651834029001035865762074595974249974627734981754170313439500468290948468487084993095394259588528179942595853703477153932162344518613186070781211914400547090941573173660719466878522491732571915599907118596432824527317924482213710728389865905445212950454397883793253208495131044466988267305415834878247092279184436381466509207624453761723075569280161397008827689617390648202523174687507159060456916976007557292953997595612275774040767632075132324095916422366016690953988718504687792610537398601379110616315322516432435691198518876961959266582083565644986904485267905948112122750334170374822456142429991947818147118161262095234691223459918634383295736304627931961579845512850461588114411173923357196286915193366011003006058916995090209092837807444681552404318210688055905778845633372486121941557795086425455381860743678051233762645263860628168490172769559451570731941002633231508218711612187453565054088282452851754616325090955967460961281673149041636145893035853902621666584257343688271030362014041160020563257741406133050760865072671457712949910970159090804972372344595579504724050106867904784248780572210916794002163456407798305499736200072792426167375405777345537720972487493775918354115216667634401846836260894218479428117778317519206358320424371819660987235048963209120139131002336639880403041031951842482972996540898055858318788174269795571364225214210743600671259532865730713858800702004214593370455909923113798605671006672547336761035093843393516772896523907443017049055766662043372519696550754286503489284090163144198538125213600158530943673603515320749286583641096617867557208700829352749902975555400028741316355367829269463108486445167505907487448658589158799969798018091341969453351428371655740289398632247644273196204250277166625991964689370589121589994480762501773288459032847964231645016393993933670410316505515825124132148750258967142266825468676347264291029743674545763044259177132363052963253843723277737834946681562349113004081978978355517314154971713604588195152563604682269674079173088824608281717549979866196087886072462789435041962793125453245596210433763385076116478075783676307445113801493187661558130249827487234234336620364119812510052233330306577108224303689637201877270678402445022491212529318601671078597729564502832255560896358653788293404416594124251071696871928301688913196194856471994672090741725714885656414294154807725698078482044777899894585611285866246724937915837141435333947853077073790332545833299959178397657358473418490134159524084035917032824792334700791872940713568320188400329567177545860373894890687998878075856250368598241639634396101360953933306518155438510151286616744662178789103159213106303399655013445693222407450247332381961720385342042949666766690478009275948579169234728653668734576666847016435860332367187686703834137912337765736812147017930667850189325481489858759191729120044863403367792068285545461976243243721589369905569362785105054454705491965176733635072572243647238769190673099417487621334293651858679966660432407797633109891267002170982184822539470978377578284851080605996886943911900704954454577807375156927565373917556245250731381450156861354328213136793690616514231067709350091551480591145027457455009508493378573593445304776112369741124917172017070720273914368168515343335815813522324185809890323331714078217409320785796135577730220182588119190867730255957535113853857176159056390932777041166142452881089128727864182512499623930243863123345503273813633318308531714777606307684182889772753730018824083369588234894726593688362970636715801727501057664271862588680544221817567095597669524676873865864815562790589592979187345582240246043814810421287116435007921970601608993446754723226037121670783809607587334936427301672674042682104285969639035206816134022749214683105952079172811605607675977533393841881330815416440139730728495856736806791666462029572683754202496599306560326966777062125572112434818648056293768010260066643182134757002758016158144008005031707726345436237237508408061784928015522747268189219868184942588206631251433017283617753567577198640489960302164776282859058360032004506257914883366282273142376440048293324336546360404947166729640972376803376088277181307287756641126459489785480636304695310889695360526924290672314561479140572041504180608849960394376069610760606310934931516729958739141670525078982090910292608967841737403190419303813777933035839188627258319508217917275789640835205811498215996916082933246690310778698377275073341573630915115014425095141438870548713332256277155837096661753605009805642482541194553900302707750063153277018483438839733820334994985121878952448726302600533853355046050151526117295067918365838762942838524731797168477587718544538975711779548476297938833144210824247493953682126784972916127045074266968676581342295270332668250413666589474064789876097142311060861694998950877620320542169495574553588986532441288082869633406340808221111943122606979903925201606716818404872456094656945020880224376474456027265898880555054808596611416225516181053861806548437510558318626547549763491011719155868651234163766093333356368013342696010833178567574095547770009231908627131131614729260735960412429104198275976509152332507872034234933200598788706107877686580100318713601252442097410265077250854048525632431906193714963037167738155696542856740813069560711925094792863846128290268041917979058678324436216211324482262530913910945126876905792506762157978792645993237216502832188925731460178419694282339686036417317702918682910731753575964374198385666115943783661362540226517022137043667200038739815650275009957091211774819146678480882094386287598080886831043663606813965915333266337489530011900373411091912168129338175490356176071074005872576252603964386239431515810504920144266786947588584816346235740333224068601769484668836132517043734011748947740534163923465104166670080071407745779206797381650445911958086953146312648322565297428411071542299594249995111019128440307170538006622219067746125014632020586475903091605805195151789622174147557742455584744700335798220087402090464960493785466712335656115764815879681515109722795761711858002626720103163198940090556810660728649989391457689097214447836419018561577476349100563691846979081450939624619399473420906844944206977983929584252244518783533611404290811054230532995961960345772796877633858679208091862374123105573527669961205641613531672556586932854937680920054864804550486561779073274588890765144352736304793189769306875825692129839057220045473060094849004260713651476309221170267380943918619190720882608229286668581080331653141697158103111194867997416909924268133109366541528305717051382575495847089082772822472633368438802683473454245630878344379999028613912430910885342611811962391075707510959968378028058171760540599070741426552888294526701139402376245042515616107735375614275644975256467521198020748449043387498125100099371460612449453831861584062872445513141105143195318528325578259344529779191114675654022190154769626028865855498714553938579742654113027948609045758444307670379365575426381814634647575160716887949336850178374964406573897912236810566279406087617071731181808325345550743904640817206154625280272554815048620518984885180376793594961916203188693599222162806060427158259711497775562135910528960443169455639472733414867349902551978069077290202031554433691047994782552631420157481434339556793489355962245551146000159012913682916646891143053360859291328870621985153971691693772639859725751568591226115052532891148080002815491497699105912593130990382107973781893060786849179597243506669949366157248290798359641068993592171802098091729612218188100699008187159616953201026108918762867070956246694888969940103590367623706968541283143294141773374117582287721060883523767740254995663924057915439435641739598070722405324678434867917263395372604914441028831416000124040988443340918723979126952032711571286270779253676660117402989920280817375224823564021180967752792248272517633247988347132340517354047174864433172924682454486803448473518390023603513388913157650550863453989502885345579844816041345852074465207356325935722888698910962906535813611878523324080087296096449310657461560265626893800368786570770001068958145347058721344023252912801058832166129646267078693882154913608169538352984017895872788192979732435809604941467539198779468012825447987255017916997588765743145737243352562682278344304306773197253821068802883074148279393940453387554448785210202377164472013665951486218270064200485342784144096266965146115625357913357544635316632195262366643364517621062628295229076067475870104570213228295458124560999080745016952135092817085770276184857181838891531536601069096871791940010971143815926684805910650193742510191565042712197141370978668295084905424315152520371933670366527237147169476988166499015580825439940308299176232208941384277597198820830272746591081091092903636676950911588930496231974993036347173368692884619947262095321985190438871541930285620472355472918576724977172311811574297264749307966430341364357763040301771250898133017213316384685912761177878324300298199521609332267888502575877826433152932240765858900225398948257308602528176557701737138127297785993798548472371582887521233239574180544473822237284525515302370477230320321963429240688831638777171043839145999520191165395019283128641694834428289455953099514413372273518114288755821844213590499378620701024293390232292236707109216693981126626479796108931372633291651501627362251118879467695169000361278188873094353849804089809923779517768361755829571658775605794614348251349313005114026612409820877499409971639377951466245047647073967494775768725937960496554583488565118521242823412305656106262881664860062347105366447352790461874570013703141272531159895530512284025473528201436780305308253723684570476849510774639012791760019046044858606584769250592910229403832761687508484700203520588885917692878976241555896156622522454444586155640412896145753884871560485288502919610973495448026683109015528304347450242762095780488189041709184021150861180568911013419157588668655649760852333757051434950635116058647527956132031948147595623244066138981209383273182294309244444474211023100322129247900424488845746404303229168708559656168885577653729261448759560807354342036578677135280235817988219501359217883313936316957454063743405776748077135013671419020120340727111734114802820976276699573870129611446159213068640798637375363671218281465238013481041394348470239082295156955709992225758005677174161384099251761710333517111063842252712019231591430457194318338073778507434398360773177629311520654771786029926653268078406967200246231469026408968884198456135337784794358874537510266911726325797319891355689686997332145201621439157766252275836247432136583748022924356239417926596183444152231857657224386867475899715134303875937058275939657897757359462754104367114731293530650969766452039868443685478436882903357752412551109046247646340789399803434366001451034848560167763654977058561374888451368836761452996962410496687008881959200327647588273869950501387031518338233842571806461515226303184966160022659900285888238808882557028636366767624102859106979994979828908909885302504650575348120306840014529355529224468213830633269871770739986067524479316201121308370239703659476510935321309980024402940231569835421834460355398623322997964095711190893177552757805000720626889817736341895642231080633504843142580430430593249628146724685362777069365022137158643048478658996923082893036421887399636410749728373746777566151312044696816954123746615465245314843709638825727695310925142571449718699743209724806474623522841649171236459482618813257168851708464711914289324475554147548947537290428934434322797954013217525033786570761792821874452979728297058382395222119194592538676773640682556369829841337089762821017453046310994660951875594017721924209984947510250231361602550862243530972254668104997366616596637871439824068678887511356204386016689578290874887330014878254831792616857580691549105556409816977522630534753241064896106868100634141188981961178224509234759054010609799168594044487939986408553320812608861362339861680987942077539861538033918454667177691526589774473268667816583366405564446485195367715017254126931652985825705797886124238622146861204596726772751137376808867905161201452915424995601966348709374628234687485735924617662229678049857509850440498399925647658204903107606379527679050288255625658032483488945386471615879504302169791209893700069858412994655475352710394798069976164325913867860456578681920284752841766463693680728923403386821251814426493207196135206444330104832182955160100340187216924238414133190068559938833101986763965424352543100247764262939115864274804418799151401519628919984328751000680773802320433444207496249190332782832203350157390006495171550776097441464794320634338318908092795105070616291990638199205914894275378617055145891959718389122215605440600816036567892659218166803167488419279229057352938897636383607543751325184086817415787385034249096600334155947174957854831556627401798390480320356383101220183173259660264765770055573256724501542777778650385623181595797821351468409328384132321480777014991193880223985381245441917506423869013918095284654360637881566303204621189965656699445796411993071653918669825998730213036691594216678268939446998213526022036731693413800688587638807827543666085412092888348620537719893412460442305015322786706810779171575694214330559239279494536372105002939492308754208472725176821089823569130416727240294504586147763800923517129694266164720355417473720325321842397244710185352266854023702824156639714151718949448073288729198161485817867996881475023093460339155680217732691930490248066782994540844281432435756346483611906081957445530002293965522040946741993248331531098243411860308993081875908532042328027845780112165680813295744619162538612313176194287621571504547526756801345111099658055625120172934028384836717780904389162777008186409730473330979179869576529511744688667314949361536934581087518405311960736303103465049395321307152992810521060739032710480433134549583402370756755665291936502316997279882096196443298224935145922167835449273491980944769362609610927503696619895700517186297422422716485098056717808151923626536743746080926384157407861140127775164982470152367220310862389884762060362127183054373296712875675551692390734106111712914233807450016711092131366342503868540829953051697886480824769445458968979432885799848717673128168744654706288976477025049027764896319705387080936802587663552737772939321721661136289034142223932969291818065083589216552530519164559508601737885136438936105190502529003899262067807123300036815101288276238071322195823113176203203946228922159749857658785347940616057190153495203907119929062112967178618624757004390632527272258613869469286561939956040421107139766458343956710899734125863524705216337810395576909365047436720534912712598214601621320064719953013296869835606280050807036210285844474760062243943546414820151994118407157070517066614538418878938686983817798017572884486010536107731505279598939613823434704837136723895386492794093826205260874592602458785927174330089104931308007042191787264872725849046202448614105108983195019101631473868139201978225175064335013287190794701113281682330720006118790776908285503609061908006042771279195681793570681207911005771365734802894905768434035119226450351040212171004005037445078951053943650697950007487801832879301875903610769982429258511589249782460526655684350779105170929909948143914765815657283359526828292715129831571084147837528713959954483007665657081135217349248560598119356886732951934645548573214865125418208013582530704296116533081156308931694876100480441563657181204152961236384044019612810519621591145302272801363699439590256701381547250080079636330309231204519065417671204671069431376387308439945903641663525318755835699675896381735116571806457068750651637019599534300964202388706924447032545202777663570533452839939055461799287944650236892190072862655593302753298060180266569950150292276437969835126355583149519545164881719962248050921199927513930278908764383414781469447600729073071803274070173437402978421031970940170585412679099716603262431497768992038469704165094252585807939855293633777222915570495607930289679278122697569102578486452635055107337484432880832131281395041225373183863234064344942777350825505645031356138526971414265728314687882901133494003721333773274925731452716578071100697104012690702678137831379451124614147640431403579736573700870885477282499892141482767497580722762543252611820535597308384665264685856682197693677573973473980207398928485951558223432616296753057342246139523641218100054692720000523490630322403856383224760526758651033048221988492258979805049239460598980921928555267121208848835807956254164368958670855856599381716719124466207050441534483980546615785718055882580195424161720516824023166001167654463033566060625158662488697336041512236818081046535681980993679916570626172783185322378435691399550678574593400021462282655345852338869089461020945258110377337168139132987546112656678520274294620855039525349860074973405012099869962806454485578303896000030495254192953590269777436817708860051422388168235808307804672527552936991318121706214995961910457118294701670445662378472787048353937217668744511728898059596328410822563002463436349256571262802444973297327503067982511099268309611350258650140322128362000203484736610786298277013556585638240828572434852643749011726498148964432048166872387427917424614510422561046069569387176688744207465626947158744249585416310124762736487161474787097398102517075909201906365260945114361305177743853085373424838231527801894855321354733763464462230006075308431928587794273608562981767409585187581939124027142226161879864170544288212945043277238116679441485483023156417681249386965683574909743046437894930899410512148714881710817367604477006371682940338635547288242643552172267907556518230044993553536230375560194516961870201999071690032743115443441814153563117950611782192851586490830846056059122499379888701102555951810511558568323192577321338689449867185696600457627923340531352430036944001328421526692517630122636745671800666789243834212417482393405972453321969967030460912815417682454642336129147057275895562435606553413304875952603628947118271738685562947997986287627857339457331218366206588200622553913189713852403451914569327048533533771142464589366789055185241349776776474996127765882508096582289660249531094728074054524384553450934312736930236146880071213338678811792108072502700268848767976110404719474035869031312412481616531112193345739037058566186708378769080873428367251215196020393288648973814387603462936168520974346856991479193639083575122897002453305655371623532808550147426389933187580991406406826567613003863056404461318590766697057587407741154743239122916244173280191760173121402098516223288700764894068172653556961758167509369373584446583570050773604464865622865361074992915698972081305952434920754545914227905527423230523486561732153119215327971473773518846569071162541219457746850548278244149393548599471948577130934595747826147122723575189738174621102729760437947833291733382484565675215329588196452171447908387625097570715847486678584427345388182893442407378590184552583719985740408626447884868362831294332316309837489066122322774255328331807894350577132127930573633000200960063328573165585926788386807815333810057817791977404811524557984170783882997061694464664062513457098327220069438953796219928658945269803721339791992341628817959519581654783157785235964125392203313573135053678597140352486008140968295639932280778116171595009748011377963084325141512854957593124804046998273643360317391019424657223166479808266447202204921953256054900385017356356057028350113267401629597804085273355872797618521933921047596754434950642560042096346869709469300093120068184653963190894400260045644202629443389920837044083304565155469717259843758832494882754246538369265207624499013693933448157291598203503394577619035307247753396877572758319670270482454380690703876635139440938265543912844453006574444167596025173548541983865287481317395487025390943893427096082357089792999597532399376895549227381830414380547523038650064294228043873773007792133932143554025492783592984980003968219437619073014047107459775735473586850496585814765030329113425773419014573319388520849105749272549919630252695826120126587933832765991347946140758661397684663126146203242560356510977097809573167609088583238015961349516537171080124382719960677987842370444167149868008898706072670222115921491273041189886862636473677681266127588698043364486211987665331926499013050257286884530459114338950322607595543416296769670534411468115793238372575125984251230658974552080659118912894513690704023868305333515336154764018716880586992222137382262907052203974019903081321369145300719313882678722686875243287327004123251869163625671378866106299397443080097741609554720383356637491264316127327570547680088312892263107156524602469309813519605911133834785031694316290421668608722322507892291026211332149321314098277270249635684417035158179379933421923924096526376400580912137824843795545331293947668655973167556223423941178344931378025801201942870573669472315134172751738764815465058840127547880359579969127076080009971662652554202615545520234844661166553491416747401958520729763937016525785368191448920216861838804428530698235682103696558949172556323185739837004039626329219358347710355224449682672197056920907523244963760536552176863876738084074865447030672635102319026605881716707646201463635707684171200616342616186822238285979027749211004068426456088778898797389890506403784237177238967505348639670983106131485621796957016398210977211679717727329567683048104421483041716186129050987625858448374763316215756084770492923697563449084998828211317164034702030895556254561444006332824562270198336655802699801550622960008524501922953765096740520075808175245354507171056560672884462013860621929045547519566594914717561284361134226326341154600664871938092680525445193266424617855452005759070839919457087891543004828428805543598497453859805107080092256740671689773516324916816315492220585232292327690959783184025135280099204984316870953815296768118371210906120720317062321524140665500673691075877740311277618540926411498843135711033332458326040798999127759782426477903729378049429562231058376765872794452117423292417838751137002555495126127695029836390071983860013869696903062206870088188203428342660349493239313019732394523451049339352638472306395345092301702707593161872858680214355760867736229730100550485952863614293135734882061563608116341348220231523618336232021177655103849610443508025084593338541143228094914627303425598345854867351835065236625132561163191065408713920865503222695398729222859104557889996810782585956632746632994470267508225211744369640114284162997756253232830856967989944707669785587285259929189580976465194162645774573975859793197343236370780208972883529280900778866792538027987837283458878284556413014775180969636881410676072759543376692620247993182603935051042978935582852773516884541071230876740598432690044816369642863675254626259193905811769770408299406299483481100064565911504532407234278231632618467712878354383825226701115910330951523288363336950374229129481701632332517037511929759946766581370772557266348898278829053067174357303489165193893673437615232169238468734328641386694763218219577350548669126405289468906981485665968721285790167070347493102467402851649528276401656666636234757288216831553941113963320097322372775601455438002011666305192987733040407166417552349300698096036086614736026401864580997057888252900622433211732554318375108915397122536143942944034381318067399857744708380871762146585390377700795571467192656898616814751479135256219687378096661582579865043802125277155511068791217140931328937030718872886930651186306469144083020962564626295399722511712718553420160591911476678358917383755398902042642819827568382647770022755942418240070078599236240885813607757359771958775215622215277437108334810154998330165290845120598603489554665687718806041231124279790792559881116089827909641421696476935396102735978355039403102933962927490009622250459157412211741514253418849247433258936592201131379888772392937266344899254893908858193467559046521117186051135979044253090069273635903728517354666865512286371274896952175780461349199204549229640087306462754962793282555201525712606579986649596200081908658648711567839877164623560539267909142087680560258547631277530773987666334761268510432313222363449536045144374241929167750774298115615637202906505358561871308625395757354968986525971106662236366997421257202912047042921925577502485356568004054053451191426128652521136313562392381210402199446592980702205945655777753001139023525252813959875229023345551387538889583985172315946370113836913088304348389001690045371356249908885438286167299369950171031388722630227552216804762379587416120240598014264828605198036504507450558713176997241495211023629170851461245200689085907935744031259731003968076813836506548895118163849715508960016108203721598415031555607094980786213248047322667058821547128100771453624257609094102958600013557794808161261295196890838851732143061710796196519613656653170799342861950827187613411258623828479224998373220570619990599659549698884251426130465950932947364272880190402623150759701514726517236041403129166358025628423396012703464705134794048752768858816530873546800544507859101670920572844249339319052026171824485822847223463266986357557869924778157771023782827622551397809688616531941264246985759315941447205079585635427117017278544709399267731424857578084660198450527091828787105506443217648942074879234224492464240333961471162925300817637272134621669990043842861468709815145305831434377345507690070084742502825959609821486854145103708328371101910038749126680498631843164783493221139269896018151179098387090789180480649792271440373394054171878412981617709747972663587834756580033218652296481999541554146999830713396960419084831265544307273794142009694942846276819301564207275172666997400503069166322964902206201508055949699270699395213396619486391272539541974128527350104983013980619754533735162810867697797844427270558064801107171306358455415239866400881954236584713964025551511671285515625498782009695739710832000877643976599612500859559925134069899820651704734378559460004012674655960679050183231473532784138644157296455517818557575151946884087851812006440372686317499884935391419622291460483679808507283808586029171585923234152206792813116593447372875420014806623010053904596011110083990854227184273210772971089332116673111011676451818938025629529444240321703952036868995338913703132688957918027995083246863130753262954692715065016473377950229035588150387485608204821257625865550525404058402024792391657780109816493928124174990138028343683619135384838947153915574471534193351799809995063730073809379660534608062550811007263224089434442092394973040799641525670789786506783014401915682504621674906235433291342924630267594240190882792329309782470098294497859804818174360267921430945006740825648169752901707033372161852565600108312705527892741381351224598922810112330400651294326030935074207590251346234618875724692698691718555222045545294552163326499023962668428406875231146048171901755639676785652045009734076206676130764880081397090586647925077937777434304264767871355550586193740372651671233687550699384363163772728150282332271210652867683754686026591590391852953899845243175837738191981809768557634245047223256534030590035460127834373716869230859395695092821423318190333973450767847481903989547216936903757488555535876538647662587048616891128237346961826675545071971526998539328913613465924726181524990213180153969848793526960196492080815615517594127093359271791653566727714009186719311218388499860186181462195051495912087722576258473584318397487084424049017424720232505472850019419252966099044024760604110896411809949410278362645792171340033948979315883561445935128577563950125783510009541624593657814071641599447947248344963751212505225716408343977286188073721411850936476195411987704079783039077508548530606619753870192056780527030916523184864306965442702293237372752256702073195029916949062185447201519517521388753971855726065725258141490835852897447445066574724003380291625148963430383877613145300248136664080067497337268857743824409972933077693669652387945471709540439483927894223845961399923843746713165632403996033782360835437774663108855889006527592883986234939622857521575986859882356018438085436524145840884110745787713658354289560899321159826018739825283618995526737733826757498687493838508562073544648466592969280061449361006155729406711553865671855364089924243257055268614420177872820498144524552013392846912957711343236113150202238787079420367170856699968175603355109133228353527127442854728194431117253606811011252730931831439414590618780273665727454721009930070260207666057689279990793066382708403654511266413508808707404013934308297337258729275350156830195418276135300735839312964671046789266368785147180721042439803688078318403748082866233801319045279508541578177310707942082387963246231547908138211285718810873062819210304244623026691169859194620179385695725928213921390050289457606572685847348664462400808256621097354834049593623050349566740145486088732422171865599222318064017091625290671922119510831110442200111446710178378244769136894648775695467791857300519325606117955433548618930432694474680602750772063687063602764089188353415455481218312039114288084975474433123545191883002723363559496205746017702802552948322973848635734369759455194415109678575401566438989474447871675623184305934480004796775041776514263982067640475601441346204452522961372768521682327392832135604313373797148903270099981430365096047704593991839936224004284222573648524129547646642411927089998312521330551391667760152580580080042977802446182014882839004348311425260839267392794150588190710150863187354886876084318791097259522444970398661707989028075941442840656950123879050231195066382918225543631031186681354245385787029463623628195564993433387599120443665357473275167649633207168270775097805068879342608013663169998368369436494825646479383651403790901480395724605962168834807211376827760740982628786937298179286589579420676579831436367546829135667580148878098251468892149712033995949950532548258970929589327269244686647537135060740563055713342192238705986450791633833858747325555144459715537105345057178245380834870495884368991243091158106985721521692919398643422331620501190770784891765531563317149885865355708081774314789385482928084372856063681995421361422268703224724481034030620421263606301455697496446681883842912853269297302407552761645456193151838854634854470984344971917454401924368529109926235735934845047845322058322743004678476070009994145358497940834419416467698737949807773853825572078503646447310334646262292700993213649865342237601114496798651220970528466057274818194241187319423362101190440654946763075162306987642615643960520937151508076682176851388081096075756057951441886336849038206645288226755904613219984199390315938039569627337253218536073333409615654884251566183204214593701556959801232206615412630833429540872067001898541171778360725461568419615233532481007101895689582722923898575832033359637928029110901499168101138607271172059421276411518889265558447853707422444566925138682848922501913727984044068036341001826798179169135683046142399631016618575802392138194099148555546019340389859507402571445484843305543282062250025013491433867507294573043263158744990393466783221625193392159536754230397035719653308867049846445887915160319920743457724483942018810384048087234201946677362699634901455377162849816223734644526081567709417979673024088378328910866706388091458741696747693922130328248532218853638298763547703429691590753639538091259926230396415676891618719162821876418945402880297507384212573717899187019100761711458171136365450989960780428123792740981327768541535099001374668891870705495103169907902476753722322357073706738977347319726085230881180441439984082360525292088049562859096097751459941849491987857248788990322894515147046568508567622746295067095032558714222195294476593129350999666231934289017517975063393216782664481383874494115319988827818234386275938187773962734939076367650344470803513312729749225942529466369304175995240335172103967159665053649255182946992190616851312361201912269562961724552141718085223829704619365317924024973777015270918236027990048623267994646983007176183205204490409681968730807908924282242239403318468723460884562822548378051930202787082245327453300537174369011421055403430504784819664550688654150574895833994542617430163464081791197522635816182008975316518083565105049547278406273317890573208106391226545346945922713766807958422943399818024525547184150498099384874789459124983674331815186070608954594422690373624894464350840050691091106546497835330497331855934528798233546360244834013897228416137814041220812903492265090401421388976074676660606122556848809098540153396177978076909870896915980076271576604959342597568444864850468058651716368746836195501882129277165525706918100602028725179045545501895662215578981787586986739447198968288418448980118401688506680105470334787845185984815059819806101996777301885540163672964099080112561241908462405580261705914662383490269168826989727129660906500866881034011550514216645093561945270936156514517259520063765956787556326892495417297550487899840242943851511616581101014859836053319309956906556333621936758237917412191578719994180458002498051552985753833284099413819529435735113573819821458672403830134053631589797279315792589299203755852972702922677053498699547934489547896718228928545016898041944112549530324373987743623319397043325869336070233015514593294547859408893275561113330627720094299457764321562301237730193508010727900608694738480452984382005869747812110405993215587108411680680735929181065994200774597971680657384277730920728006101342103018126722696330531685772436240083691856185428993507454259119817358039917981655680060443088242651920559831708273028781609121305004457362577993143073851194787998037723631860673492826146036749840928687150424339874771126194351531845745339493260520893896833265644034168912267203377557120745387354298449394042094414401808872002631655936928149889834091158306270273529630987787845440717394808881021828027361161581319809593125404102553498012496067678701256193849920605199655006298636492771442841492214672865581812675748022912556287293476423387265383171859253771316408374530066178725905268459444557937213882023211473142893114551150867046379423723993793046070636095564191673931309358739800941348704424946210795600211210169877776036890030897281171199284652350539727471414760047349739688841270457961810542966159899122654885170618951938402615102388303984265299406101766739793532054883545092833100999040994669963484047864789856004140621102161694797487725200347278052353354122150246891944705389909415292677711742357316747650982324069238745842572528889093067542865767375179024910955182085669119541855527762766666311618716029836344132097179493302875546548691549812354130136033168295697429250296812266037823559470584768543780665211400049829681505893740100082410112964399764487436713615458868755852118648233901692724391080094775012303433765018528396646919612989584009750830452970533517444367208635351191487921996869667524157381835729087780158582467214723795431476505470721217856276561369762380548493079344600551240814928493746257225925134874624373249621839151779478536736381014480978790056806719698427911344140808171577412028760320112919171464562997209230781176127613437572409949213281470880525106804163185479813699231566160032225087427468820717761016753536647058206581885055552603289909669632018140218795727206814876045130261708405378037330737868275410574084056215931532898140369929043526621393925042645323520964116035697880669419081456549491773312016473965973055887573716573489574343778802871288106920699264234058478179391068764949662279222093847003727021544871733289267712950929079604403418130792178212121885266730961655512022226785855189751819299096426521331251073239059604972194448755289947964493541236619380684876816614925792287893347104813557657168350685119136611250498298100529053711251671348325871956347274511265434639883583495021726858149268609352806706033343725730058630293069221181087109478581303526375779538929815755873130290680986030180044836256457882156555919469022674824024397188010118607975854647865898286673528052437572190530759375008747384684386781548965960519148391244283272188597551664597901734425039781289523735386447444232205026718053486606402911820707667937871579325169439969062653079711287914829820962246934088155877577380910231764466757041909002992565825136807872422075732146193235592577777533545715500805680203929416780306739258454396029995927772019074238794485768935179305070213827284257587030262594681439529068788762106893148113416547906587746314993353696995339820327948089355784800711241240479483966279304122585807720889479582231704806300552807266007599830630892739053785337099030111230525941052158677345866710020265286485889135807711883684309417351798779848840766435363900745366930102513261247148876332828910371176462524937770718888072938275578513915463403645975367160305059542098404041927162788727091948873750252164881620323185677181264968485046243171219096132886662234036351492440669500817084145734111256015512432043542878812026120538215507000115228166902336076185363534739194912643184622886298040634837932683507426580759830674757289190306426027627637896332635178936061863416576152547339961906148251860768738577709259627735222050036149472087057037188544614486295222787208792309817913934579643403453117516324439065425782766795854556083161041174188074725518280833854119097701395974319977618126766941238556890384043931102185610326040556224679330407312272285095151835359728870720138053248370236543729612092646735937040337972454672819391771848651943902017637818830667937996465106411930104137653160924568571310906669528650460871996800882630615303100448823879637595349769416958220802069896049896965456569212051131115942354307005015108914115498296804499486831942253766414284705522892641888079186286712992234935235960556966612251796607311890034767272110354175461194122961204421660318052499531381079363114117783020861520673598539176954791302226123510700252570657064369850200782458046235911940436385389350537940160721983789624043636040328554283974261139881438077736408558471515278496437635224916134733166599074720673676820018125424182636612944000662574518662218001768636982473325388036979206141524405492429289979881504856258517485240732527468954894227522972428271321173105144016662450593287229548092166613579849497235868764523390736927068348363902190432072570828014205601551683013372451529301034042544061769774341976064724857158810334310839243303228382863087252322223481983818464705301397193124704611625303232306079398209532649430567334390962615548873723986210188620563719598008684712968701674532794637708017243529385550064782754003554547340295661183542882277947655647223185921114386679791904250106988932260604342528984381281482625150105886305250633516131639508961402252573862371767510716762993203082235275904874905420147545411071475683740356011977533851576566749824864253488581370994409638013967764599987578388105246730216553234275025472293595334245381721915077417895434794532668419737556300068294992085003511486755607091641373750221471771129574052967230629494144375258189192738849779314667833239489176876895957892945775347282557111259916901710499965624695501846446382618703598878023395566830466235598326720433714397304311992059989223294072581332192270606767347272606149521793748403351280573848344219287499741541596647209123515523715328656423959354662360486479618733409054806257153368697222011642399885792459291753156288149307668396920733755395499234574575858431411491294310823871840552383443218038795488026089053292745976068815917110157751855278003884023880946695229598538929514707630047358123467721068101258540985168075176348647623245863318841391673433363563837631146656659079600563765677126214577679001601505133137091652967043028389996278639472171252093348620250089147277908440864120046705158815549511629836652325688194687238539135601277985314755120722198774530681341060732702777403198770682506736113986197400881300388570893028168137308316875774272684168720324505934383814182112102765424722267186782300386996643810183361583372327976312906824499733773694499432314722162230207432396430224907654235908312333328441782273678630919641713605369483035832218007574048091092870034070701718945665003357524718844991625883972853259141792123700274404778193167662930862270632222006857152795042024305813273444408719158562305455843265687734146557933906155609364590771503055147824893502227373657449225272075905628717483901237068808042857645307049909527248620216690758530411610970174173012106275208461864297348322339578175920893240147296343051552623386148081150680041798037124129048219514104902559316890238384073862540209369989894290113193664196957748523991557257867898736564751557250101640720488231385132034062547201631599128147479669754191138332805969596348791092662218539767767381548901526733706528738739593335949093931217761498020916186527328768181730198774818542454718417109837573391210427482764016076731275711780123359620575719996926068943672696044752157552128952473376343514917174872599111051177141840474134661238338827541657108211906795713908070616567998398128580408356682904219472954185402328080424045870941326413090358109448259591806755670048102162600252611230511395023520601808274559286179540702550019077844643793729171676649444555144360560235309402569193912884231803506654949024708517862484144831165010105792388180296941161868211158188871935699303755741546599443571752933291971249168199587654284170819284477142062497802117423712210477987885573833361819863632014336816438711522792294844928879155024005852955202249497653933130804032824037356461871617659177767405404183920158983371441261103884041717915633732736566154534882476140337455285222178922328596439892425015727168937390644659307407904229300925775450131056644975173133200438384194772632279941785129717250409168951954093217453099719187937656232377393212900334208280431871823147712299299874801117168326239298162746567161419896156664063890698057489959921138262069209292638251862758248282557989495256793642260598140619456864001812581875823840393225883215874463925282494279602051177615267923909312608607101718099421146641105734529766826200853008028723606327937172526734584325055820296837762280904405679710263520400424023867733507105494746668668817270223691351930315106000939189143371410434083565643176470720816558809264872989173361317336500111869085537072971485320740131349330810438085543230994196429559210041573399302971188683393134792483788703215705385690945039285076783254361472612803715676293654431809817541654692941100434084784192767806258709015584789041253393629765990058333050793784489885949168044099691036104436515856889776083942513466666654941647728877069217379825265263100129807678313685567265464326308861299664070438571148464137757024860401038882773107968124025805723362110016855479946241541308845472949237856420002028964215860263522066347775149892863464877248116177472814321503800478704401465098539012786565869206677355425162672876031444140358338665104224866704240306114094879409025047715688451593922354223715303165299131307624688770559560571668519445254842341643936263025395628446977594013017096307377432610246962237984310088473150725500959329470194490208179152908822686973768633690222126130098678730837595623480526824857170142832953876370609393843142351930821543501813830029215088301552277307932908067531506528428077140594379202186842520790769106826117660170390356186837134872537666510165631728957206769694722598832265306518341515158234615171209101857257842438775645300262632780175365702776566934523027748583523857488379499461492811287064260116002518751042320265961105595803269447454704971634272836353883454274906025321950570365120990474199404756742704402971490833929557355637493764604876517217243978267152351233829816522063200801909779407133653651576132839905563378391560889253213417644148465662007336530196600783093714474881983506162514238511241208025538964294684801167560178972667336451491623263663257619088232412043506291133048530776452733225482734569231330963218161681203162421195213240042511441096063434291517652693104025217160657184167581079794348275294316497252252065805453709401253955651729472987823367255078901657016976880252416323514901008796497389186015721719811891263862300610861248270134684584687839447578849935171246478085360969507665681180994480270322899686527219042231496451549446475810739992413356890214799672868032073608600788016377576619683003737418029975168821494697228243811386748623646700625138230453254125108077776614752270487847562799024818531333874794191059591956246153004531079823224794579657588428064151004325608326434881992434322251521056178515855774448373417575466436855938461032005408274709493657783561940228898856700954820577454302785815472146578632864451770058401017567452608063141057328377771837518213667086897768934223800038119842968344552651721221288233591762360555701870218314735945261608015074363522571242056670317660810046666914447556502227526181462255620575800844464841200765613464471370473949816325096926678527926060981758121975965081264952829212980481162054613498231499832662739403637732426808976241497447022072357695441984736258992232220495869258371124869524064271501706714320183116889788971009654202374019625610458298531549680489253311200589381129495159286075071035962326120717051285698658988320347915817666960605487194694194466330896980907002722389500772813246916614394439643420622040442032853700151189653630354889826659293610776126769128879045316160698608628635511922030736665139256688062521638953052971277168205769922994717685072865521501569521367291394586064063084648776954492717598085088059171101188444682615147872633861169240141010441611395020588207003713549131289597117753185461048283530133855444278448945606713766630476001484952835076440506487931498067421873801799051166795111296979429303633424964382757996412910606735381920948035364249930026231704301377799457540533293345365885725606694780817296731827202020752035897539035428114581759913314238811962193030053176224819188172138102727348585877939313528825533244183965878018049244318459597937949111352705918853628041542689540585166208851501600175807749403718780557063534623318535150287814473334239132576506984798541281518759662852506776937278124784220917801923226556923525282413003335965980742243707234827190675287039909233793987140508576416694196568985831205968977566873577840743061688708914065543691531580298828607561795286176955653499753125728070246196709155689340195088067242414039896905231145859812165813829655578553341319815885780115385865632995006771392021144517408842338677929865584834935298760223602839677031816456547812897892445589315153818984598021286738506746986208254879778191852379955357146454655629285342436211314129946009981239593634020034822829469497688032727004589160828673927048359354512055835104241896779677604965051747795387284402668454568829783577084869845586858761805533110425704639959186639329626507863560197831238372292356715230591915901685968180002629724486262987785303494582520677652807842576915834823171631743263991207058494436336198785691298975070950917207043943675034807853433857223007790811372009155899357005375591413727567978012472458752718351900863820180486884837700246825748467915895052684596037376331027992432125215092909589977354720705346448367645588559262387608524514207439251960924035728396721477349622512088201029798520682965950359931552741226373229632577850238643870744296125719450624696352358696977689704039362850382060957360149808546634020695960766385725492354339789368700820240569929866203310243243567416861585236068862897729928469628290974613537741814452282980156488977912941036226016080510581073016302618828321777142843671390159761953935768504241074665738478165092173538291363094775832067796788081625736762315176487643002567523077498441081084650521358993071376410536769678945020224543367664543713922812108207306364014196925941953870335203823468314621973113873728670249096998263759865079392161169089222393807607596944298252795248247115861387140912030335912320606731285577030176397699014010376608704599017570162673052929963973883697456921919768496049145084484455235800852761274157950552963255071393221847675288993774711326766414124465539138230552732545933027645968574839616083083461181538912627689599632373377839864007743684195314906788465929797378809179355608742913937164320206621971042681543223154565367748518795730026802542087790077547744267011670184178782582988984063177799311894914275628659896069159905725518596902183081186711287831819573753194327821308327375546899961336656635943874790070001024123829118576487851442678772112220129230647430287996820836112240279846620961089400534046970924134610742158795388278703849877027531003887475374405966668458479619498684524003631150786081798605482064811227805641017516882764691035821471701856105715707087347178335714149321654471583131435906483958865087610105500727803308612768617273990368409584394011828965017992075665371089920162546441389883203280463292844570317679137247282532152054229574561698538623231503418633638061093868242690481026109125080369525961107890812806532707894864930652264329576142455449868143405181860410958632032242707009451709142622340136427928003352269004551665742411713976961876205783270845289604127940775811545902225896309578200148682729190750920680343439098167627755413871283701411767767588205239588638164829096815794162474758178542301648302624879062871661089396425946419252730708522334371746522904243795642574552992373567499150244692051836205381225796195476823327237211270884483480312144779621513283172411294252991985472355965293153345708537643441969563684268072285872573274475204084621450530075387335088665501013159027642429593088895329262550428724727972965805605566116102778401735706915494571756875327401275258541446029362083356814861432641616356600825736347371731432100628554661135624243480108152275090436476553663387053896626986357446870829218294426465417762938168140983646138759610439921415747405493701634760689147113591974884716696516194956132214184856463488453928236603902591672382647031721125830198485729147693459257991592731444249937044099120427125218852353022831943537361128969689786490536593497126175567077018588298057322018501739168738716511869353561032408207789855691626451207051743485664207314034397849464313907087429188258691510234108785854862174663153687286064990911013162775025373771943610173441467715544428180348947061646761840228194158086666276893349797936847547949559122713816478840468626694551576973733174837842877667433289803531075624734680185831855642625608878402139402258597252722700049627527731206336860432018291824010539223125384167618139321694490953480145194322279626442287576497522487679994399083297125682980119175044042967388683884694343840263627851067854979330512688114763862121185044075218737601521777444914436990121776095927579849801287119067207394931056301264747196975137493207870284644828390818616515683778651773981681546326913150398880105952543795054113698244335477597363868418004529013424798154925942698673407150465947728109898764238942001622178891310079731386306933377003447545986862087421426190787250787895034047587546583411900578285442705625007786076816527349957673302176311203301795617724842869289872977565012607308785181535360734254948841096532576273331952802100239401620766901282078061522652113896558924352697225471725962009550516442445557735546907200254349557592190191933924635461778012927979815683959114398533497889501920986931665481561350114691280794953430823086340283807129391945709437335599336642940929730586279053759868805217392804727725427047634218555786017212586240383252570389219682544731630067116830043535665670364496247671925690990049687471999212428589450832935508467816547143009093749276305953274318611826262474960827681322470048359722183536845589757249072040405699149439166320055195638234139668566106323573390963171435257695631560802825016060700680039085466163538966851342697876703619167863363724410955251798754916948967961580457234044665761008085840789682982088113752309518398872207196771621918323823623219820095198657878714008088495662670152205159118402252858997522645009808904811943875081793510881971352845332006055644176779750511528226262502148784657928413431412704943154084687558021175393252900107188272782276901889136785727540385422843676751889509763802262362943579138950533204603493913031377188656424970666042478924745778269602428967606722808949168337536703665054306525336810805099124327890252974038428510144804648225113488713049975488311103910170343238043243783601496389967727352284111611468605845074660619764088626919727188693670506992106613797360490641332207609113506932392909196139222020840353050178122824119731557609739179634257678829763176892532810637817415688192187485378416857713691434890940421025960241162313493800449056670104342331233582743904137817549765448453903674372498106324379882995492748973238892305879980006175247780930926356559162974932317651753705500753321973737979980491400307241391349337648626337305436882141247699516056715055020415892260350845527100969896718027887862203390785165865229610988640904762847890116827486869499628155477273907173410798783329530197045388783797951021348464920525689392598141370356560034536728716693600712470676126702315449671698288528866681842555256434737648163233546853176620719676281566954576165357953534140541171590492504798142347533788332813051777022345219177255151270642355423622011065021420470217871390273589581520900959559794887895220113778726575884776722120712113578353837674152292628719385785540926595890178693979757227578472902291634501905191753515868738232462593680447469043198835688753619400538588444582206240315698268963858243128588371108605269289863870007643639439544897559027151759243873558346944475203898630807084373421915318978118215867725215298452194466382331223181622476007600436752202196071563300477908745065891798111290490440647721005843116650910124068173461366939824347119106548676560168121549207345665685202288951839999469174941502377376671882479852687840414939481745030774352123506245190201371025636987695969550379345424910590544329312608935279278218616195049363038008564886983519390469501135128633664071894733858684688602310282898698169991889933235199392542956564119842499110664879551443258846875323136039780507655805485625061853623242275683680961909124819924628192119700880771736028893361199381823540576420316441955911603526668315317783050768356692232828584003453533452474554298535364372641704175993997788870994056110495070253365184612489947170526864799506747602172509048178731102358382725096131852772157059029193126058903680473405883498762283697532763625069790462720773899488110652624705260323438416121724676335023008073043443773013126659940264566511315470441972503516003656538869876617886668123401884522692456333624187809044870190475351188416761998855398384814251409099425388777655150165564653726458599852684474249025337904055790777489783454904278699603110120275679873783253038722489193357007169548176493361841225126176874696187008825792182043416173822956695856666489142715912909766375076826204762947457430858354326396298520681748697970993742037895083017214025094266324971940018587614188925969381472219232435277926414123115393276049918117089070121407793276708909949784228702290751055195187361013831538229109466962336549492540272910687144758859308068491573217913951442477789999230325399271292655143105937528287241349185168135611024915882472471378229880310757046638273838860230694973832378701422514678280159544137226284593024501124716138575920718927387323235248559714311726657104788061057889093849627179581399112930857962500370428287957745422056890770374505576274885950997964034272347971675652818292762718376790115964092523946021370302972720337630291733627996589342076592761317703546034164760559620333428407276624636264546435006308892215350471671199414983628276812041096313584993086378154375472674455222597230375037347606196167899245669200766638912117011792655380035362530452732023676957338377461351869784860794401550625097426988971635905106486382917354936801377903316042797314727347404787300333228816973610681629034919512754556129331945692496019132626584418447133388808679615244977999759889446795117107870960259553824818479088334732025913113184245783504258940395056893499911733097626394258565487227100346684127401500487834876470102347298158769032537697979734486865877550995834653318141896998342245988473369663856513817949287830045829716954856074189022206953013357042489954413475079619106435745472687614635960723753428879455458589496067509767894966547530525221261257892587756349535687453247047256295878381560821936431893768657658717784877965326439086763414808637563418106730472913741411573675863717323740122343465431206716848693035797662469371039426282314049661568737236206545807491024182987856088927564573644641808505718584084380810062509134730823234354355607775922745140630879777994470954875424768941380145031306583633326732937672668504428161703213795883288569217373557213690666878725755593993101271381390985463799557249057229775298358475160065547421201974084462694034285303732760538829366374449968835605204150249707293158546377918063269114840961701340288792252011710434796895981447980511939625374561817989618855687145364246336066993476685462337588277760415380996737335015463033217197727980261800920477784787091329259177260235141553838866893204123608283149967296324216660451732678186164177796804136584652281307161073078627325665568414240252360985014861554123506418332565462566211828626984310759045310500201587006663278343187158080467941824921139427049820808152023823950602013751402813780087694157440410806477150257990318917974602872731318399744578323784889920816891018500165200597593380509905273114697494062477492819328887270338650383536630346217984805310909052397440654493654777368630263670980966344265382279869773348532788103916739409526295611818468419649039045042575888171432793170722265635082842388112499629693881791512106126291885610117440335906308642292708724979231179014873270899672585986634724564167282214509259194125866778407077344990852657197069954110155044854753593704386245445289681127382061593629653618730678210063936386742798015982490400383378740280116037750934422829445415721657652866766509526444532751442459202334895614338006911371335850668661267575077615781695247915756578055228220523327555099677542317641141221550796631140277535460002746348191431938115706619677131170188696175881967083690016033693894943945509099461253440924213705633833164321740663627184919664424376594969787228848700922240245201875339922706051837841842385104818144063078492246522076669282508031166559990107582185963318661137148939383084647456398336162379997807459587036372129989823143926585626534964821284472620218405330371824840069560594239353928391179667391836028921430175418126653261113153269835912227632663863197432100927116316122967120804446399019093375367214427168799633173712591376112170168635597682565784233399394176127863310504431257569362711401386622613923681480549230215946766275874439884087547340890652003377890703707892878401732143176586987392269187790333585454454519408860290184268037245077527230099125885563401666542249456767038127905464212910396923519701272001028827377239343720088473719700107630687351441673492799416459969273853959763850716073350303507750658572006871981413778558065965797860220801960488352998374879814094022303951827603220489913386711139987881943345941052659084259072031548001778189698649802102442523950196977596495951544608360259191505385553047156191097468896789213173736935405937321831014274490006545748518530092162256200715951875720242074265079147831077904503683389454676784448328334954102213276857459902013081338501943085535444488357028868014643036776179893684106951311925406508510463678031959042625925451973233884208134089469857429943073710085278910889376538690219813398167044400800657184044198130306019273778777912429904560275960762227252827266815336997485604145945043246212153639808954334485932563802731920725011312524464186719778895348752292935438151240434704046876331652744951844891796427574109594713158059617500162369277591734679027898093143411308531181310207114232370470744734502986268346626202928622026369115413136365729768369017392320012518057768506725993817912382218032272465291732393734906147534250963767085404653392084698138328505112484718887979575645236817056229168564892752313397691955276172452217116194569300653612731107285971856441375402124055091332326195804740447371953978611747290310960492615365837045300570799542126967276096743009051664482904404424329331249143399429712234488834080939100524006287012666090355180599232835682704458924622272324357938094630940917120908518681362305715524987086124661596426268537721667807778093052448648343252899075314999047867646084180184561977632755978558109964538321905047103330035744191004272574734248476985958514762492689334540558006265792151877998409559816193435202455640129166934814741069362159476508618197568848992028968703079041554327579173728320140340981380179243131718270427302029455888882497832236412145192835236820872385400346961850638019526348750134944332568648699220341802853536061129944038839263719331178969194061762455385797320871311167942232156836212078573993812729892517592309025444659837270624179002129961551969639841381557920387252498894336906023470369308663189282980439366685560303356615573166152989432268490611791122612857834788014473406563560016694997539793055345882534153430360904404847073362061506057560393954107364613702425593836977046755186386876269445582740367623727656543080303618983735573416273376571491358004991329065855230283030962082060159500837607843262663700023668829467518169457335527217068859765439775827344787294166361973020744266510508375112669715450353469915334129325402862197667434812625697516552758072473877414925131998069568751119887971986943116744354526784481511899211408161050403256711891934166947046683082105124471438599289692195004262425204157154233303762224004108158510341364415044336977025977920552166083246489048566107704309526415815694232857172063462760273787530136961778222516069053575233029658264602924569208670239035141159614093048611062985998390883205578189245570148912422034530624609417358052019200994992834456529448971169357837667597530783393785564049240732749457209480216739562411609510517187014149657061373935319891132588388664756054015222012671954704080884814536717837633613717232809021502680917152957389867513199218814216917031760459020353226962220075562403547903531066397405022953840430167498559215047065421357921793707867327332241247387632068830192412532383802125118019858631916451171867634879915432934265915186943379452679431766544733722388032993505814986000707731153376906339321873805219766755105097963731585497406030420154831292856670086305177268541295311275034016952658397466317547340937976229428189431800699569003171770721275555840522802793093423494737892764147570347845701147423896278447208667560760230493570069124347031406302448897267692571487072252987328885661753228667156715349081408186569644694350062604844238777948342417443913659914009950766717349133552230476093064602560734139030245471062663167068794651585886074734158629281858768787290459423143135149998408975086706831686939036766900000182515227626453130723795739026888215466966991610675944763663052987832975184274759744354542141340586514028290439444931324717786410985584697671114400835299702775483681388317393494621694465281409312031128407768091742958728339869676320732061319438800159401468342570662450069115445542773950995652441701938159399055926778004307370298041624767457889604205532504728983381592349287744348270002454470585368403149715471795683918404645418978688305308172303562013841712100402005520623636487153126580497477902583298254657610247382700345448071173818154585697476855167459222371664915104723717049349280040166286350581030099852778670040746637756075000983473048193777917899496262092750095093190712859000976325395845718348325354979573283815211467548661893209644888007945986288601552150754774003116386573515457497131328169679861867289989363878001501101143440641465797223131227506100935636554111903943534186684797457674915487223755257335452317588037150368411561751002142304715996093829902981369072609607224372692162625512690866644440751609324663790521822871488790312335097486085221546382552947014465250924185929550229947604953087744113385411551211077291506645927593781709658443926521924317712074678867563889108531465245442538890616823715473931468685101356469137094615257326039977896695815249657466264347908660828721407480879702691730315763737322924746773138308472327198642254610961551658131703247508521950582829099044477246020091661818808414128383189431043283385974980042127297494480106044063870392401659885337761122098032741791428142156276048267739135217543778167725259189303518328163298983832183674721022797555816333312223244573479146529622831041337876340111289048669112031568728478567020007044428943233438630254993034486463861486015426646085503995350889178362364666596735355216046737766006504531322218335629595010081153666725542981687536661552963555456078580945017893375229375347376709282221009322174485430389958560348337552066039072637400190434645275411325553689289591260398827937630574361228164700393218889347954064279114619499867618303583009922799785644990811350206867922063500887425023972517803758891081371815219716856144135033155538725124771991457961035729375717954664635368153001036507074656580537724442845578207153613030869034292970105418187747533758311178310656602966873162017314564487038560035421836793814667602824268556677803949337624985898994512107500351269496754235154944156596310066758983408446732790212305748359892891414482650818810235641505782611603993083794656648289021853775902000748674426833787897438568116943586706127151426950045266324496582986610130104014766240287333111363837160938118840572494779075699935680675105180912624609085150360068990852375883464066424967102538150738739108554286317376113586173444285587535173336764788527627776544641817000832969997475836672857090421544693264815039388478319827474148109760493547479350275555391733632402243303995371034511324319490848789664580760848523990560811655163427409551432925033715117169202723280122806431680781156466497218988418305415637523535995411277818153920870674427500268037656286309366891038962954807424072852744969766798335568335636155087396326884528452943227224239178531603854728632176295323098956639222228915037884174108759362761825000639122167548509533059128301221700290314310390185251333604771798126627171678380899977929174375431980727093285245511438005557537835928645619084524872941796126939729609336806997036341969881936671738427684758231213138827623361482521872694899494924872043793765296278345818802371665946372955418801749335410864638685543687603371928377298325016832108971362221297643861715353204416099604176572306885235278232765521002684310360689769040275268382924660607807019791315390198102133040365182382752573256022718942586281124217431501559863176133086325075123897153478126431128271754840630180491321330616192115106446784249710260724425853182802195784856749213486483261465540529813113816719813322325358517135129344104485978846542585686400009611708010674686955877468964872985289325830213792649668964293340002060526541457501462462280859318932780599248678254669313314532694155074362424154992088682820825132652885013504685270977211706444353833777074540112476050149524462715103953047341945041183440243515874259412732926881378519834075082485855954282182479157604065196102012878248370796318057991888193380657454126784270434674590698970224757291830753575330148516520186416268061307870138556278801759904420518440699950754307191960778258343947801303246774449485654804343192636083036335699689309133210662052641590663462008198746612637191765992995857174064576848153631850797925477463894126995405565667679389437172110014078789673299179659285982162835415257822464056626331037049511593641320400227651606341889529834343487578529738610200006113316810056810198116795165979863986783838257108105733630121070838110588555132512337897856493050346213260104706980422956440364062176194000109231834683944561468186111997163511777477722834217182922842797351495557596146559967578111298389848239854813543222518512712119675855727485097041996022574283861137484401247097962043679003125619405828482329662275737998624996980765226160733641479678095430767296653061392705053854287391335871454578412582629880444033830187214960854602823451273502833868472696423102194630364544459415222612958355675598499759133900879067232489711402338726552472567016834649034258044256355816954173502343783311668676408104789110858888186674514333985768250633660220486944299624020311001702600882858696916101491560759541899597879053848427366237306870799247178837056710473023958712818476637754769933109571251396187209338813476737381502643688682187517063411967616120949771977291091592125871828942217965970104707851318982837437040357511053182462191425462247650235487668193249112262220891509968625149939651065696548893499525842446383033686085889406909775846767522796040199467643325327051881907701420020142105122815115712409247941985106685003930779394854451784979145266013344046179076279072399868338536898082687940648710146557997833051926811598539577584452618363428899619501543939722647495116438530104097710033378058363074498986526800477267091819620945903882963321659898736637984796267449684728431955140172724670610320435624106876331672751486019352584405919297837563697646150061665195391127731306787727094596824635938635220252259745129480863986078748754265898617357250060141986852177164671817695856915888616020428361848081610766933590246143867928707162427787455544230290656048378839376173245212743714265254544901290521175962282691401744896155879272614991080160528483575843384255052473809847750333609468981062829452292557879440137907054061090565038187292180265691833496878994246794194395230359896363116914444890107138192426294930956478476399374515100385113725849989908141780823595485600918541887043548466237301981739460125513413561826925975906430363103722906801371658696514932782569840000207076344618782599749993296914209248762778672360260367808553774749487677513745280762598504143328266958430684853290822746075133066151172517811501739416353788827908717654387821460980029857049178286415143673787411960577330115952245895841991314238089930735434208903876823184852175367888142361745282934445198592968230721570432055653440908309641570916338010199537597618623138000239408968394962405999139100461600319388859871871669385963651096802554847557759099141681927859013002718178734497290748613003037898068857519782285596608104642472185541973599354551278904498872940514980031842991996554824271951059527246569356225067415404148254043439166119495787698246264154857129903989507853557226048314033832942770583277467600764597886240331414474624893961246383508941663904415648436594336994559559495478742089706971451010380742412681833309031522849051255769744802779983042706521109467703857124717992774886745150894637099404187403265343254402193291830469333132145126312769301019364470709844398176620408063002888704558422008852943691294465019837959551984286294128499360321402252354034257584964300770150390999109917126823710747069020465971898975368671256361270291077904479246622348761327252619523165127148825191573177744988152232100902101136019350558650994049884752084697349928654548563418682595690388706930419812791601277464900259636537202288450175410254720490685322798592712312997484638564275239998272902834047648595126776252720519917227297608630916621690168665720372073333115657412594182595571711781419445249345323304693322710487886132474153409076597577577980974035001897110628787095528253324400241891259961665257945837717444733530865140699096693457585561073393555882442265683040906832497452309861348402688611839696822626452622568037820340719692263559479971463769630473306023473701687822684613179218962621557793437354615921411082483201005846410761078894624958475908823696275785488997383386669201334621626306414486326014793660173414847638308085895502647167213755079471996773948836465155087674283223619789553275781751283520828200320379393042622427336777271387774210086443128228763322131866685942012825306123166298846872067239411275475741460472520738861042256805843962032966171992129917475233102080587116137962995555724292267636187701966421536582881894181705436066007656448765892773022547807487203503283627492189296290481196599685238303094318732725334015600785537535040639988071271237120958396618033989543369024591658585983706103107619915037424897298149182745295249359034653906576418780495111326453091920389134343703011673134135358980930034167673589727467161536915776835011044114640425229643806209157985642523130406019401967149253165757480316312404510247149868787724435497428831136612728777754743100486347545442616561662219461219593223309274117737414887960607311689457778176900900554996822563542319548839847838827555190828282674400595300214264274375690598646883005046697930927062747013985411381600750617711995951700422876003451790549318171776844713356818758125240162581302290027201536753089170596376181594685426473568864876699888554778985568903988459138262774725985430477305493793178075315123647046806247727472015466823957659658199676067814141196985617253544715740376002817964075771312131784752017825827980601883002178568689271976465571925145001546156103344412960785840985845318363088046789059001237455124581268054504774446212738741537498555909210949357067007981654922408981455123737428485481462964861730951333917936390991997243767444333258670704733842589634551567027862945906418318145771184355404175534821612849673001019257931346484504679147898682256486809441129452699499491815095252969931376476127747058665223528762529878227971150631716265652219691596987427371431226188976084017942156134890658025604739848153503135083372914681498337528096092919706113599144741982447948016617728331458965224638484187533526756546096179069648108683522592651853960848368236274638392543066293804180515697055735481226722923800072329591612859199426879882744188983785699000606041799318102809776249818205535165266781131159524479048735999057956627239344706476570243474805095309930178319960598175033421718693991269310075520690155284714506418521159717699390720281247254147838578741393543797417556726446488405563883057863712543637706668857535792204434966535123186554268096935181067408286971210880981400116856764813178424359368742648699767781107290994668323449522403206871317517373899503618554488160619218154950930927416711301379437112587420204756523304562549859975771598421601790312263675500345825516763023136237863106511291453977986437086095353873127071980782686899845268972875362969506925211273591998583461591649311967460716777340874143104307044795250219851854709003351527317818891301845961505415452508389078484304126698953152901410824588204494865467240881358379764012444925475668421598977506579224823113188522250991278612440633910033394888438234060348750354409956049788067960370693615919255152289795560703255268308629462589282146035625663179855503084960134842606867539841064562336945108175129406223682383232668126081494138900319486274779751188372859902187040276729564909706703617046044408291193697470743138224568278622542836509251057078747010387730492915193188905422907804412066599380541998514119662907092632146619487535943038663036982687634216033870884512742560907512245182305240973333674080734926525745304255766725078364962942536803512430006815189313223963309716074728406218094722964387740101998902601001497706972585677134128132622791229946620333254181306414324277147456066755616576329109761648353082659446815799213083787544582699643602371296774670189027124006422214092053269929392203774377623087710927221778646509767928998534140152671488596563522717710359955427908938709137800785051029919418723266822143031657820269680727581310011079421324741952334748258769441025807007083538035976515142900722865506318319753739572601539965499333478445858219009798204259419059139406209549473392817010242288443030802983986053270939357154023072723888061340554148466026413780120855163103296742248423471790383287484261963481165416264439299251296223990188042561466032390412400582734841005067483666198171666523268375893617471276453261566274968618057751211637791998158248918300885536579918244361686360589362344611942540562322139955582713202096446686716739774259697754763333737363522319346150143992006466849044787736832447311933559314216912158564901378320487217955957408086076949154410412365759745664663590349539140060335100898295323092420412154315011706382518939915907236438967356400871226832920559155125481259784980993167425912359088321322942442621216177977440253859703775966207845377214807347351295643924286777080425970563076878464760187925160842989551189231122798048476056028698830542279888251433679837974557524224775304206098492992132948147400349508131166606999628718847126610134382500698630777366378369408034471192885801504082760715729277775215371916590922624154930637188924498919805326177676770505726895840086237958788976451643637532167771340218992446435257433202997611518352217047412918844041608866218433852579035245456911826204771545191890891055443334856663884008407245004660454084046133504663877800461944434520977061778258335188143436551054952099975878971172623105059049084659700717276598034928075005513701677253031300884406111440429390515585973027130343113384166377229897414796072636784781862880256483557423404917423108739137796489393234857127316405924022688530300872528941463331110027611342496064603412804591725118050204382534618681715220413163752258702297670672199369805029593977348018238724064441234282652342009544291105572758383986350754725792832277645000321469379008987685771031173608549567310332431400105606971118980296338943038147609052889038257439280165627644406317652022475560985703717833468733891625776338749512283279701987476639275654075867768646616519940473227144137698327641787181717197400523067072478497646864886961630710841068124765439052865266561817738598488706968977886754906349053573566333364065041303025235004495242678059623316620544078881456818595868934648107923183399432968819949518426653173719563438479446066717976702298914038088093377945889756467503200847416144889249877707487521145814169512788935260086135837221558647602354299490909299617191260156984502985934771780461442146995192356185777050060870044170247393145808593063705061222551710478093937696346244680264455124697558991870559242337232649922229062196624816241617145690341438241516858275603079149354052032245839037142212839074998638720904170926567488171369353564809370963032065348987617212838499559254833822212681758455489159391466562482490601076052610006343781169590677492838774115476525493506897361381336199439826506235840437962778640740926485140668993051022045539058086241771505233204157542636598280949403921008027814426582683439925705715833073417355581108212336521516705994417029841792517454537044097982057863242960113208984186890011794153430205718346790197355573024853614565269744543733516787779439652134041886206401854420682673640578587149141086352277448358428492325085081659449221048322099074169838989050104708231291893446805986991894791412825158919472422095433344400738793923310586423997508235488973592470384987152231244295423889186523838579994547112718436813948397460430968329030092265482306825619505122572773499457709259036379533292895798397317635999376877877577695319635311239220828016842938625612554104283574874477235417437293004897223756701287588569883794925749534910056401481340270521808713180463818213307828890437847948297133856322125099602033029342758278895431074395810762744720647280593701439692870304021529161078501474298063831902988389194888650173094427942875976720456780141077570686998315051046905427119747351093513846974083299170377605068116895671294686949288398868557882839531675131272258930196898711184404984382828812737677599234431075324355776621581139885420472109436141284196335905983943084831853457971789658682422694437617116308087734973465336411602858849980921205138335188517424184079684762593084522115824615278437204057052454522902145705777278247886314221516989099739581711017292365649479926607763122043752442385139330667134842493891349087987251833918688067251032168998760563655841883774401252352437767856895108441092718231416919371441143889442644421193057239833754989983694549661542971509083845126572414184536575132096862919401930138956016887436628820469048371868936787672060679574423475043578796001994533947334452228768908810944550306864617605107517552073140318572277013674119614076108181885338007861132367611366217817503199133160080177680847905804972751264387266684721567281678798854086898160317173826374659879819660476971645024447734872978641231671651170255514490825764573362892415731083968354212119744890686699253216418157379538763548604406187072618584221087367379285212088479332216961140712216123899028903590362253602682693858799086390912541431120694949274253524381373353214882707189839493526624442706493006477060971620632998913472936086935213231100327876913092771055261820780175861500853250346623425640196928292127315425633095841917653247403483197419932994612908394227462513893091922739557119789824109490735889953412429344461920416115477837160816868728477930287739892256956563966813137070636555785558739485753264471811511017182492604191973738712960294803686096269082710880272482237687854443917044058686862483551131829426856157203860855080718929155956807954712354691202103252344896700419031204901091249187478150621705219994700718112995413752779881232387610100914872036389937485744918315256327016433463785445406019181423298218466357265559395964926158462245384846211772741854843144419637844151228443677684872021095797080427838712602249113797045622935177514852435444102545122668525112740441359542513938114201175509352380091502682731717662246106927068273365734729418133510617649962983500037560514797436332040148003635594418992396510383724551924595758680154848828316111544370756855635805972839716319721893111967039440058691509797681405964965406771918717312613113524128301138190842987205148516026591313849476418465113715747511178833025806977456726675635426185148678073950502228258211155895969378140071565305679286402888588406096877322257216838391835430158809760395477296950051611742281407782170384898417206902728812194829334654866043948404352952883123252224860000142921518103329561599045900321597944750386569487925541478481571262765967472952819800187801879612196323770706111478719111872115431169977604689322967153237499415774575391080777214739509723443081491126552951176536517756421795213183558328621560433441378899707525742325019777110567599662159170314069776586412177613637185841813838858757745074536448586569230709351019804944094535909351249026515650808438000028785193606358642470707825972296559318936857257588902833974476874430060802758456808114344005750956787511672861867046904791079618292861780788604467017689630309718125725431343617855513686245267861313756572571500621059517521881562019312046028515180043906819976235175647198679810443005053852365061044905002925988137341404628273080894253051611460877214633582453043220326726488860288155434448954293066524174493296238287030177709924441923643532239204384503607351346788514177621286336868359969024172632884815721924847937297796615379617179001614211126571447224344660041068504297454214605097205123925899635446438575409597480348539675623672145694422359138920168050171637911019418171997518166140706738388053170897688724312056829957321161591761477075528837010335558218873336632424753238879876645030936398495109425373431227951578953395232830023083866395407377412073397182636371985403592334048934679173547091495901847869862122373456656842367553100799199884364304793272228828565089034129106977239104059482872117845066215188996790544546786226622675813394510854267485254902281692031716697871636038107932438271616692703748592553826817281102691317812132676691030888240473539147184800528314799381491044600160883311077128182217451944042520418889239864337999059043492212631182791766927705491609286466024938991758206400537078372919234162646533377423229939565834111981897792504018940632931301409919282757187716294455913500349154228097403484176133077674705382510137426933065544505067418083463121311649733982361019465650370225006565326922155765661045390085876617321374563357545358007636239514254866538729964261571930917239564801651065792997630256445609935050356884149659271806454920426944275320436099603670509713488142593256617545526252579610108296110109014168171870353580327676971569584391344367180950319600240549851239879159422460503797788220143677698301886289400207328644639257891044044925121183364779459062663757385733147658162017881991500930195173889083468099438930525535344463964858006137196429847409097841140095453137335304995503212146274035957354713218182789442782631468653284794850723503352208770232913933227811693771535375339065573052689198172751241427177233325304410623419309230101023814188203715343761446767318298005341117792479586901561297209277320078864658116602203585113307705498515626064804955986669699468863200150163382928961079461723617624498555493687730346551054776086594382234242639590604894951406112183071256823014934364158794621888356599674661639698157653821044813380807010483369384768562179081262157012464858601962232218505992152517881998689791291466512559139443128548544066032953050448254975432138936968707775010800791343270244771649030185249837828322002708570136450935461801064936666931193230097420077671365174478116673214718700091937500303033973202580247949164816475474994721522993899342418781178566560591135938915982067379468242685350694349539527802437790789578536964870771345322836815295887789317535194178671855063178406141732510242421503679514453644957333513239421287905981589482761112135657357720189562122264060077620920446107142841179574585970623546781317865034625907245183977539405689615309166486273524867535772526694837744819243919959390412174190341013473088464288577279993408540427309127624464852531470928414800659130989152341209763129686148386335750307186183131842677154874760935357808457295538034846279109225103204665995282944857145501176301407293372272304408137564656378472415397567566897672317084867933020008304404216717288275286454311466410402732918842846545127166077568021968878893458128986307601264593950862456276065973736131558056748660514334070083111188838568536012409097944403449294203529605353240019318010959011257766061123094348870249557745970726088550139313398203348115900643860482320193835408676720618074715060855525174321698411933527136841009038321708576812374968819826171523256569727548156323345204521535538052074220807222866008990971687979085942718338945500224450472515087348419179631027082072072800126886920314429980151584215327631877898610692180000827324482666111868073514906441351130243019999713119368813650464295665955207408148757840213678615312701409144949515901015207145718024936463947613319629600573826132885825062843612208130149230211350973640730483460026411443237104810819185072699071464954015984158085580367390588380961957899623233940022120488022735704013591599499870819163369111854794467388673838858918189887929537560531102620177889872862429924579712393465152675987299105390275311203653126304604962988797266117692316527271444405268411404998582407179280100327433955604844985941361416586467087348127931646202658509329412331564239673510168517849771693641854871480578956937719664919781382150526697597158532101955278478913251181860781037404491321668965959163212800496456176876513676884428632114184650827175578699415018693855267511952900931079509520794057216046012521412345084482974716786631453455043427351709684790054265302885190599643768177034746227376805487353910039338843980785636111055439966646972119206123414796113737478551609649169063303566428933369261927146298328986745160591976200236489621172329237863561749831247112498748978151285695732365601291825111513057747604747263898118283316053008874765763579192794229235831820470072867344867920229473729740222498210993906547042419452790998187359183348233152291593612786567039526108567057415003633058833662669858298643475915376994257300965378671387526667454931080903093422609751948704030364883963163955996840502510850521168385629870251899209516829050314205153789719876948460576110163426977313418200111262576501835480506119287746951394806184435489690222427591152015448132970972414457823270382065327267961076586352244612749007494204068535991570470344040253824587125077428617459381883933218826527030974322105705145356647771794171196197146263935015173134245080583928237043715669182227282761463263162321077414309352807556785739050014523838088479191010583721192632095592785368972239165859170863800168312062816287200053124310888618179636000295387478877683539790300079987055719674856813421982942478369389361034337713774439939513784480840575590121594533627472993527115277407217117337305406185127286347970005039739589072102227038175229220720250031229620060531136939648695447043763330663987771838716831471421411670685045221388958825805300645344762363871652551180581266360873538208089093483504771776919444651681770405854399459133328594001162302641300422094908978388187949335585026066379397945055445779364222110427795775308900807014908181526140163004079291309013249851348669418281246117651197437538604086181617531085959546556595711881379523597250841775747565074867020149589565467086624387863106571535078126800188906749476535637966641284709890157103452894151982630618657266534813132793990462344777531730008508920150149117285780026276947427540695374858606340089741158057840487820363821753131441589192231631889694988056635874963022292421988336516070576757671181407542364631020287691663228099670039359732672412795999683327378404060870938695986173075644192751910739300864443697729471879847385895281980995657712725304185937762057641070164905658275404688114147343853862290425798594298291257592568060661175359840882109384006798232751784880777625817783836412829141962366732427231398732321693819557800326948425157641942083106566595537068168567734233528009432251955724639392801781545863489344125686124267928927493058352300739116626567899783751927588029056207966741068954384921084587281890323182188954565761745901096088038282851188438234427135266536108300387666317169729581339791511576056680439839470493026013748596654490576475091899617751650175042004475443070243923564015051686123715087539467120516717709683854525288533191668930539305105492210781393451322213031016617354251826204036682176350869299560872516341861460966583805010512037683238938855053861518004862670976516283162983178322351441411355855088582852121305704138181731552608864824459424730814779653777296364211148945104217977281444648545552492708556285215104786495395276094815438325856166337108200531863697458318046453975257750313127283690747302848082869358168462268140432870867204387603137639463807440280516586393129550590654485718036285144289518244462444864812918466972147079022128297200126476523982946991448426182895482512933162993081930077182178662220534301752204248403153080859223872516744762622393259102967046346612794862249702060914257147631838428241400367587957986001557954668513731658997886073309012407650943655894905284537164061144953757558632012216487814196504675145886758559144899042425281673368839510891142836793451178301981154947034895760815510368002596817938757757744393824578617998796797104668105096220696736061134060131612969889857231271036131958665078366362319585414758692482063741480528614458850397782480671095396801939073562124103462307269930163882595098059594399518388394155255992616397650463728560661647860030579254342164456381440329231246276162852006417863708017846626008408590472761622027856226067820373929505437030478708430835595339743549038749675779278717215023208198088845566793856279329668521373577483943356869696059033641684849385845251012216614542066202428620171899782311999781404965523463136978803653018990319831887531501751824994253524381595780661752044839023663370300081445555677113381829067055670181243950406061897348260122808328195371325811192283105118611216949352908619198822354198873603624673999763127748361719634117455490784890382255641161537765691088430346684033460483204359884462486091769266508860466765248624472865603804408039960302164855055427020156318097163452887917098185101101666496013690080296811327404855161685637096486322734001796392918327449022819538796019698211993226726786028101141081956194409509682936415735978288244130160132223318987228001496814389487576226669129913772863974616423771780179755303968763125069179517012193663456260494551714091273370987023528858774198919304877078415071987073509442693225966813748127665390334913476603562325945708039252809944697770215798042255331097494391789041847430968923605283384628273456164132876624045968356417227234114329033848326446230161982036589976029462908958610439577640931315530571811552858572236752871196922523260114984942209776790261332157876879930683678093134166739601844303343359116046921839367804092354137696415084566871142386623582546634863382756609456218440813009138961623442550858870561448177011627182654568679364368561353989663859088915793683775791887882457627486336282062056316028611104440833836775516420866009502701543069335204639801879881067982242718673032962865785648429637936691799423748913309077138771287535963002113380658491680866301745713618640820145019668095156022691489975166330518952601624590169791418421333907860978363969653171957585567218764163700875338377203819487949561414902222712257109734730643537145988663477710945926791674247951014250803324585413363018095922319563440348843530809841956720565537496695599900212133898071059296804219440110936821060700284718669099041635527975480898394963523017297396268256040914442068751027015270321305026874441186793704201884408447919995506193434257492769509044249889419457475007057962303892268691523679411853114299054275442970371939513398451705600597965274255215203896986180912442859006243525439584890891912288178288473466125863635135992961633111267561581740522228727594452977099653749883570905981175364132859190780542549665610085460008619941628319447675312348694892800703481819953008490042625704114021647022596331969713825657500305545471063165191691957265012409146671987176552805924184949125358596163021554914170888847177842889773463413668600515529524584608769524035850864000500386027736667122978644977393411093702438291862054152749214570802710152827351768334477358613594002538221481789773494997490945209673015155849517966578628812777456327681743884113524041611915381319725820327577440530865237229723797352952670446469873553025803987916433292977488732934469281829680508071561660773806056129803988717614961476035952811179732982828562708907156380524662300661765013349388959687173555168054548487943605802027553009925085099672008648926175735152444258419675227598864943678280185847878460142191966206221779169172321708683625878053402338796168424374916307228861495461059382452737636254198835580006112777383839456654217099039506373785158515594656746684630643752867200645070681155066001011742049807536317183397041589602371582340419301679838838957662625047281195723564805917778526155137936002882181759226485990388915374610504577692995656256174120283643241264329869770354099501287499007106202304658909345100548381555289261656800051295724309028641854402456337859463239867826585804569157564089754134785276331123608806617169696171325955214718849613148646989320050580083502052315836127619835905399314461201468635466371402511162870959157741581751788130374159565464536621087751836899713402128170455753546595359582182055772832167741289093018404399254473498784594132497297657092288818789035878136391078166848250904233709826382279694207300141884881868195331649120350422932786658386856610682912916151200986036658421241350606336614809195864140981484007846758862053293882009381154826535364873912862824165237082830390648612562541393856182802178002621470810088960411918762390695111201153360977653993275537963803783576065107375434459383392489221542151802528619276941299611124488493559079729554970223918494347855603246408092535994510697769661653825665658229244346461157986008497947230512369208955062262847772882708485092853331927768837595546246234763848018589502344889253970044056963756093895696028933669518862453079291880934952087268705844104705678396727126638219204080400589223316646580439819506791939779018300920485573394024522587686358979184195668965770507798860498013908530173271867187977619246437450503716846048561845797806299816072627737640565802906629689298358837626661759133218999378500175126629062014398998656799433057846692870163144658342433328106312112198077799959310648544500272265828563459151088408072631655500558229842799052709792166201337669847312095131990237383721561632264914906437687739759820217534369126383137101047134529768108651124855927569494709541791963329873382655861122157371789765698486121415662551683275126504989170147177180912581543490707825811354915511557986692503922873646849003553609899241080506973379728662914701801173815700575014648862675243498658447723878896319635462649308379105332646359734297751182719689440800555340739645733109796508388853262013289580471841530082451808310894777870852481171195986801805253218669483089221922008884098083400243251987069579619679295077193684382025311625953852114727749277383897489430044399260661518943943507116823924216146921337379450843452854203472921450863750908022078868655406415560804364449991301430629968349718928054793072849199595650748950173425066860720888641348775366085846122234797080592844569806561680471983116197695105228743848049584184675862995999863249329384039267629996156585448515754649535759290053759282122983701278672026542814070202814458274729774511781484164678909062685324540083638674111006267269242246619588692594621676760074385321927631871804324722979223780525270916551007597607174344221911787887677760568252318199917388564375145600374851694663770641006517814302900998505713775843249723723021946120261892918351437731254395573775919617984559711495454041196906204247949100743595398422911781112377594976774324297228103113412204743193881145715978744368341808074904079271353727560381824218017556538990887592730789338335576803025620301733144692844057934677063494558346792745927644731312231953696277102760361613272483752907848683727471567984642100614624114365781622732994722370052319702252081678719850129075890960124407009986490155424945255325138982253846607560158373301182471132370598331321006995045865226504343552897066894860847284326813292393992750982779524190907870018834029082650537442023054161450406220095385209809136816693563037814353136900641626919617590465839950412303647229442121817094464018332968018173247674563174916632364332141557217236592045307308269594117765208119258139526068147960557669185968175171823396298356303965184182745466341283243001956866022439485515883311302000811924351574503884490472866965858563007171062893037796369895179697890666630850567663408002406767642092736081160974166211134170345703061491949758816269198319871329495970540874754692218635581792924255193075460343895286280280808425805168900975245172356703750995272949630055212105693398362405548869199947513053909602482767730483098297175798008983196699456835191349973185835117201268143779454941921083592373909717464861149108547899534578850358836502598690003906761158943342657667897325288914171814001667910534984259469135152524181672985155414307673461601321128392210294118430296826663778819012136163394007730347395419977807498083780672480888914230072789338776948136088569921222442078320019188805436012596169943499620046237947186234916887764588087376595959694120499222310981469272858301639266210320825087097272423303324141247265898385720453258434435665145647845690888456679177233942452906962410091934544167650227383175575554413611011866767825730616238130882291265566434971249289828783011388875574690328432268651552562633361228844650547532065337994441548192270048841129939791112432507814173627271446394560577646324078464530115358302250641099714470956323396122496063321616870259552492075656199480650949328911805363427953554870902561302344068644408949385565234835677198357976635876615009807992161779679921332527225215432155812838186643812830729316470100585977133899768660613191799507878366525913077056290565125671220305324840094219485995545586815169213999566911975684144256592352609283217717843884488352828911800017534001087595579285644150086010183986933490039318784491656165370136825769768019589277384904496103635266815380173190309268768389970005651774070447783402229197236507015014699803634281739042240553494335657684731958716451655313306974351315054616338151345999833285126124667644893951938932726702004426919434053412409334546623194379522181835278282227545414004137736871790637602948019608433276221923151697266340693899126165719060738383075313216496138708551350413946910575830734890320024426329020559893782431419468373354219199062987592879206096120350507797089517183150514943907251089035495717636392875715694486536443297097087133643857347133482879362873760311185093155089924863473920086490554059163698967497801613626683497293778167150359958383238315884327084461403087117932003170907411302151807010110441622391780074949839421109993095773844279257394045068879491420766546847749983762903457869042353530124311936504828866556731299456966860271566932359098409531623649418096862798780111899913062214442103326274983786892968254916744525979852770309903106695039688125776185793589961110869314404216441215405148416796999327869479704978812585351333099627675811934925578427112065821116255380472517966973247405040873570940710762997542955193462095891322212989920079547228487925624561942255802287695424490896894243931170450810494910755176815165871446015344008328343774214844059083293304480882091112909946887696301370017130118542677312021912169116473506413237807291907147114467786992278163326602440939224181668319859384581952832331681230412968542216414232558552261301983094475141431214338894104702276431416233544642928927401110635458635851555481058468121540613290976607413806999136930690602864792808672648060972628142220767626409347172239121080835161762750209534416251305497418852695881599493376058389452004069183138052730970875360174042366194716700648203978036486277444382266955413938699130036132551697199806820645952659817650703666196378526857093096170279778328295551399903564123263109962963909737846316496941183230812127060319300026630174370128885774701018100885810271008367751254625754000391702938062155180087149033127278556020840032636677316499334850762491353538661960435119383924501271944980277768188624876408952137180382143171574983964438059250289579314022768423455598684338973129501472684967234245459691416800904834239701877997457304733051493887734725595499969067178647352497477953284323178725978321998326164924184473786300973086993179545779071817889529571776380040512681350650509603042945399507936023248373057187968092645322186121908970166009232312572905645894337035536461375215033919895872842309212338420396035344498252805701785407859925322403707571676832281909161024989770750239826351487609544700505447665802430658566454267018650254851114420295763900821335453678913864174203063823182995053688657486644855198723919143580967415448066312974225912862326302670455597219318960906220862370640950574563973588782383722460226642131130820150516832400609546503020465987283029336907173271123551030516691282774722587114808275911061628989572117524761045433102864871681023376027903258617423444501096513315927874307032639948891916497796504191318593079577194055333695465491665262685021464777586452008806511233454728506712827947794595897321440104073649093810015019537602165075704773853603883466863619756306997157122320893094179751382110594060722017378079593208386740437662681303401131469793559554449987754308015175375582791325615282486969936370193432400182138876840896234505979041901280898227158129380586242772305442546747849123986776179289048526569006554116080755742478657682861112152018848963762182648472908309205465494903080997700464218498847785801596576183399293831097341472784083052786638033255308172220071673352403398208072945772078789720334362250452225688774440690533230776040528386655953226296260440899294885726085253283944903980502438655667502576890186665033742673652429649010464013887204678537221321706028247187339820398155322091765100159048380352429144591816475689601758826493729788810752550032813032042698628079718205383767073571713793955343741709818540768055386733786057277642016182268308319588171236555105073793244583893368106294128688959002042926918761128564575641139801260590126357066901833674567725342805543709037693863296352776946171719427368205560798312389234997540704658081761945065516245932823146441178479389139334506351384636883480062405355394144288423681461710641776885238876690502829057885281536056933759391161512930238567575082383519421459849357173503956961205558052794371199734527506465222867062230166152970521207202701304939996303020940370421024169512076401470817618052940602125584811259634811309357688784872208343371232182363794020753106155409482392595603695279351310859484394820837717013650272674257936370269717505076559961987086232923843210195875753256705956078321793727900233311595964678390791753786426942299847986692437665294228567588282354047302145044822219124935985734054967685014437083918756864758314954857083540254203637958449032668672266745065469807531067799346971009236867281649399019806489175460486907796223825557582283184162897490855180062513538694230717129620364857594418712211038356431426983459280983859945638931169835631799679735793488772742935287188209042006467219130730527634517162061642851828426145850879247014338672898175438293585332000284900699810858045609734675316916499161217225077835737430697665158627537956024800784076508260665194902558359483260138307421993521147020701625102928561391573252526609050203847196985934534982663190913540758749451009221953024643351881986767540003106496926887884612202639313332942514969944262492289849667651441491314285162146154529921166023785706453281941076723155571564409964811781199532110717699817590780910599517749756802914284024290696104451333405320955707370992182719925645996093528941229579682193871627105112757551494796016371973940882244259797861640630692888631396017259024829249168951795668338654963882857352967567200837648213620483731656656771236581517737127091117718680497592754946038448134407301906639335129722130630761568593749804017638875216123206940025469799319992734118361351199544824000687064455302077205693456557070346847229098621987731402440435997208647569764693879829085012459466669002569047352855978254654881679864093718892200138828445301073679098908473009354214546708495731158479555760270965348512009255121721213301822453381833773514251765643063617243539736803350826715269942395494589954191981736189669880181952607792846932445264995523135861804272820101414109263269077130589656861354765075682960197418288461512055392895120719666381316520075059981272478743073195383692216988891195108388433227898932942806480383492405609149437945196523485485869254402862971424322906401518847580593614839012501569165510793387312805472121658827592067655766326082922973442746698656791480511392687344097827175005687948376593223220552268260092900194013208491007786310307390692300170588332147492063468961530345338274187765069345830058841845885564037554706192327648205066212533113872154454278942098103419803091781740223957808540953396932891236731792070398285212353869212886584897662666119167784169636645821040232888865680418348715822397529856033083287175977097967572786073862143183602186360865741854398427955133130280607030260272829850485115329612656198959834546427683319070729047253282678474012603192350353571138189843661705061534651299215601565396671686327348731604082926400041139869718436745844464710743199728852026661826509327271582983970386224911574317848889124006760365601913997909281226397391373246248226981339629902058560176234288950890913516924855873401472232135300079235780622757185888386634971979939067440948136265183803989656711385034492855507508487521397546596774053345485081370357835216418213280277947357204204570377388373802675724063078185232587562181056211312063500701708523889744381263222316846495107130667457770202640877593515364726268460965226860460535467049843681196517247143252878200239257707918273349488481190172351618310582851465352327527071404576512208720854392864952383783414160063730851697530956793239418205171268232754622753540541636148085618394453511786915369908587654136732639031405771187389015284073248232987367765247578285470669777216230303946416855280446759002560300676705493296006772055124905729106888535409729539720888987482274289477021746652927560935502332724789185486059401756988265242290587444650935706570834362871911221955473615676039313238309077045378185930312528775943306784384719475895029392406579133700424442796315848989753361399942127391227782358015605636289998360070909090803947298849110917663514470403483185688953057684667150127096025196040718435399326196769911138606930931360441502565153222405399207401157405779708266904192119327444402584998795989038719813901731350433482841803915112115955965265929273776762400665583037047632998229490654787557580230771297430442736481978504251717686196320404980594230424646510896343957096764832424053427181799059219285271070773435476430172155113253495084115800807008304952941969192732901771054415434666687586787472087925266535732757929366700003090943412428829300157628741453746228177935492330946058707244330220288028197901352051465608180048729588540917134629826507103071915329540812384298248315418726631065439047668719091933269190614509373635083802569249120339818804935609196637731071524644431060203930126978410650277192347476525546231638962802028830112569645196799458138404130847930882775912610497655208371968132701522215887490281684016936324787837298156386732428966090808233173379356926346824870454625984601858605105428299980121369813780882874999356113702654834524979573949306986244414718322909026460096496297194418079969921174384060466449749514077354374515435254224476402407497605740023075446394324261416004911463575129634713075063300471325630786126799230180053682419933997908898959878888917809180202255161691626166119946415200516152341091754594650256550538396774303262456029201791282666196851996703650962024184413720067071897001389264471304003152043596850272820382446644036380479172102279655914966718539973684834448127070415395096565069671297835277978083997861724141577211164369309664113095452732462194974087082147297839737090163290581537679999941615550374982607372673505136307260793574636780260220368182421016995764016433099252823727087582716620740892449555541596387873460628494177148239577101626355506030605069955749873833542340844874934694575554531500602380089662958537946559569446734212413004271826298939554363247688072993698426302520110238850105770164396470912720450290734312583984667851086095146347849557790277057491983239395563065203209574454352805598969382329550168828208365391205591251274240825998064495435440316319167671661742675091371612637089220857643758231718276084154932461689996561803656359827676707196579832873652509557550867461541535441316995359405167911692080707483238233913705854608411022735330879580222475580234687101978223254397398435405439360364622908386953635623781735723757247609986270844073288370839807119123962746493551444051211307971175700563927537815324014678426372916419013915475899098510296624780658894032293256012982134357616729245268701909029964397431821768959889239786152250343806354172761544163656619809418556637011160372680920335844864204837468031949847476687068851850739733869323329927987489985411470253209835615016379167684032980416429810558421792851480945347790339029601397633821884211045163300898113279721234436493006796964142392424854280743964783003658182691210906273572032324778648620516014568215499064100801326357140932899214903700360060473118799087024971886524685774979485587092476287256510401204855637951304904806316780311829435697294079048979880361386490153173945951298451692208450036888332213788351438435785890356825493389578914716912525695786262436116435893909337568315110332029827040815180643004249737136569765060751432180337052204730372020651444419332502603502368435453533595932904985939541835746960962024474700891061556909012510348442538039164661261419972148062242884964098820605102747271283746169342083781685851455235707169640544307229700157801406432056714305665027079193374358328344047122303400262698729700267416435740318197799597977751541519932801281467511073486259211260748241614716343592594208478970193211895051540846671664382881016340886396868221314404858013211081506156956958011311875355124206943585770066129436614465655848320985487879879979434276177602632191465354668567720526680247333890603524150588671053090697451772208775882602192091590841559546283460541111640262101500087687036897751475125059159420707844534348917574333802874713953487134412693152337275877745047964358026779151546900679494688968671757087730134141938563555215783857705242233349015540820964965349054963789280784015163326819158473737628223716021905189285088404254723347484017862681544822177508972821483097579998645039371604183330333105525187538413937403525997761585230392377852053471194418134641557845872654305636517000288272724886973112112849029163421975042305208025232356864800451077591791754916858163325925032755876005852473574583622204354310994270660407641888035385970789489772655802818882731877273713752986677241165035668887217189266587280402851752334228714989454324432737728801465792468415013229395226687858822556526025843561657770572845713057894016664382580363881833300420134121138215442319919283383071930275838206502417509927779645072691259142972491319692659771272059633409869869814341619511464116050976772609595056433012837538670687378940699044913562072463920029015774059693545726892689831478504649355573208061041553466652007802838818514337626789828426813269048681852007686522022687708752364516030684905143326895293248496156662628583078574155053987647832804209117853786847247668090145839601245966177724574222047868639754466636229227650044627135066956831874812306627086491073289243702237190837408849192390342792189840699563873418685665492356412060100821543741734178011465667374907404319046817305691002612767383355665395425496330654562107066917858739651761957390167343493906470536655344713575320852417008168130721051399340954003967773488388721324051255631291661828814430280244272755091289008473287218189849818380299878164557381481651837198970402135047950123608050392220449213315125940846626552995233597650373765986195621390263693270404460059075055550887149471299449479053355839348877712437664996745838454866992628115576311720933222713721825444870060981372204498950349746555923666563953781517908245636460000835611362386127873221999423171703540118562561310832901532033167283409920775969012333135774651672489466157106318924902094503753311945892949846503519712462569019165246830370007439618341436426112396040632573290005906941436651390949135525066103636648124499059498268893686982433035816314778706498624218067198433337067271836155000449571625231614287554463295275937937903200988581195380727500917775208911489463110249938369149669475238854856416847066630874521701833781425503428520297575106011344307005941958898414394640081713474548580724304288227359541464485901975888484643375444188716549268497726235693786801359993916776164253344216921418463437686760622952340951224033412007031239201716530168238505862498696660927769440898972652613651986855825488315055944920562275647373420825252859004556082432842892147683478266185064588311599190662755283989447797736669953032645599539280052292930324132584848314092968346407847261732994803346435772177583628095161735529285274445510852172411221954642803227539443665959091510390170287463124575166403506919150102392083363157958829350456835567637518665155613682922844199453561936630276730029410909921979483720847050243759809447220231500641826763951905685216954469610915832220094279099521544472336467990541477773661072396308442925574093580038232630998470190776591286111895761429839990463546809438395947947351574164200776472313129258588014395517263190064107739710801432299002443558109940887948904106691453860600666897287338759584328999737957378757970618078145057251164188747920097915661127131686768244072258605782368316258404338923642647062969074248857851147173348815477535763415369646721346804338753775362841754532955510501030514756853864447997041025188459344012712439217136186931009025933404174530894650641973143631169072451686915560227478991375863052300418974199796577199869733414062661780178919152739128088394836988359988018149830468588786963855585801095155453883626094034813420237484590277027177851316224898212392065844786777196970867163773072434635078438500685176064592761882847297295286230144480403692650245084532342310118577061202658688713255702894935742568108580820066450046672239704111683913461021497384414567898872951962254978636467811348130706468056275318972948481065991684739039935039869631775115544205954499640134628502938107820855557279559892208278813344238784341115854957754961064841696189857430115030772931737787584769641314474355310261111009275429261183698771331766103870583505754428270174309854777489129791467711474625549975051159838171710088272457608291289634190355170246901837962672506869774514669947038692108699895544732869280447175182133950220725866754947389851453881516109246073397429880745148667043175893875047245587735682500634947111704516110432436242904871560653113999407494226277712970216113897593614243699051676896507754800645672388554694370772274198093404527786594335483036411672099541775523680506548532463439970185859461338381409982664459720909677297242874987886196559812891568289575648026018062653472999452131857104141091652204392494551820768417312622685049319165858905686025437966109124899402805947587862037312602752554890918841638958529096237455059467393789883040080862254009755158949349881085806901187758996121899972954366308718787486073186169435010789390916981686473622908747287957695387573549790504622860879771159432920626062013801180519790784342555561202345825932213589867656884471261427281833139826040082430210290722326957486790399724464556794659813899267366906041856378686053547073704109328578220172043518905121157797857048325949908250395258356744097286872539409006598003681317138007259347740093679278523576610544221184235599083352249520713156794996899483152019506979025244090230880128387607863773504863922687159234626167241033550034540042239961968480812204743453558325429403330750286644113341644322654327344757805792430397396791242204948148967786136166164680877368550224543304227383572354351857040929895706928991559971232208910678822572947382249358415061419921787724925995153930781993547883440050737359264513761507215475593629156699389807741283733752231935158745206766636649430633308523418586872393540439085632376559170731286598605259386312426377906243196813892471270543873168309392432285764253660238892119759117390045396645327317370342774464303843873123159844869743336150479933199317160844271371987807368075540204902676904383076591587633083764763734772180228124389050600717075288788181776637203205754511032627904761798840713533781390173116793024463901960768716372368782410301034870020614442213568365370478890659997078993249279696272732796486922187599471962422338104317761937834376888654143375329524687983101036283256465771458016958656135720064358510784659134376208867619649029937264372777461408869952063719828773636852037987332503785583501126945493480909945262603183873190038454570352803400518097993161710185819024744000193601503087891859257504107183095151547228898183615663744246813570850575003555037201857116251681248114709673866678619137164292590864730370121838387186053436366039514695347420551119239574381942792460910039409340847457299939378920365274848580021958115238949975451422179691460852946563655093091651649045999599679363588320780336951255359630649827759785294297236906401679915597227274063447945695380430882776407125805870960380171346881788532753517485426047576942441586125168739575006377623082849272992721656019913407462719909492941960654148691077922468194137864176798802767812467048450947359122097987064090355698649646518739570757869427067076906254601049141605510947683627196194066801276360696888541536591002308388636067620453511315811095484382446923760176035236020463397099904136790717441252219820624779903401130517664551394160052515422028679324781057764887277057336796509998325345382154099794247728540198994100979210384258101847760895292503202561981734368978550875708050179831616699095680460823624621269536353736435648235281754212539680432568172740403160688692013072322020434671934685029519808711519681694958090509476877766472043566192018390221585946231292567981879927745106132098277051021053043689764489276036121453963137125176318478908816458402310619858471600181537673560070967286712516749341746764454959212178419191963706847726854012488092829390810657580641472212242261798001302447934540815086902735352157730844557596066434041041768172137319568638105401209784545863159195066349921166070983259544337372646973466866440956438496778361138687882825294912947653433648907390163873336025920173324710530626168726182940307063182833872938221871269430874377298518772037433305943439998439697739911588913800982440416741788509071920036745217597227555641844090380049786789755033017713356903021853591118171469654591409273770409038513741000274340253127579652562421578225440878269177170494872106130703778955396727663942857118116106145029044536346090283884981373154108967688395864368505673016824733134855076381954264922471531396969401779185683029525981062401596354671094649881048023469618884668850556184248941515310722143462901279998481027803734602546434836533563839523519664623195808323114366044317441882990601227472704333988399444694517643798333628133052933622523371980577942194492283326531149039956684461353660285840368501609771148129145589372458096643065219636560994401687825934403216343429203645048347691227535637410957896883230116211288419745603948176772963006987175939011138300585228604927977615683677795460023868778011956971470739651795250588700551612595613291989478931777999014326472319808694583176355213912839870364095182161224170425925832722314234024408564754348931156639155068883655212964820957879331786910457098613816161640429654789970034995640733269701635113053845106954937106994785578629129987364529225236263425380268916890380752586057386455033944544443586328827340921559065498986314472347118900005454662669399053044403273072193999137117303245666654230053514127406047971705234267503491782944968062776695074296316352178823723203298282776484571997907591231382708356675415489090725701975186371261864852575315687515901300958121097278921789185696052391622825352663909009073021270209661036433435361541350162680423501222012042135970305270598770386731915144401468485741074627984097454952238265488165672733220968302581973516844824521499658591953571029329882615634920266522998380237160728953029557540206605965164412960748760251560397711062351970855408273311137144451896538935213563350167150344395916617178366801907591709310792522536938147421579732386973550452401566866717149353181029746003433169885355637976515105772355419161584202314725426360732046292221907176201640715718548121154574487327707664572976359358852720591527788413736467431052330420773802824925462294646089778659337337382567200558517676190896643312675422703689122608504656032298295496650029071370655904400640750994349759848367088549748491393096019058309187270613764635401956759167495110530714232087056081627218439595816015563525395157667584825737487663166249067910342642553124348298651813936626078524040707362083358872824333542699980799478762739191863866671652876937948799852121837714839891364496665844026913335715846378216702574516215823967608167175543759500363707933891511706588338374892290140643954334664949399424898689250439699161431931018282398678058594479014926138041059473704755480955519828722583244013157895842687460473404811262804794050341563964192791476819531170914490939589173902020925623163046157428762160055939796321427536761840828004316558385943550504032617750098701449525791267966188853301798756700725296659983172927391550320345448120786651303894763780975499911307298449921943342471604999201263344676342504047100734170653373729226958500161361470910253096991260951825749498607775819252586265238753794741016924619926076931252195214035662307976571263195764118743326626981555847890429043669479455196431432055114956081573848146272374583793407260817818958202589388307842866180656134116065958240286518511105047372193295818759725348341999562010163723776150396053347647199739004263508614980378822739291779032081001408489765577418157690823200697645504366817048420643733004753921741123710391890521623313363052964434431911311027325132499184224517516149450900726599301503564983556258802352396535829356231733549681391767855991470278393707308782568793936217055456618312257989899535197478067362064356436442825320829015540575837476141557283712459501468704250055619306413827440030861532843643215588458278263027458983260123995246881981206574268834461201455877791590092630966952375730643525097305505827389625264579415271402386291176420968155206037479586518589378301106058539946073839517630872776072554642684030186185491421458973576241380846450557274807442042145301653826422953993171569082137047544751435676349885106730534724209461448557167018955668824310067122362575139721765341790378594589521540262092135464618674085930317693455528809663480123495098879027235463499887484088823905892051654822496681687329816422225369835670667198877491388830823085519419038114973118936713914933326072034909073822445346026632810335187003335824774157796877990796819503104012714883510708994691398625069564808074851834721136448005980466754801015703990629284676080789753230204653945248013493291315486167732218469986665729857721912274982229557477553965611286600575366718615926104406546788588004915390663222434638436150607034382031965965527744559651516856196446180643847764034034910094182739669677399180490661173824824083674732656090612951288593572228816893686974230968480978317495954337970510204043287000303194293066416371035536763344307456548144056495565424566015265133830016812827225212880308292534485434758357739908781847383212520025407763935108935470023821838284661130372606089268507812672268888940371306221327217466156134892788407984625245636524021502350312641839404577751930518695634033903280012066858401802635893110492967968024210386717395205141559984330757792359554412396011089696252425533760052371171047271074455617842706811471171073784315024049502874016788209606597592757366736323086540619208297801316817203114200859174152479055257146077466241957413493982749330110926741879763801297849241270071879131820683434436688906447276351790788259530298420765420638073739900092115474030172822371117342619472598035909495453112042372300222845406133495767436579064780800871866831417770365727596909649976000022480361524863099606868540631383789882263739886473741151200178052183785864439690806461194872195219426943483288250039568538129368087229285785572890232341630192349764376577371744406916805841146991980440850459568252903416823074062430063090628303464065815205112881530794794837564209977098979033813842420568756054487726123140272856876298538497592667147941031391604747021395639928577034219564615909175277812530100665523162922018154970212581560970464693593005006400732846417740980764972765950726861406060994522874569470213988752130340197930942370699709272813026176271880509172290730482025970335283757376487592738264847937028627033832785370507502902743235819573310225126750003748868177695025305663714644483018433239858685903099529627835851179341447762062824408982391450587427909025544208257723103948910557076484372367738399378951832938792857613740159235810027382671212591073108084223015112189482265365536347533159779567521495180085968357018165808063309851231509246500350336534027179972532437166976216667922929312804275386401447595613506944163879546701999155655444939418183777849941494834803959891219790410449645564478595463926842964201091306565726937981798489017826047054434808236204871827340060936913948740025502605399594814851346655654512852833689529653005311586095840928100354624872505383353358330728952116130499321583815511554839404883400809132061914123255050775492146082208309785859827027875160439156523018622045611254287800067070352187160502248686708860526952023126249402053521077808223673377296249938072149203720623788065212197576678129992551432366146342397161378760336859779917980376028380369073651276320089874180351962939576433634458328408172716904973642342983169469510069895857788021738204627730718766149497331275504764525245534991358263238940456809001337190331240707923641309383236008402335553573390780486517540175717571710093313522489675737914058966246822262381773819610040370778147257204580991703123283638360614818517255191675350282421008931265956324172142013226396014392675184608920565714348062880904462249546506514446901874504497777897321330302982393985041495997626386728482882539104196608935243251963357554957613426034580213140440295561787250944617193080166945141803763376516000911944526060363693335884515516363668214246380459365449431446084382767132954766725612089479658607413734886667097821804002156186389992235360535494078232376335082932240568764666884756681539543253313113944350596343732713881949016701830367430754909932475247589008613575882907355062063939407469287012242891828002797107447171960255948740740545119398718889592283405282588771915389260198463496862549771644111234392785511572089152621163486993212858402912886537204888155192099767258324542825800462308640686182894921934340498296881693676813706279091995841298726084117841040153601399966756760324488860658453609911247036269266366370632000119715921303468906557112701139840008142431330189243571303491617582505905640648925261457601615539681432043149752026515788887121915946723562575244739555749941876851713519959620599628193082233804639904014490516189095056529243898775752322428327991910392294492047461216593026676180238467415946478482534813517032396865359119167998836272316241745748555205480020384937331279045530868782670844509518031303382336569247974143649479509886300582245262452011926000764780568925988630598412458768346354487233397364472415030066470408217566231928882382719857404552225520535248146021706344467253082913946145335812270487143412718751821993901791138399387001006371919246668137537518446573725698768109102148901105567105098448113350004482353547843868063511265950590103446461399200683940272293775999103614138447014908053222256712042295163808312563681921532472197153094466134533013668020413749452873686381303472775654979413665692713655585300133096383570854526982374388498935242798317947645749274795866706859240783774493354317214638820449857608692005604426448116374803864218155943398337616902300446097468063698939821728158850508689285943789118417134309821603637934875766169181321656741013830503599658260502277579372865279087851250995076084790706330805067651739462242827220719066658527532055551053647485292867299698513882918647861093803012312328470668854968184034923024898925646615813405016190619595080612545765408812448068017150447494286507192496520804260053448823178554889973182345483699640541049347799842566936214835879764491972104543699107474681059765295923917234557253701544397512018565547750397047450610378910805234269794853857381326651338005962150815148785869083364545474786662405999561124931965121919463333712526756545324618827489835837932752544329076652941052264627342047049024917076566841445232389587801826368400411123605326151773427642388283855614007132267385150594683814138048738414133516266501953725917019802638884283226981198222134148125576202103265646454370149892559798498341875371199457572601488998560211839731698459727686005028897243495323446013031080879356823245916367222688203254670353759247226116393257409356275369219396439583897318276226994294066112254265820248161503584067887043654764674004980946132866644285944242345639876799633452225286746949751525159128949585506115269403529761151667848608618622521808505683566257291604313700758591518184650612057045687742277372543668693305309487802628886700698608869389132195129197628481110759519697117948550092384285632716093106742163718177337847333050093034841560104930329509817286405647383590740808676475680425852394774004617596226653500076033057734060401830535494042527819414221777471106276221998213282876726611998764269572404828962911527697147925609429268778891110230630718965539917562256818560337197765872344704191885839529493696074400014827693394790444254354712842946400812559968739648699062394479880392370082210287509907920152194785005102314488099205742856645371461459917999267799980327561444749642215854744404242381679376966582172897616297289452026395367894735394669423808164249195129034475300198605236836540414003643249992002703136716395985501913518005299204361344766930969265534791932921810162753463845605257503423116280793928363476299127622903138715470365039559014495195104114751114206212850091987092327741136717461465400636846431428670195864917618835618319210981402289461347188639880004203510095993498218594710571806704796851193353739602743608733730882331784204365163558813804835028543356395479309170425855381181054683088058702035191591180200131206175600029538999175509672451676375745730030973792159533164771828805962574844090832861299567794649728492106556535909967219477552142373016011435959014496449161638918459252962636651744432795165625594554519864954831727554743280987480547003513253785240535738145446267625646353493231154152036857984834767799871877987166928288244322065171539494774402256363516956135536221912997431869061420631725189527364007903731382840516508672180169456854800523386129325999693318616756528481534525210780629152682716328985540797135755783129792706720890411945866822770597373192282153447274665850559120207145721028857386667539905094695720523593811695217503851099025757040768025302482522502154471028341878261575784566086958584181758147844642710514374890693627550697430698905252128475858632014309317215066391407680994561012162620551834388289654953876716092649757533067693774597148772947510566489042374182197461473636743536062770127644180132814141115074042841534481420721756381522073083602734811400947457489402351328010354036971666015833141522777396682370667816989888411448205085373289393084278630387150682295878770739305547077929754351941233724031240806390123678129601976469364863808538787489292200705336858983045773993430955262259883829503420242739632827373349240478588091265473319593267828502865139573365166471857547435017018236934262655776504524167737146244057395676273092824817585967573259056217792397813854414325011779015569620565454006239922893835921278655876225042764232312757089136060530991116532581309526152171767729012806337597849222404638743401007889709507118187571365599002455875880223638029079596582875987948023759938950101082286094417193352570314495466959213311095582726402169120966117712849254313477126828977749413221391282524384681223104025168787373828952496617465961369246457371546399817196066422567222001638072243305161450305959612850406316819369287265953146449309501172838436641628567719521981703124452589910644435311119610648027623344263141419389724676622776769339574056560297547684527212895747836690887762708481994383867305627037723807097702713786762536265980274987518664826972472567254348957058011441594551718017136602447291283537244171058988208856041187841709127774283361459065048265959027286566824609296717956390639383329330615553429159233748223757987957355693936868186127645100960897077818891684830797473136092191012141270002339119265141679093625010614158127359282971536512827334904054694968206928884107703097434812231042690804824642362530209200826368277053119539316297948439917995544122333212672268898501897553826260735191332543778740849256440266098134817071783281270494436175601569841429079877500248435267590226020911302544329617652612748591364670909685573852107375489640114377391051490923717313373253470161315454631659372570477672292959801984596984493053560502050908922225083125897112036379833209812740769122830037654819952643877764640881020894672970998893141587392872745165527271273325491460078101228080863454254371836503223642207253552679026427970404959850057272112766329886484476848509847104179739473454366663657564530751443348181881505698318510666579201362724235729604260998697626565854700664003631853344144471183729702317134670938518762764142895722698608888112680180879078898134596681773020733615001984891690420303229671687392234146174612898802962277701812104146062350823109334383039891686891194986166602111662248989520944027427966362192521735989206830373712497783955489251583888503437833855246350635600471897374533588267679799219030110062797970076621099819981991587102766315485041591294462332455108942392533680497417527858716514864902636721729495028668558614217757420416256956489303293902459139889351610716612837440665675170280161635364984637940416357328292558082724495255302037815780006623972751147821302051269866830183772374706108399595951854859852534937423545659206761234561701046873310809865501249218409271538952713070353388462140888991386360490013379674610370784796686236335369392555072109074832613955958414356990222603330673652291295097332305970564311333327627444248999984525480229061118756534539640083406434332326290621793308857065081156006018570108422841419254879890643730994727310850987616925323938904711594865501527821187785166070796920379712557893031766036355631076193809396446575328719188331608402998706212813046589182490063406873400635290871475755575040435546050458277646748225092357627680298341163558172896347337914190157601020932248076992571998326189793878407555479384225733513320794889438031860223428989445952646513522667273971388381851871153610584165519838265299215345753287640204071860026083477773236986419081657817570947860096009726744562779908517879262644413198918487669766493436766306372829564156691726713308750760942969463333687931293861147629787156384820984235100098838992858257055589660284733301372060044490157424808210562881476229478642193124366475961842351313267687465922136648278847699060454731922467523138031046140401997935158753582319572572030996049701225806426379102975272395345391374038282161437776138547131826609280919330687512904072361202874580740881600009453057064236182525360376301269112092166016359132959991882307339662770682364749073359165008825829486593092388209090359058299020249898248254964678072332238727823129129211735077281916080739694505391720911807998163797608159396665528116252409730128871039902424531255728356506949392927304536317823711535878955294399258082640002103910544124928486741093522454384076124037616635239065677024944723064032385732093674713568542671301836265161295838332600977165178355239715323347503531823368101328740830379156908897407000985010000574286234835414478046364462981305073146879188799854705145921753936521474844762642970031844457831129841197863466206594263972992651871804692042719073877173313264093813741700112364109125220006636549947133043468896123706849554531716557448971003431842321177537014668538943165929848204811353789795273377485890111889222843926743112384297387199622155061277900362132041814329951385375781254354979975748538629497725983159371237810558986550029967988525805136549592742981359821093128490998014014515276764468734135646318041901781206770698571902665832993887142690140728376054801218460196391233245052513519296879201826055768346877192838713184157008501731076275494453764218363090645303303121203913831951008802340667773677399778018137148346705333461600768229076978269072437012394052826328275944208809026991102156914010466522324380521646548870467451506450203031595372481710239628874454336642236526833908486467066627993384881461691011813260879392276693699147009491222442354455637539489489093464311831916021097222705643211750886391401495944538607438734175761953159951356372667632988798303785317655697673640885099297678242606566866713473130102042529629941418550858620953114646136768346149040078943445264804100687495066612781658732414404543308121725722213026059897511467124203322766472570239807701204388699770222352456020173669041511311140661810400930706942332302890518255267368071529587801761658309881793089584294696560537747079794792144126551210936830389894176377447730754966671566254122077639970146053756294929013931235844202839878064875074861270355349237935252517666826159077709334053681648478442305014713227487992823208412118767913869997422590493838871583913441279587242339601952329674536816414865326229043684558453909104947585151005058063970578844131649926626380216996279062617883437606521835828598582279419704113266233850107331319980103276730971644205753329323220255867261339572117623086897996494981040502589782457741003261654764917683895817490122178755566177699420691089452436300802106710339416513150442004790821999765702952650925083730268418356263942783123354792019275449553821320733015386890887825176302319276092127385238737059718027689160082003725013626026585844904329740643371391420468138210459156488142850690267298178641235247692670058653651194897267828823644219030561281159779390034897929729526683053572360741959776294657964843753766612048472705388429383622775207292102401385111779929341328179737962671587084959264619101551893855060146049908473378592541209827030994243368571204907065089479287252816632571802196882785884494847106093299145959826888452165860005676571133011246201905546882451549613001234991357752983224420080108197756764175638255678365727377476029551317061102177039584345471268406934207167232565834920314924223224068769775081343356336385902315543636685944908300133044757216277430631256264404789873262583976066652331549766650494724322596865713652897858021267883277315737928470954270904975913325712817039252577468601787528122384081666207579114589696553233412075154611605883920996664549596001859447316074156481697901006101704328194326509821610539453891727033654504254808644832380510253225585913398968846135169982291357234494755953828163185489413044307278560463615892996989510414806338153748114486496672643982309705581895881190574394719750208282335937361492202700871654379730273150656585897697763031039734917488097052793467759676804365393599967425508316392731324817160445918481437766085663442584690829367520832490145603713323435080202119104841115254608791476919251184108895315552419208526581549061621407305803034764045499229002000335398075411583878718899987073565395067954624205387210461421420913355251409221629530579999750026194244117345162942088579327904377696766249103755787243839986832697372790823658569420285960758108991093306779178685262927147356006198855298802738236206216626684878905271794432503628480161965394642434916005121353584043528180797082536495265879673974823370932192910816390164632966315722705344910985106343212367737471513861790579194135215529738580713650880157323504182974736557087244971487170227488875056342054489877377863817931663296947277891705849629210149837500956102602466298796742954605951476224095777998765570707679862711841906537480120517312322264232432590743719155302467979015029614815319898754464582284388110816474029647276357084212358722198091642074656261109171516016894883374446597390631337762668543917117305635183726144595195829541654056671395477615074779101027023316809172682927722181131466831221596308388163290952054479366118045387321054687429016417288487535059847618327957633125882925030248856843258858956176762316041114429730720969009338425204985207242678368095421025055932869987227800912904410603478214709485115169791567562038213793485989900906658499556924885102896451341787477624795140592981082087711495007046814035994270994248465810558406551811376934121358195806291288757063649774542728950670446191922824750883839380837287513708452675102039522297872701445012815056779632728445383497704843876422543754284800876754284472657059459241020313190929217116244708050364513191924022835471856693147081028559226990120847830269326023537536107447064967341070845718207365034386048545861920795567222661645992359143978902357602926405273889604958309595634598925063344955713796187741545787913891806257746891277234902934388686599113172832941316974606300059480574495286733572426351633084511016398178408644356083243955279141958196076901095409495630493309728138334683193736544870078098439447738237583957339498509968045530450727277145779229797499235634606466987441665060390690603416907845011929670871507978665640804350547904298871203305941440468412537518591861709087982676952413661981357258611567983821238692811483354170015358610644938657079341390406651337719384237994639481856880665655579443836829101534833650912808697919924658165068820788433554751074196855253362343088769685955333648354823315012316533850282804106407966815848884573174130624427700421918313903823714024523309495378281077265236453552345337421465908899728338586592337541341721029758890707995193876116302899544052648925309450603808107556043954891493060553486790930015518141809833574144630041929741704315103116941259794256110282791334234900435580951109755386796201331172204992568285262119176083472435217081670210508284896981536159915517617462589868489528291998848225859585081873299454298251409880028477210576016220081148835607532791908492922182770527186188819314632515385533910053207443678893008008749059803898173045884095207553571854178472002960300689608619115541765758118361617485559460027370813854191262032278041418733695278110025457159174810071067728802692246283512885552631504098541767267353044912631415682715993502841358757562363704520268143120117059557316511076319151908110807249770968578829038837984736649495946111948854738941007864687263597926669409199828377445665143435058556264954045789710847342626992175437892778241395990771166903223185003319414597384489799666768920588622115671850204815345154333258552932674469760749822143230560427636234244264836106591244031985633093717813032961758108318881427645664511331316632981820253001825743794450154355405418325781546359497390720909750582519893765063509254561963254455278786180926590868232560791158675548476301473386952832555048630577507296579931135042602826480035969290470843464722056079495295407359708056691378648668483456915536894355799198154070600407625579270175858950195147092302635682206416864348623582651631835059480586983719877231858770473646178643262655438408438471089743577651487311372874782567239737898808154299387787454773291634818017747025926526991171922454620367194635240456939356238015637413680288909447480317476112586313337304216821343198348467790497465458454832935925024281191347070649608659099049800693988186987109911112719601634953247774579532473884136744032804769398080291511377611451223596245408241925541237341996752116445920513494601039452263104920350238631390196734331706814522354314873598562901604120454828241456048282559695158018681577307687329750878961338957464218847690169635225915587474187246865084554047867375141450698501946107620165102527729304650968138516480205990281266729333135885460551775733701693226236325176848171438562370349285931817805841632395545561896334725520955770447394590216021935789259170067478073142720576685039087444383090894321054030712691156349920480157036248638595028005389862912932375232391505724755383414461713793415284989548167703416988138041804520225248824704365035979087143444644495178164609461416015971985804734213386671003636421812084379889739315642079873272698474951404120771166507593859351707180833590210246968140837011152511913048007321955875368988097848083483662335337723425469342835707981552130047823251520897469731020553262639646623523759577964509983808802207293870715575211760680894876495853396054595368430428551850348206768730606072057568366208741120056393389925359895185814928334244163679925230758054652779122769661440450572642612136118951596135413571094560031369880269404923566409409579060943421892926566460520817258426045749561907726811070274735523668134918645401805362603921988406171285177842494583382096599993606150609268114748134356090573801797311817592099897188950269131369806540992858321722321550605785766663997692885641525413452629212056795038089132778778423825152820746627836120950296818029734046372300643559686803195498655497954377261327229540107894243162191351506557342363711411323104412146049005274400958863008430480920169903578321892878629589253417622353655198025049549697996232179798470291127087944895284296035312914167717814441427498009241244381827785803244550410414438109609093236833199799654523271086739579140728040957162506905080617516545334095803082578736599556411549195197073945671626061741478741681171955495590757051642658918906961033113509072581574974279133155483938906487350553073532692605131795580519954248875277570111656080866598182610595431198516538370730449060924489343317193878804763374886467567476618885058867100134107615700485404848094196483045374875615018445135212386013525068091339679909491894758893829657195190218524293642561286672963407464148011182315659485702641124337278647368326056469741509423592544846431535715488183232154488008430257371082799712333770196528369461756162122548098501329874234892852884734715280396503036956604388067532090277406918562625332920865214830424288347751812112550620066857427341699925199796793770731226814735531125431087602147468483701801372056832652001857311923167933743954971403087673284751802008025050360808209787761757742147268483384470274721844442846432887659810611014975104302593188960854717666686701565105978617030447552152499760315982845112351027735733159816630838224828389705342942603192946894909626828590067241666289306054418209618170790938388276162670808160081982424303060643100667803366960001267766432650393254541396503564458907545000037962755608158769646780224285297286198226277355347794646979405029590147512648775027289442143509855109147220656341140815440983688181696347426861146411753372482928036109500692802826448095059687318545802986499745401754812186091226764223354518965735581924600584794368948869905212446452924172980382621560742727821939598744356839390284325370051623231240701509703047995663782290835299145730721010784381653026321765777934731804640431519038820015462387144411233761486429410608485609689600456202304362226059293146636001439522693576246381568736063662349077524417136910751130194994558987387564284021564840526689847346003629142340039853592366729151375118049152069049869259073166279993902061185102637630468260394867428512757750960361286936951213451366405503476804434535460203146220360989862063477438582291344213839518936999819402878255264084503623089440623130030328421554026940781652580172109561600794098303695868393672626962979532907425608091312726805408559750893449006710220794997883661757797460645854132516806381177702537555359608596905845913251026236592908338891207161846864277472032326875933248166280750334018762189079886590863054597986890429304487310320603945293172469614868723273154360288057491005550344467337245696232496878757795224730530010445182086597037306426940838336776151018589365471893464170331432115053704494465156312140281011592947332188292811269855630072097431063876944839969970630571187215037356842979364716183466120912615932724660294225986426409189256770537406966044599213263061288011285827975504971483800647737180708152376160620582513547602307506812148683274814420260659292902446669281486003048997579076583139205799915829120573953917259137325037781241671245110815144543874621896717778645870834292632259037030841095926792007094198394305851596065780834560957037502164653203161555377931760273338808051140008498801274395538024301619063309486181891929897543551290657520831210365817703599311595386453781867637551874297678459513596494202892824976364202925441841690950899789940616268694576715946390755777913099746762673014478020014145531095351505590208733053553577852972955058304650386514360201293411743039457146988512340890067611970025849348949728348665306663439774824185436248190177559033954004069264756367739158298941184377952324722827705950245524069170680189597922298685447841371802102156888281877230174214452268646688448518687802478581482325547153711388510958254080417604036681594635085711510950845861499311067191391485540879109443353602202581091867637151916865132405223431171320789234749543526732881298358699810178244237673818465788446291351131456401816912242638673147012255136910663408969987188468025216669166542165916926898987720225991289858217776657753481952486705791434488196157691707928467347622919150924494803130640357107515824905990048366756719306915062608705955781197502144144799072872190894513519303945225431595475160961155659350866970088538715456022908946004145139354840802165692879615376668036341788137934317310897376109653183477126232722712771121880026399483944094514097055180550361896393132701242381016618728592863210211676350409278654071107862685372620610263250645820498011020981667455935536206251439853763601012104732111322832094983725569232152118658271184875270292632462902675708946310844812178635830249034326918825216942032407687685062049890726468214139086907187950961424272086680932259639417596702227684456821783069467693088235000125279567612041341856223706520415576340010169323789888502407708881498554512551950963542136272117229818890831655070975704412101119482732014637619633663479622740890823471777081572723388582599150651368183410991358342608785095762907442683302736945585833910240411758541581992351058950144711051362108796138962619234894453482679048862071169551456777050781743398712336174555039287377222094050499131345458357340163101842025060959321519152765521471157371141361721123322501886030173427730541134605376885821909818939359256412406418234587365334723934144218353353704765542151237030714753585429920718004255233561276375819782511672011384309294260585738817217089410225845062093206731749375864714006893013291586613662020237082559338690685577818032608216875712391736247485200947796804200812590547136642297691568176614793053313913267220439049421329454008484916019122502816779755396770605539741008980489367017689243019446992608078127237807991844522538984195592366289382183233412079343139410172185326777549164977359877410779970310656322740839710513964991904607028178734222435194386168555059637514193968344650983492723984279870922681084676172265232968637900723367049915424274664071773018918580503916135796915744744265966918768940549428008984633821831359862867500627141551029323493636032559846296137493686684559593879532172528072611841399155855652759924388545247773251730569373519163000648310278530347035570528635834119709836151189902607160968736451184346435415166404281763651201911367949453927995133522938332214946029909837812222222600591479908255059861590535205491666892691044409105737423957528937369863090113024770945642702749955566180110857454255256974962600881867393635994697751962190002331497755766308519024694988895013873254638871100101883599621805346394466862762526938178459002327101334009917976397853034956053084431657932628138320502431148466750903249751781686380639254383572076503662021222885906949717620531746553596323084593283961351756045173924219597647732528890512151057382888079304200538215514162559417307502300676040314012256256234581517495531051301423324028739717510047152522446219539997876965089307991442865626150789115716490272689330680157672414078964444017991682310229756498744815185649866639393009509721225677621256486696246683996378571953251010232865998087009000507103093595741585151866280444058414522712921652142148026165204526101350126661899588484819126997546279401376436860415952338853286481478484042464804883657289675886318911303780625105290681511332363635075818315636566139186519168678962159230923754084124356046368778864219926067982970403564642076673126334652811165088286417569438514214774022551808702650850000016882116469186877601694028017482520494810367572192921647781461704671192821033533993425355384207254311624963439373601747657320100538354188724084927171586757359883275898360001108605951478458436235004023345316006746937294268346197963762067680642842372531285862759360156770270760574013412858276989814358907796389622165307709948344206784294179316960112050027500895852621438683480095579155248885182105982969776476754422257891962456576383908718039449814417397033705875936739815649751009757077895962536635552009637606414344020030084536416555796432251171533686556287975985020725710927302917333266159028269196396409524497454131407791107951336128716327494843475110061113249184165457647274411902029094609696517305132443776477946847760330510431443894292213250008911505640088364483364302899834965966812202791346817085548981738221012300218279784448044032432526933255489809468714461194751485745232827833039605336211393572025281074168476646231553258845930023275466675864908155458611867211574326260441107716825536453600333932304830480015468609802249262242924961925711915434415062297339144863496252911360149577913967669862706896318408900667601050371404741374355336590793668230286059375794535545346097084868140658516057153230347066630019862842715519656662789936713981364616207129043658027117353417542444724564199214346181431332485841229301604526356253037628445847584423699802822753790074069355169596334777669962029376002964799388055548171206250402974210342665273804237435453523902399951339625347329825637578393853604032921318035406676713305559854227361646665355319758791332013356327855895433273394106237325575154793500060852760849858864699852077443781503205484191099487951535073931388308948364183551765811766709986393612336264956876077824880067152805004739913109043885267571295833705979672375383548545961431377092048686088350765252946491971794940599178449359362331308891069594901594511853459555216939885902220939579989646128142752232285173776413689162680187100522397478162931595785606892293596161832075801617528501606966938897896439848729296620381693008844127475898542322359397269493867298449908560354578818782645916380566889393616438928526320189999857627593330699962901048730675061866504653699944770040796366843536227809576828388543077032604817952627447285136553293617377397541400895614068620505909130473774156019065273351529295397332404038669847760874827306868848224684256609278298928128047715866183260662741158465343210695893672651461752098736132705790472798692256905759235508194771696311387330614934334611636782885227924666589798607006965818903623218278031491810687621566864581126479869249369808256842556318801936698486683507422203973297559761679560519987118314999512722562421673255297015021731995682730656969104564971235433153379540060706786488611186159490429629363679587391260441524965460292150940851887681936074285657341971415651311706838911908771391101934870033466417938174246923393959058441441922723384807362768507651765367241229651327619361198475696154990995041781162743525109393993497137286176144612827447572173887061920083075783176304390478499607561986687493708267754797378675806966106049554596170159612298681791735766860646132554474507162613432544769389080852107547948237466970673280700679093105698862190593614615114866318358759265357931232869843772557692428232793509624477422905892216154404395738380088311741082551667034335559270752724063747355238723731787923345754675719334571120219312820371875011355524636543097982368705653067276799975707455018854364540632624593810481786834845460504053170801525828058237547065216163251910774102215379603903877700440239839747601396207363305254704836207947507826892001875404722192094127941078640972112083941211242359304518730148933093065518117564060392773839154758765621582966990899381793845919769692038718598626831904846856680021586506779186105715725957909582571888534221244471865005687528770356106073013233181297035726101036584348216772310532581700763647946156392444945585774672711812658120497740369193519995054429642704318986590874615251881451160750668895065017662179136262610074695956544999988384860971752569515324905956600866111465041607296020801090822459750019414661017444185231947858327900773032376654691159999313506005150938760030006928761646011374540362049422636888855441763702022419309910130895048125673808360840689800029549064533128031257816144115905994769175632195383274297799663706788009739727791587293465492914407090494030679786676446462979520677303011169543647499898070134585741121161265716068839800589258669971205448101784928705962209492993800163828707288291510976070125908008512048902908757565383308346530408413925338285059472820224748288415433608597458901817922916664425518697731153133554059485893428919528919108857032649901091814630674763774428264079139947031856757539871070010186563646577921490105191417554653550546670968034489580266393983265844306613158213485259311246066981235588017095250296391922747144895405698148703624778232417380356727543673204443637959176158988021315444293423948436089425166189130506540252675894739617890402921480571069173074425273235788946578178363800133116871510125357926830874357015703139220044047292489775721257082852397476972814781915824041769684588079967666407716991452453047516646661199192173874535195214742141735902094754226222260808109231426708822120884894726394464446261913288832628837422032593988223792153542452043895076771821486427159261579316927127629342689939601058449378021520714613336864105476634368244542332104671540386130957262085818460147066902564009727865418948580013308309941541415736231525900495564514080941137065900587453064797079049289266918520093349614345805646372179113669596005020727760456149999630966177690135250797922107746315762091681153576322425241395163145383003932610546424390154916594376297788942439263868097438470332408846258702029937469157783806304948641670270286173963416812272407755334143456564067254005313730466079190980830994498074745575890991849767033112965314368393278236378402494376011668048895568412312640875159346280182241020778739834503251991129840513124494497537827977899326153059953222004036156947478272252635855949858168536237376594173565321403736636611068326359364567177541030158101232561084248814110408961960145340056217380233417540480845556824110456587006112135542029682874471323960902085288663190615115345863315735151113135989058859631295919097710178814051105487709086992937047498212981549762541902030267122128423639131172216928340474093277286922071052332409358531767395650186410529693883955080343209764026506016904133779196332555397993177166061070471783261906205657460022903043158095830715436858150160170321642253399708865611180860689751847430550518852132952326839805174532656296830011581642780880907180155468162548924205678346849795507860789993578249737150344589226527721207286819026437298771848378395143237057458587145485294295997152139711218162248353086247404044618423234461599906507638221475853060544672474804467735824367677000039230862507873644768721455592071257476483789823449603548488532816475820857364847272297291955188194027921175779508758529090042562022417069481959413912562706341744988598087878037869470768095268587520748233203525503043378608029233527038439332879096394575064074826974927877109990085280475381046876544608209531624910087352371816407086670958564913549515187602317017126970318001790499968839144748898780169866252265591679741557650029574030971755883552449087088719349824229124155583424045303471618312357069996848305415901291108833863354052308452756491038344596055673758818754842473555232927933065608572210710361754974135322505760974100300278700445501992523638278734189707291074117535686914961146227523268361302639923185672707570776768429124238220842469175602785109046353364820895409246156263122803404823878499227399653244560836276846529919642862087772114038934637457976066774897998448911923565761649808557594736135917907324417186938886812547867272771933543179371563608568587064202195291107270556822529150265423946282624886411247614939981560059064887176305837638224887339816192610877140967251033262337588686942907998284790251403900121247259317693662689870105430328380572843356955655835569790273187827902829467705572054848821718847336647417584464965662301540437629212947740569105569226317700585129715114727008096273031930223382950612181103898941343291983877968905899605514065672404620954049334487780274689992212473053222671599868936614616204787447183743364910432897498619655599802630280919404396350185961005679946362599164301254054834563156699426510818678097733103247863694955949955613263511386618540358937956070554085347218960507183063335961894469565542446235058209784158054179691394283532705339675249898595322593589299055505247975251138846315174079285781079021274372793574468255894225207335691677332323389963005148866778031222407506824180560978471811449240110688332206220683014488601039758991412958291080610696302589407952874039364789368582722653193338845206447008983090828218581460431918792579339085861478472010613618414012888587744662757504919984278120730415787748849092254698758218386561040941562997122714029029803626715077864393233035073586459036830042361297972298215505723065925457384323178111310771628891541733712782018884711721012148979091866410981597871415285440153157987580784685828987711917012609719186573949258406626607490427122054826067587441006914430540826173534398364111182413387314372232367384863690418344071638965369463635944937795470539948252703610734872571830643580692744258038266500168675437186458467754117529784741496080490522782627891410195824976998157445343320243690785950981110894111297011512894178685837802652699398321260841549942332088213031744088658713298801097551424355487090770546537675689439463407805061474583306560326824435969634021755413767075178053788021317390134452891151598182121861682487460773099107538892634414002811190799387887193143663627596932284165517095485433401072203513274515289601320259186480232519275878475918475905694416526756107263689885603533039165918858650710106729553190819875334539034096172757807266332858638481150542369104268280105785300840237419042335482739369006885187638850882343885878803555688149688523075600780760203382388686085164937546712656596546043742330053641126590164181658082049196740591400995132919582123255990811336374982167021831478447069095895128457423299754419761350660115183433621761048003548003700742543007376309827859533522249747310440273276422038719562723235309025105031663655273646354993894997770721675503663942966561964045143712001472473170570403245439393898590520486284563619681360135031764593943330085190387388854672654757567454904910714202834637390977922941114419116374189286358611834973595577123385732020430268348657742626895690655238059803383619368738978182705760833305239491945712796057985285576821753277670479990899439627423306127372086942799323800715352165696111422219811754336692812321651387675189815163436005162934238217638041669262249608496178321956349720704807247196757380168497608783379315195159942258739608224263801281869018759702367064372651183878309172992671829515419728206456454782925925792736137756576874223698206721747242643111591929519136291145421680040533306330266260367723246299883981905708205477304299080431695101303819474565405026144928023231236203877979783215124726835682317547504437451995247369658478819650703414236655834379266254081244181638657238927605556826613244372882187183156001853480640619823759011088676406125745318376351184778250734037488216143360456469818905345546570612166916792867063409148279576739279629036797542281082168528618262881922506816389161494485030580694214695562937620236366083046055388698151502344918540997912115049327621017482515809495269623649048192174642319145994678741471737964134499304670300418823264248763253352386339982275972148807526510043483558808183853581029439386741919461027591557261465960529520586720046653123233787668446613266062825222478224654806207651679426556747838540395370024134593457840921541966677114097271112820762940846474537649301254500191228056036623867095765961225359641847054896749278754425707864982248872634169002589261804247914800860544267984574830045975268952333923016109690114532116292828906644957790665327692840550096005378141679600253312986405048026012227091279164769571524063903406401316928136985431998379309506605582024189790569228753397986267263592295847693297763176541582653255687375855034077334997622229860469525068220844315624194208819707300827177641548768869333294376938866688123600618870127603350103017806833157869118583871770792196282548796609529479773828196451472595746177268992826970214550043852514082151558916105813430552681878224582040276363245554763696716316446956496501400150497966075054054364934903067086227251043857416476639004285565221054326625061197298343885469855709774372416024304738797694120282205103191070958858525115692376931851274930591381053389691422465564652304735554194094909763560124767429196094329847261714612431469065124149064875476657682607739501234505311534807783766962221456006524678151799344968944683517703317345542969019634820050794932277834753273354577016196257463260532358219850764172305885263950543112828566186169908379943115539118293167901223731486365415574486820716265962563099615843124883463112961023032235278303527269847851441111928995092971337994603103772781201431010379584567154870467293020772341014829862921217837863610302915377191744041306088380081202995363383871044218805626766887739439336062871900260936704935363885695061868142947827104741436709087990800647278162010462904616629426696440329101926921429284490128541327024485455039910260429930406340682610318822978687247973326852977176596486603004842847121044850986051611273035619090235356741024537869037249087854360670009081278098288437880016271539408673925756737541251295788164901038891002161023577998610307347532491293912949072607783728458604809180504494888636145310028681920553857936583636941474802849704995758793906075684135543626570192415464158856259345635683253578453084515987616657427873989872793933754738392161221289444831709802275825633519132664937810252055930711421359794082168605217401138537078919109695247633759598214491898754657255637177123560401616218610468785771210888803870059154661353782301515873602078544332508537382503784106011935043805868650709055297636976403322331414434052012565673098368373497168993161825585369264264645339778003841892884588810035306398078875201675987750840361663263800819482518625541881971040171092682299914047880892894072559748556291733884486827379722151027268418645583160827981206603493324591828948608198589602359436076342722431284458430966536741683789576985002345588985575761109311455581698310718095588719189968615605760968340713499312264052906634719833826930771087353137493876427992221976130386118588843596343758468058452563793755177701931870948620427078280039098916830354605625060570823760026634042844273349798090519538916948973974467933944744820379006532410526673852106545418770438964136128805257184547273942353345993376533783101241782289426892529923553043264744939076726340425770457121035671929037705475654311302057604023208785695061208737222825714536077325289843704051969157233140604954409870023564765263536853971794979631430737188462820464449256827101866211660678705380740993762705933945173171915291208542504445179847929886262894807892081017778607467020219471817002597215759733918934471158858784649070389121995624582792449407611288452568762801873449386977125624868108406671563142136020164771988779612278528793479981190247835953072639795618341907688505348929875535341202119701606428420341874075716482043607168555727394094905248039334806074215283167206262434462135470156325949828709752832402937769907476729659046754725221246293870605578732213129834985846396129001055777487615200633441070487761621228730319048105924758316030175546369240935450165243151438908793857780695007636652597060063381553466559537385486341947193363242472607376315988550303262649387562757764210605552755246063255964670988791648441501489360358296647045636008992979661673491695086860103294858125178826605724968852693780311366741894574050285651468564768725068218214669465700085307143818241114452719833566573845522857404810765502182740723778185430638784886644546862598515553161169224239681809259438962296388232071276322767180361223097272052604776246969219785981216890091292198247307542718537907365024729452644240460103542025006615376592969363490299011259860099366651517889612938169426034726239813151319243200711626847040745382853351293035903617305447466496829839553213973040769829057429909462095277129303549395484162776785304530683305480100632364364561951824508306668401019668631508276294192756316592473989066876455909106717660739472873045567473385927122099963682295719136883821767164045052723343623565582152214211620287435134159500411462778046630169633839398588182824852963817632101222703653182975127091105218076426985439094895185916970768817914333690906190968160632462104826299140730147134034227245659966464569209697502318256272357032751653197975429997941124723928038923633475060493975534893660547575532459250637384998743307651068417930260933249987776462077127174030081998687076338854458443382128763881347874487503377598875732226739599280471466995501313699695624219782728688024235200142984956632196812726295682896344353806980353865708256308103885939354743336257848807660329256682196051790498981779849981362489805968066097148158894849482700209103375424893229310328734186475389160892325831443221276653452772808519307276520134839268281064027959840791189223181636975087535402519896724767182170250743925461186920164890149599512402077244884664563599444096450566945788273288563791475483408299486682734934185081404923253017306778544854072379143158822196811622184806086761630403536851852890590670301277104225999604897022614220984851110009846153736523527290277115785759414575713321287550608039936116056152867561911725994102137420383389595894162243224715378707514145720567605352238165185523554037351137289909914249916850194319619474391106074894846823739727008462683331433019999253592823655231764783759139402302472974644696165793270780999051876323797012381616562573414985861135194730971429248415836769946876592268421931392066266978672658461562545022383553647493984220546361222004560486185939733683882590544440820477091750207929658097363867998222242426445222240388424076832414934493921682215291690144734647283877299785723620933404760851755426258565469644415228315134493903993114216925961363652963729926518495593117137765577290612287733580539284822110931442682519720988718909338172838382813217071731285833048858473755621453154901632749995347422593781195340291451571582577581845870380158371026886323592152414246859037865604355859365506909407568285987820028956881092524067397566711757741042707926369036240027288836576209169508043488144301778257397588754708938836384857706842125489002663874906252096693525858220101435307176218157561054507534377621028093175249022453910474675874016945189506049965069520182535673394593900520203255939868030835729165151220052058835670321051905508180586931837153051024627108058492405215320405577235441041297993528502747099717707599376471475546857334930579412358175378842686811964469172091682232031860252246978333336386639493668972164447110059303433051351625949840954861791030007006141184243299323927602418816519661197658930126920894251342395246262476585661108480291287175878809527208716428370296668954792862735884722961628325818204875083787460454946674490030304993780008996077723946425675134200955775458612649649685972327295507502973701382555861115786000950611002186813109468145498104242676520036242515254415427375140255700595607106738794438506208450414382050817130327590138075288363659288580699470056152589513651668206575506690736426583474145169235477667220797085321295046149408712683300218406186390659714966367089392708863046615159334498465852392596681896067649750731475523001452521938304031621932201903083675211976412201382918658268214462975472728029661567086841013060141089317156293084599381052862684828728979192149163472241811973572579364203590821929227022147837549703723712610919576064768684328484275305210500468756679191288887500482102432456813451837581719952068370006059249083510186016676575307178594617644163642657248367147127288705916676659862319411065593099820385762533946434601332555587918467637051559589007147952595803358623549336069172598499105497672130385089968086965950623446007429913561886870085984997025540679745902764143584610562031219460585251893685625779364821104951931242562105279187424490505710904934569363769968649673787101817828774735075514239700476560821773718735710265220511646682669775165566595665350959604464475929140633749426274270163329021057268525899455363407831823340300215936818181906381564666456205610615963057720088127666913383888164846011806860449408203169312414641180677297813662069929000869062659622837778260671411514088029319755718357758368301047329509572421648373837522489425469540885443599300046395025874023398172517652382688784406553774638745208125207513861197485740620248570994462492419620923822474508176753353600204256678131254738137821936971763551854599319417694794572923657835059201587863377009968660163288142958348696164838627957689725032253040506968309664161982986133069385955279245578465870361113166941057292074953691598150010134507452443526474093295301836432504522647493386147680972369190242024096003395627883141686100125612346353952071059076771848216812249253729820934520304583856121147148756790444786574205911864852148336548705734521463877876470492083596670663678683860386804476710920928160810163303072792763466278611394781400442749704797687645094759463284957941495412403958543226832034508609216867143536183814924680591740726766701659350310697058376524927016951950162544447948792397948706236185841441498620920905870914694126698815340057142045772110547474439087538054423937016771702925550746441453157606319145182983400498104934444278011348907888349043032812062721718754905949876225821098734487662647340686186425513233545938661038727475569355275113994963196524656009482471784907820364517361970254511123952695205995422260028231943883534991892025153384091825606136198330253502522006021016235476470144282463109496391298996512517981515998737554461927734380505432330473420230863588939540058157659732766524032435484292484448656765111499639375769236163833685552961098908083361391575489200746643047022062663939892481465277376720301961004903399228648396618733063356458617779063695890427596375763612221949356743229495823397722037020230701273889124533887094900617543935527760122217402069580176347206187676750926228464388524591151423779567954397066258579371817382572676979558448084137521448957238004416096298853711395438582791138144999598796334695892886572328116083175575829162543001240599668352547428047847555077970927777195871106715475089997949924149929696774676031301274688275876702406062655491667228882564088781343321711343099277208850202014539391421861010762629265895137662025422936225182949216825908654219176035004468538022246234798467663294137573874399629728631487566256958268806086337150126823878718004560658219339841115220623946025650741627159762635410365831205403635866647624346732658863284402232992339936285729532435266284132008655557290283866285225744215153170043393209455307897725344515515460670255328918626669632629318882803517566303875309489798857648467429987290044853921576312817676286847715997548341872014540973433749903654782994711928085503245632538776195690959168975956931290459213829180838651422310352409140706300175173080870843482571690664349622170855040930096437281245638472138456361765361898384266153946789531434226582302651654154833488530614697579264826972255093866360176245573037710098630065067153884431667391906946094856051465192290991179248012049025275930899376359168284360287348384285859560187443069191964799611285632874447168809635684300450733933148578124786205434566109478559976688116328302874245164686793057596911039617701086039032434312997378424050790291596319754801998783288073382518757460596328235721748570637263519406540151650424086840791714982809499588917032448997969823125896294790227765249757425037916544219435642077422133525019557553552500927475749474404602485319000325648571799818633026717830504012519508663199040402320189433467932088352786603437562872700751409958968508266605003830031591627754805211523722876472367144787793574415951970242081750030309897525832014845186613481416068107610746105613006982528202597783545237321606423586547055267919210804413896713890691920438269603859270411885356604067139951889180053995957298044355948511919508899148621146402959503974428523996328135042729736158988443694629894686971274883074405327720810837641415728175545517664464217974105878201494125376367890844773808578778160943687979416780948179156960876281312417049884111742380947114736896939850281353308919883836857202994569180256849674103845249316460333286018665764458228167038750224769840229439260521352253798720854129084188100033178128457339131634322824978218083276145672231323268626276945644152735192542182434486906499699193764545895569339863028458646791335964274897992582426525542613226568412734880110141575828942206437915112268614153267166902639898231253916226224055715853932940709122468970108480218094233980515512278458599763459363419830752048130314546249201583125122105367956921313380156683672788464797132197719604985215718326282071046945781334163471285904546289849582849074164173990402869066514612991802927188242972527740903269532121553045212900493026760925569354735682156480989024059059960418340531743215086335572400703129457331010002754832941583656119422981126447314116035866197898924448092481782640783272993139950874860083308573959386569722498829948225101748951849815503520508995900438505816080751853472337151531935400195187623110595850229380070817683370620045958045245408537485744009109690742508553757305495580811861295735783603349450352872090214232757650034345534179629210143250488217245296064182618020476123844602333211268368490003114815361993111819719197025246267551575761303314616057596436477192441387767433495062595086400912523090480767867298507304093791607674964640593833244951061632948942772069091191952966052849517598539966575845477088126383047366706163207699277762045798201517760056829086609048764271138566139074359171964087595068745091227988007222047219986222861979380207300035007942934808216431132383451826544744536815264337089749029056344047787376325289438068859691378953212598913051921929750146997986610842662869506979543363282143045885098912204638713963184514218895111000809360670345377278890812795830709250112382543510778809847811199856442586508937936843347532588152180379635774749090599847875394119018737515477954913034990464607710003666538494525901694554635979723079041932465474437783090053625033404075016588881739285846753043788905423573889924706226723873866554805380109889405933375469820967483083740682734522243014191894979111786878349513358397759708817037584119547970033339124874284441076335500750569592383471092737615084690787967042682475830400715917978691207697661836661622434873072488678431392240323648968650306749271153799670736186746303618519584250563055578722523406705442622444890598952856221008521675773794740337196890767815280974483756885731751797106413039187778251720507378803723354464422493036175987441600756545528047178266958605379281175320012604260702472533757137182830964556614311027221486602787343091422488424231186798575032767084146987355193202280894779678598859381793288050614745661144685999656254927693660303986875599914689581547648957068149193403718983379604954541754731723310287660888447244938920626385340653544559605406991843578453371264688714247406060073200428342310583444969990790313762052563709168540964818684499545879222377722866253416557226072638342483181582750993777321676170981880924969263428530203999766871779085299285100682211793017670118435506282208139092985820105956251411819917161502480311795654913299325381712855583913009633510373097140399864650791112126902355547323656740434471165637787634171604643417828759735234345666624732315524135994802505095815379267573950678331988218362253419583970878495970446832558569538334897905983728933723063850999782010057619015722281429341737720414932353419499286520363259493934579480542838722057145357663662673946213751208158792768262293023281097374424695946636448563864932792151485390927409417154952345215959377295678575782341269905343250398652789546248474826684806143626136326520622662312715165491271273828736943622308351730413782555096762397242856072689614443426042664093140676577955279359564124824355115618687369470394027113175340070634506387971985120286113960527083147713634967851956320365372144016482171020687788273243721218433726757424884197161875475477141629656998355170684359032725404559280871069940468337153754842589744035546031090425656973448886089508827052509753401228141976254904673929312194288460555331027054871849014864925545862173248180081729655674530771871200926903444432710511270009847983526580480364109056795777378489625837922472744819442816940657938277105022046123612928629291690822385450744624936439324154276326143637655644815864040110716841105357916791801594157604257050457234463720061631700678362538714581143516940133062064982879465999467838915817699984668094473841791429656374992001950561103200307973920855032559911468361626898463140940543606322377802248877903503328313350674393111993286896507116601232758929931271738172213492998513692285247077655229712337933769772340703934379101889567440872744514523671990320592458087757092359616063779334885421659414980988861528329580290853079677821135013408924613390330205634289457069203187942163774764206343571668534379497494322329604199090388616902994943701890116479654176077137713521995819085303962091969975950062955229188661138454593662713897989925122144935533727433344861829114602493994090763410334052458601195646827238492297208627605908259272040281220935665962805962944062660862194360196963462984673414947025498775085592937702864558894903602567070153258690403034745845791229352465614734984695528889462650843384238940211035461009312085293012205842300409139311315451100675784345534893611333561852693063645053870167851597406004546612308520705415956536687530039485091747919855753423149629414778418131367436671554008663590941296710997601182081786704275529211129137999039522652638489233883235475004626904803499080944220446150107932684745665039281625724608392714723759446882680969592105874702248437633415798996449074486528822467056462263434516396471860500550156934509407168271349059802772682984738783390279296445790110324622741476691845234276570176258611990560529104675070887817183464590571680933926239848102078013913584223919305389062900112686519523061644681415874553903580119816135343255257695258779341638330973016839503495640100227317312060766283958737172487654460624603097275980130000276382938813947093720395928583710816160333253230087903593579442967180126964474169560824204610040976674922098955092669046430683406062818969556291048836111713794192953374122576663425022770268225752078762384418782052767265197799543009486793350894303173690339929012045726023914815331335923699575238135780887975546666694672654199189981837833977848174899617849580818371073275359530143548422757990042564786863947312311136684567498161578468969066832367641605197649471028453798866676180877048060026626715514754911603788294891779663329362003869359171680642215259426714117847586382957819705188325389784393778006518046235410642350136874109842782326872080175488500793159279995499236998792544275695739924343077668046036686089891666720831382388473761280458491880123159694652337189483943215430290043354107242544882487376368855247299836113009467009733445146294658147605344499422992386135371955748965915997884093793315043941289089116518698397283944935686607742727024653015277391946402582545671666966416058233010540703810577515939960653818238665659117161697033490300312816905185905143454474737457277471863753429566721746339886874591713915473438837117991531741347439498168508933287486389809775388737626082585186612072235837810904359427868297242908899168709953534030512047949103329007429393598901103974921921888989237271626805186543908097712566138341268897073970882499626679051614636823852091626974547231302043559704717713238432162106874337026720808476649041424821065693874063910981070602674154113404837666464152826496892506482346803794519619511940111912924071534137024326723253165407165662948040510302722098991496470033601822020883745632793879175419561881606214578316960304604976537571449023590346891972117382375925635592245075600569563724295994902531420094443312262379040219960446792531601012091137540462540082994506705020190235326486031286267478635047569480762602961285321966092737532620265349332875684833310849032737326186526789255472261299523173771105398769233364175508947961719324210206360288014681020984329739507262415533906077024280212464018651823439810225681246615540987134983812070559156579042777353259731752804427645256483196804353801472836193647015586798087327614563141082637789748216590195720004420014365398680571248418211469010792820127121113295566542584825457211957258351389512719337704312238425408712744332823288964227503097755513096395747738480894177484492142184248591489642754132929522963985226996410001809618602373565556651172675387778738419087814036636218439280570019272387711890760661249178725132286703608605807423723791326379846948405098481988009346694384218638551018517666136707954668607343666958999668022410789390579406713692885177780108446668159381502229209768739356542639786982797258664222121157683091886145422951031641480712599273993286417914428529706771298799603504662618910035449741819153145871515060801657220319864337434307913869501630373471438966727858504979745611979670684823001987082683785215507956622563360052457073604819924408871011513918663309114118978668574686832073367769899194385169941848670844929072884793881760465600346302659406923625942769411986942735360037795442665066293567848851480255919735496697706419751836966874569192552016188429545783755305012162058273129955955973701827911029486738752662294958647290745924240239472412192085670025741410566315722475199293123273641136608047927685704243260748642875953972916006330130770484607409766504284608384988423807205201748910694997709200631605040788545473470744657317627094886971901168953263034322468960884856259742860531366563559018543527309750915442026877700838811125728112932320698501761015680844323823318698627537477315424459122544581646284549604937850644169674918518103366604010011685210072634229673561942319772806244646163654516225311164040483870590172192569477058883818354222719955906217203827583356631199769008866050446348025631261037060470935443516088902036528538465361401303776397761048178686880883501105734625248802905340976883543514931007664425154571898330658292449784608599562450930114392305594376770613072997180609332503039100769419705112175268133087226243001825614239928347007931297332264134449917834925340348508586223162615106544118677219230386840338823000197049352217295713401105092709999325481992039182494605175880028579212452569906831770821462785955383542263044554127495634750182701639143578674720608323579513928426960769738353814088730677899077702336976088856059993680901286849940918708200126242850953729097036134630239134370495764789530190155566590859206785499881932261922450939726055848533803451791126900968015685295850162753102531936928290626785136273379897845993872815776071609416749629549090104916682829261903873995136189804475492768349104421516904235030530532658864704558265495313234693595903056085473946306865749753354285168208457256997640366346560609012606041776100154538957242426443495308004500424777803097582423687559847889658012150610038520234768826547043439351762997021362346298247687016542186985983198540800858855902699157359352064698360516048206222022117804326013902017496008500265183443412838072591928976908684855638242016742671036910527108871899221304311308541794817780371958482564360805524239025783162472834244522527686254503230118075414738421916132660121920276546030026947276212317234858916555398962090568240179868575776922167323636491828642435257768021599711798899590908345746498920727274634659527817444793191863434734693436763040147745888773136074630971838264444939585318573287706030189886727562637012517063351514996863355813740503077524829214998479134467779097806859919783565670652089818253088269458740973949617730322060817982432159184135091391605791230979308687240181197002524202741312085600361179226128515397897167734458125162833171138859046574713135771511527942937803054931809479794402920652288341280837915695072281473775767467225808854566055466856892849263101544993123357969500779776791044720543543309680878929064443542602437927521259459408669649538444654161762257973317096279217450766349677282453350148445378927628158101936095303331694604542171717088937888331647372610965132596113087071516290718309183824758086799865752427561096912208486270312513683234656721290456614146967068779348101618929665289646072674127549700691840916434882482581253665577823492559103701233688520394203534860546234265138783810080327144264486747543629664396689098252174376016912726946984234480613616868676127025705049347219951645326841759559967372796968669366777777640593388018657687828519427232192240745835874107740065219642804541054098441931665817573627305384071305359250800940238668232839320320882205006170867164271439464895377549865546208786436271107444270510784833398913608462779869284502648780064917362330830937975311284174426236427686706905918550265062421910467381806508250368817066641932538542504345308657675169835618259609081979193848567057537520223891946927199194696106156272545297366225801339583676355625827321533490625161514137601530420860006109019877633373453357971803372250692672691376592328052839725495754264685711485988420827825535835680662534801902217361343842641955621414854431725918585369183245339009279007632071001813571379509042054068230208216091338819148598301713276298561666442734558100876366122033540860358207012383488419653460441145508409355047423213148751870440897626879623447154563245227759910708133465112381925222398560924348373147578962630547595455146003425097376188104265516606996918217743158544929580765036982922218542068832577846784272997579273176094523676741411869040647998830206603485178664189430306937072699197211019672182647332268959876107787809271938757360673278763775085291614176909050121566621287876812550659363327034513338419232619442558080373693346860870424914735228989795595623934112285117981124462604027816048789748363143071817851203741471692137624579712766039007746044827033439086828794494253112070172218029596013980657928973019057771131128187712257545240166555556092342299024244620977087539524395732254514030748212870902869710248396735311704540177364078192892824815329649360179732674679502426977676330436849635119437157558556561362359287405836076199595136420038933443101618611055824597895958970171266211008051305152242834034045432695139720783352205884631500921548334723769892653907959952866925836624235766462227261439460825622759231221599991919086796950604237169335642504257524943166846331022893200904420543768751051689457856457940923535301844069774592469746206991293459499966351784313809015145849140350378570227224790651996152695156793142832008798150900741001138144110086700992790114628795768935714146795705944601071320957704648586929583633606229356312934812239665669988980343931257768931623326399214612722637312762833022959990439631577639456159460253389692450440049216699266553898860181059109348631514700230965020590198142233223231911086296831421475681237143698635014444368954958366556722967640899932253835184657832929216920358906872757071987188065735612571464211646798298599189567743596296643944044210385726768391010168752848288902803810253276387005186666566366704083226291464130792421881766503845509542066657754238421074518483440445902304638291032106315507333382551870138677443906725806877956709649606062978064049252668854660349210691473469555583724790009651956819513123208886463000588925880687258492214327283229644340966820684524341986599615229345961670125018248701735021450084398079502635368795971133589343436748517579977054095559809154037158468608652524457048645283651755163611478857401456098164808960851482941208631229480145669705481801896302482021624656556624156393572734635373345662138039378962676647185221316653187767293645516911444227552370200925893523817252156093939018815852858952126455569093938119547540361840608504583771205670861645777979666671873877580238516829931526348900960621582966451798285385740800390474566159123388794474477421552146171825627495794313576965066478615880633066552653969862169639444585492448100313104094903572003701561618207878697112356524052491572945858006797943757848575894408511961415800918782870170651243295623218696251097122343880881668415717595918540309402867045884879288087819516744254941596535649206779399039336047240228017357859235838812169774967112780663758271580369918989775274976783479799376260667859470129578624215109265421786844876260848013404896188114819921002957509484047224217987080410763363457055828254643207105228330712003865916706484639811345827424392829127938639696278689363171881647005837279669557434592591720807184599122646265163020332032263522505067499387770825457691327089266590264594635281897014591133296588771902911035140411374987995198251142097039898411686318488103038737054974524102144360845410184650015061930018891791728730050593644479353719374880270504679481070144925664396982327101859716207873867290353209692410093426525794798528896314778786492852378071565850815170410684107588550073475877051547533244182398098040306366301917796242090217721376232898877097335469847096284261885889838268377565512419778172474957724329341513827322215968883797216955664078952185366595326385981146459592301173784139651513213277582479565172730088138125105539792460573201939704737839696174398022962787786216379251398402479181537756404557867147387350902457786746047271006656616203832558385033026745147499546266565714169711581495316752876809337469247692404944899766727361577047294888595993454691256959501461119419235898615210764000355452072770801136021725360962038029446311170921480771235836457890024191492439361141108489049858046993081449510639673837415418137511264814093265348851995933526672600367056314556604424746245548608333840785127083875777610459269130379316595245263076866169953103221668352634569286260513032902944671232987529521810279383819470617391822350741076307459329952768995539932244016882065143376583088905397718267012213826123819722805473051591282904777933410765658183752546741450691071956478008348797167056405865796234250077982000426013265043638900214788180428234013936536152530645986176201560938190892669533808984688812300245995270671085897352081009651327528664121888940696493307096922327457766609564948588529798414739167590867227784082139563461694009332201308970105666790077220329334024417223578296932395860405492700422383359103537504226735721062132477070355024188807692768720078698375554836660446414851466588628051434527931037717707546333529819199346195795584821754706112943599343040964847982801067190065254987758337821574011767312219554493198957789078380563372363743956751045718323706854102843109386555872644287847271580688934151374579174367930183536644495274444268698666117437072827388162806552448424363862468877757185541936647943247841275755952592058088712842685422823198137639981947568299473381280463229161785333261363096319824228825151418568334742728771184619433480834901111338012816602413220132452541404331073663990696027520067340720286955885989060920835617717205520697506776271348676902636020314418231568795435598000935713465534542496502836825933930359792718950566805524375370875393975417062913957308817889963194729421322013381412712380871767535929055773725670849664411505581738150954875162725422314198117028228108602483258724669421501367814821860639061137967107109697842178810360004005717925505569766317954206688695728102688297795384429734548848892766099566000599069847182374863197915182355222121845457213246352162422599773692975376877557394108917687326671297058290562592075788399555330007224047174503201851267727542690459524275622335795187720670065618394714941566333502435884700313274344475093689288232342158025849907195145982277216419055804247544075873254633871690814603872829372635624796204028914808633100371218506766032903161013601593150098710696541572042068100908629327743305214615965117992581586961349207869909997528246664672088886152599305245957473807921826946671355387521996389290322397069538638705974240774875969514771111970057220776049724379859565963488191123548026871866839308286223368292845810403716093615102371809283944458119797420709550824351189016384195583980244491407242924480910216311344291523185676695298594928778746196074059621456810240648709255856167582716971685569757915812305279057223034654748113776837934983324697430647591460832345927262916597588175923978225404903511970837725587359357956582720860142646617502260589806476386345647284317295004116095370500210914147772643849183635878351007689390865863260026627466280384770436102731677855240252413026574622611910874312828080200226454440864309561653613901198862147811697956553983247533047806292208011963216016455473707170796018326983878119705900177213310358014082200198698348989566285543922924327815902579468156294032749916132133411530798349555079678777512736653783666299269357758887069185030465945390250068690305287609532917120482493243847941683743459086883619496415156265929939388902101173092923525374274613113096809845983111160075982843029993132987678214578345529830557740033262592975463554945900082748096235027895615723455046308009650832228580506522350198634112419680986615919020033934683150776169022586560209734819224552068904409125757704886795097835634521563934320176774846759830804029652419454723952766591548866473132687232320161804430042241401517721167798002041789748401011323774456317652290357700031699850677495373593149324343964233987496193289922980658234880493482875361585700444443778232908695249821820477527770040228334569408434740491869643790383216168207772006315060191084765784447628391683959638989484166391924784156159434783758798192863823703116893930472173188780698161324585756520355074448978012199812932885238714985118139267024951580559351607908632961949306693357160106359852979044519744990481038796506560140812675248514656534535650861596340592397576283958042305540459555051941138593970857910685838761329303483646072756531968079949451552945078438408162006812993812396253580236318279657868599721491177829725784873963924396637766546297901788889442629852124478430909946767182068870471723080372371930953888983083965399486088327613773078965906754963945103635917229165850629914268763197000332181352682078269100731624752501145310604174686424411148065848723193675108723131990143598184478152623747529428030667370048453109288388645549341266339362860766903483248864470695248336828924297145402024877090914863353787856589805588885030174268240346546042962468649904560193712872265386869128582491757948503466852823794287184661358075437093041268279491228612693963833668040803296995818672683733341353329197477465767259620928969562642009473423380270479586697225554024548499061345072179510070654545179861928196120019222122121178788183303803807165487634048918577813734854471735978561466560867364807613129722114408476195946173671534397411435675710530176271068758993735373553475358660606817198906787987400063633845823001745802308476205375824255239726971735405203203558411619426948810343226148024254691658250373173923935928384910412558488342272732694458141488416213952528473693245763312454213621908762560815350897772100970815006284899146650817674384270729953732347564800022144380925146624611597015029328345983285511475890773273032508045953864610532283386095634504770899317042830476138040664269138338847360921331368404952748906509358267893421493514640078920225450261845729226609665773121104306738341481285414891329558180543703682873730150157197934678197680130484817398732602603563520735174268660132814223786047144516469418533160426815238521878380978051323556779662669817335423902703921275147206277202148847458140965963497933029600494622996195618777076234006228096239723711543744762528885697151447527662729612647206115239251300373847347262898541801786085402418396477152262844313548405266093136705403858350897022850800307193552235704378819723322544289950510169001882313315943851819176988605654890846877865821182923599158737781591299767997224529375182402182662506450137286303504216439270340394715047528378613470308711656167506523217237055109864805861701736286333920347773049947165792146126287370832598967556250483124667503112235275393697383607805778345528283090922544282614526827231340717320830829207536803012923059798203155695960231549583844676138838263164777061779577568888205236532885851920335630882240607810762933405680001307100089389005125209602339663374374445285331693775075385193741350206997787463339448083392697335556623383281011906411613122106937186166041293905031754172072507152527640529009982072415969495418031245422158675785343626777055395882572597046360350658970350645570266382306715948160840295789565563826051117641665454480286244545479420374505702601980494244230453310656564720455002398856310769492346840527755817559529281247424818630680288890807552099688752613919291414346864519534452476312516968971281408884676886990070630884174856461107226606584652184740175975898799904143574202243248376709311185475591878141620630451516261408253398419307132443201708310921858580096086325199084259807331045184259422332619404255355507087529840289088450329560926190715925074328058708221075432718708258760360204370063261005784110210988615936642447655097607100629232176982999545717945432782536217294057990322537266086316355701396596249198979710285225608194604565999644084670357089432565079545780953463701997544268894354773336296232902115140765016026540111458748115974131727481462231806092611895929249525983785628906450704903472535292834099032955172112468845824595164887804691426049559742146209839467431072654068451865099513392229605593531943668318143713182545259866491263640050863333637457088683808690664575313864068032171566819815599725414472681103088973174342336253213183412067583651119262398530144929739809394412763520755062135555515420199255343644892383293802597818189693758608094977660087586618071617191783811077341649478513030314575208972870127141347548799201347805791363640550775895300807295898419375086115469747399679996728292211601357156474745821152337429189912333041809216508936270673839755333098304722173009301321701449062067964428895166059828580393849960245943408580929086775518200760472693689548093922082162412195488294981090806625464553264579703326380209820837231994713912255432023117146470882913347720843502061004974843394357192247570854988506056060911534058559766823255927721768905837524666140978018281139043041115758416777016010798761448838031023886693340188954820103876497712270403548284339301265828638330903422836479163200707552533809446200938353747406573654626646460647515513584615829986769438688819183747084796412815929546417478996016760727294584530623018170871959822648937980173723111808629819955950526575129164074170847397282693919697221359931012292840423087731479836047150364397452962226527639817014232393137408996842297853553921229072918503163292255232347022780125525594422903897858428728995914231425076195259957087979932328067701633199158178470101753178921722791268634362116042469899861018565226159565327339171575263889181936415500599179421523345871419459304657320302800697689536661844001278869124199379667044015870247231305835048809828954258895970740774201017315001864436458166708133510909059963304016903371617563791575794730166619003003811175913202010277364343461315762513404128687993988451821625303149040983664256946938368710697499806958756633929578555648342270521835384367912308021330683574036515962816298455848845255238672538629437698053234012430347273835133065882055767534806269546774814351907120566694295239656080097012315818725733437867273372522687737411238600368683094612663810685484679689947301075994276425117565524298164971212412868558959588443663254613140840028039300405772089550475850022439905098612149556236610648765907857932157140130476716111846795267885658854092048437822311282962202340371710987280643052932890788506752064967892060251582012484268583778456010420652264266810000705575195573085157999319511072228938139802302499636096736517384225279201184598077526550063904263668545184133716618251105555833567835760555255897582078738532866252881252031788843767552198334529344987475272403247232547183399758509191092066713168242835495589205497375789152946329228195644576337820493388427359112338933713275855667453840747071948855418031265645194248445572945466548769318680449012343188896137678525560887565223973277021403542666846448123573840380308433376467513278614617767714680733755184298145581567103175683883890600117871057481453587560014541389095059271800525343211653006829052673659495276569832106298365872201322755305047827721254982144746555064596504399208314499869012887901128303644346058393882687465258658682855330627397116447405918029662578408641304778833709519285271257573252385899345441326706637422309664700832897207020467827067163578151572848035563832824386880209370617168299488496538429709547042057273892805544867592920965336664694369530743114854099332108318859157750011852890115857821730581243215651680873084398966219299660118105635617583464333010550246283908409675255255923578906668720208555206792730266936797464598115225199541378807656576719198755130238053724392956235000713787952431835446311578674717843165083974928232894889454157422297696709519093451740141254069632986562146273583561564100657761114452988708026666644757970849924063746322190027191939404828905664573272578068584728024613256026385181142211226257313197245963662471042151357333672969705906317071446628010553461251186265188726029327396953247394229999068810165326690188696801144357155648049742285339101085234777850012776958902129354204867835155017562703340384602334646875690245827567498917633618264861305242463930496386053482342304008132772456677381206342864853385596358459652046085903478301738551578953606640927240247923199166344043384970484942574745442238604213253598670466663660462917857905418276042940182179334033840857133077842765972032752541391564778192745621869171828458976079490935375775166396185129296881352531227957181332499354762403233220765706112398944555426576411290594623179638077656912262132865279929659012243741966163157597462361235345056255151885211442596603577647318869287160267034411141257838961356602459885404467019347825570586451013279350391938394468908612806235060137179294128939596586434485653761232633646719808183673884548369991840208847276033924010042190181515926347840380534587504984694265948306917896115949999063633467789040640674935741262494352501739053932592605092170342331679294664393934649793222436495540284091757456959357265154416461757604649760101052564796885580713755655745723201303463277938387960621096870797281219883837580528615987925266595608950728624608123138445537942700304685587732493474874294768331298045675456754049029964461837386616556760172510146309500697888921320079326368321474632356985870985834595365631193470638373077961126330026038644131182488394801550764391193008226512676115612230923387643239571237410031633087465242601250378422981432666239215663682345991952034186118079832607554262655067669532035503307472172485411158829104446655606476450871462053836552383579848250001103476572386021921711333524094793642560144359047803905495221583234422342063497099710513279450632623421992364967063800123319830291811881926363501662394193890226672769020000998476827374298758059142766651905190447843641464292299539959214653419239836957191245854504895535966984855530861683557328203851829993575808515717381641479380838961244960184256241903068588107781798463811650883285021089456288257216577094859668666980996151617037505972681231023322562029314929581187461159304289151012150767191327612891520486144038607456082446836176728577261195336305865996517697535704959885823362265737213835339463531682902564481410224557879742617572638928121350912758959357920994684129723506196904752768506243613144659901920390013208188435538498689599619094353176486909927449387175337080697512617294547484296170833725072340523270104586277387236434662875397721271684955108308995314913274844937533608599060096652729014209110191767712613819720736182996745372804213661611219132662815140822678039492785535693270930936289841639460767555636342640882451413466830548697093190056317708904959816079308003649084032557645621404524821393601194680278957515595356421622808825405624626393951325824022171842423777154162770372277258869757539206005387136218780276875004960260173472512088730916141859364989507873548801097248177086537292398834724138217967184966034711448795130679835126124637206445945884606767039302853542145974316840139784514338518288542652875526448507931298825396978577012491073633194391396288972288652863634497890682367230449834682650115679541696032545010392678334150090794751903070668486795266390987006599740763187229760666754569265486301118076988572458714299438716838034067086267835704681229869545352693184006880351676661430944522947041627464864902014334207865037669619182171709801906578962333788137567609057338908558088190254885492481968827144922311564678220102877225979353481947903430182108041798334457153895445269614986665773810483863736566002471045793758088658333992522813731690061742718568434966583138239258647701747357684884162094292331036694341472375979026431845847113784684253418600567031988746120768511274966309576556686780056347135746493711256749436862236937683489859902089274158915509178158426483414719915347435054436836596865685630354892173301595173282466443916294876943991994572794224929462780307844424430775065606913877142001510024345402882718079641912892130888370236048600577671705618851977640182279336570029646009461401140036581624730876405353152869034006629202737334288886806903397266910732122238775861139059255575496589965754720418460418368653393088042779473340703129509994926642654100281021669721571862289103354238806883806873868846058058330345303663890818772720847822444811717500806605744936532195766495561158996302368160315544588436673988826242432141882815341248915863285744070026955011880551911840332890236301967663480263734705726432874221393985428935474898271691907730690748142158867911599771594123350723507912133065472609823876436199442482652061160475198892898693507318565513414160804736247374733032780559114087225613737198474096817981284034250089204413560236187064059806489864604930184554530516507811422817030562617299895282571740861572644483756141017262407311510705641035730025810632496965000584105255414708939380665265541269886735688671533841087252743849653004607022436331749368533081162391539563152056412242020097559436135592791219777612143027266750612707150461899550807345319689674757230311314743221769487273926743759259364999602531308595457869074475768949355324816456561267992427559031991982294621183149459279834575835478078278835301395380980689172995669839790050406096389351284788542463582260965629886664382772929734573003259737068825274543065630866024925012114794617003870732045056790468579534402777029870953090295353352022118347364566614582985760228480388976896892806566700327450627404033130244523314630051094834172043356026362597104362369394765305602423993874253121734684391271253852247621426542201656013161013050490279096568529111180950368466339508684115699435852587969029814990196959263250427282358827542998965840048031497352322113299140845857446869401782508390553119395654946987662646186485113489427887772489601774048528584193436793953809969280571201733203112742538765523251656010542579322126358880456722599387149416836434772658885729949845848649573197918237621796967946752506972709758670979441825842589806974155875085652092059597863051059310295165015688219739259612610347029544972539967369806312822875501141788991426846895507354406346387101387160045518805870420609770795121053278325482359399093057510601393432571432214689881816214669123736247899054779847829691627894605695405403738179293119583423807144170452209447888400070294579150473072641909518254710204027525880188614921821797665334264435748380441521054264712148239326367204630618276923248837821662185462208357484537213113726964734239618103724333986837142121173912154332946503352588532101685005901743013823863579054332030400754090794495726914632136907984114570607573679972603505750102930465785311285845164933251208699901385997088118060381451866240187218734987389368046263684964123996026580459014719445116263464120201585823739452992212827900245133794474319069223425019181643865944488082117790618101140382632780968536768456955149912017739626864179172229568787789763163117768730143437925053642244466254709364878888759108581858347936022614277100268205618304327516863577416857392313059445212203621080412260974512550287450479731123794222285044880430979792776248089560389381843893747088412053902813770812356811320418910124864156508610493653482564278894034973060888507119473360372818588300467869525919585182386819275751669097913964823853031420563520635585805587942913882023829314169508666646749624803334161641258170921567583632424953536968048377939657600196133326140248191751256893510274865656407605224919144094777941189127350284821094537172955642517501230315059418842399399445090221971594743453118112418155579823872321896432013616385348007885199785311899519493132792851091346721473263317225013977603500804189821094895764223921010517536527160166202507872601230338863884608850827578507365087341536838885203585801580212860266773155813072416809348113438119705463553406788417277262913744783718592231538278376760013441939369053237626865663485929333501623936419980489550425546101789415935023682138993110649444262573014020920414185353520142893256274238748305469808916967403240917637827506211119436688383838831666426521230711836367793116396497292417430533957005965144866256828798434560835659770737934153712679570676729822799709336143185068587941468285614221595312302171528837806501545902127261188048370943004900545995137611351135090175601443528642889078758477863311041622643803033234767614537614289091303675724734704837368999314379984098282755815691597812978145988351535814704757624201172710288080745512226044634752790312658855677121738606315243934332822665883088957333055090210857509620427511697752826170309251885614933236755694497658503501332366098498911795304981364526668798708229687667237394198120517358434661815927554567349429731759184507102403981719542912507828351820777939296280088773728780022480905366199073858957587081608999112642572302655121570601149511600816836382401600952357398075124703712076219405952257562862309420688097109820689457211111655430408216382390987443724168800910528780494200083511175954558233570463865248771705405232070099098930400743170300455683381665827809839138375152488227378838767348828465736271158977085927457295827759806300798638126276582049443715250304258874468741432893142950557056648394411745002116634008959077246163508295660170832512789100986040637959796054155004470799229849763662199788293060878888587018072227112763288834903414599036822922557418063087467721823531204456703900977192053631754282917942164310886713965135863869418560639339657370476220382398282402522791933184424280840882253595224871541164358168332851842964093681561486733415146326861367237575169651337038701008039165086792301375169006408438322976412411337154924466161313902853561937247141458310894292421437249968046115005496810177105257586308257315458281351202609064315022677280091656735556791850168290240531818349623653404307444588535408075034863811135839213008893720105249523618781820415409071557043998156060751434180411573414987335538790764655635262499400451466451948176287844033880696689310243943493117133022464077238127824883049528523883587097409487158539156165951661912841240636505637248856956388651428405437888617761540582911405678965516875624598520967041528046068922480299132063248508949609842175667084766450628111251283408403226477379107573842797855370574634266932492101576845988198608903606730977120300201488313201466997693022176191410007159127703266903637974652996418768803089022879790491118333354506880652510108184436759705982084152954933860293357724368372357804982782632112524503978081332340036184188984065729443940783477813116336587482192417425339003941341197062544744380187437952410943792450175362664214797938927361880001493341798939117076918482007547441123822228671790312614538418417620818214900078483522735239723399644239792759802541397550390851813246715094500407725805695021778992291353017964383618950694776452456729554111569468315885733427162501097994671929722286820360080723937779860059387853971788809186447423596854144724145001265117694495829526759597611591444303579534970006406090914499851906214322818629148668584420317161021224557123775494949276628545439944826274978897334849566169188054742290344636509522318194899063191919577634015511791863816666739793021761755427428872752795644880665604062998538969189937024166019346388293539689498119770927535196318119396927785413843122978066810794890966044995132765548338286533722154323888494355575887007142264729142472109021710788289855472170335208596222036744241385772283116154546867033688398135140543494099080326947670820253869821208006084269830838454971846348133680119796610369346525781406610748930714651972754754555061214351948590131165895568658241755414213695803988332595686521176011362266406017180402849085871028286958095444325446853367693596885179811679673788052472447667168713538221147169543364404032602460636020908921746595614969978923349729604279112212902820010911652323754943853678809926499756896683956283383819874218073989218250519948171236169373259186787370555072829971699913018437397141258669633875303959753551453307738626268040674716034808384775032731172029411278735658771527646496599162852405068107983309572891725072757623463752135768581028156230809570538206507843083582229770542361028456183572668710294890150716788471510911683856048190526192781858165070080007956070140125194012174923367507731589915698628160393159826647123292018764121483507728053322305987620782792756957604182694108496431673729818935439008226174679588628598199433947414831362793528333465395684770167822515735262301982966986212260948144583942011522278076304984180897061944939577231932183425253806356439678489223744827017309091813822888921066595026402128642446452426872518440830023264865026404644730665660080157980044167830055705945052605666684325331300418299462024506063674334812843697960938628111489620924209134222622167316698783995477547720805976094540683873465788430304998185303226009002939795139840008303108255732795499763256950084834885014230707548924050263513045959807549142693180219592549878618062163669484581989411618179604413129315414515731308677676057216176717033121049570328352928484816060549969640322124379126589958311519377595286298200583926502764680804408506077726142475398493676182109921059605238119607939919575203564777266346939004074222689405829633396173702499405327769135923424673750088660461541945474373347575055248155523187579486081135019503892870177298771730307197192933582250805767112226776402090184397637557265201865941197044077068879048909274007632188631332761278158747916798954062083101897197369595063239752041993672039785070073004347671611613445549309883826806215975767244106711721561048749844030025619219768487703776793821923826103943924720961503200144376744687770515768377739215353923567573527233074715259303125876788389976920707653105674650986294819458211096665294259235120600849322687932659155735788528205940667808177242678076450587670156529597400700394888173361732517155513429964624723970505515200736539689114545001875812886295353303418070845503994669218518180986893781623437505825286694995896323405271436745289840373530770670910629183359571586979889607537682986838071681533662025766555134804640479004721415736082544302562934590556219601532237428058095340916123801920940083844481642058847880593639306521876665349615041309136207739416431687914062376889751660151906327872697904929224556641486832068011997662609404381376846998385416324182006550690197214599454162315625517786111233107598018562171009150583131643822925506048216870203902694660107743989640333570529543704248448689700576581547351255789797849110806265085362049918077497346923141957564983626450416150971640207264906190590552761177137563120282464982330129919796201427267794868171938876724830488283158400881634646220190402366639511168347624781176663665402770626077913720301441138013286357820764614757240736299378497083673607706476606630506492466677494251513972135672521904711261974718577877125338819578447541758335720045942992997729658891267511432016085610047077305556424451582108669577627012665015000127652464928946264989990656375558822829540758822655333869957119641764829682559736096737997353005228824020845317737694675597580206363008283779478410769278756727177435400606369100741489619373611339038606037206647010328714461990651905812796629678319801923272360432396727587455087211360917799168609240873548233775276586044818962523782300507425044231471630141327505067497376536457818978098518945662686088321101997288786151326381790925364185540925115391589799849446726762183834936061517254922824083473128330454696929992626269435292695011360041217100186565604694628993854348769713276746982511851582077398096213059326241038746314150004802695971598682343397170917136981920144677216668390599851674920398825025041856772342859670573521572226984967333283028553550521315490841419993270441989434995278609879798399932843139525744639247259215710819942213638194682944955894675973787453822040651660756438135031319801311185335616082782370552011937645032960187163425837439670508566567426763182550070448654245194569707604831379746919318574277832963681014241087091880194462406746957560221579915793824816155802797814918457524187255918220420842611337685128996219942683167140616709635475305792197000101312600166088087044188742998784066279598581833796611857074371481849916596604722018853777356025190219302463597663344023151684235949627534488756151092069322930924151248476984281580711064672216399004192241026623448173854640575111585949379053649925627869020489651129352714618280089982215778335726434517217031331561948209147955969357637956100396875305010541067539764323748085324254091092292856324839214099090178643000731967947223939035459047291391945043033855887001973184203888169446514515029537280776376646153117394568832549041941608478241557169574653227058801500502791888832700310713546370670043252730901986187060082936649012087580173048795072727987273961776755163302193328363490141040850424584698312120306334196055895715219756098419394439379835085373659371606320156346071915073998562350499934009146413562961931393950454753333466477523759495016850110362777162674803628311118809444732056197341280781443131863522284310392899512160903838564323529317518679652706319053231805249761726947653995926130635578451814030466547306322512880265212125662305755568384330795171654968646270401479570979353123607198099789864712020417841933496870568216518052531779887185662072767615963227612542536445318576928858244865968718408838222676144637911221145308016564176936663421724456853654891956816359620857965185102551105592007492560507198917271602243985487488542793434738504536875836742987333517967890564581564170915878149970310067352960773629581758696210959616887870243466215188122915148527737991978012112330953609882162893737883999099421334870532336399406859944616130865408447354616034103180898399584460454805695059243680302687000061436764121936488303843769815309195312837838011598521841794122697967175392941597589341694070561197210053066053176414299594696422938804854723519866805618340190160882790337429102047921955911172482735202746793622074572875167089938802735497626120340990441415935114553376154765999192247187802611118727854982998762455997455271626491305041201255393233189258933408674364062077623861298464116348577356658879237088907715496117436177673114508790124746447846018323951408501736057907327006419754269149616199428971072644831467030174199431048976019556724934608785104784089112813532894409334561639206541462844008798113302305240368038446527519498933721914820557260478808582392172389439234556732757891305750473715513185466779448095314579748596717711463554430029550671069519318267366664875615671584328894297350418155583202442661479067477393310473834618547760346244870380377005671629804163035234518372540580433728010001911875403089580005921807101259113054965377457405318120181436630328249583233934068081283468971704039043701721104771252360973299698172820124823104048771115927173475339686699037298739585267064395397081599730226297567262638066886886211496334608405486096230320771729135909003620448493380685266481603028047325122096336453701303711563798602830667910788253974073509599200213841664990387749233115834203238762605835369687989640738300571181991850558038087994576702211987951502999325460287922850984693882099958141969000299134657704550856101745632851450634026128755531101135938709514498551027068643879523779504699902442155471125810264733095905806222878648595301529192344216712723551159252216026315871303501749046354691472976050372943199580100321635280123261935137681707852492660873887847124194762869250430523117692271806726069050456406714704499064686546200726426675980712807146555792400620725133843959163394111534757746771869145304961828020112901445832850538139698934518165515732857574383869554936635708917131823991985325446132002557484612662952805487263133882298055269952876047699636351948678289019553370221008411361740713648512228689246098898005384029725258070284948498462304227807293821240872206386005862577608628129849696708471509071098011081948632724890657974337010298984696003808391734332711688626957109000073991027201062694435040306479151959448094995764455460853777533008694236281331684180595007971896849438974620578541559133992960937950826056888238409125393805206062811530927721729740379194702762601075299813326835147100821818251563656627665476181336002845704858361258736149547474571084235940395715307724909747797980373817451628686657333805124111186143284868693792325103272957751453522633371676177513357438741580225738144914556185169218540808755392763510757942056390293554734935489604170673528865885152714818231291854249766849741107937866554683316020338707391640420383094429942349610459827325090573117079351702725495188100034959030105233845383338582556812864012293086201179524678205276970185673746799824166009761047777799382164526896322266516806535361015075662077267190542858461088099449161810584484249842996520210629750846310052589071733200844683910083379535238954836817712580425262934673621577462013903090311742374038783150772098659814629527610912951489076291283222729514768047294304979133115532407249173561826304761355147455440511470040014876861539303512527924126189248415306776178856697309082657683558354975463663572220387614978258352596353084922933243611187074263904760453110444744737257437963286258773626636173293608292502375491170569034669058942805768970075110281776559485192142118075640574612789266220167403737952868309668002461584766153968315761843422098892608950685569725790999816615905073390032321822968055456511423866754036582315810421241567835384825479409388774174720000269452354557456677003827483032708855477462697583165608948491639948853516417480181770400640110076284902462615239030114262872687505128105474120306749156470845445974641281276418445534381765535248889376248909487151998919527023520608195586040558321889731670580011908080962640646623392463521715917389288142406620504295736773527521607074360818780825007623208284651673676767831125864463726218331375356192699763433811355791699854907923262720563079914795577931836521001056057304591703797679618455352841798665728395751724504191722068268129561906768169806349642258063316490219202243740291940417555174658544554053361937274221443396600868680788142169982222729231036793588988882063451671012931538048871521688959947148956953549479148588628275610411036824238438800219639804705078265136100571934862384703844990496801485800366417406808346775255804475607858562579382481912298743532701534700421656998249689410142777304685168273979231271751662062841574625881138697069963403683447550050937381747145862011622056469173907176731372779173710324688028416405111453443636651687292608944781446319680436156411241350338334512134670775536986750791434858910132504866971446604319609770441110414572980432976597291720942602575136917253844826033136776385678090122888204325975004574673305581479534797622301743624399941830054148311562466613001520815098411351207899813070910324850572500260595354646452411892266406883703453938088959225066791518129862090039457358894476899022538604820569391541066451463805982290943999925325378775830005196213474578589390933379809500280516116441329259075215925485624959086414472417525849188410158844375913639178250744140593695209617238675120945227330947452517313461237530544997181885075738544753065808586735717490892883138594853411083928953582655098419102932893033449620342762966887029541397078112977215512090120117910783673541475701295015868556595864541741478490022642996273064225460581421667156431724440517841652235783359441463469881094338102097768711516959755892963802939315825262053028386466826520088816420749913116067598019889011314361074858353131398328278989326048517507232711189148369406563293934540185554527182594979699355542135784304064915105016704146968939374370208685698519216014164245832490276637634922698352857066437199439110681694175134304802604389595063284201692659904371391675444692311730472902729231528458869219284141332945088546341268361929353146733372305874528633996171439071534095898853566113889650933386962549861091841707521847041544751390663401865651968047764096609761216872552226778287118709996899299791265661989783897290374761699615145785274775303965710766575170127603554518882991637169176847928929209763304632136372399145403293572972625786128449774418454690740423019858581332695115341032955070382727215264388165109426557888614035168566096285968870697046408940111978110035242245121943629219669319989997518578200482177843675467754660679573684915876794927161211873372075469862975188578558056038074754410549703565080323294076451529866569010634396568095764595280772781317629618845826485713715548479232063572401064523005817465837379988095346277881127644624652941997711355412633032730221945124647754695831463983643516795725436511225413769696264042385102189716284416011968555266908632515566255071054892279863842625360102093507487824328213858257811823853061642676069784304035020493320764025696610824278210835140893734376376294159282615340580772315036036109574600384245374865790201788557568326587470836481047346643595975287074651674577331895515335420288526451231263949107895925440101372938575999265781085183915541180556742611582676419701834426366607382050584205975594994921172823850008483276487596511952279067947919569917868933176725636292405900519746416109972059799281606361529780061950570803106507886784173211898076777546343932766692275460924732742277903951930496776497602691994961043746931549703300839103277491522204990917832515294800871901830845224848688008884309292989920810258052028419696666376187150457660941950472585290800450322499854841379518926116092092880399708879173917073557158565558940083908924203572929894271964318449593434174789662441364351473487198220915075684777685804531367313494504931299605612047515542380871727003448323088230705302124545348415103531846024815764006399591680123527337410909714633442829540093027632956013116332419889418035538428018794362765843348608909795536757697337978713745526578407337888359465712897182131566432389015450334406780456494960369225611320050235107244576158309849597710226072793934525292845636007062652119580011844004344056259938208532082009251356828469351771631048918743302429249675078437693253290533463806690869884885524257752107823268130577987119665000071018641461891038013184593347820170677422304292820446179967778425001474779959141182167558120650784065001762360511175024000528380202830968869994527240473696630184797875034645370108225595200849122331994479249224064522228335780778482948924425897752838930601026917895697437453133807628096050116234483247143500625284419157565826072821802953442615981436097076772260887844797218027078263553348425390393805874008176520482389613546489469184674056274868387775653243854562762955769133938069094191172101900354058187366905304328818741577312189151474272844416932347830352692459246615014049241535380688754138874295199052124593158015862611937583576626045423217021411428582756604059743492439519297696586782137449659270865233132400199582320759514887603254608921537732658952751662006443429074212118750486173315127392098940565559397521412744489867316677984237252973056034649226256881168621543344111172901158187229894590572638073686546364148717813578936097086994653278200468461495024350157521091938873600628784025621725209964189649686120452919024900384386634679959879815968660131338532502114673776061989921934639063752755172179993943763505874273677097860228834788717848230829445043916529453427644864780625325351365546915915576135203401011143235001747390342804820505776078587938201306470707130327712256416196630077097043762776315570467300481671927843653895142853888995070193014868108676164898562336547277446670953679593243975416646658376796865737813045570084617599740121091523518938639104480665054180882803356221308841521194957153317487604980955133705181131120685561162536829472054490403839544515779465211764824513080118487311038744552691908992523840030881769032370479919964969512897387524065114311128897243721960958076988282841211644139178830082132021035250038574595709243608998218038072485844739122998053202191117464408823918315738183681056899894535150109002958061316705571030121094484003327016391314760914646188680338806029680003732127630603165196231916795012847332427692078345933384773932044619859806906499945944950611371108743895530197453995398396762664028983529280031794426326821335183656532969123748488297994911937797748259841090830269648814068151158308074779943546099154362343122851224664460674353725077995835684464359770838105164681677624869473448201625385938264506700821425526079941759175893584175217745248341507585735932122907369940108075701077745377511550129455315516106393954627816675073723988810911144098344005230528344251194835067382201484034692361973926772130135814808893803292364640440885244244262496845179977559208526208416687907868412182038337921133480009043469147925886697818597437751312472507180412381593867562287729171298731168208739837257067501056190569411144512439554572449728631124378022929274973401735508832058472487921491145322411058312056104885554979440903056628740484816996673060180609911857818772179899653820906809461222014632139195545159144964011235632471300191969336419120821865871352736046865794397337108589957608591377977130716257267692670627759260547138186031056926957435432166144688797696041472521255897982623342635843801822372551991307375123535030593411649057189953399432632670788148679797624578850287983204157355944264937504775049830649505022917541207308306814750870406658102693834419462800361024210841529380151343032630378467838332043227044158363557970947712619320312467544849473858603977122950917714106323745063041938517012849961784865809548622059421837167731079297134343582490187027261800542359555230645448504730308449035602221205240700685299756052576001944645465321962419024647665979837428269947821456819077441436726809066506554511128336071724449417144780562816498934757615625677145558488529040696885288253231400177486981212656707952558034549636579585921548859741257599842539161544179777092568012690354152868193044724100294967395890187787479670817252240663521075984509422024336712863575388342786620628930351781518325693380356226351718110468436050827622476874300618320165215015639347064171549188480604095811699619598871316759515501586669206836256017965655614629098374256412802953651285816213031265518179699628147685038033543103767356816661914775451299050183773642092514338073198280503116444613606106440316892836471124415634387451884776506078530009660151185470571402876889545131940999357833699144096295161850190000935146213902767308251592885156587848969186378086400722976827207371997955879751641175514098363456029852504159771441083318661396342179524087107756317045880807846008414169532200708597609479929749458801988120698147667627268152601923829408472945488112194743929599131859736264016797151619244057068360818915521618044768424773990749380852715675628222775183956787049255152538889781871959108207889642179578740462527631613020038099614387955390842531378662289495901808988534172549969749475605436029698552013217083935240148696509018862171690982932724467626575485052422427429981657552962610375912156239560803365651723844165082646107870550146178005280905606737768718220533271690014087900462026681286905174266738820289074770193464873310395603917869661831075535110883270618806294803963545573521970995540937674507784145138161312463601275213146279414136404327974243120254201054367822296712668035154489895147599063048422023184701698585949584213992120969608945034908720842875913728547984969070716462688465108790381753627242349969654840228541564635275284411854859736655886930300422456872436579330207421132640630560590147909300220150570440162131345942428719096881739681886600095679964301048210670691392315469737944610159085869527362663216626503861260196621661524995504617916348922120570811099534141963704659247459091398895441759283125423741264837121055276061513260896523956323110273515129319469659353030462695274468717150571390164881087940798454547856842216549601513603934232664082234579790820073740059513286047526229074382117544904771423823619289417042990128246043648139732780530223483987864121605022176813298716466512426882123284436427219754007980360592525725369170578496897194003990647324071042580693713039807611824267699373181418049593477272558493104313067091746793939309355389837940182776474615930382547411969718208322733834000329808426741935372953028487471254529441803924267235866681047916585877357272597289731929000609787772012540540583137617363902423972704069471488166343729268197093834753751013489155464277509245590077828504991560598422378754759184713798723746519091579605259683989608655833814900153665666710094479172513327024554845235410421821189653295654674090893030210130649226212298839210118391333931627571810678044217061749877790322042987172258560232534467393008613745585030553358792397472076977384089404538780077944418502310594107346754115380607802180342545889778155944782426052338922832901989227663997196487554828754442674340859691682996259120749141583896786485916296454259210024866800645542730048122247705541450722253059905027427832991794773453861134308466594956912005772632401749349857621514758762195654659326592884189993190788509972989592585297865047598427481556234493044687510358953397182093114749960510532161459909850288793874871121596039295533687562207112968835041173562144640326056242546017318002310463397982396101383331971296144916113912103591602339122447333203791296946116296267479774872596205599439052821776262900017993482732798769991238966225563377542508256516899679664412462560814510651631964469485842955547567226462779375283068541330947858270812507976005583792213668089310301771366683014457881134459551863325393908389166355452936890023422325911757557228775343437431454896800639074721761026744153146911567742521039458440321876675088022014029933285110641141847100519919603047095912259112773252549360784164994641522850574867990622358704256400755070480221955649448380184731321308372624758442562625758289631035882891323659382650399398311582236908617216900153071481225698355002497415135081759565895220235485273586192422396712869666045527562893205960457798566160697375871854218046040393994058563738389229161925737187153106724942517671311898901952376821093140521563785796478534584158741384805602144542204158704385876638606576557495769927063868092960650355964132055987278553573916981859013429845954368047908703847501934726682307964330517108083858998352092316268168666105704740199137112099798205335146347478139331973669660943983296495880314914041024456624184576057174772445186264462366565209319989521415993003075228168621652165846285946870036447685329093658360741868285500743440789335922125253240264038437328353944556868336597740863587214718617045433644573270419455663627939344955025601157389495997340774673112761315837086290599377298679714952633766423054424643730693607071739834532183868800304133670258805679906569063421935139638366314427096098192524620245746938507776819050395926826342206462196643526169315035046992673829798702922020019974730459010270644607023181577057837452633801974274967021432643615298649755377758294827835522732571097863923520887275989675564360641924969870521980630730283672680490260052824969616268421268897376615557489953233461745159329740512789169654041233143851276089514315765319704306598553811033203432252915462913830209507946802653482277873143904224288732883613255839536605195490430905876755667578271145111636925855223633013585513243805478700172994737376372028793645472646057024025125388712955149064851546001531679239434264215944220102555114801414808970482888557366284336907518537406340489124444220281723139158940628282185161326646452634357230742932463946892212522867461932620450673845933286928959510877713130546156337282753572142036648648274567227280405384649866917103475887860693032041301095486715063914064021287883327958132823944220095709199895475123046128340525151936087149636282717222017988316764588870528963097794400544507845399458429268584683520230590695487003429956800306790758357688564137078525048673727541720649223441673140143790835398344370554912732969265281531507058066016948863374929994508190646333144729266389272217899573768330490771685308705156439830067967080881824731746959089612458603533973446166999636533786129943019043258082307561374780966287025237923748337792144268750318346364108711792082829129005622058496543535308966524886059221883101411262450516520250148227982924333423796326971192527612318645724645456035712560649964600094714093708658866326672201592647260302916931974570240271816209412650028711065044182369509492331385889160423425377809157280314790092438807914600144537793782277419242522617436156843924264785929179108611302261632042002462321479109829127393377225434477740037647805391252236953233047538385277325915375978574044846353645303380882792489640138208899674060663473277879602568672969816673055083420872433860977470540902487025216610434359007980077866660194012586668197549457791455788989429435715307171996516395840138644571214832419020720621079204422444126097295800143945345622266986486928441737686709625130619115328820901879325101463965147567095361168807561568032195122751157807673672057417903380861982835859168333566980857731176081606806086925719597123990510663090523557416577180113970972575472862794356364758074006770786139090208500229665019610060537896199388822408316206227231588202082806864317835932420594295158386741319314000510766047050634812566801948276078946036131152572874064095608958276479124384457199170853334818942435680314169818222959010957810092382623081660201144751654236346222789019735394217731511971150191551439164091167163795287427901900451457788924993388273807148782484750936883607497883184583153281613337716362847253586339983616979685228345223639525932765459002613195598844647672841853835782389281672596211089073067979125497702577629857572488786696902198026954944647631828765438470449564212327101421351016228730637353473563504861529153417046706025900575591180457359747543190954605155127490970311324426724567990160927245953661486793982172526235652754039482382525366739071860352934168422642094166560352655244701885393689168403864940793567610682902964329000113872537878965322775590018174226514765180350980519798710413243802719070128872870389305893662094986935723842242280990037281699761395149927761161945240784425888208281536097996600064167495699622382458544170663940854998923701942471173766942200519163190497106280972963348441766821392988299229762696872699858020034574420605675706389945621758409705472153338274426173706732508977922833636491434511903905544447684737388625867263635118236797397198949516455529945496385427344700156852139761112297269968917275306405830789705020538204039140740396495875293237953373837568835641341052325270977038772212497508415286626117174243914094845373985314736025593508510379785810747697311845213561901431863827535605685423068650152217479349034076700216920615343790028157101826830691034349306732254332042700849923496462368981549686458979773205960206710891498795144310844230078045704517389285230154368694721374535847758305132020355162286348422961529274014824369849197543456025136981172395502847825652572207309137663475008891488588538480973017690537931277543237911166328401958392513366549585511970670850663061624410884439219006113041679443335188949186729140959732824870776473407371795977315045779300007998893919809509416281214856170341831323910380140027088437116370707205678370623802188366666222221691232302282911759681765354789513827890589657203516178048154065434447724806656311145825832203704136006604574213971751655866975882291489092439221981744245707662549468339823355538878553139500450834622264590144438033502614843206670681361621366717710306195997273314489748798517852464985870077564965243813431349206768614805441023589473297142506393267614512415134848749097259434828157068064484009282612839265646666393130266791011687791714356914467397357700852688995511699043881407224258720331822807128438561178622138722734686220529335052423417219449854196835973810643037324777959062459844986639751425723917450198911714137381537698818754639123688694725602366595477981944736292181013615263873053738799113693347365970292215129357377476682691571194221977271606322460454119102041104712786160541057869266713660857016354177902516759999541720390663068971777226559891688613935566679463318610890121865173432610124624866199710055385655663941822423474129265401314345031598608512992628416680700141663332146397474758293683294116234031842571157945866225407243220020543771707865471173004996839747912704926935819161024063427093632216214809529009157552808239048213803890270982843848254521812591963082495574250295004305138349551171780177173463370693095639173498991388016812719105466535902378210104386799999548328925346808052552255987171813417836133508288247571896011167584762333327761649751409103038352366282384336155791164943120453322072458994839750662590347094244918021321487392056561522050572312146553384449864589887735306559972580854478240177745140398971636909000973700794029005056163369225219814272043738522623319866148676008737442293663769533864127262773675400828261370255532037378699239351599602311846982044860580855128489355021968011974980086482987406698768371600965275993524268477685907775414102113485822317466767600480784689692908556739365487189051811435677362967127223032297840905595801712474584165623165545378921119490886387112451410381731377965549305953601958300471662594964002650589893418031897047960374027648167839214000692517703991483812769627009164923922558109007793470442992612893098297804369754196463105940540032074987109805293156321423230069758721596516412241536910095142419606374297185942659940328260277200384589626413179770035235789545267964937413534061777183993820200210405458770764095760642685871247401754985431095598456679436372562928556281318794776393176866792419943313250300163376831028846386793581501258183488493847719329796619584715250589906290342467469402918679145106985105909164875669515033355233825040493410260532389318659263704490827771457392735077323971891366222795153188973350946645589665427793643345345653372764099644721914319981682857802738870325784964766829076782581678582389514697946579169851128176387400489407611963064774654526073690628844174405692177142061026509976243717368073061313938970819115900177824978888938117124722156910479285009380019353857430865059029233411781706824158993347525622324447736545251037860282726711318166222080282260490214899159672987289315153827546601193096647158465244936348710833455751274751506495754288815739604570288311027614620855961529417855291344350413882225977728884038567785313344073868952996139671254180625999964504525798886579121835437644104066425190989888471939230026023504378885843555454901657675257083793999826181675468585086835533127144087161831619764662639174437446849503878900252593714949006467694204240019792063175550242989919960235688918518548638924659253544746641885639572037147933806128444444239973374886767888539639785231351487169376618782383383823713028037189982124622309505111418267425256387953887320221048796825507311754427301039431701740235433056305624910038218451697864872030707696584033271240591482287432746378082170903627025259500774249407840750565610685927751269314135314671791429426561708639714015949748432303815883145637348983464245142790752694208944933690761534623803912265751033144786781187175071782073133407455854992671231578311167759432656345117861200823032947203457446970465231298898169212401967399236741012106262332490861233790327903611918050667840880330941498081897050340998266317148740236088680391826675540345310103093615523131806559953064419106216456844551581056206040241810650594816572506666835973315696111612710483998379401750287862275251957750692793451398435155905765659007357404252925661468278589596030597974893526593979838772501190231511290056288115999909028760548455515979017544392958147073829714055015878628237296067056314008287474134659972742526539722579062248590181799167689188473885616822204613589209121163661685714948062723625711784406396860126189055901158524112499680698666954111382417546485784953467138238038665522149955977531104492081705548387369018823158424054441150200219025630457320281309995237141435801893405674613567129709069034160172215147104766879015264753302320464481405342969467980959748384148445275126053093880804999502807379293138959691712175710418835965584334382263341281064901041509337195874157637174183320069657527755121548744920435568387643725349894696314622294955714960007639083470470804275950812822543151021426126580434122813700414525568646050936475271517286750937201023827894197400729402616333118863368246141600608416281453267571409933467100501902154758512076264899124622967847202351561094640180009420379866026501309600635634808881112168844293809885125271234582694095693895463195807016444547933327316180965452231076940542848267774442815659141963857663366054585267500646804913353480941263189570707387234415787176524131695249154474977198499714523732297321615691842210043634642963411706085376101896822494543074014117961605266285436986111847451503385052864214803732668882424358635611409928713692493224494367129739202170270068465396327568902457445922529193788596331486853495278027222493716477215956855786390587133918661317808634027841418198656534729120322055064164746636838361321949447933277460605389789904304727110856540454382182452958829238577202782989811052914192358534351290019799194501884607859908831871048519635658947928374797376715517207687399968661486937210108955795545633050733899067065210341982710205234814513327186268326358706292893055801942942255904314867993337101925918699425840086059280948330527425932186536096150178896124431725587074955047837955321624799962294321926428628875804864065963288940683653669098707559356902835356946941974548082044778018889272832704032612243027057539842777326362375675675079684839932403667627139165648096674879714335870204605350599375767824702810800318620037886176903518024874485527427584496721575429417201583346993816298590681385304428949149877217261863194481607753952994246261385755091427940044880863507691217556127209685825013655439133305178961654156901033876926499910340931552313720701886343841735584807782547220514980328994116748076400454269796783579247184406374072174491217385398870917194656791920358911309327483139828217137129748179482610523504509235603602072810958212324413181631062397520123524457102095335897598953508220179189279035036305467327059892659262240279003108777242699462702455850481424298126332002959918703854004606581770628260908091519427085419299713014889195397488536516251521489897782886634066540169004346714340089751145207215461856931443731193124254104313468947355872284737337416742144123054453418969428586152786970483405670277172354995337858759245550112014190802321375007540078687151604861175233700556666184976288170598360405902449370785421037973126221385993979388702480024824851088702455983974825362464480765882599436628946639048354992509769471331759851533985709734546532729009417834870131237868167703039469472739597911416149491553992818562487145284485170599052295130084177938718444105394360330290152371845319859473526507693957395864657494101439050285838620285712633362772308254331703155434858408201862797685188171357242672612527188278223717782132009758970801925356311081872785851867325147483879225030265838246288618626401886772941947523945812155850711475081167917776697458027703543314239944989895787208130018312698834906930129794824608539283601710281810617060859762120391037453619873317713842954400382270531081224390806785215615616889948085897101744314665260426444435648007116514725486821940166051946308578014761336303448089277727737819953392407579203096425982932246444592628069969136836394541940348263310225616504542217175052994898133399103577132263905302439573117551043078928755883297589490149080443713283882528146816152874174529206671738462977458164991263371840860739387427154777971849596220269602365327611515378937366108384103645758869017658834721208523246634631319771835125791258260120889002046522768732107585566128814240804219233123251175520786747291248524060040080557458700938355702776722116848486101190384111255031879373735200562411091032683969020888309050037218661351168011740303379326881724785933638022578924133085552419896592939887637360888426435041708600333754135470494931510119331635693114734287478121822604947220826567569063173949663928084027144845702496097036825987343495295633805217804069214761695521687455694955586315386431871841528435155075469615221018104986934143857726928455085003779567357122514928419503948439860769656407535839776545270670672948325834505143275040037141542025077810503694867802483523013847672038802382770332912783684726280193535424819738766866971829470249533035455132165722871948633866537886976779593082374098306666395440073571283050578977693060017831699696317738226815926079878413433898064023084144199775933083773460087314491937378115525492797157999521056880994180173732752914782079565795591334540283812819046024141861063527034620899256482601057355225845522358578313108240831855763048767275519361633168421569528952362368174851600864271882275643540316039796504115172590400054219856943953435613016317522089660848635658734516985740606561214605689145537476508982459216920725083882627960459355564694612339707402370407708675904654632268955294659265818003005562973612294128814091170101573406506692213721629190309235465037400467765368997061256439491402180645853445946778684804991699243252390004033774620811965410266807081758210367610335955747161015852733750209945352479324854300051256195465944036003590797312571096462130823683641756749651645045930340100879039668587117996274656327259727506375352537230154537517545574747708030716266009723720342896292149202285176615005249478391976269621548779140339517942674377246750568521825990696000735615266811973510907058521231663578226906686682806993603161387092202772592050885987971865486021732532228705770750548365671337783829220730880212127043455233408970208703120077684815938014493796797991773746867071957127171711943503603707562396958713748659036349948946752248480566276800291537339215971646539171957741165760977240752453064624304378543783079034244795969035152182220791498847186042817098723579150400302814176724302379703626142857199642559398390925313862331929058452200414690847496478132553922537854040778165849429421204642271311224831526950329536620778332380293202252547038451655888502833870188595847111010318632994343832636277775840175328968667985054664564980604771787518800803262379413053087557930614445931947767014125052713010140179251082361760892797459236587762682205468731648734391453864536360005427458589967031868680793096254242030272332503088525905260056408716911555149541433134823934577885477392383605223578049866911715658380165847599648657032345830586485262231425985320989267232779076569679112976561582044953144338122242837320182364014374364212007095604951375391394144549546842401620992298310230273604021351951421355981407864553818027991427658600794028481061065723586511633113456477332674202012463530048439741123456213851993730915597731491530440710898045779803061882235522651005564619398428362468859787173020290309095539682413903708812985369927840792066615866606697780093963995055106020726328243766231992375031160511704213208402713655693065678171205573710383522635413021907723197131316756868975688731444764878576959498282187581751436249891588653472731594247894644112436671244914985323616070998460354807408720485318532100916192975184321987445807353681151674023032572945807511679251374084234641950551832089171838408153518828594200547105744765194569767206893123508667276061024029598171638582613413765063371569620872912921982847397278407284016409638554491235598986833830867029481306488079680033111181984544410781335088360842849518939325132216558501256603302302748239880623211511690407103326692293353712288659155705472219312878484162837513125419557260102027419472388029422106518906336384950163544711088345860228694056495110172356414992590570456028947961073994767522101392397137879058186838489004158841491823450344133148771449787887631937867025085338654028721737877771665048817586842319492395807445985522860724095035350565937106065733252291812618110707524340100417975933649534650242119771852696352340803584280032388660749306364234290537507937651656218621241113051314197485947826724080800998990239603053676238733261057120749357171380054171435678737912809801386869169315018703867540179579878809097891080067160777072628818640161446401311777724259752624114012838377289825301031040136111619924681649241194519810109370997679197025781931441773056848605541652285893097152674965689716627647478705117808626175955675728092309485086073399966935966789173407797145588118532974198051283955979464435049892854007697320264785381444670848032756701432745571317600871499969166383658617291829972856301983062604759092524095834462752878966729923446635358361451693882625574743854236378486677177340145943855169440387906334288495107349225183448310371671345694266603422890027791074673327207427292747687017202321864031214700387534056223557163478467037659697811997212676556832561758416077454157153122305169777756083574037997567117216760032671655417505547564503625282163119526535851994148679028198490494684774136556187097570451742614956137601625973592194328713539074844846009805275139595342496352732943857710636960355900792215348665730676534838142077987243228527103002654272160645796144293168871072197445774296487494482648522810876055964630023750876913552306725311966051824008792583958994021940689691349529857913770352299584772736234642927333253295367266675184230506539871037150147959605816089528687127166762231504549504345225613834800155794916648353892744759334267392282136192708600362266868916876395710972229974020456725808049649588858159158455465013524412358426604508234217667799632003724868920082802045349831319912016306617158746375232257562655761368107530891365594770241896815793922678760039062812294692062226622453944202729590176384621542083887085821446239801752989919743203203788981880226320406347447224143339773512377062511251864119166047080120600040339280951678993742556418080477418059326691464029714329436986255925047848522349178810626217385850044589325398714384400389223128086057844119956287277734475662677070365562461777574212471265130349202879041157509546471846364278158066729315978051247971933430885782935996250352942176901053286866247588732509784987408645341769576823172093785799064769649401374170037622715255051900748937050219663440549414456561130815753959688760319086369788878949459762513699299553109791264717231684215878228303674003666804586632101245048474713902528693292602007009874977083888378559181607406315226914112476075157413809599027645054497535929324744577838753997262633359018953720845607207085861268488291134908771415971934218469229944824105097898063657621092366759146007136441745060474100177208843231595371881796310235881054060093994676834464074692454728892906567980832519612008067611321160600976090179784920826670593452450787821126155274759465716820126462680758169242659554825026994137538300834439656973557033259190013278796857086985291324953998314734406363877594793376726453129316343086398402351186089553967729774081219539437606405174278748507828759771232233518427260528957205656097201416470419005124346407371835567734395981771739872596248312139764448168386622750078657092220675691024757903544001644315006093737725937352561824952310731206953159472277698983765593446674765013202408124077090783032647669918935175782107231401891987331251410431363891315639675113581924734710919795695498298131191299303004184173954490666304044997216247024061547291986093104530840606401899948814625042915216098601539376846632207804411687836525548385681913803307582585579437696393443708295707583202113282002628356920393538532124282612254649300602235669124573285084814849821476508605666033903525873304425985111934846516803149112946115817230839841321958558764968236011755901823436736607673113869550313140091398058753452244346519432512160632103876826398027359050537802111672242499640641665004220760439154645360344933381882747729849522578782610156714475544150698912319901145872732117034994722636927531737367667775574574610726019784401206426051678104388696526313449366191796229965067878988436567695335520106586806216757121816983339432336320753082412852980425737016604625105278427118196895495413964612099337596137320120593244618270520314676990729245823027956586226720100654117947382795491440358047663103252083289272111313066285374542802305488232323185944461314278038635565160218592706886342015661433896348158734000153151907442574247365511401890555306022196346345766999488264842433286235715432651213524239920678779944446575861266899732247333059090650820685129184488380817456511841008684736976734008628212621022005934026233000807877341636775970559840418845489067883586137178972149615051906873512075233175849947844504165702143285086726267235626866635971726484536108557052769096651699518693933195122658941252414540591784213397066080922178892068643684674995864587455350799447889649167194260822254806265834472032668281676803385041997902352420951865084682371764670241453395879723342910066894820223327972398862524329653425702781465382449720633588203076585098799544941773566307850019841953393034436126647249889695719220261099937989492789246013610355065273559638836134132189341905489733256186030860259067662386732380007612256838130698481184891593943799621304553895424353592087141300974314538102221770698902675550793794183405944932786975797781834232620559218478633609578355551261485061042208701798694897560123328598286390014991182742314695620568059076494407944151430219380168368629807099944394466525557224218900746744069684713198518351505269416861252716408385436979460578996672272865262774188312470953702162716657190958034438977171617171596437138306921945730715817066510131661079559262480732663562261197054039353767099010179809006113535376686080550878100871861709953461806484334937978681086032261746868210271515473138774382505363868034625910254612675818191568851886990298431918180206494947998050197052253443876289276692248235508002636880367466176708723115999403745446875206262086468364079085754770285769317868679431122595396222860424698375447611803712878453878354997015396217373689322341906434869517444523902417325761245802617989813007486025998286124590985380794729181515704309076622327410095321274444151214759855144130126274953412329970420898144864330996236972984392258400108731050748166658334040922322264405359157938836180219460485791923409783003822747082619406599544533546331637273085533180748500352122589134636234733663025515726867281208643429541372009275283760569048667660992922749105364704742628702224781940436796809492380810264397567146572872143839595038618323537019956234272304602441659343921454013850581282710170112585650668755837883872477257509835814162552763596181971102377167994207897873487134364902403657505478898528833469043010460991569013963708150710217132298470140176281608271124117841768104534933955584168666613322360670008586798544047155439849491258106074788654929380587264448446112048177937427487264582142020296339356953884176208542120176561230362381183175524638425526542514433583491584517312499747068253391775023863706735051274639793207933948655846827356502073824169969722551706674020279926210296317778204848014973278742462131577609331688570777647747823411339575714180969529611897375153890710986444484294674539792554180581368392184932824583254204200812599024241360986672480652089499766649552242136664055537928123920644614496449589274313110356085924040337594191795085936964956526474882341232901502630475953568999733302456896654153606915194127307903363094588398397024814202933432663434945145016766062993138769691879176498353094298587713044779587965101959053302636941218279967331667349887135353231102374721397893164219886260197275255324432185905542563238039823033387900949542129434434572673286689718594810920176464137458512432945109829208726004105308928709236318844058339739275993519840329549892254889521282761082070110552550999945427269380589102528805132039952662119547788647027835222198026541495738166704707810760471631114894702069792814367673131936804313771548555563289281856236805238695484799895227443956221004152296904919970501517488610606256649024403497634488964948240644312194089442821064024081337319438451520480239243512636367859181003629741242745371382338826564575951181000753497968063821217818774702787824100347979708921910819271572670954691162919789309801154371601116207715683036998082335413781851823147591873625951771024797561918862380709763336113992834793938276010913054623791131707751859502023548156783282584085483538747447620277740241481010459073159739359529275326811201832645397038596148823315191459474384780161621730010217053617432865445789624821011435535410433584174219842118997775224098017064479662509019716702507399556580976311173656997694701867986948401181437034092935882214693643446484674189953213273496434079707983390581513593990941199258970804370845978299363623884501431209697306114945029366349937332608930606916803311844335250027382958824503412990555327295155292180251485372207590979256961589726598305610915455933924118624950111722541395006930153689122156357698038188542162350452118752628521979443284743119934937566522222791507439522462134638616650567660659956413768761306865921791158102463696539507423136785789876507010606094110810922555183295548682327456537346817376524325830468263190747555394790209341304491394397836924930922159881387383340991186990250404940103479544975905827076052087293918517733488697559405332215338383725385838891378609212144023093629250023214960655670157967071684999605141920747680579073583726349175486219756254026366888527469777761589104573745972071816348256730556545285442093413103244474353270338872576844509154777789807081907499846301980196555484988363009266994184223208400395844388117936934601780684570541206072232943232034624864979584495122620881621491987638238412001478856631210561024586877538797065833586353752124737467858045838279829897814967354492882329199130254609714542454635852776476497354436554207020918658813077175288558326583032016140874763371393330167953243506758412697265195244008607978405254553619883144880559606942600516800119109441210063206346218655841673351441578037327171015641232871689379488891503483644854461664658294067739138201269579341365403067609124112465035958214472401599272339097926026686644868066603365599148650239461947352475924812712802702428088774942711396838597211495081694292613533538319454819509497321666339509865245165981551013152128404519670566482660780146704160861331402249440820515637830951800516684583330158944366905833181609930827997689130342564817518529115670014341414330905645042490972984909379061689056024133772060035180970249868499022028991929066534945076039788656131067705806409870886553159581925578958924023379496274060943714968259708925450079143731477307252903048041659041550150381750032876123997378248390930339533744227305768187860339470791467605462972321718204022523970649465582862461871615130519464122442667789705133250258834996207783134346798012739089380804764738109484702165130671417439912090053765984088557310294722987572223806830936934464093571363760354740454374187693998953759313062578817381175197075271233968907001104838098202375093900247956288288182350383132975326606437094591129396523569763408375904651449534929179704826398148492666433253867899581937103968521611396181006931418840751052723944476914873920675574365820094793199211560787047155498590304710864831599048607412326638355422037949854597095632346115324504699831802540577874184728964571308548914814823866177112973764708451055440133428392288778281346661017994384916700161509013578766361219439419351672687205559319345911616941084601834346637589024738894220898794525199403815430709375841082179645232551827325501284013969303718914770066556988149971092838684039868585295267227286791290731869142615728021267015887766103434419175698679207990810311688133312476936145880175297218163653748063305640530193410390604480421042904010359739900469304110432006428431988028258019984563089186848528093688536137659296388780865613508103166218285650983068672225255881473435283999862138804511101644799442803344759525534728521547955115345640802778649301397832503929773813530072961461897785887557767352447860836694621277395593566694721296489722872713909995323552557567751862795227286684479660676839062487619341653284829993857883772517482098116383749615535702753120876872471217853103872819057694791736614926515217120729149223823687862152162994014071430515250842240861927737897046361007421569104778762925109668475449394939401393402419907098142028935177330988848649679249388796456895211122061624277883716082725520968750860949034914107818725868562668983244110242102618947297667929757055172536122606492146295184217448765030143462054315564741782375500134256711117618252735445805266958643812715080171603090109663029959292595137397478073277983280927559719177122652823700404011350961348533201903591852864466180675432045452726820774807275564876474553407334597792858133901941109777829649594401558135313172478035106166453454670953430143600910101030965192275460142122273292032977753266814131648605492134597870431672843430051987232014600611817294265399977015081904215433742397382921934044402162976416781992492068072353499632266785273566626251426554044834448328420244727837701261193983280047960392826108735972962874389055347650467746788822953888388848926969303458987397936484468749516172704433512572854276464959175942228317765886302691187714105905518564612018562184020170136208780061381525231603902549293368188534045088943393045761576921469775887249588023610819241760725517008718052924841532163142127371961792334829760370225036585587296921698473444356057200594928318604984112140940031669833446442952378038260534046242361621792858774552747809336302853589148496414332688027179083921358320423971276351777899565924390777774449254540356538834696731842240622261123587372992850713038242516289521837931385764579931799203775732290304024709752734078537356853800345279118707904174095452970971096619494171981316206167425620025786404875965144043534424196887875415363206648387474782188888867761377511713746845676260336367233254445776745663738479960531950642169336442472362022387494047251339156555947306336088708576182407296575694291374045337463000009223369835644582344573699804654628053693218205034769377754092673459773270062963700926359834237573681964878935546795869023548664036952764054502262760259017448692088537001364402695532903299114498087158052285087709241381841216975274823253007594668180365943914653767524378394890096563495706948338049146159281234702177037219472986711759105617940707041422264748408496469524765219763485982089528648201566273283503328273461013853888097262212978144100715126931449596271634069086235359788661166925733032246993027653985937521681307773443814408445563017976615889680503898051585266515581411445789641111544274517562022722645078458340835918180256488459677454681098751460578821037985341478197871427067753791239618673404150041535681348219375677635991549410171409010462231186552812667468537815154819909660186738935986389089475058086394634024142360580380064132505899854591379718618463191612627931417362453201903289672724317136780727863907572586025594212164922686235823193825532167845395292321394899322212202887255870646135936764719034372657292007411575764381651097350141146799147875543623952155675094498118648835178191606226021180711903725742426808212990788123894587349779387476309777215426657054420388115892965098629519834286676531877643269012603895074723015162248572010272697118207986056129128419465856214745287863477214289046378503025221780717082962628833655810725687497403573012646344543183315836192151940007094244369212586481125954989129292170948616858047599480670220884099255914934800111690626731918166420170196326269857446443612574298516008225334597870103773753763200871584208079093501134843934294309327782079039817643205754218911684651626832154594954679412025848213049241466874169840973858236446086859946391857866332674441191603018151633157964505908208454684019940187106305786239368332849069543583374549815618769950580717297974479358316325526129796042133950283969549467823300157380717059946932596795550375492812802853841472688195898171790294604720378715330199872561615816099827828641346397051313843818758509519935709531946961676840154010072804260513010442630377794627925915212609884564658551532109031234770523370784462809613932454959449684277434003952979818626391648935819338266964007130393472541014967541658219689332891191842213368590306932192923801606683484025883669602787077483322246513165316785019085107423971112678028649671150893936331820527278225816595223713542580108214844573110432915350509279888871924186357832212649224485352494319426633312497133656983296435355007099496461465693809011537506671625017293074813146981921863948618514775160493449976280686678658918564253415058690090951591761065254084470413631689641322562758347297094846280088292251696928209241681458729269972393159902563736816074077047784339250787212247026121709301415654239257791937929910017838259432051981578242889733289402577676371227278091651980731626002799737547217346556725644697783956115399172864576695004367879148666553427394693914398054972607480463164963411963925422724925196591678448612183944554105024609773300532235501431138526349677700912651105930869988385320332481667542163869477774852052563615350887543989134984467962719445376526798295548861287078231740433873200168058064708005697070734704916931318741558741906827873644136421687120999136317924146761419390189362342929849556950022013768842983817306033578154327892024184573355150369323821738412687133770773645671950264738391583250024805677034890873706219597828683588838157557845740634859411202174848911521649622790508728231759894331850159968975675025580865772451284850236741056634559803435279554853679530863605935089148432394253991413027200104101529663081721495015060514299893665786339681026844445865107686712140838383076473474748343856572355102627397121646162498474803013304077458133362305160529621145551052123748630573468367313594087638079865165538338610915168627067128303047624331350414447176105932744482009423683286749382675305211670511831627022962237666801116633464682508378290471974797688353560423459366903490739734003498479556452713396397874713701792249417908148215716679227288306627420813406444345899521713411829806435885857478463503342828281110928530470417258029669105518815201721096994018179913864381694185928445646556400024824008007686477084168310100142240275205667943426958909634058811435611476165884953598093776444763198191299731771538992741461286996055517045455614164817832619601408189039014977877174996009921673614390819494864135912575247686470452065303545064093419720988160974487506898655029407861481804680557532834288711113740167212928650557542953679287917228211441888812263108818548354040929681685675641092697509004607460205451361256818870101681364581009532647749430296493048092229345338564457184025664767822388195436125776380902606301126422535774649264111896812522529087729242086904855205757738568537299101277265919011062929724764697478306193113987723165996428532342296586799955211135832101197185058870228379725121584491277912796661715099756874409416814864169495132171843881731261335930935352325732267957001523967697124271365751511654002504426770959956078652917458436170875502508044496385054914065196565974289163221639952482192602818926675609684130716725430857243166777215132767631211429856674516032925490607006796697548221373189112053869950813142394172750099458548327558102763532953387637061298167111627312364300256501830771629090585355315875989035794593420759389578098502645397943870905888505905985487355439011514678741499310058705225558156596791020377322785032152970892477446419737511929082221102683372126638117162895645771629940734997639450404640112279238080555577796374273289093164774056252429729050146590939507117683660844928499313221579461895196394256077564249998811601832453130694378726258473743148463013592675479099154773818073837469400862536599224363503726682043872292827869671857281430005508406533219902490588270747124458107649274312604283587517249401571167671087863546832402063061899043050241414263493968807337591394698180302444032437929460512194849462853681261088055463019125264441355003833635275072122155311190301407332799294444845392654125750781235129255621342731355851327836922970353245485424140314000346259804529987206964725970034528127206177261950621902132768829236051293608867511500670209127938879748245212642502010197724840350822145460960427648164829449561587632456600186671154566665565467056662695261893297887680163771815436838212845433025599467192160366408857981128497255439685929271623133227877970500892057397132428323675837431730088079897322776688755224160948322149465772100715024224079835425642667574817064107551661605480751366145412970615821922667210610625220614067710786586223704427739446620187673297782862531591970257053781091786536946150288675477327736020901382266830908321634829016852231691939154320328231563024844440453050051380005804056835920308856388513461557316174820674788648551435853266064693642234631492722001671604482748625205816645456144961210116777476430736793098119451027144121730581225353624465163896715797699779719013765984609256566368603775591529816718003217394454031801020592334290819849432306373899058590379537823197425382043960124555810910661964756904864066107266960377687436563057526991962465522551516507155937031422539757570060403062693736327481921451250245697815967851372331776793754680504843940124145386940894806320041503741436422955449830275724042343934449380951922196081786543272584575158896206308171434964556235075799161774815315597820907886823124720097486245200578871146473450390671143540449956709864786402934124785840242254987866061498043986252716573285133325338400955825418846567854272981125168524032069935591917064154567473385952592852967174712848607037519547272797505234935394463996195428498939628839591316622563428162216669514346636195045937350694066187742858593787552427970225889729706613343936191374407200352447544193344370814609410924085709023898570406987912183546348825959798495830255268572806656667837543051525098620216696911785230178376515172232119061678809301942554023670854137985469984173142164116539245415734902098879567434801999474280342864432202657686877279980764740699855263432306595725142645410788457016568091936827093760519470988148496119558190036624247660337828937378307579891175647301939755643552063695682375109105040270863050557009237183107393921354488704520449122839201987142597250930029580961602168815626844962609045326742108280438920855283931091064871051489697278660316590660442240955025270193300380711288157922273206941796800905715054319355314870955235240437609796956075128991458727538230487058894558800221681703455939877634991501902605137637941371296156006599358044656766496310683529382417668259398484117232451486449359361702862463034117372893510856650397330928480455030637804740260266593536998640002293107587970164412660580654632294968225132702573003800915170262565526188576820678289952935284436046738084983983897859776772611790044210229999022088434578302451028737210916243546059503308584640552280996841669607962344316201938602946329380966903758974793876324767019443880255788798706521770154018092503561567982695753786362540870129022409398120300493469432237016505450706689391165439618716991049231129640646315744355596523972223825412799888847133927477811638889081945754098637490842278327717548168866514642265652958049279152931400753994929864538787792450261924021497995326514565558108732050318394002686296157268092168082995669115251461525917626834347617553134871494946147358206777801326712708477971329721210206945710090557821183806034275819300634063135564409849705607042698622856768026913852854842140299283613222128464170790862294992334260375365007752076534996093557361198865404869047890143105590049595856331281449287014394166411983628533824226756472071883871540803296628047939662690821556769696566180475522078127151859987419487547453824962484365160722248777292572670895284889405018509359417509509763506972233961638276179180764422117359051904999822129951915927080325737625848106470828639685555644141060096638133518888517115532866622195801828415685295981629803516325119833058567706817138423987668493417006551708680785803172939035951409174431589908242973648982281037313109094686810781992727500950791253152449946761594947569051952426375534101793665933765221379470567578706307773776895741063981965141728020122405138357914730967011070861108825292583501701161948224955706308187957014795199755226419463485812458727449087794228818163180977558349674655219733436809498336475515216080048382442115416077257626534511307754081592224668727173999535914751028951399462507713270097782980885285101573310096744022375216472484974850000365524185718871202863488645246005115631916159550951232324397020616739937958230358544694069839192910971322161642660644485315393091008303227544009963334610343601225825109807473553728896164064584518719275210869568350519189136251885568941095510923702957827380403271908960978443228659292009599596340555088196013499516510070011817753540899960771639009909673806459453546698585979008732507619781646914839571733822086210710665999258420338125448718193845786169601950116730224983654785132028904135161583091167650354440645317004479657802422810129107227481807440837306771336032913363949789320468514423028205286415611640786051851382217148879599841675857267585529383361697306052974288272085663505549078688686530821216264343915027618531086609610880599721140961642407283137941375893000604327841310766345381451503454205207527334659045600342953977571727771812454077388569861510073084524829286035283895773760162553089531686309187813788117685157081510093409963951624173270299483944662369287281592532737529446951846372217109250285566531375465939789091422042243344412649618814244134056282649708110731822473921391958970505658142769837634675720162326615692095774812807381658092597732270193122826105011394200750756401521115465963578203559665004480141486177817008130513960660302361404760870365237874511657018432263087752853343877346390985677354991335050456017405907673066776530472321680695546467068922268747397330865439699222161635446784600111663045883182735407020846576729601189864475567519845252145129617961617185968676418106238641299901289393043187359396751925491157328511791492269732411080483257981358261501732498587438784290642320423524124545307390238014378205302842365587645070953540668864413539662283586573265187556728824572165532199420901449647182370890740041297086989462786567981803335764491939864980857199036367609276688030034717199733024368010062242285085892002721861582546614671833796578706986478244628321138055691227810838422359173203425144280867194260579117055649084887389476410419876124607482482093026751240121779077472379105620984335458551107996743043268430032411888059591239673524181184242003849407752008497125324943655564328986665753604600956583043502200110259702438581992378165298841216652396541632588246464990078737217298194086654622586788374955176494278526471186473343588408655876059734836225748939609955527555500838055544621662107426202927965032723743473038924474830743087825087999606766497479785157095471188417888603903291212784863660825823115843197947789363908338787815278469439277670150812120165118011963006661963308195700837780102556418094486331027490107244140460236516250129559086208131971166950613679366489238622898287597952677296673731944024882003571500942437000666969320441709549637664260017494617500859574284297875774090792364173438213793023493187887367575165462217892009264277014586661585592076870792862641912124922212499283799399099519439962490774318486050019120988909950158518698617491512606713533453308269592822716849276062999006509941112033258245116287084185514447137679033785101443299596305072681039713273182849190164628140236860635835592499163368298198024969099752085513210575475054013007691303696476899220769237323308555198983661906696780226550083131937123627749464689400021860968649769958180739071417452317806665448788996142776514998479418847289038843744159268168761171768226080360642158345180641678113675006064311525933265219544959470391500269291859860293451740063664074868037893645423620889116022604563173429133155370455771668959840428039423762182483281744204970847870151192907988472747543912785427212445577374544619498544795826865681424936047854416556063719519577001869734995656389850491905051139182288761836573223536447252570932745063200935002180849753185441408897309604119794366365122613272267486997521851099688765163721694128218290215805609024720070021111707162951788810720645847274437057006041698863522931279175224557736203548114915856333133541137145248803092777645668038245875548527438105764640291941575681883390925393819667626088849383299553176192173751046915235289604547223709147203020791423028796127421907654987354666415051927626183074702688292468596616407296005426155763703766733167122742495534681429581549914323970005767560147670806051409860542903107398825963396559177643220150079999682085551775129244523321252583411075543307462792313917504918462261393450532601186996914302009348218271504157000029084602899663832603010358786437929703771892456239470819999720857501405165076437154567414431753703686124509335118659742787596999149848266754817040747035305415695671202255634901492077560357476128790223343956661439578853501710229741625004738631228981640540849595324934787625667506966524013515310722589817064845793892707724909389723300969602448855456488899969197042144605403542874366037722178576448586299414814219913968316452613537488961599633327082765207469567485488602130176400158749298071232156174368828150493788239712091116793263913245411007525730695370363959320693697876346061925732325189364552561553059247104199451416332355437594988531313728420843652120321393037291411804163483470898844633541907434044037687563504264319541198033890183736597100422548695697536715909451374554467680662852956438783639262265664537918591832511962383089897253597044016764220671034570186920265477437640781512908144842170036609672923427496121077870270531883670910992050507636022300273968172404094276216984999220224721442878123333960862586575411478184096727158381851738784684951309859691751757395627526551745493274441241347739717139005723315640226215690624030828553954654296967228126301497995581404312354230948751605716150050428747282529887189966587202447532607928115629576645748889814179300569687933237056669921690420866929905111019998871025979037768288204889280302842979723079382328920507045273917074053795093390673970740343141801088661668188689425742879116256651942065578662708551922866438798126278223351045707658790664203942546999781466499132690055468416962074050836992190929911764134729563379680339024172014334920394290617707928073742212554512344164596284406589017935165648311893116338492283472290720433056173562205194071518126377998356983029373899471426862573014747426008308865412496336590927116027809484871886372540919251705681335602621443967725898578183121395183125054412494224799142375246910370457690708267991679316568604013708022930121039742811108866327481585681574507805755237055327793521625952004088943937663325739137499720066178914375723350714101345502596562045894834411943651999945127586351869468636798970317144199099073734814209873538443800205680745267012048117288300615064780060280735310783169107480506476772763378056358701151349750028662994003997094163743700422844541302350620129483001235588372406138239459985245682542529389344569013583431623410964339652380179032351970951841339284597339775618859946903735862142038576115122587018766409600980802003154278410892040331348617821890639262597999854920801931006735320550066260858428400769013970913732225758895205752792484824785957486678394389354762844204459657479598325712432295552619273613193245642526143099339889880982678504167330457106155325672326335907475402372236888028799094033598083161889119350088982604923842338860794269899190411102952014003414250958299660258335325739331571544260954934740060999565794840746189177554222397868840395827952752841525785378744485779600467710878980867234020605689096490453025014813124551806695394522309856239600178997847316180280562481187407509455587187264799006139889603782504729923431875826214418578516167685159544455558222124850984290843646775523870112191288445086564993604685757414194281753667260730323881402647840416132915663265040026716382439594255999997881892967907842414335560177113017007484983904599638234882530470712109662294140319761503612074299308067738338075390831512934855000902333856060987605273032604437250734531789598613866443935825162814873342723626442176345070178387130282956519575869778821510783225230381550431042342160439033529863548897415386374069400604942692555719879896282123649348757625574225169868622863664493517951133108966639516989179787239164293509090183619658645668808402196644739819335803711064171762023702290226296580704435094112962407148710913493856724789506139767707988497901427289882503252925072158034570411209346801887690217623025799650369385895722222455602350535639632446491926126880908424000761146282911964548997414649347445308736141441969799415411489752865796849478696661825757555348921430151804429521165094099611790439166481481953065328046613957298900122676658789271272192795062678848219880372967826087926685193587812544628161924641878017315363209794230992439358755754161971703123360685301422610667889542979684671462767428029482663924755161554755635136597656530023362705593599754759161144271845373842686666794268767248031457570389130570675646267647996456337448379766467792203211367919636971333570241344120350558809405891772116419326975317711357478924077477384400581451766651483490156390499760961554586245101760254309789892456590791911605524034166963567453796016743373963517173898919838133990738638847767754792509955252950787398222088605629521667260406368461672254883038136245395405190429678150886637901770458580691347411641738568738343178653302514562664883499724407758052471821476569175139678139767982163842630784674121019455777430722410665513859593304162049016312812505336267324009559973714581192965617951417595171164306326272390981701637351514205060464539170198675497294450447312824726794946656121418702979854536360171434963506480509969334829333767307171659571682713100540657911755777524560976522594106125704555621299843219674470333387145323518329483576288324435831050315777078307365272242808563507366063751166929608090455074795814833932803279532135151522878783559770983360624217596278946363977837217199352091742404790781623182443095310302359888318213286425205780036288719374545885352201078634257474009679489014957902003947939260760532763036902726238371172693795448185120327857801193203638786044937138926579838983215607588153586254596682644143942641619640516383224477640111182621164680378553536185320966108541412582029470978827218747438398126975829202274844607118084074676001675124158905962025094216517417000725766279223471795007908929153880347700602054012816397057122789689635796160605680124669789704599512622237508099425598321215365312709449952133499522944520344133183026830090326863855978543881514817282124269121405158515070467020067717649456577137727933643526936659092586183030319233843119301641296300728319649813849505200953852671928442789684952852591310000310902039580286329539868621507607051663158802104031895158359485218041388829035082140195566471806565715804941314100919175059970087669819046471886437692304319796655048529346065457976976629146601950969615457892499056797262909186516675951886528956520760844561729100491051413989830427698885512548328506980415907051329565632214658418685707317034358728187298516686543657833882908637082333149068035092274636528977954148599769336091153731844324881406911827920544798768415822090121478645255830861984564147588655942846370670494504372790482443566505449798351832934733423762853643042536755881532711718725265270768666660843404975654343872038773463858782772177726522046500805560340038203067364203102798568678486145742588505370547389146294341552106677984671277405721096964394150257435521085976577271938028548759462803560971173438600108370845797042383179890088879403389230926135444335520376454850441212584338467812668003872031661095051755712575767049824761611095634144195044563332825790749067897313996695115451200339780799820178611286925464525510032459250096497616207865086962344632146934855299328233217357173330282155652529311803735998830943255863934969358432774830659576227487939880463981688140703604134938333263860752572896887850789571253386329226986427932998616497470732373496854940487648927409628673378522273340571251194160903877624299776032506335076971929036823002406824628418684656373660939454398898284128137832342619990804915692455030361860983933030200636060027116123454584448018001147063012694465833227948336635121699592429598937240759730354663681492754275294964414028046381343893763716376401942745158319602724894618661821960551999634227347678295157389187409111941510482935114586885650184092432102676983031799000930703157981343270176818236483607846359873651095598544079071208616395398381107231614708675356166406038447324485827110771950952789640538982276601800068600801564394116386097700681701635559543707379378330487664734244062676780799494385945872393985091807463159564845850797481689748397242389178623510590178973967724761116744216320061237633206946015116083858551200315100075088218957984704397279581825963121176244835664627999886532354954032316722016757273768783902352663186369704511127945720760391039663274836742811006917350995832021715921954996072612523859046295417891631590095038709294966619600574217744886445238902069769384261082822083552815978296480939321961690587361024793425286317778251260167485344459056960136235177847510804407739564952469304521993063885868116412708681804629550597346426154096071688277628524314476708009377080000691777831607090361561241008937868560494389277066586794104169950193404144921331565634606054367802827872259765517553813882600692949837791060214870140871602336989066314426178441249575938623000105018067820355653222516997894388903392292969166849015950470910262270493651205440251583810145359819457050363885586885372781560961107602218248154115276317958261687131090438949477707968773913045826303567021421123337867255561291372147323256855239420370560948654195265721611558464838300735951047493179662217895329141443297911904852120615283901425115213033373227620763610600084622442654116198524876510920424184699669577464891196061962293636638370015490339134639817168140537358284497197474462769382730133850839661485316285210414761579493898792438548076341138725785007125505268315366754882557047140440175774731181900672140511693352799982427285484235066957691510560485215034772073157304009161893516894059246061123148795952590388808222554677186036906886913206478483154368437165110068118650026775950412580110522419810342083817375113556230681225456130089164459283657536518839736146017187490102446356619437623558595519310938936761076322564715619557844448099290052234595415896381357887606225423184916843674321031865294720196221828683759846197141204572340978600917343811918203400461234683870338408789054510815731990442715507089794843472246738255714533239937383207574267221500276966335998075376519272731874943764203052902012896681444203981214305515702593679384923830312799811305732891399711546252758259131287841904191967099879130245536885363365263620458154189619243500970581330986766957635618182776514884377086705438462188598724945544469567913404557711832244132808119563251515736170096006102493970629008109170903384747642060065711739667570901656842049375294352127859285913043746964202416154584797470767480839022849620869749119065386510338654052275469663837799685536513600698261123463041279284311837047696140513724139107864928337745711178494031170521582586048630704008163512519395578481800943723616663020360510770837999397819194220090531167583127415454924880807645706857222180975960065432884425638340245617198805897121138435348039750418149406983193668062883724166713086550317011064938332328507998759679741938143395767813932111445364102586516674867467819377180317397620983943835774591772892386382021627711440310223325350700328408749381586626992754052030222272167912616473393147320309611746924021585393716667936646700586322984131289641508757389826427119495493643269270585205665818495433374994116008699312476342523948340378087336258825483031788993866321752294039573901901820590554822158616649401528280976248375123025294622352868475284203610999371987684451173756663354886405624588971588413961526074004089897228096171402385620124466219935692175204119620444068503451942467849340829849919040929887511786768543924444204807503996874825204740217952422610571846507212315393515120985676056546794446143347943324299607000870052636315104962245988987164814956088586398005258672763582570905626068906050011573988385228286564749305067758016982048784797350416620794113701596834241539685799888382855719823487188159926270230537260451429423211992926260351433259024867267465077152087735614485170567986882902206849890187298955327171745122419302550043471826761573586191480882537211160655449543012825627415818087779323920647405613238438865578713343813136173353914724286161254717843938525928997270418197709428435974943418044122133240025102946579342797272042651613982756730518166838151012068711244749272484283484637247588573105459508596639060106174496323690183952852907474276691042182290837644985781873056207777317348219671592641044758031969479294404558376312042527651454439719444444938284111831972979116740943084054464469206436183956228293353392997308472680262292065472922858688926651427506069092407844339317587510000214304031488629733195681695586888845043182699153117577562031349448360696115847122252788277563567949202835985307752201466175718278763549861667905258189670060307965398492890110512023514772050547725766931167132771922911969732897102558143744960774839210567198034459782925995299937771892114871367625314497667467166151359120739521249915711733416850757353885263998582946095101988463327462877767918257298205237940241248014390872396443266164691227171139551064160585511233684273145550502556395525630580266920503582494341715299903098846584684158174866873007492410703455880429139082387991838407185907103986405203553501183058082240431654601461024271626931869870512691723520018920205707028443086159313149252730927719146520333318681683881779147377182344270823934474059748829131059339201100644099827437381348842059863150677871134169361819279828996455391583133087913242546248861866917849395380567940230102851010675600458764658798098822254533698074745566188713584799078471880412570490751539616722700787387152990941099608099584200426995850444087907625546991241828418258921461957352978391270676621711309624928389357347489223268024752779001363834855348394221903855515365968467925582426604200400609753694146201343606883580610219196971913890351551676666922069285514884744707667523792503578083591915931623942646472113569275533176929659194453321441545614008311464764620123747710456823449361530636833177130123665633193000057058862048296351428482543181707066165945776048549712144303577103847081750893490455000523598702634793645277058766418260775150953840732337473849608925800132323582320460028531133524725757605208037803967833820761572321613354842599801058613030665045562824553531325530465256877573830473373925033811307385412140477900981193677644761419124111466713192157370174690966167601530948029861072567256781586194400542009491917613306351168046673104693319543914292240109332122716412941203700845089132208487300701681772834730311635182843803753232544486080605896444649866256705578880950440727867319060971584239522685396121289359586253755028237891918165344387604798227093788097458686316509642214562104378897705779773020104260864751852598690115580706721649821345109776159962917354965098281026238627978416763362255538887325915292789296664783649676964232338347753211315687687470402187437044466993871685731033699004731401757205667148717534526317212522564529025400213955079181060524345898816843628015745002662285329300452069236938724450730347147278583696551792189775652801014852952197402057731817242837014513025461271869859581863719000592814310579664318588831526105970824335191972319077907916963829854197288862097236320952464545924476099267995053649065494378058021473025774954565933255911037656064530011088131171774388878424559975947810993962508198750979393156984465505938320676034718316499935739695567057302332544020916354583591500104033833882174532211599242538694247216953526659562087253670503215086539826371175013110392962546583622952825732079290775780778620486992992133168284906771470420491999640689295873966878059829057372023721775825888903822906700741217441356847945758600497076834753146484577477414864791802722497452055568990252649581047524354760418541882396010976691526084774677190060640230844491381654779008398538821246639973878672123251708724445016455665755385934016555446218808791813983259545084906646879186732708023942567869865025599530958918494246518739468482880915907435623270825211306762658068831636082891751221513977551587477687730187162649340308802573589188084006496647299668620731738190224136553753541262335520151582494347879959648987944116926981383284070451048180530962956519048655642031040028659944542095275972786999987842263162949886841436486631530922528086916338546896696462354489155702081608344629787643450911052973892359319777588020666504233568506561239935899283241456703949249834563891583524966083006233016382371477963397879359916296102497558623870186158862670411013135104918727450894310788866396193313085728383392630728934993697242552689624511426600717977485180246637936481468554540786879335596698257658179082778812120438558653181358843637971923840524054885689107816385413108370986502621678935432881415526018514871929299092272631985887955194255784758420719646911098999352861947304211839766925215144222114719665282900661362439000226468096896104588452289419266178562184567565606145357078687505528019662348502945871226280337751498201844589433500047578062741366578204701957603181080869147443982464139998498950343590874740144428209966178732202205417240134367635401202603600301827955437786466784871940694563349871058607750648022059692180588559005449293306088171630907368426270503011407131181379898173721990008010472976164444799442153362056282459963236871950763580700712159819528517604780603813302965945942342000156860955263489799362957738302963552354489979302056800335296349042068740108914645586429246675444976066989832367323183948041082333760260445702666197740712506060738811882216742126608859351109561682746002149773019952637607318665108390942602456754816006051491151803760679740481623128580662580424606871591056157824275695792113476999696874986325580314765227818561227375191699613879391706045281487855164164517267867334646991711759013407235705277712395549555162704834103899929570017210615537416449760700356960457575572188495492997614738610462925617603531851088812011066951567650234274335103752202682064446402711948748947185640061298099105674478678923017170952758776259181839392705953959460860519772276167353487262244333063504125788862690761169122946311481355782328301314693211060011944702615341635688805260974557413505076702879271870662232960347220290980523160836720059271056374807173709152331005872677667952988659952047669912996817285809240445341439730236303183141876661882456355813968359587324933452519180572146801050238437193722348439624154809795690744845380253723403820951706726712349883268295591605898645571705072680289251083314600791493339812046807032327854128178343111070244440241598650372361260441300652955886107914464993084335222788363938892907552030036404916350154453150006027639165729269159073197314587300508769983625404671230528321667666266153436908333081697183416730973833499888791700013008437891140991840530092285156976850679063658365262288828841886729238373353706932399864814079835027527797075415238028198379104888899332276171557319988468950668384220482554917544008346220270942428594954376095511159783453097082884389011944311825423215854112941200393215410121508174025000943442537234323784764786309712553584928167516419322304935381289103883043659544576776474613440147948498992560724458742130824888570378453325544979895985019670211290317787014839186440365160694575219409785845700560631491037171032830936511517748188541770500692449525985668993189408722708755623452910793553689086548819395107829583955825406667510295896481791282724258778973958246886290027113287871382625081547410497763039599105177231673282929688157907354471418821637049157222099263291095983678091683172400865117151841669086826284483863170579689389225938101875175140166806891911601260706763627033522680133595370791238561337951889496129312522137826653716326242247346704127284055696590199914561820535284411046726525787103047098916579862289676077925346856884762068918800833405760022106129217046405875203463472158339720951104929846412361215156641906710981106960535385921749768305240591805564066127604084272363642162175797919180197409630940851263907785975217041186567573766050582914489325134619690818229877157327381875723643614356462089397340869333419791160914227048874033460897999950976555282041508519860578841146866201351125331037966841041314873164543121652913406743092870381889215004215378725111668047477066478597634043310744677701925210697901494536833600890890977270673394938373726659950580652923012903136285749976641418540469208764188125995150426655298921191531039763693999502498793281607489137355715047845360567116141528583534589281643395166515143449680182847385639179299919332611801431312168863855347203859599678686231629105544907620772837286609265352787633395758438627800048024477581616480909537179237247305024344267035449872597859621632869351859250809243843922227939757043064703643657182144266450713413563263140837091685059899597141658915367960830336487042251775680915272108095280697460304732692154653422833088924249345967952372264594213642200427095095991583360514190529652076329278578520747782843626948583994540834656704430177834252688484026327420333611492061202566409821058610744912526923554130329669718560029419518688643365718731485866547577866318290960748533443118404013711879420468734580559721098965164443945498041503571755292389122520280347427486298871878021618653644899375473304486254232913255963487959913231354242433794490158584224404361227279545622613156576962842119661792106058351605636431842370032440492859218237970021580130247644628986259256184606535561131628766330051793683347189800026143531023949864328469492913487011049617060488243696171231219035393370867365510792254364579127483193967240641353968016234207350419250191461508509658242686820353015355062791329082740352488697699810302414139036984257983599136566454290089308116653021486793897742441638062830108405976346381905795955074814377527009365207842609109261752166805164084874788925805828711098936542237465941624203390721288528592398605884000910818110846570322753036467830542483654096163211494892288789279387113606280718951888929301026329331673336737668359677815197426205666690936110394164668292477594600655772595891522104276535531478973413496936612079751082199590779040958039596123057002572048292640478709442562961705441390924910514817144709616896714114327497744545269460047540619014075957014174493852192665521285888676291347760318499885693000958332609997948603887239985080827042661190025675805599567321084119732806925973994353267837006524392443402982809809182685698011746722481814067926123839456833390691277549844296677779036085011255031283037582993735803648978694761005424439482201650943253656079075214810981337490550700202696430062053987295572286516407611361248314742518032338288076618243107455521276334765373530203196873107611808330043162904031733175960301113980126415090732449666890792390359137175780684515212422528437206545806023151768651260358058829404873703148033548562534622527807863130214527458198601940632921263263673296498681554485347418300341028014128068125573485355244574454040371864347325308695218997448548384514925110962379138579294960361953910233781469826809702183775685121973517870510751218756032685775700959504169546412862264042475754402449555471295090567009893445826721471123307945350130879367371881401754317833560249538756856901023474889157271584437347877269391912812999074946485324298842386842442084531303951272611638942234676679814601196981098010804409997484961032115721614711677655656418753507576079827977843596340118922716291385791692525674312645824287479652267159537634229083411315710862201114801476322758653176434212532950253145039116478478508398249806347117476886354702955865660390022216580030431282880948987699591828080888631039484080846899599011556033412907164389426948016068231663175671524593019441402956823864072861865371384614878838113860443295717181934404821264728303497804992726467883786341259534682571137519276372244374926788498682564326478740968936366002797043560453061142671808964697007420794207906197031222773943516817937542240164638338789871158231395279391853767642364213755788817982760002554927879199239830317685088233155452988681981335390133608019140202761253066458588206853244133578326427010301761765432162982962505044867956776301002962267610073968998946961341723480826011432926487034686871636651752890732610039763038474987608271478710367219788763544977124458532459278494718537585268893649106357248422860409118225823650929992998523476073775079932539663141963424045378181946753392228359743257049620300245006625629970995560893766449463627663413393478267646582500635187280829957733745462213531622899924116304905862746794954005029791029344163165273596737479140701682182973930994843516914187794345672335592666307640888553918391515355913869409478108123386220438097661916626595172444905329668247586717391903465078938333605390206610725391990140580222569421478406953997621343078408629004353738639540987063572676080481525733173770989955035895205665709577055234558492775306443949814478758154637918121374233329065149369852316164215961738319656773589852125560064376100360025688482859010353407539255500147281572508793424982417406922817870083184264586850815533286500627835558200794341234425129646829380866712600313487574589449603740448038868222655898456628074643773833415380653969363961591581335055805702808385468794819613322011376455905406726942270246119517938781501421375774025098168317757964893814517363404555887700055848102046216110973348381247286506720483104415011801490492507007903926749678715880141846350457472663055234452859350883391026766317749789426986119884508742896861688089408687784202716940334988815053360420775796292922235695031661410413533601157667002307132081064283285262651745173996751574572951367703228696383011889513928141130662225524008357952600007060193420591565609593207439075445704999283537119102970168169998986420858554211529478304379751336720561122620474037749750144406621364090406519342169082242498457440504995070359847842491403651334586907680929145093480540158451177805632833251506784671014003513478465082200809899548385679826959475088056569483832154829289923817288606759903788163341376830898091119711162333589662551531719415462325858998250063712862818693058287999044405950298951673881175895751962885100379366368683489428958689449280921439254523351252096652887745451073782202405944641856062799499012612528288509567207058613658292044815464805886106473673981964590296119334556581489898980954939408684944791524293157202576262641133131610851921093770612357126596155660403400151668618468415033116536866567777915022062676971918894989989840771685816003341026685554704726876430541984452765099560945772026188347190550764291331766845656908892380586289230951067840654622118630720106707217523886641313937064968456085134801739043856776914895449315300254287632376478358630669328088111346609328255351090675087851497981840463520773349983511935270226309336470907968698823070396308156787335985495328066837442536007915642690397393288689482746455693896029950487664950797937523157563159992918932087252860472604905250695185790285429183648937373404587567879737783667756566582905832663333926080651033172159309826975174695100570524538025284722927588810362994465514792623955597181532056598130379234024340447427939037597200118640052182195351751660567082827737223072516056651201398825604431369152847865188268513536725285966757040116648825469041695358546232154963153114316342808054142513995212964668055217558708222081362272279594581699297583998165685037914883826308627739763115009126451763989937888026803487653190234950786134453036573173319308627985330012713808157663942277809109038500316252290968758445935064819529941037985767529768392999262191023162164758818896526542306471306599351190617188224401097081361178173857272421471547073397721655589393215066041272548308837252560651440449338145254949773436177923801281453350963357086198444553417212423549431492601869516699894155032394741936811549024467790286332241176031900400848601870656234081033465587242239292614481706281465150953764988473976322911520649295500047171430262449995627119563615592819465181174644418040268609060790963937556363405753586354286373260029366743546143791569587201325220087892030849255373424926029298151480776360466957351109582812154530427978453240045281642202165481326549867017895538606999318269647181896085917986388727646000127019675176279433403351128958572383417318440336097905948992061927780758815128465044661119903422479338209439820653868682665964860127115257638271978634321714681255272383814065751594858832799907863120689500717169655586831946298230062840438567568294367013543710961111889899046488028177124186800252693835922167196670698673920434807753116429964808410353356199375884032196364914749430412347935171726104066298788183582025574638163217229853299554076002263004841086178836987261219928692922993580430767870040407596648683128271800813696888106704366188131880310072886771099193039886345927340269172358212686170008619147626342960818091808305957691878976524633111603592977867349442464132022511457489253498092103144312662224504234292608832443561108827410685204972661470798823149965703730122708772835218138517508063129501528183672086057342455275543255106855727209286895773250236300045980098907995927101516159066510123994635650181072841928793706460784257006351393369010268800644713610462800592706796445759834377170406582577505351485773178341644684872718307413618422643305498637228975720302605455809176302315250659587795701315922703033320074415547372445405629642238151147228045180000509623379618749909238724250907878115726051789505781198008794644683376166097535061346667540691701604102755793947455055532753860384050414666922126902492040420837329113479956038901313333743220430840333774347023593702156591189142198964879823446262234913321698639377354976329331096719604694084877474942591607183483136533414918427391265076360395258413108164200237621757268992659144066703564042742572741971491997287717881932733482306717037592576450794863433777463486547315977912456307233184602019159433388850708804201688719154841980018259619864068708041749485107141964298198593154683324545478984116347838993156262293011502838693587527238132669497200757771876110191043617483771027100629428779479817534295123907054198174721394710905520603689396806010978744165168836598951002695697526156465934387970831385901470103554124083785138780683587337210672833848096465831791532004365681815042730466028505735809346602229329816150028026990002986166433780761983158015639208685282311114976266281559704137217730962127414587737742558667385522982659448760723972509307243887445707825296345540082776963137253121383126807588050680691819634791967087476335222156794321968179428287163984162028806633247438907686812374088243692449140157110769385877096716002107003576421573461422586841630958560493343083651405862527524118326488017287272359938027230730344782013709745370510823761708304021697319739629589561507357926382637399087785893356615000053285160865390452130935012148229400114293413706919436879339670209618191293894221713939442181822760398251825399079587539050117120201786728120125017865142529221791696431441514477282691862268178959664130124030799321563515408899136847408264135461355893803290657385848504749279053038244964837869567755367260525138970960337150640568709993051528308992524793798424687902622646957452116257143936000728453465313591196214459490670473472465758773096240045349146873002973085390189785523869232031070468610438922091817014116221549102740769946903713242798422652559202851414617835658470329136330241712534033488391041445028799276590219398833704045699181133041043020624654913632247046129855559170868715305486525934182699034487181930588942921496803282514847864366350639829016176827623159553718610135390514953092641247438975881009660435189285447054328184084207670055424936083905876300267302608725173099518484178162157790753043710689129208262209167755157840046267952039279515016556857463251275472371156881347513301207740374768261910604921754033273383013981065861799127136829372584633881755795033069836581610280902347421016435737963272124602308724542765752848770541001128187442006182740144313821072810207391623297996451463039536353308114811166408846377692797421422444030000579172320613412739120881178202441941833451252906089086896832218030165755717285257570209124247110618947448536166268112254134017912467988028356354880099413290576777179040268964714126206642137049174141958698558269971148794534858648684876359315250763587444725565994067948758043453408144372498924572762491585480483205603092874397353055303429504199547093101299180960050381062607906181902126619953753043492152412814846300879119563763644851877330112605948046786987709211987543963760656719209165536113539019065169486551350547787734095106215753528990441164525525651490467271117781272837727107255231991409076146938561018517388326090893576907076322368514784568136916243925577227589521910385978435504795187769968089434111488696975641772934754908756848550769316381082967728153614727660733174829140274842356297672610875958465001914666740328978835089124630978700533543478562691448058690243903112853690160039212315477526581601604914750507429646410627272088168910761582213283429327610449461275888976528484969328210611296626551153837881304443718698377343999017026477701768224403087095403384137177377244253092152539286183532481483935817567357467136428253266096711109741854327251637936377524583968884778661892156196391339101512224948401535455624457727335548719807312000058203210625088902688044715611604283425361729734347931856194687128082171293034966483349773363841777715882537436475883123508475709531299446170113926269202029322839026025375031889304388362726793802661602763861486066279830711189078177870725399329852943606930075464492997393436731969496511685262164809668717554109248084461956872757824255632856263107777580009890419563268554323825750635600171493521192508539365536458808249215706710763312076192023866205964183978719329907982132538633179055827358123710473927245469282229691984150840879825959773310449054872129711593130462773502726295486589153306177362162303803608529444905013519252924960566610256202502076801831637552265330339961607332756265253082416565175679350119859138864065936825679254128334907640858584123152875562175932446868872903159442693262208070808905467076669845492893606884384346935356036438431406940086796547687688618436584239523795579008092674855559954040073055734669254580130776889225974954058335199916459247992514864686085346076466912709189257090268552680001308624036467872131596357316775782172478513620355436151033537858888240326781733510397535215350811325428975952469531346476830971666750521032279831690151536912291950177513104270116105548299467528203065408496709562242180150250753414537248701520002850208265390004497535186866984594441358010074080816397751285316998579835482983869217509234230758272530654068617817383314330289235673382056223088452869180148415101565525751622266423346624350297769778752974067936028408901735179958258946381497677350210046149063460098800310495976912995171725575256528547291142349892043725558443116087951983057958766966579402830125056728162953251511040450991646854741579450769492534220345217564005110161304049503468321909024134332152691379697904100909500704423744839464459014983534283207316613005296639162692759154878104895746280325859566299997623392162415926031047639636689512534980406694635744515595510359569222715686076265797856971910817822861344364452284527111788430553915692652877257543104922527008026444951998120570233476120663112338846456265474246842585985404279017474921039405249249012910294060372935439226927578924046757420001616539578159026545390478609790567700826213565808003889827705164313358823753114651552894313657082216672950932263042790217072634116800677930517516623790611150330433512078832744066853257831047032805217455929359339906771940859425882037379727223816615563420593617796057180843136498593056250564596667089464721050175356921202050250300430471201452100101278219925040450080537185149339232762663305332705826470739248113996365672237961489492841339165783521116463569813684841191078113652115436231531736988160872955203571012986848020822158141939342896482012993899094285510618394311238788996879712111526288122861149880222515947570891056958437333515292745722977805873403744473424227958935499583486308506684928619369249612449364787858447687801130699692880364432720381854021471206371801430119014290611382331519382920019490927046231572850019065497805214088973120896975150514481398558325678102367579629452456010262531735747423904400809871206967927666955676771966623279626468511200334563721953876100847884668190725817909208696389390674621323632004009102178586797373217420565657029598440035086479646590278907991875303138286267161201611385133086756658288501573115392366379855426816245042234647833894675940041293991094389829200332304988925383558531749716400211509225074542534465751841145672342330780691445301018409634071518274899373087242917987814281688743335353969989053626149859619661530530997800906074973188064492327964870133951757967218993789237376194215997945769447637237661881106017250085597466825216573811349864803479828608278678087374615516861805664121861278180380892618519921680154578746778401578372975810253264321812612191775501924575099435083270391125837670094415565421573877498829685343930723023010407691944275484351280757523663153640004705691313293191178795894908975613750919877828366770459589052584839390322121735566389048317225823296805450522648396421915703885047202326347322413374746796134255975371614464513000823112330625675847533556729917197809942754570010338852855034176935050587843243139479323323972596733686426125514686736952988750210996149561765470229752149453777002313183490912726368896522219747817285195283648452981888375460125455559209325212899086084402163711450637484461692223120711633307104043589886840074828706442304245546029273503227973833097508893630203699844079900931412073178556666301470342988307034252102520554105154176440010355602119085079191605291961040099610640701514936016283790784556669588831639046649550478936154292352132951647430822295429357763372449926969392964249680120660053668770183274278443643995495081511825322479870143027731945109987385302860474338769823094721310678871516247792663113396449315972848704723434055960990602861166563136052871427074171469911584842061908265542790812049320262480960152652450779009469448296304698202004780670513567150692240082827534932418976127700435961890136855326349034844524396972994520495027889916636290995314877464416467481032177284470552780399869976839791054987027383663499097317351050325068968915698526597251542695934037507766154498899383891660889315343356999392599124364979589563239657779069976065588811020439387688567687468749859347060798757130632023182220518747228001846163299465238070014179554040534770545226031289471851449530526467602572154971351318978593358250831289938844122892364192702679543031716952792720749365850381522344389701893353429495721570059261757017823132947512109097730079540199083281677312059780492287943070736418589715991622891992963304495642722918611094947520049551595283473582105412524448825003634241965761906279825946696928923272703022553508943694761186414517660110345647822883859373477127634878373836974729411539662394185723079261641003020314533115736679636158325221054268537567419080803383310718727917761987636046522636814684154028238211412486900515822216636351735938835794439220388610734211764590822864451613881156967889515314075379305342052327377222599567961451086501110052811629445981943776136120186730802410759983309779543414368827560313225093596310536748052709517943711488386882639044394473289453286090465160621673379896300612265703271489184781277718275886470505318404495631393510862573949677494400389835201243347472252782722074486259566683405433395974799441053014492791783351292192927727855293659241283220869545482938004530051616712902743107377561694288563871924345819283980677758047921133523321896730347659788480764639223645741111716150418526032388496438373067146617417293241813755285689170609649958771670583209080083955594858336472305603474965490453347826038518550581316996521861721234024177400004797041205229454170885730735316949284091513388419558329636277615499326673392179309921146451137484960592942010624957004006401828347004474987163334315574336873468749313640639483151469636981251237372049675674433334409484266515502198996788842470860824048671106789944824984291685321184005361998145571868776192697648999239170016663792249412668679845485058888104116604211459056254836934593540087596555633210947529956916906415105530716351566229429372564213086176643708187389523795679601789419316253707295287331886939431417667232366512559241002392041550476777412414327677930800399152436817344339882253578878697082893795328993388127942343916934296486562435761554801538345822295633129556302676260858192374514462687169450067582149984155416290865486006809198356310187105318668429452494474422967058890282910654023394526712193559741250414599759792437703787899766820521121533581171479097246691324976650976698789991351662637720818315503750321224505984150954254202416751313675562508100219430144717433552948256818517125495940026488709096177361128626506405199900141098665399165779390175716725683427743439130388910622695483323964347052885752393987835450615140505081371405142553545461323282988555908173935821655613040240342455442606654393041824475087490474018654683545678547836923626038403707967690311557370088050334957102507255498100899030009187316668209923179463070367748077918593931227394313905208332152869374491484435104795611877130051618654533625252214769210144161594823651812404216762235339897444302229939347237845181460413633239557758212558260647492649882544156323749228443302671189887870434841417738763754929258033764549598769456740920865904504328402385282215272574955375040807844969663908653138878783071107762671400843654349968934959600595625386770138370576420932532499270861658152026846932746307027755303140137114502499337839925310467403999922017361058241504414818689397019129621361850147702696434450494050935083140861444572752432210984234879123660674334892543520950131352689232924929438676408664814684615936903583830485376286919514441922498707576138760603716965448549981508042590804911197739234885880806514649222005470609962522593977055469065302533855221557235309289824863140684458125874277465154906455284174990122155876023793723638737558367097129777194913725600762150163088918889853632680048136434044290597043231943931400143116878545960567765081678999864790324413323662892257703954985586594436681603940281578421102364387873242353690303886987151983094171754979134278655075694444931077161765718570381282276897248192984928129828076904235273636474965759390563238590379802992394928734266791773600173463061279203161617366825996027506780691855013984344118747063653488188865034734504795613579081340132775513275286001734964945269319907736959561159164108079221705518264178187400510185719064929484077886079194916867988668653681086175187348205594892666951271949907240965404063765709779745682653032731706545144628773438441595537513961110439722584700033132737498396452039529496542769690888437999778867607886287182729666364636270372120986461988381721211812875374216842905328958744748668123946984517536963015134350093465383042844660255350580211034430175953839709353558768645622387982368997314688436197141834474980931713269913670912170320697540856924953643685877770796018058755278829505917450395373480769181714154449489123719111636954166793271060483587126621208562154292748798977086870664002257117989183893020858078671814666628902708567851423915937433151993874508785545638240058892607144196593865330451052976500491944131724063294611735509097191062465207342516381550329437559807712326889768018422321202883812170394631136009839828722171720859755368553822756737285048864258893590326192005744634489165692221198684669703985072859574148305678733339158660200469993524025627788626945705007803568664341382975393528926043302222431228178326733716309854675258184194129265805007317684849818708412191516649437773482667998017097048985755792245558075502376774060770594291643857164814471458311244290241859036785742133741429553242581738303662190447163560448902572022117145761465158227177567169233638416002215527971652287952455103996924701466590330336089946145778782543186339323007358532266884807975120873308015163372332729504816617998459338678406488495070264095113311472267467886737253013834987904499177253616358615498315696271122980684298021504097652394957184624288374098582022223899954240271527306587772065858930670866751954818383036597227424586232569084347265457139328085778955500489007870949850009734668494488564421528642567264857242941660181602117333948003353939236764022324388196246023437790059763857894406127466499009474491972023176513542592295477173339622600680748932510833827264507637350522973022074974069086972382735974340120163462064757798007841767473527163628918801615355932704450913692241995122253517842385089897970354550469275710110279106935160224420167680188567118855614780836884859258841724862518894634157695525208167819381214005781909814726256701496455674345002743680179817287338346775423812151090203051360744940099534216520040038897933837763478030455918362471357130395686872714073344758934995207455201192084526748805987861712430896624454667515932693565851764402253433412317053953750474221701882687490567140429571498138076014129114221578712481043665029795852722416879027119555408766455839100162069220228446353421686104115372408445102518538917873754353076968746949483895749982956888505154030680514590542697683776799927769283628122577093173945745534527636113599581006668903446854866052850386205095040248146831924609586576254215699316839986889976399787873827023165675594266247280144851324113233297894918482837223754504116422970486810873819074258798689356947127687771803394306382265083635721894515083019968095150581307260042094186541335228943540156916732898973473461434274170342576770454633908526818789730540439925701196678115476930919545487315596748713239314073242151488209371710100520583170752266220207249954684595461953613586864336298134689860164343782046477899482955934096361563993782704522713700047391514821536678316600719274520356527280571937948681372564430889661832360889845003263081396505584455398321711036503985221619064918174309653491296223070364088961616474200958499785510886733626978862156419046907074183151826572348982545458632789256351951761521099808633069592643644218589004993640471175634980647205041235331885330366200271205629861513433760995199323145944775838635976930667115703591454051171392360971546800340164719449417737587738337726052639840184752306029197587562766024476082313162012349242008108761884782401338990176822929230325229286612513397697385545837024843069389975768819168605814817454758873359501356687112553159788171694203801850475645879390227211276195757078036764840916280322223586229524233738004544614788941559680361613472521079928065060055417101272737073804709567680222373094124846906331323455641891454198238420582415536160510277806021758203784120886818598759152554932486887979549508632674099457886770505089953142595940459177393023149893377693163823602444856055185353730482514719884231567277791848936584097528592898597141163996717116587594747689228964936528636857594362775872569655198300016283467382739590734073484736573270722151657469726495433550470722013590250168673232712791904209473291306368459030113020656892744439966159976859060958892651981525216652613556919889186119706013356886959060432969381368146491512258336848677815113770694782512519170511010381635720231680569049328259012559775234294656973304406665458170698040461452553232369250656642204288433221134806082669746451102343321207640013228203792484426202187505309795239685850930529335359912301863005342182107992949761794034554678763044447564931996127453338700540700032895357490029656295297594966209651295378504970357763627203050521143141537110857038975452139355460918438629612747115741196056420374394606494524724809408773406228128897914115583331786678349177018003238931587695051325421230745530663565814483017018974959114187545004508970487499416769241540281319402022209557712873913078404529637077422799720747174491050923493477764154453617376418135225550802015639221344070367526212311577185574936446012142698143058444915733654911589516508611444727785213904003929989472032302664897031986349500351127635980271563477866221411945232605540223827765247156485698261088281492347327112449670932574540728535861044321030121817227674064989431538595149296914154988706603763841196885437871728486501815652117899627523942614542333051625987764507375468833190447118942984210009109738327849960670888814640731516183832388394943424327594924208122482081680834968584374504324085483887983407265890358450179399849141466570218303024930595370721847537975021650048271842980189825629777216421398928171445803195827896022884063483758432983913920304899927337645608527679036049175217400845893976318539098659462399281991864517707575284245826202073910006838828149575245239946650605482224851855333559908730196762831941163006913663434055971494332099083451674031051463982221193337010937812435765481385861086860071552066824989409024600341794845773932359103339036821714725454711188438457747458257150901472207123926381658159200999551819076122564805146562787253000201640384988528287421277423736734289833663055484890618815686141634773164158537273929248873654084384046647757835770381968266588253399802785415309179596873660143873864576842097903564795361567399021974097197637137746073554418874330288787462555779680336117891067322365193935854026275506759474739026092630584199623133760906857401839747607560582278461253119787351618914819582854039667171223256861682745669789483597392073113351709117003645058161741693846405180799784922673500886408212145672926099734696594607723575890186534144682447428609072302932507746015712524432526877988551131503377493153909268695039673159861858135805274594061732371601961598332219422559589657974752833670827678930836035286704293506397083629267974992309345453193220488325329150916457823485759777798355226329432787292811789513306046289510100562056428163827638187627697834791587904794426725312416591317879237320683611834901750901208425506782650330786348259900712559822422429243871797797315024731919297715932268332991923536178250872664924212676274788801379268399937446094153952124852314672778985840795651991118865765182534342043920001813592757978635235606397300633875505140888507772481150840418504732217762731733038235271965644834869939957545268960334003567749159098283427033694381708968490628165952087580589090134984519594861458392538607028264135191591522886304645333490655620657228891418706621659070218954271860572741436398513780977769473120606543971787414715041330504805422743178551876546649497640203344560322466198624135834711101123579812822916562501617143835581537808619296406383193611527842358533820550049744154314156704091159254244320499744571754672305743752284727912105529198775955720908448982891743249718105481284985527333814526232714460078030964061644942698900725235026744340334914874971189694610477252864041039518337997272152191044047971929054112323194673339163678608750784107399833003482363435857728009862739142625906549023241170692588404397204545345676229830993684843442985971665699637741911587305185309504538476719821589072125465254478399439665263294842820363808584777632679868953725161240452030029062334263125161454022574051850013941754174858541520222430136433239840038032780379375086449204685915630553689670159375622306546097859222214625014067587126121744674600323387711975583762841822065889642406091820440650582648545217046580553799171149471270751565463232106439426766290401356286154576945888824460059567375594214605397466853442806068488501465598764034403378459088362487660266169045095684457311872597302849786668748195499221328561478442332313056335976941508998870760432533408041140354922917874636709505232766686548774154325065272887011282670096933265147307433561610155178737285906942121283582227054397299911644031261145637442349422814679021333892905434173327697087024413457835858768783516448916179205271983165717790967930053168764309376178639979494326708523781680807763062417937661950087799221828828549268960917927175532247099353159957681656741156686011694908899255835629509487561522102648074121342598843638287568638963107553876826511315419331724532953264645930394960460189685287617671850176756777974367983204019717502887945328918929358491314097219459799999144757901156686351818892862358403526114356995147898871213935272255117201621662833533324389496401388941841545819017867970727899650361434036320345314076878910792615551927045238115580690600316756907585668858609394457281528112106421519793206352845681512065030721852426678306291870353503553574244914912169559425255742245272775122994731330715319052621268581097134429403860053466646890192867207095020907317780036653658373553611155905821611637088588693884587171092041653322391529695243843835411818375556691677353982149701472870572570001840556800544165398024621075646692881856058322218114775045031271393978864133231352982466617795223823962832387518479641546364862274670091228374171908663381979792606687523959863149646870614380885992027936655349368067665637114299959375187030087556449232319002000151375385465142112779457330369461311276942019636896201912796761128439593704736688489250151976955792897614966778943877266546919015644713035515926872733818512521876457649722099442886280475859858003089016637764583554699868222039921293535397789565325080705773289973942988478864965236818405682587609584180852956009783061899957841594099426188919260381726857522551407095698507577508377114376379130131854627336830451835830405768630951824494891931789076272083592642919305629339625494333613506191143675846576728563660335407050339535773686113559506073853986551504805430943365191487432884249787945334881705120423044077959349317842889759723051446511387654762806069049895021987074686090858144260957614090879443650967176660422449547812974623160828041520449171065413496336218859338757927105981421909977808111943463840376340489172933668220852386255989827366625455162089759504533390941709457798988584845841647128987395999449100349961812795407904510823631113837207641444592794356466455355566578932870792367979093709611118350584555769346585662608857184503025324775574712446060119612784617648257999625157370577125678836358366613404513744249648257127066688217825550035047364944304503597413969752997946251032580394331289781026476439128085051364339228534121586152965179500747627497682640728991590935287939268990917247591793013671721008167431353320644808972857375136949457679749443587236804243878985020683226031588290842334793579316083226030445974261673589353306940703586559951441840214978747419499757077408164694923146396191099969512767294521566167993375852640850712002458636009484736728476107792545310352068041604071621203989912140117712794802927126564580897856117693569111204335975682797075620361182499056177300328703798833788439159164782527345691481770162011442907067606795478306374015859653605247398393097676348222725208457960155049747718306300260323650591989000519216250953521599413147340288757856709807103093317903093555758218906584933050123339781933069798475754155100758021298596586686536935168060233663218224212094788322791815308098644501872441027484214745284682618404878365059904655212904696407434549474417771555807836694241498692258548611128030744652509480357323308371598472023899917384643317849951545178028262125494012023533339018236806322957290308353234368146380714554995528347473017451856230898096940435192996480538719090528201603749296809409163977418912110546690801978583038563126891163639702530386208664314319931609535592234851702029108847591460731004605530041222763361965138836033294600114815022145984077024755925602554322550559009967575350348569088921110193395102928728067051570923568735431852486576431908320357658451845927862107041732167449537298213391135512017290519698375505298239580821442928469774110229724768236809159875407734889733039144545361038360308393597567961337596743584403861396103054774618401089605354826322644009247490679822942311848774217825123028628440429697208030754253572062812169322229926165630265400658386794355651686391642131970650038936359324714356545765261694484648759333020792358926356443759458707566082118877691267250899723668880623876662897712028787495780079178820237555430128254405437387388193608665991773188367907261640480733803014854880239206776724014008099139208433684853383231319541381360193562069739412399539681628292817983457054585429344740081586773434012147841059130437251754974968643814099158117460237175104768977597835389986516083602103257711847623246907275169390755434268531053458946992734268956195095368828021516395972189753318636205774822976659163618133733918580867113687099351858280414712074480116509350816152896147915004544786199573800476346162332574410749718267410140833201536069089002453565434153215892953484005756588275959126156859271815173869891023801670868240356664031108757888089945571985825884749775060002808622847637217982658440191799432173875399589254704178908316307340327890488367169529804759753414625141758424447813608589467289082185527196939640852056514449217453918536816521342350682329227579498030060366156488156422991091829734933037269777493859056141355371514032552145421645552413913758369304596046543971559286818716874928759105120390381103471462984007974379496138062332427292755302122198734400105593950610141581308146599665369192386283257502793360903682768287976419780507302840017669111227723481856825700166619483914399567280265333995972823197537763689076243779800490521265483846729880451682664535199382041530783071499898695390498177258053812299890571723313806495644666175565840239890387293403779990269231483464472856039079642604811565549668766786511565222594507620456278600735348043240800657519984409180441642987544871564076438398280240731365433047353389114093350818264282973062327631997338746654313408005807033989488693815790103863746011484802483702459424668630420414691072348525706599968287505532538359682601361411941034690631483713070166865565664539145305049154659979360333215223142133352914005236000715490470455456062782915377176785300969360808692082874014268527743250215131256089339579361409159576230405093813098409927828563010160335683901426546361413393032986666905396896446409476900991179247259110104187424135496527321344223128014417920331658396875572931014456745658152050615614912001848937073828559221440081706069444734312385801808401383708237824848127924773290046969096670414928551217278134802867086358318498429020426931853957485662689317275522582818751378982665676013450267421651113330882404021456676702731748890159619112286042122001585569045740500216472006659564328424193318886118385574883377134113487426561663552474020985289464525650945820014738831498642303051226284702445768688668094504236661619393188399512274029912326986149355356299326704270531316128167590646133343402083475828366731253336012866695341543074593665870964937237684474330239895429012955773560417474107922865093781064522896078103914354187504662129913245779712392585732116917516549873927333582070836961297047629074448724253472815849313463013488237881955064882248431037496777479624801347840743914530338158875575955728519274120266766346659821673166035903504791903926354954189612836494710660684475703696901663078565355592984806419022676582683472116620358490557989644804519162930509834532398378900772501944214828079997110690952586100659105081184035286039891047009951159861329581562051814723641323665818700221847597870172975032573326872126549613118051018037071807189712578093270279959296186855525620438060139932133838400949310578566593511060399433472357444532677956820065317669830027764203329629246082724578543384733310411616320963105890296703392587087788957999335590501564334378369139512940529868937001791742183681696075434727769762424055417576607139120333977712270507098530522908548796583858493613876384289703225453920882733879864308180196078503175099725682592260874557782179756026212501441402234050879203744231926443424986799710102097471884757646715042560316579472276109742074192803788171892692447096433420740609758271459900560108039159103305101138141860586943908224384024933309305840746915253651614566190791475323499380069339199227984613961934364218472710549064595938649757882270478446052871478349526348154850869543770309593608709833371229915335297799108588455806747679268514614850430356868684756004104184643741801188863640663659684741595097676053592642297738386481670865113389496735017102167842171618611427484303576418118844696450787738982581114779128882438424920246697337317802182732702512277501801390796162867072066565534276045248115066348697203066865201531698219090054437679815628631318891660491863259340716002019809765990708898901490986246603860131421097282295096599365194360328144764689029373298926277237189675865205834026324047875261144090342604631849609553213257407215056042194548911965437892889515393730035417541510037360936964507827730776069210905130832505939163418571054675250428733542526434475959966183277452158727710279112909844433342700838472140500981921467725151398102521332998372617814654671267871058422402250706243478483028430061751462575984839047662232323693585872940129055066923701691404748045613192580128991563692465574952026831265678235271774756382774042297559986210622284440356546892516025840094690555112166981755949200445489853812432954853649512750443240079483485864259378176815989444039607015849254223100251867309960109351312976793061209060101558229721952811550011296591972764864536047517872264011064855037441295846184579191425022532426921458351771848551142901453128380897319433322679572398729513933383990589139384031950024560446681972652815028327610735219426314187192832386174204838881996615318610891160670710318708388771696848959531839245494062569418055180102327479757275029625768285745964183247109028923587861661548279454726424302639578166625445539867395805435671361719066685074948184416703697942887031611813696773518085500260463045534905876305692166311056023807611804949829789110406438215843326451022013916304161214672946575078732167624783749202004376289721479745264512084120731557040102829384561036140844941798210946715858457249948882880175326149616762299191741399969637618069588996734287787446792874523370997563877841572088160699168009604295756155683356900628438478399396099463801394121383462629717164340629889489664487959996393922825973893857088029197688567531723863648368048609857995264412905302015493931393265210888168508882990993194789778389911901932134027244314618583771014310379670551111992410657063915847093670053172069774263244544405621234923929929099504582304831677189911780384369539695282706522909569209154274869603674099240379702966906042852481043079883329652511327380399324374834088663007642788235694917184648613252633073596708660448133423888417180004601281858165824389717676570803765176365687477163152798346330914970962539329096005848415633389266249896914389790569729204982998931106795135124748163931292278441251775785952798557343898238232381606863336994398077800668548971772372933766167552454447039081648243068310660708228522987683957928016574423680404346249573979280552747330487044897605183888722845781894316534002018024840029885724313042677456992360964199376191236245240754491971905090427893740831293283586049279567429124290350026963697373410477270412761850317465631674418859053673877091408265763578596687827248306870216895296702296154299759058200753294263322142559012401179773860318994533588952102458403461943117705428922703556321969525919705185925075510484929918163563175342462990491605694706596427186834364459729501117917392684425586010277405987587348067659776897270165567044595707874163798145075733126474052412351660592306983891603396698143083004568268627987989145166250984218117590063759210163407763186110409468700238193629758281805728339860803385822030982812928726140296954759808780395874666691381835286697512260641143700853526593307859011844427157973532000138146385245278528070915034292878347858376738784677163487373608647766582209654740892154232101709674113792014156556667556968410194314655302032123119454085630532022383394450674966682718054794959835734142377896169248263542413756346072748788873650513312766097733441083455632909635537918917684569594363697534048431917078375380254466649915808511826148680056804722569319213442315532228012266568193690630135826246531158276052186210829385646844162668765448682438937753992813307764895376750283405080864511510427012532900685282735526479905658242879635770413514490516505259589574918534351067502782125994304719463243718791983518905887418970109452359719416508568967097652501460595000802377923280448231783851964865729925586441394169136260335668844499759869396506244569160079952855081664665582410507957303588830021829617183969987442685900271418285200501821222326639198169979683852844164147056614459683208806506265407864094730984294528551594511492079609404778581034899530850930549391559375587857989366103854412179824896616469040020645585091861304922919080249446367266726621560182564432773388445459510081123169885976109994109942788104570971306298761179643701358095429006968655830229984799192803319971635599412917413820480551291864171569605413483101528036059045746379868396443486825136443466208432384142167903438955572442616937873467517986367913781134326583240866876283494654771272659961573179120495171537114902155059826553999937238940515616722486002567885212857764025696573560513779104024913557834000760968243599297630249851177862451610579240346720985526287946879928455904808862065884421347259373297380516655397998461096951893957991389415978010848558878873223730223098947155251862024134859233565935140899632604710817772778340924689746626620462912913460839980762863413842596879128273111359776320660956201662597855926924326477400358419670759497435043537667510332443160877601195235477855422550968788985341768628649388905280173620476032523040413435550879957442350394601484721823128339362386321307773631335392589354635326817753400033293432739609352362659307698131338291819766800895922220980158619308935310720219486198371190155469499303340791306791387324051239660955610921001983945565484234625462601556579137418475693121324293050688788227220456448656775915133415628139736044407887299601069123354868512451710416203997341392921277502938244229192615435203879423959776677612498785949545535353757765395674821383896812734578780692661548470005657501717819446687974506483449090242449275899701848845608582149437120662412360802682699849038332914128349574314047137223816587452743209016492435356747766327271257757841070765204050589861761312330844890500532823110247537403964738702486885258017688444137275996403683544087001912063435053580899203067064192866028256132711833286887498743194783769133872723526240204891826932882572018230928149865154682510705237453928170293011144688138810907628610587060635932673334237196396287522628049786189298189370498940263374528296404734664451213127840906766963889144516870674763253166582764749342987395071755901267335501572728170000552375864627702130347105343971401920023630610204679099640309688310596426070434055348632169979867929498309336039707200396370856318447457898972856131817077107358842124788753956299335614943572254455932849951486592332717001287346961635685447986861816677191102173209719443297625219286284841868489713455883273189303247774958657372650501137585915137309354951634413803583654195358261173058546304669755597371857335051426393084491614656156036490377347013468062323834600444685968634260472155616777646165559577430862631080857283256920923993063472702436678584433604653648662548490332388831121781176961101054515272493699734830794669181939237046170793394041609195197005817345482497534006348066280763526417484646664277557408085088931781555185606512833542023438630996281855436711281062720922449380867999941999284155009050455561219714281336738915279007696099651922790243140834113213561416185741563627714508311836268848742279630413698381725090389120045596369849947101673222911920047228149615793665583232957469036208142351047410087053341751905141972038495308418617029040227521403614637437970263906619267074626987551165391726233214383658576580162896696772262885210641736479010867527433383199269919764134050705167478881240448882081916851245336975596446075091079026398272935696989827930072406354198201638298011127930343427050778615460293482126871970325111182580981742580275077109016040979850122413283961525709038030657809938885068679131981640852430598481211972532824481245703607378936899957361107271137047336318190319968258195615625006169370469609821117985862135879861869403428877194501756298599888397429232270067777175495842334153944389445105807395021125598431753465908827028767195212288534056844076346643883706087793485222274042218957702917273217903207580924051241539727417333440001260063623823571349824627665035646553125079205410512530912191845753089040663946982556185607047123269448536646425443881403796435501562026643090332847413721727115775119188902104405460759679014029962959044619443082427811837474620025825411784347062458897960380022691644661569927218691832923578080694813175914005219232442983396355527760115360047866286344596771109301603922515425741319729990020789340011123278510745978124294115218310309880309172441709633810051000373518756097079647354900381009578177040425612234457318942476612090242045577722678327807368166308926091499828236676468735968303928270986182794833938016863560236900498611062511302893162300517748874930704336652099095439050614814820254527628802357656338248987062531735404370417019321477745562665981755142420853899143216523297173450394802638973410081317531696092528089961989494590500545238140877864242047466419917666527332971874932991988234358270607923423722965472618444427455006777711644147747033221981173431983448226679342487578086280090946125605067737346071822324989457727755886588361831599676621034174332337671180552526541328618774920859583943275642705684803168453104017175631680795527714511338619090556924913822758511570182222029819811561745752810940837697147991855362087383237273457910351511842303215289635619935543866312987357136913324712780439522324578906485890923664821557106222363094639872930144562201674418951530020087543154563021086971949168607239022578639513397353550743359456534918741230549962673961369661852473752519506672389380004916539853681939237653444471071196445426583358230867578886785460541110741986701155263775712864531671893234189977474965410299995412502254675500715973982111167668844031348401042972880680139459151469257657509200213498211603096854641251017935154023235494813757591925495750516644794891181130828552524314659331415732815956704427378204400211021289389461541204567423375547868671964877468266013314153622035059621411064802985221786934927596744028019423227337282762792860314491248817957088458428188856527426013937158694160507938251942692272532156097140018576334443687890122403919100139684549680041509117234026156634052863991946074765590086050217782088853575513790383587107583730199418098951427981240335403218176220809214268154611497748939293126884681323917786041270853207729166406076221303453830189739154829240842848269503715378072410394858924580320151746988141026702384771565034781755149697467889466444774602148648003774331285373254852979685981212311878365469836831779571470778009198513974633859619987239783673966701552719734173627750922995848137728507421307058884743333421416771993832317915581366356161869593531160143382968816634090050655636789868931982234789845314217972689547753055004516326908662856739488672833846963690925998191887252055008714303608629972310001930403496873777406452437766721409910487732235674237108962652440971236541488892512151273478177101917047354513113358987710999378144481204240755272640709206638515622735349629319500968984439637505736002921424661837670955520174854808939301060858174357276653644066188697145874943336137037221749485364168027553416725685495590675377603616214249853884208976248448962944026874137640400501590748017572459750996366326380521709597195196137128201902934331200602613838386428319864308043351129994898654189196660292642933580402520801829245793806434270390010933285370376261120491302563883090162617626223699340391455183264922714770284615520819242085098305975854719117168829410690319347839688201963798083600073795405619089352572574851035017434803208246252587013392101675499652702417554474517091305828373042881694549897162326843867554417439480807622015057789205687204269875374998675513919091528622153813612886197754443735007542399773323830319628282453768907680295136095891043348150208753040373359545548696641543560982945803233509491393880773267126104092812959258663546982251568265663743115894700384674002120767384135562914666607765311404534662312130099788010872852692089934485414730037066208601798552968071352493197890639332004293378013396989002260855706213402252344344054718448205811041083553548379514196592146129952590341291668598453459578039571455431134507403968869210381098755411444800175276702279871061197961896739971276969391953233534129396242607987246298374071411188507087581271069254890395666834254600110812061185169712205006244261252726185629563726532932604806892613391633409659004592865067287316319676523438846218032700289711906939981519854670166460610541902763587624052367007881009434703109299250734409870754638409060878818541989361199966205115970445346333494073090335636565427726083647920032130766055433940467193638827617324751648073282236399872640060570822972886685293092036267782203613426679627783016209608665470733567113841923772996311927140818804752506601688584966096764270816938693526031972247237852959438025827906622228456852212953732977317989141251065402736669706419869363291163391615787577712264435897794409450413778022320270597452941769717309575662170487034165178198188919495613598892895495690043730063416275153302672382581521267717890525887835383897344969450673149451675073024102183323273414411768485689549073856966943754170438064093904235473185528508278678815212118772314680144527429615981847617086245192402350982150504382507326303137784370167576593740177691451709131792312368499227248101445285711363864993116372585658964851583151744123374015460158369416737201674333615115781080194032423998499816114135872214003675260712299112775783752064723832911549150128681387624183697868336943482879615331024592887355705804680431149014884889645484719395953168455387415327952546921160037827398435535502541383005566351597034001095161794030497568385053219207150841174343161087356095414561081179536206934679243355109153328172808127263910225776443513410024436181734662493750217860151224365353389802776603660163650239548434213056828118800384244975563515687508372036954747939077092765837112248024929179710952522321269228598762193141495871483079161092070443579233864536442230902611584530156329900974999465430490649178410421720166024215234710043134197529652613948308788025479756463865642055092011794370601261582600276457545134610838651952948197234404232054215873051810280873363908461897379268490155495139488323858565528635372380050124466111328208466723870300585948835221722764661173805326766179658230611850402187398650434468793383129609267840073225364168546226651744495701034239049106546958572974071529867904513629420374750608626483775248820374417578025145422786109104790710576472308469495383448618590023563952897558846814146115082051229368686780396133961995557787321741040617549309587993762702117974803742035602178932093539912680068236922683919459410180418710959978229026103576730192316667902756419021722403349629125724122375535234196681509262002099169794504570839879243558977192354741212788409340930079844494062124236431579369375680203926221474037402696988322831497744938389565991065304240485720238777080601953849985594510747458253322477570282703902948203918339053018893993431287301683693220656312513728069179993201576296492623863547624104291919955620469254306139442323819859653910069027067351364850441959487949589842661166115828486929173711595473722049274739249998974178957266159987970729826959115218938334080869843152065532961753634543221098710348796511625761989295186447498786646197749786443335061886976218984414078637706197163293578717763663418266113325950171003993927749595632327575455152253676860334824067160034343855811963811399629244851654160560476576207836128548981441302534842438837486149494523703063040249736532114361491452964965616833124565525536456240975300116504662108804548549816418065157777609383022666841836447354784599016864518898083728068230813098584401157276413033266550289579547578792859937577390972877077205599150649644943452489932207670971816686064535359524920230883965989654934796750027481722946682469645061568787598974814020683398214968121179485266818163275735181972702904625636341534523512090128012206536285614889443185319028191131255194620217946666647780193542771685121836304520583874078260591145566863169768821311312646367252693008645462474734501732419238744680201060108815968567856036808734897631879233239800760084939680284582273187551994954384364512870504686092062215812262780306704748075465810415937902110606590297703524695624533742055364982680761905387651969066853652495117714965848572506022646610424825363562464020993609590597551110452098006342024645755070832154230932434944134078149317771818156418871967289906742564099451218222250886813216977513313363062927743120627292881660092412060470397747433478763836694884484691224158217181200203165349421099826931212085916206812826345740762943843086071766172678462055482038169995102499813926407137397923867472239388897484100247394594836523460261223565110908467366532668002927002780140432975951137013654143492911314113514716403989098477903874700281496562726067150022255431296211210009857216654393367653006509064235791143999253037110611039684189992450558816765893707403139094000756203969406184868343522513793821102606175011977816979351713079437563540282403434765100681715106334110168701153404072150097574442425818109948606949913746171908239417496894463231903222549952408819274041452116060954749937936977344796349644084415179497859674715295869749733807147043737600299176680238482430712234043290880039728215723210285663377830664008229076021870488209668380174276778159481169780002344840165520732614388879852186488629021496675955277176265133329619368479596369052165688021607264177364296223758817609258605936331981208430623391140569547982071431843252115510311475774646629692302555612616995432956267752621531715008399789368903980142842878470277367887353114659727923285812618087874072558068892550745549868367098081435415328116831863521619439708383504995218026453684337555290768709964603556004067119191398755462458721271906928256674904056476432491354158767928000041694433241072463684214328631655951114724670318854101578501507360368677252192656501466646790713056072311384008152707630671908091344497377834181013795869755281740266261097807469961059786667661652692186697651859369242154727485720762124216303579311495697892064674726354654367545546511390364590996068726130100059954273879732317585837272184162979409588609720165548627103111080997480340420795075085659791235552750018765666908354930545684879824994200684196524453584295532591614406008086422437840778208329483557585995009416707022526582230233731317626359783472609306047927912931069373610880633854769614926455580347718917691421023288518384158174400568050921953945571116851851140990279821043708936330263604720829903205700169672362694206495603009336789417346756127349324064452025482226322505694431164098412835240358267586287436112373263506495508823440808396139619070337128278144170602993352376827074580629703585934465568664135032541897854061403401045283109778875182390270683622381190103844762074774181774700463392102987958726842198099831034371345704659332984461741137486271899035863639779751726680998724105875460979081237260577781211163133120100868891856674283213152117040011797857002804281809722478532961350293882870482604537886021992171660863887952444413931628354456121819390717355396111694803895083477487391721157891669116835574992026958813362285473345757414598449729085752486531888990956806839961962591518099994394866814193677333935446435027307362865818473166866213964768479738388389511022811009723271511654090772250384666258195054288888867716220317730836810320780011089967697957713758206271266971221854521404138626190436125219641148699363986054718044370353033243121113615861601786947716215630211840808497973936311825765514807762017379356529363360413247591110801354247804401935629595366825187772953454267760641544447906368408481878136915138028402088998483202739501431300091440795881159354033180721019689178335988478607122033026595286392872717412106948013018133469068362466485459940031910450473232810500750792753560016245933129022664035276757520147630068463585159618843357829877286416189178806973169819752998877500707052038657870416239359306194970509587217214855905213508639057360490064076566911943276145909180042096716481504623321969032034437229112615713746252584182817213511430515761383170545879334935695481676128634366547388796223476350159523700640392859756685913643355015360561891837379630088588658633858093568341478486450255632992975014033298893997945867613722095729786777035237109829531357988946673289039094650462050600894651417740686176699195217287301755401740768101992240811460716376330865270397723041229188289994492642151332217589103518719515233392433404540917940942463183411069273768315099631171597255223319338278579245868091901515205594214644475135510392746398640973569038789144238088077436536112033316448898971450241461703903040504212402314000308406012784058334624417307482544429390685749399224600585819100163214236500460565261715485062689647285846558240420061259159521001040173156316271192371627187913572469287153182008289427890208779834721310850817411668083142778619602704788102267712073451328832629032629893203455653513369120296472446129490883259134263781147729678978932036360597297216429971254730199777847756828874753337805816585637550937377031704433319761677867360174672371627947715205214514940993585346936821721250075198908673635015910198217088806859416513269398878816865538550912532799236988025543481207583199919984304414304565975908901575700452392817100426529159519585375254847831863436782757673097658735533719240767915517779617159124512973530297863757454679581157152351321067806101231687961336738222394665817626847515161282798284438813529173627503407217659791599622082622776112459149237418007272535722493731976763926024845579851160652510530995826246583519554036258146878311111097673336861214452322502293430189077544149786244560422355316310657392982227802378477949857360955529067759247014826610462618677681210326743111846950459946408405331927941254395459983899486464841779999225845204336773987915537314936088420309950242102057481568621656579466528246579808136851943178459279261120830350548259712194162067040572848530128653763957999447904358546264877926557948895198914802329701736480042709373908844542387912659666876155183398052776212568547367067859866098723280009242240656962728779490387327804724657024003377386701854836194488511569256657649288160341046373781800223083039408613562818221634807497288119944970370782562746961348702866432495517513995558189646950493894749568868829581173503267426348481576958257329387183610528914754895876238803387625380663615131982409668674371189146496071329232479331586703894476648872456664859324756669886388339508219440016868800268751194360861103436392878378018880017308701067218268542518542311700158523556091009332081101020334529679372177763264365581873604217257857681245241404801332944376603130420750195932215970821424614352857591652261154349026676649729446343396324076350079403670122055713419909963967934191407975402029430611209628243843279373358274253715926974304701120271583749094560247438719414311845886745126741015454785729117000956005808069634619671937516284656867664462072467069765415597393085345459196384337026012018367341071924779354247274830317762866863406297838960651186733072733041980186374300623759931363811001223284745264561105471208938380435042512770777305046257014115024076226520732504304977598086540368702876338551921854612802795211738281058366916878202296564239099547122990043083050769420448619295414278374552206408892956421593281571536511725786723593256847786947322068687557520218866834555184793776704032992579976237505563820342104130699366840514002300553175424448191885729158625078326608433746255576105706114081116821490308662191067471820072215530683523258082381201982767603513165941112941359675888487566170242827753323660541263753853263053802962010653516649068127485692106476538185445483145620906261907122352339982690188874292988797413526192303872166908298675393052614358485493701075181626780438145765556923222090970040316402535070994391769160712988147112914295723510482063819651099974122522329774337507404947484970499687893108377444899440898074689074380765011813478619791156353892995132854024419442322911436516235861439449742258006248974028379197270421399868708124599099540335661025873941378166181847640897274613507229942155396682192513769441408228958068008668880380160808044433950417603049326785206329294030091522643312003324268748795942126445123240569164414151423044271870967285056278356393051978101063061302553767758441911198517664142300154523094477731502553045797201270192607695523699677369450504980061383232550694049758768693105377199106176752769456902028388195248897194457290184921639935677997948756603098193704491218056455093692722571334220237803650681067058880453660766617249849427155008352124203481955640184792827079038338416855449792202787151766306760093136111219764476710180354993858736012404031647030060468952618518362584074753934068878278369098995292401351683310729644081170647212528215590994167894064261817247808326842222073814778585124859691114068396593803615445981139460409679608885677491834041327652760246915021092937007732423527636095222665433438064888557143833412556274007168060206494171530366744035300480978894805665791940901914743682679695601351486005898568828152937988476870201908660476222275699286055549870226060457826305054401713917952367572320870375831397167148015560916920817882886681604760153190978674541870787070608153659750267045920404511861261583881339336647949955235769476895967319089673863994564426116132590089199299036315584131709492967173217983435731684236974623853276526236874325843679230292196910054228278939290502175774291546306031058393599594967229177518663346510979870976979873677947219281563874006366103057876713976494870519007028339565635186573359994245084633515864191538228599981192995979206918260949117262753493823491031085766468503324880989335818259302038589619785480746411722783844276307868660691274895848625975208846987997435120372173844801413076358795136810524321305939675169316534707021805549642661436375252111991351481401970590879442179877605302764966702621362961750216268654990984637194996316493084591988136117718681612042594519133167461809303844771010582261169338221498622927495043836936913021527553259438151744619226911445276897848386022755201966085992585930530914630127414697855029273677186191284075123895584733662681306168329247188848875648607125117021820426850185263956922875098582495483667544024504416349894495865050948330829593441105192022891863306038077169034890697326144452973743377903469151059777680482636035527774216502041344810740588963318796621717660387903480903160462688801721113294541860940165510589599812272472436995494470076605405122207736183944260514058385693653249696068268029547484855664863457040461560119692865862498361040095805407469981631129071121500970845737770780591510645753974474301017438417874067108643310660898585220038211403036225118659453636293461560233194247930558724495963208387410967335621262989729770954331765817053580287470678962496972633996346933881189764777536944309678845676678766036632107709840714082674818648804933261617956505330896522238073620947003150707577885664785163201393502784889791879271436162332860728204505688906176365632832245577224173192458928681583578556979957107216840261743046751312760102252360665166882030032523624658732823355808858142922258406917321470054295429180830186719671215781813211655770840841298156762601986762781232530298189850736496536195213805862577144589296411497498484136383649520626888787955396256407001922418905604078413636822190164988383543547398542822133533937720697841320622410489095557635329206817228886126478706932313733832825949707751876617892370854878955843162777534616113239570185608549162293982034736476908610034627031691891599868791658797833955590914273755397442538929183086655670109987246236997762498097586263521447899710994145472284763284682367667056162453899136599675730479021972700748644244092119706463756987643530169559295281240036186887194861319420049808936477373863545809348690064589772765671021472007874838056069616967996935168198761269522469234785882982951544216316469300811529670743714294972209055715390580046001228774297907521357949263675465899594758370862850294963419626332888297240457428750703291596577294976298616374278954768044552911845870697235755538389277127572202356268853484872008501592393522509745369584220405560154516470945001684912631991384890452340900280503379815078927525157403439939022022056136170378992503499003073620978559921706352383592913685725736842512371219628101288576149876926147552916507444074571543603140759360983097617053126690670563526765721503577779491406276884723627759068810851862580335014037995206075386874624517353010361354403539983566648087974699690177178235137717123565195064142671555018570868357900902067326976164631601263873244722830842706830426283851325492348114204909689929188815032697711364764447706258111298191323429374733567026673622509171928969001737877724495397944679894343167860917762325311613957402512355590865193527486376864253923793625410346566207369779157518484220906858224064646037557710226981105507787588569328790446582149766386224456638924583543051179226267913203415406803297676043024681433257481827821771721813640173242953628223067588336699644899583512946188943197818870370748103413439771504265595461317172136382520012620612524648804462567646298725994652510671974084227315102523130030147362925072607160579685827354637919569523630822710229166636028572552424600282464024231913680955731815640819561342993478651741482772388207010734373803658691899624204394520673684199529152543028398600832795853075856896364290320783294828381924812860254474915532248267321961991678290316948028131154255195053580725744568063412211987380871079712410644048286497787583257916200329032159299996718233029840120929998865416196680851735677120770099636085173170126758706240492405765845864351938313155642924201239739123305306073058484044452763972316625891518943413674935206488869171241846969619021876133494088033569143834271897078609321391748010606123978415644913809723430556125007615688877038186220635608381436993948792686472779807765521585399088434812036357425339882523129173723495538006371538680683969367927593067477639535862758286316603937306916172577161368303151891771812130602406495097952534673068714863289035483490077210814637370248768399758088155770261756310984900521549128074893868704470729525204032554657153819518763795675976881291808900811377122046170503700665675649136979436855094087977063549845562091325871223931639653344067526851973803189169939499656994863835013732212402345320685081540786078621031155645675458599274942782235729745531350648718502768505089111745101684822479358759752680431239406927441699659979139237517387033479834300915626095333440455180597444261007452071757938974649363488627710980341472755986772697562089849423479580903052930300500279840964790510731502513056028871176440586452353515952973252604418063611737964772076526291445072426019794417250953692898303760642397373168801635998696953286335279550246008903208801870873443626017734755670707829841544107139728402482056717655673732740471916770654400095364736227472876201823056989015511869529428732322940245017140000688415623708849869032815707123133586546258642171714376871900707064902896793198627378209133402355413790811749449048246538992481544755413893735690925846253293698196902892489612955800869688316751503627669379632637947318927968697313085339446672825632297615220458360944031263651686913355452097264624525714819903361182805575922219499118806716727687489049272744016021327199707464078041765687606308076962699993075393691389316280982585418613388030880518492934905566311823046896652290450935354865572290680470587229076379129816396137286550354863068871254414297464606539844800202764360306534574499918200294138866549219797103734493075016326591057833040785049334050200769950711447498925995150328427143336399168368706517140931459237605624341127745721245193419702337002318967347096120572539140490433526413997870422485295269434899500577433380846234531897584299831579081379519362054757716159500954670626058184511182933678326620507846358597403283363512666850510827755438363065552196839538279604432217778746388856829842085060855869283958187381901675695911115398280053438055658043452344594470237257506641741930266932455668123432433117862865398061362016334864119909731707623133254529720738880337609748007041358250419352598118961048325555406080099631270665425368907723908413054125277245797135971529172274981785008987121610787853966053006705022808520971363858960398363657837201885105929165665507705039994148849358022367943290181297978978492947504552324103843477167292915427725781124012270116024574514192581690056517488495468388654754185358528543271162488827971277726930152334715003313517174084208498569482644353308770216882475028585752612517021788573148856503866943835153514580504602665571436110926879691680312189194381278124175125429080539919869253286236378289008354843542097281398063513249918069535826346937299837842635309587515863957182244988410717711899460849069687317902204844741963457408991220930127628082805677019500812451231878892182459189096454138251732987628839634715660672775384580882284033344510490559871905676837493838363334198442874923616544655291606266888886772202497902952120102218329880157650278058634858507081582004787793294198809799155003600483363029448639719642255216412648814926176417164680275163239270207233388681927117056019418395621889551990087157740505101937570395666614099315055500172462119519575425789380181964478045177375472362996529607819357011285726754212474909543638380720057527690517219377071989447594076439744521092430484797993068895448364860711901028671665875329175603164049033431362079278088459108137952752751413250315403404076636088311473266892898844932422494177072728207324213866280087233464774818174606340829789809348551595198648438567391463474347376275006233383790694555137558761159796886518880577547665594284188728342011421569049912646124955115438545058399652174194313875373257711768416788268024451214154384618848452497524931172750538464125104994533878522702872252035097127691683182144010746528220465911598572995294348371534577821739678398955708181244087324769304066074087735831632708759335788296573529398973967363335962742610818251956423061213860087985468644484021665176299276250280228625924481769823083270957250515933385029128042671111809767315354193798618544655326538057972350018364772333517563397787497830469626329214211593458311115633567443734399040876572268226249828712633771878964634813189690229009293977437237693654970635549388234650176406755034065530841782977486513700239819828745884355332856076179612118448759127037439301200418867124284301121434827615084039950589122358534639300130028404253799872603309385768426771532568378575574243983742112246694521249176286396796651016182893359588133770821461460560444600881511643031179696237457246267791902658916862545361095175885288778745774889789623126585168970720932004840629574415701446361565830191126134550592454936327442597811581567071868564536986525224038995179742343747228321754317290992657411073381475996430191279881849218846866269140486890967960214791996427429050885937346673170645173077038529709854423336859215962029989730558701265505768102369424770477670332978339575981685626629194911962335220820332321051947212514281686073337917226777767237925888262844700609445568694827690768137924896796382842743883251793252316130574598623110478187649916940440016149266715549972515199845317805950320930490669317268199786896814882992238697074414561515707983648395968687929775523572950372941355746251961635748536678020099258984404256554132100287945820640338730768553226974669562773810512883194671904997362020373904107435418741013939589799627584082574881886824442242494480725534589908503876535211731016452789500692908775164629560663323691717545509193104855287456796405076999113978704565061300420437279503015888860230670272181407468348817808713587474405111968576302644449321883476574053832577853025639266475654081061948193560894744588408030281773515822341603750746799348244974768359921615596589575245285619865591780244546295781945038055119454558723482458625227176146317071517629228095961197508320247439890301465950561567875476378491942385294258931628294826904870108621144836543756510084353642320602605432216218402793642036370347062456126158680717001445899401635065990750779697666131167672695991780978240622786217766355589071435403755849706654014771007557165288464794151468148854290090808551062261101907560645345824323011800944578330056424264198680661584961119926860820063618987454095068587037481675509907109609840161349055671525095676142762563150574736225567957284960624086903858741397656108163991826363708105466170353778124448474399165985293430847568644913558978883902136306577497649098061977789337214215554691531643710959052257238640212074588314906346439332026668869253905982882679463215966321860181710450925382812072871516514012948947859359161152447827720894472761405223798458435544919102188397275488998169781648365709467835289488819063601711145146380233523271574608647046761634713076385405854171725054770083409975497612046081074843176566659387636206728228457846137501186768211546421192135329127675712341165032004341934065020140644513927980870890915476014150679732696621675408048855812119869639387235799375308035502484156682847810747637992616890696641737972876792934042554253138264789353278554046632544628210110904156985175797328686125542781196054754923613111971157044412847425236753564702990896282236707713137594806315733536746653303615283877684786579978072167183061145680751899649158405002175651106240870507024243214859551681513632657289167755603833976925213260668914969853747768544552380933697025427151838939269980010969627504977060331163017770720272910932956378983562419844558566756500356058512200094518615196046224189609367351341856899088667381271871731096121454369081712726905837396615930683244806661145107617420539607425840877293028399716552233212264869844932311784756365960915710442367324525675335953710422572154481627545836757003590816059909418195722398891867523483013665024327887818579850457229991579719260654549204007451679941222340868898461827120204596736143738214613837382314094746779477895965714801944587498018668760024981726516050390071760353539192652866382932530292703808122932435633451614764333799104134367428894849266824179604575675854586206883005852929276560048065135268748813120713374369624128010853255475182358076002033899294910799567983308779321002949779362132837437955658804861460957720876848944044017195430268564471827792261437575054285119041778883392978763882210514628498128805461500675563192442586196383032621302475758324128944608604611401532180410146111390046910765930499142008745658283402196917974583138693338997537389348645025602750718049031790332842783298967008333276909637223498287762707479775446533356265569552085730036906779272345915238791429477393768855020033058164226794749774936976383250816846191098084628022390393178102223519767820189680552829278098132758217432842397980387953432568888757367069434872839539522170998389875353314083103319741213848077622629774377381109347608289435499222208210247697578876070037318416282789964472156068407831893032271199221881702614496679417340846396614243060128825675140291611863799659227670593922814791787579765877985361317648462232605773824967958128312717493479246007170933475179671316457696127755424118616792998677093721590681145978714066408009884392052073331154594558438114903805445310364938722939519106503854203150857856091960249022409101480185595485815312678010932354061846977901999573983583790983282018767267685029639108258949399491208686826369205283272493259532189321456142749709995637922948320588787598196530987069491681452476483736148435795115416286834255044973122013860151863566036253557757907042553749308247488374672323835435148462722414535211171745442184998625191671692317097830731585635373688251401965668546495438518724756227408668886070819433165684702299375567636877035849123045650017580257910372353185794670508045436933352321714120593435929106879201282286400302196062318493567220277645812596787851461851497166235547425659299495400906334018543748077018258671784045752016206752532164384695655361286064272201793336974192201311656852909279575648990278861774786452992788731098670572595439053832570021729709147202494355334983426212836239790186320297399758498685317967064043296724359572842877415324331565451406299135126726120663034393175114927407490662963237470164778774423321407655152392164392476737577153842475033730100857112945423604566743955038043074038478176126215262193171285490111756586252353924901478509011786788109844622743538976865411644199864236931842976190353634975061677089251849053583076878631039377752283166528848580739550578105436896894700696029552022222798446864257377388660082334124960110386084638977168282709747465426663380263791402735242938626937908959533628788446990921436406999341910100496450635359403867984755267713897060740021946103124123274541495398788594581393415666097957893491438709700600227625302693014164446774057666111654802993982182914070952345858585372683002682868359242490185823625263256956860129936235065840184041853753692047067743564623466507507534621313085105168302129917867097615852663848159387867452757075410252879595028033196433488481054994483274328996502463917654135431729398196497422030451036271622819943346383868146348405547469794320845446679903031415060500739371482087558355382221300557370355998147719097288846084318322066512754055339834434011654688859325583266457344709111100315860970073316328253416592057244236848494699299181539446818897535996271548979345149238579566823925488100139313144260968567665374937193702657526608497477164561505443509205190094962847744311350782376349528901434283791818525745663876255960172051904778708973409285497241166344918567591123680139833242673162604896160439246826406099061731383629370295720903556916454847828116208450863107767394966940431218742261497975205805535389034803656947352275660488600889490635675023304518243321175278531935150423459623492203204151952696668103314567923025465577708161125534541191767054594595175714771638011296772358653142129161518006178736585454880106547400006669466862849426990859554688605804041460837355209857787973835179018821230163046527327996455613859140538357313348378730055528582107610023292861739803910285779375663998943704672820949851219187106019478636086685705786344796097894384951570595599019635305424663297237244154363793572437219564731228619556979270336024147431130450997300514782512353717073241818156148707831290093653591246394736804038920578662004164536095289800610597065528951106485242161592934165722586639802391652348293584448828633308333765199390309862853810576364434460326551248495780695381029115355910831420175605461144969734844575417704081540384924769642886902981829608852868764649265765123993392554227572312970739279605358758010803715720897568617866119574170986454410145909913642026287746647026965119924430317618256687823017719948103102886197563208207675752973350184348005662732788111558115603170800978230527616870388768686423971958660756459058245299020056629345249415562625301362585990565831742092073209150532004679405081994601642146084232048874066287077448483213111933313826935143042752535142208697824208861597458648768386818180274815181488876303385360732348085984586495696736680908391432605927457700255314058012248688790530090261253870629070746841470729373464586901353287635287229317860512553508386688458249850278559049037447113441641278164157638010180749522775666528329137673615875970233175467032338565357949222706865120530660184185270280752178865483204354539002871629130723839142760822421434958456614288226425509492156935065163583616111423286775250168611562161815308511823706133807261066026319209271823331982427318316653518238593663917362636036540374875569417447000182723950592764960327255125954906832217468070322170256909930847997445451556587161953439411699546412129531848596585518689424308447696534644574621442400801950914990981690017032323153001403578891189879721700587485855632768319772806401330284965161107065858628134333399699391409186553146870013773551063251606634179648824898977872335251300209655245359876489592762642686780618737956818188078440357886018379904883847140293843260119058755303885866452605098261292426047611017743845286537302642604522532046114560734914171674375489555945411262147125328297427588903005940576033959677940058254553290021115177104735217044090241714745522922194004135003608393515913634685136751396538095704172197825111466025971955076261865719659457868898252274703840515391476408429327281873281771904226049070181635963982634548868820034815773271342044260067540056380930130505187075903370413141169167503631725496403195247220158787410902898102779015099173229877877121351533577267297480887915470694596056320825188536836011660284117314007232116432095747300950526134473065758220020292389371477461348332647886645390395672940534117710728213034464941220382916292924093634746087830136006943835201059408344494716798373388384527695205760550704575248686731328006223556419972107694214312319335063750646861402935076795781261508562041417708502809807953430692693391273668078064896659896332379254435948916629182651617667432362513929648672117601323260572244621995818941031653504045268221096993510258447339774534283336529170943170424997109425422271164363570479600357644118231629423654235595684344917057141362113260954459112897530113763251262056455895622988418921249181680220709899054998395014158914117942217089727482479030397632641540051007382423343941528665104114496714412057257617187637956884626786499953131128286023175773391609607721092759826156476944213206506845614730779060896254664759057531190889739749545634558377215951325824121595589875469986881741410639552318949412222558349561566899577370178923871200606446612700573698295211046503613479510995172525877518241220138530421090677231513824276469797896869729204329486911359804647667853751186696402814288945982932214412268103608751258664415749450877770138603147897370086273839768437986721578781479599973481200959996833095572917909918725560831877987568522832839024722776697885643644460979977317798399115725462121261452760893352613389740238102553951553345339785699640773160615615866860181903945646691103278172185950770509743450542305238131963344800778218016758287916359699716797289181598625569736026106407562060405760798246542763516848736288143544173869122303423060976725058328306526584430161116205434517308721875109769403574110003115641146930121515505152114403447104160948571480997539043573964541507231189298484730657909432220486091520579661896467714434119266761644371743238815405090337639966943375046408537935952018789542942906529870010927455611248520456023018977080036543719624389531879064304878626076997669010260807705827452875400250913949267252866953780534393117614592749240113529934582790417253749372075561290753856485367758974194443876976343839289287658641896563502793658826875625881039134057953778139194998215121923289143672829286134432023764452400659389836104378425620002145077478955161734391819088513043733770017983713147417689946630117277040743949513490752776773921484353715426858232311974204098808786554183224822177325375419420463916747908443872593356130374580605803880223062805624598846438933990941440882019523664279340056615917144823441579469683525429979601450846026271847258554315984577495281658155794176670297014332909227182565539315994865022558093579847488022336075693660403725411309715984757060402110193947161638797520762021223936927738917399014037981453723239951607166662994386283084520425925317703957149207728870395297573311957558829637042485774953449391862196131692248767959910933511673126485572397198984067742261145715697582469668618318892549594959258489032689756214215244929472912979782762148441650144213744158230708175344826355163545034428823727129682724123972652719779978663707517038169529879117554030572573219633095519464929639801115843974988962628395816729151977995426433846521234389966196340271940371903483548679885435178401939874836427087071000955882729154651466146911326990032091067707865072544977566263447905036831927357750265526302339547073709236051890776070376796582085896773879492251558492172898562080360122827290149777792409109523257642495548907444707926207673527744435920226254601657777452194371733435544159988824106443653387306567832921111675699700345112902445565604925389106688446301974646756622342891408097244990229966484350539936262603306322685906036591543935354871652240802227838225163642134757341725393426436346257118075177811196466686392875822432954723242395181551793195712686444081949908155800035005876480536252206491087440977333628152469409029711730600920397008810488591843155964576727827158957500723417333313464061073237446260124342615448219032604579196873609043615253296356910941226273237265421843021648387411006693643822390291497780333671057325355215229873145304557099568517091667764209751190056711842004605006940313694518307987990511728031477554802143566772671425282919360906090845723929939053113946913596547376380518176245836565319025974131442760246001903423246250688375028874252397686192274374550430054353655405049609422712227291180415507127284412772036064148165800302396917376763362441669008105309916960235340803282412058131948773601745596282604986364733435079488471447608322834831771157235367802941158404491115160882703213793241667666050687787736580229840876881877701654950103371319189803822998861912230494821525979576779124979088094055606781149869065687441748188909055941413450531838758630818950068475440770105283641522426839980441564821858584201464793031512377905325718713782596805310650822879870619966751662911004510860479157201571210696726776222775460864607502832449491444472124100003519056489532665421838670631470311035309075877156450568866525414793149476442019496982854828504587915491573120224043024474048616046554192336830648312337665577162088311675107511345880580594956135255734954917291859963472121981345081969697821523047677840253349020649058315151682043579808043083148845183348314703125646687686496696561259322204903893464147631729939499257863692818913350646136877322826596814426459328165765164043546062106158491662237464394731171903461547564618686301384594017478069457906809546608149211696326777622253106278784830299010815368360169746312465416780972290126182032848216052338240313840003771072383662694552597846377556479455666681677976684725795138885301146871234099501802423794475224094140579646578535433038122801321932752379842338909067461616414989720509494853779879176858876080995788298249052473066766378950981867332018087545463349306902087773895559517621351966516226126594746907641989018231355468927984534707260384666179063907616102848702377136086715121362618503073565139317579330720933313059376773808054369014702282499923709770600054078289557665085883759358385540012610549746786019435177353602940358430595809203894704287951457745905219026817310381308713874749074108127164120789015580082209434910219584867605351203965309776727770629917071305007233404327996971011428169312062418944984502628930677549466210084439447720259714412689852877628934145462616272117841344279519881967959967064574221668655544072597490447028962790649044278751438231940686132134003534873141921685561700986787940086464999674242234594977680982513935922141962048799163527712629379131220840012759132718357708647023968535663143179649330629679090714273483865966753122941447349164570954241642148354925467080491370524290114447518944611108848355964020715062219391962648758794075430425619933667051320786708725317353336442272774734374022065889467108615211942533155548460031630134800136547650915267378652276243145643834183808306278874621539953557105326134731362862381008642772120221515328121481252069847543157410631212545020140770698735215822043251470503512125369769184907430646296931485390760149977369152077362484349740199383120018530332224531629662315412718648787719501476971528148974091226543523130488291941169713534680656148537948231851507145170461017774895416093024116234384958806050862295302095170658864929390773509322688498557452967357623014866960525003718731499840692540147531953527003502907698043604313427047211006228609885876914059007727005584112621848497295057923308614385515991851167092745671233519930526829600512971459639062425603350170344328742980380914146060594774207492670911073357926829481223447486126633500331691739392858939980144425010567629096031106806577938674853688251677738632062414633896477330661552379729403300758215187764163410936388201309295927045500383882135292506373388405944929894761641242639691463670538321404620010819035769817308977752102210573487394250905938894442905947057444051052655880323012970915899472601217535953181452170833771516330395859287397529771974473537736218098171475527449172162916563199535712458860387055674444842242808026808022542570203293435536391162425811192697784770325034262130805418433355504246245893703021365402170239109033669347021811660338001727744996471125688635109247863717194630051917712479196782279534382043147782140241499900590971953828174628497508980205465256526905425780559682476887449815490366754303876089525864536818921527695461680951194845619509624412053752099073516610004891169689900663184612493041585087397125261915674931052794340767848047242969504435164149180504458689527641544359274613329270380017051633942647547163533048953339604437226742840595808615893215444697996137635788323147790517167842750644309249625120091543203199454732129136937005344880796852327848716689226559489737081597682946204862514908030573892597912011862838551619110554747055055272237759650307106516872689920397115398713742759782345094236880131585515173694357642508369832162969498685544222728253693514488986643385593465740260828883493394374586706908423715407355214278537359670015512229676280610532249440281442594570591330259764293589133978461905480298527716923076307125428361384406473540922691730736797565125385138441878480448147590044423064624720815674309408933143296965343545055849113035923059837866023803597640428904326703765076096717277291957959344227180288970190175682281521945591216543229490035115559062131926278158951654524607094692618470270299127716316757903446790282377939765737632186758365921324168361228195118725500135330693644173680941099363495307115505619082215472333172627219343264720320960011115126223747162098760723729434671083124760996375783787620309780470293257062491799604730817345857027928085452200967950757302285318508530687111944839030064530788578042003059255206302555823048531268366096231868606043727672244247857142165977903389772011051288287351975158895210114709405842450380848665836960633995406586279102400785943290659704927682635166948221347472669265712225412012351582180461583767359093496556602881758435975923613430570202848762301796882077498832884706674554184973899932483440935123288196888312713053846075733219487205709166880010671720176654422554551509006664472565723687480425553431533496199044637069136165709524321498181284862317064664778618001863924600812014138518360761414304146943217940075550140752198910245211570487414638286098839779806160237178709312478266526295767471226627894844214658508266074972396142245899293839957627064663645547225357354462807323251499187492543525231690592983473062816528093844004428190862475011601782504002222085944659392858521345936978396653764465599913037421553412221519597235165276430300792117413514366560895125098874584073021951111153735457845099716116455052369538538852949171729120238093406131100039169448870318475566568620094573490711941751280954811562172387564731005297070791608546911092989157845940009826697469224949421058369928831553242424613262010847530614281651216429985942253877389867878338264944570307326504243705199867658918191774886187793943571682984704042199148950175679854052272081084307620879376809905008262653376546890553005334142696660561959097654619870795508177101285670441372389573136542044288106605369006800340486479294613896100013562952163209460753217618086303918802644129945643467073312739965000487627993358512695404300117933819252679746543181442939086524330475399520341408988382904994567513541059506692439817092499435967417201990499149679724478269557870731889750238264297622496652330720097953186020889250709493473770586124372595484842832706107232179784559150021167160238249426876428271421838000014903830888912184965298716007602096676012419872279132756655284606799262798826586689122806070497438433208155395409867424354807531018809791739598148445514925228824011337478660527138966065797107000776350841604484095886419590440411625886915171740427759562052704187151078613134908009164075801866716795716981772240446534017399393686518642947496974051112178429107309251982229725688536280641765601486981823406155164819913670819769930135771366692488065993277566231031921358696324386510489687697664592258094810972150726604509247328911012492903455346476651333225821556505829888157474032257282510897813716964325087075043293306290239443105275950994833402525655097111074858660384369406342851840835532600043399771108074874833212339435320228151227082190829533925513709510525003907036696818523074917820567590410200119963885642102565837161725411401276517921624292860146152181222745127640962411531743946139387489761366201598216388615710935249039520902702984028629686576900270298670043499019106906814204919080572409535528467060476133351025717424989803525393244478971446615166886215679259762347736393063877872115173144336443850409447757235517193790766730951674586184383383441109717396054223507181135738533060394526031750016790135449607898013643941494769404004315378123144900132206285417727014714058392401847284201801177825168621773539599619384581424302821941982450412720139042251742810615190785500224702318214930060626454649514046909210232100409199455462996122050748962162635937354830865525920244532939234233445369518057391612251889932435360709363901678941969181173736911954425868018080647970445814523094628581613679091222686211832453593654022037099060088628738359350589246922061639481852998472431950425152664577310348185594793248676677413025553242979809966394157131687270456998605465639568149779032467738255639912265359525845791927261635952300051240269506063610927849390721569297111910669004509716481132469647233650228991666824579151492035199567518163894758434233658473621379691914515786751485226961174854006780856987018671404003604677111534566587420417377643154227994974574555941239438451891869837588860368378895287751242923095552896279075116442045639560334638883735232639890240649401387052862518975113746639651596733175438817501703105014608450463265441432468395699798893621996361040940797911828583526572345723033024447468716876364002960116264332731855182742783491553935305056958457202312541052416983306979350007669288123109244187467793093580169416399720878305620490505509252616997993609801887396162962177739751036277411456697897722100055751154579733888685863052624555347917572579410350188549689655246739593873491267823568068345824099745868512629668740486234490448905586378191623329449907344335059493550685147745270969497331342664912814981865862795768670335380264127707198077065374292694768703216778324184955433495293550811111146848193602389020193837701479637103297209801386369171462399654091834001916738946600604034175781595411422476220745190846764361489374321779284025136527415488079404741897143907735492488643818193892513658159308046667406422369098305768797461653925437242020261778521553620799592965555474073505212250576742421135079827264489862325325970614558753082610332943662937956848047063082713299263782435459354093272767132433639056039608094058736705564697493069371511798606687234909739225904003474294060010713341556467245418050371312210449616142617834737875827872319695613344829872822605684916776855837598589319054983413663750930317072451339683738212729509852120727360173749221275532885332418689126153998508825429172394291784056323610681900377999634911603579842036945966421784907003439065856998555340335267087189641053797088962097227055870940726589836999750730467225903403517447248176555554009559262058978051930025701843046399644706505211641989148582910746928492413180425167039402411835654986135130800368298121890771862416281243938630569442472364654203933691884029459354590251506717866758494953192932181795357346512749339420143497289780388986718653317981748441099830560961388113862941339862967073214276250439349817822320112462365666694050731286030215920746498957246079598776671125371732989882796469611543034016888691828824620362230861067214266375416858035465124664755459450207578958147638856961620966907482255730893515177773380710685492952429000249186077802545285761770136913576696650323220376013261437007050920365397276787309877209836051397008447316879824385155670784056509347498668433970827705764802852484307233102673014780220474478105903231678506716522176222241125975088173058174737629557564437367301368893504323304478891417172460755135558182200401064422946662921021425290467912087243764902880261417586813701467339834696956884158773979033123923510431554770374930484669909189098582380065962646478737577078499958293507136625129071622774209512597949553230874658353855509931546766075834167074189973103459112575754869814485912717493698463607129373938726603027654255046366349730465014961582392375947783204664413369590350034869943501757169444714321252772942734291302699257950320083874531166382318923245104809911826594647114421693302968425614823317373755867528605583462772380375947316474602824484333208983732268025408219910478225307306927934100916460061006851187969072127382779319662032356311438375288121205520442370081376241615010605811159281370673929713517904276608087854088060656557936957783478340797970079331512960224228573577880389758830500579410275095009485099962869933239686836633876083605325583915105603958031108676493135603884271034116547848837152969742641536912670922913545934545305393252146396451627684990929330543297974223773438457234057951202315066948423091150456967554817666818240623414398592664952828949151157222960652889995662137485983514562598205956394410979627281097509422174738730544668859090382954538510742259915839462974460900194503863061011145448768868016326646604490585557751485071781909785114298073568287812978923902294174112801703504534830438703948105335916994701944265363793471438044104922632794170578323515142305258447531734292637526511458822233124899817229883810207281998619045015541348938221820114649084583188297044906102774203776847340370289006205905934462188036216052675718003514235771289003429779636291087219554779874971791640415583009347785203523522808729995742214521850324123177335394889962408019897234675129861344935975455995355434277492198482276837436310743710995650963418480071180579520876722453315946237561234909059208345987270404736062113140740269127286907725790527690770269828966633143155347010573684920035660831171173105869972621215637469422783650384713751780376817562168111464582643309795503966633121785012258305159033688987515378522450432183183972513253814144930571519229157227314625560397045051529275696708261574684771003612665752023286576745067486839883142315844906915052349410027411166098835719419022954947020422752948219849537022719191641373470267500532052116441050161584133861091376489153902708149117696624191308472789273941588970122680776838115726443554695056120685055249255221891757726093857724064986632862573256436201300065093869677570217177165573486139765167252253786888767542603271952012054083166221586373829533730881433077689838343471445893583447414235804680492356744158359793065476216900242745348300261179598534676051199873763934900707149227899794379035750620730614513726875713649300034198021926564768335184237427198158777041360512549462252802678051280753915493414274315999226010546624365882444677962082649303347166182988167382696581457347686372736904264909755886637963469748377194609501761094699876259162071315412155813329163997983187435078070022056263421748862862566018590199848957274967806796541741250475671209766503963919320526104246085425898536244201012671492455183099864711036488026793822842266694849758969248293753360655284941591903518373480030942568823024257677923366691330097857948571684602956076825553397679320905403283629009419158706300631696260737306278115368566829469721494411989937472353562035334129248084361250260324871075518177576680235736214577103045691366475109823149304011288197892075012197163774914089512969358657398279485875248763416424102998993648514113436980553191563367347327220558605954425196991868200616009872781902903948744960988463288771750198867803442267284162971788650079437154055504881427977200581983311727053428470082244287588232514800027860285925206439387652545369877112665741191952608332689813006148930516731219069502343285191078661258390918199665511251272818424442563929572426658110795733538054229093310044838190341497232747633479447746459321345777983948647279420514939653197085615315937646551633430645172514934824368451635297106110491038555864750764533525684236638288548042604500507372153752561469465783932965590685343172851194808700574083514390445930678695677008646406244119184610067056733113087697429528736185407904970147624788504122166938329100036248677427153484379421705304105625469312593338173227775109609074708542857594526315908617017659516546842910866181649123952901206280496043214366256092347194324452506320308372953932744181422411384688800353347715987966573834846022867782853984321417947895735342103060275052018257506180188563521345708877563667254017692348010281195580862709839352663242823462451428784373295776595675006258911907801788985976546264500447568073317092593463426243983120411908145755461398961888311825353379942475522342906664396751255352353841527217868848285912012270284550926649514391829687148856488672242810777627333363029386064838165252414319121927646210618675291758519102060670252739702361590063147174950864052284464711128519943570991227068046706396354261273279730303964569675433290917122435928303274402417417498378556903116695358352821574440157257038813886187729326932227252865852969131587595179558223146100313163525410974741864284088120839905224336411536735005598089110601308750246253557835126067510687479063360270102141099554598233233882581931708216879789305894170005230529853303279453141210847972654846255941814187506824510286951242850835290774736327869252587036351216560396345003199462224871891196227609352165417283299059689028737813176011349825998336759904535806241379702607092571582935885233337776761094254641282189129927843732862944132751689808750966983878898575611840347304482037942128918829064600411456109762506117773936492086636465465764371470895796392537927210203675174885677893738760512288069460098029784426451499796683567233718515042760757216654395488273405695372698269590099254782121496663196140168317123548083676046294618863411719996161749508754687380094149827955696396338222810494568831730847902141299827966982448144421004541578737435520099698998942872117085663500607618872210913309652475787016585409984794683936262632418386820870153122829814274816266388432480680554767898931957812557712593185450437588139817673563081147366489834607791961109369086007053094723667694390524888585973329265708065416115643483917995363243055739334357525238566641886497719105100090367926332648180018510639370422499226809565779110077913194953672300877738838735454372832296346339078221597190619434162610996163962731103584050491711990059674940619813278908499001036874743601735094717871462241526245472061082542632518867796409043837215076849950382482417527550323967467177749442276540807866681939195250291428607967957720685865481217166073144088581025544676003809399912737912875586730402989522390124072895188623555776681915885896350723958820666824358547730702998763652556937521214866186022782545658025468880135913181079495957494137696922658296553783861311382084897560469375117938586198938670122024818936587298446393140924131014578143561107565500604831198890568864506207426340041031620936007131065365557410535470135075592344388789513483573662531299043898204696234549834455485985042056228098094136511999147149214297935346631650035825861891884385821611678954375853375816229954901369173112932178558905647911713759343539185216977997542644298734917697691279062305555447465351622366032840017533981429144803987627804513709920978656682447665087985989017914389281441532696079707210967712704202702416897042091931987287633065819115659173928667089738560847275612959413356365174444628047533373425924025974934136508753779065378416152883099113507725459583150356699546035478862936271938170079721581998521553151989177516332070334964131040966906848834901715017911777753651721473471743496165174382890275215531983565679263002275551283354382784565650348608307050210742976157550268787476524845620391267503250460082266130702604492423602042083630155962768933512618679200017249352002463031220916071152716386489365714436646404992129005786985641990260461922896165195074661804079858433804422502404163384800297068667028057376300508620589662926859440616634868726905664565119665863483804692833117379151117196206637333807841069334892345286340721936230588572838377499024790681055045649627100755679377885788338738041014913485927472987086579600250734228834888171213752871962456120365765896110485213650692090976251893304865526131826729147258871598803948623046398667659214123574946590406654925890453523684682010659072267769057887306843911618781417446400022614240017398672395145338043414382791406536299838468469910839653369596156157471169343441788803716709815048541937735548373388545610485573319447198471999848907761910870535860496301956999083417089725676146550729204985473315705924806898301120568666707707349438238560661913141400747545466971367042919619683608293428140330113377098473467693118044844410371370868633230384360421943344330777692772573477938827112677970233164814532677752338440989227433454764079042608044578965354878573622069779008178617352659096271087791243942668718287148575877218984484024666498784151774648793502812268822577399060908277980691542778594062398107793468457689705085170436520444644776560915022510930321327216397237086034139203983660466581583140145417366275009507384606564161969005700621976694425695230334457964248989859667352318152652394640076261524974077044017202630385649078326440751470766018975777142580466227055328170163591735635130918884564210459112056534296742649338492752345729937329182699824482012297056097967805835230754553847369602464156628072126970934020372595061820158631594288036562505897245131078520992376178638824245980782251066658492806624386093936264053388025566133384500654602387208778027883084279491878949323303616326590313376176651239532365065468982991072367355055896007271139420878328158254535585720589714743092677236415514714381677365996479806004943123323090777652344803156787904821474427566981671917217241686370909430044051420010224088221163908475169489892014514168265002813323917693399113628488705521875508268106391082183537017077882071879401543959562042074046969959452831294534547257498157515858240381643059881307162545389647341271573031920999919936027309834374402678033495654051922150728177783901047858142644912152241320937001158235740243937065963657659385745104491283450894070455342398601996185905057462069405551246452933803190172629967337582178601589733902070461430856357319177643538732638820999616277643320842437854148698840840530851695457021965886515282483808881043205739625847243783418075829849245070952627799123302240461235518539862004865718887100856573059300305085681880546398935967440019251160352434513597622712182751200144896362690821102093737493611599818169591689787441960376150599639751015039532811752667811400642527264022085518899616832574636044357989188795043708847053188590586116093157719693282244212408321943706568663934600988885936060465152792896888777648352043534725854537482245894455157080960767119975417754872094873482398113739993675517076810002068798743065431658684232756449335471019304436147557137472600930199602432863438021795703371625943244385897922072913403750828889744641172898630407064173002891206354090993629877591106079761396560816955130640260953478437442281189550610640851637948368874767612501264210124135667138682575426153243754328322962022311623659511074155045113164355467730898088513717307797911151482879339169798076831351567057099151826918842597852517063604012690124032215487930302142997779800643140920992566465126943601455814375786802927090486223900108073718370377698473551851057066055466906718488427328459496250013700373432670701073318885183863963986764746331402864175947722917531380433324016685954007787482464250592650652113943229628006666218544231082672462632020309001296752583290794624447280955560804885993305335750596821557840290655537525652819574716764949708581226328290044823120524481365822996108103578018732476535690337554002418830551850602312704574427924274179222491634024632105816610115304731525925000117583651587769173847464148536024149494814411388065532197769187886404167837401047958683989951338347450108435031014135155816071666320649744084032894507686775048239306912125019020690238864473579854667934587719463832542643294918538578416477406032102594548572601632544826466217405659925357914064399385829824843835645275524502897839936255904273402104021539309678834385691692406089829231512627768073033493243861757614189323816106009330870255652435259124838670164808500614894226148435662136728433267640295306702955660018383657774635763509995520355815660853282550114233160364578148680571539895998020679348945219193131500570835046787271529616689491314221958465047088185421542227165806831795504925251500960930316534329715500467736556884009003655335909281094802504279087118747713645750969569828725086143760863056845874292460687796471830263705313753192459683148595263058304044783307791003802622469387865533100977296637615567396424873501232136385320406140748486978621258370122958972831199359229794113748282471123738458893258434108532240104639348152711829550843012793927700793817082966265280351636193922111296728552132579806981901016703273240619457333145098399525392152857054505620341296720862005679725600088517565265375246410625284457557830062218277877427688932722958948348531734743960969428862554341738178153538151155336784500467365420930312837397395464904387059432469825303325310505664218856674740545744634741382788261973518152966992074893700481817650285645165622250270437950611860583165967893459636684454007209777713948828121087059530480048330557332426862206073363726552118775483246785830330388604604391881251310006058422839856146046145266856432743741216887110637296745140141370587967448479548622105484101375433082805865557888976887780809651012998110910715695845404536149221029346657545988321031708181789841021741705415250040766702940992894067650387720706523997774125163219103774754535477999376881948867716611569965702416450624487848818770335005935222654155505496657494161917254706649020593094895051376652039489011027864907530300897429083993333568818474024261796688545725317278375372208906268852198611157856039752761197207610104078277253115479901160909041732174908981554641381445938392856961821406914334087296616759133835659452757333323545775219462880262789072719080096683144815687892301543372865355748561791521308103871200348833758550519126186309804858264114492750933529890848015217611288115904478127800241410666047392754442545591014624168036071754774765248432793203939717938041968495411297066650480264680625267281549834836047315728883905387373215926292155478985487506744815336657659617237956363295867948607932845182853752397370568679534067933973471449168929283129004640432148009316617883701609735661508737897237783089419745299924693636755876215807071682860650493014140439736967727768851229197512530513625241695292188617805439498662359874555432780003619893367071557771388570643683789265519448615065927889996247870455457746686834436580964102788480508335250423574022144598386249627600261459820515581558628001148365615587877883634043203676470444075794345600093697959384056371586658388293454893635578695194529710296568556862297661792172284941124259056112706720752900463886340218476053221561378253818434718710307801376159248912782032112827493394356469989832114926012176848210920290261790708524157233616473108520943187492569403980743484983155662845654249232406796531534478951134284290920615801857651981058067890652696415242345585513064475835956958189425621879577604653328360605686930083038401076944070350733430098695237964066517904291345100112628228389745941613345361590531457897381498587249060095362221070289845689785397764734150505721098033363765767911087214558952562555330984111734079725904238620785697681325481420354805895809155405345195799871556227460949622947135635492026037369722761576986803783981052534365181867546413185162230620710503699091840576706698158686071081199566277028577523096561683561421398064624588905004761247483613213923592729597885438355968471636539917662834276326713648135154908134691484354219605528529062056581636787542754735899664418434360282185758555629356337186878976313718816246621493333322764627265414283318155062432794795437121962514188223627530565739560147215483325311550387185643380023586306895129570566668657926826315584834289256224417833177809220718008705491007660754022171785115503904425951565177587651990993938813685572549401657074677853817003742725555243078521988640216486156585954625710624449186073609760035662951456022713481461036561344702011400159700508851064662062991308643922749922378889750837988989392477208077777532243786310170938668199997574730800161881778830917757119573397494270761554846757190290130135176119827489021710978969718293049365184971152440629533259602341082570415341214186079707036793599291720804204446139490396529228643902355377069006036698803725001992723947109967734568377521073293262144833974841841217904575169136075513440120333181390648547904450200904657170344200481958002303097027869057074401600515369049509615315218100599615176291495217499351476407159665105809697981616769642108974818922248777901180189136661573177539663910118789877128942277705908260378668485607276108364500822162427124719746017216070360377021393451299882988684179103305211968488615389135059787472394470518331701274408446363773981157912579147952575220974718820007859488924361278351148679308765186325561075994630171090858495226813710918640277346731999971896028469717024714309855178846275444142391960346528589839759375129638150980938962294810622125322103869290289210130503438971365685820702498001675149304773826212246821430635527372936460914020638877048583306505643573826269826061692679289853504237863199605135774918044842373288712571082028824352806191902991084851047123554974002495391570754631824050216689927263352638066336906234444644691184729971955456507251167684896268245441209362734771562196774504195285688670499869070546158136561138370605543540575624348137048938910735457591614127341851181497996525026119042258443672412217769787029809077631211320094049129207883227377143840342805068120927155571343429934303075772108806162254463583394824059667773905705628879458004356082914758314056735382796839012655961636782095051871296269262036655069460237395074208973432791568803021188668349822448038683446244566270634419359427427348524778118011274516756957338716074518647348069292869544893816034253692381836141953815637584450057710365375525707215657052649050477040343810688971870604170526618005407692557383547407488633272643937379016755892746898596285370976621030332553951036081068130107948447608250684884617340360522007562775064119977126411023863850736442192373166457096182255058294142574117262749951388454621656774593121511413805002166563587912465907950925343774680920428266143153902638300376588805954072945338739643116009236549250538292522928530365569552135113657563997685231420204604945127027584248054351703102325428622568148984452986981584442323150787719711110471909574203102738437989652781877378195578015247553084053083252594610575104646241796104258257539775867903299779471020527609000167809711778764304362645156196936484373089862560530527293063244129435222086462297411751095386759700395800107884070162172094279985579537997649300288081956607598377185812855776848635963029105654188479795200360291312180242390349724216596302260136747593453346809538035980764593643978603315334177687582592377242732275744952805458768053139282231597701101534467749117712275126006013249384082529883912495433820715385055073112207267368221800398952974885378159215326284746735197121506272806266237338519654438430953743553531515527043775415225793881745771712344426800161219273352937977659676264682675798441016193656735000809106241473519054584277269804831771279368035397709647965222763933516751334878696005573759988152644485194430842463987589094240879241121962843370236337172951890971707358993760099439376668359654992127823853298291480358762834224717639370948557154338078852047080685777177647074991477035851259541284141151408987831434048229198574411256259044514052567189686052138336334357956467127799574563371515549204408481478544925890636907348800238646662491435628190202058705463352554560014997482272600876363583384001893431714212825052353942991680793583736590171876811421664577739870385961148653670408219541753107300634248603865404588603291525088044473965050460461528717620781303347776324558820157970679362729565755604885359550682915656644357134889740289434917250970930480386257628844074976027594682248055999323519786433687823931689332073688432403173868216390750394560830953073204822732879285806738647565292851323787017034960483911592075475639234976676265179030747789877627670929146932075139452880708117199404754578822662100510041272627575364062698252999224735951517220136803217677399792136117596128309971212885235645399082776045807771577515505920512795543883849685855046068044766033121726518109420270126245181174785354549830941878923050126146978861972860137259080592743849311985196387268123329306072832682768552824224359123360026282945406548460306276547867122692065385719774518973900436915827049528549154005350566474154930381301126768843270945748269534962042510691980696019916883609097962264758900414667810878772867337922461354928502649134116887194500339393364166421083255730333316959003688126187840408569702392916171559924692806353528975631467585381667806701831737029320176198302575340267529884486996660114428612437580294741161140823916929743536585664390732652428838282733677754245164734609254385013750035419916278489756308037741041850153870519914239390256803887967336971975209061536899414878427537645986547424556041451143262958659597111245905777122915846395661319435122781585586028676936480291855406208484606063858217164483075371272919892077863472491648439475237656685418738099542652636296327167936374084159144923629215852128350638437303158248623114884126465805004333107876155959127697609362628506463743351402171497544593128838723043346592556808047298140472391446754085146410237414240434006388543365356387149910922304946293388622261978201097313057800782561211992840005076366472329774568552172627007680803482579776615508418181993950776134355365460529198919648680592896524190126107779648966658142838879892897345759179279794731832582181556958782251798032525388538242293907479327952827709378903297064400821583250617946870215401419107339743046570149107971581758778665946168575427555816878628604011083724311768319665289413206511927690953454605417572385098093069880115386366033002553886823147146195967391467421094304068395492526441421795866395334052040029871218518577178750766044910119013247937043133886202921372285236589157796995219610921725555420187553480697147580066135295392625909941327057191740512022536154603185851564022640505836491131947375996926124363872605404684836846003379984649634331039798893345099635162403299229878297483176253061101894383747867134013463971732568022829767034807837295119892098335538158990243253036714230735826797440186634074618851725961657514825397914637533030803840532982849426075522063691691422178048832104419861001921154443365703689538680079539279208405780876673146779537653528757434275588088973424438141440721500442751969478677101841550964457596492981303351220446512205841507698421523120943855670492369377503967874675263954659667896848445163060326054970088854000567145776260036238498036532498248247455610489857913593771584542122203955810251369662150867435343925080367887613164556301085176708198784761339261635258999926979542528476069118509511712543305654806946063404932907798256655276310043254477740133901616756979099476405760811420438891369232374064401808562036084775851978683523476867405472472495704010408316708070339184535225489421077179477670889815848245403939550472417066359012209853960401827445395567572572764382332570543925906097481814541330923327778349355907984256188312473929774106712953155715630267592233943369735211328373607221443424288285850766619425363968650673352033662981041565966312633740709136830376680648321236279849401872655033783842547448801968146326787931470264523847645752364445148227137359799246260356449630576244040082286318056090277440187753323107340202485528605513641137561141239097102144669393857131170907923185097052228397170211432887129748580906526805291694954767445644078832013951522422719575970086408512989827679421673825948537390823551526557107968922929628808529100388492769725955427106894932721338475714827527049411989278898972124960538783593402342698534111361443578865909508039225804753671949862047360601911666233353726314535594362819096612354208345461040937963740273483290446501518541247616279018631191719386465309075498328151851977504018367319164478263069394900946039484087348759965766020385188515666901604779837608958315909996010171448262364960855378004301195517872493249765385653322058710386986564116562200617232401361184651113669031395483114411179984217763024809525128875039796367297338265085542419384149273388526525750982728510405411845955289709006561666412412276981036587546345962139715572009965518053582733497046640649336731882768797960374635274721484302382441171021349628038776721717672662635283886525827760273578282063358029834897591500956985161069510798631852828910584838429018698238312576981171086713574359481621926484316428160398976732247320966911308228380293259182854795228547048772972838669467386014956555916280515678318350065952217538737718107483059542291152110811600839682883415477024034160763788582985767775728772605452369771327751953169692762323586087531251734422470410645436588205825179275424830806158918583983686252166353925245175669240899836112074921314206692549020424510408706208424957481263106649677473156087882045630654806241290198600238725811117764369822114103144665164339541817515131195258150331384026452969372495262316472578832924017547974371303183859842579838538453587396172756521821945368997684235345526922763307981960192007012058329525953198058497939225784463144545632749671105959609550086248239206661496022903220855493674154282533361216922523193658931180069398133838821118960181549701723094891098293010039833460888064685826687598379531249365139076368968227997372625321414903449270094224411267563554755853530007613525766062558580105904668957444751018530519986403590066317598658687075865352537622629694811592487445432090229000034773045114131136554848351532261427371841764651785045382662423587760726601390872510604912437640354981613541709648816084059431611172721206832122080649559654374090161432959159913064619204199546671480157963658988925445090247208541990398157954162404105479458349416710896935390856885186187461321423981071018914298931471828235877474274651187286522455801814195646963494907419999867724351097602540271509329404926149240416372700879943521425384367014681932279933388368591814969375774497520828532371331315700232040327823098890187225435003465100854125901455785965488327898259099074699017410468510972890128811212777098363904128791020127750149109486292499102579002485924688444363742150492801514982216262406132277081713747835355920005018281107194076191527601756441415753916378711689942835490800882475635821344382599916650375900736972214705044108656650536314017136866133377282453127024325776505125783239997545307703443496960655215188007427913130756625118855214784596016776019273663018759313478087244112382112478201394856366627385007945632933095905538805567248909257201877947440792655089906898436227508798445143397729216073688296205911905675097395664764905583591545764192814598070942415164686831569095741888147533828598128865929252863470731696077624903507190754344347843932793083102857016337791653305917735164761337622588005189256679240573357529346568957568657981729968472745551269034924288927043875721656653332178777999687334854647493006044346947383639604546674113653377421292026218132081217577567001425917109783987478112557297913853828954264461852604314899840358322919829323020757328278122232535164688286145843248607008085952743764489993793778958848649585769163103022033891586735183463682804667577502085448522297824536622767899032366272331244810004108915998393634446230419942994324986556577171119046887146547244650371673654642412020707578342460897019362200192274216314206294633690890168347358846661493967945169606779657047322406696350429564961636102694206903640727159962059926020579417222424298258765293123885459273305817887616205720733328991030534539296385723560683628717650940927627045280685405699747091766903310145902654676101327495764975049516112173373571564347355036125948537619904575610949523356703630601451187331684660416718837740087228908536723659416627181920713510906044358348010604429587144367767401231067038567064098024280685395289964065770726601176996473494882179324766213968994536482391034249335610076949482371934546627716578630635619178779200199775272398685671437135617599062528775680636320937371382204106737269566790467903537085114032840616042026148285894910158792040762617901381858589031227105574435249052879705922015896548780516741269107074762383716060945617928126428621846969655858268813639041372596073227363227716926830798139997082188109660717589366130771754182546174446066094519469087029792385757618598310640317473883863747591479189224317129689071821462828127370915275623290345802511464960168709729342261801346721738271554580818558779636256940528434755016605663323144941298365779257665540601417326052181199567752000862506698883522172542885285465276768317288715449202337583436370333186243008016607688675002094458475381779451033249903632680146693897699388830113500033202478390570130859202309232890975741965887867811089769820272612457977495958253699035133855749996910972617672268215591251006527622372491284224021205041420805094253880265338910344919880083962517945933772707520999285947012258590978307255910624211117413927698380401833100784441596355353969544203553826226536122178129745287571958596583969989327969316707444795975615210191512671441578205154071514543307804749009204325241711528895906478275554364764808450853451741523485084975549538630338091238440927666988930743074109179110170858001300876453410844319848053876594917769541027565788623487176065045408123021018863715412380518779397585956481371586959350343045904727606014779161827536493912802739205355722526363202819246867314945647724727352106595637882824062459702187683055705453159047984380745687046711908210529640416566475406326922402118648620258273302784857163534400798742970005464703095486731800066250380950638877299898001542079633999703213027636146255097396964973315256489732748910361636193481318930794336879833344842973603776575339447281626094071167617628641824463228186071047035403316530126691317991906404050869842339079055434941564659893046821078308589160565530516747232444168395787871208518772144595408084519554326259782731113776947598538183552242176526592575715285604226622859168086682551057544881981712355018923465913350362279641783815043570318817244532670960608754502650899406393720400039533591609083612237306928547578751932991042280485744408135503192581087538040438112324701155763088262960362057722310167951782662384276693614790959269425836443676292556776251939685698492557286811811335408012858426105959648979414042212261161726187905244944977123318196242345138968966319594797695282550075579616825770477905614606095906149033843861700584047960439046876438368296221041038275242457672651078265102120860268399497555827094056436743044814241581723375617092056187152762631687097602785458287035220164473730907399328327969118963014737034971411920813863638222872126493170655961310511373889143841429480715983266517393674693327959222839526157455400547836069409757825940110681203606540354689439659074191975138358787691029784803620905191046387912846196292154923285921862296791276447382365100948528855153187431373839724150195649992261612226332040503112548290834894853855721262907605206908356823422507065202601599336215758855365720870559798057645247254258735450995332975554089194040344418592729189885926061043251140877472763566382708034162864595413343610779517968295694666618056073305420448906076488660785285118582552386609365771865154260398782995116692763149094069331397578439445673244099311416225601314593506300857092454958233628253732598201123122965300001324239898715941506932155921204186226243660923004162420632160905842517932194223041404006562633298273179449260470835697034829449952987435207022082552496616426133315174985713857512816195901809781343640936449436092762211334341427094449655220296883215284742682092624277755973439106849839271300767682497317444620296595601030606262318016422668764677090820708235142471565072144703457811979992331532384525643553963777251752881777263001011970470675032823381628920462057111798805563464502132449069790119335259984322537244372570683605062185125733501749774317321018462637681948113939518964777837066622114546554412623196660949775823001544129829143943796658961278598594972225213395543134745562448442569070956323663863353230237010384365964860410691052147047153024569714987960345749508165440785002612561044253828256890593421135676336360482182731191098077214350050620288991430409361672330274291255225683050889514055067630873062729738156345057343661926252819577770770498853986424569964439703856831683627726022914838657564394824848353312522430113355768572194003621480801206443932321954845067555284484916234564535225209600393897430211248780777863253482572945288545758998333019911881043152898378433692160470960040582268712454606070443650776613662196676795989737915774909126573992010106375866486229159187303988606037809006634128479750845202411707040024649441498291228893101078269713429130651647150688823624047865396518512529936924832371340626588811339735385820881562759678712980371050714246228853037290824740333082004951726493066844648915166213622698763411384026179263131307293770492749028345830640068759096554298188601977894532454821626274885827000813856671103259254145601747207334759078273826626972909007166127995342371251790789269052871762693494115514834920125421446796784213966071302305326314953705705376415485802329147041018013185628959923679216346367221976866251088407989212058515284434660220925944404671984145457224193922334778992155214584641260889214341410271513008065971598035795095738368772362360852357975548906691812917028512643533722049473341937563947701169159894039566026231769991408135447467473290013441356473654853651004307987397618154653899806909941244734990022365477778120650172976667579592953835623646851391871529480810254648252491499963325269457458645756269135123969415349940913971181724329063913744871484566131132172627743553178624076133867133890571252765629499456633575928528035173935414140898998791604269054838642861017714980057147185625645323440415771692022364328206977374162176142193673119128194523940793232277642948220430235911609101897764608786388706555223569505400428811856115336670685843999546216825462286679546673353281208495158015399523490080394373647259969157155289237221876971286253088008088442803182947735045637102998230181168734357981262360585354224190859590974825854337436477516435413187642651712976431506363660881984283368233260401586438636172169526364876296687599738526673896912649297828690214986566180836782345241062817393930486199629545598727687880448590215569336992060113374837458276356733987359177393579440650136257818053918658812184280958415085455705881873192963821129452097373742950790647618260691437661066403450806406936535830438956983486749045418361909380941819785074069049327592277302480402802042014342351011356710673020383970415564666142364302011420457026941016203346245786667000444261655156990092334180341959376244474132022955362353280809666052163698236756874554509531159036852495042295207430901971840856615551581343878622626785364466910383282662922914887927288279611533251691040951856697148037281572502821636668848065330323440532807135731591307469057612275152188867416586799057677935192683040617845959098918531079450954207474708113554437146488748109523844429758663269042596207320203066245683873865049916995045000340850544157877866839067666937042786641463335062111173829681548384513749548774869309487378948321839279318843021828494876106325595870653773971612508291069909101070105615641246825355115627830465767439840171175242440450608948971324387416936526893621518053675801964321809501014297876606700791727129272044025483775618571620697042615625806797632158655257088752495268043447900038545786712209456743282575645697890460779687435535882314367270949945551829867781215489311884424367857687314967011880621430973022699503338206754467130855582875451715160155189899267509978340062599215896297713917079771499129681727373062633139516983696046241820671265059490824602354549312203108149181271204542771159351419391962217581860011284209541743024299451953513969566032420089643831934593753526760613235946420282025217573488466431975014390878054489258519455426884448219834071274633261419283450361809702571657341000935816153416047832350069885039996877139515593057550106228052625186533687896645121005608585594229360235646049444256632460398406918784745917504993177598185806367167194250807842174424823966173127004477925764655751658073536574106266414840238188425639980099257004450058522168023421198531255143164571465483924278411575778774573499900238873037091297522951635512632371023612247720395448002005853631195273725082549632357308683292230566581085437238190870542283766109787978836047301764831652294580593143945008000311366978298857436917877994417686496930519169192558821605287721483639269879250629092682499623302836698572631898049906661247161342938331827811133251608051842139485159957493462780775496912655967006965929784277215889116632024396236376035638393430189724726656237296198989416076855684474202765719974696787832595708830458401972190522909961092013385379827767283361866724345581265561665011146736920115533731037522603517283164928341528489580877869760245627359958363481791012202944811960245490027123756194561969844713180441381675096835339618347230092337391420282316111613647842204446765136505027817487674109339500093192293357098351379157481562482169133719903338178692589354358320537095664928280473191361518922039706901089174582800072712328292097975941156890972864673297959265707265961423399117371957696451860360842477845559675121310514277101216363278746226302722681296395762571909566156131350368067777747997776622523993391766112370359938880619188176811177310242955098504453565436044661918381135556713653492797627120288663374305742621926639507437426368383302122065232040992759694224096395788247423080954929900270724494808769881855348295012483726858321734634700741812689097610652399184853506552838891913523501335911611916580052639401126350786170647541397664155218560247304903935571736828371017139003135086055519223737702702278110309294244988129939050788706085971550264727996719460430147648938637593768899031922457972935819174988434760867099863774512410926382927733090519662132051001195709056430447537146349912303657769805889019204705888993278566279217141672851646166855913931634760568267160361900715793024506580856718921812721145995447815150579943446570532170990667704751293407180415522322008678942524033419845932237068426455590771503349016160940192039007098246826183136529587907871124116341317006512646294269890351647373225926873610635021060811097876228770693397723451967546465019326342192305074214950166142269796837201981601904221702936800273235341928529677206065438568716576651708949230560797630312673939458994518639006798495438998385322810345213358107931059569286400500974344869368497839307567169894711218338122214060306909266571413328255810024086271730476225049765349693359673261403061062754826120288716270030828097135496405750702124577080960201086980497430944682565278984198213833644326058312918321828019708461968118627934902812005438110675853687361954649496374943129570050849112188776996938989947077172286537170283388107954539874632982399703429274982595807807009374189729263666700855728428212703340469926672886254044758909114064226680201400712068659721932254403628904996888583715784669627256697114883799468212435509251633095443715724204584733746824769996022776351912483326622355933964177991214658681021251456270796205517853418805466878920793534321613759815029462958062118030893650491034452743190046520882379753694622723841812814321066328009803920719151770840708943931515214646054516295998950348554211587530213298211831953417977737231630048717327874417351412975904797070799626912421583628410127412912716285879763552494937391711008863203021656411867982222838573093009645755290565908855043520002304574356679110625997233512612193289623661454253674461885869199518490640165761825925881338016528907625433049049213031884831298074506523851773046958867934757006161157916851902549632683918271376718260584174793539337964360430971359817025028537674986608548542316580051684441219524722304919203560284997511073432337920729318168871197709511551850221174108800618739392427474741731988467203030576177064343338264604024944272072217799520215117242951340436444176487525484820951731828619826261967014424450294029561454344949100499323216178429648591691076817026653394737765196250848570858656477694415668015546482267788693017158857306848278687148886783416231695995627014648539832261731717300424746456211610762206562122634311573631846880196928433639620677399410529677065772979682044070840418100913423999639284194919855830607903392314775319323261237722389296095055416023233278311512281125612882536036608264564378156325126712841869819708846275849552783437851651089178306748599278405040906816268595785733353973692690587024564364606528922521664274122588156193649117356461663760046750679794261800520303715848432779994787320389490036531438089714296872175714265714260429043648859357909511098931594441877363230046511400596554409400256960510743490027514724106922604504299669406649659810343816457032095792016986060214112462873994619782710327278198442259023606858152005015480551534918705326654622794968299416040114030441807176681834706634264333953084932608561587491460036079100610701520164870140892451689520023552770023569863823959245087658795565329277509157537874727192235224134236211802828213751942534401994118945312361362476966334393067546858333221444747273829098764655875223907654817171744619240348369717700537243156837374911145657370939710892465190762863416119433691504418764776095800116648389748666055846952753400753332710579016988083393289345088377084925409349345595548966671920253023258793707525504353454125275960192837414102518029525202249034199063213290956298872134814695966096661817682341340405428524050265037618857672361654283171204222054612310497069874990921388346118793934852671089777189528903016695559191193727433799877482320818396668454997299786075328934704877707283696563851004906694063695745142391954660921468855960771975592657934584902548990457517998621635227872955365927843527866023363666818155199810650331450066248732008722630767199494528544169052306668126503029076534428824975672387438106183519990687043400024467255637500407679389650574467080883294331573094411275066564016027134387882876432119998113627421469525979410192448314795532613602448942107042645296003646176257851674336746529151884461118345305676625789660485813385570111665862538439278585096823574178033499604085170590572444225794633180414069372212763390612775263844068927128680412060925247424284349824019639244251193242987799484657332517636897315900219219339802610518980405622283493744374217471831275897891504812401188312521902899704517684373431043526039734336689278197462326814897926741073462159471787800978519738954940238038267243880614368403205777429745786340252996234959049972405659348599772211084488891855678772351537722817743802308497235174497460273060676099427810549454481057074729657885213110869382286936501588456691981268198127444641294539984209488537608712414679593121320132377264010156577085537694327731542293405655515481648110232687813496048814949442427730130505125143955535899758647851337506806248741162343287790472463284865552846871358433895033805120643729716007153409014989756024001416147701148433727806891748379559198066796131686328398406408910414834878457341173103322326695425035033649421710927019241447351979523198175311705615340992660268566392821585316432441123845702604542127451853396782470996808367337742925368713088340533145636494662979196845778938627554912804087909108046329797578612310660462203086283990440551147262139287363387524482195088337342760162924025115454598944232481491124902372123600323351168199995289596787077750391495039331678094226432385355785164354756704417038430270763976410240401929897733489543085518916110092993802160776216344262990067074250207110434819944639245162039834572577671031950225225892719147830182759203549391299393896083409608513755656845462331335346646665289252309860426738295489841510252967446333887742429311535987704664274706492319811467363621676130187571759808000019074987616965906298130905267306351279002556639528154110243091719290771398032391930790683569075434994935627225094008567429612388716972858617743739152796919839246916819067050204788371376580147092547829300600184279344568723442748866690468073634258123216611041266286713293166575442008368443294286836194161236596007454930352529333204033267175660009053628024742568626979152343555215504006961471456256729481735311931660700917204671141379077544893021739806696229889453408528087203500250119396017402626936787959771939663815619203035051300074825566178558838534832262200173065744616002282462744680902331265495826902316794730892166802970603636104637651784191349151026478094355152866804610890613034479159638570853974167358444220492560462195907598621595498584660391010109417994407173616758658242763385169382200994170369625208783596352283870448936343565979579624289307704927322315479731604933869233843669132960594120504809496896715855237115729521286852624621174328092931673638284990598043382961322447623497438232889400810156664274217177744343159451747471274727096948796632504090175173058043919773891762566131207884127731724077821314042785912065189249344605467655506951014163339402803023663396212150248006198499033068794491521688439454554176742978129544425714476926435556207833006715159908657996194954786637560116425182160011580731446516634853502455107272414022941531739544704908718237173483187884962866823953438195770345729134903782778550418672280214180911044424641332118971275769077965082868026410581912713041120025006598814235244162218248117938622210904710621724642564807084989435000138079959148031550432328692323524024152173637001412295990685845452075059920178213444184699974320485069691175500035328442939246457617870826625597346973318415608853397730118014019019793468947463390318890541676431551254167653120108370809115626785733293370884320012151353338986200397210245403513488524245450459388589753837525513569252518368190448146125647855527988066093588143613157648059516321624435324115408706350023374324349475927862717843527283979296147541755653499231895950852705700190940790753561543012378622633129170980609359364100363712459899563785236088950751957888529147697915486452324261210139520924837783295122334641456312894371910195312607062809944052963536676111095751642656262340384571899489361885977342635719554464545412065993217657759324300230313989522541357263671582572711204505821298559538476904355853867150031120298815420446483889801626843699182691483423719481319124000719002112918612675985334051516123576508433144240828087653156295211478721917594422839173914928314382048618186591816309190700936502807709329706394943941441355829255164496997149098202099423873481800113114765718167340377603269127379977426896194117499887824986210981038310810046788953606031272270328112845462373862986856497342989703642315226904839644592401492991838172846856805139974050882189453376082362461050096351300596583204619891815119323447895435181224985536967754458573088515423828097240255524631107960655579736444558956151456633817458520585103959732002676228947591940635287655763747491845213939456094404521819244826524881395103701803552114564011694203577675631688399378931691880469876803346943580040493942797207163791926088596125062590547979743553931652584474933469574106261366085873254888565124373454994148897172801714587857594490688994534912438830534436405887125907418686706244142599921558806082063170211044354953740407828028775329743254529286803101523388716938059429683674729664347809249666312478009937663576610895589265752786396296816535355890399568083101832894922450461616510589605740802558514627767631620506243885659852146621907806296889411018901986025918139709671054227535569533175121559135883534684928583466369299016182080443624486541484255736057141352317160793204382573165783890058871278863027788289191901057465693004336816909089989772976471884809145098600155490266963472145284927195579243988629441741065891938001938556236742196930012145111035065694508576608829162551000032892583138831022952985353472634333612730251994853064255141578403741906798962558584605225699092506300453100449825765634651979404055819491115177141966579293158871400667771715094738896462854370229905405783891979480170612564936747454297743935698467796109624690290079592904720484523876525583159973945523888214542646912202468728974645784980990272426669475472796705364988049105516589996651952994084575961416757331142848358073688273350671736836410832456297389070127638389284076036302047034727794356749476124833888429903303570775064670556061641166231873826826371296935350972234295116899098754171912264016737390773417737926781318156667005298667455170139475509964503569790814550687403348690388209461468870625130298637087540520277180066819140776244345526074245521099358508997696159337344940734587088462860710855557187459489055361536750294318606199083926342984603658716960623679824415955441668519628616458875321413110103584585221090627497302563544197924956546247754979721656608002452403301876281229812453080585556464414722448624650796107865051734457133209193675237133487272550876473036873650139132160447607559750715267524554088081154949301037897393379559984542764752539144274415268962334888375077004792836162225344634697060695488063501398132980292436430257096310437293575427435712678354603836269162265046752649611489267284309867764545122817823142278002445729137695260316494348026837512129401693825357037037573369029475537771045886398418762430027727026445106494340394084079320198975984570422261290152518119558395980025214543208516543518163244742059704098638157159878462135544726841529663377094271194387414179946120987196458850533506625309498644148792404930851092021251011382139974124579707874303606726583352917670018736067084183221748855267845517450366682786110947913534510008317551051210588205525191525210750782041609130648226359121613038495957334571469350120472123103232314937242428341663125745240944560272622661937844288725536785711900834164469355644009907792636082661291707903271641407696215592844959444870161374294856559438528227203742244490845696227283667836425645810636234255775825644867891565408276948595974958308105753486765321438363453121630980610813324983850088427203605366170566008481921559540957168756236796112329973310871959423423444561854964044538235003380159030715570751254642435616333951031623356497717028676324018358304798292396080556976341064423202680580848236130413865803106443554090629909416689459237421690368013442494429106029430170771905952289906568988026743258503570932394862291252004970033993496128979625948403440296689239369895106827887544029563562641892505509468271871680931626385165393444804948024186237256415708175868375342885326335197310362092390146038810054041424482079287060327365800907908985901207816701276975209893169206832897908920168464126229510805422158374885814591742036720561438494792158714296661011101005939032998781031885020415825664816417160004117155218370662189387612754069238498157797061280278499169874260310944733562385404336847494639759826025912437726857942294959143477650679413009000130996840939380968183879649357749379248203638625577057583030065550016819854475235897585956251063547607709778380111709216172101124634960643122033253080254959519588378932663003585132722464612216208282466747138129729136464862250035536954679869648016299775365824556751653717162487376234692232433330550528493410631307531242217037827023471603902156733357709990836940906603146471075922194618842722239106329261375230705822294344416306343927728719853619018679698051075954265009582295815400633093838620679386524420742739308302965713890306016266892340599647195485237306358984977201159554679659384006695071318718395392049438305363519761642931325226984224251857397939206053727541382238345920863701058174443319663907628619190972238458711313270623904237674334170363003065689584711417483915681818884353862357326538498858782506382259399920131809900563778759624886823746518906236671137714000244755066844949662417263954667936928647512059747346766974120749638249296296963360550324777866159645272510839767265916493279410082124413519367761509925446032083495458851415154778934773437214078743615819013923576608753097444515447152448195691105032814860427268076086122451887013693909211708115688368864985469099495363092392827641870561879348899054826869420891716888410171388129699651846504003981621934518863476695482093687733470215333065416574999388312226860336312998658780886000765876091597453871590695479505755807852298875841405573364265347454718135300655969108568748875063945451554202533438098643858872418983234560297488078943487308971040398709053506218099838534023969209608830199907530537391431488009475183877226126718975358203140824141746133851554923673614423762009153646226810437255874944381509413781024897840090818872518630534148938141329916217758589053509933061591037896324891422404646708917072067387448057789210692113819977361683305971730859383736482616688352211826293918309974576624546080559715408937676782636383975390572530018478183048809904157022464094751844516794867726753756585350824864898976496589472879819767070294263829101096040647815671721280472679262117690741943021947465160557061648313912370712548911951075914729454781808736592013415899133515818728115113733334010252376108078354085952528361495442491620899147823504712330257301589938772291513719108555454332238391255575130649904981519942237439419293604768154321734614528443051144970562661754703793031410473562904437514090399713361673892539495174215944716356175422868448150662755727895381438209437876001657419722534979642796781180038832602536933305535313963798072927118899391208216234848721289838936678866824504283146883372456753320277363307352141403762359468753732485186283271983730168778326550585786563906353857431128839933634689167505551753519127772610691803821988424946817796977615446534030364763609009292044576511832668635828912076580769848353421406512330567267856061838460417544539467279904164396938432895007949969131319882388490161232896645370451887470456546380484768800410603613626510365671452651051187036821044982502889573870964836245994337207462989049554306824002736460805340769404353048006643131543564278164259895915146621703766629691949114403838565823774343811655540626781755241127705292285388021886641203202739646904613763932437688570466743599531804559304454231817058638394701826882258455849143023178448939913347153719093871448824947457001246689379664431198780527881863208032966389063080351659212379224143062097112702637294334335849838452301450582178012413337342389048566362883656262768111661125193363594811643238423843914965447959658442326368507496620253087419158168038380820670609699541768862354697050997323495400973048314096859557711453137980413837647014280304767506442594511088075471931992953218795103753770943882094116270276943243781414622490849303195298533684609763699347201363574699277726689565239341689820744467676753061283990211912862456936623105451627308373098530563070824941805214226118367156989477127869927532634512037213219783402741648050277352381354255254326988149379474562420983086345871923631588179625449907377210897031250809077618238329666564596032243588113457983416009378616784761197699437676331471384903597691655236163928261057266316827497686107865027319593743408183112763897458050017970051399215937140961939620248982178479780211969519908338846095661443699791821167209959947004166176147150512224964308216577493505845565466321573228231209241373344138236749390607069079090576151107555767651313268665555835287969051795226938280142494150088801947302677767839055224524715108410815390604079216936668989433724767921611420973252495090449474001178675852840307691602072779021305629525305622734368791815208995471440394241154301976834785680866411132202319162086510937898828873076033695109699490223053823600090225968018739813629608103807336605145902838421668682529826574451210051563556276617563375966798515188985527370184380839795293879364328113344395822043150976738764231720175208367070128847731365134562618659378642206331494976674572811222062126430625972086560927098016512614694104611359757175529819197792538663534527620476452381044288040644138214655456783327524066570709262403886359041743543891561396659430688728183287948725374826533458040488871427504327657589457987225695255578391010320459097014727341163788339614230815456713315184208084679029853947624803950861550411428684103356851520600246722254835034119415656842591043187972037738829833063735518842705083024495174241643410794526098335189410912874421407455871504802818957858441230000997878250067335051839874742697219930303446649508310906496638933049678332596538259549996398794955346850850439999375412612600326305717745971885817329609647686067785968338910282513481568780600831245869709340781483703609256059348622601587472246520061630615522254301054235414756671047390997776824029545241563639246038698260128938660564100305073232634183431408888201323967676922305215922749552077530925624449688045594633234853794266557949012149121773541157301238444062413648816569021028741334894896051033009599565467871546901926190406011269018374031167377304842953931916754308224390823517407335347433124321378942906890513372447836647057282061955877688923643489746288541514333052698197162850183659441441124588682064023239872636153065052332290155702378806459664152267728398687826642372116731219182803090188114410783555301721200383902345341634901297159916541011045197863984201785356392936050453852753089415115673981959467971016943204662735265801295092316548103501187433185690160771922951134239623943936347431816458653506692903567358536380000583783052362552350333600837203114765791446098307921224183241760098218160318036016285858398681723103678026905448780883680406901053087515156205423306762825041946461276930856906603136414622263274115457556089585319126145569963043229904318205697307089130148030520349528683717965185697880951369978701869458999685510964727884390028118321258980452602764625802561907294232314041986362590468913712965353565532633631189180218039770724555213100554164086189698868275391897500681622476284542430305253823688015732793477969025740821634180058840301000024752462554840947768574259410499800100442160144725154125507636486145428448612644041647279807876048057492831235794961868361716547433199595058783326717233029666963093220401673949870387118975770689113358060456685194804566254788672805401276721476249830091037597041196853164170382267232737977088323190163881453915140971676852260628366192278221957368149559470369614110390817212851633276220876317171247655270591524525214685732772967127049555616862275147916940692181150883769839198269033046977955365522999395288398814009889585204031722344671223589178591673351557745045423886864636146598424131140100880902140633502721019445835282190114326493491437629913073194515344003631260106512046474064330034144447695348137715986012084553249734379030794505338664590472725940075361185435521865939999402207481331246367786221932504571070417266897242653871534492434253197218929595398606167851596628594985669432233150672114999608969420157410223808382894400433765726126161351055553067493812638910551481570767037459637278122458339940776256025564356365470242825940189852280600344713593669140073455516280361670746442325810561932035689664359362076043468406490019947706814028122991239444494059066285484782713439955751279359106176118683727368810703658226354890561498434289705966016561595136290479152485880537694298630538390918858808149831050758291209420797307125402865883703020234476154536185587410725652297056553689515798525400836999603640677655188410936006406230170101972596617616314235361666689087147873015234344249161540191979146153806920775914048487096530865121955909482851254660197677660199370964285126845601667186776855330705703788929145133718539783858692662650740645066553763756805921696826344764266863994988714660472857451281548261104949570449730313175235552803614676835898217810980378693713379421510554135253495296978809240882354301841309398450331063065323033849005210317361150272689544358698710296957661754307185129789636055833674780005089362608453388055697622115065817912280308339362327097867104102979604016800109333718408476165132639700402162098094050346954851744429953667080911303738655134042111147397938603262264763534467664053110687054718081910012724795858911462533603267931712042090929102483698058016564199371986077318661875339611078760805454261103298663058826446528659750189253089622355608581509883427203488306823164272027681312240620179285550519045221581888265153151642803475671293206618908364993396946466149181660028994991035757906887947174057489801327339173298332927137830282116744955683360925875292622180677515834036471988222141315802017475304689106349412859579773935937280741684613651729103341123527258640515823557310957030221857137846219064231259276933525421026012037450808679133404472168648826549436288292956402342161333900317182320272291569677022438052462102024296316700271255116906177006752710521477454351246574691070975525495348626241210361162392767220172376003590084000514394161699761053744862086671036740238641148932795615829259067142487412700851747240140521735691984787198324400253778884970698670601438455387339628006093077260750127206171303319655407938859992650706834775769347778573056470060079607857218106950710443232287417977102059292767487922779833156901893404398106022666805496450361965200111807824500972910113086599253036375803924861707445646740926819801092602386231234085316195463737211502668280903275326611434670969150452535663909152664418474660181462034890678314558470648426709290252299543378832493155382216050425874285398921571544462706456411789078642997761412546327878551512534814485251484886328806394237592817637060432401203900692721403615099036956268854190492710730148231811619810190537968776766125058302204523610100566544153989746423767725801957072325554259087397197796282809001261329747063852005643535300595005861680175358461217188409350522547258769877789675497987493776466400699540652137816313126919982823007651856382226587429865583209394220621614017284332936453272605545037107167189334638071435422819207363707990593688969045333603132506121208632932868008018607290612941535029394740805432360552476862232607873780598119004215606219860442350000888485883310949492344518748792454167659093991956859547258549322853855831693195309183037068998151680097449948208288947078694666543235569145842766884714111580412140273028168355939740527376090271316532558508049366108390288913678087782252448703100228894170896666276068976291941395038092390339195565126935689738954095613532033321983424122121456092127838425845535455784102355910355529598778062011207946273633298731614944376682611397578265428807271214876942140179256079755830285759413391833384204395528553437170194655188104398221497328023920846096167216720519652309540393447407180928643723023635934182782374174692093451213287193773443021592933975254638618466657367838147836363946963131703108349242420790650137724844767563849603649392922143128032656542163089126841431348128353335777100196897941308096294914442569483683483932473370762805877199933726977249873228346014725158092700843106636561757145118558438890376103505139029614942620081401173693796182340979267515438828154774446824243771466874259658938450905570201088880907575775920141937783129512521602827540732695052005091308906356780174036824705810473096194102961808728648426337745944947097134768249577713377698025676871759480295397846420219859846687606347453375830944497753767748619786256399497279634003993389900968212440870902109362169703442734718389908561504082478775424181791672628704545365235259780931081356161012239069985145467690287068015767550289741790683033546564954065237699430062815643222165082749113312985634339991084881995866063678752338831097411002966633216993233929799081921240539973990825555319251087959461937786766854400521349756107079693805754121183060894798897134198590582026187999389184377650425188232506805292668202628669473594719859427445290554124105699209169233412175859175156934295856788098861170716224335344199999054442848718948639084241943287596233157111077094236487397728135651544308892604975318106299652032594668708046181091628265228502010211079751125448070172225637984074350486400793797223250452683399957029428460544795804835803736684711516169705364902664352112036822450487773265293599677902670247832329001189774070102745711145858183749726180456546757428259805242137784864196245636452255084072832659263360319302273727994236606217056712760874560889420606690182500624435459982373875816876767753787862718769053335288859424649911842198193475133276229858933959816967755974003003729843749797682558015680482344490809764667280521601994907163092697207531493067553204005494615188036476058245623968265950891488719552847513621324302666856031328934304089384776630636453313864734628337189603810006876516910317911613097439484858408653715459487379929193082113720713611798974878146215347161306987052444442496707005184229409841901802003150038744940025867266691074496710199039661447952957278572721511870343178099452595863219870414652864119997759333921353227050590763146701756510458326566159681465671744957421931318935104742459333315363521332113794359438735274710474586109703954346444692557927672228321430615473190116938531982263440241059579620305752850478655255956202394926222446525415976927226391084048452468522210057542216899728843755510351816292839060119076458114394752389760177273518307717858342314616049102171236069084866698081949099674676431974909232142874002978128596735613882550851366262716339752918219295599515249788800665947190627700069621545134756935337997000606829857096034482724931419881832581327792685033495189123135149381223347424693366860681316391554287992893706683882759958705636583858297014301960973425763470189227107132988248047214253725148080334158789376663626834745787661584568736361040100736848079759279595020794359325943859091204818817106989101084536902672397048280978234951482892518224324797222853192951105246101466634539163346457024684230333522561970890411460287245126621933353056514687606627419480913407830986538419784021780311694117854690001017271282140249409066761905558337726361011516358901019264553911983195532680212539056465316728575140127942755316813187750605873930710765377753897595647420155376964098573165729581521036451667364537418988293850940436271381777437754139535204389389097028198001252400811506279086709507995077105157021338557056963993861093872066955183594500276601809121976430093375564485395858805338903723226594165592562311059764805333315226439918547604787949590916763702737936865005969748116080256835535744707490559709368845456491163667874991179006228110567122002124029657477990150426093069159309348188926052782369182489569672776828735779597786421120717280512813024805459403475173353720965719906064610808142629694562036374599257795059750553862951153730424786345363744266610133984203885790461538317644931783048154405745283668570369469604798439535988887055230293375363797157722656017964209414528352507489830575345791425974504087164971612339101428028381098306696160849729133201407767521688074557378457295752567849301341453687055697219869648268485133981666350667597478760834306450812479151719818322295657621608193214560775741541301677663083323279333922411072432005396011119086969656605025792622477550038715923946977310593781208669814096364383212520029332005675887785600221501186894681570530202663599606425506887349262082928971970545249999342695607783597722151518304854266472668895970903513732034134647288641838999391124330630147036842850290627380538031061364733268791733247689516765421114656821958155692231169512112054530812316684949251058550835138214190888024349233070867302683048466696370364809070231389587415009787954707682681683026057818712683971239916893143446868409167503651014960935678064947893562586457826636352724561549624881273102158031675032912416972439095057343427679122044574350935546374998908121044613520604920089684924944149705527015743013932286452869162793340804218148791948484343767266221943207454287810212217529677792366883926407389920110898325570369260796251718712556120682460620882640898840505701514487480682316412613007056919646181429803668652504655486230912230425475615599632441388349787804117865399392789710587030244502900421492302161289264667039772576602103432382537926279931533190224894113327157610854989778939903988012022731472390380413916266604250192011730027169113379180114853477742116989602178673363175991598966912615489116228380153190322856786894000263857329301326396324341285681837712520128917068591221009853207437030908558380325222552599215173540435530225192587638210779152128269336943528782211794955536149133803810048985004666175256949065277826838088792193237300959490138388588376044757302546358048115851971880608741753310543841338332193159200459650254751670932334022603447114349702350614737816166756095720691683072012810742091978910191959021208174266255603641656105309917539805602882144207513909241441903407231336554982933938247522577359953068742041730114388695611958848314579279383652744765436587618551187055390782527226078008576772504109367208886724491505117306424572550513017296509669305686339682634883731599941527846393307839137834928345862719548653787445021068263971034547663479913234183257704663490070355578353904879619111500724749576196763487294896397207786227288557046053818745949557874194223221504382974461849946914185747776911718235701551775256328853429427321274154896034674732703463089876019212077237451464787892898703344754692533234395530245855317560143468378245186266728126780820946105229445854355093366629253990561473930693714561439084508553759147551148185907270427928665650488042415415349744099823925182203187451885834721680864332030184034014869150169997112623876615805514307430930689904057698698283559602842454124979677975160314127802104879439034185382383959114344003968961854437141057105104454962640650445223090826511387473600435164751899697479392188742704378751421150818229710545356117902920712016118469630887219621032457472333799416576272854146906629562382356999222741078567332745840817111877643560067997339880985801921539366957332628961300073207836815568167621515444997279459025001999220722666140152966297972530195416449586926580804333592809213789297814519924591799256673739552287072725695789613900565360937458559440394848029403035257266847567074028348126516655874046348385622912882169935078849968863445136577546885636803851261024772519621808133635440978707554099108834730722242369404363654507451799447286779148582704640749451127677595883846048935674960230971607629922276030775686827802730604507954439486306959550950674256460153570047641528494024792294950076516219420733602191868892340950680520984376424936552643016021220464328796654256852957025382350955866545316285098371192761780209081119064986220773816613870485594732839804194040740268049404038533253167276647363527325099927548305467029625280510430978480230810108756200523651457459036150308906354670965875126013953298170936446634837281210383219637005027120711465333053173009993097754628380912096657480787001843300967856977973049903941938574637907749300391650435735474586695535318730596522893585634952548337459900029901671047792478487722958570791315477368942555723414628081298459076264627407447294689877808620610029413361677572625832578282960197184473934173651116460837715809732481587299983715923716353363816060797222316529054358584472534363671511155343720166088246750434483686325975233416784697199708152523911786912221829899462284924483384156056348805675930455004259645033367037607390118976258723545041294056180579602702994960653941385199939772905349784081338839135153339537764302098115324620319552758685295775125687898917938159216404119855991754633386935028713232200724234222580345109904653786911158319810103805945673803072539530942203863519431046823296296745258612871175757975929001223689700151981023250317279640433401966422046287210477758142853378448488151502306256815430971729621488542990263932529845723519605685925830357947748322014522086059005219274983452611833016462091167417784678243129367852756348397128420532849174798875222535510300197244423384357840054745323931183843459795332594450885243586679333991873921952567796085187644001509719144356741043008519592943152822816143313656683607240107805052832480561875783736595438601863020788293093655242909833957515157759789736054955914761843570054982215477376818288688789083125283427732514092347058562877693094668016539188939451673386334312499938352695670986114556424842358072333555650936230129505790517444986479082274859062060176106504293119122219740539172146012327912475656093884839720367518560370051010806853899641308961443039384988475751681140442816422772315841019021356298600017687351661154178389401873941520256413469799250187351237420518072439149844983892921891524159565175512103307587885756067528893168228623785811645501815415172417953972504595987685827906197951652673063284101644102005115957188533633869662355808832134885561504322831127832632261015808702317965915468614102252071796901292587839349270342927993803253243371335142140509253254312054690882174135749932313798561527911502537434669461534771139992507785066679435132114552833297076213038303220613179769764167220307206029549648439695841753733598261059800054736000122090246623278267449519530033526190695592444455968152322164421617778156734493807454850075782288143324302298950733125077268801382985242958021732742256219103371689091144201486413922077670991588135624694706343963078627977782086333021133959307857033454911044354143190667476623045440813582438693093675502723850206608475433560267498328260143610895974221137590752369437106116649117872540723878461048186568944179949021335505318974785775241243771050017674787769825738457821063945617359292721358481716672819704337309289344820503267744940796594513488181601359772062433781999916699540267060402451806680645480089984810385805925811111314507554828914837652869846232619100894981052581007321753360755300018057763763331068416533633782061639869520995796290791703716458764376282132141122722164006982943988609496094468580076710041392168773317864632877881871701481783937210906983225393323714571499692349234640441998969964928568135361969261390471201269534969778039605199950233975003628288225676819047565090781260398035189241171804840795565228326193972177937020481181339315803983433511876902782489070166067466792096627865365677198073557868170686053984164191419918456321350680379617155704311208170411084336175428955239018060370837342239963338708240416477105997063584428154365804907245781322017703907698347237748230330618890117369101869336048838933446590424836221846452599032076353584038809356597933733443933007137784474915365924418291658205033465877332550306606647499091014138656003618114335488686035208705518800512887268853173867400343282480430449921899841698056276412527180819946704066418854445738312615612779866588207860897832448805128228076479865619953977228485638597315889373581629816760217258169125581082145992979359145909897664464248323807346693224737908364918683190079029035866445556470649620921069128632087493810136590489174437214668439009556710992343321472015926849257931223321504736610036678027264643004269126147588891914568781452659879787307207714858339582519746181862373369722224453186778825297259560444830940940093246012591086930731341180251419860145143037029029650150785786330887451902035920879487560573206746835255304645251867198481372141177703551485291489432021752607449082772879551999215424213182400922313671375671819223911496778756081258859874506947266586420076409176947626649873561749243672154857461834637421600650061133590928065679150525142022241111131662831914575244076411590538668887847068558342495098904681992807222831906553905462702785753874707680316879972644143852871938674954672707507763334582821362219322371766108323494938803354606430312716245366629064829146538778649196759375234637443120682532720730040617991510455258643554004779725688561811547025157514609080170171143808720953942228961166426117642247849892249899353990927852080471532297001762082412476832850703869152613752992101316602822902322431688974904678335001753598256041452869459420090620818624785341966851852367604653000674144422794982189906894204512438729060884592870668673283294633966525956140746253569930420729771107998236761613732482250401253762263487665929701472474439885764978962343209419534441417872732224259459772165674859557455301435000879042896590823020293088425071859050115468186852395682872227070116563133140010628347396134628878813256022360279811558117476697508832346606376960734245896467993522069524537112341648227236016810972356661512430924572770170533644474387634884329596392599197406843795614061719136529892385899559520044190290920703297834552945241533497922475518970093143861542843322866958890403251780325341281928621635665410965877670635729466146937968131701598111110006008842467518082917336387203026774782389806848420715196304034608748145344091291572408632089400850928116432323318217865227297889640284244405324562027303425297159655410769878837478554453400826153651077416913052255825366165599613187910469567397259398557062040186188142608245526717515232260690296163452752517375284868993593527129449247511215947959116553348940054072648178347686830562089783860024217302131557267714543050475256872369479134866324765936979044785756699031920833474119393876281570502668680987301096180201290327069474391014593341373835320683448253296972750014440782236716973707844986211332983932075831202744663095249279824551078665451057009164602735209412157170955552319400540040661975139894369212192583599940137356194535150923882820493639219684198043906434520548273289258074918279315889004900881856773202393280601386647253941318246421298568719810115866516014135261862193793893909551537262064861034976000278003119665030257946196515701017746681525370334010857690238435467112478578441199081606192967840019630431317562737567060954805840220541713372117874119796727465171280921231409620521068912756582114756964316272689902424518767023282487920964545212605758456722703437778610203340941918144324968427668243146782589131302517359231711558293352445262328680585481394957995269664360775679763459120747940408301514147144213173370758504681420139406501107433563214107124275170003220518643778632024390959193178548386098617333581595487957380308979241590526632891447523235660483548300631770453904557998919779896112884072234215782423902984125720861033725174006863389032091182403473948035748787650151430348729850952996975951335176764237357265516367717826709824417631329179886354793567827563404525520670178606578365454365251285686576598709257367802604367277094240101340764449758181380659138153049489760264142277518603054066890972260878072953658790863611186909299424494504731138557611424385343958815184929933240733795921337566366845247357000849031787200140315681804963958228705603390587301537922509542824734456203837927280969174314082496275284757323681580634449438719800298111222223297363177376311264721104109358991841764039139396723410349715836935554488452165095107082082311312795069640454034366602176692521944447376272575378711583811959707152750163403940220041920031259704293195296980652071844031286732364754299409728289166527481777599359834226185603669456602213096928006354793845394493460502851873481386033257631621577612822498462865850077720855451714142835204469175516500029866399718496657660224687560506507331509031904914252404397780107259748879712905262926968057969083422092067420422475844856336456738648938959999800513058724354749529467853379760999362313793380253537250204717318485561642463379131839069398666439972390643263992838757314359527521523863895738306161903434263473049880958367137032751665750224519124496002983573423162185126155845654255937197503500656932292543878805123297807345635440651413278970671477795574909258785414766560349737267191216432293702383846997446573663627380281089901821282745491631154910668769461606075753551214660376343981681347007010074435697485413731689407144902905034268716415537855976048121406145532774814347238882841586272112332810197188007014323779745088015623927321807484927861930007881609060767713196802459082155090270145483954493717701559833969288848766684418562889974247159987480090585463102207335790483862747646191062749143326232993901658425800554888561465769851560936120607241095834266986543161622198932059892561652658369352647956462737911192820499639498329042517196559397085683517740890124978372482575342490313096153827889439991571466515592009455905360802611052284897366409540859888491542036423345142137065950548148748025122501602440566016713661713676685608443547053950433098024423973629612420373131621050377987100328038649716870123643722953495311111599146573276326765543422561310874472913784021787516085309144861271270495402617308265898955586707167704149933544434298451366511924402064523365368960603203979420394993764246176147886240475282782014673938403160992195818785070690849344857162542759912047915742568275617581077763287387630966276685892661873673004709365870747104612175728622740113104873330943395498896207817729711230049297176203728546417143944007179172793635770026693235996153416552827879298257636815447895795383003853219010593975017993723509461159122460427671456581352483878934716798028962219540308143455457778809679407787374263445638434293787595889171785105060265783351310382058919983660042464988808610569015606450978957718244636402501475329972418471847771614438943669153469243294974703703236242252394615207251345670868526907121108003121648207532086392178174268891921289571802955098099990381933142249896442797249467361184607962135920768211878472762221068936064408375865151343767599580351695154225306816666160558474558254252052969443774216702444118600513571837039597582681162944529375321274296062480877114737185059688666763838155319396315386725410851223090311567984084401755765066534770096861692795193402450026363225468807613442955482319356800660156753103386494595631133173560586428759453544830321732706855901908017101885744555930444522820384354611722700264863925107025025430437044148115393628994847604004321201015257230430718671126002115183190087801876357868216444080032945484661475605410849767690367329310171980071026180970423632454858027195522045648231787301148369807955566611004670496062813942331805080774986636185046819062436032399772370909172161668029614263813156776445754721386927958433417269482499709909711577113221864793166603990280929276132654732304383634957888405003877776240537078801097933565821272413228710667179703357296355617500848466536990416044547434371980497272545528618878653537143546926459014065968615909201581309682523176643449446526815818650306821657436572011110479244808268776511302572551819501922742688362503266864059945592792173456733236504955298310223789848437137959425729097014518783079903584377197452151957531389576626287757432798722373191330227129052496337821546019223623877361228835742987986446221946719730820829538160139593071221183426714742318125473784479254992770858067592792449339968481193277666633006757303229119295452152088433321095279112952400655853357690043705677235802183081637115380160111518011865264356103536728677854438644117960744020951252939729700571544043827896562086904536260783863025513252483088348052140786137633274883685383783811814271525036613596070068543556374446572002283177758484206908263096968935776499817430423581406788130414343717299496534962236297632478282838852573849434635326732749327308265323978207003518561584595284290938292587138571873223852567750833100431057075493279054845620488434126847569754292550283514919111558224249133749460021630184312058643757003944889481533100917022759180495165789822171559031696203412168559303630750430953160090018212257348458325209080986103467585593478845349233344989793965007828958151053508340199198804784941192837414597186707856324420931103035950735164049321181942154393172739138413195612842786502839586186991006554245679065027354654671159350357067303145404420178208964631464054535261031265487473718639142052649227268177574184327631817534566416311725031627226492399815669160332303112877971347175323121695397326027082629412724218084473573425827964646204006447566755341192319141541814253414549146857803562268951241209002190063103709907373015877651492319002215492027693528990815541830321786569568553970980061784110617949646947560980175440420582913940477967866045992095297893959715820448914296341999023834449443146173911333192828182893749585495453391308221388843884735969051834857696663121413953814505430788539907395866416008011591742789612922616345771563007922610304752848705106760183559458972229019418176881955374476653279428211295419421785645400555339320751015067935243284680764772697180468994361222236506562414165182053447858502436559551345915210619394941957452044477495154026941855275328018671365862660557263671045248404476967422758079377014443642966224698749432179373501432603857481162517857324152625961077155566751729234288260443395787184496764457441832882628049182560504098554183735066931238599043028676914241176994200998228137980196102138448199633363572079922191858946856920384033374527390368517887758951038549497650914111113000639380760322569404917717825220209902830614836501513841668434355607089423902766326717601476553534340068849717084880247735883444681879744555814850727568157349279559309014807068454428084610841728696530493411210549847170503993087430551966251775655307380127645763222762276737167617892839144208640386708099257591575506303931400904310616829867441987204694915284297622396800250986237300904509557067941285000420755663461810683829621324811651351702471662399768716382313818490614651045735322446704422758594879787543311207823341006770677456316010171327326934127977072595255683550117783126125122483065198104559347364686399796642434842348969093322986720321766123651349834751171247811716079964619057500281619828584456050944510256635385941381647978230567334216714180081289669541300997602455268485324252418823680448955643490542320451661400480526939220268296619584035750648577821038120944974815224719149230810827039144166517679469362153962029399854460736247484966105214962957480410563661312817612000495176151010058477283062568161933587720013892091138461083447866792060284660677347130254973949691749724431268457619689137060115084158252375980812479754209454535456454577579776228055886192540900904623304472365878873100453931385320591100176739177238382662679216043730713305957721687097382597551901059791769258968305087470331147810988428954067445246075432036827341340577246388047505077339952663584002196216242296882658185724816721924805862990890142270273423507435802432261665347431528506652456090926039532084860559627425512507572071937359503953101144734727019245114156981357080915141067423105550495125453404583075703589670783869100637619054002491589797335829409276554774937362140449185374250781988092407210356734123640042513845875212128048612119129423431160548286866477231698817571689309327264849417636289507533840476526090137871162181107207373212382764163729583222018042866920131760655384032906186552631906955958997473783085258558961294052797126606846692498074870980074898611163172275533755345450183871694535977591663306066650005932091186621287078929700321105908904825053295654164400022265872594105718320401276971073536016101243172998215266088270005124733743401924035339061706682303560139183709955298015870990868679018790988203113269114402084312553044394614807347993765738890661566131485483537214119414352518603521187354063306901002217005335672694180666802238739807802472459443886191020802746708355876521340625018879158064751421509223778241794839386484552480260601121694427525625140574232286762143138854728450586193913347725805053595604971541239684233108826427832970009918763832346544280787601579103159181804488867766761132245486833788411061055531952905878646426829903149107928750316311179466015548485218516825066809224314227797747383080622902216872231693429341315970339451563352642916792737557555341845048819799899961416519862104023992953135498456027942779021529597708856949134117763588518480049190528847775570779400573796868663641920185813667652631802647491687930612617936833097531693927229179009232334891817170788524728343855902752740243666965322709350504149968225407888216293494998858337769286738417241071466821238427489706427217181791798288039360522362843018438106095304113573161542325068748530501164135271071412139285302708089157760878968398240565434069200449638447954175039486857760891606968243669337018847665824703488956201308801295313140724172863916459953381833694325227356156373261556092761042571002813252218630811666262005361865624405396743209164372691897639209717839765943174507621363576617126293214200594204980224381162954622927087289578061177495861242131312917824386234255245416656871744659729397341334262910431500697550013968008692021816892088693651243486520694501868934936778248181074125813360522820595802734454999620845787793991590159711309930163064810978606581660308957734407973799564405179070433182004441895770969950290430719341704664897752904702778981065017769497999396811905506132811232459956020007279867968588746919065521407310778555270303329654249365514641826288068882419229973442657109791920047484876384836989590245920753660452126661233565489051718631184222604805512742525395932278349397118099984345476467461492479107847889164579002737512469553840346490173956885933132484771752859958592981869377949423260228500287365198779777997497410573162008757217817132246978628118069427465981775487972805849675544827807975421653929374252097070500110804149380372765572393269098728112157810282481095745327720941087046528767924028216179314774800473906661823471215562157813291701905532141306896638030739837118150983481798860361767722919637432695740829236895940731016173708657571745446671156373149756821830799396228559506084344347910622226542767102122068518626796286254728319484476425585582460234342455701829542254069192167853435107190765374989218482668309139167074889509105819592582351794204065148639229966044413531936684717186629836648135213345317764508789026222539699600154330957419548284655369453967331898179147456949002311528116599669795360329050285656351460467441655770869132232401599156285397196597518802065879903344654816297396482623331816417839990114013258521117635061946446482431900624520098099059422432897878543941328681584924353069433630248074135103160220826791912996158434266259177806332336999574145715062814724743966377587565223357208314150654329971204095597506095153164114669991359688699027586923110769219186105499389137538041871022256291917495835200597497073168620386271001996479135058985737266469047192618657721803115906240783509683302115100855777786362474787568821717460642557144626858673391075617858626777333749486270142908795700477394153407253407669750528809316758067439032618445927943344323133738767778545641612336876360521604870571205295801193732717921010652675470207932884645939212901023730556953043469807250160117109078607207269860182972648785521436512903449213532929713054690201042113839253912810334225785262023266252813447607733784573253420562802140073330542106959712307383586369910899348938679728556652428876533524815869383126517115529223198858810470458025506456942100148515030047153463599155033242033987213621302009116945206428462162003185535266104171249670417260312057407238470801099319993396525454175311616382249296279004460017275820771002059404485742645514164581440817344376003298838274009323796236003768980414668191316993341386387125072387487755833668365471849033189150949680368102710560010567978123151907997538111638716161573159929636625897313095517791292589434710421055501051801927737517265464547056232787876209685732092609797227714853692003617119102463599243577841197583395991638785912911597863268280073775226902363615407387937653041001245627664201211374890154032055345570012685174091227729045685849782025438082154175408337379522273453356780338618139835954890270034524087545705344620127802835048344371491029761643803444941967569968385556007245758552702688926710741973420110772222328781069773341245463469831866307483261640190352421187161233168427926286046163947289928061193505918575308212515448170484565469379622804279491112375082484808958607043355871622603452527118832943687557401073279700899087762188306067739686653688144170030222968672152337781866100452953633883558339073636091518214939551394920613535984002583950741466947396048840954351737438689708755406393134643579706912062389498108865469200532557447277030908619847482018615110455052926390871506945062867985600890360195416377366789689855652236525867538868510309139487763700210311855285328029238391549386434493785576596766864412368295382489623277057298695793405791236881955227293504662444275820671764476104825659537647422975964674574030900887056620227450885486771041376348840330554591675347268035146240510848303400252049317399278113557946135557677194732294366743857004255225236503146188402474734223393491954320018520756369094045553964948267816747380464117887926938183030240719746785551820467900619018794179286485752980637876493463067014423282158909447070055468651018715654233830369779415729447373155352151021581155451290842564242287713550171891780429112258326886571515224477640856484859450081404515010501434302752381298919761019782039147405999608313192446039454121779133926211064544909126186926374860596657088399159749522455626837927826352828550844444984617511603876511076326524653504712576863581828775808433224925344983661132511651575996871884838377831999138735223991386073847614967542988576854628547053466690278133792115818419475082847697280629339888935072926316631540064676544427746876918162792393008354627048596391351360832233001004807641735468164975171001132572151072508336768248046814493481604384642091873482998423301958113311037407145950595123874206604458374385996844872763368018284903923738387273815989599468447366524297619350437839588578728185464417690890823388720860671277740283437118433080842775129708453896902847928685832767024092880129962048320244934912084408270358394306501967013531688680705006775183527500595027052580610068485312039331091349765422285484915495671357603630842094824375243148507102752147821053182275771039003084573268039340981958164385773989998510014713817096848729831066850385734160309761397041996698900850527599260037598524939832414096008894690422801517583383419234866498451210664216110298658901183967415981554182253533152836643208954869833941628844261806686109453184021963395215072692556910435363707130938084835607973766166004221958179349089159216405740278559424054117603879661957392521250237536946580829766160733683498199837397568651018015404778630530850700636555990586477267377090296648383575727583837209220318058774197444328296416715313795628650918228360981004859388533627902511892235386700002559750496037385896605425140657457075638619345259279588281434734124751450637624774304725629895789211997736228592326789630824208120879465424339527214666414964438424197378893727721835807994167982805366583010266573650098244140319346522624596401476401871894675844352414406247736704154731335042339096517886466937890093617607820252481885176492616711818111713853484437523199123826503364584996856142261923514218268645271697013766978402133388801131213061898381196766437824773034098114117904290242595021564682830372429342015218308874756489195856550704900401381816358348673887677255027599732629104523408401842680613890590012453185622408775836182472984858389487711633538209774680125212060148698063058210279199365145720429174837531728487855538146866870449083734414406990657712679734503287459715106506918772108784572001912853548515929050876343752295310224792502381040741046022190044868083784405537274256188981706001731755002950919942627096485313276289801342610012267075648869465566469323954517688817022008786770143434128033322286863815981027790680305746506973720336192974178120684011364530956838707636934868773239205944468279296575854260323457934853101942343184068860745871111689515732110046850653716396649806167091239329714017520676169707218265462424406450186156196644316152820713774589706972862073014370970267586046476067680014094451703738483411997230836695552057971636772989489571979631644237579658862959580245069011180552307231999689151890832685271768938207849414508601910000563530248162929370583217193643776930432711030140712852674824659263561476136837124621033543697417241806052565253590804790720470849325476323774468596611135031841861292027724401356697565729192576436114299742322204644220076501852922826762865312348641573986633084329699936263620873675724653117999866735683817935086160698981673173125034665201293454527330629335423238472705422470650284804509201984575968105169090659702357900046209275050770701041860619580693088301062061780950996511607720188381461875018255804370068836729510132755561687870568954371068090260411465506083020673866586172275302830416806566433800278762916971180547937901327082157825680083864921147745111120428941892611433146220767473765386917186331631432362586619810802434998118068941853302587616728050548171458917366446100671025059697719864912082226678503149068451700693774054744922250562963795185168216707887542267049683766923517311658685872713541748041084227460095465586616305615025332280798338521381897062346542405608103834408899751366886310096750316029575922980715177624219468904314939623742979113733755589494446675179138524009880316098000521618582499668826721659135977555428760638032687762903395190263044460981179734851763341493129717140627898523894726151765037215599464487536746058359490200642833751643043120058645319916970440210791810539235826105114629749514022375093322484710747587695830920542735668782060809405584758199246245515158435884061073070461305369671039627316198398530092825109472612414180529968265047452365295858983877432365179970468832612446273055214004656440255487967678094256907557324037410754523082484524026395226979227529074227154299713938375407621977769646214076311351916053231508379374899554008531051302663437954612525090405562763766740971661509433863386371112016587716906781737286819153497543259871166373351088061325811922696001525929200688501402590011855184076387012428315420478624548308452390850427431434461312826280648429787007480224879054443625312293235222204534265598480436034731275966403697742711208395433774531369048965766196499195349920435080413823316073827978096924268613006041889163722456245836201279232339685346765255535686885604020536818856833047309315715485053712057589062389212300959742996315132757079291100318960573078855097762999445025670331928284040066428878170781548059623764051870966012873327279105590898321757987986683539336928515598120219121528269089716955424909846240403520704388485210569457293826452522378912999689830615810417021846469310608979765312932737422026658996994342869870701251913512528392246154400566281431583251773925209639405030633694786660139619250117953963698851106129519498769259164239381105100426028781290381369053200704648849258059606917348584455464717038113631960541543418189364792012859334374893960790024298162528352382738379849936536353618351848468410789108408396536862646438780113065984169569957713419140781964517224764896367236383754943727376565259595347871359948156076614283645688739048671808725261379068374505679161374510398147779408216795010757283479035277827498535121463413176799636019543111157252285057543258408477196710519572631789110620138558520704770875007238431747035033327872734491191154244564401809177841375827113836679451553675300152691102587555365320632243609947660122398878746605902877505877935707650402378607351634761109635683628273803958727604338792860658053492372499950007279664954280591835293201898022288165698177950818886448532294272751392912273160134125467611735154202300719508537408437094204461398452323482680300718427277120242876407388976920296692595815602381391883571106375057074882303698432044223581405746606556791012363978245364025364983400413303732734331617757025696395363275336595498226484244237679860588638796335558401409836628089121177369746730551187326716906763544173652451140927538229783791226256486676146326918218269117041210197773958543851508889744685006365524458194330193359053976864504996955158794175093241421632821972181021747073517648421148437551851102624714754398850408351964156804793461534453196766290308853084050403300106258514456327411956224770367086093899338595770467431778534786319702822536391281516897600379064227493150248792858778883926338925900931512563338507356992356510214774354919956187602238737873143266361026077743539950825808171327285058393755790067838452712278291585714310773998242785146391918908013315067596027683685651370891916153215196066029418647258875117788119404715662100779174303970651938181684426090528185644556017664111041545053193055101721029619655805429143444266599715607663061832821652026455655267687615855710757161656013558739265801753490081281858613856089633412082413573181262302298322451570892190283868998740384072608800203610444382067547815033834453676377194062575530205808725778872442521420527248663712699262910042027857651518921191574171945268663357657438543344214970932217704150412920829975050744290030621025090474602283528105244316647712527334967873298131256920964637252299294124534254761231629331293205503206749673503019220065451015795517882207934963791602034367336225935560930835023212720673028133689241855744544739653104783658164087374691448952857031825892456467371774036261092349382451498821897122862343410489203548057710035778716049070298913639801925610723636550775216531935035138422862496939345938350813675922428805294398877562265460428866249688986564267660235983217517630328082196637866243835136012153590568230360910831823299111433248015811496369393561843111453646862014472395798449764261741711727712649781136011579627862900874922947276540264187304070768669557711112075336863881879051141177227315638935955486828271515422597357511420622679934507322479494404695188686403767530604588741127878051877586102812268689308520792175327808825434078470827485060188248605236145347870200233375531924070671799435558313947695246638943846021592118483150519758767725009172076460557392162384615604999458561662665301488366414437536971132929194359925720463769167650130319033486626182039110791132871094084264156862849506878464218468153641425150746644999159764029125345228155277839154869235316045704511972510914029380960785376618266559888422598286799011146217627813959760354113890207701659676752442058544382757366878979754999556429871897137786694877052918029529436599943758657152956655800078914332734841651819673512773031073121781773376974009917525223007215498458924442437236925904960165043137393595836730806800770992005279373249270086858749135533869096427903818763458175008756800328231073443830450275640831461798160833073213604944304473291096499820183883581552092297068489502246964689726814939977735721509037631312979360957385903279414418247752278276029269485170977595114645118286127025141494848186213388468116803405744770286595954130248770585603992656397892136786578976084922566461516498911641982613590954442903245281396766956662794772182608155914365736183673532660625400146585477227705548018664791403923485975092826414960087720087544877211149344020404439919971488693162071492132928739462540170977989099911991041913963313977988833630202274522505006631155057111962140685904662169123502013279403438904409616304647973713177307452276639407715929440940441871742943699812813940396041447760259599658240468667746415402639168240581573779171595595647265249436629235561518411376415371683563297851358548248322547841326647931592584925319070581508046822090836894794255235001158501786542494047378369956004516996780866055956656010801787127872848896296799262890736030393019131546006735612347075748356267103996820722752096754866863910262119454876049603487467906170728454368317514527735239686240365843323354139917583481026123285007462038634162462815199245843505251440966659474001373235635690557347858319516585158308193276532766969945765317598834895047381128533415378540474306555865557937659918961678029793465971394946095265133615409023090732851235064813400755471302599390109329644067237934239025702279907742241243869058833543799522123718247470832381481843064224308268946769520930360954682659801993456162114045291432553105033363734493897843296752193793935474581012828338179126073579954709986777314858027892800687062540050011250350837648891268925563430117032802886112441514545572208029090658842779795579879007139843783052223909268498733606358661091823128423233117988384841463544717278658482215547437607690205466685833253084183477160421012396250035530641919605930815761875812298041577984199493383530170196600407175979167739870546912143135777653834621970315206024478594229871790444061268271398706722216489253184111867199863381845154412787576858645571503979724353333020302866873096883057034271380151120630823070560991446395834592263394411211611228694914441540970656762020697004260436824424041428139630997226590494441686265277389846135431115248836146465480986989504422056408544145832720028439919677183837509990512833633060833728876253750520324920932487542923097183736412541699096737773004520315953948498956767812294113826917929105965233854406207114923592386945531838454735550940545764487595943931558232275767464840360947015772318824016453743104752498866459471961765114155377069659679828849101653707565840972499627951559828986570513692437998218999328428685758816980312906189693630219526735572240569557162436957194648201074445891363593857023825514974034554096582136146311234992269247855245584606051013998153076071546057604702322373005302822324187584949850995422222615986985999262073220789572703439798025761844452257466216170466655776875021955834999732137731649304290586748468712176451721226985829901007812242606026003214207451349735577074889121830782602437741005514950147241123359818588782804735782162078395875508732488122597132943556146274784194035545564527400811074883221905645622410241420869422151365716620974702730304034975464085644841633510842730951098489155729600030485575014320705500188876554013912721772083874849291331671894273895697492796914647137298211634947097214753164428178325833092460595245456587924807866141642173081180062324157150082861050703086811082346860989507346499311623926741651043457787785320267982814751276339315395445726628238550435044368104551863421089692120231490634932215444424365199445929990474571595371940001409758447150054489138876597578382077937349455297650312058962304569912016018833334028287585683237704442547157767925690198651834856685790655942544327618045133966430839325957370621746942609359157737533935343138371123655283766765060849538156483154791010244661578551190311026289684411342285777013822560884300576817988500849758403857270227726250230255780841669492804281735252600764545270972807794481428360628983051915452385378284438213242166468493478993933744789991458881248142292252899301895656066647252792381137425166178046141693708267043243329629696652865928699728198925567129693010049968605755403080625986579778768138667604380988454519417151751416045542521288363959456418188733467549781393347478655884975058375195019160232823338646619077176447130144984714957155929386502578798588442802661262671505762893586001676293642742405217309096844483657884560558605254094015299321762918993918580909753245314206671950451379443379034507468758904996522251040168891219832802515483748972740235778163879964999299074348186720630938729576559122691188986429226744558924955854617206215742895699272102118711870969703191691277541377497165696295579648151504713584980355940073832303220614902691789932453420245899155345126050149770756483039662275232001173237695573320626820293904855598813174832393795850925539739472485566411284251162828843897609698983364048839872425969922717877094233998472841055963072939933844574162682388865242696099720549483748226453475553231826793151408473409467949009221488406655450383683961741827300238766723947458295663308184038388866040547904307974034884173731525993927480144932171111044621697526412259725209438792606642323234130312329831498548515326864077898175664363486633668425685813677030229834717399918370615930669621543318127263164874793802779277781337202685462353782170730662982289685981350988699194214377188753553450852697268202539171891276381871602842337610462856458266454188805471514288757007701564788512369038200496394480653048500706454278615414748966579919429156734271210457547545285379322563105013199757593878707835968977406852208296904908646596335622040122793138956730868133639141129442574664745419394058826715501216322693124754389629527341435154740264432143842165387205677241919184496188603962058370342614899937397397126127609331545519927900412533834807498156535299084874198578258711923336594626795579594249481698809364641941240209459736915506784397339188385028041941717507367106528404991679033918262164587655906536307666314476249275154359900950055610467828135822879991226723372663209003752108987910654587695105185936979895119178493210325896142403265809653187821204551677044200182017156097940666354885140581436384666928697213658984952964978652627040934252553522884594184955671013246599364130506382242291333934326143265417963228839310763982197467107454181204677157870015364154154172444675411163433256050196400323869676009082664985770596197657205935815092880290574394310271509163230133039131713709538714759765752825889398315593685443332198397825249106104215031325782364074667594445275748282759044591246813000296610355725535396604990505819800026878077949953547438004437288588135484478826829122859341287069163410598351954056689764556530858284698618550933427282745974820233544540520751356926783049902792198563037479887870732448580887884093997419901262031837727440855138067308230949341300451868454095056419374133338167385779406857538568453932788385240726742604573845590594520842090474405746598919620779466562902745049235283672183102703646112644836586146205427393318388488414161994353477548711126315756485523745252987295180787890347194208599843666303201786332973483235243003876459758371390260668621817046320121112842618193369654450817590052636988646559120961880493089826854867598821643408376102349304101161756230541463807992719063503154957010530974971515881454731644385976846780170585506700567980025369731436840021567697644923588229018575810733098001943605656375031040646693384315004249517306015215760903730452285528455506143660463588248264194551504732992828239193084439418317845012142556868102029803546725647460204957862536566572142334652437953190745084536125573646178009585434042417100436946826370879778337801930796434553890010844751529553337883818827278246440587070204289821243477504660997308043388175742239758835611556665989722335921992662790242445257084069624823947043003957479834235177185049407529095157791372434581230815026502561322592264764635976089635801225970964317112786220150274306235801462683991609830603276244308164880062679757570025829202071558305250445432994349938573022985019110941448249308453177894929186424475753201983895883642930015712056155929291721912776434341111161289257896947749700664675943681710878595426924859524015311954066006064322389394150622053161865472456863686404458835459792343299569864905694517377766315150672873148787920970954591037764610945524634140525590974006150443224803554925732404429259590451308330938398960306975929732027324503523202823150691298897083545572839847678672878049044641825032203527533740800779645760877438302241132974262484854843228225383110229386717267252760908763940662323226744494479010981319979465388327154262518950009953236375239960525242103749963077775381391028444929146495773629988357690601973407618453139082856202248020016820646372267566993009973955116872793901207179180616315889056271182957473977313336023813074670498397595952215145609202124524284403529856806420439829176147985010652423836734239182980149168855255492766830656312994050854977740067571748972513285752293830772044810260793516591993390024146573630252605746638309886127105829282484903279504459540231096257871254267057718630710146075906997341002990846843659302604246508527589129541969421106489741219839114411396059550800887577622488233959243559895530048988350695750331256849244834260376138296261965574971887931313444937002919682236699970540903935789936471568129379135507717943090772071554254808994884369560259877870175556788897976735443733321935324661926150163962423004299443913128082701280276017484070619734558218712912463320126078537919317087317432154351332458276289601879325840132075909770961019700405716077914261124361283698960366369487898507545191228422346933364209580933219871363544494853957255477460625383272660560088878171993067681614428931788738524501640394816991182602509032373327357974551164704926723593237748978229795602308994735192784409112850073095856322081419166912790304855673769790862848719352711976427563060160504695346879832163097786652766546718937744634682196101192235826358221852616515824869574622770915797117554027390110670917069229205876115803790057313127104271060426175163596323052074125702338659810496845736625377149031279038679263979568345544495703627985696995366622931796325234195498071934439398438279113897692098756393794192939650007866904484303163660114709020139632539434818112303470194681526135349962562793542256093852907143118325050062188808535154997747497220784148462837364278961785027571957820530705129117095945476060756929577241075058699276922370991944735238993212669246873096224781467706093615222958448312169697711476234151877572370167878636041212928634136525217411030801156043953955014832393319550833273702820846156428914754168961965215030404885588616104851083549458730887590601048930136763298122926273701615980162606328871395285242123871812868061793462224574987245154149523961539198072860640935924558757759371041993287122370947950605887608590886020998682721598205274419572048582062625183185797611596723773183513261869137376237904242832586331082337015935994538076447928241857057626681836163702505252655761687651834453354505070403784430848377463572372484074614987077105564397948557699946716371910777097975948293003674118920486276112103011414517224514056716894358320594201983866974255703282142705075773511613846504031775091359466735002707182432228489953805058426970927871093987688815986411810662588984844533283356832656231506618645811121331214151541402244158315109474217331858668802758457962520566738811419131705785533239363677001372568786165782321804356378301792501291849493853996806024445240606697825089498823196070954303568356435181306341933879494595193283112495576721201532301894262101069247115432142171180731644817455296043312169373550071227025616113246121380503432172176907522390846537245161268009222850752074882040926824369537474625009128952911606052460254733365638006016899001181773375446223970033271657892239402916512608367935797357652282440248193014103436401127115151227972366164362705379421446867379919629465148476387299685316932904899782429829767193259360734712761441214388409651671015510728358903882694628454910402367238922868097024423077373160377781468189470865503561127733357585852184051298373940257773572318463004251301992902320705936401100847878501050717520815467369677746449619940196461089933035825197908307192435329510862450487482003046603984147930932129725083090632918851726532229255043403441382650741899629871120117119896387644963618654135073462466239139366949832188762680766902659417232607709190085860125286815449622201522712606833815449368476389583186148325109662723180042173584955559455655209177643259586728779851198407223353955553020888812718404295383211502698805654376919468414363301423704353037583341898476056332889610057385862755689796203250759065889347155169030076924224094141062573718079415516159457485498867315696896483057555506861290792967848885875337479388027154887850191554085842957358227116316588730484684874409890681255819134981692468431269396254035290771108703337628841745195975519229426906920509015930679824309852804550575791286746658853964572496151811226224284226313324525541560259922905426919160433437167782096483904981066208877546342754252075029857544477332819918584483130665054020020085198061565361883818927492259044230138033844410243959300611707677116855429390140291094251851139417891915574845443839010620863457864349137486372170555099445088935883360051475934847460877308399431659751911912664327015397997529345215126324240422876808212141635232845670295308316871502266662503828001728772521593487030603320104201481607544075183343868826131378530409140049535450156306554255353516369729255495235868783162556492757076839421289940359412791907564199551152078075716079693939538559597769685016624045825873928780291447933795156848139301107013196827913213832772394817362132430999975966598914566618342819513708955655299748423484288428391628149941862534135306576544051190897360223107626779194755748960563182866786411565338579716421476913625754515067514163602120769181341909345383055955500534944795365287232105677937449789566645443150116967370048006350693026361646953462210400423292937351348125795124559395824410702613841024982663115229079228390578109183641671471512993392560108961437568872600211795032619934048238751387498869824022904560322015239124430558661345039152804663902123427815106442786973395884124711863901327280732254164005956768020889856158516798060719876960710380179569032083765112435476510010404334720309270407260222916401670952336919143168071671752560801652962515895624069123484527863656400327063267193269392592111443327301480213442378515979771591459248674508077614201144562403436384401484436567422173332528761056793265539959724621195130008900840080028912504723394911066839571050377357800492734568624522950152519414894993837009238269854333027334475006533002971255007956163045571581389115333842469739216826441712165691847287139546520190120518764312590589593708873138517114950220323487369376055378038779861860942395108900083222320585305453673024864228082237191678930712037895587744465088862227908894631625508834889348358008762765857343484718893498785533948213720468256969061923724010735154162365665026979749904439283254580926410543811426643123114698375616163016622940669032511520044482138604389320192362382565473837358383780446505842735712342933998772035814155196312831333332153340823419169568736306654652791386007073445884746524815938198985182769586001191240375186916683966266228097447038054290009213203516399396786845492065781609260528255309595719795595814352317026199776693379711965472113294608485974951120092141106210087902428858891627894983184550569692578305406389290875885967710116517360775806172532187244151909720676279538949633850282061704538564228026064854132839464931295992078573505765215445090283802702805224194189990229708844690016188894255899155134492024886096488000396408741887597590508058529522361625297078569322035166807274849736629840447018445131548222769961008502997031223692093097052247453175978995657010134766596911456693186337987466036584961162926051469542079060745650208542095006152655939139069230461594778591316290241193378120243702859963427971909988171933600313019785178363410643638853208984493442508438799123811892883407073456965439042532810613843933481084143355831182711566124940278175214033992972197267348102641853501182040476055903542054655090002064202490036698991843739219018566858794472394809683405218800567882586227673720012605981242367541454587643948423629487590358176236121767570454253282984613075769936686465006710832932389358647318233496973004850681610905378793939468902495046841234118262586967496079753197381027671940882011256898358836614619530017759161891443436411820709206061526816259367045516625923011551312512428373056907283382244726644195401703318021596512988149142993175218833552299275110002094659646972519607514640221379472724374072138888562667575105890834994405115600513697215777055798797752730892893761068907978421552119244732601001402534226195326383793063758537560734434073703518811122804239511239689626586015875692950460465807108977838040560063279120347075635698691936401409074701824270751235325874793916149482893249113705603215635521194237516753402772278232524437254010554200349993855778861376889168570039332735418750489139856717326473444651722985312506923854118822247675025875068429919076813677034575189152367770897048141050638405023637396321446762881326208035851475760119767722150415585126937027680033610806677321611299305341895422806922800319764642796293143114164885446669456645731696301608879360928232493928110630799893809851986466484588260788481193573875967487344168588618652708005666561098328986327587013281045726610761875090396077700938851869708704695382873705472867261779383098203234643809181292588122360490559024577397537526045679128231243131654168448169239643417522540699094990189042165292523803010257463467896787505637335463024634686668524033778806442315548934169695490325235357341232357622894141955641475536754355124163880785477109190189091913888734001802071957012416767720047355813814742081538303330580399616957265997680259876539182234790686427133745260641563467419744203784510328911557839572256433856784125281086578622679051772435635897671101385850938135539546009863272210165639248542934732405388592467245463766716894812128012748758372431735442878421693167587858451343447428637413844530813683726280539923949308051482875281818188794563815246762839575064932453867866489157128744353821770397884319245652292229714388960343165647860178845873030917398914203956996111213098572952285056284490118624157926307100094142762289335969891624049725413844456473052576634213552225964737580745216199191793858795177110088573449792041297089295094148989996702201003445335865595741331322117281695799188148832189026014888494541855983433221304447445048386458703112783968834059605974083625837408136913597687768688227052781532736701718785182721767737625621450464786842329677676720619276608658622356760720589594618890173604977584361123726260004095691684641196955968207998774342013402348294201290481530189639357323790306493871057327587332662021994453419729625277049573996971532747718767274189604904998183376620508565134916565256339883139043871759018740708443694293892430871127055037684816057632266577024244103890567877925737921448715531413206232043597980196461115965326312025671442570700874154402613123179949500993944129920131108682993959988246661046364958519233810381905911780337001116118030447891841863316027181108290415934320174357214641733202924949727994994350303418419603521980559159847334257315730313441610225949787636353853439193654856846500075651040011450553630366263070376820678908230605658758914844284743358388054714704022786987024507206510458724674421939088700303838128882006354532216194445160818166023789875117484504521958267437015011753203963406487238411667267626915052416517201221807517524353738420365840216962055229522296541754855973541150111277279907068023166589721134853016694908400290344264330684572161275590055177907476447763167865883017805437371978102846596968025836513870020950173260375719934295987649668786379455438373601779546920390473114962172672935931341749861612889092616349181193977165819164799583797552437989107029454635752774332348622011763525461937072253353379223646391863974176229758176985853878187763010801617728785723632907609006889385058500345734506057667968547617486547008320834537679310451596091953401745586513575050690509684869061527111853089552405754982209332448773986756052131703034840069685718210589759246392353246328308589399289971629064840880664400113803141914086701540265104990602532056980372157383797394184595189772112623566127831926526254986823631492901520177290243707749511970779365539516784458533815160350769834783145593231730726873948979621295083521538518400709222251393683152266048211517644264044689484137797961631386008328027837258962732568303913665544925407592195859914958308896067956237541232874671302899416200726253088498782864240949496096818994674257368146117934339873996825762918831883412074583825688538869776209451034084909583112851691567722080486073654830876944848461535096675989057941670514510011230509607698276739006425868608076766672763773726246637201656602174312255018284994834252479160067131575130148288084780002418053247194015350941455203779930586575947112071267026310176804445691907256033369131352897187338334947314002757105267866757044092244063498265047672934837003570007494831288411918250572714731522640856195678316457731888364519436159048070888956603015730667053343833603248602353820258253364541516351066376932102930779931980343889721482691053224333854605238845311329214425150279896430066361787441945434664591532376622944587907091011575266752410571200333212894906744287153303786023794917997062788453749055255422997847295892093829615401266924398153542091701624150422840930949306095250868783151397723480499844301215640919748342972412858731629502489846481282247895917080946018009009322992326601226448788661306211339472843375722905308640884650751950946345169660144972529084498297671675203993853040083872556543927826672138611385136573887827198388447095284172588177760060395735420167587662830612025538922389237280375032994686225640291280114210763079102290967904187634558306927437615895382917034120417210220518463953293425437855445119914856645010991813983326946863183647245621500831440740969841280497953156925979486191769550941599652898484019658774625025744931275103705810093112408646286642440363796834311314304995565607824653641472851280057413096685102728121066076383236095856414284183550400594911553780716410129851198850652712232384867342575569617475824100759829633380982187616967798519737518623918759841568456857725781943338333852688581311740777096591865372883641576043166322004464607269063909812110856902398828658216635810873205658697887988446969154928803462559298962123259451093632924126262855157865208246887494727766401850558636180359373717628598452455801878033109066118164606389526428338710882054128374662768209956505555711386153984446186085443856024546084003596703602544048625333778022908175859135633978629319181795814836815459923992738182947428966782936189783933911226548609206144093465546375508698985515537427293542132669464573870633082357274544042463094218562996585713181030002907070013531466254225065549690524778247871174013652121864234338542654327749951847402293777147461429314152298628190238350016533195567570853717189888267052238924710917465499784446464953017324982675959703326175726120825993009105513392324000147700568551450100697590352843201553201127180329918450782303828116985724020644840790473203189467280822009887086913774390817618558450011563073337526706441414686831642882250546114206452220346722600471989465576559842600945072355989138372399860852714860686079766524898473859432092122243096202945387905043045276336205923075785525850658310216622782205204904053361308419771684251680613202442374125321806286392728965024382309264399079988264353691213411174801569247912166294116046403661179554471235063701190551743464485592545638284542662390376105109604506860713274093833793881950164199474775055570290080876311710245799793425332914562867866515006096324227873288084158682151449874060343866253098165661066315624990009561134029283308637320125717744893548065283254791807208768799761550599942260217406178518386288384907614796320441043963792249919725770905136473458603090656488028378847516273102720372156717784070622453975651017075560224963646962833673744000325612624914420113354624797777031623540541201496812940878000932081950222849792151571264692988157903021354389548654849374108605446928101073348239091601184222549124233749886731416279952453370837916721780893574292858711015485316731380320968531959046697552608432983459271457491642622364415057156844527418369845217057862632685392959702129041048523818313872959929533522694754293966646772050678165763611475713868711628156488157616339958766630757441163091093886915448455631458398157985430935531598890080777217769664823598295588101323200361083644730422722675674556841597651220863473403465660189905239910714977574194060087828028733393353042369954462786949189876891780028649874251624889731637589224637711039996729385888486482787870067634811455055822523752238942255325179856883650832690591132575648462002044997431645947824319567741678625620544713373866045726117221365541753184586627204964066417594867038674224779115549724236045756970997322430820854331033744816262991401957142640123946903447630886331682080595532142660284985331499008843538939266951396796515622829107336553881732259939306797613232676457726554053587975844620246968218869647388871679984205762320447847202232226354121912948528791731077165944177117634384204168375856965593978709872039035186676231157874640405231672560774371319863028702992252492809609191140720176733273619491163395212219024713527456266655581416143473170583127067219009108714503728002620689761512782536795997596196546412728107484310411419893233675696876106861202755683038125566375750239343472199617082076379572014658907434461570739778431706190219315298333898646470819653680025327800635115443593322499885362862076005610302836280719612115124222517202368845574885267219098560263854425251267690041145897192767118602527173393447147420972930152828422286866753967641682281729396113611791130923944008419984655875711130850552259163661946379892963011610578078368815876437649317635763493435365736545155194789317148710384586849182732815450791115551861464959901264048179896713237323970503227373854428248436459038068547843040217975561872505760679784331781700218340327189942981617721788400080434616661277313766293305560570590765823261792100595014084334914071209400497672068968234444152775843116291517451739145252564540409133697742334429037248776328236307853451132730071824371019645928392397380265443406224987847080227826888463487325199249866721579674796857081832622847692293141719426526654263399617047910518461950190743418804781862531509031345616559602109808828518338794329869327633158320331060355009913578388685683908340183163740288220396466682309930494831298000019564996767402215878563214892153287698906228445793544681769079470861295311521393761858983572442473779398642869486527723618945292809657578397695829016380986239485912049766470205002036932396086533474463650859309882928066753154638690941405406066756204493507514617554621755442239261264374862649928156994022369098046137460052337075460291366547704033557565611257315584543230893565645434827476936148845657361773379581030972645032508499130566213499290620924162720947934933798679210495200215307994952196252767063013401301590963949833201329714630313780754460183397701278494712076080078323013859397020013285347283309423008860376725702348766973862374870922828833601110511345508519880619749399288495119740383872453928840524477845948122020687637559109998499564462225401324126338998615787547124580374497321501292408774474629362068603642736886437971627617877579870461629931698341568103774787333335474429459602365427890547071545427159625774953117803143126018255657897813868316354908565703552995433022818799957898177267381741544698561820682037098079848975071440970379575133623255142954297990897770222133604438103078741071835823865118430341665725334082021036881223812813247534960028703084818270921944068221802888748625355518066726387054987380331192880147786412157121515812027286468798799321352179673740719030328152537055900847348152316017086701228761603700759985034264966433927741728997629664143047299711898981359478322942597788233992201832734912144394487771987740712580235774240382291463175757951746512769345657646265805819748954940678769649406189777461420123086801612663438540843502603044953492714661081729985864682019205675001779909755370597130726032103282461647684555776185840573472978511551859017917760407188231082668873956332166970712364300594759218705532623896425989678223145840424014935085637851057342266326889548328776276978459900751165083044362470738129391594501095998566283805922275710190157707181637584355739467307642349817214153482779447081249743207077256269846588829858069055556572542385250746379643319564553649331315628106428384172862265931740636814176038459725235077839187662990659780264153739719679208778799441280305885119185863960769718307063455399612145201093761532305366596629102604410424858913526703026229501464814970848674346650709465719166297472433494192610793742121252462797284457530692712158106029613300792631787753900869433466066468435054300881853757907066338581551846430537005165541642711903571606642315711244730982367063410996718977189481627943082350659540424480592878719289502451440444073806326961683338466565460200760376162268949962192765776488778652414799984441722287692763461274264163696195648349785897575208572490846495430667028488995973414242952008256634556568778374172516399948786432062990487607353567139869809634527398753317795610770673480216140988787644479841593364691090323142499743577783058895210880470403552526454078628185947502706136975583086400951266085919868490451023314710473357882128938404018562709723168442747382525680887257687796512776839890727696244749057022256488548461644226862944253184182729570218019881371107492215296230214769496192799617115855139934018395720848744149031227917290499081048904660516163315735976455444218518925876889808545561771693975539234533855741018862486443187191885224106920090346560631609662068058828661002919513042588676208506974266973588057632370705162411563582124551414337887905324832983338094645839623685925938392023902156989714007868788236184073093125978724695188474439092424660874995919802580249807983289801538269276611076540006559104786805406487792063858053030903371576837641276506601294538634813451277042262429794738460415385661098983125836382422185150889860206562878018295597194775880802408665786504221165848388531501909183170938503177593854507394875875734207010723304987112939267239443828124435099435363298052742889579435770577113269550602242246033866620379075498126737006925162853045416359265430961767952160673753470793974828880864344355184871553245814355694349747623837214460265468702436575060828796575120719947560095822534255254434657318307694595404858990459419734264525524061683647569887106817814406891440040452542519368170579424011065611093575366706508765498932634531121189069518119691057535995951645175588782326413473238665338995754164612601003513618554580743862210017100747407108050228646673062806695072284852168166425172139660664424930324481158112880963973919374245630121487195170394330079055693693268348240286096214092705227937435752692106862839488341936350769705986918757368013395694115448486490742984474207461069262220984532562920852913614670867587125804207963504323769914194287678702642114518588523949830705233094992143957424805532948541565248835938353642337673913390428601652374531562509902377802885192282353213372015141362021837594927991502820823626831690445635024165261367506811842922773829476283055618284753715566414867126000947591894806202003491097378899359944759680881576531672993809258473343781589583361482783282081921587444895864818623735786703711678859292827440038691250135170369741857859877792152761768197979087357886189569856341621428348574713065613371121448219440500163580800233751897823888699860131989679427256607646739207922494852479663866996206763257180183603188480908630950006007612588031566605131582670423747504523269861581536868122425404249098996940716253043043773078386589063325034874734622276099157424238283755519678898250247713201776008485230791718893245684440822493941885325426115464282295725688995096776270641701776200962879810896118853349855197973047444120492094131286578513872399226111807139921125908684528574761698131960978986292312771554979724233227116652057771996350801572577510664783384918298197872841213876194267216370608734033531116563127889503479388875025459494547054095926347949691856814182668758654799698082323011926532305711325258155644656916197579502434189548379187582491304638922320739986902894755970445438604839449201315231918480104852990707044504111399304820645606439691704699263551479378681280532142032807452562458121831111424306454823175738891849307208255117610775500586411997383789835395185657302807374162688198215016790096945367635333748561868443353034215377370147259262650385432750806834078413244534949925630337315290628336975382029477588241855012389582340475645777797118155103339082206799173136186169067693588395928437648637390400212207552588525995609703244934776387709890293953352195162895494048053192062510800671689029210894472518461499497771485707785726488105918850456467091752325059133624644479882774148916703720176459101114595221007616393879948755017161589862902812363394458449424854629000807786039095709560915911455253404787614898945089840021332796718608852631116689687930893833301156874407506025278947061901545376360221856098486291707835911161267547379036018911296385983340740925385327054644307836929697833447350413507396545198281241457341578586485240180015948933350754714759735321890225793729144714153410800232025513096178647287764975343325220952264812592738337673805189674463345206450997460892178748224252407958211138915289541712239079781667209478573432171021339056153441208211785516908056986985050673575133695097195662992198464835745785502471344627553404929248280342154660372572377064850164942936849151630725419104239599756031699982500090096735769766089217526463241007567037822625963598941143497710964487748434980695358074151162082839774635493887245456340092107203533511518837849655739158520617243842322194656413035968974451326467626411203362807414170015986499295526125127818886447269916549347438238201414050651604636703330583179966741383814598426082227275295891800150882662506823714244011962861085890369108728344817750952728055957419098115899853281951155567960851664440696053208848283937275569051501883462891696219542072268043766451999833614115158936359689624297540551099294917736967418042376534732580009249326586099067495787361470478166335984685111051245290470253541582446664952007137700646083854789798277035363047566637220967248630098163875247493035099114573839750465688014742347475279360379720675456995204474699589053429180039916136893092490896471784886828978285543226712777892361038221748720260955091243920450828104056114788801044207018331464685667077412708597986831049371647979788848528894885987009757285288182205833004885123042729966575453046505701282390450550973438774149478335794670659636025245946118544028521893536178119469953518217019406473056320066884297699957296330693109899730422073472825700308276447506983231794589756009251565457454435255486387220354725026471944808001670045372699377616887739054752918355752430705698114940717941080225667588959809490975852691207545541796036927173149241409515208425484366450471178798824641102790978310784604787884156565430725237917125882052191625298988268613569521172336832485064838722282298105814399515786608431322367295660906520079902300582417983422654468421012021681231028210893012765670533955165819133697171249157172032377430573672078232664679213561731237551706455459136070808369133161305519404841153447032535193775110439581212478197678394075555717476396220307828650843018656733511406720719035868214316179830912230437884620548103336668930425973063208449846808331192065280467544480727955074309599061126256763749874339760394625627341912553873067031298538752495040259670243279723708040058572767476158710045890093841741022969109899589874863160232952567734746795073064813291246239688347551962133326608225036256372472188724230167966476763902568416240248440848679042142937812330300585176506338854109962073135442750188516456756324950132302621272075367497209682473967997149939264859739987630073443257960699074037698593434672074363177712045670666000337731830421368369596355651265745642649520021582926146526315854115869190267782771299858407496826841298148403814877766591062748450250881825047343732059838437282146691436523836642589308866073237944259786830518357570603756164976893142984152687821919271101828985686120528012932050627800829934206032996864942738689186384613079763316056586308287141604362938822130791062977873250742143612864317686187534144463567238140044279344495364224588544718124227690826987044484961476772224083292137395616018480417607667594333082499092089908346825423730797032612126931427612293085622307385318273116864502515417486065282476581792912941185770893907074889704121555781705745899469152260547283648319438245651040656667542808467479542398872106584501631442530918403172847564146150165198675512459571815177173687378085655254390746204030807271876350690545101079012871380755664618203499209147810111321574884889209339657028615942757581395318580075356698046829834114715501332084596124902560236066080402754282613264434337240305861280228167167070735757953329968344559309585621173615542837870727876432008114152086463657994320542533711124925899598533171355501628000256828500310052333807852764009411676890647890799164894085433569766453210458442528525743368303898785432288922629245722908553274862147669773278010469927361364123513377519636660060508040470134909950318520177029587522543206455873572011760402650931584755570807589324736509382830421563849783921437434437824093587771723296787370712962164069587205403116598638693684783806759256749699396611014446574451963470064037444047218156226609312180681650898760898839650060820297358803667326350535129967405060463356503998844601562709859920447280097535070570598393217244316419240265302421878825968795421836205458548556317896799294680941467443090974602990832135065677849869565780960090523601252823827755403824148353966728362873292742345898180905492711246283986248446127124047277797986147160094253705483876659585437020255894080034495061907261456224613133627162519576123572586464132117673267246046903566606499745577861330202988881600721920316225211031560628890604218118005268322854721724574565613901122691902175791953107871162298565183490348576328899766089450527498898300356287213821680779937143344424619014495406333350534837946822892538072477421043227538503738224126597058346966145193667349595175919991499371029504068306512677164795310865437656648420452781283877055958996049456682702978930696366968835835346448678568387162687259810884907740952548669492860551930437633583551768040165258180737905234758974683518052647715258514106444840878436484340380320106759540666657516433954294425843538781270835467668719444846449037620144909656403517673011285078524012829400134453446803747756788801750310120050125143966710217755668567579826888334307986378774908106287741827573317654906794434002129672845679092098770530574638438763998749782107569476438410158073764416383697072019594688232866040913096405529852246932371163028699612244075637311737792443492298054221266171569591384443894125573714127461223350772324763940455711945422603677871280401832390515276158474162023367687812052802380312624195859663623611293141107886672931237029889977992270735736714606549743948018417181113834713546693231657737034248137601641765334552248068865342443834683017367328542350814134035792309784132656769385217590835300796525304655226845053251469754829978012397172460630393372824782526550902603155318156864782508492996205932531959272176402404340133143245047486200176072992392505885012219079888224451781892229895135612175164606252000903781853422666676621085478158431055599102032353580652340805461658344535037499851361949565533648629856867687544838291929402328744992540025967382328766116332651576836222412329634182331447804319634260318558936545887574704127134295479438070623215726358001842979025977635515999610520544979689042486436317977608937014875199443425467273884715783197784098625043082661547988382380352048358469715920984918822011809107263485777084703563173229055212849643991573050481413396641104856119753047670669937272861099947188517273945178203063863456135641227308579874167350716500137217370694170838677208384081963259829166761610919301110263280900465294022503762230579203214417011064293034504485084138260201693945349065290390971314857037304307076009160339338572353296012302628037219116302351728446298444981872870682959264888585664461310857362357137421555661779763491053041337218641182371442883852919549595543309859677809892499484996515338400432819234650172470641877275312410215307466794374531636322020343997769164960816723167970623808500443090768584055233662220650928600967834580333009723873596911299383512261735733368357886239101284374319286999179166036617729246952590561286384918467278768235436934635722316833729378855961793513013658170088493951056669585718428730183213610917751731341308814770395240567629307774623832506793169106481626290309764108978832462153786522885747542409324322016565630973181960197608726683627307801269959647310503197161679171853959562530513790064082622311112235663498143452658461255893138631524714298123402550803268417967391527778996173664726243981146861178872651434537091503130966481611785766714152337592216957115635009587594959861857057527459540182301318677759192703875781754799427529216540341978718742267339453264714921089609587628801445955340750829280243577363105518641148899859564597706469760153724681466427928476995244363805863640859386607012761806711173132777638857060621474395299986527375185785674071451230952720686329603442400695889839089208172714971938280720972990538247339306871169859571389407683780325628403316181514876202016434715232326923885652824767718424701470028645675076002348400964834851592227430458142584144396129702555043564799937550365516208164638648992885554282423435253529876256198256456648038714584137661348523996360887069857233214908053863124483355773050254985866247498223295045917999673265584789690293469219619854225242211532296055185066239256446026204001882169739332871996436281302821806795260979869330914241284735104705160936029157849729093277130616558759543127729102309277278235848231500641764155682698887891095357045994879371151131634749843939901272218454752629253203037170771467103155190997977866245842743260829290620392446430213803217852755687316905363528591887956010473692755365691354938607270132509329559526486015308852091420798988336244869272050821307145306354636406215701180969498289617843714953630930393690970986435106568485787835441317123897688435125692686319302689398783630981769848404363401503969625509981056901115291458715061157398481259716093086560479501812336127734143842964845010915249153710585847457795979021826037361702814770651519882344735701897413009393920785056675655385214022731440277563909517653353530394955399802500467274807604840653388322869474271132231575855371784287861060357907206833005450340166499375277084010647678360811610782279798901706429541352931133768971651397669625833808810466762440855000158593727121941016887022057048287471635242795203515118264527974156236276466443955595790107558936195950309449940172211118424203049658303248355715809158256595106768157945058369354332930923176479046101038025947715345652321690176943373951303456832926746774764547390841523865186731820921024616507057286214854163657997666322344117758848645233783903507141667272231126514590827797389602681364392293192210600854511359935838048064040504964788553224316973122778183208454472360054536509488513055456778141569234171656971474756907509048395008438778340292485174749147581484799992680313560711975567819798585547993040298240759766974637690231614842124925288517681452744769432236844413792494671760735217805301404209807089362106718069855809735455321543588090260404262527608514538926693151551757058823412058633234881712572120555213222800110740766027077837716566986079647100482163736688735045775966508897039448448888516543494550400292870390330675719656785271746734272811369967457864882785731323775208635803881153109852019937763954745250787019446574264264969903529979437298299021398471490308911100938026368011612411921084977303337661973302802089305275202690213556620307316103229940647771734649557408377758772738756771578380062868417964961261318295155197454993740965740043935375138600421471398790973032315391764548376785813878550962059984551195905404719635088492002550284941686497680388519858591224957914958780162423508360165383456054084696182584761597598408460143470364407779897527179952626971896437785252170446008836880577771563844293797476638091457954096052627009230341626658016896543301718240964027923437005808258944387485990282805007050319834363791693183638261001948461571593159252054117568098286136022210806352092589449421714788853776191949099994496929995637062014669247399506081649082191250312166448721674626049947695818262560949418986237008944550238369889608621665255227753615321024375216302073912390163679332542375919899185852283902201857256023323844188279936550426263477835145417197893861316731364179019037937253484977515547001359569475173736374662657208595185707990306396330239955027848265190813521151434813116469788313010213492735532135818911824187087409684170964644466647789485717572709796257046371949598768538675916941032619714673214666987598885119033100813107532480276405527840082926984730951463177563631549966549354654425518147201959088972706884748003550781581336053480795658539492077062249888828197473169637181363486903726398857781082387316927414498406597408615105251446511631270401098706030205880091453884402670265478228539604206892193420083606611922583670599495352202894866320386110869366753766504945106482657355026211504759228775768683741407119307389693821819769078922233759895869016662063995246034989210731046815175090240502361062859603490272061403692615789807203468046251792419214779571615775333822733399248925498095321346668833925893646947260046900994769673381805337261640039922105955098346699713970253555905199617467578557066242559156125303348263966773001349027781282649504775645808086151874186868344138998700106152775606952121288384223949517217859409650813234586120367080364323608123980060130184682590371160598722070000057779899666119432170287454570826780109820976746990486731279506297669447384708328257697068993887337039233623684645591141343372813537664235254953109823750607277530625993520013477669670299333091652158525825105984017841082866225150675711517799069579486806717046920023641929570015181142375101983680370390394656304921580875707383305207773208232755658583564811646919988910461677298984557235732080330642942798668899006603333701214461762715512107646543857896087981402295435586624292577606525126620640121059096235045520559420269124437824216685763047501822085849052181153906198383935419698201327241328035973578299624973265568011518510516882601523499480582003408184560810107632056820311515447203551929377957261675987287243388616686670417212173735751447824480795681409257699717123645021487218801327382629992235241216007273593145173021262819732711435716999595109332978376772237367492744860804745473042595991560090579553416874284230709288132684148628281422137984619310234656629076399181392024285855603528407129763886742393126989192536389928882363585316096762204926330508047814697234706451676859404405800522578203340486444262258528422249508960496974413815476456115109651033869851110690472436458360446737834241470963758085084791080762034642383954800889044028231056392673870437435918569683573390542863920346417888730565920628940910334384532891126958890964300322790874147960579299816594248958296712321574287603229008374475054121547680083518406649186988183745524792141814272034497094772088023391482741862571441547604299727563207053894101922815064335618516654504352711034953558771876989751903479303529957045784857050979407917236731387735278636192476457981932110113427059740359461623614873350305353405493656038717586868942014095854053236819583448441899310714650587369303948564135989249244733994249524537725555653047669674732536675584599941063739441562668275305239186966413183893627214430731139224142294362121588384456664499377552946196588597484329039088107995048794181882067247613874746268504562416899537912137841348088459660069325444146919041865228324072066282407656410832361229316753668057723715548243652109830417527367158104264508971748043601431652677618992793642022629340852381525484199560793597923586110792135327591651938049107419915626297806475497131352837532872061551484643236564141706881683606952436134966688288839134105107410430885243366518666516063626270047438013797072929431218762663447684329235384810317296902778279777796777948428503580584387789706958939241432079946494098182464014057405627506308515334178177234614392878518997740407023050832061469433162060452169093003575250181450258199387141314013062853678793463021996578505240351395768427619129626390958296941860416443889108073844561641357518102065924111519455018617046426335650844618317670596046495119796102740811604443716445873526823352161640838962642631274157996529246412952023262217033376385857773344616742861068724481737257256081443641618196710861502608354742616140507196443077146552246210999404715802840506121834632000703562965734285633954778825060734643168287137608364069974755221026667858484770688765463876696300118241833058361696152806929075829208760290398262629215831100871323815837191712113682645363121100945902675575987751689799090668701945544882724252536881428930262665380751204274309822022491142637133046977936508492358141669524169307792760748712402603746633614852997589110502828472711126473702618792041732582739626360529843657349358076497051858295298962546830809550460466265027924233056462987485962153203548711663103341671069199404647866154991295641230772276533728269267380791337845973638280039634561313700122370315813308937147268663059428061131218629509008447972506811138980368534872323288383580575877714897394045025079836223722143108958118175237579258932710611824589672404754521786152749697340039080580046559973512660721461100049758101334986058771431523587166726959828513398321764203612788677965132161321111681450446020914551338307857379384087016797979525781699320464408271680278091526459674993567617448636642135981861028522382468045609684782929689985245770524156848999536439351378663242049337824170466256305120576753827881925995633390114933719932098180045300156049859856189204857064463225954660320187354724366281343558454501670070113168027588729531162371244038700790755837631830578728392105304254787907466217599430172838879266850362275631878148865305054404278205178931684301383823830643577183294220624495614305874653542551597493955778724311888250855841619238228582481201661388615154039988869360029501095466619120312634689656674832058255938208439881098919704336975758884826351503015458443588264756927401700892207685876859996775723349375031743588263118331757643701606997693378347016897911186046932518258620303656247585533651083347806935454457139469492349119769547419014584637300506195211168901735000983440736494643399843360591429926003322205176961945107378502903095063800081510961203437139551846883694347067864742789158249537341981084362359731978447975908736796107829918104584692952875726150505928861884767490862708843087234336042622596953989266140722977328478251624511637157936979657189667861949676857441570896428556936429428050264827259472657612525851074611265024650628747195375092809184969054078306534596854878842653673671381825012291876789262683752210001896570958099164680710257970768218194002658740782333557845689305456629572142855367956034121826278578944862343531088925600880782633260433831306875467925276334987396748572016927896546275863682124589119211499612195466332091785114139878161322871516870842980024578222604128714734495884567088613778173511115447846444290190849116719100678560622592181423571226394461623121494951789063396511398304454073760836054991849895471549240327881590412834647356824970081250502401245212205816426291528564215956668100802406262681884853528736406517094925905432735312014858934218620228353007243669124896715042152066835970179798189833007553329071683037383176554768332262116067519074982394088176951384686944568612152589423087685696012710230485865282940761775342071738310564109007527401572487915750639191781693322902565264266166614411660725011203350440654936766813776404889020579421793441532462364080714855536301355182529314259924885703629279400727472367784765188073510896244724796156651647512674201139277841394972765082967131833902090955361800066230424901203648305669061095499211514971364398016563912385763455619606784258588821448946681078629354285756638862102320615234960979244367639780877536070395315394136313296010153721337436502955831173223709838139569675001154451526458771593951175617694481049038683201484045527121420195609401559383083207321099783096840770581579239080330619770467681237044836708811265872506170868870285204137545871203708067230175739589743223875057411330844387472405517819347701956659177233349548902479287132938840317321046948822210666314861652690761242001422701251309357924181225879288747871778400677882552686442429003339675811868292967457728479268531865414763779511441866099878540323481610995125115321605285795377003341244358499188693392181649516797330513702465229949661072154905223336162645592796580147881287142584560340370084939908038429038200802483364712003556164133830839250338374724768575316840141984248170943973920190070784117499349015486371673209023673542800790765764774849493828497971254036652179173657401393458351712793267880016747312654942991040893837341367852802167168936044623904034462994138240200818536960509424813617409417073879954689839616162500846424234054973734310238138229729704847004750505728480534495804641833960467856153088182961867863641472631939263671606184034063383188458191522211470450229155198465658623053383444621755023989007797804105281113647817355717661019308363970526209041259882897248578288444848942758753351195745905236168262440618164783697197756469500279004223750669808567323253245230366316692622945692626930937288882004574347784025459745111555495040744162985108302372855505367628069927376437193715922718583532903137479430470649638824514314540565307777225694790977166853717196082239066402493395721566895958719245471477198907503651915966962845055001027925324842253370769297456058231210885407525410522442121954064561652786377300741476585887880970117974262589716344454710008255030488060789565023552441828688074920538871661516929597941688915941936592845273999917542405187898771955399676693508622311197078047648700397277518905099228982790255061796779865494698138919305408543651333342463897788398145127517904308221486674879645771720824124162216650430233496919478418792279989077363574542815949783761433560569993689040283219763355710186321865673064319293100763295070226642576629292217291029240632199916998868991496819894957648927867953294393374820608148422955798985786194675107815846091894620670175534781339217811809214352586590659596750547434375964020081829225388987356372391259401583575129451193007205385013724382678782277938436802978639442840686425043651207620045235166417064276318508867087852375018070737870352383466195366370742552546427851475262133838203590547408560003600298724333539467726034686260998581215987163811935149525642186313482151774269213099081282319115363130676263582502560908981107009778940706554847642091286478949478158132894574098936928424492275655181202705583627641834390699878149109883081266656518455809517366816027318695786632711551683217344627000795392090407008838305713044543316140761232406127683178418762373357980673945605705940191040799454153501507991770165880914988578613117709808473973310217870237759722630782357529084552922333826829271950823501936853836372716523541611295261084185230218732661625644826894501191273538629899747695121603254887670678646676463541200034826622940521750269381239425537393861810899457678819032700097548251648992195386453168041807319014135216961950425284880345219844239661377484731900493358269186474490909720057989840719386377388263742407610198855499079804393279979023313307181608105696310370602597686809087004616076360557609129266942586216493821819024641761013379108671691012433201317156997673396149591292087622937524053396165610421470030216062411234627511081986352986139810592704153875683779168880193520891047918867129630894995786442999373447218987766074905411336803783234773913756952005515582794135965211645004279654894984384519552466858376839083905735032426318844235202355834929921829561173780969802800965117617825090259015884464752914348470519325940152852346300668403759304646749244514357454179256623342447120716865888571104183901967549764461465072784710573290883700361640555031488704516714763304323255945423666854650563964252546270732067681265361566113572391017371942093871268840242184810753749162229639088737069099994452822552485619726937970644036367537841701108669575495103479495265535076726083868817198071780867804412451204337713099975126369660294813546391066826447241215560446011473095845378704662294431768438240053882572789657250506126986297645890720838859846743525234503472822060213786650635240043273541822399433344770723196841338820692949910502025148701445941506360997034734003660686631179690252078163577513900046105264687826407567633405278195689485651581352662830377592868976288397680566236225808040237782534616899809147364121289592943287861358671754789428482513515067749919610804598880617624317438749148439088974267370141148776902035216796280206013117574204118731003604145907017645813432630041718450356625588268566484192794253732447912122169289571640164407151604635728410459072458691069141570700172667070543590641028395646406084511317757599201238107798887091434109686231824305479064436861374496351671852062589412449395289962915575714267497810744786609746527771358574543313338646999752194450889262246729585894266322957066613063436326126399351599155338574684194495171703832572410818932693370931718394899546297606104987885450287308650451675536857057765581443029533393043399277257179438082095548172789403222319978234970511720598135407263531063594748075661813101960608709891293215823240705498453428285599747577693973180233881453374164156879095476388723769479280805718166722748907618573017219010249679848299102732733394133120854458370715734212540647475300670710892275209261086567742825536808691482728753957868553451804693865577941129878138395754370479117777114170298880422795801053793949671396269833853825321266154829561062701794993342140865434007966023751843072422362735808895262079551914935540149271745871694359981680010440488376997129339283996783268546846448905867233007225838332438190554788807788067307110427116711963413325608294717979569077807188965546415874949607939822969798697118355597250396188619151739522974396850258024240395840380694800583911322603225005350419179737467585800089105063439355178742497258634531315912684675664520106120214354903461751938277575727346618636947241464271236180595773697341080438184244032202840528263665317398881246408808832784563517334716337638159252983094896334156440397943368163675393222300254139245394479943861269558671122574233949798702584351706981196243647148481478710413501158501415547498548781265338260680734309086732239355172316791058369411565500104964839910349741492154480950472753842764273030648161469154094121542288453091333478202922850017458463552024227659782472312679667559841040429738629561169260331104974784568424594370776009896950400601642924564105821389560964120604514476826253479380347263678678010063894655041012148814393601415845340950668221339988704960832449190884321034018332428019980444287983646460981870993297688617875188812382055312500677689672677545651761522353042279715838406963828627731239364834380856501960976646941634773695779814772704565900873809389794032475260485093818013565219503529004773160404673866141469816536788272342336475495145816556043168951348412555178216490994584791141770650532351448458863956318785156279301639053997077469073993478813483881928459097614431048313215633420173522071276588686836467109730093874546262753419729231209525107471561744991340896701887138594612080323553320089343320033301087109950448070475200590938202991675600576787179457983492998077689716016898560039872031580326756642262818288064913563449746497173869414183085319583678133835129118731255434418134440677545674671644272921664568179932604283584425747598321422545969245340605785131005752369664766617991720002703202105613283040089508982599335595431894783043964394100353799104196721327093254163468820884051047808987438625343159052598564782660239312018540385926271076266361307144099814726770826434881668915004529815515832001415156969527822172152910332144531306070248223995300129062826357590462222552010259540589505048438655144326976259555437863688165379621141566268520636390127377116310761009055070063594818951300267826203832801956572132391171243486854701369132206449250363463310436167426928033713984904318688508817153880462442935880419224666201575115857108622476935721601573837664340641594944306166165634839164300907826853999947231309063236207773499721902723741144170896359662476611296463012454991749402768074562777989417079966670185005247997070974821391424958093930281082176396606805834798609566394459693645508805108529346634399684519412665856609726877807681563522990793553009283761387728024539741473246446696831258954605675436635638237042743533831002213496176294994127106007762560248370183398636607947331212338213178367158048496772034947367564606467706543793100166486951620622112390426017920036601618896208275363729421448467918803875001081578346868971600118354510162602238384270599437187259297924306959439801459633448543305835920613960785478052762594442621588842209353389481474712346124359227658995761414451181560517628430850171785666047748362714344633181041954226484135718863303099858424384888097301504822404632946568541392668563520990739383815376433638927053529011370953595333166029818510767230096774225609656817642208188188715733795436877731695449133067697668812993630924587525169917072894568711524067838363771007225704105929307049543882604025912857263546447277370387990083849752061920678664943895878537115656605843137902593913363555409760671894615074073432327598286956811182383436070118089290290280909483561055434408282444574880461365605966416449056339875452549419587488073381307314547114198503386553699585570126732441885146575661733527496573753849251144781805885321108516621828943413931572599296039179109457388294225828996931623369369328926424092577469602671334645090641539731075469454874191529300045368331013750292069867916951186286380338935254971351685983568288482901879543384973733106640652152478498050637328684180711968703559259559775205009398054289613069831763357137403245864800732961357037278855694140904062819035160152573557659537439400796921981408101326937564863629744728028749419655301036272322482420981395322086411303029117237940070274388810210862619028465869016735634891845383935771388434125605972130228723646158711340584251961173465685292830670602223932984434359536084013845749922432669272581416900548381670326997646187264371592213240493558665782195788446354317383528007978246143376330130327189565438233809880285294155003011017485953388171199402902936258919975694984760158667738698132588016197329098337047898191340261590459086834601247721896355101940097408210069109632720247411670294606278818175257275734319956003911340371848607836782844895676339078628620366476218407792948905595366303211193108494500864494728916832865632055031924730972204507506219682677275481012082729063044766043145445736464233293559539362463631635560594690677950059942976287467251973160470051672154408639931977361087988804934024937994925131893010552632498718925915619470442923958434232811029262825054592559977992039873891885714315612976347403185205769094457126921326211789972732302452720151410295756091034858317225825872049418720747527602956793266139615521859555664130641903902206909175178224209542818710284127049779432828369910143334614179609549207275018198592270849909190034026275071151661277708411919969806830802929581169750736162016761532777789578716647469468725705629563040109596003978124228403006772720781449913976491209612419648164892273234730698932927510342761507117701207151816542084041637344449080264929937288106928139430754866574522092633160103660591647214352858134075967818064835231149596109862825257971925945137529834537617438315018282783234412242795162674660441024048258733867843603841138162423329508463697319831431051513230890910054699314380880335158502994791173790909103912013995204656780350261804510193614446278109599046669706635308096974362361196875520792535044761100133994042088798822825238364232251612687289857147872227493617090971503371893440622256645521192239937403992951938460047073565041237976030187223913104309744211733318716371047943788859211401932824963680443239047715935389331824868667683317793874853619769851458617381210247163594394302526561064649583943530800038560642646309759280613896120167495529909296404168945186511854787497632481611262953891642763037467770826690070641767205037315306240152133355638037545936148305373687485562770573360436344743938626992114223501515610649747675992510891186120392373682042152225288436430380474432560102816702706419165941378609855847159566708694548399063649569556326413613216497826148096389683792466750385011591243203779263380504456101225793014298798472880921389235252861632075993028758637356110713854820108520624761741950856328809193469344106150665906524418514292608842717454802911463863965213337633681463033960614349191107123200341556320039609992549943645290920963365564387721046561862198928443306624197925543403101123389450588178049329865729954646290207762749313344905207855307615309985814063070974098314560645763182088453000347952985496428302410485562795910073599761951447914071355885528558990468260025327833433426359923996534153740423455277990835707703430409939698042746436695581388135716320965360141746202011902878104767815642751589554900868912003893789866859487765785174048239258271729785891179015244555812887555850926559892777652100423988996197702678581192050849055002381461374104635384875496322250598388792628191972247568512204713193846572016413040252397438462893297313253771751379534259299463249206075311838492556021850433229298457303856302199860909476786235832837557254808220850157347454526004324138874117709758970963609493872460487922596638081197288196268680689195778003093760731416509384158564481294865009737575254437006275912023438548064411529024460917489937925746398814547546476976052187436421435278873089283494654357704830403377082111673057197135876182130767104975668547965006518164388167912663430070560855447291154660347943465936637257579895188240741766845308828356587687089013474529380453002983922272011687760518997422098464288912108614993548885823817544376146829023659173736589695022413278333580567578658151427666241756665285534186097074281157673514922606135374593240323139177979381819522789507187924945982989635176788905280982719746796199031498919199064592885835841418721684965961836208306350595421736558525006573428195419653512374738253670151061762786790047248619367477286677937956814034079362257527000685758442821538198599413365035421692638789093772803145537028296471788758634836134019773890872218384219983164094786843465360520142145810892965975575269580637936949718854940418387121561868743015559108315293285987494021152210058054185452050303981794324711194061947348517994004030506351341625913014085317692938108054369585468202075974488512057999697188032717844609026254789725151028902787616344595292114764233042566133965429065922221633849799748905313290630324888799249295095215416933322273398567041803457232342344077279814148409976951856436612336550602981105457256003488551951117707926096020360941110450346990405623604738177746095065405780373524030840643029302286238824421355612376300059758376334021568108956347839434478179319517153152908086003739766110638277912834446274491668343662435718822146768950116243841121959642770003277950326916053184926895621255803270798769839602196819981297110104390778859918374701309850222422182464604408861223258036489224790602199754976469177274870037260023078558104274801188005463902274080726777679535229166657612724831421494793254892104495555726845407871572323676270670075280398622486986458681804288602070094376899866435693329991236517692575260597872247711747337696425677915048631564672751792471623582289804490807346586001893210443619406962859305048051025540164838733060570572489130172647219111891771776261127104489805756887871322244596425463175022458232042345253009062877491300345551837569152882935285573580262259788989065931483310648148329243637293874399069860983336143895996139357578248323808364095164599969350760712766839347560615966216306351468821847736775190451591911708474011495395154671001586139080689224668506847928336041822667526813683483558467183470945833372099617481927537455955941663770268009107422284630427268331920619771103210604060675520076603939634273279968964209026679762043846030204847790278926595754963208121071866376127559966668751511057239074312933261921697651597925052674159798046523748505751966482206878867977102373387656102055095863955817639541466614149579070643077117790082697136406725901870527619930629144215843745286898398573155619342035292159555352823035726977438117480186096248977449322147780439811705213752518595935013702528792808802725508363666150105259604630165055114349597880111661463395674322761794181276235745156489207789663586864675169074309739672762206050896883519461111037981484143201110904203945164876774180561198860813451504391034174407513608484332391976219189968786397180022032543109414485023131568188708337773376620764252086589954335046977075540385510060843213223915817520421767839864320779948499122182318693810583681118514946526689564047108739290834255257437040094744162017296197387469733464838126379169206303464867488461055655171950213464353186984527720359805937529856038921669780762658475460776341434875964689299819818073350301822736011419830873861813487248180487513667644888578388464821211413983665360563294948625922927693488447324018718592518638369155839851436140288682320998307361127454079956054134054464464771712226078753399042128500745941844799171573618744122824831209581896516335276055873959611181303132328975414113788067724311256277333531626854426373907037866749811742441109879939286238078032823113487574300197239878304549557619285877484788423410314953524242179705658503035958115117797384691172889045814255578092314242364016517127255676356728656601130198452372763166363847127131692246111146827843320850026064265661009805735262609867003117789820319318833612556847024864004246708466269675477724910322948769717199755925407826227545892342104163028004569309197393738711573590230634311176144497055263170111886629576888247594800072057145813313978233132506109518068046567034500223694732309743288028583938940243430847597682357942424789750098757685551201075345689408612097487626862842075194051537632237647126298421234111854631721518432950307627271984923045177137678704967144596708481369496442840641354332427315290603412870483882587845676005340786283133899554970301445264868938028785569505352540218240080465572980034227318626214411635504654312600159831135829282945865477082794859373058371006286176633514102129678014080004744855592930808062800359008097419797879320683469540812958870013875543386787414475097253001927063730803604417385412785730259129407810544533111531059788652721859417073348402517810912073988226021359102351807841347990577792275544974695636064090882148616248985191238304798031791853922911965480175439864230579268695766526485895065602761707128256935478921372803636818336456372639772830858574413419986426064840609193767212920696562955795015711127685082398053294127632276938338332370866715371053202602931676946272142678699267546512772758960946701626911199968231661461181921013228150871143641717641935783563212203015061112561939584206884317670099975280070344454716726611025124034704908725866715632319275672916701108827500470391518213335876227245984326349139788265204260632843674810894390850458402663252016140861361803259680555628445186463715936474804651199735059699533331302014267391151839211218632419790305734303340852392350799584593167675126152825204056804033010217477679414495765164113773895066633583797406871251968884992699902603859739784970337735782110520094653513455464446191028228442755281335807232466783202370837408573861650458470328562030541215871401082597265050930644713109209585703007669483021227098485325177903223919288272972628696701544434374162508995842156547735993522005772827476510467080978177610245742592939641461983234122109463180990274236314794840983888638111428239760984519872116811385662707170057222465243554489443636186713167388463933628092968675397805426428514772293552567960270400266586569217741160274546786179281732493071647458264990398570596205262072689855452723632290612416031822827111287929279724583434410684112263654612295942097580551460944408753152322551929802451827603521845363819282577503391949995597918945793364361522454919321517037339132425371983750143426807519968157108857357125575130525659539897952401670500366232298348445227711614036836124490574710170105143734620783242326091442186793634012143860729595897144710325932259924407847998657981565634928611646089688064315865128490771326660946152534477046051554538559697734979147899167565519830130322068597611552418083479215518764695761466088646392009467875989971199842396298000948809207867678003556576780518052351561111371304450524973006512916623495593699960550965824209515338722960556018568305561317695204547140008048430327722234521941750552823860438228317482043137852348541542721698090883136158638605098310301329508709188185359668386784642856560413943510442522508907440665153694471712754398852776280002716008122802253386566915229055514586406609175359269996877463777473228452050255611474375837540655707563283848563469853642472718342729157361478493662967325791786161936230571069678856882752398160706819195785139683964518205571828905485066215648977424678429852033750168785268218148676639487891710233070807933042143935393972570067960496060463255793333986331881948920843011295207486219535142799031532620065553260038433566970263354900070379128025496015138460865595220471789704645831013826530067008609594305657467767878244933188860549780756840747932617711716169707226587831857221825045170241564813629304858066669017897426386428187154461584258879955252595577049420371218732848140715039256287421381561429048175242889536191082121194011523033699757573836498181541772745493050922717505633523469215325127870921259340182290543448114976062007205073862342739911217557191484370357012980965128223127380798464389966120222249344001599488244370625470082382916630332969715140399707354543481088368325405516859342254923035084201392429170366975689391622806152566294843645980104618068124618338427504615739258280159055054995060949597080236081109475036616212011716937833814904001967216851789161927987307558856053092992737477560985047400988230679556664935033236365782241909862197176262953513440444320709499678392466084110001391153340766498097987639759966942462875155017251116619266391187621539536858769368210326456678106513085474961389191782802643922016555025372678853563124887691044797900759906828027261373374119937983896675412580522210240973409455525629013882129197722763733699165814022376797043370087023316261223157388579109190064945446612967292974639891285256749277087472651830070343028967001891009489038976908623723063507169280079947698764503668081530780215014265763788949596161785195615377641975058400900878902552668798948206517056304190799599684662583717559705771783656242213825892780097049365928600749652010806043352333880805654884309247259121312599772771974532362195821007697436233766622170397346317073903303537154339272316085943311850993578618241916558676665704566949988567200776054172139090815084694409571291581233346195972527229381697023912837154442220571697795970710671603625043951539369624895887352228018067190382017811325427595438791364847118004807153356499568590625106451108749118167203871253116775020036122875651267294231241155318217009236397361287110714074981844346230205442836572814957252051824571890859538529787348461838910577985118463313513191151958171430086309857501364397575591310401565527509619014805801769866387150998306738491753817314568012388024077036074133552535904165289326594367243315144699554343821588537145475611183546019160452152636025860049637866479820865505164844981355796750950509512219526978967437315485885428052600611219013645435979156635764254243065168229439370083931179640728133541844264348022342043704467845627228463005342525756465653028247126329824244806114397959210827963316273157058226555206946933077191625133429878277678620838978327548538778280647665323976656498138129660266210953159193873680930283780148137089140982812357593072397385009345614993747636969295363200750459991336389939273145749998933840374375456886503600056950443453801668243668727210569543076876718746097876776998328804574211939469894625307676374855343712052020817577819881597537273568401743935493312769495618008839790476629912895533407248979619487611340028880425106853175693773048916557756392365893685389111496774666590939601278793029242976163550469765071122645165999073996694543686859303257266537750642931671912782801664790474638958479073688560463551681905271265719681339581790390579694675869638306509969560447350777104821644461882121883759666427940757970959968762860446730668896031141225542261816314223811093044091400019072850579016483094641918673164358317223276410493484854153203691595654006098858330807054621353720846163963894094479866637720095634813649484055777721169690042913437675919274386063786717916818264185159008115372284210628962221052221477070183919606436743524107445821880702450763749331560918294088383211622266308183140585770768326794014009128020124248690705502043310379783079988994178217375316367046024715651408877269164859576438717880152213812323780498855331903521312401919557353013302756697465923339649530937989621002068697762985290195082168826364535848529957181485640578112226480973562185523681194990961536636206060728452331690727451408008378907467105104728276729431500738685964122094120031342726017700730081188284502021072039647117219057973112701328475229028171147819569165175577329642921451545541698602992278645659036842397167832701252338633515385199860070964641536786976622952439210510202189630162829188980274351571681658213371942493086621821609991432233491443566778291681951040160228694400484474868124645262829550356043825594932549842256024760139141919147337919702520450810150913298060625740122535650455080612011937145435923014008975331376115565734624645572262078171827014914059507103800491745666221329548212419168093543786609908483074507225863699587332828120433053808022819915049102058932253995043865500916721156671181758587938966556437085106842550473469673224358568261981864041699028090079113301759876727529707461230796119567878687989397959040851456349085468106411772580226547270454918677432490629878907845062161987597906609199802269648124044246118643753384645493643146941643911832697261161002947258485294420638172045280676089670057836369102211571655559580578320997916042715285019653189444632404180460347752045113752679180921746044455716154610116211962275866403340800356609102318110742406466657169938824112155102105072244485601002035763193178590630715740802831733190087707800269294477945710595497470614708646023391297339025722372828689533290541323587795346475253642728703886069449878545807505897708178922895434577833540393870203533010792219769830406887744143605489493665292059538467890795822285363825227004826967858517594656344433595287238724219896036162931969227681855403896427533095637851061574386551361627131008425641162256211635545452410902846513643601555544239494757240482293008429903411232386229949760210038683265141620223957747899554389147396236688906731349743517524240960924514362285904319563766758736181810760585315060255493690951862434141814928877523945677111762255538681490778569804437509032618841714195627788039902396744470975365795968215859242347342182783254011084039135705720113578756860875797092748791698834046825271396777828949904026335702084697120037977808369256766212362550469517163413778372011065056467074514542011780476563818971131691143707771015756609437895614285247221856780443944329124483270390675763883018842068106153734090362953617543894147634440924231912286811315084838837412940255671375643727484554756624468770812695896841274950260695857415844379889069655607549946367109599185066372272056012334292721992084597282454955635796358786346175303412724903349751839451798271051863534278055384844140916572254398121378778949476508070134692747605374949399548442893870818781713871863387335258539495680948225665904961013234443950265960989327815845812127738923252397661398448268159377352495031589534596715719108035964878629881172011210763741670728116292838721463639286365112439137605100849770431382454168362231910644408897126037085587886431770590931298397298220069730163226403476963155458423568287854475821282360266307253201796540315918969480814021488851829548210878355195447263678240885867655614351044963635304742864196604228077588561562755675952565191481187074441369759119472445971923675307776705210783060396717799844314644138477869470622293683492679831001856695208169757199387805779593763743362811029597754082365270930270792371052052207752843427090703805948499240347716772543441097072764053628042844047116699152533090851590478044298830607499634033837850773889589522790332539001986288879059913656374988498834743229162807954431528501458799563335906159820041017002351367415258364758466246153737797248301254534715650241209539887025633233640932544250695469893699060265920909986525059908111971118086713392443614981995030555989582603567788457039742735211755640129416168301774869348291374186938905084701783856059709314543860848430593381551166308668326679084644437083897132857846024175428148558404912386619239342509619338479433605782049080855930041269133981954878187926345420699606367416133037814523960656934724305311631374136224934729787722325460509205966408181255126359914832035465958891466950768108162957399677482476923994652485637712962246637094515520975929965870410597531606603134369351216334414953439868169924373129181689313760890473388963061723490348564454991926448236165128761375295217265933412096221791198858547074029009340026312802759476784949637807138644065732481878380282731613190553746278368912869767198381627015843917260581521585188877091446910890761694837070994515141322469955985560580286560075765939768392489205815352947938937725090269687885985734521126216897263187636949769391845234568324463499458494617525002932291654293075358313197356022885454251158599628098635812863120055201350273966411333781692512394200703535235836710718612599663134222732683851198155531753823744242978533178957240199255518429584299494812105273328909321295432802018234742331075792287072192075270836813323874269054498371671370626710825057696275100353944414683299093615213154609014251214742150721729386360206979460996705652334824676283946506353172251205237019926547791893137614409708998229056653919716100118430106040360495967172999132761085987761713680374141407008263510704535290987220211316990963351760201715856962208018185267325256689427421415119946138689551191198368908359077135693100062976639385640871011814433999053054719962462142567467888290259583512585892944672020389640189999902002857355198731444869847362674311152627088865458911751455408701719053282642110785631780613144874084666509060661080655444096866856399156996766487337161874463539295076392286476888816440450817376522262088908621341228209630723193049058718455723669731288250565873995074495837320715436625654837817767895939088361167617152098409202932872774568403997165135836558706311707904755385444775032761288755591441371112906471673794409828824789858344138994977586894358864113123667814768765027928063224954308604220754009628327883078555959729080093101466697492138445606699519429020743069150060077279035052349107839102972120845562837412614196870806911559215147423329076093932599896052985580817050479878937909305669919914455817708927586526967178371697139210236588266775171493838418608630800512834367467809800273783091187594118019770572954360331994912955467572745025384729476889804842875114689643782360560448003766129801440617676800919171151934201940541975062180048929091855202860949819138218761645787672491383633591901473032669080305375946521616041811216247746693701440457207128771729782958694332346811224138878161007749742419228824193087342922509865740955617279840609517937710435875847737761831195863388272711200803821445295320646535241411178895270125476932141978739609258680899338922327861303184552620201562843320688390349950668879952072544792984014861954936803691953672469665566172266197639853629501001556054912732263632590045128847093048501946223630814295055962510119540359466272029213508324891054170770847681801586035744070264689373378252213021850262507358573727914418876910642219683871847592099940471250037819369506066503043165791915388632014952026830488565987224354145458157355445615382623655263383766413992663081885951321004085907230834126544413892702051247530185499051917879922328946768951545512944754842082254567892788397817402317474546045612658529634907993146697554425184465981130151072805082284864176317870038923607469060726507736761580457247951297020836186690006724611580158820657935740949123130148477278807723207246434810522075992845104185025962298004434163214282218388545224811110481504054150686233968734254336304295685020614494382431309046964668666782955227888120325594632213810035429592101954138101631782978715917470750481734044399434738663580327149675484804442767197945843996130220339533335017848521284479107781091582567978804582804650334814577018094074728182306221153603795247589223686847525080667505591191330777219383177488244972577909715437224305566239774026771515078612442562460106131165961020093700236468685299045552556541078817345386050254004128303797226347275184783834503339045934452858345367874116301349526913901738660928356893414300933660701776464809498888203923568204088036815831127526234012884561617629786479962609865816107812287084398527484561458475162859920644959541027832202121454518874554722624215693441205235495322688146147338687057949382305794775160841139225324405056076075559850674277022597693564780697576171033020852671559287464532284019784794086216879818691621782546867643957734898472874012126864306231181371906488387564931043861956285088206857164391363267168745560051747933678010263836677278620962263564905011907980492750065353271499703056336630409567993703117326544570831510356432958177989851979578908044844018944800559563872191664339242752770826779808463828509669139454240601270757240878792254173938069451989863117884340811497085113978669048708038771372257807159915357053196323342458874216242886567915178898802155565648003792809315157101817643045812853220718073810838164861616270996700471951648305664630179055343951300599956412658555530265834724229101002447947341517314197740535980971628112671176793840817457090244806457994352837687331165876533513041552478065491290189600778255577898578975075860988215340215671098420512120096285119338057566113839836669777117870619153696215456405563705297986117082686345040120736415912531386514978863620477269706041406402410129216576861331069092432735243701623658234434799995417943995377463814908608028361899233916648497574626101579676870413242513154975204415408442845244857227062434601812475748844820965227918944249571262738711651219911664257438939817871482014759415270197581551091351493331498136722620666103186971783818332456882465489240543861439114245923390779157486179902788773585942504487220455661934172167559406247654529948161196363072871657923885160459798533527852589921089391114038360950860561530795212482613857524210188221235950726582438797617382637153621077683827842169524551391558508712328282804202774349989466930346119996797636610603932430319566875614172730102630712202650028407551533525898390244424016159266991292048038118323118111605673715148393392418577561705484375658987609547514427025539865066486448203550805559615386562931483022697104139822819288165389815444500123898448551919183316897245146279833688990507359970940610903335829648036624458010560585654450457102944198336846249886316728101308510662388894920297356885821847765174230761957033204467503246732994486267298826159735656096952388554803283696294902783348205158993865907479248483973048747908408081540275527329534650726571557811015093427667865762838688046474059837628318623680717510301849020693051937162985355522291693439374001040945416692024806241490884949466410173450631546723442479923297880250661693595042578530771403092806703119848217292711933567516892443901259568110865731114220123660605594765244149449031020092856221936389850840988547684847047814071447939256239287073792940564799752493141668589919194802833864159832154132747592799458523950020180445383596384802945056125557867009781081779388494672155610103163221815236500777115044923164457843334292835416406716033565682555909513214991612186973587534289347013230529596393515976701539475341697249238207052220212074288958700178370935220054064316458104096643455147371253336741150474602532273884975269959313829926372446261929028833067621446208260149390067449126530291840611646501121236180003929612444823733750746582683734008487777579843728032595397328881817199667245954877020326864754080232242303241566738044024732457467565749811259770039835522557244977561869288784980292224219473310806427704810107867564524552583923162417506576365984856769251603109334007663029407399347422122597690827463793884240136724992846275927217686640734802788862315805011387251727171767354165470844731963175834303714057794077123444861576843004447110310504762424341420986686940101062525739155843772154517021130187082426798515438097051228687274904609960572644179906575302029120735327233943360543490272705273541891293263547754206807847007884135915772359022975194790661047953991740438740296370350364297366371811286859496523141518968281800596104743342448280833743219598407371930057726826300636743598354714929735615456708807447172904555067955070579307949031094477037776597535293260423209065755076051046557884099346232025287513876143018722753160213268915926392972778089137052333480839353279640768081429149041345088364654767721501645609551605737892701619212664066880975335970674266707083259307546535235859615887881283152960595365319053759132497610247900419223094497811715355775444790971847122945359979420634105517298396754024433977127503221554264758073534946062979072018253495375401935267798847383570745210348561571791290909313922317970990001241511003082660281071348191153095886215040244616034307097667129834358238652312692612731666174167736730819772325429912166517342792030640122706362985354736614504360873813915766452435752918014340337033109931250003694143722936185303265482790827743368699065095988734117982076998550268227972420466310648272181697545523011331678527259998929189767045392351312376321374160137505235523753416352329022098494585101441910550461626685058165257785571844113584027080380251274923104958905687671645107911626738872506601871403171757893936538896430260711899858978555342388535338063619150032792769761525616285634716561869316974402010672782085142190627239964858480039556839873433196955838688309408026167582658717585755535390197363777330173060976925296795591288159297477326624834580243038880961537314764900519292356154313006244852816067637161637166091489381922886200874279789301423654618931786253840766946699268580740177119190480011755188354457814137927854117323503400730016853226643706060910999806552685964601038191286271908885756635775859282255461418079359824199495379013186957725258966048731482376320006404031643536883130367002471325122119947281399346616784351651347835202834962673717631325073427194235859002594841728369782418488528480751310030065877915593953729706137725692751876378050043630450777248011614191765153744318655235084323101748095825898608295666022186477955636654169750756120404104649536108292437278647948046750845001341193799789477873600578015020312915972154303172829730163954982893697970461676705106945032563681337764248711957349356858265951745526919412898499401429413225846915434906432432798390765508624139405914523822516108451531645577094545937642675437818682941317131865566745108587893861313856325298314351543353380066260256951544530858003666356162892033887065735651035623334407830526425867907153968745020970769699354953515380494416672267710456812034245819764085731137087834018632773213653637793754468177276848148609247056146744832983394229006459338028499265888610430590659715048254947767722942200036219629256110553855544114641476671225876773789130794939173033453935588548232306120716890142225586787565345007436414987392141608266852104084915102608489893380109382157535554383993183404690384676202436661342222528039342984142654970072204750714848854716829583439515436272074731156284437409213295174094058316671653097184311991943355091882950820730211365548469108642889984015822798941556352777362036970890805676453185395729498923841745112117690036971523303105792548503531629698086557334610520598731671898213701314280063442872574523617732004840597054440464838401583742623788106732180966417790636890829077775186689304930071821134634449354714592363039317818763499724680537330643330584292151518694822341780059323672457026589604935943428908295600566532458553061634603646731485122208691711647452251117353192518610270050534359032002898918387580346033123442868019889048461305657049536057643501317110123519571876828012242585880142971683619631543542677325043005904066153361152195678305367704172719993131545501153556161177556591644806652786657836613235257185191602914324791141125702684064897079203960040519310913900994928606708002891766032954708551517211673426512324176520017764736080596827433485381908628300753826220390523394512656256755054075369305435770521074526181565066995452354896068473485288671094245496316172784955743982992392682556855052176175132785479498292710930963100710487777623897716259499956134125407834826133313298853448753446294147270771830582094306997836006761555458969363521545444586608417435488685062807254302417912852313482542484705743360582705128563545085979160107885863798701314062328073724599587118169551172805114807644516008163453181582160365590605892553236098236569644380545231879389328279829323066445973704049054407018682037835271011625585377065738776709102574347127969350770529926395624346395670364795268700321708600200343940055722540335884536237641794826815966878406214168867690376876315235522645248464390518592086492458590892376067842389515504476769719515049494792130845679700379458434270623720301459704590593702673535680309186931684276712582935750122264604550302476767119480475419983574469797817442978810130944081244338977099368946386551556135122324093261865164969427879024146785448982861714901224420343359262684222458632454159934921134384762464693044472393344170704728946492738218367125731033557503169729442236450992192813408824405115130377382863171944028340593771149643350164773233888192357703958116716065379316076017517176857145362785010183456199924853494511328098678127974023308731118050343709794072949984177465653594884924176153878969439836048255420255439058967818542211964675310340795783071674516559631280524935196235115461546440772945686403326856469814632874815396329565995639393462042108825235498129632601763127027314031138069228787620937883459983828385056431547271888969566870543195520576953370118961209526217783202021534345511181125300065001101649162531799005668157407193654476298182552924415380327843978275896592611957874680192113299817494754486675772119148994950733505558763903794183917373175783845518703860556973978953835828659162374982369201433352099848011469834423873609100574008034140896204408283060327674414398042824258718230303330292408332083404710924739601743527059445944925712382138468293725081199751325277496107491581587338860733753072578105205406740456300305411982978345444813045113114002077480255906386267471097553973861046483890175231620693954088734335879067879821011844291641165028624929319427997968273635212070634581899297459914922459148396221159124500718573494938623697550432712446654799076818223507514722429724544302662968883342409878940860670645213378646378756588854358729587494010631820090023434586772949798081383211699541007143906055538159728471193633533714070477679104002462117339232129775469383256161821053459677714572148267904241140550432680678273997587011807006772435315977718817967136061940118126435960220720346865640985388537178572719549856152793515488424568782189427993958271258961976328144107549453472524241946910419834361932648503568212665117850131398688848554351196886515241891872477277836287120222332826808685292357818470840968173077885182756147147686831165715530395467479709802981049732786948585128213004969774082293921246988214561166598230524041041553380885248117119814286289757307622766638835353404259446839794725121200616797167998741609109838560665155901984749760822210233288644419697562674700669001527368648932731149725066634877571330087256911325507961581728359106632585238537107555834085511240657298882127761088935695298273743286591787790087485847170725894435839370785620502931036965000486891308022680816622295341279695020769048732014716547422125055410233418310504597905159211398611617356154073450440937211026415197627914401352438739815926350736510680164179425818575855618091039953438713243065329810139174418306998917406810251931780191933228677346532492911742519859724056935972545695533039407101759988507111517353590726168226811984220926294917345463380151377302341175224783752385514503563545898874812763567904481376352477115216455041249071090302094098556362647786099987792102554936522402472739460327041203454488544427611059365906418406802428585221732195509415549833748617584452808067833661265992988848969168709934379084398488668470664763945404090585444897194117221695997372475490550929929234787203986699884915547510915332148514683257893450836185067778617994804246082728679593749613968908530330149662057127722920697570769647712173240288432990253313268584524382927078613907392307640070858138653713775455436431853368517216847309548310642946471099639931244941258985946997903766576925511882343631008957345329200930810391945096798440533874017918140817311126636375275388406311203450743776620110283207760314297609550304663762010811971919665451122999982120427876863625819567512802094294636943160301427442475150132842710543974879519951756823255334013982551477207252699272984401479432050977013490761924415536391532357781995610727905570678235991103750816030545112804039274042934765802128557482087720428983180348919268167748366862285138393955346336386602506526318729987578282073264976367085488226115549325045679073821375859823367790292119725666588085593814654771533799442273490734268742853992207221610988804294220765845802027527605948455268112540179664574780175299184637084062085345469005015105990646240773454623643498082346301202545146727952019219038201766935871534499530297274984515555976121925598420245492926117038348010219012724763508138554084682260961992788991550465301106537315193437144326214154419674474492247873150963713001290087065710023361618267237660900522383403417231799731709390618796565838692485538270429712735400162391149027748307681810149840159380636174551444758293174107394513466407205054121377516137556019223790302582598235780174428203657776640580668163014630057906124798352666608775840149984628447493106179941057905166431208075274981847613589796269299536091738833861929893417831023215812763035422795351959121539603634251158888919872499027680451985463850456634419996900390361747689769744048280121937537028559431191399712998888195289451063092905807150296220233639625607401817566399932548197635814710787324211254221018060492982360718946652907958457505632563646048047731546639824450555831894858928380333422116316945443988037748687148315225149506619226108302947725564248872349455683768235795278809943617279637721122705887599611294945975657104851249000608298861440910042638670427811742025308291121276052835773980080583292051937796268610628636629056982579291835602660595178924820310685146549011992160609858877533789272164410365734236040319051339978601555087163260570569255952966423690732739491320841538356558828518666094461581214286165398298794425930068048946908938810170438916227318447848109990819098438104863503406150582769712278773122511274111592984352773926899646660939995262907381744595899332131050523979124410253631697038337238654948768252808923125084525982982537291221575780508779237172157034898231322829745071882862902291033670560331371482116061805283210705697431685129078224189218023865015225152656971737471798029364818508736622441700256823672792963345935314622868025067375277084530779007153146315550076088899450070016969106213994515245849225798189221131871639680062219704274400243355443801816322913762294778690890845484137430811988500550879348175274372706415622005232041097929833365919422589571241809515924126388360493172519529949481347708380321561601847860983649946854378074160834677988732924072831279824199377999500199521277814888961696438303584121782198616649352899695595392788302177528282251733870039216189833394392439446181730589700237746490538038693296322037912419767705969317913653968405416542185703478891244526661613245050835009593571039482943963432648245376938606499372110127328375707493742679515532478176682304245846979160394622283546569238734747510099701579220375940942715366217022925214238010227361932335440555993033950255372441971290636339440464206227232960067532953681416507993263513257260757646285212790296101993575739450788020033028148921497887930078484082877975061801602006659377075900409976928787004848120162961213887662393095367153416252339703558872275330661395622457557643563862334497720036599842058847772904740873970899043540128640533608864066041122269747193542581576772210126916639671997688393377230122455551296848254084548597822711082137302209438307135360965497027807329018867302857737505601763256609170913706303746486454231035266703806892300044433414623660053713272525290253728343069886397752158407780516517905862969436027013087103393990467623273699448223479747369307269495411149483889427975786199884401933767731356144348114674104418595871445483318388701493271568867071919595223813873319708866696038512635904982657123625178705951243515680267409901153555143042779531457344702545589424845311981339654772215209177846806032564484313640036426619768850363717471150725360534828297348648617413845148598088967849183232743264059752004629918677893270249966004153703751862656629381114090009844137829884929530661371867915817090919127473045624048656507516231114898140002057853066763667997928501223440079376002356361162870577586230450264881799404378571038271599400898132013184829141758110325182727399477500749436395122738755221434329064836261427624246043633346266847768102844998310460612583326996293787979463511721262392809572087249019082917509617694512434138338749113644348987134286063054211793444711095484432220208670240255180071172013600422352066239779842492962306612855965819591310809730615588098944327090317217722456341351550409658534549903303694897459797473406584951183946275964167891993822705911558389279957482456672941357356718354353837887689739622359449966782050351336663411755447211201681120076773867466187077026602890900095250063706208872036605159429932787796733896444691602898101824152293003213905126262854773875646170869665827025414330651480857532989112228404285687337219828854499734445971872014119394814694823948832895862066382575920710097326520051028865379525045770599217313441685128224874149002168146789347093824973084384670973630231216301236093877819751467316095013940587130497228097729302733874083363519856734516271641262316319319623659551132366817985911378669067889852657149545855376517129440873906954976091657822407832791040525226505795214870829793134071015896945916027579561853495767443925927934472967323649969396003250505326699465089371027748742676344888091703813541203184204098490254283857760346758537004969656746427215954749304097619143045625098515412521469062625119698412203258042410404706441667293225621014398416828307720269807716918115536509962059488255822485797894484627374542146416375918989778546898884117210838669587001854111765743079224968612730819209232398660565938944228396475229597379110670675527624153474593429552701980116275763304204717930294911108465799912467379093101418447103800033619769694153993435676982854913008771581345947006054799016793363643660077450680048523497666282398903761448928440353356663987842854282299909431944033232790722837031315282731976812522806981823001500374991038363418195117150028691196147746229558760377154741575430493210357507914135632401649946577076911047521024099242115201368842441986630400587679701120397308158825774413423489502500505168822380972522455104605591682530163234483768874206097355936437043511181836741935934303404363234933008513544420951222686753005762359167221338514402796009322130980893784522869033373635721190543670126867379816272661416956677826660000633272207715050063003025881118025089677184637477379443931073333100509349987850867683753382932021927198157782431301735587469448665893805395453509966018166613987192424003235909193008779819008683542016222873916002987515937527207001129356888243167780453496194374860441693699898941876847059906544061397233931294197071795343606362701602497927899211968268767953940846645510252715044967395561760689847263789750750914912481149383118833595586623702122696002011131960996223191279945490710397634116708014845087410273818871122152692728924306702197211736541012772484592405277036876292271244589138435760825713955958329128701874764232414838794876116054248176240307899298490070679522882337115545284681783959725006373166725501569227173950379343538440958975583818530442532539286509077106133199702808731218393743058713859874598261912528739901024674105490423428009323623015414338671841792323981888399042600050361160463471080155176479425030641668469813715521549219465978670416984557281895167381940453931308864658604209563700167004632093174286245685692419372193785576993372949993788174156549941044145096196533328406789093630299225896534972665322710451405732396701534876321233603909804005513080460447588286517936950848833975474172598628644506603048480124081502586678042583916161210338190897135567460021928073611790171996024897788227035412026409797057887431883500372438327736303183221494105075884745733889834063338317052245617194063264658822883205199621364597237639931153319732251712763609584720763062153142648817214096401035826605321707998481182498321021855766494134525016004166184192663306244035481744280811753795099054424317514773575826891988183579038267937356575961586007248285860363014376826410800390714539259192541942401310123677275892437156126920405729728675494305565322568713507911215331069094520083436290277616763538037943989091992478421921559075466404231194736541606877320869714801367267181509661348369013573220667858398468227470056019082107807083528205194965616799499861002533112876059204555787577994923717656044840261050617408678566257675238873690017300742925955120485566139033834237409269680727142333251366692600449410136836971053200352740294532656080829989458498622357894994181044002520219628674352946385698930040481424432622998153620241653141321634039198206803290965168438922427072000337822848267444359144554349135769386884665592024602185715969832439203804809484477292912954486252901162315587001914390070993862735548498600845125926485643503976315780168536056980899537642650644343064526682081931772636471836673677161898580093503089766408140159675343381527542282490282288319472666518943538709407693066042811206897409735369738324700009096974304461732611081221784093779455336549288444464560712739750245583305313709205156373352011593475139111980800080647518605203421655334757597807372179932195360703787048894977441227174103345730346363982490419778425509203522040816916017963588238453937022322485710950363804982821575863492799996609204326800722610040131941187083013250304758213699833504681503199294624896309242423218084678996848902771251901375723466018125451032733302996017120067649267918587486611711463473134377967504516280634941278816003739007201019849131084373348352297256729681620924431627853792851486711865632646704086735133608381518958251050808024423379463031590884676841757925054188032303741039369560885794673031612678901254903807908189595499791845114505845045232439501668803849299916598779878784439331258501278477308983925478291656496216780903742324284013741862934019646727195969937351747934487359535200880348351813681054606981137375453301779891883402698616725273989192542313792733191385771989714993645648025919527164713245981292844515012668228532515037428383190507510162941602918238388193184768738944458113324988473575175311966725471984965394920069696660054857068264419685353367225176202167459729968518227974362926599420345586154160470660995623947982886065271285460027584154041082942377905775755339094020452707058869144618478008535495239133957457543585846655230173343039991504454609466429649784018610390286127951667746463380464524461012511953564749024391901175142470099723844815041376068928587400658782295726595955617375827302465305699511467854236215743282058360477391147193046223295842046385823046332964024025078445495100757545378069697967656830898083215587276236102165002201068670855780372207133891802801087260864939878620580690927690863526340936489432911803151636849334400122059386691069783680526463801764765243811970895811699467730970760071323367829006762995834760122015069254596933751461012761915545664607509077401830511212665043199241243779834604812210041390080145380665007739853505390361558008370551354466058948782658754546817575873532354851626913716142370996461289332173631718058639940346659080255859676626930817480637351497145417304587708185038505950024901576397999099947981677690542531158749421077431452278754219644623310439782430022228071129761408323849254755492635671360531117661235245271467695424213782567633466693034103321140675595440035411186031591857330141938319603332246453930503643896348793024001035092345209727921012873320827476345301070319655037570027335624301250178381539986674990159712576077095398223023307087383204035086731563893353615625812897667693114456236292133451733421193458876970218043568719132796893352207312255359350086653947816806257278104477451272739801790980068963871543387423387776853287364863630094975553645344027303752686530213067465680221492209034844761153420573795379023441146641405185729915773238466268846571898566281579465866612141848205479853429074725279659118842090820777395339733124914911276743444223385316042163039829297818552371032453469436742097449890680211268415329292746221632529481247407676822343319945432202114916214650402029740914942619755141547830283026350641940627289182020970631651099322585631488584157835831376560122826392146446484246806824438960568983577010031681194306728706710850155318919803946294029180308069911747693700358703005584730836457271334659497888332809825261895722905350775429115114793554830163679515803058656867830542862774278027757508511683580426964874409509494767603561816629372690256620065340937383051201180871675830119516711825161455292356582730300362003181302661883225728753144425356717942070803091911171698678872485664050912719776095685107958707066382203874232404457828045607687581409223665696000866256416438817862570381675020830276953646218754527094883443494246337272674116832786429302720673854115079075051931590686304733294138688534886507804263978195183202417423209537218161977580553835390241226657277844971893868626098847537710204129442613880992940095919939902915373718492694271591708191216970011996921366907497614281857624036000253007555547373773696925438762087776016231098006430777632506762739402633027731010817623810163199432757445968672634974742706070092074749563109992931840646598839275091901940416059051964463057906103024347816158485929128790469689299199907072275764981781526238656837769325977116465158664276334603379089055619844649881600058228004116079320289955542925847371032190744345287173301458340801702644718679471775215650347863065194363366516643259016169981251161174948115834110748536367271302054304328141095735736831087673345632351983620776374497631889401079105216882852837498440500043425799545748927070031088395950738412770631006844688714783673696841235561383637828321391749146461540926862674254407778845206096515832997199878375089345231756388574696758488054295649567874968767184144610255132531796760454034433694444008303425564425547276192756510056856563002201163951837105517676237299165150578976237460876923437074199405390418657851804506842120690897812150048631569376402167350609003108696008371206161159681875085785586105544704588281068128894360009707639441354330949423905166867051113009737539365641018518447288067297500798822656340224442125135002861029471966071913211699534738047862023943097422419514242438201650258200607926083564889625596630610901141118617969070864740616767526300219259850404993661105120434874617519554134699874488944675444179536583886094166768082236678720640424995336447472807850003212403269446607776912322968656609883582114203993526857490460708568248791351676007915133591848768302408991269715485986537467861937905004518618937584247144819160129918451677413491352045335162186048316068120079910397702144525339108920197434462939967187218045549550242779149333529410647786389813947253915597356654992902002094210304425664153293965481915620572822766465974717987227321038612789451883760337337210276937098207269005012604640305746644388243024858395618095757024799014134166930235668558191157274682741057352782265189345956453438633623808924390041414245740812306163462355659344712418462744274805349161269133619565080979523260749215616387016910946024817527506428949888151963027360631986204395522199807065728708783725821332311246183815038231406167246958548670937157304109893594580369302403703739233976030116655345089257777184336761188415976381916489754217319410551680518477585538762731016926214682990127734117768339342207393110293666690804696100309268308216310802489953892188778021300216190606673058210557300180006831860965253868481526617878628031079167538898476095173438144901210123915458065157626999431330943349762921804721720683574436277354000453397547065655367379448638907681839818416658302135345226919128979222385262754505890694310194453828286913790258501876775025296926964221106195140596867468054444762712680575035407449513222879337534941479117514033879552990375481738814176275414615932375789257218807813187487854381852176879376806616433313507486630217313743489208488632878874656082895217963199745702849418469622537195712058182767105534573217960773115645497711036833840602574910794217162793249735108944543918654952235200522578145099707657719364805299111000645519338177849258827020185073489881915034562169793686212657027121809367341704414957047086275977561722095190828720088683820637366441109753152032001955513464231503239788453850945892276637160033968927536125812940596930992674619604023873087660984016070599842350527954458960171964864164673267765766306709593394381621532676928116515566491982091035538963998155358099341849812524372594803768763576896175610395055154485501800170729688692284863870457459514635102412691201882614196999087078787173733534762268828089373188685723671412211734713006918483939697929363691462100084823429330180619626464159195141834050012073886673706969021324713154374081245989951910463456629129158830288556602817791588965418027157290531207036642646440639540354788553973639020410536014284990798623587064620361395438328920235054870174924608193859821490467505751868649159954973262782547594321047941301252342812378881635730306936329085446583780365053241446326750566765240140478250485091944335130488115543464569675708662850169316827125504790257974975611390665512460764412914639478227216457267726522973721404563725602822841805149372308625922876178184823825260524286003442754432516497493268542713898948999554114130546586408316871249426401909880155520431208016616475176365724593820042642192391445951679696063072083157959869773100577016350542536479838668305035619926881535594266719784301215705288624269651731495290716297172746533849728303993562717192443335813504386369467421348416854379902260773356923194062587458693394104918354946861015083879785851102920318699102701662050472055070701811965614055056260827056985033433346389238633582461595962467450478077202621137829524275435066629274156894818458321832581900993958224108364967544380295510975496313134155406005610236964221114364271613196213909040285512138917360381609054414699876399515177142156132602753256955228612179267134304790959990807464751093278951375007734624792326846243434733060154327584643615504709995932693312388071398891286246755522023045048895914805934727637532173006169259423114927233799792196511164077716909591288087628631287588814945343444549820444437270103447649020858587651172751445418417572260840904756841204240555471680579540954985660793540534001858673243507803311364934623145979713261803000571962868633281260969507230686337935623251889547816488122220288786829756290282781476078310841318188740211203705177021075367107778070614527861395646031479621718907749111643597923321023185675420415669736098069402992663333958156755237834638636567607336889968060139470146771744815891907750456634414884344636249313154596478858620840586489125519143622635397772991600281769790696566202858064795347950129603254914078169660841839802700242981116615463274031604097271692161101135871196295149563373115266782116092805959331085392857805472473314301028953454763365440945178936997966167648017249906910991764408246293462673399509126674329552703903930821947782869767931926253760675690754896806758230509788285070306138917821152893023751916876404052783090843926059684943577309234500698204423668801200932153326774606907130301668323679071043897191287841118149713832675499519771342494434568221392506556365179052767128913618042644982332114616097175514361752550592120642627838694850604460622528452254882545903863071105234702873994296107871423520656438750858351635357422023291799362154091065901968477110169630664151186531884092099438845849377884269485228748370202921011419019394883025869986750688847436840300164226146803056593547696166102396034849295753841211260901731361284963163887545623764858341765851414854181956110162124548067997582223895074326963818138784993921803080606928332662878481647863800327094723016089042812874101850122195266885217082822863890544696736527950789980451897907617448423281944907320874099190820361045993417277291657578533555913206485696937840039199226117321138863007211792429869689782504420353426592400897965846506832046200531486113281646474066052254626759905231707673656342993128251946021490227651425586570751660650473415097913896149243324095880124791043223221978548532015124359460419161490544106040793425213590110683291667751957411555618799006009580369777755849003068565780230619243319812826257778694273739218434212323486632834763637185079134915094880126598326653289198646725672060943506217700592561762626964524381789340520632607158758607577579348226680010449396835060783642441491664113847134290696097665088391761738711330529164407812711843804578862669387079695788097967007742893812228205477875949695084405970692987092953609914873893332888730474625977776592009932507669028313441618624920605738223537142402604342386817523276188115148129494276190969119577071165550376955948085239871780969020751690929095231423923797053627042602632976597786092883430622055057907863434599573978129880496173769902642022825360612038471075274572689636944166861572934959407289319737287518223590492851586517343964367972938673469335585104251673331331048695973788531411076821071798917939912337189155474679773305257078829957969074419752790870444828006713601676342521416887460088063592971027822920671189791045062219957379816153194885282944763853799203329744047225398698600843943728650532029045275802045795390585106129738983517283240484278975691519668305953707760452939235742641220157622676010392391031986859587294827659663124813370945395966235011230356248498805738068961732995954075182756431150234315484609188355119217466020410656166943032804312445010950034626030450179553610620585226099526224911148543129020150993156165180599054027154906011040771276884673790618632672465735084728027970568999462630007101780370112690287527011775989807934622394811736189827830783717370388269536679609388637822206975989712796089299330043163286682928779436216902432360707069868129272297032973449208627584738229031081693019686450411744966030109433938515639900736231453777513202690016816378048789545674955843576916909056523159720973343068671475164129517205645546720394752430873940508393007279246639473731043156767615023848973409772144324017057647429660967246760119061760907684807338169574692737468108687583267493557419808108384534111401534953981562796089451155653844036206071750283214740886739646161976460507729858877649666708888351806223162323180780422851726830612150926981333629657283352410380893055529445758436761824867733841701550619959132505981253668001271455843480860940032072961920305308535727449420641280858575081538112157941501029309350206738288695416853397293416133496215891148098919433281448993335584268250217865401891270500381355254246310764599286520407503000267517384957144637519829178356136444782076471932523018097974939988171319491690513414070144207163060988497720805042129039430787195004689114715211872480587682361234077647136218511535411880415271691790455768905166567477743509651046703249121623855868488250737189481660893616129127964168584741971898628237304147774696286135361936165722339044041908544690903805601445059830877872916230246525076215998522306881323649958474756251005529207942389767507521769328679883141792325860404789007563674472539624001882482680771545388062170486323946450925656793719024233600175104609077798054887530409926732500680125643765185146203415798486352062127237560747562678518945446552606881637622271562721423493890912103472262929684734059897453547988673583685486401235828012097834215800960492571830315814895675817123373469379157324277600828025699015641748198789621977709344264812669171892748370923972317120942481974266166488988285368891972979786434210920212881696309837658354632973169051517758955764923350379541174143578414687983258659881257342853381890330645905240417431504652668772023885480207818355820637571983423123677035511843705135260094686154666654753112765128259911936972568396496546082774009427140596335992206363804029699654555872928978882855165790174344924961210237839973127960540467837565113463040937518039436465339718803258749085327630877887182877906607627328693400013120273452182757414255420164265535851892030107052700755112747422622121399975370292029865291549861912292957268889318386089329679782374721777616790957237415378547761629573537915572904263007150924221470233247146832938993513256779792343125479663450449860090488500901784630952359105065699493500993631224623088136291373498137840907977505721813442588804232074922395939725672287392133664160069914571352896855017326887539625729078892821304218772637540209804134175690741854115451208532570948990820002710490603880997406778913726506084243651041554898391158821655189313747074430558053672761288668296625658919610383902850868016785113356520467781506587160018108660418008618973199513427169423519591460587421141721830753703318669412413980497277462693208917473606497208462696211397657751885680041289022341431774919666194492116979287890125991524832708240863529625223337104436125341566251436206322316567514873419296916467080862821078006976846476831728441571438273986461516589871157964163033396187120517952928227462346494159246067110127543602946114790944225057486012724818018790247846277312938086151676734320718916615642534293674850589425864895721145222467125005133881615013199517674246496171697836183014894478630765183352119883411041120030855987043937822366689897177942573091516222584091576380064336679086427684728788254507367674775759005487291623803771572880745967154844181388159038727186728765709925219272411559288148867990176996773775849756514541343940318920301989564918455355514047884634631051605221844810419070094252922188502226703089951508011273309537030551587159024619920169781101955160220444859174389698633210724055772610069995058279223922095311582526545687140833765800215358459587065013150949547322589505663159019066461952975533734277521820928086388152096307497706395653689942996877325258005688457311911772451997614369963504176200125153492372772141813713339739044982939949714173281324172218913935230380060960577599303309012758653565374303652630931307990124877907835222850379848865555663470658020680658985528799069779501677970629414326015697007598467764507252085543633159000736391554310115045888314765117054142171039170329157440595717883388241189383098961683522070878966617581756056467278062284116221220106501463828356873815386245043252766030581416390946114089805636725009169175277586132375268028444437328858074963847687689490161916978668122511882949077000335200541839753826022129915304680428177402791322036965459246173347371327648504373074491233508988749235538763962375867496165259531747429452459799401875662522966447832927277593144528970413813390661018679323251389631948797446347209881666246090641468873184411014544681494309818882362265921634526801326301582943439935735088887014872574254010548077102759505428153593855813863696864702859115489992599698860312449532911065530566455366643531163252340175409707779670189534649460371416949666667816921903920336453667630987719717424507389446782652874733438407413006057037054931351436377051239497584820018897873886370572185201958410776329145141464481363688046739288649996980846815527112672919977261920861481929877851992622538389997395117707574532378015078614838466065574865155542544133899710555415629818706979461142064371221127043413659661551785836965361575703228463079893023176144710044253293050723400345733676442184429881812493686198145754047677208739362623984644940383500907392797443410783295482750629134305708478873579897623656826574479760132913556435751867111322179458096768765337685163411288714335887084345966344995865782990812043037254290934172925806643996751195196913736869675215027812456801203299550271313139787697749376285457300338834230363490879493480840122150356603283234126820778740783090779272064385839975385047080669854975237512404366260372208832763008534750853754529431829283757380085380625140116603569180614090870504140182934260359020924233782741582835864986597273107904183243755620303949561941464244184859223572284832785274844165755272250558035956567964586220158126601892567927180990969170253175624574209307184052920248501343568959272689620973483009425824603600952559962542380451233222701637486372019625944801088965620804510690058853468038575847784295226549225526674267287911759865568487295442800369813191603634391477123216774016563967282576115880926066055337247364998878152870471316030697998394593978070593116685506675839386845935284872909245585823435983998263364140656136321271034374687281719831104749957644054196322635455025311169317650086768581780349152952414297478882664514086202038127411814384523587197454631797141951903185880605255775746637663673563156981028344006945718391609069789464292836994376134259563034657024284424275828911277563638546388497935486216303513409333617330878173329777428499854844952992376593414210741949252100764645470186883631006931786095473472213092930517960662688852345695637861402398326499584214602190005361932338242655512954449813490749538757911692612450401529545639350888558590000949338181450666059100829903855939202912395120238808929738363857097404636282721973080911563866025394942452820156227926948843479152646095034778040778718376015324148082981664206451943333864287454274342373045420165135377207422072718664222239374978398863594832368118617358652183272666652254204039430268060872125521326336050261073402183407882348019246340182109182856915806880640251455270199597640834164988494395167256389262123584108744888668138888272446025437073988466475766486286933568410467759713494431798193612362291398061005219928320712706397072801362478144612191356594030758645133308514961630178124034058501475176001404118179246700520245658296365438841550443991917678042072281743756219733880255063008800621988141741175273646775883124905380309337852778079935628172513070936790442661805163296593490046733789392151032003094175398200009551469996944517119075003971058252678901126024332001353531422065078320172372775686533803850519464048115661041147897117761585960387749765889880566639239179479347658676084788309939074523237499817025036020738546438351104782863668744559533855113798983876399737980943746930171155980631610338045542028167471410492953276916878094470853250371196782040217218842152762756423342957356279963446609503084526429678284709928311684350410379359677140644452441085740297848835926237408526260761931859693245838704668132775242991430447212888974641471880284708786261011174279777307185491151110567439612487320586884202065083343377127452285956208301790170171453279195217102654362861895469797938100958510631495387611181082079506128473426264584182014826301103787158956891089808580703190096707399464746117429493340483177807461324439301617971277664622151429183089202113184403409440553765775641969338835366378126597094646799671955588461204181017635828377718930148433268954017668012094062182720858803015268277400351157185043108715548223234920947244371104437531117730885465412210214667560027348391285864099723193130230887314117295165877691246907014472148246839594610783307752257036438377192094022298992969766767819033448289245344878263544788457125704584855497811705653363793371848339514153090707459952186848411560676594365471226292653823263037114476209621984316509537456728875268307388638186232340648840089533520436607454334093724214039733417965798198945584658545705882070312474020730175634040585755512140904992334524019658561179979370161570424833531459784097593003318564711789566398497230291821064112505420758585298567361948254199261460371446971702343222202049831754026817750559787128503661918953253067585340810081066295021981318936883792199541182316735268423894270440582148153885905403044632168431615352257990486337000979595894040987400965968864372868505583598229953290813525212297067878444740616363472946167244030136498340602669059903093277195911496178837023789917472050261004115670548125573463056147057995850494215362580342450475329198834896709315559125439678028154461771820482740318200652802276945356619587666966200105137182792447425069756662468022137219030511683004426604331512292199616519541050069655326968063741090678458484841524453862694466304578462986744506860742530840995678370088075185934200334770201811220812467188709813769734450941158824397925595103959401971982723538999538930228367453056229649754869066950432324474877257599409880396617518272688928512764908321221431393343353454919271342789165134114951109799993701723082958619204314184993298515233666189811614901396907983100250002325978290509684467162843634828946132285817634463996361105252849308924281090200739603618763361614064866265667448717555097750834987219030206129038537552315359905426197897001125366937656148754517299773653768688647347718830394265516843123776603084740979433963180475764838713752756332250931344344224858470066196646934463425882283679590805691599144010884132704739573492573909864821158159174024193572896757147483773703235566199363157763899655416080044826024240354568718966873838327346741033098843385165506910583504468980718892266545944835988226311069187163442513086748712905622603603437132370213956668909741721786441932957410038688821019954027546900617993377347345990013122324559837627053854372659040509727889131253206768822338731065307543219766764684530721449611193798671118973768556913044385709457025479320807906938367681053532734496480480475744434514399526170549650672736075769492482581209871988609901241803407590132570955519080327686469161205094268934280008895215418996302816738632171896212561024600593113991016223627409277852222006498390513457714929311373682748833105019916535514158066667020571659944698342034907681339749218153203617041352016259333350784483073178843579005816632906848657533717951038659303068430592715837423178926268932893894888494130585998249507218558428834202460817065829004582577467221097834654643256323350836299468927279026990132505730224341044925976553336318036866156250795107690485569214915877563757186032439344865315284686359346942790966892484934652972007809351629209746864932875690933315569901225970304053333581364021152165500268159896014159118073171053926241899492305650783024528797178340436612955379567986279343591151448551802352325379960377449250061686234295060489648161541446113559921403518535677028772865719443933791443389395196773328808770093431279520283832726716311909195494911604095990878800966920907687657583624843942877863232805724324526929551168795463093241413513259133109432852503441461392747939395072482821049827720253748422488386716302492884843757991265800349667626589576948141465248560907586362600693922193812186042887500505900998772941573957429330762209204241206689813347248099064806944466131934026214679721641918543139718555125540217550999614070012208914776779207765154496142207785367555581264659700749948625556612632638718796981805346335239480571908487158712160830009504726853547973031710714119223197237305621711080077408864347037043176017825617756281525769764503932017033284756405334156866898863003041868772201525175576886762097189970735120795371810066294936342002360038182193567655448217306456339607177101520814081478212077388047116561212101705403387721789399282672202583933531896939302097386496333034575178360462867305687093911146171432871509319851418050277564516260802442917326502170539341046597032481631632450870818895905805694419969191207175677518559888856281357857129125270164456734793063387906139312764966994632554221634388296765751987860480247083298825454169160858924783146683542363098884687966364611477361475082090710589736438560410911029643684943565488259689350665160795747354617811444671402287778139976232601340213303928976875966759620522074657603434197000907845870368322511059676336005160752081635931681875789874095015981274123382099951893854304119131340852443763228142285997252234866568040902000016017280202679631488831622442565868809802643984653800171429302185520296559261184226625448195272097393629695921438729732326640225312622976732738662585033012853784150021055109851506918502033883403074341652721211876899794818739121264654078666380143846789013092102361592767485128175605146265763995001143097523822938584923895798752980362583141992068113394216294814721057424163193683448978993948374214631635409340200096468133424295049679477841854335301526784507916755364981911932486285493023333982169991075929622787186226485505515169528025357598206744500912970487038670956812729029759779899635768034230267510745314080739890980057059936955828319765133824392207286529796138651655450496372062395816977469535290706755501730282829609050806978935967899495220673243324789918411336659593278900205530436619381818413160296437857008891877544558185101610347965394745376072456413532217361841892545742956464849928304218645848468485795065326046639351875306442307067725842457942434706219477580383618350857033025779774138479820451451694574746007202663779299241843203319484124137498048493427288248954484096915782423305756830405273506803735616365105859719170619996664408390393370748634870390088978192586722884450561801399483834655952557159230450801237349814707311207870611401597116863676326372956646521183081471954463554857996905844336637188981300912731569741772959053487842868611139825403312435132512764950715383533727971507542758181784672977226177750303030631550423156306322527227409057445611334764872748021793242271721139460601701312172758129428025462603629227641232555876237803006770172811727956638065019639618856775678366968822580040031513073425202823833017157067825510100491758899263545660596000840823092219023181042057261360384963981436534184043884140858720907426425374078836639523239081486403104306396536222220275174648150965373434566541598198811803152044319490101365773821605604601227312772967922377578834169001436037660394992712023304932096946579294097695869695460099508516977435752822127100658933889201489837602857355182914395906687548069528857084807796706358706399260849755647490965463499119740139546646071017094203283044714179054285552435836074307365105043928875032250308810766665978711613888578759310304843396478830127979299333045417724003356407813124848357418787254204254030937809668828166077172711450904094342683026295750048933983859926911321630297196261262449652639272070870989398208710134479916362186243462003353488411473982754476338852549915450300858480493221326007298532025720467594970521094943300739781862380062801728150159595130546005446603226642866315633325270952713446602524876120055307127040509479393645461877428395547212981536685357083544687685297949186529620735250681760871655329002576990682596461048171996314383618495656440415699959442974409768672256765455156439644294958952449025758947384391810790907636849739211469206885732299871174683494219294982820981289132511628578975570799325849006627869095265153307913949104160347822949216007601939940349632458962792842636061413275721965204045149499494910301419938405045914463570717347112172811483429646020662454110573182859873349380082763100843793183024225545474889895393271651138448560103642413453919931207037826644122290448009995852700568340937757610369207970921816628494920088806330811822130412070865427158949818571692712571975028803899797647012068850379593722874890612162044561985909401379469320897490018268856598894737064637941078934237926381711105341145385253427237925791262309961930325685406005438161677504966310193007985011192687163424747875909971242261757812068667078732201116050898467971342811555925765491008817123882826316834541684401056426599198105842863141372492936052175242526838891824241580674524730311460957377923971509068620668733536017454558645018600197827200136942531151990757907183418318276501734782180788629734274044003026865620602477770644384894207732264185774864113332512727065970233966165390467439906046424595775241902346908493482994971506630181801370388327277780399915693048129296791361990096489226239319890686725319425970206919702896669915545634436020402659089198253978411271715330759810815174930468752782201095735386956409352983000034498737984229216495547530867969073915832195528251884561872578370790642475563036467847602156392545942400127241912233744720090464661563553819264648894650409425735406549686890350390400500905964023306702428806702432426691149244343601296422927147562641225494932427796702965881994467188883809975822673452595524622464861268794532691257388195648147451263277374331311314508553374637754395446256617522815643512035919986002113301092968155126396115760467437271460903514827017083538324513828483283415810344118044221000810805660952749935159490374305907716683244709601522152268931137700645794920370994771320473891598401838393221101370138111545690490538729944694383095139429838618161656574935802046860709442823738670397969899190471802901072049285718054816021792566089646065540673433258484502549067813740282740444826842009853472356265546735055067749941375785545037257046559294480984094527468274854749644872428449214187527541468316748204979795329751059848423584414818335209664907653706393614713955524349168651312095668771828303008277069688135256143321912086208554745313498572940838967098486494867516252033702276978481000604071119486954582370160642774848454568985681415119156748319716695630441591827634971270325605295861563780250748200816316104056748322451834034649680493043809769294805284064008002945988221270528820293777433124329005028535912035172553459118377552318405580791144419356375311048775891569761581038624900584998876830626378544204752267604225552762387260961087569870627334086620385670542110038216450496024407177184537503841576599080733960120657732759325170501605808424639104631126501070712798645029844588445332830514387819861350180690164425913949009733154949433587573658301890622897376989341265222376612315893286921992111449665879763844166709517880029462713607149580799528148141028300603438760932508500432896404973777509755390949811055994036091753229329302682246736706238205511411153117077696926446292616389024690703918601705492492113609957132368030488218085068909869637520595876236258688914125490710619187675523831478397242439515411562274514469569154169368541962702044281176809747281717271273472728951866534329261956726042099034461842738661197309753929805563924069848804388309299274960298977951860846640840321261369603090069989102973765210604064198815617214205571554492715818575393292078902135572630616392417928894333752896869329186563704897997989937027427794437179613986319679154685188402604600477610163369402616976576547702089220226032546263763333371465829373433459991455869364988587778044380358976658709732596664221413348242063160692062866243614508151073266224381569024746874990474277284547307589705556944876586612897200047996481581625288774192338062944931659479751488056037392859719641663441860481502890590192829277783668243208565991033450870495854464160054458946988932044330112085520141665241816202861106834232360725043205778430229788632839414574286782761175899166787009027976624116769259523251444265425006227036166744360817202964860781505433255318675703106723103544516847960396950521541825687012966839101262428779380325646503526555843216265604683414577594640183979738866885842395940154780777454053963845055464605292895028530537895909572521464599784181510685904716541101281117607280116173463857760752688886039774264610844843132284429107085731514806219833162607730853058564874153819618404882037202913413028509597822674367424922736576425785596633283394158859929382578426956136076924227616800252656236874849246024293908574222655463366836442861411913229645610747544148520075220664128567159010626808081322780217963959628801154704604090818479087243478162486297122606263989950543149047504926628205449984495786024087314332782092442336412060050342513203822672615710006790649468069190893128314354552025165600823116298067352408673433321786869199928255302848293244789825844124656545577822121039828283588799971034762557376423664211795537521873813592353480081114765342865741764875256748459358303839632497112979144936787324995946790152299469531045253769957489845228424433759166958144620668712942200284882480976432945127891264109361953645074513543545723884034675408936076409689889204636733470822730899857585595292700154441151838700882661336557242078783654014764669104956402797763516500557110001955763237879733259368056813098857669296504499204285155513189496539534559461592129110073862980176455652718325152422791837164714042350695648204449418690724257681701050986893410327742922400576351650944376670048948229848764034641790113534357832809908839135499935424289296388094707591048280190567269623307860736777472408423394496505819773311813003823850492758458973581649320908996058883120713899872005420534244539092773195973034282676727143530703422721321760162781889412268440493289961497509598830570095337766984194085655063041753620279204786557596020324999712891754599809477841714777530018191937909132112916289714120045293766728778832047111346537024618100840871314279479947112251120901195518232908421989420619791429510338658989663280173852955356097059552793904486175987793677810252816356340019275943898057740159890153632265999705438270776934214055361685618857612338927999888192724748790830584717823215294120182290766790943650924014548188976172725687442790046367263588751344703838117371567958074680002599726343827479861494840393386164731172908109985571376326551075962523115950242860145015078164882350953113363038126340850270590473835499131172596523335185681648344153717973474868523096819934361117154948953845214547265730059357801605460642442226757742342497585494415572543677552018305918553358691916205485524783237310782219276734088582142223568517267288512724810172716971474397197780401253704372384713035847201417965595979288883137575290766076364217488378111372033676582782635615769255411531743897107144234397145113484310658058215204707414187996086889499402973464109125076951577882365690000853492056813988202712836546843753184543804079380693340104213659503124210769321976146434922834346100542879208836648914786909281778789540946659488636150016432435814389892649685576146568611537257412930064674560995336726530315675096529914299554192881864776270924286506111473083254815777403753363414155734911268542552048753759234631162367513963113468417733534489882967667146869419625736287605707464919554438100010140013470788100452503669009703402501202153503912752778527801339641987706065015816043601818440417203770531986091349192325404945669829947416099253527396045409359970795434138086090222516105193289148331940671960596515139990679327495067033853977975244497466685379174410977465634690345018916166423676278535841015936712262528374207696044420090935051729015601454967052878109711586254032779852302533374642220445409366899646583142592488698686742696816295107010490159891939949538528129972205767575555682964583387207544776147363875943844639199343872207782166316516182948741397432158499695198558823683325490962949313955364009180091355207660409035448008725789473917125673509741660113194715479817118410505280395798481403259275583137920314891195199430837079375820213085457128006273812158764267672255585170556122067861418598834863170096269746391805513201581891302955712017060917350067493682454015610121105373414851553933264936823843478201541463586178733773255631830534116604731390131673786270322080397056892758120172029737027635344653815734100095902859481765923239044058616269876970658571821855644378218691160484025055744817583295051729730322833124121722785680924974217074264053040405288416624372723367300001206336644982265594078489046834614208471681306031338519664598597807661574264511504106491997879946115546333521812570156579728295243263277007800960419351528215398808283003329757775103095496132176713216626825795538755143632858173791792830655377813465077753466292044437561517635428450824721859464310204949254280874188214823212340031261039378025622071255274431188215845649866140666377958986628095088360291463881907532223256019146602527874109869812269550580036340435539287934957904043064207874110135750343961173957136654279306924927604791010322497303000357032828547858504029283953793667030201735245518628400427253614284371372552272339764766852538578228137273798889759789734834090920143254276350995446518137805549666229316416967842385405431660737780743678171546950757405221764600794977907795110477104826609474201614528898448287204578373072487938969515542956045303951012577876829713721326522635646903051146964743813666887132229639366239810886246022544984240100887516105272431299542207239492057854404332751741930314512992018688701345083257239803984506751782185873538059262615622660121076747237568397879704858342759178806636378651367072345665136903611031455656840301472201541076526777235313960142216455636418490008589501022794719947293859827703570658004936242445377092853228494767416337091109201541527670705877326016781162915150998447366389042651087584909846714261346529550087640826917296705806165425531957297125090544909925692101283596786770266193925597987668601272715481990541597552517755424024214564227009650645389311227678980110233676013898329014663738412015565203442989149743486161662315645587101483439211524922774594286719278927878918780431140185810191485255971983405861215191469399320042264665575762636128946334041801424826674495806288080446216893093292247041084576320285040076254640546482318306578476973187739603718224225087644225085108886661361878797527193060153409659022587802380015310420538897826907122812728683151471757510913737724941689368350185799468451988022603593141229134321045707512160239793069512649707333080119077467948861854660620941921052424578366444698377298368896982252441587989788113991379911570742242995711348675569739242063843969908897429741203254778267901704577130836267273914771968603050273449238197003170619883332142977390960476422615342458051388674480519452894877310452231083178733428931387738334885948591625779808360606498937165651388976082725706972837013543912464711738046250458960795880557129262637363369373018343831096381029082403544788211670333761368538300814177538090784005533120463702185324258014090539456905109139550886454368675596326301993170923363036023868245374540004511588928595603601219201163601634882844547971241286060668172425498477494342056166766838356353600181258834723682304352228443493247071334152972596342388469658517524851007124487404684983972787826377906708635367405309341539648662347127427365641666083164989571927701784104573885753534917728886110453420933301308966567257987313804629476345773976716332506568725981160791845909401850594732208182069155826164025792254422580879662068652080683558999959011139946127322902558391283288269658823910421062799942227220042553292580961066570625538773226158595390818618526277305725385421377410582203123710473814348511127166767451480089769649654981911749957320646850597322013802764331490218211569729357309503979590946016089799363356704227273372754432411774892197169347629192457496617323309469677965084205954801087313630774141625671712477048036101111788055856470277178080660490630530566608754112889185217945099382861992245080728267628563255930727854950804938803896676408517543587414439800228300028427229806727697851740534628546994972557495284686264557739446124641809568129095305840633605673489587268236929999883925356699566342733161799179526425028800318113595471442142348939291674439516499670164087105516762501850191282770623794822527266615250105430949500300249711538478837816939291074494948851485519501662025622087259573541916650723486261252116524762311805094532203505968189576606021424927209003623204150573785165468747255101773682398847315605245434198527720832092704045267236498854946374455349207704472172655180331775319764538248243173048922649261218285596217167058147556191103562228158195792803053238397203509478315099488520508409395798905048250083218381778022189580679628820048588122288530712229028499700469214733652570647994773474619043793033223886964403811068161428079094280282030220389191761850136173301393382545145887893465142711471386005016592134571185597609792314998247972849370539122287342927481008212540781282932666492353723510927286812301507365981768765282237247853835992388217945660645143051402320457656098037214229008231629008112918231221842105288512180174496152415853927639041012398342720516305762652945932495435954733471866133905147366946996141540084973725892179913567037335572204967784074600359418973316840112385525490453385389655909072678131778791967495174358569238417814908427782998866482025259382161549737452457750615865854312741487740800389033195412767214541924322561564857492331478492925210906262994926070810879613866623555635144945225282021178625345095965889473463777079235390481609810301644431365466434103997571667828285909731775835235426845131714713607125828794791251588492407423880075049359138679408346454512724885922222946581703108562747063362677391294345177091482377540137289716543941324375833886563206212215732516046496857287777552958713360066527658541819727242568648390875931869786025149978969233489559078015712885945564444091437719619018875582423196690678879661157409784732616571094321033963541294067554236831788612111047270853069321671407243324930198404120613737230071206220130044284784199211040507590907588597273389119543151780195009881934170727010900958838892672977938975164887664335515814161147841003979862739984763152816065276497689026508567986405348052043088525920526371630332072591905360669103000151511121112395223733233015505940963815522101192937058432386045291531648933393375212965785170299026516283505270037354211114720347687374913671919492535423997067409326608902120694407754508342292099329437940854714021473676174488858431640067939935623122257408188887107582324964050583196003727708552848834684344651256752331135632680690101071040596930497645989128364082412599845376587105123640659258273886471159805286909480090135649138959566219977294244556485929188830620504649877586552448472280872954562521329100612607135686679171812514018090933114109646307406616470446121666504776110760205486463385381968863652911113914805909484627572367504202458166916608933390893841398806708031105455546029323582459497394609535732259556749913262027472075894902197356917670987252854354815200400527852199962453414676070831215838902837563249543537267245269404399383509813006400350190396677253409948188832226934795402732026536620892174037929557229105975245065202851341775145370623308773468846757583514968071656287719973181731649259454036024398583277486778918848834487832925641289540341423229005032926279742611032192697289872545077745115452473818516346508123666334890671671369874160809237735116069309442138382455242516443647326205808675141096726838532837664537451681718921557658917944492108384958884085105217678806315741978370082667156653350179253381313345331732934996939944100544997671445402419829809737150373708005997252795485102506504925313160983806492273787116439138833266595737366787181754006565560065925713489112317129989225291723408930930468081737118648833865091405511034743316899398211219689342453267199939857741931478610977927010093780329351480295050287661694775468276295996509706902273683613235401268021882091129391718548244588353256636313447241916868270660860166741200735636712695358345328132912846882594770263902311456596972745394088608136752835981437000729761840946838432649638925228499548797651878478267206647758428033775652975891505999089954199633371613133221544971190750239727183209287552319474287789913814001616155924843473010562621662084724589717664923755031812444041508543462480852686106568934316152670288089942446093168641705038439623933858824253154173837961171389296231158969921593855597777164390861093762502193031584423820149636642118301248442986609854890053307838384246538967492536180179120960478807352772584552598917206231836750497752027956737468397805405503678810764213619719470149626679057423367703409218169555237654569813653201264281751190206498278735070610035479675463262775203838430402955250313884783406284790224010894096807816347899228327160345418429346363893255885430061688321555702253127804139409944191777957941457973855834110795814431488574271834017077338920944734051176211800115270745731648528279516987229275341453821520913290782454503668198120751073304753479826938273590879252894087913861824613353091563759192142066626983811390400109720111796476343155779051903906398423274350870389833257758447908222248931322454329428572216705765897582769460609190911139941873001650558702382153764739981866618232966459498619828550457827992912043670246240500015517926935435929217723174603407130651549981857331317160887029851020780989928628967111203845132572280120288929941533940376810082029536865485083464052312304219303166877020778905044689463516579171449335714850514329744175962830020818357162489703392576782913788940914401558934352320671231470923156958820161938921551057452406077659169372128114472199311501150075792873618157329880869721478991586166465941051962976311246130192632194514647230052634164953173247212828254224819650639779602824045388128179508388911250418876120149272962073141454016235297800669517408573214697130169969179980995758461460991216746197816893315715383663924620195819693924645578936586124426429637720831555857087538558884675709920880982715327035293208697555849173986053854479320186951805139299310216693580827477096660850923805825694439182404820393236237342308214293457111031444416416731805762536936789864219969300132504284438535442950120997245766369300584841605675161039145563203122890694906977184167828803818642688813303296275965777604480134212564620308120539317534677699544906940121393370038299629419380237217850344128564513805308515457311336327927980397682533368736914765339833664028590744698223391012535263411347334738253031865377858490898499685940486216696297438112690510973801801816411955452175135395995671308031843873330814369203410287434681044485739170390442670842511213808545490135069187449141756106720700630654420799086534037215130766849964713299627872794612504639915348734578293407522981001700219778941406224045555268323755894497659842580723191697194666350939262417618046746443268544144573228317459686340889072082292717894580366357861894366121068719423272988671815480618626539792292809159115072158595403544158608308144548645645766284478585546332064481707595946356016105688417940570618271689988037695318378313674545514710269101502549007030025075541762525858016146004007363653880849121208975404774487277309378965858230173511289687384029775903392499172706055793216441070619464121347534969175908887836827704559656722686028614282521000767657842651604765323375224343322170566710774718067626138691945910719954719994817858633883781032391872787088058946659248928384897411004969941296451394209323628195397116361192141173487515198950245025079711826578867413099584724438976875610177068906785204203208390816619720191792956661359805070553720624744241693209972352652943949661626124660192706558655853975547243527551605865926005300480188790993604744841430642072409738593328941432680927853964691615585126207142636604990728606063992332656781420172364978695280862599074104959962366105710871057117071199051735376264475031804759119742455052857403136170826328637126568156510323192121447168372895693044679723460333485661776664027011958278372625342696101059905573512279416233748514264930932320516626616814409478021375933426991234446736933886580611512052806013069355975443246705677079078726762367898091228938231751560430929910555101488332666954960531535081988947237569240478544719400899611781564287940421684879615683848600437656431622252525260162195954526278209358913998662592436673735381438225823984295477705932041774731989461029867468071954661162008194058238173485776966063618449675280161804118249432404071876730904108602283803959341764618355273702893772477299449219508835404040570059022931868384152021516494998124230777900905444842647505080811758291795777113252837413570104309702089029133653682691752274143859923059343321368956587443270758986773895377412052320316663630474124309602048097019164916858814912183588636258981971729577201288756519605648562333972214113065462399071179133800666739415782760746808364142068144199892925937555113330176807854434226238428374142715482243893109917883366623553834563892828355008679615339021445439119751268852532776166885447946735147645432255659327430810697574455267906657992089396286311470948699793407135977993101236118743336353815275970239562888132556001160464004947600145094343832491893945469967063148687605291519673720035930566326532954042378511993708849400771896586363281854767974166512018104339665499852709446328632768048754815461521172087131361160867096110984487110333402822356453495462574358776241980777738484743062499449915247871567390372974716388405240821338693368374260563400212542416409110392043561479573559866667784780232135385196069866488919181089052137010569228059404808427641438253500407069133294438621370239094825363402616238943828507526860620440509103636867470852336852265202011093574856118255512161532756490620960471293587059648860588969255449345642870425778279210217695424724748971429371836330872271589836417199352229301119625221563168260329226141181828759449779595913864481903921411595805744831692540390994296654222786426946959051553757451767572111226855228544300110545057656636125217877914925814614748051184268252953394891603758488042593689645025368370624227410277451155502009933937897614349101524018213578636460742802071944149039169143223319826782304127641929095914945020036963562710834571973530340062364590862716877830181572568160029140884744585977534055603132116664487548453900880371046543809284817093693266785429480870874344329914831868613973741414878119550950231760591339369140340293676052001289460227996991395264162718857717736664248151586790466404263350899498151962846643509856485858321800404357905217122373535351630554285102342659678726864200442697254583242769924104953695098880767586372556493755554880923040250541880538657380615532347421937253804495580062420857100085044892720083146095079813605522822936482334222651148695435029148119677074571128259777654646081138410173067999700684506007941542910420601676781591436935738739694370775176916286983406304851319953810105227199027045570276692707552862660710154293413848906155454778931204229376083223818710371788766424922230749556687546928009261970226809039041472176305289952719323096632480238778775122269400355157362228292200017974268512339382392598590417591596166292509537560661686553103808010198207358560728168978020109890505440981646605659233652216238519081979301613314005300875623329298820796750678583362004271279978105630898488096998075683492247076319897691006058525224644180204481356711778361979804178340830986219221488355264405800430184241734002379531858707351602431284717067492034470096356300340199435123631924728794081725031719534243183383456306483119041383449985924342778371456711182685970941610946225581477468361523625460553574985734329402171450054090125179063530312785297039671021791897320240449028974181498605936793497055453739222415151395466459128713904978993610230086453126403298904395176039200170392088808847093708192542092975960317262515270813270996918836166327511210961711782598451142047888696207861262791637790329931996244998178493479350536572186254361066632331104269025998900874233096029761288901232100112744435410038360350482061793967894726329092841597607600635687709770266266545920366641663540111932218299772809723350001519869582177670439315958897367671809875353064622804112923384144148680344012865823039593647125888674663119335902893847282404137429309730625053133790075057668160352071048055792983550477084346151745335999349775910622001508117120406806989787216624455339515700430298826256934294947962608628130558633436919035874401075830955558668093887145937723686895452937880790235271615390667464094111550604895693198978096365725162053173147010052968069444439932137737182823600457965583317493174580834719747372917157087341512821539489289413573332227503529529524461814114369125280349274203776333313509087614422342863743118559834617317531333847730664523760111313571392107235597266196500667214429695025839254196541066940837938363350812639618659820368921354837056114213673406641475174906580354687445015394259250732359309798562136080334776658363109307404843845283645727637536878989402178955270674168900245881615224621349702339152691477535424294076508820065019202550647174096379114244664207355522333081597110265983376020072124485210403230014333119214903027906901627472259815910601828552530465260434557001739652113617697023664716681192239876323829221219194739535949775755379852214119153516895247197807890597089819413251252923580798127391911859623765360816352293401632544692253252033075473369957046718835776060224172303153740440217161137707815141179013012396345029898353768676030115250508461840838511250769343744529222925524787374019175765944312989196716614570846418499544747887879989158443685228175723541420409218153491720877884210289575421633034117499091079908472471206320270604421933510333829872274934521399884359966123724860166737973594638023788177946301409421637830713082426919668890209536551012401912674613493392615820899229218776589439993867632417625132198449482142868194262167880993765580556271742814654706624445385461933837331864354097343324712877906615167299512818730881784042334662163552755279274947913967810973960412127231797663623229825636201068215178885923749489522281465752866895238822967383374121486318640046467521055164134862111147867701421549517425955264184512240329077257130859824908709840835067374337012617511130016256891370695803751485793340811595081540976259264169276803601311325382149641172999730412711740633210547421023756269545903456980517907220527352293817009870609512135690409560149818878666074033332346053512424222687063649653431276908216693708236610987870712653707375368289444569678805244880018058411404603042399154805362004002967488267879027153192677578009380937758877220672752032081102687250266956685926912463315166135263198866983806166824417949337921931360014889211419415479567385485835860150892852966257978849626110805104536699510246664421856659394480388958322777584784497441075291149645404096550807628752040894859434083095965831899695109957856325316190414510019130203443610058615372018032166946951522617361851646210863798571292663105385326099515212118976264405256149151406548575927781339577168240535488157976120949525752875945382793573676291741251728390064082312743218346104634321466277165154172171641022829058245687921267555917910066662263400217729256631394725379700348837845700984973297001136753504986490622836916567676342946992253972309825365910794511019604175902305659105488052981190477509191957978116123500737612919233253513223684080654731121895250064828651933573401874403670108243520044564819560405481832443434617221506971704152226845601740437524043062978096270957416919979206398822661773225225919266220044774878786687301620639776855746893603902119272627987449876467486349858839806202418557847195291137689754956028560368631315838896972161600093753407347252254141813718530267541326112730493747935837132940266347956383027674853083641523662328048062837197356268718531114902483886366928565068017491775160872186166205992492929484729205180565695025043937987544412178065127829857900645267458996060144846519719308000204623915692514125041950213383118972116250115997006335011533090937969167084270213037356289699554810102668234865727085737073510562871143807729695683912707084188762516209863902113185070370152422264944390674981664383273938850016318102692931421861009585942714517590819672000622506529740590328229426763582301715873263888972831454091369008469966214531333952578255615112292307257046933586212270145585725555908022996997020067657453318882083171162430400368201169112538362541929591934704785374102293483993878753230557230621950351548587575656730767257517351769709135648010939456358408390798301390152801660381075048280472545302172696095568106881470675716739964128424822348938189244261675543159586116008054782230232215521199865761290837744627504225357294357876181473384337662722187867870190241970663508429196193311616438148681366048310206713673388492358248758476336997592751056693631393798926561857149792172302546299405099727821088650001345638729924131294879431828710883257916540301985564896979344515332802761226698604611353862832110879097945521773366493818486353928266618383380921892613510932032311369942517853142206865894672962245220304520398037924669672849119920038118465315307078199368374468758388531923455298226319832626793421854016252108016178231928449043637529868377399348255264890487678105060069657029693570873343927764465606959490994511564257662593137429150250001265205988266722770913260319159122170275979357983154159436830318964382852074997474366220416022213331788282858833035044663627199077608849602469567983794076009086954362247681261422793460719999590869262498759743990902950668712752350812799526941457242060261999203312650458104913091978260163309322431083805756070234181656996749150939628014013683673897380259195862764535716584704054991323370695525607448448933321217475820304127970884751082357718714020849396335286212397800704661284698929235576572829038132888568726456343314505138171091962247673812224025221002070426945475158289909584231277972041045126038989952681174410586479917017127865448186397412414602675506757748864338875758074419106754464984556023052276103342116992091445668470021053187864375388500104602461726756512309344609228010315133008897744317161681087353141275688715857803835425816900243415492408077303220536637598645076000357158312738573509762622077496740699239058017908957813572148993918490734481568003313034333754728178038295054259025543843223711486005470472917991602091868072398570231590532643418615341017123142148220415026795262076596932781925573949618442839624664900385367715863649285343332219589092082903243241227186155478052840677093405579363359848547131068037539500387730072618157621439518818189513778907361566628782628125418219248692221964525468291819799319124316104099305082169251566043522091707303775028305262461697676639976768666143343978353902385344385202569232610488227181976414542192650598324088595704824686713977860672373914831102803152710666777317612487978914134764977784174893806378523723428471815369449909609939513002259694059640646645282240237109953060117514154897208705644505327963173843865975986925251297698300122751252921840508751661288690466758328481497783484337202278451222909569669278569525586511013010150221278157546762299172526194303588406615248505020182510581249496427817380175429004288142229524087156523749940398989369440700626588933247293545573553003999010287831525135426933373935550678295102449211854277208378660267165559325449687696955926053847017808511741117274759919070256345689975377361595841708835117454272208463620360489525278742398068364148150333774799403669745733064117824847973939035634686187515736419485927449127819978137184935361793397258513380345773836056297880505558171042171006290095355916888678605553067996667739710406951736149099772804500969541976758268076101246012107678768925733466126326347504495513042853153434671821153429091230681497314571011150847318687663379434248374059857601294404875143629595376903789365888805608958712472484455337957520302249562707440102358422683788549792815559040151048946139417609885068899354544348056913970340209929499876490540972859735480094758370170586250994588518700618101400670576058989436242852286364351414686033777564685492257881048299825377151995760053464263072165580259116678549258538002126978100711913875406965439542195874315310958655175539269422616289902926914718549522011396418138523891908384774632795396707704139890010374198416043252192882466541560965377376793707074746847742973599653596550052169711112984871855451293522149358882661273762165503341780441740131576212349479408594321854389155867293762096791827151340572274635700238681373734148150184429155397318157764272949729586926089876874219246852718760340994162192809818518379794004485499188343018914210738578103823603704120390361323744637464622839403314959861988849213946691753002512262750550055016633710744241293794863118508499535479305872790645545336625038953560230793644380646965955121721743213756975966515416451588207247534046784834538075976138216091270197760909874031936576809041255810857524952118099714836925897518942452647080274834781770242428645519839760059248263426207866905887023793064025322078166168849740522243851254825666026433966502364899978193145246802995533759500529858858475627610705579150388745231970217462354401583243430146639850213571489058125836912103419921476266432592813824456034731306674773872594394139029211636913582379047798527166757715894582338831630049296367077003897555676581581292281276680316409219440215698646964089530060476818298833444154980415652605265691231634471790010800717919894374794439412418452427692937275456710321826726378669304692934288544061504480525812737442286250705109707617228431452688355786096282446291214328253533753797827869387329358965340168872598027196757650427289861057614474486419241584187983309264997963864961264972094405053672637774769162594200403900467684451968952288413058983849276279313284170779387636468039647201436083940249055933355901377655753868275594511165977841547037661375148614432615472147611206213573949123041814095133477976919262496158940228897959337469331809959511246585244347974203392075812459204708344984168156214152903294146844388211938783559398329804897127100859480984853580925413247781462885064596821642832304213323862312015130863696181182997108971777050027883534749756758169616915101532456790964074873874994749742627261550549671660546090227406789350952350135066329519173942306470631178149893534844994453285387736281338996769051105243796514234258377261197360947364135907575829344153053638130304356530278238516229304810662225974002649176273881297204186547358590786958170040669445636275216687468530839865766863828518635132830770533070277952375791692082336172032906870054480168026999861793553106982309057079845657689536601481188628501779533810147234975866440333605613293557016678216301107628838919311792205784783622329838787608899873762399109117540340963554296665244381735410335786088191230422586234955183123167818382238745979214782902041309755961523424936103569237935733711647384613287855927224405828419241238006752403647999414529891740088115501543193455505945960671350003168256983503291179696106088070966789072616075304369352519229925441279108825317960677580825480440552713142223396595030432276395812859653465070726047235453136505397423246867717681784072301817537050552181058941750951133287604282701631974157418687028537802502761208829385286837116040408120523910840704148125390349484826881867695239282393623246558189510600559005628415182448601359318064421754568488189693942614752245558245149727185507201431511457971506633687347363850192207191624942475800947403898751580389656391177427600405838460012890514271965954941242504127525704386104641429012443617955690783791532453113191847506614300130482841598833963339236332363209876857738289901029625233310073780999745489244513109480430208192203725520917943642773026732329684383717165565392561962940128440486716125061700353041614964258621209886226100412229093918881752003054073861610442139923148809009933722846999287551561796571109031816853254744225338890450980449304941860266791331599203359153499601223715555440245718870235046676201640710273581175700623021854786457090358352237551468909948968138053298699681187544790440674300224349724940774387424531197450887450695493135844877647406799493061103161779252450884635346960010509287222178463326553787769393052906985903137204733844498005349815238103176008305072595601629391872341399804185325560207985398407958065596292126876959256018814062045929456103529381674090853091106152723440098996828301767807700383631622024967412707755984527100974179048716500046516843769065484021267205620669450347243295313416428906611110034121235188127408872564819671144117778272817326048084929071621007802713533367408424893073455659542967599461709351217995717941627825605648642644107420933135290820863731835988208580766468917246436572816001177050521915908923956722023961131749357179885109966500469758168685624707690850595545533586055598049438168207116571028187947164869399674577121493504894636285881792226384367933802280900420624695203528820784732139334762219077463499715505975038277870663239945011458765024378796288546588202130835478278850011851855298298873575133722141516254888963751800972554662637807221485783299632005508227536981182544811558318722076229198805459181454915373831696224883533366415663956111840232167516092599191090150167572995341263927144414313284532530359766460253814968646484373741333150454180438026933301859753179284594206997898020290390414397658473458617988639191460578917072981923944799071143251739752238950647206640674676282346348283342242891174624631532006250316899830016231549246169885233324805212246441910472561725839507321501116545810643989643342676823506652086221823702183208322351573171462366088577141721927250557201312109744252292351783059376049311101751207414769670441804668256903710142465704589527944726077303977519751335049141198329767510120329237233731195531929132009779852898660968019708696530588313173210183558960367744859231661076696999145123508469824585711586182174113879302932479119935544649088694818313365832421129207618554665128079609973162540069508344322828267862852600184676404908844545681671890692283839802703017345413098077074020778703419281166303963503497435122954638401368892009980912866480650088311256930354719016814973349165511386539275275339867993332082775166969115111323119388592148368362595451418863530775857786624182025285087945081377158837075594105513614073898295207402890610478736500694453214636804426849849902677364517637607715948269230076969164692290084296715541808578355845989657771238861331069898741901763963439918093136086375929342625098131006152092113166057214314177403547495912341336331565209973949507171910966525592419576548231423052025169100235974034533229054889131363158006029903364361845791426917317506839127545084676175722526792287808808750129069648154183427993331516527747372495062992671246323959598111395367383729425859219461674563591164618406045954582374257656300268267255022097551924517879697901990673357515359333246205518986441078281465994461424162930241679720661911790536221703819883813163641841895121585428746818168831200110888059119095346899907522650208387165452760417268614278023476840359818732101425245001481529568310865694082586543015644266244458920543850407150948718032307623616953881869355331062086005991664587631948808031786363159905854621883443743805508934665160863387273725205475487901217420751166553740287604557514788485666722137620232910182779549197953768842575795057037301971357856880130521036851277377748897926414695850909800055779126106825469681639653400923299927880197012230670909199701286345702228423496167168577276152280205984777657055244861823135265580275436029559703032342811045927904718127659460661430152966725874429931348005239500602574241370827938676350185645308259078068030518134598400090032124461082064370016699202748385925364892795349442871630770293740512789927882569192555075660588433486360780017964748904138399936481979119578456401354981968622777653153352855881194393920187300075853202665241593312855075006454646798402254202227781994537038794525858830921861928610984739889876580962377902949623873813541070967172535117039237966757992451061328980146959620634697789422365683644430439978042029942085121220819772949867779261693362911213396939455972034607443880467872490544723655011595495726622899288411493727354609523676640870904493426288924714918208900054601674587849073855273021541334460613189101200386943825701925990958849873080849333464563292945959543315421923843942880056842104925432778357553981014945396736400242730206093518653484309382745815448203228134208822469378935668098091802412581485233618959730303958398924930384603141130693563881336719920376585076266134058169809150862415439890379387961070440315419565658505959491642915270528259937966790789243241335081307089155554386944668192166893652438162183645348530551446171485316435206167143296826946579559362566304748139827991781089822666772769590513669269107879957894133922459683636457982240533267628835753279364881466210328825359991570678549053312115652726384787355038361218086584744323236990675476622605311783525901508509133935717416348244102439684469728654088438215003574180845168108526865623496767579405674519843395063764801821604610977215585330660869866904919677699232253137399764657967460052575612462437872875555751307346102012265644789347815903900116718547715154618457409273018699310286287375194945775092366390641022291636546285043129803079507088157589197996420225194686407687907420505810501779425743077667219842504748118411668661777143434063964600127120374680244442350619100602865277927809699881868250736598114060044209649399704677224230264214941383444886595522860410758379673888930488232128889950581148661777771979155913245710481846698598011620308675583558485842331894631060238037337271581536396791210205943450653505075950679800153595381892175660680275898014274143320100495906531361118592829900500632861131643050094420369042810967680335609014025769308106193386517534291897252717103425167239774275081660665725402792414598876928611265727521337160654609846142313418201386236092115071205719363443982470647484969456751836483217555837957288948564518978478020104226812557471179826511577795282547533889189582983667641427362948370876899013322657299309512410558005905760039082959598534290753609193465708163672961743932976215981247302569149026646711032917888111359207616658218658318000995356189069942350568530577789411692395236442918997122439744967338042858117104610339490094034555471039961878156446001791443152308986175807304000698146370099501442428974688703656304064297718088796418215519085029845212392643605407537693561194421844237210049645284955127202445764247414279334937833675182934047915617365364958115450017448658630631223527793740341470392723390604799655985851566070585953020217539716819209347095320446843501948169602362934198189411353724224998905549477193016268460671262947891460896720692295869697379870116048073985747284728006575182198664208361580767378712797103033776240284105214964092093897829642661080203942703873566299668479310992357283417624058946316135099464601659784211964371810399467641097116422185251445100426588880521711590023755189883607815736547845638167289492524777428738712286027244670807272479398349695205307034252814518724901991935114773544191830595542290005327046101780866915610704897581851838368602200330071793590532308681123005523793361095072652520380034380309905098881473962803558073825558217437758728560058980389834016574656690343279682239762504648177099750568522478015844151997487770753344543205236209931799489428048614286519518282935647536065613564256868611671037984306748257927325925815867138028010733299334261029563880711616199608414238006418884831693873041119132586283463959864902203882322890054435171619181355746927413727131448118565312854364771320837623345768454961961462602849933340778424071301043123619983151996357368303812709087434748223473821802320275080284238117003369930793799208087504351437428544438553736570140018011517238919947758081416273946679342644444375891595978163504141038172167413495020552904153873172859582941607736487144132594172689490252292467729051179263094428980359903947708700761627029707114338787426222959782494961746247470131661178928422716712866161363385847002102608636390800426361288206540874128488551076643168743133304268801989230317279281971146258026987684593491014924313237588802860866235312446943475087036617195633460404904290561144768759782937011693659486030300212736658615100970823105876806671596498479444869027050101227348909976620381039601112803427407290818491342048647197337342124971081004816244032320646898226859313570404267632095453940006367506048922132688777828642286720328609063877538964032114559815959719979453136236509601503331520874497673135725486669008408214001550876644619089416583583734607550184980648376881049159855336459777506813393523213800824973729081287935953897559355680527547295343975083772118659613688039192767444992337538317545437684215395281963836733424050644564386239545580923598647305310462393725362197613970884768212966603989655364296409403994605523383770024191588499442629949297341921530749213037740848286005737685765232195440150443640524849129865390350500986207349253937524369957818945811694949549975268503230342999649159869298493218013753038408055516657486027074461792213823143896834637345033820319885426474510011935234160183864659887310498097600177299799479138259736463984269520064442448769575227047016493390347336152204882567999871632884573305407243833597113836065997879190955894431433760933417841496745859950935732785044963148382597325803012386227233616700586910591851572816394524776232442616405650832419257820608587476769438396735138020701152148622022787027835129157660248670149091174346816268823826276182904173068881838157843922209073128519981840968339100031543582083072026896990763091940870009682675418704640449184830987551436346507770327511868899788427958329863447580367966240338467795029117483753470749545697861658218539778952232558856659557031814588444764139774324733035237317031754304802042521250727414328646731758164509359372167636501370046195107000247392031890898003195769695255264868078269934604856452775331398131288001038742806711807023481608265115266704474599886063843032186341325833336086886798031806492322645819491047765563174228970341103559484540320579061014471403988895301841427938648099048660673500287988008609245376157917048227104428391807167737178177063815392132383124427928525248257116705745343276117731033106343951305081685476893343336426648693040486253412989324898498177739785328390181843116574074240924811012488990532136390335998676942933564520199408040724122123939335620444849199655719792500006898400698788834916333754555485234360150121047903089392467680839073831369964317574224846740813962040757392975789735166828104980308056109521527030702531773813286224050805227501787990080924801046335815628515704105485417237137189365247268954032841872298293433122078568434745656442780267761499084280514801643976313212343876389047385793947730740939705911097161434913612370454597796525572558590095626469116308067534724141797678610062312856556500882160913053857108220890314676320010349836475638515032295838884015132753086138952934778774187235871539905807477618442003852277446937329156433158412356220844665714586918551351972811982686123694323194357322147085636783713368292964906138530414714439012093288739870067950941973516040340254429330515684109715934468161591293205054307778051707759660206436467346601713834977232739800169097447558624062504916490323049518008285725784660226775036000780383056077772900958906732411571180949437080152348900892688823541497855273269806079329350508325305725159635704018743519135684930565725050700285275752913263654879927882611897936813081838515439770266847393743885779287329275623194937691612723701660774724712540730940193010184697465857111957578025051548730208833290364623709034408744925985544073635697811184525409466775357859333557477980657110379882764688316360272565179962902209573414812541310090487790335327229788854718971279880441232503128487959172633885213819151804988865028402221988499125588180871518484115165808731450278524485196194401108122864037512033123901270272758984121681812596399567614460383819162710421139334824077834616511899363222342610867456571033687957886668889563648469558422418012734684665635213220217370412454630457471143202693935555601707838264677782720416822502595514671419720953486104002795867062541263775260066938148776715132101397928387209356168349008023041118591461212169093517680704893232984215160032095136679003539975708366967567629354702337688408175948450295268592252135873479795706597452350508068464621029746280108587183771797769132470105230608039648417146463664451157929416649953274589364098625597167133370048156366597777210143071428618448482760052510816494401080456830154593294361433339071290467850016934671085924794291567458218201686460546739298856506641424148137083796194008124256584160458831523272049064777232653165970203642549920421123154612610152713376295640663162383510074516755204432080849658139589793021778266717137282531278490833892424696610517334827182377171032053384016198430634112808218950920927664174948134358901932023136933411748397654736104046592606090106010804780286739753280147068568889825709710998927364831948366919571629690425040756322412426814579926289232609692195919560140755326610765980256622701536174226536080258108814356613124853675178135617503820729852606747731126726120334199011386471891403820422263468658646586656757225737587014595462623137078009533189909062561891238371647425507770436071515180589467383931835036427505987217598409844637581604543014964081508074714110196078495115872748613765584901890348828592923085112233800620870848272602119323886739555407494686805678769216131211151671710212491584802192981211170029638444801282784206453084309301652179406040107970964569980047038292993401705204768560822341711017995980041262673632700210305792008929472186974155597745387238328814703594832338382867168075948025269443535994696255099004926556195404703326557159768061339599746504703645087159982088631869398502227041447475203799221395810870385473983894090757935008061610020797214113736660133909285954976330003619472824105202422111282522195361641369993075851662621167736995771817500300894418118542974686287795801137106732756475752893382727408119569423968238353935796453982520170128993315367550605582470687438855862243525299772863406230736179210158963027045339566645256237226666866363160915504023830454564472678576170654941408127893569196491410021030562421811965297275127495712332908641080423569454941836142386607626555044416876446607567184251164234146723118558998962224107719350786591819973220887766132768759373907520869212546869749068723975597358962225659686764271958781671737035558841411683029181909104666669892905338611809718875452056458952677120350350347379973756544904589820726322591979075611547142578106463710831296427234747293611434233971578673368559978488126580631429794387796647502077025719461317125147085228274311389585235678197925066288731052034774979213936963501833882020139226257625649053314173551373318567476388616932681190020229431106137978660092775909114952165895841372741055940194772111160464348861383408066745993666310795290661968815985018213887464204685735694611090134201825619431503736718572188109649627743759187343767947472509999269526620149365075075798605120222394401972676956313017611687414594518796937795273248474244003735787748756665271484922066322788641698481332509304356871045994246142484540714067820713767478895690406755045039429835048689045695298883951378874423712108885966560451803672908945913986931073487966954944113858863473466837696852069611532971512164573583133777686293611994522016531912157384049669158317780186229619596458430341176500259997472938821188543767913249597156491649440988896302850858448627563115806074293342867774248874679866448821928632954569804560974116982473963819850021062311628187372747769554020418468242560482650424641209929586048004871182934829438766090306318329881181827689972882860205210940034168757875538357581359665118433214193836990047061931647505392810921001676079530532640500475200890267365094705812278447486488829823343168326286749513981874708781171588454101542096016201380013200106283170137318213297635306722600420847492957404926856300664656844749865223737936047068071543755930992844851858838743565182295667329983235798427506171399491965062394456247570892246385568063461532419687904428173283268716391470221792308458429445665998660806648576590420720715888521987653388347444257635462732538992637659724172029180636340436553555415905652916316678730600438627416848636951473655199537618906982891698999500139958674761259843545219583578060485825092954534304455612240706925287036731380901961395468514794704579025282754869444530408807583443279244758247850469061725304223893505671169802477807776418756577946886296747786569919570711340628989827496856508555571791610472234716603525079487547368186557271328810218949218387391776181389849468012614843622471844167210383838194842893588549570830437606905378429422495842149500681161588691362148850365211114813923470055519171824916655815798253699903236190604329161467655082580560218638378823117639539347785025606778471921671696601182783235149263286987980742364610820068071296624409271260798874591240893949843970628290498582291181530482236218984673357305359613584731495493695663296883355053292734317596575180593580870283920741936602466217104875267644348361474645121636224527462898192463361136704078082780750209360544353726155508192798807724979520319281169043113455148132939085795075763725848620464139082071739311917214598992074501464612122141708853488162303119455480318959141096534234837862234818852512264119225396022871713344625221161289728351774070897516277512232610081837032118285255072392996530064584005932422437017587457883562344864488482431664670187776725597931775610836441123388756049235242434303016448743898009492429387363612217425308824139933449702974347705861437387480955661802367498577959387179318919290244622757965516768603896767261548185243717154956834970596664397596250534538463624240882112339989875513827219952140490415049052538452538262994542294355826601061057218195945374409882138967351368869497951941171579023233985310235889329005213155961768110630735051042946959902263864361363362978696220007157105270108722884720007442602077215844339482926891188573677879461114311262526187461945286324664360539519390712467958927037671056293268484640745275084578012528203283772841992257507996622692081412196883949504463696075163968699787334816113376497413489719540647536492203582783548875969734671185839047349438773200515507040507744960289935749986433429194304706606196358758609040645023577841580316524750021939457562506807937148720640039666671118419934690851672039396498186701398395812226873851883836937046205009453439213461470341933556329880142223230054047642692298193462922676820155807924182271699624680999958223702503413519604724307730363388093197206779401330892378587500573974171664930782392917430419796291184612092412176870252123083771592965439838296820594770197009396012632997816345563436207901500236042361758447630236323348828673808470523426055433114277201914307948027688336421829973312998573945272381819776057786462554719958182677838214310933435939440492018060284167404818286206400776088720565845024049962906213543544296765663210803541218599944897460124342403198983588936086529774632581014374170543107870450158412049708906654174454818381371991814689642612567998963592882364717221302252232367085547854267350250527029995609621823710346855577807144657455011601159802188123040899108345576724427553940449237195792760910771007989035646210034782965321808903306596501163085312830871088609262548047584568201635280630073066200830048863089315681746621818508455492925667903443122926610892568373614026516424671960258495605190788970192180990009726672025184143500419866201568124460102557430148005134547931126977376972900312602804892078502837007065793660717955548208976549608608057211446071204780179807032541858714975915213554076412035215682033537456479525137523549398640879266030951336870845120405438584567374776492009459354313029449366478297284413306389018814820217083652989229447264460105634320320310965516481714716361517403620610656451453550101402142008923623434750798859214147372723219559863705892598311788515583652413346842602435925839581306153531410954303158170533164563296579833463964422324696993713350201793992911354745464203714203071793359485251711276255157718722971709107368131055551701954385876352892036208065872929160731154860772090946531908559413865241658372405698404256267531012519256213938223685644299794778809187627600729607643481483526222237187338091658568165426389733068834824677300858044126835861268797189008698414625542615142816147378545333016729041846366865852667345645156733374778531787219828238302986515518911799175390021319451401604859661017493900901994495082193089615636293347145675444352472151855494207707138140807334092458359123784000584934638678448011597067647221312106487964376287953752638869156059828741294788593807168476555533680859924941057519246055078590842381145051850642009968686141470345260572959377708504367899641174713081833408690338369200961772258891642724658278715084017842533962256413660363375163694251791208940738103767296472141436615453027463640679359156713988191317327472052659151054487907070365327603620531680502986741292169383671980774581364126212290325627928311753688457716041094745356811417129929602149763825067905443556719168363222026023599096776881348053935582884687775004045125136685759743577652570119628685826132753618521474848964733024119486661660498531415679615959907763021661572518026348883491221260016880042771027448344127152775200116742474352594776977488187525458689563109172353878078865503339655090558051183745999511806627261292287337430414231537211525114754080535413377907257141027052466539371281680585154465976655619986795002487848675317566899975507446288472367203056119081385266305944350742342563753790795726656699620069712419928125563747767299528518403729298449956199841857707850415317150423542237347766002929978328332666336729552313593979608974716632812662955778655650641892849371828349270139979295943533665637532452697840766736159468901403365992872748008643107781139844527019443160685024141022927012563414635202787911570145977614151576326526113923727184429188004755451974337563494684409077989273901055001689808241162387529959471086539927217735783309484109832562182649232261263917574648210542451395775301603804094327159162372848208030011915040286860441230936972772177983233111630046561512063265929434144985749875083274657311241594525069481708151798223753229208068561467179296676435211115406231793449146704447780100092048386344318023013629762645471005207225840118281517090652762469026871768676154909573797869695317100638175794593582383903790004111985241759927045063585676738678627832835772788158753194549008918175452880847866101798893397816907860713656901705472370134299816995898223555549364732825978502014996300107020953695739348976183335365020350165601278589363985639161980829146924768773418149368455476089015974559604471317100910415866031161336893629269251307703350932720928552406169049163094937856043363433534833132792144262808381738448266713072492805340587146949539289351975790049756305262363194695241931011317176377931884779409266369727817396291460512988650828792696595770095666558295486446134712980009462704818679094084154799668117425548136930795710717454572668617503334979724039746433053620147643274319854600521730923431445566391225176836429541538492890218613976760445431846581980233506492350184668977260280329705271604092680139207496268445301475995237321859357493421010041812684990804978440992046435374921540686720050025807644943068200978712324269831598881284453725877599162449412188040356434202988891997429610833119915282605634704089023523089098271455949326186262352223734121184113205415361964404181845787656857632649949893047914586452356243771745658839330825952462900639504960179774341593984454186766796633516301664654168414777431075627126105229815076051330839925172023954814580155589259829758002410317563279122678227335432157982976266220598675814048128926117544465251023517169078364314374344864421821571150611004072871874941332855540095160750123466835132930842786258276746859331552521148924910992167946763240311528050547419667333787178334466372337143089528444378719707589333534554204168111548871963091600703744235288443784454168918875990819091985486269741872748748828593432339234374471022140074529012079996330231553471923830276986959543764936643198097676001884868008982836406431372107546298359846826082726995340950489778908885254281146762485188355408060378706562835764449821017360096944267247019046179198719574716072185944816645460022077518061344407295041677318423493024389280615399223756727646864640213473983581983750757408795607009277272539421930095881754786276255482921291664914059181213253589781546845449856258500674239191680862840161865300035500923149314985974033095327104540672562403612567323086844843208360470615617334078812207455749419419770536335648207091913847901729041694105634799044841448350999861264210936056555951515173485242566472387016216428223547944103807267825247212229008417991123965969055785352395880964568657894437060341664065335624240756163128895113879989578819401319179526175866730993220776059160418334091642898863439480583949577973180786214818473634140084064723706235502717954264281323630026454665440252223027107899079174394300057295968835645147781019719694938409882953800201041852622143527501019457380197346834898973247346236769622433977415332207214801652058789951487330269831169963576812358768416769146511323627154904113709059357831886210488419889883270975664761332206938358093505162801479887440577206465043074383090445359530240626509458529389781499104834111801705823730924171883129670862674719996453847428767661758089326685006825577526723629879371247364631324517109657809472305711763315301165758215728642109969813003807080585564674526989625313087675915759911482833228895522720965797028008204912061844478574157453881788125152037580490017179716396541003107702413384895207508759696927790829816208289409215285583323734533505028340998540399675266066408703169995723520501678705909304295598600837277006692041434698447161051265263873939918858270190424034385555043267135802007657345887766105509136303534358714466898270982803958625396848480396460462770336554025786628972113793196322918048015291493582053046729059362613575325629348940615539128734597013288194124953500418178082522808618820294662805523696525883283638080498826875568960200800129411639848302738134191490178654742383207735792360678360745129963923053431835008615193058189733468163429398618532436672117930165033504397301447216156338452932829878287936889499822066261474448085007320972163129369700843888763312952828357591885303149019833993010343712179920566803073674254309445619395590150287529718354402986881254890600092956091253222063360876267559022219229547113193016228707300383432506427264048398347210887456953629663213301037614316672990395382754668263604400238112167272043948835860971988314992061819088327794483102152647720485963831273435215165869086291828208776058041943547422365988370585087053283422506234888864803524969335086855691081155299706712632045432544151974461464754729897809406811919273576327619465757993270687762574868206438658185458618916196548919814748556012827005318607751385394289499595514421058177359149360690775176242062637608608388513755805479874709979481067332912487710482090298705511384660741987402898150757538659391056290934515922720913569723987439592857299910418218827901156710446871224844360588556228092510753115410561839092178029508679205277340296729618887318961678651234562539714829871051799612901143966526810183556616067351478641734778193005751214539512508650018315522709799140901947335069111172546037600455348301533974663339583580357674825584366307079576308901634179582587001173834333547908430047953052158423725966527367216476116791219066368356510398545881019988521156239405826559772841549071244246109742276214478308449249326747892972778978365660161173044262306018355501337590196868581712011316454204975601255495203652060435833142480678833319317678468486387933936167711744721788196438320532105910227675179483690450027744269595205096619774241027875561409472648752656835336134712916246800873860770031504555986358154508398279466824751168760092419409461237361590140052319194828590565742099178803092570239644390487883138489673410263150317737861547811030521550548892945241526062187587017216127080535903075912873320548577969051780839041208991977185476772094217674795600900532427564981571107799808209591366396440929579657834995905347281401631630755202567821168933735457288512347522356806218443617272230477333860477582796947298079599347883244506178705094248273146318303588660870488292039363070604891764032324160183303826558033548523062917811410071643248827105813904186111391651557113973514935627894003941326974257484509845837075023241888524882132502854848624187415641821411786927006327616392391221114785361229394257008031966138555887894480171550803953874065504107164665408944561488826985143144997902880071348195446414294405578337542103043342518929769875523420324833507686517594387772141967093297349904568147301617369875318722002647500181383095503978889837417360001188328326929731884665265364045233963363814655828827456089649574435797989063638125646044953284840390856752777227982581167684830310483361454800876171839786101109938336176731844956479376799174082900714236975418452799516979951960555080332960497965297646304322965406760650075376203894700761622739628957828073951568268134456435489780913972024423587544697549219770267774962374643068109696402158811008889490300845242148192097178146773199357149465685654709623498879746534558634042874890084945831972143703174370346999823836120653195768691725814101867263057058436851685654484104581098802873973719513770422943956893641833369229105419766466907343780704222817201318551168376290338186924497228824942740597275533855504789042476461694587090341015205650172002269944286061959525228673686435472061874565383088512375322577667785909044991503554778040583167683749658474593161987172140434165006871804929963081181374700709965825458174678181564367453535209500039808208224067180219925622041365986272975677209669189651570612396358221434963072126223111161372016936663842004421194181166837933703930797191039309797490462048867217394360351384954985467127724080915161261033272793070232869641184782237670479554606991109441220927274912739874206848883182162602628283062448392466085989778326984779116811759525543759821293902281279630221020239603527814165140610851621174460270738866979564510646455970626693553694371310518047931959639915137824288901031085046086965254056819821283866970856360331503756851485006718206886733760705404948297366168799988414518967879829083613654000113562944746943701657838720914923634568187113755684120522848825390127101934546155832460918727416112431876440503307837945077831929648314939974484749975044066357901129874304132065150992449312801370704941831084277506000537558730476701619839528955200866680841803487220363782666893451722953240472399567646435734926561892632359446974817830159674655357574902846207187717173408793168714708311087930619068699008858806594340995496469818591905401810994020039898496672355442314347613367272551565657441514845003339999248270070116696171016594311455449652635584969842263329124653644198101569182525884871987733442988474024190441771272889270927022122958937342532139158559567197778957883085656832238986803065449359234663170920729452886488410700685872243546938268790081672934043511508648914236182485632759406502127468576772778054535065882344576351128131315977665717889796635123875785085314218399221564484626705338276957771154040316371194556041551921677371495674523816277906414168996051477277179711849651044028278165332465158746315272162416929268646825124450639862198853040581100686074613452391787421726017094878404358656986341196746815289166553558910521016708689889606714025889946030248067391307587728242959699946186434562742173772465555311773833433356766208898710791771040928638864962184661666451083148652616884034960300478240389412588717567913122598717448182018605834077811157482295369882678044940205481854320578403737722861004847355182794997163864939593859807027768724360573514080799144471573830690357722738057988631152742801448412522214560394041099852842035709384061862010989568730349934632574347879725456921336628142074984085536918749797897019279046433566751475017152770369492023576461989142456570894248757109237546350432661670883034012171829818104945593279917231373658107082931885543604171207531010041237674193295436384398496801873189767590737246303107866940980330150240512900549521786596602433275593696884011502270377922049232452838275931497018052515610442162066282975177248959967777673084880302329458259076846483514298246656840074149427627707394167639817968593744703727450916438857324945294483167945068691170360985980509341280806103083161127230608794228385053725868133205209661806845329459860983873067243078219562435415387619423077602260659691477111874192839260459753471392752071890612214172256289244953523050665825702742091839516930125990546056023711250366305034203619332180347649519565052525551402224867636596836168327179452399123844317047580028125523907219225832815937049566507813133424113902747212552880524114024445520567261136817585460387581025131920124387302026981315237904486941231666287135805226344685681035581188567680336642599915042310827696099043684914975450674052518603365702366736276933333262291410460575971331652088113032273479052367430651889885718758621272722398392352611853420437945556838503137757798262585338730965910011713251939789469498366444590518322862316942096573950672567850920571036021235863814062436244649629826043336499967513722724181683068778265769621828820463529023662939859199679157630979495498485908788018777430898658818403558120639104427767123729394684141538291085556535377185908667262734289341963669402660571642932530115296586377736452346175784891889538447194532506250973190761949765984620660780756419341660584182965402730083049166354919629916148963321655354364920493301774808982530420774767476000263635513879104569323347940097517294290785122329175848767853830550143394236813338549211530871418461825500174246413777567790809043997242280855291532468134593090119374614549748542696999912598668799995646406312359895314374235679056323782996951666789953217340186430386636462629311202334012398980939607775618071969681946425444209457359133867368876726834785899208118912749556809386212795163055364036355508648414736311751824601066958375577576394867967551508297131497941262760533578640823688636442557181084563406510958860399310634640114502508014456848319525701095879768619793320008587990468591042849558229762917476010150073824204095891095723122212409660296681421243801027669278258114023931837235654750347059759038594231338103437669531695398628659613564453086720946845806145674582018709233026913309160861744805393539951258531587427945866060954547729505425449247866234927835734143887602950281754257393159504338041807329819901306848040258750893358042149198582450814516642779906073645321845930419008503000321893583993371287376567494717231302429413069261230296714484922391429285839022813053473864724047157932229403798592281853847195887630146816817982473031529615608204009490527592901222050747765541437225872951020419173370308798438436308272575172279538613717455816170713501319555828848029056405196316271717086163477821932699373607428037765783263565427064629407795052298634053405070171665026713378441362811672512756793812804056118488488502927837053651341979298190796545811052915764961426016694065859786625931746064599279113948710082948610367264726430159057487446285406480429188424666857435048680757260431244142492310856815177255630741984819895279072427710367840182631293383528502198429300203444971794490863033382829771857597512488069275350178612593292122401433682229268283996281782907496583554207216437397122429569684035973980843095463483071579579698081309392803866123709399911170994915803264770626341857901778245407109493815459501004686896486134043872457198603093579399384845302164997861628973804909946265615514149943964268458876004444998165596651243870021352507309499942423988271213988537394961880708690488528366774714234652774100486071811419242710255916089645690134916036685677630787580644573143801394046317810297078704516724091494683424729776089012815069613178169185062150405675049889985554776536760449483412960627704618039868487881570285381255981026037611398590643168677462048938885862323126839150668419525285173596386588081119320293435574864069361723801405014143655681852510134531065840371343753158881619256393077052005859126164315236204554957776304921040353690808056108013572484529754575938720564462221481556809058483763529103712389445296317650404206570719517877721892574835415498785320991326126462707209187369020655491374082215800361141261846146712835927026691016720097209278435596926644088958628738442486559861961367531488553228710326434754995691695262366410149003732508597345784861246128075372973279923294307538604856117114976033797748834542305264401513002050019136160476432230350103224217817177878529481199707532424519267885429003900023028774716763728223480305515675718829857294554089674791073205187387215953426951691341408904391682929039851376795671430946773995552511715332449491211110703793720899219022194850849099440780909613535684371543460454439575538816226360039186945334033182015781141009414768380778296802580013954034233222655546196127779259784599724676540869029213097183794208979683493898442235060269166771370359115539645468402562779256967276195630303819055984674670614357149811885004913088207722688105844923864005027331530416686916918822582825468795685673974594695925655124349502307069321662430031053897603188645471959434203158727724133320494408163485359610258098286471764401154590375508416155025299901837902386682317285034811778931970391239514916075895283710662157867391984379504954444002733171693872553742658521329887553811381595741914376060124727394086458842467023879722554571270639461452252098999094141592480028060607196245554104179052855750515465693658268870010935632481048890950464889073032554726962751781155630161988760568733120708189412492010709898038893573411663143655815753244513865449676385909803417259139205413546655766120029264912878073940883185446851582573792812316146697986101821724639703011205195242801854739395354502245314542540888539109633528041880042505262365915261676236605489971639628817415086503349310972245294906820853262935078628250000697738978943568985783547408277665396371926239200972503861635710155123038075406585134111364695673007745955418694120658414120772037463078706316465300047815775021438428254186256378112769249425582230454432792533204352062105237989035608459527957364791093192147797289633714802573466632738781054166528478671268451171766043416007801131965401447790389095861122168938793186636660702673763046542454810661046414188026947579261273145351571963179646419052281168544561333215448028951080521484203117514277236486357730296600414552783398985644147661885560334764183754467817727706711770762097956693756208591244284827642410931933695688322875062356504632317353057801453924223406910548887073061762095476559388416978755133163120715691817984400871599120817202988606902778526848899731948107082038000024771328596713271597588109630583588205560578282233620657575603284203934840574206199968247551451441349876774456978759922902008029897333052584342807896663365930349748710195928129166863252955800853378458436047494855850813775367942769458305167663803804869437477362870576358601210193450917048437269446319972745046289216979847247291071750797031971597110729027493196947808266198835773424375458581769426182082835333749829772403460998789957532222739393538481166089022706493101582594657272115271663503656364549269658193075522807364586345908610053004902103124804160873978258220586771811072521415283721354647273916503248369610302775196976315220260458744664202167163894992580257278550360277136434190679131867433570926366914162765314792314186164989754240792643456527391675751746749413523509072313516592186925569632017519242158678884573666474579214232990952767761722372311764128331904954665527457172417624263190501441599673563756278818392522101484520054468886796597752170484314689003700261693510391347821239881457785151794199975318173412844696189699049851672560120944469150068594847433181127828530146484868045243605848834396228667537989476998634271160659729338402060901504718937493160901314991203875950612252048260624307903365290053230420061797104015588152488697934062281358452057512779170274930717385485608884639163161202405115079920762231465337785482726732508092778403160800926905222963351491746804114963942869642315791655040316618102373693964202454714848357617917073782974059441702996990720159191589793621566111415667705742049605212125764217137068905576130443929781819215617297673372829331632789169511172821251393166742378682982090363111814339735220717302028723608485296530152820459847607194182051057461562662629605479272244443013970963109741950107044620428178767469467132700189165676060070883176152485349136379345452422779283516497316611271800646583982472435388426021360456669053014242137156777837383254659547034272814723683198861993547878048932112167679997615714824297748888373423893493314105901772603361587716910032125078407765604207283583204812063128556673903046373589883746130059426480842344013908448621508092288770738216032960427935563196845637903469796432328152818730132159028188473443761986898652853128006586215683954936424619023753919414804931372407814042015391951460646655438499210920505446783932162983231366914419486447882219965005060829515819240777851616893770464379809223005456636658467069906252683723026442222581422374960774122611342533544649618019064746076900083337734944528391469493560166032701519101609295267158911395193744451424413230888676554906651533991049543901882126508109966215306295059235885719884588628624914198331347528155818533576826189976737907384715408296036022862856297568912914300538938173784204078638242840261170382668076838731708263091473785402287873337093100314921410515890321639948557600122597435397764299051972286416958513040044517869195358635908706334325080948270460894776809057955840416775477881452655693692402122672538477086788718695815944830634311519504648398729761869405788877197323492280588514321729889578845604952567003713263724064116875901535076314227061351239629012428031898791141481420945205607686683325546661413707728981327368256599798196005325365729259580337864379598139009800875773892317892495747186197353787806679135759679750989024425813337738804793093324591127806796204496797632592463118256321634017914572991883654070442650951711141654402303049216155452239889330196208399946867911059272161535426811043879783152771861188566502361536212740419602592116130250232315276575583273456031745000009078232790298640451521034126639708013244001493292088110930356791525371826151717526083590004104317456857979963669116516542569088776219985582895042078780262307469973385279517790921135417676124788852984626814969699936883956735578512190429581016316343971712845984257408036426096817918781165419600432457082871714640673320839916917168546627747374031226789660570880680922888704923952651464197440124220840203579719897367185234368928594536008855392978548163345061366773474012562234720698560612094507889163662191007755257704836955282885569526475887295208603001873414749770465178830922594910077761763844072932920533497075575811043252124464633364808543345754570400022827895131454497102728900955186346517764377612106881423805796424391702285796882617899777977619487003380727592241732850298445907135431243412778601758718394002153842399856706113574110683896173343742487426556327246138834999253531292694506784905260513489306610562697637265415917552774449046408065340995621228551304916992176938931938199513402754475578532139343982248456950997714702911967334050648850958755965340107029900589654954784559959197853670715093215982131703273486362054658276038745487384554024012876032859134505274719743029014840192745187270402555795046253508132933913079554728265218834829774940674752845018675082731516728046922852911840911585441835667414030496195388940487434826406204966280860261367688215593204688874979354428957574702945342264947751000518006997590880941113458212235239313816303432659029029498214653216925698263917516929184205639381972837661767421405876121797970675079970422035527799698556614362987981336296979891165000141666608827835063839711415181609221838753224982966196994987790866699801698018473064630658973299196455983565529318707914085258489807921874093183654038141713807147834633018554956732576105767607556373254724633137772391992741935930722150691219111855938300023623068992851829502860713233475010333603220281405644279181775444127892256196916784695788765862800470762507281502489550501286529278853642651928805494795251535790275398008550871614241908068914760592705740714514612630553459213213327670835614055401531522416748638267545850467644450367608131352405414039986428126526791679203597512373655926893208982343535173805465194533690742036618991192745468635594654553935459877404772872158715865532214019588319343248425447616370278127439296733094128347691451832177168983198757117986897419973138809966803441869896836013506124482639676983853146096962991766264552173928185607265550157055406660482348378776793655732126957990590762137405278737637933019285825047094051055699683365236471678342574234385084516438554863464956256760028122510855097861991965814808372425903564203818910304103109560349329916859182791679881027611595756673203738397643107753262296264651623677539657028760619350719547136637094568415683346410196101230764988511291328333866237547915905419051235005560276925714216603610678910863035885701657887130408610159532201320013896072022130580752750196311916606007958884047212528534653594193716489486234255742345603564757951458589584693851337356457105508868466005127439263624754684070429731245549853638220878346858859611811361478309137734259566077524550553960943820658058427488754548920355014729403314416035868786549578251362280433601614429221477558851919918487668021311702729047362477391963006084845661926700708541703232553787219802165100050716169811085451025970411087616256477264836157598612142277159164490097592362333712434565884347240620036400850734142741194542589137285007247811931876912811418069041635077620740168502492325616019419845869403254048379812698180080145724635489682040804102777332853770971263747344985563833693785845081965455984734651579509581199871034634624945874903352672876779424032429942455059072062066393680244451248319347376168395443786826283195477419619404033180323960263318020878819838657117237645273117181262479990338805766935643844794220590157547905404843693559747455311241124763750909686046173130777030246114567884637769211224717502993270954179248424968465626654528917846262328156358523356195094336723452674011356568322646529175460690477404511064842418007175053594060505782628902115935107142967296253691696388202650148738570729215590271715514851163749241133941111857115708008818335902456099718091051294561668313468728134583998705719110254110413390776242432717738263290443794939593453370865021698793922085550833526157889682266637206686999230995654005474370791120375694860547568798532378393117555915618844029197323557843435855323438586648801181367680517671652851621397544910750762023807091186741091410727383603580739817235626404627765739092072404904209379719337788196720285191513674659465619221891484480537531779072818030814491643561242780799787816175305008646039165744568949251108584455541408076245319039196498504175137108913964601278564767673537191185794022256796850602511057611323972827830260002237696472345423499300514862204533743325553777179768777155063310484529645909687965766724106206155869862754365599475639340326752437564063704164720626082475866392946137439493229581235955364820216878479338166381802359409262187240587243683695580662866290720696606337015890543982779646592089803985734314156041067379956142038344649637653825404493268230853615806206274518594460652146005221224525545369199092354936495635013627401832029956949631339348387161250524512806491833022365126497039719177412284865167118185192080863447192547203225892290607248422955669715347237962106745872615285194312610045419272704063456295280192819264703337270475181456829198772714778725950667026152040381700061341097955440053094779890561687163489308107828086426943953522926363748425333152389122969500060517177675982023799266251018151428539463008634839560072463728938012324490499582596109550914834390105954657323760014469019077296653509656205833345350671279694026455575838380643360320241213184606050599368922566737066957683041649887196355473976253091119360221402074889485594630830277403401892744657664821328196701916727848112063812119983765487969433220801122244166254780791670508326137552411831387829881780861711110849312734008432264872317937302293935631525358340161642607783559138633714859415518124514339145760885077356313317298637189697373501889259820955043496441515920154587614593005359621696444257942422513549278252934016318699977832969314448570028378042622422891906745737721969134986849646632490934950276935262742428585402598528996423799926554711429016447396882764955711515388276767166261162329023783212208625087803837313651920170550431694679258441658789317868107438564165578775354751267861883144364083646655491938059385193942865488741636844249634319914458199158105099012887507190226713684916975282011352314065173506675266151764434767452579685377878646037611122517137122281727423571461002184934600787523328008376677287727530008422027142035569769762656891747081213474437515029961805156914258099127487927203958221053049115359679631318377332821880913321518564483632648645882751107564860077887189121606127810208403908704635124154042747888941084224802043452787654562009328018954560292116758734732826649425116024045505628198561744492275874312249065840074761961252633906325894466633321620684869655602332131060967635407728420599057928302600235268505708130650218940903280412045724559201745956144558061906963349040090508109926407593785626437772174185448510068700526037093952891240940605342803167273735154420227440088648016821597255121674580268364075264040656715672233697431113024129188294266223373007704348151038797403495656667067621538699653114923963434904512878546995244758041635667133575569694263950186879551488128889460800008296564375343832055659029409407970640484094683529453792575975435532267262104746383137468023738393416843128979742188881268233525906526461859070155561651761377338310331172310825224416970207120927286028261426683229998192438756415478630005836567295058478592618132740998833157404605799711795567680024448268506035887830584730653356542428088230336062265889013403425018497689355794864698558961370324070286475288530119355554231458518560917007355589012990378215314080934478874092317942695076843418793212114214251386378798532523118487321225537839213925842695290408793648863531020467969544258922937723327492760018213263089349263911104105427787384862698609982994657778490405388240965869969236527822645581597818997126348145935019725743312181466257804974108033036315086276758432946053460825476708817039268823357379407992858136471474046234100387803899265504501499195526032767402707272797351502835936999157044616566544857954320141179227131173399120029567598347628426389999510149029953376108690180733629156510059494147963625986722204415630106100586648709022578446333139460603253421002273563560368917008553326754626686282033280347238156669079397708010675258353976335281242861194455739692835760541914701957758390493427449903870710494924385163666055330821210184914053871018364435891380055632642927252767912727980414006339734325621727526768442449331579548453123794249882668754155157565523513535567826147832120568032556669095737353172288623474266460851337476577879225672390643575623351050108726277059072096906925603270263297307057917976956666555378936216280950470811687058561136558328711852399924183830473284225828663748649909250665243417294988423788624285006290621582247215738447979758433935519483123886292138537339938941117368355877549305948423809361543090752398242446819853881007984392619403628425275112564927244942504260739385251213814652695750839785362848658258826618700517850879990326327429696894253536387161558669958906837290001197376264592600554530352819752589448522694009202979767691885690237490606635211072948294674382090994291393035024154264664264688697501603084887390717377736771640540496030557655677333530841918111092684733465607147058294435844096716324603280532302444731284092267179319460148087646738549034593104867019705594848000898196396305909017698765707030446302173276981756008929411548107787529118960390410496947221732036219915972697496480554398094646601397183562787778545585314373098336718421157228980039751311635150537918367285880902065642883588282265683729885564250734048812802900946564210309580565737521460034643871346483341473361532563097313972327220101546356018652902203763726985866258069132139913169230571153283010921562046446723391340269774055145906928793797846048473910375046629721981532904982357516814929408193231630090288681731580644527810351064361081167355612546960528782968638727420731168157527232657420260556953741081505469117906565940586052094032421829653932145800877195189211263564278325054451475515320869699295565164282072249299324011603295871450354857316579429067917369304999770139763452006077025202724307149540012797387697833444407784994464780214807257097731371124009785393462205427106043553198553473862866375422344490110402192574783869586790678120469998292617215521195322945941230265612871670537737906525336481187246916853776831582654183139535548616108600763129547046231835705532878015194136740754494593647486983706545659457328136072617269801979458371795784111119256474502729351711467682177195524831079112844924256616307709263368146734976117761513205162312942030795953985533714519215079868933694018524687087617610304053468928845690385441473814238568644332287954833905863247279624060826547663180259209315724783008445566556213708506094662633152911269560656627972764849233630237336791580552130634243277420718168316975373782358120877952736406514680564485031856217142989426212908053948013831928666866825419314411783764375732565665882647252916447595839361438316252868969178130809594894772045768850224059265208281210361402945665102943350589199239454858647558069677726208472834351684797362704414941683375113505990472011850090589389335526788175642334265176908854929739654071359989963406783830274853198585789962826270406030642739334409482051348561233176146715115470825089155858920161982116583256417999680439924399495730164426792686074350952771131668885856944992828845359856405937787933753656307631330576930040825534897752551523959069321223854128959791401480736285121315819007987065858537938314958158612867492062813865915705004508004428224255016058175884856373421418564110100553292341527912764193943212851980405993409108372426738944515355037501047444628387572785156564504875241810718963470049697409504412507672763591036790174761927958794249925960656877337877273222901757539991834631934348828981941242073015731069797957959824132546793282351705216801308825495330602491404537802124134684544021104176734908254041095198203125768797307711644114063098699324988995085174574404554232882040557161032934041895488982307338837024939258592068206304272613496805648078541043352391762136813564488618113849594277187063491534074822844728286954106673929720259725325035566446778657417480516527724193378557240416011809047510157546899482919796834555109878979575053138193487739876003797998496215657335923895491198375446278697178195575923036215278465406988452736837127968613449561522624789375312091922477393270432631665834720712940510860789702061633584822342385072259262544300750092381127997984792696247628520111594278462736607987087288101166338980184148060712291100619439149456090857571616945790497679312877478819976199556829596865358424656360688105653696000861009101065922805939270526462863191376564571377914470333343448724272303535636282653458440414096588339542314714597131747165558109814856006590849913961775140599377545865813063755537102970487443748238124910120309292015646614690192751941588738044347793184775684723706114864628236005050178725574304065196677531992681656711200146397712584813066181369907672473579129235596405097910078446389329937577396480092126560247870358994285821803208585505533927250441743387174662249435324717040683335197800726866261372421342445629070076956026447698289275920311321447420278601175396140905187013948500472521227106548079291304002652423949274662690089362949053728903238449140653064594415495954606449240974235599637736719476972849492074725972369769407707936508158820024630589152011323705726427471652658885929093347838945696751320618299405924598577263389678839220946736517245711135367729219155760978194056218681941823712743496209116535486185919777371562318415150002440448052141895127529450691337093233919108142035633078828743693064094142428787972859149763383083617171001984377865893203792729582567749894460125138906834488691246491897957871858339533158303136948106754946421315885497739128824187765467911835978846785078337569757036099581541588959271419496507474901825487813820194102347315051325456629574604895679110061428992958909833256501306146675742605947585374381649061697702338132925146714772453161218251198813280774208178448197811461276601955862415192225968669143880115410157716040438431841610278607507546305673427618100070581933353392568114620485600648081665980901368383406089281177593163583869299611116590207765333722865637068549477012392531587727353567855314057914468174686968798800637721718200328297033246774172774282745851794416920965118173632333942202513093291633871897946110494223089518653158285495819697475941544629681145615505213305169925497189541653028421844730547554960409742122338261393101906572305558317126870024724965832708500705121565495498649392934471278713399528430816944044541062205478975109821934047185263147269836479469426557697737785704650206673949027381827959506856269088152939036592527330868313525217820605363771256364136686614493757937655567665147896219272769935592937532962080440776156723143018297793999475020916580233834998735837635164553598718321799319075007140561617733897896899978088565415179205069646981348289319846072854104785241759131762325333520045418918827334737439116436104399077688978129078614891635353716147573484512682937127455780826823182988336036235229830497265477534533035424011225321875623682020301268503070222781449212409515625296387822610850696800602055338958661379218256379122575981941240121303296931594088910870753058245724162311749618601706268006724276296912979829678384054407192218909628207778359490318616027767900731263541220994022178082859228048083097022327531514723337734729268573950580055462694508798185749198946667214730637404327126919195156142482473243081845720392707891493699647905905585792277015870201857666439135080895474152559250248437311880346715959908482001413389044447495725021576049865296036517667712935378822763068516635816080909279811407070155540482449523290109877631397001790969582056814307717151378162298936581166660453034206452182085287918530395529636755074108008230426106352856817290197692963303716693894820584522189398338870291130352282477330116607159990818956848262485328290102578769466252564879661136343692053264293788895684274056920208008407647694786973003247500166725835427914899376407665817870078790268546286659707171821175743271155242888715515648549278509296207841787730193640127778545645930236525849579682799076973191676542476792429318215441129896063911625987234199502637891719906925488314525421746152410059709062104684494470126089606934141118236012225741257632796992814214513684213346087740987831799717498883073359707340772403880391746773861495266784284250144856007899500307645136119074045396982269187079015917567272620189300657787885855100143623595570544128455007708043131524541966181485689585014164963969379442958229046900134687142806914767621819484856936028323713689616584101759458288446226904378411015031356652918758560752084872983481111930516463378192550174253765502636418261109411432437119536717914930406267756303241780607238972012888273317100368593937819034921534845975481446345821795387123983336814846881337533503700685165327439326687730503239764153254849332529179422502153696610315910756972908485037036076371518162646883030577915996777330193384806936674278374506646872395316080872039423121400939912059346240488491091966675288806096938902801387158176304006816458748088743171703212275042963945588658510858823327128507252376836817628126404798174456100076429689772013040152878280505827989040621607073592517919373511821760890233552009096764813819572980923240611361552790034415773661938700197113932517210114157208858553589796971130835922177297917428413668424020188755025907958507715202309732183455647394446042724992543597405885221127046822762721740336060967288969929078259932837404910698364152730496823071777021319655323198629993901524057663505897067751584405279150627391078098524844258824821188697114143355243734859859126851758117816035539353003439816305626379533309202371247352871039913639984743356425286550030805998546203470228276617663656929417330975143271867666164332917482949688187106483747304777745242784702259497889099410943229558707579034601046532958452138524006503498332165145206025012577547083476293802578500563932589074965961348349165261041889943510881608783311164317663967875597222186453481804327802884108048938766676038151114429673879229095899576485567933103934628692230912531271108375581282524072546896057134175607642548642730116499213244531278678834309797029021500689563142578082772696004991770672061970965915090101809288432677391498824379312193415054614923233426212551585409002237395125533570718438977030801393348723566784799700320278428445430539120262095959859256419026512348481919222701503588205110679488920575627434737226289704064420566844068093886542905084526619752623825761333963623256716828580351007675561171848232019522808546273841118493636119779571450018780873837956571022303280772001203362635515822118361952826170279618323948660538944375093136839725590352921712309779179040625731571407345348554624988352160695488524134901633178638706027561342812414610316211770649926406618269959074828738692065079113193592971743711860234838487676805116297388785190267232272708220828117465985529964479898326917685200932836695266716455335284421865574115526961720095793258781639759964644752451626532231932978647027214822600395911816297468929990607502026165241914144401941433016920097403407464988890580815078946382724301480759035059445216753352557862135706606023192747464711010035833692777417665780122788541150908969188810128192567108793894044887015266856657704224146580788397056125389343252003752041544619400620953531563860102302210401020475454073618942312598370353507434252819319604303070629726005572451517405021443961479697839879778197442795832508313199672562790566704266095316594649614802235367686324414280534239689769842029219024324465346587313109948897970761037114098439620285690478007396528307336664562071962461249752215623600749255414735507925618665710832142482292554748950430610781766395043182247148765862310018455770722183469610010325114035571102197756137730856065225964150116577249187622704152905402215901239341725279289234888267669252822476385205254027614933781722595373502414063314475965724673536960065398686996850103329680919412993929953729273678746321954261359787585277989934037011479429953749645822107224241350725612528109414934862605295659500972377379587624207819426981315576010831792354313259793929250391654777081417194462856861621940256132582238210226909430137745293308315197185962024780697994553558981670594383846548438398849564633878965939968145252571259190231301626532305063481910634154643441990867121158779824938020055142504969590593094610673490497369318462840638473237687435714952336148154431724987085687654754119501046159108601645225938711079126323898351308123360395406172695558698219747559195142418475942296269369080174253109759020886015782923719658478844670457692762174868126887409202546430071342616453854133081443705116554569404717483585768291667347296196075161256080408314069457301736756916139339951052488238737992187370688385159071619693278377738874022530103361069966080111937768278398689585750388233721217585731284089946136302250926062384078632834102491114359642578081687095040817508708717154877825048609941929188483996226193520208478522656769201637273779850574100801763931519898367025995534240334672251184182596020677668669123774490981044451795423853808408612687329882667165406831247606993074742848280547067419722191720858872441497191739577129994374323428345562706944069317130092112049253566614812933623630882625961497358703660261097368029658527129455028316363393458377305715434796841360155704992259315040665828186531611672005959118675625660301689699172847601731520971058661389124237261260778051481868823146721571958700540482535031617138451578927932391392542508470048831787428097502819090977231096699303178208241356953774663573272610910806506767318431584225859412463325234559737864539858296866436256845478384452833811354823595819287384998363425557075446081777930817258755239075364158027478274646631271917527537829191134395902752632398334039041762424063924666159037348181400770496695002463772597701139574713550846007791482518683647184703499973871449468937656213792467955486064062391474423323695318838346298164714323641084203413408014970677915807568235982695523065183795190820798535403846941362801329311104969466842849253150099378196089544663804094237918080712042785951723861710555673458464526881137369500595676445408952162069089843548381220306951936894219511983733277296181922872595093356885666029865548913054285389368506520451428571263818692516374225247611309477341599402031104078893572873833147035578511167935297935500776250010909318107136457170245737361625624716470537306007144365370012327650759307335987408665473787266832083363606516552049342605956906698938750822362422806619134478954202643960690277324613000074772972051364121862402048727343039122816283177016861176365073963081679026284540699499674286793336527787929003345745743574317356838008685012994059464804438757134894012005974691946371465545535716799505159654586300183157369575604779053238809607321162452850305598586678330840603345566902066828658753496546805027264839902816404802596442231694159053036188663580142595844069725650221880144201225619921952136291969632344781712137603270800577948040729130895478654419144430991448038519712658956624354723746913165150526049963729478154684197544163692637438570867709712457347734053970934260839345544682317366888934954332987873754939360717947793071605062060200658403205975735801666517956785265911058878641671489912426153130449636865840037770185864913383616475670829565355479771956743371431964386713268822795614160939438891566336656850409158621497046961506858843370060255193308511959534883398989986539001699711671095185949324139603223151542821399631480903291324225033859121709954626053851635158887445005940969666099286168752334965782457258428989401053901884554505435247372442918450886347026611423246964488179683883884998293035368445903368438197499395428312032573912198714849607632027675683366888817042733240180456181936963559941269908763947412893758541427086929615088503949713924309923589105620860692119808473535836741270158935134615808326424172237606585748066504749158707382134492853732279775257672463628146114733947199457579751468935035590615491614347895327712552170456929672305429892830547244615604707314550581646109129880269062606156255927977165678419407712925322734335377866087054641309174453797849152751487554692749915492925377405144959844254540935792363310349862328459969662275013051532339199757804486218669248443151889789833201371153451484748635717177823287645670463125342785143245887883386769271489650829431382982013105031498806489099226420847081303917118992535361608636845910906966482746192010876952036631722377671301921089540240730540871928272336584294120249483516431950423497507386192868798651591520573126774678842104323067086591646391644213891558750398276348918163268298228438919484402672362363134293221776786784442709593205004267966604636405399785008208439789872666171786347835857671690625427404984013861887566677744251665991072553181922679322552124236058277012428617817861537033385140426508707575639313705673802355861300373259619199817491472886481006935742248030702120175137950962085457501856719726269159293865427849395207714756815717785970919740020260606457903860901772191997398495301614096285824057803480502650508389338915832306577569245860662400743376714773211939579132685770734523588652670826771369117236446185160161054562587581549951539573514702708958511433905199914025795684517807994469827045189162889499192117959998583483395625867855723073298618393449249247651520247321097209654640028578518802293239006234614809826449314472846539874779599926050537541328863754521653921895782329816409830299375671026240194387340625038539978382768569279354947928844443219005388887353288734152540653388898705514307003968982416379362438406833245434163863852142016820244790255949955505484167715038221662117417487417129243110772774063096943811793578658517912893263794504639109273251717558409524295112739938189061519822606220998783555846562882147476089515510265069166099304367505000386012819592784514762310884014502938638387328788237323111321841499668634589633634885384865343488908405681479422931142768343832519724104488861569971487409684719663848898501094591845705600118036525100274371056022613718467871413725709821677270464660614848563528847190160290564126006052223194583677009702221938913904489252902992348748986091932673261799279960331965214846682906307113402806070559740294676705546278418392350329087993793089927811375873916377258903626499339170631872301479095054157665863452329332357595748534000158120117269588817417937023202349108984483335288970469741718800205595337249353850275884156589068715415260876863348658393301554413589274834622944874240152667120277752916115638720009767689177832586332921199002446765290718426186285669996046105212482017317469272038957541905270360319458967783617521294259404213148429282650474185913030974231342733082945892550092213160883988263751455158246588842779584523463285591928967590932482216203230421697669538119499526290043231523822220545398229307955281911335320941296974084108600308487333769736801662031353088355255605775207125669002950676096975358923951052641118692728713532463219593213905595620788975624472703222233658370993890365102929789437062112576556463522134410925994990708657132892882708040484494343315455917588896194247116685421177789817206190534079106962704865194204169827223404826439770653043059146091457352552383424676964576852247453114601787810010433152276166553188817952190300263104975934200179911698245095756180362865148518331615280402357613352001008549700876440961829863324897095541362467300178897474135103546550441083889439961058876265795253597176412322824611268690529492905869201932377092344272473559860973287080727712384270769598545957485755524212453947756170151345581063106488704346834923039452316833993477152709297419694795871322682157047512147216930362656095983688299254905056927202511055385701054143313856358322340117806343939670724146550058669630532723961515902478612546253821210350992550361597174211651147063850955874363086808375218386214926723352162922784613158316438051131079722603304126324204194648404133621203216019537721867288853265145781199053653376033877079574366545900542953468891356676586701427962897508812980876942237643332304347091468695337070111771113615094159585198544653809508740857931415765911612811345118867934543648804117875998937306644685317751906427027031798213650902603842103336132853587563067316735560269243229974645053962283204347783221646296034446561267509610123810955113889607031691685092608495721042166232640243674321172742046667587657657978758789581402221870206247962135541999367212522302473358856617088102862953715749196383848141929127649728195869096142174253183808917936081094846752900072327904036097227631910432928328047816611126172147187282850174925633767162780306521071177284788866649562319285445947120169233073521578836384005188121042636543594164712451516803863080849468251443376273582459943811734597557235381899503602711072718286584416698938151807719398060050192030457429483165126275763980451526582864179501176120502428052599162664968663919471208149196335785502372882403476084933810856559778731629530199262713677635247140382982318972719373719782625918339265188707965178258239708802059319989125513436532706463239025370329039321519764061098823983835770400109561616479777502980642785431045031014284493480615361837168166917963557112434379692288955891435168775443586869757801487782020863073079878958498943715908751246264497765836406931983070930841493354584613407216316097446935128225489613112758685032112619744253528762635815992397971955014257306222606295836650106301303194827721277480603009354303479537044694489428994008120167890548497965023961939560300480187639552442294782524599374409146504296710358203481491420092229097339749209179138353515941479360415463284171778950340437709613299820841142308490149023247821712968979282520690987210923669657568143263091014421248789490470736492145664683624632284345559005436872595420989716650801731990179225442982419542104852022737348649484134429664605219576992408044483965506636222527437206449409087980248612128289510272226971281162375956101409796345339014835212444610917701055390487650020916681952140808220410051100852778035818842134819901452207460744448880889699802243871694234434260617762676291520159306663303829197454712940922847299940506103076071207019841112444609928953350880793765503637012261500283207195925193011288258997506480494764692651585629922003678667634362551318007556585124353374383859237732103497079411717102586162154848754670800093395031541097282844386237070518319330030697240847440504766496616218949191165707804993158079404645695415003024309877806016374411789567869219958104274276472550194924614230517725095757268669256747598539927315466641200123833357914790406361452903108168983531607542161189429044925996944488512752143272593767600289311989227421840926161987069569099817001479587699057643446705075260669793717830551129363428268246536440021526965161932100715667791303547949799153049394132051113093519548040756858460776619724658973673422854300886609747564713113036223150744350768406149260872302900384196731413298709359531209125107180351993887004346767680845434181736637705615265658416890181612080075428130781693614972169236464070988039216225154194540190133081891653245207888740772862150972208188677221826337860018124857677946628154838621738995547088686725366413931132851576146073917825389156934637115911964547404264092416750468412681223193979902402853950299347779271643555538939258234987107695825249678063561701158663507831550920666541765911310712022683427242396934664002490325842049965047318622732749902425381580395130463464694257174122162052472505018197832881282371020399200208567587749797853967706835724907572579139879427309305297303861725458707752721318072425972864555043860444880754963723709834820067655342721646020063806491875785149354646535202189137385590510195232569819137355366224487515408370480233534713791560825910129141611494020945770551901442352574006755941619855644393041610594391330157091568747648527858223454168873230300980900472834120861619601256995316012945495037818614434238840940110862640381553112214649602526034021974087530909581099546860957900575290688428881696831591953372646186455229288522945470409954256989066093578364930940065350175998975947809031093087419929788038759733717692670881564753387489499363175182227237172433249686651832297879020300550744626993856000673294335019792120438513299627258044674183897445943284814057686017275209520573569050272043036148620972420996416056899776711812732579920476885111655945176521811186229373647729233998959911608635645210867321596610923689401023910871730140874167932698574363172715193550618610628947677001275712109287385169828240285120614900915649642563040909244103643183635012485058963994303695126932787483770439001204729075529912100727369641487208592033429429317899786271572072475301714397389716795511605865396742854268952600537952129204170870997171681774053890886712172471059102913742418422585943925718423687024651271003199833943678792909876387808490834791853997866006825308296942800405139572042609875800688507998190798443795851192215544775805401084118360842460047345902043549267458891286918141436872850325783525360477592594137872781383204615539742157014015131596725421676465946422418183508867805134715770000737826757705185538668593975302684110351130250242757061739247346314040351017780564131795197390919864430029703558684547215610167771547012589197382168118332063782459755263151656051862351199081567925810746700546217031266405963738580907747791607869520088778546033840851788439768088964817982345135609011565083047561853907321466743147471023092196917735859425587521770809297844464078267416451003334847976011575554668864655519393282087792846740840242120391388098866508484293637210481654766339535264906992554688912700730704201224399431163011761155071787407004635272904536857565712084508103379087172964932148998637942287994514914168199122142955947595692247727552628404520167970609587531411540263718494568938516409030431252067608251626600687748810350471032309972861497561363102798995625452061952243007080898992476889276083759198825174653774591392065152370339256493192755425695013746027581596623591673180354448300155584293518834424802528617303381763618127907573387692066127311193859594500618136755451515022717641605815706040280301360136773781257224114104360690095217405172089378456232831492679199890834233580740071333072402444699361848833243479907882840413043834403375682471050218073910814329612558492822654209003427158128173294436092607979523267343039605558483431085377356761640839470213689563516499744650897145898795067515691897007698684694906067127394045333584305146849113119850296334857495331826609426519593029972572836729520402384245268756160875764366189185454832555671350217272208041612981397689567687389629919425204105939588253092561798152251348092056899354837601061116840707720001815054242223438624201179355404654481526387556964323448658815002014519815512741033230141802483855318823837931693369508382161316951955289331714627020503170570468620287841163560113005803062730967782918721710477843698864588063084138402617649628620412622759040603565035402500440285147251906807430091538158608098046799923311192817585964763465852869753775428389790403710054432260970328443376938394438468647113898755786956435601774814014008307252025754699911169588279240924226949399820593756216369195497991694958863587661893435871837275562902813903926445631168104687254813547501833275669624303242650336437188328235888479903463370765846305751085591709996714073254590464309862740015698815944057245798029028750183282770536110648117703522019569979620367520239219702399493427891044572052808393040904052630012752930868687044491943606584486169660309592272937050205140546376910175942442405807135792817493536641631302222329884471289935801250372637795408166354685219287885760788221581996349395049032943626884257397066424470446657913172259576840943442319408863898027433932702886620833131237326619899936245078939590861646401360231125409359211958733076585774448001053085644067675211941224865103995620908687190196658402610613256974166156127699740781251117041807442514882097628488667231016387031049757004681348260919424388465382970538144308674324302201520485271634541933032571921765790933472070301220708822015365600361914316789313833197288225408211139143754854599825771904651434602133630153823562703618346290030543386691312020671234911523243533936444590817244387230039997609368145991570891245838901562867779027696800407857071692615358287885259841218406687138148764612036609727639360750546390565398090691804192438451200389234255176801817359170731222680654447670771339542426942639081804089622639905402079756830493079163117554784536296948088742727915864296423899474228426820142941794082891276140319722661319458716041825837181764276799444880563496465150267761305514864822688791697510351890433896920552778738947259032259403001642204568128035103950877445266312798885180097181034041311045619760085832057091448004976429014864126615679126473088770456732629270516097806573429371493620474143975434384233016379235992863516444698711949990329913068651836659813972697091449607080986049077615178099260569194831123004253556643807238027935649901491308052465565651050026787434173180012682487525390745471041015465832343633833504894635082254510894863107965213461006415025331140054747519200285168553251246813173321210706698210400803486312958302487641617505692876847334692063458141411635696744340795171211914494376178376061239735183791687227549619567539865558204366683663630729243946882093490191055334854921209812279051732571224420345547696904006176475250237863008624410668533144006875311840924045846974687026443511057671643996904744657515516936691041574678031184448691702184155732897899995664481180732542268315278642993398195377246465992088541500565064684357661455082095203440408749536399053422703612134477089358679736731521287495656130523904383948091163806772949238137640738892470830008237631666966937322887942408256270178437163186312541215837781200971774040593716658350025579523378781024983059524309680554260656160223298518243851119523214193320632001527784876057172386471562615867187882293533949539697243379830236156532632807277024254613317753174188094219592299819371779096509474760527679861814300502740106766357682559730972490886183595456288128151866637320427725468007434581473490601849615846733179720241383372287967874282598985434078172010398016364918162346753232145105648428860249246579428739827784480825671526667420292412142313342249814857941350573429481536893817196011612567467409702205076629771621995295717111081800630286322143228833228336024050891979242872766999421787132627448543343796800231657699593932518780807807204252930052095312843647824800424439967911063441980890236765535538932275486445930864595519479385203106506618058203679507429321204797687620827878076380484125787513419455964448614859149855742193098266728967359170952680052511733403721726784063845640093714922220064072591612031953946489579758333448700737325119304670424991366413508878304890525232397495224811957995720044531639862190491451075587454791385981382435466611460914120024458015308715882586236689986957288119841851844889652967873852974962214853683516919446524571276411031162867719612347820927867789792779306171432226490303043488201149835984449994609103023776985868099615756529138938065097136386536028572021728039859589135715865694314899698204358065553616136149210119663933910803664799580184790324873501142565469922673081400365933969693624955572498264544060919331684489831686313446985463255228645362803464120892434336700889007537374847409771255525291145636108584469064668672976913313756354079549696855029408346803707196857615149521210922331259897391559213716983213535476261099233170654750136434044799149681417776277718953458437187111821045831993548055554172757786332069207709967182546288430774079894723518551704879652720455650191375322877113577862817199205187884115394122686988837465195496647150625896938065472358802992986309112217896067839281349460770900369975797984867554039578068333448164849125868763267245513053917096605512645910552111167040277952411510682267526662602460629334008290673868893605400630350175251846622471261626889550237156275386335615051482203711738377854920559456859074804004212181926757369023991251735255622649247402227116825089711276513628709005008718821874802617355962293204754329265081778737036888016122798173856593844932706270420417918193330708538348433489491492218907762364903357671991877265084694009391173730591677643182217889817695578607092764670004917785539521271878486661055888377320578011317623239297594686186501695365917637760672899457728824628498655908653550073806410887087426619412114705540016000259404772101897314883486211528792771261826963130130435132467529767929715893907112779768103951562223848236354459119077880331094531028372884905761468212140458777365037892026524738540610618100016477180440196540319223846715124712568657041275270929069897156455598519814336922208337076152175924909447530367420337991227399782915083449538461219080213962602214226860875745006565777297343093702609265334635692743315177024010994449922410256633101156772935417643022962033790360797726575815395785597341152379558364611234316710063667963337177548523314957262412428934663890710535813071260793849663960698731663952377156577905611734829913508145611455862436896268578273721864592451393330870299082774004704670517446444353314497346472930209129110480380590270853609102738833385925506236559307414785255026236675968704568481682818697486515519035918995364580643785257628892870312860605348239971244804899179699952284656929595645467467967360439560392226959539829793928805679607557645505085067709356159436231622383954921537483862388354210761085934713206465336779353816265221026842836034092186185848900432605071306772740017595302266671447632647531401131742514258543137412856009130343069033479861776750047715759234105564025939825284636054290198891152903855162704483196450140846033724623962380816876419703645839265765287479344595296060659650539075044159893401524491135853453502657105092832213460850587401044513316570645523729845607358853719706787344345719760542440459770657001991412948271459521832968379865529140825674129733789525501004489244381708618029257850750952434342999689328970580914591236377986440086052554936694461794793933964658335637660547732524781437750196522794181610087657915435882976891515090332606354393732744432146325234258331100751225186078824873810391074531360051923318870873123889724299437926215431025547012144583300512415426245236644159312902214886527640795143854242316562431453015585032271742719726497301147786733383412281601576882387694838559052661007319165033535897223110557675574466879761413218440152243994268531590644994677459035575684917637126348007852043770247566785953822974401622083637727469982934349302641879049565309832033114178552489058167593976159302026258112083267160862290487098913473498679021550056577594972885432541246919251422594832811487000352711020132731501508233022468250525234522735333184663328438573065624007640958479828324892973584189086809686255783679340736559769916098312544131242834535289965329051269090544123223074345925155358253547086798666052013310105410029706530759904891679081209445977088582704382718567937330602548694287800127319390423870241812174561198134927439418544307973340497527291874564719400193374775388165570756316348482628275192979520898892651980830295551576996288105669464397817412215879073723287090245562671460288613903120108906944416421353485461790195433033637479290523634387617987686245349165178714400971464091738127565974055221472160954067414077278459274871233919093024566445728559341664698698049088878352864437780751551609665812083955657267396004962218090837360590133694891471348235612889813403050042905529218758251418171920610259288958337977972037734481996936324411690298123206514722214218353343927834782645994470664938951123596784503321222813837215415966207946766827348110526295459366626735244706224891790319408173727509117957031235222860510561945443422789969063684385547366238685821714025435138138362629197993987719208606610869663276720480114339853938781862932050348174628753728856375781034062835444374788251316239626745359803398320207334898612879861082340824948903786093097912743347367062589464333431406779240361955119932529824741873230623558349324838518344698709990679063318480691879677137675018632895056225251434255752310948771239262078461234790579993259594622511961591400068456932966535438707104940763124161126896556307875921097115190858557905976669665606476588401779103207400138842135120062912807279252496856208371012798470255376300196499154820141987586343732345251153203108099724484132366625471647489932997470051689799691175679240525286351498751430560180958912255951342997814479406720623546435558034306425981291703322284012768426975811155679902114047145904419129797604676385162353544289196882552338532400246809159438632000355387613941836434604288476578547977964499007030150716998480568070032293833622092546157184053917218580789853865844407619194802227866966678111217130414917020611215361352117959509841796860126041306265402327432772470656113971043705180743574561925958011653775521948436707374428032276541836970234021918811207144984908764119610223096315283491368636424686188282136881031447658096607471900014564415382974411635684263075171731238708816185722710212961488855343053567260524727708367786322938688055351458021530072260193575798085023810032517480714247275781540302505955258807433045141984567348400168353053930226229142438047488602800297708061263624281783288328968844864325398470257853966371479775736137302601485302633893994625433107415792186534113551057238262822330482966133261937993670247936970657838014463829424183175184488023237103619138402732230573124456126742280982451192120498802884092019860528703507861458507630541052653541886617301323882535895021570378388110421130226130953645322940402089151754080766668613925544533669722667751857015324490177123237289333477743288986288779033155935373254586372990091483072825187495551338228058723952439619873724043411453991159232104645520491661438170609252883860556665696046613562107475486699129546797791961388512974211091550521015317851503328292798153009100037154065260278692456568595582725640125565477889241002317602269397582025681447464524077915160225781205943281654143724552243891320129565757067175368011531838171117868915781207062378550666803079523224458458014486333819684004412965469687404639946718103996321852124583718810531782778103520992145838307258686057932567577549810777903754422001784006336332881301995202345560582913554233686192123718605719739683547772220717351518850619755075208101066925363932874903521813584456883855160810718733542881629175739949043599491077139907294048861127421756455096969830866364582818912314528876173185578361814303988484203247001928798853312325635032600434562055087868569546980686206387410914398522960055086045945020370881199841270515415095787803738797686332614279734090025588236676752900309777770039763768209029541619508315451885355590041083732181231829697815725374535046118353780829363216801158762221761780801931488575449399259404669717089337520084500020271340025308771128807596206828203296555175296944515047378166335920440990134455769658454190395958829501412950560368926627036443961662373133323090182911487367532358700394202015070660417858812521703112246833356333473834122459376006671463153522124048173253425444060473540001258923571201574216512969926892810306421759160341242063546093855170895871399290836693481113452143515389723304124132914333178659482224160267024527082995801310295197942112542675740437665832900842031195466215194689551850211094296845967539374829087760852703742399217641856283066055413558732140190336876468227876950357771096550972162759691449582990376701437496549938471173598465611807395028164559383860951777045116217513908794457464041030929976767163446935194086878328344641905060455284377091518445449524136963685974810166755989242909415962828373194310227399491039676327423841158978347395100585343105263379321968067841635394147434736500960917293594435699175504202274341990258658576127346959685976556516620229560998169399538294363864691875283566237835797258965610774571957848981236580918304219403709604861668563635793954585977970311213781846827853815397219104880031987299678387666023605224673795588789953699186623113461865889223860012473879405204810419363899934362110977465551030094186201493599468883550162232885579023304885476093564361895093648176588601592085423496776981978659953168100516191010036246820678164162712838744574738011075327237221555994606082272613195336382858781460405822857255669377150978739222419633839821049379077398580983439276122092024386231966785114558152825935356754113279960268794319724572670045133073089433719446920353127431748386482067052395465834644358467893038867679972626601051774791602046842379044314910061202829126998075163280434100722712146801870832811430930528866138047605675916256873126093896313026780794049077292370800433921181955474835985823198989687271555108970990807430454100372494416279746681901592193824309027219109690177630150648248711094042284360014237432334150820152014255994262508063158320055878494757461139293999961694874919295660913688329713149456601997216964224611622595730757630803831229565293821482874571474990678755120664597391806625871694225537277311090901979340175589768046927601545128931034347792089005949882940282651735532079212298165683688566511110824634942358820330710209223503875635029557421635126632417571214849899767514547350699468476660624942894463195500566491890552023332632495177304817068924878028914468681706327307784126560215020882279366920580015323904123456316951274970625945494751721763745219020466262201683316526708300661909634040596461314220139564041555248080967740831462276683694780300419069073331727736519241083391623827466643687813410371349686908953393339686205843591630240258618389824357732455844675161255507490623610031463941193278293342408850567786879279523731680006021043042516076110957454862428940429152185100109941771690382431642026087921830176426386259660877245051474805518362957646675349062822824956942069962027258055510455031106744424161321727802381489482407610748518027289345687518274895174969223452523357020067502428414096913911507891571377023740314406426887702616704699881374599009381606444120313057895010897161409568898355850923578545204034350575290991824631700470941390011199617452873029125069726330850071998691540305676022390616307875587776824385977758592273276969523496218182207921289932738329208859682735984829886944953560497680112459464830479668547718704119829418671993068902615318657228608704319586837727133934776679946843661768700814743612404906726141506484444873461969247360815948802379150088891754998854132367193715343035626332809970384550500918442498653455922459337467181504521946019725373875299779692102384589167643847347888809106229074572101989411540803920217088672348780615990334480685817524630454498822797342106063451718096673178681628904292166412724132231589254218735741419834386755028648076934726456062417557106024432942386575392436140691055956515979570673518172270178214192808528984336303191024395918876074373099444144089632728822565245644646046204918028116872662278062780217305803844729856467485119372525771241808912036607421934872527203781499645313462371088755676430074870527098976581276004303533057477499428253151523355772782218408970075882206217659034306671941051393921318804131553644333423026955312478320780485018863991748599092337249648360924284291818484358146071530292650961612000031574056689781883330340214590342563086161244382764021613774700497599498563224779829386043034943388127929051692705521532749548776538207366460817684966021656445603218812993542223121496567319925680805056249969874820550940346819738818098374682135494145887038545577214868079897142866487381374974379744036983217745511233632516693205714103822908103937794189667926224612111812646752644396972999104460726030198377026586813272447426365302292395039433209490136158006599178368336157583551750155779689673943785347086079797553351383781436808930746768524650523856509316382626819249211231946854493808280992738413800790540826036044601052571906830772845334566093014458710149604567136964141184340084236981743208531121649520671351832607230428787482154754012716689050786865421255239517430080263724145750203573497185526232746440414505254494422309678809032323254201295935346964592337187382125437368853091254735740299867883772034039993286698489235390030075388525764848748927925711395846878578142121595327002281456901463175114833947383320871623792021676107658769905121690340177683470442887197453837168441037617529510939767487577747688959141904202154381967449075507874781088160245573860395645211318668643143486195685420655729913067801034103662312538523297039781738514513259549829493373083312536392826159180989672819368809221290835765043809674952368986560053808385259551702344825540001118291353787104639420687381603598495538356266916360478309662489650542296257777231759114336393320717509072169879576559577237912648040412460855246571106575655905805565848556944681040640750250825616977900352953714099490415322355303496881291160592833043244094058557387165814917733660582808712650813385136686693718036947213038646094638012254552933860020271290620953865416593829292319932928979302885471806167242496686847498195346086527154568826653314206188172389677825439769167775389721190216786087869792748041441206198376894662896047031105057577743553720191136849600404620338894714451293656978250643513010263694623316915092605960051120560307363716123296620735629209521170595092275183601909925434608482459922291969992128445512112687213430330386335069129489003675533639603347603600348360126364780666604659560570723297705881971027125215566274503816486578862341693666484377060878805138550605638383781752184526097155507643869097469534569719027914655480167723188085348931814586395539442095536448203014856045429350298527975531460530616608406090087810575694578525145875838200682090335958004797220427606447559320696054496993808676831236799021386829276279230757873881089409652855216086326642236217110510751113570499682892142037195676316759910821501609934052289503286843779503549850423255887980374374799789259305660629479921277067826961075707030089593061883348144142350316027028488062355263766755788908364759635879375226678122414376345125301309040179206513507883581101332341290763780639275208205834076781789058537707584868541510303326585833343146692195904236491860632057807883767505026266635162149918847291159139107370853641751548757182452205454166180685646027177935910206761529881870831584590851096398710358737336787507813018652674049197437244933611187290319557051262965154647483569004137795006848317185397699056640008015998534317461064196972841276186347768632255189984432115494205213557906065977733513226240013105242273276745258045161435114380083175421186940919685104241657627784515457638596860658562171021819354420374322405703462200170263070647451975919671203103457185994785169268179392455013741699796733568834261821145924271454794550068601492068035702714265745791925457132926327577030572789076409387278380495870092983585709566959635412047942600974046819969323948872609587139312950978019549427068514027347617721432545177811251728221847546748532461120166703861512890570000654472405032838947315465784113551463393184330405095739569503649896885380192934614426286018561115033096438685828564976113583066788525204038539103206951846858659127547125967628547544597858203314128931919704229200506402780182845605092734867416736655896066797092116916355232554222869694986869591130970236080377334486492101243094436458861543104921082770675637563445263201649679411794797025921653019003146012413281611755647365674525348936935506249478461096239873873308598925585042541114710461297895786045772619028449279899662301704781125980990178223141253707406462818212428248583656992171652196849919247043038877251133854216390963677622878200317077645716243327573274713082735249715203733584777841979483353515178568038456667367753543607879341596446777219929173827808693249217251822131605504219407168904448542481461553223559142581656185432854083502222904285561310330481263579634005394795661227973104560834324819152354815579048361704977771424706098092324162661921156432270993954474515795402554365042761058202630630687528393614004939056553847870460824875706611217144263622459056974230034614713039567507040655546801853889337257956702869972739120584397135332941074532791724184432104488456120613134860179417125265221515610937001386846984279222643147391694847025336523036751661067850836108626645949563573626369719332111616084983931047701744530594630095418616694159421003570752724609449369655312409885517479943285587265458994862966548499582058986229636459315191260016329164301571681002732822380473100396697584265945473181302285914716806013339613686826923486499701312407003060228612156803697737356993002525802488798159521093653362529931990301870334028041723873542671560720803751858340741276874277373771689172709379903733743663271374311012853865577611045684347938949336307663491188273302495508234000548947536864032521009998327445014953158435368952676687098431124522176320631472201133081874899630780696901744585933861884762713504883158956892851595895625085105868387432678269671846042692843851440624844048450525639310990078211187500236155157608448647959334497653402106115421531113827941499763251098881057598382390543778786977624614639744494348387185646193069123247091992973269811939456727323033191647742914779253976020793190456798024540730239549327157106782623590536048327580052687575911673797535614397841646106917876723433213642336935367250510883629745084700518127480165859503099077871537089711903615234206746240903134987261190119982483959596669345038500444680104820474277493368057882343389459587069662085463423835594809001281731451483877210206707305328189239691870881550288056448330007638730668487803363983011755531544182274746860937324780229316192856553739246032951231896292999924723975394214532392354782299515033195962400438536195799707709851583303144288508416058698802279773144792067821885365065925203432481133470956783475537418700573153044309188798168550955389230798748237666553421391213228856187371890475807515914382525856635594386040309547339435720734996156871212800234159053586542633670021487291061337043542627623975988825791405500095529334360774613761518588032354351160165039924961357850271803903106511089896000789719256924939337526358402185925751496088953627129028528057502741168354481301395707037261373656249045808663994922085595591997419527932678964044563905027340047901719453189966383880905226105639133062309209873047673503288866160518070294224062663009238730064531502213622293343781015830060530014083022274673533724118371011910194124987148424501216614608471590686218530436897166126725595063023568193224042174571418713225601753532239555644559601753575390043469789449940872331778189589361604711616435951724473409917328022705155304024628660524001486842103906902401460808127696456507330429069116574024008625439767876304209948216582543998472019869104380447102233371618549330512570152723228110803163608344400258424383477689203347833018889308022503313621561567613898893789498404708937052086511464158758255100088877102718438930039688171849979514255346258486632856062735822141381842164649687530523241156347080047779625114881243776869529168119175436612481057205115082049943952051111471596283596657999161508119702544761421674951312539107358679118277018036388478465342742988412325189554486419613045291704374730799418725023228751645043012478086928526817226131200445427598464213589167045966261352166315179732362910478696813327431743489433676535265031483821603677139286932133564690798122911515832393370677321424869523878826947049261830507484965262934962933839538700072569740898576881298452540738811733648568121060784256802336452677264515896227037360708234751300514823083022938789121651358079072051111076739919427347733829819113824421806861802492435357670574389297509284002897657778982213220703943048037970069789729246299662550317699975720915534716135923679656606626702393389654755054763891722144679658203057965444027059831649011736495670419800893501393328676132413913181016999438700354585939560399716084450780073758314850190456775439267696786244653281126601584286925725899827209154458791554020067503552654536413113289497082011739213152412834593691554636762342651860155586244736120462946360111424079640793411101230838780359761010769270776680864803796691541928000085847626071471054141122375352711548123264367370812729886605474113032066305974768551936822064787860065616985666276455818433878903789966131999130941606513706110479412596295188045650896629462950838233539621743420929860527623214404890410063439906209659339493606924155336184797943096975955056779764273468151307112019377514407172362609439638633115183547504086362936176897314592746369201226334987976349532256000621816721410173988653020919280934661818859374855295329130627277719251398186858454377686843252022113866079074068316317904059396506405036297417170490788550379655561430773866439070431770044734632627915837104857329137977096339826499210813832967681949426052931736218673156363428372703427230036555197721185405523911370736425661385296720936423983058398546865292494468147626975546993364456824735102833612132973632555078081007131124609246627055211992459154151269052445300246404665932089718412673427774566126864882986915364380791584871067002761736251930838669683011574828370671010731062478571004051156849929031902421434214789340267093194511805643066290750892541673945324784210452868239835186231185430445673028907035700760321357296644754528416676743283794548123498881478524860698388984251369569332616660555991190097369011624988191743311783177845623357663190017959007015748479395082659069802669039052588036851403956153837598636940548701254596674745007948409374707113310242235619120555319046771657574263648367592704191164269242627055347345843282767513532517425377318496440878386112731318520378245130147924071683163578310887611061872519380505912106270715909096549545522526937075923500103218476023252178549096046901365522919236042854314550866418196723519720147768987364144070699637501604370765346877393568148460491396669297502580172179075822750614955184137295802309760416880541790260351960681792722748588765973245392887677821018282712631759571222914657852108049390315971184052022751325070108793378890584780475284876740264987047573191479374652041855779007247490034875288595315143441441673294917963229756429687303560605787198527314750215133768745871602887322779812200763152217255076829613809446425781261914277737246567590255103401394490799739763148572642351735201901600139607505770316101352954317121267771165003702563242326985157967938281045329737786024606658867796193605247660480550120006782222932080253337133712473941432452531083098348782392037689129888440467889976001081189469701088535342897994157244916392463774660713864704290915984767211800579791094230791807378390370492071053450689877385851885982095728334081073041709109143817990002290669929651524641796695825150264293699497900563142885283155278068604766738634877741008453352431041699618816063866973929123274915498426164329065930296587359824851566721704926422423247549681025507776079498616243533554629228395530459250214759756315829644818130083975715118056775055346150810194939081675514569948714415613799758835438502869397295211894617459248996588408268037002977472600028837660751945084865247916466345393563512100566024467512033210414720090625282327208323272939577968617551556153375619748593549837049043784283599948469097223958209766655853144326723836543113171571080509111959864079021917752307286213790020608747009999212046658803570777353729339079636438846130513122508349749222574020922975675749735337901228055107465316778268740791597981925944853998569551304436620593982255080548614711801946225456449814451837370545629594738118572667068205518779265015012897352479232307739921270551974360224873501846588170286330125432879202060771314330449658573406840209368589852222336755953609390723729563549660375861292121006115691004907720924739328915720572302531731409302471277965897780418568569552363194806986416327485760195549937650123647564490313779622297096378118678338126430623300126474035476936731690913978215153846864685599770161843574775153127178608309078850615653030135649229480415511858965686633650888751966541296676966575055618071129912849013447612456176173510398521128535548566325534297099422690545366405437045934673715339926159641198574681372058415396360372292305208896533717398922837278932611473377847787913633433146109405507773801943672051736335743005857285742061500222749388865462924841495370986051452999021141068082663161125334980102313331806413380197841909525907024079224239491811989177119525836832000164741586561981456472617573793301847031331466983874911475081166222837268243850403351230067198311449287338965951501521151775542280993526474150339527448657240356098527580876408497707924074142865376911817050747473858466902001225231555631144040522270301157344824751958771367613322851139341454917027647357102858802838300399706739262430886408011448034536078041559056128627203711308361623280190106782048488458907842198308656743072255410806622340043204660094104217135663655301528600002941005267785958323743947782343463235275863031867091072824521343261438139781095049740002968880638179263661576402666093360359210310051666315297097021166246257401668318678708531184576733356602163622452945588335244931546865606944045465985983953640674700928376737985130852205095540647195647352429104542408531630468439819477753454777685993538237875063516569395455050602579528775469113942857371163399777158735368809893945345295335743726992786244427525275350877404390116949675045649325522461218891645915721875776806014278072465553359727811162124679385043791173213958438349245202355344799191888787345965743269075106669660876601673413751840576720916863271140218218120137708894879568411499128207750046382194987993141365368090621419866262293010653668118310097525383485066151756561647994927544213840247798102186040705476869796116190137870791006334772552297764697912588921581291154555141834221021145071410703382269491095295768350673142338726087116558051894439307544518531068652967788609707851949271493129035958875752724362651545822692054377906247323886205156135789722269203019877447901269845861538301235083623401746579379123700996326350469467498981495151032582009249746913531502775823480332228728821993292133923828455108573900756937188387905325169072914942117930697865058958796237831866511790390638655778100608924859297798125543086432469280060879950330540321537303328833822524631747204311905909870272783021054169876230861029027440279529201979985278457597169968325156853037965797778890506267562985283630570446553251488983350985118517944783122821418218207763572292327712066732367421697326840740440061933465392504574766690152442130879295687056501367985963194624482325534368195834691158649886149384901459391956909937297116226491000329450144586566973586675703252385558475075106691148452949461805074716045871613112181400469844624593207553270629833581709301143801742926026300718598689338599647208537769026204001311007485585526371627984927940902714037101371702826117510131317358533268405575313188569718967988740597244885020730090503194335093446416691036624173785533097468134997318978533084172437457309238182353142430887490332705655050640114793270222357254201904358356863831456851026057449474930877338018603956048914356675710279789918236689226812317468828006254707508204109891130385506733737708872267084556871785633550229533854736027069942184832029024499367792791864711108041203790816812922291551087989829908650136235541503910121021331015887989679075222124623074244534123098521473486468092404064822074329712822670044596653622730536269235732502873214158729005166593249765516592411526591390598614771112828989199210823759897904317737536613803174368415387610006581160865395243246663246681545568967124856099629982009543162350833095175932343914723807992219893522222588434782442389804560397985576501658069677526770198868820479086356627878260161638212057320800433207151910872657014040215475930614110041288488909862445276276974776335624318443149679381804474042302482200695166238270579834141879644308995394708092289887718338135716382401190141461993283630974246346687042487236185697941355127543283537395791928207071149283143857527480445244964535669842068157850506734526795447481939608260307338516233753423853494386341830161216532442547853283875687167829099278930655093161753264573879736854904713735800441472292800616889806218724168883748134311580326428590369445349663623683115985793337023349467048014576118389825545975024686298250732677758580516636746311731568828888567645800452986892303371049682280619797503562956067869542020394774411993601026560980012532982963693319679288377083029433353614546222572551230793120595305216654213508727716631099860025002465178312261867062639953616922105098708352184274969782819982841692100003407278878734132378997193661310611731011887589300111174920695937164860641786739096594536747149662219956471909164141486593570314358382439041444509787046276741102756924023494655106694057639679197369140083203236624539366733842629574736571293523147002203015812628221852168164114830438080667223083742358749725171069933179193153736528177171196349075745680489610963793430716957379085468956650729423076576348489507884561622794008386940894167160470260868064450713289500433400478885467061437398696979100380080868376678179147407120229494827087587932306179710014106879971946685831953628106823188667352287352636303952448704314911981081999368972628612313081947464599693654618278001203436842166755659832252614731303058719388467316016650894351043660696970249525188280305971129942835582715427000158714663425805456432664991714976785554595180190673300526458423994641381174455166357221875372824377800989505053628501705756320944126416807834261197334394550203528752796037131751749762407006761245385699940971133173531057975081631594170777123288330052871872055807359753559260941815941067084172958795786850453407760980757510922965250920366850223134116638449044657676331094313664041617772848721166130169922676742774780905657956123428410408334365231183273220332310350794767686464292382609889880528483678590747992278468053682486396505420132760489471054584079233393639142101895753671375738666464612229853125932345241974794360831353102735870604541638299844093146805362272692077797453211716734239648120874357866872012998410242787306551508246713600860619624340989181950528750925175165923609466829543940396988158445367106277270866006860820024212658954875410502587840016114661991541136925542616290602083117281986242625700947545466822283722357807770233610181259432627606633157650652365798878827917254048748672678537011798332888217064048074629573799323446353759089510425737198105330610835324284709088107397336723059435036833583750447423822571362225325082446236141976547562863732586050666477691673800053087601048607790973959542116707393394966991409390306547253336669626148333101797554489061893475753887582368543569338634589530130851995385461206188595866457526030533438232415100180557046616635511257411805242132559723621087084690195237385139760421173635459199192736974363702591367830944469920689784923860712302773624463791027042027196817544352190255199731763953133294341409004170748657941204430921144793125473717621453434220032384505380724152259456955857071673800307543710779577070289686389966867509644283169307569919408145951919576243445375651522973165897623759268280714437219186615460186256033847220739637331886513103609277650900078261666481842410395848234363909703472590471126379882370743423742702089347081415623929077651173384044327135749867496736555857231659475897262525448725478202192137050646075601229119550334118536067053938822265575862167589277491306211766923258233970079515047323404200410937740892855342013491407671618488867219726047659278466752988020120326498618567130707682514186154375543438568581056625813065515093204787638615765933563444686310689309339634540110050702646218453314043128753908243615288285184230208944617549728485816066481607276486169689914564079450422819290000837621681258842745168194367865424558369026331587913098709809321366831378869126719229667478870281017989506353100063703959166017044925884422289235765027979206682187956483201809188221732210903801793885204357190707442873988477513401675888869010124204170174068746870397826470727589621111273464710846353265229885530363337985207642930199155165757581290484513781339634510978415345536327789324233385089228087172212772341488214368143748920520723505925885826115407417766541980434701136812847128160222101299600299863166663076927370982473025403790232674378330074208997628115828958042462482283459373960048061024473311085823222252656438830618865888302761482066358078032448928955951547505896034202122971601514567525145729835684337818502764883970330522904582080405337292080208907790744478180658259809572958544815078436625738263292213113502383796672219428909234179204313923527117674825347255430773604553185731608196993564194851312965535600791317473631731649086474829763076116057540915031664434926217026867996080647021715729618672282983519916454124329238068410460104549084427318552125781689309849476963250203945526422307878107630343348239510855575518817180819984146917727832182822624173372952035187985635503756095867972346983975886374208493920627297666745358945057607509258498034032357362721260832791986057153072935560908515077418096185212609688010781385641661578859664253672673132717435263969335019214772398008042097580927535206476080690158795180836089763873465032700324682552798119609549907739254839434404184550222446726764826245656856666364306394726249104631066833220045837260046260532856611775235517356702453437640223686483192276098938386039225346734095283117180770774052245822548583248205867438997248287694992128790904567320239218875540591986718778136942896488294173439300999557355122888604308715470167158468950321206043246480757629192717253462881609300950402463588377212047519249798682872427756716835829591778769571618333890569159418548335755669142301212041384452315934958801399280585589098156001468379454203360478671146128006661942581976617816140716297627802568334465281976806120544917317314151656504704629259524654273419833204389716017812080018995875719730541104858922607788241415046704125410370835381439187130642740327635576344655693706863435401384161035252324882996154688624436573613948213866352261825843794672787467949783707002500161182022757778925872103450271481433983594630073400882406450783328060069719157098042618838328037823817092008513290788554668697852360624990100514551452687464888898365829441169106254349084938171523251624368244055653206306263658636911410851792359835990870022772097392075915837641650891239010098753797397947548920750103102719208327846600050500273600129130827777404880245813671962008820451658826900450869965220580036086215243948455442404861033753011639929936436386140208380985781852664065975305152205340346269037474091259663917626106126456047492319999549793101841149475762023979842821957579478296982277314942899703488538393065120729536119968416202173007933451099034246678582110957821805073087998502628218796441183745521839529959964531012497278668426125925785091010201258961310090240055458268029434136281009259947999486395888534927400713879039325963038160777928593140873257655515413017585402104325238446083301644746909573908873638354241419452190123200681398584611459390934044287871134965431318830327819994722049793521190297494240961730645380195975524551087192983938440023872814183268979095846300943026059098551701165014447514087307576512661940160678329629166687288518352519653827528533021755728185127366659481568609752396055661889941128981970030492840382526037401175606417860218421018834506313427868808543867241579800914546119892904612088631584125594716298596013672576347745179849904148308845500299551861254758929037410104592659884371637032556358877085935910183991276422485822861894821048746504390708189525507409302719138684237038745315909961862420912513345508671050454363186871946788458294161925638718022665260697895775500487184560958522526875526896661981574127373040764694275064087673045675479621685012743735367658209343726240839891072343133147290558969964839750779898215751036943636624159791423881664641652722831797487720767309040625361133667471589619611530487615539950639715342669726987606116226717226454467098611464778617334869135275299447799725959594873393114851280466452289864537093423363119476827472146642211864026354850058781508852406161739017162510328925064526194811433509120543170754917504869449350930346287475072634662607930053075247883402411455129594286185005023287710593479150668368834877974190081736701404716231915979528355056976627726637904918970867811032831179309416089995596393375231795919514446874893147160923431315318101455858609946530618406483921560124582798530086102336222173867178429150956010168944755062426237278272943215016908642753659788451365589459455436983472725033826957129171768940031141848540311875147382318089627645036201044559272951658219240934342304360732177132328128910080782457203740470914876158636110632607114134571349530562047931045617202099227708427120375728274982763454471209279694849352935569409125871917317642150244232285449893724267562168915106070068153536451300286832111150342981172146542506156799389599451488415532397539887620388142252095489181723303331069468316837499233290271269770872538643819032918420221156185756754710514713702429137146325249120106278073472611948816539146724146421986200265249689214891887688723611665762943031113658186586225424874930642562941318646701691923870752945370048083231524370771824814111939248508340479417024578575741479705836087012396278566163554647938499490032417632797605770677213393058796060572076912774470152575679069019849696631681342088625225484168076207868842231172218483901511425564980985349040772550384265016780810896886767335062549994422092896839381499310008453597346944283515513674605898716297072082094695833685332202841927399543213914230158804567800225440381381706281318898844776008533407718202228234059387911564129732022977330936523324061122477669253331711787443223655484338666319572055282318587823759144952356690134428282945864001495302489679912170061084040864711152598269208093208441270762941642723451089848554117128324065751649406897001240917598469695131201984180566483140440852265058680570403831029836718452242457406444142108126026277621122198093993248983890233473457913599102108683400665507054175239125932096921885079345963462140003611426948386746927920811619720211804287439163540845152755242154563777966588513135995233428345879370645143161173429453201092407573738640270440534621229827318100948541443926720120854292642277480565325794245263351375229113359414798562112909776011231535480512809737935701770669625550411867587333352305485464580775049222650756113071588623963923219546584183379940767005272579269589495984233306130036249661336106961777063834888462546507434713243797435418851005520573829902365078758576591243368258037730410082478082730151719765862093820354858722129708069512625812734356581861313524653783496951237059494940446103148039879016765169414876260891319508898986312397375365518065221238784365917566898993584101394789350976542558185714254098963423040844835857451505376317306119697438117234532886364250838565384356376587165062079535605468931133983630070888504634517222384798168291276378561221947154634217748713559122105445510035516993345161207984133619116971655790744649783565583864093398689953437193233297013696264239117396164052961288037657054997291996217917792758220275289596326605308186463012218526189711893097361229420787141514463376574158144760252180367988706637089323645535398638049552262531587566982350869626658528700398435972945931603915123012271035720660319697841337100418348400499952467866201134407736602607287494915716313846679654455076517102382509335956011697011698637506622446418326836376281259196412046178255345994709282205356747364698038383402274297483539680770476504223129590627075512577826032059688769559015401396926905625051206643085205603037357711489231316678878045381267488717149896143898071708455490159459303021971007614298588955286639607700427424503149166630479768377380202969176074372095367697132946241306874581981664486238801613516291205985839556546436488329774976053770989557959835801554166760840587996601092065376893113856738526494594791174956458481559035732938855974834594387890661815872755873990313881351034726182320047371036694208683868469623708054050389557743116358084904605016429696009566967337987308690496817224296569694353830401276038237306653071011824272106103875016193385525177149199872037477915045137195125136594144637903733118970757869951823983907356005932293411785896931598064972994256630704555253564186410307094792676636572993034388766257573133871227250790838399524903036058624016507193328711435143762336298895971895274939529609468442341932556238237663646608020413816632456498698856610776755108592399918781641494763476327951506412734067212628794890954625372484355633947728246537856650676420146475325023811459704067109649517475744874788975693186847756095471654763777060360286694705279613510757925561495059204341555910392443153446178238485451177553911270925822020277967669929490415198907484255024540848354061862609431163739800306043558807581744044750840070170713391829566562892857705809244571887249365843414694942932751358598472852980460895614704193186218750968052457210067325774275400794662012400116692114781046615094102568074332949376474232223642519978721742806280392380039975418220378569973536681821715115842429929042915721217171238557109643952156217115065954920555865707414706137641157996358610791227285163374523071661365042983520020371016731304194984012800128687970359807429448170392790395004433729668917345301762596036782378854935505427607615722486978754798925741365408926447281407090558506878941255357890879473437529961876679121036849110336916032580981220012728946803865478082678189148514203905259338673188390589281724565894847055782030175863902131981123586962066386471283927770802086719588604665957017387800606097352124891260180979861468226311406870952537815739162721581187742951360471766334701568778001192136645917744046721220531323845421941149040277557791380136356399783124323676306892889880452596437784634417089951098247155754109252345814616825883372117726945902605257549187146453197417858879361551372845033284891032130517974114155014833496757909222650963913227191671579010725166802193899440556154224654702636863324979147106734458651994939345365872485441503656711802922585920635393861543668050497958140193400802510127157080109991266265828999369030260155323088714670688820781212298280130399952889974309089274602193741511056434533105233137028499044542126452504532858379043914450978605615969864743604201060652669273419674087702815706848145039282662295388358521332477651687097738229512017973657869892470999316711917864708197890376864652593048209422800723291881298448871351740748004711487503104980614460484972064397708467944551098517872807594043691226512120975695579902311992654825684650995360542325066895848163840264761342250147168229395078035015671002724605452879063585844821618652671742457189319989489491904806051892953158211240340664524750724395238495735406948927827329298778334671885008647810834178808402748310379180069329033427719541543367826170390318812215219138399930037484187649076997460309507513430600169141590687049663410157474023116553539431627579659703391637063231040324696408429357515754053461356393553079701865806674644960980517386367686940875213468744141465173352866473997856297327587470199506520136673797549191161037031226592271032094403157497069713877273646654859797841402841513065398254967806781719245999291054504781034234521020187359915021227777839331036566013290199210481718093276578000043697325251050437940897930856085324184780760015997471052052599475010513659702981356457245123581078186770997827472746690999601084245331897035429289121485112320263541438976019445954179716876452470608911313853102614653010401340094443718162600384493218256277181333618990106655550364695224122348103467755543891903887409896696083244922490237241905135757019936637175332586260577484338107149637097385256678750634721766950738135487076225159226838186265640057302658598513211805386329887347474983298099196473574873868859565007350806199265890286897498906282566684111153024090290590035612128192767209298223069597559455891883744578192612557456608149954954982137163114581798055478898817234000833098468274286604109799774847747620654875831196481046585463876727054969256227480829378467519805338827855371217551460871523525647710357883583000253633893762728009133627261500873304024786922462365401766580040986123893636004227930521934564872518570325694870410738167313066577957549725717186004152645092414474753854805897850911806198084722916608348070458474611855614462082607919191934359010336320190087192922450621838184864967016886753660176494108560856095273333713291766468401743403839352222332078169061077049143382206293427179165266084594456318711838966285480700306756932218437198414589566525679641658904044446372399804559167108722701395076341534499336047688090571018210259033439820656142363484993351964629522794079065434517253871056983690751606723995897626874875349937943677808398644414137526927761259582528859410994645794839201440785988968791019107468253030746791350422748784468767591843792351563559261166986074717780436932487831337638123952636224050115620949342220273790060316543352191999459250223613409062921874679263708223516539579996428769112753753371091450710865339028459128706243047727282434992265252363553588076927965812946922325813106300092270829708125282186045536305475822857912950148140778839873038587208555984847312980522408849321700498504248788296775726662289757238762190020518777581527644931850949298613814374970451969903414568429872782736378175721825778728940126518080348176395080747792090569693566761954705422576967524728388314598521158859001044706291334447050336647404289027302865828210349308042708991484755308983728012173654079161854359351887708538653794495390202041945572669317043628441427562139708507193518591226523076860644135134162044904884195282701197982136276297124446580618872057866795202743336991570940430153396209505748202628187418639378505582060369741054582463330987141019450208551811646427979595811640736343207893976136690512406315127084442254535986949180985314753332547124490838869318408212004987105781988875116364168798210053391048277740554710349761618085253024323477079270414418951019330511008499469452647813743607401953736526653867249614423444723256701794399742854149233509119343103362880653886369901337008485198508046661053245008744464317854726078518266033110538115911228403811141803751204975993520827677646388649035176393750840054776683372549553010021209705852998064636953706204175878268048866897139673129278251384343573792788789436431006631220547108945767341792976091317850238232123858799649767988089299588054094659968679982616185909803307474012856262864694231307717119215036211012769953290313096815243193053649813633952638817449397702496124155183507377351624874390873659184850960276887898717420269504906395604969912770498522748195049191416545301984206706532342009347717433464948066451260220998867827167821580029199956562305185754295475557708747287043778119734632240781632140939056609616447481698206960591020447497847084684914060544105273650765624578833925212918325937864957446730286043700034602225969962224389665904061874149852908331249179829316294037023739650680027605800365993355073726072785592647498376294545291819075372818227384758842246977058182020536071897237587835995964630428963084680243961316665998364582592949918889278206200061651463773695313412998122259297892965164146981571986471573583858531244740153013289145461747181372710391196269865092712229858651490080456762995884008670210529716673404931258241930854272181325622579678135071839248003323486505380201798432057989316576702645789530618539990905858310120095175716946293500370022987520631775773286227925682176331010330061706245274750004105243188937209574822334878281413098341200642108776153755501687439574666806460534473134786672585966456853318163613097788295511079902322604474081759033106036632187603992344961689456593374613169285073145290707124738191255884870356611669058650187128153066453290713228562734977152131203809455166977402959733185977006055529680433236433794996260140352915420406261532099597247029846307013374065537169574140717292457862588436337914409878163958072296501122943964149818659774713557846353831139586901464331940272496742883986578839066845206958488317285709872138745684461637825330663106536640726203782087820426110042324493252936092567937832803007032934311932570307495589456980722107048510520062131161372397092654502897331427319894043390098889268897653973529759697624754723469937561383780782359513024607353375245022881927296869453984352766394160764063560429869264336004002596848225610960130108928258738038111695314720435044561363003979577543209343995669433258688925928683465598416473960342156498923014709009729818989323979687919419012910024405267117191510330813965553070096483226324642834243986126100738962381980242350469519494291551655330262188370692350109791041672751062593095795537865758200724100797472165508799094969963925559297040557648059918585659248396411980827076039870927844114233717212268278857201086393691856053355426741706508139034058916187262591143392439462008517811380731304505012436234837058418872611247336677709394236126207256277042863454114715082639111618478866400800596421350361173510589951586743316526402664834335667411120239950399167845663889292954431335695688253330356570229579911040952138006922103491298289739274301624616752727463527041101408300782686907587221140862020106307935212787099654853561958341622582303742632894074874178987944348790568361340869156920990440294496436292340286592885756972301991354939144366174913415826300235721257414257435689215240981154179802990377529249072032669965304689420702262830193183530123903245983372902599516832071643268367783175015905647229852382887387745887043006996431886163089493690769122360534203521313833826461544640390850087003490159474518701227055112985761408303674784691409095652018566602402027332849524274671837100442553823020376806496926560106814662294440247960632314389473217496533647332990064237656341238352536137872237238447748492898668099126069007799442714637187171794838572818236522309980940967485565186980012646176360242304487096593543599668194654347158057643521706326966147107161549676604689202936587393253637884325339044023921140726405155482190885416991826064214845125469872341553781345050671059928476147463292842245833369335277797645077246580295614462065318763697664874138567572373840491773143694042778624210350914818853832007351632466765743425092188247188501884173712330149658337768033127732966737638182873169680613271218090467541044293300270856808588899217434187434651162003121932090992410802329719336427760855571943902528040448208751813015844716164182341029510901749442143036848489608831913219469814576936265181488094284480251903877312933567511645628962918789265083571483454535085416041685726389839587251228748190084431357806538310684374551699139038159841758135702143599634820881447585975432503927903662676466157404368489356193467771089962444956073813031574652902583597605712577829889889106567254686413666656427659239677813857221745457651015122459921061403723736297866210151314479505151871076352646326499343631080243624670769224182841797444639831949394096851605833959659765486956764357871259504052231112341674146695405127504893266884263109867802902520369784711967266675085901627662261029115969804395220537237748996669886120161060252682033642937906337753827807497944138503961249055164121973048109354996507415220292099840146668621248054248796494342245329292219407500336764292232126989435970648367615543439326746554020069078272928060922510743334187403489069789363801224922649447919727724043260603774429131989295640565317074327862940596552623601612036629702727143021321117576351371994767501829738531320952076026673419997153865207018923907252668643881762174287214420254903615806651048191116923848964103530666942340951439007036541355439173159931779827241213476591642414336732863203153696339495887561163528366358567395538805549987970026471683151018066776170579503441239966239464993034102518468057066823450461555820841738725732209607310139719616326550449027720767416306221111644725123382198508965509094526534204534982148431485162042911426185837820839786951524395581155795271509916325818466076315330408181444818531135245590212912538828638199879173521878491749503557902155302136442070721719908727341042927491736746073008221651936473499378384509164586069370046869974725532490264543141888314548998224593422781846312208601978213534416098436335881811668713008154988844701679290697917429950694750557671803109217204028126181758760208330687341613094924761865570514496096863325647647858240057907180414444749028198803693152855750924419700521575684053782978281385393534866494704381719968236622559419101455989349950793895840965545309945891121680537211815982781256126224280772042240077279067219307846021490694207636422145731793233322566631245557224321856013777583626666819258113979656985580819489845721451345674589531477328742778007897650269894207426723415208044857042035274601348307726869306548564694669086387263846361887206332618887897267564038953006472642220231461702303387236586290414429972714891870437646215335978458975015984288797371420584360397623455242039710123644738622527280152343526296429896067325397827439678670750664357577854543724445307854881697096329273816199431795307143435159088223652015976324589846752883476351394981483451784657521251471496386456104901447707582919889000990346974805276375019832056120627212480019252746283219048455166228931869081043189061033676576600208028287895006632644900733330260959490108226705334947238490936345492477794594205228402815310609988765060468576467739363385939103448704666352775380387272755165554078967333992203108062073838118595126126303664807593670632016339521619165249572223431300575400828431396133937254147980133924403015100575595891505739804347303497960605641310117371660144805415846282985892742197192078365635573130178888860590729502946324324940004981809816310686736268421451970721162773903186262670742775235833346453321176294005934945337010246279723832668811743100806135697100442379151892083470411858898674513109404103455427267410151862346139938483379258866791091689927805764995316211474193117566059638406931841812427630078762184807524183205680509210411995144068206421116867804130553889049707212705217711149781440977642653995828392333172183841997940416903602112880493540329778219819351047934553184559626280012326665532389439022036602483408134941797131291179584888502811948087781718952630496379525707107053547737008596789168442380573080411042682856538452056640317032175410230713491348531998923866158380268068873936917242382993834188042115156746787723078202462538360755283815625457254312615099759637734175385975376521357152972108841201676924080063150697350401723901477781245787860020278239447548706355534205322406359617483643427593168460909329271717381601178652243471663091850495267412038944587005841946478019995244621107416052262068633394023639524501945700080919300955433909170620418763025175255527755001712090003417554581274945933435091771475508036406170946658937324514662218715269115198090540969573997305191459375433244051562953288231883956271788235451062403939767113802899186205475176964311605793579036919418528828699357400349186320588596013812939843686977935544627671210130976289932406545054020934751007338961469433241710330361549220523769686910787717340937850008180473837903178580809447585632278190274377061136227447604683426899673649539775119613137111802345049460610408845571014216232025519276387115251700771135309459197540258559758695882632602937573232938425782072740775979386366977731989750941642205363552001489969110200169796532825902630589677922930301363046450687404568459309538472719936825413169239702188279768689760189684680716513826272298518146459261906818352589530227198515647050399149488922251190587196132367484456500604261935035473256019510547920766188674094252399094628084625700222664569181348256894933805752835944170085716279697254615166332595198683324026769969724663060883920814882200585007271129281560049966095304974471582265927248581983392552500409647023476991654898248162525762412034930618759666783907625163212372156241739106920830804056642623405464140875480646524667725278142538674670167926112243070850712493520362946308895553765533801089971583005703753465550098482144571948782164550398197574448628888430574621400015599603469238214000828360211289104158626803626213779678678063031306688458899261097009411256443996875557795115208659426300907466080331147649201905510302738656334734689924058421914535059679467281522737783499901191632234996081035492728064842765786209649365153424246135175266444503214000574417763981243951679532374408591005232842557427493311012948346591996060601835403996926697213893566755360558856238398816237356334625067017406405546195392074604375344708775808416415802397509128314796578369134205302748103483602795390607222167645101314733374696342873850667351086691698570456898009640163882511138218820658555956907390988608196197553310935429239015014364465683480022935986443625858675157847941106579148930255494181661315797064382995563248637446111370467476655283110944774918234651472161524068400809489873336058183027015293504120577271670259687495686546969402938697458145613332968497537883601649621716086967386077178178855951703485663970999406689439284907037110907100506457865494347654440558257674895829145544214458281008583145815136305197704576165042171335566875956796758643960391967425857090004931861343075372569763052611731027167830536377169477542942106640649600371844536725488068911154390288933149485406309588309618836802640459728193765328409493620023162773337367172794471972415482174727665776360242687308758672404356447331276476599183484704134327111691740054167757707840568912413193383115907248939877180763120519001364037829627949696382108617218949043252959563702473615849301442938294402676108476088898584367106645339889292051144273292024107558844716968843302730764816373093511919054398276516947110430605871150454432963449664454564488120126487897618961206860183212224783138612934898357704410583308695988366454573401829356198194711757711626658282825480605324501195646115421040968709859874220983937207175616751405222703033139195874890944890500969681344025008740689430630260026391291488634669011152216138792436634548864316777389003281156193172622075060317913549532170443269155209634513045232935629159093217315346318983447009034886025844388500659013957872265680811046477907257432499957414215886586148053786441257413013965289775291108543817017893642569337083110336792799056443574316646554876892455134333427626540201376927331606776787692699974356720718075131414190527710275700347439487069208190560054765608286304722608677957828654146135586007999328500878017677151190222305677167439009374421327456892149028774195528442721583626928483425328991084376862897197363347879357956634619013213653729218285443132333373155674372333013037949059991130104902085259773801888966768958176898111433522487036719948807804467936405040270933661759127003006349893201119878786562614587601125129297343955648162590470423415373679486766616788471693215178874466245175117894903720696335720257842547465993815273818426341098374704024195563974538965871785045063404452112148390224200685436229398368631310595215154756741256854176248339246013044442405456655502469614223776630218855509538367611648149408289224254949630396334771844442481693315286354313032377376247757319019492310912042780058004597791739686551903345318395254657672846426766355198911345382040997795461866055207381549058210817868262855892077883657365255352299053907544379484389408118560213419566833109329420486591883666747978102870160253124293459847478440873190162235238238781906677726234299613241520432377272829611867936655241609273083744763699254838755995429965332024524282407909462933995352463994242566284361058728031599747304667648513554125775114677776768542679489071135914480292743955765179925562134834032091088184928550178600641673660900891506361366424825676789094958499531926810445537359969048057098622806971897047734857663776136329600471381448508636357400771405522924054191893660260373986949922753853742328763055214911253752418943809485115492884436534972954299161160751713843996741550057698233741521422483552106017892327131060449598401594182736609319266595275391088073705788150970454616221949031440359983074826500807538796686620995977176734313236738542226130493721102710531134251726215434076202643927171605489398590133911828494324860545377514228075704120788509571591160723792303935431850755872724275345070102525411418124302913694334566266708018595879447818795000506048397675319232053852084935123498473766993858042203612792764303763370003614724832963143621756968671564380189164495813700662938396040450043305185584585953742202389549064010133025141800077440817637121257468534862025887553807109480009207262139601784195646160673605700976169337650440774333167976351724850002809830647285337097601506020476939089214570009966571524474605833976813036771606836718084953842682378915920607478244836557770551684325238838084139471491432561358001841975983192340681587388178801019743066958664344629485243663965306096387696455935895432956132896631559372826117582848759409360562337620199182637267285352801053360868493020488303188294292326450057623282479413580822542806395706565012270768763552746780702801908111438846968799294135871535138972819199919945445403299278751933543412322594973384543041224388585129372060901476944373763516638874634843392819225535905595557069333382707613627712699482561014038985739483589334993603318229132039704754380927797921998547995610145466540620750472198913849144009477759520462858392651451245632952126966949660574022460093376932466384130642398024862075068246022972687932611523439077037199166878687770215737390146011162965794610980620722839652308702976272962500943444082472272471784669195311590612336022076886950312287781548515801464608396233902403374858993156179340127977532886634518413201589630775076480237231564738408709601395221482890945785838276645332580494666994412736984934149938068057532942342251387010134246537756390183853619899715890162949514113281150721336992882796248607277254482245088260155372319626048038312826358740132321109346937893932785241461866261536662668271436122348246024260215409785278680065633503617515852610745604929749952778712365328227071642297033860757771440649869616345167021218092479354662206291435631639874095846127587266854238585552422527236834053868302085633581615947057634714924641514614400432454245527778413375681511186748238948061043850008168675466481205169466185153065172578868082131452201181510785312210260418066104423634845712459692458313218883658132654669141324408355688482890844171863448651137979023009581471758026366360660354363714305312499006244590845795725817220417518770361519764909908347592684019111124739410427067732409257630304367355865326114745293509051068618930538225718980534082331682793603881510020384133796641968049097458549808159635077744581238461060121473701960044371333418877371047582987049070501592794375595639103075484920249673530484444394399333686558046945016297645894582309845075360385552873704670901039994260289394609922366959608322328487081885322232497715085655126440107650121264744978272423632495173067370784047707547929038355834516814948363020971724910046188232648701461248534656298290891029351704237494960591700445390801975180641964359293417585088838791439471737176703651244916281341386743854021917519425414689468466581581560961724764429772461851532908110616667818408106705623852901793204633144265956784204070601044783167087217250031983152547269666555282914436931341635630188820870014408023756216826639751575437690163872603742660537215975447050691190260664180830422629415519726867874824907196865809869166561690234489233730236905945953431375272215897313355794810507331966756323875900890732311593472257143636516279889300015695438837516843044990363811584150235380178220251469646634629446903550278825469993396306049470719820082422863300553033310825859058813722191408727767560801174264717423065509896627173917155565256381697116467523217571775724682589966138127112219868721038159104837385178120394096554080884373057190972502838956630860590291348834473947470430016256614950573795373329559667106563294950175180157423017051741520849073955487174757290543782939733017728653184846211180612328824059534658734978441805559971833100500120357383757362421189613544564720390782405529877639329640869404651861730918453442353010472173355733705569504523713615065483283284379405895574898008102207878974081120292981465943743523639489365929015811842355992935817459710814879752477186466302957855454099825892452031345083360250556438893245409515029139692969987078344999820351605645045755615616994035809241603612853562916031132505279958073320817108208088721657869314729849011701493783400798292176755034876294529166163910994641572234844926461525353185921151770116923617683650352505660223314165083464112576755607543662483672765910701316207911793210887663242670843375607115390713393088938943697636995113922713745663534124412520989429863700219241272115870803103445146677466428174155734717976223469471455757909693982315030575961312564021878467922305136771652974872784422316856535704886117079418116127872800751962262239560287698488264739881505209777080322637598872824512639704376291523122605648767023413169444330444968492778404176389234133851899118036154145469838486881376657395370080348186273441088584505191116638417865867004541611479826409307427430763541255442096501825641251026574936375223010409360114510662032409790003434264597085950974239004312196635732708096055238667016745955466385295171636577176744645176858579818012817762863909430645568112447462626442265520217722229566454904875240497343548874380293634561384909261156308026008931840306904215293810250837500520025389367813930438111809311735052335780345843395829476531764248215273362016309722169799379982728503347807168104623389905949285427462647607775634590639543237926268181642264371086988907907718452646599654724331951071019995418259725903665233150603807276632366224189398550876279159914312065300356593470536217533916897191437779608474415999660655194991864442191181047715805366650595753067040907207016508427406745411787748418212455015078276049037690682426394746489032826594756737463642236183691437176598482172183681309293872993844297840824646050382790523718874214453292661160126228454675727662616760943156674924765811260395628356456831254363579079261581425674174533881071466684861044250603963948403678564010053136915781754308815420330661303310388554196325410430960424930432276443058348548162050292925449363494894559433520732255740869788285540939950665091295508033810847485232211353593190593016389038393740138362763608789491020919185949276943050051168510917269467612408791044297657286073320867993719245449494885362767943630964649704232285932739315164727787481186791627638324871792652531755688998216239065386821462033593788520738763492658865479104545299764836856428879203158010152666733360802462289577990499180288245098867032791169103866834426359298110380348628263762289446989065787343911728727664882581887233460608038194542541896694478127925048547472956605168079397430695102270891580197894773780283562826251960780790089722249124086832463340779896874945791130963234481175948309984502562273096056031123755769507345817487326257887134377915924334499388118674686952550009217236675347276940640281482461644570743069553928292844632854633676901559215652224926526028516960718838470091105361092552525930212600755304368137616625706243756318064777020307695544564267358579667669247767651733796239211104687507769837301547546072686722167888627824429159523781949340712684361352239321607360147571575143228500749454617872786446522520034918594439939837402167963548209582543740959994891090402325263195926793805675110892085627736889388419305867383399035366421441294148837369390133635121071635993446647362800535828366491696585477061932740111074701455404300673173568896600198588833336185185912276860130264022391104233785799121605542413198707774919596060232813220886605594085535254095401096277386667679457769325136367323627206935771644130283321747868734612335787812869674418068301877952098284800152471292232538024625587650868843774912132290924754358283806494496102061412065303628740004942206286982917958709333077447651687201898483587991695126140463663598309479281729091040195324165311673805028064739509462459838832714690583293569408999369362943747805743686866833321416400300323126475531128227732629967444362933498184832640319078555660775702704763877289991467987085976687809848063756435448826149088279378095804731887915607875251748120293479823962781360454402806778723108074226048007127823270514688511924846698562638109660770959335122083882618603749996755290399672475937378310380320018502728173604807592304197827029172876448007337582046464952628015083754400960348764698330214114126083264050007000017991785749470842167782084415008605916155290342212847042072002276364968185795730397758036246604879623180644084602181809041320049503593882022064732107153522928397280545852469793787641788253345531116683256203916073598388895645867547907557924798607747056670657429382956956777293810746775111669055328119833642233011533159156559317589875145860540134247732920206202100642171884972725664403685672690202622718017096211940861255896609922480345466575326157034628549877817179075366246849908797302204188076229573594015748102481122952453604379265251161709665198273138602786145646657613721459743568879159047722407583941445469575339289443889108532901248271910103869324573239482369957200802506114843859777516259756163598373382083130677963081755114577655020754787814488438288336087161897976187069984081666407430400429350218429041653962514191903204304581179802432134762342955124815538343243510573363008186062841882697907455452679395762665826493190408108160795788114551545937819458334744029465970468540113982956569082455674831256972809542083082563997297746376762037432201599197259315304236233388979619674848741241827682857881379845380580961007128173909016245020198630915415858539815009286198642022042155529193340554885966215084636870510114343930712531306167837586931844929975834665144050875907691059924531457463331287441080212224966189843881985282722613892714605799062022263616103616360042567629855773518097202637347822499714987515891143163516649104202282553548731958734401782026124878131159237343600926262543434987082987161103069058216957955541982016766385615001614636378039079503410636975955831488565919033371323809554367396105313916495664791511670751369191692398644735222185567598336327789211582113667428910449705985141837390571049880012897990768770591749968022179965894340985415667652980377987505849562143714488356069123254522971772909865676318623764151676127817690800478198169801435034595146668624060648574223800917318441473933577114148301425845851887155284202104131356258150506197025403821568964155863973252917820984643785490226822141094950547948793778613931903241269239201768709271021989905742222431066529815718840186534980197193025219481254040475658017218304789522926675631225887947333940155309795440034806968490165721154723443658718360495011527017999463709615448268601571685742236564091567141852427380343273128259162607641080674041699190356613866999195981225102374097003715284571453432864196493590719681778861509952580357826754132940500329518937931464332273946635924677649810436486908090049503400948283777625480466108243532044487448382397499110842884823221878258270293503069558787247150495979892852847359436116970878773018033377660107838747132611339630639753210629180313482158211654401249653272000714550722675421931468426166540444557075207120211672308804311961075680402530073466173172516565688746745447874066896542604465660477816151970328986164740571478699736639725510470208568560591978586107546955710140122537700659007370058014912002501945829117139534914747888928195090980862981621419895919740576147251657587340778002682718112384606542405087390930702804347822346326905596317875275739480135165016114003476970441524329674416552995765615401105932507556494638127677710762307528874166786778372990074182554464236405311808977571753354277501616474782860728806896246429696276594088269863969149298641579067595751430464232060745568617026572463334608921116834333361081662175940045663071578907856910651971292977679013275914557675196573581761182663891282774329548111433427327555681981192680515217846677353898075761396815052540968944897002117519983055322498582254319967487709332033450110404105294339529203363010813789782720603454206421245055642972497951364425117873067008067383974543024080070619230687814905023395556425894554652267502396634352851100588049899124306081633452627676948324441166899654124839003701945353321041148853241466328830796695455448116780289568660741647905167516308205794216875088827973696324838758910722572870351948195254151411927453395568857305837805353529692894064937666347793340099461198394836871649413261450059231312473065650111491966892601669261797249609273068418534441073440150936475740408227642358380475490069094846148488653183812179216767320749056013637691921047036431777192357396901976059357755171174876101281073163548082466438948286034430180780811947701676701083359342122331777875946248797597724637605239060012058012936866136519332105595096696719478523248910187204398816120087039157381508137123426302650992451353078673030983119866650669568387412636830567975096830126794421314608321949585926841732037609962458705530349045009127374300089502547752329502991906517892374948532212776445262794898917733899356069206033391609877454783016378865964835227878144250046479607310686751002784273502225755860702506161529036422224323285060228309136031019564971599919253647435186333715425189519076475572238161237718121378075585683278068567894771952044583997533605555706674832589921245638885886545445141891072141998128497397948463599004599997506148883719149875083948108466385230268537457920432265166778976682653914052100900992100075696207361006366291555890687812337667500603909692900298119255734850938968081981341107745008330979994821698758882318206975953760520271640474881450120030835539824322774628718463680500310753768129576319940172998219653247363540593022736735331114744408207167057144653709188504843297339573349307603032374001680427698888199778486595055727041869031655010216489245679112104059099743197597574784323560757773549514698316104328906566319273777844022197202568874163653300947020908697126032465903577392268532776684777713372009251872899869589259570427067828221871701118977896297089102998716890486860015188368035805823141933759605743489840224314577409445791865844031587102302006760760120600251523386855631926799780737650869967395315434823491721457073546523468582210547601292018602722552795691943089293690927343849014260468019387332469950336335640611707260320891503620397328736050840424001235867805589766124077079716892184629957365664598011836704268467965490690069941812070925017894661570764132686366065624332683913061215343063443342756215576737981935767363699640177606964069809330278941602360170601144435019584969319394312298879338615547916300001925444606675669632474758424905129754692919876412766701419634192613051954494539458312144261216121895936366317297116838011378756928095740291898570379998062642170688912648905841761717898491903278274574524144308633090273286719184844675828644058049567212019582633903995162258236233927586497669437549306942023980173392283031981465806439893552900520000843941578430300906833398240191385010283915940238629602918547441227837541507893771198181153454676055840304457821502228669844604907202589587325309698332353861040556683940605335338319115577519248889637107332025726734761505621521830464960560113000482848248967814997588472490184630054295940149842979751584792820325919179790410698132298942827752452935469764694880231496846992320335887426740164549929936942925032554060971476366136251837588172227639102400126369193964094147731726416465310201981393829527843917678168063739818765740383892119074386748878899169790265520648827389237480988726276561282152008907017239353806268321677422443848757053373161011533223093751127617763214353900499957541955478132207228828003563806109519644197486915300523214017157617549597876592692697402323909666691376152435114392972277125260401576108284236683644741098633802488672140804189838278200516921370716827466372180911335544507539067086928466725507189541966121804951665454615080854879881124237264068474293187818407225828119023372582772934774952534613193216123911345714153505532012710918352472245219924332046047759092998625137595977315409191495889441613191227018071021587797906141877752973226879266008847769673569842319195549748729436759450017957299431183601089535150686085782262693605752682749338949348507677127286203169040614715186474855666951724336256040706643583545446801381976604076699586288166093157595882282959829613634193548365970879990533293791540893784084245589544194802978380497688381275202139993579695765789884713856001279081010661151691985350460134857626122059397859371189480253380335543479294454228739215624996102398114409321080221448707149959571426214191284726956622672647983542972935720502781012816029807000398736543098954556413445660811155397217876187423131228806993507807042631792486904710038651576094841503459627428373803795479692316491401508458233442107173165319407910780419764070782595337788704229213807580253128486316581533987102912617801492663068108723563091543666923495453464879631359298168409145606416848027823285311258707216299568671786146879306376741395373450067286627735274246421792127433891097353442320676041632206392854960686743573665371179691299158546613726748199760664407746228931269192007522339716592563488350165235362259947745665871643925629050537946912802004880878496757814884200262531105464386317403934848619142250305528684463597762422262579685140691214260176303281025011329307524116861881485309744349863974149718019395362512193959910701380433130840989479910365843242584414242302983545360321738550805951204389301964403518952726613078836737649996721475431749611188410379841129169331222739725255734305550286282561630666007554749023693227294873707630689849039691320825236864017735591345154317600296631076157897286480000486231349306362354517287477425635152315388356966083892403887446829036952779585745728301516894387375692927165772401275351954742112080700947644115841645558481170201906549583000393566224211282419129410883824293761732461243990015880918975894458349876318288074714747618677113686969472491829884633127821462110638584076806275484336882325057111748457990482679083148701097557864723410810004693588253500298105029021875183212246632138407966029980218723064888930361906969043443951224710764197472855678666041792311340431528379581986070577297394851769933333044403955972317565588531809760544293780698641844182666437865451357842593318571501531170052932584315506508447902929752214552396176687660740850422897371783292326211590255711832069056692029550482953576129766273616487781207928828634139497458626701538640066933063025749503947861277165386159240593446783839711069848002255255228936422813351823190707425370096004919655953709025788222434998478343859036683808376791752610869754834430667911676124480607357883509247998685224652019451618977274498793828442209846290971490494410543923808616917497710037117414893306849594806510991789867874993972128509835386396830900171949596292660269732993413360202703636753982123994810338204048270675048806004835549183991035728278271456381693708590179379916247306367035847097186783668903614490210417728936716501226942386276045198438994713664752742851413125759849292379883705045485213100661062741407686665130119636234578387236568285350383375087261612997211986252849827627553492907093715185928111321970862678106402605242794362605972860717544383385427177697185780246764346131009195365210411409803034661451051666457409377351615129895847840450723120732740606200186663429721079030515822952487215422781088455150163739687834368824033900448453639507250819887391685282446432247932454077855581422787472289290038643008081499320811755744925886958380322352451800808800328694035633980441082631406539678910737833321570882167964227602109253562865799611885957663486263549777396049081473632703236197905554887578878148526756271424276573805136890447039815730978519529446527233212322852763241139872487422299550579496092672757761013499669538447715239616670408993440237713538153180472981511255066586610836359865845878527968165570739810478584098807758331956880693385992653312786719693121498404170449565609709800210766538629509760991456341702626681118091674230125233166874976619092529936595996585052784588349442180892916838395662224484038027626713168099733806123762689460187582353766554798897378115815136976612148646829590471397721568577059428104552319541851598105421117261715956339018546522444955929153382543927192585979931831477438781612978415595059351035198266203658906924121885209952236351583420549896296766341148202146783513897692050997535116459335929387344959015755509347615202997406794005378414954318843038867086909873163304615610874440392239187437499286181278585576554883908096692726628258343809947052056854319313280643626709135601885158570618642004205478647542118941183923550676651981443535013080846304803404766358969227351277578011586009951148698769543811570256855848209817638260122452792137470773003033494011386333355602477577296413535099442646329627111423828234089935835299500427689347603651868884678923801011482952088560544878907216040904954184323983005454362338864918839583190425599457764235261884343522055688896749459624428097965151929961448036302727896129436454391324096214541768142998669471433542031026571191519295041715842088731522441030949293180057171294237685035051365549933587531175457796915036145416642953138763869835052858226207218690250770089965616057187897960508174868041936256451176735722876990140097315645513498030510159716053024382992745308753056763794869401342250117842064996622980796528968925511533380332354796556328103815721084796368897544318272206996239119772092479983963093556065578116777373076780770000549425042077904637383259235756474472088335447705661156748775277574528359084051745744868471983581481056338570268688059679900540839569159985375356069572985285463910640281255317515579014526187120941381034122136925714410366209834016750399997123519126875650431736071240375058242644917882802464037703007277687932753124539166204786324455663598306115633963777597427164089878713372740963449948985709604089659958875057521751566702906525779881797277194838892794352791614270895804520748174368966589857239711410007319159083243727489170020353435571593189326964965888857837164409366265841627260360470749230145482561213556001150822869816036939665701046234620308642478391609547377318358834737572359890518220367708168715200615536800671879535107702449878986144257328941981699282746228376617322569268814462170996068125182258097374817466430240534342818983303465219951598808539468663755658015946396209869523554323290310047945761964805514040380161260725815810520714928341170918117387757235671442900717646454712350639051133228695715839422491727085893036771087987324991464281343428483722633052797888899569416435057705630129042998822326103327581595248816029104382699559154032732525018669531609057410642358923132979870691984245849023830575775533396781944480567700817521643548448990964203441312838725489933461847867550125967791821197775128502903824803830505039890490205698411776365656996279398231644016523922182044800742953710640659634721808828303955683965933894338889023458133827452753232935106517098093498039890384380501310407838602213210213621569786129141316194009643920342844428672485800022916227098075383064604263698228134317380227703282590718819415940679337490814491560629478719938145529492889406935188781061375453105540899487820022627057846145419764881643491066031175693490167872597498983716802501249424905168014172982515940573684861065222448641451480105767805447786532407933698210257875055124167075434928364144163565998816502854521683344838574971998578536169778574395528645442052297973230082548759658908446660523762610140973551992513235743168157132753230658755331589322193419424568628592287642468823036425619892626817419087047067948681753930638015880463856676580773744656871592714869337585256543344662467055647027689637351373052846134386237876986994876922732161384980845523790794909749165858387004227755756530148979706009064758843373572168925781758279889716158332341272578514751078424279148486336429176605033506517323398740575678524349784222207433191262484370506498054168866012394462746328219991617663762379266795430344985150030141890047534254264459450492986797300378911069922529172967837452911852362118506012320907785115996867825801349475806404298264625767175249969939376480539502478775668260551627055723271558564959620093007546018854546343589920763790669118857195862282964628712662841048187060785382519258799407066215755768956263352441014054273884968747140651438554787096448420507127431479075443597063744729200871077679605365623236840045880564200721655371184257338985503821178093671221687273698910306227908289613373976629644357409592940584676914693912170456824586427121653221419775402522444978815483589089455618488070603332369558716124241287928076672349747150810039362648035323181859730260596110076457887983633295009579634527389856566838965681939100369254676028014057168104904927546692755142372480653401911958404123860873319226304326034344138818316023222383190955283534530394579529472831455289607972876366237284476869842428430069338026321298480023938680341427350755243969300526227604692902055942179304604899392605974857621967327257414904128973467699086018625342539890711622322906249521846063295410187835349965574645246582643868897671330094377624988426889712720226356353959173862059215303753754314021719648648738309258114546024013257465654001701806055805680600121928589420799262353070155763358815859049695817625865251029724621265866622404342710136353001025092752878758551804827556246915647149749366079980658968852022773918337144383614465604730230450014349941066888515524564071194333730341145768195079407919139712361752960093169519589377695038547884979867780459066675465259396221955399405227899027087166959499878696608723638112880621526506269800589560111126751558174168984605513110750644847475975492992235486046294544296887812622980868923244007469651192662064450348436828684389285922468880898838341849667504113624115224198432021401960772351851594371875254661252257046137069887834577606831044876584526174785402526912971684870887581907364093098911390439851523409440772823358569951042637377048974880256082958218246979837699325738720216829392945820992948973784229799889927010719287299463473863878645033491381899618755403899990690794254392032844035450807322669199335003468634980623277638706353125378299915939812099783943494257785988443934610195208817300911270389180280866958787866883660791041770821683671449343791659156608482324105998963481606077907467654966550348030977702157623703328833183393426880064073509965473565404818067878044382562248910819967155395890009532669268555226194672599011557789857524522750076769393021560815239500783201555612555565370372605901059741785888412978951729728517528414686617954208351735373747085109283421983297695948884893270903630223446440106219381533191693806015553401118663294439000474933764444144714848400457848800255153813461403325553883824110876671011186135916789982043249337243236349452426301238679610695841293433470921790980525570348158962754369601390278669247281037704936934057220552726581616049622661500708349017745904518191742075437240130582695273592857448050651975212655969217369802816822088962404654226414098200561631240543018484302263044697014119380859730079457340887463512367157777716749308198451406274014114807078496758880978342070187853423915828868980347318007641224398189813221302713206845851604679834329369074226742628355751048585914908883459917204284660091242593350583973179272690695681939531816500956295744077286916745802099994384871942156331937112000433775058404863748963800342501083855109974120414534407560200284851939095093174005891173777070181970219177683128206959325888223544560233750869001198465590677510149917499523035046467709599674403239557603407566376538817106440345831568530456972227207271847144854434344907428935316856632325683553450808136876428795619890327032296123023110890164944757963714078046005763280186375420169915599224209725356125037270552959994022269784622030024760613099199031605097184008831930953858876108817898237209171157735717141056658332702913922392456514001095251820005272485980064264036941691385825662336692912645084623055303851209021803038835355360417496515315318398333177281577114020778498121589597738530486204242967931707803934078545710202936072688764933470022377993011972514503307506680443440580841822025534053904707560640396647784174933899702473869477332827189761716777191275798209138442629755486261335603199768928808922229811945529516409561120223928911607288469494398381246604444465660629973573345378334746548853973286383405568788845037577684506556165128315115421966015814096589126981157995331946295929130019716306679412317300172002124044157895373015117563031190490032929599250002573719373358964416373584865743193626884797308343039846545137899439522039385618751904955583833688504923784134321903162367350931023527357723098853819909105337531739557317386643902898532771837470425235976150861489160416190551234883206553305729724488099237130463268882489730235795015014664374882288991637099659638438331913680343988412328426590966299776939673926845227439060437356510095544639757867818483823250404817654397366819108920557496878522742787854456209312961371410117828663131287464489324308779837338271099223674767457275179380134748165785728714856893578548564981896713191372222056474461456457643700276244853779646650015552828216932079596844911423847727126932108327054380384237917991290349176876548710820598762544907052743913358737690066977687017922069822213046614345233215984741220566902611940898320208365768270327465589685847682487529356808550949188562653187141386991374452618825052215465284546566366329405671371936906077754723268175945473077382019005396810392425938054261584092515874011182238239934344832583047264893212276754379693386457201452812454920569168705509128047327349176744260081029764175762181445602796864278093248457570772174800594771407819736791191074617486994048159687668942828037024368499351897313522062237930428646020883163314012136113495418125670075209804985190589778759493971614055650775229644073123043248868642162437003728313761811110461124421537502457412092331276528047873453715505104131375123498237139950486929789540709227802202013436450524465981795441508984799756759177400031627339805615996923057765520624777089593112558491606810852265592837649179351907967558216826768229550965188586488564016999600033693066310620846670080529416448260036305323692969137744429927970495674602359474618014521471610651014216249510245836642169047134619552571551206313085885649939706983465390411529368748077786690636218313936547154983308305234622681030733755599453703633328329110632774474430567933494958808877567376909466294780014672889273371918570281943571626824068957541550917620842674508803325248733805866589603537513610388651136614440946498754854672232347686745551107764735475579535211179162835408221454890097071722431119265863037813821146483290847589334819894684252789717806706706775646125752225827395264102680948036889513474828390898915197931359265460236351664750036382013004441597363589141464587509035714965186203612717440119666256447306066307765546863514290494666285085225950323643382426943877508865685279058207654644305466652848183920771637420988071637670429066068388500625166624080471513473455073921309713278192688793245095594486805798903169720408452644856688943770832766440667733793609505766780932568929101214275304279902038926167547227084139021553243371478347330566331954857707150073255298005475171729603299282052836860973503183895749349094751844209737930358254345265166284569451688620016180226363695006804143599062620979972053760815128283701248845515342947672054539233307382567362323275902007827458064917134368656129328183640328895323533962918869630487258662054301274869947022591030889035042920687007621587973600509701843117951753502094183617620932831792005610469848670763918864313642179444525993953702121714028838911043737350960412605164762196105066433176946422722893283387249837669191726470860284806552933811172332885789615026600453158287511919478236581658946022775599928647546442208052966024351017825510647676311105618395101183759839848008133534202135782343554609960799129130395361611376087932824684361327467092634255779703877734681754457467955638115678536777650190338879644115342987055903128871372619715317999575625985062454055314697452129682541138841880249379879445749551266933642965970578127748204302083730710766647867997628653294453709611996079074802040204560651278626540203520386741359975845924622210320191622648189694877633016006655513418130608701982749029059985281062761475494878176941011927401684658400206186216570746219804948965022326162562498611565071967411932944361682792286497792685597351543331833365528082616785387317292219935560989406130535542669765110935727493081495879756928174272917598138288302545348246741474673783661826860352103743329232446486623402273720039131239767738913202558915130955130577631695385070852984003920683999684163798506720588936600023632450416794204979532458852049832183255547790308733582488632207131842902763643485854730608704575913474432226116109885845561538084962475069328641202208632091590792318474030748397843601981122623938477374356389193483792152203825765052961356298088795668041783623810283395377206216913212805280483992995741121385122308810127874070534691757969508384464219119745159892524010918621059205150072292113226159598723766963287978526480719784690354415358198423862994664202328125012428393940892849111322687730343199649240269774604589606584274135942138721639335379831131370006000042167061268340924076212550316612649224786467890328334701166280080442272831657840927200428313277076501311716655892560470073532060676895135454687233403890245043312960336106139030867711337243362749294237421019836467666914493646178527925116404163671418232240928436702169646346533454328990155490773152870221238344426764697016314745417566305395194141531459646964497145626497992335646591636554332156617088903743384671678576783176934934460986167220094810425552046665063764286903070476580752077277225620121659410016312741576001269553418549119241274705960009274123064192147894231027218858485750644279303853994268946808265701484968189306171268553424546596525728870185640370346645983332697523566013806059695267238661264956950108919183333607416185992145029168535900047203341221913393079356977747180897397851309033043788124772681373778908602638595138406596535786593978328610306748021844392026597229139350716018922621980500975361301759908285423859640397461070380213542449105629496511887794794322853897115962354535502137147591511625592075390654544146268522809165426196873427278977297148727833571386471428977052954062719062844169215438449022105935765041535100380729384787855747623728464975797891174000750244644368602909215693271283953568311470743944407356436232623597835002535629406075778945997189657815846325558308243516943507329043512807929760272364898585130445690572588910168211774692197576765953713308177685638049549897372324955062643189595060021695400828692595447204504317049070213784319512814352345205006441404844180371667189419603743379094854006668673474850486905575086677698178339970682464440820630050500873373146121491270314914313266560746927488368549531927095687557756396391850827700748202027061759999062374146288685549145500319422131107871159188564969046493043181991191141198776777862458550350760191380904377489161003213991656805636540916662756566382414154291648643832115394662495267803683354712881284186386914137671202777755423596523721709986535012651928080964241149226023099370183424674815455065991015514360209108752736839366216405808312405340060191438079426496588479237210981182692590290062415689216363508875062184189460302034611849702524079124339717552753466098303858348227718762168616625946922331397696789962455069580705522877622300034977735353833349201396262033131531192647454655194527471321062669669880307062108553887437250265383875999027189778919934573874613398356746495064881906496410884272880676172159736938277959306454518736967055372712099085364135708333427395245476006488093947167027443134176318520352818275506231109973908900055075081180283674872038531486523484839234489998096114267068178512363477681128578232906246561312316599916489570054132259204537049711556229071228539287471796296317376757144623067969487761981710889116615215271913309747359134889688869456951029527260071267359632671186808560226679277138060775250247794568568676974438414208403443701944419201180198944703868951001518093242993501476871912685076472069170880370647469044816459764611696664162959935574346200126603028662497381387591418199497446244595829190780558921850783031871202685771001331477197081984208886852985017431630759401059849164605272540399125939801294900165907022360039456491210030361968738317083912184141291530742807043894429860605035416792478193420329360615348767266936859979848798690255410543501044241777347167104037125958275628670790010353961489373890647302780476327272436480140917009288346200579203977399427393689698438879295952518793177926608272660181467279362843963485552389025245957699859335793224278785488348267947002852492409238227612747727454688365455890427745452873057636545858627996329998921064000465709397455749128763121330088898693930836994047467360357818296982359028177005319777297725187858664126212218741918778058585468504871875031806525791822416272591538713195093046540820310877316605235199153212677694935693687327818930676899960905441463395961986161213121005652760695089462550874573309110899799410223596342869509967649178514329537012341491469862048914575424825453775549485124186461940424587030609875386715387338099892772274660788706268370754435720650357529506883628286681214269682596266277259956335035894062363857062726457344913659300405929906941499486746147243501697813220651189160528684029411697009707544149737726734214534586392022230732733575662624844147551685283917750965709889447749220387603989007219019491492741511900310169477747091720389473296453653966786841229438597252550703186451198931445973281759243235781472885887822605474048456447144134053272440797498398979703418791192169872910578349266410876422012023094736167906436640948044459474335725879407320020444060266521783569996331563376026500809410351094282136690305710695197598294864349045961365795363155300704644243748079875419429782124726833733876492110289883602758340674231673775512131992385614866598446368536608183474877816822387858407869321140878711595163749122146234718181889800458748713326691722114048962136930686877807410699727373599128373643873428243070044865401846292013101580694816189710263904974560228259508759557531856630190699289865169310247347218965155649957645249965751542419763428309545140718624023520605028955879200001079610453958279518769160997311726450298811939577237648511387474374595850609715995150404408424778383780299393433901321537424672193757058088147605984063056778955221442878111802296743436800280123270551965893381146992758607957037576112174128917659855136158277235865915469329965654587147567651058420968235346352796566761142629819234414036752530609857556398655453641864929680763468875346309876636304638334873752916470702111617591313646332439721574974312929438396451621395435879152685179651792270450408260374333422639152386882166564348687488253278230913988827056430750448238766870688720097339325793052711275804109283478449359236501758536673390575058009698007532097012503246305135078021125417788661131441310112871953079143343403243516325351838689298075772736322326439474247308811125722253350203923701602938457526770768865004669234892850465685786002138022566805107229847161056408687540604269973816473468454746625592711945346795083681547755464376973673436590524814278708519912912726764526625937083501239232985985621996447434034242999390005491050866165149528356449718117123306712815929505681621126874655460921872898517116883312326362809068540259837850902779825397788537969158018514976462805717094093203164892044021118197003879498731252164751228887452612704535799756146687503388394295991215516780660288910917691937428065711800422056417954269277960470922217722709505062859444946405367775284600198366606452873310152337003821049666361960892717104556445003402598048842344305229378816014670609361228268428008045514945488028028509250861873675871441093563442489775959122621440845689518177594890451795374652457615603337110907209887611683458960990884319251723684735020819204757619880229448272042593591664166698168864260529271458478888028258428207072428312395144832489625774707859231975488678194683159486609666111518178043495232845872679368118266996385581167700192638477086365029956320768503453314060072767158370296784652986910535177871774713426671975328360828089044547996828249105487534833891222229096322263990856256782684002884135211341805410846046199333041860948569587678584727344419248347307150517725569344606957182974179498534037300406300738863996182744531229777189588291069740744391107137262257965846479757286412974681856088058869755674233868394956832071100836074628183822050270746430495864810523993595636838080289886034463586739586439285621371102365633820134651243039160753478479252730162245137038041570460957295959585735182373089254904967954406552432914045020274373216421596583860132650772914650411375952963345588008771737541759812776074399044970400070222837907333599656713628991591054954972244810921183017287300036536396702791605916519167689084363022527423961788602659643052047449424810940422159207343919895939553526428045970631098601412869133509176376646568901789897905742856959147550947166307697047880043799848875508594505355899904421157038399372102992638768712755834777695562227401132727612348741017437052449727791228986491503416430382815662662350334423656693927558616766503892065576179887934729738249532227542382119483970844839376369810907391731136543308530163558374618521487551269830582474544140479881323567678147864857162820100598955508344983766052502205384415518434074884769649399695969033492929952355015867335289646099764767896942246608131039033696786485287021310395576394900820228511110422033297948165524833507791244723028772078658292849925838321223199259402205179388125782138001377935949018082889524966788905028843072822565355280528708283404919473351280868278985104899107548682006705419263506702195044526828149304976163490829045210236721437471451578298229806901610841344818003881269110917100906585079959785916462231363743093219643187088225604504019292266264575294712338697373814153765825152237171434425158797842775892841387274323170899326402302435406606267083096053513712198996054044407619576628082687425769256949373646016091668522500817100844710732407290697912416644460162727497923188111344475076473283992421309766550415699663845016710757497906777615526934773329389750285619328466259665323374438905225013071274954253365249171969569129860331527125217674087913971927613051064208965074262210717571860176453205143153527408912354216635761789159526775657238974061818188570658232538152743573835988402816554773542933132555197971817828621905505479481909199058731327331209905305528751786605128150602013486512233142576707187137775213220793689230995201314761556054344868397284210275502124545857678997829378344149471295244824749813487355668058975773276837472486707670716201940448301320317409790991171459527748279988453234155867922057622912840955905941755824890346117993939963797853529631324256203890232839922486442947901004967313444759381563350011683362467756434924043173915874466398337836632833778324339656884730472961355932754532440823784529845324200196672683096537329845704518304329086831787199860072491746871763908596210885348955696864690420575597215442577436154596635506636343293624361476172328420119384567380591817618463488989724827099979221083779554174242693367366277783354919207886685850296872194623409712504640487417417662451562274938719728448879272307140452300407680687402834889802017459069806075995285896752049392035964632808795693686062353135346408703164717623342341724393481974395011305794529997632302196328187624274118037011267021176667197519632476725423174316658869245758032551561012944992409881208526776077792435546937573381304691484172037431202278266046856190372830180138654916848913898982762643255427295900141733443824063718815216448362129286289258736094521868046022051548867805240691438936598693769738735310051051954517007110560249828248830941740213681583885788404577155481936864271262631638075304624614553130016225991120000055075219295136445552877979603046979631548926362752616113973873950585034124721416552183223570592345569890985441069334573946186668243222626818413668998240130674621468742246505843813972210620965445224158501318451747872039030269094320058734536813749003205130111481906117971297291574125861361975263545055117418936165791684629275924168024695942239768322297427310608556622224438944403049361245662687776155578898037488171252287134885080606477570498879478336428708314392948953842103825256558276181660993278301848971839244511038876417031238959000728626288465452652359761879541286016679393558853222145669259819267992333137243524427518148996747275191835595589403381478467164052232371106810087791986880890618992918200391041288553474027903618518973210689233522981050994756351250531268657179525294291258782836487754896575588494401704559971165015637501900106711464361147547867361277399673051219792406275750241163032883446602203909195542382045224700387689973589355165218785830746984581959839346619900901272785428623740010084270450631578824633788731622986278491018780251788192156382642750953244593300826498438480341233247598314429211497843175803319430712065433350452319698085063634720397648147748795041084613599729062160978951591833040020673357657595298138101822808919535120280130084626514574805822606631719527953667504509122865746595386757979475839261613780804120325928559168759912320596476639845537200963479075114254718530404101276542147922962433353991562450022848424202827314313737382225716102270450227634145965528615232621031405900364660699639605628084536587476447430150130169286823610479467939557654240098678683748505278769015008692833756209292513406050371725459419653741593471386832406015040164059822719148789534065755035311754025598644441665321618840433286146291161568786048229831171452887957675298783048530477300659361469758716872283878170330138806465385530459835197080878775739612726406356581688461629643717084383533155100561321251781590754597971710314532718468512374802767100774173096473187343540107589840396691407385142648937962441379244480041672532619755009185425609709180760379671500797042682574459895792381020553985561746911099038631910173417450308012336830174167989426444651252024940919862566899827946666123650734946824418570125398047190268508793063320454847105196341910643794341475226682506860656643742042229679557010006993601388069453983622833858832320892665448699968955042524433627907415974183588760332687981272523930687256437068605722793798910722419953217319579435799273370431533046189192885269328103383326557062864146904220006156925662053005800890684412712450339287577838240817042054880803940638216682313176803656470174077428597313000233559444964661056314039648725904681270952039514770232593556909993588486048052400429348064863184803001413609605981702009951286472610175174729769192054547151670666429677248966420331182620815342793766499528512099990263201871727879105267541014741837625295322285028803008598976259163645062521096657243129809607097787780183709987922677572355728802384154565396130480588073254722388829677930083778013555469910032167386356517737463268333082705895818317151632283272144037017523844211854551161836731571705750521874083218822452052271228702243350820490093873215824525009207354315129745080878652799497741134362502470993406326004993302841482605047188441976654663478268351882648437808180952933783076130852299838090936470612284256389553267548284590663933983119203572109860772610476424449352689138390048558623248267992967825540309147930022818638903222204897148693318832953707813894225471662167673258529502200883428304200619818970267537161457129918190860212907270346444453005467616548669153358156179266500089900947710206329934776261454275109161746971965040017619063423817919879850298016211357188413762663129363290814661288732411776781655946474926268402083983924179653674790013103376846180970902110253824995836305404575827024819514670248470578713388031310699588333767012324151164637819812790238316867307718517340253241668647155001039766133303249132418178344836266856702474561245143402861427344453579797373619061876293467811642787269028991978917412897863717736547472442856635390614298297380972433563305591667374993399272025216452646492119718589644993764926003649161703261923346436118834534063043777923099399732895160708934773639862260137132409681724215702849839016143405398135359955822826137172503563773703580772624280259443628165621126069773150780237673162975469722732556663474169040251520668900432601187102421891318528916052934393987266860711905913740849939053851646162953400585603280061393167961531439252980820475115844175134642018776340326574380949380136016636184032448184803149287602283240099124672675756016056965353830126846624885656950156108687476022061034907913135749520845068710328632748918324624758861478287606366721222545798511370032023079983442506702420956786460485345000884475797072925375322403967151376414955691445695953219533634211569791379374451147734371378050571699345671520474102966558010076540454811291982274569460365775443877834271681103618851034655272642245819272473405797969764905778066154342146880826166589078625195626458998720329976237906390858185422242441464915606962375223025806680251749145095280382562393959240321641481474821665205361165346164155621399514487815568131643339902157194522571352075150074188154675553790245521753592684386167596172607345211215657925809844364366948409066416260762970591115488091339289819679960527759952911039200436818145098684060478132794405453006718524323518493244391738073554992025214041737450691972012993910871950758416362237352937500707549287417173195822313516826287795583078044476114930676548903532311747902066881338033432711274567579327806517030974899975744780371524582300552580569803567829998338000575022713809983648368765082250444278899715569242645409673140381741933841073182402368898326584304877184952642219681810197623583568059569885155437512250077295524121211844115633423838590714565793924882089240997620208852956609735041512032130586864447771107022910318167733469092877068460546774676700378345417078709127019000951331991913598564043473089585881013375305044027669559817203381456046413530580806546479973202907802698360133415940237826864602810184403925746040239441277603955474869132386894531862587163060284781194491095000836128218568999935860390081929243899890862603512189962037253266470722389740089818762727827887376987109344343630774567950282465379759603660578247876503658515431355986521281798278566156059764200300277793894537723314685532954870336004382312491619395219386908436912496330259989770853870522599262709528975937855948346264040226318187004166669571314460485728177087890985528764225715454110787686613656271651642085118436271833493299056556400332964011532941348261807633212148131494509398819827081940509662356594627267902875092302430686175398277168993776233194282976203817175762756499995942683262831647433991927379622940981471258307792639740948196612727923346835097082208725159733974285263693857911976266878711817564024584443014044794046602484142674920038353271311099630726820035785059010739369949996517877260074053754282508817115366749043231943914626790248425121723987056488592254964114845602796949605672361201059134901576271592515476018481989889887921060135523015007109206487272239045832433537715037079105622424806001134360198544555251933930197701737209555906418991422445346540818377943095794534332898406740125744028190991017538445780897773531359624435718474851816895892277981257665891654420136705674887771718086179914331787243114887164706639800077342272323363189133237125586854185217910033015061300035797492456949542112997836742791555504803114821055819486000595611335045223070537457330984130793509454306643754492295585004546828588762068513012759598568748194791151641833983492893286383790222792870809978356609677635203841467685495589250199943886152838707149749163686745765771171070432852808871186575904610853869420753133396578248890481749914682642435432371855007656512191580835215280252695792159173586869557879595637847760554926545012957496563771111886150115188271742985329240705767074961306349504965353878880622846099532728186531111953306851167405690996608817283108794688421160074497313466725074463918976569053847569378366840180095959422364089671774860552699179750226230787506114227469944525509016568240236125245901423459083344784886202138947607113713098931046865922599700078310655379109055364883380532657208160089419926368492496825033050901473027058937142817765252897698459742550182464012205650731354079906558800255782686949315903483754737040286951426817669181599455924019781929466372122134030254679720337281242626440755082058954993835161467366768424560416863811596819813919229920149244726609156612873756258533938325634943992454707495753250842095689426160816745022942609388094315076123078500608802281396011926024338718913393642168548888379699571420606983693108118456119530158323048035950606830814836577779257608860531948581972575940590514042916281395648725226528982484263440818264512367713986230132804087387277922169362502350626769725898622941349712570357234244919993960948177818559659341855748841020673231635071706108249919355477870207927141864714249528184650741887092235485833555687064033782950210790654513263106686133922679807818401302533627455285048191021188299123416909317940148381169151992585773791813204902021043246880135562977218715753803884224800851252036205070120283941913143023117813797322084586276681683855314991228634576018543544204310601614531977168634810985639700999743400390141923793504564173310542360229993660739335366926798842051436098475871843549779872638727595006684046997789708307307417829682623894557059917432028154929197294110881509698026957257914261525363655148870006984023570524274606766453960434845138184903447340691003933311499647184314770427333273371337044199958240477506043219339940479706944658687658588595350841832069601501447245232236502676579327232747873681164856922345592435413171821645543628930259799505727352981188603368623196682253382490990994901015637354920913551671980060484860056006780869800396018250938045988955333103754282999313690029649083278814084576610291328083290538819796173227732091344160341916868805276440105510938897765086645665853549148061900236165589173741315185134792998390683362461472451804260483919148010507242996296700220283574501870836111841516439640795987122512478829996401673387717762103188289716826515039392704209399108281675196169794648521501337300068924613674704093266240254952020661976627607483618588992813246956198172820970742400210132341555956808365986766166107606994563788897628465336669382030482828015858144341973005901305035175788964365115319642294299739451937559337370476182014890042703720939820249599682198450027542774852167067856077160017528641923751780503027159844635869964722914510049172121544939954514994656998477656033794265329091717137102553941962694552097442256354202571321991535951829463201022431432559628391614814671776086991984969694560562663914172508605292386079419012524161398105754893178370823390505538984780856320296734748996929511687811337126814020792319869448081304850392812333706007227051315907665100000003424900793913634969557386136364607817484324551777022682435760634087521929215389715435689116387828691009102134323733532783693560395472285363007637988726911590126516842590075680261886753685096790359059193501656761788391875505878379611347536778755518623154681868304292993195554098759228010554610593653270992022306505946845597471575456292932841257083173423847565994461731974090992782773840117008263298626348583454004198917668732096905345144312610908620881728764685816011631625033025326546316822969167846149406985148757845340542486104942774539902948734433733874811710651616273473893719273676742383764004767195292005208385614570076829890000282632426273462468129594076178859937220702215576736798411876971901018604628282691293368834847610030808629522381419283778851389622132557282323943226176493576511948217431181891080612224787026808744673408012122472071785072384828385693166693516479457686566612819959580034470451304110494267725505211779685047776596222026237636598376150601281872435344550462501490835845740656759249736757546610087341186150561614596359200713806231352987470823666428927716548022748596816834304116259348441147244191608399874437736159062770553646903979842891887314861743830604364787929826241393262150996035371861772986979595462279087842426389984403223020022739874860781941363046693670823267433967990755724746042676025815425518666151623852346152202381584555849245091515760970399955360805456051733910403087051181581390973494324929104829703809250978111405395725081629404526766322228035663003971783553724724829934268674332185253147664560435321186544734413026976855336157959849745481511739901919060997348454426887290684366492180511964198198314026646749058395419136785549625867353035739574047293408331947237832664226423557690917160665087798631571995016754847400606567368013677027254724889633646867213800040269882624936926177256293323330733679166188900880833902925491579964020423713596060122161231999413788996503881219445137032471239487323377385633332775288862776237894388230449335041832612104715979459828032239133728178486089472484795424023920927042559637872431237138014373046539007001682043858258471552434106495876231217436071618575751975587862198784382813176327922641993381197566162250322712442883884440464612909980251076426894826231591595602325049935062759388349885323102653352227328548203992472045048464086432944735026140371310808920672521869887777632378704184521396506865378517594632196825447466603944209736333492561712631390126376249492659008046991982451106966767240565926338920293247752723822351922027885624625734405384423998539234038372559933667792434286210203728823445941008160466744555443400928890252980721287164471837734442493313135607951483478371498886506128680508360157536966221685564367406750005051437253920685863169507483564924660815834460827147453477145202560265795172510059402295723402122695488655801224219471442484761536197554419283702202073302995839817630366630798026779555433533335512557059265349972848006169026234629058487805256259894372373004620504937340580404856836966423105266187309992907418421864687123039453706180457087448580201620015198314004131187961244873986164821318058046893902934901059596705360996413623397139572614526136810027854057518204415809034721954437357431291655089740417174361310969686974041784835285221030144909431837185348153328695244310279392520565601978464402525305828979857158481989540939429311690320571151071587611588124933700909106853473924312723365821160320647659173247974264520752018490295975779359386134922336965157661965615397596878897609840771200712385982290921199005505309562466657002932133692017902828055877728367043558350284527758994158303205947084831134986634395549028977162501258938876441013844788755204960505908323872730264624685448524910306017940150421304701797263363049580105531887973803860928878514312856399596419938777995041850204962515060099029585158142843447563001852808247570613728249997106368691328383300053041003321820955521435701831622391379736177041197806591544529768087955810001565747123149610172786967263764595869545669636514947566529118342633172029256891054053567630384694153003012119292102829500785827743765565996926180062416540035242503341251440816004505177936930405439373345871227755857974509583640623987756582334433857795997757262707270895757549205924778750211011297627677688911934412173950440719203934358767909076187646678923765374628613461322173573387742009678941538713840700865506150026917151226155356398037574686067149877034627612445074589480278284893679493106526773798643211895862676503139865133813364074871543755666205431174899588819822490900156010254157773263597268484343145194135381738876940034476314431948724507169972057005790481438203968982499045662052135215108253524987629460381881338736735261825246429780462193622290075808972002179833501807285868420343032730712565110155182074315958057806546817653999249288874541943809143851009386796478869417515109677406130818610704234097455646655305217562591861204001406614971471303797782805289687205225020665169992219110828866606765759043147316248602756425349499690397381429678577846463357996853756279650586540883181660128149979080500284540777071235622099432632635755820536072577157036921837894801509007347295721268912413459848242099759268073734996881989393770989992362273719973807311775427855723901974120157244334767394867742624277827174121929132110260766722731879569796799719436575610369639553559856549530916334957703416276993798809920024929680544117750248846532143569773516492302100985497522363844095349728217511929915644931317234350823837224209342008506021415668462446024440196180100637136600959248425846934619789378588832403158139686190165399150230510606319749236181606882702854011830434198312984221268013468182635011788700703450323114229710499557660595900810639775015270599448315195930400482781554986348666952076932007093338018860586510560550338029896792941402856953159008274849870059317996598756711957035290391721473093762631966903132678980934675915607291906133632302147370366070044207468092488669938710599666783193295929110021324910409435448772693579309618465784858372146833354608926915352945613277863503414766567879215755022867072379793804984541383492656230473757269968752818099787358943083762501622678837271573722164915061185371316472083788290539172408457925731427977842776224548360650358732124416049573214747923377876909680425088759057477345398961255310998036105668629584628534133550835272767892250953197602553795894895025086943194425334708531391881887836249094085624360556559829708674045148689018154421611624681398336678593733212136972217880465271728986968984356764128163835623320951652167360850050408740729750037393595583445977165501179797906698059242367228239522815034998587076547829367165758315995854598419655304179876760611024340989120681573030934930334389788223197989893134855999019987046912789820383994667677065646121561324313062535967226722459133437057860523269237573224634056679254691341159698383909291120969127117185228800606814571022575973104502315562070876576777198335488751756227993654311448331065446608136310904209399128314811170439901018703734262483619183302057897519151483742924570152100818489449907133381651535215519475060711260454351377970620225476076384371311859281897392436193966123523901786149920131184638935560520464642702760820655474438097860073598395645796560816187177700632155421011336738630384590617631955333392698736852166434131738329711456203705378072016642847120594425840438687804456290883521332816336357585745549096332555847857132434081249913151508893248024087178019784899632508911498233682423355503122515209388091666186479469543214389570491133018348404898610240427066038841979229493342157375522549143757030640393831920149779540614602388713335842060967303279516754947847133454841605772511381531512813662486359390397593301455899077062936948808995276237604591313576249352669081136348067869407032380557666869217315335822538282405229135533943731080673619831738087045859234669826233233931637754087630597544621301922314673202813051037776151720999003419275813701537148613408612184478196537762362038114062481445046573671757757926607447557724257649290182619518001648831312841269622268737196561725283882727470052153788762763283631130695238935537973953746568499727188623785809920888075042042641865371280894159748089524743068553580292200066088325908928724398371620595424490304696194984115890886618778366066847533562156122824364400492629480423267398375187868174030748592315827860267664984335419968308048925023483390181169870751832934586338085127030045391681799942608940066709722314969942375743117287266265277986336167507131594952217935984092190825847095767413673662787703797954052088153483403073471926930600275049201077034490066569243908802542357647796551054113159294532368267899582658722236982129708415587315449515251977396014775984293372869071439088655029722338333996277533573492468616566321929836681444191244627584537128131353430940547324599441067645297587591105415731940662185691117896200077224328629134092705341835817035064384175890086781300687113763786501242239037628111353329741506575843749406198063108285730094057495376137319935553221406582728486321445901590601320658319999150153808561704851118216922041680727228655169142668869269701435756720172723477285197416340197518779306390709335340178296437418004331597672396895584563126150634324345889634701722785299186127915431184111129624297255215327152898886166435717401988763086732954713581930007575935222284932768536042767201910524530143454777636053197802518381098596269864689067432671267436394405612882283639342172303836588580252587502766632809932640478551167372405845474243755191967879542382781734273956027066216637618012127698306256484155257724651164647938920797425055262027762926066778690840256145756582387262140322918479020917405130056054798853317884480349522888234863744574815563465738153927525460786040084470374548533186967602778837121993548979894024352865436154845301613659644330591006501115123875170873449821668672381188500291922317225128272041844660196429990483392620409498564023583290578930264540734503777916467408597113902866265683965336204779084240516814324126635290004869048261071260718436971739816048097035092370230240194244099691164471241457835207492843132546422316728099427631618962631852609287961052298695905378594504497441750952480469550694427824997988803702247120984346397719756829344352950263767427712478633105708217536197623234783549215345675194076718569192072739711347145216791414660972568618060627964337151717469661186504812479806022101664259634522740720923060460095774961812316006341199868889020878573635948868847738948734903953606070816880769389450692296494237625820954293474922255891389379899186395576493524007747432661478496598065120332875265351228011612148503150300661640809458399289447989959139285229557562805249745294722979936800073377648349809151760293672484369564100979702272207807650128179456251984794837278080434101895585918138952280121340527107658095404956484949883526138193391546892759786754613431030895582285818947413558076127055258654434389530922808464429060133200149776784380512412413719038144026562125298576710836483009170795504470218825267978561035815235129223888684756419198845602432757777658606264970264480522631694879681032068353572832044690030440481010916137813238692705776950388289840727182400519143435286950109659605378625581152338395633853272992567803033198304925066929483847668101931171312970384134858575365929928669623131907717816092901772381058392916758883885014393277456200096740905503503720419327569489921994720542801013513678734510253163360957203107318053134752875772706328568741654916701862624467437497212390319139119023529854162149607192040450766347364637216023212792633310078614125640239041552292384334444857126014818132050807269846019196544944655247404090319959446045522225508846150660716601013680657216081174215642586749902404078483013682652198840151143743936113816933501471741915252574413023386216619217545722472603436329382995109608697949989166745107850872627305035976528822082669411457248571830549658792079465552933412997318584162970221859698290770589047303065311220484487263180733480759975761089882828969265016642389078922205421230712575958940725698073334250470313695751047026977890416399342741232410255444958639336408856285737641222875341165694336747746154509720810363270082439748042820679794644980821108845175210562979960691997284874087576288045018017940774142817560712537820149313684755327682855576772701871360509171763802615650109509843443327853978990004872384358992129342690936181323402854808876117404449907300381495870463557816133784350919017685398381641532745168733323808999147046380762916855631573819419519192854224268578494393266840307470904139106072398562675326404871545166130912631985508828281078620123777112474064399464307669723654692240913666005785191869361536906822858560693513210832665754547887045824828614167291326420098289616068855837766861398531420437940411678543388117915408984517744919902456636686804107566589310085114390486501953098241568179245371792260658044298730789451920293599599956517225479863306613574644041517680499190190256068659451442622511832730625287721826810331055056116363938185623368937167691078879920116006316657102890411167734191053687943416611130513693622980074545392499580711627009596016182909585973583442237033040759709847742061246701780263419003264153558379004713190530270665937447684523228597462082451941965040279980196304456706883166433960064497669847657807046169544180467147449757392348326092104790674118669680645170439133936694073437033868851130048946950632642054403979192445644735160314907704690992413213650405506830294413224806509065573028540988088177275514062658544669101952166004735986661989231883729712670994817159886666830323614159292505715048300265511860892091903810493358079465751615469733069624394116590280756706420320687952595877312343559223725611246100757186980146464316697152288019330244763117052769219928064615847145830116909868083829752122283898783715385119636172310257309583044026823995356360789716544350000176758194939028962433644092383410855979939557485217131581055314711671213851724030295891154383067559635967009616577380762914143306156500043329709823384787762456625645427341004068041975453587129237867303351301978428234913694084182618523065215757410786924517506794197019910928801692133463117084675013846717983949478729352136912431708848790906743429696715371291781664950846754622034934259661215872983545883953301284835761635605209161705823082275950039851280239525931491880753192347945396276470796986485823730864107269964447884507366189369060388426914782051046587773952592789955624481011262890801935268096435838598497449022004318666426450064568289228006346438362090287975213176627597657370699341044375515321334393562472806330214493426615755344208357205014270228444902670575951422035119850787096339634345411492650822130532444785411192933932282476161011717266470074250868556978042576745978679297801180195150991516001026121055453506133707661355825164225153106997838441804288924003246350881764521973203436108021939165051834478033429336015885763862106818806664466868539235008113418427746254526689799390695023327048237987970082349881979691693842152064687482518096021565701260438019761488904082042288486290765481582915144024576148965846931305702591679020917685989432925309966108526787584252399677162163951385223166621561738306002565289868158651290216146869966197765990284475150407748998742668388082127320671455401064714788713313706604303639353950880332371270243502319395213446826105402786959923383681362544598816663328365294117558004748219244585659839609785204438827753410333983981501223312980153863202289246171229498583689258573214420721966483061731500810069256776889495108200557477922762754053824853037799250627461551467450969559500574602390905205354297688715185022624210333237380643046389623277720361298863458515353583339185656752509543885685258535470840736702507951450861564782084154874780746697721388183037185963510063273015862038094533272820743478544523816327303733038779916852221814254033297744573790839279788052222588238502624756737717277468710406828119373975354538049063274150093375728513118321475198207391227254156623020658042852561478294911328051886109690876151162349978762417930785363445123317631917962232532281248155769027992256245905265176307980091875069499820320055610398374445283878693458979466757276144682785674170186669603721158197039737691086382768030071373049593189548418164675973295353843856089861259874026941055665760503888942721944350612691930946146830314073644596909785888921451820509647492444904501210232583417639205911308012938109162873921271345773274626219012353352584611478196745715001701742612691845623343450335290195795682839124577173982451636989758013408205839625404323087394555846040302853935484052994934031072096562405277202066301346598754926211226317646380153474718379703355104018065317344918652590102054039658969654538704922024510766806998427082637993967275670122115335170169965457343854014337586310896810098419186865312969924308273779867649781153151904968133364234929093121390543168735643799833165616265671030147902977340218534986718276805659598819654801414082103397465668940583923721731849405787589665267599683550682556746068729703282135491094406827241514171800457689182617127863445214347207245667052500595183040105930219885162054719236459701149476320402606508639033280892629338822469290131517211911522521881796316782391957260731057733627292025323894848795088953471073154696577181199985254911318327068665063941991915710892671159990847903120960293539291133344543075763127554234565089275289132732447339765078331653142316818517436560212052057651382727052996143776169916522938635168930554142625477455164050742045763825068035177907824444702037192405841810303890064867478700756888406780156393020574875496919536237034780557767470297876546254402057669539003926385644360700916751094835674369163052757993559678727194638059528308288756352629852672532732374102848436400592359151674224468775543489367004715533373961192693924647836235291016342535051239660125749469111125102511690582101848336659142780553293134485108545123284216376110025524493731580347303587778719845936287122619875248944086946056548880030661088856416172480984466900991456042634878759597055645474111686280825508338454943973630090644273263571400180330252937785400517788679933154548058967618794527913432449556904991775208466107972616410057380023110537133331047091004142393804776046873615431981826890308934102839236235176967361557357096265098578402098258885977656592791476093189361772416645892304126540005195023890697165872404815537978908837228427671188586282032269788746102317760550764399508177924993039606293920929503538766297411479327533080547274494430878983591669364344674813637143862610397905604169440057942257435317107865976331178575574785278108254146751362657039405450549097507673641255868287831513032364518622413098101366317439669540064184406426118118715951087708144139750039892764514196623453129714867107037311972478341618861016935189665632151691838053053646120116416920785369868203916892824499727949300772748780883416303596599792561967172973857919694667622926935208369966243410142369464797579079571779899179971069947246499594294835863342968094782320100354718235723602929749597077352105902305159825833406962292584476193732620136625043982866498629559463475484822934916251283674537740252983222551913186813277350526629850083964326299964289613054783749108484733249456972562324474985830888765695412225816255240393225478144229521119124378024304713657095672298789658705588923151452033040451921830547899098536935272060369576204247163425656417119918975983242151155681744438473797195525120069303047066155423980386241177895500197092140464549121604213626688036731492064247140040457886680371995836149432763616972413632115408723700730284214732323984742245671656387201019311347425158520529894302781832866367343761775692934620293447538512590007732291482486974360919530071062698844300336758867073696147468096653985310519268534838562567229290959482876166564005609978590007287097939197232495548805240307960318289384787649043766699799202980343217688389293116812122762054113676229904889280863683623788119444598360398922769678691493740282762356570132864874806559448458644734928950150943582805669128912155252507254749024393234510175414416528031908573518172731945170823082047643017808604336603687508732793065725907884481603692124139739520760979451009516084202439200130997792086835620843057626535333094342074703182534002010695495571086046526738452376736151061188010152522925887512108399572964319081408140555114916489109172448103426324101131903724717981999241988076467983769182742356833933941232542194757229112167161096179854547725092019406977138239529963594622403142090788322637909221309809499444624660819710289419341466490818964079025035656741890963596605981361455406195873870784422460911221340690536429370752326583292777834760504737089369657461019714426602212840613953412257875483183648271451245886695165109057125289357760015729164803453683040582799230323252921587338669789587988405341253020783261567940646458328370412324058060713208959400002525279885828178591016979026598363446404185255559309140117751141466596338054950033366651932478458935067349180189038288951073149126189280213180563449531824353727032900242288486776569629128998239356803700104722752786560623748583640086568197447936535885495761251304068147509102274660248100927881020930916047708154101876346957982236274591443530006321429916751335535128904678052470933705692786447138631769533136552926403769320703731034103973620688717145057169819317977596136289458133730891310545159415745359877011789379137085326521913917132773093779881619315985643367576885186795470642008313316865647875372439626154788138889073132925997210608124653868177884266957511639720937847808653171049229899510735920370896290884092257179580127607341923970446436316866900657024607524706539804638822787679994287593887399612555867292855361609004680052798579757850992092681524303400537547545460259409724647258908743067733888730106031283787064670779363948693991781153159860477274243551149996663007450003832067192773758473604489824229937050939457305573595428574772375863340200863794965757457876164972149475136846132980850015464849553845366127880744960357790113960636504388812861036236417256875847233874251452436591333627625643531880277853015635219741953033576474626014188872673826799722617521381887400504461946821386848118274202244119335400171742192513885247731460142955553541572536022100677843045791351157220453997930608003576449016725558684823740354497666890578698800814375268635668796816482831066702535789138832267836620433145122359083596187170153306837367416239051668661403345719375154748664171204191778275669331575496795913750626903439871242581115508117543985250388534836140322629552123172044849936170713489390293413289000041938797333925692255885371636980051994558678988291663001458739717337182291369989027253106439347880974527416105898542344529622509936638445321664758176056313250297249891763284997317811340849699452553673625573930908987322729734008414231193749331557130361715826257094395924368557111993085963800425089391755382819294156421396235599399004067797072611352956492204249440842386586609692262351520400829931936165128283130034402897866791934770667996246975589126645275290252344798307805425094852842123790456943480045239012559961067533582943240369110872996344766288517478381174337523632849899031154346439058622379795175931172885560021409727487005175088789740141506818746617690930167978198152384347725520029397457644408708328535019902138952042838234436503003612098525294099199548673429328125176236376590829008726440208589349001662062919486882230375678630129533969078003231218674947223951166466779299327508048348703958626802957870222129416236173293023709012634139787156515474765352767736999891821708904895285992161523924181588876564075719058976258542631323402785054991933732715863578746699153424811261862773814008432447140874829003014388447785571186521864376994322122014082562016248063637622736351897452292762469247366123945735395397649368832149069804092229592959059651796055502206801450320683863484996299041763912209507294108052108047876750895398010124568882244469510011571122477788156311239154888124062072638641943508596724153372266641419336811435158046178592831702877862234623258879454096578581881871502238547676986467260347273101389912597273059137020598337130348824367390712185340337648764458995703617335727251753177843160230207621907369687241413015585294846875344046119041888860523484336106504588682068708627171264865275033624566616382072725132549873101783965853627686421563118059473772727038263490146287246426867339534370869435590830688284072853004157445512949375621565146846848012242007636482300667158001346995274438854830630342971865999075376056826150529085165211879251050757736845716429861811178806148789686240844175624172552247022487167066715430431946746106099437970567076710245070358998764826405793517745223536757012688592036633238222176006048755704707538241928941267556050301429707317546663623403342882675389120089772425294668386444062147377615977690689014968426841672203680544948250692066600043280594858597959078369073518776843573699153524439262288918034317778932307870551799758398389438796362579828470038751683874904811928623355797998494426387066896836570561336881930747699302137688935221410408346031709253333810778240582710400101152550409975281450703540531993042195938523386623008490640589932306011619868460903428650995390237549944516050784803284721510771811071879106335905455275288589319779778467767143352111468935293676119402949357818985898435925514470500674931124016358648991870106441696143451433587755067189373970220105203214110127557277648307329095437285589375953591206042764746120995322998779279927812532200976441921387770872834478364535335555092246486880498408081153125580765724929219485097476536457619813679457022347351554771785575930797541703312697533756027931799673715435098484733548639266043157000464226615521496959403836656695618710599244028390683735474790198168518346239007460555444455246414374280938389644557712902878764592517788228451386645593953871623162173684175798714393250084338284959641576839612695874089762395196684490135120068316845619809318377913499097878805331091300587286358706671494569300155029132001300469415477771974356507507872426000750527204026868290238987568207721370892168818713515220114473558749940314724236096075806289749624665656239694958403462733853909056492155889788022212958790280279359906443856909297119184409602283449583240185922555911138590734969155211293127272363973776091123374882795160548065565254972001241381562251185608860369225283222635793496039889510923912355482684339618566371587361798977047834342189692594491980730541154593441676817926136740997974941647014180899132151881741050493904328528844820068262631027050446466303164368842096608286156795207454258062264710765075491476450160498697201142924128522374838181821235394443586904860044609955522004700240119008997874841779104592641856734144918742495411463189280942619258673405175224051282062507327010723774261205929346180403320666138534693953446359882967214287773924613721737680139583135485327738126908605927295381455463604180754604987304675062907439401811652830943493397531748686903764617950839041354620978265243203018970483351279484223942126372308036295117055521594502653685008463248060366195649477371389723929228120204205292421382662070997758416120232139018122618642373987977975332021858406876416790105076386605309814227845133648296543962577052776982923624620525548123854290266989447203713834646716400249345112232322871334345850947982050290390642363948117441770956030773998767441980969730804511648398500788198084161571792212071223443180248401154723962999320222561075140923495473224268385762134758114137421349670680077820746066713413124569965695387611175319134455576566387030366515620884564916544431906802141823103748733305294747341991340908008113015587183073035941646288149669464240201610621219038979414770025161439490862909681108946371804374689900548466360663131333221171631908393769999280223131702136569514725244356983645500316539792437719585252883867831537026482342306008044386161053659100503869488941071235388128710268570673582402624185991076830720488795339224751548926666373739016288623577279524170842751404741149020476394749404254816329984085155347886531291543890575144301591459552116080730648226450506297142231830006705494743062234817594547993585972396184589689646635074778431495679232920797183881340019381822184651044987321277054525208984734169838444739732898522057236614748873169454076060815714979069728869169437712555163838569729830077356019871386522743020118649851597591912321918335642866627733258501983828163447752815283203680176863566258428227910234128606933869859099767839486011090423593491103628437732596202399173879142531358836162078266904900542005848744064554369924736505846421782170845375966006394152048218270774290264669561369875871513201139754969760465973777686103787999228316953202972428043696428670512738948275115233986080617268844363569659823213504526177014426604353936225999056773435511316574615572359986433974607840740182268250594495730667591095192355922442524020540474575052862669007117774286250865284585578767923208988150595849548312632389003839184434991096802785351368678053549257347472829061080217221139017158047432813823216272406576920444187102570671785488330425729786811465633608247468807969926625388493588023481958894714250844199216668087935135612217154923585191404625083558759074547662370979255063875733010337233908902881678741958315428493196073913458290921997640784251495359880680410466745365285009736726018798594965645995005000145010988753336130282002767202613802863643600781482282238415686360882223552239038517674197862296980889792594378889400172695659074917504448248258690057473756937022308039301229720635815593929192536971213063688423859422398325014503892749801656304728809921994018115506098179897886370534569849797642525334847992528622318734724128025149198064864123407192244806216974606422859268723314423461193592845216535609138317991092720803100870607701680203570196952932901451881321702274563107906230066280973517239099731013260994525576585412447436589660504618830493762036969748880909795584187199737470106466848116070624877431964654260205316661163351357103994216846784464342322778353561633115086297156597796099752544881419855392385742253543774332642196548487640971258008284703194414884033873510662973592087082169132491914895626801536266455814182116450318312497261285929422554540346297582819349217608188338141080199850098805180795262620276166113599754611458631163606462630588356276033436449346435980122399882619384278339622867582796300041053285363408915199149217931158674794455494961496920018727144501267825493039849866816576052060460150841323513884665484371128386658155096008318045513416634991317886624717133518052148373273552771101959351554309197409700895931259013300703648140168658673941310787293587088594582400672085079142719161173911087440246877635513377183236503075149727146348433730979357551577673853457046790856291565436863523805237651902323031358464627975617030782645164734732430245641132784275108537710672689454312840412276580290483426063986574652767665919977573459051845280437559248166774559351725838859923795510373609404786557250414018645589808268535119403523288810227729424640466370173628820630792502443742151817262085060505069903482056224510453560230616951706137343022741127207974270932591181188586925650842719906475902511008415097864317979639745152090454762051256599640021242628393625404805625626490897438044016376413564263943566737546036262843813726399489102069666955481144772349876153190475822908137909079621730495423494226672852750110734542265947207367642137260208853655753671751400796858064851019803534658708089682860628076313665248481443228252298949092754371896979949195627715753748139881297954389212982586901743733812400785134296427111826495016157802086522364239516296115323976013741183224405990281928985926618585479633149212958480753554892538023418443838546999467459817220359582316708727816342349350381885137445599303591211297060742993908056960742870979543277874620420100661015182319542032277056618397471530182473998270901621704021058134067592826500390896899782776108400421487269826630289320382487524298331945277153352141793194553257742763032793013364263301160818468800340691875138592889329745897765593243507422586811461452217106477368076540484840397648206280281547353108959377058432865278167897224484903054038318931063792632343101032124611987430679074593833218299011800436069272039654362606588275296643293419554333302584719076885050881299204355013141101426005128706313494314467247418866703230645952466072786525105007046247213456815768009773270268599989890418343192473763191384237517869014397546602188246835321240186049795850594778698550564939871920738092519801662107120696953113608508024802654239641714108886950875230803666430880267436997840383224485827360828935550422982443721878593682777212840531739086569681757896886693431851815956957306173005942699567677464771350571353694861735529542481936490980862331230550737443086601562893603604091468536861377503891276138569150176822927607114064778384533576188289317176805264466207954778849253029554399234301866917740705952830002234775757576622962074384973532809268827894859910568354618067824843982523778414750358621479942656934343130857268833557299221053839921462437562672269863394302019253650423540143397591365439601368346503023925974353815734462542387868722209676314348240032670153920696065938485065948476620831269935622750633291694810173962646088742984288813333138065253765879098844936662699366048920818807115979560520173390349116317541990473679222853876972403370207913431178057876388772574899515329851583448066446393958029440466466254348865950501785113266677203882815510408795155516849365959460548482960540560474868916356111372416630466598349068748702033878940344351083042303912495085029638087532292156871236527282008993210280905966329753723170056776112904326113544797206598535052244470414437697732391536824922977789409075868894535535341088767103651493187708680251315461625628402420037136309496379383666363428844826201726164384578423735580900824674604961678079951620912240694933288560659886021438894345969622541882883652610975749910670195246928806538725263770671492625066009850073501993678448130362182270852356293640342514152240512183088263286808623196238307748932654613302457601943073317315238723740119132131788149044385842773195188907490177788707156676391951136473276871179612196955967922652287004672341419553396953232068473737155566760905597163325353766160858372264450723990312798546274150037089885314708924166429296579747843403710063611615553629671078196036771717834648265307500354338577639839146972252584532679546792026513352018529544175871272644493861428550653280356064129986748676206097437944065538796410901291702415044431952829030688013803323057737171093206774766517604718699722236330719064053397741142302759003449904927745948891888480687058107444540440238300005726281045133748033662473492900597039968510032442740048995748002481450652639716655423195296531645605502860130673342381253174054978798842630273708586495471257512886014375533839248888418634254055066914419552668000386167703177957370562416915504144376313760916723029331406852058519875635606864132738886019512268340262110170136627152336411023117206769126992730380246847761015576614631874946838672999219982822129819386973699541516103081782425297057952252402290086974611018762696872845785490276567225222931665311127575627705368986156708275454621275362593201919416654121166523024567053927651159178658079390435335304565718991022547817507754115185598611353202095326180762124307499584372215222204727700186627093092957329805192708883531172516112529479538700500790777212492946164640049582261160131634910955649869197136394233887202021359599415389221429397876382896361875472679920902048668987400602547373547755804548344299174735962857995133519906100999730164674553576908898770739298683884911939559447576303294530814498903353101277581644330404510145362742487590198825904232848405743183761526140095489016923045704418598471693311782022352840845402653707685923870574068887480618910787055428765423914956786912931934487825590593963555714089205112545309167200347948400413091041879398041944898048962102957876515150044782921584096244621665290206164174431413495667417333044848062640337997126531830056444110018720859363146212289584485361483513637529796848836473246513770720078064608247265047246731695410893934095414003955133147387614495979679930983473396454183468774942605739920279997919861242473223728313648667483888479337530668870379816502700369052719634880478617641396174810954175418676688646514319345536287489289941653438669498008304523114371429307818303330071224526350399223791948836431718889087662789658268654687902661285298187959257355878592340808404663581322662875377640693088570033317882545883973315963015842823550301208150661086543036488603161933240606895208015141981028085394385349842280137031881854155713781561707295857552424581339066170449081332967417031881677123076585959847610205921251777663049611988155401966367362546633485030254518244967404360594042753601677437890196582776504684437950195373261923121133417077299350544217931244929150492866539541499683434180488916958394561837105597858213395695883268402456083132736785704375745919278967359623218746225752054145052114511190792237917516783493925047874836485029799877854465888410142307346994030949684889653846459098022171902414205506699273092307001997405568880709323922998603111958415682482999727524517781430793895488047518235307464969303292340493007640913264360232817763073418905782629992550342225686714238647490680836909417872907365384901804622737587596004492320363224133638126547488201183294649891373451257001893001516013939520573921357477209324099572292734768204611071889517724632146479138254749190624464898054875074851066901270126697858684984783969176393102870216161277809174424893734908204888137090663298188796456897409267206254079345057388446462508161305745353598062564322479475183475970708764308704025877203234337743552283783656334845018323885915970321883469750999248258576303568862996434095817597925506179321876359752592239023479637304094322926437658179261481098375172700073412169439389774514207276701971870886644998864255574469033950934429315375465689588784814591184016289061318162805762350207447565806581790714576995470901595274427884253990080553334188312398047496854249265931155155863854236926782620305476124146611081320247617087713120034759990203168213316224087641604361218456885163914912121857174915040817015203495190562611506420783707609034061327012250070048596390897601174335361655582908124081316866607508423111211489847554323168781653024868339394472154399292624401365001260579824932284532271860698641730794796043130915610536734916083833195880706123113185773975323097716184011367319874761403109147781250831419542773294015142666471510935709652384223273461865470315683929680184738699239662272713268331467292282933027278339925326511278871676888826732257374402888916203369688901819309176470243304631323396543539045256281922050220078649095467192441214951126746749154368426740444548893500291397187707533492105037275075303834830467703568240102312808333974259664381830652229728364304415101883601320653539576103395032939345144134716836445247801185898936657960879242556136244739275740288185692392178791917098212122218943959609246536755550728104511185317002142843891140164859739047204388818645350908060791742716642416154684477490969807093195581186274061336431269034332737289001101521734650389981951774139526305935318351551562570244411874332416979120527264725953546838143089582753386537149920781765889674066980316248769566184553022843059010845032133164729189077301379777708482768332132113606712091562459510439706294871697674811844729058108250975441876046498990881014100575667515915884603685403688287907973296141095978087199399908821606278593904132654451982774303644796364490196185322048660343711674393166845939306258357761401560892251822079619062861875375864776485332947566953524139478635208696813578556623204125939706458775634932655633059047585793938374082971600768486300581083401143844059350467565764225145724492765584164349780911884923392863652623964025241535411855621408220004965913070685046392112205168298985945824747168946505315575403051010667119931145885788383227005859238634834716980660652174297432457056785318368998873249985869311041503882935727089442685052175508606137258737864109804031912876501329830413612661781365690946910307584045575870946151607461961531898020983229105279358638141739142418420520628813867907825485223404948291329467617253181834078250651619064013062183599016610383826576543219757947220420002317870531146626201651558691097613462618077524109904073037449278993878264104882695851984329636140804285637055462812943422582425427866782779083226785636338097531031176015928924017565003466585667173136974683474921302053234580783337077985139159683095085784697484484113240963908608199345732388116470675409631573846043235390105386073929097145046468677173809927800449272957797948553466619659231313530460597173490841876680710628379584737085666896868353522811553756285988007534740437956110829721154910585232753707933125181610569867552472788806809280800236974236168462816653174931993575304691069786031682917079005080228354067846604098454306963655118223547424931049664123001706666264008248712810306884661790922431066366792728534968505876900891801831426288473058717621577141809111372510950966545370830940540678239802144606222382394744287920389305837750741574879090406871179757962552353063686319774356691778754883287233530292551523928482450339027050785200527461254455186174267175918348331594319825216840480595871297049180974459404667675522009641484653006408413580615632862737992685515240359691016172905092209852355748222459376671686368378705501863276995473328049659443231611263763825600193132148536319095780161977331799516289365065033226267569537616819037747734490608422688518526614338219216272541927047008259214318258873035466832491470599026317289724157443065758377779342417081793648507284845613917775754212679270870533091216858909368244584777792316482689118989026815533587729806331227607510752684029829088200361570454488869491070971401236041008488110901142082715607254956921666125079984845053105779479738983975936771673722385984617154344722594646447247443131415083495718518793247743857371870095353623025493541760332579021794460169330821827186022686498021072350138342102390571164677700849847970961942264706033561403835936911017589397061777479327790823418639012050666184647872541696342204960679720328043298886313959188275831848238415153928372880338225756139733719381587967104352267981844960459068636155601448642091194636668973064585900704725703746702427657743123865310362649724352790484160264770632297839717452257683616901251607526778205717512598347118677170748220096356912775156260432950731582881419521010263185239662425870596056205904403286007897789471878258722670084583153818588144935661974294822119161187867899750261112697819862450782211231059064277991645248293515650522359759886883061614505678892975400324812282284068792734986109392559946186572090523917665655883560315034663930840846063008059573917956323963975272236088853421125411507798688651446848664529072132259234699486747662116381247673964787469970472568541007426811682225385451945738926423007169492810488593474504279789093868825686610259651536955062186175407410135860842185016305590471693005367971856813325625029360071293728207694528212973293189936530556707042881102476408728613201399275806725534513145185992574423125305992707796226178700389495664828295538455442232896577725382083343861691061620886586585816247460902599550164221611794573208762035346462124087305051799298767236138249762402720605360024641909533810312948656490982805212496085292723320946839457020719144436452666963170339255319823630155000654229183058479812099047027212806472068967766495789991879112167700681636501322487815426863089915163181458755994463417263559826072889780144236479084844163607198781998217924980796468185207713284386847035584194122729766778432202347122070904218154443814216492078763174817176746082756863463834652335662714863046142522690829022188988185576060388582736010037332837156356061038289742530276493175059094584537541570310524340107282663939200607382583545607776352917485057652684487885883151133359559479747157343725832497718896725165959885913867844280080426365687276465249001596826937190691051091304773953456460582864215383796761297541760256399689007400648924305168763252062819265035052877216889634488298919950184949557110002425627797326970492996874079580221720713778170651968522672362177509508772203001421536785133125174232973093830972983693909872146485141382257360594541565697201224375187164686011484771462830000370818145420693641377107539043245744311098314086973932181097321963171799781290699090129824213817111608233733941589785108445155710826952928449988629565013720334251156169982351712573365320957869472413798720085933783339967890495197981830739767181020198488405798991206080532269820134201698730324876159833361472425648347159525858698685138570860320257364217415168677607776540180820096359690809222923154287018536646576264415690181017057260639736672998769567581149164247934008655648798832639144829803806787632241446344757414144186834916641736662052615496047633386735743949434632674017810187623253148978976441312514762601259854020265284255154096904464691230834687331922701208557102247686594151858654325659330452301941764328002339834337189109724353065929102825478694941275070683837131289658294355665741334962081868604299272444670135783323218379291594414971593924821292514470846432605943851336501098266211883768365109583267737231125990426701665078220571493991127297821818291355481500812419400509255667533895638400563489488215456845131035607002044289888511278474465028110680195096079962616588898985933479052370959995742229966612123226057599074182348667315067473187962263960968565667967125017101403007802194431222643505209331373021867316105358913509281654626379366869998694857787920239251187039399401809466707252905362960249159510168329866430176086292326826193141919789430603206479826139321982592639391000362801002329727117462480248578586082080177853977782045791636311196809622856212838676153690533189878036606491555785138697429950442793375299328825418891091958680213371787946619964635550617959237388419132134259996980272751266314417119388586476511690847398009039249764702005641701117527162921574370213045160621128733063231213519998349797623631121587191942827399528323591249381691406970833176511438435717291999910569533881315189221855645895723068448674344090271355178181998135646665869250623530565151792314105313975979452718875896023577597625503336393356543247275535613051489921979762387291788417738326684011656478277846081098304855971412559821388509193268142738454179619257291971882557603221936417670895615949330729209668439266561760754160713206600823414273496403147348576131027695701611104524873818331124414758839479813919524593590017780053030794572507770362496817481066685970350569131594620234136870281286320791116750076839918737395618509068836953798567013827671606648376031433126364915187523610496937089376321213344393171684056892494059951688916548865168904193852008600147398265539610795320642851271988324632110507228727853141678105597877505946186355903259775542688836251208832999639092061993204838433687487857064077216675678897308474969035681714499647980603033365163658493774125178707512064379433879677470329493482615740857836641881235503927503446930782316884869695820928902315241370170981790234725365363602750991249586366739400131294225623742841686461372045573140243142104633469266461839238461163482586384325743086588760761063126989405485107679274139730298039194421276079764499155954939751974156073172041492675568278915609945394139585264506165200619159051478698562950386003521842705400511785476399520544914670973079738276490250278770898061279898648097599035176296680059854650299833650614631179797104376223620855057350029603577417708727634648223218008001161009053127642611851078124948075643825933774593248563741663323462618114164604169377735417418318893928477067621506423513130292442006426944414107160586710857561434214657262496069427228966172440499474772053943176685228391371808397793579846521084783937145565969569067093339707562001749088169628320045115739326923187478360401794005348872385988131319132321075059493461931350739231114268715922157109154376472388506855716123879979499822072615058235033363030531005802887460288076784620778536974428840476031117664426098034854515931515232281331075331665837098854261709699667725959655870249977902438305838727429575115958753532524486112859990127173076649055259363713028227246193119262664897738658249343713541573828468578129323746012354606808629828494730998374600474076830143546035796490601654692339476772934312676147065993259634909451793618471853007244925165717295460824071492565961603552367029851397919535036744959222373451108909012511274449380442170299682186420983753691471786401846836968203775215954790481779465991485853834284104902995994178510296187934265415961891503150288628962626496379993300762356170799700482371657957569665626631938395391953421109032965899540116075927145496530450661861656297147623342385547154073322694401471169411148554072669906877493390033536641056519219913524293288778856252711527955196634948922613603272925105913064250430161463638524813159780600972918845713503169197807830020168825894274585468268806771429435269096043329733603781444775735347276856567916287893398441640679697059142163632087048600631078833658791663270686929692282300640587858539626717067356892180136968834943073552369068182059486536395780381327648194256170854945980867754643033652969264366672901430429424450195764096452977190956046462502336908400968331824538749391955923882095958106914236915598413707576785815134168690203518036965497635114890241251968285582164352658226710401507352559754722831892154481782369280704508518292670005432357496095651954169505428707945064443946006869033699737442221165613703900277727794751880216653979271271394194286861099131756842838405776327829589633744408338969242466716028167089792567308396063786451960805137157188412976748394880726574958180354328822064799099179072415381137421795195701962265861652477438810808479353599437594783712455597351374480825319604544687071212334810035740772903183845236882383567179599540454622837154216308781061336335428491347133255880913289675230248080965985798678350181845764462947460416648793011431556203343624228246703961746797232651276081233214835554231403278053961213696507942287139800142334648804935841403990385368529591066026606547864359444301845168694454375649094122629482335541026095272954685588429258705859714207460177858506275680152382365218725317020197837831917751401843357560550645731154551172409608770021671188857425253027709407824423531254122827607800520810647289425836758998294145611617019877242375899422604669224232777629578674212748272994692990557724070909619889613314138207223892471693271846649408056568118987454787272028722446341150495840744562407202786669103131738775210471636445839732715641578941281610926263623390941243289233364531610696925856149903822860203431047984747207493261565806598447349717810373446339652510476198717946585158423748025088246692668218726522150848891663104990128449283123541662522141304734067875861728916593188283023133039794837655905002451791737540058374976027718832318641998913475798563563511391297222467445373954426638332061553731364308766489870937057630300791718272195721065972428146207560307480299667695570226446981191405071529713001821168012237631997735164247903678654701887813314102976895346715193566362304078033742209377170644378954431797468082324518805870610426926727095253653047541556264467266386619048181817463420938252800850693255148114906639057262080514195243020049601782524953895269294686305393296981178296791385011429778442181128252706755118016123121862185284702092538800150076173777684958036063070266466448417198653128536503317155716824973549015508156469131830771873043392615827635499152810723962506368480118255043427306707058183144778960902365667752724574260700941006128661852958080505906108574784141143901088118546773428380729446934307320852737450580881442873570542033407471451656676677087890070780450911961537681055310548206934905531713151836437805887345498772463134733783329009280494467101734162044769564752124804693954215580901317572225756674585652921828634904466649856460833880330466192318651084738888960239151855964777480426025966447453364059636302691416259666144457716699829721613545060164758213738173017450364126326026502842713322424881847962461633626235778554363552625636967092074739509263163967214132999542384168809597329495639059423315405268195282010514761135161760616739406789596938696508569052874708602656026118555566699782025430259156858669348129643262364990090955233854176828890279915092656612385514091818226291722783384290738121344046058732032259591613027420767910713762256532733454812079318628618437756345770109911545841048287959723401201245158261973131166854461551673001224867725210702570921985475253162703410500337350473477720710939600813806844698147452611888929489283306881864456661432365882933581435606144434299957885217671724982879737357509561548263190758351918144987056393254766480941976901851511440238404444714239825101430861646196432557322443843200403328617936404389101632876600886131166529770916948184395618704890341144742884202471288830760525589788794728037856328358090296194009022543999541458924329678202172191079916400668717553674273512212568611235172449690283815688510189276270746843605636544886693926117427268165090444004673193673385720883017345197680103336335435922630732255269223692979404600173882474129936827910222946120306035236520707352181439199558564002711031772864014958675068973709098281937908318407225560260364594344341862261417574231226667735086308402707425343617667264594419564730821509223730181960940796260784711846321527012764324593413060857353403718644465369857922937197814832554339459490700318316894134462455550664405291668738424592318897261472954081728516080391375579511547548523399982320024606299428863863698030372162087011925663526579600420051322937614915987984862937549802121010670331286942612002001762655333780230196534454881404479756838986173806600206868880871183126532761782862455765031032122267996047635354037181349284783973566821993504618132410274029236003122181825783833972203455504705550967228761521774012838634751120211179521952600073367494710210829090354623521518252612230843032787905540755677363812827411381191345670835192023045300135858378183059358057141280631483107407407758882954742249032988718307439641778871472427051272544138167051911628850973133022463531101972111219801047187067787702272174279114145456662997961747030138771308610532907722250033045967993477137198283556869744465484752452443119672021997824089324210376773852974554378510972191158984069652409746970864949900195441263565597622584663114792562680243895238638603313363605704385650205855386900128424329991749113486011184864454749329965471874165865510985337426761529693505279139033778674987020479062105636860562255979785301565455720149467649832265396120756936761122604276150566588992372807178063352048470360320400403059677450139420066312208414308232833239099969064962478971574641528927812086223722335235751516016389719513921419200761266862754209794235022955659843088634225493763115212587271909947122296053347432784915909747543113278294266224820218494847331023006023697539002932430146274354600480773405488647425546290408324767750047531823144335991021923202441909508952783242746360078535753482098793378394149919101245408224806321202114717629799752235384730129325406964317248624963974822509999301806797171216876724316146182010039773832596976458226527423224443248922332072591986656853582235813247233863204964412363837159425715549149436365872572328631088072035740735143826597508945932285963082519346601444045071773184782952329330069810894493143937681253454732343028496334309888561144825654719888370811532170210069718902494486510714704148283311680259224712927042279566456132614192095075450777379467153285177669820523420053236932207281178166160913088768158002055854235283821016903308508301899243324922402471662565457239810793923390654041405614361147639085784312168113504381986269882491788148067026286049006977331399903814809730960450024953578270431817634053664889879099297312551197271458959234355129504538013997280670121002334565004028916011715654730402408564627827594425682955000302975774263167542096196208042931487902733997608591026707353060743316611347662684968871203437047689949352617874585668826865756727643887734667706805609780439735755342613882950754909223932739982195829207210132245360549079915589097753397588864162455295148895163912814128634475884961670088187666922688554656738024778982658638456973422508378055112119518247292197124176037814582002176559071991526761250378896746014072378405578762247964087535978942358778418343579345099690035086623938517779750405858292687430213319840511571064732324189425163643047891291584282392340531232984005168982385355383810984524923960468588846173512249461319838998307045495248987820535745272193264160702524164133214034859245162704855749157685989332864236014439739497755444720161551609562472403782970845084565046549417650842841539786325761806507292731343776592620230910005360176617299544270908646392802444578848748492864555767213681377371030547871941058170671609029810721682977286970737921690563304050719014366936390994096293610835303083794965072928012893874005866197058608847325141824884473897768378914209033748728186562036888682944223815107592314204195133883793127347391755937167854703055188457564763070492082714110959261940237950227076880624440299373710979530100499710549727267583403348619032235576872447448277018922683788938849951026725015093914102463493936493602884205563509070548507676553339027383283903628378053389195736901158579878513617141047273384081205307182311694032234877276893081478047815414416772095155421589194541838266112742346261380197358301842263427596290589378663731003767274003090397815860011442808728223189396309905126754428240899184476122027885906935624213668519560861121390366026383618130453750146075251592817938880091390881682936518345196963111830135848774918497352876625045756013464460018490166967539715838982234452682294382608444270024841000227199108345600269013174103412748370535351724928479565510335440189565219024170098757820536239711979625010274245815019109339044223141700952291954150815655122882266318829606066158931517249686234885830062258459692053058221540907155840859891162689619582336875151342309008546241325368573008671327095037543176753472857358849421057178419042371971519537226772314177867131065297552805808712406024695139737504315414742449669445483284574307857256227290026533944264406298669819200945070582897831989237045216065161461261734769719588087726777917641270567694279217516888269264586208984980748175413411445655860784941373448449772353418876864013748558549969224098074254668680669610115227413661048808000177674151808828395114891802252114188754894878316774796128974563861416839566688687752602660832562346527370521766935971107267214476219360145705093355493379829073873192124341618522864432153068508038813013520892485849897368443988066273880277789617956661330069280032163533247756038566768923902695629717831390131448923288888696120319856494602769816375352163376613737724914934886241694619944086709791047073899365579983918528148945559087579321289145239052097257987630159729179598425458799589131022850796470264341755833784674872630139154706471868274904840511597148136348098350175793656359016876232658286829175364137255035193621064862383146126404234951932768534543684704774737125719874623316182354365638867439914410201466889759379123531946416899054174120433546507312368847259610489330038538182620066219632996353338965731308230355052430877866614125689518138193600560217539304659025893323986736748074791776338692365996527009863531583411334913569034307040645621274377161718951740102052100365178125606309287341972823465368858041749987477982133154495662668059675384074182196693217597908227936612911042297996672771995919242458466947152455674701429420393887515223330718584228908226502778494113993137298952753115092764621660080110625109425808604600803089080165309239169883456042465084809234355588229076209157794055923768422877616367041193038675185034618132724461610904050511955855318358350057957580313895890459560281774617997672527672210510901679716049630436142779784621538221908132454919678162642533984809356237709313868844843182830028709696134238982684342419019320539031632099253276039805923372452693474826805964226801713677553875858723884263924124038054097976928831807402744005352093739266176171766026303987382930479307023541616191095220998201317930058810174299031278864156890040848719244544481717140814613544361826091022785194252873672025684693670562804078591260260733497035859542319594880401422235779007214118300023040367599613716509255455440072055926153697085714294239263641778715999954893072316365295983557114380092940227587987537289126208939843088234952437474976329174972767624070915897234586051568109692588266351648613163834384782736941213927909377121125274018361736689441093014108792136676640247577847936310739398864127105383356611290229820758132027929968495422500348660819923782984072552071750805687016536892407981968159817784037589862012980877247581388315153149298238511420361443243087426738577895788000635214327195279815549961229104958989129990760050137700214999163352605693562567541958859798114269133169426165832964925502887219524489067160050781148955796662181855387753199551517332845442858366503797898076962554771785413162505108070068827929353596920820875283863043937906534695577096971170385524167912647215591975431277036605096548961029713285062437859693080568842160656955207373651336704318405489964861807159353860971364425568961120691072856923508645532419302343430845762180350598327251683472904203313166799250647194682687312762687527149916054252054643070025364887751067353305506696093347679508342260078866975302195582546308986072301529412904671018107867792679434425385612312956320623425003909560139813488047133998350329654552264728238823155241290398620643937124693889253206696079583823923872542147086302782415411150144155287208109276125202129292380521559458032167946251505909698001962686594840630618217882476360195472209172239987535983740943700586628293994068673308349602789784865615064457407604091363260440006505768534729808207823896742213425613107712933817654868017161135140554291446138458295421736727416452029233477864439543021490302902576698344338895068178808773099624401983498367270647508648676066048672573391666223979817609767455476241768375745385137223890884596006851481511053695803749050122111789924361312957745636339338688450313703132077168531347546226595262173988177446407662103555119138210049233182014359207812366011462973819150157126828578917600947839829500904844990708263208878850212296648934415582856654586386263868402584881834311456186135647404430707812730357046862055801672329038561273551083699695680784548308139686506724403129346273175362858617037189939372971030211084324555358337979200882066015540068873133619571693129657132595592511203279524739828225422347305128684824774593632441061960246552012111507944944678942951061597065328279549909212698431811097610282246699705983489350101037898871332042034953007662902524199741341890510580540791928348142904315172433614503352809221807376578852379131323026709085385617488126651772793481273160606163832574818863217142429887683320300049426864201708608628425579806047423718923327927122576833505338363031366529545425541478021325222014044469853974871939608243032195090134052471718928505394040354663362815277229730667290619940362308196330170787495142813387641687419825207389536423232677528131141838538053005406227727178310896086460806985134276116043022118217023545350308574083590569574325515089214887916134829897794692723888454232657376808403557328400719229504431306438291408616398725960750294179616901456918343052505320231471639302879346680756808388448864373147995262449339960493469396623928578441851289706316089719945710054225756317914951465809480490255723289943084621547068770822866641802295575531931615146538422293774281850080942922370728556262607017764548586695334600310133667364168622188295601636578407921447739870033820560919231940039162870009080612007650587111453685928168423537655080305298844192575781385877733112912828152857591540814442775830814601507467373779709383475428291330407398552273026618586522550159006304671950703786379208042580231989289809468507632480529460388400620244459209541622952275671470561673786811620613991662057040961093337530123246101247961757944829107427725957938822735788687671987919812150837114659841019151224308185940688691595750075244264850707571265130109359762504287372877343670927945680432804504873974577026406166737910306904111856333080006405911822783119090401398448238901538021486372194520291476618681675309308540130288612338228095073983422649603057916400360744060409051570715587388389420049534331583199793288425156743238794030950100799262850160294579412154175770877419574596841125084991103079739188299489529035682886007547216951137250364477094789256511590546071884518659520639161838700918559269315205266346256328816276116057133462606595174675736921776930795936785190977078621705697743149511648601404465878324937413646401722420903694959813879116135077361802872216050711090321552823110683003289725339275179968345494717246726623771145268219319214903552623597398714238758675050766075126416286416791494872268906062764445999151820843043906612540506376602097310768915080901719974357649207025538365231138078784868872587767615341939564944168369613326192979158771389421691329666439831924816132847518569980417044032078081147207555275983340309725312859086137691092938213241345372379023026933243206536277356302992334075458084181186102352510166541515669659243622824744440773733001622426589487024769425611018996085971747170721930171341715528603601663786226488001877432453546674767125668082598721012338982004998580656136857343938209942188717714595727044888438175345665969903920521678916214190512503862040185373796518702150506413574745713832037186731010346148568311089712209018883528426508786952700544782758800282817883930446387387177892137008795236179940959281047244448016671309719424466867369533106852412998261961952946468881092898500157999557155623347197529652931177518318832799055807768514813620524438815876261130432322073815009758699138929395014703828345400299021887323076075734018848765847850198598829383791703799565160657409514296785433762211714197492367310224900146537457039564819651961864525331671438079189736704764589774714356923070324613042404760508715523938584218924798606370432914284466207978088020592151757142403912859576276207768830457019573814470953755844473522355547644442259531485114480195245671851526990984345611377224840718970281881225879907087062247550849918600322042279931914527434352382931877399110860159926790843948099779295692371555839146983931090420647550619206949065729314006406945002796057585479374476463551821330407737032339226409029495670828174582809056168402163173568654223591798691328644018614182640917729850811396505689047479889867727476363100739160671480515835204012257040878037275836424584664060996689225891252470845668474055704859351569473953738402630351303460541198059674942277510249225399900895020202671349282280201138751138596298569120472244430818090775375204809277321846217509204658377204203188143116602910290457719075381011026400663424897672417677081389632546422560212405090243589347299233940068055187589445686370037234841135808759052729994646538652844399625864540724676909792526937990205084759619379714906854724121980863232618697444756215244108508740336465133574217774022939908783109994669517622162233395954372233349377044846931224963919069660337051679881752971251452045830841274435804022767873907448401676896767801401996904985019655882405618951915331451361314869332942464665566024017218529166594551608695544467040635786284422723629352040944918258879833399738246765468032142376118741901728776197922220399508472504778747588577396111489881212419985581677272014382676871246929420494900264489589978260160482748096228728834431901251551996811628235838442082006700659043741657808404855473722825707136225102554963700543635098244329097036557791429320401692405147458297335961670673265652454823526271240670582399533213155045631111412333465466953056379042618341015548766380853855938843130219766114632779079048956104467479183866300410276460872847803409732535623142987944870178657514620899219877981048303449853094914957974475433495163629201321864107032074027646781736366445351042821578700461716250714367852330301522463691594349043282233816720566908452231317931762211433052706895321023968637779832769666515669207189463049523446695016246608637819707124466635277707814867347536614247461679322389796333020568482543524273974849270108368756066550170086167108094440224039803023959351914353430956405705023492002483861538645340187769651765461770408743876384905430149303370298918414693187333354756422807537802644803559207475797084796108661458013990054319927109686230589385973477546250531772362020639732108301052861654978155728951250717905965494641461626752022192444236753080113790417725014739515386079200703380305162275183441798987625355345571538813978925132560524979693076708578184250377852701421868403895484518992101876957764124714967766190214846339692096909464981153261028550797926068571685852086231892557024608852129407183182479397598738045607280086264572407464853188091102353645764133000006692587089136139649867444776793441391169049042545181385055761100148943236394955212301487953872966649961195362051430155242414159907117596076415090997704075960401599864408941551808782982749197954233167848952121798905179054693544198621250914469900847630857940699412520926186693157090532115171078475217080475072365046274630592935249619141805157108881632104370509953964847086271371421905994534784594090908796160707603822156255263815980041237616041535706610505127153191954982410769234729954525643243586492561779187952210467637758349898504759157702202815991822836085460176710316690691977681018339189752084151425779871293168439812096454552481944628551029462873830757300749898716925428854531833041439077910918597736467136448667277626104399051847980189065797181593470292372419220017809773173648534338227066463100507922080672571924611000472482391330515581514640354491687676430675457756745235586596481914046776911908762838846092307602304232694558940485405680430783983582485670380118141178343236650873158130416894060535022487290563456755735640277876247514065586422659028440227185201900547012500844111782751384617630964542488633839483435443051671619766142628902486887716873652819049332840233432420104531845128818902167084737779471069182795667539693918768203838709275554622941649301776600786354659747422719641800915160963395877747056838447223099794290249724263048751586944503195914041819289166893810956411339273407770585186452120768619214898059008777694054864792001273368008145003487277765510607501026501292796560858298575076933658185767489885498233157385299270708039609500367924200638680777014511901935604727045316091137809201805980527447272577222941569798776806507931896894670433828238638426895277869658949503985526049074496650961602285447220458257793505175466464658575421402520869958695340454460616961061663591141781207082059408397402529339975565407826519354055087345279329573403745258109138503062804200770505273718171552851999337050029822757949876091658035177227355525834553478604104056047666475593139763074655032344591351839280865991102303251513166737243023069864998228526685854148457446280929459066179999309829376016863122755026623281408553505787766869873483936697872765497584190331162145302822732561587651232234408667005383017066811969044709976091845410939424094973946263903551038129552715635299376580809595042328960598135655234505597132846304699607456740449520624883789310686161348802284615415946828762624870177555771734220495260643001235190641365961532283308725052750121400120662546614572774327654320683309552368488958018749102863273025280006919044691071657720324942187371061573037368836403676772026590090201268246897647056106568869980645511493911390820602626398435069825148579738576945122034791913164643818298339418507278522133194707941962286633334448894705430444146652240561545542210903209898029696074107608604052571411239457395988034385439137528701987859077689339382394741104811328415312332699036113910835811265652659017780871962294528032388100663547943476931472192933531144158123148794828274544474329202114984893652202638556779427071733703160586823004250183613355282689104163817206926602582963459183283518454534079673303402294454328616184662025662950808474777868761780451833301779627912996223849820434066984036381113328486937190550057661063802356650337009094357387445447655936917609242980615454862906750730863079408031927970899819096750302235688987699960793832476182804035905121653315876672125326977070358040817381069573719338228419787316668280201554200321575285067906230865336160565279590904268810641719578023618686935327359354238348306258868496909363997325072495916110590005248039524170033946768010358160796548200413874104923092159436063962404021762267215037010331393532861497986185302571368380923976977307792572596500675772710429651546140796095435421417390398454727651666016726847246043726159763089605120684630165070615261621454670037464088005410453548124107138626931783684695902626272121254880045176653881433060182780568784862011991743582201080850128118342669508343370483585123907652018878380288280329537872693677507503675389784864193585727349743166553752690983359164533524909592547591037764124974290168017325209166996285340547362268489107629874064716259383096053435898980352936455101676190362431802066072489751827289872712305418989724826024240934178110698410427762201645348080882549442850628908332792011624875478282588835353454705239388506666926423650362828817775635139140658760643995647777185328816420782640577412332078482325155284599812117027841093057433837073896768896411396175290427006549915130098847620971375814399069597830589370004044236025821382951055291011459462452096880437034123738171427678908187179848552309935764550223390600544662479271600070517418662705683839786248524846482659232690723582446451366260878891161995479582383530536147240051834185007087098198089131930084542909463646539382183516794979006597966264530454066271582455308640305250977121222642449285087172473839926355035697557117432891098938544349654669161040270886916375743272855107829059359926914137558864220630710494082944790070892953691500394652823845654394669736917562452480805361811723550995991779095475445803444693778363465833778554562690563852143899773790036792485825673855920951660237571911831944360671636672896517997602823784734828616142850904442207494822609546241922662825142045392047906564520271933676564515483110291090720623549015148909318377557378530288794423880464994115116929879554288142025298091498720133125849652287313659977622858827308982689723213709096658181277280636428707766565189257562903027100786150155378097164256178485281088651004439605717511770477568707259512977811769362598486530283021634552678936755876452233383888615414749778157188603184708726961466396057977283087694992797691645823360874192142609792855681651760338328711140843532447464560791448080933124113675974112683729129613265049742379471229032802815669087203397525533579940036638207693151520196128767094255583750219255436494632498759705785297763691907624062889732428544009866998962824148947106436973568849353182353768356779936663973211284055606202298313503322451350399311442567161049544001548426715210599836271156115149107702073806020508133453505964734906719850465428619369329949196347372491682667547422274204078882205193881687501955687005335301451076454037704815787717145667609457732120091828717035747927440768124703324540024333616327652129858156024007544560192909580068850629926986294065994861727003599772704835016440219807909608681329653285099955257503161338140291801539406175126490902658811075884546647451450190387022173315094099400367738253012889160393229592787496259211758569134614836652394520296431516529971787561444422914100307189831587583308424617657616272099270836217782306952888091116083184888366482288434582675742777078855126830456707568806279951155420998369694974871303175352601595204714145908307131847461140119588536836629669705603218925306301966947542216744961442463493925181736874669998612621947700479235207545590485960306696815799023578537677113026088340264152796673867000653467662147602629655562193387829247880749997069899934560974237891279984544396041560149227535756440229975206069835984211655875175674119323509322163062375567865171700589647010970306994914506285962130582766351756368467410214901618263788856938748989023608954098353356864282843540656195325647231045675474049954042265563909474115472797748186344737030729049310263349566285712686505462403840705079954688462359558267398528288813129353447117194188167126260474426531359232434474450540163482817991277073347361529465026182960941031734961878111419872459493960035795793307219748409082619904555878099464037145429710647670539049757488239398048389423576772272877950797037032009220780783108817373961991480867047648176940614573553503819351150318740534786734806279213712438899659219698958768006584856356976845814765359830540343951946712918708435393920776071855343196217143875899193272330285268343485576069989416376967211133553179860563663832915966567350176399910480965169658320358898957998362138430688257838289416368891523437951993756555256503713248306319716399201389938533692981822180851020998768550321801783380719154660576803901007466909372157053013021197905626468413001707772320805150857006532495081134052062335717447498555939875824714188261688773918584498011950832511332177896441332701144522898418339498973859242202773778976606711433322689317026624959960884800675579355808108946439356936617532412364314129257812726295210591769769926796152240115935671448049388228506734789807255043296362089209398707065741448379171299191174386739432277197471592301957346209427766742812966057620358536730345341432996140089339644574454735187115747572685512596094644477124947403076082977300071970483398250272009952948104092819502969042016434481722495030485058749660150248049782069128007301885722218497337240890653579351755729319540777448353296058939078081425739806245841730189346085702132503474277169733662457951376916089293825710354926489539897667330080070756867579905834146591052767913581101781079595383643313772775300959659569726408768372003122611820296412807403049665158354429387822408924910299092837167843248891015960959124210999223452245116590294287985469825458846062184683830123812234304371215808440140554335948166866460314953095232687225721680272316816984374824681658722408152468544694991812319120491213809142135872207220366638415700106419680354884644603479390804959728079408164686303685033613145380164662402686518899316703024460034076466583875439138205425254553056396891350607855001565364901089453775669713557451991871775519183631098729507589626762298955108779429032142360566129013491532345712817058000882383365500969756089455895093338288184485512454001883211152633569801740882418850549367008250570096502764422585936975818116957062369970419343010378529827297956025224701746294848698922301273399371521198551821366764434165826116362019760572706622670248887929279187910046211138999063396729985046904349196404902706787488717860911919822174558441768615571400004269309435206239792113645812638533100023293840016863010708786748327035197010892701108688739091644869868671950395953644425834842212299631860232786759863761736551378202785760820265669479089520597857130582096644537880232252112802473018644519301006100317931139166242969309509379359756662958891943773785158105776321400458486594569102078245295905599177759412955796497108144647474137739342148495246519661278529076410226809714042520448167292199482633360131935957437676652341885932292775608225926045434666692550292030494311667861050148056735116601867963469535461723975778876200967023407656104532471832996983237175113733365954983009758302634359209193197090573698477897576698123232156292163050070661686842676547204298824792226057689396384869127674776852740268819548915892366708320898733083480136043406365079354939327005080706826424986324098832377930422979415544987920932022026027542932252008951690764883408146518854378640567647948886528975573574254983088181256022428751089208499376989955416914763930437179993426492134550408185500443031510069706265691507251945858772444587133382170808892032631879112258577951392287343345796040711616121083413344485805952292220302118950400512895851762810090308463169509643179434120873780824325275943516472672635769732543388910408896713447816776469149256169318973298194579930874831740483893713934904362613694178168374639346872858243392616808817773155483231235930449385720084005058521727058349319880127923369893167634907250357905659873146608886016346182656180859752866430505380901974200932920083463710499640115295449638193805466949252224166698205457831745986651383504749968755936018722371310446436567089526408914577509184293690378316513845270419618617446506173891765318211989829782625630790725108913122139480980440297853002608814102521661756716106465420799696279338770375561017798384231824059814815202102355847430680415587139931840242337296905782808842507765214207201746831120131827831551013254793023237524795720096126765053693071336782044439603747648347884560850366880611890911894108291711278594402298965038132591107451159462353487805954471382848395723569041493191774427859884971622429477653792143903792608562693112010538163787223491567402845801958128631291943059099213768565218521734291344652506452391751246943919895123960697799551296032982617068514182808195441129076128241626134455723331787065351318826537209503583705241051958075635056813547123914989563743264632734265512393081671856133252379946549121845389114919712237219006844306890114938997491864543290292669344760443386483794588423970569205054015833359931595041075919904188381561906500815379378424647869473633440463462828270003514470704677512347982307436323442490434451939771295513507379930509842914625064105634643210261663385058630342083454894512392962678809749594868813567668416372915401874609892075228680061295899950312854233909636314744884488826516847062924443021672304050748443332847814678847863746880481059108974765358694250194438476731137027083333950768846879660008161818111126647260716626785159543003799500221615880527323797156001953951197320932867407646978067248738265799528605449811772024021745450883346002785779480325752111422295429441823350190618250040012656167530891524474819557718057236981476864776847414354845560548638286818868194085808131468449277866742490822536099768139743410900837806074877941851657237931445692092559884665165133305746709935115605030655854707895021071207334511763709899867960130244857706750345263815384132011831981659794383543464759307719301326457266673192429297119496918715635035795432330996441967905979110949837102027808908991464130139066733878082580301020276708287606552833442625336549357874520478442512963027732470416411987040971490916515909600210683894927286708180983987444029700526226180403469093293226993424198152640344212833175059184264948533783555615796790390969200171029962203476934692443479217795794504298609847426142085232196179886755761977130192732713707088280681121420224790840990565283746500688257893871268769040689384259471329032972910185499594271747498325089224540955463472568246209954403926788369338089377574373246540915764034385488758934243745279620975441477265277878601794720651794572170129848033532863602627411214191363469115701263391674361698190392500700168372688891296166773075035811268526860266062181828349995252280048640258214462161489464607052834308987575738211009982724139054116352595259932813686785298894200788261464485569623861642735222282154444994296371952168388175508004005473085739766694036614321408309005878875304159358791714327182566746178257501168509667181859545578679291460813432198471906251912375336065642144385637286364841225109712450497873242115324214741526955764464956411853734624590348405596793173752077577260741990878537369230861971691821706673513945437613879176257823487405868036474833413596728856497362849930453884809543922614417314945958679507739980135198212236358020765498498727614638623981519622470673448964261464587558842543164285961377527989714973530621057537451322076006461377105599528567120520050089109918306204943605421322918281903435148597542391543347172520214527398024322641374885529983940578759326438393623221818801102062060226481858570303967228496026094682387913798654705586162730787354839312081962903366714936633146165476965791129728239655185438053583644938103171013172054423390130094276354697540879484324270649661729117474097253606191374464494456531793645583468014101286173895355486327807002933935254703501680865429141531473312625698171399032624042908815413335399695325363738041202783463234583861765479231110779841880593259902622841776977384424661409082971600088657291772753639451669702247063021773124402505359914622161084114978043645564898692718514800832617919719001358411279290592147328176724938768450415752703383382704622654302197951720161986157343466703518479274419915972092001954076949348356391379670899717832723561497816567045121752302318918426329482125342837151283118061161629004815601441709147246184400841237237010017934919837005199568304332473059711865703252750791591637951101818763446871318438408453639336966178637874863263627506169263386138716872549457471418273429812711724764737931551256110450806813536149452058992601344318725065711453107252835526995913639910153132697832859528506608262309797445559720285294471417978262509047114952175054165622777543116406331276721660888707508492635805367232325387285684187438487378318714829789544739252666843695051122862362430517943813469507645497392265952100026728136129051650092428629531465741655965744389327810308927345792495136786578170967231825204264138662151892754585009982792309838210169249743548197711358790314843706195520268854401196448588344777216731329193490299143418841978228604737220634271093954837211464354595860066661067684928671432459172138122726325939268434651489379581732002237139818749073578133334329686149313066609898025281455569078601942945824497768668387987427430618413704397822982354121246316105848724685369029744922471539374731520580019553557174988246846897580577408875445224103593675812666983527647503935933362969228403512380979393919851082669392920400649141713095079590527567476954446460781048322041160655935585129057573655923056499816621895025039384810658263339107383617309010733105350999609704887441771277795500222077922872095728127303597064612968505984062979256702007859498349185120616959108962524993991906493228303470812319431650177509558896687602644673301265043985715249456718919369811540793215610851482325429895832831296771997765250072479605275314453397934246554195248183846388916825547690346929867871371622587809502755143888677622481343094357586335787274406965571773446030068471300311510658735158465834155056903144347626061569920794920998832100035965666779038232346791916818654106895701423497954979450492405065469255933539069683598411824209111930210011810483107041331072813727892922190784148710705847526090079847681517245722462223600831993800768995963270478952337508499398860148426643920603687035520675841816133205227412951557625723209653165784143814253886800451250775844319934661390979790700987249511902238319709419938677606174148248478163416381367532694031359150523956837593759132556720696842829539365910384824508688578234032938997996734831779475733218407537182057897819421892683952436284102268956966345602650975839929010431258590872156910003590950271325949578788556676309033156194348562155376256356788343109952800030161011745237052675691443439493419388463752792387510910042830210146896703697590603135006748421506079079791739708088490788411052648044016068696496681917055238020590099881369618281544691801401450975560481828299783438274172002818600375019927959145666895549138483911594230228158359692000298074941057775080589872100269586124874448721241384118511749503742921490029851259425043261757665655290189993439493673512366089933301531504324590300676473336133590867828613431788852278821379985556564761910827291367196182990597154839391748176160935376535774771551816323604032963138842846443847808512677739498778707728942163897756827613497182358582628882045270363678602923060626630047563610654862386067498334922745756967709942416990203483715641600865168411778578554748658155629927120540317876416425829959099262156307231563014864318619863152639319272570886454312556781580974130012357403760503309554070299934399310604871756617685580354036971353566195957699879165616330808807917065337668997385603153148171093034268836368219412878139957601207385611647156216644358542122653488296265524419547515455954025234227362417512359644694791648224287027074715315372618092570966861263790177245465771428985096531420394337148784028745215804090627832031404565820533099032007394015938470696601268878745125249609312027884325864639202631493683618884529554729011720287302534401691822222664671588904688698281686607263901616040575168439692061571399456935292781687981968148435642433376670611131798446543661650249123144820771523735210144405682758908625559522128148595141803686291455334895119237363788063592569946932686970922017397781058234101199280171985705766961470669799707924579055450729148811641302964616584638202204109799462905002416514949983595093935157161581116354769223497748895381350008041830675138463288243343693624402773945226103920645824749726546398418606577130265671191847047279259731470110869363468167426583066946112898733365472385493834425227529666158090855825887298562347359046168331295896445291477289594584466493864610481942649963205696812799246031533291191912278982747918368243741376562237613425574553347545310048512053074037335051418226589284064893109678667668620992278817406671882323457620995242471829303944572505398698153997434397813996916950855584239872797100206426604436845619230964492444645281048743150113736516676566020814278480972270043001930478807673252853785907593708710618122974126131791123415422750062420503396547281800685014533861991304726185886278775594304911411262314676394478229912291283421599883472358018343596476782098242060421581957570676979260207028844246918292063206514625159461004161090646614396438287551896622040471088825343073784342484880913932797254100852222962045739390231081261505967663743643533075832559778104964542310906319285468241635709728213901497662640739102258196254977349237715499483873007500249541781984481366901319758330059961089390531952437227811572769015821190430871567159817639359909996830664161083987180457714297536504571903607542972288211150079470493415105198855603451310023098804144893420246070307631062140666443829963239260017457514103544486698059152994889263007433972505146940778859474850810158244740230543880673450824698772529395641820655573593984523602653776999675494234011757574425383664015034071277890696058442233021544975786215224940587569106374423228576349840348252351597437449921618223402889620350521902237408911441653243439001185330860994622687789309554790971989085667562551512477276367696468979884143668589320245712993302840562679095127794584369000581957160125425156010346603590094813962127757584810905612344091399941260899423091226257843697283326667474438432922931493662782085270802161401490258432294986786830834326717171832000448570037720772454749528712833502048989425183327493532515804364406454904274377745500076500669797560415391341400414309489393488806062222011179957209114808487574256903472422301609052358191506572434407677669706725024617681985914349411674051610336545063268028241775986886518618044529484556557591962954920373754692058634499541979192791505409820820559471159859843732000196129635835711387052837821128462916845993083615591725716581561029443505706155622763488540574423746749783048703168126564516394753750463745783487458525452170204693694856549054241706243519390178817561595259859515370799514863922884095073673254912803593206626223709543222757398435755489118277622590079918324312534561208537021273472957751584619577152523189479703990045410256519236150032597762711158693815094895743622599862491012921030955255722259380725572277539140049077597871134060395296108733225929233521409881885928766119645757878802475870670163875781660430564392789002868633653073833285652621580969839560272686789578687652957816007975349206932813075696915178487844512435058012814057393062372605948012925662924566769592058631765289930956374542998476197501953104244066636179692566454104318956241014734882668668031365559409702222022369809297160835013309809379819150921059001524325290341810838580868838577073522240383834374694319738974530010515003243127046223777952270168753313591823790791886860322003505392744707176497044089335863574089261707663048257700985058945551507756261199993559411084107110107760450395902966937945567465739367237619990901163514184291804431745205245773323009550857246166861610526343372012981487963786296342915525002406455624426864066289299256069955760650409025616697100530597287948755746765561936950296251313349100180720386725232174303253766893063030055575135164802711077845921922639137026912911244043564072113077282594669511963763404315973474211004923066629964890739577639310998023846595594623791858611461374333789991462229160909006641674354946782867190185175649194136265435708065276014866755237738504980850048693228470887949319285825992897139468040615173268098615212152362199034987959154868892416528079628108804639562475867761674637232301631031808167699729941127254810315056023652941729438869780558506577913032126667171431879120687585176281908195733805792036771436851437777289041745620870767326677759609764981533880030153446065721677688438476279304546292624705848030287136037034461781718627207457224658338332023096925654196094414712626504999812349908907735328901684741436639536867820737959237888970038713759036321868136173995180343648127483147044208104199823094149311680684408209563512569057191877229373361818516929567809821351204362511981914091310861831942381534180975917198467592941074480558280911595062639169639201209231362579559254016321327844228216980162732522520207530861689464435579569282906750699013156317125684442538260111091315553704551371342965399750461833924301948481130686235514128675551156227692985072700184176178647799636781133277379119719981751349255272263364638472822365357152694649477763490318367407804783366613430574901502579121692645906822743414383664061109351840198903032959025533929291820878488483549016570335503477425973462999038538128968463214686175731329746152812538975715414490088653396512895054897773900364590135149152857697457742616328556342627853341896086994772575267070953345796183055388985466409905368586051605146400277113070171386920801560950568056341819094642470898167539608624699724046925955393518689343559290577894724734043499268071467952788767768402131724257485474443348155190402204938679791816698938121718401950197868867325689226212881862341344493868691752708021380392165343707317510155169671527734445943343572981523129458329560596096389531456598464708628459250481601803467306194380128611056837795014868364675478738921869447848917075450232578746678713054873070811033751845614904147331023392021533982648599850328505324797992903405931008871350356807105148683922090043638004109193800416413504938904837683437686747837246567363245621462215264504540039977850837309867898272353447429209140333716523486346294389429259464423342866718784348332154907495737589402989205395726431558391862990974257053179516693393971040518065545275454014870299542443052746875763226439952285015017103480075664482589898416492699521382585103718017835371627922596282880506123188338258669956262441983183905712320774868585781307896882705023324608704205318086335476970217189125939409535295826641516500736135866254589220626193846387995546079568189225895921296463658827151928352078146001067070878786038942683154943703112555007198157722177420044130826322803228773354536212933713645166037476153999388052487626272429771147504378700824386667552576072949834412701322827065406084920093882317364692614815369975448807222371400773630930397014529141587107410886804489766286299809077557211221441834283276377279549311578689291198527420695208540268590208158411309559115916224536445057853375964088706182616098860748603269513537964230765160071417597836532854984706538638438490582101776327394795857618456815303601941666325912190536986704869158868501341659861115941972677643905474185924919154236940884150968848815167305084768835819791075192820527571650452201706377264401366424078793199768572475110044614324841003746679360835501847718543381170245680743435417709218760774170892521905134456743881889685403624240387449045866458336235650696439067600988520306116007646283090430262802002421750003599501009531703558879321967619597828624569235271712521249952799282058761956699617797297501023806847686829600984845241589607398406205433042714216275120662342954730076341797481210984183554334789414245955972724441928869455266742667156811275086195308944404686843470823935497643256222133637042743745570030388627424341914405327719351035865341661142969719497396656376599648619354706681541032471500398392672895028908172224071557136772270332388263293447606192801824682504871206700182312729854644858014257735752935504215060219289580652827485405677446129345098660675496334400257425344904991663626214214825789402577071266190446598858845657551165478006650268378579936309246416623292504398234113412653515636611765353597496350584242797214645467424298709055767696559560466503138268679031743157827263285494648270923408611126384435035844297307229758100527034452373502430297753667858635646056174352316783864724784845432689465357537906503041177473268964474209838168084557040136666179277035963801649788190630323794079280120884334368085369217930732917211562536611379747222614728104878169040304610167377943397791195269733303803367934116817056758176559425453971750395864627464324271015400291301040834048237229904460119784151066705412382507080365113061196371574700030550598705124292297880452350691527910179730307707512686471417774257624433191231162503373846723334836428735462352519923719511365357092211349615292412200419098964592450393421106079886851832536746103663013066199265279995730371715924613570574133280281342832745199518718517927528199436719108692366060801971674748623135732842388891623487184378406184126961237251308374838688710637167258587384816938335483364253002283594395104428213082724936471726664470556488045103879580283203115745955065263307185367069304931885607771056705688195752420547502292051131516084827227513626497331399142727781313441650928449822528031077643395424892865606185812553209618708054067294925366937536550502225805236154437489966571386908077016644616628917094100782984631723835389385189881690956524893001153749801646102644677826282387983841623458124132482899162257210404863942561219885868639117100676336548806660706910903276155000500508117263327336371514545075339103948948105518494542101341026179262499084923514669141894041414634984193052387453163648995596064391826825638857705054352419644545078766553698406867134768212092395385953096221873886905629075528677591019411100196792410038117396945038211947525399847602248978487680776770803267837674003193617255353989874884943595820253203321384452519605125356299374160170539629974309676592162962283207889937479066842581651962948671615938217428068734362642169065258013284759864636084482494425805568905759566425240011194337392853088950863113882072774089871197303939148599242884921436514003438123866998119449757518851358718263702255602080695264142397353273197072751016957861028963358386612830146970870610173369476290041213240961599444683828728660509693259851350048778829641926995991787493651477722466431449538670520405444631940931163592574197127063200117616377023269481382810945024638388794037539534629223816447318182982573162261034617798395426313239534064397141898818928634958721511475741520711073722920099882590376334454860884668319283414370381142763354864449545678900092695103675042527907170272089585206590195431965697388547673438706908243948464024734804088280595613099488899058503966749022889135369819240565881336478470892152767413427826034426631228254252859336128843671802488189191675554806589511847483311121895673591854962933789607742027354721125243932385996763562990089845704667863801757515964263967574544819567442373377576383511479340311523522779925552140765777162549168627606536954337359655326968317349838346537385361717910887951020851234342887146548935373552152928621000159847619541847090085783952109975838140746710303409138070100225584956783337890327543283072870448227517801201618651996109290667267553194096890023251385066506977916625239067582149216030600268727918912095136410080212700385714582415453878272188843977163968993735163712649420434245865844447538874467586623416936067045237841143862602138786437509982412716236544993977715675567590693723453431051225272122054071091291026491622033351011334100113614427766378842420386056612158911599379341965662367157066494394614068274954478421697406210062128377456555706217614879707479713235117259643224586266402518410760967695718301171495740911642018739890272916946165712712548240091430720965317918399263463388506334673245321989354458677410939263669730840662992882904842861170475752660326455164428803576673725768735991024580444928900966074315893274569065732000272449108926231633621862653488298132571278459109196499759974172990502346412823671532349471937388263205142203521740515617734776899124589595547078032148809726250617309718748041877484871469312233283238035321540534673574861781792512212625674916635355783976838788601256902281918972502030456904436427272718574867249404268516342275939749434125915417718381627154823059795388187643557796882131107015323591740602855171616408322181477618599468536835082299828481582580554139977202504339759804045366180779483313544869629297522687137488123534562960288561153388391876479413708826478118646699666297435581929189440070075730514669644952260184724811532961111684469190967006054562740609696403830817682602740855058713007824825581174479622263308374955540145507470238954719434643114608928765309369950825905256016873978928823729767619509438872816035122699296326224485568639165165214885247585045220167190815996096227538963273550196132643102058708070284286074731767468581002897206027293477392442783993559376615435380359058435321343813404957632844430597407516115666005828134061753246056365170297250248720329988251417195052176624018914201081844590476142528372116337041354704092236230445499861024927726924227767535378176528134571232839599191980584561071799454105519402238343914958545560132296369455996717527501674051584716983417233848230943948243592451165482966277455661639135088532601566674600617232751624796650323929415715451918661088327899165564778763624611726414984639029957167529130036390287871881245311082146624444991282720709160131685835859488372033902176102645059848446177155792301534326038687568040983121025278016547828668356570880246187318994407365239020869302093425623309343532797220525980227227469855087692782946621289774197351298578525808720090523587402962829796378755508315722655662375249955061434868786226915386609890058848845653894686183549662388894893656467726058129827688048131036776066422075602245117850033771154067060933344235537489451814348157419887491934663333992415258147600935899973839876983179253833612878699528792568473903857145874310366262613350682914504896097842967678441561915795374882049346146824388538265201358871400163120707180196764599089623807816937040036664297080956557403941899439446181525390889576959808175319789732729345013235874253461557434295013684132078802228637805721301202539741148950104866805635691928541159712052473199548500023122417629844095213585108759795594741800121862488659939362308180067623260325322025267769629863021014256820424946165685145519717875149269840915799356723714570679854328633996268043315894942725001603508478090964526279952337767513323542914324794366384515337108237375797507234407026411070372196283342987571185610492468602669287469849314841474203829912242137161172983176341014427853940074274616698066369183476326199094097762127081479023638048526980217473857721913576248702891100487345862609920233282479867609860973390295320061596444772559646136794640334020232070271604577039259118030321471246423445474752453654883851177645056847809987727082687805065534508560386034748509484868749084511466820039481139194739444532917260726755796012400469143154396012884481172902955956776250379344193623996159683554606663366708461466724138112793534022169727061145068977089015240519410345834107916606039549535896506959178600043856455559422153010906952429046238984346407169731703925658939626869412208889529452402382556142642063698405493776354295180516206228867935154724216309887021560264994853183122162964468239903640349001700239151472099785055622427253711045154541943036540281237252562502713429813287955504756176955938127080613254836565927270078175373892045308817777319024841346351444462968857791641806273621261321983664221853285787995262008110303749111057909701991252163226786612956039948485781207956918999004315239725232565392716911362137443913813538169001666299789087332172533198768159930220948849243940886896669645227806539054424081927826955280768896998518400120667735239293919620107606003147666419361578340766622195017657425340182955546274260598877981429324867985442034046913122154636626348558478050225751793718572183180219565941648846582500870512480198915195063587254159335838323203094897301959281037904974023242850022067529416755691196671927149714984500315178219771163873245577765644863534667752551725347374221339644443908293638728121315463661369333486261558508076243341167018754253580494648065217163008348744621490411114924257625961844257467700842980528171788388655352613912265633124647224147737118743677232308054278169241165543572389470718649016715655730507415919759437134639122821223608835548002969593443861864004755335830596312144098806627786172180342372593126950650119035268520173590099848897995838346213284997299091126023363454313224117305602371979076720263303857509088989213545865846541978229148356764253572508364388537514064452226538004162337755909610558960150584335696386278905268011336713634619997557871562236356016989132667685535783410933092218111537258765626528348187605952011090519027832889473426772958373243261585206904024946244219955928328657835165395546711748527638171530376392210343809974908986333508332602720402743036086898547290798246042572582533623505869876372043588869390695289619856181474709289878874886932256671753054542292808432700947911104245784261720923749643427949833917715289668935041747265747388665178009763721450988148989122448069550293631283401320392334804718053206771094963893084636519896864358654898649899647675610183686643617984692209745640615665411086480813891938980176442529981446324963289370390184950760152789960401618611360064026653289891072941363338648650712879407484917837626225210190016805924005533217620793710865772338580742129481189620776798070417328772279844494188152817221278900093289446971533397060438597887942903819707539259096587968317809203887437288074944156291979121639485002750965545427398887864796690925680859725624088971635944940484888459394402790695927818252916771006985864661099552356626820750321749870483665628484324327628749706836464690302464167854532305439782278033689404338284527738007143573417621093335706212081383302117479125045464361118208800930877374382875948362404080482601554560446328603851566697665698851075940365958219324531127263984691285414542501268430912218240310171872957882227220777845456833037488576543198792994831975571169809842593577278513623559817417922279993062017604196931706783536025647942867608204406220890485563304186193790850991101680711130049803331028772156768109289320547131244678305808014748971201064079675299002492969944354372520692726586328057943392936986663980965671284528398088611573740564791703131492449096923083949334528337809459016673705054036971705741713107480095195758950587918133614298774895929081027890463177129178844968039964930634391741003432457800781470021623151116642959285708712057558389267402788330449085958058752836738801435320763442501846360227164971809916857884346871908439938201807127805582586919553143985067501346812632480064242115759470055956418480529697602147918842099948386567085625685660850370912322522870118105475988687039756317599025035494065693312919901345258386436454669142904561122150361141161453103536902318245788737512923972205629820873902392607802181165371457835867632637447791071289546007156449957097433501995898243957075858341262677062332153233992751624288663681667727743743215455752608432755513896458783956928615522129927361433821522727476560791060459486900741455160626743116140508827417957695141973239984583677393828688495295070386463668451300192442861505995596925268999849963980805049984884334921376863958944036267049136855208138648104019720383995148354019735471335278806606875429824110365708946232688096596353188388640443259445088782827061343532704161514144468580333378943120312379977869031626422889024341628494049591988672771452025840162902882067421669233838453744339802287753567585076059244859571525310085593958748911982685664727067789050765383846070655404475693991391204704765981226510677553444456706882261143475070165244110100486060735522457017648388916795271608600957191824124793292205214578915608214836859409062347784732445513837260904532099074850943253052861790888209025540318487123889362564130296770278587989401626904535847726172424905079485272839289072390390123042275897261070918015863627746210243025829607034324042055946111491042604511805523198403921585871671301330491501544323044365510309742062039873690424682349405904726744372564578418850991894179767684754415126927598018096178097573527797645770239277518323447150475664976630410535744704308014975230289445968499359744875182439717580903966538767716845705298399687830106476111296405703671001349681049696358367654793653101431874208615763686013081415044820225242789725023432685711006420605912754382023382027083874509088109095059467190036393157943903859418850534458134282404093326873559846122403355942889488361958858940740178686867402427441647536571983064527399713517029910874199445131282673149535808645146702814029869488284540452569641220532163438636867081096906773652302519280873345618115759638905347416134821737327392954753749036618364680878965700818067238801210957170671972163478709549000715870602192352635411074157864963288298937523858877154433653560127128034189750779194184372090211724409593211771810024099986641904678035542327293948004799963318931302596050924235747135754760449367415290546704956908168470443269045635453951307209777353270950891884034163415588186927767249591936019811127392430051704307532923324392381180093735525885755531857838985139669098157754303658865086459781063909449482145854241489718540951404562616127911559354871113083310830479662522330645715878201194858034686403906711285401171561249023474908882949485384361712779584720777408457868304365515697331627384531982818325851725267982487643433709186238620482162290947197526438216196111036726367697698650918971800212285316327351575952816345136289363447075801258242841367759008664364087935250114903239969809726554337249997294203422204236625609822939762532283216937549590479160777153899177580400706662362733582890405332452677610977793963229393748757473906234202546645175792653780188069588104644537798861698927716234919118881787570112790735641218161122745814125652461887025918032906302805743189249143247850941008694366300881054658142976163453773931175398969806478233385059497959032949792708064890357002006545948137312505605318282941083168515313834662400731489533708045560504314381753101913209319711819133604361955369754398499558191646863767809242123113150985589422433475183370274361911090046853977695578019650525818131938632956251799113589797993748352378306416793712846633363790439475530480943649011354290407178854567028407307676945354686957447926468046570473416978679358992628553552548126548645943125451282161270567500876205552364132972802726107767089113659679657400846576429904480531827660600255933672083254860902665408301096120813904879961838560589791679607065944554241573087137542554297010753134423889989094589449586192275932878663911204131483030296695664173423335868615768922607677912549189612190780847415440153928499414755634039335267371449774896911403352381432182294348781839131496742932120700175078265166846573934297367013761540283265404214268290941279545055250351653570555961008739369795340923421638646714755380236460595206204654946329529443709143323167549664943284200181383375525520556839603678820586450397715655236059053692894864249659826424636341472230968952437438928251257282327853460826788863827536945879365233463490004945910629186649683975558970154620907348485963583261119898793185057188073423589485223370225513045489114839852270590637972331551687394506930510413107339352649023024730058524981033363500499134369546855181633424379161219930893771620512130341938616205695573373693240382113021901900365879781488403082914552923279716237285007389726123678422397763520200300215870532403773973439874360714881901316248954386352030365910553210050096229618093848255303266358773716865038652811099661101910521901599993630077897063713856946346417101805734818754776173671798399585554497051324836004916445528589488440650450576504648074543792029243730006516152363049698793996190666787272449543710553446600658474702047145465509073822485624415729234062526401852090041198404861350308239505783189125684257983671990658677309029378541390638123909076031666445045515874448051642351378566505912644824503141898882645476395539508057934099820312171668201443063894005530256050033772881807854263558800358099896118752345535446602941969954006170145363308141974125700285072415108149682152994844279308531819648125762640317730409627842563338220216615330942420187490479949658172002323063764337698580880260854831872141265142653200518244984323834929468647053259901440529750307371817569403130953467705036475149604460816932881650784492193314554083467943785906585267580005631803190454712655704259536870536609508730871776131441130774409378650849271470396448528980084508523497838824556682442699427774472299176056322486745784876902797147649848904749133877355234445846808253157389355643355440342993253080202132644891485423749448938421920494572183973305798267840694527191019143312097181227213430624127175510677255800710199855038174895377311975253193983536239708584931505983232462605019044188463666392664882616256294231114575140491285859793000211344825637555988619596076857031637350409219909606739252382643234136231591228411007086695008664057074821787631738972636809049118748391129072870732735192181719127892049175283730111435320807961321778163710146055407577569704265980769890197022694441481507858421792157846265952789942637784442842227281849502000455504451507823869804955063113282057364022108410517127770455676530877391671380545710660307027880587595738619464934670122707486504814775348729752917606704918239293868192315677847169080296675196266461447248131970377619695669474516537199070284719351475059878381241431614465386061304289750522735561572227551716717457373212944739964195119243027372351423151747935941272807989239388032877774796234231820372805378901444965054162339527284715510439711446285299994951544722295360351930656222026593394384622357054729829213835511030323673541737117027162268079584151210813672560051929503824575973467509662943522279445506490790133684667769193798667790120066012884644019711141436714336908057653124456847478847477395778195432775875201489222511629717491054919846173242583920038120666428133193151350450959494796103019414600324253104257176545622756857624496711125541712960646147011639668854886366380568353283856897922615483828974458456715811477772022909508519869418122837267682923841396661532610404775816072524456573762104661933344026053472953293763228867780316745648899638484894161464040250664057630600155711647493857887343033192821002476965933727179022176928784308856901863110026258424666966687492477157611949530590208333776727169806137397337818486677527716987780445921584913159687207604939216528962021583201797193479498899335433163692876847843736428291737048032930480081922912268940305288820405136824884309368233804952592185830382050746642118922911966250267842066355184394650258201102923674473748508679560548247965189210203737751402841018668096443649219073517704713078824349620583305357172572305768646765568533763923526236007846848456585357960252498688167562750821115509771810331786493948046474183081485176758007356940030656111227832109785348023954995466917239385675806974315771920743020825831943796237841313352477323947657026232774022652682223563456607837532559530736274787812788225784258759496232607713580542292500235779873630070311938426104335700975631313578500744096275915856769129338931731426811305034802415011859281308618578693901397623551344951913368684115703080897674796827414975449657890613827322418482577702809612203040313414447775475627416564506369666126822394208035043185249055553760263849717775371058488443695657648917498645984627791161631455380317563299179116254709441795080907350963462888518134504851425449844466568682231674913323940707786309648714834513472759574442640127472407925438342637607367152548674775258432133195669879643896722651418549583410284960167217425444861351587005147252951876905305751464903074116425805512988387771909127535767995516976331704491487455274150628954683826075274120311042179753859199965243521320637766346842052040025950980901626538162768242493541413321749350192999527397280202749463829055912343656545403564338293450533641163638499231661610579032049288392279453953544797687691847530430420555848566231007229205142545243073631433565390795756795823155587021840567822384065581882432087422290844737236394121350603179341221345591657759720842502346749275314405556993943928495216676503672425598516727142102375053266441210453085506129729620358107712523069992174266929441003852893812608941781093743778312133304705396735497840317228443204800237889191210533253657973891090712658661962167068818910128198200588482534341751891836822425546812156482295475779497929569752735732680927316952547934133221012978368470651973449574607690915949048276170429262532475777194248224170126912024252013103262686518550076622963480061339509340839761452754814402671892255698306155006498542074868645344999450814078637442363861997476653653442272394397312169920144751108669504115675822086366205244872819585849263202497149163661430506713114212398151944815162885854371497599541528156768837789245403920564208517615962719402792821868815442988845873909717826446264046504258449868649929079935390608173420322182279955956004046503537055572724623143232485944401010536045207820777698970121489536895540603332352148068997026332350468103121465034516725039669668466194499853399653125690515508725985661672386996014952787656690541102249831113103284414480617781588656186888445063432587479092107176833390623583423418174979957593206866887520558597862989095201677580798458805245483502102997197503855409122327164637505458358510419973222182249266038167329664075165883060728230624647906121698821513569520589087262780684653651123770944084581550010696109861810973515300613599064181138935445292979508617348871282179730692619574664703703634847678503687583172024075503838081888634414425355943951534605366929186656342735464765148949217071150204729693691500018014377424906319026036494497406728399983566964003631068055759151939281478018319561573960388335622895428625212854733691879824989705902270285450217148958895421972611904395770983254700300322125332825143393211799596670219562635926379991823385335573002816082389031774739637045969405832812218631058755177176193436628712889993741667375476305498653876890566927480795257221779340833577011175382477252232895780820153700521278724597056747401406186122401643398726658588177291247802499228202278952382135696529418657088539875409587173861284952663220833812317084007857449799612263457322025689689986693314532028304400152556844087865616874236042035224086024336014281797801778313221158224135515625996137734977616199834372903148637552803800507852426333073102589498633833904038812659754816723090668090408792413653121618677477655126675907194820427500186520499845419475100387810432800561706405998494064648640026644169201067762014872293631777431583516195169818943875494277873875241652468186439196402856887744672921781708066493658311352561662280108847429904564619624397618299670739888893947583883388335977913065187291851344771399457831005339364920280474941075588043267472682575932962174980516723924899900376277190264346276640372990017958999620080373727011869658137909459807973842995625074376194763707288191034112605128233096434265024899256937342280953136262401730576115754528817814165885896312465394528434152142972782479699405565346640072064023644059229464560557126749843618022663955912676241879662422448263179376993542985798457486449739986018575416502176190631437411821735509385910711608655203454652535496351631581348941024242867954476559397623163512701984286132121571813757761606108655736285971431514179927089615339969350368533322567880842510478642803050877279828092238158921148658076238783867521973133714247225668146849885275605649557369957253690759360656516622092165283942197766481422141352449251474749558760759078746681792771910264703167886236509078680664567256675705464096557814298263887450849270067735652439289971846400801360402714099968331337665527109347585597492229138026375261682547933524557289082175119208014312219311838686765559091307715274944081232952456900334883868669920499194999897217362953343639282097062600555447730853724734323228777988106091828511014359023717922586928339513096262977872266367158788653626835156300872917023080582033049804671694709029174063162866356568208215985049512712458146112358794478702356375200824346644985161376888240222018973697753219315115055757202101795246470046502345334245193822145741540354713621414155004874017706384601675307127677741262442550410939069277547232997856804560865694455326090308536696217501552338787219308124020483871086258564902209672883670124246776487856238460693521695902091335435252187089524871204447839944850695436391334048282382766433804149538215720196683735290999141529987119080976647100687156530382321981052665905415851688427066963000682063641568942573114609619705514942821940350792689099149522414912792144818435626546878079941705145231988657993666855747582085046446239693027591888953688918461749674743132310025833215610372679641819470841613696817208100280969405463660309260293857758580895979103734140121332853686958812679509421653726033861126518180185583344091220901994530058265302829603287126808337303283954085427681520009781426787861398872532401299919723140602785106057570343452330953391086953011373321366748156121118027659403646260491081646557689238680577619709835694327256450905044621922480243799642104984188644394613337860082863263686891523387344749356972484088740044276052960459670572509253666925334592543006868444425705806701010297415469226229524382233247032355083694026467840151702376465555114094503769143674487090042835762966788311978236827787348553924196847337920755846938424551583076329988496096593903726470103567012337059271040140269029486460666329083643581870865725739776764043995608032770188522265312563896785038167232301817428420348501011362819717330798515207662563929515232842461176221472116954980485294753070191225473384576766090111972195372640350938760021556714695435942584755379019983426964304746540148709311884596026334346267785545819261449400341039342976149860032722399054214634330609285546640019627539393206712015539685363392130147877353963127326603244798384581765321440679173463620975785710160456063427763481916302250232979386627591809696592799515156253076318573120268937385619032656687817258591490699484724847840886185912541676552947051731936615239885678313644255363755365910760987349816789143802534450044989439635516212682968303341448027752502741897057147885935231038882635748703389651360367901264796449124482340824097161821511382162274083557340868504830418722665533270287646108938182772582586358812144300447171479536501847747133883081654833791113035300039092194551860123071740374244276742393472912211764507064425482927491022756592907362676293216175350343944913120284805156721292870334045263056468006245807820813802110806411676017192737379053709305204621753401745534834634259663944916679290646279909487299976806612230152779381265586872017654404885234800003879505201404315707137646946570804961442319339990217481502977044046989567566383166635782616467591073843408830308394848158955127369973378988621708594571249664804825493263371768711571734470929021442042231191037212078058371411914690663960098217137530414337421931322304185900858962636469474208116507956560840439414885779620788215031289017732412594755324688307943998884161209919874338807616583557595609075162355422503920889201083656369839248497634671220404157440148711606860352970074122992790539681562966087762853176013557199520669419286315510656038235641581562873260815666017971169866677170059679587197935092762432901869091274557680090144966193630773071294544741439778179729797176801285819446441993061477102981159615033158992561509960538257526633021067764577578015150963915459112678266349912025007601008941785767943078445484265591537993886970903080887344185978865384768536368355934809937659590444743191695494599376497582431066718494319560918682262249603758745181723254606550328082041554388712641303951558670627376953493488730625316263304725091507356479372422582542375404483600463600717753462386277813406787622933298744661260970578019505756440951821507558386873704144443840748198226424846309343587650346486451100962783684666941754683704608304897237392079955507158189511213399112669816605471542962055829266305899398893291035585454841808442917723097907939520458594664677677250589924464017429796964876858543664560552980253084348832588393691177450236217378310775283854392439316224549332026380927899732611602235551419842059377066525699057950339447236623355319271008642054529352413071208721314486412636004116992327033757888828746452059665811478457033295311519934400191006437176954562216508612250641369103894898582097109609016505158597937161393241280321415247204574236075418134163956009120310486778288594048918857086152999352963649460892264302311203031351647003785820762686976197906800884768152098825396547210196835456626583513110816316088784343577368453251110234682669152723558300114633248585003041585259296371534042524677971466136831186633170474441792229020389526447062558556843604296446291640949362336739355513363710568530570833005095654212368448323306305549010286958947641433360070626209389977319123939257523799772098962261236837801412305854723300870459904869427267223030469067931058304715428675552018271333667478500572877300222819252462020813471407137996181410129589007230589588650210855650381636829957404115260982840992337327572067137355749191208970994346911669898361858410022023657985262193862373973663914173978686935720025179108337426631558077559867281070969838810586552508526540057153818780749570381570029948609639405399773230406839796463768584879901392793144943418416145597947451546961124434221430954903735794962525483710316138410955129580695867320998754084908822918552180260521664616157061416403113367307979007796050651260181327118144007297411194459628485407478537089740220421566106044395720640932695791663964274229993499720877086817907350528553248114243989086935047051600985639432118915552817499046545905118226900996972523147388226039778004116760663168655325582072651913314209762397710019080993827239464396342285976890972516850352299705836380623189756406605477957260546931894723558232650849005358493387306767918796497185769252096699700465169782060863193504570592240039580860835689388176911221095224169757429392081900949242486815757087257973169825532960293489824764988479657231577287805145036278062511951550500997236113242934445292063654729220487613042967802345110031601222281666791657493121786703099789338671762125827215034602207360252406261503901931668092353531770877507205219349723861376386794263062329385721324709493357586507802595024738865051973587852858835810216787570077151738791193819050706995115694695179250193371423625546845686010745739292815993958414934400640801042475591604920645805112625682261634161298215927185311987008661054061690081439978707084114681925511154953801785827281539637529370193035581860566410084450366508852779479896957099402698983308456949021516166908370163890527077633643708214747491185973729982635960474307937076472248639897236395226573633022821750697489890619535663782477685073098397161885939380263367518592985861672658415671081352276003926640542373569037065955687460389980293397162296918118818707499070885952163547890784137947745244339172106281117934280767445285686523524286525872069233234766412571234651910903594939758185627245708566287963521260437074336482989338204191584706032134273847086942607599794702476554005184921398348241524588333598315968368510314701134187323805893803564788340816341361802087295104894949228530271782444498516675390879528049384357490638796006434939171002926223441063904762716475993504546976351083235192597699506892186551811434641473459562271794991006723975203986182104069983638312914145719023861459142335087659212401409935571037173145065535299130549698558551502042609071220596082861844901801340914231740850985675962494324390685773142826601763404296203035588966202493917943134065348156198640482518343801667217379420824611851128538453067709084728549939207242193961675609832205451304910113105569000259152955757424036543377725019771523439151907403319185194268060040720821374501142735310042433530955631944793803504201462693369603970289379802604304748989725208387374595676583771518003512168340689112615210078306905995515332665313615483659251475478014622894140528266363039069659250357032392556738551761772821347053567586734456064151975810259750462046226141801147656581636480958909005083554757671675710904322888883417278911842316956288776750145421310308718465490541903401756471355698648117327052449534711082951062337392693253325771104457454662930230191263678377344195609053614946056151060741244625947991645805027949611760386265543359526694177677657391037161784506230829299739846077892770371794226201049444992152085860211076750705298130981303706425143552599700441759551175107710509626290581586551522650934672044839750077511033744786294508016469179276388505001849646273294847794374371048225306582569652936558645879084666091026602078014410702821726190307490475174073397937519633444026065313674221243279162971395872809644536274347973388734555679095945057140742308232388304971348474633878383045402998491283616807908754531966196828724308338268760333210047462627515659590687549861629227207966573460701285373456001511485926644144613674508807889252473901918793935951569969270660193881728366504319197595298508893729745209247027366075675301509489152173029750475167912096787144177116490148533342957941877797444993714983377959693531925026835398073001069889885223732469516067165564842931705828312568110312801057581258478533311556362385998322868117196185386565743135764168075175705769331373911317514831464786442654874373623544470417925172660555026963524604560811918036721308356810761509412867609462457447877248049705113429410339309454108891276473752507856530231696202319482773810769701796592722618550605577337946348982236757778122906217360191360417573415708529036087833462496173971696324827892646428966009430365450155615337820870013784631076132397657764826090831044407841354012313185767380159253358228491988253110977591520653477990011929434474604773314472973627409129564744529229210324939058831920916266162875514588311955623444970263874855965625732152923932097924848602656090371415909114715732848397497750205002317030378212234898226548674006031473267887580622234961094007484014304211709709145951166832727203262417747631831631790091987224717207557698012522605446583814006358710296044746998149237295399969007069938045047221079000615050258686102865399177405283743377241929324149729656403110651468103656373151176312770129275144706046647396252773121304237633195409876935987827752398089362142371457045070771783928385437251424772180818047369945606614166603093505839506475341747992186947941343505240293622124031057417116997048847172510629172442079775678138369375415302702939953323291323945475357513880071833293555892999782441616039070168440854211449032098991371508157375810176486307801441973822613297267492953225073750745783632944523002951317524049365234251155576280230356044573512105036532695890778200286936652305516129230292586258816322643945547614055536940777077330429157786078656981623997913523561100734351629364736606405548694041836711329416402204807061528440002752261906591951813330285806147253055403182138061039560830750258507873369633648831317855314088241301983419645879825334402720956069888219613702367857778510501234163802486286833284443943279050887217052674200310901438397073409830325586181996053335565128901013378937556392873342921808828598721044914809971062803438442252141447006287714377925345985133061750944471750157869014756432474085136084238911977057868951015276668431296509600730530461980415952788347578552623566043773074758897366599190790956781398281098427299801693054966365375977214495338769558798263993181144598432718563253888712632545381978099911428217438486504813364753809345788343595574889094581856773497679571420796348185519843259669785371575487497508192091401865574999396191431194876267431454161835097449195056612658133929665259203504754436376703437236218424689580285374952746105891661486236697003736002086933266216044656674184637901617426712137246196443040140108563745532601592652646675956250091752945866137793033868979979875677831438989116021441695865378366704619080434228474929655702487698319506917620961326736750327355206660375678542520758788844964596443317214376276645739870600850966445640854230678516753259682590160607427178595924508439624544084537709349177456448363747160409717522596006438491850040674147914381240363904050627955848396119095676490088307364282381761747449661164420749074416803966375414272546687834695532098506979855007392969377388811125896619279139662639142000862765133151352152132616772381596720371334907352195370106842826941623531891479700866682184582674031596978622397590063913634819626849570573968978036551403726559466313788010033258572512868072321620790132514515630568876431299752620230950053111051392977399878138352380643967322630610802010341956869041803573095479824483971213828280270507453636207400289406726392475761888844376499936584928210089283916729249724339272521011962245214908759666562423379522419269153378511359345582978772180410163319005156004738752706946973330826770350007798277158680628057695191242106953439125381446648796712390242654090324685822218438546486956647921434168193063426638083239522407824346838207542733944860011840823719720219777458082773828022702773186245266315663563417895106620505421578255101306396181217604837631452167419642478514177372662357861031122957844977916337736456286411120548613080591216742138126294719694723448838980582066223678347464651043709228874759002639066884291720355473980389800703884301206868919048277179102396417272796611365483070576763206569671428379291433882291829598752948397847506586802575161900261041078825830720426105499824989994771668663709409253262300864836936986065483704198718288003169937916358793676404996757242882181573166793570285190073435051601397214169352203726287190715698452870445220056151445452259611098398033491131780257552608791942545210899445790498317124939188410794692207252991731457676294988474786218109846673001919747469351185022126727963718444414558805690506481378761313453973949931508366091185930649229763864964692672736310519007519648665675954459443813168376688278316270274719211245819464798307409141043090479025570574874420905446781304336669711224852475428171312765994280527943214334867425031128128057007018377461874242148012610278129253059770277653318529916500888002176618992993008267521762829434757433416319384940902653889649434923328986539171442494677396040531216234589353570903673369450964910113557478097507513003135498910212595854740002165845556440328334196715915919871229522301762750975931741283951471778494258647086693471015411972589126791634301841133620295807763697645816426532032377099648461331698298487281898578009781883646178684608969016953667202916897027354187607762581430875729290326089774332766027004968342216872550198089314747928691688622630238667933853130287517713728433076843226996947484387405755986756425321786685663366912972060647545702578519611282047935059253549844222430565620546341623911632512948286325044479534936451831797272303905133162553392839521801628485916663685791317393813343634725152562126239175773025442700359999648167553105617814208757050105107251766710081057040474911099425177021492754920160144191965388778833673597551098899844217524612931710361490796755253468202265851384838897816113666407258557990413693031576450415563834960222429438604113884358797669064971599601416988542381105757160100049457941122874892711984094348138750607335009757750239752376953509293829740284098719791304113793102653982431031424072735512772982112382902072033961441148526608959348401457193875427538428605551068041449732473340659626120391786054269742764490128298418524572253550929509886503745608275735861362374804590572379363220781593300297252750501859119381908298470512133618962187972970056918750161428468901148700927194304796041439439575573470514260248456378091934517267444782511486232235299227343064312720292729334529927120067291072011227957747549504876727374472132016739288243599220845839243844864536528177252326139274406337857410827398877198861304248302090352018816071200853942559617996450288685746244249178301524316025542775206994783875559749782746203927629988153385715824203097715665867677689928481281707608795771939438025296360479808828654840614438755703435392462609510390009210672464882203518681444691208200907057877802626392000950054518076425168058041352056882050145847103054000053917798683624416169910433001586181802253119440889812756511209675638068615329967811091941393359584715450787282990864214366169418174493003890546093660311012715328054689943261967694429279240393370499054688621145198692555065377952986278255814732316103169354705314889850791968550266735598699023942113591343249245021053476341008583678313280699049608048853913240302517818025249099833353754548672610413086486098747231428685931364395588641478596591608031896789222501630072662948780630703725725230700796589201124354443916484903092056460112519342010879423778904699823865099285007263581425651657479599831570965932641388497007278432079276091325474961445798693934114020670862714277011698135885035101651738231517497938271474108471594276410817659896439464762797023610429363044507566839225312794169319184462075162772019312833754314708136898684685551304125515537663568636399612482957864448717709349815435639287293656218758400875892797644508665534081608997637446127355523325034379522341425052883142919426080972034503170464406322668659234626297406009248875989414730065310357662623011083261817648488106033716676572748729800841104239322165186326283735698480542923180741985328668640389106685737146151747803158028177246085928702040449275317095190349133843702492080261983330027239149729434181299014680952815811095388348713228311117623630837935423851676777322018225563810453411556689475128992675875899019494987134103675922422909210655769369610188410816325271467188615257944693017865180039160427961979419394232943892926007066236975564044977906864635169172062666419045168871773849237922081456789254543130174384767517385479748663077091788204682582407624531666091983778079283704871417905985143243444366997413888735931170227677672397921013651242667873981991825855486007515657748360645273628833069088487474571073613662998510315417406709320134823610171645009425323179306325274985596221011379310503127907129834425622434245605759842618354817617870932946686228764929147445167607917588184154324707133761131712559968443629352765096581354698854786138810317026362980899479360454913179699550350567581679560406549647617359118761223540244603450170045266209593855445465140819419264037110814350698628443093537893511310534762623687089773149980873961479723064039396816587840376095512787134936005224670872966551409417625382596207033465970953009350691627054621068486540684960453858841450956504093977060088266566613097152477077373502699158531470259979297029914739182137297689969746480033707982119310855539743547504426747803340544044210654822725455686629885965771111293897652725273957685464487240225777361092120711621683064644005630933657124979647406694238351118909014790115588788531652613211413075565445276230397002506077900721324556687406461555177401879304410045738546634263704433839337651573323030943521373562021382137200128524618989423541054770216849219979032815952010688603374465651746044702490504798380318503940998565320419986776270950616725366768843684261450055965602182417892298659654057188791034042000541266597160047046958328478814512064374035210375751926543831078708195746747418740551085707604283717151819658230420137712974564559118060838979479961529124440832519343001512444768129558869254401976109419031044696697162286146590544823204643130803229025790386988430191860239701264489961578650368904020103576959679132895140128653061728505690640509891240495512728641298600229198211656943550519689625178909387882220192403003158903067094776505498004148887265138637541160731752758761324381382526787368040445650769077587200310307625895382528111734667160155555553381356958189427471041285834292159914799223409612546259501314375943381915442086233966535161206883038294719872037776709017390239105123981969623365560296466918667683832164328932550373813048640535445164347372110758568715746429015783387305259525203114574206975629555534245185318909721213275833679826496910712455998821367829388698226982725767694525861014813067299481244071373387154620937124554210290458682457118856125196887309114078943264606223013063125975371698939823829692085573038443831279485571545508791820880954928388412217731558335542389086686420405034416458077681389955823797560743021542378728451189067052559873843869287483617296547443146787678885010738329733498482906712131868587811448174247328270670798059599681489899476633775962501070443556801624332258834339101419783065716742649999986201206658933957253787977309994460499371659266381352117900779081169892199154384623753627303698973483540601288425755630474389780912510301426265380442751474553847104328793252378195273384796118287016322597413069510376456726384712301019929288477972870625315254425508993688899541328517384056647628206914279789614359731960932577316774748699835250286899133571771863692459871254879018475739182292209291957788195928711898401182316434895498721157306420889853930959083132645071338007024469795718629808419180807980074220841749859004283423678356197156403279860102047909873212765601738287872887901032583732573862470356250952570130948011048085417213638492581290758195174613617461568507749863099616478884163687620860421388823485896941212866952560699792657124682127729253195676845872805752781167821006177561832758218607297003431680261829647501483437158461723625856979076394488926665264393560447235192853201785692197309453538910342085831084585292450048574219901879962222846391935816731971922680082908342022070776981125644252121340622017522287643607432950133403084150878238577817226084442006397391421366572732418037686410580905087092608766324033867376435612180533204783801542485107243421492314984870899538623859976661582267479241198044029945192432066641413838093423986418846037459098205427035114591480097452774066915046693157142358365276962105966056145560040069046098849110795273020092645641050880354410372955334340811919070850674683548028814288309343485367213767770244136087945745136399958384625835298872531070394110603881042124674183785515582726709014274439159704018203245289712582252174762964320048899936290309839003330393688522606465402006890529143672923647551662104577108062701707068382079279248332788586973685596301423976607495873904052659256939011384677649778744534551218558170381531821232951285577851728683137565580530381404711499464822366025483592916767923109140177909040630875331392328548244665899291521372626330572571277915466459728743309576230516224473116378183594560434851867405473284286670082797220997438692909744322454132759129833026445427371991432740568321154248999400768159574948435705737153899345468978175875288951557488033690034903673304412307891966812458634951992369437223763493018736195443864067412712792780433815271610902404153069638261935967098980035189063438313193169958555706128319296373285264302009579445187820718172735204066363540159146932334855332653645989968435386596519142430988879635429622883786179879569505317145516546233293905471894222467225605140334241913989654476580554189567466709395598493251647858936688131188577911074015694649241626817207610324017012977796979766295632709300366524629882285674571458883478327994098688244318509501706591577986657257294942396430694850145754392917582399701344358084944256030176987712837253005800640990855368388986578738520751793441673308642307123135432349820312021261254269356318813864514990880341140397581258632452079460761153664122656536479704772442993261916576849467795155614041227005637001645842318845842907698453865634227785464887530857561990948236432362120363086592592159029152467478784085622109025380656656902115953307918468075633000855983342803898549917388120614062857944941400122516347954393998679386860453174614526141834206204423328867538034202804328157426728809733081257707816601218998329280883132025148745112970605958196761347627410872597213633658517010949083363038794894278298006183999282716823889305934494978887269717895710101604026487079904821825990062860306204231852866572795637826458128553351532308579313377213981220046390436541861962430503407593143363585940419533577309139943566605496232332780347167615173277922928120574831060225318319050398403680774561872434972574331603335686143201235262373552249507960440891272772428849680033997482896551272427978058796537822527314124834828821534241467613855705381631903612640773033438668096270690911099333679316334583563792478416653917062334364519498921544775327959408010630330356998872892781535511406011068871735915968004795971213474674307626902838115559701470910248803716922647576872899604598773322994583570135560637989226144552667151488208013775260140663201018608186417880461453589200478116736505107550869114025162400058075316723932078068157677192521161715736407033219935761462555260579278420376651769525411837696257934943929733766744521598304738669709760226170848317250600277236603699596791577263750992347687914090426516947214797122703861418398111740325446874730412723752047300311728150353500110768290082715669439400157671772950400713848612164568322984434040886229200473783393334075071098772592566014819608339378324237453509303763549738632021859397858278523002989488081589613156461866631605476200098009633273197057087360601590171839392470682594109379378525048574024789118777437069867986031319931218401855077004061195528193697877974893721880479462519366574455967965999328666557576679849787357520979020822409869836650158324411456823555956826561543365268844185505224302967296398179719847354776787129472284400560364685690501815765449476470264297272265798699807502849723347547718503244278340709635541806689936949132662448155867318546341796523046250895928608332059930253257960658719686827494190119672368103630858421632075661313027427918516044085517032036279269785841512784546565341135795204174680874340420026763154838798885709943322861245262917024644353117238050195486813868905070301494385549631229929098926427881275441178765173950939023959862510327505601698132575815577506087572424769253314296680960266534772699333491667898250123567004909583459373954892587180618558262920086971395359696310889890670815847551013217294102939084685791081526007499095671013458408762314676015315533771985319853173785179719449016371903895156144044707591098691580350852613466459275905299250736732340108357870873717794314521360295448807809109654167104985565449521828715461593817309294384111941078836490016253993977236909334983656977643633452724652703857170994284653191149649554150163814492673315662049629344242271149004618297875549057323157217829998952979010579206765580299977557696851624212742038441933164300072331623046983078940348874772792376379902561538507446144873268355582886602103769058925456413853080109120565670628200049413295747120608216780916396926491443515086061346145081126530645913295536623491863381431282925241545714495854530940773821120883083577417612027055058826293058081644573417734191555708410138648603839393255411336701771783941059781149409771794714639131170723505279295954436517976780709069212742695985529131480145833014537704188504346490098970161239505352410104733165216022477589586232635467900081628569612878244988258376261458978053649199166594522187483751159295468481000419483830107810222560594354323393032706767844550568289802450017167326648401526297412495487528406464820247987961860072623148876956209995144153691764936617718386368745128448484659000653573328462682396293548836068619065095834406535172292759849154304361276051121022803533992025312073088124447721863507916031119612036366124443313101097030242710097846716322616751964177966608501426875679843629604841005925143053990459330263604988320494959325582825554270640024348294086844490753693077606338275233709560982505329199513867941060177912690019883665883806729142115563612145710036385147686789366628089245690900612207171129475669998493627085781382664428649561693229170065127967816567057872246928858421137970730834527509715690168465615917051324546043303125539892985377515553555234091888017559420497337462409458014891026279757479899900088628070041000237848058818027487669054482273135834063088961616555631567115029114160701117906415177496293078929285979056850174451369667811926832870041708237674899874572008560117891531003886759859533955463314524422141034721587337165113079502800173737880309107815584106792201580718504915291664126253506268741552809341833953288071031156160210756057489984147201191596406506525343038147272634672050248226187485278925802712937513212553255938019786103324647164800799255479959833511278435390304147979736799714371247774245307124852659030276936656034540542431485566003632887539253073226826753002257060147475109899875108893056722235501719544769551800563676133755386526364341545093278596405098304610644729513853329996355281899263359636844239973115561641215279540673113303243240134739728561554179989526002862472939837935806513379635767279413709424537242628598248140844637007015107466288709310414449184781460727592602453022737119245760198166602763970018605739416188744376325086239605500128898040304664682400624898838082639692763208753927867029312182513068279750835171199515937268818834330280138717507082632940593651881353439452917220485954263480365424439083814728834280027182361686575916246120923661999564227786832429696295812124871204283603611868278310001083187905089347247755806831843125137818199481503696911671057178452047612402908280369118611581013778373267980399072647715009526028018591340750202513779973828403367929424023748958005005850459882527498592371698128883717800794053703416187208338044367369750269006849020015475564703143805267855895529754878295932411974173658310387832137043911798939696127038415635269972561126979210684274749975257219072284143483098611741932702031224377490091241045183814560220589359184240576857734418439532640653736935266722181255393211241074408717252085593000296492599043411882248585714898829426590864743591832677214900598741884238884057662148947520082015711023743792848242293203717628705756752573684749241810543634110781946062610290886292367519065237301605028970430237908886090609238777334981348558256880114911391563561758119560590973553925150624293651468305420486940285938688511490354157357895557905317983079592783797279045829101985599699168131865504991436541320055734008304260569308737018109066090304148359103518686821667806252099571270758934148943966205249837908115401425189146083021994506850810316760679112880391962101985257498949625076630897775715740124144883835063877461643967991360517754027702837995018678464107045297591489199884959606472013159588710630983355444251357733301082452114817021016561675476846276017927124928940386743012213035114317062324095061532300714917908319621339697577802141458977049403049036768216853196554311982086723799502226649703174413001516533162910901251446826548893791777359709779825087448968943166318503325913630372509378994472309931045167945391970432425541829099237151456008011811833965409662513571814684106809406292464343551031901085873607861949645605845323957133819095703683458882321688963526861927655478161706768755665761739740551926967840031220948368444022389317838898694588199970162257528739971415024047108188530565920533599904260157845602623803496407812596983143408341443194102895707590916091282116837914141358260852202059214389375317261309760586939413063865604758814170476096007399631797063412082817647815109130489095773270661167331942981018910754853827257397401954418702584367406278894327048060323222828622174836752802339175898794134059484982166023075705682206226678413691566932250328272673495998585503856612217573794713144089071860951149833973472143054013836120840372882205211631182800877335877263039192125213561986692001751339654081916577498559658452678973864006949257105958719918353578862102648758135903970016087605413097866715156141917944899974081905144656215083054690017431214176377497957395277755609012749412569731627237965112540851694558701129802525517165812780427937113549824709478949014644896786387476543833791007720680106383979077308404441071875057601615603306925782927545488545775176888407107012674495476193658609009769882680825107315991177412191931813225639047589285575759649096429942324725233567655387166012017798878076925930315057801934530147998731850958670635993843910347951191851934341375669968066932347164107660588270238309115221049905624365474817731857371617439805696108549415542926242404049419061638806794462595058763930522995546338268110569654564931198707936307262503407497243697733997078321022749898747405512818152675432423931764951771530819262543333055802725585555218961675985263217681695344544295631934417236156702765183075410480689918071013236962606811883048259318149546420635492684657164144136703679516765733905960224152285895308068539363062110404107546681987791755086578278886113778949450856200682482268827724961340890839230204588278540730553014960292234288641240670164172391448665054343395176240822527318309508537141099603372864915106146247972619628748609264607542886993058748620180393257220817541560549744444242274092859283841700708277585705162796577738248994562928391566533054863435776207452731220382390633695167533233127710197084208626844474481969823115699838848722648406450560754556816335013159814968910397463081009043181379330426087446873797701030452839957311792910259789226964461537779740469088832727839475290651632012261218815668314143837770252241804967913092362777893080304421380007223379090439049276653932100920743109357596095379296764358668203371684736847474349962192546360414266560079419288034494649133324249412963917995961400456292230693237597546715818424510047342699355025442300361716004422204885498726863782464763088830946391278040181467447187987320800169988006108246188077700346571880394787427903732466673094644534165749963685852576264599597834432932683078935557530788161484700167053229927866958281052344146768202061533521257665995845404732480163961407762273942604783051729595113159374104558284199888987727583766298584124817902282492373055226141452672461222237746311852015835612453143210366110962464858637109356363620399249237903197264633062687887946655470667944400404197797640400040539603314971623979412536355852220447581051168061034754268247729341953864598031503567412871155371518496396441694613812623036900914299273991212873332378874110803465049060215032245413983254696762132052599254372413061876336005399306525659977902450038685769292607598497359619750001015433659246297230999304793133857234314775285016436963056462437724815294710150068776395546485385709553358897428540409263630765092312952265652181190699876355261338603157182542713481997333131947821656054901947962392016319801142430776786038249636995213498590083042049750583913198239100441871788823359759403585847570574020270370150599436396438017979226005368350223601096513301484938595345096916017980373625636929581757871713025918079219329651707784644658059206638548350359060465966018898676944128981059168773046520444314710377635642288768676253100321284614262948865236164411039555129211890958553592643833474546014980353175454092221719440002125909110779475168041375212131439076205934354294218939030995142428882727761080627364201407914046622460553361957518250070527785439158262478569581600238115820598254833554705608133238252241516545176421163645497321004847985273510815474505657953497795517345067863422535758320104728212577607559842857215785918564406500088387113224478002729995644233388922390928751760190315300472674091262238118584092927311772556157261665055864764579372992488179426477509033950062315501610742180348060174223756533236247817937616649936488700730527883382942207295953561210991996454476152884906911625803197440690849127763106895081103110524430997750364006262390997741131888873424537654355871953241394318782246039301824167332831524660682165805132805326264296944729500342170410179689702889266216600098487561344950921261724725860003232872502988794326980027604555882009334582247910607664281406484715455693900865059276705500387877576223537192804535819999605969094331304223843765356763007320196249644919559175463851796503711886405384387274494644670690337463054347931799258898767238192937036877670617491308506801552670755384193008935718348230022969852688151227764039312433290497883730532284917418908257212026596864599606566538030801919908746703303388736460791213559953067760979210328173968517625487185438943239200977660518767445149625939517570546858146813105557392687193698632761729335262737772456465049261975782541396827710109207859487598263655894386519159456000802664987545629126282318781357024838004356502552340143886194259465911505489178236063309288902844963867182843077522648820319684323616438539269237141253596641763645570437839347903878376552290007440791647407528665460593329458489985213137867062231315369523207987428690514768082805685413517698358017047486016552892606355620095874835627535172035964236537012136749614224745739396833546328385655243335651512529105525527119483007200688798133816926319092586421050218718064583571422929425588583602844746598337925278193192250952187056876530672029964137539105914685171270301421053147828572527699803028364117998735456520364847142494799832487096563217575887761265356785294428517572784577112224593510663241808169369738413874068483523143169468824802326787009285608992339200538204892567178419653075354569103770277843102292701297721329221073609551931602330532994603539061754460987466240978034952608366288225288857877924698412981820188414094693793550038927125183705901181903242974855618453628127627347063563670759361757452831801019536406199859576320444295566948211434649641599005891287508839027899165437573107717798094429380952059542714883698726570307079135328066538664603083076830271046333183698122894588993100931377419350090342599006380290472820784680853444772220660150859650155470232388143586924392009907708650501826639973175546570635325471750144729024826168254260576960775013463663996944290730930860276199294700468520430141873540328391391544604867758766948552977433424763562915213514900645405485406951883837131858800578155821161914308883208583082507255466934916062699892841680448069467360284081371925964058910270930651851386452723627511121091751686904852034626859622173150433741329998910764667392252260382955354360598847387778811337036873494917384736091006825819498726769370279632523903378779625865553001625835975527936795188739549328579196638975112850450708450413183772768908114719467615965733061669845336290980230029947334039361924661037016312957443961343952564529562438038658542185511957932605562524435088363923874520310231579798551617551317060859530848554638323479074138384166024109594023775084018087741604722936653711313393868727083892988028565296799825519011322429428993381205374153529539647578993938358744925158530582410127435251817341060568135724001984706267155663255036079753053113092002890967322065562161554912705311934819781589367972324052692184009974725133240110215121953126075499591658178163492161126042013388191055523579435528503394298831817685433604668851248978642069618706235750708035009042361133286184463015988916667407826460782417342592787475485437880843605929706957126357501547109053231798709113766719838843389401041463444933840858179853627780502833514427807396523565341959546915573150624859298440428750257153835240641793852640147703842994797891277436043655945560817069396643051595279060712798108178173726732540501051162597299216720483160514397974725645581023821673506940766535698375727465504157750890820266619071923942551927092665098400479828741535826969148318808574912841933450114938512891841256569678862808581061017571713057761014178426734079564094280127712698205569213370844297207200917080446488183123017923233916334364740015910539798784603091449084686548401342085433841943238209887318495603278637228626693362468653673605365067191466279423253061548137001725010395687110464885582339082593135312961179951407590027486160762242832949992599124280435348213449888988388479470847588440328710645906662252604647813121624359841821879936274015920989051156986689236362570694577471935409938793110814670107532318715613859640969829004256653848799825117687949401151931189916098079528926865228099829378934725716818960343617430750183638916194740358919282101055306042533195171103867890706275594221037408634525153396835769815513497575200291273634864797870981135844047018285264591468224140812625607714500543422228746594081832674928001373243101456228656860744700798688370712653962330916325817756753556879973583053191292282239606704670663950029940909528912177690846711965726198148767284574568154251838099615076903085144445151520821620977931194804433585345439668189502521271028566335812501001047189175970771300442676428714523298339325662143154401781362233618111124179433909221872037630939479728214336483451282189943904292803083233031395227778125439990788160105966122432732086076277376061841015372593528575530994697504398293808809469415754156394679950406070958343786916631121855454943418854627763874776765104933595876998156133372395623314194770424686114807821873240903832497868862364805241928851627068476342632838514229967325199803286315810374645724496464662242340899048214111735242203498882249360358136630097749669035306131831704409986769572869843493780473631447541873436318971434548667399887226194984613606982874547449414356208101237580608963700796469386407923253440406173857610463859712914714264474788267174046733727969054518608757334008048236740345041814783457985601348540615113004773057033323711285926905020220532744018129740861623088686834550966970408710115386049696220752730044718311459785589503010723180801077328839888872194014932723974055848234646578873496161115975125109799256371744950159542925823123835356435797128954605762388547934598262434651305524872947304959712831755605702172153981695867379563665366272842484636370884412440876783136620653146586134413003111408011817814440220186541905308262510165343565664208531801453081464865841577778756963281808275459614023224608700529247246132567125053077326010242485904588797089889735476618688209587316910393141307317989518699553219336869437549833610872446158606048869021497972260962748606951290463707149536421099836576841123629983248194137379573023409436863329385131102418509530236796475371975142000459612291465492424972836758333331611358711542620599720897083585512368171884196351731187342861563986712292712485047733856486115522484798630019969008025466719268692255743431096244765949317727816300711583637733812794515604735998038354095298045824644088962258747465394931591638963388716915193712612886346846344749965753919015606860099161369858832142418377722899354219534430614578690749645232954163080324378152314747639516299423841729296958473921984143781891454071623300110201534869992602570492625907815899242450358648296947362908739529465475187255037799846621278105288702264815798615095911454187652605872491426278927350540255998054296549861728914089797176389069857498686800277133364359811807701663072043619860059195836499370259257872980601736647377651999861183102832724271052556898680647187899134037510975657914484302469327842800264563633717810379985129164412337861876221398123548969423079246088316055591914762167076150530771437412968521271789501198121962545647508251747561759489876841151585088738577603971667103626900696489260258325909489726675660649756581433171412119996861654591105389311268398859013638755949674748210118101619656830279288715707605917957526477266346119208553101365153590135656668059563905303894053704389787095947557417587032484479585197311237466821835677483254965674467703073677251975932037255147157121498058964306560853970362076210880680254714529979499584329463950674868319393432202862338720102085346571746584486493542817398890362718319549228298398562824199533733944934307140254948701783848113672734064509724835324497199532399838380713085058043961885083019905315541755966990385144865383748418383783621315099505234772158843170030946723817564448276074591733041755612016129627421748315514216810075751000191083003194916242842912377926381018710073293545194057591134010008181857630786575578488792276589597015808045136530206320933276343920789572666105219705859761152908601915261067067018516636676500577730623422840267249805401071328707628447363424390643026201589092636051499589769814799891618677796525765460954065130936802770195081593167545013434935309104293061178182689340058003280110991153646124643257540499142331054849845393205369396945449217933343360841184638030660181646228213429202069395942205567562515382438917302472036042416044109913149577606049403866246340688419141884565783707184719489590961905507700780182139378194803149706505549839599254434919297066871031492614828665022366100979355067757568481329093422505954218998820683163319564101207297917580756625356099906914685737497865052346834041861801606942191155476417090770444937737166988949628195609031713920825967334115733159910372427155964393187645439755275646578724138638565180648075130461117305376883770620491930244698909995583977909282107491504719643374077294810866726382067884259938264571852214297051198729102959509753210057242413693290377026018205358601816756886184989905775011322213739232979796534800146909217856333764858178667763172532710405398329568307605891954250548302569054615143613244727047480750885170474710338945005165450456163372897185040995058006760327698913990587370155148605152653635847008023183369672655451261572633110009038835029161127750179769506390959422519035150848719675045538578679797678128657339727347836444193243989499513245789792315842053839343247935898945161277055399410187004716307760095018451490785498969276643845526867204489863683029396234566691309331964171590455371993492790894061415304954851575690300146008942133921203200294764509461100439486906783933139376120269954793648423293393792339079071927946397993005950751595114088307870797296967219095195764861031338896102428055488861858101378977665420906423642789159499671071745594718571449442852909647813139008333499216795143729397629181689358473224633358661395364941523227500507169543942784487926192463527440207488118732166475530058931950524695174434923056003731999448028266600160377429613225054971579169249861313105360644586860366772593246539606442281508303496011714445562230174194517556106312683286111613073148640645515220894209141077373339670418528517376890169125491400818580379585581669275900130147370807817623592840212412559873459840687598373841029467815708122058017964167621231984686381292762632123722169982227618500841643432545152723951532999604171886083122660699160024225564254634750140559508105749205612394990099224295099932222272527460855643147396425727927616198505070115721657892028821888616646222212782243572066194944993666584504808350717649178020864452356296912280956305198771055249180239788622615559692339678903800165702790284957836855917758574562693260320681021561739474832206532900817305521069618038553844242632586460573478981081110758769310092044674295651388110509187160466997015252608999151376324836171899505912376542693401175058452625272806090179104585024905190792012304455658548129695985560001845554931705110167514111041024614207409863329610351262946484669052240866668398202390902816458631596030727935406803880449232156547803545823039991804011818704394868244144210874231945483277359251462647665128818662727350300222551501652434962532481007679430432146898057458753602440901188097369463748494971024197197727761753306288581533452011773671420014055245138586540249415702373904834158446720245108498600710545052888639988352078504451819886705911988930661649903855923697344745718943405239529737938350194529595451349835828266992378507858930102782919511074948918552908023769928732428742581379853776309802924382024917794540721320580229427112402112898683575735423491752854990577413644704061934675128626487414014367258942722716450082112333796323166593484210552855864451927782440956360339356805673156953167842546449594169122148482140535311631294601300678289350062057379424875814578267115257358062111036674741422246165288875247264867682790369412566765126648492843239440128023053759669525192747805693691572853565004816222327103423694510615618830732226805848589992288966777512842758336414376380927352336397236584623568936585258923677193444418787700308736185203088153944843561896126203649344602845081977711333063848699800334651242769377793868155734574389501791072795162777495157035724432977245974933775078594608421438859125408492296546595309228416679600578512666403942799844029157310190692354448613484766800892223589948661575862391628703626842520125535593102948015068167386200253404327139709974148110811078223249408219039230118598526376075938480369394551839070502784761276703123620502413382504960572215078738352153751280153070024249358006484867510457794258281531276855496102228777193020022943392153326892511321197042603319645425054217381996729575953152671613397857930885022756786598657575806342683037490865679855224043591484880367437925118276804684266826775282071416524690222892284133924692990223937211676660767891158459009917944309841509003272537531337982499703156433559526673156843743222209671559834194474476773872163326520795394605247037519600343904106387227130899792313094944603451498402483234333495260054602871049745697721703467545292667423085872851020387148173325043819913756325052699579536761199309971910331812751026384457854848146823278666561998129517149089842976820127337129718590332750474186329430930914358476111530281517294140373057971671648215427903476679871284783551656187553439910222674158889438987794047083876224658190469634721360973429457932744622639988262344941309815985813371419083054565020354101299660617592698686626855545637329559543736562511673787376586802099548629155243736191986617301722384004477580956276947111708807093828137758303122249941210931366200475070565037047357659430642448049256399506715202435724588592130262722127657597040795446574806233271745217634286956167702015702199415693421243677728075275636662673024368226270577645159337166056918930968819392486558329114438683887549499846629708000666440882902830096991779226392427120640909731297694053101035120631421964877444457312982269784106515881463754989379681396230921596254348823962458347405571913287795895245938990375171482607921844931770517014985217536785949085188599836784248063581876912539046574668803683051828937210067379164435962580425016721048006248615961829102773273895819619052641261213946727129655457316595835713055301253663888351605197508277700678421152261112024394198218606424225780055592757764208651248740190201855209884873344407191706249350358162879321949263413245849345051040775599128657726640403200705816124598766320760587913375952342187057911617611403074791500119035631556142502320313047422749479202986249508917148395601954482937838035045350680819657572977224652102753328085798879911717349987451130466465162999263585560542391593365575762072765032559056044527615213076226243216116418718220414218762268382661833277083837725392028888998141695343194774855130783983202406684572740705946504736579919540663333355993614589413492004149287421598837062049775828611462101435835556037275443129101494770246547169285580613939354845192330216920350554783209325504603450044835037742323060838158737473625676047861992225356220038031247635207335533864055108148916362650106671433168668532828041638842310532754036501688026882114777322607614633124113850510061059720363920796040400315457822424828970319254048090813892528915649244947892785244412681608929497819274121404611729094166671889703543692392116847131699124866611867245790693959183826342978545850310218453221111640467238619496836714565441918140080899772700890058067828055583826990049017478881470541494668395199673500275754627285774460414396470251868313824596905168277345318098751971697809084450141119872898564043569019209531202508239064605686993868889737903466906685283339299335984503382965263658643673360811293498288283893009344735329132643028544046689331095364771266217742841051545529252074617034399623397259353510876044948747532998216659340064404562482118295380445777974001718511285073633224924950874407458669867015715575372673036681348114934497509760219300303096859983014253182535068205252792053019141507716407457319120363908975576382587080895873302490082543232094973758618449578833554031691217840904067105435199789967447287490772256250754676606251878665268633713904114125065329502694374814430075305402174709083841611136933615487900678018873426454301154606958053095043937128826950428140852072026374037022524622367070741417590988299769527335917140507798241749928116253429573581936209134575548493388277199349553234667317244996288212270211748256146594533842880141324807429266283295575016455753826231880797908780075846941228751516666320564718516024211806573865738010589271898799328220383743641437249578033462428083684998210744936998248327101094818041927773816964691285053388923365713043049016462485229652570918934995182910614838964774989117226956813616736928430617636767547870650104045092429878143566102198600738844611465843004035896240413409281644861484063652972058271993607865444851201268160489706743745341232475393225236596588851727912929273777983251541378781521345566135440657233797818396624196482414814483550368939076392570713882694461441717326868731631168050639987227242279910353734475786837624246956470955276676613807008062528444688255136014519832065893184438009687263232599797415772421282480577264260661679207739101370230064285848305141147251167844246859624951445548240145570620209215443350891017407172806014063646020170121759174421913816018518335052795711713120561869224579572872423889976108258608781722415919820372023354860732998214804932718882524351240930801474090180912511988856542719088557800951096732812893285034855225337203830492781090654447170649280658023392173028310601490867795197422326076848304090485695054411444070761880360414936307085953563132243932250844366074090066867213566935107640854291993681779169780249924087413426214897679803477489652186334572855759549896601981424515448147697347509671374660286080588295399426768654120403881482079289487383960934447455245409753972240715825817839578676663266484943086797154014464465940409748572647890145667988478647865647981352202999442900288413475043194857594809373883157435835934773412293902634292248216699366091791733072240616671683336178730605506367182831241769378338307829896771954239889544819421036677543250839822932177735622945352247115337306225683885560511290807381544449163136787315253380150530703906258517716300991536149442823490865742932422628142039597750273596751102837198939599853765801105369248452496403823093867526898721759206038536322487881068659306205531834126677666277872236063399042348794955962476133135907273520317419885022570820456128570890533161820301964451867588763821521899734703325937453757392178715215888176330701043884388547269306202781448339671041793921478265763919792946355229403200890915337179908548212465991685647300443235951053920482190278981290016576179785683850061807993676674196279509261932335240855982154274606416476394322911246909108886000949668923316607635556630150165989067317037909156068425512590404778001789612355938547605910459117273286691109093921052878483785929785134523163647693959417929968920148595972548979519595166698036160669757534940944849179188878676598877900641087895367697439709808933779876059135882227812566397515162062828541429638069911453625176395732976746062335099302946415932653278218627176135778522032547838358571996830615830921196403975190445948185698842917672354736185081831895622338103964452483226218841676653279833386843735565899241755762393872962547936080239333326983414131245544002449774295557982911359488079731944346430616160857103970201332479889312349155870756639338358687243773040768735467146624183165595169349096429471505533224513081401706322186618112357309452380345432474216714372194555052975488818993141467475391715187834217891422942804067087853227951264596524809452852801251696185245783292888618692499248113537964228280202731706134009223975095416012682141267776480705159663602200440235232424706504697013960319860546163612846573163434753901300120735357706697409054672768127981987666682115901607138194694564971806639806820771845484578359428754044164106439213200456217267944740536576341843864117610260571198949336833110120611385370344027773266176322430156506783903762958316332109002606929727215000968957259152247639701034285672213037879336332687937761655966359610812569840777791943782078530066145734688991948390955753036413433327492889188322973390557726682663771353192185448844754701765809356017781517349577406108534336993871632754720206631018861027823210247353294213726923619159159756022582342311386490337465388074963689545126631041872159802991926457904186919930789048826742081008676192821462576160481139242863826454849296404386214032728686380879475776334631194366011609960670999326790987064585859638259162597290881187715004830479353334503987644111674761538923419024726950515070994210445378720534198963725886974298707171897656705190608727187573405912899518933695830774942877810253511090909196818018492475917094655200204524180181144794702683679314296739269136744210120171748865950870350542320992677465940169762048677690402971156349697410700533813996790770039666372847806669004013875206282833461666764761727665239949953261307144730320916895354136865351532740498292871705442895441906330811803469743484943551000206307632808290020025810006152250372128566687865405831842430492575951985742463187086498855133869725732972300607473971642354286089757460034883801177576242510287968289338635594806292848141108033779787230155134877112533563905383784186617937786575319589384381971609508232515906178694466737095061925859415167103613016751608226287769349961738786673139202123889047622510059189359625768204317287657694312981335507950231719878918992769284425506412261594670359468376771244376635386426431189548182241974192422730297089840498372217495884721373900097623276290871527245710147882279995808442661383731272390793670051593528777846016912289454224959004339270800075893407058062629976025651915881815755072346426885481811028179846147556274856563189941122246346467736319190788907248074317675636239355966786358595606888382593011480687214799915038257284429662450470423495935019763410461133274154750059392930479217227737457737778008008762103060879361063431681209667144825111768943057168560649221328749357225587929816734485524961625379035099803671456492828916348409137737636193340289260863708586768114854176301984541736640163705941363456740797926619167332389664103709632197367486657068758257937857829020290336919681724576997099111897825760921433869545161447689474956121138762169457755749822423892912435183793645211225319525564183414656114567800605852637522872573103298532594585871030241547845355119950898243387711466429091533044547755816797863751213359499369483444737661352132956548322722537208084078657064470114489040795664848763866308381710878982904663932464046133290419859935278020608399313083053379745538918153005272955743909103187423703485701968360742541431458834295297421533218975694737472492312261274400638974649499222541990145638219624702364777166207532271624339564073350840827951814491903622235523063171471876266133047381737595151958312864589920482512887144435925137223046319850923449341928774006737108701126915140340536865967177004815679210545478359668472492953115288076912587943252250209557408323557386477573005781721246629191100332399461936278851391935342114178994334422948971404452125966191862389631261393717697952757404744821567378515831961019238463715721854141877808864644406556118600024173530025499368113344727157529597793483617678882906829354807158370432988357471524312014397291043213881162364461826203339754103140153850720813450029345435403394020096700411810919357328820542633322605620281977203478961257334815562417928040071271095970022066799330123426222095874692783377239097836959226657267341878185176150317149420079685867535650631699266302710975553380134652256187929077381949211380206447300764518819567339448111191324394675083891236737564731817611188739816713735335053307057594941863482865057289185554689583817995651606647894666596146513109287853492442453234683265174464401558556822363054071340381818489804307010824105780975812540616111239804908638130969648592253331641677279104492366711393979456696601084348292226815969352735345929199729125046671184413520855579156683413187653383270362878944700059498310999782457957140634267589058632249391081176456054984803547975660200031324127169741066671169641150536160636119922345788938628436193332399892924491009872781680896393766355378423496966150947685771567822024500922078405143905713111587293817839050137093874888163551354616670875024359518942780602400100365077348674906668066581386426383603961387827174693904118708525784312458192747166101150200179242697897549460737425158636223832640578775729043221921605085843495025898333993743634331048768372337648890052042452765207920039208767247741059047277380998868435233239882484920818864812982869228693026467363364178024350816845167684320817983960265493096268644403810657226931203079568882901418588091952400060057118805312115167233917872755742707425759937774496372778086839035569678472823015576094685098166713934486628248199346900687074279109777801594603403912078949088449189173734762494089176668346339783786928909310351530821850177675992787776211744784488702926234000188887542414585848709688333649965081502838116681013556996901802763715926730215776796501152255277130972751262553275293395884924607106352125637638025764476820460023677812424695399058984658929146260482234457348340896247974402454911075782045770730554751047623658828374794357026140203556740830470537616278224809553882679687004767059241253800969175682248851531353965020578977019998894330472780493661196324123872644842316931868188348630720470009308417658928510441272708486738818725325325764008713439147424787290550833487594262849953993395945675688881442895030454298789829994387189318366014458209975864373113465767270671586152444319146836472577854089088560941941252478913468301230034668900180410943523226668706461294030622795128205301293695616155247715282053641165729888023697299779484656273244829530067331647037100143910240772086097102918206080801552520551392793824039797454414956001871777159554833242562776870229561429675399108102564670616209838503761799660071269784576769930210497245212233228465676991159090019301499051590098376602649458894944400886235886713269317885164237838315955817595961387318202494605176993966407226631134224162239705787221827118913758005438852457463211395941007109782697593971975400461897108036230228786394441146979850213222611746371184825614809847841178976515320773826279340593837401177275915077162418167638752365360062781209334645470371060388153085335246397315258157698327514010206671293962143087341014242718152306336193544564396727554642562155645134292389676617157519380868472001646406369794001779170087598488215209362004814570761086617852455973623477312079044416543430791531250406360295764737662707125414402287930240194679698310063693541991953966659846433614533630551191058373204009157043092198461389546061168609905209282989891000845245291492971793905346733905813989856399621953469880062873503710239349941252021030212283087569775546632823267677857038289584445446921646250712394048915647504068014568639033245680221153903934896151504234510211154613315077358717710889239145593521874230616734413834811058209935934746159256023175462587996885905362534291789307676804464744281936168809903560016669307891616464652718469952773787188248474666506705424416190944200185793418892170173841120789725230787540958256764265533315498103249700660585380997569413964003934676741485961533698249268975141735759307242438247934936190466533092276007753784768127128327037098008744883363803212043868491390940347259694894026586267715866092034541746588668593472223036937257212814915892133969327988996637875081712592990629631701349045019997754770897618744429176398987647234446048225930863971755788670776548332636268586331806661810410308011328838422387424437087827970033359784477846335058776712900248283423105436697377981740763191795620650876032729266012214907177672621782143235387523752520743521910315313914526661552005509903233250330861194777741182276775068989099387337821213597440256243733810962047357531102055521372865603591061524137751469282599623103986085838799096402672531217541242902471915374847515383202224783877206892203029964926521121921623044766831817463795296729625189371742092256457855520218673277668826683229568461289410689903828771051901605733524146793761019877681608614018253372820624754841241678877576347208023095421739383432857737845228820885535554985086239018744081497587720341202004620834710729729144423661225029570562375741159309263173940607592972386468505883631698976541693893098382113453110687181464966851891518201532876230101273963420513135569419142632707302547077360414985447196920938084272314810213567466284393224879218161277933025494884461976195747457202047009596911585859881591744652704481867435950795628224967716910780136778812469160273877339475055593065272911474251728686021186374894382453018139270307299711063107576642146270319684931152895077378189582410814399680227589091128480657880027894204261551593783989460317951845932543114930639188598740021066142879226248677037866188018215286459593203233566211393814265683638695159625819772153244580638812623933582750647223244345970588464378931259523146154750112609689149701409336950492430268463192362015971719755831918873005340725015967772758036689540896511234340474038833121722203058454741386531582572059317466968401331012895799799970706968822316720670898683573976887111471371608386831025062764120023304973217271986836162513427786161113249723204767479515679909353695765483864444829464558819147893091991146898342615977148460941682779176021422371357814746041988894720048707616313527676987539103566283514507356978394725486255796373357678599458893429899826957707033392105160329510805163584688200462865149187484459274668681713761628381570287852603231872528633152351078586130534341042301913076319485398205539094512626283750887298015816336104307204649528988423996612949649483135516740830604658716090977475813598966485408645333519796643940374946733105233500859864575169121484204819624828336415978496601805563811839222577597618312924164067839285954792706274886677398653400414139205648175801132796090849300109340016156798923760450623153928627907788219007639041203100967147793593100683829465315295549664019459783865016605270386100685764478348984448005274129921834293615543793981641681127163958558260723735508825592844039880379208585995508165965856819911766224038680150435671757914031081344127587133046821380200079351194090752528135703815416248568204201099236889451882835863318273433578998860398503179334261000169179620090247075525704318489125489048429898374067519784741740267984760693264354828870433529349663512345287060732475627916352533978139901287945698037192692502918216561570296399203340845635685524667933668402503557701514578292052209793057209238502249033160823267603409743039178583217668496237701515580320742990190938654704710297302855573671671164043396167963561016064953522994778227796653910131886617612490243824819309000182976202796517971635455019016424499466917593167913717547953422575030468887163941447998009567166835033086163063777630836347226259096754410468158205587515640863968451753061925931289175974169840971411702973793417267025379607392319058566709499314296702444966792074395278273745785212777927480195989578594592351780751457411526080708289663845226520843657914412093958634635072534742192695657158763600895452101183862698302690131007532746426034359127766019281319069577175897246695968815339795813984723648805463772928417330838123113494473097227032312732869097074929529836204316485576115950307030234420411714504688315676779875655143786369105185454535808705387676382352780260554905913222344084823763389814525343588789167331738864279367682875828683039499394355864611492298365623669600290691536677928012775126203637856728220714624140507645389886158053315261530506277133395201302849993792617125991636258945873760649111588367004747814129549213488454779308753961821702480699226801251373476404474414417151196766538322405940023823036761556769951073506423011921632740073060846579171255785018690535268566903386811629429292697586736587351309401093763768221316216595796479409641733998916886122012117722273737035506648040481778673655464467815397780367886915911208814938427050774188383744176572524330284181834722011994066630088192160032593240739085558527482500158978376678787584881215274138584582198957180345763641056905899931096968909423279772544405907060260270380690121092011260788296654052496740078262347229685213837204720327793515575934430868688471180638799769639363721319723241637869450440733851723660895645585349311311368974978785757526629386259430460593407962966032212302901737400567686777398972865701526629847664624091041566682070252298911815063812874072878262327056468115499801497097799310647618319113956731569426213676549063373871254676085067281973543279767871817874284953664391922746455283354795422609243877215318702366065960009386220098815474478674156526279827368307491150683121290499957564607630805350071663394217565381181895194079033317450573739140826366009255535326070671178385919035836716624888745957918389558415727454911040780926345668003416353332721704927779091646967215827916548263160526245226086003339760507994043322394843572731787442776711322020699113128602769678180702618657482650538687040596135249352435776292919982542657389996862286669588046164108803849738695833342974678904397297294212039816618287903156215890252280603586633671086213202226794977682627760513127373062863006276884625508806260557325996953498134992845255981861318775695623832141404826373054283094736321340979807103793900766824587228995306336860350283756383998186750948493599530097728242497640799309836187367396674176970482609174703718546192555344267774342248927272003899870610437959895123735578093272034243059513961605975722100783207472753294001347886865754727313838085998743644008531912336295652868012071523500582003795332202228149624380194726426563350027190161210820868467699928359309033443529082543994383826225520017745452973712252014958011899935797576884496527049392137097106073456149357820343665942353190601938153521128552296905314823935297846176372634958079158239385669357975680050925773017056561254499481259141334102155481809246991796871716503129596497349411418485641260985638375124562868684797977635517808945402997452360043310301435194877333767643849671436942259630403689792854027768071800484022101613024159117504537930828152517608555783882479022578995441692076968836617098940921238652590934718983299457582254702966208509141055698852663960358508764192739994441847796066138304751351761432612009811161726806210114797144741301415120398096959183148469551264220426887203875277804260780377885068094584871714185223913353574464312461451160854314917667584094825072999386238442198147743430497939335275871312213337102243201331112121687738144322814082953906095531187032590824490585932221412948741130638912207166727415039680644249996884939019748295588387240326466344110445833907668530174391958440565588931805300968188293387316733136622189197129601613914578045126897184232667161012070501201706278845292085229344946455049399438327083222546477629853771689011570463444111343067978326105421390900923338361728138656517242096157372242204738779861681254799253312270390214020628237505703780598512302778609364210174637009685249503018896210396965016304093051044606553066296594292786212194882826668244376259789208418355545820822986875478948130567759581225235620814902096491314825114815086767302596847609913272680253753508857530590067669499526855209304779463704585034501440205824488678040570522142942859667135387923031294173441490589696425776722077821436760318661206899610687684877429492002907064549351842993658747781750645333160823827381957193570894663975203056573705220592264665497746976924479437029623027672184133924324487287947454091211834547120869193733197228449913601012852141610543872203006889775046418381485368744076641688018540717941082062130968572185331943325669139959557242580513439415064221599452215473976079429454888567894709591769903396598379830536233730435348334369404708601481057230011108233427706962837698109225295204957516688880965131435990103912065996345836069818974357485480128830213728117147539650816139730269341936502677812200681984210505440776830499118084736856476600064443391192816760086652929092996480888558047648892599763429231601383201971746155366476889678526158594866248416047526554140216812138756850118591993457078827086752596209600975653889838308789458217157868986211595208347895831516761096756907157722751805304579742329109513449989900211851932748651711101616421746502224609954697169486588066156016501649029846681338847402598387634733895222311967146409744376823214492733384291772354248038287007361108468777367565746371522932677871553585972440763475274960399158265078001084682190486070540614384038534595008394960790012493161427706559126517992447609178526662840188690333449875663111472453758240857783431242504832670511726716706956593906471668887568241226411181103706593949919701473745847376388479831850955210706564109918172119009523874759730870565234204420809779143533063392748243817324845232025685573171018786016287404884431241739508716576355418178783449547293308149779886592659254241480781315469999405389400182254714588451816519811526371419865528517005547465839611969111460708375806216744845631347068756041982529193281036449577146627010983901712502251502693361316010852969066368079498510157218662879887958011044312592639818666293757108225177083828940073467290744608134411913194393050460755675447791054433689542705550618048322003204150988618720062152897420359339162375981861547083917081011792688907250257766318280118076291806725087339753680650182261569840724426345955704125880427255452336214765306973597063461450985163228359829872727507668939022894171198377098681191904012661804191684411966507438715039575270447815493774229085556555851458283023012335095637493414208697216832937154989531507048073657903709275129027511750849070967000481192343965871760617404485398239381646615364267297164706394994787017332264069395421424898895352049409186056976185239279731805052101285039083158848539075582292733011165929709371875156632231650039229881260540477947330282144244382606964902466589872161407123139593351678773465207019363375763514938080757512939545602869923313026662001288781816280687534184217047335597253523193301406730715187102569251957194652464287680689456407969629327980956015150344180626077878726125671141947163156888028520264767820119218750810205884708997965963458910278668059479454333289377447969724196152458677650284393459154263770146190931732279898570744443639747703354886853528704076147267687245603258358448693449913208313613066246222116598904573117415267456895269614757143473048062846907587968530845427194751021269952876737387705504495853627420506211814351832427160178192757990541485291667343592097303950311948516509261979976471343821665655157334523881389978885816022751706221363531786026869158140354757221333052382464695977181406310587341467923831848722923261405038881176107220284751945804032070043455237736752674641710359492503374538761788126488879672349786238105292492966861198950496013956379600996064410227400967773902136701855537462145685905495677652444759594749905363952321468212083835997568152302055754158960350319231670262093341563623783181647155763170774660489762188086148213530919398306032703203729758793837413476273794172429104556339248675790284246126794797481563906519052379178390939699887062176122358981238935269275625560827316178000963641743456709722560001259955464036764416852727982153395107370356136408587499258973473057164058649874579039468010380327801807001010368577631242943156686110233373090383444302680477118089490780109762006973480038923544490923637307320821773756910824609572698229166089610424167663510117642482942485194141406105293154033387862827318622335393418335414940912962920198783777403080717199000158884113432633902281350919512512771906905908505445862438654617612616442667077618373414766356806172763425356084976649360000335897459783413066929860667550818135187801950202473656406534359204608268596710310982379472046366589214181570500117518466199358282251444336310722977719643394089769964588926175331986146706192453053766562984651707502145366142053269490704720394486772117967306467878943149676692305013497728457960576590638075471850996351488912674003764935031379393909342579282502015186431233941689385181923991125451354480172227684997607912668482671620341962556581804097802105698915463508257193520134648852154726631490264896988994041808002367710282348902567186824992834569828834892731054163386560169678049650240604885914546581747527703969260011864509980116052503520376927930504089067371658885349833866286398972862451762601214194590351401363370645866457302358399475091898122187913616239038101620979583608400845782746730901378485572726111920139323604615687815638877879645407955596934535230386868642961433355221551944693022194125552417850367235008321356439389619462730184709492269682606697544785716852911421440826247436306876399005999597577041120645619120279620982043778611506907971214019620561775113244011442538187734844003388399955056447243709223674417335446759790758694579179738750391073717279604023316202356859453506452802190743384281057770315799335582071853264539431896159561121511938029600749518409851470625515174244421639961770310998638939994636371012803295695824882530637071665269122442060831096837680475286060910815956061898992169271813590892810630145404925217114539326081289216531656876893511986925583303882610498358295860918478915882198545955680436822720554736969052951701945807174169692000575541711536770071022944727392634515714155452223671787473234365688054475021683443624270303268898601244643652930488634244390274657497161690061166727198434637986984480607259755004644317071286382196847037790778240275092511228601026070647077955997771174562005465731454415748405507632186228226318096983973776539150709528577366661958221807587136069407679431691725979445630882430999437355314878975782684450767322152440053190911236488479098846590641980733335280386137704633613082605049134574577560902987271137450178565906224341493143298564744553770257211864436190090832062376420431359246814805478362031407547688701468976444259081711224526069559948922732844795010945836601658812232378029688418833574968452879037084656140875336452182094179808542768850339114563800390124699939902156366409529797450549617631382930614095880562511001459486826600211485042275611102044807722129317653227900352685008502333158366919193862530561411686812029222794248549488846256736108119194868060733404071831183765502867973134637887878308186401737745949481314980147773248584701403199591250403378666857392686733885844083748803655560443208087220385251035278279427569094226428716285419938766076090826411994367542931686181065333993759448140218434390678957692434336955955189755726566389260888569188447101108573440922951320382355301149604276741891102766391451217501331449321893036371960683275439889133128378711521830278531439864659095297985364942320349675791223230372324779155578221109941314503178593576280417865585072061487221983037397536002720590255573925386204853120246773606346516398468846369516220865177976515799723246321155157617289003197606472011856390442400916181744173971274883749941712490797959938364594000250669043764698632031907288080796970047492595149965143544854728099190871364830120731219330089793478342296749744748446779805047207315284820524489620340943254065746346708340762941774016592882036698153807568613141421514987230742932514122017257659029407154413054895922054480115675166818319508043467396051989298217527503589448461990631913941599752292985663888353781045287963928732909647114641708634075420495555281543928044276956287754999733373266516830189822285579199890327322044899301764827941253425783152894559640706652244255799821649388677709424931091150276048892070942479471217439063616523971204737170429914535435277769551703471128054499115165465604547353158171047492954484436913887898722262912025698473767594442606396632169134759754652177295619986215438959997575120123405875818479231685570343812061592439715541030531939704610701364304067232738486590170434106484704820366418552176810391814283582184823726374338228315805485356930295169795159369393493784568262634971967602204925282925364176512818726781738544884020019578233954559933019170029925868677669169231252730087573343035301501747728680995058880902687692474144858138707347548595836577414479278231338541071238666670005890944100171643248134158724378670828782550115669683523332596207549241801224325995342893884067765428260821464821124473640465345238487246422578377875260623299549722792185954150820629168483122554437483248175452814542612990064820043859941878749612934712660705761464149400465781993872776176730124356997908220813040533295124401274902338038030696992544665060451172323955508582447139414544801454447300814979420528130948169257137843439267203318642601902570896034421018493958000415900010543282207744060121176015059764118989271224399195707337243453352875118732739971009690674945122593426688798665538226736794439861466512186562071188510353768962465549086570070447711330692627759618237359842181018777730179492035572121203496499687430543516095780381506287890408531042968024550129489469532589342791626419829013278489170359297152286506284972041488606181598984447562731582259524709158560221998452143150893787507486536714101399300638108174429290019411886394048144724595977946111155327467186309087074441839655994168725700083173776612615366761644643078693770867061495268006085532957816725127629703082073704490029679661156004892346487903678592576813864237112251045878558199797774968063677500516275097406295412306573830737267065991477404699323012352934015733061301637787287448490779420839507729619053607419838019349966857535163157224803685095751125113626216174275313155344385965234249035675774851489707039090900126221073382509145895457299143709761992818849064800242007154047857532532285297712570504582384147238082541528831603514381859466825105357960319162431636453133167373645263815692093001814101678126327481538379744025680795066068360945854232357048446410784814369248216518661790919091742098744578372592676883788476496025305505811052142128779954379649678356901395219349768404065080537689149036725687404904926519685949486023658299810577317295841752616503814074483776635713308024283966017650318634094086437694601747936677101136584333883221780543553378961330519554775799653014747808039063109344898861496599059633363777750300639774935742739021355217090168007632230081759036140540543638739506177562405035759868773076321291539478304511883600655697063035169852042318998072210966683867231775618369803621429053758177752632122688219402288165981865798167438155672957295275508570129533934642839850297403893618355314358654730302179857423178123472910846152704281972882882037801981958354263421779272665225673977550967053256538398628426178762022297563435820822806839379910993391814502620919252745972944461482435886209321617341390296156941106254181342927887768430765357828970388426010541400992534557068406367988987017060712071187495942652341124939399856103936851387575220004438325292155048198480134519964342559668853602511201745570101761509407500118043052005958701869519693289068024239027412698295396649629321155680025419898832026810627798427033362178027167883001488278096557220151345772108510040508329257755934193768269422394975464052693516219882658759023623923369933611943397862987621000129133028402789846983744828730650924731967933302795281319258042855760848091008293873135954232138832556435689037585987003723358410818396084139693843723374991080849207879559859732416208740220981400560647966262787744522388186415315682541764190371180710241652091658687392246054819638981015019145480566816136574313420836024789695949748490540318477648172034683936146310051132617561334235146801987786250364686935734399450036543786022801116585697890697569303897770710387141256384024678905762992248665909263879469294483185682689384683181176333874705387317137507193257317053152592936305220981874723527149265711546493106876656871419503330533888767215884777572438732471223605573725183166691184300825114990104830452654036091841941432067589060509867132121881337691648468052372631870575489332423880540188888825196557004605342547571041555894116746894915009540063836315301634244684794155624066599484636988212307549999164599097040626003866593275305245063020700814328956481344122292954036336424787775700668916035424974828270956729209388744394723533639082582862075904704014223113131306132186375055411424807959225774675073306250619568464498452443641711755698614138023301283637912629032249542920187674346983042348817940250446621856785802028485455485265026053049424611038431779226490372979561678092190072807837849034068901421827206569842491593594800248891966649889692378049847192151562879824303830473558522632984732744176729731530068384476050266453558903996130722957502462369352931606163022372974273629319622762337781781886494364034277316048578077181630876569932717727398495845087925281522640120436627854903223616896965177708126181156538477265061720733624355643788501008561728160385568639375449868428369438124952232814475463098993742952765249008711648513844933780140329920849678439390356179745142370730555477226276799495817120140695594628921341851247506350796115116622304174550611217051652252372723979389684711003154934773391098108125314547331305500703130581602273706363216121375670031027713224542169104748137686230899214789262727589186407573524930306395123554208621288485682493477554316267902174540904952855293327361114659660710183642035021330563028476940621212605133250941335397924519672488128837917796763804659476101985186121392630938896687993116265170050246817181367517427912034417969692149917902004003171525942104079940114466585591144230246668503326225628251538825344217883212857008563855497232606682563523755991001230180281826767816125393177051411707583789410924265365884424112809989092757071569839949443656007566747303629470470221988164933559109917798276963032268251466372963734802480327630057440622465515386150935460796694758564426230108964654444645621390987330588288683280365820189138697799740203384700334263051470123478858642284359512029261581912726725514266728750371317569228808287075163884979224796698726698915972009642506388116565765943355962660366206266955036767386350332646956335935672551921655695282598316139888445687585587415533770977223486347474454051151889349893206186300612565388553562535714882823529178352683700030203842558568258387057984918126169823252497158095875393673996191498794126764368549494874195658996206986766313430781942556825131900643497513735816986401266713963400513866463184708356137032931568040896980190043823524670891016097647846747790555336888291059374478106658206472415699390151192728882004109058530883677964900447617016522291235846508033824852800841700379775771874400993695554883158223365174930248961152502790052007507505234410831786501312375901801339745204111690492882706200958038669274381755836080207983443560311467732849960995532088958071549380100849826464268013660505745785611060650539392661457699196608054009220520929705894252424566858428859659849407990238891531742487845568410403513227024910732578959555536384236943094011708805629281341220064721443558317120510736541061665480390638897957477173959585218968382016091628906250689431383410638388976634793497879684093233364100628908430517826197145831534516185523189004563995897468996709057695864567766261367234055597231914800461688910026592329816716880907243105074316403814802385372738946584235311173407763374126608195071300913403872448716778340623653618390514209121881449513200092850629302867228492815906907018473393339163509908733560776399340914474677685040740374624138314877827959932825280031914858177205068011209845060100410711261308418912812622013421287253510621174108145786479015438119614433504881700575378435267101945478899726864820388322336784943642500803191987390339819296944594294696066466599666233654096986995764814135080431515804931371135421549006383985746611526533295028970428917281957386433332077351480791840091267044123955642234526058269083402290473896652405722408384417274260669635305557339474890978072533688883441471053912676926829775599079590374959219377992027908916875264035317873096097346350092903167068105379370056230638520935801170125360104781887449488515036457351761620723647378880924500931320037372941763433678953479238630127658882416759384429276663677194872134336428159213899324992232852603053227997244685227933802026891132998302986193592695544938107660500049890138910689575438814427193057972918511931129343906881021666398959571402127553549085790375474916038936290964744938428493243278964653887903870786520950974910922441207971244955358350962219395520076653693904977606288009805169425890204060069879115556383483357292631451413463392328597815070159597596829020013655219728566394231655461062771243132301196930077837721034620889462327780363516651724090854002237541889665107935165922044944269641354185130362218572900960689717698831796354896233068168309857111094345969538998326918852934821934384516509190779072506732065748326493391679467466936526785155696762914553285755570094024553640137713033862371699339023132319885870228695446653861721182640910465947105376189386695978641916623606854531505737382368224522057176914060311628069044169981501189339302960759765630479571713826707115445116175038114478946232711404649582831152377044790983038742233892406138487468485096230877692457300539141381680320747524846770121768919949124842878903827678996210096232192331855333621252520488160858694918649456552906728686591165973092470351555428003289488548509619024424090271073848912446417511375166919433479552439740239366064354516601998250291848793765844731751861558645728426283494699976775629521111036769455045293187873011842669580487942351203507224476695167541890500304037660460312426745558755341486455122716754639198927175952006785299468649881763166031373901218732485941386709826465533485465025515518622721488619819580401036221765238635886397122636088440686154544206953367627680688775776691851952379191409730823243396972197921099224210333538427697034425527735199127655067986464268228766248308772746483338483473543006389617484960526970952007020665066971961736004769969253762372200044333333757416053090719970721493202021178844938675536034820311335517152243521295366010304116048803848655566026713638251807751880645902309292132709577721414894879018201551349150319279172255865473783099475256655023255583102211729593608187568326873600254371717173596683228386515896480660169049387342311827746144818296755605520702820644959910629924649247023408425060205173408615997254461544901250799755938241777036561570273699192975509769021513782242834353926285703655932557996790629417552306551458922182078772910666325301174004456605341457438955112165082998851742485125897148287134318865992893297194209564176763608394308567202846993118413317993941100764694030089438501661769267216763733900048244812314212336775427557116287520873106738148862451239915595405590872121988062440953593449140337568151365210699789912590591130337582484780877170419137850751917553599060156205618363840883569163658003754789825987856682951065595411771574167117266201643344320552398606576629756240279330108529032789976127747212762592152172177597115811575541576539051927175555197357624225564229399112762452244387673168969455400886613568310894082572293620407000116357579039253203707835056311222784462394488863133363557123566144412233367158326646560539646397228397015941316053020649755772195600127116146422790376043959196928084748606317040374915856382270753843353158201328761259025166575546983280462230260881390902838408008792601323367075977821166545805273369125597669171262416505620922546415679437695860448257663286457554760633350223375922209273322944410190807201421738615673850916083486381993888353361890213133415567711751426135679589657425021653679691640997350741883002469363944069148686632431950214489834101673031454334206486175430925142217374768957407163681321691941686438268250641859590176963829429290625484671282844027653228538536222382510622826588372105504459412542136176442699059511562563838126509438166053657098686909503713689190914282849689318260813684179627087279191266438481806352773579584926091379453766280466616623939938259232414826365094013264773111154663118211815752339459309935174969351000861440482653279792935118572256497728353478159304188530051480877280741401044698948968187848202823321728711701841028915273793278033640018754497976998458370050473964729521161583049890961957351811232752482151170562666623929980254121364088265690303229421107403786252147943739171801496136743699654870864693792715455613539174033355837321336055879496828144908277766997174090875574823582815708761482990054181830692897907482266704514149929456659001631876888255714753222144232584900871429017659933176853217295067748130019390001724995770997640881050994560439861260985296223856147647099115156478443195033353312599850720939018064490993171959493746647059191682617563492819794720131059293978921389603206970208603233219249343339932494448101334039203697716926904508131672367087960608936445765370111711634794212492142441673846249755243153101062259299664064442677592131803634151101798793641794613220400968970116445797190669638882891685074882222065994553269610292397603392437050369776306743116106347769892009579940333747595323984113015780335464116698245211834336836807911783604042290369830149073217257676371259549626035124323548988710525823729299408515962920658558632814311903045569105919856417290310278020921369401920263576916408459140084265412518547960468949088445135064204499152248324829674822852743514609023993787838799272878737366511312234257281327002203540690338923969143584221200965141186537409970692547680311547723601151122161003211024473767100219240771208030144105139753274699900071520985713076524129655356863559376260958837992596907522172383485618094165753783216025722806525353284831521328720771421821643578275812799467529589597331151545577281890445285542234283658153955436827926772763715500276977191958933525155417412328714070778654387473050167163749211788186327414053128549977124733571753342091840475176094150769305057208327200464933388392619606810079854589997990029803559559098441311919526467040484975943476702006233128086342932980492238542934171935987877987960141384411853266617401836683166724533252726893421493631925498012354018338570275274659255714708857759810821955487011366854630560924669989294372759505194617338324594080337970995110652930326143522378383012878431711070124530230795339530554666440722026201132299524109236679471817357154908473225881769932922619951498685913631788060095560263290717353805999895625355223297499419946362636742285054052998389474972241793085503390305010880083476961866572885054203934227433810812368803626107841120901474770257401792319310681877834390796456136076365105536061793936276574135297081751586249444392520292852843527791914704769859797921514294585667013718653005961265336622615178782566510875724709129731551591392313673704511248158398403840322517677597842419288601252625180210661140729659958787123654949379191323625574765725146630786406594269817616913197843025824092546667706081568856948591311515137250399257828592835319473759121158398874192372835855396852231680270323304058102103850965233828415942383431647810560334943426324717805889898905506699463724136121567971516943145380434829712339031329858792668285581749358768929773705818435268623491777783086916084372081178117830691789167019636482187134390078824729386463646671343735975380526307944316404274641232947559631608845958444104290264386872624245233466917033975172785867258445111806115355199671283340938896287084787131834122623269130362548360266153179782240555070167314268867358097138888452160935703948771448590202796169277907239315498930921018767040903023219145527165610541919424093606914119740009377390479416902775869951133844322097205227182685124592822258602483666002064552720427360744382714670485566490255592925537538230373388938094014008849312678757295024798280342225957203934851344993038104740532291113008965117050828355608194424404629720131831151319624488087723754142068904512679927500967233879041971186975706494013117725982839089368986869461352226564818091464679484450919547977624756664655584326394853498553951193749174477096269149716454505474833680049883693987941385083279133196563052082312720889475661107292075195513196388028389925599646467510112465522880429455742490490290171111604582065600048343941573987596627725262460122361722202553885282856560144527388722212126224050598503456149820016132035064358863255191794342044290104711643940666629965508803543202688849672523414510174511927383806246026875817924680864569242674577044519779860549839674796258303908708328334197210095812605388719370075728901342125852314688765269895680852854366212978890144517534662379602330432964313095093274927417114212005407953177124620118120759026554696030385615547092232668685559187720276703264570779835763853499729098246159460718601458660203124842018813008094223374940079190310464434237990591061824647805055821929006311402462340857156190576038280075588905207156811456937426457249509306756676889669548761383478346899388910687357165472599071112137811373912637428704490222529078153182830301998237062445615259695123380609534721472203566056380363856128478573043716392485174776652473693492824850343986759158598193612101988285686365787999999224845565475997914823798581848878191296106224186216740228494754515011118460434551977898941178769258971732194402440291286040888671091789372943545429798801737633140760642450600343032197700820866202919479302565425539768053504205209116437838317730983302281335863495086151125395643943826154023972000599608008841569503596322341673357831791202144032633965350653742929106452306234284381120837038535683304546903068010000468840701488259133121892110792254500110057947354003789958295727331297337624026837692354609066609720010702157475615585731683023318728701769147177211373045708152263875975470515935704059763975767263478889811102279805380152854627882031593689005191809256952952117309674852786836101897837288793771025779216609817375506957563644772494914807340121829464622857098362338643089991567065453011218544360795943392167611294037763387370263680741817956116311162727779483642928690080319806123930181002128363405737916460079978295593085313712151209959861391216666408250259364340290142934035064977522049854654981065685940954054310365254291648756201000558702412554757826301542434099181575269533113830551145054532873032379212328151531045699788082328037199750438384349858972546692347095980838413512904392295527076050876542362600948448853788430396842128185299879836630852191637115746834922291790739468099339611784573533774478868054763326543115928171219676222372179054799990184085521862250279994090025129637846172879266243985944801922327733842520213991443746242239976983087234275596609990197353829390552760619834420775134782399826504855469072075878503654116887762441067820462444292129786177540469610664818253144451825094828796425278105804188560363382651506263763066130393410935426140821733867946907818832916096739714487174955458279487321307397735953334809636991983175524892862335534725193295905329582120349363355741944782682819727269586010609760666175820091697244730833642751769708184410730365317533539603328859485318504888847416400111207941716186754968728337807690151263229032993202512203898378400774503540580214696408973112768871885203561570928918395489992932872108224983797340354128701675487717289943366496492971448430403435767164170945215264808853638650914902210145282017159407446294844862847367760226425062087340971099041260655779375823248509365664898008371532784828056105203647715138943355245864212616116472677739672832136320348277498057537081150302359768969601112301801170039072959764568439502825287598701337141875158003804696902809043898169109995569328847847918715962681386795878030230077781212079411219418797083118477486573503110153802372361628203285632022703512300405920635616231352827685865074962884368119709142565955782101460261950012179054214189807555034808615763104266317227185712084096223973456405301216856355986136307646267695482275783928959066691568531080292232165235942962697295449996038343715002135842229749649107409684866814455177405570236575609966372778216945024924619266219593751916095821670198395263999863874288232884325801015918462031423936734916152314645282624253351686141304864783544053529930735720539632428180706033667739082454120194873654426531368685178638121042977728187628415553535094825906090622138010050984367908640801789200799798940706407933839423728544542138749559320322883336133369452441019382452000830803926725657725283677161241308220172828333383741446291031461935603972022748946339302762366453664850896654911348072279012853078328956198169844921001795707485863208164904935035500864619520738276560511298891669349093088679986566179472420079606077147304086958454952654782189696460479527703518642083787736007704625876847718635107781542547908871490528624253428119573018450302374451462777372481191303198487225834145006030053651066529519439252420130749013232389892241055205360953372326767410050188998868158736801601511998227739417544801678509197204369018026613093689805455193687355198395219708253296938479738553115448274692668323133942458815169917315942974045331466183727447744987864487550772167841179947828926631203668902792691009350536805630879670889939663453724713280587833226800101120330291487516959157104883983118022421666238688569805177059360221244925923941175989735932331746172577620255639150986659725513840637749514536763171637743444051439594940146504970246047598238714294054614354568997410814525560759544921159490937126757402487485379453750112116854015374694838455388022652495887092465876723390285198068307631666510713774044840751005080796337032861094092663676472166956719740414631298696125503093104970738320215418247756622872231110417558289160936476150921428743549043256154058914848395578729984527087848167333695926829981481853381886782631032234036509054571938114601936506327668373019025527647189358664118124643978324448727650217702766420290870146378767754771846159189457550177579262187949845608485950569379511697704703512948130908787600652840900008347195446280987040649369565831641751388740769575708825317319453250418762275339739678666122283037034187780382537193652147315864686315764370510144895470574690814140990570521928648896435441248885431663252116065222129077733523589182467512179437476320217492600528560493011265750933364635128266079243194562772265260734713668788564173974942266148469511288139703440667428994202772843073618209164251811950670643746911566842232081233129305585877584695530236884482624440097756763484689351133173004499688638775757423602510004648802646563858688913441983363705177346785251938600122803576245882950744431846815070376376887916096171691736806537885942180366796195243333678667484714208309326017212781446763936799703020347462079329271370453908250388666180330718493473452835446011138592857375704282747463376362643570020491944239616902132679006271010739375939744582716285327996464110201102564120695833116798410555504899852209924323055791175620330747347817672710729392259825167625333127731375275453861805118898478385527346552914429633708933754490495811966024827415063383285515151695591499284949413197669608083284733601676425694193721226762178113659625675945888344168094992231007124288826175509165978764441662914244167600563827806104321798437993055540465071900222867284773435260873756159251208158634010755405039019634174364887448867085606006317015851984583167264660889473906366658478247698195456597740975396201143953264568742451959047690043359856920286220736898463312885536725785720081177912583025607633397669398176236775045592061125471422382736850106055240885264488503548863502264725800413688126538546727828901172924577662074844274989992325034917349055408421987216628118832090610812061066007207981536743260819240380778819860146728537391858415643687915901544068991132169326157066488060711893295267583104049784368887009048930245705096678969246798571368974655281078685696966457293306588607911982194175778282467629914458584545603636635233193706145330029177139503971440835265234003040274104917157197913905083743352877237899959596910497075424383892513055417959516878029185153938006451385000376386453793708880987886805913302236595607913877348799489151907717152944490239051272200375844189155578946054680628277945440416612584449568520605935877674077377947336717253375039431613113792076212329528869612614268277727246491986851078435027054589401164728897080076996370691524458565417575499974150607233026678766228613588605510647631907467501310259690974190973389662876734931323483446989049138572053942787446553378594547436799069721588762226303402306279835512471932725160704899197638217697858309884543808339294844563014586366829742102145110215265963838416633266899032781372655696928220497882235273517670022816697829959534548672421280341029100677593798438713807751705590815293446140836034395528723500321621659120126597413603713320366432425464902842284402942577669087820629324615928482980640800560226000340054579728274014325342848086430706902698143531267079239860969971739414565583947122500460969546645045023723284182429872873883159717700389172019502889466838197228485891649673410768163465435408205152899182859801999209795902346517579543394433539459418391625210966593775065675381303456471747104685427706900250790358501996061943081601231304826374845401609837773610429189760046263321394496338463577329432345424660852798965200875092914280117892892427862853988326120113807203641162161560173071041234144917635589080723026865232028935172376973016129517780836537538943861991972765919135414665901409586834742827063011278870864569731318305258989977034215959783267644251293315827752376870428366709644821048077777779915624844044171003776576317488146075877037874283147111822093262763750971717392446917164600241413118479088983554653296840166396424120655341269199416445326809413327223238454966992576421459185220664555910437196247761836153244843921925126354868223124717351756540327521891579482611780944203939351955363537447573297305563286158850690260961093623927042782017740919489647764023457120830163901178409402957459990829233855785907090195788892313568302797119281440801207002053644078267551217412965333820393379216893987599205772916523603057544813131955589455422065120132582574752594438318553827756806057233150611480797298857246543860862689983197882686421127361654393415845243034157832562588262910328324918751861443431567882389599509796494888550325040878943213832472242393031403639179117436647448828055049227567694128971474736343585501748572029721683100618521404956321734494593106328001917626762182276070659706219493829798001259277192058200499128787781550913670834717193590484186860376474535252543490060919589642374803858505333455601769848028985133712642413858710271680550336245109147360993931994835798689203515823709557167799250471506800441214203098287249582301295280007133108439055995374506745806867156425012977363075581519970065857311339167658490984536070379979480146795147627600119079442728672123687143041278113358201544253782488703733264006573634585666770293700976101001412848195848603347256226821454071625311517533398313471656345840881040868414823510229839137299075794565680808090548126317817411103218610670832245845612322172743192322609081518533018972615236437684190405238203991300650815977821510315201660683375976891678962996190422474437005142508991503484834661182653659443643875494475731837381339638895375082350093538417924734657158211304044840123206318819022567971922933214904925015678122403378584822232923977769384297672207052990747311662869032392715323741890912240000204003242706055611320055246219061425767561254782898780904459975253131453704849281064270742344075209496078804196484599132259639934676289009175089460018727530407699177378640873995052172345586547636494168010445578283863276581892929024453257655174517996822633299331471900795145981839839566594279594948628510804919089019532551211090774249000997241738485235974648090459816214020168313506177360102593198480230449558290602606388825069289561421246680343855626959275351414142685542018747196851261865002274685145156353278441117074112332244423941526186515292412628595905742163449659291939848995496102877910647669537388162820815293927796651512065358842509370382027712533683798149140968928658591866011158318889066405673010134447211574243252844210977712275003615209454979702366308706402112011888485563734591111123199292011353927466016743705298086156162180254440745726549343010008245446692426542398944246478905666159749296057454858481799530916879691308865947929407781924656844150094932317365800597495573044513833146497793477986704418487245833056126784709589573422530893948086489891334730509394188067854979438164212120065346408644034538879698979249941772615674914560767845967507486986155660168318715195725080729148375202448099247701332479255822363002124393597362299317994431324846535948245547205430017757163908575514303906959768936594462573832905657865920041785134177745246499896093684406959856106072877979988164992159842209889630379602147468918920430895046565285118897503525002123216870737902494142908972048099412387794059261058252960030826943468000874000856152155046326807952093949392045382513020371756781521180839457449136398310268901652066678616179128470086689155450424356558852152546697219696558398239196705692078293840227092080900122316319651223839419536839663901810200337503924753977724536695317882852867664920881927055963936736675097655355097439405023773681170895500649583471100151193379811857982087399195245513178254504151957405381320494841153339379128489267202362688011464770405589099896960907190538104208427460581948169132856573822071795264036084747118039003077102412953042505561085186064014388853493746571116660418365081464715324245661148456249803019113616960810257445610770001921021652661859202406832477361008132536433365269667618881116651139475363245036469678043174345382559803463533545685715773876552055482642870045132836030891141261282464100454617912238482917499826191006747436132139739687290501177421982880926099296268423767504374333069412241772834638824908656469558441663025761181300387976895493654425823974723314613714118386098425714057821499787142950208683173615662526103881850498093904463669094557578984376386857321738130633272315417181510586415068866841052415988066065508285072869676899099123504991833999479544047855323591263278627889620838543180691151952346493400946471430349302859479705785994639309483466664738332773157842252718226191390900464560316332892088063295711754692905527945787045696654058124003400614447504747988317667577400576171189780983046343083655105195207624874226207593687151743930279243559198814957734423762339208327531352574637296860957686665834739569027704586467006004510096792573978534727748767342345173248433830395797544604096470455527412261269853115123819525798416767504192294888624549080064503423828804946021356330125108088971301269486920788506789144664712645380234701719222104098549163726219278775399499012676347343064093982689416889014778827410409936415546029544505194762943668429251084247107718314868928239138761168600915412045298356395758824390353697162939747844769082170102044387124314980269897756209484606059526180846972502872971918502363648623276007731599194425475632676617389104935093474223343486943679434292693450556192702968145895274984310853340192924401587552707970907378664056262432932756988923109695409128477753706122210389402676948966908395953772122287365650128654665601562343346015781170009087798767644984902954232730754095232037848931825319435748726601690654860711906661354945327817708231334602352958619618077848966003589982500499446203873662020734806015236418630989847746071707800802562980214340461734793613583150176102853408516017946517160877016173863263859929979490161165308666995922774699821339229654160265784703997599446921189174575473527348147584832751672898225207938066380728218192772786010191607547927033739662070438593140676031476083599250095954585957245466219006647756814526688801506209485974463120767342462437700293876890125648522332855312832049488333612799556105572092044027007528765360961491581907011134424276116561253837287177248266893990364373955651220403857615845818827581088515252187664101857019768635686189547216999648554022937604574979361864902506458213314612578654867800214790410070576011295960455375727606526844802656350292335604804015534879739396515404070494052420505660408334309267221727376515743488590676016505820492058948203409432429164356221012322474383193324077853491874324082324153006957005093131667960358488966371238420365721687222299951935124441578090591739433592430104485252521686074914013937125668579330429950681288198657888254010687587766107384034536320192701150364113891316437916569176757156833671905073343210015836732566802816406587309630171702170798817781178443788964372635110107200971039188120733045302829656751729648372571295238878616947815011679725437007901905193529938694774173015123507723020365726601360170949137197200325222309514897193950330558611284606497686690463961326090411907796798555215559412449367355652160814750387962813601273086097911755564775411937523093576682029023052754771826706200312319586993488015187889106471995309549254081944218653304162372359599729790940868257025211552577981144779195833690666889157945485684145471613914796497168418140990953969432041360432521660528498489690407642334754980883924535935211931251373781051946476243887141283303324127446771828543301201891610028803342795939740784027029436954368031851669920444464043318242572371348570977338267972976151540909050474161749644315862347048090509512024227893985317227491238725657131565357536156789354335505270311617261795751952983369366320725178718490935804593266318159635648336157012509077525721219771167002228472255567814149421187685894012817073173269007502533142074130731174235931355981544232477996858275307614864318838094470703878656819745955148403015804439483718499017782591663938597212831853153769018837774873808558328596547334206650911198021760396646593122668569524124165679218275328793669047060465360879805988964904486347356646635706441694320873172449683667437119041266465096153820725721629382630054676988653221546639683990083699716395009895241982301519412497867559787079747076583693467677840213689456863934777951809064157120635401983815953234303045028342338715242667345661743739969393568706137514221526786291206092498856564494242107396914478519884303295473186434091143260489693101661403769246771111085911589317074999077920070406943215155696565258006181078658938293937932408540436441890997826867643036083240921100002404069204022127234460921577338892148499113507218747177933216122872063691752095426084317879011329546938986610157458381355601823174820993726416138681658385847893865603198665537487476316564799900588519546548359424103452894864377145252487568775226482452520274034145326883617778499124668841522585678165804713274918356879075935180660107684618507225060855419117627726208793756076646347971677383177775901155616602664190907868732819203735031511608244342672021100350042296913289405787112627499338590476663729072467005386212079180787380676266640784104209563261389899766767822642863429193984489097209121074574536217463888586308960925855924823717214853553248354840402542301194502377417138593132819075864423066541783178612050472132538827872717254266236653978691875051766645881682007034461745589245263478571857788205814621932339190146128033752531909534646556271736946260517283987362456900386601487874290698048005750993456992456335780940352765606188659398772174426207084291405701121805899354467831534785816509502630358044484987844540563802164557958782722051604124644070206572960354996023938838017648010554845949437086107472206816157409548529223525905472299021877667846864159854833494066730535256060427070621947981038170979313856179207628302037460489562592665642210883285642653740071894942522069767040523845371815756065474240848992535703324217818650959103833657475838961782569236726308753958167359494069114613364485605516734651246307270614436983880580950652098113053464017383263881510977628414564467276196028953976730157623645978811925448770530720587924318036424432845646879787551352332615521165872777549215105721353296315503103689048917056131077599953664280562564698938408470018424103833125368499657841306764967722637231829479363892073080842959428263285164642465765250626113107911004098919302175231601965327776727488360950980683612820848827394542323527990718665940604389249029515786861720111719339032817259727554254292541885060521119428663636678104436140915689434532746567350982248705212378047448845284120542744702174856099140920722885398379696333321335408778942620269229200782275891347953824418947886490339548398961552285213049953517992674926049572479752131912464742321711826813629811102027719490754374883867225381360634318459362303602532591792706953340807137821080170894467835061726841208548935861000299102181062749417449383151513887609136337113010354271857428696093218685450636983668168908352164821211523145515116442433829292096450595754734723590256315562727669604497891083933574310892253873328376515066211009600470099559172379258520347048771670836525746614047846563798304200820689706756023918996651877353923745117659996114663893821813092874385042257492601345014730000729467406877725945517164054408062583156860828956019806871587807067977013808083696364730226043934271381965250335937398562972418659916001042604569674583223102896368949242005734188328439621896277382068146342620880507572066544003128021167061974464853260824919183994024560936499100255427898844922436993897394175839247526532562725726171891105259802178527264671267219566163467081766790088396701365748336816704275626894668188142820135711115444443456512077033571364087199576841316714935408137823254989412758615584365333766678346819654449908458433063270036810049179094797903751372741950174781184546712761937741362744119462692906666841567252052668511572629104786430383137763171400735196560357975815804151572984506886214714223512474287471808247223441901615264175841664931269704169339165269820627644479263546922751700468137996001805095382476413719543689241406970422990288336000442929613500934507592954230660127265201267828229437776641653994603289407963011583024060260831003387011949355330474394526302716528747630595416977575396939588680069750456376095420973098819554313244980145019362909975411709993019852799040723524281888729614775084424654699493516376215524848762622246193893114480384922910175705524481652954820379472603501892966725610589836408405795300182065679533498682087061879157126168493773419989901239315362244986796266884549539762936299088972631144176561492346407693647937165934553617642882229102665840233744725176245062361949446348508758015129518048694682584846476196992004346805150692988453314707565117403890456465796594841035757237751813592918377267850177844664037126547355206398330789347944344242185231782519961688673612068148457079402253212091620152799890388558689204110162943073732810144637724193769633625244504717553244637038703643975376489545355997559794590933815526605383560230864331010279212427178762380630795970686821488555449468835261618550952939304396735751954048128845065455945557561275753498205209321853386109708055211939978467353424966816684546393627480579966484305790920620670397948770464196423023846024181027161641210778047841774597723627263781243511362780856607270476307620664128850675284673377295113983816829554857027633488750403468497836911738169584195010275001613233334184731973972930394933776010609044115253995758506347016273794489093510706028590017631398492523276078089261852542930115917833807035607146169031488009051831886675245220749653136547047650035860846576593948017824799664287112567941407615983839670653325423852070955885602257575894124339125881437944248848586022006799459284015813771150369999201958050956789445857762129795790603629585019801563574564085552510307695802730604979244202797099354292892354630208024015148474875759782970916634165453085298346175001885928410095115675274621428960694188885074624699646856362610066345577198393034625196581016394546415884872235211359236280754926581192706119593449452553326397691284843819700640680269224839659282095673039208266200882047909383425446173743578653684374210141964610506282852845592939379355574855978617934378175298196686004025111365786604637535798394739849577092766924181001179591889627236565072994493904266560223471880415681985396132211744664477415856911066543227608300019792078782209782556762873963826833591289981456353891898214554205993848618508671011118329075274928008930665016977605253284136382509358781617983438707918764806966646320579711391859711282655021083887867505870321433057348496961135430910187279849313605426665294975925546224859206341132066818142518253528263004590482913381682840949941327372830003245920903979055387468467353857712582533331784265530425237399593623212359252989363870791904139288126616704014307955102457371169122797752576506707733486105668104296067877397322329475188946432575482461519451557449254363383800473232620685537523530461907650539365623851006519434940332696889847604195057535860077319277741521055081240979894482554281495467316136740403199052604104276127628203997042590649208913961552558660549583752131087117403663016577762979975868395447390857564151292173106764123375762379238554323489562233033168983395900501294637086492966756355962120264311298523882117009894071863677575285947097540111200921898136288610925007489320178053956528720512199789466692392512030946002465575290113704485388228710196267019886424315929812051712832091554072406315989142114583149573811443190875120973259818723433069749946234107490443057853567956164356222703008851733332255173587815976690771121633884884842522546074015428337399777926026550998516009687653710669175793534246298619489648259954920185736419187881143479540893401946281707359956069877697071100026448662334514141825993716397502435468057836555913665494912878791195674051540675751451233141888341725194593248240300671115608728615920989325052561647268867519258680105762415883853025803721360263183257932640697415118343361352307414470473267780722696359844578359736727305946382897023112254691303828694345579142849141963755959030471652411132410668096109362724983561126539990298943900808216655447922955740439565089255614707845063956232566101457094282165643069496078045623573071596602458857288091590045228142766859904906162157478477706213873118162667952134216667196902317923662742019794815147606928007987543664736361401836293130067049917128804053418524982388259422388924018895618126838668432889262116284644382120018503461201225495536809897863767195081696541218382549461329079298394754029011907693646736519215736871543639649503284465077557596754001289356835864910906566429191787493248839348381883605544938036598983042506721950708899435541035998129391591990453027548254838634834314007203056165049664462181274425446864868821782940990495562721461846025922991561098069724664922491078525023897287497599800826395504112090673123431845203400524148761157409041263826591134265658244894244447482839626856003402981744511059550397387158627523062362190915372160141188205526535219965597946291289265097773152640097031508648847957263319116837917571934440160475478943548445240254746178545934231929438132228666431055739098903245432936776368301450598913629216486618119332551881386372480199178504699171467424646042818376096193035382143109842568208254981549560111734820723051535067677760323663801781747209178310381763953106282634886144809628645277461052288195669864702438547329446690403119283783047320733142160465365563601489120625282569129802259388449699931311595313482024761079499761517521595711165959655759169136405900575622926927803456818019473474595980667171583868945417431561147082739394024747338818488113486248217603789690878232798333061647200057590054845530644775971794622304853254740264932539099271817382968299111653875019031235980232339955328140561119333423424806844775185360682964723209543998754064400143658735724530943985901906596259534317696411067274679750158122237550047497586093122918227393269769603932199429585081292939456858021513838567318880286770559264862069426011762470144857061401978069468380257686182689286102444414941228574216740467384021618554782710998714411609718580459995215560893258113720898676718938965003290667410436138392523752585013954720655234851544807197851322674643276570445090366458333094562423667035750986897095515123312763147411730254134962753953745573308604297157927419937078238941438284309519831615473883357352335677942548242179524537874979119170043619005796080878747759250286915828749712279238560635929417275829675587745989711164048483907509275822509018251071895499691685669208287683753891375040308604953803122975554845109990750183758624331969095852749148630547421447569123416917677194478973700011378499506881720633765939470289967027164338975158757948568092269337356916294421764129900521082917967720454321378480736897785862259030992924477047067887436065265489490319216651466127098820820815670586717439415597912919164151349035892748908295088354519866644639992439763716833814360500195167746662758422343633093589114928339144299840365745704830968996501228812824938769395590151992641221530314737359866417344483349415155381648484516151701346419745964706085794056463032647140776583803053320355388413723627416241974079059073506510242992255813132769970999482631218390146962376385218111182645942529870587080567873774421815494349830199199018822618826062443973121263756034668738416233004181887903655486801420477609888308223462243533822166561548401701525729334588847021272922023128514891773504774872062880373420762979794161917495587058438320777640016447262223145220223803746235400125459009080856793421610621624267182858781096490685508783726895090829781748827203496748858030054105294558937166863562597259580002436313424450412986045538107271633359503780250419083319757145030612486473691581209119602005281435312219132346095994113765842397088310668861253527873106379104511464799744443951066726221657966497804786854302294844698342093241711716815588284070504333412325354190175055761683763597756331848198565612433034788216014546801424376453189579721190984217209481265208137582688152644910000807046523442949661126647664249551942293789178884154562694319469275201367296337172338958796774121951807470408597288477887986004419794611282481821575019866423080931298906453692830660883071691987069192802015499871054847126073178712724179148124758269923754530456951683944903989155737411613880183268673153127056865822614228893021912119825460867419316213139242493667121715151118355951543768964617004630103121071837822805088618460559491977615666643297085293403038431513138668199047638317590752024707613106254351934757615414447035817666722971729874139003168562913095139787152684658939492612434812216435478164123959877970664777454068953248770286035812069961867217372576519057490378720617365522654494458668573262375426064189514886795584414717187658849756076924612490074202990497386871781493525788849557716749199265096757231360128342172269212117273949347684531497966370438048239742270558747791836148977438966873152080421875756435572046630014123968751302293173465454812096067867529096494398659089890080247558419670758745562569385011369631524459207056903333581681675954781445713919152410186917297005525674505700902478255934258813385883016999913375039936686146872101625587845828102256789658794606269557758259983862693112336370800681693028406468230691855634888208143555014351513003106755626869262634922098382232340748453537252033082185803310090845839962248145140431589150006348849279767921447154037484881451472424636239048347226534962844626169394329292946785857820070340131862797172686070206923828014321526476759216315562235414761954220484526241977107336776901996565021776875031296375290257023737283759709724861941487729190918209489169206772000426119344724858940417757518948276542546745635412509903297624240111642318620020694465845802990547929480099744865244341026720964160095262751953335026153869556684170779824802116367185169578957033188101497193179451713762449474061157387888878859982113598860367337143388790042982703258745791751587984661187584791610326477350548802446647907684178056089576443927114098146150474087233771642562940951696962073630353831544431230713384215543213923783114876851472371546549455022223345045923019229081417262022567534604660780117959466147113968441408587286370893122432988873343721772770067485250286256952989121327245001275440759246431088856879557345861977835091875229204904759694708930474592507711052335625283937866341679515629298234058887349090175634162930347191282673395812088812718118734742400658827600004449570950880422023413808185549235798347624728416569667601363439483971635015278163110200635311272874579731144159020596497335104538442525118329129264782784419135123364406574566990084107712666341784846210436643953113119843712840247621323403084253682975439541536115638026789072898327444293551871590770608453220761550083103003750357237881251041318163709036491722977826993818800990013917530055217137441350028764118247986462562266834516551735792233359627027024619599216566840680600127796975220531882199775957790887313299829155782204874794069407425961986739927868523139055827445605598606924048250917413670303942252389383645578230371224076355344497085651196077174546564922263303393155418047084691597686994443972004298907645869145887152156087724070767962824992513155641437977440294424466301866948947670624855677146597433553257729928428689508953361225386830903787660481521846728545539097301767126717070967474867541215301577648692907411051560086177280841942452243461790317677615832898272292446141696014931068418468554073432525898951412737386618651030165405469438749550315206272480234620009385953100392126155822388868567299984181569403286860870169948716049687678392686527295461217287228330498099659581120229633015240975410500380655102976564103914936077798110670899278767127721345316257941026223919164111828586418336510778722205704724448513198731646321217362332639165590900897241535547911951643172094897705594731448125845419467466999895742614894672031936899359161001620534014752908424720601428281054322578984301007541173389064764892004081261140594198886743687475982485758314261909574118248005727670937745694813238147040007230895517958601897726694790609947429641059811703198953514769739659856183939692936072741357226831469165975962064822023023220439190420070149702714553971371746665513506765947574309373158663285353739870130196481412846078617844490363899730519433426787072167845238589550128282323250444041895309895020620243082212367895423516801708588281764179710937216739139565601447333619757815815543298078249713592775863968353527344091185224223625403450036299188396885587873495155378576450956043031488268273831842542654817410120138283184648027968535778014776636529096433369848442465251140804401671648176317434320789365174232200478179233099708162950118609630073282344711421157725305722931616688544121758203566187335452220823734097585803872708995292352629293846218375468023551689206741637331208151898667317404556429006153885348237278594464860601862618888726236439803942541489064359024884196832413095528801624170792176736808366182233318606941982764318647992903118804800669644370914102375814716312477531715596579781642030892558254729712797571725218141265571536520599439213911241210913215720245231044698934053492227027298513610640057113371316238491497591081836204593536698068937435315298258908643627846297767342371382064338174661189314396086912443566611485452752163306944804901699298215461764767760406063961496870018151553197109453068724986724267073426352162569184707046126843869169235964657825015770811866085604827025625521451183614822911626680593985523511526886712536429910895750079396694181371829095524728209187635734588113365696492716538401901307046500389695209596146803966474090770352342518957290832243939641568371728245183349100483050286500443718829413974501705483642789987896724917025771270164913708126910791019260713981947266415678256354380742970740575027612783813194559198442525067992152259776664021799776766955984729783889784323682104522134161634996988039846653875590595822523914076384345458875362758555617265332916003617277417776705099006852009300702607242661565118804106798407984623318898290913401187031859441535406040443529038973631762821452317658195427433391521748601304693407497119292104731984334032024233335384371058100876376404114091084878061169190693020478791527009916545760258448004348957077182993204065339119351202107106012574206538124738795797442549550337425347027120730317867117549043431808863447448111293722270782683448764091477089805570269278198526515547724900444623341136020950691165440551912636374869548437596820608995409051198338567139211289344980928035058288566052462056118591168459766454182474411855400407235793770507889793807076562914942342079765485587442805575084641965596678805281627810621030727130057167291378661836816282977004462501464093709824502696503025463858063707603320530840061633967122118636190214471025917831667998901756924389948163402782286141183580135293023373527554661938325090031155384567914863787729337600323084745799880012389645577563773357005051709323887046563237443902420621873635237454060058090907255463628884680801473451697264847520135185801878169280986075784557550290744001258692701546194816165582146020116634262981873643324722758802867851289177559923911265393127265834421471356571983879664965699325214215678887981390891280097797974886112410946898040570884872163281705466544499750258036347168464611138909230326135805593388582102997584570842749703346867898781952773349609651553919395334974035247066950307757957856168880184476941346884065862344355273660656324383035397203257167422901549396692561029982299554963150906713164281358510029029721185430427258828360111311967810497668893535338214274581562940538778552115523652205302618512918848524590800761125178244749006493524692695817614653227546912258836749810992650493541560192730285935909715431742767236641613420504279396341311916338396167331727038651746869439424131761077064558497050253811656670692517283137842382355791057653590116941653899088604696350575261252625190537963392917585066076036098298849427807565498501258944415409738783422226573629235184133990324514321358827192244508273663382864016892082501263132583854039957454406032416365386025269170856584171936836489622734602273648777436467221220119362370014464233064045680500189150283313888105344175585379663722665464655696801818182349431642311832599708442448544971344581994382695890203313917445585927928648821433569837772345835759315084092716819490289495178006599832701487352227940201349255754376871625161531231531311436392022683984456748251891562722230910840433559221107649438635000343636330012519873296875157603833020993958742807120206652343951409829802726862048893854128231750037296216341234936830406875766868419811127249678521642210626602190832842962757126672308039260658409071537403607672484304822592052738567243683663351855417774546702638361182308708256984003405314327900189775831048856351347378452170177714770970337110443599284557409319018847730122594998795266203895199913894254151546971485591776749472834662555636105684280617766742418365033974472240232800088857134607026077073621005737027560611220267341018781617618660524258704355167763866307456707799182361654723152240316747525449379351479573979889405506477527197093200072720905801000392693994425907263300299584507968737519508043804649046198754053681724520203555003383556791347796994509698836609578159198579321047720310145541309941566171022545256298848905793552974268685120798320578867069028639377134086817830671011894104934779743834608081770636991042878105624033432449964391264081963546621478279265983432145796579949521193293344545378443555678871797592936542983007796484435422930194437158043900365484535706579753704057578305739047019529415455075211092013704234100539777972283373401844665815469841958749543901068315371967809435057125217511528898539203363313114876405759050140743646872383095100063236862037568364182714550393377426935914105889626187973689526464626687354885092431297355346113392741635636745426716841144223029218544572544162160895085825649211146711643975566559998017704707709762147836969408209327390384550001683138106755593647908173773439339840027872139502383083760869351377244488494777877343600251044459781262396030382703697983836883110012685643575169675239844515890506492072273985696373115574416969920893875498197061998347934010660665113477315537737942905950670866150724696006466735233944523216608703510673409143064635573390937315787634221417754466692633037001095250220780199680772162449440780452166432040138412604258280029938956353643758598979404908309092459827007405983653900624501651543597856403109565082094712631342300912902976576076591367752357222400935971894341303183295054875646391557829439950091273000224926523142152473476526092375949577734782900970163394501294460106213863444710342888247883344466536744316076915622490045593438363175431686069881042425913765982097998060402257085498802422788825018593520945904420813749443232217893565190601844833419774554434250419303253449304534679648316181316063259145515732054064732347105419122840236069989972261474781971570838674085324563784912307332715047897716609328509655868319562983445153546313557115331520409768071188062764949048614931562730818341437397843305562872378951934616124338285096550972406182641236649194182842496901485467493956614491828428686359008784615853224038230753850362514459212692500590244483673026496544327489683658158328885635249804820485795544563086186650101848052676717488881073477460197382656218795398092748039104393126595723935747337535978265132439721232989022146673379151125372271628886604505529034316651953497316863068997889520792097470695193833598915451394716898690678584899718531534682234155951045864790342225363342473198454888234224133962773274415817785749012042439255570454560962893784069764389523636129711923778767136361918106983947240085977970110278557799598707756559861628086148632976510473283894588520202621393860233791186988673859754348118245769423832764172734555413770690054730104369730032421397553176184872642229399819644450414964655744296155089133540323194601617888961136502140112411758395705105950513133657026870889475470217101530589924444994248889369241190653901618930771506619747987157009235482043477955357803629374461780779025678235001606203721773780500326557743464715424231786347260601717498801864531218147591661407140473782171855309635984122135113618384547702937932533757210935452174921950157244154805899821610663201233046306202382167046693245170032703415373885554289598775237435228235442015030269293936269439562371752187085114235817468931905209716244625747924987796390117154689541243824177624473076871664311178743322033501248080997694433224078070184302306275304108547272742179657370777517116600213564476458120847514978433192476051410100527252799494170813267571255317059010459986826378700414281031144092842206909645694437074692352445909036422948977231764650473917285211374233365654088566441217710047298204154946567581652143217610383456902766305232530506471960934322203992913475993309168917427257301076740068755681146655246144624627082415388429174519648393164072255206521880426515868103039487439725993443179159681066604930941604672972677380224884631036799468331268587818657142109551736868733284477257750300153842220562453549302517831037596884134388450485953649320052189041339217970782360561955341118413938956988768562465969723232291577505476588345806226390987933023701323735134471737671697543194359926939576312306100109890240788653985054506175793672084648162507187838614186875649676114414907761961579008790206821683762324145242589334023241892128402050649631541763022091664550837327006408326402663713809015337891180759290881846052734453180783747778575376532095985604252713103666817198607347314783500098577254522391506479105965392039232425569917648244170117746556868620045406971133849360871527197925694721242276881704920377769925491341805619335385142160254918780236232608498621745647363022811296647687054406224386026991278953574922651326321040273790670438258019399431189475283821753769733414666152541075205137474147004496124949189908887405606388850757515817223929676649619007204220897521964297901072188880520776152995938293714879892712757120286066734727183264185250726838455096370336060650973375057070346896922470969068786328511756626230031779259033219667996460884351446826644038010515631685524741965956723269346830703188695167925618082490481864107773639821301791814243693593908338390531266152785357717460337520116781402430943206433204916504993989774195352583926248588251607932926847693826877593199702047853909565323201792138954228588916702343030868110929277124674431562767545499019113529757244938075463230208583466176903300742042237551839805644429027216470299433522947266603335830237351557619880393923764776048270624897516698391731938997473876531754864212719442258653805646506896731411076917406228036662338899738921051662690391929742120902552934608510490444124349686607091481976383221990607233212307252429004222947821906914565962561171432363783807975821816351488649677620257969582210375783158589815549059833364962813708224528297710051242469441272862290016747937769097730203009361077104956206193226335980583810503726138522975913874409363584124367393272014475502949166505734562137276412216954510372049632596299939323916006761793145236102818975889984303786265286436149105567496432934522922079306978385513658536029816782004996883380214560400117564251953032062584994072616937031038046846171063754190849019226407975804437409827935156195351032857719031107881731337861536686482136996890948901994008884935274030048206238973021643372230021261036743724820563082490883496377813721622099766384581473263986113879342420316902343139114137628597621050457069112402051273001515969987265103842980483748213087570578041227901875145737061862769498406651068456493597569639163265702464929899176063423162605237831924946035650079002343789409155020699029734162832250879441008900425611522319070091963209445659686124140650411817252536380351813273899238733369500620214435233738421212240451102670575199957779182830541499045972668948520773172174593602379877614801171192919039687054012450019790805943769710008356961421378357659357010271736190755132259309280296572075563241883853492577472183587752029855197068436647476696736404802621136813866311587471054209147718266953984096172987208432654202080653014598941864541153649673963159773943854012741098713616894830654479625856918714980941561962036591115285718242549624665933008016301034638425146667813449287498167421333085953007421737999224690045480561967410759028527910688830676131036674112489273264238720774350116009682343782229755790690061861576767434025662395674860596346584258869281965572259953869388677706581308232357695243350085666663218625358963504170941818916321208020966760272176461941450120140072584260832239229216622765241411912071154576951682351739546189188277087990557437532792239446631920798786484676868831040508974669471450390958138864413013879453209157318934328909892529482918220237709659459036220918331521714249630346543489782533773375772425254527502079191667021054718978146947237708359513771160900259239313371583063025431372034737776973159688164982363787742408439165731725669568898517968876307394472025828416081318025041923911552487657369315905138183438914237185221092310725319576200186370269855566314733214216844916131973297467041107854941735844115451029002756170205187841566836658547369197281550939921943430392710866559279065720493708587576049841802865823149888264255945059490979841840356744264700467966799920593408779785730945573243809554780046870322476014009942190169205364226331385229138735459020532384955170393794348628839866257276275511521548301691942556777321822734092972095140393200788016754002942810522537262972078823767225840820845197937912276507703719587696587862374533948101076869085089293280649132746178899895592242502488435460447918094575427756272223780657397012902323003700345860701330339240308119847162760669616684784972286068840978519332230380085965921617160674301608877746181679995688328737170334016820437017549735302421769566870632495040150746784836395944291371311688848306613889917278279045661857200817332364241311927146082732077552546303767880433927345992828535201752323882200527565615091353522269474174138313324393938107615034059583298802164341679355208349570578258825869855264475599454042584735886789254269130563061573604967353866469789167155574895031331252697865948270206474123040194848635449962176058963390020559700488454628383505174840630534294071580270013672781116395560908936029893609222383120347152129536193017159486276276201773954034107995338771701402140121199102121410845905937869773968569647331924633182786306965315925051675149935301411662502785102399139794398556985545891229743995051309827211945709919906979251957068361561322312414879648475013208971657716980008757784581614139350454422339387336956166776907610730597637661968101622694754521631454707141160680634366412712534197098867526319404845221670202123174579303639202134130474439050289060131268761680814384806379047589833073508231104134792706230029017716409451467216044248781584425030082865331160927402176834270274822148550093299120609371757891279127025463742550580115456071400366508911690012727062069523924119632017714699247035015010875068967022246972157100060264562153703222332585420962815842978671864640749815307652254051997503555310384459941372430007603348481313640541580160221816467685018863747870653338693523914873396585788485348724730507364232390678147376894835874945221338586064608170464190328872350569644719497690806895436155883770465173128377731481114701828543026023558586625424756305314646459239996043891494751754312425613825209727343266664289619223709538817800494787734156815232876006481507813014143511699897164480830893576748144534282875721443446983683564815861649300993022427002482753415697096873742901306489313760014703179927663241839757406327911161068862430332888131604686188813112363845640202846877371588275161834170768446114096390144079782033523466280628638805566256866581119076883299579694858936835047903244121383356899069778599482566408448505267392173657327036885011162903856746391554579450238741231356576305461141521003914312524573910518095701192348425673449546358015945508165948245663621202153539139414889276593401679139887662729934170000550526676996665666630920189741034014536779885331958961900112535415411251560066463028408220835267454468544430549796628353204638644667875138795788887169227633102428465466823596508208216654814906280292095973076290218995331494292569559363308338928327035167848325886333402294735899199569328336546821105988083829624771798083035426683484779296290900161609149403885242801178888986203348784399488113231032151024304270989169104618303765149632748238351881652264272747187502009589941540195024330686867455088162268891731378441263725183732276892333668235983681327694249188836665639379706934681684792495061494208155257506288983886355616333356282231163037795176393490542213302964502206953002128240996283067866244469886403751037528481428955070245643776731276532254271937187575613924756545485158980592206015958987246332387571517472182090904556881160413926350316094774158430965050878252732011052004776895205273298068971584598888867568003088832872433610148138266378415210888837465126863461956758052565706013238156406603435838671353133110285513827473748263344807602788352231368337899007617369745632607220626724389086419618183083204490612008486991394386599474325825741825182525698006564655754320351539966878779823314278592888686421818459063749851208053097476830782048821427824990376138770617340919921631307736455039988545197337537604263553939376453131130653358767545748250518823799884712135072205095989619495628215848348507851346723811996724238447600176458036309255452637788096343162022100659261186535277733232093482105532911882962626332076654765560159849527831688977076658634237968156509936950534485590384484315947812298425156429005719713310532901275977251387322672737539325442229251957192028875939295534054586738163451837217178114662049739429904459219990060349987543273110880888997799208261710028407479712442689291653631667031410541939331728177823724420269023658001580955397403030074332252880623537941832200123821515661396581984159586704586816569335635536612728079053510576178638821440054309753744227545934329065971643219521024971433739615170890235797902471603395825552489946966503837635936342422121303395208805320769310143272157874576953542775275261243620503961180659308031850670940310512134442853305414151541326505738596964894387258650883631458040996703819894655617184817096132848943524153556315840855641711489692608813058792313711960759478891519293729825023791478195954842900445544671682436232480251475035177523812464426025658977952819818181312259823452523959888805356214145360005336486848103903924669812801145552889294548269033446184191161955519075410071801768535563931499908879292765381676370251715583316878295439559023272580486579341226644883879015602162000086901397452314754545056612406425526677734880077415065393764591756688864500456171570553327750683199640128794106138731505736664722115808496186917686451877447388661329301107406333815697288894033925692858761373048968669003449504083751133313531957121312001448013348708852565014029978616428456079319935703743520602621724887225027279656557117305837453712428619595953423907670781529664896412645368517135121976614548164126887544448683236047384601443495892701855923022933836285218687148086583809926593175332720173228779504068089936162646417797201069016374934946609341827373225288317201291654747188535467579074335685895737217660697165369828646516133678161690719036600394757474781418991849310021606378482607787046550602049851498357171815447723962911517176607059359950863460435121145975664854100541891078873232149218976704381150046067388633372605985751543872913532253275541193319409317038125868839826698780074724774148817842156956312692023271453871605367133293351757298819356999195946264837845908660305480377635045423458316458239546715366163165247234473031983953105640638763287211610063558529799397985576928050981055919940840007152091903763474816570157127845106500323019289999800234020134000665862694117414882907949004743559748222881914183669299211434250638942012230641558316591740335225930465858326930467474509778921918987996236862832163273537658969528796082123254853992368563017706748552408436462741954114694163190027942728773424705564836284637273612684298980462384066693297624353536916703621555986551409669682618442442023795164373659555297304903161643980636624281816363569094271147651244664605321205176305940664734894222838305721724183778822110039642512029773086318074326819795293038815533107467662782803440604716723079645880601805866501077426553923559870263498358726149601215358915412331608068662764133116094328444494213104461223116446421927121345730568992942884723446853802976653678320799926754947241736366014603210429285784085413987599734878043850904374450013300360264899693062592112340710135994514279617137363300824633065274392061593775923332396193852332107942260650860550962798288488519596989361703611340783612623645887992024325501903412425379247813033788605738623044796682280010269524602695076789994392377427577433929597630425547865742610603195670432779702140585366957322606142346913414497518534602351452397519770346943135876644460433358414299410984236666103365109469791772807575624979628448044546305408743498394924852338670649617106369812641409569127887457764349797129914483245009312770292469897362784685083665065815881796021760770955746839489609718597555212186854995588200586767378430400158044762498684723695581801601122613067013144121909150691886223780991430919397548702423555528789449167136639712383611217680257541446108417897360805487984449972186945504292580979406091829444981329203756868490580954197322329054120129544926132025309565250046346599448887479936175330535278742682790724830303502244931180061810823748040763744877702874802404068288366656765811240435822711990336002648905370524399139345533164591982941796130986731366780950761980340878918765268554207215054092628563580502102627883008591601370395635436121672463138026007717457216827994208595713848328836127765773202735865975851437603541440025462842371620759197706425552619074654924284951196384445745070893553135239288802574536728347067436562509907205660263778803431974521907076081700060077884639395120242997285204179678372957569457550667508497566021156540296876980730816576435302819238463483748135743171899595180460035581339634168673765892431792864732074953317189269052327844595188365493417140333460823537996397523883417207617834668599926296034194273685559098603297576031409852384327217660236087642465688651957664846977309891680978330078180689345514993030503304280068381673604140849009200566043764033950134462726006376601186309633057505979856135357132392863882589175354281038904273562854325690763765862601687295089654394789504106750349575950068793708696424502802124912260549116315292011322179078338263427482200357036745639988577867870143352750504022365314385452474777545299550721809943682216084760474466630482514419200700440913061338518546642946325285141007062594576705079167121538178422416099945984571603809964678616670348754802650282269825296362882528695290104103738055268579698920736971063168732311523459667029744296398293063052175772097724229306486631267694164790038276927821925419199267793883075184402868307241617558757864380310203974731670770968493511745721020029727325856260806972874654209039306239980504552193209240840809299989350198513223227472514399047988943831588796744622932797068545038053744383854337187468284082998845972442526465877521168799328926587553014576133631976690026177455015453741416957683024448245391656668220623779776694714036810757600287002258223203395245327601877355298068045245086789560559653415701349934946905918350226458248831655086711679388042172481397815912318095222723549230142683915783964375953989860653473282230307107137129650897448423313003119085919909455019356776645902606003822912085499136737868628125723229074602544869013278286924826091943687888728750631927849495432802963554789340785923374668929796740248202843566181537134341817229298855535007490295275201902310618575009414371786354939537944121480998350073275726680796501517515581857218499099285494063619728441935633531400856411193576200612882291553442959248160117121271783309806536918343904808556326802750583265941007959569593178900778459119768836206295180315012095544047164318793813732202754483149326684700633733536372635517403506178025740368178333796469600785984656645407665299209313523775376992944240147762405213826353321136316716049727733646162583417888602851585351573434929438117414894747353683476303063901367176465723758108323333870362651067231206088666913948061547586676508390531597921328724655703636846759721539956518659827667926110622347907369877943350009523429003864079009675378494274365060211031741786454744546752306256149492641882860342750367883183650853817908517138635554145430764301342370125699541188039106261952131309305674418616459296355764078749095028434747050803140120717174630173970157551988050980794394690027633946107194325000884010876652647901265160235775768502147409806419974348428243515461783844522646096065231279602915285011576921583675371712877124969803065417749671311392809564999429982499905467586082753568525216506364981410886054829487589223057400481432707228537866461723723044236923315716559070717362753569228295859360617075488287834688558907954879320300777962848652117048134120470654055776013734416523702459705817559955570534762193753904707205729685620301554283765857102889533208331247213567185318203325064485640391953465202613585938027725233541591032761559013476999592237382697869375310448250965037505539739105230850279925268294813170998271404156906466984651119032146168405528848636845602085852205606856549078344614209799953099521039553485203576814253047668230687553343267954949092425803962472691724616759458636816429259129888706275075439058706197699502658746747183675272387255965542830220533092081114271500335732551145813997418819475229746110575469467993551450146496418538199693242242109384188389963076957150625015700903380115725307014857262757699891050787883497867833686791050646849943662384394248014938629112026297312981501881121877582898366680756967019969446296784457813648625336387971324031698410312536402621323687233787615393514834897895898371857398544786329386871713676471867722420009701245312332270679564524791861438747083808081610905464004381307110026729112031894121047970250783306832285612894782151430986753185762177053027373040214787040379785397669473673607533927114820119740655307908053045820394208782282861858478112135179877231988076201026384502111557991063272166650148679564602207534062248086276728618723814859267693450701819400986330584351301133504184684074539376407543240368509502678157792863242981472045564920004603162326906451099779972501691293417336213532097545627850328858645211093713710714450852148794735462528526394088059548374424396098980618201539280148647720083709676144560376305381112098170738211543080189255760222822371050879065546324779653208009248040172883652216697595420044022318388002653191812062847151151702350428589060683538041713513790760210822567652023190403474229420487775683095812705125853508232102639554927708192013770459633451646661104815422115739848196513837254385489637542630645900325433274757540606342175464231387226379221790877859519987385391613077445565007084128044552854552851594968358308466094460117081060753743562040116035649598976178365255710531751072978163355740770091916040393465813314448729106225896976855626607663834779306300162178948191160185658672105803177118360664274305738280119893453626914579718392385247782084911523654514213680718828300952562078836540964490077601924348300126945342310480112114917464576408627827265835986957239268888023178870484296526755073001081430659595071121809577080441194963136756103065421026140676761872785784070300291282618620536589325865664070635550590454376006199004029559136726658315107475315918091823726978959695088018668494768187267968795267536402634677216754931852310876863095321203630685712476966873867157214545568640226706489367476781683075769298463883187711263759219646766482248561860145221335913555917258048005324374996395926397836014752487065237457745971922114919316388446630991453247117101355043727071270273706562472638033108879293009250257301477946987987643279680401507781470635342591144505754355542322800243199263395981116547952170290112842705096518411139818330809910851059232938485688090379243548014114703679000543156739488104483172788268283893972392935652778764187756348345213486594998643420377980665640576383630729405381185592961995219649575309506573374074875935367104320649923979124024392145883203316606800992156310027117962471642992135540691911339461631056221401791514971376098373951602424327247083753854371435407365659820752924131510224815119852087241169561927380198220542118280814069460715323135484099777566033857335081248013942183805725057292753865890601759514481903751680584287080116251881879496046847660286399374928925771498476184427031705754929752550284387305358565805957034519799568922066965517785995241748716512996760239476120212177475368976595595020313852017464498341683597026186405587597088698216942793919214215790730102450244582843537888471958642648640640850026133685404484387867749254589746287742031985427045429079452059584107163370014909120035854548655822972729703421918023449961031261288009764371463800502380209918952864391812362266020795352037449624337432253104664243554167547621553148376462695320519629848445790876866175971773100298467312931822144030211163701548536145629408385693838799007905051839275649661214980407913930631621656041309979685092817830338045991701099180014370033889507706414461648679363169482980373284421435029940076049969770935886534041987250150903096251655109258054748630392606457142447465271928316059164113849907224269991146872001492275117540638223728069563540973601154009407036246138000305171153413941266031752867822617052042597233841796321106837110889802432534584317245642681212150611363116408356165464451186282773612964229605847991350127613252169955864375144422026046669090353687601358395137232136012438307162076227198064168059590159181006511547261146276078942407383988198313595970994456386320114819319749159570815358359596516477985392564783188413028457822539622915221481948649361983142737340396889832439414820445934044099941867561346220579862580150891384986645053229334900007750792710046455673185676717161502643732546622013301169530296739819291858210936575112107948199989229417076285145212829977422248174979764097357429293621597350825605241866892760698025905179946162072833957336238190936546502509160056587200976893189845743209245183601120889789113302749572017604485953911325802261480446825363931478039728954758977597912775569480970151080155508507812773235154283088886682235111953176822074364541049808234339351659012834632711233505169250572979231586787108640079831626916867075165546597282615846108808386497756980313938585173896199599637564836115116545765425305174840757179387471475649031805804952008301722016193447252459598019263191102024658474715957983540296622724212562803291592782529423778671470231823575602807207192360831975435159615017055366516903740346796927558603515196123846315574065452663557149416275238740836760517214274178752381044405057399349164266323130387647027809818979009711741236868061159762401219624666825537312654741290229656336630893117354974132854328668251560962417217687277925367639963495038478461324485988552320829299564865471279630408790440814717604882158915503807057661367425525562574089462148650139974626143007167326380372918931501221674961917761252551089243097829698682309124277897274698494934717877295094941067731384654669203614069903754661756519907639454981208233281586108338959003366012576269284329737504705993508705472823638731388492236088580673693212968698865854568423566326190002430823455173313586416628757274484362667296757252456219784114706184057522036316868436491592006651029575207803368475701238854448915843969381284784148263951723059015003390003163710056692811949744023395924233280034528988423020871203186757035312307281413382547270365392310230323492877868606255155351226280520980302808537221832022229061868407270499779232739237152151783908595280049397247423285107781600437759803590881324697023248566680309292761193025829603879836309273464602115238377006855304123647726571505283244806678459777634684611696566923747621781415604006705177788473953693898335586022396427754298544043628884148072787245040325561160867912086144899979519256634279414968170938171684791509570776515949193226035480113136016817938805967451891435196906588909463411233404653036923502279170565826449156207703120328000110036327744215909954944726777052328945522749627401416017247568965420195967608133562138496789891183236213646482390716083443824036502210551213766514933953773137299124639985026255423462261287631819034842743798511493092673687988324451066513965768850364178475730613703714641406459481719320823185624897590355457434383586093589727582920904150498165072448963316702066477511182290620695983926951036252731207450488449980200000813308443161691248901110763350006382253558026643958560097644205063805386260964300995798079407483639558205817329126122957618152055648294368950184813175936361247629455965929546958434076357780062644399605968288912855581958382524779883384988009459331299131030228875730210145440273003320525205870697621108556456513073654257273909859298996956268706874759455520432089315539288836670651115900806811964723514841422328391651461579634765729328105114783894405936860296386378677471982940876655918475682967524928182435455337521629017484802781399641043677028555852129957058793448928095286779066980425504203988700821117921028209428217460319160911321087076927004023900459597875629725546810460496045518453699417339709817711447213438997726729397874396532878202164704031799797460592819057349539424082222183869953788298035046260731451670499228003081096319829483087060292396388627331436289501816208677369965761749836694254476735830754986763209729488934544811737070557018547967237450276251702515182986964597889558115176025014969271165610334728750953049093755306033613118940971547532063627909824492496550721514938745297627661031040687781943172373151537956285037704569861302691352958649085049812739172542484033044911392747729111387101541926099732130776209952455869266946589650854122934241211786203247863072158938313710842101955440727078967341005526312876820612733092652869053657667237315841026833211702401968791582104036862034553984429824898843779996620776562931181750988946821217425115559250719998032591848641598476489742338111949628655649904441492586833951563156907036689635861229265118500715330281063287008127172887374677464828930584248648221440450691701465771600140530267011140323506492152642807380521550329547768555808608488692638785227396396999788951447100942735385962432313193336921590343182013893686935654213357672213987676577739666930842584786516156022753237345977900018230745418371069450989264354224434884224691011990045432454032843149726034945806368355244776048652141051392250030207424342380258473764441124915132352322487300873480868973905169920709515033422676394134668720268773447912954822940747616271272497881198992343679807087346127161687848131314789819276514590661749291618477725466930844333557000425642249070232649463382404703561497355458536490615150697390839203468892366352361446220301775026054236518191325857146225020475522208947931179045471417253629208219972403006248817957304358211336741474771144905407465650291114859600144070213912481435931825242958790499000740752782177840010285769679359523758926507014648687731060423337654700704861707823797243682573702529633548004685944269107251297635703821753555787774118961138273774680942618002511546881748143450985548543377485627979215154032876279039905909619530853483626790217402960971856389880598877758075725196576992179486434903971314776021883044379836877349704610083387747411221988721686301486411535168346471183673461915249385828126824746289916020320768604518512761478619644668580029093824608521173264528694773546873257452495875483988236268811576805213914416529865507897847275411837479078410781086232571132136727624892199227369249720061943578795277449827872797583243432750436326310524673433636905532268332967480630372885255557090590777571681858125462415485027092664985014247247012454306460007938097617725164614386562740441144014268881098824880275457553885879909620540934513458344090756896580841859417033176571107453141991618251035141175536579466574053209308858754469104009656103116328443774348751132289672305672990689613493997590242998459869568088320173634170434692784690885779519137000792595724184856001230487678449773180913865085665605660973307737572936549355480726856435079224641252124434704251295720306092899187598234309114997724395523252122110475531934316668780273379430180488371716611146806364950875690511467502575309149903882412499683996299044477045282545936009545973584143928039285408958172583242461131131481178446817521585565565170749835241824824375152507496376547325088023113725224826899485825605612103636537682257752733474810658869686155430842321438932454954763822225172013612861095966504468087766187771854002721966672973481401420289565916834077683212978797101164363818832416163762723927183756756173013323116131288818184911808525140479902871972307829661181147178327602589689297835005361227448917214620365967142382492830465926916794017688582849847250158733018109340022210120882330616363589963390008405543242955650892015928034559505823550162262238120461848681163327979685380016871119243359056036344263507550852438966968700181469666789996477323459722339004018358591057516899874848912121035707264370681120435961088390021795850348856875578413260353935156645024038990031933403046820686826257984367985062561040118443923448486531006114188646329175773553553791808508734014244462400330207064747738960883114566072338331696534280577551131676609668860480800744021863444684914468423138392755213664517811096134514074067066173413867765271335921642979793187457352958945080013358512419893910525459778771943718566709863534801069561997492646633502195256837689334689624664556916420605651691743627964501892162799801900875945653759509109119462753876307970329469474460933416462851586534525996414660761613429909907434937663680506568222429704878390818181522548489275054298687878573995356984423577678342001850235737142232336977687414804226411198306520674318645031044218638297735889671111388569914425913400442092784117549099123747731069605679308294070411023371076391541069590677459974257427737744958292461595196272051848447170035656453501885856459097799038434137387210332654435179456825106665348998611546948100229374775513484086532687139074862996991195198113500959502619787884659969436926710646664986603681048660798994985055166520581296163833078926333525561492197582481761087989417159852930786018457509151651321518721267793816982584068947883993213032876570075474712916184578036726848261304138444357010835842738648415556906697775629653208637991021987185580655015281692601236544404710469427178645137107474218774793329679582424508266463981339621813581562160440290349690018895545156886245363081875046032662861413628562291560454733642526466674580346456152400133080477012254286723107858353155572955341541962333176381155980136781755079383436329645068236397487185944812829260014157442631803606887619707125628597191248069650705183192964825587861621928526608640112461664440092928148925193856252346022346536218904596238266036179479986333696393359561742947544297374658481906323521565185632581904523747693085088898585824666498947178865012447927309520034985572250262089230928833832032367004757535793599238084762467257039105185607809169552204428071458389217668418459253220142208843622996688963472019812412617345682298440555436772063576012608753766595517479255580812295003895452189955633143289380037285405382282857068391691483110592854965133655814716877661159431434094584522786706807542713691338646722780954726574211711772217378933214443504639781274491927868355994591120413010129323783378835555326788502726746702793392771794099177047359862139200300065847939406196839377708658320363773270313362334236041721661877609973469935162796597517352425360074554625196588660109626811208965712361602854064000677581358048847504818911195401550320307830033190065881203875617162011527400849605142932051209917843813212218414879235200517870806063803773294404577179120861247352048734633884207926857497878266652635736339595140982612316121475671251228676515889265564489816687451877806588211175705848126545113431433307079100755360348864485526718976518817133272033048301535440627774121198009347987878696676000630882272876432355859434529811158143893510890491687499700490098188487523243540135796997341884661388712910062946417970910395923846041607872783641116340317405832593558905570619108376707233005705346045035809705785558320617704512581594214040601124616912987016645317032781055096740942474504354136011743184809748216196180145567593417032192750436813356580958461830918795309378212603187782583467532723057217143182122678457328075952001494467417371259898880381160358389850242542437421748963669225090956375831892253514849384385010560177097881005925948625985376986264746847627087090345469857273378136072157801992584668000354430535785369458754115709962454023293972607131730057304995283229974414830605313347462159878019061921311966928501901456015425819774032782222349799359920183702615975272375566745944301647325093105180967805365176398494257491672339723486199563449555167578135094819830541582702544591319759339399149100764158273797934995472168714001305319640702157811079398604704453456876085377197394214244103901989520618059764385281194084982319288132483529743557245954045698160966255104915991095953947735829866234566217270722855461091479642361234768550120972101602235349914787114987111193889168076997832301939532166884242439938978459860686054969177725806088506273897716852094859605633896959101870206249080719316709771102869540248045299157383843940019683687961101189704051313109552882772642532065594435365692639440101011340932633363441085411973319447012155696654416639136050418746032543863874301552442722506700401798778178819060043343060281081620869739058249716814346337605644934387651314104210688472674658661305969893260690186076824666648746873174370716983876828627024288321925531603065863755132893402187487794760004245314204568361388112897664884472251805009407573926064041942811037473655165028520565225523750045875767663794715680382187284242309145770851624751207813437793940291498280917513747000670438005583905307127309602026912766987448182179276751082081024421256696526768678637318587083068887252736657730081910691514883091973959776021242601055397515427270413124493387529634940329288941961066273901792313886768299095547701040442941558245660529250468520309786201386129174218362322527327678055843024695204367101319829316617041445552092919787803678892886643010207518365017011003018978607525444001108931372690200359088523455984082266999059114824579640292836513094450091798927809052381371974894190635171114528481871392648673661086191795782809390500018268252187638438368033206473012729707447452803387196303738360878450867205453075103404105540040519065111945496779227630476816891961182836387792077664681615233542265077131090427819759680084395753905951670509168235914941705053770076110822658776713870130570860505173626837826033975975525635391077193263430561160471363563368481024767723983928963242029357391078616278547416884829406362155695403225292462746989737893909367853268657593424758667645688256436570755657291575566043964687799115337405401056869064138877119570675026861550012779572760004116623686409639017366406256415982444778315629053610312089483353416188145911999233549217493711123196277948552709747507391207224773830893381468009820911583920769576159545458575226882515954012919450174586826330952188845330927813242932613524051322828226397739511040786908527178781331881952218962973961305573776357659436530140030400159604435561155843112712846392286418386424933600769263070343148862880565449075309448856271248190530532010092295843818784669706804396477457059829870420560405003826945631584813615893749661970291602800582757005107067186909013470979495069326540823083853519120783333235335682491322677777579080803649356666055100281424989015861588125814550386077691127616223549924994966074516401998391499419426086857651383091301787094287275230851666542690034046683432091501496203894037274328056247800960981341410366429944981153853868132483717258223904914711445850277171901328987361646108974662781788272439508654668897326567814488684011305324602448975164058909780240754675400320694207063402092906138184608224378166749149850684994125110844933782082081492565598671288209010435937338186421812191951167761788601071239469776078238494112749438183628013670797569590520286925486171551520069180207293554707078584095455193373393034384151409567867896623929081519238403255249494067963732823111815416253615928752906135865787386312750229782817428440961800502693130729906651794925938491215298857468687866418859721655282714161771206852138083492647215765676007695597457078477970240213947052699901748867243560293175740150144203105993502892115046228805458438378723956620996444913168259653305997414058767369485729823618481885690844278596218946599690386640852202069805486102954724890991361829564463103958239528531563253041184735828259046103608070382920175838096158635442895398617770473153600036613308448066935185427007643545042243185935380762094049196188051563268973944989351791273615830509926251358596857016387318545384098036896029061686024652780912077780674431913576370547004233004639924587080108255535860965909502242998631275625805120565203348496172109072043064448968764438388938155222742105395236471844861441342364608601718748486732699687428317229705776434782205773046678729432253398662652496477663657073614839032249348347484104935014281885547992770012922103567906175760569876337639886433430046169630233286315191707816100196779661968124361164565372827585787080244418208714974484134941027216725566169935644549560080281640298456215136829179815040493087656211297909577537258617910125053051689419196567996047826873414070391756315291962458327800186215659584117095016876009879190143301809784308099153256421004237060146411666993079718629697211715868887958923240850834401926469211554437635599671014770020691218455044481340211284506612814207305258229862473786763142022848805137673748856461237505764945280958821978552048258342083323532534085793588030700873242741350834617072391822553233803078093227467478777668592496889536538178937641914156542042125942471450747247196288886327614139030946176841042262657156151602390508331299577401864643131208522401149787491298777459577168084633850610744916360224517183650615100206721061179396949374381420302058650909011815865004580855407849438545925093227647142319702120901475958905304173345197653656873180551901430276066758787854819378191256570243195123799464741139972978102020847135825590116985202403871582624840825104080951359768546262290856128802419113139656355786362268169911847978430809316668853585705986394159842092997012572438315185683942035106465523560645671621616195014608912747719787555532037570439707189274936578515457193176764463525577987934279160276286183822549677467453030391096454387574088623699788315700517812763405111464954348264435427787688968009098189726657987824195227284117931479624513326746509536824383036531211308398975954921354052962809164499669342812178652575071933157267525465937088354722251859403196338926446491184807870029556857504038999964174831654108105449231248151603238163869056513792026021826112421615943865487626307042885868329356916175555412342655246104878196994450228535313243550413259680537413569730583898005256270538641668579538720464894254608976045301754149777378332112403227515519590623247265495470354304639882539813944874214273703230464618068896307254668664397595528160466477143030720960856337689783493657183951799232116397279041850034864561991200719661429797738780139762219387396527312709243777436046150249318298827158486747496224316701212924345217574530211050264503185607973626924793204828218175386800165106540664606708961112025747586454095932894854452220104906817592143670387869682481673028160626627448995071798363473845670201067262500073942772665042743925547759198645299320033631407781811987976624932635180083130218353758288844158789397613082221478622903982438957471716286733175707773495347518530939903859206622830060363192190403983416769083554932641726466341649505871637214199597738297507090087912339228594772642172544077943583727661886820047540872711374525593396841026837941204388550793042519825014912016157690373687174923328615653868001817826828516449582207862801633625440708403884528893608542718888473754791514266930193534773167071976604200422563790774851058160693768340918853387417728079052296529752517037192367765216187718831183779168353197126368733547401255872069740305036229575993677673883748651179832295112308361988020471397680197142310217336781980669225721204003145389945774371007531765941281725972593097488947975652983454027425390904379282705741470878185146847015025946288525201104934822123594462385515128173299144772761076685122189071033776514065169361405947032690657525577441374239213715990632462097010812779925319295052877595211179200241310924678156053925797663193939703816894410984368188151290655713811487606672476899572063149832752008243161690039468235702634007506871456638605353758291204539660744148590735238941226322033355346641328934847304287680512529574351471848831930503955607951887365123210521284645085185290488904941768287637160689645823300991447210611760220202341059970499554625646200186408676545674558427321586821433488241405173758232368998318438303571794774766750483316912019331130812143991079896330836842514979119636113887918592560235436350075405821541896412546283631754142327158859452429462179898363423965474607538984837363249028250730037395599932360666403292244129603381414893138936439665340333962368967198095556811017443765168682484864472388376545765459819416990504757187313838553104977760255961544873372687190237801691077523251648078726618547660946349964260500665178206809528738718136546253734153992194966152661222899771286108365211653887247679173441187387404040208482802912848903318520399125141112245837420700876365280995873338312464344287163277287228201781289828850267719571730987084638198763952576642206218392017327464357409525712669598063283825652188926340420693977975950476438530805372451455348382981441582489813586357504058596172238425344343913931625146962244646027316777219024378608328858776005567973459279678718964884634895472703491323711499222502709194826379194482958905506333115674610568607131926785470733957558234689744157761967659598762682041822154033692933988884631690404938645480529259393772584735733811175363717714557862926909868277174938329417101437196896942078080011014316209215353395185768604292801344255262935104199582304477613928267912633771778750423420963488778060075539187439123591903056833786430102202028776729540302113594949343164969089468033294265292868777371828654815435414510202553607790152460804101743877549148165908810550665534356131049570687134294917683382104319781630090010105616555189679892580242142300341471551595591258126233429181550258424229294794508869038006032474372020621427562267961624449815609988065967442920878608701237686735171095532418302724254651882022933748574151206317421380202575769539369717886776902793022152521661169744623993543422309696384043460918707850436927073292848267972339519554128879739605441651785290580112098409241570866246375595899608233880818478043052192883153820568320462737729823249003539133918837844204205629435528131195406414759795284504701873001320578743939651508356826411793638231404762121985567175902544708669941019641121294790995583366564092572739632620936066242922082606452508779225422180868458047654428420828313999687324897130691122906899047003427236400444017744180032766584475814073209601258969023489171264884474684630715981070399713135725218854676065566142987168475765397377021083752575374821838219823570522241687900214622759052069003972372955457818254301746668963329771303962088306676180560765434412358543553379807578699078010018769667736332686842023566699714861694340306418782356615764576787021603805576957740677083053646261747257935773154404427470126101094000362311716977505666234963575287356145887324283672061826438024141872372123069858761743210169113241147409376393830055679158451592666554248257916176502122361898091805747609982542714200916875881712078743493578492104914901561995617410876376618756145051840242303945491712536411341929551059931409867267215309618371386475421081621778913012732575609454214281747709770094290676892678566173263921096003466707726386786297481675502039498974753104053879472039235776239038908636419581874988832013104662676905989494034108416663018523877245294044917116208073844480971751620397594065305841401626479149750881880672402712448541243050368311393262600280353243017379011515495601950001937510164684957481536750211356911003084100014791668718512500513104868190034829527451237464619302306726813429082199901428786023697663371187879394817945122096692402930639729897341085679477965676139582409498522757774758578783362955069349717111809011331068200843525462146796388537202757591962698912926774710656269941012657191306213992851300615404998193480054596433508807710271902093617992333006061921988606298995635649558665099256289797292550340042262588647332118120738760780524090735591736862791511168388984124621334250820769018754692400251285652690301737337196076058360095622169474299543244684288854546804208850033612501582652217263027922180062556658852756797759923678761807341846975540101742340029022720835518472701510544636620049481369629151672687833139887876933156522337747967684805504364289059405917260250345942624693971311913182769826592530118718607285141124076615360963360086851337849062794708378114569436436234051798967833646739285168304083295926342547252469803480325331520724755892700853016169975407797845036555367606678956853420001823614637755734128869941450330402351863338774694562209081925702047601354219904680698122191660112460941502923369222791651602239808432447827827018341857277395068790924579096174630544384261041684612391005418475405108227147328926576413504547820012547039971922646565004837612749896294737888302349515918715120961213524347283905660134499071672657270775313178056466760935670799270400561064121699496905492950663883888183338632763734335838858730722947236898252343182539767295467358942900023276176856007127845477283432014141320494349399380804977564912390108143382871388163338288201159566398906129177632734417363417278068919468767817939853660000310033575463732938403631203415431798385227512773362783037306091668661176088036827640679201330189059440045372251800464938527787228663074829048408889960557973961029245227731791956188302505696143929197561258596019662870351631540797039258245699825834699506735227436487459103489422851564916510155165290234443233493454598952886641944162094387399565244848589533855275158561519435279364264233538344290894707781217205152861386982152128249256810290418653508701833442484768516146966477401619272800576757790845048204834348242529103971491456991847160183062058127290972262032972856970146432980843892066728085334715974684433469150567028572685663584677564533984425898050169235304623754962393026351153281188942481558669752771001603721160281033750092282076404819490085511593984949075951025139094043976181958274268255800067033395487462589923043145291605419391419473354189723110393341299563994480058687543969808963584406777392382317445062240252537304257885751787826015147388901994958292552551984278559253057786258032995167992390125093541387950522267741282644546815645567885042419692511792240085921335454109010546430104658174408447745281336654852535514334672809732020759027778439129071693402847651268653403251070563291165581909932359191478295030348725215094807569781528353711165591956398811659266466870307870135252387237263033423634513022005254676936976988658149867141218911510281435853588630270871554661085997915063625953136426295773151634615109623578332435742741481284529318304394170567007069721942622395077321447891988205952117927086299700447013683648229087404373077576983447923910273110540349221495167540206078468853042406386010411730897769308433093627105632129759882453335737950718245243714842065096970716473602786664321900940376635150516831894092960529532649303002261166892920828206510989865080809052193138869434254451408108304666848591743983485240690582265135283854324439674093609082112122316634033647384641797917591691061100166122008601902505643812551361435103241111244945013044872157482978684618618023245515572839661714396753317721397997755208346237464944836474459321778275405310476036512279952231563908277980507276273088408067530837225550856287064308129539429421922794793495563259213461180643088543184828427293164257599036423053453280374886498591515865760857520224518887302234367756982467485060616148764403872666734502674612618307890601805259609051688973640104229665359436430432341015973809513119973026351035049138621607785528480670797047151897546483429411240525985237954352765109036966014609001462290837829738251513680174837678539909992722232974554017191497604419166361953181825767933649615717381662730403958292846902528782292856266599480140721309302004563684975492287821749024078979044518128621246798797503119684212078029024915752824075594862602935181623057487823014720624821227097752370577355578110642872692999927841107672363646120862319221222515431154414030038560938647310803087201623138257580510060250323296179214332649124219866826217714239155754169066186011588675982732188317648252730423031839602269521045689545777766034814712186608752881500353384046103511134473212469944302121485163162202331601064142315384715966522207971448307784742329668116300102909242829764847612990237301488313478448692069506788138123265658858645732047538608447900945932264103115013995399702706429206536805118169383830660569790421917812807178131794583926267841414766486100832960388488149736486477552287912497591469179341783857332955308872610330653301315596848822216907495688062856497012185342936282341636677107016211322888862712731113858522688351772512278484925804312329017858446584849673986175351424751634785003278525135247202713835381269392600156955490281397491545334645320674022117281399202302063972688890926761463271976143643274876389397242769242458315654199052929439472136655325182555282304007675437750606807419087277372618736388922970909303812870272420401338234671089851080370686751223029966437491395393671557250799846166339446185941002456613319494494376174763610131030806035089943381803904547567252891058677021463940668808632454216052482359590985795678527786154551650851999247637634445444876945148978964610898608295464537389617363356873659650509533741861244805714871359191058699298956922311260805560799736202783270457863498244090129946589725141078937544402352140230122735321793757274944525976356215811647092224629618968654867053063481804158452734636146227984557306876000667051125018551534563851881561707922366869593729491248063773950953202559768035282621146092535130913735392916254070819887025854682806249090486102410847508674960131341931660104070902974286421469918171214762821781905500528597472954218514666954121012078553161443299163958927089839090573749559790360255830552124811873423936914135049640196400518844666073093317341752594667379905598413619183359655638747049958440596373500138129167824084763028572270856291502766462780177189030501749986292896008182037637742474531275893566298427056778336844035133004116839218309946536326494100816357645271573848518877537852472486017382486695675452262399029189780738791446815310157083007300320456832850181942950369113047498739134337423045167908932443102865905304822552612918106153160057631091709862630353578643312212536906680316495461040567157312891586745951307101535196759197042839081574755970082808635290504901655511336653574601653704208164537909461161223577704311411583422755342093826552184193981215427965349912598554607695892946553405407075508318592576576697543008218858121919935884177773285624759371228546346489061040780176663070394842393715906397804087212926707468989998494053165210587206775560910674566221738869148288413430427642990424384417538972921100540406427598446557215791061743996669827659706857491575972006947376974155850164710465748080508966752050642197579154580385999293732424417319499223067076260376359960296317790932398534471081523633482624802129960590903215895416032163976528710048708598750845326816722391990829199146855466623977586833625635981666830015493538586803504648477104255620754996334615567273719478537219645146618956583387556817802190363708588844303935095950393062210330650894562097716344836845770660389504456270890094057617867205253148209524202526535645100723298534382968456422255659175659707480325237302617997783952298965667069453815516823675835668410322227819424330136835773043407349502126897278662948406693178446906839640375672912759029777763139323610842486100894507858203907461362268029905811849040380183747967456165055145887359744709188733340032084600203793059073121531952522962369478456897315299839959656156370924804611133034356471258832689946805580794303298233399124941908192242876204368000959161604567890558247275397901198583533186341826828241830937817677839158119032358304208596200154936771178231745856249927305004089140772199775265329229000405497777791000149543595308028534848203776808766290702788576724095705117731092902550593750429634209408968866429278843401005092147696034276200733484832471207210533673785005106433820888076444097960853131294921045221366958332398475000660522653311592123878456088698878494453873909407123780406933306612765480261608783749088153802794050317729205216321129821054382133873061895842554857779313521341048032679059266630801210414915402710024067411964454571363793066152998047306507986037198715316805544970044537544031467251725299914661908368585661396379514988812900647998589575741725407442547986087511046665216130891127940172076018636953834386560376656970546970302170683929451188943871000099070533187826908518248043693221048577779852339140363306133859321306884000604369686047803279554878970934559835055726752630611611265939804818504143231289445085830220405592442286228273250966182597725095801773102908644818995013352731531395778214715862506040792429744660228298443880292778577299783889849177001851437827866065066695628607919071574207510471913020797750959744418042597150254184547475089037845512324791115880085132862943441727554366167066766496479509402787277335106014959297342563450941135404961686749834042173378369502911351565757269067006396170754160554911132686211535394170219536867758232286541965274868440403855833595219805338621074376693023706297972578053577752631940512393298901484218601691050478347533501260837026493726984799034264572399475533414128575942555555934441155202944952530608430300756132868827701760569601273186551611977893400158736540495348897891496702992654182083365710236260558563319067429641936081567526828839401302380993881393961930061515979968869603757994278970870052445234272754216451703941359350546409608849642574369150108639658264534050301740945668234137973062118403463838311312751196578116792984275327347438619271063075908957575239438986660864049113464663958892412727974400693319667609993055706802356164317858474553308500058954144339176005887162085260506057769389876903230656784911373686472083534285334285476543190165041188104022994593620754697149569471227392084659936534302103375029107636210723362113872991556617893488019562215648589471481871093487534667991304247925086805569665106511757222236239996551041145409492689034293807607008002054470254525198598331956179360751828769255914586892033802832700550929058147834065656075129943129820506574280411614253190235448767282209041883732761699467382003958470515988840127400611230239789196288613679057094953910427688169213388238007390047810510817568944090876058067476968409814331742484199613800231153159232031770475856993001750565893444616737203920410690623279935180106859138542040092903914107114314810137010230207160453897001972533351533831330627559758236581116564561910681628852630096829749395538153265085268450090304060419946704548525545974647538235277796568047230361842620034351501821191615137429320901693564680513465197272669183380616737447830739669287267862132774918868313539894835375955729490891064771421747562290350370867983543963949504771730945330426107978232113757934585118550030418390786315188614805190280196112809295906544197124984170303094129920979492619472231737975636325649861488943316528379783710790371787203778969412360816636948647534117169481622145871730827454835878540016600271589521921799697514975607439307358916943433323719521588122271530802074032833257847126395530258940753807796781085061833122210931007309366543649963961837380756278175602663327528730348955513681021575264228430409505689555168658718322777220467197521357403633333965953353270380906082498705107038756961023244659350981116649091068923416821090517374289215232902910463387166159395647335045923873340516542311713984623537788796265036581163175711071566691896499975173915842321809587828176092226838010295266363852057608454922035277626366311820362642337257261455236848825878493451151979568100418180127478794877046599120681338277983882384954357718554151146897105652070216837531538491622388594224098517983674062920274242788545380933196987636344881417128289925414170509745979615739774908744519176155588353412241036227729519883368041411769134394918043348510387765496012599764985128930551814419054818870851635747251500187529687376367239648941734854433872117662156821937861848148640942149621378034824185884395910879619560564117366466383512508832109620246035819755918478112226530142812643300560798977339279035785356032739641492982078178516444557552989349167593405478202537016911212664179480579139514910340433765357570657260797218607680166960372979023401375054656827103107028904848665332812079568474402321046121069477907178292547751702115766970897461230841627050512152664134352290690187515981599649784897365304737327326976023354166573318682773807306055315482121276603388948173236142523510501163523266610267487524329305414193073638409097006645348286989034468807194600281205346762448287359766039422709255047413904859968125207511996319315100671580783186643233004344699730632104956661218218846624169090708512389065366979637479202930597868386916853218422162031260503749024439170055339332988258677070941365589498338888388319132825894762545667702511447311260669214301974724330786635032636412305846391123122021597404259605166437045337171985870337331086450676580847377841199045228128288634894502763314362300069447589145558737112660419250311594334265744157488214558168199607527050677996979846506208961410726993228694802354103728650575676531420779461674579261563700752954430484612791124931242785955534608833955192175171050601845146431586273882571808335122352905450529815103563626080767116810582757461211027963592669836799120543649587356116770882255443409158604893541969023970440079448582677772595499546023701925106158777125872351472314497904080326099589071472078793541448437737998244692442970455234748714612512435726950594428765949791020680940491739051473069038645625289616263836267822683975063097273343936754844521925805788735283164188795938386602110993772467671370777439542951154387003321946815609867874733548829885006804908379046473312900392636416172117341909326791498536069487801348018989243554625974351012435200150974720524823040023068928657159203677602056509912958248029338255887421093972142617868569973374404948750022469200487527081949995168147340863007548323539103007210601467089972770462854662030688536367557434993745914060642377760407932712300187232708177690703914442195337418037495799570442018371637024979534564862604307082387408220600463923240056871642939925062061754551465007559687003238870732042278001454347366032770291420400236276972573917643889232590584980422457128094335285598448434640930832153789493033328163831330615370668011870750767677618666681911878067303859607387205991064791396431983719796880852915555145910479230538858174016633975512232799596823876017579616610150078042148935928332212493253575909881106696805203512043406936691020740459494910822079619055917754146515298829585597789454622216554095504914684817963429100137696795824611506928446222672106250760020739705009450485391932947335898008652001593739221263161342216597318104624757865243895749895138643456137941091931449623353832260037144298040185338464217707703885866137300857529348700973883685913161194036868890398969722321464270990866516357771772296839797737027337168233592938621075334391402710667233578661591713769173118774334979132338990447719793311513262178793697133929030001179299412116390684719316651336684164564785912691146353739252393430746981524462644573689201041991065603093947421433534287698181662531415076919721097520792033264970379735919773068094604960362828556770322262355827525256134038950343743631019826622821989324303895919396000980442329599488048641616354135645058166802540879348202844753635833336037615460723292997333154592813627514483490829723887197414290624623529688560206498474377960652600562502906755016944867601952192905459619983569142020263562180585590589895386166542903750478301077475192053147346421740271822523291657748590315574120940983466532956484104722317163116166483316791840210049069146755888589131457394205337860729507418651534486789624395858222008136810191705108917620543762638996808569266515125421375323656019650777979602158772380297021342257434840432219240718215728860074770345017228955080635380289701924221624396705646315720337469579725544736050985794416632116048086460653894871609885266585301614411570967395795929436719903756933058871371077802702994848288206349061231907748663101420102337012185727850469853316143391792669300663875698843166882026047177258543450507242388809012572557184078257414918533296173766843093805111625319094502503562406610212198626839403258186363405204275186781087099204046349325323265146421884922281350354387118218022116826407701434111412923836447501528112208194534933470184898025437872133125636148835035688966132780813091670328342432538324580377038164216322881810930642120859632078285751532945418310361127998834050824809295405806259333675683313682266520790592697486480493474351285555251713189231064648512676788190932647628746670234181247356662220529946401438553957313532763675262988388063737386887040195508355638125139233046418548213474737171787125546822844349006343157857374886299259187542622287795278149012213676548668008813355017842162232106763714061178523926304473473527596118188056752382015132517370525557500424696410509473933797543844399262077679732866152149664213459638548914851879883172138996932385452498982806405515887101399290753781503857473021720382268438287170018647797236094286587321687784297946867937114589711469632047908761485088746074433985603998506800350931556339157552304794790450689940065624678537931288078989292891753051655354546780633285999359044262185683634564612858487691060041812603275121501822698042423085988842436620987143415322403451626918632749489684711859445566970309899554147156309111739359278841693697809354772568541228139946692061973747894490135654701524422121283675221745581055051959347840665536179278147650340910475326763027075617848816598023811105268385548612135718931034398906855188627044506469317016833696493067331477255416131010801240278486518162405432888887060797463279746019495938128450285454109889482112371225208612087781286014368985757810194329981130389046711190387358416229043088086271639581070265984626218877735094903897568909526062899447364986175563436242066864531536679446655200614133467478685944759160026892056491460523289777079159561928222095213125595878734332565099317681836194098577139638285771817876608524821930522853636079375088240049367565087586027147845304916810496296303265255271195438623052534387316599219253107762107567156030816551725187829212840817960490502105448840014261312854602138391344379774175962499350774453899159899640698053339792076524418680648755553614193686623640385396370021854930721603113896846260299275170989697527990664120923091327322046595867062755822929221508318210872719339105908436294492742796204750779308625029034004444117084679631521807902933853043910407793990624578920530170996482404262401885617861736454027009924275647739790224728940904799479985546811944065047287466874586655034883238385478365447051619829391732574220838273237876043978291737236511561203160374628588111432480704602555932201884200891009890984428929192098557802190956722378244589600522462098873499869287733291307572273190181506333822648987955255408625469715275016131541036959393626526541135297761649141400375877261723777410970118624180506576266022244149414655568240475507669278374570597646540847975915364010644626218267694900862456591863954199642635497583041172041673866217617025930006579831762532240048711837422019268053315787684579913596250607371066243349826669763085473636158563590865111932298787593015648503381217615855662118167369944764267936403292480134585295174252715166181802456700772649964573930979483785116437338907705504725173818701056802861625198329264023434183920231557859266018785604396503764288907670858161320920115739173167514258118395917658692376886386210337027397984919717188751648871716018542383117522828993299696523708901220337668489467039343422592185343253286139946249390173939228453990253663894447554833688325826241301857208813913339017356815090135621265921343271311755254993254319247849598884477053782671531584508356160224463525490912463952307675270636413292536565131026495559620503983922285256903235909289522628779636487675341396695895485191649226938022434923322527028715443308840534752892740620594122859732462678064082629815136068158559059714022204823103583341110216255488624205521579712434273304504214413806367821121679482999830714012134927773516807217624885872371071840218267125718448557548627790462906237278518499121366530455257731528153531129019897343949145296148145420851818128211911594726399756492973245289169308099375104907000047793985745975520532999940282343437180036228408059486796479867539911877013101396467466354189490934903743543457871877080316584423718227348838788099109988417773323459543896180410020156595528900555942819880656247268624794924981205868942330839776439534095435338504208443260609872518459021962733884277339062017116170947139583109740880074177677363235281827186371740982226516348771130561749096530223649656415312300299695924671005915608985762706024354645889174876309891076874641404070888213546552940521683921277551872920179914240685961633472638213421053591423718914175873392600052563774185032389351949940548849670385002844514240547816484783665158099651959533639594285814271888033564318881894810415237658513980628834060439007542913186006857809739498685155039887730821653296091771082425952233942355356012174743303697600058572629833691591890120335266993433941510691818330239587150678658171050669600706835438796342203611213513183564978794640323031057019633980448578786917778349741779531982585549519944881188319865618175718339314193365653546931846511132808535703185375912075600925115887745373810914473142676750209859439933097147624692200553178648119219666154698967666989593168811531059379573629128127100794012070258538110070483472983493173722127750193402718836169683075045951798410068646174980935356731140000488917539827638757406923417953509054664305479187819203719303198810932211515184155620895388509577323343973743192211887266909458622444551977710193556659812421748519508358274882627323410941784175411880468446504695241015818152127600921372695630416087971135079822868151072743991664885058706574391300558936811120971952797930816023731442328670124107138463137003333728032690469665066933798741192425241780817178012879686292342823753231181935804356621138287487644273177138487053537539804341590317865337259922621725121206922152435040620619129728273269138315871918844696635828486999367327948191410290854650239782297174108205457541386058402991194370238943324912768968363453966516644603840126790325129319759132842418111418322304528054322594716368910662889862515645486075506928373067010581670284152287003537538611436920821949734322933557547839344012132041866277116350484245227296209002987697701344410480183719139598326223044404889517869747810820534003687392343654616009866475509805124870808469767932910339362119231738197437631480706272152312351143957472749490664037044107992150340516560994040710262875173008788939371975849717157662542924680170807286672507910068743354328324600230216637772013043945169340695336582015646476161410320636657299903297975918270960567255540198107129102845422309617164044943982383864628981236866784811968227486457344858639915148403765809358309846336363735396161065155537360900895022690553353836698911688290534705696513920251344822150563939393788929727637997321653492593965349980998053797638590211359955220381298659338033740986242985332354358776547689024528249648114027320235550083927139712892958823102844994958304057815622416625712628393920985366568688820689570487549481005400072413070133508652007369139588290722787676592736661624891533815708165686212685033253075071194106389408944758078633255384563825106429750302973529636172353205708107307106083748517504543659183777605344114636513238771819323487118257087352432253729983443199449430769547583980504011025578476511013738799009705847574691753387658920294829923957496408756803807328700691020007471237244314601507269090691548164980961067513624274320382170667542916691429254317182548571685388785859361080201650811213537366169222731923487652934622429806686272407713321824700333080803696179726777185919733726746815943644670014174996038359396033234382581396718878191290933480620909312557001830388698273581626671986525386323642176745374528040465824869426986051484252636990352356174926776939910210806475008031581580932226497338168833843936236157573756963728236353677380949389026489871380633129557195166856868919224927002311117244510565175730878053850487855386434722791628351510859231095525315971043312596939301779398830702385339394186643177081908808506883063712814139863121183192016624158701784904105590328972049729507290322700462550766035070412431464456743743765117936339077473124549435107279257872013950764254696781822877804225326366138623515222605634406288749773584868519217603712490074662642476326606058597876250207012396524375843987031071916754728311184600027656713898632495485663481427105391497631755474209249937426291287930633489811323111468623375764959945736641151090276763964434301998333113174616371706086069050789919592175074948537197404732175465139547295824460222394941915050300359219071379363097978586998280154746404437697394918269393998159086115017687804204324175679452194860436199604442922381471488330839913021207228700103919017156527388387508805948414420608506534170550605484536829957777076766694984304168177162292725958576269116109769231532881066812257252561459769081698655683248337408539042329385333877609837188624951977280906876295360763686091939715338090282364888332183122065297791457420990100134625345331412877691030793023116786912872516969427378924764944591262056056970343661920386413623568889658509525256033247063187228615379186554192301923002707311919466003121834806070435222301413381149800444875394081649259462940245467683623774459034602220640381835442551682190225121611487081631594460373743000673040246498516727469007024056877081593378148323296278353466264306074325015826941193511608821365609986091235849937992100303592162521807776164909970469822473731774440219422755060932124354439558247928200124744292372205494748588603418167221163783256307170070700569211673989381531921771238085494732204361906253009591548821262251669402879183487512203895179332030188032687690112789456022275126898121487830864964064128554974983350713467402098180253048865011199703030074819820424934821251087282078137137645011371303391442333412410818438939117765855670928471142523131056811832870327236756945784604186651965507046952874226960471899224843361489564041976210925265628939298590447869674997364006501903540140908993092211777149744125334708183512727573216963505905315564162210209108838747986217415712391879033066020503516962360708780963811154630924156034507996343662841524392068398464857966139539954040085992126336967682184674781525894285906235013783186037804950377387876320915773849397282831401358040000552029656805205606598995070792695880613834116912328327038207627777065264793279594723718995246796770107116541816723244451600419981647315780494957805962820095364815070272681316904325175621121775450990099076215837239161480021293040823702412908094903966606028660990682798501444258432539421107835173870152089178205557385364183028591839026248029815790542780161708899840760426373141383777690887420688633344530378436059317732160492401965658770794613341315946349571077764774488883873267874636017469762627896575387068071481399450414266885499839395985508331601606800584257880584291475187472811695188066359689465004382536023830765378926365595694576751225597497726218124266258746039271576100082769313398726339551567073467750359185549463603347116021007005665670537434273513786003180342266145010107959880461180482613609755869667490607232541287682031482015022983336969803251875068370669739666121991480530687207338114395958136174670689984498278674024634243197594538153506784538261134572554808509437388671115641439908764925179366378788797331227886316147076479724162556801342054691501565291449946806907453627081572226615493624871333673762429983515500263790956885073203399759888496096547771822837989394606137425886138118432252894285562181105312720190302467663851116453328818428338529979386777240728993649571918380004635922613678123408309566201179317593678780579879625445173000006882988717358411553880647515363322571019118290700566692201389959978083268909302857741668506243761932816123377347321593868080330127114181110932878859867706882630199433716317525641727755063002116026083503074113026064206878049963724298079794002656157809996759651409556494363124052079256159351283134532977244858124856321082550327144781436066919140282209339106142086636469203953034450330076794486371043230524836444438158957830003195177762010887602092965042695092626494512303236069521319916864303609600893066064435834836767905733737316342071450673067513422530614610063440541367919014766789703385581918989634433840262305532582535774474430129470077476579519594765548378265429489749979858895294143984366249973322035467636996455224636537026018200197873326963366972524514644496250266346641754314647108701528523965803957627655517799354177245679857412988732379973178788043891941680290345403328817277597217459615034235631954334574959644847797610418204466212861314305909778141843309018634885025657630428743419994000390402039597764741497803740237710615403676155706628968995308915425896374885690212923236916730339601714554427282619373492327270289670987865823487760652225028562155180064848888614341091041445314720870977719985276648423891835801415210671591944359073352520640363872925888100500232483383625119203860974864296720088699769413410549480913822432405387384903486653106775527821945334325413118433481926711043481931362960517443854810392957017616087476652283580224717781543208388933183477132105930688810718296107458414897399689402849310291368552235170667752829537233932838993933891631952340283793971789838282289739735452581290515444247912007356055272216874593045721311403513193716841109356720983124709394605398766109058490246641001041890421470041768678004667080828739507238471083430618329548171199384891820321269045070303708982854968219334978787002432133266543978327045662914437796444972834918254835139488728824647836909552476245323686460007797478470584493529888734617953098357012543334351954075086342639979636942884335849579839112069484449621405191673795062716673206750980392816582797307271617702745473187301536844904901694026941227898691993136125698081249730511331082880634024125275721106555370978595776502011149080700697208644981731309599191652705796380884804542854920821570388593623285877188689026897891470260725837845236781925080002700864923156920430580953214889717567944837998637215419138555577499771068731030557868768271453371478732127049381955701328780813645713257342450783675019747053423080938694146397542739478185514401969112772866659463868508073643829395298068665078531244227436730572429759024949359987936313446229084885320673404906208824934606224729639356418407387374740669704313107965449632389729158759285761140777892887601742211365329446960162278744536998640348965389621953154200918607004401213009870310952327205071573842138719745783599519389092142064940663860990565964358178802644059807186726869258423281624874383724722680576821707803682657535120645656873989611638990932974037787903398284757970555829447403931522650909661922325343088255737751482865178651974905935349511183894505640731067221410037871320398645547497195786081462661548830969774904279620713893880654386540176314015513548407612610969385187342373665071316767889111028174336992310729311730055769388798445685441732662988661427462008363402189817342700311999267257854011587166585723975148263131813959360144259610472124430561588414409597827067898377972981397505307763401979947101938626008545482194685025792050217232361152201285031926570969671405117015050562856294761763518799403239268671166679745904084488805203553430075690091627278220083896538320483755169881468328638775608191213834268859095719585658747127879847524691136240066449669339608803338926174217483038531733576179155189949516613890147520675479888821329422723709267185657149599355610723853656804744757209544592473336391971500556095035923851156699739153894705348539545019480244229604901671545186754638097450592604029166229148891719909884004203004453269529622726632700689023171585403780831030302781029927734482185286415619575958685733123264871357623013714893017365237921196343022583027407657303579998302295737285340127842730156101751392135010433910867229972670195073847986954005331402854107498337648820816054713867700287872588956150748614742535100834267008456114359177795121720115326402120258750351649421576577491213880031156153088861471690996343661891553658019169724295179872425796131296517809046811618673929887673081878560982104716997403278495746616624642108590841364411421349119951801994353844348045805652542173252174347885319763734703958449837197817057519167172616201106119422595761531065633373128372890465618442666710287893660652247556632696952467692026441504421044035721336033928843775378522250945579436679702384011439506751832247708863678455956220535164652421257717375296732998631396897185009493803602838807484857808884109048280766632087979479487002371037087867682448426456778468547776980203641285005657706961217915621562651993713274317876221104896315667442102392741888011871935302144362007401262171846546421203953010682223486683496669982774999548763117268103069993087250048162404555041310835025714228257253026485296590419971583755424243489235245347865800207146735243609759843571893537452233896438379240476737420231785847721578178144665760378384854403020739233309749470834620373573850428245083391920890673978907093038217154277612878686357591104357303091699513630918188009404352097878846346587223628150597128432910143223225433682830762565682204371704215814747100056681949157499019642501176309029496458669488717733571296769496944143064036406920174574827051308208348644392941675357710837241073471502085221632590821557155886804980411781105489034755351542894356064708998805690352020230572799891722247066344815822451019647010515264997863752234809969459163581051793888866576220004469386987748243898020752570259972325763261706060901693675455567154783368496205477501829763354668647096045638234537702143237660935131899871981300734785679183127696472153259182072104943105952713853861584738521799393756438359040868658056663425993995567387401924018861748388539763036073665481535863561085754735569593379103201245156043056320096807120724811879101339443258874177697828771127590760962525719751302984222080628029821723969540840161906786914621198916354787915681141670130367411651954764095380047424789121754841475083789461381122761382880595472384538233949117198254944173625110887122097523947747777969454994553112272219440402635321936481679175675840180711848070899812257264824656907644532989688035218682805439178249839725363100866253963804874374783005790064054959147500135178662755974889904464876286483542345221322848078730114449107175804920524660872278158273294513365508122306049940635703441074756169453531741412389109752749396081615262019109060616062645200615093881662233674483676377904267591949609350061023088624756483222685365962036494255374074094064912356518741701542117877903922034548746072106828310799573248303502454872323764083943250252537651637741374397951722565634943473928380795268390990354876777107673025892558063356541445592687331464406283984794381807786538724341958766537701305629547670065056786076254586672851115037411329298773068224327608553883920728728880764598182829159759409267271030301905045250480563952210538314578928599356998137869003336068895844916954205794181275622473231478785119099070309373773605761829147464385704997256919738434073269644423316829710438514729861928532052748587883797900930581248274351917180488143694206272983258406250737373755301498330552893662407462877074850498362751188122190053214804400521391433466111406436213094697436830367166585395627218887792914996028225171731311991811418524560582679323568036010067636635356693809476195322616241221179362271013741021720786570515707286517499609818744515950157143816200089763065260138111404376477187430856205739332579512117140455557870350972368880790377166657442965719222932473449764744258731466295920484719321008742740118910600974345294156944514039348878498204214872091310462384729329776567646058695118043445244207287766030845121412255710579203296353197445194159621895899900788522134485436312119077680152426182185136670892014937326927460356043979526733138575035105679806963994939168168044206405087936391852464609084051634026607409880571632017300426378789030167908827392886659501463983094327985434234474861617326143747081114925438245664136569445483214785789057838716827998895167695232559420605123307556983267416666332247407615615471104901667519379575578715669605047437157921280583370808152644575292255676315759664160417391865194626076660773968251613473535326936139535676044082372330592525128910931627137249718426209600018688728524480794448323946928538090354372187134579985944121330185373102306781759677017105656961642414843960461543153199561617408683351937393259573840079064069180631519107101335604117304610268858260843544778236653329408301322652894819526762257867921192452043443935113643777588431241735784875876471520905429302701607549187869090953732080215761400084827622974010716523692427393743923370963990351203180116890833143775903178707592344745683587870739060982048283060696390512658564790355262038859588245083031648239976524884246802144194831578731873508941862319868534646787735764161502093883627313485102656630108570473388250648562107698680030830529965315780378836519294021039668764645786410178716080347062987161228122674364770856769984032682167896944528877727381637770999880373294678655046179915546091642924408129918974693245575669282405303067501969222944370685502598122772109865938042357964436303549942587078075291241420079981212255138283114496556805011532604932728060065394395266931090374844864342294715735638362978450378481902093286754476452538645881406405527143243893981694829999905854906277248961626658248991376792440557059907150573445845490089955853152462017546374049064700839202330619441296380464054244604008194266702010329666685914053907382966334393787382150436716094523997436506836291826707211111173706442147323524709331178029219611568198721952379879911216574420170273702445899526633163874067325308837670928107822856740904786719466773853517065315253949953710117841443486699578850983627063331117675578917838969975153712619707253740495942399403520000682795979897414712789308390044685650162168016015842884408566056263991095150521399935498137706430036291388947630734063711613510323092694071253650511190622456508014936073209078375843712885353263157804640807256155520192268034021505902265173215213267339608055358071291298906784660094827354662703482539060058046795122120639144358869158038153743065599634698908869694311247816901129795903089854254778266511650557669214744866217306720587565251177301035167530415987732090532779561276470267291320770785148048631878237704065218910877802845282741682926967261831660201763249499436869888308351686374578603975072863241782620707280431903686054142247189012816001268685091585864718289952112388860384001845912714963952905582147502052665933274754565483520441792158735483756025821604884343300648530636182519727006320575862973909524434152088118606521211256826343460532821017225075587873334511461960292830902515090694689124529570470110104754664602495904172254937578390753160756076505740230915060757274723787070430123273009638899556265445766492369018859663206080817344746506931435772513071962663850072546358622433312019969174649915152766012196289159941425605131603444955133603742541257498041426595752979856598158115748161354858309105610788265644582821510917370668997336892197553076321877706243192275857899703130825735441161251619766844778772029696325440639876908382793162663325300509314525363958196224163924611220270502902964198876441468884267379745763583900828209261050815969615365982093700321813373403031355146632641575941756015814613057377048536621697934103642438446824749702423831673546970105522099319440961211014566207943505546807903919865198187611171502271270677120555068280596062435633816893567399769171837646237231105345103172583821732036780543174669266481711189846991749873234281541313750356694128708605763051953534431510479636663552693758625901108109457584307468075756503736986990260755290075540571532490097396597907685417159124269092274250599661891149265579065090952023683602594149622785613385993416434480403859104584569724675930426197113571419407212614133336334709063308072300364779458502108270254455412681778609924357900034036469241024449521739657020699315173373873924468939792880496399730173487503823903797528772562534350753890500746576155668998483360909384146949216203957244153690705887706605022978994808286388877099566987272401754852928707487649468210617886525845221465487076642932506546257151289525505034744125365807335189423142453929604204186657508252248119031997822914416364906797004605339668654437545284815658517265765960926510849930995497001944208621044160531879299195311946729112335761324714381001861731773989304666821287552849374791434317002028824869821028000085050724155661266506543670139180084905499344521847209224077611288158477981867845976606995074174125027168952138339265290788614748890105554822429310978713064997266057456063576507503541614576253595739616546109948345154593294583571752075555414265240461586785229695061779805066671727318175871271008392170743799338355934465533020377342743227142999371212497394852567662449751111047914053238595003480759378054878271653000571538845812367049619749595984057664921389227310876072162135936188630114329533084381544419524634255918084376411336555842523090681224284945774563174802960844241133687465309009516501075330410471399299130956965521759678294303061057118789806808442697720058997460319236882330546479942277111240764020188275885647830577271397060443355081467286123666202259262642785266684854393365664043160732356990430816542185430124267617412898710690800495723180419003795714958529076804331410188946562348666524224325857274884604395188842162194139128912032656922667951282612653719209535018364518092027441180979434150675497546398487025609958917739380371293439315717473887236545660454264899804315848450623090777037320225311619545148392015820066728579820672288873791595056303305154323520009607025695684810827948980591062909816216490112341333046796807764060089432988526815843979343937280616150945628894448411100696867877966545511308717032884930714959924448057303126337206437332901332207065013351827511083721862454530468414029528542722079422634277416889361467896856601568695673189019274568728272142231569723276293718149427146292369703225750443466987758182595871924292778027825590698070627516193137287263228398063813414422771612445462281661035796185510280555649271529631116789832182845277006490915294667164292575462748821871582358002867285508698843428396448688360638244440336320939418380554169749414045963223397268914881483847610670338774605090585200935032465278540363097435518743199280013139328264619269315004119373903213628654845340564692310430210582871947302297132532034358741846783363415170399867380327421727710316277357527545420359667527856978802580519594673735772672628432570130378640047796220799040206963142688518260680294164160430427665589516653764820155849651882890288579943127665771584771811973546597447181825402954498269372903517593278924574284607873453887613323394502618860714743653143643254185518772318834730446836325570055451434351077456725367562446943185902015504043612494343897664951804092330392997665539001682058348106457464693887986853281229027507607259636259974613167508567073026863479155697055170254936968755757235068420960777736864146664065204653015282375504530963640120614557248980142101982131875035512391471730498410767683673132468753298314993334079532848221767098598550693423968979162603012152532597395460674107093098318603705253587367678924324922939495342918370032642570530068514898604370208075595596319475143909984015937305902600049295958874684996964700449606290371089660767116684111213405685907262638913546291420906654302664955010452878204775832258472236497155297172190373652317829474368400699934394576838621628441583744801560644623266789881738958944365432519280026292091711518630934582360133343217320559541355060846844271262024919783824324629041097171724206708619454459137204266124375274324638493248659169375529814253931479897735285571094609729185283522947804152120044791699359521408082266683424963962088019580332584993946244860913532015190393385115969129842843062232505575250244989792496392356260722993321238837565036485247061557223130410776022012330891746775175570487255842315525151280051062461471775318680593616653366196144551488209056091192834430304960702576334335178556184135196465440654613015376496485695830093988203419866437922292009588787509143595089192816558563902193598044068297975353566523570401530481537386444227224639648186689625592432238382970295205218696964623709709076366169513313515588112784507050051216470620832276892467538628003186695103532793253428254598512281971011947104846591048975101085591253244065963098915511094970605374171838661205014174443254296741847421037471239754338458396700813396552660473282882051839627345501778204486220855925448537758115799665105369980666256423664574442348941988811629493438590143605868487842154863087127236183127867405775794833965224359004385689815866007466053018174712336394498483654494144617411245308022049172083268665569160815684210226651768107089220961422084326312432761338113291664484870336542567935344674980740462884700669424886845020229960806384702847207914134779090352068554417041771469168584546201574316811151305048975100739617372994560384462783694462423688467273295059595349558587398491278707747703884905521090615937056669307944582229171985434507623204396867228972780135113222754092923073254841694261770145019741968808197621184257353884199129677494816446195332618321238401974854769430938774968501795549338200129542492692683262787346607456006987922997932141049910817839484873735589065511492150139269414957387139965354603697903090807390084288512066185069319245726232988774726729445038241615927388032509747542180658746588456084437175169473383075761252595176257937345619593183243645543155047440187945479696507848225029424687251739235380809358887608521075201435740709527037140012285315467331680844169879630737813291515603005254053313991889614347523552409180489885620624793065326595051084971962242401883008917927678656807870647705053296011944681093856011276919179211680865025714346047819510122226669165159361244732728888199163406631276075211818869730722195785037539001770354437841887185760842216184444426375378942852601382459969753303679675184858738391919785950323075265779281310391034264642136907000434913934541451400678232034971872348766206673121163976306531949493611023258036296341853641860341985030246473438665506442781879164204665640780626199530061019026526184149390568899520315916932584239814952977442436089528873421783262157745593079082903285530584498925449193039957268307890773064689302441251738180074427633943556461009724991086592882818176211671983165648283000357671107153701256320099132621143668677457337302863592763441311985211817208373251499813510200242350815155983172161116815533509854954362079864158936590915263406969978430090139117210009868213228746772297753268045551152241468838597546229304891041573140626612639931432171662399917946192752442463385894829377863201181435833375764371477504685469415487964857823013984029488476637079402015315931512035981393750246940057268924566852714936682989116366348974005892932909651269489183729404020384923068598195221205776007013732582920605221515759657147627819785963833948190937497663754506199253840578454741454187902931096921210928502279001348047599807981991954722608264732363375082789685174919897001769143676934297645424342129337411827810504290023445944487843608291886314371551193793750558303444849313355449239098733457489517486812439004447470400851165314382399424958821757772285651313478999767018594048834202234671622014823934216760923716702586176037027347628039722035032963983102748528220017828520699532268205680941064255802479434514069234962289052851204380832690832560313603255637031152723120790701554226788550484012609871720041874486291455045821856069461939420656762005634016937719550355185542483319096773156043650128880499413301641030087525690617808123245370288365835039326339384698295887038381335170461077930612450789156576428977537508192037280642384881263462328431726238882174754505920270531179647784375733560816758785901613497485522086404438805409094318430661924998844317024947132037941682485797814398324484404793088359863317910901730837107365459168594654663461233856628719140730806751191162120297598319776201534948105053275727072671587206896884682771876367945957108575595705581820448962828681633919458638968417615677225288690277476234203169804438670124525277028560274862980300533826589016932884496340622533632623440182632957443741310404333173254875991183215659890726127245451193362295179288144658714378795707878365347275848338720321229908995641627686350938538074542903441325206536685787021049888196922450618194674017222516431465424018712926934165882475294739599640483624345610001059737271085322502050464846473173947510344241481984300483692695268949007606350143607898534992403697913409084448355049407729454278422155374212366520964051417202649492935262299923854174756584374095923396441247398723207815151816488708708757050197091767921522689525896182070318607615079823070129833825575358948954145608320597890619919165831827252093079323804718648889881387486227249865577591342398516271347609405761075236518606113956064086600028388932901143821241222850584893906881473947984903299820151493178813963804986147922995322965640840489566600575445166694924224006015464524078483091939225897372817560572643849855336440469947383863161627409412171417957574698881868864906218534175425475982585728435841306165376841712757275050975263078938248064026368572128119100587650767051258270805803433843511077701397156088137452486810560789956572312238908344618564015681590990616759337324103822437910204950457401812436553183917197599193569679016341544350212188889776189756256550519475198410253108263532555294979059956507917658654508284615207242617207823265401073675246470494688335144130874641989915323732456817973510279631163434648887120785286162319324422104962189919110555936973840273458010835615391020535207322233822308643651977420647984862528673385183984451407569375612010911411779446221566748786308234555545289029864066421312093416593205991668808473038140018601638176386615436931357228869491237181335936392331318479375965642428468926488801546531600052736571791391939929647801999012569726692996881278477595930076544148113814858474353428947629922619590175454941948412131710193336145467059445998052488881646079235505636377207732265720433421958494304350001673090189768512068849392145315103899061848052333122760946238022614735907524918359761013334585734892569084108924490778451474983276580271588972468122797767252980878119937880126710657707561928548355736610369127149021319714916171974332312011542917487478687741727587945334686521897379694298761680895264364240118848149816975454837746425321449996532714913293199150154848180851847517277563215888378062544657525974933834016403336874458647018202340728496461556953465730999453185867301556508445172405662677414234329379475573620531227743002101105411445393478378758001773356508089788266552665139767222845665256394588663930100098209054681951637408376639601889196322497322592870775958091480076210598643771789011595005401905219914994794282780642107365827498017246244501196454915664696495175030729707425530158796792805956182531778722610639760769039800152497136803148495958606338938033605373874518508212413647965438480031251286353750628310896445218219818399981454427399645685141662569349945233629271655447057800051364953147691972372606208240927981640849712140524238267331122964657801746034786987295057679573885334708628300344166374592456773405907380692145543323896353047714683387809471674316694338565693643832995662389053372482541731521149199538890761018981791948345572995478616085177947707686483852183346668866799497150684802626631419969819376367109169872766921620304708316940004154820243351422097325795420701489242501960351477166458535619288077097771906298040359387155792898874140303487431237083208505022754183348641738670653479647957912185479571807931976665459935824145457880326269274624514974106216942589034833364800797071210964208688834725772804505592372614105888555312091757664396833910298736546404637661541837016309970412904424140140899724752932419820863823203923405803060946178599113466373884406528019123025868974460295391669134153331279284659241306543308837831289249004132147355231351855696739135335833389817582247832597399209169014418925164494877685773733572501823762798149749554266590565688349246674390980906036034642410280446881961159137979107729774980800950711420317235837944222381802874196681686655801768428635241853999000648504181441153686949892281366142662901689770098808967744941310951533477927148586818709161798236070794647657457508619702797311320662179393504635620210137483097220421331100175679975720497584004354817296635046795616385501466082800747402380488993649261707903098674811285814898286778671787514443296438798877554738716248525299045858636760864814498394053829326566926860187949632031966276111070025302717282504460567629317616354386466441842232786965585476825762588375913447864284795649824168200159633848792043933394533515834770790399858268280845495433530631798626955837053666317022613798920556532433477782495450275554982778751554159792696174481188692796172396558763918721840952867194966669130780920130086918195313479749404350708803390159452340745918245492311934025111516579694924018996730318147880286159162532070293815387981999721438783887358981089742177673681944160810877669446406855620237374340603711137123058999751864252401320933567268378016997440389687358314901335967432175867252400591857156933818759521993130200027976665036457525942599444444483945088234648033726637694367787994879739831599629534764048087268889218925891627177099752950577370795565622502880764423631762047615771520317971268498651830906798215216435948357987989799107883807729351421191741681194561896132683282537094874661670771158911009295429384538271139644137645698252914107321814673827623363000273440343738189224445944466137121681333257365823964831462298858638806153309882118319250158267022487390981602213053893006699350283388475810917527876751640664940924688794797923584545108031548258544537056259863279457146873680735735675469547748028347214025123589419383267577753712371891894560654542716671164860059913690898027133282880921893030817173915407997886069097111732468020407605242509224881496618009423238244631129570270125672474605668169059791202122954495122411044829738029966283943702157206442448792259827545356462139333821441370846208962991217456860112240824892092122082739447450039284695456601884584651428426937431734151536450177465396157311311909918065780930589036206955730395413418064736047218389388184517717865420029581933371432380126995093065566601275565729702284135406062769407136354765606769107577933460196687633532619909695864527075773917835189129331133668529264325218272696471384275417988814495585745177791868365292501051125913865915048844932115496856670350802605887754776290400598344467793320302053215938477376731174124781778960317527349213495282828520482108521003883274743889309206005708606956765973616422450930797588474240088131179079740893483170624026228611375777265200796023170710548864900709779523907536334829725113032625090479300081914865887391850909907909967878724925162677993633803892701869962568263259063852827938846610491800946223972046688208735700041253440668817643512475009080669707979609168335540755760545912303178106238695289087880602216770577462562841819899062331329234579571832666685144703544121679966798594197911747262794700538307004056639441113943880617744880412006317510032506985120965259397111048128394294512281404950137392043855016246189515006876793196189346857731234411035310008001997966450014501759609005755210345189253383837549035505326036132823714377339837173989363377356776622259463926044775424571204821461678146453432667486227178322541534617800481286043496520267739123673396662840560860886945517139231587212666707854822726168522388891549485398955941226771876546926221317549214299973993431477511111500034076718575328823322269108395138414824980981672227732476613184165452657919527736336886391021742293613429657718214545658481355213784665373972491579529704109677477674356686786424313300051491234710701488548342245719450913669565897784829244650029176423333045167039237635264365066186663892825599141110630446685872203465422899875527207476454234079105153883486519267698895814514672642512001517881907690233164620447767132601423708619965816220222398020809853346589439284866683118447131507725179274359948455820589333731174654099416725385731006313850441525297230020308296233384933160818897038431286073420778009968845983743284566949794642208401204755504471681328698521131662385933570155438603208757299172320001138148824035695852711693955624944011286681819964440784857089755318304903773256680755460310891667173785822195066130855967411337001607364573821314376684355423793313412088736398049344260004030099737190695767650291361690374863941884848906619733942127729148675886067193517241955329298353952483116881805339850269032741430202097220434921235291551057268493561345730941154920852900514592740551739073525990775368173797132404198668927160263756838272817572650761192111619860424479482586725885060100094091917175447145988848799493094825658458987831674246735572083662519756624962237472430439489940276897363529213687684864780935569797847179717106187326258917287493199875947308863008581560170511817954832769080407695931778034498915583272636048496180229600529346736796379340953046186989875732807742791102696797665256383650447806514136837304262436567087903997005708701070377398734200389978902457778266433165242977398232175487216804506539435534352277348425909583801962612576235478488161896869063846759290585240704756200565085920192655793725608880264263569600192227461729897672708717137420027683873130588017422671658398289497663997083740843540804008406075264221245580245376708377600711905039727505113493010620677757629250776472899536346863760090367297008177332999386436175747574828405073774163109045340384470337513550046495236917829749850396950497723055248466321705813090965057794877549879813280514843345909118995856631835297243353962398611220728382693980353233444660030755381723969472434584647750072484780952996804764263432353418346362002750199933176373867215710367103743078085809005657196065116511764208347796029517393300911071369138186559869749725703000021085393105892628332706619008952445290001115046891203362936368430033202534250230110691799697628873566637892838667723996149036707105998021477707663564624277009006001293800944937461964134861228360011821510666350733394269953386539337777985916631697184245522875542373010187931702183524950723837287035105285374803382767534609865644438073966397948380171801448699201561403027752746138588554014850490509013063097702315923616204277214091114864451128092230242296165426141838690994530350896563908323818380275525685041458134020211129721854157132703138270849901039816821552688221899555508429564082662416966636781681423369871348655988192841143352356662259394132598133951814322829320650245324644301697301549870162811021416857227599855217875191443295878005461302840813161708120274519543754086544754109160943529971698393589619038691397435474451340563234533183724655987065607073027214408368975772638425879710572440913211684512966337995024233347609537649010740219879881242610254479039310022606886172967860919297411765014180470009701630580972782881992992199755223405209690011496093075983129579254232923535599166093830214577007996790439585084269937042483972700842413885588781665570058799124591305023559708028157062953651326478052172786748703082123547834128683769417228541197202379635964498436560745077664365100901759860012958455806798072085182296552914734267125501545550675074781151515887756919479029893596314875946430587487633671686589143721438172764373293182571627108915376825670252328237273126119624406506917277321029380982281082655200988927074805231998767088755088788985908487489821024207957253670050107095912861714494821408325574690603232592258113320141338170319230728697003142360675298087658455528035107875446949802070583883964120996525493429663026330992762465177952843832613078392742865579969446068947724875475298954061486619261653295734709424072590298772811792843262671981456236757797790851109095955636420798847599216820521524567568940323368943749096673063220522374841773187707851609647940776853057752796975763377276803912659315984433302931738356684309089951034721134274746400326045674843337462330719626290364199074882216641522746844816297385462066472465178652868280321918012458839303727891156379120774184281302889108743488828493541845527625334698428950648903691172605823349679689714307487310688793095548792865035427597312975620692898023326050531746641630001333145118015785734706347255953084649518260635901746923441067027395482145672606847197129383580098107609074701666490452137386805410279878240080773137866497810222863654680591939722040700057389876589591251679794757579178294625079054262791711679931825230176657994427127235297445838253342456512407800171503120476983140301359481030260650767346253367361555624485077429325066227318393773151398592926175526411547264501667367281628329183804589573082736477052755920055582301051264582893167870181042460615572489219156702212503448428854006596146519074922894700551892079202106039287782805913396254219626853817455265506570211888624769366982290744876601481209609138438800427490993363835549572655676598736402112927434717846947277839991384124810334374498958455075548343898058051867567935517999598984608757483100954336068491198690526438609836259822517040893364434270228405771156581252393462117665330936150873365679309444188736363332752935937912025629174621286654532054575191751064932761831342567307009275300590290646442786338410835611698229894207776172524410431889959363177357572644212118546469132157402516437759460146061037064618189229764635353643630744726933973371260952188778749627102006998897900897137173818717767222732749760602601696845868506023018420090685646703828580553046199466017618733726559450236292150156488501606348945555882094220474101638009113980607793179481039231099891133544287715283034243241274352604572170667203191540060647769140712856745494742538378996008813405927156110399941530392383514376801119083685438827474543940978314048764549694891396731675617854172420897047204933692377030071954507496059594201124500245065059712816316753185314265452921130524730377305347201156994507080614893716866021827115252208266178599088684070691619191286350164348368521583766466906865169008456244420363749776273268020227288602639851387071827200455463617293629800577711947995103103451187902650363927836051546100628156332011244682805523631209849681516041301547317231277389401326837751795722707285461011661917499691774026261093512245118078025899206945441245706634492213741758659742951587430102864067463067515608784653431032067660431574440313387403359375833121501966956623555360571862440688998286613727195988611253695985975640192190007240029121506319451194612862816595877948790294720802531925044075407545320500001408200683318013924980212373992476224988912895588160708785777588580730359003610475145024908012644560665167113969662454975018465136287297333293176666164009641228866244494193879667829640908533210052464841764001309198935458326731468248875357351606260974948341609740595818853123199520564504975298332478054034385553160506210097765154715539113314354508575497275690546100532234839764267459150715648446903907786014632098093706960280057757461127889895581892535656839228085238821897081549146802218752729421851284148530449977254687424163452716911087248422805347614455625988426270609588566304404086192001734290704903139630188448122044140261825964683463338056090862012495107640638265756621852514095507920503287533658684327450502037408294913137235039169548400580701540378514869510826177026803459552884601585873689151335805532332158161472460880145207640201411066163661050434592050761901898931964942585130307591953130898098710969718136196075934023118323154098938280423739199373208195341857906978693240370617232085118424497132180212966826265711439057505927204633785622466389294702706571906806410857755729866901782841256931643076469213322620554181332702941267111080285201935051954748893752184720938383030159340999435772084731596230549112326652172085258223038167269386589285708219976451487348416459036459608295826072828368440153132273180339761100986544542567545451711615481558839135385201428756587589474051563106860503052206878555701956940470568476159895679661699585476833388009230549957641557332011292969832086233353050713293435985937273923936239305211716636186972986203503753969543727515953934411631007021352814667257458560344495733934415763688646674140988949261233206168707035705541952861313945418843145887799648247134270434977021155692927484536200735469619304966991898595431497969084524091224511772284876138543969199813010336397039566352979184648383395186701702325675339684323716838572350383633012296815860318906709283700778843529537469329400305272227493387760768939157419407078684221809445996186732866323069952696763429944562047283207506346413924663720859007511766168747032169015079881194111513949307760158465210744894562378806571621195281217554742561960332709069919057446185632836629220746314728025710673744249914038804818272078357962794959991249990109081445624741419305341361053240548178774160136308857036522209760036627659684165707956106103232984546828009687188931952209012199281487542640122195892188656177075904861325840543083667859127040289175311574003243105851529402823800072196170285429413744888618101453690159772448243042385838527311184222308299103407218635587712350160362882557277343420156911251501941441664459617179741343985653456726789484689718838875582872447614805717113467803140229804742510277330597648106149623735643283029673979971405610689064349759986759833095708852701468448358426372592985357135977458276186104795170378749964765472959632961923588693922317712631775275432130781881914810325004302630864147352681248925563376814946892915950624196942498390050676040707207390242909651260431869890104065951276058455997630600295671955395119744822821277527108853302560495727003077763784322202404688246406773804700709915063118311078524746728748743198552998323680855887000721305523801912419480748527352187106517427871755773687667538630553952451037053106434896880884805754042403943876481009833506725761343345286954765320711554436950669478380794211914283566240569127091213976731688168377968444306146509385098541785808588722002969446291341128046040265550671987990608313986606743041344567712257833739305095410238122915551954930562661776199693965484772857411971560634140915837054568259270226675976025201441354586875275008374542548890851385972666889789467147483659952055512275373750526846419478495262236523186753507755128329634836336614475793839120193440023694888871881686918994029250720009684075153163994646601281476426442579853280021101292972881000789290501228638331160118304499831050671323711948428137005725660692334238247675976947225507922752437255824821455892043215109143610916291037185882155781774843270142460727581107817503166310489188034453203097250762733873452782277460545034776593376240257959146633038443739693478443053986314460788705279590760178290641078095649767036910257588665422006704780384125799052246941571049644675066972271679967769367358432002357243083739921017207359478617125102318789701897124862378667531166351827636294333551636760171908934481518885709400831415881779367318348661510031228681848409205315365044556535698648273541206578620883092544852662876216644369229532750205512448827995021188909104974735386759278634461665521679123084985009689000526088751425441525901887527369456043618608365915247691731967338193550045308487380625463776102531589082701394301647518204499036764941777566294916419681507429526271056279824452274076785567823318853646001378665475142544446045206068469034108741351007604969992766008533489571191338704853441435811564388174153885858923934168844523782510645499896613535773229930243650054436987592169062829429832429115315909930362139912676203506352218182653428115717551432289524577866921783031462448346887555373602493793181108039664552416539151552102837062827418725974926954951378137688129575969229783679480385888443490149907843261163858295738288573871745364622033958943507173888337566882003842256697679847089139264860997879131764170159170014620632770517250348318622989345404065372426842227616797365122860493292731073884972191343475000328788919270769867232381791017938043893867840561586633324155453095776789595274304449043730811173203133196750003264632022397464556730490910129018563591558218736872399900055677206928213893459718941772465090498604558354970592713172028378193369721490194274175000469363194313649523531996573323010204875445635311524084986448288052754631390257981924237851629455500675967622384482022841990160467153335098935092031360552165392748224453567717111297573512387633238419518538255444042771575507352904583291186248524774760496800454353381643149165969169359202625123953589238370728471543846969540693696187376152801010625042780531640190801298364182365399010090651073188486034605980562418127392537171570337881504626410491050016140420121741338280886553068059977880606330626534724138644836940096767062149529076857479315723395883291656236061752856361986071150602717672774724918552686859043261742750306127935122711458625473737831127260238968196788286048414050853821041572139614882431522153439971078764090177405076593001678170710565771596068990936693689690974107163093525796090706567594123909376024752737836488173801620010207855227115841626332132380018662382030636850378270097250683314736565803525303105085954484513920085457641573698739424363640301130272668056867805945679221189324180921885199515970472394800315399687543087003304310675386833557749421485985580470662059524652099450148283854830421795187851256119603955812396290589551532932907060851268740397725012450875099906390925624911896128969858100771960113749369970691543369692562042822816577821369463299169828049216904502446997693407489478374188168435316263277802640282027048951397101603709309912967273721073228090635978492819041831297164292839635334799446673490429496185742885653473385295131877921076601524323450166121996477901074862300233043605797543088044273789658947796146500627874435173284310966051839130731074009508773731796542908867120001061702459991015121136401771412096710668466444158452667672356677789574205159380698314365363753931834797624655498901078231964784770702993803725889645743440059551054259640120184373987216483481719272603488780753359322975379859096158105970475288912146257577227088108365565824614441185220454263868317534170723780873251621495990317288283916513365734324359022598582012196259096414389765037777758911675239811346144337679721604389902677876357582198312325429761882090446756229478559930770173599709362879603839783438997562131015242121848021036786214863055535489822158789476020008596680591491663147839920022616060326983494788721705222156212282682981877849308437708315460020213422055019904542823958550369198967783573605640680907330012668228113955429206601334494441268930007486001955847482342445563333908991852395528880153307297941873753045014294805783789212725793968789535463129039566616254207376757515723817921594324101368679816369147447157855888590492139917993158611062005911420764410195400122595941642359767106573595443898099620414486141347071072385108006026271549861511259077896328026404435599162234494076195912191192552566661489091654246991191296206217653594853872721299517612747016408591243407714890982885895666815697525049576078485269785302366266955516867072385417359916151440423278776960148353108040311629857025191894242587999310850265533496590124506246754980165907191367791642085911159361994350320597492925538668665878872209223812902712079154500693944595867588198204861582184695608853606156699778284611255317097650937813475006164838586977135889211212310875445412786724830698807643602402906322641077907660403390794285647349022485402003914963769035452946313421482770243396304293829103773980484198135132718422881510760083442956389138344595742948316813222201442629470637422068113225195011451828161438805343367268562659688508643468069356347618626018355310170491240884461910424003370402930893876877806488533990082472107526165324998969259475319171008568847588351692533632510614194222584127928709669871471963509619122225313480501849436006823284809491009123987246176404537479764130979544079862681947337066587340880779207305557758316397499754851603416489477573405858603218601845876727615320613217226041207874193780656805844661857868700492035689903067650382666002824511122848644386022845818949739224101078484821228394545123779731334795999102129090415608413893997251685220203770360599104250938765820157908112586653282401662463600697610322324008744433764873585566558003325726828850884522065415045718434912505518008713748525324022738173548561784799663994208268755501914417039277071202954152093241939940753384256499120892462967794178863190440860676197642131800795569267775953432092530746164989114564668610394239202246794129903584471767490433316898288255045687688041889796706547316256988738759048733615993936773522976890024198449190905709654429725058507319837510910630312744928119995419025278587245010864731159782154448294349434571427372246403863057949720933920001882514978931666428894320221317990901337404157479253865063375828059664638307268034161542573532245558236714294467358627133907721014487392964946095659040052437518650202622652589204375702816351523850981887719413349623155391609964122361695392038411249740860997348114266934399815702657102912735756910796231239558082295203003940134628060002273739016161663946012625513379072069850285898438628033950232673343275833618103376242940015793999201952881336202459059649466353082838287056245251223060436931958592355573064923619438031204032744390791826105033748515397822001577154877251892367848134125163089942985835346463261790027447556638000316915598662477309332042561057929569171675356689201588606906737621014991488571564719683748117262148781763307311514588219651368896890835135599388303695753693953197176722433443003322508324917381422733615115604900176126030552917390475828617814894837916031223917782987430263207282254899491364281915229379308430210317357063320302332449386992265465451243569142833217412456166778011190232259997219328717874288656875674732556274729322983488862169563447399398209237603256507770658205763227019507381316522173198488522881889688195866585212874474182990600739692481639298948130686814610076183350320917411887569031927346609718565592495471241415288982933811812767680688963676932746002620623058677819754559025026228089452700391522596447183943832276850984019390720902709521179058474886747812771131606977909051151216584707748042181647867715011170111748388487967865657480744522596819875156545567723163969807941787343585234169650873900150950264514196151251268980252150282340609487789777364142757254455382586570514291761438660496271687113693659416645646192210137798940206943142497974352624966373692351901037656688905724542869910881780565321914426455358046011677863914530320668562034335319787611418719140453360217184759745560736152532927122266162743428831526765628973088920094032823885915970207728033327178011979111663008888381059401828444831497057851990702794842603535442165222380797785424384341140882983575482247879284066529192206786556650989234077170369811291376783020867358721262913784862629308216244937425553060062425121932540377485218154751056282084716429766893871480261166779225305683332297417692138799530995625079566866428642068769236687035643793447986433389309314745308794466655844592026406603619459536821111633779793750045119267070697407039687022996485029078207729735167685135994913127850272794177142989549072334176479743603505075638948573683414643094671202673615270994111821846425449989759003541422534973550818998937939183040966302196423870762511057549563786322800181168031528134898967946815300902416478527593843802287559466521684586997860810643169448622763088845882460732202603079698879642087829894574767701324807509866440005110292943786181797736746515201126861264520580200902866255437087330164688841682690709714208262237311287406524976519062524631636346079586657010211051536779315590782068985089947085135530723991647502556558108746943952422921613215304274695266541971919889750913731996153622941584528659537560154620550085786459304486619969942962159705349088185160663346554144457549434798867104624273659339246035264083826666113586764403084953034882275349951662221343258151849794261616071390905433241672407889852586163066364582145288900143427104974437700873158466567261153754906783105707867382567179774671113589261047916659213592515838262165299471654811139548883006703123165103061646335612319830778231984542309964622642316087178031493210762171982327126950047638573637884157655368654329923552393959642265706476747602702975389805258109989332436308649590539568144545228195336833930451333609082138898750664564187733923694643238459181598464529870991081503425807547027947716721970056671901680474803717592373774294307753068646395198672928174866821539592617201061479726885198322959450959445447952779913006445686086273143644768595502153920589687312354661019040528563865825300671843622215835171253234383794578475475847537778112712090695740403082010789227997126958336464389095545032825501916373900880000179298266488174639507227513055753951259704873178464014634507102765941158337255111736864204576537520933460122991569261252281609606144841997497580491130740762622985531454091519384741765670550322599165417632752659282321497098284628453175645906982138432635607533224443264047734188337351799795921445138137230993247100664930649267790932631506449600648105547453038707954144158815452709770990823321155968346626182458150449177476429576725456578365870518854440811806113096717326317672943088161558232470179210076305009447517853797361314333791557170080769272987316183395489404584742822472854144874710435836702134651637443949825602782340215562772014881762904563278113954745271996542221356814443711370648270765225773960365047669805569463555728463148707392370277041640391109985023430247785181750757416155447007402669812159614054396625393983660896120006650110496224359361899461618779376047729774498168017718572709059353437583511595628846487869084729489511051215754411595501506844530481689942028608567186180128119225955686807098055828688247319665408207130340191387315292420142628175561585896237388885010806906870748911696762590554597995724367794429301589133805345541648860414381665578169312374014771189292930569911694705124522874103114231849305477398110072568850560293429129924506094340097475365165781816367784055633270415081275936614072736201702288052565564887086160096233017267270809906402606906028333867464299127202618324503266142816685307177995594408317128806610970522613644433193900579541860154129345841586016100132758393440189729275806532575536887574525893664754828087011407005710993226932423778989050277698430130064996006841638585336053771394969369671846013961059844801795625781451878687489101138329633773724444276823243579021738989090047574358380829940136461216551337667533334837120240371109967365616195454826312168207900805524829671525153910786972937281884066483183641229814293604308308793675002445469311929180322858440510488319356191290645583248018248025701099523205190444609749529301192717185719845125696988175343867895994551705406837228576845438710402344348381577418714481687924555800777645869479092432054694892995973112196032934850634670769328312725164547125483989537294105643858239972151987940259925885799882431054124681523271035848577362898551169802809928930142715352194971901760165874426726642758942297365063431454937829614176839317315579412059992699594657345450181613450892400529697257748499666807333723834485383592707898318159032606640347907825676800225484555831605043783980316481725820081933654215369364491367193120325990958521411300151098561692001448495815732420226708595142375155951508901072702383447971582219770316792764702767058911782022608885010445950026842692509182217156996539116181073703099174647759012622412460975071405371758302916078172726653070075659696274191094995949429298349224293799257377003156474591435336746962611007841598116396424047380759978011731639648858994690805202183957111030326980416085682300041193709172442146931535485017420556858124576646545800089028994931689540519180567226570107963520211330423474975876481430738195256926704038888193387920452193089031175939750216252755454232638733580991755318312050149772526160177515964018467964579173742566481055712641849687904248000681616469551390610669185921713191830881220483692590487570943232776011120289319511750700808318689561278731211566523828366928224393402762508456466865502253758319347582466551692325179924478685531484072451096229835834663517916181312436981602651915761559636485821736994787057134411033947781855939578732966665993684838402591103802756101560589629507568396056586369091677303123472041247954485447449393717219762969099669571776848164243696448328160015927524300545263970220305494492163205243962548114812870379158477888711224226036381267833817057348021862499448666967758787371278698870616114475761821914895813747184331853450793004761943590296565144886327707720686965630918235074258069962518491093700838840354640363931316881196035810414694119116892795817829565163085831558315560815790296023423733070100176332662281165156819874907193346489577193671682465528282193531670053415799392238806174849662167066101054098037022879610282201192051515650122597529814706965556799989020023353082546795963163757073713929269663289365413596281334390428971198975971628841255317806062044282291357576782741352394752512671316334792806801089979846246580556292291733586090702081308174769387982514293854750533576447907054003090511481932748363903539594982011113039130264178269507145113100211239119275467283475741267409814053931945419473836548488567522746291152665668706295135091156861471726428538753403079903508002961001320114144595316356047107940241896983632129155641329997657536121930265009432154380739120066258749029384828679106468503507033130433133728310478987091582028162273130565112892215683736717954945157712746073280604175960119483841416278113307200716320104953054331398724951214895003582910804752607129197455935585914644617321208216015091081001399326167720007643603191130810047225768053779608549850845988447531301394962842148835984739082320977350197876360798282860911551383262026480554049118133047624669236852941922581307862938216888189379053554056685938417038021701621900513989297244869465892728162120142505588796480983391112737736166436991909152489773976809064453327525996873157831122571966354217116508629335249861003140426196886082047410195962350510232392417846752286453175887753047889874581795113574278343109639450335028452816538279433566037440494714264764016029411550757261017535918059735495041556459278818321032302752071673371583593145828688501319720679297605469976091901201324137644466530321171198636441517587765543041036831153352664639189841811733734199567045552443827226907397449143210031678168807403039644816567780729369453851318922138998125633330394501439368596389757445156821057379553871345253610492591930330614978814442787155871504439492041805272442974533103380407816463000033256449465866925539337238091720213388873379431251745231450735678955485254038906523163638276298439780403953472175141775116660304240668403793497645449494144346986919618573018431766131369059176411071028245314192070636205674858562235871456364558761099853193765058206627301804347895938934784254728417958828731130720598134573280442018017796268745136378339885703610031884732024819213812940344427330357842843480063667087776456088190937615711541916058328430989220324276463753172968455242488748216441861933096690009387684949497106702579155026678405713652979585429543425897463537688828637134543197364471227544351589809806469613888763892971142551745809824584764354246473919984864260053649360235660701390303133934579751628593114556313062762147118955130719984985716005052461247439393371143274979688678105127983833460292304749911481960186535424339296778763448087768941905846960525566776904998508256713515184219661382434050840103050881157597675687369256184130927773908050488190790618160653879792264949227987840084337684431756045658051451796686201881873248925059328410776066520878235420570950484037026043168892369673940279050161657740460835730515592557462383065644545619654294639559905556666640067255134182716639111666575382410353300086203140961751572408705464303328908804645483093538447916532907702713236396966551385774163394406299367714517174736774834071563928702534119407602791188715471294867085045091133616345255856055504286331312697796961232678973937291988110560768485747572697653996667851976760722012547013673729275272706526840922968382361067391977955039602482831158281794510477425750299263124793570905576632427489165985784154791024895609772926732403222462797744406090636945064780118955545122832730134795087616730029996169628197535518723476711348002874273024114801250803790783505157316348722311024251477766705471686298579025618537105364135854009336420353427865941658732005070484592609003777844143331300176723727942952776475718551804628915839462872234611000314079486848090516951347906964239262081790873034875802841100775354601095391091190037510719329028347464789004608618425641983347775269239250360581581791299291588367505895236516973612082886671478827976603984870454635738679445550247781080897987813061625296764198883585749866774684405290938279307705052100607932493065594081719008825242038911618125065574891714829999630850333759597336618471472582760962372198111834886483786685912181195569079429337802645194738044025678780398892967437653599951004764726669088424527433558162487945071417045347142225167866985939031837337934501070073463077507506022079356869347556444113315553902650606620218236783920323509759378208038045067484974195025499674889679246480933118217738549600931271378956794694239311184408949715718474600584897883038375089024375290163035492656466482023119858200696950615171095860259883309884280451502024230904518199116870984531145510525620759139098435961282120065201908881074760100260041798740994394778477407700445127656652258704747021885928827219766978350380197151115631047516846277628785644562299040715973116644712064913283469850405696238240259853249439714600824058510998115299910095800369865468152498527466287746163162168320547736004838540873304557951924793693036687952674099530296620634647699823335144433298462106106725183394204264280353366843466376485131890809338109899617607855610418947039900521397731234622024802806367769367091338550246176584598540581340157001780776832610512035183984596852478375730249768879011882366555845289391675860720793217378215193223335806219088609213500019735595588217779189722834846164892768318861477461233904367342781251585423188950552106237027898289806386422031717578911406144846317695757767606151098594683557486728004784097130973823465911746907039091740836103605471035451655941252428625198582196452836909010398181511065571600920504287706484418936519725241130676148187859535810710311841872017397691947132905768225056184395205567221939570078269585274780678539036021202544782171852982200274473181574838260689180671999827287694709510832732145072241973134535263483876474090971117052654657986578287182583856575670764046342381611959089212072608936970883771788763798998211004769243781149800433764408208550077168669980596042803589626318578373941135309866073605037629291848537621045485025269000966507425556683759616771234042299113954475115914297307720949002405424216274511968142991542201495676987835340730188862063219306971909362066248435022094988828324551349680356671530850030192954789893809498125409983922188761350394709643668966873870381268225212021674746998624288236146497623309269296281634786659643286931177124437446274049612182891916293937071487602666121894019540979927611332780576614506365770565987347606380901357154621775390707445466650100459048541367896132374844886183947013643079413637827949223123238546958510887324072822354930253615482413308936676476375185841678180360717966898550062969586862902448313917336607976057590786437112981883627035654301837200012050452991236392464685800853629084138694338399175190311761735222558743643821180662926438628798072161999523928968332549749675095556882849026904651145007602341835959236388286985836057983770324922248314838261077308070892696870411121750887775774924224233342975990683014036955072601685011204654683530744622537486212306010415556169855103886385552331296940370748925801816864334854507596693460222423348309981799430801142163973177672974370187575196108451017556578555052616212637800019347938671491968733684866005653796102181899949793547785258273876559287313511225317363046983241153144151522390910360485352302315153025489257739058112136389611176589849591788907265613837362501746830932190297540234486904001715906269612518841823120265052430783016419360570657667887806886245050246440175607605029417783707479024334214846472533162336501458471154119570839544428710622006237810012983525201713368879745724704818681192511499355540504375957388315865305667767076836064115843769964578528458790358964365689908557673578012438980727794440803654193753825815240066567949326881476233445916595846914410561326758727329172059403385430966825471010448395941349551737384949759823103312840694943667961112152170363987286470543908991146040737797395508824107519522150532598576667179617754145192240406776355326535513650243795746612729415092089976524936610996417466417480478882598274326298055098755996541718637451090258416337470393663664488681550187835006498648736259186793294766877017906390136765653914453787863514049104789547381544001870517352557606564871626036282243506525310827645340138969932954278081591351727377058927812694429414121898502956626967000496051356572931018528694370995787126862499601105853535930696700890861553478265493321779032571833786597338345582031271877162398518935411193858475756083914039271783783732026749938034860593137424624324133063901027689394273767523394336048950377760920325623211671390549695608828571763870221419717994719607991522098849501346620213244054802530672120136328590277686179571910793353685743052712874887083854954789344075070924470801492839893145040741746035556273758567451586031238560242738009815713001266385361632135806877372900460499825189804815770856833547583169658899599843280327454557151319331644190217156121930582678148482040523877397650296591595192851164543679688905833179383191777930225256729572698138455083259814253256420527786709856329422202202651322025370457833528676254427800165347209835399456979793852893467792685475383980603602830781192929115280995093203892602318863988590278126851712093342432569875853120805498644847965223961765416150425713548988497845726919405152148227064574707354048274062153399442795664396069473802915688393257618834878055975868087302069215887154002336012177220071638941067265425487345676586162478249716028763666166420848580485861810234386279518496123305765213400518664393522416274062405306576405046825215358686666625041756711235560071940701814264241139732291691514673835571231276624978532064860174445748036590130854381518525058125306593615671331496019054007674803034678353520550514528011831094419199421057784071453679550790062124005566571680963190789859634250674903456440089601998823641102399215812175735077868199257057958965533303545310448548307958657124099540062664672431021505411042515964856473876349456882181905496663002083336979749937925842584204611872734319140164559266680518944084656730025797545081747668815020082321762860663150554287308619024980628791119834013601444241809118209872231354069536376151838715733101980807698923772637582709782560311937547651893061043155072947091168868050529460298062273303194269438213188402409546601475220330808375889195170233576675430314400170332976618263760312264881432621368312159868419077392890868742144002302350641667808152937578458810064896950198939787467690409211086836165070062259293169578077174568904553730386155108503374847436664203896384003510693246677204454884121635705390503589761045827056053941789963760731463425104528053972912847059509908038278424299288491595690130303880479613962886895199572812999875615478402370272649735058315299707318186626630140539067440645314940174387866948334656196651075724301428078916428270247694261313912634713276621140744887785151481798129367232520558724236039139291087627848864933888472163126451368082638222833602409559487948431422132106681274360627203546509912210773593836133935126293877444496500044859492229128549707787503720374811355378206650341434547241852038825468940455280694183236598643317773032968470742859155190432828418893966480360112883438274951890309646036920656298386556705781591802332483993674361377772963756508654119932895637151445010020496033554603787389093039906756515657772499895008703728750556701898900038551026609906267621746844592407141382687680171791482746809596430488022507890633126895238375795182481458459623330180159717119373751432183701735321541780228846238282235514411893661312346108145335677984342949569795644308051595564731595654587305205785648301138892999132796643047723821474602462765970785781211468744757463218660390790054396837646894919810646233638676459850750377531198951455784727029199054308399959725077219266165154400227738836644755070071747664977156142232110425553320042647194696562581195684398394219352070095807993228151891726345631909852766396219787786047684624643089944013767693672089913415492128059008689693359326421624314168828423168867323001477120117721594887006990411299342615481967859513068256254297478774745411116873472688941765986406215114329904142264401993627552929326228683963021152453219889722276596148425315050624920360351683765449457936698963725580574411647870604714565959637130772529076575460960680244948150476319608483761310139804315833247884757555931726573407912421342782781251190980107066903820753281181780942975277416309036309278907159686841309484445441349727375935808942862305054440406723014648309959671616862264352774373941088639261292508270002484231130826732272817600948922648042238531988181603025133965822408211530165882378119797751194979395574894668502828662571640979892069532521629495666150579197506569186548817678636195688618100796910575895112414728612783512602434653225279349052726074270037898159124558413285395717028533896298057324749527938916637515626103463307556546278693565531274185534340030833161002234116361928537744529455411223447506259376092704308547396471463324320857776812773845403167218286313641606653377070283584399633569430349242105028990226231753529884495480979515351177526479447462110939407789242859041751249983220056438984078042806835731164329973091671856948687365483379958166929458163978921646492268773291782885509769687946987688129719486383042082872627691451900516549617737631777222832529979085154438165087558859354759134986224967521360187928224453145972233683277951601129919321220993106906383625429557368174435627847279930411995056011906402614041469271466432771513905161541030785818914537851012388705141686211707623630627348082478621061209204330862004629946911150729768414692370506262524651760810522445792264656224718390570644291442273242190195905086053490189816397991542176847798890950048698610426478772688923651082673832284434715225242304775325036876237534416185843917144430926457055571158179226481662043907664560152208090250485401713831300318126812840939430460072368692593700626467807835586839243169307037402207751140360182598797847755361986374049017388722033829408692842054400502941045723264191701252339330817895383596545683642556224275081033271060616272599277926638814718096473568945706216522135255354350513351357590173717410992766843516470875526238573319691606637719118994767071549757139235627444071415973873904357877117000347176459662481620056840206143886636676504732774638352600236288042831301428488298339593361446540955787571690977568590949114732638975251049426767522465942974267516952257503837512320950563624152970979838908887943906896352498500892900633703235426786618502819312116322572134439385350046804196563970672480589319363511903307383103042627252530133366251796114859466176881032369818723018991722986084573822139839941579653701139338343881646759330019056789423941372108082633179673671106464649872973332803947296047084176563233662765588310609758122426648343449500259285593371233924453380357581539615960477147635854512338277221341517104808162323261741425766144681445565172939181316782862359497109824855882277526955173990005506948670032159500000341362327780581279260101844131261304910531687168467321315581536933777736880811485280950181752756676811065911847376616006669856116060974722154083533952570385739192906674509192736657728085062298129780400779822060469864574518873135673307601762029986340818902784696877606378496951879946462351241162894632481677808876141745014065776559024884680889477473037953111231657714593945068534377336439210735284014124952944583345455956362201990438487100939215000387327981320198506998773552834929410027265218764377237904014751324653548426604692497010985024149484267716878506594064038423179820855718595389574069817837204546676797921444507378240907571033803407189322518409399839813456014311251018665710545401975661089005218878928707765622624248035679567671219357354566954380424220502391381558186003029271174694921107438066184295145363488697298044155612695695124859819769057329248414120078065369172146891701669928331436492747478093717198857179694870229637837016494487685014349802198479308791309129558723348900483219651409441297504352899796635163663101728255949602033418652252710123814317271542943336137704856487393519767212776550339360972819776306011030864165841811288845723299118944477916785828494345644338242778119300979789722707665018671885269812144870585339582329029568911749758609681727342037329601892351891779972886645751408985874907397146069212548908792156568411323313346325279897760207456434336163355035061256876498044294443776010922184157349826150615817241251334842658843747565384371274604280803204539828955321384284387677453649727760777919405414861372023055586773719501134107244380571622487402053219942124219296761036688173189898120283615638247314957459524717541356390062020657107334041658767652619542309176273135921754418226412416975952317157531763783722015107199637343745116276480468586348033699936517853642225285581136722939379631383734405142749134530862679842512937809094493676791424170310080195237773258463449257129310365926396199220479737898097522447748842234334693895811052227553369424089233723649550711098626529464292816118385225365797787100478420180034482215365349162275867008925643278257989830625820708925646271666247865274865935901906332283169969109664677914092165891566145837064567414009910957312137300617964891825501762597062346587663480113553940337273908750325917530251683712655372069145574255812401964862081181577213132943575932736104518485573185169587304145199676299059887554697010755820739682284960943540944715161684876536762357540060542666191538074005725076745672298785282151118761202406791021425911758176474063597666371038385901268016012910904015301851748250238819913841211402104816824799914327864101126815418158445789785740750005879023285262309650796259028613600847551082418800250035653983500972613186407055301905837389427258724101263821954362746673544544675285516448650341785187237547077067459477490131201645020914290663721372739897236774950532471866952141600648344348540547291266509954856458542936082967100676192607823478839292460478529498272817102876086266693236631299030826226029979061882886648139334393815644064097901683486779863894483652121198700531623500821938918114889645941226497980135341425828805732328297643552236198792293330641344164441899745157094752493019079658708120947529906082774498033740789071375279453791359132437319294646797214813665297070117940766198331932474454557096479891721209391436941224028763654597734854742058482251323577271177930458922005269660175060599517016427302431512067164803553844242734285516442728697581089008858886746384513030258995237097065756484211423948527477210352140974385010712570300334146190675033442716727458082640461597477666640542882988578004903986474948022710127212946707457565335744602805936127585936004934817314009809784649404781338472857851995514071165674024671019530342733985456840677074580670829241836274714608363477607207387797124306110630218741882759655004037421224867858230740648521814209197999274605225551542118870864920052690532327413709420048945874923008346562021972024294561704472948319763629909918543824600713712060217613954893000211638928393090191889079958576648912759168541794728845011008647415763124831081167612315205642430270670818017503526623047680697164518926687850503223366535669566714433598100173158354915195774257100300186691586432432302756337474319437785146403586750187749122507884557306288759026534115160732496231113708004373521103158288716450363913991443551790421538066461475341160576819903379579398971379035954923112017024192872911514243626709950804825491469230870341886472375824388918551286371906808522830206743528012945545133936973976536900384448800549415420336306705269264449180267311580636442089331320844752984725815855405133182496481153380022374627891417052013698731112614928790686222381534162441446008785752861225073662079009839363785308101768001814894456346186757970710390339825212055241991073866964878608630338570001792592788444690388964010469944750680989669493550648555519997383770687921178043834846307143079585233213826985769392615071009048863261046972085606051182643393877509154156985012393582922231738624447006842953434241962197240781526753784558657195715914362855676926148671367739322117315139528234013773635848604244423981336382763992643695868162295058813026436331217580551914272841708843167499587802255749639194666123300134450076755961723976180937098911253131239556904609883721936659338493876693504674800698647623786301948861691801148457634873459579982316434630300815806274176216972330467675717152260303261374420303578029956176115883369071391378825459893322982022733463844451889003463216105485583803939855100811237687862246969366285079526408717927710680149263668260938519798642124140748735302547635262207605180828397683416705627152056152972543815951459260946771429886705819917678509364500092227727573034221556002742129127270726351411489692009264359458156503598888892476817194626410187358556813906763153580568813958825531078875291609244770983311509016338285824561581294154991841105553801217843679362826251288068430090975636075350163419990881878508730519298899782720230890255576941699939051940380277271635894940193904002948698132358999477192030728543060756933740131027351440320633747065972584979345687930672531325242979962320056028771628019175263922229311986395448367086886334368637415119408667406660113573324008814659615173778557730658218375484265795544360662813325819331290533966594686165135558249565977736352444212928292439065928582920757219566302533984645205213985008614306375931637879508196321454793459001860363796863214623077563137150550452949247854948627974683915373518950429276965323495353478003683792714117871154794280821267391608923025324124403469678580440756303558895332179036966057876988380246491314294351774288105992645056390463976574613072341638373238690043302591832104119370997200211954217589498036225633242524556802945093638248457513998053819413909937733506514643206194737110294479305821723510666448034556529569411905889611639011567030078265969306880676695840738891452277881033749020911186086161938733756808421683367477220455445703324874775597432167908816758111954004269740838451324781917623883155364576464817594365768519056827453904945181350917566019095285226800537472698263304586573943699463570183189983800959144476181122444835832220853954684365094645331312534561114068634243476991389388764166380728562221473594850526728698763889061075642376976676552280289784017167457110327694202667651685922740530126967050722690693896275771155302540684892099216649192307649856826134675849272071636060547388766045509715406446488762319887505487651059675535146993274488752649389779020758978392290485320979813501626706265124454113090598742275749110155071905035013014417797941388088326007209722643052911022092729171528816972196374660362602455702170245372783575589726882076497852662430391647621175314602541943832130818748032349136561826230878301192868114140824789845238914927392093378698562314136332512343166279746039792008228659629686192186994403019573594913778767681412359419017752879020042470447405861610597459543696066791336008724445547636963432816742167233263798292001205265698136246781133593758287856709200903433019455107943121907846431341074624850635434363713544509486128126578049308570151203199230657937470065618309562348634592245493074333229104704960132403025078941992046854996660035832129398945361788230657177616225052068395066960285170386660596774959068873989221664843618833123153716974023397980335687297810709185578936221364906742536234097322253507149367822429866000848529680281618527086298076408865300784736037258265376900136869446558887608873492429978634787348272590595429238234939315343782949821377735911326734476872997125118361623511447359419325822451563458236894578083790495624940034305179199798749216402225128207651249274453181383692552250125713626556383688500845314849280034263105862552410505479818374373136472581004997409409012211274128345539078421009616583030978710540963050783885100337705491372212802867229516244414477652932758478008165020493495979945153029737980839931320662834868491181820162955624250926513788927147615116048064182886431514384384954612475543818012871402647431389979945047338150886422473810190238070354695365779539700133934471184131192442367228198169511651801445327889381916134144569138439589632662035131264043675077336454673219833014412033415805877969095394293585762926616279015783420178128856248366742531945761686654921434095554001646101048764910457990263385150326370184200877685893467956999461878886119757709750786019383671184298160147720899846080557134807602570167484371847503986684254694210197408914032086962150488473495766051874760554174916994152174113853447565675477916673228168082827201707391949509112913760838668542674473858239732220204462755619197625060546070167368731298127655143432252775926005076468079390057750254497867678761564722173608791668290606767723850222045925635407104886449591438086083043799299396205042780380198178030301237927022742862766578095329138067680486938381659927251358210623714890270636059828751335554121141633357228880222027011536554756277549456144092479574169330037215687538888803089916811009354839551271165138616331760589734690303775742508639528764550417636434154353105184779453172844789570482100055989154834442369614132629100624607234403240290127493306587960367107620095956157600772311865648115039113863700190932088169903880283995181632659929924598515638647570726754861434254703869449416780451945964672025358357642716383474874536782053469581820096556619955914997622443775637883721938410955399941388495985766064501556138450464961496567049634711700082875671966111915616805288644418439412041320235628559984089093722792239431167844749915336376212876768425682647901970012839775376873878391386121832995923286238175853511052060823072274170667755916135821537221089621775950736258418596016159262347026292273838226214348589548804006169420285041956753424151492984621471437268539569847644633643122382595984105109728375011902092165122131109080056999642709354581956713315234239815030470891776148182703477381147012684077425896083599874850635008951464740557186815322122033400740781563623263516993416790546875596361738633360933269876472160873840074997498244410855102066487653433224027778220209549301864360721146771172911434104916165833655764739178070222782341903438706872373468498419555290643487379436576909036634604228880745326355476544915749668020973756110966960119066707905024842939659915206055685317532793936558347844959660174454414779056120752756779946206211988998202761794248197446608637266907204113882303748368942304557295372177493197681937671450134482574872208675493884658855354438242732583489109936219142144803175036985909479252635300995379817561045137915992894758343931869853420712054318485980382410106694300403660673460623938464574767586920611840927097962612175784758998893260238464858162724401291957086172254965550560696461712316587882837056425422933288986953137870261429881346176909510286487071641842475432445417937625610118709307226205450027461732819333591084494961592627383774779363954658395085395038888193391376001401103761644008141684457457359021343605707958287325944632356380913929928333248404946907759656373497588270814033271861059566803567318570579660676999251264593015445071348698043663044579038692304905752897477100901209326355843496027422146188776043640831569474763098990107098816531122412282401548467621301157971160765853637484198034257912011336811492888749131537039214577589970997698157696715126577152061465391537002679197143874860003889358453028280451050743953998796605905868955450270122270239441981845855900624479898957734378528649961909894977491236491448989154792756225427236991935582752243542483132892183141807440316144381059645540377918538583026290114408272130280277466496858237875070318710797384742632566113485493362898996308517302131762007750807918760322083192705657123255610850619081233327112835024470794410359010542781290661257279522654101768587758558682839992682395195046012226989639860097589869368880632751232674699891587791735442747320885916349997881714493177830605585021586114528699868864940141740830564708505873841325947010302382936430934047127299959827992097801017192107129548483733849061447510312147422501558083758470077723374120852448616907965588639281133336456241689642725161649068057884149443158470707971186609418271741751657912152971782345201950537964995385686854293081691004371950815062445670267906292074629400812199741329353815034246911861307602322742846000034283847535931701521486590956394143180294619436736555099962689418800520674444078059087528076042980399609788726348342104199903012384072367383534606086056481829062304532227824926651814245092072550416364403823815238805893753510212979448953784915738998030262111344180539707407698708408414126254592492875951141143180936050180312488419682158562549855610096600705091750364655568121586240550092119747018639302225998040982548436000476670511264173962722177801221788122228992773364750440571112244142270185221233294525994965081006426688931520572860679925204164537902199552340755743108295847929800013186010897131765938343689667217205326570558456661900595491256370675360838250065653555148508707952733976515779239034183877545438206805468331098538539344043374330985210047957073877826397941419369931582639114301327164666198285465434210002779901112175472050339991931426896510528497252964733706249301262684810402409109662293871089264197940904073428787329518663837369510394236303644625449779296829571857241849974930120117500521310383892799761561660889407923286951039451443541014320708010419213246729730588674504649620302543741394908311179097176325042839303262987112564617909252477177601248923126415083498477559321195183838081463615462824702123103846884940312775242636566677139750393484906219480104494799039034124567037171531698274088519687663780018306989426928007007175779646493502372089429082225367825637947237206585272266310150359534519654826309211599573316752309699136389196375980495107812665536768875820500650593180668514262636169225465927589871693254645695041587023630441742651055231550621308028229181363620996596622673392975903931293918725920392207491172061915857791325848145579210788874233266947876530751077233674375019132500034458141214597869963928665231967918055502623902047231021100225810029760910310830615781047165749899416212488801116152566399409037095279035241800731092277020468056073092983095133594661260350417359398268787446414245830429135746051328197539379587650940649723608975136242016258513488962452613195845936306417160148176147500002489514009060800039347812724737695661053569140352161848165789034645903630473383376070706278737569294037790736103145837786534407512370765648899608968393259412784273930336049580978370698976341059128844572134738873641319217456721925409256931991363760080370819749702269275089787540252609613797261870888120723522937165712295382558518301832407503124780241702649692484580011763405610476453137553718952301607112751378737167348264983513706567222125535152973582032611471029415646236644529656168491450184842799509303975857662693343514930434149002100043756861349159845654954446009648112890886318706907722799306267564590067888757866195749038220867338140999933290319550034123137227394492437956993324693961922950988354120168882582431990366696665371702701797040676476259840220689069798772121991532215475304621993625969378162820906320249143257330048823315674411214887349620975797876796248773966487711029005182483695101452769101314457909367434872718405704336938494926884665145251195151910595185884701623032688729866941725096883092164122801809305968232692798253320243155465649472937518709964482317191041874061360263760980660086468954852129757303955161953048758529177528923810900898222313945845531323987617981114175604066704764981366498689220167455070994753318422894721359922172826805466650392610403734216763560543862136004410768160926278017493055120173158107051702595826968285159293460768277079253894799079815887228140485322007900233835708487543486096229249230434709668547401262402969717597298605688475716892051542298213262854143427084617283056473138622425303643372232454949027936976480689778181154549910698399618201086484282802772888542323457092670538915061076562825702701030519600106445401623308368799415871155881295308850413392532063883628545389608161325647560138307275814457849441273725328514255247051975411187180559893561794654317308323470473002304685843151051987838442926276364010458086491563858875922644171894981309885731944469627651584306456186410473029701088466822250357231312077753914367280663538364855087165278557589782201946158720107952258873404324692747550125285554469304510851885672352110051395699545086022957156954273861718818782193587985201201642605659466896502809920478597473745235065211117928506227439509218673950785867632919506876166012838245579441068386514941713144142904812666075296599996616145337553393324156966267120002486896628738563374256386575588843863798207616595705386963388398518924869533560425689963425162440041196278060428108986825973135999791724713283209562419009722045490937917480302599541326299481795442658795102035435651951722880349508844173046029638758616223424445843564391601424714497677709822443033909922037014798303614508818264834266750323589759956795907743541903487500543984853016220730652999819511169690373565397649686374953881660094859049517039032042449850292660575905500107037308302450863249388610469530957061934549050339156216808946640286258177457472026992525547351181482493208785664900489133241319036786757214022410108105831963499225256621769070911922071288371643301771932276086923227950609369988508315477607540232908900154870991652582187602334359895978592893625783364533985101359582218412094286506324363178796830144568415617229670227182536795974270345859289463514666638634289504063968711491737680960317064456958018783296327205700608354467846425304582858557538963547805104670677862719290599730587169203605798055941071929143605578159347873471169385507986086548600958652052168406754981928567313724918045007656102531272032445180338493670912056191488767639213537258802553683214646131825204681026562429943311698715503690656811305379612717974714653957331609618056317225860897990151033525984137859626608068911758735634622771279511992836495664431700863982586746165669169506341368672090133158551072767625812199948917721866568981692764065208967379011561522886969730081192929275764129982271238740121883355740258721527959599741895333844966843382307794899722422059263231644753116060569791686862684753468648161026405287377042988811804018267389353753993813807094629173532722950870373919468184733781797372225761310030129199505941310030949616693037021848016121754176910740368598036480915876662999273148438886428578052185507984827982362218813534338237823216366607845536252749403175400206428569400171975527196671894224717847079604287452031235730594894755009581401041110476685182135392087832341893585627841042269623974207504482798743131763953150899443806688103267783029410482515368005530406682364884707884135218454015765391289615990763580402280523335961944152363500698739401447176543035911755573977363938276920556816402844269313287278940587806156402969177278461337869145423797519210276998867680178171914715610795661042674923962942680106914707213069609128180144650472701732972694718406427334923798922147437628432657023111746942009839014887439639718454651683305534423693887731813784826645083071896024174159771153072293552054348572001674633466601185790982621943076695722226130136290395584780756829716497960591531666319762695422647762294106215016775397851865632614924692428917594931590028519990002641819988930084459844997754885436946317521537349613360299557839331514863700373486801143973675750848602180930024600124907708280653864090656510436130332371498510672057422134091792760159899967895630059420703951061233870442368739492081486119652267184278212572138304223936477470746698913528393662684669254758747139342407863920349919392331795154736612740239668259686145867616738835703194199611265218086580000431601792313872618428868586344350615502068216893374470643543636185724834551609594341227139695994628146971366732646577496763707517947735721115941794013078155445943426238796018297493104570734632915460331875964769788387618312765943872319535847091442720073671664182741319602190244874264582877991023273121387766095811115293583736020765237057402352672278348497132746975458277440783771767401770516833955440137475655771988005685728414360808666303473619487930506657527803609956770254350269299983663941897380758949467779349064831365030309415603939845415825075708842500071044549731014363407992140525452616688894681479869015083776736274630303257329729553545006592753715887039163832554225038109333772006573849316192021889222795793803832372173611024922008607104625456417434644165265881404324827708833941882201019836359350678758491020865415441889024166319147914734880682097221670761037351992001399111543626682878914721978436971717989527384966200288397806090519221152354974965742991465200887569815445606975631220500289794597742939580776560875505317259641812994937512515894514605292620553141316338310439569234904332921042477005727059724977824086845204419794566545301264089987295022775815965417071287985005833289066409581966399755777752118370662455455677724678423822911911884323688739422768832446211596497962600150739353437418012128455327488242063613402807894426259268245977943250181701904339033159685012345427894831372470735891804340699562451290055965766336239521726901298882814176265961081974782493665157763212857933143110526847396447079238893749583065965225477934948960996760636867174452608211028102854132267427982126642671150445095290164954337354064340019060214969547543328680368872083163787838155500458675178369328954078653714539835580087458457342923942079629717438041347192574818802284083064706625093820062828862354004654299804620196440875266497641469290180164069296268258698757448659885788666901951789326821533900992705656559676129794715843894126434394247921696356195632580829248560139188779041244429461376808271161281926174490689869926349038964687629290509337694730727282415950385462682696704101915907262518454806523877949317239414873921705131066841748570673657107406330344642625711826291021410407271916182115018892395362832356871120080542524627632613798841893726940763519035457494697006776857824163400415139942848926620665081032634117523812761422974241610608766386412290452737951579032621994365033899929648073234269569637467751984596901154254300747067354593486205030892169911564236554046691483066176164162615377525404136650139907477205653075711009576861220454013710860450303616630621783241375381492923211713383096806725195766179995790046229436540259076590717286581782912628397696271065632960870427008623364613063331904621256538082505674522833278077022368692646675566524323277582394604157773753605672481337797094280150844691825014619593973746581867535176329757512472869378432946453804790401475148045355660920510138156789650341525355140445610801610439349460271090165045023179499388535723733536923118569596831870116455309579742292910617239333466392310374363088606710096635998430622059517769766497955474542956239723077055876622014856660905567870372123682721205575965801950065270444986037619377721024941461026998164924970224862668055990550410147494801621668656266434582117342830351817341486101281855488927555482875350988648148186977634807431828735007610355100954270927262360910719612806153492031920343952880611206730306648027621885283792563205688033361915832202201940682425635768052738026860782521684527539826172541281359031791719840832200323438974301046170972201425630944794120328256885541372682943383525407874876067409523154466874534017082660060498015350521082435154699494717993293187324451017176274585413106739856790425990212305250125687481603636389371872349015873720082621356037757319059294689707464867832513481640197758467405873148365261202849017200873368868829409880441628636257609512750966949797283303631167723332430773804210424025106330699876395657104711834749064476947683077712593373842907851294328778371254125372577899402838949847744571368081890720493226289815301649049935081532890941853732933319167913284556146748573470471315395975204068489955074785204363038191982788520142184173931643074060636262793943935032482732165957440588414498495736112799515384057925531572163453003926218981053754969766025859392739478537509848946302022736732872628031613473432379375637522331607068686701830896393606788467285474542970133153931112365007512801471048353255979233882471338271230857314861234299209010990951657671714369838523883272129654672624806230849478426401206146763422192954089914479914231987403957886746544831168779233707841065250005358297668286963232679580101110356801489325357255988246773573789861405215766729785883631432404187358276620778883100784892920834662120094284568907233686001982220002368930708546226163042922901104073902389511982181229549862129284589445857749775877807149153985160433456407988183374907677401388919875777781057828308942762119643698217472690389646284356780136226975892166425687705645708140664434977891946797776644323177659082115976361636710017460900331962749797265021291362546264163632577115740553407734310846659655259002048755676181452616174919503609970651320617957985592488217832616304788909549361772957255196282741891585966008983877089503590010861150029851166179675858130370028783585762861042295972973653087311752084197664156879576246324901043973375793122113987522582914650362042338976336898833834659424656470869977336074715395695831907065389804902799013594506451909200218997984694944709260989370876225331682231383934501798755860768837433370131470659781234454453407922288037626249094087891810314668644343953006046285637370981063091435162412808885124098647840300528001189429498443303914279398415934298833508486259454516949384450712951471477777612227175916465830707792498993416734645239595303106830735977239712710703880006644707838787391766472992610792197210597907603847162177307709494403180370791337510578765219484108568651440433476726111393785623861764412147564605623337012417242709939504240119038459427325132127990316713871709385793124979821636199414339173101968072772953275311891570263968889219443895959968364837607987808647104741851834366311162005319493182050763897598665958227723802276809537859150895171906759464840223858350319807207261803701089992045705386758787473909725619373020218653499120327458129107763209141813716283696849101934349777870710004051179634523904803189321677912006962986164347055678085333865763256944195157132823414401231521478976220343034577634764074833554387972410420436784445290162473924185840271082525173241021299520381724902629175795830687414869303407434117446477521667190579538965339358917987142266600513197745576255967987792089110031116843810495752962067505695061660563736306892887046077246556007383850740830486920148186838691330799600755009123974222312649940789090651638066878954652252887531795016570195363881336859201450771548488401623885222774855057899786385377493889257698442154005493449228262202269939183333848899041005011150176460930870294755805401599302297285757039066468242249937253717871500924728147491610209066494246033297926409249652838869105770370496287099756940729195078627050327156396115667826129493087686434349878968776550532876327105988068018528126183320266515316359537169499853156481602149914460411340504330939547732553086033217102812931280647303728082058124514715434443169194035775649828502685535406276672784563279813985470046446556584059761571394793584347835751912389499997253616319041913102454262809869588558708018812343522224402888178577024277644322700875897121182947585605839056832360462298157389546265125036582104284484672976749964551069883890979775831933409443509266042786933842204145019081622384722042890558679256372872947962885919807003655289935184707001376478928686260223189789106872489410368728815915644428676158490029973174529774227623604545063653415887810844099201350861892225946936053926893429939074587009710938689413723157693488025961644489681797903878229783603866290125456429700558123415094728233257699777169950107297436265492261246923954867613205839061841916080289810596505251948928855633722889230750243378679309587621105250715487266617365837819592642613439169874082353847758865578625863539684557786153451401339809524834823812708514477018730833526147344521798967074878501533964570606018178132869734445898441918914361052436465436221679618839606112255516656464125723635987589491829458265519796987771984266800865546094784746025882608252182899550771236010603183570916174069372467637481622080522390776013875096435445212020279421270688234946550723162837136450897661379448837772409836131970993767875658336961683256029903509500273230889505609024469512773025806922740370090299899535871389281214247198227759844081894455889156357469042004676222227621601160835542152347518033701269473232314821982866673337866902507015068244810490761789647611650210876200803375749827967066357291014477626585282515186728605168943888009914894946835820528633759034992951071091265660211474846452660490033651604159159093537037665564362535141789774291436580319960054846045216551078905296699031866576806491357237089159185897045462070443655187452283600623509575087459880790045735101221327323948598766120224816423284588075853467912862405534384422480957780805655734671842649250791226161700589078824261887729817532541646489798650572253298367074084726968790820852545249223397333454754535565817457899200168378943771048224868324879013466422193285755733811805196043125665067963990493156696434476677662540266681602316591648747378909371039854187017465155406916004437608131927659654279598189452468917751024490794335845234958568590912828480948868650617261603501241796018139772420709465516448422444051601244076521787790187218384984465414323355966339692918443341036007995944249069091668765522286374593391760740943131111809957252296385648591109239190088591613963868931179909281972974163291256387577814049104939152726953575483391812178892037842617200120273943278686166230594032324669369805355652944875183580906486211387388301900599686164026758156190093006416130405461172712762146282045262742020145871137978267720110808939972235104453203967425048835593767113865874036976385191972529800751993842178803065876275247024403374661639972508504540237229899795332389447044382427147403924105267245713992936182833725091823846153428705761213718777685301313127387429000847095026020248809705707708270273725454033933886190166524243127284032316966717577777209716823855533344305523403790377256693475259562999637408523221909646727893626212369304022245405637629205006700090453982958090790659442261191475235650113505446774544711501705838172854365944654371450117529309909194859799087667084346154185796050170915804732250591287091487956329508056615772493654614740317904767297312615699818024214548006533461460388326827774599632019568067073410171976747282222440029132391195357775821657611381317185710732275890581125767112328981154328859427422542881268615992455717229119585262719921211371175681446903133220773549463757912588827176232577626051066221802407877855353381641242966923104444020659091392856410563151744552075488318647815776648088325774262892676718462704685954542645022991560931326556552361276285590915152360138489400309483103691136276430167857849651154511777196034134316409462277128997762860069112566080980878493804422672965898906833762099021455678699966983090298660459551202328831486921314911402871242039075346562438017159125700977647644586065796328205722316954797303061544273435021443149674944058330314760962793064454830649387684031605833009826615570350600275241539304463458656365609174886463845497588011244997008878529426821831872373115352176381305385631936943345935862678637513657363813107987859979764674012603523477010438395253245096864611338443235343504191728609889560900903589775833532956482040454871628090377708577393129408377664679769652582187726429329581619528593747344127681382106084067865572454509278363569303426070748702287376785896139569783738566554124368425835542682407424004068050124800231997249183154859554626027199946656894693821491997462837780339575471415258826772744477082509499686150691560482401707272564579720900023106297030837788571387724697212497684200057493502431103188766336285748410418656758604278229129999411701614065720000425989681230761259572128231858031940583546230195531670269811795867269695652971864240826531956268353436695632622334297225490563474931741968348813615327497022364000393174378714163298231928366926627665007591384405710372317813613625339382296494321859348282430220899242321250148808442640553027388280540246417370369908033677031469838121648832690700247040507563323606754519129644981187059448791452494077049256291101999936299968910354038059723266113311813848216167616957816528090761523220202191218225646489985917981676195717149946112558778845629035706726514785868926990725325571140605905150924247487290785078831157225404691880832772073125300226165503065667841430993661016169177082047261539241126292998343379593770803314015953633214463795598053915928236908894505208651035356487183672412675377363944879263359491999052470331891985719372946291258976239917117807920194505096757326469124991016917352703363784770151388934830761624219012523317726408249461236724660401231921426042036078107093128780211480800884811668971590049224012218648171051717116279443268307871262692233606167610244633333531660384166486847743954502137735950827617475163542083786839065299351171465655488117882058845463743791740644892323180746812157007373578740295421005905710858695277737843742918068314556340411220218333576440448222545038039242274149646875426911773218374417878184937885681552663974653871040695252322640941755297618741381447099056757453350323313541025515499492076788641556547880035206997450129065601937962380669049109279619288877766983214230305218939205380632191736367915717665221432287793307919497901507711908004805577242238969652596680895641388408263785697427878781665835526751677330580460590626100015853485255308058002071176803985218529799001750222471153273803435202572004781293874085901160546315951143489345135552433266270038504380640032720363559024329146258127156254832198401202660889901584157573869717346303384796136140409363597751319348913988755635449769259302429393997040173536442019608665143688172274686134077994856387343693920186938610208016740019401554198870393158444972077974429981204135124595341317747681477169293709501085066909293144153477431682223666685376893238269060432835535854108497021841662902180489518857618299188046637834012138257692733100884082494458242125906273749654940808249755439328902305626404111025507327672432366026512652770705965500979907077823436680571411894643226557554973610921236174703614023537405063951897362173282898471942670522401044828210539545479068037444288499254020676605312800103212488399691204351134450792729706422009443943273614035555285127784401554711069002802841603336045290885677545100643387759952491111082806724268434312933071767319714387574348250761763359968406119054987616114345049185410354778948563888352601590812059741777562409255073682723252709636362185349352039554014835093610051200700887704891174990559678970676905607278597349605780033590605912379950546472520693972600171847666004100970730055627826778060629329468300218701165234335336760630228893299603770269734076144779762251278650139553370468517460810254571392324446232702032581032641240724529803011700133921970272648317784854215268640569264476395339594769301662850336047249677325583954176563262432492054007317782699868282989751627005810412018287307086376948898370177072333958673385081991068533941751973970760656908747087155385853451817561891777905183264666304404608039842771366938973282040534810287011689525573763254687914751807158760317193945972694716537942461962349673641837675184495693914449765756019271436717424865298768149131860282954292954585929526050090059864597687723647636400597342166593011617564531405516954548550512973361840346023372617504491994143255882264310424887320660446664050068007619018006947148838587776915072461743511154195823667805054451316534063322358665051776860701501651360867676458761814677497831642768897650586600215693545115003850532165343516992367139223814567488296477028398275438731031177379797583598509843956234592079815003299957544192374545357155506928503861011507464762045566863775038898686762671571361574129478524182966400647841604167720425037478271148011456342239345933498854733479417953383040136994856027378336914147480562227908178465114014486864992970875298186512935478426997502498173369101305546536117715185718577168976523255130232630161951733870720541738362399299858137711384025104230838716360304568897977578120629841498578191933813695236915889246329417907742303596348679489263406387750737446565351611371571704080027412069203207627727571790184325239926895001242165893912613240389190248452043657587813114223287050031087746144829616507797187608154087363415482334107812993451660946632637450762084931593175430189798938470363790540766864984608483211183527577110940161402334056830390698706139192128306813341689472508606388683657918932809408806371344953576533306035741190705785638626783968183711490207405096789486268339422860193227783367660308930273231116810615373029281763013721534920684849897394461303041641637690179971416217497060805704256375286234794471112820725891859368474812729822654694414145036174117741586919800042607128183350578234358083891997122390438498013567463771213231986255785927109305706473636793849520226397720898347088591794050769974467719688503090753242804762717339774949802149699144156086846379042728376913578085120016923980034274199195179829803122948839249415111295101542469283763154060004819536849085996117021491057382982026186363748111975040145769255206892007197051319412908241436198034084138142386163612194123288275560779171261105518740769227905192603903932969506826680297912607731145134731769485645798613603784189203967307237065473980878439537040560177599058343206699052532166678134961412487064142021438887856528396263257379103480698075960738192993013922626891458953436955747569969417234993778484493113244768828167786954260902492612211463066709152492178780182349523695504463420099053171199975047737154018071063646142339244086245970076344262933155570579907918856809977375788421369515263619828245889155378093207156015728013296914325262188113012958543245250418536808455969872554741004581077497981932518480607551938490375800851685307852456858372257673775779952454647198304063125662663783433008507419441021151050612068505394749415332333031305222279660209679715447138107912364314297467236359343639459683359028552912027424677691805475384289717097996523205866296697752312892415513342682023910594564873545570965716561354369086875533857764990131954286599006779367011130870825719701142696688519747317791078031314059007784759159328090517576862164270562953345231848617365647676659580671182491606227994279857709183511972035037257120351731092347527352718296676222748306647867178348469715317124307794836809699734411283424109159638122953069787162918250077728248586191238976984312632646618436653979989409803519745404852562203207337826645649537529284701010726688465708942695057810464240174687553148362339266496488414148893852227768255546814596069272122479432073571158157512198989027157738200170201052145561310652325486228035150995460951677953766210930257907305422156429626720390516315024170897815299423099119622885069338393953088999308544525595320614359150852022196351494106295270313946425280211069166503731407168033494712034838399231185269538304123515707087008475676304997640949020443052786079194608407965798546485107094288069203438702695740880537974463021623494239087239777490502486454926206988164667626000909559609157089277157334873230016877931744756455880479778974260954623082582931756495484141238426440336577718979935397652106404404069264390583172436914614538542271395240579354986927306911496488051401250356079845982882397133250295622888777804141813819760997185114391670691914042937617840950798933460448068237647349131215369489289818541545046777842656223132557287170646643805377413729609032583177676318440173007737035437595930009875356023827627059515934637880238892342697228669192762733823510630336996963821031373272880030021106094769356685862800968721522848576260726679627893031595728784694095318441320089335549213881455740813104484370654921371483906051811654922569635709632012311906340316324403252473885581299190427666895531585798189871303326805123147050907236466690994010667319004801662415288696264967579369436375027496027534232834481152928948168036327190073843719522274131032312092219970957665940465765475548405986199735713403538438279476000724813852276124298936585124855744527787896791960394915875308396490231912006975326677945541998605812916088431723615527876191997135153018693526796296132961115781897100942840561866578177773787326101097181796514491384851942657870593618780999847877136530207018335190639555917260093075310471662694899959886517658324394949398490032617397490835339638209516425624317363500099354308854570980123903510720534173802522731994350167333705511865272725337605225304103644638484316478216427747194415474122394790906102786358346569504212509984340632285055500482378698954032904822370206318811895261027982673928818392894365402023266705729576365677732876440271881104736341331897153717884479697973800632245963636919560720838814031854336266381153532018984274047597091032480052596622703050789092487682532071127527985179372512466515655428803622606257719870629731667483071581787857751369235868005670579581946452305711701190527969355794116737534846285039546306203883512446902559017195486636933361231307952198534688132758296473458542079415144766100276599782638408557594961179518289961593089408590089473047576116672882167058339439207229484038998011102935113672475372429393261826010532346091554539378480736674459674990705560840279981022155396270443901434729365656706063628552729798605532592297159033175616027311406312330263540891734704453217814399803892347413065893018626002254515834309301229279499407056622027384998562604364323148972494071677961156458280978099227660954630094328135785640952605106890902619518446837434210800611133021225624719776601447225341530005413824835016389710588469277001128684283384365208100152678093405367472750338374869389974993528422135828501649238791192632386497614705692045028309557615814895112777826065360747470983061721682723936196129103749662417764963655966290863375134585348371072102256092787347049419777407988294846379828233882667438553515608210712759089668153977020308890696257659885847608207196530659255532524712949808022535561605281268788625386213775765248429484817515812317602887014206074392200271338382408186887510920277801322107775492818867162445755111906940433060619238283970239073556201595941038839057223619267247281175742201754098919915514802354180841930818904274731060015888497554884916216938238620811165842900698660261326034897359489465142498556458309713470913740577459556151379073292314251504151862175235238014664570067097674111507031940469131898869981351418198514528108750669324886940034420496922761182960282837685385506417387514180564778960764906233841030228672242726964088562015689898168040814171391333997293001392805796620989959142978819361549394712170068654495099723813232561004202127041888268221197617908058198534221908814565645783758031302133661003830728063738671259849787693466146534540970335412091260134192328338931982163405629619665472898957730920484603787074486095543063050451071335853078983895913718507908534132624397991570070176448423622803313070879077330493183872231459249943681603316901567766825746254543950550589138428748014203525140196374554225678231129383041696264988021440724555202581049154996787662982956766910500277395682123751175746130899910221852997604827921416821378809255134178608452666553415246987597727538453999452690211474280725026101413566521969544115929666702137730030449686218051819729085407245597944088052757126970684750606128069199409346865785848816918611103086272818838043987380601170850731282737950082242457446546745437360930253605592309357649903471470179134627064713097073060517364215388628240819937600779464012057902246177016762867071074762533920478146450952685006222403425551839552416017224776723443941646498576970660949804779913214280143732646429352813656317403163369772633436346195352829127396981294196273271662059262138653577669834142733442638075628055683420524460118352754190167971479166871846026046572573935159311341898247814230938889629245980475008045090040193802655278790116264997021468211326303265577377313833270869961886721873337447148872864682496515200828314479610116842399177111715563187669846169152122200093626064114696514454083209313243726812014193591217903422337879486085972626736712304860313619387838801854457782943585656501684041138995742283137953457758477200056726001991823889596750357513541692458210537411604487453113640180636788964548982826911197887183202237203657894051888776966075693230548604639626545409135426557710715243660489104973260849818849367522372584957994112462874966149297572782269057760713250991976454167045037084420242375739678884446899763093361411998428183918979381852854898919701459048966514678413728876252238342081562732788201740905960271299366872597256884789147138155697103479638884278700852098323867630823886259799651025829624072248352912878157299189170129778199319916456422831521661848190049430619120629478775888787987922514818609190257725075919663800249918620491926480242026907023697223673963800011616241667545214383327139884159985707955459905826414439949632150274184141997503555500334912298477259529877161969929753222909205870626394976581754092541754889709233854726968590102459310802231473068686759913923720341429302693416244203174276480635693470908532650816364602131879042442205424510680196872751161857953367590671986741295600361962476424144305308185993493020757173390744989987560427288130691663003065873824764010839785144954326529243798302579488414145915168500687667297699009907514420604064380972202444573402010376397293202554222209559041566390072280212899430631144906098907507203655776758529792467378482877962587618814132308273670398084362678003402950688992054491330888963682635101733562043644570182939840583975229891313406137103884608782008145937480440406372774679903083375274364323502541024388961206136772804431211710141248986641074066132418595283523893250718694638866946605219133354574879597440112416838318882555122631311097656244867200413158053365786140748089841480819358937310508519549043632753161527480813870816220583372393839931716461376861977328225169719413466885794539563597449369532332286410118488958827583231059910776304752506454986535554027291721132549506395197443004263315885652813715332749174995837435092627546755938971364009311618752597597386115222188330301014957020941948266814869019944597462003881035994547338839709172690789502416141769261391910803503149980629043368258706418584830417977464053424980027579642112932404957824123987919938540639167261490345600272700744706280912795124768490295078641167401812403462472744422621194858102777750207358525325504710843951021605473090569147923373364001487295921360975222072998723997559298562702615811865324588762477524648999668462930277011571201451922132702228261658631508586124359912755212547101750879230041652503547783025115918974476591176588599403175458854109659678769724386273946031013779866029292716721295381887102243192397653105268339646697673635284543297857169774301440390386056197379717979330574235827436794606546359744313154307243544246301119898227066361529410152263252611593761739540310383655733911383995867240363043606776636773447338547805584989524460767548305109320469750794299197869087110835317420206908097524845464156121367515922295528248403060893283347704336304388978269656433468388784425024653047267004430021295282098422092991694458157109058791482202922768712044112756618406452546256112173351350001085265758818138576878942965833338698254336536034346531378665128793984467699554635056074877175720602104074605226984715616729902805543358263006888645111992873034995493206769916508508005712304165682176697976412454511332852073427050857500202058287877310993007995798742337969824951416121564630969595904428929060644457242511815215283937909900604109329861442002636288534711953772417416717902006920773644754279968696099495735222453065633302201866013945539799581469270427042333533205775332003615533915089329128002724432039531547329167657049852817887500219024847377441395373897130928300564085041064530994889535560452158136449544984504905737729930027165069357141957318280799461019740554494627620489150653409454920965031969236427662872349753102782879229920887911451940608802906553451805011591197064387697631235452015074620585467184558951607714157847336491912896856323319955326025814409680573485173827081745637836398027790798702887921525708372472248734249739811981367139503090480849889977786472557960355749532487604482518381869265586855689708489996436306855544486689554933847082576040035264848005386413076097548959247476521148812824165386465271001452340856787961721834203671227052969194032057727215049322596282061932248024114511336808218295626743229564052063697880868966397994301781775579581839982538848657456477379467995455486154022872714682569786434715509256185360939606994017858556452225346038910292681816657673326862676923150878080567755125305025371507768748076139747651294607325350798666527283442377968775836213524042153605257492787942646413173685185828531830964896268964560931700541175752031316759697686625173469874136882061164481858246542276161758113044311032454722892572738767445542291731541253990473484439953006813920105666859970264328619214457093570756181671716618796978282769992186106887107500823445700055582216193240230916897919766452771998716026998087414218915851566564386959552902953931581003217298435400830749543418689911200581365954447624272269897146589133102410264027158237914585685299465316102681379039445532811786631777802962059439045973425304867637846990035152330708715201171763089141624772959108282009977452761169813292793529352025556849430142548794483948420642562290629434894945451383346983636029760067269946894374250052228835777207079046487685553758814218646089608712348299326138211167740588306699003541893330661523389940175782575883565665972256768822010310707158697688005847804356104132639659606105168771621284548230777659083764417582228229842038862065662213132036606310153765631212888578639774359591586181429552728397157954093284315120289901317617144474180048184663446396483482422618158006108944237940814696895583931485429840180551519434988601314760161726042008863397162492489318921047283764833389346347056492607104196924287826026632076097436594054160004437678849931098420112493015443347544734108865090512622713949125846614933058602929588265401294454969107958476474968715658833261532130032060829517846473412011382726114977693090458220438756239948989925692448025954889287462489313761419918541681640246729907905462894168027551751147124409185207632940967915304483120184548656223610762656905279696057210043415894428461852713919711673955620812955413290579672137705131960201989584301585327999811768803267009220279198463824679267124992002658056505845390057603681106525980592488860564846886740605121914027364178956516204347366985465153774296747981290732415617170430587563303882710910146550129765314122106486612342517064772792666802481517436221343769357484812611715566627950471425909076137387998080808730916021238261393694394695584386090401062404482391162116810817612192971491932120580886910754504607346327568746836813676605062792077254065691832838580398527043825668207924974930010863176698939418904342137850923783864579981996986220036927427488044283316515013252831666373653863347710813966294948011029726515097086600419882325911182791779937679014198546274518516340615840898996911266977681641587527691313001002029369917241561027208190891324614220861630224418756853832802045078702911266447224548981652404896046343864342013326219393422250035790215251236962735546713570465238421604140528812855473166080615032721744548901103913886028699054397169002693570313881581399697500162386160225641129122089306558703669490476561003280520547847048813724543748701258880153498784703882215703760968078114487413459822913724037398949478808738011294233674609344752897034302695126261211805460532282180091556886252373985844828482493154508892784819691828420183473689328290833501189272934683932921742555804898823921674481885431647883517914919979042293337853300875119910600675198252232730972740586654748922685166440788026348907778656798959263214091802176856694781629776029352755521172985513482374290122647929863106566771917087258685705550622838122813406580318502984155257890568309175474217020313282921554738135178813881119352656373749239939914433043744242747101255322527287072744844084177903152982525837658583204047868552695840370765878340748576287025847291443897665480637831698447191955802233277684821542406962388729847777060676519944093157349187016501013740466818647158916450748347133904120224656497636046650252859273890261002381458407343577758239539132446682164995892915736795536340030753712546787713715107959158135231804260221603126687919456009735266421822903292579741524992315795485745431867084451227115921114679683800647119764638498948294745020466517300621651873060356466027213407925482592974324539814240285641410178886932839282942646883733416569760746934729806405499471244730710288375251173743868979674051146911471831644509622409606118498890515124603752804463548201482712881086307483616434105373867210662328138304218596218684053134288013719463728412799784893231926818742060883491547431533970697317136629947499420612912756966604486509626630882996586966358482973161357702977651255332804236251084767697092798616925301022003563571771679042727949144291138373017055049628099420795031877459400787669103402557045192796556792072659093419335376626441253588144447437512817572298743408884001131457505791103431050062472230374679263821395179249957856902802418447514760261780826462811191912064135668404389688271433770875446505884448529758402545373945921990070618765700855500267070371674185805702197888450377962303706406476314536188304737505400764711207715263233994587174016265146787604486648732174878735359059212656085040197699800944072169035733037476227593609115211476496636414367144676683626140610423903800294777506799155552967188813742536095359936588688833528393841399920989549271831197360843131307566057248397152387573360532528524870904212707923728844064859802280806588921634947860448139368801878396778833760610475444127828330495178045595406210045840647417141782459402282457323191636583041845535148657580630623042883715107332082623910449017052884255122462416368672104838333655568417226273436975851560084428843738947873594969683433265764780466845772771018925848184021830597881889904513270513175148591948234858107667306436740481013057448966641326401306434566167313451212756748123417030084278026467467268650725306899484552806625239158319957349952950872727412275675250140840317190151857578365356314804925500571453600525476558374940991078411041927750203854430369493763257125914365002551793483489007485920361899612500776880883665125652875914495816837180762154092991157192437338847904774498853616969219629503262120299147467226600777460871372460090377604432002311246768789634897229569665247853241700320964660156692134215536631388844636209923159761085902502452824891689443771321766781403758481966256741765663106918279987183362379432369680808481215693029527837358945179119404281365285635923591263220335334262733105612785637931894006923829112952981502880620114384096454688644376696970713361429108268293834271834143168367042642095044256017184968168212309837104350397073791398256598686483742892018979485064505687358125286031956787524827665096794899642989067269655918072378659576510387866996336723700750379074756588060054686758924770267511407391141800321143257460601974363715152489645510077557104258488882347421460162635750259056477220233789221341601599896788147928701746750084259569817979105056017572399162354760732492621822925397496784889637837133175407045070061044300366463649989890525574059264909703196892597315182443624811391558151542411217381561260641798323558461547642527316314802389452735943426585992635588157853603857932908753450978919102472034524547156218042922185827398024780343671160805147318319789358481541685563701655794426286734161823391664464459932832506721872808721507706683666332980571814640066709820965082679852291338818166939974408305291131986956059148420643088535969454065030107344147337718208342525395170389556334591909346850818366169705611247973483610969138560594416331787912751248978833577045075497617669487415932297613003669193890081693623108825291395750982020851633605555358597573335443970840099502145091805036973421776174597486949904422228209276924079166281055591770749216357616893510975657901290912957660401412718534744593609857453171516104531311923312971634852522872222156234202911414628593115027349803099938977854791310622879445141973220199716696893031846857316828248140656031403644033267229717858247857103578027794579416379663796956037192922104996059205870378751781755301523004972392312073432417989607744074778668858172448035517640626877170158145600002278418877787111275442881179883788431142834320408860142914719955738755282150503580481194370754396351429104038731064231472941821156350952413035548501210169252024617470447075191050461711372656632235261765728523811370647880879057563295391614631286826166841396451969289857458741233305309758203803573961740389159228131031784318090217064180616353880807267491949878679400225561635806067302983971513162020923517393905267286564970722892028783390304935562365675717862982285354956993405279366717370829645296306456125764705004932182224115869803098329729690289166508733547260311074554894483998311335021480137467087678859519496389996201936011319695102517119623973803031303283078166558091060874795589402325601821348301286719010935516383796722487908645018074536829553534803074165439479827095651727973679785448632208639422151034730051457429638833628668305951184058690231136575963470776070856483627049223006763931315124182187693033851621739627368992779101253477553925982381013530430414118383234400114258341601709124865628230475976931446076894240804515558490733277091735805031081876026388176986997737007678742629965414293697085684750019435894942049414343108841447643219269908956325984560490668869608727612367859053066982317067466883351742859350588171277994930433499456188158608573552013877966438477312324021473042081491959262681598319527612637306073820303326538266317235190516430828093835484892791405519812269345290104554303234568924134731842474240406761262914721123478014803334469823559044044160084358287103184206513050469669977629511400280204392832115749932454877589876222322744877393183537767997199408559747131205002992996496628380326084610707120943438311060817199831605027647323591210570552913251141206643918703778878185615382871090543769830234406092179735446687872455005964502481348411652159611181095942804062723387533453597612939674638051194013294875549707048390466015071804196316839280680905042985935644370950679033546661619292325834703933504831747266304917757873862792238036102639993545930289884038913956569933199150474402357251300735235738934650465534328333293253160052161210706441432103773438585139335581923805509320211070784260165974979196978212412615781857422974828468577776015968125665033671286863836917283636970891036194366315231248671481310384653421456050424683361680297755127674025547294486396276673477622819957352287657881223181043742388344935832064831195174464630631867181576032621512233779677649502354129579551649051809691373707015397475297441856082910603340031858767393226450377946385475734267051274421015306582052225859721833442097491261467467134888092422544837543945320474748673892408056482517478875233731345730793622884498334164307055270229770669160932460492731275932698607612799768499890797766984907501788511695980624241507104549959097790404825488529246391359904211459538525873275299282630084211323456508519214199822074276135577631542659530384570709927904859893044423841615287080847196294015543437804113923407359433153602563531182233715177335736633893643174647149751815811320798653915949967782355108605918738707347005387972368600949155235156964905892823878312609486229500357865962475332022990551436704981051320117616981960940798170417019124965811492462719850784676785637435987779917802492482154607989693039374963929126730716445119801129373246621206867882079474860224267473224768377029041278814799673421117122644876507959756636617593645347560280876874767910412360494060316005249256643274830503800335678841622302520659206760869889072668577423919792973250753587633845616778458940076602708381866067350619377287343372154189119215617132424713076631619617990288123770810963611288392122814694015809145217508672878087009507908933080385303883556860089146031810330612375909023934305205815801670272296178300807599194107987833270426668416763752401529994358190548837744662414144573931987621595065673566629190503574124301673776099856356329162708306014381838979926309010821258886886999420653539385516847231883728376329243431391347358028613561947101477531348798095311436960914330201000706170805628672774929485742964870061310789474293440192848857515803518697162003469609708813635122156451680407873957582729054668074077491288942830463031297867349653534728263548053860451677888928796555919461827877940672732821403263066547573075464781917668711365168425245176108127059695847778199171866283034745136993605976371704689269545031891233631877706088063838676394669280825505659234362367690410012323304248879379797215238232801913310767701376877836874488922308843558130086531091457060225185714484818569143759417340715982011560533933085208877230934518746127743971521657892730115718546415815201494742008307256505782969794957298134098073675082720022560212130488516249397229104522302891046932059081187249532694564354843067799368647470663149998189347352098482460405759143642658969677733485105685546578699770436199940119606022744803146722614566605350537066573887379715667651648816065740221553813967404711366720187900311981434530945505508344986622570627431201248885823125459540534899206045807651119776512784029441669423656090824230323232136730053634418460706209362317599386923608922880623799783671317425237850759753253805877280311805577543520253444469337857228178006072491982309644145816192180456405761869833392686443599465219323048058092963826497995629930048688416360208448464917384603372938415471219795922440340727774607132081126068334589434586191702162457220841606505742123909317555146675739397863957132803850352344915136678749723284442240521227362534267922953494326681829094621996951541590717284592958686821082196095322603925782773520395827232769603101624015704123630533720566390554757023044525052590926187871671948737841159772134539401339355745902519553898065235223331930811901299370405499994264540976540725093931559575188494862365609532176148902464856502568736162223643291947928481527133614240640159757777736079928807314325369946971670752022689768231398478388343361841583339779248811776949330124215101985932538502165335569082451546075634805438746509353579641491697265027975224761674545171420504188772169761293601246011506978401148501348085660991227315249199567895583712357223298027199114471441656016276509638645161291702689680418747253730488861980339644052528262346629799320407395862474507512988752136915930076813480278815518773412847355731193404955014081915843811308496546502687571296725581890705671272869567643137590389352846690605118170230000111502398106585479783057387551599983230112884233000140399683225360973388421576756428380280299950236473023034759598854580099105733898356225853679778219253448931589861229592499940887306702977467272945141033359837729337994719617298510675869839022627430876449527378714389207781079439839212621062404527999857934135855556317731710605395931949089390892032989500122126648888877117901088761906097575086861482252892345381562883954028192008002220756375156740477013729656973308147219075167774550907421188568468744570058921011985344546329867208613555295525142757148286837797474615925292711616632351071809189900193520237917750428132406012355568850662771537298984431137247916415671256539294936604469629556712988354934560018226135865179225118773262224036835122917120092541441969756941688437389299984881335944982539570848534729909506644670704223983207312104490601337447608888405381335131611835054129936806119549584281800889720624354891497501521724776212933102976370191145777881066057552001994065017065218249073552364910514515767177508873864043286365130405545082715121852209549748754076263945249774429669556646950559451870449571830900475942819689069351396981058767075439428908460258689942670722337204486633868225029806604864656903264868221892696687266514898229116074015364370607965824912965975304165835510832612038180772977691894814693311638799401770622932783961864182346404962822737234888036391724895051370902405182262342656083326193903551632582423757236112664878221011347957049926549581356192066699333096803545660762665846851247549424723116381048877422968810393765186601127173018541359845223786433515872480373290361660994048345620090505616511071890482295672841507931348195387367323443531388927029320916535144317301518076969152229928587609412272437510879879351370559838251411874627382618199783844904402375666806673827535373383335408295976087579727399718067186588600222436458672567995918081021075666065377396272691668180321991052857548062717111723208160964720097187424316482916870413805546945611363782105067342235250437095500910173870986252318290530283570606002751317613681951038605259294835607818169425170349329812411805608428706632471625615881446279280886196135811224582760324525023312046435517002872819598488136369724991149222369364405781088759568183585048134363042216838979077531425916255499969299178518929457285282345092856300232659566791300309397851746661635687919560473620042967725816672753198908569986430518446221140801652123295284630858934452104399593393990825026848517939534995471790484637619637129066077729262438561649117418358723348479073312234439603748403176453305239625153863408925674325845710343083278987515246187764710692758276515660337472472502106316360616753624541041377420755491287733095775803683924857868787585929137285592658681353620861473796486370961705639747162264274174650060764477086372435312649277534642147219269835051061175084730811918149078128513508424456027525764352895192188149229905886439040797097139230081821461435597683417245352426518051676035913350577993727738059576700816544736127379490223309066571604313438701115107101010171448104714969672821732537079525668579384187323439110775327352168938055611537746646128795859768513663116421596708227940343834851432550858277442697439315547283613420931218212344124664041288706719348952353345764755638803945433418448066306825886504460197887958970924448272556546856257927643703999345769019347092832979983009287579176063000262103563550311199550275832958939186605595664743718455769907123901203410198427333540503189323218044957636133656503190782354922491877201618636796339807762221288449534170721586629682585065250532244412789244081316149230646269938969022106302328354601939367299153091174550447657070652247552052057294779550805973350072959503968273821716256360636344929375194487815928919824479167074844536604121029893250851831821789089594897043073341633854301462109048894367634351530461430056364447339351242922488797400311893896838425498691552514172116445907908656709879793837383914164475208169455940904564526164701363194834566127499903863060098641488092201917079885062744858512024578464376849413369551495286681952312865540871687179295529624745561460201091490326519926130674102152939633997167005707294751194061001733662533690869695207636411497390389174403124938113089532002595867234508307004304788986629277594868767664195145751334774172110040746770895507523703647067330595965125254018676809706587872464231998697733006733817139392961567911292343671245800697299063148568338187342045920728713771312527597122111613348038716451826788326618745623940128392992564687854856986827381250750664768112375365447463355701332674913409548958048958654069234647582051805781112269047277280514804868849901054416648038854835954420411453543282249894859408794682443182552461108084105589104452675350032154292536462845142306688648541226936997923893930339100819486742021983000204230526708038750794804392489675758514069907438699791934145892764517716209029941378953976290839696808470800351668161397488444585967513176155057002404369041278135521131488193815928660175279096623366246350213709836845362390061465375447852818557826003364361384638234593332572069901201796534394655033892742157712850788834976366064339481773122954133128145700491299100568391039179200549532278594461259606401824748585492899014860612459417740249671458772429852545191816493779087081783417895930654786671895727755601258582129449543525188635836426159208777961750401649727062399898202280108964761933199668426926242308408785236874318563626045990595006162184687609685128661734760519948889603868620127172458978149509262953423382175442468888548468891860343776180159676545571073703313737500250080563555087352705877233233338302029861978366728221941739552794141917382431798385806302350630123652139097340312774098232999470924144897742769417899246241396678512513061525460969814698328540578112943759191695938450269257296419246542094553784669627020248708791487544681772192747313708944503228234788439047539125094918408511791544562733062256296635361330987411076574440964343473537324733445833426109422794926854003848811823126118660991165148912382183349176235948270526409287947728055885206539539029359974702851162508002949391603166188601656628060258376687963098414031263345610407358223088620825590056807275465024276389783585988776919850913199981011546848281329690520397368222311983239100213248258021700138688718000786955268403531834855849514008226280217260187340970487681841307086641733422173792876659851072635508451972414107303468459573289613708689190964332954447764068496957656024562837641109619228662648956815730593184811043359414574696251099957216927302296836600263369347992116220964471507566950513373838214071677774162929816765597384189002873302232451524759001507168369812690452953144700386852732478553620311822481388130504997257257521931808155080673971720260194736079192256483149484319043472445183490681207473271684302495572283510561834130822861450492570881119685595243532613849955178150500517733379655346909644190594318812898183610079677410199769150343405454394743227199040089742759177938270696839478641011226849402700062038425632759947275717195082722043336184261862187608120489490679469994768042147950850678394815328983886256462157009178987314735167744336240817088548256084397982281344082766088532134016129871553807292457092554938039131237975098735848792221029760158311884945514337006925105668627164167567452675977670912776180386777601759388923970967192403501491244634541714550600660503422648953527964105023979644784048471134134040124164541229879144510387806655291166327928915669572951004184472319063435078866778447345167998493349481436858052647303188001501900074845207062935206552098932694696291426563225234172051602399477121502975924978531413957007216451682255706590965203969828315803324680463598776548987366351029981463914017373725653357028429073397290636331632182035460685022179632883787541173066390578539632014490976246130079187178315538031239958704984685900898750546013114491094494827964522886533073195185915516198011988274004402586336285334601834970856486991806095954099132470144925276497748967979211415700151608093293325525565488856906906955747725826333629591034055266304878416021211698286326841892385888944330018962174587303569507913231180783455925264011331385846660505023279696182200618438685803490184419981101650141209500822714417299069789354534034743841183179121995738910173459018350224663891741778538362754334946356589541073998105337101112428166513078235985205565381020096788415662457197128894750411366966654656731614256441780612190107076780450991991697260434577186103341786825136289505787777208147920872496613681720632475896399240835244258402088185611328358853645841745935860780947166080924117722912877137324803920486538686334834570454617918847206839481030386514858614718375392525588286138455722599739497411684006887590659428510816526152845261419081918882784715681185390994349854889097829038239127264642016701626386438541967516596607515194857181231858246577981403292574803488690045900776046452404740177701430925076076710457372788261939837643397422876696766021869655201781309222859516105426779499184850625528703896872015148776098553158764739485954158895182589463995558461963148310026209631022717629766272153600657986237642753412474511988578933896603797507673913109460110333243682846959222977254370110285441699918774306464467844197998643630990486105111610100229952133856118527475192564875449237146318598419578222844173238775011537102248281718894490932387931444355834315924570095769121274933037063233843778874158213869571683985267901360727920488684319613764965283159918955255464859052747656063059496247121437989234584096687098601591165964770416848168357627391675529585218483745161485553027758691347293751419530963967128069445008010343572065250044926079625358593332603443492099212281293821975859850893346079644988063954781661720046999897153825983527354014062993712800563461102896491442162114910967831026398603799891928370995221293777590530301675724546821444483269607274525101502625752775519681193279524724559389600312937539159605405877859060239453593030295704789520816285860403888820704356135735969038084160842947957471025815227161853490073095091926683693757839416847921966806261853489212425584810770023190761597941895754669310413605047342681656000307302318758997211310446164744803177521902351599444789108350976556041389892370616825165835102377260874287864151376246453913851863272854947769350468051151841116442838760147656958237214435407098909475242637046896410511543044819239352405478361580824592004061491097963003041882766066947892148478299700151960545463655520738579809460061331440147464274961411505903891642165980460711972881317392994088090928058572493292063007379524225025952660171817367391477969349762999998827623825307547765191857493491443507717011774939178235529560524957940110664840377833384819147677638854302684104871317980115830583462233652742221207962154520541376677325798769483695817555552499115524498771905852646359229042961160682903048758420168753422958001076287746377866426230370350055015346312819619282709959594659700091495337985391077867227242175690578743541568052670808518148601792394008338673799611219667822815503832530456495214145181470466957088993548643141913123561134140669223740541313942492171424481195486688144192262937181137413097617998987744258823521190186802209371875949262305714298974269985968547735343584915557090453725663325962695205102630320245762517551955677660002652549721426810232773672964841901865196237471799971155023229308394060323776929568605096195800541680955435331046926023000956889379808670429460459064397649519538438063805217262558753264054147632696634570378113561032773980440784488244535279787955527231178142206729238187957817886807308621521734300120052605812478049517915130015460080686672970296438974035723488891448731257677450988436707204353982074478364760027761142596180826725249139597126811946591987524093205430188951562274778893307581245059019206773846149903980491725447412467599262125776751415330851212170357580649616958845351569872470448895728565860348019141879001742157994117400490155905943612090060887328461332503174039517621967681511607372780910804365075578684667205227702117807667805730424383952475692688831254828441706706265145813670472327397556134570610743022333588478008196514091746162877653949663880841361603608517756223624595488964053898884003944296941964474502506078455256991315455843867193583511721359432733105569225108302875881161898935477826791595917442500292321996120597216103098988181652635099322853103155098853222824230221799313622737358534115906893757069197396172470915143172366398574110758599244642877559888230218471077730011940205436633134193894235066859278793898880865131044325645984027791510633858735928655097863081291380612690042878688158493533238649046054574401099938202284962578129938686320289805317152334547833715437370391429193781283444627216911592138445690475065499284201867728134363662223940009941481585655057231212614764609588725747724132069354161907736236229117307591786253862900627318250689841455682929579154110463113311061992889749211045361103196634625706559156157768580976362874550208607562737387700944973191551920245063514003139855629424505284788423318993517405120725947695485953359547230380244305187074836647595108021230466014697744375864321970911012510681168122502055541952492690933947523908816646987935419119403112459440595351196330197609952533487175290158383029980844575762878049563013549287787030330728598304969692564674989024927906985590171380496819736731383349840553188752778555444420992907182483031915985843813732704833322146833753395644798503166412767016427208321355848595650169153615886350983090460152819968903601819693438949356097542420111430433424659608709336915045809937410167157129075871669359251097030111146397800166160888250253395885888459894759690762067666777835866091129098763020728237868270117913408085100992528093843778840822427628827244002867941341444694665240077305736829318710396111548615344492111340551722816866304314019284989583831642812817876666034881825308164563761034036495947633050303439077818943399706638701647484953203589568177450484351885099814679195634286919973457926124760278555133758296182178301878825433604568873877305304138905016978881664757266937652757781411630266771578990909221234852948287771209376865583786540405838432763573879542310340935200726011360639067135789215774209912989422342237343624431190225986794359284424197590220610315492626388073728911020714860074889425007688268462971012563652995148205630758611298209038799072089260433040931264119127386350036179537850546120591103607476366200348323801696759236114800511917303173021448105918236604947309850431293946722191144714699191652163359550937500507783694949985097038629471570108519080900851266918943936876768905697266369277682253832184478213011435524780453730387723687139882224913858254521860030869500966041889280935229084493591498549126932210823450872497580985378775978319256355977021224092888981262140778848445592999958744134500376658419128153892408651030832555675723278600021880751539480582673225623285179413785813676658491248152695178572815378246694594118977233158318384108331481544028087063806011807915569716398810510650789190099978227924694311816118441312610726272906023488256257772955590516931266490606104951284945175037348097155825395385160058377168160298476448276132214245196817143559193744967022919890561543424568368551585730367876364943159210678051729381906230632745572201775846838834441250187583665528269853796998755028337245471642576020710427575730190315854418951946563412931383266800997344979945039291806158332238844526888257430566330137350984987883698259093533068943857848840718757352204755620962031763220017493437417145921767106446017069155474154839286293599844370035670414037999361859172890587816308778462568060459510373067726549305255299242173882313782757151138103971475399257100085148893814932728518806105866486184705986401177487360341563470788555315937569687871673649949949736243085362445212198464113491564402910522826582521372082991864516480868339164814780802858686350663118082193024157685258784561923731118631313322479912213794858325642277810828640322573850732425076155726585252063560386207747532319852095902672808907451300940673284351467140953692055567914775674822882511461735305560530253651284014770130177665520572104831163314675667774268275897410487462169236000174693341734964315643996582043847735383393894372035173091547406693213208975127730336544897951792852306323385561726005572913236579164487283200329893083516819234795556655462390289655982550907751490106965712804688300711256506629041989915900318456518932769587184217360040856835012095088383310116720737796231023857916250386812312993782539838439134547155035766280844110951109900316554472367358252560439328827827009426565324387263671749575778901784561486604896955678940722807168845608418877677876785267759263457186549067200289365640101549653577842769573454025125999236335840018936299418327502704645769077324333282781724782471450060050999594438788660201160600263399646655682830696718585103390514141225007943190198070182078202823473272196284491489302757462073108750960900583712038449584853582296553513646383594608919343760997030572604519586614052767236405685854386956033577557603698369183050333017447160036278820243285276818011770981361732947896770385292256652127494924916581962845571713499800352093146424348228482929750888929394664148814710220158894203060719971522401940904676677511913832223090942471177273287472397949463424332477218685369243155398751565234371560594114108069162957352203546881006361204714634753927533083538035472057954306009623186327953009854566617646624718827067952834107845333961725723890059209335806377851418174849467679570556747478705581373411925525916400212035412070562583053370632886728160503353858257560767540113146069436951079915405680616617353898909120230484774794682236506401428314960466289777306592741101486465961219080203589747550328483386098288194768327288003579668567387497468808958705913950092497300091099030462507636133801371057902276052926996041515486208874690344396211479474490445144886391721436891060451213121574012706516881607723287646700895167338375669595328805968693541028054245307996968425438189931004042542783097046070717010125472758050859169000431158771100850737803491245939671102727932690412207643796628620973500787427016824939501342778610326508338614620894713078119227133413563322983032475689422710569096831655640845475543544597471278315380760215207693502147921146394666296927784809635183279129119746944465454883224610259425637521835066117672505786990865553646237234606305529217228008578154548722988629329850002023888701593985357163183332502907214549855238269936821362287157010365150507370650478339561308434254297007345391876164046753416272856096024616169219890205974056795196996617677510378537724134440543401597201999631363166340513437793183095347115459742780601411388603423324262575542372501015845260374498275101815105482137092843719487761758351302815337747702135999275755735761801995173582444729189124922646274811968874666348290180924257913225088609892762491134617002959466799143119436789306141329220129137910539149862128847634087739456473829340327151264142660152237416757915451336374362450729325525083083789879672768299439184989812138337543683985678880117298469311513704723240539467975067159597630812652139981118313977610752178967026588039481719863373706678096882455007789282134460267134122854729546431776463697897874200792744766293702919923908644072069753278842267802826657800647912081389527328180263607509912623869602447656042909656781144623608786131003914480813884556847556393474117122150928385577584141681180758971399831257934619220596341996025425392168576069184087219519809110176016679402708614341611055423585913005749851931130261768085079300003566768507104795975702747957312406641809257320232610103364224350674457522180628991962192337004688599911575548685779052420212577574122178240715015247456257382789812785220544463897711210629323426730094635056050408480124017301816537242886571415972894499614014743047841930363575817749649113212356208916216371482019338041072300836748440693038158224425891932542377688373277007397536015010430697338448408034585673408003342949524902094123442468511176053204550740162961586550765026526381850975573938346854647423764440647418043289493356742585328471466835026682367106730518822765856720411215193930706565847319780102460786298503545340533996996370147767821759673352701590032486743536110141504459076746192167803129357897269295258695151856832802706660384241931644047607322657170248061428368312934827743663830142512611455038888885619596125899402003922307284749137085680110085268296900374694335817389108142477086618409778420641454818579906887650310256893381737040377729539329662833982285284106678604468195640133744644826864565317851591244242501947290681034819620721258456929885886177108764696369356669876580355571421307569372784614781407078114476658490010109925108756223867803172155281335678967746729908936433191678033632873083267858993867326269390279521180407455698866143421435535129795891414486861654998214698111360515819811244919044310515903642006913933290621374673161421982168388013741138901927259111541651996270253895978720493533016271717011985259766950682910635810585988810286996208337488972988229876489177555648590719108454587281365269300431904701695395280795383990519060903896337130847995198583847657681786776935729195873340462287662881968845324874659353933465185423301407008396460750326658089823971962460878333246706776912815786728946976749609563282186416297609073625101341769122586925733300158457766467935919964246374313267122556164870750425478448303942378792201698089650247671149275689615295614321700761949600191550498803529612342142357333992380898981456073821054704428310797572066746118646888880902785094741682667561431628470400954044065967121868378664287751080174789347662793242533458506169760797908348499086342942849339474228096704389159110958040836726344285339087521664821390003354166148060461738550043889358753665356950985811980612410400739750711799877490413665614454061751879867366415959943490795894523078694474963908589411718508583127749436086820901097052800478682622448490501649872839133822918908341243389851758073164774578602922213159341367219058134567372335341892323132354085665004429944894195491592524414701459840676724918232089568254785023463784675637495221417492178132109369240405333430343169456957432517215208293985155083603879571228171930719555225224848704143306150141455866153219590300386388436883153255705663032691179210692646934424875863628027670315117153082027353737131172638214770108186774454868813277114906891198379666618021020885213068352525836101534607666780016124566356801740712629219933222525977661110207561197793427822588324273694142734921221587133916836160353133718857420651354192620480358380841163325075636949235869837279483305506940432166525089638005006389465213109268735155980305624458398729521374718621953721617887308675605126306695588603207428039353111453274643072994427076156741535881924452359448289705073481109892018328397042441235537723563652386811812786080847906013747684593054095514828435164215118929735773237287077991583118117220454850007505455200686899116091160708500692253433098418761767965158012223438187066643008162982586230298133825342496280572180502067510940091868211440520060732907689929781764918376517626376854082073447235526938883495889772147724541698007568781290097416960468884983443259058084047621480407299085320760119156608559425034151552158556915064841443824270845342361110255144260569149706730945560544259046089150433366157995852699175622752195331925432836055726380403429203558897432107621283698676729520425500563354436524968669609086092793603591308584590017344760173180423711147907072670877985473176698608639640101900673329324311400946871256149090061175027852405159197573162502732791974214594618686667565840113879379347385225270185188109187370540913245377903316300523135200055282042848128077561346426974840068473556315107276120469720101305942162836142890917038805382542984305998619424316157581480203907893910952736916937346743186522545400193994085574142199290287921860985063520209616506153899237924518415430809437055706979469666660008067692351003630209065385935129192037935790842155699011361543088968832669588488047142044150285886599579994767139483908439995715992386581834855642362399740938427381204172855863603027410758972507438912404231325289506353594272101871389377698148411972173571572355155973243105717106996010552500124052897703582090064557717627231294736403910024489075615426006279992080339307973818407324251044051332882219633882407063816975344333595589912015004441250590222986548289366885805797751585172834054813476227585306817947152481733876779688360483362885398546271024601363402955185033192271524286086884365503189051600012290577826906222531669892065330630160863188230251649942150039648864083499342823802903626521656478862189709946522395150930920051291250572652652778619159213085616051368278122285763447746532874480147025221383900282832223295516677191521123568677989845117184412781000590992343090928910774511688028417827295599813010178914205115963787338890924646273123828442725378388285613096105389159561260143903444032692798527880719680136960552150412626953318468145679936557215576919890143636216609996055534967421095467715125568298722320461224091120976333466085126222171486857346644345444445524736294553055401994655811140334848090706918288808810989007615558023525253389232862236465879506114419546606282250693696701758512449883685150449113908034915221122933653062934254906361463106697026520783484570015668268958344476671768463265901193933784655823699574344264059718882788075868135494043600805022335892341240248514914310911579062381468052602530669238627082028350799855274554866723706508318757439213174045332949054165509190531750938614027841915565387367863276790417386580444873559243006093129246655937434351216331173273344493588641912099735987063412054998720382202714170902180239396589998211647618885803785611270377320759171675606680746613190396166190811180077820964782062353985193282883828303515570867159313026247903204720247438355423799083753443500018121071097764188253811744390705834450635698117919329910048344186905339661324511956525238828205638348337191425231823879658287003661440949985618230217494732615742689531313996877897878978799510151066610226334924042868443447180871463724630651402814257609221430703962054813002743749303513810033434547719465243278535872770821967655892051089693774132227089287810035215709728003524546032529816572268035509954779935962906900600776655625080179730133168676468859497023687893047251284224282179856336334049883200059670426132923137192983277846122650728177686053715045353202570227363577359668081377084860781962841945819961149756920464338957901511321215196391380844060162411385817594564797595693460486686224089508383882128795858141605373126600989302398713779464566653708755693073200889785827609958019970258260563099454936816047809275310505951144271683360532022242239103977901248942908661485293801201362305664184516327152706383241967732711861448649022807097754149129621108585242474343683502958582934063082970360447592623002640273537928471049698190222226543414332285386989261513807453195432440496847982780215492560784506590880530849473078184948186980150908442019063008755268389186298596799253854165632348721316652703966117497377584589585487717856616171575399083614924193897750517769131000476192018234057308661133964995132954608972250892392761025932997709603549158393286656372551035190462525076909044967134594666622446599205989821226540251574766210868877586843853496804008691466667273652137803225130089221466376419065944300573403837433062952570970779237054447906925930034960285559790067729833848164298633647764410971656095265832380993767395566672173140694070675661068201690812710383314723606191480226398392960380840594990519407190713606602348244393456555863419479018394721031729819759980021205796443835243334377685991510555910005643820645159250631795449218861569145147630256402606426756254830716582205914919424384742351733233211876233624784492276366052196550103893685293530754144303831227903031173256060669340654974165634420728467373135313960490177927304988396449181975465022741651550410249951773273782577522721307444690013742527616388195390893605883276772158701837770811670350353104458689656538472661389966590438852607077463288669308045942843514478652676681086007965093494534413037590479844709451140531314594664561195957096092008099362680779583137720230217308086970686371405042202103270230361880723554764441737979462404076323225046850105469851230451031633617620868801286459686532977131246713276013501931411965752429656047700409104648826020455671631801664731965203186230511160871577611523586232443592570850222112908916929936744919119129259985544473926198779453163091705964700240802119200050816047358268172731565065440556328951892097231805320254650378056537958450799852448357207130815271652595928087981091141002931781379981110357211107959931975418620109890525402274030229175585505709368815742957066020030547089206108723348513592388485224416601455649554294532505317146894009675571466474402295496433570234485833735879185174617306268347004754266939782900057610778088389708986875921635250965909710632865880127867316482728272926402814295342009433237823166871789672912678764996535296918246944205542247430834294930151414904782899787746608986191502088988841321155345830271720126669098668455210497971173929333125350656895203140552219931013542145453028221947174836303259982951657892994024065691024058817946728377398602235923866053862750838030554412332724801854863436572690399847542335588914784786334771848550007209412306115494380053671515518242214817511879248006002703407609809895092876197573923073091054824735029771872756724861716739973275322455163901903161986527016957320615244998089717875884900883603403593348785573907149646937162615347906542983180348193546640171405577807270691509019533452502709482924754598996015712863747273558484501223406624763704937667267885036094786922514266817058170485703579994427106472234370899720789017203886006106757401338871426690531574291561809067371559985675434583039068640332884372071986824488743578100264597183346730589780799799894350191517012170664134339870246676013750377257512496918985969738658501902701849934744312896274507905117790722148822175465719570041600860413227987045802125274836292850713142369638889903229988271598141466505481728408994698629585124998059153100053863471031124921837541534099679477067532007451713364107524350876064902722290866768540023290079523264360165975439377802976828366777404710030040624117690521130263524674306144669015195534291347401731916338333321771354532620948406701982153637150006142941750213551256851180231277210715244981596329763170971329666475501068808946445238116602397702752766409886603026025377195252210632607375446513293494356319293674595198158109326685382961193304156855193579752535060608429946492534501098769527348939107598628249887453927500194568985375815717996347474620374408971682946370980360225638596789433553673004049123140515711540183466482952475847609925931441978274470784685260969693992630939585129639538472015493020752697871658916858728999456418790166962926890305472501747456642541051085323609316245202196467252862369160008146393632178952404782904124241491754718283835346459222209482619543558591007162231182927926965530341913543096544880449507836473618911652883034645461711366459923572624096140796244123217321310215848776765703213420550953724018839462113901002766832529384334587294576875566472933119840806107427161490309510171321070174161249161009004623435951699992101821235615758882806858207301406832054321233716495826249783105074234877145076618304293594988582600166767435003288686325276290358369013606805150469359730471174004442622765916503250128388641140366545660580517224699520617009776978906832345519630644996673628981905944965080982582681129454490312423649579386427087866628783467730468640055089655345141163832223967723820886993466992931170971847043914493899318262089961160978203931096685856522120669959570971909138493099114430072650741198842587503658741773601428411145455135113025901034046432991670558550876528361978146788937949180785836122983121507361513927532104712258426782839542120768978213443315178060819569638293124550067606605134341649451924273368549370332793137171033319762664678577648457077307692942179263419697983790232333731865236604693034936325366005274875630015256556804036271712347763794582371733368330079264203246216712076969601948805270132357237658227198627006465746129691282913750285105884475167743039701800034710535513569841482667794386459809589966701238754260038128195056619850535286828442263048416193797098057162771463113821636330340537258783558031920429016374634268999959154087024647861518691389368384305694307032344638314930159911158448196782295188810614157582991650049273283765286615534960534917224962806618056999742675807513281549953384091344227180405609912682552182336801310738835690237309555285424287875897157306315915982940295035282778534210169595226421051386953680721301502739178833052740080368031904624098932832733186029791132268549575167353493421862678880091461676475589639689476186017217013688855233539395473072438378340494318519029011686592081288554858190044108155853898082110305762241781017987889275678341227527101134713522370752452285063443131903591900339079369391332873647341528112425032796713527447514950615506270255822290775568204512694924717336252163078004650235565282552475937233136236139773313167512447879485765784573834420198258135691069243078106470871904834346901011735094045736071236590671675880736745325874578869415007708053068290062442971201462604923128486212769589843064005087093905900280650517961163646086984035150312164807399854518019329612944568508498605697927947749541655292632506291498048170198741735511780377792293848550605996533666166618025620778176128923110813610370401238124216526726876375009835719640012336459166303291970865883403314995211230625844678460591627390607985300813533399403237889960737393079248657316084768748477628693807285066141024066953864994468371592440197539723106067185532297308591497289573689508491687366522096214784741767486887765778890617922995954563346821205446466578025773311909163388623835954965884939408817324865167156381561248001472151032811958334978727623273316203778531205597296445856264975734020285658779173274568391517078187751039323093259933330348953692698535048834191294695767926903411884904475352005457442474863283234998415475929021166829959373438871801560301746006334341262270181950625997968569867766748203110235937635109730210251330318984384462395121386004634932651933287317383713517381125187154270465564613435653172228239477148889431139763979439039824358829565282329266025003769000969748330901545590899193116284258449025703566353578166464264535992417265926886957855202005341628273094960505212817296295754439512577468924478078143813562062368021690025210323068719707138111177523682893752717548673721569233452240851834135092079597413607406661546268205601606475664826339991944383356070583024232195669498659479778671476237779991648049786586474899218166614637339073029225130665519190786958771660455866043764590869294773832375367234258060616348429342496978637530098385491030778998265011182169428444228940643862646301005422642335502122674006721454354933731405300056692060985242372400678789513892954608948824450303806531024892053347871409577048116882280135656999120010230800777424445764111245940374394062568393701670066557826116011436859660507956016599562789628629567634266185699151684586592073884818776378616417719933592556752535809726936197204849630946752789204576722857359279988524256518229836649745227551809024016632484543643478962120267637797606186369682206582160677478019656436194914727797933691822937142092675171491648535240758547156160230056354167943821998393078512310677728003520030634976121323552678452672415441987401441222913413546098374370550248388699948866718998401665597984648358192723023757015810211532432143428836221394336715164496643381835427049250749486783715406257825792148445074004055105635363475160113084849453903319426343237040816784002946574938545640531498837785177882860259990786353619575144893305453046339529118458280651565624539171032714006978494878390276128587674053182327323318442894444376728644991674812390372239577195116117708465330804317203487288414181424425990926675127526265592449667973453633327568786310009270556986504832081418548967741452830458034227268871485650916313989736695573837832015740759343764536327430630770500398028607051834094296621537502069752913056000549930912791351802023489511555585457841061096277953504527407895158808036526143459699861203430967226501625273929556300112650302209318397430739967456384203510451237691781168682441747302476839741334716772129621976671637841777776271479869023137098118964783400026877734209375617263907181012353179738149787791386630145456851359783686915975249378346048273564095646545013334612035829908559805599219187630238839976150544576777841403592020780081789616976967892490201756436391427864093927950074918477213825254456979762080816932959925053069297246250959372384887133778387964415617380027522987511260478131765199750646968520310723556356585921587820155957480487974592757504045771119217064789791757463263308152370120585403382145402720644668027353260711013807447590542637766448471792521764163266645037691401899412055399727566826143372367076680804964571496220129053881298108623458506806420047856074600133346146113335865251250360175098381050243134790402541332291402299776586163881374446656903880484132992892747082031579981914781753031224511120924731208897017351447275797793886894550565958604886529711696348830894163980189691296684585802209441401387235553286296773457531443774096863514067565702713630408734793519928407501757820244149651308436664391662193165342424429975947832359957423243375341410756549527601514672723806069288273676630854084330858350376132695078010880523695022415302005560106483087113481404316471064162575590819301083551711083125132562946068252537204726515078953916503902785146870336921846039522891092228895600787447371064416361984609489737932633082780350075608008021395891790653108734542953336764266318459587744048528785318763681020465055456243868584935996797442961386541369622748051046766363220793383760642284051811158786870202257329011001992737348202173747909390071676703726485321105121585355995423486630964305719534436351383949862482831312100640505008313515439400354263859882273727499171824288888144513004208709217760352296796422223323276278559046787112394797651616169184257935245885214175721079590147376453637188433929372206054538449596226567328954477692820714803747346747704791535014619763833003582883287006505685857308872590178175664033162559050870545389511597770548467344994748475455434053963700340741915626262093854756789990265167216132915889033893197231850672454381895792068730211254387684703067169177779851740236953707879790236435263011201220564760972811056243776094705087495214668295599372476819317297335269187770775335271326586719692425240053656236406864165443563944904977874864861770422665629995584380372435336811643701748926805982629512291374492406116392637433421224531580015997365026868087477931545841631730715981817217934402646914227342832242122138239723287567861666099294719292067366828290805104989627065193809938395296801005441636183553756581556959023390034351106630492125207464073882620015661463380295624615350280141167907402744142946469320881858090956984503422813286342125536432231749980502051597979011284203355792683732396584830550346743369172289381733886252791777950600513028789321088223774105634705823541553742034599634212158772192683622257893107540397883476756440998111678927129739977198406751682319034715006843233589119101314164260463494366458861544944967653429339495258241484873870552026612725908917561145880663223020965372461068667891480525274051643925161203487733907784940586964046342635018533419731965839461048540392016852345771230314122919956245087489029307271370603167277223066774598853611293229718856017510012436165068711847435743745613277139566647321594494062594373609992244320763549480696002732455967609468825541678410859715487311180678741938517114676800272481918771359614317413785714307116096712853331319012545182461078502100895201221758296893599820017575668365353239076633131611564792171330210269601632682210549665636915330282207712374573983373781560081340224356677281976862947264022237368340677368555676129253649012226365083611732246333870582713497188663063260992107974202588495676894376816517676713261675323427213654586136963132999250778931048735402389348451876718140382731957860072740216691548527556833261829635170486316750832574071155589029367270522771429261946932668123344660214885395968705846728967151757232500436040445219042830500220455154916804698841771369886132924080422075266717278365988181541067730803051274840869224453829959024014815059007827470980662925230660461095147047831806555708859826159046903329289389466986503801168599434953493294364883172080375105117921625136022824869073512332374411976096854026719269009989589504021014544569703746318904751766547416962365697804713393593986643403846288626243805922412938715485159502722672621157876976030562965418196247303220332016594864401091781055184224097221143823689278534494109519523653924865689512783178059487758242761313707046254113418696129593906957341857209694079607549448670291555583047226342707433519198739495931727015238705749171755748484156715072733285408758932817319285157718862155747902726270161453182274327230198948283989466008943470136423877505137511095382417397517931671393510582413318634242141437546938072397047933907049025132817811498959263500132490606191247238506039860337060180445941123332876053476757927217084045241464415895942474467803178947366592748530743109791363805723850883873678360821502497932909301377797575989054459340614689611503624844400513213387426180874744051735518537940909532198427527041971960269492430447916676740561562696666106578498809666280568009524998694467068916917528611710040417232902782326936659581198901378393368257228158864617462564684829168323889492093530402241454656775898140053675404433157124936122473135728211855718773117115330308458799069117146523295856975997555361932390785708801611108339182644954921566523058856933776634871674271310436131561270073792024396775240059190942093895348429871296753209341009719290434642510316576470983001208159116102565398064154819639318486952181719963988234288906866428155090994778701249339423885651841827310491947428134307210747138330616324190074854499841648609053705561023656963085719579601772488606607915147036861954926108904325371080692276778368635818234181455191668804777980708738679586252835720910853985862446064870318969856154541840448854265257371522974322680127622159608248758440947088844221154003414622767202963583159589983053117015875054256916610424518143813255272808382293578887643049851065051449937891685763319221359816219659295256616237051469812487187651545421085492181246539685639754924935779587710554208264898786036775830596227920903915505421969830680272161681850181546456615388356990133272014122536945787327790710003322665125485950958593710531741477167568713058295933536209366302792951722174455584400409851138270111141465278976939439324207219260959932834183019526771164209513340656307000186594566695500302359063324264045891537383925880961716556985501713651054840432103696545650435466708081637633746366876050175328380182793760755486391276834455326169474641080773290641566941644382816351738417909406402406470402126294489666955589316339912948191546918468957653709053841340894007828581582821903432463351809525047250634878639328818965855297306557083623362559650725470149435677808755063204335622068665028758473342708064225537415345130766387772520613053303275576508099545518983090910716545696853972170912794118087056254338443175657813147088199020116678632027940473391775609741589916226834048944845951253259348811641917493944796459197199975864338466726074152486230436687995127524898990897052309783301850716439668552665661860545910357834357060678138056164025426761290666651720184024944566982140570165792086517503032661588177133875330705625698669020510837002296671666175552131270521506924124831206624357046012720566018906611448048982553103566910864286280954334867745683281133897280426261581445804604324036155431322026586095894497727449336885030012666459319648775830600590309095011080861400796822537127279665223138189908587651698902642726853006087086776626088865381318263781644512961257575382332370482421200725989430017417934443549075756089414719851539901857660160369701943904495605409977711631952156148728320609522717078784304501164526353155287595743209925485061256660795896145294705567109768861142595389096400508865755058896868457804454080281005042085034536078050666513667563955323114501972425544130029618133638723027042271161016039226607850566767480010320045351825595214610039772685929537861564609066644556318196944645085594163532396829329780851073210865711067744317482573941835730125154553521964120840325972191860425672321938122948244086415793023275222104632182244228970266892779923069870381742408040058138194706043302010864265506751006078173942385344946132255610452710520480150632356640260454951077396454260768350436361100976825593147843821525149195781376881843210011266370396858912075209193555052796486848152072060095909003426304410262512607249282073356257659439275910790739095032127975503658604477676522539710603730533405121829490320196999474670673401934623204750946495879263550996539256052502681675044935878360198877811501580437133760299112198655200946560065547538278022849745367752257677698521154296089626683231825464182938254485724983501927482378370121511174894690726860163028609510835272464756909627475541829054686400627399384339139314002657292081990441886975015699043617941900858024427110923009417918766944897012146993093647299696749858079284030128046796056034719800327690558402033556518537079167082802021586583008857110884646490704114207045817966578843323444255425350325585540378309235573540663855979664271616720356047538142731791725490644086205968267390277149647148118946537476548072664867890609165977272510022766367897408046865139794767347484192645571178292074058418025671516667031893086062898151955225158622186543659171777503669880111156682221382131680306207988981210706781563030733041853199410969016552886007754732477006111035527513485891954312288396086701675279148956356583659652012435797196152417464216393900904749115428530032877340569394568346351634325463881506228868028680832567292578070720002999099453385828526004029475184601549745226316739651395375528223931713478195854487054372089866501572334334371149756854818586654482127776022398349310265209697897124376575664040977682833065505576334968889786522236327102181921433831097690752975599769051897510352636869791128352532471839617577070751082338495547475755732054345331587836013810283233008010285780183336055523755778427945064646512326012903521517500559521245431707949415080380995682826521012030125175429180338568145968009215991393459382015303589214186262963001225091555850262712674169065580666858488704757461976215055550595516489217304670268687480873143807305707316836957972000713794199227470523972036878756313325694573469182462720379078707303735257500172077980280442382625820569542954125686434459564426952045638699928442540523362734671529394255835948682861257844861156841317065046635487059427273424701616649292149744380708273139453090842265417770105754190842701075865598688057216421095750135524660968389514397253581907425492556660399670005991227361229990012675727471053042451222356478568586680517461355827758234556136001695019758206735508186908627470728353469311082682898270126350515000612904238554976316983643435671876210956002606922517818908478902630103487600193163225859716266945541939105404310219419365085346357614438191217379199698157426744011258631881682428748889468182156991290483232085058339551162272331741380312281816061566182562918695178541617833733918116248897353692086453162735454706709347360316524001134876199776913546417781094271386320330852265000701029801522336437843807967665283292752272273131194537748349497752355887653379676054855349065344808643228399099635993496878754019480248589914470864382127621496952004836775037174615598037630645601883576321464214355443397273381804449862514626290095767814601021898272165729795075132209281332452803782979310872998770834873452958409967649845319947092021652601283021630630764958281319665986126409409206806643493915695287642306555413492899772123704927345601071377913275502693166224734136745113956646366654780624114050747017309544785157418923590133997752136706412956886290656911094990198767779399609574388667734580113154129149142632707222434878304426034553761542012985497425136831623544376815162969045341717157854201237891492293406223195542415137672194957716354837339278228080440061693994954992310499396607093819897540571309862512583111427024506019604990490798496577120454001250043549309875776256364490474944014612970600458427127443823966304088034652212854680981628759540177751568844061318086251857169799278681836817942372684209587272891390305329121417965742114657399936385055233074325386471768955612965314699715868271480695732921609182017594369654682817033740404526006032802253708127796170612282273199159776820708039202935139189083209825691417031559808171191139501395965159710951626624903209827909240463688852056313710843442392146257349797378728431345970502549847286696438903087463550481586238660844650743843431497629246052326877911512465830979226447411301965014584403107137794163555734612467863348519395813687243795857565773498840256145058742985290024221043815993411564798593451643623371232283685850142605490291806610300477833076605510476380092524032316712059694274261292135277460324103097469773618274758225496801142702052699586478067258109460218942061080572538634504611661475483373532697454971484453866933061091389066768925297502227157874884592354667843836041355175094896585512181286094625001878701792851242973790992537181879965360195396269988962942155837908575271404422493215140395715024814606858301875368228278975330757448247061716837925551278977393604107437722323757139972149771527992470237752950533218121182806425381587666312547104731851148595214060340563454041951549697880687086784929570905904580400285669526114398111773728299160873716432744469705719786111926075869160734502479260847382078121998802392623796410040036559936482076006640122625315156692406206939277381329340622689966029023189527143659559228570738262391877586818527935417195599966992430634221532073261911809636212570257515475804520203632564406605077143826344118204005184472995613220610762576663468603037867130389190284852686660923940328896184233337481948138688645036946874775908543481369013685407645089340558400286549769843674460734610871342939674151782748925994181670002290323520496738817572660210670987585369867046221132016251155725188475106659837516689453511648688373845562764543712299305067946347989539492348323947848195321397153566772128842476900014825002690149363977693548179292743229508818703822170384644956032332545540377586187007106805732641365725863698272371775998535534927738119975569952418325815246391273746903588475428117653061245885838088050703328429699306583054918410129128896050097268154141189866664116521972345520088455431914712314296051401303878876041218490744091894111417035085438255675707328148431335258377844151615660628537154988014090395209830718791580876318094309236918816811877895512302020432315209227325860327562689296236553911100711958713510441170473395147811757332139492571304874518646050949823968177734015108439677768605554832844844393658629409133298500410612483610224788386121907243996283281857950495091271350376017785408216093530829302182904944021344211792708506444828341485153988341282337785704343839340886939425071603146828682419908035764452556486742168073377420607452234554721761920930798538883962007963158954894360118004351590700101732693517532004692607638724417204036490938502533740652348339636444191188924981013691608821490367540103343290696175405611871981903577673752869837516153507655156300801975500045724496189491256120227617447942595701801270524913546727086044346491212643426589290757036960679959441213397114791319637223856100696745662183231284188065747375518255450498114848612845394464014282728688261734554233779063774417942339024401716510375095301347186944335806876961704975482168754876495507250121659190607676742629699088849726842930871936695070075307381312497019084784626901671119977450650705419111350232000326363634437161684462205225339600382795450364625685620004468057075703830303940872414149380066665541075158451146047062778355922891746892809510480802806827039183188756831516735215191661632819153740489878183518192433367688761826045708885328455464764419242307793030321429893297444887692918709758068260400509522031821999022237133994959959851949607234082078138929016466986100314251639405875558791888957697698464315574751027154956062918786374425440628897697182052743041385649938044133282845857184594876750866113517216356108191769797929087479788663897693515924760338134523152351834602915519032528703400509607605308193406986029726881363326460138286776748782290402305863947822719382042726957907426398432569082158341024426800254688917589560248135406768344714889766225654687356886394102539064169222809375867374404940786177238409721852914911980799276754075018036242081400547005070753139289323995558294431526108261399950390080814447285644767148312595103015015669512260256550870823129186666931351006002221062214043185412822452566171479828805407922228136454183852070915631105770462011620742296886891415447099735364901359079789614948906620623701260878832750343022980647006413394173528341380493681908165177147952332798892663310672303180843440286209258440522308047711477185822926358234422130338094476247097181524945483389166817481091565789629454487181577066671462058177935782603090604193109406366205953179198707441697523945027032219194229724543753534252493047913395977781245031175595961556921949983558697555329539687600344866090410856503304040781513465807893302043244548343880268223575367626405834495924460872875246996132258985829209215747412230896632456429236427323661346276821063187274566556323832254731750640429959809855705800372097265651469753047901116580760334212550941417961801225052727281744448400404697210363414741823595011344918392245494792032643801391240278338777092323681317246497107898470735428874649610815283349946611463774706517417009304350943258723449668627711043781304666774148881816836258791455322582396347148125774401325520533521583688526410207291837435313714390724397915465438406687305100825660219364957012340610489871150993075592269403193681591977393358569287476334124940634116270685019258013586881152991693535197854946760042298725823327649986318916993764254682266406370072774750242956419963596221714520989493530239079217212015241829331436184890200784353983531920226806965266138526571144191190518128373217920987017898980894452285055334151603590346889350138512156312556760968678555259795475837094593717678277307066626422413767368568055056323993064099837919719402765768582690353548521283730181789049796157722148174596860450254828719339046732611045114254559497692877998203687645993916473439884811237063123476672371661610281079173174317861715317296040923218949740629907604903991676952902641204916344854708009950018661034806936351885567520723551417304803027385207326136365604020746422519814358609539016434236625849220834296916613932608295602392618269071484114554427467330349507433734187523265801526317510226501362304574710855538328262227423558720740821568838978975896285195484717947632499260294411590559873846979526455632540231095653933520960011263756903857796064455415616694764497651431318181620986648870962526774963632069916686901673451196055343679690068575855236689028398353696732425890026040655936857638728943502363950843447090155174423878104563485194033866174400711528681510921230967437936655410743260913169379714330146371487763164445296995402746634414303698976727010322323304002012398714119175591409602576864947120497073299550054983802956479222234365649315575078680941749264286021138894391999793597703141794329949087585248288990644304739164748619232579265974461654905024753465103862994472910480266393898355579052580141501416814830701556857969218671216950101766823175735642118730842604261597349415447179504550154044074480836014615997153498502694411373480908700704467991309400372223738735344291453751764266347561051348111089340117178473628777927649856590796467218617061218509200985911991542289570412379754673094798773383273187612165265237347453516040370958089133845763545517314967528258882349616697860527359226392850688706933202436123956422210447464044936610759726435064234137071039782682973868575585174402014935687141479962549519695785845292163788477613809876926260852397499243246825315392412312627038946524221626372241550658344084730559967533153783324420048542643749337422534544105091537211539973746388436595062332707828252622726452773419820825561718309017766508074899049296555221849062991210177708892434309038178849139251427294156088444004844921815820588092262448431026897371501360858839525822006340599906072691721582389363187666971171994856340374936192894505206943034775746828132683126334620353206062408870009402646233547771712225591375678846546023487647473733991016306175108216033134964327130619638387075222957161559417416599954081059706252929588747806068696545589027181332817828249603858881514509471594926106600038628568543091179989057589227828931413060690846947258704007434158586454279400638888811625515113796779724475357637874180259389320087758544140449342647564644110390496137232322313539235653569927612744572056661186333249472746125671679300603562944037293294687014456917952413674313894160453361828347598984854559151168412099506376879145164573387952369316984051854002374767124104206057964897342060435171672356222621140061856170887409552482212196674192780157611423054906533693120285404401526841524487827507753017690571412952762345343859720099926095259787668735232488280854640046034767823245574316603640330637650413103007753663938213982504750829697948073103974311743024389040576613492125600833649006633409771284125482339754714920843158982855377859228890630762745596780943961485788381437354231678872946381742766303165807719868757851773349993938831920277771000882012079505653706560091143876899950501859500281301403357368567139441808500728829290440676833223429835613411860300276329046490159381978207870227827245358900741877257746696094937680124201914811193178606594721002033081120572421434515806277950274326453976172175321962339934986601525199089932646645863457645763765630996319190521706483090910840680186649937919591367168046378390123513005034347520253388010470819627195310343056681519201071335242212886338466896729616456975615638747547484937512442251745648192264618499732316179072240672880307354577340339594274276738431410013082500336606165912011417436698376078997853973320778274718995597055564557831639470593629558486712500483552028947591596571024463979072908805719406623370504322732041613640572609806384517390841354599396997753416256097422809932204388393034189652659707660714975711991332957216667599164937165587100735697568143880623845146252644325767886653004264482552054626156071072170029574257064246459671497200747501632340923750045924983060809099855537177305323203895975536317082617485780148877013964297319334179525375984895116621551803237945451824204759216595808116603911322927749555514776230540847048650114027714368232731593189093381654907770121939460360291932881461419368169325492126184526188841135806305332130632067608109069446999975937033890998428156034460179347101929366976151472515468245538779592560126720596596566228912791480493501904957279324076675365736563626964621021051678037768978314520381013290533763412863298830995651386249864884177345527401465762595906494863441662079025458693961733723361816680850525816306398445382742628207242385381728878066253524816787766632050201474296695763505814096938208809497938907978188136301484244885365450638455114254821316783452314456120512305680755975276362744835171708245923968599943177173774232942718937349101834954915996152804980741529746119742644590128597737763231094335375405890873633757771153357946942644258070173115856167829594097536652249305329551562381032675817766106333332338053155666825256660576903364322783218641510041010931291935757477752064464152948347346053123411968583696271451076735851991942184495528808931700431004922448987894242589396554278456030182124848996305420220272780594713100704367113795888728284433229290416516329642129287321488799525144427808806497342140476469289841647957521966954979151276203279931621915270408512308462768436262570987029589232286973636888372390520665211045044690535920730177321360912370100914304352753815142194407911474456311251307243393073783841350721503330131723330429731182116068718744143907933689526592017654208960138586725452644486461710073029527122973369678649883107448333377415732120567055679465621294958115310116711441046740399035600804041920716125048074218707070590755769176921032005680258027132170156995648122747154995572012481254406719434819831791845833188236589442408687674271588039353213556489433032851031445853493719903102415370353247605023166602903469688791208131670977877684925703901725445754447666807426219689478256933229472531232061154097390237948224611097484160035263979426467030574817092544375150212280537689212575963496588724919818925939731276425496833750013494158527205650414186615878556779847102789362893075699306345485659662361185721345360055425507293896837137311123232881910225435996159638594735308522273311239740975853708303305312741453600154430517261080056001239283779755041848546030385958157671517734032796433605973812419951755554849702511693055756033375041860742090048213221462506662784915647356897838172350135861657266648987387904329335920387206593764281912897167354200542419059435981796043103733072653813219093315127998387393186143655610380169795943002048119939131454897894357402739005341011851380587907173435580077760718968625455809603795645310817512980564742045730322724595951571526599754191842979460373818267041860796700441627738189672740618559262333706176458843041647873398336310048989470707053297798206445090265984042316819159503835798158528677901796419994625501985988314321586484731377905701232048661088489656795142377165715697279321566091100827310844813408463929524643331418921371527578034830246003003243222692362722592292272623951267960584992995349756092904378036089614718721279671887664457292884586863256886501278120247862694914195145457891839741083217627074211976787326839208183345869503970108607211566464969795733648748988593203430342798287851474993191632812621916299972519360499014841488270146765470736949637285008288787620904635565260302815254300676679358789434288142809521492832238875459021162655901143084045255927798805354165567497319141371997522004802222440795177364544825644174091731115743596809970407520486735538081145491141704484415546640584560226674290343549543640030252188895268434138412801742782207187069517185457864605019621392451257662942083835926907134345831308653898608073085862370427111973186622272962179833993424612276897176294681415531142848467562883735486617856953712953120298398738793016632503766849853842879813719905084845882661035630355047011040679974541327302189518645755017547474414873930324534715991023619719292404721198446835912154473065468909302073507206435361156563079590666614238786994697188297758175993514194083787252167061612498974898123138284371410385759169612201935797303139150535120591149058275461089238686119445829264931870101493764587964031729134570858005614709137490222090372979931067555170749407711898960715709783780079918816846549604484321733048914233492750269418360281214616176776313141699248496629704299550690243557726658122303909241982958864964991632821770720778902070601513522138973517950770000289759653712820115827237957032939735591992249634003596698792436600618132915959451224412879450425851000167364559295809575323819210559304620427880718891558886593617175785118006531466352399859405342774902891842316500447442289143316297992066402700134218060479210416985956180358619072232249998815197651489485681574760965498579293308553109945611110261512390808227815520704968323929013037304018424874289879393356007791442600868399698249267163012382524836341032002836144824275211667053463686471730643788880919466645257627301583837309218100192002259696095794560965673131177189952033528228348014442239795981756905079656389044368374339381232317396496176944742552766644402779433876066893385560706123255717893154346124538691227757070845748593057856770549390657334749274223410123770404839073849302166370399671788364889907290782274926922935546461507699877285387621302036502913665656984450848248737071343421174265446893625182146196694615903307394819029082501321325856949413640540447357077971562160197931540836288814308304417261516529677930378313769569869398936054688666416606621015723763611510248470529983973540379803613197790756674024982714116053978204747554057665399783373481893325536874304163728194103186755901769963026860792620921158484568041616296917536470778432943190028051700531817682182735931288322857501922525655818928922812501664381187068674967156927139342423898417627985959506904743621861134906763797594271149674051351880269987586905047466910539215219231619914531213473445120460073982252953622924718922794896372400005857792509435732806903532669700782206376943600628490193235983639299175088817436852487778867418458919462158677153405143280979589700505273724494964447279086739059043679954359669694851033937833527490809782276099161756871650455290516592009853646053103027441074095871035406332219487235615367332457612013984510361483127535269586355873507897487827548639797669069364395021644169353339175143996614824697548265797622978881452285495385549160746079125444133776554795448015127638552628915260702203010041251405640552818427454315025342463033601727422554671655435041741177740232968917065234169566212660382394205750254938251702828294166046996664747039043293894465451126116374978271138739956431196723064112074965610460939576112006143332748193934103655534162252384108932000455449517484935033563851924607019033156798682022457369749688676969527461406476313227932623300383710105803259104663810623629320103125923517449589299320429807643343428519868861547696862281409557303973041408983914909387662050450057966507612558653209568765172367822503598634390420237400872760230812432445820345479140420269785496590199070523941303363225330136960784350592897934007527989371608712149172506519361412193191980504766271036835173937717564921981896138741208596364374950067114502171326545959999980979617757757649886966421485086115768904880785876190204244627379183888182590673315292403855296527621834787342106016367989108511691398371470281649088312899044211153779674043028602783152027179997943178232675471686107395552801705976646943615432974908745123652468594883451634240215639135420412380163237780049048095548829566044620196979851529494764929774265776010269901641899461724183444346019751110788115139359257206618156947208477829520715574959447939090825272265185386259996156615232922417613737802285640279814877472567644538072458991646688737011860195277437382106683784440640830529127396093494942676256484872107742152915609112850023741123248954435222897955471275923096024957378858207430562786474609877304706315611004010644617545226738657117197447938845739006519519469289209653940247464929386561139001952876958114759579749774261586196080244722037557357802864361495877462604052393339642775438652110248594868382043518317699459444942556106799213339839149116649871244538416152150350569655049309204719975319646459848189592979074645940711620649404157948128595133416648720259300377871433545220533991633687489417369967300346627486956963538328276958811155656140539154496938668554538827490004719967901417273240306101300506398850658884316436008243319994384921620968302994982086230126825331602694066252336643949273766657706098756326477951827531077383322382004213043721528674512800622334471340441538127447576811366343364527721726480686987361771580516502928157769353199200708891076702146517726919765888428830435242712389560732002699620565277010101830224059964998390015772956580207490163107205092988774251073516166349364285295675268973979013718162243313932999683954756868207559506903051423902762889081649074693060662573568715573543802631551817226133257146033526461245255661423435162232300531412088551534056165969958879507410357702631398427091970822033571831036830431956014159461640238284675168459856581699846620936256634607710671687053696218773645449331447048904525174873013302476277087223627132068715106983966268967956639458570761385876432758821310904728313743586071597135465419564679057535230821138094206021376017214852905710648882042693195127481812650212133308935974311085106045233495519978928138420601134009763804457202369389859949645463931342093788890896948222709925079098604868960169285014115706499534227148985777121350989665574308476025494735478008034121160001196761624044397267180992647458887199525413029247912444176495882647028200435307977909617359793508769360345222109405074792379237196574527099288821301064474988483617560964843194963628883736954553271112605346157333466416959180760645130185393282783921962799975812918974117053651501846309504687199357833039951922564582513195423668857017921434269646619546874496259828725478516284379692818671801589834730783033006132531714439603823467975227215863970720920699885551311272027952568664106867096733552839045638812472713112083780142851679935125910202844327381231099907435201405804331154512856330856004895534038238039484389296755720373131852919585217987634524869760971137784689726903955259259673285867937594172105654814924587789550309827881256228656209115831865263760178460960275436586435569503653846570409465944326167447909311613425588606443363912784758879661628468448987875339515033116211298422161446997112965438986981623411485146480699079294310493468029269985986127847825393530566700475907588254017056875471016800818142869531646231856478872338428891902990860525850668501983992914206655039892275772842147367432813416421070628825483822947149339839523959933010288092617165250078493317223512932009220860158334151347713195908870802826605513482675841013343428808849270694954065380152098856675676898332616149261191612157711753043464526237964918039125537746636406213954899011137752208051646910508492702842160367317977860596142595107243834013198696152534736497725475267546877614083458629925119106836582877575642412323439353902069145531600504528770968450595945996389599798039606295862780150016010328112666200092675330971967821719725034600717994121752939285794498143886768897507855354544859620660750244550532573492999946598281969853705754579603085888963006676621337763292705903892167373850088372357861787504159716549750285016066344610895331982714970309284282899010892463094948469075358454901923591834227687196259308439882725706807136269438181452720408852718194371184799883543117571885659685403785548673351316451714468789847298982934127167932459180292732042127674971889484999257640466793098878029017083368213974368319348693485930366925123650907370069189052640822231173515608075623016539138264037218148121051039032246711600033685827861092769990408884169783466420654607266887755685234869075613785685916371416154531796659778547939390084368058465330159868349156965259711583318748750000773495591878913320486683439636131150697417462364589642563764192344450583591816070877380318468696728270292329898399216048204751274206104488757076460741071882992420892912359372605781511053902307764728993565581783678291160698503393180798229066019200221209392340436553288205703859687327024550317756113540019803244059504322549019081424326929431016570851968817339104014521252313135595555006683272160513209742818746909563079040632854631323147531661639641626062181173493631996193793008171532559913567840172350531471657900994243183830695204601135163962918015393021470371301408294275908353268678362073726311679493410043937800637579049660931506376025081845769497721314561858826179330324554228973595552882148767887809133696130811736116463892211625635066642040877528651706859990232949711803552898838750371989715786230641022252998792393574265120927464162302182538549735009539694091970723274191216869747347782264305802887912072936937384377109397519372084599503387631175377166421836491936438104791824904987408431326160469205103547503085417438299174046621196130186686595216968360993059357908798103139808068527382862310059614752699636533666511280325476757125856268566709571742259731456309091200805281352943457138018468989769754626377360193818892996901417188125320802199602155857743560315713749746804930713585414471299456841987288736903993005468989022051525068999252977039327722916289423626924758513737952167562097689607688696047073341631798435505450715759792092373583418676726031280549154870170851287232076979763768532820410467891494941954256575521647056561649844267403514952411504624064424136488734926300045390407267444602811664742474283736414860477807662203862621391578389815847481318870008857774316707718751635300850156706167280366016789435783181019770869846948589368011566990833475026781774906183911327825863140177900514118059081400731265998799814776318120067949477709098950396352583355681450186373387662071792083422435940958232831652061404790747331381728599029251812823933239179134666687659902935844438876174251624600874248266624756952983393084890752198199919464093519175541737664546101276861954868656250992007326114198253517194677195334653785831201043208741649216221197122399078251864539877204640760786663978169483348138163339818633781833251207926266386966619492823750068362016242602845035671511526992966969735705994504734956167413782397613067904527562501258790313690354475948814995303149969133401270465276924168394765069264184504378484245090804627576540342554704903640482300531532711334264282006618418348175451332801035610375436549046489280456205021077790496322655585966800124778831034645078282995003407561986803398402360792814974602681339386088095596091563381165777947140065623922761771205990519138280489263701193497608557766256596299886304769964601687624643909326096103706966713255009578428929803612705036895411715838142697303173667554357699282910265835223050321338528480440200063607309300590983416129537839094289884340469526338603147547775465101198505189594731217588814682871448144582696979545835488142307258346126730394543519559063001473417508228971350336653659916193801040366324991565591419729904013612454696718236905842997925035708225404210729347980596377113313304931656195022343767741471451466634407950567427721899209548983298317554535951279799387562394739968569887758128097393377435042605878615065929835551019785221392149055784825505439282489042113717663191711527716346294329515703014087981186086964273651971463611630714751392495372739243034796398073933704716803387529194058006178501004758913626882543990627398689534148227557710232707396339157498406497327138328255696283478331839564062872429609348649287211273706623882521695498419682645526380864179801291334293138953779684785500941812462968763004183681861932284470524949660741666774833406266632278661108121231083992612759239623013985285775525951880256576644486718551256986182357684070034459264572891032343676395748920500310925131068660713401934790750973484677327257165254004071977202874060253051870778055590919834289832331704761167632670441743420315318904487946466550611904124482627022634319072228405729280807835524860996423900955262667547087012155171848991990301841844125419017546451868221354809457310770713673763416936358446972535383280303311712241495107177721028904683936430816487788698299510836497488137245895985743513581642815388615486270789152221440105932522143632116408666382996771081144252182257837825244655270116832230298921474310916725735690002743534243263863973265738187381726536088613545047265221504469901507623519809061296208756816033896261908638177379563153128627626858078326611414765098747519930208646809077708621555952774320890979264932236894181846226768378444699909409008294818572991112827435364627341130608786986999007867985922702979760575353978828190047733268809841971644409000481535406427552483391576454400532714768045011286558215293243766262463006961379110203908917449597085827326574690387962280909020237241701104307889118603487747190769399894721539661368857946006631611383976691651928736658099522763986253018884449087144499953787787701239784324538643585956185050971419791299450275818763672940764979103013857066580737981695815578639088989168875634112268234595562922877888740674164540481786604421890110953068472848164994452948457180218018775183070446387410237100349367582923866854150193428383414604733483277751273159118103527077784799846712430219721040582806557846434333238792364902554277572595790251411160906883710133782040843712640700334887799458694408203594711751873500443635728964360506541723624551986299414803592025945664719532908288396571852977390319703331153301395050829802695162004493495378428666076260723413431731805549379354209141669413413055045200898970449323424164566653773393432526799457399852814909048288708384290201205912297171810799501268054191030399156053152503289997023062307540065567459386492653888401562862557224880716200383428077250869222069002741340256781839600918888933086766403341852657610271326224800613388013003620782699433990406742281333043526485249041622552477750079400047088583413271034657671299455910180314113203383589793725248100406927766259194195020519533939713076611496523563104729628617641094445668110642047258425777513229176926283381648526694639195007580345585784802458248783521407120207008734504896029936617170537609056164690934985090517813805913349238367337548831730710141564520805958627732303882457754938094694989609188847940245639609245285076057535082100894839490806251739451220156331639667911479733273845135692453423843779950051349667019908267102997820748318202485772718011198503893969963105977316506110717574923580637633515502608096868673814692815278942444938352418014758767267908963157854843735551578419877321141885719170522557898376906407287022055785043003640564936694261992234926249898867578296565001487251841675049134396977017536644785871123613886458531415316434297341645429815676003543381359297182765367358990369407080222760112797781253607869632511933648118163693761146581467034886328223349678943143534504606164474937567127457692725227786271472880081724972465751289734714241772911064138254229335803293439402399402391645438559584636525811125223503387251182271280567566340600586731737301139484612857632170953115551968581029932616358492836682412181205394947414877869531655438469464845362948558774902347003716355303170802258642138743647150543995366699925536317824326265560024115340096174390399300332376372609537845867216301583449848504347722418018383495092648595921617200681013938204244638956776926891902283147670139052143240409585854773472174969801292442642961469092994063767080274171706958986606201958357274088024386463678063373456351991818833721043067714528462788982089409466472915747222263637690030060434286454946429551356782779605702236820716603099677662005968473441520295572443121940180414957407441053308892771501019919155541997144525466926824699020181291385586831922582710195160900579687028035643368384082485600197207279750764733939997277258397665084071166956066555458568968404050183145375008779840517457291837883583406656815605601422317072238940300089253860788242161054051367361123570188318506257637444046134209993115329628128245786926247979690736783164164348563415567308474291606615858929496344088764725647205375516879673250121511940517888942691351133944597229682483739153308300455588113165302777650066457969187312331493149302624795689650718712011207682515517077128145453821868921152137319541845330427877723477936815733128364652987904342835425894719944617484091506862387721500642778158830811383462865368059911230606005291860682895331374704256038016566433400138552532927824214029594724771669361219381041019232125235987267415721326167241107049870876510082524060633003214112425876206496322439343643596144287251229358480994660810836851513548225713303382549429772226107039968596396992452022123413542055937247076531926450836515520437840911854247670547391893517570405679508556458867643497308720515711718330607690911306466514807363069960615886109895919139990805445285781736922673275800720474018416150345295938884567008264737043135270997701909660010442596772018184804689381153601535059893279799068902129183280778147268815044442239471860401557145724466414339685472334457772717574145993925325616820190012749798990694288207659276019387778765667407879965819107015374880632316424867895229435465789688714272448305200346678453111521362065772472172784463196549309483798293506075578720127766497856944345314670709417083528497810477338158007755695954265374845182274987803350620108457091661401633569421400611607671736421247281777872409788214861326710801947905047429434688738502623092763352906796690797711686026521797848722349604396692674905014779213438689085778276606257513202569286622532705753151295429442948705040066964412506210864666708961988642070752385662264601490969678417457342213444642566773995007895159925934254169088626438351488548504826801430457676379044648313177688323167559661212580497373478415707626919770666862742538107962188459596981839661594885366306579547588907430621053073207128580385904769709099119782854487821233244687629688572982040388171022207528444768727147465625325977839874301021465096038669863142670412509243078289363597181467527127313855869779712297942551047703547457568476929288249213010889341287381456223562396968837327149354983085591992838943527544880015754433831465941349246050049200857797661397556355528621681356245122047445925559568731346775068917022225473320255563760223348099844539991922064734576831486208209869458060600181911713205208514884161262280439932777148511729366032693996572003462331856163442407460527143049389194132842227889942808121629660085948638582847127691592371153774269233567123308714141570135432441623768876588449861535654678554678174919681202522321137497866595875039801676035305049245543716025419817926904636914990050932467552294777835847555464300441923788086389412087919080504655609872781551874950952827120633613523570894215307102353304596721508238104540276867665075340987164209328190664642855645795785659529806142266815530866765636751667518377115386830836754001687780667384360254453990669934564437987016782230177576904177893452792219946182419236496063224223929615928184851109189514478470700046392909420513729050440065482254111388150923295502725940151047350235043696351098585123575338335119527057478897767992661429098021851096846872693996990280497148200116924682467857349718141427777984262795648294805790341272233769981260353173262225663193251145659520702805612328197339412105008834330070106691226536785291006728398460712483292136681786984266182301118727932052876349908757525787850713345281778569352516560350663191847760130284759480257315612530397232413337164665473165490816206863646270925648261848972969609760879657314899673282285909716381606538444725082522569476616021548576096862321699045286297078444403125096453132062524846311197334335432374641192054183889839234554776416745835394830878887844668632888905542681593081116474835342806070852801397866617554525980968994101699467603346129971521626122002309433776069402525472663720987500119362452608206923787253255390645801591374092976111109991087810053227873671247505844193275160527791534092416326330042809017746423423521136754621269356784986163241433295184393015533662267351134015541311960285795648243165920748269418475300537514332578693770763204562765922682605248067234706739452706203786195199699749943510093452752766372810251294940559135342754952814351288652569551942885698328201159918835456737183312632349997980339904011031696074278348915312339176790070949330797214334675684190046143217568802130723611668243903092562583928718685745316977438867342974920060688422261065941073732829943656287357103600624968322308001738464447254184780650103728074698847622885159693431325005321530477082743485167208042992721432237251447103640637737901415698020382542518639324219936961607138893273673726538948778916434563780639729613380264373063617590938770644852541863834478315258508260457419200396627467455230861085091745452749856573049814837585761381710914948461497683915378158235984128582735850950542417639103678511325446277396965421291550280496978018511681918204870061314002078511993111610399408071460232367076104662480270961011893949071262610710288986200154003730675802737215115807751893318291861511185264589471321440899404545485195860301901006531797862074321319472794131493877120047399092521819256270524025975524955553849367551058347047441514350581779603386774398067832009099937955857448099450291399616306837728760989550748685703489907002208175159674508066841314370809129394339538107117270606246681455738972854977263536226694469866032624163833408421452948833848312312965801924467065494601991183567234127623201854750157671928352384044932701311023711101382890510036593777882421561149458853323717046909973079330936563231553380678802183560813172961489908129513389530195851347781601518861728539827026015841051601208981141332306405740980087076416180796519467620825534324466762561110495745898370015609868264549156441358500372190718336294587526845059613985620405390028272372382625344581260049766881286428310064406266072464553578592994070776930891805274145081638218111060617593765326356971110266510463858910111380845422023688895929214474213077922629200391353394819223921813734402820014890945718957252365859572592789729276005972132201667985347478633023552797921676748064451835280230681871271407897446295659503887377951147060002796138221687583551714812872167674157047555883842311144858399073431981316307686779502635887726622526910634908190411814695776980954591744843727437137077147738363311121701199888592700854403362064745757961171837397000724396492798967029603459711658677198081456805455973653290994657839678682849876240022305179637337368785001418750524579032205140854527621183313394865070339202407954233270916089682542471195001760317955907480625272482287310641082973941385666959008208424337287048463861090507068390330736996410031967302845877440853928048805800114284547284587949939205545640829110791022060178016973384310718978812324002533267981157165148365863461509106798707786934241290710295543095411272156176702028874240861694442784318208211005871700678063666377205205138379291453508016247943997696124280171288439291699681282449724775352218658383335891943635945819771092425195927380809882437635924777724369564706196967101868365853097502679133934174961413303419178185230873438732901513343128106351274691471765773153508842274731159015915599752237273414444989044512709525097254901767121188469393083085937274536098707074672822304513064652759047781750576397334153353211953593459328030364737831700659249305427111320500788519416840147971723473223480776017662270665209430159814159677767876551754056486083280730051544915037510901919860453950047930978350102184713087519786258012895668513721230051579668504385842039234463137789210591182615323340350198069710636086408094943178698266416527677544951261857140178736310164547586335885423496081237165807436071738728499909795726337452699725963656392848488432387744587730025527851745349059062633187286659548231323029772798856967920095467678900367973988989662187604735484255146182398207325073067848548949770896294439657233053722328816882956619832770330167639955830485441749596038146909204515250264872659279069529242264861153422053562056049984100817024361663653653346211407867205360430766932120542800380322278505847638970399654295938399133037881935948038548561273270193418732144023302456931725454508628282821199097350007453517268808131771170817786958473867449843781464350786083347418447350119333448646575858552202947931124646553534845374171133411142928209924060987969850384645061580540157713346969911903809041543717241881475287537451654281941800147206102206127633025613599722655448019490916666375873929802902886872943233353622718991010870345480010229498465007011814286346076262514831048131081642116010789891188502115196746715942925814426908965466906849438698314090440254026308983334181627193091013842411938722205489524130128919396727819423614398335688409525360672291832354861914385773482391217876053035837431856144538410720556199677161190389702712609102390061273409812333607487815179120845268071778644875372729821205135654931894425826087335864216683600006859147785586838801897737066505249814750542903413601029311753927360191571842591712865872036258178598286086066532667557567444569793761117076823231891627452351899882687299135814664683986192032597098433880563485245410892013611425951385839521896893514773263048169315090611985694185490943398464686534008279597762101979274061130672423297830737844396888534612572883516821971318092381261835574303262691943484523919220127486558269319356806459419146060334299597422800020451837290274527554813688176247351891952711579491408856834503559965906695089468831730048880896062284090891525947354207394113844106571041795147152926007412751500714497665206333202199429434438241650921084833771584666138824789717769432532112254760667481134569878666038411576058268472125125237368975311316315126498075345209938993992422487932693899371246664763443215046505146717190879997668193385022128607438283540957235846699216314334298033577295833998898889706189499828579133701509739339229622203356772208229338460368793506959990158518261991512650582445753825166024041218874249935871573783126516226871942723609142382088129393168439182760821120774090625929484838239474799407326639290827134309310960490088883919975915148375685913449736934987024578723042347310243753135749321242841700088146120486389279318208547987758575979908578660034790113459593039223209597397493923254242790361060124911820296661575691451940900182654881306988756877911553788036023143487445737271378132377845384740653084368792736912652993043082563291665119584847330652500767749577326892693885731107790547410957887500999083924087109571194240741442611591025393873427853369837741867758205201379448428379017723509169390187362808796289706116634258759763131811733866651055899545546709550664049611971334703326017497768714082006042270004452443241846205820233801820825682538691950875665708807021539727760900748162830039044326704128378917170219346703228463742883790387123529176790915351298631505193312353210501913924120655273377882285826378929427800243856109809888623169654313848963389115115124630512212842318810027620830628740128475971049511107407960904550341754089618117459450805518860262597213607046298687730487995235520482722685955162576631262675341442145815734574664308936746629080703098203546550850271004990454965719117148072077610632454210655136731995786298510057423899142361994208336900147868351445703589318389032854224185304359840130002406999587543649990974399131282502857810097217196603023850918039300347950804025527856818217739721759361261374119993233800982554576700426442895923927271505736060691954796980290372730459603721096972375308520215372339911780704010363939947077897580998782337714377625076372282531591143948987322121299664179442714723000910336193873451028944755650427198842650799602689405521383472802448917682005696907289387441519902759490928455670584458992474964976049542293899476956914880957054888235246391574157998424453563286819760681613994604591207134651846525298705769811800094193306654284375395103301337595943170505902924976878279491403419425498015043698077469767351961844078927493982459633347400364879377994993041104100810041473322220896803122030591899305709023343830534409668760228597042338193905956465419716934175705693150979349341169960169220025586622410860424856707013687724543876842752078957983703168835360053990453896589115616837488485033133356123518468378671583506682009253325024085581993974539433402170383648130606062049211521304567976557469859897976487475764082730979441679518194019679274059404372070297130143272447859328575971377358177605022229992562651802301603308272975031276498046974127540617160244617929621945395261492161371735335167287143476330677260684649571705239253669009070137421301375432747321640020797841935993328533608790789677782800997689828030083646635766450088422677197247620383078872912566121973443696698391559274108168450944901686446061320170614785894679757422490330930427905603444717342991092032902451430305749878100934033911385851161723156132935187453199180795617063695437729634717417095114271435564818726601175276544089627892588298864810710028772688383028552383383071915566015542263574573620605358575268983483244591015836480037544652329549891520414693925744525310905229160549398774029352171844489618815789029467856078034437170679060919568147539515317297230567123855072798833747553173804049435481155341008954638160110278755955618718710760909272334384661922491227258142802192535774403803730989059887946945110402914293551494658221214381510798944157237751829538081342956562554046804564247525660337327149865742799475829613370803245749912449505166316464806327491178590924968383997827912594779206100102405906308607512405365679205569861784013853263718389180284675152864657520920908118205252871443950370351205486588379966617636636252416887359888810927413799312466391102011029744675917412426493558499166294111578530779617236736637995767199813106696863718426548389285795153606209304280533061747776119030216136287251929562480646919352140668209814102488292416494797251417851570092947387296793631271391114083152967739359169629076767136526916742153589064089751856735257535012851930451605825281928339267235537336993477078838824666442937134935009577303741586662595986339164324752704531779533309382484400765123771545772010745269479407852926369859735644243788941474504609572022453780936766769682256245321557245995238560822712105382112008363935252768144607773225387176508825300682286462809246924538929353287981298875983139370021361093188929805418633415244415786251662205769089054715424155720785059409753764912041986586837416579005559959692203925229967081521840580051313502234406784334904496461493054428348521877960979420633454453926610885735030092744572180459161912622027789726598952281460922286822707741406553235676619661044182418433565278635549594496555210986149143371173972591685892881302259370974080804176685065698109138985355067414406350346575152050210380285257804793209352358107691739106945077133223275824591377247046368453968297858827462815537624014642484873128267761254516321379463456258553947823215791341144484048617101953318088326600541308773706941433138686249619889535938693985360179804714052005708064760414628094872641145628310898818172454567068510613337913027904811273739892273109780059299924933367464075174675817943505753620656655355155106756007387850597646012434428565764189834223182891917676101691087650806437077574759287680692997750563644174542701575497330290220847788456151103131206990391970618458675916436646283542153334437587048719021615330103266586886352955813729129818190164793214168137779942574104519951776972740277534884637940674437325764011605768716744500629746612412343534786394850514202261541319755347438729096824233379369694243304818513769807850764891315749912858227721349715217860670941017629663294427152035965784900484517956942391993893083918734969452262309291059182404852532492250785818458862177828855071397509368482776943802580500017870795731603821411117186209833374527982627823734281845339219413107154407654594467614271874988851294195751351272242408552489660289633260069742455511047136479846796977016235425883114881316085460477797529012128773034690546019460955841357828643313604684691757645915699684698992482451029553155194848798253403918619349204300793611433316601747329485216110597567664074573388917432008690217479563809717360917432343406886854715436376598433632173875698922123099389510620056426819129099434728344973972157862587142184672309236831507658625029874679643805638174116163756018654681032148032516413395771362385966990180356360597086088522193064880478499164876069496790656344261772413681801577682869230605473861763853587369917372656321528572118124586983676251760589664844266985388236011319603280775862242905178293043881808463043162354400975615230650125581159881740316050529447720422633466537734874634687435604605225815967855675353202479620792765240942080040928665979987081487233884697532665369299092805340664480129499599353644393409465312166227761872937685916758023040135861313237241770756798438519846085722087095506468619537134850672271631397136533704218232661192367702244404143424254629252271668740718942011235106832024938907031295272313393577633828032646462423274418246162493632263978069208074944266133173079150680065525366605540782117325630977224966519819346509358317512813352779953389713159425555233242920062173951438587948492690719422711788919509023402284467105902946130429694960235340901101431046614833187294582153720187786624499094608117271684024585939743297656996298328508886471695217830986655562435323246972773389555212897013973822471686309213638950356256616108825248258223772742369214146406230716349918065510728760129633312861716705271013235700762174127312354769118597925141342563932482658416179882635572069037664576759057101307140895785635832118659630355112210614616353666255863449421885973481121366925897022552781866143119594478489211061380445868198555321781853061411218435271439965134761052939830571356816743648672926333411616947255910181156358665563432836669174394473610278591012219255951877198653670229556984737526319461997854947911550212148832700066387346440926707766708032973997572753386426380056142831652047702429415832758256396169408409738724980861736622892054684340875137673884714872126905262729333482784250789433956091254385244320069296886456464148932077672114412028077344226105466529069872991509901880753238186494244541469361413314129266053554354979535677097355839634112594188748955304002076397547347029207135003714582311697205507592630271192059490917034111390662543374496680516263228852230101451031173284102100724690192661870268737060869261393407791906170322666360241329630578372565912252838894090170283493987563478921512225365798834979437496696662992959945803479826815166845780282529636646612646279502368275542847649813893128861253874075575606347107181650135768618623165931576319198352550317719789399094755778967005917406138429874045624704182047950146922397561736559715486971212510119070378238182038772011514457561610393855543949004279811794942864927129431574230107644187091014160101176148927205259503532911571668784127994246451366112106381299520828664428603022351827073542087266689754181670525835664029599760166136976044020734017742344708374155955084576052169137628743936498397009148157156258405586367225347368499602736302979690043589898522252290174535302837394872973026278242400938295855236257455953710949338443391480464438836265017788179320008987559490091370413009067193287103082472324525445864598421276396186112114679095254179319322940405323405487242101450623548282608116840695479790139099756444902480465066373092693986943290387471424360029812769372333678473898141924977365856517924405638472863520918716251179214056460296982616451229416618905277406370445679102538605879210804121039826901191208981455499458053668288624804892912852802025122305175643835091014679120265985339669816288919078746062314246699686219828739564637034526829728157920242341260235840275039302213081174801679245231144549711766288481462854581708797545805365098336946355383073433235788162776982868998676892943989200194561130671249510418475032941097656267776828362975128382015271634222552761346147330976872089277194077540232151137742743200595419647381313834960099658545681180361933592008834666614856233109687046946595163111063933846874331858190121623608878347726431530924357121127735754092848669261875183286806610844049393993027277496991381124968588173219298730489770255534373549146521479802624617781360011476175709610264588685395344015450498647429124166215310315677852397362975828687362282010049570245579988391159792860044830731818147888864219597314904403685727449182417301096223254407555624591435797095008560016338091013835179607109185487029861004498761363394663996432887131155104913947504703006989211751608016083712096650095767728009408213076100728373138932798632682298228591304003934078517380177418375625055307348435695730932528643863419244421463440685605041856819191810663168342853439698534927441242794301462168844070511679151478195780123487257549073175710453159753839157323165764593024319229022597058964962188374466702165287400558081139273386156639669376971636105743296784030195725005817571156225750201388263003764130482971445402598844920180055727443323060547475859488700402385472395858660363692516806458416074544974110668934039694823289021517000680263535499876073568983448624478725671093974871822796887585375422662347601272602878771136441950632933918922693059545090072493655139314340360812253639757367638899623105867665955439178986480192773389969422547106866847777568455066264148141827120710461357805627856447107561988061786179018144498096914859794307785835625450715996809179822086441838069518344335841360845433352955267320549263711864483332743477949084703447608315704543955415309524937920628109076940419938128124415107035803472754850105883690712198053401011365564809329121250294258284392775720414509207427052374232336399417423204282796351113666367741457675232413810172530434650464073742190482346645021326309437318659454549963398821407444820360098283854551670979650407103012449731983014988328219299829506538293022452649652119889017480437701671230740367256748977328072405173612008164746334233552075661648866215517364570540472130463153011720205892517968953089529029029215613075474153688190120665213199262950173406336963507864993812263393052554600787430370271083756968583596954596511169770606206055534741580949786884200377969245567574350754680655149536117088304834204389748262731818388225909271325006909617430154507074409999106153587284827460978385866845932913119828453806204909109492069497230428079078590325000994097361751362713579412365887983991577146256990749232244226923592455991363110745064086163752494182544226917957083884321114872669132696708607067195095449333618587467563238176876967198830077680331663535155933318607280606635226367685068048752374198512355265867763909774473118819771172931469627224866701896530697890222410607355513591764907411776038955080124800066869317273814129040766298551472167433617793339974359926213533525432232807351556865416382339431700509910146420059805737329177155973047082475878000062794189982632289014476375414323009245694953863686121915624748664488655086996617003380005596007718188058713865573101487508603243660940603615631210949985345350422818446129323438134395009763198634310904214897826762632607611381845409700058109977351363121814443394536960749802465314763064176860597760207928222374411859237203863563181321203858495360610000964782239859091300972210972465796264686770721847825309181794571170350951610618178370887454150022407030511819245579404444508159321410903628318914510791083030599004776971021117100703632766937631513112554113819388768604313636435956416274484982908132454099525849023827047498172257729246837019085631153689757906643160715258562217672305491888763809365491861502501199253768863844231391698709164231033150806243803307065737225366787081125879809988438511574433152945483996848015295376500688486581266081466168632376585306897258665990123031410335591084101302573632645216967381357727370179058620958008104805252683979679356473469462301035160014475214895578540606497321695962204012083342957008956167175653867561584397639193853497268709930154755725451440964309604741290906557089296737783134788110541070478247408833188892093391275047992137840592122973359564457819298034881753554417591071811424008907092126907691306566255609295736904103265781954697595167125837174842141483218802837830694531414896606800011625955008527404139133383036158545344901465040534813849868749014464349680008761937706379787962770199123099022004331080532241825664460715078773214422662939204938063210968957775155821207382909793064240502187785866700656308668060175652374878535371420586267299714314409825139637003824184647091396533618115147461958286204024919010613958540745699063459607173863019413723522769796434719301717491179825052362195089334373988731565450832343307465887818834891642406780542323541232793217773775359870021187402298482682371415066141481769215712716260058493957904636165825080744594354603450398181242588895166982698896857344745351834715312924363525062288903198289584398320111951759657821970554948969332247381373416796493424338104742032655449714203443260648965886146502774970980017363566787370914274635982393499113473000585562997267407348977223210086296806522978093307079119488826690494854797916617824600276384267295302646515248908406089292227837005761544936130204971923299715962064880534228052134436119478681834583278717688855801143624100605700934878784844763872232731316116364450700782614371487853850337030443309058576005334953722029515175062542431316548805816622430559730811905304069654194351315453111554384632835952509303836796509952354705176640475967999371931594339333738847591375611896030047321807906119303084991622216843696717412795614482025452298185581214643238447977745355987397131830745415068019519605757319085016871378685857895969112993701681472323192990755276343721751014232274371199752157425072101294110502709759353828601329010477329123242356148318870403107214016901770406409563317307270235342971250500839217087158211574427865021219911676604017038173765942430791533888128615203015019844247675762800761020934830444582315836340494234643441805585558899175511919669139039758058710396777478817681286835828900295817907564931454694153873391865139517250638421731092413998537248974590863179298005522693717922803932082528214226701705842181601054426228666684872753298619061397741339083332135122563070898915940438121161701880303880050620800510247634082214699381421157372535913197625816348910847091785624946610860611421294952889519787280421619717431408607812948246928933106389402630561388820700322576499661555490735066557737944131551690385873739721258578484608611816353760165111164176212884684055234681449718261907383062788358440951184050387437545735214462170680736486436432347483888591585286924553024695180368129102056436106660490970558589988698940648465713362331805609946940089847448771082421970852616472672863685020639886616427479973066588473649474195696668409637585818946697191222237733388099668408450594212348372444609260330579049906657231479731059010993042276034937214949801688158058029784195823496202567902271434406091318965749454821525496867627610148350216640302271412798085029804892911063677466868905413855215961661545425479883672618168398214926821858203981704848443691139760526780361238771902013291942831391658289860867314454822952745987139103444483803303131031653817445675615110212424674302794778836673676659445404430344013924134933765026070719527276349651892433329123334250835299451371742663467384929542494352955515088289915692626592897601015595377564421103690248640406353057214063747914003923644448900997367245776847754074773333626094203966206321154452541792829321054915677714114724168556683600885351284815610466782951764670378570424873312206914654126630656647527854192244177260155309710063586836226675824268703931516238631867805932896948309784744084508069911169890575985979936016394721312828497150276079578752654989262530741608692211906910799251632642753469682026823053337512744215198019273505456254998402772157357587844357453205908784770562964364763190981023958439127449676746018715817958855714756067754618566982978133274175559236425071806991122005852288552883035461656201977110355565866207283930659679832429367062651601128221194089716650968637373106672817828237305011004982021731319638005634601150117122846298297445127191609861341647759478536474013139003978235530713748525259169517123363772645932255108136651746435082620689031715465394591528482611686649267574111591875170404462453109772154995261523629885040521357678915507902304740944069430431876705490261651880684830361773422386483729663360931377787821677110219340028985064900548064139926562386743086618134262575887589951055499245146484874639143364224388713609628607143815665642413155768715613835999015910674273302927539725108581889203578896972054585178679165523680751205989959438286536182949248171770964192800329727018967596047063115475220709329141533070771047406944342290950654170742076511340361537462719176919336952399915024267268551615407722376010108697504727123449765362342629028610505365184429055686099818466349085356390095604492803606039368637048057451449966820069949992566977531991322188469685243695827374704924093940975895448473063407726491984969144239792100873576414801828479372030051356832032503711649360443239755669045823326181742998640381406982073322874520776670787270021604353171519390766053069957539272079233559292763117162619448235054890849959725532766606902522521563424247702387494929332482503226364152840927152715228494992554287937459996157892047024568481061700339059798702971106027222532036260140217352688757181715576745560719139642464085552694930470375580968274347516227633359522932040787097819126694114194082688946275882757034282511786999110613343696700360394725163542138659814946388183660194069591671260597526642649969147842138793860994012963067932886845033949255916337691058533744635540362535078601293044235794628562441014602961943698423926258985262131814332816781934928538546927071014792245247018260481727168040785442641900410473168356055980501630400655156729364749248310168230674764961595402542637920747862994145772865014347003597068976944283630682989808715363033808257339207003045071823341950036490673355653711214749444263934304475714100062234196462527627461286721218147011320707345983089077315913182225584870519477302415777273312053227260942774772218526028209713257710652746458801334386326372712844561422480059512772233537316976161940379455166457169476367328161594530018239661736300846727668746021774412527794683415406207127962963960308088145146026489656350782756103414210356301715595332325104502452841848651549661168071085611647590768357538558709219740060868225230277570196938684064032691852431045955753911922468518744633781052650787316977408990810911149290487813460828371600632865429561827535149287730017889720683409890973077055088955984134027094526825125991227562268800351146214223301039719197234477117844582964668606295182443876927474843969677428518253937789457640344207467135987785264969216294140299133237324740407305888238009683756670459342209736557240806187062582635050992569964088114696590941760784273152336044826574200338223442272796669793699136128358343227942978049150757177736513281093227140199681056001456155264563882748235554209214591110319637884428368331495022855245936859477524250154906392807035059717379067223364526140817513478989162965659039392897455747663316494805518499051755005580215063487714789498080686251554652693621453501637808162930519601190964592759393550170705319754944258327861316186968369406288646606981845092679412844400239685354493268241199935026704650359605544210887085964424408178197686947997729423749735948895356705404950978311780332327301155385047101933616334687980516644638744006954453280399016123220858716590737559944610202216490392050488382775105048863347261106270204957862368803930027145508251409118275299769248624871491015148440186506362112974768117957863705337127327345006453902755885072153059219753789993621298615472239881319553722679844153745305995089262595618801054636267671135953716817895049396663160418726098151133955207124163306049609636547775486258070070379614765344493854255496760481068566477784667850971273782646786109796487368609271568332462343363939113904976720974474556456000963972164651911272093219872694049295808958799467282572172769786040270049785727328493581464113389457313307130473046232236518442124927614070548666900408318425184166840268402500414837495316120618271118426050134475484736149350652928156759212022382099837255086433217779561509616522353489273465364131908116901696859912412025721475679816380181246829501979738397213269745559731580635300447381169524487885049236781595861335138690320389662333525002893579569402466338970420668637169559832960767517989166780766404291122392962526108195593342465893552577045509747473877294326164635050542819390356896609507302986714892690757472776141272650410269467703897019670986155418223815988115111292303958661587681923098237881407771696992386453527796085567802298970000590384984452713766879141106766969786270807919387902776953705169825712857568938517159811919461931856329497670934403621392898703508023617253179937697823500187539755972280160529476452394844349062843794859278045453413268994786662298995770479034612382789907780104834897332062378746460073905252469250295017495318810831949586850393658515013245439443727127825926909959136470239620411724298519354137315968945172858140315910030358139228597548856750111982524684074048546757374893417062637756397264811659477696050025283620699697974975690903629288956874891993183602630186958048864160393763728270716149379141084444602811470098274875654921506619915573215726299674085393877621399257419045577939257245737675722499850775955971481163235442237205906717998888934336644495534341039723278277294237011673264886423279777124942038763352657513846760065658999633755765535975545809052260831890490919281532571261176640766046610057337702658162932146133051794327176473480853729843117236128548844614956199942769552074778166713126593978940724255787449738543106673847608147616181629999247831346769388086524012154609163391652481457719188778701228076010485327501846604258378340375474983945701168245361563638905111645029359358237224537004047905285209025302976574013686337916172665181965205346724727012941462237875300030932208963577770659471545347495708391737007490524761473439839103477555183269190031408390016032927380260246201015925455565450300700406567564202723429597073289291907948586353161010860505229514329960495781266471534288491123316052479459870551212644370074246328468457164422062533343347173517603606097807942233263204923644348371461456693636877840806011204091876295548094766020200721400091215420774563097966314914882560714212466719472534846390749988322477156784992238283261434333960713635788630872697398485281936503881014275777703059315095473067293937004167018467907626573195164517718920591435804134559160326532138194537835324039956553532837175186185039501811008219323677587458178168533919939106248525113610587117810453633246679752442033675183175256673740251045758691567070067394571070975565041044185986267199506516661342929101931203206018995737627050806034504460001870681563959868235215349372291105583084172980147663964472937086934082913810163728718717457518449660480357012424901240883427881066522144385280327894054974237194616118090946083362764074817911723263484251054936817855670255248811350805563429715108081543366172309889455960071417780078013529787518714809575348002593367866320913665920196714903123689988246414890360096794089769658920277989550902546829202623137282928395285637532858275344106731051077140831264016708103913703572634383111519672490488398452938306132865529776774207152908489582637943922622559492071451084605067263969999519631392314908856580401521880368890028424449193263561726263738314181345847990459648004719381949568438643460713041788799932577753890409468261391214346960457761032631020881946204120584267251840088906717723759183933435356437825866080966256525486002322991779865556687486909951889844008189899756265781052460298818426200025005254721164006076564857381520096062832712751095485789385352053780308441331982906425028832427350422113685084486956088554164672667004971066287762633309590515064142936651733753928704998104503063702899629933186171893917194497039166237688777983823096900552865755493389012954622719446851546681365085359903058572428931400672366746092368989732126565318184923949186837359687366500490558395052923621934644977355051258622373632757027866078214843342846207474019297777690889899373184869665171350173101894163909924211347873276453126789649063371965423046089076385257399011012391709546825646994570772832441047972899577100723740725401718130936346616770152023947350184560353425780196200496977140130400029000684890591762567538495037478803491510430749948946498047114927866686801531503807166159667482831978515223556059894589343374888408354919757367828760857825828355090966038257829932883800546098877759957614647147402388828856187378606356086060532023513876329795968617323432833243029943141010317102012386575235843107876839050813384746982111902225446108768472513519151801832111450435403645131417602940573399879806869415564614912230082837820078415109350771258852924897556992848488955857834781277647734105633285815529446741631368163953149184374126805505883783486476665121504081650914455047503654559314854698200306369689966622402796554320580840992596280045259643248132746683870020944759721729654250553479677762739832296982145299274077296519770395374391480962536598202536162117030650723830259949434500695013545527141643488438033302963709456768497944737668230032945081157108234278309374303398422586327784201301511119655540754130379877428311602277381024123746205261274111883711861733818609163293869083690482089445561933224891111044769124299551139707335617119205365758818218135161867481715412268379434768602182771990873031253866524488903633222121332368393031998853898093310614814237709142379571018072921454453589916150791261026676843580710725160842026610979682736054330893063687053916744856775168854096710228508630168361286142960859351194454963880727715904513121937188264847701970412450683251746153616813108859017975816593352735695976224101577862968699302761729272169006388898021099498994401133399382436065209349635511593859348134251857066128287626276770595040655141337382290715645042587373837589173517281534974931441447676827090434880471450484869025412632549662180115488538962253038704460122102513155802106618587419868496046304224165994453661078973358836802615621864821138078784750289901190824924941959151815302011069131090484731002598802475496108387178786484552666092933787173486204375905100696708745175173829130526587266244802128336420648098540217766682582373442903818302748574289968808812667961899383379985895628976575310541185346865284937780175373101022353105145106198789727213427120471428805656457327145868493200049415311369239736665849731666540903113054617993430591003489631605933347228276745742972589407530186806559896085272320443372569175905180594170886119029757655749555611259461032998357658102070281251971270567920722432524046952160359513860185165401156378557423637631176602123116326962932588679780117962184695414384773613835272952182257907203983282503570182056205934772594852376713587029352225080764850834083315449167696554091741957418941905613409337950592722895200866494490455141603768490382198633934245109310955475508545292519024664216922496205733995275628451730129599029647421145588128791395946070940313049203905807811321122962464591723169730747100363723091743051938206215727238783657573020680504273307301859853046726307852755848215893839626506399287980236773274880318007911105887522791136822300185007075378622135801314981689325991129496969122022372247429187727527097243654908592736176467065560125659816410228113955885293218929673064244023940142378901890314343604099576405979238355348727822711641342968789528550448230078010410005751484424082146305881970259120325750357747532596505152927513486358535069566290479821263990411967868124050353590963481248315676316346720692539459836398773648182264806805552417216032272602348322094926813283300317078595949797147910982296098988484026559508624826419822363351088976613012282307499301649092579178911444614328333894459253471550770366287322196908660793731195912598357079495902189108379240020971062243938474221231981238254292455541017652328503201456928885574981694832260418207664453252160504304311155152798947348791991428937666577603200028059066812005422410118205366367573491311085670670644684279378635397238619919716139780070556065569961885371078808630888813286524886485939207530828913809890022438564302469021884346660129857735999181368793152858563604337129158133328491533312566421212063803077950255528276116247893325462901723672438620263600175068806623140291359678023716583876398288266334477160996952854416510646478004363739225997206449965526449376962624997014437114174652344226678721334884650257539848142182748687355847143361025652346426221614234773270964547836268980891134379060014420398224910273519427853914009067044998944870051368892535147138645038076169296268038139618967146464797589123522382637576437912006650236134008835723347409772726750278876926716132630109410884869312789303704652214016093417811822674617740901084041182277107633001101805614071943321032359595099169585050885848040889922115243134617146181996784354423021033879845944145961403684000729159119536232615199571193569484934421826370657574322762220209865113901655957584113063948351592424410625176736588475002151352073766912307195151379844257430457593476198631762253807677651688723149647637070707302405167515099135024324864635020953352235543586705900280800897913355907919321863319905755732490878192932475694288784112957471563622530700322694759202320552054939949134476660478532594558285714584526158358103912633618721105563867387630473628728812545442826394398655912272660110981317453737610412150970021210456903303370905963653478927976640300595161097436095145805862549585323356487012639851468807149115635642381306512688261517450955008555222859646535729721772439332014785841541282471793663244254600735483214058603716967615872379301885362868845291215245005154132176831150730042856790731401295464120926771841774468520876749481696655066951099504793289182004108748087285866736818956538654625307562596910187268307819832432970987528310082585794962144633727002570460435294360725559798724331530991855902457388829939966082968171486210268089761873578822225289984964258926146867321124329649509304379331412122137405372113907131408443744932627619010117960323363062440135642542775795699676175148841218073958016320667980294777396261829552241585551289065823626029814960186914945427321002287614072497209348449626220246503805767548974140010895301139459151477439623148581048984566263170403873546852537326653506773427259649029731302167002671837624589249926787028017872312120029237552051878387378134259852685953865380797570883646013469583412359327064009407054802681496742437378196199991991791960632589404137465738630074614995089889946089783877363697445422108858104737524182941502204326655552599665477576297255349958101526021652365559025030481052019069032938672941239925569664213422961596758859740666715143261212638931729466605777134790759296170899852013628034513650439334071539716796454996014130047244745074456207726405845342853872871569688691150222376171093635902524141642259516646538302624960267655782587182171348841202673935476930569631597147689309558517426114432658390685258333541570755664498393379178055903836715590432932927239527128918548421634997153195188545006292868442372779070342651334810026269967148845257398179113522426525187824770325069851053733392996806175024770784347821052613954017108323796205644052108782318114440765457526706182211274791493420599556560187290059122493954187517029328486240049310607851994813880152851577658795338028422799414204688063724827911854403762553464037311355885116080888734677088034978526904998250263113327123434862312552725526739966224933974911641785958474520328185570689014855451330570554562448416928736021459123373623310580303203951867977649510399905133085167724277101570008408383017573525905819029735604718761754182266207042926460783187077244515642333440670773436811440407959768276406813387995631091894070285965527736354174295998564504714779337328938195150470217243966473975788285292457637254556193583312643740716453688557000241333565862673928851739586886011372269728914683354402663431842728130236663987164054262041392232962359723585987891759369665333377070355403471165765614601226679162743874317622645484885931315648633889613391634554194924711026269674994377287149878458761697242774590892870780359139995773514782147938678773773865939803449030655955269449494397767690519555153277693128638565446034796022851811469795748847633104616110714777069386615193144947789992926255187833376224297508747794824781976986785410484828652569132717661092174519601745766576512400255298892403976614090262588005219316876242420215564863472845048378535273332891254885530113551997804632044867715368826716101966000252502011700322540386453864406292323693740113974027333212903749044291902143699894770984543921210598864975922470494783897111846631753342704721986250410288730270516539456520330509582860804992165284931509290417180460614888073695810565946049249607869218508489855038508413666841518132846762786320644735948672751986339398022373137876053396147887217799506710714376453899862859095304011865080084603826707461013053154668819500242752132851747870394641569143777692194822873298502803794945601879030525081187959454531899881244614119926062772259863549696935284541604660276730370404407705317503325149098701751913573599313565926341358553022154428484499711315225189465238753056465585223663433713770191563344607385137305500684879146152922711599128221195505759869363017138556664820710273914855585634648481482131827619247378248116770102444383518858040946953399909361108855107708175556391162674032416853038243845566585379513173415923489234187112725116920647547594796392404029968231370609528405844772188375169254074821430161983993130636879814030324075625560166814754591259651315197953695416558471130129733968788696256965053976932058536930662989436211956637468665807808061993005558339443603104166596809749727691686152151366811279769758511511922123216966997729512621673364395482535459404959525065885774362652976985717227507261334349749640037540171126928469208487031249570644905648652872087909929104390094204200956040579611583958704368451968270703488708617216005992734696392310793238289842384524965832162482889294455967336874224236010758206404321463708811751594437827688896269288549090061269597410551465461719243619546296202379621745028950760198501658465608555447767851270653721652477231158946292599581403889994891849913339128720127920344031347004431700825555133075670227231472725636487441802198314506588332669619320287749355649157696410030453664126887206218826883584582352021283049852661895977031556271703560359780642643004659406513822726314066875902251168859024296528823327481780627314080970431508467567455858167125177460474824322725722166833574747742020365969057823901166766264311370102613040096007035020795407416470890474352562858126956086250018810794772543172874459311477488983899612267191957905819897836079924834084746813305779759917815186332533891834231580351814117541566671654053094742360281219796622617908239075612608069838225003647026637855366679315612578989905494238885947530309334077707833978808343376833245367509519154932013932164291633212419279369408001033997149125369910989500239780854873007399141481559150586471791409582432388894043138402019171091325163119783873197884848587462365479705918836135056250250026048303150415741222927746354883232668654323147232539345581661268301088821030797625519679206379084122297968670400748992674416842921969843224212037110764396812267009559111458501528115502587928793951423438427755112163356536474978481382373943465558394602355026477231540044264769585045627294052335949769063713271670739870142529840486890921845635858373038101713682460150547553390646382867685838475364053900471860776547911622080436882706552737101774006926267640508426600339855859960519346920551583932080365603721317454254720941396836922116465430935677404989304088574444008015070269422912199269966554386808554939097708209364277379853228278979396788897956510795010055334315851512641770775271864627704160035319125650865934005520173284091179260409374581006075269983209972713532328705253924053300919983309048720271744849090216585967415371307476032723558279657157489305068033024391567646559405353445678975239956074136642103683390903356371713097851375961653791583418565043738278239740158056537012019059083622979704204918324344496916609199948835868245347320318275308551411434166187248925014105056716859021157857722451427663577595402947105043409439599943818505022245064587841544370620189782657677860624939084678327066168512631662883536105199566953159747950990115811500680356237308907440905120506417673248793196436225623938981713071246584675669667785970398364938020436768427050687980802414071597908102773602422281705951163852290389261032525525454826243716825057864955641333440983774133323416869591705402034392248993056774663164801411519589234264477841466855932309111291683710235203018489439477026918564659854149236404024757097848028552037901182677163299428365122068565403893968502175640626514189085254816823935145238011964847437318783895815589265530930863386640109326804177587142999895736997933454528589694675861737162252658425771120346362297834462607800805233350481699228597192373966744710085974037919507959708383435489999102343580733487628233134670440154671496885821730706856777033132591880512448792698965128366845148072202310698561918002301581325791895135137310849493663487228966499877076743281037806332262430909911929767997887868103695519146714029469783408030377405928866597045162626811797875515800391571492791932280613635729289634197727481149746920621667039826225514121874694100552679344984632311992651937037123378530415688647752035684106039904672468720625301706651679558203690550285040455955836230754342936986018101384720234828699977110410980175356120634271781171817607959414077976374795354439816904741437432817344724657432559047374621499394024100294425790776693915092548359703675571068191786613442020981053012961670176722619118538356464000819911910291104452151665476778292294862215734583806729342844664143668962596716538719137808199972132882049401647654260688476370923348394240453755796339104485424544859798363589764677885951051740624843039389144017253885955925657582033252078266891234623868443132441693958517508782758025740457844638344392760044835069828235755058225808604664849839512180293159086616970913942435152348269492757735455040370292338295124391318191555368865363994864348362099611627607522798074940339779707533369569896989293070223041103321325656895908842252621655708930590790554286044016841574209584265639356568158534265677234625216863460083209029990377325288573038798588883142284974292858637254304405820191801099462056655982316276382009787612108032126297637296184700405280040248804415885080291968453202336842924796988280860365293970768266353016716660750522306487362301483401190079232096529964132065666767606129130089386788307967219088176231119116360623686104268022160850969542331287018796986353910752207664635039369364089790972876813744130157415103781676205223758872666540476355843100430118417073038876068133136948114853622868499160995377020369256948441607976125617092899461323967035716672201999751502099739964721211091462935867163198986554633686044150580960777599669943605991016542196096930340547279803825463604886304924788033292181607283626601225528330108639885437500773427679396150809565086337689080741825800863113208931174056585514840534733073051048786232667224721790424999697587339598530697309252854313900242362701542989796684695439065194443756831937019278077808206461142429253720689669671826506972897052056608418155205621242054266117499652324555278719461333054225461373773172352086741500459538827729268692004375587874916899028037756843708351031648514660637137057312451697148814551795579310277715581515919009289434232603338316078313666194712398855637665597308896893286070811311666475376437238995626184836594731585555718920202942470588409454383607018875815651925575624974154856004122344007080204333487383782562420342437654617391063400633265390543520748047362709594054161499207636447981149006850306780264155553310240424934989132377650517686952084075661554305701142705762833997259229637038973615713671037004458808222380812962121592977912973079503513783962095194910069431246062801719046697309175293695020675428713931756252158491994362332725598053438198217128756089085113353491527045036839605319330384577807732275218853562689265658224421760008573727207051668629034202046869661942602379100332062869445388317348953985598440460608516768543810766209180584233186698222943710858714211430432533679245947400382301523915096473952803863629142417137656008760943650349174141183027762937983634490280689654048198418911248876742128519538549654814766238616700982764011707661162360182421463479424802455539938779536332050347261610985341115619134365342940332759719966707713976260741879414016411315194585313321360342039111959528488349263100122300216195987264881611484698671796039165266367631976284056392979550650292207115489636038174937603877628191451217721836165917864031154804044024545008080438853958150779581169717760056785680764078175623324375437289778463756153755061715362394692387097079526437769521384638912373898852585264187351008308623090394920395723409826805321793802277370980411917958559980759043012560704858059872947782425896148683212705662748731007740747576054538663913238354236604547865523952279825145046206122344390422986437361292312532054954554040338229417655254698540142095367011054892553589366007435927858584130057452822099547053778281006518002787237715872970333787634252582869936444008952961103415504477614874575155760014462696579524983050201317391640161006221219945150599395406231621847993561497244301856447114299013206439880589225277012757992431532762547882481906907034507772369715613521585027360292328852406092604543235143820481688055971015425842753198701643850715570215479265149426900883253790607343468851598712930203658639068782693861351664332262621999249102659806527950618019833684134770279073908605377263451998857194038547723055640126470384225841549813504063013880095870935848619822973620536420687808699724823095101424428701149457300536853973010183537526843870014504680671602206273360884530487474087805030262512829293055193263798589396682019048914846833599034839708885750999100553983051496945085629195617509112225154785986767278642152222855430631354457412198103823677192363906190311525892881192482842411692609015121678865606194003171398963118079953961977839179749710060013913834291778588419864765362095923547288516758794360079234211946910475117977718844727629979720096885517176066686259044261570218262615147663387781423259576393744065821936205667971993485838704209824363247371864684639288764261586202614815078485557405261152186478689329854543654962991142900241978138943928495715394578287535283835232796111856978551162641774896886455976030717275854248349705891871959107483306382681022311481915623345325186141121328168944703010237351826521982354775380330926311350258837144449383243823714205124050752014580770291793453611797803684464843515992787844514847776311159148973055284484452173512172990981588445324378348499925302684352425902672227883897301226383091356929345859224622663703415710225370380073174023632810137882049475513857501236498566325379837624125972590972346983602902805724791734144887146072998548548076847641716668419153866753542568603232999158722008510073148472796937779916407301191400010409331113179311677531680758780461864147244734747876289235331571166814392100421633510862482445231690292844241256897909747663493068361961382047606308539394305609260690954877268690060940742902787771339477842170559974742633065415685137027011331394802732149280184108591121711048450578208483193508418774878784451302509915132990219357384487204112542871261890191490440636981369446431663239479539500757013160349338007405665762596817951553060144350216584270495155910163894489056444440443306945577090426872688938891570857869424366202348225049366443442312359828582083635732555660753062677629505615466418377011984334169171209939776788408545610222252185571599200979829314129180688233597625267592834580774033917781982960139488479543955137869537484696064408594579669090148405509965520127282848199300566437060496097861278765570901065809609594830478288298274794615568058267039985456778444930170817698558103010205017602102069976007348186711949666516434303060328762036298939123408402629130721798710611661850496844254642496614467301494964182412038289084580193995402506600039731137067061505440159739394605124655664123354213941595474450562031038740949148259124711338116157854853363194093343910270947361472378146007761103541353311511579404668681590290660412159708581917461986108705833517301159303810886745492792241811368898680652937733907925018900219805443767380945119226035649553179946821265919212855903931716101767488112506172138512548913053034572721218911326090689429003956525383743515460335205035175193389291953055963511486155380876905362976638238912035463761756812892673013341356798846501920450931234158721486154952489447275851309384029569455087641122049438595553857172395001924163746474906023486693174689103754023959259511260435341524660072495874587442213537480888349647542581892850494366099769090007706617969661437219906939157618492679361072518800093322554972272774319067677677040533585033304539745044228428835417475299191385452468849765973124950245981924372426852185147560537207931436895681518337993263182812590782384845620426362138648452900056756833377713653135579665536497007036656693601973789821392228763491792298369219931797748892975031104475854855170778886935020183713078911656263219279878954814664930364907752918575907607897792406662253484421324729947280011051517049639465670134918240981883833376757278394009945280057236832695926195264954724806353232625391381408573343104374579011326728274707755879394241789269590461695511840202593850833723943718164709480681744953652367468011717173471775564811927392984330263254991506776970088078786163836125740342717851222420274028455618546437715306482105435579239856041301063014697394070310605862598525047148507007449069236926365799608540824229196876365627094022218244283556246373420699123933362948423037544120454552697169532970264181557375490058632514843765518413550932802412080773541480197127704653753560095389916128479561887509380014435316759143958058543372413114002324469637293444267311176191127934542502988633982091472297013918012779005669740669116555691909488962085216137743148741776076691780285838547413771913790000939924813937027415056861687019298623822232349632947331557998685989781466075207674962365146971433711928654392612345119749907728052323079484240870249904321850598992383423520292363356147578938356179180067630906993438056075661661546948650390078152902485495977654122437169120354818360420525367990314360144440002448819037325580170552910110199834510498858454681581169532135045718363394204927761052293584120048862794225103541510097731629096345612244425366415297568949960722183657328914489110263601428250971964654918106150141291155866008474541213559147642143296365276336704718654712194661927997797858166741445331079583445376243037913987236524335825663503134822779568104060385651988840571626140526145694514534713780639250168725506411085052365123623287535794668696509107381370455190184844759364591491112218203318950797003050921078889462640739469872359130291698858238875120911697065490573453228998799778038014386181628343687604079636632070035907228043801998247229694546104693217485528701233628895886034522596374219391252004766051779260429750681388381361103239795636419755019479173476246027671849942781670954368187873952630987475926725523263656678347841182764584732824882931034495575056187562583891586435665730552282611412858540001182823614698849068320714897538419747431386777847743784284469614640876985517587591007071968837685694148825944155419153433631841703917107409715246038123762412567302421554600355900158679139105199882792722508811016511043331303364723276460751011824880454198325851927208778635678583358787436273591166573352834503128570007454066997810053817472306364879137740804092509644954671134505841220810228084599535357712702029443949517740128949201420015958947916573262712048746201312891628760875337018560179897307123559631910381252655746566323322512834203554427878529781376498973481283694062566802806899076387710719452128409041127755880982682584641176823612648151203441918554395461641055967050131848384141577934720471277399365420945763652438129181470514261471654122447508446166190277533480107736684941595730906421636223140805769048494882711521825262489550305292547924917713964313601890443430669881099674596439896340727755009776437371628065108758351534104706458195503455663627694532207919550841460816416547799679202808428131847166147264368578520650070805287810215615707392114014172890073685374733782825895464492458403610958266356454472349512324511049041013716344760074134103940041421836623534787470841873505855412873141278895074189142618770413772366843702350963490945356152991197885979283708585199088520616802974236798999792675769617777994883583147092866780146568635823173746616654993681407907821910103829201746743404733945411062568093639998296800769393992899738419291674584430430814927179485570379706223180448805156842014166060033598508021717934921327352171355219032591120694008717682856572534815160480967545274110260630444531828950686870720306279214291261529875063153059940582806424920667617245309042174947830530294554862374163272909984037895893220823141451791314321038405930987172937104791254277310391253792502725557930060997043889045962926521642647284146083262356823306609484066421580757267053007809907987073984848518153236372229461703634485304704295700721030001389723812008992546987204382608171601650133531657935480626978110850549970077405640422724668714996724222152825362402316621762176768832855221331127513837243536414081761086000689389449945388361559689879304887118384614427733218166303064966557577258189126183610598252000976025741587377622847600869346638821880321818572404482721450542636640411094298566304367443365548814269846182844631957789511001832503950224193108595754027757492620003447668189552533991481186545910319998196942224318633635824900054203490183354997892331132150215989399808859320280003839370359725892879994150759060628702852137364752334378840012571695314001975332569202036866590357904240065266742062133514632587137037154480910242575822188973686264784417252451472992893886572284159739077379575939036228741622110545707649455838308143492456566225556433959599876931471743723792119237906403336853499956472640935257576287276282938701213014591653062845973560018150998297550237254172803336639520499779268523673067465543925866498907979425591415898312754421018464463784936079145345571832207486006429760204766840743413131456387687664091738706541657716589682566904892027701807078712373157967389224711449113346430837137267342864180478799522289416497322574957143646918286541201220173307996641708312594539449868458991612667639951571167767521470762475098891374546449095571388268875735378241676446242372777706820867664560235730050481805736097409438961751381470962654794872473949222209634012448086268771924032134443045313310733694248208718861889901371328551556945143003073526027526825855671137083617398236056927483564831803853904771990122085821183945407185850857156064121204041473827635373860306225290428698284052115286473277822587606779534699080334156232797642910156130991583602629973796977571425702212838076306069869629262722236035196762239561591848839924324591182652142203981962985573393352653044235315086831865615802625338700893383446674418621315991871074138077784274728645823105124526429851498693305086135430407920361823630504883363855742556615972388810726388209763905079560044570923786569536418222261886654262559941041963579164827918838814638926608137450540941096025257768735016852311150322676532806174466575769024647342410862478430285523285080097259525797027043267610054637144616324326294082871610144213444686032311395489009230643010880161565189262098652532670591904766365806316237152940697443654035672906461581730271395099395647958763502382840886025882612700079469045411516638360446775960688463776985683815489372824823634819622676985726552465083582756560517950779051319026258138037842526945428224946322688548696817097021469875544296201445604260373780439974492645963252740312567028085232729620219814166898802618734646024780252836471682198251920831183263286917994143504297270150744618228357465442076299585025094865910435940177767991216172405674819328973683437964833775950441689085055980550591746788824757870710858520912003785848552535440213096297517616668863598539602085113488389135826603398309267870977725482480524540367636321164007807984272804194531943822643728181212713176518398861573513061696449778394767993601594377834559267834856169484502486862598616982069572745045619121509359979729700301652830203092050290967154808699347181626127319543512679028686238722566659213816355357529993412838717909192246431249400178662012795654940309022228737038933994318972219570479499077493745632547924824255579984441358891231024234579872907660185748882794096326598238013283377675422382365419494209347875416534568995512920190547838508203155500102055661493084763985247694132299660380865971809793332450206420766289321201143069721179482301034671233190394148637660451705295903502243540481583157237747605687859700007364194562118514885644030187078557410691775637285162892353732938488276303056013838856684746188121271073251130381104095067912500547852271115529438932797121140135196198238369969998823355455177128923143429492129083739077463625384952244001518759948991695936990201591721766163864875499225043755208800802296604294778596057709053994063208411888826761786063405023641434696481264143272049263215036931028396513248366849004505547887086663218838967367144997501073409595835695330024877949506264977787694901310326411098211383585802727497463809274125272280808502795594394175019710105383754444465348972895524057824688275935545026635435562146692493918738866589651110979938554726680479185123694233815520605555934255672913312941657728705816555220354815351989825682051537639984057655884519962027511988475728187538921600094586080866057374574595538980931447531584590013283449908489437026094831670044126482757574937175462629222589711502317957555571693443723300803446618012892275278773029880553267861931865631394715703867903846521227350586707014735982870271535598558693345355145154977478739762040866647274622138087743411193494206326293770857830802803230506375745237972076114243749222530260106030130123162939969617483044719759139804940424106827449957867219589824986972869125158245647523379339080504919141319362276075705881586241658553521337062272035475912765641843390189473296262661599769310379119591509311423160589200672078273241188016844167191889754443403020754695069749516050611969640161465571647365743015978602913092194980472168559967096572966999519157990274432734201851839012735467534363994907570569862910067072457555751671310244392935289250435403937544114139481085226095151781021968879205015943652921022705095187024409626262183805600403734838976913783839168402221174526045754827408818348863526074663308870415822921676915253308883413004367138275957603277969244209854109282435985821520656597660102177472702766198545101873223034413353601402867753279200689192501727413345618881839768017722733899491731576937038588504782083701400431257032442857646766675174389322106542615035011889877748350964679977388543697799123509993005234247335094071047297347670666178846529919273957172246125464008670435180422740725911344514686601373072012717318392646717820416735895225376704634909981890972734046038535001722192445422990041881010924452336108409380743136716424039130010106274758331844981259791855976951127930980381452992734221217119101049923874992148423293238741589428641450705189226256296473695868086230193514605450202858646716578076954794610198778550749260253502894539597791053698068583171506648229676619426735622586599677340951573184672341016952468281776924973442714315523303206159551947355480280730805222024185314652298226255465796900932949650292097707722466269750594201389282634725207230508451335160713635735369255630734416029364863638402188919643794810034298300863493339483090646332494369410061208427917123615079783944277525662768448087343209522221627633358752322928712513174861513252084724408613718553788243683433611949215652097096391238383321871157135520656074288420286412179235342094636473834545649126818089798076952112127693029633627465371666391436385526554037364063319929183354515112377168879971407236169935416846159931989713735464740756460886133569914540493898925710960455016713562714471358825873142342956771850625376903426153406487827037971382853577097446988003058403994076192340891482016872596929751721111557326563079101238795722881078437746418466606254776400097634131152324204660735229997518249019819458253545901951707655988242836071072705925090084162807646319087661252258066856578446445105457593240062750427310336112826175190042256888707730221497888413111723648065448621496507672760911123678324987571158710694633426128466000047071065212304222582868634738856269371831350410491256054493727270956993761908010325834557654827453264927195352003774787238875429829755900272782543235295598775853670283897271925259668682432746691039599106659710261230530539441076186333079398790764841177597120115691546983226588020043630611613317492024887521788300024352147967550457095395391328105296207260125881330686291058966501189531779224992865694548386455623962664805628057909983007477217500644490616544594655119893521885738214665186716529655800443756621474633030433652298711776222273620858207626032510629613051939237634723827955330149261963358091323092225496008355404105505704777997736854944893462938829612508940921400482428620944948608355012657277773402213528294929143994198108546987586150293823782909648922323421983947271166862251080968405935083043234037512510324176732202951215527548646742046165324739064187726318574217780100173711487024929900893167968818930363909726091519271633887786962118070053016239601090494466506764163389821567084936962877855968368091870043507951460846674429823836499986990057143694001214044750242781703268074069864366288242770150135303327684605524215100871048897214553538774195656436573070861371183012762254956559664830099875121859194857543096445974094518229941468217275711615467494857351671720892742675084939159023358932683450100794415721698225731638813112547013009952721894503137388246181029574484089848041682162267645986457966909015259206279896648338515334467692124008342393193989966950520517063654595053379211146724700701548501066149597219509537707686206954268323566559547478780978594224541720269580373888211188439675437275241747214039670687648137274758864706011487235655233741014415788762530795825128483398446256058337849086756704831846477528774874539906615652254392510437455078478970970532364581021864517533070448076067240142855179542867755380876926723322366468939881870320359989738070394764302772741862105203574628215898374497960963309321636653559899934246591954922877199707477393793618281831989686483283935279815548134907268049680990603578067609291100549986829299679883419883533457203610315774163836767207474077205918044964110689246197464951167140859475634546427360894606314184109907191260292756275918446991796318246949523177768982321209516613705908420975887150397904789954101036402318408982788611174536469654379834497921295402196713858944796816475605503869078933426218612365203913567922643525026444734038007076782526578193314250701436134103318000199515102180993837536739013992540950755223850983151261462154017521708144344996932773078963988412775415060278548185710113245647987041694658631593478144774630507579556578024882065418301146077764867445294607772247447772833870043791096129290809040912646193256992825105461163369166173331062137287847189348626566092031742002445482256186977860736140941492329299291295970374427554563552381083646469623305748777017293532765968527992784314490030255993031212377089933484230001379020345997608963603969482314908981464912954446139403433993621727461263825680069278485788974099288525615323652906644848378173920046862414963804982574446949340033101677222833980956378446213167944451813322870503955151386491912446932990449401213740743200707867121615870727963931687760730138903974387818257089202225783862879720198639527941728726291401256258425584428814250202165891649601148802546173436431404600176954529642717545997597602904426767009126777544704323308501398190419702534614538108029545581492039095904544606279655846425689826259121157013127397409869182713149717182509009046780897748995008853771971685654265120171341784286311696895975261445975244619959504814598510564541029899571780680535698571372268259321744362996503996117126120985142448545440004187772329323847871300624136450434853989547739786574916304377560327649965644065909975528197422968834587271858801556455710531644617341409417219765474496825309980301377037733458033475442490780962289760123023434647300711861702687178079772099753375523469539955846595521069192263278042662306627727098309357008891412206419093348949453356632198758060640700526954660998356229751224018343146390265641633006444474532211947364186634080782806026802799302474044077421843586222900408103055331846899133749497131473873070397881171837326468324226531793478406803866058660686299734959796816741161535919846228793354426010201460282636142219841812521968209779277475731783658531852533488303311552379237472908519875335553291555064132651090704052791808627454067121040191448324133847871533158006998096700614715744274262114410683726776798253278951247121433161009966659773505756173221035160981215700993518896867942032276043672955738019730480758829303647814334235500918211285509870111731728644492502101058786695791965826337883962892373087798665668113255874357406029079810389523838536903903881703453773882582305722839161046121977961290702065291871977318542499024204877016001234410951643265888659585151714788933571019259988703405403289780677545323263233747902894617918084350619553435312950508529968494125847632357722566989481273241392442799765529430570348149429213072155069112457718961221287854260494086790871165943524773017948425923263300056276590398265058820125270698849192906935324535579301625565443206933862871120480837120712638139428892595612473757129252618697489195549093898212269622134649630557025261856289861160077002336709804571029557766254742312875179002997135543234928365546714997836801253345436310051466656583893341777302305168750865046794319984385777558817396796947856505395839985074935802629113561065748605284276631176720340642995700884160729674604601150754046912630010704280696881580869208990363093299509071470898468293723265515652228189724856689192836169088330756886951453365650857263446811839094456863633424003255310279252327643809538553402036502570067308909620725415084662050639734930683851214439664061183675065470458474673087689624655287562449394956414740252924687284951823103583766586938889185191676790337470161323880584744480438683233998039818416104252832047250824348413285366669056360518973897711531899303803719834499516906119026611944474126714671759417149682459588940088595716398714082897672192399945521254481118913328689863194466246251384684180129549198621812070036974001811522266334365510946152663244720263094778238623858635437674657134527176114685450503269498673079558557379417385448441498757490339043764192702447817039417182201754523878987009630642060199166711685184552825431112878037956756457250086980563369646191823541286002014609790226789466840486624717011849805296070138841459393348510527841771035657184538358482165718316999671856181658482276074459606905459124598866883353100875063860386673981380885199976825729040275138607723733599116729179232229291211207114268390399102397499084963275075460080029231035850992300254239709485586778422411297026078575410629501270384112725449286692446055646154948871447356743380626480841952203966760579544687585175848988676836754725402084555809102260935814901409704442508956339963261975800992036397818715849039873183315208692597342667440583546882630239859464117169701671370201979719244196527110171227379453243881838086541555977550864408078255348563709856365370741137099529199964270332609992155343826292980560525666250047564272001400597835457557849742948915388769665650563315315734284201022913984048527092470989858117174399701413243685692312310584062906943281242829932670744891556104031228103333977607435428666699471197371621531143220732759907764366556328274573261700608931322005385234341529460921000689173805081143050919108698774875066314393425913536091135747977396519695480562745305517837662762964041420387568225615041196081633886866932971008912203607819245489110397170890545636477793108735690798575715188827944283676734479902418295548164130200785899658450097570838455411607610471555921315303363919211701942091509841709298854968935361755279534077854083967743875233561856961122258071736622882183343589304436831509329115865680679274283633033229752548799819560747013729851065201606394460381564416516615524319974051211641794161612978177718479829991237647555465261925886005272901807435251028809056293235449867533692879477385415791973179203885254601491358189035583176399155061108222184928718939525012942484104634202701090557509131328057205115194007478843410200656495429681002288305522016864311043734821783720231418704006391408542281062428009339679169595086416218729343236221967637480195051495126307479426488766204155281494359710240800643401088237681948320224206817375827402259137997009420019903493467506023162720593983914260981625651033758551777756423930366458508223495693855643359918531651572919870892213341897183537622768427084754619732077249878493806794783390103507336849595376871521898283786531009737546518065255439694289122768134155020132446709369060660683647803537201603794979080554055548562685474063279533847247372130661616821614542683959435704006825627804248442518712980197267504263817855138288336555426408525562027629421359954067815378514536192180714820296691738420424317015568972384804707571541454227455611463697442929292978442315886882070139081690084597981076399190489635619294308075385354010824421945317542133818378262954653049782493171169035234473178779654825737298765826555839654354944492313966654580247726500968085705994501467767630513664433426443007959280160416271162267538338642686914776990389377180311505473604698829819328573432541049532623717502599296644127661591035981721301569429060785629469158511537699680145522352240904228283174402706529005519095467804592289836616515120210107321333651698808546669101888254464231923785682264538522638592437440881904728089392985246306843968555529716151115627866315272056752590788183543039266258857390140625370971446983435429999713653970842426989624927665730046627468738080647789579357147251830389355818043718410631900990738684785750054528890872898231464363022491904305656774131920416894525168233940197595761412725938442049000120574721212147181882944724294942013683270710158526086800563451704134645586952572324056793231464649835353746013425997247761067397253978754033705770911010573535259620621151270290479124734135230705970718485025106472576928714775799755036328147643131399516447055495483664121126458345225266089742918456169256257125185779628129818380660911861485885134298870352342642903950248620460185366790949181422814816494347481428474091231395551310980784389539471068044077315060614258558222944768746633530548837442737993510536972103054805421585444305388810611979237666832165939640645184280734092789236214258090985250474113526398355410991758551409190582153174400386010970487621932709590904339610963392679673328448236313822082625524095340762234736698270401926528971412380260360303092492079815878536859277758306422510740571187352370089665191039063012876004366500327003354471498853526743055828260194503594137909118410227369120431861798441432315303741673599289064393890773507461386440468121078672884220836524492524825851617189890484315589672570750553822481079231216457907610195695400986765378846193000900098121686612834303460006262951838227364873709632752306205326082934435584551309821547629618998680970895803367823385451321131963913712973718897068377475933532484129311862624057868493224742899336662756508104551215683502047295384962316755126578801418345226482994049956926111941037808849656792560856136606252397970122873181734623211565842268250079956758338095569103194773792580049823924205742413570186902637482895644236953041196269298534732259036243308997800303032810480908870796856908402183136750629864120962548456578582873763913395261782200949285107421476485263468804091098131126245811002907298378462075025117324277083899919033791246624129804687841229179924608964216038033444387863757459269428274503045663000771963344754710305399834636957808431264531025378860271938296129977098321937965026419895516314843865796872637090750591423480105167931081443353715710362369647943316474636494172218296727198202164729572322006785986004325652824171629139868551599215976107800261212862635409018020389131332398679792799023893917598436646252142360644228785319116985809121032458090233082149268604829548253588993685807346599650540326225985738090066443894427142137436532908764443915691472839357793010653164709148997264140830146710718092739539539456350299273014904651791402763283834935174263359815851004948745855565466501701461050043625912004408986628706882360733289106142908962973820134414248251949325189646890127896652708575816357255398289740222016925181057223750912419587288822489358257840963104873942282041391234052525249383726612668003594307575506284720605124637745464816817194386210615514764657775378229408974905238986295732996922320159623024352943908676217914507071565057673507309215587721606071536866660264302049302135070527628697129109419855899744602882198803809293741352740431389869362763878078410772274573535915680561328812658411100945849038199356875789037680426506081788901017009955522516695582254055801593483867468082294031269819533701815967393081808029364333153699954263847039756483100623067546845969122259367151198467214123339295184818631515559805312471517588324847381284124133502759896494709557097465896637338954838289480119083286305185229880113244641193225451496849398739890128527492104124746821864999630953239357539850742892739773712973677945300649564133838190409331078099343522028706525057110560761894170525739098181092238219266907048360811415911908633903260186495317489436752471908399840555209159362316501354720485470319281540041028579987499674017596070702430843128263663753322591604536048496868766766081278166468353389839837475677938744975778281972291527878550148650865618796051615506527235843861695046715683839095934679770031354179440835016661297257545727513427737973137658867938531899224291726007021114019086692092939614027452171903816432633715259169219854421029401492554056654355543365487824178657559803860483971921644493719288423626082195028507529837423414531948463075041992877610186707342452247685290081862134086552478567362823967599438059766768838358851529488840241214912715736826950769478640589108465016183314388733943214980884931558847848496087403929204283491544943300373318214223997586698240753450720234546218117373370860852595060134414107372471781604808148767197352421031558198444963592871548705313686824335446939383704629110885958022432604028791034692108060468792222504855256066347522806527261676029958816605802946386942373001679421166253633202436258812835002249305494118975678607268552675185541634737618069839647944891924068364976755826790479915831527557671351871010574769120399527311803107442623006050212481038362963216921629614685599365104268400547775673351036089742821366921827484444184752378120941612513071728167964613770610787055293747151920255121343414715150708705725952080630866158513794159231198797393099889047806031608185235825854322375248644222174894391290396293091422369382964424572201205790537023364423898602919192729270116035612192285783283155118702675450808545490027039874182535553922708474056591076160651823627192422878390244518411479190792020412412115831983989911010278690382739355439356705491232592059856901110650067936606515318832705482418145061618660902512411671217868674686968347207846847653508936264439879152180601076374306987191639204171742538591904458627254249917188638337137560260160677942776357043924368389083334688565053652579098069504051469282246096880271622865296060331999896035886507410583539210415871020421816878593991182118533469039532271015098794307874833843191119631872579477945318723425549309546600023100064472766201224639829124902615284639394133354548736102805221947156849049160995105434864887244098182947731869721699837180766134860482595223901645196481751593865531267703174302191296255451799543547445866732682122448217119991203456236380466007827908658096974521140721912552930116663566584226280862909512290271119906548376366329997529472322869713639803414857989509455457033138881026837279866585706775795314380361560375196421572542581438566485033238127039830992439367145964932130392478395411568844308832226112873615391681603701411261730458418233703112268912119383795107514163149063975250640741593900150504041204817788975587512652176769032369090226660478623953082737207993946233163438488825205168949372477308583039779131025791660829794867526503990604375271837185407667627964971280571534437955009064927259220385451571550461093132167319540305801496760899528842445368759640145187470790955234892957663317102864235858935958396080768981913826653101040248767607361020743664405451179677105866366070815047964841328697463259221487642704766253790140720810397952957125432771734210479307980461796133189948896685178180968812416543302953756664705443994852964289206377541052284029304285287455415208959170088431809259241719769833855420934014426973234980238015537979050980343418543006808750520766920965802484499598535953442246795734590146800358253564721853021853584580785371154024687034789017192207872455077344675328924263835644750002655344049940367434151832126303044837182029805512019236087456332336950133035734992105996374031937861981995091865384435575155251430446709283340090103232417766082804477255778523111392965370300167122704427108469969413596559634047527942347553055357361315056913128269170306463567288452337474060712060045861496462264266650789118777004982109977938386208462128575654480434841507849621782881200530806930625376352242927162635474768271959479788059392800983505419449434657620337240290756307812938216104556476998871362431787373000370607047036652254623959173623094845421352885564584101298906321359529241178754805820831567828763649813640763531160952306771702685530865020934334796982375675617828377048480683357318139197880238049716103131860130545544729055878628687236261426007847820491081160066843002100379954282684024105977763485676814115836436682696671613327431569394920774826667325556240809281929829032084812844675206280953238652417935783733441370816086295462276448980305457422833514697184613870866987084505776287604553159151984281645609005883461874408856983106429436411414334978445185594401784644163694829654117589814548497049183192145282842777521339706539431923516216508963983439234190962543688597319181319428532967651722208446271346966130999349861195823620760534426933134441528553593610047500110648704316935569506125396107734253365157677755973366446503916328452099406963065314816376116609996231265391993312551237242821904464869577068808697200887126174318860086500113545145796422661914590395490485867315636822142421300008665041932045376084702675198452293277565937297503296846430270908194117162852742768931993635256574089092292840526222350025681378411247168946393619044031082183677756589761894352431846083747947181891391202661210389431532786057441278048017733575077562703093447416803145015644846929895407429443128227935924011537778018680016266431124494584928013573451804241007200570498142339429630161677584255779453012919549226217674841581707989796242194360579989864943184482040381103535206201362728490645522109906298956913016644860630684516852976197837640346354342136380594564277730683387356063903507039095542268072620137536417871989937919804939569237882106353965919337104182037370098343665949604149692089567293175468935887226255626887219390422951422640886124776005240662264738654036783244929764477516674953572071200608679311456321003586169801171687355225338401103179236706671373351670065542434420074406625470526127492723813514937481151524364997109871283566880738837869526293521618715549872190226665505137450595662373255837264070315875921055151804117843842407112900657227877405585411732195619908005001023521891546407931759932581660522147802348087502470806831765774083976106173643224187895440884890292168032496304666638461281700141028302725086927778172678449536977836740059566113663510207567434475143466416364202376436754005413576531044880329752341757847025527496556092778950925259670544354803289269607732790709013156791010169662125064530783332461115295663080780989905236989482384907907402610473883608334272690255958235721695681731312991449608484828142989896280012419866699519858180295388030313002124939710913141377231954847828806129034879631561877306298598381324083635934480880875812263335141708596471574573614878063147544622106989250960549737756750528367526970815290729494219834521030913635111282432809974257769986926888817502793517329088292038681924820475542551864181796374959117640684059750608789246087585054574832429288750874692748045951545108249385042497421642643161067668958232590482804747570168776298691913510804619437603423042159085575077601167792921275361453091327495689427161327861967997046084856835287738917158212116692952930537189456853861529260206889433981783638390537716632262288807017350734813692927686835540460412578824673658610969894842600307517691279914003666488052102878176775291721949046385564720106166283403629687320809557564286472655229451719814899133989424246217825594318056475100048085489248949081031259000404330244827254367297495134840870736070548112090287710902798023367204751951547510121959545553619138070688023356776451438746154991219328576904086475609659795122812026316376094573540887695450668173000068256269142846497713917840125963306369250390469252613375243455575587962652527354114248439534357086707260595540400737298894681381133596323145281678868184291175492767180913306293997981622452321410262812645106757198318257646928214010672889522355964108822784615525865279650490560950298204971424558100367651259929004476524021385549733390566304839430271119729033239466781092969426075189919449205562756257222990221551703154577239578967373758898017288063628022095199447935288129073661296927452681134211520841511613560145100218907606280096704742411366098835230415185418636617319688379788881345296550141109282554337241890393672760195929610106818989878465752101601101136156737648486952529335650208730768337685617917017164496112762098258865978308384927815838344801293818323407549341494872732145195665949492423143422982296866496191163848496347977758512108921713211704888556172461893001527937352345379746705578332774771741140110875038908917962644746365167651170353638397688439450515629990861063312060667016087118871258236203980355596363759497416585161255323619688666042632112672863286112908863582964538073443986986836115038336380688730719530209769880432719101768420482213113641386230905219173325790332355576945879292246551002216009122054618211199636411376367226268306769856724665740009878517640841098191624484871173376970704911801869983806491879910322933627022675597804071938179308778663542289415381745579782749108608297638486331657234126076594821768697985789716348060529234481714627905828752022274387983114100523147254129315847447499144011637988940496113355456928759264366994641116411193929636351050172497299755642960533853325815330520298928439143250152395037145823161496508624878297897133687691162184660987307754863822690170959730594385469564369678669527478159890702185405634478776172682461930353875184649874579309395508289747725434718320081655866464810934173276274943140401448451617683844536000124475269629859891254294145244688396396670507629720574292195744656430429102510644748373818969478352804142931819088023790449567968758205030950564399428052780581188064060559903255587197298644504174800521476077090674025752859225621547344717583987097292275458434816970339974824220259268405640665542772180850029005942957245391718397588989975715288772976118914233627254587797144864313778105573662355166848311209358943380007851760322599966393061467139968852467025952026019633612500914510109813815099870490904533292793167018353227402313188306872143480256908280826592606605063964158592717787950460377864462648954571424972569807497211138576191102023951988693389778411260589271257663325797382563198697948610737420082933959670267162460336667920074744305791456624482411706445344324586883885984141637686718035498168054863919996740957581485296495519453646392864717446900198021630386719055310186392152905113696552437695821003382059083933252370152263556841610601795335964442783843404747340838133903352993036209458646345604604540654802239350468620903893723308085883076155587341273194244966190874508557419589351296176198019282278464493157129111394194019827336695485785222047226435256090103494492435614748520438953285960312944685032080362442999095720292939865195297883582579125277414992579825424161777799497002369447229237218551123327426647101315308137280796922250260234723807681376519287641985831533708776754268279489459525816349564067715182053314368805219337688894190469869411771568788134233743658521094790391345436530237320843048928740677728221239351119303540977047612040232293483800883680663414608230083816115087942317002819648832144568615741655168588708917680658218633345587212261374523157889453287906997270371231738438585037049679635560486550579730055929556159629715831963072035870125026968835182776032189783349935180244204322607093320125960041095955223078388439805731905227097668427993173752053796788199404766203330813633897327308160431646937142049969916935144914071567309377915173013004799037365904242334481553562702455056696819564359574017820958511881409773798693646928132720822943499748397356357248148913143940081387325438943281243514837765986758373222465426488952563851945825834229393408759289025019225766155774458847013442652128902122142391066469996541086351171668596385412563505015813707929591081639804922800479730945550909739542674538492576652670315826048474839957341937868984427704725463922333898166542872479378890464388329440653956469566392348201825610756128731239468913988365846861978553443512680984787916412967363674676820072321073479895186516706621757850058760910914199743601579117512818013535782616596577835141956575412272480128677615001268784788281863757767436899832731713788628683450056892168177399393148960508214268191161318969763529389475271168453770327179089583791261453158234701230487146947032462935039955920551134681002402500448132655863175947689522074442424132653425799548481736768925029190651020006044862047469184713439801393242821725206107866688026264145962692135556320486770069098720599763666950122937062537178322674178954548895197098448543720796151040698553285568518405544379475602619297064923140926276007070413500187689648825045324225288799317100111634851291682474360010867275570048462438179439822406895138286882056767878466228634156984849401367221927366533405956946364517361386950103577093650049190213681695371434988932851688450387410309712418871456511137229540438954713597412520507872366781382721184673910738943571676625726899541800690604740768374108502471522452619160448132726008520273897135907749076017777252309333382709587536964589229374941356656040397125131583515251754396034147425746691353151863754368248238312301788663414569501903473249003708879762252129560078942253792315955275247276197623542682783469922015831588754143902292989854932952299124284413386543051195389655466853756421603664022373260312590175153772251810994974231266037819446431374262542642423424760608340745368757190410189656462988666845934259481224727201714823602186904135385454482226499620510016301927142160969973610234999075639901321021164354712610992074700473415325367177855340001564135967813743423502552202722699945521791271767693736973015915203951673899989704796545050696606725259997081661964615680420346180063200969868133809925820073222281280193670946786170327200534957016464640472236768277081386707174203184219789225546423566671319483545710160472984763940604401888792288766817497951912054303430409726569856938352440998509856397242408563319603629786800542893127772207271658129113899516702009477833943571694793051848783017943622951105844832670338477268634660188383572107313853508688008232390991997465750151281657190255057345640197903280034150725351801030379022601266920658915043620294922220517654640209480371832728792215959861368838032611578814670750760014716154766477874072428660536441698537313385479474015239650227655406575048008459350874496206859800495854374980943846111575450747589112822853784540271082506674975124167835005900455385912859879829466971775886433130204243989877474027049547985290874458697865840672011900642138026535190109152070468121918451447374838071294378446844347895868245738416547580079119573555033719225321276219388296422800447375122801805360313283090237414694746520411933479147922353077195371488461624613333819146374015398621757600325484021173662712340462779806505764289156731383141821753916026625867645677125337103714195758539534447643093299834104215717180356091723877167540818970188489717968284643854967540286583085446857189189477870935668465326845185858010240468765857575101976492406730696297864345417777365016508313897204441190849621707751945487681219182999892771685429927865358596331738286561968326381291625590733275229749761260752151258223640065155599785228598149184758780717738644403705217610428291968538375541011145351656362880132418238074051569993042406824517887256979391876073375805510639544238051323853552223474458532441256076687199688366422202011003019844759592663107910823621179595998534014874553604614930902223959794376655301764703284458568885574781663849921721274364919812056471871491670201181658146242170369647644359509614440207506758365355446312145819268164396689295840471451374466349638626660254843083320157143692092051183077050506275184818257654359144679974202669233641867216489208970451016275371538847597737615092477468592862782257413521809309927380163855168885615083011586649413011430422955017933774294134665127497779189149244270357984469675808972376042240986983454571303658662224665841798914907563189896750001966278444770659051772107006002027866870000237569847315378857918822667178980153954267868939604642297362869921537099080782610014357153766443393389463030214794609706764247712613787519682229910023137148331030565671418561386722774897428822686527309990269385848241132476317010220723041215567732364224197530962294298347517099981764589967410769614048966439336291995733895862490758276587031200784536621582717619875387904684802250673734538283286042620056729431929931440728020321186358233583112202908698237196779077476257408765545446200836767058761595155781749994225100761263460644479218235006074287607751760694327765173933202906248408219571547857695197891989981343663608499176123599126437531698112921049364555958905181195860637711375620434473509021173654703733272700613712793194375063146606977450615432995707989382719779321495080667111584139227686452972283975922424942771060585945033253727146234699420337569218031523540523713113643853322540291494230123661382330894443359682869105101542815287425363675517324987731556780159264275225324988419352355966594338653747743859719391552392836976822683605474724860619106081995947972764467528783985079219952085296795753572657364786865587558111985301310096075181155780968408192607938629300714875801832052942494898893144949064254573394548802615677222816648570893891143663045371488786607753200046742818227070090654800594641715504689939295604350874166568937330930053321897925378307171679647676768670922426658461039197346273237107049430306905182823224890350583733822400155000011052106883120296631294707455966195696400237930800643930292394010958647903068317037594711020530675100607210357313410836647913728252064870540668145229822880075001577302499182856441757134914560349304752085816243118949197800668088959281250397213289812647251920356334872895421692567626664892059677196452725104250240985616509713319060429099101393044736321555467649860232628436543322318159454610345248604110301142593672003594118280303642796527517869908113400721310251525483533847132340061094514855157427859237316602791393039446974949795826750969089837281735182642080369564396383617457766742693420163472629488721604985193231155173698670452503711880128373221883029909949828191635415527604828157997284395760231028706054939139575484890722739080021954143204122429055790080187697140682061781361847390561045698780943860932465032523674862688674279716742982390612272607184441445898482921007218614161014216081164373483349911769558253190856814778444979653174007531576887222892205476020369593280230713535933173703126460843795956564147123348224669411648886823444226620780485041006626692918064053249976949170927231451868923595453782860302421375299052753598245001500660311443502059352578943620340600975735816845036658768064998482650365096217745999956214131607731243380707537578621170595909967623701793334202338535646325604345981433753119378603994501981071664381886569388820210048668367306649471147253687232182896950480330384608342935739322883639942478410602497284468943753041433160568463379230652106372240263152753484869814879360137074807587574357618497416552343916639132063920741248122117796036598059220014828273883411301139002525457659858851795257002867391458030844437928511105797832465851160820083169554974622432532388084902388987836027932691651577250946402363002645427686653406760845408858692616127214914306240149062720899860723509661555465213105925437501576201527777040038481759303445884015754557940842005215367307295336333533778665297750706840073029636918935444349946378078527570048088468191096083413780384997834505428321257361984820645964644443594217785850561068139233398688434949038214247535506591940885572016532069914847964137347355957382548546901121574627500354691742007366896985070349281891593420473465432294571486417649188709600847395753920896363818305266517914082808185940778964761780512762455424104953406656249575084586243439197216002703847092954587586336836213516684043360126219185509693405249836546955749046148788801811316791018836168295368365499696547855027390920018579215562143894674298695333607173069185431765918042156933634046175678671410821863020549642940708897450478495561650495370771874460827884488922673883225396513068656234049445953186692526169465483828738514035674821075117894924177248143206859830859392309403248495958440921098875650057858501390337078231577388105820946991711551366165654721732025866012960121465235016677751834030047946762519505779093701750837405024152109986910022514580608249525429027628342642483324316829650254661483107525579217587034286850923440668848033130892681161903402758037185376823549162838371724241386211650497650282387118830499450675810117319940937849970150335382552498072880629073151754940635244823226060005326195205194559727271563775670305379774799862274624968968636436816790963323539322864459172417467775628078166864903154616162833376149276442211532260032217065098264547672062169207736932322554695173652195027803929895765955961904293453877619538770601036003997860310415884608501802750921112330560511389219073527511849946061124193124680966687894068456610959351392343023612173015685996740750445742422255869257304221211993677700948546779371663123830775994616359322398114209278813774687018914529257753077615573784033460651408166154827662774372945673174909938466985939899218973885882703497059428645900935007718641827341688101831275300535482946413067616600255928988641419639202134407088321561670116340251873799941215496932947152615122477263791614982630611802734222075931095962982608320122360361267763231473720931624558326949063753248925502364058032397381966385711049825650071687545666226646376617324138861324204926264225962514524384772365071908475649039667038196620950917574670164652491609431987912990553165977499086404697398241063634727400967055946368118399954370852289366508284318564388393869878471501454618350775756901665278165693041294699460663241810123485572490427992450141550532983666743037717517361620738743874126065070222350478940966816832461833905644695392819952625811445888343168966042429364764498072456452265734875598646536756220508192478036633793864677255692018698433893793713076689279234788061146254381145273236702791600455794679330456623091773489750254847838796372240203907196508709614567240610408104843072197393017177399593823475312073648553606934249249866633739272074055060000960954618823120622695684793700245887289023732887286343005896552690881184911286467092460725999541722575810724049133394824594209401249940014716548366488528483402893011020162512688535206619018069620953675967661130079704560174742650435752091831670948957493999541327203513582763423349292736635635067680003230949529349931817773794885887142402153879078168282913120782462874025120970812383659614473964252027067895398174940015080506384482139090017028520115535970483518327521378456916460263269028445492124157068138527441628600691695509316010115834497147014634359599922446476443995737510949330221605921504596743615098214826731194631369288918742796517167897199953705563214105069747710067981824357920649571147663884582838354772034733213964712192014914820038925958571482957734794525435767831707348706299766808223643680578545163720629052021489373330904026180170660755330964964664336141636058468770549674256645001077841361469165405805452215090252171689987456146546840048349216667660931492435632824930370702212009651348757107681766201097132495689941812122375361797902424476273817612911251970769756346699890935139636919159378509930412522889264358988951781075124656905762637185102310914492325834705291052223157588022206161897496175731144616739182154098800989393835927435044639450362063155427459957780885872352807138152122436906030235303438048890448985276736173281292286980321097965768399232262430395972412116766997600085140539735745827953605177260894363316335976282459675521151214750215034384384306957157416607403093117051835294735190776064290355454139799418771758366049330544393388073708848446146440664228160577234129454382319980854444596551374942262821792155142452282726951361835609796089531256650511595417059065497916993616735960877754917986807151600641927365036162209042274614652037345817983891440383545583984567802486116987623037806496815585678908333643405928989827766159410314375316780326090904337116077696021174552463540383226211904204131557904498104242268357795641409546618124989420432363723444236125547563061634340814253119440448850124877718321327264514983122038853074179760901837998987984484514436261982969006634894425947658381203461567688248258258386626979318033064608935426946291441032182312556445736793328387699804865004894275078573524810034421397567557519856498015784393472712686133005657311014781284814035207230759832629862964342558571199995456235404406815025482343669425773785217839447905047768450439432651123111748091492790187960511138424406052620046174676561162707573887199292250061790696895693719033435366760931250411760288269957692554464878659273478711096342101030599591792461682924524293410698296203986281745175958331755989031388441164648867161440593666719193540937848279967205635133718101611917464176955786964815276244636192202329030452996485512293941553073342882794701483227485730670641822513597890065942710725982509679686387998447623307150783599437344716360543300099328719345082707633888129109938743523071298535890822969444884458435867796089708303441178880318789334969079992373683543682287319718265659779895308115950046121866954697353084428599006447575029728730544792739811862200606270015906578670808316825413340656769300191778458509809197013430647809088255270908794743213332557902840911856259882413792061803474275031879647519939210631213187881295743438604537400892364602525106421707175137097658490423888891558738920887356531533170267203909481051491606755445526507466433117220514069947931510974105036838047550144486554674511318865715637452410652970690523610475668636996305980583109892494754904259609023826466907591558431055392670413512226645238610046524741356435505993436964616946870186316124251254105737193855656267160154175547676490678894939750596309477615849669677043160250698766357367563561762847866041766333045450196344190176417886101763069525955971478150681047314960397433965519411631528103190781898154715503108331216426312328636422702900005916626760111897627392378955727040147416338148271237396983727514892058822791510005615344860800313082954364410857122808639955364273865305848245074339526842619361380773615028585323696425442065312832769601081786812553880391666341129443590676463162982117216410378220716415029580604340821044803630079927227067195124142356251369113682111662631537048903006357962793349632975453784089109273959380340808288929186309634183831282451972380790176474728778921883934391644465601873678316766467886239292919359440197808581148433199271810405615677439362091356529918664577573198208134760114769835648528620987793440730149257302923534078357464739130456850556925542987031869842930033470266380359336484394921652009262362408502960979142077100755875311509142739155891373978460957871150644303388252273096472093550518100400491329816990568381179764800032979741580015965452097087028292688495542861275574529893620358356900910448794916750212786136658947936523900001902407167731831528907632285208572052549659474587088253233762855962798403643491883667173320804104260505514883379719549737344849744145210689441710159210899345233059970744286028691999927519607366032438159689508536757220703844961535684284685111799663914572243320895037809978915479272886978805949255001448712760254941209564247404335586747548900633329857749143890389233888852966299922959846408026233754585104848401070301162617174656116554682081852130299396407713099162370074691883304647182900479020337937672115620981351271210603046960561168066434300814163813801167271974025531559375887043138821989286341762821271493001907707022575518955697694092156327112388371371574969594816423202698854124579122092598595510756498742793953474491069513367256051036760485394206596017491148161172023444906332502508648553219315646187925652440988726651391355614921877496813326513995426897556677149686953688826678211602663040884291112860257211538389205933438510683315373869934637173591061266317547408710117807551520376736361417083576614989408780334632522913588714827951800666051207223705129648956663375750709717304577193487047791273043166444726031751013703689347276595471138791101537749069997541638982651622482723114315397122606721589646945178495020142904407600982898265057930795158649477251624754354803502714816292434577517673138875632043205248819732425126714113211352760108820309316945110540951961353269753580269547416793021376470263770508257721396363991194150897879721487216187836616021743814714080664554322952833354375455459228597406509403987846357765811188061545215850953748963442413592548460772771815995708889474562212596719869485069910504034635330707375751552375468570074877984392792162340737155474353438245269421836721088886555316613760564512178452468259046011127073563858627398339412481597800188918006364423742347420889090311338445496165700916779844979696093193328287371189957171831547274395616645993948980408311161456097888715769818469176408884636293443904843908778581890208093755799156073994519697806429317577589402166084668692445480785850847529700316406504208644891414696145144423516857267763780863696702612274948588316301046363971725475868451390618910923860636171681160468752968296740441588671864470453548099286884023518443181383132381564419356975751959499839330005344220810299889438819978378321692463556077323709248041906310289875307366409228092898378059280374320124354407939317685067304048913148907857477249335087465013912108552240784309096784601392803443936418012047328987329008998022258295016950222461351856831090538617625258259104497616015228363525363490925350391932247367648144099187401417926448046055918287697555967054388408963729250952521492904806036498034453989311846887956647115395630005438529773774528259874043575639745198803955502207854669864376622888218023057690567019291349521821283452834782810296167682225166661473858945914938119501811037959324499943979433788606339148998624205528160365110535926683812168828617543644519276858644940819081861267749245184601914018267075067038762627161694087111705933485852337873260098025246835787052945040670933014896698159077713890331042011919956152807864764969077509065542192673278446877631558391701198460589030747058955710780171406337866454533487947948092998646659549111114142105744838981658334157997706151018269764436273252789272617267229584785167580056225839741217078893485839692492473157334296447987428507793641933579415426541249661262120271228213568939348914970396414392679621546411100372661931591272662314420430494371952639560133460347457537348114011986485302275013923454767817718019876959952756777818134086479648917220601934791273556197835588058865972201521706151689385768733302795905305296599146343720024226245161323696546892981131162632780461681071231425528324438876921426277645324135083873141201738360659338749909906226696551687603639258444693426351019810882005798818105645092586221710181219064950239015328699345142371304497593769678434385627581185547891537616443170672243476285647336427645656135476491759422493354248931899474911834975012928284623283638339385528461453814754608064293877213828395955999828693770170389207516790360839045119510370932157486954043217075278069217460605715588328948034220295608493260416647092871275366628862102916234277678317805069581512894687444415290001969808369666350322320150781081528070204676305095835444696368352600909173243153853676232664362838438187161123274780325470216677008798821199507668573392031725797594224007837203415171772216925182940896173305673013027704943314710002131581295578057682975068648570966176333918538810325571183463101868513631427302740546341758841194755241982601301226931044724996281093280810774924333179048132606551216351333757245778675451344816916878643709448452977685103738508971547091153338540697353925158925997123957150528288133063652842913264858740917630843023288584268777493776537237937138024552615734735244553251423005654553598580297564269199372701247329320388786584297096916269401062540665318111227081895926125531391362043828090843011174558378080157882864115497094789737415810932779549873503988070396554398640815834555971339094703762928626099486390904095006310699873412777545430250605891743511959991813071532454827375391164111245317415456136886415246342534570633702382659582820631495757331873619963826531811600461726771600883243120485115414906112449082185242301901216133250120953394302295945892603210068076696188438984264974982523971267670408056605818720714521192302037047466707157552434280786881341465075426406859003194846749395233182855317315556731979554943436195340508136419523551577477810632153813747963974641342765360686032855852264845064423525804276486347296602054763608697273388766340534126388657237901761768182622298021644552460294778390321374949373353341299670083818058648092198790848419871903355346156106667295689241843208017271263952537201526271659879977163324612390606904193196974755681070071959843871176875885294630576240233501180759753224800914817271153270794000360905876601212500930568760481618309209491871454740390751209404313798809094014616477107946554257590850598069592898668266111561529775379845624832478255783897362922112658810587452383902767750667551288359758890166011564913596063532698078790028193121144207674050886572476044986537237127389720116497578551928590404499170174110766191789511542685756912764873292385928977664778397501050276047013518240455317250468890874782416622699020602142691745480748648312157020336323227258815916681106530087109411274945291162245099847692989423551620371194154839496578117565289767900868872431843315696204180858920643597989517881412907839070291364494957382823349074634256703975969748058464974109431313452040714970971434147579827724293174293872685810237280125968403464869799480849524937995086889470295973767387721715942418317108553915335656708389374168676173579488512515987706736272401701198251461421255723737602483041560502705166570959173053544390771186590196419002215248311703073314430465358086945072365755942246309797955805800685912625307703396243661961026526231614995816639789117590432147869099524906473856216866637244457335595051922872185518205059501260742435987746472422300744048904509735042013626407220267510330949261827716925987226852921236635029501698997104282374496164608105943126493545059685284292927912901600287157560660629952537709904119741994773933747106099089823712945910007582171949146051633696706378489075933558990040366416571245100401495989134048675231914372271433028639174491628271445171039287763685776787002045391734899831384133036873756148248319945678028859308147977916876525472877205382751369015927481689229379548495767352668636674749089393492590549251257089878868623959709484895128517415160863177758807049770887229775165802749858973151224194517891858115224776435719102499919232700194708879135695714747454617070056099323250037766266700994325621328746035156082425628492706629819345302179293402015427305126902499247974666763086737888768030267510027787501893690786621559788610127617545421549447592573283936359205259730541904380555875416524349467906831528823205259521106585491142709768486830644235895412495435551222611867895407813207035507514003930083472440971925285264469917580905183530202966998968884868052707683372222315858216275669199891341389220181149263876758919993963518618207209694447120809361573380808744067449427780903089495673847919910721854346105832177432320133757959412714090012907138697560825620456151752914063459808146453863538057406190063019737036755845075541085550458443150113808961111725086376046450300650250477554224865627005730900553158863501715048546603241649192861075322327489468081776193818049830766489651437019755387343215088831192112836033578037702253688254025500206244540599071564905140221374448014909151017175840750003921207908927800544586024147905428537949382971969575005581940239911846228403171875895347501335538335330245738590057074991100778926932144482303759692359506118625404283282951559596324898116133636780892496563587492504767420677933125294378657153040587063608240321262139980280171762382062462911402486324811450831947240493343943939413431155628121973595243794326802235935433090323290233727873766183176176871099221580971596683130104352566357495904373743365130481136467830117888770244066979435241106663572983527607424254716492153440364080681661884115464928216469334611668776635219501608548949590341009363164508610679333592000583933746959220705704679771770562015679999046664542861558229482333266617686268358566923578021252615772433338667804383106507420647214804276337984979660511394160113136331823471282030549654942834405209831628876388449471471589051833229665985547413761756776185390957197047683904231168914385305504882581762907193007359908784595413418556779406024090164085700729976864820795518922022331967431505446895091046616656439393509522411740990981202006224343671971509331513745284169977558555904548227515931889851212420494858644334702814165580425161051318836188511517197176068352136793397418723004728890424254557817874969915559804425137599419946771904997645748703234891166732707314680940973254916494634198197195291976653762253860789690494788635275303025969139632996546842528073682794939669851975368661735133772034446325501801721151393651608840022240390161881534576635706437465938213975519304080182731058977565744232383283119217115083578009301740756794033788871548648825710622423315263394873620775790894935007441620832193721269691073523467667142693365515201175639486912470674914726785084959641351442161797519208960674348435521410417706011192708331296231385815641335129157401872150791636815009165461580058541308283592893912170371078237053470098024132050127308259171696140910099901819736683626809793447946799372917617790824855729265959710465241809337757701980709992494326874870033592727770182454578916305090975346794285351192982847729402336247841888403171777005592589619321265700047378815458436011017757811877113850275171369568932100782112674509265219034529421597091946547777704196096867940190639331196302603287481727546939050391008380891151505464158849892354760872781193658470761404965665192980897793897466147827676613380288551383933492664438816496054016344911657450271482028307951705687465520574580020868892852179034033990083805546080294612204238107943189340530437357854798205029103239693815540104454538588607192038122518151865688820558974201259544278421508238366469319162697362152353478814793105966374277705614666521273056623419772820370065093225761321565159134739046425309676006374642165830510484209578186258445377938906731599274153024176356419184534168805606123386205587799137922413192974216300840941557343542955296130904632253793300655546055716946027325514414272062258342449599128599033297270410730625421659965363819624898518073193682011115046915946000119239161950965528736172108182409624066833431427379557430490671670258758599645345504079112423432187253875251768261384884663068895005088838222996310132865650664813422300579128914455698241604166141315300839155856789796402244920106459604477128258218169566711850275485994556108864385734619895217221891023826180267445116738005942530610267791704393996126470267719300538871890654376130216744346044670284515431380493468405819191930398025640696059739954546898731638496038290846177464519984792233521349357901890662784920954435912124780311568223263365523831429969119637546887765973225370312065671705952736703543677600076906331663737000691291559828444347630238426240154695271776222940636242497898969205512578784240851405009951651074478630555315127832323554370875114705022765795092583452629981768364002654986892366609063812747572181749777639354558582573413930903722095160405984811668777665370497313613170044394889107954973350584029168512967940023733494294993786379636500039493604028285795374495606773506236443110586619644588452210689466134147037327635989601308430300808988478455726293851276508691270239516453888680492814478704906599195853643084346199693618328179656828314856791346251711931040212048133054928298244978787855590927610858201993429944243637023578078946423858919271684809211096144869835699207313597244871146262163550516756312674882759395001951625713956351624974279347144692364530472689530747501469572439179344780570399765626948440749575943681995259808090080643429603439452788996913553638760318413174676554574553972220324222179899443138620677582911186142313564860864388221211747944192913087133099859459200373834584753745680515506959245693174602213854731869691317864257654939568918329752940569024836532897210304729754232089176964593083801766936401954798919133740351953605986869216307611173896198013047199712901636973887383944244039653686235018060852743348090941933906147896650817646330241166760110327019168505975727570527304224508115897978984556719518585131736002066615010080842352169431661086655745806987137478339219604141338303938114015457335075657571474003304699661968066439227539612409798807446120785745090290648908007176550428741083312262558718034130526964596922960398332406124537699995128201384049490035448242712371478764206325572370614539633208760451439747304969511262899186550552779231209725399437583812486457790636587302908212895950671091251283940419398131360145453336658214575459692889478766397709617821667076404406301237183868173181872690938197324224031400889980368087139602365405547645966996790890822092342791831100242551620965630627173042479655181806627018474652512351762931215256373722432068104624080179372415415416426379266561468007313804853898158663973333991177999229841485313330627422268506610780838637578119155048649052101375037237281456261927949238699337098081676105176143626056801572007032822043815932137043725823749425457690871122681076481012820560391758080486537544777517810624900844240330844232237329692149595362499236198225027415388915258278706827722254302983653345090847109800754607152414513278719443223238892392843458932584271669350907973172522438661442368553037938592366195562129544079471919383778423995703434950984579041809794637655416246087941320000686076020126888190534833760931090626391300395875675428151688303377047070755418036993793706908120447778661664346751639421726631168380167348051894530932949695775707770083580202593223525032881805926931908290633457935499294708130959138840242355463444260824915488333377553539546165506604217545283521326230826477331096282452686159835208966768748838302447754238525064991257831706274119239028131919817773759853289372264249040449768603874965784959477561011344704783564457247503529552922523425237211319595110018802918305934416994423316805215579648785273326588240384733334192622862492082475794405350957596193393077871130983730265618645725299731261895405682717997292782150937064315206483512164825524677698358436648691282343170523514102274769972677148581923824811949128320659245356318357892558384266072154161364649654587654194999170312466692556425671731272408104884627811117251737132934787804159171754997390360654772968526013012725091690543420256784684730269342176908539755435743962579381200892795399208275952088966484334654414910761135004414898662104054020198444127084536566320671670989933737497193756627125895172431028325361151022799569214840417055569399457068302096685497529893427672315398478510271833077750428902102388334812421810240210136595487337498058001789636218856892825402358996199982339233149244235963679808535164038112792156170344121112817755281627470380942806465839294134512568529279249034913509791469876416039372566923649106175972463540120240662703510759173017372695078116718970237606329087104455135948037712726898742192344618396507349759683188959400259375619664488407356246236437816412322803317762900640622963519555014561251180862233981742276684763067740459449566052471249553205507731761884400515584079943585228967721731619809966928636199024034500376100350448042936557851519834302135559649261055357006381200481534528242750081230128685903964039510502129629268378005142184680452626448689132229956992250806267837972542275726793895905361455251058994001253883727131421026199118048613982174662494198904988490101587885617616606190132821046016433087864128172653394689704095660682144930794243781759179637220225317292971225370751997371354014918220044117165357665317516628909349535791334161699769300497841161822824287302838466205210497143046037138346433543122226016315049092892940229423138796561981368024079819663861042393577052426992119008135215566898366452934618328628670326481966684840545688794398216971216995054016757315613158880643726714040027504062380450253674769729331317516095213919764072492780262055834244943459930275314504436280044502268947246828991206706482716827198446961091728339334004065193295294882100580690774579369843461626569011839872622933645456497038712960943198393186747902610304806854124613171681931043574580064314242161197162224814737905146530840857100701190122524815312093132631069550441192006593688708307397937472263011606624540619829325259804117960814685697581385327655049967733300284789406634719467891028803199311406690611324948603752785388597718690981445332009845082399142017262918385678557799324762796091650038088569700513463908457856310953910600845272494645248840041763643092125882692539994317440199160568809241811775788824434073951744427716453102464515036517438670496893403424457297170684281250681158616908851434877314628485459061353218945756620500643705825256325353066497056334409710621889641533253272360274947846022070175136237839465248411759709783794580423997880779485954763395097529298795046226066618966666219807086936266260137476014743736727488369580752183764509640212445435072614255465707889580143850312395961646847658957447721569692565621854022912346581812789157935124624763122801923606585683469802544883274203312073923437870997502936608090329800677593177253266276261440636303783943828875989332997384440222905941207495940350926446036017258322734136781417613942929185004478805757357457764925385980504861296357022672210171282443980725954234412430409658508720921753655935300492024159896692990703724715963709027884340806423534401946097192797165865816930617187321740397826883772796141794947552000156404796672709977950829702230214009830803766027289154884396743314960332158844955726975488858779789201960798853370075814668471877402106357654583662415595983403285144977574603504370273617936130909698842327102843286404471752717967138796163192719426804540603875897761413373322083620379498997541301229139712570981463438125876015464077625264990509314803533266706989732110181625377066562606599699200647319830490751088479990008714874048343485027421980530170863546990503583815777359054477889362465101118716131219266269357398233447079137616311138838593095414432016027690997123859676826880429330861438308135647441064266050025201934724783051968930763731211225685136132192225807780118443434633085021109005183588042205977449047424926426121965104152772721908950796104621750145741347425816611505778043465442421092534809632490378541411649177315562559304061740187193579018300385093816253282362293978716534285895990407145044064451534280171876398267282563346223810822205870634053769691791465173698900408930036831623889731126861027512961876937172024179539320849007696974240942896394074980850384284867140430538271944461351580747458882061132333348347177501492716706709720745313835619445345954706546353208691002970951676999522500176080723727393556180529745985510879160111104943629276142503168298851273427848823009957546469798580921867127781934422746309129806258940073353503098685048298730168241768175685230058144196388072316770348076018285088426441313160808560934086648584218843229337650189974412798669630940361250238699178555783991942668391493912253014906988378137604185133136157230961605107739162155961831202632107260739748174770284057256459780847092830746752479761128335921527848473912459656331745664691887175858246465299796142136337762965019534833172940057449832137874698099643555047169020724213817780393729234363149261508259960213224978810805112608862639309877880728317494596037858041813226875227140231425359890991890738589310425331518425545172826934381975683161103018976041736453081473754279493983162552577367207295079797869073520543247339871096500771747734324720047243755019434109662098332231774539726584624987561438355227736832085017706395128562916995791795466265938782677687826251595827264393201755906002084312133283317484183903214852808912405389687135941873225421500869852962069702472569809197578031881909262237984042066895169857335396426480717021727250490813656718667881633899963471945790014113529596085265480575377935603531059129448923680063493543003864500379953636052999171341466589806805884822226794356172211041616444467255032948658647487554053574892322389275794532168293756051358860334335144838967665559177355461798331226302152585197299178964248813453524127913365957337374908022752386684708632043539749511814410172126946605964876749724437387181485088472293388893849588666680106941444148110193022507506370575017205737863527052493845450810919040956873637483639381218374781298648597090316236107745375629108039526097750022350819468576197161912927016913715806531159128026886646676200170162968477126193427449394059963710170005693358708856938780846951016692031628194352066647958745950788043829594195427851025431305988638686784366597165639554216683119431490812379781323505873240750781357031386568570293529844182709195310211594957956987526776043908640309819057099767667961395679334366864552292085752114775526159480909506035986291574863380715262871694887345461547517857231281094750314760749851272551783301450903245602983346954378716115551616896457890803658811730843181893226747954261281639938767347318443365618384529340209540715401181378341363103276610308943647884774804006719111859885495280456995551839934925533206847085605962311992878663256687962582218920007092421592812264967390333506992168595678419809056712644395090529737493294415920185487996658341077812879011505645793772503570602382725993548711971361766252749990027919820234690876373476976909535266670918226788451730269770419906869882072091527451797259796479802610176913914853598603512069988048169793450855771743952954092473752897911717365159913069564736969198646107253863477046458006579632970708283303915494178665897133697052331410599165372838680147512122561781981031404553978610230267225189059834326392616355527089815937735016928707490322895092577771240728910427996024460592036798933409252529900148823394481720056385034804237516623794813810673381470653129654042161384060362460105751338032769437364033172804177162568182143212230314865214433289799525514471539957654094282775586946364928897165101286386156779540350243633673940312704254723544223399053872794233272596789565228375898466068842961603966950169216464352257653319201479286634991060286649899592151411071108144396990877881174235449270463578400208377161472296284656095423948649581920427234476262580958395759577653083519491608654805594547650455219692642636410499628888034803845621930516146836359816665992787892919139517839232217621765711739339024533239023969861593573477984353604518638325188243072741299829703506244970960940442118590372528883191296764931505893441491073018122560185765391912554665474571680169817030746626616264187333726049171823971262740448509113383332490653312130212059136110623821750435549881307654825403002232621031657128752510881701195456405135222296710978116447327611855931393237162438301915093813755491063212264537133780819753391789085745455220588705971864621192877335144552066314946766386384382155612269697854893458255573170513727514169364469843347731555752455991991639570761477683680788287611912867576402512691325252762098187318749063133035081079579231357998197217304472191214316291890469840636762588206200364781803372968169691548524869958239109902477970629397714832837109282150177608097103876392502271405888574624736523819219471356885530430042643136908797966725452092335670850152383828217457738412834835909296138064914136208980997621759923596936892121519043264854185680434167091065042797293258418302518461320960592460416227623817545510801820282115828652735252707597482690813443830814511272149224119505352924939582793749886933890590196379871744507272045498082309612414569089778121137382982761649447435210864790627875072840551867148386128725406190559091652409685253777324690086165399096168958525799434776519318006348597306673858417582721807663938215885161773419947079902664815893189694572553097388018918279975040250256388253383551136757766881759293325276051076814511295381217719481830199002221246969716889874481880264409869046866132568710017889114187278771072146302288949009346371696034440157666100767237971402970386911876441112720436951747068131635456728343677668439179837063117278180947423526110317906287376737013160782884488297117416208780854734256770123428016629727763338347401332907841413549774042305421491811442493679392799579573971349164176091681382469710869039241023799650512059015052492282259266345999222259792692418544738713716883198924074463345502434666405097999226617364894313696165346814964038441145323171864251182372417274385302684885324024795049210896162278716328484069233296820481543369235601520722262352997697127019134850301040769503045383017990969019137919831061838339760707939897112434916762623317174041473945595436255804654294217586171980092250827926242002352910968896042783302225157258648764508045048319896027878112351429851820706710355648491669262613750238943272094076126483347800190701511176444059321097728369188274981060538324364274702870487852378700634787772538625084025282082346315431124642900789444756627343988475288681331922956743715976801270051929866406716968046948100241457787032556413311582380825575714927068118619371930288747695090357940569655762332508179721512016578491400072798328817840287160788679906709566446730581564997202472064357619178421035578155289123362686227644892464660165498879709159744046064087590537661459615249141373537406522081638790635247468072426791757604299993157191658697175568456433910893455139027180264104825862799896711320579437016030383227494986393469842907912304139735577132018437440116389047305026174954099106254985530150514749340097193458762167480054275896041158001146728959748329419586169270744448155814184990305703559036582549538037152195067139533288236977734414805075202640731674836921544453640944586593326180152063698954522184227391769235800975831874622735899872979266490151656426083845170755316689252150826608815073250532554149459719092144951573913878741323773899896530890732266633044496753024098406293333222903813286235534662968500913335969710617433939051399647212887593383519096465939347029066119806839209980363517576902696632615361245868590393876038628648379793690279280911057291000527201916037330006097640249681761507541662164157203222274131008757829119633777020328637943835796210857836395232505876447082836460363601661137328789336885199561464717949350325895943987436581400021783295391779711905412757246252758328251151183537017369906114144190927225716590126715060568829515260932176392269889727361835912476795390438040678024923285613758545170021201559445655984773578759211185524274391970546301932449034353566272916704931384147883533616342138839188254887163050194752922449101227807633039071813126020704569927874372470983842484053021760915396473352682311472113816870517465372179030830083737484499798711906599658381945497288052749639119233782334462666333571071064149749636464923247151277832647050223360177631105862881218776600695867774393310605423622996428848805343701247108123412390607983226457795330215321637030410037346195269192456613263117214510713446372929255456250293645656786324009115888030785662806460375728458479024310969406198774164267813231189685103990911424535253701767296263670731111792352070196875301036160461967945379311680429888004420179843989070770837383211467466872837966847903711185579634581630621490410007177719583793969550227264937166328777789883767090779163128090545745914757165122629294571622227871491950875383238527537716999612706631802178882120418690978915390582159482682585876076903722164053688235154331414922048279876706776078998239798966938979089174460563920410793326944676803399644432750237463427596323711087867229163371598407665064191224877092284662814210338972290763009694729390043523809421245639799735406833454416546653504323294311626109013776421471322226754362266706048181354784053434798943933726561125694255247358757113449538884712667448271141968092768640656370774660178082554336378611477896726890772176405869411196803542113255682732823152144736337246720330001795165773270612054640216083885633096279263370776742192506594221704230575741851446836381506077065692423251366286503926186230348984549144461265792432509513375345049968239899415763049447573398979285432747524180064139684439229483167290977896655242804900182390442208441917845415765936474817235687404083984625912614919641674797567914950902928059561242446183105257772305763741322640480202774960648181552852660731533655325034662783449457794856523608590567107794759023992794500197906885238944297142979331838356814360572920365130692193112914324784689031068426789408032921058898218808946063462747575512673564180576962307617945281839267604412894050439466205165347336772119920565360485215450774090630179904069651129251406960200471702053483510046163938896860645711176993889829193583153289560123629458208391526475885119151380779713354626810888577241922977223676542727000650582692721268860145051181849227882477543770994716243118699173973442160769791000567524534681274999766270934305629142740867628384059801877177353304280443097872654773698708732522653105626394847846529054016828545045521728162276358375463240239423700284795761204188479713967951101289688095384452485457329960951505001666218715228535346867970381291832285612037938682513796640820963484130456563283980748132881790623284961144043569644401152753812762304288736250942162024418883223286084606797735147428623588696641990789788055343870437060263175079220330702074170433809757646278684166414708089835559553408326079478084487433706361986246610980322644098183519399062177278301830935367175673327259616954042914404514060601365702136420513173118547178632840578535557287192959122532843233353949550412509122714832365948814232617126433285451520133287752353928853182821234767875967827577052900018420461551842442855860504936738703088622726045955112037240372707862122473258978851858012288227815189490606476155386930077961873608576460366275836528586946413796835675318267083674598092126572934106457748165367934723640263312627480179663625314529931895319799392045380455112914336661358325267957008114897624959083576201897467165451139330789117858539419616555560385550423098853786563563615365970713406256161483064126041508885357138280072351282862151564275768722063880177669858539979404230695825298769428338032624377077678236816905673071116466278799601148136660769367142476008531666778321657153118096050243087359059809953311570826085603867160016974435403439146473515391997792795290492547609862253256950281114892495729678779535247541531434820988691496484702941186307602612019586136800200182105259675405006399563428851415372163958436093888394878911901437828620904860439318522213449572711750847837816456198466321641407706009103765139346308389884355959215101174827328033786827031496889594391473000967559652228096961763454099004125656260619957737641624086961557599325614347182290851567406322415873825071768017914616711319571911911462863254388457482839390148733452152260167698567481767953583492259119796440865026725597568677952477697570094203511494662479100178815615896647132951783302664480444724149730293390370453734740687783001846216229439093824597992466459296410644648824057622868877910066643279947086040375587973236632166793810956008241829675256302242736290200736429949095313449539657975848890243240418824120357719661458706054772962025458205762519912846206157851924544670664288041697225115072342678609772801703484987190526452106507686878793778021908178224295932470196332594018885226781273197499519463569689042968536430311184569838183827640663139881105130659162341246846199118863325972765694334886140955769329520564413590422710260105900099685856509301321508150504573066595031359428365710446255339197843017216629159514945956196848656781488050667416274176875172342237857444547128773713289767574317546240599551829554550962461678275982474439483853724797704588819222580672117106443991209138674154887706515166185400203209220292052443795860948830980342911254972276522796385369287090941041432434686767424516841865261535037848925467024354815116385456008980543524748271554536276907952246642203334038666191806126474389947031537286370098796932181295586595259809080148869444185670207895451448576706323723556889734392120842783707410717883183243147955341914173485527796025363232556972362495147798646412125421493599864343450359350355783268401482615096580235633268605208701231361637256170177911081751721528834817148868357437545253415734338709494287191574751891062533393391692223502516825820080891236744087500712797166942206699650656323742518636854217574895083613077382211079098940180701982140101093439088384266146651485516784408386551779814723247351251312714084338031974481423960858490392343264798564416150578082411433913120394036693288903142903074477148410005168830706424052193096650781584452233452161038128514917349971884840266758495225741347958926200199029499754453041058544051201642806889726124975685815872066094786692101932329546389681767768880037097699624937689907934862350411001763202327471470524150426648789173491985535919732741214995827326049470551323131738946333118288194384451089463645080580108595904731317988397969332692156042217885913104701582396274533805216979721724769930941576392919910669716557661167241174942258566022991077443213197959515091762408745581492687612316148122693363873735460217688162368112168727079037345428712697516859958986735919376280699196922958491610688592490234169248121357547743638445345865268296422706996147404359540930491217611145821641164535502372502793442999988206032933978060967443968392832331482903260072876478211140968154398967947116794663690959793651436422727649612947901465536255430525620150039450985478673370239763232993072563943664858731998874239842950066433349462504217280303799202009673419064695795605375969329192556244911169063422889429453647311072677982900898912275728573995191871016670601462859350300265655013734661550316345753749069423412128425255220271650167093137963900843950831950879333228113966537846092277279046915881327952705263995920105765991973162618201602468025377775986301680392988277897508326733524714643619136987850669959954788737157416708871125744875108846107054838598050725281968733754935447252813174697291981460190375195122119289675867069108170475292901085976881587021195882700001943344679624223537525931723793571701232107154930072725511220537416455142626027811796485072969669837772533469125758771214868092067901529523629103648204467394812365138658967219999527455884548893893642500260158073248859759597154470034969115130236231425911929472949714314766060062982553235671801119155305487698628118541952521513181069503618106781601777989127810463495523842317408492827489892406394288481783903911420212424068291887299045005465680251382079185643763482338296909209464405064249983343814929231390737401717975419767542570665071339997502258159856779364918976482577728769930313786708137163495448505553529556909218184340018760009820638474737681735508518689068216827638169761285446109134233019528816195234482977302275743738990215313492647804967988693470570586776948411985165465940347461216597596272314334961045961900159538594092123597013894489604837191144375336397560595033704209911510214542681442128782172025589125994204329473724723217990086200749517030038451511328127790717811157810342561951344730424984434444698799618495736490262548904306748692142671893891260212738496464062541802549400504127810466418849537012127413966959967115335552731924427631635725950976378493623217335750541247454846408741236524202015089958970374097763876275977513057451944884482155205951015876259439372140784689065244960577145245875422065733807774954061839943991895569325912700110116929681516535127523592514117472932436082102218976138080101058392279810931190348687154690476933903000750092359598807180907916868801632339912573030613415577583654749518266727378623661423201394363505605769549154135075576690906499329776571330896476672926577262448307763475310599593098966401554190185727668250026292213261461542830953827388230074515439512949856003492019776029101160629511377892972944088844618735843743635354782068480072004460795439079088041503209027221887377203840244466429040868172210004564920347694863699721374099948165160891728657678089819986460001469902257301273944206832718223363934539762957991322275681143352270177332939222528207220750853331933679213608181287148404856187199694047894413443587625149091626977448235962074071538372618435783569066933092552872544433260105017761075708869002337094703629307683291567238248987859399726826744883303900010475141296967998228501538374139238135624419155840259226038174096843403209576111279809384833870429629780761909226887738814238620889604322687336949736960262748001325577171841389584618830929559208235694637975093862719414557531269546774407088203303723753900499837876898666359753826450305545771425413750928532745853251948311811188853116598305538839434014253030380710811726371216649012560724212813642591270835304251058544989739936068223981227318313032069593470506199358013195876791951114120363654946401079956462986852530376627418474450275385015817731195106599352611471631661709903158711025096097559177031648110224245636016480593468075402980436710489599759034743584241802070121107331454589145665374750296273021349028103074193761613490580171130215787182796003297181116701850893570869404565440223825352556196780683213481703247045532143435560163198241169811873322405092825258830889372224594359021819313650225488954371838138883900687383950669903291326395564949029248554832483350508997820373997717590049490467646833216636592763140655154563039372386263223471175607247021938379687712532558510965811185907512813187322556998750820072359093556481055783353676026041147668277064484973406233708213423777689040882700629149964217198348211428002690067334724758369591014576078394150619555468988517253306081482642225931520284198770534882442244944110750100994850661790599533442785572107585077514899579178346345219847425956863097284336644736675930838414523100496608551538662989752510581581522619789115886819023554236091577101946545336210524680231812842725434595209352409150845355149921398999681830452681419854887252241787288700886819951531662749001395093494772072888437964138373493336772815465929958328352444898378322424334243923092291163018683787249738866287893071279875943021955548866864585264349404530130201653173621790835056325363444710140542965714777717132637051277668798340141417307132624380870746651115114234795927357424032295213163213317930526471451965695181846362272766464942229712109690629576864712219214723494804588472111660087696152848260119576240639811866497287434746670680540960951155350670368835268397016647299199271568488057029608271123104597480613859782232068960033797675680589119909517671618700737538635473512515029117966364169176029318050213109233948652772585500482654200610426690247177346849938445408766168057428518101232528291503324801259526249943384669213750006050737903733048426821048322441992686509852055255332260730517143823656346532122776103670557169479502995277216797608160254372828064642073189513244133502756517105742219533171343181806054344563050809799381760965605082996310507159240796443194702370356285596207386236045859588556783769463967018834667691633319011706383098846180511259567782244317604215984782220640376612813129194274934319923092367308674607968669111707599402884816422040600297304259611447952823582157257320230962035081194805041226976221935445217976367393108226056116572356470475479006271444324688788078549569414841324347834987691057771423650089932904235501195627656493206846730987294779521080263045324246665482574867714680515008602540529890511063352446788444280657779786101257296667979224648554280196351842576828859700001208231410894464132615170906531919738721313777481324435802218987814354202139430066593437231542256737669129481626182698044923124266728694617682273033273465857068785093482648437232067543055589572077124440510511188634714539430306634364276645197107345980545170105828940899476033699935443578238594673034898820677277084121445826313272589867400969077571421978573538469339682826858992832783670826165037682723991308149416644896758806045889492551469896143822987408293078085672854890778399262146833688414623945693049651548201623177566766628656054317598716043036511070783713504160833777913660037684836533628958252077864527461462520553025497920417330115357056026824417741515441174601327426917949780730137829787653789317675650407773366160360801151104701056222786579589849364572324277182540742121429475058522260359964124680528243427103337420417287974603289755224264920592010057861105456292188351152048875412226566844053736395263454856296574345511540029808783612545327809398596213895434415487121551595205208903325369243148424236858806700674495487185357551426417588894713004476450754159329381750611461032330015341813490464669436182491788733345483622480257368202523136800204617196187924701553197417554744588094151221443081478641739742068354011584782285796680955957844574156534468434088294401460761926399491272342795511775614351064623002964526943259617021868036733550664892351482524024432702684656825528895633100662957348021661783875849353851204943563990349849883407381062550354519280700397464940865360177497071756190042574614731151253428577494966495372520018837220458565039717946511832299634839265471328065055759638737091922773069980815080262834851074973957630066919167687521770731880375222343874032502064531488494482803472670761925212073772287405145554286605215085585731373198404602558124115345054049611891736808893839231744082781525480819574798045083980967792203102839561557327741562956066201183861979216271375097297435821404931011645120497272492267133460000215901312423874833340337693869680608457586697037138814474595119524669281081160303073397322782603562275845132983008412896085601809234292529001154013279490420402164681825340978000553092255908096416187531483148634513717449176768096658514365272017185902234180380492512092571511263406597221605132476191736536901287867594079773220462291794689891785192579825042371844932259906328603678421195976186395239620514157736695131743741319014156904611089392722792121764616441873677779434715400531366665501971596255686419862716131405489314323203989095541067298630379777375032167479355219768070269436471205568790039835477201550955554814093345767462415453501682735602114168719896358589560690360670498971111330360943136950515788114537986301757082374221204445418083407293876908955900553777574849965214221246960080219316165220845472137595125115136879618782425364622201428968005215596364896018458372176991607667518940618566730044338525326951841796509648021741266631444609708739201676849632345945765126435634021851239250936447391911336112015798610988525391623329148790216947022077077916516442045006251657937808885996449385099793759070693186248791650691904928172973637212304698884729533411831941775378268144206185106317600346151693458013197823412887319419196190685220101291740682168935252765618978896313741540940578104313584169334912533133919594960980595871662126177109801419884526563999258565248095826995936395484376048990379216819079434988569909817064602778207384951163371508019605161807915648167652179266836505337236533425037702663968668007936954494650573534530972799922612307968137603902716606709120618389554719532009578875079464569824488079630228972444346104907962535897515200043848282528122771373938554910747669730998885525171941179574469154367511256683276396977671754520196682063797331116644767651556509355350666911631421180513139063378412551615812336874316739027067294633385637933297394278615394654603991289680131209854843248448737219567574613815772508052050418155204838489205779938222570805585070705037044649288353808239323320490967928360755298251272131270639286867045329083224909492009026363853253261375994108251743233384527813798597936131155506477083553586437913330311615957199224402651975666266868714922732616408677998022618632827260127610525179369561800005219676586583281935806854983001001285892366381526727623094301817586732705125518229533977120535090465054370616478599965946265254442414422247081004662906796826780426379963848572790888392744133288631120076908269719630730166152431882630652683212205917454352437576760860974563683407736695739061583242587034014195927512430431861835818983132026413666238886850680352333497713566020912744972346488277592421572819252283206829035806214777823610437879963337434111194489373300236888683259411249123068719410775594199205447954654105621931074634548502001104529151976956457669998531829240679066382381789800693691065156510975639508888128693636020050597097861182040630903254874877897219191273692567555717054290785376799557756450223883487848181469531135085531039776345369765043431495552350172654990819583862542704794980693666796535504043754766848575147447472107252695843116736430383946421561158010232093097591477688425735673447686589560027825828489436547584060057596086061038971946243193069292942225450922985470233501635571885465859727021225996787137467688490863286945480557925062222673242615591033154327220573505147325512667286820712123431476191096686974859625200013437840992810680092349748337868798676191394003864245063247886221978516515017073795971627868389501003627516802090353510226949706143175136855232138550938912892268380745018773569828525314720982476263180655761639783106148351508133053206464393518303062270256231003210113684674142308482350174343476962295735204917242372706791284126792174953562714195567539698899682357317285355372183763422143613322273524663296483992443644200197633776473633157322294964268731559621166397423987255019263429259346982374202996276582088614178555897217648686663141917429444416008664089811115186006349969902454048749235666552147131231436924861002699288246606789048406957109202603344670088941503679277394171487989000520902462481421805622248573375491748029818233092271461268331452473188406318446863260159129669896440349939896930769325691651714407097500714232048506990908941483646472370493839550527374656735050713430066030752077058042112428149459534323396140380200715864041973964162890516700666552951588736872894980300032025368213295013405500925817479552386995824056371546557995077748440692783962454061596262684930840796957031614734265622909285932477592813506486006469179177484360955456585631596916176850062542473183445286123601430891298893815126332656535952508380784266781352867807307827773834128892410699071058117457926012217891858987820183842592022546576993633025590160340310683507812210736044392234676879207463767630088519459620831683346885438376132900012087248828833574396532206078777204029622142891118135698124702599709246147098943866628162477539737546266751367250284955019329124563812155140839626435965409259028017751773853776964885583463649814172080949277611819415443968848344399172419361911173058887067802691752843691917110995062585515279492091553326300694512979048377615793788128598261969133772562100917243420052243018595324875462044456913254175312072687872437470204460916909153438903040740682053163854438270165588823939674341844218084001268825876267643157631965856115959330408084909762334240514089104436254465977037652566780017461147394281947945959617568892513928822323152493509120777003784210618662551611672156314128964139084793070389876746010822717733163417049742833954004271388989762851542658169574101251587366531079572073930063621241746832304980522066903992013367473176537011013442904310180551931088656615778164519120099549134474924352722899150600672766281842412355116992449921539614132262325173164279225804697047264230551181278920589437891788867394170172590327179187112854593800679598150932934285190500656480015566942368555052789555581060574518290936881912153533709369215059593797160270200275906733861897206944795596381513798710788934408738667577909060775554856969952789993437545531313880986016046203846594340456555196739635573851914184509553599739196104214684169579754418691112547760456555645265465877484932205859428205011820345432803978116949942371054651416794512943663583000789530710502714192872935278201980774283595817411312829230211207610056027656072636294531120326567919017128038359500596232189651769552744850639156986687481032189626430249415525665763955845364490678818530935191007133762730444747966159814535149801644375753473856930852821029294174094067035853103514745087301888000872102750731408188778622761072427048465852601460435950329572126501477584662609908780241368214658160526297076143093058621888595321831658515054226043947269448550823118246081064293921365211483707146846589553669880573740843701606740131925478149941984941408983073034941014908687853352571021413502054764262987042026840731802017206264643897061168836831171191103668249728460912531070679621215793743581914726127817239025768602253166491182731718192285579941921719861243999974848482761856152394238879720008997395959843388152453264884082617818083715634564097346416161739002770580385281931268946980544206705137248683818432257259637977956883082882686957801189277610397341220748597189381732819720890245247997474236841086396454644949581780864037964204025619158930148763883188527928387662312232091274447543142977549483591110587550493903175505332885696807275571963792642504809869848447219353406683753420014006805890538344782769730619689748677617670240728368139298288340210650542526191088223242191952930192851405434207411973474331159504931097097737346197982748921142950733395803651139170097853473755451599324007760180089994768015624235319680403193161191559334114930324207038525151643946009259515465060716842820218874494977873180676113054065244620605911632580486194695334800901864511351226832218580032117028403176499014733776174650111308761386949042851542697518641451204995068995234243228901637246974688232186192638860091572939723108399623706997498719174369536329010731088437947521540830558205705583374500831487698476707367103227910881498509060892160648893709895787989701282879495016669053698646263897291818909372768318677626679991057412027729730241392589081225533325743693618394252887928390976524362178681395021508213154364229000979035660280715425161439671541779424952246529004192890005820377321260517359143193391384039427524951479923822179675539005414077502974845752638548105201093819781194836673938928075115917097409801265461671894443985464453910069521967520705452038265114088387286678054162052228972126303027149234808927536893344840469545122470772797416309511361478309595003606633990249836817070071801480197688229042583334084790419359890792681183661470575390927686673896465744995891103588564255729154705596270949254018579172785779715831199129470109135328395752740119269545139642284998256885509070813368978659393313671238869293765034624348936384997245016132397233378397502644365245458890508923208811913805405061648608964326284712808261780650375634527066332821624090110069419070265824212947362476674158700685604844500904614095059103666570079266537885845194702173380447296050449184707706203457398717247070344730661129416658130082042748655293542886713632835652621064816393048240297667322850800514528380698469662574094219416523043980954201325618516419755038612772854380384392472826945111536989966093144612477425654730451113482238254935805548753495588126149603350193793921384714642273562373208922412994140865021153812405545599872996778084580163537952027949251408853619671350221521446453316671842351823634331317204483376676168679898617968640372939951778479919415866755677436111229318429797936217907559945173644821187442105834214039075461640457680275194380554312026698498726390634412477346296557245213097359522077943107306018434877055967275559020505367357129048114568251750740348529987621663928593872601338740130427351430314432492100674463395893235765093037585045777471491603653054300755385489269352211702998001575090615159984701667481621568709211700738298583215505670625827192801398834784950073045240786687735935601827203563082788143207277444067074838117090056267520684583745958119995451802336476061198223733599807568577886274129484123610491331933496944471312514778005533008932886919093604496980607570990430922755375933441354933269461967687749664884930884398515177814424994218855743168548647617045997132703493434207013741442426179964357436692698213724342631483094657481713356789641588023475723753779812192870975952583064455290809529669676000407418859211112606657858312717832774400041242708775545430807372551160465601096039930256765132561654955223551086264025978844650344770995924324834745311457532954198198209450366544460689765088798855498991703544405259153215301801237571320003043917604549410724790212013650112850300590470370792617621156651094848449795329853055023320316845953946664928796188348215248604366640142850600573820239026747895334549969531899867394561876048306679470542224216819596612113657673672580687071175398907553290133325403772830310639266254795343340508805977781722425941329419401905351071125114869810148187248165650913873835177820547984104241758184699101559520308320360094047480373886464596435632154968723901582488570367170877325494948084108419968764889042608034385859631114271519716067377722278864559401732723371806807177879829293409776785836232483865308119705796351497944052557431841557593374913795803817101827369779748874017662181236590823292635189419992103830668557489007311806558389633331863023125327569672989350936172323374864511608408339278905470495346306904736670252583363529481367662219986691110532331502153650901422598087090438086983835159917185534051856503178072521497448775558012344871380360108577616017565384165792947964351871207470136857667800974273705872761072514199604544403585245838355731845769273867863546174706897767498553746910884828074296570197061979527209688314548123030491711435013749580505386858406745203982757559016298326134629274508246342083383747741658641790476214269237639036581658788754016977964967800954209658147243906525868845976271608918860528771330781671760469196239391119509501028577177135504099051720352881258835627342744906838179991492606261133455822994488200762432162286795023983672933938117553597611532812049616569248166204401013150297350892355954207943627783316172305696810728027191958401699490865186524700494599005922340456300861343442137949934616130233950266465714308778033859799134801148890768817523789776350278382825660969227779651482153772973083307954382630038282220769025406103135720284720208055618957714262283503821919298991213729477944602174106105188492871094296555409371032244853777399750269871453527920734144409354531524074661762889539865284392310385421238807228819957356115974596714724316337862800189452555042579043891649641751616366493288585205405747936521283384234658263636709644039502921075463594214421403726718308006698825775501290634943943109932303501477579131806703116224971821954290846539842956696015513957518626639457328822205297400630188345071245541244609451890545761726842208453607231581302017153179027623636211610578524683749785826840362903673579826228160462885439602833823196281762343907841568917116537631712107716728292585144737772981910765605300792589546920295431691829822000995849737152962960326485689312729661586031454916622720263532770842604720171740979606340425922632524812362136935618298123699672315307070262915053425722499180073530886138162071780797722194398831465242051870743502614429899896829686192363850456250441957035496111559961845011804746438234273249520793809511501552912292167563495462352578951154936651304102763118233245011776902397522866457233595008880566609725678849309000337358248721378815664561018155187747073525258291497358607338001740203092408499534434027646081525735594310802391307762488355662496812570517865534766429520507932996243515261194717814721358273424421107818650352365503794231860981187380011364502707928116697561231611794791453546123157687396730427905524960639524370777983410083021871918067398112814136069158665236266766411789379339244543444585818699312323794355046828537029706675171046585470864820923635697633495806203586438080502287352814597819619508653096951220021534235688304247813116760442376199128355510666797815167281466986890114285870248947079624841937486020226967299765147931273353341759334175415540296985110707277846455740513026594811266518131812755361019254163285120308076420277377601111106040133486705971052635946916107207008904553918824700731385960200639539319489199196273088146320721455705181416282385759311911780261662923783912916795425487956423593614415686288146592631122885219553175022598599155170675721384387598091941274330434394789946830331804617942757680886358249003134924968576095633583103859443222771114929142782224355513429887912693215135292870730112832237525316750321547899579809834069874125179674157468781794472174988223275310306863268434414173931566925145358250163506575030255393396885776808075689113386585973655822883546856450786778212327983697319018892104424687605441409537240025789793031779331782491516294684548680741012644919580233455361772593714474648898372878314464061235699812206850496541075848493649541657165030938066609008523838825877552047910144422258514186548849507691740173487204280899981946001899003159964198452202220795050657409400476508835765309974681752968487723167051019223978693024071882789470192227599899138986312913685150113267175245806344177558607653645727170323353902861236544757363293800092893611773591285530725750628867901515789355564882962904056971777408693258330096537328375163483525187776222904154674261549285818921336912703695437139541908251763706612185245005631636592726410605606225603044512698679054252222094846219788328543534400861910668885873174790056080324501142127748832439183855557858005779755995998232089381433520319052024594130587798514567638479467703226981106913652655989446068630085535956772150503093757741022075987898868768026311331936163442128743658604660631964048165905099722370192892827271617192229536970517855432534611649682133974183902575307222930664623211303405998869132018997725823720565888556225829806012925518541543576536892504005259565855696721029364309889888901844786282388437327981556978562543677272189848670265373215122205177015717165130337974785635007655826285965248498727055777369327242403719466633584755924799863592299358005079285657481801906961275994472113321553676735887023534920453335092466873346511981651664140494162110064069443170373248899488502330943488598477905435207221528280523778104472334967074557139794565621187367701238272143119410219844238362683388522066311021940618660733013105432861401559918512414452718200977165470593225012248716928157596851771748713045348515319737744897514316869013459107042841984415690802506970226348165271033166152175580151703974468965059941530733077671127910255512148070415788806618450665945242630719269271512198943421431151265619412791421986604113111808863382333057953314109228600701932144419973504233716059032817599006193210622084783932750402407632357065516045578853265671264969746852670673536528455855169824909937854783740626054355468847622528167641786966579548701270488217040570957043437361411690853278724413358509953053608039916484256842755883004168624372624993205379210167799192399043932177790218150812401554862739497814932075266079352731073196513888484849085341932690667986483602026241640992538894300880555041998300289351960716277062191584938643753554489786582202983086616007833542641344868358430186955832774546502609606485066414072348524043760390692884056178295169134538738070426177361442167169474082460159732216831337562782720204396159203582400147642672862571490515555710344194815177699792477802575153965971738862309597026918828802107830267584451111898134481046540011718630531285216485257155080455271593556457081435649577582015663397015867758296014764272032863277001496163042643526627062175012731775888878560636908322326108636592648333320544355974423482986973314871667926755749945998742143412023904432058936343366503670497397418712221002198375102663324447299630837875157074895335461421313398807247866743887307811805845026173348552487013326531729173927149055340340679920397022858730974066290280107164313655754484635215730716062130433972824996256291694848436248047175052126887462235188907403852080210465636765882147885275313601824588920119557380971040153760757474348988366081203373399666275231683310166291592615695720908474736909393783522751081235075393060892318276309264454798691308072072550907073883556252001322019801218072043477397432648884187483033109740801589566378866820908718326216391031313527173208187847955039860874202471694069995771795317336761665849178187295551075692650244368920043248539488514357510774254311525117331014045237884552877171260930061650404348046346074042045232827787107213281469799076167747146309711790653732469324753305443178662411055701158944993472177507846527769397877979547809604726039433754571237411517217547469365952013523637584738696849025467219366998203158557788506634408237412073289181852299551193140095857681400372342535900051895181863535555568801023450963066496026841792929501004902831779907762597983259839290993669372845042886893094108821310143160325145266743842099679712640917869729297744165769995444832207539197234212105427888814042731042490919840281213366830679000303591034898055634567345627669056546590989030518976350396574714318890360595027396650449318402434649842875954021360301936281491821789955604552850652845017403285058594328799343869895829100380688610668436590006462240332175220828528501608520588509613779646620163412805513313974839842661848687216529855453983128029429634806046133697564182884056202681593335359747120104080809456548648325395379272112675920098496545768021388846147737192169992571752224938694667718608056266128877169734274200684955384852036118153902304193650283733898640879307996687380994807661409395524443742669636886930968073262276162321676438361572027163387154391489756886729244134852298165331028460956725193601719957828264661860827873052115168495884992957232447062902723366976299154209804768497673366323243261166115379272186100371154011313685673464241977767793418929761759240007375094062965781537651661865377112661882054010297495365347985249760076488650623025811722935197091185295331251160677904350557592783278068124683566546135342170702044120628728668943340420936757496393950172430000774686981817969267011624288842121812774900120313228336303976030458166708416267433493405231659147681753140605069456465063048583555013904565909309534466068263209480267341281797115522677914224341976747386505016467565157311361626929307266659201023336000110529748220848734098521895450292779035417160017710384412342996618078093639740529077336333893271816388509665002631031551821308981509778520197450357236578670826474310190988744878615482288926875443088475291649347251746315655280846897196902916627305015035796844852124415165330526974972108124763507315447878590778771416856875701997295924827232942215367778350260433769893628224624061682070535520610261905192409985071151132178906570196326423535479168767654531699199289906594811632682382956206223642841541331715348501521182991182810426871962636444463749612134370948494814054209666354119316215540759869189866573402790610819407625904102766966532189770799929490740080695004422587674087993334914899531119028382239411627636279658127190173800737180192604522802308311911679596929072460117199434671133173733093846376684376864534873197139446053135983537404416496900123291346931949237904349385316782980525066520200330989752355412324983379188796478976735659464573647274692350368895968848190520093071691062986576163492009948591820124261175760962748511118940393088272945024133213691065791706524628135942513327683720792895954450245936659180653467226749847495939653662950694561371069970595526535901104235000446547783482172292155528230442773905404012083122563149779728116211031949817122163365753920801826569912748085254998085217452270874618341152134288076037714235525948293794411079040724835384064860987698797989043157008387946513242835051959292968672783236728818998503268802642504485783906974933147400910614078133439451495825295376075503965192802726995701642537848806955822526265761502359724635157199368187590623251259256222812765068776078624813565448376011416162909828924876895685950064383043673560967561549179110962756133538652478878934683514486501217789481747981949243351136735063821602361398542231118395948047898420513959594082103556331163403395912908617116159130969327787420550215626425226400896740663479192616290601739008619527412670016903804048076986859584784263369244536963810555074295819809045731832956234730834882034737272335855228087994349523720556011719920523722925778044206797314057306514043744042916646823133188049671720836391483557333609835028517620306017451840332625152990737815896994746988072577029834482956132159602239871216603715186696930344957215998741365986326016128548212640648194158628026940567649687963670644872116820998832794752890866315491885813131752639302174466625676961833770431168397470583590728451425619024439408714291553437909030997490043774405194335263002340869129660214780861395939955261878419500339325061844874214363829565348551082575136979614410415218128702074312797253780475650559986428921715315701035132423924689887169921627252804171648842743987216924239253403883368190507405163994933941961478928335168302616208703798089030433850152802000273691217375921517172310297811077015584542980160883363157458593740770555808481181834724049424940855880262647764832042415192333285035461009871877101963811546353450153517903197107706187747110669657082834502013891732035652320708465722344984110018292481484472638801698301279313127195965485729175346839864350149064456851143945844796306353996734910051028135625530886635283353705906453721631893112518685526838128428823439300064723565966288763411400216227111544404126085104953606710041183230235166984174694308371203219447887707527713629481008034633076334632993376302369841575911545179941874689461031562883269160938844665507533013525773076099081370373049568612800524836814080808545928532660345033161071652923557150109138470521096717343345648473476513992529799314267802327079330087078520390151292695224946653028582704401085663240759679693605444286925527017624615037280582820600616075308936701592436009312600935537348587994574433961039722154193449048530656045764640592387909918286881604742710487075130170148252101665696277045310957895879495766218219028870716068307702266803058939189713394621986573876730275425665086901823944206581167429208304947705982669896231961910185136793567714952007267974756563273879324819419159043010383568113525773611696685990282903652351491003307718476153488940692092001826542834800996767521178562165389386139113672904615769346237601363988764032987426991575314621607520985990978503081650302695502100880394425691320184570704367979512765952044463261469821875916839788683786722095449633013429473927895059140456125448783573189013545735412840890687261418969405729085785873650580577499595116267456691110852968703987428385003440846532257289696510875470025925159544640081836091059165383627638758038346082904044362712501643357850122743097329907711796161671825043691793288863571287471195991636984170519801747951841700890971925960911401725711789540786849158787636586319122858712404668947084133704718724136535570072426443614010567908543553116595459883457747359600996539698952881356079965717751038667974914373154761214312814688112358042184875337404209668972638495201586778462519092803115580209870731985652268221579534207456702396012563088871956433074178497778219205227147591213667658920454084718075999788105668064141347681532832332983104480838630536591645997342369144606939917180218127500731537060002072216594020532811640843303009677287134742411017321886054433738433525372888707835386807923978116985517834216323709768462562556159782212149191624029841738588104366491771677230631417438675860263100460725943920795171725391981969139190582319150795937199259017464246662174716574989856696622467438160006791575981140566653388797249507247173274279497999889651299890376745215293931898927604920703222612924079178884473082031652480986757186008776127154482939535482084948237568687922536249223299041141653375322335713520172158554619929811793736887271551961056202322251112265549830977168240130109224812831334105622874930055508750361449840768563783716398818997824562190163862583401362877813999969942590137309807514937864525895850348879124917929610911884061781224017135202710017136293897999388168934703583997296013576037068706666771658609144748633660279130778771099208563268516117567178104237506526772909516625477258964074851056959009700031905484026453035083196866019370676309955091232710488012128583552747785616032536801817366476789192147704673767556393814556662104636468490757011705536616767894976448626081743878555695350559004519319305478091789237592612098056842945643594996602560711772364402349295018247218640070277963306282080781931232086929581473467078799758393128581637302480463166586001867565293092327394494463834366233189701402151321142656468505767994512708593299871111989213218478874478483846021768986895797635039757985752362191049502023982303515891285721011588731954752216214574974735405829814075811006273514750971211588222394763939163764867157983092620426126804257215067527027018334387437979776298689109918694011308514680511408019478322253140581904268653705766493627380160280229680079136985698738058358407306610326078708267802575200963559228769852835218941091291865018322202180787927912280996198252995938949752438407110785910345547558429338578695778800295724232685388861664977034383204025768024396721133989515773651097341613744584984017307906751406916215806006693483683382973080636381683544225482024672645726680803111499561504741162691242264962989370074528908247017457176863647057207831228707530367130991531374659405952718478934036134028070713364480258752107077104801749099480488930718612239798382237241158253798699428554328548447873508659010881500252471809592406777692193295117739763990229865063572115418316933585641411020781499083873067712784246142126434449102164280822232227346271613481250691110359322142100754825673290904686802123587107579007801521015513858888911344030620006152926684343392852169674775133614177084498456519706530380182267177286708252523839767780249586437093484448474303947059551990924314339343953387475780141522160065267403030441529996279183751976881847673121891067472664176752040712999988060499311643654327119612137573146628809051320542172106029327088783351641795029022689094914917128198244655355247255972323082623857514969961337748820583652571357011461883768150306864586053569379504373566647634467426327351671628715148741391670441264009065627569138738073761902257032722813059688947695620087545662877503499707653813288146316051583501311637991362757082606717874325016605598801560146984307075643502098733602651128459756272713766499303465163060157289006477327086524979460287239715321301441663997371128113993479135282299711629305624200028577520309544312034411646662071572064779418375392362428772955252507741572842087234676079912572010160411210954255882409373449678588693162574370004435632423698162286433651125010998202357164070552160263323447843211064937742848732195788410662758487886496898650041980142834862819057594327625885259638780590853305447037236476851818322160080994569060283915425726101926672098607038950296406056887189470596545737059471247172290108770840331217304482407804099305469869295321468911565589899535852808915138745629634958471500938589431532100397557216709208312814492413984782580231304028983135252796807242617770060042260117764624116356983571116765066282198324038046401473950775255432836567892905336488837806749422660845864312187128033826794878988067357409476123522865128603904476703987723219733668646470230580094363114249542613852836337288340223327591357829129196840952947603587427107577125079526232568618315466766840337083107034905013453300381988294248986571531918429037923299773342407953567991429460712093658132949878057291508743720969382822697521737874488310845405359154316841234147574700608670164987260837580906503736855435521549707038760067266337817888794818357850812450444409632254853214218199339729650256284387236552813774282066220103597564300627294033845637032741555071131531111113193083577061279717084621109338337737978186690130077696666096833905423372717549914816796875252786755378479858550314809229587845402155050009792132599683307115826218998351019813727744743569731607147714188917856788405595472099184872409283559990260547450481171931199544240649003227779392983900078898898587594923371594823472155268290707462290229616627199882349706706953263690526603995721686398240754830130479394098552606373917446477316160090399742756753965581804560848445217014662239833104440552603730031977602944499938907533168436179577702829779736245643919006243340597248627257422205320206392947960415563014672028262301022086180869104870615308513545889774879447529698722727545116159809263738275837176421483441944834393153916711167471216199227635153512502545757826114002460837969582821450714395837534535285598304457233596235734363782827667664848697749441483299298080075442858203556119257025624703868351483985225382098251887134619569633389445576006699743209545819989735526502085745087928652491434429414231032868207530410395187425039736421190852337292787051398978694801988352511321848783398972014713640536001554708248743667001791983239308493359996572768363443038626704188292868156117509817317846588698669079188551048580871151152063617983236657074064970473153778751867579572397774689783510573117375934959874635094876159487892657818468568983953134392283543889411454555937196931470977537542612673088422527331654275010143318068062939879800134495824580703853310069925930197098766471206675649966887108738169682173572883241860588157464114945187878563760134159592228230079352699429290105822368074039527095138133772588759831072818337497646558936757620095024177314614539642612897398165026139259910860312350351147059675455154390420540390398900827034415132444593718280668137589653139070608559146645973367964962324532511837590599222753635745675283860065111250632974790497051766957324330572821754041550011527545637132934634470961055194834858508061513344195655837596826667257069502408153541194798809966691104687441101225919569835445689244591096449937137992851540872273162819386847094599734279795173217170389160410282519817489811155881810971517963584504324423332597852340424814284358454749661672870064868793561642908626597898214358626580796784366202544664383066739742138411370581702092045978213074730817402030895478265578210941484132162138029156117339790694426708783926176828170987731287174532854727542618937925478495659418293791214105441931388027732939295949735301069402485118982917295686458637280589330621577096640534238055839935870896629318116608972083294693397406834729178385331189701014275090926021553314574821500862164272324131468505096157421036126978854405480146818052741110403108208662792212638069723091714139144577301660778398770584338741695065368348649084277394142850458816668693546678838780628370016149800620270295585223292280980082664815700078942588114606637914261373590220949914121895562937267348650298000171672871982034203869272948825880326566318905910834319495910590680042267853032677992316503043712379622360585679335006190715850381345287120574308496323663504693653336828775393188048465146959312428838420410087879421684130151155170227491164934238300021940365805667989722438598174128603663242364297358154801684810802732431243004496747597083814185616822586767793857805286802505550049679506450534749045120088549418986281520648425987383360517447074104337195563773756893886168057291224620868876959835482430127813780282055124408815560423400678858219006389694198262644900275570075848731835884476491004807763292025220753339913866345992060264447626758317906595010643635972732233981916487344705708687888750714781248045489078185700660008743721695055814266230877716810505649111086877196378089625973189264166095547906220751061101788637692721887705043549985803153114922041092983834259158811877204093761835139373232787294545035189076307559472523615291952233978477335123281450867040936186432044093086220909276534403000771575374197700055085053989056542749522150017777020334505719245158735659309265017995318941385506270523506923026156116240488532564950526803194746069247815628239807166654061670527729993857843589128134706614532097146961639059408351915953147836912083447261704081861328047016495788837629784974907125758217674956784746934521053755659108783392198894204108545342341746914871250643693690423733852029588737432730430048336549391730319774761107548373444658281782218960103125853391979647350222689017683642311266809156558269549167089796705794782527773435085890055401465079100841570614730973205259004756601158240203965810911519404549517215533503080882322081743784076265767642492833275319904929517928689512954285704093402069006269464474912682399228190521543779053946529769566530028059019316848669036984307735387522995002073185654189283113872193265885864571544663175727787407718682292265359074742788752873627383595317161267652553867223718092766387678272162622544149729153242084818731006138308051116126629320475350530376334918314461894397370784128192337573077892599750551380727457451270996377575563394219361085155323685771789957144112266996614510327444722622931873737954937255279065870783848466214351604700758343293795923695179674545456887575291632328925502446550490135656738270160883317543818105218733557250040002550211382254199600128529194522384754788749630064337920112080168238191917791222437553606794650165106593752337715500915995114208720457433869420603720021747977182801256710572418376032369805697142482710434931721006195661119714622779104798498122533523000250911096316236764095929264732746456897175944834434752755731332160071202003247797910816059466091744296633589736610297129925807782807593071203289847396253334928328426915150134493011307664670936568791317756595075814363401940813159267796819785374824121694652816212605160946633185489646041296770274099650827693280164854516504967964250431251845342179973522607146617162426412046133725196048447773878410166544256623412953592506121226682062861818270605735054160361033774815105050405358847998352047528669336690445506385533564560271391485611497561774444561842066348251555718332904107486735517907405307514900098718351086217855062838943816390804017510595889839488632170001527530795369776910249633613061897844688034260958346887860963036658693212822790956181549250436479165050987316823903681375783965231212752690527369613252538611631546234416667895384015161476258326770884163107267866545632601676631028273624195133256781805299399911274583909619127165730753218036273881830182323948200026598451474247645878311168647725147307923375000786621333682233203806872194544900204498062319123420424424401576534344389735443586112569428821694948960537926832058140299125158745401668099231884221313676013682592147790001045070893442020826218318976377173247460791126564119008677668878457236541036207986404637747307004058647833982091478040175798737815105116144178301870415733021848888125045960051123180846034014342835980384053698745599485032553270197010900396656678832064528595823180439085525255459534973413130223465674360441762518295305194466432578562283690164167681725291362490008555133137380874536353163267303269377047818642173372761651093714627045571806420114474706365433501660230003384820949302345807419391903102521553023781498366832162162682184430843654092421225998377451296228514780559861022732035213927875945259239719455887765326226413147252274358398698154995346897795505658323487381040796863821977999168451237413146735837973203162765994902475026850385113554055124818771072968840511779860049002646560134074760160276170816165969088229862162405405467740225674400250952365330854442572191750871463586375340482742274060555776266436647482587732261399300109335457066404100718292514771397521835860094851243672386263876774699168497845470823342035304802217193453815038611196644561146473996289277692302386530905634191993387946003361988395499116361575045571375154624584214904296793812840755917001747135925869861317968937053981722495035127890156958829052327909339231842530014697201807236936415986308095802372335841276712358151108385697322716308589101138829465314107194676122312543211888886079156425259738117245075446124152294813524250471183867605847970495658743246142804079132014327664854473629816014555193541963337086193701713258621120794582033833836333858470142335377559356386654151879430630087472045616999661548767673824068402308129556895616074288876752249853043872723437413334898110580843297350302656065604604881118913434201288203957515584326372315766874858740187087645579950950769698443592555400362656014920100043685541814358914515633516897684198044894722101940419015939739750437416304209352889988394226746026908740351208697119655613393184943633283770884773845135306433734516495248742575105142855396589175736400405116897333549855657988970029663393810394472860377017641641837598366754348269883451609197937731417377526299986416597642758121768959439166365671867784962564266285938719661368638621038650071956499898092927401288673581997031940054277631078457347834289218822445479480748103020944219361402932368522494790088895995461082239331316717629688350032476576756810913936095622207111818059617162892820355154331321318895791822659937597950460270311274807609629927705748413099884766338975432639804736218565730579240368241453233357752078973515246033569517470480542611650708196821860617956944813091062191472951812505751858673398095082930869836415997579808727799543024332361209359303007377616032267140912242626674247172536837048579081019476109462715279066044082763614729183018994424079810848553947973667176661723698896448125027114052594798030760129951636997462217330635309981173300990279646941990394955199856110942095479892919356593828138773222336066545574083291651750912788821756852667100069409903364781919171725676511160927706683168784653345160987760875811608282258521897947251026727681057448163391066410133167742820894081572327469967879501633761383684818069438017011706014759623550813356819370897553846673077633732124646022381231142036401972091363442552072721025810006620338767011675206337259655674712923542367587552916394947912043681505146477946083410107813382312595065145117657343549193336343374604012896027364552067757563408502642055444927047492291062476455914235607853115073065551368229488249358653018038801233982534560692704552664117376804743264436583065667021966712379675054443418903734297498636601046654305104843114198666830995398996022231516883679663780107799386034276959901034852777556951836264278406339963759873898947033873444285919015528297864254189030188845370701801727541577067687863566852356990582878836214514139432536294838356595440283517886674201090328410425612841588133594863639457485107833118257930559205855354018502461253684892651371476411806655052768941025324976994809268054719007673364653933695449198101020644266963145709295173910810640038268296729922675921109834123752085543237046562044597754055155254269851698653111227378608214374710356460058716172813761090366751775263020860687928388030513540261867548563711324746031953135515460665634424110319313478311936935256492646202331289229496000571576288982321372623994579372920501841628441588148051353754744065951226065679403668692652397522001432160475231429820726511219330821659533768555316596933023679508666930240030479705824485593989279075377591383326253009213121956752951254277890318400014703515039408365966915522618851098004153930996901116415488941763387236409467517455268635108835505374324031511514220411327116113230239814700208246121792496059130912749176297176780382501484200225887939683475396307919297390430296177576967939122565840199323812907829074316083704591489679946193775342798474420183694705285480462378234442652743422710790000956390027167412501203468683846957425489500948849681872039147512686903626601860159439189236299834417569160880449302223331438309553689609215852512121567869860364979764622649514593093857049085973806445424055987469691690143742297911027425541585124093912760444183600103919626382893816240476260904057512147339430180555141055551736598403435603904029574963454854523566739397813296136612747253842429693486309552865572938540505132342898425083546075733266196129768390114544260161949855370169010465665300074321761531981940139149606830952075093061946918182081672631862179389071392539114572684205584750741567614791820106856591771984535769099181930230697047618812851859652979218664821910224931876223396779819448782308256946775039068410908105248556939979921080458639528896388440889174836532336444682229753418341217696614346752722433440625466121680931253361382312228077606235687257084962296011958412705745311589751312532100350440187282225990755608365769799549007492146922713218441210727148103730859486513134907949492514404285699373275572572047718004145722078321112873148443207098314673471953316887848775848375021576524645035129841290612557100089648070007313993133776800211020731118149845762875002397348179012746937671500030921200650066770006485279107363656425058825301799600279038000976703723577241969742738704647667993704453257474014090668618428809429126863449590562866255177144060824123254926892159458135573481514461003749463202493942397998073362271235077023675061746825098868339727536172320259244673354434778306948901068282766417807005089174040005268747127299794300858719222453459818713692280267453898817017300087288730213297746876595992951206733867255605097266477712915445631789794322249058316960339906525557723534276245269936830214301951404256579097874414768532610888543857653916447344550986353978418942237182693537468245262221608913351650257617886905798818950414829190185804412087388163571843634547986882729152205458580261759808873586998731118075281904175689895545650950464016657974818965148068864843472623261702736112217782627479018393389123536690774365220603208991697954879471327885965152966649089460862611172452572643423402956662165279757930001278362375899028252759110492462754256504925211964842257113761463202410623137990103871356577141531789058477510719136524637374969270088260449331373008983539522021420189848703447497215873673113585848899493261699868000593185399518877132575400730060684005423329599124144231148877863932960560533635084686087935473820594971910330286389301695524127382307872525018811760501949831260691146283254388183001949780330907613648820997465165316412715497811519410276857489405602114641503972383688784610962287704376264326703981958563472928095169224233432898898712223974021600141481493990716139168507891144457032413992870663125316334121118875143965724628276387192089253703109363194463559580780523104717116440976240983994771346859991257009512086245838341590283107934023022904422724839491932734613389315940592530290372837159016089853164935761658794856171320585681658221911626471834183424802713209579781228995853148445337069416269701246046916238108645811874449205988677699640847564483215611647875468962677851976431628989059840593583500884356643922552270838350892067291211123909131856920301069231111278249111769763435942261369614821685959632860098599694738971876237255749617239647025002865529051775456756154852088521234210080029186868307003613923534698841947015107423827329661563828664139310107536737250456353603980510085440160550775786185818009444592689277085941273460393705579264012477383084867912369766037537131943116725879060912450778080303306373340119032625572760490065320165950438182955508109342112453592234232232358300889876576000609230494953278123672485267950285582597660704221183112945759175996400250287860549877867736473683716037059864785805895948469609361771979877770838707522995049585105919993421370547917817056281166872868486844392613319890415106533899633141185190848356976563625949842623533155822098902887665482140886464384964405447206541724107153026124947259765893039754747934438654365758199169972178120985377334063302363994132922095446689913538878952322820639932024404305188865663379484211608224710465310421520149963255529935799634396932626947122320861829804747856724198733310788164330005385709093038239654907600490229309844453191435362260028786821478200380718978264055859270328801600855192389168922042982713506048180516747948258565934913373926123414609143642093250602519821211919636078105268488119742550344436343844797778848245195642821404815033070602539416347443671590159386748842919660949454199657202503533304278720077505072704660152780127460456100530591360005994336728559897271764486169580390643626820898205349696517107519146019203295439916519077940309504068216412674259123331879218247881591871893004310977997528406719600887598058604702859970522216162800856677862687153501831222351136242655482079701783783990924653007887589785664695542388650911474066428501599192736734647055402121727724245501307913953386038787761159842975684305836342878602608182998450932736973664179560724922864315486900737549563118759437855550849284585452318788642644060968440676288683811558587184563654618674827924543951158506032290050479501786165512438543216475519295488932883190351692621046507849196146842825654512708278656093965803384620277271383411497039017768825169283259234757997194764339503593067050482214032116402840612590364373552572036407070127242621918652367544710655277744871642553139108566157233012986629319674576145544518832244859136043632781375055748997629343015178368105708736492886919471617397134734224820877408678927000929505679907569949859062261910459115331628961957188399394646170700899267912933424198606685862362862527384056449514023789280243104494784787824110550777331256836572837922976536066669502203091773410267162835450504386607450627262751036065416330924673444341216428872459725716105103689690824991733676126278640551158757002540524442040425203244103674839913849875605267157060494888604073224853481575286836085749305723464382652387969276324295694221595601787295658862877814838021329547735429243541234573615941164904016661911108289360750456579255250773390520624244432747342676513982652654824897137828880510947588162141862993795433648423586971232254397372925754301163909406142184276870968605504408982103517985350194879583121587236258210097035854704548220077068953716411642817990902305044858072313223451809415748747671027130705451601206055141247699411772787023088505191715087022585383789211760059668842506390080169219573843671897777496654702007484122204120102699802960990525642229061812499723549323280545388392630707673210501318985576635150358485345797878088778968791086153848838873616807240585291990364169975236789432594258938674495539125477298181173404512900847336312361358696639136326742186011855386671360419031277393711836755848216936805854104701316868811213777328990237946848075664868708582226566606710053866902985259555893950977993748760532214570648041043272930928302721479329806150557841432067905971578808422581175084499774099505889072292412749416923487803212328835669815697414971335403837790411239316742425916144575387622490417383033332952403998934998830432386039777461955425829857100350802747233150978000224641089624802480673695720632707584919033074493963840170717950137686044156537407980032006977354559994798642736326034686908502468842597063767352903730400035432462447886679201128762442790569307662992111192905648046780077641531458917254876599620642252225358200779695607787939446322485732564441973930834967588139178877769350876835851105812733000531531647827644157325282834809913995297373047001407357592033666769844873221679779691105541539230084693374140370152510132170378717545846267008816459424904372273663192624900282507932754322929563724027100089562790270873956996258142354081945203894617691358888892546761455517812601141159612392589376417094122829672658264347669621419007572682587278388320599953728759888135439639671039340728496669881333699677769402922716794427249392545718310570997286700070164297638781315891368833774912315546078658514118776277724393544514710521369308680337152874333088615555588863921469554804611954134907569887095685783687471038263596477952756313904256205008254867733418376362857240587653443735017954697773049139909806727347208935388014639839601591612737806373767281417956532044039768780866560070197539420428613442919198681131352547992846833222993604328629792668250521385083408090673149227951865648070983688989339167157084845678118247191564839457770287137674574844551860625149596525843725347306374590379293644909665400477744425248729426296010784832698007654601014120728917396197134148729158242302933455306659050819031798539875143903574042175792974934083803088931665017937870443319113600343457657358089961602321876079254814405052398220206737307643289643514495687245885128969893655638411280772096336111112357840975435917336787610064977805530636544645140141964935367045434251015451458825366837174706161824223112477383851921265164901527925964716661468879930379166454475958653294142066159626978033762989229076585529832682990934653312545174325432909697238618290763552490539972255483932054135500616461023971856527666613243260599022457434018456460711963258466470693961585407427073464797988991402859011555320767002082924418204663443225429276296166621043824314797301000062369097912623696692456799609231665929372254576278056967876706706592674078301809097351626404733074385297199380393491569167895314299695036884089630276473932500006585526707814075800650845344309391183447929961341542183826316763093860693951830578001919294097189228925036321780685437173971815119310656481308250126724976399005298524755369584572475977824640527484469363040205670825542734157009562473117562352782577905524917736193734662434011588884332956308105977740530130094137162960075768371010786093513306890826887714277424194834077907729222403217051985470257013393964762039988947187644155792447166302462965255928128506251502176861627161443422878377406939151868448698826206341725098732176682676523604622174460600649524338795381994739850147813718003907431786498044522606318654927658315652480723353623086701914803463192397656074253588349526229501372259423134510198871405394327255245392490308830587101842796146673224074316036060887592614943996358718022691313587990032759274470214330959423965951139633711725181250495442700734307010863585544530737692049602580627524438084303488360759855263978654967913537244687799810249732849862982219686387553900642744532282882947991002541201835714452559992323893937408869454427102452676117411268465552437159276521761080614801336050630061908389643832282547295094085088308085464923195075845665337551835436079864249817280202842863910018472628856067461549056531300735944178792866949834345862733536930613801581292585703515877534488016117764072160828039538145174429916193678875766546863211333414101264760781202724379328842567108645988761087266265917714726594154825073521007131417443809907431619726955497397356643129474510526718049264297782820022360716281408477810901308405176314722051212576565148370705752532174787969802730046084603513330025174999925441939317211081027806492646329906636817366247182794491551222252901030914905103279163191461498306613871666199166125953500196813230100220739302110550825316185498391178914957748102976014587440605265407960190388771529460789327671211283947223560732324948741438984908602498422876982765008420757384636925068827903368842736592437011682903344883692626152780193554573046503048296481452049277994900916500370602949761446665205130307901173457426863649855488070807693592933374118828204627460097473038770966172145282823412202853630996793917478239225125429853127050506562920846742273782399977890410624636260535578303722428781677063424715558252832057879326158793675191858340106435526318448746862122126416328653092434273430243930770957019734792680331871246509822063829379487113426362927739803620106670373531763685078760908800224971243895275388111274565996573368100417803874910086057073251673398692391581134643104185813416494084079931576805125095766224598280938761072983887255901615042053648004843490458242083826409606066391968842786167505930551707541381627875978394621597427378519133964060383826643137408498759662749717921178283246211915945538530058081654042207566689735551704838878694176319793309365717322201960703748395455350251664592163107143378836998693382042641538797921608832316270553451903133909445412020130130436214978510997518231109419090818691189026486495540326903711132609650177274012304517092796474519603489964030362961634486092575597945498129291869340802455447181611977435199421148726461882029921145665514690708686199605729354353309625623300492978319320935781030802042779831145207318954480592703627157885480496718923693119568082916929681163451257692609843647269861179387700179719569023301767686167572471436876708124475773294297271124043295054015347488813215245668099949250638879157765658754158688967133537666710161612943462012568015980743659502701716141479160382320010249537537291960160749259323897839779829617250374597273033667507555874331630992092323647649281608373031044080231930865428182289788368863274178098150172016271803583832924715029013033659447615159263069274967092130425302653905183700135350387155403655396080737380793567287732813543111181075144136149854544980950595050058086818458072963566167180330322911112085813228352784710577971258885981531720536789063599386547479988828835326320061087386615398142606136624234238788475601885705243240595404084983369121390072476642936946881857116863198896783094360533370459262701671623297297467346374157220975853003956284566822671903766309858214574051437249282834617184193018773849204848852844613042678256414941214388057964789408862272385755938251465331628031988338212558266772811090633463897189538718790648947520489847921942696827810410507879947256718292035547249657540155790998839560997472460127465201270014995730530940093874500742497854806382240472884194974590076689753353333912652481424688563986199089762220719120461017274222515684253534352094135232146525384968918516373113966978736583777748201069452015174831961397090425830664421892806937846834445549285981877019712859864578429000285871285433113321796751196651807301683590431645331356420863949947456916330664186333961155285378697712986132639124678686256971860171984627381940939086396593103388810190525997540296286032023765063194880830884812724457793236417697111619822319682013606365179399852751281666049609847394987596526391685349978030717146721863873079033498580297920226657631239560114136413038921441914783225402724134299400065741063187465475266815538898102380407533702353890624482293204265084999154930442245530928594004573724676783749531429072378028191475470905490489916186059581887637615318280916176866965839979562634836772090695965503780396892872497842681615648472783937008566246781482591362277755575087802506089278956096425668722674359643794292835592988465441686581890696325703390075246529505676138032217184782507706374407783164038236924944530993039679209622992384803148711818815890005693607884947504259231745613358728978319537673369170834557353795090527880844825917513879641233394840703939856995591962111113094511793851878399735382227384268933405441861653607856350798061260091087996039292069637471792689735219149786613461299093617342099147890661406589692780223063811908868513279789892536710502471791805117698917622010665661202562471845351173848941587480981426961669421984615385156966615020554972004056663657379317522972540015436634993510372950480173967234026877858755342187135013107198946091304522849878135001387614394912327723023786556196435259375772079676830040821250461882405424019738861871651992210071461011601321514653891131791757705683985055953576819671382322957581597028613808193051205496008886290783297848255204943692760878678850135967212775421983480486363724354622818742117585658063678372271934526247789257705392354072937733359289810151988512017989186545861670088719476374268846982594151240466345680620080995218401477918788198519180245130140427585499351350043888091811615265534315589771277735039383614141791632557716526011310855429623526562748244919014148634395613664887216940951338711429398794882148324622475258524652673543615061971281013481713609986394305161134942301186597031608657910950105209787372255760674413747016370604235163523937209368095789603315794910225197590863898388602215733115981332258852706363285489247830238375845067979155347369787400890866639859773834534545540369698118200001513226813893779997632278323664313952174722423002208472946458765243826065623791298946462659592337556409261280809766058049697748553188027333067860058593636946032236855872243970228071762386465590858789594008271120712146403955688924721733423657672865953570223430044277643389074807314525884837399955076625697452288123451366105273518777519688053976249802648565550491670209842208777146200822004266714676154362375221091408984774672419931664579581210817352101181416029738695975020012083523649985253801416321626192181659715188320670488693660503847122526210586885546058751110448374710650513209747527270874627263043193279881370376128869276511363789156127674330698589698812096279358000788361584236260256652768684461887927569941761556579220170810714100267533768380541356678980309768380559274231313553082558825140442545332295070614967947626067857321562577485516170839712913264622652084445087657328513264221997530674200619203408335374994993768765656288749105841341902805263768336651983790792671804814229214186321458501113442836634431019311775961769683561405388704640289856391602346941341858650827933896410350635542490637239219365093384160447083338278557536016172417905128466136683477271991830777361103459221132432521738021987832226882175766107728457568446227931632913341733312287039055138131250396854801523108265675044443492886095040478754918894802649999960672632314300392261571843632433965700692774897306373634481819390636296090887099360561133686837913873027143767326264794753732255644563668288680824407958828683318315020639639726855933056815169901067441736576627881987346473110407739752064154850478668652034120695805499602615337848797459900755704061189156769424267580668944109257998338141184767941895165395557700738950440817541334815428427375650195606752025945804875032677446933385390882910227302288408682423783741081346075464199092759595396559430184276414395406037173929807801968558698723297641066162103670952941978588437785533910356599379453098696775429644285619100614956496661893548904767596761112732012404439482246918021040714306551213969704012778470060971131233096438010421146738782214940312248665794233551804700889171343862011548863412526905694804785767540038418163248142991756104353953721409441077920737537281688813736676595543611684107283143873525870922406935953085727246456095541989057515688832562121517841386256527069273682653651211413902198970303572417990427339854152759217780101799814161940778882685094121240798733132656344826734489589269108419079743365445265734072497691761551317061297990749581853625283506810896902720922106396663117708166059876276077990050800519269598248440112615488225499179844103256604876718732875620291656166147409592105857660270900113899626566153431306786535377388241655671944989147936496052372715832206686407075002745473233980758247882403001494091692859018914485932092334238072388589154730489514074055700034546463431813268698345976730479552539134957117387183841457324835741186479012465938800913817544669081780456873887714710515920174881459046150919545487339653218707766452366855479274905284245365436973313767856178224355637327147434077782491657082144954517398256817374359001381347392864123530131519157104469814835939017554245700733681364790864880768630391315769815642671066869558116565717652959797840864240120932672058635077117930041333029098268932580011630183208986712662843693246819327957594826205543037934567853547724821430897086685507406999518840019298642009153255692189465471583249676813920178974373372619503218297865213180926708467041456544480067879233248659043928718973038596551548938725306062098115784767972928918196452782821144090188710296365279504247574349712028029975168237573715723160849151882696576722960969519959894775872798178543314590646371019130365675102215169024689007528037909932940039265821926474133522670948058594290779425056841349009568913911854084990749982729398388886479260237881500147014657199913206755122094909579095852712878345256970127172829430091214577472751604306950485726224393150199804176193235472672674525948814757567469382643898679548288540506827922847824872365896972958043610736131205682249523161062066631903131843553488022485114934326953503853843746724787431642500493715929549806441256901487138811065790091480860887996884187714865101669354951888061931033434325957441445917677612711223987703075814546817616181603696047835498209973260556959539826540755264816934965456457466537920180364477632354517763860101012555517156248194563117814680098635692530059007757655504866811287208879678108223973275929360655160747431534527479269091558878392962358284225797321724916423761691279749338769620816790707125822752827782981418667302686825741296012045192648166912812653492158112196059056941614640029962821330368960998752274022146057995604469573285264975262477414362364591017812805375710724189838413276302985021030499560818280884534588489421206629938472087859176392942476306509110846901358019098067688772494988478445344960487380096093726013970806617372819361416837657358067312996731969120054054555374606249247181310850401170131624189604867141501715470545263376214102336452213263144128171555974284988136947597471562797264873942441387972416939490049743883501793436331592240164754665421060187141197910751752924052173631215160898229938737718550550743952209771318700032544302543799059768222844526293899679961434630252415301770209211189723105347176229845001846423556893579743350225543128696792100385638169449018297709830915925947538878030659946778247211163355154438874281490729069557070143299386006337278866615512824708034835015101008967825205959727651198270148034620015933177849453066573251224146186484341547674759019147107390399809596232928014000636907660219758967275889418519512264947836900842713663594156048893014270996714797146455935763465734981321747969760536691073366876311299831997925096890563558730910167226749535116350221868174439218904075619663503880913781771248696481322049207022539818087630782326614390114875290282636734275491755028538239586113108896329805330453459910743978387642910698113345436999530550399174505623749056853450669679655200019748237824676201738993788801864579311975026824100907513328234559972127434957548097505652684915210971440690384369876911009435831342295314973359130110898307674047209186854250258766623409385598706696544185341517615916297349213123035575205295312380354218523899948392816938376517619377660418826288989625851013113770851625334125056048999065016632398354883068558395995386675351396232760564755066805074632896249332502397699356179520918184263832134333201362331155353514218060263250245947088839016381857267817171366990603955518931534170565318456757320212514207888886386635885087416130486192939493104246436308776972206822843255677160581725041818440018400689283062844235198701232016079344433480433898443538788947623965975179481755739917166075547414164875591335444085008562642474910461679709415929026164071834561030728322028761397714800404445024393378259552002709238528468411684994695239119050859101013917019177040447972290576142438865800839296239200546555631552176084365362396523720208803600301187255924262498392078899442330552482917868944336813975801080329640161237623767886573969828301692830604647233992470352586215919584175415001247063561260142019166593780511671460756498219390005801283225573978955857533510472709980247485283989217551445433102058925991078864812120270808035782657848282459425435233892508772788844190727062107142580249340137759382935653024743663965653032888125237134323485991885380123935285288468217183060419121677650733770818167257016111445021024078888327830457241683522081784611742059905252347767498389378610038446965663033174979216310237427034359673598468622825018457798700291006248092349490923019998738723981499754461441708228796990927127806180012454760812111652361900608231818402403234199106167456779349786950627512021122103665163044575787139377690778213175949512265461479275438301147499052760938348556577878461308506769527062401721959367520051424602639425594598189098740118087600752205078692063585022627301788066570537647357590838926995051408541238130046577174266039256711036612405455023649578834978377324598029815951074856996257230202683504268297888790737555271121864155057360075523136233046133901793959783639141921922976616670286740632180110257370942675090512731310046015359672549120676294970373588392722150138506917376876414904066384022639720734826338137812686699034471035139455166422859623568745842875018527349393583662576477503083128100752924760843834064736463459932093429205216699700732268490905135446589824942981458155985482968978510812752458332189323653348105490144048867177054590096256408199975608458883262429047612935086004211052498836039933784535629203316199255945621426454110590872477225352491406509479460531807617871733259202024174588294528831291639553763852181332730845930801055809883673192593640003250382695474250340763640968437281472839432306774329752482893271338768107538109699582490159076514931377653521124922197094950550603726282905517982690252108979834077763388024139139906141460192058995059585113521394065742350985754607980089130754122355680718623202843452616268609132044037048428698879277233880659688019290662836795402043390080960269159859214584642098319360455077634346037475449664628290867861503603478580322265965371089673348303875103407230466764310582238827660566153749451427187778454235485457644352244148431703466937536020691272895735354227384160495672731324463845589564185273428546138439215135701030792843507296774045585364611356716118226539363042530034842688958821024618310467328284433163722776410602526909165436355026959583483723632584325165583724130164346789595275980968628699254162743349542844564946008608271042373388352712453358354877401290652121191412915088612222993245892099749498562792117532603593693248439826805064981243162039552452809586262382312243703753889405469772237811396772569799373317220176650366223733988761077843586021723639955548766843182955571557963994509897849101333591534405704830313942198881158598754690729211575711624514241034713419265856863292583172290014290934171159852630566197402707187887272832849326175556114944706307447074520529089966955580791397234822815504151081409720621910478852387458344030066258037315608366656991880778082849433070775319271312141829979725857162179375095964017281560266611712514420849304149433278461573895764264531205242947889085025511468821192087813656647589082023677185824238731216067033537631908523265188427081880946036075931956421411665594425942147502558111086683954968374829821581246577756735979010233751816985590778877392270657233485433015299031808097734228394976542229712430478241103677249867502310691830570327199226221976727967478471303119838349904329461605960687342069356492038646930181998555672667910470436920933931602505751405565497321932915947372813034510219035362604306100085588708180601301989267383458037198052609466943885836897005976597695282771604111853468329454610719927278982499534199376991033283843985265100854978862374695436428927401406709657244767186626944074575026767180357627577860594820003675698388106546389587202003028755566788112153828136749729610717751316585227665770703159153558566099809912755213731293985278489765691016684382667740340956603189971260802866079725281725288670998080537191498184449045788079544355203618395385165194918539021689273516782159557491353219599507656661286366446041383838146110154157748549300241585752775604418850974826959257463985699545974153362318123374464386402050106742682096879031912682667684499183114823353070240361338928871491190885522830525142829727535860471340817123589365746796190944589597694368962500481739645672983507185543829420906716692831143052370332191221926518927744232929815528211124976844925715048094248234308829592333473278091970072922120026715203131003624928239878050988757951691104805031634300773779133911880828542335282406181352015510820326190616882132032801390185101738872615318950561470324046186384661811128130179160666244666658847924045869697593157959577083167353698812067688478693694678590422388926963412874304259894220782750805864378600284989706114636461575760962841790684565608232631493090326385647827157202223926184090485402275244965422163034935430905434639024664479490469528209489450249651150261536456533446019163347579570541334480096876284106689795457272876968271589974567936268977508494691887907472142870456531531820319090114780691990653299494550000844990466881706779684398064881194594567098957718398044444106198721997357804377725645987899360111404330752813857331250579360194737183657113849205235819251983823688287412995587206198222839989364818260405648397751123736680738088459958489430128357346130768859236256239849896059163318524769202807241855118315808079083536896000901684333974326330877025924142195368212190347946449170461744020487759892587015466862970260057585750711438102133503591053795165142063640998704702191594874189476717700474930851848513817145091941911790991796882435651978424483722682021770875193525888136091152758930263403377504667667389483891915504073043880672034799014326939577200662732360566774232148560190655418186823516272771748999604249548705187062725447690135889524604204809281604326370640281219311848077685958321353944813711848171401315332197541151577997481680761273732798993887153951995355712259802669702876217530500093103600734685326302953896756905219531344249964710650525766664939809409389894686153320869216763325878106667944878072505351922826734819344281598920046014866050570604669244840708567119443112486454520158284103610552047105401293727854904392049691723351265785978832666756550331629171945780608068436882985793868396754469978789112439648278866787053490834837428622952317793273088841540741180356018992795495937571162203908947819867316691493032967427016917358591132194023489541306878740234207706024578272392337144304276475393210960457263904950962026407698277995613203426639510601830281711643221536569446926104354365681261053106816275071899703722492415677046711143035647430479357905334899245363310534437252254044412922465213601955549347929292567854924315597563465732124021367445897623108365903450772058177781450930113499647838091508715964091017350548084868822024381307807610491257352642228825359554146903412315138865293795892209973165176478869232480358129754849404686087009486641678584189027422344001141275682392130056228200166736714060084251111575897761140275429814727486746210549978633350694517744590067056752616550581320799748766828668939018575629882932200573208077856099148200706094970430641249985298174812082950642907154765770461843430488212394526627946916726714618168003816428905059777686272755743786316709091879166540102381953739185585951120629266811798478292903682792685159881586525375541873784547406479331023818244546145917500141539272456532680364383691242555844742574853708267668427295949366955179673336080047085033725279723510139839259413724098980983584294121728836444701788200835804347498040201321275918027825491335541225111001311989801233078492810767027255285361926114100749931491127419134768908197802783785118077816245241455200862854317306234639571387097101982736233010918438957525156338496617755840042591948423671842785574143213154444456559758179224202827302444072861096185029912822270251719570067151093874210697230300706129213136175280181537918824853613547737866048304857489311734111222077218896604124710581821962447036359013014085007631510556946946833753667146064214693678219644015166490489370437915525082510872342751429700930048256488020439328977131799792660536627722946529125724517641916785129236044843210984216120489296548632037417008325739316127582106599090233998681776798960960520811521461593313116874442315536424923571285948400089020289054928387271653976154996738802678407616249878663362717705968589808461934494511675193741226606140371115748367672175057963293107797783539898441364720953604857105035997539233610050177293905464947979089358881733926710675558749913983308308042442470196720424221084334062874148952408127915081139504107428647978130887363034319891557018983090253405578316582394168449749838734767499746360953588431896863510873111958405808600485280694957251062825423619825216933200728619342464778699805436515416983139729430384896396609240658476941992567027042749214033093244581933432253322028475509640903661348548813224756193561812889299408571669211594529033200674276068088098887482452649847028334222895062994469181418966831679522938475377750146498370045543240234159078779228614810434990444778554787794162129902971264529012525382191431452998970814243397281535075947436828296455807696848174309250704822598866610253830925912348376893676655709481837201203646586393564937196346574268327220486415474119845717184543054323586941259817137524831416241738231012483283106531334312920907058475402744365856772788536539945097446893475301640554789031397316171068032641260781449672726754252800321933343500846349510788960272989264708145940873399887306726655036546736056004937473669649656432250016102174030122284280742944338530759102255052560435789066298067256644673587728776802667357507836078256143730451861926244212568588983703796120044278454890252819827674610458261567178478959584249802046878929951704184324730138032098995699023394168015388003722680190219974045667307842303316914782123430549824471791536708783192179554469336350943631607555208251146948712451945883139117778346416378229997477829389230592401241841184152997497186118790896136364205999229635636404709451104674098183045228650134678678608871791517220453222308680205423677243055050496856246681135935239951965835702987115392600306681844769316263761785056384150008415672811309122578201060226450025876094358854202864373998103432528149256393410596811098255809104735735146265106729863412657178469308901092871370976340756316165715571701357443480880565391484604783462439402467730663755851872039710128119647274834176470581210297517628395396089500413072473679695914582655744724779710541087292036083138236572580301248242100886886586992464588870286132644723316410445201971973378770685604359725564886179425805901922305890061144839221688708924446728372010051923067246515524853760519085181939682644905914132664058842201861455645686378690493504315169962790410478264221675703161668903327345195286035360424697887252937659632154780219034608728785401733396243026453456909075280474808522927239409129825872786239689319913812923800432871298056588609030200335787069686925238242331434885381430323488727441312177906039677844904509200035952085528426968969149056043623986418046861525777440314941901079797038387797634488245341111104590444550248417783661409028406641417700091047779624418071372120058508895233820303734348021016392602715319470899552172285287119344233973768307189614344270230139001874346842362857259590466594687926232997946626528092164874182484743092256495809896271397741251366257748887724881074031643101800799414180107763245352111472947470107452493411228410539720074132320215691817286917309462137016868305806975179764959180462242189244486925556440282505702632088401674542866692185588164186367387092921266693904974623396151744112678845927872606033623369556304850466031219935544490814413272324371319735951467074315291759711528950276571984896767381301481123800592555333180532023546658527257817021477103836043994064915140620283934742113228463602759688835642171671193990011273374986738734833165284881085352958390563782688117830420142524191707727543978191337449882687898333165524514774014801237185903789289072747989791920562324271232123889689802188090978179714409831859375357487669868906934903962026133973825982387583603836897232371356098569106399764505270807365583613219003126563487995021954656824510680758946390330442279341004197513570935725255753297614771874508760644542111013807433640263687116852516143420503956075491205926433088974775558698099782074064014306456759045768660830965808901450043305051478107591952788346434304671018361818539356784961681122638377494583812256987672497290479484506515227149591535127232140520205504459224477369928895820568323837328914222046889259076450175907321703125646924434040444779452149081695114038209234162085453129232675671841719276554909409796222600777046370256360145001897337972983776956964437583659324930750787913599849825259974609387655436938396835349785747043696031565910139098918017420906854535673232536826149582789264342720189058466624274229479955863368980308620353706450882470897010670712313962143336614593984198908565616373096033209036442121808690649605431294997558978442254953409909421845567877541525199502628784583738028508210671558812626478379026321031719480129791698132499482914983404498068140554819510109473660722475260185131960418894073817412836306184477976435202985943567790587717789104714892732640452940512650560866425199944085770232096256889052472389367576482555445512109562294103949700216402917770396837213893397054367259160581747854400150579258638920973423475516026320910952885859164869505260479174116665609552924773798340423520379980513285126528185322545459835027409674036133679127022285129364642755878221353627404039038979201446982599935907176560006575357938830585151364128677331554265390877444676066335055482557126011251759923831255898974144384307017538857191483172390356969633513495995325596984404934864174457010585291584375660600300707448134752984105195736715904768430931838028779786770224143302268338430658649685948992914134677158306177509634279153461073643155341613237862007072125471739335621862154087799001596803871924530117352365387682738929688666626725382928810142103582237665958245482157380792468089451827324480903506687558806572157229298585188744738450085862435864606362983064455631532641315393255774577472760780554029134574888841952367320598231721868311010540538225017257304045633022934586045768629522845789134671049304656001349567830185339705635009274042771251438560231868056095746402740074653849486425000009402489027357257837539642881542959342358944478676935653104494468186223414511373881007670949000481522973802016237266923502427642113577604356643685794621426316633642588051278815279450540588454504527888564924111100916517882281310350016285364413798331015248806327135443546878911577217794393184888042295550645480087269084445524460882287853546935659236606879740314562197842717834424920375252866878924764505743707195601077394543744267412454710511726421268164342148467762056529409399352530940190468254003103898876626858985195181419352601523344114393890024736897771239029106702870975246395964018115557219276673531247046891684539363728265034225322337847647099016906024554831421898516146572393180880952074056867497987864070474539381421973764774163123489701025228340170835970970341045584986452443083640685446274932248502688631007204680218193504720419676719505884722809970485044393094136507914934632008812348097700536680934009367630338604046598534107258199738950361685819514796967127101647482349057048544046925599444328797866375099825237108726171091644479959971729679195639150978182676226953874472534442890341992886341121078087353597367956899423609548836712242743622824613179200191841657970356919523995727861933442200631437491074663094291784142495707174049441097407910800095873957435276573728606383422434427787699195368356401419645575124088020016161999112941622925551647076549534012761196520298563623632964120975367175747423624061980565166724036564351143006435050130249564350728802602114411130159627940115915776168004987946296182486947915255681158874381128282254153997878142699697192999969884546483206460995350457713697167165011923717697878308743636099092390080778699872009208124298726334134491287974763107464370569663218833094931124089050167562940095918061719105195601055296842040534491155313033814012637993036733141291093384684586537600855495640509312637802288127384816573174118877128267656536325652099471394784412225993271923672985192790227092713128863129554067753908095441608067486734095216408028224594697239121789284223674961695255420535904202582101560719654478832210640427072212406667705636135884654043935482730126802658526285176395139928293851789981442243398413311335104858235870582702412863883651515362334260170472451420178166315830260621441973326201470672109611903784252931495032275479550283442268970919904197217209374387059032797797312804044018790126848554555154847821961464876820828030676805473959715985376861332222321688676266087754675359960728104448601118836659798760290725625452588237415905895650042247074111509315350234661322442652419479528294202750113584930497069733173925266375535327648444121747637891888252721008728879992759900455183827345831092302387012349763626640412788643215080034021924790835860955570827001222822072958700543327982994812964021753042346641808176298648540003528024491874180923842002225814204140624523412645020124314137132812766379439207477852988691018665403367016986300976831728384612838999409777386056544602415682294385758852667972105566107715622498111075846187358470936622848222110329042684207795464398634047944170716132606464506475720489682951536592566591150557929263297068542843842202904919923590037661758816620616413940739213940561618852531983087477354605765956509276829288345394164915602763839346611655185821899559426957986380228950916894368143062929804549745997470743847340045413181514338625601321425541349111225444230841996794961247471390937310057645322149956995646506499821050810289091806000067951199672536312070207314940867944113461836518841890915257963980617472808656210072771627782102597149075143835036835317286045769466149733218099488145794586936461830667882953270209562121920067103757255506537014244224224519432042520211755464044369525463439109433067096459759108096231698512124815196080319194616059308598732280128766835054151696650658125048461827813194342258740482102121501407014303263533349838621574300060835103359925233432803962877482321282181787679979813362292540490636435247613030704992838829558423074550981041204616381384719038506189158910308324354629545528816800055869549885665847389833003571762272623349923090255003655372791721942446064467056382396924654435898192338181881407725109977853862336362602391105685820875024130305954946849006138982499307909232933749968267724203868664246152868270491033177581760949120959723268106179743476816534204183683284231247591305123457508310044510702777850216122858836030101688770687295672199275544275571846099423934249376507837233945818284918725625197203373281593056578782510082863687247372805309458727317317100319088881085956371616758548939045439026795721761304173702612635324851755641263067368936010392539111025085159538086195281730758308940515361328905893042683143199276758239073803507726251378644629396580945855308121103967392025010809080694209659989700315620252182455040340673804744857121798715471008701142485846331746632596689630093412381770861414251326745715706230570705279114678894707795148858597402594948426893648523684799393907343261251046044703328298972835452415995264825440902529655452463749020000812547292225876017077173596458257943831636477667580782690793725921575829012110843308112881143040161056286273549080482249667485109896064020463855592255344863457423496483379559426075421745088496647969741948898897574053569021458100297023611262381851973907474072638095532957352320129149456932591408805176363921420182293263646466740842731696979293222725850900924405611175061396883430844083966452617201206142308233118605749611153860046888137581794068511712616871955648394205565486233918612974976382394102763866698374654359285794965629093718872034554511791224706871208323171608411775047027722470781391452864080509190071741805359257659990008443717796013467142332377067382783391085789640834981997202943905063449523066906357009137683866296643605546284357273110771663639588583617716902833941263554786805141540512654187424464720206620178481747467638239387814202829217951852490857838021275639197903555008500277690813317798349667688781043921948962758374850326865159879121201752097402799556037388162479641986588637261300073500723931567031959646441740860592109171611712768996279444339336200703456306161252071330934644880705300713822902708932690561190814498669238726120794831533128804002971294969525346988667050001874434932332378513575625397586044099899151033703779329031529350635589946163303965723362547392287232819845565330364784395682099385105333244182160560875279496653318480740924559393172353308510503511703002389432536167511839673570171046469366267334962723306349747324841844695259332679958816129439737584639610904828518845743340061879957905033998317793735776265694610690789974008790346309912359768395461485293443266338779732274338326191264153012181140325285602536221171552019787441364514520574847496399620630681647235744296560715939154646306868934946809170954565336069418163358538322656006968311519259923644759813195057584766290962093348692679754783442252896462024158051780836246912663850671481049964930608653370850197885467116861624655975025575319069928362728550813086602538030238532459125425267264265670175870013791892590854777933737441908982923074196091254355053227415001922422077752557915019271647370382970205801117280329318053008389700464699002839526306924643995328815084257891748921842236587031150080001982449022296732076941021153794708477699860124617516221102438780029677818487574103634499145142375712105060818961412431386298760497587723207701473970927124313600166376296371040343129047079929763104123948905440744785675735204343191781560811483646034578789953775082352735167863055431224414258567295652527840452157276781776525281947560847263001945166923441397123262728562141196658816387719571059349114404909025488403649184367234552719329840939792441163501494040104790629347357417478923765824309513714338546445647868021342748045672887999537764137926491192107987034836131494325773169459674401278739649533190893601783226191485528436371025729082846452944151314836122937764342358477632323341665010204745557089519561015155583132611618928172283297691816832109944384766537426260644100138792259444761364746847632991356103393678000510029843913455766386578899153619663587712538860128410842457798949230324091674370029898561186691946280021309693409651643173912778767944845183888616112671296113634523347329762224654306746248516768943820049867510837777200156967271251578291698565572027642724590695395450854050609633727006364880727397293627523847679566002948489300302362889012396816767614081363315809026432616102588391651145739789775045811730050594607614963371358561685947920466823847456844815096994523832228808128787652818759930344631885703936806512939806251884214074210722439503863494948667238446206283297198499565059052064166299327134325155715579210824998153903208965627645302883529898249928465366297739296615408671990478344206428795358325386956286393029542222013515936482589670270547263126302395667851670868867246319380678088099239955799659674276418412647589179356053943548785870864096537972044947781217389615094342657227559469789020242755081986223414906527273231029030503759900377476689844583760203493438044116062929475115094991173229998781604543164550766796607440769677096913601822791584835015707139782462053730220357881756026376957869723396441008958898466938277346269198729154751939307597609096337339238318408389016688911046973895878551680021043819953641252043024818945110374639952604783936282751532330544946437182934824310062620120205569114098643174046391344362348460334945295768979815310738951682482247543162575909900318734516222302588806146745928846603684342641599190916991918244739982632809466134917212936388018512938072268584966851674225004452629966154034549622234120172490321763359561784503005413795488182587465655042467220397364029834627082667720180472150426068027591172160778414762860414391324475341736022857569894739109785669050038644399193728520343815673572732169845177773073320581599619085861016733975294302863165095275277988958215820055285318183282798285006407819072464465537013609025799775353490339468791782589237283865591756086961515479126640856563626737508472265933735084750557890311794165136755892377308055132859145832923757486207885259602490915042621736349486316873160854611393129242171657500545193578794410230277907913036475346834028013018818032201455488166837020043947966527169343487668783671574485028570546660653805788837352666725351670903081444458038808379850320440755650226674685245468430047508153242471594057485565369797737549368214305890939836523740661722508592365500532877383750912240967084980950151560096588907673118732267736989113402357714122634519750407580680366695437234362342142600416255816736300342798305330606661155422956454179262611944890649287885268163028333261888017746864570386173235507288152171418466104492981341847377468057797327354030185842476773460758113464287200912997975538127159549647745534662287767486372046066048576236577256202871385784731957174700285966520257038605270657859454831129386290274681460832131811582205309001028354369154556536775497545111721016284198813911714134979864533133566420289863004185552810322613613856828203416762080352248112467449691078390405518352109278261186268688543248957495026292266321463868077476875625291980193477400298975146034190350341132233394022501229369663876635780740889770956586430397824894817084689326613018820089213701202904454904968766708600748279913425948385702191088730701495488007794308283111956470225251756195717037620794770875680865766391749996225036595829152823863686095112053497873556355987908573397424283661712380906961044288338537476106910302068265478100560493797962038610355500153758983862237166506775805120844705647077772823138233476255300740944033933812343244458472079065048697862253926982396065909382517890258839740438482176686111591486640307965820012342064882646531217356123819864312356710738744771397168057318233630185873717594651905974279915586929920799972211085299634159514047089911267141065193768863261611340354535540567958786047115366370438448522097869440208329615321104407232941675057887707838633128026882665588679610120156747132490648875138226418559056751054835059859994464348736458810834991974435904115113651139135389390895652631267465205570835753844469584673114891240151123326358773352493995522607802205836556577264496778262312547121982374896618601078281512462466685979525444714368246965809387995729253903098910678035369645701086734272343916896659897338490732545020809507577546937113096361515261563282377967888932137276765296135256666531856454778376306557523304431176031325811752595966406914380513069973266655631649299127244839765083438606021126646132200666089777045296798432921128352643765534083964733352828531041934591293013121685623969563052676903847402925035047998833321816400072616118795041222107044805900027081058813778967152354585180106199380249649675138379605447196117942388434220498280251477531264857031504934235447642116123214444187107936065068589329325505872260878226661519614107351568707295635092718723918602157530882461539842429849816752616829434718970580997481797809228265248472814168410378476857554730015472939819376153502443211441062688911593047556254047064103028124066363098144689035387496358657925779882397955737850679239683043957861457205340407824716788487182896289156076191993498856778406144629129374985338542836485678581594950534338359973527642375707122577511264594567140699605950327826347377629964774761261384093187667414889044969246114700422137139420748005877680522342399081300692208962336393536909523391649241134502987493244895431582953326220997341585997462475967057401763578242094454413913537111825855056224340243913215972067165465558068904907199516981707201081771217875163893851776409421459089236559708853723990915551120535327224217130447756166085968917092662982106276561695533901278967885039252907009639704929173769953107543094080562583178431715883517740521329403598809061125195927054781554511858779846001176718826162484487108434186108038087648463868663929948330035105934748308277405724223641284119520347469108819410459485535049517004240051645438690468337241678866750076949458112244495433406231744890116759069356569162903918377504907402215915011526721702586800719109965488779326858009228885152541583760647511748561357192141931832408082405176489373372385243967872606243947803251834024629555533487182368526803404303169977500021170497971556994973019558915988832907281383744848459230688687091412425688299006152743527884404345800054676110437143166121376239713079476007084107851261551083539242966594782035774307593907687283432019452404693182117649661877871536208533348636241028001895141543094853194015918495561337588211680666887693126448540512731796214551553176278680980777639284706269138411483670755672108412651546267866905062900418533572868235671111504151668733358478133604500879191658237344950959083139111696551893478716223124575712051200420088373960543606151892529659411211148120334637096277276397627188539373424734777787658681118017097664507123218082673295075012122856080267557816248435326000010421307100029616067932868242708954486335891554796853128504752071406289767352584076981648921526036664588253233091312752690500520066093471967994078381091282237000086009128320049805488782318727110069473227077210358838553073076968438658337810826290973768610470118587016660061109313216679430367285731460280309871891994350497427922628428098808906413581296906943271396269425285455122868933736919800938686068750617067293722981138051460300088974817852683532731293716725361074519755500450264514286387373805045792663096564101207231373195938426547149629431274834071008929612387857366339941637427805806449629436348661367501988430742085306303038040083316617762031823657842482454304506882960842205359503923851494229826462437328620411997141646300780451393139251527006334722657951384892805433040358124343568192042141955963126703627082344025430330743494643583084918766471583943494473617934265706243836627631913886695774868114017359829961396094058477209495104163244907873397147873643004319173015979262196497798300301667575075861701163481362349258813483245641735365925785840401258299865828807553850352626013981448081937097764677692387039563624252099627829000511090649437995696827858449900103325276145971765831706015940738686530349564653436084328217294221602924942587954996059706380923052732062152252777990179041920922588440385050524141533782143784139614436717048440951134450114360253935174404949863047329162207483795066657760131542948411303911926053207444091834757733252312036764238681047923000306268122576557317053750036325167014105239573472798884360774779858597482208253048919558032898300311527174064906926866570107300407772869269309798625648822505041294593291864044970630020632681563774655585432632474909639655991516337135521983354968460225398578454858192470564311739044975324787427056395587843504568311529498252377145667693571585692100884728630749786600492559672881901310885569462047618570237187581059844243445716224354262851813229779205007134401736842058935128128081070835708883536054632078923584048299186099928354382531688376713445933311302870037214934039651849201050810817347815379898053618086785427110346947865987652852250433064112496756149348932931764386611457511589698064153626467150639013750201748343635360343566599820199037005369962527621458073265598158152130295950727974264648294103492772571585735142680076906585994207796218695294919405026542431336546700187403442210344409788905121474871595846374201291964431940868738252672027954896133211373152802871757380912787434070543192708042470130957808017521510886598047970756156672503070346044493601086508436798725619361706530791339635835893316008122490182405141465231369056441287104179207884793773022625445254323809329669476013694317748882843087973050664549816786745489415881541705658293271514291021865772678256984893408591068436303650281033289051282053204661489933155887485162492159665545732504207981565954420094372818187187218260499758349330123123483766380711077029343418460495951578244247227010856932691180984971949744062037080818110589639533307526432449138961079882527330835046851003404852629605412499177252023020361873050974508700601761493482254427599472044361453584336594149599986096782292282964034451533139029609778776082854034763829265606800279555287557173881544504276606814146611284363379509589042342676749383494294405620995093970826955747758512438063792044047497914706104998565166822307111344090100471201917837160190601452950165357784590609255898197759709951135828817116405264213959414839921503921706438255902319829080090531980427423997040028500507804594180365686623302517549267592315342554529677872507393763319038338840793543037694001402870250351858398950461242747653147037326655176961595667372417833116823195974130358181155798152077858661745739082750218755906323917535846496902887696319921045745627740095553218778204761918767894794915899413545124722831970360577731200453452252889596157382164790824127493181909329253763113649453549543083314597925924713159841123597805910430132577918869080604211568904952205731062510964887923080615774659586655525272920500685581850854752646603125004610738865727725934879875270820153621060157678881847383377020167114886922016127342618417250848528489813084851001014742688587177051119092253114062192493482065601812733664876278543492208135947149208548804961547844987096415336336693486753357616883963695182075549234436269143082029325526616669548206170493573545234764710158737785011194240487595106359743476252307187849004574008605314982012274790027717443303450169414476176188105734426789847376832247033533333962054299577813584858784468316904319261763308365871632605582184664199282982113450561031472988984005688435233897156716312175889156919795754541139374806992911450659149419212287100314421368159398650068738878262660066588318160156819001228326731825366530932318088876486588878525625340727684418987521247015965629188598356139063531787954665931541596139051881180940217288192124739882692959669435310072398211925002301220061549317308662213705855493040423819968223726892723017804325270262240887539299674320571891923283988659961852093568866318502308630489645314129483029009273066505489836027441138278556734281813011611555671774572103635954312318914127245923906568458177819502343355620419441658213223544900370130928580576226799101665778553364228740840111916384942592975839094431735548767649368101260291549387197742907348919572192410123522022865910869536119231370792181299718307754830617828139695914057424856328289728082648556016807511784692718096609450519717920773463256890924326737244521399247420094857343490554578779519096314369890519417261959614437860116971243493756849178042835774183661697921104926381918051332720283860022515984569882150078360260854113700940481558274268128382760015691764227858626608313436846469670445380081251415175489571962805844744105177651660386999921085301729594242451476243596345091746172975561373983613746769889976369444320318120978229881661267478621819321686966628266803728737720388058867881619830121999320139763078624059558660619057632908005178712659222453973066432621356672731853327370638160258280340697147137498910935286129171608706833087173807936028805265243786281512430378562516790470104153499069778907418990946805317756721482591456686691190839619885929229154007231409840271056249652692788086625494863005361389158323816304948751878007610545921898382656469816576411976023036554552422432238220596551135214969673085071882905342484327365877287369823791683957360013644362380663302975646678917600171206484776376284982559863450515180783710896562016590472009413977021791759313790226564055501043439992071507212993145753551523789203261744165386448255616087488153054517964237099001269381024237542954796326828729384627792848364894964651092492148832492260102722189724181161446466773201510768705582633640033202870103063818244180212988107111985187204229469001449849510604349183842284031028775219213339063575589125334982741296968027498260831820086957091843245995373499998300241912083233599290085999699190964552571251215384439653866574508136074550194108157679161364479032458023984071857029638780938426139217980227976429573080467543244194429779857460249714016648893090659129287777127361333693981011753145260189898965298718858763826671401715557875625067996131381550465699460552831985348681026129347823953678911947367822160048451498326357683376285990335809761820385892816587318478746185046658888691040188229654411818741498024234833406368075196950355085126204175775231049230289720087954413721538415515929198033396506051972640066419620112571088381550165695485463527051147754341012754271800834683354731298259395936302556809762165977767392759301498638616476461762390200335882274153986608112890636671274669509770751856955969712284498699973370905811013099228911351099892664446046330465903577667024849353114712969170869423317076251919452023882325693155862551178895936425031083685847366824636863625675204606014354687389148416797806353107269297493851727506414370261366762663764084598957010230872399056738493231297494624815980439883621531693313990385876660130038941986913849340258510316283420969980385191968818357779874199996977982049324533704189142326571995724619492507201617901140065564535618416507432051372092119788556038208774761316004441020203270415623299722198863378799770004157548463587596631230938664686376097315659293195076175053480608988196241789332143525148076093526748451137057395700135944298529639258231115253821098128432375998378557585693608654662833441416902880482432529256093617450974600381928915370585535172060584176315300176133711948813893021466339786217579535994604970136543259074000849981438920282660253364187755568674669752773920869980132531013838519693373913655152929969624744650932657745717499039692566095803338093081921179680674794751783806299034086117768906809177719147585181147256167936135747422041818596320215028238916283018990560754226010981651545642390124035174513658364017727143672874292318422693000974612239878064483105953021400062806170033852224460947371062937339242560447179726515632223848013666023012202863561715768735043984448976095435373423204383097534568880318827909993113057496756908162770255194684743318832817665821064708298743261679651288590982295956679366185593722884597468196441258000458783870394378243245359109667244172987551726961410536957712230002799601961969252029343150479356524973900218590534484977343924884880985006645695735834579538013345395973308383371247890356213759365393861625963622376021607329744133415517566984322201144574972954953307996009728737510083284728447921552206679123337776122506040436369794236584616592862500449877673528728186616024916618791118096759875355315883698615935271753194349929175408865245846503140520409616165142903076500611217600855953680798516694489262338846159944912315242882681006869398358951519841308654164527378718536281786975094314726753271983501574479829899032177822360293658253388318909560271407935245596301902206110096731458620206971899173278936406550760371009417520329076825565385366944391744169037812662349630235748672459139559007952378976989781359207521025877146595861077148806980892038345906044731332012853124888915629579255820233558584061656662506777814913432366686298725201710173582904867969314028480438001241430119973237254493551791723721637718263762181956620650347826666423494609607024640374177898338405478564194831525675217271134889443218392815389468227410025880925688700014070031542650046579788846988124844414636796910627042012243932531942700843432581443766517675978728745355565987012030085051928307267882402098371493912618510237663221989820365168869440360120997180395451194509094895270969224550150377241745165187450428000711732620388681353409111101320379654813100261853321359977801540720511283010692077830223335530144343195962986347311299611048828244991398057395259727721888297645890293784736847282727069284057503093513575270246944614065010114933139485911220175876179251243921850702809939446063884492157892212811551028624907074667273055279918052270494522705161989852937548775006908339236124866909877274522348159709229672004505153398038084034491365949711044994893346804952928176206616294911975670559999110088900723780031387977210639722974352038976286041527231880467572632953461393184005534884227713057666049135160519588971851515397317006390315897139918931389919720698878478460124141562045050076914685855335580772518463817877676412779712388583841966325785969775730101178573962743572016412458566020062479656888476214457184854274359926913776922180765200713421749806171155535356297139781410358468866164376395481684876459316476761668330982759441150297006386133880434410866161646024930396966616731975321976061969833781646227042325688329774405862457959941983701683025403968083626182334501754915079900268201840021454703916794880962819615925690143835348814629194361815356841167131291226365531080629824465026126061815719398341893998998615087196010111695617474263650507366449379299754757833429895840128291516326953744608354538436532611865816568340027548281059820675833166240968348909215817950408712480292559693791024928724290535785189452493063306076052007127218906489547645418087429391828655328246657403550607147065919084006282472672160747410476075128128174924043841110442603178251363584566508132759072310437491281942530215284927859013270223878508992590000758967167538674520296998576778323006813060981248203285216908386111267820218156082464369088252520054835347058725670435406260602485091923625522852514726428439339026946289262749453295803249656862751599628365285449087704118016447620353731524950677977006565375810361367727817467502053479194207591614729663153840016418254847543296314908503192489598827438214321487861673076630145122222540024047776262969979399298116906362943187176869700687910582712623496704174002959587281153596416597889406740310138604357194921251654574004415303710077414065372146535472160075740674160193469455640509350883683316401944370183921668630008557364127770193372291123544212551328286962282072730397638188226127947916425107579102394757437499253951356655760530095945478849200423543089957749058491310031782159185813298110609406488707759650312133961740605145727272078342135406313151920182859411523236272250501974323384974441717325826281006277499628108945985856818612352755430074822939551060075395264689361033759986519440576796299727688451584320081139738365331470796797337746089224870005934267991713679867172411488105551100914872743474496697106640604042191236431933270497139550193106804607683433488043542325130288143907828227514418367917292575844917044010484022662692347326590971377364873106560932075202365256600657911376759804069048033718681644201085676842890100375576980198603445844572510553885950541745704781721253698387427580354574072541097385642428272325261169613848418240767425168979844376956410398128129973879032723507486213901708927927374879875034189381194982504517803874616377660125776634151089557178650693022684381382138169899375018694958567667420925541399605126471249560610002854926885747605143558769524836197671168532378259559811640384737226285362715683032234660964003834450816995860241722515521380281920726335079806484602370704347911023992883692951690043991800939691920380544404554817530842836498944220572632518451541778748154280420870559868455174224084236813150638767491261087949173576088923602294199145245325419395277546699400902871156514055201347723197940862968690988677645576855707409191946511531643722078768353716057382716458923445881858965457994133918766646973625987123966822853175803714214897042819560647606949272684120674843892704259483908096409002092878728984057893975245729428695580069497590389356929396458894025787753639144768744899725351507857240741883043230565312256205418524908304549209852646202403933048717516433264860607245817440163249269589021562766920004971940051313213656084630809795509107834656991512724306869029576073832783432425488291245628089692851043163662669582687086522730102305450926649350831165643692806354757267195066089650291157787543886775185143829697358386334458822358254937953232070729178242005792558990015491460277650030135528209641104980997948538492309163547667222908676797710311424890918132598414313247780469064443951574449580768360874582277270473735675743565565993615578065004373034625347563057119136894577508676111515990515971150765227197330032349822156643441329511220927183036884355483716387374692472585850246101177166755955502066481869348139049436164215101083936162677514947806162126466565946853419479834441002820626705034986132079791318054194798097346490043396102821740306962996877842155609681986942541945380144609619978658377054340358744651921621701222177043899101916419542419554327894822009307240300206715622418529116046460104585269633606002260846568017013673129163280650274464464736229089811657647392645757142928648886060485745970337863305729992633769199574320705065314859479901530335498811748892890445992036785190043988179534682752312041670442728854098157734857435685203546189202597664193600023607078332471282878777155336920136606058622977005614712242891864826767131652709778127418596134574239162026591071416424618180576099640705909467196016299041881484138859658578017355372452318946673337717806294747371093103262816055883847494251033984456652473366388458644865602949023602715351012399876010015342740088969515348119591776588362456041485527289367388196397240167425015714300775185643032506758882796034861318779472354863962096974900911232295927478392722682433162501195398610473524358765483724131783567621992609005085093764960356547888502541692584418411639497555813575022019345019210265192988503556153440817110684556807583522090991239379318031730970529744396771552286251158821643110700654853714029979551698903681250834236730264010698971453775365110033503016892733192122987415191898083873218981667838850414619148510970181583024187134375906534535202359130598659059572511301808312374000738227749368519405387597164125332321943771960921727935802880523811556652626570509978916275272271873453359232427556907335976003687892126672092897224195508096737893356102212491934316520669292498194052748825444666193513271409766166741391483680330123935773712921153206664862182260769423922714005395172732016240087275251115411660888628723217564508180613920999812372760190169215424466870517698836343899673137925328893411409396205808560923634849140528327148368458217648162373434598941493704702022091194160468245504538935615099901774723258201844049717871690312455640321889391403560206918979429787587775216400503826359495204614914813499746775708476331979688084260441553084970547907762831163371445830499473966000652213718131611938481441673951859264749373483746072656505799664050478341553702457718130444941242507038244011448082881957012667805682744397158744285012826387931866741586606282874380319859797609934451016821724702050117611602801943661827826937064255072260730971514425164453641470560264243286709195608186289742537769920109380285490154035484167286388076721214677982780871037241187060592990623218301873332211879504272380934976053333962967981794130599109778638414212269051973862164266775839669306133297444543248193081875150323516891429549136987435127121138233173506395096452685718781618934040407676575689698845169228576746719435143208917883660330422044565281670449143724659952877066641677411304954425732815669687677659889585761565750944399924804913981495534004673450894121572692396548682057387691146042734258942022974984901818588825844454323011203031056070046348623972465492533412794682859584642856126515650417541787040152667088841503975118724963110326998583295572380859344933079919672709106744817974619793737421898650118579111053709100853568714914138504246585948092177716825973957111990634628465552641660300040311737210821387315814234681460168037243114326299660196218016309270133467878318952759783170617572135869920188607669041805102039154125701645443416443256333361245944269127433798838815490636949487805548414829734621210420574128757951155406769038468509643851762937065716307902974840908348524762750085246822275106584096741001639619232336106271064054872783973570002491527494271759803597058227761934413592480181396494949988270850568917117854807609821077092720609589488466762058841172176412951778726062774047037651549694096266773006394941478259619853432626572273792106227809415108330042270200211171530263665482107894327365705497526696625189323173556868339621579426875983402999356627876405777036795397317287439324004895617417259066701218509571170764939273661334419929622263718782888100772279936114883118287346659349809583117384675710686744935073576932434794870504246316269630842735212440921852526601326005974339471396086858836967855040981916257153314658939278389586657446914572999392344884516736486370336737560674785263691417123958055746789724585985429324123764788183165042094669290216195096827874647174068179114134126054746554186634555248287156443665419676701828787308411649215588743688191814060543731545329142763854750408847488598509040186813024513324594555962016239117408658317233035135818296375642270252023782605579087633410492763053776611988356452940175914893434885783293315352172657570622577400234063727300672154737081773645326399077687002808693823923380213849614709890951869216917091660078924736653134616972434012174991775844722254778981331571141932592536202987131901064619274079950743071403043742479559968399460120972159954187545049991969684929044195055465335010279542537296652184908282302800455963004387061426084431642153175562590413217983342530276589740857105260387393235954839439117089114934340560020562085459050964362342135012191916391186534531446310819552795091966013813722657485401786969082465135912821439077271677452393296387594823490166110780362880787485727414895355808766019470827648018338753085227921424697010627011411125483007189549045134368568323942727406229825213421768033391685162772740323302696642375472872378082313254762127376908640123179235596214604973104616329754279343406165926787238061428831163228517155516134090743834656579041950154973489955093814472517277858946309415683091303609348384848693893917334797061486697395210461393351352958903379590827623968283684385227278882472283339037654369122714542564975311817346371308770068985606030762566564443907474190244894692242935164092395642379811132952724890493729456004486343901953798810258203904642506541556756893038156113791807373948979513290604539997796853974375433175054660112822137551882035774097637231735394686505545844944235988985734381398005211281142587308142690866109140042259876253523088717624189724494953352061695676270364395757662343499585180392898531964084331467920019527562427042711550199382318905268742226033537154807732976263089561410894971579130886543550901216284444822250728174404209958411715798796486645449633583198232586432555071346541148903136045074621228860828298072056329676325932511114565066065890825679329372775423504466605086218782429866061351826654680183530375279820444978440121807982569876669073701812112774902290132434551072020216327202934419879024402489572083411974043170506843775514144203513854942514824232507878632360883667911403478880014915326126333017165879018415123190773873668053877608365099514494021768456978740688052306927598421391852358798940230210148047808395244717221327146866410332862286477317751936695174002831787469953647532686499421263255630401350649404713925259771755672134797435120336225109173960295603544095422214912234019950818446137651043541282582417766102970742734799410777373757212400695904629056082537561305556168128720808883556469283435553487693192135391752928569889639884069605756861333518679074408793401987915778298310276812325652786744380433758250926022848279847027798051657587117091486184577641344844930249255699171377740603948836975056107669038542676214652184678295010207227770339878637639237239962938020524248083423000075199250676154646959034437038139157562643045450586946126055121757742909311772844491409669329691415441808306353410810282941401699166652658727213313419054495063862184521165653705786796081445339068018456108401869349816433346277572290743599177537252028160451968137182836258079197122860545657768647872217104104607428978428507364145295366494330607765215574412335041349475852285335907362947783242885009367130530869284812969242893212612935282263269715737698874461356974334109469624910700344243548618431217767586853572319122598893201657256978357805906558408992622499337063259072948061364708556268791018307977810595038067046484021951837684731146383511597565490803573179013062751609368848753011216245258563734255856419216746786036793154789264531558780485930447021555560188379465187958354291685330974069682524691794739083326280390246330671199901713625165930470069728522905342892327791998490978120068560450419675067273123464294370210480362639063799999986297591362410196240392037065054556620270615797777682438426081058104742077309117563427950939909687606681925979807610060904861516506853606232566326779910768085961216451069577449276607214030350429300192301122861161286583349279432412337821653657925247917108701331777526725414858561487015529074005195777893134387992109834813937620167548792548425846583485099425034828039719975774099139247794171404334661371997499023075242627943225660153775333746361043753127973384750773876957327497367290631643347090301715235419676906841119862860116877117164019945823727000317738707840188635627397493845729366516545797459698274170969830757443220964229458904326804630691874224967530532481447023058138552782551080690444043896403653712871636431628214416230824835676672384648589501431165238066174832016317614092940373676009883655438162516538108347742919600115148957361939913813448027343597453168555783650964632445344728503002438014855329602608503754502656651591350340441631808005964812929235764611727404364731644284750705938250507688026219128921738015280526089683581828974625576499624549627287852654242564785997316922039495294422889271028995348028343593244117472929565854087337980457294780519824121816181832535785329645491850821458173491721292564715414158329110310544295401248517308175381084642584971522952718955349184246989158123402642828770575815973565432288713058671781044231865950412623518567440419535927480123577434816690677302602126297143084069713668961590625952581141044697549615079293463948382027191276175463922057373588676941601845941108693909010021154888967491819259672989806676873696047894112780771343811028904467223948254014571837267893222763011691271412386091520957556256235638153480192536956155875843051745318285981904839979768797194589058887621902208539780295451416225348620950377189541337194291695889956364026595768364056094734030462272788861488043958892873835182313737749489684769305522922695547880840439890770253263284615608259576850931823709923035111125981793036758782038839258692521039212414247836119736571378540374232568423126277574444395206984109604060013827560196729318296049513069722705648624736048374982306531544121354271316673034034500701600260630461145572641206307634429769839977103716071098696518605418721751349184908353076511879739426781228205158529234538384301717849365699120346801665714988076253289933096663628528634418346910010287120659122724633769625922328789548636152450481070689642121959179115471384748476490329187137197079155962447152337668289679801929969715372539517834878876062631349045671320607757369939908162922505416188278850279784131443197593753182182348823100659828524310478767406843810461243008405761460831921408729482922353642905128508480568083525092693708197174607131471553043374537548509217016078706027887085251585581906974743530215750176297854716153520070727914799623987296850765929556281291963819164687226461806164018234653726162903399869520332030401548382804646488376271104982445789219139679159962575095298255808800558938880991134550150054648365758708624018499233060707156121032968103137907743145941168630352769122163186724493434104895478628912426483674287640111745343644503583321903180114446042871125409014877581566427710908730880876569251485699783591874647238744324614776170688733463946815210323270731444225320803598582384414284362625668554295922468602256135056588307087385113167693726777660922260960711377817316791332802204300116084604766202675352181851805362595967799528009057504769045235056163319196982180944892561614148726153266117025325628609533234338655281212493705406291372874470323214580765353831564955669920283173185684931696638185417354084191596553056682309643604215785686524183900071791312255488772871621878048436171712508589207735158466835414623742956993761160277902593877825447998611552294123402580184637708284759991903061541258292861348929312142705022520135231793535476485586133338120225158520338965532913568195429614216112490145531834841604793125597120154567501345455368526936806491396126816664206481881442744772214701749818530563099276328283848761642525625288566138572043548336817282723030357491258566278981916369299366497026552019858252263504607111884319654557726012763929344270293636934224106115721860044285531244414750289430943911340512796360995266878555145988801435391667689490753884631281722340075094318446610388414912139238523017638674741185643791847175850565434806697650320773835407849604753118505014088403328808379009540894324606083728767504393576572702204765033600969631243007707975533903926744317907760849395312224744327143380391796807132869506129094975022084473037753057328742661302809193522692352586197810496263011211769893195074698599083265800139204913221074644757188425950430302911761350859003871303685727430149266925776544454824551984673405348999319680323102997200679217282933363308183018694537955239324580414205735537885792112721886966172482058728252266544045328473827729015879266872375151210377457810838050999956736798482847040304831779717853443859842621740598422004455262415794431897059931568649826786960656614443264314754232731666345729763723626298483751688883841957762172616128398186585808589139134974751681385772057264156248631021784560067155243765091402035385928441787780415632263067010239323254355755754940429455060985676758736842091562701997118382691832459000823962281115793308653447086698215895445075119184053031204117703105705913267776260767874010588530239007360162473634657073466464921408521232663803223005331228467214404526908906475630383626509987598063334158033623157289835341012792089195334661338101022075432026958709135277753588151103510024412071064900609923854494441820032668347636807158593930427117511106605466560230163105438643533802711362203526998377209474804303888602623678469152306403554615140312581562955816939138583530321439503953957862118524598859284304657986614237344186275658418767433322604491130617442677209898516451977604883549038023046837568918856182608119772478874574019078491423685563357073068760417198227306135410906289776057144462831763261493027488925263091174054765969461062912971851291439624177908557224547609236299062482158982457740008816279861666305680985885510614191905912020688116558352163510154070371691287702772242542774349601339626727064141789069739550622219715007397859303569359773775470424950911211484212121632877479716637141390972319551325209487418269147572950798699808453450947681614512523075627646836450066044921099402656814701703919981099568429382618593667381590206561092626279963790181868875245856715529816218551154136244626953300049272092818680334158749101782817131017794159653704942168230432273040765983641191887713670894568881956753340359716509160399882815460851745129377634015263310840913351473718541563066748826584427521267264005917317033587599770505676260514870526341174800534916738529720782839061017013405574548224812009736200796555501983496420581320600210389878772743555343789055048977225329543538394602879251899895236038672642347324110816601384134127114612517826234108622230664128581424764355373471573865105794540994540049806832984210550540930800696532029790513755851161003519448860390397445065381402106851864788078744334455791454389129805967838631454190843208623831491474675073950834856230290775485202158613610529402439566331937082368350116690680564766773567080403707059041604191805950052668365115896886263203437025932594059673429546631287993095789796245244341669107127039006669209138160480885261558793721252936021639765261401538464518126409376506649495508471957917634997231920788190523702890071220839161717420624562621083408142255700649330527341513317184944371578616379896664869049984066963604860552092753284413239406928298065429745906499545855151403056967429054983038232784211013056613488818486654649536213783037769322006556182109510741205689278879272906071135758125861881431881403869418823140991818433589217516562422876142411526185306757169971422384176599185492778825975523485643694385493157062122887731714392619998038730756022291807400745109848856005840482355112841019406685266783388262239017045987845835598478680067455800473108899152513879607515257310409207498564502719857698971168293576163727302865675270804240528786383443712114334945083549956985112793277636276592087188801377992646444965807543724504322597194228517680468358597942976918427876926120609832912484017458939558877749107801917586359137285919062157461572482104223453186536633219991659932442329312488660235085667150587225306146811404652920253176107931998062243277760038189326250987614686923082513700543285510968519308295091031034970152415017382696282225462670119984268733489106130332890510980825972341251058656492163603274688908001525712232947782183844543374090928662264953729195342343552711814648100332730108549634815334340922288554955043674437055315081819671497708617011772173597762877891999797236475858462286484402399651970745858692993130239969210579488624437489038803917582087516212721091329269079862000642056192736903911031820170936102693392442257858016926993356876282557449369686058476059855322193624081655064539580156139951644638082012654937587088843887993703298284875559136080958242712981020625967563669073688876742703545448382236688211812577506763222465998472287343030869604297646743813516237094225259693544218295238153088057842104169255739440001644994349996246871630709594726892085700662740412886192911792035773184717992725171377960495937557017379168628831117478296250327490407898599537227635657223785096316578165093031354785884513213097689214309928361105929357460374283488852351973348586490330249555422841786646553758565458258409810938329986297280656804295098513100350271902020250780580070096975312194568175125837072981742103736302482188848214261418872001021459755685389519497383270189670955669658782885609670159945135174127148692896688050950007224067107620875679907564273462229767650679152894614580868191321556399967125751133866325033422783684949514918670184367968129916172619727086750987379275500107560376475601412763294789269962740794434549594548340435790825229803063993100329638368383409166384023754302968136506455789807843214984512703505376163372184872206157029654970747169229481420577172922116422420595897985714592448247101366947735966297806001664886157962706196382578306572463331516151421996667376211260829359007708262534268975483017021767332196597917601201817146628572499359192251937401268532532142515388971746939132010291497301394613838442990319734978588476580048830103690235680780970288250282974294857550107490031441588821496195731268162757024218691118397978141849097630335715305070480504228062782181744011762014726981713850461427884319104841105639143459080529322631059135493721024714619712778113955845264798515869047320409901069774900719938102050714974872910664640873916115676865477780362850912346312090161002886897062441549897548193473968755590677259429453903226057141692185675859483360315463335304221879012438239245375311164002468238630591764769302447418072038949291826520196827155330229550594739722990429020786523078901601334503248580840991827692636681480387987900663718076857830627720957677721892211298483318527539915711086952107418469837970170073404813215176690198896048259717612607320681394781233537628726177631860497290469633382858339452019471573690983427986146604795067885471186027356490941828594597077623082192829036767849963395585623828598589940030567504049976609083352693267595130857699989440795496851442761968862058948081118579995768944080576729667035565468626542890900018022375607768528236089596142294185607542566403517272377371926739272364010641599245967461456503945238569246150649102394217617811524626269416791947845262253168526123118086158255713507346811035493723355861456796520824546450259101294333976937996125382012882136877591977677454781214682366411406962364690650090636165687500270831902187534052528580765319478743194014137759755716214793001144402466316539532474963760024551101289488555013906116630491350599340959300641409584475974910462606866779027358281205743095176540334479035401933877461118214424645105475982524263109370918698638103179886796814593341324453018225715140319491194745178482188763656140482927405921678296484962911289807525947802259031572985067191440759146208360408125653077237883539971527127604192163456685874614830641526733385339376419660170354451010515715567085234890789344315988173099313570571823106959902837796770882393155905823812248551610440187649753076771403774737843349448098465855014311658879413496115451858007517793961378371494690846162172977745619036752459618222993158517163697759594516417705272833944280032583795944670336186011123724491709330621508438707892822156932721427273842774408782467421988246142623509062407064917143223189050461785976782912804618435841558871686221894851540208424435855585111788260434119928635077748712032946999646063034150333793252562900143235019142824546300422758830859012468641229764167779944546214767592490514210978328288904974305673049623804305444778372025889697548984687462274562816765735746869896071175350427354408120153795867097303288598823138344207519100914855689953240723982989416122321470232888531500774723249488821405466920528750734131280198473065983582111051709254469813625057244957441888806844225278456468382207682381416925613644184725556214414564959921016804965572389706121696669281992233812571901270447882615929464845329635067133298432716555061857369068634705177301795340085327546868415594744756327547886603528508807319327459162618548720535217834270578724755480661525537172073483363680028730221650732819738913082056232417554269658108346192504291795242884690558322362555481110149836407362656975263674391444517630508259830278480581071178391107863218312254244914348039635182264696549786725599053211728060882394289232194846734986933442917274650069579831185884594312911130037488077052883447024535783005105896396524221127757777373030464688487814127851695961122722266474413127775560891043729284662687112200466548644021008819835340841180681740914404505335809039212524673586868897638049609016247915451736446569584093316204185579254302217358694799900063288174315540229784891644143564469186263293502817575767459529498299316544861527303437761517562688359421183677783199193759268627309323241643258974069153767388030204994697043238420704827176700969747521653905899032419395454127596677745860448397984274233604966008535094862294194308462320651161130641343850201950431442094088237527471817637750384348385326773835220708302916113940324061956716187017049981309757071949291313918721013881782954047669925969933277158722864853775941868782798565268430556198918128426859604944368258110911996773830970333276375482702887104711598353960667827096247473803192116905102641463269857199950219891903116589086596455863573444555219651496390397289050883572711142981469131339434517731382204245299380161460929017588217532690074576358947428358403546340115776911174335496986332070116932629529912012337299172794192511751578931304730082041377013168016476123712221711124958199773978006266232039773687185758510888666785809452716751186787355574528534157056572445052204354067874322847908243499808067949832880680440328061578573035211360790280640739222679999476010073552421220582009378794385719989856403240234606504507015241485910756807032969360283402009516880267207105517392426727056461064155828909258895545955607877611674454278333459059294589851133668089303427285633124502506223482428195987117804603085200140582620798896631431143659845567736656597371018643252553679829218267620417013101452189617025794642002110375552848872468703942070687259365837161312639031466813987105679753916030967781043923190595288716739312164933139971631676326945572835875267748742795360215848791697020017293314115347124918382455244247523915081118370757388467098225180297782541566773174165645259785824146271779748981712952457055762933663447161323326318934190966795720656019165171751851104693134263584269848668304012994630079422804759053982202400350247123145141536062334900867159926823819527233749438337188366358687993205091573981023993823497934412642546681317391383821911228432189140323247695106278288479826165664839109278411375635918533836222635536615733942733862829945026880829137587983944142802164204320068687995167286100719138244036984667649611995514337306196286292148715365358985255794191454602148420631723208964442679449205831435346321134433868108841588500070763308223021873048415626705280755466974769788181369477214099964156025204796207005950745905396853552480793046885352499023400277229197285990228451178350570199729252807506018411386512050260685676763289807355584253528583842604798509998200827914953483123639428359196854228107973663031667992512073521286659877754276620609523726608850432062110304368067271853093109555482004038517453075221144893076791399009311566649505899015812546150334484730741781649182787369660299134900955264482768529010671846181866054811234783969063514577513084199008408007429623616559839233783631373116456499274598841716554624135356973020204094669265809956426600158617531468570095099513954518686870148234821305594338394455738988844257866960159494316902578743768203131625813775572513744105087171794287993089192873624741188367467662410737408756647999217044604121359897687780307191563902662300635813757498968420278638685869001409455583997434484810278155398173967338695293304266292747226187465285582563599483192933662631055199936334427771200280336599023698278221616016583345984246208718832861471103606700606896587892777954149139941387926209264758543922497711153240479838666918021166594637456321989930407308941641753587745819434396221490880326050121468199466033556497662330678282511812412324794932885861980418479734086674152068434920005292512392876756090427497375189315380658330753602244957700320993029563228796113789261681770138327846044199524981966257721762492672424292312611489127193488763503401141833521564485715297161913225488584246049749483489197246945233121836746956356509220581808326973737155830256706730881047080686103560339593217555307173581421245659317681268554667752324338548511782122551012940390689547158136834200123704354900002108309617278730172729087976064506242375064613504795843328135263378229801995792354664702232106057864500129818483823739826109807639541416887165456502488585796789482205934185746294604989463600871538470619260653573617437820269660910577779076050496150813906706363878450922366903053901083184704755184644490901181312375515690667845293883441620094479518146451016465437684880752266432540838959625830096081534205964650143234620181842652678482593764936518292303963866556961874595300348832404423081994090679597367159047599122503023071395641360939679939728738395113162016898025992847176609548939747686109551004645880615586564768650603585119614574369845813023720169047388821721418407373162724930324569939001719181530508919096913773389409620333650391271783256154958273803000845567536700360799416883757066475037263183971690511348532683740991242204800535632453196837134500579891018768640412516053668888072340676656917093862005981182728257290196558619758984984380772294576672357533204696220410689240361741453078098222681539216771528446443620050258326532794071895276884353627295492188526794923452744439691770754579748793413859652968926655877726887309234088439993823541660431025581771997061820453108578924680084273737329975829743451689243921626565887191372999113680341461237721273517795290700444386796414107484298484929700928084422884348509273549791703328907550728925136016858083057412917506356388123074284585221943587992865397222875735828805351151597569726482968022802305849539695331968011437791934753604467110026360603496136211306357483322641103947418434586371580029965867390665210771440355893923632752783408399683651336556159442320179364699670777925791466483577812569966407246887599656638297194283071557891772185073996537554914898839696978882110608328991859052619147549600837995371515981005272479903436687560395901203959720177061904381406938023352174000238172142984927120734752078319161755756495308373539282907156259328312816572921050512251059074918080141412396927274719632947280096787485902924354706487400017130043428546306894393750601899122623242895983489849344011841489943777815291261487710213690557620209447326428332246211063959954555878958209139629520716259607456962716751539486661900041284808476962847133520134357348076582196352122388570839379796129253013020509816498070495701786615794170933560459760182127158778339262887060827606744262862487606972417780378792525518725562287064279000767939621074958001326986534926421664713335683736447937991736973621514290002978353037570152462942099711801018520024633918049301175961986951666507034030548206184624847094794009202213203062822835064251301383421823468383114046475452691563836628564695910071081667130659128335694033513801592643124343933377432461045557339705959746968212787112618671640440046150006228456241226755298440898248920915954332656832925728568252057968110542827483392116546534239699617198489755255355015427238775327995676996701917173897114304524372415727629771785572539862896049542745287795412403391613901134748163021663463340543471526676437035914702407428469213733312371464598768084058465011565347796712958752030933136499194652907062838140320585106274332674984513629717807326923735782852562650643559859431834037033593394305604275274795923391151455902984899532767180767246498698316352009384450520222794444706933689226691137166581688883342516959121175508937187395890628488799526093665261014734690295317426293932081272407136616858062845117298094750471572121795904941303967581215454272682330787844547131252734936793428839052161389129727745546338832158896478309584051481266255256378050872826086211075210255796935768534876298617782431709311641796799342512202482132041568400469942733036146081458192851087468440241057181901281546650083430102846660498976085493678216798265547061710742374760319631225585531073528712607857662864103713823723949596081745175684601145908772145013332175176929713069977084450998261642766590072702843653756485147152946747459988337048661671439539310460170953583806519068175462976584630753012434990369103041481589876882626495373884744745259027116806611140671242079253486919699715471939913285261099646674958085930342280659291514908022049390855949483278634560909747747811287411407627438156696255196281156803111096678132911159614622901013875484188229731993213822515017495586479768629999134164505032326013465724858058049725653822652684993055311729893754560952646536094641548272029605455177867469509669313342590542045703487667350961095978189921831811990512771508405022546939769511232596694509404640087595114814102192668764649909523300803864205631469694878073492703206280696573489492618261951436654104826370413600467638289477424667924192701799669963682310365328038986749650597061706392272943373459804836220842971648452818788352742558180098347192891245475935059315003084348155482424075493516832075796945915208742852409304201554661470254470936574644421382705987644395277109600282453240504720278500480055230756289209596719436255308033353021379712543244942456219779423154747792756371635316763541064814264831388812638567275081854734144844368752153667034499667986086551781474187105974946693254170367767459035830408161444794704756694312635304413112763467756154572446666100331524011924727482798957604133067417821048340084480371259886697425945963621077178332829809390475359428788427280956286998950791483577148094376949216249704043282566169435417642566093842106544277910124004649633868268727551254786454529805380737888501831178632934093029421516308410782169549279191806084926122494032504169080314758608545106537433506042196413823167569906922390267334646439445796348372000075749202178069767856316242272228234146748277716300720853731863096237836399206675902035838547584219863034829468209029104567591695804906086805900499370959666527777732042756596036442522605864014013987314413143821905032075403040195648707214474801765961557148060090592520419619030413839320561925098768167151135710920726431757785840089968045403526744060333931622856314765573038862786130997971032709338715467642349084929529674299627525216464502716372295933511834379321436847732329781505440083785837172013160918497073636466967325137939384871764814556919874570050060662273730368172219147266563047872998747599811088771461503925018116322899455104033638732845683460612176342499673911612950056875138245988462500634173655360927427348876289716352025825803917166964829745682581045970406875648351533465065528974613471721136239934652604325873646899885212601763277231278314699328449558789329576147912160686240940033384638331842583315682826954443776536846317712852497853846015747553364355885976966950811776226662504035306963101108374471211187687480126636946497402872802365406040759300733423915584768450678493315663951997379517422551922454908182436168156710675183615825227013470612583317889380124381855535844394083508165486973432508379721581099191465009304231277842812538362469309476473448572435969564503666569457270283341667410351893252514178370683514909310259877493748764483334435485392184760775681263908291826665622613330635647538847812424172212461806021813213486595200686562688800400737257904573005162097473454399339225661060826153927781162278352322874276090971143756679844832021741665962940798279696081916129334981497488013512579467476377047517991601194637878562523028709790514453337441729674846673742134234884502481168197459758841965146733180636256277852721103566024212987135928230447913007806266443514456764034088903472475134130003958381600312906344700761149459759514672166275316544298810468358744586317118084147424056900272311574343807995073668549734839201592191289014395756333820996220342115553026690407159225154943400794073857972564426505557619627183990952436910425883715366494061996191321291500535067299869271885711280873842495719646180176317581305784394847531750891352754761734531406751278912544628369677078784989840467375493316984187960426053343694670372246153412648714235634393768852079676033805775362806492574198177098089640373226471590478463852078889723479625657194054177172388763136540753502434760072643237538143508300582016407633067106775228419374568021351278229607244800579713149916740469810782021534192705257998833619538582630135789498885154514325696716930375861218706083987404204447423457216641274682754340742025831385066870080186088271199272731171862408185920526049218258799448933939344793870306445695095615070686308926351997656339283086000176632057248272277073038206251323658414051012769483575670334125987015982622100961472600894886815447277010529698775174844641548245624595477232919898182392526869285956305452247202973576966335472946829335454100575904418783199210790578346809529609595080543359320894108318860153057905451583367896498807564010966978783143906742849139499913901784034778050059488468375017107475788009604440135993617423608536877137654294545913715258914069622844785270693701058753716999726022550567310782652629524239925557221754417866711242589526094317670505806319916606489968085203722700207505863333036426651890967635566450151467899258302182581682429221306027117035416822611852559434898256796867420971886095893812105331086302114805253675731266306414499622784482491803018416484908097727786848044915156494855269221354289479382777212314410981986705939599988885338234503196387680351217071971239393118278534243455962806138990490134849430201434220359929996004220041083535615317440108738835933597624133781395106431571626640713947894339792724417647096842439408994764329282063652673674520924455222555488445596539070552064059599061048522690497634277666782552769879536564953494376105750327960263250930320041179243096715051587902926511248385148892901540253124046365002953785310672360331582892016028881557594908963657755627818025973802588159849678261280637199266333799728075531910247137129552576268443805484037393996056190947353134297727328291147582813438681836752581471933919317478418650054854428850632151786290263102584300407036580215145057359406682184599047125329017804270448125876059815989906213725740228459106554433070896881169478747348236893668952365472263982752433447420719231865542029365251549179992454730876676388423537782078346094153872578037593764446097812410184460790295685928806863036788702700424392131473002966088327126891866387008023828419400091310217274683938919742910909678919573603376766684051258324368227124237792202360599422762455076587730919847438098110060309092955554307233304104324610002179211917081103288312780881471760757068611271088730802675705117190295716685631001441837602893443686215402016779506383901697513439559038351986838269099804675580733783781894288909505842580859969727511798527496558642210598199386731967188054490050257118494951653125245009358628125401667260895454210921853013058484932675536301799209883020785077245075081765538046480639945896486505965781698898150879098367870236426808009313134099683586449341949240920644891468526606209641718528604427172852338918909590732857174999504929449572680399540346100142621055465982276436028094655211706036679974376335850488729937440928593343168924024212781697070319985857829058575766157545690233380036693451446410669117623950090774615933628272420690499470333833475525349536911075323305659740784572547144115363825165102549767228631827336050568324428154051442109727429212038191879969376847230838679904099370254421797047700467206225893359323174143741187618376093656730271075018125149047097406318271604411815989769270161666053171183888871253565252608017331703246877254151967643522065385610659472156048572003951144698318078039117696688295679330087099245881355257661987201036950817825269716082757173411903960627650546170269141516476803472979864848935578292583260950071579216056665759794236762684494312404035136951329887954461979709114337776331137314667829464145435597315349761263930712379902396600578541446220598654017230482630743631446093310273477913072157181725298476555787742160798163616460515707940492563360922463397132028258482923888538659456020218525075157092395728322250034735387448823039230862229850883998581405814849161929045411803708450653736652079743491441198843450182797154659057531517490667978314139048757572463823394616348744027193766913291582609636842789460148738554081865626090652763023481948508650385958805603886023499653345754797575363207266353623551559609240799549986736193977435500757973695639614693030391411224167540844956009524186918732618804122592817097298121153179520776040972750658806416001351852702840978051295922468408559707932556240785484716492261566678838710904927644893656238986480210619970461860421441091749389602401602419595041748563302772123023964014674512004522115666104821286970881051744799612895145718828503768779479136743649788328351468201239039250797942281111669439505568876374411945442424399900396429074331184087862310097262805602699949579217243896259207625715273166324171797897217128216322534959610259165427323627583493831657104591905665139674391598781460731786172795332385530163165030039039274581994066945750118125333263500765653827988325620412072481593376154523983902390009449401402567864313843922285091951739602414245453529717526487228521912943973420284276084385019795678154876489451595400640700643596192660579522052199545523737054795871888898850261761992154541950793425671959094433557389889261140070659357881433182263208285626429600476659755606865606648679812186865031377384958560016959521227285597942519498419242408611785324360361703144117726792442192998143840469244991588981980369439822747715104185064177283609370900505846393110502196232123934029763466883912248045146061292814868572787386311537869897662835698162839303665844621397790627163560310239584356959280460148442931262641729858397386129346686389760168483092913909793341982231790571196610570826273824284063960035865469266044372609882489644496286794314771674831263028712013589892728271600804935968487624228751013435216969211594097590784306991387736732551279133646010056205153913940298848796092761842349299445192937425898835140079143940913380192602830300255246653439504051100692648801912038635956061804440971892573805606446031138879246221863835859762646191789210082383361493390270507076039777310262339471311947706101909584551504048220650513890705909136269090284005111310213507544674366283123400913929994499475719811812654127507899546585020991457721687601008280436929451375234807596006497112573770022526259906197657168659329960199160236217166796864306948941807805789885683543382147500526000946013939819385514833688296195926679991660218860443493955487319342452818685795118127051967760409744823277840226558019899614725774812238688321136201428775673043372756769227426876552869913206214512769747121120988395605358526617024420193896748316420422210998906899587011151804924838288861889575719616335498559369911512439988143714109000391073662442064569935196811582179586860027890129516638849159001962419804741851766477804441341105265488055597731214417094337453809087353584060984543972201980946506338373563943734777628636000722621884036521424822819750901824154350704483660954382695831646293280918119807040979921443152416793761998435282865949029394262507758592908780363219289544666558327934602400654784511939446630378644971929363318960241240951394972230762139205767592395877693569205325640900444656952172646866808508112826077486180825523974396236088560650807084968679117447198650510647214494139889265899794705978950520300560300808736025347696185126178550809918512041792804609290350638845678946791990481806797615369468228548678503329869705639711088859974054261874334681130527666182808497648713370558779984178704300434915382622909554765238357151680880872528469535064132490282881186343510621647343525573377595040556951790735896711212763759127260731478859546123359867274514800947294747135090781127608962571365813271301375095152021292011414402308737306229667323087215955948224947908813673823707173441613743565937754063807387551796036971223589481706564728118016908014603979401514103866898930920129218818326594025352860313631859533799681703405599224706801927702913080297605988204749899766937104589319657360989899706261453059706311644645277842488146248191577876570677032694723592830253141420641826949006657383631209726848467502479385274038016639890833411160551782466515032068920472380056807305253169091473790467217824103790341586008629105137451951610882008205934373922625036302987939763676571353665630418652006277583154580599277101538968709637376033238603680834809885761677749862258454005619458354428969458139780115043513246382913218849502415308532813131867297039817298381506488733150603221128466573044911291371722268994061607373369725798958332691771025104435880449672028505599579886955326492066148148852283553333629702905574506607486113368170431752114005150256371336488173974673017173840528437114406203255049965029161605510529046802209256644378160969125354167007458230384841467680399590297696137127290390060738335758111458752223333766498812635378545408417907417403649681015146689562040918190194574619743343191828062493972053658385552490739089753984059038856891474481039346630847308377998413081787687450023309694018945523883810556860771677987197171291713271196209645167045171294591100815024223788492573097932291652890569594814006554845502839414240961370488902130198681646656945442788632733763668927818147166887866697581535219129460112553475421135328726560652719158335674659751275613522999582733129559032023289557578423732239485166992842697556871559208286157154664239790163279548677142648356446592622496414391790770093306826183324430927511738997363280586583185673034666746089022742307980354332872203830749274951087575882830116240130144226367678065942361924700163984685945709453626268309294802327180394300794432669799349553906423906081694283203428148135788998175697936568946400159396556147853275471227253212441794253603248796607689553608473356012718500013063027222758965622500505264258703820724982987629043970285169181160446092220170288381889727705043310619739357999424085603437253454105873963666446120421077783503293249169791470916379204237323215013270856072319830829884398289507572812149864074918626342021824003715608534252485064593585417395401100763446550852474245703434984265464669839751728341669337360646045823537361617923378671068174059022556545978676696931130602923745779457540639605588959663736422733842794776652595454034050385443507553124664726212273013588588021821652796316592605418196385057032959885899364582263886229900947807327899815055352126129359189079397196619895969045540226227585955462666266338678918800181444702383649247613409645245348931312682362157920467821646641926948651038863719304347127281796971076175371826004683220554236915138397838724002941947816837458199609763196086470563478017563903288543255239525651644910644150472168267011737809953436638179611372464267011967041724077830954002681427803724691261837557826394834081116067585412794195803483776932345717807764266704735316822881272058671938282126999650395002128184389039028477604734810506079417755613787276375213232597564845184115057210609128262157025979352762145637441547561738377120772464863496308890124665765602825433649244851823295618521242214936347923294507571759264998020485870515800992191956081384827760431206555468444807790299655256970480633517075776225419618780332396585554159056992957501836364962972726309458668826251400862809566771171099928256609740991229731168212413713633140882524776582813543024380374276623490492341245313644052342639726103024020601918565286241095903400395133453424557700294761972865691209315019814601235250540079328696463249741407429619069865454160997609179443435914971949439907750914431155387320332532699750668309202294962887415028925081878288169596787564948063463228681922488105786680696813530277646514085333521072975769148895183205059319319625568380549703107295352048016014427308598481729763112219104152629238088208139145668015110956952859763578288780052941687660242771511091811278845955310778726042249470113098485935782665164695319315747808372037537021030220421573643190730911945451985062454032860524144485228450935518645989617241321445626441997803254350377135797964147455514262535226470391844197021007925514747648434840665474475020912042482485870563953058929693436405445114395997248425876599667768827888550831868080876733095457441984123441770696121141790027256263576381439845462094138868238190847323536843260752979987999651181493353516200369800471709558847096303194878680920414567003936639381195833917452117080540010823254778321112422100459596365928395987520851547460082733831667140720914150379810625125857796132956694579678792847839513827056017356024929375024911921757880114373564626686313836388766397509157951949807071624461603103873396587895078983314331452097625187032878769487241126236053952414661983303375255560984661703839368727402684176878272188065733509671546976432331955482196353644459253549248366199635215488107759843329455203496698190322913987689427290964207053638967905346797853144382415601088310189311746334736685166649317248265463977706531158621001786955309027335790061087416966163021343509884420647024873180912434792543158388378371942494012071454921218453986816028141758193827884239672175048243255547448555246626730316788815336686871146179958793617750195276604787940776284321187094569972555703025003392575298019096787941895758653424905744569460867572510584613142992717786456020558972209483811470591514737779851870146136525953513497527348104251440460486498739000012844739102227914341755642291982044970405055556493802833796693887735202118551123262118674157753191290206947608749768037331992971633456039520729374286823623713592488166664662005249222898491495150365378335396905060140494395583643679762992572184392463717948160499081015993649897353441893686124434248380325338095032609532505810180231694674617991726690379874825765410443461173886879737104763344799869620990854503045156222930047265041076485129182340187178865407341956111715268372596460200492931874069697395410346279442056834391967108132029496333506565525629557010925701855016598477759065388221909912552826924817546285366223096308708704143649424013272556391912617916688307048610166068386451943124103513315276403907993891495627627617995377987086318287129004475641894181269174969508041696883599954561825711802125547475798663944282527697545108352256290841435370727911479516934350069132024787862731641635700574899833590668034238134247233085073231307512801130087640181408421201828067252639757996045765374892526675078021887609440059940499920466672370547578753755539969680960610539459180416841655769683011926371116444450337347599563766795661030654271932491087870787858755739357090682429301585736268420530227058811389089245675073039131069739655746634591912021505311350698802389920317660070190357733640621679191710037062602666412779788253350831605896959591653044090666102139472020918229695200728627547257119161101830534077373502009064617796041337762583673163298833193539540646969484620294467603336934917816402440106829947372464911293313729588110470853082776492804808705098638966606189562589054110812694091093404931870642437582209076319965972606925577266548080706076298764862110698130455110585366594572274813761093819373908372179928440221156884345930518133267068642451457050572212664790441325636258759546484101261121658545854874533136421657380129289750748672238213414477658619062140077858377622866353909127086047080157225075591018035188569791368762662996815221353800835337215301802204703383262558354483434441335793578391093275264898427613450642722437135055910751864000305820027751190883760380430758825182876919220036054724107338175660709691919638537304046586926397517535104466163316493331425544185904035406487615554661543908690656663461725514151621638086313744021332134010021431661639479216468060739154465845013499386262579902232148630545621357263561296877936350126564638132331530089103764236010064725201407712103353856833112362234853171532986632589599569297103318489576499747013644825954023307059532589011284983686946534478306315100859068339362450409081868614957140140692852414022728697819678951043865825043867920354490240415235616313689789592488742755626649958286557111487736146671070140252248518404830061683867687659467264604709468612181423744808737263172069703168190954227657750761297406546214823312774428633346408081448331175259370928854679783072971535780940471746354634205834355525685428808700359046109379976972958387699148048378478414722676431769024700839251429549243678406155716383208269110930523105229614556953781955503665017170487507958746398723498956735532356339805594826190037731082415294213986271631121145532962342842298245999718202710810522029796117997749303276907804836317047368949730231300891397750339977242868660048600756570919404053750754674537717716002310257853031793098830926811755513109209256018912999476910678650529869694633254582566760200628943800066954494876663345566503343288129047337532897240709374197669151407903335462893916367265905457184266489027442208756949714208597615401113805517048678273215517690869059450907604022039785868439187637104151484253792864146991580778910375071804185012652806099303470300774225361896570734809095527973815733880094108969937009287233659306680877064181813940809365784647969593031645611007044331847750875382318228407299530126253321663832747447682778302658153354787211161893109420924444473933456521569224929035909731118606224242332881864258135175018432487369950975477304082148259636720919321243697593186678446222721909098257161399945462524907068993260001739688885127809740557886756810515326417420161979077833081895543632517035563236731996291597354302109715650694000726314971408916419473611817808941804579870392669247126282329623523483604159699538397243669445279576475391184017257080195072465201194461692165950991881617828480466351836267558754861388668628000161822055157632159910558157804681150231953207348738553670604713479592823139539282068745210483912450806666822746277704881811460152896116819721946531851198479110166466204339555805136412081254295766448807122294211190380205622181931436177162612102367644286584256599039762371042332883935546108298932483708385649925594998524128232476561390552833088717707769253215344573464165977575649485307295027966137127519683200547251909672686504159121123285492303976072381507618882209777738717363550695329035952682619536062377145832601205460725537064790290037719327891275724787429190515663188081354747153365498900443862591176531831073898048133994261286563169056774877407758699617010209915225505130029908187762311920416214328361059239266313325322751551931212824367136344962098922782887466948493354423111639981401876181601966844692401340704131529590589097796344862893440287518766242878264164399623559983192525558324543096291909767498936554735536265335576317967766301200980175733246207139383136589204643713291405557526728680517946948238630025781570126508948916449334275550434704408768080571295238466956967055403562627187169682204876394721551894021235618213941487954499794368568487110564932843588263470902415832193236601129495130508275894130042842200316218996895467124595060640525820944083475485354240093100388757538196215461743716471457727817860872813681204526431587512536559210938628726478065625020422655996099278965262749181097924095225720354907429406265317570385287885357790089228737412322392998579609409713476131990744800359023374947870235881777084040810859906179192593878261049940769429774991363005434542462995660635393046074224380488332189676297071359454672388467767954784114765805930571854819265609786816297493767121296343285102964567626052272407468063849996048019606681885015525069464623304562558432012996241735745693946101332306733679059398756025402650785456088273346830000376249034435238022231485430761327809589761370067532788792988354945987375440113583723978836695975016188319246721133494481844822519892918969858033892955772211197471208362894592619180047245106365668752047502112665486647843625077333011982553136583692465536850036860746373277284075738154770327034387583879012948485328877710561113534966406871710317902227597561968340692973516069248030636389993859201295527935353380481090380788943989976799696951327908678724143226785825822570536331296580491745688816734807399913417961207529580773016142151009391555492782262208658836906085248320153884368421834451295884122754734022016344039298263178252722473190834271514514860483144754301022834936044181387326126519113831171272762640988923911602867142507279599716687133685310689960891180944494666644754714466374185427760256189688004818809629313187106075592854288007824415821254319009250452114410645654954613226414670245857658754204132668820612336663654221788690349687526350271566417453798329928625198513826502400680463768128157413771320914524955699921135787989065194420016259249586802209062974072034501006472607396174925865159725726511640328356438143502741505780203945479207019697965782014992016373916590793831453686076088317139721552570076303477653059661187845374758780287743513361311997088227441590148944325812451034713806051240222848302441144167712526794931588494249380973038523289621577348217305693898901690181645118120027095056530646073377955139487521146653108606312366425196275415455748812771719025081657794535782302288311748430109400393748880969712858207415703626849226737233258790538921983546507112483472674189241331781605374366145487338108626907888340439754327948459276157049280545174403787293739452319194137184513431582986274907109101010867511014778660646145706492121906466687211902957261780051749438491820389790572387525794176132442303904014289465415100489925068097623519776803892361471478246503701775192787636629832044375901756637789144324360896778147368537412478840820023870660316430045676014609951590419282146492604090527662159178558885306035782014806787535286633495726114256652155123689627882903188601913757276660349134303194821662965988535069292833547876375470155406603839637560886906568199631827515654170490643354851539740894923761184067861500245702951545492603523328493821218325785598475027896548139197441061594651903342207997175656014052331060820583156571652425759158596331360009406799368023598254471118459343873736272953515225909510961789042553459756416618978312537672962066394450631616969893718801417166715812434575444356046604490527746776235301190612707549437639888517558654637407427289934928766210372363669310652017146526989797119867091981269971071111974413557076870222119824341576527654783814599041951455181794343669366844136910998712022317582409550533324513313683220414130367247235228788373296654437319322681084297539251939162185103215172613226938232025639542102012102379925957697552904952320264070342761988473612492601013102195756306692242770940899040213770634067444190100759464097632844155876733040859264446670521556626377775729990986275141896276463042976991391760934313749135047096671161075470699320460089366028831209257855721230765558870998326326673356891100812171172726638447107219238532832555025727982850394713115974290965816016926113576582659326367595084910555866559212166086250336953685070718089183327528039325612677012067538404812149150025800257954291720835814196771845966696978417900431243331341585982690761484686707907592083961129031737865859120346500249104310479595738924936443707803864524315107002009439854002447879626049560683311162232227208064792026736355656188497386885304704282886484389420605242307801973987726873938909428564477632171764810910499198616855424202084962609595376545048100553014907706602544623385631342531979044397784956025050432752845744797807295409968727017049520458372123061810803413824376098697768515177861690967294051805496019768126009861407161939153560117550780819549660871022943396527071230878905218572897179148504368812469912799881885460738528970018519913692251155603812523121745611850554080980789538884076398923011547887566897415728415404234285542108980550453326704472334828321458403019062460101835841758832311294869420351440558176928815402601221764479359001207989471734352651740231944282874385046160820173598537082481774100781782654816201114735297675808260866113000854804090751732685368988268713446643157369046190693560371143185257228037977427812752938155259961616580093826084482479941144211015955085190984629057714109575588316553863652375647214365805898255719714391761736293898875147791461709038850540430612422608815988621392872089192420351200199617733248490821973601079403080578667891922688206828750061268321050357331989607991394480111886613065968322425869538339186204037923199100096081086863662990883811214556066774386325607545625319096439972211929878423029397676848954082684561412172703899375084269052077065793307474764272029305857890566972222710764898423451081952831622796285867612689564851552236333127444281227175743307257259402904881162370644143429605117886360876316469857633708793546513136199929735240903492723701217133163574382145458328220849627971236904774268857862222458210541138340764829117715076273468050965672643199410577269316376896668418717361492299147280449960560056724621567565271452399925827331235272713413086598040287922457597129957661380992295593668775733226751277379967093795483171282953737488175160655657661502657449593407306789208797307859104216739222084860602363373875126438142068572308068396822733074679910237166912951071323828152153867450877370979936461248828535555823898333506707537875035282394104504105445564089723025527076478867803451525407658395124758850504563777777304496615581356286933707415506675093955581736046170669633303273370399064756807464051572734434522601313443539200799595752032402203115270527350189273202814444871318852233108601998937970009171359009939510699229107555526081688533958745784372349715114731625093994890631754549244011080536584713692637773488457308342273497531213191688145158723906102254942981421482198713478159217208294806677492143718993529771038988710297551626417234637029053000863660111422098946834600728120909920479339582608887653260757946685852203322202717106506621419920828959364110182923372170440584798528112424191525432881848532560217276001111114553558288289566608799722968729083426905506981285503554728169062349006045712073709266365067798268808318653326189747062652638152106441871724981227260701735811568468596863092840898389836618841367467290068965183852714713046045105404015116698986463627875585559540682227304261500711886140048142884877878528083627116242811886356022509246257670170538275781162925395943363579027905708377093848039648620861433833101654757086859522627482237241413151772886518186405738049178582677527304473927632358997619787084565004639894648050920714698943133013555941498456575719517607829672116512966137587334094627619116972293600751252548835870659380312557480372565243569085018751034146123806011339704703623721570859954292802136371025869983169735032352486569242863421324663057733919618578129086787324261661653443158558643213406324636714764636786643666546798022169092682276557231935327141022355965828848689176488638300405668018469293202396327958688403299992666868644136816017811784402452897183034875937936745625001926751015418640870087805829758534371530970671385799934822120562822974489204710337474767180620656315211207210628809041601113541385985948874175703163772927469180773350588912550742570968944836332548677508607466802931359921482439125591692134442774677846336969858065623776347838648589584564494305079884785167634804582870377006487665686633720007660804388179235190600882245959826563441727615268425023062489226272575314920123604492924049531614693044434622468269380339498964095705218013146180297700344930274478584151937356254432754073443497308493105012803534928688529357705855655071063475254660027832285788483250002929051750930006463736520729558507077028476286668101634868636774110354221766908305910793656838251173536826767195130575969628177072599192850765461136188797087448494051561572221876072692381590007668310114346821308421991971312953110813842198656433587753390738050907776295293561386720455708498480278537853113170374598194692331205467690549909716393831427020141984502417983499489266762827564275921374946039089302831634611979013158603925821675964029012365323793023290663255307588458021534337916977051188141875182395500152056485684096439274988811986022061990895434040377504152411931797090706409609382940033278939947977644954779590176225871131829718560752687878614594810457864979036572062344069622406612175737388179769194940733639427774553547611721056615651483827860984423732722897049897714858379188119156630078105698832695122867645077899641396503553137003463756833104522199234440426305167171391671653480146756410702554067660706162212531412058530432952710919480470732086326858146651707471165356186093633479894701769347826727563625390685198447521036629633397855890998062058666754420113759382419001122923192880009409226645092297843847424174006233541373651826874696322486755573949896105961339630236934193507097957240979798554468875884745975263919841481974254540300715137451670525338387783278610625078146901076946333454935227324707551144368029122878601431503773309169169880017744082178692340972742723989124937293010123878180073883570487727684459155244254423225511464131785184551841486283096609138502369315697285167087893986002484208812800804659997375331369916999200736680131509833985180595867404954823574461019996624438487167586615348271847376115944160038558137242400526303928175063246295992269893264931883498933640222049788367840668768962215902520834585887276303489588143643748054026121647754514515143089434272186132831275060163901380369894029379800149629854923284386631545599037858075381496276729448938042739456576479102592268626873993150915104146197987879998716881357817552647881399113490044505270273205817666638131978586500561491120999208920462653986784850939486627373366886840979165820577590246296084651339431361061164748573347770201977780674024445990693272780538767810159988396221279745093066008877262402319268396907216062292200403590187828629621442804931646077549986455312908370520580050439933239257991510113607479697867982382849878568429092757756971074777770858954522335112084014217333254678447386396849425610340725454534370918299799305904224246025405324405601936793145072526145275553045681523787826482238813408432269710436785523399946541774108197864841641780932317802538232262605748710047127738262383035510863927516187207285570458205561304901929431949075221833763678720739775038987612135885874469379664590284376822961947959111874774214267729346051086879249744820729389828776247231388308793553144468030719001024093145277293731638126059552096022608737627736343046674694131769088101391031351014506430588463881926518050128940852366933709532860796631689380597811498640628304841112025213148723705275040668509415649463633502607514042099367967278696402749683659191172836972410078489712455237510086159550689705980990162691070843727218098704702140933441913065556824805793012764109698196187494628896460387204445216134298966139995568255658129046865006236027337501867184753488650011041420787772544382435750452875259752268404646710059246061921879520132031550616352648369370996299223782702189819766714128446710041769972727616831119010387416771892342097383151068966999946276060328665188959022439562251265803525413705144109742554643666415746964740462187656224489999133385552895895773816389458264377076890854215522465162041167268175595853073313332653398382210854483722614040492479003512656918593000130638965785305408782289643853944247447630669858973499175903631673035991184724417150961739133215703072279119832051040258932472302164018380486104502566726650610004096528151026271734941713754494939464337403131520906410308670622976709568084783164757493054002118807657145608723692314166838427388116756985709270635134142726321733317748123098341760155629032880058304848648732624595489040046170426757911549538191048221192370537936173117517469796630943354059420686194800377731766057768153329250682651341709028051865431624144220843741202401319425667298945553501369397714603556420583903254030943684797961159859827294187598331261607881441143526000064652977095427767420662701756713084675933341791435810722769282630202820791249127228904214400173239578025799463936347927482291053161260758044237733936748448114175393757053322529639030975426628150330565938680799042984351792755207973916241929196008169681610193784161229328315868725894136217770208312986044136510483544544249589643091598454083481724942211465217828244781742032812103476009889913999381814706104702312802931249195535228096647166007623638405477949600519466901423470529366006844140666056969335246019870913619264575034309260623370049749999102938360611958675221077802607943010138835809465008408706825547215251204297637384221904961205557279869637280557136024837861050710289735296654434249427431531137354259817858897895513778346587116175715749464756424832074437489628431768025292271254344477971058903061070895268184135458488168260030977456015701553812215360013813273017825552236346836923036847694511366522683325455553023587029164707041846134397810754958414600924911913879541578343897225270507084410234462482281779098488074399515841743288491035535573762610810552250743735676369045786249960663378135193671132364113998357507235353768915862660166886854727255986756273546144764232147220301472164107896601344786364189535873277015596323494986980772387913327587645035713987061339236056883434184028554281678221454799491683187819190075261400246937392782313049676417829118468591671584952539669849417908289806893860483120881166781502512461950473318656433657291721673036344590893571349536591487448986671552207670992938126257922954167662614595387533730635190698450808676554112622197220830607992267405693366162657520409488869156985403396921437725910347312678607307061296989787579788972743332424085601918658399518731041356317854406264334329093822753855340423091659109566204337760472130695143786474695225420678496588773074142240073674769464978486199943913215090675830919320194866650813724663298656589125748953344403192029414378502968662795974808288290542598260972660205236069034278364148586200213608730929594560271637709246563341358113789371314666583541112804355522865458543295840489832164700234914485946858183338348429937363764266411268014271063982681779037159259049890184485035185084529421550255827584851851882813022549086338602760509029448520652664516835650984946847810247100621794474172085406258867258126328990204205338315766692896968923498602922022802038194822173899950583829362124054371213014452128146000896850892567613107239397291359556785635526294665308067426834986202698722705431231323372677289614218770332016036917228092281629772797240858519200324831898052748847594448935747551907183456644200411723646021804187777168690908654332122497550008878607439880664190824922090813041514866149303625863713409332517919302679644651889410380011157606489915554206353161261046353278649533154355709131046265702189266141162274336437201524814640657173872241667271764298636183802546022795522119366712499318348046293791523426791204525386329825243227532205451940244862359977966290702043778039200860625260264690282371674622976037536112514552679680056697552311602393140254962160968356238089795287941886003524129651571389286700727876227274069152160024585185916552372777328037831143049645533991280979552482419053332697975086939422555369426151287113261363038021089888620101296114915184033629537445595259761740049567236856296200438602220170435632318723351266679976845390577693076039300064196759266727616921507791925961705355532456190962733830885934184648204307713140507607273825780285646727040563818670614478926753652239065233408754261807355724085545819868368561426304168683494227415092656001941783397531318509971563158433934829827557077092562841413460170571855501542369733224032453469381015150541180218148771831655524511371203135488777348410338619969204315616753487920208679247918193503169675940952385568674445163449179636087572224248785740961256737369465900073013509158712169746885350274753579298674774175910471817613623535958364627414430261737905369344017443461463724913571277084170048297797347941304814268992896905247623735652307793868065145630054481384249231333064905426913386981474271710574549860583114627892456524172002363180708253151427576875262757573355661843064090581873466944408637655952505628692085569550352867800333062564708538361385139352631492116843531166744752667487246275793814958051228843275747377353121102298113412114898951096062740253630818509768826967570965766518870277031599050720545061224007406667941226405210156882231176012823653692730714786066812373767489391965076572834154788233770975569723165778961711766402683697627610149048885808117817813663615329530967058500312592066951596929391320750784593406694115660615748368311047109012417850259095730569073870167912310530905507572445108180614592424241819841227706109017702927290863982927570438263319441754044071355271884878970297813963346034232318000865066200335122386711210996846519894871989180073153755215198649694597271036633764457992173048367502484700383430101453114700570228531836872014268617477302020515261079401102477402701315295863969567780574134313758701503284333375512923512089534477534299961620232534327350671119924722405427838998746194350329341620566984239311625857843898752774849704460754759170544892032672413106829369108679883109405126100983321177928946049617376441647772299140786821481415840744319559799923346523387279288945081332925896079915730579650848863454356821546040786747727621508084079439489244754924995651780721118434497547498441613277448910729314129151404348261930902546249138808400661874307108610848875301759478936912226103335158445610116565598491815004180342138750881230993523978702296147373776280650741990086142388773994252387204742933527102375273150667943940010037396219361822854743728519230200251567793249565058178828750201864650231234411459490488857864706907127667515029906261909399930644386057927304658333426501618789244632541921357181916107659537441870198697397799543389179947677520904502944650836895295210176722452399953734559147024799179465359526155233618596046481016338096970136743561850732058410706944647121867083492609710323130788995435738337382587410609229482575979774850478507978436345509608923609378243076167061942393149616586199211669612889598689407939883170259473318294031979109346494064526109140515983095620233424045163530117347731261024479404067027218795843352971973714949765999629912802403640711193801750995017884687344533660722910357102752239582339592549150136558715078887722719544164606855124734942136222073140684653236343412863731878843531797893033939730145269607867919026383334193683103068225339394595991972434892494372905008816419998421690195628741112509009426048961113440617700562917019783790819050418002522845451355746089765859589224523997058746291950668795882891791427192300643944066563413556820437441926359055467407309995408192762586713503559891918271736973394640819468600262596659790519761660233744349879383650157326149913296978609889294297973275406714294091930076500699113978078315434397226989272841499719860026319886561205969428086261786900540087332361255172940112768320915757753852801399045964534344669692105136333738947153900181184521997319865013997646181644461162505474052619340008466489333353805573102944184497587544922417504595388474282449621373284353216901627094202673513512325060127903557334591360511774325435235709159932956365516925231928605254879865870760442962725820922502334343955746581102001714369489206301107732510459681008060567572536306391131797381707533662685994586439050152038297751715137996627230070471286257535491708610698086152811615588964603096903737247031184858861067353733028612855587208126168824175425736839493911866118304251203921349030963410039408723744631680711250489105426146775700183872117100139184153666828648485953271202762056120492924009155000072926460625641776014598288187518153234379179729418126140432474058325247131023100615415916216442114109173322334183068663452366236032966331386201817254943208579058233039301394787303455130227944385287209740901987359239344605747362544952415244394352941320234934426790573901004330907600678358965840637117967081478363797576927962935658878526759457407702932102511705672720530439527226335675160758094507592672821472584448074628645981692681089934290849925919691498278312271824400206181546514630931920552169255178490729839224753783364850601871044877573245359085118068363168144408607292901987872745150076571828899684612842567117463536017394306097044364222535859861783538219356573774794259546192694477743043057282015688475785745298963826844092045524710393031805340947272901898418854856355389792055347373757299674998266142048139348586844615426652040088874507941072352371838600936497863118503125493629308892927912715646602497342937694609954834739577381139517515210005430488169195011418852347326195288879179057701716767654947761125326844508542601749338733967876255349891235785774485864171987046643469419111663817890533453195170938040778282144158137207598360030146026561756060014693483532420070801611786739730112281799108826654069170199576300127469816108413176619510834335640758884525104283135168799415647301639871074747000805252859879574860075274488959354676898955185030960153378001767075829309892947601687866005275820887584960636286102117848666599308726250657356414821308676832858824013041079323043821863420290671300826676629731690411059185220987265928425885281321506136071515794555771791266096260261299893146307980872397913412462083094902132780197982856018232251431801032350417859220239319661554577426205918080977737372321606548235397409059478906915168266188128108572465599784375119440605645538693353604029219635490872590044882207022404000370356551745552454149171948261838016806106832043303777281294034805967709975916898507008856040287568279090325727490110809149551212170148937235422765448524517459176970610937889663024935254136548958911796468073177281681724700681854530554502438404088734553713561740312022021359276091455950132568233511734897574203783780289052871964966286923598934534648683908181505145279770449326163782789168224903341024929130671009583959846708593865969206033655162440607951249549950793101713869135199168696900604992947090825429499282178573351145797634155245802939160126165539479916963613953886206171628134852156994174068185883974513413101233779919938926497305387022318576765851021213604431332552266644578969599260384360608520118039650637234270747844433894010865199531795088396620455655969890415293364537004387086496754267040963026066406577549478610147004756706339983246375483683546584073857587320554792186726359504823304482802128235780943019151927590950010757293412008625753821260307725997117095466626294604350629356403080723187799883774752653883767119607895012941412473830440821847169190908882485423713317076936724495699851547092235297100620237392729387942344315183870875304710871976761100061018569538845901215416298767879076846265622343875128246302820967683172961521312915002024959933518155856948759540123869977747726170666808689592191749388155466299806203416158870506543991555384158296947823208482383709106444697861910873049359543173165167811441368323464810461905395540560055481773829627424215035239774145360719915092278273885907431531620275614494710626911043004286616246465139725579270248320787554404022405996853476058431336979729378809999481636237775669050856597466639326724657272389637058588011274419113517535868750216506338591209758187671386507734122065924485133607708761342483028154779667952174715872731648458948123463768051977679649913396264829003142988526909706784414020942837648424240782273324074901195811482570681357093487479481342741303278384670436420899965189232992165955950802581208213099003435486320238839736072008355383299317756171648086903960274146017233858007171266335349427630396959047833925028011964933522392907399972598084665778017154151602750661362291455471825101383555123588453537109119930849134661763569070983079071516591347935892794167941800381285920913471910068627457846281837663338232198357520636225096666594135120182724191594998343232874311383020526693812082421967366133488069446501417754159697273012838781909044756936997018205735788099008622323312738377215630856150499973913989354442910978056904193138991184993111878747979921709638176504887317760577723140974128606543548726383267122225615077924872548382024234638849175973141218816082919465821270758261480288624008574536194913352169322483866901073464290512084796098001209492333284132600629093811553304258542025001304866179366530111160339666477323079380877792425046516150293459532010720628479688190450748904390200686836440177214681224919216885926828159022361778171872541259563207759164350539049617952542442724966524284709353515256632641746493126615259194445465304418696293445256084989801756975027797625582374948438637393347803020580644987957025910921029614911320772503988921612851711070861582547813727141353863293711540965462003088790131202615412824247587450102556451959351147081122917327791944342040772525283552349772112460263689399617696127558172114414642572170746841117601890917742986800049186951511323467678889433787441295831825109747352858822633494575133979263512768997967812230574755570795571562670958339799557202941121855258359167533745494900294662088470958684891518844671976721478581222748790546767147615310503778420082820649828024659195620473390938428442311127383640589643697333314468181430851871179853709847975588523414601672115589545579321346035740212210674160986599947805847973563107940354022340143978706790459627476544292968028837198962724364989000084902845283053957155766700549685221738209600839269004429288829221601090493707520435264863852116409639264291560790527571893956383194673615393012124334408612713530258698051366282954367176379347295481274735003894860706423990475820472825728942738069803536330439268365317125803062339318776182326470726942734688078346659673636789154695878897723040028264294455843780554007616100667435462951954821265476586936922024828258246044673906995400878092793256728492390985089368459130638302780664227044655187787559743837630016141658696676034514596051517385516257804138708151250481163795894363037037344884374267600677997435618906014747377867593193142139830760276178102445377655930624332983706007831844029505064914566193409914398347836771416380688907557718730811147689742913121336992466467472920509091392485842232025443226034854975311050353794541949642541745736794939914387382730366565313677719283998331993199251993297115122264853399385308935449820651371994894810627219443595859478081608502403797921274393761948121510384965376774981684741100096464885417390074627922791303357349599325757622003430361033553865413204237231186419470766228797855306235662784186216891450062764852453664186526815105650134529719688011117668419416017865121047362453817723307494480842815365500939638515630975841555239107481121071157099938004363146175344793094375838278797311516787745471287726079634442099806305550657511887397373893187111148009750881406751540997579463374167557255340919694708563571073153872686199364852848325478700214204575668209232267569544563329377470811248955705210543173625000572318274929324348626753526799301863644288029988069116364583683519488115376151473996669755336082524085781514995585553422938193053902134645925286075952932654768173630508160876437473961934792040374867770534866119266281940400839083648460581457489328448288832959608026544368380222128002883303215081964793098555102269075632135086951491556364534481896395877547402666368413541822069673670929841144009147612164586559317492153440450078314291125184856668160489161863793826226726943386141139535013017695903024366549524978131804939947098896359374281136638117028693295533199881703292233583814759339290322535389653365462257043984336011261003819725354414812865895839864558532613032779167519849362332467653220923141870486871577379418614419159799465089622433989565362057740292795905034101861998283739995191060806810140098008904905206130028631122887955598679180914417499379906636925020280641433043064500575861194637462401821294628580673616404743549466149214014021202101375985149539244885683890295350687890533705587762119025664978627630521321911956424676167805508534815033768455181886756783970862133906265632472693194458707415443210541119751015421624587233503363649202092121337773916883319530455967664693140093578357132103430624983951106111924746178125772088151236832961032374718924326016057012972906691829711417696549972711541319406269256320442074995381366684376490591997329323042111178357875496711654829235345085124765763034676559238300973623581375923811647061535736628916268357029322958826019183487395566372096686812964029455729525782040133118307611142822698889299122010638150562418602281526968000015010752274037232133310889502799890353689142125579905590099379744718590167621432739407201799521233435333424429834089542363489137543534551980456220530298122957064776562314447680068503188030748884276648791166985966116649701858415116935071076255464471688949373613034684226819801628746311115045322887020290869827037508324272629416079535650261114864832742493615520934449267942803981010783270655992714239151939875881285172489789662871391125715869222023722989901979866481199457112045322054922271433597027489689313984009064895093144716601403472298766981750741254262421072652364277924865266765415386059144689168907287922493279541767713761912156762607776624678794280613879559967463327343975370973418748435052446229725227119723530448812811208074566312111001853928514320749055772424186001471928291974136046011398589649568206489585014816645694722264071147030488168345660885096241743412542004716566017935722924544162576497362155555724966591001020468739348744517754274286242100067687367567883808798767448317008974062072238083808920223670968258973002191974066769960798198420854236650734236674239524032919007077897416624403740392960427378663460755343152484310331418831921540742045853760735772192350298582315515540907681212293011563423453108280990589477191557867292272199332155896537233908018788067044023090393688698477323227843085099443555543894546886397455008249800007759969397913163326016925902343289479774161038622456266245497370981244988346434710800194915486825215641184687294480075988086658428766737211176934227664824540737150654707177597087323902863137743899356045942233495057980391567892807678061672611276477891847827821052598152697495554057048189921229120874878242953729373722620115074058710816020202034952560585436062040649222224191015832092008970367199015967216152368381186580501791870809444788121228822046087950401774090637844708475371168335591300652927945892405362747086011753788771393196566160994792583534987480713645876183452407633190401187096999555645654910436511029746596785707012793571363779983478467181652026976241095339277765397987814350653844216465201371627787993495588129775230951455552948007344641620848282957261800284037507701387054715744113962214693316943766710643029280841632569339938166680428863444000003413744991034739974957592442160380880467684630770205050712435763601615151245817257843033648805247986664460710380391037714517230485325798787839076603180718376487914368035282308347585644908766562376636865947640124359877556054168471301176272040467496338672891587393478404055822067620001661031109969113606333522978483915083750035524130079162290115910281684545295696771701101268444480544594472078707643326476611588506299068571941370123315074144877635882704252361389524389829388552232444428261112624880573217887212386977382228989280011317521118602842628235931646496266941722514866849237944455524066643006045086658770876321427549947583478069231493427047648917624804142266136391499018865376636470409873397333701632341337308203289538514468482799074907445499381549797802433348986464157675428558079578706228967094223857185667388509486633415686825829197070466098512460550190737297708302235812039155777339424641831841170369705772277570950626462989393554433397394751969313885574387374332478856263956866470893859774113019945299968443598143213595512912144597655258084652986817302942292487300268400423087284464166158849917461670346196614430282340272672384040394095740463412639678931503417370470156581565367737324030939780512069014163364497633957306530627952603786371439926563625049357096183141621714467449384423019083416741901582274885421477829585268859349836726141885854736802094679319409291893005505257020551147618786260287803310175743684863445904220423593204267165238108353554458155708860500742018243079285512289102391252452826421119193769094537301696182814439194380509612372789860896087031997255555096635838056676764889952828294310372793185460079555411877572725099505356664741292072864459593141561272197815175955376410778397263736570292561605921816362567492279262650504436655288547667409809177244270574320299015453138976363169306704499725087679040024481544988232783855296272440288557193066752911617742941686050391336945328629299938940381348013890920962605389035965750394321469734987321381776324638420677496142853996711392855801322960085005674061713697462334642331737592456447714021836650941999255052822734977861954034170090974709855893753547862858405630782341916914424444209889277912726133076330144069812978551254404284779403709668211744442531932910416052515326865218293031228348438758850295983936914273336624119282779846813384394972888483752692018594484311952220753888067480437774510462040116139010483335589306299338814884350282081742690820513050840240830819480207351140182533657773403753378801049057256781231408893424115558154799655682132742448722403069974095698723486628638836023778626842347818152316264943803073800810297764334038230896151874078958620053014585020401470934421981348142831413219738347238538514890653801750234856329069643322774576653923503387420981559209269355952555372506624322817252250443262227869256710126775835837826099438256159227669751302902591838099423333604060813961106012996869108682984743450169839852959120851612300682706310949747355567620032562260558330193718040765823005871134739240338329239970069556809453874977864876751732689793360877041520236191092456233116390718712606732843242373833168194404379188569393123710721011454592258515214171986807146383398366183628593247911660277367816313780609570061868240333080150368297777771505687358295446440023367479262314140801234759852489130596119295876283347449301063571075814470917406316231186622791673804633040535072725178493212938838525394635006636282216798048992030431718884972813702079707181820296105417305414406518181946255999641663188867631705066209184798886624321685782572727699054100092713451696937398461141189676724315261017771843454448420647641269307673768036009132306097385600766799802251953080891481597315703947112980677217265609547227819481572382188398370005687273690841605265178817347613825288733738204378616524970627021133030304524260038365494560288453860143197512836536877035595272030792978484609518877530193108960393211586550187939910818454351065810688839429960915690422923679117899335550022037950839906986609654271608652424065671588314722225327828578361101372248345762275669283037393156830526905167671207468766574923658608805355725842843424344139150078027822492597425332379919255296207989133513250526703595969149434081719985511155761432064692327888775200822116934071187098913769072804663758558175658279165592827111614972772748456790044285687683981439899259546432694349745226390917856730546848093517199416198390580310931916710933047849134565846786148676708887714611259800832427995763542356512470889271531571528592927025444614508418305125159024503166399255806476264327019568097699425025099601675233796802270965940706288433698826756978274105588083325921965739013008785240111285867762839034608170133139416521310987500550785976996418822779451835534983851033048050023957725511591347469935681435168111888094579490037534352398004457078370187085074784903659050011688925184399030320516271798423512448445173309259153136551558257736264985248396820266176838381715384661448734443270906386135098839610109449276513534945545799473871312756679941566943868831632417823641004342003150653434572512702108267303752522369110676167846020206018286351418234012110938077889893905637959203328273964792132619374008234779695615311310413542790144910421742427701761807363117705697751207827728100035084492715459663199835970097714847351946849499207842880595096441655168177383512244241207568755782478796302791871536798674969930197546985174319898773731030138598145430502092696856163287951565715139807707702865701776687249084754488593515642400435762978080496019431621649256463366967583475597613305734455916454130312314257373010643230814397694746447660715199696922035293930141583244266407439832045969613010984722813729344992972190816328656579430445351238566465957709417255597389600694692420234313125279730522275039125089236777819492891727663732714384634721244002395646783986109783877990466964994540180484721615797841595177081426518509899396034006228135589815770380133271453708505535312094508049863645181229634532824303676632242959851436739744364381197755125516282876115697478794814616674078754886146072485132747594439635084182880028983760541884327268242366688043354799238663554821674393066316978402481342758056779845811058688292786725805654234960809294496490101448256437849334510971780042981766528472377130028591041418980766977777453219906398271779368733520032575812295606266408939796127751043302710061939176152415461358216747071404753671594764283479564389596297699678965785362148438494179409902055071664940423853615667288490137610740832807599994719419586053690242262291225267175616968293667253449867024014152590444913073923359982335748416687164700359490518302378947263854624907700591424146536077013154677913916221741680114316224192218404752209282276661564106947483317131944945098273726215777170973107597426883709606505817437511011970297736719361077573911663867968813415853728071036592567656533102965233589996593017305949896949820183592673143962474955035610056658792223084851616454967376293822202699291436599595953242983710472432346125456203159273564355702420381773603457310620324315539585855138829465713925007203816524028208654624429405955098476665937058902214412015932240247042324652236043343686117921849610116675914195409569124887694067215481585434898329892526705520800147722219906878090946127531132842935479943042046449049663915401496366835444379553369905986628773261004021300978166287893780278912380037655473153050106450902914049215171308378455156353913629330207676593547267981913147453545640418585276518136478034517776794161062285726616797997074179724428253059021541667069913057411253843685651319862805943709740437654870047948262866348326602643401062991244909861151674898262416121253472638607558899924048952375858135467822396013123676372908523627012101374358232445766468904556074956695214538560373267685289665522723040787911375932103000544574626003508609736950161595825336497204190071863608374718983849626032034974595743571070291367960332244271836719686449591721420367437732445403729326423876483953026052227769486710404583420597175636355873275051403570066042320361073997156942018878921828780027206620018381252212566616264801455730299637455975960592954790798255593040635059483844036852888713245787717027519566368731669688367794775823633659986470242689988559728571139405888935843871304263158992489091319411458436872257657838897955889004146746141606386751792793605263608422335097358094098471259046015151538564740670266283870464291933220656641024853106723874418549395056152568040089216100102159434926234810522923047136120108751730095891607513722937211539786359285033583405726166596492349545376751740068632397285827971309018948872742644648740831180360400945360893678016608466784458428264104675210683386933074095128113351614118139061371266848647282794691297219461826017708115623371121217977901380086828411441256833140708041017428155849844587525514603253433282530074543915131215278223588186774644278999604017472120824428494705730343234282515870051002200941357584235796744960784058858043081698268393261118265433530287415674467218505064472333312437324514325822688353187950816480676559308502756220151067506271467457025789019963651081892633350259207829545582086517593918747911012230827542446294299801902968976314614697023032046050832639487200773059198557198474704111781646663238703143905065892446619641563625244285616739759110163164780528187946089399435841996885259062207630400201941595002601524453134279579773455086787635713652794909398075624725803530565852358229835809523244539997234129113849028316016323005205071561203650239053969455466052285415322988341731092616670076530402177617271044324058597786735048149683007907572463033988138932002730915703876858534576398090130832127788740671346897948558509819675097228840745865984218082600292870295171746701958444499895391194323891951147152705262889704211161230968078727590967968165573191160637355151348162495391237578078492958573431152246846212430322329861285934111081638718621383698216202445948269076906253157384846802941813168850115170621007413583304139043722219110161718905770365212552954533269127273012059984310638084241293154583694162944548668115952850450263573920901648261870601428826047451505594019084289711815526545010839952349347339509826323059862362728165798272044464473807609254437665506536702700513360504714493063944096749600313850547763412580262193765115009953219769798801462361872013230441223786138497110404981610728153818337939289629688774714922282517266409276404953732771479404859715305536184116861251369872099292300948291169068207093153956937248193020140721528794561127985572617113801540504475102240565725188241298871699191347745335863996244540696781848169194396992306682287591536859545782947835282536772311189130537597560146490470311232782791734749092448014101543080862614478009905627196715266675239463762736491590541228347768068814621486217608362574177421202141154946549138956099973715350951949500239033811613449953944936214487501467434838230344137013419923408707417888390227591075872987179610207585079191052863300822533712871419175896532527201315893879030982809372074880920014877046099824056672874052211117945058094145804455338693486600319134566922718186478678705265823253778930119378490691838044312103226641073862298865167323835547715049654069704537500285977755862259765895975980642624441475508512154504047112966113306206453748527150830857003711228686153218979140677715318704647840941957283206269145918455957028172553942724640845292618338426247093492051107328288422838640380549027891885421887328872484946392412454633652966928106689129276612872151591950709205043905375751207349845331128723796205535930219092651392977744139943952347492257837216629658159249065145036842798994984848595896260249889427202861361786994983004981019815284405444148761059546748290926250570567620769709142486810782179271780615379559353679237504577650726489151401083946824948519869163589514140319866479672418636294415029615269352205776774189801434694525663381226140350433965304806081740053397424584428132447837868636056945590168590956203852911367063700834455539067737856004914696117915916080862722450780683761332495944438720819009975542058575414670712227349092002450160570418984004208206653730676371515578513108905799094470997457737697207855958059251813899794323978297141060176647945166276012052042514005040442794441433642450753931166222657777254527565536524865419151725712281016820903582462057997417760928479049735233991600906389198700128999593648035461524882556878843404459727714995892913812097269735060051164061087670292241652676823654249145459396457078278133332358342970768478179084570956913044145914770161508455837656087425381227271404273273172267443231970523432547427122794688527827475817663222007359127581849741343073204353558300438082924940559191189686941811205006942946917996093422418861653529843552226909727266244437358883105186272608436545109556242298518913958600419379758003518874675856651677952318693396576649892341840864497199850032480435649058313041890952388414878608092998038340285719844517211665553642540094677589452140307781726984978817802379464704730195752623331273266250554670469850753863020290668538966684645963901259084505995557585367722874396627386426864903909087677968600746784049307112061067365969909949766486905732543643875259146524905074473450773466326071595830983026200280700499136699444748514921272339994196302189572927540443907428743599728572565427770248450859427665121326262805678321721870633141398766419245681199164349814736748173313027137851730492767352483804045907050009169493751057552152099636773674659822545035411845943048363432776710064449268061991486478293255774664903746142813900825791669129011517787107935464107426884831348816865660570041300199728918278808441242814377861856512219181490964087541617793021689872160750721600687880841748984133218100568689554373996761191265593330513880770218007601502634815742442187519795978356503911184558446725868598410863774747876368114513975979250337410239482313832168980491519113288004479263663693245766929205475423309075927682203649184560604107344568614823377840975209593989903203080839181140711726152872677731886383504599571415359786241124514530748004027332235758041686003192531458950416915499931767677810556910028079359004203770012648178403939689201270982063869296535221802411032241317786678047149903143905827546191543244987484663576363822482783657788538665794543013840314760047954454676480448136759020654679236178304634335736763826207934334280000215353462427299668313088765400990729921026751493757500304984804941519933825398322651457764598030531590062688897395435282389846630372630305584654480007708954044415383113950805953950593696260170916040601406058778180624452827642894639170724424446090287808175657331541451070460982396630187030940263072563407436511478093567554012033190222072936327012673531891055123811045405506590197548037406725311847600240643538248043584370684663309691308245847378174104582386617067982588430434359124335876831874202788312301889359316086209982889757966964530563004324227464829170763687248387130443949871613154370932778607339043641353216397208556802080170696682102488555410438914486157036734004488705510905633958441801899990119836587256283931886272427284002420137293801646581961643432722091527588504844857840843024223019583134938419356777710924492696284449132023658968160432925715766766083080429213179367317964807258687880972090991168483026536912021544883086471168675517385413110428140359364679118541621698149743431775457445113281595633896778935802384914826657911067905454503645124137291165797825762135215733386505624880097231443644087666240422967598765747510965082279295607172081965029604686897088216294636496094209615064967720069829208104184476105957194757813937435404133302656849934333620970116705572453782407651885032194014397727869731352307218507509451584582848100838725607560714222354083220225380381832643855956924907523313701100326439258486931844353981844816204724096440067164852467828332339791535647334106215279349087434811840249843321415415686460910169376981793682700315564551356059917123496658097215962502923248679072422410738270819941003871795228962029220907418676849605192285511646155365450619610837821325152883238339137862149850560150889436143265211603460948144112714696785284906043761220854492756176607279460996387794710892080661413994857667034152387541924007261759814165893728118635411793423285381035687895008090349722693599690930878834181768214619201602694723258740856634708727982884454378810022243652033935952863425431435693329377762950376442093230633439729512543136724375786119983410202119272066948086902154102493005214465207363146098232950818218843720048871593179168763892254417266710467659016865327027268649022995223929163702805606511770029270075232659590515394443783203038726075786514637108275179279131909647408426444975675036024620112241327452702385512865478998995377055674895928090139620551662182810190613560412273491860931171089349706674953150784723458417680864485342304527681876414852020034581762768754428293490219253602961715635074323681764939892127140849925222402482447853328787689944564928213438130343907737388737697552468187523337320091736932898894272622216698525742027407809856353378191477531081675805138284864915572946253944396050535300721876692066139383039477442190885589771562728500385728620032661953902944945074315032330842815804667673841849423123487375781519566731926254990044107284867709472958985472797206249598184554485776762541129611144391717925793975537274728139058471115872400106575447517518388430601989287913379021807721861862090472886195397605204528577052586667443433413701054210856572093951241465414624317373146602581157148942881014014533487766956657436756777892909660296814136993334117096586323371709853005809575116356279655211520050388394028751885057820914154718825433321210013109892993683701167114109916690073316197438682967060689026385618332399703388358434790460224804793485832242658256485272064915384152993414256562155270134540949327802754539479891400776926937446727719780784162864456071232717581503802988864584065498885898215616186008577622665455427921926084341863514766615206048136475360329526728942908365123253675621748939733372839332126884247904562893838228772774598956388480558664048109536006608702248497230209690354697257893272983737155691587907162230174812559768035267090231178035213608300127072091346479190721081004398317224571226651961677281020402899422275492116594443362937101519292507285688616823699235064432677973586281136655928206372859528288894382489300184467270280872298296500545890237106414366971816659431244749848179855991858948578871442921508634052576853158248905496151739116560764134152688802603545544100048106532616643222637782594145018384388135696269814179435827696865529854901172180833522602629631745846530746675290960366439888718854031718986623505787156045391409954886062148271507555719533009650752210464927483647506771456713042235307860902152868137553468171921565034719539253450009142676062202548778179009812036690056720973282116477084834545057533947402221785440252903305639872732210479731140567041079065190818590429563579803152716842156228319925069278608640450786633900132332389128935591983016058761440585295006400008954576797885842502843132076897965795525592016557885806158745689870416318426674446725556292016487775388014220525016955115721553166242721921236557369075446274770053229273942765870841639094478103289073149304279812191234012378297941729431237782538302057894509908787118867524330286889198715570670018527183938153589450927015390928500903806854598819220495134026843498517199510195913637191333858714543556860867944043646744282019679016392860806860785720872961979877539519224984187913488383910640613107959429167011822305554989651222376749163128757351946363656965311373547847093017727255297912193936580124660630330338453958882099117843111321223072030458674213558639713705414471081063212465218109705229304803865360211548312694047418918490816804823549117686395681107154317869059530071390575079288588762345573292644653301681359344911556793048739626892659884250931883495242634548251493503801129690312077685362345838567257490334544209798965666165322267875458371753749584571929810983209159931041922763711062271674582787844716368780897338191142319473729525221506887712595910103468506478578668088282015106450750415154607078059832139001025412812037342864643357740936164297721015535595618670467984640182054863679136605484402221243623912799269802981303610166672089486497351238923223448447198812400218217358702158612469410456888178385499421875031712722526206160780630963477877395758289577033129566863896124290899322349096228176065193895243702490086446882311365563213361567257669149895998796021647765939123074409713059466498239198362240099205379506107639737778956360789864310341083536041702070339909315916864305486008382406133903030593298254659990728277945500488895147303421546618130536663905680184990270909889803743285068259967481977058363441259133293080770487561702553072541521935302279772571400258231799217516798481752524038234673582992076771437952015209881121948652055617506060854502370693769660490655399183529471146278835069502798638836966448856745979171578474504417986606323452438428706612420466978862356968113975216490625284884822552035858058035066552411645798462776343401212966218426764086623970387055589301961293692747612838238248797951700824893800098732218865598515419616179386221936344658999814419601847657977229455354826949582955850055884184600644326532697006025566792092304372884147160945661689456099646895129734009517663087028188961048163820398422203944763185252068991797617746532453815968317302520903519578066785978433168898827018488099548733633891262991569061673400806044647845006947892549809771103237767109848854880009931120814796157858734001559540730100048660106447118969000731101371232598520014365957016922169624577844387754044065120452044518199195399289603889515506316121685869085283451755106854298437334629349514689150935631127495992795666388720806051956056318995125200380572658744258016215739212097520702352337074811070417626461166746504572232579559882543260947139691101150384918589664040426831961671156737878327285693353602405671036351396857908720625334628719451204459403509045650381123553761503499620215243919117121321995021047034737221649760777184153161807001245684808439474085569088020289505735587282423033328451344073454110293832064533795021194790665513416809977546294904018001988161962923150953076140148523181160109824832668626640029213075363676716601862044838775094635374992592186280606592708922707316214103434704508112014161693319901218014729390806550709567113918174734064487087254186091137468745329921539246985321127682381830505401642512721728419267982831024728888981130323308794795688468014646193369596202175211824517565101193660122441148785435457711827845556292699189221643994028968880861859234210525922781020916910166619862191518741388971020228297782748361042860055630256222256519716790810901629315235907358319547666641656622228056166141612804337458465166981766667724233708179352702892509746758034292630006167382791291769469719730697736542678224100712710340808289961986084491967963268208130513061168329755088622170017434921301826480329757526407479023277359117608831786091422069349645410571551835180481918625914039915511496173696719795873654222243396888142850822669121826112140714032115978598113061120934289780895115804484973821730483852484395489876545903522155007832213606137855843960222122662974283149801315178087019509108978052916661570915749480374271233210293155022519282412925325550634506547911590389594291830939892312632454444002406224819044019784922168049823938547602270346985473216015896988582754551268103660239174664371541872477073138728949580589475862297031023238026207329028138528453837785578792559229607510505280937168812778684458270841166364287463052326161690389877694361490486413708899238137293815831810261875837763891718776110614441894018855560484276093964697477855444791158462909265752084759092990207707109648909859512715908656377839789237414757409933109066958116817913503525029767863076213455822141254058546207567104616844162035083151519470597542240770572723714643465341415582766107969177208275233897859972485397684759623902616243320207015038447190173847480546733726798310310763306697311491178326469174590628112512968501176178080206462327036241483697317044522869165334332141622143293498204303643651559681773942059270163577405780442306399101039570736088987292344747543656854783500467695452716267636986457994803638249479638803691819457567235413951072493232161987588906684458332734622626852068792507389194601813556787827322182305937673728391122927121875455373593817757907251227442446917406371071739230082840927387652110318460358272549952687366284370286782847724212730048355211471644341574642722568958943027277526262720398198235288083166453063454424498584774361836468535041878211362152574270981810982989388908177462416203986193313648844408357041304109797801625776358157522499753032516552253484681697500830220321355933983706758584164709111509949819182906326548650988961251056048334510454369150482696490134825257342966376775229640265200151442016261699266806499152732607244192765277404534607902411312993188074523611255151756742053467713453300664979461296483187265853700277819383627887175409553445559408905990316404188541028039170437679366002796176548485343608154849323104154159267681265916038770027774869777911066751886222897083714765204638288961460487006575638365404851956225820681063680475752085250804729923707693604347569273905766930117603364918570296357986742803025364611815569908811069279456105024716273574985659966616944384369561153194833829244223044818718661462936603556249532038778409454305897855980483831378193899266289752698910376737926630766058214087772477639993479056713438346138045741578510812154770506655574618113676478335659766238762003005346456495802948280472999888507289824245103172550015595284202712779728176508372475746498462073468010905377801896702199004561591411731072927591266833682848070398338608893086409893444521942576052993159734499511994760232664316224435926663673804752993581817487644462480481877596319544042101854981604721476946679180323784622145240006276218414143825450836070794759027178268964150821702465956520459868030556026762915937493936012811724454702240076137282512289676331908865419262435475686919312378302806365794296344852865489805380708274860613855793488802368229511532574411661938152855686793882322646748520533998740508117710198938491428825935862062873781098438585527472592095669839739284962892860090044790001375678730851442548480349699316650823181264465674909473459403747739318888755043367914872662950183010243505232007899214053156393258664832533588372954564308678107346875787218839101336314534894607843606871923401167643078692021154806395491290306202397771243885097125311379437316128741747734576302449077995598371340755418614573295507311611913454837781914684791010881315719277174694127038692571367431658400766735309716952290926761921363801652718326094874353495748775773581471333127012445012427549786673802561629640385100044922623991690418851445430033212971646677587007186109047903687320332825988521013034382270605060512666485579656719138964054914019821182632949491390154200785743613519043932388870381695518056493039173552621367400828363251033460853246124085197535527869140850300957865637461834107173555658991914381753152109528598319837134402570476789058268333296724944773596275473176154077405257705993746195210942434550335848219150642911711665956115165252925756572537199601662537264809518145308939818114205495169603513907734047323505539224602679383031621072438574589298297496734780732426503649714373648262405482196219404035666191641933256413940919954318004064184436340526200431337078721280114677093492810641813935090509552879412169565288350346015378947569019248479813288385607161681070491104426370711554484548912275477425997690734865088790632839723062218667351431855741014352676846474578920390690143222845488382210572893146455832877941217887009585433657827494575455695739715219309787706961901753109563362404181366424103314711187831925877406910789544314508786323638397275123899835349384699498789300656972935544076131192676363075987422694207134234689980023570994624474362573990968295659407786218069963571019786818376402113591952214149127283869376261223627967929745308415411176333227399828113105954072055730837105341293505731202844265796036527711495692815805166311394960168397705581013802591325900563189598407080140223054163927990242347209827903766595652050558769392508672095458120438640121439633616572470999212128493633190779207756968704704575491227567863176993296900698083565730965476239177850716552943066045621242254392487508969155252521034245783996295541936332775421485201330397446145518880070848524342593855347526714683799245440978005022599024347139097911632000851682029528441923436324224180089491926865881868932517577468185079959219725719431686085817029397121904668816184597288273799909515155225472205860439248933626690589635672609230752946707042936241558605899260091771138703139789986919346420763019891860975536711191992255315765126268823271818820572041933420689987962313318823432010439014471327267045299322662850099942869442223002849970872503610341012423153585407168218597575705169655568128979375159606728560800590677097349591017594280885854703111705627167694010559332525309811184160233514829986449929922620684648742600769526767050401937012416332932961226860892771057929953325416319163848224275290821677198497180781205284689682596305653105293101167881336329823220574595610390292184275232381675254155804243275648664516568655390942603282239537525728546778537245417219170436513047637208193327677332928730520399237391192227241516642662041655610101891010917644407380818008625006487482690492324006305710414276875499181293784907691093628181772928668197948665383646231992765843589165682184586498579756286345449792760989337382440055516728429583239931128729392780048740658364945867010576193974377255808349612832123644094735570023829283082992723001668892220015568014880359776186508260466767756237519346790083627715765375660886172518736908636092531763308030227002784769707796731225201741959621968106517755131863296953981274244523544166190289657355478354117863837369422322805880068963154585504996497507556511451165819400583439534675809563198920332660641910821911598695062583128707179096169788720179493589564702683565439847190977705748787070374104317766070217807338841493115715412940413943127102244955446812033871808435768867676891595936697554737150189638758651602680003655727332899869756654010295861259214296039173434091063875877079660029958297934948925057267411193186733836265712894982031983432367536466227136187700757011466719334918174155224504030483665570997791268748835257979065335718697875120756379781903019583393807388527047816292223694728905715037328010023231321522359821809329011336442021028130352594268025817606773291768779583154094489235134897733485196065998727530382290205743283386253844385801675617904921973629852829160015530250197691268322903823650862537126901320878212540886806903443866897238522483264508326188065867728799710884313238960787074261614462377794877547231129076676367512646838088801258191089146690696297780142218651258502933321320726851454135999047724563438224546746778569353160462320986904636237389143491253306931806165616821272756304020451000816959486086427422497199206818233954813335679805500479780573640670063586111878449033992112699963232305209261392585564555205840596368191628276763543855464061503400847553519800918982144955949683393520609368604681742746120943278897043634249064310906630561395876620149164026838581698326897253681305376750092967396381829046013190088556900582723444248067982993423754452167602967323470648125692657888338336290275774866110496295812686520436430598040284394340880579443625415111707768858947020417651140521010343592947759154931545211095081948240691097205527618640896492859345695185075298757170337427955086691177105308640135084552352872780818490999255912642448547329517417014250163526042187132847294157193643928723441252489095423056588537027154915307324647566493459897037162058770639481757230692948901044594025067813276354628844525074324969326502433192767266851125465755368017281788931075974768516752858990809412048577780456070346423261111540497965592279589424637429306576827980628219652188402495460365168390344650684547332469778175464705013515770118899486272135952088916165370233492059731741093469551305046090059181216650677902277019146108098943434654478543019406803956451448499181043208302836792787902978013672749413685287652797858863870831953566303025775788316508866860820061839389560962287753971354642996557338287693978671638876244916380339337630760264380459573644016356268870409953145429023613091463906440286203653769639648067646531571210936044593926683127168821090197294394630167762655707369585797588890424874754663671989809672125685341123367633124823804351168768154798621545142821694334065247366160790031176020108689567123182695482580224026832740474610035758668618389399372355999970758131625457592759288006508538349733655389721001846960220331459064490122475810386400549437768542126032245404456045758977619245927895146803083720906580239423659119878304068013880172034516371848164240834444185846205762173559128225152362600687174235835623802717348823742199831839671931270588826163974830764163993937479541745669575228463946386351305284291420852102757863172633484358999000959495529984006677268554055238356634104789967115314057691877019656194452846180229571197075614617006523544185332333898935030536991097945697445240213910086214170521158975992785967680601549863806479793389839279871248676199936958578423318416530859904594078806241052923189159777395630555777994677272582684900760536744955097275676856412142635843703189680780892032409623645542182899136201273317662550103351741967876215734034774277268583041460949817795677372588581632681427185443100194554221198208604830911889572902595271340514442899624208595691312462356298785369581070487321608403684573332524520961653451654286801088832969259089857953878577738557088952898337375986793282623466991290416127564479820465071382752451712417472256942548317873185895800513592217251980337513352335876756232010293547624307798735739046576106564872374749100233186139007249566578411425625925209990347333816816235424955920220689627230127556545498768871196953404887331586673795333701483551825710719416111361337833750972209343131509426216208168492782601697024825014446530214597280452065022194007820009554578389349709928051471583521843588724922612602578325840099564230339861928624425389040335298601592887855801514549521115111576846406598147009540008509395567125204691123787845015632041804423477123845984124859272943767572916278952696853311771392720997324285576709156545631267900349462440477212920676415110743428319334290374996491632865012860376504705753315461473342689225201977831573679063152589886194184495865421996584162387209272260093467835230432741837227388446442556474104211527136408434481072294003900357220009635598965652379810448056312823970977840413501321309756383921153347281886466156693901047941994202683170838841494473376149511318985922822411574893289579375631851260560505131468142162620145535164556708470072750829134738317219018641500950201238404136870794966804029859885378854719777789188902555194470884903023747129095668414302833245195481735653140166988037959436053979554379866042895852926826704052492445090064917210821350667759586818177187802950954405633998515813623028106214358397547374507957119676405685053937201989943265191422026386100588266495514691054822604678541009494683997489423466056101296106094226408614345029619694037535343292067314649421451601022906658487815613269453940474097091113826104688673829296445975162062201142174431022772947675113989814183422351862514560740943714971146772661085569815249076466018469146089882215740195824086101278657077598264129607027748925519149086035475044976167287176064150819740655043706386287705724514706322520016836134926246150063235475914310861565276004591489093607618161820296439245879867586786406106945017833806791901033279780389487762672071937079104915842713701907652977036549348617546648842900174400009719845563809753694818619590326450979833545218265154037412014695020920085442562574672372204208675932351804654006634936154158078253732138359320252312175845979443220245193693544004090299275494159112266680450313545392554822173414488900144184500137457897749311687186486846119699905603025799949945744695891064507329767289979128403811715511645179687753628424494558622869787616353513714670427054934562887778033189268886803712424424392212381834266263466220786199891002419479921521209286967175865652967230524297749399601084228198957357353483939521257277772757286918480418900133431610279647321300026665166907889763165414531081725146522068020772187018647944102946285852527205683335955614354766746890962577821832066800108146502620781334621632970237861694852063655813929443844472226295952057370661371428015338932238534389271793057761588778512111928748344770816288904356506680284308880855685086731940135963252828590665978603244891035847423417905449981033898715422935633832892929145092794613766121832985879809661900113425987464236400273780473484270771633459448285502984713001825312688484602892871978305936551571523951135119296194633828728613655106038292977477189424689959718305794811698549335799222176752340190266970802952622527768893723605157388978061065540188240901930382109706943506880829000867502033861872237904309754749377902898021037446720453364595761377304116699005645721306444536039952886723965984602449366859826122550520054500447134361480825199160069036555091948692195555822498799604512944105891569663645520339762734667520048000610272169075737218689761643610251898098527941215382575943768728030517326690483242350365036990323839530471618640635985607584082283327126738026839226002499508794696564833879195001918577140362938735160166092687678922493913197086577414985613700359123766309094128954817760779362227645652867130776715253508681030810514719454075480620944182503765754843246190226560773815670386315502807432511659800444684086665088838695772621785714743683820734717761688894160760327275307084388863121146261660781030143910515034803887653848930145342949489914289893386459669534755513886879831759354776393939541269660832821657793878435332847644116595943106525944613481545652084074754418323068242669422944596579335793113469904789904129667255671943311163179389959971272856647275533673655360122225075285790083953373429527012859834268045264961957636926060519788841698638647462818731016140174066133779598196947755257621869552423198361969709838781506875769512091559805658068397132889023396576474098759775064969770072468486173913513795484128208441409050576568553072162489829979151845493928591158139615857092399802585362227965783279073838018701848351820129215876532095648560591721502871884721326370201081804423978460390099462503401618008733564621328418104918553816910956357064684059161540356274786274855920454756228209446493442941096047761327604931636297815047071826106748909084866933979491525406066991258429729494898741661012948565408737199863376385824309720751675604302568441329160619286580994772659437423702393903678003135983587163147837354490450277414243433235785511962431306916328685575462438511020904862035927368830765336900176780503681582194237340262710620170766644749991404472465050682764273121695583069412251341715478921004140879853339349830037284633207382229082786781478988601941812275459097181122737164276279473451086953826168791917525919954128818951930350788867874534134026607084816444439383395731627061944155219651916886950712155457710146994120231939721644272269109248893900325223997644795054648680419232122400624773275646156711313084066940344850419397772634642787836424164734911342759698379496817592726708670965520487460701381784681068621284137214294656467587737071743591132242757649608441708652969899441329800847269619031331324983068343736838545107412981543306429946232012620674823898119889804392734486390481932939128257608417170568421664625112090281398754489898500618602799948780810995955925254413946410204178714761290343267822598022194165170514365725350045791220928830590972468277138717704309263424325627113574925121127325403668725265716960632191854293945854387339232640858291409833261558984589790489490731726487300103936296008287194987877035560273445841348730212623848130609466065328120536406228876186577312563670595250353332218106109160529516029368269681887144557442242635792566504706209837927565885348241950439615305877843792165554417900793789237433742823209773611333444294645910674735805381311732801369731555370670684094936148662599931652722307322279238420259699244905732902634910482384109058836324847023472836367126982616799659325545959732838123453424075057929232583911394127654183763936982835944153252306294531151236828576670338022069621735497705869549172373828190627952709414369234610989114125492778261883219157749831031145046827243962873360296389369156259203704559169394068221994479600953822394307545493253084097911873787044380516944054515491727264714548222250976314838667794279242738339224773553170220227677193506386941107323576577538756095773092750935545282010116176770741803375404307981472797439368768211949029290158762513267855613705191131031310022110030687791859260452496824937503953764138621089356141655989762212117529033548675279362070384755581283647945637003168998510925808450920465421660695954407539638815393403463336651604551092330086897202055766465086004797199083615028845825046021695956499904217904537941899613805600541539464217287433372773833110483564529683390929974506658046791671574646948168640750975464185507357875741981900327644844178393439329294306546459145841138998644839434749157846507541506289640153735004402202996548429942733322767047942981834387984701729138467708064775028017609577160075527340788344774664353754108293082443124152313592328142494133379740061772864888216517182988264530639365153767792605727111730289564769346209921649245601054846378530562330856725289379913842795001538765181039494915888498645747337098978575290515328409068439313622056754920164498423854481569810032202906924877739717807266509996338461152429263546620527788339897813588366885285494543538206447285890520743497813072735239690012991233503434565559384055767641231498368616127377632706597559431974096220647641912730696943983947534455833195671256449958506123714638344736159268831333734660891213324727154991995735455451998536480504599206516512041745837620352784650353096672644028481827500971405756344774257713791230483499870123734525007282171273700035975512844356370286568541836730790964361054255215045002904971940970531088254518568149857053039769018971540101088033632819351044039715693781433066556667745945865292246295229467781946124335480833166012309417636933548838601134859341335151468215987443512794772764779614055333875018056096171241405778202070487421282245738617347176267042257130256981289549356769142666474158116120130555581192914781513799867786413853287491497495471840862837443297628632580150207885414290537701232815382430858392906512032753322690280922450807829633354205805040244879853546589401747121605226009905484547524864507973940756159396150536764845834197682776536279087158907499621442043495319402037333995886147934161741489534638440566164051673315391363915960784961907485377860510673806994287748904124931407142473809441079225065079620177013585570872633481396775635832591953770990781808838214278274973446113315865882508574696182647604203959012456944244364782940976140375700507685879105188927302773657954400395423911691943018461009018536350680725511133983602078654746748251060966164422059679410601326757669929816420558715909388851248393972878194132712517258561790406548205126239509365521437601853449219388315994979170470338328333022411200225549257069349597364289812589131717362004488501570356950351675577730083722367935592536604414729627280365762750815317585667592464075173393905293174314431395256530320116820945898370720410588440158305808208745565819259620391589099154201840044418679314299028857336437840431201565837196310877091440268057296617297287805861291688743788228952011827977507576324660769177039469053809147492079857034962806958015361316941374515175907944516229302152770052764139398700529789494661960527371880704376195257975267190534288108828665018260188988316381843380430192171578863875921110645475814349683367879547556219859351443432079449064543363913786307147161566816169759863269343135204404326301581280809498121753393311290325167920218185243675338131862675394267344904770215821503727189416452198379101621070842187783377473065622851553998316914234332373482884874701768630681915817883880317796825115739103048246911508906339693456006713615217913064195518694133949624410969266525563678547621018940822118842765497998571389872515372438458209351637855060375653914866884167765527976878149876356749704269334120696761523553956952830795591542407814166351724372943055792704037964732555120543766800463633647393950395779890660673029563340390127045735114926868038646864751300024230466761170718056305837088369076056349001460314665137542908901884093281376859261823006612924273262184344318005613388716945782117972181131263679437164328557465877283872963178475738933343300981516047904164868550462184166615118897332940311787030494372596053890002717734449064945302692119059259868178998935408733428282627899989207137094713735007607904582885324515187612174957178616467267873417253110353814880467573190557696586147194096153543621627539643171214654525820064453114794311408863963671934585625284379841678690269158939844567611377223068815254006338447651342695634962845671027358084340782023500133023682998913140674664414535808399364525957939494388955074048271664263334682948029210702657594657547093145149025269960656563947865716188799813110296750762923664967021931052166037206368906161011825329134225684006195361145192718602630761416647263229830750148625536514829992559084636324324103358619295544962651663996931742376578344017269288979247493547434203186344057390887826354688768238943048041343724382753396250201669767631238119136255460804770181267368325330854368372351231882218500774931217270481731799721096079822285609101982999304607734664847238664857086405670338184718108945698358352431581958641538806929395485356521472975394329578355549665495864141653058150511081904185044465458921617590002245809034803752364167597431357613675416589207352770265736022736809949884979068773058283959887648170803250670025306239137107104280883195386117625180933664644259678578024568833869030588196924786750326898404225943649976573535992559217526096351284332289234794844232830549143529457788581951318091433916226721013539930717276361165302280019038002621786845431531985694041593742440138943817059839489030086289895859475273598342187713240569285281020772988663567208281137573280203982490230469781519696010219799087561140134016956294596573526578792619416850664688127558176312153518012603036960016562705512048038853476264074544763201363124595565080149586761670378375119105329165303396665382721742654518889983842569546742134403377941492658248905595266808531770744131663810099943671961448118373187429555100615729050388032432142373092216101668427572570750792181236672404174111307553542264831539786067094384837263075014619061468846214710295571223403919887332073487392292862485888235927749406186532813839854101067320883689804482340483111987153294736498918828279109494312334047177667392973731596119674980438992903500352947436375035243013384952162729742937508839119504791371565941368032749532149545086024092104657220203909300755219811251665178485474259746560048893904769374670211060424944690266035765931272442644173272558331987043871318750059917125051905585424093761994477211658993434120221249962789464715288343848517534299684334741992040633030733686502265368675828273980911863082748172030014253994989452678748152768172794412402481032038187833722967486474783093872797452202807551462971182292573149839845207611953667644835611535709558843962231165216785332265727618787572013221307896581699779433960964009378087389128866431040799057097864146164347867655022429034318346141247468006444259447679645350316647808356091875596799952097695810775506057190622144398174295392842137710118691358976489884610414741982528582824656030440515951699671768314433802341218385992290051487922043578737968357231846151093420341597061627903124499447143704242852110074419431794223734077747814101366706757179264115428864063444760665019255107436920558903147759373951985167020855006870800169052450341119384448120160342133720596580730450625626790790188376699469281447008794933374495480836676647962830306119830283773844324501102030133790269134254400056922151455872131292348828600848715491461224455543549580126673276186388841845123707452431461407189542903124179722000616516554530422148800185029472848385128870784876882711441428104692921816443787039771417762415149891364038787164339472088407003201423456894730062373283444312715421635366641429066101118519306970608878611511970404972216556893784486789361228965172440278352138074107498253990103181381290269896341340661386692873714572548883469256163569977819549855859083464610704510886316115864014208127825656748265872259038900956292434887816644539883577250186480551466643559431587792372145862514150886891630154949330757556976651509985612229801124901361388890953305695946245264449195964464928103722910179142833216744760287832119810187445354777410910735660854971973901468222897244804783626451404727747554511001982144295155707881792152038676376583690083783832406473352705810530489352137865302838879763961410612946407621278849426294733738477925537826806050793562118397193347164384254463291095058991798321326065235983597277342593719585670029866930768593273416652909916800356747875051903783097242399084166914212640161716637027881374771884052185033150921128593571603657406849508780671454461194098797479378495181593283821188394359612477304174747083575954681490507694587116415676714010960740281464778001202923171389107315273834522063160908432260992532895999161955112290250489082868377029150943668327011184443683663911784989070127228027059104529348548601210139301517613795764830434721083591842785433161435037362368161227213713170443948627580053010989998154881523876141402431317327085190910781450411787916561721397416748716012827146306577398092641299665252699717936436684452842668252884950696368137682222889221181056000485689745545788117952558741180642285071497498822318674305038403475313429626299654543692074378117710519496370630576346423561248545514990154691236450035490302292873081629648922809257533330771657528574249063314081474321365553743718423173288871069469645250419144280226217384425471889015403091714530991862740259974653267482781076461353345729953669423509697919056335871885956051538445247492732602424659668152591240018540043843157949343576201071499406661393770920195119993127466152975281130482129317785981748706199632388775052722439712851713342986772776824019129409484443958193279780833675127885669643139998779665060836536447195513468752621474881986097030764019084259842111089148082653632796187395771368122856580299994634351951203584817327413639649765951124707789096897081817327223507220262091436243791178445847279788945848881246481969235105745557253633398465213065171969153190802172882666303377565621295879965774410171812041404793039721803355937868078129372402227860101204601213692397062825979879058032287037800816521009086508328404282136507994365670912710421102489162635331453355334098820206332675340343724987232964372341136402902295440137872536808929146060905449067969067952930848399725715643324490790014618362318332416222088842597689656314182968981171930739587875305812191692858059428852718017109846211951539077221237357189539986958078266852798206797471460730012315157678256650395156113273308354890019498610686815705724577234549586141096804964226950707952247887031976940519708946726176456280604253332706428626127826863539247818228094855547504263532880519458628975955192100182586599861106247269521858701570429637759587465655616208253338153630353000361891717388606264729824854096024428904719294787994849093733699645174062702493089172543129233793318977668081686898878887664038164689729844845378984067490948885503098984932079779418572660436996371648298511135597197125415046384459781376415016062264144107424457481375833135223852484793993141558426088135177425293048353732464767527455410102362619213798085672145876270544027289568478791938701902530025603428976181452571581605642804844595743330391648280227041220666936442584920276975310064948673330326860910892154819577603566327981583789747591553876613186783271466590695637302478997800846927136654919150638458064313603728821139021875581704765920513560820178879238096500724251009031739735602765916174069887691183858560042259474271999240725438411765168131435614888205977191937328044685493291960729369359035524089141337932229289116018454240892179660297313355078046821358207888742806576186784587109083206998980309266505089263821699779491137351793776554573384857322341931006205881074925632127832296683792998967234663372244053985478283306696087443297598097721032580030026643304804679099880716690926029215084055863466049127022854429301897167001492466340820498596957642496228812107636305776695539833386078783247134345678899602521952999828303120684693003847150513216718437030684392562052469867963003478111904225159848986129569165046340177126212113086299207565075315898497091302325271814827088994925026327276298476538242972311742982794388561775987757932778807056767437668425435606709839017090072479542884219947370064606044871689541298886752969645791006738798392038536351394004750022660327668159018456180247413857752545760308351484132403412120751070683509848342439548593055447757068507348261348027415938419841167018221413260230441784563166747146278313177894572593503093081517714991233270877750860758736555298764989759491721464649555186881631650945160542868332637602199930214448834225004357229278940756594154168596439407214280072689934540283588087146631959698631587250691881068195714208349323491736114353971373650131121165989161267063835989722723135723012104029870727712669897741135065216075275318141737708280730101822312780336768911924818117054908274716432559996423226279129459754979235620128643076458548768722002798888677565021887039649618764720043729073841097317918874304395688172597547110462488948453867121096337701351482230285227953733828239056552097324477407635253920341299816786043563314294514615562917096074959254610942238029105129936871773985191874369143482738098508424300311942714402450769293440554728496810047020870503603337977712507272339471629276019444436349663976538389081909806692401581376390974745025279268073716789060877493573818593844430945176950184987898160461475075425908489030913056832428362703667278812426751150496700525624780841908866031260238912023393885797771704107860629924120009279734134660783716079271126937128903270722539586090804150044214875876138760142290716925996025210373457386341803792386641337736995700997915810130515969735812547686254853296133765992018346083111219930763292895629152876382858809992333913478496982654122463495369747906299275021149665954075242635667973371601785424197029662389195225374053232406348084576961079321529376987132389307053325818620349808596323787457664549368692037315424155975430675849622605322247830104071499109074818985164756601496585851057277744850468582237158637920044885430739743308345930860272886513793002149047878872176665322416910189234056497177969434748807285406581538463129040023816299833052036214184929913559914272038996642280576713334917881578470124584470859077928727118238368549916815718986691166412143906666100402435558643395112250247441457726827066523253701076103962220315459344276281138554984455924347777188095154461803690763863012613467817874529560695727523233403989033815020702216205800204654570652305582850938413364760191298032415893879227909064131513744863533826970602268629877330140593934095588270083044487321998608824261853276432856114376768861546283757223262311642375712494566000609532691629579141308828788452733212179069121742227574311041859588359597582498983152677559417250129713253675460807545226890441139209342020073985200250810779132114523820096711498783090225179186881269494569253317095156713654249386512221055604516956764139610730189601537424616182055221209361634760392914102988239205257154813608916884577490561430258757297578547274603596563353962296568138340657378528699895461642559478689089482593779974945021770138383800957868622792169110759534594505039859669179585346571678845041426523501875638112628456327461640180879201473552805155569746526867805855876214472377234267076186833103393240624099157476107681079147034114581071326869751871999523234188469512115410670403708151910309740358252674147191411254351690288093417553412784541858867174868554447957078299504701987249890531588218100148488368222557620548611307053568453190402403046215263689351088176822692456747617460469877111497335703551251595141766784737509139305796706006312572567377358124154753348526667087778853545019884295487359439773894773019095912985074145423002810708238806902085533588941549281530099311898924129789557891111260250925174584603767529121632686493921233477764455604679089823355527204337190203917422759583347681727443263840142601197471884990311260691217370684933677683818084940087794047534045166769611274344586418775840913709351519205565525573553491850944871019606622297512832650463845632744898323313423653932300649244921777862142871215612421757145686275647461065052349465433440787583054814499416306936771992163760309307751040109792107399528451902024692203583667871384885666134500793887814093186175930515571938705640743781608082385084590237006038889238639320803312756904380733834888207698208142662374078597882173862902057770428305246161711426011442854388099542098162789989691124957386085704691789923204338442540692553333936020979349590038868617600634147170897730356416112289585072694647334250321057731706270244527522372423995019236455044489860145671497026987662997350281996237386060194782250518995674132226878322916177920274780276541259013065142599550441171715116819774297553380012614645027140638328179363070024657285226212261866091035441507646692811346335838091652335833323298896763227788375269597845312350695369740059476237876010198201174957137243948733126335238329900988051045240597214717978215380663626003143483531862759085901845744697229027233365039982832403309574406093949823045025340214167726566103516978307828378447036872120991469237987704342670237813021385997438626338498632986312217061599620599807339642784762429436897495470991538845953473432199752610211455577766190970266462947081937632962370876708141554737060822427245041622540754178318496948972845962413133357039416151216108059482104357311927254021101715123920954578092017885588533750647516520745144434713773235259030468130794915774410737474565705760793299671645302490668892202207999094016275649744587299115678241304959754673406496980983989483894381331327879707734450558281043091114325333694327378883938829924736010038142740576676771283771116286555949182143766755390804330268583398963419463351545120881187719364799131024691946857935183328357301254446045018878393201313591434820668057221474096608443734213860422025457502658256523213838638528587845210610639978573404538172776658386463002594714800034584164531553866631796970174559188970043763432776413251445607992129362314977948102441491119962463534375993965105009807062257240380833593049049541290368250085342488707686664037743956586656441458803952938306687640266808570635485446090032174647707247070103470723008816679397786964300520631270152644421103778059697033668593331419011133661744739245657663575372840185877654933329784819909709405146351257097675735447390346175054249528918861213066518134594204820820873135662726861463069008573729610328663821568281320332747299799301971933156986213622732976901460994249050968032822100190254122098521864361872521781888885131764756546473218716028489507766315323260361046363810057042145026757032899803311547576369129820231297040925718042412294628686960725023990092217899441246920394878909896400755394117621889821369024433182964946663921694622262848426115799987780719508403589592245251815659124665028600648709278811240543173850643031621263344877064407414352139006563659730239533388998146236986100221668189817522296686249528366856086606942127923466223867120182462635673516296220162958686103423382409890132565413660352729921017584984828348681615776940503213623826226692264153184935352982305608848824187800719741949925943325899851095057066738425936020118683389894382117990543319508968240590354130889913274273906672640787043586350753656810255284834432505729190312737854648182607436430346665082637216436989342051200614409553682563648937898605654557588615133860105581950286631283318816633267226778372491398314027030967828874084219021540568257224612793880021853130736497610252522309773644444170994333461732503542803374949756928583915117050436196218561206759418635738683075726653203558313090845533030772421676066374105425913872127653839649201440759848923532677099655591480656464068948577615427437568407924670779315424569073091514051193072201641662263391727844834168765296358295758694306728237976873564746351882151599393520733692131162851167195317951671189201766075932406747111335005509063588587205556249039666156790310002365871483926161850565337586592257174153545120392435695005124138303121669453768789372289833347187931797590204103701103477111823691031822195733323228905653908925262400045838928243644302912077095813832099952484199693205126151517090476950955401476834552995413739973030076873555786786075880099118058073982429541334421325603426565222940758197070607863360809891491588195496190029116901288910943458417961990733007407693498235793366561171301370516873511837942996819870713155917768582273787217987958550374364580256960032251560625456712091636104300423240168114561471860197436837351206140386942503805345666660469613167319111623964709441670453490860113247845457850952852004753092394489946258234960062319302370673988772060122653795073846212015506390724327173328941836356882496575884643967667874006655493987175326455775014380802998705100948841029744548838659123171923604154056441532667324028525747197562768444862889519086256153435976886333036620643450198788994368263839673779995058109036431381262091877352766556786521773287330532189107610037086276742185239410382991179252555319115524285041358151091929009703627460540843922719970825778877872630890309744618035239052775928816474446925584791443564653271474857114702706222375097964744723991164884133791409128490144656090611474337600119021949761374221893217071043892897260169443610540897683776759145784849803635502169253594713886165042740671939888741566554897552280934379254802708288954041398941269042273383567790057114474309069413850260408090328696323324612734115459054978699411925114799137264732103630099809206050314283409659584516587419103620812111729123837997499500881468100078652139578686328245886463977443820998891028617531708330057026999994346157012643698380425427050735272968514685987264224613171898366923571345348025241358496346305591324153395243396695972870958743640524120083215001747913630487599431683129499164628465375256041178021581815675228666566342322480268898701879125702976413113247016917686088090978132156755089975310125998845406648879592915514326896314879171342263077256672886916962135118681529698877100796688439666508901520037484715353217665718174281205078686476915102312168512308430794921869150191358823937434070562824928527478559680025934364085598280925029184905300123725384287329684072034872897797652262408822645872558786500316631257899467633873013242453589932966883280280193224505765652931776315981617792959002211905080648615900867897595586296975859968516034351585149261456616030947746997869481181258677599946781472471478637786569615295661623972782321944088021791872603985495361810509827983720860080471444751148099817050643471127107579921094522086681429897355419553294953455546240591798409265918423006469426974586994815897393385915732709179111651462360924970650659252488941272630099823020329646470159749431607857582828645435698421611291609994370691133387467969129317684355077899455410959309449113297619434098226816145319254310449890532330760844239508396418746077790564351523329469719747796150312367193978718001843727640950097374139826516634452584953748024022449358709819629519589148377339782268419740286711427937750330319380355806494313840477144385652060181209182089344059425475335696837427654050800174446103702467578474179128522641531802378281229018718527509529881805645205360513453278974188916883656214790277795153683194593916923398581918843676608650137315945304381470559701413966206549310403947497789432393959848361418608890658261385928838738828329191686486970727620917863005806916779872456884332936091643281366109285685996368686412347766842937375782931290628977950804202000608024823421064462664000371338089610896124350436677208723927206381556448385832776731732692264802506748208423542539264785024246767996633369548056282831350269846787988834501471141123722605223674968666799825152670813851983528677616973129118691746542624328156913687620698086001361563525834991614496319412415495853188489694176926682621609999547841261701494415383943851321327040842722233830152717345553793861474322575101848090218980357229086355415790639101224077855365242224931946124540834995658480394140997536580320207429152154155301942175318218478722263067323569933056176624718746486464203366083437316905365249922083647941944309377754490325611796924169055566126172971889323708806868016417490296075462941336533425944422446106314525019386433289590257579451843473562899347730420660972611107911488449372819308365354468708416005712027820926708405483230015786739441477510688549063631806067796207328034118958490854908914042572426978357035365362461981095727782949515243397284454217689576261033439413968540456238254191369484873359522627061244874429921419767448538270068466214155036041596186592959365174013366696431836463787538418164755986459270462555270340458438253711389963096585142643566083923167999014351732814655531499606335390030392864008525949133299437657492705552578539077748366298048391522481822160007886613015051607790099719629566087031226263146785355308432289238469951330547662436597704085522082729393395566762055935378877045827627763853409635713792665948562969095050864793967406957714024456714533940937841624085416437704846050272673888239060007331962277484476434912228079608726815799687337647809557280639201528934035325629911421584294114163806042075904359410680337464500696651096578349210905018165553014400393222625916427491940628870514472299964778639690270315809266344791263263365021466199965670195944770667825828996333458693712947046826302409752840602011871165849558253976856404524948331039579932489128561397394623542063241511933766641124488910211957041121134698488576573670584563788064434445988713037462961009147490826849170131867289937509929916738134955760595396200742784436150300804972484706141911855603030928109978299281146516491521814489072863710028647516805501187797814001293280987875145269052203352258494492323873890270017349452852481862888799038290463398588513216454006639805223682588600380321544621806372368876225769772370113864174673151740807638577801703312211457381564766426182590260419282363720121651980286402417853118228500304873668176600205505674853166486500906608947224437098342307666223299978099262934032108642456395806851773818856656557835275508113542067442071486412529822703935980034011315470216558106630739938436100168136059449206512943237715261971998904988795816231776409299270710890447492989015345462039103094666626155585989762986536082259385197699066005782995780192310329617625811329606354533420958262945962159993070680210891821298581545393505955136967269882952231757533189537115797773636193744774592883023675695255150493572933265630944189902973670169969824023029543319148694925206074426835976183831876811114667897936689139332640292977300516101442502228223579382001347737062960484836955601548389378380451135655191054286319027566969625287542347130153310243855223091476592976338373653949087180491499317746752096144210554411259707602828988506624254535908087511026808271515166881641883435340462887979955035406762757077218287907870589505848984012832680168664277625022891782429388695595946504454707193938672517069970808480918882126469943204429495129668480417665532326674114410355702738532183052441277692295773881328758170742703211999044733488676917056520065994478575015948649763666970456247567229323662518118322138197988427674367527680115298380789310827836405956122018066391605736081293997293587300755866093436776143108673611722197110111706131051772747414019989148107283875338044864286103674054897703862771423276057194744824645987272800072537411590915785647591654247047048409840655411600239693824042200744307735377830413471553129998443710201606920823188336685295759458555270197677449412534386029807179874773669316211164548051440425694647704826104580036660475996956440128928499860258301778140791173847455495260993572836874181284041220119368026271136791087411175001558904069228558537098711329074938522272063261452371679621634744828620186674761088969715228152516439916965988430096641935682410376578784940178249890610954343814432341428302340003659040280626056862571715433878662547132576223546590914368675609315413901487647127245726824179740150144503206301787710790746953529825770545407260578844246021564702785701185595438128290726391419618099961008643259955732771919700992432366967067829023352370178121559012596485188559260496579488197416033562378173257029295119219890310460481674262605247448904239684497509580976720855024816155917320988321477335619860325169821526135631765341366645556937820834523841332897128131086745744127767987364242231265968616053492589342205780944500736934217341079540140873915918209633421435732087870488092549042779739662992056871121622186356200235405752121717800769695945035153619077808317491747224015148303330988452325648158644238171328304610604323556055323100587658674442298053503278922946088675253220656755337697669579859187054613613907112492689388760535635979833038529180154282476255187172055585848284720868113662636462517624742941360625888860490652817583757843327280722675604871222622639678658983331189547069073574745368903615765098958072532536923203995254780365704610100750535639479383859655617224051489150618948788554618919495812011084212537757478046579711017955659992125556202854058890914839267701016801082854096719891852687280097962731999559668284454868298560167038379247030314322390152131761702860754551216024456043360858436942695745015968711919055211527331618700329266969517622661472136587653482557338772772039108815395128545251081622404304596362639537694056386105811922500682303020731727548196213421564942173950815865829565685973434970175538946598316909406615219418739224920333110085697745324294403694980040292353564192025018765053783729450080506188599092688209423813817792422624371919260889115417679029128536016736839918642578228141663725016581740898056046600303584682231643706085436276861550318326215720481022998924311761281657938320783405388939100962594789837371820747199047467774173749735087888197035608569606862103447025508868667726403729497533713278749829882215486517044687520020418244758685446116049215621164275494714166053966474930698154023453584610747252489302523944644398837532219701149809825425205045668778692724058923072241678394978090318364594472661209675106621952662370056280509502103036042075999257863454442909865498951652707166461944791691810262733854964197400741821150973684134102116295741712757351043781630228054605338384138150903196480806314262048151103141744247078737005605222050943795526191192169932172152061966540040072959107381392833529824616357052766598454601316144304872853252965661243635038396687669309206495985238068594791789547480341953231979227235807018392988899132060291983501790471797581081719307146404550222592641134625393731885944323561563808431288301552475424130650995037267610146483047571951804712085205121446779321918408153969527468121283595888808406502978007166026026334288109896017860357576274742392597760726825574918484938699954897951996707160144475832085214468713604244676273960420065954180718191509903063597531557430334179201888179589252050816796593078026686810750466485937147052594192838292794926811767436640756515151433787681482970764488751601168903606666675284718198658106434716383116523397563489717222010756286863480840122339988605278859390122162090530321170193650517238742186489961910323060284466734861583674047808237670147030404714796173697991022176364515103441526913252449078883271114424965255254496430424425439733123897806481982598641414150432396386859280080917061562578178339724232037290151265662990248675935298803076487873306966753375386619693332348371343891909840191773605855569843095863411983247131950039411825341358483574059602855426623051653090280263916088184645604091701167070297162292341320494494411244418157849714099418951522776748124511015862963567006115790747360756799558454726936946031161135022872351933978938268636560976231164474783510016533638184328119489227931283366500683955022515694844606591233113885487184106390308867779150181588787792256661588966883737220945325372410228084279247425436495370569826780030657613611348152875468768187098015253956306194554710333930914257492505180497822375830935659533338705926433320282828164186154924786014626495886497159488415181284010689982442263714871488134827808841460017853158796622625926806220580612131598119430690498629280015034941682483410995247822919240339613948706362197247919534840905445038228050060262919323685490597053655506818291536838278142667230379380881664693047926963855937901487035498356432888630446464035477434095626618848720366639258418431409442332105597316805181625598330275486324242995859729792241097768858497547112196787521582209843019880686643539791723870545647361870309568472723352673644265073071681744000403679560570242273869167731498081622039004648863261514856717036899013343949346595271956315578081412279268148363056022984538056866998058497743706959425333156738452715189076702083337675861177731576161747054589435079609174811746727467978676480404628086428562542836732985029803855554341324576944021852996302781134773276305036568329042873822188955885717394950538595474797203110460159779126314724562745777862036550782247300638989134414025186005443674126515267157315898241721662873441002810256051129442792635457631598526493797313348947035013752169562590998709670821583469397185256819374395474078620359545311809273155760324053197901640088573386309494976262144969587652391465593400651474510512678629612118471850005040199182872177971657035087514564667164299427341638373836924435839258053705907779878797083310647419095812122762940866690243061106923994070023274412972821830110033124115384621991611182648985645881337033382250883229605519207104793606969428712233262441480936513639945493312245174348534212639437083568017047920792939667988961638796292187261522525531835960381040885652297805970624580264833338037709033772837560383682253512993323325645193984749093539740349649333000586727030841112103056580545302699308989028413333136394813506693975020198652058765796711616625536086665696512134853996380840826611771554650334209714587975353801614314681808024837180032876445770008093081260795520181230204036939797251607793663194633031467426050391494276145424477682927380916011216524281326172011687665605479369767999615680445807742477213871038196668920902702447565967555431256670449917882499671925364086127592440513391666270671179162752865671589041161464049538099715049457406506257139121766718853679872323319180334921697453815623316981722289963009550738112056468820329071414968190079757096921762967950894109151439123017925715579049819138483767287947969104276689335463906477048120903159784060126732887898305100940119961656845783822390800871774354125025482808073191577744511242511865660249203799511054020583530866918172010565759376561124782733138796952623156759824953227038901209520965690614731146590592942033842460542244841621506986532935437331155880565315831787493133022307513690653891321829918084096272767772886350543995236669992793774476041505973985417800387519814081217159186644909333631321354119876438035846393532316064049363885356718091376499858444625086856940456560303298874810625226066252821358380659694593268756901272480543592849547087379068110975246787264184213105344785628936971604202909257795053896262091340713847170260989502038685089443742941011146155230210871644534746025281062935308557783760491093188729830264355640214264758411501929289581087204078935668992791807980452129212500932711080351059049587117857461658065244158055958408683918638750143426282640162986338406606763240473624583302878321328192528002439484232601938913035071743530960691398456842153467881867325009492074710735819759511425483094089411715554528881380863347891929382470115239688610424840841578072519918514641635312903586589709508054431462746247812807088443349969599393206636176549733128735184093006319537350735130873126900679055557030865898371548647846039036453546974129217481522136238365140574713360225055216223433830587124668730166307053017092555392939570289570721939231022921834444293066017499273372580745703583652712745380475294984127305014095053126458822565620837169635062775287503635732892422865180250132593004339354336220077769459343704261321173649296442006330983096723802032007697758284060470721955636976108451835294754926569207029652326780189534489867095379941188880701187046324475410363133543824598053003982921537609616932134640915798130730403026642959301174829897011872443687425618181744358978287437813669468104681335317661959380624516646178656336826954667449249134141269314162827839425366804129276462532654535038378431501218549031574309913082139643458167533031445663328932068598928640085460269786901516971437638442095794711992988627505620412725077495899424100621397915551989042727072460583999678963449113704395941891150700134442305330347806996894069521478440566179723654757799599099840106080783827857572152704784885671795129251923103861261878475612357545162462552637876981690006033128463926238979161292679472531804162656784506953557336551217018499006413774233634300344932702535184378848016876626796058737359386538589456378406377990342962597815024454234085097087511467555622378522558514191035961310398070300758035017132805772996363931651468938416893461635399091045426202539847670887408650065061516913267933166025696302162458940443385881534045195285475049599205072351166615644341332306267703575166166603401825723719518682867879693613055025394170410281025624456099302279450673837246352019822327268360806561813023357957740526191430761313273354636890557537121372545644124491069838619324010974242937299873487045024233359184066466466044601398768069360077707027126045873433841548827417540264925264375426303168981312037697479589335099065863326973656751917553374319992774867963955798690523793545172177944781580016809638421634974901273448229850028985409277909711329334014461259815236824788462689349360482758991682454601934505540245530275521186715128048531412430863733008092650826002263675642422443895502307135071264106041705207229787625977061676555074280603182062475441575751840420786940552378786781704943387381160173747996361102922280995702935375157637978884733387416065923578506335996255091356080957668175581111187011783780741836086133347176290370443266223707352595045097935595566022462123164078634465351059864700085593977948893587791057658193751377776759889726896604500295748519399881352251201461901984842224889431857590498217631308083386158829771808500514888729860081682222554779514052607623122617875305787590945210372065312145795720555500619746075167484335507839021664229190199387775196263992882329650543663380268900222427915596732749948809716453197596224775894661487573652900968470185722076056387844642445668877241259651664943562985582505127061972191194573124406287152005678602368600960031648206983927552974416472282481402641982897267103494725085028067307358576897873810449724310290210879788452531500092721392296184550347167540581549620316357108796861450401715165102706400943812649983329976621968864938291549110963968241288748075614705765254079724440333938621182973427874139480824861640245739306265977277532439263895202300939877987438757919337264967974833500779899621884150588828065899270911855318731905875868171165753965663501515886185748754812227284225435186151157490941124126997430136160092033082577744451344431242692706761674415416085729254117764741415143582749434369292721929565053388413784189006024806314051692947319128924558436613373635350858041829093690613958578755290364874831255403047200485809559637387028580400944560192465149614600079636606120356348140553740647746621116300808058967905179337211538789178314736981626159263912876656407500716996012319387061595370361576357432849452972540994541868492009776509051472094576588666016723881357773779019413036317761305668085641645319388763180214722164961281127838012103376609189418290478237325274010724227174558721625695166978667257979852604397421684232717533863540585616510199851861432361835767943433500508802873974190738630089012224678545303601972496531280548534296991567559527624011530114806518134778379455967072102828031506852372556167429225486537045289593754832403454231592299923826653562699571496697387087234836935645215302007755553059542830532437044476602282353023048818081763534301389053693673588543730017000736838138950448884344306949312105677694072701729691184449540517729631621784416515419889021297549452393802901075515578045966669627960190352108895551116004849256209917226634584619408660457803913093387305691063115772029997479118953927262851241104632996865076275980270789267415046553777727648388973571408300339456410708321468026413503677823005956146125582615299160807808037902934664272399818211715076378330095516018342111485268753337934502292817196199429341862522357258171067521834847575523343726079972683274391649030963127800254419174105056679720704931277699587235174436624006278172213100869321860281452668723950860532923711659565921260644823943629384976834738174974960479938681414762072995547968041969701714484121316095700051584485460041320368294088054152490072534602167547958664136183923923766745120696767565660674487951053194140871704221641718939228236523432895524388530516285701323597033646268193917095629397379470621971289720048188695401050932580572470028671277155759283736150721422238507934711286781103466176264445890029458590424637364546584928694654537340995451176864370565000446372638486252739735554973505067072595781312025737044130329608126926757090625117881915548944010045442439444971588624870802238199611685028026437332114893150812096299125296942221706510088921794302380367881871105091919900748950006535693243001524993820114585926130068635922053864442145273912298801095149622704751633426317392475786102723829369765211985444743437298113822476856374127315859824546391434663941013991705612069468943942022234865280551643870926274492150082500516748256001886757321300494935555920309213847959973546223184698146265877523456288499962381407818024523885509727280794708413866979286172142384813033611151660145465264446208090550427877236688098415948657696172152752726691841900920861327543333513752290118072668911197777882037598456020681503132436942219437819150375528236523598368743466188907701671615209825769526419125230021330389064445090458366797253278525338070111820363815008016185782832842182716978795190341574459548925063937509185563963446171840661877118583788689581726592508457763767792822720453697979635458775895321836404788866933149293476524662327356335312956160777404022012713273491054761728480690618014836168826889557349044842009160148983934129241610190676203024141148421028346631475013860254651714102180098895879773975539310350470486206177050727736979340592949042539402402174960814650000921893112459847335110789085905644170424115046093261677671714978404668300067610424446962354574955402362952018894195297162527574201876301998307899072967882916299568975889328275071794986705586344345192476362132452890499777193138338933709991227325154983398554108363196580467852896325200564932805268328324686742619012449410984901271406775360598411778623102106345385930199091194181715825399584126228519814712974593045366700500806721533451485896766013317850958608891071416812702147646653519532381786924892246985767012309874960652238409723158431709408992169319224487520941241165600228698925150999582118679954448791933555822765560097153675177418219875704963233049679901035896569241973825830766344945721041661887868862195649172009595529981028843584473570905134833509974850164254197160748478030273910009874362073073171601230837169592056240836406479578417794880782355358524247791972449104653421680950314759780361324933561235033368354026139600659721823442588059218589145837564803681062497213227375947469367642685315163988383298290036563915361426104994950706647089261508513775128225487924977470375789594592320276829672107877388274316877462104702166793225167780815098353131250839817797881650877851350083057585160911276599192590951963231235249939381547645182167134676099649376957470522159595937380773104184459456612864523318289819378824631135366177100329210561876207082714199628599686443351725329233398068835868252851097385533372916920805199776689989386484643692442618377439012531824202880444610460934637817860343114778461504672260998731876124743594295014229025967080944101233963440950572871768263550016116861661137521607557919785777063974655496070285920833316268255839505081389890301262925395198858286828106283380253632056576908581573974183413513300814556856466292763185380008034436104550969150138289662622543705280389788120675435885970613953696783547875183983554677280805430983731794793300226616938536017552735117393413561469274236848214892775035359430777427460208513945798410825068418683914079479802508516854410845837152554232730284133359732051264492599560075759624362175561906742373062162611494382434767677333175622955937733943493001107944524117176744384935354110237211626759988284124886660284453900921096574238191165009785077127973375572855014501285657227823506203311475131142883456534954951856165638362355648253402057550431774017190622491323204751954516011733998134443887148378177923323872419556687265792670147252637873788616190958829242548144687179361721170839689699844644776526536263027298188257283538872814887165355800736512886596823045109173034640291631012786804649243155679285802851386172771162343349863145568304374358011700714567963935496708787903560987041455194423333459388782840809073512025908123739062476032072862553828297680664216919779494145460381086966092032811786260064107137496121594609047254774088956883181883163166714640994744888917465063771177329329948784893233412406113526157143008256494910020662403538950603099252449202807910929503787887189165077372047831115985088393238814817111321614984011588764893592965940828963006853418155958045115146088584834231203383975972972463359064608179505670423802600689985308790605140889683868255712884465199076145999808940042183639396071851580833589043582607674589795936619695371534894597420182019248643550220024390031269368257510743472825906520580666324180322017796048148649331041148639620137557414482436270814171783539556627446577197013270052325454182103278888879245676772360212741317729493538310231234218931631097466060200264738168662811211712685721347356485420039880408648652481633848265173505767339385056432482890738144280884332625295211050170937217902575504552173030140483537823359238555844272949237114431730521041269218280337856522934917871582649502461989991045354976529578945155924176577570840549747324899487497882098241877407128196280042977499020290585587339658754779550769249696792362675407000779660891990864566048769957142228198354194227017919522506459594416488642092008627433516098789233715569577242318801747020165207517024603036030258020988290525198635531572821289176535366766855207209329538143486672723258393673454260047273474019550519036953786271948697688819608509271361178598626180285362555635981749697345863142976801920061858076248200336503969929746348753122451366121015128564423126033704068890634674334226938315398752516807892180800226100731094328197161767767884794959235025096319607104130183213697551652048336371195392690372836435697569786780861804894283279251566909097914896660724840653814457208224890258499584351765824242039477570515533648014965539872490745776101137257407896565600006443837081576806059886902987524900285333819608172406466541427016554225974005535137872713637756965042616122723371450499716729552702365600824430448422259143530263438686861023565050070332438663631289516607321301434116067667343375902809641612800882439074671889578581660299901279341554563704812080727924493892236196217247514958786617205867700718586526802381782833351946348929632314987779292929587250845190218301436588918779210996298846105751851651038754141996631315029392971777348649868517856231680417375077587228498612732171105689393812281714662197935915134049680082657880627095470902193798341972885137495094207277657515530761668237059681554484294124454624494829152853995051050493556666620821507780488962046271282411648546858766903098754535090759840242785875695035303032723095402911907753091342084547355114946938234202450357547541330707634707718907532275147605998989853828369610215358349496281535858072872987182423881974339242672363616654722808755584114077688494285549714868671610986638242364282929657689800727515414172738417361562993014597900025726435753318100962845686842060124526826336759407014343343762230179138731735207052621062456892959521861351108191784263716902622771925785111116293107060042599829369032411220266082193931320825664322279646760717026865809934004172385493568421071277456567608765607527317864477918327228518795345351527785488307992214735585124201921597595258180022222518120806378346992291635526434038786486548397128856623687750990993242050594806457535525669177582708303478892157402350197721846818272997394687129514399915650623795985737683199146166891954192797267082189465191665867284403864957748963224876138565233772906015344845463880763598009769613476598411446257822439724981042872949881749337856136214974005033634305643285005876725008707512717425640861166051951095800137435190726379697937110471929577029345363427700173613994553464544100162332810313821540425347651119210502150912257887719860747295915671472697137157602517055757193314729398514756491112828378066925748999161784392223466053724846198890971708939232913837616476717462645586125970020136206795871665499499179186659265092030246968072331756520397571229561310956142761495073074645538486890577520367267975035919548104703558550667420882178195735898249311645797090826049376396511305966035995137718093759891174685119990270715037588420574777767592074489459363870507807494984137977378210028211905316713976220954953606715678930270941839185180039745775634956162000723602669827898800156308361483543255250545019008754951152451899612897283421228818318704113527066612415456034266425264460939620174846516218971064247795632582137252645638665734973417269981312768178450738573103340389283035742615554869493864745520971844481072075022589816441017839888497648839646836918612065391346228345221731520934228068210244884505947787073780130004537724487716819085888860965197779888107250500097790636713518050145033904590171413239941264536314342489255298258008364978995896379447400906828216742312019374603265167832779347249247078370759325135589602341255517017811116480794357711214777866984199648918717395734468171547416039322998128735734197727531250028243532894594204251511692554549762237368746172110561003766618399676474780160125952979834214234869404802614040801121295026243425280585754340178696414499130207479814775017243110567824900099228383489547778268035304920828214049492742869550055851874730636928352174916519126560384915629079407139637983186747738163343616851366744225435310327734655984803629051530531171702188571728740726859297881154796498250438188550287994728665538508577885026232609481185674738809046522766676636311719217401642139419473176664856277686393712328245555917591024177961226045692013016609721966929906110938844537067240474101785861288514871615203132960980679465606659788415770814740546579628361918261055157907188144710152994897998045425756811227475545144740647094420683166364190926025449015352405235413823658688278652301532184002348577405146451971962809189628764554587820712970134046012013846060593176283118368179961698293714396607359051182868882743023827022796426198009279784045466956647064749648408166406447027644011209198374329591020354385658816515747333944293863777702310335261004951792720967613593825066163066582594891540650973202596102404707470636460006707407001619980581279597390221633757111172775722209559841534073879724525540867944821707646712655663349369534905128946962193707499385720593379158264267516600420116431275386572291671326583512702265371521064555684525908209412886203440364383276826336639828205127396412315384992622602242842817331659171173106891658180396401280386350048486616702895468345014511147058951379135692297772786300299999970073678077777980046190284524326093274451293355719436308575930841929038006150892632091135296272132650169853251166603000028389356895184062616344136376613185057900125929364139559037605367618911447664875043395771143436226492513578559742645089741119403551663206509474266426156374249668950790718736824529711409004421643383216433292555417022129080586871857869487244586814890508206618776398309761856686291997446329669604559740579074241362922498359697363427884524227185626022566110438643567282017083798148591182914791621905419871237351749944793527181652585673250282528409557301279156350461266353465813648714990864113446280594176237441419354921725339218548909834018652576479844863588916912158783935430450589836532061976654588551070159396404499357265768054404152598516830353001712453081907128196572526482215622292176461736960191687677749186081373601570627893736694364324263142209361701388816442135453679806121891145045362689807967596769404533224390211915808441937915525891775049885486567845157551430054959479135334433908707426299726780467372745659447108838338810764362672426347870347654794440094600784089008962326946431674194423839443232152664163764591990862394653173707691131635495012434233985794815591503769621292826766766671672398032207834070633378463170719305203573415357175083684703064888357832169200105525321468100303526947863917441854694248703866911412030903624960051144444722683331438139876835396083456147024746312104834869669430548541826997256300691832044151378720151836931482666152408347090707918861096121982802942679895046448300904184162731975330678066073002634077356925320107967968742844914510439023463150500507327972395512341651733616116913156169965745913120818663866569568538256874508287220630936109991006879528710527133474372749081538657630426264677427547212984739059108763538198868656203750751570787615568223560965872651225182955677208958926141961180321602216615503006904387747170963414174870347399220348251747412596613470645116391658018860550849774818380112899701525900144208540240000867169941236240373299263588448680562952747867727259344112678315382565144624004594675529774844425278808715429427638696555550143477878173857812433905452220032020319314186958990286015229589340034476699785625071705591569084476858943634090235816089353647074898181864946745575162420145269779537814765834460180139700941194933306196967257638793549789656967579007710770525089910324121534600989071888456609686956469827143711998685196098037845184078920833018866199739984477265343902591319607836990082486714572442692958156748226875790263857671415735253995018445709370436408494027108438573643598036754608054241503584599209631467868197546006324793980320326238199241095941659722605516874843692844610285287965501644962753587388865701986803551406846861228070188080222272701306258342131894489256725607753516971136215038563935065845703910226154268718384201003274545258049202397322116615485405994190247023784827421066802478263312662230853833458258396062444139079050836408261861182935014989833645524321818836021133039386324599587748445126548065156295791750686946631187206770637097636112668842272924410425822058926230031010382916446553854361391782682207323031373424755519690616969668638506159379610248108465704876507571649840492254964458628460346889166093641864047284772382617572623430488269242489298665771449368996097426466430301457828618150733831467643482409163862656159168398904597592204877492275915843712115548090983998852281860958152275358871637223103580080793280558129322716483459317262818244801046807299392308130745076413557452804908187299845654615691318817501509117341631241113565919103592347792002547897403218426743579826140740114009808456377590294534962045955396517020691774435994615052391895207452722190576988128103451918138034003034279201494750901459778233185134749270190670445272476338121699765164523500642171187519143529000275836914345385946799897177644815259278589394295024562972955930366885765617892403969979489960792371543926965248002177705126512735108957392759808563874879845217877737372219923422510361834023615508471857282646593048499167445990433779863656406190642070000579528515030045538843987136678844301486762454975387764765035204534361411975375565495710738420012965019440009020588533881788000923639514184046469166740070916166401971450808317541315123539106413750680456458132093898323327820482614321277824389991706671530031481957217986260328519694306892578405601083432051130587590813425055023382534791892460061057567578082168103413995463848511420510273150190944760694314801903143143725612480895862985313040351587749880868103908290711538357120242742343214461086655253927632626058547072213357514080745988982749997176678785049914800427213542397130339098257240450385979906933914134681109296299629351641647777318519378267970696351980270218878939578726572930485631770167417251643185971057811318950031950504228381952524981722257466201558957815576174092219377616082821479554512942030124467692948150115183847630724078415172263155383922795802692129608613198835687422181871892479268766166325894278127469225368395454409777687967374642175966115902154374157445343543564577586446114181771988759731725900181299159800398629277915838270171387296643411625084867493545745752516469702556806207559999589690918125928988457064160037434634851429547039209379978850188266009149502919294393702611584653151453055847675091640829580623602649132492489922796138746769402420530961124270532110436247284129729526008124069273295675069564462676682845945548856699875900456405668038456685896137937651444562706066749792668416197122150001525875164366256457757341123029247530755987885215432422347486578012727493888596469129591206129443763333082873510089289303142133551558433583651703695754310023371063483608861363334458633121813808596367843670457730613838154325689427979199719829479058756428046924252777990564136944857157951046734345628670504751989009724527715652557749942963035289870921797373351571542202002387090299023023353837196417332392608170269106821896820895991535621452730473204083737885549516982773180636255266972141162038999749070325852606963382077360703588558232484070772832438524774581983597307942896105580795732571669909610096399235392863521321311578249707331555258431290879579355347357123250527897488777410262603207010033147538358982600004665128798817238784751825298395596584288271578121735652693816299556856690652924546631749354584292506767619119914364031517088578995951291459104262452146085593321853315924127340506702992503309307273638920301496890682714860262881179730450824862745310980616824985204580491526916905479065007916769277796541109976557400756248894931811282006015538297986158721886209047763701620501666578794414629511216475231858612291000461815404639187277482042776466161152425659504016803192710861832367645793011366197483814893172868781660811697462595462671859380873656701652139086849125372961984936598579823696865441181346745852927850607585303801050824002503095051611562746782564889024523541707224143123233432298525744038370995441540144427695532374893079849654382413650212716670679925654500732654340325613798768638491828631149805783298680592097161248071921851482522822547523750551841380047196529841329446929969617598053947056264001174836471470162073446464886934700129372781351216187722372779942080110637752676069007684447484214047939914733393431060922701637304523086085158997224196759412213860552695784133693974922217249696441186532229229533732491223221603625158372679921931606665906574623956418812677175456263945710813972284112242097598585150225785580156151728075650144721357082258188377517844850424648647869342833443522128464440882821275889465482111071971674471105092440152589693662954671118985526444101634755036090533221969552247685884155420389043069513908581611825385339046970276273505902286357455260030506516625365660497705255517712057239385198882705741740207263382933759464235434010302190324579755631204511149518627249052064257467052948543503015418963265235398879934339566567558677866239294765959851983530110026011280730494950325897440698035956784401827976955346883663229132442746097179828143622922242364001973048977831461573149636652222712081266401430670216304271324402553705598661830380317882577353544848070184379580283734577151817225199085527009323621410209873100624822554023219390738788770355500780736480848560690077478988817577048771607903404187766509927823601038102200509356727562755369233404989846373596813229122795445130978579361507541493196923052272591811501504116509642599441534209057326012503288192974335221949112794861232580010528450763400228726831021561412022279099730050350099041963609503609218765185950427261308966558972883012094897197344989784535467431486019446098318472594659649806312884243800765764498259706585325605053280063374453744474621120891629231065805905841354976299077643658542295126626364454358181469127736474522673180421946607539467712343330796410537579816755572604861989743248399088719625540023167945831119698986718035949638525269372262078818827864973826910511535725839657160222885713229092879741356785436661989147614104002565337751326273038034259508459626830262520660323534615687850797189631787423864388817687592346178752402410180430729415634389333533761135242375287383273625442987451260303241712362093627364305937429012562883155651399387309150495673745284455482942507761750625135960923886864470930138861197336895794468256976878255035866816239319713790211964703573674147752191163706889085120012586919210815656289725946188733323852262541444821606760537789925381878200942808228847863407615414463349815285135200119354477293081167749776647043882781159441309765463991168999651535611185151266367462346826005374891804655024733751406877974390539533306500000561211655160282014078872634036720920276410533309030921509322413778864161150535942955923371680037260767167223034144715532457791088118800284711068355934333277493445785334119948283228418090932834089076739461725304745044054429664495146718675011330404824966025011061952986334956985938172397185249131848174692414138176816506682900517539826401347399816209067954399987862932928254126132100494860633852472393319454191872289128626839647182965844528440227615334580531542394048914268022535711629439863702561142120727484867003825179623889516418689300003306416905220706922332503404437286204116613059460146052319374105188659310105074699828986643500373490365879135470988243293600160868060181507573980866568603870704143461613050750226458999883345417814783333691541450922131840016448999539165052822812495987996983543452189205850361986902020916508083177530658217953429942629670170345251805790074887057203307495428176016045812963643635580848135346868708141066875572103898235973183219904398313366149671600783248439650090119105129572224080250812146287422763815830417240400030547980176982620567050954295048908056668256257023271047517134697509440095320014616295761806087885934782512207275211945134546702910004969585948046464295432413741399453877700581913343720918910913410134513413444153837041953990020541971707382530817926227130037093962803339342432615554530475923264444674684927587641958465956734209297542632818679210761824566261835253273866059007027979730893264393077606910044299481482523384160848786482262913420878802896360253191376023333238355870450683897462670243874530306324916376791139683853096386653443542760618972241010701808626010952716188347052345839428833864505954200427970714019701219788362810299577305927286983561647331366112730922136498191258744618285765456836700207824529084172300688850856817475774593176057620500955023952620820999807928346081968929892393614419751064946504381107819737173751182438531114649528512172624056988725845466686059435705128697221991291925488801902736245292363371450224206519104123347179310853669345805621091778188434554477155472644446968188526934067397298726901543757482071744626137414239117619423548943740512513743259492758492190173721150876481074982771692552542265626053581690632128735443614369015408062465611839586646937795148039025059341843299731915651366155666095909503440012649707511768819945112838569224715409365601697048843222104763588083002033261372468651848507362347780576899192407190639055372310793642033419006974680316535114335709534613865658701706435276352480276720718663478675828732183646745533497934021128940830745159401538916820612380029694034249965026788882688892620563775418394466619537475166530114722907830665997673385969239243078391918964445483532576929158930158603929730131156064473581314980694830464243970583181908164834366601946747766440404059575013079421683172260681102141879011043393652285857442876344980421330713436294692471176506098096892765610102085212957203664408359547841093174922433681184515390693089653355791456862378181064307632402594365042317157786923523332949979818085956999124477352275507982196385622464073345058425808746790960351683800488057085322231591224757364390492865696732464961283623072203755876897494249499855180041236471609352321761426618543029837616334133049818248920924333275654944892227087384839899737056099676728568803501811434087951423025619362900165031049080565966510098787779456582405880529567994283495888698832757303379888594105680700816387270043243104488374738778581631613868419192805339719854134604482820793378786517048891415800779025249229862639173242397641848039817700114371613256310784812936816132436866348427657001644475084611887484463967973712516731098698111136672692239782612921983865531496081798546093202864744059386549277377503205478226798796441034619309540568203976689456421881938030578050010569370677661250727955299134482360488790039289308479097356535336949261274396700394964043985608280575693689323393438565485249043382424621869475410844459262892271041645813989333005942869176892954908424381705429967828751240573177034084788136109980882413279811197437283741096732745570812632105713489398860490687776070849380701762050105404068781733215677638596387738531848759375531390844134936415974475749866802290129448131414701729570812661285287433777905495202022768285013848428584011567853211305348815148351668959967177590326315116880877307424410279879214302515349983481824024789216462596261998653575200989363296835833992643310374889387211603583718668088612082646376631995415036639654545276155505940650540917695555874551451714609301265308223352741607751027760143962107164244025471174130836188766737280590250554495390464498044494684218360534461517760374537045085119143918027908515821554034733128344862259426121236612695784217096664846908028798994740801684550500741949807599316739852596387269370578288699214504083849796628057929257329406492637497385401858421027196353762279485459490207236061780490029241657520916367012419920703805122318103534988013545726014320177053621512957486983818221718753015639057864400873899653131576888793210492765868800241661611555614748223078805599785076698581217837452656835994495382852528664075312656157477243934127225523470834631361095145584608908668816665049254783048830835572708846657986862699312506541652445461594722836829077968684063845396365251164244783059497982202205865920453693173899988854191740524260664428458885637018705612559998987871884894943093879303857716501659719499851720243741594603631870325119732077757490779620657748227497290834461330533916889549796453060089258017930067631317580625746332603925238959302772656565989656397518623514626499311871978019818531696532689551976381771388747238405071945472025988522763733354469646290745228016874392021818668229555239848405260346864178658667765684162002740496214488627088269623449757534310658892589020513432109115166412590744355685378806603510280407951512869059329608403273914687427200796437748457116414603111843623063916073997788082025920983514032017798037921274185723302273933343110283881770334791318291897415006099139681394498646830103749584938075787288543858873302714476879089246724313615506010274992735268781029156137523882979247123424707703810729067752144827965157973746434994562912810156737990049305036783022187607978671425365101049902048190083292382753226262970583256623742726833879689865519108023804113619294178176410824064886038999085000249873638747561064493021305693836702309593207511957601692714265281822282891625996823594093151579446365336387994748164691381453129460582521389360924841345011223031357083451628745908591319071796162711563150785529599836230295944955513584394929173732774431367657751015733100299854642028781888114680157750915483327853072763066758230784327415807116923630634932396077597782653291431473904055900830257349138978389952966199671292141395242342754643086846210225762313894799581693247617693572867492028341987674639463563603097426071484910889311803361875497247671788388522948221252680653701614466755630279505774849641599587914718471177300692097215007011745486831501793163738363479186382661727754846448254090000376870179208460091078988845823927079388602423514334180963420523417559546930088722286767296788772759703507524248661812293911818251752261867217728331325014938455655931177200378269445746047619628520923719953144487846113592625895265563199058748711445982576765392469082876960349503466522413148253318897664148253489838128700637861977926158973488144504519861865122812797632165223849472580136070412382437316192730349686597910742752384555885697928647217867310665746546914867882847514357179276240528257854099994057078185972590560343265103769908997078532630572717854426526663616124584828163472377169867474069605845021117698583413828673224356156189410567784551954250540262860889908626919667971945143516021748079104173685017155001016779287292038220648523508215446677265010539065707320039924399479813735502057898705831042540183879207068021822195290487386901769708053931181004116816993946502223846023414170084199893704306292221224237613342645349307960263230331963224399405509855565838951512685389938396276432906042585767678729486400557965278779050332170405800931490716421518131445330648483969082439463329501859108809600533454508492681231823911040322577982566878191006691805390650526111436355703787901083989322647295008373295962441506929280193981046492882735558915296583500513013417097412950292661835300685087672577106176597691107261508595607160872423333652287562875230509495585798962607086418722182446721557751466381083562917785847135465040020713660812406289395832342164579921438882943688026723112799467220013881858577306054040108570240069922419222977922580105989798249341183647423671677765188145426579912897243111352837491218356611250521206395054123486903622412122716309005671496910657499521538550342754946554617076178098887736299893563818136977062456990506145956770097805690194185938676501761349629434844965637861522499901217641334284786472944064027465140594547676239943351940096954708636283924093708053807882555241966415091093335002044139349016685029158457913794093944732381169512939797135100752491522235731609094834376053542245517469728987267227233716532654682971395758417291773058269776612086505380634805863842147343920755176041799208454156336300667240125661143577988882552718989781933807178811195672958107531746975584550693583006194112278192481787107974171499505668514200885026203154110856371926520083406755938058168638645256402017326854647864902161438129361426085862377859318741435656096402517468340290059170762694686465442783104804259834660413018635840649459718601433792833041415410436615045125559850025266376571409749813491086731152778370202480487483276290013092776538125130907348044616265322172346110219199934197194923351466657725302482778506991476719135936052328120881891174721434318369052248838069269833819563353846234288151129158309576996597095849362980378470186064528903853269445231926373351132830979270227473169495568371832334042716095430443266235771618933006598107337909677738751048202741202158802391993217967517374857279536311539812396066500841210935473532274226599323468496178599841971889165452096769090479979983780232233892262712991319954707082673764804125464590446916386295247127609498938080720999896242083094343546021310030097444586794875282705555930939892358265379723044700338036382943719551162491573242421232045531735142238273834396276030131099967065859562168093431225669683607577046803139736059912265551062510929098863128946863548313499922120111212812845980381493310510983769082455314906066918044533880495769036195540729000018840095884644684152143845208809961820975962155728226708132444589496357605411545300201444405050552830084318531124087128771734643844508039997042633139387164890116193116908048343019681673633274340380655819623562392987325189782032575022657449360880646074552027930562135414547989942204096324604636017910014518293850140977732339367565870125324316011745137097668841878062137754098941031752464118301308326986417134006418767435772382965070623740594499570143382234021140031457148382534136080132870887970244744918342638639429320300319213577129378011436892491542209503926857366182318370109717028505989497610082429277940377679871102094289465287463014661176200675844248913740607327054917775594416167425066926185756192554473986914713154554305048999779181130743735027809456411342260728258410923160331708395791323383482372351975968384536227799652557296303699068431687375762367311731894721399600096747588808721768777321946644236485672008020200586373640427665883657825750654014504900568877523558203391982062452444843634977035610919863515155507040515998574246663292691828624144955580059154042303427136511664558159872323887660407117512420851485137690340446891594074618582681899089177958188780432213276168897442441465978727483013898876637118178173955097432809319946035269516157130391084659017220366919966791088016663234290084634777891747987146381173519783563324937207494387800037348118069198061385977134593427519078507653036489016772703255521631649555145125353065067862676858491323747347519924706154847325236504071248510263547885987894806093407212302290956023141582393318866462926795897831507890815412905737549431469381233118314509720347603047673333974901758669823494212796902870207465017382433904153448321112093148812459760274585849196028038430842007449418392061660959620740985919926842880530224528200813286253828755289977280793483443267740999706032904538487177568620955118571679667105974421065867753039389975915458290552628388545726859099495408336152076200228899896362355506472318393009817974232836685998798007367553816033127044399655103355336850119655902164981588307123662915063177936198804391099296316974324508936207494259745699052612689416549095679015443360130969582219882823180324488037884832304165720366158927401707894370296805824283062560525564566994506006356457141573592942441214687504081145523630738499509535399238325922851078183639668862074330973082121693745141283498251327742213410413313536430910067719206467192613146130405825353268723440202164851384460534401112863137270500667836989726268645812896101422570208022901732219373670828733557956521221420307281797757306800874726107971302386676251503335248177750808939548535547819233004154059565513936875285505320368530771856169268952008197236667110418846985878352744487746670635334393166275757409188593116454061855778450863514808572253284620910039458071780347739602529490260153844865242432767558662278800728582850602317144446666704904197219318733164754039835483965839867475659332416868728325873570665726231083804152183899568078190351638110888709594974827144329420689285976562363395163890787844956568462956263138825183996078549063180567923813426425913579815569282950707125327374808616963776910800109626699390225326110410199319314765356930040968341104142755103735657740464546293882044606615452007342192337278699208859996022701237837155639691837935129153169043003865871217778191676630930628018582636073392105582907510749395749671934468303470103584991180681120405528297304059474481511164237172480425583168438167407713725238501986971521362469839613799240192263425586155498107512907680983451519847514044764791000417372533403804709409192594862542503452577354844002034577278730908181450232789489887425578220550636517750269559476982873333505642458067213743817922134085867754141967585632295692913732734759362950048830689254737557716234064710101230039584049179313886013697616213158492583562910878017417971171613259943242974512390494787518565767989586383285250104855639977111408920298665423223956131821975952157614783932889797643510468728400428147907717319950848113613742374444103156311761093555952027619540540888466944007533944295983856279268785277407934274656690807381026891682648004905424377165113212722782312615191245340768338267522603999096375514786822423404978378173824895920935593099282235462348693670158509926835918591598336239809097645641115248758540567542212333152720556759071535312538078246824806767853231678847592131479373456290023228430353995953255815942918203568931653674016856163484542144830032166484356137795032399918503258472836465859697356913405009266418922473734516600807623780386142157174582789232934247421284169335594048208585421979611327369069704030356448427093429201835625982480887985769698361051320845412902234163931472695427813338367552582753289090573321814503013112252709607099369429905198732897450104108558876947611110485441165647279353012645558671766851812788678426849134523941011478255206758579231113316926208758661590939079512001794873845068403258961971579139623778337169640873527099854759150580683600288038821809958525377913140202019452122762760377862661742884976204347139873918364944758899500701001678759660415797858194187762720159378164975090037583629218011427176338199089133300053039435638809557510419140745572780741104827029946979584718724318491480901236668683293363840583905939853361830411817046192382486009148866754900248749990849933224363921302067885874237213493815634215775988672868492247506558138086462046563375284945892452850798198389700681669793046495231558793978498478621540245211434985842514759553043839561118857828829479985868669438121203227314832680416151403581953325685914283886874569813615817369710339625570525589338131325660396272160320774143593563486170097321953676650516775681399243518547765460942833260793997274489308179104595992659882035173126614841938792872445078335632182236002289200034923100636591613613371591052200575932163240926074036922939167079053628366673064793187599259547555612490202402322832266569102358503857162921371532295905349057715681971469101050323452637511247956574061677425404524027703844467270423838049406461615941014230474751323138892619545986481866699964177655025086872037544079600407530318465378898608013248314379218206596332045288645065882047571126508891812447651710567473039373143584713260772999320647850434529475591701394518565104815141093280638290105306257161433020344050332886476055461502233872492891734595802293149161643578212326292616220524677214144408689386441876618825273608319769185793115973914809357054263130446333187053643217392638210608529341412243018366654623966494843108235372653769385949166119325790433825825785929901332947487806823096908566994507906217963520941186254415291312386986337152771899041093466957813728032508477083455146349192114258244316174736291095086135474561808326207368647166880745184189478706679235206955389202852524476411977334054483653127383439511611980616679530600295677563707767315481119228611775925808364282064640365457411720158308837035450742915490407204382757231919004758098672294384472801074670327285153086232010127506019219360224994248944520322261449729345109495399076733218181283159550670123193526951751984116382422657452644631434850986688468026448797947384156411019719531033848820064462858588296176161021664380468047188497083087225547806340378520854370296822695585898947035541996346644226646053522001269172509857028518800904969221442859814086506563624457910273366071008208285785584301273201611924802337165873409435541339685637250696464562533538981934626037460489085972828054011121813090447135744734923809079030750732671435023352380128681520095033702616429096946548778297020894859586544639843830095920671867793404924136323553476448067030236096098078195309785599107173671369351397684971680573605649144226273990484726570865224323864156021260550574055898098913821013083001806409205781290160256788570822543330444198166470232065052166248504888550065238816244673004312943670348583183842713424736728842347570227718209879081368608717639194510941146951563310191286117173727590930109595387932369895072485548695070408173497922404570885985892024822571603630975735158797066923448827122090598521868172618809400969704932098391057264612226164691871391341362661192294272607581407935799562891878112456818218817794784150578315897092775836459738402033305985355779735641774905190906964051992957157823415274653562850445722930681142441086855848905956447211004114007485449046622217183718864137803158549452399017209758707499097118564837534769493967017169090446988266043023339191414140118725814308932389581887437199238749882858990280119010403034858365865859460128931615793746564088614675638400930280632076525432569310284217074627184241413936115776887543544307609734111097725382838775915487076640627739117080737176058294092148212152504195231450824208474296424108566342275988930148246808195160346519521486528610718164700205814418608882236176290061332817714181397329292022276203937222412672904179601750491475751955761960738529526851733037363255397003105214949675969112241800576953918494950040851539567332830927406553918878141779381432137422272934446474999736425525216566713046223958722652170516845688697347278957002641618795057110943742331362252042136641902618668556250415061390990559088291929077404110713870852291083154116302090364518523211038144340553631339868310362506504040289777434398440762664879977625133611314442615359859974690660958965080447745410860461648199254146373570404931714194234292072691656786847921056750900494432163576126357693238734294465406114164451501250105642238581078856817947980998029474857114362488471807515278872916605454390739316194366325992047200502583337348072056573710119192331934643042331830496824620993227237760149245489944408052013703622182245483483025056175822282742407070857883694187153080611473288838462404119581336581287547954484789680010290574336731639080683484754943110405927399581042538260599512601694518453302359628031313645008232114428147063712066087809244634161908163722701720388775083458359285714075562022873871526536185779466989500235165852304665695106657800860159273270492581756970809718644211882765435654721801942764077461165629935759190624912244832428789727415009783201090042438121265663416765063124568976853737089620617534734213934447036324276316554166835041201276578737329873930890446691077812054899281648192427857697332001938329520335550596750202977281949468797764408685903249603810227293411972635956760270835061243914095491908593937336108800801741454857676420611802960334263483304186173630039832421135390158198150762547557165213343796260776894102367087556641635969150636783029921869857896782017334728723756761276042931294457572632005362135622183269323134306291806634231292055495858500203910839713086897680091027348537871047979382773794882625793386879602629402299673814623613628861640377572993303028744669026650055945678014894773615937787155800086385589698129750082459779175736429922142381716604787543780982143405849632029975342496108924447825340032470039997491635667851161454415944579952120019676552649428422443196331836035461880930147104236834763994586957847981884561524021538559210274652119487124871653708056102266217596828600185352626943748655144527002263529233439366657156740858184298557399177863661802642397729370520853539448595028705960946881328340955264236562823077818641410155043842942946612573908315949576047030964950307623593488357216626867934514070727172199213278666896117439204388838609269505937097796971054584073592382796500529381719226724371888261439923238569964486598519272119139542242991205378130728975312635989087984321876554979093176915991452038886565542424660813607641379706135107661655871541444819612900767171550935514115203810410541003647175481696570295517775088420089172634808573810246694956355180924799276562933082444891547632340314889251381445944820997921242016902455806370729891992378032538367882588074860723244396766210514499466352489714966060812232932637319652607435317609426597981091566500204865118506470462810669858443022667559093602348567667229185346392568497060377037888307336859518886247839019944057972008024027607079761833751220440007035906371732450888718739797861428741338955829654057795268912646092525021536426690425073387742159411281671414777061953316435688755803660442640352913264610420697765263640517365866277521726219638745217034294853908488430833403261093649669744465079186295474459004346406738980008734784861297419498274909221196230667467013863764466338962679511307085429785575624879733255109736518169034608115645746463562917956517850065812246812804997975645023420487594341262668965075850396102174144436788558919417478584995012458451084672496572494680172526221221224700809700524344825012610541961945026756350518073636149750165426248664084029049840347516269898780317051814407945879580179758335925219145508797941367812359260360369407297307508880126898276855518862522362898346501357769821774427921233099154177739693799661223596890356907040291414829358211074987717562492309173562839121417881718913073653290832401648051838908036089481214558310024675449704622873411697679728697485836625453272569789073992170750062198896689220199608801066871595946679050547435532292689056926871004371629737330418646299474834374856261138432773095955576948720392242222181148377628488214273269163217354699052132892269629128577303013611961931574094734282084089279203879418569862805021615181630443578723353145688899323826578518462949505059442216974009357079868765726246806579881987736514410660847729239269408934405087660720517427021979920127070327640862026437133504986244830074002029427217253074845791217353157691044157953284954732713776384638418359900717566553578740854459742175183537752499496108246423843215015011245080472836946943920147184568374446224109471812451163376719055285777822827647116571628690239244627121172832728287607386918766450355134090329727070050132665858662042177009364306710307656180257708186976244632940332976243709271220616346900299504413032097425070906828873089483248024092482379979014912307685201624055703085460982948708184890222990274235755086733347280016985719440680051199902750948880750317982024846678689231704903186547990666369822243902068379477397092233437172208288133697186789648605282354093062897063052048176114168108665434738133620693733815517487269320914599104040085354799521579096973772554453545215573161100289411752875884534916881563261117323657510359155562684589132561933373986678379638107354685398417402975714955828514680763781786859621124984878654030762043955938688202464859920934915652511877916077727633596982303824421960604209199603111324307760912195388640529883611435295526433775800954448133132024798599807713817595286769336567028884706404875038869521128796191403273139636854357877193269213200994101991903762197447800626148511905228778308974344260933380754895862434568421504287072303376720676119938026375135109228460633445676179704549054460799356210154035693925567203423557267291402892858683282582756382811647629513957826690824449862686079016524558677765348923451654639883931133721921442578341043980230731051299253457554290147344744008251699382645568847267109950531741569643479561771225412090173680873699901445713107807305706640973576099863662232374838400933694944726386665921875922948822571413942672422061069714579007022700426217543575303244018631024863226771755922660373054779477734844239007083959266833341874135581138114800527826896183918064307405677434214891746332856083145035036521777867481255833002896960357183397999141312039207919935181897797256737659849098760054309934712735400696582539724289678637820350285944473216174860395716514840104060003199860002656627361331451974472009067197500586334321750501392069384554099066655546638549357121983965279996200262533309654150595278483761673646092492931132803046709689822724694483648298006781504499900372632495174988895623382478982519434851238225849480949106831211595111272863592975876225315062394592100493306917331281814867799045122811989423053529195568295709891281151443780761263199420066593676458129917932409706271172799514379916468959261410514459998120099815297492978129278343240090166003022251345477162804848254234192350897008306946709965404363933159874649252062757153399396468999398937712659783087492073415466745877713570961177566932286373130606499520636166512056746845226482308887202730777454490608808803605657573445444508790747616930700933461382867879006918728618428041357001033015045641662514361065969384861154074319018831363858803169136435177711452622183851308306760071934320598261303170388981410117948352656815191065282376481099906383584843471668590513055135686290600453533396269903602340378827198344662723598623910902930121561714712004227680651518383657766205517126961677467207471395376180213989610654921655604029114430297451770531231931322801256525462801702349019394166789713409106323942538177806990282652722095396045056817736245889722732705721017075140629534627461750163754424156947754512497821806030428658347752587448104484354560378745905517563321513652913006601433239509223300324380228688436443446609632426350408178705418524115168090360839465385779197101289805495202826875150412974434436627451801821758957133699678843342221629134174932402745371332664286113399630243584947758875443328886178647906809396241820958786271273052223108287017015080791856462580701454802342411998604984472464620007495324816267742610831545513310288266938153268084036891573880469314863649468758759874658015694233287068766296243250831332163776018642766573239076008284911880284389534979886701099489157233228115046450902661470942198172507524068970653811738501521645550616589945429190112261035978840521876320312312156590601836778138452878349879158318850703926541019054487546001163486125934059826952108406391112963211743354766524205585646913478259050978400928660122588957371428465165372775280116524863834089042006883501963058948700367735147125177668294426549929857151077638476885495588294321518383300027843489414238956884617771081295155726481622982656637322417762603271066043224325746091974599181604298612379618260147172028054558761404785244539525427606591794434340215244819875833714969246745685298541456000961649658127693564391681203309223128192585129266260283241944352773548568112952166370347486319094929282828811634832217798368532847129111388972228613946220628753687255945958891076451633040972660936554226601782417490566948446229690842304320034605709133786441175934204596997756025863625528234816287447128551965231119893377681570349116637592525998951225490047471414972421197802909848249719699761830010434924104937147401151850980646809057747646529206504951536439803562109350470771119907447885901615146598452377687270936130459717110469184154563331578872404174665848801164853928535435682408708564825272194746219323332749339167878148961615349008435083123262123818620306435243234906885772615148191801053508098404758171848461312192464960817420258007132721210994669163841857073261555385613848061185753081812042906341454886105052759004032642779385754335822607043910855088522426823308032479707757439470453586165103069434977311188632325848724192216986361795058186054393173848342641504715413519132189744857249008482698706485994006047188345243705655496431959312603816320066367387724835916234073868127100303028320130493203540862832870988437572783415167831828712583654993890537579809290101047353490204324061518937924982407872057872954986314149928230688707615748763417887979461871692383721417938726496080168491345934386361938421758506836305181327230300436143391723533982687980340689209927473855475977143306668476194417550125050916377391362743293874307364995963793962136746615664907948989638235372053563901255867415490643838691516458480405075183705109163898969607733322196293415550323803779780401673249555459167991561137860004553117196619350753908450337050049804999906562794566933120491551430506636694356914796055248745126486088133766642893484729957572632294260637917363852482646885293728231084462060413844312985133202548064868714901348294030863289142481997435818234122542192190015244568810426972192403430057527553544057899167190376508425481840463452943495482227070382960455687719808030146351157625448925450779004508855267940455160105904405137695572541507029736877012555296257222435273646336234666370437116797120398712541236266852790348046107756011744392820285046750040336573050748893650377422967031287150442746230467994358024892936286815832772356471560887869494675888335543639571174768249186796447774855547313761063928542967309564326606210257685630099701446557640487261315399013142275560345628747751932367386525624149275067052340384714383221561089240766185669401426330290177480801638391208707192100418652294727260149845045758682015193905397005044824227383226173483750759083873481610915392487080572849369037363460477580768170370657446942113167504004860316926965557297303557694321609006082954206347094543509923070475630569817602462136580438100445843904079601021977444281690368742954056913037599885452122848574933885934901895702059678563330138418477058523505548009510344552329076815606924220796450053219543804339684863739197828187071917925527330521385668457336274441332567623478070871220829862927754200517578671808279383914998958476941190886550856421996885836790023988278723465169988736362757896887575065137628584067703200102612330675622706372365561974921944371856055025414843812081757751245969416652006092472361559391880102620517739618804902876936875317508587747537270077190903276079745396725341004712982302450660543089161162772488525842735748310138774086943755052699812410233193615721764666998116955389323005953649560827648385616850134042665889899893618577652610136294545192245446712662827535265795456546910620180948699364811680713591450677898609493177907881108882154424738716021835434688826100624003636735727073695375639646579788330389452545983755420471434729466443440800809599612891489557323337581077149154399907825145323256872525254150324655434615940711351333288115093375305686746163029972429572988914854659483430927087674510242351766146604522353615136552770181797638186574407697705650421486443729442922386230847708791508674855174942106619996427603205638483191910603961721564820872827667307995248130040145834634256501126798828440623739293290730703395052591742986691194393949216756485973534480803164480844648672729832761690105756460547186697732274900793621032325488997787657151312025124661726597363637487266013917033645773934656772900373483641554596177888343633676551690854102227683036495439126260885329672801550905566634995784549980418508662855628006810795229535694925663765177008215990137968557417575586691389693531430759474795799645916734299792522035245455982717066481564346008253696959125876826969494865878018030266054619114907357796560677923960631521989986506302505814533456424945058370074265646303518265625548251989476333545974183992753633043145305761705418603181977686014086419400603762805808351179891126564014080689170601530742348852650290051710197997303465257403818313968148093688511821688298543627779429396702615684170599425087128573506547482589312851946052428321818099773868050957375691945977068233348457101140604965096136038290169234479025331166750651613415813191910177006178700893788510405329527124734878508989114025246913841533971902026295953633583655006131203138694838550907409975779332595974422684094846543802419736107522615830668235273614391356753374366709778857954423384118892534431049627621512803803340746058005945315052911221319885546464720288567763810309065603776112451832093570413083574097029750934624684436769161231417539965802923803669410315765292794647419872359312268108771066101067250550226905712987945780416384910315102549706963791146198393926105350241725445284194465029220405232579217400662941736218986738435324382402517384347142862134812191979630387608449467711239113392278695737213824182106842925124712277490980400502747420572737851041845572412177498045850864069653182950607988867513937595689878753787722204571101689270935107581681231534440880617522223828529998097176912438890252383383341498135478318078546179483014905076773894696577209956993982711044575096001335740220482061360604390572024031092547269931540808346827784608732887654375892021639851445211549828963448995425352360655457469279661723971729743019475600483653822544796298136889671000880357121222981478027073984238347137804405279868511792199758695223790799388689152032620545629454113133202322005285948451469891326619267769730695655468655326741080392352786305288130120763685450012542325318298842552516244837929814724446421484052226305226924784434656743764421754391128121725665015309584988474794478243503514003433136455464980120553075633512559464488567094010471274039435207800114726405732140671100049113128847841189000771319412574515336195949469515355764872895061108347233901942061096727472231770016533328577016907502946150227093947345813151236760071576206569761709683491871981044275981200088843361628088510378597811516005131570945155456387180218628816259900229519073273991579102164131771916896473328795636510541050433001318980752984399270473077455580869813792504251839535874585193701601204257942594767008090022614270516881960913003611425915689737813913093795879860569267382077748975315976837022411634866655738679833466629330261233998598881844829715458453640457876295174655745301097047086867859543465638342847715992794893579801176850392917102559614838197694951833868391730746815203430940763443569323563252069618395403657127557125206723054944745872186068326492193407103197521836861328901853174472235858366143145119347234196673664576595690807161514038718041726813487530780339533185385669400320419905243353344609706147457642813995498590298102861255204586513162803836352398835956968424463651813561202362292272161255260425401570457044421201005250101631996962525724967034449057294229074694443570287594971734462131735620673797787633536937508425909440331739446018689890484822607508403033507240316840190406635318761043201807171919013425024060303178557094209479495219917857619378655427460286327494066524248825981390432125090906314276984428811314260055350738308350953344741568767624415733871404420813364446942701348307492727034729788234574870864992085914361621822492040044527332065960238453733636073889503314528539611065127556767323915047532607258005810062319587565158233037111451914805297118855643108428207822246980191970228048550966289746238332716132166899812099547073467184963163740932627313495662309390835890297680089985474218604053121840943104797339706030848032373762296911719343599642180901058737661733389870647433379148239180788926632518128620538702667084160104009099682957166140955186582671054179979468599533719243751309932020572668715243282356362971517487043939390344086325352824790738179120726559654649072642315166140861220176464137214907465454230503334310199775161849394538979384020237593702678158052328520755146716774888537068128471097416871939446310847597190663790090563918240473864037912177839767479435387909985719325351224127496954206744995103716254161032412059692201327430499223523473082147030174751760445273895570091463068336255811567856972374629654226628381131193974022986932073536038210441046372367488572037633460683571785917371542233671384186873592705599059146340904653241646870775637616174246272602347206165452864387704409393407045800229619808145951042365112155033243410845462716469526328230740606176548009361482193802833340568371591134639026232111072408855296342542251248203464641684810244440367308986171419526913231470899832903604573853263644953764571712651715454267427010508924910914127548689315533724057247614882311745429079764179704106666730676958417955691976005247913694826260132092313155142406518196340694635053830295478511066377269447132721620263589076070800296038193135227569878775096310382357932860347640502604360550376375984866820967684727800225323621362810743981507729449568062267629071525004842121540898571258876326679393323249085086960858160826964412442275154687137456744686712826423798345432017455717582770173830758685594076564276641622721552377823153644619728558626116111771660900550976131996941066093680378159870400270623767306318318229108946946553387310987569344578175498233823164638739588549579934401840597171094975777887658980832749105496198682455775521493638611727166213198492054481908632386042261628453397327632697624124187535969706739426931016584150858300788260492194903911762618441474380892065803580510327532021460207697283676799822179927328781051975635297747252484863992364568071113023671122945868614534673683412213579379970922636393313480812045732475974691108725585237457325856729833394363112846436794784066784544781041765864621662674423308304880897489281600688230989155536105649040297499453967920190465120667509119263495205815842507023588871120598627568097782553367121240887122540249021855176127234583140391714035347037135568584253636111179791492019898026652313429588353412115671867790750578545841215956657646887312357834282628330877529805926536899415010659241926228070525674475215228794351972894521024807784425756292947718136174693695841958549879551755693077875200193723174131082316250241901682520459257432083092890999491794906851488500635179210818205508947298226186818043384249019359591305151611969115882201477576736247918418386542933641408951390969041072792480087640219273330949695782358347737562259344445913549882519603670403907923145264627560932241297199705637283496845714803910342916629691800105841018612995262309722229731067293214228925390493676350375256728644680385263564486592507359451082132836621461594893567903899841583310218543087412197304080275416877803254683755162371843306136108718819141973722479260459722347326940000798728120822922487819996328474460200964072440126120382887993650843035158711359194165521698948300010297629430283043196879381189816891335533229453918464185692836957018367436205046585685648610539792474740500999474393445299532744187405003084754145200344845441240700235915992556172991984753328993781819361573891694664828519692655354213807433309752440742795185080385721783582630647513336975118193495595201803981001513810741723988151710508611476699922919118976501599686043935184723409140590506094992853628707599496207616558956321317811607719082950834289197119985981067633361805858284277250032446731968317771962284494498523699807921429879507733382576460836687979062155442442427571306686179849316387675067556428232362738989710566357435937774636083874395894839309464668599380220763073051569265434522438688224817727691590358361070722685002685878485380297346573328098871677697581832425469282903446182745289267473041800697822377689853934387569262169343498110384487271275760605478608781849149081738179911607321558197950523168758660108118858335905413846502927688446881268600034561402222618872464049208939338892149997693727178181282620005443064700320677220258253595129034775172014205634112393414655273624719817538259660508730878321751241056169104209089852410370096093905934287225037967318678230503218504793344695090047318084184649713519574111548035711626245895987005277867983153848444138210067578392229257611388941336067694297250480623704043876197439381002137297964252950193945321129521296002415591928094291325438990486226013477668019375071537572863260574954888353714782037434439336663072649172424177689708795813054375730512925630325297889620040453140526080851323991308046324354004624161688513337679761960805600502217385187877047614531572553938125553044046207268576729815841924355623776335704432154285424072809141348891620233136648614994495781032805579686832308549484586661267260362163749204495616102631077058560593926110382537386638253082245671211554041942922340911298763836400394427615141348256732621828451276672968249902385629021342629546497055710117049497889303351352407241349560852432758935583108757767916268994446153664991797534205478755592455240769977821624036796857655422920380018256517808333487160122509788761058603138862716803677720868571299432050435076936609597033996649037201620524386478956591143133647633911521232925026554767719624180126644085895484654997637272958858921966084902118745663026315682650261420056758413793252681752649784116679728174576132342439354861251748567550743200917351788711054158312544766264051066930155519340154602034464654856162476082059019548272208004476168625712615470843968543205551367134170346023744783957287188988661712517568271607064000691964953801047668165942157727735951207584745682558677166755472703581424888917225166570510644506845880886052293973955066134673888968376647435261419169852948002543618428590127877321366518350125817350212267446940551123256811082285012945487369996281776655166432377152151839217315990428117882095150237160846313583598692422193668441319464503714431367083649416235749058888470339339487700455493172570653778452273878587135571477520095505329852947397054676063811471091636509222138060960941847772359485726871669250356685284364546573558467235791273598826572251647667090056012968225694489706842305546747791908573515118394427868491813242543855461551463238649466796343464425844802521630648614080874039234813950347671275695369691594550983373169994554727649832077517887110245691091744472333480620205028696586032724163926730269832765485787711473588518978280802037880972969329440655138227474528646067790238489312888641412405795019486491813437473332048492241522894504575733582680917557915272143702772974505476091206826874261438723712451307844976327429832555092414687776728715262353547033959288975357767818253904881589647215952137947531286018639683045314810470750079875043502716299795274372288057120975968510491183546370023895482319751531471335884002288518834608944120053626543554578291061826262794416316827794354608275738319856081865446357560115433130152048753966577894015692076782905290365329135370359511958193033054428458870853334286272000930710770666357877113254920028245758562250084001080957833499665274874942589639418984783668345384399299379281523306821317708925479519592341425991970235495996773428797260727994388515336484340337237272769252885983618351907520531983902095721228187356611010192737514751512383577941821957344197514776083573687665000225104185588709791573244329504634414515000570686541573452019214224084149050861186926193062203118073254338436681037075492082183831236672929796036498713991774395133303347338486489761437269551041960355766872588852824936730255484640003985776889360849568388469973168414888663059928131115909879533525864410219665702055821233904379038451689557139967092072906097151344196867230589349704164472543922759524729002029505675687866343210925107993072344850127367613381794951954397812070959679430877428049732109665163330862503645608620838424255968383645133354431306590417143101307830725173425397961623291382529356235252062001987287736711588456080859027448943724138243158825295195641627205897226906879799292817279436980293021590395874849781119269739483318121425444177455416084312267565987415936303797379048427429038983397347865658801301453623745725925676674535119720450570751269181623563735596430803521848598363481955956495921731795106181380629656977460708269580691043134832639135024245517112235325905280041733868844573990771029835090262664537265021487377317340370017445237589222903004110242045426642879947682354578664013304696952344169079654525943684313592915669539630604982334764712824031407364262584767745146218127332903718770806068435985928816605425183641078845653160863671519982277364599287280004648770692857247212397506839135148975558822738449771423879763478706069700761618681330288609143885008335819619757177489332244426364023597359780836780380177352368108454028786908305252568972218928556479461879765346427467373345072130595223107452463302799938588930380500868006387886975748893125424264293183183016610438087119611524294580512453951027575447788402037948105331526156967084243592652932665698953623121638148664607191649703273069538225342988415564403819917546656329559275194586406271329881143776255719256459720983707979736093932181266967390885062731213649376968704166785938047969850494795033246428352304132258071422160117361935594777658064395939786279922420325423778963905852315561009894942692050103595793624269660048175797976929536173336369461370045503021916538067173382854241345339704482099899492132800981532770226670194922631072212112365920446842702270279713146967988584320982494040458775261889130631997019748953131966822924250915901509591662233170355645053879140904263676219528879684142939201521104466751069234705117383764194684960045181913984000512733264649332713735209617259480180563735628992692445425151957678192694351547935955142144247178691488385614656605509546553570745758302889485644600380417667356112385565116237914439444373263757357015727974972278443872311871173859426926577683403141795042013364328919723406945423872470929699889970863739519090287186742759511744248048597513303199228087123371676487141751580009739737205170276428715764464331778035190012971810288286028230221708930168555988118626802614386170120083556329444650906135841793454172860951923135235836727689262419344710234901800550793293109924400849298427973925617452810622347237767336967789525544130709027746787405329049578712529561080113845898221304596704367863967373530474324260267798413759220313452874424584091941091506559321492798161573411790434047669956534622481121022450421867561518517089171713032334750243566672373127534339654450979178398201290930150943998667646628049611922332651220960473722076348531244104485997517621102096971150087977363431067621075752004018924706620376726135806022068652889215004347804577512627322672452067522759979742203188749844141257573666745585313586860135396817129836014741505598599297941640337632365568379752475101516657440321671435551560429617305368070225151246993977306202099444615006188102798867244318220366584820510517163012001194093547137764611078661622728427254741705358967288030079053060560248121740054752152722812965872802419845405339250289809948677402201350431766490598440215841579715787743389180401713298144720471006372837120303358720974566307669183390385213774740769315634915042743406026255395351382351288986468511351919254822376489438157982804409938285349852955817030023832191536657310551375671947518190991513847664113631297859363231006744567970850794051477070221888225707461434470400431567281408067759916764939242217699136357275571579516690149857277326943427856003689131680636496088862838508166056675990599975713877214340836006642337953419463910549930967172269824700981002168344432423458983300989316956311677470658165236179193855174273207828420627192406282352172036601101303831878048406236326330486596532503899168127335261237130781394458691712295790291730207914140592726866252939996567273524764114639844488465029577108086109251912047649071000009430065027161034515964399872776478135714675827986915365407761947326737814160742426640372995829009946371822459380801791448810108412013209816997789039779761276359948296180348881030011178188832200568310706620989594128540650022969184805377277259287699136354326115732595056229610305517940261142447054358139122740226029536656952850201747913878430481965198772774905955733037731324452241233516481200462613206963025353611049529636464309890366697420933350482319913385042679910324366806074282962897762082653899600642486649687740472458281898380218660128342225296808553073186535250849884331597346143383412615740172191953688530865812878619610225785641635394576737023284286726785710108549409298209478514188788141252499488112965335778274802422359833011089843107761466548358296131992073117169570494867700179703034032774424101463307528769795802535196980332555987470481271713540654341647010407107701677255598697217904092587564669178994269369455434751787694435473113296188674512101372337097096624904674818429755900602407219596933785745089772719492505476531721037809217154345165751866706104514939826041102564129602547156510745847054472198797136446229809856137947352971842933045613074089903919293868463820058768625538911828348961598345993646587988378796721859267307633844465409997381445116509832599696615423888892788034064170977590674113073644124209633206693588690049636466142927908716725926459515261372606693376239507214193181066952389979723483839867576554402154459098681466120453177297924858435579735462421786733914715492567412235808624232021076158074606966661804536655663455949284014684655130172710726150947139456334873225031975349388722854969291984231598359699080577736311295246769863807628788156698124767277601743775309251916214376752516922116855305834881303155935963798274322033188391426888840102294763928239510992157023656677666727694887009127055348970193402779095855271994700006286136649868061565750736588573725397787543800408126136913158153280528164921840578497984524184557997485103551703893218097636301120811684190124948098306313766880573796503980443392183769858751613474891504803006488522918246561149703933656282441939508371543028203994028753258950707385444926562459078277907821503528493594200851995936798170080015098517812501237675998480357964817674446140117561802533956354146282711790252273871588341362305109800768011775139810497694151676213252183119514877998646010937961087387522269510497402883758723149118753489943190732705076229440633658147405781446323122311721076794820376294686340486328279999989179488218679465989282503393063994377270463827166987607688947799240067008032296330389586270666737398315237912337530675849808788772281883492348322655141712761177160811750300735556809620209580139797704527415308204024403696654549920862033135081936824841065413203573898824350207023077775704955118385539720984005059051392751194983255062567242301917860757320946095346734124700715015617530977496037380149996094607509546161425819569524931664507228486933629657697701370128637286093361574265696930455785112506124381313575831761524075908169683428986710952219968700082282786756631749234749040369540787896743330261623320576577276631783002828966163198248174973438895369449723804860399621592896035527216818136472630916214443603633281291140442390076730765524527249065395636502961913834730125011386520544599223443539708779881430553147776446653084911009150728954881053902140377999928640117332784908744636064149312456446060820964095732724537914920059735869301960618079330238836974828620378941684329112605471177046462317182793010710955067132813083347800343905181315992144067157166249838451295586806380947591316562029139071728312959698699429279380173119873202614242711424320029038506300907542720544308433512030520709533428484003161639491607281324108324010203610638242820405061451363622446675077655357860687530295203047777188171172742329280504573973733671636771884432121487531335763144847689310737105267294354120746532398729396683890992990227496987149439154383223501917005814485187974145985170882460560410480475219653118033031201660972122372161309846052031687754815807370077627205727786606456360158051119687132718950609126736131687570429395016844952612555249718324659259110843628037846512361306512080349899809513025172922425705108088387576872080913016378156430036997849487314648777021164325888126419352568891460098574484503669086171090966897940345745595004973229766126831140030167914915203595759511393989241496802768974646703310062879274127411171041265426743519096615636721932434440271412142888122871561815443539093953655793704820224278304668168699698334561566758683726816800243684816292429544324268582119377667789592265597374001531576261778831025051680260055925604033079433305455462725000284197701740714523358442757932106427357498739004882935899055121427246464471750567975986568670383107671048803921259867649663522758810301664486982520918270585360511386965572308635674512462029193154808314793002992090713280220111298701032386991295976900871648564816146332112472690751595609261685970352250825822620761834921969960903044236228809435378106488219497023544479237542728232556129153063514817199272565190248834595529683933124313144805306107161650096181621589987897670605893402803148967049596375293411209741536980323992586310576679883720906879183580930692083640190482734990633054668318322030023082199194541831008752026333294332122690842129891277064484568727190761202853189367154483518386121757724833757976198136854535860977262780522872955113352250361356794220447963919733310071818757367739973832963688043451186051945682864640045229570649102601856950835467144959907341967986212761110906549915760630547958948552961292067462997622529160581807768456929466381925329155526399260300216694418691410178366262594708187361499808876948294512536107261901495334947584556293588405436553402004896375811854484941670647037355882639260291061809935504513598400778697445830493523512078100195191859309121889916833430007593373290866865585002316983857712716087492244352157919081821280863596731843345727847395361143132585501440999279885358012271977491355029261670481523827366959446747645872016416082531157402333408960421148919381316581002813980325622634174561932771587508220016481365815854006001132892659482178453705147300833400029770467678906226451943518105783472910589373064641537780652593243511963598645587234096146151228029139971949698226003842139308749661492047065224241355191745856585945853575971565636014357162874173564723052385475412851221202496160692201727083912514959725525497868523982262448631417952269472949548195932188616442069369449547940156269463863513596075542265028566911236861317723454889399434389591377949372608445666528356268272795779494774150113409532337076829518456349953622109168239720538341315728519244776643267952802437533973551200983930442320844626785455107601717704678696506923043826580351262446348555921762975365459104400103930399538764732615571865818418710252833147849970178236325825180977174475401286118258680182167799233555192246830715540738360724915596227029270961660754266326859471502843072892625806817807436493714384043587983659083757126983667516615673338905209870141635539113957297741672961151311272519515222642647366845757401509097320857046889572078435102660728225382309709400395981187246098947941928809931309226578578227215847783460178803837479188183481357392333940284789665493940705539434857951168786930549380639925465677348700989170086635022591240683250648520058933544626627025287899208966304789352283712416516122644232246734256045116090824031196428018499460304285393744236035556377726554111850954558560667279499254236516905501411002028530160325132245281376013374004078521323632064477194397728240582907043972523743399063613372166626177270058837255253472236525645624797165345102100943656502959827705177046826835433769411200834031823592417655534174749061660311078706137464721933554215573891864800681122876222953143150386341196746348577393749998072469045684572839858395068770386569473127804930128180591402659894933482663496498372851024089512328244038342039106593217747364803889495491987031859536389711785034632851500090260378043560008704981585779030635921519128738180100730546113550848355604352115508814534391138582100272676794574508042107331630002737759027848317829086256716009393289244715773231855132828061905214018933635610394584654337548827104823586006950738446339808643732299956774347593379249766811179651740926107563095674824353688918793016079617452213001817342817842881438609179928968221616611710392655445490518891238660226202838479080860095816913696140799280264778506870245961616842769584650704274742951661867930381893393411107558383998761769383213683241741230645034999483105426332150942701979118365255846628945849431763348040590246040487728058743701905869195835728835412336736356297090839341300949402868396117826540884961715357251127210339382073674855521429030147764673155097214324803851849544447687677958336847571376027407587852830458122896891807619029299484917087285375507454221380873129055106787560984679885836542240834655404947587155083526678735495265340502041661976420844624180392096499838140464918691126840457155511091944546386728606021944289127298358256045288105751249143434156325408736597733954994979531277974607658805056130308477402747837225541686923764211186760847831641164985762386331870181376370375858616182361501788162369444371623628746868550774310339443205223042569160118921179479743000344336734297068087496206802500240777987951005355039996432656462712974691057537327099111813591005601438973658997596319368307890203534108876410021771629703598604712212963234177772937386830959626665925512351031941505685505117120573923924637365524157408953607251207385386116192433193999272737569287306042958193585745004804165887102095804236396699656636702145028097480038545986355251066791410299769842596599713343978995453783344828701989192386487496911785992075924891381217313974714264699275633185060963884085583994447548042623369904474881840738480053763020693200976068769122846956257358186546282256161995170309342610800917012713481460166341995141288771603812265642996693166687785463632761049560640166678170959362367150401679895072381696262342156577955495110790038281670076246182842067429971174970218682431401157635387650306422167814046032431758945829607112891554456181630193135136807900699754329863299697416617713824766564760059429001827657566712789817497307560547384610251006128559066735674094054827998686437814109677037347791360408534303366322612168687150916954592709699105298575226492702233698148320535663426147051985804617169490928203046749948811785092164186183698956090306253028058638171433618018650160512441449022266645316242600266287143454469037270379315159983938132741466369951700136163935955407993412583236809152606892194948703596338950074868907863907898682830148088242118783247042442486939518412832189347783224508151102322488045585234887393426927103016511323882199190616771561300642785341951144340097367473804497286206483572329276680326402631942035453982868253774481267710940033551569894352482666565739901829246686712125305280152162313186595292836454392876275640369292761527135387620164533162609858391997726290041942479519303514468855182918380353648938353520340437308000700062318345853865890696473450345606175916630400387130052089436206199416520375101864374139015767237251942127672353420148845358785236503498181736809288556917791942574370895112911282297322248270712241753383893153331511723421378177590576971429360379382724851997809821119207012413551085733224857918195157598082354854224782111639655607335909452004684173189306627393131045866762256134411081890021421552069061776790342351687234238905544325444724155562389843592052286819639224521013923508823468968864620056586321818575647191770654166903123022527496548542664535182764655575519273912213014145405173085464625587584892480373228757288103762839063685185237226516987228018021054050593154780640069128357167979911726785853630827079246045063244761381484210198898214513342624456812709541781316095500133332532543885084730501825192686449818069389837834473558656843010260395589185665332760345350841822890169830729661740794150977937126686070768576834565288637472210811085563794307528058164336988318884994210466588058417470115320991163530908454909598428866676992108285086203492534839037930811012249094986107663658678644913658466978910477986916098389954944966293427692499075390125847768568776896261479173530230571846294088512770216395379921350324897969610000999732657784496706729564407257781730094872253807098717821192416577417330504625082417969260723547333940016736379705435671023169454308288181056486188818841389055700923465980470593135272360141122006252454477650477027277906889354816372917641003590687777013969433692741002428074177598913470245987831427460941694436812632372810718372157540672794049288142262943171744350055253601685464388446783584686595298844509006743598436280030691511193280318030325146780278909996849489985008419169725859815186842444814785257023018774999891619971766209934735243563406069133992346660042213064025155541904062940319108195872552772828034253510578844527123672892752909456041000752907978161393838635198838595904350735836511765616910776321609583672016007635254505153381192718028653461234507441841467164514783764194099675961165189973917140905633351572147670358605840643112001424837105142212505182559727341252701183000338705972158799575175612182726812409229637289223844879228014571244476676380248436944051410883469627735482833379895356451073083206886506911558961689743544283808534802013535601566799328865506022903151548688498674052688271281485437240628051886111429359223803910885701527353290632216551990454436340746465751117914655694847392605287326984421195375033418471010158816665414338653217713879738368861001024603812444111859757045055641968947997551255244701889597019815833879359359194562872796939761596894305750277851777151334662957554144621205233935382937204750818605380717076771428516676272515489973543193188371352570148709023835336328428266627316965728194356248944892407849418745677909969299312436460823416389608267689171929200009853819891050697852393664749579092045629055909703025945770479746299356638075861082492874590818184918012191969415595070997817775129155183552692013270368996776902579508295608294776455556737879005811397271504797415709929602846162304403716164883223972564879361918955097649467784401233208803347889904674334519603248858310291345043726478593220520778588071338509265186970131078812470576648929198464819350339115979595394405121229482449936367886727350645884686598770452609975917080025555396202956327606915213058571152679210745234158154267704494194864188841951125520967379361642680910674944360411237298420833209983614664938905535916874404620656306094445768279864129881466388649983009616832538843879383619626718596163758342352288802579468887984035299670144045733505714396710756459429108384245865736704806386354031440709297005171743251450451079014446020840303443353853301070818536404513532322339842309884092340084688530444701468490080508829815409477498584311532220145459957206150929210177048432936147756746188617078507163944191256353269150309632567602108795884974588400185549673998955639494936529070151271781368532082343218448489163919946200920438143205602906178522810479653618839106336800434939445658670996468396544033890595461838279430629174736315963725601511890222285786121503088601238358483523792934083145930617807684736650679359062551737136151761231318798330400921971047503341330824068253418712445478160633037548220291588282105383007046942693216593215757750775060258962074182862547743977937535631884413349184883299392626535271015214986253634536492493380919941352258565667602836268144484949798017196811416504055079067090079364150094521996560149613391412215505429871462167628248587287031794297596722754677003678507704876760261882572165798175981913405922476131542230532676082651394029157884705585643750598258071914437242692695096477543368953175076706095970760494135885935986650181553781470694157790320446705730773141729832362206430044902776498844194722895313009983235151236877189473239229626167136574074712074491479649945169893547207783032021466725467602315925035318712119488203672638416461139399164668856428418857289235856375107451906239827655050707477200627214108435625551130503632672630127254096552329742517818006473714609194757918692530262628540481358229856394254723825353017201273504500745364591627228429794731343725212004620243904337829537503924151125523173145988319591829849213061566441921494680637081988985902425442207014792106538812541801428327528584029620633702894621436828172245175719159593460912992494769080579086924439207802391262374351206280567677830033170284619065267480860559203343271191781501817586897364063451950033586908458354097479101099174992717770049400864421148268596199006156724290388118137009201266345750262726986051198714917417701469942461191962132854222432171506454059737092915560498811383444397602846156473749532761945533929452476902397056784094760196621562596907322618768529702197355520282244994703865072473985574711839653189532310236054378697948995841919323348902418617960601293217126656213010809918122358905731520867480016765585080525474650849038124805267113829788197792138173866869867932680149642872461814585942543943691133779189520264639394278659437885524507363159445442212774561615930430851345470092270241063740417992679432737312746688121207358733786489486748624879878095036494729584839930684280804661760100348788724009328565584090003679382988391283697975634126084829363184806472027287842985464980565556212861934143347948908522220912537502438603479189487730911641755609503897274334482547249600625139181230511196124592321393095945793007337981955983671049912477744122265162035975020128097424064141312592737843015259571278344864324210032165042322248621620289740516910302009770229099093604571361870927316238533859200692251559352017012265707009265841749689000897701621730265716080396068477773585293712821744110395280384864802419350574209625903998411400790163821471557006702998065485228780752525348862729746128468986263208820646291169785035475325952190814627524427703345185029327588601974119370793942596899349923255482701213510307248272113820544570758367023502158514224384112716903054001261903611455080254589599486898606930853873649278632810038419309511914092360816667989721861637600066981996579770010243771555974062834642016437450263558573408841231649373909470597476940464348566498925315626982773504679474386890797545960939083443144570600425960370096010192673445824766953449485332777994770439452278077393664978822547770339039724705501503786525838647341341232473762722124131359535821026038067839600708370951400930659521920217349650797384744504450641227076814029822486813906929129109828248934542495138338365782331159884390278765690708428664742111651838406905282710097993931903978177947891986398896044465875614008993477711744719480647107798798630968833897575785167845555707486398629170045498805661865918573095125721598670732671286790782362100846087912421578978709684326062293968051150452358855582525983360363712034967999597350079859544745044775644093812628833745463348458516386895894156247702569430124947808869344651591167339359209510359066620156598184858208762960667966261602376674356754289605187629357523862888393539216166419148252456388312662815496542951329500330878929029971338059375050385721734490328399390674229721071582224975873258171811208319967061759501808706983977104816310181181386577946950471322065722529153516096424019128419622919380487944242371466408968940394683483446433002311941552951380532098827667723603638625262979646078685677638775472859488690053804689216703151998398644533919161498044448040586201060313370176663542010366082264299383956297372640861521946854641889603509956066999571156210055859086999312245773920355432646448997469551561644681738176186680750481926379951996119874031858571548202770546931349638947281844184882490336792639684925873836298705137054021915410017270694062276624782589279180782170352332746209707189167548072702409023862622627417439873195234204820415263393762082771429627830015546960702682523778754493918201113555740607059812959022075600277571056464119435990064260078810575641810247072873789224704483353010814135083619636514921608094289545359459639034559389637963746879274461997657572963924064110139232715492802713981401841158237014738973241279773414368924523351287115427701448371745203549422244071361701373544499031005246986832098400669049655541243835350930738797299428482522319668631790759391497784604288454093471155406879500159927546884594923273323012935430202782811927786106446541861939453605517944887488244692753937634447342109574649034629610583802686705596413229866126023995462601070604162374819785182606580391799948328475963168669995255168673177805838440257530136647830293266882269293193284487099227975400136657928088424594417031058044884713639478796319722299813670172898573222857441283442382586012490300337450123829231669838700895236623644193281560497635491260036789891579922062424902502784288536251217713170500115913744715229164281225316233041682049774658266783282997305515489381115221676048745723292269517124765796270286584589668320574127170102107584413333006260390395856240490383809147154801143894565544513388480771106354391001390648659363308205810144300184859562372435845807156918986140208395234677588547105545526032268283066687776509655025016060480703704630475734144151089038236349678557724113879381201231825634755389341985595012414348393347477460495720067710850264576473285382393635496227131737990374206864703884721197061977168072579864227135483982596141376671053793444137590797531660869788627780271806875684497956809625301237106030574650835973601439619259984666838793647880736604309001004378185399401957512267981601203059536373087117389822066934760821170332644052121049734891449793240361449337862575779285755022657991454690433889137283194361427416038465041038555385297228671114688309320123333620052603022944642718276523369878703623508966675796235480884532902307871714308231299180366580706785681994978975932264520833469531209696695761441260629291169914063682671307587429172924750707914186238044317992730697535604455417593453918945635058174592508347053306693181916158972777780106233519696219209169779584566622374208811283526200898776409562339671102913249403320767538989742952908850467346241178915525424199890901302209827701401767933914907843915363056206761873520040261239579320472714162649826447310869848601399971610091201919522855230177490590643771067489518423421489717720196167182007608726232405312046904938610357908326100284423276893701973396910326756669052461990486184591529858973368177061502971962576690390869605175706560368320872145755179112083654538386262982843017156507080006504893794437410062724166420731889001235872884135510348042805640728791653172405666274903952025069916796426060806907060093949629739562455085227821830402221605095671917149382041206853160754754013564479665169588724893969769653242420451257357208209096440121499307900476271905376651284369126167332415775841830446702177540858654645817320877992652409844619774096451176659644011329459849974829449944534072725313665404710171905617015351525164909620524350492402750266746909857245533947556862052664341724279853254965500818257654233988257678183873581425394881804698931697953695265793793269864473377666538622953688447763386508689025830210793664231355713316751626824171716734689326579709158195108716968078803692786556128501349907882261705911301995457826385521836043251451949092744788560049252874125278764872554882361030416186975743313257921162755669158871563319507812866555761626156593818372501974694901252658940243318928051052949154339510326929753377878710399638956518645657902086059882550144901077926228641682794764098043237011373074117884312363476412212947269835667631634313954719728320706501017901449976679433181812544838136978240907846420018978181053743219418018810421537909542373803500945581026707049936683380867214405912630530657815099400938067490833081485015690857789148167374764267240886768789031325585817381606286463537481588424031685557108555172432463523629692991923172831496261831807268483201183991984103580688248551100593016668709640403010666446439591090846644141780896991992342593022670027969150031814007013088723429433895163935700149250828903899172594062703402740121634728324070225322424171448044086094855955654788892012770098899332839210548352918121263905182752743897409474485181554897873612331191698637745072681125665195529041490062951564756380867500442984106837881346025444061955911159326064576163600978034793063245112440821804893014635383631405593958618495778211351369817834000553890739690617339316809102443170732010479783260836617319515514566564553630483358636169778112880005935033068867376587389039120639232096640034354159724458915673495063328164981883586482597619664077129111228211739205962037714373603036286917157826307069956719141796373599477421381841951409948768022906398624418953843397518579219759492585186872315242725768284194762261904806756574864172948959896896548951305201372513494783731577996110768258147758977154280397299395076805918861070638160579387811876005188314352168903941950080638230783878061649286874788337843184238148025886472626808443858430053167901575899736947691153390788611916478401329423877158607237789675066989822723978230688603795464559885176696374901987047989206540902051803157962687357375480283205856033419086027093622282175533136886948821052624712448580440655221513757160491591842412215072291363734969511075234369299132079405087824499712121753224906735659679503790840656889625238925669893514778688649539437108954844467239969261236298966497416903192211275057106503329281607042753241838936960919145367076020414553264795012831632788586064137163150809488558470662472542976468343036390353262543364977506355302883262707341136171012090895735342397918679989549506972779482253164244968442314438115780147271259072316668466880642328881499878756299221274990523267571969914581019411608987849595086033130062817056733373249901122035969214453059209824081333237949475697698007293230257739422745442883712148847549273836943113453786053992443410191981612106199266338165922749983164795283295409847273982950577817224503099899006286606177544686185671579530610007163496509929576183330954071902691629314094669848182470243283863021104601269651237058489123184744617786092479679116793338840299050948313190004399845143787346541470283545988718769087832718952189806360303332545659338030270510763294689882436143942751226307746391934980824812877972811060491457350995628779526712772527345428299202414611813461980331135854347191251948464074643602995330182150850131628599343289191476607385527744330780365219604487694810944277759720738632809180819375373494708374756740263702376038632720783163006581897811199619592964626083205645576992530808897341470876847587911191042794778918755859757381826304119521051827016607798817349978801084836752950167113275279141860260058388038242820629470617267038667805479797026112343482405923066600618037717179954634377587525561322853281626918449227219741549565741185102046706831295029651097135442564834239599459663916854282904558557292692177214128267821995313024058374784722927412855105987927784535441668807635386211377284862996249070809060636173691935161561614768089859937806040658793948639186965501454152557792973868912357067094367979814492655272236026357004678111429890802933026423388318028569894386387943599207931841856406333715818046707656279205620478941522438689356638248379745205285871891113931823780029134545217358461575177050713637892368145517510222863287866037586481724166883381870671105414995652750616618453037762317515793133853848670068010537423243682868519152693392438071126013812405378535193553518532236543992099060407562956559322065915945272772262764189639138890328565852054587508317506136304826340049020239285121328881090427404103279291596563213070853250509433070385204637320373626166195775465622399694574251403112761728835750088986103945284170864333493120432693604406691826760895534837685138827085013861976792320442847194382358642844287328586355040636077347424144235342301869348886469835726728070213380329002182330192862873367475932383417875594787279761320069811499503470721518056765001736401635992998557541708473824467312305748473164462773216353160512969685691319152261853034743469616819850620831298565805517492379700320519730702602207108676933192330191266752812393151442485899766068966586045520623185284435178378408332171556099297574021231064029925454699168548181776742075989841392443453731031604415314262561945012384197579947967432839371462374151811972174130413300071789844414702842739072406311108948900624823746233253639236951650327748172426004253901032564281263655559446712613720905174946232123392499586945000991036434821841181926747735730900068758938265884653258887260305474075315670417275559920115622254255315012265666427467947970134342593464260241864186930441195564177519110203689918553936876948029164072447759557672136307701283027805716061733070619095411269413043096661264991810224948035433433527515521410411447161251812130013900921231156835322611567008925539379432026782528964987463097591227210746759027695358504186318818387367529567120045939143274068362306660384015855492449851540795234303168176812038657765098594628730925707213399580800900393214062880846666428713544488802488650502238327395727869242750593074342644121344243329268758700305368776753218419034722209696074220435420747293199219527013700120094286541903269570460743800496445008952529014296742917386048030705211018662009704564945764216730726559528198914433328742175499668230561248009213580300722158054421980355247574324834319347657375001284704879168424177755666062561546824577430585454162578404203169575812590685044764101546610863586635708066936607303267783360120615723056686722634815602484933884982826315033363957808967695218461944379086416290525281258757318911705016292894003646158130104581666705304954458011927894197393577229719222081000706809993803864290602248032445708466496883674318324771723635293119334206676538546501261330534816568367185315505229121246846726324309338482347992159282292607158037199773702940238279315688111386339935226839097978201918697945417469654669951470923679999896624788760717573764516879530265230922988222268830444886534437705927127274605141314407011438412307020484907942673772512905252580989204641652218032394095599986216399311297866766032208779713464921117418001442124229436936293082868688541611932936463222709796531982096872371149487872399588760970343521338109339761198244262570853263593259702031963394117747562065022341753621164553121430646117690298593752158943076071910790763267430715095590749273921249178132945729806021132222485674063006921187101719550714492523159884911676459603894898472130371601518398368471625637199213383563199412304642930314942597047244761760418196450527818724068655122839347997381523288279800285173205080517613621102139733381424038348300974119707352731325234649970432476419769657734644743846123809602963419188137426682351421100730643194800936494613000385664845345306483000309782337256105659009112062785990330756007615921911044548769244481788112791037266542256277642187457356240622905892708560371922048138740268771254314154007391848024130615026931219501038833007807648023343961056134495267111073252986953899812239434066668394226204098596005397903229599356671563125865691387903731698636577920437021892334637390364736449325527837723593254888812641182663802101665060566427336404045233232898498540512439448632608303860809773963381738404463437225578027279859099998022276573202683208821066507983990689999684108429194062877653886532398698658594951903111132575331305512902987344363441627671149230384401974377293913864870804712510289099865966747304662182030574812617307427888740058995413406955286940907270940311997860622587359658595124541017177235938054247808816290286637000192865482096829646248525578068053015064088411475003293585355985538385728025916142932019585331101311213554753074613552496284234826393038077668834041706688975908044371216377577510704532664069527197431631409030598455538015791198749253581480679033392400239663218198831090370384411651895684606971648452105853974348301217032717619235211859023024282950673153960939820032577278338531102684083814171834575932759338306116065806787032080859207698522389332380747428732692536603946076212370624438469384820592878892530012985423111652951336113614778066362257320496022015205477511412265727508629995791756284388691292817624738067070681029339780136925519230255775995640444229283499460490183648950757976653785324628902239681454235316352076803565222178909934415142117959783491816725850624072866736460141064756608456591515377311010925822074011996482723910582539330125918175315008310541833049895937214136057231103305756007898412499029737347477077091589164528140135282671174253993091405196507603250931259228350244502051592413576303521498825240700118423171194757050568814544213733211486311255190058549811676835663748242872280155933920853855369974111721206139131992810555273958798024694972339318115180015777823639892234955765855413492745910861092551250695682870118228236695996067626154508522027109034836054355546525052527626600641178908164237529201695114338007579847943371251470401499995463296376194021633102802117702101186429220565939891997226575986501309148124265171967021815468049916125881270538529988963473804676188783711077392914842128593902219264543661045796409268783238555691780926696265809137114324839997939330477721465835607175775277162880689291720086392901069789393677738976124943017657133038013754444036641676801422993451152678455832224206925391318825490108838381778242309993450026358737685081563626099458035738830924377117738792215760625613603671365323073501711954736188319395936386969308961451329227601834243526235022165991875599800064944901976638836276899355457917534984693310032910165668929900513558646000259191895005095811069661805496716110129124879428784463150320380024403146493425231600250081594133881289826174194331497001616620425776773367018836771712310433210260911159146579626012676830163818310827580350485864519196264351998731189621416722394258448143047189538907331295455313148032691274849046294142641992916103523186990393044676408784644231000133489727797805712176233923755680867880018495588454715448008316725451220942900081462940605754323120774018248260895890547524099674912700183605283911546333658561892337287237787324878436047307872378373691229747110648549587999821986996751214858443339102989134040925360603378161931971145056046025055977736922090662122901981038946324899736616244668770669534060553117215738011389813988802810428959945200455637240081343918864478489501872410481712727777701945784890722861624199852400869528575216636314598137777167300484611942269782848707723238664826832654560002196281181073278538899014539169546533086406676754882700246255575291138568392219386434913615343400141969458255211413499525474242870883911272706270003918616821020612331419250319929785871325716781680976210851391796581244350502774705134627517074582728643811117038820731072952703757466743604716609190564505222577636878384291282854909451266114997539139608496849597996760508905973293219927254187315064625310375992945030701363552359562605365146822171313974925755400519141288801624320075512436722570208544586774946478345027944679106919148124736399282401896117947268178863252229820437059468007924369412842877284758172545846282691659119073665648355179776546679312836521125523393338333408363452738047255467754973257203469693709859687403697952279808382547520334264728038653433162827838065691573059798239862653568675489314179295171758071400205264957488021741020001584528248806789019877808895654658518352603109881499384771956018207860723519551153570689652597878331180127098012869985442117880183576499241976173265179139009562377648848400672898864141508072993883770821402793567545012228891043855609449635796971570957228125268726461974433924148558167681257255802582860862999662717638438201012667195707411470125711506719738769826269630186376703560967182135568817576244111723912582171997175068277854290322291411329468257654733597031159926811457517536093711733808652728245630325266530139347091853826852484690701474949622961679308623970132438717247819735934900168928982146087786953028514408936892183134053564618161366744654590909767779436477366345233866349862700799203105260666674965072383707974093408544035152649054883322463014171504687394738109084466056078351192391723772496494076668195411894629692970952916869638645114500025394258057696389396658567523498616476955856786628160801504959720013790022367952824856731823172999641368726203024956794202597308364551709668617135695623552610841457109035050099844365611103632653949966262579550604322088981359697319876645581924730509759787494004922057814795025788389070772617251717107803108778796094797975328715169344340882081330629211214823617811285346208157945771237607024376546064174707465762051418071377407423598090047354745089407241972128974570443343238904912111172311232419466774000840874824627881143210821233947664033933388454362186214013840146312606676694797470862051863253028112124068776049320653424913357753894473916476413658213447423568207758650147131005156276429942342423389700661980474955740418838513886692881564479291034146604574920035788044905726262186943246448410837216066220873692065432915842438417272512755432921262214707235415286868066740248405007460957065738845184550157822135124268724903997997393028522345347021083706688445979591458519708298736496602993147062838109078981275974007733231400291682022323769831777616460293725068646457456137494466694149854916802412262421697519914589339438359442082561390960696679742831895585686880388845382150093275915284520490045664805645207489718109672429045916906084583802633414180611932327235960951450677138044860370212638826360965345573204380814001619181085813509664668678402562825261673210018542470130101905065241122583288916517340230074697099276473076882520123992491073694462941249304797737119807876655563960712432629937834100006480389997154214881624365109889156408813196747605071152786226162059845501410794920201307631715213852939765229219763846937291744970221271300943799970781814337483154866713051208108298334955196688531478014919736795907083122379353348153382584142240413062641084811971850870304166235792946924379514974235986762305633190746855421126152616246501937572572844548473255931132356912802831242266654928933031794856540591861159798560742579572841181190802291023277147331363424875928499291821444734335257740405315551480212356452228748458014524923838791675114202507529108327375453782781256707807631098062486468671089606293636289802136364192052227432612616504354902689977972087497187520038549310478465722726678402800452636475754416274879432028217469213694697795902231322429523360071087650245447917986332978739145351568995994383990282838896619297426412640548475173057069577238795078066122618842607211581519467844694872098539772218773610092716292325787843175686170527175043857456056402236503473981911592139130559756129344429373442191455930812941763798789226263544415840164865012841734781147638109802350058479630425530349962622078899461093796444988272023838958055875215574996598426637314326997218041832870010213584728292164269165394893082925841055419553780003494813171472863216910311310053529427000763657595524117898469774955243614919173021680794241944792752850757490708675639717492909270801996910703816666333252078871889110225011370649931001311882531502052086656683976971635686932751023584127852062032789043945406342992780587120310130121906515377562047032676344502960969683836678232654944854749185112477477505059359170711307068420594455532825139900381478516554061548107417100977276374065476847388151226512282840492844679355376980498999903581893539220459165939974399266598970304230223114989432238281379261253137616076298763588296432168731665436569786649172489403079334637478445412863899392147496791316543508706888238597413713402697347442686979945281622674108160747868494849569238862628333335600870252547065923511773198994933134312049804217249371283976011294499989485348767159575450449549240028989955439897040427854659691262680090976724621370749670627570708111839483093133893817829031592114796958669192443033420345373183236456698274626255587102376814492886613325769375079706549795603919516748381695747972076450870239590525354872509640107073477028225522907315348160699908754266619334569762165480272196575966093303377889648150264152222754891208827337919721397727792281276278512775924639331210635824389342209145747096771949102301822585658202154426193038945563170770966830574792889801885144730440273946915583864544802808751147235631572620320412444401252452598391638703125849947422751671364500122769563133090031502975918191460789686834104199729025590063850491700778743162041946261178407545379175518886547365652192352120826620496270992025847726374745576598297870790272137816997866889115137224449810763000958327966509075856053250396042674212846403937640595777891218711302104708360017611250627883732294920861484920971294021528827395424565928025960396917083637749021195160332782145909875483880169898904629199655084187146173173058117402566313977774389888531593348258295083345330128758044552491541846818238623919035247169564636959301741315211094759532198950554658495678836538189030663990203413997372649556614834470626832778527180229770414242951401436505679805286460098520053731848455634749750719642037872199347462989953279876213067883667674775674373615814626987113922041529688821376754667607047251470955640873824412984299471430265088516674624899865273650064622178575854358011000330592142284833411927842274325751585553876929838495552223692260401082994605442239596880041021501991837210414252927636239506331825911346894460604877253419817983308487499536387725278240588244849554126007438952431297765060255633738503015019836074007260219540596231818517809990258408416848612776675643397790843325180266586059799695023519008066063968414832167387532721466326208689748717853500485222333699118102936594281817382239333674615846681116372255847405248042891741294511439728113582233610397970677449049981760715247293404301396792745638177376563992692154255735803647098491093431954018048176290715263338971650478332663491276273246873207537170550653914853765738489435132791371771303221555278526106755320649696919764214801634477153157317126918684194637795403796482152900267270160023620873257325848524204060208295138268761260178482024295438231272505580871446760639965498814985295142851361732473839800416085910692162721057982461050292070867403812469888907849699256491003139602591264973278425897701943508812362737938066777659589342249427624546860132253521986160205790614521671379496696292356128371751538304614295464368860933910265159928475240437594126862197885478861884394292881604454403792379959779214175134371904646557893878536743322447469880915510984754290267780675418629452649979953373913485773807039340064140225419257172994045094918586412149078535287666146359091127996886290392523534992055859574647513968252733641063520052717236803197539884194690728326284911320106635875745416310188057431011204982107072794961991132939044256232585124056912640992273972309423319829309786216239564860282524004900369339906009651932028383032218933475038230478393557412961570821289058387249035843199327917522825559203873967040010136593091641077999528890055545155660256779352999429960699646353984296344174456927118552179312886898760004566084179492364681653116164444168693131694642830097983253171460554227094511147281749960637163181006416347713920565870066880386120144013308017082767294144026997037686128297402679923146997480028924926681891202104363947669205921211412652924646305186527675284968994388105761153737355651615393152869150603799707103582898769310205050162624196198193492723556097734876482663489245812368648984539724284024714923198612699774691771959067429946431792090784948206202864590792104760777981428704267787584247155585720456631829438614580265616462433609492691540092844888965328771782507764634921406128847966790581689044567847690870619216613225874490516890670765823464852001695330113096489806873216222105380552813798627660007457753490605587495942857928962391753380097486260954318547174926750071139126689785407032575732235599351931921696829656620299175688530614145220401958163557026591285842535325499681018939857849838050989832138715663659050817134031522398394066748708267445591213750377405225623929153709684030841783954227044539646083228614485893066771203323733894406185246585081113270091324410709403141328612104043387794322572286982819492989059727858623308752642288960239756293062961092620242487158153741775106485186885624773724989989566754597328294946652338109518524350259523858986145407138767551898776696621494353122665268505879715180435449355962578496984425876967682506773126171041768546585859155685828210408881022712209843772401245869720696113157134869108243528311384341357971501668773028280646784013267508706018762671382688763923058668509822827014621392211361006148945504513681565705878404126713963978319174612308759497245751071261061634132879297981677880956787243244500840273034788724263467631681328394809877028725918585633368557123759799344617943219925068500089550242040514846537311990107276320732661056044195543551715920712439570708755356100628131319537207550433658351436793220714326408726335779659678751204693595185754345081941310526672415090958278597363074693096236846605233567451312791102362652550806081271033125906318487491678281616979190610841430317537301278043111184349399817065405967075280116945137362845084190202473757639856906868024982569341736580705172858918883953304004996881170363120290716922523004716953358279025213849056120279213137282508135973120032601269576291636287291785513987458494961773102257743221113516632277454028638389313356406203756788330474872090616000775981759146095772091888328525385116369840975232331235319585214270703518617270765970384177590736933865656068488431705293853841330067954800422810899863254852519022774061987884227418812673895057026667013106862688338769037961015430386838792545245596476863745269553434419068503481490992192212898209514878541289091469864929946069717029186270084719157999464460097574990237928825921600797902017805175359225575303763571905206131206420873439525674906108915570990228721771642128634735392513838247125774499299715913146820185263366450772687015552931123886297977073003957907294044380477051863326116895686974273453249411556082484394133738725018108983840005192525455022724040403988240707900911411690116625414172210867222052132268099521370225103720129826698706407247108431328022844854696557489166929556972661149871130729078760550007081779825058006857078212073090382420461301003477972808426219184835033771817364885667447743880988127738169148705162132677660380138421574450463805560702840604737839699001522334884558151870995821381185569731702227507204006006309372728468492860964285942529209885814022081493236081432692469857292841990379899644225914316548346090377626910016577396467335149045328273358797332908176484758187662767235624473660257338465924627819983994450043060359954283223247150679397199307334156817021048241083266710177496755762532042717119100388141604305396946764382188095085409011621123384804400682565750121921700176954360993032707229811548042274881179002001195111671032050580708954968979119236056884075880896536578412735188946441538557868020553106695615139122653568232631434221597438746025576706643151996578200625795533865008288392737901432254375566455187053721776447995685318630364919356577987695771920399650545765367478800623267113612216078832314533392152943896022761599283540390189647386954411545221721522569084751170577078724274555951572904587377268344053816682736952952446411849138094560573886470267808532584881721914744337493727458621987429656947788750993517081520309974275662883854533437684546458150241303257158154205207317904718617962861288271143901183010095198413190105227955763404138916428700714211702613752145888563588983984193333633792874715856270810441896419494253153709651109697040115182532704808038551353854762730180237452100362559070265973028288201620553236517675545370549049359119952835468996849672883495321967357933283135042694651565568094977984138207642873725081874468832826544049324549773351856284903830334044334739544075204485052329147665694068258045961869543785711896754042944315754873192581007895539206366053129222976659974308685662194814683319388986301656780229385963491577435567665461513899175363861579087262845991728878800346691665117165830799474001852371585512348097356889391020078277025184005231937543749927867003868376541763511100752914650488853424856045973977465275735490281305567992034436725994134025881437042557380247979425886696421861743807786873670388471215123283398296271369566036511696091646240433614606577306340736409016938901726424142386950814868505037131428269737995336189292441692624285338176002003543811777598216626861854556211655652799054347013078890202155633101999245381809647839851849409117287911763758721160533784325035340648993909922605026481003528537837075152161193007030506484164801491878653090533387001898120878937266643050505529520453539229771825117764206910717822142100186884661300224610077419599869249197848694789660447780048981159857329424268352372105378012108476997465097097075839385080480552468179479159558017966402042761806647657131881320731449583842864684511405663278860711067387000351757111884832999000555550308879870399671661730684086945188123116982654977615421115126122758612610539966546948398370768265820868677716799869903495636503373136096221782566717919901962815711957802294691001558746247263859976645689295693335542326885336599928146637681211401175885210195717191384555995060274286561833930794403504019636614888982478622594857899646489190848063643554086396446853500002200518426860012052454878904143762453200112327958187260241873674948631312623180352136606164127882486124517429472634781177115530423972102404571356327486181552759706502287940128295328221512258679967889945915214826444264531509525939575437091569605843485254348153916040496798699456077316842977256165942094520295026122843119998205434843727060531115581653722828466036702482098784459156792624226608583297915490812464105398520947045493030540553515656281851747446519634602575846531858187433021445836911108295161719093850442715465809711308870270030878367653068373536405211113859565892757906727642329550435985592888209734700964432637329881587789842301028233046866780131669088648967336348332396869805688333656282473144861001623120514794741234243784210303626151837793897372376653283328934675835001152644791457854087846354657773986639123510634850060732649086079459767894826285549625380649974318036632235867507382788219412627757502339191465869908790229776384561412640897250265874998212941828163016432980922486982596984260246814602754047090822886769520265345488941851175668102364909606923414311291888581457644898783966363928072993105636940837381668733220664700342549977385848217108927678116548348051928738809691689800023043495281694870355746997552528640664853001827488013965738972446825197418211343367298744325660951432093679376121062249478883746084206696685680275579697100329244326252498499455036262896215787607253147244682886203449040029879845114699442247227077372300966693399368482714201746803195690737617915310625198322270762470909715616835269096361029401695814309764767493890146237264848725027447891252405764923279324979340583704382899914758378785832107631258106312604327164389970116385477302967273144201907044102536634031835110644027187182009816190598860849771701531060550746318044066015798695445583798840929550626191971453990796162785814684302640780191631647866542752181611861455057465701070898130356876956899840303615340021917111179214786544195930554603007025078055275812708050181679798064352400065169372595106292089985153973394171471437976459341402986091603844062854330172714517442761895995328804773025991069862063321860940020298926994813091255004152421547450993715327938736574588924724020208079615710154135217530212825386478937997091883483448477239598301729804643718173054692817465985464204345666102205291707429008910071551648476979959223720444600917198373435926596856039627343513747733824180856271911957826879288952354267524288702629541337899561965402749293277374958345378465568387281864490113041667434447026969447985037732712657810844504690002821030962230902847799438437163569454659005368573290226242295287803767494831464988384213154820230576212902054470811979747120716706084862331261140231997985296672207609162837334845349987296703294859363651284313615230905133958256908459196131220667581707757734036894316152414596886590134803410881754344953470179389761530660685531506914614579028828853632641511097112240631162753242955074827150791869856944597332680018427672655982605877806151025904017362666109981432516880747359868978018974833202012778571654296494179450852036287678974192039454811849863607818550065853314999665923905912657231192417692018676943373083872220340032539613655625111795367210952190778604006946514525936565155027919761604423968173964211593706801310571504781717987223843200321520681189757797476891902608750823454564362408939936691377632606438165548618060262832132886151991389056312306898008226454889085144832252922247371092929026631354061992952398188970494136060558929568180118996356928836495840331246503800635282766927959118362956194821250865093395976651035824057302258702138678490546236059912543701993439942148138806054285989126677468297766735278125781788981184077875896939669983326617491784548230642549910487845610823474918976252419771973855325346878941545235043690190980138934231553626534621853038327548240672403097737893048282796166805658711318451985412598388257625061350151216029910538702124034256007377759975863872925608523606925302932214833756110527144593866967262901799587545194971512909413206318827083816089348067155539191971797212536601138667926140311139496246012777329457063646487170396711650124369319428552919635158649699277525730006181591085970164189995815879999982189184931243266543327722554646470283444074472384466413836062150495761316425413365334888793716351519012020039255941128333351627771641736117893715425569193930728480983473667722808790939364271093309941572316136477660694843533102052550447585398308105987013430903691764991688089334104025979730406436307666430041715166370625102459556489329055314941099539663671755163248495559038420453382782325683619193905506276309596255070382825116756798511270420226005000549958084450062359543824193757135358530149391514033890995837592912314462940302708644456213890973230489939038660360065938328554697904924634290779936617508161815360528124981684166192305690923245239275031492555476091021205899329456327434083072374510384443953684199883274057502643995582295432840533965493064047753570605252838924261312940614167004194229133785849560996468673150284968419542036923301526378110836360668097240111519887539987322157561093022528440527033845661112496081915549632375998473026063542243202890406147108806734282690898935127958635423910350105803235959400236107856354576995272338099905255029099485140780811977646905176144283502523711180712072796311658416009500390450895192427315200500767768603326092217681194945141557905927134744239068403595931730613776907328629192665175311460652934735518163995599647811515669114745448218958349850841559295647781094407790138224770403786038233291472465316412845862072794267452210847819693347227932000176293262827517381495466684828910157718308921786767190631366001322322334795622527296585043627620480404416199234136539245536845717856573905909463129048875116766475186638770881969426404527246651336189291651894956855047554400534655608332079118756306910682553587532340665374854987041503915951883821357783520379928976494693158430219633929567537157573971623802333515962715179274344036603197779097974888985992464571815868177388613811621392209741407286902886664618438584138716840871745796997368871989269286399454712080802096667417050353616927131515883876667513855693747201227089104008595558100759610520417781747017198080802102513395072248708120063001409815157913231938421575265745543732124896356596963710439413764259799227201924359005274874656671362716538854833107306839629004569703480044880757105512703079025050110128721883002345351015779383541027915590715457679671946355299983975672170587286966006992704924974291467209888846675900672698328501560881743914225686239256880819527303663603343362568470774357501931502666221879365646847653824048120578178646380096729810653103535004459557608684323755334302531945152990054317865351159377229128137654842572260420808466231070966957423560921911334861714060787678303624082165236267311138570009745827764900338578955946279737100095038278890801810803306752758904987806767047933403341959584169681107467083801868252665967520539002410526089952589354118816565646778063170306542430056274953740148951478879369027988352863133135431761797628270515160855729940740133738301373155955686524740588401074003485985232088236258112498525317243390296063096300515354488026517694807417588499590116582747405878193386756727835603417699992595023121768648883292782626849258861236142449741228743533475868560821785035475029698521844053142222646950148658845141108645415871105509942707267133240213981560793299761704912463286587867907998433839360945797452675707819176799785354036971723332092031930923736232936721262053104448763798000814378924447657366071075532392272125229122223479748614294520545494859327855296221675223474465554663021880411399500779076276121597420740217771188803796800150051941526119065234084773699162631387984055681224746850121848014544735835641256141816515521055619588630658694511431266201572447276744811683264364896865552407328549308234295884317118538375152222456055234199761500850460250623259190907603313757820396158229119227900573584847765965123702581347072989161208994859151877820720331621343198985629414431211414284817874979391462667849341571127430763246475419361203581842370389806604134214073783068494760044794096436801989542605294664811431913314291432121562802304501540056895125701876599689170460143365738451272790890250356280479877611689516639327367020621821691858675290087999417437776328932990130786774418450042033800249451786659952641650528781972158357120969407377470930050287602721047008222641743463986031351534221205263071499777916082736777441146143476150949914060869930315753074627129920767244081373925714450067370207098092692997567919287660931301564642417119574796831513492305952670912007824982213427382078045313984332806011573231236329502143354019157794119513901065278712077173869453872485396365567522628846595477923880664024129005534345858768396821166350250648960566302959136689595282061739152422574370360627258442957363986797905459269717939972798483287284252310949018085744598381563477863955642730903369389315425592883275518475754626855957648453608539486206364332547421073620191629029339018007005952865647818657838219364182643054139325015898352500340530121172479069709866716995240722340379886382181178786765495518355402863604129791782404333886573460715310214217658612093116171452209647941975766847731134461869804278126647170075801146429020601367065464577299979529588406585591932688425042859324238096758622511669649924551761289399281845204331458433240863487677543276424043041906329349824862279638037312831951504568390776765834154121162049500190647822155472434247380068292626350572186147567192467503824118654126290456197377071170197907817738775981269256155800239181446963150094846827595712283073213081857123515194453483460726942832645149262212289450058294587756529528037654461870841263692982447851168115004064693720125515689870409494015465306846172946826002487249475398101020507808687371491652994922475580380042374044238886814850575579093372878823562167134696343823878281570541154441433531682822922993948236866029721296787058980036233296436064101561525628075026456677111366032309591502460132961868979453423279708637510292112088955432008911340200600103645533153900622739867757725339805890909089682162298140488485643158246636998132711421424097763723022784265673704222696072917713934263217048458170633601957847239730155878413636204608475410957865355544780352571845825197064654310588063563266659282511144731724879913954289992847582544255161664701566736975127826508294297289227378703895505535126137214722948381436694723977629490104434527839549002770421052173529213838856142219664724499118346601715049552538958320171559673162986145531180543069210178734798789332577655963503523008864444062455745045589191206608055915738337950422544320641981007587666192257788357054925073026850733889396104434442447082051842697708681283050443524581904007532199397648437146076979710134619576971264989824821224121329766741793999815783540129601068467191203291114026033322303584014637663615492208273680263825797108526883763897063415160531398718705703571739438995502755150982236178523356959870660579201234719585249471570888115922259955192174608096302049400613345935174180646033953789711974152868850756084578858868863905522417293608360469106592733184262074520409525326240149130923540171144891879252521782569339698342976818628953908494163641035086320342347205911678757365501143660340274682393351527628240875968342635484346352344251507314411315666526986113676460128068089373545850353434809639015048506504013492649555240916915768061541658921027847410882178985934838020944075067491030369375761336791212394361832875614734845591436768646228181811925177370806943594085065405342429363582594069751640970158703413807519396205835327483918677555499473391676632321952265127210914611242328527240050137619802259807083302466822786602934695457601374737494587591854098339213866889956853750276704189100805832095565612322406312761194515814333718352700850020063953221869925059441156051724177164389570683168487197963140157332821213980302813248460768437889223747905392633152618212421681289418747788519248915857633592179435220854600085055504374538786532887041190027371766290986159339811981794556332178732585648525215279224277157920355660574075404450776582783503105283366204205625393364424700695339475609235393026782550842126070685823380153511956704639153632750552760068190669042831561414924351245455563163007689686675965319962493038680343284634693467723854092448333612900406690712878303728707800399805955495686497804680067118334884161718528556357024751165067216478564357020671419282357621374723230606874593820251074879052837621005525138686593467692596947774937860755175886661256995155357194769677032909108068211404691706584204088047651035019932713183389681892052788231543037074097464437271713452215058354127204026933994006735156299927509905336653857252881275229670375952143715900449214792188617500938510778205229218439587800988405132820964319626495317147937930889992912220247217867435387102624713947791610444796682134736715631584342248000633689634887025634554763388664690015104448648574750707613983337065486636527199694025663443789493854301983935257104257951601716042630743487266750131370782521133106044123674033132945970147424127071622557286740975945682159468497792434396693196164619850412729128399962628820865244525845710030034923108453160471918311957400009698879000954765703196112526421902535560982472948852732449195015070683767902486762858118634701092010149130369028936783108739655299123169955620561168988859210102045219020063111668902027007304986503596544226810688240741693775966604636768087124822301331873859798046686028841833416763088366976239744744145829229906733262214959732337118651626684879617156387103953250607724894750781926288814766041849531741551315996754191352526522965620486581389301514640879188476924594579423339385497806542675042614784788941448714904431001343652708767166924943975156139774882341077855747295127579552905704103949087629650301869670122396229298066354880493487425966381131639143556502612462716294707111005333877062265029654380641543075769494303441567606270200847480123846628320771403850826004879588984599652830282615309630345419391054359159057802436362044401891476438747511831888613466338452036340896419583604878995462082693279081256126568549804496214106244060189525024687266966523327964844952502068004303344655606347932133794969665524752694760565878418080775542052127476672831836402011254973490398266041586897335636079114157707103363809046265380723096955010814909630555223259485760046876101534810128263114282097225384074077586490675796159350954746978549759438257682405874536584175126461010512636034368468934215504018936597334832052512472215484982816438771780562542060843706452458141895258778968820575748672693890341024887929158504820011271569648515067310021379056148067940478525124561037910618248914372871913710005353090674897196187425781062071003979509765651901909149172217173340676904315364134569324898661118657007474276464011769388076410005700434517143285473102161574803330795020661355615560696261814750552666198972776031168787091505008127475217554461199186042263525910551902144030231391870288335335731842499528433177282108788446941912315969810668326899624114416561816499232538785460755964610217893320014617356722127187525983502175608059989931952306600282152734644806776091915538996514979939216674466119739605070597899314908332434789546344244757357039989780891891574927777481412731401383366418491813730821355901314002080186104935559243717195001149084860253072900182239401792997421296632746207884513133897850708258046237527828042062179528909072796629057955571833648986990349335495725753465573808071801507820283143090681075354236818565567156332048890538849539992054167435901587349450155887915096598066052218066104306193670815352812190764644446879740939628766025378453679331797343905109985405951886258755305430045405334074207222647276715294100463744051558972160337346308170729170527109017535586257731926105649219241337831787258863073604905757967392148225843521444342354802843535161778809646260408686457283246885901019233654401001993318006019779204007180879213254756257258266882803573937699099377994811671696142358779950213421116008596503261547350047010923974794309434761235786277296031177712688652111325936388264106703912320711226661508501510000352987814541086131501407134806212882849375595870725334793950393475246691879594697831448502287866387361448472083793569024909771316016570939645831344891080234438882151811763162968973826627181864808060986848018063881110780849457612556258757288659714427022955040528051118914112583397270870373228967288826621986874682886460206823804267386807024583615594608321477952381582097720082649727171894539487280169187943796276638934511622675974972690919531424699336564496631001860550498367627649794569520022110564914781820309602342387590424980742826313681661261699711018420827040041268446045162469515933935862582065092240587167113313461003415059492424861884236033758742782648971632235806627768684007047251137692522965403720725167427809644079319123283197191660069594290382464041411177386144718163018114590466651123078169776698646448166617358278184851901173605085598927195341987382305993190242761245463633236773056289312068335444749954664211186946561995305183517652953836143900473156289296816829194104036260965984573887524150944590718588232156040760406016266673414559373086890645986238529762164498931326778347810640085231579434546894906363926663924584755703393769482878143501221727812418692997743641189132016323737212509480725955279914402308875869819402429260596651787739467503220467407691329897426459776120810433515466873435600524954324647395173924222624835118027021974477812604891640336496379256157047036769786064320684160208797598005016187491640339221554661844994313373890947909637816212975559631044487418873726007020470761956046115417793792744644746875496596639982248457784420636103254165867287486664199292836496407616928446416112424531076903322787117783456753021563642841208616500125209731286111469876782317807700394347447066923516216138628077254764290563424992813444956352754621242741570769673133417720536446058725528909784426374966986819181424736448597554033211020018423132067704422757484672387396272434193266304215208422783989692956015212529565913245921959208339099482345673741277930553292704641586960261799341535862244425010669084205426082169757893336490498436183375383906593579439721451518283732582148054011273826033470896948783006417767070324257690122719989394593322071100563209983846848362394606778792577624717490052941455390294030250880106586851673043441361096740195748053307050149252160122208919485523992068156817574407112868193873300307967313997893165190046346310403987595248364701198787750490376454057663373130382932930259500110752613044096036918150509040974222361954124747181944420803094387145283718813016056644843623512527420722622963187299819311293047695190559983994616145495914633607028168358290967311118358365479404342226763670304441126404543208610804636130909906714161154149185030214182350963291794426938157875994962378500169726683809406155668522548210099503749036917112396089026483589856898348181866036735226176720951198691784244438305161466868966840668458798018309097713917514206306399927370137774159757641617306230273192802389624762735935920309953859467905837341248928058632238938064087999610038081287243466862439028026890091638554705135155801000858174710375742773784607217840463320367556583201079952625786377854771117962125351690127952878678094752578208533372074548392232735470746122768488301623320630300274063900568398003592681443993054437561685089270097440610794882465694937520705204624116375109959978777523129917695056786682891711217570224552398556629400470350673315011511082831458792124665096864234191461197693692669201082691951347493567107231588656494841162428032413199022431792909596898576548531482762097468223135656326479408981275063744178618695791606284524689556584077385477715148070528678022166643628122470027603733529554997294505293001228580827597417239951690596303526519590428129758328994107858628383164077060494699483862927380294384704387057361592673564778812410056781999254282419840988740974426573992212490220040379445652890154154554254567031265598318500296997966801307019153780916868823663464157809840944604615879565311455117167659070758206794011099170345725702193540462532491973478730167326944227306586433154707914692107671954651512608926721364893497815094467074170517138478767818786470425196251965998678304090693988734764049239907632830746606792228928982535261430470866643907466765211208815816972249326496282621857492630896667211247446062433568123095951430857264156671515100276741199691420491031443185362929733486131684508629814300129863364248739582002989906645102679179724492811079566379583795069382864827931784595802360241794273023276652477333036827277195426100250281639582848185085318900559862304581092946449363280466554622039124768669025056993461162453781748726696593061535758868081056943904344467497439477001163496518019928044211043199147015041090589896393611252147162410703982966942150380388272744502499706362798157385861261670925561867733172040204699859492131339609842919888687513723813618135397792440576326203205587036905806281168472736610000021618560913176219802158375799925040174808944136139331103231648265762576553441803178100422893562137429774412626531867159672775565339407764377570804279456667448053963716934193034789044188223118068737500733276415097870761437976316480273330353558135814406807626981972323923573822644799911546009594462142969936767848436170406960163478048842447655328738635770268236976927173215621211015442499720670408039408289570358981651934223831648672660046451821540255292944375534181998223139618079394962812111396739123264423264367922316641720689356845250311194081714717114213544484929851425688578041387322535429872223050905593668712170927961353237423211278760255927619739171077731080315480772990310370764504667368426447552340061113815393470233921473906911049759489913725793816679386240617370132875722823166192945103975387336778783936165202611396849309097139895188260134363106075412404848277824012068737882622667276573987638698814605670123068776434772684987460875348091976132787475229903639251790420508402705444737675432181861507614521590087289257708622883215935106913112440116957435660627494223408064363078460910597021563627428361727584054961287183791323756610140639849013934928476660565294977652070180348893648102430401587350906672996525780398217457445371264148623898954084077705945609456220393236005780968975638544161495757954283446216392411544120688071381607300088941279339281403276885520752799687120519018494378113375590445049353508766312376962664988276984520054281779663211324938391964965327831926624922956470926589672010755176062162200037164653430392020049225541189351373544835121918252439388945764474303368151180145355282763674665958730403421460180615015707600605753607494137183820702815943938170638299723020842027093368496317544474779197499562664490927990800164924352749985374364190947031078041804906761726307165039996728256908372004853729227932445582414212226725003110616344685336167362138759112811638373225533769792245337243279365651547434122276273125614507596058478772240782155277106924491165671249091503163494779251082427424451385400526023695375509744995190786454463728145234450917344791765330859988731130119749784617177402152356636803464354350545641308631178813385199104933899717676501179645348627050539364814340851288653869534118835266025748745736498158383495951269004103281062017250287560530331438741785892326494752581970960814509091254746248075828752686176171489392873751338781071057333243536714416714384786922493178977100746925065321357983043825346701267119200163925213344778898764919960180236920529828495194214100877332069534861160661933071223907839180704577950287891975282527995199862350442626536318111072572220443906584678068127068906373035957493722519755024586588860464766999267991639108464387780915125451349704499609043917984760451063006484359737301147216184799270034924865341390829752032253204239593573267258738622382016976512392927946808515329517894255005178906038461175524453331048339131440471695853274039745133915407121303251077281736859703216677379515338791467806646241433816547900448737310824709319231606002759124695666723848249147495709531582703080245266177973147196383020128457555865969522687324334096957530846686456706387790676199649794534501712149814954892417900246435097790975789472766848477614359167245844854801588547998484444389545186680121573039314059559601929237161937662629601032712337125199931276486879590255154371449980487751102739536227014815413747902260048422294327535543872992450410487679254482787683247829375621904229654439139589302726003065900630913180022788873791900133818006927516283817794057595317432837209106348891338832470113370862244196347230763569102816520501119957888398069544950632293091058465026562742963658072441872835629673625420091882481291437211808271998007548491790960626853979406349780299252890901680959021246772309318380463838214202024075321887126956462145094225551389659112911796986268270715393067613720780837060204730017016514244447127258015590286817429512799372564454876638441245191295043623676579924039150108914389829926465387786354566211992801424182518154760038875418933694882392342136520646234829315827019908653404683307374296365495816413512807139557360988765121427914771445383428776939456051685855842017299298684800883921365308400811810662438148333831344044640137975359829769118262650272855498339223467814904792707804283251895215279959101069887598234824122449353496129487939274565213611553900924973072381637045247051047486892433453081980911478504988216213400397025014025982584419574418815112433627174470282448671807578233681331835815330500916869457488312675345259471781210853807717575922740449703240947443136067994816858430632142764286156350016206710413159313288357485010342231500392063492977325202530207264946657188488408530739125989440482383041486095640032290684843088188308284755328616557023125746554971157104922855514671168226980709255653740310201245323718780011704283409940132723267579832938427914089514569196107462848509023263815240143070284732708618879768537379018189318376708532502309945789088187156001821389345302836820347128518789636886578560243616335204553362370060460340361774343565589671111181580247859667992221792082280167701128447517258800896362271069341959288801868267658817017185161725413056374349668884178599004216814768960843822378586182120170017148288323186064804945928273970723256057238347718347165513465054141615999944347581795796841566644149198808850766031823554543523370165932211180752804442904005789012972593568577047218952921160143623835202353962146419831737401205332890692319028510579699516522826497502646379073643802838920662916376314925670645463809527040041367024662070104425235291766789813464352743930978207608832204083644944734806097225319538197862800747695461606844479429962026502213418872733850196734988365975619764515017916202677172007796995575619677130513199449806400823307260605906261891709866367164438084587479081864652154692056690842931872971372090728620913547011327656932716262907750201574460059192185686881452554844584319850897532854449998401575972568465517300559808877128977662126758637816195784806184443506886905629626284771507516129723895897269376060293583125866362269377916810424399647335144168857278288828248016130043096852793242809368193105435453463687783437121832628358614127303610638306515024580288240199789689308855762642596048500386637637721179557002206813849188085551249450771206512924154647690655268389277481428362418929934398879794461319919076625026670700757632513799252437153517753119081479889209555431471907220819754189656546938300846696369116830242968683053580165267287860656533714544001690335208771056826003167067310902957472028131560604158858583348834299600977495980624621988028007539278906214384251557117412407165937764628391200310326141763249022858184808626877285570768941256058856264701330712556149258625587021283159986504060675972466956979465096221676560266099434538511039655235491090409418523409296643953636737265564290573237355062784063673162848253169598466856877969972031694725453977447131239411431888851871722611344962685795459988790924150265903371022395103084651087440222647507335675446507843017322059258004307333065474638444589932608688485874629404739005237079263480210064100242565012261271734370926240806681868252654370698187766828826573057396217488638525209125223548631230365047495218196593250601033535685161048093692223687248614573092740682418698299461642511221818520438211780307986718982968139767267891818104599547105998860580144874350845276763784125797219694462054344837396844187912678677081736041263517669190016386055349193481893817228089597585460584265126750921533883955002193666210457931834077223197374742979030161315054327759815255235289151442127945437871285459498196716009781457958031057748410966393331588123300154910257735858751686673718386969315346711947199807732457459381164255954800493910685852928611544004259906864126757431776978722102159102248715270159309108370169966338584971770823458463678361473556043545619271699764373934181468218109114878755581912633644525905660000725077271450063233017879938791696134401560470992569353003902335368090537267582864395446371660592691298589697122008890317424968025066276335075585700047411552138111751005235832699173292104937315992729635793093906723884715655881270417136955037780862663501403811529501894202494514355679446670530738822005385028153329402122394492000512734652492087801878064011023418163749110821079627800520489407289967642643486526024494055760043171424065852580800155428003655745258788726724293834650447014085036001453671173896292307536090499891297491062857884843448992185844950714716810642256513046700956111435843302653368386424319586575723922400750446767604240977470998399796388526563705255396633033714231271911908486771577841141038981815396150876578047344058505803465658833023129965879486746263934771605553621267152342727269655505768243667350325275433296266528365221056441738453879933018399094475489728805221634310654014259469839216647299853916607201930115144316369429683695790189364079845244445779183744788296690212278300290009526113581243044548687114932645351177499547006963159517519262899484819812491732322787995927916989847536609802294440025024794878186990461566099465027366396576738645920158346513779231260643955880231851630200677599204455412978575202092619569723170502689392566492986346174640580769157663791645950456662675790152767300610372316368767788134569320621047534063654925774916627275472103800873012791642373159847983927510726327842243824996735407871497341044921195082328552226698859656125654125556285950239665125298554152018083753680459619880210253401052234079241011256597460793629340640820666742114994543907247733596337619181074778172236694565682299422570325031917311994766153237380302290684092698988293367348906521922324777412120087131974624254006227137212165868288148162367901634345857412759882938911134171015010855174222106619506042390137296488087337266260321178063878799892757222325354215885920609554248900048333285436906663410182164987019693961941907341953466612700985231634296529930210788720541217142998565998332895702469423533738733889173390290963886732923313246087067756179739603926562946479754815445351003408942167965800475575099669664203104378562595928039106935574122389127564237667787262614344541606904972040387418563985707594850205605156283499348779519081275130333803720342605838550176131339306181762769806989420281489870960804162504400162650261443702889477424447795693978976317920910774147439577988603034924996745033650113903951547406349032623386066715041572772584533705378033585710130212351393457619247194258939754424917832670628509884594101421345045470817838019986043089560092077097813724742775773323967762664596398617654219536890990637521787906094452479955571356792420152619040543664788005898107988852362644936468000558731896093608191834165526032590500703989291142202172245970135554478457920681465415304848399948188281563995252342365645617560511684689886362385603990882049853163399373633867784710647529932039697606953907847497157118822404810587784605830029326950364424933251020854823293905054457802252068586621786316958153382170041465632895135934634097628721421570580040399894766117252364053321710239879943821771775251354815476448877877361631629255431411489041963964931754828736352925610026461007588219904272111579792350182331146029914696659697499614507159167007353916337585713402424640976657706279557748837223906768710041659017622362866099854328297620414421941986166715090030489899589629657948312690041725566542297084530825592645040769822806911806158911540382218222714499573706378883191606291362360065184914513010228290918708743995397767486404593037683306829641639468638819810864454111041159787161603901587533862016955169560090132639899219534457719633512442653491574865628840675352632132907417514107586805721080345239804626633526248166734498677937788133261314515235050930818011637959795465949885981406933975477064249468380124934957747158781445839227554342897239682396655584301746364289052368365512868769376990716792750014735766917241389047479835176098915140365744179143958861408336713224608782799034574139615405688404734648296775371393143912992001476378820516861909111530828080413903769091578622800959139338775967142330221085258077077099979729196067592024366028145701541990958538232408007027815690351924065434773619923824563074019839515230549361121569555480664507028538520191222435736776212168567896571469995335234769085790311199125525361690047164546906522119292271752349814175012247886602462875740935105739641851264370615859463804420743993112599048881773855649784386384495016327725073431878059893983697923866602840278403490168154704619778297257199757372299725509775012551421494293370318082775128302698008307884297929000993125223567875003266894617635483800013479655360663520471260794011217642632319561033999698993644527555438934582452864203096875384241339460780485843661110676396333685771119865936431362472786388207777941963499363944385512328877554343584995444670817416935712450322401089338822982667827385216848421251456647242600441573702634476411981908322441421016859206614075687009696052055551719008014033484758762872060895800913640509206300911002758666541395791973931839808558365435217502957910572969600003482272221629048763984033360049891661661086010948976944700120873450033359165414862901532518889112692610894287525079385075481069637037995376803452690673042476097605332937940715242045072678295666502123615667744926615355493414701129915380398657113554034840708835903457816814184554218201666834036594623832625760701057064484274044292124121128781020389271277896299868407993378615468622493831662424633203202109685319931895043310659003922066759691700317778933427527107676474048991341149859655706555879358547663801405877728189971724094904536630376107548214066017039458795379347310636840787464269049058434430774857896110482918421523399337761884383798962802804014918801190179288778740102073626803655628441686054051004702913315263222974885944785901265328465173882370700840483246334577478778426835287019680758999253953126600941277706573136475380642446970331897881650853234082785737073245628366025469372347852946754190487801707715201244717179955734238043718820522132043333742043860230166830435612647317926673110932490186249753631556300233139962077182808499401310002295073386089544971365142339112394108409746372254860463741845921002314904186297503446806820730022295788869522910436481774587951862377078484054353939370972897352876201803168106716354024226172125788716837767228595419243054080131414450892157588421142169022205537247445353814363209850262096487386999294357888441514840374096057500896192384731213282613531285488577703856130136187113486235670989842019913920115823087930366460905212775223447572442434660646511604076376002879710970672242583831828923852981512739226298019376985904653048577736568485319287493615661648822100377741160924479759238662632249696567286114902655717905703359028474562117560661451219633243938359827790909388143520517805265523271023450208440184203368948250249973030135869994851988088914815336765879505027378630894557562626621014268474836578880649370310833867462117092844532962488527018578025745273290328559446026415604465652844263167973502487501003080913116681087633621435203231372064764122213592279598329825648574595908638420958395755892771983637053620932518945265206670352422221231702835543711064805857629525414527282902395915093248603566099754367620853015510277981370882292434813845587354460402843454213282848071704825649876301411855347660793001712284100526284301261682907311932034843319481564018365951349039063898577710789681469283756590462097793298280653213027580061785384554274380158808242720904003426550201605701786321758976651460388393297960528020260264611591319358164074396454208165424779490163947425055888201333660120855952682589849849220117440201352873076593854860227430310467078356015738593595945287165325926016513955231772480613420128086385801194306421194682041776736324203607008681894698602897376692195474265781186936400688457179877310388639935017131722766303798172245686653682360581711240859847372546157288876660489237169677323652493506337434790448715604899340742651031496249025672047350991659749625136835800958059077330269673440426769780175176817692213354496289825222162277927564327113777242179185162246087952597643388126957913425760816815339404258215514478613514467306923081618600763007577804476383250675852882100049595520977891306631930981490231314387400670135073585348717243575328641273579341428762932654525689886523615496926746190193928322198725485488138878612704503736597694580859804577087181000163459276784548724561420911933090972415064723328731257004509869696227568220499767886601733116388422913125535588599874539807564764316568210042031877558366296776540883649103177082651496316132688482177877909386207053453853762649879397814184076998876042832908323960251036372238789281459187785963288751586157193246056187881014798000702898417876131607136046209371330047879909961996954823785062056979972281923462439642836441718659829221615348316678175607521685185136271085595033061088081465600175703631973663838238660262007347075916843768569115267838839365083017255211160299775516825834149951185807431301138814214431369747111558047666660928442648067039194187899410254819856549845082426287492487004782409766015850531944040124555547366403596148398275132292321195807504017366300584702175705021094010401360416666000280998457519323973193977319479208267428409712164302610900106196031014030254941958420190416810105504354500099685380893378892044452579849319825476180958532809700833322223623078498541318476386535984843290774868416273295457054119750095102939639193624361247839309682392087823449395745410213020590071822000513317607953782887884820773195041058366654583139656366613555434293417484958730938931288179983265751826578456946949898921294905556100600709352604348583034940504170517954951749923436988781847481502412685437097243618652610863465553484721920330188593927146140566840988487531651736247078264753630198226283439929109282257415127997901959465631938500656194270336202774466226276260901727676787837997254362852932590178131870721647946339781881890107116143637205956579640255785149628217033235879567140498257591810555738800442980324919314748964566706696604697998677616515149757148642494281649452638870662620040867010124712628700407108097446665664166717133530957984083019698095448907771881480221333522250759082660308909456714241684963756614465590615459440419423952288380735974844948330126984098747547451010489604760036947100487020564014939477175374143242989411345387946323764419186416317824887949967771211798075162116666433749549955601487749947002417217969978078409445030629023174751118722169113256809542285788708412696679060423600528721014007411346271056818825917690348450626397168311361933440264843001956814965972809481547548019560301780794967335957980755662091516235739082622050185205689724510576507892192445592114353303219302170952190620416400836011144132445519312711920374454476267884481492047151812045583367783312413513430560436423727432961864157826468254980856808261526042419630730042040164115898719941414180854348383081750515434487440388415849083116979784062595208332734825419657978054405705302020223977861788018732541862603116204157667316877964830287512601767259969240940058577733836466878212852445342547959477667824581335131103217971011665947986748684265912354566596702499037838224102403831745386845780437124240985834763387746398461891497645481273472486053376836050019302593476308174610510079494888751797937172592404332290823554990922200352571154852643943646968274864794837438074534648936252737871753659373132579024141241727297121878630329600190707345063112087806912877657543911765250082214395481235931417506526919404311548197679446134564053653405667670774174775100393181950580638275665328075845892322705083182946555669073246378126161140486239164534124997422214615820888038995718102213275749358210698749531758290416056704010650605753396179808450097192905193584279310653168215035547697071767513132447029488822368127146582757985975094844519391341703025580666360024684564359453291560716476006415655506645700789896246101250817854469537332914226330495797124015202710187638329264470910522524209540103352928521836367667457322299934283599039592788668392018813097627185197810566185869520828925973904066606042889252982161679267124521394787215999269456692620145933839170406340386073145226549696878782821227452807700900615075462546980205861374595814967704423987154562969163884482405632035364919325050522741702819163916082228255595911670852366138473293990607702745461525898000058847861096223344112289544877146420801419039930065172567174510772302021056694221730349192433823669596939027294596855860717862086336542700986819249925726910479067504207406800935610167397681800156492242157800200744865191170094316953905380863862245454687238186793114537145317125333576169878768640121869761675097676572225984409053668562591303922749991675838864243438471469611878249875220733188486540552967383515136487734822915097518943646051838793128573567956243319352462208015452471160267135623255414300060866219138257714449677516015473672173915269401230429795489038476951462199223694773287205113711296913121648213010443295377475341270246255732510905552784521741499632889947013395989498386061938957090841003163525986428305047433861799139857343598962232649148279151762354172990573640918700780589697651473038431731844793130723049826864488450036116876438399795816304257752923503951062204142520234773902983714662337046284599073732171992986004820457533147775652089742975927179588596456003428066101714846681167157345921763220760181529151731006811672056193133152402981866999231435725821764967687595080975696590202174527522236292237693701539866424957453335147289167475115247229652194894182991783066716912379802558194592269083643116494786519397589213857394145890975058434498584941253183253202463392079601395164166928436852885807080641385797123145573444403080408546994892062012661938745636461830628178172050935619988925445417610434150775542531094859536725480186981919015331605879964263126261486381122700981681245051544912514292489546712004498747999617899879431065855935910568319939916532400073442442277089288306335398174392790807313219133184064452683556959561622591156851965269399124430628130999660558012380127191682800009512548698229309067223828326266338852092567120042356292075604615335465167811256744967836489392394741204440515242406886970766301341501008821516979073566800852646276400506924829285984359122750936410070443784379288284261192951438454964655165273033374133914297974022063749227061246927543334993708634740362090627863070318556720407721555190607481526275360479076499170746682878341177382251907970867170446083229710131775326628542259526759397250970342480199295051617546008099983767977005886437008302773586041542405638053928453651630743692557780410836869453052577867277829497469630698689677104092744674650805810302600058012659054728706882719736427864829363036160815964257237029621340567355960073374855100266762104803536967158836137607796216523584042595167132275520555517834324124138542694977988737661495611597395446462770762549561186269298662570412988074901819599438485761227027720819757991934972581120659900052833227961142183687201559967234655702062528939278231180932769658923213784027539640787653752260291927997933509595995891488549573898548131705337952579848281593994881927022286047628016587511535005901955490466273234345247130113766522660133038568665326810685111153942792407021357587734279850588132424476313964446149921385278594152429595784257902285185822302258397949965582707648181327768971867396040672452399869838236582434005886515494895021059797067946882803105729756163738781740468735385247194773437667330731530344510732123905725543905259680336782041803554362095514321750732931903865503030885287133596531169360481987374956606928485014234559979635677260598395921673133761515740457421850099923649766429896308515527791367422538105880496127973867713443584599730037338958667548824674663163815048247323516161455604446381029292260488529884844847343105665645838058116004795090249748336121889745849809062177520504355151693720280993001711311401047526211291013097124539674620873997553600298692988864969878922997419355345569717080345080111328350408739602496903565067455198714077567276743744317193751177279712677077884951794082510553605973865604162931998462761713244635386520274167676902012467535311025326487925646344476175091833917065363350044982226607668805270701124089343306217800501145345711964269314509820764118519694510384969126262514488504008573593486846456978962240478094955715446510976155585903893100065435874457807589926136672132530303214308850492768562970178416791476210283543881553850967876501651594066481211721169308626839819714334533737159968324381306286070436360369175712176620936376246505049143150649776343317553535658251403594720667177586607000439077614970059768630734538490175780441684192502733552408100830737450821943997664381181637999766349254473433801146150686767001796379166576201544085341261421818583848397962136679999784894799018868701552067171184757991925142431768220420530330861876183885228814442561395012515486467901706100761668615517913442949982225005520842491304973404584703806039016206565201395226401694410274020706917246753233500644781958817327242837894569232906769854942261246143868521677971354428239346280496149199587239437990933300900326570568096458372079821471545165426845076563191273253671323821166717842257397457441522502261258438360758595345617605589765015845806188235491571330898827210686323106762896865126904287289382794545832664173744511622962952118730278496727540807212851775188333170959879138851743870405771522543775103436659506341795960963258385292738107837757190949572376135124428021790772969465408282336783161219932622947463732868870989566162485845996017527086851738477450685009244354763212221327925226610592848995850911949552572305275335304945775966233632933486348061655742986082935497497946487577771755269500379625672339897676888509320075634007123912985434472274569521026213821852978035129499122078988055444791572594425963721656405798899455282067698501219233395593365607654782973977490668904714607956936759507548183259524272584940036636653881028744518239155954778608067742181329420312185746570536702367126264631799262028058883656317423636093716718369253659628315876100359813864534122420751269245548792443575098147568110419489862603180107808097564853657088101779542974628539272899010718910301040929061501797462712302622049340010441451226789575810780668357766829936422633523653129280520722314971990032997397361992645385840726865307185541636675563024063426974333909351177937387933640974526098580589698933557829305993792992107923212573503751049440268101489457352926554689228115619301587419936697180053637473068572279861932017066689679997649320643910069950078413758214721351349490442059219874264474672655542520328476698344110738476907445844870081439691167471109634572150947806840021490381914568844610184034869023032618409333047558970096781600485533225044503257673853497918420644624648326600075483125833754045807402564456265774097517142957348039310338270014165482687616967461597233396345970064449470046744400167372425328062466275512066040862130142835472191319868446091105382011451009978585251024354310305040382401467359519772647566756352167683774736315484206870181126969751982182324338797268771081452801759209933462244277001308356773130086199709707194258401264367953088375160533589728621734746612602917327594404183387602221353184008340030480148538020498468614061330311253350717878250613942291247531606145506144799433810292402029603847053793437460900622171611995708584922849992582064056137087237181656121105109365798369510662879215046178297100805267573292584774134100466627911552360779932235645605121514113893046013202098422792892520636712334431764661247216686865125914377920436350817129370507271663647232793489990071140786963502145696670456874773653173644602110942058765747475440315702205951251524892851452122497885393006240087282080837014809901947386121682844528018258096349293358643844665230819988601680576534420287386700206520140010583672680563015488277308624763691693228259222215775079741129482991677188486545403572638051381886826158181348829374034916063074113179141111325593802066172320102076936112946707173634233323890423610514672862206964370785482269795062594498767784249841283541540172835546277794645163757002079564691914043920139435340551788103726967005147642245536396075659534272084968049821103551130274854327449185680496763065414039863429831198615597462584502066902110391913318489236987369669955296434107818720316394975673715774456856292019853387674180355265473330162214810059619798784575958132632143753077829266716662374212980318046261143029958368715004865125775531398812442578698822752587044568977776612309194465662869908312245607508927007605335485899641234342308102004432038994603905675723500098027393792962940928314207052944037465468477819611734703967547237136848477260435357160425909067550866682169588563405348077273737763068501538565178638881394360197123824808658281255873877675440905704665691141746376335912312598932080977529327579994104559593758758356709879744284705686416382035556716183593095322072209342154171447551665109016257517646561540461836114221788416727562769475405124357632543141014451291321794267552098752571953456749853972511066107061008258686261397609510774126461569238989485193237211999203153419125599049607554302191756598518650140751814768728479233242235752076901191256409131224320090409697498209351385368199295289715368353758024513513187522368319102927935372345783796510039351175275360183004278710284544856313794700465201360371819205589592530400681284450729110896263900993926780744247211610025301511929131921024284277110537106326772178470701482728937151195459515494360086713079917317510958270925551213581386622829194957301199158132872794606024117195221645819736416293409130714857994930915749363641975135123843061163856327949062333553849585514585950698264250859548387323096325133114507953687147705638714134264601060068313766878666935006063371158970717402819703090048833618785441181589587714053717102910912622699391801734387819702299610425553569849688652316985133999269176454266438203159095043849694561376510292533332103645980059388465141539430895284371772542539640020419774025281834637357348951470965629782774823292283684928892776261572027769269569650730945981262306134385812306786904818985865539024364204286135535885115605768341500598280590190687624310415076812747514483935058982637091244042604137994374485629916756951247967809614031159549286434658376092441264823455331244183922445513545900961728799045729820945352727082050178168869279489232849795505229949624217957700904614440628686473008438512289980935288684126080334278020063193927847473072424276395167320566807843844411040758869071822919906442081578916835535085356213195690747379861751461904736749506406987960431372628636626644226017919486049479094616182600668706654900860205102482456681648972760817813080331396812028975547245672706222907898419272600184874589438367501017234062178387290272396256366157823100226869464928918655474997187090828456450530096427034120974059833376309407837513521792755890875414030282567723456328932389751615362163920774853145980450916689627475220940199663298412070033696584174492350746612074079466555612995938720409893842201522814441376051371063826635391455601207932542573770813236315239238331527960987286822458229992272311582242691875153140460932787854794688761084579109399192722927916621095809642623824482973992129104455526723535289632968529438499597113293586289360975187261200131407601492069269745046976152733941666481838647364804953918750356780267668465845451467263569528552336051651601975918745240188110252615090939021968574041887433014300197824181774884325149465712929331895872878483219136501120974752279747957240623248095890314766404867809324026921512191686996377120913868380494578239812100380658521190657653437917056377360078851798086476771412086388216210410688959196165189900063860672455567412442151139160577632125797273679583537830994202700346614406603751921420124923029607873063148931418823916880903487573378573239763752255360096604675243020335273804385369643859859900920061420025129393011687725386856478892995712724018527455994814069890279123333931017231807268561931968379871204937875866450739515563580691932554652768459537307601103840726312351581727250859515255547354349424780700363121183549646359309562022213579766987832898947993725076539629564625924852379573818548492771773980315919215594748916550660026851629901848486636733563846842393936003179517942806873085472796954137162664394776559680304525197241911150985408574733146872416604218548268755497386035085196659545032483132200574010419764659047222034232074324262343487812961960146375950098791330887473616759280836406770863938801108148749297938327001408400626268046912417615394214016176640451338462687159451452123783515692264324945205302883865799014219453944704065686096333641473563814993005288839429027730451028927305563266984204186346717605418826546888483605729930600225740278186990600266608519041798243303874142224489633924703262627264940496103938708621439028713429747178546317010145395597954278561056003990152997921423695249477306395450497115770720413346433415667251786643458579491027785229708009405815367457935812173129948068783780460467811738550348932722290420224181207371992151666822119481705278483401232946201811104182780845679742111214451267621255082012701309456192160815300509680964767152362975991989160449277665197877303803733453860412959196514436999648080879089936879960418877751497068404559916646177369266890850018944962985256929583188039648784430387031929493699100531617581681196268708489442089675401057251783622693149445272349713720803868033468896488677454635554561980970468467351028312213891863571443641002286672850564717153936475546632911451157473821288706358847539163569299229180061675312484986288139532717787786482912355143729059664492607348060933968395041328934233357312170865156795269084079467184168505073810614046945594134553181714210325404150464035251687207023041146076479720793087590065761051698035614876984890957257216030581074598807312426452454027670032843670570318577461152823292524171664669911422427983831664129894450312850181642635126251927998114487266753812165301826676744427666339963708767366517521075622309315329498852675624341980728746846830057594356367942175692560718107270658274596437974499821020434191681862226288463430633201356652809854529740485093907248342548733616591432617787819798464339564175654007435627650017344647802684346397656271283517826221687638014627377510686304462439441639713583722048664954741118200014576069297920667401996435348794616455550143447564355162668211788721537063642922606917119107691286158737943326005378165048895264457533237366980329367321832023444865372541130839785189204661733163076795211721706557283098201082726176439295906641673279388414392208370363853225915104560496996506720482157082997621292473668638047186252637807292282262211260035732935994416894656548414415948697843657269437259830416445954704023471832413410414525548125004387691693549690399829522996397768878676907358388305051997068894519227430839531245617900564660661533830268809193766728634312693463291291181504094863076885822819487439137991424344425278541142355056410153013825352646530399560981426949794340513846702590326576268847531453528919322378752182138780652075665345947425608630352855506733961903785140543124509549277133192101171221349993506685512396077756767492080267564224449330736437040231728174315410163719529666327603937206857109834406059832026853996742817143378952140797841210002711677900894543241688193864893779623233519234754849858388182986357349274392460066695321858737877011325046014779667290084396017286061147545042147987518336106363972548439312615469189260430959979752581348572157263336870218637010253664016286108051106625238576345183160556635617811541701986008541269488302741641713206184949828765378681149944349035820507038948530908004674842333326400606047859702826610951020611184451323803354558570472056520526829051617514635038288139165330115649433358177408264049656541633975766604385834492784991131462487770712704147461556333966372270391750595498164755223842624470026931438031116273339955967826509755265092554762977543325503998336834823021677490663176968143955208843776659955943504034590792586436957492779638515991036355318730372476511348075059252936039449980113146783276961867174932179273625531940268267882461897321816641246548396556768109879582227560125611228542859953687715915314694746520708103181527754960904899371297801176851577500855407058805029230714427643571986238276230283306449845860459627614468551896071325989126305380083464051083820210730994916325741227728808646805853419671045818633502460956616033396117861494085360313290637760465865063522699769371335284363162441491394413431885349671900641543411403138643435718591828451716019736342945423858234735540920854683905209217389218266932118438263895602401961574226919536634814199979555498061696487185672847110140466199606656859444201193460512266418651146659820534052504926162773835126259345697506480689972990164287265878386414692737922244932191583154525834292860858119788271256101567371638553085672292126888425011380597242613228716071024003207640831560909485129637386006460267494312470756071998605466410016069904182443231952786007889687045877687798649251471861623925107694800648887719190281196168621460077241035484872726594934126659640311999770635874106050666575555233494626149861264048121007951450568780309439474213863445167533357852500460803415576780257911763138967510383822101199146172571295209813148741192829573878251375870278328102351023754840819922876400017348640909662477680022744012943806965286304035393166506961444922271767122011082027373337319100598613082046542595952527828568218786766867863250469710390677563129877224375454239937339889793414411999847799080830454044414224665752540151353293640753298274792850946553971596135061568020355844760219412731967039580676419085119217834718328511501918511622164920604748303315184542385714431131087538757055755123453746043965514772813901388466015707925155857088651302858619557412730167282504945669422361302031664463533561388590949154384035466606193287928755492957583419447158245151532915200444194455732770829868517647923560343445046377180489677973136859890433679854946804749510672577960506336003472813614270954441381975119248967367968330012762245644055458388142982970386417562246594715320403246704037730376744767751298593776756325270913086384032417217712849574831640160880678394970625202009636026100933602119986192184718080610362397788791353347248829076513481904822420317484948581426135821565283005795254250782893924177487052269704810061161262571561794182188536214131552166301146412570546716532918573041162852967807680052809371977461464772699892882090970290945192786376680237351412772058352723553906769882450422553289984490726646504614810697307689681504180277835533329693239162024920333192706179169127935918175914984303690185361535728726203423405221709020216022154426566887106419847555513353187443989955497702686365744873312084903307247055788218224573945618975681324564249576258507458975140519809989901209415836782175915153272463064993259047187727857971892725572616084277799498327376484317082454368397079505421432192525162781944656252883799043079739850671784716958093905292204283177656877408189444685166630172493363314990403547277373036987880022917804136899060425358880522854730105779228158913480351407973505713183256898319933505059831520094680132399565778976181262033015181558744149215135172165702246002263737594864277493110335602838311953166174801656189510305974938092733677439516510518491259945031647843556303695212421740844792882104102471955473051710437184637029685964701513915103912633090995239362358767090049677827451060295506394179453623599715767642954141936711434484632476222637195412779727514062686938453829273586669845994591061275853867301875719134801399103280071758511176785430586648390295489219887707862468910316833872262565848812285796195079296055634510154144691686812863707208144508053927215095571040411473662127151466058178685989346135763100660360354059107419537438540463897637833777281873545549646633866805377462345146975759975989198706137582292455274948752762838639951978455578550316986220018370541584771547287625404039209248588616503334054793443099388822851621167054324597505198704398171661931210001190249433417652728676635528151383721918746171881823137170307622154675017550324398046119674378214142017780832734170382946843597408264985272679332454714961727877353697617655486310901397076973555446192476508903636820917975220290861517149415970552668727807704508911127556954259827640439859546848120839801057967435328993299755781461017480914251731875953042186309112836157665899175220416431950286593582367884726084410881988983730595543857448642082124697297969938107129320287253300922273053593606336782370078004225332789665350684119357804620116133917405132764716752865556687215942371668037944685970668274463499863961864188875161946934163149759890801926548080177610794542720097400321663051728916497216404801280275227647681061142910828398418104675421527212346478881183063709544313034631514651305272941149145264873181824586068898985902771927844120858191978737447383904070362671916312113050604879670210117537588828483271869398540053603015693354678583373053354223187085060143888193451274966254001318830872256242928550310554524726554185653809754599986281813488043807819943637055195494569956555773428705955838178494485450000922236753109358395774569038913479619559355233176554948412755606724785985434105771300145786968808455887793945260395438439645153430581333766917407868222409949932587985066174625246711170403834758895782870699959127770227808112429195339896729066339472763017740498549359884037138788872326222493219413786166897966447750415420065463802785207835338182676870708081959379408272287751809833603059190372986910007922521009314166232978559438404513004562187592828707073607858522170704888692523124432916917709430700827726327001725100560138599633494972161246948285116283222371487569074062988894405775820777754204650920356246442240186507687531635536941027022232720609607621172025757701987885859574275383429074273965820992078535129487135683196596950830535767290748605090546548542342324652477409116737294419971318370862667141719898901479035426242291610291208495061024308981135386580220881559226557267979615507975240524612540608400354283212905304281844697175244385468961477278075044960845489565422412194298117570382833728421635871448392327009624268876264830836354703342560779930541270424210374896100749270641496025155368325888611715788878945028743037405233592579974634643602759055760765014463803770820139384698275684039500465442739542977092269877019015359526255192900383967195921277431152401320148043271362904169023746713548179200479422515617115469324188413091096777321506488444290240778025000108744795953584435203740097816255228228057902841883826499814913403936548591971079434039961338722696750319197515132603835364523935919681325645044340564036689841934216008219072940885467498723142806838392851769737362385924315549457202648761102027904025891556938443229300995093821100994259526223555296380760717253253923677661068308081997625737190019927587077119576746746739620373261747701189862627301767293869951686282551662657409879357302937252827841420938658741316073293263890874286842652583849663067875116789287113993264927316616787816807777812634852378122365488760713845032391800688831868185710812088032468610611367877468475463662911348799643566052203091292676475705258041409329470327780641016185824038784125818097627138850151292696222027887374913572608804379156634608561794992331149727977990598524006012319621894088736753868754491899531342995589257382222442920123756056794817771149624754118593386495755882858407542052760862777897285153547936517635876376967750816771648822886147594247986103147245163112789981291367703779248162983596079279057986026127948449873198453797783988586570025693313199128758096418249778513172045852607776220458767620372307839848859315068687498770564070224699078835162811307745690335005375452853569320600931741342758668147953287497841805553837492515375347307734093263839376034937047986171287214584399242411590876846121840192647580109756309366307196505829742895229847331351442027682611935292976849944279201865882670917504540538255902076789457430083718469843146963925315140339113323192698699064466071545730137328041895307679309942217477027734203389759228220773825391023399760533474353826672577835218520638354166026422647486595283347546889050740383277819821944748003923028744050737213399900001377027553680475242496851382937008615293911144422922352527810795952289723062056104947600437042625955279307295420495994040495185623468410865072838335760340018337211420764071844146966097551952276365519797675744688850274825467974422270893751395520036777489322377055351789604369514578070609460664049672615479614290329983962172478751633041104770692362680693305637842145204589652178054745789752632518268410113069179775185766491324817712980277111486159812664394860022158966806775925521889043814959631592675767117909186013001256218832040339565396202167942952205540398581515907634998597258055760109723542303688519094823874114816726371154299812688471471379114990330520085670360599532433397570966561664083956004786226318563043817757409822936249880857265109380775916474445301175195618520242026016724667270856635950764925910040516111215418920093387998738128963986842373119920249253090141191308147766436382268804326141200240534960405640434544314202607653795534886609327894890779925963878360229572182116712703309553309981338258218189862138519188588487219194012609932251281658155163257922951884020167577958826834835380548603244534991970028803516178811378850295466921755309585107156920156915581283498060086837490480823183274316443443405784840252159556618114548312411509352265448523282406778514146888498587634377611338415524695725533081063211974291657368177687733549623607354522973753364312930822296023635679540129335196746166953187490041475737449731871316428617758995531729792859465367827336329842875284249607119047396446014665015481167219507799911474685981049308843690976239540296510204736879069140823396815455576490635542779981007869962818137820511045966288804069491254012212689600730539372705071973920943062647522041818647634972170991361735617438808740470047358677524372818159498581896261873873298493409611799243370490466539383527261347132444057017060764023381202006732591887171945489775416343866564549900473115959218793174954397018285553708100088691349632382382634396997372273791474093081609918555958557141035131632393448477536157231233295102888777124692647266573233947605549322539786268079000155590218893821450877660723333372193351840665433734132407957416621973304465990708510094878027409175308909712804329313724211461095027031560925037879718679451959717056427356721174308834394397414227641078332680232365665722020379444749610470122530292474896820966644519151879046464073819043299111480113794159713066453246517626357251926816385547981157831041513917773713909301909344245478822053468739356753623638448436170538491474684722284514571027922910400673481885123827229139587728566270470498805679439354032834884358608985105181275313073787174766067604979260198576184456030955633321072010995512630016181822905543355577440627567427313425492938047061604845395547889516991009454645006583892036387873314252183604547737300881636185009298488012902746199861801559004425135176012038241184600551930984884626426245823406138345609939313290344467310705219198295258478135330210080403592834239777407956353815603584100241648011601721276466807176164160482954725178805794581466335312783316571682957358835747973855897932942276398706642586253268783199451511516945512735450641820413776409862151294056927029160940499605002536786643846440351690385769728386305351202184421175655205812268618101815666834774828768219567831971828690774964619023510871215611425232254284025924073370289340551814756729475028990597494567476588271628652389318853037467110848281531389873427975835921100392631289876088028701774049596386329626734089575601586792673789434508808988900711504422322318518141412412329701237922203832248670919213137663401000983656478362912862718940091527287789504825725556294640538641892325139124554234076007160183349335705609212897710270077905841128902255172168987179837187597028242434100208326989577635592417098869104327242972465176244833832191612756756228681336523450198065419500449758627508201829291415623751879871422205834691687448581702781868609769857823678109070175307135141093215996890321284593234957853425834699463208810178183814801970511737326018485652452077545116483917891085371163628892719339088082634528951477804281829029035805788627932106626319275884261714781500923828831834605304407262089708171376947559758103446180854833082867599168520972418234739967853479363149396636433154704603328930302158821267555708722273297134965646891132255810414936709486816723358543412814177221858234172543238577196835018780480850818141975666717688520771250665378167574714883360501453181166758017683982393135847174462278422655878503945920140495616348171671635133818282496568332757317151657423117936609994185932800425206999043728264765779811865453742143448952058728934786673810741826634988920119408021860018967900734737241006336699187483646761793024119984697149173373540510332436608575442929153402284151728036646943395692814896812431138003974133748475387140991376584850073212388554963347646051530703506229602927251194348499685035643455936441566626000497703302210809274901274428500790142782074946945801454293815915333074555155435014577612089442994563276851154593681306213325850591955712906832587897057275513040644077085709086889909342067014585053582829898417907554163626785135573127807308800665627919031601317795770351402475545699937000332909723288473972756435624506382458389022519798295166181157659151585603189813142004554422543053110955845421052721285509716773737401035008394587620319510746508497551090092120112950938414363982463236675656290676030050458173439157892358970135634680968038729166389844965959530171244534141002066553130950429442790556180995449600327062859309178463631126768539677027447844794932068415354070748698177307478109931499228117359966196071368865536691431728716669032430992631026173610383178161329254576770738971259117731060151000677453086802382374306989712680662522718670615712406515529928017838512420378569561680575364675137981746361700490498534812286136776805506157017567426453166679343468787413832595172734438462216144870300596952645806563501835929648155706491876092558955010055728880102580395374084968979349928922639510164973270618696086694599942192127908100665040830082090492825058641806232087075972026814844113438971127515923681680604106763091474598508829595217684101632257764896737430396609499360755487036397616712204624334951388643344058740297918948061731870724094881502105374819121084122725980195417107035465222527895233769263592688442246485892727429906158716557429741775240354468905066622817552052126099521539303159193835526626631150821562588705546067488561305398468946698647937438430151064673909094438459978114128674073201007490615623570158852439136446065615772707942024603041824693927196413317706676767551543074194978627664839807560261873452835477512634869579364428932043153717183674912949317075542381094991203334617418776292427056049062131942574904589936980105815363927629705240976183254737130250558361708671287375579237520458077594840195224964354049582987573306409587306194383741736796410605265161345597956679624082543538518033233709842516315604476173876216447910430374331446397295469129602010331230323848287953085249871758214621381107779364969800987304180364569200948183608860332978349476247115711127376062881526983561472315056506626246283756456045880008026726692266519202335596046768584290820932787725533524249399428932086477747950148536691259100280765949611373662328859724371918963900710466113574809382553139331149537503042885635821780105037880717857849283100788767351860753926705550471229079425444974794737823482642698464163340996447648964156153335074673690902703212543287322973864434135598129425243230845540238681542679030506850033127685057005505211395389550773054136335911181061023329751707029188933861289758849001938558090738653721057222107444107696715372287520773836121248002132008005647095333745765642091678575784221802237175540153980430704884515679213748895394558469767613073625715796474259702712842892660397600312972740933170600194433393553665937042851357593458751420618810220887953554684909171381959273172168156540223291896429763763427440396887211754289901677352268207435967403601435117449680017822844562436749665042112762211331835024697080252368282699213791796153264228432031944308022355506046873220479710651178417184116521142269440033497841465762837435519389650961829441687324610012812955962093484825771832515333721919847769796590252231184513938687209452767227686755317049178412274069839216755240504167044572262076766427061171272261780159528096059203125198195327740897932857438589771598559806998660257175747721617415385298065307835329115448647860403866158816969644280094397620544556831491907283801968750538258106340114498589804714498092405096964813059082857230098287863225904681359170677961343191771187292265451969109302394131552559633439876132021264437730860925863538536768918170963367972653957240404918225417593819230480068220044062661628205583989375652371238797981158957061273100389536941491245357768664238643036843297973628935279328294920699700198689009673773850832168342487099644808930562009594279131081784311788885857865753486102839018823513361490761434594691404389513422720787846816706305732642539999156880655744148650995790915031422795259567555885706052411332591026370400105240998015170669567371860624013713161839539811668688160007738401158186685492930743258418600145555232264087667108122555380475259236813485860178720114292903038696615238867982820624579666441927149947406788812203669486581804489515022382290823755412981563889748663457393935869091596515155112633735932686149189163916078470515518692053837562586952431306214369260022734416535360532205850043654557510269646194661867782902666864951327298761138702627312570721995993333919290976985305531860248254877349782688548407481209544391506963453104551979247021326647557382997710044312648942843358784202912148237264753026826865116009403799459138971996030800304801128180769591731654922652046428012512123496735197732300165655536429260353468397911306969256501433733190322238540805340001809205755718543874866191008748763827033035892611202483638343672025592716422183525477799557396115333665869757425915737264053352258458819266949735406585903247029492950469846572144369131177527088877419475149575659645147439299625931429171911051357531502233133308776109782698988407646410944207260222970095396017541593195340377007880399108318898534592833954558956479378883761348128061820592537444187809856699831494073889431650678515431799634699943227936104145531680500284085364983312070610597507327763924872358717729227115350921879463233157411747269597972694325104493865563032666786065571117904930664607578961272186468700413238994822300131159071495168953060711325498512988507648833949748494806610954440668562200035107551612109790656582220017493406051979079495383346226167041265728735690122154334167110087720098892379243613602393689121561375034900702328888990644420021335066496061435827287728857579820602255881216019629200302669636331252330618043903606309128869746083596940315900445120877713762522741248311826334477568868665028537883090126542496547953548084632296865880385581076639870555950476217102654886496591012036830582165221125491825409483868279911712331510908099812602386070303003735957337489370987139965207084762921437214065204553336843675723850266456898916281169142246002827397134989868286077622062756353411123111110464661561919831768044515250392997257244970347840435323435102572323192760306991703657721780419478814593583483209973922784034971026402544422524497040590593304092403591693866031953187994914759976198207976270991392311723051827716657269058951927116115835448062717217209654737404692694545966860963218959323568742615335665939228349098582754385377964922545004646225402918351827713281918075767881523999653409184117839179369373814919907022970780658713267858804586108472042483214792191151712189849140734643366385793006090805544080719013378445700912944851794032752193192396749672477723383440569520342648992679688661080349415619987186897478422703039884655729794884052187066453716450499185675089224796215771298954596682424964895974629638212471948011857312296714536000104981420815450540324188831886988371376738759416141888138884208449341415147511283098309041814092481547818184867339123658298764241398376665431707722097437763633730851360888229702040881946217373643623336071011535990104535497372274661989034200743493912646340982962270658785942708353311128412357195144138406700059483549807365871774209183064284530280333936257816435162438122514713212344809161798614729066488455030234319075860629244812976427227022991077731362466756228795230818580380739645293753480539860485680078798290010075076046426045339288436813327890287580242643264517189947318943142124800252722933619759473061467208819183475893437948707630384073427913713346735293835357216543103790620022677075021451769261816665908219949831022094052978877960235733275904426400934497954038987238556799986960914567626842955495391133087204581028542856958618976578317102312183405885512540321532380465076725227520229954378667434767415235535654379867070892140800735362567079969982827760378736136126449772521735915322058486872553630762600332002155439498618166981622985725731244838515744796750327717043912744110668978222107012284137619536330567968746488263180287186448702984123885345769257922685128719745669792635839290978581819091149483000151361519373368809669194300813149346093363965226811120588702417204306249822097696971439438221398695150594617821305208665747373749884039683032636932620611531204420201200435683312634594184949944192343571609328929716993962573566380489120126779602737604163992020390631097343527501526086771573064546193840379526852157409180168737779149332808160126948798707467806589763687830377470718901553616064618318616412567417419251157730464968774970836877200975019516698679257880808994452578224897123425929436235386359323915376689355973306001221472375332643838283041458305769483399830875657859113643626609807547681205460212661129120340456061541256768861619950549936956953976593960885135460184312471320229810573118067162295953047579678340865395679698328441127630894776608119446435751149094820413400110455350721363444160335733742418273147363141814029549057707715151882948603293581000867028852472063318302649421702009708375534172841594836457165196623491134586748628161188378537274778128363157914179751869842590129706017862089513148924462296067354859806722088035492505186291685810302855671932971355562263159667470200734793636211927654587505014636661128409687760929590393874403443866158089431205872760277990868690499604021256876877999878006816989624663246361648150699510022560362753784333448480363702252046633491171775447553301938882432726882079549827701682048845373260572755722810029880277526963690064816922402531591793072427481628532082993081834224299182683798382102296180758667788464268522894896913024158042789971098836923711407123168660309185359575204568595863452204739673697397587307491104473977641613167832523396378435457348183493872598350436387699731851510680953307091696782826865673139581032543174081323840105205574892649558803666884835106307655024751450272856182863643997209232890498612340958878556008548366318214917949978578395814622828746276509005985371854961855054968220692003436563589500810329240546662809678573638501723021220895800913519681035267599467638793297361272505913636222797752003403934480433033630230035229290604572626342920958874477812824950518040984485217038344099116616901449176526141761651325369503661342691531503874755168221214827415902583824652651225438379442075600416159337569885363105155355215755656185266656944700286666503394567226892116535649702433902385848678783284034877295207883293197531886630137067451696461511972719885217961864778913796788006582469013828164057722441512414593675487166822748959579933657740373011628169851832309245161936365717305939986847392410191173613093896382381799628248650478390795395065354612671854767330052363772874751203140568903854477248838186443858084921912266497093560783424075529944524807996556111692278591274789033155226602758726255846287094161948694350054198984957220481184843937605671788885399415178114089970869451426305874646247282393940945213430209730126815779837752731256023717445863539472646303677186957229090026705202098154865019885555985508887933309359115927939307076633608873358689860564653083739868285118390285088293676190551516695980793262110796631504103358472997178597644881622146902706829891217134301321671475823355966035798197061756384990805327300989851156659798953426218742218137997387497256380413486749998619876946198218540960868365483582588979539615012246839945728530627601125055984406478181029429358092967023019894406031198236926609092470537026145625655752871732053456956429845742740014431190837464254884559760552852050027486425659974198382436954908662650104339220838372704532755271159696191741987267261847830441728630716839183534844532529071227594346786180020718948231050122174985250492804579255423728591789252256912926556878211934280399045391677327351205824158817527088353369791357397839391793255125340757198027601944003309624272684113651981082217832140145198386569661945932812788075124987371716502864607457347264853978057488579480643881532540185865347654007580941085913067675161032758551890206863672669052986757670619462299835036919629679624209406780594338303226959728752450776169392409761170070305633308563265029132590662748125282232809593159447822590510662569545881204757605801056398384272055370286403260417486273759069253197227734435053847898162433318160432317816668259269586182910447375873735386667057041612715377645521526648729033696995457252444614221817252134251146243532049394414383145692882157116530639000513149256970805250208232854501923969166029586824162014041979496702419946967271748313905416639719700574724214351292047797112008365112916353820112296416422206911738493166146255397917141742244020814550846366015042420421896349350525562228647556933760087667547215150901798562062710658364099140061785969975932186851215289247982652927676502415950119522718271880990202344686902118673291384262312979652718309362595700772923245900125214300266000210253718516985248414674770517120830862264877877807439582251763242696540459748979953136341980125599296846872994052983105063232029712990875793463758533689238693641956795696503435305594984619252978153043899868617211375124605670786500629624605617605038672506976622446717056580219166391755363100301542792961022408326600661774845846370978565798698035055381795982572744841350948641257690118035638149159156739546490641371598770383571454818997668875867705757975565701442654344878060726204386012017438423030684736710999837629901801785931090525449884017394749332273413364141203412009266368784594798303164933056222166346270527540044211711039030927518069958425840666230047767341659560061572228049975082089554221812522829544870873838291628398139590658457610917921690706023229086835983521383508470373829184832391073256494616152856551298616633185508380088033576900187223981501095492163181983861572547148594903891923477504386518900558958009463670691887132890409362990482976328113895606392233150896671074049209576259613325265625878837684908226434663133914557724597034325079100067385734390459582209035970047293098828360506138508540070294389959224060071183810730573543928406039080814161379047265285617587660102195274846516730142301578354951187651667269920746042723999830890634478048464645263761410172754291190782105315506093807135294914800420934635191994350601592792109777506655249627875297674900628354361415266307496005392186742463257267120005944164378777438784296226559598768842832474985601313181705651124746153620995250100859438597630308437221964601071320356047767971523585034948710418330485444625147048404186058405389777918516575171738686337864392755728966327277761320325081303221372257413226857456967765593683412469024322781383019598590469570802342198767814681531529703718708675332791012842248853622741415498441341758886023510365479722951728899291480143392857823794019792465835504081396595590792668636774069379213406841544757840115017595521465859954934996705967152282461072906484992445264474723739744634729275064863264287392728932749623298732651128070857994511673705443216421260085194037762029135223209440640937351252129898026478280160783331746975191461147824821283728550453639842106648001950414278586627094096670519489468590086782485828766989367124993498162801837553339267084370255281375681884152871193155093937513281274303142392852896858101305170852438802546351084403889377240697918655928614998508713936620183845858737323811060406410673325319492837862915820158607482394375560109282467971900243295065385724388946504090707846712281076145798090647311851211879563829962714514525255355427443699971659675925008367712317924724215414333132258286654241480257909791577914597875289106660682927792795150883203941828738120142844587638637863024633729734150225908782402513853052861219037175892134959793992465862898384509519363350848002880947050900502496221970321798187191309539757960393608732535514456823485968676021790209516359036534044188886369169194536362615376090747129085714349820435987238773535555954787122493260405177637144907708014735019270988935553893946690235135282780911261959817996039365612441177123603132951168657726806652304886272570782378660000454351710766532792034304783515619338815181899096558374416995495534176216666611262754671617167364579144203146788649471474536585945081023176136942249731692020238214049987485137182885160764423852145958397728325047036153237792483861306058714732695494152285720095025107777136625547123270388070980424167774357196746485700632952500459858866894598056458600864259482583180221822720161760339583492643522920275858166074600013898246072380227686552783163448084490006842477821035880483783380845444697287370661000243767402904543218012155249220394505227164268166824334850629895729781077750376920181684154664221419780072027518158442459919857063863085116444828025670366942849118070559967722017294314848361739507458231686127441163396221762923972604468208683984095058707464479158849364203088991303677403019677856799810592308893434061320984007941983111859340442130780906688345410203211936289440946244168178388896103412197298144827360072612158135667925255820976261328981446948657607944379614300073132200280514811151843707174486688575466702869914286596906181330978246811659948341956081342403874961203648318728570460079835302281346623290274250981444666890648291609999607592629295478394474885777920966237652997845088074668794248354631950998609557264690180341751342054489781435364130565358393598363900000598316807906779002543484560162126695876599835323884803605150585699583788506719133000390789463073443897536801476683844073317262491162076325245031309426913427739163842991665863558069681010521400307348794974413559004062355809783598241871272497369054307371453363394945446195640219440915198266442443245560005265777864902103464492876338079060815044185878972227591378501862531385672731441258567734438182127846417398352449450885787002949653279038550743710994629241221422472449541296552297352264336552502647206748554278843635080849514830927492177705595807677727220710230547705380227439451973108365443170331871302425566641594555812107203255010377373354821162820303661591162183358625285312682354126615790902256283481229442369684031126713639925649912711048193297936940535907163490755617773914566313461847576983530355709662270246994832704172204164238259957170871967809081213668982562477034980688564859618036146145134124438842296577065287552060085753761233374106733172988707912941703572837721988082924184448400429070466789214222230961990947123484572570138158424289147371670700380423147822558181830926964040371922413847673777247322412941726060561751704147185265222827914319279567366583212193159244168326368000497198813657579287203753023344497390265044287923728995272885762720394207780797019294015802405034851064832136939135959223014142690575952032875960107381331585456957083352465709899847330811291016840742887907463905167411946353605628484564924334852488410185589652536767966252339027753310253958936950315183337840740034601294345065284492527491768443910121203285621760678099279395655981471994902691268025565594058247601945533250278446776348960991919159215819002573862707824211887874105795593556273940791159402789691020712862630859800720786778656855658696423327419763618173103212961955741299373820597218942216788301608742940583528273137522368838725700052554780040505474624505051612778918034580373290793127857652632051542352069355819107645156934951774122211178730810856272168245221314371332917312208398288883082750625759341445165448466277097939901969472170828785409125777790833143043278386846929764193047439029180807789925850267497360160681113998733343140102022731549519168644267360326084926820209552726625641881884421734535226500332216428653730560581993226678055175108911154353846397587299421603753514454444305242685845300061675272066913666328917464107464599927869507521422864207246389753228495881366736885517719721144271192706451860991927418465530542845149832451517582630835601389668681040646189144528462189145113786108836329481243940739490332167437553799811177051235666380744900396815007019826826244613497413402710977814019063255291545888681708421821847271627290461861961354591333829268464804342358991217815815983211702367611857770011008047797736757932026948913371071567910632877506378154623907395810001274000074784959940693712853530516869893600847387364805812991766848899166123960901020171453405675827108139409686888348984164847564330616846419380646617552364667231393325333984150972392828334745480152021138184415167383756771098364693672564752914416947441387101749725395849887429565519592348467831812685923649064412857480075139509442266331731170030591296164408275224116995193696092621766755624986284881128953589413014547166229144132820446561106172501466589841348902619038331787512468696495717368735170632946874147190149094255272626092834579823787652049121574041772178442992891937919822329274474557797604914152217395776755645404275955444532242642440367480621836127338256867456956248779590387232695121490755980867839453709059182400569102181039775837691192971266830103151922494282587445840231494604162771184628280423120343183384088107024451067423817319639032499922182685061957767013733131460546319622892862855450244207156098651534305766258595092988914077598546080399432180977346383098366171176571915301377114307141988857316758277717292971784136444615758997554602688346117327253364445523649337947232331244112156860847190255021679335399721092571335475729663974978598240635653962753900909052414715004512760827320671099628855280165866745546450392294851573462487057790643980933709638627109807800361168212405435196077278975000852952220605736091924877392396890690329810114820976799367916458280279150573330126349582196156832291587359172235102825620607129274429076705382970782137568817337215894347900491106240791961350610746475171791822971834348915146406793215411355119055196419413193999179669275956840396433411967237805526159860040821717376757594876260312637717676842376415361406932046526367127130607361349982199625124262826708077063659367889854995511854917025797098987516723640538262513420487615776846767465819937612467272783204730131678078927249871481561866644604174825175213315360074643180735773658077548961765201440781563595257101407151977559197802258355661105387309508897331029405100620751718679458455807369402499169459396816558767517434790351798924447942286300387950570744081975818565335973306588873126028016201881276541968820476136945058169318067446787532748172692485849342214866201191224994572939410703989532428552235542353693083963138998429174688165016241020233811219053052591014550459921639609163629609471412660746516648187737566765503738419571721512188159201777444689630082424536752766809329767465862169876721570343845260391545155568656617007566930837927277888065445418241168834729468291486302547653702214021077548514017506390641932778905389083799353753547413859977579041908601364033124174807877487682146368688745769495721165120466282216098178660822562482437530763842557827770580388877574867594889074924873445462981363410792317641789938119245109706319252009970954602387928277707672410433419811816662751787342529367215358225710791747452295273933471271243269077739079171161467091162533289331303157572939705788913735673384039949171132628854606949218235281294477164994980547259970517835548493904246569653591464743584324895313614307073886615649740104326614774784081936503504502900652522122839298776900697610114677636200788333353411607396962064261485652127346987464417898043439028469732668014337047982497462316332368576352781293741127736228219317271376516284691012657862828994726331350077938797011555110209778817908691089962191631159411617565254086118313908302059560823857021711731309214933814974579190498572305213976864039518311888245180634981186353923946094786314754655593138446731652261987673414572743947253723846387169070951488562246603172316857683863066040389582577126337776365834777806998481550141919509851018401311499037567470055145350731018311295256723875602511118987162861443576515711230970860409568308014439108580920541621540341505611964369164233169190735512972956939355641503985127509811171918823576918954246533500984841798360388514463411952248059926836610910352459531978672301735377632566395673922049105763847145521281669368533159058691428162590855673229784853924053130215235655576833746102897232058412579094047646939685559660521274527529516225444432854784718215337841174431336052113533816017486654102274623441932133504970936609558435049280595951564742387768299333953774919935718225094222902517316315115035851414474549058679445446441742422546161431139221791344552224461934082371168740559450641305994604462662966412167173544901113279999380515011673529908659215995120742824512861424668639396562571399056765951010127689616736004945292380873480674260386075364553053676644159490364897731735267374348001304615287889285435522218907761041288084908801450549425434926077019725487646497182248391744405874732590054895404034567330302149693782969665855755955160785753463190448119053823700609742108616960258611280878008674909307155480492840680525195677957826309388524355310500350733011689200718685675618498259467524647931201974347074845523713498890579454670699394519152498853138484664959592325382309668306854656316249408793845457205942727642950741812812550687930609794573065231019840427983952978411127150478469693151673179680635405507574870876953354477280167891282005494529359026961712426462482842294685637007964905203502366269564264677549660243790127992669258415688351442563533660286660420004313917877849592378156178688867164872396512139161548902494920395448936897233084595722918831944546898952406058640574106549679315320173466666558577287195198729757291762480090519179873565340799412170844710698643116771695147353967209461560108147039430807497480099632307929582134227121357360879156180624413476162515276857769243156183909267963458032502161339256015555739906931938932182950024678393771775690386285392521881035120825032422169721129391541753328021221672530491249881703757431402626048367702431560262997998822047018403692414671875483732438289881794335605876680163357675643527188530816034625162375545119305206710073426822344846641670550302673689348801952500934234491693478781510278240396652072278584783504811983538345769128146140823534802243189797185606615235989090150710478716545563368370254540638303608801264443603643247599449689612986921904421052173099620577804620858649639687251156912020215486036161752788806528923470137596747290313962363608754285409958633087077159471982595278261925115940069799164868832608921310625256283429442296978551214742040800043598479926757844324578341237558520786411359464408560582421022448669266274502015217969665496211744244993388744062414951471060676063095507837305607523633870953386952075731864448721134422690185092854664554025570733839473254008760517707785077452272517563001315622292688549476818881229026398298725350906565495635647536870308808790430607212975119435531164286506411621891703272991974440251296509866233123032258140708920851385660398095894909260162813567338623857737010660498658252536094692069262821615785554134163250563202284376133333164409141770205444640521421214057776488563786944675274982472674994487872899208904037400088249787902590017415717090080727505732617435257008215059380068611526386805346116134390735594144513523610993425951061994715060332290127847823728048253615695111383766057150632769738531817609414093691315073641318260663940169984854896808719405083702698855085139493040602840558437982026722911079412015469168180640532696117231443185202825823243020582862802877193787329474406891213034120363694912373273689346883510312035861860849361537475290082781927448786328400305977031447992074372853054895972496048850196571656948082158356183360573209951657825003830047887187864323992344448257460021037525005172596729247698581901262565902724763115336547287445302467205957584278332210934675934176793995350639536902511821090845486508015226003420691265042879084013280328490744833437449482176233389331115863418632895504660919698509742209034306079227803160874340079815820686246000343161020714836677972851876054378116309718723133795963880022091427312412018276380521925642907902110768159278343375068606544497083487572919032081129267574558188897901556072121734877153005758263685900167561185338740738539902921900690403279419766247430486704606719873312809599562537329808471558390722282908096719963465122125437368478627000254099749996250720553845402652877502932252790877280335754012760885048575720515343994123539338349106976599523637699558813262452757709082114151801142535124044304178891919696932641025842566452241340714278817116253914773688873402914568074347972661973838374713737385240010837574392962937714061036673172459910091402338690879609658545778149108252793405499557267185322299805254494606613145821053936027670020954075950611454012797839666485865324659596359676939409734999185129726419380105499998032255706678463618373528620985200320646226416013267224905948121961537388515438340312314290098080901706133622937176135488958728528648621478565416210276184132070634027347800920224533326885807818587091568987439815404963053996721242589359665276117445468271692689923147478140130829431196698040750463456673800106566251761789481368565233241404384830443784693110870963803157479674404802921729913287482215484122526281547654895698427128678255830665593395527370103673498661120075509910956788324217205133075886809383630107403364946923514644902075172060871857362602739237316821711224639603206915987892271919976300546512774079195361148349727368392300643830273254162684114553340979587252578781488249666060722304767229572804396328760898952535364381150423119323585910641449058654219662775690031726604413760189354715198768622146179547743926681340628011437701060843566639873623396968813808100022886570008753007096246899114778202696999144529469077865104012137541973710477238365042393338661185857507617289767532168750811829273047585707783685362685321589666556241944490639136346824582551300793928240541196175951198171087503816635241745014449887907237211282446292919300398843302339963547673750179698853141316938960914413892285737413201240625777010775613894506130546035899786155705737039364869502350512613537676906206455238824105469063690388006553528724694236832295707944604547601157617862435558649941698905534419651849800038745918109600797468443775464008159219604102264050533520524361065644386690628900394125729421835053871638040367529926086086188463614011300033345561290721279926155736574577370303758410940473085980932247177564394983661322701070689288303736684768188767590444231875882112411984232313893214720673249010071113802447797942329308085506687480522337295359591958488545936579647116916153844419811172456044503992728218756047622191558559892633493472833212088217963358217033047236506986191227493171600424533941111828897622361269779325166032919430154311950657647629536524548485924826255355246186060778039097303749515428725135468485900557044969407799631517308594233715486939388713657008454334754174010709676899706396851588619082365963150673089979413151984317731553290154875058043424631276659954407878121313103433810269349848969779678603506769819154468804811335949837163008914190530800196750564320497984148548484777472194353601600068392598845705234808376883316308161274701670385499459023005937531382210712659448405160066981835007739619694200839407086662033220361319484831290044577952701246446162022284623549435023260843949297518135047089914360940538189847395035406278117434408876628033542133387641221330874375624217835280111868612301187182084080417399217581269512031957245676705435540028067259308833431007165760882135649308383035546907029698301588458749471146846607820027676789159454353534112467298490829620324748426925333339706454305003112983645920947943904545182067554068286464144532738913769893496835229857938737999958193327396566431987886969467589955641919890038748668042898803250065414172319329642992684921734678233062252840012253207400596897749407498861198129417415130706704615967740466963334259235173816014862619001088009625560073178816898432409493137696737646276636643734313712712376790267082054371876612811891593221383079186445621803200715494470199036781764657256803208667037028171139732571792829102741343893356515808721533776661660080194933521721588046391083573795974350683328254657830793725694966117716719605983246566145404327440761273108913433287524526050589739639665159001598428974934392714107385493502100096300251073487643759375239305088778675491338099803129473004525976246521386491646561310520806123628703513076152204869433113713533758261642718357879163740832722010246491185071885411266388867444387779045954775074918330128921661487323612528205697132757298953785244998635551739887312815042566984940888484565005415703882424221088659798985104196027879533313698836087489028977567696953095736591722313957535330662987590340767094820080898198255404672372066823783358548808283129161649148897906353432358875306695868489473616486570315803409152218441304989307837651637159811882431062384237325451117240151503313110955229217658788300714918632778336365791051974656034988959491624013312926693651713763848138345533409592008032673997744028106679824145468872380832354233213482434149646075089472436424878245706329157282252505957694184180680401546094634896950146358829405068344356541173119770926334945450120539730547629058889265805194654580460690684151354819201121395232563147450588576141653303678520313038766032353554779409484658188832120090977771538755141157723458860419820310856585188271396582544891232957211412907472803219325805758992413630670298399575258401565733462718438416589852639317254693767895915294215196115481250315351234530834173095032499508519870984187458689217778130406990273502389376969966432373158088590085381214032195374897038899351868568631750281536125246392151898287342723283070995158627959805567302267953176071427207781532522142975586478436383585808256509005471702802734156927211204190263756272188557619252241882221930296258087637040750283455117335162271134848023039902083649136536361674792579510903497706013539151216840667125416064954232427321533974098447038914015571400527495963829205221532783834991564999692867476500645181533621328075972378468633730531616772138447479134212043469603659062898318638053679144460096834837987239191729419374241592666786450744710339741222330357423254741129983440240443343895317654120212594696535060471996072470709989040868325559934843896358268199908930304732242713515144903380820699572097099497186805152585217001939080028192390660490514536118695910506085647201208573217683155663029435612039727677817263953639902619820397052149723182874872687873192088979041888588256525928650535812298740391087505569248876205966164501309850541889027982652123528130891797373672813885702447320705011499480784075909673218200087428462574011249355528710007470311839697863523224679015216209671150383317342612777893081254157990876208576324820169349477208550008368338039360099270034928323220876861385865989491877383969419270547902060897533008162504449724794093095697686862999140852814161909918463187127988089292162782888652167603152932356591652152721742290570398913755282406575077817665897374950964991492534238462234325779834947763790721862038264431050681975071584467735944922976638861407310721333299342099621005230414141094295425285577756486640608461168130700821237971808360372592245476687917400792857790182367309607511166372791747696732480155077586896930414763372643761232411573016114346017487981372949175955695824324708429641831341153796572440770642060084524841351401201472792432584387820914618799417931003060848396130165553227584622870807452136614453063632413964597371470543314361075133518615700002929218410843826509579408696019843587214193596464617948624101551265081612480234489462384751535387278762142080524448246863876280414860283242581486500301715324857867226136920726289965382044672557117769391327469805144265060936182367668185761263245209600051454374919118312281142539710432025320873490640826620361334738544056098888573504488114159200943909009435839966226794736759883871916363372025896890914875493028089501528592200954205857137034377691757635154519013426213897098588037113312061602851100904712511207272940153257899373855271167174208609624525052148222718311552176136849651465429305894517400986402946301688104019288862482342065566181896417943199414127440786677532361717454018321843067697944895097926500911518692985094613132651728563179782601518215572711277170298328490965600630722446602025841866476999950783214875831959022327214539570343672477526164766370708919307164577574474610059011726844616278303551096317378800630056562232355677851639416499100284441633393187922723997355657900649984232249236186023499694382477578940321428718523888307812542785869433880590066795004538340486935003431505462485702505678570581440989139140584969535569336870920810142812485981195714691048128897211392143155502318489931397073977544145592653748686194362133366009541750445179140454441773236817608865669327207145475029316996681725346346305502642060991271620287488862244621199049110009007746188522461561512826132018472524203728269516098438308623293372006827910455937627388541548120238262055531377797326327353453986712191439876511188764743686579552506586274679101323795030252266101186751498021249350557606629303119290773898342718819604772752055404985295975710331379677147931908660818852748928878381052928527558020489773694157736584793834915739182644029796400954773344438293264662572664304701033413113859990165193832639774755437223296341641230092431357498083686090502345683443767499196161640427838147411877710534666405649091557221742160547111709248235722347696501614661004114050818586714964899233509244052774488000542198899542233293393119183525852357282755009146068615303244576376450577156542947625374082712970520564948484622944072769503295699029156046646651157349078835699458953223127568208765276456246355719216957945249075140285622070590073055920046777135548627746543141210218760689119168416291048930137652366442211145484796164804892111980393773963452306298041619353062104239392763914974058504673002221210300932068096502605561647575999959025672416258491377860530287799516250008962999611610503521794090049761793685828561652141453374798884801277463835507144744174862256304597548984444660170199046383912618410475131232463430760185909612158248710323553585019673897088406050392223804802697467226995657062567062127978573128743914912034082835752481395405039767847798829171546643139118738044624170744898313207547639313779665071496354666678752776941678245254835258197783489896789586203447511889323570851756677637972538969008459095221965665095247373665681742715776436332931841186454438036369920944308935580000383438919581737037528043168701814121387370393353836631358065968288448180397553008686195508443995768695371810294169963319874468559426623864701165613919336790336154272220894017552053740648008627843944337730895192035840509891053526884498434541907635113636136886919114948927237291268359084207814476419260861156432165893858102156320694535153884834120112518802394043800022546264838425400810749673795743213900184057160228424908667306234568892799416237051028828361104890085493541878982224319893067684140276751014469514536291042271231994875323821403913295863213520025427940825520496419907574693850743738640218409120297359449416741612533019473327843448672970661716047216547739028141702748988635904787510878836161905241339943005710878004953074100643019900579961086396255979202836006994768998918283321999058909631203774250853013969694932809501236007757045607733239211016749294811491144719969555605419512095226483397415137789904204930972121389303001870277521085175979185777976849379738147542773362060730079124178780213112124222063342145542131554838984910665178833810094438572637899271640574929551591644518170591586676205948326914238253942038154633321100385693754193538073492287681125890363898464637210776737382888175025233392773803770485896269056825212089700148928077426673717808416276545150234973016223741786981511970517206437616562583606132782503602714278438132757301586198449271903512506388912426580174724573290053602047607068259046621408158685565569049244766852934014386191963901305462299114359481567042367628527315829045303475434267906970591880877890030443743812434868862480230630042564457401600725323102903400160933632793669355421730209424076705798552349511744324169931994928711647803367955844984899599972678693807287382621157272632227997785559593955974803598218108118160233310648524593977074315619047689225856098060077293591388596941172649058115731244654398103370403393785954603936108447144084794325034545603417628709784015680542072597878446726344348627201355524486444519786261346442727490992752210900963232229102380040806005069186003567345245451523201926882945053619851468296897401928742076989555070904779556559225347002406091938564083465659575945622192256623471614027126859489440379865216264335809637842938119521922853574024664601973755743381041808781056985066285947665624205098186309616358610853240292072982882225190380555195322294407708483342421231029637016814358167917638652597364149960997350361038169440695124118675325708934396072886779388189852997193377793394895508581190752926630005635931073545414817215591578414309564206723817535691530270798724309132321222545722417613792035585067562183638217183360879284981520220695403356805555164255427578079145545959466990467792903139816170846086712505581484491185295296871081227309067470686016554740515862948770223095527393883364103798462034457557969709838232657955304790516717278103688806271404665015412805367679257073490525908216529542035566139475543210698793510440305048371756390570462569344129835332360922772639535343721876079167938756783367342812004244216943222663628291170707072643691632332562878436099155224549986670549514000992657581049195692781238957902732122037322753330935013615481629333804109294363682066765922928489222828964813315026226570661019544867120645731167490599455870123913677637868425976800354201285294901148536550122679027123363502975665918602421793048640677635679047821990312716639198618545988420580792343924071928756874966049773011132613077683737202325713050468178299433079627950253101679295171907301637476016436550802188648861071443941521886698092983471986752181362670340092423027318532937377587149765605818977260918630855318965808348643805989891695502073216053985932880323578301941919691165971713922125628692021935865810509135627826936961575246741703124239869510182608540520266429853397670877113916694320709296654528573320910226292562899836421171315268355139180474123617741353407164771417480036777928509328727726231891629853642361221122592569443847075711951254451151629626979566857096658485225449512680806082739967853630104581499818986107681915826553839247005529322923344693809491250783586351150046895819178880567041843691490035982668573590799976856078410933055348924199309761349560341483827004319408398474238744385119386619926428302063200264607634339202506334398655625301675226266315067799176279977703683700411068744898101029203702128939110461614823578863470613206719263600236686430570572220068039924940939326592611807776849412874783316580310156103576518355093399397283625608011989138147035428057099529872367491765226432376539529726956425304995758485074718980748075450216134505250552340915598043068082528608667224972788329409243258733569729068131137065723194760916012433138134317890827278559741870161063323191818317670539766860082917505753218839710404138397351113230745825631035115518950346678773005943794223430284766141230917558224563781272416527584273971247065523980296743451326753400363818425850758245591556691099717997520453136172880885243739002988803549959062947139935310515964246114548340642932961088905451988941398169771161948283814940568305325361352779942325215065536695112105375756240571823799674335342448574186139206652774257187049569347481798711123657494883796416565040232850529329679915917636697938171694940657849282923891346872988032912637405686757691269739954952460471657292195669860714173960431350248772415851287844751151711440800932960590128546517682500897184852720430441242759222983845512584586332411964989603454104111193807571095921404560043276809380571534292634159127683271571187899500567749487519387521452057773577979878939616994784946519264826272029558387393387738080843964900326275319903535094126262101528023378934275250197635433765980133764531802160328812580173074533913309654629764068798467705892393741401361106434846313292781553001013065173998096290859118530801427933705380385049159606130363278584515034257657607616824805720904666943964387300423195752563378670985961510950012157387781030944679509319659898354152061132681456996337981715527392291062897574699931335889418660326659729610735633037593368391974699759059183366553970603256526497646615307322536257683725991149087678425224567757092217035794527926401869783568640600463334928293925257503323149088607328851411180540258506814408277926636626952631306752420556325369812700010401129740157064098547200270864625219809741637049220333843028049752330231241831478052787958448558027622563072735109887428304369907776832803209540636394976908925279395684781465309201978608468193875697016280826218343040541376005485028842584785514153102534820822302440397784112675048261530995511548452928413207193970050189952761494537269892378587350244960197922859593249849971840261689977987769072293248994648809757715601802643206839423852188581537285183804060478908870757448870915684845496755913641352336302614571115112659163904783459965426127195359002999864791432431795779893065743670454802884087823030826104824274434002663059614932990247287693551609428274385535786950304702529992323735420102536850867452393669208679568700762111299921425113656380303695941577373003955200719849530533690124940424235519689060709033139328760012655507356495155885071045130050107393523875924903723549923515672388037312727528193634554971178813300340207105027118835183325103303779062165497650474919604138358893067106523182660716241846840639671901193839881894755317619360910370205932310408933897494906783451968254756225661870071302340333378786549405183208834783961133898378163881108460756525586091021544104049322156134689796870924622028847486312113578321038373694101790686202038576123014669190964145564683648139616458020181232511321161765524406248752781190520016609684153543596790102049244352208511511139337817806763349986549933497725515349408760243984434535386865555976337353055403026166409329377378253043820591334007682427203656068150770053374394286867407606422092262330561445487616483496559687540263496669670016424543996995339229087476056229762212224248235077121313570174510977292290608220216155528514323997583936799618714683723937842193197129184387329192184241579519786933853062694206568635448727462131221512215195872527036275037607137112901191116138281793193647776174909682895446583980093142148426584339481996050352588920920831575801654553646744970381309651038861348106066596955766551460995387681173727554719517980614008589615304529609399716571770802717352067472911539761058670466837248570143958909099387156375645200244457654964378404280390400633584299578405306903823968519732829917546909399212765184459623587976210598756565614725063772977860174518115487426370363163055708611512673584993973954729590916116256695521031248710310120156888714650702163459538872564448456970378793472585161514832653443428079146365316829329021761308069693680740256896778174614303227612948544653573887969244010376552002398249547871699378735121972822121693114990592411117757912446063826220201672568429425886392840448121631854783213187065102805161170505746673742500547753847430789930208985534079333062006962010125933302226554858125631861548142951510058999757036512467350116924684823628906830505525199003946584548768596323571700639424769324040360158097293829126711802882888574761091506540777750305866673386478525203366468359352334272675452521598250501636352259187897077022774185535666268475842100825550417429313253972191588538420329398537182642319835194108322258574049144209707422813899275950003684269451838133408869453512580060169241421847791166933558554274135779406362723367183757048414398366908012019703180330449261841575263725927719386759419551821885453677795430238091052044033057645339159835978159130443412733121932323271189504738872607945353144814448781639774249137725501455966997572083713061205463752089344005833616753707730105025790268145422150365229522114790448774672683244498417911720358115220891155100897867916449933670793488237558139868794489671795237159293950802506788205928201210451007391897464508243766726637288360931687794231278992798937135247686582904547856883663537880959179955603393785425084250779745346962380510030499992426892509027744464527049747688501926302041786704282976061418394366162683711406829633182733114849356182490975886280721455909192252208296412160522093493762000744481420541046219258872385796499303414547332213628522741248707379878131980712704084498750533939168082444048731046768763327503274621865377340835889610958442753503357568671420111626052486674719419454204824696622253679365712556501359692191927138331627644036648719234535853298015459124534554409350895546516253258893066567597101945126651599330910673621120841520292590863001544083410350878579643035468116044699515830203629522029220756037503649662316210498910852372990373281810714171506047729749477686926241001535468311450282602874283014777847309410892157362120870746672477425105505635801112454521074441219173784073523476114196492497678438012206978497936523600357707994314824725560735954287174425314035596412882752431804590901082219957571375426962147382983817624777037249580551945633072177716063387637782683154314926742976525964237950366475259792941243282645371193903234217743698006443457963393935045657593264461807749240402615905582043581055942614034386612731441485583515001565942214085021841163670133061633039264553845356208801435705228775837759513777044245247298085990586845570692333687785664951099018483832297357591064025542526619146535436965134710903340845492854722015194315786199703988884828488345425298768761637005790161918897453660598141846696576844367657188154499064417129710939056746684876767889455942702569737698851947353371161463462374068479586907534630676971224598313025529134978124282948169213486473468841649036759356218984698267277095044759717136166539726600338709554870176294712619804490562170998204125568505346723060426424658124058563843966909560005986962612982715197079497359861242794825516525331191622831779120612949147148848788734236475332666750701557090136142629041505301400500718095501065753874701169138753019927883603624395587254992288323534113650374395002906208024703056453885860880138891224954463914302373780864521454813184855760988263736730287266038232592128424051384917701489735878646122835686088762070829859514417914474314517365335751262851655330957171694969217318280131154821300598433178003805265380082947156626377182241155319569453291335705351494735053557234066954227597851229461025370607698496479176891800673007495161332867815193212251982629602887390933397642025278553099420234789320012512593038934236629773910073631437925506954525430827445948796249524979332862623977150444699297667484068514125097847940207923284605310157824052114268213244863387190201087947624709615570214918198798947168597944952737818070524514098071891672154517960579209135461255419709985917672317088314418048381721086641384384178329865307928452975852408740080698083077265187443845304771242077243272722203947108706462543197911635573396796794167244673293438556470069429523241172325792861189287914128051724029364752308560240088576578170040518677406204868762472109614079697593661558674720964605085865143517481345660881621989016363949383813894988675211765622780081143114530190332662091929511556419134528426908368903961413573839045992959921115910882889260247116198098120922900353743561032693214601279211244426128096767937079418671846706982377310024650715740195233940861999530257237052259034377250522158299496019028882050160510675134879565588275577896767133520074552896697002938293575487938313572736126678005166834335206179645983787409405691955010969859249520067082303666982773229616116826752743886423948697187944633000108918247706148614674025904573731337633853097787432512061534983533879023109366003723353479345287739602841356952056426901248445622432301757854467196397419181816932374481498617398268890405292638719039664543593801019115379425301822831797509761622082173382526739374911604362739209023893196563924987569879332218637329984007003484062238250524989130068474055027994253447978340609466819609838533708542860777149351439779693824107042894486731562717779787383154345187845933335522836539038523046244249832491676886670289404357574942614916505372820140357571585687045435311847781215802662535204956108202182467570439694760002625272302588626417326716252160005142516304783069467339985534816967530254129949915669960047343230630608545738945797971763843340461001459118228643738119973112472192003130581537910900737733994543489191360221735555255185617268018113329745095482288477404532624717641883421241835482188855012645329889339702576369360197142924350203619693459232471347299403516116466653410462856516812927094397948669864325035846888533527230725247917056402313705453114253504302422074261301522611046631482065083248217340004878195061667826532606793146202494071731671937417314022665379082032384446168942346091699318700397841742132551969521661559974904527081155809244438030153209997894542142442592882142466688602448412886741023921902368794704338332254575232221383301570360714732918121639570688904807069771599141363007241305430715175719648099759878234598300748653050550450969566718108526767374689444197608161430273684412355639897530943144476896339898345298215951393805522699677572927822851981381699576641832808695892383124819491668027837296487833983257004232843204352426208308787859747392748258006855963503871417101701849018755860170803554367518246533822606693110477685544560861997343137394286882762280881749313675337137631729962826157833702511304505439843096644952809399589508506658519348120427282850118502039488095215245779641790003833934277152564411562046413520281096429309593061590478557415735015378275838485307519119226077985776151283773228944080854161522964961083460179132898616275021687955942535480724525349182670228696522795977575652163284492905187622157517088961355127174089995892885425524936008735228893156998152787558805396832471346638128024261164972177642672112614931797154772682857858334539906305825416810573727760703376152192373956628051162101048626869121275165446250115452967594433270511587573395766952519834351596147080153008175962799312094623086280886016286236878624021845273123409569088598756864397954665339801941295936935034645021492706452358461823327781626687826693983416407593916412447819602468713613227017422411225732915317089603129733826996893950900838453096743412235858062783879185280330981102109756474398799104183292751530338961565123618204498126921691117954348261174291436585539611465279078335346947765353026370690058850448254404258785083166026952780622219706935840137593639351405184337818005249575384229287469569174322000113553197522806026218712743216002306533272512523627848001947606020256291144867750400163480293138525108979021177915947440096600991027502418982131470299498688546585689286863048742331644072608890610780930702225428351029500715505873788259248537670848470162684879174398713169205508699492520457112240863782739970032582601214800350503586162620439842683294123584743326960922565650992203531785169147137989104675353031576962520778916185079489425677879009002172029670489377075409699941558605310369220755352813028940346231723356547200293663658344910520858963249806902042995847028501527674075658881878315265386621528334990269193966600087228302121463604187322618804449283862038456986272185097169657499233974251028045289545325507379597668557894125006411795313754319113084266672995373768752208147093846397361678590428617595411866739610216519805033908849514117499070984013687613837407859985588496576228131376682026529940049808503955410813398633202218385142015528373607997001654742958005200069340964950290595253086129476808352994307443910782103312288727578144484284039044925984157393922248221523029889549923226239366330010662604868104676485606629480981530466249961776635226235863341270818056818525878238590420742999011489182765573264929423931661648393000402789318664701331558563456131447813405712440895070695545878948506823840430958058659003732981186925654508988038856417773952269888929748519625346576770983210839584208998681788040023982559229679604381880897890743592403042630166712266485847801176049428955035210299595785163021119551315789861498656488680220567015486393683810057601444101014820782197300054171252213185293531252974713554210885853819911868533265920486791610447712874485158735504601782562205835860627692320743575657550079405720149601607798332810796084850241525872447052897828619407906341617458032058828578047879643262845930676286532707637337285980887224203416123227364558174476139830161336661131609063605980966522706946190014392696792110512031008490416531057845387507795134924980772248324487464339127786154469847253552560296760036615499822806652136187494021523529279133432778445521424106072308471210819223987009836359810097037300074211572532092490181977540354583987358313507836771977212287547274815852998420153347744698740040153120671786486998205356870557115530869963303382157104209516519966208311419525908817777484775660864451521330698236562918465215146307543899536329354106939385899255095350356161162948140762904846128696278524902840341381305527015468726452206488906074513382899316057974936033052247487749733494070378094049052908227166789891549904268200364806183031838978637347310622684665525423484699009089085713474439747265390471087779563620365574402418695105403670921786745640462739432781087328953412807390172744213185848284191441091940486502978277130657443317664784317875710399547063878694077326369968909300431302257643158679839832208766984871758611244879293345035500613316192418648618750887225450716519957752445153073699772927210661723310900521745679028032151278354800683041336866610790046288200420233247550763791445454186222676483330875897796793262249781423073376769215368130683951490233338591258258635922845760195999466814302750867630641091406332619903091691486706288970959418948594188015143643554165728678433977573599040786030334838442692570630223984558170679633679290042394275765696486012626344681420581730157241065148303803960386037417953650265058693654382021428260028910001444459910342064804615917279717459328194982906614514945811788912425811425437602262288163930369846069064218027408880810496084844841773728950489495972388357479256675407445577629660066187203870033684840441961777307530416230769266455561345763462888220386027120461371669144121995163708607868128233201197433334808375555997353250208544163183126496308865224833030479829063815578855289624649478676332966539870328288151439400465132751271981443383458980882915825508307531290614318264223099383435737239959504662238860044142300934645547809383640194435712816125480501911563891253762820537454490193330566132967495561680447884625745492728894302088296877504668963764450537566841568844357978263160231337602624801528320812679640899167756326070030794651272888737827636683070960280203564575186342319463101600346587188751528840674061168188664882779493752159170129076379669233613611523160974548705594204386790769785899762701246110959439528979443005692675301175589979513699232283623127844854570169784012141677022711078978437591631407621945301686008950195653715018749664437947288984199855302950812224956223005556087086164075877168710530223231699922672502575683573706239445521567336678753326272492811334562941612391151421966989924450479207817961211856589660106585205191920369027827034841385592762731241685327930048701898536755007393435159747108464658791413315926879357696642783045570467487535175449215799544297815694986411647904692228492459819813037309573091522614504378441071542639598451683628238472341900670379434444240767916705021635598658472377621183042627231560443333513766402108996418315329194421496912114609475167213840473960430187366922433373284923149684220443339461389757221085147501975961866357682014569384490712487415792405609533144802146625931689510798561880600439340827851698836554136773743461976463314619112952383752345637312083218459542886915830525709670480735984756390755284696957986655229805257991488914133833562701022062765451020106483569260399972358891730511503389080192320464159836631798568103839518956556227612661965833821368621080418671250108079171797495122289927674388177992692761621547252700467687250422878155997766730946583212551484016149073405344471666313387081212280848033190461084186277443546588847266080127034208743854028024680196710282119005088501827793704233557709398632055183253871543481534171614737430085131101069179459628073301322929014212194583805410641762498137391230413233456543841454320806345262694914586341592600695970896499658054508196127871018458533307856827068731808052955368884029111923309797280780958652379637700215869765638507826177566702035872143752259006464437418360964065091185387380620758532887398647093604110473781857632834574404740994917895475031145486209878708063937271973664849479143542727491741678123576499838505211552364496659142309624690003934805593865632882419128202574947342270846723186910375356608304291125268066443608796871198544229539616843872657366230178621147924264045337579869178499267791650537172212887179008468449973961426940084731521013910762653050216325785964782106935602749306902143250848941856707851122818576121473941065226581151627576093862799394707463097557394900635795006577252380448077754776564726983927690697048081782768564013287001958948783138481732991842754951531140552968351763033837767209307786024134715775052312925224440216452812766573871422383604943047150567083244763447554083751202761479948686913499940917370893332244009595913077618032957830981376170244717913287308571216628159848404545772472080326439513052702545653649119848555944953920687954544749503932823641917042851014627988091454498766104639941408906690012926471543181620771745965397155233797387022626261759243985966756965735840134149666018292399750715016717571331619324705024716119746024939069203363592998835358746112378137681431911022229791024910984492783568112052970110654031971522778977098858996508004582549803322026062522219514569991190139428976009748278060686973435122066003916307051980114074484836189350969122386002340448278296978408923387991662999483762049130874372797162549933539529748680239813527097627404257728422005683223308744652019674088693839748204946984799013412433619416316552687177461862077279788037400229985295796423118670051323855807543803561221536314368022312049880873101722035205682824845024804138918659993247019312559983857497962766262654458457329206240818031564614312315680219853368260620151988935919812785289339831609495407305804842396942206601988374123370510374254698329977386042580795090830028859163265011514868978260189764944651269425473808497824627797200348681076989621054882226721223610781039924028605327879838881634472586406667249524264754383696534866332356112567565965898795083308082659283077394439246618970771643832257586760345706069516981143418171314942275699782156509818876544492777023511143984049343079731684130921066683274173741703709564201645041088213264066738796533338862379648135266587544136646585972747322138064871755351534368959288136500902300957154862231361402439607737257663754200768235164522248835468691956852514115902004865138510748764655236538306948168315326566810833254501836302458480725285076571400101051668091087993052024641104733063292178787300346420704529756607427477258502813913389627444349406369027894878973783170589495923733598418252498560303476035083164763820946708115875522207545619194972139078310560688926880555623311023580390760115089391277095671499354093121864595797235404258218016303150252097134360926708250497033801911961798993791624697034049207475602689687673224311710573313166357553534762912464687947099849584095381564322859869199323239266664093862397609236222556600505674016502052140330914490432568409346937156966801681229543434949464927132973292062968700508342315558999348337713356278855252221380874808513163021813931678232150349823958460435648284754512779875444930520471554498432956824362833251463642627847013939208869729649825219464322456664020398917379388644329391791392947205179078759593821128781934781380308836291273552693991634374818038269828075123760890936316660128501993820152252495165229713889608101423962661793790034517430241801757585434779291657496265828558632779650993410718120096743896056897123047432785276271631145387881146241023186999050575737702096948535739452833368603261678763012517725949584663166958893674951839778113033910301343967404521351968195762695338380153958524546966217769584137378158379630519745243315116513707504724101546936470806061886463739853483698570932551117520057569139818752437302578032828657609401109906699035222360418585580607816689074503518350040703422459523768498233353486306482735658385594894735988677420588446980471829464419225343346918475789648287941571281269877712013350019420185881057443711445411348241114834863912553181919301563008816894931012348134996719510296648025241289271579387617738236935497534512696291085226066988420419499939437494286835363306298111303968668717316378758729086322336101242056287809897896948132028986500356623065601182714072811270029132531571962633968170319267560219513381607204989931096164068439594593252274923900262187198119552382646625549752222765803751522484185745027955414721673928634569475643961863657578079107102331268352209255027303180801079835880570512963095815355715406200782824558224762885163691418798869402442468036891914061375328704756681903069479780861867655798212649102961515370561111662077724274824166162235115315032463403124274491663541590618651758631359456932416077856960713816725837609515227067265456938130890065686278317560748219310900857538532234346244132426253927479915708891848958276374961090452653191203918163145442690364051181850888192070404906747356250697278381831150742290720091744119081485477840351639932003745492531275107473886648319812080283564537393303191500469127059330069535731117211933966381686233132701313964342069353958268439900732439643697901520855502696316053251385837031838316753795095497389532162055567446916887147844715524631340606451145902950369321831844898101816404029111806237878273791749776833937074299618962729777820768880419875137896911148381727439145007942412898717113816184296409644362946550484840953269003129070753726978428991423901975946532472359968947987846918433677210999190479005098996712363146077911682562266893910083850573143871028840168303818877711997668681942567205459329220848780519101469302298347337935479077997367339899373678453181137089274254823689428599905177802970813461718193888515137508477847134815834442293227399319468789723260326263318551281739427383120417423118955795646033259177231404978781147411182531288735339827166222426164420352747194109300324848601372450862586728252097486107127677837566656680619044253065012993081346604859864985327213842758451915339434441147080857150187316518477771393230893124730540381069086180072095499051358644537190335509410127765067084956922483838180059032109913187380650791419432569518028938273897490514664204967498806924779515899721865573228360905632737574710306345940411783016916269664815620701113781395812057402470984508984901606527290927721823907823165695564323677209836452111903921500050789557973323939440831063623713900100009937291681420445690460178866000257240998549559375906593959927037648554824648266797741850407767533285099127167106051726790513579311075292348028646411660490488802422339914401278239089943377310506543517453932844700136391772739045923649793003469349064607480056814504475242421894678659029825234751432658665293622546143745917877739449348537120313841957072928108302960311409783230400683488929190723133545670650040621896980524567431856421515261094049577626311881970652510403812316329494350634866301111456370927878513978154492372202756924627573396312554752906306396285850927889498869162190773868635532729793954464206215590516910310724088360629619599256336088953957986004579312018748497852373416945696179542026424801498697207387235639360871452043372654864722510124552371040499223313629756913326374273415841320816928259663723942817551432746766050104707438429048262997829117193991342679273664142295307714381111054438195698301248561743775680430587386486508704085511957238864900477358686572817131134212503513558275397969999615303831783281539381985966573563161814242291376675225853263578483806572025243546922570295133563511764887490656366066738338542626504810709195492442055477530939040250831266279728158532537908858585006028110764664083483720043895225896233027310824967380604716174849375827802503416397962079638200467180557452210319533496102014874244512997852341947063077273192011345559385296720003507392398997168479031174929162470244025896443031065401552898486632191446594062111837119187490214673742947908994327287768715317892810054616358489317630595026916387170048965265322373151256824818359611320175076823955755345077178037525787068335401329283972141478063614596993287149129892720418066497850781925990241550244637037217935964550246593372142078944373758168514518138566393322549889077543414921498814344661368839610546756729165056190630480482804326983392899753875089658868057496978441555381868522816982440694124855230558002289849521009452272919762875058154368297206637225133304716305206082140239989665399298813200610199514807681944912124783075939998687070093340644912037700682477078501300738970943324136135466865741817883366076486579123741027371727696715653931501893046784948508276118733296349075626093268894640618164428384470452328703071119499672912795209490573808772400069281514693449494162209858569902890744788654526918414228798128683771193991450429940189722181963071528073400657847204466075960588393946914268830634038707981480955377419823995505469495528082693624878617704473889598099268480963142990652887016926048216913233371441741557624677241446517925904134390277757665844803967244397176167874956206031433961535827016165932209210250740578539565122238316041756579214121048778139569297321842270811046502863543008074676706446556076374136200888806633778333309950609238998512754437626614875118098765578938810003847469494315766235166105141667984087698423577711938947754202198009579810673685681884975062556832057011189421417959247878190430579585883001910015745265778249820264146825480300600814018849747298965373428087043893371153703067326220259921878075859015712451851351852306352425367685761238706559685622836753873645302954860971425948363326021801681538568432904835677971986058110171045091169528587933232946268300546362634648152426142716989819686596816065423245831968215253002961768974215775949235844352172763854124035029386571357229500084116415298978311201625128498029876542710831030700709586960552126538389301792216694462078703232460757151907780938994290761964213569978477256277296535378603479754949450854292382135285591719109225261588504670818388117364548237508398105937146019087456159239330106435973194002352152332582312254645482628386956271549020359416993840029823446143170239018418936940288782795853554565155433481453893540275189637072306421684886850514007715219406863246257692192206527076829433562737483174122410160374454513468033333740531732942221488677654538339067942071396257343536484701556933116675508929429405401972660587030456278325206267842701605968308832386238558836513101775848704595434424236218160021509626854176406092136070279628261142060157947640830964219125681737913338544522195781446593514485508888970038759538896397010448792938134408272897106829585242237396010100800908478102614661986474677097111680121357405648535977427893605505422119778032214642687462447281948250515460942425969020486527338124806085459532996297125284652532314044048484090248109066034525854451197203366243911544037056913498404048246676745672074519334447246772746781819576388473718746945773268817517792473146920237646630214288703627710136046768932801333849363492295496911658748652897804104739011442544586294872938308027590237400727029710429646666144177396883162585668493643218657457459041166975069879057083598623159898153736997313975792339692693954098106472956619514934431443804730584041607768229883343983235906709089310997215978645969907051563668602695581544727526231021795544768183565712075256965050666469080232948487318652337312557912110407790527501499550453191884220851426952669907015221573951068753426377271831963538636291329729860379578281042133252655595630780440899560102955400028577179687435962875086691712530445621187493730577509514854286898828140755956438602794245861187844044974577837798247207674160648853548022544751442038072287028025701881985700298647792569287503406940710023882559626059694368461332497186985683233759871766130262077260309554917474691104270033460708103980777643284697711189294602964458563679273067806701656331629220542367906189441930964181460543319179874390143887714018573444771487795506496033499267700591359271971459016560493788816906412468474538754773757035068646791065703696887272570593773710735930231634167095952728797235165425560675527407021590146491816946075218321744810497045015274411652592642382494916717489549809612982538500537192120053531920257904529837716689045173962080818685115287753368472551607161367443198470169920445224532384853701322834662917652146843142823552620317812081380393768752604605945254835505895865276487682408957272099249825077651503486138103648218526094367590759761920822485469136205259403519993724251461802057223278354765328827309011592496897302939894691461967117804903616818285459144125400125599939566666208893520497618986263542741721208168518077575179747484900460404515626666856300096064666523141196474537662179676905808034264317307955267278699173573492341507775697238435345782799290183812184920464281994436156194073985440226897305896607475661074433000978287538386846144431947185642311036230826447291179274288118722380323119311743488771080580491013323877805545593965624648850971638198963111909934107697090065227242158270656559075147271342683503705267605562097805209705717395111957530615522390147171972695720719346698364525844879779219976886887994836045621860016966288941609470293331701246724065027635248322345624222419655512680043860535181116014296416563439656979812506163383966679695893620765792496772704197217216598183258750328661817896070551998025673492759061032694983082777533639198625634629959900933031096530740884960970094014177915565706761116125766018343404888424696652984042237477544700233171775535838387981466387131094131226267210414587628114797394026309206571505577200098751344763016132221141850823449537967517517894970158232467300241974426110780835515208323277939833625940078290215032783406192317931866505983648364065591234777406931447924206059294403204337634591933883496761870467522115546248378407446749095752452107946582818076759846256624991081774688590852645609414081356810528147899528592381031913463549060023057850641109797476397233145687393277552926846137195659037126541435708167280037036256931459276093627327999087055660063441433724679995372395222376129324867410714667156858404876023164443804841557354342679199907719740050688480584250651585169172358187324636841201694723697067867883242200721990089632692533543455668345936350058187817862067725687618327320470678126822244637151082297252807905205004301752303507538993314756080055433268264373449222938844902966927358775678918670210777242002950782914832906054827661629208929981752005712968531108053930248126276561326947566476228475362254507504999824052506551145026963737646641292338352282037741549996171432025227228497151678198150143685040513521531856218900230111353082993939390982530039753188196739497821214174644197337092773854100461494498521008545228651777174109078732410800844994301291173451636440388022611257920468941649167570118253787276458232910530766550588172151651241953408173595709671090996126690545970342656123218583476392992537723831661506354007173460916865485171623657241036955914691830003327325091809780723433826366650527768316512125540985723914050284291730948576276392482400379807249584468992358697829172632859184268457032916612313067427194063998386856408953172548580564645828309337203585575057931917874147026489589197982050366374970967280681770490687433301847640065111529841232778113916449507532201548529393299447631361247576279432057383350338561541609606186666878333172050819191539112346569476893633159668755482515271394795808788995188257796269207570880614692518098809896766140487954223462229621244640306748262628336114276618929543726450700914264592907454167974829395869843028253318687960578701928576935047341318322818015622875827000545757219068683191379294199169679731637754581791192202895264291814010655353356165041746537969634793240559471334073228328508283178520130069824713368536655539055501035481718557649275934113873839655406381482809474848764702887218092162108071875274334925273725153521606302065749411317334616515615203501018442251472786428935057490977531161235212407529576780699687237106941556686784759110915176959194872633126187776884447153633604286794849408038440004041470409121587208832199400645123643316837563241900337731266535818783633274931814216630683343493294757382020004269155326007187084793071314475932976242863664693212393561392905901569123078494882103863062698279856527387337546488579684839084652333393169857408608990537226041019085604634185417894587751683332789527023225257225945493831071472789245130387579251048272312368068419155036183332822964654218809378534373633808164075100848441826076833461190063880703118359588398916912687613371097800164371948414354107476308676461232603406393851261308751527437982736998010095894055378387604456320624948603978963333474872372395297032667076783720121814399203799559815111199259679689511206631569775605629582143517420298042643885575407909244414782703185605906721923393360709212407324858088668059134540305509130967310129672900333619903605133492961068968198229374221980770121340202411792492681471844749010396498014400116215360417019110531287617476942147032611642394131206890470633000441393760383431432010751804880510330700089163616455000298939771032428803592203371274172991505923830745190764068494938597517956078513207829609046733224182304019220884687017038098616799134302119074034775028534867926687015119040579711049217608288808643071400709214685109215056715718122110778601228295827922663455700762703928000344254907111462087481898310898894426308430857193819356638591622993201534398676133077175141842693043695952650113366433790233819279366049006533590147826375861103677753724117145174349151941617180419112855575045640083317062390795660703029454616486758176335790114837216318913744843939739698386659730075226595119026479816780658465690917729345120674983630079440048481766865834929615319119745365479952250515211721926118275858958657066242785118716414643724658941768621193198617558414175695515968197614009205353317931521741216210999533188873479582036904391864694616102086769164136197926050826722847061038384833419141431784274122604335228086177108349217461690664654223126024443815177767026303795623149345219501379229755234300967713092719640468958354969957268206196126559253236134503204422409353505077369310898340635099008389829672840234500104677874181337199409612926357166090530636682138977578584307117354159598509377268732653311631628413406251238713776232644376663531595787290421770269130206492451190588158171732678314547902874791013293765485885743161166387796814245447520298760352440681987548578665081776933965357589684130274640250267824539992360862771106231258445056906776500850016245293471186655234538606889233881767962141265071296555915484384002313712061838649078080926603490675993029786146593941432502726168100575133169874643092252690222819248148782031714161225412463572964041753467654071413517178180525650122927848991566819625026133766554996785008828504863813280340626362328214368001724520671560169509199459151450131260271544325165850087570862536168831486358710185347139864650366204589895033853384427252607787006818311829280329638696022766053000580477998779072934922913856217756739068479182397149162843801696234612817087913540450443421756275400863657797858991261025768237739632265133273356227958256541379462321086756447212939485989271085021351439712314231114057688302905734601682958961737681458277887703084034983903232539841317478877013215271122865121402790377639811283782581387782072654361429551687180725026124991353905006269187906080893240095052674876778470501503304057610262340665133712579502681358781207446765977977851166234667783407976211356877280673340900585413161819887836219917050047169586123879208390925147272387927331093507814187362098752530189006691146761933720225667642356914513092373692433254253299365865619887127220013079475886820479491925486961152736066309830139006368455088877653293677874497821907290457401689913500981456766315069553245496201718506386531762470271947403963086308576866676869014148605716203262888366355830346324882167774724629635147034556466773162933235434311218409521715874880777745455034276932908571752237517204857190581560747550276545233713470300076580186293432365074001644905629265583253975903596675122383697350973432136090246324548154813559249969313469543285069350668497100768737025719612900495706566493129232018774676435902066376595030934595158268558764406268729760226085692838859190669934423624790565654829363682996822591857632371932871117314799790203708753733296789729090340987765614185541583215890905584498018756758707980898514109102966934045542153329046127986056941269971228266713355632227797303113969619221941184330482892948535874746526451842629856180038775231372874420365520062331841116060134600748124464518083442159241372820154672801386123706953570969595233479145712036842576153866382058560618612554539062809717610973426027856811546178037688264804684484701413164384687859898659760983066920053475321142940748430138960105449069566644874567993185529570774261050305044310849050445880544283054772648805613759864726869323688905045708320579836052707796761564456870356337255519070842479634921652257669014614217921468860626270759403774396923093976399905775791727242914601205564002670403311308004549256946638638442944852209107214235721647398486701190756221578780500567501377476282035332481053751446405786454350561577823816619030336820454656120982549816702097329757017284481181076598902717811108956174734296774568103136244324625329992476874578435307877147912547381760347681708354299724922814476074713266139505616165767500850878986073477923639895538095744770138416556694269643721801750581844478813807194040710015035546535099757663517309750590203806382941133769376061848774456953600759842191782511763162680839502605933960191201584444058506752047289489140762634860172499962018040631208545624977720301371227753962381184025679188699565143214821895605574323412229443379558215482533709856372319077384506661270841404319884881125233729675769322247325627289377140519996589900211468589479553436252235664826077108242830742200374938354093618025372904940083040635062161981936155018315713278551785658266731371764752644908296904082343714753463156895870235547320749044650166868488010713362610464148147416973629969695045074893359604245631270908252280518128740996429118310443204555311532076735756463986723092020563363108030021376159083487509479630929149585666254222933994843331248871321709523878238248224711298032090562220620687998677781227034545297763761319171212905402465351549665981176925904064236157974987573009254424656180439436745768590108833425207828275582935414796966070112787508097678826340059204837225950255261609241758960986501371317485015569114297401351890619577473347040876353868662413471301659969534947679296552208045059345038738447858008648858762015222643588414911582342297933358771310587183827042752423606674697134046622596224606577878742389105210670622510192487450274732674631417241573717611727097357856640878746477719988323735165871875665532225151727535680007866784171256105689686290474140625517916453408385230957959569372126380593471736886588310610594906730805845292511760805618203116258889116718999358201856925019294405988527761309217776494303047540385923037701802065575860170187942883074912370856236037624045118401223848754472023412876469778221045823054668630826425561957042246409076168069131291030105906088618996764378060385292967378032872671541566035061617216658744352282088791556538699159186103305016519348392177279666201092294526686111694782574054795689078532688665907972728601774724566479694288240533327074155950875295725268363719182864032650277006763462119865506671220900261953289179667242806625924814884428871666012098783607532148105722486825836827836948780058969311229733391146756777116491207081864334208791225536611852109949667564115951427877112848573926007274561124333057842242053130434142842114573607954791181937923911883162239638141286233766264049343839052904211844466824006888458788833519162291098151058863320040444752229118221415615390967616138915768096327462676782655242693688559101709000490045371917363379572448258695061155229095654416630356558477007564242269010970588577494133860181389180405687159700955534098824395804180050223307916251851090350654381700584506193733540484319510844449796618741178440828343654576557420422648249467517673474985928255863625596040655148499725781263082007522847072241231780128476618383210255201596097289638995792212799638030913730715152966529675650153202447442017923711251739698898302873823503789158673623208998645459902317967822851073397124841943195533783458886767873866808385559143346522387828248650566930959913925371155290664982945208434048840402862073341461027035292302833748927200139066005532902446242889687052334485983865729730429329501302579979998419764699030592923072110789374843883276722704928756363586023351212113798429291223792850843673020267405116699920850293312980167693836572866362508874630751039239202058512061908655555860645891069788282593558735112372971253409247671163360829040228492807218721971355594337155590662910596819324511454794999421489452177892649885556811789944369482010369233234992613127747543113298400788918963650228104285132645975426753347589881609711100379457240512906190447932390230744501674903691975969257763300882921710842140518209745862378665613614163700313433338425929711619086368131510813704953636890601135061088476744048746344118182429524787304468837198096813005363465659875183701314087977525146463736770118620841060278454347613535045748011667197611642670631790498783205619220115683885736562032331072091449529611420205589830572638840649589589762847528312728291267215373982370197312019926678363344088209555017481877392148515777876082030927437262615260219811365462453767074657786468092867529640568201728502973038631171111281302499937582468206135453899939954761062234555759042489974056167244812952547333447322367299876390266660240333222747514422090354066728912903150269309639177106031716622470676237280086919437846543038314854902323373454639598131108362145408892950237003986171467245031008245188640246422672587527103062139127978682432799008891639300083729040062376364785205837616631924337958512169172468711842856938868194748759412254512103565316087096138936264718849019811522382838157962644921434884809344267982197376355049878168399326601980959732374334550771927032035215748378859640085099217548731295504512393745942675295736147763773101091604142604874788068402570211944214795817397148116849138609101291380647194817244608049084920485859434222971584332660846001697886446939882435786715529086331562567888658547646432365575899676811710958012813167835340174933866525844605719954662460975377919181608127187939652555800451316633433200641513898563758158931716912182999794637599981103820758631784632932491698840789089378835111793770431087500582431385147460499112025247970868312749280890734000912371136225045399127557107611465395794997647827333561396333119946414552507294818991289395262269016216914775273382989780652193263559077571210595796191147796017347411631065644787118774969066941620688814559725333146076143616233275814726877397824194110417192229411797171633336324593398672261025375044629009384831419405642672523972408109555871449984074485749264281443776502237566774273537580251959909391085342074197754633714649967210815020146444991710346637699648934843434956435478116601177046559373649829083620826128250598073731330894167491856515096741938291981493097521499439669001263710019395721359047058952065978720850858945138895518686714630369207862556036224384868070266973143045578493279470327229363534432453687187635370109806720825224123026175553782592951953621855930503571886268903028267417431453492077366901926126303411202383056045002097535229058001477783025182687716389254775150454061745607875848869479210436857425707004409513258723194008881676740717814341046881439194829495620546856515214927553660797252501116118543127416955105460706420260975833809215735971880562789621458400512289143875177766810088993278320977925576737122611102709783634520913610832392412902047050150220800701366851332371587157014005451602152897220131075394931584354249885533621726264131289531867104120646246492288098013286278454458093361763211666944426415355873321871910142416360209614152728886835634993963224201414566953072381160230751383249204849786409046964609464065158186148754279635013249518378988056751816947041240215838469942297643401504259673448835364196787722520603776658396652711924710333730334148657144282941637320834337999214953226892204672449688871961967890025900025448496895150538260568109608779063070458371885377475597996651764321540990432452801832354111458127507415342208578425514198946399347070504501493994496030591145484357289394312170422484442069498181827663404456722765008518350688809725369951777544135191398920488259189216501863423878296490780017551658600353905718531485001836419053182228182217169474126731689021553862754979516764021188761533541189737319013955213480196930460192928674222512156957979809103768529148584883742505124668467283530291027516819931133526192440385825060346830481593136943295807147050040415655152393254779687883697717926704173248788961684679038381521241788509456195560859782164317677381990562691239343903037162242277503213197511416783888421003868157352049034591313251158378346693916391642852669552119742144689186163159432659997629338220324149546259925097039531960176034594164604384187100055399599153256465078796923215728085357950468590173902620133796263759586954171151003986425629727676031349372986700722742924965419459461490504301844873664505448540680872081508315202338608565551650095302749160125052626259272030589989648516074029976343803386428030796677753566218152114910781296711148719921992700692424422500337839673304495683320413266577533691622501134306896529471478053791092092674633959580094396209657601595535589553090531296089935601047211281803666579835233725607823309852972562791349867817649310026821054453211769755433111135780653756488230623443336292264535694353691704697921819406904811877133683119209569034012787197442505696020696745414646754838053895271878693191001798378753263431609960083151398196951736494558014649354424713855851484360816938246666477094607425271426175854227440930902834104910993478124799221875248321436546203974875119405643292099073145733441154809747729128676373583432173431298043266958541495895481752172741790078377894331013390735851020863344288776031080108107265771737679376325936641803855073493619639603157828287481082886258527610547490752661475953217739092700725316589734741571005998285426209519808690560523726388201307158314623196034729686108310766955948156204553927372107309580229568168891455956305462567180878788185856240408691756299577754265920705234073411313575046456637255786436083526084873639429094941145333076919133676320037538370189427547849981558967392138876146656853821879870830716147696932093671566649022664454450950281931015625985603546431136835352753068614887388684193570205824999762913884148402875573448688100212699536663015581691937518647401425320417558476798177132771570120795645505704234712142407763128475803965236215569891007593947013820507703590196387187647281168670070957871213856251966031232162722545705780645495137163208504984014394018595653143402679273048119413109726378177599511494655258141718195985701854082258616933554059252782324877508481005149078265510697942796389918885036398498854086700561050025797009318933880507635868971115325606799917988114728469646246459831708702352373124594320796652059038658470041965368042722446849100820444384932739971261229511625692701419204815291065602794508839414311168189196154181869061636291365900824676161753582299148907010691893716929097167666224409411977835515627608612318955648613002846855227933193255476201353911044312986451841074498153669894361364591506991028617461308451800774933108452439451534296089086950754435056014033992618165915392612848132799369617200837368471386593398035565783163197428759307014518866394076248724020899087064005941124852934465433144464831322732731468479865982979259694019246702294924069313694222651588150736560116727554496103156229923273840143305539886751312722742857542278828526497596682427106560561063121122346925367960025830851525593599300209748604130302481033683846771835876231558581476106197536833094354061000729139307702690589636438590667337159978796596206684782204190248407819224009590340078165923529529856618955948152100096651063639222205915168080781322948925418032427049459582679205181469880143653371660539944350940128310884384250963538762945068388449423624885489785811331935774587019745212920113511220420285584273929816086083153679537353779755056693895390017933530829443188567801761811925748015068781765820248096579925550236444331073352458021212628903753459417934532920210663562763901069930646237213016033179550616064765167834922072984614124316393669031917338773241057319754483463787081640208630308071838977102353655677298634579787441028934201574050362899884639511883763216355151765823330372657746474055186572231512651480755170786237834496500752911713967341048327793170277112278930282505361433960453732348404619694823883524577490181301354705301038536265754295333700636608437327738113124672367946570308590903002897631908168710372896657921866007590753749554166543112671978764043820464278649087920915083397574483859812994319240666865942511417902417919744724835688066616319477489537935865291580641305281534253441475119547221582654004844693455230636541337446573866371396901684475965378418928895332766926958305043768917149607421484546363360287114527188507091600103293565295244878293822321804595719519361142994458236822409661737429062895169502669244794204601955367948612548265376298520761916215982170498803325718876875164453400828812899598211387177818063871170346211114730004861576149523212218191618176356818060569669723031943432141576977641470695496296759863998290261709489674290540715632047503792851931879414874556459759924567707886326662682903616555772959694650434041924656869986090603003232955129357434888816849083251600857286973788720001070481250546444161460566916210119337252583676035771166580878137455169659156470758842930659319000828097725634249922874245678836548717106191308998485695355345194107686788025466789991243796628409079481887937456601995990410103232437147646400738279668010606264152358411352024040833026439346390828581480997586316307536921973015059177950858453688386500313826942492915798158446600796701359924110207178670939102691765184498543716196374253134927549861143495459016634316652452469920272191894578750727864412239030486318774108039575024650886312037726909441320598142219755614767007704118611570845232754702227340862914217685835450729617879423493239697635711180689701167029755073785079341510916094034769023050076139642821083043558052058909202466615230688447651399350302476055869291676984907318634842410379504352132163530876250455797274470831258045573858415675772268491289867695544548320762271437803712273396679855559614216791983855296495122871736867480910831525187296328586294057556805679529844120866610501898705306179719604011620019128082281696641101090058933369543660003871388817379446285175461245282570829173687768766661458325274587926065777358634676516996824552053032963248997880687313375397082720679034174763209198826241057571608335075686390016432858271408653530178138274966326640627341187615901421073696984206361814295460342844168182749327824270486310684336854877148829503875210973173878232818809456944080908393791910773733885473738876668428266608997289621880396183638360732074168441584768556632724242899504751263540461796729376534216177395385320182751427077209439941737792171461251985213265023758956609436436098700361356774723101851266251590462574978343013654875710553875675162426864282599282996512823425974857205140320414726391050450402060830862423232164159323001730436660549656899801804870109575346103268004203929299462890882145214861446300602509239716119981967418851716793739654806759502201669628355264734177343478753921310258280976108314367910571992978790158711158680290766482001287130225996568815637543026511970640764283209624892254470619953316932306215062526215825015967000373853366253629518119705266833358711716049932944951659672637214240998823254027942769808500541416532613429916558971058837224561226417834371446632266913882134432585396524724758224281600792094575515867243055631146064716214315221284034332773316417935048894954205400224208849956714165602914196072700234018825239445338693383417670573020536304405221682420381873204626826536307884814154773693982420040105742181273965050861979433699992070029247517955411152797785292368009692892651705151394088506435388882279271850239390344905255181780238571196396838972514114831078269494141310989906909756003018978517562587113714125947397227876137138613966663559488594574635367491421214392756208930272321231226454093372557109557315884330894467560734365006228117234896669216517756669416690001429128636291826940593244116768063539250764692699247878535127399197930758677826045272129157985184658542411725631724421784723642464387363787399702944528721588298281416033503870134536330747336282444962893119727818842715947956153921241921636473294571291864088405275894920260053540068960754834418227702377137782978521176322984145658293639842180762235942968868101325664650193316548004400130705436760123161341893481191822900828331958267678328194311449249207344574718752296818408075397885416630847058738906595792876590683088370401551903372555594321367035473975880825078312759885231151884375806979379885153424283971905374508143527836675780019129639522678713300002893031247826859787201751389749041864564264045100362134640266889470037654777536295724055824612473763196361176184816750975088666855105530714711986452012882342748247984283635804901713467779519469528745252988414348065970497295155300481488749254606729720635807230780545987259766488725450276919699593321155765326975785639029260566615423116907446646403925503513535694459159853985563190197637175572045959913070491845744115978034588511811359725297544211638407836816172571688059116894015116926136253645893140230925623473470203018009528657953607757178156901003796504230546707303357667662508545266759004301581067555280865604235039146639817979203449709221492271005868491304531014928388607423607132477454232028906648638171237895802893478028111469445172099125030469803259409570802793711109581791208893413251966926224354866635062033649168826686487858103804422160343780997054181640638782863158370200262887296871365422321110623843635119897527597034658595028621717425402032551737864788605786499112556941086298965588912131830710512460679961088029827209987912823321867538894388035044851474648088353681419429011234901602245550177318387679963804073100017948982754904151614970892289896146707345687739737334006311658778048719971691043436917617596570813195677254830621869014646046893843081659061132866710392034242355127499867798536418792688578231896391362362176940062389012996878084162649463413833286987146271592925958737924684615826319330967262482628951577644188666481780427162918303488802741765459302297918283428363413470815849265267437992719173423831887715852848618088963644441816096109436895014227447475436777272838038821848502031593010990090638701736235582158151497719406200836417812015850165244054000074380200725342973552752754471011357562160389892002270288898140780497475098987231410495429589601354982127794031176522815071642455863652258082224513017007509291595974076023299494103385138714335294033752550218530522432779805889579879583320622032557561612540380222613399549084035920670198379988946082877892263680871606696424806094134895098224934667092795929732302974920280435013999917151977970026712226446291309021829629042231857909658458777006379077217239584536996881586160923273126168248621877603420982884741170987405053768354136317374618787097807650008707517327586088804580414842852145059592271513297622713281868113239844518387144807107166886104511957253632450575307468755717538479433608168099958579279985701513471559392168107093204523356403652000899184193746588004779932720529536364614283182186024322646982798284221851631863579255147402047032685056736130205262272027854524736981373099955125474397241490906280661483571370373080266724533546680085769624309692126027065202258005120900383153825556531156448276348726735367004303215751798787844893714420411244399790500291702897068047223786761727145564631791170895978770004084266885307104249131621026048125923116641745592545448148719611361841338913364626251141393231360046506173425332979806067660109581577704772252768548335819271670828931516685534132549844211854387069717319920130087081704712624493996244520964530672532000589089519406951188297786811233062688992518612183870951785116060172805377927805154860482634184783984744109263896784348849852659971661449398080563581661753701573256318228312323495131838575276047931905471184654012265876204331657268820237444882616147377378508013069561143318567933585870359607853964427998774881790044692612589663070700082168397911304390543850961136628450620935394895340096632230701431658953883898623927246134565186596263671668002141263051589892547570196037042852733936607474598274590875041320474919420396513560651416127754867184080416169003502130011197859396731896275029077250988232261006880644161812817655302687548253241921968655744211507221518453712445782308054509206262070103205249952840221557423121539282405869408461018937724254288892565069347712751608391728778114019312071687185066844515952226988578865583092425135156581591536505419117200586245871720673966592319189669457396361141393911486711525269209034787928551723574437969988562713230093028229230966457189337951321137868714002694315204717850931034985233665822196010873187473293559056969378108718800880238900070441454533077124571539078529573850299293096043371989149821021745829222016308996037749866526962372614724418382457227301007275498300906916805894949528088428553705869942208253841326940093214547640214865453223414343512243775417585884544321653198717363273279978774200443720237494023543322970419825273583179281401389434706788994078282297356556663983791608734119685197741840312302226121048803344483671230138962380151609600087394268539392328138075119336018440208292001233532601464670109188450964995982890480613172575119060357372562781541865600182744028232162720716293929729897810486904681428269264372574213676043956129031594610695076794435538023702914288347083318336091620208060730293744839678767036725559540145452893966224888716666824411273511835639046919544398886691841467576164138363024879102436730480739565997284806561092950361691149209453717420255124785459478135034029692204050517359506310306225461871971639148349564617572801642975994220815796051956786781107844565784900830078306615243380730090853473594698906021442426648401311136419155950009935079510358508993427312695267721991524411024764745565744928950900957901504218138055012140389738744652982048869070223369212872958631893625300949199954631761248246935632162753828713942316799554900494549529434147675853978765717020532501203886293239002618105386063046288517681234835894881623772072999994986989338351172437350008415325749018013896064804000471251873080517378454557361973232356837025547493234043081774081596931558598949388713969551967775668334184405143272502312847137872163187867407328715561855862882944935738285216836848800347180279227937591481207632015343563959504857191733608781001973419610506870705553946959034026795691148541742895055773518162582664493907268492233123884251291213220766693043048908314405779796731469587112357110448157763720751904515144204045028921298623651702456061855427719900418980577148525462162866957584284892119459274870883234037912263089985957255990215944987896291215341879255733424554358271697698747908693519814529036353992568845201269631205253173485762802505118853387656974906414367327392375326060939674800603298444220274501636214676135550601838706632986030540738668797541588143917394724162888585648812121908697000857323036800661554799612187145123391266057467624422285343440657261044968629731016895286205180270458546323044513582010563047951569936636604175907298381460900958098702601829832339365978801461856081941508591940073049375930445106571806376499304493158105011656463557861560457993929641400161478147710949961401890467233403324176195205495706851929082295630667833893338725126594507335934099808266777731367335161767200499310353791005378810781697990865532874243627159534611869578577964344160505612447983848727884903381548424125796744311587566381477512065842788597029788043881977889527920053406380475239355523197205961048511828694090329877773056775243968209049367392337635073781557677805398198640377079217778626818992541240391546786218469805718363799768018768330825171629771991392327427256766927623283202865912110608255945544305920246205557179420263422400027970264830772711533076225229514701899949175689944008508213414570414849046892546521274173200581113717517132760508553483097896313625878738582133451759216968775665672301074526367275386274354441740758214397993771341283397365471080659933774066082728299872317196973126653263209522386874314680962297487198691712813372261035312691828795862641522672082343725656457620398301515207706882287997098155899247692575431873945117278591546282228719519221684251519070124584158453353212834546730566442116198962037116447735893283854341860823081871387424339580151716745757630709295533693605472570808276326150637219819932296529926162701007264059762321214569062286277506853559448208778617134964241668247924508115251445310881005816315957548587060930938011648711502354107890440372262002596339915151144696507254001551786264309796348949631767574502611862450684143893177172338845097175460660160038731035559660905743765042707725640961187249955845464967048685126217277206534360710812487417304412662637349887887007501311178849182408100182330977948536631442566302339152642205105033057894952861555434648624496567297201193626099064001497327568684742547385801042504470901955249869873556324775529266396648723909864332381843142798465415701357199484177978851956635232680903699712672760429598958703748201484425908724632192629770762599282971514185648305004855620226767955303821105123915444530840542827644031631036137943367797769613117305687014760151888753709541883115848878824697150890564234884478603810745073864379032382284367174749443136359822035673252817730344313708640322123203660786855406518766404708460962336942075803006598912360824249277427534380475686842923342163877543535845712783593108828040936869513516735389193377042433170881195176202204287827148439508974946289198506314604144838443910977200427270271898605259088274303527677696463826442312056891598846665714267919637338542939325030945873260504993962430761068943725710457651313963103631366778754573587382664844418612845619760047877585525737408595228422822740315815319808900071165643943460662407114320189858201036665492358551383931483981165640523074771401064922951210935824739489348487450650440837800333756418821464750062593005136573450532101427887022294010331754488447415808890751679391986651255401131929091204508049691188661223003460302542624802481760865801881301008846923314663035423097808229688457280482408402845809450366372910634199706793010831980920130823834786051482603818404396120974126907517964796523564913626616903099558828504012123481108619181614820672480270008982708303576302022957336398832523780087482028751507968221161955111097368195344607661779932529364084871760964629591615014495529463525922556361542568911451134708792938733148879435506341777523707820836044332779732940145887161077935885157920485449255150862063807176988585665904983441156715278905868291663271648991255050940340822411918379045264011465479417543968192174150811215250224025072000176698124713899287835684351649966582925373048604191919553898029238944688799657646660170910599879994849004034981936800312126498995990656354143579133766460601640465251545688250098690294306006988038519333539517742771427885882189138728918275375164993007049560331084453543632410188552396184205237333064336664088679491217741022982715493919220567388772582489642864831800159624157736455584124567597894343493002089496306661246931237535869818749281172756470232489336552519867470679047461776660178357471125292974148284849586405879030812558735365535891339597465046944733632545584954970858614763934231153338780857660619958983792854338947221259265708329097278025226445095454234228730582735779011778617900958084860515139102522739810034984168889474098137527538660903369072153364307981898117039421913853836511328851759989255506762061076909245630119915650437024816457619603336075966941611134876819512912467715516187241097046524238340669855159807962992030569930506206848201598405931214523219413710524444137928304510113732961129262813242154335366451819926821332474426835278434016831874698821258812477243166261259074319289376393938283468801561605600244221285079119078350729609436561749918588707539844944803766749789440465458283744250715720853472027267435101889464964504973404979703569835099535328211310728400368081585404212274370440089891271527752936775382398487867399295588392280955200677224620304848319788893916887270564255089706271049564114467748034341995419579481815941775335959352128222096120797006711589190775190279189532165632739560873652508113945481735154229363472572126734321061011611755050653179381763726217047258317083191904985607552369554449829891432328517822521665562710085403409147484921202443905222088294204146183686693811779964302107574871674728048347598625465574634365054569520449190619896823186303630648842245276767238293336238705186621019471688714856167439302927517548295377479075666425727274289021916934185522298131680956225053176952415756134660964949156056342572739461324762401698845258533448283444298398835334575930031113553918042107257077502543400263843952691106989631442864996152136138956835911209127103971586305013997421783479077457810526130340195404474432053166283224028252808790612457606468502903397030991753474635696850622764292571399759648950992195221338807546113139802349764809694077893844451604407896406319058402493853290820337330449172049078165906998906477966071049508622598335704074286827455905252744342826826272575902115683156120967726592980725214366728160582672877578160876374159659387460318820876737830435659466169903897043278733237485782868506125417224147165213764881427224048250910949702716680369877525092604146777143055171230380578215873999791609301905461621199491881997864555675344395049853495869851288419739922850852363626455014036280560241708567675889319859481150774291686030750368908533393290867614338872629838193819423705621043270689651601808925409815609074973414453286192448734785077247414033413893190832313465493102855940850306220240176025436034116857411351654273434007697551261029490569990054200754928243939924984934429199178238006854352120334306375279773707724819799434352768876145745803364205705019174105874346665749353900621289039851701684247122480685552825364258708371253287963363844873539947878397038701371533005240573874215492964414507823999059045928123274909965085974629187971555697922257666289603443141958396808685687595791932533439421169550131946844686051386195745811108016063987641594684930149907732612535420778142929606036734612280273699444051794391509859159751704372021947981576560153523774186244654587514917873931373996140566728857290983028269765952533471921614421705615145033991107534869436103575365930034555477635363624860420728047359345558180340112400995831473653288292656505833535912142389563877359674869305581996662044347071004715657736925670408999006074883856916357852222466991258912079117831359331277124384816700125487421969285498542966857093680790100703920096588375111624741357759044031270007305576985290046082361256820892385945084359884134934991060465520318706415648857237794975346341910343674806005340712627457387911360789086681444478396367387412941201797387839333811355841146348699303900302520363032357625255211639791846768030572088521397015033330835128776606052849357814151640630304801313599844816210891547732966826380061283803085634209189069866394018992244785364664164700367347731430806094370064205539763959469194070632025117682999109145011861462117462373401572187753614432576441353231639215098279591424229723199058633549562729827277516168260949700845092420162381517311034263392694185089388277838382973130876089082325811449674101381148523728914249539279741300010818996054811406458284341992121831700371218894822386542427404897713803907962136760872959527861472183619251778894321536719393445633110608768537044869362851645132665714435320911594216298642177188286556603201461814671174188209263676660452633782597654238461292335020867257279428835861166849495052923548632426636513468373691580902889148225824926827912901441401720628320108083268832318087218960742350400300826608821505501155034878384556459758491496631636168428520799534910611569407067816736271260939157590663492045084439259181642511712814978233878147765070918696972176031932808077061197264140699786012376841742135876927235030702947992654394883923330836054078440008050061271718898975316492198222646195976640415343717620562464151740832954445054903802831854370162975548494430700182698498377256616047832420004072851032793676740745591516389361940036367363922947404122946554063228773881400851874392051552410518836716080631839143771818246712725781350654163075068866219155166039116075611475373121757103801917366473756833220753117814187701767963148551401524454224239433659552585982625222870830987087569839199332725476805798562556461097964193852663414964990477121439434078170274630370525798490437969135694689582629581159410279620358106370197373297576538024593520525436404768209062254453676526810432192776210355123164679657206089942044922129576956665395105073761127719874894992347093104572955539369466058720957953990962435787561781127782985314806212422443317068894054847042470784182187897395405387008262279353885467020878976788894021423979284914116557265069434109038964694227732038791608128638635134131895891259140284591596812071358716197740614169565927053928628461718879689952293043350400476677478335990583037366314739317149039832916392419498910572470222849516938660607652355181626051058589855521699824850370802534139963161547319980970203491261609431466921501083036952821878951427904886335991626229770241784683015453286216867548731200392654505798275309911472886577721433022450447781849784126296088534922994919786842502659611781193039686214109214442871316107198281779138082455814180371101389669082180527893633567243912924092778177018232053364901682628845668086356805022050146291481054310578205964370779999827088773498253575887483230869987263174094978204960753564323601771334232764155279897588771917085122275344533857492774076457208931472010714553102610883986641867996319513115556712668380978796328069454845664663459468571193288018104863087263729800023294754904171026219021542779207164762785729396583224375875959206319921714397990976213521962566030595653701594008950817188706835073722030668513655764865346970658714162119979571793597722166564351390164200623246820221522659708580039812005314306695140624723399677088849412726297596045384012153208758172590452923998951471963709075171565203147895850062165026684746614127523666940995842962803781610424557951390618475988704725803594925689850716666747756088969162514133113657421335374176294031647356126331934672979786560852087520502400623341356981273577564712739345220013764522456970135391327186433486370421038555010609913303165489076413602919175537363743437516354251145743024997188944126332558044765512008554203639425361869180379098718176998913694879063273290884050469704156922528805273938485914978918952633370212713782197347094846297365059595849321528160178599636297142936467879958614244039814020332216234871145287127098624217533081487634338193327219875354055610236882288080298121766041068648797085909991835259266632527508844237298856645527803000178228724821191756093320871675244494478092594077702962268625638167528378473556389947758902493574468934866187239169092791923757439175297946489842392811773780058541981935149198446425339306700122198248354331593805291009569499581720665975429857836484275292894961047471737114842877360955558877265666198582725007759607207692707918937817667109724655905770671529217171736497214699214066296912048987723900602246999841215514743307215324213094447401679081826442290318041797850900083023871636836568320049832206555123209385028807803816404983058218790101089353565054526440681307913049721949360731569788103185566077994135805426644214203648850275772737680738367511132092375690278926003573613710998784467708799266426885905992751593993511259568598041568499518025993075916055563493622700843408289971152934979326409095126351165384571875470827116399881630219063029488504144449030726949953539935243134429172950784840768864807121477775782437297123740624479246928784942737707570040438724489942495278139589738575112771173815892397292540877673473522099072050147066998375711630779982577277031235049481305376550543161918636264019699746741929910121822901980857891728372917143466919340624626331293067622329718134422077625455708719733991695110569700172692576306792820443877691281214727762239894724185247303449636382456765406539467635557594962913176670034747141582402509763697260043298698974211200632991071898563398401923165006392093272694011306215078069980440303316295045536422550347361674015411854792999971144688042200099177539140548496734752456182487288019461429557027114284768544913076764167140553671292137871880104670651567000481975535045931247347772904354361308308831087233248032975249877275671513641130733468147590460377279371089214815949642465785422778200240912450810284530391312750822667554027956380273207274322371757981383057903416790164572875615569658422682277399100800542398495484793113094347648592238530205657446473638833046704486975850817772946629182982377437144193917052038725477215168038719851245931609075827982117381274068323523441468932326150263121855214892117749779606317995901167163685091718179083996077257687013104658406870850945219704435705632376805119091079080162862687650242905747451754446383167366267181068804315717992681235516713321887307885226722870972535087663164221318974541934484699363199183696681036101551100790105076672820329800460077364989458537475660179585389102782605816639442167075690291409950460895111100341534525664101823816451799827345787958795976975137677657510653024052227312630726312345238499331614936737398261549876257138038292716583153244934808654162136640500651917708394620860231164511489883610949363057520375401576828711390051566623985588175791128659058215741395761507410154350912511353780247162236335411746301157069822615732069004605519607025620496933476053689706303300561423691271873551994234382719663104205832288052806022951454589703969244181313289488338919399750871417185022822380400602608922791929128253158692241361699652936134322511687276786764959561385206974813500722777312591622800072815395998084702568492645560869460138895253577778820086081514491706939368380784748080194042041316234354452698019225557978648761144212511544485878405655564077301552984700380269722159303263238889908497618372849354904115976183818214782643964805251089224066616962166192298635653492932230840661308667479243374986812726458955819151199006198101607584327641051583946325750397953622293995345959142928081238628953395186429009783214006048798524574262164257267954235146431742822767017249911910916420803054299042474677284139365524141884642556735789446028290791430750420578324870429397439362705143420879890314327515283135111107360840682269721425134405447400042736664570142950306130493660983328301337729554520680499182014264170829753480926056788363782506462182575949707033698077636666260678294372556143808464646544932289757494706051766358906507138935063779721096284640906298390880125829946808708115354145108490992309068069618987588468671799188752859140698588731110422148096096424761866048133105438412533712048059678144023115020213922022631178121698584521746185333146119406106900225085620971070206783327647582263300837057178709251922981093244908390152812606229554909573278481848010730539631430193919160083927167174387226454394094695118194471279728038162731762991124854382518163648058691661598600396911348899993997051005551339508134331679849668418766151148267564708174101702632656113031436044211979034222062332850577914695899214145694846318966087082575088911471601273747749352905080059733213132382752255749021593409092929047223374004799017240460921068126162173907294448951763333529205290264623663133789814723552033738290534783872755171717201807898533508342052155519959898894840049411421874619032744006174956899056281875991752143040452821978985294242362422873381447077493515678565181095391214104170469269213998763422515028605972258928964045813977289663276696213153841548385536247123906125213961241550265504841806235898889992695891887871078230204452561980510442591019239717965687066898283635385199250655098629988589703747315362770276505155488968427840888649213874837285956370694771715981176177220013472641751190437518696601898320639766982789359450797691870581178653178763260602129547232097466260659795150800494353032847860403512585023387396132478654741519750670854397798781432653258042721790399553942000086685477484696284356429840921451756868464884007482371099126719246632515020810881688286074622891376522634138695170617010723997600014429285702181072159466237792835471220799394408285000140317178511793341782074852716962734614793529013296889452983281487203405769721500450104088206664596643011764828491740867075629549416530181749220206870411180525400465003677081133793964497129628795981100480166896296868013736327020722459453687384513965426991653017821243597154540106477055019479709854077899061346240743346366058595946866749179734369733838648398202257414879331178115730005770200968268602309666493937867762111503697496330195012747937228631553209467444402632390814131408350330562294153980669745979017878720845576887672798797789390113205729034814829017520428213707783359014582141878257343028185013552761609909659119964356311346251462893799172763040579652425888584766071144308128641188820901313615689664598949340308481649213097785997391074396840190181060360324491311061275255235736498542093615829411105399718945114328162066666412828274976470680262300451370027490884602754447600108830695061574866427404994695029942546868673184584101539228863152186474085753999532129085123670739437392669501994818021575244894455554554995849335130011481084564897622009903849773920864412764988642569267932322038982775647352263368081484841812691612896085426037813925770796280531513032651821370005572562092274941399162308251526057744342634591188818273033226838381961318284750285121140826159338044401604828495708374264624090791356433255226816004953860028685112860880357073678519389603399205756415846411001730699586614749175122323979668043722232574475735976519404228956017346943144973933255503857498264876002274951547323570623095435125847213934224798579820647079897320947141823630584029917058345703826434055877887394926893278743045904142314246557298768348355330682834767052408734409996130895443111352930863471241997675816250621029066775137032187078461548991700898816947243130603654163963939402245236909274136223184127349702529840609238198698079691678388077530781703493780695873631589241426454612685308409267907026854984595681633781840586221439363045648049768163135714893764862221322559592192177612933164236687400933041471686964928053074375080254938905296902614099909865110002869573494544230031655814567101212306849549284667546184308243652099656107422775366028716233214403349466215675657892126252736641877438361728795713899463786788626539479850785872997858690661117707705924964682933867137271164300127758250123867988334778741109287043902592975419535621140721123606143561217073848711108685169784015778287800635260229941363772654650232712826202085898404204155800240826849526738980233497547145354803894607121226101912060182161565796294226156006706605007129370440287773125757836477732504601037896972699175494632527105065470380360446581565114171377382367437189215890368636286005487391852724482111451505519262730779475045394346858305189730908758914083825445777416123741580470983692507814909982978247971071647714275010354356234606687992740907037693577412698953674426571194786908159628933585315926324756377621818566255358824650592710787233721578158100062940607333438512146112650334175585499770747171641196475884912646750886721482958554232311613117395488934164378845178468728472526530423723331868071762904605453290839311238109769975712238388680868097559700946562322168546680485536990584027422086961394047970349896489825097620783459768187740652627035059424803267394162754850835325986494511086704478576681716440417424439498061934574716441078141464876033062894786679100388280690180483427966711481229464498738521116550852722912684658365560869006948488757404712327762899055943077365212216489813196376098461108181197727500844953080557972084617761740836754090462190758511816356011152438034112886139819138684398893956969448014337247075031022504069484395890627041385768145323147310724404236601824801863354289636149611819873416789365573787839462988056968526285288388635685881354764008150899706644965678785056376298127019009632405476740955172723296572677675521670074804994308582859471109112306760229372095362111512147258882784195295504826194317640313677207068041645525792962486938027990851660205667708839821237181872420650439217743689576867913464131796561952311722072045226704173570822108561992480494719400057600385400850881759154799267638901380837852311292111926802361176000741461307993291605111345272947994020311997679912678042125595826995997685457304672902654429723473886082003183489266303667112699778882644280918841453627314814679992707083598637463537160353346650495979330485969274870770956892846986153885980626902743249491901469862273358254101194767721984493719705614194032510946761741685167291646068828526586278598484868329474651317163923178635659324137386657732752552663518508718925343081979126990775523930784843539001691438243084113900808472338206805554670372719860010653143562443988690469551137863920202034187352868485473525538680022584876037219422574746036669928483165604284224179510271205371394221391781931084635836869459514876989222291034418845383416351953538523381953719225996099856190629641332126610796129991085753902476194587844636366987426681761482029856719157426032419231110483784189800057850689423068759891514848318474523676020358363712111600226727264047197320860047789485894715065530005030599350004186236369776599990864054318639755083356038981877716851438672750235302776320270889143878443024289817427032796632919137289207019307835930109444008060174419473024878573326692174675579187506586258138022009037981094413007808568268019381485065658372625584397798967291999705322769999118353191931706244488122816436890753038443578981976194906652690822369236617073730985199867756015987495016332139705637376909678919769872423002256834505583521442545581627925849379560915396502462048692417085767818892222105034651259545594205416688733636694749856829073998890121365528397389429336904990907210604552404614694121037580308154871195356007116376432819449675608749793814882806257988856562735378446221903910628351251527529924651470932564864034289493043366032114354905043736656520479693444378049994392774269675344153399734139960616154232151260518299384021164713587405286860814660860835361717829672898276729950096305758039955312220013186547703915136509161263197590313974036716276295155972345717408039753551394754124456964568500773921243890131442134578143440863709339393800430901174340066777444080161746674363335614347749879798066021152944537661664225787019707720536385566396300185109076258407523157520899902274137189120174649537113590027756760329102760564274657976665011623785757307604120201814929881641255963124046342883389488748451399991159073434766536569861605192222614591687588576204949831183240342462231859099450830287726137564898396510823046383716504046280429903997430797101516151754446351963145304358057611722937638993201176241611476681220725347966800950063946346838625708654322543183457905553110078886102460086016465242808367090273944170423966703714658245165406590480413917703286320323916980531180623756810160880897916029149057682685916300182387746660793764235391447820212656739657445781082381903530604543999582669550980547841469503127652745484580275109844680082883424041856440493763674718261613042790785489433359289472454988125535938874865817811988770948837675192456190228195540774290633514529414623264785692235094193734052314369724165962728518692837199770650023789926735829448476043984274197315332810027569258343207851855423836886447389630671458784514922299309768849897079152023485047375651137530368395140160152992333298859407216430976107889391283122540382674780282939857924817523533176293587983439318274525551270897943132604164553743431631052360914550689542995277691773206487465130213163713533205361119639200950320503408827999413742050685116201470418316272018447550326145140005744631713385771068841735948218803977986492239311133544410979101665205186850842559542068680932926389511367939260050021316847800392286960109993693360442836989897456002468702146923683856155202983697447828966745602757284729777263918169428238678537167484236780731772428235114807070288240187184698526627997876277325721192949376298828253191611521587041820866128874610974741918920103014241318226945565936779231879572651225722683705439602311615218050896825658857977568376298397657384363723229768460083558223995090238363963642790004245522665918453713585928534790768423013804311143031478641452764597981218575481305849712074298584081863534729752905923578199364348440525917307505196775380320487709341011015022078696301886350545722238335348435999610440125744649549179503324299258064806003310242666386709235919208367774251212735825532311697808392324313153166240967151560598231327360103970099080069238763854146912692958621310212291248832046173389010462571156794586610690316871164824199027372961827718103693229555390598070160182237828452577014060509723687593829831734999244328354348601793270133595778581399911382093718087668757539215190809698416115056832413319516084394793287728818405110421219638708667665089005878477216202928961801552370312088873941364640492798011745197554729928819906924976763266930303846458169845672881225993227475402441060286345969942346465914772314852956605732125340287072586516243301154429580200089870556984688646874420149128491589235096147897409201418742417201994284654495400645800265969045732544030830868638902237670636320963444179564291191919384379996582931855665301663467482448244867864571931261429753808877199164936581174073669746359866359787273517601479925462643290031576566192781350648282614694978520519472401827348250189630228566814567716250197201163502787001257053590139523922405920774926101649109902805154865873075838550744073741643996833587359139537676572112850947366297611824504955508188455857594161254589325375410267407657560171671302898785044547460257897067366100594551238496680522329761709494568210967128058894811094159946946804939814009428183809383663796793475329048640086938016205147167223839870760820663716183528743132278894855574044328883111137532990363173517047988511393832849288742145345082239441656304890961213178725383336421178599723714556519030533917507710274406932511168349028413664451486958245091655527629300654319465742561822178882241669765046587824675589248454755809666554261040768523217797789391005419716888346713386620227739186269894410585764882931816395264766350936573779837902222007537715036709865719300105875981434348210094752678296436543102115698133193169684250473570283358963404092198956641553452535501112449356600409900235023493776417494448257570584061285555749241782701968910395137135541725924183566501397038848448347090705982850741285961848083561922989782028126300569071429329022520639433827186780007626106168753200624927252661214354441111482935320348437954010873986877335005404086461358475316888690914815720528095496879779181733185105292143938812241659648295017426873960692693410376597443092880249313061269551346670676553346676225361055288112511961946421686343248873285743725667631261730379752303379310895975784629227271850910943784420476682061249286457888127163325207152105200033059865103459016014326394709304778321210091441603450502551859895944658984468940909326918173561655219864719369591581197832035979717453307040447366175683643108524116660693772850371341198889694789871161677492271043887798245121188844401767485394986558773549732338600986047626500302948839014379659338348181371725349631163738408813872161931259215377400002214289854602873602284143708787547900727465033154142464825319208843674899197635596285279230883565281876616356139915424277613609957129533249999149585300492484642767540568214221902516371549936391387008352335327777032344678571323726379292094420113469361089007196380749929027954892084836387269912441912743089832944064518054828094201892564820612764730797709619425028480612838702995099170196987987597530203399921187732273859538859971110673597383334397525539239253265974726510361813663848305206199748003836698772943072441618573331371654490241289024549627007408196385910832974365851628203006298409321375245333463021812674427907566918324736315984433884642330641695611958906235501228744224310997361015598104899275256383340713106278374108540105141241099032909305466802340374267203566641974084030377898918297917444052448807356081192003021486083388675271852979370580577406322720082683144959660562289471652735736191187168290872042290303899011456155888273017615425415190916030919774594496338084599294765033407734496021470070645383098812291835717512708834517029226327746775581841437228678507245689810612927224436022838428968780898793357786148132524284979306134325490381893115828916600525023402734174457932911219979619342060461868170812855154424155466616447746172901225935027711334868376521777841196452338259235173729429094143223415499415680972857522200872937500579570545657335954872184603765552849947963409479251527927883185532672101224056524662226953500503051962259659160857508759854336603851940647780045273946758983329099047387791647366350254602922479455677758261071592514287518434299646457733698290960815606548276158576834531120435181552498306474487916116541650753452448145542953051629985596475909988596815035682285811877326316520643523882147476639008786838549572657770893097249875520510542551161602907321347134214801804230395307449450503625587464047612291032218344963347846521760326051064799737920404313072356296584934554086271199944045632982469076840070294416885351342120756767664755443952194595597492054508574770905951966684317766782540872588942606657866882286747339205714772181846858247353273813590456138507542304414707332437423779251668657917856431929787601404702098342581666493596749766436237579637587093397732065410591807004529383363257180062588738217111092705240099853683634106708337455785789503453125704774347502664630017760628330481174490089706402214614703813869785782537539652115916451262799648965638989431583366784512709975999803236881730752456587346338511223330323626919942610662421935009277917063423382266408076987199760161547752637215859762583450780123109363947150102272306440823343636105512382570478044669383679465224236817876836998729159395498439089081700466434692389063993622613778329925401136275968948588786639617634963948725329201902902117475973442851197851691648409123010104686976302736746800417235741049009176919087352281895887178675563596366404989448196348384226373942627431175569314316552417524438408112044541546952210738742446340689988336556093356891943440519911374692792773835713048771816865404172693896732737225333812295794858017528830682280964733877153478397325239131899064591380031521421030289814672162893811538527121081044924848703036189828187602597887110509489703512243512585047960270477929297279359170488006308490916702977320385548145935217086680024600779915309696764421478234119570790629587693517543876524625033526221614469574048958214848587573593891957237490274273263840624945280836240729244893730018069771572839536934652522484078612802913539408301485085398492990152694971756582763724829186287223725023051716521587130997319204128123706476118175687070618181060231624056999783266111580541834196727927012559528386083203492286394065351620985018440701363580891574487320209068163508431453954905386396426846705906979327672263564813127047111034998732740651052400634723170098995027137954618882896143379588844054696877299262931867695059192090863141949621654925528783346758898081627216639248092426994251451583320968949996906980008301085187951174421715560076157273085538679517010029326655227914443990070424319474886453399525363900070303483473517445101939617730817207789851815688938437761079168397765372341916244059557292315004866155399107528275999750803236240597678628107755782285368052887101397095597788983002479236239632398360691597744225744362364675347748882946927081322522333741412975714859479065236695648620441263790971092134430538448496459154001454257830055462725157695088845923651480972997591381550394007894506126273804861019078086677855942221877513766091471836854812652875916345524878481247668563175181719531301322900052545483365690830422443769287035406313853980411200324148353607905032110203470448467916372867342417891007963440175852564901008251776289072216318979185173953698735207227415755598559482895888386907732087044296398519437487881700827273993807703727292401468095360956028862873494843802151583159184182439248927280128739197521118193036202956621139845906540641550815593494084678674327202073568613578488845318659793065548449969603627085892815856468142724149718481089732177158114663953233405390915366589849041049714965901943551480760720136626610572764987870455024526209158900995316141276983751255874674808697340149513138027326244176176139936931685604505204203456837955547169117335470286916108261494379084772814390406183829315982090526564009093341555845867306868406824520729492869617788169725645318801965105474313233968962652372104001587444111936005533955836689836381836611549444524868375814611543527152282741286175120849119330151272032554756665501194634442756940921584593111950306519298094504259082441276216618691768396756872244896725853102773135406575890984985473610874870132445343825132572420035006429396792300544440835175407273901079144067651405692717616412504040465791912694012551999944800974605907236758420120066087606759828686389120951704635963517541904547098270898208419083932138538442874305898920227538957043730452383054777164817298759328305570388665369507535007887864358372533334686320508615276799229840022143469132882171991820919462019303902542400448626601800220916303937084526968302615062554609421749712809307114933425720791682407376754553870906699396641857696083048891917121969771242175945436050107779383595386974196433207809452399159049296592709915398050877308532765413809979936582635967012063630295684348840429251685916560664259898498858032376720902587857339901727862381188617701908474351341009398457850596850279523854725104016895655602319494623993498981128151050214239068038890078632550824883395504250611432338072383770023338983482121999810402812348316353721799188739448151811380045354203532120427396317515734613468750015204229967360942567758728201481583056799401091665668096911354190620893262266366519355041971073861163655668720814291639190136154269662725741945842051404208485164749535275638252015847768436511984563100433036150247987438627098631928483620449489604091164428150930731170491018802315273906416284944848668786009252631062221962165119460846486948001264357129831020551667143703256777909621361634239905260442451774328206316820360266183214345302573264530237591914927357467746019951652022529522358631324515356319694019014269910040917938604151043560542940265229022146049888576941429149343334179147129649793638684494591324338872165635747808831295345938869043058982224644730106823392431976213375117949551854209628295487003841652201118201709876609871753147417226802084208995306000345335242638559222565100547414753172927282891068728230268266090482424672965797115395815869652887600929091171443824415885458089167199738560672664017819028812240915827425979922296323577158229929576976987142372194226457425838358920881974631917217632728497573640991514635196823601395961155397475870963540015966749420017600727581036009618122730021943594739673142275631969063108052306970655529427526270324285497227825911343583492144503093708373198409781059168316129866533543822597753682845825448186061853991717783899763554476223985950808708962996382035742708525004963837742521178315333649811027910049492624323935628286360673140949572825352952983477238792455579269727887860904000303075510632583448138220093435607186750849132429425141079651104285453301714760806330581015868338880046217876208384005922503724432249077425794338818399150528815826546691019441290830901151219356860127598593010251172603628297607740699993083985962493620064578363908990788654458424240133993820184185477987102019684529200654406617192742835951633137843257270605404823405402405472845691172178639971733428492123148353719993827390856868751036159788717061921686844207239529251757744397266418602974266947570664141078568481103097455332246047604973067778481416020045595255542859347375078542830817007012981645411316887007892362131007564130644614694389433036223585846664029923842673044833552699938843637399975494030820380963669001559782050772771272059213537026793488470898588298298601919462912038774793592720355684736964431818558031640587267950526812631642962274483613234418249793993340341522465185249369501831057019133294685397220826163895322689172319233688455670326678660165331153211838968896059104203232080996624429731000534745701891763866883249277234403209726064456407427716590575069505006828740438752102119828233576016317393727594319145175612435603803116733377425916074224116841746559355571872996823544303577453927727366017399341079696918755725070859947158984522761251425576640632480239159131864690587759188763977797902462390040194056628968308408242317744752378035549132254311602548923048018286183521652435438354268604180140288093560397965833744628488739497410097514188757263750694375466548270317277328062419307553735743225893099047651538814078900271529952479554916747908483553895384416805311948128799214046585160738204054414440082948570684627138747811080933887354475794585150960682575105099173694900443619964097517876449703135478638687400155990926331056615371544825546793656691113027403333166575889973051128903893364664344850409493235595307442095870407298923113888814523424527987666540853419177830035885819460855486957851716120442971659614226470843632449694688312496982066328392272309599590863077324998993757995570757236612271587565704074933198085113834347366105226026509709835037648180730070040020865829079798124249509214167898213422889466373041437972370032709179314673342165620167063303020819314677827386867733103280996343861407665300041555438991479497847602187236013621520758503277948119472974064444430138808336859026293734901017700877228007823210881358929615218703964209130506460217491813317324627303178101186316419803327217813843419383616550581409285083839169889545950359370659684964434317139237940094902865996068044896125316646438791743930439081044353827167829707813946611030714548797954912272194189777776613769760974814325702767761971740660150102859863545215373800353409598048474028235982233348552244557143991273552573997038934143587714311582571482739577108251425626708192853660008862762779754771008000339322386075909721101704397516056856177609050195979225006976825057978026258817665256074130106439388940020786938542754038272686498590334757511670312671323606076234686396249858068738926099299412011395859136759045197152202870168003572294423229070824568499430528846528447754441888250708712627248853382173032317816224848413190991268714162936622775848767297417666358098864649230013257813014027811333911043912344194841034386917659647175161083939919165109358416607316385089261971430235060104728914349316996062043341994590688579998764927989581342851860635987801066874177085841587855009859879599293757359387370536151387842358221007234146686688031473750770072904466162015843471116490860582433146263214609772681774815268047649740678870180886466784525224107897860711209538433699018353304057940091971101396974264668683457415400044362839950388577281008483197130156727906672363346247015386149874930017535622907728117266534955323000606349556762331694382671977139203871323573158799290081347742552862684008812294631309750961212001882623330923807504332188151784960753393550094976614317546990440409737807020785289349173749745630322294958774191277275430328546996261722917101126256264726263602607562205461026923452395997177092668088321849471586458774805135914601233627590219609200208838767218684666445544524976219927158360931361577462753052375195822555757620866414434340503627483278246284154029893510873832860038661764985723276808356667284995542760010362950582420636116397762264682485318974629419914753495705024589257049228153531534050772694818290369217617519455853352953006419234079909913896415276424712162876119879629500752995441977073909847565856564573906060719583449145466640868462575390786457112485645594523824546211127401145013667572853918056748231039326021472856591752825757007146278214406519678763315457887824117259473994833568309175900916408776626044142370451049397960427248908501311671284205711464022115779044333189139145171929077085817459382068214472292282954510701975362604707158748824766083572538565894839187278199330573592057682808800264704277909690156755066842685368377584860732529753068505902806706389557234415693019553551290068414347849517641859785337809349906859344887835112355508167677225235026927277481853500561810415550894756658551312303220356299392227879640755429172201672554374207467776113306671175646298892101444368718305531784891645465012984445679973480910638014629286257502742270973804015309469889034871727175440340769684284872160408166693876262728570436187031243535154190501087657785680237905117970347341512585279153534414330420846781336205840016637331951299704361499746356290355519976378485002198900258062159803989401302345660497999075051301186508983968232726572221339936666493870727841961284645541252624879104925655921764129862522786341827333521351092643009192697851201850751422910459961225858616881548804639488008408147023265952033919960354520919968086378712443286998820742203578447480688774214368646409377622635155653302714223523945384174238642633618961778251513457122040737647759111431506590693271852927973214923848538872451710293117903507052184293269855501956382611866389614123612737976674949506951436132675301029258833819128306600198270346330805500672172149901462918692887899237285199530728440853816437673585496065124743567785393719216304211470432128206929090631610206326584755896844339425616317584104948400541986210627963794740405824150350571556380050796539380616583133487374214586131867813102142883788772835442701431211896279292287892661781543654905967395432227953696922626619484156459344795454974998125264058340749902988963762342215014656289653805105787873564798784938373274551773724374034536025087634893675071289582207885583017133767832835772694260171538699372520583571638950397451876071332572623873317219086760438628877095220153845211492641071642511981849980404182498964257256754072416705885557716688788613671678308457308422837756722068784196697848188793594398229126305685070048361308089254131472121269643503984020117192359634493903069905394535503843925911914945489698726733482859280581311703837154949055706563882297038894501428392720146273182983007287058503167525313298669074458904190304561669645250208455531637013474950041882390961753850933836708545129542757680428357757206511724245025201746954297351134464479939296733604121370695888006032888453599218118340073190244011192472854360329905111124230747115509048363092196530083865854512585995291798914659226861076450626662189485119459770320006134807397940200789812796274979301164928451515025856803027821682901104246510909611367202089444176256783409018407257561774259634622911684012388796683096079075547958091802238310497511856029988978340140878994258526083130193749429736917312023733991192969634002434898712063454686044282845513639202355218483852523461701867585934155666807323235595643767983606358264888709794334862430077669247455926223072356043375253081773384306085298856545888625370703486409434423993546572255327204438349124642552630403120254408358095269885341284660156998698515470555372860916421744017998190173222766623737285202236294366515472646567482816865007212881445188699404879682363929242793604431175721145886473684172870576461444668827000058337757557328732070858671447738590980546966470125458574315631346810754376350594141676337601618333079256048492768110627172968525360114297775846862675198787170764685277974616125938959191048696059473129570806791119436748646282332874943692494710683129923237670734870731277671282276162322465070258004085916077122549753274796351858481033377774665345212620832460974084370702392972887215803685654784810083160393765837222461299982395729370274355298233667988275195504160393574711412181432201933812540412742021593508067421179328746900524441666031480440872186597413642853376216569151895122896233906338117118241985627499042610617124043608499078224237068219479045359108387188722670627244480632771590481963411154981386542513252688379507675050441396844529659627581714405496330110634985271823424807067068157509139550583699805554107088498960282832087654819360730577619890313472328716016199324721351189948220247310603225817572983494722100051695137712332193535257901448099736499034008814498341574313013858910762712697085334431233988152943444294792380633049676867375698802449997591645137808859501861430169099458908415692542078683939241456494003623715390985730457934568439819578016576556781819855357913874589350542866210009440972052533499445804723705205378085909030971536503857274725729261705542844932726302771510931487245884224712336170403782958407341570574167502446271289570252115636239732608524674117692704085572792651583118623005519751755626479638536968123465047480942457957334211368018228464792997397866494665511185893145944671257006151277445725483340005012884983698149687009048829505831733424732941855057857178366712435336095267339456339158788440434766856561572215636376089829492407983277215094268662365071585783771630668228714536069062393448964112373807654350407361075884349571215899411779716722632355904388509090284761674715037811526240037570245457584571721484238734703395567083423903224545355986386005694117456528138047839190432427022763681282031655637248139297539263333092055227295498186876038706170419625321996441089157013751046515380614009141790240939087936818729457411182869691553667924381741029266152983529916984795585120676247617438348355011173606822841975946285112609610672131010790016335774568993931302443264265390655100651239548162566439069010895750236489438470088845162710471575189843929750547447186284509881238528497200893849436254452811456745631659412204179889463993159707442388061890117622818228747772797859833795978956782130330514822637074149265829476500650886882634483752601894921612229057410470026366469220090862499366199914733730599892208874366223431535969064100565991363083714087834846702363494297848198029713150447893314192362404544109449921613380198370349162755129217379334135788953225450351445603578748697797352894417116861135984966005940389803998822306887446453655977043214836186905709099489457002100859961066321925637579263342006618680721553512451629617225098320068341565625297885701815582171332152978449806471672432239572875974645544045776735132314254291247646836450669995372834387482464681149510263371067380251365477195810142836488938655192275112953502527164442448305053982400010160404854919640734755191076350389594115610002676001343358934206705493105364029225433050772132933147981652920114082430665538430913494296334722724438475592444307853297456233721801010833676481464306825212197464612325135888388111023451068438084694739268528546602311042064288387782896317290746102796288640478885173077940856072127251779905084425231265077626649752295203425533016792808495464111544699221434470167466343015879548022155204122949322016819171895084910693070154604188506005275219298331180583403400188193715176040974876611026408647136291769193272252859776348229965997578683592988954937460328893487109039297396388860332008033666491101715307005642500652085439760047942735843510185944963755000972144002943792361136171822845808263277180895565385282718481308287309887733548519186925067478682235871821330115548473171132218958049419262038075453317366009632954981768171512255026046623844641230410704516845437951866383333371276940788310947373342280564893951341554442951718126576743857012543245503441979673136768520421275723528318368455790892319846160283008242520852757103328209933019528667319677022433691231574277751381531667935777202558146633149171074758956969115480586868103693442378282370193761978523249538888020410931698619405450524795971634067577518081775987806673408113982394772914392171117391865627218959528586597267320687171453536108105072600750285757834783048808040474087108586684644888246487213056154079272132700851535619750568167643143755246915719133215666785321720048390672523501177368518800219889365781244209995136028855553102754115949836148676370029453721839629942857148371605736437688719382071078711756043914047146078781511017884757372450488609764569817564625841144969549380316666540336450564872360582549887839234200403782631470549099679373267507653151961016918595185364627478846433851608625481010390705151246471558421883298921424293243403792146321285621310990069170077388436925958588978138980375544189512488350584997260304018104089451838616271908692401226237221785448826702762020289973502213471382292428244757155566171597990780871131135939773565477582303396059283227172580106715597637507624404664311226418850187932116281208915620464596198172864431592677414748006503403963501810479597521775129486067221528404652172265931718448622665758158877729258615302123956487100053023304865042069595225930454570091068447458207743927364205889698777297350720916871851931057839954370185852743455486984614219810093897691413080934244507591840048683733860214278169014202179742285785558627384923793706442026670605202114141912375178076022743773841058195595096658084433834278891444881535297249090789378757971505537106601573845929269026572758816192145686593526333432428014920338990739582262759731736117936195668794989878050004754072603885240164921468212462515055464385616333115031588158069680838490495194821517958980537400628160241383436554778498866352820910438809800554755422737881437492643070406391758245465012439067187861690243340254289980078834796115286835291783332120583443364125420846789328455185378716477595413959066775133091596250224752200054445764320278612364956619902792292296902903333535659303714801522122305329000392181643395702227411972442093168776196427954524076737098343925276109188390492382324528789626925936589975765314055842292136085800359273214969489143560652752809878215014195528212329700084963726140933943061563826458562036567721082787608012080394322410840181275484795720506381807067334449561924195074403167038560206766157745845410208150980146379099875788168180048350360662766286010819852640195755966598703507753410016752121650888144813985897241959477087243301365001030482404086158966364180352255849092054761755128224637168827514658095129864295796634177244028045551625139331166480861806397687304173008013578713812650451362807407384757825277558360213810891943604048201760909195207296813170819208233807720521529603914369250272190045603173285197454652125951071069755088815198053823899239263424826315167129765810386689724160824599765520802641194459212699774008589581417130382163186035043856692068570698689788328499471355796054485316131961911740227462407540393504231214989616290653673532134401351792650488430175335821073507901495802642896199776962096896600387727609241192106266963567068133435805305209500704444000687442476628259437947123188419419093600460727929597493930769521024098402591632956133502435025431632626025991513394320541705381415671250085368580558954025196615485530823243372142741360289215508141285795673001976205281054009309036883195477300036809397754173017771269424847263582674446722675343223264128170377431601734825756266914615464191028188152852887869349890158623871023588855975649611448030689785857767276606939865158691801179793170281635623116598137869310167485431446242619115292066663097465899015460441178894451966036579341179510530461816566298962430303794737662349828737735807817294502259423482153547176771422561620660909962181593742042019812070233847180779010482886487999777791434365768317661095569633746359515253453482624014463998564150431165125986873729307142982382408246565378248481856678260579561872626125559874136273706662986057788062214434663815531272622844871415311793810628123609442250049119864476933012268856920557015704785164022663300765309132936071089355977844143587690142928467798539976613031927270334647306429751007788935176367579630042791182512351653605151458462338659627053359827101884978947843879470565537070716059081665443260039946137278678255667371183064397407788346455230336816813626688957539927607102908422760155933246528300620493075482277723787185887199436083136619852186352622298460086392366292533642635008043270584702965503022043584498521771016835879687054499080193495284187916305767043265975868400665312576909390371155378624811471205904668521110254063387005308709956429092531725165525368059053260603715083373242409007734622619464136821755411995693180469400408218793950699807458283432222468208626337602561098823518021329347930441562670198630866791565610377420778080075365212638350683933834835380295868739168701023087193581426713035084226719208926133200415236229397488323435179412133908138952621162170310933860506556344848009432099391832705836123267372967593742931297003775656492238784668261637829149766387955089527391151514269222248209101340563425588145696428632721003758670844651157199978406283646738566660462685823513915372262138709312338455001068345480933171848947094344844973113663100516733660682486519188482364445679382360555547775217796771480045589945719215628629748254103612833690207064441089681925356051290889891447298488997836018267327570307006153048195006898892651295848778122545495364450663017575371760317677082079321088594729012083479486510325387828630432019478204889892710926479906450441814206695519825249687782795866096696929741215686742229816094543328081722085366722668135774458568597219177205738614600441348436838976754049383075357756419677197362998525948147441505859448508064843471693227469422287668149396331809630883459813110014000348991165729134899986252085542104878186003148679840794241396706233557144829257895050607495031232404258178154423649908875366799680715636815389053903002745858277300420140133456346909649302564581390719043610673911701293161035480884551023482312767637326470528579200814757939257775727635866834735527218941719835143877015459597313471040601451781018170610870703706991188418629651393587659978331170530683369277087474228848661012062540993793200931270122846555462963641051259204627766170542304787678872223656634757667465013736227556280446636514693869732587143685481005069159421688176929987716947432071264584982670997019663359324589754807618951547692729309055678948163381243648623491204585720956739433558360351194752831132668457410096598315277678872212503715434004041704311372228352243885766108256206481615104414921278149203101619390595597229329787328806879632363536988481886158856477812984145768763002577478857752008599165905820220552261310628281661804099570908612425221013644700226599910147842861744021401825528506869686323248579912059765807456097421818730094201061318774165765440154447213807570856384848581149523386608466894583945656942069810756858818173943061176028567643998088849065232534527451251392099661268122829053577434021086437266872189862841728369162955498235336984322664241782247190820104417486490955626060579077197507564964890189262959927240465155294026887571808117202472865346867722545712050121295685642823241359657309417330696817908038313678887405299253174440368109983349185507769889864272497489699748170845824462485152096502977385686170359413051887352488704737189340381621748501516478382951724692496224243134735912688510624183016092081474099746805031646054660556170060903528802109435833313062616119399683835892896697314718429450620509453902619992970433970685204975494592320426840354788829597294749478494737844388998530753276136930896947657473216848675257855206370083305758228889147646492960211007932736810909890903456204794620190505058530055702738185191731651668946044428590112287958256039143138539621464642422722531464306868608814770237963342993139477495227317489577831895301951488611109465765442518477643372963396095588070884675439512919513005601141157264239915713581732929464337831474397238030466235133760090224286224388601577968523551567281625317906701663802613494185391037383177564936713827590017872250648693658630449270113126606470555860674124891705444404519389109896203439711375114036214305430839548514669058251104767889097427647438937636538422968325320192978841370782440829198570954090742739996238502660574991710034512943575281671848938719205636037504864850793896413268640922913595953156283058809648303695149393051012937511301466953619006398434772925568773978255955823404565835016123734531498328455814415534682329557949862675970887366664026172989926239263708384808624900432439702216047932206388543225258947487993101204084103388352099694852854085794421891132583635791390923380131827673113737098718429048864549370035009286594387290526961490528185075429788762517393139041672431343771206802256345874704309650462720746567680596284557602433794024818961645385735053545938218276821059277093111438342127492406973053258184060146647213453322527471488525260592355818902967522403170724421445360755068207343436325323161894378858853219113755310759087593688807654509309381937655547255528725668456017909531361556848217142681858437522682311013884688354844986629826511715822325124449541933413864406349020591630033174966952337285550596353235460253860537909685724079893852717424613252696282981857338955903922532015170577001566880801968425557132779026399202840683861476417047320870884713749116014599784258887424030195452565806612379034250505661600458009229261852250341894347973229347756020439340281639452169192911691745301260918908653987538087148662823934263865206400525223985067728265667586355010687620319347626647006101100554541087002123813728493230167231019246795298930205667397778845538205266990299569392744844952493269300769023376024852998989342612885387361787477052661747197863073541677726464642512723349500998382444890143473965491852392357787575218272537959447799404089215576729505033863746906751327674340813416300970475593385709874928550579084943634796320044635699220962647759861222775149854676692022938495011696521887049380883715885583259239048214220040382899878435188686599170226731618986439464578059770363137995372117547919502143029029640784951237611686914012539148585726843957193413382023776372752729392074861217638210950597103736725048301155125471699620636568577089958009064791195727153576857696424119394772318973599332155714762423659190062263938490869905836760928822148018860864158978657827340419325333483607980394718534811544936470171004598820083887612727161874682334925158117797936566406552247677422575934524047447667104682642806539931472103582270901109518848518821774965401040968099423793518327110516372881649290740923726598453268073738834011513293334683917396637745534412757775107147792029629441739852878285834653068840691081921234783335138971354210326511626411747362447935793076999557162068104976088334192507867214338301169316429893366754129295648546605870627269603161958052061124733041943736577480300026058267194641958926830881961865981515317822628530276968677845124658180567545838259655417347191908524295402853583176990546321447686121102533474956443698698333954808972381471001524978589554080317272791898044471171495883633271416677061878149503844060864778444887231516961055444302396100323897014298529489849813896559124370365020593764606977310812748691748722848283588013699188251398978347099113353457093480360306423985866210804149535132320133301655717679727019799020132389145271451128390654354535109906033551975958557870281238087435046529041674133240633284353016628635640528003597458617091641093325732545356716302842824522915271348647345910288538471487593122472027295740169916413907034703877034831032073095968144671073516236330224469426526117802532343316515620284955590634484907288462725747076278901896621868826108999700884739018164800578349373136461147435506551827929117741649463269556944802674345237406485574449590788642983830052034489531299264867013198981954650000534216167549338526419719814711112611050634901010182407385005070780658041273514246470942537482050307363161107440103548851365215549224827805918694898432091471104058727287034591241921080849922882083865297665843160420645394714781226436325438165230115585045292869251464004817446345624018106826408934203279216334655162027489798864655031083745633134047025578283765587338787488365954285030380658464232751174086875185859780716310725427010965069767302666330318949545753321834868293452674746742032118562117638870355763838986762810385386156409499600888155950899562733429379521413432310623064780224161644931608704410596777592353767991050316781006493730744808243620778725510713484057048544334682129634323587797462038037679342732585085936600038457423387153634350807890343177344825383518943090670461178927748734482151735674843050756906251983505625345667765487236591204392171351173054082157418020486390117913802316539515794802060624936440830712876570570496938015393228992989296608062480448699322861020014337587783317733750872555070605799531482269458923711695861565876882714094492400442263412183392683805848968351706123130968162714428499381652349401154385698435835009284702983047211635191212443666886336427063481460793244032314023131792182203005583963469652389524020582418831773823795920582698004551275648536394797315666404351951911505319389687529840091136690825803600525746435894900990177126964512912604714283016165237565406212832000369392625091165746534279542748440135620887703621159940024052403862282288701208996583395854285962874097295916450759687175328696961767325095097362685859699465777985443163885910206298000045412189047273468209375305990767104581064372128924112931767771434011404902940024293010007293382615850044060719505955535147925532342435065463897423580452938403625105529234259799601395824561096816948653843360094673307398708017678713758145822661897167250225839559324762891138920916441551527808425457757191730955689113396044442231187680041019847632707969747278573417894645958914602524616492581910885775219490247082431587125622046699440541983087311779435279315373304854745734005176597234112046328244328886467566211962595480139933597412170462367716573288751528980923504713092308713704935385305013510174354787174194256846965621556222791864006063040922106298835951333592440162874228125209179302615145346918916465368998889154401252379076361999826887112763856463401616012128416270204153140753776451941496356576142219361503665913381613043161840417609972518069248897646534619415229456190099885680935730799460396463032157189755288645626174053241366322257495684836060626929112730366891839023546921754280365950081778883848272000723669262081328149307791772292368930764653254062835741752867647837770044975791108268413998824423645989748645158319123507903040664409166070832142765374521451525076151127654427427556601782741412510387629093027110408666949520576364834220191957295677245252179247285631722633813512664682403858504937283399688493621605843517315319212375275934091403581308026912285619081481591498684247557623288297633077209135328173940950257329131915211290714175366874128528193014893110782074868217363821706265850347805911023833562398436365743397000756320614088294294902410256384986529568142465579531286081880078912466185912186773851027453621187789112399606810098105342613694267470806226870503294789031580442818228035072814891277360049097555777125489830631787475753410968257072502660688062747315092152548723888808735277632708339640714771720152305437998408648443373480646534702635245050404365781299410448441307332855875825835458761722756350089784407164473359343958801257936812772740209433220729760830082163251077330343441199907570461727578717173140260721513041149175613115629934989522056626361951845430303615104677369748457209986997806018232193791882573943853771641244903755528838350757152398058790209235132838607358004146429392178435109949345792933901902247126807825979730893131019446769008778532982156596481201658198662215361737864636984641228902815263187187153544295702965043022037702953767852005257054275543200750509469466415561666225224201132846318383422151355957288393007873093341501761256144914560192498354620906843086697916563651478450773748742442264398366286592349479376891435563727687433779417678265284584650645221784979345774992712405183717643266518760185832050969779364353626331368227509764987804134426586938032040996953025629681226498458689618855374692563109378403434770665778382796302000237368555411732875394334965234027128807809286001864347394348271889772489450220530946043670042298990941521695735212874053053628186007470409788491086292871783120332102123587654385169459579765643135453221974733239852906204319219284458522126242770280052549921416571345174244461333090019494881296489951794879066297301218986962277140358834598933700444989721052935212163649932550133985699342521272063138679812635917520302556910264095566667953872663630101663888998305610933933287353683397089719814130297334281306304803091339093195998877912196335907690715222597492975818162060018229487015976851704785409790327104288730124889873758477422686357908544402346086707305680226509209591990346973148629693431668689012336432596039067527827090547584307014874444610162090613448734572081896525723950936887503625765613247337486412107780978167807603824803929334667501549905124961592641949586907441857067742743356798518823166975403570245299297178874580194843407820770989973589625255373802855314281379839723109427011930011557247283064960891769235916957145102444915601857160201770138229416632190362275340420623212162709553610318145325381571093513240322323320447455259780705156844996659758236721674898007839602669931770702788559660233526315715539209778720963452777923603283692797396777715742544601180851303724276504335607453901639569109752128997528039552679997223315228951768701942822776685832484549630351098202727760434908471686710487026036081494861129861617378878808791897355113394349137412611418398054007457216008904002654795464210128977073968393228683723262183438486720310962312794538638476647903335109049935988485461505973619994334851446383584397838375383424727050002572513417493901118610953851839305264652998569801070735000926736972568168163725752890786313123367434301682005603616009798773889290601278361827266987818513515400564398413599128578805119368697827231681940161307058555119458229530781396095489977582751449932194379728598026924411249097165072994852605327237898213986401889193642073634847412355192586265171799809780968982372543137771276451556349776083847090651355310403128675503654403210394754773737934608702006962288350040153713020411319572996239503035790674293300240855943317558480635704804356163167247128304744709723438610055486329452793332777226152383489272456183400509220248152703800834343128775012292340324756732682501076199273495162093683961452982945092067237045829375002741904355818932835133543151079594197642260834285414686357410012062412630703278067886745805526043588225836549700441801514855808576563456520103114878983786582777346694669543330944223270636088367747260509322701800202402189010911086828919100783181613490201607044604604224949560518234240524902976986616891437616433525612231179110748669639301356296650407038906560940843514366718096504602951441105772992577501730233056864225380416925134234717951690728713179846127382303717955523664209863265178844180996030137365558353116171427033567108108326844616407768314049044081464114778418950115653878100934083620389660960653178431654748091865156428540803914602061722261996618696324440867313085262656235791357840535109924047734544657467152028164329148479146184549297427823762522406322313791197550833758934936550148114467639689805954277402212368193903609584023465695255127777138556503872996991037534635119996775126758827269169125742830918589836366818527567813084052027524702677440564335428996880785419227522159395654463133859367591416824291959723895188894850584127784859917290219497391340068592827132386871767921266506356456022650969117151286959351921578352466545276428965659052562514205648352882723332605929609033316665506121014325268368551148741111419085131616207477408114740464351491834036360374492814574717324907703212756524752142012171019959791006378255148341866486498804295312892550299703530791801274590921605560719244845393767357298848321896922473887755331892384819006564823402303789553323813579735314983704752497207526777474452418507891528557000873417490140699694178894042729887354162455400823386759117041510875990462383885525897637105220292401587685167217940979340289925129714731698001503385711841574929180990367300978961476526571609944740020454353538999824976051418006678421056531361392237358499694922034998773285628126513930278560060896956216016899730671662691516555787366573774361984066406226035071578342539620292495177724956559456587554763947234935160466101359321813047762405404087125876362852248726410193294827098604554624916725574999890827216718138925777509867000899353279753915636172331629939801639224659577057588382124375974805318882159303195064920687157065490365189037676480186497414086801357485034246856148908797856486181112814266991813051119777156366574832480431147625470968017591418741880679082728895831678159458597627417165365784850004208416796408111403838038443135969048498655855452547756004159659762765202709260527024506004138795233674522394716710197284117731965981145574088751159364195659412867773544385423531142513572470360430714396467110966213068339326268879757371916088458786368615107746284400301889390529785678920367063090490911371458253131987644465199265882850923050211486683783796189530322089208427313565925151883529548275351853315426019620803046204996380547054288548349050890621740004804060604835446829914420791182549928267367162252292077325042434221307287390525965928842693326026950188873069407908159214761956831872533334467543093969156514438884369251704167695490596182413995476059125889363578365942157330690473605583513101191389427214621240682169082551368219036046355862905405685927974560200329256471121250435861035344150960749516249368348417626373698435171081915740552926023187784803452589689285791523533428528246302993933769878198821749517808325404954258477824989885876708991081631518096091153308743447035201565494493164409420339925211331928260449809166849031805168132674508523505208756157583572533966832672990421079340883341076272884869006161373321914624839213684271275165447446540987171704667014416261650922700575754003760677999372759907754798293363034315796220751726044353863607966693718372830605032461051825656341281109698642091895553830210513664994324903349422213709784249150518699151557153308400568943056892668484485975718445827517041548514956650431195709470370534334875934735462260351771883491554441436961405024194192678369267386531465068949805044355562864087430341038187228561518659617008179526305880568049430973063636693818592389720393773293071720293244451899024540804442594002558748437069306998801556031740254194674127522186237826292252737390989943800669643485735750333958369855379803764270822068257301567492897447700071103513844407458562511622650399367405752392884348119824762351816846469206401070245817884074635359838802459981141667773224143304290758273593294227321236482495202480468778404557078689410822182678424105756510760023783060310924212421424501761620590339816381652957449238238025822656176069664271370700019383614617228324114421912149613534736783040588485255709326600780989512604245617498966141229700285134106274765826166311555680391724487635838575565147437184123665487953088727731757195330517834184013000292040829445078108243556649688052221041676091411642597796710102824639424606653505419897612252350144254831296891946335159508498182776917554688679159079763916939567156763378471591114445656350490746492109599682445577237399391583967364265169674849526447237072146462023620716483277780204838412245948486649978814137158198076785057940223854395596923865342063427367799681411374427633767480816471431404615646660912741079158773564322041233264164222240120376212936382979278479291069958332454549917977920331353133954496783839845727536955009269937381734855705297738767930849600684812552450078817655979940426246100960266045061824478000165889657847840503817070952924234243188698247514784399471594048525754918203500863927582295157401458608342367442518943879568726395173467913500171146761659215812419291078129513154153693176273072078991473824412896340207149398702251666379143236579156702965185918111719109535001260655354454320945820084856929748308761246048910031227568631706762020214542840560841664483925765148062106770968933369043432217668076826098518775196746434544412765778887610417600878848204157532063993135684082179565673965102688718451070495605224661518866382337635090397370410390019588556885754171285257317622746824369317155553447919258960185172990076989094157574698363209181576043394724484798054425453967263502182382562417450829095905318996601324194079963896967859766438429798116718008546825616281532323704551466741446934000214262131423690135982949746370875763982947046799184363677163450026534366476114591979992502328787019216873206725383853003770421299476544970493464280901173353407605702653775857311915383319736444872019942915545677295644800147506731230001422177931371661215756656139084387439123477931508205344240582406944226100021775517127622824672099558161014621141911100431027247127692323448415248681385512013443478980473724319041150093247019051330320344173166503066412751302943270917828452013079492987147293481380707737387323398142518211715662433107088716643390790166782912743070085725858479703218021231149961015381484531246663816499999693134163416095640591590460048976376787458101509732283920347075670503200923723101844989966131344442249093809775973602752348994849155463667652528143911863341583329536606628042683509780908546437487402981759084987443223588994439905827604101725405203489806733788668381233228880045331002832183964746131243554625896171698131827464267806046733137725963424836611708486334889827976383206989017619926336361694415821278955424953807727696438388215319590952320337181748178796856046568113543548111186250710565831875118352026616368808068109252021614964431260295605810907018232677320997775777743931700083586573411168369391553400347945712096316557198921733066016954066632291464202892952765255928313229429843668741466785937438188943094944359937585320063634849073780329645421129082349775570432652220886113242267543869596341872631896554030350273331444446039893577353463633201513819537093319380049818551415523977221571581750977026526112712237227928575573363201603499992299910337326405647069504418565768903370560798635148288682223549071368908038688572255897024367523287323648761610173982997600950959212468766899176342138177391651473076483497465668271645360961617015799054495053592613299648303429532436804984349152411367424419898568434394484628395553831438496526099223153170411683123837754998675296426819753166009974461017506363871719201373330130065611827317409036538905387341306613552199529366416670682842082195541496580099816814183864257399905575486238593017275940873714494001188839046117715005114308081318541192880486218196040841875219588575128522404633268263890718005052191856868942598031607235295882837515028920167559091058952882156419146472752181824527027784158470262347921074505562558422167977562544166310823133556977238774110783033680683168728061733362136030360232972575881193264611837508351869919832618562067554925784794800414023794758039103739523390073561821084137042718157698815137308886778726823140909568630331278189401595340728768603865131693913290176635055387403884225237687888786738468426226579826794167408163566987404191452208679296460441115057734666039161321542344579534669608955646309912508238521573516671874910263107295481912062660767727742915131075865810588221186272884673445658776212869588948725438411435890484037431254259622814748823716769151442331529760054032452829934547588888878776538235983850448812921533241221709588767442450227750702219179120016094154176101175836856431260265797918182963672934930463363303485040524912516303678083693630193246644076281617523009650983606643236504301576994039675397668620126259570078957859748201909530483286321347725209043236436667968568331686021092276277230214347869573086354789228456258777106455929693478846885778479265698989349196355917783088414690737352871260507849925407180647149573180740638138138258437508824161794544227477461986393346878000775067186432567821350274024319920286725753749558498300677309472246334619546142944459682014668595322055799612063698635360200245464905408984279476929391769465798671404798314845015289020413967185297942947835744864579668307736926552656719785741388718237314184861781790800793039367866957565235519230189459522771404921976097510160354142828781436820378748957617148557141449645157495555030526496434302589546790337517317084305906210795641300297178149436639798676326115416318617053863376814745899608874798432166602337443613782232973938692168930633697270097995803089384733826467904663889455952998926385988904176178086648926311273464413293912912129610343033945643154230399435543350614856404353023119418600603234345961472738878273330382680338606175625177266789519547965358166932942056280264722744198694372421599728710381601004934277798525174377750726035795002088806048433329473829585157693915851759676007598398885375653019343127394010958933792189508134040687921484632084358886115163104097083332865133720473961393588098526832018368582780957023617167154498188192668481107243967983565110327541924948105686567460779380463313426137929997234534832774648208779302315807267344174969633171410324983832253022927451610332526428417552203598197477092971781174214864370103656153575117463686568743857433771883518477140372458248440336274327820913289631280440423189065198883858020111067908265595310349027529015642568611397107128436705277448335071593294106636385494031565442267474261454141085028067076881577102520122535861318826343818227452957799439432053583657202197597030371950997529903803700278600212986724850216975483642142707808434753623857143719278678988118631960700642993958219078151505779684627499269382778366207469349449705785506016331452849817442057716345438796865026992062664379203932485032630534900303817208489098607947941824376335772986490213400388300768461571373359120280837647406175390255535154420415589034002046906774698820347594365575379438212131709255688108880138530773617915723566870559554887039151331075534100955334023363367798404962959481939715635246343387924809161711146362205206784867443867580769542344825123997477890720521518391779282519774301772412008148882576514785584102852729988226803135659750533110621525887900027674404603789223739722992758574412550656723122882741074735437618722653137248069874844813988083291867512706330272862342032556715005868323740690643283421524634320442344238642814020721232894876003312790614328090640727506885097933625021427260308748028927392329235039519423038465397747769991528035394524565250717586733380662571434113058027442134779890000713208298160618009238656393427691596838912646229103601206951332945082221164591053403365454359665640514915087396821389437482678594513074523250414674889437197256065513884744302383411889511625538811194931169029675381532876908146125982378108027442712481642648115630356473445589882995124977751236155363768820355048957638607685015027559750273875955459425238700698786433770325839406854954547620695684821032347396689583469015983484195557683046577778864811292689755026894564654058511741298749648497792485731050534829861219436127673740320370117168184346822134512681563804267271748918238491282554207211544521567556010468662069362580558197587492960199906510838027802109869954498122623319288651450652805792576747390679281170607045923650963816819778166881807087881266408627772809883700816533063957813534324583386806437029991271926828402777854567430851859891102620987624020233982315189920004673712550689717316175019390866333254802002286009958192666778038219751573245900610014192763653068208330072345028019852729354662903389307070958227995596739827294340828431470506172810251731476432961182559672609128343992410539698224636430474525204740755300219903988456144974305110011477026534408704774373273245717643859221081282211896687578989602680238438049359732041808181480586973259665223229409158761125791746076288553699231081272412940238332632838755296969545496641085346556967062488033228631094783772781962063086199920313342558185431106562502043355021162072104586666657956869523636566725809120556775059166196521345111867518524857172962848294746834913682577268384472993648588983946825299624653258313787163798980863470144761987453715569877127690832637298773854647558886971248192226463314299071015419840322352997307047726947948687061884536863416353817693040419514145215064111214659672224833845307989621198305485715596837029418628297294445998732699078199304060375628841760073249200890178301951888607001103794945998509210612397748441062464990456328141525171871127393941438247352687362562717104152720465173357738891256149423544653292092363315267219800341608830375830670734581588099024739588567515820099645597945599997093369348044878317137788646962854747134610532719010944136339632081265667895895809135922937899606252365576906235872789704419025481018298756767365903518282731588229107102482236598855001189860391407265031663852802292147797098436037537039699527642626773374601566483990835765090877795979612562825378937046870124286658078897527454095271225642798087588105614565950179427952972528862870200702901224384260475901904560642743415953818355208515856145900147920863605895530300308538720836900808333725233536327153480086297647174385014037543571882477360259592135509759585302421894969838142734911445946977046976501613686636622050294744330239388853904920950531331768686567124234459220198561106746665487154100983654136727835827926513474205302186276871266983239099981664510299079895875453406140100524527541112096659571116293391388715328175187476645505392893999217006024489531273029378725424140794636597716612412918818087549056355600308004515968397508988755895821668538332869112883371569203907260643158903915913142219777006381512384622617081981255742255460308319122180716085661341506602830251202314315384388985587958389686808884522431284845741072279031949504788263168392799601637597642192932279591735966187561793975856680791558543718852028634782550252139857542218937380274819237341174765003205906040173746122927372759789722552829879746023393723036422837917343581242004420077585275419764782344053873904212862448577830872573818507912037415127597024245511056394535480521758765641409071984738358276003759523750111771862317149078711326047972157578221275136425447234300273624080121080722954946219051356025150739416288313278022268151590305618215477781949484043534136714385974721164086737612739190645628155821947254853884178292098767633763163417506181115827452624709277691205362825864021548761006801603737909747406673360361633193282183216896273740605694100419974002064857641772674067822525447613231588415743039181180737310926050606214769442762852021990335687711423160892099815285349856512981987066766235053090068410283226429987408817590905797839528305170925423082995301666383888082719799900364125463553955930423913637999390868485691784563644604374046155661754957724476573184471551410321038727643970541566434364850314883167957973023716066457155040484177841356824624260550197329297801668395498509681349342903999568342873091129983990948492333000590400965385963233241363172372141917180410870475908252942229700304609471029458465293904417725543990777999001648671539453453934821224569363546532071207916208763779022108712009671712749786230106688957076140724991374897854379075841890578940595621024181153988074636445074444191701286754850792100488877545135662267285593815731639879236491690391806842432920426998028073696087510314801381397046744756456528427328484718796506567880336036946105208796037980340856535211305245595436461714948582292059418247130801668285400692578854191984511252877587949010089214969225424721650034043968444380808084992709758976565960242988827400912992044653726144835729367491578331815318029717693095396428146918606399766508434246224475091313053875968808191221066339525665693872059724467414633886911241574352099268075559667496571606282432668722929355024681403613840242664233897623203906449994790184814205731640921133340492661258277575382199430304886316696388738070053173832571218129781508890966102799618829533819595423922623294302512826535286682348649128263397149496330374881920343435835405664322912730230345601579797766885244982643590235185735648262732402920019597607188814077839024882751787626656942210840402892849612661431311784350278614792732873762331315811242079827466112011050606074520474158994075517199575615030690082298538265614876424900075785625667880430253320361597134251005492041376823857628826965016971327616848626965948094847423721163461039846141182715394105435497086671306479061948234842979590102649395483924666467610195030143152133017543610749625675491659546990629856048876742728257192782375980198366512029038547029978803908002405942650687839576277460230230333330004803551504822766482515335374501557199399618246195378489678548631845435077541222228896645505621492350978448392974811883034269889077024371981065745776436435795781403001711572963462227960759884519187606616331855033739800680104663521167574801601794739235931677386618791091991316927623352767990499769435195737033893232476706493721865696957394983088165022774433827229800547067983432068037453147291373240452702703368533411901673163704773437127219024870748303486909292465535903813838961474344043737871122314295884366012088544204227379937031194710620405335448057194607689425776741269773927555234941193632570534409504640024216983303289121214120194541245549870643340762185343573948366725971603362428832179335705553896853786004806737539687142247441391117476656038639395599050718776826671176300348148254284195079810250634213357713239499053562894872563214597081596691600218093126046088136772758461316677802190427484727856829533903854540484945741066750342917791101709787046753865374218483001209489196028688033676819988282769258609735674151944730962085996189943746774014948941139815009934355770483789078687430819696645642456819105885252509866168492936486171518876587587007957034179183602410657364061668491362387506439740143714520197704793213558003678819196600069434975292810842857484848426401080074773299442690369877381982599473743501505185926201408093921931878243516171533999517664739485296477691884444592123269698256581943847679374025443856815945233531166967874105374994229091600484732236987828081909426278865084758067252691259436336561821080893657113981514931223205213533475217059974257222334822226605216919265458280905146477458229923996643241234307334380125848684950446193278308381457911527855830073130099486243198899496522277414984953212012901572144580345524076379794586254898854248730252280404493386247831909729185784362544490192986220307944898594256418616825658676000214703965018240312355156479554198496197342694643558727759154076005419404239389319353541390407255746038014307737948390418548134196782614771518357110960986547574385530212050270449129338135916502177557739764893742557673586346147508669623042503196142465675556439470150813102356892713239535029631766934135191125571282568052963593587824371182859150925988516194700603381938206279526082092863421776269323967205444680034429700785133534862572952956844245428921755195827508092745983045020655401194979076580525684060811727478367560630096596152398309736509946261477928610610939883535309387867209877117902412546655536440357042075854248981493704405579249333788218011097084289521162452870852624660169877724035931441629708414086454821506914476069024484798143396142453342440067537205554271887901007663789013085699137205493845103926097545868508445721640051072822226605193319091594257629635688452954773894289975546427628994185813048200387139616712204922005885905789789289461976073297406349657085525618110103704037288667266939833837733882439043730165066326186009938947948364088362933294092739222181910090914270223911922428980043419838146837003511188587055607371043170735700494859765346911849211180285911906075048105201103624934747614769954143008601721835157033632598535746974731972574042143038796885739422553440744459952975253349802634611050912264632666867744186057370374382180494672102216951412926926408128069071821224178490792032683594479493838012510248600348453234861295269741849661351075105941075379925813570901814836030010279021404085783652156087703533687546303417797010066644469226521835257324241928910258848267544474801924545701476275089021624901753858644910389971304140720125495458602663983694877556563154522705887498317642216022934927409504854258059090046427734213122571658359698210639578007969722147706824061442282755084764817931421139538227722902806900489762849746316318242567321893603876713286592016160088808754035161466848464584578954812531292180997083804532671866902755519077957395939540978902659655589202026021165805299655475998905602318343285996985367029871418641465060768501670018478714606770819793655241709141457400407154554355216751731382204997281153844881264585396252384413338064280269122866164191227987179793845921635055227809957597138788438963966554973519948520437634812984059397759294095509505160968438558237063999698161832397334143964430430419562083748286323235946706780561474732285358092978949909076148179329540976947356361859052543894793304640930379023557250951045275067567110122094188133422862177769259470894762731355795885669906948779322975211145862316741564551958576661670483682495387783406076944241076073587704454081471899027046351182416848363528550717226674677756999832072782850911818892557202857849723410412586847540554002635258382090924655419344927478306428324962661406346320910637429487791569550024626759055084279339255931295715319063049367522376440361861171394885514493873378867786446434787700994717098529493211305111609734001990801837212267302190406474072428609978762986737034919721505611236043531735477238404059047051316759622264378264536231537942136246896148142376737296917633721958893201954618074302761494637524250426546072450844695408450635208677356607852634934130038976024443483138995556613873941118417163275589239811500615133569285110992138107440337839547781417817720102358489064027285729239955624073144662724861585167581416720693510531057642614900286283804521233175140528680821285132556803456921741452556921251617070123185021417257248455945587628154210637502231681459830211807067139689260799159536712158161423621373005900772527141864017549462955494175120966984601458446850999258952763197011172367982651517125235813300496940976002348432417934076259225419804613709433848121347588320590479190075294011911843860156598185807045681798449729289172882602563461954108898708477434546157259733106028307100937158977160125831955314490844023170007232566020864439114704253525506147199861381400361312968660237046436934876278783350150196652194742665262953503143283677235823845125861571112275176195996965059740350326895705797301056451551967200114644149777406323455715132919562645061361865909086861355875717714587544329738824363510388093798794748755057854841685513810318024888064952161245309212277969235536408412752913814913838494345055303079360387176490927801689063277086622685854690347452517814652621736475338114051243014443446302149458648781274117838781748406411103037837451000862923110522365633592627608319550548562813012699420927132806221407073473796701009824742746849346965304617102741740314721475290312576278562468502726097661577145883860294050868074979815877147312339904623048156659121252694551045840539812791264521538541316822884255367621911860330433645781139894743593343149954263028432100644146769960426300819022809450793745908228221750052777025787739724248770090566170773025650744570381375569997351468840262959319681345863110297460222010862695299105338648539004503884136194307623951600718743723966005956457207161324448693094938190546000852486239880826619223361927005147107003421195892814326669598660806241811567668812149342231637680831883528740001059322428086855005620941046917178839646365486834726635857924396758898822550237903269035184428793760173916178507455775863623493986356764876784135612324263495416175901953275809037799662358427976566955906705236019173463110041182468486814839674120863399177192098052173681362152198893672650948193136374674471898284308787954413737925278862567254655329169263282934004733489416390262450444036566882693029298759508261239563865319320039493700166897283450167116368427059132014345712970515273771594559847724934018256609708835578487323439569023973530265325457717882412760821115028779153318532959594134098754489012927923538418425375895902311190610621309995580895781438248060678186504267923310997143598353572567624530211839248898192025529178275157534730423506450865019347465824079818602041456194155472661386625728072940672535385406199223826586177232136637601450869162300723814129985947538057792351699461700859869345626111222245394074821308625702115432368379669669040350543138555819682722591531649582870775696983541311929896243010762723650281008859488500390765843279436977243607751808742457335641582431994415361944554681253438913945702293968033883569689311149893765259332963701705758793194959576876152435604434221043643205485308233914200460279821940370571064338457799222990054596786860069923476494116180160567654672890769467305863259435851517594155677187678719750271462905966887393836248449623522975898452009431321193003430256125225142670471761271369562378789398159893825092819795917153922701366583541110228163016826259479635085115179311148973227874952221863562391919626106666920052328636022384067357601739934052160101469774664839015316742237249111737922355871850584966890195491734095129671281348701374738870641633994594816629028381996957093629901200450859629212243244725236061735289205361307707824644006222237112718287153142872003449876070515517204717678168743342102949277618737562916060301158056683747563834964016471556251104562863740833588366178050447685967981999236684384136399736277616432698178017122564011223277839752038759865062156887300725349216064549439503920984063059466514255723102847948525405355865713948889664720100697790335160465429070335669595520450649168176144348684425166819165900058366794926026992014126452682678932846871425952625961367268698838421108198957233671897889224662834323655401255553416305914161983704349287613027920235842802548255314635106543313171412822919386994501259243775283440302747178450181165711996195829573368180801209509890213657870180915548446376294013351032629718431534876366918243802390942942818155155318555319388420094676680266898143453403045333371092757559272427559874919090136446583544055138144857816131966836180049897140190161626328226795532884778517105046882098515813097821568461047354729079134345377728697745646107610913272998848817277885101569802250861649191388150301256399876353516977180594265264275574656673131678289214670913749589211500827525717838956290718212079485038054381670726968221751423694817763594066369504266083987074162279890151715462406572396406697595936200297080420501056734006866606641156563667581383329392392662777156046502429656025510931152452444364969484770813707412851631469720625640200460872374478507732610195131661065176322455871290321956004054322022380830799715647569700397481230859162202814632726427387434925739109695006449787092437945651554578935722419263450484788139033910101333143700399485298578624462829230632890786686865669379112733431334737110603499121786800288308413416147229022083810159719214955613985381211851698611471148125271150984973036030241231753857052247910299220345594241512729720414868827048111439301382621735424103581575424862323319036619274119768813085042878491510123416851195039869222030259972347886867904987077391121309238898460430650132872153088766779284653332419665379247548849576715979648455359805000626362814105570274115681201320927140624392187173284661829360420800771991567028603176697706359851619633952860594545518534540741002900065949318289096381183448442427121731065919207760465707807738732568863486590858533340333385736601043939105748431449413451918202842046766592228071949472337201875366182249020021091657021390464836167493084296491801092478140548487332816890476733429494519528978656499948678493072849168802402082652046168490940710475770044349611624745155618454817321777449648875825697972295029671103942823005231071199522982387978778917210719433196200062049014388252132585870737725139619848578809788822572945038272635876780386157834634883423447243523851197376870237083063305762182824119074768516247789311642219139960480852310593752917495429777573300979568237619822796214218055503721100867184856252160823927370119397859266144520428899896048975134635331853933371576960889691970580707667598903578584888103023761592746036843262647821490811660442702062602205114368829963470148673953740888898768566481690048873855429095297626384758410697305213090437326788031466945692310889820446864711940410739420734392936225657788986160935405014718166054487575828238524390131757218044301162788213950067274406660982028766186026809855467945604873317148334675259927701384899009226387072210609007878775715251830005597382020522914521995128283283189605191642789220321444369202283727451235953487779263583888290786809781485963557718522028632378340009029641981303507491483394461158737853968537647645441258136080990686144219707501692811469960204098355319791390166917708812341535185583338836417850141460321394172151200864032688430864050181338743819542089724093594966118310075893566147086102664363872414360370448826637619915157602982494175109793985799077755277776002527075887483026107329768128039684899955078569574849567789379254923536987731395371998089201299713235736717363143916652357748080509643652852461362604982123557843212404286871808282546888904658300324011288301832691314832597773426401034814140446425078077785041326732794006280291349348379005639568172953411262684575969421039855781924802451103323799462072062957374419328848926160224223485527825676229129134737338170865804864357533026037617590090308706295498362046645497025057414329508319010737701008798015691075946108539098129158582525938581067135407305945305178177061476687031254486877773213595108733329206351446666934515063380240807293083495690409507978138411119129990612004223958214617172480457578347255622298211979253511156141219510361939816059689788758325415434429004861858604797884729460735254613440044470279275918111080458944360175703922682498390494129806857064178973433246496894115561002416880311339247514565320494591046730396758381525147561826816691940479270460128005676356986292311961315954510625664581841524980102391875097934116689828918731559378278798510666529400180210963392858303239351163064939285712240651408747436084777745212586710192737701530832174405442209759582652520847256823880084840956368001744794469800715562934948029097304375654825413188522091179641559557597554778091619225551343018544896101918206170082880229389696522002087190777655124014349613615729646302660390753427845855677141127732300143659011673313015105509417004484679194493141162610364978289808676600802146055675679812754448585885771722150093273433878345058463216073088520761191043755614119643154708712642223981459888182564493232215802797511427760241009156008169853791734340753136495312826177226416170980594040895622859108503236003496406091127251640088207913163583993816531019995526266269361555337395198193627153452793392454069392996290511439145023896539338223188537845151195346106623864272353173333909649159445567177379517962663700315192936805115691943341860149254871655336318697493370267503304641660772210949669947012856094842641860247439629428998735072817012576321007954698884979690861497328393737171144710049047629931347696429271588554690749449374231003635695255994020403916277071959507607067414308127673596188637507275153486467194300921882546555071067571487754253715196777976220846806096632526181325040470954782723073985151199703410893165662869405244640143740921215720571029738696697671611921709353516420108785854237262739687735963116970647326953975894770944165638681074032950111310959369143483933399117020324629152386184400632635851964500567183821554624219662780954127104987880434469739967087561737721487896559505341277886763749291239915919123200214233820985609710769811443831481156023004149090648316625694808451021013130547228969093928717640136299200916823913223356739852266658958958902797069857809386827470906939240361968538770670741584067250753594762995812707049895576709469540718877224457524257551648974272095352526912188254227796715887565557352038150544405057005779063807642492792117898457498739283557578042858586227028003655588422307220204623505470027235825948710352798633777841163816295243777578251435894193547735794245554303813144324475861136033487993706456397376795511013681498588828283058850724188287432919451559526963258944108760775872206668747068250260104570675264758055438947075656845882244373294252307571366759310611252039779616670993969972123402332492923441554629944628527791230445258204250509576594590471021224563378763473335831494110179331543945832555808788719175139135302760635286004541303432646572433120031383595910125462500374418540177181810943200833017437964740064876672433900999093579821364687023152583805561371998792841703929054681479926173984923209470060283743948498949524418453810874794611608063147954364406261411969415570437227585798748687340396321168164460317993336306770121850825020054413071599539297553404702962444621861785350936378589597772855642408406313380801785149236352830650455693544074696127432133030965664074549079045759247637537500495212899256186547234420844953351797386733614578399610151080021559792770698926632691724363105064398735634156867899664466072923480563139509768268823904601555317900516246684636243677927935497354076513570104098892721705531823761859435757060942011772808490038104040694354005160010164990893148513517120662329742650245930072784564650256093414641068168911719928582081786347185115121798188300881937696283465602920077459572836683565378435980267591957524246600165734323358654405566193014719617985299336673816959683257378187669680841279305077652768099339209835670743932144339125348882103654939540937845380304852087752509598661153206422402362215760522363310967243063857721996223304881311824912034960663989717616361758804041720847299371458772071356910930795721342707013194511575786351626137013094241007234446051611486906519756331732422719167760346056824093301520241326921638874519422786364502244770151257612694025805774992975375649498563315044720525900977113769693155748783811036656195874374844981220871137012649956173192420988021540964417053003171599923448917437631173808857036496722846832698294956313325642510695011377520044773294094902834066714119957564701569603200653850137966570307529046831009867391249183658298476475178102619689810070830620992359237868713958486994991732285971990444316607723251242279352632716334025237969687523008250207852929317115158362189859013922410141064474773421610239737617400269053674505644610184636028330118173057707143207533266660291473788401850918374555694971672617187586805039226800034854477821323293558676975987230529379527506204829524434235050703069936512113934866094882603733555143377016289249826202943392891528751131101325899150726414496459389615908605358075078115523391609819748070646525694605402052303502694150489730265716178458835473620999104822251197821233513059226914797358234324243792460067519287804561699752399557198101399282040140076252330240643682543164919318592648783188020669231132082886381445086019728162415047301556386969690405661583923447774237146922810152046022572465735210084964839381940065361290333426600292688269040854374262460726165330407968544803384639015916781759693731242172371228384730419970630051154908127463023980826728858372650176549494306565880861711482010802420359200388386202985510632973965304632170341351964115574395011161615385161849153967046006031819996426693401978648204776698513220112924313710801616992719943334517875900826673637981084028346981145333700806748015438554543853531958293720535560699786833887856680141082457284644072628068095474346708314743653487443292125811848072896264842437677618979765372208795462291558492347920628835009183080340871930951862171617376895095993296722652203538535260685302436406819011252508532065548833615743715603017894251597677771687688502049054107813975154340575084368836555925538111056841199052843492837022425528001417294538669415704868862541038757900669823268080231252942473945927039208184936126972403878682016403090426462835637980605431983581314642880714197545598983568333073144575837830269096496529126489991563054208861206806807763393555693777397851549930765437716660097458696374891696182689164878991661712669049570797140145938555604578024988261694599070777017906553748804157512063762013075538748051434026032293067026828815811270517110606764562475392740639072440819992191030899142890490342830897774600262088381401552309054839187006594944160851454572839082812718087828312683286455778814273978516465316760481367048462751211796800759744182183769499119083696916742660161452120200931623719142039987521261276858414475826206345912467506399560111463799805702729923433481237487137046522024594948726790687778006616044268487091614659382749036476706410070247349802797266828855862260858310394109865995142093096540821636186311117465519947694679788084143160360833040802805272303801711031014786586604306769670114085182256202709021434342888735873453776768272377082521673607627983393561895246762853662512126088939807158461325834200052735096634198076424913700886438226110928887851407771286752839247427107371835595311569643167080837311699721350164230324452732407367599207503347744674757481116376933154494205987808409829787550312094913399825941564958445534606921302147933104156432877516229276171173067444784473927020990357294177313104662094583555210358472138754821507892327721669630974353713871333012444132690520835881574467523592490246723605023079768695367412449486778752967684162385334694893417553966274393622889865732527281153518640928788304937826796759807590101020991721439699441076442297620539978930336674777196359382763002572901196842506113089629941968053619211179877841386394237176985711286487827211435130931919662031304183991613547783852989358141303565909375253075828698000687156556804273472053298727493072338401564225153407615124809207831807313914778876074410723565673047496312488855736688947322319611688719820407985491344011439879853007102450464250385826120884776342929319762697914587279466778008221836582552199164019786056910933859698722529349934358721254280861304440968760506683681748780274904749586019599444334537913402260022053139317598384010370109927936887240017453430215294824946382800625435602929476654136199036145280283312333749882538183258054991759580614073204234978311743000250677758674392316268886505598693242001495355703395874851382468071562389551024049191361641293687182148405335953223089719872859792575601774936401245648820445281579706857850689373557532389869929156029003748201959765757784979050715981482495175031238261094871985832441136906859373371085217950641459212184000369315462932090096387399696930794837409068473998151002688613991672984845219132323500175097879604991245878153711570503877000758117352855021673611239265584858251521761313389072399349126142414295507183434095190635336953002738290108294441319988878035078853679210058114771170297836866435931187852363140687619588005143179151685728025974856668052886755930139118248393626655065431276566822066953285695493781265769558637071006328234697006016405159736928472962279124533245563987399010429839552863477456652803235483581410390920511555947849417544353436921456817798960261061853479022257177639059554214576759598662135756857352003676057501703392707535600391150827872834579722179526787675389992640063823099784049714368355762272917491097216575821056621351799344311671751751131681839425583568962463950368644874975035208810081089688509882589998794250002025704069263337701075279983248311817979962197311027475077342149865376423346400047463425155576287314989470853779113212539109230580139760737507496398747921280670601143537666687144695463441212251975385988062686774098524206219323076695451184959138059712482496022329943235698321297060363487320356571545115408490763737761546391336584211455234643977153719573950628303816022681663310180312978889563093434249194191821897232965139823337769780024416966244531270390206387347689898683645572693877874283802627970514777643793314635563585978264548733697690419651850467080691332271072713676976032867974617100340156275967286609341642874599726109294283223054638069795243009181348920890702034423193257027558411800426144170563293952708438199927317868091629149644638439096823497088608403465240787850852210093614952510541740620991686882787865660011603683886353066051588028308561687196573484358485197898810593003458739110846168335832068700880883046323815251795694965507449854835694013573022771695977848326964405287092029858193234901543370284131274887248780198113418004391271743185948946158692787754778913702446984190511631257589596546216517454298490624537936186285475528667695285925215225886750079717960823244190258096791609227600830963267537232517711401841092409536488306964667646650562901831996459554571822199849279882729986210309916951427226154265642242670996128130341384758081550821200715197123656509052264728624133295952725854507738121872278803889474125338356228282057052989299206362228348750462708029745481758245580487702031719814468947709848201278413316669352091115422466090317155502037504925232638158768167541394933325248915504855735649829259774326071916950740111924648761476333888588064797851594753220595173403310229248358715760781161294300561484331474322208579372577100931706307122239006183204597386714102596336512902644477114124143462732013346211812275093888654747882756479315906973551243144707779178222186667505595255410082109554914776991067401019003893730906307525229993848463929688805520217434255691156352815548451756130806221224043203021691232718369409764918673155207606556287120701856633401329477982853428061634588732513304860262606767048415840740229606559499090901953768327585359633069375026271368775257141522574020998522190752547914772301307963142611707352179534703861879191840301569263666820526744710259525062080242465406898901561171763270648047739545766651504909422792171828846632619563530806970437279829502237909863001342803779789629264971929885420191134968139681695615816982737584627625427606149060981025327005879445782555275496553920772915686388655534638199639995562177715676422950705782396055536893136158753406678375806027171762762914769207869544468767188993321093110723473630649070019584099398574125201493861427494520187719165047926320182627484614362797575071307495987818572079782359526198348440425857764534662586562068963426132557320235590771431722869270810903472691151547698266578454181470040049418152841020901579882227597406511283307389885415165106042345180501424187506629907994610161221818256394578164983978125801691916288364603426347283903596589846488862263208366677829576042241561627810918304149571520688658805250563089174284411296091824643964484068420747135311106802315192158100543926008650671742753623683668115681238278426317754029413772651207874236065078715052751824836812577502328793494525155464484798237148010198954065621743551297799375802704869591756698776824935237943457203062158134202232751663335306556552800629161011232769844226385683621902519380692193226429750742570405872868028030491910861653036470118156871909254333835401845538139833474496952764015636728325926572620613984989014599089349947955532367630168692331267874070660299441994176744836818268627474778809611549064350578974874602107997440095679922250866174989983726075667255244896456959950612176810351141905047494570678943037174141431132819705708341944121262824870049627282144862174542146784192576076112612513633136045826444277036127711265506622324568406428235687021283107681708029889397399915680601717178196134252044621904200808437259932839011943562983621681729002443285009919657792508858324892217710137781186773561563779478177710245487086564842612654570781346638571200138883453822328858742710677549773576313493754324518850056432033800667606441182727313986396458938985174463680887116337170295379318771914604716004600695823117121957117996959980210137827581041504585215010818957910410712646965386940974027527131733676316315009900910158504659780354397096668445158461449578135410781934707602502811270481392927493150079238242179480867995684025119223818618726184963587979750526758915086267504576234738606538987313306693162878041697044307342029940468304584592368064271035691533931511091991235143233633937896585131201516463133056672665893575418109823934172920520600549588112769984490331856653501837971035622159025560995933576247531829011722437625913364730524855833037266082796331717027671802691665416111221033529291256904839014647621023591119839995554352214978255163655997514348580808156644952385352048742971109966701821148593692039963666073467883627515440897576243319180211728846721959747204369227574244706930015951493146876094965511261951635134785258873858924731478718989190579516843342184262068001040811186018646680640458022076274542941028840126414355757107298022123133268195118105408409456829045990153168280976098801728277519266790196066593273779596492511528804061800586266187733331016270170627244737313790565980266669544783988997326096125787436013978120571642173136176481805789839341952151662892267616865171902985063085573019712841977501703399569889671485969205481124981153329514343607422902491018659480789812829919678088939782715792811499118938729710594146103296996860637289786575865792403166344534693377784827905581905338144515897152853224872274038553927743534790582158976118198566502431587457640109197238463741316389896686711787905808853880857919923878987756850788026669212229539065295878576189784139070330353610961939213372976808824849586752019705781085808990946407743516601161002456466548370076975014463480811013192323876889254747526932413771007879959270455321932310199644227272911675219288104599541034421310809184108900021020934348778941169031300017435936643475561698437024608862552396194060889954849626341914244849195746818789225742268041787541889595780917406497938375958662035242087005260897053497706338275748559571449534664151833656439185389459199565499901309135954282598923545102502742204542909975038681711826444303770368675490415263993175807298884490722752882108729316585997204857798848398696984711368955509975934186940545432208455112900615784636795261062096429655689169320926589033674346735275038384084226291778032852480442535350178380649942270868418560248839331610222239032008759002090637698511407903265390909807291506693317087559199445114479023206069989613551559958729754550366623628380141894668337966463666233513444985072700939694525263870663050593596131408891702273463473202887437404730977123511064649484373927664846255460961280944066104347003070366321106829394146979456739629090873900248343574488736420105685912127830195362784190672039211302200712736790944830059040714274012864268967012598137535476564304734738739642918940821174621073740258584099045210492564011909621593644950410687522035284209258402962389725879508398619390469144710364777465201263182872664161484517037411669090353278023790416603142389978258419747175083676053274579685712487067140067032585608015056472972099402299102137706144794443004561401075261021149413408082535648840386250256536880360381553056769622494797035989704660500653296939196911521882824142075446957086594452268989931850713832706886874602985938627219452005557172105238586387752180812621329833793009983371054603525639714117823791302206399521725068182756788375324076286223388529856933638916437748046478553273475956449122461995329202601377408560105348398544948330502133386614637890194951690883065427212629380400765312580387019815535602879593931833775940110637253705357745175168971162332381621349385493397313137576238889254446406550745059389854894579389506460969486347651490921598941577380386726249726987333043852734517563713380236565844504296649034539608493640285854208698562458350591490244552501448187043837994895947778854055348952878789232850142147103944141376870820266563449249947396940395591865752691028060235278799918003016816678467831713472788440032357661475076405093738035391440050465277480885829807187371818744499255900597099649233784224642269664129995045530910238512078803037604178215921102524858195255489263182623950892935250507288997227495437012750804332165437312123238081642487398869005017354983956295694488832800099283620371050942187352621398854334510372926354402759340863512498882642156617226528899465152967237567326444310930573466463494626205922839776333828838973209398119325101186518011878398163128311533537757872914895328221250020479104007322090063364429657526507889923391601352189837161881603249380464715937480073255148280786009991897972606032490734678770403477116563675102045803758199571845949479397053097329357288148648355204817148869323399890618932338513814101269899922277920784093926352482348045427216694114866177951144214491410899850340346824439595082527315107841603871008795786643915194433839937330760318248367369419269191109776691238696952958331936529945867596182908662281957804612948801467229005690131203815949897108258142104351705490217744065150328989065558130449909419377433003803538053332325992962679464917403793368500617771212009929489943847547138554399183223036490544473367798298639310668430458501370869764936483323553029617189583450734039336124821001417453855253376357884920455529606717142755515323780956508249602397993785691768498440413360639928528877423640897949494809678660750912511614656817505882633160138942326612356727307597132588793274998327496006164281915330186477316684672394997577943801713599989909849963174243187894388672145248788332331218816523433487158573090678980739464030667431069521546132216270495731988297999472182520805953893015060197731408074777031275235426008661510518148921493300997899349875534938646862366405756925535362345298772198010339747807253348243143806610756690786609979753248609040950203741483895922111158084196875036337038302803254122891126245940911415429262423731828711488649309633311827430504878855665421898064554948075540365479844329579578224809032634046135768783488934624656541309569523305366851747700297716557991548071983827768493454750806545282883246187365058501867181020535353800413961294480292642486591718548336351893300031239121959110169286287396335342632217385621659421051564364644876139417662105816836561019943718206748746023405033970953403244429804431891901262394028758541806343930647030202745107701180653436445850479451464700881568073994539570990490037879615694146197477107864452132973353901834964840656919291008575837852068164260869815516747082419220347942205162105863186461112769381147060658574369393698090763912954409823607673347003550685553209911621287267269543165546953696030401213520948186543486465600253929251785472755245690990367320665404507854794410775128301393854403215114666612223778593236908896445996803208425836173995176970706438963538691979528382828577093866316781821032562047713370931539834794396443632690753564842580429682434381542287239441864196866262077337169377079048593027230232940201914383083885505381094878774772067962251871745699890483164102288089144058475620194115847141221562459567153274804380458768783828721468107747231514768676657405001829807804986078626340905756672385746166301175469347496097213838665856910140090951851118137194719307095085550525245753539883035479525394821126377703783591272318646975620965881145085894888626329342251229986593417768935736338461810061672533711935091228979909725967058037777142657841793845543907708834786439804857797721126815326061294784549728980704947094702237198822527208384073171064443246200753543135858977322623254502071709377061760441336974660879058038385865802618024843790124293377918774693195233578737986785754089496209881820384677670994836953279824876154245901774172254027600504002037006128052812612590965563601112009091748176902558374392224688444836969307942514416667714514361172493184000473713124713274890705161106269211198262914772708351517826102120070511827719980131542116788752212188167932241113635552679591323819526954431534559044111966152394637610819299068692628882918755814509304104946225990146687075725233975699645521146982665589185798193688016658661783947685879739736531989891310142890618936311269536768041376137769681634186900674872799812142734599645398929169451115585163002940783135970200584869439851019042068128438899701680140511494485272972428136005013988916627490783838480060003049666203301015463329216816284054351042665558679302494922956963756205326329425967510549731202366125620153089715368201620787722839536889378413448381274914890082740191136953491117627316797937701272143965642800177442697823094827573027771181188071352989632632278015689911649725801238907821588589184850760314798667246881127521451383760408300225484425293625213810302075654257529989833006142983014027593934312679705770680195381349377711571023483557858406852501565530650713316000059352554944187449407219783396679308268531748849450660802449350906976159513475247242925318350734776814341485901238047519177742878643201075148864111732686395201752420137883731602127156412909231608274264372529229263017638377737353588569902982961164487664751449237541996087112022704481726795862823884311253543188677541693227101233665965408842987568433784874753399136170918102889561128879181530188122079589219546002594730280601348201057599399657283537984338368202361464205221191442831281382529130187940110257356163684966959822964947072631061328760043468237664128633449551206608890365241461945149058178815381962005249178030487543380931620930574042374201675463079221305554881792653698116605489291845529200838112508448339021597335742549873891310869744228833966435156886702687806720273427654879090589190679504893874036015066292525770522783264152751396697512400660514951727527584387592805932220983350442697359182859687676133710744243440230188824384387061781301632698882607690617261754397344547270905155841219544562397191377846981963948423458698174293270585155699441014950557836413554957006299399877479631405673571854556044157746257744924086966358249079433637271710049230576423427333678302713536176072262087071420532767024708876672902876797983284980859901185961398423806283539069146371762973205912176858708050589591117917915340477059000346019992902631982727444633374041883849373201039687033730206282394825699660344428156700528451030683716906802165672619154949324391334356500328552850029285081676402912472278265857692115937460517635881403900031609009448753853296178720984266135613385874383184018256166235010053416027302402670085149326297441125878176647217460527952650199097680281323753873138909492621113002233618425015481569645834275838225578211242188452988880943738894593127736045995980185278489141386289627877725645442572426123010119207879807273851665654017584387199634596281788914606518116887952796818382322780976738306589792491052200903254896685928590656726654297317329187087064128045747078786157480773287102195988880424757361330516253356153603457782689999628186856384516425228427264203075052116159419596411924651332029725946859817537191323627155018654925480699266614416583178522856257074818192320980340028264050843518028921756893373136473875311097007339897198298549062200022009924292216769949650960027997152210244668132755900021728962524041751520224008048934882117898523722456591510863713044704345411316260078749614406185827387293502769192091690337007867831835324097835574389647766551161330375822602119882000151560238219428819000843693674194741997538460720715534505918153440826055915263223551544039939377581498217926236256626205494764868745598587899276696497562483844421762366156099237694826954215499809773634908989222680544545941591129802613937162524268488078952043430902885316460545282132659483758378794955927648498021431300164084721995489970767322055336846850839192536351375301407429344051748889522511958681574792476391685312819519231767640937968617468751194495999729907345992440705771233731234080253299785821370739397411082347841915261102697015298799761733386760981044443080978692380587347576486908333729242802050252837820432943398262910076509108897981608209225232365113868278810826723394584957228058550926257893175477276193809851583643489359053239413556313374630252740542261343219657278386889271749492825004745652867322118893958511262020242207059859194697413344700482205642565248753067240549732388569429289498553579117759747210136621113113767249456713881045731197227249620712744042556452253631516454323697412718494436921571521736053677878823305719415933317772376561807181481622637877295515177633180081023100935702201594925273435888776768348011493212609489819804894006668736880673649609984990795353437251259972847790568148539811409438001509610027016989443410743114474509567958860227063078388930911490383365184145635106312532787798083835737900495501739048653545958416105251500141891689468728656848089009215474991507320266088513626538742499485009600567840978907487380734306673402082823513456655663088084842318455355508690619934112939127874504230229477593607873449162116375805209956521641110825586033208113081188078764414376703879930223436654367249754598309494427033667421120792927978748554443827181251446193075844447689373218344255486808584456203553301311635319727092907882301484954794868423024102986803785226637313074013051615669454233665595523987243223936146890317715183144564797905346306411199709552815967793692559023120095234772916437368444420853950382578668106234014093358352172942384725312821491317220635284864129988977985220473878843491866694273648201603943117469389269788083946514965769354398727976530813537689844956092916164578259234482883531836610996203065023000511406847260608359414624345689035767311205463240123557447775310945531140527748080749128456488032747697927778804022947901830151902930524461358736247640644585700125017059791416567260423890854371269850463517029598425420601395979402872561522700687908617764925991170260195529046019735590001413342680733635527441044252139517181263526919858033077909670869980594037530648464437109365746337500022804523560231721280232002758447549743119567295115092372369840215670035578843341353395275339127754859125926201201958634757680473341313579172493578923390009485820417048175461071298817657531781466892300122139919254423383966725124103790442195165755843421368922259320578873803828977580046095664142676776726773664658538135866673143230197091182557731154053339438336799994113439726354113132249708210050530119793253371335914859735123966221123469854552431866734540628591498033870882272559463926328837633366829884915492797784734417799294046523687202630849535317731915894281012714238104577393727031674527800967145112523651694225117497804329691296151558464811022170474275007685459305866499428006677681293692365246463662369526296459888244835010976288728447553139992343905782083967221979356751081258914443696825325209622103589134864219303026145282121490429751621514639735070684301141101766414719052229985183717722924204438221460685142543687432898360053818882597781488331738433713485057480499314254711967079660598098471058671051572617451043295789479181244022710661710740181901252629775729233025889097529980521094079741194738960426295779956794207245319459243262120136407761667046977765341419867043890950494104405703670746672614253991924662363935259157832744908430263663801689920239428339728982635976487821484984273043828005198442567316664148896121461768443781850913864406972278089256802261153086210247151132689545157097206399536385508766700914620178014437225644725279519982657229852121962632821172187047394075551698889231224213622764523126794524809964353053054522558059346710730639346886768459154582190290730682540176437612448423627499109058871217638718830819008147576366887307501663428608902338095823230987574328123392661904944495742684389990169432127326462508726853201502331195078983569972648676251439511556130483193252157502363839566162065919070678354656122677735792368017692140704632367955349354118095839344036110972245068086118602020056968699667417065180939823957312013906039683341516820845988962169628285147720755248005865695578722898395876901247382280948197484914406923307061831385555110077986117811088993170213850981502741454039622624531209411672803615473952289537965038103970791771934471314532350633164728150172356715111420576262526456598963861584150206813057139691285838621667973914571168859365146562032907516578350789185168490598255271598638496484701251258669681662374942896388598213670754054742063380859799159393089273517714275822625878720121591383769013253234184559897058635750404141136192222837239832947973138171407284292009475813044238591617067323277574873349371256855443106780919330232709397680348276333134943083176975409005121390299059953143367209326718657836683950263491170076022803046949532502094000404848355084346076664913403793215619509442711516262013561993587002018965026078932058885141988093564912032133261855138250998248670928991471007322308274677118508969290060638878516824408499524246930518328840180882578759004932653439917366813089593314439673311691194405560577917777592100125483427563500184289613027371275015603811151277178568440722480790299756757119250725898764337260663582675617196229880133423780686637754177300521288359876290874272208345927166224994646463746463284493514157410835032402992256377888280188346471462678969740012980617765059518271494004353521104568184352226083830909974504903313864452883840053694195900900197286991576184448397804962824771952110736230062755480046734799550035973258906921769547305881858787230157142882092716435076936239891313211587807462173560425306542829066456637797641335726514942291712479615975828923729344339183531097787483645080950436020551893022152891381931344716521928642333388492186579813677534849192048861621197874727848498972368669805215167086638988349141511255520607178711926591809986289692328051016811567037165030722061201301308660055592731696615264749362515917244120681152256255557458484678434351790774356711354278169899760958604859590690959571548131120608024386437607925783772276003947294943799290658881530564007650696721275246685460692282653402131215298978687688986986981196806589693869844801509765942835407603746904814406887029810733156274439344922257048067170437761879851665225999744407389870677884042558496973039364251105293598290447434241821751537411627059393964292223012926138441817775311860763316407722873185355413662915391900133936455075496112638807977693166827394367757041808757876338398807542851893739591307910735163947292336849597730695978232916927143704589993716202658619160453729829533999689229230541707708155058625325537427797944722989115336132837254430751202695787231409458469247421306500898573045505285551269420669393239109141833582323385273873427924031381669933085822360213394334817547207614089562324870075786524434237084604814370005649813286160975032761439943188461560182273386909179206302404551078168203339881023821534338324442782760100872428401249017292077291781395266690862871793317494371891621591547390538744254066014131609080488546390545437143326112134013563753552165193391965353631021041968698640165740711066580162138942797711880046472851385914525038659763164052163570103736440803979083926555213762444245644608016019433901965713613777316291802516958278329796613029945421695389906825550526294306761475372848150995117931704780364047305809253048577621398986354506738050691880316384241695339049877830721692331628030873390464386790789575552324774643455349414944861684846589974823595858793646273036117735140002904893962492727939150580569004753759150540065340579644199492943766118986798657966041012812744403592707657435454585258830566957458340211352347979510136665583281783651348148952683821661748408217307582114304797840563781638977470491585352854301554285521796110369945393033889894858787347559971227300837306840998651440001552609725819973044065017050489660406971997624795939504266353253287288399069391951537902954173736799734608378800474090108224903516933848887198993242709989917999805698380255917014727484035362487420942569174949372764606732772602633605947093630101898827856389707416154601507589010081666143840396429309631382192283518007345516726980039472717270108392653954070410842537029726252000255319025099058416524193459835453996276578710799783103429191201040152144553640829310359660195031681275745252936103746273864481614420224981635022185752023920754723611373116419805462285204490396856713191674198660568444410616874358520022548230682765969263351730784081163487852506303058737409805794639836181264707126860980078921178419407443503841391781802226417665785273226888420109674728107467982681137576415100125879114998692689119552186161108664418436137571717880482604642404925324912907408261720898810899340411235913193894819607722372566271935423652675675889224822733138960336759943319715183733357854409005510595792246284487617369034639893603627158340139177163728897296768789457295003749331701979432308250194643973532165930639793263159547097872595284398252622477460994698988118527447261640329999483551731622128092876156662931884282980138470451781589974575611332218686420942519998020645527142915268078863920724646070288599988757336709315332331324294015021007688564667479513953720638209491023153700630587274660051167757027144828564945569363197724728515152009549407338108794670622110872903836575682933488733556461785037388193762582167995323341997589091475215100601372936475532378913090387289488815349858852631269251121628605804028816494882441279044469168776556910617232535396271907577855966353582797699229978580016833535159618895591793136213687825620263893380925382507595256159608424550361307340911744621758212936908062731517007182365281166560742115127539845440079461287263275973784630398046922169400986681881447585444996565205171875993976526898498774255491739525121586946188295150087216487773366366539644238122640895829729719305102975729936445020542971375244712515184818129293598993971395332894895922774536475286994878442606590566381126704129916511287959568325690562093600249413116321778398875180945959555266333720719633458279798352638478037400474188129072982404743067462512625073124888949919610485376786683738160224593955754340365756829405645378697725501071352981855375667306885040646472104703666628331231260212074684438968063837071867000806327869100089485981881637796277199367641393986897371964949450584701515015388417229230651256030667494948534187751161904719647507351091257375713079507993866631091468653010350658394823992473657056476519517386846959221381622451939386158801402681723395975974363153544657664969864119409876904804200948027720608075307615538782221801969961280536238071286489653103559957257246843088511103264609340796093160385163050872868374035629931471112326349655419949728566602726350920185283068149205416698253928848281159031117698046077835272071293330857036750199212225923624516882394334271617254132781954563072173778875355999772362167682664828381974403022651345031706931411524130284804224554905233278232370676255213034323385455887191018590933651662015899922583485742535755190460684856097160184571197697013431968303300186933216180544702496047824060475093511769154624098136690084147997196989401910973975649191694864682007211523691438248543690512173130096279336030593732542976863944370515447597405875622141226036691609684563967062370065339530843771053506073909268048409720808261164749861396306661703162458907457159514029539068820497654673393475757636861276881025440180370740725660783255105809263642364907120534503055750532764276183145397584382382409544808173072652679047981895842869484156476891832035074603682151192566886351972579593300144855794485136317898651513778895244351847326526923550853255168836306886138620333099758174631808477180651389561618789842626393775690190823687618750217399307347225596811721092253382594354497781352808729424025902476783606820609148342754953916434284958704567033826035876831515278704377074110979461829758607958075833845389978849481224432736358132784102901263228561647604304213830404932253099635795826706948928937191861029363646702772809445454200249643988406700507674312963435070555956334968280265169696523302925824099510072774998601770127043447388688555554884248714775342136876799386012979578466545185743875900955600746656732126230901228206990388542216112060541858534613075410092064669155455298658689422545979845743995401290035486901316423737811903959736244139346643528903075465875034130953968431706099896539038557965251119703001118293380538972522584705221010161092213545651490707785508812119396014424049548860194378105866402098660548228081463128596135162042726853029337834081300858886635279286966977754183055836609815815118401759890115885236375356724282202840141727766920322758150443935557058554909521383927595186638558966759557416440622499931412248890877041630340641752491965083451511146722738241148672225154530665823089611146605695756749779272730646427594822209148595463140424186275030915345661743825853735795479548377782484595292859396692130996967903199095261139838741440793600777450273424932104372717155639342496847658080629526213480581475656921529719262751519670944901800452748099138989442669724877915420297683379593372752888119486726952042967001140558172669436032110974574008429372379727503750106342339015656418138753391071980558075526964922566996903819454009550615978505943838771709397347258938587812354371561452443048334242903032027166472730979196351349460753784170478961061860495894159893532240688395703635964507070456867096873547543759840575631237531191677583960872513426879721421630021224668512421789067990119113438399970843569761593785985630767069928036477304093031217008644714021406708913276711485861267405682111589260179631108619994275374923889431877443723455518178014497136505111452658803654414371820582840196764755381472867893635559483268225065993513871680219050984080995985489934882693579208892889946880582430031459157179822076555130120655266950207690909450284942646988769525661852057164636155682890477717052159086047988314918182535391703487235264014808244670620709720571275595343012811292427258188612247383475560700358716423104805771611233038046008933561734826608556288674301145132783813196347984592310059174004510857808568103819245285950738488381626562279840429272906210233306134677831985441099888522065391987645087432991019523848204855093764442268231738869570425142819836047875613857381457977937206829022756996149604056294870165535681587953146757197345616475537541924911951802371927888683233562177698091655897640904015862423086029805063383463815058919707116181276978294782833014096743614809037177013948844793213493963295308269009604094109043578138268616052230401469948227284615966498095426314108214966471565629935028034445979140607263718871399892790958533826665443718618567556789594960393862015980376028927308042432681843917519538549491074659565793972239005610375738343818484749026712042073112551241550887718517128924163529175216565035595865450544641781446600510186735583646739925408704909929804316197154579098377381962807834876919645614826807823915318354925307059815173435642600449777742327600593021422730326417037157384078998642183701454711279110964546081987747922302185521022551854225436854914130114871638919739012111728578813328894607702485287945568985234034108790976311245318489441882274300479008371193056427244081563718350351217493438719767709467532745511893587221739786777135902529897281521166829896444963313917838434916296696116461534378133389621908577357497729233837749515251386691021318453015067741553398284625246333377646656603906009228818464023005125822222108915860417527834095397145838521786913799188107077552915515824818344003565046116081744268226597611642456693782640600064821770923584236330322861560690211787830347254621892482488051766305799543501886615335856555504213085758169886951073037997146354793166966691759495933067377195152723993910380747860774291587284225192531134784576965218418594827110745777254316782561205970238867204989809583060548501412802708181162756703471630315032198023803569222206925084392613344269531527541175490763815794487409649842371538397202943204828111812731483248339472036294245887433072430434958191793625015034901134901055585423162008569504649819168122933328086096949085531285265469795886518521179577079465663368029082574813310665165916813506108916185801677259298248723975108841174798391949115048374560961515444721110721263929869129833548683673589047696231512556570484555473623300722470078986933033619945125646611432637942798768315124651186341286938046863374046448639226208438114104078758974277047758461856714147636397613126157583307881081122504002689262965529584834836010522247221993888723628698835023893376902566669580428852524653295637088252859096256678159947853666461228902753918662971223269952094326071399151172332150014394625746423963716824035342161696403407264954023276971260546970210445638459358395993180526260683019161634799047570464707823108264926325042298987874205075562438752914471047229152604928740437949459670755273391848653868438785771103441895272067905128241519399709753763826196365039673872428280940644865957542011431104942488586559647376142609108271540725880175470717412349334278942965542195964830266748560226955473470135475325923576630415317745443270554006150437951894099786386312607010331268981304078988509637168043833951486897003963871437144359470949384488949719922103312842256323006871236093254884819127331875069453111047071287051592686365130497249866720319488151112246906094712949054642233859944110861926445809363107457645900845178555428489830073071420021786296092372329826063820345377099707607254302458364454614871994650032279388079705352087143019336465852774467524820781843893408792794771365076363354481785512043584025990116760908588638934823066188608591002278060556026360030429373598026456500026372658951145882104653314905986935011030021488059210117029151706268461217119623894548678637990629274397127305437012513040522745543658354273843075122823965501477878460813156955493479345295434797144529962508307159729090037338497646203527914232829793471624614969607924617854339227584566004163640967817303013447869877515998816109548264214754756782406532191748627364028170544604608705536542487619697290449908888148098967242514145210582864668128541675244874212076902613345886511805321738592877109958646325949022515833853266821737112069381621555551267720590420765584089732200722440703893705343575425236217611619884910310287545515501665894934716541869001899801637491025378198454914581932136196879350073040157366817867260347762364616087667573919612713194226534761473432621804802368335290432113002688887107875541598195200644776965741455298660962676080894368802424726289473479660911844208046593665687049692916161968060247295437932508006358459386970848893765646454735483350347193575853383134173675832428069712815330090631914901177810404835873274038323888812974172727736212069998792752734965760931893647292928406268500280874478773847784233379006903688025741530455396459797817608780392825121867840683420097607938939834760347818113197438923437280978001921788824473921534053024792890252335052276537698844266281547201366379219378757466034158370700970033692323367768721183015514596024141628347077893367908270684502305760321857474804620392703603355714930825235634027087415214557570191880960848856951430945935367427840537137661892152725057017814823410401296212458866035302180442971987146973331048472368469472906298526311643519885123461992716388279778166872554352880661967210645652893729203106625520764873226657370485512095186836167849210491657220175159642863327849649087206681386925684527590905750131611307754820927555573144425141871745536021736281467543284741777130048780804998956274020590620297999783310472343692264098882008771637046466301098714398778794598338995693935896621550286528802302271746553651266667777751863055247977790868206037264967237359944236846811899291516163351840798226478683644797951729973339972456835965426075869957975575839288097239930582217872630757306391299670038241073509550291533031001417623078916992848832449380473302667888886607064315453978977829046469530077226895764861415788718894176056572891430348228083355860900733721664528214920301225663104939257901305889673798212143257224339680609564535490150206372177956369263485621102998972637837785058258680247951872022034599417485244444229662726444301971531136463571798306231257255366382582903786935969787734179585141295985302402467728072854632629876366620433427157188475951274182778033608023899123767204325039618948028434579389142439854807912677799724916379812109656913552011762848879174197654462546860638323498220284389119257340946517187055546917746416731564805531868445937059843466385454436460928684557312959556764825636637189705232653682022267710324671781278480021070605850612280998493807888354382535897634612038114169363311950479428412569279420121038553459555220887559920290873103182466208418274243504262328892039662878275769470412588624465403831922123060896498684947575732272850656119036582482879062090771045513788617524571445474044738663126757041882065842812045060366745956253863439169770734009658726690147264175839039213403666318218805148618745255699435243806659123004867957296777658869591456729082570595692510566186142081158687172068415784515236043248264714680139030365553693771637149071560465155987207772572809768115571538606625628174812431417652080156498388680477403039042613294178569461311534765232504125101633193913099300033015209239295392810779561598962128516827026638521938622181739971721334773739496031516135725420144092246382915755793303947221094736770787463391133673804626506689756564163486980797370164239938776639748438389194725348788057956535187074329371044890304374666847647705646364628942086302488739766489909242326052140931095647145795708227391444076159610992637294671079802859288517099772139915271302567426978875295196801925937722868807423078241921682616206259779876915330125997656275872274564182754692871012723511627166218720342970696022155866971392782947548530855113116198668341153750888199784844003609772122713327485597447502240794970508582355804299400892804597594692575184470973260761373013465601282883209178366206541269052054342043905845596186728282909532433099971230294042821792393511391002223748928709672527406187282218418182078558564173159651705987824940310223145986393090409529687073810340647909793452850623168181033836153839861329519015085414941710202947778338703980496185745419982437468542104692601792489678642470075920670714391580636289384520282117360852590052031346141359560874011490574089254716382208592429797750821615506757543706357056749946228322600674143305366913050147154350153959290043652113579193729694585149461721736904731479598625920285204489272515457495155106126678511719031959971830001729679113340189041793518292768730231961004706084444125154153740136973554382806728597119215162507414403638532479695508100971264920411422968301479131409769139843606526881203479655965424061282430633280356195542942825509109153001039959469591311053979778686346225077832661968528514858336062728833844447372439522570229971277297579486104361262822234653026586834612281299371176313811568908303452374237391512777527762349983655242880077993272162296142958918917821400690412026484758394507466166976112505224640490682589275210706141340345177932119871694998640828784679612859294819053472476469361406942292836650305339461422015481416851386728723516403452152982544633599522219097487647921232975659021865641221337988624724126177425941562986300760116235145945447962875301337763196112775839154015010464119849257389908996726633118525984568254410812167968597838904274379634004593256561182390277105301121204778624706772544627371710499129761774157055170875906356593156945683981300947568442908347663817664729187808993248645779116108884015773013628375218020584874695747973862647218512280201915685850407537916831328620625434904135588861403933273545325255681650874432520939319484601441739645476084266926233820616246991089477765342348566853388266845192240207406973040106614663826732143283201967293206884737735334126467697416356790485897705589336527495003320189129870865008925979521299230211519929469977627918031275905057668605861581012982015351758198359164874892785773428576167699142965772794939346987128729645797174375225964500371863470572132020686508582742067719141968025493837741380366151657414676123379232970908122364889064358276318275815511651953933999089840109070397527729173952302889171114445184003103214749943482144191149417399692805472747550564811863891029136743621497792018946520982409180118659310896861958575135177477560857436609589307816176724342207073205573681280655385247254389343699812576999314660365796701080252853970462463792105271360385950099527031537811016579734632060555473985322690527913728258859545401121081958757820088218341283742559250535355170915802335822523525652937667117123983472660211602986890713171749329308903696838064020288913189867543969922730330891545594926083962844908934136609053207908534597525938851737027041876668916451702451197557380309064627091859839595648877522850046564597336787617991476747410217951965384212440231424322521322255106102639247840996263784264742366376630648461523900961514090750183902447865690410025572906491735454641890045354151257005093171773031081940493364096083062426987030583363377748924587410786835783073818705573918460669637402038034673462927936501456711598999705039498820255533595991218834600623897831894111333425687961586177469000454800313535183039869243617134273463936960968316169232056065014411613355013081049331388949811876804586980530915987492938396725371688818944117620690210796565836165072327731418720253139230609853178197813935040935852849884959809881007227437651316213487951558032084677292372890876445672039529760657730619895145629135802614601156680691879860543717095014860173728028878910553494025774475989722395296394925921844218864733584545472489462824507578668970142100753187288235154319968505244204858284396018015247048049273218812793657204602984062720601716901607257454386980523323969215496609948206088152071355012034150393989379680140189520014758320084402983535633252742672325564572236080901151621466377189655314986295244433739545670246865740564858238563407269896378394384857562597206473854944091321071364877748406610787867811760860651640480221032296160918380154656040840041088366764128346324162737048071372152478002171385795943141129959015385604264527664227798127622892534616863199196471958008472018762833136138029032678488365340855281420648397154967967535547928680743155618315065331640403250508264731537050547306857556653471663993047819250822345495505451578945523437948783725575013753683571321943316885389191670467288431852619678420243160763835369428149336265393127873320419186757199996231796643024152188492073619895413547116972565606278065984937454215143081604453234564776438641179408582913976200400425325553449412065793334492723095495033211515028696055976569828509860366524532348491671731908315746469717817834586047449004325249214114568315390190830606687374150096131696428330855363055480531207290350883536500392549627066377068386205338303187895865320865678699538875770215851658710826658248508722887543518913945632493523754793373450591570404735446425509694158973814888497080525361708375529798169262282288439825016039359594257489027087507026865085526181776671006311447590652629335699795462663111642378913800173419585635585987486010139391490181877481634158738474265011656539909145477697649939880171938406000210768038806001784374363090530920675694767384481509575275701255616934542189271853669536800913092586734963547968086383426628203022276212694144580683236099958190585456988409801018577105057740283622027061487934509828402744385728852198136347113309449785509176776136775503485688932355970630978037722146017448888357585931944527959411670225199396331056331354231362411228390130539351990206325840386565032334483986571717316245898686900448477966982396204028059508860198620649538398033786539233187112862924677355854745456854060576277725531735919142910710480877634794004757345875599884385028618873362024195874808590598149095218804338768842484645951436189950872241035943203110806598784209462008264763052125002545212571439465744015610826226028315182202215704267232930584168032622024169068177507373280092730094307737297665444745995611743619154114038803671508969268925364256574784785580908367947810521404544768556052913880902654016128729474579955622967410871082624912926661694635694851313871658096887958791212560576083050954229125987015840264592220579832807049140779408600192047357759313532635522102275471743938827219469030285531689330354047078202280878402048075195437829872580482312007842716111473110394842445413371539322487031686376377105819679955906583980300273313462837526183198824820117817834813626715118237130654119973239014012514780342993285451139470266403034180592906100579771403212258307539659454972150529145880900011383731919128996089565096254785242127944519936798062238071598867898306790849136470154658118594755227216580647172889384952172213026490906107923961237597404163731073689204290749774398586155464834974908671127793200857665205127934733180825839690684884850460091729568066885482755863659636726855717198659663494847721290459331903822694324205323115331066624356240407116760904263801620162066494317806199125195039922993347838762424156927590913176119537064598731980081961811972592047670765837659758458146441549640515082975938017028478096425136382925104056752160721589474273814632059214063611779721759655577497855903776039273383686798245646105451951194730883188772859542425130881175167364818885269280455160154580976836525208998093246399807981907283749559002193967557376117647010062485614392158343944007799010393523779896889207640393747186631784574560832934082553107780638529735603236451753824434599700833041203326096613836194929865085569744329344785882086629132319604848258453980275004373248128869731873043043748161664415067791064693650067727922832563811161342268355241175109854470001371747125481180522749496643421977681005991239889404215861933056291680477974580055539983464026071712014360576438386214555252884191344358904449496593459488265817559065949195783419345389804442248200896847947529721632999851051964125829805341820404479241393464333639167639033000647437211016029429784154151879660561554702803122726637496818286151332376272057941769285476223983788650134231485808608446497970037808160921935990060094876575124983461943331976033624856617517901012826015468125439879927770700194404826275970149847808275424923158235030295632324439666619530645549838298262436411072751051600968754490951860663978905089134581767043938632532540764756109351437791287517503055005497858025595114010399801082264157787323227576996282290962485116260983192437398996704851138029699843027270302661942652644913377857318745092624540687224604676668198602126971396167114152605347566760054876360302639613212619286098884003167090250494590472141775670366579384069836850953498498517392945117831000707451696983567218701673964916959914532643804369732993200160572123594132999442976225474913236087260149458589046220995042966498545678917847764136673149711365515751798737078789538321785594534167555201779042235924295367100245340404117303027317697527728033590918881567567955752257992293051674034488262108249301302496695971530373626088051082546907417114179580223321678907444131213931174132836327837254177160989185936919788227369204798279214027469554855290807896140002257529058420048908795404133037238439677999094564017908504904960054617094775876612349106619724330405837549488127012815471897655375701110192493015325148568175625028637964987133472869072265685718973432915326265546635939297305885153485603490135514545695838914755635150919648067487512573491401641487985050713900106171186066686027920561649762288955638890446467521542201233640518458617822861565676010440132799757947152080898009596306069265653323141674513687940550403822665916772084321693484894718947203731593359240385990226793419431139949949832486002298662782598335107622857285481031083480048607064428015875028861960291862194018755463459718978748629461713734723224313462013528634091747234064426214981374813021009143329117309755994132773935777664099959957872824002409796446898308102398348917123932340072530496813133671656925926164976245215562085100739453698036432711275002275317760637794229402820525499922712859116886738036541884789449465831119643210487856422593344068535607675414840976794862938534312680132586099146486891286902932713747236258423070759798738379650323842678701702340711633183384832841793362874074643108263997583655823589960668133050329413894522424658307679897345936411782294457699286294515761955887935595539004588613453788913728159994870677353517972695552513692729600256835410835527319286585780877732786403228333778629721673996930533835200358480531483284582237416517864084926073454796017780367230359775646816871516342794549016678843507262249934295103951443413858063638854899903501356701225763993190650252229110075843479988922214576337658003556337025371994126217474763266373749836778877366206511726358459421724145329943483908479879488918750693265912175354315292420299583052967820201731222224923439022202194746114304247464511901545524231066964142216313933214128047956126324308221981669303020362970901207837166567847612775333628846248405010760431563307471337812091638709034005597867172092781743738390981022260068727901679021397981858257185980471077603748747743928715734610648106544606773229602245494965948351176803160313881618575847218393721721529737746992135252971941026324293034146041145508703674671517187107432739525029558880878025344282261465827511213811641772873802010505611698785694572776454500967711428364806524481715678130230854464190089125484981882843530172881721343281137042719486140462500112576595870883408027455228271018982292523087323278065789073208369264647159599685221524484115107027470917346632481772575604757369964199757072474055082399566891003613190281390287628395374054063089849939623459077107910386779067624748276866883483422555160089221318821984169926232581943674419913347111215417366524400417836609127221191141436354338466238366962484209064113633122747732337273718844005307458343103671690318745054741796781612002072085184886113839545498783181742482244343368127140086306966175421940843997892137918025389082834247794458786485251831489228345016892612114106036680124493121841844281241686721194752351143119570070339551161130379186382462574257645887962244754919107655729688533088107937890573720870641871609754673547192676215438559798543031644361796895511075205415745531534311148015886228793638569163142806438636533092641863692451189252613777806020366898216220364413733076139315651306425337287822061031226964808745066769750573692190613001721976169212143247497604258045533226404224913333954978711224612014469902566556503034353062424676839946172981410876613798811220101478051910836956732430857869429619320978811250475024327559482885092661405839416989808576514326042694269326437230350901868401451396645434580272572897568200904240351945424067807776521528754105131104249662619592242883205621951803770879914548573488091082582237011362978541140893616248511825334026260421301710523309737539417272463111409187082749779813371708273082580845923255107723389864146636205329803312810848150500390198289927609159870300449998293767860429571158250505870170680551214559069320419924830760411721559739978572123854071082099697325805531641506728940741617282323168896964808187102726106451203693077031231588178245445399135929171136673456694915827213469200378214466427841483527786689458316816908795276200481149731347839261769839933903365935385813833614750898296159933663601856645686753417903066816233446158992464374488592771578796493075254022179038849579925798521433306561442161977086841654377983815643554226567036599127730890644321386755323692144208672294670682990307451636757377648443560463414839166445451336713990356661887010239771386959195530894040560302001665232722060336261087776312815268663839690444800864458394884550098033060985752113649072548734230404912772898816381310013331349846445920669208366500214020195904913061615044567128926966657544858138993952125199965371559996971977885197886067051301189829087076697797940056028957661217653567921025380845740722662419355806630826663584822352875126432811128070077961206065865729756043456005951327707321124915618356001867586247285064816334167377843846289148937314518010309397421613128624849799588825076396154337785327553167461132892493074432054807040869088243393716898470976791867599174657072461100307587248889351645766735848442465773569694910097351866645471130840297893491720908136731926942162800473021863032368236272111251036646896932891186456745117109126601213869065558590920749919216066332934454411429221847066864433058942195604658903878613783238225735143256162178755875954705735706919718249566906215879055993125470467190738147348368684914558618248306802551463364344386059877680701181601445991627732877075850719565992848446954316245086415162817589183239561649003741757127176008657706830703343328633618187121178110343190501269942398142323667832431217434499374839179423989794035223019651576029585283057199186367246820233408512875506378250552112887912716854612325277863010214065642805928051794524231424937297344401846623796783395274643885097748091946900710602615299474911191823442384902985040606419409647868183666525250964623590493666098883509998878099908551108081576340917799459875620560231928230440687623310554392174445064958944922643679591305724727394536494361878803796463879236235659104365255388216479655315479358106250631382357986601758200081912765643308102936414552726389353942905166721573915757675589841037277589773208045881968237908827628372514617142578342051584665884386593465635905754209775547293411381898237666782390014292086347323527090060722783578277006014279958041500934074428404050241023510220164595798016128820453001209435624247259892377959197931177199059920457638895528926583552486708013308161006679443463891639407161742768150471424578195806084180597014507146030446080096373533976136060007357260210777160064082405901689467480762460143583488768596300040628999261286777825177116187153442293474211577353338173891975296062021078824054031466037476966901066122224680962403562876029537450624233383681091247566721849470962763891319109789102393063420729266679356686506427733077375793712878807253075769356826929618781007993508527629450457471315041246540584090278133741299578796591549163189300211657259996069937292955253592519506267168069942697488471704552973518045815167291946247399226361941389052570208807502380168269558518299377452458656708795909775298052758252083975573653286859407534082575445608219739322351161966494326544376286584402138723346248527850833076178604353446985024694169867472621262912231747352179565505819141122930403511482558058392175695475231444603029204464620709100286250229584844123169962623257594337099794336457901867513083855506769056420596097960897940877933678007258619416639599885712476488882038432868399538385996002836854522857362484269060085892719498717469182026959989033434461910518551410360327682705996896179367566879577313268387092704216979472284830063754837807856420956443630163935918633070597790413447550053263007099613847400308834489580860141956562294730051629534152096671764556121774899494160157093543679151290975735830113470747894485601693460570489062997263766713007297892701650894968705839112415286684482888171911617989507684049554634115840568957468534677300082343319458992375625650726519753788914293945184632362892578936111267428408222138165982049709156843335443608456396671557859925106423461236572852636201077937573093553000115960386363771659905752827697339372748562125543538159365327615146653012068210520242659329454491119330500403253929396952700676481540702281699170298561125685518900719703682966720358922173167076549981997566026326697797868627492962495204675754541649327474504300903366253992811026059063238506738041442910294527104079634048659424798210489999006893736193839059354348434181597871294440276530989682925666368038622427452986309333305706964394174737475034483929730304962437462636066417257252137373488430708541013885296203346419440258892222938789450643180734158671627481053571521475654631676523038894507267882688326497985188509779131737699766538862904376291011503874192513689457256550651399558072661606513586016632244687867645372404658259311437892306679928669802280567579738280547219239385211497991190488142256028398495020618700688641446306457036821665301855612925538390303326386298203979521947882020935552822148873550072215470639391606756589516540881084731588596463444753831221842930266810095122596659320869702739842152569327179054498912630033179178329460042724499505344646124236633030638872329225858402353038148525934983084217989281950109292100327956080744624368148163614280313931316049684055053567600120110384760713583499405664552087003762763681665292039704484571905004586764063856244114436986787526134212326006571663459619055443830574544241078375061556052257921226683266913833273038666063237307335334962031709445355710897106071408623088181657857582441881711404340567003692076163058846273914156648553096720104275094995799249115676199207638158752506787804437230355458250645941251504332716903528305152579260038734817198829796662319560730351618609797870220210944090879346446784479608091301277341994546139537440872164656828425922900111558709415505128604324583865928623373699054906325143744858491937586227419796553696124607878198779888071574185223658205216656457459424181338418267064051053143922067399654972134433202769328918090202822563921548705532005283395081495023752173944311024643607399990925764537582081315494325786786388633737450515508649749077312682634459589828889355615022239424348711615399895194303128748569740457390313505308820541746408247339730379861976554590885104838573919763367865181910109407544839958663755720366779726239595684667249830279900784271864684940545132038281117442173314056996957886193242401224338703230758022612372515706514686085130191370220711450735768375824123539111504926704564385620488184600880865874463601138951337550901448781660008940066275524156099301141924820952615264410624130372842438334343548528295189392010863896431009660759238799934967931476175092458915438175645115842233054768571656643447189958158229815336898814462297844038147500512150888376041957673841979377307514219407521585980403297375574196420970501904226133521275765085852475115963967403068938475180422028087941486581909087979948007829743330302804548265354707635973530049748574694995091254856283515920267225914034580925201952717299487400834734412594521440759881587390939772398572865233361065119943514984367700848837031549739011811725531701541582164214433486660013866373152406414519696848142959877431311430292441437248045860818745459877183923874494111445518735823989807156279956158865779460249901382270730379476469696168424109453175227435237987244279794770073828830955644037310920184458472616114096525110094394608278614614599415772871906215069196240516211255054898913959842964272241221127689469848218672863802507325691279872102173894900724365428007111862886619650448731419064984395983810120223592816564615334219816659737460753665533127599059228012837749067891617694013430917163180440348873528464334231159829666612323938111581671793853388061392758924336707726115367799957534216020296273749895793470986798609628858014584345500302615600793054397934893682760153397518500884056355608056485508749263286424323113856125017331482653715312205351159076851060403303357888877369914321653624409477476584283453293881652724276051942854946122571063027788481658310452358709108855221582468569434650820077701709256387014815413440829531682871580467013100862817961984049029484157225097425298577077657307049694208486377902238435875794512298867182745955346456480303802930981469036272989434539735430034162923656983841752510427641376341812841001634446843147781099557357477915413253131032237924976693455189017656684498892813991938254952496031547943531539327152878913480059680745141674085693084608543595762933243891561696047541837838865369052293386617059788677495010248164242439604498991461420927689298691549690903839249407636606466457587665500867618624669194126663480288382152723559803847326368521757267139212816265444234332043240017113019004309446136240555293107236017366254754007297824733946222777739609209735208242464448583618511889645754744476974623879469994058594150453062938332293489976869216528802242288609201063008953378245924448982673053943286735107933506961935378968433844505108560720838479378322842402567364185592731770187161240068544474965846612109045801759257902488676870548474832554879195849231235259415926223005374755047229983042010877082485093110430182369873578832695533951908659479402143918269932269447642519055044998474830748026217351189981887534010278781219823112703744957712507836625897982856128071152163807309818052492840734951898753051302666049045672727990299688842776837897296527118843782369836703801962486423923516298149024180133031208560282577670533995507806949003289748656463480409127299583764262112554045871961105630992689923184497005694118234958230021227630422054340692846503882204806979033140610965349606874303482464099923527757445683108959057363193816308388783681164346379173889971666593312206901422818650666005574178703365853261663519177064705102471760636738417175935424362831418178999434164314754203526936128852387335628174830441818233516827228881123482587681137595192084318119654128637587427098411548129787918344644312595336929855781314095687525829495846559687457187514423076442162643459403115602204087511067139976952970961976656836030140065289102627142707583567040528187947674187206056109804690258368365388509890480986093318602365350849132204619733749796269230413692980267135304765054407239153026244825965807995981464815584877985547567354853894243243907280005604424232607399777631553343425862731436694467673963552760658754354006536339660132456911104165280708861550888768822497540615826191987707615781346241712562592130311496013649326115032842981949743338645471512634471811949570922432336815261777089271306990249827432934618532794251368142687336160381003120637171761632913039161883266337295941696769937719607093872983436947968134836798889986213131121871106920310451188407128802823912394312915139814788850061236457927274124516526723313652605970706268234384027032342313823549503229293875877246579091475037188907928142615937771444485957031682590186830344333816174446871965849952669681396110873704916878844036300006312059587009242233466850326975303501032405523331221922200181005631569616416116682021759703234236553194979576459253644145698899011536643291247385598833611243160219733797071597347669947458981138381923005784293699280262971480213615155728937486220006506096026555001819691774752239024544549485872665238018485678125041038931231812640469323832639341877795619760341698531085863190788013090587473690633887280499190380401743114563256286318643861107312125827107527814885563201138486114769188635220811172358126955387654251610095767439405899221675262525918377606601495531603180828288249760580593318776839544494909823909051501897687434702335601312035941601193517679994996063871906102332795157824568004559738176997629166249686445673212396807457548137424505121894640584970678827766356738061893318859572560163464776539326425722478485504670870799455113763586455852048932722451623725109678824218159475582713794176231503197360874482161046190281190740554670678585124430316541089304142645680020876829493202268545064311169901484479009970756098544758089398509954607244890472788468039431665077433978486362705402649355699234758674148490141270961548659606885877828543394173933363717952668303081547168450674374574763772486665536006553844356142483930470006965427699903470544068132080365212477532593262847065454076562474804961973698909183885122877051341921820969974664489063324410691611692510466721303339163900700148878482458651282875951719926141946164386513925166499720253960922762052123743648029822385593212889025786729951611121817132249691845161046881981995779939461702071617210933736737963903717461556744306148071785390638287920268822198622831358178979038651147158489364555984283477616997096311969439778039076211741695168427224295560227096379817263936772215435501132144491424760498399616053611232837195040410768055692545596282170184054626234002732374786608320311362472521567693662761470045336523959839353610325455405040505549560999609007826619418586588719587348296645317705582160373974972954050101734828997502611884756501696963716400380857084783636567263710319969330548914002799569932085361551055628206027954409159042909597037914716831678052435149852738938448766677701546500771046478347865174239629348264398804327751341250349470155955647300215560336012977510516563019892146163360226877901523029854950100333992652771853555744686035168701090829685803243010126491754864743042341849615045477657375906468347467484783327097799705907595502826681275859159643921746046476340611345019411218913400411893198268700899715414358080375548501860162888264470079222308833216618364791733611167136206533358017798219213639358935635651964006142917706222227343476726566599243049805175050490700352667834827946340293894255083404901450837384714184682076393680641193521465065401141427940381835530575240582160771852494404828232048586707659644784578962505967210215879420310666755334904784277286694595229531258945629426027822492431724786974746779064698055354922421465935628117509074358146461761703206503627887360957228856853086140217537526816077849210978241214398812443414576923761182308264634034721032455079932411247430565993702967700518574837248292332609860853106582891919590004164062700254566015816819199843847875299777821386949027464344150869404364377746819092833590058015696706457611971107150345691660940925982879102329226128612749890338347065074391411090185668294588112575928244541183428147947701123436940934236890905867019490338708631888699191119794396471345073851231521154606426571078961124230970178589042116180212683065653606767754931224049215958213747280367951691461637633185925816064140702601870304314348106173943800634689839192679035533149308829379070524637938999949446386848248384247923993252578704928730795636124639543526789927915629218666654879642762435033348847813379999515071587353668582569261015006499175998341263743675448596523223951583549898871893536698548794763680335521229008023079771983068354604186493289033264987840982439762254199449445598273881934560180777884845689620261797975548736950194243743406482203516212851519253160170570099093097237339119690108704136042610731702548111453222939445241008156988436560962141145534327632830582323785822532704965254298600424123593232026702931880383058555965455178112475108321779903010897510434434659903828799554727110230566466069660225928227822468401948752732423330729732304807473890982178472286254562934421879412935473651297641685740530584516528709015865023627783409346033201007087756650094531643110977764978064250442884726101589594569976617306136786945868460805582912235263343269315696685566336947574192608634040823254892864282506296187209466053951219903395472372697084860875160908563442820728643003726135505070973491467276066691848269857213914160790284892091047479594337900320220528493686964904763637895153052708469644145879886628663127085588484491309350391837008004672258592552439009673503316362137146465143763971327497673415494145179792332473091259886056813474640392129397737037778992986139800289952439370840265685383180961161680689196903942051932813943199975664277086769310907803039067743181003206530575022525015486368128213842945370447844135926810686123037601797522743863937221904961332025414129826384956854215647503767180953163316074616426247000399656989962267983817454352616721949615598582794057670185207287243957681731884778500890553942520201932658665820623693817733697273280823053898034823200556991357174199795396959930703726994703652197825999590622413711689221019119296166507689293633954347471136697742993152239858391066475225005391818532567874794518069755596829717575600369239897370604320902284273515531620259104928214347021623845554526049950101290497892331166242244577924599873294927045310258298039901896006087923281962576335827234446346035304791349333942708553354618655950132690612793180435271383479907638965847796803912016785878254079981499851795790438242844311928312237449817548293827664293874706900430863755885411680470612228128346782049139757873972356374870618275034102212541515185845207335404948087261209946101303571009801149619828130249734859430192379364725588861105251037321518447939742423211668788497020321724296544357565371852643811067702660379914445100830350973103039741416095035405678559758844385395392128602160542104790853879414155725316125977888097041777588644706291583862308030594552202709114682324155676965021930180393348583586885854322213384706956459047517824027557705295958238264392571802811752268394268918616178092882401640392706311709866762983463308892971196086593338993119493829992421570876444789205755538417449981092677562441393881077265588521294170857599327688795377548714984651367640406128574952460893788778397990192709054837196551143284748581395359536565484017022810477068247637743320962556496500691815804798294548854607682879414605799733149510659424531739203657174305168784230101642962915998336295996978972121094557225417919900126221466285704348958744203994841158542765001212152538325268055735649661322877475971778885956472411417452881771919985390365579755964857329471484938180440238092317668776702758199162398930758079583383670359633088133492775432956319316002463192597927270407090961170004997893719803303313665205572755211168011228063829870294809792617729721461439211392762466431413886223856840251697076105150095790160039606421076586857996445938499301216826401657826817341409795417017205114256275233326422647044208230128826362463916989211257538640707536499918296661274041653674794710180301786519305022721282212313888524714681468210847920082141288138546403743501212029365109593574547055155672293112422653829386516159872592047476955859454846053417968622338786441710870943285756868542802455924647753302110122979209066736379232649165704829935659215938547842945058103068225493871221811900042954162185605152521984503549572529851198972857761214283008162184837583920109388424005775030168636516211504080469719921213020026285932432837257489363332863719051517303038381723129855333610820915643509865923616217413421473138921166469370236902731133998465216740735276769868066796358266338103732832577553570267911677382218052992352946148389259423737245311133545986619974479804710647439392238802079283555358272652293871190255340628585704759300838794382491224290595558467940909354574848173888858366566910915081058815216443715824623948741064239054580637277931972859808671262973467675993850345068611895227466240049884018387765706819672687471866748463088507905079240442945282058939168328990628417661096068254536327750899699318164627522962435135443673582056658981789391151040754759801368413835102146913155425725365225119816542012222404392056411109085752089302951454032381690959030240618297457054383118235375639928889639414223098154142383022331780024959184038417882232179605164957401109017533918541713854516897890518182637202122498292782197789702295180993595328420018464596213302135342862034431755423926031408259950151439140468720850808968848731586407204175303730283928418431969682753444250809086929703955060633568419736997097135116718608266405841442488095212830406071667337591275056271788851118364491110395211917265854480797687440765906509369009070585297588836715263615587848318965406068401030516800359750137899189701331967006940818401408160519414762354564222079317641451154636958574225246778989863073425310492130972131581107525019606344557462326296512302535030709367823023450179925057219382471599215324379036360636854934626492043950905555085339139337280753920933459376257191681639531381658181948663461807440522366413626283430458682025795983257341582729955033338975457650920816094740294421761052084915053352598464801557897874356911679139530815018895718963735661552633819372957978886385853927381257042700930179030809341059012984560117429920417112529316971093371141766857668983968135061522993352322097829414399006987862859133565560344453915374427888822232319586198858994939948989725079768902559257363944557191806446345014295184550769267003159066083423714544793900853938587474386289008808507128970193391827116359466989977350536332604978952243649482317251546883310900762830743661920851667214617886832974363489194962152687571561430192162030760074772363706160780371993471259136641028284841307217069628916197425837422331450458312907522183674979229442168631027350712144471896966833159711832410868176108692751566600298290171905501560653805991855208037982053339635886683145946346329969303439845901900043372760514105886144358684614955810320715734844232023856712927339686164649764227766836867208282709167609483274447083006989703619323489299179564916674115432157520974184070026338744560734221632611229414792283309508267755852643425479965534360242410186851906364589312163851699038714827515037214842406042549332011806579619116450658702568443578210142594901113361846747762730457053176488087278833564002085864128684998192647817619067334764778823245945925727533254632353283095866994988902605723502727655176834331059202472970312336286410634006470730543503015958992358963742314536650470323498842183092527544858931344421205991871082988841983921972862045261752239592206709462724108482869130087126573724076035189583791757978634515746346240259165488589180754019458953034765408274527852093159541165647601207190585366550495032514388016046081611995051205505169239537264816076808440434774925815196474800085042878848388812853748035669219973336942508894248382203180085400729157171171848899043721026423105922841520562555075140367079051490067775621848836715297446327944706251294338285678542971286180199931221750450324726875801616416480732378679621512148461764441598254737607166098290033471510086704467286338844936671050995939329868009855090781356724690208441854083543704555993331191413500355913547575579037742237416336031573318349170600972498225231666914144893873787560284512802772928676345270765583535877328434576383221005029622146990433129709281566438125938269642926728374157894446250363543254812442590832921644494188535333047197036842766738991561922353435891427360428631067567483730118632232759313489864435949092686066731792332133709882769762333473661864869762584064231933511645897325244838146973864872975600638988306373504928054842281008000493933221509063181403919876938508899361254416356863003825181889493967314782136902629123266269120627871788521152005563207160955435639404274147821603054959072424967033823428711658295012672977878952317980853120299470393286149477571214279687634784050827511113901366143302591328928486189583413241953097804725429060419085356492443150865664993145201219321667135406365043547312373262361561857355327731039084362871969793823977952869778460146346754314462738165493859670121357924232274626168842840515235491839214651616732663011691226156117440218156080453263851283651633789201446331294771513339769279493932720140928854654390763595729133390417998415319898476894184533025541674291561113282252201767505123581142018627484714762486999282766029462622146841029427126835357579990044905245323628267464519725095457431130269727284189513396623943827846445266002890897688911954627982825957364019691038516302069137095817963294472311780957129058023886021721526724507381457388877834756099213791888864879992497410654411227780831362738313577616385417455468610760042046352263036268661901126090310992506166381280016352910364479974403076321959529638455833386527108889173266784110109764519698982626152675999108212627557150181919945767654661945388891278923224677423747185943055982197006755297636458131333036907176055500875566193542740419851621213779011858658811465455978671128621182748631156459495530497467888739656082710470522205512332226504866605626938670430566561098017934157731147256275159797915982112500356827279592106460267138987569952484815364678219941822446190974065549527260694408161173944013534831049027112728913659050935361178882013292065148534532236299582020840882102248850784087109289569512645633063477276798621528296685769490506175264571064687959352948986487404123008488661557062412011386093531039143807887549896350984448647457996668016371717757238298083380271047153021572538675746564013261635437132283813838848987681675203440825367487462008952188150255289161721815490424050033897708478279246950163207128438449843213526690407212372499910792107939154443307810970840213203498565759157843934713328015195746563785544652465464182879289112772611170794062636019759903438527204629903288265343638648037693120880810238048281573366482359110950860044255653045037020159192225459933155023272389144137271926476568186516479480243871243379777535730936856094431081228497610414939195138570149771143360297832809571307813802567836276353269629710780697247410180658625574320561226122459379626593236508948602678788925815036554065765338804844767701876046562040803122362328780646933692881012750210514875568074259115957234660388153049418021077859363692977573123227143418336567156993347531793291260516984503223604961388542217895335184873140702642987746100851137879929896502012009834060094084540589985523814935191112513551403134667576824050726894367144502104331131505318945701942771977429977092570571470712269000923849888976702742518489858243575917001400633008873591821847668377643800533826151519772596257355561828638849272588561868527910923884300448034577200047407024496527552686901111256479657212840912871454798723160358343886124920101555169127813333634090969802040837885056335699584364526202272282446060607380541919342852410376480584230518768399810642912911048971871687457417430689337696126864163837300256183124910781397750261215436771203217656945244750497653261246419978933534794709181916672513120217426268674203332238628533379477106019148192699315123086744601191762792778808977306837553797201433662597854923289613579963231245444647282725699836411337428496224683968731195993575503308889503853704612262226767279696714030660343097473497693070344972264770524413104097083672049576950102294442831017749922583517848122678467712339769781791579577776947169111441928082382709095414383396681408419051433405835796746328727790376670167199741299745898951941659268449435032800782687846759072908062975533633213099440357707847309732753754923714549866253712752120842662865235664586261541575632277821603840012853701681196772408206665776017632526827800972400524390127215631340907641275551489981165176758647161787298687663416691085525737187797836028618935555701688527926815935307222934448587937937274484231630167599884727720510977063541172602890117207833537485455912778504011478882706531195608419767383057761862864452593309196507739351352725331580206058829593512535568351433740587216685781490290697387021061319911682716851971689403241700035533972209244852971620704470228342408985618438657648411297559058369560483822368547933586476526890919915221808813736382555512520201581983568947234582066432458784434823480557382829488425341966345497366142925016483664142510631941455204593129297350249735175868787293922667118475836289554178927037957798889057338338498046970776925889178954061320462319094668732881482849898481526864469031384819995084873300347917921727521803529221988373964269114514820744461454644590327122295147206137310942153267731396851428736395705819659391443187544670088653803304350100934289526073168898268926904768012221404415779299625410829511056265874747249993959918097707867278647000026373490878196141111938247198661965924711279674171611283330639575237379158731999034799234230822899809272873063335545846302055056431423981320926769436924340753988414690122440525246139191210803429790894458755604607732673314031317609082773487696150758530322736405813538299707467059796665899865052329148825936938838603811773894009429777266812938649561291855149209624140763962020661154693571274485453264390566541836372463450527639363696690324298155555852098555843076890273731175072950276910864791617331899594363413053535728105441946711019247296323726095051357932750872140019639813220913021806161699790807729561502328103083885457234921748890731483033960704788037701744227636842699556597704252111290423187760953177724061326359688770702011859924722084492080755841995933930104322344180785739997462989128310309018740208361107008972189619562605532687508819793663750565435511164052877872591270538893262280459219942810519851856159760165971851676117341340611370431974975418011240335982487815583167035247917519301778408303687887485399254043120499300950188785667318885400199797788854632182476170571347086985850108700843088888216738369447848751895062905532998859449310099057357937646285532877537639226500661290702247356065378288991645887249674539206951447902765544727474568204432932362240674539525436188857148739772161480261485305775326149548182697356286232501814804640237088433577634879773602404463076752547398066790513674786805479802187522626794715353030491718157376482913417146296310492118449432818501831061024171836153780735643575082654888154995236931137419858368986916686207458833108078725581390434440429540529415445596084806202492190175080792080048544544787372924044166838136314852513587886891641901934053145343613924799217712779459537355755719516367450550103776663974065421512368305072625136500853487753591778164472665680196663893918952064711321623372933981361370122625836669014124106771610907275922097427752838179977589231602984463997122126391297821637592754190255083305917602134009788318839772022004324187455922610262691830411918011956073544490045824986466976582520885166205579509839500857222891390115595043646452219751075975048925795296896724305404256941143973499228024840144249613464425749724445323888807000377809996970459557531639722309995358681545027083608554992972243442896418872303280756217039937112587198980891160188115530225060014819898659334696989406720294289656351383458553415206088816177491611555457256025536022115370775157414077423851450791512926149302404424083152756937012778094211645706170765685386681212414481077484591381816927467338008382638535933081195454692013590877773923888703126122696295160291953642009085785091443182167781733343785160336850879679506785619090814441177705341323292740784954614461719941902156746022877390033512001785069728208706181386439513626570832791850644946261977918835497434578600353977915492338257414328217553181290369875589160034224219184369059964664479194870761977654890478674248252654485232470147387842963330099449905471625161831770714298849525554083301515239206897940103181579505984954030797836238157346571178417720645779658348695665840636412123340046649891147607121801715378070916179154662712181353758372251138453926467015789187116373195032465647460517813142113073495730088229039384206588077152055066618690509612653817829125493488615849510109815207048558631806158128692761028896392023634249182128643751394534739557024362044317008909247865988003883855368327785899580153070479533287150180732898648936749534465294489318615708197059477554632763519984955861756057339090228208005248465279372140568049258550226040788574265726578302300536966440114968075545342228616728040087907222211720923654363904525611243864975211769565471133911305463888027887050025986680577608735063292668294196581201982697488478950195207505852336349757965467540268493657012050541109128466598082613837289338649651793602852054065117087394428821229730678329751280324699873459068054985874554861190377960855575649687259620823331959692062611264812136398547927278890335147488456414654422092839759591187283490784363935030416973110317062093164978429015496179623009442492265454620074442656696811776607996056645813199469218478179320851117528667737628939849513041248083162164570540426098251359734977069300835511401379570348258415348676072496964471069141520992475508519118649796504550639214043579660393480904053130773966993850195330602796138628062674447100082626166681415398587331981769245021263106614869132086427412241868541211628497783450195413761060097842258380942030230227870708456227380272796179629287343684049134044461542127200876624845540395519055297052846809737145963891316760894004104887640803236980193024567084384705950720785536970422154216026453388039777841506653751303086732868117058815188228565092604577921197489102338917239388238107319845159086308338240005708935493520404809081267741043963106789622915035196726511238158380760168775965845649478423188030969296939387216530127587167583060980639891511259164643681359892926295548941269881903227684941249002572589284890501442887567201429009206575324733748778058844827731823164716219527109414778703521200484377257043553754967984689709132946194770933760236336522398624410559968392257334162791526780613305635581157115892987463215828254624278238383696855185116493091867017227643296134838423094791248463922429104384066793965012235187820721038759718355353304703166626126101357170480379447823766704916654377098028627170914619889508431865819387236680408316233289750397157836986680428334351482015279294989720525194472084260199973987046415528966955825251681812145657912424918850415102339538266625590608350256858883598346363197210043641458994128990424721163225782411851859743936766707713458015333769638974382441698588561635747117766362669330807571793846618641599453531998849500510451862884384854782876958236575273098653714110386649639740442250544493888169067986474746414932761613330646976436465737005854025862268127703576783889984125799735237394322214537000009409565026954381436884680014313157141431784958575099058545149896991416477035408597926093004618917106341070846071210483167872423860050336778243375646591437785077627039871936191450212446601151149435076284605084001494099152007622672179238557554736535189852193627830939909088291911435354505061396918070144116458062491778226510415214581806733738858859298980776364453450664009489855407933284070757088399071421917513107401262510289534126813182040961934056435339462003980318813043105945793378652269581294600570795439239941551871356572184106010117804408886340034454624783079036572715809219841358202149658532379197881575830756334081886914783890366081275792592024980483547521726384408874484183004225510282962463033107442959356080379479855053945656038100271671852773540592416272853268157602135902699623885631122485813355472876473030692216888288486539770647076863940048193985587265825765289108590944657614924149623002785809393128501039621702826300058468281426760072392839732279456357985708940329429113038838194031473246340827534230095163833043085486957056151302297882981756735279090604903709556570133102009986439396463019846315734217186159376428620194683443867003952455405306943802647266334151258420434586723051129761168789018067984129515860758785108452070474573269684666625614702760002801236525108663180238256194869832079724330168536298954381010565608609876605515418002258612747428829488978089597478506894970670239084580866276018797403744463689907884425058931393008129622903909388253575400937002546077367139887732598802829464224652194841522200574779715057671715011862017282522637817508709398218616881323904529269417266931770886295470574172864280015555426805924878014485397734552816850769195378253557202484079965924080066688143484002066599820584491885382353652041373885580915722786522398387129276900670779854746417465329427542014612498781137890816911464216553851182724585251979478362297752190586830721519502984024076971689300204882351300757969454609055370647271455862941173868609672975114029865179588004195311228875394243551847592651513403026291342883353014427574268955328805854807655327829426147006455217251265669703143072289125940865682173394578493104459767640671255794714234076299271164528364333375399501015148976722690717078159877528327605088848619135729268486187200260148241247747790115878119987783573190106616195207367963034738415790815841741504747532262390968865549772385171230141339223835226708513717637040280056524751164931635837620813113570651047081049563006293662910031836366833141057942859058841710529520013684818887087309159327468946537016171772661852959363059536953357225137781701018896067124234377671203914676560030715442164703374410707372845424938945533336986144492060767390801238334985760978345903976637021573750053677666932960304642261595848261135719388720200671070061092245654708707114339159562915306652489056790120983374716815387656366304276149768213683348476492992555339810041496039165448059037432050768305092590985268439263171934209018836216700393163703308748174233331901370510274172131781853629230349736319756909399017107050043791221914059463549282748829113769082572006276567050120533840091585770616451898594293651537194539549755531806023144410459414534835116600900884475828311481454784219961476862363970760337789526686187970608318829155785767950838541687768103508155105714773205270634846568975341896806275099398093999285636097402256045676880351183502865000828929995628430245634029204435267746365507287750544548813714612631497222001235360006068896013273823898180907240631796590731784346927544917865189572103736262027113565388351120895645696578134322765862833353658086161504381107735430748813420150159965127179583382556933070255756498781548953946545919062667005757353086637313770869838496272996920145296658539140645214731133289466229335346673607230000633820068970072452530791762369084337081883524502853027048368606034616515116135587544781615352439755788564088474889444902577862908072021549836736157009060464102008023457788268102498485877500243729112334370276576831184872167421028669345674784052818287462083369157735702238317654491647729430265442732198905128472717906017924906171413119989704048924695805724002728289546071338483178408075305123321099264911321852080829844856164651096189365972925276321849241600121841958474666091172199049523413576479643983603284299103547545138787796892629445142303673295207553094078987191823294367803504254280037197030653736942513935462182339786862027796805871565836752589282575843105810223746516652231310062026216719754160982174975752560819645970744869375924664659893540238342921946339801980466587461048313680037186843406421378310851538169661321823997002944724237396825409664976610713414153263656236976034873419018167933148024562588446458493671685483377869714516628823434431066460137536654076570152019786781344757088390385790913222165786230997519682583149964535684355451192292393329273554013241422373375382171686011346574454509392958803693231959052141137491335239534358667783736174737299535354827334716635262642799873453189649492376452894261290304074115513339302448143582679439785077142445689561283670346445089343122705419066775271160683244170485068737104846064062939640845344194607604691742247482753137716511121471611141620199084759347603072322295240675850332455897794046643397686492704928436111700698874543136132941268669681108136986904260341990420190417561004689554637625867761254267417316871223378070952334004807698926718909589734660163987944764604232370021512847930098665937805288068416807086021282183944259139894662523576411916886066468697651473315342829146787384203643748851805678467530284918410942093297933819873088236268464268140781679675559118027659933242542311667380562410261592192213182633128944191928519626142100320327322862622294094162903191744466053631891735738552567232117034091005872693804524423733017677543514838992225987866445893377398723360367587393681156871035422604802329090299025404027552464167277931480559601630505944695742501664345876769558414078087209743614238393999803459131013426655720295169595549864382499360960752662693297380550983266283950945463893040660083332847112018976711491130371380654133452306157044359779770679963569017793795650011272711732583835992749374782372273080909330979462386296228790441141270029261086227191653792632401537735242016141437783852597308331578355291635420693397973711737664688414892807162385045296997455834776969415938436853256767133936549158666563150337823641331432893278792950843429193823351208734594076379567792252901022085929464847823199927643459397234041404214837924383049694897232821787014338005768561005527974744779233431836761956131572992469338060392034271616334785360699304739134554241569494688554157307730902084728200489884323864722557063341808352053984586430280615141911924912242043661465159393213421271142285792704207081297870982678596129091972696130606976691724356849041640097443545051370527538770403701136582593837559888646938779799291255395688681098243927303128281635922261687762934677467023217274931612859589657514962754187139003628932613165018895394635549225936353515920434076734913102334512300630128619346618613176488222581660856681821346824909035958266122067738954664187535594168203697310909053224141378136689635709338705236296270964726171097300991403532383456734999876024055190019647209645950001156738844491794935755983045184807075002433979602155077970684918865209446888322854699950405938431726104712783773222533186387982267399289369190139964237322610388543899326407891930278775067230647564312868596731309850025067727359266721816682328207343674838539378666611856365611199482698444676719953130096741540201941791332990572633916302833908913059520911556445256644894095112111203697648187597194201732491168570816746544997786415106684625017333211540969425123914511649811911890214475516055618393628017948671292732456345204476568126204126655467154070201122974163777817194006334340882001250562536395808157433567849638141726085072388030067643660780089180918356112877586573197238576437323242718773484480260782742444170221664884373342412516336212532350515670043284705035961689268069415086722920767523877988788437609057154113224406176810437375509506269370153572661753971733699390429055075717173762826746773270884108558293790434977447441824849836646991668610855224485043940383977592900672147962106357708390945237862605718635690176568806036485874739124939406714185726461648598797165178355179435973655777103922944063681059930023140578086350335910127069790171421459065468385038259368170140422377477618098644983961272798299863587672757398669419859975871684725610702751712058142920390706891884238104537005673327966579744228275189675259498228304484396061540220523318939003274926888653222146005325194612016275060214974950908116372633434503129879877437932223371114875012382465097618112347516973198069499023943947052849521526972465467370414719342135145390042708871761032224878384259291170967042999680159809988976158561722148256451556093978588957684384589684313486857650164716386467968266061873120938651247880932012723314841621074995368108556090452996610654931865118565162403369579586260929633331091661484140961083849302528794946223314535240740042464204176581466661067717751305008620411323104408960745632468827457890176481230501385227648525609652195035602593547302972782493511003674389513011434528066818269194405481938692170427387493144056129014179978055726842529507070680389126543774481204921582105363930536746163047807455280292746748613636221719431210255068346572699790129960853059730871768215535683712828596603875702659284295289789665712759708304096783674095781737707925219859808972310096483249825650402596913607539338113226316967133442672454277489007861484063059988373462928906352661331295989780599782104601918688998582757673019062293618541345906634090953431625031961560226440880485071385996534010712133207398263304402359060903329353635290148329380783235291348165686904017261497339974121278362659075796377444913992041278683459260956576262957403385195761609469225945133040827202229958126973330509165165873851044057333562506235698640537975435610218824641508126898203560020034050693943516950580518340002173326576917189416861335534364182438430422651382111252666426437129867698341562795468496653218648537562404465969264916679576762789026635930197992562812230413693652219484367808814039759585618162073792148942034346797537593239628223946452912157571355985333857757164062842203685511798313970877038645157427036035467087364961122127666593621848586431882676863646618362952838732442065996980755496499605401674822820099633887723134869153909491769653658526683919627585290105361749578918127659919484416496700747733140115968082169744699924401135040892338019165044489380705224944706738580336917621863514519363850412045780952580935736197363410711946424931857399324595532429362464258631369689481077317371375254362607302993996602619012463720297665300913671125632347815937994017889293891230277359389536224140956081295352722663576943460046508441567199935486143950584506421247694590901110603715952052678365108443511190028152162033842798312818374535413244093077814680027242567864394206070152501244866050261514939174069267069588687476031059426582760480578698268728354807184583530779571797073890311268939372320561175774693409823861654496355879285884940623551511064342892396057192021552474743655449109635865471744138512102848695649996678232473262410309031240597042025751334337860836633471605383339756035282558653635186278129417990661918136571803160027667994579965521718560600001005511090465158192035036860490475031466703410534662099896399233095751945252537510634142888569466147426056721759583785862657848954466213313929610412557770804204547058202942912571970629808180254772363998334608874315244695957002439545154239823099861143683214916921055783603957064465746230077991592592854146162692115544401979634406754233094166118296447697693245507300223787327697407184230266030848861402450685220978225890506971400860154205945614541387800663737740981699782020377655342991063453406905581335928974130129449067329616091675448658603652261768555852337846265664280039155970216476109187271299231181363127350952830387861380305258127550917126144071535802721135055917655728949512255324896073823983647531623621126395459636417910943021160492879198664390161219014515358966696802781031422190216605949596681826162385570220315147618109776279318641930728998751778315401639047441795471472119374152334301258258233191129590366076646152981320628633791082957854092300999689491257408437267991209877220678597208594674255339208027710850852591805224945772114725599333047252690060841234040137750747086616622033083426628820434043710444026601968262245582408997075784715804953156969359457321993317771580950833079589452500487845533881346097010729491876717197565136122629103161836546646300616762471024722840640192705845719501278551035720590280710891208396836418617891893093888210178061593735922286218214914753403920807868391760781818742487831202560691495689851605307991339458819027343398472972041303719329383455743416835784902763615036479302694524057656005135636562755496182205097901760729228709135613147678175176164191988002861937302266938837140244412022555556090906485861304031122522816574907127482220155213326800802412819129998939661840185420585350335661531393998838124201960634742765975605250744387665014210807768457215888751424022056601732694625901168824913450561348213147547493920566059249346675446526200237012276085659377324988222311591017738336608310680174820722016203392932050517521359560272995549551913907221671588245687292817076060803856013702210139478609790463214682529455249053048078758746748143649703888073127597397455989427551003539365857108861086412765310319669202999305017232291437301221339345276590634465068573174066735526317025660448188867320215302034528484722250069432216124141029148663671587336075023688285014867881900012638583134302004783541942345984682619784240036477888299301646267633676360373671582037652382670485147728740826585837297670503614054771750817888083118986802717034357172564778546635836090341429359370080322681024739156216328932557974972321438934970201468433711969819640056455352292004148745946184124479225883438162112453503190552889704262494327165847931643211970200956036638272059203419408184628131899899247552148661139326812856354346717809957462491974505650866454537921642261937930626613086941182461185257943351416554928985011092077382144070665279414928152883995442186656435629136784021856059758216926398007385905328590335977405017279110150030828440679987603984107894011168394214851314910418406519399408647916652941619988389953835363003470099375135684332007122960476785306590638633233081833928010366774664007853634215960723475282644522622562167750170744104143052299831320623482514793085269441286491278116392436152617710758635504502861636764904066987973133422868448762588971770926562809394634994011657901318117904350658791248433936917617403315544196274477197839723222970851508486414346497996846683389066413349636329838457148135084191810892231667344354348115686409885155354736790941134993437117211804618968022220231762404480441225611796001812132812533234905023922757548172944718093620724133146691669422948272566577454420522053501373477270110192501000216710533732271837290104119658383736706983087706194883638634668069475308895278779655019440459385978625792985545563385210731698913193408678084813402907288701038975072349868749391270805569069168941648214097081903020385016190758931311162692436255062262589948829664043840156036480796156215666199488619823943932983849061517587854949490261490867554937280780895529596849194708475273450313094993097300909238439440929964483740803685609647908383338610127399067384227187016808148533952177373777763798941548718946846114445987030383074344551356620175076762241644834821474768417305493676089686883104534152229103167532192737198560031620087141036642372169323586009352480011895148387761251840101985276918077493741935374366192155944412291668936513330949368809086310180039495806941459576120595439771876582099202886589645320080095660737181011766095448520059045124357430592987093454491770878294783446160657396660879016523465952016409587928826394533930951750056660121324216545921969330540110003019977357729956375002478862798112534437382909614292008427385321902660127007141773603479631813922667322578379145590641159928000726897101905501015170564186109632648030293101919580546741701191276756223612894958633285703152000828618111342947678213784272846806521235410865138726298574136107247539271114401397113352882146012144128995953643349412469323235844186508149923935339767004529673807259542226877456312641864738947876937860234229220468618129255547194275873535082414055763396349775989125755594803106680071044534520784568821709314600144043294458023602591514727806592054923688974418286337426258517259451126247322887442502769858064662403076914708283884583938936371692780938299463773983648111849385459597471985267845692441421669287203461651261723847947741301365435099939908429142062465075092077300777671903963101394025210603828393578927107785750183040893825892016726740786590211351784956792950738169649506572742879341597797096084202495833164144660579099185998453860719527110428689913582928641534444847475261434321715666866730538483773959439155698731612351981707970571984117168491180151902513020501162436581799861630898069675878576240415192621903431782665200093479092360499366566882479772568422405275149259253730494530640527389963232143014380311905541684497166244490831817644015061881751764870455138125182319044573027990543988642050790908473883124684274286720288825393803945727019918221587397423304335351299905284584884156577274308697071176444738359834337454366133967975212508430669516905385557079215740270992535367498737555335993732883530542109152192795429529595729480209825069221627666443393496551353226854248938464541068806690739315489246919395242050702105902078064369357076179602839486295732128459057935184317956318703535844631356410809399191366401143377324796311007870656544304915160828086680868609524015491172279618646491874099229166759978586547675046926716997950691549166369916666747473269006852381372359718402030245390530447441985264224320351199796296790402217572969100973749115767126245785593624153646943851200456984573463333941718933837616765213829831751703475639868171002268429557228265078771423415254976965452000324468731113280799325652665585586439271402398945316869835200504524268323796039737609064157068087149463188743682781247900888536695338203513486527174413560026447559200757351386312343925319352750455028630073226117248901799487979369352982829904484789459842247550821997324866669317360969051509853748087589980853385249412070998122565569127034634237334272126265785890034442948381560660686323792171234055849990255319285417923029002773806968050232103522355647668782570835263056888046195846220237715906702171778446802960252191943907782971006071000578305288775846552883498741006237697972727788981462099159428096246951532495356692653925226029331480843467234352715632803947540806386782508309258166997227974322010186277562055887105670584587614067634796625808093790358491633512012062511485346535323346379553378669127192301221473320346832469338785294246061702948611481913125154918445939938794461069026158092590675353816992957652243675820451261977445353674802774467235886018397807070957784900306045330059630981239146249476770381808053114570717803209565272900098395620079283112686965882086779577356805230637825312892777376190792092851194644757693697303168671346058430646569306577094741705824515943831449093521324613704172187772508631919581149192405479963542490818366790179144067426144322945115672888585963917492683258285491310186827308822879395334933085696137198486306391676788973850648012325857890657025458512771380162590892463191007242512704395823239593815258835342643361859330968051190328199517111415424457101600832406956454034181911105457419498438783208554656478376927739780505157076607510656717588707592474406972509901303596771010421637122430182816102762991106400830310452139392041398344149369051859096002286266398348022781774751290609018223936948603454932777299076141774580571024175248226818056074588793501206348462285511248233780037853564211453721526474259663702664617277789985677931084848762510033447019526671470718600944802245176746295445530435231940330452741096624983721330772812982746534739985914173386408084286953388462269918354216014122331577754542369877655938051243102077128098117384495799189289804670857878102821297630564337235933253025263207500921852401983628316791595787848467379428258036162381011474032973588247708127445354815013109992183480710994677727137201153187305390335259077857510255729268183697963836527912036939173170357246337989600533195211822778671474138489016783625992780481175126320843015122029335916198839664871162774651099128031552678022791931150913125478037998283629248450838247874351016657635240383296821179701242965387422831716638448075566122419286821894754268899157941813969407441100799428645402183838634950552626719648415514716022325540428894729296339993487909602311661598059981036696894478061378814570120846935285338789271222351788430601270729061279332536872169433280286540293920204680019188642206346485620465065374257624408503195538748586418549281136597452095617401895385836986406232648167557556026654580075837281325344738225478452571939015302340001851566886142709850832344990129135873345861648213892386479889151653554632683558561346259579415806255425583175381559843612556568444563232207824215693808004877717837358916925191300532432627784571116233125298665517420952408901256222080669768749306459829887291187642457442368779881212574012830562026539281161070608032167550254946467281183634084550838969480379809474063972402105920144782381107214207721416554476293377127825296277479634891549308536409385486861738047942447107514905101087584889097157402722400446307762068433529625259632648259794215769802078521870540895040421363842968777223656203246795821170044699905287276297790731739113494106230343068922530810936155862893138614210776708036251030645796249216786747798099352210528683093650731515269585632398694991135357841822696982467166974793736913503151781720483821679906075849747080780093625771523740942541945527692646152276227021779809019317641971120358610302041164586084548842792563297920388775115339566820736793538877167812850097941672417126278532868583910311791099072402918814462402513768534004435314094304403118528283084532656509324089591189576297718953566885885521575814628626864531200978165038059514902984619138617642168563763542785872912058270166264229265336475216735837073298579165260989692560327463157167637600244617490561486165607463528369882842924240943334395260773303285617055897353162268718674770083649238093893123828170950392622442623414705567871474150260967049698193057377070214661851461642174806527007515649332536488808350243016235878609466417445644824822039107893143400948127707243797301492236000878714836344205372176462269610346757202680021039498843037496673405730922503628311565094035575375144584595888398501740324945118969755188431073035510525809726307037409224629855095362613944673868648911073762395497166674117276776057760966374121400810565982352004379391933442700072057650050737296629589462904535315944862118666984747436952503113328355580690530024784855446604494194442458411549180077841703687588657667737891120152459360923812319028375627050355102342878508068275863744781123615359150611920443693917992294582389356167722668288765890164281713375968514757127486426524928250399853713248625770956336991731556745639327649012389307089424043675153355203992820507795103831331417092688931743127878350844761470203227212144405028702910661508273687437492298576740079949435105856419635113095676911882914363203123723613839189927426265301280476205891317956403571952047959737151815416502102378775990201218021760880562802504744698999991909487324750832029847539935791208678215786876879215021550476413937178603671182356913843626565097726437008087453810267296316723120868089983026649103489350073512175484689808399264321645813723331232090510656610181905784701740789307719296301028929121392147140209605074274112598045684324738099409402440247900179560668408660181597118383303649065605550056677435801598118088867266264773647049154336885366342028418969754493383426502213879749311094862941315228961574905266814102337189691291643960563440677134006180087183298507798711507296138824117038619228363591912570251536440746217963930500581288425737977482969156660154596349346748338907975702791516827265628552291780894792333571275665686496035967664947440724437720866946796870777667552680030706173057130272132080882040067003645774904957058822726642139089780050325959520846894981959148925163161909184824083353580129065456909874682242592886920160860899348618588202274732254032713613547840575505404380840847558612598834784438878977138451754487292988283292351258610387786098953337917553972823538164601899814367890684546683451370242303067768658337771890899778868670948917326109788662674767264994473087418994268904353498448960887985779635754675341283895228673268524642152365781064423430795304702902259263880630050377195684202820040429338978176355627973878875195301066338459060330278455850843018331574909602323532720389483379550693920046746853457134277470642367430465507332083767352347908660164814634274632164145234283455702661606679738404606530949004006057252842471833876694351335003089325171316578656314874364261731206222488755635349658906821080159191086811356307042577557767143983470931988395668470945334020200906761012027476395243007955922992395577256040326105121543519753829918061231454981738276857931913102174831709508291541925920844671424290045123035642446687089179958732458518858979819712078395814178234211089071949428838986387072547247591604093217656596244047550655328443236554843012385361466379015386091055658079741301737779925244609703437037712628064743456260339511800298644853328469062203921738741177987446928502466377232846640789397819244393014448119052314029961427762846175090705225755992715313342601578729124516060324880598279264163614405565409696482986258034482620490145130645972662796705646010745958961363801458776007325625443413795205415507426126477999610779346844630061838998163402253623789553732980478194403294591608025802564868348399308803134901546908819565347219560186040286314575807610994348436358020234745446526978745297524158899162866031423565426727932551338452643539983700835367253374996617164239636331059701797837069253537251398740795419330227260363515289443569368829781184405341166905093961081349517450685384265817935396398898949047827771183260107729879079100583364905484471222602604571004872143589118521282231914214795887343133693823347045071288970798094011666092338331321358715032073097158663992458638548170498491031828482709444633656428203971597211767918882616547099761319665617501689145891675545335420750963305644474811979804026407090871396499225370030860872576835649137922790513188958976586750631397280568313581171586805632373211087003462979199079867704145197516127352582652166034418963047094256726380938717384980528846243631822313882811779179188914400863020092558243916385295798678577809493022673793875307770772926855773955600018960588092676174506911585857663957728365437197465062654675365312198643323637982517841479512402837622540311206773270871823629101819426819295882964851748015047567667569162453620476226421366812402752495028656619839939968454279894192913305015777493755885313519753754829393662343945812780178043638158265952742887034450583801956115436863672373837002396702994118248965735988247266252877860654718376591443543054360756633052685829157701618579236457419244457613170171763531827151829416505539239953496596601440376399660711258074590006515651000936875338260452439835675340498130388736780299936805801697163765970112252281588458620413507503305377187355135892748232152202461700916180079995406248166240282554176698369200061114540198223209070352344744786027869145083208650213664385499546309842181751973832805163818856346737965148296064978264455876514037876826332603110696983129403649425781857741804533971076043576462155700986053145668662462167481112463217478638419013256044805476739444035291300050205838128673914653690388923769483087466086914196296591151386335144358578146229264763791309632008409521858475642680100047807092417856101212784811282711450754832829100004221132236332454523588528326412163028545313710205617793766709043308665860089655946383065551776426875129995944593458991340927307856864809759314540444631146125559720510072341631320233156644729001348311739999501060609446422744745787593368102239797589890070026794836520181558872635535470305152177882770522733651488813765181115032979458484671251291861574122424855623126460080697945101041995388490462891740125174604624883533023695585609878547894011949534714587023492911502311658701818401056691008595906054231430286558352481928650842441046119089884641364911659046289794297707347134184563655141151752025496982735425415289366516915229676787526871549449628902029773618624717968645195596270072787799126801175831790624552913380994884089045744680731197516791514879266301924561173299518226889454811132600113697562326082401521466634154721586422807162846310681652490616205526950307817398541449054949171911776970861635840953289272520906605276142964652997227782577272336163506559130919258236290003314408929165787258757770929478236013979328120196300942202214513161011278815915446177345236316708794060766484386668729920924965643093706177997631000604277399719358870699990043506325643692925922619892187119334779829817118988463771159048739048446424621645044648501734012279342939128227191585320115472296852441680987885067555439872317238615062473087308577317818047712816676426572923714670963653737458205658691295399899341672496051958099913108672681646491485790884707115587218122519573994474738717845394426000691725506575545298333881820485436779269937020033091356053918060482743658976832436533451280485525130419964146427674636558668780986101416658677542932778322818051956728701125988872534247022143452937065113057829190862701189220384269902173210582003051161052484788189612247902905979013757687315321825610928526220408635912826074608282650111556318859651099805613126275111822526427104699640899730580872847594303045236194278235064936221926650162969291744075172555907147140323543818175776704423401879580075735207409857774602454243886646767576662749769670639029093991098433692568274897096719000381889164678158351884307300253214013966776308116115520546043843376221241723766416874991896760748866849608193215883531101984178767970581839470697055797431112883368922169352459143902389165417395483036695810787318892025870770393246263858657992197028511475213743398197123932794932135799590165242357683650641141041165792184540825179307364874449673912240771670902156828311444375158924966815925083721761664694365824052837067372161235076763167477434192312486390055640389491356832327104428811592741318774389434228347786595245285996822155006515151005224435706354578773404388956099132605833471452715738637062773293985537348168397657384582920763588456763123654728055296289013820153795823518216124456929996741767030432833948978275743208902793087705822512704188732966920543947240337540088841997202306521443590809060082301677321449205100078850457764060996354644405048141091101074756402076638226646337606485824782878219732019358485740016009858763069739786605750414194790374998682401819713310468787023147289405866406559563184990085208063224563690803208611785832619839096078960800269756994845044325445593358432405965586672939956075694736899894214689273283978554868362024622121603869059038280535443031166416194176199277449153845760790326448627970891929868764382549432667490325145410275773990792482111397380277009919645595078871102210510241932467129571098956340078702357391608121931921769921517539584810207420244460248386133129670678157312841999812974091256932070598675741812501471933309487629869322921868151896522711925940643668950018859761268546311023267240960618425634597142233788438364675167256454506209031712055661711932027526158969210348523508821653734496130026930964690111872683077584170202407394152490129440042787248171495637856782981104589978663171922181072773619813113334119110033924703714676221040767501018782539210482124878678302817756976638136097715793550501443721537297495659274933109135250051905594714305798099015301091763687872540087562950204118560359823012692535878815415904636914579901649718543370202412793202568879920295002027350023561961255168733449284956613497149335458501100774843060475890946984978508305025763062375796698080128673885608715132318415518803450600822505977034053700719436107988047148243256882633804349577002852560618367689273737279863244842928081041805544930421783076148697890805213597358780935887967123496809673269495086215416415133504260561917343166105003018626367262430710889488472060469433152493733499962955175034123151637531564909318931718231008875885218785609636190558946303469024136096516129990159252951953374575913907380610004705793045118611229984361188860123725008615481181388530778102996782900159386960732165920320743470478955105208457769293023795116501470775042280562336667870010123917329179173646015725847696568686392136908002277450079598110939398383069032677805886429050850540740269705912510804461652272896322216921875064154434985091753145612338021363747734432415535847726204076593841771389188907753763285351827524106346687765531428423998936951409371136416477842339122239085443881621823939686012741188863860722668854523497242639497866223705511281106000891772377998787408466203202922918518013819669825745656188105768813933236015170403076993779729278373476965899070613903801596827448006451562682268412435761785062041781581591502218873357471230184830822871755390265852314381317677306230745294937316135168906435964863063980116725732634925385894746098911189835278537326471529139439808051408704343719390396759697305466497574043345511809038251919589409259091022635134341978652858746592461339991650670454856790756140120691670349114192890738093894331534458500042080924509924554777885704914083226530779429580862518541243408171820057211810312598979316857195240592674352641559542479188740095778251933718046268543866755828850362526921857169938090345768669338909171328186272065390831285522178172999361546065678650467983450807983289831770572212590619110464630988807499876302562305810602106162096754111352168019980660679384038097144400284061959286264457088706689884689986556371116224196544635868956363867096449682458322446041547360492627381774050761692508998027068510850417691811764300509836566599332327215174572392967084608516219676936288928904969011671071519081050638134867233348662637797421169757607756926382621081734804345488948797420421958475298805872776077014399978093377174813219416857978356228229533390216056344506106617535850285440754393196046732077361474751223253147939169009787634666392435752418260684799789136533062109164935498004844204215754110454194327803059876050465972989518772302559949064857158544996955361325951404510358342813354282618660435248104472695912703846709566001020208474223079657738324078419963665030869820903036916593996164731059180766627230406533852463785442681461394628249414907975791607528364739465387909805705836379754682235222759223407073467049199178499349000075147646948626653666117773470782873075634894539708314647522197739161391459692343881460964001369084816023149419669876207585887739560549023767798090193986152001341987995573867702342320959977130027842162102343145537070679303824742469949859746890254671401263774716731209733314211334954078119725730781802706374774499061127107550085046825677024030449072452314793112708915925620473996732983497585986244110172566868580074645409682094747448693873164772309602412902901154625249556506443965889313897010572473874949209058592158622781490225457857136491003555100251818664938460663048958840319887369971616523648662092925200985453361145431276879034048044596967373793681303018563496196716011277022577526883161118312750782521628788304010910551598254708446376301814829979256773641892762070115044680309116742386516044960861180078221610111514968094782384367794751251200968301725320384002635746254723205464352753290677380415471175435930414852947284452884165976074188894823973806619974031183906310423337820227614061710975789563206986662638579611191951255247637338544882368886513108561846458422038918751046088563360274780855402792604411714106564423112348082132717731956736641189899755245007631762008987155120193349995594902886094713408442972331464554225086923562900412300037994211660813678096008160772666492397218391246525926053923860888330056076406622345152949019612197918635651381509936846095520369292541053517576241816774502267652331500776177503252488237189708494180799618523761020298543587347909925807901002963880884023699449517874706876094130452082306915951856966647355661475850632528773942766008298600618024388973580766837156107916910164561290815553725034042338767658985978964374175059393892272885718070283604945512692306724082599101421451532340660521217554695243394644516213516014384736261094909415293858586226883339237870711892876051810948429608806295921656484713498115005573415371847928187024449059906128756476192055075576888771916821259433407745900438997966938677026518627750999315712563073951574210302542325257887227669751966628557245050725521015867375996834559606718283041676234738524462079293376362516443794843027701781042853883393994186498141094492004930194412387267900611718032091824799949355387143358594857859361203917388769049362130247076037891315811297866914891465510919674063915850401632189388799863366027166662784077547321246889753311003716401716853010482726407185503798932296562778039580027409352530834627582845060027390582083180498591910931245518869158140515002731326456993182944717743309238281487130848271287517090705182691737974405835842039560525911611031417964570068906316052856216550231393943275586613892954521144140153207985605561018673488800667170318569847937653964373290573681840000115944262534674610377324650013557701731462610596604657418846480245392438541777852319166612200736616542075434623002250405671209701938358131998362057563096051367331761401627941532088254512987526054546171104434850489855387663584889910158354634292024188571259106254112633841823933278198768496511653636494389027060323216876924576119612295647128472381350454875122168557549206339834167197729967076492823397356004598755876180441637019222407955185484193209630339408268357063046440244193923674796268930664071273288754496319016403160083500136776370268918270911878486140146750138333254905130063137266853107293410082576859984299928829403216929211936824029324996714744121469899654970124070901886898005237686664215843141667667713651771670601157065593085088318754323017816151165470785236944709614679244508293785104424746498325317155536604589458525665476193494802867803916001713354625269042012732154787430764906896765820845284430530010160216810897884240266142908823438199299651215422203071300567869542108669789694911851940921944259985473015020657842264163050597788584834551286673160246881786960755221172209378389412261678439894416145489827669875191098264467115254124516738082543219890170152379320336727608494135834063894546172410489475145506659944501941996006652738994199909986404179599916500758834427277982659713520071855334508407065867543360106764048357484461748512969714501452569901583429330966072034421345524756323485530081356857587215635403149785809570256766572568239849356738095297201761547679206884289127629996908558791765214547375497963314949230510271315612926695709102017053705259313675081739457444828449247586907883701054610804518441027483313407832023641077912565553877494837008001632435080496217033719944777654167354256559058079525557236934650803323287102979085316952803573822382358603327342097387267165895050698834005459635317004992416657778674192590050449661707549442499435838327673788363753992984649527156158108634264347614632713809192399768232457127518250070349431553503593199916583992957480405420587013384219103353191168999629467881007307215773702981961573703776842783768717522161864328239835169836070169012845636814229147145828514615523636725079305179901594064372597423439766701801119368905683732637278341772433891553682352242087254811865781448909291405570056068904243044308204621093887086699357626595885855643405509225944525753735106589086577116054208640424963401589642514253858112698388285256231577122128306859409989874369809886714669454257433335108242218590640357221474825857143818302034614117860645217072711518648231865552764866380346848915192538494962304187132509654975627815750000112774741886194372284851782104483499172384223337013438330368570361078768287737260642922554528133982465209011522691283642209883741344911195706031461165976569723061743338513325877545984634840780561796299007246825637283164079919853215313468232975285945231187388807157638048167851775888807813605304960511819273408301454349727400929592331505259419010391784997485780459813306573638923197670208632668796858450634103009742523592879663772985860299422877669877600166789458529879186241282250310526790766481639337033934913606447828791078951475708906523512202108219174990121088643056304989184118277820842687801162706336416431131282383922782884124153598013538128438805460777632398117754499471343104183012340563669657824613977591590923838241210872333497420065265745332880003842046719729208261958318750244591864929175303813087001140250734550588076255132881643129992666937607272000709286713394315604825179346738511709134622017805803405775693896508689127303630576385212379109051996915247518107519804793250901217741124371758900968255638439967197547744261497810001111767543636440536511522875301224349381029407315763941256377552121694375488733880714682904911415440922996739015140435071563348568129163952225660220442892922092642259644108853473429167134370979126301877874632607556636027249582597684416305055059138688538906667130826259745409151124068625221907640994976469251355293440914923290691671261034988439688590391575486316963424527464802933025143895920010528508508838392166217618350947011322090639361865024654543246610248910602038670840889159510493515234014191785505177015592935075263506092099900364771856198980807211182251721439374440999614558583003045060670557845809044238496518676455220180163221100671465384997585131013824156554122292175823878107627239158612947908818133278677170350926352810050140034607865735610287449043455864063783225076106137692315099132462475186708576365502522855302867941318168088885576374856710096396375648736336940602357823439482044597703885549326756179309943032283079932880577836767474532492102377087001219347237160585769707191791109951289681884854380501900357022642816918921982870051835747288785830134899672843774791199922137245494604008539823074354167352735848212568296963627874989534278388421676134148190571505785074734760716032150451913501605969128793214471701562260790367285241338580631507984624947448368198204531528839614715872993250088813947983456231961980127898908749609366419334073889725124895602725232529472921970082198169747335050594846125733457558808126373429130444833292696657479541733504071735369931990265043448563715129627751155255118224495183049158261421222225604811020365213520276280658749497102268474877037266659879603249183500299579521125598250535053028077535342822669892410826417925594189640291091899380793083202444549162572264743095788616797307245160478943299805460356752735328555045720327133938881553708932820454220575919306572027769071031857024676035922597018914210191520232166809271236333581756560031721605534691448379370774596400724429027593737712899613211542272513878918315175716288999418103094049797471801277214319572158049135777437542937108124776501297792483417108232434096555428697578159173099411278812901359531546194467775139414709271434706178826862276577107675627347513719855533442270527868686774678338497134068198946973427098727769654182922580023883253009352708730448882583421856106496515670497856855822576213721550539773123220314222272279142008043421461436176980318917327426103228500881142166290483816245780021789062906191184136565905227281331733037824935081183350886394501628582942600000522775152410610259731951092244878098821308043162057877202801792255412844231957794706047475654273415685977103766361748836418873566520166461649484338888798968068000801203591132320082003054501217789047264859047548854223112969588263496853624843614805033305645310347424694488879137774249475734693722951642827857599964524584888929566209024238624649044149691478307511905801717621598882019854195617770688940799912595356277280195927864919114670463916040797196842263287647338070217507791241343713342781108648563481552373174447898784787908980669370844256715124518105247679533576995957716318753048138022123489938920599773453597613607741208793847100780258195700327619082134638198374466547509656883134639104436751915429364621283744794419941964314500297655869476655651557146731911014113092943229760482236005034501802787116420960133012108340381526383341683090133118681106870023471559343029011948488619406965560779677780605090531842380102019152568978323581876918316749411478650321921248027809599981953726502587125057910631888343456886313781950956268522642840143357799366913659898445553984597934065918651799758014452011733904661688159689867365339636300586856301685436778459824441171355949114001978743517533648312301622926501926352465432964249754948240416642977010319180934170239614726305985996842595455690191231006872541306845362972290844077600657547390791063772513235425206805953669001914196338420654843351697291130680974524511492805307461824385057299854168135745734641371512805160971638839168301880750725390524264441723453329250668163748198319402519526101864983005305371245732046818033627851745801817142317245724856068777884245819882049198532632403867988051999632868181174476375895403004743329132293729456426049469314444927895089525370557981292538432826375660381231866967678937252293942109051644322400530944811860514836184273194552352794684722535722542464183289134263260911623819784886651883601824982973186258821778649245692048934448084252934228959765187798553761241347720331132329138230220549612688003075953679372220116962399307733649678426910362190406184654891318650240670221273590622034806426662879608583115346758760533545017101633796422299378961897988659632908664382533258164927689367098664917267162770609405821413236515029087246641648801177361947335484158686963705527256873966682921208975639050081537436354703285509361331963722701158656186888055416859371982696767464407349611827232176913205798140188483504147197254457261044335471520076003544193597901673741558504290794219401470744351921916859656247395476464116690986043807802665759501643313513465063052894328516756488723194346974192210659126398278957403798923732544128912246791594512664665855019347765465804335423039447687541610261535039396501127307420985463218824122372452851962535868014729198694243491117228964413160018277482529192110347392770198655597084005854101931275846729133693642235968635788582446187946291964926077561405485857166233922704158800325514869782401395822504881134823609662336175743090354097859399579126130758570094305631664051029942036442617405205673776855450965060581621338861798812199560184483809293942564229889223768397497458916607057340235435658049332616292233331442879667927189056005292407470555355522246023656096174431603191021236312373495749064445685314943336130288958992200833216200842317385192153731216621065499474091805845235519307734559403501630774237570427692620473035088624777780223772548576093817147778877908778563866888843050322196288322952318461208361501888350839953982890062801603183438358458704829080933951658698508410756634587942286903706724655405320664971379626966292295788874528196347673108363365195657327295600120068199707965463736391010028094481543359528721230980372704453938440765096459594334588090053897676317801595734650776151219832837561320892006821279646987891820403722665055090166089967620533997795040960578184190099442846662114932536711753299275758052844112499264961271899419386754464494614399833958996974873491521437363934502788126224438185043826207192881617500152383784770883217841640106121778514677262345180048764104656050810589977206869471767394638801449405842750987030208320044905920922734136454354822215524055739956684702226014070476414784628846756269380119418979545714228070600157148133588191242047919999988514972931926744880950618130031729509185248283934790521532126704807224882590541209679697646973282516140846014516508107435104634927096713493968595570787400486518147326074605681663898417537690168921746290338011441550839258509945768048406264926908637022227063412262080001181095294420780680633825466612001736308014599079004710789377822430338121843523191031492955170046147300807159100441085909882023076486706239251114554108729342997144563485567561363410411202292487135672794845700851951973880722392595760936754813598101795776718554010678170709343133252038935182516564779912394222327381655695395818418664357412412578660714022376122581731626934800720532433371837278858745251873497314311380053118778988983887888223697340172483092909723367998373151916081311700531220211821908223522029493436249809771381896261925787527096581543703029800888072576519018928808273050059415150803895225645100209982440666116046258558205710798581469415536685547081665243181836328607143283176607491055948694970644544290044265380436740554508069505825873804885330674588001751708186961389245883355180444022835422524137578971114790373992652467971963698466436177904755191705390045007075009669678128057982854927325421477294424905590550789908915744048487607164527984987035777113928008282625901257882604847761653080161970931498577852862649369706462150910003816194807566714946399396035919936851607120120432722883771760405855097883464632368554948796197388665713681284098138089925144281964173799767384056290058814562639640702202974580147578878807296535658238107929981171978483234841614588505755729922344139472928140233081383192888244047604517849029035920679203831419756591281924012073679687448161411246193390586184737943877185509027427194607731714643700195594445365371540374973079574048546292480030635438484191900461471570600588520286795635371025879870116362182525516242761382097125427926240679131331974502382575292557210110638126532545157312721174654709871133315160903571614758907641077287081427061142418812390374900105263877481120878398013078418724991956141625158596434809221847927388661660343215420127881163983553188800539220096595043117992775942917493630211651622178976013825376469992978068599432614474591042825972314480496771761138445241064248610542699156079052933783611770902690666401623747686253656569173099881142492431684346883745055446262368438589627878500362003163848567171342152159216286460144604041782066824304539861631352532549330596151805706457227639130717467941927696398060956927674948813193214636404644275866438687676510843916034961222144626189023616638148344205512703258309928522176346133681254441450625828954052037726425332908692085632758430336359775439519979248940875260767868202902023659118436893135238561942113492069620529672980137278965194413321250734319613435877871700769330913168378544171003908867038683707834452064789546853175215821858763291383287217003170703656225590209954728870381445742255785134594680849638695236450063422451528203265809167559287670116854140426516189073242062822746580518039324855037150139399172114001361196280181444984796744422071169851027695342568867405359489080437224165268318074367524280187577588153006502659984713229231439826668319391152931090874315668721794756494381530243705718356303076496508017972197794631553953981991700560414578367424715436187002417983583764758675341354855312582433111919048724432530125410315904322511230650213686249165163646390693041045693571269297012870433122128073367587937606362363210608558934086723857549990304445583441338830884353442842618950822586026075462346099836946181454045279639180521347241637133214842862424197715976431006520520560019126673893663241976709695088340805507538476250542122191527597014395441899617180774231358060512650826903353498187856467965807027585963878403964798905660928037269601972882627169717041166090008268056507368516726162677556182448954286477941047543286526034464183030915541280031133168338251156039941226533057424298207447055428799852996545975278370487950302128977542015272536105260526443631827917448621640800836525541461471623819264858472318702047951686448864773126794921226659816480174778898226743923149188332727975746641515895989029485258390375409845855857941172660111246614009503982014486478166799720490052495070210044838099504847709927715949962590641046241647078066346221729245839181687899558806840311967147635589625477813343518223327975237134812484151788829358153824748995969196068840954981691581305447248825246169306661545146461243547215371366141703797802418061030856923248795658813478932772276348876048677667249594441849197404368901604621937468613566812028046043679919650931797220474659158131125232289213121489715755516918828435175532481562718115519887851842466047092381504274167078559959719851709462820948630913819034723255604226689874143104468917761846730089313898874210026640936441355477727127895261985592949885360779265116940786152305627164254049320319240403317733292462762924567446919000848308411323435086291511062411778914433561355768783820727911534160430997182883941450618559717918000245674926052584003675072375720941315744707005246251321623840771105546309423412174249414872082200713042088294032086919053076071939828023394365731929616251878997524692176319402899799891571359993706574459246870111295779248004473704801583934808149375768640805957722449314030319360739967701429846163358830708766135857467887198952846549950203204474993123722494294087113317613442414834186081866780029107545425599916952520501102429738009820767851313351244776840994385411946853336613243841620439134332532980385382817356846563871682709122692501247874740327762401025412827670796037203787638398753673901748239982001057767694044417214170093482696811615600569328075187977944588213708766514479609392172179867375714224732592009936259679518533115816370251974669143068863139266558963937629491297544097563452932868312411977364476243847521770971400228363872734217228788738719519508551317690307723157869300074539705834852829848492181978149090523645585415410631691489136157005829489520130978503933107784272862861950973878444079291584157152135748002099630063856081427924292634900822259354389044538636728345544270736931722164268402401050322906937305997573246302629940065627282210246496088788637302574166046492940004016418154345538407710183814604332136188593945074710686452569895769775284901988054163872183528623885504223045532037891707120067166763469078949913102852496224591213369463820050752420295957607771292105960126548604404556835864188423298996429032514185532256144025794178355171815715337460315312006809931390348687602588123016773310160757471126697850096292153260105370675778459239212385408313144350611150960001256987303558733101056844182529747247592918024514834949360378304150385464221833220665069969754027025640461793811213843842092539624498404203492323424601016930216927039459562695948574975456921361234127817839933063427491913102573198259618553665436936806425114967228329723331919755608367373157652728903758166346637297142024515003086395772664277655158561019987268018334503915895605834764409707078061259038063824097275218003504744463639845467656009006354681862566007679630202801362760659282133622506324931391227616587294939677265720334067288743864906392817453358186197258320804841102542853711257261238918237526549835837018605392157411261064916174528180899715040054477631751548393845990752904420090850249495800216902936521753781089173984540312003797435303230938549219044639507094161868298757854623053601078648563730739507396241267638288448339925232739367852087458968010120753471332732941278313851960838462720970054766322793075690157772476127176443847466362196705529159262956707279782232258196173353876243526400762575369495262476374181675014227384342268608274160345909698286088835240529320664109440208121909749239742261265319251688645512374811138873191613378561031041383926275068937822147600844556851064961454565579887293610768199964348215448459250016023384952139179815807153928327203872113807949004256654863273126093635518164577943071140725183713997275357590201454816605780925834410842121720291177246306398167275763620681613492733352661465523652076475820733208406990883129467721662254461324267175900918019382966184720676718990863329450539870081589499180935208013684665704332635839165340845305235857086474883363454558431613265290099666088714223932027279931410811337165022811559034891855989388805046759545394867254540551840736759054242986327933982968719339280010028280916689593584057091991732727856551339505208363003288252163192549137995606436799646109546712689718556180534360651004888758764214873371691592143496899774574418420650802748108854301897166264053385612313583928471019391559714012513395664233441963563535049483553887636188854596886891518561122735975021990710435291691469351004140600216616760759321184493848080650003886341252624015053328222602885289180541262583548515903397479229636687519357021291459904081093035292828409734889609150375521023611836069351469039691371968428316790500678387636741453098976098020742133662883914332922834339993616416141132173737491870447040817157804034153875923993146966835321378313488051992839390964772085060491193140631652047084526730760328021507178808322896345164493074351750301514750577225492524059116735634764190408315732238533004718001839233827878569887483432787464515351652095075101133924737029426531994816425906875296183437448759989163443840153250784968800601946701407017989359165121936230682940781938057773286227065801814646975265944087201625899017905652115419220183455506329119641957389456828086670321466914518032631461124932828609306482294019732802376600019813509612341540966804089421720023055845619505910418590092420789106801181953809935928397038072375246091167727039609681957439344727087379995125138717083880990979129279967336398125128097317442506886362135075930815326547322209284242479248668253903172003021267126811739760732990965329250721465503200181658541324858117450846684753705367390869303710872071755985437666895516733734812543783477504797208415278735528034830716667358916844916406814403668323083557240658835025601916503400269446281778712381336102744162350924630567441979185761656336097843101681684888429568408034642592995222144388770087097039021856360752665370535131031639756579067510122677328121855445373537195435000969364081869370229196475812368516143431384521458188791879619427458761986305412411388262814113051971536484872198740032228293080948632855039235607344671602092965765181139209420181847466867715161598741418399822598787804783238387367871458781387132232051513030803505188014678187369263382116134156764492037319096684310178970469028159065436001976800908929886014652470665982749863007118206359965648888742920655218728145417727417210085143587912595916284832112589732266714605363778430693853666105986937566746319977674067965482336425383977108092998591529552604200278458550496215013116075396555386408689922152201221810524844961548599518707608082630888296957999440531117078565423029514570304172874795032473766044211316305797627958509073691301119703327722301148799664998685346175849109104025235082839642672511839937708097766267461153414076981298107933527332393742510907443004803626982843478276592876112128450517185191322420267892433346127284327216038200208592670833721470425452019491734998739226921988242631569643515949514004207391679671465744152241511344306685024917587414409078731233221773297178496892174312454900314300069183043678014580357747331601193861422578448528415959759696075312930437096235940523569092864600600674265294916562355826463018718547837416420689963009261241672657366681845864150248477854578304747794049924166843974964341906825483051133992438732977738292597382445444352525809759381302618669565703059301306357484926433808571647410858298602731903359483358447055226801132374595607882372716200106954940106050720824690479723854826670815702348175761405202307628630250681609878588715920528311851493191556892826988672412739732164689063636171744561095131820671667539683144794486947242423195051316551211394851282798604855252298551289620382100156535473902049269329329287400745434469187196169332612924000707427083719154746160954647036813658195103039850408308509300816983918477040240928148592291118741233362345488093450427483745996150629837072800687145157867990911817994329246943242147149520456749742645863192897126881927568521166892676072442573187844626662402785302817795082352702000663724188979957601799266639055952470014521403240060611502937372449672735780662106681378946720062677293113409031036278406076449080557122041998006327127707500922580162550185914885524489952693489048666959576926348217267001067187679887225061381982623725222821591881279598521414506655242320205026934169155157889561733856082324047032149826431521710949408521062856922879010849921221268421451270571032335444477496676400227859775769650551337783525624334995168201104472562675430890500266730540515272426426314746113925831669709383994061881304216692937079205117019226048666783407837650097904483043524696389143399637430365357888390274324126375254860691448560231945323579481433560798190549510344415930493233705823076608563291129823291227318855478040296230513525545343540193404466001241847609616032763517014961668428887038379950798201760212909910391048952429591877409231524986563350188526244642105234100119047566218049909441707477121064081717034908534883358361681209293092728389080729166569473339171010146953814895764210458649531560658054795135854594874691197568764028456085983264925367707479237553101448443759652238052153753955827078345926016765332067454934864017896431537943169761826274948689988731419534388783962812980394512665308754245762505169061933874423382943279454106240772622080365367415423366984463581850106669754894307413214859959185025042296358849187492489847440764367730856331668652379005745051536645094531927743781334555893789359886937915232977989289801745761772847428194208990095470410175148855300848776826694345217452064481188898514459414670533986857113927180466014821861569863626590876022759745139773272107307600569993188175004426772447521081795478605152070720330117966573217248409263333620438477894268765467076303254518078377812659512372229600622043722683837909707480048596697754604312281725870244231463083619101782419403276758504283869837507224362040855124305161963664220426518828706761306166192996516291237490965212169377158270532810640999979162014177610418314975818458853445932511711890000469761887922565761493495913692154338359588211715024310013951291951203213191897946948777048169416156581606704632687844636458581163557643146474510513117453898235082369022023356425520825337144259022524778167303814736161039376801664921918373046418377931243443214122337183129388796230537116335250522682181471750777809674548645211717101533395745742303433643092393559716990315256139632645413148541071784801641681788493128443726990034533941792086103141286294121253461528726562858606359391680797516885520138258262643807991116170366997007256421945954218449592817770268217943668884806874864218343890333274469618517862695383736966580125789266600560979259491878798886265034297993752573058368927438453568294291167738117609011063224048196562626111031468486354803399464033460450978781367431709173291752642855204343410600826560241490701516537090219408396280516345923235741854611272626910439621159989878174917082063337821528298483912646387742252418663858867352055673057637834919106823956054756375056690131472427455382768800396801287317202649715793253233196756433853382753502915735041186822657271010421719553999504802032874447169499529440697367194047367897559146329577360261544871285210671509641875324313607172820503564591600601791192115107426479106331466648734581101398744787764521453984700101835488332890276510268679459819403391203479970490530395140273158585839551261787873040888484240576348674102151217704129545059009107855705409956862562499750212841774898559778155474400757225146597657756437065495072963971963989103310456207345559397142635700273715117132571624217879668670518810339963004403209400747478238011812657889357529390839907235169011246100718510693472322363147482324717995518162435552896204067231837614677981817076091785853622087100739526500835976447262525260377713166853079290493982685051204234960350178566775807672304669872718762278088463496827289492549566330431420462044134080019074965774212606533296384659536993764915811655547809713078712458424023802561695107800222751021248138485717999598096315065373789438016999236151015325983096498009733663972354927912128869100440865156996725438460857290883013382984650701108899129415835114542521928164923958761699140753049081174083962883797234449395666381716421229332638657986621289867856789137334998086431744763014764665672722459302337334321439198572960370541895883712906415376555299039859796929437067097363550591240539959934811644264102383047896838106031893238180378837206518947231785377724294863865270925836064014249423282020126858832594524182877521148837462681100473556108862705944420213818098849573736842179437287744815557521299525940788540510976606865664491687828134797659237313661742255165934984098733311262202936537194562164981716458634764801100034933546984373302804896539560274463063695471351524510765105155341818633002193040632958769356300825840871546789268540381738920971364845135245596118658025763716493859976017377587442960179142113081357098074625649724581988466713789822748967681662241008476501086486249759982447697972334209408544241634712093914525246255503646422323456128268811839148205675787513566537644521045202708975039092886453823751410334510675658266986170441206711671643171769038478833129363262295093021629530105586986598132219130104033535488171991796326155870707986464661621551820173494562503763407807414652528528865770327708314197708260174875946796865810706484054524307075809916575239563113497859791692058889420445658937799326947334701652425044021327680703568367593271756033073170169627124538859549078836334323514970023817010146285957399976296789059095765248975802562308827761415819337259621828822443502495875254643431916159767709190489023353457098212375989986986969625109135555472052878652020549916973625520311482415253040617204220630081521467785931651713694520810178216047409538671068304841037143600144725351683813397010839272369503325742562398014479467480428786078206434302132128696991132817151570460453041502970263050811598121415476625662029100522056132410517139481758641931868196007943607811140891892896302799628362139264439316337728393061313180392086450404425549647236864081329344700126047493397932285781266351034858275841855766105507653026701098094463354895723323830110218199894902533862969504717637408328284465495936115429274738563906687685021938204691342341369359747235352568199792322851733762764191913606879113008553196058424035307174393023258225421620390979622750188863765995741036839305140607854691300070972491064958839214031091486841612794172029752450477543368506300299352155392754288963262650864931707194937041632734841812327654720873415602218293677138852485154719516760317472831281021834799563452968576504152990566614803988641733004260172560248728616282720414889530566607783083939756040516389980267007465933132844554634413870177785618890446120982270588827601734411672785121817540184735532252501493069658217614318917789308411991214142940079769468190313832835955342395256775751233935110981034865361871675211139206918396927362267820588741178613006272676630569154193951801265981725080587022170356896425823511319261211934115348897716082962969292270512922058934467339887693724346453981805223369450372785975964996745646425010714707630276246375515500887914143175977748799810420579063854955966140580503079816024016241811487571654343003402183972729797203947717442148542143930239540457569320192416595231591085622534650708105105827937450033462249464172532392027226027271023435069476309351994144577120939320226593069624550407493935993235430228600457732514398284108628049635353414379937642966668829174381226727175756023414373625693864613274267556382626414640680800995126541116018216397446085287553021232252719844256171708009459521182274228815122388037164644142574579443342503377696311116499247246186206968247704356572793587789645001908775165841200462121606155205937897300304962154904364697990863056365430404776421169073002424102361837670812920699018202579477565914935300910789511521077358721257207643873861925374137099060629113428409574851841822159280828510994300618031229801723075359949277522208804696189137025913032143794305901437754885276590796584073294014202113329122285310519900283570238990624312742061633560848906148157413885390524047443214300606252776699994233475303881788277761417909952461732875982247376889156330384381915588471106874397891140815525052773131367585785052331154016503640046392322536353358908841009454531977021213886944302955141080251517375655518035003466662633427642295579037776152987836646319476969480454102313346582623317941309009543860881336769221967109655966605000996966312659363642924439403294321610286494232023434186445260655224480918923153465956832245012892465844376974212840933882439156588831999743838219786756435668428298506044213349262965922824238454775147926230911642379491504719636488691676386555489617625624966238871717459667648637147753151675560873745781882118681664195601402433688821414106533544029266774985887794378571935083947013826318609555666558646830442702757033876497223822144241876076376061846090143717427189912000617596145585327267084588958366148640942552702682244001259807730698830909831919014728542025047428461041391595057458547813134661307762032896216086358280532953448126877970786974818325628837499817540133722301077304968388278967453598603468960095001211570544030665277897910660069264115574558376338417519424848605138623675069518223658893692122806062303087879554486967716960053052028588147335425002440308284808708267332258636784071268125618643516808940274256513186431864599372618636166624341040693931092844563590049203176610624663481722373489262456833780913772315445392039994346446944656158182679103076627823028494040591511866601304784407500812422457018715562283808770179875262838625022976835654667257799171660611588890565206590634281672159296411877518230221934230389082541609259376185416144701054713673054384498274661050916562539094679538153775091663674847494634233657664526476562312438890537013533541751899267514146185682881756693265481975488245169102090118695920836499683790849668694017720198113947373755198827433041212950155614741944173222321023097618624465493181218156713820887750370429203640568307463818615416334689252688639209244836931197339079617864011015820952740251800399691275508940214750614385390415936137555864921559334164141029111221196611642340948991930202436560230314853951652697226600252859959977400486575793482307985010546598471108575539070278517405787265877887616603170339823144865128503424045589997874854045660867687810641849573529003989805935636681988371400967678255476825915920231708028552903503915348148293803244079125338570104633456702705147413441841717218663863069644876845092996797734179265875256647283904086089752051077484879741515257975664286710861449075895221942229982439778440938792522063918330035422647738362576025119770684248414265838519534025826639002710251182130480062577689324022649231303237032078000827784483920550348991911302672240038019093909805932770306930957082943725962555016968039081479474207494321353653562925678943659708756826241622641795549373325855854787354166972110061937168980993500878224103774223825753298063807639982745162239833273092083855995773230549774724670489223846749711583653190321434077715396807788784707652087473309114100482086561887057793519910911525539103467098201464507992995922377776786030704566334293417522623261173383145042603609348077868715438903768910698353862459933064874846815405194728040021504502807233820084692645961242142028852944156295287270364933296887675430889351584782755640803455014724104237625872226964317911404532368155885383637237610732793001267274216858451164068015054724915733041233143076887682162000087758191636518974836272659085028205469498247597441628985407080143641465053884770829441065297707124374862067469959343536046903576022091710298867617561291014820251644247620363286245064106736559732500482730629201711358225033513468301208506299308297574814530937046341255601329536947981164152807122176144190928898844699398149717561302889948002992650023165307687505292377147363784472087656296135836387224651717875837913505772774523389463461767446809013511880312402679450410495353696349780731387663791365734251562108781730646079720494536689250801025756505486086762841674361740355896623027744417996158286742213744022143789814071492174926537869743261997662761111765647917340189781472830497697122434030246266994390406181625953081751999443408537808156648297817325561885814932626467887971179197160351589099245422317916342249636686963877306171663998575774934419695342700767181654916562866933691946986824897035438168552923640570775840735085230913919906648499782754933994179388862731736375112709855194200375159327959576548513529199745885508850826745972291997015863919976133239728632427675455150160852311846557411408144279075287553824163612604759348474232608968678019896813930332207681047569665879357478668816442702085769314655200531912033699395456320293489263605012034803873194503405063611589461089697975377580720024564960252711950294772083978945214219301979603349094771000066571117317889104349090079678220846101046500268625165996685746064300731534156318278194248394496554681037144822995767322962225343941066097558522327212246494596027398343513745899944595233876406808198302304055293970685219979535355848961961678958560614655237245417861845632569021132795940540161061233842389821300063732472197593692784345699880856449222039034617165568134859329260896408593361495039916696174518021728714211436133539426751600777949338376817164502725765706542853926216299148465744529880201803646012365850646352595290935738189335546056087526395150119351239710592131326066810543241672548790309441828791339273166736193535207502915743827028727426926797731678211110593482212770139329445563177202555364874467313089373825149001751952104650082701521384200349656127703486522013966377048159319666664175784549789380591011151872986424939613429081263979254023237982533974661680057450253008101466383842089903591493474153463146057804095746356769632698325707405423435518959641944387723377573582915782414279822292695054682652459696650645521269918496261914085359650768118623233452637595716282756493374788383127904347574687802455206041345954292795690306175204217158455705269901965492914664192414458095282121633018815675632551084524018096560922638247585129939297033717314000732066792252957351931421645986450499382293124812271210708658386130730792326113164793116881086876862905240355299029617820294387054906354220987619136193585363913856976360384476593960438929677387674943136107188787099205085573779148767436351121548244163038510981409550917254000608135601875348934147711911377262890255731316657991938270009207334724071233950394756335958373560204538470711765337165923094891743003456739808881598540747009907802058912087089183758781613888281585682793730667716538623271947859746323733889245530937869956711701896125655704361278445922857165487182430355141148640877008207438010732227813537157523946069632789770668155093861130940685178049446097019212711196981841155870041599337786355808729598904129939152917837355598548018482595280809784939397034448896456627580559202358441329283365272510995376695900340089436222097691467900184406935330315081126979563392528594569934653975291680808402494233433781889346970314410442489753904233124897836725064527505298370316859043423572170012352749872772345813870589607851927210055874139236334472711041336557369081252534745438400615537669850426802728484217460010249647491395140933229605600386112275594069339967437315988522019885906335004930691189345465577829096272077081066644817559246641373106831406311243370213679026914977433584054863682789716807968343951209406537163747208127370866230310616764562351836249020043622892684880857516075332163613486565472795579055056400540923993489454053389457765600871595912875532057982456592610643402022791507077077360088739502246081173325581497367134518298388159074307152820456160930020227239006872606228168660038301535995200054372785004095687831093008210203284917342532614098127784515621122672223262089487230499673931709839039765545463125735338629404955013078354063330882531353237618091736522910315101454019027082830412603585995765278678244406563094947450827097907072447206906734851553094696079552895369012375796902694626572596317867926402866219330375974609652962741220278479787244407296112791050143657838690798385126334575103363081517042418269551446635994158292004865914624795547966812423106372284297555490481373065281256992612765011440478713286836564557585658358865381260009512086182947833413616759376165462222768481782358467718035724541627335962892035058818084716885046785775844691777556881636607654862907141528019165633299678001111145079436864131236876135553685159407855598150627118140183596533206524017739882725769206675417829966635353643256281593662762920974633277455011908989812799583794430802434780283593688499764388610189222351626477842190978803356450743146982530232319035642360677114339875988437879379469920663204081420104674633905469875839316526722798952018593366384922016038051256877811389753267526506060638285052352362893700047376710109862351232299579960871961409510342750187447291407800881604153740699004115979597806521780824938856367663275463938811009290613430582326116261135131962143577111493018256431679877077121357861026394300767718898634503520126812325849476134759594546678599474603738484051518091640110610280647553624799862881017343821064838037084551665835260380724292656711773363931198703850365509648014089866400199826302008063166562391764654721903228205821779313609128665504975192910507450354895053997653710697437738863890784631923867418319892439313991819670609282822611486636819972513466502807099965222224791805986308876310246015017130462552044998285325934679579750641570464634129402474227166124585212626904166132502541330233830206103659976666779304053617140313781428685795352843417466656334695046071842539296363007979943781596049444425238391766161243697993873048256425984338831937058191678550477250709747956013009993315580145970208602024869463932943931018753096531357133554491809188237726620713863125017820713818958705279934392680679343743816724625391817984847259238870080844900412838973273480303519906395435120345688527062958521110535343083179386203716512729732625905772971127168303359304191648997862340968660105264224122147907874021772508077730364813958526568072037697303462088520465452709103122423893019368127281462017712828665075004580618685548782007594680557894141601320159154311341151291031442684874685897820979017610154910318952748546676359679106836222989413691540919473405296050903758605465838360318335288090225179415449601710674197836775224804833242697174286231666651059802810677404093865413982692590056232935361284404011870087359545398756244896284755730841808154992094553127318282105214247359622469671214775143127223440359699379554351988603254718581444964049594301364578355861820770516412520233452436644217807353093190899939579399452734674757899275474493657581836943747549540756363890023201515470179684632723859078976616722714312323256410144905401459570703697575129174799413010510550840372271600761068752433416371433765687224176607674273273157037349653622341349817374859960102880267829523743229950516685644588994680778322189731732398499516221025520297305147533606489475648161601232608818297918250905639636104662184217685773992790088980635978053453781562386895526876284002401845363881429462876450956755655393658691450474007282671975036458720345666215015610559814496720929393127040492818764802175449794502941015506043028380398544613331397507928135484897829645002565502312539416621138101213036558739853851302198516706961865743747688328539625195296699469117270186018336584190774835905340455059753092236930184720198026710410139036524768758234798323867755697446850765666498196464867859286250686177587403240814164460995113196998307920214939567373984762445343530539115299499285898455035946213043877387160318845258258751243944310714936305240174494476913058688301385692155211763964228778270931263314328739865111828093592025639439271992621587736915901691165577237838068966929988292351021212078603320647161653028081840408806149457665071517475633084701411351279316820526055773479706802109337171627444622073877112696629123074014391481048849091031344737820558679526345702752342846037939034112837534311058824419776023448977281139281519411071943935905263204698383918053591755719818128117238899786225854616372596639875050454789369147946768069664587313870342205987370170390445520057107198630913586081274247458749225405253084305378168367119006774007062743656175474311616726017906760151799706584727044179528893856327126426629864543278349289886222676177276279113503798178716252815110841179541635650088054619916541692563799725460486304534151002037617392351509995242705611708535940151358736557789468425199112194646174933606568053460739999196046300717231555810858024291459869404285963254598670116802635557966649850921397377816476525683757907573284662732670401571631824056135384684134060137706916311721603899322641399489408592919118476909217118893237732169607999375013172199723694906543428357165153471876368011259779899680184461942018034759198843738735455514229118537636378618307306729336702022794239835714237145274002290278983028976942668272727951679391897110247174608940136501268789395063441008060970836708954006246831716188411339463183691471029445714617907053259073772447472969660652092735794129988578321687609326144275262132080519576443596717558964419755653727045092289118906241031018817773186045934008481893494857474411612828609964458334815302456100602172853894636045446408264568599443032443635285931453024712369706251243617837348219146382710804113839665577659057757445844556280546504820912001544013358655240482187476742602173651640416083856693995048682292240841672515275015806608587267277333096349417304548892163337433123009670208790066624204504433137343307326298970912009864430091729158397367166300073110153793794552287111161787121211642062247555896603694564336488745903950120749859555160840509122197879187972568901578210925524883064887407528743849475724617720608726355961355622295541712606911797426987919388825623389399706067428379388632115292243664643096895907207462686836676744001112174367912263286145401358019918796416415044616712441129558134098904390588525319702809337939131089358475560241456962093592705135827359373266469604931738303007364053062209723747550603314163951900215561983892283404379309441568335347777743920835906602460282999824466860327487907131950987734356878982795158966252294140719610620949884925980036835835832586571337493758072194453381282808772620677339491079884374306959886403282412668008421677927690318686843372392463171700545039217460772093980323596635658354405040040827726870289271964270695596410346802554849671068603259264486540902614758644448915576137970857362517309817906695820681279994528263234622484112685171922049749613016346690435774312785671566143330137044976131053814497593407669731240070239766086023782572729256711165876762616998561105491398802050382698981517548802359707530407969752644167809768790534613796769408272879516400128429617983812491816912000568833418002435311862069764968067163478927487116695024790735206230931511329581015021954992276600086659259711320966639353675396517952272463261992818565975588248861781421045461095269737126539948682323420905773391951910898890031013575398215274643434110695671184725452335793624314560576611231776259206430297524959521794751748083101991043847948339272823375346918676282518312321799925212460349063642727819628772632910043925567582382706377182645791994906414050622359911134706543909328402341047419211597923573913064369647596564215955632635712621287572750028019758574051783516751925210277666396812457235498589966073554875583316487036691282846886522002364622926209000648266159917230603038824972885126818102536711555028815989137442397993490524649524614776399288660410332729617251066620440529131515314726077868957046436214454759513464682701794635748125418921404520849767004312827062478476233857357770146947445959066779077063251958709867667468953643680117803511849143564765574197104841800808932422059673942501141556042118251919589748941177139823620267912165368176738395864462511042622211347550524775834392226321597001163897004571910874127839506383270239259045161231212080796067380962382619166434156336778944804644351181082061773492472179707985956378166811212568573138234418222710165308219215126165173771703848303515836213638155783313832829521340184549789875548394796400784475889510884356101969186492882577537510425730728673458973846463402357992154030539502568585847567024491243076699885126475281283742659540958265877131471262166624062293089139868085020022325105875107544435934465998006039249619485745506826734802913927302182748069067703643682901181337609312497946953102539002998067876841409632540147511436609072297092136491987833782972136281628925536645785841876233096441363220791835636895374682827207021033200178201035775870653664893116476335693128350591421125766622670464663587035044427057566459174139730942210180164771527899515163886809851746805992750104830427342398583092807474270065227538739513997948510040979382629850706891078098220302664073897167062446432382349448983489955819790576508747456450085456139069644139261349655700372563415926978384964838182996874082419427057147191377473006706738675747895816422578863352573480980603412749237484591397440566563686091886803343655527340854927642269412849376327610716022986390081037547136685165024531485521733949996201887262860327509383978223707893884178905403005687613113402625144534157331964010222468713660275934469194969496532659993017078039798998106709501144306252761534791753213654936218166243327950777469047559035049162013337972782348228004668563452600633424647224541591504732611221319119993907529549419175413062084684563442193785968853113382830854518328301202265328593591600216800556235111488029542480276575290219041558665064594341551737398388435613227998760852285323993903792163807615848724822168749902772874919241234437723691071838720716422531949759924277860721450913948315851944563608393696141506210508269104085699350877001768288638332785021165024720909839886330234655952095005679373032325038004225944483042718631795050568614573045066972013160290989004996117625773889052535074713802399574647534433363724216021034940399345940285139729312850735882605115017754148595799469266076849481110180122903558653399434930008503863188541091194991870834117244866163902679642263440143379332331952618685850175498627680029121974804128558320088584677954528610654807131874440868650190383768326311064553449618003587818487617791108572374251138924633434129583330786395731931807772093405556023659536204408690091803502329690809312888129942952163269201425335298412980535771787393746172964738927281693487448498918949007092036368931544993811681194765677211799034705987034906428473098289007585145556424322164471990507629984353656234723764668276573718282429534757443552707228141634000999550076950615662112600034238893652356917695501093179166999974625679865956661605448195050263884601412754645772838477746246353004809045489752264868011079952935820110760953568901736242721764476079652448423107031361428196021291039045078183792790524398872688438204217508474461474271312778455645472513908555442748883891927029728180359169577897138417063308387370882553920029278560515371332711075297342294238021532075786649964978206070576230043519053498819912933351199866847813423908013032295485039514661527390368786700239799012390908372990857563453889276883400188614402959387928873006466581429744187563157278374228468268065389259070837755893687259550923480360042649323110089109549794469113463226404235709792657392877483073882855642222903349409330767056849440531594858360867038507798991195632226908538398051503382576926723540864739676794499253354818300668168514739250817557172665843397020866679965136107456300707163750028358368974483903271554563705353828201938450995958043302392960398716480633094558172176049312866054988123854919977063079192501010214830060720996017697834477146466107043267958605168799242039419207026987697119475700241888468698338421026561091501651224477102209340057480804538199164965537260658175520937111773248770371455658785489011979664537577431185623877429499132618240255399127936740091016399377146758107360240808310234717593168661331949274350476272693710557515314507317385263728316914336014660589297880999456217171930486066377574831084787344642152119123514076942715719914514615373277844061740619880007401830530982915557797236213300159149567830115482248042548848413414751157916443106236850654648811463169039379940885891078848738258721847118836765771473872862267372646038599424038313485895151881268810257350488979946296169936838183902319914537726460888834967484639618562959762612791238242332475345613879016570745985766449178342781617021655080544896116272215774257737704811704831312188670828515350517145465160632414122270596531480361973751686119970285513739942080889214059977280175559279904109636420558003270971015294563793185005664250786855043326894284183886641899659347215695268561265173558668504032556684622716332576274700596846799670553734879300677473349810363061455248172495193064665233911111524070375546722096179324262823300662251580445525581347660593759920589609276130586461241814293430900226200171517122491923909367158489453143098244996305237361208431213806808559746907512428840992580943219077595547109495122829440685603336240683423333533123233112401563639477374505461652970057290539481121249804783894384694339887257161572149889986788968607178362776718053764312451080111403660731026809678007485164132105789724405815536213139276382779084385740756815816340222805380641293324632094769835781277129733904488271090525959170703682541951366657190337524603620382389103068904600472483321430323216850500743658410480374040931302018049808287606896137680076064332389000305379808407552477885851824515737983469574401619172698380144087065432176540294751175579644955383673844899248078786823558577849957145140368184011395063970613866591032865423581167991822301996650675472865555387522880009074531734155355937662649494005937113437996416282053402160531729824015833251470270006944615779565622379284474523236497301689132484895752417203377495878930077868669167272597570342455153882518404124876512241286466277900674667885908640652026787033872250968374335664318930779759072864197347393823502421065049860936682721379680807877954608685782591854435965042024643413743108560140372599467725906351514714882809913711114651817975596054872280113800058392670910236258261554674794735956679551643228745659199212908145588339618073022988014712282028602006469751484122916119382233847491450290506683522954173893834884877020983377982129853972574659094554975359280631331396579960148630239699894505729489380629106009010504613193580576036939285744603815160343696542693714432408711811651564753329877033239954889547088547305710092944603534789911876725461653991671074117062610871127936422358396074430400227357079119487317895123889946565098936713867392736585674905540706796529724285324965239683611197293004615621917267447495063418185007656158241919415234509472497310791376234114178254052236022740979474488602256527936824191285326770927622889258325656396551895781970087036137157326538753594069626437110534800139781733194816757449042640482341347639859460527653476811046795404454200514868243658186831595988227345696841650351970716592938576050714366139849702745430451753693783598765679847186515029064863330521284126759743658194309242659254037212701558627679328268239739368298791815886338282732371668782673172259535306581042763422313652012310381600808747496905318594370889494980899294032225004164256865512859929031414827765197380485339449642674060030486682687917256945960158425241888218513964615718711097888069492650349789023758649068012117863592742784959020813268951719279347125244495858641494878580493523420592946295154960537900236517851416222216956207021481491584168520997487406220965776895826089353370453783646767395861499236406861304328381506344352381395825777854415326684054785715466941467327293043112620301178182170556099013172916840110149620164858520851452965393157241119086654062630270155366153095097655524684390496895166523410848736194512886567248054663115549289054762697522771603628655808805179269284298570447459715005137389073577214226026428161031750171293999829043431134133797774564374944665806882275539629757135836057065208344663569359266977288730700299649856648610063386419421484269571565340869453184905883560773243540503315718658765210364781922078441898723873886250895068362273748061497288964440099314996683527478658743234795958894004643614406672576649259188141464351490190664165218705892857124196434380970709475938690399423673690348199052402648872259902197543207583446108635241256471958638523329776026791446564257974001753461603340983746236430891702317989471576403240715633898040602911655823331475707500558564923001738256705636907529580828672481401717544477983859511864741575566300817594825312109507776152798006347072919380959662883121192904861749499539553783974580651048814338003477521564298799527396345138199422304093437936467329272480699725109232805982121413868265385449194985910238360979185996123182750212270258789258743358758388053639230291668961030725259624454465901226095095289060385973766608343033274979867269703920711149772712784014268852154561999038462687376681000310778555112434756228313439625692996503200355448673168858515539973232501883642349506775892998962783937121523141334724893084379061798841053430926055209108822310401533916471665523663847967027801802875118553947446421852076038834648389396178792839059020108574769159335383886784538602158892916354803485058124112114397641886971113687145171477300374276031587160692419060398071183138077666266702670455918336745011447384239767313200160901312476292794119941351151488317806790998228338561863775706933517809595438814762512777697273574641138574546462083256872862246517217475667419721310512303415885779927987561659758536998583534531369763143793694591641889410121711093947985608377822251615270132049554851840786767258286361309256979464114432979344216254756749030681064859787632650409848560274306448371335475929454290499069673328069356023956432845044628288652305016372396836720983663258022394401719795546063601098348673234116027163937668372683493849852245151978182632303698549878044406322247622828796974778968420272477877664371702249467074304152676040245120216050766873520327367716970471776718507252119057287612430735013643044014672773611324358341558899978152882892114455722488618777505065682073165252732055083678855642578674969735688019688221969492540941033824913075832835235476231495467309810703173514701811431034936032480769783830298628600540528859481145585621822988003785334402113383219519906072967841826885186700094395434142587489717850905688103796317909823292554491900712271658542496575694593207230029803408918646011360004573181952021094450522425351637510715110006823627000426714384116383373833901074219675656790691598876113466087364887858851970263553619652022999400351410317585543700229553153810182225936511290611954884022520696739410696690582292003409128846709314337463844115570176140001622714796882772661118478501453407823088412604044168376769155312022306907249626495086717356478095030149470209058041822338719653601630663794249338042302317950176091850265563367432774188975985471465327404699011280581141032878307505441274380202084664813665257813977581465063721131278996051927244192337326170642226650148223149777006588302822159444078792615593630828139627164170442050742488886206097580488390270552799967563016453267156072720297054728323429429938422319878908321939772720206684208806058223773515636810150783351710099424736099830470071973072536884271112610672247181452259152685876576596282090915208701462247272516568329265618652517889051143760132214181504094209657828739910013221148201759054529846162329454079057700607341611191020759095463745318595989665458441368469809015459568706753645468050940822694783837471515025120869187664023021514620652496112929222911255443473901289568579394529616423984189849610322858051905137605779551417714512639311768948765123592043812755678430984368130570488868388564208701653353020173402744889008526467769015774599804995150128166762941485316758153602712502134394713168170933025162223976898065325328197843039564140207685970703575062760211034435816783336848949574238764496457639143088914534380544399448494991475586933757960534240282060225855977694843102554913588917031596727451404992441838613090450449295299558983333067870459956161287113676904363109684010628242906013428234950136410243495353323130341549467585902424859673050952135389368332535739837829817299997479684292671203703511293727946367606976061341678712950854333283045049191172548414581138786528343118880388283793388310462345626514404381136064195014427982186221048115376739118409006497895650385789116790096977531243264054552400664045485761918640688595787979866315097202314211253340011427358404580181925148759072244294244469137279743652168161837878691550870013953238414055459337033361424565302954528920870541112004506117808273863890665091754817188851405686204019499435746205790719193497229910075565661086413874338077570491192286728458381559510422759170072320452886482467186407422263644875819794430565902046949063125782664120626142318697629208725209878681298335769213363720724345617647508921820455040056404035629441752859840831641997419568071393167995563330267662271832962740898233553226105382600271209756903010499257116205057457538046708822988334949905875579612663126596303389332131871202391594156854349663348806768032317634262756936097095083172102473872234533326411301756824673836831971702879808069608652297799355662642245417400721823736215229476838746294642218567848092915647450381325094012441330750963601526103613295954754754963513991778279691582988116789312530575447586357756486873201155580422557108139453517689753532811433383890518981778079568142734639005022635526311109001653224370239018171265584785377087999382849842391134985903587784029533907570810681960713980603123725246177034060868058005377468719582438831532736996164684461214003994577118484908038501226057500851829954985085985640092571757344702876243907441187355477899535061230202614278381048853468576289623570838817578324562801661637956177965870907850646255678161248369972130768767057068332652854591648050206816735775075368390623884252200595059524629820200495615676089299763985936477520992924039403047132928412692874688947983703335536829646396531933184564221885922998112579587424333206901395561388004381770868154855233330196758549365908573352587749526600588865887062973456839039138659380979557799095482331564982537671016861807184279704812515456187811984486715251691794614568601174907608468566599838986007110468002342348196731171924792983868603426881700202332759936908963304034700032068651796727017669071840844995329715324284629955411725791186113060719869521131183149994565223011555483590127348244610438981174911028693177277852741243012735439543623594767475920735617976705341928944043345249683338296917647258479386699005171585887633416913735617354315375619145805420934466606229137923907223172748151274006755714371096915905472646660754368790720426286148253112611510722214451675994113559452360752325565429899747732609292792205732421770653924216699811612203598770605605558342945570350420835216651585492416912780591498824241392000933412154479630211784339130283202772242455563212426173350435417925974877718897733795956347653161732251136299855027144656972966624064559135914684267498019091607563812607150126745668281638736082855867851752422750035335791323113994558513054449909681829035083597043749009102982620503226253816018630071017870797458067598870964070386199576990977390149031981823684815460994618605837502004830101410053228419673196134909887627648593382826420222067817718448117056586218210099723141951888080283014418403658360726037707168052680618264381577508941286267161403777299650215997594751590301775008774390398811603634250098573689966228325440460020577115038368012540499292884014348940130521789804605727478795281491393757154963253703398775482508088103059186887037880902521402038447717263754032818458061149669190629107842300374681804936119448749622012152221348184609228330914471917841616528608730560485563243241935234862870926194415356041031463014688139496720871256728071979163703222491772800719021923569988214677678924048673213928503910321150414698216091091053104615848858143010614358958248722224494959681840166636744171519166049070032635477975162992308007784117177565319580091827205441316852837034034077546945458716248763264446267182207581418586063478084018610102371327167049211207209144776613430440565284530701511542927546796067682441483988875930094802710399700051755723054114005970718537714485551503190159715406900534515470100517321339398581099917168854037418994348906724047308301983556925302126841114871281412184233249926315549276261054747711887514935495755352921217803199939267247700823825650316175083712986538425500209225709814057429061407849446414811237349642349900284710450076909251703965846287651140975238876126681080570435330620035035538513114207367548469392627565206196491271924935691259555592305124406441731932090390217908084581655278833123734239863703891981686717298539103649410413010577041095249413207161789854352055608199787053786198091565475899957206702948712062929080705476693683846623992375989895712363030784933720657051583222754208189125517359950579356068562056287645826659973660519363157045269915071235213201759690154273781748185622675937512589441069773859984492087981017888963845738162294432700946058430463454495743505128955039032578879261972789435693286525777043347760992814976953944886922228604816242069619789360035906333979917784827352120179514410773116156814857362844734395857885020886963157496434789423888330372793601094414987677038214711478447942791791801931137230309505118027821573057244191936857026044215550340974250151883305207569109466275607572694768301795506693107680051576675916068859984312586169144001008989873656680588773497957301932452853202533537475432845532933364358238263308725569167071806252442830666898620642951785262366757966826638590456841713108274736764731372154519972868831454668077033862879152587409442813887285182531429826205613525708870925422043160739428150360044422805304708538090247756963459023526516617100710581099275803232894078188800425983431451733370741544935155658673796905952914267577924642724669053566630433854978332704678447591305176125908596686265689440061928854816792847747294032463077886732726447552761552131461630443834676299110787453843722725631279838350599546532909607952793479608839935228015440422042844088666336015611861118433365559733841332988627670605544384987367111220091845626938070149364811294238876932362855608433645986438065960084080289308513051432346760810821709698327683799928272808264597393233428578902482562639787674755672590781955172592765860944263545749877184909578235605059590675643932474586357844083352539772753962722770588010717277168680955566941791508687877991255524366547046701491258583108066454293619909470423792219842669982136819757162823387416096863684846538551378126858736953072154763798755170329916407227541029975726757100281491160323190430753369720577466278410191043405324714510735253705979954683265543610561987534800307282013689493224986676148607506174768347265244341150838278289813584040324954402509908354459361562077707558926458502822523308397162074836537907662261389689903403555946779700750719750732201618658938233130840713993594904115287657097808223029365498872086055492446807313616095230224928895044575898821858932211602559167982909445933310427416825702905618207002539807754023939505323243875199983617495791027944475571682159971321488853763506808439609562935020910249678084102636413550673566395384212199680085554570786556944838345347851106107515275268393316421146128578019486856689521851185140231500146973686504320210030036285336913433968737883595280921224226002050285519131655865360448877901732549294852476604515647851487130673895334350607739607911914373685080354842775410850295084725481936243082633712084544954903254517109309997677655912712970603519157258416216920230462165958326460239673863048056844954503423959137484144381504701779835500267147099092187725694928608006277694951047510532755814872384522718105955983216209710493350388253311123799244999651411426653449980589989482138376304838645488721087250474974369403354379693234693382819060894473975373156785735049104147208196143483098785535727308334419234212017290236884174949369995002381014724112173335190937913894807864067759787311331097666978072032636177535148026319134605584007329861969240441785387023578801606514105803501522234556964561158323786417812461567015779887534968363142981211522188428275900843391648471623837806294109081245374845072792491907899281446944643547484615131311381231933322819367833082247246515853214518698571643577971778044282752656574568462708654316599159188247415654414046518386530419541221832958508584490172036108099544478969666901346391292643659737763934852899385455679736256850365980787811107995221957496071686247165783130183969709969834680883149242172443194574964891678991054949829423649136215662131040653909290842798222824566303425478923070026891245563881261442551453867556037196291907743377432238237037791367347438872142135456298164599771031941836830454200270953528899185871244252573319260616965097974963340897306670227192365504628243013172720480556883888032875739915252903410074829418177114224072484861667461152024249712528689216877249381313758638688709881276048265803191610974466678062401337476827776068556319200245974194998827306781857156440012783429769961284514004239251939862216199170066893728474449823775782093552445950999817977476845577285113479291478623129360740349541952783802033105571838665210829770651226539345170269509137718874346410269760000195239907326536353285020676226045070964224776672657352878484942456312145325499122091295692449108423542410496630573479676576519694187070891929360284033836317477381564588251854113169742847473154650076315243167830712865419249175714036430890430270748068975195375884644260144941033992990876559691050091524991685878479926165366197704028967767102049493581236360265693082836834012933536563107728556196243298736942345284725412831827978217365375523860664738326178477076635395850425020037253288390922998476870281803203519867994294404812028614487571536082958837608747319561066181106348095291107853610378130266901934283841080479676350691998502435450604955444957792136008705955201484916507010993884472975288767862141393665644370143724629113081800185941168176828679557661801891308582441231533010200766142169151053575231915516470961881480521102097747628611520301971927723946810794736746996638444167119550599696966900761556887928304719009432255070846225796877342281255511612600992053974495161158531101584561840590212871167517519997081310352996838695871482962254927549137608470692358871992447524494110824160005041065436990363708769266393378285883352879680834973946595152894393851481635115033707873799802191559183451144156533861608391165225424425007397782677431694225292801026814869786092727979458142090744135323260896756068619021407861879626354002054107777566242602697105731636923107145058550183979277105291536167249871427656780057997794630969683206094180567978445253187388776773155696278871913096982952520125239698574707418399323719091878767993162919370308145812778620474706758266015963161874438408337880603586606056410225986091749934127951782829329601741832172678866142382591379852272077983713859874688600211628858662787706985971726857615954970773112151140002182295097742455159100339700580168390674409746908444353130820790553751596073915230152171840214373288941222351364392699118320207315363850973226955810686155531629131157961526865605192470467919266335269379175842779834341562824934783192265436504264193873818748384411958200608346015142135777962190789181112462399986105618918664615868268233428994551565571710617636358617205458281493141285291955220553837049821356880589919143069093293942830914470748344407815107184156125353275080608872228583666255056691616460488787011198811736783413347164153931199650586840631368241579136268372422678034850157051118027663690510886184362219626852235993269305195243205580872889118493220826564406286813417308399710857242722444921563059534895556255725744761159421849855232618515459824469219935480120589746216270165014085640142193342478134172270587121042098341981661701381548312385605030498961335162787316086489789092239060346957013260403492322434218211788808435539650284903341090028722032319122451898043610966136040179004684944379191521668575372164089804527074145076972893734602426928482868908933213977459838259884868873690751377314852596591208500996022255694294084423272457919781523240481879402085692639044345306488338234090419364890449649556650825133346533731767006094331138554135497523204719368544052741091508420150299380673533542175434726436662755607486966064099925109917832953506257840461539022832966844063111047692113798062002059855012959470614741287718928764741138890381734405815318474492629198837483316363415773485923797414573035380187593850924921684152772224933959494002766850111088689283549666944638570926432859533208366911387108325029212603529215930956782022403660405510084308142717838795762322271805256238228230173514377547051722796893798469781278042886881053507501401151114486584197617429968961961719120284635769934050122660747089867983986875718483238484234436340938472757390971568711419743367471845152450196083217355469498289110117701486951139982538798754201064479959675988853042527967957596477839519015623704772996935558699954513759974772378085838547856817344045959779872984301753373280954185132919449123103832933886075873333218100104895202973055742984368037174546260132670333631310137580979818915740638307743650841829664875997048615827698659936644780882192546954116685656548342878522728765698495723476663965031243668074699679562608083856247400944523390024537809984299157592298920043827639241518445407341990746770395911196679335802477082928978043173034278173063730258298382488145801788906764774396150634075843908449794066483359736632242858929063640335774567697684791082368280408105069433804199247677304857686775087820523666969815831521726547347422342011403425738994330708943065595476610984872939533462986316449071417107359904773129626912554116094571341235481285396180071736652618555768377104713046819406049748620801349901102368788781849431815943337263928591981862234063384553891326951918947632323448427491042730578109428718822003980675642670216280932410565359273842271457711121679679158411121809435154534953281676105102103217752568384531746800191656441361736895250257847530552135420678926104513724957196128346229211245253280935067499375218423451283828565392419090122774518002161442716894408478903972661112288926895713258947061608928906266199201624005167677792074518557151831381207757286961672895804089873451999925128286339182241416101955341924708758241165299521109488678172425545948722238165133439072482405981081356653663764123052261627371624282325776376172938057376377580578473990417800676480537953768996177441530038615266111294993502235252913597216520660394450579639391588698215427096249272386909422098987841334561460124937946452024936666638858704642319962057525456403362425798824834533789480950995561970506828375508735581595652654372969143984891319907859807475367120913092112343602254191285600740689951874038538857120978071744085639988837371478547070227841496863378248795293055523098564432573815478056808554370024510471874874341933037481874937984636396073394607573125408938011805952152813858982188978849736548312376817214631311408899704843412226495508112188007843169679284495642468475906467786247963062258552631880676183845035948414307500628193229313908982197971385927836038904865120096192469120606260249519792861258774182858148179261828007536145105065987269635555195947287884215232039916479716492224558469523630248638385347506125388051734066132581521989339938458044163274617884721382309316581911038128071778529948654081715770477277143400783470889116719270021399797988316448685193170473660918199942879672470237686585372428595142780620818462647564689122448836923426972069448532826839713369728700080933365055192578702897402807304330396584667731734340458801845874463866465721934953326711469051611703614625998414631209104318719221206708895445056850706632040561104567496526280037576765583155192533148273396233401237821244377210565703990617487012008203609109925311727781876593117949680254917445772540328958146452212663944829520508986391255234220513341558022546210131564902693834461147987631149162812517387697741032365584814178240861019617178859304808411803161709007816868785367910194712485309138364634933015513949313349270903417482444529840428662999932819612879213550308355922754982995077495375687209880504829629186747012987050779317090226364772269587480102792880150214430844675457926747499001214574334400752289938596410552534224260290499327569396148635731251422059578895673928586406935282824154255051659324611724596634424993831825275161885041615660964363576021849754025657286821408109825333900008197422715224160576802166215437428648422919011881417917518369855159451973080559466150229583155709702565664430841306594730086994571355155465483810292141360334006436157199205409152594624852923497102880194443893756826685554370040116136328166962103644255041643615608012468470154765822369540577635831708754318697578374967316446346069528786791440019204677440925492412066502523546298548420471824876424333578846775854154732238365333566884004140085104782733055908497938568929981366860678242455873455151324699864166212820596164692169595767150558942596169608972099740574145496271116763873427715978060400394151604734210985548423319074007413566996670768109384915691927757493415841177291234472370950413524697664173409345857717269940779686343369892590805268660946091399242000605515366828794345063929968469183626834355256394723844739402636640471002833296256014440856336190487136694657630244631433626037322732845500221915624787207285818235016255492585621265932771069671848311432274827187696854422223626048645759866312146012438332155984504787037994383437899108761953643448038369479622376497940868607954355994506094306643483888391342481853844391338406147078752147833402531411292855953375925335567351852951607915616377561006568377646797982549020117498860009608418531811380115234043353650374332051266725490438556833090343812645530503291562814394602891689478143388143311270935570720337559339998643451472783048583798883401936470283357224967434654104426723365337165014658114361155496425992385945399233435504668096642696892720160980467415349831343680870903107762572387466076837700517352175097968190413224861884800824357243238927622319382960800644451560215349727829921843240226497762066563211930694615417588459745681934170421947455088442583232442809116200216768471012460827686577398092947982781232047249756241935781111477777786498534044485805783028828117485163942363886323870711666778202969588138814142099536969127147406880395490659103027936084409817405014761573090002355736702410079240902320189638170403187565734598313652166989471327794300745109122403075239047795945940711779595052686963281359326609339171435797452648899963471022861345704010397023702903399585509591674437849357206184045330642602677314186147970348531907877363819076731028705083292823998759875865976871984473769733247213772489572934671239739914298038981067296218723670739707040272111613845440266536491512870964271418354469140012537400384744443922549834406926373507189411816344936857119327078303527862876655873314051500922981546019041715857282274792415639725795845022957153680640835933382263932319656757155086726763469804843700091249842832057112440216418657503448304768460752346663598270204166491861570522711486286178615905543305021363094063961535469652454076731403764037316615273722726591332331978336945351962914855333382890742225600791408393561831395234106957711617354772748473721996915890750027778621006338804124809402805478316934096450314684380829564960169898187778805964731332234896508801148027937551770584509725221795813957619790390103018693580482774513037261408055626736841778281249047238766997972681917954404863757605020318364550197173588682452961628172806665409946810127573349608291696674509785499898708532982355901124174593403663802848187627417737167076032235261970105945831955120620240468621040854876831622848980509030330730110902181074191918393374043953916760076089458043270149856737482352226485045959136689851312590248244796743397748855514241974539350889727766315503471755480483872879141549336196750479468998021188035912880490543118649382356940385038217717336987282151432656420552007862977086940322483076423445839050682761154461495677500922037216169688364474340736115954881826424396991606031745713038893132358575508403515008943489748007295721888993513943293051041504601578335331937536542572176280229009397322329902491109045496039396863046147192401387456104954032946069604955100405322083076348740532962887479567225884960525029175055569881819513332470501248806864496467317490322946598655938986353255181296716941711175367920275944755081242986897834037872577214328673239270518145246702134100145748878338736603049330247861105664663996900819790147502556722273832143513486498526971659246804365605979520377293027145129485871142844576161632022859566410221198218552065168749314813770818296595157612833612519662725578930803883930983107531272293305054435873229872212197813446387497523427171625031750154146150991560366175117782282969493695725859302211349159783179524015473941115066434173168587834112522173033683426073076549412379661542195582024968360885071521133592814170773645454992608408449598309002338077368744406938734232950076585907479752020770749161438832986708854721547126564010197987571264526543017264046515138977098547610700887312632382368861539022772322659546622145533484649212348001528470706320776447953383152783771508674369265785062396992067794156095417330275454061011019848293065294650195574182204459070231962845117524404107791188702407581781343652374336168689237621063758458494382951913367055029963944642398744224144003324657526477052191389971213997137018957015832785192485702427183185351473200746465143252900982356093458547351744035491433221417965600272050216238829413350009524139626539556768044512556005645815404997081274060621065615858149372370565519978060764304479191274435288122012643223719250177713716928374859973758867310695031992410125882684899675678430905060353330466485492950861718806278720823850966830464823867773055553493798491602074772238121201831129211342736171203681385098482010919601200208056401705272356557469866186792125983583647495200977128965487624083914741371017613845128410674590324929412377738176819205620868708581303585831378744575531579455316494886880902418858921060766385690365330656082550303351062336508693897319046412080465209007737857380959975790320220871364308138257406120171611200829284003235648207859262057257053592324149833611161050270202815595687471563778903918738821063227840306762624334553680925608942710606066178122160947198247763877410368913195922821608275682954215074154546116269612757841347905525960953123231857602892274022472800930828453143011975785364374768927243609322221617062629693073652776669387682901615822053590389243855496681118659181282118050069311085526451997980585196895839503631401302660662811253225562177737128435786639712344014986603936665427122655880410957289855076072033619618112518035659519318250736085765359659757370763133410587827532829370732888511353205737040620377423131338678445304988260854491444659859145926400844323861486310086299953859781924327282120125568364425664637261261334763952226710413005152753419025111520673782682863152266713783046916163750391870497888474444803880444007990650178783002653448340852128583422700573287317920578053990493113976912444872105859034722947776718368799974131115846548610611685073096861352876351640437294107216811768125104972011137900615391484759944420594684535534322615177629389211621895202075192717644144709667329361245848963971554011581203774942263603522777325240568122802869439579280912689765881122372625718890496628747275346558893594976561992993401407024458035414424225611605594621348834843094722850658835552600328461135701350364708981338744409166071808487220099351218208666525864085615494388083755766335876567867694815058435438077903498631735265840594345010166466272417102546503739772737082489692780651859857309113405952254120352720959895056071781393891270137255571803515188969630320265541750862798201539826425024868945110691674930255789235243255994235855418367203777907072988979190417995982219584282243728671056113965662512130739118854126615497863273032892214003365065278816748627949832424679254992299116956807814149520551662221656095606235935065688196672578565461594085615978566831573333003618547353182268842154021284824227108061286288297093715454486286171431838856884600969136854926477740065140966425502473255694017580724124871746254122794556660783639968569175346336408186355414998176591048294945394230837076598692173931325066796953674800600769199169861496374535713400232237876992811619203286612343575549501956251018263413859760175323851325649940332775002181280338528723975239096400974521560686409598854953213853130321125414023241898660345586040432880385369235182753641697710773609794903537743801342419958791970664262702826236237590169825314181089446812675480997762646280364886694998983844197227809147422355774518571533503593271489007247165967274923080185375341215321340103594088428105081076487906408569509023526209960430458351416685461023583833651276094555995549961983944808891352188559306172383669108889363552322880242551167383481066460798792736282611153732217358178190917715156514216215403226683899939534988029814775613497827467531043093731016318260476541422581167869753877807583123648383314327252438507690951675155167481120793748588508839285915135458274185756137652049511934419367381087978696622072268812615718037364859686456106895478251853784740086182705319742966049674196850788882968355596854742134209551412574191643953028240014331392249928080860244634701424774373679166918481369103714527442564322279294894072980818825578842085021169790132827612656839202989979502532422435035014055881477409033056354188646949739913979362555044693457911162899232067185334681903278012087815731581589830633498414602761289451184722157824614628594368855950241880642912800031452344509750012152980738819491863105811044126869863751478301693261642052336210837954821666792624940225035754757987717759848686889001051846338583533189382319329606944226237858940378919483736374048996001474425876861664227268061139009234971456413173168029875284669964503015573831300797815234801794755287647340728703568628987551001740890387034724489070452644469680066060564275101232968883705176233965793893009468976173344596764083835218138166121328600457885938839452887238511557394364096216661787866634152269061188925556988902630899530294861784179311776058394922963874480259678909100308776317157486431935747566168284285423879082869150609533617623073165269931477731292864096361459708756654020998550465352103257794836527800134244415626870087557338602255283631699899892309330337063144816585317487763202918930610679316276181684523085723154321998180337388851614160827720168841354229455904352774273888291309600057312791107716938955961867459664671754528065251289835524585374473694057952937713025138854912162049644188822377166620696092869713671479215659272041118669911011645393396894138350992630558075872739894867266591763155888661231340250461783202239300812889492647881316477790491195256599108709235055377520360606399978141476208667570326904962659279547355424689844519848489043729525655332858971713159708240442732627914500653694493219345998748010242441180992319824257825807600993589586418299588190481265976851323847873978798735469917894169424586683149507041280174962688640902315903361689108529917789544754889375422410428985993183116022724566433325121476477331712031030906263789432508254000632020097764858727228251811926889860622900357259899554149903396824545573372054713892872738293271111254129130592147093987460120001099347864379187286665423556991538809571349408973767344243604702806974251093116855310430380492962757911517907473587795277681797875851228436638774686430960311158702046928802798498611286775494409672242639533062279236657426697867255167882387942030078071585899848020490326275886391494520704339118965248722615065961191351174336815954062278063982308495267010143390313828192894512125154015839553849689299640838603122267663065338933236342735439059283860532649304188971979365850608784528007879779646179912194425582447296515707901361791192156316121031413757977540014966775849962743404694722311933903905623358004321776550961327670315298519970730644097998434766487889698338589085915974643024886118900890214014849747847987773249994231158545534423139881569027014864960072935016581520731689153265859460656825091576571102042990010915902973013658329747591223689612955748127255532950154893224227454606539254606949029385548022561115663391708848565713614987178118351874366505084452452827869781178952520161195095347004958335790378770778875670676367542808253431172082466795091141158797924039361077136466997263598311607291403609127508018661787323725625347293055673502682417383324656268472181164257680082933922639734824578144771105379033596679143685931638625603635248509213335901067394535748737067780833838279174849096410252756463493570084643191413799570674389507247600836477301641636262930840684691594101071022183852627285529725518319405849342039180004571446587408208613150705732346249195985545907489606500058684925146612263283217037577708614672630710042945981358874281022545653623173924527084422992770239168415150673847700927228805430741931233478842043889425937597044477648100297287283904103543247612881218855065787198510596758871350447820738475421955261499509169827462222093887974265375625425641652080490708214501014374710658142386413793665762366655062826303452278762528640085774784498881998269732198724658912758387602003011731815081355293999589851503036824607872265173902026099620673900736616181549996882275302366807464713039508161933915021813712622111233706741966395780474914289450693899952031470518315811618108500933816917872516623366014618748975658619509400267542682141314770305714613299112868142787712713634320077696189094015442745944138760199232005940779344412705010092834613332100131056162177222221111751610227031857645195697299549110362333833743681081551469080594433231378307509172463070010599740626629845031866250888823989805752788603393372413131859322572926598022581268927298437797473773355940006941794946954074339241201036917533269436669331364090823471268019425884270278604593625654529740131691013286767199285915706465935456384342783768512760764929003646258296471080367112085566536234765156226341506375498434847779270091501420259857831799884314536692963267646693458549026115769468821392238189910150624011142213571113683482181128476756728138260147950491342802362347049659828495888596274169536368456350241870975417330400763374079766375772304880981735129993972713400848460191827511261074118923160446411600910840163307990332433945527378456796678676536576588264632214800642886161848437266385810569455663189565653879357894446380607199251472768396913530966172593230645202339987181460482992556443531555173119904894071143818934592291757173287601352954295969593099227001629611374866574221401569298849201226027359269432438438569938032321339712173783241551827754630240608017813642364975776668281783716370636520148295287760065941408786833339806682049954162923834893586058871412952822787320196744776141311976476507611804703238297353855663408713098878085014630438030267024137351942945970573081805584545681548728558905013971162129781473331311159862090261346753378264678728394601795963414550397617142635807606292344425524896621447655947620719148599851156355238531119322589819947989117336388832316329376833957996556516761776438313619337741107639256698480887644846116902168939867265364889131482472367115262854152303533849205608017115323678735335023932576878891571339077588094996995382340633364420948807602964445272337105899602102612582521568399161184480356380489599390444309307219249416560562810186194499785609573854296795467911057121868498752526262022489142039857448265001863078947170777642047755059713175474394084605816254491839592297466434217604887217421312723680477316286194536176298382272575711611387352185747590850367845367556805378416644506864979541419074549070518781295438135955772095419649995382732150972371393450889829331706135209393860960246614598219008873743576464908745852276179382110084939080040837520331906166894812255404518196712025896704388536251509553574377769863305070713873070829288475551870897876478062937198031838461647735424762171235636966914872563538035317563935811092138265176325131494880922504334040315596156639822524976135279507869571323452437011333322925936541377224914251132790023293908397432698926404723926886749301940443018282938658337117318636700323217636504522252151141086823877054226561817370339673914012617706908410178028524818201925686674322952259960417916732165990950450414669390499192719842609351605776634634305346706498778580805387366504798772457265429052466717593771188316389688363279489329651118760537020335110613374839127542966955532795267698824441338107614703150451357778219298040020862079226084670126898547471938097703940510488547188696302781281199007036390090267078804664939668356127015822850067822302547187876894163798587281140820161498564005082317146008739347941593958184019657808842493364285749314658926294927726394645075913176682435376726544362812266327804785225188469538621394037758553491626155820437116366137567074669381740222496428534338619569298013363712252174531871319594091174969270083629530384263773734629866273328817951871322169283723741424931280514525639400596261747868809263451301693684237787790814804038828021473735684230258419366551147931901307427050966459701709375156224629419778685480396411590764128338272269475337228884531306158227792231395465702052425005342316556813444146457021615391187881688103738734888456674689343460809981281274242949578926952366427559667611607853383742396509474052515894619776109024064445672905399261282921878887191709535103540644643498444353041056344175785861609223034895928224501614516923496307318026783431335983083399853575870712435458530506790721101265388245293111654510166377855999587896328826879479170090521682125245833195429832619066088225384467767423955837702907953069901625911343211238133361472949549312723882469647965723818017875703419706984911865060705978552647542488747160344059677043541863730264955072029204164576980681801012743507232921633088681189054815355947128514979651011167924626531607412298793909811600200898737756027437950094752293182565659746028557665189732916106788297829659535204748292398755843459783267338835302260860847532544430305311136425913204627908377941370865149627339861674326154686528371448064311171166407321259549863628901130883068185989861876353818626998865071846072161964170143400905021420139999104148785664506797255864657191956491349167947125646576519885263184164837797180109732609783398578631447118478232160790990514937729149594404532328448430191032749727768204231262573453698757283800287942180998727139258751850666708776275640720677497313740478436061811924312587159073454233188363963581165721456895109671081610521634968916997352300595166919117159892809076835342028200729232927051170657582464045995798869036127062186060631695263567638717134910657666634642916597493127697702243582299918966066975813588065032897831436439382661043215228152857751023348957435118741266229932589740992365725924100889548235794113827939324484769385820520252096211131756939738449184423315326842946556508940212464167454453503619380472499941613539601804180213809880482074001763342409439259368504640486408990897642756263404293726821770981422953645803770878560438498683794436593188600292157175178336316010268396156287229210495380561081223331733839352209520774208898623664948884637452805910512676052046105584039930157640094369461726946332721743843299817360442996497174218262821441909773454725529752197662877214484869327687701159430634024374365870037110197937353410937355834305870146143311406859085685104795099450108079456106518062663197634877901691506408640693959323900384834376041665856434931634624807240745122155061747676071238354129565908786756240574424272093066191891223548539891002051703319488406772760136793128462902024855219571878117699796777681906003544984714779734726391436608488376692199876053346405676997012583360336208111842778754952772488132689748775496314629554160193143178908707401848669839477725277199785857204285161624480467540219476066296998691077985817102169362446529317367646934422779969894293804478300342314633183722191525906918511663708680671187658330919091698647839759139809625727260737064786880998345180324476179491723641179635614836852343218013738014017928050991985957651697766738601289882899139249278566233360539595232479732271498693610074417019859262464001673041166306904697108831466853826677486768291065934234089614448265306316148261757214774575117227219486889718953399065092723401158399252135492096494666585655933732947116649694609451543085651529369349077062025569591602132727300981373159438319083403053713230346607895303429582717401979186490055727599910208456249086231087605295047919423485393844297471401649206700193110595115806962141932279008300585708118039278791720695268851965746120874640237340101905857765231676573003885247825296719967474609759078937762817885486380279133009361340582893056216801950281406553154562447923908696705916950899983640099447733323378527963747168288031442590860277529598902508995113013794513385274169825609729203946254632221210450561299086976379379207728673793846381418175574495151114318972811565862427283488780869783918589863045222977813880646749873622934761316965625854088292403608220149264843703248540348572426628243834643672268839722319103357660552745856869736929063427155833264308266922197571745432917255021522893962861197121055465665707453335581549171536423081194877364734347826982452934785778933547978818024205232628160186452816937423089412366726514111139609590993711024532098821195643260151890495270170172194760402174952478143333277411880321409016801737309985964656739257610730543513577356934431460511265681977325413763834372838859722359736759052013022732437685207032105955957440985431504924534799562381614860400547166074217166276747204906718640382351031539609266331930191627485963156178616249200186403700173928933842128599695797394433857337416506142954029826038929075159522587680251281423269736436926781033734966514497403276556625095517490557125950081339838157059512044944915814161370184117546298301765914427478995905390527108125737189591226616452716967917611961193346975917805988725119913392562054558700922622306553936487146117369480630763936045039776463752424145111568282625907446120196404381332707388089389717439583219600132702469870311765447843014679969938937711947640085286263299725276572701201698178217606593623665107280254817730945738373326108907859673968446004753149642966634821420403196362638022940592535707723736364882719596559410529841320724242561982583772006408572031583334465993512322187859281699815362542095933104306211462088758494377671738178842968628792591610909974405302267359534306602358119823553965300143358671163482733510550684628542959466719824292025484551074386409815872177765179431731462269738016256781123944493195120398574138705019993450599651487607250119412677894367968025195932970653083839304260755159795096246728249869899440091260155783190076334239542485543612293178049880734991647189066245632273424542824822543660069479202404405925096847884012699273977880751427586239026865383298990756793754964091615413858392722372451865260742756388658257210872808569263762683532558516750061666600063846872957014854806300565795916246304826986399121196883610668506154875041143696643966186805610752375315462925779930526429899907960926114885927252097823756957081419028678552583928389771080870515179785878951354639642841522217361210661649873764682599634276749445934997388838252787878869699709687997700213094977288784490017921376456842967023858075717371700119775997287373435556925576665197885758504900424851292550777290558756801167692550704851010026458322763435854471681572216550951608265999557918712653772170673185601012287558268589303113911852096236237304934606940770911150438593292458654153350223257637783687367394354217975045002871730321190627963132795530883998497925818393007775825348189098963753505920225289459594146775271315709044461858247405518190518623800754282441428776792289017870749644292277118391701312791847114644629457711296269994733347534215799036697837150330512315287401012407481120325074970518805278487523404011731024963989093590398991175309119650863997705014112825343422860010347762403949189059639940867310154893616688710799527427301361063376760441012090469862973320015425888964530691945328982045191496818847357274210800211148279692656606561734354206927628798134566436867769359172203949567269142050019870163782727022954194227784452524704177916569813950973380416379660477953468370718767702198968843463977814619819364975249985229994096706945296772198038281763250908687017120978285168102040845748582088389913528956546005923038636434134377717437571498045303660953693925397713632453202574138516358089992374552979717477287657450963903282932482138257399904197449852661053272666397563048984353379768699594813284131465895016257584243859484379281188777954980011594875619561082392898797770912112544533972754650794789169757302081439778638467126917424245698788506600261858768070548704348326442736588471723179695093088626346012107781260948829575621799124145551357656727752865629136842627641954707320962945772907617415635263621119041985701833960548354326654695929659048373221654517869681259613679192708805987291636765478817614272911986798593098321921723632869272853654092895747088326438951699879257620671291250153295820001033822085576144078474343855605510918668669294828057917936154776695445297223944975931865842240229966162854120102168668611190786132467080649390397844752658263977411436789251319603056535484631603486568117107420812572257690283162638138362904194685292769190851722785034459537651954213181936617060252508791435662878726997017197032782820477317818710554381800056865251107409146258109493512315034388410680223182571563716782652520379348764968353092511799675571855618484825554275873764450541800752253633923071182934882107514353842229951595541955892664635552300742959515323776581089675327279179146932560622385039853369091454651696827770203817098444819057790836006572329898614122339794481205388262062564281407513016620211124485607806150748897527506608524089777276096530211325748852222392419750650387836144012937332353640814321239701708565220639016920220707400352815866413176132443783224082417526294411571884483149560124803843305191659601893253677309723388590793746289247947115260820090612468626288917780650457531459918214898955665040782191046094843929389432792412969442424366833502186628687445858929550229325306517076778651893416058544889424318676342981583341368297644639137310254215247060729605661009123340402162574521715106420915642990736304917667799877893694805333600383718166031531248488098177485019760539024606194419598246425856013390640101777225501462370907256820460768914860939467771956984079090254976210026503344481345085627334192120586649214362548046420145164318404222010243754660006141590936937649042140283406172874903204876165929482873616752599778315294289060898351858927494083314513517185691816273408321328957196861903359151862557657920656870119670651162378977451175442457301743166886242886760132094181582192607085219128811530242924048027815655866205825784836960743454473398547872768778179413392350158596959185004532178762661253856178064112786126251669449785200037753993410146323194834802170994335869782302392480684692533958166186267424013290923727463176391328116524260633747481669474434243887334598661275676527353483900230509044841725080237449086821015196499057039466210438607133063952270557272706190232435985836078244433591580865325243314022021000055791574486443048131366100952412246569464302418814960087791543854936440996968401287689014868287460103894262319981764972644220874168404455305751749190388193512444679273353876680725523970499840828983742156186055781675838565913879907190226166045491470673150388316298860417069405565971624500881898242772533488770625208863289373273454312199014920578711762252438848142262877111893047239907796196140589230150379238564709352259351976206493573198913022444811691430405268806986895839552272323386964282590498229359280711518802736662144002915569211846574841913310944994148366883922468080666187627686854670556811442423153794368976793644524384710535202797488600395425008158887698041332839453384417670563383726321984785934319914626876862656932029157627041081354428894482730293479273088596474535520591329592567975969408326134618830978451597669274495907836232451067804801033197765409859197609461602183476353422896495052638931819824875502306625197643273066694735586532070556723366821491176457090492296450363030367722077492491365726370910127286129473101741813726346370403812792349025789221514277986035679012970923832929861285739041804959532857461532261730521500803358107914789058566038772364696362649433104729966525654763271999258527750903233719842673646222892956192352253006707130588358511954729315425786292059437165977134017462833935951065384068838385178131813976242588011949843918525584411202688444405683453117649262028342401082269252452875046469887775451370090383916605910954338364340548469193241247806265525189078714905469336397967702789645210618099405190937295711925138705457062484680419734292049849698948259198185828947912057718055152723940765829108628460568816613763469100455018277868388604170539886862856105352877038924507151074475596522876100971200822904872028048330167999214696577352858498773291525903792467795496429718108927015288428223423068248363054770710584554939020156108206343740494870490519865799245128710213403101430050089954469244501132555183860168483978711200517558339373583998604744149043125608627247529789894821206042184457694849822957265514973929940490082353848792650683069128400233762982359611117643478943057139798591230006861747116465015527241964355360221326851474891763115255059096106742862748163296784347267749469742075522288545377696508898343845367912426483491690316488203143404675149493056027273852619308334473047574733945672068568620863465046568085737221794281788795188514922069683061388109718166394069592925409621375481052266158758778290496267573917635051011551377715073787843205532053240173748921600395356213828825331758554648729160766487461307440688388687716481210919804105545127708096556453896410304490705492673844544025817092306992104343792205958524991341620794010688431248639103056789710174228045550296131486543240261268036682792739914732800346938458240227775957323440448505616988894827317570631653897477762190097968363949927021285556703334925821216968347060226452921168148527604650473544904978265812250010002199675282863919454609549603383880076798517713965354590059012862795719089251399095597533004383723674532261207688963028164330783808963716832183679077776060981454341229907236085504329867313364501482330490740117202272912754449070097552308366323468665269722127717730651734778074933317797726890513714764191988374248906909823546327860938468455314475133414103805685728413713625762748394443955742529413251857326906061559653607436800959178549397841184346993807779873747517540026849049407126357524376595112836739432159915447312034449072700680399750634665789246190349276347390997092572400939140447163607485338990297646755379174142380239741620616480796959106641435332922181573130815793836077307277733605312128009407092532473078355028373471368025081411184346093547841756267952444939093854738712787711074114230887496810353802710016907992833880700951264092544773805362750743411357453150631382204937362742243227928379387005124743900898222623533612455170264876245077868768511955486877421592181532304708296830725621945749885356917809488054219346128584753022610058009918126505276754349382765889215129407259174225148009656816523795959537120695498300499878920202383316938180762834287329085888079780473353830945781547453491383161533643276348764242065141666642030100037796730488948672674471338848429484547375925768155965330875869331990930399874349762215286199993120985001188261245413256849015037930433061272127158505107432902050188680993042373671899508629048005557376094372478117359420250170912066526296830755735679341068612316613697159284977208937097320006334215198959887017694625168265969754778782856557377994100754768307408909376349129026647458496478195438426907364405572905906750039465369268753991940391485499534047791104887725406950809547373482453001959044704231642953645709209998042819545414840441758660128598299279937474766580248771571772489547888167535440592137150616405161260522739899096951348082652785546708509981112572058044999881916946247703287446398069972182279053311950869116356151912157168840244660227484170688732996217291435109520731647657069983999006991575416217919768546021857129813488795282344650800902866528939936088442828553380611895356925055899274199461089986226707406622629730119764214030966269584597384959360853539561150971051163678900011150144496773924933309687742721040131833102233163647714885163213339607623074142227517357378141452560860172927548713714620012835047525394506130953422346511269288498191108146082421964193915655010593497872598363480265889030086449584041486372155746862376090642223291414336704383106166402737700544760150099507228024014762856762650816490287677667372206968883781620374805482346183161001326345829158424313592034489445167751012083592236479939824956439132869048552034308016383757677026547975490516885092458298924541560060059626492414212743335509679010987010836159970292496503218632790309789255843844861684124991572885812384867491347147905582612594838708991330621174415742913585380363372180701790770122499413058709788920064148049584202124311432948313097101908387322085283961485476442264446778695226657684783207689484895663998946892635725353958972387963581095491574960811834798064563550207805557358037240413117482037969963991991645624708728793574290103415857558455901606702981592791654773279688342816050632782161124809644811997678865489994346730299880519238506883992793614511793274259745873552004117087494469493531157544968827836555424101227274319346749671450332696058146937052171919305552139135575104607164464247842310900837287280555949359035408638258642669531607275139236124377507611293874368340275804097380059825118348450102940683860480509792597739453535577815776112520605826658201519132535168804472638459155157874606479448994801901103714586115867293802541319727447267970515367246031426186578084110035925158641255823940731551827886127602760216126564069508780291880566051688382113701990288152682579829038024316166926045543158991744432053229292516486488207717967838975197979311494112018110828135894275441131629771233368091447811847453380805347173998361162339562638299908824980673908121715671716935710430209217736428626297908302421959536413684938475783013991445213370991908068815173442387029110483116744052769010851654489643321486789253669242218848162167434937251933049653769010854530828810723929977881116635971230996278632904160223395134319799252622811327348031212379269634503112366727861727973432066664144783270863672799078833378118912593351218073187071590988155996590636899450361052397837997340287370964337646917208335043714287501132250149339485492225810427542061352310290256335046172381429533846188844334802223928502187953185138232926332541891178200340297654035032678665061013926878593245222844502966225415462390109882542534218422639759148964754413975812234158068463117476224046285633138258831734811864996318218317322631425832320892774270259588692991205590532618517769439539923513592782947102099796851398245636918402963255180275930878556157513099242446154459527895240694232757537579720415560224817218303633817299454873852374574405625259977466221807154241052735485873442417274023597739319616871430197602501769870999790497656452170572864833946398331046943338773635991228273367616346274379599126382671255304381530169276202150164587549692321387426943392309439756666497538528671334791840908309845448545898260132240874659973340975648234710259792208032674544558538812978446224954299041107464172623490667959036707160631700426781064137066687389423566072970022627587093534689386197424217117984964921991043637716646634799441830273236078034562252001389384034613506750679137843363103530089289333260668704381653331845407810453204528746892797692753340443386141207188384113546997281370549988803378173689647020349042116304292549570209338943796168498140425615082403466658082073029043621580801112865370416538259552015669577169780329544086530502747759223578356413405132041496788803010303038243564287873044047988694378021477210591548870433853836023768070471146814591163692653761380790585351455965068986112328228172313120889833251145770888202983461191855050527014535177956165878843503490948186595593900577620761526239671887999476085045891344022693863182784035781686555169801560966252009301705651705049892776890311975232540704719571533714151588168455913497452873797222844480865918703170930732306345518220745606481243022166416472240629603781905463707382311441630492467169279488476778790604199875302052344110033333073304115813329334217623370757579612003221306430799327207967331664319783341468579873441815542873462718197954380459188109924865634665521968523199880016912360450173374814441487527710933768140047524943386822235011057733376793089769855865128920918378752684334234394616220124995880846528077135635132994872104042302785859383459205450529376138183212442155335398193715729476386411916296695738123133249318689973887052663316999153594701186598366730509506169748291993054021787743601156023892580860896585004872087882863150809851896032511046981787456576342680206200945284451330380163377133746537935120411617466592593956786263443574794126038562636738424949866101636054021300202268369765185321201412282163190231832378111091633471469885961966695786884832299295725831298183370833993577936321712139188654154254445208284257980373918491310356941324855706005565332521466479212338271577036458323095863710001879911009116014343527704761732912718101357455888089247118682069422491812061100846722729741689663394521781771270243594133430878468396966173277552551312496089310432761143248605649152429110339887980172092336775430790216280011290658803660283877506776874862663151353401939618253010086326030160622419279914189892537196026754747243943003054322401581136885278129901237175390238407782224873403916066545278819132133432409314080608080318376750651942554575890079582348516190698522906264707442243443716307150242434570111605969757511211998533973276189026103327132188891173032484737227792281624237318057763052394206054380225204516160629527780229760311525705775722097780643771472733400453804564114173000522289641273286810430368915660166120961870380710301139266431743708769425018806260917424306876376723502102613168364257585893552789423425912471411996057938915707550205230553669194696525093318774024543326489188259237573443464268183468356487475112185081304629395900432527724789332582649534321506827391048237301315802156033734923578504829614847042107228861767127392936130414854696568891553156097999211058216642680709730768220426231197628973236795368855269913876450874849118695037128759329103504867148354365675128431111042209497109508840500718559135372297500961788854963426272272578908965547112800751512616543837002094303814810512842741740486732139356526007792485471650672421621669065398657685551522341712441771581116577967404115337232032759450735877650884552514568607880903341386013247874129281289659150448670764604504604386870104091414646255296938634440675502631934765278610061044683363951750253268118091393490013928241515538180267436985304608909549433302218187142491211723490514524437186817545494414580242487502387971262520122187666207881035386424867023375116246667872045169690298048756723826795331406063321628648837273274018882643037298727317854359195953623910964635317607053032558293121793273230518119422524774287712070487015318028718110515598017534406235640833794695102926108852333007925470187386699920751427193884350858436459699640144428553924970526759118862480340083714186551303558990773976599783138395279473116740034507258994945829172932189069966520778718006163105051818906237295327639664193292244465566776028562382438659521387847521660274526499721170170690899194731067217760649663554571443851095000451280404568228325397198789391826124553833071592481545253977911753394823031996097441071153824098677524108165505117746316491925005294194314039675520479088465346048454662553244873075254797692308771883629636960814353099002978711980158698094088152025551611152509494406991921472778701461791008861814009083200232837961675937156445727774514304013835775853181357866958532237675711947364897999364820498904100781534186516436912588664628837867405726673639610123173715912681176447205042163210849675168703649912472669518784847371621815192228350169080261798360752885787038786165773624899934046635650093812401222762703728990246794506320092175718816135275248196957957138610313498275119764192978795741125751540476404630520368988423071222909737316223414368581895128699937380798439144784387263478806272759415860097374727689101518073419882504869794887571277291186912188789900391318999352088177152282784330194997509456303829848218880715424861608042739325816918541921808275873346075749055472148155967495563312635931433399276018200842774742150624652257858006473717450772844448748088239382875890626741592953416790232839484270792721215634137265049760563651485729009039246324735775657418866734070976242012644524681781618807099453042187115149517136863524006109125493995401507024371554712145065957514150592817664119093780997399538053596036822886673528779809540689981166102226119729951564561204278351584606275940966740233137366954385442977607492080859109132903147540850561051816839635964706187485167837380135963350440646062653004052783217057541300654196624338537917511085886729725646944424693683468162742431007411074345879686446996289233992772313794610619550291885610194746413951445383683194800677199177172920627271965289287943290868173814813667140282957098986185554277313350459373137681368299776743765496228690008318817525187069177948428005211102530092856386883862520861005284191843950416845958918672388611385827737925121863386569145829017872587743574186539506860773192081845705514370840727823921757595614404384203745714687424793421909748735886510411597210805799034340795111692829077328059263894899025438837986445601498467191100529811416384947356531707851983541426122736478916357177124549361663949373480148506107415734423665275498767498958480298533899336902089871131745269317014934862012836165181465512251417111377606204463270077727880151348337146321001814141020644241826300343719971243470820265138343315383010316623831607813430607861484207984766938206013075601335943956110664751608745423757076469931272322355653497430083628623085402755786137898469539842539399571668980351260980012317541186585415725260973023706265896231007173323887152621357841745573231725240639263079636916522299288315709070690266619576503485744783231946676008571317317281602473955178523570429801492404242127582410195300598183669226491338381872209152924815686488819460036265900697933602302915689613197818166766769756565977763239638504593819020225853959603128510431485631492194778141657952439665221202642471235337994705670237850718495758143131213751253381421735329805173787714191208660677223814104793137767370438787048133538501986350653024386918470356172105279280359617668959832978790136636579887473515783571320811043010887902274775320340880482299466085134940303412224098149241861301633140290184481009944380138701761659211495158780832166755673506637894532736064644996713997976317106181044186443077462263207509679460300499478887739679611510931809766151669338699088596613597494897398594823824503628476664733531176709351749695818082926326719391656624199018277876244213298975628776320824862001079898936451338504446081930256747471636651417001705642980536559866726057894045241085856761101598822734300583793526096316921810370960127773483764180080506466833220207830951018278582029575232811605012264824479568261626695811752528619506816642833208835821102329271075444550696444654925944791758467379483533509475612431722627423884987226299459623797966802051810015117813719366629903044865913260061567333953846230807950491924012703616465524679110812894039977591981231807911073380307177156084464719127354035765032239349478215107819498460298289884932659244469678039319062566975533786459112401036653366465532966924081827709981621554082827870558197383371407831297516140720037509267690083866968490283019468465508765967382015491693721602907809148028938694535163360196432473224957291763850085003583110445476963635241517126901636046321560572035427332478029763208343241206029141940887751938013247619049149474284771693759178096664500201531907800093967543551409001550357123692683895240742836937907744996334379987589323919355553793620680856120141536726804426259467126663556489771188655962751514756859320350080733532129300377140360350183236815525405361582309377077216056782744928435444679616730116192812116857526916987420760631443866531684928033777721873317043781662126151559465125090598663413861455755260258017201211197932643457795381246261138987547379232583954898238547001533218029354667206359519789527733239181128351776438974910637071994059377703027317171634753403237280528173143057931770704106427892569297970229692104456987785866898034203957144644793483109946118367355457301776380979761641663656674147633608324288494384953409282853104942130989519365158757099655867936710656850294874700871325987766466432722623194015629673639171364461755964998539807096488063521461666730499146965824014755467449277775591709589062665656538024639820935833938545157353954986000012756905243503275904094957973397599012531101285066894076105979862504781576211000694846884575985768747714318506986604731721955846936602590327166078207566409861998341930099458693231149808581247742560465464930944340346928139440326476080522123725983990938177935618410919226293843287080199966448127451822151276958612846086109471901359445715942979115683269023929898869771978030035201997291018165932744338341263839216935993639457141693159273830865704462580611653800325632369226691595283795875122262153552973342619548612460053586532388230172571390703464486289851275006864417652691111135366154747201108160353307147772561152877438747989490891695043893866588813810448250873468675758494046981215759866688735716423413606617563663695753795581225053857098697995371674700937645694442922673778060812746649460627224969623840884309699909007011593556517719082640456885487789361184446860840398940999732042619487212095312965158823064426794627588757456359231092098129463227235368137625585675142403127694918307255507434283612665513153069509186861135818312024826523012815179406016892469209830268265470814570317062790585485571306036422730580678878431446537643354061748370204438218774055571782525670474003497481825412422773370790777714759415438193304862204903598936101262339786457884750858275909044986257661200898579160328811779597797260970308523995281919397267945950381270240724526519420704674056302213041181538178172313282246299262268739275910213724744644337038786125801861615761187753222581235049386270831413956792388599552889925352071150193035724514314717328207026226192231518548072032818303276848831918605945239117815199921881848882021032357211025916167226189710068709715298987508846599679193952516205014687460507334130707663504801230912440995382271967762179121192185462338349324697798247139816956436641375929266330393203699082966372667401173486469776425954937686116349658217048024167324004525592203325022267087969495965021239775103668927472562677995344062234618705762642914412813511448916182517888863159419162968942466560448538962197632593298962680295158488231169701831589792078979525475993577760334984691370103424627399148739358220236648925900259270942935040225869868803473333948034961818706082324586750530254657006271828587900323544757942559805635481222955720403140877263199314591323713361748842097604064952810953969219559825849825566321133477121866297420780568266449672142511569539852365771146131398299923735680745104263260546343319025163963448780203024319407760689158661674530935308816484381313498008439259960956871912316997848370918017402811928146352822759813632342780501242603057463562754897043457638619624052090543059934129568030976232535083975894442347740689417758600455121889481185139711157097526976725453090338511662959498451640932605315749981169646731516307119282855063970478433115000920486281944728213825901484634968606942061609002841428933341871261953247869332760262872000987444520588066741411782245209395031230879434761895759552140639726020637208811721730039479213672192157410637158809459820372516170294509875743272155931166474368282729721138237823201168810059873554978562937465135474771393122710640605413222074892201223417960674745840538046293628854504866643545286996779085608977024159714485922800854693611680489987997576368147750872831259231700311996476940803666693241413851815917862449559355177629950735875116454731297504271898564937332483830085753131594453331990041634106587237487678774299558190385988344150763038335274581928469630484343357811760843555291536284740850946697302354913118330679054138006501123712082543899718593708606543099000261666003771250851902623886806101487476794354159060882118424375448558440003579684088142630842338294260919320009492582142362521861338544432626264606729229163729329913058673055801979885210344057860292090287298293867632543203457025038834339945074804820138536825840331591580205187772195352080695267078163492351274426078203030290165483566252458480106654352984390456284019871121566482983816276382360223585277358324360964242794781692285493660026403672302725026755810399898614352597011732709397282585274173573729403540472995483032830616511833116853845477630838662333778102802211275143596708526611929077546501770156410706011782002788530198664178923597354622820488012445945196807148074650211146320617773135083173538742844812796143168068166452469412774929569552313536771601605046087504704392766024243616250889255174978755978712765632026464979012897427014113365441011140289164520471730834933966774362338083712730869738413094189456914918365718581079342952907522449188598200593309833255900328991073551618940560210551778784558225016503782338038007537819523496913307790123468375482363980095541253434822716259291338176290861605021446096537664348200990988890329436926968947581960384354896325390785490519975441696915940336929334086260208372325251309244284735145735711680848797258290836755655059057814846807036265855482645801955667910789794520134412408590992633905357857420791785368052776168268705015719903666015840645125931524552678503974881134992028265503829016549601017621770531729983858585216411013231955477662333595289049399132269497745162417219307123405148657519167397994094060062790812976542904586589745596914185128567729240249863792608961306915562607458675950225423520035366502621343673368867158480690634194790894453715647738497727686286874528306138741229583748997713454527330239943512926071479583935865461250793667964312216320523138244846894961620255933548151585785877672757884005989850486960841563818456361713165735795028119242368164841663316571070588332788711567910687703125424010164055808869537999279253039503737036830192887781644809127534475964121786736141929923374024960213706011909343163996659090263391269856858691831959921156626328805160992251663919337651377795731683967328310356642414426425897478529394952245451176792454399143222236654398711415069819460444996887849984724252284632556070977760370214708121030673889125378869300682635098641508762206700947573350624384316688354620662366065705652540920393798535324132376286119851724009004318934679376124871837417538543319374289125429112968317163694367857715577470613611736408129824622979153390247639078657364536132704486640918970896422082695425866230595864491988559715763656215035942431144140846920121181751705201514182350526994174841952109546750637958066971988811276560911220919198106455384442000753322939923541689987810057195364826146704151063806793035867336614634332391179769859590629618189913382035450032229358038926230649507725376338764677190466043927042467325996781967755010404936500490913114565879233446814734537280194285169790282366898685958794530568950524503582183862435753874707623265154213612122284693595036083087816785217087707443148235506896875967797278914812115649866741618370437538590319639657808962071273809931083839384358257007236601435935413424000953909962883209308326726079579317185325568943611209505035807038479051810313612715204132551013835364789706614411602953875691659973948757686929658402498446019170539098948614425754312159012374404273295133734176076058358315328952619004543056305234181629384674429529909565894941663030137467045405684359036458713065760379432400948115499891051717231729796970256647569530145220414958816434011341814069463758492849538844800724476781450402826890699082698462792189433902015759244923848644915417754589459065910381755203078379403708064163777843296422751786169944329504279463034472127260761397591069193711719017973410709283260656476972755587900706818054583296981084027600435659405696851967419189736647370748687509322826573191674246872416540685909879195028664758774061963861538310571199416696751634643081422768967294087740703650362649658590255778887427193285168884745910792199005299844287577751455519150853561233123010508934905117302796953490007112738578097168829019540947896289984790614455028525304994555836562240694540580841785822337461696936951553166946529434005752789784007819005735028564839788069299442642930152278140346111364746579834675952914466079046938361768802071745192044891816589463448369956343184390360963643185187034099143743982372404510198292082092736246146472923478293769722137123451326906396069079925546287641585546033299866603308038252337816598767615857222606671666079732178624880116616251136006791347453827932635055230412701294802605772089956547388901619159332342657495748009696562941498248948780003824548402299665668655037839916212715913054617222775121992524813508440471656664161891981469173976317669083721935765259758347305440167574487723239255659292044084833749794683872078660871057825978515400046344387236289939746867663854714285838623781738249911966899903087489321194140699063723454202150133964201939369734831885705121477432911272338905472113904025459680104633919159590351795090498458621348731525317557270102416042621687534481831716272196028600886927431721048725804560795220906915432867495671858745372281078979622536782678297790101019247708573160013668913623366479586378913927265791931175798002645272566450248795451986185118594564208542103953017281798694584474716649731307228408204263973902272101137669813734938211982960324645445074881630386860260607344096922905234325117251565897375386836647748313355084798293787115728928914221284564716738857743283150096641835035246702985081234532015628089221393861741090850590680622643149226249047411164881742729028425875301645056347030538139206856011221946220499053619045914485157100827518524708344661003470246217530017347349124194764864133931403408369537234806483850520099996310829042146155845330184169922123959543025772432785828692555784944630528715631051941159688984081625343564026059669468594451319388437903522299691573452410629952729132377770461142666055163735594020619650541002213879879645208752672182704986815016679748670793370519618922591461532979031139126285879239403201010297804428659651980638495405570279631467889051845270363875660839887710472252421561363009485172304119815111701855707513555814065381373118862005177895418528454657321590822736110655441235703002746948340150055704710455261868969262580357896972664498187136859123759599450685666845065641261007081819954658473067947210088264738322568864648099445333170076945245635160114605111170834970279535779189531722956144867036796360166808981891038581505306833954737002967914006541640150650128332430299278059008862287111254373917018799798605164282624455603970613882592019179888762248112872673950241615686909111211780963342923269043691815811838880458548400916975387254100967058184661659561275180271587257072896314328423982790062215932433220533051149716974747859940552881637058183649828434215107412223883071351346840978571461153907549424914419144552928879030833328170435058117366005094359242425707018556560246805098522947725267606574913769646698816675010569120290572073269960553208710258476863863854141718476898539622380839578570803809503568509980003706359635495422198384190348994592829276757180817591864436563073784211144423265905462098402784140302595097445835815233319294299728979288367516413089160613400891150532712057813955807885556020775918099651040958123803120932725245396768777934830986794370817586398715050170908445496726247814644982479612969618786401055465633625740011326440399447315019739724403809260728999515875781740807697942291687490814459675574818171425145751080037982380737665916273422437910292642321926634723530705307700647663668297132527067265669476149330161237090686258225598303542040714942234136291875091655372807206294502572397791203580262705794154035816418989028988951543706202670716899940143409752144676070807838624449680922062314510599785011652990753309936107508683520583529527982056600062618812297732148340506324850416451602368630488611012611396485018461408178677859174917231200657918689644104364620390386482683757639302859659534485494671489545965301326847592917837720346212245681870978349395445421574915050311595401807291511255994686528994054311405936271216671409505617470959742626218690704598915335435141278730728180759012243694651944166511349852220701363667737150064767909965698731019798484082927377760410377213412010290430999958836460352724649437908553158242815436425534865796741256846270201896768015956919918942921555793026179856688983660337581717868401496983332106457116335778127506494996999792329457227201225360426262137030923750618623151902885745459920655138983623157938653876765360895410118531196158152444045712209017091208969356258813894808286930567685161636500320877245421733028809681841831538169983884797138229437663478023725736443202704994357459056399232571374794143484089657456104704331993746406867399813204775470982428486468342461417275851694089601721951232905382833314769824824332732277464211364577436016892635812492884194527634112205467517306018266482248737688184971870142758789874465673181863492067917557984286961658110131713287253846974432900469021571181520892878507467777312029283558343748656003715422927573786086698023032258750001677278240207586734196127060546139953407755058000320292236987021659924945042582264737404007930378614885230902444352728634032219042390473976008018807084637846224612715958540062698467265196092217564816371785272510610107008340066506424822886487047747367105122773630054761638506794474462830488394417533810549062434670022165390545041073692212367019598632290799704043458525204299507737672359608973943032990909433504064375262069865800340724345294562822675217634384897778328533655251564758247359499727005384489297819125139015603426782770224190538008323234234329178763423354501379052318440929944967373402693876414945217606505285286740382618302789593888272340462462933164624419086355593254574564392740570626911893127965056970356212017964661203347266439902273039514583353597107317070177617642158723067815402164719460584685301884357665671014280248957038918704826614671478544453054904964632073647162862290657085998874803014130162026210884040933261318489737691088367096919543969106752932309116893805054443540480250242836581831224712898184460277738319456349034390110396227504044322649909522460455192283004734203377084419410357936552428005693095886536533998716409336296985704166325373151681565943659605669824899022304153588886447521747240480823608993615441462285460148244828200710325004664923900822475781294969298708158195377420560771002499713559874764677592433626435536648098525550535030185576423097747863125357216657873870972904535581274512505866072324739631797556770294798207771904743510306028316657920128521923912915654423964911145900926071583529817558642374773633366737671813071807636562165162444676759925261831127231202746570493862377723278044241177236573414364365681426920210581989257436011550333145028108080708936925385641439583244683100195894244011418932397791248302093606800021195013307296190690934517096735239461399752600078649620255069620048893277962831474977528223626545370967991808354807267390882843097362300685400898149363744511801213144667888216249582256812307651584868389568915582238011405470215202270084409875957227331405793855788677739947973127823810770304372472201634819197125192209713976590393421160326854791615065317239909593817511618712516783835457116231675455183388416538469331247374033053854404551034055587948131555732785598748526813756488374485360223733550351714824958678324231196440301356868283866565746828045189475828406804510499365743216803752801148368210352978879423105909006610759570355526627614478738626055975313517753044907019286716270206593554732162499072823254983334731975386083440731379370418269590092286570298888258678070234470938774258508999164281532040703498542445437170969723397057609647742508357883295852915132476168270429665841085210673189183205717399302008598405679965138967875506282741290970451929123784655826890402544363766940906696449485452297333396311519985396241608976143602923215016312497773451303729707897005752642144274310457781221191649263795087457120124961888480589266465944252623840054428597580764951894619302306510376028672717173511768256020389170278856042242090513037358855749190019297802885555855255965274076797845188978866425429838590321554440751679796061261338871202789039201035588303961992407575064880203051259812833370660772970448616502592024338231377038441508471376177810839269134035659929884179357281340102100252489738849744929351614445508221382746833795777112401060960937984082284945738777235756457513216095672501915726002295855651679159711988699308392730742562991401850426831443808641868339739451013472226129609755690405488028110601611913686838745714518703472433454388857156099691581649059228615332581512520011511072768478796414902357242255622125256460605593700130681287767716654243296490697967652348096274932754860716151228626140371787261163073080208605419006568635972774263908409754504039395386771718851078739455049605634245830302808551818859244495351128352388811114197445544208300307565299742793911574489941342533788609525776395851425152934565088713281858590124057621385745139727862562126852520310688775873996853947023555848997983538875571206958104673382202624930475397155657499892700880802264391088223550660006049683717751072328121245153736792448793352741160879513707013710042886208293875351740844283018969700222738808656742629119776308641123633021064145337796745270910018586905277345411325193754365689404167077871908854584979404530686492352446858535333282258766954837366920999097925162483827968104763858164860472876699623617156346658000201239347428106158849500295243090344010749013455774854247759751258888622004609194035795688051885013510404707428100044106136367218280711640504682598372331682610162789113678596918926160278602521938546607597563559484007302776416351121463073349938603888295368554222613254406957127291820940534263550394988838841077863117875443461570958686102653996627468231229520784967787231839235193602091437498503928731396151275125115811947339023188565040667235864175690172082897823633447475830920585869162012410114890021421255975943278715856970862087200511421379230681167936122209736903110312550699033841729328617028614551623333288020715892844614204122767539784340256489146952400404389184852795181390511903578302455704279438242437710343607949798656050607856410465241980563264866546204797571186165167872084463394077643993061576872512286432944865909279745752475126147328003665375042086336628260737944442576372954853579048863676974639104444057272383367737198865340764954477396373288861135845049522655924354527551055214716329496504954432948520783283799235321937967327535713939418619172732579465805156492691214314179085863368230652683522037840349944057744310758812383692408178328095429719068901629314612193649730443567369588344265826090077738131117559646015029697184199605832117919620478917008952389025045985557276613768022006110689355690740816293487425149802297372210481916239917290096374141979851622593790597166164669676801802882180689332560345832385801332665843728548348178464089263843889855066055172887153439300894080975894584550824166235729888538250543186629336450861129473841108414773766106873823562137374829749011474728726116572144017048845262995088883378084821302899681010116529148787974477148327170099509971366547897393260897162560232703189780494708488830651494815732764643645050792987820951369774543158533221469279996861125836556654990483433725253518766997095300993448874640731209295781155128610842151189936247930644043774112419769490420219507716115692613278415367491333986076867802788077554722225944394457939584696732138048322138502955477182182848905964558180281646290595979067487371620993523227128996624445789719047672871114168344263601167397863959622565502567539451706926583384810174844966784785480534914183475666779343858506684304172342929303377859340035457679603323953810956089110974389236078561330310025989005488305632861420694090431106334971501407333682908352669447265575399970323170911008125321785193841821708575699163574513886207368307672171621324367395181404586884792511206796096026404281635036304385072003984074808163150204552616846196904662867410129900874000583956010031118510254287423749523134536532799917334522027873054242370397501866529900931313393400161358820973729110313523379672401556805677441769013640709264096658781582068185076932535525349811280302515314784598536623590804855900988344477915125089387899415171063899845075311541842843772769299350709653899053613589339939214366163941321795648387058754324275677660849001221718362907627573560595851625574564367477195251432736953591980092094771285623791153483070746397054625096775395256189376407622917876988120558549120571355242845979200650268404450371380431331917497281671210774100912559838209422092685749800520762389905976548905094996564520879663368374188481674667218048759098394281251863991146938280105519848149169251951313807811771192996903844161217411312553327904448243541430722168919396533965630468405312911487431747682343044500487898329294983065494853155750975814955207961026162218590173153840048813119594583291805956389150384162338342885549514465017189482213099991515222203676452376570576733366363539485437286190268326523939519343559294743775435631129913296302294469895538725417456753898583472785003936433551049549110114907016698644606520808561904009267325663470622425007635176834118617234915360017333154147220841221536506973901333459469576137946122274337666339356703691455685869193596040403277301664766746141992106333887517522229095623621300879063434587782647910832097432493837874604558724025904607215350263162853164196135932198923059189197778325291436790742577808775520070288305668869769161116908444158487098777392448488689257008918133320806219712989426641631660834489570168370631811773380144996982368856265320613970810624574893466714851650462771925979820303489704881896713734543625905400066276817759193779827942673295615355365679019439608565151231988547393228919508715248193890974114728737045150750169602326865753245871475696320357855500229915719507519890385194899443066814827965876101129923110532073457079065891202404237485641205852148460931383263796661847353808772276508117867933971378370438312114427816816565762163807946693835697962469443158341892567861528944038869884375006275771842039592855912996763710348068991241529405780998605796729634058635101850820229778477259013973135741496537939665904120315634333017030442029285355131522081758138089311466878722923241353765105768597018133718339422705033461706334464068215754458714821773190533135678150463065630640839277577574075069924711820246046016582304369145126504276805547050079143124873628288642030395148453440367375599767724517215974228801789513008344969501388000922247870485736792570094441118413619017496401523109959815707847337976334207808240910851464367301939674774957818246303467706202108596832377314248338255936312297877299830944210294908172804826557907284911205951115169449765128106777481431536098428636414927812205527410200181734311332398715968442803697176337360987683333832082409595859664621548045959864788555596842076840917713981134841384168933309078267991664988318490000797902418874970792045796656878556506360696109775001999418791790587651840239956848585657263693929192115833698822290491923317088643075199148879877486593830471611402119823840372755132781684871842426421615503318773926946185218311471047407106461233724815062455481377126756034386489941444195664755635424773016271378873327431824188245597662901135534702909299910985239292282580545183328693722167160461137961083767224158269383705303958572253261498438867391889144197131109169080422169107708420144491232129512133988906082615015073929356613531803175591349316413677708554405663779121339202432783903308019744577269515281419695381440224070742786438317744593688286667511510203372660220080661711588857724646210587545818842273048624162179426795132705202177100145668694736598280755307720516563944317724298320501041509954663666423988967265165236470549809490706635357958868442779528338517055144156577678292947345924016885549800890602802004390079689784441145933810383629118315406954200836631588210050100293741886789800294314953756055071760474218356244146897938024228359357862404900926042826986551620213786753925566766992314082380820418417206332439814653853773099092115781013940862949571429956752471321027051712382183867286180367798853370003371139564212869449721264197735140122607131922046471218002932322694927704260072402064652987694893865077759835010882428039339451034464963935252403029107700620238240264654428761795746060810266330365580069479064017570633565497957251206855977235749931290592653427177357214984972958370266488149011012914924802617260680358674965002836212781034010220435539525989797214347845057869380337837576220974947287380904244606323999652668512983055754450332957901299917499795591217739953835349427171501159186184727067104841080984573571803830864081265875080785011959023915044234840833255996247054986786594906386175826329161807475372619434457445632027645171404283161230028524902253727980912738946404578490342034952744666581344740327451960134035031167938568219209152754241021446205095126941377338396356649862477383107248215501335163553742794913765745876283311432779061788196070669133302549341589973556274687718116296705368807930160918459281155889483947737518697903441204133700216021766065995361260121398041068209208349939360233299317222575082479676708504844885159120190243070856999814949657753418668091765823650077942620317899063116046009479907359348598652132859497811398007381368768599660726200724225611706204971169121458171781736171732291497377993197684180213763915241688601700331066025317452742909222005641599550368866454748089449272203731731530961001623242865906411252278661528250160922927792290453100889853304333877846522991148778778312326244661180980268372320401806470914505105105459693429206065073430265843247531980546558580835938395712929155875929359209364182354220725320591098520224071670490606747919272499764801489404694576282595027583961054905358604643169813368725309829079920240892920580361603986687062172028002395062771466862214628152242757612271181447102496320053185734786080545519183676288797858252734531044498567819794500054243725622163236768799955097088362189269294382288547399073106741513497413162110988716483420241146577557299553218452190665747737248006874399842626686267297890208321193786814204488682009243072898019919092097327589797012589364916096822862444347579792739738524617461490188800044061853422896726199778649417860432770321654932271433561059335711373842798373441740675390609614759709330273211730375032523526770390691756552491379660978673822600478069793032555554198840851018619319431254261563132394647496629181335602649285546027546941108957864440317237975722440640341949450126513922842853828329059683469698847152909713259292774414141610913932594395741013282346846511241747166179984311341477359985943975931304909085985084848756343103494252134440743520971566103265134921806049636707173612504425052989697208434395047391326441670706030145501938039614173530270110997774518037122402992170804039743580195568153015248042308910097600446107467074576440954583580512767900831790412336451613612636564229196763948802383598748756309707588841978580116062335457201923661767773090556227667144396675214352848955395503506742288236156109902221015348015355106007680078290463346114892321589773152380827617090390065284336913551111361884070056035231883917361026533991275341172004209255946731398161238106704601327692598822871347554995967858819428553265599164446427673534364438609685935855601115479736898446437066898730716580531713062951495173281200788279553133135378285556823780037752612480082778515884824080553370244738100356864183927056380099905429684420792586455461099892157098794268623667065805367213309214931775178011332790650435042977805972432076983986410886463677115403081756469260856337506282802767318226404290073498276442191379919237821727644777574384405317345634899904054045087663352901536877287480886936798510614192351484980141130212117379082443027263020272667887064699450647305392095143546149333254032083726458118849629777881111776728541196572680127690447319164243293170089131824818636808326201036663056570673150988023472927602124673840799992550191665289648302072549599416610416728107026829159595919900430371227277611418369643745344630033596473985303661073814017325018118195203976775478076164958398479208559905032377419350360792439550624376858178993625845061460370101704281544226787093284997961463385249818659247269512795249725495893960003249063789977378139148117226021449576703935741167835314924456458485358156992292409433544293431045890398060137997919094665986866223271387354093869004027694718748610992125045138758214097426133575303352117071760185450635987193602570811871302777892568436567574930984579146775131318185228694760660971749469111606081213853165773705513252586738272230285701092352944268626732539154740382081039113349734447871100995648942913280384870314057538016541766133769656540349281635464813344149004422570792459213956847034957598866433287599100461162991244782633026252823041341475963515206534760926260457864539345774120898364607981917661052277219545069520749577532831789234873321321592604336032400761466401983604573923235227157997270955468866021865657455650345952533882536894450541726956458805162774373895693863716846907981488045131323053838367275875829470727333991749632912368626187279083838543086228339422389103118554803515270932067118043392361603549553446174326440829388280630254450515666310283475009048118373861318506599947236217213376403303480424970549524074130012147190863404179977868928113210495704921172679024605352162888130108568337498104034058487989670499598605525929799579875790548011888144677208552600471561807164478623293355347852112341969822848764402557337158610427661943012903259472259407367039321921882923811150476247726262013941125897346912461002826352886866240396668733012545978062496366565333685857521088240496907254634481771679050685183215118045914142934223555485467754892121757978094441658107021559530590060959346465683212780862059405211676077642459348796297965154162231534717088277335423583607357701560155683611093015246745927473726374499827107152051078323515855957009107420716400826326822690022632325217558963533166088604436528153749307918516836255847744049372050741799734466414509755432270624812513415833770292764702259204745612019206825853034969138024311479794424186144643685098147429769368035754424022615178154580683680945423832516835447734888427201563464965364968787582213561036591514803387265411812087798293369314255618613534017595377913907679069489353627049891522563999615319077967670298132903649310679978481820874377008114654630557948617537588215468222286083112064020704853506749162741839009454752833980611992965165935250234909663210712389763927559642085080699265282249659846213585322850180368447265417590779243804786216909369672490604817931431457200972509476063850227165979196476454391240736098161516340733962672433586838788811075158109342115010210541703925743105964309642373637945365411698642563047619381528031105135812612141611573624429030144889039215192739150572004555043168102469071412647646024181894733159789693806342697421760297670728964643124245205716325831149631949762034138698954127389677886955093291257331393257551384328155927211696473326958956786937229038867022234687031164756672540213898580378247207847267111202167875716782316276632425283416137620241594940741102938306641283726608928346928483315661795262978896130351344791495508265397282433882351442276019904539602794276439309959949966834132414681490308503779225289389230201828320852831308993450185517334611722939109113029842760499861830199955308488461293056393115876771629822243204172842891000161238879258557094200265639762146275837273501666590305577673425302597585239145945749656347833180511223002688157888310273338148355786156545647716323037741032322253458221040586997643522535663037163741912701729383507863415860504385144417432390959484713593534711549449570658656017484476933019167358668101623024858872100545573431422871934100968559447628059353041754743366312901279548343453472866338121010730082917059402746762236212984648477035487332593443851953799217498243681574556419899020538718816749429607484101638792770909791728438746433066724741492309299829178574965731314547165116883072684469234065119813150627950403149083232396088161767508917442238411945889712922856448792316326946410641211997298278327415833859837514604976594445063183200761116795839803862893724132579403980361758532624526047464653070366871082267980850749009459113968228667301332139588755613879866317845161512458647010056808838373290841462637990904769832313683570974589676405799640218409977298143949240250718989241719123981223191735927955087498286446322579982773329993801549814418824022459759673070722649073126143704009276362042143238473775260187085281697052313722561480631495640872051032243864456288841838000870400124661381385033899872512215192677152666700378528699197507327830737245619170638357906792543657714876245325227621807046328944919240385198135089304123770890255802650772877632120110024695747098748095753318171362014279197170156363602105153336787131650937313859993475927168420132003304781714763093364139586938715818512052344584551401224203055455044634887093799090554013650249731287657245918722067446057217357307510960704544209092081527295580407592717278293310611954984758462406159894244121930396112353100269009889853077310671364296822329948756971935658558339555540704125386063335574313259777713447031842022483824738481045323466392353719809803433906522785751637819077601695575510199076801721671601139582011772751286490959560883407736728719572621671830897824999119691900448154479441985270599169517423983008272025533840574821590096921455980111351834349071231097548119876715161873071921345696066362473132879586983428307876597177477531479712974026442096308034084960945825642183799015221003053679056141692976967090583690642372025910228072895155273002649198429724660436707700853299495177151197201222611172551000667575399721023354408091176611892525011946928374020702261983356292122494446888283541573807187996376816487140375155143534873160498125578149338163248150223844147582331864856971880869911946732043236723080613880570220553965055414710333413378997356809154257096952931884560395873000399853960779039261886320431587187341462715208275556775881122633465669574157891487809542578464079457087398595191153488060859541682079938028514328463596496867349526525899964839042790889445129598955355398672823591302905359097675790586592225031346260185952795445007282756229334693423094464220605856972115937789125662735930005936717978696519665951762770548313387965783521503470039131588678131855624607866423879635986876677970156934074012799389178129890566359067600349709707794882183169435015427813597136580443751377464232608149316433374621317000630199763680736048549136300131029415909457137434873839547628319070244626689189813035998368426822297841271990468327728691432651382116215653772141478007043419296335714761330586981005154390824660385736180445925301750991131135330727272300476779199535055779086375312752745617613605994912574080484374204690535906383805407970427142470643233125194961669217707659554273540068905829132871221544912629632184573260736621666062256354885616967254702396641490010421118716259113389999969775749141378190130680618677538030504908425664207690599757715947727342645471597062269813658307246665412171539218694083485129218888438134056221651880842794619947094042383179323341912757188249502126883643986606911402356660494192827607830649249838940475389041846874998223104743448709108740228313602943494829830680657960819982772611450081531198706424270237742786180335220185277055115988367576007576613037508125409320483480941182865691791948366245114729905050947232302234105400170439657789204492003866248975975181374533769364893183422887877683309590108903286211550118190109035837279513685742104554198828459184990992653832254167658855972047899527135155248617805908776048694769132683283170143262288855254468013382962943591561073568678380315898462848835130461648532711882828458798604309954181859514137483303861133591350543563452194902655208782884412857394615199109934213277471121391265527221958951610449143877416389083606538153165332100742494226742973145400360337367372717556211797047441145184294449004153647081075238653785041311577411302591609151814146974887317902604900918046288370959034879008455949883731494108187863282046158460591791281704002429238515257504540846448802866164643666874770502457686080998529640321059459017962458656624047008522753424081693993741158309985700815399068432074462931644757177282194587949260181533046551666476537522092386062276745771370826792846799530221739807901520809679174148807923492831524005232241147513229858038981074240064305764490789911577226890654404842649132556460380945950531395625707798602322172443407744642549328059796352569386176638032736333893154946888003528846103894366966181972018601976901251983523670288370773999082351873611966644732097533274631105576411077355403554611918979023660819079829146394407689277509424884963638111763823763072341981012004303626323261859724036453344635536252108006240391638390174350835351571770314307704456107838353745300821864371661939664859690550863237012378367957861143419510427376581615367619808845861320571860148006086247146990579319289620327115293449161468134335216617123404977003734643128289221309637064312349890876254475633309604270040290336561743206835462328600486664539781051338818763914183303401048909743547011622960575753983315869081932497506564063645363418650250292577813112821146347604281814444372986195121781875220508132660502951767556139103359306861275266475935833953706946171078929421968265581265932517042840510001609329897442944404008937827047814919373284489229976925298130879442592827206541193778519523365023966718981420875810167761423541833817495909656104020697426982216560250125982237585937754563709479340045712962512212814106954518794007131400514138316644951582185818693686583505454711513157774439411302881935534114399597892122600622565502708079054493001727234032247844905463213822089216161001998191933362984877257023843794571717546647911546991629639494905376617152894011918256684424558508400060524212464146269123838988353994468846619566881847270091507970246891417666298590975739373930902910973721263089233514555556216417078836512399259580368245885818753906420103987002034069579115637152748620949733658696618513070402951925178789080497268411111614711491813792734402441803290480243470856597697252702047258413046276476142715613287481945586321724796930379459213747115624998129588960259178969381384089710971064917035772887291606756299816541106453168927262276506203126123082551864147872491286947855492637040996364769440684152769148548576319384393192372687557209605456519380080692778671211714743615967799731388800001341164606166523327450104627112240943885522649430051991699531894240023774673245545885552692967302388719544142393377876463653117381332623444213189120889649645733299971429823444399772569110203364166959514014039503656904161008103262413461391824957163210857597424700137738935791362364677703029711887006257858555397166514864117869827563322013439175866739205793061689354111175135280127906948701333986945280034826590999175889023533654510466056454424327085113743213497878757433408121587358699060636309242164254995097255592912539075744728890441728933296891573075012238665318448269581808926747627478268290131795969340761836884778655787808021874351677230883480730300998441472036209756799721281170065825425396233849171961399035210456818661428550738433958885201505012069247091562349522774898720055307991073690393831856856417226518022632727134204139025020714968581823775261827913144689513023499735486001967046122763648633587015186675764539195567736152611207278541302760827238013359172484387394871342891472795005297067308535806400246229515051747367951475123167312171167793258228250590327452420353208955596937606485563147410218323115077812886006525384808124228254282554052597386279151170153017886240742328322168727196161616781306594905407947766553804291167475855504778936896077306577765027986787678404179206056984223085148691045181798937410113691876568509356641309065924265890362811539280504113411837754166995022230300382297960657461370597222186643620525722995622020149067465302455279858423977530000696408781026283951114700821956052673796178247154121379115742948616541030418320540482635012272163955945745234977125807266422345448809125662012263883963831462591961976803915297040895716852853234075537881842690881030299744060676440283363114098531570336520158775623902124665563031531698264849888286999088957984333541236933169203252494796199873973500188366340785087729261788331426089274970940308458436228879736108199927373362812606886386965538298258514093645361425281525205146147735348172530845037853016476743390184810460823682712397741928349941530074952337383011483374533045090072041636964517439908673487600504026107504954796932617591987132167378706446232073616554500755385631623897353752307899660090581907558963192542544586192158344858538977224479152284604374271953215695622625809323544422155053938856788009528288665603764539118955636361551736007290774141085977520012443084731290841118084811159745052315544509733029019362237954607198184712792547412466078076713643955195152899429555395219685532866220694758633930750151187009051359631184816699116832350901284386516686860994383374727966901976733109251667121343194253628057467719981111075668887901585907486293707188048661650196679552234529870121836337518708774204914052309106021284585394742255233191206029761672342822722894677266599910410993506227312098955033286351727468615130988618117225262284449340498937970473881132917932675973142560329408810743622403780934454622353732277599881591445870390832879322462771963177252537569025907854632379560616813261703030832233233364415692898165579520494954542826783993636239166603600618589945048447576202381721863442570227762054517961222624812705037606353766045963128946367893803870891755503559478319265511442337552141818509325441892698129597297923834647057545453126681373320835922179518930781038117517972839988150454924375296209893462254788674920949622543660895576365132181841419157409605882382026951864803510722883287961480786178455588791198113704209491421555311448466241653863375112406449440397816564387091469009619140881164802376847935635335139262790847406171062057242794582207783893655510364622929224576298751299760516835196452613614258131375865432962733762367076347204152269714513774612986585517629429312877782349758442229249050185438779664045786861618443868666452237280128230740762329090018804849910445819088436408802082010125097366253085709098185482879888237397002118407429450578217788676895285977977083343334434197480673263625728784533163658695720396134888631261734177751365680328199398970953854590455110911017234123789559050722801577115355532892989452565208892972839860084089110924380469172326571718969556688085566953848716534103361331503824775946390181604167785221287543771507561193650269265167957202310846753089452861014715235746873490738125881892507561911572933791062192279940380570458966835340290455403222136048111424594403457173524840904535152099749159182892966049702004262261351650122727510101599544747790243674967685808861120553340851140981941062883647089936445666004690579754011080525084084322713073523204235180754119363066897535296644030942455419188065939225231573410555520806400610450647229547572569429674174089781221842304224933389787411058327535864222459455877431065775395039568462636663005402121429993512110631741316671427932181223819324170452615461289370720152983207731623309513449841388349750021531409372723072450759359348306016443563562326735358778886235465239176547761988785966232872129376315982971516914638719960044863257382826946045674055600095693588417802048448546791487438359868290823789465627517518869226567468684383831392636018123907274864876751432595252895727597461938281344001788479704539383186960534955859799672163154525010144198980371789483428972371861529152630223996266332918654947063271017551914173186406915063720919108116213972944637517142015220961925400041475286949959688103869316607767460374472282997313469427400099119922603976388906121773896272547418958189670551151280794231765408743181599083075004794952392197133403954444984252811063692148803469277963784045588210012994673372210739640591306655438185220157436792475264213584464387887440408504595513589833070412936432989330153108717048825238570258410800784862572506174136710790219397534273205887564866528565235077961508048463436704832386837009041799188559805032382457104130899529831955919107870838959743582176861870475599438054374983883648989340548312957130194807307544513936008816401859274921872952575065899475935250132232487067411524290244693577613936767318939088590065061896475518011272134526271084140442870801846063208864142410671471311151238848380327057600475353794789461990062667073321888089759001822951125542123185239720226649762273056419654929469549507950484825450846101256269703792633650717707577000329313563049222899588583224231657835270693283330355334706716444780393371915156886759334471507552694017422579699049625447544971288510059314163103540489780000039911979089429639260350422143369912680604708424929343544646576133876169918239671582998272976887133458815304607896714350288461067524708048191598977404477469254089551359660290806013566554472427159226839585736396923171259711730757749226113286749156136572605055805265414847223678785297118777985840960816630085308541920334402329087927908199375973757761298805819571212146466756128177974836115389871359768185574199766231870939652595315178292083282217240504115244934081941942354953147465915690930928439234066594334199611334060210742859259010960249816763530616679351515960772412357144269302549507921478611132116236372581704880600172219984594520722438872051593534674392942394651853172735531455490789647609390261123408023355035864713158808603343393062589952276699646857678519267118193885930537472117200109830501800265341792560728549173272762920512301966410559285404847147542687892931904622299439488551409423383364993397655914671320270506736031747954466256250760500514357076486433431192507164293309714062047589540782548801756017005407176155368324451597095960286525957657281017544556383657763053591479563344465803178448073261505819056559606403631325616379079931773900888502800315754204551761980362327603787140724152345833282009802087675506845552431418286955137769660717091798821172169149687816690170571985147832306321039061403801355204236331929482865181025344273670767240928915543090195879733430941176689449254393446996026787642383601308511418879388954034907507555841127952342431832667542818736970075546836572253110465153612623880129882745742673236194097584879834068450577030703236061906110017965972478694006287086714885675700077780032359141399495306010049839300868179894405343011166751159484396157471410782772525374702554690979533558442935845191761709554039874103493798991052371176141794696957518891720911980531064420288751728421804056862798582341571472953060176525275531107466775765563897324575535868056241193968184726134992404872411276467856556949656202732461321748545216732460551010245934021193965422936723413367865372885500922690066345582716026473785187094751614829113342594891900373139215382876791873971646755848895017533707910942522476137821475081728164210330115335980382639666558032390606774446155813970840548552064112123473195271270753185592355328114826345894408941163424423777100427209602537086574422726298054240505922271812229526052510319516899474853674831001949863668800276096261469672492547467114663205533232954659225714629131649856975471719697775972755763223038606616926860657866212644821950060211820260472918123841756336893945566170866240954723210044402884994031711833457088710783465204271033624163274864830853849828091359937705052702315931448461978022814369365924443197910670195930797226481352175744424141308882908786420638122308797979135078319238752948113458752120978344982957334477861858130786276640120901431401729339989393718676990088244900282927672866717981587075326147484954876077073776827524222671124171259565972131111655683087519164138703925480677767930805457589786125263354393509237458596577647845289944446968251344121275460955982296701835184632616468124545147605952276514492156074404543201742560983511728463758344025986141262208815476052488122123521696577557534619030324304252254028549639716864551755370248082465594753264469397105699579327451882743594229146164693172844176795833028257579333294661965658904162963660471400289067468369747751840633339403118632986868401422182249477539297614030701510693216660692429369673110324112448690331970053669849952074033909327487710667661150071832095505593038766943350576837118440908834141472573149028701775093379334519428423513966719091168064678988366906607140140763365023388287345252641174185699408200631310418906180348562147653851274183576793481471515193671477658154778619601731944252010087480540637639813715178167696692276346632055139705112025388157973081578083423549794137841669414041284489422693390003739219080206395809331191837637428723721659234405793623923349941317972057987818105318292198760136016293555301983997672926114292528511250945091612602581310097064306083484222869574696156171678051817265660248604640278342589018168538292454120350347132044652885484510538197647714074982507998757884688220006907468935431416010805296082768805862987672464597646872127196733767329904672630178344709638888787301109477011739255807617782467628818363847182376818267914772603085394149095979715706162993801328691660763814998330153776658791712110067679008742762005637860563610242295000759721228767704103164410594279612699882952518008557208900896506505619738258396804061874902719222014580460422997050568784803688253135270782691417037797242044780969705253620346082309989184833766131910715319741343280086059791378142974856045875630156936423976882378531854146146151755557405307189852535293918576588002620382002637343445509735588846113893658250551579468310774049734840619460296955310059409526090022613058103122244007296666841541481371987655767823102767160047403273683120691791003251449684216746267790641411571508897426457199288204970760953479784883030241118177479176332928630647571081743755949031059744307803646379698156075525511442534117716959508328015281537746687006152223257154920594851363176750741771944924586018373590599224646202508580068309341564896818881151978732164943510921712280335869646497920019531640748989850074679073679126866461319392495831666134815606426326483755035928863418779495961105720187381887983041136673832603079091360164589027742487025300187723299039064573595882031668323623782027649684262400687389564495091308015542322189361276649288466062740462820408592259626492493873424772851634692477975455718608230063463067064447411765046006715469395507945713510023841459942063620153663388153052594079494564848285595243816169137483094044499237816628889662290725348752327627657106286658010636033015772106367001238779281420381461997012421096461190335695128408824095288863910417967309814997784279229433362590430438320063996349641910210419012448089239170645122700871717393989829154453363003521904218958209624009216626787674574313515493326927691971736868602734410258724290719009269372069823293876393505146266581876183291274182680760312758520014797235934731801999138830116908961174915530703843079516690420365443046726549754647985692162347399802711039657819475885583126209286226155126823977545748305346064272539001710986627829625058391931196131605114486232546205735531845436666576644015664132504212051667338670115958421364148387103528340499492675488732934316447661357302046607289061558644061720331091283061162899959253974856192169473147019406367933445358854459189882174950969460609050092837581268540288653431888431391266446980270263766571732984202789581288914562190099793247552933858608477323073344140656261866420735701040672125739302767277054824961831057158945389228355954196419279052771565621567741924950682833948135439635420382653020028798579611080937161339848710233818744771582197581793387018826867164296923917675179137478419749455221176941206007690805325293811857062924306093709252367467687450651776588855173854223118440961706969833643606521732837217892169720467475793731148937592618385530699105497808000880922462232384995569870255685460984682516720132087941127337736096434963832998451420035043502749115203976859451154749530544311881485497990912682847518376677569863958907752948801868353592977718052164201566062887733599070744156285416158475761429583353944293718270587570815258231930783280633052904262826838664772550417647586182278541849760006127111709176444181818692352730673391906006918650125718473774932040363182004985088551557694994867383079710238547376348393553461336182398435646113641835232425474841149963239541149041625629846546454896255583272334860159413325970821852968216300155998318249015684248066058514816117331865938972126413497008050529307792068141232083180413998361927644644773473847254067350162357990562975265912097330807244473503846598449135095807308292747481509038075341219105779850377875225435812151203964823457515529374676372567875974377046094989460253404021501703076775121928046101997732936139971340517845781243981344084272355421433614772401414942587704881639682359088467067871079841838680124975466910319838155410843494959700582512288518195260810879204220910733349960634146260849111457125732882134228862559426419924530741988198109645148953432447100809409541175709938421729484638662438045699592515363160760400459592034660006591098374652597981167635835628442752695166594092788265129653280484902985484352398940097334218432740869716697734105243730396753579455131984057970595169035136010861346508768305302913191386635978821331172472515293108461170946246159453423330641735011211340121610039670745784300050600876815389410931565422359646394405973480091514768155394386566062159959638768485176112920089094376609027976160121254850870144596281668758473580338211849395125727077239203051406947233956387626902651193847829825616973309353472704941776872339823946150627725295679075954486686223922221382420276958260442809095323320744980323546828024004766295927790177321527024664299929550084551051115854616960648004231356600849314260570680938164630215702472853351137681265036646216974683887158545892207426954985376589958110303629453311919206159550487620303132671563554549681663132115536481677784746709926235970893762662079991435761859869621530322727228028521432229041343146306658059583098809520039928912568884530973504318762164086324219906463729811234218055055462505897175424097442806632385193586576514631561135186710364169875824028334797508688554461544481171653445488066701359847303064914192305309697427254999460261495287463650475593979613943846207793834116062161237620672290511532561203443082637873601447562927317366128906213203012858582249622677528550904776294165411563163364451115467300307071604355600499735373945800754784987410022801108304805705004286867222766133703733685389276720618778147123763048491307793271624118709357754567691017531500474856693659058388734753945092885995739488970508711681765308594052321323314246356467447974357992744774834852884488212244049456734402308680395999327372603051572195550338985932963546977608754701561728499739246838377022080504316018739568311288461403721888945716721266708946685816678833557447512132906525571608285101716292575762627905157581367788546701053121908597853080228453850544947540076758670694262712576685172039294711909162234542577901028606818361261296427192791042009003995857778661342449182558319231233790105299435701528198073291325806454956691218919985579121266351352787652475149859791524022669879887423942216533499740200260261247157405965077648409004443134959074300439605445893315355025121447218518339395846914225939966583247529460950629518814958121378537911611271614998280062517704683222136072948743951222774782503624964372565019924558029284104985876697732349761693550904731035335389839636469159229308887336020516005839369448220325584963094666818499469960029803083125053854828118573653494786049562578029118484109956451059825567769779673913199070417027862042648274543547606261553807692804406913426251870624579371590082225434357018673730906078068393989564188770035510547854417329696779670369274708608400663641756163929240389459698510281027802436233297955045012201598203981732934186986008208658499677943974004082575796450189869330772916820866774904750976204200916944742912799600614034876124936750951714126396591370438807028175947194392682523172108214305678242340878879845541018191965475283559747093396459561196165912370439339239520756544291530392237021727562427273565367110094120887652244847448767601268832969741188664353188167823621295479830752646362067386643483666128360225210949890903090585661105979394575510710840005665652820392581891201529381262042183879959322580659281736153240186779718606531367120699665234194289927625906827277830790811326346978925940313938355319938740306914719261951251225926282242883551854388672609328262956640297382921242413524783543410554552275428993665634543858799280117667481370315769361454800000600103796130524353436812363515286092531630219775794192335400647408346877946157285140305688026693283520998045931247616607183475233999327325366602471961506138716804494541546597365966773487618656449898152675473023314801448325678574401010951397168098247292095494639323760058411020852736393269960551977198432674067747611720380177354676196107762247930474446845614901462607695606931240006226331420240757526013004654614708492024981046027400940510262539029947352199165207951018790993458318554419482115034790522151901334851982330330406741329903399796079278361149268814462018126713478951119972497881011617964739032726404137756985530512341148075657489315985921610208137047030500968508124721288570816083173080270655020379775879169288665875865696543226550377134218987477681492992822773056536736181947545830715190359133305664286872687749514176056351837160840163530726555330693448435674698098854059342150011650632585870406332571519173238094041568960972383221435658338418935127984903858494280897538956844133266003311542179013425138597804399672094325245754715154725175000512077144031946443158489477557308731887197734379622349907149564783280186287334213597175856996171593889274299643190876596122275665617451711528236258854568440105792635987882200365911244596127466967870101851392567417120879314725710050984503566547922965015838878714654005268274679524255750527943555877249500040409775578302546629798047467658801294170976926187674652009996857302321160113642293281467375848381807423813493490888582261787950088843276264462181239439163241241973019319521259606665954574876063178815166015357078621827693256209693642597380419727737992404269390245888401833562637496122556918246322788072626102554237982703736988300052248279350624348043408504052815181987456765688040816934348234523044738106770039471747078203558725460519244479595807703015387867119224459737972452071348125422724870013725753987387109379195020707335537957353110939278913237417343844350937568903425185158329238895637506723677178627850907349407541490171699635984502131503889195128464632841266805424435377077323275821805871618709003692702957435769560289218617227448894898660150346668120114633821563088774807894423313789400940873248578987344086456313860432708745481383332838614498492102516502625142807098727090774976041322195782778884495602575910127670865819672253981493913070682393238175528130600821594310994342047592575653049358997128234473459087306046738978837093357167329896971422900794521655632858047827451638752748804168143906194073010366094325200253051613938774776131489311891678108534100349945882362650701359884179836305693051382299183647261912299079965169936139216802352245626270067839747762277847970137774151566696915792927056098955428884734761717952218667597978716177963781347824448239770885097281476622644630074181623917630154475488790266691113293991394983620001918675996528877240714121326066210460197520235346265281192744139459070808914779308154536074974535267470691942926715733877595007808279342683014146634953161212026402140845346534866428762690135279418930236073896633435803386383476620595556865548719682464937107893252064755015844200322887812417691717128798795205977942769269565380070134317180188899630609608644292737200508817124343008190574090363107989845614113522257699893213200954049579479796445831173570328284398329874708796996862392439093423177701145486317603378643838386994578313237842158586028126272973608923326143937935900211602662978450431938070504649915557438087312681957944216749128499798258312479742969858393825051118227965017902160810232412921755962717653520396731645675493122450294008181038163596310416525333058738266949840812330082496446267882120776009288403239196828403718895106567202605604255831902726046472434599425906008836858381202106713734239104502876779438765673588422053246759339105880277806550729689279305993544295727875235805369815788244075305402728032036624736460168977435918250422669750856080035727706435729730718788665299879761377052846111073488176375721492659939915887996520358555645956626939823147840199306739864151897822581779700885700512650513481016916791841375707198003344858060467273435452969064170307445586611254629132875953839427121672143810246804366466423230481894691556526482796284848856768379673961882344301422840086762328800452792661136319242212684858986358983523876355938212971186490269855149533322403913166041434707108057644668727432976946478550528051567565715045478345304781766781070449096319641715341693947679755701976741772716588985086855054976853840113940062195648817335231984799701728472045612702986009593976057262316159758271887709241249955005662860722877419765521887435950214880185855838612038994311947488300277463623733033520913528379952427721798699481255167347747211989620003989296344935708265395724579813674779358197710547697772077506906920925697938025208139523093658271159274986427471005687182916038136685187182203282428662969986797589774438872661618985291224147534031037097541761438638602006632373747964077387839744391222227469943809351384006316296611446222817564392150662741094806520852533329621196843477921737256226024027997808555511320998806186212213779435742889284529747153506814113454701843009605639875035862704436932015765216687611715415538060637594853106757242284372802249585772110506017601044881748753963876583515172000771694309301855360884282334602131634344985500310663664770341771871473321540806527642830937591229653579457535832489419236782121218278157713211026673630562009732209470130316678829615509564372834355193978255513128550425734933189705246407001791381445477953835251585832254008673039842780847684674532246574839837232970034406912683007147833055279539865036705222086910711148676244074124201932927857805571868920516998708001477073858256470350266997893560853347800697458918513130830136157779035426102411854619158235141131552068886866950896712753499483452247489962815050461698017455891043312126548239307077845825238523084556860156037437004321472584703180263058495212580256576394352030116049117285658439217450739780357824291654557553165776565110761911138920280206983608625454153936349519683981819750431550613135460426586113514022357786955693912779904155621588360496843856206584763504484709220902451667454890900207606631414503166019607371757055523103410682827379035537790318535286317312981335336637709480856231928116911962162909081270543301982480905940793290675190088482830801953371792252116503540988876529003918118811865208291275291910742701475147527806689726506363473391068995653778211820730108629888324120978624361515567972652164439867148935050179304945690275348233938393984287121836523479152701707551918353859530486184551081324074340305002321504381599540123849142810770700189719899082390902541924507368527160440974811785246488732460255225668686296834839636731555127584941405033853368661240759951093980906190888020786853307234615991827536898648807444631518093110641244066101904872288867621093567469845516497270799382794764396078704097778117749180242026898860540357459121464402907350566451946131081764304087074445612751955393565287943151258847647912199252581238518825361694049842453598965911265450361864350989876604032393109477605521477413648872688041257039969500801174644471815984894434883291090171695327504734256469220867604292058617703199868598600678942770452951582635165019641354507137744032995352386225433416708769134838493913589012860099556894339520970362909045404801465541916198806604358707620941451468546468200067702814339332920954355797676401784854256961696318307438796617138945901793907031274713602428918572197062245490942141420402232678375203506112043914033272734432620330343751859816340653940161147343918044018547732268693228799526355352286061690034715758557194056545865658141048326368061128993797813763657986528075934241031732126580053700107836197005642562768850671145994260929742093078671397026999289960742677475557863604423876911062243624765772431758518408372490399351114262487436631231412071673869831000940839318314891886352386667634700500805883428843514336230502841384254638840782500727029694563256615915902383044083635808647091803563615851071265260613102922273492314746306411513618564424846583733766628641975532206343836031153789128498777976987160891437205952203048250192552035342322565809555489989331079262688198803282457385007440093360928522715317198138173845200799535035776996960883892539470108678018263590425020281474132031841691795625302570304289497393897941941247885039120845052115599430706441978564983460820071376156700272155472368783185147451348066497087426931477448710389802973860736101480835521777591597031314250747271030164679126071139169423254499382514843540905358661005341666326996951728437649796132262060355900150846722182013476696933356194641130330215583572509114900253764181095657292089892659593068157445664620813964233153454050432767093860812056269483130551154553068313812186132261378150335009701085951888460078243723754775334484952811161210433452115130870278013906456142146918063299075599251142900936305072054211912809202808251933129888919756143911986551456543446703669091468365650065643758963547987164299062981636128312703009319998403145743642994104378407569716701660935505925293497560411296853504443557726648875248958590253952727261921126708068630282491593819309050455255810539009144597843707300147871724810871664445250882435784300352784974851132391076983388963168244021284274063061606426043410922203109896137228183339152263895048619513676090609590082978195170134890139035397046754270928371854151008823603240091126491035716300623606274095936851067694917493819869268232872286258777769970503152732563686593749853055107169178482248338729683537367651433226464928012851485408361409302089892125760566981712748329430774315648388800925747440768910817281366590701747319629432702930998503121985797067848189091372808642824387942442643009114932732927864385512825523847680676872049839824521639082727675233316571683471953720596770002109026160064900347979655004312367836883288066048775553926938276705474052396455876316577242257477219173965226026076211497083534965179809386564236168149489960972705247451746090611046940077705747327791244952224354188398162639720948994203502947281210678086657926408900029805263517697322587630007722606877358443209030462545308963847310641790948515641463511124511018280081306392573219051274285953393743736765767809081688189814620393839792827355837551687739295308316933833698588427663444396299731251079385081044497659096242374804151237311149420503369689870403360283607668690362256135901124963912522139565925322401798942555681336560379236814866802151821603369417394332160971929196608748067191904672679858113071887273912344881022522533394749766074606710482615035723463873806608369518239296273965156879521211302002333890859125740734910664036392411229154095280482001975298190932983027947931755085441497003898457688687230263488793330052302575532155722928022643661597012420915282987016807083057623094299119787198300997646022643157877260209626299311740991929948277153075028762286851037421055993401686726112583373635713952774879201857013449970655081543073905438362240060529756855525979208822118845026946628571101000333541575347636774362356730303260433762587022915140152548370976591430282584948129863615958373038316204277090891983281725545019459471059736802921084489911928072466532448097535951922377645289563043412783272586811440295340233110056338361671043336569386994669970775403644570550208856794893308779570812126841628804808814660456883100490653648386277128217746707946499276993833228476392240143276507466619233460933425824255088957490269892606814723186231503839894565048654058403551638472382364840270893951876215988516841674372259820457933514477694919075276718896299962497879465435945029748751473945044554868660510891612483090977317231198265385966296668431903916595854627251198463831686960314605609595584906956905136760715390002538744031797203409977642485273665252176306637008560406823784099541559721970614987807374436991363365567431392558845903345640003947494237643591590991766101764424488357002039215971568722081002414662200399279318472743514655771550613842298647394963800085856451236308825999456980035575620546912761028246148680712719531878580742407523342451082060176994752916939761339181351888336747404102714182736192411190905383199588362023726801469522100159082831470293377119074492522712304206090369933259635510762377356036424022916064737073871148752795943782415442102127492472746312516747752464956350285848737950717911918192770314120667415305467781479773131944097747957009844352270390296670989462956215707645417449720029718402740561635537948467022491504618112197701707204477545278549204792567565001969613738519453625503631466767038793085028552471145887656548944932488086714335786807962513822546245485926136106104460860608000823227524400682110835733926972773106462416676860135604272946297844075621928988296477942697187805127581190733987707424717762007210935185415108059023862313606741349783152382381905772294881535259291400043018113652657625859292237498193132766411838772986334792896257343191424822986471057088743094092651570547711784462887091460369498289909339496842970446147494249157478705819532259806471855230133674881346722204459528405768647777284237269947430325674039076859427377898702686016651091489324378808046275691181782907119870359159315745455364071693497877411211798531244274201187075449002508768565288904645842474535098523241109428845642980937549101725818811283623548449919227844988991918056350714752009685401878714975670745070329217174802306942703445693745976496652961127550889231959059160514033289692483911704934566629759100255642591297562232384874912345501403371651450754845565420874814738896854194115120063937648595193104606537529310927142367082187995189588751757517671389740692922410276670345788311088544398719455819511952870992104467496118529761644040411835173814060643794836193232622465219900571048070996180229942522403136735963692850615406951163078712897674753829378440817289129659248567657099865683897065015788797836227742234301953482201584205807472512578890593588740929494486567743565188080574723121273672744707917559505054368081122344490416184532721624671200993476053601225161169820224178016853459652475970665431373458087957501533892112483623906046921781268069696032094768124341908051051669453399699550479754298288640694398816260179554123649652423199214337687366378282133559173533251988158574277547630154443598725636178900213873172470651430811935981607112293734313649884803471280170305243412801728543331915964946188758384820715537016689281013784793045146103732041086753499580155640347527666681991418979632558825233677769023931224647457118919484708191151184933222805434431116404048870622416419092913342964158319617362573690157506912174225160440440039105201215164761905734516373735739671716040282888814386304226399921629974833889797338556063009435440319830705048836942290714465382891204544444611641895402845925222619132891767353895689246087104227987038980045728018560129156633497407006367597553660864360182830257186660765905627848368165424808632046920077491732394874822084386981704109708281766572352461237347629635442201516753824397723514921754830393807727138749666589778109170908952870448793507535761116816242627140112301068647524212434188548314179823737082664190498162044325169706845734908804642332035981947056769507849271096766547751811715776601774518911105341183460105634048245961076089868926975979354614889523270426069236403907658643289084185474948221603399026697989283142094903117695788849545861442295135119198950780515157311338760676135410880304119601368978194810003695562160461853379223413290724527278874544238614242364009728783853472610403586635850488539011726985771997913351996080416050684540546985680051588291746052473585970078607400379608737930215796885843409410486076519797382889323958278817639826641382748452854667888236638278054495141552450617117345922152194945042114330848918639639847470863564035644969673658283666278329073056599389276193829718862031447576996745960898422856393882727050898153562957361394988909080704422784847743659000726986250555285370971073645361910792287788205299188024961857495297386092837674102144303972181595130687445630232933213909705935679805944535100109915359099845269459165499009890314160524860742916284720420137816527477274165768253354978079002892550735040824906877568272982073971308235219039597859602204209359848320886474075523034848258180918763284489433682905729284373971462836294921354041558070409200621144779745914350026397595761424262115609072767799872823140680468979913161656289491903887255202849335890075446501050538320380504475193960886536824263305178025815831069143483035393797101524381169143791942242950255230253547150629944120125378700300338611352708637160437618118747276498662148498927205622735486076624781999976508146074064503625800819208199634912555772734373009551238979105032803970716078563166425517768045162515158828802973237471169452186668722890113424635267315311226526706433821241162199665166066764200039200994350103577610512222962840247142778238251732668459159049412723282359458910844407059195736425199506318400379515367472954235939550572945898491232617333047006731504220879983912514620041820783754679325142568019494533521082103358319863000781299198170130085958488783160281462501303574571327068893511665001767286841036108420996292765684718265430563805329047230136790274153925990483351657886819104216417153564245937526175578487998526552749017693622890326476602553522749735840023709645236104003544914062859822491180705151682941039408039623704935892042519576844252554488577171739553215915204257912475623587535561847927470566751092443415150048008828165849515281970785158124465125409839848387743075555752435565354430195304658829284573714303606063519049956205439877747929189690250580840219257615935331748705288629895345662381832570036510291227192848676099450041959829060871101016870498507287046208520211829541423032248876587478377745733195062060031216039583557764821248523893083163648417762844792694666250382156700865903403893566735729308480076010361011574667039912777193739465046930791130198314281672611879094031505895717622550260903487511521398849300032936015302407080865494796020926575962036951221766759913101816532846288370064879838960023008953852928754863070578287371485525590997357059877760921164965947652455565334557120413370306663096658903423309393578859097040109936905421650180648244307810375330299790327639643640308658977968698245517295833196080451299525800273969939423864516328517219967558180623478621606164066329619568968943962999149382284202083747133621953367067927479904059073120027221034665791990887705812584153943114783142893356262556383799112377806078488198444465186368013534596533731572089198338681260622450913436849661835905733701278116614629695487586189041447099821113205826298187058532628751041397985371219375065944970405989059383828018226279704726882705926539453239820424297640699706587399654581938037172933072733142893728185488974292433790260148626661105372652381821291223515644546855411361555239816740494392557711197302670725570135489249407035372373163549845385815210464118871710764152599389854056951295761488009178399778992459140445491826355389570544406173463491746185220745457070420124335428911284606229580630345481463446046331041672144230200014206090682496989264773657687180023223318264126421245258505669947666552112877701541840572531566468390398501808413967944878214644766913523881073999187327413512465432936472034485540916079457557106736551102294370621138065862377713898758533050244657506789784255733918599430432943196316373618620528825178418915167073459041444851922801254300830996216707871650885655994304035227503113073384999127228018134601778510496019312883057065832272758873963774728566256273282144315105851656678622983015290295566422350035313728677065891017596050047163877310844434471881775400509604195295476064546904648463239636855843856730685457068497928783014978522844086535363586167223852654106580866885355394004588177645821317176041635788795630871606800195217052803142327628665609526809216481834857519667371551056581107202010972841020354977179566196409111782214973556715703295918578739777493228219391799998057862050431183322465796102696417978509795526446757687805897671561318578406814098101607866446266641769411040000355168411212414138380571122836272160342386129322883039169259745295381814628635081528738376235582042308929071891686176008381406301750986292351725737373740000697525118678039679730630122141897678968926352581741061585377547147444324561451159018920356274565645857755230359091759902734203522365884197695046298759653466076721359806241766671285734500151244351690665513352924713610524389146460517338371607238006403876867228167475627649681475126528742349225860783542240714038380659682026423436500845735539689186631741521905108482167977446335555666757700212234189931095553440714492927542389390131500787178527455182047258577091624113779103672717679468575237854968760899538258266281960894370812698832240538813491803445562430653877536899325615678742342777547860507326492089649476302236822039042111423576762913624620968640602176416564922391256668532278336985446978005039073690827935890784183461670128003311270743333141319307454672006278841255476284030936082121909412265214230338964897398367665249100651479521490416455246138469408395700961907751235748678838551131901498089101357294800496744341842691949965954611851433483613834504249066798760264196783251372332527466034191901578955525678185007376293965223411348290099044798242764708792530909616763771203803956043146822051690916260401729701392951338769611462541555420076292946381853700137299375835554341429006383070313197810932887504052208135750760637871420615209604453676027281191476685641221188325377897837126394618731485898786115464886421229397510507863291505980904424512252577589061715721811895132575943866782027753927314873027669739024436936864014200099157326296773168132518209131861841369021404217511233669216997334522479721180750680640888112596124724084552035511938168182490310273665753085827757290928170713237811784984307782778203235973601542143739427134930133621181893172303243717252807363860720321455831352499620566673917802060409877602529066578017210112979279297798565363651162631970186358039358411478120795129039263760744682720601616255839478880384053632934469761772270421250679275886543864642403716354821098869728340508634708632486070122760554589460743176599358933645108780745002683364683675315632487560673762841382010558958371685737143769118202068365698668220079919576390215419352344084674871118653459139924637598134008180547226356245336647216577734625703792091796645497268762471425683520311754539668009210979188469261830666991939977186862773646193195899429874202434890851758556066308520543789103573687616803112385068897841951514671305026214550211211320114527594247701356890804394679730613606107181817133742746602777311997327267906583786118635686775582746279443612270611669774081183318544201762599434309338125212036011256099626609334973123215793704222439759898618485583562047514184202725111186038363787190996304787441789827406956985294420441244417798584170276347726290109081295990055886375164965810771836239329861442276577088051151771729523903428833943071390895753095393195944638453864413439591428631033595435619051610695471943014445697999735143972840929291814378759079966973292072012145478423198930028622072226317098208353631601251283940115537451019547350984454678924396353630074214708301636492048465237030324010682217275006099875041963758688766112372349635045228693563274485383724062386746028442020684054975040755047695657706753837345342190540596291748273669269822517667353507321304891670677430461822290279458065887231070807360319616168048572998299977620045132688930073046362567025379566530431065528424440024553587485066779240171064517297120173292158475100153875298147138084368719292629341033897479357666009102009697741558624337953524305040174204808355142704213790461624492929130407300652198616400635345060928050087436538284072524297708927725846316123755663613468180572556254524919333592648767105830041469617287377914603808746397066318758157125672311231450202981307117968373959396168061329816210384744320642604675515757050457844234406523663254996448049637040599506013053938907692803840206817954007484709907916363859368278245350147916161842141629205701316684081283195379754394107837832783564336912449567546159176961325044373613715283023192355779588957523518629124360821122445093708922694239776633092856520724791712748836294370944462510450316389587684794042231393710601430831332536862033520148323520109276128560228432732384507908177235647147924588095120633909912328076680440864215402432590028839870401903534765948997352470728114842260681607034886052141134155052862047379239852524702820810998201373011285087107022295287619297190295396948196743703230394180937330678411798067910777791384776129958167419193138592400782148711437195871531680353881680444328729308985961038750170720746674074745212149190396503196930808625981563363624618292896959609436035565711023432421464482017429711800771595557591793118615199241973522549287761153238226771400895991640124165581312127167748161420278202285620222831758739987806970360553499298058684162666088761564342644128916530143343895455801368685855047337027224169564450335981397790714847870689460548094199596423744300563699328093835262743204411355845678343314234949455447840791282237189599583790840785331480231584774434431820506742435707042485418291327795094420820375565854310498285720986310503908224019080587188254229923564053877238950470392072360398953933595073543866650062264460221059339715795930196771862595907336164911054450262333596515338357512653523623540041500360045762798043099700689074451803714959352533335039192735218899224386501731125159507194720791569949017490909435054583447188702381317231323746639341835967442840537266746313587564388919266232820830129019488098621875999507999889690810452155002392362558565088702501847203707473555899940218809851470914827661889368992533107776400790357145982376371188497745927547013295811005275857464012468115058494309758755406833737558521593151969918398487852141853877906165743303137632211124797830159261766389700040746626294925261369277132180817208877313177158170418893494411002186792995681444579990870728258336364958239637294964706256470336095050572186312546465757510730988717636370882832781327372562460379364608066848626895091747313381316438850651409363033755193492691938313991275951561016471922079505375573795395777759677476208464559930828577772774385158472730150807577928861323165269457431470364279635655519524523350926122992482249199089696855020010768464327485130010253373855512409563838909517461157394929822577118493981408037040564357312049385323537860801713702974696340348023046816167329869988760510967992134100374843052789490841517383399187003531263713326088875766302834863368941142991114086291612971861088059477631748990029823409137200971502499087437518958470164334041254784629160669785173473253580730811285604602477704012985938670204334727011764030390332862776469203181647770756393355316638011516341937041563966020084228230044100553250997280330161304473109682571701792631754020428841894557320389371526005798351246998984372961987330651887308462424729510432050011081000575330019967088244581212006901146903561750195511838382635734172358022735592718687780226163006178346624537125443179918841919775381648269189016522506787779993803582566410588602071830223533743496015990573137177097024587211536281515455298276476437674519414210892953242476703081953590108281615082088860898555312880664113415214033992596595423295796592711261819637347348715117033774324736025405452101892665850842334894224606111360484852301887674012475924526288935164084657619287585399462672467727371208880657975066463586750192216803045845956178728772379313826084982429142128567972637308931167803205369010413934960813961731440120097079216754363995799412192563192187259838785542506609139338670965393531734751320804080794678081877744810291173543635112597726455995964150341246348907323701580505985590132040809461841758055110863898191029578811944446701485421560828721290563639544908308090348402178153535136003562447344303943661860363808013508961273401818641344627575852062643130689595611147651096054860270728923309167102578651376754534804946723707082107762838696652297179594526195473881141657478860064648561486391408552724762441346368846921867293248516324377221125245060272786041465836898741430785450808764977123799760606346304751838150978850168750140728476260465226909081024103064079918099432230311787144215713577711419134811992382078984069538870531055828448177967801678318126577272654494334503945079615387535813497951626540120751431124633232214423405537089432983954662205083026043163201329301415495262488956602126071810539920172537822877516595773206241143572312354652837675067670666994577971307834294081000749253395944722750175052762215072519009544742673869611060699090693351826052843624180173982016047872073488257635356075212498346632041557181232034635605248052835619886487496158647292713176334372503484647795698019555587489870670107208474595133469753045650683854557896234778992634050495674646468245208543104038145005705313704542167188207434704083800161222664775773402638547286793891549338846867598015371821639863304747604065064056712593495941481098633108861758076211515961090555943335563794932260432311662063381661893269407362406651091399427836354502436985055592019947975404431671366020238584536601994713522212145752838526525719551438406671069092311048915461814752525116117309809469252362016470522339763902021889211491680966587909819681989515483405043699973354041562011793399352946068589901235964332546520008943854464002176173784215076785201088777929902568196614205368645272630692327832684519508409889582164017114054037857479960703424407031044906454143285815415095598903349018510134532514362405966714325294688622260856857903879040088516405095112809904364532205114042169888059343761760334942013247060327565270090182288441192348011517500385676606819176017070681384022231133048006497862951493933069838052700271191386960321824967537587009956173937290412361690869315415488478272776859106417993039794740358684643289746329260918541439494007984896817140433526528034234056395294094691983157105965911428430535207085000861002501525967140191849297846173052570298712219816772574721487367499372817108876770183384870739012862134973252161650414404247161763367661415962681008589258969022132460813864755264490777871628528849942315039083632755070147446921356793616122213767332439019339163195791243209646191984658808316976240269199931518765556188060361431356822896082424689321276156883672530897160991258095850254371777653055428605919632337824346484181885439449638137647564123887600227655130095645647626692322894628221367562853129087781133075697387182709163027221950979753034059101400802619764509549725610510871852489573652358372391652609623337223373039880949453400777265956994005174960369396556615052254161243685633803519222342675351079034585729160053685035906986173124465998738404021434941336088882472666872054958351611087834531673414455918826832567733821560656545123681044632753141430971855449173508068757472366808344189112152489739195174687901423473320528248717789793458922761504232126128726127015707495593209007833662557627788754480085922556037013667483406723703520721861658083015954878246298000686206890401115044315116259197924038687431923900670280672003837428446436084417843942252069027335653076896867003599074033442573984780780481423571343544581533658170847385686127809288048744917945642660432802010696189603820393225830232644670961223351070007893684033827148431400625792996026646435075272033023054889758408734797641544854615715856902351354403439154913290933501812373838149512314832029097590230224309190401091902850586723814407716934145121789346194721063673427493857029954963701868382107105640535010549087527073913511465747607147983946509945509456589421201795291111952714919322419219014047427479844313771526799822402876345305283089104981547267542816033527886524503370475043135403534188706110663138505432716360876933082443174213217623638815521697242786668961611692541548973505104015217000170066252627103383370842869077021123801778929462230260219306234498801026006924953405193877988454631923636646397097061557736718163506933537768414043827575263471218952096614329588324486408290261676029515215669302834589842060838162208838831741153480074463089747709765675738130937620038057927426053014950439178714168252960167806405595050548665457767499449900367447684705914163759751043002581528311129688646964134109543605881986327410832687194548660006943060392391435935344706066397918484313256750596753432018630231843093318238990528198663613165740453587652600454472996217874806023884898560568197277612084105521315210303971701890757723852240849974079155292947770928608996197028928684242568640809204532396130871430340951211115360181426577641737325222342198974734167535928246387669144564140077115613360051739858003789546142083629212888055551227364075347697218776029882019613488218892727439526718556773597668611773741513434949702050246035085346914112087912460270003579215528605285901404923705879299201084912252409240172906100035353109396571123647184712094877274953690287262775187897160612996060690757104846098492800868284078617125640497644647209354060883690447689360262273994108031505985987913372084143502841509026627043507198855652657269130876542641771055160824455218217499874923212629078875542393682514846901403003944121665053549011204762949892010598687398632273268906260370851725458288206023484425953899997330281933412354877415675623465369654120806507041114108246875906127657395102531733518179463268474423740929257017192019251654431338985965831761979587003862987861865898690838182884795482680936184067910140675419625201932326134937249536018103055270875413066422365275892172264988751593856485148497591650970205722354563167569361921066093238316445527954103959077464442486131969212840206507108367994653689667231334376255158369975841122410954626154323325066326556595879300490356521591270254031218573168808749520077822345376614215237338935739991838781571053499647899096704059858052229991622778808106466041692757291665764337363189179049193667790914259234159319077365761260822226993032567817261396294462835944071606583793096932125405400704159485377377256731036074593862287115955493342091060916458619093622250181360745970447865352387652779752666795736237017142174127338281825827740591064484313961365694613095813530448866618094879959975257022039249695919609182409781338537073952805280373349261507435651917263204652368125524534371647430316191671620723340381462013992345111665324448834152908863586286078566911866017313090381986769684193652588698422630716289906902310639107926628925241110224065888900512048643131723221366284490796474851745593611149499062475295839214984580831781090313477866758221956057068222579787603123379448694177563311756102876217386119116015873887679143303587069267431913668672787928012536348987064632766501243405089112936757260504145710062650189710726242088021599982872262927971893843621655529601320773815356712020046264360145312783698734166653647823512083848839472087857229856070589200609728907754496735582353025666733638091689038695769268302496728527376229702403424490931288781109262380021343267988775867137425524151032264346804143137292210977229641524079016330196267046548453970181084462623680660545693608410061421540089888035747332721382436284245057495688621616235959974959373200015821557534312186853537223205944799320362280453394949418502379011414441169638010027437695323988135017495089480498581018439742484641478490114750169569189115406712749213241903248015405791132663581551267181401232181523357149166199840504664428834676244802772372228338299229370446771673973384797746143670862240852234520584416223118995810799308831940779465437049320653179793619081860534244296331449675725998425204057651338100176943052104766504850877475531345582125416351869405122273247970126457712383357823478712585433103969970628033922496167870851569752153195415392914200284253496579643900528207211448211736979094071242624908366835399590362482445267613929511833452275970772690580047751390583651311193051968702416028537042417129171132334189759181703728257285863138354744348894965243548242436034305196959545319610774626534367353127811905165890786751395962033036945995102878264462910218702743573178300411172518040239162803620857945211742473216744350087407389846243638813589759914230145261648350091072761908441352860473776113647711521067035337694104781327922329535494998095901106736102971291637854565824204663596293667201808995854858347427133021255748522193689234107694838550687821138306411817655317700253467742743868361005249520368505055054600627736862652919320592699062496009566692813293327858332641897896883105341511028869271045120902140099529677614809403186549640570302746591837034074127714986063024734344854439189757411145189953240400854655171141521519217204578104198596507931542018342319014836358601678669233519165446186537734627065748891193259982369854937083633429597464900992585642749218919477876232299494345487781491757597138443725508945144168798412760936901143184438280807488414662051850366339401555084321822541693174236601956440792748158889194147424405976882870331861304047663400491954869683535600987919786800846584643973684855926905756262131813517317343322499636614050166176367432504414111327102424396229723324621964297699963728669471795605584606981733827006370711578414306162584735443871243125648363198681567256582619017393751796434972496196602246124344777370076339766047307222474145810260816154874467271850338223271093476003342091786024744454288047750105484548614405019028419976200242235579887032542751189045734341651500385609673538215193165125868217278046578767811489912182231341013921830969049660372522124708184342035064620588281246159178709086526443304377369503262347207194662831970646405428108239305958084311908169226244131255725621079600474108316639804607654675916999797201291388543636754673463688649529663611579219672054184095546057400935057896609685424530418016805265076806113950112436294809974967043496296974549391143684563848996975076926367190330645307120075937623657327857356472473930748097036783904298416887348328972570125014728916513789488100665205777102989200264656229808463055363517360785083027285976846401382661291700316980668478513428878097526670619102182467111464003049630679219604442142026066134110432516335618599327909241384759923657951414648780508634157126575568022142547712091945180417531141479981172696402416563619514378052991592989204668032657157610172583634466748012372557098967147478058157022716750731901489775310409132236046153637978815224426248222771569096858684378500056107060011728426734517285652778962732485149779323286263924136603904733725915175361847854106015346015213317839665086883200815619172639820185034544346479903538857237103679940245449585274453929552082678186106259315279069183137427731836438371635654116529587167674704433364062632856572926975249215524771442734888609925135297300079814103641132014413093976704168873214039464558508846394546943611920444414431433081276205804714938195615291093639738417311276102569491154447575084843957326290995512075445257306974985150539864369128012196595443124847647735546548098181712535469145182010682237419494982766213794725655121084152676098421542039362973402543754696092577785413103371531305797423899574212494103786530156105053186557604770900768543093110152046579935914777713296423915861659231976151636850595116295816344566832091107457937842920955540502360092720327923217961303637824414853085287450838856951629468817703686284503204641626093051123814025467512099706003820820503285273931354341374669068916694534449505708341784884405296584939514182755247340454525060655796735989550713232814674497234094839117347623124135836330426026729985675729119421401462721434029663032484253165293061227400252529580442399664978250469917764524752168058554799055290262240542857007416036358899669920339100862454375266878266592788531117804309121113420617664176306248078276426414149233891011687264086074453981374457951411816271553670356579503857913099739811195888462157534286524727582262841915147066593694768042916826840874931818123518441455261178429262578049864893607444118659554748076528776540177740389021923835638403800060100947544545374737427950134762333404410948403244686959181374755836472354020495643536143809494332197480576983816880168633911415169171576888113969465794292095578082131951542058588308514234593950462646484582411182507690332130184358228898385412786976689776084777850585221005324912696274105156354511154825219383925181268325525552701630933432998843767185852264487841630568220860927752516158548131536490054915665176275382934776323684135632984520119913634158816825346440962534999817023215981821276494510497539751186630896362485502192858885542010011950776079686948697236212431832167584580033439631753847324435470301244350148885584145714080718676873837078058238692389762435358966099099409919244537612964018763848173848553604492147005492124218155202297541299760061643377747998926138402276406694907623170257951329482461618966986416326634873151444195015190875946766716826449147990135856893163385221601976014070251702567183376874761280668785740243136685445207373600789604252766269662633873096683733816053836817076071387590723368957582863899465620888136009420430105580696331248633922234188359350202980715941929549221491483322186222198332237889792656654607115449050221610609014055544541493897783309134172451445277842253095577696667250251262309528661246557612874829756855506594674955900249572288019472580275761366378084201033947696446522987795872035066750191522812138737411740881751181605784489883972890170017976732698425722933258673825152062076856588307225386111246632974681303133427546615510071249455823820463688421129197185106926158767441900037646084127237156260659094413793019133452013871682403365896907302114352088813373638316537705662659591807067640277664332757977935014043116537296191364904570461864126083984299568048565408990498804692006517248086233044015230156020348404791558633826778254831981833861318814216549162756767561917612655453273823826514012558242948250741848172088754716428235675748029913119372211358666180320382023704658913386348050936544788623775770155566094872609773711631712614010388259958248912253818164539502387872282666708884001526866411451657912505789553010389617841351154397432868645971563286561023661699823072250548432500995712484806934295725439571265231661793856149676110102793025806605357023610481606881789081775236689497217629817234440686805108354256248865327154789063299989632456528241153932659501991338025434934369140913395752829805389733529977638348556011519492332222112368754198784788575368248713106904027093338029112257830563707027548675766702040086117472955986445994098379639417020963798702234230840777147941641017886356227447294383724552559558835621454449272311722167757529111614036904636996304305645708863183398929303700107582301447862696793541310659241029161572988734971604349490568924144836431374022722902849901943748335395410338197827550530863075399621144834339890451971842464653027115898821517477861887148611127766796414581805057791576097040723966529757953734254180862942537095775447966571092046838821417612081701814796486837912250111577849832145079643808363033890592570479507828804314331910907769940244657672912988077580330497640268689925965705088749426737798651968953596208642495829087648617376814900246633783585376819377829543865023106847655932809182908410536579536227440462302995170259068746684703941992596034007600934563207690267570940943440078526448279308597979820034694704282177582374858734614390343895401970270843813387924678425488093652337602401610822976305468662624334588144830532778322559452189230314063334098620739782896566231078155631074016359323694851463231229825077865962178019599262379260592346612133132433842245313600697522355192111989140071450568962597451094859069979602497906909403166965638366302365780070843655724022022741210744961665653609693771656544978039472810086781786451271396564249838260007589956070194362552391490050625476642533936300171166406295564081059429496118405983802589091725714109450456070168938549060402076588094425816872893694945126545929032197491062450180974729164082880340937279307699413815214331697036759346650367270962980756298368226342568530775203362745417216691264192441768900192248642216627881749912903116694409390435903273257563149352523185956883512598771339139033628597539117783077365191549053394513890751988909367759730946016827264697474649359280868316719180411578568004430271930573128552625825646970242797420595156030140046639265463214096201442321332794024804376205906437097383173173094156735782503804625680184299772909662180917475054838280420767137253579417344631607293378459771962237787962034691273513800943266285629639826623635779531890401436678646567753154972659038658721699286842344823528222386721106748926915947546581344619756346939904626325992164061692579499728420118380798629301282622995990090783149952251120817850154299877759314034138759431329104139638743283598111877984663462257992852309298633091584840864268093745940696558226524867332611836220982791332100916468878926660321991593773015918304398211169918859425789050652523717207677633146436023743810283799238557084908227318774542121193331401743753894723448754532441877713057086302787952880431999366749893662558704521228594379313565777824352557422950656381457239503707321189199363907567420208413269311536310852352356876927087257114011871235165723005363032972640477887712160403082649622430283025673497294295141460548017776490708423845814557271802426526230549031453081242519594390789283378268897614465994841315972488559289311692716227527739389397977338015529695359997455420376237965096511233236881978596909046431846244003349670319725681834571273969582727180807863065472051931387428576075068376164867867690875776009819676878901618246502486174038953660758180903579264083465648244372166426401705079957306999682719106436080064885679758024570138349019818202727098511854008542521795390686077111326833178640047723926788971889425339712786051429160974281335707496730227185590319878491188387376220189374934266908116384394385833721324389977904669804701296640074235387886070331377862949956335332554788272453341231272180182772539380192655793608996161870427900461300497814280617608903484430275308247984509291832292925093749677044470910657588078381271161830501025099619843315432475075354337903519722012599470609126004285203075233689893174963158729805888056364311459626044976173346730488881873178294169284954405510730518551980038189401673121341935063408375719602269452131700689276087187741849844664194963494344568114072387649888544442964102449819243267944931270885157287582214946744586368636002715345885125767865851741253889475735146681447437052261300082885551464695799496571230633491625823767511240785102198874483584420003446422878816910609718443165544659196467834540630034209627212443731124067044725076937865501949245218837682247663414742500244043687455565490889855671342247291531060076184919966162863684152523347218363066603004491621383905959500129512298546555129775042997559198124366852790592584773215244572094489042642606360010448174078274529772318450885414465671456608024518574751110997592275513454475092372234603000809828477405315658468987526666972756966614801864080120533366490554134428283732916640400296158603881079222010038143935726586172236087566416651491194974535206336045302901611462735595545790526023190564368258146937504742066147094242323278053047094625272097070687900097528802262702253679140762004345446152931684874091919320262250330324190811916521198590698954460224143967484878352131076306166354989786111780396496233721394333671036823509375301941556317483417214973722684274974729301904494506682774345548048272666128986071957696803966297951110510453986814962792261157716389294375942846814985103039933165730879861982722800384709223000557934715848629987720319273670693797974428892252751496716737740147677926854410945640074068236981237709686771806622981381268627836740060407246481417656750575192011216052861843652040167398681022104218090059971096972502957990119094594462452172604398498603034799741777486376984914837329802317337145794365988738433594886279830338517630210949872685958805316394194234925023677040066532465247850542957153364301401472130509999259551868212698875912510773093109763754818554385754137802625908427343972603242998772293849392833579946438357795968615499489897431760460392955902255940873815193761456911836390437854294182943152177041569432364538594598538832580452900498633439713604611840268518126696981892010513639771125518675868567220225821524386867644981704852822906182837339181837972518466455610517768522708172842770673264153396771483531396627139503918384375891898731109716689520856005976479106539038316178916990543343472745154434294146644388156182788878763125067943239051108266375151259533855888845569849036422819315404928977810673265343070211464866067273160431141333672720109887790109120344672101465091061923834992628785207319507393689296541623841332868916873143662437286068685384351395395608635569233592616253007330801641229732004901826705515276553971830869239933605410683405210641226368184980795449412609094008598400178825085856176310080098065504132193446575011646813003561140475806421547322132343220003407861883670388321599244946893594534282283364753020808031684933306523763291103336517695324107626499917038174067574581229149401000094478648771788572656024292008047299497692866340888135115129017098602529850634901070980128612006984642818591713192898027458709335182999862449629516763386227704180153703916322076323424495514158747069952404962573998117615786483823862822006820907712396312718049472592224766671332019649525324567975967922268374285512190053887410793191394039526397277995347265332242756176638838784752808416239909613658422885179999163314751354392474939595766856942390022756612654986791719556258670655862671471552618477058356082510767213131979806051525692783067108223973052581167551671126918614701948830202028900341195488564584636422421514675285185090274319272414200547493743883251934360417450246064896209136248860440027377238080841426755517494599417780802289220021961333381588654402732435327924752154052958991266135861261534839152149799040395601074983611402186468729199662852402554552764989148733155085044818886541872094938787946285135824036867701873627046291970439760446229041562806367930923332012220232099082975743884777062656354734525049897273546941415082155398490598225668249113244882906034393397010069314161275879306991378888050641454696730513894730430427169495280200606332188121822967164651854809887013099822458238142139816358249262360326090670146147456698051631864358631963196504352921823217493277040037225333815167880615838059547685742455401467401649997291092279004806858294700625875974586427863382286874514593978974639824760117736862021125936611285213677415787003509636021630776281667386587918839145676547942828767071506197725708577369386291912984361484889308108067946481701123773372083501598157179301640475643138265587342496153814034764585220532837524000134180260506099721208818310345550973451668776334019176198782924943339194051914354898461058955890379618396980077213124460626694348421119766557725097159882300651557620690312677992535507290849694529390324931876657332564716233640664590924732605459146796694931544009088752139977684081971351475075727593348597336116884850632018406560339214927552764809310198123526306386552778643181677021167962310415584775012103762867253877678208272599944018029476570201187606035911389096991228006412412837429519725232203730474092594483183442044694780169718592068789789676009934541708170833503228440686403692388156736681026590706656674626804026281469822104131110620428064404242677136887128711951749269945098925296306625375393113644421410132899801274028610903910593636465229187299201301214512565971379643050450004915845685034523669430025502339810998954608723056393478514176642175059151599249517879318291249266592145255740564101591064404670824980247524216478180835079076034895867284091196683676450823866500326475072769475627171538672912948055456958097202451891249998387188382649718049902121251488111557027448493627201256249159727334338690373603165554371662862603305929677597961503914257493032171661794243859208466756052328573152648836877039780670038648507064487035540451586737742170782754480910720051368763363839614841094603306208131459210845796647723726489798534406381580968276833117908816674517914153854090559326934509504575515890400055737188092661363656040608387069925250447500816432471879081183598684045999166355403202448267211218451964873761879775280877384218914167667840276836363107615074150193814537449541366422167954541942983560599926311620414636326268952816696094120830582901051285490270095426291478338938331156209714544211098649513646977175363132202636626770113631114128841491609195630391611487960705283366540653617636967954338039021566689495251658990330827209057617824113262955482887203119736242173524673883112723223267309874035172100575225869434898659354506374964535842374116796027740402891341970372490690561941410974914245834713308762467327199629116497908661549146465784119494844077793367358361156810894691003945287584956179266206181877936855037865058019619520719231785337033601177017603999544009884955792781490257598202380704310104831206959877910736078862446593632916202441819464862929736624221714053150149934091349853447730600523856693973827377525820596064356472933561279061470553104813833413568954653108805499481288599078054551955592419267345445151895187098829940224949380816251960881428541135707676717762415095807386179948078916771630657241292727660383021939255329735074675980761132622715795831703054100986312417794645655629842337728053711302859094392678160774266328199527515542398476130055784120680637457957853410288036837239592478236612566357384805892006628355737079476148696263154719928331931449030414643185570370478915089975536449816668744258044849582866485564861258814693995376160188694533755596888991898846058281264662714282663950343681498642658666137017037638062848844208032684450310307689843767017235696683504459559639050394708331740469975112502081302579301458571508125806723747818253317340135997798632195545011681898871565964504232094768872748026060315282027697859327722896795613852895550707472706742561216215383093460260431707318051190367108952182885714551555906021291694121396044242269757332190884578564389774465185890084876352147202496666867150189670247818909790233413579533058810906070281015884559008796959489310488089186080475878168765829797880489840982338898070327469108210931405793300982455711055764010785354025384378986955412778468654678492823184351236072584769357873747735785171200847257012675467095932730431085366929697896258486908039516044933423378631735175422140585620326728940592101544321154193921182614610128382808921935978556307572449589769729139910639697495939996139068375811705784182633589808095775949886550360354579332405458435467693950145403616133395885595139210629304517273253591944673666484296921686942714115390286438721433295262061034714962300356169691762104340353442350606002584699915667443699800389138249994649619232184473391615591317446354066227124878889435376938776854618036527779056697342946393418463854930264831412942078949206033965885710521650498473108224856899346753630142123554917020178595139846581975728686955970505677723326059185007974226876131847899440838844831332757323488712209217646222809074624369085104795822392111660513019035089595655530452668325727779565442798080935336626268146010985723127755431608366014130431403614416237673453278940846091206366443216622280539214407155910230390422884393337386705788835996884092940427237650043796253462171570660165849695911704949547234752526334975824553440360685294760784434599059895130032435916500062402157210344250537618327528485667130361833281887990705426302867219728907530922689126166380747451202586515617210555879965663552452788307244333577764529849051110524830433062690168538506453144855936006451177687995934435968299450861687891586735316792497493892608970996648996648055795496301115363640668816998587172701259382078388961020912296279475139790968629532223745307382154155874305513133082145931400911207754098951866785703508666872269463452513866401455313154901544337933086816376403379606727081146427682690102930235308433937986302386121876352426079745636249225828823724379776908122031741560682990235977371832884007176310381969903435083880635678700532619989432730159676749808969075904454880325060855358797272132396520945947320043592773538473825560825279716943885537828370758892462543195512215311621807376473802974233732947532404685666508975135762515973068048048117246653104567658790562571929711539767180850689896556097257905624315757576149262345202963972410331057788405553036697566364098264964118118058708350524361973049187105404547248614378929187810262421800984586188148840439043712989747624803125704000453792818606872990691608010337708080189292108966541837106894143950239543851469177534506076043421577441155308072821147050801333946452432749257300205520639768065316387482922348634426483743438484400391899646834967175451481576399890787583678401420268111076050867764589935587188432039301415359502031397656191122393762565609324986205950504338134546680278648634409178739778621787576435683111786862289687322324133970385567134250334720192692599677225983290177566334183531891271288988671349685224053065219482094443909603977065370365763075518276508767850647611616969806553715676326510292245491590380950364309721854581376266040170087616110914321761495138807807725025734212494983764548109877199115779387129663423983029460504067126126634417312275856898820495734449403764905903574488317780290927353705961269923385634045354202238520000394391263413930578497963417288949312664339575138654553438131339875531062066582312996779588586177031974269500046004040699613403107699720295680315715955992576069909804632603299323457742778770840970212346280473025760181561097103209623536647331249049161822369608029563747072219589032828872455176763138131075848775369995659406394216511901344881358392258696631173701844388306592650013299988057768909448086855651422177589330031526398239478131980693599806545269961521719364739152675690855129280181191350719510811685044066671291091318484390434495688960864122998921723792644854833247034903317365803054865333460081676223375287125782989483420115919228061739609110398347755519910475091190521901528245653438956710485484954659045107234101741245809307703265329054861373766731325276370227825158877009919475921732909476024974574313758540220792156720950210621626627266718524820004326432472363587636626550333221369082276515254997442560770548834942243330986224635923353139705786953107859260755822331542714348391035362820291810666582704333366516424409419986618602315084789257117411416796920002851765528142308746726781546358696897775181924958792768357428604488577274287972496297394614156557088028510556584464393942001040006848602874155119804931531825483393946452791733132820311580493935478442269009919730662993360646771383911334523190371717902870104293382307348797930804295541101538979547226254295843156794363056109859047643937510750750447850109870890859717081436735445162015864830061970940395225191280643399345984572190208560899007487510412854372810997351399738698681527885240140237313938592753961869468832789251690938672759414101993341412591718199979429539119626246910320906534254923809180703356400398126781387029879461124938639174980638398747703587446654359860487441346947393949268652978901968653360085803079052750751826789825858588805384428003348489357843798641932727943975469056381400555954125174353580880586943362705700556316284436901097740998907627314905056670360038198492526639504761261933217073383236249935692167476221219633306725794886664845991272741578920268978016999115196531302482822005763210854258979545334886274865511123188958806039214968748899596655061599780861577261558317473719123400186133481657632521893388737963539000900438774932283814153777373626394128848488775884790115337611569612847304613028334754520240368981816078892883864018166864513223816567945876565956040448291599176169663373181418607309351728936310118794000418046021793375055717743121175406631627436519068269422601928793887209837580350876820325062716287440222455914346705860855050749115833447829559610907449865413598001856295603951796625804515177072081365921336055274043184746417083746527671509268492111789779365782582443536554311221664026612299828225590311234096518203172675892857756829552103565035403975904021357736161600050330884433965821826688316564433698263170597038980822695450344798767831569371416970007016549072243945388427513675519331609444913475198308842435524095259120347448377227370193112531942148840298614082544414702038429395237912811276237946185443206545427787462065409625703180940921240321436489300723010664209040660457041940160007357567068984400676041713559458679815425294705806198963975807008157236194126441782926430112716322366892853036502824796293667663286832077792659464120196873095045034165330125807155039845184174214139860490934025890376728226497295692253429726212286558101075110051151774627412066449033029769916053794240402272525493994076045334023834824908725658690699207456237791888798653068706863208591019665624173366836530852625822120823475545766199648158672403856325615040758210111305075690780833102360214084418548686608881027389449299744436079892397229187540869565584888333701737394417536551583132687378010040072079223933695505901832119738110663027749442279796921154373332172981473515068046830021045152281728226966888781292684473228125801315508397522403546350095530236260669868404217994008312705293658081139510017150719927071438349663914517500058509054336838272196763010320951284745862048251449488485007874234525268366301760442480477006913256667786350802571335524742801134841852666732331820515300468850770163017198563068013378133162583337508867888475971082194609038747050664771414861292571627618698824370282158368233785628489322485787096316179295318641341687326797684058910950428147492771319080070974037406144837696289815536193904127200609722081366292045653673808877273185535936162503127298507694037562893969457084490691210870322061630572107516319312763547922035234078019178470291383829510678700949340662587791138794739201421491126624989875857069027845139970035497819385470066296846498582276787284405329565344617475957025509425680001609884336172931700015347793154893788468398161181771992756248527916435685545878475865297399031953709372875607343242858625283373663784863224974844699799981590876637603238500435534833917634068864768619721082858346379123845815825714041758587907584782790109431296725907128068188619028923132696260242697438748714508760217767589618744899390012414837456234002244284060633113754842473290060743445142111627063215844855251859124566311173661369958314957022045353087196401991317341803870913992174438959622098588046677281168738422454319565242483459370606555548311475928449880080299455257238581780729797417856819588878845671893910591562627891391759034556601879033398804207030405905259509148011852202803914448613971208036745727600204015226888961112052051576527217209299229520297802095602145494677907067596229250888126079117606813643438790219814078016567618123133924091155114905455941673849299812300903919811072043030341461708164507637959101184541496173724456626897917760053170107357303385521736867253634009993084760014591844029628898537964196185725959145995705763537180324271326062687533538981512996498884436281981898772369225419539417042385945105603392504738742608342679048155529995338278247898286337295609351148193143491141185601305121472008683034591466211209999356493993204826900508700249026769060313775910654565505647015077789896265432252492608535891620771400294026399743185050032297499702956365851092370575263376061008003505223444549648502968172416830570609703497382672305005979591841989036912896607413757061230569291412020081377769895694414660130298895292036216801329440266484566731647233015791895641053801934254377984615072266905430860112279157438456351647551234626901584374169466492074330855377750215932185753628216890624206173231683442870035883739189218771317228605334585519409077659477276766222121321269597960279666749320476907418651317091287791834965856262920858928750737138122707610796109706786059194547002022545053877033777336974474430786899562721644189546242551353696891804861247273634968221088362727150962692088213629499080069180491360458100615799366171903072940127004713629464488058562802457533045396851229127309710814683724524639075002691823699097788785461284602848579200605481372071342067265533978413745619114673702717356229980635875443244052280047872532970798479835185068644894762083404921281673371537450635588341599954629031116647433151671071963438538993688375816494768345564989544485665591677530607295587394207762638813622033764139453725883213750670901696574137445014363718033079473061269061144867432244606169248047606501114265688980851436408892117337889914900885026120870347510864541713616902782611991169253356809655579137752222931579691121513689293871022590911919146268427378179202912374000936409651173787649616760494249179831474354101894863909019795025975389379414931252198052936620632291240391817591040081101981956369844517697676221224769275188868672183869996387457781916361986454221189769514460433644679514981508767582835294889670394816571765721933578341568349383201968042005651497748602058371408178684609880960806408287344412416132603052858198224133143649036789482586518080799086553485850779708164018493160546873023977144228537555329930343576881987072047091789686631778322395993098224692558291296355141978542304598630995705998337350740414349698493312855491170776441852869212198429757403196281713752696874630066288253201212609254109021450183401080961444657539175882226917436560882892989069288229602957921154427727823306456990221978705475469284828540424093854537313795908390011964822999129901901634980896835471187151491799077993741784732934816091307679435708218867689900920937501020899883678423099953879297974464955739989033000219631051954585649977991160071472481573401830119283805522803296447474260872976525095833425689880495709691007889099891689347501023467692536976271849358646868708768332049813367912806857519014747490193224217231663347319695244806260021036736447415651515617564617321528461345783014651642878109702504614542323979141437984380669352855259156910747667464646023406681276597866609427347392348727795275752495762475202878616502393562582142736432243818359560670475430999114449976508334935722588944752309384511457875202228310176296365218068540059053192650908859961961394041916624970375660292944618252340663642133277116253800653736337714658127968015167094403405708635237022095812102818110907977889851180135137459512950731644984466472005658677141231868990380802916292529633112664210585200631159357528349828714666131144490359026700964921744183032052199131045396509976783516668939261203164438589601657729833555413014469605528093145380195695758805722275759840343471095585273707703609490277497400245362672878068594834331902350810545899246609852988682902106943018270971608280095030685830932280957940311801239363937993708932260929601471339102224395041897578992557864618057427420158033820290830108711278230600040703780438774879866770344412200243733723711509208395843438331751314573798484504750905911124415336190638865386677250234216769646025071499316435402588979213298850621210231561355836318964034377080790229206207790914146190189898995248572337351748970255246902470560292655406818927966604307159457353498462670955230591122127892133301394402555332285770941384477379845618256554446257486008292221663178804562100708262210628180458383827444325443176596673890099599634942578480940390656059392489642316160218457890752268673943776555368385890568182993869228133962621128585401952278873228155899024574471387691883166789238175728393881933918757886327723209595035407473494099482136551431712383046692728180684356914278397213871103958283104547687177265728896635260292173007017804352318612062038091686276732959366944016409390389634441978313912101468839763000845746805259264233518438609885924956981221964238187665157611209754575797063929579088231829954374718141966422444348388426551080483888238692515617503211310244707892345017104833111377084310867068658707881507110499363271776338583444785879160820308777190170786428686673000245650616510506088207078560569025006635987677541851779881969857725305290661961295211307182640029166756527882347247005707955077479272546035811646988550911022770728420813909342408721096715855928826103489244237312482503306016382405764983825788907769958871012125781630530509260802054713694303962807584482961365026956292104878605587920969110435490930317941984364423115931931981225946809053174454247481810245941128157079534838248283189322311875180920904208824374824080702210586769798257625722556911502681262573159194023912433062537499403083206109652163018107645062634524304623148411033208786283516626325864015302141053375845424944282085419847441193676593858068095232339321854840103295717540686019460910741224106378771538033147773488014225605183790343462432008530988035647611802501431364580851388635799230973327539562332815709276093215494528711091468035302562784429073050016925567418617429502923519061657661232867067525910834358715472580407847561604286575082030024074534387036672519423097169550884784693061791526021638027183849751272909184459431437473132797638635171525653680815534520356502922598910565234713734262232169476718757772360079975248500005560487580055449431010591432803253518045756627424364970922582815392481145038138657355048098932869215065826076291666661471328893265819292478232512924640783120900217348124738475133122991456580358735470403984858524488489207482606012175509361162174924220178546114083909049004183747879912372285197127622243640450869449358633899651578094899907768709429986333183738534184242345734688369563830014880666592217394476738726289710406176662259960628782830888078642276912677849570300235030764343832389762039909614193781495979387597004901022219796908123827020902581284002897158153807351042082603538485183976110028877397727774100304104753627140309800525576989023697426937037613248274285856867388478281473179759164045125024683069684403530938099078736781941699848645436130087966362567680717475825538460534716616181807527157379928959783152907507115717688582215871603015975109759238259986537422905149646130858024648179658883852750617976874191839332018201005974513359339527672715632013702346146763585134265263613981059020737427011751318611767620493707711944419555122541756212703397747361071235197546380332463335494084698273423433648956802461555894077090341393798392895538175909599906593467412436794330512979612706857976027228055970546173249939126790819685281526009424200915465128447219969240647230993215516732773496237682222767792007912988242204771929971151868568483496195506986107511354177297941836815808136996472355081747382811508710848183431031428668509588846857369571423474916278089577204628637836862413696257783124391817510948109243257118437752463860666477783555762604241641156411445703060089213657557109130148688208263000933403755073397971985798382363048367081402216065453740954609309199468959094895914752583780286252323637112489440067932370961774488185099416156098975226183284844389946602299895008884995234882465809671544194124236297640412036341589390327447014299564856556177575984859302196236171305287544142730064157797935410819772705280740090733746955926881248262302732867263530511953345836607798980301105772920335314333464911544035675897635594676163051941271879421532679588005517489058670859086241848143182621354641790425275846782986009100706286879238426735786115627541962251594387155738087148387012137773212114677206998942246397423512050412394276847195984160693826132913163259797752338393276461148006732172450588144857023889906552297038717364263196904188450399177909541348398670288227771109880724835976289864571597119723706123047297378491693825259429630942978648296065591421749431304382817629247193007646117393044890014206506957018775210820506009683754858560992617515949336144118804632015681313347275876315048131396893367112491133874949038925723670277613025226142952554642089873618570308224741198418063370367259492333504089542035423791826527902507377362208663861077172175451578016035515533696701503239256640016318604049678284335576621741887791359937748236924620838346331040760509426210411499459246199427895642847640550221792599879330653018486312067412574743724185717803766158498463834738870138677694061712043368477871118911185248578095534182090031892940851395589466823294364619529954134747105588408184155203463768050095191568467402061078544408478484222807788340203995319641661827095404586234210648621731770324353531332741554004289376365581320112784066292510384188709335334588356849552205048145256871078529374745011295416825783549954759808250117731357691431618877039254074620328217459924800367822555506310987002730667172697724302837880053132429381460423771960749527176172066207605669451645522013305427632924760693142596155048355377477540578113092424632658738383606675525983361406170241387881198286029150021731282344540738234809610682871669440023196213996166711467008659834696156297741102117140053277314688540776456573379731492268804499472966110206749966922987219762438366248337945897532561935959967017973739865753895088300023948399276009039831315542146699929530390661112402470580074714399120017575984192403283325370476630210079522299185463484880181994780240635051580893752935175279912788468554593660168447834070405925846049472977198954230536337635428467170616414858779749421924622138100225761916402630867017689899969254151276405851739169385005831980013832104692838992780451561503870875253955768182000936189090808503608550428355658297882428213175819639334609580808215256437523698148404133817284761060742857838332322631113290112213592806568619592048319732993072707167543704975897398391771038112169418766843367085344076586294485869316662652483006940507615275826102259253535735741357805989667583209694067293924495302979750942838521880896657528063147753714308821446530597193763364121090217232960319868630966141390410422170588103189740967303009761806068102012675804959060545426321459639818130002160565083092337406003013401301594332507117130939881269087131151263378309379308520975371383994479575127900470410277086675730299443516563708169759722292826206142093040383089222818960429039552401548075630108457827133117682764617175000638456992996554961341599851710887015249584854886638693192219134807163696066569355519851850718933803325266371718357147861296161223618886206888966374283380733509924593862577539886058984541471830372784014706345404462562987755819180446402049212902572441199017174209755178072309511192071536554303381956510669961457376872745453224338510042420916161667088011646442121266789487009925805634012842943494879247690813521929404543574510464726486978783660355831110906546550808146153587778464481232083664966338349725394532483039075662049629885954726064830370546013290855526696721658379396443382371623096128906588505871418838938324388128845747806372344528545632645722030711549589689296061843873607515570627115971781394397928316071431401946937383932045377148818569199141866012891712459250248739578927485974236431792720761090817992953183962389053009199416923880297475732951825337909920551353244924004827816946878924595272360524757833815537811963622926642887889646358231651826967654425576532814723721976590034911409751156863124498576289806068172416802583983856182899863793270177849559601590526112213350532752798807948856306103841821654928552343563606120119295855617797640267425869373731203781102004373164897353061553772216718042899779263408411133452822264022597382364687132758266666052562797070607420071982884366577545851912694702907831663610309059958932775392420063518668926225040420722178517666577710317935920977082654359347072232680310897748737754494908089775013009090446377008828355737725944914792139220004537310852554261432711963026806032481048962563876924190698731046377857220388982331508618438713708346548618371235604683857960248951708311171568126126198283914652601466446952146019347113823141510613537126387203809742743022305251662766308064628203197989795632538938223264004336257793693292768140680820421932218256286971211794586432728948022676773227361899597674175569680920183276429526885158625589180504796109159779435573323565490353078746660374580906218939385961164061224579942229236158812408838418728132183272643511556499188349860620106682427760845020110637580777960955567353451999378735458369444736559499821992935766768654640346359012965524515055540252394624110924375423702297123352086956372988265836069530486482805789155264434539696738538668391105949702032672736947952446308888396771021450611133683400115492598355353501122879476914099353948458422314350953732184812284434520833849526554910675530520260918698321338497092621651575040864953791893669955096243898660263115246281156653273816082558076001910333882050554845110261378191899058139193049045714369299136193491635486312062586356364434818099431512064636216933972868652651483397267464964930165180254142927953396815895138829621378997452852228510374384899744388461622914209685645912377778207272045668426525864428566740847258925390361742639032122080043113171445540065457318219926615878844953067056624134404104064078303933902566953087331112290152871392818790547043299227957482239096627310918221854907495179211742360501186109191097185730069183164266977805826239838377413020288289930149254660847290382187605181832305000240391403130304869900460894917273764582830691176117792537177262552436148680335080597273636003390808433487753203332566915061510881513744986480057064053652785620446779462362921454679675858993180712415612615333601178077430272503197990088474470516221865697331858284291349691975689566385261665244038870818899987737581710179527924543214898266483174666679616296329584371343873247592960195191854524196302349258865443660527991496916909549789577374816285207314279680287661070964570436080156188065563909573432872501206167043878611402465627581844031629502478713980057521624745590610116693595951117546130797214781757589041595051139575297839270704837377240604725066127318715136320661876653478885953293279041752341720008147617019772694674083095156489448391129562766532217339996733731829613534814641723921615977511532003820540219315090448927378592574073164946613453130683331541465804037937197427436143379326937195403049723662628971722213261882223023102662410359291000839402316681394780063010250808940117816757087711673790646102682698674199802944129743535984367897009734259487809008615477315462799595790347137628860579182539425792953021618830807827238968789001704837265399755578837987868618195130328931143358820463427678463987998102627578381981167710145850811939758427024242895502547968794433889821031928059876881015197945051937639787874255075837394109208427492892903918472928746996600610621280232590032466104150972739660493415057944895066516309680170525036105085963089766102689992857941420842754947300825180219913909767465174172783017355834293384243286387183489055706146216093553083452002872600544404355837223873371411634877104881395788899721160368812381020248071164379399255833605200017464687672032349625355413843619256860430605415168800729774582220124599320448188167937291390161409157582011224512470977181581140668505609962579411912751968435150807681042952946243394176945477934842328934268053759716720087367264886083513326206437508334136318646611955854229071212838759370327591707835250138130532315019973431675678096065105232420661217829837280585199148699928124799151358239236728480017209640885329350575548277652809728291694377599094103973102809805805788705012266325620984883858510576277924740878791256160633285418309125634213789808633782795668497273605011000193170354458818515969344059352887715406958543995329697312870051739494990106570795276014376753082654675496495054495414779671910016491988305649115832997000210752572159456005699085293317582961906282511457037612765082334356440242202722067391075305490594552655602919609140645177988096143386202003877528152777133739235952197244156219999336584127075599354823058482422719256436768086334907657899330621976449586066654494016154709698408062189241952522564420183374446750796532755726176480368356278921053830701754566072709735519192236858736646280910763596382735130680903534764974986145869274572775437442294405293823738923840620029374077935360257794928875281869178522094522424457344520461059530910938816643253607142245043461691465024795538903723091348990475953675320100070232047442550629649316231547277871884755747404374840812229886109296424283764369169643337996971362741125644544965048119303415122678317966516302614692377784067605105749459122179263667732781854413488210351776149422704173962820024587908905670874215036723823576357940454638896220092920021111283041141944796595110383679926256069140340589665562442692564451858625042433162172179951857237690038012734493200678194615054689960527033352225515434184149439667219239258158757963095315906719029014891012956888548760348216604752060130022967434758251318361071712159193311435514448199595401724051008004382680181633006651129588961180921914258324352383058249619351125834778602440402364220044272883174999961423507895838057513531203414785814460544648553602628217687590397837160483942852450625864587163671410013359379123386317796919572169688526954822613959516900747440379906991170951196003821002950772520437743067319976760799036250020724490056374393964256304007725212085655704576819984534826821728173887386069602421251506125234860440280677265491706842375686735315189332994311145465274124981805936783385692497862040927008139664098035186164352223264022869835529779529129896498162563099037538641895569221330779347074565288720122955175562103160637146848749699924232498879013456451869866310353912019256177881696257714229959396895907000859440473264630479312419829669761676176953285926744077404641264350210380988197673374294724892070656829611326774639216434794192505240598573296497922190082814339700854555422005345205432669009525930348667838018566020184231498867918564929063511580715676054716134440768354241884711466333103767800278466444499301559168473429098844701466008808487954653372133968059950427497135387613263985300763083458348568162366823849208144146070139146790830976274795409715517850176892935717262586739971665760927491956476616179862867959094101491516717179422199061674888806197425638266019231381066687546952547810610019251790466889866358569120916834746358096050066355509772662250846839864328736431973785275731639026256664431548827136684553923907152244849807660645599749152077038263782705271241073748554855278305417281038328077703261341580764333627154058449784068442544245313430879550932968611812932527790050271336485583359070518245220235969959875958595031667369676113096633939579612898348821974970218994977182823900253900943986303290134120392119969707950318391474942409504589966646103078301525986817936096953651315449198160171381949861794006390030191632100943760866726754191055022600416301324182909349876058982214306154841292742015712910399824803432689661353279404518120842177576516498800726037313128069688826159851364306376155392553726471133633527922813904514735575267377216045985658538425702968831678372387065050283317796496737340592387564795319345009995540821493925116891764966922255198511430734256515662387152282341026246782296297086806726934678529689238033095278016874672044518565102357641016947777135171480754395256542439164545828064380527236124473004567167303360678284907952104621149071197021732962701233275443114914193457082093874279936047071251439176721153662269724873138223316512823053520270390015526112184564447804725962577626499746084339995654743435457661628510581841971949192222653863330247393462788395406823205777688401494893701492326285865567614603928440333802107094780505885799630274575921557003375725305436207180386575836293264392347051562164343138055054679031618602885234014875975939198509634957809522568325980033609173658808426395357427875517330199698779184732819386393021683986814841383149680464922541120104765338962085689438993216309649642537566208138266378886834352623246461241753911793076929535866072238523183544313880296605077691859609876445203127122684784281119142222638847065412636302400044742688373922334750233727014983669368762552246561851517751396395936622135751698036692493966914975840418301906638967387186512359248677187921723062690033952574727630666938986882647048394337607298409821650770531377006431441079456346238135636533824931548821094777607571520936471588309072852008725330254042241974102161250513575892734928292062448524910923722466517035139270877760765863391804191806509553875682540150348319114236518923481513837246704435287986096951443740210746526056375605235021970535217595459793155567590533687899268815786559808552035484173071225244501666071262213984297953855129959824787628976982577255277088696027219218762626490380947538349357278936466669495995322822741347260893998898779296205416765485129419199778173639236874043044751600385115976197661146810401533888867671849670091703434748203017891539478090047319475214308542518258912646581118752573575260587362760645276615493051764328811471438737658302323538155391456585630000739379242959352510372044199175960702149572033597257122842736772440879196274255393789256517074536887048801143914119208288924043110316127621771221852677924518231577374159569183680761166949099812880168216776615764949782872201053787915435360380408251674440245554355386165726795070527332987025099193823582856504381749859574847744243817720989137565560696415298197326908212404990413012473059129477359699857790601277671722473993459555042028639248706822483635432987267402128886685538113794437103082549426273278903410851663112627323928947441781444371982716938368970787609584303906838684010239341025278039869395033102985026042424725169900044171750496456176709913916547795194029828847393087297561378749782134099768985060897377387499637729822911440854078849394489329025864886367187535331041852531638163966112997660937916984032783845186704821290528960720975041617150431229040243871889591108330754075966334742029597420585080615204487845941553841405299346844613554221731838445596729665892053276040210931862468187072881287349609114582205599583843657143136797209199033152082274087581645995842709113730827408969366485063965739587909212976409697741228971337496442837694845053904798514967186582297326350067098512514204306145182459640522199077195739945013331359387016923533579601049869176586384245909383345350808644734710718935694094097538768382915908153688691910219444677996950486832444412166846332906719295481202458345250502142441412109925800332292436626908591997952410640749857858677674762295796443620168777346848394006861614057043405720182605330163672669201977809738003760538678494645600322848692028543601715010594714659717967988104418858704223383663258482872871194101878885749715096971622773021114762228913610890852623965233393520810447938237121691559110608512659417162536083699380853371102676296640486150149015170526082555916252350623116230342564103330306900262894136168341348223043340575471398210749821841238441426638129162180150007394989212878128989975874179564402479003998234694168956452827551922986177316834811987989229756143179341671382650462869422958160850499583474166091391831353420060091969950983031267551416862630564378683680938800269295534774364698368674574952612664254539860574214950894108186388910251951968561472365671611922032490608099468695744828824897193375141840100570272416329374688154834931035824064013721239262750316375092767312140624052260527877744724655167782124711351004889092907045442277003410624024269513921988428773789750268199190347734896841876588276437669188750769629255562635590657685936085353329205398785283974762176145927053516626039756122906693578155403583423088416490589763176774530420629146044159071015029945216996484245113360509203169706033061044914689576050604675704694374705328765248736311070429726225754948466307474927154988653293244226631642400094129558457726759509019928072196019636490469934865897734190908960186464219551895398711882914472322079710177009318285300714509038689651334670251096899138269285627962562837572895431379235624126597965787099386449714581817240557295241519033186621077278893610359122151178823172747557486583050387239171839355614437787722611213671950450515613631920449875268547730582133131458147762190644606100772601656509405087232560609749299326012161013280660986860141791688863679412716776666221885914092090344171311686424247638236432180409916528946942029500807823295016216615421489155168597107144151199381836596842390845209718977308869710691394530781014586484440339527005576147955163902370449548038218678881209010434420232919474769300505589843042980693753825565103274251887727485672905321667787121854097584514939427888124498361411203349152039990763150886494626794110253223231433992531991911292810085977564333531475394637051847826619319190861202719447991738370850866206944600476011834016681944961184159967207213117928329285975547306593891117167619585448193955704802757372175092621185450328112547987427718506851873244287311280469079449915429601946096444648834496068771127162892131523627578641680482420576532070753495583483329373966351563611080928339842373681642732146315140871610572312423676308653965302400838873259594164614927388265449491903956987212732961103289906176119316997401901964927799342335977351134707151192166730479252010416525687244800918087565163548645410942238627602422938178202060577646649485388082931803917353112492834414759375600988269798534480554127573723236375123154261224870006271443698232316772972403528882399321995610518171101799495601449534045912291780941916834952018379772663199696271261566833774713579729737784094372625031598062495596214462248939827354018431750991607007225837861944022548106180728738907592627579968296765384184378654311733575656420666999919251155675778221199587741182876469199048159467428148250764519081464080669824377730519183607735133672280951204692214786201047470716158036651820335582315764631942891262461370284084267089373530176226656525452883776222630231793431505280254766019519103126902396302530356828194529516336220276400575168470195970838612636938645899725473971375373931687129809657873900167866960842108033616235968054023473893241495118682103833326620374052741212883493498169364763853291063322649908632905702677350276421380245816653464300955484549170022308457458626161396724315259169449166941410938106773906799890421194013962700642955048957841582990550060638065752582423112551980220189535594705820327163726276164283760366133569659173025498805742556362193740684826503176410221239569478432327959653067173000462129308367248428190023124151957233116680898578132593301233283106831335031456171459812442231539023266038857534271262191388064791556274691733111162355366812770873024558925192268678457441631315376526096394194212205579107675117085981672821229051445888792367123042310931177704918901336717657281703052474177981114669227990300200576764485193062649692621779900175920226635748006347926663238835847673314624744216331873545590631753687993171702424926417811244476087711676215038504433963450176057521524940563935434322466028611682075469197916987429028708436756731688095921494119958212798894435615819476110859026748150559583455968446719991379965217193005281261971475878563008471134466119634323251944219437916598442216807868918818845329141717235921793312730657539799463279855209186900844860733420778693611527192260449104195250368217742965012439010219456351507823225128095446227345605328394603401777990651310078550030336031827195949031348252699912858188981847603066748403611610384691978080941179942850729757406365553678878947657922848075286140360174952486691314222174078789908588210491782600642866670867334857126468516714170957290934258977552282669325528587442981115907292791684033542828161266030521223131840674349654954157336210276581840020753794720401621191278783338320463971551723961590829778782366724595057389325947643362803824092499731180541286569707890601249098956040543810465827161733906074223400847728756810093749096239848689054068951519067088079273468551937185449982477996766522740211416954476105092488228455610714908272236211042731138934797950744982942357409015067747630030476371540237917184512807881806154777218979508537445501172201358456388138896480224619178954017011689191156882740371733683602109313953530018754036879304091978419039819504986013846207290973822789510252928670037011879412137086575795127518709560023440319313003280161167176644511743010754160424784459044317334598340165056967863273661130429119861142748646341368474135272294787930876991921935490087726615948654599293797429175703302861988907300549741286716550778128225626721491214997817220584535974551604858814439795925643821497339702769495373379636469789087277025513442673569512885888036641124601431503669759383592002676448916629583228969057745871067386797375866316873676431075781463483002120178653337970950239663543027441869381275982953611110806847722666081415971845924533918212257747993586204091711411271781441712503942710049601865145123151422825735028068853029791983631431408474534371589365845844589897027513633335239878498101099846346063737746183310197500452906437678765836441092942722216481920673134079542222555997029844791398447836638289734300276527042812209311385470597826859093157729845161632088413372849975887096953843645483954492932230715955805940681395100531912360708353546076866636120679468169911348228740852844083827267686892932395491730203875255389578425485523487382660705590300043717285259313295340200099195953287997728008160953387067658218231797611594483728188784071882094642454189572536250709873214461340740528753511374640907112635761974824099438321336688580856439843529514789643617088052258178576807119631742870113168841404802833299317051577527543813376942498118757540334823548659813061488543083981646190864594447707081880809183438659331016918335396273226362446708854084335926142871875459360336605539742442850641443413060354098301999622033716653557353576138089860650998986679186526008200852989772283734814627723015937601236401827131667397295211489918221735481087357012818844206647638835652934526183737631718077685634847788784582892865245077418636343577765182006017129205457466204217896882779446546611748764469223294819476134203333276903792898443314242302009313957291894700547754753259264327164815458283300432502500078245520418507255227933225352946308157770149497769304364550904597590841844725517418674883033227150963199100953554195720875134374393955360024230316723106385105874939612171155827307269381771183638804269635198933384023526297684867696030944086324966153467298878156915903839033644103994822781456660392408210294157061279958453559032693115688168681386934623974319808562302029163424813088791713961743620892497201214620051761449753233005681362057199245679100862073621694223882148314395951159933600151342657855509923587432685085440196064433684607061909529331640016100692143377003032408691948277141065525352092163043397567154393820770772200402162733672739189908952016524706581112283136715132281324581747736138122342909235658705495944951820660135109884043181372018050182125556182052672469004182365060466259236914303289750824928490888834285926681753948161339347739649872440608430919107595803433572308490658793091469334223014926324817250174843965411920030096453809448818371166210819579663386126548065448803136682538860533038083676327464147412649511371650646411625586294291234173145358883083280128014164575027072707339569731052672808870900645937198770477888992291421485919361377878601059547991182409984492097969790129342105780423797838103136545417107272818852422353482739364941009723143494809675168228292318902664066442452600609998205359021519225633461984108943214487831725831922535545900742228994632690452265205186681643560799208401185285296298400506448945512408504913055483474209398741148372975247641710295483938914842257683309719556847522865989429622470034302511005786599900645695557184262778287110186212295385616367327038116338999496406677585026672792789984441122664951442435569897363053161410838934683117880228378842233397257534073605277655433053482979594442432686445470249649817158889442835854399041416628647096547195217773894185341224392641999015368093084585276841135907119930707668829284777065351330165662837610637500543994435234632342666974956204305982066379254660403877764562633638947190984822998565382077135794336616796472823200297126670466800400739042035469528360779557003972439080062776235296203196088862480163440454328059405734620802681521023696713245314093951438838050352271317907194575860964008692043069393027536699635544045948813284310985122171788276410835204157166707448865282721219579902847491199397853061816182569533196400489245160957539202084511693025286983699428302702901314532226230678797814070001679368061843915175024433446977277267027157785688260691723876546954427436669685642700695187723858454704366013604728099859835265832760869221976963736255928089967625527854983360681105787550522437506469543164405962269930673586358561044141534628295040681789940731732918818341333755838552355389273372158760343394282545832783214123636781116626090831022128161651956022785538424836093277366956780598991668154099553864637541006345237683862758125098181200997419592456444687543826859980190853383185435953042043345812541377063182634175494814042662796653188453168041527797687202196331334346783129591166266391774519249084327844844770852871988119397888759019397967455947957025308450140160347191209073469398500570208702249579603040327181207513427340861632939531255184411740616766083311163186687214503463020581276756102354310157623460429624051697095126942304680123298254559856713232500983563868589460614766338240729709955379705252939256277753663186385290976865832646366663971913056345227411184038460918660745140670390192792637937493628447968886718631860864544695141733934935406495729375900297148921845080895497223914247587499458526364273068115139704010191154552467488265175185211996960235561238186839385178180731196684517614482437105967817518225598644204902661854937959918817314187551696290090997565184361920752323286426054770338625981744333801170053522196686058012137667755959591569603520475246330336775704913433373763166274137250872301837132886688704615929788436882128935726905436791600261917010657949114184317576836891554521898715606155821097038259942619011499081056181112416972119851033263559770894777701590339686977179627252090736103179693671576057451964658075145031043694908897970554396278328504355134252234511183419117340496665844477741111940553494065093332950366285879792206482252552771997051879792943325350841159654917740509289436811964169500313588995241409666319418194632961479866172801551711160646224962547777462038271336506138358615073861987126019988962490667610022946354077619747928742385767566541013381041051634396562333305448218347388795473288303776895497390238845692933640963642707166067757978449654020741111272702905193949354058783993102425963931934700347759218032745950702390342320175031484581307775100561729944400159963895919432895261830545402118838462778523389864586900237118324987180109421526932475165809577433980759003400654424321336582039407914778017348399030874970761850000380603633404528192615576059357409606274002235261315475765453088135181776598503844669053553692698221597721502578398713546874732324978501558573114926678870538608039037582843405318844948897997491900966881210847724475669787736033348811109062601997708061511882693785137302884344547025119838695637493533897032785440689623331472754947427298544747329554145222857171227140411931441072369401107551073516820158511628292325514817524755335322637676317267079260764794374487974562952372577608344350703518752811922174989937190041498656498213503696217957757151225548370028828467097738400419756060355111227879928551953311366157235066534212677417300376396201161861532700946274037559814063275313472159491071632051884197263723145362232831076553216550237334113749772992250225445056885729203689254408528040783609856410036997309172756099140874666941607711114294595230131008139237037307096486986060620149225761043753052410921054991570800641315895707801794697781834556373322939179422002252333802655577431529257178149941955563120879755613640818682099348710444777965244327448906116606868606320423860694780656434736483713158603411831449953319014992811568043629644813539752327022697097485337608790832746616806121852950417138586655603469192717539868289551235501032089029702064518146787958374844579992718970118399753644517705347811152717041334936792945932090366044110040938732614544667267091183264578035045453450624194641243913069685200967525774155054615022466933809803881098226235720315771239386732226021268913326453019903645055260067443483336852571576810575838191259538516174533063224615069656230101968912447098029872556661185876757458095633487541415031169705429585751103220551671022820858180255325185258926216948863121341840992698992633269766912638191376789976844919142285810125181174246133810148888599734313719645050585073917079234148992767821576857408560577708058297535741683066409427132526561672657206847016351168493818212182866154681341864306546721136578526194566319033506006714574818361313936319238374736972785440423556540773475737656394734654067125659476440275846222005658404645277702312602236763107710652982367178596345429729418841810331971066417539649630789835874193032762964991252263015194752229384008579966907744129156156022593431438090418194320358221006114205744377622982879650401799409315389915056372858758339840944519204061837945856986138590106427728044849606843168676453379898513467575148209986685017744017904990005984880401237102328973488971115967040552761330424884076214974003679393313403162617620764946628323807381733212262588466067564047757830194859924805435718402057027619966936952768085411183445558693859671165401518754336616155999531884143015718123238643786427620994132471883956211374266864169078787022974657368414291177572384101411065459334904373580898393243768956494069523444972871190929183604120974417422823537871691514826109318222762685077192891070933945158151723876013298017255093165426095215978616136425165245306488711461491748386886788990736665869472752856285405402701531923508480996922770027838945524427039114773497691352623608364261870504423954038294719398605075085321833637671120873766288890379028488967634643207851836635844025433415474908047107005055825454150072857223277314180123432625895972717194636292727232557305078832712233576149258502190638733332053679134749250601306363423425250830101245669049759426676889718799828472724465095403329828011284981767116022810340520440706223868361745024720876794109790712421393920651993869627233273480493190050205301074944028935053226751695391705265786225052903555571129042881598786148477795569610178716833167972804688872249491709072333149807475826058175517643978687142951215334190042188703407901945254752470117798317070661751904581957198024981233945162471339304897224708565613944908234780928715371346471136377031951797541263412505206823935748376362802499691203074074027339457820713281107672102784268990733129671240038360769177792816610247718099691309299448635002485471252908694137952229041844879327436931822186783126522378364490441135073165267533489668921002496912538298470785723867434671678185126382508853879129298750043766429907831183645870559470431139016439532091250119861770338125597343624712715744342843547651665684606194446294050974163904413367698397656568953270151835160057505888134572402572678172636528365103552882618876807485327590982548330849561811435705599772041084682845868708837264169053751903106325168022421655139330002380899513229432761709179113998899069423334522688348672949636663711391930469231480025591201164745493635674413689730779962924056153914831356228731044376339829342352734119736706026125424511646792101491911125704826014884734769929668089230366808541737383095965581723829170396450049801997987396512533595418227422290654670545064511162173696255675009925958107115732082477706138319999575457914993862070570143324215144300987890956675112204431041221006852593112281025540723615287895043711847192494673729837919049516070011034004813473704238356323383296128063882735945145963115135993341090880617590848675334357480447351718025695242381552021004030185389362175633117914269386986401361966437777040813104546462716095091322340786320554752709163306019694999561236642746026472614927086139532556756836553179748969018803946203769994582170847777783540897431947034312816821806960306386400362566496233174034433743526746342140697967322532876512048803056168231568936095926112242973079296273595203907312750805766041654071595234054217222696778238318014990783204948042014599077807312448864106164299470118577528505503630986247438581670741673657758144325470129714314198083151904710532563642362960647448842477708604180655990810260101520266475599935983359293887394880127493678370735978256841468004961339170762538476549526085332881487078069753876939492179529718598941843285812520991219102237801455668026696933600040347900878916441996451377047760360201570273964563444970873729717589608854973827186510273306388466979046642143258194376886784831476137719497475058223046995774846434407527492418930675338382752863347298229081341662056081356866109099148066299034017446210404466489751843880174221102639638646248506904286713035683914536001681886406696906528309884555038540338659278169685362802885290956207226087202008367739869115163725017905289665079291730036659015490019759696326352022825011789372924341480597278851985468013442705645241794030361271830419194028354181188692102727364643175489918504995412511262100549362453642624944439442480510385604369865048290345644372584076214549817966743290339540923463926921097026948431185677850776710195150797259950446312357814970829299159411638668453138486746924447555242419012549021173360908922073180290255862319727110606528419337255842147554024535615070184852752898934601691576740641451406595040958103788316678208777358520902381332685173338285318294249068858937249565689124117202708017160893342201702248090233987319307781983927637060347297238648858933167760375880322487301297420511575181594166254413532330505303355560922365152407285683253961409407146058734627123785119613509763691757760262628328192300743622164931778184361179811101280338050505648160415577218881286472920976717190865307126329697660430865259116358328404902161566373374861176849238162789300557621754702428995033890125134288840305675076453203654215165162228353544635784880558133386562568077917447263530825320556180661262877709295630379688366233295315960067850076155533942858675633058326547437812726475499897538250458764729564095503067404711647510363768142454039016745686785175226919551012080095436070000443476678463737640427801461541628642649002021807454556656648964298935810597660438268891016063581207043503200001382008304757741685450557626164512366125092296167372285643466792038624837992597175837047871569602745494223172619653608681657123434658280874382721903385135045032631294973306752628065271782131959997948464630029106063144785505308154115988314402081345457268817512482835858835442146902845139714265760527888928119093224443368495877871039109554821261024868147807990975947305091798044862656729709553401527708258461699157706097237219503239296651104739482398765512888878077918056465012354385734869017930825122578993329252713404748022306821502816425858893691383314369252516627756833672498967151409540696600865804504154452531844853319595309983661354785343973089837472899306221299437838068523644115562290565018464476139905537379564546032544834805022936951729738535945098284090010639750716761451839626873048058591361559360941385115488266735270424538712238166551637624879140977204043457878856748871273002198112645658233399804681374487271960117002156320504337879292236625036837875924069911452628260021951455009356761617620993018242833028858950996937026804551261672001005531240327693331544191659012511650940302596157562930789206424187660897942677810691386139366112573635880896044448366302980993330065399446322325011486881298402171797673871116990949421109619028255849848717977582682663073386098291584404973921952668998919864290136332863678716763200116939207603867466606715336019235071684970413519265927364324719117076722547423393397419857040835852048347351757894811383478097249002001233772731801925142450212558122943212916646282448200259760278867188420790891363861741016621199754939185397637778527005994860332292092627286679804835428664630945440968023475393884836560250514169445852008617508845840330874614795467109249031097381343758581870603414827509170827751635989189554004325452357005632532681356176670208178386001162126372288583592557117684154418182184324168263956432317029500973055372942312399598691600930901507190341368504029747153570053599239276243157599172753241201932061989455137536073935458132863926361930029395522611901615870261379655802372341009669831098595730392267368080885967394123413576577372348860283177600863650301011906941695154885391355410418647729427890660246241793681562641772702216787893265475322790612020036785743415152090587703092277800867992269381239057514561693226849968488815845816786610143376922993569199789324280185334354045086272456917968751064898502282864821664831572244673017410477553218910661546091176472465485417308724630448640624139924279554766321125158292700003012339317367137939742993946122776439891731041158192846063434295189766448880429205578579570308027123032599822528250556761457018778420392193818197346082087151159382313181025282110880126407781663253472632184962890292977818274787631126112344033952381576907446297871260479704121695834964323965250637695001613142253978924103447455310605050741017250644960630739186427426559143608880159165113336843953637867640742177494149668599123942201432554676311080924625126564978456113445712824430866722880994946202859513767420041545059966964153233555013478886677377944553901268572495302864694029073475112576900919056191290366350770917780905855829773577846575471533181785403045043136485790023485977427865721739923485240505108099909658629180654865933545140176617460755771460463636436601646333511926092751425738416070019010781510571378491801043511744627418709196028528869623627224232997462572104798066242813067042314045437001655127095972885561060393791250229195412619604998428814974364650132835698208261466696420565086488116771557792788873058624822827394863971009378839844401976638746911255490983870753068095676938817366488955484904056209108273902678321859784789865620898638801330986306698557390772644135629295191644854339028688150116779299777976190531607341125071269104130210503302823615161609214718846930781974359782871949000780874529035483653127147027137040853764624892478852777438698632749921520101566245453466905026329757525973074689008636178466958682516852637232440152210716258752138635223343345218834646116894274171357973487306248524831344391851863807438807398838623489770504563865295536330915642357364468410649369742406588685642309058137795539348630947039160627703926656401283883617126317230777870438636489973204377486669487177881136850406781041648302951320965398344439447414014714246210942267551206298627982347757555662286869337009994674932896241509244401331038522099136132331963448957810380190820068589835071596782235242039163342611021711105753342128302728699561964710456853058511428247914080681068858143540585939996093529226189557174163590233077031349764390666382392640547853084120899131780780723396674826017296757820699381599155635734900801718913644081992292544673795280935781466830736273782124659740490697390981290193277455441026578590785200188395834570950531733199174555754576309893734247970860282778506053271247338914235812907660491928996257195163974934272394568047513109186712059381528676957032596333469747617600491065074068478841394934554729097586186702703347330039879197454227309696469848742131966684636512570053031963636187115959366118407355869144191891153046479576172873541299085457482844957328098309962447320811600942515315302522491719272076268970137262042944537958688232362428784899158420744214455894546606522576475056903824682170835209779235018890047201680969206252757054581246043633221701034927084739149837573874613997759696839329528844355604486286194360973115620348794730469205735049168311396583173468230918318339214092131781974679886347808012251737971894576104022657986520054154019944270110146057042051257321998807284858377501511757524501381000195424742480928173658236932582995195005722355089651344963866713735552166750277889206345887972012129617953916410850270944628320689467873094392964834003676837431947905640769682532631763859765955916587337511156127309693796302509923682578192038291720581563603553343453928884908754787450465769513593200521167168297166588793011112556695473213917930978102020048763682101838429283969326682191586837861448743177711871625284320596839754227662863027435263979502778041409083808533864474515823076293361978981657501732742187888709794820921770525474570142983082989547624222317599844981769422016890080380314458641828569515649572614924930055063892616202342511610860026090052832687251572721413880493523461660589296691095027442278986869354687954948221552530036871532690651827942001012281143958088199335585684372395543573325503892514496745088928408561287756892203357921979982837076126435462924232850887243235898254262972936241651695012600860169290258727954946877006498439945170443168320664214927324179464234171032302522083490344402921446666195839019746183802881517175316559453722661923754862843227987799099157962708620462201361977820147650287812460102838167212651339789910969188187767440554320542036681560536859745631155918125072843867700397916146275226133571039268316650367433543742703607586125275664800625408447456002927522323135557693829309522861677417482727251969416103919461123718873969143395809040605218998686675343998878414417264308065288563035757346777490589162263434353658021253676151857525170169679389123180865257670081852743894580763187630284688200168509206777149924779795134624044070243138380568999825544066092049772691080991188178830530344229141966902450460111479912607969056064119378095551758169285326235568348616995810356943739219234737850791941666941096841624873995411969662262699126422053884473659496255844192468893000315059026290422932136450831426159895385056239362311528332890830165344232963059377827228275467335283278438715613410563598202546179139013350899259105691571356818384897456912871163636093598159884985647498891582178492708834429753474408712832400517535805999526627232017149255272854324231238608427746267659864081156059038589591272496205559550188703478956542905713281016233755008445282690337772647773608867015333751237650035320915056357307277345896380705780108008544329234410765792753575792258170036020791932623237867278087661970401126811669873539230367515301923957823430032945995627963538249345296534387290058199398255329254077157412237874712535145564311777498971020475665742732605827036219863567494214568153562764523208478239681035040425193718966174222785345545340826439017655178284425824920297711497982266309210422388126032069002823747117002365507034349970578307314712725622416609442949477342464764694928735896589701097121278695616254444762955654312994733597163290341131883960606573716608705603369261028783668922602794737488483140614743291994054457541393777967995988922134258432624625347682391429200809594279567792592640463729874075289529143493242212893488378463391651292303015397992781702304606194728821223356574268864921903143816126893316390469892373952974409601349476792362103528808329912928484854808395187684613877383756396979653061627095087802849733739744740472022054755944711883808657953022979376079165907981789730293923545973628017452998985005413605327780799891311099874516695796674331350738556855095134281349794833704010940093976914443260022123759057709372151980605753139788441081499063310469101933886991574333897512810195606435710987054074448987205347099448641770332154716324293710040055453909254481752099550246682030681068857093450584525630440901897521353669099330445845759617770047843904332997974730943759368835528307833216654465029733556621042643280334572467521599455848947300614634460415250208694156310641375038642598152588044798344644669007703163391131761005679646512169064884531525882091775320610500716047196168930555471656790500564889367422196632216668017450011229692547950783818930092608533867075357927623039153643619744338199478775172552756373530312531732520488462012951017244479183634602560534968354322212715657395128878895703651050030380210078075365514424522845929675431933021363723581481396004049231008999428556378462826385502540198476437613914885498237573590890475072677271229898852287215277255902186526543439894336030717570529610572420568552358116134644199155271314831955608431574379591144702772841842703100348396430546970283505759533117363839219511721679619295767623328399096967051787862341072216554522059954593914605863010716131833259512629537921825865443108586467780387318672812053453976590173973798645901021849049441524784601878708612839363523045182327554146618736615718497009044965175757574466270087705271426592315939962740592285138417369895166508265636155957093299983072588110477495192340483589184529182532307260120347325944297143377829545151077567439724233472319854503424392298780100515275693603978839110323180988829339783117135632821456038772637292914738759783532120396652018458939553186379388423401102412339291549472096223774771053919153939099262553035052783343165277299500688608517669523678734024208416922624802110907822916064517914653985182316187904683838004886138645724826114919767822735062580829544367690617420520746135024393375543892989093476042111561626257266963639665178566332697306126616645049266431481637362309224014985671017927872520722616941576888015875972156227674430659612590008198717707399915623950894437204574516739431998563124505340223203986866431565858039054335004662688365767383167030342359615794306469185497436216264860872344508633453305581057588937542973214572632496616464029669122284826481742407269253583838221968169233182801811063088975304313102727049504656287353712551482108800305564273550044343803081187394596536890809119202057898025900106382779353052333482384608869878117158171714494189478283988535942688089406674008288485422586424842561714717789469817134532091111782482953167248061392255255854276111946773551115014632531039234796838770738372373784054819614674673966676960182934569993076244861507641235847883936222152424647085201435250001192918953035545447343197004556070910405681956148215881760577921346374340663756738859420705146981562601280351460298541894794186455713618372315834306577025049674468819378898645005386404362517377021212692699822880277287282891943959987744473639347362073759679443380749043291218818557457905535190702456124368065719208988006438179715760862760157751461088779334530469152114010293232830458961941341690230871937357840066266175675647688661327840742306400409007605712174637505876210089441497370257579012162370355475765397588696092117441286663450706096510298796107728718285684416631798789834201645025223280429148402491995634128986483696209739347510343808830176866082643102735314320811696490961551750651551441156819631369942995846435554533254060365518271483916397785872037577592689705001773527811706154348809527618249940542208985163302469367426856171467781417426462008752279277618760985638300643501173414175396762161014934354290517411328244888790983876657204017560036343366216412066468061115008073909518904105013761262854621784515571318128866507883717650879948409259297129309120767981610547031911554636430262328506850313325792784561307190859456466431627226539528551572231647094931199023269238623096077298392733699605456374974047562186553689272665173607854348585800810843302099578293637576511405988248331558579493293850423650569684061519563018904878290017394555427642926812459807377656425072191790840650458791663685315574433668661500362929763608194619836490022167397816413354596033232273612737151514401098700275687023740552974693260680105261538447816976796061216629547730293766433142964905068071008584372829462180807282849318389814332373114839848166762142698773608483311234072368155944859360236199124308077409681897236659951974259144347102308942972537487489727886504324184358151376549405990260617851538405922805537208880595047922959240871322077374104280260748155769426194659686561674716219834507857893261016252187393292109750748422538528766910687270897960345620929940710786974723095350116786775726452527980319746716122661796514621381415783855104185257328322682101355137303346061621989174376060894410164170243676079803594432622872979784690617925422954711389153340083516664404503339060983011127797362122928975856465013269266961731489615486798396885424611675109863796157916533267516897351228429122192083511771572193086086189341982927325840280322592699378249174261353089968653824973893037955312158730329053514715302628345123003244342989394926233068170144755001909677411949488165769363034312098338958050826960310385834523318737034132875737196581682823336569693902085244733287144928989955151472788119894925263219067009393710108108503460524020837227349665910076884501361522203729344597164823859379519860658487962772585075701612184439169109788390212905055912943178694839151701632300402178672730666489668844794079560548541887993291518713687398002497211473347445814620139179898350506037006709860486131087217825545137395207330112307155057997988249258591275121487119324449761017025323102837511491098665144670006790786365591145680228049857939723589447600731330056681997769020250197249294047565936690401666667290455562865510455070042719139918031715768686796682125307731785694032753257230062989335764780482316035331848871908304069678010694559891254714974856889693688958569210461411632755379576901154987611947625281532333818716558750542596722765703983057658845660655647366117104984795527901338385583546689828452592648363311745336179807578411335051588310811448124171650672256870693270733761039587976033520319220324041586546082788650733762418636976627283712098275800683037612254173414075074758763556984431948845171479984373876504068293563111748276985054743849894257351034592054718675070393927789444335943311215729210637640802759554630522370358679510059600756046550491620371667714387261316753785442344994847392027870811838274693252233518429774694094009758298841100192767179325924834583005281508160654530900165097441866098892185433724956815002406788748426125760034007709310169281843749554813169885057102816561375345386276468893510212236766875321732698708631141464221465529444895512570484905434757571183149417062193014217238785681561310745648159892144830110393015475216488771690415835419055004074912102242862201873590014531973053205992131325565326239540321338304610626493563475172085687043626397186149386493756504914145835203348757043373033062349365925149727273153387444527093652327986347924163214678756006098897970265753644803695812476071956809515791070802748541783058144850559813364406757098657518414400189010494702146154604956327753614025012592147028053850273816435824913840822315932910025668635809369878367329267329942236818038564667135654970020569929489804480725061118879175398142848863015689231627904118136105804855609366471573448634280109688368233681406350857532455685235797436273888536128125633037087331727031922349823389972175093300119988366012744576477762968843219999920228526477785979907588720369602893122665072748730362422526930026227275257385290500528180821211736671109360659707344500055217081552811853479051657490691516764870846318624124639732201026252499718001282942445446809774578920060900374492059452133165196038851534788251936831777277125048854308181743578910751848149324837469334208597165574188330409397228073138638994238360097135421394476636608147380120469158222266971104136406030317783756336796144635337406428083966514833436444018408543043962404197169448411104504355609693682333497877598526508826896469785231230550551805979272661678235822586116223361286700598120574009373832507790060695880544962569488927479660983521312572012349750311559261536340460655372131651327976955374787723303286880940182770940552029818439691375436161165684395784337099988021910828101545283431235382248817401770440586421482835774142219963169020277095273878559199980097984706325596956476727722919460763654920902071868356841082587194740377724407109759303453347466747910598837858110867733144418497671284064401278207522963669514182548806429206241973028893756787132748528550085900533810898882509889003701688404626424368887325956591337772642478958518216628874876406509936220059885058534867071374917016441082893708721613992952462059122266802304004532377279910030840236319566368387856299665246337314037877965786875738346362808883839313202077301768509049317873567521413894217472782939492580455098574355728377688791293761104717007450800463981097911693525595784868668787939406633049803634034872295832869751169403700411083288953827090952752376313332210476938308011230651260537427202311827311263258747290806302378431510699983823291104696730205364620114230837616125501009528484401300428539626671330556676746835915972495129717204272022416502824794952001342753058599157829202748612881170747505542526252984259369208274854815473796331683106357674644781297719137872383945109980582954841017025762355187057678055047564276269701533737630181230963730963494963947179236267327579371939051224290896631161242587877464788896217552041389203793747230293009080643012012055977921172705494953310443700039754487689850708210342021059199966140449736287118936140161660181840339171464794671154787396166914802141176311507600395182929608728897488447008868366393247169976955307391589937151662206631394722352161629287706697476726276273979853709950709918222908374993167838856377468687656667651219143923634804084014788114482398378900323058982411293875634952639852777040181907118765574685213084206348575549164539078639740826310818703881031724081885173924179353304458023100201596237717507822495173286900208878032404029937141525887336522552494137768117311292901572043111820143289684246952803341235780200279761469392728781861402716299028416852010343720025765469293099429885599020447074719488200281521797090299791051867824275788368950890607872366799972155128354682095356180680452911120914759980511443190748817194017388877279624915513052087483356798961109161636202615119965276940196969920619288619595331709967121323056656109740149350117548006474129831221642350457839798650769707413003079531057512381204036025351958151231505060132138451030783033956545026783939671813739763382173139924070040503526961990176844459043008750447447161457252656878288532653820512307439377429555618844429823986550778803465551929735406461906593415413795586391419997684784669623059303097013435580711282377941365299247753866417984719094030809718123464729174556042434515982190722470378860240921717126125261091483160036871422498553532712875779845979473191524504889588563751273124234356854211575438217527624511257930023345352865597198249062201178867820048945757665529999229976541629134926479147198674246861010499661654561362642174232836058912659799383274672313366236810877449340556550483567165101733343219185199263188927339466165843026922568732203516449168811886272602458832409265581820178824473876593307230559600332810347303254354780667994775409807283738667984276625785404510285948098351533756290324538221212366999560137522031967480152935284388827804739651591610586655085387901281691353567499500904912499966692619648871453108471332620998318425453915620786479842583135576171334794082595589100657502939083808029549665696112623220837783441711116465352549159929098233999043842814918146505543842078061644456924268898179410687102878664333731783504709772559077395895186821455157009330762547897140740030638326240770213007328000526439962902617151565641480873391910907248724093496792133709576969038179112470926844261261383071710932340277394542858066194772666909345162684617145766791892085556079936206322857663545976783111799498489981995403867457053975808716910486008999788076619713846120030577830574060749292226040703246558860317651334255070656386375539437430682517817949468960111934261160858083442670456473909853876252584119337063941380112192739122242922293637090337238032220477364608303636134033986979267389680827567627449899144396098289931784254162768215400444333070935940859941852915504359636102605479624590358990537423706737126632776162212057279443098946287195606012405091052449466913992299046096510211318919365517183524555958268819943137582021524758821290346351619958336293587140999746351919327549499776973293395066818432341980072196292225778151406696660632848216536204623483886435781375046984740677548890846973245247603124614054100124709623784411068373449728484293585475916256182326317204963839279565050150230062717767963250474527832627297728134829797896123553101532791753415718421339408309097772966727345963812198770980461249847112037411597846730639411015028255684084006124409744786209221645092565652768757270659170488749651867451272200825765325055352827961532951901470865018706846662063910649786066314665206643463945759312432209616130012314905043757026081127725488711097721398917465068836591986805806925891577399888009401650114226797088846639948883316155677579737333512483548852871319439195279953783085103622621546816121396431510050810236439502132965354008076331872310680261205808070688915743192125307349490673951360057209303072972513366703735075457844671810660464365271431746784365937846603808873119678883293591481086159411097101861345910320827422749811865175238390672101548662001056816672130022579858979447735496330378745219305242474249581474728236514129270509789306332577256632297883561517349469755892657264005533361408688227375074902034220808601626522862648507227936388339177239246222259640012874874742233673952158988354076684095531791308303320911213918469364871858305356363227155841653222891662487384621233749033786624428863342821197388262851567657485766143773812666127958626430901943222166662363751479969063051660093838880412311807566165305525097337606347577937196511776675216887419684901398083661431571911719611136550511660193610233522718477216502431070445230237294338789775985693522769502827439650036005347055974149924275972958492955757071902484273149217394586410866970246326446040757542470811053301435122773500253307853268158841446509801351906141998615705244412497289241151632138730277580282404439767721996478619134738390427800059931611330237752376223663400299698339473968532524672780267059048776883396698447881153572242321277880472486599170449552936550143418582107876736884242332734285820395024111929015591701848595867711878368847068867180128774527548947497470009343728298922016625484313713961634347049378934530418256313582324031754542050780355054876845129997661485157380984771992569127821643852175281532982700667609321487832733807156075485042074103503573731604868920015584716151176308287818764092821600581015230910680501277277261747108654494791605501296967216204339738861675226258806631497526481449212020348635098704725917420717112433508428038022112926822948452027230626331517006305243585913190641557803557345958393574809028662057903048013716748310377815353607543998627147892162082720022953133198055881148767945707111092796921375174093132007659283338443664972455875402300019767492566139719273087659850987251281671070037185048089820129126842466219302791800039107152727181453890728567683748650733631975255112879572386941145828735289136630899535378928439323225753574812791335951781062762030650472359014427455891250967245516800807781995605176337482678913453384818175986287364731995497039365145504706456013493220465635423425058813001234567095376420967140874510124452228769546830410165054003172104848744999536565256512117515912161443277381998879446737423639566992367744384837091428009610232222999009627775340840391489878786449675411849869993038347326100953034102414683491017571695379157239453809664630133457363784392703059203531809733223272920236334026369538878742347130658530530763887801852947565530280233675836196996610306514417439319799155787954425687066389205615139188037384618209193696339487284974757623168137504910261707834720944866548747014426667211574030927292427799803528197036502021689834400727841487251507205807807419074764197757358830502105389631487551018047579373656589034280072819476684424318058349630133996851680851742386254129236102918914195025887563853820352767067408687469582266702995671890521532499007184257122854718413212588789302142695862090719378025382183302565425597936351117167683125952664930641965173057615052990239769254090459118991190133189261854668679293205717502230632445615862202968727600543376892918274063613963684355633196965281070534974321062283744351093520106824665841644690686113037704928963566142325876846425228952517766451812252074321937510239861429397029409511863026897444608130331702944718789796871415020705107990364340558187384869143092190745860188555859575370850739935063000616114015709308722119809771436038265465808147404631826186702649334044972315735286152800537284100177534404741644566827661659068182178340270066058831510806347076377095827214331609494951800015694999463243187573254220074382764926071555060778038374600288620632008138281413400055109464233251629808435839545737028388478464543127193545364133197761225495993938147315405334159716000263330605475304976643697242866140901881788291115950811059071019242694914455526556758783904629881768761639742157803600871944986371267437401051157503350565288974265900567048744407811411798145540791931464292909585726151948186359507788643774003946454545567652372806848178271223028215612095828843688028863229487092071479664650409681127372295955243312905626800253109059260895739213723120718405853415664551899736352636846649329686790609990329400696845001307689284765523990407697276370528143678636318434740745605158204984300130128577408548831578678261389758409644566736525463807910570844092817566844489490245209609747843580268721763179626486247284359923894224849023610942390373306030182140809638964128211095753610263286148444962492061875595031806322094363652840268704467980844051703587470374547585756346835170720731634892302569373333092440384631797035484736199127223920264482370260603204546687803997078416656132893132429601520539779736330347115745749473082165859441545491219613861292576988058829385630868359690440502804807262288199774759771250017005977111273002343737487922512729063116724708605181443570446652925722976486606949887010677596700843686498825623653152756819257942003227260864111889780742257178000104438093664754154688158841135152740351484116840623038696528984047441760617421557439300706156797851700188228886992587834975412527338978264259272511531282982988481807202581366616117264472924410396272420040611316365734904552758335124237700987844125068255219606224507058449038706469693347895467092833514919423647951216451774781011448854722114478813835003714513472724483990313702227172822777843514972309808788725626927180153864813679023196373821121942155387728620108849369013055506313301663334185941234723503694005714471768518033317992726117746852202281447163867839968838733810220614034648248978425379926348191395832437028721226809042143351494293179342612062157676601190403064410051133821785866994939160974522311222863466590876076817410236298064926491226967843357228220088733615429015804351907468205610500995808929518827618857637785926735925959493385079025800087935060594651070919501077843091358383511162538713005959560333675476065108335056182562182252092577680530858459128286786154041602772326663664476980533399786667454034698260290495301790705009145569741095506341452035557572760540683079475373403816684064778380854086876135339647009638157110563783094361752746860535090326324584857264093126913789784305001699841969852050432993590917513085967755647508595645747171849865572701851344631997806113289451242498372879732382517004887689516683079271276442845636224993709892484028531841645742499445872153804447052791200318329771929876739725967491246388154316924176766492675595189247661812695663726238935808199316297755828030271993934199423221076122753933343138434653711803431120308447048800429708851792221307019180996741744590469005374917434364665935820516944062253987700028342499658287005889785651600444744225102396972145775960347595944720495779075568372931964340004194977594369628982092480956281249764902058316648883570105635802144881790032180219327200813805131981068072971513270308990795782012730817429370455110544643162871546540777395995461129308993812117178931942714891482443194589974154013462226131755860451858918820288980672009286255084390410443857145716916776113373771394140140522017202815583659166058970116537868919556825492935045830344531167912984776052205788628113021425437573931504002080235340670134276734929293752626240416585797143577176691438639338377742127232246977999711698858433165891420005134494994813989854747584555819302139643421326881334780410017958250037361905243618306147605258515147016655921450606241659579890442469363693378116868187050231055931359923732908786097723682192207085217101810360650725578769806295902811275908580066619790632922262610064960357583791685264312446329393357151873820768815934763121539338782664033688902188853060818159002616473067004032844582692122795664805871304807862013963137976843777891772831686195578489058259264162313216820114005271445350575193764372429038481959633149581550373553386959828642156550061952634661292899646948832842255952959656678348447616918788833423207008784568697505713765064362482715138266934229140347586265619922509980693825941495456909196634187919904109697349511029579929697167228823751772763720173905303896975922431360595962515278449301793645737365634092515237847619460247418872834551509492737100997031610069044685937313197206944018441263971732508397647437831404279010630408675308100193405933712456581240330188774049077294022049020028560234688234015384909038083042444578028510477610603484649546291939521862982029361476668687658065505368509676151559201673464647707381173832265117642378836468520402118286253627064129990675847210045614267647485068488665130429019227344907834935092375568968428618565601924106983465951779052333465526617527579853567205190992600621404648331910259273829745423556640099930782380611685504966454975049415489598353257615650544628760473159350531041048336725407574310099263847661461489996491199402599027260185839946642679858240966647798120813900876435125258304038107435394200798384770519217721753044619567437029855212259635077914511741503523248023757484007969728071616545873318436581425676219628074538573990690655755787635494317987088364841185012827067694877007881149622887258839158795075667068024412968872079051286360660672362315939967701076645611740700812159581783220979531504755994226174687381860990388412869492341539874573552601714520887608370900899173586730882691375688939937429524143783655217459686391578390551074529931734787727029695768286716273120035522414905406012375017884219663737727475371910474603141854600018027807280054589865596696415747286715534381926683809408866410456830138825468122950083293728092276300385183565284645670046848115987237158265802200771253197990610624208828441443933173418249188306356779680135462778185126122116157373981035055421647803544699157086021121571499528545864360824742275171710204616044963022569525513178454457790630304471401667676620740529862525060593681672138552848006247901311668919334452229899478067899459249979026817398175264659121001236792786547693953259908314804710103804255173205256026939827850213577208913850904487231829916857239753040689472299963044910089988764445691766219269243259282405836529766830997298101568994966268215211003748684890458443952109612256731955656436941616449602798379102694114898072581870067749925035263095335605877050980764256554904567038852019723064291080658777613527314934672141915496864129184308976692279468833239744028934423444889387645004065572901017755649364367705469522778669609669135773955842287743922503029212457527958218116633079161898292455318937951293001690895687003410580562864458684688646877434537754654501893191968106894270870294380064266154457376257680743851047864092121307370748262085612149406969308748976290724417989029764686474382037693051097444391230940138124722673055097570865200798742596234400707427745721418272260294824997671043941206934411596659284132575266049854677799985336205340073913067405900817757326006407601561553124487838664748035914530432732523114111645190563903153527208271962561759652959711869122932206696489169580809818162978886251310563573885558586071172112859505699946682403179342710724141285660942635120134113295885994682153334645587729074313575185603008165838577076877373452680223846029263023539372657781247448149190217947578438819994579666058913234753656377476496428269843474120550062833233766005000103726771949914786975385495355777508161379538459652277943982869699207486041742413419934802871337268063485614584882592951199768695993427247389686725617811538443378733975281314958653302054033926440833929676146834243622554381332708805856371370960521344764542172808831671182624054417113983003969488094770547145385151873251353239030910094282764710445552751145853221264976052577225162654981199113750805392138073418124452703990143743618036512992975815225307025016847551049532335811898089487210800243278484951356747443813387326073690105790659867489430028964509493127580020858204445097890278368163997237502339385487430834784076453298607013674249628525682620402210078946369244009582181262153912546883561444919884041322146496184661351305849171041910571636046679560139555746853877900839093183700759572279263518757166388755729551444714088653962485998522764249359148925444559346345756364336335758039099347799319245642961371583209197801335347417378146125872654216474676635390431762492459191979932494343664788412097558802579311999720926461933673825657926699339835145936801116388545007225447767144120704555917673086446717251536819980997280935176524503810186696801504883557682175690131096605780564745736132830332315308769720502720493912944009814919005099510054534958656980738939667183819044693471475003803799542032500148483533848381486726455984011503149228746345991055828093953288145555265834900595593990495402641918359861517897540878398143626701810507168475740659810239445616762424690625793669747812491607955269618363661517989691096665485906649997368716682669408165045311646060486261708748864692934257838968835558898250405043472201935682515851287615775679726287421833958547677884979257277062547796637162402346288388454203388785144352450717673493400261052791160719229959334953045904572241319983697674137635211019857405481264362029349308910327713217086451873553773351545844321937571447686076849045339122006602148910783976422372188088562666787619616333328429777041266800294330951737477683367423441899009115026067411974487084795608587290194980832991918069105775083031941979037004697519175977214362154809117292717388478588980747215516343837371689140449540028938394468749321140968561933800319228363041646864985241509174482375457545441004913559925741599220246971013082252917807346951777334916615759955714396053148437740170360204089598639689029768485707588500939985895280506168610395264859833323061751115624428219301553957168294939581518830583047901249179116630596724495748601598925212041863585047238986138643098870133694887325313150071799052179219477060520173805342934700326244741376488460894984529635268865846207048477505845214796868123599819439173966594500053659961180154480915976872336380002983912621595763491565983583460631217782754425948627081844332192669586152776496644624528174701682650613307397962628205961966327192209207068251473469860339686798465275171890756865639247469762806118355877675437257888059277641467860407344109839243111078067736044967305060194833727774796707776977661403429149559824832952937902386093442672102102384276941187356261258974921571835474943738657828019443563415488066757000524065248201330813050999302385693321746258537977615012692428627966481341635680629258924814354025536143972438741189491048282090187730540161874606977709354359315353062224781304225967083010160644812342738544365998834244888088990743916886645885932062497223215033995897831077831011505381652294927135320437459563226463178832992847012349383053947727555179751087877259131188150454919307025150691122478135620033297977898157620338342805695392980687347416944960875503734153430175765343557356127978112813511968218827047509143128463862619219881759028793799590226040329831778556727809756968760142966154070720141639097065211329462662932540950831230128483445553120209685478467411448524469948168999562355605240149514861986275275456533303458318810808054144983422071842388044590185654570621674105839961505133905248485575749271671101275309421363108924600150658965211887805474282528005671720344151697113847566801112573347876745202002020755825426138263566045816667924991145106110136916339021462759403519805053618507117698295020605449930268530607179953535549005646573220375821595359384735734225494815035343860791460542090596316747679332449287496618866041183880053455985597690484091154302913113592781930538126717536779801107094773479699000649470651311471436220393736734168585320766730842187957056311031566609676483909269417472498116013812393293299746927275122417183554082311155170997177558965467950233215553519468065188399515495284807036924318161571941592540796250044282348651678339353073205814034954116611888160189692822942091942748428562694208938561883531638078627928988853698503793980466155760459808671984894455364328822291041041451897278365389503521364634520194946783065765626769445695523274725218473567133306129683008094623508621339728506314098434107495527248421492972340752909868960503027184928106352353496827686254784811000026256150509949095096418245246689477318184402000839856256759184396576406292954733495445022424225775844150428067798544692831367924323222651723327321195722789904471444719696824304977701883803890772276736651562581840632286144517512667080091669460578017131914785897075129057716382103716288979353613023239665857027976464281885319868553272994848863820226590203634503049180735649082054340235513341176058984917855531111671330630792076160851176881687380064700408691522315042504743110763506072514876912755912754868072231592060719549481376351076425098228133758388723849577950048005023472694271294867419420534670234004820304438263972734460541405898043309877324261471946443626741159107494213600075255421818390131034173243169048867868255191486206445778083538399257210140373995803281666730123858079321860016034164400498422289754029470637825302213576473594818515949544801251571764871942929495324287729656609573225629292207932693500793037204563003268963447328118449252794950016713803109545327867649446987423069533912415236842105929669025812707425830945626132065083465287833126334460771162926418907850433523161679296044625508550323885802993067086562967389317033108914473849191116690127971697935660650540534729711165864888278037259389957023631360496553615071801971820445269893218389121483124453716577067499871709148312888989891420717449208301435333406408793423102099844538495237695892002801799583842923058577736759901426537882681045969193339895901852727966734812367685720550674610267313390668527399954563134589850196600211981184206102992609070361879814534847456031069252810906101345727931576618160377193816794267898433572761575355554478563292717952886220469340377122364876664196376386855553950646046889102222779463162691064047371786971110918888591534094631443042429679703177105561918184727313092083244370393445495343384579647145470556726119027140975678722787455561068892932842222495000393288659290978348937425745793443333057244144444480799835242755364707824226170151478857234272618714479125824246287287241285074085762837005366879639475078332483367000689871705185496492316360696925537264765428854108844663905418383069275580140328338162897418791388254060345186801819401754800696825735206094034486373728059637243188453179887100988931699432672316066045155930557354345668777323138606686299476413425270766637170445112863318783973728671267775251993731622486653890881246582938734945500632277650603252467944137734981767399676572975122407834435791307672481160509767577848936447872844281163263722094199944615066003547807191816521665010103425837305412339796983194748507371648881635493675749523976230228290856395540797523562130822728123495129567647490015447334250765021853371557414540002661963427463970600831357533620704845248820277967703120751359776201145124411445056925516444129778838840951156163218927639414073437212884017834736852426118049512292051262364942174066860531524873624193573086374716259819687074645006894941343480307347837005770041723707125061741022702907779644394465954956381244044354550210169721364444024797159708059950802297355553815206509630910028384570918952585622470598714429784116750774968668081088384342775950306981904955530737517964105620048599519368636357167017395823565107707146846316585011231247059241675806362581632509135002407171093755687899084481176903691743610508234220107152250916372530929783652090685492922194799893024535402144809844136784980505320171339597107023555486286981767434392977885893178023057219363514821160864800388129913262366147481607904454295708384370769384159748022270193628353559663812780361310040954394078698015896144889640596172494097586604636063454291775630593728119056114348688287225202429576454944061578688072864629717585531479688508582027006331860310965838551255889366309073311808738826435110296093309781327913064134035692776524089867690875492590822839388743731058781306268496723397796552768424139519700806720586170122716285021248550777147031465164982253052205827796882294555786496337534270858770845627250574345655183197178918512057286744937874637352123216342903661824770421963901453090219607216260206721629545718425474488877480336187390490627064850751650857677249284328664652701032384876085351356348860725558657469911695262963934638999732653559093193935599274369283153311486191573632250890293040809897953505135649372263337653100166079738149762706740188619918134381062461647458313389856070551408775971871301707247496174981454402822281300754508492282843248892069909445380703714680299920888817842917057958058331519962064080119965678471690100397487239971978620492076044156163263337727943497254996834455595639450601473804237857680269583750208077471862839333492582082084390260073903443957023845688970699449193044250262214133665778231967408582798951760984522183441617012145311041406082489327862376620429560169433557596698786351712025993777741597718657568296622821317105572940840743046134305051895554984813660162514946699038079372454655731475088423049706348301000878599814059976803875583070909568891752770544526344053722881071516398694041360866939960482073952657970049183271322557899538275732782792714518464079380100274523792915881630551313857227804585621527011393351325945508660331308597404197904540796874783447664809769715818924194325985082744234457979731747445948070477137314052125302881754793739761244633996464104143999179969800099001354777531413805060228109172175927560126120136674839846830212650873444042706267202791487022444251604002252611440877907499873504295485699581087875164853010597528597698591415300451092086108984500442099138699496921296226577748429670800127113807819346896492205367198579220764872583578212514067455697798309612465585921466814207379135317689215837686876149621118630164363484733368890153567273612560220653588640035022670274315719177914858489099422847426286154297644616288967206927090998622540578396423181597813973467384717233111574225620856495118706585562893022526937702300077000944836391022609238699138027462678936547321983028081320678697054024225069669460157754093085745845908126003515410033282018874514144425843308220766108765244694548353980990635608040658422992673425939071000838725222182779558542677200284668663697836421524420967232634395251956019717704649114954601820292365551497456149562961177240257641697011781100493467477488798304751739825358697832013707463219868840245442738113027449413990646068315769804101702628243367785522449078738385875954762493206227022499140643362396474140616127900049440596644061233354643042144206212552488150601472031420070943755765143034779213145970974849477320199029771484133911551828398811477360769909223639341013091594918701372962951554717107240797561644192520329043973293658884638254575127038500081471710949428076610292268385726066646282377262637100367680976146947641521928543080679512726994429556360368653366033566218499192198158780905350921338375909467434542922461096952937127916143379707803500446014671828889671449406567124609179116621020037951398283522375668403049956657218609734767302922652164678851456778731919751510047433667182637426226490853929023759719205027419847840916906955851973696886856868147249266704736586878514468283536039617355817886580021896240523064821268390881968049894150619603870631725083155649428381048921182477964184435324467400000758119822079648039252122065265032043994481640519971378897429934201991647135816974334228055868374132073461404755395615330360519395930895684326346310768174146302476388988856210262783998012962905966646775682138650251970323353475527607483906086676029919628168514602332506513312674852328823936264548854938290222945503409018654137340573898289451947017899441043890756996974387476424038711355598725482707119889483942790383844345477445391547784042436334580961022139592409927563260008458161376922208920499467039176498607984357824452713718092426493994343372976735256424872864691340413774977892894305953003661720371101641885852018495238483764086363157557606728643218418027009391076901311231916962844832998169164366423933665764607493061542688556645041559969743108360090027581626952324848472056365848124568304090371456085814199197289275836702727115010116563290210229860110640829909777082491265597425542506222984751391199408787612230975528474091272796559312123256908408421340427530445279505826233623507591819605112819843490244452038094112697899501813023940133360070219517530361640018529625841054305914907246748548403507681059725063661145486323715409450687540490690914058508183956504492960266435165688877783420574672729812811670070644139358603374286517022487192175734740406999752407910364671279008365847782870992013944614671574517820913655739010364534874513168453981565000011728499789219089261270874478129777715128195671171167867230415986989668006070754260593053851407446234946427714649390381669246611798606559597012929363579768358495464269051486318578043665090758626242932519269376192748197069746338112457094434257365520822542857169834093661361048140235186179615784058252540162119928904338166641607034670720232137370877736859527416652046568322587323183044162819956909549392681507292428423329694158013725841403627928633637293154299856321506565639390425845842238941184118352327986163269741577492023778144763309625776421376556052272628301027698387524594841581492720899657345246851055178768017741740089200674165450763559020928570906709599301857167611479034060799747741126530345971912388174304226809475852761030548866834945502245337348890737441626719775778528601215008240281433398769352662165163002597136640019701120858282620071498440569528053459674162132255338558013454825378929279560425763632270332057386312286736699476391950083138282298764418977430169379889988566141018954372297372150634980294950064008712516261893400363396039298798365355435540461845782207427537341427716976612081076792996202101913469601632209819511460781988581134566081833725831794207571248574326052757540245777670448173644809687823731009691612094007510505453502710481727229321061940861259758437411860302373258233459411952491005941019486692023838085471963882557597216626132666946304882221034597163821314191856285399678194182785711262096244267799013274617235275420885668301658569405368363327579411103045431840851793406466619205367214074715661338925427095316231180982081756876270993453090083604648154136222900232574729146193337734246715235842085993932687310913078305909510539665148524739962507678027021680263763355970660294587950075544321398534915686280461973554335669208073387238844684648674405007178187267424755418002237239133559293851605670139518917125079170718382161141069821835199616694759135880740883973489713282758155354129461464899727594058901921487644174929859880439631533763553635337349528211416319501029227436844245444006501879653184811491523161327478069083755315238703798319278179772304190663357827324574901784500595573115231298014017637271590880777145354407730393410837713739761404308016176895406656189168498583469873619859489169741902972368956879511641066724880423081185029467529757218782342777561066097450468083662970669122342274034622592026205077458628680073194082112763472477290199146780135139692783473164498616117805283101640427919200173840692477772729131481956559439119819297413102027503657085172426749215215185314220907829594283556345460914811535805098087047004171303701887731960533162983622982145279600220219262326374064196486301157782475208035682737469479489642649947758516510494060498962487598395845840931124212423612843679030993667136456669686184471671827672385318207974847618072469944226214407889483540260059274966009077791651377169045067211933945655041719465705425797383913369581078467189178129284259460967812833923856004973752668402190571630891197208361510777038837344743484190267857054104421453460904688276640521247433064999289055905057796547284509460549470669710751295760526844356122391621201466143514276382135748032764295545516365264701414024462971564244067995002170942226153288277929296818501697271431130193998588774694193869242954146872381518000302517571927970322451549757770327277700002289404977986091734650510460716389287523823412513641131216987462697678809644045311493636965939126015183148999901363594047701401519893701634412687708496019803177389166367329117338983763770778124888850090607917696297025187184566806692756954059551510645494804150775675332776937323085464571416335300066905476961551890467731061648849628815972815462409686160648763430312647399780924797691426984673430116697036301819247183706327776071913501328383697156504801289818597015721928657899102009289661016769840834580109636725290828604605855482045588090171582666788932056130724096838798736201442131489827896866408703213921287007798868077058332795732580181382084283812369272168094303720803612341283019241288034359529449906218707118039287510003615887622436318604205288344490067151151954493175527096196450284723474842206028925202469376658197169371696257166896363974944442747859865115884382589898426362559739029398514041527649757397552477214942405192252784432032911592193012635804530731895465857607354132886799691169819370191627867383282321864135683587459488606804600634708104604119152577269384884709474825993187931968306564777963645310362443806986688703714177460486345253616047359190646090735467360615993701028819163956005636623274505353763143440848675290213758779766898923649105668680508782494260342881301263389196230443000716721138028562695219932072809212055461132561271422770126073494158691669431384862725424855314345630953549578764385929221128571662381119083681169946164089340828295361344800363245426326751424052303598594633135780563172184825936085196207108098873436055261795039293753862029901252127186546242665791561518224459210795921256152970261701141808948085018125860217314901644186872074732783107811753283789369207455036901663489941433511595680182112578329208952902804850604086496469763871971642106509835074694294683237170388600026230619632711288972975031145841151356907499009849072962019725488780669786760127813097155977063708660377401307694091532559747903950396953988743015673523932812399398006133505031639813172052795302340550212308453989315240380691342415256562973474411302561404795055017551273639772438626976781166215194332161824699461637575753378654213416244005547752967242981073351799101104877563777384882041272229963810620507184158662473726666582159717561253443259974269782907818472687015454011254685817357037581976221940538775048800820925146585831552896086539302415497266720972219905914933397990239247534673443174937436459336809431423105784685895765156605479561571485712993261310076234757769001295030936988739293550684348000534028983306009410805131874868167651310458792694038682244452335386935626669336581216560392507544219719318874502312792119581769528085899467937365763507744681612188161950015360683754938362018422349877646855295626358008356503752011163349139263087661145096885243391476431075250563578881606276732328226842843432781414547239258552978935841500018367937610938066038405548696011925955746350005839485486623043485524142124229390466603178281373602713555112888146401129962973458725794994023728611649039306791477985263855074800956603763876292141636376476099481878079897244401105392451596594975778279115966679810094400638958730500217153535580939997721176514795986030229926233810280220795167449991146373950991589421117329732831026180360840971914247680304974580262490133714940483159336755199388836197966073642514019247673712265887150324560778589886343479953174614104053717257125023443314897390491073679573259743862683351819371379436499715722879510976731946290713705285991218911849598503182364750427169709995750421041572971815156038148961627787376215465345409586102646519657151719896965677814970734113667737487495829067316023231299586576236098910572819273579859290659263798061792802021461619368253198810688787907477029474828584409167682086827528248184245948757811416508012171696241353861016454170251084469193534891626006269337998266775616181065126456181107358948395947724745025096620590499483283415064388237150621565781774526622481798898684521525612542556588185087619511687074650681660592853977393539446029863122388041260498631678461559508817095362503375221703260289519067436431449367871482136774490943665905385692154290798644222045780624287480834215081013916378992898037969989375430665480574101646165007282734445839256275613611888681020240482629781904051644572099271253475140010381676558577026053537329996237331294037073255183552924312122551252377503950525871241505035594746071046205991979880492663845348214996986226992259788169798974528309305131572761154632494030117489968753232428118883641553170813331372096723377323468969036189518415772106834297640396220058109378552857892963155820479285052978246098945041310279946719127388149778738382834660669219575633702846182880493478092018550427048115709353307038377144167676835694430798742063944401468086856064615618560417146329288626229834638306138674307554366173597050466810587773196470264739699591174669748147583829912615340104013105563124680176265105336293322908346819564714673317756888176626090970210011940965942440919535098804442258476241818637758555454338621959905850430104695142276948920083119414455407058532065435812648228984521037542807900341094017576358293847782856728017272977232007262636141529156712826630995454652719640586133816116551758667993251583601543058835012727652587239736178999142868064309410194809093212919915158225561923545097234352224499391691597720256714449951258162200002057251680590601376820247371532609304168953078068537930791134744782806813830062806769766277046127312045004486733598695795564468901914326385302194068939352730543207068043333098932208288250371417220604819190316996339045460424476999981145391043445031192041895559757437722941601393571608398713709502698408031579681941147700984036977639727958873514500612820233812506153854575218584188548869183275433065683915512409856845265207783172466207909564837562745619812400278214689340036326358519208790968030428185600082189113392786536043648441674426560397406499188486950467838709186512893797249653079092479767797105930781293482557942445415563349654199915728258738246754824313773763887030250375188338178018747885808129725853468817506693384072623223055672226211836120978319629019353946812438003824904997886316163322608003777939755723921254228533008704226671330537700273854427219809961880971592440607054771466627833281391932165559054582494631617028150999027793310135883935404653379413458868237233678254589426404050337130424228144641186205769989144500126490064113217557755897165043730260810207631325506513786550813182314178130957435579241239005344409850233944555978476896524536071485606632499987998904938982109771428310405075951064673365196569902580926868614968978738747941789978821530868029805152450266929646458095574931065497650015913227906702399013847412758939438335402999423271043755213885429107214772564645962878097493578861098923820103432648925388349768083723947015269136469709321583437011568320208826749906565334731518517019737868792760487350244049167069032338203056859906317937422873461559620056125713562549965642743538712695822477205096336379464340840560142463980125948742027252645619461064429659645841838894131813718089254852858797827164524426781877493873267407343766507810556163337693374155652512836987850479442578205745971704712444241379263652315715909450341962307864652516704525506199454343953540838142651642838729193873216466491053891182436509693031371149156156352145366751788039597163005409020203577514121572540569432446965331140464879463225103891804325459053686456302115619619814121035173744395384718077735802871729276073748004524361335181625443331099913963356072812893649342486943956005969594614233836006702542987498717246644960153172630402632418523965843428075836832983128465847453941700537911722068784999870522275072037180960330406051932307833410809979793869840166877149649460533200505727358041544666369976784361569384112694267998436108839968250754953493586642873963954457117920529575061187287010076373126192049557538956761126544745086733993416389415414421308793988346534513045860146872197635202276291478579972961626681148812537917187306957287578704028088126487143880479949428640791693490438808878971698445331736602095346905638683419558178838265423879075370944801363299854448992610031325344672819227709142177003176861836170037213999306640768770668918074843707291588870989088463630118184975524909450623924048748683246513686448779940295658490675910709294998233910189177115255362438254194259549937846016594293017977913475320208176070572005914711262894566077971098423151605235756617573355064906965688436149687351179760261913566963035512474401360384063824896900347411810767697562545362480909714002055413414556546832194481143587233507378995114328739725746396471662164072230736021124467721309377930358719058879080666763609444078146172322547474051755875508789620264089302882879031714394650933076244250017392354811713032949488518800226054874007614050635858499658666540363246423410328093177724021015783962786623267707292491300674053936460698934037454694888799693524811738525629814932629054228540383084698203764788634986545971726618936497724448080723707733049801993570666696542834574527383767983441783112791589702727533930508437927329561089188176926731440400796832627599782016470333010400867611049687143493292020596825340986731602509048161670472495395055602001578508779194384431687789860372898422314665746872386905102797062400966200450471964971433248598694822338207698566379794713940610037927216637955885790837050050280377225431006093366516943039797743146932772616404062399010642077320570442557782361595485922785021979675615633997601574252293298180944919899564455710567575063825204676597600657697520078867654996064940671261688863548114072359079956252674555964860341471124413844516864898897918669666423278294726317687553443005936999001902198977268047070213220052807595374028140657450766589008896364854740349586106583029975013182844399900427965075675089542549905854280079456435741517243402076226564297991689410699682499576459135308868306738830238747570455469806218824222412944243978154161623844232453999876027636430427154632714542212629524160524654987892199375671889802721301451690219049336794863135400741383692452153664959797276117442416661155150685981321115533914821739417313919979221947371902536415123316759045336823910613728085420551169908342649393912845071164364672568840465751360273795916156851424858698062657864022873145091829364541691966542016334751256042111076146296116640956051830835330990065011141452380223320420501504551980072317289710020310180446623331152670347342687840845601886008181737955327448396595535465326577501022351112619165270138407278828274529597954294360560184235966709871984107856102573526091035367076388662767416603822423220697824627736434461006206893246901379159415434774946003885644528794924540421691676996116757484364183144723426151630331844797849663125951201669756663378852772325310469805481728860186827307812199806480741919035027059534232670887068477239109876051504775248288820394142298355775535241503324441448484609040641667944577209105768933049220201964621360250211046616885942172193771282908750288272783393984473076818219560687604057144735930215425589227729895507680958348998667722333330735687304301424605027382198944228199283986597546840343749109316008035332946618381844152423125656360840118017680275206649085396684170144355051299036471851631986520427283262234734910100277532371509066248523203775312027779847817355467260128288281864052712516159051970714737999563369741666096747456448720987019232781417765014168256631594358855895143055795220814783467048153157190231007275937064628845600604194293741180334172246227863854459813268419056099713419163191414844573821414591160243039239457439330808237032032632866226375862222458492776799083331365902713815514865648634436201190682833053811687395991478027257208431150306824209195929268866962758998937801016331162139854469747600281356639016948660281204829267948549337761593240231024314071346274738984722056452071609979772917419539723116730015372708621324002088254439863030308112395105466482700731686816288593549757473735477241077718362638735467445504253822531022258442980456573407090011882300748771772413390002121411592893862135879874523089570454540904828736216868749484575636956288552261276223239275731335783888898713452253543069522050265853308387758509839088638495491092821386939452352770253833716285971084789409210097837454433416737298331692575288336292479731747541026135994716769476752304849929401187215841776932805910139071708235680354063063917210448748820858976338409547258585853645851800575396646071858174795969200017626999644775426730796077768249962312136124796698060179374572795360413132738013093183779177574805361725210939022040377037357216978128318872829377926359467023519973632211775137047748133176635356536491302090007193279938540118821160254579358354464358960822034601183092265302592306764146222470577315077752320515172054407755462122285160719185547452954616701046026565046153782688871107154486799853264393297794542726821259184710608635969766046701743853138071599011920144949046335335282586354338271145040551292991673483297169527206073927308314508484149775867226196800729463741875539976139398036885224257128625418034023294689598691552962676701000012677967684942244671409251513267712330168960274305282515967512927014027833143765173524357559243386572680150991100837796365497762451249384281246078209040586249299784704436006490728414237643166799181338007716646784210654018698802433092303826837532134064632869468322137399381187826495082246857019235016729099681342238741585861021562114118169625663709356727691759862053100415845709797602387524143639068115891999596266591265430732262640169182262699732455200416660651405460831951322993569318893205280396437305088868499917156015598596801495770391360206250288320098521442096840288624161566122413324331212808374315032994613323024956057604269148210063109620303737794601352567783472753130577815120993319916517807387687043996562711009236644609872223656063217104106760967629260455502178445698065945854308867219780111275358352327063949097333547457977129392442143160814510894135130993350942310178456647163017709931257425982460328664676953330273102374308715917582243243557925267274069687644614416151678848938994579922271847739324031278179087831534066392965334575229191634826128596591998853841233478877364329648810534913397572430314571039132900810326298532838767737263621304627575429694989016703581777042798329384010070797068079369161399697955066637557687812647514105216497247972744470247352330105724383146105422685829456542013832038669881582735633019371787630194155622274928647715076969983834949256297110067150608850976789070098265749689915167056645558269077584544292386904415572532328912545659512594154720139061512115629393121664672946125418852365559874130268893182277437785453752254256017222695895483164361193635430351564622973595087620609162544437452667988073297221454578297783733888139248724294683039486193034620694520706168015472494747976442792134943973421148447802436733112766844134269337938394501165307287300686484334368951498956039339553189599203588496148911398709209486363946487746125020455816480907261553522294682732455815118584641942184768401744212370758167017806208532091776798722610434334603649786027099141948878178196039388784943925414345890094997190737449620435369072923764811867996845840348710371568799656622940500150832258420944069575373634698423943488605245760323061551099863653904781569578337531798066088125004328389539228173697396219663479509102549220605093974124475795151118386028281002565794158535027813239725324696610882139376414316267378047770603499097439431974804828644454437114553719672450106885914362734171197373584837885910297294644820227034743291140431746067392131067751570102457180217184751980064848761714770354443864088311191070558179897758120769499397374679205459313297639363157645611415608850398909807482994199454653908611660719132723691482318592483010335293271805184564934926686895677640183904498318000447285336315347878632919561217895313097453599438971347793568119747124773011534988549353597475088484188284591344597568828883825083317342798814260531429168211216722407702320282329630618426559630565927131726696270175634682364184189574225205054712709482866798359397770597659604181716446543480852828047357595446712033536492271642829022679397997073574503874606958672288911720539502873392268813719534293199739601546121407879961627781490552463597254672426503819786638681740767664691165002172547456007758473042996748173925713216253404790457807843442617205816266554969190158812429594328526796917475602808862086848777551192049765998678142029147634988028665620007784664959654497260465807674823173141015676076892454748620896054925833880321333031328075109595557065343925801569265171203152389788060634915911039837919175105325625950817367783918705854409231109994035214070828503057915773427347251232874070211800257472374719706289008866001058785077256487887171124946092105644560791360377872079034538583111396332803335784585384587754669571737067079402212967627569227682037463443084754205949683973057401606967709602321168609117463377919791324707980821255974376714120850949104283371906186627642675959959359721511175046651974123063046534431323977276889551058903676983414373860325952156575387906218313673080221456762626143634793418490823010716310908253439087979765312419718657322745214185781242858020774722844167172548611189699041104992735667171098680983338524873087998892664838639980405217148769196956296006827801571153546379095612999368871730958513637865656984548884316452940794853976157742728150423288883329626300163075770842495173952835678881610156103464770122906823264395364895198773079719362035149033529468391440064818605079256081425605277950234093244459196503319855744714278469883588541818667602779754639402794093955859372880252873249257306997055378996273926145593197692938121665524598408599678477359972034955688129059568854162595221311827567544813745451939241483321479921864257155830122498558152312695919036839351672956269005286633277669488855804774651212913656514249562076854191989143279242685936334047257092279060223234168787375900517025509069536553491396273826639286805207767850968215572205938391896190349272345093882676550911319564908491365255072574328295380671428287078400781426172487684951481691407529571141846840046203606638728190611513612405800442412954147437409816190298746363867117633774791285665662643649684360091566571543350418661643592735560192615801335597093556993509671533026949605898944326760385369157716281792787490703767122011947353084561076681270549300244196839612535621234089446654987231788869494821968688555553534691255842314185255878086723855510428032732305364194352457753827986260213227436391130037490965651313258008315088014164993016141654176633415664669908106087012523474433042058979828541252338860820526912230514633793379636857626068066996555492302558252854328386227003408549367605074132423514796773302834306088631805325118855024153404817978036306128527311765895887325488535610750584504741260981107371028838427031340309025160555301582891614279693605439622277580099137315720704636959961701864759250612743731379502374994782145675125035601547938146958235770226224074911639575850028586489217063107465925489598529042231167067692224824867921530420403282572590497204049445377264717273926157741312721137442118942289009561487853984565555771717051137839765187451783098842818242949093393093917781218245176016700599150901332805023566116374872627078941582611917095831049478703821220815611729444797257778816021152597769386761981269643995037198000027339614914373699059642222208964179337851484444192502075434350099127476428422062293127289872082613436610748213564409436457864168345713243987063518433044102680000144066483782005919399744122190930202447990502212656498315032973567590171809749780918155166529816102986391462587192548700124674518518737361166503198651600433567615640518422344689464014371828870369910898083575146682099536977541511687987042037334707758351880127395618770711880013037433572970154953250613008330245672729518998575070304167559296948994713106369620593305179597934188323848678514752290549548311091825535461443880155897708859392520448463058039973948901085837401251261905409295212965388344909015766911127744144166847335538294104360570600324427693515625398205966927398149177920463026704312400389427366996669354609471195597767122362883780397096258210876298136379602059755084980059451263484010027243709694219881240149112711790030761542004813814399589549020432057801522732441954045086419394367246750427590535547629308797880233244825449852796108562883194319776955592316508594983071541855011264909598158436331644888971060261172825754268326579813712524569501239415415128937518652291176441396817495139423393883654496560220865691576421103003292790043013838143251831270517805337640643523393732939007564029288342172861151602812194871168621276514978014300501795925028048768847399471857685446163759619456189683838230799329186479228978358598131084856151827460119213637715761568468225537442055368770021499966932219954832321919335717512526838041596253491026227188259009900037624358338930661913004719205975254117467654060129164845680564919577690010031034472857188032031729351766118768533260954485745838711982435483682375298186603906480170506169967204848854769790458239972245549794256804516672112974577698919640545114476683982839459075086939778520213165969733608311076567068295847423858594533916146215464826939532949792577221813811837561773509512685846407787602692733567869478648455845156960721494261829750974664363521912979804229222478952127953477617628982196193826129806555717814110185004618109687076808501235677293827875370264257729511020945232936659445011256268638074832550122937198684964410969156789542418231230487252665932582281786605769804733294855687138165175447606236556321078690859310140624441395325875441485247398924074167942514403800871436277710695026620128236308181125532358527322573214849305762086808525231614450750306716631719618588208816225930251493612798072643816163502432389267927385132233675198784344240632361338448845661080715612318869712232319859225735609118720056255103632363909831782232262972594996663481410747171692365814860840697835363654215251261168911472275210906056208787277352048520140858192905469620969823110481451840822008805156908498385970555663595453603791097200122587720306829240752029922500272982905228691513877655528332782779667606976747599905024468392765547292650862419671984942464662375104957737443027425133457641786535065120284248769631759491224338797635135692059385359367170018454987563284607178281220590957778474242866825485772479486346851581155440665059969119816237794948930256325768555504387271491904663030265434068644661652933172295424511723092879351007932881725450289293655134035790871757204497098290952581434702589262266910560872011794351295418215725577617140329080225609043203517477866813435570337348628056690191896699554906944014259745750605300940284271187626614443502265295992959898003748559604391601830236242602403393593968477626435013132043391065449729097993295395858987552576852300713171547733315007107585540556117147331250442793905796322739461005788885164643666669898260298314501334857510459596554611613250734234734527198864035586372808391839057110968696049207068728214251804556377193781408152985864758875307242985729425568588925759459694202209620527652722449558678853766629010094517052571414829316720263563300630911502108808180865523848073560856417613494234135073731433205451485753551312634435345133467985609918613056192975362218434550474641110841790264989245797042740520211292971578218606739689429886849466978750008907281140451032912418706176613567698963231095023975894396797213366996066100167260241982146296985937366980166496725252370420026165416808777090425340795662767144715216090969974568202264602921728115175088236741133689280760490320968519700586545842878520744288836732752392133183594826665658447624178190945743792291136989893393457429974405701916883479576265569310092607779869454020088028193566622107560648191486577757012711065949985274907254538290709939293804029035109199948722412798110163914149555736901109161773038394423542542363531798556758661001694920939060491517946374407864905897238046016364277642195438004570273961722083049011853211808741397111184318354327206338746972595112149966168306739543224680155531691530718996866605870890315720199712376536803047153586547000065972315242896154634119247472802785993930393193247157673359485016096308942516201870027454227372481723569388068438194405395752567694264250533913254545229341314069547775728312859001662349471697924919337868328294307417320911185296677870442450232760131529194709156286910302823308135089111576110272272432232427312947032679854676168036256632204508943836832522645770937878589666370619097077737079246849651153195634885106025622970773958242625510107299302419412085845087125235248153304949168145407552045029680683083333695178440128338859500904178682059098192471001252213321688375621448492941802957675060632762761331763157523838954019625862622224980116158654910791384154417600142860007036063035979036518151431289261091226172729053063655490602523189571215888376582954012045944124996102917056448732065284399823179004911650467113789238970567680917378448753076604867624058589735400084777530766420181588994097233366089309544631720553937883421009716442506831405540675126671437476582349695101666659224861316262773403969293295920871487730354675193848746727600896701577518445887560281683966614689296432057115294055644049230255575517487911316553568521024252546555619773016285376936070903552005197584664105032875678704575477715316637293282991066879523089482414361716935986674415785570166366751369697450898217226516404606896217974938286375767443222471951876810139624115093556645133982087177779602927270879535082672293459146506944287937255176298053700411087613259435157968514802195380978981053469704711123991382467019553282822450531838562056263277022756570562561610139107601645216584060543239097801801150900221789519852904635994674744776560654504233802396372643865702189232560648356325953230800586842919737384512367536889520951010830973278498930604707579445226391506149812388047525036270194085578877784859206402465093453778872799524202250671144870895080323791597124965320245051528991364392667925376518580207527996692301326514777325340437529697864262349697995684983745757088296781046072575677645684308160385049560444459847337679769274923006939182272267305607335584014047815521492759823889378724059181781255235774000815227203620422980226583297134817656395782186967180611774976036580956871593234815115052536151875458541886876275309989235119329869401945162995701338505157479939672448794686897956637345687257031050489018783499133921151319734844362803205635722844678297847272406519497726403547033050064003949355645406610686485101182306830841938788502254629005458223945590223563047396067846304321727771711388835339205640501099690102104126377177880795166214130111543571240769030166941331462808700927595068369471817003455577192660224070721393332871525416503013155658701370278063998706976717216999922261155725567393500507379679402402161685293289462934966100081740718293401626727495366077839233361916733044990714642188006576879446485494564797639970745383715645932512215471963505652799003911348434586860436253826614057905667005677338244876656307527944822502976868020821246076069177453591819705768049563856350973825703095768715126049077892408454216487993826917877462269989637066956767768730217940587350263335936184217930527685098316378801428902639056030191953999193170812817504642878994392753300574918193834348372530658020615185501258618902156944096473493602692339418879107724519090140289525897076826318487550032454283512998103793038060539128189275429123541577853458565208970422565431613932750536027504811269798481450229393347363338131835129043059367941611945996646535390756028846764015312137583730014679929325464137286422536291633093679797121531065929600692406317529148604238398116738242722937537378207142367288497929043915234403424970311873490770376309859641369606962785843109896333683865198218082986536423231574980399064015937341138182057781959138838551064357640900675592849445685143100128968375486413445020749813037528590668400706154732269437640141579606896218389971750032730692320889780279198508713297693352199023347733354955160923889800371411769255635598437749932931478283202450795293287760585814945752565797749880422297832632108462278536801273884076245762920036673823621856687301393290896387593121152936249755017906946888761692432454591637365303056964503193511049741772096514057732370544269186653985240374135778590833349252548831710856305313480622755035634320864996782090638709266795229713879126638538892278444495092202130329870042064593062862431554080188324665381617169402949525955953404715481631264836552036882340265628609390454973293200957247117711953192274324139169138291261807445752319688957320118560488464831904706098068925488385253141526352053295288562398036580296699283930323040301754550630934127532681316036092978764174247411429053811616958763594971621937396296631946796904827390861571500135505304815482997871072540376421925381874908843233052862059183756526348933679655629520888286876250660899801717899708222701099776031062490374787636889939239561553539968237666688498482944604129510561427612692251258215744720236250187047266756866235789388399694411624815201753879037113987339391723193040278621240967667942428878340182528951085887688682308582824525279403448218783310975921509276842541466533403215583877723931335738598073023019171873368790063245451510903379780863581251661618734937963848983096550209974604646938592138329040758984203507930643021246601651868524811600409591024834525883031207885522737716942993802172577062842526479908801395153107541976413181445684717071168409971336158417923581024066447746442778193356047475269533619999708849028386456262794008926178479938548816587938869197586544808624034993382702439542665284444159922467540246990539146422935401982747103030748601643150408813927070105893265007225316956113430112832082160883183364910708449857122433418054782499783999430834629177055314130269594835499609801894012418671126120601494038854120238384722036724954861746473558758189826746012673346345064632774802887965756812065470322379918421548569605992788343443220779492168902012977464129271995452814575897027172126146309455699435593109107403868781916929784735451970729865938430560898237464296586212186871115653232811593813014147351983852517063519863384300008253161793093703577104421300283171324442215323391668266598218406477976807190961664184834579790741007316403074803188189511609054508524795646029934136681651025540365910213148709092356523820250555332588685440373488338993883808550465520598037230306449719667330618322023542233316813748182667241704018800133857941984001091299098145848389656791264930295956518976025240557212451216128347966174912636653929046717836527529109121186833997187545680274931111376085357303916817368721720442677358581181876323471178503823157343514632722880446207596935455583794221171526681306280756709587989217321014063334454910659802030545669381968604532956221181720673882098211633232022173013820906986642150915395515895247610325885286526068145601268422805185577351055809223933043026063372173307346881369379098790315653303805723601904111408351316304676544092393952470431721011246909618510987977480065132399051199990539853920862981172604296715189215757377719664634717122148299904088768281515296307720190291548339205564159082995673260972414488387626997723011247088056706200356337221705661549713682686037996332869587741682537718393647408839500671259909564561182262260167403382577552999368041283554633725629383062715696342979257534371396231677895752662894275577750368601011084835076922583195410569506305301419714821321696507742970041711904903595276970439756052242495514855243488330635857596630272859624099468212874992312383234382335448106283434584481432848592396992785119601572741799090295770743161062016196799677845671709176679639378740897368012141349946850379485447527407080569006436193391388929226507077323784349170388769909365583192117606015185841124389113823985420281168017711837875217330521423664835798801310991959067437460752156445171233076260091464496805390284512150333821821330692196773806164417528760694427112325352154006293581744164099627475503627440100126382323039509125698359993102640741814601614335451756665472571534966595076159392880883601095053536593220150600220095237933896203264262015447664988275419261633059180911952542793470109213285400086910716180910571189138055692401873720575489549677953654584183290637644495460739762449890462066454998244930170881353326618253049511832209380044770131189365898549467366627375273273639430645212231052079456834051751446604465228417596826352035818800114123122125570939245883772364823588785716343876135062499348705093838761497233513683775570513416897089367060469263385157949853326098625726828752513175287356160964781265106269973038462046900503268487759531112091915732016923594422643946170730030445141781838045589436126274389443816143094056214975556587595847745609897419355100829633500421455624745768472987283477299400242573883432673211729725050155600529526124818083564368741943520935264630888827094375372349139349467922135666792585112245859001921689888255389781569570743814032779182200639402675512894338558647360270963706451942682714313629932873104821539671139833646188386893718535725643111583032796443266667061984552300480269333094842003841004990232495993054581022643338238663909684059083634475150300246705663633582606238711565372688123681136526006182215405742514648320549597254008326020644877517828314280999518090413394938761434326167618491124794216413516162419170000805526284139543417984475463719502398107439574341201644778288034393025145933983007721400292065174723647876350875576761907557241159695309949241153248515056622668548039408089101321461560920609780813300654676051885924822966919378195042266208464980328114011904026095301563413954368571688249428984969359433428355344518889661617680396938391368087550967750091619279355585036081484129164918911719257951898165232564077856664284308739112618575186321919864572664984781121795927258395385764193023713284345507255749778890437409605238102628411771982713984182363204770615991318802658517782540283413030495063290372497235002775002201942901931831513571355206996823217955619868722016622398779010270232455743980319446602263619323356711489989169056403550710614847975731769263510199564089022978022624805123337074183622688134495492166622438167327874951635680887785272207441404108818026659205655531867579646715088740482497708073145313760177901485741986784139160506640329110595741984213953115399654785163738197155007078544496192878867873383759819284500862819516823643851543416774197069366837612665249761697083924060919888612557668678403561443787380508501463779664362597291234982711510618343099531972010020647819019385013331154966298323253471824297973296810487392576330096726211691753353185604212532385153199143912731003847015723533127876577740026662476657281219680261711941875622629505275735902561787217771476607522568683158678493798090709318788026140099021798179035274829352153231343216010006053758621628193283808765279742150030558666930819927660996815888292454986980776886731297760804440872535935368090659201145131370147048988048626110137577189991124096084664566913208297569517528639631930649929979200170874793486402944876902220325978066128126872689470949984107908946548738262915029555928191684877739664245602663353311522715830874841600981726540077667050505790546875943730294726749046416026299650453810359355787875240722480122483683659356131249808275194389341935331914346799641382856892153175861546102505985299605782917086444502799964792373957345886251492063096523575366898611834599725350880964856029513632284176623875843033461194633581967456160903537251848592987408203465333735885063681327612335707232550043787755334595677376333216198589606061874007334707683678023852633890118101200093652094616920635844722869720199338417880178645754151754828906868384318739670255379083661003449154623623179262597817669665177151777833970355634738082264329577632668621952192853841919882182170846336448603470548440764831353445195661383013801176442990679031158651927958989785201486450796573439061199585918634383880864910593835867343776154729377950882476218488889524573476262526434965015627365973511986109304604966378783065900746810035112810633795755347335612499139376256728684533699058588497657546771626274878796927994362511945232438249039122443779541556003767756426427422031707174195388358239139454117265763328064495570983117901127137320996619347294187228535707994154220609262932368652455224887628547058784376319868037805658995627442064316825952848994761106703009983192599634648411388694098143080826648395302174204485221946112431225178868411851493044683032971564789145239398385528155577112318046372323302724803195276225350541885338733537426184140902434725972211639377570697480166501788068540778449180935214852254794655008698254262862070039781934361324091356653365874994858070415106607758513420058346647577446718436259324574033672585111766902285247484440605432455023591527636043972766655293832451101823285792160907296683964397275896692063562646532065118935886486491161495371586016713505743425860323333910779741298399326028881723639339635667015814072654961832992046633074837523822615833635866602655317613264001196789538054481634114789488277690501601492667866541275354834161228729697510574385790595047521276578116991574904930804339642873772159276544869247655240520851334813452327874667490422924638757002593384437758345756348920131057908404150730576915133290130137618356619682534866134550790223701528768779404908523012976155099249368685017402207627892419703796089491326215197544437346330933614532548294142301289633879555140896970189052007574699862298122421129428988763190346110780307495219278850820640824394189956512764680608738338298595587476517037791733118570443391885720530925553954282268994468343670735421552107267558457804031015561509572172505441413919560146005855930969376592843639047495773868279687258567182857257589403915799249029358031930070766659655037355975270166286725379147717295751542598902977109317168326660277679535299578766197087911130952949809927953875876391441780224738280694418977024730927349020185529963588980384312274544869743580535311114703649641804066215256712668000002841851004717863774433269592426103858626672792903986571434828005531484766437329678646806996773156768166628860958622561153934235360390549534724869925655052595565439314083994024239461143382533080854281704714814840579267710814552790214408552728201669821723525708435028235319150671961363850743640963609221985344193646019284467074331698059312701725686956892923991550795957018760918526442018998401926977926698788665581270787455101043898572090358443670363312142497055930023564409823744049558348385008517725034546699409032457516856180010007394638744998471445285226632320924723996137054968996008428174017801063106973552721252968797501385715141271324626591990199331626811422222636657794755596294184235066421993394873106898873955073190993182659510876230564159189914491154090719162907296168391927497684395444249586612000203338894912954550970754243619715072121316945487727534079542794565195677488664295535495644182500443258864957438962905106229660231733787965102193267010909663053508107653633348871380048807143411709557617478149895375863242576870090759274135888314673039701858139825752114393875323808207360206248516831443448250694749756524257079072873974488594759560747753382846393753875321906994731225115699453419116482300573193946670421993343664715443656514605027328074300285749952787262514097230581851261408958200173591892813196446203227345830472210319497604371061991751133160588069287767996187097200367008438481034862517141109589073259779123010580503245384790156784381676812501351957278161527822869079164360590495272460203592907791054602008365875951753461242279072310434154971650480080138527285611040021416863727894077853244149705799169798903194886340700613574326959104751916728929787484425622620590919314305436715967630144339289221338747084370456498225947690533505510228543473840497328165240909416978500337136630334725758110993506067760063561881681515496324944373617317483330994239234279758902353649627335110974208876766899588814999487936059165278232887031453987976789391186922059836282847114392161149914666433836434761081986851545499522500391084856065317226769228538616312114040190230727531795801739974981004050722528684082047350153909173847058224724803953270161386757741634401332352714920930268876411815266437179379913915033491624495950817916054386444855255451345494249367102706834222675070068451724932664669616312441340108010575647394562079246153365815646208456923871549355356335827655654827987396632096405363292702049373965529559201755083508712260881779042523036956855004959521859352093093654684845262773069660930942104037058872240490974787879889009244700464853025640983143515275802934462666869203667592605944679272042177433211010689792407221482804692684985387382647035755830901773559024591088002097335059532508398102722663711103774885989429909956624782400680173989065389578970202166840415180914956633213349477815935028720003654795495127662685684867535208479689804893824074208027954475764205900476407868581588334765391918524618001960730256585881266081713457877300629296984156049134366385463389817715881767611792357353854148623915443414085821270638864266554804036347860621755061062046332113418153576173353172655834713627768748325984262741646325333037084627479764035118041338483378402497941871078137475558869657601425576326128344817823655043813850129156836724968097830334263475653158596992710275164063836353165819462155544110472786441785523256655579120218433116897624610770663595539908666605695455393605484063857303043668000592657663517894540987798271310687584175644430368040762432346679064612524082485061881252632613770399099451098002284324281307304775250410462561285544605405465671922638013480276275353136950911308427890680410715171915497409045124296261951905234103933972904142992558144252745235165424905291919758451512985350116149259368130244867951279183270924975023786975887326120014365820336046017557633307566451457150551702461567260821833087392817858360423576940994453943815228955172172119197368605897331175075633406117453685756776856344316879020684920951877678237166085123375322851707829060405503458470011198369985590935300770833297580043082663394265981264306234107637836999166638254684368547990854812707253613552696924306436063442911627357209047285155147476016253848362359986285568468389441732861292269923474040266751870947028034668963847385459189734647964671253844074760405556366772784562587173244335838624151471556269778904881697294485796643335071927063946684275689400302862524656500239124853433270059187783400805865255981542632049403549436170908861784805179665639246872990591873484881067598258314844593866894642925920080561774716206977321332558728526916972550752383920766122332324420985778931476920646598856380095683116665620806618146939365335663050726938166167668041120402157191748605169141313155262759238322711548442215025666340642708383555171494231276079264472819204569910612916731565004100272325792396217592674058736219314899882921369362437179312739410506635652911824688614250715794780459082544343844086715161533460669104356548523404633166908237065982816758853522427587632196152428224103942804807500646189609279766170475093270806464594774812618952287930147516516107801739361516708046110947410011834591377621522780122076854186889095530835455101858023636453954194582332406249396104350452251975160130799737590896163697009883661883519809503022996827239487759109636767105831482479076878063181059794516894898880828947429828820258047247085422112784240807113367673564347225763955945130438818096553525158748761088460007070740945908052560965355667381625956674500014755171650398498292063451116776860814043005181353257686494635906335222542758243690364240905091084125449658401010667649615530656911520106676493189355991843110141570744537170409045170128526925002875525483929140730247475735750434390073110381650956271538505907637433172053581156722047416592978233141588165221399343277951667436772687071508694959776759858174484260575216448589554445260724708968116875341414183236031788053674501848298363824737642192018629835107633286511897100674045421674544352727348863978412845612403209932625409399765754354645886100189611618539551178080212721811335065344430185895486828445082418083581185794066924739237579093597750332278953896174283107626193225330692885394745822668195548333518713235554863380767896969790684677941688566040413994190361325235714090058599204990537068842053046517964021271915544699368459259094015607868897281317476958662651322115432323073113900996842479016629553152000537637990937508148522215758268480377530441206754828714834434251416125880518989890934537689113045838708256025201895861204345627067574463806136915319229378173139077614457076478974865215453999039008212025646079798675930012346197191589410932228011784649959177854175666352645890904934095857630392559023828608709468290597596821062342522969843764238183747289092463951908715147603351080566101366746114949208684203499521286733970328267350542116072608939019041958950944305316596874506537553546857779780500928944581219198821702351121383946178189746078551234586927825843059442334091815126887203716035416758080894635926026375364769895615623794734309865876611216251442098067270165504028273735168652532708787422969007955924271881138541512353480772015126779711510613484912227222828792872165071309922160557064681536633135007179009485293448160804927557503067528869338793720626023360102042113126664088664071619465913180315096438166545146569589430182294836752196012482938035384575661318060111214305197865500711532686995747486021936520825981187076699542629633946465023168305659721278230186713828461101982464694068719062747812755054427218772509032815416293722431726451534985524956034567011412180195328258920375193904333921825802896973091442136406884282824584658314631739766797599082954897165221471190013590345964651991610194443469215642330837184949805450374828808285710079432288940629842429922662345000259368709352466274357940084648994291784415455172324588908660713673029728454493503924570481181615097573010762250154273455089443907314638624781519220735359568843423246001910702485597327969369266682121569988492004430846960209680816478307158914050182125784148515924368691782161197731099167631122730357508024320279563129107023725983323476813693570472015038241360284343039613313116358030421700365753474613943780222954506875488628118511141060045431102353257440362783335288351919418577758825354323919252833256851356079157654531661269592272316123123334217024428496881255461226814403787680604619412397966389229710375496923645988950227262547731433417375412300251378924197281098319890804401922254988882782491370079541568586855620385964803842376635067206520298068175805756858441060271117784121687925325844159262206056659249663982028615108827565271210325045200561408116057197396377584404882500247283945737200077944805547427450391633105398216565277053755031591749273981158976960932689150777733283854383860588800145689844430292595855945622599455898938132980403066521827767270350362075414446156586513857981033023042716933694857480871142677693179760882312023209862087824293836322744191385937126718998575801804709984506542396093837972655303738680688499606210431138927648148334493209177004179789640820058425106564081493954186305231036971930418862607523652158298056243326148074513115328696006030366719316342613934693069913402894403834654051376070905642226767147115636447546848075539365976530724291260062002921475604481623659674561019661012552104012308556862071277893731950666275201843673368110381165588239009090243446418950951438746868683017070815935736904289229188456287390157173624177037694117985545505860655848867689973910554354013554441371827111576811373889881278586686043107707758075388500630743022080520774479382959653867884999572727535958351873913127166987697382154384944413698917572599956627102085955756376080206721895716939615865457325909757517280903831879891453936129059614359408160853958325974206663843016687152864500159490754284191198563694807627718342622570353086001129796572281486105702413764405500022682333496131398827376513516897702624512951575148083198043753935330032521851435746060151066918856571556532551316910149999950262029780562322092938081283333300780974453032239697164601922926848458742506866979091395582892778355932987996858090433655364939615011061674144012808824279406155395829121572885869171011991076333604109373830153906185726866742745554392880149392518764667125398104295754079228988268448867247863183055666632247786365417050524752515024305680290395675594403337418565418181661784470836557920505973877727400881552780146987177437315122863211962601110068155964441279379809218823567516684737823827850962416683640532223280170475306877489582035898290403719410954354132941578473250675016030436366038691276396346945052667047127043890457085905511508651338044898533751266868664172651152574802318902798290969645273593560655406161405391615164624306773022794978869815898283457688238821075222074427720015904837166996874637548300107948997000677479428433033065590800368264550088069877673149920518629652124197089561687565266040854533596568324772258301710882212384867849594723622922455055894669661718923996763966529168255035559882015257762337548167309321671599736858082068850821663092239841918743730574466982345401900329853432189871952951427580648339885760066158272627146319381922540691674678710991425927180063119375820440258643317285644571866393031198499231967177483225635413509501997262869034011757710417734472651339929897251835613078478688945331834812145519829242427150584342726791166701237247651410069274125166626812042120728013727258750657401915891529438149294928125883201946823667755931024440596269065999977682365932749546369946495656208746213298945148145460517602021347258237876771438373436188211842945563225230736178377901334933701672562512888899971787823917701734040146930714905661073991238802809812392441089078464923481078453197866752576654187547409875070537251829369605599787706347878298485230938256560581310317740249138055586557502046368001661166099441249635746249141787453056413674461795034930930720988786952047235598160787873421618200648796373275376846831377007693191937186522431911810302903080330809014591544695715692099039404879491666052484694558294343536178747016739336585065967418101823042401287072498376077423366121865987853216619358143021914321063332811446847778443008815235901006989834282975145860705409329586103594794251484402150278839956273166826337981259244345950840171509199862509734968850128525968998241723292467578782683681403359219835636973968591008471659650775111122048479734931887156397501499484072062569905835564328122975569601879172811568282378064503017738923528239734645247285322917466811855385232569378902322483993523104440104421072680928063022405029484878756491494035637465583265520476381892266432371789011830337302793548806356600909368095651440940873815237983171510856105894260406798551284278276972405072904510271864601959904710902200838528445924841898000710906291347901312840314242417938364264223602309383707438828381512218194360853304090943616913275043708394431010330452773164547763032166933871357351584196988439757054538773661589433769513698152882980051011073598061334174079693444301830866946257478473933709049164971312615238215186945044514981150387403369001826148959661550429072829560697547584399345874499990692604386194482406849967063696510062238681229287288089317056673181904218614005544139856590484579795690790980594116184169922096790935991184533050046696518936452860221806359269139948229214188802556370322346651386477422796143167641848670698741882507969463922679849873175675744720342205181817418080386338695287256122095003783856326444890259996559851944601098979580312122482543768443145583947928934787935759900767017923778756610566004248013699067719972771654435504840856394856009366269564662402544267381546195257248437000806717465425476138239043251926087011207576233474878012464510497027123573756603513500765934120248130784826831833292871787715793378868418468451518908711322375174649262736776956550666939626671345630047591543942480094964429416137512500280006728515363494467736037818820446453986511208125248962132787387853267306890810872663139323890888875234078754106503044838678173119965705931776199385813582106536976623112713073224383590491419562332942707231000161747328804161300176203804140266230319809608812896688144891114808961792245365197481866191927125569501332137869990735136354891583892998575687326793202885513531824116679651224662515816924507808391189817776592011141138611139482594206200240407412600647136392367292640352610893191118213091090608938465170956875306069111556199128588019277208022861412869735712712116509385946072821326782012703275478635013179807810214160753658261446699305361352198467713190124097437050045605891008823659165938428896858449731085907912396776508649165097660748007026720217409630367155938473999458456031855080071982068117130772188673341257949015320097080450068588273831650751701261002724868904285407859103866059645676370516340585638070639374395167393073833495136404405159480152276528959988285252778217887720212891783168214848662857561421105640910403964953416665708633235874801629510805183172979068611161103246317979601729190645196759986055106288839914292760415249574753842983686337461724706235601872926517159597194296593726248041227538387888322151512431045081746928366524879734108766519133477500422957790963921612097248964908264881581341853221291436735428060754754267857011649395282389428868165601774741939520404462379090394260949220140933155919348173598477462744916793454433426344475303995904062152690376082251916712611978881667884030372598133654851817143293211304782124515187371674893725973752041585709006890034811491603577343554066325778003040346940721399675614003577004932178368217773099098402238971716869951974136633859064882648461344581933354634938827773610196035107271859839092896041854513458094073960897496796951608193477455710989722859827783999069363257366847178093635710655245907775550158861281783103193831576135131089874804603550510980065537813497189311955187907662923238380047115737283747148576264821597652564841007158229981223813560280688137314525016106332508255460532162559691975662798922717771247372327645016598755569946024976786113686125762293536290861287469897468739097559805210131255944649935927643484600955746520719827635934070539247546984939226846809760487679917987789189745839624175278580792235078581146115303243256726840873553832389875295509689034602773040704368790238500644553095700582406306070055351966371485223111669059033881946993404591769064323551162669369741713203991184987624827436121683721116532381886080199097352468161922345172426473513212343142944544160643127049883130496136415220073794548417213570848949944750530419352349771676899808206501314589624622679798668270832596476301214106998909583726953372137264836787802200421744081086457402044521377295975074331468713956981874878245661873447005825054868559314235422350797335862885003079032413037242064713046454791024507420357410168462606762315524598534449097386501049198625336522368315080095201408914540387185205730467075446197117786303860579312292696186066958641237786206827577317671074292678296445982378336143428697996222859314093324131788183777697816245496011044230081410690862639557265414937737562917166355817819144827729160338924419758896991123505836323397170648410376016643462187927042480070574729344254661571986796741920459475799852984892465324703413253258874490293233459678269086604696117592834167645875658626816521379795511525608975774635358868582644396799690616596172732907023894822312012658523447314346933874536029051065611492708854221526788021427064385457101182559561655436744247509584091493906029353070894801886757305598638767804648848488510060830642277257754181096662719009206237489064764784661736146482363769545202772069967856456646290025537094472445820168370483144254930974447068203449011663884183206961414352471385919921432669729247099743322585454507377155017544860483897548005767009202927414106795258509888645446766788155159372596041578629325975426158435496358415545783873297204593703101244169589627257893222662714315791612887371242264677947236419432645696905499076477386571268154129713815845902479749093993624733897538983815722604088508784665062129348397415933645286788235744976465607026160274018725930986168703120847442179186421728894954234164543420296238733650514339108776286946054597921825757741436731693108274855953293719138440840831268430123142336377145788647610490116308896195051733464067668039807938425009329896943499646672298875807349072013661109893266363503833569893079952468295583240042294181794631254050389414334121555175485468540391905008278757456334114407789328530898299817948097583942841784920682903352986235125206730181314278666803751974644346760632457186209993909410400726367703784605707821885087839474501130061482797454048060483826131464865915370811317408207523790078811258613580794405081878657911420682006156955632930111551017137994049964302469207560190606120752891892031200889620421831249681869483977143935132207316940748401883756715221226842547656679909386112170262497474349066042597380639197578110369044231790076709732661896990910675437253061525974146679817845961425695734391825134430677514129795305350084889111677025244152416185554724103852734344560918971656947721478057898158109661451541778130427299547731066769236929325499209457979333120657137809006239862486175598344865388762417658075429841779128215786295130525467317341741350584263328804370783156141491053678251496890390017472062343121869227970695985161982131419428721726478692216945451177655770319396681998573693572883301283863649814687409800056145730227410421592776816571498197308667659339562876424454324212648534611804332355430209047013458741042001870393589189416931354426769257248398986044798073988884878667664226873187261227507571076555858428406197618746022875548129172573581815505731562733211801309741605342067148044085579313984020313242826899787431008840124710154492583553201498500518745048064189600588569791608855252726635524238101526836481800238553911235197967796488354931798693319231226195249337250129181981148985696881802621558074247794992710569053995626351902327321771079839076145821700397039847919607238917883362153677386114626439275725789330221821303964381619118888247286599281272857319407516201959545170861351955052472351133727590886595276804913982901777700447551538329370525657030493541662752965472162286855293334561613228191210154232986709210929194055084381669402928183501703737385788776164184162963421814780347070373416377487042773966959059898520552061710970953654501765798938645902136393157852570920049248226632806444573400610250394288970946773205760628192910907229824408553969138488434720105449402457314329688188942473090219344968768674799874402101449799292643696050005429670419975415180153949482559368580469032417347552773624283447243070398986422011589408921792858841728182969663974336806606140931535334890562100470917398754600404706385666511221445268226957518157124256590503231401182811971939905186847217690480170604953221034974228460286516634974706717325777426372658745585147391499594421908993138242183631944843512285623475210894168352680434212380696538399211324193409142380386659592533212539247478978933642347351027324965433995013437612919057853536016385650822973776571937910868284285479539404595579873439842152788475782879458931291249495610546429647923365544729627698526364709727297432808203975898114770333748348201326340990490859925686021375244255565725765801315740334534671643002908822911037081965049602186433396946904788455976503083027856103136187073254581344297232044358736454070300914300819657915275848125860465696989638541743656390084784292467794069677439360312901344452551819773813674859584593079614420883738493807024951140019090838242413623064828873815128343993931825384218095105837596445724271037768489783391761079917127920402406211815131129652563124794645144030883825132712800097929563255974669746236240961292916132482330809570002706444520849764845645697462258700184403814835549209602594027109350745953924308875016071123473955613503539336800213280756043387953351089284740126751364331369635754451974488404422705313217015573592211773714602378269422740281836316260877219214512370131749223284133075015804397193495251199861886592406537992520065606765613629508085182055330908431835694591602959923706109209003442591267155005977388081817223124064964978625625227414477381293847783769724977978848297588417969924756554900714149443167730814478803636283383114354202420267953608383302311520719888417319288881935856890584475789429154207680098150081286660344248716324062012742310230469122144999692929356539721360357324255660994612277853234457819034200246240860419303536290812125018897442495954280582511262214709405374305666561002817819864765883274325888608151811250921204490916951767777755081167412087502655711427206465580759141562814155277266047454276383408624206939696231229125558477583892506717654841880081762417476578417211716671258719239469456201706299540166281473639776125873720461491863481975044943848508988256108378149677152782908249780455309639862325808164353717053415679909150617665948978887670625611779277769787134764872119228953427524165814460590822192912322852602951405608300833766881025729358389648669421013584108775841405592385360469222040865428987104738279150674647007264999088005605939128940979448526900960439997161855532232883951682734374736149262429776179132471604836698625656712154612662474113757781164629971406085867752367217172543940456930300033632477010925529296128752243038286421908176364014484475444252952332351448308859896293384670969907762922669025336836550118591128549019532497572130627775256687425785428084256238115938189873494398558201508464770668868713072138544258592579907340829736222519548610219659484811789811755306716650980799505964974676618172930546309053896996373194929186925040628525648962905060629250060220128608827960471708023358012497867910911925518700427985916617771384076401482142156194992772811126267198321030444225331999709631711530258197756370114206895947458575220875305898598222738884899973179002623483830254487435518244047741979508159347531022902626742566382795490085029004225983614160744724556395126874917843933492838456380454993691706385911752680470065489174985814667724773554138741514059040998061313273078990598935886793789917385709823001604271266930045036046284661314263276438629892817259413979893290952510288813801141157561010627293937975270581689203228942068968027646216014971947875904662548421826860400679610804573793766903143836048404405139440343065646712604784946208057973652641195806766194662821786643905569580290497641584593138535142733737974744456997097331200275624117669963907040212479699651530979508377206054155238652212653525502884670127779321628070097522820142421618654935604427805691083054212324101233023192033695844924726992074819213693462441200328338207074299490101740554331039329164348516657615961378282854745819546056100291669011845627098544223829049126656682406094896041019359508178042534184339446822065455939884919816473209389341383667265294060864724243784619673515376910249739774042699194068694501493636555006246839017814896459660959922581084679571581643860945280847250357590940232285441889799702110127308845868808080881202219415713663408383447161522262579703595539568791216668933004847560867103585339122530560961891166819315340697183080159361450356409777702358959428615296684723735101151225049538925836180121710454642146035348215564380199934253963045314271847447536534743568151271271537133764564467079059093649825280599520504546967463600928663232259098366318948844379990532827728234946893239101039756519183125706781363213526027524987201478280905706307818534961997496731745778589588259458041104409555171348019911046515951611774003275635964534877823126614701369263415567407227664749426616506591837749415214844572047284014732771318891471593580373931372958486939264616165328307241983244204814461298207805814872737386738202771318224454892687013854376271652245283100609174087388550811572930225482249391739851301615353950132531505665375458974060988289546632070731011095701171483338847824781306697366772206909773524735897524770650859694607485955567002304977492279262152835914235115151579516924188940406043330219324961829444590766770287403015812486335525847585407898571165536313940745112449845482207253373613999513139734107634294655083911942990469857735804012438078009253883689835884208878087631175419981087439749342284937248945268124872887984796490296480710556018075191632374258380956931655972132898674239554618450639077633304863187010776425221979572812053439586438110648952970183859964103889249443179102815237531265690353881896937774389571756494452863589574829820227740900181144294393487662817482302971033842384450306670219270975020689578510078620975342909911888688041252760680416012535714231002938479112461220390459039348716175459964801016086374097427659620781593519482298730826637654977308648030278377921436578870864046280261772348142579743965676246896093110305886027314622188232700552138760514370695495073298583785702637397817982838502590477855907459499305317798654441272678091491879696322648652646974856255025534943819696046361552622451506344578792364759988317632118242502462537828033578152517157890554023347690573013962208964076188526067696466507886245969028291281381683492849749650793075356048959168950183721002395571732118005039437592088269770957811686042222104773660698431774353549239585707598734837671224135559508466492743142350707485101478115379700078734039129074264297126649391852049246520285758412950911718637915837776784509573180330054646433097148550408504565247785456809975429300095130980829738724746577881469259142681145370536073691845075429003642155214494859555789581864125142266525424357450152693592832562119016372922891240859747852344617608027661242058748857340118821082819980143520363363477896513624683721249909411458598268573482498828736264384393032196006949861080523395048470867013868297197747329956613988599083403828677550329006858316199171237407720324581885778914810085482239498581939738849618333484370627429196036632641170071900260902458930208518843552097130786331114662626715038896629431813493170730403188009007322333673374982130757099410788893164544316326588182040980222354397119826507723614512143070920351247396913982733863446451064737148481166857068332611899743101021197397331118416702591651449701433713174950502452001158654396179481185668019394730363566272289677653305367543769478827454770460670473492092757833611436615197596067387950779656557506598022558059634998911315955147929838918253499500204093937540364124353380477816972237271006765317323427699126684597939094386189191926251864753251416546092533425643030228054649940459280106627186814113321913250436257838691595589448381347906968851953389447442539923337113297160457241000846547361264268686196242950858931372461935496420529998608931969879216879571188962717075222796961613916800305976128198981014114088877944619460841561758142198008178884312932052401824664307715283144307019906905360692658615591142037661567155424515505273774492100063828375808613693197530539184663693393891150250293829369217750846305522057760956570189227999019391767799343931205229163007756040347079635439505110234690667709051081231416282487159816691960390223740833418304631927274909434146505946543503862615503138945035131451326805802230640387439226710132548097253820521476429840566334929087845741200803620436005118239141052964559381671988945935975021012535075844748507511422764317452062092198249780741896724532332775252901932323707210058370689186094318400643267275896486535126098277159671057069840760538001999379955950680268043708190303534069416113901694796045724475368310216733261203591735823265975685008922226299833959145436335204870124790310909495252149477211720062008911067977835389559750794839718719096208873838675835235251325733689928370010549782513756180366301630176437559689767782652125515956742747676135968600299854501099146246305213454594537896446168570772357766125060030797268447408503275545773096101928222090141858819064614835539569902780502192660506097512227012528043904596916575217165753109958230753155018515324256344933688220665250535043531936160101334456170445278683708696405392504439031733873146285902789100917564297146059809943218450626866319193819276324246421276195776433795099269036690272274938698599836524857505759917198161726342363170845230016210773220507438893552467057066845962734754272668010796108909834844642828531357296535861307165465302055329382276175693154124989194987525244151128384209734074630256356101173334653625797760860986243536238778407656940568832289723910321228444710234775460584836091506837809429070890135202513611680793259810860835163060423817696491885087660542771721737067296552156570476440444005430758119002340931028179198899636883794025634320678118204752321706115375622879384396204469581202908917530527944890143016473399048088083885923363767075605589364038184772113631452276358848261701584811832106299849665499706809356771675039589375804867981846374583466735015342989212864353197599531074360305036002171450096690837830212109801630512270342678830299362655361350453488720486787739868167688865726735416311221440237979699940070838276352885749095985586466025359441289591654117143031515320676769527794661941380595130524611362250092203320322767763568463196199022776884652822301092645221723203540203655735674144386388899080969878009779313707252241476037978521552376739366815844221344680370116340352475035772073235792072538078417769673642870282028257730236476284638595050967716245052687291194324475004423501935987817143756938097514629338604280519826185028721798687368322773964427289274369831661594040834086513502616233721561797351762987466542001715055929836468426181253672462018755867414292601886570035465266805220533883292209489017014353746683077701644167048599180703416214594968749884801389488675642358150086940503037861124378171524721905389057342727022366243276809479328192630106404881274529546953243131689668746045285969171354372227136065306825460837088911974188232361374221253295358516708996852776508106797405914972011749414464974381688891569443695361237694731655854739621378895840482525059080923720088334117676406475503587338074608935246577426472920144050420910714809997972797148133449091218338719707472704006700180330530145269767933745019600350231599921854781449805798437544306406552975215629061005080054336113827662569463844374029908920931916808661760954414724577809553152025330292583147610150509780575218883043507998303757042658470865043621632172748907422474863455286869430880324340434913262032198821377566279510564483367001697921303364727803747724704276839581965908301205888634324914013199790863789545283621124467566660524614624300721059786737005534509650732700448221802738759013679158755634025565093960201884926029580109469864402743235507735613186767347318082169605303270109111681771060663048231089343205547197116670027613481716699793748333710509458233846537475431713639719952212728254527823527319095583889709584201428162460848633135987287535648043483427957580256653360074086918390739738279737273364132804472309362097906459277509097563205845602957791579128471040100918261330062838273408917499568646958865772523700731363244471445559506856218407974464054185330011528482691369151726799575910965963791220407905822623984635544235635945668518810892554338537134456380206251733304183296037094490744363292600274062037222179998726311291263074307473988674837937026084677738971031553987419936237807220361782979966883509573959134829697683119151910633790516112492163753342663853185330601399915819430172718286191773053365856874696487633661283989183993189926081600642445755611847781655127787711826563163329437477890312196542890337168402405841993032283389573543875089376171622041629139254349930190498484234939037825895609091250799078831510827916057394074023713462308567527356039913004525251078722461973394230280220712140018247246807659080085954751423911375091499781113222181108598502960960976431934381675926955344884022630321357916579965500061452070300603705061519611999438885433498814018937606342733792056852805349842020649998668416740195175455603636202725976503586758192412499328840729278944628946970772435181012311726933856739607134520827898394130697337629988308897957559510301341322615287340880145791317622136781064174371455461115110278874678722524897543173952830895074390055854132940364764063121107828110182951951918837734161901733429093223794958052620111507338104965715700839466484056699973243358170495353903369299905796774895768401371672736978762260435416116097496898103470272868646842909126591260226169449439589468872135469624985023358030939309312319610695936774337950486262930709724711321114538237823335666546471884796955581129746813788552359954043884038437925427784126514070661516294918769064097313181225999992423597132736331945161271656545449720747942853776726273164122465506405077476261283532227893969129433628404794140594963370143143736975500025069226641754773345961085022076259074930884321637612651744606782643690441214363641710654060322645720570921745348490894200105286065984480903025864323993960940553030533257376155983585513294664181596954763244391129515540614175140967628799821991925574358350938661228746868513697991290320760128764352437994093953699992553788694112393435709195036156184537357869134160167427602214986766250383883436031506529195937787735130404059472522950926531475783437561774026922767091244235590279129101102304835765246179357648455248334806097506368513356263476705850554958825546186443579731189834764269064233326541029615265631003088583065060997025665101439054898684807172717390117029780067427093896265935020192615227848406313833207813727651937068063925806489251105471573443609799079661939000986927546104478216927657947029045644134679412933619045213614523877943965976942175912757756495547004238733200236412425918222296345317803476322022008416741664842547794678752706274403429324720375188560856592673406865379873013651288788793891911820639950597945841999334358142180793589791035186789644548374630795192926906468800690090828056048483326862067129270958551992388470054825262806823181646859031929379046174455516196191865220201873851518990212263013637158177465050698280957926540025779539330139613227619927969068689903952000181297305046326431163810245070382679349335603970400824161543193622926202010666693963428625702924022795871174334484917002622926470748052731066736027703698916564374831414823744903799901289187471801449558941372617693035995280756585176943004663236871251131488692892884941970666577179054057819591911917421320967495057014684515501701293804128346026504470147366493992087896731464130174854133371778882702792870836551517127655058486278544434622117058860621088081013265011773459088052930197251406203561233633347551346925761137965857336096526503165891269427609675549400931577633584801318595395840176835544765690873471362053888644999902546191644873348619768606075656091950257061571946140902648453635648024690658355241527694794014394974645994855286920100285977210475776670161845122664766355156569353660591297281426370703627023354068359983877484157294209318152827853881525900145940506845270606279643598841657726484365026819205964642040335017891014672162218675693814780076829644798108281716455709005451157997978917583541003392235276972617391850307860366712152977076165016962825491963942711501039095267793391227743059221652990669742391378807621559610159692038760660010979204245201214972937055260136022913278347919427019831344303953457841492123544734880321161587316953158521043169435218424947931778793493477757758922431965420348429327900315210753968076137469493519711134876714288427598735902518209066302939433806743907720620411032871244501610144591100030390330457460981411686135977224011832308674584076529997025005457535351037870014129731451702081134872263981878196147793964563776374564133825469737689969400391313510606918648448762313735609066795794144228123225821459299755258841912622384391137882961958317909021557352375528673021522688397068982423593703780366639914831877006669609415790008922353441627424521810256880081325819939733073958104063436785972993057872172118459944094156938983661441408345392591746065763294471588028400515118765241227365621317330523061151345599535944628642047652831400750334940873667771720983132306703668172792651297575675679708142124810685668064153242287756801967102943617467520860683929737596173786141220772219837417466833910553201347605156941761456749777103568105167374960900724759919495834227899590790713042912236663830745651694608782631592908943890383364880425950948971322409865916020596580015542362744703706501435931997385115404702920311482485195092530733086003548533065978291016908820910133730342921938123100418864070804613576872129191114221701969099339939408278706911954951023135315848357852767949697596234022665509998740737147437912143200997472819569328666918741756746544209511956483847556606711658361792595247151834051896491668759730599878936295049299662528511977918142940597935311003064720407586068261213656933494766437502933146026321003163856972301904066916360191908372089774694420642345610845700117974885105941895720958489907289972467292311456919428588507095648981254304234347732008596536768538066916312601834710216365234566086523574498698086797981501219313511179729777174130045127952794909012560100674068341792580892651079162568238056671024698358047151140435968081707563632447302644707363382807299615998229056532170390085708610941890380201653809424438787011430229035505284972343064192510739960843689522721335778375100884053239472191850941911617727708046303079634799739132681707850658763754371534573378971628583861787168462918335216093404247385110866589359757140529372239161922996653678074883108815436698696655410353970409985973307350324946163047391612653303074918552844729488200236243498834216360629113688422264197528011634828839077994429607093586879408914490162214383397552118842710892120793444043369155929276695556240272856101719127643778697568362967761037426020779034468098574259465259094403523340769696889976792123023307279997891741492509688737307475778672642055383143471519807279718461438752440903535276120298379816522399185051943077077909054404463592070345064659324203982202048958341064646710480166060196545090099959021386934687322419635277768712218182397011907720568335081136038104334259636934981476870808989011558587254741633396088494738877562430845053336966517314435694139530688715801226532471149619061399070664737491717270499601387630382056821996734128643287454249933740720566931357752377511260662271084744367452992778161199150856167422164990500195564712219750582462953839891406059511115203019126591238394285509248147812059874038939786003588896211091279229981389590590846486497525666964088227669011113531447659772201865361698503279340360619846134625283362704803516917362389292387973772514654286628039232520737529167708113357486502994895834885148489142329665510730206708901979890103606503219334294143654381506487796831299704135069916254567795462244869913621111472912502530466522526246455427612851423416611203158202986309791347292904623907160501144802307846460337114953220081512055981703667922519904723227244904534637235787120364742302441895013139468886091657100964254579298142961801324240483078895994394853776255006058200970393401676440464753911952344925553021209256003222445059147750993907594897540362219244720997724108708445281848826316646577942350451884560667897589549534904261515063623324661759945174044085825437440816550963028823958348464370786550897365280444333774757481061721388894344602801956579035028390675428096126052028867414752397152604980888035479786198278274227405113998152218954037104889015899041918520138216591693449337238363241091361081332541832048104734747772924035032739300492426216936979142830368693859188764311786818880584813917935038956441356469121810505192640407543915277054436722820116292030842167196513291606358633283582497913277775850657876763683815223878020632436752017283002935502298089335438941642662982165970650867769360254840593107432507518474327315179196091029389997430272798010098555440463443589525943650501086590086254924754932283932094681803246929358769122960097269899885570650203318730706522251410212682654807864109429682417392089846490012983605265299390028706936502753897610162861363771757054232761467353215120533383492693316777165405033852994018868031505369050642431144052188894741106577925401799538358125226028651331130772077514936348729976309301816755965724725517449433427439320304764714587520058172172305617708498306341048764334751777752465848380896119965391169360354591582614753648574479747037174337105274754231888704208873197341920036698301291292302834338414013989325163397089340471827525034631717742646676721731942157558464490099692900504604843416485016422481309885200816825998883875976588039479696277197624233297929229896667380103844514893681377198624054973545968031877705274408026246917516892554455407435985575365259210996163036485007866383790357558413499309587972789154384562371317317496521443956675674426066285281034950987482592295919042406207006676950681136655629137881148465886617771948423414850843970009915647511722700045889618308536148485897652214488699377223137718484532341288128429446499108642087527492106123443016101214028993217516384333276038044113709129572139558411839896444898543144938289763784836064066526075180393749867581839469249851378383742669591729384637637173149988094400923411575414909909612592712395726663690503481080703728675581318832942928661678714621250447873052011772141616380089996809962706278060969098248204135239312096314683454453233234719959957095105042058923627751154637858657995202980007206042885796920006457649526474026251587076906361119703030635924511614581761043663162487821823007614504412767763916505319124145753529772092882618593836302246844287550885016834553486979722260530585037357382009006759301675421961182711887152692895497190551046053330202055012567042771479236219848560874094657676339915002582126420400984046488353150644569123232820031036476263045426216605699741538960677621602751603536872585207229188521337830315122644666921797146602501498614503353842463201723499644063475267628448344690385313839287951988068400473380224630460580061974451395963843895752882720819179390662619628706375272929185858645917817723317099965888276349674008450200528567224822432203311132443497165685032120475678393735538737347779812113171373247256009051352743764671169719198064477924227995821818043342050373535399979788043938826712146364015916429983016341532017660448489237901248881689282361114128864737681854691233886634541346433624883546130672588672542452216832763451978094872278957409196778989644105494001711548933328529028133950530298893232966384615513017191351411770484962477142676597490292890720513686428737746117989224902007944422369430106048784830731082674369856164104924709790353260142661686918728441804162352833415750001883324059009155225961903950993059061696622136652386519528228703011959344314174753189199507238719518589139735437794146986171109865219928684597713485851168656753677312026923875024491761400301241466902453038579019651111651645917553121050593708323081983977136740815931834055520360076489203248773437395147116064622689689827578769196255519880733182843533677928210192732261425140547765711969350596010189173485734087097154893922218118847786992074566965078531167760578629218569839575755474205317077300081290422591683284271394419287501063328894265736632562719730599929952851767914071834780131226533033110110132659636801723287177880519900255649694818873896694041613918316314465844484929152776661561538563216137273412413574273528511306241557793953936359226756694349644592008757540623256273608084803915309141286616785116273521634678432266952732542226405773299404391318075297692095232705603185963409803994054829547765958894785187835762007865649257367971876895470181758722255506010440465051741900677924956917172214985437689479386353124254803776501103712980128969232592389895470310373401102188182694270313931484462857305912909486537658693916800838075850637455342989615944712583315046268611010480309619362894030620907377207924531442837794506558114918433289942977614681678098342199860784830569842986494049744903980113864810729135904748919000561561180742358363267370010457166459359438438598308539564074081585412208156367410208387058676842050388160459233090321933154689288520262819954612585277592787032593503228551092098167003046681040791891824266531499394261935732592068973570525039014592679328162188280582620022565315370556540225470967160488729955241704607479270619196051500733686676636286549756359089653159421687752458837656661445626740867023725106329084928600297696454774761267448692243422479311156553981581123058422215746968944668018479302969983954123198247237621573395053340329015144625248784177338583203810954880914614394874006291108560764335516586025177934501247234743217867335431107054330304746949121413291230056642495684462967059588886422017459524256844767473076747526886541070984620295047322281462101754360683555733608146576637831619872064634388817522495892951760170904172097739876190359634655610355022115153873318689020167531291249990045086407294794137754970407689787216437584781727718944498151820778557627847213021745465041311653159871714495500809133831809486436384343208937817877545038821447575568306360827349761811832821229434881591827702368568458628766060305791868078131651905722200765814189324185325181608412860780814622204472890401747069026256618568015487656989843420960070312071749785876109404331331342234756584867617032383766575214548343841177532305526711468893961766568415520095326525299763831198452221286012402566498404527046573086278276738761107683390365108906406027531147124841800820498189318350952721265017989359528263671431640042231858205520482054334323750973037837132109082914655462659616777644042138060122094356135179505987360181873155481425407825235440990764089206697171475464557300753239915783117982365463305313022006383899601957282334403450585959201524888363556899473181924771690641522741698293805330361217809232293004527908002001683540795025517175664283101587238690658631055482574667646714723301560827431511966819637999511184458974620413573578728099081279413146301241140770043671322503328328464025352696142610194043465751272221298156586753741110478516914454144104053870139625786296343621277920486248217798141886663812743676621179792749293640602376978197832248815409116610100204054918949756762889092978996865295207207605477956240497727754120483897890923893293585801616999423121257198207972827293722506897364842938208959235992919856043803380874831401209323797925507616756252374113159153335485780500072600498369508131047599471456771798521186244265302737416042829734072224193795898405295237868287562072425018690263306203695055395060682629294736351882275333801998738035477067496309280625084380333443544698111328673316179070657372918180397133233390231374015992223493427133281655722714015851742271286732662204920607253056563557003531781871673203614194865109883249841158193536020554856962013484608911903009931464682165551087031603521388705183064693741360688143053063057696601214728843979701758833642154697738774501615487467319498198039458646393726348942952976116213300605776803234141941833845364065212763662589547474709503192703270887260586543887974045682979243092472840361728210960246918633518646449947516705043999860077683161388591799395160304791150776526457459214688932890313353363138673335739692697192997860788824378772978948012032171844124237385686418488094958960596145457719506552632394673239770608321228687439830084779019459308837606700809015801428381573050362903940094494045215025761150701006453061941032002431126003931310778976937240597029994861602744807579332013674524696159322829320573827027022101672651502998829863555760441927225494435392986506699683302848276324918074256206532207088755012105769325021913601397588057283069014780792052112981174064347407587016213361703837919588827575088035877348569700018553736644186057551088393365412010182224331908456755299961367543547713515147319760079720788461706640691454487129983493389373420008758763181763998035006762599972626597890365246032725030864097259160005179405263384282143298036947562706490046413773828293972871547469407426525609852789370005924636049877442917808099650792286071366102760534680437107607421484379428034622750148820106967879786105512779500355053516522347885696684510610975158192127960102392980401264349242574689975577057559511049805754458556107336405861511166362787998093859037644854538490161393156556002651356740847406848007122127748799577649067861874814638407657145331467154680134429240318059067346990174384587328443941200749867680228503736949610165145963024518411214764506081800746428342124363516772226225939772388807897918483663371336227962643101308006185199831447621444251695705757129987343786710840715131985453119692497633735132155225687030113794859076208112813300194186195074177052134936038312272709573715741645780226974131383511355651452390181348234584974833430563754076154388985928049972983552262102169341667162254787357738014575847693874993633045399187078506776552680328375822416521099462728141267726746982908808086408336994375860982146974932085848444207599272750874768972782259736029525315256651190651893728851271753459463003979267925910885783937995394937956875257469395612484332230466797740901744275920372833881911235825730557235586177027441853433225460820401827264683897394532472401530375033448966197923842111626771616566895622642708084944513122421409856847174718597201198895981650309624167268546649181852270791344656081854849386034499442386787265832164016807155220324166066625142115197434866557609048859494481244115325637703032064611882596752496182995420241565962560347518629521918725984701549827207616905157143119649504911911125083497501148228101700294875856315720861622959306663326712929426401459089397875152636093384291979830239853072803242438486096529713405579748704308573887034235282073367722144807338606173722202311919165358141504405578457646638209564272523200572700615373974803264710535915635648941768130402742171256908599806137435490224858557947584455583855684178453962805627163565585911914556294459566430854987543222290612320269607324590516178177559527229648140753205839798225308454641094348053148266585888019272353980911874100490837267137196194196839489214244731869189739621827263442157457279921695879030493124370582808755986752261023430845921821105190374324102694290709672431453476581515030621836100738517470894293753995306247014659525814267913162330488022079554386096906141826232530512735448852176582424060641835218883487101096404485209789802056170271600129087574888412992967412904643491184144373333325072439252165884919524480588333547288633670930597329459071767312323055664833764224804890884007080644330572544359523842274818654863431925243882063944363675823648934078453467889289397826340884259078387678791332772750717874449914553275625362473935774177335829152916919654059402855734503256182878807003456658468380906941326534343918939586238742575148354910820430423512793753847658903754505004462552105359257998381600471016922003438116427297254813022965303481752202786977376651616334509843467231241428147736453782475544852961105723716860146606115403891496649129608795578167097799533246642953241040610496142065031820986928549058969348585399014258133211485875882109631966147935978194791463229855386107608580431643042049526661286538064665501038611424374487548500667503643922528375431303916008119244116420721168653007649261997654598620320006250558695971931203771618866324182109811197383920598309725486357326697865544908195846016811472697180437612818649045568027821753882512334069480183619645415882969503382494642152056108648288080649904827907118186783737727202711329854395215694227765470172002574137036301942795999251951387815971388918191954814473683524689165401371423587000400508854688892332752570604869612379576385329516526563882156772206548850622016700775100984424837813517532818439091276963040375599345553491071083001595101801750534344671948192227217815207373804201352267717542340150621331469586551540955738866781918916930323339241123255011858591331619815586017739352154250882869966737275972360111650527964351300423297590073188047466624312318192907127998906673878058229616992163020930734929055899520561807075038405105487908884947270854026292508841227776242543134608308857661603248700214899505898090044245141977504857349891428481886587395666172503949541128094588052610426739329822569944282439295443294185489335848403137200937429713616480332676459356886387480571477513328888049295014010970079746055732167714379198643349179702838472524887115634596154541007018465486206608422249448698010108412790731067638791826515478425765891923239346877467569762214496746141893475626997356840506918637568022550163813261741960030452386611073011829942288819414218703195343779521408039520760168079590570395273607245998807730197188128080846017289908326453773264934458166154269698571312496903601892233702916366533131206407299284412350936246961582590708989783633714813474880797230758710850890567724609590693776175873515064545513500884029612840776143610424436875808602785372697999582425283341607504506234978880587813099588096008369413142271561665625886660060184590386754828402342283699241951647498398529177392145508339009877905141363458897454389005000100612278523742919313429981653860830906580175940155158964738752432025220693229251708425819961373880897876782993599173415437489641219475037433849406393524286625678927055116593369501991495992982592590239621559792500175579279472947338941775525495342672673341215109408576525465912863539717803102694015708398291279983331909449840576790941266753110129128363361672252942333754365266875722858908074344924418495070601584047271916088540935087687006748144927092463641387038580415130456855165693913370962340213849874529213717110653817356188433450497670280811911109438370486500904825545321133600063811202083045632141198097702777127756110750847034918395019057980478449321748543565978703622085909298664371151885340070861251427454797924651153813752008175319957624535735208961811571730445509980106742953686738106816376481660947892309125847540903791013419615637482930192035212719694886016164884412455332766237600245174542993885676773236637949105387789324428907725000929539305752141391045221693462580544402815090347477010643838088917844055657115301443492134881987610014043714880887485170392723968667160903973033782785543715868780276517215269113226155217066537280637067369264255551797153380431564536858333413077153044521943972969695071929948197079110182938622323522960636658483616439763407728886373536968068746402500676526586626467928070767069270886005143507431566808990883445959970389789302504494365962349940245747121279416238043853025840763575365410622834654894352672372059579041678681321864161544032863361386476508184985526234867141106028987875518436320825936352507380721101115778779120697240897620763557764238952017537699208420201879389361479186791023567550636335295841249770388735323851157953153809930937876401603982528505320900274666412610063574789894630632230100146306669504881063689338210653918338575494457840076339078410403487976159947131847955190732740765424336084996432905973283418540462581164475926662873463359639723758169238686755547813430311079078212470046981934467959555996583826956184419121681533752234494751545853372227445827631171482205280350370138989334477390217020841686748618032339649001528768886032307363409878710749274604201279190228692669970147965432675543718875769673808975910928733152311300149527127630974385985412718432243375140263399744232028485911493218631422340673736101516180859321857837316372758952789671365481107943806528106641207675773281563356264226706362539441837474789727064357300548112989983900064319930035258831564509531125019493922516414942984817492904403447278810432702728141697359751139474440079319332568210924368371765002765007437383933912773257944771239565725636414942281550711115623123270963636750702440037838134687551050282330241718870892073487798449197599127137625377503631949308619295906644126825911868774129944913268373650960989528218543616452456266232510022043598216810282634559828121923543753402692840201429512672524499925717562616936239216682897748241586725327908721214012039555899709655551150358242427932825250452464881806544968669514316568999793166798793785060653000949356024223003858280303399772833440610087659376955612890709358275437788402441286086146681325739018049936015429846335475823757482899970944520379672943912309403821988390692156393481714223063288508540562636806421550774255205425365553360174700251786529897579304669853626740691281881705231518532848380834720783873675211578018581052480689871488365554336638537470384490104823244152627485663148792100959688103348734950503436859060247728776088332035401120579316074476355109018696942192180372207998123867656589903831328571999448707377565921794555326443681956236584807553465331765561937881764380433854745978486184710794384917913009935971503848322780242029224438243244172037177601745311372618084779179316368263459621063335285812539299760197064495033958213830484581162149767530483840862885525031028729491279818819060314552444269451926497453368564197777204796837035574922370799010328416188144608546288868504241992025029638890495207886608811109813146379193760263661344206445376897000289305461838898099379192428766574626532969297774417497135466753714544861320386293515427182899975328378232648787678328354464789358150257093159585436156674350065563594616115286582311915226306561737962056360476047654300824044267668995178489766724639872591575219659326536707310093158214531347034400709630268390864026658825712258718852546452675164376732373038517282746182536016033922534810175048278440210580743678835171039380243392432933827677758415532263438736489119541378824795879764733911055180451997963931931676045570232803988273259894248796019726808723190053098865866772851749216986641695842401781297077215510843979344683904324495058828133873834954999279813420180980047436623920611839994345361331596575434376460937563340105604741838057171200224546216280362983284503246876130362284461508883650176548813446994990444046817371693352267057336175410733416444694712142887243349475643148896866075184411965465428061963866503976238760036315947393217105282652759453379362752331430343964801635358646402729928446165104020881770718718037153050565348882651995874517821158570206238137156958449931463530022339112834108756890178381311301268945909748290215184172884270053768797196072003858086266244011800758170644345435852476177057441659347449419951713989414169356562324334083333837858042385686600400406027794451336402197071749329144389481914976381173477553596810900973078088478448020554022448188273999793160430116118584519671811632776917435781279020835073971617310971400648912537641132461064596924698281153594224828143556698083174889497706349050569778922674380764775557595704547340534421659444220644602274141310880055586173411567000127258909912015781484087714805015933404276930032652954665900596347252780905425282615900492372816901030959984628756168829151841370539135320629111219514582489124683104920365315327227653263744921320747850416241287423145120959436211584496615736445877566508841123391585559889639819924373509624505513747689816545497953328299187863622668906036143736443731652358206043412086887504551881944357772261511134673573536867959848865652090695285772158553237072194677424138536082617321682460386881111508176167513968948377988346748779053672674881044067644863929229233028431048516196743101038427626009612239620861920251611229700867162519483812975181231850780478265603008115745690940830721519722548334033701637395335878192499537995755855682903545678558928452234692197415672312906213989675410675629027226656961486979130505197056203492021692739437336955933266769324495630082119506068872939159059391982335466521803297111044741101560367390045883859366836034932267895815762968673614591523631183892852801590457329642412613336113531504149348688193247939615725838771201420784883291700192838583024644217980673724136387252939115227936964996049406132493249282693776274045226504735597754966798779181792217503261606266100703187638611833397397613856869692291613338166853340374131377171231814267222233457487826621546013058297033216643678225038274199193854593904312866152893968308833858232602221511972611729115020614844820885133926765543674807034738237482073568029455072859396143833491348627434346012577518098402601779554534740718902243925879565282218983358887495845621059626534392743171326947147629503899851131957806889014598354830436587501435709443402404778922907693419739348832707193300482284601371568659641230670792213639325706615547993733354759627558934901824327631149484018685343316533053943123267933623428981130140524875719043308830952586897624177070817494440746280945511458995832601711378296828963410325260638819269604556535871781690525044636786167643841438839293434626346828881813907265443309242130585480740762610122944564673585452745492391558048299817591849496711432465414955944761673808723405228339441993002719638315550517725927878930813935570057565192362485700455791628722005116622541692132589785887081258888746866018171141815111672586531732015848116280654633650580912545994390742865427581697841170698216304587810530068069986021507324722402060041773726907146241317585362312122808539059100212648593478389054493927531842076801521083964170829017224144904846322917698030280159958394499504307608275143902088410407872019564827272411673761818424737139828217987319671668115881604694507915804434065856972875847644335924635895580696540984684785831035721351533354682824082208057706282556540497942358578035159766309506151678108138008408458089701859282496504960001612402668867759895046832047735088168076361522993701105539294038236951419352852414884927370655774120984371051596019339287424632745132845353336242086009284334380388371883608792079417618211304244262047075622761099205164988716408662422768695694205459487816164451907501096519448677387399553244666156226409242073890656104459317923684840419436102015143611777478585447759532917600724656448443419747905889766659826718792798748452103142465578813127864923118822678951033189987911799998216728008374543350009793487209437533336962281057022901552405358398324662501135235640336807249110266306477111646748126247664897329984687403158789077903741174824068260679228366388866037720376639473853395107085793182003435210704780401220728585431772271373423230733902223099457625031881461955054826137598447817601730518993714791132020422045085042939884041545030221136969883742371040570178943380115026407911099924669804055591256215458535435140788855171317719712432581042002305392395835246320044623414369566618442003051528254088060154187430631521133358083642253183730400098140952873145592877848059437285141894866117627901175837409970553383102865190579175970815305926984603070718286952423115462918885016803443588847566925398601463116339876388015332627719506205775965708091322859976016159683187644050382157749122779603252441904068246335903254192770133919311823344226362601926347617643428049878059678867536353345409995224182168208164155145329174251859250667156130432940057838415273677710973551096295049726039428594501067049088725037374558992767970848877598723267517694107425129077833903331151458811635519598229223419167939634270959217819042193494337729803615585295709426409233279136730030564162895923828791404486721328957189757217030952643454145416383502774031216684233432616522381225658823455741263971107354595001042701630379873814194587176760131114277713211111295048048372817302932555889201900133604238599957489934925068158842546035052490211487913286981790531930334889972880304180183635588157791055272446571505264546623316680719378628875353799170512993944956318304926441865455029894380517921902005591322758137524768490133624295371798974099902997689417155213592249429675546137761649757510347316286915726144661159305475988241663216996667552833820187773304701524831274977878329946377121311490270506145195731088254692035218511843686964168531400512892038813763342169547933393656056067232743853890323056856010168515066412404182851453893286694044017204544132733120293666376344633569470197552860481195102594675762522963053786939379090545308588260313916635871937332620102145389504396970780642226380122320537613918239926853385137084009646880197883815594732535929264941355618775993769783077829964055656149440939611867147782464539045162517215141639556165782144204872092051074464218471884262859196885840296140855686520391757504251191500927195901796741225823016440146714909315108072410163051359221735641905931117775191449281760593364607550333222426743646778414929184252235783096019030687212649265743521806342516996882910904989840187930085865567286542970792219189003683203609193632467526080111642519256409478721927291375881083472521657241713922792280146038631172241173835928585583198928003882955803654541774681306042830729164567864943149851630023747301688857563697658919925960244883037413783013900449686816132212152774581428676394199679510660214483398797456076858067742504894675927878058255973212515186664066323164594465522706175977794829771377194683147578569516915990625634375807842832670943543532808926002617351390127884263454474778507932873490989323110482268394956749933778016191500016175309993874856348017522121697016819438745693362044273097474204967748995164428118763519334417376401518631224143878624982941464976085448285821579120001616671363933835345432739884935329381856154415370188582276041074291832729653631229970334379752387703376616834501840222796607580006558564467847846209809442507727320965012556341899254859810289622550211739842385539834762734038093151812225355908228598501588176391891729325058409326753576421043924237584364971646445354433785632915471405757968914380293214185371311609835724015448293504884130602976718001146938873399769613183700007389028219763838268792855561860659008792461314876202649085176058253810016904835335592438693705543701095392521014130047545706869704709237348148082610822985445975337338097752595128752782707681257807832916122945910625962063610883272405412475684413493985837568792073445287343404159143749288747610137463527031432243056712224404741261453472480693802655703582506403187717262216775378143900502387493842339956592200901261508961686461799863787263575205086193970483053050946594400388243344588785046108190425269009150887723172182301509513090856870264363991971231612559436005180363203870790807510504967564461379934926777722854229895046665700956392501239126998499596021860088028012777299426119519192645717367729590206144351629131603239793525280603094617918761986328555625722312217397884980257502471552360685589609694248042189218508732429791102270832322810440054614483411234644982317976077067873093130231201618908903780315943626959164372751895138183944292042914157093728724065881264516000754366310677335687755752091424277150010722545779537866117703825247355995678660185196344384413595946689293283272489216300161046901740758654996186693243503399532774266534394202257664262004107212834021814760440493488662114214756826811631065578842079218296780490639896403594517950500894400255324766210735122496094630299659764368151439694187763552740816189617476132836467623327180898103382991585864271988888282563122534053899069727712551295669242689312945271682647789316559575507933372655857494370832117145744475450721942490390674087033633492091943939841686573254360287666349765286436344256564474106933178279906456170885189041250728548259145141305350319656334563836757534290984676786094269428832240360550941277289681830878530087611837623823836179748187864769864914927517658537083482459829855528264656904816628853367875702778002846157937755860099410984753148245934206846839266443009596481423347806924294107358861765305011619964991642069051522187115223049015478012253518891790877440489299154016302263603485505280065967969658101789245970687168598533607275682581934619601481660530306053207914440264646170316968660367465599791124272954289233384785614284307843948403056840942275086312153634849158025511585037271760214150271420650913566497560694786575939970703141833639841077490084936442143067730776397647483704839489729670345213561449501581192343860701457696298171874541590169380515572734126526830362901330978782377103697673375641524406883292833156610979172792949448509207593931189064291879771938274262513008804468066192040170783939656226235830640202401623361773155900063703399066238739731007436794121039348910494003841022166173170749968076242778429479307459936243321368122786070650635034485732720525686079740437518238866649048201062804397475038470845598478364065044077576446736990203832740573456030765736057967705907193595631069533878476027960039680907416835655920600400349326450800710831908292974246730898354024286076183935573186999387779718012765354343465815588142333465145955184330718804792949356138060341163294629707914125997876926670192398111717818690743298426332521995869880931990637125638402678931232213116922815844093398349556827960119743995374103232819728269525509733594497884057674128652766942278543341177755749087572259127793516495939053462984681432365802706382596337945184543249675841055111845837008261892405828776444881554273283667547057416065321371724827764326232539604243686278353141651428813866729798318602710706557095358669812108261761173267753450755745791489742678182605925041858830984914102552206575913143645660737547298113786223280954281401980242948295479249191572280023460874791003441212225006092811651993392632204020950588356515891115909371598402729005009233128103421421798424746070268682315413939227048792014669403506606393904860232432097881102316094937643693188004417689305933207314219629760024357162175642591443063517875245323495344206967810227231893543527261024684323594191798535367877236528178975207540434254379452489434285729416676957330252155688840842932220695091712235100037022433367199060784878625478997610207527653286914196503264480825993454229316989245852088143332130174333521935929006818574687404959957848269939232117218856637703511602254555416130396492907596143220512593400578060997585616503605368774567364272496819657610846973238987873141250045566869817652482463351116505363031115532710439652817873274865601104993801372371659978023500630708197955890374977312136202526539071481442928347459844454989785678530152655740425702716501946954294691413858648161975894459724702346080941173699536968264038430861538474869473797889852599513794651253041735789885675728377187249842007153692071342260563491175262785690849507206699390981795710417022192852227377779881710926700649166026428942551366971210140256341992931539783747092659878578705566273174204051189374004283621856380902281538110041093656515644725618950524401894448060084073137488063779130183737861600153356033840697525986721011307511095104763997153787748868330233917468571105281394903496702347351450723378622816909834659247895974955266247067288378155023966583765852119442446062368501406266180479139500647100299939983846188932044313547587767522302871883670554689788139916086390087845163270170213870651608551881820143414303033211248051717569857327982310776310401557285517440672601201550742651674320536793045842250497237248339842331463753137731617038607373275282533288909489172413821876427584593197393682357309555909471392065429802373856049375949996948333459797937366412580580224461096799870195889713029816156705625492140516836431253299657135906564944087232255636454670115190765099133598094436174834102860348624913899604901160941752720126104327001305281869778057421441530464702299366488177440805810311778459877928879373481943963692464426769356624690457218597816713175563227752103008041310541646507811774488756141660177005940218150331883256590703036211546540107695847450783096612639482002127684586267395708011698541649787900446429956739104487877406402091700923827398425876644561304453891566774769234808485383773295913486993553439013643214954253732387146801516603980872994288644150366777006102911450180315908975111927185805665562049367034016764398564859844084388652805024004077833210586906129241688636337326563515082673899770458708824334635271864348496417813916919741467184725703125179142782554066405730541946340630648983998285353113165375437087335808687420417647410333793787644348406175331140849135340796130767046183529828145432767692676192699973058493345880078850762118497177185536679138490627985324982804072386932430741453562586356763414686624454199881857191362394588430039985509889213056222109898171874662541090417717852754966754199323742624760325855385121599326169925271280787067597742650958271347555146560761140821313804253130641705553230318017845127143952092361425369786981321319922116805522557358974555157128107627981321464750799039639945242758720734852325311979521110401983214264644647016651348608041444889788262691325118417745111317336475707721820483306209081011583491533872751381122848899243769015451975321301327546277231436711838318213027799303920448858074074210549459641729848999118309800845478881916451941087186626458591580515429571089544176699298018158324062466221439187108554297079352471305291966962531672961167433835074951620877326028441089917457929632766451167562915431913115390940701874006261002036167138063043356634086556368700271655939597024790676376158751569795216870667126904282939633400985355738659010584191733877171638058842113671136565429272748040654530894966403676693264477061167957070869448268080012008763990037537804815445678315417592913015467653315690690717918448251889199923788178183042514615878516760815778039572422552936556267180213822896214056846513693163124133081791196684333086475278146475821330591405598339722758430890125105190366602852340414401459776955482047225670742065785313606845993697710279990894110669222681826793047459671237004736993563547484707251278377325639013332585385741456481385020675550301209261008515066255366344177275227592810772729287601972083819730453700630370496943815785958982394595947856964274985720771280524514950045829282482909613507122874457991805524798258116194067642409013190209168119276924242705525206557479868366986479795429433615665437054530364115518604242542314888992527955597004003776380443040667791060980903529851436278644431883421725060873471939393232474205926931885708074380819075748104570204215101417207067618152643917481280943773017623058358451090544086411834822004433317734481602740845974546979266786045821851361692494051396725745795761993982890192566407709143212412970131594856601986399147480812808665235999305073151778556148885960903977396763089255979634797956612506686261622651607378041831115718126271421149014121113212729723191406584218761695635605147587332861839842985028301729951725909239427962861320132692303429481724753817585295818837287975381302629319393494670510038474351771430601848556936493139099511440823500454258662341603468349403731766464679396809865157402067007436088099785493384252930199338066364435348992657699991676345188204772846455622136131395486231612724508352676184516807066478806676861615066764430167164661162999547023006156383474402168349625559374422336562864094967565145726581280583052840147815579339327235613741453513124007998194161879039606358278116378377392336389824473552091431972720957228126556539922994091533967630676780349752745336373567894778257922902084254985288368332661268784168653528206524865663903929279763723274493917177958912099966938245375908476111991180073777321829490887682765494189600898611929983130227850304519860355465180268406599374818276431196290078164992132958643692145375539299691766972940679298522380400169018675949559265606198078795328419565325974644335338920602926593442747106953805057499267352947088742095638055967897402490384586879208719022845318045319287422135332459012255198638067633249865016374583787097134017971468393743419504608090252236778883788694379090723181602468070238322710710793754491921883911579323978025474675965328481304384164175308557329307725422834282175410289960312194028426307860890412563336834587343586128264021364645618855215461111075743936799028819276090588892140811731102117669045582439181284777571601805733683376455310076088703009136894526759911884599617469314925551033547693341268814224303582043532836901471732207452099966430999185088930153401088032887930192709390325421715636056343148468810366407593502739207911739666330576658459674264235576054578433795302083481673381643470376017447254888259166826354173847072156848984442489615457263850750166483841611152006253229366024509850877857919780662976480474013749060314833124263249358713128647336366333927707204345055695558849238845100183921075565374485332358380049449274240324677772173842723724102504219265215579932604281964601526859378169098277756064714980161465086560914212203321742880111428147826222573604347853394394385900342091931517555925272127785422642368412190364712378792322273144776838207473963256779263629927709789767148397049886121917037670387678139902143465118187725178195877761692462076528465273871179648076090222966952896780453176826007143441361807573139554360400276526441869464290812341071302702697186646487160700411785443581610706717762830460339018113035254530451868521079963087695958748744185507100060751125273113179516613653583855709473561448981034037552058857336060008679379306623013045189350919104593026644369739791430860352584486617379226629770286394725230189979164613267088732070110931429417788537854648048873665452560166759906431817421074754772138520366171391768227940022053138700814164856772691511242738098483653550415265760291893525536111183597064505009803854872257068904040498549251278613159123013380344165409947830757965858724582411030735144982975073143184533049320047739200617873804320758384088029331094589283885986802215339826590118918034584784377651209748867127565997164594729042414936948515747314326928103683953237702024900426144410047098520355138009551063092133647845781931727987877966088557549089793420150267001542433123778289501766355678931982626449820355058914582948641188788348914100810730119237743417433241957433322412355105370318556853108126046396707433837801948969590066323873995582148342983527265284812034983234885612308618074979321341303836877233516523978764103252415181207483754777470847000821871053670265743904475435122885402909458694334026879632280536132480150909445429581048641982689730024481872460319993022923472184878155983602733950075632871551910818784831960759571483963181103497963248630732723925953038249037975978695984662258947376842909289075130890340233018105792123333644125349543003683582857482892505119658393469648531729371870556731627123732445124221426284670279770474256440525604601686200093545017639646025079484618359691632060484943775440916072606410984081371950623362201575101457873235619144360167465410185065755693393597726787192938212623085704979508673859806845424737012688410558682177802370846760289358279811352558739970120547434075056667000658831989527825154713571578886942248816439610979766622437966542602607032759112959338704999299065739367588290348944229482764952072976415335342108355327926890974675460257517983115965113810295935850843621577953636580712331720886283259314549663613083607603086274536836524861258514990084282277588198992926141947193347698438843216437675574082115661067807064485064090548838072915143730472331073063233007978348113919615008177262066213488823961355073507238980262129607333317430210369568500295207239616938360717366670183298117470811752265072413105076668216147588471936351934686006066487538921622499863608215103948470592076948526499739451963439082014833123378897128629340576498103505661337237768369111871560000214067171013392281824954146765034078368535142798280058126488367676341685014813756793090689930118081918573026916527211586985157755796393250913352188997928308894853125321735740753793854533016253087549259879443907714540821658992232881750302943100384378664178471947712694627027328599558174915606186498283560177821899546879245577597207197336690908423871058956965237397764711083718270566973371871336978844338896290409146247896878861444814121110314340205179700892765671337724173555622001808594157938739043843975396648366586783357467610126019874270641002863266255757396785857519144881519204767334515115358761354359668237864858522059336982825790320639005996028564722967862664200780130804135618153971681424244941944552273107464113039356240072079030017918894767605950796704442552060191014736002425817266148382915423929040048262133843301407790967027819937466246056813222814494496441883497975955428355887528250699752228443626562976965173457081993154334972033720273624026948683178021822291628535214007526676261616149797070054298641498448210994023648602759632393993404376026479145370686546879137504092339212413183371339323051841824325497384527418855449104505962974101553525337349756765170580744239330884632628746636588449524085753298390062977990060705869720434077957043339636507958636253991431185499830954423288680827864288354675789095906313093091718240379752599554959927681110436642147783345087671658139625443761581717538279139722424358912459742099206104998360097454098381469099403588050149836244924941995889230599458649326262067594187391474885617287629816724691079237661945597621339526457383082614787357659103432777349342113491401413794430295968485374101481140771940637742191625543806299441224510078392038431496752396592254037213566837255528354900363847104814849909353254691381412950599773818760827821200695453121077312743437843065492092904660544604433770691839024622281240595340062734489392405538085805826742112144161564148080742294370606107118224560607187268835530154693859954550471967344793698713522946298246426503434972040602572226566644761593966421933658050782289819157853849296798489723094256750483005461374748240427642246516186327593739381893353474039560458057218515413714751690522369330158592518886437933896377475639091694829406908356860520331021171241653323014893896299819237198639932514378524611567169961174523439641137222840243087556179304402762382605394979203802028067114440438762557833297804847918947977096947355751533589007180940018454317949127385662553732688536680749395781433220010049952993226333436628800421900375562148790869681281512551217350882246965698786143535133742125881513731568794142665139326241046901311625319266296224239780347467169858866686925609528069117202238992197977092263804173106166320386464821903658513402753944223025834884345436852069633784908289400494364320031937653216737767771915850421799941042128132852461304092706861552057590974903943684894583360764305436187795742518057633757600959773029708787861502631096987184611922331314090303234112197781155919800680946783618466773323414959072870528964134736131346173115130924011767440762879673291985499678599412632581292913806827760458240161892657787038241284931627606749464264731459802511010465753867354828747614235063915714851171239421004198294639470861164684946172147718614826000062027581067726272009780721838487327445760810153749458670152990524639711489322916206435284228527159565326102423727186860335173649312573575180644953247410725524867696427108696705220143314409298892551326142840417071234259547659987026097606597016018366287393210971903851882493050816450525979939097928026971345922461517029227790366887657453771636182945812032985345669801625891592870941452296662140091754588975751866900324770258916211761566518742907945560984611113776192323866955703743830893403975688703475160667198291099247637486126951539592873275243962657101201135018334550132895099858006288265335909275765021709681209496664613787575317638093425024856170242227619789473332341583082428646829314157452503449492921932021351233804815061914453702466478317461575473521573664194167082343194868377395992642757801848171912701470624170685681963592773663344599806943630173673779521329310012312397172274962545165066425270781578257429513324456912460756320499685677481122587098802725613621449693288544345053816155396367192068321810881200924692467136479717258247483930666977046526854121350963220273208705885806795060427087031970222011536523250299504092865097916790015650142265509511253070173360159236058359376488930271613309921725687657934605610296207002152741813748955647157691687597294143048869644550504614785225011503849342041519209404932333995938104328489464262380779694122924014130209126298568082277158176658948936951879167990752330437735136062976369052190740583985635279607466627794649891856796411828231693837509221726281088991115279047774027423834649447196608882690506430437923431248954341748784887102002192351282215311480046745835234600542205433047243767432349525169144534264122700333087875131530787030785392986535124073874165930185702126032711299876913404348864061135443893665400917518558886152961076280944425366038857841357260584157866322699023592254906031643959430084562322496502854430044875159563377259443045260365489456752136619477559486847255951214579613967261310668372878578306411286839052690292724717407274849252182609681540580672274748952681593203110364556758482755039435358033214106698964885402647827262023179889024634570175338587833952337756838405726331862522632843160728865596630347044108108064224694883199090944161270614488544718954978934578364395576597411002703237929522096829404699367675220928472983912092270274826885748814843434033751411764463816011717858639875845356387812526555061129793901646921619930767389738167980241727262233380686094503186314618801700819434027818467951238691041086829463259426794019760121909262974408130175738679406615785509193209502154072053025707549309966957514833343530784102343472373214552257344871667579253162664513746303376305114181930636990396796602804339160174459452453550175649056289971829567760529503434604282516568462735640911158303814513074256373415520107143178584801261223731402830629273655812666830321915632362396759220201978373267552828734950446034645959685258232757478605560397840692250772480068490669762055450500151092204601836113990424215678153166847676055582128245741754357608113027934137475514427849404351413656175549419017485701554201753110593367335604577417250672116522139090349987111664947949618091663260008625690119254504168111712476097490351395846356079497112363494120249968698718964451398328465474678125192653290890399204107580027149420219718192414910886380099295204802293169131966991165112548979319913356813949486674519781608161127511491516178192275192422882121539656808058323957256604933322214904990522895330087925001939828313892382035454101300416763451246969834579084624398282555924688660897002133925010272280369350423430877804545446949097543804529153436188686980904928638110886269053937309148275098261019568146233604685684009733098566424892546619603968294613395282643757183857697894945609159860400006591851388370412916537005981566560660261091594773900648783477628807109410815694244767865668014777236216441583710358720378076527946888927990429246951872330072254834182591591592309380056297753120778960723668392408198017364672691568737748897481293182107692580526104421590695684527772882399914388572536131756451461500443880341391441580130537465643730946975041468892145746782383386947545030143388494826376187337577891247967749736829425271622401586493420040903213368542244426929876963439137816664664416861817624108794646664793489935196134152170483892901379793410930878875323215267145540341274405679585745316416039661600322050436963250245079419310200917432782001651980869861076978876152649259510269104159908079892984863011860360208862672586978776276772019310985062567181461580243205491834400318240435101384353973198811734216586770126339542172486348137004692001704372217438547966387289493671971919051381399859371257644240625260317265281452535020050819890149758360214930657279027231411735097554104833021259850395245048789756209658121652907962314613836149954437888935786181981088282591674945316554019015016703192755217474626101169229750543445198924012935361282799691915409307784161009341791305867595538183482412389746880016106019232434070744103454626801643628221799934727580891740349419678444195345606924236549079673587780483715614904687328647303165693275901689381720970537474054133318615833727934713614806024011426882104419395689004457868423684689299056818063744330364144568560180148387982493586864806357190258634366472043333164037195417954859774206427871084111451533999691248270708335860588892572563969850845970013794852430939476132184961662958852065626110990190476898598811062982125478676279410277833917913726045027573739462213005888635094589663635036707241593930028016018340199600227116152014474296002429641920204714077344151663519579779082505327009971073222034668824079040308292746603924916589144991183096516406480231422231519601839237742914194621485694691800831214350720621523390565828503213358928939118452139225197746654212301960708763463011945806678242616552904790168489240108739446855512767893165645661943412334441825688959945847456860385546968719067109947420909730609647510512497857820306272763633818196436708075354367678235775280169993907347495982255046040979535731539007869284701307471607030594806260904786863601106081897832226643090619942460752324337647216261000103807662924253290190912530670758286182896976149869263095412335993088095446520549227634566151623009923105002509375134571735485871501221087667749129936901409274488746001275268384697754443940938756325348501575242127652917415441510721586111375118148500858299840090872368116729823318880815230131625394183261806930632097441104093739726401609128660655909216848877616124266477174315454557204699688379347512302585773313361990736044186036422373710292998565962398675650695650101861637959622499547585559968718038968534948570414805959648609841515063908340920795418514705253751465948453046865086620474756683797179790562500565773812588183376493464596665807923776767273841295942214598234402468984666443197849257013067472566558564213097486514928712106654439195115636591449525061677276846058399525075922069768082488515566206949136703107898179311738540323449673240779659317886286780702168709367043240111815157520786485019880778268158713179253387064494517288382205989011892388306817983939024892454291726713967146504384157964404813661277651440305245369131329638119338234885306102737408336494241175834212881237659005240980867327371112648474546334901784965958894523169338650251050756904140210343359063249528221649235450430332638630216553484758364927018653111679928611016951217237053675758798101670771049536860809289765832488377601335852882115243596199324239565589959555265555987267527844758373986219355210085926150377745971547364772618016911404587715662718558708110950401809661321434142925335800098210477409454122830530837009425480031444018992063926413377152012579574968337660728927181319722612982268825559439148580791098226637550833619536947692960773083583567130380210254231360253917183264919660536800466341268011236939671698776863757136606001554728770487672753226761584024725006325063428180236348469180952530631635141858389615470444919675654644776066111274406600801368848817973294067832527125030643413834968034303306519722851013185516634116213484011263076427771281054343148635158557064089381337276968104053081953898530353374183674271346408531263639677594881101591259545276461397318665335244826854254879812631784451190491377537917730152426107358350371029101060916630775835089988553601738715868232188732198129649932117776189934196954270251499325112577995954213924933736418863551705649141307097961173872282475906509766384167180852925064131604833661155608204098968705462177250854547710288545967127623896332484856393014066969375412208785256859028313191286013301043307619613732368036963163308703732310536249679074489960415586685310753482660845376592733119480940539090971376194139255508674920658836692073912334396785454629208438277743213280591205343992457384499163870152046295943346687678536983672358986524839619347715991984179623308840716917211003426374403079851753571866570937885822592096425038457266716087278480580439273227547767588939932901326787663940543051894274920777278255489765173208400100520796005616500280408639448130158205518795802266213116362287638213539363781280050651502801485127481069302438860255647643153693613861159397377560851529934639603448592984426694449644656131993787612869541721930780532971010347847437983886290621282470822584420491956581179936297422509187019881492008905809603079304300628019081180438802043128925483250346690667745217481626165967706112799205629553938887346277546976999708292793357921879442055738763523379260410524376602127241042346348200912236075192585688720425652965661900390164822047224081123026132902551702375507747392363539921542490860400023973805597509102978818338926781774304835329634640581220662596947528769234859406590137316911869687124991378014207212859124945725153647146859140914207425634977262094714177442464104765681403195230008954267861889718779019491915770481364616251176015795317172823012361239622195999854228194229330909356035958015345145439957498578471148980390367743444503229239981324408521843249433353848304035026996519739128306005961892580412359840056808963378767527823513487077469978325312313104497582824497660353963901648479338482970371632335439763578345881798496382409288199255591445405354982597374085307892383039918234236089245041946387551289072675839939805155743378521455515503630384083701134678803201803591026775416477346596235329572423842998509048424941981217937166045121672494817060971377553909069588468888773856747621039380679186287101948628001442947812409739517990361991090944533276524057836766328784503059299404537782959880906014076811124859889989902872023714774729431088397725998940920531269080493424054147149207289416525507803831173458279784924220916406395169331242889790165261501144144924285498561660913445526140785045725231991278192056520575508817724376496643206143715261350303495037433900427303821710584777119323910193780838190188559884560123233192978619548520044218197383817838184538034874876914111975412653234347087001788904298267410406905230392123362443362307270889304106806207170774801765290473282465623303701787350118572850748281020107324032085655312693877394181535515105432907699220182776268341979555863556404640517141940015343546600657913737810719239138390773705720356265138029544726696711452557638658536844493579887800056986752318353730623956873455672272696640368288073955568602977043147542039896685634253159296279871902131527681160413420065590156614825078773189928506590047325456142597584771931479492210147855046586162695221772590307677240952344244004091151154041682623195748164490361194188127463380781765185829014901805064526720408648732499596921132974290626741678523647887530987299811786908150620306759059711503699129762261534572469057795944366401661051882967454249152014519172898973202640765201963143890758124153959441224420443636035175733266142506087892883534422636274229576058851488637288363927338650776061564834191587006381308203159285955310157913531879656591897622631384292762260672448811217916953685140352488875439825927489109284177957116479404972024502939806076448709842358904228227779535719058424271180433914799828768114431997262047078321440902107889822378476378308029528723758641133512543307456725093278150216044053174482438462228685919355577498883294073511719327967675243162827178154468840453111513500910522919380005298960681027072753273488921168965683479679828633903946167344880700467106351037261231469559294663617625710914647981770859713025762877398613061038083346464545364937327530475510879769872201450801809496136354129242215626688100468358768580206327743391680800215684025337725957065989402227716024853834421279922137972236351586973639245549984197405448913786320696934045698047370455837489940762602230336073683979020741665828397056120400526480624417828501445297412859221948722116478725235438311256496360128144380611566339326037056761235105725424259590498611881623982186880698727033376038921862067265955569755392968142318259127324159810903385049489017517779071744929569789161197382301807951853368450540363410100993143467370396139520065208277549600577554078047971241808348856456627823668471801070707537492066117043722740794054477111339104351366805322017853476105183271647925625591701052855334923190753682512459923637600499765491369631128363350914128572580726415453291909332833764067303249668231058971545174445004374655632166727000823405220244112584728424762593446481531833503236472821583181214629387642581234088595750064380937248295802013518502402777221799539314208791237752750739286453966987038318158036319711053201922262785336438197137297804363219993508633321130998434164499287206539585569772471741231432565722179745605165009792056188160826708183141870992556090049613179317196110805579255762217579746645982279120360520781035473014028718153133962640978687343844859550255576492923100509152098979533562455669759772951204735205274155321138802189356113625483375936679096313015644566889993356482511483429860663058890936370127884186733839209358420634160391678351959054916840097536640859591174122502767027774414688275833703568265741424490970085300072911171330655553252007607107679137095684354924042804761523926758667309522027299794858865797116973899748438973152229659619169160760473043879152774861752639417309488951470000222177347137294335136279543343816930313946596330444220813040772128495005051292644143777655029869921549408615479769133245448253463641734433596224874867206118652949506669551269355118481159766527219592606976315788841962458702606666124304634455006175495806514243034492225203744949207273428473650547212763409793355564285075545086025002861197476909111286065373597314498004242539609892539654521673422467490703230231585619232760706697141372134842114712871276125407572948363998835691805978755118092673841341015747407521935104664407913887944299668105236923281556215297245452670810230995865776625966539642842556824366814133143515061644658568375881346092486253367689236956443400220746823952698463927068640300668351996977293359716271213671151789686644750748344572844875565476461089828987260515346002578478763751492211336775521811729317991771733246155210402148032856096131689100324793426644153339106109313446363833198604884277069043280758734701507234235608631057460172264329960939069706928777524206805230180583011546945043957881746967744122355212075483240484601648508739741078235226982455260511914087455580212075125161563385627411442788016940435210029624600698918809042690382240599783528928624055935383872537411333882920031441405827739778208239230526542238131067979104739035633308680567915586534042786662685183684257195307007429291210458333379513288804304686089415898431846232145981782218394453601250715736035607836136630504662797918643991300523799084329770724628928858535533057759682134621844253588768518673320472309582684539515627118304673039145669439881064023266880473436455703649898750437788830470225324183828454278297725761569791889295227130881430324732417112754691586694240101760407822357315499511344616121625277349742923353175941556293634111890660764603098964802179297816308994448602728303079047847659432760049584152152633296619309320482416475621105645532727151137387904176406779393372641176906321942992710705763498947697683236177261519495122903705284774829704981883983557345639991937155963269853088810067596988268542769979752990862065271166032990903366198412591347966113640133398485120821378792086974195035036221786364846802302485746140844988937827677451795211707612825060703872264707570292421803806148135485585852410862566355472478655133415402885823153412555588613923271089305318175926298506100056200234599792569746878122000919973148225704743297542590195583578597125831878601796747974201709349339251552461020064999601569415661659353602332774542248966005981761832620827695432455981148598402170521823106138386590925237663742300051273655715620016407230800978028115889944958919731037351637160607341552727611291957813306763843911306698544694825644406936932941308033667009828443814423553133494532847035342058918730793682391825546821971183976930988241346502329568050017773261345858164681290487315587721342015985652238289130873980605853212670523080393099689787168284058817044301982267447220118108143124754960325709005641441894006480648133249138067298987819306565681769436327403742402764248642500156914480037228153080358918440990618116496757021624436451662547850867209156441008222276413514405068539471774006752487216053386114316146769457061434796399492557000874972605957854882653426383881681094468835454228433413116198258078981871884076531720588361428894745302348021931758694349884634383244888650009924670667180030868260134382230239199887143110813067138768839061803446011573416560878556504273175948766925864852712121604831932857052497358108759693474517590980791438831190672697841423207136493005306123832308267526289029303296465444209055484492196506153561562919295864751523964208038077628700064939122525463635462907426492620311508409006240617822394811834952542333763769806019263681367395751435834695397540444328927230693561930124571864226614750541608411305075269313772102626982875818509524468881029478455249738275523689032394354803776238973335333109662938315829296846352956456494105639087268369738402504632134622005386423164918168076915733267882884759480222346728633178335614442563349844491425431578335750533841618490705111701566251906766610070783411889043110691762035724947539366019686332382450042264009673477762324211620519495764163759757925823362692989148595001691595371501970282704346587487205288696441788515847333527742501460002722291281539990976079375121202643586180852486902420324705360610227040511230734628388877713407145409422935579447026316378550854643765439886094549304855566424689779507995252067765016760312176254173301786240959347890577634239673465422795286310772508954079035203757386922597587372195343320306651159267770503273450486060810823170382026667765574133014993799505291935347417624771211459937418540677070191098710318919950109490287349893365061624887891776405785608299547563265539990164559997733732268383033653965822435806856822996904830035559086624015541311995244627641303817943618947300555344771566382160244010009337723400924648389462208198184990742616833307646258467234174932785201066817080635584893731006358425711733363875680558853652801189187386507014084869533740684312555227677889667676376949076606433893877882885517445498766066965064542831382197267669650908449417566518598019698412959159770280351583928573191141620278584827404994585094865632998855256008607460702251796774198963465985363243613666851508932748486261757325630635832946243034537322208435913737163066729493631338139393231962555420116078882989190632707023719351360468863966443644693982022263207212820821623505073388688989188849627347754084128203856823181748099433454024931546223811294567930717629841778280725546230828517893448376215681200691655050785972309584897181208274774351799980185985027812002599413455304768255066699977566286928063093292591908872924145810903293560381144191418507464658199058601992471762695727392886443499487958715041208902019256935389648059743862101632603525001603670153148370655833266530189085902737373252149434584508370091154536358078482807532087735822712962213605148992738585186066006957699800203700823388137762711200294728475435569591611364504655513291787907681386073430921292463436005389354862043676873733908841954260200128952480991903774164153887565587658046244098231242347527399617623276750123601229633878195388522029026607723387706671523708129689981111613646023728984765179658590905691590238033514362070302121426965813774548773978103760446991566169593555247836925785174647575216503977976068891127738631280173786418033705115484735636320000575498139627145649438212089760842826595776789398779797904939090299423382914087029766576358454241120161209423414862964083459428545808071043949134954041535045475343490568366336418929496030408177466489259244291865796847786257950764339469436369494836502623774878821914495639459457422921867869139909793085953341805617741225886453897879942146652505053784851683171353815361846502904400709302699350521716561803063524343969795263297643163299499106578590441776741390845211765143840540064850450355301195670565455020227305343303039547681806896038809440484239582927360738523945604661104734483234622881187145216254694049142638483704860047200373328849807460425780818832928812917859488897924175798189067549328911332009030568932300396641355846446747073189392893579296317637972407664907066265537503549252934381275343044090465659037924280540488411118628155470160824918478290558196039288388950994596407726320659846373486205556254110191186983145789210299775260030430303316755971295455557066224339535501717328233210429458794778874871569188951603553211743101197074616923727836526252768508571151118549774197109501154100525588234096700629041186504613082469983379388887453637155839307581215259849480643046481398132311868674352816917380240177169699642885070212103465333625310506883255751746935003575009822170238208478768547835791541756864905905952897787404529485395794722065713472801562188291552635878998666262508318139313655183741207643965589889563253396723545232103375671616860106164759853914521946132775792313053777053144989862041934475272617069642329949724968544015570752650892960373895024562051898891110771549115453115025058131478932344440234593241962276836475590922998602191006816052270431283173509929611204882977441565742210743214788309766135019323363565253252889280559899038833470620254822698116064616087881863836781354545923840326525929127164784431870147250767291122399469745722825067020262958265485872481733240998960293357810162111968290233204775802140255500315654748831184695662195411408682461336967148228942372413574734098106088994439928358386583638005907270683436764056614961203103809162448971584166858706730641624201002855047323551164498857888880278860693797461281313199186966571735290031309340141662909008078690435175987506413707612875736561865766987436605602755133608287391858734640021962648572164468003263889681097171431258692899948739105340557396318017612492815005078943556043251076830468965511307267452411657317414698455853773812911164200177323094327986062715988519645834819736697662784753352180858806547922203770878392321581169339852775109155716649778466427506596484717755862160242560475862199917823906682032953615653172283579455639765294968906669199469752036317065613586033183781371272768385537526670034733524819671775732128552161544464091896740620419384244518469598121769099918327875955612306918122966214235578922327879602456381197520284677615345278274219727400477889010560345295979305741034641393477037596340052203462339951243205827655263835396697171753510677303568251838268542452455150566067031584426809638045947003253594140521459263879602770783934096263824046474935386021582268408193205092542795436707627968869816523297632876420888485076797177859707058024458494688628067178180808323142563551002969352259517993158782757758659736479935429666707584541600510911237855791134216064689769360513637205538160922216766494038196616734865230425801255254816287156511361251005309917939173682994889347469404676024779978472067524822906424817410001696785544995660880509656250154324798258365376559006123980948942532884253552943688390183453686018068345811668112645435971210500428233331739293653526441602599584852690350074236261349291777626293407301704323861219384470742893098332651773028301804267168645082160725055816771262611014701320719033829899515909625144264372536993516958767455726463875285733465039103485864265886190753888630437235223044882106638122030273928332413111503223797261097109504502412136388455201540507644426911890902468683935438123786205721011144958662426727357986490399173460845963523379165626289328697424554456931098848999630854806467312638595733022592577347166399819547611611838563080405821138073604730073211090163044171762274984524893851382519246493837614258133539559697678351930992839764171346126700976003691905741186798651436451546857967002259461688616970891143825718387814873464493525459669622715837309574417399527283387588569040399915813133509354626553910240954324849117864035684967042809814174018797536795715385907449718464626160544662240938064264439754044691553460845035353982963994834413419710027234677079821950468701413329360931742644546401805806450324887271620923003188636903911280971903229946805825198563440929395369636325625977113554560143251579798453851603753889383000735606208868607409216416088553138660665625633782192053867686467300901236323517269819618727471762323085697078790305975041763488284477215248057542139049678298541636381969827797726621130644219093628243786460137200046704456027659442461430395760113504900410792062715584778753287703855020310756231897063844653593219033709945566896367140698913810233134011114902991411468928520968058134940689221584667419399998515301919007465995166229879756233236800306769028715724442196619736278341671128478198562322685779021871479324837688447622070756903693665281873492972295002484866615901658329891556789534188281048765653555024958361764045755686653049443254773108292039023815960464602222684735116849747859132845112206819415062897438401925523514183595910066109955735769365511734626812155827209072437992258980347595650831665029253919800627714474490375649409880959951223156518514148654753527370523787363342047323261759555072178869022763296638941742945569580923220824079168256569061070843477575373217716418959865068342910256578902590819896515797223799091043306605617384046779759025974684110116092258325662170859593476355503768323932565859260054501795795874416955208080668537229714382441720365922919469056368463158330671041182215627439402278162416821177190484132138369248340393683393216168653063357245507657337764884103054351425431150188459004000427036130312094473320170206812744800860325819488148763201065257828269139936884432793045039635011734440860202617604698937369996497729062505847792835517241316307281544374299002536766206878432920938379904999064192276481429784238626769153344922016101363262482338465827914920728671460541681173915724903603674622472470076278906992247923346198830618847818820638398876450289900627091044075990312514136419406472333584723060154070146069070177347013166874020351802238395236873489556316609327474904404446705779136053049835962970687418457343093874615656592154242521086345353149120834157819765397725585164676603689747817646319834329755915125819788162251574077314082402862712781431479271355702814287136238626987947449340829995859062259867038247313864621361046680044101010444889797982420652052422744782191690614107761901181942978095319626854979623775471640151814011049962202448976762283286268815795863224641342439047382317799781758279273747812046246892511533900222092138002932919000536923561960287915715147542875677863992622465578417053905803985667533887824281858512722648009346604007933088716279633469921530150490150682570734718616961825239051099532065768152915656345889777868879059063472927215036524496003084328692428967729891362064297392805029113140604484864474320243000602757333011672476841591816547676540863363412579741946562946139210625236113102457167494611389188366033849789544680315046901884440165059246990288896004201085671994452045011569202299798770504050054256737060203357432822208909753641130037561249798907889369302679231254444450352797508973690543232445740289797149778735951192653162319216778541026605509431169948503588251560405497531871932265043003300665905991805251224407501353037423065129531370549486138664662181348480960485103114241890852163455886665072450719936574633675186844318634900367965916641165880058459356996123486440707216977732865287193777592276779466695559777051133186792598020318061412715694663264685882359846247649082818038159560435310923147078816332479295185934133489073447874986589904385214935846900026935146753941006681078036112266649701107620697861176161573248921606032322782732269424680026095121532645857247769662028284450821958384999871336504297205512295423206292130464517327676226240079937733765570981770511257669210557678206130280626871740784426383862120661417724921272034833747842544965999387314159157395393673740508704860680430448938998665040385179285992340764297528834297709676377215632299754476187111764866602833959994442992552326500802105640520795165803616561020601211301308558316662432098304064334228611068638256992389866439690476828902480293150937331751094963484852652077717795295093293792808904566102406279506184132938217258347070237167444869161363581979346553852109909001201241022584024535681327370193436914266553310687423519676771868672856440538125927249410924571565082514448117147466458627395751363578667203129650310289031152873544019083623602527093696155774966132330890679701161286381678888351691234752180796765227144558860253967036440345422233882186855550063979335901742461085363275651337006394008086504433234649924450394401901147616823557618059371404134153989264031416486756093845362602315317758336156112295541349300823455462236890491448700494422096572877509068291088030951898573057695765095762972030696276608738358983059156258738078205547522008180750753750629534953455093614645918170394093760999693498165222364439844084814326155864200392986015005047442496991307066858436862242558153372927031807671646307378803496283256550304766922147535909838787989863849389168747688295059789129754343288005585948737738659456301094273828142298328037234528907209987778314208432669301182423356404914577741457297663879339901709089628453435019083456372907633616261872135587571450270203889014943255737631234225458493303639924746300234136387037682774903984699538052927535616838177156607692869034830553659642447752909129768954370670968018206427529234527362333628663096888479557064065645992752600205511668981246361184269496011636908637154014506021266177366781106550920027505944983291864517032698504502306973828824848350588294035022824181817227476721950872388603225719813622888789347017526960478771875167882512241998672754488875437755365979835853315298058424277773359937523507048835713884558342743353158601504271217484945529043277451814263231568902253032687708884371028881188208600552650478359271588431372099739767291201760289459026224428069644193022981305915299694197950709208832188451430028821834967297718452778085515664908297146653988547265659817996482735787281492773198118702010265184163357031282518893761756858132385053581795017641421254162248761389502775294908394934904987877234133795771290053603806129900249935927781179388647643774585453898448580704803837508097704094594060278446862925417552464582115959059983489814854489741861977962998957573240653029963716186940193857901942889738978743948198788630328086894170970616844279242283638883513306364016338992576882709347008083143454142426593264217667405238335157041602374743564705969283262038114387709716286934436670185004163708327995692051446473035589159963656443771723352562172306692987965360041421573614716077665141619913508562885626282230089235292161155561537756770968660326236923534030363011133726131512813751797877732565561905657474379871132067052534053503004157776557718509956629084463111087401859404603728022112812390316553951498334036130599108273840092072222744247958610198147878090984722565722401058149028499465526669203864962470053636347139212891127448243436673397130846115498661338973659050776320232525430848733361564673244724265812056273212639692584379527665837503983604938586082307069400694967759087431910814478259809682526263824286855761310572581456594430468497348996594687468835272016115552179617187513095770602746412429704681177300903262947193343874166856353673198705315812770279609541258836970543629851278911243696082066825009766543483746113091539635699477177414630831167826921537495416632271991931234549270485128144878929232803023304673935758411239589223587469688244350802728468458899219784987325038192446299933218018226213910620451149453577877500767507006809674466482663523369989482918904357311038230325064565616215272042128974748724220163514397877218813338317474765537942655545197293513950894785933441369317567258249244183515647007075160826332738608223513253901922195391916446140246918223848691028595013436088790603169430284039799333291535330076109238003651697706220937105844689332573324866484088584496272019346230848972630631845698561334215102576260785492346297840237947092142537584466776323788835130756924723827886997063195488330183962319500144735909012970879288501233431285468212999011624226185464808371932790598575991902059273837321625595574805180137019279992290809264782901305538315297700329193524301463873835478216172536597372723357751061542673034983845216977544926202373697873253508656255634557143913606669034349645511178373360576865387687225132498471989717604227742522119367151405260185367511812949294322522281603370043921199955349126761893028947039691656591705516787764617921596434170853756272248007226407078606230727426447991343649645603289828297711748268253155324347070089650245153946646666857046140547992348019301187267933899793565822989100781596482270538467066934228880476726925956673214617603267335582101140704076055329617563272537704188970730671399642574043959060367132095419788023335724850301008701072042001732889568371126298112725582116755246456195471291116360996012536775537170469290992911316461455388559472702622491360206908161077412012762091137477922290245541473102386649304821771940955026839405351920826643728849711161902602329790737192180899095163934385422386891638775829316324166928786624777786971440576309065181180099549195159839411459041332320419152389172828289686637239877794775138574133111246390244816939177114766747406398477794774199013184260255612475484038887045544308725302959274097019379196895105163318236147358258448642705256529634919503767858699157933419061618983969638580555360786850404511894627711467053295058874651009679640647479835266350835944154213925814600123369340629788905180773824173540893557815214758461489196928690810339268762443276246466696900946290638525569242038980198379762016287883954356630498416056272134760194366596215579346147233216780335217117926563074150883716727619449729365388200995512297694487719372911957237811457354408472234935007395388642542895299785588050170426690014301152538380959234029404537299302668629040997757958383220994386115327863210920255278741304843503542909478354571458847172075090900221540492480719599253103682153478069911033995057618097073230341718865340633052066875286529584138308862445325875070043032491246803042499455017461572095196631835391013880640765415813672469117112138112162162938823854042912784964075424921100572536829167049570420563105753782085914532853920324587595425613292873769164651841648710210956488446196486612501819267360057075079283620056738918191125841506958224480155072413959022316933361260037863807029510897264113239291991756887464282307600025714238177052379998632637012871280729699562841074189488777273556513520683057851428970217775839766436981001198604451300324173554059395332525516428494246958226642259054250349945431173583054433978888052775201707372887865789692471805416675729485684438480202357252210034313119415870701572516867995321143654590081733130352377980028048823910925091090424152942633226899023776285031025805040051548852223407189571047325069208830764062550909637658585278343534051974342926983877666784174416773691960841341698104234731105774775035209878506539688049781051703004516629315995607344017805653065593184224253059778730321269994174825794936403000379030459181743085656112643540959905983473862510757947935708939527503574169975315077206617683812266830178753806008856826814588807934560765988468169209805875761322636221498274556252630760762993361322983702013593286120054029519907690808085899373242333497109909184077535199612470742733741149990501245755482028919102035657300572660616597483196180601807358922665821270224698035181927190326600522476033844508683705179564533948949721498525786108383302240411707052393943180078452987822972419026185236415069599435051896659706474709863561945066579178702105820647280504873567586703574395771367617679383247092686192242084895205027935163757443879237118925060158574308441211606447772862097515245144078310197482685804427798786431086036819634543066494492061866467214447117636101744729259677524409124315145654885779560817569555630217179259226730430198519553333577165486092539779000655013743928182658524363846937175895939379997002539828217299303304358987179715803571671122113549357634595753377310021968137449249507651235785103512954101644753291390240599320121005944615125389096344323053259945475259159293236374794071485730111718346535686828437126270412734680999927700007010118611914347264723760078981857790229217029840403112193384648941337957864082948725714122493972551998684809101396369360080307430443059986117205346250144502522196172331981684920199016007176869730619119409669919141230389940162567190076280825567767974691944767604946050424840699724713308971497213876452689283196734385966738496807707234931460564620061051930639848793779639538770193306358799132472568004787893633055874967432564148149785095358909375405759036818277560818857651877723695246507788679184373420529777349360056981020344304960953155570593833125685780313605500978097147986482761190115899150410888385827700263672951827269777018991231420561880666885474113188421017562523943464449835156443201065798782171690675399809807938185354755642146735421424796918338539429529402839999065762858117227078060461227615385614230200985176724564245755019469153419791131945083062218204026707046370246282132018486845035529235603659680097602430761661697695650097766070482892304045379286999504595393813422211318198047370468647789502714334502961144456953346341801676180317654188172483177410797140909246228563073184402193340522848775711177932172933947142900667379665776874570080777931279082280953385231906971399726988235652843865028719543288068878499050368893680167463807505079454081816381374562359947649935463234692952400689033856231867005010780565611200650970960525078816899361319588807653690631495137303812754697949694989028902603047789526696217792038293290630417971496968944269190135628097522231182397069074334743684586025285579385801434390575952902540875899391763079463912123525482891479238720332395816177472361557930192601072098758315746044602709293462469708084235999288772157704111989726544845417425490319710691405542237398102777364361531693654944395117047384117413460979257493848199509313740197601230279783132786311646437363457124934963612330728915776348312082842381096418163116381172739327959622258300850177811803789603044087487463043548566611663637775419364769170803089407439542328220525569441652635179352651979626375068434661550349247136088347303243144211498398207978237153044688710931311062699668620719357597466446599777574799535462591451736665142297075137559849421645673921625614102981241110021704365595010067050414320073760281551762331403126960278521023782683467865848298664680399520606689469813166494155975489888043159610460641469390154333742432015160794118057998467498537130024827754335507706477126181423087599017454959106708732393272368920268228371732945388830657815095594654791714711536201092740320677475484842347079421896490625270975491233585848242010177321757084466108659194535988418307947189831352989855282640126974304676115131263628713940970295296961013405849534286252751220807560731310310151147599766282986449680521427226035332642818711424518987327807344405000695021270489821801538693829946690560355189275577666217190235486514983306826006880358022388198343907232226320277871808344174026606638927650997931585674788211877444999959030905533591241812297351165718604134814922874912191623532834528919930111524873347763617516222322064730028380227944371259737856671118748565151037212312204051964978788627073153030802449159232364171057443465495837313748205187881363818345060841581880067642319788953686302974805202732844804940506246884829751543866966782393621044160813845342999524691700292323799868865210509111932809474122025271635318679100799422166525558478352817512040272284063713060214718393066384609311371494185768672052361316092284086872647810562971604485234039346021025136045658278458066653776291338215927352801044232101446036717010566803589527508871668775973677834344057133470030309444178621658741794818176099127146451953537777696892191964131570751828164859306389643078201186613929264504662543396452689540788942545965235223016799408421885687247322570195944008508688155048270806784377310966530873712278822810752986589018087850472972554097237182124447177560214464924554650011027689671816435167767069284879469758626605744599218465762253747663418001289140670570546189691001813719664515549571282688374168626654918622788927818811885931806144123579300086440435476967199190540232252957807510565814628736315328563460950075174846200338533274923820421939225290641837300542804597661937108339580152428307929643183802451235748046478101560939153958824262560537909043838757491520737837008413416857742966644725992746285444223486350807070812977018969518621682608140154434198342635890909674243649401550124947396764275565922576314127001840014532367369425920799957929062476509147267826609412202145321429027342588171752287053289145431400460711106720093469738052068032749090948545714373479897282874766625822583110430708357789854636593699030657393872093859757907602533606046272191122986527175669675728526410208937322983501862974110935037883260986271488446665810301515000963724527537217634779006611178459479204304359448926908399002534246113407469548332149475910518951285522772074470735451752508482586653059294822785309196831533500398969405247019282096911755728566490831783019422973583406000820660047273555695817461688405074569495853651494777944153633566387955757461306954878379909984753078779358867990329398352504536112898642104576177677733916930183319332348640015350949330176314039424643336990155893840712045505601128528733966976010306104770071931589310494821486405406228908055643121111543645326910290620319789233339184932893318623328615930808528860103308325302606858414325862346041528144228238862575569968061974202789218652101437332259891180470177276357884747791729095876620972267867199592004057791335826698476910796657836667305604848865707115337580560202950426419574598202129153281939649941917358824294207797054679243873974488281667173601736641388086212425969275451456412519334027530935732925877106642679781570821900010971194753105252900269027208295801035207289729500539744376143630522841300310672814136959312400604650066684337383349945537370252323837493418774542907283357975532534775482371491767195224331722380443678432541596851026016266641900926693525665026642900782741249279297961158309330923583362955697489105983212247409143614074438592023264488754923899903282612175944313430768599516869605010104139478114030465795763138956328252860062448107695006766061422262936083060409012235969150681794296910331137369653085728412433380500989452105488157874655982626779639320736819467710083864709973576217460721418120910757142299846923909173475690525995408126091693703767492723656766246565344439288584760087271844644379948809711928674209266391058504256174885468062409228096484024574047718918004854981383460792174979091108107871493075675325846490938105443635950403345310454794795094035555084369261077397119542618999652877348009696502263127020269367681655372055079080420838102563093764978846940132067470188608399224582269236316426735781535183240848961970912305020453153206526914465957893917884604268963195556379452206583356243135548430908949693645115087037590021182193210030647727187683009049462203505623913683495858498688967287208988077107617586491448659169988481922968408102617673129935442954311045766870932348801485336846689283906234986628294956483508090878343885211249990795924740192087684661453067724553108342820226451623024007476784401092836946912590489895563359478893337217675962471860282735180588839208260182582616174187822215419559578061401298541387105508666918432236287462023463099906470588753749930245466051495107785299429805655297350916701060871686670926714824052886802852332989341580723252664501181843475327730300971009430428458726039097583922248881649185083499850071875602229434424244008310074733162114879468902724111515865717533666149996558534545329802916708328748583850648667436257776153029751476884725061510667016485666567981690368106232232885198702490967953344522934940195384427437189613371592465559664593562346809493851468862949876418687551419307351228940663312788732706013643346778120725347985895255507477080088551607125920061063159844265852340360438361025519260253451273755909033908972034074945753906293535635480232886156373565423418209008642449106905422129880700887138069393100887501316737524736766701641764487419021473071967074240135366364028756178559750439800985775911459175296731524065382203677006193906051492693151603123599106552302547778055970721691371872999779231631486942700393932910164035895875858002604560516726130036581782322018486687023742633282579641527491875780787323729891830578830286389575836478994649485105741818143173634107126846628532731664134815514121372039529554788837567552631095717711466983158789264605785945937715747966567554218828090583382747442821418613562514479077951411861104976965295638109235631690063428330950572480987260329817117449076345018986071039549717607956375352362987907466987846688756528642426179380813213772201494678327532213522603489027934137197152654055193750857753986824476084688569943684042140115843713498443031285625623604275457974850698183574189167083547308355908463573631104941055637789118547606796970599920394789584388251170308454355375538795217025994816353009387737505644463175559476631982371876893841491931127157288765614114400522595711011354393034953236339547384850297631131014654275394496791085745044507375865790394126308799673606962188214654002346265186421372859324836643014462262643558308844152019191127442191767250269405514750805290986053374292201388970220383943524886904699545784632888490249186178918469406318216631398567994988134067894390479391887185004800062449265858648278077649582330346041953885224471558944816320074919425260799355594639019599313490460028798193557760924117231995921919726457605069114667230640354534682766170139813980911037276493332691311935209205109613548415157277037229343675849852466479958336212900296552315631796426746178368749504302107087525884405141037495732193779182885261387113540970778463247359929208682488555081559380419049115496381957131278099855577284151845162702509914382713296222557765956555899746692249563207293953757838104862414215165447117218525746198549556558089380314245871470181542776124034004712281286842491683380366423957538797905255584890391411723365576236723892396833072002880727837818921402384710716595001246248132094606656243663584111742963586029722519602728798735101403837762578865502176291964330498539911265085173460274276302300965445767985653539993826855299020694173495004193572092261949938385185380046458449892099129067158888153066916745024606473840353103957150362467940143690812606378585834208771868255693069330178708884474667267839365991137956104616196785948039430374419540614405884700308467799891448329079250056715999299295442453398465514960642085604997972096819061809037699930739508751796643646596954309891985051226725848257246305661226073635285565508478933470851637828908561859220615589425684539402999152155813153756246953046970570283018521121615988200905075835579143128473415118168370697841289197598335040594461633223773484763751148504355907257110612283042942759306739034525419536294185108362628035221301482348069113557957312152860522689943717298095005524822431167067223764414859494495942611599821346115928079169687006248047053571425487263381547353912629739615555765712812194520913202093793215713256262301770055796770408728696099230202566827559487542953016556107153424475434233483824064291486361889505808428979932925077054197648161095563640586224544579948161531450401384668263513610788721135716855816213126974092559488707696878666784269778636508264380380052525272259919105541782139291559793087760735348861074032309178464004522572598072642740379390529081661602342798436194312194940721805648131962983608202860379032860280499497284795116510836662182805468521141121562195207407298328536826003587868815608685268778815117857515091345187241959216038662937946043890762641579885254105535914424837264009026879472664513655370130758669907371285940416888010253105623124992014833861723607734101586434327664660142341485037671355533986586652414521696330761563210668903031981306867030747312646865254530988978406654417702621852756063609526581580051217545701682667135930660285995024767236860459176103662000885492398871963130330076053119498742548063124627958252265386689807022961810388473844974388642985308779045762108960324860216830067274547537606142438846133536787872258114275091031591268633975329898400500084279789073601054159010343696284137869816541127560097345689902955160593769418061055984391800458747587873394738197130814768495161637504847552931262602915483363064645904452479538105258471851387236416760828306174543479824796378092745765937007429070787802127731316653978185591054935529677684050370646113076023532770671525189678811983302402258198711420272715678282254646282686893499816974139561383476564698660504516648014446784423321252565811715952953732940626321711364524974856163522004327336337251540841500058238331601598201432235573684871624502659675128188316693180928338213783724437765218223351440962009152314517024458274463748622656491817108517567297030486593518119500415847995459518160720520249235098960375429435294915342510526989211251786512185056948944386817879261372215326246154301378851156935228781996794671986731897342100045465509771134841725928957694638177508114184623852167649681246704098944088626329893586572447925193300080415457338856104206947562026460236122554284951535222359974486333912560157134098943244924327483015179890380791164886102180451841059290804239491303886720142768855133296160002295346703231598429597334667574187841135524108643385792352649154599921394932998048797553243551345117903554018568073652924565928967305568366468597886716990959320496183215755071843237362325696308625033097841624398265456572152566469521255006712129642561834059042623688013718028260104288109709512076547431487649896346051859860423263814895461243741771920045136381247641070343291300511310661562909321963791258251579545388393312043113378044061086199516926669496841818761965664990317779739336135592332041509287117827453949081333566989589358231416407491847208732237361704594308096252235396767109921657708564478242085161887086496930638671662909924891870752987784288451237959250056711341871143260726497041921243217494315972795940720969905242458078756106382293763005760475275956709858441159930984014513333529991465881810105305929021953215181457760529502014180014969640101186632545439461584410241528990780070937902611179647674168287597808622449558946508022593813522483315372528127198120914560152835022885292411864585065926019808960824361858095159627953127351353042121609766902510641947020585383268632828704867809743185391552281516489655895640033477264996138298137687107519207288834861663896616379460227922294021633323460233989922885727544495285956430168434541423483872940457100311233887367134318247450724900507362188269836643372552385640525942137400746647956507527176586486665693619714540483291826294269396886821831666440215157114683558355438446062650039771041600261665553968385020936595080670306771806315063832352206581682574599880112643956609011091750112634711851522154110198325775215394047046765099228598873042019030727000064339413150344846440003573158557574758450956211214349382935730640499203434216939594617760315879589660696294152334500084752391399932228884607167860120330513162119093928552513604814297981035768255125123309276946983561495283174100002781675538331064445567257064384320039337044029556842187156979687665895759543248010917372453050385485998969191191159559663116395744216339313801993639363658433828481017848266622181291084715617849875138513985413732336814180987969571989526016467519237052865472416037432036449778445884367144161962990778335650037253892332449903090175618783390942237111264074167952461497190579058766290120049994214696623715610686861635193951505542685532755653684894017157859147736187072839699786097380619215722396862380634316931667642292047640754471171826875050458883639145580019626959292823557663392211149371556430518433870911933106685041793008932735751413052962151142157100124498184346651005134522748547974444178513439496644676018490792583773409725613413494599313820776576092771150331119639757629184398058784030686327805948203581887876243454708012108445439573206233123486022326451803122732669229464689813316721281561244577173566041244578423414606938430124695373547350380790066477580657168346710968235371430394226594488729610645324007381902702972655819949405667636475236371372262662039964258691538822066996726623266207940846175186461599460118367991795777440682496354389988705214014853029324503905371950425892074318320351307663874779561575234972203072530576635338512651072872186652860106896981846260767908538174251973544277608746434372227671985549494876898199009756312989526676990205997238749147975673216950775069789214735220555193054049513924608448661652254995498290416900057417951954005507790508177078941878423892663417429261399281126220668348920116360330988924034039573338822633198746539236074080478632580387346268516084481697531322709423011137350716758595835358565474649558478845691876798855336366484655339739805982001138277911841828986218949534032764792710307274457687972425562657100239115968366791507197751147520536622022311345738767199841317289099763044264932723804663784878114687560882603919666659800725702324465184082709163182002345046732371375348455183384532748719199890501209055901631201902609412661108300647949753654651639062147868067435003987761495978777796030572901273042651050072698994900378620550350219241123428352939415949310827783561402060775016418814364375433375921829997648332933302232004941868000185063609985043023742912523616650237057022638447184440950245627583942409366474738157920178796449313449697437732405440197875243945724627252909566136110996842417611756232403214805173119131181812591716778027708920033464615416298004323999718520226310723010946134357475466601994859977688558287686809847771444641927128899661898193366903892101120667681809967593856311390356701228511269202468574216389695514657105132509711208934562415635765103480003846039671907918301108503189710735099847505078119334264239966643099048745467777395172211499135512309596134635808983174290792053684565819865196281775523455269043862176199148695322592887406039599873146137354219281859135360082277601808788077333424654170213607243095662563021509683530860569217886893370243063653757987010349538838120856563218215218459082494617854990122038599818066704301802053373593472745242812196220315285259321585974227701880363648372335360848935618324264169346878951646527509050443304008187577865968205230919947656955494704587876098138050700582661519215237951764611348233310989271977261804322496187112831734303064192832971676787412126758151819892597717453936318274219530379083844732477923570839212440912636380074290739368165546887680800215772062153802192542047054642790302469366659610277900477437234255587518289664777293906307107679435993691140198238901838440013891285662068046977738736573554047903754288370249158646516119496728405697981534225628383680568579845562170292276653256364465305808197992097388475660178652033962596555024302389750385353406833874378929448101849878844816098589680874260731663228132406995650084557445981447248111123214739361347504866685529478724398133955697399445822744168346413931467226361696752440245268650396655129160681421294119528794140641653854374424317838757191308816988268103181023798239139347732162155558965287007373014183113263984408289736168003744849320103625029423201356133914240033267094318507149194006728310555248321863896393818819407716678259330599816679914625720599058768132339648710355735079052526638506387540794964951478195853638190750006070633684386031125368307881241275421389941538601818727754377152715887666363303458157044894588453873142239651809293195475151134718997554404112438218061097749681302823621354807718813451541397078559028861057585189862210464416171318275819491610268700072072839301490918648529348982051143246744407383693857819206323238072183976054440172512623601985253626154962395980993541220410657350196317329999194436819788484638884369892948894607703617403302066261289848945322632434030722347602778588252652150722553080543815424464016266869445009672856296340165325819770385934736464108524154801051204570533125757105067958424826024836680019255270165931330796357950193716303144310159100428209392805665513322737278132088123329749989658626310378446985199421035333414903495133849369646173305868872352307090518152206144834074287113270454503071746893159018160788730021769451480908446230573122325011437206312519707453453365252452906780689552069871475968681633877617949739554711003025899545064924444531974698059619230611296268989895728466630558682558755587813665062836440413871608386132502466087092021694536142633603735688411079547994888957848901500158629841530107030057420605879206099136476109271013931528544569481658678286580341443525332106038674443735386789493643299184061595068051403029316578828701886829047659175699265220386737269810575791908581130441149924397996412145817530332316116131570283195736344146670823198559405946022187733342192516502099695144657398835666157750401075660524748438223209173418639624765278555082935522470038595018990265489927906345912219697131376388145939608830812721329742609319757906053106835929123952018312194627831277912306943011136330655187291382603914841084883644432784928536500086531631863334320581784962899482955802120945467758064968966452464516177200441550976886205232401482899481692666435208006683681923430723681527942583204307825416401615261859325401499070174220724968857669541260066458276859585554841717602437106815338538761966930784490164609436435027473549394670601524446110281632025340869462316966604922982336286011860516468685085758523060612971620177502642803046293052996149603710776405898024937207254129351362408489405028440488289235610160818285429295916773181796944449385618239390141988741507345628220277567685115938325461086680763861429808978048297282842207679857007220012704777771781455628534101311042136575080260120631181217903295232949765814182803938283142230321467494371731971688958465644945985445105254164125956085663630319706454848965235624391821696904767644707276275754194019696792810561194281530565142083341738285961442416625743252366110612043390516671972243342787272512979276831518147812676165847211971929300179440382901148219625580178591680383679365572185691130558682998112740110751029783399422137189728341885242387309203652320998099165357277017996750966701429234867953582837225816710574022465524817869311976032091997910225215751517688338651737470022634293721191863820847950197827846173446390462110905140968094703533608819811716012976275639474650086366658655211404166399198337982128125327930885777520640683205155639089676064861359679666279750201431168047239214416759562993584115071192841721074770915993106945499746801013242862596079744446759462885318157242635376990175779329846179179806605172308745715852658878473462517839454891824319574239784471154825390416526294073543003354792105649437290670675341804327438480079123721134381406797939253425178165041113398112227871893074154413574253943735220340417439807570989958891130582746915270736514495573867273890887024424528641640348166165620528051028071350612142137544200156418708067132838028870446755688765780294117049374919600650969229591623621541782665171530668734622704631378496115296936808895693914291615486556967128474109111326307240230353396126705148249885549649962204959846885795676728183114228764163957305717085581263664543112506723967876820073529855150632156745453009094103330175234322744049483895697981360507202198446828035350735139034223316679543625966419137337447498461325380603168893661511395862721526766517524803600212329412020042220751322056415325916578645648753925790289712666850659453645816657837197903814712887530980625630699431755853484125880322674170056162193286565058140623056765744050168344322241033461115775620149518291515484415730621240178232444918828250826339047639237560587379336304465185443494159031450001489876176542933073655374928946630545218252673196346902268171877491273529951584677430159601356763365140401241153989701629387032420885721957117935077948297773070732180447352175306044035260438666075596624338727437807692192340524850882351427714342969539099005433510522829869930989099122238618758187986125037719909407417231461422992277333321034914028397990435595947268661434859912824168354817894749565762346429895397715613177878674760609600000614975515652912250677008716593334834674882782355098483946409312911959481401088661062036047533178135577907296679964788060214813004167929629754922675619147148105967720821618742537658045679141154923047417706111417098325202478898062419151454275111206479325141945806720093723190632009688006977801381739497892356334066486229405735276197046196866822125572696889653182477980336468810717046943224134197362762714808238547089125287961709098388708543066541008811429960713206727238954007550375993416513556533603171976379469743106212509227175933557055543965152473486196714630593115209861417289997836973594688408180462527414528254679212416487618692224155989697188507255450599898615156712695501019835756329107684418171490057217549365125289261712754698996317135726804326097833169779626838725247560456478509706787300366233748012029107588714931609133327110615614548147407145158618664670368610068549181379317421917295982937606548980782038780024165319161915605382405185854234961367836141909051588572462370507684365338094475603553076395524783101218369052746006510580295604876003594634055841993928790172976922295396720271578808382580846439893015568851798381925906135571317491751084821930988832745997490247917759317644972201846686012048308492265199478028625179290680478776287340234735378601782350565577766638144761683463524638737226153654269395670529733406532244175319362509188362480227092112792011742651777587947746716508312236347313023237019049762158564881469906903575647462876639489430376281856964117044193053830118328452202484130407148343508473840085619721932072973106089077411357123549560227798361052418269812905256713900446232050593991158699282017197293252666080193884073363458735624501758411593570215188683290879484520881486932903759964384271182104374487124326942786722647065415033627800483993132922372113225958527078248728026695539071745547204687203840318122316832979956157539947530437075019696014748054148453026074699786203571988502641785844561756068761176007821205482559968905535248576603934823809578561232298516186316453569655493394426356485491957133393756516749048178578789290684229946004879110213650629041323138299168741325696778563964099020017454287026051366866551820672553334563455774931198785740620996838361641229579963897187438335075388192318105793219535171536019494159684123143419933001033316186937136572333715044810884822692694756815669775545881856337903027484146050590721550720062686549855188535607639589463720627777783270379431903167634215839726794432391614563124152737112670893907755146722857977718799771175281469464300721861617941527182064451954047184566630700484779042393870413351300430824066671169925426767839965697344786448706963453009132388314169432992627210312894487671247894303715389228690954309941894302608043124718600140619483199850261664395450717631502526947293415586241703505309797378784562328534221652242406025537080688409037614882552531489539296663389506782245125210999615338511812583691923627775436184788859762288034067341645153424809403093045569646286972522822196444509193631344925611966812143059613185302535108659498230674892002215326527598581113955609188756383785348019033708695067529276317138526945774340217401077034466102083782824916363508425258607116017618565996202057770349366012673987201766510438345239005011791492246389569922093825860531832577171607487703467669978059862778647755044232475949748344375705180271571932967581285801629547095365080778858664449295620993488727984862497550507483294597188052777341263815637450664996559596638420780628813077969791983500140231872451624920523724802999334520662054850335931515194315831090938743768534238337561493036116066960059292693707856433313712613802811253825390748698185558763011080411783992104687255835504721239069041047322819490794876746660414859838593245517116972534824553765808953561134625317208726142009749302778902454214069619018684687640530366720443341756021606740948734186114112919792229728224862737654043285769307453793735925738807419555404570376306181494603244198143999846445081653093331423946248750807603830333572542406421455096476618700837745657204401072405334321520925663424987393727314978365166677730236209983417323997314138968230052755201684844837622165339813265374057738784716713453145583486089428775070772220922494847284946124242697050761226409316093318892007666207902415006361144311919984903732755686256857024545285087364278128944083608495884762575878708331290506777152342145506623885411603165485392870084332312444044100256920172159223818872853334117103373463300656978824050608477629102904786386868498297281542972806178002016763506175459420847496400616293830041284249248754989350639303074011369263318999646521132482185190864618081652350770471677434801922992975381501660184669970830825752298285709968761191424225750974548015741744799782980578343056220296642956130289085559034623593459353036125876177731193775132990241152293253018223258271580240691228108783204451656023439004144502187717350708746792196478884736954536232736990414070392961303911801704140218994765651022992957834383157894571730557314775670301612371847447959029325535648900460355935362549557398948632977868164466372872765789499889824280430277947837745931553706371180220400768061631029264829099669264425847537075871492808517436783770765425681536624882846120406869319701159370548226016038507092369123403582417693059876898482824605214619992108743719702875495787215947428281964128956389484010101781921332759887759869661398217872749404999236483385205075006814449326702662114861942151729129686780488503919429782382902380151385275135229664469196190729665887767856714806420672769097360803736479406198402663931753155719900369103378443312438265972065860014088243110744631243866955779616649081450833992664187309029654231909680275514562071887235467678184236035936139337266858130176722547066455316123544095979441056367330540382499679437825711167561805699060708386921533482804120874974792471917390324024266788568580933130044163634208199553162687152341657029662747229952339955730528707667499367280262030930989194825535636312755380077669822489376113855937051005332848288540879818067382066940832346400187408150816885922577364576980769979242497218009273913055333327121325928192856609612599509383559614767322976228539300835849744109640437707344182994783127277919410104232334004100409068434125908035503268337911819489026895570788114565182119124635749519680769460251645943232617057012957677358050197509808300064881187921839975955365513806493391632302237933108133868710863696704450234149441568139444870238614567968692668803765442660166950697336910258638855097280207046356704052142610329093786029211776202190259093681588809160957797539152706487844650931175368045600631189817635124610906776786625453354520364789366956378226016114526527279471178557993551619675559287647362415330280299635667452621425178045942187027523226140771928768356088942159365138482810675328779517838412298965224563547718470793409417974226573132560970135821921381723715350709138923627677442549423889305013900869485329560053801146451572940619265928804319153001141592363032469903350322461240567599754545675119262921964004169535419897145444588448945760898245487159733237007690241002522752977544872678126899942685265489569363845378407237041906440409948693006522483495694215278986441755755978179818977133506392563715994596091214449109753631802470031444899815829530193424576704175834444779847137782951347738087502901761209741152155018935014171784890212346333388869572426262029135529949761062682964337431046764123503869781918291800417478664996867474283845624585264332404514354936429728647760616353990564805743947360991559394520086172784492870834319944051683077884341305628276616832628931907913051008221926554666658759959647329169537930624493683395278403730970020419274401861365102371317448704162088521173664444106710806936486113572609036303167123496950701209720456386842634800098180098537430547914414707764195114998196585620166368349044257011009379095244954361372928388843967378258827919218977015694716613920525971006545724918725616333711371042020824980306796120026091250951558229160997978062346771089637771879003979836193136750312938207441377634113764886031753126682647945276274421500708221539639203171916389788883886395964713935914863938507132391656527827724992987018581931878897326803762646986091558416547975526830248568378304884547596225590351244180765550263541997750813947342359601298562162360745514762616423365449597660156109188221333204194173059140447942128421004132432418848280062049228200152303982725608580562324968281083593513405510847214803992446451888653382839076438547085981661239513481809874270367684659334471560700875415237277767624255600907966351851551363456758869967314829383875512313753734508717591362639279408336667509587490748499607099177707377930121785851504818241411191405130544627800761916077615723355174394099857931020976403175550138452811526628606621406269244559049412581617871025758392904855458529566791931366067993022738222141086652139959726358287424547403579748919470712107299430252944530548974242198814425697543205334403906419226343414763850362967075698541178692832969696493368046148740843799176986633279944753080779596526123139404235251340488026008743257756002711897676661118669928802205683357759576526347005669266469879458169337394536137645839259927343914867559214237167147210379532460131293556614597342198889996879256699800737235876510003314086518778707916717429356781505760495328053166083818238144776340072226441529939396205228646845200669504403744303994775664980128877186626936623189113061700362629822117136935833796222529913778088140376452519742918732535076160831684871732486825208574838194755419607717305369541042537100282753238506303226846143903267081984124083845369835297681637210678846043529565108550084983043543015181537129050532560918436327231860685647152262758642633591830273950867514321337111682099904421740860901283426578991672738483297501317347118361435481951095369003094716107371920838448925336340410165446283796909362652896211690259732524239129611756962191631848630855920882676146485573309276748410797690839025923158944037223096831814633460174768857950846420246224909425309059111694516974265195506511997561573373897447113025646721229100940240994488582606146619057138451978655432673233460258701197108359403439773483237554964996661844533836912390135122966445271691946477874233905179585466045688987484774426192744567352597098278101747109351505409153772092225950679885493304419388323185139840182708997916049483778342797055532771329736341330234439078189768137643736098773129613648510341783112495073774441237492569518016757777374590945559924156714042757906436692318436820223844896553998158945404686039854328257624933133337759684826576347405218302061551332831908408696238340153988473625959786120527372994131552721980786439930184019515257838106425032233742088897424734896172425006015890728773003241390285402341103386757099619528017219110255618737056731654398782180813939678311841267699160334861120328770888522106721520328748973692119614824897997801310870549675667736996202427073773725095226479825492407132860802749574774908063261854258752818412782407202136011628843295100296290769470478717973038693023406496532533747972989627263524221478411431823619624708727643715978913697203900666794119734606523671766299981550052772007543350340353275085627307055869619768330325312095161160076345542547235853045762638955040435382968993801667076890567978237418849941137727004572334763486618290360799426968684045634790737454549565081528348641224567345850260266012561167037519486124347289720031100660753131644802973530069646257279202334801291911616742708783262903466862079158308114240137235950339430589505411302729788180648080796076197392845261648365496160449984912864682142889429610458288215264956147658313386426271585834742083514076452176811932917374112370701645091532884857051385289944453296148896454812474673816936666093461658185036120924469490476798798961746159761477534096950297960212003096985332571585943942680254450084463583895362981701432398301281093918215415525898994869663502445227671164256587798461856656991046652986678404909134827709461135469188413641049861028324529145961538728060267625815740061099987535187210648232693043602656323854891695307858776996825919244474249774652381111280113234122835682085979368245945281308690873775536176636324927181865108467050334479057316587214903715924673333643618360146309828014291005550477405401464492376508790242968141367043012538486576076316438942601212458869847816909178882677290972884863778122092902870855393700271588756467756662984323286840169164574043636889842470246458799736851988388297027156627469069674422648912082413665678980359764604169768476655754325128950066092932166112600490687916405756171474605747577144668367281130880759797478399719578451266038721564091494051250093774904986207951987614782772786860039839862958054591139572370443002245122553099132462883725190838769740121061885288016093610845342738886259987452835568031604586494696203638762706343910609055167556022256608888741672444732774763825707537794833008714095587380650561463792134734912666237747841706758010409427739825457462192555761292545821069211412730360068696723970950460239204360043139441211343568113446292255950558951624045255405845246376513373573492922467266386830764169778689800753957396628744892888533722726786773433176213965223887282677786569331201733554028317200340583611624270280410745117872471046554252741320480031317178372571734968018912979892821619810161561380800160575281067776654184400450020131280027590582921201224354257752602191055368907808729736481630431671950920661530399813653695806306307398818010578700800632072385600320084775238240871203751357099269779998474320090200383122798498352043642308635886224654638288951646032835231277338736014413357263325463372368854399064530883766191030817501166755177236589941340103704072220189274438627551117796537986806701417835359179142138189805297575389722143979082833628866248756461377047359925028659878975127964284307930582015628495490810628604768740416826320871527810160910605600821792508390429597933594754134830322311656034048157968457314398566694163113991000747513903798690854045578700963352492629765459803594592301084397069608215415936916422658121255726819255689433446314714125916638027033691114591983373232018631004345743391674774427287913332838994296019202025283222905086447368655293602491965874349562265395007064506885480217601464087696182113923745391860252103930535677239431460312040325614990245645542475635241967391395847265321673577421988837622178528666078857708000477191166391640301646492173407019900106478839422003591870580773908125819440897592064771354868595101283227394499763378101580831448159242839678586696975431865677372825563669550350383737053395389049959946824016299655405347383529765632332978529101083955417314055644787630216788509993415238341622611474735811436754282535045344952248944933330818570886069095309032141356486523218062454833637339478395355136183448861474343806922536211436549054735042002356234766800868789164319522373445088610508911455138918975865385523506689116407003322887025658206073523235011068770718930396202022485906790396340353572741776409337072658899701087411149118163234166287806637289729778514771717935192309325033991880233090942642736879712154386705598829139247926334591269088429880690803601119601554566418021355095851206064169502062065345377681772996340846680750582066670823358922644533812722576664401676887536909983148749551639572995136573805298718727469986817526664343851547909569355466225044848156932205505712697908938456002515894491962981600600824204339922807086608246936519256380967062880446191525752553678932717588197567019421130749176996818227956827233637829744661223558835256520866605122272879160812540567646274465150704992893661806851181611393092815343405744342874355352234911669450966302014584358765334741135961376567182082504537806138969626118524576910842167819725497958616892821573839214133250781176592368388676611044284915137233967564039205476652346577034958253450745647527831005442944487708160662626846091933957354386123306166107821485942883404818484903381611287625755714022927365188147469348973198527402425347591644235061223363511348583424711762925445592051337976096837899149186508824923267616319436056714595580755750110216703279735969638880456388523396871135735909647366150779390664181148730997445052489946909503936138531742929382883380560106130452013212403599672639884443920243067650048248527801659929893923818875669043168031102616926567113524513021326538278259842567259834314438778419743168896097876073759412217520937774228169473112649915611562287157341340767748474878577307953857933086804949831496723667168900005239209766739593703780381750719669816256833083163770846496299304639908472163375129617248067837148939629240869643224709376821878041907611764356926217223899328665986116705895992490255205773358780696951648078795080894950649672582163959795189862660463556767097889409664422399489016384322798429668381698162184888067454493731068076888293537346309559160647129351440419500830575661816363491088735642831099375708997588983496984812557422835046207672225984985504052110200505773342016072555364902148697423221943550361261340081677390581889016831205101584399037412545574844141001088593906506006470886385902686606697465306165391090986657162948222893482526001842072620008516160572313946838791616608285879872918279782604145952194442062995716914186628222631802155937297081165093025581349111169566041713642652080838516337554586812459016375550805467192081732622940406927203321184039075008601174894465450303755139040132675332097228119017683114671581383623562357187394957036974135440198964958980556472868024861935135973242278455947842997494330632379526880341965156062984261007305369232848020782567998336622621653353621664722009529652206620941620766773837860934535923295427588467017441229845492180421614558860194847610991682604085685093734487914164624018543073437404809598591256916807623751369466553486733164922219854014520379566163462143662357259760934771899534951566027127485063890534113372457991942359801953864811277954527073490651783758628137785004767788247591228655849488373450714110901759971176180548814039746676306827604222306789021252863563306144830600896156085319964820626894885366664087730129915025621885822289437304132089544211311631474411935169644657646017855446117226615816201439550337774931943963099125778978213002267226621414057630158453701351860194190355774858067536857052008563346790360585399192155775721456544997283736975566225174491825558359205140640726709103314100584232722970621502264624223094551857356665906970694572076215131271915304750563019549117524614670140022605066790681424901831414200478372558246739289885173468744823717062007280637912058861596936079583208038247126409523037871513705710600691859094029502923291477672617754737296153985433751529971236997588237931145163399365511753155238471514765164477095754205026810302631763929104575555348272849197235273318380395271018861343238925149568358580698997174506489858753651495135989833801975324938315618119639797368631107069389433128297448964208066480142877882592680769703089909423388542907787115226335088088295026338413728574843669405804259492482738192313572667758685957610458968199408022638984411689189992855772910421893922004438426277208902498776488212832177757476408063437040305691901010749309297921106641806404594345975520331134989612627127193606088532014945200722583856760132258576567928326391094833324109998540099154793623267278013023177531076217756297144496114850216152928647954107993865326411139849071071934814924047509074574493570323852865576902718585688787070419285833536127917685428375492225281100523813859921592965609278048954662595458776419055945992926023771463301879862830880074595733877349183816110016354318269658111367774026266397257132377763705061018751722792061002738041276862775334842073348260128015242282802192529382241475422451582553517275348408934414980799550432309605084599170139631240966756547987531036939871432252983860050207516838554424172051742155603231243106634783196862797567783092637417185681108678429375641109756922987198621693220281979859795461921079745484944966744841716621585441339413458084863888826257943182510305255016586037860717490041403432943938534237856436779147991295264345594427697132973580925728455575604156494729474976052644735494075704623511128737553282395635469575008060482737085512852144274778806232761935210519889443960891391489208717319997713242644274396113459898233812757855962648157703924326567226560423673361893227920228045032413041992970009163098643796342389930783504365791889646248059572245038259628738759451839769245777075504716157991273479294823275237094700626630569357494969752932811226447155726952996366471690088024704045266033824244008955318212977006047480122933109795356587601643260557757705466431292566799325726294346461145086466009971733588964789080223112309712915274091947763037279237537306735797464691910073778359205855000468724767014211582717107693786365375702077387773207198384060242695898507208081807485084616003723543484151195955016795916293538791665153744035992671029713296484722961397208279032640050548617226585646986490395471383027454078891359259780250156267141889604042031323623637120884031723261159415962188408478506959147027062245627378825089369721350662771083780739548864330519702872008477435673322486597064708667985145119945260832186023153645132917324780271526295400424400972631284803456661981800453137587193523573358616233760785320654032447567873733614627727885643994787963217520991208498603164106570118074746896493041330353851921953672692070493791013787165058804047719780775268160382667401843966245599927403188647523021463865429913721631775280137361191763282301361883450832747746795376945606858131794580362609864380930497995766667718652727909185661490243189904902213846382551726039634183484660357993944693890880687180476777682338480150899754336281849577848320062726382291060095305664166101583117280261483375944053282434214706685260963111354152895741114528006353745973228424828400647537462529811215708035392864451698263790626232862127325288661163845233931563055589664001725729104972736481762896987613256862395761868898270646843304278060309643205932731320372662853868657016098222692406642912210869861652595512866078276052417075388745150832847369552284222289190126517932427726410915771152778615256625630627689243967087098430732440553428329668663888523204396269460653050918346573445950016822437718874679143568014453518954577012702526813620993524681147627178300678078591021360030052914113814573597160625234759354994968176475586150762586554975098107033653812297965393367507609393309858486976191327599106230303767342300297809245357494696378388465421293067625795812651386861335702127033897734517371465085893920507917868846871260966203637678573977103065058960691092135202743717329197731294175970848026618198713886419900717837500487402380127496410285784075925894709745731156534702317576097122172082016925723703011595318225061197270906316721296594688356495009974219974803740344494254986299525457995881727790690509649900777129384738582391149213406588328379667251177485791478077162459711814915306166698687213134161684406694517135667928764529380214728415032308116156512476450515617412298396232433731049289917881696135141703192657074100298532131334136943905170490900114864709768563047395734586821756880586162704782674718630438938504164565443241107446057406669410921675615695730179525808955028911788838565425731661276703182140740147819146714403013879953791038054831308320312947673068475936902753361620140100838279420293083780912132798528197036819752979687432669319378419977762282781587324764529294157551692964612703575495041780776230463656135167600422317681142309899197494930077435303272510143663548619791095204297312744521252890577476675508678328452806072831116235283675929149945932889136098479417208870613338643509345656230686419016649616823456326042870446670567902819576436894044921141346169456596614976151753313720682544121728072112387131529553498594344663607735538449236845298741079562276479658081095786101282131660118438374278176351528469030130548167434468301472828668296023648008758518774790905734550489669872754368780637476851881190343467986655854340829010093971731101141326604901750716520481874163173854274917912282175456122569779356231139247115068753319254326852970202157838060198740168268454699505693178049569875049201761986622206883554614727056251571897719770289486889539669474011276723701928362748521828340306743188208547402336618713184427888362693227477691267546006040065249611160819275435749640155517136586862656667558766570036913932086496214023520406843322501977428695773291767830405018866668985487885446032369690456051166152889591357050330636438626179805516866214763830174507942792457951997059687455280767309429322499414983311821465772959385090593951358599132251766726633276431879400543708075963913603809319116127127499393606224803861253047877725694797516968899222113584056833676403542009414461005948123630642438922981984536520958459114621981384982073932667734114773080767792524052723246561465537336790398756345752645038595106594874681255805639421176232458983299403837902446426874023657561106081907622024994452940125008147631199380325631940940880533093448163846566316189476507833842237414265221327173781805595496081067073811655430512072517110272762022111007517562572103319312499624667421041432424577663533639961075292587851965278162718307352259796583483817691696914147840546886445916353306112331466659084273638536336641011564795816211145479973191760459220228040646329291572781587627283410863700484377232414618675842581324325955123373050166468894747023940371238173583370247649404312257805311120270401900542170485318671524163498586460649857276475364806475708555845037231569425654123528757274843233998804586851483648859229088776942314111056033039357585091785434210476364117995948093741517724717407192483985039486944261001384246262945121715544405577269204040230085611008374021746868746983101588577198283860056627235955800760485660859361674292554146136204393784628257218745340805763774969640496539543615816805305097049505170358170113132265229399481270506480419098765283891233443168131812958874089671445030150372821284135451779978623292488180480359313928891717607713522101514523994452294375643691831744682497426923967402077911754212900636139302267624450560678045571676650379113535584614237766351543579202515154006693383637463523377034251144035466410824912395432856988511207919230156815405918735476642013627027730468279477082541831445563343108128989076305238910667618798425906770818089215477839531209428530746142336769175718304390901548774616104035487604970449019143221967286110838117251587546101306179371866550383337649586158597400922583703327123400447004584594952839260902688474453316518180704746606171939995997347862773971289383298632234693969011181476011023071101318211652589558939481939975447556333091380752187737848527451264177252039702975216310525741920360307647670243313907941804827633360697543853893424062148312802502910355796088520363552327441443197921492616701936793562086474258671984556227068257755136728085685860606275415739265420242617053627580567379414575702219265680952832784271800886400423493974195691369918909634287775253263186725362970730282787155075973898792840902651169348032693373353120769374626777218666593666572100925892695958907911859698205344048998705988972578725844920656623849271012587752995198134766345568435287045646529817257734341564602059118444444586855181682508358593388836408048446930450862473207452257920240334902047712945724376468092926991243355771153310414905704262016699961160533097487802147830031408933256833378310124068832393504820313582770704690245078686603506176236328896759661460447842756064169023508291472343199604854823129275464387211713497332590299916637995682498596226294353658168110815608951103334034102171200699758849221346803961393100098114453774557838199191822673654121834583778016591694529743668880554568312628066829117043757846643947929212007338889588626946227583408451328157393429159185159552826126907765706424646200296390385900913306336015801133453464374288215005320238001786294796983034127111878702078721737396619840605203861394412966468762269014652187805309916899467677181483793349760320365787900512648721669423220836714607663122736366142257866965947135118409631186608046725666118378213049992683576592420210846527540707352407994577997949337145582320832020983195080757655568226118432234331889431555081294517666439362286249989340230157949871080346611626609218830656220277420079871854111686867453830395007973238060075401495724903229425730736835953522506539777934461134044298445328827546168897569943648985505049236877086667211491103523266226829751684224792735614617438195556117763027445112826646754374753367048214122879535055523892891821115998207953621655790190599145191969770904927083583491798343516683123669436916893167226854299245086065651000108933283640175325389425142508366155674290068998904181396068423128667618163616162704025058870566265318435415672238254803936782499504906738977367449625676164881406726850797852604046651227847211833448121109796892612238005022406784523892954683625461687595911312086553238352385843342283071856811429110318137466588307754565185131358872174351204405190290493161917519022477594466423194782519655441119568209110753097763732198101463401069809056825078354763148853020089637313456862389264708372729027955373850187910706711447031753705732698926965532707219089680851225560903760568146190988983700482830505681141125482601675087905189275991909634692031851981030220514863160474561877247573770226993181150956876983062733041464238899907146719569948624411189740652924933972486816062008004362473133764077384088077405351070129718888244895645190512143054760805093944777018827655910414844996561588035261292346683000396207738846614998086017961640501618542489901597743814420582435680765666231729150504723610634544173034454754162089214916830993642327148330859339766741477856742482507856550937691004361351804392628106018074710545958732909174356755665594208964854192655892274304418435494834594758216874677952257692388389033712963481229894279716232300046422620293194070222012166647334237638950114628893390119840322138592821479755234495912775774229728624626050275253612669522863712424580151641711260877829853748981601894006219228859849087347988704058784653366545690911732364881003385448661677994026145976156215540998798942424281113771023346329497632726162958852883326427746339226759476993961102318230719618328769191551899765405663066513146768474063130094520412305685935415045579925827379838929290441616920882549773091586969518587142617964063840754331803048840338752860818329346131755751656208262966625433063010621903457031974249667493159477137696614049249378284761286405864630244462027646260429915950216491688324368265511543849534310370742697460209346139725339019192175762723936841731860526077090758625097512805059784936060268220591013913890919600355415764373391983969053879969179634923562225321511151601208478771495380550199856004687721703946317236637094364234541700559830392732519239262380575747066572024446091197098858933181481937192603938581275254176360724588765949910643288818706879260018602399752708347447777708251867737141671380542654460215320352517794814591172054769338775081031292465637054928140737153556956070235836498407443457275210456864202940958881932260355769756428743518268343466021283704831149931181898158531695845085521356427302961924051313492322135077968587084214768680941208399918138437307227255225204313283244612310167671193786912183782378793131359581456962513406398779895556364474945829527689802389172017415168849913644664300036670638990779640354059914495418003373142495704227530652233616001680888753431711656950536930785434302095096023875268204752740024568279645760411778886167244984952485283143522110120695355417555740635904928483259023695988015030263477472143535036192147140140019464937964481606926546872498939765048314049445976101149064858003849152851152079796106817593712313032781611816117011495121372291902218925370937883084532907665766149276097535920405217137780858648984681361841870211817720901645081111906475632100451762270779968582121434694279736116485161110803788815303444853828156653252151867409281533306700150994104164086909240240492275904900667877134558314935629040131988396849655071178545382727393644774082077615844123350109253296740251436430290404969231830809194874368613283410779305520499656346264761476713121573154691602270388763381787976204278506087344899520527609290281025814473619878462546100410153799539305118719247467261209626508866133512509770882779357927945973703613317012526019313570568601529462981994426441555762770538481150825375917372185941129202933593888769378097979385194383976248409506335820037984920153066190432492189276366885059833251112716877038485695696831453943987522732728249216922451862564575608956006459109002231812268002878951692494605371151074455989202902679224602739484261185850456346881347173686300932049163084934902601838745708213448076190464198196038598101555369823771518604127889592323559438013416177460288166542290635351133866162114321921679607672326287229359046208108961841962953410391871523497400806351342638959911731340488319505947802951787528366622075975466358552411339761379359541223860784609528908197740880232191580098594819685998452033441032176612336050663916541674119603553045195271726844354014106853968123759409480047544263536344426578391027126399329549368238720978044547786656785159405899933710610126214096613614762710070807696541772061532067962900557566847097730657278399069213067926513041781328910772222091451222332769750370035378886733055538288152077972844506491828505734227053792437286980700606771835360493437627060126623432552215156865606343294639231252664314394778185315445632050655259751186131247090006741629717617395042116625788018798372124985920911188130860810656577432947466571084794050786348402272029783937817369910106118364842047561635026177880862020857207845666606461524656127434353556657309659844383374129340767226839154824540606180931978198300775343355774015409271806859191271209415117561156610952041125995054436096538990904383609569096737716738407676961596376689186856017194094091914149507439709375065952785425860609282933699686152635485228943011319263198980149600570227398465192110255050172572316955040759808779335491604983990730365876138546811885477044174150948286282874132872824993574142582392550442493355700505910895708947057933393873540811369647596977473390005062601913472021141408524296396640268236741740565494446804837367787438220758124296959613209358821554747214617838905504600386519942630637869327648159847294810545844777872472162800165796517362912580505930734675649635340326919927158559353628414931948728373567896140867520981434650719458695555171852285293313216959602023612561653441385518395392382743706006559522392460896000180419536849308536624898942874304436658495623015727265437413162824703946748641069265508752092284811871062431762114827185639941760743721595475216415007646703238759298166097665310002889023480490847132136225246058229292045835542564457709968233879492557273036090423269182323682406708143407551395612442445758328201572208628620684971849802532035414453883957950338496301143349416789867760201688153561004792625390506561495286615964135579223272453498041995785377517429756734273185116502654671518748910471615749122308602823506158115194339117366375206558442723454641429811592509402077675378971748657929711796176938104735389033894039911979124487989281780444916810109746511055664346643142570332343831702007885595304582082818692651995696520348972798585354109838324575328578748226108212521124535644512347417688334682682495672326221785170527936073377658642600609608686899851963457725726922124861116183904996398592074507471334961420634801934962745813105810524631776979275795642805576088890158615260260851657869897126077268565873117606171275294725904420483453056751346732566432467065104989965499166293402742599244398269577258037936235688296059799473842551450743041458082058574248190798092262867676224766078449515368648093424233134143813875238227602115036342119618479970978466478012799475315386093914961708620285679281291295278730115103562276957349454531706801256987283029091135390683154202109347909209017344536775648416761987219953563425658924267736339468933449543017543189909785218077280787526625732588322919841658748891742637209071432026594472540513728905911986815407915313513933384359651987489254331143606091857570309999637337281652376287888102326376290922179513812050897668602644618288624226741190418781051795469230754199565462090957656353100294079978170877456306936294625134996913365930892713454053562169147222495221602196006408682421291980598492732341589479560317305623192292317489316697448493459795394434083302650991642754305836089227804435649489503270470652578643690860261911969046237895315050157968097572739185555099596734995902022108856228059694238528575971416035657127357889437782865607845433592700034481767526646613787943326723838443318105233483861555417544735171371311785949264597136394382236337352148305979286302672504567303287305085609952339069656090128021584681665208626037831831494674523019840552304935459818153273401402308194139516561538643700750694516333393347717399718649130071314993160251011916782623321123231185876641950364518227430369156331908232305237760951680482295994813987581071469832782092452824938931033896856322050142604799704206247233852074426525799054525918596510143391231118269701589121021889132887536959762757203637294416812348701601190208316936622336798799972647078343143033067132132728222034019453283894284049172358840806213215812105788755395495935891963351672571686316234465411769800622326005586427264414618777482720610332886885080195870541235661297831729356395517565594665605503389295710080908159781119581115572383425859840194241198824229834106500847190836846654117823636557385213145441047737112265063053355979899284570632602477142318146428984965110426369652608300623187013182583440679603235514087396385236325382308629293488142199990537877800265902297887131668680687551177726751105012799641182584649475885630142645397410459087056572017127377343143751505704749369446362604913238325224771183740858454749555042075664708487010747249053510088717477060007071830011816776933970785866114565219830914398419814061809556101174975708670251731850119511328768351210704084140309413996677743548824801098888241520485374759842649867179932258095833510315628356402134694708370335735024361031258701460643101160914421979297391892770347812814963192327220922383238338477644737218604724787872008338599185557567516760290757300260230443784618435802792825089429441780125060359457239875512569757823997204533166036055098859922289205878297407507542603994799263385552411676234628546826641740625416807955256174524797150595459201482146564290144992505132057490702837135962879341314479731172843735331526337489934908209381819976213264325139442092102291440202791407596645514424024198449694597866809069085825015446937357966163820687493689244138483659497789690858612373926643354250511017563863150121102350016434688405281989348820408392083118271669245472155876714000097344316567991684145835541084590051896099528887868283025418664895578604395244520975213171391326408804951700354027145652600520838885428607475772009452358882622996496745363314420103611685122212775786490065269457516964263505817805357192979258038929789056780737751620195278573630716493990363204809015876439835671401907905738317060845157557673127348401852015971551289934840978187698814023199571053966650128555850706962416755811334259724290311555525364808766767289494501138461788636452960988782661098927713368990347005007174401740178363031199480888155524969749136458730509268240711627617704426001116409680266833561040836719400397743137401566718432057188965738501138247855145003999428210423052978658670044882446416061614461361917070903845126339110892299720020341492779180482532172748148851199156804108120986426234979828259680904518741006687953885449635394302430623145226307816872855985822964715131368386324514650782175557527852057517029160997047619094960727956699966025721694325066371137397818558797390659980569269293901298894818681738517985659632430390713890105059049741944344623002211578339318755702588549773099465765458576458723349190796582519944243160601938684604047094091345618218299867697956397650760410869630480364233767319685855875875493672088827821754359693068956197059725484890022075930673364033951879806990310523070967028426001115264186910188536510066513986492900172826872771609732549577693066702482548793680986208836026353181676104520750190923787972654910716657780570546915277931461476537340868740035353256040946068628819930964578793609507634283366942413678543972466946427165810263437190302856330575978918169912576562164905993756108079857929196029500438340134543562402726251140961776142959066727612392433889754848115515566614322242054931959573903391794952437552691160221766462622394758383546659522013784306836808176795749630189930984837613395935948374913063646777271529080425603271653807616384097108573814253579229195866260761152200042789821305968669522139562694652649205637404750532938562789093332810599194781780715731448422784229183909563231900001663932544622223600757225822502999379001079587681732765888221862920016018122708713756544642754089766139794392613536462182649676133313856717755247010375856668092012666217890010135372030741592384140223995380708193917673866540632762038737263283017286465796630061195631595646781597976597238723332317688929868585357134107679897225661365444747325442800856130666800676338658780327111001542265989527342864784318785684037667233311914098914857939178423635764889001065855871635105088952630215673996770916042543649449795876664297039475686937156702987275928333417823567346231511100222260370490810412339993783889383481710815183191368714772097538842414629600261158146054594692309872707337805403715948366215922006622715066767104983840352309471433834285622295190670478652191845770535847140984752934445874594171083617738997367979770293566563338313750063445317751731999757962725028139661309708020786921305241489364874453437116998370207262366586162937198116326652623119817366353144910662272556148506503340819073899460225571827145371702042203593033397036629919234058207120820865993969225462540774737837222376955844864774123720633118265573653873996573161638985875480894663648543324876742393722084988607687962696779380239380548126083967287317238137232963116886108339941058692399981110310185666729114435335171148065332749161740984582338796056331091281129981139801420441471118889492617295026419485544512214296633136365539801990111115109148845355398589571877036297135899863969146610842740515055884796823622531409820023256081495170558312878073662968721640409377633399604385836177884770583819472627438971559858316859229202932676832856898640305031712290837420462973465450275290194384763169931310799853493055023174918960556547233835364872087633625888235418411609096180992043709069059509068622744018321525175546030301285494469300797925261887575738203299333543361219227822507690101193219174717494999212863904838233588770863725750144888391950337144148555651327084107308356229661635106046180209235953787162021204404333308430445388556934996854322687221833307172002855688412997195131506787222017202199341784456559403223138576322023445090732586776589510569769101137628836584457265678942342606587115163248626808389099540039224226767137973294914124344497308620716737616706871872660572351247428485547530194567095069849570491847817551697607217469011333059021306951035212500920600599676910025499667221918121618576830463215740446143894104051270175050037859904510710445008251777322448494455703728832319572857836069799572103201725668214402606451969440361599930302654541620729767442547586334253706694130880199616819831434649112476428022268669627104991727110726039690540125192619001205005492343655002953176353049579222694721455716409097217812856832475865536479698433979426844498340524073040308948144235147520373432778471683891182602132990257568430963011302254449274786152343667692645107716557992421010484785036294654572868633482758583863460045753472568157917898837189184095266913551569936931309995572203978821911211798368281491044626243863029239197567095410877896100317203927670840582668082514479575328434849389028100097927662925668726535677233629433230885099095211342832959535834902423750402391991399425264893990967914560267606891817980756413174365397376182769092213634457172089932069373395334879727706546369719024966848729567881871967024043384765700229016104620696124724627865429981812535963696271863443996238146180058376109406445343606755338557760629077020553493328923868959207423396500101277441111353140626801735524600012858570951529716199402595168011155182441793753103819544014088615789262590316369863660227422819190019269476782457488129199516833629020612283179769704876972076626346477318389879638639329186113466216032267933324116769815108669060999968062396126463800791300741028541126300779074684292781555038187759938166524341402969516598314995999259011679623934082629820384957241933945237211539257813820726533156679144056953383665261088612219019588835742175173799222676458590132675862517613436477558500304225475790743865018080180487610910720263372149590826454193480726311877244486412131735486773603293601992267039117053309981782154749411819326316019706333255407620558295216276171230727251553549036900928113427768484970184200503556826419678240052271189293013847307883583114513029276558092766115356098565586230283596595188564081237792762271793300172340982527243998111311617407773880059129493365448907634647623435369128786575686418406016150338721547858242007175689434727387974263891312541174958169586378401459858920235624477202106551540118202515577171369427133928307905216580929123816161952379837812031215963347038987403047876078791953311336227297192793119697965261940074460763741480324641513705544389284653960260391150475098004678216212023843462613784926840920911971684938174184253647539897891034553368912726113891586298522803946829475824024789710139691976456054523722221572669158518945447496878093378203908976404866634576112632556919115807614316548054972465978759824171475172297298574847142196927820869026641312977331843902488050841333642008848765433341312268352724040112249103720463969326808834264274312827804409383228200716735257205142124209349586425857451449794425998668973030420185107056677607966828618027323097040951827003947965580494498634712932356979013374928685464830245453144214939231156533647011576958215348396336055442033556739659943663497037824944120250348126245239630741257687263514358962525589267600326322990646918057246820001913056665272657031692112578401148088381070790916432968229348837962031095697404160944675482386611839822497148280816070376085435951295267935609675085587664251240387505299004695460006670347034439089527995459487668924370486589519457194939354989887870153629642886526148829429379994230947828984775955574692956902151427054346743444624780227470771378178875886954588735522785165996315008161927478387585736166605800122597706492819768736913280528785874810763586653914638325101876579246039342856930353991257136270382440361669930871205726332807844799563529268004920467207450486350502685079564992909742694085747474294035557262455163671412939720994178729907773483605973973890944778643733566371447576345070422440182238477408797889436292669362901488898592901485963170480006266688310487463362174437736907991013760988685611045598859683645782400626357542231180681781462005659155371535589096788547789504116310919661495118797308097511132164463321003747020058780366152537360282602548129891835602879840709820844955141087026221901230433418592809182101822723547112152358093231128295004661712989766614608115414655118429369288941525614124438389401882027466623645712578219133022920018392282637057916599520683802729167480395702483873041482637242828066928881724030228144285254150722007424150468454214579679161140756900596919622262838230527580209006505806127189704140854129971571809597817506366586872919422789919776077144977840189627123071542485767901252032769857157190100376080306957474311707401626129662228192275690731606546915826948359818829906772816857340257170142058011604968444873757042128982612746967875646859177131285290601459904933846814664927841175786977414207029875331105424395384326232079953116832123307479944295120723706449990286559883364238850836883418234287352148997478295570736492931583235458054040138724484569820915876567405976291947123823517370052341386380009201211470579372379841016407656421798991037576935858033192280775750570743582779293534200588229853543166179339302225288700768734111044360557917990278072804645023454666252162754227729865331813384235363616414573759706898713096829836535798922350686683150622633973703469098237100070602339504068107309746026575616331380183227797401759536868524656601778556977871318173317245127592533155347508349092667442938837657020174590591026769752551746580486649917890674528902978507780728812599606827884772525979422151609236738029853967608504858941403758199570082168882800511392416010602426871360073987009200684012897164500145943027779047698600204548980414728205804216896057432361068881085800019941720445022307373024281751425965873640473043515662750160480751049985761694081667673689062869325717662207212537444016276017942108544040509474327665328476672542438556207031221345958757329107090676044739508386927800943881559078198022048736707794885726895914132432717507379697457775769780822625280205310824766536330426873147312508695941989641755741353928574595496808656382431733399809287353300596454340515291377327642684680346509745436336567678646707629131233015303283543562078294522028256070713350564019437528491540519064848032963281788627700512243640855433148975590822053424476378827207386586158832967927309139900351977069938919961118865913072777560570511173935011154822578687985680130106218267620407363883946450968983513356362788664431815073549305051427236942959773038786857775636929698680681811764194532691188571037712508632081835903975066696294463563075672800417504051851264479740547283895001203360734175936939121639834854907561918076697124460122161882516442117179446775233224979234091838170367294807720164873946679646675407440863017845800220454510149792431167880351487139471169662625050652534006100129958115364135239867902737839572513274973519968594690952614344159830715158594937105339681055325963802156093271288349334457541077307887601092588615227890481023626704241947532057725976943058277336652635280911254464914274194656325283658726184569872525972369808671063770527318462910312357761952930037593684885804783569307676775811512487755905863594305273587153358409818549344310599211766354931052062563095456343258777017509687416376911846636101460253033084371297841432646953680468005403071342515339055838208100793568344677281947574190150842519797899206816473126112620902839761987166314104343048013642449337080104049698913236502660162573124027394074048194553614604309849454709678856119689167858615750687028306344863891962982297651581099637445635281664522915457869124636608616275339208603295086464110590800635038509642102898091541799392447019833682037710945684278505688185596474503945248516211805624989455938008608648508098181420253586116457287589453562907313665044496607981124726492525394582616905632397604133170064851293998009755718628992441805468057004746482852275211415230644017789356419336290498442687859384385571330648522459340572442617040500864518460612248926135842676038295349396825505768988964402304571172821403331382588026351573812367582027193977709707696066057267530023931045814214022912855849255788618375009414862258406712401690022074358528082902562791002382945738646083261557383573884840086861071546403758038900305340222103716351821956701050977098968718400864527808772368038564825917106961863679549172382601355500358225405347969376099052482445098356343272396584991896476747629835856479947332598448628762255372826657664873215126121120383091426488485138771643294458088767648155677747286862781069255717024542623459125768627033038751291014955794818270866382602165928465318199240650283668065698369228276637473124897733176210048937285541101056681403485718422386412274198777616418188921123714261064484762464991316497912524114913468327961011125567566842092960346694102305152257455952902680458398064730060594468982068882779603885617169585009221010711772121080151619716795793463739575197163113233119825769522038677694245127829657245411092110530936487620674493573542354834490711901124194588551060768046762246176344844078459695427280428107310056060095640601131351844740204785440075970137587131016453103567107733539818346139946007058598097693254962135506653385184773046970296613897455968786608781607260608751485155345443298734681760351790322377142870642293225603070456144809781960163077548406451673374530229188184912968889245553668589498119087073409012888180975717986257958695553692308098876020554050239888443268405794780625772640266019185113512374817639276532126233297173645218925088328050444315502187510912528733603867607007476568394680930838996168880469640423747413520133609276392702161612702026868251981844513155012589487183894228563668785391304543124657438802613496948691906285334134201646431837081460967378062945366559648602090785380455940171889343670139726297107521060537900653917652649467573517087663672050877066481500755245906733020937878145040659182943224988038390646979998956207869141512767498820986805415570197172489318054686386403306609229922263372303676896934801413493806928487864413353733766660054503284124750072661281710482304777053536112210470416710934243000981758250462793786511556376020622780363337449761974286149062460658634757963701773386674916944687229906550596053399181946374174630253509390039812131653071952172870618025429569018982874482579947912456564567461372997296148825015595702539829024690702491282458502053460287003606444100625141351176121035354280129737098453825385280954420462322822319746595836661929851703531583129875375014479484489662886141989066668040683265332224825202808499972538614519169360169551634337481268380375015743561572638018812698565438281350445044825789842850253170416646099394301435699736969980275249697407398340050697161101811462940256047504733845513715406391074491731561737154016005340099142937714564330674931617829360301445126194623635825744836115375535822623385569740449830687284934537175422458098274371679883627734621559183358077321503095182063084705093760598549935159316215068470507751882278825135079018660855436348691908756609364561194131923245669321188231925977820527270767231570418949366706003037191704370555340511484738328378191547715168690153196177125276921705543687388996883385610536203351432536940932253939859243953869920240380772428694962385590848768902671157228710019171852164509561159039967591296653787670535959742184997884040231487023245180960448402800979692974595288129300836033559304004871007212033686748526217961117038389505799304217157736822600409476931086879815967856277218289495776074097195942265696340608278287747273068125455529061743475753327911284891300615528914263827888275835147403526001068374817916682252295701016590539950182159591600398871334670366782762787577909452649131544216400886242753993970765322845643851751525188793851497699379667645563999928344292835535366061702222868019933146009996398860720640626880347267274553091040719740866967766060689854499567973234837362776643527588178029400562065573852956347828365191848691501860185202122169639103084937141026211076548504842377923042932629043934915487540260821139922464465403991840095702882727729688508825915013246138536633502084996198631767451737925428831256251227343446399384736407653527656399278881103651598556632572844982749667471845136903515046402173374957289333931472805216402669941630326544494687166791479590783558657634332601206371139091648868698025694574526832490699388219281458526537459586469875724801130681277842259005756773067466292688225829124482255184880941775393847076830086172799182114020072135053096190673384618837361483593676340615732513883994340290975676729219345519425541969501570422045302990631166809484945907466979953764327268783886996030846306213958712258155465532903279409714042007829069752835327218320024961606958905285158916212114701221217427632871009980278058725934684214847828973279406113260133022079664055712800875022620600721286058158850108595450055267891877150945503220247988969764393531213384452257022641772424190703904569247387873374815636193601847862730445800850235499495649717651372071304687747689710990019842532973177084157077328018886731286073469419665184550363024506701571741133695088051959268102804596717275544967256582136148797021775493340698754061921598071496844662632468811486915847904535643718131670967079863601522903294248099303577259923784827086134163728423477552419304505943521001546553741319119065446302707668612909239793957923692922088368856539711483310820793623791982570298790218893215095233531405803608410442049919619780039655855218765099448659900823641121149192700158671432788481543910546569253767045390850724647875858161706297546392140386307253099258504057734258178185439625915265835755839372517522521745844246734547140396539682900109107775064997494458423182211037536877288448441728761256269069233776132937124357194140327418681192754240770993928286187894315546211802083310110827336159116438944436192125492796782558054019427673965340207364593211426121116429173481808933417916036060125365499467308992041325777098177595016828489755037647286867022866443650449180065869470677262636362119918062185400032603961224679085683003190582514817661442012162640100659992591200780820781527372638761431029641835321093667331349969985536493029843445364157662045433002393658034193924139053127712337202172577730203678451297931517871780967452626906286680793307406786068648188258313847761060483281150794699089614597859274789973480293202201149062796003834514429663233374844598161380062560964119116825042806694709045691467592935428380649227029357106137808400779874203747921145857447440535214946536876309807405249186370195532207004306019878491954404862747259115980150488801694528344595739732432169275755449233909345872565450308084388444827851267053592148887686161267616517998910248491398848114353015003629169298563337036041969837903401959455810968205115878286827957041691656482032090631564749921983359394674616589056431595178178342127864730517374377257015071932598837144969736229289210369760356267074121455142761138001344394846519334080939526585829580787003672718603302951850939094744061082882293914699064846824696778436097793414997046115138750875737432529353402430921371827130584901295068191463679929134950248231873798730373360053430428876251200371745175316089772326095085265376485221973910348387440027088156689779416867068473329850005584365514355501348204564780287592963744402518508808772185794519288390422411827405503637120301768454252982656817082472279227048489239037296121885206266723239504353022213982367190273001448831786428511791777040937281451726743595393256064935596138846153041042728795731751846970074779338444977112669166639105498976256474857513959509712595785657626528096971501478885871248504429392290059897266264372254181537988869776349387828675003984451103353565356816614312585078939804365744069022584946464354566700286909878235915449387282636651456847480801308842869102017331952123537950958665888360373717489419495242336840420565880728149205417757330918723032831536609845259674918442678533161296877678151884233454135532406921839434143629461159642355512424010924483687466990403032532821316307591547009358419307455381535972964558200262107476121694939104678104351531328539767558328165193013960390981859427042539117814224017573337042793789399566028984325989764321320930770055740664382074622248299216668020972505557636907906196076165055970702310821533591169611301294371732479862693805162198039523044161708324682067765192070915489350518303780607207035328290812855177819006336101103830531703013400019560764101535543447861268454798213975388087988456387734863300491447660611342662287134831704300545684432196672243281936430318016114800970726635192235678180405938142164131201648123309351831263367172433400264104358279667117083189198353196170683913834894692853665125185180535116454638619003101496426786525310514070146255645413489296452634445995690938727525943645277732228073147733165628851278855246736824981924336562002571271576040238351755945564576867758531259043825610826632185359088910390123937711678346668963644282360879406958423671986046098000563597852506406181078266431903488445227496626272043812500689828235357946919489298927095648754769813583584873793043031339771718521589595166276605201111857150470307745359661202861885153429163071718225461341309589711756342920688420127460063669283737302978975685537913349849853575572544257748897027537542776334252188615048945916349144904939350950589074985354340625398403538157082056245867087659547717481308030350984081594367399632210281712417158893280172675335247381217956674690968705380189385001181728167769539292332625051368394633402443713545768891034364689309227257095880054039226462218757195609525403502634852195593511389900383931539726566973909180696272812192318419288788533716356482315379785326694164502351885960091736942884565127222746891056267217726361167212022418153811187385122552836189738114312321384292190877623049598949276186960627910006857499235727660032023540808847464571091193747796682974393183831731220948261654580836523416587599487137707725464930276476917892096910595423530656951009561968389885851427594008808873489343643619111397570675698877745618473914229726555324676386116542093985526442952669898504566568283537600342047364884315867775259470413908360420308111805692806737807860018383304119767196989977552665795686842187021267450363431010171959024458270500544523907813534979607264522285775678411724319259810813179420855012846535339414404179471757472333523820242643212562230764323136151390848606272759803392038145152566194044059346825212724852678005313119224015736356230730577911392295822493800442331630427212122889658243978704287905574286746000977652029475722841243889215292691867543776762298331881269378528925942433791288435279008457757913852456611585029879034617086958550433322346330687205367725593957536499679868305716509508742997575570287729675230845162549331837803734707305535296350862167025411040231290724058373470355674754477823116747125531301369411597607530419207607535961688750549312884133195624724425822761493976078063930476174393706297888346792083629010325334346979262119439403458312997205962946361714345010478553556705954639941301782816196724549543115471291231535868015692318743711078339557560820869383951675121178526590581649471654173755136747293149152091398189178519423258160488058298844772811956664801643047087093329451560028208757366266178885324439045257366631679097570957069983184439601612399289617021237348245472035931696922833610387575908331216918389246496591056829642378431394427490160559142361882186126972814508997460344796703674297500109926367740117404785453578911451993313042782030537964512598873528066966655267074477645940235172266319470233383206472656125232317685844565880267721921353734438983984346790298694602665308707319668505408811992963165654365612711992915721221250409317584501515355410894658625163483649226437982818873112841572254106607209915445670884814248722581230974014019716422690885188214455060233914933416318552554174157828622116480481623136615276127346929320407185161140660545299515064848247476724623385634870624115236795076282788112400556639295911551148077070047817204989434681559897327991233322901065330968123423214847969180047840356004409224916351099262039858351966623758689257253060427012637064331819716355208793163099831499655126728963158628760217520055426474584431074269946728587890484906786391430751586303864021625638818011417758313594135518904530204302828678924225183929738995688679334068832953301673744677203294170976167890368625064122844345617679902553950396234593158791325652366374940089706294532791546908161440041192664115778928348349224738024186688916143839469671287210529027668735624554530478402638228710605704219289482736822279059157609224133992218369480634655135098369129545166053538212435332454669347077114899309044790004180699721831988935989063999722566000260383574944465041650630138973185667636741309344180332875816792900756492439062607560962308055095843568855735313587504224979663328062948253324458624095823851989368116538173729180243370597589164708824150231450501363888343938230043813176803879654903779259810049422909781927089232590662385570015392912249918607521059204038400021138115127843558188536002206039200502528934447468939861682391007548380712901067156102508373542784283849141259166627767619931802822537832939849417098814471980410851667157093196036710226447318460501451776910970252250596887348522567253001882953930527889877193359480803080603564996061660590269024569041499008279157440226628806433817857188615449272268887554770956643762999171930762617246091451412142888638144772707833054777299671747255109459498800093171256074744651615452929520158012520337230953148015488213772195558165204050985494588508276504239499896777373565574366194426629737275691389268603237158112036026506215395218589360911200550949850252881436022819154792781163843797508027144839794011823313471721315662323405416751692082336381555961790201879830932203540770975637889223761510317533099438301475050069251455109192760464392737353224330165185724340500284323982565277006894214679359231681921232072470174854329105564907723673471871705179145451326672156036602643899916672051032882243313321198596395150212781707874330281723786531200076191490973783501487240899250959003524901306526837385672089183625821635011158302477371872627454740471889151712606770450651703309150330004000599477145837039995832014578755153019343396406745922887914183158258908833426075106150962559117232184802452567532157989923478710793836382696372243705201135711765894257947022375379370717031695187092449097886460684206225766189016963604820445724178161577859441479376014161963914532709293111481492253449235502706464747728158579572782627838141300986036556984567543345332629325735521108977563588574482521528091298829988984849131849895076939336136384308207652487232890154743863240877432754401069886190079018720747022547752159373656936837768427684995642729798334446374362738576058683965526944397934699796769859106928937591871408485680138540901719138293731626028430718775069975304595702306258079132084774399834585595349714275833589253727616739688570873079136746695971067955270321227377167521958691626990481220123598114318380221321239655213484124227702642642505937906466041139376152689584571223399409427054049349306394538259189405967246251366464214479988731915350944752661444433751299184425779440295067113964232296284598476887417281313968797189095718005664715921097712746940448472550005152356505554765547517820109673019224350918112963403978446759947802246441814156364038264308422166381775936960202244103121465653519734556254082144956528447088555202456083844564744116081861047332310563717618291800867379208116675862255025380135185380327177346727125323608311041207533495347759528537220859277463261550439141421476995889073103562336668094188467728609999399266473794519831386900135749480504756011073061488250536267528387589612452040749373065395695657971000175206561821567502668663799174402134769577956401344078858845381557340403341580316137598965754676197021137709028677550758325496923163374002086844600719521039736553226681059060546770187802355598039555596555977259056990805201027394930439825920237468118475670763112023510228737400052122416464454350137023415351286302867848228997584578899851239192076316133049959284703026442041251693646979395279787564815081018259674252814917239309484460261747800334150176558055062457437650142607178332754643991370131310657158096380287731394811566594365501460314349687611276746108197398439862526432978515073894469022072442044776163698169879132523257751765455700149138462949517672586729160247922398899818628889949798533420397586603707950211818530587201521054648500321091545866716810695445946170727113604999743205347487203168191140916150848390264662963086726619723740680847884602125462974854768220010875901616783486870072559354258390210943936969189617834994985891289951658970088295273609232570962120682755030074123614767427100792836548742370718615904927003514308106267061520175225734241640189429183852975223176905510278741613893836538549226129374916018308002672545287664113537117625298193558489118646261894670225254187597628788032582959958041423793576699142192150834049620289479360686480211306933612291497799908579563059193889367718864240187514517226324580846273637217039038211717043923065204824704719484113865248017119092243988817690446044166935450903628235732522786072367451359474434199468475435887749766892157945360430470140636596091458428890496612201396670338289224690370980982369126940525808475680981248930050560883339416286138957144373669159496070535175319771383683359460232377854367827323629670597447604358343928001886138466252860464584257372961730765217439568790483269026553762178016456257866348127969981725530909993469511980234682099144852496980176938931169658887782964628806411208944682804427264904184676121528308220590779555686729347192893849941617211488563206547850431024298273889335964298497481358921503279737289116508821002989080760755936382895606848007108234958877038642320912422684240314048329536570124254641730539954799212752330410536769696244804434376242948254637736375108088932171591995107102386314093129224037291132329414988735024987511893722237609215119447403902662350470994293099744726836173776012417090656740525901577126544802490560062056621232826205411974312579257131920335741747706776523289411865801834606068931367350223387390322842844223341553291851842231135811029436791174592053557247190687998787974249937080926944451135702472364622917087445896321893665357373099104503523331743342496965350295734277353532980937756730406718313086470597218851084819667589522751603712100728439782788174807721207817356943922224060363602685734354972814317936153691758711031738635607202271386995494961201675976215159862860787958058217715505514451768536610036908596007085387868422376948910269266746284749283757672711223817105663840112728603433875318274988991378772448605405546169562778981368702372066092873985748259436200763881184548363268573677469984215833854469886406176040135104495749863832828299864385357975755471794248355743356741416920629129436639581549611905744411280699777132550412819657202338000866212391616654772203135789344212595529301020102577439890570742806548264788817638374699449433751976913270327296667830808709888256470045719828046674754932334110908257851908195552219093027148322814249569157469257015548375385761218048246429985153211076475319338819600160472450118811096441783025418705938426847703085272085193230736861526495476525195979912916393066463061533768546389851655069607962673791020069301323390748928063885308683624706261011578609441570252875733133224307344202579698457112515909892645008836361009735339065601748004611812749852141144791377420457933039084220469545671760810518678778801631709742300796134730976392613575950576662071412612243890279672601537864626353110547349014480505358233200358826865643086169442351589594124173643055263522448703998896894987924107713997303539814803185705702030829313413237352697045435339872872484562063551681342054480302449379835773070727039416177489289680101319205076628450453286250283697113614710141869463005953317625251954742958711115153926548392199270489107707728260519161809550171972248555080178852589922250764850755535667695437428704136093733206601750154372307270442871335375741337352567197718219282878998161758141203233673796486248997829097605878184555809781319908381367707616227489802820563642752004879279860291656074663242024064720161590611351775504401835305249257755550130227540559508896204028035053899497654567717408925558860301211846089222405078425505058785182917600128081561540755074143250254718391935927507809418719346526612444499014828080890878122165120251632429153879845249575088457115403943643217108049730463538768993373881963388873737887713470757967237460371535365057603590523262959630827609229370530124844754742580998758652191296058481479009482747177324073261378039491130793442335769992216707119683791843445320032028329619322157674115446898914088222460618520869601141816956646921225357132456627734572837115765491620390319257044038962718523750775144469757267105318153946295384641719535926106644406738668285665033453624497262310973100410446087926678618492595715392716375342400182341620760364277449395627398247516101255386014777892791833570313695630059396015733813956768054276710603192098327234617172593718846251902434432719755312803560965785901833229545949082054111150978024649606695650997710903844575186930957838199310274518527566571528285646554563039435867412617112773239753756501719336577382399723614812556169983121293913169249177702499576082029514394960832107652813594848171623181864443259853927386398269268578988504580234777821407297346776592486188107695967010100077250514463715269937764333128275923738778828799651189690984474442663266479241061666683830408874279539109792613186107698911333932098056029287418715817289669785502314661755296475821690649346275088444190655857528641597421917991735363685308505030172491337090192238118573339697612003350003669751373094654280679102463263809632063073484455036618693424423860875955558786584905728718555204372253336362254069935417593198904209594628171015284811951463778913710516052206670964859058703046079686829930416489792178148273631670601275610315890499714178964233958449948990845052887979085720777157870578707388365692894704127365970664274871714528200213347703780391110093822973393142153861124332343767081919556325467289239053075596854165620334437364077966678680337418003533920156515239263766272276978956111389085958133698010392107997702531777864446079781879288295856386550653292594136162869621055117563281401521717176323425109422317817600403101946233891770618151190768495751350457408772212984710289440817146510350061444270458267379571835632281152206728128645402469094688141263948961249556897209075765465958531487708680219361778842576223476003311966433546149999580851955219553253089837529643644785572310828126130311193297650636023159633904489430326407727605909850143420532698310860478879360494373028548985316512376031385888639177508843239021028150774503677346692024304160522530195880441944286463614441119594055115901900891718912000607408643142219561102078968883726891637996181029179277149896962195959004180499725650613103428263808916694648249837365140782695182874422329713488789013470499971113611262172823358826975323263634072448136508962894321065542352628438420732808924968560324823027316332653700838005573880879031031231244845663149285499355416461423183996113547592425509304144529619006865906414191206766326894146257179537198039198606635576658369063366180360122160952814931119894283366371183116240942139537297001930723693797482274625100746796822102344794850438268307337966940512292046430524776131989183398580042692391669519262577421829053646051408353058106792000062161618902078546413896848597864982363851728777610304379131452881556571862814518663304972070938976809946656012330673774413280893713196239185765304139051661736864417051682142261509644527227858194295360285511339599616696539781702183294662063899743888558268273150074500579436004645046006430927652135874665711939564786970309738525546780477861583687711793311648037413123353574344698380434512846556625166443580955306724938161850169952939494721910411238925689157629265051086237052023234125747574850630399579071798879732412831298071929723776204192023102199832133922683788077738078585097729278831541239381856596770781413808274794081737183547742792099976182790451749836959305947430708403068577453966920478881816698002351769833972205365874837988170717529717314913178489515118094616261753018256525684123677865591239289092479802033057348457583230940343831193830135014124583807693607879243057356250168226769934184603176792180488564401737601503529098945982478897065852595912851205741672060465055102851547279784236141080009983613754715102661795560335540771267304747438322639187364325517323268324214526605356139118544388008863687212005621553970602254733617253900611277581187834919272331941174478448411606617565120254726712793857208026811080701614145768970101613408064666579533029012990044288592988002929097864978253155644317185159139461503277982777494245724226828375276902420949549564017325859752521848302228948165328264383722047614666923785107729733576471843403123017464975355415909121513975196081416130057690430956101881002030511738736090390658414216668847966678452321499462375801690244285965026698264525247719274100045140616138989795769616259387073221611742412402334454134581660598569915076399920504181085089765707750652241277896541266074795003981877865882688111811267946710782068088352818486147221740945874901558904385214655455572149137923247402390925029623361387359896982377111410671962057316882246138590424283877179409041980281287905752570148482111413036600279780161911800256222973560928838137499977918817374261375171026954293415635595358496065190999012079613932655468955029291532228537214718069863173518402261148655638004955001844745817287388187396927127772655398119299413086187089796472484637324606653600110692900863891349349820842250137948644187546251025999559481587211375403270790112327316288692771162870760915303072007344201100440460932446630739961571097405510648229133691058823511592481744739328408952713519030001148594371382368627068478613558082543722464137969232152240007539074348590694755025150912398441468767061827753138554928797228837587005210422223928937341683775206401910368726563974846518816895470494320351135863022230808899249871191701929589288596411814408804801237787702528865569206265671320811039571741879941415403932455158116602474122271732956804532738732404927018304530326790318099910357043954290256421448246153888118547438008542784709879832424616428657943449206197415248331833261374466343103942339256071565688875075926066588159251116308307321270052514501242752670559481954921660719499564947972035821898197457497730337660120807409467089000220279916760778160366643238963059668136475579031682513043280243594295900006368961398167622150851463074556615283535083794583924114314071767365127772743219693365084353095128313044051493897834057870518347899971480970949281300690625657958108150987597022641126494031800449582875994689445691353340650357324128861189230880391993482872563499535179584733866087051145515448451062873033554634379432415629095607983783643403436545623575788926848998912439560601543138872554842202673642894360600336650813088093225851977965241792630838036676698987586329963394953218831981237090128614435729756537933143860606890536863923343842257994964800611292001594975145372752658259371583838361621256125763064394106305579541925738316453593367862154036196638365071660370106144518919493552502547833675330668176430445379436923359559430869897531617122039172157436397428760565025277487749824454100378351120218763802369667177227502557144250276699775826705103300991829722808989429075807532750158837043937243546851878054284932141154908580211524031387134769882370691142480995269157957679235765675974518790890610925110956144545913811536305575604676338163136599516629718834109508925598166802816320739424752042957919324189609514615064598800539809737541152752046714438848059474800853136352146992204965149285216374962524945713246030129663298922984749825272798190546014943455824308411320458974331982495004871417112583915203305508327182873230672674519899647220121136091735854748598814192605562123292374761689850986880015045100205807638370377634661100851667719676380203119909789415149599032805032532974744174090009467502296220756077424367891495394036647426083122283545860681743218226014246894591453689431488590608535367622882930580274656422316005235650010488796657488598397225350116024220421423341232232690613299999719377730316599195116743684405645090865705894672309031376567125527365048080219208416601942539478314591313471412077007711991063305509727919726780358517654663775657958131053717074666846660028644968608304573900577699676073677005677554989098952004909094546083156741594022814806635660465150404492470988710996562354906697553931607578836997705275943321801718581026057695961875721709574351271733223926206280015715888123195585128255350686141543789116509250518305620577285292085623747401759881531629383436952865807491248805247991591620860872754151282677546660784184139607262356167862452422582330325588576502044869966925621210094194804726283008249411692446071907980118348780736675025013325530928445780935766882801462255746547897643604679270571581892846107961155986442672790360474350819053638600696557328913650262364681413388549341198187403610445708421037534612547249027293079868854631804025354391713522928757908084484959960994935407504690257822428063584276202623335571494719731681531901821097526111885306139021242215734537754123832100642101254957808733882728534132751489214693704272227843110595465807160998301570329121663995232912283035114586175321585167869038349652404802998943005139123077577304663436528999039517670349295186603111038464554863368111357718958922792842438275512940680361060831747524083974268832367379566721326879289788548421685374344201532094191982488952549146694347496145371938051154919477518307644097528208672326572791477485149720331588507544998646505638161640818153479015339735785562863094959642393783411250987381835578743870130993743573835998973831672624661143894040101647704209853365581662762552153225102546141262945988142488562752713204319422689541183788511118731403779023929989757857139315597192695153698718827404958299362381407727670900494105152060692442515999585044036160765782422595406757313513758534103699343864076294145228386813667230875433789554075733423328330057933165443061515723891657746610973813725891370633968082331651617065202687999795990018448063545121611898376711563062240803425769176292378528223393242708296991206966387199319075160730508330200213752182591586926347554965371337078970354110469561575405622913287457569722016958743053252741743321912100676490843087010912320051552924029526316998405181293101886551354046461619655849106022675140069598374755874904211180310827189946541589551932996962887966436866174754916967012091020567319236650489464572187235737489336399016166676439424759961877304976801239731777591661979690894366903964209643740990199199239802023741233515297746249363901114256209045145240348025249871279411900274859983402277096367302968200842087071733181302700000938392406346383385163277265573640845057307267898031550791020953353697226301565441906819009848757240301532162895096415029906223407494071112106763413146413802671588401491533037113577613656878121606574350530924462190708004640890367392512340903008429697086201660935469424065161859628991334345350864708120164926835085246255177765538792254744798715624920537585780871707213913388109085949976606347930830506919610353764914892886427675040029684455975952913519337244387899282227246175896680965294547094898584480351468606034730703006365665755052628994534506456715446232283939150049916220325828640697094421866483359139626885803509076115644421815917998201831847855493179280744025507181989686799897646298536441010839233769370120037252904630637681284656368957297220572435973782540422248718437169510530691732239663415852971183383858216666643908961253858498579712382472829136715141787934269954135462189862739360744788872846626825444436621984515331071843696991781674814872731402846242356794543711693336101056063305674975832074754598895230103981558942309490044146709612424912407863485369716986012934992876416656538423829416245786833330757974376646442684174248968675626617199311091837567599036383380972424905652005844004958195459835232047207395331965428752738981941528462017786144048238970051195727269113846647146229267401164997590349165040198619296944483028604597337181301215562261874511929228713540047394877092199436610297432442042256077381463202042189030308270086037625925717316458530242848955610051443782169573907370468160247763702300376173094108884412471911465132504056660816117398745032118688774309938898007261829498488243500618667084935910238691072258254818081477397155876605710976658229902031000810666986094985724155317398895881302371220582912122735345767607595925576806373550024972607728516134286194214703940540756640578226788056649084609027412761182351929031804307860626986415548066347184363813586342358440178188640316826573628045343413928701634383352135674084815003496315292988972466163852619757676717852766537852773662558851486101844760573636387721593926355067844777316482743627542419072032501800252674662323852807243489905607391437717511016295176813990360665851614472230690619644618135143009166390816863355480043721620494511534840180900559157190470984440821727525161733935196881332996771448400841952990984938985956180834709488860698710133214495118890836768705603477059881522847422665661104869398246257082009723916459702606934772587641166940806583737267651563688242329017499238575009891195517732781061136035889990469501894354031653391338041150394088452586607984768913850547186955784403666412945376188431098865956250435326472490736833946193249841946102920482635008956770795919256104782183713004069344480992789066902678983718230415507714319679388173561853691762835467966768188915473442100991456502097305978402224890400758341888780866999978161506209583484835771888082984305767695291475342267240820256685892435923756156908041717677340459358864439601653258036944664236840857018249565304797524603292354401131085651568607549177293963734421685478244744798103442086543223914550088678896334970350109665741674154079861962363799730264038755501090225786773371370699762665852194276567880669594906229702032683763555186929380359107512324444465465604985355785587323151158165679696449824497965138051320664746093542715192569858120707616219018725725547709781577964039807993882234729992101449145830486986444164240436401638427155847089313912208186134291469239687578818979820417280444711290383934980290845116644674718674782084426003210654255741921190434115365486713362218859831208769521843837353579020892539211153779770327523214784389015162703987353719165090803455028319153178282312827996255369596960716448495421401917774612552693335912002923464387404878892634016705732085187424535516531697687999226695552168859075054631992032174256539574789353857508348290500701176825170510452531326223125228595602156523959520003804566208853791664660610653973317941752363067124621003156805440590318972996768920251781522622953778144202371626582546343981764753870773315821394009146687938496172629186608338190633135433675886621367439016328511869541278312006009987194473993502544899870159187876479142095692616802284540126974787106444607275120317051063107093654513821903934031053544829377676539109827714825846651764276556607812141144012800125942433470619809219703126002960182081152640569006564013312542354654451881056217599845406096056838551579270454210567620552609201908941750468341153318817042658109518481654172040589292420699260703551354625441846736632427360466835706002852687141673654688936107428458796999417596988454424753771903458080419781558773084848362748698991538094938937028227722987198519013181336444837606246833199990579429940527792008084388960139431877155637824649490842100596354565430220208436757219211995300402505841117126753410714649041474425768564281799075620530159160331619936293185486113017351928207159592055317601915886727817717953016044215950664003807190405903619184343109507954679763959297465788415825292549739209609354592701663360649164813589547215215796656123974441774109854468163909040996743551977782387480090116968529642643593938844555310457594048840203028881649355646651320900501108697926466958763211696178680850644510291601758440606004050642782613919121892000067968325112662624417599105404007187337602789691644054678016602866251121957479020488921122378221262598119759903731267118457008827317780893527122700809913828309239043047154235214622057101169866940697330544407318925575876908853804209268015225611854418355934760775875173354546216822586976153048960758285431374370211674632125732158090228189525570204327239680711167147229864015035984110364166158171319079078057540152264901070186006427597681585192719849717911332123832529109917286064664764046405276612576182180128047700091742698976649745814544016366256257012711902523268311045356033832704574990905500376266854517929858416184595930506162541375015374729177945035830185462662073652038659444312343306827406982315267909153261127076917624748073369788257884413430039181060287492388259512372120186392890001774879354595903939212292454804633571989843521989359924361305214519559845066315532849450578765827971527812834136967976871954101346105861911466516517707640141061065639720843372918245058474281588196784976057429140493634464387417455467613792913320148433025871318541668444756220599006838620696192176965241358093551428773765394825217091314564033335393670073976331593012677454311556762710100870529490600856577005873673175899521606984518713317288982209974204945335610149154192954863551487083810137248194759464196677713570214214271672063455959753098953525778657923186197573616556325357083936826360586608965937559689395318000245907809024416073322171762605860903596375754832694243688757563682057212881921289492915471568492670247664931038412565635127683397052074199853506084237342696172431028459069540339761777419772898405734330248988560709960049970786727734972709366679057594271968094267835462080606237274631935169444317934163873913817712885778542843358573449655780769191528784454241743771930387530173455355759534216624192086055946822795374011023761038099004174950933924854014861795709454989060157123315866753019246346334293502549563242456288741468901388977987294830999863690631170529567606903096307614836197696175280804540048335518340732628028832125272455666690944409065496862481215148083414389298648678633038159141953439205483095366905648346167415884627269460142786562820585911628363948515986767596570226861110414814526581775388365491848798989637025650986184087104540151770278138398378901412578641719089845281898700504170294878343899506415894871184672885163016508980405731787995443786800278633852078329539957703027607502610313256004750572749136295944851192234306620663644208185096299830973577225454954960221530652591386735473050135034681657769929561937792163301617140551334772553179432829836061347459796495409160030230799073140653005345401640001586788806356320680300605256023292211816861101210950140903983565047279369560276272800449771533554072156428843057183574769314647311644804744696668358491371466021809768439814367558515137387576562020924307067396797534624390049366013551330138155874019726588216594029000475261421633050508025334321085225785778680598045946704607632088201430310665928106810411572252425142453016865016312437466539836819907776899246551309497650460553714115911489032846380579510120399912644051139350089088275784448460048064238416556817486545483942999645225596191494343583860272758639730747511996865936916404590043334213343713577637309779987400819038593582343639143644162436473467603900849371763145671596260159787436677796959922290918152778289932950190677501771082422352540155622003971418496226051437536578195429342354629168327297758817893211639026012224896795534642383924545630363547777166250070979726961138434163863829008512607553893918687299155255328543823067443747647906238354680895730342526954376162375356833997077049985227896942639481451099649646804128815760697322312744937684321889394700448055191544731204249996944275109848387195020799895553906307816616114636718542437135019199142455130700581863563434990162671063993460248549648149802381326272795297626642290268907762193553753793240493513761035099317974957198142758310588434954222703183739312102828475006174024030006950506097522072212037263611207801088909547447360168799171389552028246340824992497009630432355234145136154570641389689001402617314545415519176904191487986902386372794217509122341017107160982415740586204326401472219755341052757634787706735930034738998973970612929016884915020852937256617232169978040809839575864842893873699958485288038662174856120378484658088253135365523911811570052683079109470955737390945084870513645317308002338655668788211979127718196709174682240578140044986959294524748119070944319750280925399379240522361614206911826098620184812934218813273764019857300821441412463379560474405847049735377323027942164102341736229922257572143409525109663461105750188344476694609763338554767875500533974254298382419872046991428695073002297083736930840041345720621687960766760937545695738275612463568316925346438789929191118354349207173730971760463711294783631230350405706515959607439133021869259603433472433175789467288308125490006571802794511226011488698382871871846161076112908032787449330039879697473866299223759863935317583006933097402672453234861045832131682774047460360774449856130376696417407040600573005958460400876360392676208695713747238034964720825084320546669982290262303429681548091801851134218439324967984697675557350344134977776300705752550465749287214347990267028389335251130742593677608003285373487192668529030819318209038946817581790237952042783605567192455089462245798810313759430760940739164417724685434055511529340576311117652318570347559876963720246447526979876340363957375610450278227057794346554481788786591684963809636582696589708463496307225057234674175497720482891671422512767659597552958773227126604429082469111434877864928896172955062911951557432492599603144352907596524915348819851718965776882586699069028180527840447614566747702031158855317312289834676415847876003159497812919154612838667322887575833710877557526569807679582092452144852228496477322524403611500027322080353135952654380531782064780539326739653915408504523000100486145823007181420994930613910227539403220558484905112339084558298314542949899894698412515618149563656546977205781863303686071522666563440249142024332257046810180022564704744169226485144618426018837946860471063273100675924748742066794895451142265205688090605524009919588065111795086756771339565552913341445610535750367933192119884364288806559693701938895978179138314747808830848242051147166579323309906206726331333543867372554828773408524977607913208576525316482839373667157334279503351091935849668960309606624806359890809129824071402304028992884101650514822824393156926416132464651169658379875414957374262496917661804433777762430432298840678387298696668275804935591707851112178671550743979868118267309498238625558375830733261757403100002747281978309008102556505674698022559119335402840960059672851662901676015178169500957893587510916388943682883935663862939992985326569575117613668058463011685181238609544139878144389801535706201062750487691084507578306776731442366497830124058371911385937949685377995805588691506458438956780249714741954297433169950348285222007432868774273504846221750896544187712649488213016193033574129354958133550226847875503522423052190352642959664986973165895052357407971215754102892492125252855568753926387851277397154203905924259517578454814574617339453266546009150181255021537672362773847141765930096244723053315635986585169526645947968061455975585315410466981907847673153387221993629641441523725539690847229068240655392912705605452927231168368769490024522075990446662344908178163904308048720194290191696214718065075114810053796970599260349237480545770834226879690443179688814664625510472005592626464358493142782944543545303466575374318362349418199107324042123141359641340231676016056289296866081490336661788934278906620599072937571379832272632584251763807765275314151819732852762462618988330101739483854063785738532153964719313790649084998071847158040110216404303222116174326473209452974204121530767125558037913833172611632765676124872763349420685758167929668732225529373044538206382341443592514042297287129817291441962383469615939146723241235469649341572747579961144387197050714024335752037747354390249772332581223920271263962927479688278234237365019726767455947221400285172158104223133840207057342912223525594318977274005578846635915749217807402184717665106296581489451911998243344966452043002139302772024361794791981435155625072765687531335336634268656808233113311030571565931679785400184725152088898239586664032997003485570720871451986353832219730771767038213565595888032818016184443618661292761398366615802185537885358113585728754851890979247165376493540623136453896686871505085683735893021628026861938548020593530297564271419502866806304007200284076890779057164527909227791303430344137390136986036417983445671592280746520081934581783806344039455159371439087905909549379231208902334540090329078254859278797828161713565303146367599359308938065084580054590659137234101951985814530915642772825774233170867716337913119270391838245564692919058473765090641873249856899072108235746104731953218771958046643165467035054739399677922071438418244080511824020906806169441821155807527250282947864618230726254789815493458121234094812525357033442476817101236375282996872182278239793758421813266487768130453226478618575654899148825170457689371112718016370153953696651909606013770084972642215932809792165301111990055948754602011281821405280024835496108206726735020340331156919067826891799621251220457119944779292617385773182596258759053514700734704632042020231896301355132110087530329306959741834547719418703900201011454705104679212804180833550033011502717746088815625736197429078202539995921510879405086572339095132154149347127996311504979612302846130386362013320952787005510083937813576613049780940520363372473061178601982138605516998061995902651244415197946905912001050945007574434648001627757067318288360045844443888235938650014897171458697762400844041021818154581156256606613117451898244144145557612083875345698368603193949745247006081245968060568903251832565560799258811432635850462845019034358649736769639604625238847359834879382900204775224283422018905330650349527524079259812170752983619071894357764182851276836370953595749081306250359922262740106140505135021328471640959719168993031627911506910866099337067726764363714078429791963809158654791230150436138966072529917367575246881465956327682231948904996184343965163829638616829439108852927185287960104948260454553520844256282595487501556518088773154695079641405027848273318048438289109277983138520181489991504486137031705371294022896682448891542533520323458391283245108025781638929513558314559522790635997395684774638876998477360258189514890366134436986978471468990005354659953075757340275965630611877794165198245624737903126132413674802267192756336448833124239885691134072180017449259611088527315206394478356026087166400931490407330282403598455186193044339264982396353133263349635263170896122944873813209613740244040081644149522928326395312152658960785351016519206106097043092715532004854134204290720726107229699478003509427071944107044604435825932378336035264036174385030837217058448638619169526993222256494986425820310732920748348300428327762864587486917961400375919003441315399439729201291944762317839100448901984122405562167978706952273583695621246393699788945141614069833339664752843734800084321820864615007320670609206875012269783957357821609213321872348050952690328710762085594179760701461613801501988569473300137647665872167537686773155550185038485909462616236316930868742607255747571620811526486881242311158428517904244048531083454913743996428041103434652988192224228913853020358233235409932404481448313082337910777792867598289905922283924004057801663700746248699136196745140111087191947706259023057474863060471634955253669477890884119017591040643571016047250836011396478710433114075699366548974681589911858194649091445789172423631345327263533082271642056804102616764167009658912585437140106000350841698761057310315530225989846611506081473049728949933918458250601488582649608991622821577186124224356189800490573741584866660385448623854412102844540073059680788884076327202918508822613434346407671780658387486588616986021725847466100287791104899298086862068571684475374105030431818385008235298141211802380203968266364434388647322746652224605441495242528188310877602473310796772726270667734560150311776389438947135246397899229606452382931215857481265008459776430396137048221521128175127266889488917325961653202301378346724966469643284575067281181346417541369179175169100447059182619456240477775001466133409715846861546254713720658432711903957000520744659882548071391519476263596812473863856046098242828538082464484003150431041163765866871111427322713933960323670200397844755512604020614169645944870030431125581327320347722670396513515154784298830413936091409909553446313427523997258443600440002382643206070152204700235351678513914992199053675375863108820485526569893510044132731447071849524777337797172082592914762680338130575030261298651214134509181342446811525141944004653752224390605597270904602895368530728425459522792736489867272950555276252399770686072785096548983803074325742179229271468052717300221785238334418547479156725684685118434603856628843025290403972401374133648491028005592271578254339907570935931176330600160549254775375680391173749632517446995163255679043382942349342010268208017214454696834590174291998614036189049500779788291171829211164861763460710024858315424855548199550647058657781487100929784364496368809787963625915859062232815472496911687951401643346143842884792192384422477529399409657031520575185455295666714390255783575241983183462688494444174821874392059480583638167115831104382222521200160975380943220097664864150815757898967953108815624284916377232236581883622606854887212169348045882009533694706146238346112507106626717655872759506544677017685258170858775926352313069028615274398802066308156617110646964810417032729433322199963683194951702777961765564489223144314504823818774903808775007147511087645928724523744937025003917322978168358954436705623681820194766057195655827253818942153507494041880254457680976379691874946512936879989031668946523743942683594624335707172905736815884050153365130286710527303867195762569353714067788891387976789478841255554947827266746411989407588126431228486004349429384368644267116316356297457514768114018529801500271874698820029982861954058348431202284710839323179186083051144052328286767744510183770940819839679614272309094809566492035896443789055986291133730711579866768673512416358576759475062890280937116243274584086228639804422353353140337279375483308229899910654065924049445957622404409865537286424391325057089237199484185575213239809732180573089337339002935274512251642868446306107832889098408597446875383613144636076131677954108737769922185577330454617264113024694177555357824054605842983568948162872718072761574127217037790978893738345989123209137779240155373246629131808408555146943129350641825018767660815535297409722688981260943659774162539596373877066986922271603925594159679573685701845167515423519646397578360897391669070064419725548564579658492655128492730791722689489153687190529756041052002452672327499202318865368949636941671217826968028175164997558605000202878132127914202957036489999594284559982230140107723623312350780113049219515524048066873206059551600141283505436542997853874294826219928890162785875219935929220325428911675174785915494694391845803618191752221018348527726754462541860988159566140130599349889628510994264453223989021446171212806813309074337300641494255608735291828057786709024683497549680671110398749742181426807767302375048024263543618787696669172290510471725733406269128528790552091819739960565375918297212478797467370038054524611829997582667043713346943140988260986261030483090951874288977023407665646231339265221142038552879307821404321509983872731021425742841207026094420992034246586924227050964406138798764023340200224362509098528801809336113626250657099643555365020538931128749042008584216486978485161831887563086055528536556344194519935493711687253104174744166828495686524885979216570996903289224820799593633756577808426797706458807534065143832246486089960054303202017898093125781277168945187567187117362957206441751641325402053185705347020344557138836006067144854904907475574084990538330139371574110509646995384877518655671017784215864718762685633770769826970411202367850664847346403306457748356593335177589729308939577925751860744781804821094923875572011195832737705782130959837882489597762966207850462956179752026717201288104509983836592429066253272393364146049229869447188706271429446496326129760769321986348354987486254255640785541023700124812845490835349451320020380449234459960090097110648366024512456312248113832790842940980219304811643471910674793300828938429296228896618077176932821706527139135282378254719577181396294707518258666780793329392918410786774854156477055368438704606006351542877605382491464916767416474837338875889180700401444926311668221785087691954216318980626701149256939775454736874862415349589889798080481609963736058908482285593188092412167992096527037854383111698342269163555175828171032360556817593938094593238603514845103649678630029848545055348660655455283039108392694331823506378975966145766065513046687370657814752214664262510126794671345230562490988573299726824412510006936831714683532706165030616704512494532060178667984977718607242085159594310815943369087688274421460682204030992958485693677354624587344063061286144872170849126668060592095591542058255136593931474458290480014108033342127908119105081930551607189565624910876752252450613928956170985947089000487849372041244773692114202866071793688527262258661630194197645436196713835723247473532576693703097376723333458238783608615918826073264256301339797521262257987291702968536276342579402622685782540746979368510420423561239284215449538234835690489247003180456596053104750885189123998667886524292950499525685461733882517828239274781035984117787921657563148455200345783982932181906939522426818805247294527474521382431388544625855423744473160371084619076372145055667280016869580962832850698875821739098324734168528149636988599910513570821498393777434471201004726649658513294100668591558099343821586811229642267461462939579497439261228311372201616442858255339460076485631001568440265213049783885227695959094960556382881634638287090436761082281125253403126293939576736102804809326569883808886472901862627134542965241761379379426605570395845992046430364397563698712537438281152012798996876709444573080866107959027758108760959896998599366332278454160074742548670746954011144511160897150646253029909853586316437537765821251484702121009515505734264433892719768224023898532710873328707776304051935160372653924351844539426599968842282441817312677340143051046403342077381135682011867012179288482731002581237567777118423334180669360766861745012216965333131948753703150714661287366335278819498626207240669626608463330726542499838678234303448688133247619431065449792147303460206373186001516788144801829831741988817097700964774348945809102080307823525500214229239828671127938568658709456751719063954511799325658682567714314401555845786252497174262001385784242635892999877138913221643871432615543529161160203179647257750339351621317374908792010591716944704289614574391045852366413296512848278507338450662595748876143509311885120048294961224849267842040996059224557608616952404747086432037521072674862513498289082260763801709376313803236734540237507758488408204563775423946703837093797733808404249110658631765707098924178770402673080901946766358546326840055517116877622622650902134376291201183158501837780686315543389190484317551119091112056696361902999733893515222173711369273583615637337384226034062835684425847066111911888887783548572877992683633637819651155329912200150056906722850697822107096735573785846856216596999000600526496937080106183616193488703943949777444849833806661539001299286266066937782980262854092519305330857012986011154367285334771947780532437026253138588373226937258900994204586225897635981015400214047181810728906815389466882567690332824786296514441105629992068269647369734335493633987496927522731607873224409053078698480373502518963605337091048906308627693230573154071948100677775541631279371203846329023745604724453443375211068201905334100731926214422527017926426483138741772877591539128522349054910336786266878757668216005094055516382046008029084900517517383454779403561575255935500663759094567176469402917405024875948580386095726241383643520214604895831152340706000647213467769578153952734194326448465664372661046465575321168050802255296644393191205633733724163300737590152118761661581127157438380193717221114562309582041156838747105428588585231359631938423809783135568917363666938248568141736096744998585723557236318790325759119998369775632215896334997089682030983343122428570297258775854170048199905293649536547646513187999689656114276928789575712307645778466940128030507421927132960181165632516885321920343191756702432751325698372144510767919041884391257261298873817630762187601836765075554739064073337025621074579304285567508896259743421700243838824647499223445971764951152317743086459039984324941777920690990175659731840291685000099673486589565777465510119528272906035608770193632777263968715180174044747574001722771176488934564726499595563664616296984097267005605520125733204644472897846621074735528936919137999238700314087767424205592735900172746061171387894377217366236637356376566885420730517661412244445822436965365485866376435201305208232570795620798262626801795579671237647623029886171148684698745894420761053332096171156628474900686581791732674106114682097595890571213254633721633389100601700762702036364121267636844877929887278498075320113212733501624568086603325154875736648867924515740309620897412763242249946142291894402255389237067677088975868249569170881564785352849125382669588966461726144159459680105085400959446804087536199002103502285091935072926654373708111549784058352417677027485225187639004963366053137185845251205395537696080502587684115126275595891722342751024268879899248345416655665710843720365805340426291560820126334282057513098089305624489420895449002031807545258337280501643441356349003388245977396965334420049591531262621655743956122203028037992041533650049273017958266678956523291897348713475282003382494650878689590115302388921697665377966090390161511082548597872582048798568339783516588568816798129439443863903765146815207357346535691680239502380245788589768277864186606262516658132697918952512191671408323701676077457898617816415919618226104189971487808451171252818784072125282532202659772363804496542963976352465123948284515673833474671532125830265686494786535596845928799532572207048030854568414991186613305110090600014868621064856683011546962285890223277235466054996278450042061714535874230997113309944391146658283025942884493285653971154399515020064279886561370044604093438416177569992555349752644461012484711226194776150597095508819821274226226507682672285061312648841313021739754636699635604334632714512558860005073452646999831538601149258019454433714077751092566880005115497340885462907619957814031645866536184170523505782197503582412034729465648734883249067544533574134873082706911186978873174901020288557719563477393527677789420713399364461975083725486157629711439543586359786612344469805302763496680134503305067050325476483507288538531106558406798259276475069772258761491556580126410520192869539868798089843120543740388448371507556614590841821434858325531105319947725198367643055639537345672636774424902239037250283550581620795411783752839351396061880922479284056531877676833553453778582325255366608398573192546841712448208305278905488320467821341283475037854401746594510702870852942006925746283434122628822485350770431738472131112475999645316925864438683349082524480715543085585855550860569808692671584341780986411831725146675076688637891507312281737149365211134435701852894626325009454309111546445996324477453157844968289815768164728770800057977861654687760273241038337742024656145347534495046090377790162475004286432624447505867784375810188917585278664108910103734833252261819099710642216514260630422964245423462440398299139170402849668008317570846771440109041746209540898623267271128515617090305147738919770706056380873762587917773699269633428873719219828520976817447843131677769701590365754457198462894333169398620270143129941961637109249698609386487242522532819904318177462287246873361287115918149950157085686343809147759028960996224475604975258708620639438657935304739974830981498282604401583916465395134081299512857341050998703388840281055139307168300573797305771657456339421862924148644685294412006102536121296389801341541153535659212353004080697928168794318152409295272574514375300944873133791329304331155269977024539542403316553554634744162773954352036427732554011072411172583808214192478615505608484351348454396534528772914944168256283416834835461189247012581017833162366579138011284185532023793593437805097643913706938726850296239038093864891835515510097789963651181770670456624168676225050505045612555186118310211947246777042942913437464658982009238667974098116894864317748879690900596569326709159044011530077328392813507875091436003766258260756992507536368816248990562268034668673404019021319680023221340426496008472678889860672644013407795372452314655869313045602360749420182799082335867516050853910689110521240939816273478619371304452104608446752859344319263715408669317938571157474945638297063511836041157693406866717698819400080507457574018155124846757081696675343951349885391168104737321430880289148981773590956780118688548873805678413244605828469583427293065749106679589338910756881218443370874263962763921802371848625447977589080234853189273634421926389141996674996823903222635472425665810421406860287763418060021728093771858305247166505095408937460926823133575134740140357881072011916006388804987067058327886968672665891384201983121974030556256506973720025278282536050436463724880025138825339686215924364168927578261406364817604398614755856898788868687346275974658742355633890118727119196125526657523080064752650758573442392406822498474189689631976804157950572209802648578291052620694348701167225153485004673278533456840634411955091041266245276115688423219069495443875288689556996377707608805941058104700654175839798596028266219907578981383274354071924137595516048980096467564607472103780249136257738667586667932545868402968791360358276662562793353708570527786016461728717887455166835169200221028038217085226596396328716932748093698308426947965073174660793660490361328173617765586775641822744048740803018247374717595132248701148760222571387306760443971906646774414437175873491591960367053676229513318604305681026010794198804734456052778742287118322175922196599407849386012999919903562174059194689939119652208067696322229451931282654298479575546656190635322662113108750088533598181435215966854681441323744422147844220757050846335421897703583569926511031827239016366739457556452409399197000482864528005311520270353445960426390019845177964496093275358063120397926040486095394462151501057561248723104673436334541932356080474875949193871621942699888355789879270577354272974259916591958060311525468387577381478271608155669443259573532061711922352649914234001409812911093705101072355673309211577594143874301968680595815400150177257954571122468469804157130063519506352339444093048551549284278482484906048454802627237293625139073289453613393958853187794098307516917598869921692914981591759331214495899695449740575508361215732636714874943324283797185963687195689863609340704882632671110860514600988916630996109706066448546171452617551856147696833266423810395525377841137059430808552322185502148596613715387585691051516721688052208925777746365007191849110755881828667393012765438865114143575886953654530292119493944446076541839984869962708803638100046515648621596085881888386709237995014508590130241603505314702404929754104965596640175619292271471431339105485935452626948119771238702808416524425987872804102835770853392551518949695476584203299808104517254189226585806364832557740153450073798337589998462526990924032278107295293842582582617614976626156162875729135407395658828813070092289644660808090402298880342810226770318293888433556642419490765303633008647496875511725880758380836655929543755323495261595550407633768464716199098554554596262739337228261765149453278587508111393359644868038650977694912980332285576423295777982074018917970468171511812967694892963346429679561026905613855485463835062251521606248495837869504710176329996442233443543548470091316644681319817414529818384309454789892297694590342928436092083768416656330146888109577340204214642648916988764126524378108968217833637605228137252704635597688845713518645301625586994070035263606665909957342078502346199161128327983159559833123844568335515857485281996349491388951386438831729089682142617449713385805488026451398799220582115365292357029499842307560186286124953113602288113810291792930633953940146013221291322194069948474824416721961308511733243008371538129688816070895321786173848835788476924527321588623040711122927269249806363214672433306215463918197278803999278086406316451481329430672080506641855231459255188309424189564388020716423738751096102316709686249233614996185330833933892227847480907548629355118744102611685573726196808104600182736344493403240579167396153438907486489269146761010378305482986589563570062927144057669143177812113796314835272625839297844631257083870220887705353512560919109039531048110491413759753541104955956261968130828046767124181398553737178557481380677848837925002338477835977956241985476884227899067546969322413816173714893813139312535591960270887634637316824735469523575705578442338043128576498525967938842570140210396779267140077012565823794284088883481993876863837607548986173080781768287708973388196587049210504932526217127113391851219744455023130814680869492733591449954568312289913262675589390419050063197759048843779621582530599741276557234543865936894745922033601528587219678487090342094861720762536163539615965794816884366346768473639049605217230114728806555268606340610057126651383792043422694016444894637492481847246836502054628193128346085550436565766580798274255030051680838026918431764534552561453164107096260559861420041352742018228275377384580431846297679583056869488731169118165256516709895311554652888115098108729275271719603545239878223105885544716456556366059613451951386733245572421771235237012418987146182032613667139173532683878259388964385757802259621964755973277278620688745732256874455708115977181628258240663360283603516973456176455429136086570433101276716745330693010836129895521441735637640603838388446577713533053895730677300272296487590752930193085254853723959329039196645421470494735848284336985059352798717519844015032964610615904181219202157977294474029574451066772619939838231263927251554024587110085088615935934735590385396727850327921722964909563653402142711058459245866850558230741206018545837135096573015411156628819153325986052495820834883169411707001293688076857715353541519563588360465703500788009215010332225303749689250484686492341283842251802182988297531514514925802107913097600905045956687212977034695055212092199210076909586440966978405113847411665127151568002057768723910205976735564500570163422426473323578367173792764393214044975929255095071607168588038380111334626785825674638375563494205459518603971179053604341873483549799408582660263840200080212967082886972616165461157173090324032502381264490476031429263542800424143119523428038086870577188974627516529642117823939586065512998805609787394446081576792071084414439696933359205934619945482658879001816096196537807791692602128343580985085350578674804197591677353016069578476271189406540327405625441741790530367262442330670505558004917860098771690187281596622450179078510948777028709025804914847819478686560542662015849344112666763546726651899920880733871512702380657651164219831433840301363380210903048738838451938725587069943172393873169344653798238144694442509266298412981052321969912609488110837131487267290928410984995455196160648185883528422622171237869132076509108766022905978621541489453895361517881802466038655901420913705492702575048329372856080230594390822963438501266108698893133821316210075739704768838517587143662331043077153999002603436324736639219183591298801171957493534342996075671230625863745729291014330339743427099147224983614597498813078677896718661513434875704724026647359940421997057775287877202957947913501819159852444336262805335983618721452501777794357474721236544594876452517956603642358722902025605999603029940763006674087582031618688530196734521795892394875009996874830045488144449031452042330318760802495070021908872117676503542617200991081161805834925778907821784791691449733437093123352382251303478619114344538303851066664401027852453201902607429390695508555419575886809893024227573459132725343508212295526621440476196371488395933100386460241315095622430956699121707349611117324225864893142352103977425476089061196777380260465792460956078196065541662726471641405058024011274611820825987917562325601910034669566097333941528244182600312965831220757885734436977707683668526779269418516213701453582297004288862958712903236059694795047312507623459777738743658502540890441598815030870200274344750758975348721624360818464949567429808045053512529302368337640562123693970679271271137785741285384409729133123892506847480740307316937824039332445518453372850459315873743475981193952239971828321864468453032966352414195595143153061925440486534535225122146177411870205168664260975336906883100238542452130382636397387723590915698397904981403322522886644571300409635599056195649818532684565786816870076771365484077820884576724127018986672520107587575510490649510498888042398822474191881202559400673406621374323723225121852086233708200716704194537527826460069231957671097605154268447386415387148837041548132758830282822031688592422493791526918582391555710276846304105647531990273548403493056985369701550614494513153050595202925820956637952186542909415755671340761340408450418159106931136998185169096401571217452910081689862727512005183628107615677093396128568293537698603670231137900780572589244001733861038255286816712504487541508788929835250826316180222464865472223202029185164944367364580521766713909125169997348239989750594497792476713380011609309519651680007192738504639809573071826038960941235340610184865154284400034946585430800586194291273482914562686171992162553196582446418461440513842111675175605636743202319826156148498724717476646328425319839306238746976982017763741665160437746260046204616085936874557811639271978617120552290642754168105964422387794470978394200402551101550297705196309171410710019111081194400981587453119923751008207785494322155872308365059258985518878805310771152471618952642797516009661736057340595492211832311999067436657942988400940632657739974350662544619394477079144639731547888357106241532035784694521248109029026299859307199230562038532556665105321688927357638934590168762687549089409158881416712389862584408062826893638415275321685989618805303128997863115230125684791658525610089064488928640578177946017661982848549868531143205672694263339140811773180404851788187815494476223706025435662203116356261516647696217033787034340078936382913435740584892820744424377883637399459735581578655364415387595798529515502527309837755799872188903049096489723339224914192549532998369197427541985228384097096016941064741193595595871326460851580902563150390995741468641926467456257042061297680936879872355518472333937757811129989101627893113272923263557521187136654923076593299705619528252912375929156256826445705465309272613794636294023714259560580241696282119190942915303828614273454635576021572409724511276141303519365274066613785933853972422495492774902319026929274974211571065045832166897680641787067234490369833547910687732280161838725081423827973441431464747564533481854459819365587792533166262242593517871162162914283851356894523976466651686836912432178130694000267946383830501027155449943957830338950614093868623498418764781523990235621890709850992222004785242109914212728950054347624640781047553980322672296401827867071536432850519323122191939054572412968727157777460622468190098450787193094690929912848997766318385571871778954633857625285445056665999499640132121756932352934090016751979293703203268442038381448473663659668328898525204843271173716110601757736281023920927285211190028773319333367112662906286945544569704620431080992758722627412244282084568281086517572477707725086353281325089893176782077109304718726312819900503206554969599154795059297697107943784674659805784737758549262855895134603113487301579626119194727009262962014381667335105587824809156298142886467312310100177251708155483406526606961840086657019036912233767045982334928510456001884324921654021149332467814136475861937151839841711467734519471181951513646732417794583223746827232483744645667283915265182250413206410976644859214750305535786315464576775472435943910600553774605182241279281185523996913347818970263512831653638442642370828357598238959078593354741596853715655770631358660559943131293052830614969506273178009478031541957924042374106476817965788833947488167834840248523478619576969562665961852006377087619479285574730229480039932911311067727232496565120626603512098543315230958408795182262631368697821929109439451302690318399807349955534866174317707732609398456414366953865593615503157343489584082178894178680136371446724284357675024919752307327374514997104580849936143611748366983775961587658752030721668754855726220212285907955812911495288720420094771049457722276372269762912436995359941908045522750270855651294883852809966569174350318022672543896165646046820136626388053258163137325249478317776667811820974845875068519371399268115823336069604415692843929062482204200647106900977084442938520480135315369098026860902718719936820097690823960788670773044487755135759512343633716394457557179429606681879251864170035488818040081303732980341977083395344805951527568542244749422072206487095921991619767153797854093022810378818043253652293876024203705472824668891271355555780472142954720257710290326821908219172865156375385150665424012328280132020612687912342222243585131658066330018552227195831908667208309881342032036524562376194752449542038645140021922095923507817683127444413556307669476709559259236341250451037190349902670572880574165310798689415279503624724343788554844332467462169656029252301990386822738808865995764868469646064781785070731886518769002545921779677138344159381194021144564213505196013349530219405516951735002834853796626962290731428290176217723717719541922505531196040594660572100138674819955785617708398740133828073343598721771186217168631403611269821865528236222264626858012079053435252238207342370762352775833567505782226537140262626538903449293799554090694327623912808811589506716755557916606164686091338316861547311521619826735241802308647420971617790537590063115320943716228962088205729763902351795047115865417578240184594222461179187830211102577667854290166830015687941506815340699690322084348233292070554670378955625491730524745386665711942647017659887039319584269489291738313434942100480663490344093371693891718463537497168457802240820546284532069624103231914610923412138899577113844721034078157461274990986862838403273286216333831040426300195684724305780163495488133586126460436740332499623666875730240316143102803158327352914223892496180589350784209387892428514937701567729629071885428779198664005254149680295442706958324296463333785235402541283192408415764875387602121792857802313334562698164501551534374319255427364964803440823796076676300583560455377113823548321411469925828979786140664260693307235187280257924514181911847461191026247975917841141251903296023421338841503289048501593065196745482912551837924842748011418224385943480215934036248383023773400199600845025246936259682774117955521359863046278739009437628718636491446717607438389093167557752772936952696122264363148586260753436267839198492456121990629555428561872674108878119996171359364709062942000939742842422575827048715101590039400682296640130657792605889323289521359498446562567632537544385833883393096596399959399441998861209110132088070752534487530034744620789006395272766682366104261937570142299581873325559619259368672073901918671377635915457443774621970414487031657645054328782331911023172911369335849643586746068514366940662601491158032664180024766198587309091520562420160416092019356587566219617421916839220710384326776397363350294109840840499762582694750847165261991621598516553007943649530475208846991179959119085059256750951202321041047230158666689281308600048502450284835465240468843888229647680292838610902070506094978830908325312251742489912271711418246006962510722475137121691341912046581071657666453696107608839776492044949411156219744148725709198046669989173544189560210322582064820708431819225192787703212113269159726427415158301005850951871925137407587604511640541992847511719085627714322245740844474830555493811305077978876433301971327189734246267824425195352882716239521500946496444125949531705573445966664188937010425899955705291491276451263608339295571715571312868034439768717591880036332591677244554484487273522603124202213506609276997764337840448259344945910996203223049752209702373214951582937293326966980019515773936263069062397796912069161249509564937374478199022183840555147842458838693665048640549208780005863918659934336192204676367146842891878755140927328547405892743747668077629705707128040511512059187391561543106214702716317105482624301348740201499329618132071144915457282690356666025727070704681907196391965306704968718572927703330448107842930360902999266788839377167459497197390412168779145723651240272062733127051928479476115643419960934882745640524003147562462141657707621951776502042255558850111715507635169318036170824797224906000313321917792473206833536936949310568373699878466274553321411247744566208901109488399208696548226032567592294089344666482636908773011987546990225821852135887489571315954869210923047069347721067153086501116468076363842253879844653736774228828450369771966446945296203648132160379304800469607758894010223998562360277661219513696235457353942427255274058865823983571525443445725188560457875098747354990734474027968756888133638391673210966438717589070179432514633807318875350924655351727354662639751295175985365186932678709526250748592631250344066458724349557719889676077585017675298715856679992937712292324993400547586384186039294415970108730746344265991562949989928830922479711188606369810485671845033561159019328026575465615688103731460835050233301841107081705574820592687900157721535868928624154308703287916105040386420509547585398195755530858639849840365283795872767689408417254857129326261618950784041029819555116090528979902406775314283517465429585518597882527771693787933514704975734202613867560231779225350201065550173070506377247365927256649519503973528296870480902771573273472689930061763411231450306963064844674363089659279670089829475453623842592276818838630984402296712825332533957265387939968558433687056020494157589116814296989557819645556942870235157209206096957417168414469021671458106795831408288324730734926872913837308041123104983729370946270972039923672925164646892172267478014874247727708772876010952544674662531493044921308532990433557704299329667850208974039191389538953771974033269021029579813092046739586204734292143390918918215140364765169101253146554579036498415607551492983337399055604952999366581221886036851304497021702835039852006883719768553822161463629010941901110818042910146976408458110579064823543901671341404680863137814149296999706236291521025050768627747236864689948717421446866727051033638177815536963403782740786536027811006125590925296527089497802592898479590410547108260152828650312349091690922233986817233660602681304041079779619162531526073788593510885688979576053630489325667036839851579012760425582824720343609361966222353892197189764051520689450822686310187000322866726762141443224141735154196775779041680099740202663163351800373782388230751871152679619967300283048082187621409284085515347108361252262824895882973093210610153717060229879687939145154443922833346241204218386242357445286487754631375983074862746544172158914061287141688709887910008342649006681723378379819961526816572851067489652522377192497024748197442419791208442634568580929441141493110617715808837145591402698506457996445912771681997311662163677213586645827821914891195619361702719377810081696010471692705794419164578676719352732370890014995556116648066523004526965027053065896811510135177270655010413050439300555956779056675716347656481917523102958306271453738040346697520699691821638743661943553822939559185842546781561867669645871850685084743928673664617404546890762434367602657411503187670112151431808306666807783519873841995925018125972360135903462911421805421728883414185287643465028657455718247301344076608699366551655084793389571790543658942176850112693830782574203033052799596764880658237291059745918607207639750849468432854362012750227150398721994396163490921851245146858385731473921209351438709428052281428424588026775755501186001534939262950778720481651454806005849786929763417137252329774454878464860072547233431862524669692906467953438067194014301084052794446415922314604488705074432603322068768465993430394289124132200595579864451733636133563649678069088058753839209087610887245735640865554843572686989909451273268387488515984730270269314608451721724087746525987111652011787973667979268303145751467304915378494902084525815029583201939439735294455876600117997715667520557427522664439255956362001168639303902654143670462707837522830673266484762387314590923689688137571442008928463379595273625732655098268381223387979512842035253979926815203193417513335214710584592058648107093731870156373734729566586265566318635754622344011927949030832469329221348466693646637142605324064910843970559112672182229863829147993107909507052024828107221748943423092553761610206547404199809300038648255109749648302556403389114005528255304475427711706560373989150159196694528452220486278437331071418438900615922054274979226682859870855322107586419574570955772687319847632729938905014827827478874640822235273512299660341069816263352769465941073827782830171556152514057752673849962717470310772994966471220457928718679857433472953061549402773799822761918410481882038840442542213060312236603632252449106681709862328173002683265674079307727079992827682213565202909041919080280097165898567338654163307150106259456253787191193359767764425497176866001640798136741485217203757719565421767752695906538499259162278707707832232230893950902677282424549511884627471051579275200639721333287800277320859081622572185499337247213345743845795211946781695904125396698948079940951816508202296278115237486397097790964829980882424213330756355748564341492808289789532476163002840202715344343243949792473098231852640084174143709312899052231075228636092667704559663870095170086020240388060228276881050582922072591181885575806636150752222521454763302784205666874358480369132199497625223249291451005382704531179377032451178644208228194615755702241582907768125106895142154740224857327713151218271582769074255730808665184623565851202611753999031262533484438556566287886781463602733924910184817155993601010728474900560391249553857815152283175379497112459147696620099350222140637810692332336195299386109548185501225864790439041802876592305731597875024424237014407946340128428647635956537732305654438990277687702862497000309971010994024410965042745765942813087562270186207255388553693505505233620201696061339727322326284736700884835862769289496737471262815111882401576883728515732188108228379211877880402311255947695241043572974711621866769936804995996416105705660964167916726314754024214773575392600496973802122750873793099203433436230470546241134486119401428520891569355514138778888930021089463737127228914539530358616602777451564237970664447275231799201636298514449045762633240060298237411512783238530320516331919153997332716322200606831516778536682813362867720521533861915317100172758328075000595991694333323193017011212884405796018987807587623724715792460505917384271281291117587658577688676187500257127921403683340881015650198134433680879046095217964261221765591770014169025370325057570931825964167668987039945638789512079686852909149682401853440529156144932427034066694860734149959768751077782134661361710835284362545083213781391378767699502435485360780356871458000269287012979658282557042662804574668326311083806311358265511172934301105802636875827783007191689234745118433723423349403201244800259165390521222246312275735847648799610581906874993492987068064329193096723982430577016309668414343994296238868633406434236525941513935083286549929529856951277852122395485754388327604394828444986710804706170356211535983599854257352393650421029660890782671213150101715921075061752672520107759164685516412187434700748982408189559770411128860006917597728780512106899353482512887311173900935219721085420955974009871036037591363879235724554784884496121428527597492472598875045449838090677628243207030459083143661193321677871846482983781207360551231359121373253482793627120593545674432303293872900573693596971078162918805801887149562303278994520963768609518663532785761791305118169064617380812577147854550260946023403043820214774338037329556738055077395664615425084760369726472056580957449712351906873450991011696186493724383232182954279062569758957213692702740947903319712177207160885698213925657305557413894014900065240987039882570861528464632290309321407923841075295849564051464812094110571763780688046463427290212146691857502013275227705126129059762328245888390113235984359882677557269225761877858156955652988636183255660407795666814606049823251813856831344535268327731232254523492798729717288653658318223918740486075019982833144460907366127051313225229105439536026770822119380469062546951253669644659459619893790102871224357691853394552769327004972954210349817416284799850472351201189851192253256340891568884837214855510158926820271478477630760006856118210436797547981566359929213457730574386171707494713425424680917851854640819725499368054672460082931894625031513004381793533778268695301699110384982911285112026214640255810979654368095119990826291191332058490302043943639598866761119670964170826324683269246036202950512550786489477656042317536853383101250021677440837970691098527186016225460504499231576575241494486644450381588040139128326710024511803399577048722178353465421256134221061739451982906476309450941028545017360622288355480546353019803625702501427117122236799103630699681792824284986109191919369243946772743641293402322537013729125154388487659355942962376162704081237983786609746868126805046785930041964512411950192784059653153135432359582746663158536740817733574236372043184323597678449088348934398320806012101326071108882179755469792565555725750630628919749079174944935178019490752835942432506211522538076562808016927470544122479040776035373982361158437321541141364313575134284242565135364389770864685619212351031442028553143850107078053331627231049795459242268066931891311901055784781089102236418748419840672826448107032379815574581324569492701822094377639538419450807878848747601455567051260124006852667501405332892162030884331625002232303912230839063012490071047967096741826570350936448697985861958441927265307745823779032281150741912771894896147452749124905099525440768014421233908131929525962091513054006050738550631088987526250308863404340891472927663681678863983855909317634640957368438151384609102613339877300125811080047008189784817518791297218806877529444984211147612267261603719413983907302526311726220911441813049189139471409892944514058172353707349101271465736311566977540058043401126543542486335540102307354411810912024925685014402242891354363280855720012186433956113098077320794757665980708310091558534569318669642267373621473017713113580627906038404380121979194226619393140694672309042212483400240804010502511381906000787801490854354722138121431178973501297591737886181047346288874850232189433416273625573300656928949289978123495094084277855163455579727649519847158209915910023570934331764713950880355281336864402373777810374201364970311110450662429493963787652679644325362749428788781411238459755369295352406321546748047975071053482278272271862271837756337977095152797156444907918732035478752262981414629588489615311256044005018482497486845072317445914218430123155073493780241367338448001413538165955249348378816912032363104393945391376044240792039459489091542780856655089142941733468803641379923931092641411868680730428618393933240757432447146088788059331024970033605963141107636313920262607003149794139809133531094467566914418641473242148039175417776199952999245382686085997437863329040729906475207035325560000887769935161718941802943553923605225223820029075924120033870466870218761137814359910014856097714144987022196428669260508477978857734134315876306131425992870462014007464402896513568452776877948480174382543941490937715701395139884692657670705775927572318290607415372861999595089984696490469612573415261407892906708957986542793458493174545886070811891418792417726543119956741213918703508681974433991063844382457228287772959703965269024199772428160089035587204002605698625894996611048241055853267234813675364184308775124694175263276406935603571755854391023432921137149116876395096991407893429765047368479098528392108184279285886770103708852854525199120386629938957891835880293774083450044613826320613483710449493155971654415480311529623097770116083367258978696871185231407045073203651697790150899779462463520090467523067546554561346864443499392066797111637272110840828476709277107960780981113768565460537098462865276884919217723725138513135974280451845386250328510473964610196681158096041949967526281634854093166298258529234584409406640192057739326671051463754989444565347444025410157589794962515358768733990827102449062162885917025159273460367918432027869707701930282046233223991932363051570741435604818990574122428403262042098754979466200754056192005991813014376578239187847622469411226309208709693859416369645450300664203370090926821961323840296353423462173888590865971058766172441584677497482745560284292586934613296787284774303160097329546434270398417519909493762617115123336807480001458467867644481704629327599508222969015012222720046689848414423853631471817787829901153731905314625007830419171852855132182107947465735912569149476562276444283093095084673361899116686047450752331802285984279215778379836736287507217061426772532920896472492039005057346765717635901036308617432752954889962170373894434502497031091722800048653045447220501512222872708381305526270836011437272200507940320879440022939538877239126394277626758453450487694130601282954792984729036021829589101907077029517583551909157288441616318940591857706099300811115351994410243736779620984424137567233647732143362889482698688905436779067905723234432050186437121718893376870970978244922217937570551057470570468886264540407779203518258473948283856178356621764368986499401152426418880719636929098723920362691234201942809679162638746627360849268720984653912459482521199450682044591374007899361075618247262940377830819898374678167038109024259281344712910282365078507070755316823834350058276902475950034824373046294540397982609302759438338642950163940635958333497380400148644136683258430399977884075882763381304972162054669949724719668534167572703735619595194164828089303607776702288472792827944386636357398268787974994603056305392904998099654883143124353090771645920282315973453090881918738205442307312092931226248899352762071790848012604637949481541480461021888912340953147529197729463741733412450828570510676324848329256252590611716437304127449979925411492293639609004559970155998628148358089211950328151696641215897657582811264677695783402579513517106175900922285521713797853444887261943315737699271768155143219927876292258190643405442671813279370877520802279702799507181022523267244522420558058315507725606555547083235572806218379727998477165832365027407223671828721044821816030740895336725994582185338838246521295171592030945304003179766392426326570351383235540565110848406048741789619919035554983141591006191921176016358015754374940224916063463047226697876717817048978033420132792906646981316980841986931693715264373961906584321392739045667440984979711322661561489425761470335079799126920701605120144718706365290324882163500298353537288460028571570759918577461059724953365615128084779756646939296001889062053741700654321368491362511476078918750976814769728958344980431760420652178008424364603621007556830713295854083137845092084806969511911583600017573393400214686248336344970820130908032724697804805329478187627089650201159027781968990361595902903010721604787592328990893324659122561232110826610008477055256506427720835003355574049558249885049833568067991898049355787767477617585080034426700452135828614508681276153333838278481514654702283228775053133289366649510567363655750323830058838268972923993010126548129490330087128691831718328111811637953578866428017388434279280569643880272974645618620062408496361385253440360378238565365149708512409286744113747002991559054616340471821631188053335338379862926136021324283721661740391124726097219263449891240363834725501165124301489774012700942230230733380952054530952909663876454052083187209801987245714876861889129406544632669465318719592632840820224166923877126114088804112578798130987628937079836587995461962807483422914991833756265697658493161655472373849371876717662903337090531774567919053433443626598136606627435120850590000115669896745840195764019032605958817305569607825398730233097765763982916927621749539874581737228233285204140346751006516188645346960041236834853703319984168534395332290535813462930589743875141193019163794038313582320479505062086021319569493954823341925665552148035304893737566399819624814445874358821800706689877828406666936839442875942736695853109673740942495714205928955298544914066711464928450002923287408540819484906801019427080245411985821434037675915745350991108314689846793567678422395717911444458600683731721436274795962517381773182064608813971723337475785876239423757369434866193987528920378284969421431309315304751343068620417956131499449862284898324722448768035096628151365339531161651377951193932732129860829091883927811366014217228422097127568013610425321906120221782818411915475006734388975898202471073496057888076010893303290791614029015739432385427339713279843900965729725565489971981411216865246718787577176943938905760014523248979260380077521985051409525760394978252332425782974870538309762274997031437108403522693691770669358073640209641275699295433035850295728460433677220593284684912723744291736976498730750693031123965634089317946702546300295148909337387172260111400273911793400896894547825365245136673600631279876436771202268718827980035721806476661036658861018039958804332652016049713973667693833375654265852293995072034506177600312960243947035130882402582095073110636236575390124794617675672222516285871298019047415945990359074146946343760205783664845678748361730313722188310450413170784530148320272010255426939909143009906243756879213915311823268201684607549210649539887190952808261983852906575043350326452763290134204810553032899895983450585296139415267252609317816715120227871424857613808806687882082969613482850671559459623352316149562898451991501677073188976397686360834790062869684129013966157169457826105421267319787434864821020066276724773795591911803938917169732995711363457776001571250897414912076326456040110801216124693168513381380802807093268670556686697370675763315866652914278139733884823578294995106011903993481809255861002800180902791280518998718957124118226559621321431805616376158274027410730962646333370272630364984416132143774761994914773592786103753685944550368275380990087674508963390113595716681886905578200200034254782517634695908018645569081709615968471827966002629035170450180772989121869619974937716027434852566500318410107978542656795706699361171577939792146826472308676871451066652032109492935051146586281294043242960060116711544947725687860041519319504388935154871623029561895185464405872458514327469887855640676729512719518414312031635284579052320884388348763062994391294539934128541002856738981771498317297330119297640546374505456446979482544310550383799719038903038528942967505476333135491406901617212562437384437376618545501690233660638008113765807552102812056701773742352833010238686230954220629586926251322846313442867598739016054332595072080459858561309114033162376260739945707993324845722205047374796377031912540728132795609167360086223746095559628533383137285658767165347373282434218823953515960184922002911913913456234097739549797504774623390674351348442619922365078616507481835943404466888315796505279416838655469263321058001429132558173900515074382397331802416675380158795748869273463663256179161609973533282257557792831078742105195404655848596181223425104811276502962692621624440676596072893004845113840390688398111082406419683986995020368047525302980055846369272665869053384245316953589318601820981984066170159469611684052626018957364829522384336948342150356422391435120268726556792827661863203391561028910505859468361103790880615377170465828863535526869806376312103801490991768209818367695264351100514403915555679060178880398933019730972945737299431543851657123784534739233469092872981654631107769874098817138057914062169084916365136415308997093164921962042366779468138849638158043824715780931941158043509587640789809371887200707668135930023821039382852814792715623089374793210157306797534166960652492275219367722494278817250312141221458298852113180953140167821899253700982518280450367337125376542676444608228040420993050761895932396405917262721276994392764313218886915255784523517979569528379316460493586431146185807181988064784950382383145374956255045558175110253339749462326739523066975702452325013461341057200576967533368529725740042468438081569841136365291764635573109078141120310575022862027108250157229336874160701320965454919577230888902419655385830401220471651151363837520369627656496593544274607209185214054571877522364831695686614592916409475207906890876805489047595025913522934577903305660502040576222752638829080382616774634634196348858154932367594960481466484496075417247441512441102604790117920381143206773189149623012356629963966915778499466173516724847331616148250024752220944516308219032701951393803873801328497178184559308890462131435532670176703638584218064432013859250744310472723518374567302082047920667053403719316486177564965051374643443240350150703077899897459847291204933154218908755683981818415175959000654842357427160571396490591752083120360364453704592407397973924573326544233503248706842211295411215656601212848806542598149981716648730076115350929038643049190753410748681577914276805584824430850797245659992994771847626920998477617602982706101474497524735640171627613309840424712413762953091981075197320631803559877059777523172211913030112258947700890018875064121844144236844565878737978594655400445020279065154591412574676170729406075301927067332328489857679760212674885332446623417204499034038799179304636109125355704344523704093824115491730160087166069832708245469240072737579321601477416494104470551143102283710865741845247683158604802069941533144282008288929506484424787231317565082357526567910160867423462188651178088471529258891771258186681342809370205654597413073984683861963104975216504346267570441729002412180205739236438694187111534630803214105518148687906522769182803413062422978369028379988425410488027564126544030372247323301310419014547514170868297709658058258670290102403428648824136552115147623416661658252046595201969911735900404553451711954862145854692782843438023542756860236436405077507116634912532084819859706264999675317110732911217204016609750847217299145103563636277363212097731346119048896614141372229892014875242389083546629877031000705366561240146547571294256746642694135419657723996452156084358431793729811710635039011903883525878237424677144430463501617302286392914200385689682083803006634329842126652857156003516080742426904206565913070612451592200054054111853229264631543647771528579632442491898385164645143374257453725865636216631986710368210163410347855263249079489639224721581315804441992443012850289355042434126903800950415504494130167472882837510417285675530230998208056117935845731203827108731424233894154028741670010781537430100945207908325916179944306085558702686295461162750330734493917638305161418157541096482324514710600568609807218815493753213377818544732196053152528703722269090961228408163941517616336242845245675358226985582113214032032646932590727023708916669366973154445806293020546925677898268874534901206529997341254855500091744164220581241677485155431489110065299228154500574994898869323069189951202909788670023268993630910204310961372954674671137083594222509237696789784091468694637622100053837201778613035374007806680792257088306776288512342083430074469907283294135239961461438991878191863672866131808709023161708855904681873286491068161702784842745027556365136679956041219975281542460263358805904784004228917762674040716185251844233738081877098555270402544457346720726285373543080471250329903510609331433157182562839316318415235595957378991205405868656073032033475436956737012276748002706259304545638194945352231297560013224228419358326345573174942390253497268325333265827149138588140095590318807853253938714347825082558735575263956472395214532714726875872535753706745114254021345615735707171603174088479851035523612807171416564811925256655248110102806266990425531171013410151633870263577356507660111874827539108408481371432984927555293135453531677312935217262121526739520870976839358163009794614171220329165282807939116958646935637622751496980257283106299661376606499859627958815582859334257592467156448828208455784159524310200296577098585529506563713450268421998719674158363529204574991882138531201387722614430534783922129604178796748842639624917361491985360498301634769797753144262454363704680394321354205771971981998617805365756110176324160935813040850855713975371078049360340113472505980947452695764467942353345262337542149890203805163359432058182807662807954059743233539607581680574328861302892308375816158603429011230425842364644471015456234528469307809168210839041105834459773763598883102436968780554332725964189222701720362952060629877260283138720589125777890546887266498447864774421865836241246768393032728430944560884513534016696061709028613986750229812164729806230984910097156151129767172902594516827516291422400948308079814527232285860365030975292303037398326419395953626788457799506850110840061583486575539319062313378079566093498867762403011324075444699921033729222669121004690761735350609069062241502940546156237908064361946857401254088663901761579896820743627067798158159931752851421331181337824755030929062471238201103808821493068505433566881067934563918080962705114929929476672162179305700307586426352731276917224375212280639496485844561197642415332406560096994259547901355103373565006971446854152827920017633796778597463505319146331127663358948848541371905405328757441275489678846319893428039991104670304749381445301249590986172740928725888467384346465744579586097078529951383616963007848224296291816027177820819056752301702635245761905401822184407554376635593775668537669015966212918775479315187462119654440777316481240153088826861713071414084916001620980657576652830264263928403065258243609341766862077965467534244966472601022821506247697216916005577685855009164803246817067112367207833991289824776490596763513449569970787227304210404654138767398265233012793077549908392975890910047503263060892607127214073645983644144427685901612778797933269393271630094635452977333797478546981751133917929699967625345673603141694770480120449073606547600839146084927312207750561447418548080890908137325584227046695342454839269527633163184461653734243883322688779012743932282136810924772374931398274831433938406201132453203714355884550268720080526095179111355714317274791896642123121399838976640689567336232474867635636037704022690286005035513091851270579704151872176744906060507978962194062447234108197855631783856174926931383858767361788042800388513116181299323593782759714291441002069625462616207240145447267955366232686970409058155311696864989931498431592427396642199645404005081903218023496148752987304270764665582056431383704393364318929373731040547623829827792385368437210038093784204975110649864045590978090208224535904888229578288338423527052999459429571816319762014439569941726664892435441397815114283689138891875213794870292961249560821783388212901606498250939961504451302856299572906862683156727027891698359217129285784875604929377267684594908680193096378925435259570320440340728497172868813881753166771646330365603081952873346037772322598302275794907287447117805699697209233529100176270222848769394090385817376118585098781423653143550592252250393179492766880358026600467522146817471778549841126569973639963922818498516940751472845098589860327063892193866303756802870070867080125116782119358726233754547411855536361175196421079257357213843466753429524369965551404462847995307508026696520519125028492529044993168133877308798747986952194325198401992315244961093172379826968449508758034021777793659790762663685987856931506910530276076605885796235247903180097657824954751927233333834475324704388620015241321074295459434083654802560786541328524832553469856943365955187690328693782157919686048905459061672829331046223194815652275256076491566291104502122000354994465118092463817015374104394932913372947362214809818315799463845201675715196673058541797373307153716688183736826000248130332779345357361204456560003547414647609639446949139811816830467538734311708329865704078219233280380376190829238189219373444889861453906586548052651331351510628415703606431093645825908072018510794251391986310431841714245998697145072264756493463801957772850647533743996668395607500108797358222313983680452483524405408259272902012682430468458473633147841273704146706156414655399207917476160916124601769660648130081431616261286060164367770091811928464656860421641856209984001793228522353031592085670791048956260636790833100250417188223031787452300342382780736837083618259676841166948521703582563275711176904636101485210586308527630828794364513324110761706019790404964857759156719494197289392075371462738422262092597460780650349004961786587197456669536377922001313144380091850405122218856663628434049186906239272015046910363053392602177132431447709141127589302318767802044748655790037332387559643097064239099484253723701276967156494559920902394444003037089256066328563893233473080044912563562120575769367575199785088800604850208739703273962754652232034838072534559128224200833574816957080879918852204911725328617042299461765418441876072735292116521868585404402782773265569127804952195668157688179061210516467211199778695332098019651107852686286780234919772952817639101835777962245812486597239349545438671324282747052488047336223196278372440899097342317548254090896193628686616932424117113673297684985062713449266962597710674800699281587988412236104322185807762158028922828367194070323571124439214508967623421353129607655013862234903287133384424924716011802313847525539158589149162151630319013792783539094957047418470060274473519668720687283364814729581418088642652860858281934839532298682501975031152544145240895969454000852254133565608202649367379696899789039726626278209208516699159159672134047672234174565554103003555734033743066531222932720503103828568228643729390416232762895560512244637079717261134744386137149269371577504069969305910388154472038975365212032266703561562266020161267421580106499555592361946010212909839647708724802846782149607271010715033859119633810876774748382855568748593482354773802707637408939618440985963643414539832617642216803349952301115745778851115874469814273658638552898931036960703328360896863694965378620362715770903207986417482503642053108240909694579197581986496740733240468358390505416436063454818326942472748316508152821033778483637909584060909541621816362700938813438054077691311651258828691016187602482893947681354450603532933714432979041745676870673481931156901727476329368489725635160464924342997578797956035551891787137893758243870150214166225567978694189703078751007998486111153906507368723219013364584567116770678640634088057826812339069477987525682575020767241865445527611745531478503634896032547682725028809346074997652489094766584792107109708478437223739952969246822778287441101462053099776615506630156123870659610138561575054151011325001740840521940473771614396367597400293122635490696472176640362720743034621407605366410638439148991803105107878898140366360656973854464057588878220095904659632641073546601498028393272296533236080268318862613206522635603384716026156420002475560275328925557461531248436982779199160745541551213291991068747627232569797215404505446511821029312517501778414653420588854869461820860107013385502368225380575832598167690874993018007753716835850859743392224399306632881252814259359897211268369002393579685646923876844646229474663673414575238549856596387214170553676435406423236468807734583400747860175475115549130827925536803524264673636585675055262125331586614517551736401701211019927944985350914733812672954941468374156311765274668435674996731796430036355288424802486124539486706975666688386466953440258713451521885788641631489070549833788069328102766603400158282118304950073412345260146416195459411667343943007483271856523689620489276956454075907061981728752797179115141303432777404370873476317141483976599490617280270768627819368537778130826885987752242699149431165183203481506806902699972720007721069193607019957133927760352284430254014205006772996961993400280303352559670708377330102750734245172404102187022101490693734354460015423117110278776588549452626467947238579385884150342302665670190462658306986353711182458390805818224575316375143867385902095405731929281501118608400851004156843963626568204936595792251366167971741302904894360168334255761219283205953821191730374691397401562381361246569761413640355246830296413731887609590297180237382359451275539063756711325027060811849471739203237052553259376701518533688704187840314873954012926478708959027523407790066787811337057378866801412246497845493553558702744558425596743592931972394308779461664366969252725225866495734172610712793035330945168723277254350100079064541671490123398587923778330235294417284118498283320555123369715451595610596432438047065005198380640744879725888594076934149533598231115790452818988592426239110714300007555302966656904202224041630045856104020529502215507870411471015610141178213862026778180175999294282922320387050770911662589190489680757535125169363077389243176410614873785622753136457425469242613651385541645867692323283475783840881502596374516065249069929947401670429556576281423775837135251460772342970938065076497110542520451225593210181753347013838258223092759963614590796972487237374402111962877994470250161960648606404165118419655527012095576951582394471477402833063756160269143259213295562491516532685457419223480188591316366765741086098275795570645225017958662539105397092721525239589211154692875341736839547373437164537082637857436980420545154921371295825137484040860865093264807859267800863809445661117846933640219538407632945087057997308255098931770217584694749618137023737757705750032558796781852571283524982042912935590724398433315397065368330791364255201024027582177150517014415662651277301410142325529064111284365768207026872041156818083132222180258506523093421077762220009614436397464487330877150466224468571995429097737686496165137904878302311114367106746217163136962470797738228321143439541727938643005666572706490576575922031490772012406875065287280017869359624232532163883826892777348356246046120472258077003028841817546798342859431782509576296875225559775131958900960302356476443520137817823385270429109391128227377020898373030846162092446266186381978213090198910928481296089618543933677116399770191277378828603817951256849799100766155711959757677477485736904306452508782629597996746972471316598878917838290055238906799026632600918502106930184133224739652201613159631500532340982014458515819614772591172797788162530707676503470369321390504777343335019543879526680091230298518502428285082585983286490254709638109178462949508276504688103253365240800232310203769365161710064844272473416120557894176193317349835588238629208785941309517661847903906260535188375821252288396367438165212361456552498769848199570318755863986072306767771752172076951904376126828695567773096995429037139190173119029872821967023003615686604357873149710394517438708990620427970549430441665688732367393283507100606393881037695258118098717212217711645729345779153364191284528018895865631686266257080761773514965111018167961288346264921501280239082299001589147143589742736479791745597932164595419103275725581161804205337173813663006682188322030222663108226103575165493311923845664078384651411291917512038704627480867161825040680433681035514030853592238403521767303198526096774127245755384129809533176428858984887637312021937758696066346354719496016062284840820010241798885837505156120152271246091882451496480002814773488325639443971961491811956189938232583175705762467654372052428454607047801741408338740112584691617258881641080958923923791994520330647268425210283621615432816591267421589598019959615107375508496570105068714560580778717396732194751092749315508209890577339673466410591832376976939905704437590206766376216910745678193175138521830957796905562345450378902286456476976488760652738423926354538998778475518915078557348481423937434978903880192742055443422784975183941270440733596573549904506893286148206483424480657829296887398955851506246843406349318502111867167949856074093913230758859502812143300939723451559536109626903912442871177285609540306269353690342142346019661187568394860907546898939343160257201219133564442736308207149096503243007980712808120592335656202690286055697813337844010605406936133292818730011128390842746278920493292888509242580540933052438767273128005740961124943143273466100476928689880537264026709150058062947319175216985670990109726987724638945968737217244394928340227817842698003892491850745116257547353714016784921264211379294437021846140462810051275605042658353818301794546036682221486899796260863217262321420624634767528314040955612574792798059885144297991718526665939132048333939064962068784301188855662907493885604174040876404327699159693612284205352798039264674150589601568677785335357061804286433784777558219782375556960560804631348376373788117347423095058750466825009212508488128635294348108582390085301363047395171770638602278269610985232813354183262973360157420202709443828565955643559646981130258092696910097452471633891483728328607940133883061841078070564227090502245431619851903809872358726552335829850703361999551229028262909730466872090480979284025350182877184162806486414917380873872923873880152960151288443409175442853355858238786540123762299094583685747323527376956167371299797258927761476964182252780304040950500739382826403331088625646303387731613031976386639834704235484520300402677941439448022785663407208261903335834644330060619655754275220037251341449933254212364251645671618582630819722152577294572714983172011749747730029115981755309731589602859641092516681807438867025393666372263415172319685995895770884373731333633699704842966650240859272294146709893213090213091517523692874070381335879224634777373324645147731742462306985950028635932143775574687349766596001900354862275832757916918733238447705734896371053829470509174117682586505490922178396527661656487756790910286777514217078016279044588146993252965969126214825221018981094677631905071270558343462461338610581057391358272591674625724269493363776342769207003782038299417856905916689455746395415923412566344854397664764707000337343607876371633124440792567825595137191137499573805916736289271839810938925710084349713290466085185728720089938595496511966830394175660785465985426658306464446917998975085454695844516567098738219786369049342987104431803264859521759770720279686524459136371781203317290721043256933473316880358526444163943033158649468378202131032504197387797414974619907379220410724026652980257566215062733147821518086157292649326773959978202738742218995684284084536846694862885644045119108744252353605290498079690204199202641241813372807337392677330092374077747131607705158296048459604454959213502072309753907757898277855751675476830669260940610322291322374813040234790539527850461670028440376736180046489344810124075599264969573941606360327106677656251828603102860463561159275021188326801328520370196279487372073139120932203445480445577242285654100568260507942706655127085798378533328574270331729274448325011757927034176294333349493548706019404324218649090705129836333409921253102834606336177591397805206965062924290643258974470676138786397346245740971264571542224594737123883546443086756798055204808072423348210359454738138727448259021316590643441813537980808997746411978622586099267359713017095270676473030576105581674438059770856163048519635995013594455539753672136804939808369294225804926584407860605955769007939266579704759075657863440911984798012299230540797361334121521295485117570794152251254258434705174766954097111546363497138577713443574585966052274999399684585288731707012828181200603810695154933876591840297040864290333691503142291943600872723682827604084827554765955567774982088842576416596126605360117053405906389460363683419715634816327681122644322889274887334819064163029646483828555026127599192096456300195471770498959348045611487359139774823167378403772403538366012275042282877971144810857921548166284608933403228730714601763304505663459155700280507783419936146114843549678272609078037014531136921725863688212853035021295472136980302809322023413813023549504775406449751077589665763855083464820527758151748988950705566715630755688645702868020613996130594717422504594473914566937515373201914205391179385385773505456755246860951689912125830648773645073486398643898531398012528058515730819174811676750443771020507525337822310469778392692047660822927521769535473841493189660286034408171617444768600620121185120015985349763956570730419426453814827246015168734995356872779103102326048000533817553799482959876008915523608216002081433485827477064767175366319128343362826702160143601877657502590377236338455203238100404153758516498062918878079381245342104524840368120931994858141761661101493511901238758254897600558989390908539468434485333849840374009865857894177815815291121399756655484707259101753736833201461193624495421176601776417309774756077125148194863368419045569751639334647205065383249228943603014865025705065809396862276622928488348101287012571669495373130269946982565775637251763949892589744977195986286540360863277822874041100208731936244191925743342114626703079480472665930908337333355228691761104291847896778141859229577365100155609680531063257103219251123785650099323782970974549588382758339926729891159780519906093060466752745531688560397360796910383180453624451752378642900411771965317554536395552046888834215767051034046456214866038136928668998865364203436791107727791258515069350116806478925941444410490036419642440239649095540270148844687038805702207753488993013733342824685605151212551676927027270718182677404939166349273918759126189033253325067455172040923904202917459825565271015844389365466814744680852558281958587272045514447868671695524807220530536163086070927348245850073665194933637391265056460531601728717301805088735711031831008472817478238233220744742904078199964941559038541348378170325344442555141685662490658945960413480435164891078086890307631275108117650421834257686781982612363067347483442198433811416899466665847935427379541472415935407009201075463989399658703247716015229386027775381239906070364883949529800868328330996117651593752971350878702948087599655303845381985374523664938470657325600840903815821031944451402369006015421223197500938202804114304695883061400741354822501406135850660428980115560542692464068242368462248410908047603582978984491415604762079065458386267731936693257899326803595395263581493625558042543492982569893675730297055166197216950931190282624986111415025098641532015873789697427414135236364829295767624155261042837968843664962105317804971158345513343506256018115513044242322404724260031826671664640322812161350988581280531818456123021880749633580926159080212782548886636840247068990020648858035244862301750114815769135628813015031296366553340353502334924563546860177726027008266654517042567072848678772659822584834362302276092773421155433388247159034607069529766472010291290045783305887820579818016063016887315693048020472913364941292456969717891017364775083694961903121103052703813221999674003085916256683281174210458592749373376317558796202014767645343125769846142490886657746468399755803104799509821699904002423541508108347812112187274341364661349906908154671570851421047549495344968318533549968193993944888093855551772762010122396588378788616588755554497161361246247216350816921861306014460711133346188413740000113487504490630331346728745816969181555233113910569623105443262132686926294367288426672039593903578577468320573649688056267028635928786092241798086860811011935962304120050253028194814951552608815140352542898358431751160272828296435127380934161898309033029145247997249334047555363377036507775083285943254626493719890368365273250527832593614570616571551044613084495772703977589180368094650333350747004360865081370054271919497268279469756524586203886248351727281451415918336894452189956574048863198237272482040131782513946960568548533688778885910549848602848937423343270056363037943308066548923683767883215307743023027184826308285638205435149284869114540008708033593691214264978658161254057965487741945967162384349022193375685482971929473227479510305821700788266797094415990569352845224152280253464103038967870755756085061274153992505140901361078874014883068884702530381798153018522584378628046331331992714360273690399916155689869411689677251124947050058212287351013905903805743958002284283444817021431023736030407829407062250299132974437208432127062634287775197815329250834672431122172493721099321501971471233053879933521085405305957377826541438459178520967767833600833959123511959229418083591980577089358408170845884807528307563063926815888871540204018866700186342292881117785193500615969054136359445542539072262306145574334711126582629606437977404754308721582893337698378871004046643773749585576913627549981192105844802355989457987102549761473015422682668385159620681518915074912541873027510256061002565366594702190872723692018814280835974539854414213601258517748765484950934320824519984619356173419496855832197697262415299754563531833381264420635619561600479847998609004954511853836847538391757344164549273325677081570565173068524288726024475187038739028195161566676455828370482375359594450489825474849225770129357347605063157545705005952679851562770684440581069527349336513692926836209110351811086968226212755963547689177739506413506646878715868735036736514489851393498615547690195261183127064402366191143113400077997376349838784429409084394774186610155648686530214501384200488003789451019587348398886334284455286155633178424049268607840242286928134579524033250922261280259613055986212369764570234884007685573505005771850057803974203313555761974603826856729434336074082714854746793537887130405011521429580814023870989098684927576962084671645488174588738215124732176221375173005031020936645524112351589599822785074955571391264810005019505188028984085221637548440374734155851921428989552979094680688074620237318742580712411540517488617431881940900092267541927037391701162773599569130473153604766400742423084043722183754123272071114114354433001226907479511406621685528200204241849483257795911399849904647127415439842612552721693402156445369646028480774294934133612700117528418663080270205970498741401686489074334736520478212346068077820873997067297541093542596773481080197654228410195376915272895803520998424989799693566613732946514051598282809660907959788775673521495613872520282886460148798480890597337908668770049686194149499125121384843793017225288781691812073610490671621607901102336871752418729084344606102843254774982226336915489940735674587762232386792656065221404905827262978888250679786997718948777235178321240592834783268311953101339299053462939913657597237818969380936255821673451658187299450974218682346525756656215787552377513609303897979546131973810547219672920718998071307377310337941228329410823772284730345249073688419744270995901798181813020904571847293206163243854483444949953505925867831848785884340772823624382357143545324599064545290447380055071424403949354560947422860564772018253284049135740317854492317337307509895075359800963023613285542532638540487250411820505086588653742519135710686908255549372703450877069273065116048077337976605367731398113725013528016724040154993371848140952114766293048632770327017194624950740132079811393433658077202882886369757360591363017275950553836382557916572840737516719377095806170262821551128351656467437632564610849069001073563114512135560685030838366175674708790946263898611328232350299476856436154456320976445631274879793969064749978050422841374712196113824013703433608435328704457164680030730301464584104187679261490996242636751693406782490831730794884938474161135831103683410378995622778403239399347227758595418203062425791954261402541198194205294013359512512277520622613720844634052973363695320157940179710759731458646272671687965857688164047834653171368829807233273641224462682449378258914467066580274791858119590239653828525405723192944926213330108031474367471056193548398247584280137941284037479966640794435912523279326609081636197732195800119014453256387528284594395749749874052956987243061433338013209379890503744267755960096865270003303214198853897836666559036513787186263781708759932845855867132943580429930995861999151216616796089018619801383677201081858966563918527426842397208662246735434951168891278328527008389639189778654098767561608027776851400068665163690023312607296849024448454381566252258034927951453840731290062702865011379325258628408848861976357180017999769936646794986075956219601088697524517533382592807444200715652230064845525901287101595833594469293958047631046601125224768751778984568645509212867558269028539869392193918341255121742183679221529568969151179565702793626179505401157801875809209166880234532527274180107947701332941983825843418259035746358608395842084870397003902227525305439976439559970353601170667057503985264065758632908795905835364246292921983419670298689863238083359062600075752670868596773576029228849517242251923903119625256984140109449572599999615307830081882401479319877796498238246891181819920626621336486721313676621624875991342532505042473458017792045681416723789364872724049463084673288830219990793688386245339192088454583195437092120311234809595609936385607370515261593957691001083842385744396725822421777138920714671040114221145869920630913061468272971322070302533272374504484439133787314186900682328732079168510672517082876964163385171076477884789571883164104584626462987346895524079210751324134446028898129150450069646868352967939100909233734225587119934569037681168840089134706423505820810475491887217473448396199815331623204835049464596435919958737937171954576289153686712202523627559574297337508587136419575426492841434001717074078511855101322630359537180346518046029081449814484303846173989341747634393285200792329536637646884482114511187259210661669270926932159841483702192951874643746900248963986046130609639018572453926085337257421397202784526049399602950597537420967491472695860060421997416041265371621764364921210346075219052713500957016631986587384818113440735430208764225200189552837693176381614175543823571638165617879762169305371677419558669587376498287419332981347476807627560887207619104349748710538848518941451785370156991264418622870553037540202989854177991482478545054464526953282190378665002687822468394532783326807541915896245999204446934037843177226489907501742797985620687695469166346488324923240882819536945115868938521109764877664977034080187823397092333026649604202561432079870191367321326923878811252913767702301118823349692057585773432086200842799096914767129093691341238669570136037855251742443424964897195547808308796025234839508557612993794076609595553231235143894152392490444356063158786986156853826154894744751347861936585592780710909629281346456210283605974656440024329442020038613765829466136636311412479853452111963086501462555227320715519835187440809672683371961577672569782581993518018094375893395841887129459866002359103869905141036501858745460876090597079065923972118058608266221429972593938302130851297358566250540872977210105470262088909229904856096490559867105866227391729146866505435266448144724104238689788216312517960542968229317360555814929687848221453832332577548060561799564317909389082644214024521997964385041372895496913511557501000273974176240065724080325880005658999026698464043987606158739382521796287137311468261172424772790940969362486926316605995729349589457785938097446429134191171201738089736710276819655318905076385580874803105445716213483003953666205435264913316856262471584770375260217127673495114379753809008823815175284837993795751272545472727519345568487211398222655642275329708643009398773915614028025608268279815439382056776456588738715890064709409833803705758187130961160347164700517717057817045630997108011500522657862446312335210552175224466950496550754813850097716413459016222276423876109836458291990687635687011300435069860914369170387602924230315752014831880212512775016412710365293061474018271545083716155314502526884676921189699645655443568144375108816263826763456249729789148961459194122952212249584083926463830996967302997617124707547730484808556933449377615188876020837284572432414945859641856264185052143403722330481192194218349842126962522749634378252122163957958953720745330854533639063375154105961997046553319674120799532453605888311526803911429072106396487821364684335000748643411138153323103434871219452669022021836107037667906160604423334625080829346399733021764862285576559468631730061016596184978654514837107027052302581037267895122840845737441623253856185564003469027385395389667952192330315767131982325553870664126000549136565041643689717914039303949629810482758105025981779784394883250703095057923022388362912966716375405803893395265462641733337959223142169853264436581182909873469803408149828093493407303854939272572764047950530398072324713027379636667251738488033413801403921349618019118951432644824165676629708410038751608058243705453898127383579080246760777404393190015017367119346080157253134753565890165431962539834806348085858028950224625231789386247874442279572321151241454084459549018445422839376757880210716735177269136104367790035124199755972079593315983782604748934890609553762644120351270783161046067902986161013335299723249631665887090048111411167575617769468717287881316152579062397347461028588338446821618958101602892927919757138151900074637738195377807495510340211201822668588774527605590680361629912243213860204044173516995729152499803094819727365485243793749458102061608695526648178949318898209264756580767154780751009527821961213609489008006771953774279682913615716895901852030176623465806080891760754033275910273024110420209049139825790403096838106059088862670776780925252421704574978360578711951047409275897601603534212036782340641566850730383794238026523729030196169830069498883444066477247841342629911423869712926496889145457534700031665915995682397490378971847980989352618553346232359273459339015006429181323556695078928079833854852131620456461145635556439059577966964719005048077190376517944533642290508040753558529276084852614308156746209188702034779469116968140325863490780962037995912222303278416866329972736203014643175760732952275500029446181225516605497915265002349692560349640675300629732038181897641941231927824930052692106577231859064976329430574483337346340034448843587990750043350592203156349984543046366105208611183516095595616887889216412698953488052289337000422241841362362930273219807239291495701257702820610298429861547382376945309132842490269952698729143792220321294092101746169862740907881542514286406182327977930027941001730889647407986404842679629054078499142885610762567256459122593959888759057166676319509016833590764293273545060309866687388439483882306397738861609606227957072463474682244063196623620971281107627955536900866947208323669447517118925015440995044772030783208363353758425999904156641820194362808878325120277606058959142221072928537008868186078367490500658575878619956750393039563001962249863078866485580724689003060944089228856301946664528438556257859391036701878115847719288988345472415772158686540906390351147215276659429221285848405290811296672356587564903899738392743444232841069385031021660036921979979563457200636148081786053256573480973821228649892751561719414834781547333755562275958907516048317031932500335440440022217603542425850132961856015163664756217435997730025551111504900636680883472640932837140714493467594663833325116736603492941817006520931653139795073367276403094021886715722453181777501632836609360551266792835114095143346965820966330617790454163593776118240846921604326012891391747358259529047991260921809087549642216888252800515182383305531801064676350046008778452032534456048007083288320057958738306107098330057219774028300703566479151803537455153186885678051249861019074970256664844223631963501876608464372579974115859874395775526732974520622119090971266841460255964305973670799135518282460054376856757505932971068901319366641773170136947193401046292501411441977024376007729128597977630720134363151231598456422794422690535733122297484126514858671407079160242154031832048294972056526133101673695986068018838026246233131645580807976814876938217117283428748287649643266129117235427392645825491094622835181581260686842078045246868816334821949535310516761124035680897105784205617883634000096903184945893209490612811643829045217671408034708883847829072876143885309242932412890870112618860464396246251748342934504534844085462514010330096653635181601994125587373480428822698930384482988126182195038370687751614386459492085189846399005218021742702863421437126179447598288688444661895963870815696427782094325260297801145527182345576347252777690424988041382752876452304907382653646372830900957859368371450049041325005104921424028535305784828197837593102844927007233273690625768019323850232124968916125457247164922133559481769174895050642945296121343049693949211652173844359848338692088814625958372475677402293471785124148318799223516586114448779259636110776106610835878968943062858043723210427075082767648711179275562737276291047545054817430812502864742686624001698673817160427692393661249005876922165271479161209785279666433485192706403220722214589173722154283276978936828294711127590388048880474958040349562419120475544492528609650030820633299374031020351227951039147424115488146023815803032926931921971430528871904758280728557773731227277790706664256862615024938494825281568063964149895657738285720038758550526491002696935126900255955037668788710360845898649882231427559533938868236071986008404126109854559660033397465135232811075652599926586040125294606523375679005772353992160722078846941989382192302331169989264606816204479887252686855139770184183867875215443227488906385960108695237369003338233290963263344514447256296446685761235775148772316944095947170063898337646604204432292632560552111867450591207484273795146050403825295947098372445056719083132067966135603262594738920868092738605895919920351268853152708771231008609805241547922090674693430108720231301359808188028115707842259342473250958344770172413891232317981058866854822839407647462299708352087866497457930661564143334403938914928790680158242160912233006505946711515044475407282271764210663773901859316228399913282883187869623859770753107979975248113150602339153735820309641305744299920390154577872687010445117781699031894205039973930377313271828519247366864382447455509985263329805461671955727467077179130352251177671477418356478814265213381402237739877700569382451745548657402586881939065889584053587858055725766426980013782112889404231160881911161050472538392179391804331821787620301880820095987764865025901748409779944947542852002196655458576646541710931456557190747186575339326327575656371255788084795890552086928200290091506914602599147770683583032176600468663822827309185585446381598185715787388487835195817782385396806766236058401311831724760410830556685291661149046288169177033216586029293350764132324030608048209578230693582510894615892547779710210265201942376803255584814417416998234317455906715974758260548546597621533993333573307010384360523402233719489135937905234195032300455156457608671402606468037035744674493818857569479271468585994716747524225437482464316567019289010352069274461866936264939664601049252297953804883911616703487337745211950473986176734630028615323287514589808932634968710802437935762778412661856893651936734698646356165252368937805959470290232610055660220030626995204394371593821335662631183862172725741932935706794075061229276004406645978124970959216352038065952956362230487994096621265616919008159480535857296478249659006494282350720840350048288691366071551846436632017590323968707381395616613228673939311867332264177141319173496619843570179575455305679194183837141777655963916483912835993900137178058174947564125676947329981130143524494519222754198753535395118459021958548711150358556765932898914512509174560025221230264415507365156470034699449060905236545812311700350012497074131885444527797041338081800720546098245078015594539123065207333497986584550459401654301964830469959074129652541351238401027805868996339600113026598493426723381976004612148920982028461521397088165277346529165047187214716289714431716030991670898564571244641949586613701345648103947902023364387427416405524302391009055144480563392775399246209574498990081454538723535377666136700575406676040771642329101090214998570863202740481058795065109244552697602133395637819673383375112224619091419104596710497276008730375375813853667974229425351344900955574589493664960676305528415264167408623235738407350841842203255681823888666160756098363984700602967141969895376053139164539014527663899560684914946342320591711200113296507787928286458993586987359078388846499526867467483733025553101643332098914660656589237566706969678731286487013854955443834800907487223443882704637607543479841190975345557568462367771069866136120838728419436411663684348342806323571978902972992510544512505097406203657425981001622763113557261737300276120362954446730254598202449466921957701712378526123018076103700083585691584333818230762698218442776279020587470388432981080839004704607964583898173290880146740883660532145107773521883871468332389551552310426625398743485200011889536472799766772205133321602536020009075618258473894464101998148820367151112783658717413823939878636703442945119411899907223947542473320360315173565296278170088776956226407414895797887174114479977219645221809978715271968636910403899445288682055681234393141896792730449097305802876513333999305317664708046358851011526670376495716930536606095656232544134249496028730885962784234002576704905565848694360828318302104441357254468019959486785898633940306340628813956291744322632489667250326422586362580819252291213289455636286583049180921361141264380524433137438113645721000279394262190622884398631515072205090182483758652606022974024573267869198149772370995766991947109069942637302506528660079097723599033138713511795085054706718819458127227268797887116960386248109413685232733758769270206582588053968555911585700777831139287452390777259386559137689489346964902931329392424835300312770161900294439665235717645884215754279476782242837043094230649956392001287169327217335474041614566390955579793279129896962693613205573783055083782577396902066812864118998808029393761619518012129158009833026524703141499198445523176366680774305765989724084773688205648843753004789328220318926130313777850017115482521406995957203581522401053650257314621178215966205670848314958497400972165410135930223233673145343472023259804492706860239725819115099968236314070861569214949631141094163310411057429753137008531712064949299137431739188401969694960876414783971048179371283516509029051103636414650668706956951464598024785520848549696474206813437664938132375275642570031284781588599216249862148116821685643966781772911692678580274402807966091921795678308428397750983639799587490613454807385683487821326275769051483143514464504608039309066906411579145376823625471845443214033847501630614348484623782882870017904537563529020347575223434484771855682365801788535171502922659851370396414609762010072856704230805869130354712738493855385742919535491905147956037754775620280112926772436999685243177183627525321929286070922127345844869639926468406439292761093407753202584283404269452611566286954180615950948853699461743396407539491470347868695011082960379693592424309818980649488766010952593003401604700262302916209202072261413189641888823500285388501433768872720777012594480456048580617362319772330712842537481848396415039402443863141928516878277828940949209053888484654529250825008491049490823032465652133460927490075223659466112061518295359425933649270263997429323096940591659913253806157780046650824771474490452325417206997706326959362823276168869834299160900797998652520753671805321118760257934955561923882427835587375864589347363098677069061701902317981691762743838538386799471755789753389542734625905973401600303040390843916120017505844832664042032765363468432296280333971981349789654772141793018199365986321167576192721405239385109285141589757429464418784878852868705819140277612877458686819731469538540547581419495424190681710755450094039076409016400934854357853931563464102886293454434907231775190060007056694567640572561595598352002993344651144821605068531711383534663758124819945686392756160139017982615019829528364014078393652279277977606101197949682776673785020146520755359741801313448628781688115976070439894491214184765855156544962557594987074482998304151550239325882653626384102344078207937946798577447503890278069277260214560370824636728880015480346558586641749867831236507874753669109011697658999489951801591274782115080271670434388381912801600245913202791556025827049198444939688913734599168309119000081265231255824235100523302104252339066947918221235824877551226489020045963289518303724989029882414757031689617888458514875057585153500138110286421445578028255229395122569115980876264068959754839820450996846473248699774584806048049692986785667710018779841902292196406444537409005920642657184913574674239547519926736677241900748607266922361170989632064274208271441961028105250618817491720265964214840735391315015711271450086253121851157205934646089371275333223602599610410084962679505024294176399359297580199001238469222846405922023962979159449035253896799339234256933419032350427573062391291768162088950806814700408245610606323278269212470586320795724452599991508713400254166195171840750793481078203723413654461612993004384508028159175322698288074254608375067839435352406417358124447052900880200898536878747859001406567986891807647266892152519050916698298384932206924793121537398999685834723092809595050522418219039897949293908198645745651296522841921251499360199768687055395691717761602437246300563374959326140809706714946041272099460045844781646531683280554651616282575464870176832172003466530008038825787102200249192008276827332730277209459853683922096975704958106158577143989646932623745014214999625531395021024015064768228000207332484389370142195203325979534430820632117638785333114326956988090441876503128458170603912634294386187999985271405885820023491847131510672127218225563612754021526289164088942437787885666333778620055537971400489021206082076355025539251036888668252819051278372696469833505109854220085936263335187202910552817440194211205855444215493235316568968388976544586604470252871152756616261637590953124146665428283742550950064145807616914807186518070097133829289888211475499204653610887241460328595360974549411889145657440479448118870306522476411759528577202342714236868480581443109998173958777589095937514747945438130729040544821588691606088110924425882628211691829525422200277870883968865757519881617251111615707379632092799592036469781181382013194917254873741410098951961759395506899489814898247033556005542807599116057459748433754587279733552150555541833736471150115291572506207081021701968707819107771108124987135125841185053185028820306903806777468634915036965937677012384384447090780622793079476378721467890627184379462080102230284960150736573284581694439007394534651184263293995189803141925926530854303580386892662259306314702378514397427532730287941364132461644755065849096182776269923936587269914848623823807523140802496254615027742957154539684603332502569405003231304250559688002376593896786428672855286464789965346114975447178139305396178394326274922546030160935032959885420903603728617261203531443647186661951710626026047152214107950750080013438588591167923044210701187890251940533635555535608191762889179665173115691475201928687837080612876788151819765448522989855804042312615739658658591486046197291574493919640851034999812552326818253133429972599079959175032041553020807377188872468798625999617704172265502410229305326060295352466550193689263463082264008842110244165558993856464262020754645336935004583233562285265334021023475945088614302729343868345919147758815288441859200018188911844342851352007591773377435420930384430150088245396370196068147069440941159970475296004961263623591085594766414199529947580092922203380619409421202074854553697759258637358042070638729836601524825550842967468724535356220519541018648748078675798160913480159599664708475078860191167977028552441776905498899269043487780145365450718645989245398832632857594448510354530211202181926567486885726998448042294815711205082421516788815609350202837126398423651512593621033407770576739149070966606656721617837168408407117554906290482430276645160872990494206908152360648890179712754632589130638706624576351936974735914637792218620090116590777973318893903250102436839477415737150188874000102862836590099782617733803752748961381030456768140158787213052692368698280279548404178370669122373751115723565124519475263676583574485807085023707005239144032639420034552197236713947187943729158566832972893627352602371451060204848801495547276264099643342066209072959083233358057698017919029379548797654431698619674091032697058281867375221668800918378410346233231566079837388153655786638679852680136152460137331535369505804161605422361462559451724378223532668336454849532691945372780359645229295397142772117113479240322652590399308244072922397397092384384627169214419044290105368662473842236817906920792099695121800872693077299417863549152424390439936677701704026950929958347972725613095232585694511727710103116452454133128041060625075910926737476085957086527452445786202751354853029337684130608311361488877474077227749245624062948297950708590973303283883857846547217192609459623991913619413676941817113379529073471639107730749050552179776659404449621849387076441329906831936756372331469294211151648276998259169700241476574077314751928885588724165890169023237772121862320313188572384703333903071907317147923621783938510003841088621126919692416890718776379393772975121009855854571242550520018603833277765305099099185484136104010600167425792903605057424569102125710219152386273932446157344264450948357514053633173914137696484751283327761102404320522143360816650899029861647003472874540540651857574405338939158201322592840080916364455421656001922328460946059826587284123624316256144156837231574158342147677340069990378623199231355411982244978299379420082376164518415335762835761557153917678025250884745163711346351427664554140818888936089146615275070343620301285094622615160339710294115106601020920611890135131136276314435010905933141530296303584148796515529846507158037285760706650262207927419096098932440024787096666880951614778638438909743719618991996999669110017134168442297378238039960486895191657715615213385097904321009000893321073085964970581241173099159433924476931516873021579993208408459924039788558277496649179166172618024291149916383197048743140734418434879800339669509701491515725547613344854458614443868489393933740392352768336103634114932340142227565392622766484808652407250652190614764009917110938455347604524879460547870599990295162234871866255208474472872326489273492842302355437697890624291446452036915327499756263257003959446839272309734934123157926411786418286186604012707860184133068527409147645700947881992034314440849942037989288307708822711017743469688155665263944572295845694206644535487443492476764110255704433434848546308393676406923992940708651855483355938510347153626536619821548946507922268489654754241369842829964939645528793625551534668248471273486094361172847613265883844538890713217642962216525312957138146900443119491664926728256485292824011857907400560207225780080432522110634659889216092089635084427080215565831250096728935783771736371188413570287594869819152722342519693977192274111041614216046381241588882462280157228757701150556843573629936897193758855512076268549426174986760000760422539025512399403515541240438948617927975706716456154928113730265392833750189901706230613916006374646484865120618335809127318029641196512329117916942351494265745564358912448735786835784041607140951100742129264597959714035963465863179305931896773671527681481252855990809204280173396266192979909351909506133074158681172368075999717263457773752434439181653882903304315253515995356783287139783040370188682936513625903436935115420782168887766437776633204115179158919822516240662737144695470866444606591186498849778153284439124560786035309106179124794680098661864058413656001144101938008863178757925104194795061745726966623436841325709619472898168603189942013781764819553025188921355791189699246469849615238423839310193576153775965226415475403689875263306705152624345878273246217131258238778021399619189660698724219505543464981923664649162890718994728494502756945265472066469301130603452868957771744731793987979619036243803578990098176567075687586030032054752499465714154636320930472962586584446615655673932196804083267970380776323783538830019603816071370681984424311790022202320912523988552903787838377260111877810523574994641842593867849342489867489245353274259756539422815003843634533102460182987876068730629966533836115824433279991537863083595244794379916057718693904390051119380376380046463096399165582372830613640951709632688736820003281710752158250795199473401629213001485667237475134765462615268152358933955439431432393931688003109553111344748935399620806632384123968805674744623727362056862263800101265979829725534172120062800169335595039583367463508314189120743410354907971086196852579911123313221669348022928376313981591411795774107529215847953158277035786095811311230036210540732126289721777549488641751382743378644390522198193198553603325529039953371063572937897927783678263298476969024490556016559077137879679777237117037604741646922786958727270003444030581571309931994808024989868945408361399068373951421941837762532172776451981035786581805772545569041634781759064070165964623236331714255093503854222104722336548511926389157834654348122440867530470630249354238686857915749517615597243812215329077957476214634074391587660509588803091916522303566102748762283017674238873132266556140069086056588936042375969306780572954832637884290116191685396941848246666234587011169931456139501031030573269751831313241772638668279058729328452464552582212721458067911555503677023562781280650038346410850473786047886669665025625379841219479103544202029392727933844275368407794916550061552653853324702374347109595890191218105198855941367340500413164818071559273080197819139837891728581028839138441843864710708692881545438316212002789080464599896832254024785448215775074158422646646759827219591568687888297418603892769435244967987753636819540489739375982344283053718814023398978355381831566185072930296930376708275801740878491377345783113632363288415064834602828639677906640322981411490508714257355351356623254559485000905379403662381950760558992975956058996150582357103138554486118941938668545689418181264243364662163233153798315837380649971409785293878896069224033383261163293711616650866182257418530091070019901691604759088939585381747604281811498340708153151498255777167053903608386011276945305222641573615460046277536697203930585190344235895708567940146625820899363266021193474111364261919610356009268920503319183917682318795881037259321397744745656167081677282434711054927301825190833208691807241448260848130153457496135049869126796638171128904044613838567069937298988741960612390587861825675031093841928008607692440288884366264391281456057713639457367190229807542075770168184815925622065430871952679710009870503876004748159818566728436061381342572516449323442985797529574330185643115519349321641881288119327520806087380606564599249499590436071229931351141453729324377887140712280146058559606765266761985603622482868133846546341003401849901270985330050217165152656793486465942150027560086610698565398006880896230624184269981177781241638481643746596615934637922833975681666832574085125362944267995663050086613054379929273508059268753635067141333676745316691032990360961396329248322129920695228209868690708952089954715334384481643393164089733538354663258794941252620755049433631114470855931691028172210511406533330803457930164356709259671130535308912788702420348352116814470039968701772218715448805051605570313636309271791674258940014790360573718732539000930331785155565820221215603081610521797020315591933764497553875464536538318968933507134543961699121951759279638346952155049856321726484340686159536295242275884302075659156645272026068438542006969477090875503600429207762665943593596259602343336305358903652184118499363299703668284708210273043569951145198036031405444679871943009499382477061751438836226406096638844882571489367631167816439666435797337425642026534195607767063702956733248995019668425066279304358913380078538756197786387660531951492692951129768209924168843102811067291450072999454616607408471572491875733208466809786230104651175554019483023200483210525683123035390807587746572721386393657952485439220173941493251912810166899438883877642194151640775316648531665059843806088270143372868109565986552264058519434550711795488416827730896529211209102398304308096467238392784824913553652866072416444816085869301386806751806783972676717717565294116596332241595883289550515000198261574971626407906353231487753842995972056361004141918103471208562200761939897107090479745192290166096058512077198628724189231597139824956738629183241792397869941916729600885455884045942160155704873661248543721181433941341245790734550087978289604350903012483136333697995492002749544092510069158599950636114003389524740169284378877089965301179399941029731346807713564750388831743357444970337137967871151126590725787082865328501007277661826252422519155934020710702601033633958308148344880697689128635739096768125244916112093517689018240305032395232389388719535742623172800709525808129161567792850308124943292153582277785607028367773059676325250670912632598708487407147030954910875907929019911461753571331731783167917310638549621712923888794239427953589821615645911845696471664081924154970837385699400647632747286686362856515795186441624946708866174264382633859118226722353738783456963338505649898797301162458751047328363214351611992497871047516101549840243886547717468068781035664390546205913147579845675809702750146568074519826293034457170027231910702447916374546295910098246570123430808854352297859972148173463697338272835029998789175021249611734710862520074108999160375354864096196808255274478762684528463411970388401437367038325584088848180114595653159750079229757386222701725334079501160191905843861797086216763899731829182539280810725655956523838349570155990662296154354435034758289162249554894287398024607899129942269092712210836534239050673285443366793492233174596689972252207415198357827146036907743752434531397128726865483943588136909498105368242117748907483249372219892946269931928799936854648610486111644424073487914787431916002764649474048562301663856439182052242946164766767919721320050610692351077687218615570691271352722707248280012478253847413110419646106742215911978087304174820936200662617290835524949962167602772510622379004509949988093148112988437066476661985827628414981252574964748110661202968737720877452135179357362716913047992295606043123227457860353832411286682101223724489072784208093793644817774883899999301046162552519889932546630856306528884645032728101087589606746602624082431931239928118257969482879586286094960696917064234297379097932626855908381095531522720006245584010290031713875478553239338051558160455012621345710953229116661106262982951175856974140904809746104343720703328215085745836531577736397540006859681205155619436974999986034134776478614243399423745078983405457262530958504544876126294063611454624756005504082041159449867514866066905282201104676924168667347891995659411388605378516329557307682367732687791692998362449479617740106352699860237239565864802024166321580882434126645350359590979364695031936341889662083330772077368161737987095355141264887383885577961884759892335441440605953395509738993573240089260494309269261438515099500652091819944209292317930696334260534725744918677219971897147133393002169863006746071175002777488553198737202901204958707576106788427610611811476210825078314324749015813457913771003610042074706372222438366081592407500017180466395083675016625777406055480625940544759577764943836700192670469610476933542052918325594323552915950008558162772731603272654814371893072449606689178283069399734972328921008182838167757005191499658463727508814097958843985630365511165440125451160582586881409785725093846285753491471084288906612640082883849977320296423747072442186061688353325691043109483992737218425480332489579273917701186444658987397775237491607167845470891001216427933628107123061822495083006555480276834195075772291641725012554176247504508360096287037964143264323973283362775957293074828905502575811763132125400272497652019645749040898974595133630695345776192721504410999487181574447523738178136405934096099444031749286838024720282000202093082966651488378268386668112535325320602377986895765932575842344107412227573568140118401566293777995845158601031733033486378452010371446252768554944927623951915717860315232562046428625661400679924836206144440501047455685264798406505505461644341486244016278572346487920373120779419374671967546401587317533062214997402795829004412008295314678502929650911336450189483785408885244363115906534647225728484423505805485523544985082644333939882541969602423760898982717509155147101964632624713794476332592607790825409329989277916740910257312685188131962650864527603055481501486297442528992240213334632281963984945324086433323951629385522648238749816628967701178350792097812374871777408632363057930150931238580720057229308712300550788359368384172585666250641442310110722506308865065004305868656913504648402829616674389776330428709658050871252856358209545411048141010394679192698946681196496656718798182744561550703494105837038451535753271081044354964326724400717917687766019287693635876561425386006667948123634888691486250156765925013904893246118712171192310716460078434080136976973942135066599345355584892569296140936705599778919217043214291342743883751132483459857344853385818379765604571443368307211029402792846206396415365119070543649307563481638892280570914433745765566748541793092086463197428111932839297781301085838395378602540771128700376769512846711650948404111204087334393608460383313943493764505885156129259817716668303355691822989952351263922990635837679143258491363397934270047468940771687783277689801675185251350961994384310271440928175043861169753167532604319427107971701849966876371631394063261457975447037253010929335680047366062305000798173237946464573043473190044506328631876105262737968584541139640105803687318259438556392611367276149309792992034908118805959851524189929171624184740882698669665662519499914898866946568282612325421758839848321996357207470362953000016151541409279410938858122847287136478912691908194519074607691872269014345208643251081874646729396119317715159920721694000078343931609411421308180970647141256340222035223711433276065522017458931031851230797600778415045027899394581330925125453139586709050802924010004856850004603091970849904139370205947463537030007650882708905845869059227207151620217548139211166070315523372638945290207664030209280806308116235377388226268592784749513852644127164685407289995739910766051516620582009880576272834931020674269441383877705506058761270876041939245292501709105731246887663438702294677550567195178178869379304858343642404182581015038699164806175302190096482000235825700354292550075780030813593121219425046208322943830675102783278899082112700798909435575917179212110050100116453038324438841585951322947914510906217293925219278289919029246016647497004432406933372993807793279162592923682788336950759948691190215142435911533068378126249530568182797693385416743792436363281324380373477318232718036327687318735526003393652975978614091420210974738228635271304614746002570676672095541941117053918549698632340645539844307067893754756761094928720000896660379329457945815608405510242510339818070519485406289134871251982482164618311572726422983150771422352815320330454746191939347131217201033884154334252029017103422203837539480955138783037051539237927881438577954825780578049996608067417604095127980748642140992299499671245977972396254284530003067560916700094657485989995901890688474562739619466580800794882503614794173649747242070383322177427863159911874676330063535871542471297802550287249469806641225739237196710530743354556270626625312552049669583212542963439960065188045589098775778933643877022630231465794038134168899643633758301581350181371841827413295236146755847155799415033175724640950853728563217521270373026549038974216508428307649119437094535019268753544385256929521229674321033373686043061165219388482829095309927267063415574703195851145326174209740419680660670415540332158731462707750932921616979116500862579676223169673354641751287023485974596231344499366060857482735462398004830666053717391124850663235729952315948777640548377440810844840426940773517632989509247992388285081948297706731979359801296274096527881921221467940634345044895586570827132047599687008251258050252972111015991410758573080418845439087557835602131319500694385669283776367372924786899639999470147615154969257079941301671178554591077693824218973056388643010386030916733373452660384286755897340795113183873205638966484702747371429943248170392638430391395959267294687829375857262328774143908364824831090134138574535657166352742897392327223975490945612105519011190441486060443664127863565650860063784324194350350142804188621159733138379684323692433228655535259393698374937064338033489515814237257791449115286373360106107898038296775999744017296944546664898918666052889541920515036170659438741176420956530897208698974844686705355250417214616453402395743331727983195122126948848495667318287604414599406380736399064812020611747437164059248775288846460869463068200471679060767185181396208522331973226530405084423847357480766607199774559950020570015083285218785711346025187411958447502881174095516922273775510711809710215064302769607821646129174077291379118449896652293910149699109881300647932848078107806270950407089314973189710412479224770272770448271340119698189929757381301365267442992423053664903421755024482046637797266118152606421321950702789460915327223349387052254934112908168508475970185735144076228883130040281534689980077900271456318876753687945225259791713839719786120684734802825843868271936774508693068995714225940609278849261803145708433520998362427234077492161676859545610678113092119697991025452131187525666042671525826659744633035360839423482386030514474976556450454397351848849386350457834221444636295754113222830492617195742205484523345298802243732610712592623965793363276993757825520520717710198809647418257405021788895113795174501901831003911498108560699224653172561317265446142620372881284986897677913462113736434986238713062874712752447248891814441892293065150926683598060035921193340388525511278679633645522222382252931632701248075376647207936220546240345583053476909659719389947729162562108788344193017078773569747314054733829111909679216202735441300038227349700533498711755317776217807425999541312292791551118001648454776562290343295441905709790228962447772931846870266795582882157306034125719373963712240221753719627275396106119131958757340392828488752705262017287228858407587156986270432329652486024406263339595766573987051023642095163567738855248613066569419203203348277251445932343046622083084735488280839756767761125874409781308261587535375288804383391481870535809094999850312307908779838972447803236320427265850784560435187546789739705160948974942432619383481036077066456902115276970426354276254883112007668912796405260098942955824902921901662986610441175587738741483631732666545322062852843416259272434173179175138476412037273469192313453314305989150808257189059435156513581212256869747331645951737814118082928138524517035894126839058134820222351912004803647782021703005281945841583027147198373797058737199528399357769726398553286383970646038714767008462270941066810275049814294643718650733595368693647039650413563938923045092048643372780688012379620675822045209525761339275108497526770346274535064310143003214495041649101039481657826183879973320863081694469048430680884259419124016022107815712935568342851670036529439427845368500747973409627252358998620807470331544031921057831562146132153308731473950083217141811580518298836940780696679566888972536410800205332544251156262744947912504481193535008719029605282392399705150690380241544010236601048322357028836752060579238513004358204862123992959541222838391143019383285221212861445783482915774974030579069966523444851687535604451089811380673852367610759038208650894734627904314159879080526029918327898580168125247618795482967468105727000072535494573511526355174052350175935764247108328304975529697303964726724628565571716453272877033265139774835099186251252044465701743339873136000812126956612690968316961883342092902356250999855778505213384627606460661003435191604618453234139247057905081362809027139950402669738930040381265968858619926429829841117993576635650624482613269977603364902536951643338549519273697350982362683640062869807383861779222089186442652996997059176286022444579767705882972447540118616684351784253075674959761370832450737138761305699944251062726042151671981980063767187227984939538649634561577698230902546847548740984892009532050483799175483231770020698840273260280401077639365874595332290367097865382871300901162575105461362075187205203030930680643672739953635855629688455469199486615224728547987200239940136936254369925174774314480965027152656751469712222396383171705174755298263476976536117674815119238796757215305126844203294814946478697315133457050578467530929530867431643871253680015677036111256832969259424316147080624853877685450042264249018182064130936573217850952458326156008475065630919821811581162105526373607589025891675172463878799040345668867345520469588881067952846436555757064687484468449276104418152150987781854401605613326307142252968442260374505839358602854412495396286036236273746463098987564322720875058566247787863669563702124678190373875009512994590353777993904629743898582762190220171384332261687193102251966198656944969304823776972069999545387405746015944595477666453348385477809368730865440349964752646373594870524884853743443636463747952058564815047795389557433094118595183203889973230138972411568854044008933180823847426129681457728403108756806553795199896384605765185637571820867759123013815898598618001696375105406204821545603227019736634244728800843545501121623265243933099693332852366919818387410011757256957088775500396295809020601147410812882482991841479322144081676829829301307128959593811170021582605210555473272528769031136209879198450768941116866143571080386834057087996447142791916815560474360830847130649238213044583242138739651430125205146738810522956921615473208573007183135838369394784871314897617938036416925350973705732400778771569504447062932644052737059426107310715582477138934534348981322130750654235170610826191186618820527449539934965531227183004588236315573573712781422760535243038981089416946886358458655191031040887314683858506739912715401347856099372223558897704208874842435911685179799157547841269462515819702796910835400538121423579849348380918343471872025786525630043089289455525044767576196651595659176925032361939036174624749572281355364565914309116465392652725047977605601894300429542972729297522818983042170810554510766247546155912614256529249582418621264457441845301157058529101757819126124696150071267150518267194679995295209828728184445089548100917766529114968963352756109060127956276811058514663081188163420788860938162367323808969504452016949167926990645692845330035349928098079476339149731327990161135205386568279402286573429577389084030122619711673631710395751598180463374220708931579588699607274502834119093615336601880358551224280118334180102118667168295743362393148295797754118186421896512910498356155792780952407783592774309069692111395900254724115727009761070652261072428060747706649305321832570330263011410487296034026591298420005069343813188429255665412191570823291829998899476374781388820104836027659099730439189868940045402920613859125377314110262962841298097893670030822450247328026454462342980163296001763945324133051200629224269512602157035373518890828440234158896744716764092349108935689903276112562173787025696913257113407253454504527996523871060738545943191263544568408493771167282517338270457749111978316582184857623794650267336125159763688139865871256887771950728397329684752401105304710896850766199424436741131529714338628051844810929396644551213909981968454146139247012493902458916497330927479322334344839909525567603400990574573261232197826167854497581886104604143988392097426104231176106518931470435407769819845484920652421322685088346878362775756575992513064490211482847270094914707433406300540685099671326798711232423768054792386126750998907769406956596245157941740859579400651889632682235945490216981944714216079786050998974258990290489579936814757940807236223320936936817978699542648959235511697737875327628197481319681980417527486610097376122039686018435698338218527809457042304365332888270015552137527373524529500549055717650458694951031937099420601586914757285172861553413999294717726211660043551838296452044058188564434941114162210254455950351932643329834966641034753711903345613710631008221159681508662558463366170491355529459013607908891079533960631987470675090898229085193086499036211377013177430128914433503758643497878462606258859518007386781306106380645389870935151544901874892677693311844035228984487483596613756504513259642976016161795940590210565444233137325759911275089087920405819726617468552634405221068967362474758020368919493205052002275581285388610712964171791053836727338735185758666223570241536298594349522482897051859608767840682700363283182641747329872047426186137326469233391354493696736481422484564374779089067727172703349267785350361147726642277489343786921027627112750887620958702417218080631341180699878060820786967401678586719357717292924302426071676773305284330708426909726767563496877658104240987615883258706832142568238457930565463192481102237423970505276287150504130248853992176323928077837084498959277054343737868760601803383301066814635563302678539791922771575046057952792460389853067935288667093768050123085514139580691437733552791430420367736292521131577296228056703132150019931927059477977864537078632068003552224136465545668589854481903026357922520857061112447374818846454388487351518505947972707328519243365336022672836270105081555213459445645968821808146066698998302601369218666613958595149729979686346169843406037799010610461708255377710016830033127519060228190280208066762409817072101983075343840026212489022416261336363223257672518539921132916817840885696569746614891307263843285878280583351613490463316070094784649535538411206053987388728937542240204473547397195260163420746418088589456653917407278138964647240791050834156517358273696075861965532061649728368910253659251859635677606236204903936528058189965124100704038451185108741847708980706658534360775360454106973395073887265260028771916816649791468383203746292006049165587358111003199474867448779830798219205921919838034291589583983256684698032225738764322176041484672163350863642246758540436846631157907204669383067114888602863381781166848408229431491450183806969307718568163012061563915579016292766637959674529144086833671627385791718583409402875169298931282392513173669826343322637627650480464543366956671488048594701412085966529835506577855611470675680637431395873275516625309562415120215193550341980593801591955749623816227742728337670645314710852469688292800836969523548789791440119898576583375953849684384887496303855207517700538655343526878503807668991237540492604776671546547073321534250016218479590413810802844190998931561096469763224325988446364717247777777267419606984353352417746470219492471701482341736884536000553907940088070963952806112976749940984255384195967139968148846067056085636886919110742398541551815169608665421829198242206194873493409162627778181792948112560223529469656985636675010692795616843263707467991010269340924968664639337932785660358331113000480592252545791744515646054657152465256374429482805801391008806030353938409865989919295092359496548628205974859914173692721355108515202719860363966107942781916447028554304906474700130317986336898978574571760199057222887801188943461550574825676127859919192656898422486564677552150461666063161428459751081050535182239570024244873771657201542255062738240084845789171593384539914063456205130693760172446239180424936017588491809543208038555771677127251936648326722200745091860920213486677647149048273623402389125050854730083109350383017785673955666133374174492557078882560888912084969589363531439364106716333140151032978578578372263590493586946028368168041064158469517508250257128225788186258892143732235614026973981159038053944405995988771803894674022718351846653579110513516737709327646535260219244878317918058702813940645961702364429262283246966717662475168165053077202862515990102590663743873835364483670883271698408531345414628308695583541345446029198908057857740249980136351892945403521242670677708822446355324716813682345794347131013401919103754876361026215262474973039335346256247875335105211712394756199043686506582035586811871344008316670567569509395599330515680570125886140009166806528229603808286144303100688757286119550102335435639822409323024414328458732767285834436793248230794527569132154356320466601786775506221390275214624456696861480091845033718092319200356074427253411591234639373932514060999532072926586413621142036299613122823691059086206599891286198213370388688747414855097791381368213149131254555932060199072495277720402014872494406683500680197070409587172393573988786490853653608169745452574998680404486370639163172943043872648434112199797916943253447682417894248186400210287026968140919135358305964797047951014959814769856729264545467661841094598153884931684405150511296997138049230656799404216300191294129589339888518228239090842584694060141018174570391504050438316006618654441520214524846463923800756669180182218990981863160508092444297873572650468393762760771040817459888401678780855660937093826154010172047621991499427566836953578812457019859141062047466147524145324164331353221318362190857919793855152935620744533286910122637606809755074399182497993541049698686513271249658232534288430448368465968395332155820065402929569604725752219059032508161585079055958213198383781780712805086073275473955907958797789607851747403079612285568388262396098008205393842250512202324478851751963843401517900916507088389230336001434167228679466371910975643448006721451201896196074153711743386178305557553971617145917951077193720442927450083409389709652858556203281578973496328284406413643113615145007650944071669246190514967410566474006763771829769108185076434600816347932531239432341065703481690143158903678218514493443421712967377803740404559067147554611644687065502602924071676347586095515274526479482207657270657785800192457740461125330031279099101092402915179525157332911224895768483120761292412122444089148358573820669058932401682415404349413468965293792392013699066523431263419136378425094404055832407023184437855415087710014493728336844618210295192094873149197114755349107866362627752406840084811948948398555796444147057027728411492898927888391383931508897975684189879528746464139041454251775791963684645215824490315327571469426502750938599321070282743142758708201659624168996237830026127797429437567445683274179607710320861260366457717007627824341658369792367416372449227158131802171364317594744796161977478882215471283888764386042116151136183805044781540829022306583336992589193851659142787782739205220454187165025021806175518558502303694307208448139823693351698558797666239487081060584229549172536420917295949120045225029586436421924038520667571941786896444070404030344912033938889201338990409655401793251259021117908859730695572846126437784699484682240656461778118556460905808640640091034987499468026874823855000637865336429226926834863884659690773490700123041187277452215847924269970227487607517918712522968897524740515476366991390817548821583048569869460420714854222694909310493926387537573628645151507643743370956970542040219952043393424547153586258617752261882904742271938536271071040755456849569690844455179631689201096737288462053797151672843271891139067063421065778953538133042556660781269234264218497370460372804972711812082886469726412440522362139581849185723079897717885650106562025163390978561159200218565579741423672947154715762220260991518191660822887115368664690126940292383835861696110594126742059065050458694370587120484712804698278561708084900041843046868216629096357189926856140340179884689825643984786816690304258655716812703296133632957066530236523551870904833968568341023003029825802617078175805757528479012000026260550850464907891036450766562113646074854681746645056352315161044849025918928374043289002401563709793639423879680260028424632288415483315600137720815008267691902543522323874153426983576848648891428933946771262634255245698411817662854948195180060171349229748553819056714205105217868869075203175398155445603759485481803459000487331886978860724673680570479320141822409833364682006305072692505997409461983377945866418922641866158493999499696665073899197331640602499328999211659035673237955791541037747454492556832018406140561861640707466948989382458946151967436215529873640510965524700877466490175970116165256315572911394922080823785738227346417262736520890192907938006741680660696578963803367871887739214676270970937103533049899751872700023761620067657098430122285646636576492199904790860746813414629451326893826866774350223422328002109199288977156928052924413348807050675473538318847450065679915867152119388957630826583885232029738465924728403362265194305969498397133132172625716000434814499147005259728873551518888965846429275462085795925823067745354681692432761429928837621401150208793536799966503425487384089719287987457094688673222535384924658181554313749204873785078071143883341571278251197862587521260386697574970220118490429110633771340236064544455184753769283920982930813497854683321843928057001790660786987179022952494088419561359481580622108900783049863323878183318349978583474377038670863589234000844141979839773300987708194989340388268634535910141378437539701733550769141049548757780204033787848650999259161910268499959109124815828011125486012014432557795715587907303881696283502796969316909514453926304006234892689459392924253434468491813036516702535506854414884825999203992125415097572196893835699106144746224843917703260015442324529223941290569760191660859635836466648135993875459853319843511203286810538300696726934082242536758048629365584371829697198566965672003739748182693634610492381373324203033772160541190458931946463409861556362446645093801559758012482134451226569798123231142803036305939931870659273203725738408641873003408290366128898566053820156978025550824206853400850770892396673722496253540939244325146356344999534248947337194240467950537969481383404019231000474829288555171800834731163575905218917967479113255174388390329230284502633015296508838619841388069974596616618138862862483850067689708342395277917506391882280883787549637973893542756314838697624326861637377712557613791301795226993520770247875120809447330810251870111960524023228681875912351295034175052032825194292344588172021879453581421945784067302209336892073424347623768986646138318378297040821300626336145003046352615847350666692094334322780488798216970558725180439521364334762779347033947830411801004158756524094052253522313181123082932520884763187250057243746901157311981675617538501076494150477136870107852506575198589004415393370352788245272263852157763467247282324272298091701171337403458456214545757942487617184370391356825544852609382364501537267409410450200079192119599381468743042942220563619423707402159235452051590916893245346902939908024044269262439033928991287719905252024178441181907092795603370140144975842845258891258153382368226584585153183894648850747818300815105118577747523761387926363262518333639471867952471765419038414412930867074729280710675943203187268504554561968053039570524193012419791606579672835675836386912683925469066275349719103675031921407368158199454588550817422731040783202518136712996285981732158639249942188992469481383916864040696789176829887587868419896574113373545350488203115462680088242869615053348622432860812314446283948828009127117141759330339680340979867187936698478612287714639667526024850374131979165919538996330239131021141394877424971113385861017355237861629182436867180485479193434926623727175884862924066279663927301035888577075331354350937874261286003373913717972738675921429355929621274687659697832817244796811872034770245286247756933569701818957769179586732387131393471321944723483570124945474581734202885671828365407511764034743962913617774542049958821954112990635348729884918183359712938273980754521064965683779086140694037470297025280747796461806606556844896722408737834670435292973002002686965544539563959898648143451830608076578057070923637855202354849381925266376984628227329498522575083714828153012609647126690961928889525802474334227296534720197922428433031614707148893819992968595800900886622044153615434523722501453532015817702031087255393482705394877586561088473233610967273722292831711220235343299506772036811542315449802981980135595583028010833524093090297395263203913371399182505698549827620622723961348259862646379234816277729149569457198142763873309551981868047631573403281021250212318527691741173246862855835461674359080440646134747587423292888726236988307474754143521588676533858998967338459077171803905225074660112365920665492628008281453132776741982411016018956764396168653536301710120707479560957122499502810886580089466371724633139951475825220831042512647377812276308969232697956795321892415578013947554272438045389363208324758996520795099752226725604540025243537594218326684480038763007034043032290412776689619462974872741311376550537912824851971856214549147387735073718017082367803469450297813223699159806691370617018640074026814296847430092430515235830271803841929410010418129782012754848185015558071296000516340152200485379386979498397863731685474463201714838733501817241331813138431930742404013719949327563951374837314505600008951161785667259002420262724423967077418626871656132759201198723162938047809866168183706245853866189026894699986856464758644638136135038165414254372995740496833968159050721203316804465842689012861472618219792787689115329595749655962364538706986614021574726386150273153738906129115269539100921889381033866921399012196496624230370998472821389963259738174867368548536555826629019071560976967976256744525352683492996619545071265587758580073175350372162648635527382147666768920393572528294052159027843045401744550517688627021330652626766108702992495181945255082923013099680113009069214222321727914591953921748549522908704622664079960513994465531708060820364556706456742441423085653067053302905503852887970582503389583618156734390264753166551110455645177310860258007131057395098448288054538497329914963278590485534169947499886828978123372984790314380705458301022364884928332969046147571314190254586596645416651062434960762330353272357387006565448375316765471108122142533562439860688804134164797917172678255337093473392202720922764516736594047265124402997618389429785956221654213389426837903700611868026913321775118011168998930583707161475006805697247490972902137727624511736728512532581663088192779326430990471702975098620833797842884322417830822200086897372816627874924652051326368529107721825798258108760796224476397534627048220724914196710395504640775572931261398095591598158770303221305861456114199640038434810297396082947184230196228363118587048834967952431602636058386780860832933736369614792431318171266701342269740573139416971056208862537385790560850294465713125614799081031159358638509803045539056669403821121186932101601229174533205731619946438755270199578505954082256707674040406097088109657647527129174482029791260935265957712316014095672540430425401737888443211083200998982840538703007690931176241487526010779072970851852684914035964532102069826990011552430411730041375604347422586777274300325607473892284685659603236652671586006329757744094450313661771359740474319553528247475592298664633231733745833829192268780726261613228052077202580313323042449978964992918068814329024921193726166777454355843884849107397049401021737181301392513266527770838604724671690702533827044177827427950581223481592149376614395244128627453311956775440802222493078249803218457015051999927549836226855081993685218572527694049452648734121775444971373971778758635724431670203767116924430919234377158567550526601515504761052384685726393688601475239174572697983116345327748558666514626316138218575319418747154500004389801984881431136171981788787912072142613925220008025450871359450487390703252731674936918954458337836542249951822439285368202066283587741104295787783294069939154588094741405166314029972878801732022596395280565058317640420291512451837472464933901628950541754403904551324207722688282285137243347847982901906064757046487909748620152936600285468296165648343103753565842789791516179749850932400558361228058434003780618419374817395410350455126062849707072148085570380124768006314383499497214776214632372513302266420870423886784393130639186859801932960382036028943833371138556163049737158092307197287418405124288398055752811049608829474009143771702425555167499134072296206991006308658845182089275021972846779233521364039617721928455626095868760013119537497838441096135851275684879428265882030649634691545403460435894180872515883242891818231427407479187827358494846498574753301771773651547536630050248524019535192310078372416088108218822541152426295297981203901035028021457317582545256355177999293376640435943204875344627855687884513654957447210922666961401902866596218169401287742271347892231583561619234692640142029927171126368780441482467834718544327419043217777124509463853060635367197989189620430023212886095523267149999865086494793098645486214008843627711610265093114119800827440000345545115747730116747168417223925605603489392096779731506384066308285742253206461187324608623682099458111299391551906454500224756404723162546674589688243843015167313395648614276871554660723169795326870520509443619882408783376065263518436517274293587448800888343283798585670292782429271838405483336817509205988214273273223397690417956099246837540656226761533184908136220754622217780610940211062854692953034372677685472432896993982459186501325979812808230354172949597366816441867277493256790955557355589465605000082527147611421265965921859590279650709807763533938303860865278438577108038597029224299347711605925522490558910700370662340198841847566536540798433491481582530443271135417164671050722164304500724323572407160038187543085350717225687656416726624490136291417817254263683700189819637544614068006237848506492932580977390370558659078359021343748419489242233240491726789615047469960411234018433005881260033401301579776451581082310351415343808751924312913147255033161893017861297213049164351982538941858867569804821115980028326568079846030377967298972689566270498485195197959166732457190313956456702187286491838799861006296009230235110903135881389665759548891020051984319371702212792747888949484399705253290202336502733986440916976399678859325443545136618704559529375615776135689244333667365746743779691505801388936871476786159431331553597396163207609372807233022371472476833361003323365565577323409019492691168317065963446292558260968165834359930575396233892169763255311512335399466995264428334185178019659492554883292419692272154668297250622578420634509786138024765846290448807762497076230054121290882252996460926005913518578474157666003951328353105177554291889748949713545122562217006774816206854418821328599426983693684146805188659733505511602213578927282240057541241385347909250550746381748425422009719709994585326829896022208422543147058859229589454473730155794850482015335270199163065754460795071528457087878144497915723150538575104606521600458892702440541905357886349938536633154561921849528924271146771260273744076756418160243553016198082891462850065671914342267878051240634734808776092103192482444624679164797100464451695765548512921427940282841189531578790285754264287142196348283071191268605306884584281074750328601515064926628896718839883865166891860417970751228582834252129738688932788886627433933607522693983216563874940893064875727575587233640884008311608082657048357925377954409518797685953995417503545911929633323534996735122588128261729400710646343012430179123884372075185785263295087941732280249405574612562457388317236726985257749470785744230487482833087460561771838117297254574241939014589792101436136819815847798700783891629343387800025869703830719025002936219092173412177574201003865417948707718250426081838993430604403330753213816154198673739001622041749339171315333758890283244663574769127871944838850295446229293805105460070383226149959124554320490226492351082537050440935441448936666139815123910026509135126149094479323445932509838936372679196354742189581134931567601063938399830011842260345471700191693239761636989167964037565444964312140415028512036821058485781645765973423019329993897994980138583265399765787082226619036121332739236945604855809512255235847273789753209469528096686806219299690669349671196183311619256021701848426684322509475995283235829917577011671561609703444499508314864382746179030809120431779042107715783416217132649655304174156276601852302180430593256242582615176418627316715900368193769652011357886804733947156460504523446743772114624868411889569805607670877870067115026439408922161127300052375089637746682859838291733173743862574788649237802179339687051376501269915675341238855877585161566666468158560172173715130940532897709501752417057297348928465212419222357599281459463421802804796382392573354448134037695169929878824253254531024610168961918600376463793326854253159342659390832375146907641729659603364180200721246635326266566733614451468718629651191079356183285772239507807289621499408656285186069698579059276736837631895838241175418142663230385081243316772229078497943053645886738283170896389398384993315007958881191253671532117417630908003359120241840507139102379546774284033011845873604593338480278214513585091533474502195218852128188197983477252751838081107132960317355474844573104549258129178268058980281762060413456906714807951026243115299911864531321288242449930272290215946293906098733297153318477451544268245101658179884174405116446407319377408132848278360945296616834648581005766988356528724868664858539094675143219422488758529025035277945516925944919375376182768001850392600995319574263912422758569216372257492619484866228759737765217562525670117559926209273213620392083168864299855463080571259561565282032683956653708939204852270318604344537752865519386000546233695515198594806762836711364164208054288050150196755086445816648065604470545200816522307455904510819774047116210819668672525090077103101476793066765427731728911634425939745146032381803625110652599263769872625835919851847855872435882580569031235432876138404963351520283802625999465432624730211893683621187806242519266367344346168356843607105115593583150743666908404568672843889801648336142065901915367601322044997675231916515449077904259791935666791645867392045889961408254246525706596344447528531108908474377196670775732932951494530475336231758450859390362922184391173290940928208757115770243041835665461991579754710105672467059586643260785394574682735628571695324535367032111271049717452102365723996770014630057904773476685120907233672702884067831637039266824426561818047323266590323409879956386305267325056004294606438636558892604665405653853283954961435094052465754669967491638573429370568943637534760095338890094953386411798967897823380702600914645304748189861000544896560161452318329074315137446560314503572577752266329059011770620105424927581146088501622604692404114840010134698245029588824323980574214223054059218088383151483831517299601460212584463349295733446976935984654169174414182894647668136392761481981907043224419418390489514120966643637628280580892479168157028076149653983285870125675546578692351427402901387018934102544770978722145801002530039462926944198824359176801960812788947113900517639232797536123828079742316530245365663539216899297522553899139986055999451915879724323003648295626657004695878456790869515136584260042374467945103009986285053675948017065179068140236581117633083877095291704387154679957327611770506584808491400984341900097911427235428872180762332823846304076161816557350185420214496109310476465370124807502930039684604307518116803618665170545919979547128052411021868427862279215713436132858271143998382025990559680634257930824093989777731065368629528214569918588521504398468278768421205033776663732017389619366541917416571521331893811945052889048384364464071485018638736856316479542710930670291103968721480686632563883860261407725157363266420865724819364289473583139984949076997841945159821760023739916927885858571678764659210951289828388864111223207802104239969319302955913890920285524242161809021226949907331730905016055564549407906495655411980445226820773057530101824694387564522097195982692880217693422178596293886047989900036526014282756366694694242399034061774791974408378786510271334093310823717396119409484702486681737838834424697002796384240134422113194069973744804279899861753686868233078890411171155774163706952832838987609521824071427359379183203214794313513984530907895637706202016843876808505005457929505995762052358658053301159845255141401886330083427374607034771951319622544161985018373652408018436982119944549412864347324056922581351369504388913537508536747087641887260292748470733990545324559281606864177271159080805295345603208015872200202926267073725275339790783485392792112865901373194017650249052384957808497730262981058970188812377766367554355289760313263100280349895931480596288325838385776616512869138090002296034935410832847432590876649862047153821911681341412941932515566018656962260218161789081357573180598445844424207489875589214984422508271449851925379348636249510443009851894196892995150949412216939246497824815621909688590505806237004481990949368012404931527413646872093647709577204545609949355341882248068091990317825001428933819873832912704585629067587406904637944030441562480092637917367552664513928363715233193012126650132101555114382633891183133708894432903355129332355394323241516127388697593561726034396655552273651692633246946636710870333183708166144175247148469064677649557356871923479557230980274345149079163964997783659422614832454413288889895208928783249490175223620741471888739049064272925667491226082938340102425712704889040789109164668512699421944653310777095870415620085042986580452358951281230570024321832176135437624193011614967426976272920534341563151622342322396439424651230629090903536081060431813175985510033869669620002405792678778098558385924761233568433172501968570513231214497304363832042031414375916707495880270057849785936552699484293288029740110088584180520588821287364369880346618874214114140862620677894308890546322839728335470631096872489820981182865146370602493041225526416633017329445812541705465622086548563236044242416437236497129325853958536473021371293022573893432708055705445346874140141898961999729309175089097554709856282468034044131859771148810286211792252823077243978405384779508282839503715266325917909740970667304378593810220756336681001163430000715554685893797528465723274606968784083420346327376987333868432596921949964864904134332337118061612152275594092903106691352587073773828969044829707466007323820236229580024044577444992513222600829977845668135975539685879879638086561498337081617978872811085040168122643175054041039819977262749909211431148453234428308676711984822216240399920257724138681818499928031772571994221420861413174074135833088587836099651759747880676006361284284204972408474232070603788840940621944302561965315136324065506465173336548879465742375387005276898337101215258540699818732665367654075715414523388930054065291161276125382117288477040732062778400240196197276759707691219603726641783772884308056088263449898004713249085702656127549221368377316659683042132208741784690282970686191276852927652462929242201196949285870225611356509804550691637479775212085329495991340522298631959665830720564810587725248569199666659974453208155074547780803782995949460604068192108879627302252680211151801997467046125444270122090273290819257224498161366004325641552799333142216246537497312987591078647372596098792549630983715296535384540882368859960111035565166422442052625625190694513494161474253863119442851265645627627390330333031176509444029073413408367192737899421691308518074279823097424229974305127824922883795898922721870431546894070496582977300595839039710748504871879535636087427047209657311325538143213084918286515172960154361865549291251066090876937726196446667301736999546554978169030543373177751600788884026520273900057346645712920682377029404796977716564287656597733245466648783296735023976156406450242017990721492506674729893258376726070705775885774737390548544490927741183174909838212318100607981419996062504694268040027264472187872057106784455253224282712797127749800034385761961905194651504488315558777047166520897593339999943852072584749987290981395120835973995108561515468220742149257199148995687581666208739189076612300010469086608187092695389442025531754600796335134428830947572235489912405058583284135759319455681683698252601974936988633137646753882841548834113073506862743239096927390883349585305395833665569985879586543579528547764918038647497488006781343869890771599366464780351474770879606878694608967631495050723969619522015601664314901003070352793679458894332531316826430759353479465995334780302700550559381213143288890458717492543802973240547598533237214087170095104344104335211926633899060821019204306348948519465839790301558464027292397061211643630406222936361251937007496240381521586287608658921125829526459771935537762107149426888160146421816642903658128980029443659096497639986875241141383114717318655914187614146574000485489802694981635267270531744478238917103192314271588279409975777632365561630852895932101569509247568834960012636579630956131383375453185963433984181333569655637300887256189310803670333337401089649566961335043427146858276175509210976805877606337490564450609990943770423181739601559278626986076898489412944690502795876087443448706736029841200281693907277090870494534279463441861095867613190667847166643743361811612322116294570368667908539793982959920300536147710218779740782996163119430321513827796394377472037906263086590811195364907407678245034038143379648425189458677075215016849959687379485288223018743401555221476458133169806807100903357988554590337766782836390452977976340226490964027373148045454645643168155400742669660380594726990995062061449784367112039583867070360862953704094487570152916204480507326778716140334055238020606471559344790333987100794204229747596198566255915111812653977781194901894899936445885960558194767798661035671746658649067487868896118163184720306008506251614500179279101545184868670926688516472684979591679157164578335210984558784815504511360463846285309063469497054436483341209468651804553848318590693627001432543028233572918024736705180185214571800847628588203568619296638832903175091854752340999253714570112236500463786841372345633431877545323601549523273236325284118012346504730237622253788085588033411135420107928315358768666302772535583770335390523836116556441948541575232136943770157328422241196370223480782934184062864204501457131054488070432316287565779652318822848608066439591258205725482323083052946474557080848367810547766266026385950124210743169981744831036874029165939995212425522098968316866645941048195398652658115218331869308772536734589990001849400956499629851190229898959819091807386804240142141322732535141100465980639999924838775458697224601663057368167910084135682325916921877359736998927789650813531953443407367112622367546266173048265330294198098754556191087734256084236859260743255610668961963358368403214097008927062867702266810472159009467280593236292105306911987375485733339433063847996598788325214567807892442740831686425870334071806474953382307661830427745002695491980076815419689135961264639785961222893253457930922705275134674422950310690073339653446325746222938587899570699797892656658264086657832569017142757399057671467836622496501192225193990072657930809654381798614819658430403100493955319631843458184858733173736006544408267303326007166030677093459700635028706943381063441963665958077286613927991148990334051662135738004443267615354693131658236485954474158115053268871509807863589370252481784541288222993412238247358857446202571841340300528137462731442497527780770587924203922941840325999288765565390192037128302841393030343646168962255219419743652706660473108074512529600233286500997503213332169310530170506629812030271681978046975306146836985490561047064701974589239027493480753915698007298495966079495661907596612187944164964989445293338647603260767075608110446642014345060617990916677052143934004026318397455220997191039582024217886301593781722515170859981682737626800656399880454196267787512744028236811088416361933310247769717548970423451940612465806809522578100525362485287807499758272188071572313826446874878169627080576604479276102242381633914526006417849978475367545944866846758627860022182399764618175387862894360360581853963471362208270683264340849179224754453799621778450785553602844750343021039656874116397842062066392855925221421021736227080411188003850192865754748704666009066443813763186560903963895930352518592621296049267486300715432156162932966372625677808746706895017877832068536396293591436008051706300772927676765925768101820257256573785910171196192146964532861070867133104515527295591414046563892586348583571130728065147039689287029072278021179911216670847414866200683678075824428109276049538102085776543361115581571879196976084798622517754753016054321417649392230108080924878379099811964302655794385304654678277404795396749917698906428946918952181771003147222099504113220806096415583885811190589846695770337174230879583016224297994329094715671116352719471723333458980844959139541938145301120678224247081760399050329876821615857977477991076223233949578853606013309423599970871750399771274493680462105386252949054676655470755384744633854518303940432992471542437791975732404460538077492674763783230719387290666844650553509073445385938119493573579177762667534987405638563786945028249560182662421637620469396360901463063568877176414095464963890722664159483586708120305619968238136564796904219131857632700881470623119615566717547664156619129486218476228545041068980713955218240656873714278957560540633171945186385549120453559546074190672847068744036605786354976597692150286143493875497473721861632533991720139190649193401515714883459401537465265744944665806015164447549040056093239872996058991073032599779781454851163803228924625078569772733794299522045246735170322621666945341074164731062985174679002440607325464731156026794105122161695965996298054683808675174601169842618811306593827013322861497896510915459598466993874244768876147843150334670540322066712363330171135624740901192834299567490957570601475293403967062953618923718756311077153221108072884066162031541928365650350575417597996418946540144348722750510028141564595908072952502742447625687076138749339895436195518927913186887113185388203485020959963093146840104032246453099431836273394237524277498788012793236719203732606003895966052186888103269930885656841064989291187388918823204381538767886662127905862221841053514688553002569295022005589993838853377645436469812481170985497833375743537139682563056808126728187050858564153807725258838915657605744988371391335522820082779317940377865780091250322959047930428771445174042530683745026331501865542009314676261372788859382170136608520168894685386948791540916163616642756063152816010215406115224774758258906638249245996539838065785941752176597637663309985147961438978104979614934476937005062938336755156694119444970451642471583003446018693450694747342371287085006787613537556867281718839656385497140290918685035454968302253356107846333841253098096760001851243721567258701589662076691808381069094559198534043592414251991838850691554587657669174131346308341599413578016853965741561200763945918273833838378200509800100864529572009197810148043601803620884745161845338367706546198639599461349315441671300872999609846992149180754456922802340829503549922867391553065756985902535871696482314782877905906293339210558279508935655075562520927711864682335757758800220451053365958465568798132750419759598595682064246412190498190446856489347078173600871278762644154767761868474990617812869608489311674868460190330501817924814085162247300857606531623990070664627689672360959169441763817456335054701464165607111835989305638443983266376344945489878869723232693082592400593865874244626804998569957333122236189171335952858706311678255613996254024079280439392650801989721389279058712493316453221913823257488485287410708500298183810041011463164013845076875220978618282531592350398621972785166129523194709975049730766759904525614754056099078511008926951280964847393787793864575699468866176768520582232223376914181066169215130712872917013580414771251875016304206894782287123375767082670404736989702422071483999249600094984623242726117115422264508769155745068594174631903458912472188478269641816013665601279286858759591220755110345620317818091981593400347836721516008242104953471293698989722552518349725034989639294809130647782979249620133164434229943552109322744795409366342439836955754457077573216364590556647207342434438247134722072580627692771382386974808296901189277523471111220613622484664026086094061762047811929945228022897657421902425965286430073763052266903527142377763379422088206964945133763121064777518883856793101929134420041709990334539139690635182808742145608494428487353540323001409124608691825036507585779985424971511169924326298322801398774458358538495194476185154302304526038929875633883092368543291407699404085701955854064277320491439590459090175854506225818497567483025342308047982209760756951100173875068152400858365651298802054957090425647452574434360884991268225688015032019383339093052666676756728784640185600045180578209985070710022426903995955781700957756827615639398041660155096383245025374716441520910175298641155972082260078542490460414476729681565339397022032561715868876396195098787348698628859399917018726916889022306648779170435563339893247837176583710359032000217535315824471740002434961168554592082423431558318168919221096602079853505915383674778821331358629536610786766252739154808676658152957434129667069488173960311909757778657568184016907965759218165469394724914516001427103393744845502169491420111216730125882895426128258247470345816786611420677537464617512172196225290289640658494843997071650465804380746574600934821659451644879646704484460420486962576842583305228769257628647932964050571662684247959351520352062965918041222793343971921560424601587121177893076918915554148473534899203427646352151920724834059599838734165694025530398100033827021866765080253934734740818737582013119019830169839832866031425958622511748733005567504332294077131897962388070170280105560008313790254491352718090639131826621426976797734856379536732229308950828915536690365709743114375560242742557480217518659896755181533192468340911904319179330618299601937964873289982345596407115231990652484134425518742048617240892855642959212997601634750469463337514475061747195900168771096044607688879293648972531074382053109229771120475801514023396040119796474307313440956454070597859306353487435467640288626945380597354047825089404123269110624526081315432731398522104673853537919902260953368725466696863327414444291915410173506611982916227075366234650957811807264226044694306514557396675663332746655185266881233593040059785320249723757043704830535415797928657888432564702583069594798123791819473139855361217714461521160579570717748360465667358549263583126053577549760980336638138745420816561692183751469869399566783501170152760809544594732333541898227980845152743579437476714485512852504597707192323670237380794665470486545482394754473537520449859409764583383391282238098234446300310691794282039436066797436997243755924113267399953573423871435017538100321914503909048989685256783523364693780348086396609297839764011934255010195578577729021139754173730945198927554909104234127925700410627752231621735763719577149553441988213950438179184594292879041512046515498711859504181123967554935034411086995488608128278239780078819836942611882507021579951171319160519172960355679365306955634653550454004430107190162327050678723511856732973702377349068462680795825223354284432126545129003000313186907962196260215365481698557082704912961604122248053733357825400200685014207272027478390992805044420304742718879273018412424159172817222080769460827692138875257336333754223052985995815351972688873398134394053118669839478293073412083338411998457252543939248124898019353515642869825922572739207720029491452058502256423868846664893322786833125096397990742886192659984750106154644285018550490552350648383528373095097994592007949568578606219426938456924758246303496660667781361289974301488032995172732556743065446659332662962073879217965386904145993978497254986428744395772179422987748818285975804030920746790225831325335869923799737333894862361994669973829531269421043888126443840781659159155800295781969000877027665833005362715153251021712254898159214688953290805925999460861577681058752978525331573442954344450944914451897007589139765388171395719454124529993056050325177997842335458262290152266491294872203523937579489067152304143039654252757984636234346391807792831591933833106931878253525809517602569433215424068230632011501199197906128558887301153932317311295811303352798063050270228439174368899458073297978522367963224466233513181410865677621652273691274968544900715035177834420577842342140860865136344092194299836238860839976107237787808752152304892914400168441445187063227574828004080020901712856039434397452184764014682174875049577763883241757284857926323567499148350212826226174258335463578430749756176425130610706376017837119478331234487332290995500819877859821966973704753287248511672931725457812345594818192547406093050580397425081279730191769824804395865318942552376263067781075559400227046551820070084379902850130451784053997675773304471363326657442569383087776714890432893767124141266836384822383432924750093937752954832338411950354024739331843392806635548937166551225724673436617856839322258713459919728358822682896740881566264138208334467821948838223882086597248317316666715105408431133310774094040706082900422486921889229346240280949579959273741916476425405349061969523454629394415667523644303434562968548361982440964847208212068458575536431125207613306439126092678861195355022589092902429141867953207035421636403148436007713649288413773127751369965119136771369530585813516169172594719300858901388858356279375498379560396877561948947329396130771844723967589937097726064355053622819496106094876006780648789975635961200096603984792693993032421782358029141425279198863905849492677686380292171070992365579722506753133245960446506873438527357786598301892668583387553307301231899624966427464117002918192208293651398302171089115860753024427949427323110536865559947010962868235358750374815756668465832950849383390368518617308101114983358341375731484173298410778504756905282722839951376501567417280022438433793280975633911836798414209433193243264520623820349068451481842681279027540540791595777792937108817182625699705808734298751890136547662732916052415516435262586374866660720957561132519355199456198941511363495331200076012257860162006412427462902993890605920811088833294002082602635264710721006499086475364025464198639737463035346108532903618684736801564678681262700834009356109782226449901325127681699196164648504398770458001070522584274438488883778296123182977353383706838183483955474711454968448904806184872227324308804384343658762567872157326674510787164131490105419654574268050657801009014607482369661809440668146337188662433214466785401424763063208783549395214695042016284717678904333725886753146107495186475028512848477114785099949865725591580290615532729012055695536612813151317488727287689724153162101653365320248612462608590762656371214442996797688977352987104346916056051099583998161694468407499176131142081371647833795968595732950983301049001175196293209586403066912838075090828152270335002697538524717511990508528792813081560767429369928024319936394399664441228522327796039760259058155844139868087511278044879928459288276777660399635444690017349091120340088496819392733932807518170814246601829798476528195862790241626612774977948537501950572605199876186066110527455640912525654390947083486425507382685306046873867523501092160947301531419573765118100972277196938623197560037548188987271319314559818540896558496572633108329004839624026413014937834898670111998549339119858687706834877088967221792028325728766497190024703486725330425907517093736239250536845565596051574699551074611184211894420344601159735400839622679257966063263351419442399207098539015710914328050204289179963678567750610000601427784879732670356217902821727735458886822648129746657052636216594487508834267698413396228553181178059629697035564089432015290900735672014727693976856503876905345643384461021747358122353921820371496252808731330576336686603453085846171727146457131940353347954933467474424885039980532238756173986743276129973579158580152928719377316692069589561677424790034103691193205189633037832687374945027013758672804150041356083385513377321654167680718946658345861794626525731001415895712194826593519415737367983738250513472856376616440477154655589200792204286309218352580146595314776024333605198714526448086434353088724597407229674710788754446160195026129865324529977626628535175726642570584836665584957671826043207511562779298141430198206753873498160099222392093263397696318180818049408675611623291420405771976343745307239432551389041331505151966571846759608715923327126876644397703451547196882166604296820811117549974467797102391556908160470426403973992596696051480843722428166153215453023439346632299639328666468051997391699254744747205661432182748817554679493924352645707928843166363973854772294937943154966965976342759826716512094450714682146351636153649147744569000092446095506366462636424154201692688859454896726087511918857851066943619549311508786638327510589831166294025449188881974676227902249092941105934855029764205577966161922590522514166543204905516053460142187740106223945420818821539689661940572220346845944649464699461262319905379875831579366989545022771473494671620667580345010917787120839217267782461644682633132200004074779302212702700229416118753495755882059196602005975299557010425460908576167506506674782496367844878748349401192570666183036265512445476628835138090604023493850643580046559463238296909093407142405244611335163977154303581356961184500214827905676623746689517683534268348326575859376165027593477763683911034250032727973516326672587649200733384223803527540880367678074429103903040982796294539245601976742721585179724226191974585615201910288277386610663653611456703187942937313974812077699016181058727108002552516874000014355193416949293848713685847347949818032316297390093307010379881576901741599813890348620169358812622446604368316056417822814046227771761634874391166373154769577751079770728604494430867776402162933486678875748455442704755153654636860637324958445277578925952238377458357416905131863668056170244697103480856914607670278565157385110434637833911696943735077444915631582906189090705364604681688149197172153374705805899547553187632863236429120942424555666091419280493597441018959544557809038756308471784748733478422011676655144537295611915331898942499326400524799338315039793000649404716524640347467913485296415476945489572946320263907370997693457438324143207243610380356737252594762799957907349794266529967235159352703849349229781084928910250488705805469686145290687426703184398230357155238085774249232207288989589582178018054205521955578705362952200274174770665930277325048654635816036104923213205567071802970744766124618850968071780486850526676794949386621310179637424162959376104564371303722602444277254627670071371163410059372784574816052478716421929951852267134049528626746688319888708888412786850291937188433396988655863031479774466772824806637917306315825840764715602275055943978163238344557769270897576606734695056041071557696288086389904682616461454871318300274968341813193110616232167620088376651829753552488132064410528741293945034878822197955264883491682916917714031505747824188522264139427623881771135981512848091426466686307479899281155023990938568721005557886888503951921631369921630666837662533545643301329184368326021672169120918679028108700276310596623971814335907799019759023442207821733541852134481394865060560110762624803016754113723578099004776242707373923706699766469599763375548354889689610925795556798818011712897714005613256469043616767651888538052450496144345713531406503103206770593149332363362565041397887878029949829449202724913514957640461866107127007495110200442998338385124535850020070050663447178728321057325210860090404298528854199869412180747163719869650938192977327079902871078249720412787810224441432306163805446594785048412729136170832880293074216848587281752633402823763989669976818460841586479460958740713639991267452793774866600492466471421411173625630043911622015542391054460395449339050825105835634451510924386213655355246989833293701722618064591472947670777635096803058700154563232256045862096776190506447127420961270124312385889892920456155416698503024121976961012743864531563438906168324440846311538075548955752327449469950046020106995508527898038122157762475303591460839718489314285224392889042875973521587346448500129472582142597090559045558547716547081135803570629070087466551774290277705053360262920362490686908409509094899275085272582499311534332064120886566456623356526236815843933698888867796308917976996023160387170287674917492584519351921621134591166543426321447869519603412502330914939227567911797412808457178919781556737208065698481366115156171351886538345581807078437071863018571228584957222273392144070369637095467955688595309508494629938925529341764770913697509089547680077761166948709965210392232568705773676086213281822173017918536753322861064288531733696676229215591551657287708756423684575457385518695277715771100381655749885037626157230815857532159772602527603113157168536067894717021635840941164353665627618766702682512949220784204873811492423462600374027691425319024514041194847686681884983650922597053253390533752372426226036521930513903082226654546383664985925199730601153766022564467263185951512190481089135169734467928796817329395071887207037942704000837700266849841384968591661913844840501639587640256144125182086770862240646570179450024105585471799342305690139011328435887533219966462202953133292852659632597773291277840638687641861279380198928368193122251826515226861154646232428854884318300503748593956633212789250726307868186601931029744684269446098035127989809440269094524021775357572015497765768616700962688621401620534099149262164727699932105841167660025586591139733563116718869495326274161759625580828577787101989595157783989759694334358027732706671575593162356665983257813808046947443467859186732367864822020060469474138309006349091357838715340235157449534879349529787291550178260307723116124043653915154980685567493167941300822533709313449018944852985851267451577558573733240775014445226504019555474595155197829942926830705063752873559866004561133274117380807618287913073422008858375975588181846409289541056312760596900133450723630270855861841972279172551601279834300906116862019422776830134970644781149368728899145065895859159096363606729728194895888232366961455172152811226101431439818819109900381386264478621999399004423833810541404091997015904087686584892124815604957965024973044045578300778393911256780346571765007062148088599137565417532141072221099304369728066490141658140661735550281294720208645668679035779689651650445564951135910840772576828844380337807769772711688526548568822181258073103223254278016002580927262678228705406864594410751883883022294047955437542292535401345138789248479339687377799287598800267961317656764083598084881625163358335851020483925409625556302284846528593577143348495271860499731870371320492087176397061378453498585024260701203360293884466297674964050158299288802822722462907602986217768135412177000149149869478603128207378402989648724584340483639248952740745685777253300250896000054046449639889531565453771127887007328083802808691809282425516200990132732403464110743379068079040622570799242370888750115901562929877143779689547573859487648358117565634138345748046543105653321011172019341720008793068124305591914103311954506739862944823662774343762922433020939612980196969081563181971683487692254288310004159474520045179597607264352778378868206187959920374269559788661520552285589193640519967419791419162348154927341003447013875415769324283967744885194850163798389081835646775236822329116395521645016397197935748128251917818606761354944510517142889098678035090439771146961529935979788888689172527032834076275690245955988850964262389239864406245077727643938541207498880778187668776613347305941353141563414014917113769715811457378707515623100812810064248624584172579859118027291407527239930079312972432170420054038597389284721767414607024776053999768246293179753672617353852053746846945629615249681793150529308731826100537960663043634894967309648446812222216388718033129702312990799303549329823293967784000892754696660031751398046298842898333758944207166950061903362415841000419904919363573151685325335637412442189228863472137242000204630036544868469602419625993773332830615925900815221860013087335779001231784470205500558770074135756019119718504628274628896673005680694776679634556641892159733714560837174080747178855202363985227497196435021130053108668343130796355981738137421779102711713519992637959173838421646407040534996813224839761584195691065150244016937935417796685661217538020331979029857357027905998370871118919118880737171697863987073841372156793149020984271983050480224313031184010717206015153898717327203289492597402724047036990033161242075310885725863336501159966021257087099611588883832009018658748471083104880709398248738787793155017812640098693272540684424028402198780362815428356179000462844478916094975223612819506685899716293258858619182425916091232574382356425377104510381759727105363743258671239478053262627870765377827261632692260277644071827199165971831386887853951160578435653165857994685667160147649735560570327644656774765336934985242921605951753683822401730951151903970129930861651486145376510844239597435476498298849018809644165133516205343120098319083039779840870821005072538289601220648192340136509094269325164755598736735245513418349764871895008134741713624454017522329230255370053584425283141602304314956071450704861067943316472184311404738618075827554864787583841899376506781432186423789211568004625634344339238767077714224421920973703816518077717237514854594944576296765520600746919561880836734293629919656954133624928180537919189739422398507585871352316480465472842579472713552797693294798487421750282146236914677178419424890406167616091358389801447219322207340080284493635670352327306497935676776805467732349071826039320815838148559888541767651091415026384147070813364351406296955035888688928488211321947895608308394598135953520137061183191031620153943330803656318957635046643772442055173786884004692546907324340644493630008554646800402246960751679703708605136785358917798584154977530579758645123932024326335946586540383762682610261353790318163133116481960884709897793319026382424293869971187378946554570716752969212158654127430303643990396024921942671566777041678307785123486299838559155099731803904109294530519361149523867659504132012253297612375600164821993688242956633383681843089493146759767653908988074502796726544694772949225912561075073329089258543872590080678682167020661018787336241467553485824199402841709004672516056867803756296938481868220247335318189967520631089543613385621520571056183675791722820814740578758444667544730134865149037756558253377197607783063489507483986714515000005712234627250295576849185093505545538171006892741123997682238879225638722649640672715649078473024246333182333269663126763222543870459868413215202590931515752398632730611384457380679969947395357506113908128740648383741297114138585843342354262967291066830042457359380288684628371498568623194328638373725579728791025050992270690747377504111273958166778031774268317925808051889319010005383960002078519351478155328474103652083849466826895983129364950074772771828346778861159398838243178952554984824698329745374470296214280236183099927486896982705655861464604406586589525757750810802560594597572024298008130546033090842002705872448532686673891929405231140385771718738146118048076799235860216267450686150684962851489507090220260823873301128956132077921466953774668037952727000375189749425827361045447644052021443785837739095873726249508948608569624502197076508919236771428808794238911004547594884862788441237697960773866036260486948926261173651697500783925352649181987320197638274504941403015573741374407596881972239058936953364335485248640905122517834269444318646916909451812750632142000076138457079631634111407433794015576291977255819797515495529641669055469480436388706696926817001669295450297648032693266389144325799324589248512642596740184881830902012367663814960492551696724988606090193762719640893767610560936646981427835507007938261023564907090677236474757949760437484186082841494945589709322002628940403183822843882808554252526718137740249350426184247043719721218494054251523666000224454987309788394387056003289303571624542170435378916913328585337373249531808894842956166644698710520315661339776988321952852011080978244178074199668934893351471367442159050658564049748446150037532633350189364478075641095827569879349345070192022620753682983425263286691632457652894045559004201505669598933015649443964470197736993995648813830166981726206131379217468307622868035739769764105979570547060186617949875650182054089500611890637732709988611482103055302101822952377397041577607905277086396592864313405749461544835259072676261335085036468947389233044033805416743357980161161596357983746868748989519730469846787894224075642122849223713000858380852739360214347910372827057740174376751873668778907010135125034199223863508990298052888730782117139104302448437259322002798140325861147923609793999838022852487332459653170130490900282299528710764297987967993595821696601331432452529589940991333133673616919187500901942665621242947247200880103212686302466528464596743231571829838879400971416403189122518488642877681537258311300221114985168564242493825241800328257798359917589581457173735441722586126613157336233456224901192840079958398124506586369649622519510883313796167879711424340002796127698756754621887145039635486638112734464362030950923943326574972541561006786262100356938932273029815873976560829979498413331833483804768424472089050424876451607430217351028819784668831185515268437223609582643737371071385554675595829585913929984819429233491254970610866474757057026789499319663469293523479117800314219771530538156717581538820863377301428591622708314094679279754443669065185689479935914185249964455413191769736255671032880899821891975244889066771657295981219624172049840226594734582448243786081360699100373399016879487207112096078498869537046142440007919157315624303147373356794276012968330358322794162099747903970276164417407663282451807207509251132267101040555859457310000167875802782714407011607356727095415278975936975454289641244931041107285398152779584560461809240777370931568977352818985865128331019684936404115988895157504175900496561760988779676620109833706868394769239788721223919831112568853784031707667821275798618966142733456154952054176051336179877058499177050495714800653434991722970725474479507360486248292758162178915247151229117162537289097953937212975137114720783787937613015963793897550129998893621223232598028451089394700901396015055461233005968533335110153258173864476096231596267206459551973503786942676279378362764196442246484080619116570277127235916758511492335114159174295650646940514225584545437893718382256165430804078492274146113905304938059856142850969450668841724977841900322813689546370038984323661572191088994634774731197751190397788019018686304373586733761660689019124435613082686417276319641291792111525551692248914106299664205898569944410574962567473568800123160206459888508436796998199792567240671244772228407128817495096947099922593260376504276166259359955228769607848883385517202262742731180162529989738203502429874013905929804328761306438251074123656000953215108267494502572242888071077822300080597989217126337453620497845003048401594282591541819840207840218091110869074129235741530067287457693403410100262664605326621824267981456833749035108404965436995195531685902071684722556646171180009318325471997653457843845188144541439837316340430186805915703958548638269245443592573759754533987370294110907886952981989425714924821687599518764184746181432005863972021052923674955214266364739586373218311381519717368409383913639463594440290901763776766220167147097382215759390978580477309644164177768814022892736570547911601898940335384612116237463968687921515884659094067768064574528271839927041075208843326448391167433527399852643536439307540906647237936145952792548822359137788549982965395395961734007476804374343039118074780665817805904145457409855756842907766167114473502689167472534715598613062758386331429620400909294765393090027349103539341701190448189386052851760265854867872114041701780170060308379741399695220923337560431692152504135458805265320221134633968267367707326764699208237491542463783165780808870276323902401809745879337657690241172167688086907534939241643422508584905904003230774995887032889929720582418331127985821408781046825932878321162904418999995376064815144220782725180836834954128775538997710675164194015315569051588202987683044287125022420701886495631938590409597078973699612265180927518235520207490519835039885608444729115107737400819398314094501585265549503376879745702677065182686764201437953416714174440416783750475553231537074000075465788183506934248338037056372483655356466260813695675090832503171050699635643309781737047056070350638748048566978181980800991663327353184546820291011118071193660486392577825496411791702768331329061233478397842318158459400971596367399018579418683896266411526742345201698285486718172188397487077382718773222904166842384786030459879106381605208951717789857501708423815801706339174018366122102388327495814849833665892981863598395605320803651645217768278809964884686693706872869127797475402312272674169856787207077330784617523426040822721614084908881515661523136884867350175321782895255115490805980642261917482072401040365620428117276680550222121712942653569587470594979112391959879227549940897644144055794896710775787327741517794256618185511750221251275439682044280375723520368648094623373795496609635910356809417791022590066582613053098056846687478889329545641745187849615738998180926150235228359091322892201561507609740597011024339685516263989114788224426389777848581476502220174312880721405529589835232710384053926224266997669214923226675692929976842280285609278143032768080046820854930990770959598772991455921665566197341143801326350094898822452224913525960836005256388736104268533283025750465600716508334906339517403543165188663470093736395844081399626075953771986957779215657336099829834578885961495016860497263678666281322803712342524468031519367225901916912038795670167785580662093549140063606275658242252283775320982480433544012688313373437043061146762377324246901320070624925209222149156458674773680179590088884037067407745491578803451740672317323666461304217260693523617908012802518856538877606281362267173216855598714183003768741049310605305258591379331710393445410439992470872676906468482557338428704107042396176467261772765694740770462301829560692555314247849086112888630957722968981904137313433437781010337201109951200341352000813521234402999603830099988771798317342794513960670344721492012464223749187448338725656247113575733330538123011381641805309620160370050244697155365187539795777921817512526261166540042755081595003102707921707472892725904674863178071464337916013811879835825141556420904856236469370579410166695069316584333792847509586677508934036760889208964871457246766841828101943014704784086671674160208788238595912122644016012403197012544213045585115437137040005629999633273790173816310495945608735378900680805502707259438274075231946296427725374666206804268107572090904374343589701088273316755004620239649306178166296467071136630762652486957164760719561207213442812865350167906028166499841444448456954433375333450476447951111558662547795690740449976194095777183051624006842836251019746596737445041753276420428675261077836932381770580018125586256625668742913208634279757982074573223495613893655688091888731253548458412216757755254605254914835676878083614480074583464300178476427523317874336776867002215675983585603478170881606587082598619852548858810038628680693552226871361045542498955316921872389913196870093470688247953955768543144340303964760108756569516790299466914730407456821298965311661660472579301757928026554412338115340856367145412272672445021343162147006471178619653086149652239822543521227022342008409708802991885834524958495061277622140642019074471315550657502467871896736380083621336739164798758763313472416115833529151884297967832635828809031556033411093882615370213017676516158318761512188650054507712931026195573567935514358606990492035799976669113551385667625363037884074861436013994848438942138604132410065648387302484342505822126065657229140751646119061416005313696161528261410667730439747421041006338287840335795328489380447318029600775078844658069738079636604570669118883662997929107994812631570815254145937249809148896835217388298255880879878898616981147060368216763779658208847831304985566688584577509311635916363252799239299063841074656682112458457611310055640030416558909089536490581756885141534000168102873309796619786751199034085538197250500991978838423977200083453426597761336698947879863019854514632425577267093470166213812630704447395782946432458026566248864621907639237595313976568729011865639276011513661718618389543226346927229583327662913189445630629911355172794657387639397091656066258545551073267989547342270151126136171888099640432446695095384783102107765826116922360865686129737358587949539764053125603812286950654053342922866560810842640795965851444014500523744513858499466568399057242628272754565827166764944104072383863538828029704826750997125492252790898414478313365348950106292014227255374128219262960362329125210580337681803953458757093188409107655763325476488216698902215988415110915638295153045876483201958370471676482238055388857781392953324108926062284459111250283281210955175458724150741889445845938236175221534220944731210273970591121295348367333962268358439462137904824772847677111608863503159251917646614006027515966047460734468062886491277739237746560573421225421417329992469215068528599492393362603786268267796598759134362270968060328845464002054138003263653236075386386121900176214736909642514167024929301034930690063280202233547495688025750445201602741341083061979372739599925452160444562199357673636563963631756108614864804964637297367966882503149067411483701351942372472594561663556018377008972219661948455576656498026321030831782613448543149752356510786878361775683796541534492935075080331380520816769794638668625450687795898258672959729247630639663672666574874737807319219051015391595157896635727794888785907472136110999507950753762314761256093547987262622539181659792134354068702444909935211758196085044473568741030407538966636264296377474337233584525142419899543762670164239283283900475600130986610040423263971554656027861007458848712245075682466955042846193175332064330183187713081374738466422223567670360127216095369772923490944043362868207627224254961709647295832343208020975804069561565864824727733673358346381938807991615705827888233301049312229691259601676667793406856387377972542585484066024880516230509313775867876825640393001246049360333599882489127050743274606424039075372370146134979674061105155451358992229461585094437353840332210389691020191904769870658341524421007163043535175268254774607426079428981285246660424225957657689196448162041069341074530024516842349390102794516196177103662157490308428081125784087730698006829837215274780842153273952642658801554834234876293016904619294036943616936138190119067993109817720072958744360155663201114294035133128027623370655799769107860636621915783945627291055154689444585328660642710801557823811881638974485835986456715041715052392283701910686192617311876181257939059932394263178991964147100163390489037557858566509088127590342529280156240261661464467424092963778216033182499859347865076120507547370658861592480841496736631387953625375952381262436353816345624431396476486692393904198036600595000128955479214015146393313711898478134726994192964217984278544931277523795895716869314231927813673324902139682402083883281978719445018931985628323192591800705793813290318537471450556490122028084805298991237882543551294444921921393022621675170830524102117484934503386147608800909387861402882206539223877057289461498185304235562774231937624999357623568344503219656703818771730353283102024717444231829810383500039344165450744937310316435726493379710560407202526457469149666917827288734287352212280928185662154248650445104243962429534279473682526551393284193308055818247429902418314036547889139180753476908117818899778586110454965943312411081065824037534585383765556422501116174881376934583157956083650650663278565368781367397323795333688699320511914474075676146799696568941729049282078723623469849456311511111072692410727087604221063331539119850606231080190878129387065457368326150799101438319653428679286733638083154661682234479517842191402760998090997554878925439800446727607464099100453757524187539355296604678717420593829039431405045883161119291653886743082866162069467585262512240417390606220075872177272642290469216004086742695335501078796737077859443102010856349104321583489848582405796511750248257448412834253287567155854633919722951425416402780570814140995501334100697288869291901844812732484531966567202617912255803087437979389306617338862095326609285903055857280801655532750422517507064219429557382326872356041327463886942851240331496685666225524579416836602443908217279726640695702471333495430644509346090884241656230591232102218965577376038755317364175893250139240796801723311972714733683248355097456621227424353986939337722461166840417325763052137616905436635766903627215476157724214345101374992294445002009110543013392332377484432875260018356953653605578886855637064380327462915102508422536768906876909918806449172429226490911435790212254420246552035669968832277854197465297888645938445475359386627500196457606543048543505083195688942679412276873839119252326043359709854838663109926478097763828537263403937555705811253402611428834879248082364050396496346621926943186579265413557852671613429194083659533100474102847587996428926117517212297950875602832229720944003677182193595235399301560072462242290582786458723001068468468197770696607244489871933372387208677916866124501855466215161986032560859815521717035363550635716304093664587515981399271058279634876989848354911440793239009860168230569322876473545820537784214298150869171690296106170074359166400449323260260781920025789067241282946554701506862442365304101887561837194225733617488076710781312944946688134679353124610534999000123205391158777286697194581881442379197901223715323786746267536600273922975774408914796470657418442690249458315662865660262429544635132065457130289581037781221488563334543631828239091718009200790289350618160426131172730899648234295963298939119113253910328179131513294823250271862881691061707154071113368562444895241579470302021112377032408573515391563686258587979055569064295628749141365841307762880092539348391552415960360771262597097068186734212744997864745247450719856405370168855063342605238489920271753836874010509410786657311841914616645063418114294424761307011130258186304997846830646685110499626199562844446590289978446026173413331530637886380107511747668329321210365608835770649355031711746451707270321842583467920944609892307628611824726271759954464677296358052354591237064913766369759561814100221821632043321039349735042097983614467083475364668737606071900830720901996130236447127472420037812984174632127794821866330255307844627953131772035919925012076500255121022180131868923255994695322446504660000696211944888002029379541567497669326243481536352482721799388745755524174414970631202150381101903808682881656750809578667787068908035508078918382141747922425125837169826390664905974711230892480221968423941819042823681846960001438809247235229771614955953366962465872714735799737362296166356397402735236989757924442901722487567773148001314845590924734952732988229680446607689717835658970414646130378522968351852702001489406978652703461289017410915242326732149112833457456313782257889655136871429223852189847948117045987861609150491284591484948665396701837037855218565529409433104217842888458294133896451228916896529468422528160006468482501126240870683878381571302853327606133702779616302074362287965815768497327252279409247414087188149608334733414940118963412265831466117734515813751183909790317283883082520385463690199273235420240706106865686161277600435221055036294481498900032772748894202043883423238574576308468155892169512881708158285393638944325196532349184091891419487570038536461158010625566485016264517713080854335668261168783923407689598372219456783665412189914046753610183967067093949659930915001730285061094296036297658663496836192494991010068002585572226852281690163220157957454613246037877625899542299818881759447513729915338766073687806326368619825269464151680059612451289098423407248677681792153845297609952160611213781223256610053913410542007843021444155847373863412471960584403800021839880186364189757929744983934520179454016976676963187661096330666466420153897039788389747216193130782847101789395167949744308924575472183462013670387557469139054209450448065178835337823887079257868907449264381014893535529711192199716273723102921030751419750527269762434466441040061967931911098611448442381613273817249276113377254678232043518795147956492567363669476258053560964583101695069316343355116421890677336786865879563803892123580280079511065965325815379319357769456322457013183331306371946646380632334417697753955467822065109607900886655969306111009306167398790926177390778954751383215274241998366746929594243858514779143034597670412646639049549341892754917231322789667917744243452925646304636026708462292369922345329887838002270738875357987195123183101340840458814395919078217813808255971933862186712805728420980994779666414136205709775130208455252540286665700767428093955380405102525709084247140631015972593455346756671922904276610068839854425110766095342316481765821288402995834959313776783472792975852143803544462752881179150935503211540656975315920177250524945316180553059545542309513085535373495761586293283599706329258983200446453057324047490618631353111420715653140526036271285051025243591801628858882204698161421158957616449943914896705681768312572173081765902654902147511933554655391046705734466541604782044246284614948528583635588178416912098261546691528944894767173251127272582333129440694091188894966611638369366232436408777240321493954801904811213318712215046123704523844822662105199910705023253172316352593885780724281705806025648386984536466786887312298635200479283380035648326396793160599462051591997706212896390871575645440590153666526373047076319826084238221493952061402646700540602895141161805322329921227176810300746937334291943217731471339688448246150336841056405220363542445178467227259824899666117625056173748137077257145194074906127831766922827135326606204565017453669603196167925277743197924415936202751027621886883346440224220813908418001720063176946188351152728694067021314257813116161127911391438661370643130563722877577073225473939069885264599901656141982404414627049702740100874106785751539435211951866504235692377121870616284932633305133092781765904014332413391987957995035728755683652463776976378122216548433463073935355328026736249342981577202668031456205667010807503213074215854443580696201733839054724650215838242902908162808520681616189285008945334256573903804951751224415341381007188019259176739524289638587835229636460103764412747666978845474629106949860968215087157907910842390147034684148660056367225269023948402407488905305294597860922041715945856874341264988805163733104295531771790899290169394449291618496196651641489920258448090122297169877662219816361657548969732495388246478568627425505768232767117537926737737342507105424660513903504135808637618442114721427623784902617825588804535772220234750367823068904113056399521048086876520577877528405900578999852755387786410310225004092363512665841156425332615012644208553254051314111908743332211082920977803301862327188244384571718196526512770215822896502593487564167209259607281667849052247180021757617943430332807229510717269006434173626833283601975484722328257635259934240941107315897851817424826930028934885663941649923702004205014837223204803601374425745530969767131039054221876050391172065993822275518643272555504358362306938143045453897508571910259376092780175309998866823251199512095868014498220187585897621878480225062640511836759792671073741963253416548112914868750604429987430491105463911963941813525605450922835421487301392957971154198098835909935786131340743966445561815507732879734514467328075161597661672432853298341569974699312583309765366695441732191036463849136714979317001105468628188381367679681787401166798951282056184847509820201334150033797730213827485592365433470150091428412414098955206060339535962768660706618114976682606340321456585811561774089082285998167017373437221853129989496623155647578442431924314903721586416315669413280350991459789103973812720663408450850239509597351332717948165683716869632343136056279384759346663136456300814824250120748129496852893627582709276765239688778753994539812748157686254272687923116732006334504070335235510893862443004506579959752898910456522529025785273538593063867652965549223704769437704163351183856322261572385977570903063672234569113582559382656648936489050620510385016001379962450302689009206510682762994146924074781200652404530457466639719215344331580154607351759885820104928994247759930300753289893101217026484716402432448845233078936576150930655779212601178902751746880627538802242869701230308311824871068717276884679525962400516178301601382858764629197481214496395080944712150654496892888549082841294253958323152342850949729967023908867709936835591232862122479207618897436593311425824908914094292868018467747585323854772642716841491713922660778543317562573941356797028990814413998532866530734362009361547794449090028788760440939870094312635744152124294879397051622707675845459979784414233531667484450322695052792215759548917947469503185659666303327377193939565155938924839350831224782938892496006299077037149958474453221056876388259622456511984525736307104863364923784554397228607118153690712339836757871035330052200080098148587104369561970821400252392950037597662756784662806111881296930563433625397120173994416477441154236148879442902827458188883262336889736080415022562757797739562325746658845795771051172970834802429751758655160555010200476615667821448701294446347940140025376744894783757504950412515881734482411567782848789881904791372451146591903125300112696158317026085362875427004853452377702742561673981779023043365139107690915283611042044801364853047374142964723925124898292540366865637552265168496091260140276460472384138830410478191156894716197982597004367217906826560827179913244541172286666736186642283129327879114420581491722456412193790626740647574059789839145687520589443446994393402577010552111361091364156578965461428848730585836729251964381578122325858084792667395286425297871719272971902529674180685393855252945737168793287550456900391157423066789113600160551318171274016782371315977194684479432165198508062826905764422666176840716492894699560181264128740682187694821743009921961765610356807286945606951818839524713792805587617207191587856740687551881117361816887819311845397356127103592773771232475292488134732699597151347188289655669343219648995326224052996661659161416989868196154929794224928159933551860183978343687004471188993586261117209620610104897622577878284742666114096989516697486524588737703307934250595239498675295027167426181521187089477005903195524497042266437290689290859474180224042260718503162462703028611795009203169109988899796409761085794423886275957176967237493387646944908627714658168391249975923436875366575648976136042250717074177963681688649861950935344397253539732880150044885242743387951423497776798822251204282543597174027499778359971373822259797071762186622561037472327431746941294613279648549731444110757451291683861481966916904601278071748572062307576305738457837120764085297483898380659553227005940667771871514906591806533350607430280623360920010359794030472272592983020592395360277673024654114107852115443801988774169237633246523629963673781435140206865734340089935753085719710913657945949941864138511657311544104929310014697625375252217558301079493641424019771466344360435095896541398688679537877934466514684970740723658782727437550593146883586529175174775859253680971282734859099989414201905035700707380419592320557422575923086777775441808819618369149336185826952485328969893833815052477798035304608897967900368466155579931741755055320068059188862749119139800462235541124551680272557232495502859524716308972914494986160825846728243016753743784350676404714290071085449421097962117100468639094954467144364798386714077378695791303644376053426190463121152306455301258520358711448639145110601898923159694215752791885270910646106572597674223315173175030200531701000917178508492916635844579853389299612180609138166527062917560803930299511474340524289101940383841252372620804694081242550942578760772411592473739821712440939456489196140262777586668782979349094076616053737324632610152794725052446409872607333695727937244034981640357039314170263584493166373619790723573413920198803042881201456503220227370906854345879529657487026677938425440102263137135045387398362586729750170115546980649245279205482121432616789935907681248240803049511965288056494798323463093295103249630214623285501022037661007172428964753063176890045476831698828744020720845416467070368122316103076343548560612328129718774065280592432456539307114012248512715127929805385838845216623608076129660582256255181639562248724066320416967967968763917890185034905375904400002621941061529891746023780547155239313906378557997093494181695449707197400759228309325586961677246497216346420251625892406046516972226852735630798338689610529252725130613241613038489461218697295413374590716313656330421323592964901875023901809868735385065548033827872671465567605617803378157522789313286058464685921556197291707818951626130391874786894600428798212272541194666612177695329511744537385889296587368141725185224058397296160376771872439528135979304742338082604163947588522042601500111891560960795924546185909595578262765665622342579722940159153207234195169731961605572628953242719274683030317054744162381542905864494828382478239658995117326805440095484009369985090743320688997629800858234838162192612365900854013701554847370874746924539294469743361090202887635575979873100532407402403906824426075782931503270395499725773721173366271459212528736520241925949265230014464447424580028545765649989792565007364653447308172252997387239220612422471776418476170506324644420452511889637679044550762531267422770479588611908286874884664397831565961349055779706417730970320125821458152652352880685543576839607660805849853678256365351713496282997016099426955561530736849582023059010252219333768240424363632275399749080270601393255092904836448693410723013857989566821320096085592005640973054225699303939498084440595878034519202529824090799579667344659724363732925776289586456716100720553505380816945955398954708167400663032611072073767742463696817197142971685806377500083219934750836655769438644791558567266412905076884037701843128263161710821329545957180106281344490178835598616997872313379501389750066947929277819425628201714920272801391362716444739090713910516947858687618502336350960788151333849772644231915872379941590926893761696862199495198438459097446411703205110173182569535975089907116203567354993621447938920204831679505546502936848766156962306182995257091493752326472125150624847709461774989871105577500393234695294262632964473066933740612476857864344575550351460837372276379919399541798741942446007467135850557084178760019937283911989179181214567900981535936318869933681464877259181470176396991966895590529696217407222620773902949965927122019958949946095051574207072267119378253353110183087333275386166718134535952010662611416921367746083822720930294561900225848233179879919072417534081631935890930432776317351192412082374633378699039802724334179354739459841681201936525682575535165498736460283156505725430340798790246016995992792380746376105476211862305266247006081081176632684367800724756934754584134820201064920385639934615416320358107081180853484095049822339166914260478689322593901002344634346486161647792872962697220009925800841007027548953021184634676861659682933597302545539967539183512445671855531818480780126211469450356963041713815669962312636063921814654331542104313606481409691656361572373961139721613870095282251482633184450701015464014802283731838826247480580066939293416815248052728258946307349728800669905504758276305464491507304147597746428418776360180836155365498486120250084018185211701812348448159516882268055866810068613648238350765201492913645120410546930559351282253297999550998808851430424909523759618603564787027188615312134533645168494460758906842249715543392811443116220967936230681567032927637189554086199044829688829126592680028633647639905035094034949335848003681179368326959296437966255277608690557449441751045460544252527793376828790578408646780153452283931305419942756109528747221267885474042931444709917184905205066209368156156512858100293113561775195502843898448557361999489913483864524340286845831113958031046411327600932016941997922815698385522708856972257766208667715896120188736057842590667636566244459666482147601806053327096191733685174313690300234128954538742727580967143032750407877020385589842735185874402040784011415530861738606151853176827138703955634215751632080966860521278569938205284875377616665074500352934997771439198946592204025799190850226624409899709553847923290515226774055243008875085076721341306388592448486395395224705167023216665838062531748273701346067544665749730032567210653231871236079673775494981111911129543473866651215341547577824265978415980717579119299683749101462767868139144139053076404004983218827588733791122648440005618352529582538441532079395410796803246465728714687344609999595166105069018004181938460784920492892039673301325590151320817999198405541234588839371343702531403483252814120937167389727955008737722087430284597658154445750801461043807097644750643650609969624987078512336431603082472672524430460908908855946578242219190781555444300933782198708904144907615120411402049404558856425022129243744512439360305536230326621701950617344401195806582002471373175141465728689487924174976836716093329324032056102874955825937210411655143582134089140708550402690777127462179525657122880899505371939113043860195213930910470210183840594678224753544401288008125394840770160879358942935314784344432091632699554186768360952195343349355659418176392888408906515416213595979656355533128103920931605919791087290408206409659956450052739845391701185681135464339730529722905981250210156195234620992325372396319485528880383822235426951626869837482816687281928971652168579208071406960598954617411890353673043858849001623859844382670441390937453529086892323470814379369642258132473826777928305618379668526686930055594485370270980225132342398590633201437537864967750770020824719784503081622537852374246214075622714329866065081599367293019401759658413559734319008205427654937682329290620640182658462478255828046699252625708108402571920373136847077849383482612440959679206653602546126918445327198060441907962341164038888491317195141917400900547416285832479501270017186558644243312988144475854468467859985770803184581700817225353064109772046235381155081177589761555692695911675027218930777354669112891858969333464382986810325689562354287043761350524504295403302587082407112095405317446309513418723742553268803529697176964925255526580688674121803997118268136851644364300525445777242500737210406845044989996371033254321550325649986762439321413119192612008162415097413332905959325778290420403791723280830411131739470201809948796221593054376590478678801858669409945908556254955740440026875028413159272447975276480931577679129572295729546101473913259974750257852325122217764394885105331483608584572264463302522792382954235943872499782098350290637535547878461237144608597142386254602674755795133704343195983234341915198204561726779329624260219941921530974739067614454504378255801439880594068959727105592350895376542313164120601342593460800216865582958339313202543321347164655075698305744844874758738041824191633728861197050451727758845605852427441675427839651742905770932068208646827436385701650523045756295427394150347072948476329410096348415045108806694012188249678482386484605165752724557822675096673434899372806549014330347129910606903890396678710652439196081456910516099359776763877103437766799055096598709847847069094062835247860716614330325588803790919812358172742577159517772322675738767047620975764900783056790588215564674937990059846316052999230822556603848879888536272829451776702832798335082635239531888443442765527997341471211336573155401378471464037846721703507671616616078178168394188223579357815691092155441659517757608734860026854372342220833042024086020696676156967456452167091682374845551966568652556346268478900404203089766371608427617108426753910042534190603451483555434822064114038606469591896879250466303064606895742732696977980666442843358431925594531489611025386592929114139351883246350035774249614240910182070172692210762768715335534310490967665441310072565534165482134992619101695589766763006880727401705740635298938864891069652445036835645148658628572664764880019976508430779631793545049710384857258794521155063756011224854103205041820734047740283132609017568441575250119407559320290097047322614483975616975868818424450651590523514909570153269005507004241116253648690352699432963794875637988019226729966555549550562333897989930892573020382558435436275972962233359291397569060203386793667697808700499248866847231995682354992718690331038397648756514471363050724921888961222086593730835603279344684255300688454389387945184378328207854531273647797492168453163034198788437639710613591983287066599456513521675220495314994197611841425920765669606840975966678689692551718051315246620156715765574893126717709545024410090700119696498492970277385983920864264090251521009083412420897538512198693777932834507235080861796741910896473606724512546960251045097686785887840288147160514436072727827513819816631125426410014382483143666780866289171222957369719388808060177737134260581540378471414479837976072724573664139867848535559375231387364032418887707445244697153282063847163067226593401144395062011496098245994331026841202391884867573497002976569840038398446288002021503268356178157707303757799708014964209961428573882840075280436469764537089405640016777835834825420544695519140001083196385199336734091986049427716417224324062993497635580142079093147677636405592418022873875344146876340517697527349482134999915840943519813697272906477355093489005746624931500675976532890404274839935418731763156453590235280421802557811149858369886759805940067360992208240680858888807754519930433903444400842395197734725073999554498841090510738241329571623268098586643000547749806838294133923227791647382059203262077542453477672423549648651955881479876986166793711520585866834297408690827244611377853034853432711412686327619722992631372815340667903686162273277041778627219433393313857956836769029039409783863114404990843311790134558564391883860755009601923291197974492501940410538143129613051268484699584146330523037088769354885593354564810829408049703380147870610121437890736496303833368597037122723732656063178887906628886590506187832687538819379812773495707341806984436412220017465556794350257863122199719876526040839787780028409481949912344728239345591692612644821762042343895924708104506293607215161791759672950269670303498472705056863875572787079024553209044341260251790949106260211628195104598159555189917755505303846000998160609757219206385010252821652844261271507995574871972499544649010029122948170267923676503838867695914392384084048052949793761506682709586299274722090260171458078815275943438641763817279287399905664461374137315059270065846880132876451141421433406031411727159451480154783891545320768597029363881980007937451953740561930300352847052736799818013604343995268704193862500247949061125832198334676309821470593103790288952676039607503521958615808225994602656659184557733034784405078009213780411484699826704459469853793781602315260044841181473140104271906772285718443534608318503543172378614552715478548759759899865325668229153378566661283855810929742148730532273596995304954534481136048761269159365077947424639562277123716073592864219545555608152479141440360925236810232805971941487630648653859839598673938052960002595074357934414009027306982201002895323540430658352117524198817792725993785815489841947188151901999194412307028967815535550930111125853068790691639007281082122665339173295328651591822423159243018869236935617038254508770422215236260920921852208942495721128453212763649911448265904290798260306661267665902632411286580333839663552838990150993529401835708356439491459870025385066273257855737867421380465627830643351118765615284944777544682754711200084800820477758253500103958258243981635024214960928267972172551154693907481096752356472440343972383868701038959936790986235828063502313021019505271451163363188539027643930668492612584597237400937196904346594391151870878986300083538092604335598026867970383418907326933719966466305959440418905732476100748833909079382088963909621532973493643066710226432316756677307964783749807373723613395492679017268471672730656919725234405261310247003448794946084604232812517657281379679009400674134314412713189994600086107944307204287431368546762334874070770201990975770190358984351557159759667553532411316078937843889151428161793089852551789357144811513222562445479446912244660908178994997604400017294105568528032843089765699788138955583241831854738885666619730037193560284275664612423836453991006819009324815498414038793269755153853544211744013600167956868730636844202380236987964185881105915165990477427022857384128793327459269618021355682689373998580879957718639616812938883895775660753637264006939729247161709127732825848463713309899361680053534400087423942876564403418029047243506089590000077865345623553061632874926974569982771629643058422810488124076009153205228510002424336947081528093657342710710603570975882068971007933223816431664848798254939551711062633525609478977545592937066746327276737803695190944845710004808542273325560694804004668270051905154402928145083505950481581307033485773311331642847203858183427737538892639703258367106379482768359255160257149372127982194227725955342929205237373531601490026553312274267596912126205622586057338886410540610584706602317584293762536606072982015857111461752353199826354165137840161094992711624684717866371693767749899815676909730364324486005008120978722591733954203518871605985989060299184749610255623530149115202429177440158611589270733642714538109991354543512309133876298875597156990880039347454193331241542528597370483899297995043315383442390648576831114506335109903605044834871137904653137347278723001543537365047833364553817934281704118645053351893711371595798967687489998880157769111827931147401338614689234703037387231415010450045227621755680894975213139856692249475524257968758178176430078151185172618971850167195598590435767798264793250758060661162142218910412634077571777499378139668560945643955751091092791611701302929883681025039240689576335215317010300017543487062492557542540199008353921986042884986715230988262441329357789214276522891838399036221495457281154361142716894983795935645587398282407354886422673340696887606437374539593026026735043838619848288100059579369181292146626654658171960297409319882174338996487264559408426822022074040929149059004458150171178790510071197373218001334249331470171634743781581741254101651790819566862668134476885539793592850030058466880948093403873806182537957084650380681044269830260091567521042534008248574793345215076949207060542567283798319318365063633272736175861473517306465956852301299920135711666118297225517320580823662428149268050332359394078585401191901817777466986274943227376660704562771850908259537951119582385169426549419741457919528890179510166861179556456025515374252928980231565307132198232135478033751841315313379074878346189203883823693000911044206643134713104829171175998940632054138804380462292582714481258531936055121824109687853894064293949699881436466864592627892397968904486589967065305566303022823995939498987366966005109243357935481995528102299517700379704793155521496122820144807623366187820245844758498679079844035971930407206265679321690457209119767960847155549472488121785016780295057577997945784833675159952509158818541229380911577636248266165178113233367576360014957973608816966562328893008097522337417852591160432652753081598389977838263508108469133833924945811388482060763601229701931433808171741081207949241996552037149943388821071809104458102294806660676503980055839720075533944491205546318916414223365094821210500118353411566298164844406429734820625267949157818701192315178734443680159395835898071370599516497883928640854413617264378670991416263458029508842360777374970237355080244840618971709511807719596512525223442177523216560247948555497730324912966993735438211848942237949564011157272943522959694809370667705172305033092335415331458431862334320507575308544385810280703776917591112347116766870379167212039748390721958322683676602210639600694151884644862049894264637598693935855487201897822646814059876963059267906115462570069542456894428670241654700052229961278127419278136169007179242989958799113670141206428038736187816373863398919868251298003030932450420057462714620161639962590823906660814838867419690139670212247558149156407646526028553092322482413183296469125892289241355219689413494656613623757159064815037230923403321372051751064073431551218073086159037061927524857420567745675947612457658532101212690719042886183315062233633982335813739061598345778268738785703499328512686522235074766551257999558600707422940818907364999596781419573862378033067724276941425903811071352703502207784665696210156124167970727895869993624442850043314510937537598741173316869452266759063597998164574069821205899060810652869352093966817167873461100859496955735515759332771036928012308271645842460003479898166102828034625338803040291835343962639228216206161618285302345837938468656240810340403467874336549546764478576649719816879787470354772430751104213928734115772945366561786256771629718552354751259235539106750665445869520224189652892573097311047632777758460553646992446623837083368584525391526010365377123549747388806502158174535014412878226296112248527672770331431827365614129793326895965546424084757675990187199276727166457319958795757097882362161072771451513565887339579219807821680197423700701653565019558059010391807488358207673263676993001944387285545178069178411798188769686684355047197904204035296125369498530340878112644589818175264118202299270631473717062308102089231396601686704603017114979884979874189343822813413451010161296971376876897588899403426490748979534468840727760645427207288327609782046055173757305262696764401696822522614605295138449049914663027972652841683230214416287001125831212775933406511470739707277503778483904970718508031586251588582665213159888754615596005613386699618917718330258853738600894770523901769395364216119452671967113325207156676556607936085024340839273370644612538514078997771442817065235877247466746680014132881362151438547529555379247844729736561422403938627364296826548791027880309909254704792734944003027954491526376736478357658143844223455131092979690675463871326011965297171806899498008836520986094236241264185002176825314747087610262747390485682549189394382141795416103219159913770386036320035865178863604662409436831641830415050571564482158531017154489060830141475952750579903550449638614948208929713621032038347250999913307505551746187535686175768796450660185941850566049646650997596978946062541235921766172324744597792885616671499480347515485407576392982357170702003142129031217958324436853278207458661413971029745717856945757231362151766281799040179603629819105537402727064141686796200480904833197765589314472679668962861262152181251781052456325918285583442359422262058764432583021910372958379621642555062948362409624798672114769234586834943451974659561379601906766866922838346693040884235535089830089145215941628175811944996779641556438373634085870333605227683173089788754471187907667479992436527550944307059237977126105667270581512730234185615606182072913173829323458148177681264923381176868852472404824800932090744303153212674730803662149971307176271366431816563129204103672650510048256967930417790877038895903517561991851654510349488753629135571214999575034154021482880232108232883329248660424029257892595982901694081012388219187033636947631066093620309041281443425028409413541949493051818141599016647160316558576200410276188269037816268950537879477458769831459798113856293820339029601151988871269623145060116887478943830883994783857851962203620798346432826215154828930492821025503797929226468780536064203198926796363674137402945410031121082610435253694685770924084707707961790652777102456517719309790637520068354787445592472862733038713021982505315658364926799689387777896227128635108490672705123005968435967699377696183767325108992229121699307721117995232085005640985317447281520791918271985553120804085383290652078779046568650294675565666286064074612129658980130682586109603577399993695599061793620483816965196552590172539655921247375686102191324038570624057791731857289482128036934456814876021100364580423918378481758095006608910393708388837549973755584730399153874566556725389226539929463236855354181432494553372173688491132178032347766468219015051173961526092467903523384308650898629970460283045848670102460580157060771434738173716455507083933592678450113056687443407084743624283198312748900033106600287634373468820292039873632880465171725283441533732417011836997506496427695662088815025466252202752946275731905699467485701390757801712170094924645359750094718493163713555966081638803921289714561865879065189050590154078234613766449649904922840193876709817670007374671455378193555324959285739994753628739182912594274046237605771226449070944521364332446784213110856031791401725011405118242136292875283215212829487521886415301093389718525734909811741117409786571791628490518044399404782275738610519015351673832344810265181746753163139190025223584240086606118176934604400967506742544864650443143232781408374877195042275005326138972217790356989343085989131182992876986340472218650858311759517047708930181777106441275756319398570598361657385111544114447453407576226501038649551690014107534623323153795063548771721583085008582779493102552635832032359366639484751106651957593979299491588216482192176748666534694045438734726437336678926320446654147980712098571456907936941529889145985465471926344418112772289256436246003232705677043398320408379105324633589916981659911118591323499589427396145149664897178656711436394857576024213506115226101254700426040603760824929125266553724578909080476550975168823988950249530635217563617641187461682143046519223258880703264258465471291628591704106659862997436831094030391338204647749878001311235590263764111683162031471444234026014966771379763051342883668479798746080989250207933634435281155597149197332159678940550849963816178302269708569486547464791022408445002791077339399293624168644933824620851024614236752214228717150335817567676500133701063883329352674768320346422017135907798191026225689601802222203346666402015072741830000122084129413089398598911742612043890457381232606318000500182742955983822880375480770988385678121263707607625433932649673488511815889371061272885737003778120780196035337720701775112778524514189218301276093660837903190270228871178747808178701435716189553510971105136714747451430929712605339361543698082350299279350247483431536095217876937768694746410246901009274011654578853668486005299895214233307241625046414625050017244623567474671642975167254397015597979089756115858488688650434798728948653963424790680901890141350872584201412955159356024717591208404425725489551385213880125109887498365558616488415633826951367421681571769972298142506847513283205135724517498316510646927769790018298086958149106168763248602022696682325999638992737145058522252966598598133842441490052412575198828536745571387659025407444159768190391707633523277007255751328720305541798492857877797492945227023861397278480692561381490676718531333889238532613342305786979037388646880193616340815643452127320140141130212239345920544759145535578070687150091544253819973998656356222846503168553870852525698708460445215093161298581668192698132239487907782288839138007968453352521393131160954581697120413558298220495461378577131429813295207269123134551953876118178954731874057162070133350680746981972690920210008373525702124893652740399541427647227943343638671506857795877359737291988448053234350302557630835878277046900462716276611314188910596336328652968541156185087457907611960505375726031687701032531293633043428240704624858658675382887214503545698477156968084616710574803904849398654569783081549018251600918214585411754745955814056055466704396667666702425981243753880605492036087396733604565330108372954855324261096736629996181549858946184775205981840618803342421779518648545140038285680217605155764590302287553252046292773470368981451339143859939028953097031503579877619741041828772976551806106658827538348301364991473152904782848909683088861251054025091965608415721168227500260823441779953802900016674599183726367246763232023059436918254599689469309724661029055800348960749795063011142313260497152929896190286550688208489244771244854622867764536852543736309715367194137533641781827796230109365475236818562350775687408884297918729641435702115937300032022171963775078653123722454431160429902363505269246762071625190203006527080912328378520949809654989479700162661365174642789797609727947143594564803633101304844076892426655840215937310787398491715789159379141966911533595008039434793653953919326798335387443192761396790110080419668092955091542204557355906262998750964294026637119388527184750112150041926354406891551288689455886604853867168560052378890356317685004411704432976303527807261873730597293822361048869628365205324426343847788784004673348292937012385871565878238402508473714977665306194463346881114403547949909944416824600686048788956631772497956354148144222097600895955214446731527740947393593542949110948136772304869339378057601184024671954564886714398277722330471553920244905663614199186594531532346500972045660598910324694632375415001669745589685069724982351414667821981283767182741002480193322806964034122517623383791739976639296459450969618906863950656445469565333478380689965729099608814211111032809819987978919048110440130647126231615705492368863885074905058737389449867943381489901466159407228533899287693011476545466628313061547794281986371880257256388115525585201750189980137468490338557056834393282764615655093714046442153569297135480948421573728449883620739678340956982866060580256265249598322744832830960220270093254327111049971829962918328748060343715181156145255102519854049441169794722537504710988613085499485885986877787445729262349518054153574772339438296081240043843314510462605094681491558813259617149285022978379224857794336880384592951221758049688846521054987448583838871262178363190346086527556110617563599892263042962167431311016297558424572821236705163360805058652955473444292084848701600041995577652344057213509415002139534610420306939376246232704352090435284812848835519042420335569804676906820494908217611636569796843599678606892479230040755741527293276862928018586044626811421012144753790554004963852319042669422632370214986259153364369274306905463205753701994013958536715440476237270873329841088130815212535935737463018585305567312474209954148523009851040643860303157663023141726795612786748062983752601941405996755293074826560230027349285510519170143484638630166320152423829393868067862543110808848728786689788982676251186965639523761480810973072722992829739177639509767173441411919975912931239798688329479328451649664897068052794881390452006544837386636102931413699177243431633102343504538825770025139856467635067734217641542499686578683992373313059041845884198067638683840592959258605779829775928031637406963580826786344366689104122934549594806921644331562387759701535243453055203598769775152138990944784635701740623717707951899073644192788061342592965579032532449181703768525802271215435612609739990153875476302433185636150424780051809158733761625496392974364404345647125512489873447590931849659598370100862215965840564143060681765684919267753729253864721773840044815203612827811560523619313013977098935581973165842564290686403027167191405681067598812180271305355111697206942171440854492748024217883145788908224125003694050765123562036868372938307919229094306827703337291420645809626975416500453829388068313853041505828565109999881824518921260986691847764743334860089879981096508373831199750201113766923149147137802803555668989377338208612057224543311944044463805461462852081217308889173080937604076972342723440775657156942157213120371259897117048400033968009789506819440594066399452818417186128776368000700451949937119522344542463983249000557355235208835539821153722182067750299167658253195638337453083291670340398917590959514642445954645995643888621710376745374224124797729927060247812583474789671950803523456719486897592417517587239723340125700877547532967318144622259113470370729215297225866479021528575054088280293566857660972349017815649454437522091329453927595898004895677045657677321204859136809612520219963936895448507279932967477205111144671132625584291826070779735796926144433491541808742503500989280292349379479316812368658155595387713285408905691770081201271263608414890430825610696483911245767406101732820138767186576248788449576838840311986867430216904804115599684774604186381874422152326194623946742830465788402310778280212625794769619578353756031896237709902822358967797419833983683780542956483491140511899455978802640662928431527174952338448811887885480523520295613511682363878961052595081989568652977745382723858532827415865285214821103855217493600399871797324191321278062823651207803336077346375618782833847506163727233298172077206306066913813850911064661071168211320601072690637605875275167379970575127991858196835773852482995122276393740020314475046114129275810002810655380953120532670519128729650951581755886048223209374726923266393481162879210557461484071842160612963327182261515180347288555743951406730735714780524159594836789909910415139067801588680992830804331988312982967105112365548588587418592558829573356730250252050163733531908054535532987783503257871852640590840297464908894977319672398364839899351303435005959041692934403381688840028782279808629439895197228253445565069399031198305153424207563965752649550033744979559868736092008486593518942868863921975665350143001741101358958165701005010465073768759572627854691284117379568192578378711964299314133983720992434667138403862988124543873344052474212049159276657321524154694277386546961613494622720476416727346645484732445973114245735190772102054748457208440078625128213796822197720174609529158744837033451820610979069681397337796188218648785191793121334657749100693380193690580042215061524515464415791430984566627391893877693066719896266262505579482263004540307475500478655825435121937436453620334691662440772958515199215527230290611285352877988287467933827563852002141173374437286028342773417176793515828153878470566922842424555171207620671626349185887237140990911888850020548286768835988044933075958979220808016903278275143534209201941997992257206388024905828819121167188202860114556938471470798201338889636043833583119084215604532972170023195532575285401702155873227388193199646247524565608962877183519493960428096293131683449731280245455746601284013903797479730119298706167880749163774384448428928626437814344971127361129073388236484369783625260276487160953207583463494097620131995225528714024347081366657754458161394961703343053177501509692750725037999769548658964518363752344703668521532473387494758020050342559608760508454483680004244178012597031434064012366050101499572947066371316027049480027165938975640948756106628595069680097995711696052122326379788823322017158413770275186788278275481972142363275036498010122479153487005080733894800391194253698955232459936223976262306202965875382395507596803778813540407528533888089879610416200556325212275731305797055470779524051908928613268802676458562506345627812769091803393752903548432705348687007455255249618264954950922303004292008789251400431491873737949702594825878269471005169244090226386664618648983829243525997679693474317864554835882217635229828329018313289349085216632583525259195617108109302916838854876756290853902552552348973980966232314716409171941854689742572412388815517162611567989407733197861617038383416652399137098826075040309703957747611066994644622456138144611812236059986051539979443977994559877220044283477913270052869529219698090750530331153478983732667274168401632026648761135776817856479109534861716315391220244504367196008964309855779297320173708828776358187830584598390131076524170990398874803744543589659964670346584541335674383106151872509877403476429509493437346988525938650522849892744369106565178018986519036676322641671533502898069125553405310047156941713305229195337250036027849079185846397779015554177009753003792807375249620932309255277166597853187790285817587972720170765573703753988372313403596120938445172897444225683530417952736138111192345773685226728741511620434250221755905158083364985722820769166452225697115432334604565217003053910306861211325434767597306518273923699306099768406250712906799092085384108939576034938597905855865810959505750313185358666436779450474948350332795459020876675278049950262640460495028167295128386102090341911636814893237013354358859029887575598488847038991031602164547359697063454182859053376241439519017132840739166135546722769544764990143416390791201262768960332302810027358815984930266467307389337660741972722593574572341502407143873600391288972628398046717953252850384187128634896723727129700325592024839870652171422017752611124985772808843401926464390201800274051265229964623955571138987847630615042482049713668413319247554764197935493878906954903091174262891905881588824442452342447657436886658518629126499960245184028712379443331305245729782247216413829482502816722391564239654191675019279516700696348178470081857910074330371479905433024383823080498382793084419503375548461240928028665205253713364239580180759840645235481460396220315002666406327996970720685905303896144853835709731861164717363959246587207014103949362428148932033978727570405520646687655645036812262055737725476787307716485773696362067056152761079583583207293555753744697341423844671497633398505400344410099235321848993772599304147950079316458790321433170381226036297776344414535864674249948702452391523699206104286100948894083711850167284207439581078316816527461605791527594620475951802693841085889218440702705662166218401224207290920047908760402667409952963473870812037399005060529622939455439093241388336940097128445645731771964334053756994283378994001221337513351843097173280727343750357787969883352548523963891461167039748358262844415782988711126370074187363970048227003296126625110317229172016675218067469156253487365008652979018590039581485307287526499148735402674171332139854469218418737394015823121687680517511787688015898264199820898785142124402878865546765025680251355105629949971187459245532539260134952777654505824215326411042773336469296211125880457074025647216435372274872650343724787011061576019250774723658509804254907272286863442812928689433849623957333997401553384857767525046619324690788972306593956367171066840992264773209647927813576492388730388753421720908148927124853441531997219752294166115963861657123175287256574028958616020970341002728980269364224174368658065578654694688419690645075151767554812246150740602068387092080137229659572891918359113309808792633702113095448868940130797139594849906973245463993413692718287321372999674856957058495453464209247465190168398009205459740596387866445962111288332784516090236140717278935193816080555564125809210725897356007281413489559616072119000779108311294508839307625950853398904866210676759571834560314959479766710143528014133791753386539981839878560577376133110081975024264192190332013954983654453923183999613132807971624587246902391154004506883280408339949084375636507546413645209797564440051949204223159390118797171234863176843481949987709500646055427243833134128246978802163232667893594672862980000842535898356412469717712460829285902950083835463216537613197454300467413880700304905437444998955879362440210995395795894235763611949817029188005178565578879868367040933943251303977644994298293624253097129131876613923311723383486938374876766076103792287741609914399557408398821468609864114189978985660535796480347203561238070266621194647444630117189975986211125567831269428361625584004488385436100257365765888599476218326630246105189635511352988614967693160550019440488140792699369467950980172117984483663988112707979986791397781487949385783409834471910596480090819788185684342143273611659767550249223091162017320217618576093627221247362560944195009208604318066793270813534163871419876999922029546086110491030911293552169788266815179755721526084529647687834208274375753356345006034317758561866571625724345759391057987058736454595995092956981150802495776442071413669441797456719706102406227130924743086022838511094636428212127836141610095149222148607650421241608958832147994888604347795245568122323508303177839482854549201178050607076913974991134067045829141508580655397199115460408443302333366951260579950818391422112317451991492040947969354981467764516339615766793201997669740549920820885682898317009440419363860211410764803036242357908420992834432748666514642736409397153430133460690762256119403146103228944825451404655049130614663984977748669170043266170339144768321331223526324104667768236166717841347627297838495593692397582156144954114621310368039912018117048346627612219088515049181053187542178441041520699722080668398276729893267198928573982501589733700110864456771521499625620808390534746048103470277632310228987372384537753245509950064054539133669063460093545084935102384621079623752440696363238908516602730407516706348707072714238161892366904420454158128618824867962430376503399401997536301802604149907464188144779791837829689498560031206199221563547315028763343459417741142523818473967943339026512504743827080863055422792140660925433583443644635028859949084416272764297201665191513482656968453965464549888172967422887833771394658538354070417125028389150914558840837775233178360635610574629416443413681085200516071504050477612542338257778113758745190772453882023342944579719582907022170233950982574092422111238847124161784070722731645958248306569620644130439864636575845152974322729849294652181426848287954449513767707506267077156056064133008828903310272435348136409283807635849110625372595351826428231943961793470674392840937871712179370360786920334393564758591165311928378889704587581218055460850240086185393097295128928952523206751384842162297525292057676710937278584091827890416033288714549381241625227275114432895007315531884348872674857305787735431503471898101638651399673797253821103725022122729480701052529887074671701626776170521670747489867955464195356888305356280223340185503049846870622305916046880433888498698034952994821833225170142081459962400334200947975378565547707657698104515101495624564204482397372951718719978045971655235893320330074826293299040672479335729750773708976242268878575032781274611617934305901558905471383270642862285956536736630692811698946151866897468709123433567684854446383239759099723228883629032206124241661932077684764054513876365897222737572320968029181663151276179119865054246741501801649495115350644914073225460614164052614945930141782814149873617422167836084385037468320140983084442892506294053777948538017527010857559391495907193424719082624678715052305577257409104265600559643154681330271671139297823442421455486958298631422624520104998996195282178688343557860801259512519689129710119647901805028902408389644085544709498461081637642893524105383691889015236082923203761957418218508885804711338504962677344346136016541844489131743114808775562902154452524603068071828618818740928940312356998622826115455055471428338572850090235692310490603793974451209486482983927796571718592983492318700767474666438111142748578710727757104438907626398952160588944737707558199428465401281024137365682558013253235000932863327436200282151227101228683230756969625979046305294052872520280676463668521875309625353419978516539423650550677811112512517745321447762090552927646870605803949000824185192707990776051784512509528493845655113185195862267862821924209155321292917949400326755096496227545161916605980244022453546862269142476076172076471691367051085318030519915270430189584733316614419427152985145850757368149735964691304976883266860101160070070190996005420674354625595591269904407915040967946166877451068248648267929392728177584519988200108166001073450238232208291938320831067439122932780999550328224194321862637926663425019125276883476709104247775484416957092412274429698856156830099311319282965791164138125363255018431908368951472078850861086059656917537023009077170179941351420344993368114519848619125740150855921272823382434273365410692407609007086053677013384393544083449177116757121488750578347730987567377582247776207124875208325903632933864331702265155535418978977977953947893112772335306263079378819283915654994530954896912708119178356017819178447555901434824035127147618308335073863638400734705143011096935110212221076049609496341316805802677381825585540160914782871962188323789849749923593679718158655462682508403171226936869671168762641585873856337932462294020860751046367510753474190151639477447552095174061977684017777348401352239349828783286091785840458937437544631807535244109074847807594004594013044808846165040911909484461721681782853209559461467599951263558981849111867361256814199654234125165918253711050098752402994860746224704087447416089023673615331733083915147233954746825289930046494961397341024640320291200299347447244218601181287109648699670206536609158184604255713391100739340688967047726129040918122897301540794377982728056435744841281796594461036619040306258700612570318657495574041247099623625257797228040588597150920257739372401134827359085687084700506303593582818656392163298462978069280195424224404344662706225217454127247315864240965808143593187102857654217699386130780658761264518641227842534320738008089178350409228917018487378282400031800908475901382939459535433087239369234206739423000772960158737317929647305302207941447740892207861410979389736670842031498079858681495094547801915977788734764278100293613339995881165209176677294181276415120442254206774498402272462084009452238449463681521858408241208510927073339307980002936094016422142183011477323272582047856640730795639909993284947028347531025046752832942334521866921160791120753312158096638425730082122471585058165303568577090762005777564986510207244422376677983671890893189750935284183208577662472621303991700015053799697650619807611957761613486851125245238278802394873575193339857992878873669870072718596906466941317905026534090979009764874138742398331544273829328767103591853096818568024340705536391052567921854728547093185324982473978800266523821603341135236590065870262973864285375416356482491670872566276701488656506870957470036660255846101466024299020159048213877798076603930204952566039620264762962169394718205711666172343618794909302792349168288368845608127892328808336203899338972292045776411832286628521342128392155474996503809011947425650369196184395218774920271520125505546165332792054937801438178939979633768618494221437881316729469220425037366282165249658738354816454824814156407535016881935939451025618568075311802093797709922472964429647156353721640935699461643020318708546272212358142372167416598084445749346715320215528483396322209720450365649621237695373335684992212665838748267405080165996171887616970090233257378228357312212754897215093804191077257508108575679148817314044379712101382829778028250592290818983532311526584015411393292511677593709271153772060491121306504847582758732991850182587823773709551138564362820703299579499676001333630875968673779292622898281714261023449980431774128772552425672009004130443740586918374859405646716606565157627053418598077125341419616838343637330995864499377276064941812599116696204246875704496155829037736506694803208655140280475168195183153354666250750121799246793882679062101367934976499827369136886920413524959797709602382064516691073174515372931244471082866019106663372247539014570062961262896058806215565734972811433245761614860024938925049560765803742972377793596897453654261352951303308333607746024426618874708239120365785332459674389020721220163445888632592363633442645547256515710776214690079757235781359484893422468690426079219904108028599901883629109626698209860660371946301200633537123048082255372603029878417701161929794269958078661297123032291730728811876464830254886579509582989806416766642250489494626906012119747797347790132233523102871904877941936575915690354719261840970420288523155294458062428102847085221027502934640334677596836758691075697592386903503192230480114670302314943890587265762319187710853329936176293990584455413012868399996433539970891018014913445468892408408696800147250924603982859976470340678521709068670205828711335472595790685159398679518599775552910056577105318042016072256263474250207051499011773106406911325471123225370349907411142693628969370537822518539000116323495486217868896477906539851893795037391318002492361444931397940754739944209942278453863643577908371620313133557243431444967514194477325037806729516260831919915394594072257825818195199235770652019688297231425961684708981957641459987568500797114648113970160280008241355679744182113404400223823545804560389915977745103062557975870174942171975569588316824198709166036256840604444276112913472205462888211842554886017551604068789933270183991055750185189246346037133305980929511643699659246305266021685941125903837374119986371084665228090308738166394907680453157472486514732298793772756922595556403834269970026914049217553304245835875162832772583298081094973295703326694324361268816554733754561800650207467902712542167843820112495638495062436230660090741685775433557203498600125321880381167215237114532069984540886288788954988741147907427579720393244175645499501957616676540740532001476266761074659639236785511899868652596358700767738018031337427528214022247364177013731588782987576849262021562899100340315247612168371017164742392252495355077763952648657738631476073628892329606052524722698093714203310066525421980392617868179018987361916712625580558680792770670543098325680987880867390026081016785579611660382626345845200836914634479221793512872620244523974774697399995422453783381708850878776586876054452147941579667785308118200838797463290518933182382529594610502200107307814470011157449596670974410432183062585388691311603116032846437323382631623687854409498789865515098107607055408833230200764679195282690529030356671722845439207433190417353460042064252775055865971925641611390779488860141261616979259271823753373433471328306488795878884250748672953042744426085747404830570461492532429144828066810076469376576976558948746385055255317013426240148042627308148539766467563287833167626914276000272268841555303747280317103442563074821126342452246475512679010494875164177775630406110236255705480115721750598627160500638686819379557753761898481895080459077490921951508954876111999709279187383240244716712106543182440121869699710152646946447033511787331278706982879889706709284414558843321916487067534265913266317115023367993121538934118787913396807492443707471100648710981536962157034971606249565628372160546569569703299674739739825964834874385842570985800912973126080864300478308462844420431954782283786568667544830665115211342643715295442246099751025520028773584159467186439783521062742007313135282894344296018671355303431582634518850121846111563085353784816495394458984473646992118526813959090729610119041204601966342891316625045122326635319470834387959495625368473965008158488570368333933937053305698390525736378094811516345365938029775574024397320653053670128931372020563128649348600148393345237380542672907147327757521067242498092851056567313737992669426020252943982736994707242376692292123513238787587063729729897326631774136395826575729396189223056218740123149705586886475129351857979844385630073857690074248954942593784317807027569081553451382621552350037230501959242772433004234028321454268096787337395778060783239482513836066617868838516155031539220138847686922738075495510584543154439644253624082424423265492923554012241357385502815910173204035516082492938897367999902344022124528671459821925964644411411154639980880983326310555259773008422266656334939266632668577604700011557464555325762759703973764148600070328387781861314435554711739664354367100777461179952703690589983467078593834100512255898795380700596942582912475952453415436087359517189948592509060856891750599643990449103584700627741457796376825315997230497577391916874650740890692218863829504192239304920192307147258790546781912871016696748439861485518109374008644798147822140196149372340931391498107971206441143153292752836454410450053219325534523829990803848195994988687427011442120713506878570580445660611070056763967105071020937433962162016853970943032087376550473164181886579992416521419879231493030357167958042642673178605693733799303973884929460348814850741378831712271893506537226282000214241777155010426097864660138052556764853655066135069430716747311365904689478623729949476630103933748890130234830055468424502968598313012962525244668150179087353636626872723580689414138513068801159516679486489705016216617570842983127211685955729363918935361568350755670748437528940010645187503518185849910340586474669885616368714948028523639421898104240304281857115925696724497978692838167613588380741074977889078765905340280744991958894047659379351390124633455478922472364034039475445095399734641374533580284831285850286702012593197737750625811746168445114053650341780131672365512098646202335504936179533037195115027051828564280951509851852444775596409222151903128028718549456327819347080028193846028178986877331539771383330295338925257943451238412683626733465558069080459672235415695648687330549666885933716553876733172716540369672703372165979753162083894780226890166890378570141148624476853625852187660663252430170845787844480118658050132295817427963234146698343799808481503286547955534504207256736476954864271640207664024021469181310160690007948010441516681005004418752526024994559277423350076351006101805851619668505261184873315549835903037124656209084464356713104553083222084636394133254019151443352209546753220788784854727441305620307378089808753208995225424808077485022793261491143952506487276771516563995172488963266184140254085168578058049099521866450323420561598529727082379165633672974024191383379458768781493738240801613722700808911964524359071841207209677579486547886805014411316367102446571275843404561443903267012808958408471920327905288772731949325752934342518153843511866589572970248895210924930494162297684160132589201644549008614686240439885743660337927847865182493192735727654769128690654661343024870486160708049678885096385974629545825898379597737671016634990086024433649229155332033748755857591558024348871727070780038569959398690175374719027178539001750706833252982224517109604374515598004716372306412039421769305093480444564433377858807741701714526076275774016243067185209649137126409734895753860655191149249880709749544825715717799523097254404498307773249144939523462579556539140253095302689742701673195709191324948160499663222252946332303917384046514172981350733332579781446788150140624031910056460820583767185013889333709468259427944357836883914094407998472803304768406070809676860349419410556636679625399851061709295391632480894363139277677400186329807682213908124301196176872660025517660969580104289954742005289432166528636639980167205500728891390614936292975320887336799860952613198924462970891136624224942591250913130384813390710104718662282889910749347679793318937585123617518357204073541180405819684427125948374393646788279727653491129885471409952823520942077496404464412253650560846531162330296228185701838253026029807380469424460785574298383637450286583600147248978799677508745639737118718037079256466729930167330038292383665852500272874507657089822532843221814309136589826763945385391880020998401548586660998503178902874439921691755177538624221000515270101651778452404071476548841951855167360722044186806402894859467878534221864093680504976829879050158723784590335874464780338794494281415284215624654148105653103669697646157147296700323832679809043214046881908352235192687396615407450441554436569600331675376377581232535965374778820993586823962857492482177443758833242619059007962025809005504627699246483505301336636939419286504608693852583712716916387165264181811294647694618225533513674096151932905993121480820876233421109346804789683040424065908321343550451930592429736888837247550287238240906186492259013793369818665951434259149459407524977639145787960555378594918562959651905060985196241682092278843367388959725116031056586583092745703751935448540486225331904044659214254020304435791030015483620460786291765734956798195363640077349321530233459511791724430083173167248145175095992418093545951959450685843301233017304530339822678844560800060020859019221459038679070604919657190536641799857606256177953188477375545912789046494137842303708058449237341420735240269676214499863183969361517479408793368107628162970825662373438039703119187515633844322515372501443209088899270009443273089817149394194525690877997621083570647090764685919236947619345018073178698987758961768964632623396697473481353918873329241313943411057134751044922606528515203613982446290535914877669662838188911281007683169030102637936802600929442455816081915262788175616537908556925311009869280399981590346459051706280613372479885529712145595940651600864401847922096265438424347811282114818841671051706342697905159497500171487669298998371758297399598779572042159679330519828262256536198224092824074109716217740903897846812250178869502711531761205505834908212181130471969715045488200343145088377994408609804567991438763153047321314204610009203511618973202005767507770314060291911777539828548603938652304176336311070454960766149143960359537489189230153272250903013328310440963135000130589797700797173889099000791919356747836944983114026740849330498429792508502957331120313538557723409649311980357057107014553944609455226523508900448783461033340596938216100087768625336285398836162935826486701161576697041790967753465712971108814827450182625283882035894128546282320047447022061139867923185161685989257093921444594718934196948152922823168295476197499432304811425843915176228947261641987726846633368825538407623299998234195507335653751626808145987821033682379124537492066360308597865094805733338214271984271460687224011692725936745799112840100237072766328572428161946614606156063551631054698214710495401176095703218510661738270516745731824633291505457764954475595546798612931917697310562466851317361867358533847559133525157665738406736474035011155389980231933044284210321907839143517461234919210687471531155784484289390365374425322350776942183298782953443192252024160112620157737303477056546892538893858984597970603702610213959248788457237351929023444457945108005412815922918989300238664949678038087872359130803382586028705894522425929678567690315808525027943748630556891868437887009664026505489114790725104799473340851389214076752044576116489677358036292469122997771012827872603511148651512388150107539666018906382892591514330014976531285621469112027065391107439655171068543311837770392999595034699633639262920233519473459012260787416844168648488324233819147527573306684942519366910736640486122035210394054091999689974327259922004584420268751306336922507301255301635024394970355359728089202410527374775880591312664931710684744358007173803357327326729511199851367476522077423100605873553262746655264755855992677396835400669545946066891340562228271249668367155871917556025721852933469469064786988776962647999912583806405607365097491126504819724128070707898767177855107381670846503843642888686722461378333517666239365558210018100511503620759382400784922907540825735570298741124858380517710429072892800310578725284500844421219311615088310371532063120017663404252543282552831252090193776595868159970735860877705828166814275730972317722010481647761674080192163750732297625462019456912182724180702420511406153590225906769791479899482302123034844074880248676068807983306946972530183671692441632639733470092460968156656575681030589239081125942914212331397122610902854728537905204306697200152169114659981642709711749033205210818071442185694502380021899301365448938778947767590089557546087854241702371846517245336380222630482583145932329051404742746477800622949945536075884564819549349659994652705785146756647269862602360386016682323026850986381424458521793653510318551682845209658618797880890320273484897802693693676995860143333568141636595507533643281295220261666058074230867504033462827374538872904261323861390369100487823307204529280555775703133388379014800293908449363495192678645156969803985953489673343666192540331917500944462251685044141598127022062808314673720565082642475889957050838206494333330974491511098909153070040798297435952720388761104269023433978569077341852538763263612096329158761725779305116106508948397930336225293621057689178235237962282927854801338909147031307237216848240106389667816663642887815773180975444611130952338426486681995709079246619197284518742247718580402195288206631859459304782310000966643477014941579775638133600046565778724662463101914688068217131231388985114978606071373282737688555243256325982601792131083718150659889292117448765749577961134461559116166383445448717127700853492657945125462657500011448308732985749730159902154406792819643315690647012760069035728672426293342364204628812576631877904546476727112651950697888460756127761111050192975425290782129605589094437005629335857097980014399534648971166421595534757628386988494137099267051045322350921181988231481639040217268324512932692718557274157556516932845052616653918160215087821175844253663080712043253026233643376175867466107404626940350319076204565197657723386410859090954399543278532370944153416064296013570011261636494202099048138766153387322380757430006613801420569542265173774917157320426736269017124216211246176014019423314961594419364663160631576667748981982602265645272711900795453489407120592275296210182381484623290493414915274178228590363656307870833234635071773873871695698830694577542555343441909655555828684534766523781160545883960727912466189336022306395486561502014874158476961999068827890246829536348066328805046700400101523022535778704757656079449840551456835698173902484228520083759209936391912026111445011601296393160259177286148733632856961887017052953685553360015720130040813077766048664145701678399204096095107739176621421648773029315527938819053405359148524023409676999102213065831896174742254470132171554585450466019940891994698562811367365532094721935982317893818758469124613203835622518977157438179643648562558099018924262935960654458897403204956070236179247672027141465991755390578120889121426922278525537748909431559656110996979780159340977682694237809234634638822305376488944075852500402675987385851388657205300308863709805714592181241814582415830159312910705951628604485825665869803631284708315247705588106746316555264490575717184161045926408595705213074861237161548916872098533924394522707014893103540688963806313029208572189613479403321236114175480980265952529685828629383971058711755940020850759535469528395850426042630824328015118394370531006869808924800522332030495511794399496677415373735549245586107177486379061626496350391399618148005598336915652802435281821772226488737793639446979947373088856912687077897569911228099643578048998393154262578759211990953475385436656075855331980897571982531379389619252131173432614079951583806701011460964105109803667168108859199544725254636589975885758224665519826181508914292542887650355508178254127623048110685011704822196251099028212561531174750940394219083907920424221261584210912338918500291484533938428931320321368926712293068938440238068743744741419372669513619847050213141242518061806037703090719062224180209421487478717634599429564382462675676064871837560245215132821119506907700730517724219230314150533496280173122194683240175009255733206589809123858951052960261559183187881695005787162213363767328989360088010250821844795177105001044479661177119840897978992720228962909280435894483553930797872387039442194849512785781651400273557711360851153352940428966249041163891681568007099256001149442037185701479601445414854410824272352368650652806973610681655428745223981008992645588471984009565587929627414742188495815108877110825381775955497833262906946537344854967587576625869496034719533562234922703459841358064334127202305660852229050599190035305918931834474934727824652856688207002869769338279959348611586734285197755259045820154337737542790187513573358820068481319416036030877091150150645395136540956663844528294671944068228914344326300860030446791832749210425156488110289082032115832458601004827573869103228701377644573823092307555902524513405626784948890986344523295088101170772614229617173185951559457241042125574083144838377381351338547736509123451657791172354442538070411045515652731682636023613376606702913042140865970190071134750372192059946969004154509223757920055681410179122648241773565213117397498805994166809849518098147803980625861830791009394144653302570368335320454365297234160210379234950206911679678597482144337288284204959722924955207734502384643311036984362498683561448892236042195142168967870278896769415150462131692209446087032299840510074407246819192867746920785410341384072574574643320317418037152538228803778847741806830408239340983106654271767344963731572739288907406104984061152677397043074777758732071794923619020691899375319994453101871777377813262435884893266188379977976319491676350594084846382133994010515536375775109920052241893586301775855464028713473950311394845431223060365850147739360807740427191499306360371198162843887203634663287359633758712553674214136460593602869882473841804487715703043883852732096137108407898294841561596293129028818386889871853284897645440642751398914261338909020591946988414639282022295546695139602325625095828021043352225016275129206242524941072391397693263259815607494565514370187452514964518557573518112890328615930306248234864392107012148350001002098205633304178662047888738546265030419347891032477480701424110066525788276855008578139887348726223787124473876795734657897369109157618201841110012418547212610375008941744739797142124272954198478172560276132364022341373849302349756207371400104676280692771264280706909108471900698372916613159153177087648157668739136837246310559786195763458711316862132210277806416931865045203806005436194025382438297168637553326075233440705638449937963840118454328577586970496633758085373613295802528940198472835484768969942388431797425462672345537674497091959204776281458396882469404832766030299109133410506890920176683934268131765497230641868675020032960441851416202542691139575731295333516016812598154271992265883338211313592698690040042741999664317540646994736973105519601078344795841643015908578201644854144079861159457979885464057409630404612729936195739969827266609692490596313906627509163235732071688848186272639286413107489781936329296735269052205896093044379707200961585327689009770433892525405857348655648447926355683338533517378781163935243075471420585535412306014409886861123503028980756766583803954768002823209048376736291257802157597821714506938705040108456367542497375892137279705167753119532696773489669698822537065144007922025352621680288272267458865598948736583351808430597297789041445653617385070034376652214658258101570875743546504124742829280069029863974261034464466202668621791764322057338120201432780297791243186475218551632139985436045842645286235918209250062117884265319184318279568390083223135423224256219611228816441556793857839552437213997647376351032987677092091321422511444935599246075872889990645907085504337073583296094984590169552549451200986479970624345369555452778213992088180699991861971261211892157843527894088403081946546982865721293233380665290755836018161962439926614733002256579565643855846244585902761602037504714604248296197882453452374203234648002977141869052271960211349218658194059567108215141928036974780955506999539425607192060541471725722986899733717732556512925681557157373583274352013018840647629636431206750548572732124368463673748786195213781026296466894735225636985380769697348192090993139374697981021404272021816516469177576889417489095543040721278784926849623036019507456522533334978234877471002549226199679683178387140600390948612797288257008116220723716833934955776408172841090481188679034129138793319416822788928542763381866840056290207717507453141412868969759973968369894804066904509502632597668493769762126048471507675393572128142150389413005752626440001459060103740089619526786531673833490860158721728310617159896572841910514304745786269555888921567681534407133092053436444340766265086237961942337915339772860100260378304087085404080593670581191497673628124961570824440318870545662780022725132542762992380924772696980613203105012673053034499297227973117245006288033815374700493679611660485764373643779132605053684907723954428497872461266975754629692217543815809927750707530901034350772614341426012140757146904435652736882293482022159188918754929863124068465683855120710093482526912126755051847334596991111361304318102992160460699544276966982659421266585853446369533356829275096278709932224324319515892917937202964982374798595380454130874159104884152500983128107499711114208770757929946788527394357971605865096706612421593877244358286863903574684802473093443086874324297453501153285695997471218146385168537293433762611777558656470451862439354181731733165152238553225902104061861588514853081910016615285967395442437329851057868925607444269931001288635471574390328926496447129366389978047655910083911707989170893682398019347270869794890099360021424886133863553737474784156197392075967260951796849608716402428344799958139706759997190909887144461267340115044498222507539286605639272937088906331451316270069810399761285437134494455625275877605038802797642300544941554541071344491124848674944984838218866591130637830479722304512424642499193999407625737615892692746439172975650774547158600635003223313958247512697310350613584698492271286774729631014106328344479240805835554805195016402836271864517902085273422074047881174685662952741141197588663353975522553348937011776644120396664005718943004428516213313849266627691607128230382620556684070873853531774969577112569803240638375581170547574242808153547921281116968160504995115904359616251116286479346341489929383939799110191570226652877269526381266895591042660299939561936458185788128219537718672894115384269255627968176270689233592408611041030378759064331928409162468893511196074664534692233077092734651085961519950326326446722234300949854908068004214301530194933131182691502630968321825995547593811788822201823871067252475140662079251872249866254985386920344329671791927225587784629060428845850284446352284421299552593972323108922318524147754135767660278199355178298079403694980850648027303246651404854244734197133282472827967314580257074185048071231505462790799907792315830915980907887518793356574691124652499686068948280047237286089899676116590061444729259713199880526451420291391067663786664735194626165316154242298407245572139810277577797469927932523801814005163605882767743437819461179237985457035738959864942598988352269926947858595537221835600529556041229360263891118551492506946555360754767126319806091791732583333652771511948962960350221800484966571742056760231271842566156838797370796561695472390677778724022356540598644801411809364827895587757727266278558517995402472698697965628156283925967551362407994204765812025009081588864304367692240740368336708585688980780134556428114403784076553288954404302842803106763651083574906294851496606653634891163641555158744339421065597437638414737409796927015713607517102863315061147044219610318957615668967824788417454200213987253372618756662226638119823458404076766149193354666377834109668171596321226651355603155144299343945569194937732514529405505750821810578464166457581295597169474326164555818971608060328622095031955551279839288641494215174973088212199242788495803558034637210393034328195896148546846196674714084081854054128875199779864614242377702115296383904661784386732934304765744961250761022149727866819223619058318240212997733178109900027433714148781640202063011676281349010338841981530540911995475584984125308180470705142742062068803899832356445774075304386745288111611820605702163968071569740379908808607987063668739819276613741034732373777930324057286335628226339229595865745036049695043608535871547306192444969357589999055682841844583473935310935086521296732995761683279002439052646124185537093080375029245386707312524335447010056612107282767546297376300318828299023972322401274716813123512554519730066673658055261010192403608222109508176617170640845789651512629225404337922880466830843943674018995194251504590999157660412270748113134248390714402044338177798571706052519711526799618236687675093987465853059554316812528406135258272914639399692912501974743646417962626015042857052798650320398155237409341145803727391843521931520563913663036098796321832107294271060748486527080007921324259362582227544172896843462422964483439022902875252536556495254948850759590282555654924484611497041117215264947126373490798455532142324879003660591428674505391251739078821966248231451151222113424133768089766947563729096767349052616356113530030745835939606698684497011446951827657145908644362057643514645626486224661760913208186498628990699316890750197855776591859132702485892808630681014862519922174103765780697140535107389928404586205516828305401932233585466092092970742886466893941578672679801966568368690244905566014727286308247212707066455179459592957615023815903050048897229810312314987682151502555864824545842023754681928819250337647619213253746418529122788521125450492752375916296056464948013497782143306720591478790959071909827769383112221352369337183575733657420017888815163625841475976352775910883436805700507412367143715466064457282533694823407500094685431199904701248032037955924500709325842875945018485941422306227848766074008521476034239206943216199311326034119751362915162579392685187868356754851849766823342821499903392197233184855279855672564564245129857243089126107822742471295207721585161951805429218266101883452056310116976264053641082425530359182351621776374031192807326492296554146466367986361911760500082023003239873767913027078903855048313996539562817901776881878192584955046950200110741115648674787388462178326567820077722077720528449782764830253577662865739468314508387566559973649007357228575277223320938301582348020610838083116434629614133311860118659111563483992793359647993327582801648943409937710708298850630325858407989093215432252955035059466269001816921186652111546568562703215604635183248337090506519147529239576936418595827824021627143502129276237502755898944043228891325540684039539197931935189666927856981923175585019786801468166633633502712395132446411234208497962435380188734688469271696024071143562846638483921009300248310651855242906015360269796580266291758464989433359872675373728393036319307249681504930333821835686202359999883810668545018386245470343993994064543840227002896376124912273336165882044893920561375319379038685330108598385691362788642138056441960377767853508034516540378520708376275421106645396527197274143645132076745380033913007385441029693730692476033148998697960752825396798092059708099072815279108769705116258931405382296091526785244733787552164720248804567835273447624506573338734961630205285253909397752544879224538196017705322762249046713819987575866172514814565337510977501584521350385023731622131331241707002446398108603316631625945264386640923392758097854751888180437755200752110678568476355983803742464918363000024660285464726477160559344901004989261058437763331215595435835797342547874686756677771882121608951529199527191743975930352806451088501925348564727698395342067984550308303334850435204744164874367468358446338002873574840881317707644021447445057032283022089023705214302727745072331212615607679654985230617862116360299420006283116658438285162991233302368653351112716660816452471482883778285703353425877895628167606568007996780279601099187944438085098755479555996940791728619586341817887444133658057884800100624777655057058242275153354784118276499134733155287911351458622269324542473555621307624156444926012487294205353822023102368262514329481408794867564889292299922037029599649855272625995713057297898797709851279056842324636036953426955183334658508730947695230224279774773820621003872743934357098458480549737207345502516910772169293155251473931630332675338252522077735285287407315468049003825513743808499609520891615083633529881439826400541008731510492198167615816399705078566098710885651146247487513514535940303176593658373824665438077292445409198536879677694243192293448894156778273807120042364463533774838336645064003791629188400639374450511126201844204756513343582376390862359896642762246704751614981198118844190657430596808942102721225429527999994368460025791663178397483827594185583604634461655872261341430652221530877280566263353454054809198613027308207185050982470628909969507237824825212039375976851899184788121456140306921842502766537464002560573464655367220959069657950782450275914299318030426130730814433020437159624665168612927222014503195594732598908332725500539169031048647846024130303770405112877456652769030206445187428074581601352013023252466785242418426383272037067732215956076797737300974648610077774231289674269325235875072167618302682079686457303103968506679192162430053719609468271421591337252549708677658986000220615817391988693429507928042327979604281690140581057281133102952832925737836925884831069886145971959080167683377107035734985632900245384195209336769427070606045687581285914093800781562934294913922496478561502788673577301120014539232235177871730673448280227187893047746161041373631380698170506228486864698300749029282056009941027806817020390126019052988861552638327804379143527326616898940850106930434759979013039224149317850301218862761446983653253171986068750808197963168833136562194107190737179120446239051485017989264852301944124316758687995061445847270921845748535680258041393207045914300392985436785141830880094986938656286291697659731279561677167850473385968809357294689127923565547996914039398248418395728369706992142041724487351333799843336349423868340260013123872138882775572744465501433111138486060469542727493388813081967175977326133610196300859317192572529347809852916423687925304698785258516815368774353345081434039062018409365970679687916186578137562051041142375376241080829671886532982690330659274781195798766561197423784667914009839159715281846402693829326753925206796509071379848447085038587874932025342766732620499605064030809976410152714438355813918393584296566533556700469079201143033487958302854274149387335508446523094001097952597522484313375740998286322218725412524678342766235734870880426616183886760663051216853113439094578530716539051092772570423714447529592434129423299307952704526825705743996366517575154146219513220971977519029203627548072106046488197904828759580266871311089958493728126476329197549033324906181132110839194170423659820490702182970652040012836073599909596812595237112652564774349551060830268504510238447642398197884599800051353871452175549972409171709206651220323519546832615769486912179671912151518500790954423789729311817001129791490097602956055826419669714350374807096397780892992480309558011019794671498877667053550335141827198063217116562489422268327420908874571018319794813338368937684843779435145350184571815410161865571264698409495959261828618235406590906033252138868434990606770576906003639259782088033183642071405160233686591553087001380483736900824380916057604187758136749204965977631948260970493771785373814789367334224100425321013584807495503637271647085248677882362576355343813099023926754724577534226865786075568348495185670606677638560622626203250469570145322568720566797377804715132883431721388508574847494296238311922486886594126133082966951469169702125708384060559295729241875834847650835949012045771415595109644042150087141319448381416754749857194109477014211532754792630758359024580808364160372899171805131040701081252386558896353810759812504737169185515656725567051950167929622441407931811002108724588310922926513418771350013389515787139228676845334067876697079877969314563046786253766379736182024544418417294869481492432438628665827794169453026049471502165995283469892535228195809014136044173146874872658876246037894019643266547775685449370729286361605016483746959547660241027378791441377914871776222844601033258590838158182175718408119945813022417671225989398896761877444788073515121660534953412290733765607855516710542325072978838502472552052378865687872928865231169495017090167038101151386732263301578449755485795078711772429091507527130703124376562963798170934993513428938798253172160876702093615036113609024788801797578167948781894590080468263198752305355425267113548002218126485304310847115272148210506617763424428018131783566870059444678079623230509898368781080408435704157478684150211759455770133105752396756161789546828684577624695650153153547494595871725737506782916336850148694162060467286657033633722623050262228910055584964558767269607150160951408083387087621380798143040316665725391789508668698239742087433515733410529433127037981691338832867967116970240683307374517378615579520738938982603585430704312631101156948487147734179478748849923367921662732315104275183986013926486227943689729128115016733354826569235179427618383793175143410121315645111626480436804287119921705416562596102654066981370501959402916627845718438437731572765895784044521283276486492052237835844534362753319264684850200753404401002485781546359482059100025282820871337661808263131731500622185216463210419411818922781480734297221514573841741222485092317619065153790893830170222851058531956755613155839146496976155001150810924953717792778190653177030656651818972663357237010742499990740696452011022693006904136668296010282862856650510064077550526007811740514392200388044409660493784121906312510943309310252906937817644522114712060543474161462899245999527340351820841835401507108625998316649764229327829805235385130913014712797638617592967987682380601262885916141956443987614994855753183781076709170775179982087587867684641063268496935526128767935545901601559832827684237993141691599911333702205853550591570527488731033410007362252122770607614260770475588657676820752174643517478899499919600477507085669314534555434501499764886460936471013300184542123388971389337965905245920636311525460088369424942381441008419630626652168384565790968686076559727380013505743423452238843530499437878076372970825555529440914685115578429555441215145239067017200337944604857767950928699940961279719686185236802601799669899531629767248142672245660584593189616901696151540344190486702172892546842370714809732159954431453400302764963359054019801520792288714502485345570011411789530823214580251617088441904392332516024892399416517029037494698225310864803433200464005928110921964554814731226924364606983570283740807200892148408243839934013939038587579348242833565035273745502539479337940027467056379545770948300727394554338716685248152116440841534761473741040037238156037161952538204678796282547207296616445902265309403111593558337391620286746090144785067187699635236208933622961621193667934161982710041678885942454572923855766705291431338601110321880539736567150387365130005889874311970146217199464059444756852318186787870528764812763528579586620915914153411346861138171302983107126145786209591025709528013855332287679888091802795157797926911178324953318864989056015102916364132760376442764053605638710965512074193502246860774774066375623300730616053817460662112841440365588791041395694074930529774052918185145964662552786966299381530688245221678733924189382641820439501817508175581247100747750863773515099198392797682825521731270555225951891072264575572800201518255678897549881441863807497251527401619363915898151869070038800184719173452482361701373029816265988730498112981337239823688557319718958585389554679437318642244474992416307965901704309412676662146472977722714128868564895225201945519972100704624143377551065674938988985775473269530426520857792542998222069217265462810523751361874840033452982732514338236741793115394137640332984357928498873766349870011033873412922766080186835091124855017702743858152457802976136633378105732940195812770056792615891223607618458143584775425438898816894825506196580165096448700931460582148406210009843242816215477936994344474758266216774449189807422005685311675365388199107274183087253915226821702628069219458725795125687085297032323646162937060981796740314303749715179607767508073966670470557133627445629299639118948595636516514526677640525462572181995921647471497855812158192381054584469835386369918483116331815231880721294703573294913098302804028675064885027307940367022198690853960128428354044235418238289278054379062132944654278561165953360372697379240440716387990991531533193908572107025761205606045225407586436938198872632691038661546991538150810453570592347180070830812587666958335218447415757940557328166547920600246061674240872799272701998875065833014424059135747780993682109072737984749651296583746234394332433887529692976227054143524208419082177115618472919670584551570105859493423635776247655981513828741861694165487739130420924582049832154624272537765569121574062941454197270554310511938040759921923319109893558543538799274393958747681327775033679646580183702581195582722789719614080482986992558637409199016138851828578319616172632627077395536720892597528175317684292466655852190992438471667251117198863720348935089611238935272633455047825973363599354341230724256607762620355640245319918930393868585118325673025127292071578887086243842425584520185655061695081345999056506733347266219728138826159437454407140249430501632798427561832254986472204143078116103382212502170027327365554582795091677223057587077653062897997652640266391734105406827446309783812754864030993755577846475391764597681690490583396985252329431786594406850828589685721414404466347063250566238261549251305937982093107673774620279605177716508875242255912171783857217687248059975945096429366153886621722445815979672120955173300388267873742391596256817328895046375114635823905756282789408404489859395760225255437260592071264167232015709846580277972467397777175617468460167321019578790387938212632218509683961798801026165145034120583364753333239581849783591425868397590567434635021545758057672022077611382896760416895786106528770945664095510297696147286397368644611154543067103371099162619058340469090712498110415228764675819824646122492626985929574165850847338899944540482694546283832624416900656883088049487974494835641865086954406496458797722365566120486705584345447625192874190736973521448518069572073630041144328396226574828511311665926835792250349365277988613513524365293769251242886204988201787430811674350622310366016698811637470079412859791404954902744860543821076737706194046824405760812870782459263354776895576060009511870270126307454260458681547632426139214148736131236899523442874091400013306906123492265183200362630600361040131590245827656862281461014154470209793494531413053632476071871872212385246855039281268299924268597941348316940020470898668769353518227497079471356019306978200663101217786513679828145038795117143059862714492906943311700629310268848974993197200075883667234229667187210785337712851151258178494906025895672594105542876563750547504518030146323990388706241588231603148561537271668374456217013405419171404995820051363641032958087796078315874422114812000456443358705699012455103970479302314755765091898428133829501158685663932701574450028606523338582743100131148447250677639004342701222858016283331342979089236646457060494610790177576292176876256773182912982527551420364909585708899050017461611913230873631423278042928974816580628913210137724110025122391798422355783457458570990978879730974803376220252824606390256643457155435768989483776470422564559418530348419332718552121064941459747319460678766730999223378319654191647247913122935512519231138704601793275256711865522279883313467925384784757225998579984044964474004354801834244708110796094073670081163872753601372074758904037471616146649600726074838745568282290862623041826000116069850871201655994533312544109874746135658756549760827573236019672235993028507685691048470173299440624833900683369761620313914042545272928058762110170964647456388216664602047085307641642137975955294799068582409194985146403784514815149639706182971655117431455330360427593665953173132578661483862227339010137396943841915673662931124773347663541172672174903536911778292664989103043635436075916432795738462132648815847368485631949028204946676058944497254301743631574350225953242323264837235364295675199857585583285191842666876643516958075912726984551155974873164968054875167812037421871772755397123372525002539288691949596943916427497734016951667384783415330090416695655741991682891045645733565572045202562360568023485345900097746035445241207093263706534882959967393051821831081662926685778876007248717182013864490121427658050505605234216592683623620638016284785439574803473687988698382370442419424756281082086908882480721431457570664471553361069035551909791962504688355850932507542194770755894066138521227263661604926298785968256611968445006035344968103864581740110818392687045006282854689555406398068526650475037081878313349236182189151734998019244943026926784330191053288784929098956160626462999598562753530944786396647341037358410476640834020971639832124876901001032685944970703069006528205180482694731239520234451992130727102032484107590621495183004687127080993028447409469790298804528214313776499051807928165332246431725993616896181648097834743857941423643409371818325339624420269878433715414695817628371067836709194873218231180908931952739819448625790106301345139177693924261410913798961137989015118565652958235769200211093793130729931151523204171528307671639746403104790016769478997183273531251597210057098282283741475187004021076721490746779804630751386090853451651854788061616620598177558190834173583291151899977011377250026365292609778297715818871493502858950015555514368660283864482651789738539688136594936524682687084446756130256267335247048023274264016712194459318322898166155864590642707863193439403993624274213271387264748318476193017034697270339184841464531353453528064394849053093631703866857667234874454452255064222329056623887501093726938513165317016930056335767018805692605944472578023760275187059803059109269744969142684613309599391777990230541185489537205819334047430777804562052952562320186092065134827213575147771929977647233962490332021212938825134800266983544213950037044370390532489540593489293594540130941679530169935476782704205756019500156270512155525012403151288306192371163868778985827642604758411333509284189936642942729135447758420337787762191375680954089990074636843322895076907708685249510034460900938548191447617547198944252942816319732754518836911565481967868974472096170842002005681776830085494917600188665432497671339352193795497325626892016571348088493889627015368611347975416816349758476314733108127726269745008686455711351531371362209259623267998598809602587133884746308992150123375937162007131105734001820563315164943883115107706468741692123210002185604854145585057985893068891202437473135875741276842868670892453131211890358337477398533090610765069244419184849653616430399121462995150434014248189645712707628188493856745852010433293574549625839466534974358001334907959630735756044672536722056458513089828378131549460467741364366161249957305860136055373137805682836663034968981789426007022867228423883939770111389686443893105235696106535645573174214282980331385221355239745438462395973061832931407648717248306599622543948516836514641078824708983816040330477856134610266905897040873461588511152898022550837750627316033220368548381806124519110413417727415916300824430035392450178439740369874054379242808672200880518321674225094405282307000371663212669303727167540721934106548551890189927959119117364808292734791263306925684941624242948954159425845222392860456746466526837432428324591584886444900496124158729182527800863358457926039544733379722609401579428981103011146707600808141260714646161664145635186824968409422666909837176067774183020516042602611647515183395697531406997756572134042205778789466729946391234672718017790106500336336746835436408029930406607431610149324751184683649349667417212397499772479268211714053929686429551306885319541401748739107506851261119038549195664699615617007938434848014157280396066783557925866654626440385912662350877442029973398825765818664491347508753883614400951649480588880014142915904855392576564119159304070603869625371472549036125685673851904594282651209517212740454924894102862287110636967677776079602769779161533421250068252269024319579582495880799875623174003864361902236890231559181064375386766585913739898196279411266984518852957426796381155627882580092038188375214552056571991383262594083990423509504501297530403567708652376472518195085219228966142496971255906593855147673456837768491007539187972916456236360672710775492245572429715235575319642109722939808951882057567056071692399624183625412040018629789813247458820423430926777788081220911438483261039502598194643973233935050660073322233775835968281963750207495422190045350165928339069365000158465153674893058720311351503121981391892884184008078271773908684274794959934941675171227893197960564726679313807268558117465889711366279581702783447456027375305548026013055631647890206235981561257950769345304811305210756901705249630434207524705030478167690609723561274066037986303756976966409064322552068034198049032575693798034784976679565744799839323242536673292029730560074276361931136237188362425979396538256551348944844142051763361425179043398961845099314868493982186733315396838461367972534510223678070876487872678569419665722707695381973675448495527592273744210549911989261203000100794374504727772262399935135666796140531445743561714264549462356306232064366807776878104149908815198904897766817255721780657424817176800548426422950570018704011663817749805006449311179361831594114156243208503794825315580041234736924879635608494520285807754241767504576506489362196442947616595362521007307779308422966313370091207395511190617362617866441817953807022863569436963488441074828344869745057184619808519192544818078760876055197485633953416800212173644370473145354530675164986543379663482189937391325409974935841244324607697119051449839007157041462320867887852724226638925348937310555519699959662774938305494720748280689367111010400055897273386466832924170870463740309430813921512119902860433757593957671746205453214721422932350034271543707558372654514101227507156764446911888257157160574107810763281781833385947946276629579644467766778493070635831173816298244939080641601461723964959369521372232901039533745844809138995035418745159905698066992356141020105954669134015848029422165525218959546209820663607178692416169804061324857788284599327888236011417928255413782687681776248696805976863032212810236054394383211513699494861918924305614657037751956658713099740844954458276116630965663145871189132500185387391603123782907306174521736934939762194273336469578975771826844094457147431127015062218917043297365055517701516120452120665742077234470080535106670008518311660979659477711202339520023202716081434118458300884927975955111124113597175864779761377160623008185783603530081694538877283364911845755555576259745462689485518139721023395673129878481763311939222236957538249442826023147323699944532732486003113752594166434433139346098411748133311102428217766443751647216739001927136239759810657832052494699638720027207171371165937499653843740513224786268204245256906662552906865768414343921238280326026487907733979181515998083703499506702395167848401869324658029221161352586476586643982401087092330213596548928096243267693876113983573770690363393912674813932703434980032346895127934202345360376822424530395732243292463196036703919928471966876745549442971960323349591381054404556333421583108962070316353011418119832474033834696757242547969418370268295560068452093882785133604726068279158217023459463374763309941930902954445606488491589140068091192340564438381680254460160495868885671570198208267846855139408783514290256691900956656652958165210129306894745066827402176274927832205739918639242440761238204828900194796957405418212385147745836428929302053723490878481660108795056505144604462205109716072422742037988028055845108675599893609172893083984593792326806340292203677355348981024401647758295300691718455890923628462320247339631420893784759932285508918942098248042408766922593889018453023114196755981004318273197813813857616308898333886125092959671436376895708755478221096661518980787122779776601819335370349935300531466411324567968538766057341211192574568742715776596577622450675392994282296888919957911865410755345665187795172950231022041973212468401677387826414351443911130488086704994464208565179624222315333430096866234346061382279799932201925382565734887908559398730314693962531416517711157537739365876263375652557611687862267430960445670248398763644316680606324172669721798910206755031039575204570445391369547566597840134449235095443395807086886770214543273292424542620098526756833583031018606677977430388040493098792615933484060896318796667357730377560312975869543423893592658377037284166853031413406502922276049879158788629496995567979857726131416093032994724928745338563841016255463020420345836085626833038535484916056452402850580296325187712218542510617706588014498492403279341239755038500699450670923297806301712232511909940364417405201375896768843007184974551687720830523524698134551342105447184915335106873979210242162163279277147181333116623956842725444208223503583988174479636606431175469802558886159818440079905596792344393844868368250170736104615796338736890756832553974394819009280041941487057559642676676089834732129389522243745487312494125219883946144760342958931900537593908085060455944479725023485134800022456009196861685684185273445836602337318592605895131553392477962524820276001108884087661108678052064807287054203506662595351700625588392566977008676020136522720464814873446169398915613891936996953217350304736894184257759197896449385128345404574702327504669006172785920551012149671160442936133623217447545376586044185001409609328098553942423723615556324765700351493617542992386646917165741236906717944572306561054598735567979499015713139306051050986781131896063501876382729785138502519143360542482389253109827072934365883471716837607187725389594319200472458885620929979921712397252028962397471033593427676787287008668171397855300888151406851746747012528193633544461406190725232737650588715663969049593380786487910813746641257298188340591194507927099138593269503006360077687853939223255011654996482635695533600860139306202586110738077353881385518263643369860483838098623482966671217389937625301455579511682580359000247794492204786343804033101766293320324288655360974534708170847828336523843687744658506896935032910205656500874583538324060256018898448625515430184545197745603320513595800678821016173720367593612689622991433246890959091692419085431221055798665242413302174507409800231681472035121204647129268967423386797120034168941471142231165913534648588947568063069092769988904740350182070230721580950143052685546274367613053697415248894413000547219680191466712856921307857378931750468213787497448927259311637034510451995987917360039586074394686748390184563109105532535129215039126754015322049733779320308715175702683085097069210489253238103060949275989049124634851778956656665808511549361360112852292377472173007722456765178298229194052956261889243951206850016511340718434488601176322550091131035856499447617666099327431322689889224753884086241607294600671272924432965030448775495688985201496742657856473164127509992089746021957542191268738392018848164812283652372236324428864346348887389562036912991634372679447041882727434590095691535374208717751830459145204841372352383889867293771968889070527199861332260098671787559945886163553618207886104214273926776289332175991959952289162798612306212052126039090883431616912487108429737104708719876793276698617269332323658817948961426192772970270374142781558915156212474919559933853108677011381744901035703662802405022266828200935248331036912595310675720406902299680722540717432109799967189125860762406641908507082245589714694967544661016442162324332091587080418954377618122923435904232066128009468844769811578556969805945057847540004314283220914280769373217093841446639402125873856657561422477366042429570322887279774698893330301851409965056015397653092341008045971605598446742741457621856951390677841815895975223637353864469306630516164340035907881639093438597069335464688048773579947616138879874594887333445746325710080416848145582103917660126436473974795962711579500073537600750666050241147674360509992201654263736751674775753508603835800038459258582707905831605802294156036920871269757391291130843422508325676393937765639910489489758806332712560487518919268559145856489989109862966043034537260699599305510539500004353449619737379734679652185423057539733360128119020461051477663006808484050730392966003188900335758393833539446926160346862697031080081481855959661169515074072452476419265699108222337772731410580489423704405901796176733219921753285370894346190341215994484930945299122480876564595432081628921178287576208755492218234569606668064290887253094063140821445990731038648170854111729521635841223273181072941380685497018588904420040476518013816492649743056710255396048068424090388890187537605598645776096811245904237705252365562280057266195088971124669156047045896832530776137212311839946581763260452780882175997282434270156135046209951059315060870656068833634538094023101588399153933545281357360095427528119714781784067969874688547361700027172382509948096078358272604664074106612672376598445145043596643415754419610562372193708311726344442730587007055171694362092550268518567599819533719219992096689083345383664955746075919641205165525513109259276839862987469169502777133298758859385299847298809923279442185027490778910961563730931649311443427239682071362113381090976147042562992096657795263734434731723478449423048829307996209741031806721943748879408006144074671622764410219112152802865496275087130240678738899032958637267702705088008983102015336595890271483618164883127253053261801533259791201972537197796350545199493887801788184663691923308738011751541776377606352275900975095123994023707324396791274323147675274648531983018721855128220822990854056326395151282517135456825867439120071928860928765241386315646059229867600724539483300768206064095439517375142695041086700295644504182053296871767005786501502311171763616731711844732555874736956063370249568185213077225231846748921044849672428283754002425151747670857761231423365550386574358488390718454759057408810381113902090404958589752887307589861370806415123592519441324048509541278915026005455691872466748253247373638163100844768176551107996123085012472526853558939290163045249460761335515706557482695524275397036885928144602799861980403912765176530081372754599882364992250139204932677084585168374020287122149429782177018755509233476808364454016870137844052679233678584218334630278954500045043859772333612535382755176892054473450715751671657173559410406985084471223510827091704799716612277979154534656956314159508957356821975127281512947048161674080733839734975552089853228597220339371406694214823664859050019375121375155831992919489207603494537702495453760846615499836765485702886525245775012964426129412169166905974503569194118153724463787225837405145038413632071635008936616403454690967329930064271061233964908138966417414381061795096779641631273899152622069100335951182430536201669364126357489096933937579403634165898710149665375929652831200328198219527047920210583391497394945021773580492042027961936326725698032496985366748734978821402456963993684732837158345509626496455887956916886896323526055868269604707140218533250633407565769067241091552316715776151750440094622751303148218542867654535414951163774153534610243470583159578331304370297098330500753614916919811998252574633719777808378760164360211965801553551468525782566320374387695011752065557527237769500050995342979980016716532452406215386777935007029183382964273323669458734783025552688375678088286524854172025209622090009815181978682727307244443954230579927367514923316414132599265771968192451030053496097246058830413532161493213405045073553142394286473826395871336207501987851237029015498447750555298621067661984471457638765369248959237505097774456827058263232642123702078234608073652598690195505269562755547371478440840340594030143321915847022206751741370758706976620225374902438493593838773131251736901387961840833009264623440084144032929967219587648577752063666926532390600901242107456376679668322826899715108776129110915428775917528973416748429064693305877299792133007968079251748756319629461867550131678310769845091543432255537150791131875007533750169088001378282341060546771539236789027407789324092078189969989427546598067612879389926898149750133709470300677740762031717126243059508744780308224007355398868914448807249225235110614674350447874959688996532733502769989341215974090488120336542558139855207680315060340249712252022765207834900241764524596596196659559380986274982602480716388742826497481338633955697131996691089712911747755687501388256764681201738162777957303001958249407127696132595002687872633819177920983565031439071078972123605282306702308365713747475246084241214320608570813858863376739557690066540632780570623289938861423485443064941603435070271254940811160019971673374607301730126422968507082824557004828443006050824837772127863244566244350101878357888959406389682320806178900740032653809710568961464929145866191803793269067926898676269457840425466651100118384333697694613034482212774289808049856030236391639532765842185636621100203685812892381264778636289033925191945209794030878966607275410277020501535539483527876393455546176268636104668767736657661607797693238106350612095029634647750697490993946820290247215204268680686666621119159224629443079567780904025762974308441327207596385009793322952639072348689521516244493038751904680068887924014092942255804652707892699251901446355064741975567684503498832075608505287165762530935478207090067633650386567963666488542156123633041130814855859405055629734761237265169391010973119310968375084262123682720379259175316339629088939068947087119678286077145443592674195331344634591057773747953267133556625355047930521768382903738012775798619763168087943373707332148596302200918028153698727388025226750094669430230557568423231552791284404996555009495890799160658535740775683322428231967936057945093326800771029745902794553577762477361617969779794151120357129651213033511367663446264794929758487868597954317279607745356192470115202530148665726202610041716131566472567510198964537775546478294584554711003920077967162948504845354762154945247389581593542354536028687239770053407327269036368144203564071639899014896196951166812474239064970546343172257773393622339504874429040654383936419306911725866255141842173405166417428609787408610239558045348578929747172651388170834658722454755674405677773746992899547928740026300208638861186182050492480512969337983003599906964025642566703194047662172969829613788781783774875653068021534778917427705768306220305065059409168657333927657170679152481781239096817262854910546864409222989746067205060300090937694383005133823819586174816065747710910799326304365860471885718631627815313115698364516729855203152334899489099004902580369761981433284414047481279427535609988899991598643149437917477344111973095502009149891656487482399286134509802753448473140236169358451806484186662157392856427896333170144883380409166985137800865783890013900699312662739741510335838326467908478709254502158578025174499745812656469272181023868829583032140569038156403163007562119070326440849871182182198751759312231973488851620836865394733403328594688062476111136062434236374267573609432684814121796325547999212668850949095260419364317738996660514242078489196012640557056158899068033568146208865100387562626224548582790701990033857317472634152390686416247033626836729851059019618167342929843757809600042003179236886184304936647159173678693395655851392356747502566310845006822752531109322846837762421795599214506701241590591366590591188952010236013484659434046580882681842731957556988189834969864945872629664178911075160278587713779598468501589537174422307420527755760071022218659142876384759155023161691085729476390315054698274768557708926551531444149694836955101584356192844381273096592283100846387845214928048611797962096087690775318519124297443172353019357098918358069851973698628894284118817276483737838879302118897006684588577964731491375776725135253699281015061327842055623875191610920484528082883069082914597220929265999570004432412754745545811512013686217897568955419089845273107721052522911049046098104196677952699892090077670790308014528474022660345568615980140164525683865521319034160795759918619453831718191919208878518704228484482378616524837846937314396978352245148403404279284546446278240623981907462710632574920099867640860663564780302937916151762851375800746032344834328467670181842971380089583776173418124389800703798935653202635514710722755535447635550772609333290908145741864604113626025466795258143713545937893844243270049688524198268688436685848319405272229171062737551740919724542402082304907703623188212961322612027489664665469833746030565248314677517982142756520215426933778081982738169141500005266704316664812398934877791543805384171972973119940092487939910983041399456190176668940774324507734582785471672245825455261598670234693200810331259444629060309305379016031337634071149194407883045607199407608553448317107526887111361910866768219928767478896621343925997101841226929524234277589097799742990419897854475440311462289304180347094057737581946143430685746428753905030351345303219933876969247242554003672250142857418854660145311372014891353250084269711410768808755213273237976630527551708557092293642693066039704801742486581871309233074436802654374856433183304412679108964544387846361578879740848296556733210614150091820679234854867780411457242658742371482531191417107031637113826486840588105977144232274217233166345705407960329946981341479166545783159500155896593253246159262397354038030047391088745807522834324091070816276899552144743162479143039394587254979634795664908697752099884865510831900022627794273648323897182255129987317320937148029071345783475463325044221150688474791645117321781973470079876292386715766420605467391153133209607406175139566215233576754577221785457547572914577703450156749160943033922477295134887359448404400048113937903126148423931693005555566079686992536998984914572571025457241276491596980826106752142857857721886318155236284209777508435311052683601152672826502178609034416551006839105574511971320968632178250109036207654291834929265427999337686058095607828565491467808337677878683616920549796640222644284911245897360795761112802484412207545569206084582813437272438657357444368059916690302453188192466354253816775972136294392968110259991111217965450361967911363125096802649221816354843616651273056580884786845778486911220499923377180667680719384898853092629459157187860896230532473878292154814696487438620739634275591831300941980646578722715664168509518873105663768854372608386327201142349471827901629438254923523339227058610223393188679503094098277845541512444276850169845022705434842341749811559967479033484174286981349718657848205015828041023902864625612859751066320168202518749341575618915986377027041654002655484783016777604015915824558675357608905923234055651232752081961707341746171068321622436078881562729935048818080932220640061215337620219283622074712300467671770852015958565538130732948395697693215943324461368045620569344126795569406615231690314856601513256891216207131085198556997330212755006282243119334279157962392911108628892622825308738961030538478228120787123130098940569875305968330908485793744899115871354407913337380448471009233538413170431932099663145241605374399514844414624877402302950665565668899546115381431487899067749096308428340327407686490948743715511578199848042883321118619321448586007158434924922562254453015073108151923429401373654560021014321986636369037396848577684523524765011055332841359826898663886704517275145830393232098316523136366369905265084506108794175300037587391392721743059599872057649916027869522464310299655667840409699434133652752115672839196538009775223485860739211127307146032656922674159056071293165588433183256191881106445313363525523090670234823712774082695936240023088239051646833829572089906912823363023476393630587906350009613836180508590414853535985501290425016217860773480654056470790511109579824269670668266800259992384811398265347471460696049765915753333426083210406880007758420953169616691661480475355749411346712825742808970748210844820338294715185962020654411483822750056955502081316517211497906032551616254093146838977049786352505636125688073498238143174248831285448348207123532086921242632300945325310331559568824279783214132492379377153955881592223675327652407880591588902093567070182523584585483151492284707606534318807778756698662698517321834005146573830777015835258957989418634095593094321777103372121749834517622801528938340587590820572314054375745796640132400821233159090579629714470666470465521867303095136369358926166926576093046162707027045725887763366194405381748486761511296103296058777262025724802003656345238914422897591260492551117757715315852865460611013169383516336112927188446340693070248359631281064851393381460295386939841893471330833428864650714926667229526035087249671015921553093552857377656242685105941163958526824522858479792244798474646042980035047445186253821464522580335961250776412995578337054214727056778543738944072858723019299664597484225027240568524784414929429506582700338322205560695466650575494456502456912819539225097331189579193896256418257482373155063298921584002349975190086682006558818043383986986184279145594736463115765417226032150556567704279101872742940704516395799186353539002893706571444695669782991604912030312327115986035999694830869586127089051276816085108427853330257073280212662100091958213722646174059483467652997376252466193406909928825738726681170076914165430905500892927462358250451859028775537447360599131254877026607644438949648781229154005344089432052115984522503016553211907100799425945243572203550568368537329801074135225871563822991151734961602575192768699437342391096604728101760238121080510327150913304641436817839707721014406843263884548811892475057665265844452741447527204937331691814708207406131005466202959053181250097931905228194135962907628729155079626928148052807571133461243454169746241466275845197244061583733556054921699090644337663574114147249026273387676873719849236520140243528572264204339645233600027928880843607854090608315945225272899039462175904531204895309153104416703400503719678642664894446834951785533500165565665347691458027030115763416072546736378486074013559056550976367215749199802473090136325207838427839636505942874918396934262690111557206741607922891856608270266805166179577363471976168735401509028049365541781869331045779091294284152044558036669219872557902893123716570935604605875009912721343914664132507050945689625482261410091781396400650347540605046595231212362609734692509583605915379485765960623847770345840115663919865850953491530572474695182378597318463156930207293846476543883945085635891896827328804515910312859859629162354798346685601768589905576501945577126332980474163603769443960616368024819930594446286941921016477390993138426622236028238566507712313988505961833746320005424971339415589214607148237551459713060879126745730216942171928035813661039745643220860641468777381515120701129250673330910897598207185181984687922707861961679217832180282932454180801278939128953066418919748571842054993418552989844389458851960835107823173577522664415526583641261033331897988468961639781246469556254348451367278740903757066004725167309755422076868903702662267461418319663921306839925018105403921886559573580800438172196467998638061450060754992398735835104789615204675936954696808885845987006640462269475594257425127298043459161552353265723259666957598365947500570765994575024899446039140877500008419435764207226808582703693496050176801202432582441440779467002508177757436192489586877996216485424014493432638127322302207402919385495913757088259459564803949705029829797725706873405723654395327432047947691163092538742724018847462026174228230017137836860586468718118712496333397671544869710069493055802491090069652250422533303436124665891771486687768281637264227803179356287189326332059793507576430181321786340768894925137644764755217607144272202944921183161192673215500274254481942096649260433053183861699958898510226418941745747968392021110964854487615443105654144994836752634291374279016534357980373046403249045808286689089482841541919625694559016324940314389124667392180197272150939470645649187774152144191284926773754211630815644410997544174277092033108598813048847572672153352986073549993251915786544584110770924883478018499359992088402800623353812029490629748079516940034722810880263627473137931828054471143409109900978926452797901191915308144773264339684482027814748691667921973106366672051343746760666311465073749296267781429657299427369442799536218774901200009097257078033537659830767413243022648010582254814040326537185312516818426287069822650846758759064045675616014796506083893902272806331193840921613544309604214554851403929069662713586596994409276406314514088512793531478626940005052701948846434616305819893712515471368039674727895893731913530420512992335192543415961439722264070412057143098371222193475875016871425224832898866245212818444151553756261601370197126895000398088144231648791842691295888584811011671732433522199647059669127686532296659645307067961374272766304758361790821248863532674877733053948378104213147798895212034090105797481792616833454373392538470785151484273572021012025433687959737848886150362557728515223514479412095700294483693644434870845436745437157030001474253111789391443077227789857767751117525057714367947713908770038073337202789045194589821796910057807630011759095854547016851754589890391239122138964093497721137159624837972388462764572154092020583004245186604745734769529978244183692862506147940624674073313170399659865507315416186980371738262152072918051159513718486184469089359229651647533386403066469278831208789024826577166274748279542224065454640347242993170598401501904075309396914187096806956417062100036582889519457057873477645947218418416303572021365945469325575097513103805562225781619185992304553730323115504808689543176378783301256368435547046841291557699301543153582365872060571443138818908721304584799390897363241298622670005128509513052469338141870734495673207978170168450363491782602518212510557608908357822059904171622196708404170305614715475104539200860199887922615207851338941454333649439543552576469527290716038984806417342567563711148847747321297566267527062354953229131099891780114976058466108648694482273997446719383578547455692668428834305164651008577764266971475689033226104781492307653349671892337057479703372864401351829869734728587452778544298461930050372797336394600873081676161100734415645825545864571945772604236325721151950653546181319033743544871397341235820055168601371402100913996368021977338416375645307314188665393293903611827456708991437884368663673948161271048180328242081661676032626323124260245848273056866383306915704545044991712675403036663101186312006936285801852211675232888695748235609879932720526238043748218825483435871878459444067027361265666051954498090459909659296180283672385185390664401161150967468222300001168674597733522491525838406073222116428179440036617989457958737573781377604944701150086410951541689910696063343606414030359510213559862436806238672240805814691909550417754738881115496669112332887284988138668021547667545722532076087049362771327117412200769471859025021177489999208183942640783959605886668709562284679781991685739078755213618351220374040122930274620122070295668503313186813824641636035324920868486859335503052790682097925836174638192550101001494185517856822541534906813704233200144268232451729685005807078300458227051514481305632148952914875895640243988641660677246514013165418940266137737855111629202623602030571096365003551480010169109202206122793461224539224501398701814910350862684803571468852116891142051497222991860048531210703847215733487691144270067595577748962719732790231984361596457814179301640728224285408324670289191849527263481444121658060770569903470989181227225600520352658251614405291622324031005224140682154326597602143082621041211562849228005871029130823941347259167513680976929445868645300548275608286261083050169125299770869118427976958144842135018846168851413719638630499148743331634648701253348464100688115610095923777634465925869612252591400662275486459702157982094289805893712248447931858921047103491008581163627364417676746330095626083885970474062982742766731307210143682030212554751162251305652789915415567013245381207667058115923277127227533236097765854833946677267094371686086029733476559125685697347905690720559781077156311399255419811564152095366842622498267075539378596502986925732930738756992211049418580172336663996742308169612349410261419182579353081122797810396992404559487548127787512321353477111222722770921288183414570795106875835860336842214895203718295537234716375505907340395079733208952023944619298641686573422042992592788122966416027076706686111348169610281446228305465308064579329760477639526083293922059759034906385260940801700003034165308543763237673565075227642340871169488775930477301568950976118060868708157644934270674127073810955224750905168369656272240231679395111265883627263638714112011763916435585351262810783499069090967598953103945374643667828863835646819310809701089311105147357706944166482125562418796903020247606788251931958476646147703299962441052660355999196287885070222320442483279870848115952100810378074910219389551692486296611418453605196574290327925014271312518175109309219811319230590523098314088122560438785685607651241211877537819605029448923612698403344193945555712850486252900832399097329092818616241534563136848724738479813093870308743164594194693006175442102173765599642678552513399505199684853519565478132974021656646558551881974729555306369686762605297850582445630386776687798940203130885600699558358482903994686029628130505373017141180950101714474797668162921420158281399302967474075820911858104162675692668498180688368093062171034777213362236692888299926880614737133474711579285380255802889578010117787889305679280601995429331849001481155406098549188482553923011136955609682881207047584617775330618520210760996641284084008549747060041526372494438642996437172294738991156163844056149379858134937576874527940994534961518845519385831258939370964216564190094596665218724935772757947077430017289267544238802916816766392854500271792090723455122759595907465941359923604331138001786849271154377478032864807644154602181724417907061166864098868872186594553511856579947639899221802520319077900652984691460861639245662388308847624450913574921534153191843262077221792856379335952640525969298627400035759725077244188382274754045902348545348171174448278401472451509534903379572320062640786771595625239839203907938002461686256283701302522738750638216908046242431137384898921768325107251637691296069369008904499182801007707517904904871773133894099573134953097156400687076119994514077255870662854753656669029740244425860478292931400619992288092432564495813775601909470217346329110627494204324485783706694183424563814277216411313994252500145020278480392655378148051434256333693513444140256624248623489470516886344432117913091600978804920814948135723830598228157683157280393000994898354883864283595003509318378309085181227935965150509342095075192235616794929563619050986350617085187735822168553680070989451437339577053862563871349706098159569267400850195373180662443086756963049875551148435585812299757121282958257244099869371353870734527741370779251157903927638490618005617414046328855226384462767281138085481048987309267842703645458130689273621891912822613672621727677623823473328122986247724718915638041529073579254275158987797223546682115146857146475093781120308498524753657335718509027391399365276391537883841677075633883481673488238484846591567570948734523893464361624873503960699344699130142400010039643118387093124261570081852830113993720494792841174300400361936196521255769487194209097750747924091020927521576701279242924092948200371380038711590463594376043131266180976885480780583377616766665116148231526406336573680656155382677492797922649378276386687916648988071600852713657867706179246439088695613879463292651468378738276995461524352050693816465579047814623206844528520398977144629821487902670517540202643151439195550272922659498758648856645563112703269369329398903726241272161597352701772958801973239655070851462902291121516994580357133390827914240770801238917579076180509693812495972946713608004071143390885602858081921667410799791300956874540434084717726655574949235486892297000414547917382152721474089897844994662400713219324926805410754734691569842753294139721283232800904632908544756251448839477054460787571406005484540356635771681468864084293658001754426909170478347022831145789967605564763068803347198647992362965088851922281040964081325228611631289537344979559784738677720377115775988192530832193007181950393844089920177506589200122384582323357058081591292118198011288405896407984869771948288821744646942021889339985953240082622120189989059663512051589563636054210327836614349913860452001736607299109730606815024360432789790233552094519766842626327649247047119307066419266349692229572889766098746530307514721525574413287616792219730571226336957346602950240711272872711062493531241515120830018895279942424770791048760962866728007805123294780865278771034450898462183761225047398405606209015507194795501343282085327113733993736963006158668751180523087301951561154850575027412990050094011796829278611366072211294106054318313415646020689171431925423463319742367201557136379796963034783409845339929064386638204985374723774024168372367477440786228545796344630125051685939334059171617416398919636201374353516594528068243390076765284717306697287216435634560859674580772099295632946596984377473840796421187035359048305557586474764581252022772059332334101611965490389218644119041757143720443808753547698001845519543139286423092056084750146329209444518809746720617136499089789549596485489806121734950146737504881281946622675716639128023939342613952298371340953926351272515171902600381499635076645801674627441390414825340628362654517438880569074367479349719437924487720017133984351725448256874175759953035817684744386461854561562892531824828738395205751691553055510718734873161983679164038206004009219589868159647174774502267951122705804212770229270645628444758657044169216663956689721215756106295575439161657780606122825631225906208859065353344377590191922151325754353815513666305162553861643980977889212297496720563085690006089046233624444969157660174144357730257321339383095211611828805559318391280787004317578880077091498767249119339269460576843033366845715098728213502310651054651529392032260343619423225916669769214734620598229352047049470431951346428339097779696952964474660969219574270832193576024347348444557896721509088506157879043586168805834159505195646526811687450568767501416797279660066740892785643704447757449010286775723875276872192602887441769633761370385228637252227873048170414030189194956328729806813443975197747976592348940903125511412685410176614992810051148972842308527650354685648269279770624314490660505914315126443568317393372851424264246802755470010827863137020681008199264014679754573096460882321185369770209471989319658449824885100325335545049051848574469728938080534230927072574299405658320204018304329664591342105104105418759754620140722566734142197368650249358639224315934956248233150591802560448920904814443388583132072706365587392477769459536176820269965756485924943423093828295275183921147115093563527037189285852448365654912221016871707125273277951170468489294821309764842039863131660350364339414623627592939638169984330194242972047216966708137169710728609896081818519899369761538281176730685875598661349100475746723721947532196795938699991275247072779474180654101554525300294470799557773243373570223763690330558861306190137358558346450059481760549077048907854752191697696417259620596073785881542360237410638943455820660467899181637265311224854050057275970375955176813042374647456177998660724752851953805271520086855460484232914744798636926244478891331468827296964549069759948686249363388826979560692231624004248928921739356735087203389179806688496802078544730935568848124251559122596947984675974368637729780665161991330793433067290529415625988210704486622451547412324887835906585012639871323928299047302772897631044635332888972411426120747423518094026328828378873671264503913617451790978874664490971953047972706902463999874018852566849858916882753819282192792630746864181142437491883257620275485295492931804429545590372820709456900545031433517293359911156859848949007438149096068619600158703118711770572035546897796114547969481527109291400061073703380840379408985250465202236041569504305328635018629231941856371754156986902482123433970948659237222241725383695682884507687782732186167791212244166050952347861658196506239207601147218474601680056505417819646641206991542374479400835179184488092482296364838260370213677612672288332248874444985144693185520531787399803795795925813578931909776221107332912421867962531628475370903964711267059728767281543160020800569231640134963775009146675151781588920356305096308307597671722502685032593646872079356477151135509071785029122704544443956289538943200050108494706969926272503983315862245971317983608025174188674884185511259245631699356718815516090201158384157675986699529899089253091146168659846837933689045418138900306746264182055005507013781547514995465162535639944063939651639462182231764476232254297740009291378794705097304136613303846780187160282498364059307952327241260942252677410102310455514603104341307598814496947803471214878138292984622292214669300470969955997536610084355838796621878403425109179477503214807898407406804234042297392488720372815375992481045080393700483357119377278866171355682212761386025371747847106569919277164899564478724028985713815885805333056318917270665982492495724859750891222520545411814832303469652986079743855834000613613914986243401784271203848174016282223752286579569304776952623001828092954037001247910480978633699057982304843448024469460323430564291413330518067118856723729607730988843262137442729282731250672744777072459959255471484831032527748470928977226515025290213900550484647007011740717072745077164255318988631939933804213266705134473425762613251764205997033727263582728059373101960729763166737845974512113480135115240795658867593098846582670410800198053296630019340235657408923118917439485725032661552959720969262210494511715923234028427527601147580712845629089256614780377359005254633092747264240145901027229326020858807795465734560855062843780458743024281169924490467497114617422452308627413264597669236242403516894684225264597645801654068195941056907009641218194788458449311987026381367686641765345475859026889643488909459432779706410957918710741531691949461612544761085487562667739250184363466727783828897624183565834653105636758184741833049538966397801748126242313443953241684236901034619970583817980420272342211659372007298492115965952147590263082189487515991130321559417012069301326400124396647799562021279964294216623983472283858064125042722742209589863711331739088364965509676325402292026668999090690252933720400088598756179775313557913088692913329470834470270814368316363743699572324885805592523343025559009700791718071361576480604085912819379387969565728128616366608838717183139131163594966462529228245716714390346928417681519770684823429317874529304016194511301682333363662174213205299253389991949181263288098647045269725433041042181124393468831847380372117326793667414772230576280536280029129492737595076513553572940535038155427661074918933794673019851308582996012833598070775632505791738419745637649850459379298088361478484375483059552927471583770925080398914387052180666873333087582161364382889054371460127662340550155875049677611552703192699722934186358226134362251127781426165611747340399249827954959988542014910887289151140553920174312377773594786810512634755377661580163994660042435232298291260598260101826884117175316276705795348556313903597780810349057661269919646429955813507262172278970648629667773717414916970493447102207172580872209211704583401261538869152235610893898979710163210716631348092384945286385226955050657465840757440885584777741176742233198651800645468268469347829215026506812877037182119102722106372032954602025601330822985300710855501461868437069174697229944474252820523987720184714208382485473669727471387939373536657034233873479679556907631200415672160796751646116053827166455736496192009603201326587319466731366047878507803210285138861500740151079819256376782290393826151737942625955352523361521634676182680957715007861391672059516323342655844868707057368219369603094425494558016756535369239112804325893999485110292820301269236397781196652784169898810528031064131794583846784036372747464775619141376769177242100025377530915130335781203310634313284681547002315392739703448380539082931844213578406375636148389319546637506175349176765397721678856744898117413092773023125698838935160336871488201089609762310538117492941039677215250732645958322112957863347613074245346531407741516620113675212368622689639612001764077442263509507059324823863585895090349721160371648870787151112530337591687691375410761049272765637804211184819270487617452985134814883385690325539617219926185441968674661294276032380568384046748002627504222963472994465544780839153170209619648001610606587796634507305850458498286814862729147307043976281595839687538003130508252875554392384676429724004377671927321562127251884156479271429821694399858063821203383104098531691135364445752381486928734069406217859231654770953378629530302033449154459377890826962064158852053001767051227109001977059648922116293963585926377114400694734067015135278886685928764363429443356986380992486447346252264859569596943359813864030497787280427480830735004143922065388724975877350439324189894892370995140514100823225078515068004340382703055189013961852092393102572979471800973416377608892175740802324738525583354433948788907325437939404463854624562909578891499231783059433142624774215342368075333857547928564803535603658433292457435240274385994275898261231953224314284175402437383286403220250685452880002124482739296773071468524687005320467629390537083579944610811200963512144251171218381515237426373780299877365027924175480448891773815599411634763550325825090457881937545952351125208560051363011806434354706753743494027531202456516577560830785396242383969329972844448722017590432699272911401637741160964409454923530055297055455442243689576051327812775509239747653381142701673199323267359986471989808960700815363873357518476323300923235164266276280594844212697229050797341926203797471188265422006543928841542986736582628627084834383165360488564705097868071251796025811474569530005033343090812587999646748840425408573975722781372117732136045815584263678199215076342814019317428304023152649375298295785885543506847814529722410674944287357972573079686138688007767098314651309071889154176552608219395944358091842173377855094315578931414373111050807873961552785727641354774963885511342872826684398747762089851508606813680869801616277172034988036437809168727251220918957112092596952873503588618159982041531579984372806475782813514496969385509794912941790311746411121475780731801776716744608330204207633447566291624599640291482036361448360508110296371934742903781568766224880884971002058230246090274120419925496407102335495129969209033268037531005884310132517390253337771083711910493374826100611363546129832161379277386236684302260510971557002666150741179915949839861666655675993811716425418604574303880151876864858976663290936209635489094767156607978348000904518551564310771461601458814171274569312366465901213190455696804230965609137721435380906322637223959461478422010532820197645276610275074286531469674945669814109268239551822082135011753161292107377893314614466548283874944997136327850466238006768646679963440799488659946164023745144540072798159768403817700675158456707794220982872142243851065967901956210443484812786815380427658063306859815233698624821011999113346334839876448836510969942974971134797822977857912889534620951075242900850883530572695112671296999408490568129593412893202413827560985933605292094587126876501375846057245023548007059522708372274318965630554561730722524841908377406825407772777478355367305930348342902144075880474469447858793770223360870844987585354182712882277506097640558880106024876095102313724299109313862286530191594283899719954303247893000918131669342704910528094385020429893301585137523223993287890686778690372611522836191639409924361340374164015388931258249262228877511768079802397504411234907283453523210695179443296925258032529258622294980815089835303762922728233300840111325860683210938465761944995743144415319748838128263602458806123471953860191517536333022465343810795736313328951122035175662992043087001123131876413970130646277874404939636150852256745637973300988075691433852708716175756823392470264953486563886919069275392588754479813299856039674182746814294575784023006028088316225070196154342464129576120510648881168835490095503139247186919516169467024450910608587880861185875407539703682984055227507110614049415254982104350289590652307408172476735665856632030381706133021546745206671683014843256506865922071647348186837058220809180375442469659570996227919721898804432233362783754350110592429168288557326330911225637541227052718396987363047709966207186996635424211105554613448374981010644707927112523741924714093393727092852462029593730727721799903364930290821019922630742110828323262210415878114256735789205200751168950164101918542012716481813578144244876515348942952876626659731013509133448208142320138275632607774256493960630670236887786623841580696639753941780861322615562610416975802144661673968928890408726131516316579642752781044512081642292813604503413941026129337772373974793878304512880333964319875709666681997228567842066008715891388977090557379838899457458227620240967901366357921661504501897926822012371701833773124535626162980966139483078009922232068191615441409337625481198936727024078468046634346447848684233691999831809890252790550973005317815897091701422923117889640750905941172655125210074823610443542078378211936698333631439007213194563874265265147646171626802960717904503848770728275425589458390270367696344488983762964494854222550184277137794332281624713440912527320317977766839726845362670474697635112993885166896594516898774123047834672397261362892377501424821286386503353944686676860025732519833562820891078084476203245894451536733753668976280242682718348844466626393327308411807253556854087627335910194840424671420689481436264036123009122068340989981358339044949825750501251229449855335040278119905523678346116330021246698118854619498541878106476869246663190547437181198301144541117859813352943477708472362594788002445764290575057034814283486479002876408772529198184198550183665190462960566592677189226200791233759588190352050243758460895094744019325115260537403012950854786412911910966943742400129821992365574519353763570199449968284187310489527769440303076933215309590019900110952177603621975394379761465891325529382400497517116823465824092147579691273214211685119351240817921815384951503597221643096393654407148463820692105471937793665073041482370500690177713894300651192775813818448300029333837850071567301260254201556832155373114094132590176535125455287012648904704003857654710983221364406102029869413260980344948386318580820311978736138220517763191525919243634910498965723201738417790407144898997364506537387703527818696025401495826771421870644095725971528887875620848631079694234404345949443003369731454480755142558708241707680354301307000871384512176439909208663942452091920808605844224935117996536040506656536887961975602233800185463491208705119519851980258719588769023532593026582599310584661802775202841348793404122765982244032096374552180305203015560427813067034116023713167190873606615848838026212095757792510945128642848387753538068967439566776761263675217577697312058604250721259173535824753524610776703878934434011731485613971777364666698798677603999744083543631770105826273415376021953684009264592578146592211888529323496783929062683480715064156088740998259738630613879857566631208527972798063759811563890961051048406481830583174290190743231011948375254307670709501582948634175968803025335936710568693611907469403316590853042596479034557198085421606975326071970751119744529330446490826090641243534757305311651894640032740957683590717363486167537530331331938621357724175859400279328130801471131315229893393383770193820226566602507425851905275739921471582942106649891212761035466213810730682524871877631858138227333822822153558156435187324190872334639211943668316230844592641991945882222682019913363555657658683831104576894274811320490675881001602230471356295919093489251715073885589864556068246018329189231004208146360943933837867701723880531896686593212481475687808077840845175187032214672670188718996865328398187352821704441487090265697389021268951454281674442476167609320636510444951945263395297234177566956128053024598093961752235432038532351292307385174353204461661449912318871189292981197440316586284401036709247532570776771694905574534181626286831973998009778420316772532137310211489991492887703682214960835768203417950701865800011875334111505643752040995160328886028037602251892999161075991703350988773509176393767344164852633819475607759322103520718426758002124491078581654570745425523206405305301093430229216010856835352862822621540484658015872935784088008707409015402908897169408463003137834217596068187307711110240947213010259115029258199536460331914517683081059402409789085220608499790403650929092867209488407570492117319638723421650398244638811411338345135252092054841909424391646128076080697949899352588124637621619769072717622425292337790897494812959305294925454142102345572012815170499480969789075023797249165456359023107795124691697517473318704604172575281740171050089024908551771595225703456308655554244873651560930145239909147463886933077675574235498775483476355345992734422141044348419768291505247312960636380844567377533677896927047663983692852473651104043186352170623060503308905280629841319512785266700487478078819138430625841612749459976994906075414230597426331431005007436727524927906134902969134067820618418881431672581750830106682668069355260004484150161294428988040925128804467033044591548395248539031296509900431581234687139395859612411626904741735662910580324469811916034966711419173996497000675315744354751054454688384078093524423366731613799040003587551031226383822547971673458118827613943268546998432002085402264363308011342948302751835154965473544530840644184212357903575480784727672302502218787757368199349360298935797095940952944191982676133189402560195796232816978910116591776270560948496816934984021423429726883151013545354436642935779445877417241309308194245783451255840347425063083865264269997167905090380369452337566516063200005516077952549859230707953401171032166876145486453898733673476101016004423035407431378302135121785403478551204639238027436250547678395621761476258559856380524586113971516410939917566170363479441101470927109359745930549857814574166390024122474517511057251568866969501179994713523900655267646739885321719452468007473507485830461990250536484023530888971300481834886743727170981707960279881716195271693826989343237477719745125598234674999053869039999572769350120922470682884535078676491344010049272771912510027531016801938435686686451243133743222381140388224153694934089536984353535556731040645878577032221880115943133724870067211741423005508199674411605791699190757225497270246401832982902532804661782872349856013757408675989033935745691487709958752552164657290038303096983963452154976839500359482622424955287835115067759750720046976430477230513821551979244678568589463131849898881043834751769045933641259984425622722402329881349340340340983937801068864280747435574006957576639488353196122585895332254891574325256380041950547730674357318605980545649740574117923526371019128253852592686886323971780886842771313459740358117460144537486799858497038764988933158307479639885032934953916989023886685747320567844304001903098584485679307197091371768680700518423149211413914362908696567057011508395282217012396604205032816026944732324175458057817139626637458961608718453898462003268563821846057112670254781137624015322614497878103281369585073553636438889906264749742866514111469471898229902160806160920969231528778163080314161592406020030374186493114009557734699404916562697104368648366874632521452377867062062035701456809358360552903677109402225450069842302947451118641986547387495647765927863840575550668301289066017992588320739627954052594506106035596477856391621043142013171886577543980044938134370942447661794433601636726194087352725041984130264588063924615238798385063663053982083716928785914102791219103013117794190547489013357513089599808029901628830469213476533256977525574279931439879387082708357423715650559116833420640251407843909139546284367592753711535000263171365660013105903206310778031818767933158645965438762267286993248869382136202048566973823518269668546630555900325858599560092016390567022137855589834370733051817513355763614675585781778924433887539019069260083551709508650626347238798190576327185663887978633157068407310062056883143277190939142393490272490129015628570116455320583628719170799037905662362321100833314652288472427127137004345874530922625461181708392518314398427660266017811234477777439990800067283701666112474035584372717303179146274733718247627063568978656652423544003112832878231902601836194282960063223627156257914342311453650584895126449709497993665068145298794004549020526688988666604638611261856729797643852899860996301117505611999316303463638075125424888137660235107748984494217731377518246400194031182768580901996290567360690771164955725143385454762188704454544348423378864768093887851364213394846165263944564544541544103828485191129065812268301176969015736874128876119105402534961599866259629003798457891920583219269516704040864630359017098324358368586619783075610806797840348485753289636221293088270481077640122393246120845749582390408314280287175004211800974755055673955768646539695197444549791833231172543653637363001741570014692599923837434314767242319342676709786470652911309481741362485493055617228049222868125882344202037226083660839019747393290787735312416160304013777472696913925960477458923722800573142177126254087408433005460127136487308389610041169142849901504607580578619874219314741036077717440519459786450795653700520835686608786363838119309169316446387869868958508599706999002082586627415888998896407885732093458197640162646739371295780118307989944816845621025036888688046853082280172838408630988305800428350569752318743243919092259412723701711297206288653580285704016494965718554532296252998595165449918334622163787819010021683255160389838090585207196308918271345265188141539332142791393922720201189760488882148102533986927674894582138026932224233194048976169750684904803839619195496472000765423558531507536062272344431353557708360552386302140859059542323159388556918731911458762259171471059806271924253538789055276392437574219914595958583817437393636780016801329514891983367986268044267201746088444875893456657579326527144667558196355715434425878917101172801778300597878001320771752567918492900501743663466350056450134681439805579891070038048366588747839264358109218447041851635649386566699479707634682663652579235602982429755035054051752131813179007525630859893265540861698599703236603366974957274101745853369410780256257504183864425943037229286340907982190748867982667618136743232707571082262771063038296382655399165897620518930752843147750297414906531355097437525157528682691789425839953942723887019450418272971570442609920956863729761383802813059766136482421651273880755479674679470250233942947130683022542224591095609330914771318916887664723760019774777697361695119976317145423260329497771954433076134623105729359597647695796859402570437264388679215618218276197376611837145790143064509504084758598690031889045602425405714262042023566909222010749769086977318963219604384596939557438729432656050556126790101819841942159676277486172166636279454722837603351956074849279006402684731093545032437043146637216180058589233029404304519852033180331516519434339524827465203541648974916823938893115661720987169535589799620672797915881910045875209283281936177346881571851601253866566398382833827018626581421564661635667981412205019728892685999829099073317525559067774893457809143436428388474603173036450844341356116483873101224229914312718344684962367932019474026126077596483916324406981274621257141689264982634008048245172849902857495661625656500615300265686076645790567643144931568479226075245140627992651582298808475620122749237326586034800970133569038812744401761654956709950315173164120430501551613159984689164360637639344526901981973415224311102264598616425014983381003709290017557682078646147844869015587891434127994220288249446919786501695000913166294493534859966221807536939124785469714431159172566166967768588947076398960660217930722639039183291263250382182505955045150197071309504482342558489234410346793124411729511468666788204182579042304127092652604122438480443575121463986207552467369315707402480556161241028873983436075676077524588312599080777280036538810194249506339974701406190806505291002145555985655460309159141869620796380031253826739679444193613001609566391426132780458122211659821791988149705197941077439739719244721191726597591088813126844303486558809763964757247425950995924582634236652783276754549033722486906153296703437466751535630351677428007240504374638895103856530840065559654652104447825487339993914119324870618805234579807653229961378472971957462808904405462581489258317072241373156796664151547012500244907520897843144529712865644469670097763292044720471692552559727065099290566431874789152915027249881429690463239337177235126719759520503698536031876748181950755645302658067776398350702790338698109516323006469873831872275169855948965905657497483703689508587141586161676554506266488214335087068653631198255279919504043869075882041346234794212125761046423296876735790754627881635133462634059766138116965468416046877019494535378290689855550771608059920728444455126532917109581305986821187233850772829588745950052440111300025961653067891440633068600818330278341056123680657674890484522042923102250801154710779637359026203854089757159830096170732636312350229549306816807687674555490922366872758699872320742876697609880990977269925024136839551760483509332573921280839766792401091164286458934308103690943236793553544477002857729936717848931239760947066820724547616480126542002618274395525126756152302789915528313183065330894909020794700043750009094701746972165415034912075077754339715948901701965240146305145848816580780295334995451180313820155737818504680125663666444111114890313418511582711858268672758059132504342455139484976846157825814160876694947993274793411082290966202145863593327060879095654270296298001153539964330377022872112873677282734731772801781604386992370932091710296174383940066003145321673479226783913756079519057169262842433915715457553797342942823660892016436972624846703325949606590952521766227396390164154802940028673377207069254492764638547981744679542706746818553537067973330247176151663674299916055393814930982501409830454481269295947738438516382720610425528393919476528737050304388745952102245712828713587700429445989307890951716443538344190240752816820295189417957224199204354772665143649782875549223642491346211299868481473510781945271780744150538342781784362926585775044047224117557332578590376089932884985595926553917733668959572240556198941258084142740616097759841089521290548355686686567753579960097259842076383650346351419245409919032406280412059108851509411880885691076376854586530542845287748223010753265585859679862692294981284818166148780216119845338017902008287163541230536392638597878625716084728852277305646046141331054039995061494188064027282724086649600301875171439386280352220666009071056548975886778181200260950500154875988908060640626009148819861124835987351664322526612096184849165202792412880517104139576247764438687322939190145388197229636309917357989336545758811753459562556660305327002388239834804803361118156748148080470874905634074850367765664657362682737684175271234403883386158038058193973470791917642301054411389791554911889381461633700697934648981726233435033525997893160985850448614160382931084736904413483923671715289067232061227713728244491463221169822824302397416046365030625438167522508462198084089982961110263911161944091884449715048495155006153181046789797498303812722318060612793298131739325226443949765284156198587052030147286425257680382628550288896080152758338858821405059296769161831406052194837066326104280119856714656879182293962624973306916240815310711477291845950337898388971525492010558066297468779376427014456448505116777626705701546383282205437466944096570823549851859610609120917377407816790366870545032770119916665185782393119107001335012735429720608208516312294498558003965627128975118527094397318050157205496803528501421876886413907093257842000105540657408730345718117502017870340188634945090768207758296749766383112163331558115992209768804180968034000566065211191760317129819898269522570356699881843751156223603108810937835168843601569148102288017888456026757951663150705165640159808620373667503464854420223625275353873919011706626152905922226387664617080828866899591642917929302195780002705569112695276767828858523627469855832801125680732708827758793669298331121498301352548800194408301217698225738182300317517426602107938722397894241873917553839296552449454602951590415204850068873589766290926563283717412865910656751841082667882291725018738479369923135971340459368223266697590864121192503547223846959211766489624465197497044987545117962862251580822465979719555876155149223617559874005433051501559645800321443959407626118032352881427990396638723954421939675885638509033737958406455708345220361572044692722528539059247417176996472530444511408504885193801889790449963959649968640827324651829148258678295838855706853152093516825881445451420004119285790538612634465186976255282803773519003921884431651149426150095086289344990333387186110720363893621934104507470636648561795524111014930657299345920327935933319690765062807089972192662883418742704279817728217002191960120966127095998220602330763288154663083386491006069296975790529767546939855540966334990091645297732835081698966812108205579408188555689355288884553171021033570818255214172154245754433295983324771641922594329399361868015389764547883490158939509981896512238521829283558890541277706706459843161436228057430418030202110125367075088052251035396430919753296492675903147034991930902216440577781951321569197130621355584280187521083088189340498156148181278272703710432873822460815484537897205669321178970416848352570779203612067438055086464661147109236147438928664335208305793916333940400601355655584067241360607619229103139008083056731965310303463035857616326049445376949568239881678629358230075214296959724557901256399106288841860506280927706184282368315465136575460633344274419326665295781980378630174527720860509697499165414504154491790904734366014634479862602864361151829822554741309455042153851248980655996123505975116701415828610691377787200090144407267444045072409665569772141418121351571262054955392351979924493059764104933080581355623546988234982868568531675678212424273793642751328281087824546022901827082661644308353026875006217087941649592652789636997814219809073724785738668707487176434146582767276856934803842547743192679745182825081893734666436181018943939373403736957767790061183973325286502825253426284386021390929982844120139845472823831558981160118464468821966097476755825169643662098157932041157198524865790759605866881386223349950666215104588733756971216681653153442924911730618950219926416110231661323896554034141124181033934998649663550965936396948544839028926066940941571907170416641143795087961382645294534893386297075071464150329681370801778838264510465737520466014389818085670621891373915759520880825932534516278020745392282263228737946470321067679861795841980957407569392659038026483501224488764176155633096847347465096773786848836589510884914144244081889749458714103871380077430427671499827786238716600025448566375116333215135595994773343032728883192457278977655261146575020240650202412898828963516934769281586429162301363005211085919058257134117437838791811130502385191517769273122225023901231852591926457215167342805767166551692713498689344940456049719246069887024207065079171822196587648925777657379862764356787778376912249905918070222413611090316092818766796199254422670254250841670807467422652022278464968022345533611545870049557146861467784378063173774270162642568980893759976144710896384873830679276854418778853803005198171169582124119742797512167074606139724481638926217182732995294433761433395979593867044109223617449801104248239047597332072134697121232188982229675168083143820700193485609759256499042373563302440168617337994494503251759611718614980659732856599246925053024651733979757358613472530703672901836967044655482724108983082755617170713567628794438494395157171637327733844829377368016498614549676248474196633257310058601494818506846447858235711292755236038548773113488617860781763546208923638615894768976465049562537107430007936394005542222692248224392424770389424620418843890939782575822764266601310667228668990929451878218054275261742549881682855479418716445080469441743407850122858641178689354904685018003724587255919921049999734982502069195026712771848163905639968694329884499425500947407434551860177068669718386428913505029518394496264704952533103693825003901872132003685046133000159290955816325870614939276022542723601298437449096633998091718486580642238896705261086464778355355568146878559983104925212385963933707781549063884653384841851168761315530331735701341234031378188980443647859474465247185136494429116698308449672805885013006096235738101960783172095012917768054091460491797646905690128101904437216402346794012282348435194153809549234793708884718076238022718631321457976111228652401730448362634800855148270469529337346844962668902718668812207771955225692812638721186494110346256590667466442224501697856322755202076819252043544326667815456961546104873318708047541360771330019349483953482400377318274697892053751873782042137309333913138710152783475902837076091951444855154332444211586970862892611668402302790970359946172702082285469689493128730672380178525733135740320439937368522309297502832888885824778305276439227469754671840392747581411600083431215462686829553202030875516504189921629013164407169240808151825642723127791857524352547260250418862715364959826156385653844831995417135583424523317339313244737425585187046408692250999455948298256405629435727226453227450029976620500354168027862845655169987100176579888783186370873776560442093918144483380266458686080826279169638537659228847928586182718628817326640822200387750489500639821089496632466966309558305311173064539019588527916037457979725705272044346217838098654054917171140852880296181968111065255845258480861075437951357988258549258710457237899953175803254820958512137816108894342645494239927316578009117624513524214544286469985819868516366956600315845169914596497276822005681581119321822609642066436262039181140215290038344145941003162095739559364509522837146946867667797902676190951437899019983100937044723796184916966169884752239652979098111369191575195911305841685925076403821381653894214951074507019484977613409088136670340653354584292138945193431720188057251138059171444041884064377637207707275006590313419326678531656095121573722777691005449746238850774239381906696485670587150469445930390793366985156113932665596458578705314596451892618897648127424542574788611509485016318432270872853823865898777877058872684110040025845457804870869722382743106919690365417547053672440778069353431975869722412129247228698164474856259299472004332047272909075337304201511772807641713402024308363641900049758417509917466003725221974287041473350005970284680551150793880366367853521082252613977386285755364368737140386116391298033224932293989720627181132527575963999281767414497548714847623676707528545564525162306301916224174198257508273959170426575344441945050665621378966873187667368484171420070783322439596697561728818283963411111031122538171831578477086179193761821739856612770957430363171969494942503533504987211905843205583749727197753192187695045091306628377601719199962773517141907973696236833629939077273106335304239861070832164640281658989608702379681989894794000722503221519977694875898758071853991199493894691902713354311696137264532166949190556895120787759282760741397800530332278675801149700031304559679695142287680580126745782375448202070842723380625263134614366282993851691798683515750498366692936082405336141837049627662172027880552097071636497347803107338215462448921237403748035055396590823293711348889611767403936924380567104019865365567745531756179232178538286672076473022591751463834420920929969793661436893281862212388630755235273945410756783351445126858240899383499047294292628006360859876405413145483344061259773112483469546208720587784679121288560115854877597287788615769245973754419727484756713789857135093383460059515027480585888409907278106176911555056120963939167500253076658624377213624250829735330268701288147394922294465212371531238826943246475045347768718140447645313578013284173775465552703888921089082683848823683478117126936476244895480108203289692303634227895991333113310941457823717320343142066801391258025588178387177200927828175084844530907877086266765116825850384686584177298316602833682560697978614014295646442605329733376781573069535390464284326981158739022379844601570428256725348043708194668540182366873301169601128912517086781897531675889990774601290075714953716106968664950229019229681398479764402263923806030939345574104008762757875213298565550904481389656492538645278602072022158678169554133680797634941861995070695259637658563319635562712977637309003323547996816567914415511566116461396611743913758259840222387680803442156560860770720122143612199134756398321439715103107806246378660081268672895904452339853507900007031424510912321750014108478023153620519757388783867515783890801966360207288086729696968208997505261056282728447255108410287347919910361097938941721500894543196022538086502132487452768676274333052822263573635451424375245668428087350706426851489507103351825336553473364743319255430008564201951545204169339653513545633584037552056357788761348828450382821082049696617709839462673667739097463010466050329498058134310999116404521007350017613313601207444181559294741835252015558348016793772245387165836805231148621193579182007299098229601226920303463392062586052421467450377189166250381671359574680339760791583708707497834398493795952435926670901922048738917841597376097367498164062925800344492294919384467672040245056999930995321134627265570164092160668632592691658985601849312943542352211388616823315950937370108057598049274290898634673873906254928289305349611481220544661316442922207542611137265469669991060597540007474273046001061093369483430344134488368879471687313885881368798737191097484232431215528504825789695649977067518313232764088168574929692715315164216157260789260743159513088396603573191245600510852857849990134229391874605753507617889526148411953213904260137395038825037417884995460461771218823738239067229917526976052452767249765703905185641025205158047216326419142720239651294823281531059424796512141838293404432802943163665429674523512859483024168669906478812771002025306450213817421424624789828191982846239234799264088944873894710311627709821454667976754681539157372940296002420597203869721242934968073722070666270585002427075007491355299002045528682839715885388252115932688137496700112186277525330635994788766556482188272859149875015097005950864845575518062488586392471497898231123147383415524954436579896204219800667672580902757792173179920939897632337511369547278965431846822381575317218398692820186944634861088641202102308027652502948951985827297491587326203347398803550094995464484777927740360138183925924039707306874940417469100087701243145157752688749892297719435868950575198714551507822964077321748503486562821772934545509688515895096352855198282100096144712703848323731224919260288179430864905207805003507769256971064070775521891831464312964920824580636449435239869977130665540372098497231510500615458151180021765918997051079204322359657446879969192271374057159360536176496078266918765444077413045063795535518434270163754094644962106028030354252010609370336138729620531908393278819390358900339831164046677302195469384382693439167351419997972430858064573764028596665312741135556894584787781871796029204415902511475212312352175314726402033832453847564683000357862233340384508949426701480281285105596076320665890106231634587203978761262770517980628314454498014519431623239561974398396232521801986332727138367004014150864189771513020464401366005277238666674896464182202819091712909848196161085758833618329034592613957023711761153609571343885942807489776312606253011139325031191392673815306078653965052149000784298942251514767966382162681730276487102788293858214081911612874609782380610301520401376373030473025779826560904329707142155456045448943475870507909740623575304677327387854463255938037087387351558476237958768283313381968348670037948577793559801315103198802659847021016607530035756389605248441249048369508444230884778598516936377341220835174466380076034598057718028313443922573613109092168483348085960606280955941669718639018137984997886980971157646680012334663551553085877377606518367648139643044211335616475381692471372244092465410460524641986007581822692989633996489247683861475980121450913796698934135181697234188840305300780791761848178994441680357216610528095259633668646988889019793844928715603598071198483295174976961519057500747982029498625963582674675605802052674377159527980313706764789219225136257810104552930503475283172188845887105690981649002428135797665844611560055043451426601626916648818741306167833193104086061122324203493835610752148133914051036683424176346752863101351115528725086780843935178363812761571499064982609388580434705627143671160406089667312939323674730084484860157581712960952981042922547119734410772760680167743234737725618791402185656099713952885507591978974337257211445418596159810984561849546078783328351928709649568380305333118076707037684508618590470206971698302951445763285748155191139610057637389068818448800256110318337357123516396414899493944452690553106302453767060907181891557881330458012042216298364743768388625388077270763367707668587289900954544440104383137175878725930701758138830388084909466413053666734886008502342804497694716440709572506261803277763518556073088275038546140390618496914543809778374975171394121985157275199162040869181297246713209198650618201363334389412133001799028516155370421643165961688355316695751174726595551422791123769828628836968938620719142768812390816947286787005546797019263866076119061846195424893527612288179524251131088191987373874702378004264107608436961682175673912426809347426629114175341894486083032788062397936723119783125790940457217918399212518301489686282199993753273772053735308907832999406048859530375382537129235943282870630266963316867199531101370109874015403434798160524801734648471742955575833941476182880841773898856423263437171772853000903354376719244699586390015162612736891402507060757305081045869580925780334012880982676309190061000702987748204456547266151893923420398108010868236649870312344732489306792390441195972640752441778739179933591252157012110730508428891516756463443785817199653013650383814128721691458673284916466544256185246893713678286792385702137605002966145688527933463109367243609078508422575956194078892108813238326499338949898924276028425086323283087095344667712124716240611695115830334046090078848153116283408799593942953524921936346492964551671321646724695169486361152395354411833100660306785083953349926045600226918559280608434732038585093448289638842848961675187177724581131112486528944470968174552076683331876747162692263221353851438847127100799637440797422080115136549061760526264317713958327103902380422677663050510833087737900184495023256165386272684094430365297714564771131785847411343545259069234562114464174352577259642297411476646929879313912168560292746162704025793821985944596028936305304060663561238719638928484372885805255451493217324798717057370221543313169615152914514531345000414903389263890532275608466140847512822994146578010510504697373695144738364471803338727691457556450123261831344921946269398866852237975736598419067387619061714894406694817908331370870840628467094747372627369099072899114276939668853425451937430300862448461804076422051907395960591869043799110971289850765570916711523179463704212569267753001136541079992679834901566146361121922860537782015183545348006338203686203584901285452031313906551606502183439454669307913909209816876599389657333733870914730647956430605814983265972910778067523945333017775903908616092814326399775331953378678367427948198817988432881731062677850809721840522526358476827890796623704703447825507499771439257779166442165675454191145760324287336491694774356313995733026507300108043846897904257791078025368697968221007133345993289532696789335965631000732828842280879043905501938251064075977829352448809882109882698242684072558192638215912965508644755649654137604884887071298199661442226633725499959033118379490991613345605274343359747013337421562910055174726150747593606780303265406977641911984837107084262967433210678371940285013781020138869423770938923848364203062368740155058438126998676857581241214499288013357705842047466123066439657550849933337119796914770667995208120769842949970400558003660935591219058778812880979935611817446874490065071938047405480486879463571739791501263371034297220821138028932167756551915913898997623371036644222437221837245782689887914613197727016172281690645260245672552132237060718863462881254507351268713305040523517572536932751709531811041851733480725199491750736453244678540432656315325246741010539529426742092648709392519105675496696503665808556399753185200663340373320144173451786179736330816210364500417063692779278123575488507425242603498950194172367748068935720754546716393129395215999936633505798855387118200933355035204948497080580174715711629956211131157196746393995019920256610610372109202789411173307475180304105767530356453035265535780800172676884862341925318249569428861292985060631690291254464270664636725367810550943951834988436732839604465443980206013309798473613765509094944873128279516437823315775299890558687698784494126741328839257106588907619716389482012596045602937068400888617658241699898972977627661054958041787612316736044067605806059452893112411019819014929054864148502274473416386967078207636476280584029643684809012698039953382339171965291402705837307228739802030924730784419938309639698434798716777753558759910272234701066689212620940575944030729371626945119808757188179994024231240563045900239944167749190369425245106657826781489012529130018463191040003364662323929200932672463929855482163367685162093269853592356084786074014862781659133116310586543689504848654617597665534976660635045233487438304406764740750059202557277562547398685470860724544780374668328754859458021676594076253740373630011760419212389469160871893330129646611821413587347987248472265614727463243709450282154144806896814955573007899802146838004596686032017287121798894046633281205481885000401068412159735996815554878323951114202152355512195077485917910907641724191132907776433727438916415058057665198870318814899426027665429066381478199786506492013752483520627476995947493106522875278208844992826715431646325089497161675275941344213175137718711542746338423094835161893274519585884211503516404771531721747443232202169650607444699819896885893531299910556572621329118169887206186213666039338889917162257789181784534118540907848192978869131095023409960878529773147968390929468601600521444814364804119433353735635422434965667549186946703736058844028631523686131283724003927383446858989120123304014992690782026295063156484867861420687986163809127360117398710485102072351385054324987142846262011526954554052307645429210663924835587822588171843419439090580453955082946671576435566700608299748713240944343947158947916345250864125894167527956704508102137954944327897728277949455623208967128986557724048143517631275016261731474262870565815030739588724421481896406132627970487142327799670249651795173812844341437749341132302957751006082774437004046933966919657361703826454240821992077273443602116803236084847185465486783171448937896748103745189714509560286578494379809207372257975434646408821418524906651073252690408530487452081012002173031151352560606541687858677265613885853402730867967738919428020177128561440897501324275257404834930023804819553690995668615231532888009247197652790389105380817824812151944881124630778723349349178494755521032397214755903168737827430863735108582644800191960913516275176655181732850877467573339755572005186636376595867520959698845300595451437622953189632796975240223573233678579809097586935879486463161711929896748549202515232017434939110301948183779269751379882176034036788864745376311998644288451078472393186702843199580206239509624725461900167589480835282703652482833382821010932085717256775952267983782870468816264374938890424374695672069775257104044972412845630373952135133039607700414643978877925921284858317972329630713059846100875270642211064978548744899802290113932817844773028293910149345281331117073349472840773607664626636136023568084023862879892259170961456936166191517440974638486987059886656217165308619992899972265398132640700316131973343202045167445309790498488341305963015590321119849722025202055822245224617367879827279211115615860964073285236553709748577460850104876522231734387305024487339970325820699601004071571349680608763512772089055215190125894208884913454449437896006035402964209955536046668743139626064857731873674551879593823855613750656622456468647764011884978611521284701682819445648280299009488795810925383715767852648534381936929102803987311291029815362835723394016772582536182766048743883554391696162761690053189219850009514098856426084220438341395392753187440150385087643805945589172599353083377197409670844602900508226341431403156373391949195284905291212802882153300242711878744986109423445554484730673909931212002886111650733477136870565815973618969848484873356359108268796861442596453663315998331145833798304586337760079573272151978400192742258701930699866333008354304392313339210394484034391590347642298972009867911241482474392946415234879459263802862954513401578100680444800524714915785692259055779869497317582616259178262753360537991172928967502395901283245055223017080374812052599160179518999783578005817589547146219174534363250845553738713808968947201786430700838129393792320960443364992831963008961431779806096805668851766080991622131423029080801850469889220264782625205059086888789825876420082152716263920933087361410154356699253009552159128195470889727859298954299498774490618244231841549644274607814886875346900082153142580986693029116848839127874635609756228364466592234706099042501375608907057430431364356785809464125967520592434152326307248406444550078491136038601984217876896387588930592939325363719205641660865229277769421286215253095713266127304868142156955179022473945193024218753126324684944249788890361633064439173658996716999316039055351203849684947692938080005910174800372349480406905170782921028561830218743106314658614015842529177944539065319750834103186275953174009524695691468015183197215152296225577234176992561649991282299415993700909008349489149446588645221272724552721195406666181562200899940722648015946691294257594495855758505057071543472113345843343925862603854252329692725575847384375246671730052048325774673218973915940711791062390796872536683240737132320067968411043677676551870472306608741930893087912161334634932682095903657199648190967216942011760124301160507574191801805397411645359119541603084012371471441615391100444091956919074857951680022127984458660801028713000850448619770931304399050831342861902839869905928577207914890624227352562254123711471812794759618951475931385811578363297715328247599663001072219815102602666075760635958022068559317790646459636423289989093165871726850833785075954403279890613016850590142735684086080594591901941469309083812513226660731534007098316656336920282067782572040002666279330293432405338584776485717919879400085968999562902151485527884482784291247612514176443927428767629026419876281784045795788392655001400324197863761198488420347903309273286458131388760338003718841516222287686070101782004499922994291967502161072292222954996213360544749414566846023095712778197506774424251454726399131016122121097102495062841806570497052954439737890378680705776687573849680456484274017989828508525134667226230063309486324545043808420510434123812271354764283202916169329798189041777447143465260716120992144427486714668294914155885925606235730626937737334536874638840879406498471612571830731047294343814002810718696822659762225985376029535191913285424312367707498733372427290803489291693093941099705536004253425430607002307981017757105402696495155894986956160760017447605995137807845548778643176316716832659926365660227405464526738301837850853632174789159701712956258155793996708871796252694531289620989034944486121967393103542671957946748287201103872911668425831126539640671322769745181441858791924258337162586678876848052332577236683844965662165313990286618721837432028811841132673266975067058251755981404007590084447112852281897556578907677128877655311969431382801809503975391348828015341650211278584886659508472460081385381575511324845482818484064079800098780325493453977201336153296009394471802283139319704670538734315636739193257242190162377211134138944773866574370634698185914546680026704100845532035732605718792316489738778754431603340906480774140469131407339204817043750631214061974619301246930850168173730821951640839333994006763567978895233850190481772491793160059054429870332581196908544260398101696037765519113635302590222798374854411968478013818468769282799880663626712689483458170240321383653730227109379606859438736358465132308852960488629073289472713873611245806324335143285831960048145068773220117145945464164213883508921936826525572055765463496778368452486831435180876138758092109928045436070989466575999776112078607088158544512438858276748428173731025912407895642760512483158559517157497178299011098918313032295064122965849049982949990913969589340075150478386093707692044539517837088898745271900522827378819278590458501666045564466041449833287121424668714144052647691952582385638590519809521598501539149003723174467242532635473865929042234207387786853869557856481228924047386027490653857900857282100252160652433209421682950232636514469843226053703580547563727977959858499459960542463509370080600925952592275224109722495630338487335150312785845683510256485506233464390409300814043046417477490283693359754393527386783817666572459288768994006869096607064046868696292512800623074579419383726057860146724712271376237930243735466008352857976779945591782411325597942752488958985063674723886841842431023362840113382026910154927069126336235037028605398882361753555572398436818153606293803010136396689623704959124541357740689260261108821655217369973349901803194184099281424285941830697323656275972014441869504092586409242825774496636205635977051519575322046473929809054064858067970044838031877998440162767011883541123963822887300799661903572614560039907000847852769021664016253824544290615436162126535269937516747594598943892873803400058965194964601224706627692902597328641200423510412702080312773227692875107564660910529518111172510642884379685878767079332993564858918277190293240300140773965845820449575479853009967052249946573584880607018451711508269946705864160739391822281085960524984962204745366648068493183157561759430102727091218682850547336767471458000212917096125655018824428900895854543515426362039890784524747013966364298340349457074005218732092034361055827996240360899482802803806656227604018817856605168487651105639893078431659174485105359287297937740121934961787745708406485152668482406648703913216830860104438662977410105367663318064400717547373626505187745412822420350156536871613047698358137779272182010216855593332003267283539444857015816562562480550332493779959086556861620375036123556917664510332250084521890406499182071393553101620262250017876246116255703580532705033347300174922197888634742931712728511671405110121341039480721804638902104236503277299269191105233338124909474136100873691277622150537921546102663441599922061292058853665941894448423035838038494467034542174197976960853078113356208804673533894821439030423000587061929805466618768267071853608183132456909658000572906524246406656115835998690447709321531853062395349570980374102620924284169492720245641257097139636861616742236495445224555178251609380798441628145628090439250211012918451328156028069932767261171099553126734321870324600422912387050505904934482362126190924780408369337804352209986719729735586282176912679928883377120835179661786199300859124588244618939077498059362696248719865983378059218935293438731964568049997413838215005204497743520838227307594253812772300357687316843394804324877944021679020087736918477580079896494340025353000297145539483419468096405289205048685769216215946373924447235967991844091467080130925046606340346214787776637795854704789181539259770546239228216695460886117418899816119561227530678558069555697125434411528282407958528740696721417063275494115410540608427315015083352336989128411276694849114986918423741444626910356172362750361401542045884624235309341707830997280085368075147870013404339528057949093250923655736139622858737344619289208778873372453297914223978842398301600837465412354923841795705875723500309133640306150032006121772934376017381946096762337629128159429579155272033092039392268461416540165204648299520527992425425303795276652152235137207506321424841022113297230752734497329497017084680973590004812339174152356747848875681033138325438124869287156838880793121238966690827838264146164182471309075468503805057523087744527976496549022142909767809759730307185027011442282702810849275826711833165774234834284015988874309181298241016090898813375124871150233957031074103789475105433763283626028931553305599596231917524459212601949283368855022906791118028514432097146604234831973020265282204144328188700581646265967182973135357822442322694318287689051044012637378271859767731319442172604294489896502707201491850583467957991182322679872035558826151339013462966703215077365096400493153168614302614781158720630535246165982707637167327986918455988012336154091709431866498948413580394613101389883635942373817015937052408947444127764248901312980976397869409992904184551504886417705145974107792331519197252198150743216321454377706548532436338999480136847232443874915969321607047825748945764893520886621051873533389762134263854932615773150874988299320216356553673713086962776126822090523645173350018848770778642493250274800371134055243042864238197783443507469996282558099286466233220428448718438251066921706564796511735325468656636801513372082742748966258385094467001640569403255411656319908356650694195980884645000547774527954522427036994384404239215618178678376406408541788550455860160251644854957972606227725154718483293705080039816402953032505703622170707020048969936105107527392632819027596539699714419835281580718756673355905723862683360267185736772040838466925694644294151826269901801224340855970410828880959509775685514814329847708567951663656108918706938082582067737015186255943768324108502716700940378590127987293220313023727034305393864430905960639382977056911673675282923802628583156122817937163043028640288676122902093968150065256399916779572752980374385294874931970382691462708524605262065916230632726521702239216357964860578377012232793158752305010507890207768691074241520101521812724747959361160518021297369041178050923944094455891557318465274896948982083710797155221777710191493371328696940985574810636329788564157005405006004275106477797980395258969560683411376194022419484445651467768371294584905768827181605297189333281392374846313215533628043621922832542882732733344312271096906265286481037486802452769351770270480661781984410664481672645439022325250543601284284650796271141272988249202640558878298035964313433617196544418073918636116424133854955436445321736144329143697053368864332511716794160623648731249203574137269541160038432276145987252631213065229970852542981682644722609214497786854366717283675849111184121096911574263382530407809337501896733083449583265521775982801151943792893225651107948458160315086391245161558783918382983966549994748608639600269074935315966477681419494655927243347982439551930121720257365437415032214674677766371732281967216119173229077036949075785939988609224624757373371229462376312808068197460740879900841608270205993070909077005764312834914467248797455323589682267702532177825003416886352768771621034661022922361130634316196593642002494206672104870359614875969065880334723470974097823447637729628747654335025256985514255866813752646908860023305607661092825245636989603509693423250859023400964384062702910305964925936299738775518538062730840116610451160346253758797364089065416901043042529068688799888202463386589107464360308802542058215179697006141548203900483498662704330760862016998739212285336569912402012558820962720071317765551732529962565027535057365024740426301246234941740670391782264096678852768259482806342994914674522931792345824903278457334127119309977267121834269898932703644310823001076763816835095341346750705642817567586419098187494962435575905709082701367764377467029134343684003531975659150727954149759792779728793516335816303309658847816542130340237528147623219940071449214905632714690592619208293297478541731075773333794087451827226519813289365684634312030549257937029104251500436885382714624456271912991122607736697927197308155201666335670058377435977812417344180329057845899595667936572588574857240851128977388552420337787976823593793809418942575940211687374542609117488314615732047254225183724541618031643613687630724615024747493640623626509401915648511930257487274652967473544132945377316979611720553688862664334264305369199534817616412960269369301188078870582078251119953295780991526887579130544701979716652680752659039869871977383258454560171329669487468284931103518492038219732717059095347426747887794660248720673161564356568414044038883011456188387166762955590137042307649253933464220217520190063374210356482149704790209150727156295593418303760224639218317122577730622225488825352770589373589093795349743112254648072071252243090401349689672528921293963007335026067804083106148940600483396302529323225431037376791406283966709407631295851437331353480948149202431479446049103882538433007163251162986676871752789404474876380082778370152676863208297958529743276739928587060301102452189952253649843585486983344359375331905714061563805548081987436775054344909492367035454996256697215631317567426052874194433884312086602638778752756192870546133190409105354814632346265862974615306285677305398843380736568104231899676605964252730877816615017638059547534745322945269328512083632306570822092664095514129145297698295067190842118607999214926539125283387253086353834790169470904174482627023344897822883066580837914657946916241081551424876067872242993880395962544645889875150593972208695323110737826559446507123650951624244703874146172766877917387719539938561199866247979081611163097330821194775363475126901320279868762116776967545331575659026890499549124437258116489738566955267051276943739903826502740813966950586321139309299371364996531811543410104763220200287017413985691678843799330781663945506948186607160764808656260170573623633483805836411622261249133501413232954889366192921756546987722794156930676940104764265559011069553902239535487313217684736758869074623118638561111928349130274991301189087559641588149884441350523697930477237505786017308057618233853347906952870335950135436643686016432457884920786048046435425501827683015525116204865075330768216865071885167228394740104350315469207778455932946581014813696166773374028579218091734992582477710645033294712814816224362339778801786509551925309877076113375445225558146362067403152164337509336256981661251959141713196745836890624966316830517361785581304257601915290343409080440629194458944123516164919957019005443317575232496517474319604568118680479281377698319558425921561324376828839011527837792359793216529539842943782799651254452944934321822289918880230292282912168739492158055115307946087987143678476367323660743942099259075441525178489214365522647297236942687155397303102239006004779616342360406778393131308321635795641105585177140688900890229106782389831716468737918376345892233228648159432551179517050906792765387808641231862991999078914122744767293361614597082455213225614180725146350340411968772556820365910872918434024739217429459558616236999006964032202564580614922312851554162148490994743148658681942176320437800881542558457220346861933471888156961176668450407832589013215713977737072346985495801642894054982995902557959981850144166025306615115068600597424287543472237289802900037236059816371281126064850824521768160811484006437877823531056577801863916667265363048097255585732199351832049077140953555185494408234949589201293386312806520246793460014031629241941671840632330578655262325508288384842905573797284629828639304102980248934307104175104618997281625832296007049636202719701754360874675366269651889199265561280218840783297193940650834596592995730907525067395738442533152241269601523123390997830729789544355691246304821435172760193881534979390351802487635071915243828350213077561752018964495756369490127409384685971564858225163332304036180658550848182493316075390321356785871643070514171020196436138192778546000518518071379421828350363029754914248104975300353622000982590478975627735888191334202957858462159837941847928151176257095901989894918839183735844458631280703009597632534968059298498803063219781597238319250894017176253099021151240815829229053879902886960400364935217522811815589805914811400189946846241879498885838844817229256545441010811221928983435708851041574719439050940575009802743169404992496379085711169910640839291700017595656285395312385013841876904380644625060711331827827605265603575013461966129482939922892335744190266594814117349188602728114050647952494452432480486858520390628149615238333950657398011423559719021056350671926346394873604260995471536989719388858415242448504049776414606974919398728286754349194392051155178977056053657181980113189577166064089992574529533568690738777470121064013919383698071555326373509062382149907990895295283975517804492792234039246776513210303303664993026069514027036259807108096615847453548286133611846211484696529490577337421557068509179265250475893856365195762465284560714466692049218329191992004099610356667331888330072995265000589871339117882817725220631228101080966287556748577596721777982773389232885215235141243633066568788404259655608526724462932924709386475708247828637800865038154035974155875128509077498239033450491312810747567037331833072369503564503837120716000569519248380324103454769203703951325496994373181794625261920221041497853356947646202845142812937833043678781404220829494478147891841204528136810103522438396468597364002673481933150857682767330232649626061796284954733035555652180092016021494059791560653496272347556264219030345583675450851197524982587188944624025544270305730997171369462575445365621025466480961116725160618905998167576248977991629870969643660877916594955798751362593820371253454784427546669408277724024848875327051872041623924593558010705253140303279175806340637237534523368120977334023243408204765677910715777897789396814360532983770513514265752996758591700679245937907133216676168206931389405068978298099735310782955804156800432506536301044616762498478078981747799141778620555349666033482040072266289712739846976151195825327152083134350306888697325435935145896373812679251677615958633880575298462490088003072600407043750727274254198331722995538879474558456037337826679991818587520256664279614144108980038177460702308495169810113024747760964687638417889375564747668609732937518079394059169900582524529497274183847020798067562923980030487248780678814001201479211862342504884998815503804663913689268473930255803371382281502905991980615203989064833211870496250063171810227519233987362903902785725113436369218123726207383583218116690474616717416533946043511158238003762881649120580630608857127120199934422736928530009310042072413366604294015453857097667210991970534451751000831924934448428930397891669194156815219411224034622959493464173558265720862282222608487307303295552183400620088086819316859816668450473963833049736844670840544372071677026104709328914552916447704878773192174980716887698776418084771399981442562390590332239169051246561075671163958256371612091518231235443987130396702817008228302641000021981439511180650250746103595496519392694324175348165591423890399892700370368269515312912619396077808915569240300094807806353591639357086642791399115388316933210160765717486940834042677822718322901208697864872535247892351160507093516999735301749832746261865526540196713144164585352971782071516704395635493310666283331402047904932459020629130679779847053620448571284336082526516844494290779796925390163490481461970091403463186635086764709570089528752053294716811179692801203391260169922080007308923357777888881060908772833714942955432928213128954423186739367814469261550880999968969158988860123534453855397796433023420216066490160079029587073672525482122407632975768516171743542724812427636568341669785711971380618813646553034875270578677903945045835775771009587392017158765706915500944418606821661369276410446405306843095891872811704731604671895647897844690430787021883637814933942286889132711112807208536989436550661576968266878266759498034984737853318528581655497905726222503124652280803196257737705465650707581893249152168057336495089453222100634095224564002328804378658830473613832243699248468604507259445436171364326476839622113559588909239753951511963331981779978165475334309609930345201443249093431151969479794102446693481517351962156314356286648721758678439165782116500669309255994048017157277949940513448641061512250658178910960649763462339463465504781968721501636518419626524876979478673259381193385523540004077654648753066072046198894620343327632986337752352991394280357241895495632097344912520489491900190015700641823598997874399473756180156984671515780184166897145648874519925222318330020722074899193177884122427978875535540738580188332489599353401326823698176223499320152326619289777994315425089252051564661122842752903384094643603085789017503676702977606558008447456217000515213923100892936421264966734973775929457338432054495433204139676714662939807858236662536347922435717993152771876852846158538837544278654280570467530665661082540234155174674260499500444441501573038973926094459552907600937256616694236271054096362855833074745389811271596145699245552715086643053824428053033680717789821200616195451829666438136325142998634189109904323716511129686497631228174536153419470626561305706412741092034112033724895038357467095894964213510032059435380636961705410218529134394988490826473903907062689159660856385822929834483232547106269256823638462875970253535699469073175028455219323927787443312755554814457796889950320503646566224412810151862854306072913763763769095291896227589803984014055717321594595033698893400028854638477425963821272847445275231524684318948782456957792119261120731069394375559702669828710673803367173938233713022564692371405434771935423089844905714683895227094044411820166991084888658689304053324528865401985311201270896265325389856991550938080537971500446501310381552920292827454017278199713041090060673596601625403884126594216982375345346002343175717753870237896494858837065909075864337643251329945335294247192427415372223074312027161467176743356279893704967055266100783704885746468466447242663077494990575381295009858509643865744124489970376667433139933165672986442281048309812842916933019445071628362796062327939981605522050795472466397548496467149691622587914657953938978464556851504603808471933492468788478247340779090693343106720745790843020603820642180192891090909107857235556479488517196845992821782432578596797010384026958587318544520183626330213767276459824709101543032797517906896628669802295685208857945982143925663075892462385203175537612105176631414185627676586438786110535467904045367981078416267743994441362151736873522818408877426665473946801071462542649330651227730621239978403142395700112605157666476010438182719474418379297838223761201225389719923136209133157375028828013227213306657270660536468129976830885474640562294455039591185531686253110844114818244155082281294392474808777177319745527782586741585578565101133928922290260293921375691753388708930100667476968531696827380823754014195581378265900916522109811836206831534782019626461429774570621385925302400650228470312756782305938688547875093443181481473096902400907510389823002404997456959460336034364524890545939966553641116271227240014309727696862977881792027702693257705872646992324371257993950981133982180445132203123104992020501120701145754997762361051974050201012151169685676849326484379251136723699248731661317959549808517574395758929174126980506668053436120586371069210190338201097865550491252960147266294048613926886881992595439423010549350545305832311890495832154838970861536136561341052575918432706609614235906671688061890237857333115334587598717289420219614227576227152958630119198137922130160899665257941101843934771144368672913997881692016919073075036413900207850951687958094983617139212817011892594604623157818877444852197805828338311342230177966393602399247087220311237547249304455586878603955580921143690563642334722790625693349839686066710220130170594018391801641956823645127998826265599233189284929936922699237127115088511731538989248284702683330915122029938496657681881599959236621337569855818889559061306339691297309944417789024109099574946861104846321900838208932807118159539043254117642092705357990898892279719591044236274588957786820153423898688467713231691934149536883382536178000207079878078766939158851742137179271707728795799006447003667533449028433084556747840664671634838626995871657689356470393855466820061691220551461638875349848527015174598875485800076662550464138451793193532830139963397621659098279153873282908386785023700620345168466235686810834610829286492287399452290718597514747803501836993780200948080494102217836321265720857043762116243487264697467382678254861369385101054606614754163684640557359095072360977933196993031356327856981373404269988136424516985357688980071149238542019175677606645611627985604226142405187970482322419943933127433744381161074921816217815523065142445191390171810875379405027398891908108422420058431044814812611909376986628264445669653889109395094036033325721959393890645932603373358627512954889288712845248276178032829139927902058110357139521306458874670918608026787624940734367703895662648108708744345185331104273424416055932932098645379860637132116728948029167813236718366486125778680578415332522704834356780196256884022978310343190649527939789058023392580317174246139304624621015097686310928202040569790152631189641564174221440490389391544217501005940727750696877715940429828263693663891732986165475564852384898979545454319512107653721772839452680114231133712200260604419370032439998637775704564210009536697867253859534179538704855115773769794967403728271731354594621029497900434867450061661343788179459069258505655093873210123959488657923709864630609752299244605548950528212208455727161908201931469753377674805064313066848838396768822477918387273122475322103662391843816572603589704798934029094436146447253995397156173684406180568344069401934702446041502975464777036092920171520539597330299624777829877900428760583769887856594864187305935018890469322379082349167551636691787468197377527150468485339953696999322146713193545547602663512930445777674036243504401636979525467430819522620813376900536807321729928157095475316555121786495324621346429015643583432341757376891863748864950339627908197943688420846663731906262002222207404645934418808903342136444941986095180067023912771805144011659263840123791033917888934894785161100419575980687398675883574570829172772114268837763710318565102718114756481015542185259007887396349354780760118248730451719516266724636849720033457941672469767333265989032135596966170628866695895008339523724445274680303955751576690724676812953184749842249054018216373979019596095574313257284380954863143225473822203755915564733127775354700512783231940166548996999616107304671941735052431060405971967611122501404428493438422903493138439474142302174862931595409230456475368617654221338927468890961929133449548999091310134686560897113533239373240942636325799229331383363797483929996080906253283404697999817352728026651667871463333766309373463188649228588622894935831500764681429654935152471678910300701419866792408574145851937421178251098049266825834039017283240169320242595276534602665938621135490395079658911509871192834626557263651816648406566128359386214204965381880834094489793675624078228411148056618781890060015564963845509489910008064544462252654302209021955530644590515206923230373532862845751497820344010321366827424447683252155782827484043822807905742757510666872626799993838618481978807695960492157207775407604927857691106907448968195036416325364831292477703948098213245365093723671838401089489110633078904510659224024467965511424108451964989014340736516545075542453717077695007001737040874589235716503625096346708179110988699887463160226886210821044696436233853348481281708676170017921103370310195703075240022284256932299665882679235736963490762407412865854485665144972430485101777996975800804278482730302823947804532477240542920015897185778453680461944472260508972683719946647124164567746556215704123630488017038440796863000095885419809167608712769687310133458636372870603833703961286460604715192668084127537716715602014057255361147229238218128464011381466304454183616045343667154442424960494314740426079064032397109776194837596925311413291108844131478299551035061569546985490575234022160537257423763838890249035705130973994451032368548086696760889384391197021056919198201628209993867623725009592486621522640875525601682869579726201511344770251292889298275748071990871691884728091351262347268019843174620115997322710623914242448854831640676307241068564845446315816315372352625981659977196496560479960837431426260247139987832444186037358924138091835219954108689207510050327187170498131098311575979048137220026013631998297779730393226553104677093680259216173111520227547272159826877368025182289907450414600230551111648715288759935856517989865456096732525136392248882242838531021023681930381842299274173778773718404502586801321604447262139968261557443260636208048138953321320755482390397403619753162565054079066555710064005560407379764603617525613135334399047211889327592236336002385570066044439404333555721703921068714986299633890514382760570907619850038466000595331301096578302101018202538598600987866858824216963698883576807288355121353281990938618759399872871957417675306602279342010805039887196231320903808552877323972370780054516846978252499776172150737291655413163429081634539283298400104811063072900135902026016352869166700043595421463661070160894008560015597174002492491704723691747924328795708880987157935060004951940760133425180144770344611715385885940530658487012764506448355273032231603767149523300842627918192652793881695081680275123362005534799756567620184075753520793116782556504314966333242549755185164126485344480306996600943807163045139957718278159245620906368690132628502913340922339490857526998891395051520199318418048298005671291199618605897279001261649742495341651595677158010731247615187576553160275884557177679655743129768561977130552796815506431144356270615306449784398838496259909843577619955234829700207593895624811721418922913773074729719768625366560536684345373914993091140856905703851983919448446491227168578041556235396559987984078242454513558125812739685145260315544720554748462871567658083574783318745131907120122098918623299933542497422570165135910321925642269168546946972053922501330995537296274895019979606183715316887290008639082905788500380038582388192356341252934611926211884261835532396351977583476217870320441358406803268462338671990991732493300797411897301759122427036546137404840939738149069240399144363876658691518850777585196663696089199996063809540171729229982448308778959564822651418006605555645833601839862788510300467323082743826292763771094626750513047937895608014862857646938517823737521155864684214035440015436417067099668241285680965028392494711212092971978819348752911395455870786303728487158289362057111263763478569891839154242578156883857279561686616434639213147021517483983317201954562167398551611168749373403446955708250282917266320415515140665726313315495268570387264212438799567667777689614451682081641933764469144486627483700836115991829761813737772087903930596197900735441208192338769141943595280190374322341055869771015471382924482325562653428596745980866980645757588972615461828893528048823365252163128286336425436714619348941304514723459306863215767011394341685222201774878161846453293309332102069871793720449440155278884369351742825340145723259473563656686216765975784345417651668104234031205091167965547250456957869071526726053326261219288285877492970394324857872954040661488471284326738067540063766158582114904791005821680048133689710713739470801340213557922214143663230726874077228749083008645774738618729694840739993344454664195948783271177895233596703525291575846163895022216062718593011807119910401279801027759827048638132496698327211737644280235863938427869100491966987827058658537720981261337410139883714905001926416767793393430187209696359735578929740021733856567041328061956497955257482378823704558045011079187523122565547509457552225349243904949190861666870640110252758226430958684880875724425093011937149621080237549930481371554556111728245074877424680148260994245583343504025458490903893245455138364906510197207057219557447112818868091516520435020877771346135112053837611286075025549961019453018036266846694859689655416903016389756428193588697564828284401813483489031501523854686888226161077198668172205877605005979832404027734920331598271046749925123421570048300060991846055935726978985143146161012983946317340271252017230738072826155680300489632982675279240845526451826951254760939818467047005579332972444639933834558841798455495358631326109276600138174945456493435018307953660411135148575081299815882480720169399989439444215048818439643458935899917683498538929612129498992661274201652148637407122940445198890088532675759935892960881158098126365749807208654888688747965079899431924864689307048485140234787852720222134458103622485673003932983691311655646591745912049468345260595303108406571852033251666892374496313165945790519585631778347633069412092344371942308352282027539801211407588299252056187664480614069838053187522367353204569372087654673172071104820551337980356605413635590098796720831308456073967595776270908834814614160873352844206235951472625883560402836421537390836475586868300162900405425332410748894000020892527909856306097214341836934188381948098401011600617809415879039177578570076322999149305492434062336498845097185191695345950825932535033212253205241398856293020581731772524900848729266636919505247674494362333705768143857278429137357955556578165554172622429675352563992750092616803500675759282978422223668327291885328612222672842350234381838113052359305656659939384964537035736720437800193776949486853754948506480390252947026015163371289794265641502339051786332535958376580735841711046356052046620694684098534535058973520937463334686348198463747729034760014246037230113941111050674545530342708421859210340567028250915158850407255481117574118361803882349882432932143236170652461418322694865568986114625538075128624394202596114580851352824063370202029228992500588016835483275740692852140182388669408834859071628828034370762762125506381820659374623299809664708651058721134268615850675659756588229038472788938671715516257742623835380113479814464492570735906920117775443092717349265716549370923845704718201179297612424752359555539125024272058465168729657015595041254420159313971456958611305924159765943364465747927627980209540340899888726808753072194818487227979432164831452801114644753259054959959073618627081327520963838625892901950532389234586161292793802781100359090796255321899996667175858911668666720837726391220980614832489849108678965435952914431234530733766428516182728224571308735670310337598164281788912123598747848504096177361404121105865761739842963356909423044190604300224964154962494889322887651331522302048895500173365578585151616604481523905368297169261320792130172132732865203616316889313230713900106809919515286246618946265720460443275308362424460431459498730014647985679179854192142812606939245410743943830088773668923529540890763837675333728452361337253331084197083182188343536556277170095062471533485082977502729431108344030917755205337279425854030391434582551156852256086671891936433007370477349733001454118033992180670176868339727574851148171399352920292025144008054342562945245316242211206853474095085169282779461006368211288777964658186589933592371063040827491386017156841744725454324405931536960568149131280754353720582721904391835274237193120447703648946063501837827367079060089718613224428139231417216998935526617740741176256004649284830830896076142198503337991980505195667876299576966244865014981662262192889459836639770763916887063237367889097537270934895944415650348179518222796120919927022283558166718327438400795752796393042924574441848425249263347018284656827901810176471208946152307377162337540315550791297829984108579432304175923639890113274772452424794177343463885983779368341923357794458074139239939206508281729776595782046611279594094854643907182228948578807716991088960812893275961026859722955420789062648907435423393155355774722947602080643531209202320796416370977143661021949256158420659010926815829423477424591385936082200847716750084067041046234859559382015507936511202145362639755187843339465495772359738012687431406100753340102533551980535554771685127539594467811932140671763669523754474040038551817758495779157256882182077034794206513455303349815151512561183172164028212093269848413126573861065866440141920263763745142294850683772718750275290457055667583988107223344467599972254681946406714215997676911078550792985185936028753120650927929921273754845376788228885949011603957378132059051511823570920247487501772030019853300136934806119914354589470180820346602511605172002406939576723309849674628127347166660830458405440908449313257128646870136890672910240466574555967141197071143577855941150667728072089489691246875150644264711374466534830867012040823460922004045742557086810745770087008343929163396823087811563588518490831604499023862927222279266791025641698863051682034004502224434527453068210921979026943722817532882675894684858702440129002433125690618630828768553020298242660195149352026220876815659165810310944133200754905385457897558045281784182040875497906108979263675404214342762768965045942697780939569548316532897837677438769963872617895155892999434498335234625478463214336109572034440423107391860677403497531450595851970825139822414956889942104849040249351126210743860577436327781334872141057686213112604959921000089132834229912397275753270665730922550104593548635376353489328804465022766693292390212045778213416092269078885466966480506093706871918907328103757644576637710527185144358793776140229844233843675222942976064092893058747042378603092058913210974619823965858535388073630207184826370879614590883139383891737666828307911990368602384370632228698281947031112546182464147854738432871608560167591213659736374863487764435625217207556817798908451050035763583439480736199312958808341876176770357951371682398415673193579464544803236426213324454544480351726646898389726133704949195631535752899126915363094524560484353315518943626108212843893700661146395731180405272799391566823226288849788470722908267274807531545951110088616541368013988760935560197935699094214761976695144867168192965399711732676313369269601135025555723031229895481594003087587445316236548700009826703714668274850807960388264989122060494923523599186359027086683849307019200834499364807443046386959976226663529597820598526793943277986429482046196405978769837496532689762723343959037913947746818956933151724854155542586181437955715272947273429677789412760747307662425566970796448205342585057404503654155753557339392454141625953027009866336523085720646329900799971940707366446043236156647330716344107858518975024305302124989571499647205835490519623033294457996444425506982230037056192891476826263995932506776722849380850516470109409528513428049352920564181868822277281034148189002068010423951604427635228456752335674673042475848623987806788591353661929654850808610003314054872162769506362526893137399935728645180383326997283889439826943524230510623186449168780462547198002140648014762727922046510410522961720946089638383300478125394157688382955309859491493625163423574682708663815413636125255980070855262456684294860510003729791163864469375087061593674476305116794809675329018062809187014432349059588865278390421139237532232726733840024594210729024758489166970269159391665927445384824253482261388620510227249621447543438578799643373736244272959294894543010360056639594133199135627270362390893015131275891452446628472583413134588678289031280939409804029500337270874863595059289930242620366302384826280760145138981808945867898529617134746741057216439750533091694398991903531174639152248268311031799535864985553161452115080531629502293144468216657538714966134683201322038397591487845466474824081834903469924316340478265629440436664802206712411680570300432337263249320551504743834935122130969512023291587260611452129660273952207206198362135123823767142753183928026743215244891295460981076260227546816354044738216944076388520759589540527968196186679040994978950433020685070637986505794030957945674529650018287218042995718817196823728201292602312733290099666695416079079378059977585612552114969311451166589809018328897743027301675985451225606335481717043378793177998423498035814953277481827745304202845613419652294701856788241596456462211794432662379154162548425120158430060763262600336044745983781439267248008452045233539540168362015884875613181057013100853057882783010663501386002235824758386813249255757049601614866239637920210651546656586785546240876300889839757107794060221373579430366908153994821619243043978104175375433280986232977339954036421333770745703215831698919711797638189197378583971712343206302817829437155320823875011482044536051414132737620059350997179817961340452699099624545433358038707669738309244759089060198074340556056347312893026843470739342988744945802487453279691953980633501121578308697149376519613688797184312470263030215584459034394586216679062233946359476066662990993289177766588474360907174589743085730374732952183280133776473886245279575141261768477964053971343240444774558476699141920974184523398643328406174853661346110741489648149533883125061277976513036835433207481421273820410186285876988546943620865673395151180611124359020119688157157037905123054043493881432917017529501108313437382598176900569235930225723712265726329843288440772969453603626670327189761773622633714560233504293782455076683388930190467871970736857638902311801528522420217837960392002824221375742384710524584170909499219163234931311371989287439909168200306386616301432577661432441504395087902435033746628109544672368586605283404836609499613422144562889326484688016922823228648519664866573283979041628904349239285763616916045674040442277531698889387981978396700443977534946762318023295931857130263346046324491944580504516771845402852482087165229608507099450297266598622000980267101062491353291142118462031329027801575209795963026619991117718804544963976768673119787206092722918269392088091383708613542796930244945615103411510795693558029234236224123889770747842288288040621555728762398396628996752709769319122024694862466190836214864237504030295719543781762314763489211921420934499972802362660143162153840276206145177306387965946030405585763024717641310729671669014158375760807843813755888286696143952542288821356382395777964643597967290076792788302412570303351440707229051778576792342017307563091253966038904793731987653024124172759186726502162507787792246446538536293254875341560683467214824899392620628311603057119166250711316832518326201487635501547467392742748499488830389204457321878920646000326353332510716974195869953603953863308089353738146552598865989778262102369989430737327997199663944158311951845625068702680970867851605875578670008709810093514727647993916878270963335078314625655468436651044552686832717963324524564297500850934148671808126289175641322316886821095403674218975587181700215140403465747824730270508214719546363813305588864619167898486288309830343376147712474349329500972233775448197488490215701502291712776720554614688537260149736717788115792123353946135975613234507286717744459574853984704251133403667234958892388404123214853564510138471637544544869839862235650326252029008825939106830929332631207417952057527940420259049353433691096115104885332210596658058615406773986600020083394758637735020587580826924081028140192516890975084640780673160044012122646044747088739542752046222228374931277917177158359323151665951287741026863947387289666293814254272137643052663105783108147267858358410805108919004428528554434668160257536888061289945995851115609078778092231049558736673536650138991052101150284933191894353775543214151315044559152744222746106573681083281779564467983742228442157736476073516306407196603511938709250302185926634873294086628262560031132350478595477575172785700820392257640814933557935655732691695249582236484971965822065540105117389679514173438533292812155443957125130979338468344617573319623939514718684769651393991760630037391967702775499989518773166632714451187080212573400389034962796500604256191692187443729429242706702878422423071578468838178751654573008115941660244765691292897720485124133151580841342178928843598809089943676387883497160419687421630671113120040011377173718270257464362014891449124823575468052944969626410123439644631603383529844055913152495788383763600887091513935638239536605216625571169097231397651744122518387980357108238024836519461707390498059308659098226291606593114732703550905849852394347307575558191541793559242948400786278022685330413774977934277589060144927449748019506617309883865407872848407088626222527986657531751581042614842994072755900634759188129661202657078625130969666239508252635725508049698682780482432068436714133351871133556291522572124499725056350364113175939791572085197885408778531672079272127940696380946043274445272673568551426397897422201800288818703988763657564633913188454417738909206873474551146657530692596755395425633118769821108848157060314516164450936947885199225861475825135746977332319640730166539612388082184969734508221158379087704767401989333732430373410968555298109970023476716607330088806400498166235901689995997562321063009107589243848002461483964151467221224518158951169755674964088425391749700660207441884680460679114454376734548095382154459594658892349503750981929367387074423959826513005168127624553071194907450832725380308542241023225000111133516378206042365112390600687277540694990611080828760786370548326201181509729442214934082627252753111650234231368361551687064638746844060335418625392002747786964311794997209462226539955501832430013711844737385382641820615490889824924330636126273088675473395656450761091502328511768104986825181962320840651728849071004373805559872809128851068080387206464352104533770623967343319796888803895942090558511414156127631922602428046451049660841799538973710339132441988564171948701164702171639222589657238424228076428732982380450255394913583283664464054121640143219091704157360920466648518288101235515788243778394163694488405315957606218060799868196769336255851620579622745257439419205283173945817528056828025906262014680672276656483028410889675322850214162063797531095286640946473421868253372007130869898222909709616702877925935191551344826109673035695002825377915248338052649487163752131102622992783342987083352967002173602896499011661752142245140681452165749362607016598415684247157975401856926220135230404498039455843336579267796736150064926153943995814797218620674884174373080414568050237861772004229490136130053046960874626115715287688602450322018997155308641057012456799276009273091947284911556190800582665852139255257697620669465280458998006683893649483735822882984662613233251134121419986054469433898781892831829338214800385204178171235352791967811910484140736085586676176148798843931583191123190073706532250307303095186157925198828846519947044103538930013540008798197406070780666248610953956756818681157083288222444349124401258677928548010012519090373344782446862920880343197395503148422134922860039615983772378453306320003739760959924243931782117107209936458726811673702377470762613342826424974714036409201683102632898940724654254827142522056776075656539325408803354607163962650709672484129825411879228960443982696346470406058719728330062752979942449478691611539922488308452777924754581360608972978325137825554648713089450093444138101708993630039347826193334084273350757573924410375122527498262337102394692647708402874353609039658277114516211007395437100801555497379775194576262758215481522544933223736954005636994842778244305459302951685963855553797320910767144025354716965368239361295540048028080290103053456932456541671406021913696957163571471030028835640516967668482281037870646376347765148067796291264795662439322143324596241605540804236938282445086695540377657207346880412456872017605273555024380138357148753395107299689019498727466050417087384121820251833481070985970616505627919366002843188928204806841567201242097630934538279057899889300197795443632030600672024004423832412547359996171933496970700654515721371568139715068452910440848652771334559587563596540475737492564843990506663267478713809111193617982130173825900734836350017229645487695986302559538447675503535052025043177733013029203811923361378788642523894323159858467246838779217805373348274646784176025547027119577671046093355637111528109264347257013452030204902458678914482836960288738491525188729539310682682119012161361205492315306269061570195023122723000499677949943014293974563102976693026337339456596342566707071164910544289992336221697513893646588005144418112380612311713744638479790270954351175628681682344203043332703659945988108953590395766019192930257186169126485141061175379442485505506956857956858556479644574411227870971388429326649929530966250691902029632555851955692539332204411523637273186151118077518410830159127541192321073003579453715396537585017102454589579278679296674630746809560283821101430024616362827449032705266193111355528704661025686215754186788455745812465040490611486750278351304186709835147077451979358530236124540585961234146494951355281876216668123138539437057781399791147126828870675502127990963314205508545502231946424059423674848243904287651580758799856998554549562493436715230941342640270685308300979889925684065143305656144947416622029073162160644792991408033667094179256701046769822185230113849033138961341511275935186188372999494153114082549258647230022539856903836575213531990083047177451095434623913501863391939045841934249572321341296796178241264440537192382761060286948502721095287017417656487725566423045678846243517636394901543849449867180846535489110600002366709989693005412895477940519866121250057742828285977054389460918690600594107582455411717416018904824232307308766857996895329893582016218665147535585900132442877670547670734852162856625679798113531680610999465871036444276731842943319246517291661091545756587332438887734961557799599622662570550315202040189751388718101583617591278155955699147828494139062658731947966216279243700863914405425232724408868357059927966372230293611116204622543504408671485703605872324679602962771595166872009099474318268876211818523238389169890268750361595246796037771405669113451643281576888669619654225758489129693180330100276722179014675033807040620164991982385150614313312099174261197400269434046229984126838986446112188309791330552772919071385751429678756454562819635358088367608297928690586234525175973095505111459102796147401348538370654180714851489400746627751708272058484296357251042802824632789477258139700961553153767187382206523454950391365160789258155745218698799278413789537379795635637578636429205194006026754444081833933439807468407549999903935083634214877030488763749341628019664607484236690059210299173757522905882109226560176130189117159919836306232894858041317381872990742405619351679836799140766660605632657976467684694074587188941071963159192227461487330543744146490964772696656273045520679565750788975396703895508626586811653850531788497003994683094968842475376685042639529674806749837135743091954098998624835520203877284997458684669093027857320684294384215542773538601227553935965065101568101312290600511697866738830489046483630271421047072141067585973538361672731150712912467537909674876188022441457297362110198501718994732776647042872190374628820721514646384131162434819611544626614174645503343926166152024910504488786004712215725412175559890154843829132185849407831364303541558404157676389980313078510390011736600103164627002254850766922028108074360566616826894178775247299471201753327178814755579814188006155091800739976220262040149487666280016555719096515318481006566480136765150105511074475002118751654604053035831802927318410654414266940877359160676503104294783717126027893465646252380774340360168841483973118073930436055176702948489526196796133502876297271203541807022814268053946216202583517691243550552780203187127895046605361161805307554278460696927115003704070145021730905483718375995410231047373727244927678658141960459930824244840085390613593956678663565431703384953615817084929161480794242356166831310721277325145102666634504723566768563603270613396124855273103699438770807740199143562927553472560986310137722064724299435718475513809682920365409344051788402036953339780488967032456706302969858602698566463859995607897034131305631082976130674427868604157504140787542035631974652450463095488117651648164434950708067234769682238235091995133939845490006634106214248157787009935956899478447110167949170188255038490984194582900304961303854402004773164946408274122015988522378239627705822725343151012693515330825544651779023308070771336201847829410291196102621126459895188988003746326828467328023842187957081760018847611020997185545346424326351382924124035191997982916756791720949488491361908921764782682475179863739315926433552982219542032649169637414444830557046528171572980085218582369135806762985305626728725431314014949123056812302424029589793500697481976690231225970284722786939949504658895205357973268349228236980830550915612993131533341595348595263899214070325264133702322576652940394609107632400499052137804087309553521634510198795487844632272027547108129588973509555090557875092702914581399264367660762155454040027373764418332382223413596342151854431144451314141664327756751243169353647863315981469921353585808948832871979088299224997681572382856520273179658364077401499428930659322018686855402231206180223440548065386044633010203769806425629868509256055329130879461685663187389832795475759613266018745137533105605088440727135478797274529006612436011906918925124415996616426797002466899895742432620706183081804542118106026961813094603123168302866712103468051799599460875437529874746504652029536699391976152886156757393909693620732198987118879363538131581646676733065501600482330341789736836977500635620253739926574291566837162596944831629586261927944615075808302322989452877903387709071379247794970477023224871767927171985003163522888942912904545276600930424071356821076235077725891113264082475106379429538432330622532761393808974449497176015229698098123345141535530325241598815616973219205644447924440559217693156276387079682608115286434722852554938974873927334007072682628481505454871555575325354379710023817116998786565840586553366679895054143529547367398294408708596472050855955709745991004953800623026022241912864753245816462881318003773400217817288004230566849515459896467677603851816978096170735207911849319562363531555815632858670020875862405570311691721674388883422033650603506635542597805697972696190461296569234133558291915192476003149990387960037729631067459551816471474994726322067245779379102339361676997401711690086861511600953926063425510085824828175462808087522730847807106250777035664371104222713497998824588094191677982428597595218762601942553934829671356737942898150350788657049194672261313220349899469763935251276571972408654966586511613450406193054629280557213967577678350793773593466046637952689023405519930681061599956214031533547732231453180814404730358862715147825832962760672218647798765232685260035760967105189795074309144617963072069900681824600202793034271310634186055562723145471256083628926251251762183673367675499754009959640911350590905727921401662742596360657785231585981688540242797006925211848727070806625352785369096892417018293019312816677872153787428442807664742075869042373129666487522797014212367289966789897689768132771025688316928053208084565216755109360673220944719880298674064456433973822763807200621485071362332957903006888236086941634126323175806889102906617786162294163617640580608657262064813613385317160634309410549416850503273808484661875476958647223286862442210993964234540169535541813618917842821054675254213112458316255253442108249627865598270195062507113562363053759738101005732210499939564035315376263730116284846768084750456351533338091440412210680324885015023753816750781449089181922178681905204827834394240601445207311183675844965539124022551861891194652363592227289966441478652823918697082577378666222836253761112048319892087413369070714281855645507140488152896013475172589275062804856154649985212418936174642337415719859447171804956664680340915159772321265795343782300532256787625421517042980018048850705967392842843428132788241906257523727082582891204852221971077479307197111230929782229870463803315611662405982709985015040132325647270187912001903013233695126895565341382611072294923248779328963984352444112448379758457950303966819482166050926026219791893853865390413887640837213075961218914139540582772098311551262717168587580445065044742376487999332882069534430929288613850230350818431864229412413018084112848367010741366501505787170143884699273179713754280200872399943321184530768683360845604579215255772979293793653140506802115540800402505478890689906556072629531162711816395775048527991363487486092030986424775929236537014153289537123013169460037092446463000117191450446149409441706747778619266656624589223157582189929478990459924677718732385202259358742882253374502503575373484712125440111338151946805405033191582235256678075423241619614527923274078893120347117490140443908479572557944406788546287233725849272557923370853931239920313811558784125242091568145868727521661625571929401134205531823553235930016089662361203732712892537414088425143081037082564454865310828198095779192908185069768300590706680325271555312419203168097589360938763571104441626267542578620257906364803954629480582339751791077031752435864041061450372248459907164176275244411735956810227975188848358379329676513364843269124281778649353618332674297413648069735811123835597641860404262680119686015560622880871757114648613395752351794808817874336293457371835657970728199775150692600069952773887382653958405564210353721780367741184505205153747339944132284850274112521104748100121963723954899945563982654190332516388076268242303748391590879015242273689793757857923479963108575973380894857699634682301414829710164502472407558772202620001315524291054715643262345582729736629690780344016869363374906715745647122536105206467260992535847418308603262269557254034181521208092930702200772832968756275210407566401890321437964756699343329709191346590623784339892468710816240780191095731543766653834121508659790452665342303497296977114852837145925067519297323413000677393330637960061690139502511384051387799355551351059313236430423687354648481143922090796385899133242166406848648160819257887536017100907891150081971734858929421684649604110242767436706127376583730274399960751758892777512593076238527689723274866985119034804859387250816671580385452880542526843855805063475163765370434491193860717145007828132654458057160872315911672828641840195619645726942347045850194257194842026675656323971063357539196205250618484025644445698780741486565252830177760422989171342060461936151283912419091794485473586859189695226978319964979158912569820484759806092127431184834490447886338780798383915068214245136606748219120966503839662267370247546190897509899281228907255893435031178303827249062485206964350470962799260323427573448049663475696520574483977323304076167802470633577762727268164407548689410532254924534625752343849127277870546934062373694629491687499044353222200588531100206266738682789915545957427030662629397637638680456817177409206832027109702697014140049650209236350074925946464462562907284157100924931078530918534315847993947743814242826340406156715909215666716109625827252958292428573619068231789920696202235508545591970813672810734002928027367834764550407836858806110591378071172725008924820405696796838201483977538912827681401077086802135698905033381081131357561359346606445010079616763101536199350518666840001031993812789566711462749389384006807115053816877458894830832597255350097791004181582302982825973808833816828969782402189241107836135755416669151619698458813047583461774369887183570244428662209154587024775561798367076204522799150725521468126570180479869747690378143348543707905557520628946951849576880596142553638971766918313062616133014960222105230783655497831066127554758807173200659287397594778551471522563512506060086122796943057661581322508916151027144540795360912172623344509684469625474796020412508562321301292632975626144286321553532578556602322270630800663986662375004102931840273728507160172892981754480144558632162696680454205150300137437307798744964107760994344423213759947033496252583118229561326857341362035886552809204657561109359208536941858926252163141048035211099604131381540908314508737484177906497184090435621832159763583293512674365926847482680500855856362077033156906085768333527135054355300104881792201478767819606614469524861747917909321581263862073267460034093648952991999468400657960172361517382857444938160704277484610168642826931083575711237320983706260069991061059166733903881282545083477683382140649815621666996772046600283396534534978532856887909337408386144920626674087547242534188188058964943941967869566114412996720351522338099383926735100554405910367015906509848831180640778379925732788559332397983637533604239792832167643572650091891248034354204437186707777642892268419918099598504471133782101818763666905923306060723721980715471737088794440312687379933748151235239168599456749719380272899630946647857027639020033660334613348185627720676925598964280648153831782200587439818802658387227463990338588614711575818758559526165402111349496746499058760390934101647741273635562430510764887687379017672388909600588843209983680669644609539985844392608121461179459207072154611198436389329043383210257995062714112449955994034547933837992371146273935569787557436167258958972439205054077789892943564478321994552230240791895610033589472184513386705980649458631932507754227549986701513101559125757722756069748438687950554620116889741826605400339533235420656045238025161456568486325468099675578409253616552289322317735011302608807343376098849545560627325507797849714327944916013847143534914589805847012580002500721506950916537083083983429517377803595543887420827988612550359051717914686847230710463306291654592844537808614885630279092221638257694007716513823066259274565143910533523366148162383576151367996095483585919240170890242757818073027165824085357117239357587449827673668416083151926209874751542788121104407594339303810308843986836248117833455000552097688033399098124452720463231366396021943091910068488913641724328151214599992214466078326629487651728015946932589408776027112997736984399188020531343421596769921082326474759034800259360653047757105662633140597635252278202310797687580376011401829817140294128864708990674936523430386602980366535719704377441867568105513696408209288779192146287435489343482037354346105672350894669430308024215860735908272257455689179949353928448340127363626537884125108018964972502798973583573223712167956221467587415980972983648403737427105157656943530588478843152252948493954153699310878368541285965283445075145277795011079550638410786033359866651732588188088734212250769582069016293398795213589985807201076988028885969947754945017710617588726102891398007347657765792431983110999661062057425166441934822547679186418482513187024504276707023702812734414746356479891686183425253948169410549187649709897412392238602544060702048522233588364129442833713157407197044794714781283409446896808211746626411864438472765317818820516444729079051498597374430224192285305058790116909552407889575288240640405507795608860910935546920877419953137268806651970067923570558043823498921710330689483382557998246962159983781470554908276606644208771443598847093360872364254936230600634972451462258437436237242691771511888223071213538106501029406095372685588597498176414991503214761363710400894170503024592813662976706545241041190300670948292012966534197903111684999052547551012830369858849034652667117611572228428562594263548995941990805158240281695017084785784317168168495924878193683438169315317424084572767841026959455624596204983870816519962346657549010496024632216406013366488695505837000956259742871161194110992584313360324823044039308235948314138537887827968615417068639809586617169675440778858782099460697325681964707169437092556791477280430217632560858879820772343956909808054750777988808264202242212037689843461111814658722484570322553347141369638988119083812925241299456341915689722883657312096169356776977155996982623133922447234576960456661706374945646599941371392080655461195708702815304719636293709321324147477723368763819220853368252248449938871927245061484416491304736054683696104052742311340511579585030236852478471974671319805814844379830527008672526090409578252168308997889110102656061598295439182663072770698876256840397644829563309349812989588622454619531635215399339387647226164159549767055645920579055025064321682492590198447448483317761427008809908787297017410224703541042740725053436061211686382612020507709249537300348306745345930873161254365436050613886431343896472167073559403714836062341588728574944097180689888641176659203830504326152407616779718257776865518352637522784075967576324590359759363222731209878198408022638561504232044773876254328606844480288461340210352722813448032485830149058866919863092434781626359176156913306567512638127660979245075372012569733471669297363052322914525544903231323804413422660903358734485320658207083797346732407829449572106187049287943037983548128680125339959957830695246135583049279311246277070825792452996480894908513059666438755175961239307423497782256420886862439301522573214810353820495937069158793194344629698371581700372982007798337283746710191017130905186775141581174004633257498282931017135095864868927382641195367269593820614956985065857190588898041579787984363960132340362858584327207893914853651527817661047527172478642312211887532246913451152968234082881332231366188928099089565497702000458225885226370268845757369021202294639782618069724440300166638754005790681145516856820594346352133685634678217452831813912930107109943718151070039058813785344909392051166004982769867468911784200112782807514367192518772346684407215051184980737575162228640106279204818477414709021640369719719533893322112878428760276183441200806244442479824280337255213822091544184568651703545324968241222279789054964115925852957340799574585601556752280082786847595222420988743840852379220516389590134607710110363304678453044319134401625310153497953440375656672725027324635180729997753840526010946186334541714762311215505553505544637652995054345495424346217809236399471201663611359412727425790758444209175371377259611987152219552144522776235457504257904496120991178842063838304768935577610724141334384809392573157831433898925322668682873042760851150685626362326406103615146126699070900158879358466093684023023547259961934967552964632960699758503828537356503362987521636446275538764370131960767960255473622252638740985935393858175093896709869517868103308577969883703173044956669081034428130390136847753085003133323940328543933343701523828706154944543691389965145333929691849728957429765318985138959595348159392500564353850044930218347762983097474196684836567301218463135851595509576841681068245902924804880181578746123103559493999102344137853253183397919820653954331378061732248142580706298441637765737742406562096036680757408490402944292670082648128444786194627433470562925585271591722331106167045857930856602279945864242265145840429498559268576613988505069634422214818480269488193423804851914797613050711381849862793771524752043761336416211684131584915123839298648117145175544193387849455932626435273556211935419477897701027193017660654313329804759185269700878438772553864197893054314977094526405130017640069939756048762178923557054626475486330031028270066371595024210021848175609882388897537131255238707000089135044986282748913026629904544146651970071308416398986185232550743759852954700789722108953265054836980840040320706138566165366360133131527412857367283521791150391171349079769209053515463586524442764994111980449402786355017500494111486682403467072879173267025171599147556482383673713186035570269712675702361928496127411191179294471697454887665622132340897468362932850055117746325907682363717222792083462986763262598388159068335839273671042431082834385261251572144518349915052427539066345927574720800171599262814326040053028183644408279127008469333051109479542515256534502550142207559410981624304435582924702638977722329017605586965161392265783599004438550061700558350459734325473245996489820799777716593726210359213433141032030737759201172213530989252854682796985496274819527357652842181002023182474482966437857697058973437865891702887600965719330995897239869643495641842916033384572682309251353478990154572675898589811110792988912077200483672680214077001198943602418166777679687531887912498743044045389186539994666402584946951196314271564968721893039853164353131210316606956750249222254812703626291097991200821526683685727066324994739544209944906404107835228141971615628943966659559299877053061394990398503556578743365539644936179914449452173094022787267538972660347050161428052065332268329494036093227832001404533584975769030523222828403976570556110268945929196264156509044003478946892629609435003507187220162646911438745943213757092051596037587653570761444627070228182660480818592366359629603302106521256389178551343847873882941181310713601323879548217555165812953001511676401880282947112141108818947661641935114296135812558975541473846456520931018994100204337423835654198765303955830786487905298072794611463061950873920460085892881607685594892173031428711197741513783291118410422626882722067605896737183697204747941850453158955870185286382001260113243329936295641683319126571784516963563068357180790314441852775582160096559723996604503176372945202738366430081720705721951388625201303559184384839636055308044937270946817854850102891594853753553553192807324978804140318665074915393294558243566242292060450339743734839700502339440074271071877481494785353672307899828816715532687088589172335685942713847546412559023435070923736819782351369298929243523282697284358878191072952006405351698829882416646394547033784230006777803383069828637511513644617013047651122531848157611608761824354965758379567682516073946570942146845066680742557159551478915475341179251623547328634906806547887062302132185718617396179493140369342481591337918888741950660708662758674628985414989250190860461964781505329654066696596385204080845708650456422755836233410412417937712011163907394913585550603689063175440327858883351657018615194439513981544994409045841180476804725708596985129736987884658200616227524673045240653233267610882361049771597973538262398710595703996803121999223234279578806434655080127740466960010333091248123402592949138834454327242511789203665428883363050777927631589665969275280255650485070430507213187488022556236756541395372585674462249474018945831843908284871713560770430786650477030830038685402332948516378214278889459737673186150587991711526006242009619071226232360732219787229139457028126663405955574466442642961288156230374112915215482980873803376244618720846328390962895812015106059322653481072046575258711142457291986773516494711131409887942742744009373711329733708540954358283746325231731172778345042607885050091038464309747664425754357920613152640668336995870886325105099348466350423838756711307082828654553115140043031626017727363898629857794396652022380538232233655261121954896871224072118531330069213927947070946144538515469161419584062078132322506618113733472934845713667567064117189904287045711505220711597322089086590994182330806502312933447078749206965077582100913738671424161127997299666991881570871003462408669793540142311041049256461840184871649347482990550372542930313777208908757047440477535500318076833984377272553786524170568017415206538917638771056965248306072932348215004254184966211499459789942254915268796842146006821380628334250939344997345561659546348531630283585020557420052468883006181064650274365121172496888156690004862596987970271129525022299539915589884065810598057674478091751086995697986166406304337260490723377581262138637759441681678718902463932995524625215114684074512263293387394013744843237937906723844244823272646657529564298442836488556065970016494853127910561372023620620227621877524454831378711247671428455199600744488468741068246439756189030596918922993754345393691959775170130525607138866413222027401048397766024027150078600617246673043518797890069434891961038095710666415608589383828561207538090968065449153560085003677294753905990317744882211903162544984158383983863453738508598091086699069158315383032907314122343821851760100942194130659766904966359299144206854250799397922618219186117967496789270052892914496898335164136177648294745724874744133327808989227033222185374731568417147533786007473676507129790549188294274494267948888260895766491076500154062922369681762026188530381065401386057696671163129815505814947744111676535199771457789222708200275498182494065435672267741587461960558030006574730810923390127240275551926395781029016997403903453132019961047100588741910553958336374765317829428333585027961599042458393205710733463261769983266726937768781166936906885999804306316154517382345804484604406961719979454437671119667577205564871647228896944104559488045661517513123428258352796085062096693543865843138029475706226582863862111551871892324098268129732272846474162543723825127181748967997356944931841321385799846895871033227435085424363832239414462626175482289866810017728428103770116384650719371385222459309510912911381878347119608833282277113487281477457248235923941630989133577739283865055848147705006517893693807321525958539550939887438213380446761476436295820696405350505954908783248878264827446988602287153030952040271607449765224213742807336138081653582506199719322121406680550383095003004866785878564457339828050950029966670413411150109180433023072800190449511576859661732805894826837355956574530676626768064741967391739084314178184775924653420050822755777550224847320088932744592306176280343470444838183792067398305171747445140363136476466379966568605034603131567156971655448870562316776241526911190257659119777510124526282304927023606515674797944539411159065657748566917047676788053805273870833670203257787570819713205082176441275742752653788158758968138690727382899812506216991028244226327759528090360947827969989676739540119636037828962002132017549696347047447813466995200742233986940688493639686384920874148930893020835157919674678494472822729754305361590244510133977461906771866169897110087878394073893005265079494230056117803777191791435910042606270754440687681543997337754361559374817153332649415484240067071528970384536904735372055866054706860426259295725395810988608259014097305502369920243540247737494330831372325826301313331990430464649871766891843555679284764862677146895057483793450592549006677300298337176901701231491126976399557065271556143281538253073203465500858365819299535632809026842599418508796738881333036554346865312369598708321974526473548455252105355257840590036765273303675559695784193106577486278365667082376683203613320809332733840232737696700966345434563151095315128570934642377396213111724464976968692215591963684090187020606198989437767638024335537192074705240014807299228013506290784858694680485388632035300149222460793634190858453204939568311915576123622408927715700994824954112762384398466154480041104820186302295600426170404468728849032357117090180058422622811904681121169429403197883642486265463828276215258032466587337507427864229464896731605081498751990097344143466904278003203043985412670856796218174621174851645083002922880237095016750354640260202569146959630028864010595997591059422356017274239045686609940681664907196359172913645907758678419635708113740164142617232854632412908915153203159160101361500786199482476137755575835411965281861835213502339626737459861810521082038705098773872476411157560279652971203596276906494335472253479741066785479614197607331846682677593727349157595337441201383827333346006626971757242781285096997301792373278456554552911203449486847509260741502702000599620004662111308344680367018914247013104832503493599576561827927341891247906907848824655708621727947847376753658602667746897328157550690180407361406899083636021031330974001665682746298676630455084077877911920206027928454260103990288616247772536733673704691147488281204381397651634760900791945859010751032218206492590994911528559818207008388867897298998621076079889622552612627875500963855082099653798094971129825665948914613075026284415395951115723644696042882936017622964632992537470592375189077435586281295152263163640909170935149997171379044210837573663115800449030637215055459992833569823552454633501122387917252335581139865127725670431787937423691924977697761250810151128997892411571316988529256759538017809736791241270142551272167827987473022059474216286546894171880364799765020839002781429064759464821617165686429664741239291981714503585042392752131179640790195866986951310611559197166637189244884317326431960953099512837481259719938084881574165578167137186400998411555031789143892065653916495916262166039703428449620698530877154318520289782289199074871206770829006730220936565699436718414129473014115725368325730800758827234562310933704119628633376078650067073894293290675138365982841207727785943406962674363102002774094253521047252945471486101619767268358615336595477610109565391189322212287859459796708271966194242736663182429000082437281421086367759179270206131513402258214659615263497178186753405230635269659394397592841291172112351979001983727533718287334074880237283209652981611110540201345750402888544397297955677155318843254366266905377004754639449448571234146060398767452362383072161788791788460307041527906842749705628073591470346307551168227981100699502247732239485651674145419770663133360699044755147214069374989885693097136426172728915982121283052139171763547174583689403693746673856368264848291970637950815078288536502597900701995823574859861365893858903244176160818409264022140602841911469172508657901326348022681787739013585834812330404362762192320394695822733063787703221632365308895639614466102855144385845923624377950984728215461293486912916074829596264801996296427732212620667323159866735010374132301053578233033148795516506333540154189363988793494812953796895253595941053661481958574490398331709250535178570988453760076922947277007208699066608868450945260754215953406171159971965390570557696112238542068970425211979501064295516943092359262676368167874247882428564854013520318103863523960748966992800843038127912845304752665722347968885560895747093627554329626915647488404342434933125983391166120620688265197413634152025421329259604343492674065593347334504827671132454970438282733125595712699317994421888899141727516594857252453550862981421372264970465547449886981791581548960783055857698265253976457240929299842285013570914982310531751003976634554792155568384314778430603749977939284556629237582163247633618650510299500746721379010388341159792581510007674334293497221973402872191004683401570583392167252818274747305674736616318861972333537231359823652500117878035780937958996328497526488512962006896981912053198748772571217957348256819297166115279499993799236697461967015086085303513771496185085115606707916264938047648251741873242563230149765473897060135789746865515023053620880284008132635614860578105058812920925801682825001348942535902103528143656183460898157955303765799758156887516316367442264023454533492694066916245685716450776861767027455137276598291343586356730687994172113009461412854439399570482703207093860663884214284473999042000223274143108635207547191570628875518347688383350388286495445697004502648581745023512391993508441029612692232221040055002623075420885383175273352338788970129150429857151394470096614304584919772250310276988731857205575397208912796097418225151394192017608690836049855990505409600251164677404637199957917466226082182337656376305170720655620488754567585489784825656971263867399446575073094068072005754094487070879209137798143770813355601708584609800709636462787898545521556381111372445438390056783043392496100569315800210001454872252638228245808394280773946117230657083947210678129714416986870333039040207568810430893845170552131445528332849422970144449303926494517468345043923220736733912534309770726476388487682979245268331001094243012132625943368278467188953947969984758714535215857669228610438610089285624206957521875796129490847199893853286263909190127096278035415208748638508096868085493757689652351636353395705608253669255801683034217263644913394998871734711921488450952736356763716778216024810740084151612990314857689589926105651949147004428674783586495220967034688506176736772612298800351279875326033155541616547554748955063628656224884894162513915361456929082237070183519537917090558503480148761821089948912536167325771502544136250067797502521804430849351363578191340702441392299534855757692070195251834991910075421880560272227148486485763535029619243590818247453018753177829418102153908716304108164852976786952915493176603263241260334053638066710146291607864799449264951089803957760169013332531350219906105653016511874171061038559914610361936096818108252978020699201540671977606927131094686480141769365305981112883867350109223903517446156518426782235853809257549311692037993315975953035806286730703059435678023307545921638737935007074326985243810039978686076777408461440688413555204464898646317225304752661672103836167359281619890035729921397648350678478220281351718196336210502102337035874517018333043365252397139820984121799075638369993119688789614049807592124860430928461304161816240215982450300343724083985398244895510477358161180884347171153334762291994295716723248390296805920275173889136148645264032516456402636839212711186662627516526835493836860037918881430630350336559401051283749452146072560971548465732295842591920075249155277807970871150282427712450666548049063027959288101358262187698829863700175176711063822859139086682148602218263095974238760470807960420615368265689932887252974288169432309089458141445059245242158317630755247114527639704170726179576437494408730306858202660959716210194621165043941744272443095261215470892473289229060539324654560614672637787600729172673803553263442471743336299596197565492241167232364755412206086474519899336109620150941742940169854145794205397701383603474106432465762746945194442858364606810855956073453041784676936869507677057314001573282912097262779044046110930252986642133566255099694671984785998477857959028768726633607651423748297371857055454566934976016118189647503721629270855279442631369156885188894448687577457933446022581111392260416364690530301930683463910859331788757092150864532774158940127152584631895371948002915649757296248759585630784927381490974831345637657530330474760660140661212411751296102175615063033491988645997343794202930309152862450365790651179316155018079298031881679247044742917582054565613826548599257677896697421860625978269036814810624752364952130380065012523786717066705916095931104498940561728093116606350552859586583021223418713004647586945994722924012017797738135174336529304425458811386475883628911016813074921085225447023258895601875007251659498749811678044294810570749929024866025756256827875859105570970542017544244836589663651320843159747128062975182996247070730208119661032139606377889390066211642760759616367763773873730165580107472181115066336321480315224539383203841600600062915011087518940035984048907910841184405310927657525717382157805374046167773516454461781043480656533265598910116502756588530656867120913807008219849139670861114257585257072317573343808016428833918931293194536157422270404523821158965359788644956847846275323066212676920581237373859699327491417808583196274247579190935545887416549116790317929082359368274766451586243913356470733388763282558739127631783162565236329141742357886999922494677155332117964731683198856190289960991049360986657661759203777228137063443086582620936976056035754268093534628173084363232996654295870919078666382544235401175631563691040400457061155764451899254431546833069200614457734866267020204098152257313935996396970540084400157266184424118489644192986747182615361663129445497249959471400099000581204818729456281971982326183723363489903689433971346570151203369287096431654009095030535488661936741113008811984766401588423215373342284758641330983396636886492732394279300168255716139689868260855978256972343799797248261890344279493183520622490186444564333245790392722845995057745655764037993822198347244560179843579071041237949464261440951140379918511644585012868105617449852250998444503646580433920579250177530453213004479728352780727072345977322008329232377239859605833998089585757621027950206757123126171299307351077626657978213667299942868825591833495427583715898947475187843021789344423081928719027867557794003105289933801643193945129812227921421752844774262872516020892904030766000234699469838707845932949868697199419466884845085477173825359438494672537141880080338801670659211265528583597243886035436194245914999534276825872273570425013098815880034740103134337661415582802280877982025399872218463209486336832800223207136832321641164937835288047234356763120723901574001139546847763286343036539667187438826162390199379938452952232388980476993751601150465212284999900327596635621169633684830290758694399613988141107856086442042872187000601722464008289878721192384197305306806287442875466586007385179788548351937802040889305492196471873805762373620774654295868731250360380080060610783420432819862775542391268005824065159733935339022726652459195937041638382485271638320734485347780697895853743698615343252552975369333527844855146086009182721401879883888462945502158254806802261116636452059864150371357496291547087759801113820833956154851636864572279434089050508744594809524181890366927636833937323400924492188425166509974066250193983633965955422228651838977410382202003627376049460018966894322573511234820097054003092396051573281474805039124373961110042084301648456308319049870079780752087907188218414569449026089480544438802290535209216140031351100894648705396468277903246468317309377973895418360346715998119062408992601642057200718721767649005285518546935942723980620232233137482127686821323753769605283094398807782436860194310553858450620573441938633371776745024362516215660798197379379731208811991737652318334216880931148938032530085189576539913163733999241424677674282210411032703416715433807445195238102750175560350216084214254227909260397126906082819445100441340559203977451889738286891262573853177272422372952954601530121966735189502232765815535358525659519856653266193560014402376329783647929913534067036628541798504431323310800054861831952068231165164748702930673093938763473889731162886075968142473217574612048237461789271481239918269486004462882150528980344222373360440195908153202320323545476764323272804514294922721895044733491952762514885305071642065303695112774142941735575989354232105237756910321036565743854105294947727882762551162418319686449956992576134358224021479981143656479783134672526382318839884279160334302934970228763992100037347070452979012393086426582667949492288960723854547036769712723506043432468630544055502797226280290478012252021097332880884285946760306602694038108384368503704916325354055199652342508396915151169783687517370037499278055957146874016436574073905878453860470654005264499415595831262889043767907808270534776009685644646387167542371153184646383465170588550927372434834129351702008021835256920176397306809849108981753847787496920698659181297851569524653047704018186050813690098811743974991338425036760375578805603094222839013694202070279841087684948339664870311105768769062027031357541236438076703704191310823403363335268916012387759385331238840618651915759932412399207163337685688010751927351951012326715033800815630864853451435190655451843613779047339310957513981962730958380651273337467416078694020931995423794584836749048973536554026772433105617140309840918334926394893015940820922981112023014967565050129205181404091454967356469349833800157944643195361906942664684357290691195673187256660445335122749770115838392743327638360346864824172533395218249390285515755574382861348983881095131151777519893460253732828148394249814992791050743352502038202944727497652688764571583559844046665245747854049183870737338975917251478866432876877227568406153815637046712830706010385362751272401882207857913004371285800196722427140782667823020626795199632667169113087339632752522469803186617754924412792121105870372247111409537376464766838490867007459418076122795173607361748677394983123996289004927319261344215821419500663642020759642238154055083048775569085786997267527864664325808445674116261407738762819160770037113091918550224827064047761806205924558308473705405027652211932045255768197066053056803267655257470840616187106275254237830285785165120277756790539461951125756139726965006335573626158539131380281314774480379840347215769676066776763210644863051295724499449786773321213178517378230539244637970839038525037168656984008434876674701561356042127938357452348754038987976272050101557009180958737225016297085197064660301353391173837150371899777648231259203314454146838847948661978598549193660134313659573035074911230316346987927654763606692287391066884764188801997821621405387811209769335906043668831630967699581119620068086378031211755378458679310632092607874428960254859812302544212704149556844821433874433871586812651229879266891069329057356957527897988118856249197377404277221491162200674354915198267939072931081410790255682185628061093421491981925070460216584151756436337722362740694477931254023312385028605083997115142171922222546074092491683159007683819502416348135788730639455591691568054487196968699697199523544178195365968045312942739395403911891556421311972254849491532148761746970743650654256839155239759034827851518356037669885211514128011572706596165670509017190298579925498805708692437982448449890424196539321864987277452102257565587463097299841168426363651902150052022074227146806851442334522242988271682245730757487302848785074855363811422797110264309412768212656984751026854050503327446616559120662686488702202624909199357581988772076843356661687161924128606865467303408128837358717095058772724587481721650127195963264392784271365443174461253075928914881132545240070799575242430572269609933925390932629087314759234396577155396194444682212085832469129106824658818867449716187170607932037271030122451793448344178360691894605491028387480675738008855038375733405495014218208912023445953424458059017718152292747264589243074244015568912143170922801675013446436982321826889389344016292580381151755642430194636137129864500699151119008050636602941918278356942289916187306438895457416282208035933749172267644691864426441356920239972124650700196695584938268022740254914723651490851350558795642507362574707926933932454884558631232483343037841407973127440397998973043757636980774369380500611773007680441817432595390179018043944838818152563486849020407874941588382326475019451377537772809017348480346817447223023546407459373581522069158419828565148330740853011875105060310548027799276829735566565587778762734209251453540311357515655470179294286587230865372043406786428268034078001444539537224681590268850128389750712010834269273363117095634585288236211502118485269593155523091310572109681458543497406811475258662107505599963552380697519377444416408097751209741407532628114580974247146121069843739278816971518089027559205887940043851052243338273506697251056889763825089443447948049585113598022334720762016471032940643809583455603039189245291978324744552370819784361078024165186793174417055832566372001509528908585160002628609428378845089919203298625741176155614315414265102214540612584309451832565781638156834033128747100128670340235812947342071091717779575854301292471299280735884164148442817417815462277319915834068221061280970186992915292912746158623665094658067240777827517544988920759134097622890024495308762562636998572017175234324420416159495171038430296991712874666472525007462464937375639808555870291646159922592018984873151125390836804884025834563395892321902095017224710149028775233587387353330978342786918889689185735756348836545348624431376314511826031402231159831525173251954719204848264837787619296025313765461083569274521614183625089926191187754805074743527140005157917252731989133611145100487956906469005280143209185604784887670265608593615547152856417455282933252876580720941398694417997578949366322199354083751415218684443810009635001010517908700962107964013420885915541722391172344617876423734824910334612397273468694309651318287352291965801574739480303709056080930372010018422531303615395330616050984398927549096893417370522297314458718726745756954193006444451198014079500142313934969381426633210217409226790497890791074490832765852281071322341753542143568403325431157981812377656588196463313306104986606187710624349545928614346015800332084346075236047875254854641294402446189448649602159318101714703481641629282373112822728389219310047681471748964463903979667605301703510371911450793931938523802922300442049761776580159412248199809991831332900407192400485173831774337795568184512384184171782425110827195634861547047548126377658898637141490006568967703481066726703591777727149889934125528859159451777455940397077644799653650394713395094027115131174149284640125591453661071620033346846255364677052930420818488181886976967796693085867966200594754379787046254704588226579337853235553638195091513776278926489971540809905628344611547987943271563063674560231732835783784198104330895924811722367825231876973394608094472072300784544966736034035008819684859866116701887940388656906494671802268806881706162742105917061691099579881610577534481813841751237052851816682895404460143908195979950820814217671767457315567288254876247011243485486456300555731489680473704279216776668664904237836889015878534542496518697327606465224834852545662383117342379338349427241493034604079915893193553402099081290319605473136538754207987487350602913025815752983479795465572977357656886229402008989280957383979063090682186074426144615040771872904959576630935676964033641713927107783814754609406091960072558401652961838944943454809617962666970494416037990722295981036000056832106811482508133027831328334650953701662589554529161291251703198478107976623874837342590479350572889845633131338957830393765357019819172072154162943182703364819870321689004457591294733562213212736264087793143026226760678312527120539222870739306964769548390848405639205628203577199262795470590644276690417919051707221097707320097174038583578592661219343937946566217569069210717638050048259315578162056892388116611403991282408239368940137891138134062553935339317279475646054281691177289051496414037144294084919958169302666005120269395710489094627588611804321282189757928300031829225164006517801350991186593846855751877721276887116551928018293203620182761207522939455297969590124985826207260493610283406559037043451678272371419206262156649313269903203548424926983615620273057852284287225062099560652068915953127623050378491815001816199369932991948036948400626706266456875419191336839315593804346619455669235062009521161959651233358912293595787182418924031186108171359858461207160924311635353117850762558445812186341896495036729259247173516664985940169780454115905295137894967649065348816057401901606028569891981853160439880926357551788340217822225328502694430909124430431187322148147632419719608072992185829425080353857234135263910316739510826111806345964356867393983288061607413708153185917522426571211827670188451769336868971810916405540025883482465596945570789348506702622658596076271002865108285968521683264678029609622068551294159736989014205823434059075489104725415536012242838171197413129488858872191465836829245379548361721454147569136532419549137851179426328717261858864712347592109201327059656039101150335988880074359491179087750839196711284640151259820154818900742506837365981814763783666561461294255578018458404976306193978045281738129849192919820696812948913082326133400008519475371075976526201646349262130359908662109333469496035121388520992437222260718032657506490232003257435199511769122615943733363776322327988142308060935611778962924159014815327517834219592081537118407480721158136513691627448564638503175292251617342349621791718895416673767306089675403719480117709535300582186788878743995991920431664805837322812222620457499874154231824915630747440550254633892969092838146496965615901841755389688329343915892903622284731283539027750943227850857996980706202716262154496186779026885216262543756416249006541236680248632482219842092126603704747164908052367309318069392763892973018569023188319327505929643505045747520363510099508430537902002281541923747806509712421615713148031305187455557534400991861494948610157907510665101208110057884444578494594234851978123701781113327255885702426982927664964719066820019489447983892954109519016886692772172585237031619955629514132460605204340633570251669596907915199869038687615252807503709733377290052247346607153769535793141282210061132272597542782110467977337704112657491151771543045160536523075072196938241458449756822777575899619390974084812502481947962664780301601879926187337910419809128852845087248107475738257437064700401403416719782789835550720238072988211947017831556124935052490818662529843219279690311606169360612859938195402054789804636060622358564827726453493819066036960266639782470072515038978560322416799125223121673402208866110204446781913723116637923693461885488752245820007188834062615554998010252494434011824414579667025294729032526099727011715002191616023187933511462709828839815838572287956356139311163385215340795895590583484214174245132886545701161774651093561147049123263532028639814224744441736734898587752604302859073597280099532476162410112143235218613079924416085963968807805128721339325926000446815978614535395792616688015139232046957680994503889732350999603663269359915158101707777461049206077480561029999384798755738737621891055324326599141401947932598785214676804781827076867204121904797793529495243031605007904618729173292569066696888748373200025840979322309126357835659274077036788105159697674085345312740191610916333071572587313707655932308524157173971680886919476907769716804356096353611379792555482132182505390267727782689927500484774896204886095498732101552279405112281609883800541569801046901222360878549906573356012806404768708128266055369720859702767221662594407956909121548059098706484267575329518244389441108270408237303353903245048448224169430388506354308490579607466999415083567503559977559331418391435224177594687895976027119281302853189887953168805243143871045999302117104629726019079978257745200583345397992642639807025128912410359137923220358962326616617586076819495684022889207712984430379099095058400511405336597913711870498995061046120178553467967463290700531639928609583029302616393543016995603364953469547087573447703981773432486769389135115931884009976694311226431334387893940028279129724895768037321834575095088607685671252908874551642570039041599414862356973911879844145671962499861580704429284878950436163176390956348979067521823869757435481599994468899824772431833129054629550282910146304088213524612200558481419331189282872098763191566973257207560860765273031400672662817610356062443209415678907940390637708808326975976605059157348395891507075430278746605309827269043425116693441547814024178009494685560295381887630933194790604062810965845883163878872607256871123656765126042712288468806079733528604200398104134295820194882720998747967362772270286267856807436846347878627247538869156249540276298412442558081214833133159039622794913817187597047130288828922549023402921037767803009797509484063828755434777021289013862947121877905726731247875717972589210764373153526939280232655611370712015948544464053832495077721647849293597272614787009980706274326899288819002912348363697747338571513049584179301519424625331996831547757892184739552160553789026963364397113221092375611021685700148649317222043978365270194575824054454558404265072786314798461429740921863979205246245117244663344267085820917015058224637411387367433452888594516368936132604055789888052075543686546394649364178608347234229021820348164427149317066097503292547045538082090860592073582154677452575565314192956807169435447843398284500528534772731673798262075339236059543971360569468552928594113477998531151930115589289085248395478016025030025742265474782752554739587336495937172724472021251780013182398942239566639802008925017901544108174666035150445526769352094086523790519365685288738305740770615554927138369929010683312246584204875566169254982953696895769448403611760391879060788193436434970683805027354514960990914329778394456556517458586676158621910408392419089326679662162085342062399891154481704881071528052673671200263033731280916291424895114836620613414368451772995436731493800644778452808253489445968268567078229277457836329632476793692474835105711960509334080363562889590553999526319621735133013295333654863410610745031154994887095524115358591519578210023709894205194448471299120493925664706079711277021180598206740994250530058074973480231369872699539809714607789145147685341985578689826640257328948486467367388918589166748582033909125891784506803686428938279107945262995367841841044805054142278750661169089429363764365084768744123823134236577242696424504938880309426091101538219539742280633314092908834913778085758832601187034310266365945411176661680372726230879825335978892942433232203954904056262990683181463757913372527606950851163296751306943590224581937344143197387107751121499238118902738041135146979762184833179717623998847330844273681687829861619139536892781257704316296932121992944449065899302671217109376372725132964796438027598393172496080071236577258209152731034143992241907448722990038497013694067133632823873340329294146657966246786984269750699729464779880878943371953005201817869328539581910183522205551002170322865041880255308990294931122187021822211715743563974288189485869231962714128665107281059306617260699011704488631423678305789528554441599269636639931456683125076883137996451685004934208591293608305027244036930297284604378423888445693608078664745810128101987363339863487641342783847464871911688483105093560360302840673036510217346976278137527758989803362547057076713230661803678486333669937803832318014195122198200615371657304632832622378630974621723491277997127832887476806450266235429296005517986999734247189564544124878581721341077471647317853176866526650059383696029357491743589241896745731543364481592486593157068179487457373524617597981708515175841173373911241256553791785950729780922533729026486012439472367279706510100760668305048792506883462620067159626708424676120606951978611898925391127583867412561444940195703526291774930758013083677164252933963675979598858791971304808071193718564343121633189039508344753056479151588812527479045856165061243794926140059248197767458202680732844262567673135405173317732157998655128308194472100727025270138244791914511822677710236603209090240095264973647360221571793480488247386767655405054496316423470718491401068893597434915068177523217615290380514788086184716143574631715597492819863472253300961012548016548823038562181367175718969007086398340484412201179987602882100220270806366232013849659676067567546655610699796542553614333219989913060498877746951854864699529298058556868544309512187857856105947165817539443058575931428749086468809613956508006759260592472978043868582127683068168613873285695098399062983222332650057628207943356040836576762878429728233051514060861709397142823345894431127527601384178464964668337140020442618260374354822377415324335170758552946142419732821241024591423669894221885590293705886947177834650754041091879451473344767773325018788195090840619820024724490692301213133243068999289066227157884564941353743874191413822596568982538820054744260034090284524984817249657950247607686330131505150316349279805633610857173602433964685062301789645348589414682715384295939213105424574436801819832935176125451168807339989655308346767104101212550280958797304039001263578658955920067572536405901038518534068279668214313414595114230398861905722041612417780983812283453780995975042707673058526932112045466605655413862555996479939487732642099058035400463019686615664180014567596333171182122585172415102961568300441271999038749645178742377076850783517330800881347884840656712638414886477163304549943191531298401277350551050325552016626124762947791674611565505008507326242263100752512804611936719754107362408925942450750025513948188430605140832230976896513064151116208972589136870959609709299214811826794865905075727132309681317445944329915720045288845793949207030351471217355560467464595670948794441869572990334836538306216766839976794171963761568763534682574200356209477039681379030861732886766810312516934739919054313191972357544241256762319010707239310671192547150696035160618997461985279665455118524331744357070162223307647146478876359711385974286327015031955245901326109498327697726810561072532058103818297293828759233317518340746930253840930823824618442965557236761062953002581215009007952197488569206876334448623021999888612752997083139043358302775913264445478342694146789711017244532144924164425847608402022592246952981410620773218701052228803577199608710825487751877856926358905657417538151066999785264544828853262613105220140269989502319312473816599043451566702645396207201455053252811476772545911086128782202040340397897918522151608683590260851282339508802768199390298405949129235455797515044283570083730091658917723246835738129469665859680730322819061436963302896996646888029835118994412563916902273887673921946697233011692631377186494819963204755435537239286145315083055792608106476813598735896425958215273483887872395078143907876833138727584392877765239172020009215874143905291355820209426908307991711285169458938315218806550892498519260168735894930340437623319026777788932806150202259954611922429738976332467225250954336969828847745556045498413384747098861778211290872316646039642380961693243316436933311754825665153843076573483756350594439052734137901912662883165062336738551539993523470358474304266558963599950210329502230299214919126147896774202524075953618321173966664300826530783611546269349520561613290706161038420589877333209051530424519378757834609841140465775026871746236940390949461741415737506127291465047294297996251342291875989468494989576525077367572311947975083599694426052436284325560940473920710041933346789061536635544304371917792269700407252012161391845019815390920336100006562502062997831224102889104017131258710354862523555137868158165824778812085995901648459123781366793136544902344502068380832180950358455926200068105300604796253567512524330901516706334054728465042465418967058470938021823666425758692038922648151175628940409750597865592154059831972043890431822367241571491906083145489481559025562380466807639505758846168369299124924333784507157020392982533979313835576629622767782012200232917061436919504804499231652563311481861756776443467930481669511887773632636072334944048498598356248879353172382531375314413653396670428888791736182378018064212655056814030430621624413403020961028279660658060784070715908818758873174924132836852960487351757071505206365510810489659054966043883970348157324614280156966413731194144391597914761955852171470516753931295783590626838291373561335545857129095108932227628731982177206893350388801309925842574421933713062057852296815766583339310760060609814323214329001925553243195871503868453432772270510280424746186480271827085178374744508582496054006632561233995273754994661524064909780814314965909292937348780956041855484042777031311904750081692142759198927577248570678133639989926968532212513385061777918669533709607108841817003527315716468313123406063180975473694835340842716107225709078333753209684131708149764748136619957733725863197862609817759342916572396880909307812143746757197335854327158428626614463278492632492518807541603198218191078216758644562102704290607167865055066787700137153269540096003377892706291713641540323498669705639147636400986330271828826481211773113029106805984978649016981917196127311327011544782287951150435044121837871394723858243073379007698756903292702034915258225034255023981048226667996863871906262094728931083721911509287859528913725140122741413716058989590425034297409859924581278460961534356029660178975246916878789505297028580459199861805514673904270347702012693571852193419713816977449352796380771280598606318456755285435562250038398543682242643137113329267429912186772045157818301328424827631489842087819001912835204410837562557974846822910842731381386335491832281587689375514293895972332431350941855469759003614785291652815577545715050933076248642414644977814835335275075285006180751690011148190662861661862311656675452309516688077426924126352274077047789050387635036296643431397517442957591174662039355843424442796151290648150690618504066305706776612228069016673022801512455401839980744517244211295308634571892775008804103432927888868272652456654406442237966939537060093393807426226015788208137490647693833048570728302257520545248711598831443688932752025674508079218979495610530877540644075554754765859255791217684488511993871280536299002274316342494183184704412706963266586341508582983574389781705190309285818042127241281918137889922982988299544716679628661385822059546181500447843941784949040780495611400113537237054124483413788531125238599570133179358579094765595131430510479019918013766453582436391686308696408261596047887119992642884579556456577275014089078110517557841473252261277225773351740332341817237828021826697294100352948523276870477269238853139268900058470666466253568635068456393963942981491147932743429658702024096098214151808143353725625303574818840804707006135013541753831341179580366526166536488352172152912362230113801079205613336343575758261182017438365746854268243673089248448491550086517637632011660518121824746269377629879492359259767551441155417588814953010644873376294868610816805054068022778919937318268908695851915847316343058188485953663165317011435396756228017664357377068542667681163390105595324459228841430021998164742660460543675078664253097610004240363476671699167969643442342596083982865181374722419073191412580519055981051355193603631577176058266757695936336917733572578978135021430781038704757810236362934467377663868635483090187864850773053393679046081505119477225610560003280667516326620080655037536192637422829038640604679625283012982640922491017401306321016286794521253963393592848804958495168546302176954980908904429853471857031336656269421839427253449196415654499988228179473056503050382214436655952946297686071838475122241899787760013782661984271776624889544335512533163466714424223192888209150453300992338422316934780771229470318902069644182756529870059085609342310665805920483985983057048007907945374980686012673749195307476322120726166180787497721480840639546283256083744422074487460018511039756288495735304012134124024866965424262027002307674610947423006099611799764174503450899597431019782424110498742461517191017349759432761319989919048213975728850139151041320135810273395774951039741858766036322009247579460337772347174671221534604084280807431552487796114113752220055732281742200861056038798894971941044124226241985705879598291019981244728800949195133191959221721672771823649159433112942270307181570827816963303297852309166709676617848687627307272134029877021527252950151588511439913203986423936846765628833588977260761764214577990460576165625573883230240430111387743110698800294453731821298286857961299560517068569391713071965854921163549562133882710837257367454324114337725774094006417678175694883920473979408140831474793602596164033598914568221182998886611946504671023193522472728663953127127688214580178156831438893959830413798963048110013803975660090647677749051473970102803691216124832677595638353447350314401599307396382384915354417900029348975672712873692973059785360842752480188885691447653854181615819619930580733715312921743940557339046434923284204320703087952241460948976373197313656460271704291118248616877006473233844249617947695162914260901863433978367695274558698514827370963376991247169194098747645805391626190143154698746676222687112963596983299112498658949743777713338388248085459295362926313503195608803981429455247366066490242046203378999751142045834164408903798195467494246303272634845380455305830639286386537298769302763437197798646898368306755670284851336730042562297841663913875302670745186763414113005666969425161524428264583943069432450147319160676208723292020665793815576170624315778977393010664191232063492986221957057544413021470339148714234757705357256859735771789811156599673381103066795835247882492381716124495888785353326926385537930510528118396286172487505331426461205130572582192171861530001452274817574077133087507194698235390300226942940178542973420750582900841751680838089731438957898316048520292936581451643478677505173567964797825355910183786051274962800951225295686261962455389071939011562250571259321754370090285748644050031929711870003822165058939146417943416470544236525121935771699358902624130501930748767144754482662541789442388794817043869514085575260294438706247208724039989256846708475750803610448209839134238376137834364289158092319885482922373680806481013411035895751353494781755475162648192290969820094308660910134552501758152035398395777477874179499340528166784691736126564249689163088391606553826225771591923958686803655757249997008877712349870827661673820131339606639084939289872517325055298296364576498179197891317197675755680864282641792769392045176015185439896778286319057059114648874378278082484406235944717853019915184014861209534094533273261790294794425589463327975346732192223523677806705613117700045917238716542551177681498315850383711311521483810089361171193696290922268835127649369476465907945212932011820632466707781176073282400417387170729667668829165808843473331895879160020810924265794230549442818058269607307131036535278155262298487754553447542535066938428350424900663903287062642313047472959645548403045315733166860157410539094362617933431767611486477179526577101458414578367523810797331465936155100966154671738986795712787872434764668975771554739186975597025906612420350388589370102416337572259210327340055223286939581972065362712126455335655458084443566190513701589094227743604332514146649321812007268394668913040905124922659281846145487871312699464315101204688121194629439159073455046858206128802290153212743337371220963077458924073025902803537131193349668487209341440443481672284933275021563102496393387231345498615999047267642948300964463191656669927348692906085270881374840664241581834943443689546741397691207491587291062656615748473088794917484351883307630554139398484253893847442514761878652458137932217612329230688749872771058149924222798840153792007404618792747096300030211205442210281122484463895503990955319666028994107903296570245260163908753259761881493437952648178199404806561274411266514020583812866772102388160758271093655039290831067022337841770652016483274402631501872192269923242228126744960193246581929326008120629047986518705807969365006611142974511619818983456435216590615313593090946389330968024470057835581543762692294212590883986617308791437981510084887060820074494914687578018389432117861426980891916537254638218300548094986381385402341932287686141137901149881594582511051154242387804127274078309144819810484613852346783531233208235012921610273834018220565306255068608942319475183401200558448866037308983091419548543722699463827093990997098828853235906941064417035691972453185972762979252222806481550902833423057234490207397456994636131664184364163993326168496549775521852285688202694711554975276773455806527739395226716982295899855819806297066441881981351023822449586857073084095404832785749525600081067147492057198712428688046218508026797547540763827591258491684278884331582854235805229236820349008479750989452472705217351461469086237178251583065967245000332425661998744147588117020986279738482285330065353180826877319532190464463135571242909592721990078513182379646790964657852680000194845610279256883469473213029369834433638818335993243204242523177513734862835392835436118743816401027975452198578610161455501830519853288484719562244097376646541312986684061420861744644018841940595447483705245187775811857896857306802055908563644021789211365566475229606133727612146121091175361557808291401668112207636475576561977528455558627557835904201899902507549021970816180570143950757481772629819870640108649957606178236647084694096097620710975737230734623183137243161135990197153535737136318457118140583038918825908635608983616606816512112702958730120114556965488282471564801541780294358059728759596870215447845609315517939375852500070194559318206705847102420957003700864641864935940245166725566613654102674453315703948569916411100505047664535299857299981027867597231639039029318793685113721659257165177795373772616128635934497390528628152395143037797573145513576967129124606331884720611766698981452207402173225495323314841826838375486913059612167001301923794695834439739432076002170979127689045404868570912102958804420334595951696607940412808785782164563534883898968521065335926152582264929301270907745516106046766414116460640500564479750762932083255078897690418589021863663243015061846529028832460661257961654664484516565543810339582410386195045299402572516389725243993640946866185424790244250948166797730835872779674114913998835714949502336363440244482283965293680868330511827168423975906134924571020433050716217487933493958195084784046645151649804939169359507218353529272986255174408244806025221825026685068147313211321416416750874368970024223590500871838630250441277189653187129375388182740143658975641410108254124783162620680953230663810674817810981099638039158024777647345614029503135997242279362352937834796537955299716524811675247782277993558506458702330511301418830790392825782167697602530086234150790430541171541219978814646250739433858591098069636197831748054689021425268120275918460689197439243380469185139814653298047749055744840345749202116678723344679824961154704834967344644668334973455875316424970681212820530866096432091453632503765296193709338578602947663493957175762048625160362519569124160302811726029584932464245666644416580182929495390975987552330911246182288723460696133496930867805747071487711833413965647917100477644802392983404796834541552868839280269903276940801396452357823730331471778567396978444724144108759517173503308899668875395378826049390262291092110212564788823956910767505087309968348659797468917259748801161382224854693026996698252250781708887829882578897367417712083857165683185130374367781807881708170068511785729904297269296003079330786021691111168141599696239599787101240747064606497600367659652466993618349893163087022186789164303768525548669306114397247249213613636409709934673712218475606220858904052759694721810400714055274654802100932445232194931080236454591796661180293036109496373414108493582880949791919778309338466745660088671923260286343987973831322166413739483710970487790688445406536148018205669600423808424962688975828321724985746469648528508191956941859494137548888579522228155935221589693248072629927145051967895128245339656273089138099338328893683163764253816663165230827444342289970269061900313053123697468846570824410254946608486004261441867274877799018297969993648507286313285953772101154199825365459558879874334963777587486718440284509543210022032263929617618162677654487996121604088753045169690619682133243482706984153923314438125651327418716027440213255194871314343424331675148394233967910718703475002780134699889647392734338543470250941331862894025598697065440442669939043829992075661392830813758346642107742389210737795742856018198214047130783065845505580047204182589935530684336160077521312687742437808425208945231666084631645728533420772586554937113017190417963647393168371589632846445907581589570075351706996663893254949231324733998699624326622311932576941863177330851551497000563883599667688841637435951799177890008107471754377647772776894054713589857090234583994960327509431067125681288472599627035236827786885546499349432460176265598010300555671744190739407506154981730417424618948148122315564974495842731328753147570541649254872384639564268664729663664138393834676291641268463890304863190145466035221216652823046177919200823063191003590349982880428626629264122799677786595079389062551202015418016850109708320053725886448716246066244464994609782531311634551101098927430551222863464534391393381063029636101831169355946740272932653879133369683727295400795958098203825838176125397662412157321981928406489716490561707524703748870616069642400378891560764919966790643678075465910052486401859018401410540419343581539786714783684237393260947718520095114358828096402838700728553331188771561621394718729543100689362917457277905355767423930464575435470183785765785339257735974036500988580159592153973287576594483269223429563120502261500407813121107981736519955662454640260133028054444697171207285404174390147623188543814269557261519997633253869812814530034442054493439680764177849196954825695407296451926253179037607250886020085514017587618412101933351547537831169884625162499233499944435251385807329392122157769528861977476678781643547767451408111019629589909495946110179404850162304618961085303727346663915818238534158507655002594501420224214600059350000266821512177053672365400988262272732242070974098912903370457111102629784222690291337436641235510344866737975412129656499604995232216862466281249234716660695088414934896006039925171335372640285716118045333224362182435897316038041175453866101451787885272044977141446527055876738299232242237500763002485921122231421769039593291635436892605291474655072957307837221365341024236255515272086275238246182212868781579062060665530276123385510740619213999385227745264209940438208006511449618719421924313844951807085014219559127924200693816227536630519177131136381126415779137536987748566484793623682139321345691624887431262467122827859420024044475599350416898913074197850848843232052822738545641109957787400405563756612019913825985751761796394417480877583215602768867500759406026764772765258456884888459598038180895023912519737074345100575837851473995006196349746715764767867743304578923492405242994209092931616763750029201016601900682467492355599534449737609492967160278881849400614812272756087481602460644569548698663353110942773785786873891177743869961991010349588410165880372784404527927724175226684827659347095590584225772048727848054381794923999626824606044736840163760273419116417265039341712970889483730076166495825442688501879689677009910381976102826711504679539773528700582530075976960106781696995933913607568737923222164370228970901247618958342564153520207161413993974300172333027878094945000343101213476540336031604403317322076032990659460614917692634922457161403484460004309381187824895806303898230159386227297139617237300301647531434445825622524246881288478364865484926231495227018081103393310796710458035548964407485603878276215171552312383987723533812794538521097247661254082926394965935880849039032983631969128957118496380813807013132971830840763879420655101549355467690813479156866127469339831361606465314254508373807985258475450311517966778904518970432605332587617618161979686674705522527404217836943879343645803524941439609865158478158484542881878037050106305636055964800030361585127158064417051256985275848660799579289128768383493186142487304485137753123283531954546527984960845133064037878463696152597056545157264014386507554247908147726993252912154416982023519836489872077738134563661208577702739705831584233970097012057610472930917537218390592086288413587958407432527453316035431139416163427058465554241428476239970339313329727279298277835290150363357831194256057875719461337098248624194404047371828556525365858699228373576939282497597615516216518654663351859607230128443196567497603949525712261853886889970966084190388346445071411297330085271884258724632691447941151461140215427967156252553016785217666998207747854940865387959849448296550255913964576948988760448854055635627171443371069333490716191123204230556778005500953440258796133821654475450070569911040476226292796481202645388149354061588776146607743395350855717834108466601618102751111863060196349768369818275588633693630966548886544925815947969288300052416612168735493688831418130105442956553572105803882588895124569115774515277294021044929116964978477256184922940046816429684690029409510808061618666528780544987323615456121595315965134285076096860719315628931975730357419349886069569044613623599511559092624563245061673603462602865117573020526534992627959204604339415949712528272149928567562880751775418582650749243426761532917360775906199153500723813927120773939003390266330603341975820141872543649826273644780372495080225374163076242797412737342455050166640904661830554796945071622002258344376614223602154929545917430210820671169091372752343229066905596992639682451605872588456544968982459675829638289191362297282223929613312370095811074716335213555934771058256107788189271632691341104219941258770848435618044657101398930329380144008386895032863592749246772625947915396778624197935629819024974151084328420527251144446744062101417060573127795939838386600616477913393770131150717253654956258165668460088735629823386246146949696168451560211874770280703146816896768863782742698437883120134753124221122868785011908550174398075579178412854597809311130005791007669359057999844768671408555029615475273804556135252449814091564493795311201909703006002731734216313108275736979130901091811094102989713345542523403783231779929435823828389305651799243079169993087294719771664114849025020500463009704232011232982890111902104072876592005126003795868557102141714928011488877530712313714538135495418668084735192483701294276286762844566973640554541433416467440514058828529915206520300863965502781229887784722842309219798546420201446851966503437003538884242776102637791309618113943771323809747125088175962673405123132925707967366717817110846957935908309764296577346052830478086019735532796713256488630405325282632303725041545024078028327720215739676890442311382938199672884054003325748573521171150872196657626947455377244234989109196286852290734410144354313447766216103799505330664688007096005178481825409969460202184942513808132028003018186481837529468684972535029676062539548405308104474533423196213301943553096366955123901573224573530640825789003413074078520235559470232325750725852757983310378340084878173451557067754391048439017693301602850379949992201823623189406238840094355285913705311504748333395768191816086118787581199973501220977502525768261245545491442855452087188673769986624073227517198724921696086076088261539424121031105496380945402796405484121935630324675058494868518150084011159293286807616621580204662652024920220149945116091526939563476414523559281297321818548295260535958853286885905730876618046865663870027635683010232805192487666446709770348779920206308266674216742489832728057181019099084335928415777600908964191807459774938166975447989556329855332629087021015954097033128087776256146963262758734137945809418021440615682884708730022097489034655630483174108989266477189886853169163892227376437571019665130366729656077061480327359661644055587640195379218547802508995216580628526048940786016208260658417754592235692151400954940115822297110768566977172843174319979865348550826031740537739707656164153920094980070183606021115915750522995502760574597162269182635469879088988047854770693755481177305335175989304244102018627736471916020252914223744497778789090811225071166574428455006053111271085822782276142827787881798589920164282184775233081384125906000402512304132859154781324696111340384116008658361172457686508144399569997684899595801091036400288430199769898186945282982594341470377822095386855899996357731348968746004773745087178586316330947749299925268365095334430478336164508786700621630777233764693382745233046766674923005965549221696518077059362892951622940861330791260279970231800859616116911673881285243774554143090325559483661376090026890486977920679013477611129848309528402157822353702544752138054939902835605744253260568553338023394567995514821876901725666754985079539480820709040492147396696903264571305247912433616306884818490304377673767240878342536535504236324502606339203318373665641274556969276153209588858569808057304628308650487377091838247549985597297951998930955905369674171810579907267148586318646457096782511360296082058666741021401146759768605418448341245148752192381510424571860176734502153835052568032714095582318881796137431031071819477616946965164094418602419310074424213934870731284704802566257135891660274054177130400312091876226179480866451106173467252080750617839143876505656018231680012745325057060274632371826784821579262975844634090130759327546879168701126296155315687038540299356581042540867116300925729135784895552201043176121793903259843098071086897625643357346402641269323988130109124070081513601008801468741035572160993694225596358366541527922045793357215980365677965814134977631017423418153268875686348537304526191926115719059967565185302038036511583949127835757596760235711322154917272199274015456549999561714598699133926254243240658733403155434751913463511392506026177783403804951793644777137506317858239247925728769242212022879437213428953253060963136342465833636216545346961764625956587738851035535211808941788874203276957169825934174996573884962371835424988432439398785541827088540883988953609365341034683863476884426461440542870642135220645182151285007169191350619859930911572127467854750519865844684739163390608565757220095141398436880178528873277311199414212348350749216279347280337889059711110591682556139852136736665329435732173592913492390676229007236797180884150321884854682171392284884011627156945925926187543611472680918454996730491317578898376572097023019378541651745841323872887026071782372921394460184628998995283773187783659381817550504876461151914502051427432582616788745745874289491631686653101887701197926525956802533830686582997624905660898277750794683708602280355134036934366922314719345346487407328350500431073528259445092552878159874119062811389425517535811204296524576679836910201418026790181390431610786532418764127215287428038790521292404860335017541936211265448213636639692443280688782324677792484839768265033258877095909181347189589239737039366017729481267151270737038550949306491572397518604728007274085338758320801495707996696811330339498393236843165005335179077034077898175420325582051270181637786992731671823527651049826638570904875721156074667740965484989611078525554284622370017997152901770358162012061602679564777149643774435101598714139956165740129834185562871554750749483698905835043082810116575990894407181255918578728848709668544472254426663757862247403824428928895588283411686095525938297461390697293186251020252766270362243912010901533863286239240970684505427130145780887498798202209668027893084458201975990635781413736095862049324506829479808956586073545390051968618345656376411597779410973849894787485282749594552221418738889472552151275780261274385835677364678907096389754262715211379546002705823883371775651772949520676729252397501132942144330589762367908818661152446248366936940043486560386926250351387945517104720480744121949418737333301885632200878174626444743412636921256179798935441419578014962146956408244916496236174191023863050218231585935508741792192133903837036759309360349452286150369850782695250631794916046339773175962153398859913443139111378187284881806490808471399850597410294798467933928154132166207256753128945647006089491584923643775240744879793716500614067115730189262758791099604416435286320316672552874262334410439440900094196112517208305906454334309725521755293585120737517870866975241987455452236833854622135685263430477382803909229850627937103636933148937171327573759910976133207199959155407169953205863898626077721734834306222282999097493822472186714151606743954132567455831674330487652580374254428302882253339435539368525692974648181146598472383632275084324195667246951709887046950481990554200091168681262829394769434186731227615011347531188143344346029974041689440813333526320557625092625067831708396628021939177622649552040211136340324686200109633862220379202835981764747456003470439480677644630710054315244067463655698988758627346544442614499237854276237070674231771730336531321391933851277005868726188839017170460597995885969744142753281796505555403795328827524508614312340967164895941186855571143384628559896790979688568104604130162379380733262601468779503695380790673992257252869855561166308069416043434289783032208925946118504372287396340640291810078245480057337146064375023296638783452598691843045549016495904249658947163663822127766149660993648238794954834542257453297144131414707697584992902152558344291195853556596606790573960115444428830756156382743855197018428957396352778949274089047598268232978421989430213381947697866952380941882435904207861659624343338881922267487421807572585793143712491034160716974883879624960675611601975781612787133241142221574301441891530229515286078293494795230003589048108674440455991765138174838129269962308089230519446049127721782653596552359387700503041844376641638644689799246629293473300312642018008989973721253948574289779481891869960866045429016359466371063954017709077970135382090219426393281978991622737889123794640168931808783572463661790832649621725224078615634297518882974589541010318356307737170308988575316598779918978812943159886453477326111111983488693301294403443710387921845805939283459877491020583624790603901699922839489439195065585632522870605940646842863074761773579711443250112417528376567314801356946570670044466560658102354686342228024740642911153280968043986192380915208706761081098397552278604387495665473110174487389152454554480703153967373953891471384604951291827813509797720226826724820410449945744407572387505707064736011459455208160553420126239590594803084357126398559883732324269349913433809194103608566697302348150337335992536226564449285193789499979169718510619572733756637765219203082695415950510031001559442208260400372106932535128974686216275819059343313233882579926734720086910200755357303214854718647602851268293954433725101088329423164297499716694744728043548281952395507897267089611775879254170579521204184719917601598830718224159603195784494128920654945290013506535476962941106021014026835426478252274338634561828409624555314393181239909471061643630955640960711374012544543464439200617779702652510540946601775946544316891276775079142449957307635653292654006453000113411523745946935015811671080757821649666810672585174172569508285303268589709919942402226232691154108077355134939295381672532885703020342409152948708482741058425103046118364550837277650124335262514500079550570053937803293543465863721712805276352818694160266820269780653212643267565700215948790397372498984406343292058800849025770706380999030119330405219403381303214629694572577395658584226117421417148338939920288406673389166234188991551942103524070545682447040897105348391240841214347221143425849597190924445297881156333300464152406608715063363598818269231615226220724012205140814445721255423505098372966333449860076186949054520167054478689983030747517408828477706050971835041033291366397942764736287766804071928014291986823897391143666746190284501700969266166766546880478153192757168135170046424832447768642289843983618219964255038472096428942180972634446327343808361514911739807900069581449877943064276178841181499599573064281258549072983671865309820184837596682789839433355560883879432369585876422666828426871469808629479348160450980799607993420706853874761475029385978622475795719629137688450470075252549309156450088087965595303201384351713159943053505790680619452499954345397283063081116411761067762921299023943649973766570530899048867212590353495136393425566298054703173480413347710921702833234079397481683736538224174900480965026088030100017877294152119731080601529555651989840710933030504026928442092316079254800566298487115587889929585029903306828648352623703326899199879711017778050837697745607549631767013892159609963433881786555310924939268558904096168790164191734044374257978016261023558932528491296406065463753460804445507063712787845936053000862212343469528477373315363827067578142027092354842964351770731714402075115554190337998576372545585941638401067195860752211803723466085506685766692850976264657754316531882481092167163017387918700017231178425169445442174017252738749764368504521794501290307288040691049958973206340757990013688051746591616352203592667547588580458160181948501752200123362177914687014965587278401596426166468580061090262616160372620477205962220765100735049790335090887180151626309880541052428818805589085027014817469656178728559429693350733214070536135889646093751543100874918854569360397569506520978737243077725291054301650817805673275189094427047653775015575314676237486274197375915016062001956787888640116969839536869801873691661680569496231927703193066771400104906607348753827474916965596541897404135617671959729103864829987606538423808702508249462108736218772678983359087980042479170450296376925304445104346323172497962011603986362820527099526033819605385251914471809704582729586482692175980558898449867428205132218845420693224420575853997258025452170720577304040935762208500475755424697016883478736472925461720133812126817464326288954461728716497777983161952811797526739208495997831014084106185234521468651343037204039574337621866173305393299314790780297506669299184626943777331814289047215332219098852596484084742928870777081092891991371476497427678845333166427028104241908897933835359089253632858407818228498930774395124880793002353628360659971082526898107863717596813072484773119195075182782929340730298748943485338773768021718712982243157207241678267798330891576254767179459713628812782823509004057505532018734362083137305639579398522627814235755693010517319483848236680232834902946977736570029380802998829502747738293311433783534433635155349781338018709885508672748631992747803389293455583437943443540818866529904753407455686100039840485324645955158088576052246670997677407266424592014416826872035968152823484783723435255072585103938838826858353271392400677833143898900029706029765524716524681584488442646707375151238619021951724485357901095143477042397482976134892251924189988569023872710384123233233484192390778703047716943981134302499428715931182765634458769257001780594979473643503693405491282766419447230041229006932309312655783409020954054583891963020338979215459131114324877971602325199661613492583193008489189741832434777515037651613636704836246655771224971410265033905358652503902514286863074486995669519949222672501519848296473473010597843858127407210703111391202858253981031448206443030510262557575542637505649600157425136246454105142201615115297932550794265575751562595861205592316726934558177925477634485545666389963065929148844691963685714572148128357254394251393478427040662954407369417360919250165943231614870914598062970754071885219418147329153256405036505215038952411764997260975105183152843619611094413676973979075167867273585092434660568372998048160375071424437883482597563935514078505546737933301273477429340459968800849922579386634121699154131688050838602639786291433731679377951654207380514323668844778696441843023095518576543543432767878365807659073941444453223566332596085372403322952119088474665120837324739458077196606010260368561016114751230873303920768072550518400402026905667158308101306827646073837691327989341089678827239743254568656508179246939528223907093456794436493442908010215761691936499048735505737306282285446963571133727617409260145458817236464621013078187672465267524681829880683630549968281033056376728673652635666784185599576548398284397583083669017419047653933047558484171742073798804514152156072703883817224031990787580675419155555221713656288061764784351385595678381188758747600028437905753011589840603100510917765617582190514947158829548141872104802672902674842984788601422591316426920881237249469879179764750518722741623656014599781279647062875606525456391505506717143064036676654692067176954519509253048557748018364395755287786067880776191013578102124733917732080177217219483964068221708344013944003900629017429717253227031076162034279273052543933297593809344464219493275993769206002144177782009459845544705387646538122207437413288013720771552803241156226377103098346873080722464263588503809027341892448291988909698648179297894744290323499292005200329015195463661418201814874662924878959674649467399171755889962304421145120648190934085084747141063020150496909492526135883996367080529784360056510699021934969988228326900670258468914509447886853699681366400500542445050811746342405816724298938179145986724723174419813068696624114290976036919120099607279801718209605792703731212240047975878592195623286897297069933008401324695370198194644598128811723884431977762553377171721168442639994472226306264319580040601702656717961048862839424175997903439629868091073823088131466960040711367254093887771512273000682675462456993677312425108482323827303233194489718974756001767184772411864531118938828379314890478901615463857764791083299683290345385598275716498999425661287555853897746629195025625312240388578946453500556113589358786883492571000358825506856585613515355056820617576238359096219509655798282374378743983355193063582493225943538570866941813336887250744684050686468608237824485881189940075561063207396395562275583868576177818157860947183080311623950018183257885802633294456625963975153534664045842863826359341130332670814668437050016277355536317394755932753984097266630908036858225965231346441883519198728558650716171819041266156388343926074717863665648244157223527000504427189897777235215345675444197540119462664528719543972336536050208824100328608986561134684328731670841191082926292550320722545582262380990113066131917534484111053210714149441548844997896934872138534318660385815169977153447531573119729489676979355710873147804877118076633135399339951566116756625140530671309086169522553035533781759410565386935784739636133298075542972301007741985288073747617041811728783567112914002078657394749429065386419124049630856007185948280932378228638044695860627926556078305824205974429204933862997738596987573879327571783044625355452804916116205292509250321823680372726818586603769827747984758298904168125089032108650603332531759660174668841346928802909268456854076232743579890574755659124484072111419922654450957139194230291082035832366776112880319296012259708278308626814813532270322187485083340318269025003946145040002372247445125077236505658764699707094598543770652340122217883695797046498861299449158895937258202307320898539288801691258009783685508981068233376426292596587344287140413827967303988411147539741373945798006512436853558836584121679984045858827942858039539752460970803364164125162955137684703634419786567432938080101272518740029091319433042121915941066955418704455125888651715394741851600545899373987173379464675168478210583771244218144543979687461282405055765932713411369199511104653602290695673804780320590765347808995775413890573273156392533668485785133841061054547780241182683071769831128993381305169281352750118409583178811727134307020005195957320021510774123850596012830269254222691110794527367079943779668219801216946531103485775818030444600192758299382015734640389330046105134100043534044070513442360457199574146988848849881700595135307814941341325536025823151513657348905094064214862685583016930022061077011690762922256622603102402064158443944838074734373074557224754466654763508065484856698505270796138186421861844985318362905631271689670990772533682133277400831078892029073748763196655240677440122806524598414405852746891857737999648438793908953524971349685464468583631118943454743139255008245906420998747710966408782811291813126414733135507193365129763207134824050519332155369339323241194349765426792485095483063119111135263981870239718397472878028816575884380576154530693326733438271453358581539342884727302036487940780049272038805957699612501527422286028229710406656544777731821031176646159961833220254467970894317380332610769363431806581207639741783769127457919473461255170050557191225730866481322729861201129719595506975734301025884765576789289516865107532274762913210722372820851968144110448732522951640928459008748634481087415508454997249871088909204273754610797967948910068349987599622777587363805061468855683039591008040254563516211128773020329504794171581379600213685091662393854482901682989166974575899575702481626828713922320385389274817563269222575189398256752917731215429946266408743432245280242150660227639427062606662713169697500230370030988785283745854968651946024440672189310772515134426393167066187410274306246453463001187445256305438652014867895731862624343903011373175518752706442994633872868042557229179773769853236341373930984223836088553407655033818323231459364048909805837286640638637388072815346074758003445579537135903301249976947952237003026315574742692822088500263080896333316839915019286899907852872269111678924914496645733050787442605247742224384669552585014843067861759863272610344783195304532834976539790757885188733430502472541813624797660685550515245522086302134032697184427592783829164193037274208102005621783349474653707163547771413868532810963945149274157028678224082543394097891625471205511563357528710720841843927469702914608178992378383579292620940129683741975741984719895837320540792735749502769490997835887792051626572747087936504489332205933404874890552673053416417851695318058523500529065905439996223036192979893188434002029885949443207705580333067979620964694360753753845972120174932101364029114838513672515395065518000243482464946922986308844742929348340138946174017846002539203933227643375750107665683957166822995906994586410171960590395813387875355210758150954044079015619495498850776779582094036264644714867609403448433336064012048877637217749621365758271516107427780906006977604930647336592195683794367892638188907214342833275988632891363245027453106911869861479252603536657354771738803300395640047795802691356742442195513289578151379425834630171481871277294493817726513428792111714542952968116794303212112055914147088709731794056175768790587151241923066282066904773710164278774349024207478515783766088900937653703954846934030046676357390609501690793554962956556711778969852872660009388617534484704957441945013331734511750761391326147444732338435890618023981414691778211561515033127331926708473902396383056069257817157875102105006400483169403474075226896720301070668171160191904494707207692642166792417024647858492682033457851721683461984895704093639330741194559624101542756699705834601666880774433689245885112590219645734156834504244483296147576165475698325175377116378582716928303641212792572820034926464287378761272204184978849872871694844235082484185477546629529161520544207056505971133491793285963450712898644691557465680797202672276413834799083177239530070113256326733537662276460401019389175015061479836570349470915973253883372875021717611071479323517768316743628770929210722900315086514441113077028812251514962502662118807761447211075570076077286356443486840139388967441702585913438127126168678237899178422615504261989958281191814520984889872621834676079422977968076853216115068254175514510615356740713355125798476527817468825169306048064385632938484524391315519819007332181135685550528186273218519697955424858875625286680204974524594769935182657191280149580248018136299240232723695267688530706642204910932898043816927949385663997572260332975879652469740392031737852798674047340524952294916697633355510226070579384030843414727357037315771614243085522000491909287465420775288259057463887778276180736805951584861994511724802845274320856990954414486939451150417759641898043021106378580110670231315331854266390557945400564725283353494649726143938914048539847052294383240533287769530276737823377743791839813751945919843067404506988932321157395800887987554029443943062870448859285267621178526957053102587758261604721498432443656760548896112986371410310149717702511780028714132576313476104214157037262216063342118177903895149098305483612536517447112125087765208353955908276844884110224622125094341870305838981586770278779350034466863579033753853561392582636097392075851698405906344603757739938893663573277865313566204038257653183213616626224116392840124023479363179539632263734311668262241341933790997417677566632383565509700425007011654845551993856772795426008068475303411070435706436138269764859475537342680444356735450104808782103740404124248255643253837048055630655856375333812152271725807066114291620897844165548307733137748174471457874639206520089057930811865227557033808526095713001336808458132473637543500452824338886995602045661779175001180463427105121226231049329383186337607617317862711232730008345034377219463137028685717991899713510712837323523987054415761125943562088743965991711393034765368616514677947529926374118060848641062989296570436385271794780906749916608730103750807311368677413105794762724206763176575183461554834854990543857367588263964810962911050353478961307237581151034298873010403530631745453246762420982901496248685546613414878089906064822248356527543261589277803931194320612952852109368255349253327340083402293920064849045282137651224339259873165586138041929835683850562384822947861587022073511635188852439318622621413899169872755587054949046675307053902536020503787349299627664573682642983652205446244574723295815233733714625631077070791934147566532717660291970877174560039241855021237221238501922209719853011920713220033030606165356954012846783209834027137501704202444586473246084002353752110154969014665101405378817781660803117805217876267204649488407994666095479719415819450511784636633888790774349831838091695683472411296642041913099595187849110114321798917409204444499804098931530841899846188290952769530193917221360336141644119250571515388237144774669871968185177038517644562057777435286482098195883188706389161925920380846323621334157871462629145564976100829763897135509969884174718092210670640048002203315486316327450582326741507279175806886068815759115111995912113497004436457203938182285441007436241979510700557346652115488508718710741771076230148368642510375098531242925501564135828554995784742915900513891826130364852013031926069685138698516227118392827305768167623987974523460932704925587537101415235014310386931555796409894572242135793264871223575699451423289152831164075769908108836720497967936301694641961139275233968394644477899590485220164687023119617313481995993699052226891076314726701296778103216397225115492021088788552973952282250281206773133822401126534545570871319215945184850618986135271703678792603686010348545869598188881835458475104774085406617725094201630783244940035252081544138266188197324817398168230630749543476471919189912856673936347278478257462857186321356876066410412932101288914298462645875361352796026904187183165022150391284653015270454131791713995381149326058880256310761627154110667284220041143168207455290359317936102903237632432140723589604058188714075934646416234750264811653792894635114808419861082224527698106861383563739328393831338768592187777501034855939641689440023393391356207321940122364310853036647120363305730591213717191466351904420575522989686537036388666888714372970109857981834914873925613277849392597605394962348757717676452214098917736838884284413874421162705018626687162594697858072975454241729989465341766218271325426720081289464607806842026726159321566350575128852570997229677119805303427887494032551153233538305178710551364548539840898035079386822206586873122179422714321533199777112193369317158842235496183019019460232830634513246975903511418304784660364152778949971756517675048712311483303575483474271233047003906183542608133887096098159639820922576662010013094368608979266629360397532154847032156332437102405541654449183648619889316287612601484222246254931427406068161475933883931003069972468611827162291270868996901227758177795478348007172424681105289294185598334943264935783451696127596884775701293867177626267208934418240432615841582495384833819262453417970190584480398359536864235535743444612166571963463472596617549513501333221659824553314019755960757481667962777563028757816102540295175515525435254508597614385051033588636057622259298245991510336189124991032950731985739578032401254333980766254495740956691659462788032205625360430605322408688091364909359923369360645668826814863837758185099782259502351926490820824270451741803406106087004629530899025099947278472443055336072326197418757451856806056435435431355706238401223723056941211397088678475558354210164152680330402708813146145683121021528225018354646888179626657937496552311856870275974839120729500030009379598587399616427536403690093719320885928716821347826178525767936487558110631407321273676947563231965084939284188719172171717721304202740245238952864687079977201008322224175837120940014503707616859085917210917879543731333799690879782688216169354707577351443307129666036434049335970096874681407644360407036202013563619543868160042102239703206260534058111428448247033249238994430186103538217765097085646908655172947937588284812178563392725749358589108129881693799879286332440902598779405687013778575499053831693452038402541473612913383952075016799732969129737110215599296162512282887166085758115733522557745546882323062775464653790639934348790152951312950977966323530556178150500411775913029050001372125085367543776294395810613733950875537390450549643908081147761045698980451415069566507165709108170982047175107610715292082058811229823201381723631177904350072378844438500874131132792905964514218374744198139944494846597967832955388340166711342181097573927165934296358003284883738852505512287875937950043371901248086376070573075063262907221248408233714679577645123945323778567220990054638762892070409249863146080813123977663014742620527552169065082033855281056752722444992035718475994981093151259287623343974125196720485513591728145400866989820207635871032629137310016952823702206044804333716244923254238993353014185184561671544743509244753836005184794238202087173479515499379969914232607642650415208241637822178073977449900840273847950943910391222780921563438728311836264290138751768769004734465195797497082861008796524126421143390400011165353343707419872276762130130004755907840209758560326357243552406944556762738009981909131491024305631944748712107545763135860136463938497817760963189410163511242732912736435465719179825676536162775478256950117723442339219029228845701379325310694193886521466320369811975502256486372721434005151933309308878344729977734131906903743704173461496275018337880929332410071634482491992159142370145256395510800283980476453722269110510623491339478058536990259370215070986120309426526139320468155069387402680729920741126658148611228324702223432452257716088835122801406038609587248236117527497288482057748249232415397351144927243050905892226806458686574709161449123122135648537543637389357069210138823490233110502150610251579484163077879992872228041291745585320013941600967430963167161557156835873479339214675522025266062022462161812083018984577262830224311308228094215660838366031209557364393818637909166781999000039961724198438527505135992010219328926672972918823514998716012447460007790896003159243289327749701268873757462735172869248736666943409000270542670482154123954204248314507996521601487062156993166224559131214374918673834086985028472647698897913779740022090458336622993383535532037861805009088165936940064469855492204057024259065136393213602341975145409698275538159256095805034937010085439584111298627862629758821937210416317842726940346923513358277367310564949113829963764199743165543939355215925255488275305043744854392617602625302685277646853297336397413712680938268052714100671683565208401162285811790463971598841797338044093951469621730657735881407901796057534097388573601369095343643527504870623467472166938385695106644930671232854898105222764536591228548949570814772041520332298357019241243757268434408885483385596015392263574369462745164071158110075618768139864582050082414352314383761005581305580536249245445505115738246937251018913749495185878777793054861019815021890918737745938805809099371400381961301062263592238118539992049393661720978560600323694732474026608869865881373549533261084594459792058010610725793114792411861377291174125918802539940126248057898981768696838118917284883332917974757689846097816156971174353010240845670553066835419901434210202206327346165627083612755575255883044064408422716070544147642166527643753679088003860028888949519628077059228238296628832902786339528108703218798399364821691813390908471449374301108293771137840195762323792809787605418150568393553760828691041686713140858832623993725777614608329741906104335507996444175579436038269250971543100123565832194154779574283697918631525861906295922829444224744619757016593868745400718238913400766405816923194619706800262580634038563962483404179000781606399557675248820177627797380332798622380602288499660943122670875751311241649584115712017446910453249841154022746256910979331283622871755613294446373818433645515646736208810779850157366088498909105603820012878405977889161540785501942350544244566608210965856869896209289009784174964069849864510984807014338756842893556195098051268233245338831443675621300061715517592981609522453838529077977734018293304066769994115468675825478504444731787283358488463458136677761791829029832102559846195325523247254128388989823131017394655836073196490176120754044750746070780085213819407916566559508957474399775230844383560102978760925047967183611278564497378629680902721941758635977960137045844445583047194264586856813501352881229566711618065651297353651536756209031668850668451445321816271188750264095252999572409734599570553481738407904125203492911754464934276440509748770620506849025376710032410851685079563423836650978166180430331232083221936807637009778806581816978138245001089875525763361797563957722350161908841794613761555403289258913554452121239480954552913637097052958337740996086435763857199915924192291149441812449287927507334344197548950476178248569017860638894636400231738035854340111538175944941270388060540609859382875173638739962822225448012684543403726293798477373586579973328284802446439396974042486287836548653364285025871852428162698151721055939600274013463432285012636408581164049313105727206686465601343227522759870656371109418012254127095381541377336538203870332475373807455307544533192843391359426017498144403882148795410790544123834988619143303903440241098342939025983793837279694581394383794656697113031582790202172197808614556286330755118049836492335077286366525505322829643287875433247301604255323514981655085388608139925614467585922420650033334295008398641432145206670603500532522669031180321525321803659387506471345724498884105228432272559651095626718712162416018779010818291209747263815653903794073009208074039743985685109764193772899795337476146717463305375982659590128253381927254053023494173513523889637120382142255605777653679417929165850545517626192390639223262462021683866945724127416433012585250277764346521143711968226564467378024144812688649953779896887983689787015134012923859029865901225505062311068112283219956873981249434622764165633540494039090548541161816029836158432719882230682964396232087517966805523624352346343147525713156354542484742814504037369858849819812898400497662247573903170182871760694563733710064105452096622140649359226189200866868989066124188246570881925570604871141749465369590988158870239404136943432163026046555281479404268081844127378022190377236592631391734937069811096960374922282268094732586013081983955372892685183881763906572643587931739477268600175732289856811367952633997735688542561896949542001827956021085131811440531077159612541289232729274797999604638131312605998182155677419171944613122214901954205970276411276713591116701832065234889855260940446331966635743174832786296045087012326767613569002017025954553233742309925113710704199682070215264749492533678745022468407236130220185393927633653596855489109598634956546309644433864245957787985659637240691777872986677696703166313099141321418266866552299209028829299325575847828139368353492465778230247450795063142553987302645109175289285033130648296818056776624561756600606721581753936263688912206050819260919091958750777400178994718924768972825983082051206342076383023218059771841189157045955064755701393170144045936072959074741080572111012745735132702005238580151348368746277876860205338235807586767856923229465884353904067026975423261898228734465921439320549015781216125723220211074700866900092139946040347882944851109861626136901284442396323203717140382693620059381208152603537650379044711603536258604044204769593736688337329148260733930383898248885712071500515848319465232781651960877471957208192599830529711202308695614544524180095399079338596706172689016190908662812523641385967021947029593792824617336437954006311312584352915532211003227030047705048372067117380943836135744128483269213672074709245257739713073336506611534010471351598009293263078820057453637662505245795574427489922324015003565323734598010146743257400471504991371493312877236395351072688590250939258860710702555611483635465032394278369492389971583600280096098888549506478479349826234205476816519196889021982134171051962590853496726417920584159403934141912194147483778836774361697556026576149245228009790084664065092388190969687376652756957634052452325428501894742875604847716562915710177042409470674500339824089583085526433500940897191217201451072100189940637088137927050280839642678581979513273835963884234426547826789165314907750449827324776039162761013727787322307627461020874673079877843957634224604703979823646871462248687663016603964521173675803586849307549256834856683581023899967777663207579526107057578076309681967506034425271582913590684253796019620536372155295818050514576788381050815474596156968023291940664418162624140594862820865954942119968078307691832171712070900160382738948465412399317247399061688938343033501207654309820201900568358239138959577772769518493752651213529667998507860038350032277941470460498247249645096073994060082458651168635620613658904100736250233332080804245215354378884119775214753658502108966200693007141912945804413610338325326887779451907011481236204301344737981921657471644187215367600632751161554640215514647004244179229187274923642251478313034633465558999506087384618133106231992263830999773390258604843945655338873892021782389271019809497434844439394949483982730740619389797912388433616794395411564798398085042333644676615208132623448066920930556458875211149119727118229416077405746328117656569529208238840749412669350804146758567530896173015981483953472282438353168789995850062678459849792986236912122649119442657948567456055143583213314544667013122540009461184496059322921691534430648874830674556512139124749281270424313598854734510450834811312947392558232779397523708890337020609647391531773548458229879970992267187781474067820585661170910021159630003469341152293449542192062790132134451672017431964098173161488693783491286718278503968492891828096295475736508223619766804189974693646047482619852660631700804957282519850210266764074168583987353659317207091116640161391743160615049819118074812558279832194094909726887491109038665113557096227205394014655186796295705033145499108535921171395702195841629941431363872655413039209022565570631547904906199263844298272806579132312726944430021389440435320436229291689245072072210468124814502651605256835224106584026712332908085628653386769783257048180099054990609885974373689283580826217265629681245955945620215017392713945803351741359081084597928445830974105224204270793348026646503534620679116085807121593328711340564134209114643832852865157962634761053473598220651963845000122488816105346744636525540678087009573496035952011566022083613884779322240333398437565263507301372122230791142352984797109884199191962397494967321043256526883143603861045538667658220145929305511022575780480718803951833114168970608737432933664478737322179324560257989024114272468034435471941660606391759529292917982424757065081343733291203540827500723101533385731794722401684145557977642617587679911478745195666571865194392586244100936165637148678659449620759655946652739251015999138225706115912015487153766161435767913954218218989640986104549649097168365526995233131649868043833722176854573026989128788077655436288989901378270978324819130601348105879429363958739442543305981821992237820771078107861255547307410189992152087107472135820503007734294228607377393994870933339168669834437933826785596502063525365373286670815154240563434975392879429496769736100530463618083018610441710622621348398566926857824618784032060564646630135207777666385311136991549914191665255130765943708448894631245284117827530287066256071679183016671096302685313933268681432620688556669245140310134958071715402970217807788463268202828022509364618975092389695083880350898232621672606474097767321330489120470096537807593369699539567320825421145487081555343668621194752281257077257085265050635710826163151309467459142387478606207069017957943937604148297183660699754308530235635652146188151199607478391313662032353728371435433335966109303833931058346405620514473521990748248136611158299992337898087563600014764396029612924727385306575078592957664692688989430914301545479202620247806864341431352371690852220298019474839316981756644341171269608845109972303945724686043113215204213815317242360297962537996787196759857933026572153524087537680156770819443145745682685003541279414979859688239616323739309424025058939438813550475098796743331185526317210098709467838185811249593639352972596331045941595445086923828592918029685357182717552785957415621380955686542159009749183906864463702490021254023249153933128404236126035002961673432998533114027805967273177285677391063819565032691179720280171310085515301535570987512987317794535458441285909352450252593647581439910972496382681211163774592005966566011297190278853438913206372333354886365910461640102230487544680888131160261220968127344503107662232599235922789169049401085517883545030452592648715711308053874487725575587221075209082007743899204177373392537070889871003080864763659996821657233322841994958826191710156938708485683192980641881759124763945871814565430490034239473045507498627351514341665071239393196327637194043612066572311495779798451014468313531861650634919149753968986413212445499572535306554018582248836096618930419334413027836036926741918338322414867387334459718829254939997960008186950797461535300102014361691112084787405311982511351117972965017902104455995860805777189822839938663533309324260245015768644834428194172891018309156696043372520237356097840655762896467625951107518050930392129551558737540783590230060573784291708272878857175875128365555082008449776626345019752034478236995318748174530695703073975415104850861832288141606791184391829150282608417811089830294915999521465811850202012722836011817424852863661220375695481663853011285082067061818452251575978007435640361483104773565929269620177656443626008213663516713423807691358087814812439343151469916843583578705169357804553995701958542260767543212881759866290161624131269109804993968558569321343733736533162553219980351337665991615402972155529401053015216968544865602728170736652447044853033253244503767967222762319394637847060300711123502218420618543387867235161026929015031607331507243439340039503784754331472201792720255050064423600613780240268466510534965264217143400521410671729767493397371756004715829214427910629149677746950957264213094623661986132634975425373334115500153146438203508425183241479555608511203294659118388674620063803693220728981531860080166602283014054731160012515171405761493997348015365509413164425737640864835411399515258093277454792718048570317589480135794745268308435616819361701025717017489117400753421987749969337259552307712602555266359691048464033178830258289340840497725295703985268225602244914564766887383923270281887465471679101005333834836968508993871481365347618596105323037573535004548756635227137630885514891067645707180940348938512091980066684736292694182626839056053740756410513009290324356335582385290121791783569221582066777627352705911594008177259359785409662416457145065382361551747117948692870500767262692850111004369011150660025297368494354708631482998041796823332935213146176526155020693133107430784669992710824138213044511065555898679122371101238587248115693739000117054578443237594704590863995713493828878570942910324946841182018459234962895229866298396097775345937970271112686658547759022031183785062212558477360509373699369128895896590934191086433838498769242188168339072527218475868068659783411875864490442523390067078615791415598329858122312608889619966083229128279120909927055701334097100627539112269795447837284652912972442710108416412675216409518404086703279987891204866226118912396868679089715352815575362590789193449010737551099175935115054961377015657762040860769418750699518970589083302946608926283708511389941843668345146111977863701712289444351185655154704028174778578805790028192548931590499641910509856686937149939514623400366064226324891468382684583130592425016913303863921920682402974753661869561254317084748610194649681263585560176854471236111616149753608753649752530206180733309553957925309171227661800131772387162445275528494345720008369544179394952233619419301674121433167507151373524680325069268529364977375161418534149385122274151745913561394473682653001474428947335117353814458586845878974299756423884834024942053902105402081420887362513310754718250718180953484784896342361505199094157134625207644235303704783453462680713629947466775267913625132292825922643312555074460830435318987520868481415117575815936431104433723967857273132455887849370019765961057187778157961985546434246418210957872539923153481388942774248063903563597102151431479373663388848567904128221052648148766340611823216538820597891031954806027347699758874580997055132808086122554472761635354385925329788695224470108554808671993616672916672076406763109014167394479483010430577338331855562726832698933100538616456043724653575228772034665815692882694443242419166808615712906609755600484579329705460652547798888745002835661075631108840705365835900626922602458903054270992082952679794954245531106815513863746246697101253117519195000388116764724901555669325670473940594733317957986617705986484286734792730283422636414758333285481042494352532204400427159727599139939682553930396015629029791359891463504377584169543752419621221155499683194456730417554606565936502336075124655950635554295448755860944062567599044357905551451242166423818208362837655715880780009548108953776359790005061610406245325340418665715205660232612095238214782058302495436993029881636229949107757364378138255876271714629253125786607887801178420657153604341672770728859667358589278951693130128225650904370053691252638766596977279370110197110180849795500106399759637705296335126023274006726479646830783370190954206416282466830068766352440648918280801819662405570129746778898359277180803164525802584859779871750872741653527254763955426411646649276787572901174629086070042105182386202675327767353279003216365046858422615717847827906817416989811755987184905275061074174430827591380146125927751718516678454513265782002466271283193072059329997375672762050858743028484365137380298096946630071326078039245267189216661334002452681593587801242040568890827801742383950574846084244290929783261097448706444128163507076104423219382832391032204167335524658004997436248417947851567678355407440571934897320971640558461388851172172002044978853854036010734959118051675386569706494609124723839971701757374204596946167190702216149024865563823872963628143457852370356000252843183789938716456450477575189167620049311878638644849475293105111434845238920830242268901665993645746929770843937791154551682133814534184636921198807842359098423539388632522229481655295053654552225708024937928600994045372384114196804136150280661087628494548978094703996678534975076094113165064553655667290116530294749057601003183279706890542510756998186103592765466703926573232170623416928757073560619461889589044833494544345425646638866801074398268261969670851261359492164817562183001478107938491248393180647224517810267494428856776904778193034535079068926900753480209652179366737588115386079646071314684733368319134453982493481291355251033931103131511255402391299140443287805477684066214545596327190688708319799060657990830976301171890012986604283126226849518106871056195491771111446762677334842889320112497863175549601380636528196513513528915319299639674112903077879150036049062191309943484580780383694328936065860200637572761028903867832903924582777860954715494528344276347119051110965760112956003556310717543424006019309660825972623236299288355725664712603355103678096213267444142911782817007363443821275359838252643589601784005528256651642235875940216062342363077308188750949591027064104957195810125647696796345112347195248959759211215999569033344815622642044893995399505847721106777549022924262000220777596427853263668079611294265118826279229010786895543790772933534705664927215454020434090363434461704208661811213786174364582147178753298334865538356491608002793731053151321163184827521284032368306705918706908704987374784648352355260991750374681250689612980251384821763899969518300052976559415919371843147596354574298913117810335627692834896245834261861747430349945484780781384498948800766617217195619260669656472908528345498921708316445450291169369184239533463179949347818706975331701967660898061273821325320819886385976688561080296454872595751273235684507945077078593756745319197209218047555813241784207196691532279249468869703183137581027165247521706317997904307099393901736415193493308175753577672059234846133684661946543626789135413681685894156032523367135276361226747495703052505981244727192884789220364909875630258009419666376073291674278026535858651034960505393141167690148902336428409779901513411513928062226770285897508731614427991993166100963256347554216234070304823313076473859462045922903212867171458496713380718657087482499564535874855424249590513243187051803665288249129855315174210192616516452693106471273251980505159295593652465772408024218551754501086916392418613574898436136201567710246863624020365569966306569291785744883362161496288952088417155903625456594979253103508023150678158793266950730858086048149999492755666946278537967773151436194122293307755309939155605889691758884364062263923282074785221349379458862276770489544987610894200782056523905168595976814697314167632947353877099561936549468223582334404164435994148848465714193091928088036963193847865335557694399868990715710327769462999943072487610643718368088464623707173651826289171913022414100644380851588646035734992680055316287121650861882134114719059822093017862493195582200886478729094163686826223693525844484943187844801289740211893746629321468582622108272067674280740595049368128795954806996811380895577155033920577845385182216443879482118113253011836342194099534636037535940002333685408508050578004095251354291815684606962113314961562102885483297389510362122370943917915190912586167927334639874474012377285813027341396743296683171696259799985920557362852764143282248802800396618787677412554557595024183698852095436244074202580521938987260861635005993545290782395629399196118562640949067215439173674001600276549022439149793722809304268532421386544796656068829790965584605286362849765920470992385701820294168833326773414193352964997698571635415342701782352445808678547183221255619319353833391880390951196404999336469802076714135258063295578758057625559357092104405783933147209647434203751917843183889940195278062667428231279182229103804114450853058736450925023167589536278583306187765621277265187332097921308692788643983536256156004457003881682064628949010848546093181325221531310832773537291764794060871050919053046284557930065489474554430642177845153616080712010429793892493662398699548608647238897886427923925425323515096604788182956543639140209485666584738840209592004524614583870162841350665016058912755797547304301386220178102043038246644034369821195560505725697047829001676870182463778983249191929355480691176364950566367036183760506584539562211358871548908791942221738000595713131187672967271237709015159445453929181420630714877194158288454449127833403618190328869559835362156984541968793057840448527897096949833822603541544025186046672149259919250134555695380511863792617660080709271743644369773420215915894114237298492548513262895376679094373660727728979923047192851585314266888960298736915221501933937894999844559157071317459211688692071010229628524144796262696588478171385140321860039018680372985452793189996172139186988998004047732909669123744665795087842662449610685147057866210385181696993068798355227004982375787898467577196875826745201806496464732248521413281513456845826213882636125726741431108718621093525850252502792338300931242551137390071819719649468978981318921902943138440173375395460407750655774624829699510153656687766934420471812637947283559483263005794795190703635883620118210157992696672454950613368814240731697958296915331850657070628092914828990700229793304268474929502485556923198631531739806552699364525795278546595361717469016543520928902499451098245927707821181102908965602225360034776056612488063199069037273300031894488286920697617796471425021951981574571966709480792597576105031137846554758628422295617527380231347767503880573077566180214161328581547033305614994344058449614161413442566455710090620424495358708182982143347273126369825100078972449922572276525004925449724221323839040465203124908694165809898097987634749735879388408401581823174246664424387927242639741552093942963581481790492567656818196217324160501248145565815954517144555131996121542628040565763902245367204940632966393030573445365598102538428888702699578434650208365326640455468170719672337882489202893052286281040385159110544400616284582162544034022375551143151464384400097007587478375418213880975234855923389947836577985267060025087253956941980807551688779659509928502395919580738659665254822648596994794920646864179117595557871117884220208087956805917777852233275461591985222784083952913031293808227627761061837245079790296493369143077512741075495787886148184210781258629214221409448448166959871249335566467507144720997926826988532693198570888889838730231218143920658601988620652798885050086204681422747708290876194048490117230870704454153196742349664411033220564588512606173346762084330902209187877272904352799079743748734835424332158899758631350389834489465754458798307216922415158410880100105010912268284584806536975787012314973198799876543165015649871825415714053675595192384245811668496653569574598864158757093469849680981168799762330746640022481061123971814718433659879207360385031370398278372439254877578249552405720433980506112429556635711921764744312722794199946421526425389941566651429022490373539336099693006848515851788833495788548273533977504231509789406929793118125367152083660890691920406516669222544430100807889389918205098296452036581586480163115556958622806062728539694196275344109768909530181649256033824542187591168431501081801553673621569140427444827145701149255463333344478916937245792050800748998711193734638260777669626536268986796737700463543983037635231069352895822715998976879901517018729500417908135657447042888726335252761723581646955305107740879388600342326568240635112144770686956431908089184180640478807099178209330380636551015912788266726141107049839478666088519958043722460782834590071376504111437431715313292933693614642729148346244474923243226678626627163816210134661045613256683263416975536507960094361683154006291225884031805070070015999538248815218479075534737640657202185377283878120396906901393485671339216652225021844127514726040747203523435047298102074044236912762094132734478493336361596208769223777110826118448839077408933884109413655184019340502385858660594559608674107988837630813853364684199765083293741779117616214308391596274418501763476197235038155065095344698769138406360343458439461457810486070632192064496988258919913777116827979597783013216078406821074101870481083561384117250758529639187163640406067454009988118141830128733618852152340470070356934861197086402043005543012636529618846881763409004251405574699544655350429728229438655214581323314087655808623606376031798392421546360223058123348582986878183723466005876093251043889108423803332994503226167518729097828823628795342935558049567657131685449350077879596617777285842817873027782919613395046697481712551031166015768358175292229853184552416223844872835843552706379670152341524424215603067351556509810493819101211066423423582692736879134230329608336457862271608676468698716426488979836087475854603704361962809819544467440391060426672333523987845823857799157779139414588333083257895108812976625575018526083730236246685213687453851456645404750974199286076963589425927823864949563607276300469479297780401789035164479094431081327722927483615491678470264783432107391719798415307233506771072011632521921313188302806855621023834803623574943600236166050660578513508394635872366538056450722384060419315059479660005990048655868975365514198036272772771259367736850119112229581068662351408701236690655929424400505527988483256781883680212441878671625839326100804346820309934512531831451067264396460519729986733515178106672225963270740960781063228547290522438368434677507442049778811592131279434784288009609322956953514866397662654658964711272982414024114153924546857030882622269625624691916251975687023576243310587646666075383866737377174912108102958390772356086735790560757743933493507116480809316087832484629111103834329370866479671172807221032866149660171114225477425298230370383660809604630852001627672619482059457745791435910567030982876405800461434003067027701041898495690009937096461295163274407840536797121118974647757503451503183940678281239480326030834632140746967324257515498292515167960022853891336284039391094054216911854474473773879019440038491458833336098178604911759908089069542609982599760296623877282414717198763606396716666165407945190257417062780309909412651466578828527375389930210697178485346322755080826328956385228481340560930734248114948980766426186193317679152962586184219333963242239289031187986472876745857158054661051784738003450036308119112471287750620831625739509574606714403528510787404266133493617815640221062386325546401389001517162375943984194943939263530209453395681526770717742387587769999585403418681196659619370238229140051634364854310487956491382254411255723375682283533537998257002084080065566392470283732547798399797090322769657287330270071614524367558225978371998097064606534419509981110510337011611435068940032251619005076769449622143786565987984326053972182860838775466620289770256302446155710202950639168989567245039751622922071284303220658361392569334588337780082030918073902740594441355476457812362889127886545030157878972381337154428197247162051766154566706956455914502947755095863082774940639595255777285119782550503671401642616018929137485720859431574118743111207553837855119835426502966158277646160676660460407820689383580659555456557331380646293370790790918949165967655473829037916532204019977474693033397308823621466157523779539779912822039432706701166566271244889479430849746397411539841474145939523797797462091581836582389678654338582096234941005784734195252154114925906494194249697890994176349507189464993162298260554359339777473950967031995158006327258980880085261748544409160594507465919155850600824857976895924158909327937553807079915949582903482404859827168645468199782579183592209476626842899157243258595431134481096322189639941635654023614198913764200029237006540135088128595593335659129950472354661016608483478678156946641356062433760614384702895104032035882269687055757799012154321972288453794427336710200041638622042682720637511609880624647161684987118433294879577782669961358411437053511549708912948250642572543445502203234919758255380961883173914873308148107492825163648765890812539770163345530764171519167604523661892132034073524566714548380781571628779195390005226967533162728613604936697323347151498167951799506727459589639536592844207805289173139564612712798016100187966685244047937019380370757676195582186794644280171827415969414645012982015240598222639280506826839852295743056223852938399885902818227295422956141246049988451468880022773896629132349204511641828684132371872168936280465679562108307103794205201659510826261893823020115569244173999441611762247053450288316109824482319870530683910804842637600455097131071122500101753721756995687583261119323489366802417388608482506302213693293017234795095865551339186317337279662156561668362092223816590583764330455199268832111798956869089082158787782141968109070419916593087307431447860979204345773603622452581985120515383374554475905517435580778031297297979858262758082719291918967343093371909867264906605177773502782086728288287620248273387603950735498573496740488436948744105392280223577464901282298555127334459954491089364726292295952577934899045955399888072327838204671732003643426423518549488292096332915576607649060017671762530975129674899906161219363170414095390469369507940325759733268074144695100988114805970430683935501315581339702371468277367381350293648521164786839550858095350661346052693975765631542546898515394284475656975324267647258319332810697694386620599138142798723200713149833609295460291490828730605157410625486741253529702591895609440288696657130273983599125853339016286013204923468570179782037826782099473479937472359683404998829123731199102689981637842704869574147358807317073996778589993735911232069474604564038219160101500371549751240345743977479596524882194218671113173699017237091988980123987065079398258759903314120529139734884993739219889977215921574534912076215565780556582891481875370972358446992531924390775480176283559557270444071615320108425014651766081265453124755933720658832339497054076307764128488326658036206050486128224676652396875370218315809171754639852267530899884316572764162118439932932743654786865902033151089016237648979777352413853302995798260219952719239679225525534978231886132522320807907043426841929447346926913856044375540085367613690284660279698060725846294536277267311792278473228393212566085721167845803537335711078339881103192111571077462017199962982232663766096900519488860596535665803990994840635223063775801619654024098554714236999681048469303006234268027990970424953658244260483162787402458698503618714924879858712705299306732711817960910687986864254873746585686849095643110506040877325332650541098535368582953724020909616975937117631098269602120040282651130649655659381316418277343539590906570686555999988318429929178849659966305651723874742978182192362232396839977673284033742424589528583176730489979963768655794385263275005270919894792496553586441344085890361358251914309158843696523511442407700365433113601345056059511935455304625526805759271061510079988788622218558731754247044695982374495135032698528074312082482989601373843114757489787661195985227747646356109271242400019419589723260650161366058949958225320689652622611402018861824641064234161470547856168808561804483604498261531309750947056103072407323924817026889516717386625927589625105713061244457556298127743311676794221486200593239988708625999271814893831170071732853218410403828287210020668370480487610737699710238625079555289153555262646342481609486567250536414227010827879389512544347259537533899885599593702564267042930091277074931302231403096995903741077642859638386919505567982611899811834546444219003034983862896968378813158224905938557581027095787300782787503981462751212958898094093847539755755812455448272150745094728293524989422310883556156311394760998776773630953586785647499803616960020609047977421939157873063304914904717491421050595292283697527392479551500215713533024164387532577878780109830910576344864423550539393208388890043750974348331246734814112808257100475961802837521144132178432293582926599802701662617837829660036574503776791989174969700147335694893460569443542433878303587601121714726880738652904652420432115881864403302694540455648803404100325184260284134100222733627507993265759773832607087233202869982198137398881306338817645504319643991014657955571412066694432512877267232372290109001269990452938784111366998920968434704407038771289020310909629756364162595406503973311243637847313690531935242541671170519689799884208223031596931019627515125360480240554519714821558546381411895858912512844278161109926618335849445167587369805005960960571349097859403527410973789830962734274546008359709697816855413373073768587979070566654105633822403432890971892564336490658664338402281490017894935839748626773461165248486685464019825950892532159687247460827999041693815867906548676480840830535512401613664266401460887029328347162537076490912195629119591389776008174039538330091883524359078645595750357596637855382975245687804822585939194365136064127966535416702866854202476380229776201653228004640993873786189463077513556625812398221583849912511632426922312023937740059053740485617519576483083355329777244442982724498595813354075532130353721737074139316228254251206018213439667311274236668430501744182662532541541884388587104251588248040851672275230113399013821751454678706481135307260454184821527886294623631982069447536614629639788219920572699584698781873573017098577367489340828129480641325211076393122435415101485776692586271116297568291005697506409958139682088233615349874608053466779045471216240111628865774794007579732109904359201490970849459899946735110854691145433723633294387399392969295541415825050039518385604437936384713169315960246150406052291738185152043788850911384997445274320185937049426417049072610294014749442307620669557559613964227776517098892690745773587810164964651253298120800695322924480839000309320187229701794213451512827221091276266768574479300321269950272684689410272990061730029391720667062384511836396643473879914715194721822063603725902109600279333288181055380959902804481640216937544309797276060138635012870717933239500177348269915816046654282117478574331886161732532629712764702800414695294291971313051334599452493162296498943932951161784062200579704075942174199464978498192674431553546913467748196271079340565043835997429034724464009386702037751796879575017010727242577191046851711913658653776635187991264885665930190930421075733697360387629407077900438139683468723696880147007319074002856460960789645409751124386103547144039681820325162507471885582795926011776041928514467298288666648234080508915692264625555688373365600065061182370473143462201660255528975403556444030129312040415415265316402842977596603861627903286194529902218655594320187271717961491483046468375014931205110790160730852100988921391988940249120412670218131665144258904438997937643283663760726307667835803054519906266556371385315212518420627104637935812720202734163025567872334505970417992818607225573933553283629886248514789428050440783552387259051821417802421015106026679528504246489584269418145826458725812270974674239373914201355838420371162123979725038868742937325290462397530032068351275319447513361033879039501012415812051203199314763920249025090050680474287821021243203580087715490040915016109493028865118014438821974818621708313814984954742676894812533896124409973863617683920291118889948149283576211466873458813732750546475508847008599366096522030301351408383334802023118440057779155958393437647934601006604736987607053343403679287712119742998543761227409114475056218506691208444687533510360526611510818152870577418730724350912924445302870113530554337206665504007647546303986108740314707376867146308666353030415431883240768851730693424317305868869486038789427142069887100592568446813926106670821773051718598628779123907965171589690767919136467412907420726703398292263348088948381818555997643807597185830861018700218271460394129206177454183023429381367260396916315554878991317367283314853831522098263492739501486331333892733037201448744011922159665981696865726618848955379480539057184321853787740477667158259759045114618848552755772766849061576700356661402783886679514954509229647158242733695956126042081930907573634920317550548208293506174709209902865186168215112160729384077603448613610070959509886713137131837210720825266056619637945846383198034869599998600708095285276924354813285443607770133674948175601376355966712826306586290776969630974447102505853576759782077382643385867526782828711116153434209722951271789110270438861023342111551528790607990496602969152825399168842129519495895434548804064792748380073821051215787118723793770377627429871651179333412792231420289985180123309362952359360942084334229925670891963628802896147932187707877806192038849383050694494265580682558303360306131284061527381020458882254565334881218770565616757967834188605085036067666427449867036009081100531774251090972029070338640653254937392950524339283674814464271705252040505654851237204584069477200481619821639958346851647618559313329965964771314314428672093236865697749897691643986158655516466764043939815959718578431157915107910221333711274025688885250729860755883317881976360533932042177132234184071291841474887093130741908319948451763028151650653286647133330653524667283069808170130242520914042762588354040174226690028247019707558837914859787872472502051512862009905364108334750141242749771721148742139667660198348037523026906207395584508691796783053832076374719998642294067475140301579676971260605150192465145406534389288086564082555330372891305763360044175084830873085712895024351045535250048061217290141622130753184366586829173096291023742857770285236921240252793878611997720656464098171848183680920900799742020622712793528541721237920836435005536235131253315398972279079802359148139450307486851597260305325386134621775997396517152617667447333044413245103900090331945955811187719465076148452967367142882097927803552893375949714808391275000770605755437189434165911682531622154512468704192598156794835625583350535767392315123404378338638018699336641036200048961140485580374089842893606232885769954146950343854970003135477032268558744108784930602852405058465912465460882123846216843614201668402310480742548955097439852478755931966535543974205045023901671050445740255860323794888556059943111162415047013788694031887433699435907186878262959078994317876195729887494912908423106328515021008016230032691426944288975555188956950433206035997417343348008033785314195129889730462445405256321879900329967047377193824811269477154962288661122170970665654345276508896408138797465884521102905031754658987310387217380698922269045883341197855961772601964753499025608672395510739609159894801103931053830335032734914798088232925551499171293853703312330512253778555357580043463568078429079589602822672502774894824331296234587736973041558833895138879925834950621050602493902361127148189271031068548447995128146366833087966186684628838740482074720471186867754699617326143609090075364015589663846890016894843076103639950006220357746665170100795280407407851431504519454429353347172705887111295085022475513018714659394125286589058951734825491164524878354590662808729547763101506360676681624331343351799389250129525254333055415198689771934187776911395974762236160185794503228678694110181667126437551751321438852375776253380344550376800532125873440661514967086909327987670749071873500878185719588879630123649532699067492143527958276733163236324998267487119372485099105768802320606807112152428457621194371490112815807459611813607705512144383415345378715241971978006666582265280301302853765273374929471120786673646106824524857839983449611260067663813206733413426671795786782122107501803221550943400718779885376404473276954102300812069878316231442582578461048152595850133232256286403701606798336903343632713364655802376785314442745245112094784863942112834150926771625324763587223816534862495181628049329345214467964985006452587202698281923598878405744258373632106973507789656059560431670046563347206682302003664147677881224147401076184562827322201532110766801130872005110439828888077980125854703544033547382789891854019059238033113085822530730630383565935261408176283478435397565496996431649121795486807288506116945447582456694009834316716685123245841605365893149364838240592758283372338593977950201874075556351920467365695120774972413978840777083768170680526498765604291455701738958697863164622849850138895630705855714593460100430980768674853740742931751809273242756977379745824937835001283233942906659299624654215337969850792113362135685564149068294331397711388908898867315747634926599993862563769667621526144014143674635096609283728239926424898362403346516433130554200881206148883149375543279562166808903902240934919965743182029186129976548143613753035267202712945785046082685159802836378006981578129597213909095155383346418947194470442743970849246516382708276836482541232764609702995539611087413232089942510276226899524637418542576857924126204694190766440984354172854091001962191240748920420087533421605009679172660154465932811072471718570963727596912353328923138937266516935275642080601190531726702900622052954821368822647469599435200631197663648867592386387672252247880685819876546838738154774360027162321392300107090352681267686860864330685745709553083872335798541108319470487123313303922818621369421351595037599995150098332679366375000229350516662891421210219208040424786707414384568249451051568333231223725368117315022899303097248649286030762758289552551620167900090090698439760776762115631528218274410475013890484052685229693407067042997948834956130386580802885380037368929610050123179127141702578432721728268833780140472491400614740860791049169895667641669202745443312057836045413590778928976444418151379330766798671161392391875755866959065985560913430154522787179032439644127456707228360765130122270471517380857098251559310522334685286848774528938412365330009603238475954640893840621015809603255998220421668521411276515883871072176910472982305643149050255933662635180541350032034022982376430152729331039786854146385426794774583489763507523503980088751062291942648458340611721942783372657768407651752858778155527211405530271866312773530827458498658090035137292068475930019963851572697652204282404432064914681704685477866442547892400286402984238324912485078261203046943469433474763136174400267148758108666606735259169359242775169095804498083549733256322637467218499511560474933984580382641671305574119120100031396416394617897789674400166403580677973154410053461916559676016273802701002668065929070438917245847527492322460534682655470444043244114435828677348129628542929395913886305900711817904445060967005461363914700071517103429902145177451490787554666444860504908724608605668408376430384072578128017658790176782773175519648723888795503812563856511828795015166828440260046006110452386350589602276760880415172679968316236742334758539136529349635671806400048546669325736397128674194586558857273173818033822269157334564178898465834457966602791488463260919979789597946382437334953547973167763554165352516693633109711584533671999019879809953889738883029773518566830381110555537486863745771292798238637742614197529551976841281042409536493377900612365653984116291974530561634130244835972973073185225165413052915797729706332063295797146071587644242239526772629710488244055977511921915082150152548587867911746449630140383399369507762785614052674397540525145081841568669647364514420228228286065989020473158554662107654423359697445525950262182453681375300211018910214935407292202576512034016551815604246913789966624996596172292187568920311104138040481324531764373953066803798325563558523826967307293072892851943616213946826077926157161538351635975848931687633143892521827547955638246188295991038898814121656050822803328832708500413575948699246969064530246715692290918988843776268693862561699745023240872491900815933409883498738919014540790703847513475328508054573745278288346844701759537918745676181850482567146029158248674337057294084457311378729946491472217994705076675511183822683854467419594127381508435137883668084056762276616376847287425480555521144987161385839207682103277960125876477473575562721798460457221911359047636765328930744393710501618522556965915215561618092105033915858056474500672595242909001331607389719951430977171254241834366804603344844892198337439288934253957437104307267136874358497452119105301462042375334432655956820006701167040578589170457532212100953148778263407547892234804881854352680251801467930799381717446683347769917649846116806690684605439905901744668223533032639452579621840075985824939112445824293882288902390447171591772168569044394491788197511792634560253402138142438205059908165451595511214253739060522293093042424939973582845064157128102931092621120555005300661275925009373026932940645922514061608575483780438155459040038986341800318083672460609545128715686412559430100587627789447452169650008653889894368208075771275304695860947340605970178156952510155946864709296723441550485731460534137822819379996739577592947626667576384180400449708082203925639652770268169495350773798548863423665195619646524007773011116115383911018692735537999038539056266536404618032294286354583477140487013210078023340993517305622797597686035340314861054363205909818186033199216885113241035232566363360203309639987652003725995282614523269917121138771460426847987173445541235084674494164801450727847051768647413558636894744152845261728990083245588067885956499556479291681868021645592726578838381915430585114843810438797856886395202401505548496885034555099886198324344773050567443781486998376193160312896304718095890110629250307921111468736547493304901423108974448369627707621443653614937287035102810303894528750055783642002335157370620223861127689644910998002154466647827798891724381485548268998301642727140559067579130960595703097045639605060164394818081880449919818032836611498674567644521271175251648300278719715960890691676347338615488601654317443768891139105665519019261947428538913834142816400602329264489095099584726849883841722716193941141346697544519455607055385258948167976825091997864943464730554167465631809870421066620232589084875718362578123626670320494559827764637905034404220409100248679473354184777715653555376580966551466688059586089732986013236340371537622840348122133897800235404614768131656222775041859792619224496168349296254700189931992403945485407149204066014686467572097145993355312412143403577128464557011656279049102723460283349334378121617201488982081839658151525338224336880085041413057793484594743085768329724856374442834959372780512562171546334803135567578595377426809565907875024041195514557634797926244741242938825636382556017924404583880930660769408601700149254788174825975861214337470999629751816511437189686716039688167735966578999885052387176166300664003758747388856979375439662320717945358160460460435003250373372472177464669985047944270805558154992115299879261055593479642470973749946568783487282454142001709298532907890020724581111767979302085273592365916068103493152963692040430681451571972563585580188868560451574398897993788845725245086882876413369554828886998450442085994310915943139630173128546937706336794229639429667234223998816833583924328220939956296068877020538673000429065849112505567013356162705660877718302101513983696188088571383089658852863961115813320416215629720575440428390737250392067949156840469785659482782205294364822038850519659116336613421099800121994824674676305409019119492455940412551342963853556955192457559900715393837863442286257147353039914134966003925194652407609156880967392443256251655316763972408592921749803093403209872769472047968186784804352872067522161544325798358708945181117468184820009201302794483219169256215936696004420152839860277043097846515069534083131577264960657599491978537214070977954169393257016282163124643425143568151678301554318306422837361883450390367191469827686337214489614419506181639273860449628645146060120179817943883316491524461664511992688851048713104171855400850156658143897878130942588325492861196967271373609298220264126156037380660054810252476236134593676094174108038225499927314937434587990596485704161743885421600607245955227963916470679652127075340621645391640375919915266917639296897284752314732537463075417932969883190978317244069871484247207098917156226419852167154131185843742880180451074950090648296700348972060476656661603762843191002167009928975097086853084335083588265845948436836628772110182881968578480284656951281094944953717101707384705457415998870496096573554825468009443254871834710644159927118302871830974336547428147314086526126300859712901330888221394422760369032583735436029288551497914912772269090742124008436730527738366778383706615254700333648556307052483383064887887694703587745037305678780692327316981134445792582447165694356642114431104534486414027174253190022844897315833835950375204054940683049041790780140857052021848422476268490616849635552102454762642784840050917966121066978407213401190407938030171221224984858951573240691915217555179261993710711462908163622805834645284611092560087583915444766303506391706731669559041613711073023831467095370371968071973897343346232598961210066974933227627542277786599399038164747746318458401918132428699275339526081937764964564518492668656976155220428209415627892051987641874775859674737885477543844146432101435750483595259826728440363234027117283711374908607307261648246655651795036644150500659855172121117030194197284660983778242984251019019455695220650230519550836093871911451580309313418474104194511750819089051724636207690008508344269802011339949437258995384181236652802038293088106426746067997764641481127771767147284042066308859731326385409728338280513503129227678261235649699991847133021938670509733200096119678167074658769210781038452706232498233795333334287140924491499500780687589198218959381642861638310788761514385058212479518801851132760955013191290333741628761665315180571801751125782000305352009577416018589181082087558742960969330494757473109731954244686773817749951814092932555849301602501800257860511500861677097425150129836349372579641535692857445916936299702989843460479839483535207820134726684485044270293684771213827550236810989941542186224897813865016936404800113371149082221837665628387283052351789102433985594798326963329052235478046314316760728725242493718808368015234746044795605390270756172974991757581531765771827842704389608273175101853272017461935949847505243765615327814376254878357764664936544889692031528396938864791246995273486161400041643801336663400805217153971178693830871843102136615725636470202274847734940622305160536776964709992675804503252599505286747280330895037581876897504489560334578801746133152806835004235881261392865308495666762064009797686832518924127840634990068344865498283196790344659506290770763791770745338270231627691991904992878811210070785132677533659694328715544328183646412344489058075506765459497305252861393031520818653321603831104626742005074218112307413382262451499353766341981584337369334369575010806082811253758558065135056719318744512396493528470743700854656592314543733977527544763210997255573555016130731765989691840155977905336635039960648614618239894529794609538555497800937730144160010398479172201675389920631428034695723748113570977418679440012981622473113435691655072830764483882172072456958869567862432092765892455754088025729029440841404103033038734862530509673967800306331870802381835577577731505750333079464154362849917026452793260053927290715115277475050565369684372980341396244784309761969712699197309044540459318120685581234380294706123369336246534926469880904327450697539854894374640136153204433919253952439879454859288187359582733212952075185038073734380708474314700802730241291977149457533955734312326488725228185639716350772218991691636899366312378245615776208400196341007560655415534568606919329297049743173504455010627964602225258316050468015143798177732540916048471330213929078098237496863728514774634779445208971217918925338835622441862562054201923038146820204349761350752591835037992329481323714574394743634704172852258689892972708842170507082975464422510464811874779673978778653826271593140097165990434005127999417042680519327267229679824389372212518725602781263436620375312106632957099706562269815386377062826756421729810385672571227549496800445402370386353130336504132758721552407354883156864602134619242218958226382021716600590664649065044955054967854499689398224540623196464333367016939383977587366723833673543109326447662642070323335921738221210468540736214468806719606717203798593737688653808925167467603564262612502373690307136784721106139353099575905416071152931309747898909409202003612333789173231267838959369159747002367315958133893321535807328632322122680793315416660327637311382417438216688554825709709681913380931997608663323772804498849128100839036523274759586765914959091123009233894728088504021761755059762413558689523353400456800431494719586001801926014619618171145496764750183380423968267410764005960676138377191302339065703754979430273536952674873246314597780829942096513204847859790302108145729483808688466811263137463163228075125430203463370886004292100588635682415626760754434162623687505948147289328217844024659124459146047836861718511212263090653981134755035939476276976203221085824506300514753924137006632607662710743915640022282201912962298152942622472252375518193628658758343349717760705183882870124130821272220250214416592679754472531175592679113575519461396294725666088168811024664658389238507352356356668535757003371320345843534641124480366936657897590425043158154137338191124867106590725585993242736647696034912642187965129000100785051419838909682298808600144679180122591961369764678013445697585416007213787502169222961737260403732210870455895302917013127123582927558962700174786210841876459960867770009279522337007163379272890051739526439342634732621514774864136844141159337212365197313737161224426087591445644187817147791020341220751562237910667121941620465220601378950704661126534184800227576157791493966118459862851441562457449251326003636912202054297199451781591923581061941616790825993325548356323465757301005258915720639188262165890585951612387422184161130092998291687289452088657952401170672066431286564363681071161089166998677734488903010998714402743229067028137101097300479989375232812146862314729387031003100689107788557484855192633019321154874094413945852133399403010920435382482308389843666381461344211860562070932281285489530544251834374448617509186224531444826197345204587981045964357278208806455576641616958884710736746009098867653599647162552012849521127701707532994230712942240733070642551156314882230370964603415714602112418254265254561845008196497657147848007043938738770593556328717960514875848719080364911054935046994250890296348052548781540758093225262580401818304314054527593668138693489339243292510381828517020112211203192879085961307401139394756562764946444233317576899446242063821094123739887800299928784341611769012767402149062859577397758389539357383491290887505167274214048550649058924179587720438628202015311396813127181145324350916646708997192334481006911041986279437241951792448703710451099227129306519270916277587478849963912098150255358319604834739177807877804449852249069868314726697703183369216146290339647990086261222276204089970368882460164349031789675345084028958018381068588670668280573323077429861301235981927611008843663756860577753587376687380433926080704028744405835376228745694288728286195362748742623972461527700119269028711341208931368027489126356342696149221955866408730832196904578357302773257329161140374937565939076015290130541000340964317392288583798115644229564695058255123931840939551923384307198376762165011554295950569888791568079309804653815584006479028510980924568992716752290775667993957523105108921234908819317737499666942028196169344680269992394496493986506727648604431079759270704297291312445156372736509210635482066308410754500748451667172453297944038757127423064278543893428446876592156810573994482148563322760799756568008069085811263640455706448148653195344658564991470736652459348965647477489404798810955676942186922354334062441030501924646047224829591536338135749813932113931662190301089446992114766526414124182776527256503444058920886719716404450250566348369498718108398136163766676292974347839588803264527952383852440393157636401840709891234367975102614549938949534297247913095164887736146553310014380676346512639414080179855606769796932413354046596105242898805380847264216982814105739192416198396985656508346108770764887502350668329450334034002918126175673514961431317587388664901236022891206022363027483973433359790352859215131383062996437712235341623205901192528637796228065620556373363747625931885489711094596146048249548187125523034906895451911937034447681601363949129211209439949912854559551283099548223096852298546802671276906702831874211349179752774547889264084026959219686060661557061336995222166027653943900993704669235967308803059796710494757231335348908729008522486122736184416168393829116389711495180322233321759527914844218255183249516791983476193638138924092612031512663555383985038674428005597885197298496577836796138596515254898961659879958206212501322607539540802559597262222641043095154910204417805555424415509745484813244942594064694602512523192329021336021338764567285680597844026020175002133761149133165207082871922373883489549601410500854428805697457193024336337375138637913277578195924278453544367433361468620051094749220366045774553462004406140776286977134090106064816031615727419053112447267993710853413619413155550483269343663326604813178150302540517820385935008306567988159640443431486617198182778827864772619711233165726927539547414415600478587748297659906142608036016598808256659386779406397164003132912767909939634149388831244247337062896768480947816589870114929934783505154991044968327792426189705253830946136845498517888344744201735951214762921815740558637495471060190942411480647390651396866570881880534993994340098498044302050174007418056077558201547789906207660107016370432137430663646644414602720338616336280682194887590189432585471917683641259381910997252141094245543005621069167718773863157954697859304564264014335909683647842006746326204651073795263383596847196268342639497408779844678490511380351729904500969814206851364108913658814990853498183912531396082920963652458753299505995672855385612093551103990242807066965749991726817546727877924591534033618378330711164295720940197951573467525380897794517284374078584823015257254625070346970082498543753143372074641606134806778176517261708546922645098833504274247070207272067021869210650204088868403749618846265548303088339068294491630774731645399351518509048380302595894281225097665264364529668705008560986899404157840862711657351917289338850106330972134760035203584655210074370854969233473220999930410290199848226460997788093519393395571484457779064831841739944080450070514717647769904139652121383208978717930832719884830265045887096904139459928247289601479812058565259142666438672374578146899667550504624032042914831076192996947049787362104803814724405364825975144756065277301942427324828762879854091440683687012834307053944623307876994830507394620868433478542429841572348544113220905490735017387805655296880015374363195714743954842331953342543573673827176666261639032370837597659142389164740730440977502398058563482079088207639629293004957357122186611084430980524724095961555930441864722111992975706393342317514297935947621352548293200822796501805197651547198179144237985897685971176436761725783460265244489733741932318645268994953098830085750875016460281054349195230293689498109585470658053189638429651144036220387098291424375466789101733179133838972547758901754215229368517687273596790818057524517472443094767734209345995174591962711143015387637568644655587521787375797413606044686879402967060937998901257652652180290728063927134551403358469974227315646303191669825238011618617945090861005152270729257256818975961496451429540452575299033099154255864571536239333769299395211398824798555321542769743469872969899148435485304467808232080663416006471857529900985208704513447016417297560907298684790905429414896950757101574367158597885242754620147742541574369365346697787486812838577023773638318801736208107077171792914056339925404097822626872142883088833486396225202477707217939135024120225554872105298706306286777564923406507966549290558060219142897156223232921447013158078151585382488876316661699096337819605965870759695610955874146529872432638013854483932065870982793148190973819355590098629820055743141217240671521222768187176555304842425317509454498049687486583833995020478390044441424510061835888994312333996663538445717729490001141872968053306683028935157408838924742422595354013866158078486258870154346557280929171507543080377238902890322165033373323882631836963039090054529556390242059236595617939837569720232724737881250891459681352927626046877792993568246798634650115812813869118006323972885465920504952183222152064887486134084087538027785786027652693687075774978679518479790049552755773840853094175635737057569810634991599643906463259601544175273807327649972294708162018651175076795691680956886243603069053579515728989672950805913673334408643314485554720446052119743569529356344020623048081678951901438213932213248837571426439203849546313881167805445016471138245846946974970141324172548948446789074605051449796967036445288700747625786013515567529588079579992284068706795555557052383247534547897233606495499034531923743303551176045772833563176959810879177075962316364157069746266041641771452647379503513269276792060313420791974302680811974228564186530283166863867620044236040367565456682894728977661696085562045699361279237696633694819310568754241287025129412084395363409827200745977581528332411958763455724075737410506065713770703986808329977423455311746826242740914277000423002922197051589637055618726859310637984644174539556598594725752026654735287776578435400480657100424696558742325541749654406376312868519985116569583347026602641582453824520620810636509459301429989422754733757065601925247627609450532293735161185865722769119607763827273474174141028717640369275041007123150254172353150739456153383874897479702161759059460128495017071882681923522273012950635091563689426713261557808961827187392817976388991302478443319103436648955649473387014706351012251189928211895035383148657052510854525534956819948393260422720074553373767307095445438395305233890496013594905193470074929060311193039626043789509865716838717642632789127777749980740894649617339396297357101159065296358466492616808821976190155947243445871835201568925608746980295765915251579307497707472439209659160195909940076095285066079806808978788123474961801041078702248582212980411175064494739507496885167361448221616039129908839753569131674319169736925147015510360478690401546834908574010158135168146667651648746823797081761738424642324111839949314747817417640618412072991795618912333880151390117314762985767045102209633893527654924231734439282041355848612524616019446702987544134656783267573468375488982555302938987497317368211435548492380537203321507861208517624378130686451998114398363000352291732937959060043024513300962057718229342714206878829943399780520445259918262847495795491711381982152445585321926428550338581569591490894561225837155073465470736414906237183182275852086370581410787791503715287186848383761311460889394652998791154965207599717619628220499572210070773983691144725058653041468776981897012513599397673139974902084286814441397306795141327006024693685253679835072902858113995999656892038067496883790079726495590203385752980671791858958913412487708353617830180730354192530292596576551314519318813829649392979412460509371138616351935767059915826346377942183625641207756524084973283997718752825123690476605547550257508130479628716336232360814798799002802915065899577553359867704972613097239564401382953935139719301138056784890737071527795481723737257789055811313823706630501159010276772205833051793722958428110190630469132821412853939685823198556036136406711483677221117352582973652844352765048347328998655722236460128407526531380200919736285619852087466142005557005372200932959301798631740776055017578210479144142239544545105807950485041672150085316632259529418845705621724254839861663985837190237629394212018409069255671150790445402944544499346686895346221760488595734446646400415866235260217793923312846179784287444768088518932063387032047824212660956927246033199859765036312490684984352519228456709046566193246059929324344807652633977674157714870128409085783383897682534225083007726958221195697554899559107347152192239007529959767869525451776152072202468048623650114742574580801656848068452590581856944579576995071822872464295236689424152475962888005015041842882761230488919966383433608075081574801793125316624057190746573848380470608008337905804491853872015418084744866731439934635238583809879558641934323704631019870643268361170786823213193169248842953783566238337051560474285393021709039887605329349059055063861271014308059965350167804600567756360402452877322960682802703903748653882048158614046124143696125265208182625834808164856625395629499696204185221701984804272756383220117154192650114244786171754342298051154309764784020408580783879376935451618730291890479893031683155281987255727761441209381531226878103576819053489053122197282151397142238007289564173088112939063144495047680196828738351477229065677886380087293011130465811337698432332638992554574515468535931491254034820939277385917640210092037050448728138247298125194046427789934256202634062823931985637099211637154636491900868869365552383351254542712353551240982290582290156041264335100241479969771835753201074540443194760827843966976507484901121172492911553852634849761676207195531540805382715340110460688562753635626009039843992095575570035958871893279875437533598912754062602254310701646350875800953199918298607811677425338554881505019186723764385922754775186748288339622477225348316855121614976615909569082974336538261698363419512499576219374343030659505597103656580305869027710991692818489805629499986671853480996175778199688654086778324026633108926683188380247308901475340429416724992519656984196569353982517893377690267359192784164736495651426489193939014685737034721117589104655404092504500208801936086707119206060801296051701047042763705469714810799846466187110793396272645984027122591205919516303576826678563337817783470568999106917131480243307361231973039608287417138083502144455608477422636138273665029352978195886803986907316707260019232030391623430926784075480011014080413377325388165239936735162087118915329622295194820300768802064857570908582695678620261711927428134773499455266405186470997493055463894559077522351319439532217356747228112500886864056199249643919575520161852691127231269622185272847877839118539425345243306726234492302350817816371491492079790522625596247668092086707641239784425408938977008230900998624987441489401244006978056291428076517390385961352883757122915782423522972924515502161726401174972780014747212734281280368081222264013400168045906459386883224507855913546327308768288532511530894108125497664139976185312173061143590208759974931272254723484990832973992943470520059902148223621936413724389658069048546458200149430454770033434651054107480341144284009350196953357913150040723301418374121435152252100616853593831072236242461300576012841334898977701134791901526744787200661279237544592257082088032877669068737598346645987909095359131643236993494686675711174635245690640529753862341082159512276031176078186908892613038111747914439451654365550090297971204860573216758139981825368549552752834860795316192698285810372843502567882921241116068079644638025463247722103437171292069499461967718819481875694271413369859256776749036288284534343461391508668760537879371060109187728678899886913943364844986065642243234816385111561467144213902486880594236739154358588987704688429126846243914164687445294907434719845837508595322888871322439722273612857026667560238042779004579976162299158902653225469059789806127727588850770218908323455532355676935444553005882411055259183211909983788820443762720228110365740944945725762337873960419977359265699173561660727208340166802841666848753821489526714402292961493277521795151232097221127093811079712543325925689464041109112559696598429303399486169105678539919073216436742617329631147756885045650349170337437947387634338200344333818149219098004545528940954888907507732537984620341385408724480369032569944754727166440931233888041978921527769884005254790888104070653883255664496461394969465063771907015487114192964484131992117807426561038875661300910763281628383678772401005533335838548575580046740467292231076496732821013630375431382529618462542557227639840084803550576640908379322163061693947981845394501321291459828400757783958699681297359890369543165914508101849373052100933031324083795718389803949209742632213841721213122216941884252181681207334811086987716470109825950313754024637227059486554551128292716783901325691940437870639775225324126487998405072880811885733827547961092815120320432343192235077778859018978304264202598850527376310638653402011517089282395541104413769068861780091274696686255854095993294269114008774110843307943970711096089739348156741744940703116340765265701741369487234132455985907244244261722522718480531370777738991090547891521156879820456810874193383456601208848953579293626458808367606991775852717416653833459246582449931690011406572787742722069711774269379948888744860223289114246714726162987009291653598938530851044702192915700841879078030515409833541617980339461583779318104110539646086541721008345080923974483983376630059500324017082491366515397518825313947284485735061166509245460093574503421762909138506781409061255029238898831132894832559766532734665860434812251353679693262498348946546901157281754006053245115963174879774385231164724663043274759949805488398254885367420665182595948490232204423790717799162816003386957381459642218190425492181363647636565673073454881863246160264228986072824667690098097897088912079692836299497829170855480510421438116101519040435371386228110504798313030051448408262178168903351778033941889467900070240176864787230933814809368465324839537361396953933177051556687294263297405910643711500080750594523223660120461760375803172358425374867058039675525358806062553718563101267960482878302087534602732494630216253045717818342727462364498756807326440957075337335987853119059011258172404883641120735767002128472282814099403190207606288616295664934738189276857574511109274419911682399568025919044490995680124731635303301240051966325170206382565362002256016471750313613238388922211719808078367623975346601733667706354742707786685652454478774307495871551425413690834544891450621165319529273087080826695506398372436964959099321203396268951792226080059093274110116140698418197413128964648440863206064071970832511452657935177393212485619284360702100587735732869176172860078735539469565393251576029717920892117494394273110852836442902012486845582050586747706633361297788502521550116108237630892957909325798595930741554000468573139629603560614026689734909551504384417126464023944694954051808796462938490911749167258362488790513837121641567466780891914533360744577612615697237501151590502653112688444652859508069150987290566553545867497938888568769124066568087595627605726245881050879262420730699110499623565561330648936588499008996129097085973982047886828543835028464482012194329163756716316364591263868451256269260485654988757457177268576222785482263917507012139408334506102613527399337461745441254584226012445540091667239824628867730075082632579072484309017593234579851375889858461215721759283729382509091601935623196840851844310690849874233878048511512558125386395524269566161260928846478610946462279880767096086206169955691712894093202714974563961821662749179018251102999253481490570941126505675674654879072760441739086870440745310952624478250209138357041353918102372338089920098532750790105955382218585244692762121669786361456641595990178800245484606807941131513169638156599344941511079278405691474234011662815306351684957919977600913126423276646682115690074520589794484967153914944108994744671523854674713772745464162205315496009745648217365232217346870290568429913857653510993875239294833212700469953190648557776511193722172154485078043702146485166371140036464018913630228845715735008006977490784724483210615634639106167198725513612835891682199838902525757977252693903575582597841846349855687486422221925615974552606373327675148986567633937815784854684481797708398523391846281819395510317741487135608780620430578167195079593461785321924638788434870711854689074979369215471524267740174329738779068918954198390034749844633635100202469941294264475391617442953755369873468195442151382765839424729168914896058668961283213712496504015774224332290268829826895165710211910852842794717320855553097626426582300548313380555666861664546325043988988972808008067806144204685984156851015870250455269292716688248078362229250187269955839975807657957729308748637319967950636641700443259176886756522439654129998917112702262795314546418011299309474038683858274938002931020648303910532618774462876042212583977194509930015691910234152903151630213079909818631240158584579442039840567510721030983910626159459112082293355961094122534201295912074216056865993917680764715230364147257337772004899807913502176680789467236536051781951128375586103318795719975528556001507483821331247024922866511758409387358328344769503572395196283123827781868322127131013570502976800476318708082418011942300787878607338219596131657831242905703344244477261185849302069672854233266485637254874494999140982244722052213627816537852432419210514460964896664166888229062208102232275395185370877748829057413045883511655470336799111967708100188786489243277586794510469217321467238391336918508293296460453507843147320747444570407423879278061925276484262093159169715057378121800323135315728056714051451310355923038202378204068462810339125101442236093517339855559769875991158657724742804798815762894176524279697865739718179146751162997410850637832720791059960005612925204510703445781377309318276567623750655243402541521575283906546488928922175304667001881549813701167588399155293116213673720380908996893407009809571323235308643960493980069219720628998065133933981049222180888740399658968753979010799792836581405724813420763184498693400890125345885511879034807759593649946740663322615834186969831717023131255650171652485808016924703668858513769748868228786756232939660818923221751912329967236257657397185901158040991336520966897421881349735899120128640008841412605603620289168369653106792621146962841115378522296106289636971736329905775763459695737596479659164374196266707920059105074305738294921849860608368144958385467543910264737945351756518218787395880123541857812025637794822179058348496503242085479872199964885663144677392542178631000940217750217175023132289528754262133159066514362597798690084371974090577725942125771270663260000033658592123510085562050828526893765414647534359623420541453331386151075012509184677717560260956254792753984514551974671303758854181219871866561180343731312183178618848139688956979781809087418510729800760467257503505366630609424448984589720104717563865384843504999342502181106351400138280888525298209032702000529855385072693567378897768270337560342907109691794703027901400786001884944251169558697142540155502366335958572923655322042806167336573107867500491523057778105447196200091116037557214024619024146974026667605285702256452416411182517048512341513476527303379902128485843506808460512814740537112468314086244539598947856892422724905642052910256766201200210754156296722625149557142584440306643105311287023418975057136477228998528534199858490448529190190281232391931618405551736175140718922911180438304745336237469133267666670026620530520716532765897075827915005935137505622894134839621368187023153029534035281485700402738180026743689530524474372974880313437611345438418775210034511404347176195146133843996827502617581948235830711083276732847596496436733296616216101348287810761831170551093219364416135461064761825238320146655870356412459740060342568382965330346634136226025899857213437371792343460704579494560446127122765412902280044049975776874314368493118842182665176192151662447407807034604111600672953364408083570113171901941013809639274023229677711992757035013577372858098223495881073276105609725082233319456637996229753885183749566966091608009575282341124698264965627947124412337788127593597517937983082930818775862350073834902030487536272779351072352243285219090855430441574580080784135622878834173037689410327625358546469566750707408433639515037222969914111353291253286548761180332959440728272109962106897101606050884364157861760419212491733044791182150146231917571837591485510318516334564754241494757295157342904181136753668095653622133185730369778972395437517069496729489162812922350407220897214701089466901875844672041680365576581201990548412558058824124555147473534733178250189687945953090867793049513683660408059404299694788060622344430691401849709893255009128728707762064781118435628470590592412886514970371096281932287396924975252902129808206696190247697954107458461343789636901758202984106907941482771610588351185677688325273474575608359594291008847720148044224061439782439027171287285952653145170427582400686474866274462751472972097784949430745678145601960448147012443136912628376352891393433531113624082839325614546535031656280388684713838811997712754376661100603938136137843509037068998275631962762707078291263143063577044385775313895437384341214567827294940592340626653316697948402642123322544570781079113130867097189581410075903352876210386443371200071986727843424230738780434230431809276011552649741642243802833709022431538145891797843896909725441682472427582785748261734629263823329266070317841548560856101428648535138290580131694040949144520752513238168404170875498416415780240156286462014173361176122311076881075091242982729412794146739467449848455731569260464892237726856597649401576108415873758226035115302231022638455645890618012358140165686835638937930335519985361867287355128744157260346040878718081547230079208217856404991032175699824292210418086028334449081319707507010335400338732992579428324395914285157397670150271409968350095334116770882540616167822095966715505634843595419229511905034196590874267886301216180639122409050360275439793343598868262327052803240819045308293695209977757889340270431461647433290720436505929858485336231461573807800553728679525769128129439808016622422188521613767471379437972783087070962886537310041447510124486553384965663130448548402267996101842092323502259956482872971220125246201416443940247496481438892101200162435542834245940201333933582344275976560949640905296103302374957958630289929531830543446301086481404689377936122180122229687817840730891262141022474559652948915053152038137621516086464522967358572560321118600562901062350863888777075775955287094079075553124982704113398945768577556279960972040755307378231792273116677907702108600659196391944120236969879731730321352140548130132364614337980094292224816457472043783641566529398969431645508080867806112434174716479876057716838358212100557104479427498254788765478046830523403397499723809238834109299268070880297432876790576048931470199100424941808009447875350920291028690119496928610709571725098830524483522322822582916690134143542692854733538039395023066097992769943536358725483775248387251260255318083466342306748821900649557053110394458691204240600118572305644175486806671470678173819373197797344561323865102143012226862404184223043539714312424453818465912939428914615984552952316764297403833352503817295538764627922929646808828089467356155108435280012319172553082393704102441668601886803005653482676408213899988205363618787531150840512240872953583588422800432058495644219616751912941786544998618971560796185508271553566918636469599928627601051425770483203295652352451165613060007241725468391490701351730463395641691813343017055722687576456502840173072468421664277846515402324821056318203865893238083158372458329560512686821164451059965630363206576956691435077695468136108009809738631399608548029576744806495253650447808256028054572209514985471256971440203426859865344214145121169471868072612301307721818139684912998255137192427370849523552615725068222616529866935287165970276265666406375881541258308606428725329195586567031200518242822991393430716240123613670154352682649599728819567349019029221236711209868821223075474592594206661473988134081592421873265932379095089626319371824427597958890483680275544078803079520201658280394100656311401991677149932370400953888297695637754250348788953182398557093931372520916118986210168460956930526907388018824474734857679757099205231079712237479093670742477144548248098385336939600063013532211832034745274421883257733535557011112522261822970598574819107954848520647489038760621117178053070235389738729084009144158347700010912651402245952820013404180174645163157571434549813834760058383508385769308451067892484701592733744890821126365491037884558329109955775390944540184588541077261903834044661600130212750967550909446378665895315120030620120366349490630866668890305478645762481913996626779132589919883759789794936834123117641870557291247635358879581801317192512605337945485133825923129910546066364610406578546045368388847820366975168809680857782470618755077150430734287559211310302324435218893005418957504213779010751331913646295783600649990463034221284206872380628788394327798563050448018084724853009351774710228344133649435310454539480653559657274751106261267134630180787067427629341561611282132452707158053143983222677621220622278009143483800430439801579367235304591561828580568245907761566104639824849038696837163123033338339544503853335367539007966765861227479197224280109943785722637746849409358463693385524604022340029281731404512963779872183702392001838822321661812441133481573981775990413443826123572960865523881741486300492693128571140904219349731641201560194681915932632536125363188235223306049196552854119579050689584607401774100740750660304889852540561181302924756856929764342900928835690460479108236113074212142682626875444880198226760599866346637135224379069257219753691076028209076441418304528522851659295676895143307843892609328864814521963271222414137663422867593736170858444604265177197468032246223576203703516359601995884705314779379053840589447065391669840653211543822202432049475869899924889829294670821995719511669876148194358368181690610654247906404826314142751323980788156197990203393809587179429719325075483967385972087281826092606577893502293837034782124604315822689506896532772327939675055366565858293418811943396614106784078373890535274973984560223174228190605209441218510710539515665157931782689374542880219681551996972062977113899280721318466029454032242164584890545410046656477218588186707883293022424005332840032041732281763487250116029213101052526487717103882193466519083625457489044930016976073610842210215118547720021396564124354397147933418128834048028345127221599816411737945006238834123080953096584109573314721564083781495020237780910611553003238692835866981932001571891490446665871354040906324619419528636230945536328832840820167215780708035292062013700690562298648764698209658059084335807894167452149834721801908092553253747864620119278104539847542912040028927458348738591784640846460471863570073867915704750710332469517311996955906337750663854280342225149670870305822290430086033193506090796139387282041791794101455525131516097140958699239292506830963883442492678412494343857252997561859505246870539172678086259279979285182221368697124603953338486752012836523053807749648525866134866073793553825096353581375125489976358385283778947585797213804857932537627246488889164746228491726517468259532956562258548870672452884158327273699459487495428144458821324079948219649006238716675223605053506125502819502322257043976207109480091179907214786958796871136593324113057418293095692523647341991652781676587457095879657782868767614793087918500701253954411871684268093117079170759446180622348976265294405246175847762988740018026711796922729353039786293714929293778283785944109618497468575175764521918473107621743842050102269912937395621596353934558090556031534570035948290954090099010927007479729219564115424064863816853845359340499882122043509959116705632296399576894163272273917949686804835204681925332512189048045010882981259612858695501863247919491128263018883736949297993364258549232748129365159808681745896863124216589629839857615452566815172011480794224309797274268184905937954759599364079545649050675295251672857050228841710110125467653597659969060584013214473866212338922308548622382557391275395508567279660981032164280786668439179608656757907541195699971837109823107032648799348103621905403739616397146647465463794150386020996327663124857494077856400991177854787830896896269717621863473444134972474143313259425809637135838072254341073574428343419469916121787675322108388680168391928677403543403160066480911597966028201726299327472552000031651387368287642849561891193891846888047282946884011114137345304766691295597474904003698692510906953973733703824202231680991908765179067921645301413049264824162899460183441003129296200074747014692257423621221526276258776967877884108975129171011453301507468898280040561696258045648830267239356309314963471798433166502993303890662333811812586856334176538972551050023971926180377852760395645750486135298207871733731963519059129858902709851220174362742498016882953035444596561097042652438667517056431646864181520438335259990239726417934115105541236718559297216282372637885427420717167168576539682128399584279458572995847114854769527245956949387255710935202845297008604577187234764255276410636540573576832691460986771480483552039453305631389938922133398200037361554729835619417548797647552542470797425915974262623475483490748573767836710895985851807322557975005226583984854301933679390983451429833366114926538362183013524627193982488038936867858510590103027943824122961579790630855966028949596578574248844926767954246120523031113332211983207828383785033332732413418344232137616691341256067658475352218749855105351232309951729329548721141562623034569951765224386298480766532283988277287261916048060353824574933660263776794747969462111217933999079714743303201368176429349307183431748480015788200994714517626487711430442149295462040743071606784629188839429383845972864077145484732143349921642878746088735122841999525836313090847341530632265925872376202112983393838260914439277261015021262821725943590405324256981661592343466883717410455093931765708172711257206843771066249940466692432459450315354102597328195336362831941083214058984674560339917765468452866949106127487793499048969149499360967427085875986641700090206581760209827239084416900820470787896173663152107397345150765986868281600453710908445506511197870590086023981794811433403280582690161049554763617359306978848382825606034076480676083983387545928491627669229636821066996209323558177538737951383031587785690048960865396564382370806709428267437955445541687285155298111277315101582380374516081784308400672365962081724238767384987303491498422845229992203497437883226685486452035804191883469406995637046890525883483759286452777823303624389879657762108317443612024788473876986075016934094737259007953575628234622783763323733916188129987035091163148573841976968043277316651242901753508051627332547035086728970614493325611052503443199262690618489677927544618892634795507837392976137720709603750379784784211283049494756524012946378277422209520513744707683951346718335008848569559241821427948720107640875844519504364019660918705197743947869856702381054080404625264473688016827404402180873579056263181485011529157678840568751712672899759772316735204134844583800705257697442886980312546273062679335873909473713563794361758686162777976885791153003636079737998571630397856611555712481951608508035597030002292281066325530894653545805737812320137618069715266808060723167262696243594894603283151989219564409529313011356372510440464314340193262361417967796537837855016503663199042808239943733213668570874326412188162484480427364664803952949856338565371155331440354850147334915522007494743742163113001363404859391707097148132245246426465401270633278797463774938545464285999966835404383156188058084986454444050938655934874781275308029734076639724771805341335691219427776937661698700285331402127915918888316429093842474447435478411579507591617924673898139602256788605855166806963961790133496660434345932444577531651534190917269941152433525016183789633079115100424619631676637777672386610750924733817486482094518613026867410275911007110316161261765246202288263167777707602110125686034856942886753205027609479384900905341894106553324951995093401152023865112213330659054875067091085698541091512335623104640061093184250931893006877417972907950742139458517689697630516628553937291327088582576023103801640306035882166675454836773480752803322226422709427409956304962423380111660966572431846718510579417336846320539722520740891055795329686227808703778290210329168790638816875780128705747811702552159380069237068982685043044350121804506468514998791160005486805199998277102152467927490396182396030961009245691471075429534970197705026393604843279479954362384261544635940512200546563753840655431255937912809165612077234863978197881904192424271540592654510059281057258207568931683094481129315222491034363920949308710837421797778859682218332679385960025392644418337248271715523999641259642537693967316039695576734530293091072874102988513732175759987511226366594550791007074138639722804177878390657433428840847062165138925484443628635270898034816208165784689577559814924472942185409995010307368014413931075948341640258155883608532623181024408833027169280180258177709202589121388423994269705156206428115108305517197209009229181591134775201663713615869653060157500913011067398197984985862066290752988440342932605934646911606507867906012598775065049359746950579834186643359080548571883664770481762850851556293160740862354167413800033149108442663211819930742329013758306614909165594321747435923908732354746808847551808100899035148577641328972243412550020300399626089670436862858500317086321775241004164946424723343530312120457597434489780412192995489085278814700518202749284801940949329001482622353669921427881580249622454942673518547173410586244025595031004264115526637046837608604881732359381555694559833922633702605090709194449375219006579981498155983374002401036549824294405816614522311166709694284115286678753769996669918551055254233455709613932719164243087488912833139506741367445281567136187368832857633559167124999607774397643497976848216651466970370741520696284109349244101701627311921873836869037051429893753698521388601198008032759991356788619190577957077667337306101621489296880157280823891946105657146857376856932472943843764182534802131236100898691311111726098769074205953050001833842347090154813593082877980959807493480717465472706135723940012402498861754299770872977418887643362928655196164397888859784172489909495671909396332220110794784037173118004075091596361952547883836539481453405959441560541896591962317086889833559796319029981797558808273100460421559307512609416746197158504420271626568105043466858814078788752697006851393601030567658684689841933303593733497097890460091477846044525407455389571087472075389754741860062276635882043069743306821845503338813973998336480643920674694631355947965121118497779672794045861006957550265523482301177065520233092379924997275693502974077384206239835705702558353687551415902064814822595131386559877176184197149699788494537763576315756014726613806907759830340079528252596781496250429044956861711181419668670345385119212878552994778238609806391275368810915436616280114088228163437758571604605637208334847290078273880850070095090082806828268540456823879378814746738545056540083579175942540256959354249544752551895589547179067785126242118608304842718786679449238026148251778869515816451289200910736353523658952620010970414210959074457534315910076054878731358332265092222817066801348978910291020210305141234792136635712584854819791112658446807219954375305280341877272837430893190308130591062975008058255599208448870449099662085934309782367892793223861537676526009887701524071898244227864508400293717194110316287931926180789306729909639974735032462231674986224907982905957288752437890620411054873619143224648853417683519635461244268520636644686899902802022820469502618947547981026439504648638342516595007139993437578351697927089013264261535619243014882839616030107363200767263302504461460659525488617697020055025427546221802510747315121625505814462004341215031784977607093899789856942239497612724384973806749733175421664739275590764565173764060902642703709157989896546094627659049898679090702130036203298242934787682281323564062646245818023643215840802399520864522475832175562376099095388850049059213522736551851968357620436539206998575618931685455995985737980310324094767735458181339119268583285292165641170770129959566143838608514360264055869375685953745040872403951441564228789624214776198096955096900418672345597026583444006329846873545136190299731869234673008118374863123677635814481000781323946919020170927105250345535109913225769585263232068282524343974264895275516593149793153494267592416380975382910946333943415414338143743549157512970160638510390655361591331539662759699720254996741070806298332801796667032700632386603039687145434628253681867628441095400361722550850126252543387326531926534369871461482717967966683884016756692057176600128556036822026411792611568234464570341196072590476825767250564428865767350636081540146172669429000665473094588343192230577115103688354356667300563989459392401042487833001024772561093282856927778044662520842896160284882482045898946755149871822401321187582509199446008474946656535854911026745601098771677103189514522387756533570407401657695651655064009274426792406848188907279706365503917227125468486472546548297707168992196165022783483669930049637401484765000707531167677680476303971114313177060706977845696233635504196690327358612174943633399239179467277427507777542107159346813974050024982396669721279275739087352737549777489005616104530625121083715292113893266300816305602177441686300162708737719113181754911203622890300859484910361395532864356255248589854514735477638806719049415426765549356719094311226370192136291814075776412240066060933312263107416565617899336139048729275445580043083624269631042372073539806215186237036088286827668612660443404455212272730653763174711772779159689141123463076047998080641287518940246093630864555299999635874286510094311034969147021871021898678502249725651342203993547022006556073808508610248767328158032388800494909293299788825996594168339488069021591545260832016256692757470676629114678719792994161061949755427504674987747378419821194471651728459427339590290227793971922871971195458684047557869582970237551231356566338899368257567247597894945485515702635836448537289325175959004029980768690054457490805411083186461365927342176560210973904976252906895279245230241870631255314144108351520728912675968500571008430953983532587837352329823961755898426903157168998641951908682150667559023404925110792190236971317249497045040426252988936586020251184868258893848960190701324009835487186553409636126057653049152294658100385247624233956184655302061181030836816451818525139221275372088196694281724400764281858073056901006227650037004556608010034078809057876506025611880854857975490491138935077637770413415724482512194754121918502712562835399504611665517645291087955941327468056258686143236507560917466227036048571337180649116273636668162574961352224975521318575831193556522008805369640010748790164684419047222883057950094113518926660086511226690309810045286291852498994234162343949478988513139470781769980875556218036232008769135128509400837123815883270354514394905930688716267629507214614122599338816185617230179441764662012698388729344664275022927628820820448976779782794006719372308458598699308280278463058063577468050681348731098733663886157388806252818950811282641788033368773796317364973083665536356405533078436158841360681378192299873438481003417754725723682728065585978597522031092588609985033323345704960284964631287102954096668689556862471676951342615936382494165217619613994963707430297395702865674465792556923337622862127148943034467438641463389576986251376889175817213553238284944468690704411884407973776531564428754064391151921165520170810377130196628819634196361235543020248860569407807215843107092765896212839788899548026581828508021348352143760924030918367995715001410443263828623206230287463304068210181644735373193729603258880154977531231700030441314321575512697871309079399428694510413285683952388509148212598519396581433152832074262373296652399061943778821523071704569879465597674057585520555264035372040369447631477502543572509654382378679098887815889967316954885437507091597664203668613971460323246511049019671619751814110315853772778685041975153255339556476885374093463003454547895878180680636469966878191522984466931554435470829009391818063564221676973630728325520915788656686831854935316038024932112025025722304962032087677989023292506090042365111783497539915054744952684293739305024681806514590314998784404328630104766178730922960152870876937671895769142332315118441442193039278539334912330710853922874122160288698807345929111575848424880997946682366175009793519604236716002599652575710286781320293488206358023205435207568215542153352860968693635348230799089837482928024992580272831862223358758092833452789680779549289396122548528940928693968677251237097925033402253363855995103051892975994614314454603988918938579917527046352941233311075207454950762427506856049683346056849114342768165585247064463065578495050213007915703316844429876608840676585534565182397902273816514416456060160029222118975346119962975583154905991679529495029534741607046249939074912874546159483506963535632968400113229810569858593222505415906575641445623561104073996273468931889472266976680579284185813120749774230711215654932735982807298018999340805086059010961890916262396337809233909268929479410709435019763923283253097297739300393603861907735771208492939213481094221770818289481892669516120652671028443200577583484021468454820188024892416941200362357191568121716377850472582914177345936008870796714147268772600972831287084277506002931744643913188009166136368255672598499003322932636240129247291008328719095825365338310728835165113376782971401409459346957387751898310760958392536763651469457875663800466942980141579505116467625305038945329901881574619205817644680448173226944256021942695395338085269472202507432928245438016262975064671607598506293006283039044914194030912654128939262731275581954634059154008989789992561308462464046951131841832778475981863674005235473214865135084971313496193128439415832138008063697773441916347298058143380780332703834037524856751508924501651083891725354084680281104659391670293120303071765083330593633921515777333099303352950258624694575717081743668301642258630810773595467202962731907202055837591133036565718916744580560395018319145084170940171979967683103550156683427986403945293072024548270569589412273983295564514499279742616410860569954397735085829526465875045123438394433973012248845008494938414021230879038618353371065966762224334201682903535317510159207405601954067501540143120323506093146422189396736919263794008629579821279582341403684671077261943479076357589211544373658503741744046176258826993295225554055088238332959385874169351360987468134637607293446604346751256882007343275905557810518759583025940264629174015868397904404201201364659125779728596635743114540561825119310451120481167202256551451951463949637498824402741951116737997345066552997779886583890048433997640099818479532365691980606778399635143356897776742031906076545270038727232345214888650249899783859078786731202557602450823213848080247503027619354546445357843068158279370212903845910770666821181761119558201707248896585622848205636696405895555104465304509543326190426308795520044611337499188537862850181801064143148926808126856329991981133061464812698341754458973466693346870591449819586819012239884920822200908651717661902246488777564075730665049418298366804483383996372048766870999853451259867203355118881370737642389487888745556918689987892092145110560668619611013942550738714817824001746489993674946302962669398767625653691381712239649179635930705766107329005517853371553219209507120979127066810731312595338158740014675690244247466040066538804547675473057660936849979615688516723522824193781239973553415143620587918115460930770542022788427150882271666023709972444373940924826717574059226830695791868890599361888357490695600068799132231399334328831221791676515700205319480943930055379151877375439641516737505506214193030047997379577519600899864206178175963295706717773117596741176977324230542862117991810959224896804476697864853575880354218301535495640155041271411397954953830119160836312652019261964811838972800604748749823269983823382767174803528824408988156815849513684275949105460475423498479934052148396131172787414201522253794635647631455096568591861580047440038101936362887553991447239485772201633080249126358970492168903540225716305186748733817913731566530306663138118538512606051680809226054454722032038378261672916127472910678789540800287180551403972375507072894539379711432217024886661168254775478966743990559723282844316012069412961166680261250319261137895701488692017663343491757815594623663522417768100063829754033171985682900865998544017418852921334228080505853026860503894259244699415143500658306106517071129241119190969418189470824990112875661933145703757877885835522256790621595925278096337334297941943425464007124569947243604554324973241642215280200361366320080948478311438962463177250665061278854719998892130350009122682218407569364674116877533046096497470896752685792289729350885270227042307647510864406668233543644040263017387779052903119987673897234325598127458651617676345825721450076486160127008716661061691064059687461502226487819949239251013587996934377696693852527817204461560669833870175946331887510130745298187262706786231975278463101505421390285015251557153316248849867785891521559766614697999457688140198889375671487871328973451292954627903200170696713612253446353822596453991241421084576186043393013292640279281443730584671885760048577211617272591319355546331774726079596621283502529132185094864543488373592392475641463832634166931008012277039553920539582688212658174092086586029796223562065220358698559505371838554685667194815342512194928069275450176560497072964885391073665827493350626739917904622868829283263995881712212961291365477603386732874431969996287336850782986665327698610056714072814944726556148311064856655751484389917797009197754810767958434314282980234660849451866970610026037940143566374935478452465711649204166942421775184981009261585758585073533555148103447423326250722652407233982178063348900873955862980058815126449010431957962745437678088628935039661109853950859130518289254547081643633000526370627000956250473994252493083918470114137692411411628609578418492702704804870986839693197849925068584343697439674256633881796874701391015417384146612690121404757256173123659546854964146839845630086508424769000476906467442505468477070588875109558199578838530527200133140334049646089936906047430933663526540917085559683134010371864985147046934190942506003125184351477245787846093043473883578870517919844492230824661270467271135247253003024777487546380318551393759543658389248192140075344637996749372701493290399644027266230129547864799090152469383593605109348552263775670181798808831468181415726925595668547697974960377248387191857277779128541849327826084912539776904853623546796063842283325947234451082983426793944435677534858514887761879587396457146282279586116287703417201427287696724082430737335134231205184689372247598788416953531031062221690727941228628309973310632092763223092736164469021898711844769667274692596419454699047036409849291400852058024459909183312173484028970634626200734584160168843710247212633720487431289395046036523555010696382806921693461886983067878793110365690108472708450476536119931305061957561013442563595004306049345471413594571651324461459179990842869523323497132081787536245917818104939776143391556690395255543425055143316581782894001619070181846518699254540050517099559913454793372060253688158023041996788206322305724818507810097623428878123319083506648316254870413924537818004970583869535933981659831753935150533397053074168223124414250374067310780875978933682877748686077187998344276801808613495061178811003011067121188348312902285427106500264177411760947723938794076664191708492449683531072015291451792427292920811383799082354684997464990850338729487024518336656251139509566496992495478664255910361246698129202463891341376208119601741810413060891261569179181857780451794123374347864459459719682871861361612292862341709802204049977952033081073615039007537539095818256055904135396970539535639878022553299011951428335291919813071358572240221157335811800003526278810284250600446073102038611822629234380297499006046785407621455191610105448948322138129296107910027958319861160595682327414555681551703825042622714253050181756747710294825516268503313705161040799689283748975653808144347949440352283607232352980821896503052130290490434609263866849048473725349815797352441638848416033007058588631289038954709146370331063426960003352375145207354816860636907700080806654255447323559625855085809890100467763178489958205263457061849288846134006064891310200700732071880794366692720428137653955937185201757172903287733385223446289397848126437392902421469762970208191537473237395926391132109545502051781533821782712473372288581119754839605410957686048711476290156557786085246889046547454924494475824882567790666805304403428139430401681629764838457063386924450500619198704141325378253862656069125009667166862466494404283647026755781530255997368623103507901048756655444786133583959427069809049287535495735136853907667971684275651046296365073352135528083373421977865645191784976258916321219038526820692130096787025130763394408058204587089507798587282529808040762975569189372046115926439003357837445648296619343027653610235006173080212915924887009479688974257204048867671536792284853000148134928366393407443983689665770653726488919032096852837566723966442585704645627615383666778099491037346252597054696267467183861092402770893885543826159607279442026335919827979725590480558691942186811616646879162096541880054249641494313467178604561129981353622719141747231087253453386719067965526112972090116404451360966921160046378924253130973653213680018888240219490870304288143214187209701589078456979731548432357873620999610678116011953530922226736756648070919494443148499944852076896119386229847590576768747793228862184623010064111580236998666244099892196321231961189610252284770287254019495788710078979556663620699243390738959910884526489995362815419775661070336190848353852200922625139820999233320675884468443097932336933900379039398360848879188954343425648796656479890740655199744031468598460736271228281627074621082990030132329290011925041807651773658767758106069799128376055099788578534450977613086321457135906548101156733543783609177819528716598622203188705197835531039625324514009651297351163128531089484761484950536299705897688473009659815045605638491810115302214285891133752250315937790245166756517572396657004895618507197926036641383994390289199796628622660281379291503459324882669390781402478830197213227214877273533205874593579294122280725293729461983149651532503250252301221002434220702029540474621619617218405468048787959189268633642475401743260753743939128746393803896109832779712486499438160687389968320116882732458520341596146912271256955841483111142869538805850482538481528518010713452217115443468601924010260261462074994255182118057145446579858193648048660980951678854523574429287185354452899241056261333730995599251233053106978226771375747069532650718624044734556773137843857881365585379448970085358622579234896105301196666222166728425739134275676024885976481041064738461078866623471584388219462042995274089900330377496109454766614083231559290797307565595414711842317347942945572867527109841024948643978153780016930812149507653091557747327565595765052269511323695333784137079985273495378979822639148438217778869098923705832934971940635071033104051838371496557373549948931997820620312205152456005608856459450997096247892456926985254579499149349205519111969459903962295478364568841745829274313116156477873034890692179425270513915927232415143486436630208201920170533171867979653670924619027130031224813088243205290811922073779792685960620602637883384539246756313295085115253835900180366030564253390828510424799629543070080172142627676269718881917882875818908655499420448021748575562284362267837534120952108476558449512962614368707933215743794689333560327529061165572225615519260217315236016961976935527742971522572609833448168478894183519012422340126745188885038065151264225769014472219973931523127482942094829786896268363479661752670975054436729988140367309293459729858422313492831372936096386579397618407532438840284675244866943609862103994851360304860539419561635971683476629697399142004080600743750789428132355322903069862453558955680890747770208494006825695193367614905479720089019696908367114768678228534155248603357772400698907594079009847390693887921073630188681366173379989954052059089809004483642879264265949612798508256092860925577216493343346343224012639607114947522606803175360953831872716543782034827707887455957722230791669659833087377585426197048402889433025574401315404853298263917128072769833106038910195124581579632149933072578491147738050231509545979923403536422619739642246479389441884161916025002503557264816287245768005023773137498990183684212159047690588293888061267874023057446172221817449074687147345418566625101645797205158357780183304941245709739591650704610274659170321249204432706691616106700745719516834903509206455095463125638309442467266834146555482755631480334940433827292872701814244039459851114364637651021318065868851180964023697450185163586124419665902450407588540983994349504892359649551430811057377908556163727832567829800183868473967431838439762360751240772690465160651448192040596216304238412347484503481223640335337409234722602728788663125220070122174215073702753543793472221111721627470316612647684574991292163563287091429051730950895985906030333009181521707329647077611542004304902092397358426969442801639062158225404448425921869034015901175494467923991867197859452233014708748535496490399055597015896467201191693820934047666510430801506597358620121232361073086065051102788370155786099957936463957570806609404950171055203012312672714776729067971208730482027471779522530360628474985770412263992442381339813043560186518376653033806513217165053331105921569354020962079656746686188700532363420456009465566084353576824367139637523040745288256792086571993069141057453058733217511525162210482229911117898676695791816793453561526490539332888627236680721446740536944966139532576073654865339699104721718196830185315997399598812812437950398580878691642516586725942216108945956227099224509291663766734044146106310756512639441232516123725194600561642270092764830756769267513558764499562263963137263867314143224545045220334719838547240695868682960516806142176164946211719437580955883049960906760063475059465065227069021135396532466432185772996316866741755219578947436759901862671705971829483009450530207162049783549412724071912236331012216361394971074782154568795941088935850252390989129691393651641225046807342092316975117468771709298917046142828438092068795880035512952316898810978619348633497422757315987401788413676621107441891301035160477564371042303644054943637483966142436280125143936538865466969039467275089228931537998286544809582745135195240890583393518696592668087629036440043347689415536005675193528881708266500687759840985183983969819272510811739789143885030248435619423483462219086473831895920145038164610684204149201913932624120998003144712200808259398047362067399797672356787234105875418716200711025461261117210122267023006561244532572208550426491277446831171437314666647385601865051498100193832926978320386730081572213471078559601342910617540527069331525389121176676929989986562634692006669043233295096590319621988760428676459173949667205204824858297368346319347460597000736275992587999528327131153923009439684756616985353146827584052588192287933185647405182632313556085189381008092046563626630571910755044162601631529743683366627847539941009239105101989105538383240043717443648768897726399329193351536590744392212328113542292785132719073832595013672367621729712654538655758983652921721080851684154185760843727361848478653056365085251456157731680262961366479044008827374765851971456809045700233490050624968735447167158596209169328031016853197310648323176882266843643274806265961205233563466762305427315292508762657094066131369587335237651031669997271657276720210192255098865818696435402370359686248306712396904796508083808078788856665695436819367805606658934448111737887961755645936128142625363085928607650696312845803493002701056973155379364225708568548021394866962395099764155391022101848986195327634676629224693692408462409753578736450348917838522010539143695323509916050455149482699985436090170121753502418274920637155372775339001482125055093609811417218022201464050559115623120062376545460173336474995704903659931936196891201202433166579646997947112140984196578620685376467697288139809021171880725015034310269462912593216666528620064409372904014294989854643094602481158087977188263564000665976601425019482822475403177146944781395541021283525669974677762019385975048318831467249429238118481408625368713694613995943823648734045877089872701373107111265750492597059424578788453675989185484539242784693400121725985320239525267170655161071198559637486962499639104015061356604101726500670343257322260516342438302310399858299547874369433273459205119229862645062870398858357647458652414785650861348127700301983723880492457118298454467237438886908314301473197371267032182508290480802433804019354461247473067638804179933320677661931981344425315661638456957421274006634832689199572032376191075899583334286804516803134138275974128900382809394247928156871529350288946295536415301464113033735750530096193392749329674769649676277719194081887766794392757223128941204483933814671751796513472835306328239921412501498967557197059766685248097172764627656473000621257203336855795815615627308673433521110243029723293500171411394339125137104901861319932920324977565988936873946073770259704830594709259950034088629892221306666504746624015149394802271752385859009223241199792299950185364822677070013873126315663459767323046368581738710802649887731812947579803625768792902559723684221896419949734057050368911767154368328159662417296390270677187674864193181319134380793984130411176108490092895737212021487105527236463461241048198512530279295493341793029497363142570009071746698021885041013773220447695748030702462876821750461568207539680259237608360688040163282885261293186520588357251838926238006269088184128972244745092077206582195313458203255689790199267423206867993408804256977665028443938240321942496517494060416413983407799633409951352664412105495187292513537740381367314042833533331670294781015704872353976894934891161384734658687717868498176125252415680831245679944886210088653326979126158743378780869307839020244742218817204839126422948138708837443313017072647579462349403429740494570946626837002862391535278362759651072032538421742767140807106747457690318744276589884834456681984251095078921072019718498236401549062035259364454025773556017655566301040776377554541877128987231043316475016466015332017725039642817416077901060074023698167508481972341458877364892827705139395844700450820382959287962464405956037246799463835238031723367929707067671474951766458519575486309343921827630294605779609763984295502277084023719389330336112846090127764397091881110155889234158853893916297786777055037981112095505588872711577242094757682626742099988587851484477124290328237641111384719461954812232540870326404595304456293072603442100656338447499890595543881387701510631958966053312721206486347021339292146151671191599477990801719222460285029075718520270642227397502811659529910287597572118712603483567001681759121901020086251941618628286645988535206186367265617726398224601841233796768645456663614387735816177866372937594855971622940710087199974652492743826923716697546275122601613539206270820703158342976685852463403240029409592300742730127586394107300853871225374195580078976267589636412348981859647389148042858284743497661573415010173828315935911379275611015328606040949211671794699807295531326443640175146404800170692922121441831129033946225958936104061908044234593010618577844260810856354567633225949774694489919897803306209386593183968922330677041650257353627846811504355602566055200225930058355701764764750362570775307874976177056799789389292324499922750094860557957650378762395982695671070049275934368150665641241358390657271342230639216438952422545978019381619338341978313275911997502443561970673690639989458205411371507275685413916060169864514640564565873546234467908435116071020347384334240082480287691923567194657634521951656936362981357497073270261442172013926415468328653888128260430883516680299107422021734717299280714361800755047618817004092752571241870471806469465830794872772589127265413199818957219469406138341464743573562570209233201814162469647776840710351541773703371500405836175890541310728015962435067359405306398289938856773007369699147067784775322504426372907155717384047234712520967158321922398374928564612512627623750587225705117771524842983039375868760800188289761153369345781920648597906993905588571335086331309262734629348717678059889208585984928341112404509871473694341661556812724775074694985852850973348423222255543190159666621075171380346494204748602745956164775174921413270885196274378009609710943442284412672552875118916509091952401585208102883477859681649773982264352794721183122475436977722542513718399292643270942357206077062915353082644994819307548991978811571942954355501578697178675456071337483247709611649597762121328400392724967767502353816845110526939072457560625609275058303159320182088466239181343901690107284625890316061137116860542161548213207092157700496685141976395175585349751975446729019705998952557159444239688842972888021273641691290219385640477062505674572986444099235070524458909874101454361832767265232674623438341618512488258206747370974132385158054737236810518305497763861893345200261179070429890688808241814806608383289564351367403413476830948965187830775892462431206758621320213191260094782039698632981358381824901319331345470189328492297162686664519560242149741478721155781906866949860614576745086812191721922631663309944655619887495964609524251907597877461307803434704055753285709663763389127305591189432393759601689642174194467023287575549056248588572258683049866459357166825082921143794826143259092760039853702779844473712198574437213678099209767139952028539358417124669001133193448528967151965491662537068490272061206049733414583325965157927367781860791773393124115595498496831410544479658654469286949465566863761768842165637620479469853292040776827984640341618756335472871845779092691884300708015012168205203604199749266597712853500369881734279717709798420364741349078301263908015673955630395947610880966372360626675835531822597012172101550797270124401155232085553087359738719524837943159093221326011419625912685873422492496364747342806338763415276230940063524622299115641501539598694856578710197665145416220379227025364745436883851016455173241715958974536862296118581435121671001258717921783894900900287306880075561831105740814450623259195398657320242237131513715334858003071508127090797193917079554206354742532794033448962749736258292903436577599567960572087199402509917015566257442562868074784450899948085138944970315108153292386906668137992667945180401732335457503197038816895974664300324818770536705295563114055187417873200233987991712033894117246578651550024869458306606860197639489942142180282758671687258994148572181447375651224501505783568313995048386670150156219319017038453978791462126974688171064929728346734848197327592133685467339884917131481418398746096581071705603847993821737628227647108097079549533758269088417985371032850391417018040454302305334523504956630262116841503624121429853774704319699371076819145909199296281650296373878414047658350921495238855098788026032080677215343501313199760570334438302418556879040644669212764286844667380639398523925614524280164203046613871136948794108750939379179933478281090213903405902356959088151993187020724773798975174395613163987239086410646553919924447612083982506256229062695321681050444833093326533857283189899796988132772871707058932017693565306376814070984271602694623763826052215477688046134102532767624583059303781451660655224874917765320768943310335271815675801286588143974412103492064439847134339196078530365138981503970845679625469381961016128378349411543802322469732899743592296445976300533970111794948057807928215552258195766073383107215106986226597536606085597058936253171679571849781556810788993935439689010048753071204675898945107973424666129183226974429605723582589935463956802918259031925766088950584249090339469320635289727337678498700606894928473157107294069553274808856752656718040979980069635603550917966521812652488397934348408120552086511507602348146604077976564413780017504363611697741281528616874885952870884784061316735549241130810791628847539705656082278510969443824126621316232442761485850201335860084103199591992021823801213346183158685539503157095777539215386749522732457402417470018437708442047238481246239025437397714740899792488380183864441863521812133975612139842732384383112209590082803726696201847028733936781969990535184448194604825434566263912749684273166021550073628678870569096843356187210720400063575064000177582717207303945312373737865730210568188063292553804382131962703790266755052586827962294675692236936816370508202217255175024850387725112757524574422751835811131183035180592558053501035747456860712448077026281705210968602870645621224954025668104525584330988392720901845312357218823301655688553372923433316883549455421740602462228650215774910424069521577931272286701594750982335911254500564605727021469050174564903579606872533392901954884476537759254408757812205135101176170719959303945492358897538123379034741559410790038879206620863422223797222922869987364143658165852703329289245915547738796513723576847912631493640048614546087116586708413288739333715207516637670522593934716555726122793440419150450225947063046344783608423800669093584113059925872007507000157404479359546337690488058765966129798830961345242924055164591350192582812116143699465753326596105583944214881661573736724667357927507365832075550089987254170571223937830698133110826693524452113814659168135746967321111350767304612414609766130728173217270128153722977389275100777282447455454241952145230481074430661236080307984035245102121279052361462499983456051165976049343395175048535322521294162443270590817256907315180331070317439008968777255119538985254101784471853981164465913124913943575179624223496450447941207594861397742187854828797126776464684822309160969049721153116783029559011421123581872901494149532780969573056288460321642869987301151347070742917787979302470216929773565569231975554827437500216317008777386626976882827629192833883004183279062351074554982271094089624612837572033560098380300627563737284021101707902175489297796526860783737329340459188830794782946674452044696935472337142031458473180667074530816682987103325621673726734794146098420804314450138843396500180700363668986083443202410711113211157785066744585656247318002578847785429223993001454042040220204736334323955147828446713383348209607869681483461335699174910744090702808693543842443024747101157169381867518157599395009803158400306036186009318434712641367262487338904064660677388966950717533414191338643538168615770954190882147971231075937652632375642885020750499091923650878648608812015570188048061942120579029471720590180247358163031272112748053954379002583740224583843842138216260220720647059081238097968050382611290375781212814489464156398659167769807653388114170938265760494696740950743877445500536186240022549455594832251336341126298413120943850158102743748094965005785715235412523961452077743590463301897798692471293808995919807819453697388188201453571111054576825770715050557348503338754614244919805427658615334531199689817976652775566667169792058372297057147955902759209577996227265913463533727846528359036693840894738918504559029670902768037860320964534081907481359879301149717283557224674014210462334830204768493382576411143783910442804589422690499102752195156914758669575922339712248268196608262775257794302794850115625175660194063854982230657648045961140328933919844581564993889991807284285329551715629954836791036380667867407562724175902011249177984195935130652901207405226567395506066561446986718559394232074534640098010124769231401219147196155262798107102004076072794686230677481588076439794746209236165512891464193779677905692156700130965264480504066283193134555257414958481698010234052324201174174044449596641888571225672804563897369502921896994004341931219032990029575470137063440678166093037062727649870450137966226615513399086143797776448974206339558324710196684555464892701357932822718155353190042014598249344202332669037218423992779439453724810862416803547531613554717809318567507680017446223295962274443973148115020064261380727097580990040923584315858179716418221053416619380167826469221309501231204699711242992499417746729021268763369085213921956715920939003438129077851036402096956852881168331510219482302657437653142839319471168789835981498094583573302106419732729519919559239443446190724821220611751316530838727946795949054624220717333993230692662373126114073567067890847650933173369138656494969586064388830589921273091055971501203895396125328630405015455657507298412089890379774416911395426363228979132875576481452965755568474429843264339846638963211294207760237931343638257556636458301615208578099891430031235637400869672039775084691449141266778698589225015213277329985883981653589207853378391766096643483523720801960311883506115940592405393971398698517602205946573507512684223483259075265674409390336532881855432733120504664220687535664161572134307498870790367512536416305050053092619983870801940340567588058821684765009128498345113056490566625972470001315277608277331973083534044279209228500812267359221915778573397350695260279041342921795882574970548448076648542567704355898379186223346883912378696700296733330481806453185142242053147754557142034236342836269444298833531750427646284599078448124269110770926397339778380570585044070083822457112247189573752149107068330583588971670136371889087250898108473422647934015691609324163852440309569394399976789564591413429949998355942792522060347237069079767574878511994676497669501972289467220309781116477058331963759982459396419282888770425377977168097183685400326345156888521805628815771564391814678049501839966678812156178672927655149494098096812319019449198914799786859615669763232811842303436131657600856722663362127595155289622988444317884217931268266269856431223455695809915637327756844363801552568054264105127216913366672069655059234834418051996168772180479133232773792049462918161230526571991903913749172234892693620505547945334386573448132674459740005701124562623534370937606159578434616960667112880460524984779442723742642435159835698362215950116773121183845018055697605213477617881230781475925390135408494465566538008231326454425160782026906436918731807087833839900023861669694593877862834847888835204552023067242002423016406422994262784916113255517940888545744490788195433934216698467807539903516184711988569751735218631231341817621427586412314723498947687874228800142059102653655347187230288139769392032592446340951580024314807418722979617203330926549807179652888920229087200737361427177730609364530729969780161260336311447280721474667162133574466345073433014842873690919105131758592135140295180694781777482234580044678323220391567393618362465242947280514526067984390467079231604112788268027179694170299571056364390138057146493855408408987959809340489623029796290651139912854355213896578807898686555093789472598344431601814980618666242932892087472802872374465500095560492195510337020396512280741753222348170271390417632074357859032505103489737702196869848296430158658177904958419901789296560691524731665273638157401021250532399206288695800037942850226213753198395691153507533953299206741672776401956895746770946418175856572098000450406204152421632538738729092301579119321991726668470715003354233643292876566705041878636957094017479328573167206040541064688727366294924429443439557059160177424490660039590318406295521255837058690606216102923585291000202546324575583837631582420327998649390942371428200992754953233423153689863372786519710325351261527978824243568494947358440533337822934582533149565950611736721435494532295164776153750222397468051453576144383302680884265285539647243534983709823981305165887760960998090666795044107107035303737463920619568614872609519951284843195011584139429052745345568292843917818762363418255878000624560241709501962634632731337138046356396271145663928070102731033352605635915664976272274669397955709390406173001694547282504089296361777887648877956094319728165307169963985835793539974536331034111574057456347758852807631374781642887966039103958469063117782216331876962959918937594099105058488243216019510282738672320622814153830376815330645462334951529591727110364862479573349282644316731962752942845980929056518347570956053218836626494601600865627457328386615977418303301224140456550508080354993775995976646173386649022479262137869329607601049129484644590601195560294626943176341747433647455440470938220082834248395452822160663869011663786818204626595362216811172656178241892622166554160236721185073349723174412374212651313412243539013350908324725935903805778928712673675114793550391976749029272949710052985595553662095096850725355230177311250433108933365373266325590555548093865618913773460526377416969746437148445939946489614045300278602049972058089403588144467984018114303036434778286832332315217474051036361477359478528171989136918670014655914009109326961621815541282237971136377009511708806576834465617005766739666478484078684988736012568823614494095490238102775412057984341170993239566715857031710785981777822999056946807332397693074564162350574386309793270813838221399583596787761396947551051459316489780017036620407538291811531074658040220985715095219357951050823196902029049644372017882200386570274686363121057325721694282577325539562597771693606889654160061744746432437000136264727127222882796964440417601732766602048884289077239571292972457320882678576263255625272719200890637360672926480292555610175706339642789462857660688044435601990851019585431397294377786887763962749627887464230212802263727114067726160377028298661458319971339588869039064759360090295035516561402205022098053825396156759169328081468986288820410276219546615894696416097872920614462610574522613669552460600584102296487195054588819166830818805289709677518683572654623062810496529419785467842206131635111565436746995721728710073058446543469241555354120215519420473297686376736308942890010948791197150988724668402284670035541921405028210060683814885356082546826178505424050868616714808235589195108354400911174052893377808165748207827713212366334101285919270412894097542106530947980015537132517971189030788142823963531964283690321654986008760153032951293212057102728262081145569173564359814303477813340132638357492218766076462625270812932633377258865708220741188921060092520935467722074441186372534184483215593377850339530453410168433040746757410288672205610961286612316145938359151369324062300931317328275199769712343169876837849849835005289328076009643644634733065980084936693402470599213793301725981278291972447147998471865434005286734384532729464524062648820871189366742042483449118073406022869037049093481735470613876607693808596675677288198033681300831725633424357298436127179781196295921103297250638115257999355827789900993114633345876713697453491359381602186901247780274721315050950034855726925221007484891113987938230951354168229109518672551719248948244452499489393203076018831359324464160516218955967180266283763032713493616801310104346530243007363730913436578546786167773619417644285210139836490151401476823517358371095853001537104534290177328383028478858909453371408636345836559920021842696160317706187162470923249304385789164091002236349965232264621643328805515814634735390982978639572968812961843343824017980582413526718276322083279846124049916733764395594698009583267203193225915219713828147285410565837869485647374531367216591774681336946500425034231674008047604579928667410078525344418179964423674283109687633467320465705498629456346821552902077176736749500388936127125054700993773894220923182202606116130102218313292460536474272659408637900972345152594824463357595366924646198943811549984048128578018777909737096735780760890942638158273602177501492317351385613392288833768689964619489276012785157057837121058058905402689194398720034177622337234616556577615391282644167246471811523863496553420824402994293585321880802357204276502468481454707792156421168840011952751744045074284195398982814284988768446014198521254775825461111061434480871244011789790803907049153090777097710573436381961774124425960084887876344561490987275255125884466973577427713431127126895883156045849302486663855581803573072558252173146028310827735249348612566761625042118575912036100946886380211180297822808980707454565566325343040116051486579231528885979477575172282338723020948263732047794936222778615100009845924716320225520323199535094570439278231598800137462437126846586020542377166478964649130974891926626070822161952801018437496896843185404300256749951505264363727189270790728691561176629149667409026031297579779972670825940385073961865458718333779132530219172954579435169360490141897380829114185271954172306843387447872698367509762967817146025389296154848387526359758736131010546162382024982920860052670287062859247709996566418147133910866723437797942123119918139743616773434493849399524172697093272657798562038706099500749271238490154597683874684091182584843299369903601200172938336700671842525843640072298945407739816757046619836714300429537092737712877783131797600563509840322800584707778832231170864184094594465757546392515755735473608857722604241126828311775928067177298860228610036515863954154743053242365673308109184045124878021671793595711246700645019289198939354739388053007470800518696113721452863650299188438597853640815211440699878638735153759595734824025090310021008269273332801499169729122103533041232736374472025920912719016399233558366035581463615414457736537481378504714170905497232601107204074754841610362957133353428074951061154093611040560155545066049003563334402457848216649818269066414774174301739395789126993566446217268817164781400544452578896489059171586982385597561253571768158586404633902082576003916521659632857284413415448502833385829937088986989587690622129427277646491604125883945667889950017537423595648675023964803821335945765585077962796037583869866369820348736029891093314546097283194785986712042468876226717390421170372514002464515504263386680257579667649743802307394072439906744969967414090532393932114919294319735414692427368213366222311936235623503411453762107838569883302099831682853324140584959317967059048415385260773414077570440313388457130923830849086172568194430017363212926716274508236345676220019420037875106489505860742262033150926441435677695084117624071661944450371124974546214702543482798727218500987751633678747086916324518780378069221291976369975978008625406973883026443451587973497343129062280784261824364924335981219568343227034850023909012523142627326493814720759104087367965008980300589264224732313457262786916540843294402981725996121590573609789311770131173879825592184265694616947972615255677988025376452497732808068376444439382264065450780460404638520567636350898233621628021826124437532257149458300047448368425283057016526359876357094005563854059210394802392888036271768401443408194787090877553340306998415454033052131622402014591480307181137306576480373504708069788072149691851689541641393542334765242913438915419518670997392024345281097093591846303008632095748813769010482003318830474463019879244745347725283148994522174007563065779639739561531434882809545796222232733782357815192504093819004073477854541287279253708761219463950519530290015642100371069714229613204521521049715880247017464422516936368411345959305116433045416354169869663152188101417546344596766245094904675170701231254679744337793172770210661416548007680003428203052600571292984646125543798578654225577093693877613810346927435659584800278313524607716580671687701578337932958633001173667506573240392769476156358749685198015968948028600028521589741253110422455623206555320760327163541578365805960910995574812551243363527290494315386182393610496375756031541314803231891449119549791687245728620631481822922979820978639377458384848836510584169514403687210446504775320833127288610151586883395565413355105708008421221476041941811318746775968130365482173682926154167749815849928721595116136608647668879345292611298515765475955486173400465446370243576363277470148515508204427297848095364688361107240149765528941814302717262205125025032708687277844122921603265927432165274658347973929746889557133172366099984477165165509873891696592260751791733989033919136805788692956076850451354702325632497609547342545973749821503770352418381979983843353364300676758911452071305598381620923418611310611959273345539042674450424536512916332842016868780714031258151514288123893575392741495063547528164710451083615929213819379776094186539788746621881211642260417013078237664966628898608471696580497317566858390898583400396688671414747300586134307740521878255945726629143322214516207452802246561201647865979452253114803502127485782346605157499363454435111134342518154762676586358022725607788159259172354206959364873295141683960184802706389840966927693800733093625932345610261624521003098004882428129243200748058653284038218146551701862090508213889960795329328970023844762146163939072292357507963819616363150570348476125312223586069783937102829722059170149023712158516359092868090850892034731150936376579416692192420046120271464175232848751422768500478144671512989580967734003681906068821969493545581080693760438285698959591069579822298692146043332737740881614859121771608836366099740506729839243082992407543431904749061285833512194368805270761490118660043798111506151105408632132284412936008688152835896086699780875765880504751352558178741349685671085835335899252843044351570055388792716492014250386993757811696179362049670737415863355703268985325310387493305900039523607504909963680727573520755161187254876986917667308965371031098012400227747755291762924341384465661534152459743812833732995546289816145685815110588472245355244882980232269764917142319614070437799108900090018502210737483473438027443496579932452849506861938145786149913157229002348224964457102877148068536609222476268405165013929729582261717514210968077450181052197136276428108767733796391011795658517837456796656102012377586209427405134522430153784184640453900970313540499774771953203063152327656083700411669030671590554830715331334216888617448039409806588015595594842826534227921914174902930123048742963846234033636778347351986552347847251521045931533387482255538678300120228874256339449666992184200106795280182330601400877586855347800874084597014757795331504382478334709369304787685428016216524129048692148646312653385000361391270046745201603167000795568661270905839850215876160938477862770873805886094898728083533337065098534904700812456886280432968818964923236574204340787826796578365841427601069072740606972447011663782712367338327949355378477836399979227733121846143292427286938966395141543729415109510352142259687135676197679798442068895016678500895851864955206917245421514709922441519020532129865359557884785898040567609338111294093403279092114121143751399583470099623583211174791341434814260686601409729202272530830196144471146677225635808078921075071070074817465015266593184533304549771413370903622522656016196462781191336238930973618962736533919757627982438404987023435858372263273437391909493688798341396428064273992889698659453173921601342445983797675001408145409428019393924272587918095791912917882023737004181403340788356618321629073517599617440014621993116087951554425643062715400595438620585426829681553375330601009999333996436938240344952677772206909595722875887654489372427020973042928421851396410822628216625883817387997200102432873493489604415277057202311342944009166085396956229183288773613304336855378102802364368053250282342184704331199200443009605792377369794208027180930740211106466365235259696516735187283122929921418740689897652114937729633239182356832206564575406272658276379585238834602880921362243818742214019121925407440403070148453942957888943100772474772877308567016230096850583556971812517637379527543873381870480316719526034708811841652682782946929719905763342641138743914714831022858732391543688809016727533467640865818577642099195188589295222738596079363224596892320929784090689872532583518120943637612114447591482334363981239390865208009361657865871955491492010251446744551841030704628149138180303971609090704191616269569918277945122000519051111559863420453191612292575834807446351148361083414552350349620682184935759503845233706736632829451020065987578880797698586325148948275468334870033071141641626470263372463972831047934650428722109574210114941014999029519122379692921053016549196952276780012930448659378652134319293470548886072744239708423402703106038011467140396055962673544392173598919244767441227066099207614367446850148938605691486023060955070966036632910811731290573625701434975539473436024801344059156415149766520098660197369228178895096672333444705889011177162447553590794039349283763351000795638974348112064487615122932295999763969282283078133288045243694581032258982484849195773453103313646400021679513218146552072673055882999041686650709153093162179088686452271310302074760779190017163841647536221758450920054400024655539146087199206056182255624953316009602361883095017802593252668315645260160813382940246548383995837560996581968573888148951724233441896815099635794721431255169814893304089931829182343428610616923819313141273338325784919378326697037842624464157579091090688971491040825841213008161940505399410356922723427795356319914634793186944900468498491394352753611737775604948796003461425448718940806527171755790389776756775803426603124882354333638101185788959666334139808584243270660222777475458730511860165709114731141648461330024798839562953409427089489484662702937715350282498122764251900728152711768146953246440787681750387082643024352050136774282058247342002491356042084852365508014855063791751419775449346037923185984132823957737057770476237050195853315601225569344849225644514915367280144061728744388141505110710674578608980653942695471037423320164670633639686011499101716004767596044577513766119105453595919800573184849351845074167477202438012894354620145597989888025324183619038656156886801216294911879699564548467644819617972552960827551431015770318796394466419267231244526454073763956385176345187259167758020888697688957364645954139760322108774279685387102831193993050655502595716451500421211729676335081452786182296342389993594140201915034785740650198285827035027098745321178170871736763285188003218244874475251991324373879659271917219175543289148516107919189600299424615657089871843773710316002346190030034880632816506405077002151640925532414085944008159418669412140299723094367297546528388456341675829727556316889458152283595064078810815148605000343288341155081107433952464744203263670110657295633579963972358303415078221879649642069191667330096395986175815746361706527830745530375500912144072152274059961567629412309802175913070793728277582983486546337425887327733906266072571742976990841840480413601637597592263988673136255843961113453111081810981828545113537284943629872072481561652807002954972138094461492356213317026093259329082412412998623766618291684360276032267613811969006273930575474913724726161237530456440190354705685969314485827706619196120318939313413961546848138284125917597296262755933244146615147603993510345127878436345566560563127105324474126113817713524734406564299890318095301525282489515959108173154650675479596501630595056291143612134085392150108349068715283222957316852205149118716277999513080995847899402603021486404856912396503189862652834211457679968847706536308993397150953648856927555777554018919178422625319729407185539479080470583147943689464221970769609175899384916753354060448543101780269265722187944324184251382795966577954172546457063855564242350139430343343476215076490304758248723040060642359097338971901969358535992273633857959571614438434074547451878493055026339418299867113949737141655438300090567537778910789192776813137634431642514389194392045903448240881554272305919127487312635068500007516212357115003973701632411985834094929827505070689212120404416720551870510741384996128889121965920653757310069958626231824642488968087381739010929778667535687875234321038000084302891150977328978927660278910935983719735643812911056535002127800947697385324674695092842514145180719779576100125880385107258511326184565849396625801992983610534118664892967900623281914738456556421103211064051607005928957841516847780112923392296581089902116043106064840771140637878847294954919774145907038497805015259568079841617507111443571576697550736131618739971909843361380777082176417864164711578220477080628897046241641534186517006811176849830478842449183292110257209848437718382776206296539491480604007585068900045891400932989944429960375447668811512432409260004446365571964232586605843215112464192182913892581339390993064250730858535088114429044166224885803914690518594733195164691834831960325975715945411440200340632378965036466445316019574442041558613044723665897351265254365600999146712336408924935688957023867626713080628065567347334066598143750849034013409621095423406938717555940228497021234058102068722543509252860103877683149233433115299553875582336633438594363926971479974518400196517550012634024745094919952412064892377868718918896121698601594736681794580051179629861162505943637601141681922440877233759076852275529844428473467192553723233617427748796301558790554155222306181611107362114368632369004184782137547282704804885339724009820351113603085364609228920141777526978429772132840123754804343891661803278750563479414806640285950704313441568636802042952533620541415420122487657661338305824853316798724394104043166950559238454942998336546176327049438154569536588595110071766483846548932840828215785006796554198425600596284499286044748777441088878722093941061982175299923415031264086596970160721734022470413609943209575107667687783726330913555234518080520218203187145389702403933452366802739160845032163351128748080880477174309030642585157292175442356773277860721896830015833670650439553803245433296104497161602695548855048230151385944870627845583065386390519539306913393628913476862933570154088956146297581206817826448270938669206003377412822634434998379380290662532493897962479707630220681786205880513295726533670427988261270385259912695201503689357111190529792916085849074550406967222890918332528890237858494208049543186675473451876099627816175875858845503659494558801856406394753781849460292733792690287454446956349487608008895684201879910951114637004530579771323949255423230804919478532623088962166699391924115894151509209386819522261661671362942235040204982362999864439236916018923532360311909615023131891692701056342340348265500471216568693838807942725655259447461264695912261675453629728751782730745570960661154588567714860700391659169889800318240863987347613895810043629213656033478548375826598467501491273069234335629534989675073028145413665165621433187321254345444825365277215950824881005898199320727163701686459474008450899246881571863295770751946320223515236978813041158731238568459595992215961332575542572238291181077060196738227943287539568575248268676239610877944294824419213756949243022324248917290703862508425008531938832794851407618722714915956073332123457032243350639273166793981746422010417919321405630994404325654579868785662914747391737451770705581141014740601125193995428852021328284380029521118623032806826650013211755223242534461657692243695343919316352796875773358796434280600488595519740248128351185972501917656488545591654789430593819539412859371794806502031941460092424611485576656572223358997175465444775651373216120990078745898741942460761717201884954430559684150484158426594816958340105260979697738653727352096260976705571876961201033004672923394625043786304400691920245935082733049512493592251971169002497680509424202102094817367741304109311231026209807141192501664717233351373194323360286898251735114864864851937193739084353020443553179327881579172257974700085523349077962120435096805219072911469545293711634073653998624142497902570856361509981610185071879695584250744292015920499629301744842048622895966596864335322589349060284251940018044058437175889830057747578404649628280593005486824871002201343367057021353071161734051547350644985759462705833992149705788049616130179763419939599660465398691961099966092459627928711093067533061844790318911520100176621709286222127049900931094565848037098806100144161727928600002369488146605145803574960631042178937582126022987381529449498589982503273026222426476964398208609556531269472899174903460452170158275346439103396589948879055527790960511734247662984626697737851581220374763860686663683722185476830471690211346942742710737047950297011652098972303945869738854235323801380945764641444780047624467796954419062673239695747310651125624520276739234006319128254133990229702981777700741957544330972218175964048177522365029183699108179355335427374654878443185091558285844300743557349629440266445475059298324106246777778314995887729948273923257612911678053538196714673472078386455683552535093822403316567225915564016046411715951285120056665987552642788970892544960054748488374291648744190463332961159702740665930050382665772612912004169215341532848504622463971566010401992113483308138539303364913235581849822968542638608366892895049713517500074083227832776624675593016454406142036168074214525919411724286977120419463367803079654526363965657923599420866386868630834454071832729917455964111793407395809786076210710571687999164943966657794326638099825621603063938601168170628866511655731432965990633009219842112907502017575872052814813573369431403659456376875289560792479210281614963169190579420873793965758291442612015439336273044513493507629519734795349344468957758931692889995526828406363505387510396325421333872007001314746065827334139682057654132607936745466705987653770528499714513303326976641324344188697697748098662434820365210874137672415206194741841623652020301284776705739159014068873864675525048268937043853980270095102590681222171956479243291386279831389329815943524842300142085385548312160916315015410442207335309701749457439211891057169819363566134450100664398955288198281165345902390009065353803614023047108942063975721900300285542696167991934061091129131576277988389195919896186580541146329578541862678635884702997556662488617834278721601546636539468641681427406300644707960472178483350561645615637978490264739202135166848680905760058220935528925873279610581427762463067570626030004534908778811093915315406380807033162577444483702700537204882458002940021474448987248542103439150024575964463824850340673184019892412184155801777037530170289424576000430733031073901430270068569994650305012199101640970072968071585427070513141794946912635072234947791480053873739889497457580855822377891525783537399458607489528703704456624413775560089261508294442935434685262527689839842897457236197737601006716209599388191922467679430304144147803978805470689636581478285387904616852902792173321703450675230568028285975294375555217325826138034721561484112311041570401780237630612996987010455834436572819982194713705120850642007425159692133046454438424904763275428002879767831969534221003028800169379657593673978030320562699928170151908694209761706227391012266363290755317589362068465337895466889404086001710698758109071885515624807235578622844955982182290859278591746925579686973395639975323070595699331707107601092760595432077527901687621878772539142608828806384789001509062252090268719122260048061676076987273621239833680750419067839598504156480236562674441712443315692625122816401980125219348879676035386720072649698942226375297861526871841403393662372286005764609725740104864920155144261811721302925452336773718739190570942133172507580940054182663524467521622089403951107765458662829587246822628433357392565937364922208585677464999353582923242636237476901608646431669392624953438056698128613221036584613179338587747281944963958927782233985504882144553148605961243539535687648052728097613985363685561401376724829231625775322322244668313510110920919947032234343548492719977058905118959247318583334558736499865965479242887047332393780677522483336951572498303488218200904503973414445320563862813304735965624043224996182137307144122959437935838688074785899409541776680195199550060433207342104874138484565752714545036488842254366089813154672246516119324335767841939526363168182714031706843596683118438639549847307276094783648080039796920726620402793808069595286068837230016721409734964859363553124661769167404779165139772200074752959154070106583670609706476643610837886852897200097457656689766296835239195888659420293341863807901057084084382395996686900555461511898910365960584782607975715033691769254297363394039152602500406615850949054388804602215138460522136673369181583583268882266272452894098392087862319622388292767226478500442259430215646748746294525425083815350888644889376042934250790752783081564906718424035272118562631782760358504315348762580824517287015036845106896515404859437299127089272787578301453005035362880977952157770489233305857962513046959874493113728332844924830510490937257768678455765121387196020806786059197242766484670177194963149919812197801574687391679392300322893830659252902436053632386950888649829290777816983232534387456986204294241346278165209066542735695017319862286292432410990244634528492579510712106801014709107947466414056891122338418082652562206811205566283554376455953376829281457463373276430630723057028361610022729908435844233614924859223245606388642713906888611846754877640434173986122753242577941410853524720897174590173884344909824807602989911380555279320929661234304911820178511301386279867093415482846458429153890490766066740019365387381892333008564237691972469981075074249259286214539587207777696871181708754750422306230315818915576714185825602716805128645127552650696687065765258557210428161571997169977500984960036285041036438131902383092917911016388481983743747469983682136363857900536957952558945071129116843860499433678082647726505216640068676438836238844899403919871251726066159165619853991897605483172639619898147263364739163289182060755917707145289778557743814531269556869033857931939312449539695126972582434695403027296104713495142217181264972528199333245595611585745931275623489126083428623418289405826756836081009493361458166909635523006752437766160357510652878569159991798045195482745809786455765180264733336357015831955998803807102584648713017848986436474703147955956790431816140189157476041199053599280703268830989834687344978658429526435666091341888992384758881640216124950693407609382922367941845697131500010797205347196535305122027791544014936764083899780449324241147810674422876421958645499036408981823015231045801667207157767100263989971180642261127059944092538178522892171414808312796254652424669576769058221706664267623364208874594829931944243504377570709676156319325280752031735090523904399334395774801204741342122712921568262177218847191622833356891983446831905869612220194492452877718379772122218123163062078471793065825132245926967654445780199797588041190859166671248648548237600280597753597606654261642231975044089983844538420482772885523308161167354364286925351685936473586707187492621933004921707723403303824571635701518948139704612870898940479033508419758480799893663583337544329749598613608485479871428875426264629932004436102804014626245692259449337050797540709233083096646877824471875415274277429871261176249623761628549998677090518153201559271243318972223093656501793028766781265953133711158822674216795942290575123224365734418055071883874573511795678373661728924264973866641163306732260805071382981414222321653362700564475467361237669439920549341003220320550070543786436773026285951179762566855858590405539293264436060192152828295342236441929395999734554981221447851652531035524027520987369391609249333172562861651413607848802085735353075510280942971249727166727449934380229075708979480406121513485152848145886758157174494130613487827927048797576164768856202610058412457977780215713230031335135687252157677302446855034335322218286083773613943371556954113287469346867737333347899796712236897296442228899264320717084049226317216478346192180182904938583693712109377180913843640849404139716973155306754176345865999524533731739685481415272621504014067389211504844322269462080287510377174206766170235957911681508883470045171677623176548421154256750293260753411893962951436290299651787810295329201245570095336648192205082914136561583311100620909159116821809393143300671601758500076348820300734708550446731381726865746296534276952465146382718881273930004477863215541136813820462063971424649881915880125244591643327849773096443646676629928584038956611004704403785180796175939917891256013387628405657298155686965807267708057041570699143531892488507474514264483041298886172187695187722441394815348066580030675112549792522885682322694501952867334392499960563335473303520708708267641132914003361036136273421435236710093549916348935329830935146647222692409996313794528809093784011080670210169448132535804628391459668593655176016467327673403399304171970144753551364513786094511095474777341619395920141489214150063586549156044788230425038329598170719453749441960093592007822098271780168807182638500540233599343215840874056626121638457829528055396214586971805829635386161202549021138087929045693192937553582003532091569187467960697355651029049651653826966983629976725504063085969541776378287704956092741599537872598025511286497994188892139752167758330672520093498416496581238216404288646879812430739122726936397614377615495067962811080472281052465673641284975330692431241654237505988568912706897850026201290973567454037817413082019060745809820538249322250869799407185216777607935743636478585386729445599519480022941099028123959944066161266827757239961066167487231091763686118565849596641251551670735940111230078021453578487486850140641268834319537909004238466079092000356333985941256855184238354927558357589191863514938970493008621442563097621186371320536246253109320017134879053624611593279545048559382928589681830742035191222467324698607121060949557970699834396065958120759303442849773903376637497337381231056990704109229408832373304447351522362425299629737703997149448148126801840279682962474949629524236608425374242502865300224445958224313012938055654789812828433220450301359768221404910706509546763810954158689578190550877300973747144644366083731276320191869115136374975502753881704924057162896238605066535787687858670069222169826167128189879898972959572795347298009468242264226876786249976274259939123419199284966835238503855362184420043187844164972253966854875412349355883931433995871916715606235444364163487152698835851754087205501008762635449541809280882131629138580883718504314853144091502927606254376096856651905422575169233902561456873738213087487800326070471950169611361418838208506446707900628451604825905221521016847980488969635902391173974338866171389167376835280661151281710541030255766147463368949886617365820769861760383913247328514301609389793693792090388009772122644341423738955002577351118842447367282172763080632478963304805912856821169775853573804686988936986673752816391323893102256189032721686147178451795631614054773067662721968040168415077474727680366660520639032116786432635595101050351932662284367113641524399587390664902277281732536840125717424617887475320113516082140756392055248442847444359362137213024397947025160486410621168088306936201579711109942858291147549594132448079854762016902243084138552513999161539261237301722336044989369513781395025729625837106345417079211017513140544115505696142685112911471214251252946157219634834637329800997205498033164741137844158718408266771185803418048944387959607448799355280820684724729259456854076474180260190186401504665897748885914462826158828090040877429278556123014005176143185320452324827817367108032590198264343152908239919830990954123466959826700311955290972371955916738364969201866164143702967677395044327145006221143968253921340386229111095655531910536209530212658625434516208847354443419078967682362363226921373374947117245484368398374511816799194337081409516089235559066277040204640026693348841642915451343448330920895351500323030509227312978222340384858582504181892662226705459238179690508115917887274186912280917280755206881099691501694808489719779743375180294848206589083961433553870677902051948077259523998511150268911838588434970667039683672519483076497730582196208933926930477382140559838464705305268325429537662317086671793039029953215738039255696591170653002709437869570287007974286306676101650813689835644037035211794051369582396952770561534057286159779568962613837781698660245825211539931554740974577029866298264958671343769253211906707229627556002946293190589373971420966999874644621207157194352303443938205371770523275353722755668950280089780427653339836307238986872611254534615389163113476097277447224376086300480863936936321252546045467374399316451102337034533492748148492317018432812030812522008125628997287330325972574536268071696343523890471835305242097192283454816699362118008678665310022731763270675051999572632019396944968517431549478006142427849589788812262881127199325641820215822074659117666778042718052008110934862844121422376960643673821902448472573146717148863286512896098966243055958974883753975024891391619993780096998753784009415561909555472578349508487406873251614605420840280850239923292776555281100590424443662398482936643088375653460374480226711269054345155242342960582813437686549683535036073684593590733021481458609081136700124866128213175154348654707396115306629497142665302812887983398824452870443844954568946250412434434139946270692554254017902260199711069149406273277838439450254933700652960269993585836475622048563499821809039486697959012523330631272995472885699273597685849431394278968343717723286671243652171610158348560822069772756775706125067630738441253413083234222564366129084545631270655260228189002127602484291031124022672509056174491936459978400326735742893568763751571590960190698686912722482731428583434464569224411828587388209065229833712072982076841362949500433843058317520281680964714727586971901706068654141854612071581565497301299011655420522194868349111276921193651258186669310859195089299218577599854026788266385981209695641382187398528129450905002541447727315941591925238212176120878075221047854670873925227813602571852976166047989007476116696239769796375135651459713152382274571357192802763057075535032736911063756263516810251231988896758421098093058266231375678400863565458438259384866318218496192713355897595238662497896063824836979979423638749890850683013053555277027323934459179544111327416188040306744061772336134234623686289524663301983418306667195672368451416881499229163646236806716491007655713458620744305001047038701448024603779000189871786207149807803746074221168511038652990955409018858195082787368828052037959810045207936378437536638472889162657736143471375367975948306463656277578868604803469086711490124481452673303092015424300904795359158800662048381736358113076927308863897258833693912308080568841295943958088572358945365972175745611143882703055332897286437529449181203851798322960534496690705470026949127176635105205143337523791256879989313144786527273940256616199782113013600305772505010501711086370273508751108875118599456255984493364711704432701168629016917953011487600734586722389244975646690476698928755969822409767998657510027653923128670378363770589669457104857447556269162102775688968791246855070225075516750118270097217481781071067976447180315087977942430873709871394971400069811231482232525540327503917140083409504405982480571789427107735873764418452160143587183105710252561241357549201006346414375725715725959926207857271253575302772077826787160910063768595680332078224214638428620657038966703174767173586007668258617858948294152086729907518824543859124499140675510945455638575715785505338170097045320818568600198169323346083024884953947285705782944920791945463402895173254689531576429910149135943713022318881345158154968802845341295307921528297031165534121959451424319081755438114315353954926406425553269022748072035052431474447846499576072815961917685420107113309640630140786744893516865016076725957844142470671035529127021044926783681148077179428671764460929526726079283953251555174359944696600681162167818130111633452420832184021694586604782882504955908709767660365756699219228243416162972368052458911187964658864873605501154181540498514517866860165655748155853177567213432769976883129098433424780526304130682956082463257886332451963981242221621251503420785935834375243278911240054924163882117983916170118595774488632507036207917939565717483641445617354935459141409203438276076647554204119378827498656450705155600643456984459084848376343854377691232838408442924626708333900106139758176175151261525179352199689662924853736279164437368610174581434461415032616958509015392242087830026247122678086536941429595836442972621143677399189266576007848428274741176837958013790430227289306711654876029559852220636088757406934073567621132325368997401508589009517004904835054214157751571655110310969072824155812210130404875547252062249707569900581310937432790670119859369863553474111847622049608064946730501567463048721678721096584520063001359881944664184479440287009484683169029337112661025496869841645825847743075506763155970118980804120157390926738574127707429509812533313626648308212330415529836922740583532185954287878872442124303421863218543965160052862054695983312323704742766285642120248655629684752211867144550362329358674018723473143027301930454785139465106905230984694359156424929376181744350458331672385130410517402415943472668042042691232461562948108191322415369275598464041059203549995776539407585948829484161696718203455022842623042246401806759919838118352132370261110137249614422129950826328250969649280431051485217557099178412093528621788292544481248096097291515915605164263862103567290484322210508609317870877679863840930354083519745477969149028815394453778246219043263190156726856254936346060825415012309532452128428323077289174836368958272471538073549831892081219228780780322656808134770180585186089907591948224640497195072823518541600301927752809513848094484368966192663628005031088125046423976214483694310921539535916363403574864890920792915512959429359558369373993831881498719513208175620770481730553857853931252224919373455274473403054846828063483131531414803701005818334661647175460520579988645577000303731487321529072474665491925326689938446450083252463494745235971513939457144109882190364234353285527896303496213694720240611053284204077854879320427971168579512387209023407741458666460648494881328431903544671474858426617609364303903772166560602361130435367560190615809298919621535397941239170976303232431438498738656559888590187777857599140785471993340192474581413422981394011403799861688477008478162101551006201891587411795577744100617587452489463095525922849573596497018847573843227841044880825313194619551692344162103536770958300226174051217898384970621306188436568447570488809161561835257939187400745058574327448987347362344569430312016929276518429538316366601127849136481111669067740425530696225315773925240704387624878844335877863701158432569438341333345751896029189716951120804795694444566147312104055774712686388540722941884704386241662139042987859222287265209549808726107196603961321396496021287552459692915656389463151192502633868751014569964181196285793670222362425045036985296563217818515011515756326263364758636507212464392407961545290666513674287134024367138672057707820500497240067171882288638954114481279101987191164546480232052940452300527593539624469957665041499552490695694590249747538223832868161281820674448861801979511848592689508387551442784202491633168796152214388767054505472389038548865132834024098185849967125255971580349484416317180402786822817484552932197196895102882014533127532580935166569528778154771924129212778149203097631502081983340981550856375529743219492800506045051952779554625391905897950587217808756214660351189334614614165686264759829358256081495815996761044433605845835240691952218373058704032805347304351259416501298995858750995040249223536582415519839676401216595288247669875203371142319567162815051829853601393062266129666101589091577632053203500222133824332618928461597680766004047268487702965194820239174239268641910589324487717123924480944660128518199784016616028769308635597320991235416281508618511246136348242675963007551908420440623997668876480347743254951727529000237660001078626744571236533616314302894198878387089153898197833415724137267958579226608212672403753248784182334109114282174937562469221729344350381458521861894036728432590745229295815441098407079799239491238279847380524577002068095598461177692441956211785510021271444782511615833487541951964179010749313676248594190172795727163614631981814053530381911494241414201433887478942874342220745062273896176711790526707355534350719668191823947013921505978184105898582897741048250123077110064600968569452014093609499380832603777206931901530194548141334143447290979695517174787191188167238132135194540399561715935739307875655788020087474103339026292365797714441201894158991540701601533117537071323141929746052216070888884694523303953692069932648220351642129661181088495903210731702372429971186134594225684304881641353351479616547411829714285504319226319147123003741781706614011160557245513240120716683708045332705283696564451659433989134749499440475297297970719390969069160601474540102399693548655842630146736013469238529253138378951753100892881702390814657658069143882067613917989864500994404551240034031208461074477475868197617070714361956719075891580922033579338532392452527220437902354225141554279548077244597882694224794724251172857393018983011630933759239712809722892375635750413271288108064039010098087189321271212757358758750255322274142971999501792990227484302138465101345510277746212580484043759296623079121448202068540823600780053423543563862396278566476234711358594678018015652134733894803468855348183907668746533515227964913076713517401455333718312496684394311608999376784430124392219426243105353128860303837235092967683279316370012540249162116418676322142646356122148394615100197529550812968634471391056597623723072743251963741427136642491197983508913445794006612216174712476431693685237252927086935474332767193944871189736079161917822649867964095862650501309179649881709029259318348631629616682717696683005282549228843384653475301924377734897962824054081781674474940352404484954910047245453396774059707155469259882106645996740716196088518635117044663016586377077955299609357820300297587901443141633914794286004668842026513686752213861043452068227552025786276440764563797251500728873341795819698572275051942698619407960322569245239815269700396418748949566933739195151264927794797051581864266346408536976329822142006158692779336823345499998763476287802437941736235720527319654931735177266752472294164610521609792861545447890657081314575910621560319293574853035384890830918038629804643653999622533990144925615058309752333229076566675241447690098674173075815631998140903979491972188183685537269431328873853527280976883177206582715576176680003221353736167500869229303625881824045360596466175519990817664329312281557116614142389537229109378470792847400895523618111109313629754054562969525343368258947032054665654409758730277447895552251745641195560605045438997037827741489179596556441151044788542206828924979150018581666020333797816844634365007481902331164353174394809764994132446425495484945926311749672135032257257280254593196252001582793657984590439817720943449011394266408840505644094250623525896500805065288149190963713973884702416228765502730815760435093581897519200063710863292816746696909898669986511852588297292091767901932579824742062555620001546268610602864265837689051458158315193098959783338291355646170786391544331359313664350800131981386924907143793933184460879547926609525520645445343388540537828897881946110187997246364352688857944051342491678354861784299945646487884833340429048693358801542466051836721859355139057407074590888423403111347215931933678238347738883805978080620183977762138206167640786693137770838300525697790702944618386218794156258670209704453833222511518796601407065289974797707941519856410252559956205778356017574448388575771349711026589674685842982804298089694342841799919529662796237319167125947963029431009593575636875461165250960832387987465274769865822206560098349669608164846342509412567554487743769545037015158144474312053146017936947161762735190016318791648970270097516837590362852733120809853551557812441537418649983119716046983275818738435687878206504701632105813405703596728609312687121757538159644866132916309888725836840239869266188198443399268994975488130668578712424063688848955854694877632736270884802129667177964068647045542956199183163415795840285544265332494469740176481394793181419692540117273630594905733656600568844633421218496443949620896657758998483846582145672611779707347424443699452917501387005458685506783362513553998076824575040267462110862635245640646317949013658275033778854673875911944217627417713984300417659804965304560531174743680649176042999410956791950609925981825651073475266987474373242773239780638337531450193038504304341962878163581944241973713201272925032089045503763519393860132201431225645603870729682207795763516437824084737993812317124934884869092619885334269142131503881355039324290215086781727947435319324116200459892507674394964498683202506484019968377583620726834091318743697685906176297226192986801540630575198633987455389107347723399130752416496413480529941169546154220687312187230889010198761635352672450991556105721602435926715349003709562850251242500670863847770300277117389801298486364693926010804803619775381878234976567885078493325675928025993086283634033513876849477438703339127646440886209328914434054044700256525040626432711552962269668858759632927517759946191257725347764263138295557774199467614233956018715136221087536127570118360288074581020807957469777017393990980058259725043457487611237659590740342700865313062926829335171251094136537968817189387004098491862695174079645844092534972869723100656391554390752621752608516328285544101381624560921257802803525783594017365475056035697891908770490977491871281652925023720228805361379747481117485523100497584424921851564939153921395529378129027733963427589693995911442151712049809876805482557887026470385369641653199985597933143371617866017306592299892987752330930627407565317762951719494321771151381821576018746747275727394676258560777563484837186116134274522176117488584251012925258964603772416380475322965859374083869362422468960197406142477010911436659321641653312200855515169885114579604778252894228871285202875872970165553734459254356576344401364521997647416529930625323310622350392905683583032965621936065622558756992194017470994139163181775966149639926114190706344150437415367969994075687817124929250266844098205322667490219237662920026582952987762972347929138516355473608655428513555521003816649046560642734865727426529521053952110828002062715619775525563256890946015799402192380084579923834298796339965351913934782506775673147445706802090081088412539358809092241334153274269072191785151938628664116496442773409308879343621527957120921303253703607460237368288720448015449741238303650846283514480475988408386430232612629073336482574563682599260681153500889616426173939806191790489805565587321729680927354222646234709352641850049567181533700163053005815221789049222335858183281621419817659662990816702262334761765660117691536862982819556527793040560588577437576653643130199828333826057172242138999647316728977009596615008436214379392967096380249419803515013755197767806313348387267911551505655783246820456651816055172604423162716017736776246594073561314573043789029309159236343281266722313436096888228007371260962960506914893225253628452203124111326023310688110077715189004183171210927622629769567295148508532288525328502178023636946922889748769691190506248195323935135676704858109018288066683392952036676539756567177616752812130099757898877020947577420574081133679829170243936245124144523924533080582341633124361708942546767598687272629340249447258559350168788987378463139881604511906395793791756383629786388161316459194053659110076125463393151702243794015328071153515396230453456020184410551154623146418147886287681321681163780176545098456150591599245380078774926845424619536545356482254925128578754338903281132443503362771764012624754357149106361893365980325703874291770227482543330022546834703630983042787912382990955228718842461005598160079826869612575439549993711738275445954416318318927509612798151155158767453611810099657722918262103423069226966355182451243966144810148235676568778870204258896896136462884792257630122359000248212402308711514147838978589026725365998509633117839216281180780869215141622824732413283841014179667109778673560710538766677139657420853422099364787550927478752818411820612965099909732449349719914889017517473479058465203751308184620519623767208723864899500187404198063002827401575105942590788945720774840497400947600120368769387081255027169283027417833664741237909626816814876869504495729154240338010197802631603404167382457606826874774227476512998863312338841403737624794371801371263796127344564382654317511853760585467376365033375151689238965034005183478717193825619537969668192352290608806928810576694503749510084156280896411085441090923429105952126415945145778283714635241683328536489148533232078182318273942625696143800261749311322821248699618105977839669189388180076186535494166031372794010217354561306478989803816609143837223722937637067556883773670687024111185950881459245397971732886840315081389012137613589622555249303948211352777768807970959225794676567478230768447957865809407311991056886162347883741253626262717305427012587589717470494700669462706719956111432302135205487496317643618161473661533947078875877736198923982857724036961285512279067174522532388728055133810788066780479021070860148581762344620886337496345551102396746736359355423394877076244840693609477556244350531084308200118417274810965907263665278377663737513105980561911423142951627548658691107391985317296788947056193422334383163437412577490004109695226560574273491806660165145258762691748559952615540878711582726133303440092764590564504758593259098738633563634504777648915743541979071412525133532117169920344265717379312355950146362095874995883051780947717098680377693395583945260069733180178161341556403206678872199310680617256697815328891021199709400870458938423648281632981185099516518879809878293531487348790343200131034170245696142257833573847052517697318419429130320290707919668208197523051764113341926734123770368211476191874570418687135916525991035574065184977890318597906928660995392533981962866811478970536457152721168548026734984622180908193890632324739588110081538490949945882208777335845619592732222541553108838985002737161815591203391012120095429543926742625786020143664415302408351126774982398053590403939529773302524942503280158972009419716129160730006584036892745413361094901737378790209247003887373440059233115370457040979589353333129151661151814286859865778009218379818478599930777447131582341790866331661724317815720395712771428191229655145729082607909523998437962147522535120711939141567101287323081974633847079019172072330070876079853557254734753286758716473938400686061887725464105189923444380868680010319183568849243104714983125473815954673633574171379274622808035902190491310118341217545959254382205778478580750673061974591555406650261374148210963494000044179581864767525843240214310737653078271869499665818381281084838727766464167481109149602077312983173228135010465799672273597147748956820146931366626491422762395494996232021931644947740963118355246203499558360104707763196009317295281554543244425428512665302662261040308152784347040728646734345722417015332270447017089142341909411517252283404665101799305408441388935483183424496682361573993768398767972599780265619178840299272478086654618789646767900012823520974669562832960619136188545449092734288074511075682805925890820056637127942281093968523196961299684997799683466918629103280015337879991793840827061265063668382069792697997161238899969813317822697647879886313996834891713866411754933944340954942101665222596624056191549435613424591620255956937801644989532393733332586801981639861585637717324776104070837675411159885624024946500068482825913119055676694817596510010982923118333334661498841774306362542193343793203182433271854612048302910464164535722421061500610067789350161089742086652156049640799088927589842444789823402202605344783402932646424157686103248417726723693620199231580291281835640135371412821406414970450331597268452215573477746505499265806630731302324894716271432712812745854964320712698820636864762703590879848847550338439976543568225689133957901806199184635758661125368062390513781249217848764356365779087558527477635360154658257957184634023204366143286867673573587573861293727534744078596561535630332930339523344570405455659769377681328931208460752328286319038308250865563009861779510097137986074201877372210939305663203847166116485190468397994907327269123453293466682161810681053780541664637609419129827984434888971024328021681438761828893056587114585674030801136859011285092696512842892936247062214691751032138406294243572811096456192600501269220455570059330293771746186333671973067214944113888783382806980326682075761896771641799273386208604954892411008522011764052748412653597940950761589329986657600375803775264393497423490916006686205423008771994003437896760803458360687564229507307292073184717747008851459076179401547797490166626879354591189200192879418926761165068112320711499630623269957862096835184099036248245569390952848689182273529959294467475663154588703708543567161411965687593550892738287746351694493217630317425794878001073128787654970399630859519176192863493157075924395008236914549739680116487509223917197935475787109466366501251331576603805963167875517399983656383116694880488898234019617514487882577576497592489749077931541757157549730648407263776978820711503978544979540793111661536873171454976334766904446453156299387429377099101315327755927842993081352896080023130991735035124045314822531610338541948750127445619950709039892919699433125894380056681498195652518050368956648804652207097348082215633933400888535788888332653716385679006894658999479663313765519835283445651359051763674709429180223705627702461731863949593172109772320273442533691177093621795642859068961680067928192221583614648014870108271583956261191149358254759354357105349238789547043450940860459501790927051943542186451584354968015361770500866810194047220376192315294836216496379971514811146728227296261593066618395674435820624192367551208399007935069064312035683973253984646438833461275440140653233176007242744787582107571896495503712412574175292508442406389115470328906660569135736409184605464786011809870588721838461309958438798567160735363571917639577100453656962042705764481639589324281980763726446926477415741745796252088534409013841217817462480757906713419267998083857195644579741299566266167008304221320309681451870373359923063610044558690822164275377581725023069197128436145378479204537164790946721308700752355072288308562099829494594550338806509150684661993491242155111650414281432131899832367510589295788468703385457025345553950522146178857907704825985749766463273576360207440885098289300430874505618773814947127288984664047880421152387649084225389589321367174934867383361072805423841331206525158153680849662381963582904089993860324398426333880971141399346449913636316096111354471470359803420042380480958682268007005839681197838789897051835238109942468881059966281106900457054987654895523800326653328043798384625529772534237345721951853526100105275383139908734314823229303714933446837815625841892750765372621117989091962640966550502534616410025081927641169276521170917847225739005919562181877187792847291512728661777057762565419080192053552525277809544492632842194026179904669747894081114854951817048039471432098893637334099461231520571500991702325045027182517226178664379862396854486190712795529658475748042583832203331115672491452763801568632805026467087507312773987705447165406701479646220010590143105542649724883525235911211525417826576626655250380834751983421895059794339091325127835686646455828826181601253176707726091332744569420539339156945005306729156632603319836821907604721251014034461440531926234168401319725737507090892936118608358795283024307930378726617600335054674343820019279514755793852788348787781356329534647258860527675373137160256048798125124543674417326840017799106731825617822097701731991449667827759488779402119261899181276459326847142299763512539780188510140582169640915740027786055472838003144118304337954899268289376010800451476302793889534565745159716392733820849952657952740957484199277636595961295451273935736202987618228903910093926171112548105213754075283956936028606876559751322802514218488583036564449965372330499564852055832601744389058695200881254355639241731020902795306950277296619507476970451091901709585542043470872335406974665127830394180691173263047115023976420180137008774857545727452327611086271675474325987072010689843146920071208449445217508238345397496959619892936593299042778378047359927923282389992104078950701331197593446000880152551910915223121313017212152152811266195540511088386973904962772950710232045417812734546592942089080646301194978929472343417224160526995909048177506813226741106122116697060440951450866366957036818096165350236773344610493894635970880977771222363825711908275033437144836177613379627469875449457088201672453595461621060308128097807411972184344918828546003997248786096454407146946843686311713524862155238748025911690030114107502833547114916345504499117380673798058561059114033143068368238568188083684351094902037985206354066287290482444989043499184728198326016273353054676624022393417193725601541657217631942011461833585662659541333058937905500222914640225753743521741477235517990782092920057734743591931025182679252643182545352009388611613640539544765051512307410487580388968715959957954326964693185786559990180729152773174397775889531404874052388056373794068991012811222929782792343463138265282242599783761460882243363321556710456535973856021426079786859864660026217136389866261968762467180237334222456076164596385927404106200560594424763289727491803471270901658619766892485195672120714814806159461827490069321935040740604061974379923798750290221653009743064869168694187148139952624819533594484963892650130789073320826556409630867370796101745644476944882775017620297396644363714024339692137877900338601148103023283938421584481199622523909050242079319948682217067834889992132098591357262154566039672675732976417086698936864203637181027037543729802030614555310506477347154355364728710461688856807330493191003946167650213164967647547169763974920311015103035848912600839764066613773815876509298775839390387714356040873322268340753070845891343051014170319652786957020447024313282343905306252043864772792703615462175496189016768366383593025410933250629978054468403229521489251132045677123230563485153585647878122566531152809212127638856262247814684752341008296905001229720804790000615529359992430930667129155504085085231465249907641899116686504807616037006420362372499131559561092753565978884664350211531260150771547735770531445994148861642819916275315818232378480755811022026009651662753325006143756547084608905273698714825688382511795226068837362973576086043421287518381282492795826267944171883200522628973459858710291783968700289794158438657126382823296924392483861320646982327349478133431618773347915398112386484170855213724783292562025773007210862962731060090166177286970459176320424225093096751873782609350062965473483928824439878845218754112611171830179407289006421786882464137315805486113655015166441088094435036826221984854335855898245201058614261456318769915035992798864220866935188321423790287500383472968086927813294297025440529202432056442314711021375505268194852375019455690707083405357609416708265087890765403291258379322249681234901905081817457764930720117500008862971664335789460136705004636236524712882776540017528266716322445769190399332966240433621217814395449420753919679074280181334351595453169835787551284360809297126212457837973536142642497296870098455457441144510507633556034431807033089557839301678173267304492314832289107309618649693032109490965430731905346980736511817154330467724731015653109229522036914958678500269361493630754305231686904596794706519841214914263764099255435624061354158800381656124798785801027652077800585304614132604352492538931651995410772061583745736872890839395424402139861596402136383757715583217558035863683404156026203240148777812340429659673445041765070417262034542861371124093939754421367238711174898029226724591082930408282609256406097871743423373522842158371576111374409833434402594078493773117644134874776955182423602682033399085898835601826246104336612961622640371045157098733686809705297657201080160481716986127803680428693623430876019312389008434022289767252238305444953017332741783796917670169478090004056032448211109893880210021549309652478538716232822898901578686525348103476719770319359694289145199300151115957926794869676582881860339517053820072241338448277051174598127965524784118445138497850768761941782792453006227199483049704848091187102862558790648308161891285302861194601378274492482894483346833362831480570811387603687840914959055976376651165869763150647412264569089448646338848221435721599513103821800671831295414706616880063963885152532315442991767928360796281766856205296054127382579311361454809434996480515738466836698662817663980482495922233993612636270070710328987483819624477080293713841326381690378099773484559713050361675011353624837747458643294879422163469242609092144714439652873247650905335121740176766560914363609069523119285233148585386391175690692743391310311724562156839830266945980358984640852617556369149885282854921493265937682526227680525363000323781785303092838422914462723365484900419375758339345064992615183736303040821215394582349644173836476078531019527067807172698930278770565693481101018397816795952810239353576382675079132926241861903859404136957784491020386391774307215851542741822721955158362585275055247181323020178355711695323749259970552226935190939541598626415287605922206048059429669918915978875452330904248369395745872907500609211463992390516776962839214518145731918992769125058548694409703337464977130857001597232682340660358040895893465338658332579543691972339333755544496997665129846215056703036787677486927579374503187369802715961810652287104301571213974663078467383454591181103470364913321617160678298939054140461907783623313920897714846314145601610261721974457952703460153844794441465265149683101271148801052400789042026156000457011929134912234942729331512746167247037350110963399548167294701856850181442020893756219466295194844724392997776213438761467892129727247328286313236878861589815291713144815153599876618244457695691523649161038832156705787932029481793216959399142758159737754969976211306489999628934280017342950478457277415868885009727813339652557825466283933558475392961667147128840556787751030550139298837708849656613465203965667879526665883064481008491170272833212496229280471771177612739489786676815914629739175572123962777249722804917663496737285362737966000961258191769844338365905891896651008478525010730346899608338544484190440896081552063096215411749732900673930904976558157317243085332256556278203065783453182190386560411511200831935389903962812185767422344077345654415484711982727364427762605458943290199509167618166390730094946937510135494747165825174789144038533834481567641130967561022336989585621043960927624808478440830091046489374239725242216886529856300778281568606635421731197187538039779236556099110633196181541088760662894918225767183853169473708694556811194309752374690875680651358781347948125229006590368220507229940724679423750098100314526005468267979957730703280164320606420638714684899077336762589334998754454626921498803139820499416342173838917885467486211225103592073462783366331986688315850399943761789414024184041404339225347317304759427626514371162953136320224633165132939756783258438559094904822419793595388422997725154080781239880359146175423424559575989222050898446234991770266203654289429500613629042674720430263002362257215542857469466717773957403357620633556098312284711916824067253147859366925748648079932885719896134689489240219178341513360399299954354926389591465241418193835871355197551943297419838246430039788721300877549660181290080091168943918957894826856809013379600602817895787213667653323516086780879618915243569202958543703346664236060948202796844948243871371462046641904988268991002540846521743927185798524643833293886891408456878614467582968750056807389649189454861757135561734089911962999346334889905271821051550749079990416517561354286074904011267804300524178523657409836977263864289105470634554596733443774516870772664310458899531322271860370345360407074185659817730277710459064450401043281597658058102179640127451796735443501478476721711532302447075729273584800738119461965343499947196460168093932794029634798606245558386818903797154470416953859343687240406188155857136176873804162550537551780059074327322752350932213146813187916486240031932920004168619054114779457366797655832805559802282658750022515245200077162845346394490337763770258510422313341635111379562721040186837554669844057552139087556393297145180364422963309279145727986627884959744657736667382309102035358525888207845992099433935064129052588258559515562257102179145879660813524905730891002483579569148607252314034023402778872607648996024505276278863668041217323615062164161817440847747759786624297718129834590226074394932553300233837101127698173257936242116693610644292745549929310973807493724993175998213688576785755461610550598196135363795776934647633943842610877425541662385780532651412042829365610446187412773438612346865148775328031772172906633228933672631904029005742878570820031325817217992944274386481180214104242728578547827115102232021421167645700495944183809531902626595392902635754697899361705341859361902721213815420958791911406158943690414059292310745155925650423686564786059208186778847383309046063326084824056022144799463499642221996126933232245163401442719008452846428128815723489435415071330697644152153582029414772330722949510258875004323927534238784488616518655886265647680024448231874208936236175293260438785444699276103484651726175802184377025745363830510122118345529892378422596903215381778223843824293860761187166526249830819445063877795945854996331609435016686305850040411496895923995651306841001813652283954909002827214277054855398582685260746928031617760281064480335811999330629778422375517871343933703520597976205248258336348058037482057646347136211675567022641862305399777264116837572147372919203841615203344902806134026903496168011481825536955840306060155778910016568007497045668019844923772800373669925128106720902219823619054196653228516573550651001018996485733797184072930317347125066855452376368940834235728963650059030264510839023536631335321438409334227640720954655769467678150116046530314464079809576441414914377503273635403271997738690974718144469597196509399211654092785279045017839750307734510695882257427425653036689663124356410773216037574313724446327873755201367284778509438926697656896258502288013147189793567636379093525629109658075763888348050694943705483190404451447142267384571915763184622312373596863046838609550911534928300602966436616465952972508690590167399046870768517064189836723865531431726703411168289202628622048515246998254042600440483086913367967911719742503199139376794035534090533142340424719117519309550682959653180510261839121820092539080603334613977271169137888822628826499772521902511617020940745204439001847570421939911782952491512290852167919395345549580575172683352490768632002254972098612073552214102752214506942766535340866629388482171261555788486315255415089848028579194665683209060094076144030877830785582149235132613393279158374441284405609922250052968164553965839665023775697528202501891670659562326203445596337966202631469546225364942368794059585739715845709614972246528074242211454298492920909623171252027170017410121003390224410386500234834592599940328308719962948964114591268288713883768637841030192796430158516129959342480601738588504397391170160523834157309895960160610417245475337955827365283904222396973349580636833932275779611850349508539053586577265615572720901516634428112335297991048076759091292873508018893608361889334271779701344637879671519093650630507710898759135147667741990201258024714832520235311060529769628520793287445916751834754696134930169029940998913495469518814910161710052761807201832239223134081327696366578589296718873578955406284883443057287452026611547315097710955355103571498863025860201094792297643778805527039642072992419070802167663039256843251932762666125507935697831942109603594181904950969767138496087519473212637580321370711298401638535585346215291129629336455671585689809392162192981764307630206088206553627576528891843143489520798849743568919871155001825366643571564769907187796300231262788909452479709583475642722306880996313933491476129034857601805062884645580297662434538476716107653942501885085123557348876935416250703774031770835473774176246314895430488233066083927834468972499842988319979404874854496686890097757575910390763380703884098851405016707743102838186148781176671466258932531053052655873283781350309487834394778839994375992545042452065565241250206921221041429941413808191772074748616047827136985955423717455979476250679187168093469924691937243443207633955831391431158981949832621592550342454651885918120527659700954009779254560663320478290837282275600357361011270152426750001185101722703873547913811145982295491537611792793748174105237456309409119081823922653531947532875617330446555884178889219585948307274903007972777370432317971607706650693801931663345022198259500296052895605502810828632511102054892921837886528424579537262351920436177955381845753678492542294664041759483745746540514663854989262942699010970999796325319336826414465728587736013104036882359424139276856030032191096750419500635299291916396700028742056144690785226007841537070984157433503479219100271461234126984371865290968986815534681822801044755809886730331190995139866206665176315020861304446778895982084540166995948020352742907016069314832929160028882162716934778500191585890166409515202548208271810142937113283567282889428888313926568641647970042519637643037998383328759739630943011026364886171313973632664845093473068524166519486834676412370948942756532395694374060350193875059316894975001615567814712181935305429497471298410537508017314979011123172587370325684174780060593348170663968560129822668541278747054885227794624461503646385584278006348701215068398313670581599615644554151068421147922516054915724983227546520859704275922863253324111233494482988985194807996428245840264487172542547143145171847701810241507557518114977921855569886640253213385491063329393249580956783867969410949173829100300313447827120615379601413658309610117092317353945305946513799926497903884100783945661740233049627660998976177298722048404668551909899213868183133288085880247663865742065043729132958972980189846217486605097373498893896907674629080238011504445266639422067022321006395704358596361704757573212373875212909552386155309467228888296021806359323963982993728449638514739249502937838423773715365459749263569499569727353939121724346953304921625388464004542153127186044117353436937149565587696261933297324207185119547179570393811411806106314440972439281248384067374050397933336485335560205259519451017436390633266676479147996699401235650213293031526243603695124775551567433885278966550631470792627305998460752396847632129700317612606954693069117810027034823609521349539631496062661540572057173659372128072319980085757332332026694948060468657924656015451647008538895097124747324060571275046643170782298911429660871488583422908776491886783921094592530670031378366840334144708319956859178736658693532225514150307039531253637891612084407273193859452232597242861613663999516934558365367045553416646771185884136287857901862239009233689644108427132140116745498771258709812541915693618061127394940604423975932803403316072507051624626206062028476489614265810660622730182039197593030676002313031727204113478963085228898680923719065256095556252545929991853049807108563468169685389981420620483485667343238915029143084711325314589894888402573739440413818937862123822366641921626602391210362579801946570312445774402364243829844912534543000042675924334130055308333376251475488018856898117073298703527989721056722523876917940782836675652919467191444226807418374532317069341748184994213529396086394649323260238270999333213389421742744459814954232415661340942415910931981501936745508519424131407640766298227288516165386011898127423092449183100201135564191251189639705413930565742603849303712372694843318892509568529409695432274636808366270688221715531987790687842215436841082641949567850738658620532933708579654360308265476186953600422798990595885139858055808097068893814854185419045996548893910972216377527558025604427539462108541673975049485524507068636429590439958686485523308156526182954895684710290703563130412867576744458495727892283701157504063328463699033267850244181217815332037829443561568041236253404675683213624039367050287146348420484053646037225958382077246577324519058087047000016250556294928995475437959419689816497244277475346724185269418099949082728938214651649984431621412766837917613631134968780407446215209268895297270628139867533710841610335665396091638662517651757677731802102406063457602247987372468548468001328772738070957131536419115323299659134266433595379058569301631909987123491670720820550346899948203255656239232139465902765681505016587874128967982376591389032146029816447227231423796194287147138685042437450911004373772746131758260694724976636703510824570936010538286344390706816290219533923536901407225899552194290645858842900782125953506778652792289356359260888311025755768876749108642074601066365894794657912558874865342298434889332980567532128589321295350883296448703066327651804941886177644988107833879734447182098960768277206635649035486035041408051443350747932052688152149739997747747272535807729699834447602193252960642472222865656624418906743928177660220286571429538393751538005321991231444840304681264181364534498489660522779938237117329708179466807992663957702899713312122949245333146103874769166095915622486437381538544645581969452669360376072793026661939802734966031917898841777899121348129770664038919008222412341781727047517892173236049084010159764184524605467350218504723025363944338638435796918517790482238775333171851488572038222733878730241302923379292858398346841389596809623545934018321874452730430684829289961124038865702347805643704540977100295451095955762326463546695706794130506215408778287807340200847494370461488231443671745375793422184207908191464397490774305229183443098653124626437363182701615437897954955300803547701870528157823310449877572120993646518130473947892489657408710078172144076567680033877876112103856337823413940995130791409850131996776212049723181562272724844458390096822311131975650170945297590047871915789530235131065431277038416362042419822326348712937963083679085400106310224681688183865645330678597771856211957034895100249129576629813490733356609967392911292567159039182943362018475402441171745733718263819533448854103064174467520405772070610750735826748019049585064465919258599903430000412610025376609437734040339880319208042204316749613735719867998973119493277906991653301764170955518729070359030936194080879813931414468732999540244411433770590257161103059149729606721329774857053327165762746867597153229124200232258243542268177873821357436292691092066690673079572632078808810126808737532842801739031010250462019153989109485777492114628842827834326009799989350631769715897800180915958289961104999998459815059892853732457981939335850607945968012213538953050713220780645093668707612431345842657130169466776658591389170838910925403858209012958066985262709548939408028657584196854418668017620200214225872713612131207456803992498195629023464716933529791606608455280248008862497961779485889577896035158049979396177621084751034724241948531635853647232542170004953921919786580027022295022439478080291640186702154293478821705431602499706261004457973831602201838719172355773409668103151961237444305810205786006021621090309721285190264769722795849582901047609797580038491789295163657270860608145050534364905512191246422133309006777418664481147081301451127292270760054145498673431916657848101581223000805484875052154336565835189954991192125823468372746837011093599108469743820183490817555370284671127257470133421106016570683170487293626833846930782338529406429338939864643289998789247655525257450618294588853758962161233416978441131450328647072371204441584637617015589935822499705342441322288760637994205629969471733781785848550147645706349071616719325646270319413299737213890093728450787221659851933430664722350250484134085715797322541840720580281254876029820208183898589659479840996005769283468096258142995532491439108814135898767179824869592020915449102545646439976828545628302116071608942873926597668651182696096070108191306099022316095502488611641147083277449824998566670510117684076120119242915487931421466709095586649658026747773436269173937849565148030055695838559933104975425135442356968464623915572810915992179438368565696285871047361315000454413073278741932047427033938244294546275220139722259547369947871445207114696551797085120907524223790515669716178973909614776109602965612089291261880173176935203970941857459895692238741958525368665055646289025811085232821387310028684472943452812893319670100752507592284352182844352917119063906127671127919387651086604876893296179288994406769280018572841836966369515768776226261619965318971394674785226509319669872253230431714161419201344422109123850454186795569235494791402993220337401215910560117539301886864599963778483496597089694855126503893140385968577052343683624538658302405912297743231420994172189536036290390155903932071362273859408657502770140537521890954651880298988550250206010205850388980325889726906151262613226975471170602136704951299220590573903654942515196394347762361773188210259194260316128912360262553761781377317982063276247246486767736402694404731547270365660461153386265840536302212588260658047563440501578692380774270055800359092564428339793136307520679784961990864559720907693953798589497243217342060781153783543003300689939569252606922449976132349231546592516969733838654516104109207263218124604567354595231374412218951232991703567718349287729658957568104979762868127390507377473878004722918609406006989356544762692607787953263794102964264481346057386803346619246460710101470128380204843157786620900031107445503821486625612021478764738907416340204172302077392925448953300999343352346354295093985891388066500307521054207063816904872352914118007049691081445087370331044022427465374388553180974572061363014509983957200192973838227393638507234964205430756772608398286154054637393409275726397524360836065855771805368071648417332755162213630813930891268819612848330546161741433619736690915385792821137273860461611950990714680904959407625489525549788049990570805984495359967632436289810048714184631546901844904383679844985042286448125051774939385609731688156464608253824461226709111398335008027145004210027844671005409850555297711328864029087023715511964611825670226105487579411979819450821987503352778049244189174952396758250193151006918597372005541990609236424385411291595918828215137109386749236865501450460574542900928028069727001896934182230077184751622669219335531008046720921800736823681771618782046017002322973463949109600410001513317893047403227770932070276563851263677417772098049084836305525369398274390754128881807156921641582062015071652691881515177407953674972689859860285101123437362771831363327912686262374273695912880467756669169978048720099368615719813762227130108694539229194478775144205517980261693555521618560060833271276576202273157844897452947279627718455311094296887587811519323176758828867593976471856392206273482015377592787969325568698526643260961669864826472852241468738545521659636076764003167093323700522964197638150440632936578641823422609408161716511476679021224997989675944246396770499977837264299080418552007423950394454989681286418608921407740588127463265423460372541997474116856909175812072026093426931545498632807886123630387519347343856374782610174594907546197700812591089795568219137746710169193452539128865758774020018608187545314637820253634418311503664904188254609111312416530135187515877044242806526230886377342991683415010741650785887842997089570113005382401232274781853755498035335134480072722227535914113343069489993493956205008287876900502492143237287398904530071251511049165124513702035794219328484690704332568143058091904751297750782675999052906969952191659572657949916414443064273956459743479825637010230151292071907703936678620964066573505143105825965669438753969594165415994301865232266204671658404625070354278792354752845583017145810043995622382369017339921241640473172229704102224662535654565983502772679385820067775392247766948560936953675328232115218692858223430332317941770256627082565638010620969206974718815055946418358252578522468738393232285764557137201479735158460528830916392391024154087029061150109181243966629009100927176202979338059046420275199700317864232709870119723644081936523707409287892492457965515499503193788343646987942183636835923071378155844321835128302453509445908202171329856111729406208420806142385525843559325026366795642113390705931005655333050533004510728197877521945204996245648827669726004791824436467214171536886086198039024302832348795389227434323605687545027557508171794620797008577271974536865314225730839031436881367144729616805774809324540774855015085990837387488831756205970330834318308406380681011649198761596033920015308809439132692009518553990152110561704073824518849836924650221942119889046833474872972294401371624182496840093779502349795490754951993084573755409973994963425029442418103784802040177118772703026787517022255215105726426106093720027031867157713624610202392694746919377091643213715030596134578809426918764268178349023105613956216601074536819912203029290769155280013792542613663025704639909206123178272449954688542606771494136550721381318190080336112055311884642262462326781019301010691046771222564193844361136937824024586631381984485616016654028428747749747594530643501421813089042398201382947545358194517958749058492233420439194292307123776540949274503123031668696241875559829173162075963644718805852483872305196125453361300805556150730907619081995469722374689277861643155045769458590339325836769012021635672130056240852710425272969711858486309587362712165488096770385024089182745102171123474558165239612375571621122793812206515765400754595408550455526133044501057008575122684157914684901738020584121130190180477586621801357823139147366563967628307726215003620059226575097744284006940671399601014350903422704166557091441461283978060220019813020341324567508587720866401518007838175097150838627700540596381282598069880931363501254807127229495106031140412949132690290641031719355443957029540363136504656456816311149866005857933815798299152622138005487678034103237155381085132329920714914277539942576743046589480151132549660151002290981301904268051022458294647436002499827878762776432334544592196565163317413679671638952511930924983609670459811643896140727454377056735831946858667109634855138747217570419436286645622293989989873051650414284332968654677703544596101346527244207251625791820088772080496387381099568049003048222535448186290169456596541774716909329666224241479118820769878448363702564589116644419077402060055552318886646206149651939165530676102230660668692693125242320007822372152519092725217476650888451948642298320791971307735806691532041649945895499104783529070784031810093861348981951218343212424739697018333641720247953473544583660263326769821885959850596428881998867415218242217269032203293989368413522590514446176873777239905813977164027123023435241943375935714105243590006187554444817648936604721273921647151192799178264189320721374527880077056169542181144002885890871834197375590442008490498095552703398055705224714749672757588475777981441003787214251066784753466338621126270611036618087699886504522602756706306761819480417249928848202919060662826336813035867491864039337248913051634012809458049624000766777695526093199625076771779627795740826664778628266708162486837353926455915737727923614645512914038542481845198195867796416219242271173637962154581415628279956744651778783588428921056341760700272103591220076738708194203516610932183139857244789438674199213276707038293236370498910629742420812634995909262630119655270543681259825743345236572725603399474956879806703113554699505415542357291208945488460932733271852457252731286776348299941165253916452822059001009847176360417580979006485442930067952782202170086545619199122904199689200963788256006597890152290906355927203644272966767044763452711911575769242438224867834788850982250124381959399943373392015932743335449242780649825602655575650781991577662315934618448984046103014364689643252990849175097912714858575296614922184267006676622127240736967635478174094762146979030769089342609669166606016895865328737138754080470876589325056679043518766904546256822578770012043688646084807054895672466146352958083833178900005569788207836519363538014276254266116343129410578930689278001552484342735230922370865691850981662508780672191022280847320147845617106609568719282415049755715220225773398927426353259058043081264739610533903172782613623256483146669780051772645795479962103372718798633317054722006558417676015902682731206375138497117543447542342078172892322911916161845923506279007356414546443536819864494546150914298434071492507127042974671547131192432491800558218173212971012832835622744384714880178773036929590586841066401626733118837705751325210354291769425911282936580368092591868285354407225239892672498279496050823342845890862717814561642909819462224876448919091249676643422350337667917448634234739334318069600550650801051215095769967939740069048455520586913455110198014995085624674979981487252306817229623018907466685281677438936154261037526067943895652038221246154385981382056117866133028366477566947166883288696597454068985317243022767458453442021396015528599388296221328048437308496010699777494366508620740676775677477899606629787503739005839771321655642337008091492274097968082197177517462484138506934267906825108799194292245692144674886833147249192672150544112074983665974979187875256362616725681922931273583568250145052340081596101512894043903346072720016346554855453736001171819779787446843985462270243495006515796044581970031996367236776552300047010510649664834175776914792849260291820927843704862858176533378645831864501554056798767979372485848633150716324636886395848200622792266902506181141606021445992557630328818375300203106923807018534592750467826033362744554419837840817929698458324768796783518650662354045606041817195047488173153732885294151361269860517080074577767526476251078994439205395061569084224674551336094414014241661282745763110794431402024287169267251927339153484772944279215377844220384873763543258647748640065007750934228405561634347193383731514666793039097516018395652069941702759199088725800198123326003383958885384157757337934812396002500214547278781586063162699778239878578653260050764274773703621039711968383531642962919174820566314174959056995670465002086949606681741579141145107787125245701995336862284538319400492775958682035458795192598153581664863137073251029972281818174554335477612842509973038785987667521308660953620894454232175041057774303316721797522251760934298206567825245974669428306749963281995309449049388485529762020423722726943612616791603187993652812796913637986485251836985934901440070032869558065705388946337796487391340333973259426617047236338241721430798394135737157101422528621933384051494602817945153067303126621996248751169697833770319345124423031774816020628081319475310753723233815421325260533285935865003537699264522686188552321750423432271139732002065983294418073865176532194307486052559629726395752970652049993995021626873147535904438228310236441046164425948504792852302710718306195997633380361284041929088410221009144020831004887063728701904737274516978881238636631313006386430359034627546266001716105203598153503379703965078643913174448529430763752090086805644445873780440918219141445001865807231053814356119822813829632506325574958294505365386828245124321865595091243514355893523651504422892767230715003113963352690773410285701373511603360016552754898002459031637564234769726673749878529411078434626423956641696724695323973469207426985332255399012291862411801466259509319316196094030776672006225505998184694411088529989781941864363685879547126730800392996989052662083054260829704187234394643137235893099293579494922405359295259744231906101150177023216130871741982351148919912761244713572661897775852967405102134663266167616127254055731247229475872420163763190063247607687246042085997471141619025735233900695189428278215872460576722016021588918622196164547396860392700259635749695480734897747507898419785850468466087386673922760126063149688336825146813842186937183662570827977136422139261437774161857565254754303025822554452625944960760190513604331407130429542087493378303595732347830405329461825666048539042053883700683943242411302659355186400704085147768510355392194167203947906846249960260058369069480813497530214133755479653693675278901627032700820970294984602205812338425515923981552003120656846620936035867193950510858873785237291225098806140818951870972445461526362495780236220239180114696273917898501371605953183091727515967004709641735650788225913902684037641888042803838478577890660871561448760053933904476617400393814805817355772910348464088820995055270396481068715167668022348847458542209333791756448569233392742228991733036406830420764199578255804429584435399127551548544142023264619225496308649221729229623737873969272596358781571012207574553550544989389004636172840826200751281156154401080836493417058767620176687995531358067663523468513112744182857695395544281005131162659810408127726653881241413804779283760768531913188548929688818561831907368352664028496192425636993425176705068496887040461939309960536270257191528081170481083103952427905607958902005886595057635316014755087699569056561348814332875306762573551721415680198641312901136276860488281763013666049261204001638019903476627006136198719363966948540536704662155455065791261187986555047107473135421826769549238712132809843869075488695206278392032837950545053500597136441616431245612300976864730522567352376018124429537753545000721977951704075111832581556819112299607759299852909291924623527169756732546260697303103968244128813799912551640059450754244107676747337592050267039955401964425339063954330843090012929155846749182974507170145706372423774605373568836889268720743315094560037843372261022776425026131292842763726162415832267755073562309578649846242415290147316939765986938424548818614093650168959781846462679142999715323195834693535249476926894395169706896604561391272233653066900470412851143969897830743253322431803942602104027112544134456579948048532279256674633269980955654207060845992174440756065399604935148922546069481812460594724205566525614571201832064583972422594866469324850633489466574091874047666808176421860136069469902627108572389531550475192909330580569856489517139006585820691640329218306360079403340451860886930288207720045325966040087099709260373284921983254563366534379422982396250007034099407577191486395068297584189353875580232817678550731220876973026754489919212393324666551150351647598606266996799817146772598165819290448364865699923864490897126793554808742759812033205738687115308827474112233148989385074166527692099647540717649391048232482987359358253715024123908317424604267002462718877744840250975770033951664966864453436074279149182784478788352866576117098361132478465139793574041995380572630271213709325909446804051227725383761425873169073679139014082972412604485488352027084184112146607262215245570462372616634902770803561678688856595040521043649652573791263078308903903329146098053983632725214375464220247789694263307426183209852304100434001460333604269994656856656201784252429648232832305026316251402919066532637093194617530952522805557129339376239228518833414180128154125402275270685792374371467870649150640298601266180464739674241985228348065480833436019566379038507770480008648893730419958428549192150875240976408269663322163173984447004394032780598671321926171486512198641973832963585031152481617268709127102425089028139267477249771812298144020799476719585602569620996337905198349107481663436355175210502260807236272050708211606878747788111342430451363033671647071279164524014264732720884800326778278555557048865630459181644843482020254496120901976828388183222134827805664377841388086583513677646717207331938609457783032294390517907057863216794763897459580818898615029550331019143039765634417199933859725550318213382118541795267500219818012220616773924631920499563405432391678498598949536990155053559252594386936232831163635525029791369156121908508381544789744139697193905102505062866881443299413292824772872264579846703299005983810046290097469815402352176234033215196236883322295401970254781740234760747325898091798505623376258577003573770073087520949581125547420798961450110271445114204627777341287796696276439051150907464227098872268321617937661076593597631832916274582749586095287085106790590800716846915197693051150446034715330575144786139490694287157443215407352874285934585606967299805268535814107601523539378175763879204897251329007095276209336188476484375838427729599565212030562404622327981879105054553085962975805861140152517333392244576329820648060165341475333983157549114468970717550938186876578019877114127787405474198377973347165625054373397779275946942310177355991537580266216742308596118249959958424487719347375381633502947727696991464336106056049652180395009182470891958331154289669176395195594148557422222102597276627058214591388995666733296602870013867831151397169965095356858837154447777308253478677172472904735100808098972437847605423703355090427343618832489481437918477580113364142456121660920650596430511319757802398339033269030195421522113055050558692829844063803008267035771471918469238977086856523124227293766934525659865849382873086005589676889932653913321516407412430237844007625419584517384216057913721444652833940867205684944209957707798708539481998733847192469031724286580838266150509382781444904547148824597168588484579930341570823713938518049433946877616866844939937671159652591450114964810898250907069086244366063578737412804338286012875006753728763083886956612886006126357367116516197763308543050074182614909129785930875745311184048258436908358629612230417020522157343075881058184376553087103918822668676116796760631829409549931789674501809158811578597503253551527185289080050057548488471251498918154812030778060497283752761124707819330374515184755778641897726345705229220677132936035707942178417631377432853576067168373268882917582074479541523932008124717945400461219412277002785075371291168184157035870134352335905843474348620927133098823852764876376961250102685629688286262733682177170907281187660512093768167604367848495718048011751950583384258768241401699440070382939690286865337050528494243936266228582519413526707824922062742875953423024545457054932505709162052887333777971620775018843805774330545446210758541261496492093113016030452357986812127530069294567412753299365217816800720593011610892257837882439304083818790542707748745638637128057059497544903931078976122435813584369881008651283062980858239305450578440958559038576621606383719718955889777911885374750247973035844974369009227366655680149422405444681728409786815474803517771088452592890232527744408598971240816846941221734935439927655598916513474584807210708302580715444407207742057655607373436397298572305624046206558969925890910727377850111563359151771322834830717030063681258714388140779031555574149836403737677235389154162539678240860289141616478052448687028558078032072234679385277059229544596748616650375434231893351070778536174657745754113147399319009614914924686007411878679303365534201588684756722113489082504189573948947845433079537372392912931900981609007959011793424784664876332079708232324051663187630728318804461991574302682797793005614805187625884203374110491508399463901260095949499435775985361595248473066312764017619696239556540860830260694190301116091655549085152067869230700288477177930172574322245426567944872664488472038768113053009798603820058574346632825693001942912559602357327263580331634162533574743792343938796847559617378187300175753803802333669536370007086929611398786425814383721902171718563177412576400536728070861488473827902067020321307011592000009871165962943631874979677958559599818174700492676089463753391104239685603329050994194723620190775084102842988143428318749411236236715309200931273366533193610112217440872624760055944110630118608484004392748162731747852105404123791049872206579982447276756104115530776151834392552981633288560160867675321910582928100981902346165552821763020855990488426014855506105186821421370386131245809573064308374890984419853235097450696835493183396644928875921393619791277303268578174490874729776270198762344740961796234168377473937932983779664842755201283317993146553029619885115408010315984966559698346180205667007235226591765187906007841971948832954410227665532146798682175816916631878665547158893950113852524076377116662157783508517359923928660936320466875830491557144943288219399970367159291119011319425431177365651471047814528791690579493111691585446758348545244439931125075369953733357770817770428227130425827625277433672603596147385097730121679590828204604109693874461164139969117747867635510501340243783125511805876219544286412405762122953616850497061004925924722271986785697214558931137096415580375527149177976750961212010777144072118309653811640782767445568940143444524892493663383887187330306243825074242301957444093315446809849603002879840367581940756024723609026739974629827478527090675492908089963391963123037085551638716598299814922763307722514812042416007732042592737711501221196138961809824284826601090606317026588986831991876874783955046622953617401746042783607841642690402091635798659131743160949101029970551143268577755937973114683298380689379403751601610821968881966619260089263806872772565583921392012679092172711865492209008972496013460427399782923007678763571048345992095426547037010618201331302069933323720148730499098296741610730492663596242080599774988500828188220532725056651378495366394570038184483023685003632131113214254557136276434176198482044793699597725217227188003505052857800944405927187946168537249695619048345877215906423130818655297970071179309282986569802805729709577285964388824674435246321508627753919465617167171115153942900305335078457834955830220271111390462181650661285781560746357085863992684415655688653373250903732652597102986689002544378348926104553441703374974061825309015134002897006348979185519125701983631920992045996786692446428729590543308326285243247063866189146827827325729797517606262273988729835520872545621829858732958720143059156763830862718564182873725071320581955441584945471162572337418442034664460158524832725008948409181946802243152797843353774277834338662322837466531848986760743063427508366825035180990488371203433893005780021853435093606600047415633262874377448427137451733064028785744856607814717097885028355710402368005029785824780342310807036796671031030521649867431891278641578662746715424623792928010360540620995746457651163615130367124294998890175501818968999084991932809323607606039660873191705287854583201357514498830678626884637401851575962257468559011254263706898793585066695412492421244628043065042601694962705829010235284275397657126838030716483212755195252751813337226379931571778049470533867104168013332771833473591055247348061207137688638722648905105592917408300432987944269825395422584021174049343135188348907178691577218959776602910345683883507827815560062829937718126235406362920872831482483431370131078294359306815913925727295397169291169551601700427868811578986381586984547889703261869518445309316027970493792750686862548614758680233623254491704050836664624286502781466618519396979522084663786127986500628563056086426566938867621983175267179169290725437965990353687144608137292300307601600053498789933621602842698622819316527146855195041582071079345287694107258769264823948310452556888018332276273306886662589268711019299213287052010346480933115708979223622419335581312035041737883484270368227314044657283170132709791752235178743666420477991890666173775946084569840157060149348830673398730138895412824175954044646532064452754859495869789840813670964577732634163282629033629248116613633672106584702692915841414834191030507931150135353990525006807845418249433266641251080433643409179066879384807659933400155524653050224136163337208254439507588303699221952420645946959023567293385578494406854332805236850757462711593461679634725768973783146477649951373971964510767850935597737023966787201293881848200102607793495948996730062506414220215333292653966300472478469155025992045163337187540827325347312065087751156256599904020140046115129725620712682655126964460542396905472391466385374331803206306649245282888013380775564332425326008989945359648956736623741388397054839387779817564002895573151058030925270083311496213839356288834397285305839375922901818548965972958382686493327786856070728011578030307614953524560482164683465479796982584330169963164448804192425768678137768567411087492729788303374410063731318759947583204096130153031239991119077064915191160249253329341825560346263446698092844873298693746397337004425035753507989600903589669739888522560937660240681508076531224608929744795812307110845080811876662137424781025570808093621096664330285017854317200995243475903899046486877594792173003039252161175850768137622112527502527267196509272076251487196840814895049744339664116204060375844836994869805295352119903570276562897484342281887636173525363058563525776773067509583405762395804426017035509221769719431070580648478991238560549670276941253084657252390403190027121428672076624225049812223395024766436916335772362186118390084181309049491105422300322260110423079587026727257905659283639748135318431949929371466529821620335014961910681492761525418216917953203110627973102958839261861735112476259840244056696671524573209132624061774045884958443393764953768035928264926321552705975551994710991489306032613945528704603312900994168919264532742768203788957551893599065247668986893455486649595762596190338194741202019411124579388708433454357100986443917148562019302737880667180663627683568993809579811950106677768464078488292843605130862199402068985747306514795878859834784149152179555343530883073107914843302322559533739223198909320653442641724290148375107307238559743269961128941539915943224561788263836074509855102698018080662170563721926240927113246404086074925538649074501016454870296092523753755261998382225951401646328133616772359578851620788205008774281478432725661540978780223875266563903849869484749190593361142871033098580873397093681561525577401685593124418107278547512744688502864604076370950229561555608232243683253742496013797241166367629165253574828586543139801829149300779405020238185287756155087972594689551047274007148692276549056285257557989733395444694771624983514581355052420512642022787440449113778678213782037773175882701647528658699880030193326911245293227278719828682407734628443803627450382330709539094073679882270072865021528570597536850762979242391582871540867506658556737947321928521070479756489242119445029772310707302443488510014444739465160349530045922865013104818838025074314160222456716082195908927546171160074731660023764034605874710555224079292415761484977848209858313408167626386590853809706426182893388996850445539072085196031859501034994823965409794012771539149018049366489598858207547688450479558731794892619114931354797504654587698854425447261136791357107023168941100050743261535609283382109729135564338691807277616489729174953419361114755063194264661624450953674190678600126550998454409509481501411636978643036513464406661778265255746296886532914124592477534848775903993216613453418530022524467557264769695481992271291882343228402587952003636087021656478601122493265235723667744852546781126693613472194115572720886502663038315334954768777413978449384760165708351352973779805443130647547079489496384747360002201060185131580998540333864321668836978157548801968719509464683504058256899635328141973276242353913892405836883109018957760029431825257569375999785851634618694961942982928456206803816480134234262012721613184149717891905549932628059117753979889000088320087806193592789438347016193453523423356371382299230975253014997084879838070336482433599815952421565497122486915172239073896081549890396018410042572608837735839315223456011729372954199560242368982222746225266795214268687701500289609038443926542788876819239843347774826563497082566931009002700165417120705780630120411592470654258355274150766460923733951395399439483893478560789137694944012854218706458071238093048454093060575407625197049574406555730287101716163634915954588439162798507538393241605018641543547293199941803788789419182006371179686252502149024563035289741760934415903127701736839381024635217142558223750780954823233706798729705234699401041544165355861095075826676073657597791593309980852939992092708594119251757764258162482815928004761566776253912109336292722877863456605115831492922132096962850110677120458900347267820631455994869149211578210157000076541593475975079485074491715980103166632209889299030934830463313832492728130852810667870203994542967303604754328958576698317610657589832078950514868344692682782903556913185038671924579370638637963522137706549737435518210957279703295892661684000003524702250327069262576353200744785345576388049816809170593955125388840679395904584556996071179528545904542419056789695608142273813002357515705566466811684206604293483827022667593450431963756960040423043973561380293895000922528327876736119182206817545761354792575742527260016855118581275321197817524521929507822981417976752152508608756580056528310630356859723354090071794866185581878059477039872350073750159173864563830196567039242423128979697420182705381413008204532648692593484190032509918651334215442465183651088787600283872080586480422884959724301977011896496622119906139586906482818841438054430936807883003743409805930462180209563169177905981616839380847785112179237018550117531584059789910911845277631421840803250176330628065256483553705303617372902398772443255650139641263954897460497845229628807593540288815635864499564789294459983772924755847176032689382144808510249281621524169633137657334352931118508365905144823312905814204447396564349494375467207392598102185150664725923297519875841014812257226035226066794998543722551666565328814713895065170220973035764429991441625565138756427534282915891655295089222582453362137143421385033870355975524994624053808355808311710155491264320091704584055763632188024205740189251853756501611501396947370273511579745858020202887921723931011365584288206947893939673631274368294420203380866529547184457340912355014348504488565116833945049376247992736067017545447075008142008261113573893734763925443150518909571322804751811986457655634207663771105533503993434912873521755977026859156065441826844193997995241846307982024170730292009491704420469297611515082602341836653907052864880489880584938875594521778872241605476273242505923745970256837289070922974872674991246810606992505002179177597972275285449163439385709724669081142521066219831297388991905119586870187441239001772423045037297750549349865540409532045378105088764012015422989602225698564005744110380795418186131131689688712173483716536233387165190924744315816479988982540006002327386229581258314671050727619441111628343728027634420024015384629615902896103277570276649723750790443248726511847543460884773959846984056354858452518533105607163017957191471446593638524756794300919099081060928239007164345092305807421034971895387758955746450576662394910150189086439399263819658289294003816189578351626795089805630027592439017870671476323759323321447113317939013080103930367214570746433998347337180726075933266547940084429668923013445891274411505079932855886298069968387949910322038374293929646474905819199360225744798381324999898811126694360420261731864682328427888055251734719005425068251630051545565208507401281187479270928457427038982561219505451293340032936247336951834175578786007072771493076896747555109989459797025320722868015126161905621358345254965800863414768937041714576666996384083270665087283395348748752667886226579321044322807900473293293202682244621500034245986297437120556460246876671134300551566196246199931227010588742576676403478893619656616586352315241408868892066555765996518709872895103547770296700099141793644161276155561743242597308526124323884934659743005565188422226764866031141696226478824842436611003215756780022573142688422690427859643911147468921257770972445544892507481336126053056444720461870132385963657978044541689437236215993746418741963224454954257792614025798950700397730060294459949476330227604244476173575509038983746897029999325924868052930532449919469607404950360764765908854109376744325858326773192085447889250122236106827230206488328079364277936925745581251131956552533334692685127161134543664287979830182607378996167356109369724366179105415151739619391905285197402558644782667526795705860223648240612256653565973893325375410388233122501555384965335436170784420888935331240158958996399074510362503620972099402734127061438285081582489466698686118458515223588651477226402222811691918027857489223357586243922592852513300291225001171348670276970495037326632021691320524360523367969068201606250401575610322943833281822099624009150161931133614796553799413960734418201966036554498037345989626277455012223288443917467229847180893156652614632011124593405810411202569114693633650886629775193594730077711783819358092489792984016919448691951056826257959523205695823560120563761569853837165315314757513487954947110412325711130750712661760335620083674926157568741551916288861615868000475078436439419227214589855385381575101953353551296469669832137813852739028765530152507155432561757483616823674127921635322381799951580993733124854009639915527048702406846183386143978337103394952153310321091415295250152468596170737470432790829752608047937833734581104031161072993609722912306392401541324076682143447295106558881235364957239835574130973001203257851672865629777154283924520698095773485017351684848099728148111650679536321090487992083607577641845060420308130522055657777307449403028365385386049472011921742393511128032671585873120596310490822979568180432979363263340996449323645428751394666841578963698968983160072526913101109151326400240456349718697657787140805199413010019622621031531434334852241895895801249012018893844585434689832726643698085136371972702128756703613759024432461409341652840106040765641074872736330614505339617852325615690099182555833650992561137003163083091912330662453013328567907237379095793027191546325289382784154573103946864241469829988927310970760886591190171967626677432988233627248735491439062756666461573625988320655057465482800720308924245708921259285431518887984108435146754150534603390829470121031718727418793394156123057340646424060716560961771750652908092656106002031703837994403241824659495585362160354346725764207738690586427272370850340733873403595000554994722053069688278997263237257271451948331731705313986610894341068386724115056536111711259512011333712258839559151771590325240214807161126610000097901247830560570857079319948743668124232479134782135994061155069800493522667944305402701958823492518871281630326339325027877888250028307578168733142561219650681906958052181413137929933449695018621087202717475389334980124984633005290765271965566525329370575572688534082691079224150640076854255108027841576494034125710997341562603685917399837582457114836477995013617662099506650737248595371092803922886130734860824243057052233925199556673825944667847596343390145870288121269312149376162521695698443459056788473635697447826939657558629588918312041696872716039401766831803635999195390955121350120690730092366036895605805944546069034586023848131819058375510330227893101816588991768427459371275301859059051960724710902265801945923197145124970148065803061950766230576767200582383784801951548429799692101946444558635788809446759875783059377353943888674211282820001241368566032865237984501806826036656258407040443666578845386473169748283215187648281303538668155370768978881279943048734137313628228368271253503641607756280883316712682502910128359036150816184526175014892806620184891975893852300009679105481574317791871376778102700004743932610330364948574265008410269476618797258506810056021522407818114627005503875745614185186166125954205680367408221649978684234051385708290031344631696464111475987372157649414797282167529416954971906185088762159207838529823012577059055559485583220249531618259930189374508572963606345139855646447131111999834056086381375003955041603827168956597985730755112476967092210632783969376930297479627346368501658137879917518816260417064153246932349163061007850470834596957437669137050623657911622524602830071340451043293774265374759449719416314173497556341846490227643775584947972155520254190223091930320594742619233511847815004909587242753726817707346194339752900178904442178721202386179362941550919118554807995521447011975952054926939696937483970623276758696282778108978575402992404955121719384663126722180672672396088356259312988240523616965245411754657143210440733379586683884401775982706619362557723167348770517037375899722143347485179808810489371184966566564970786314108731265325710784591190960289670741614983836838683904116371964399042863304416610176759475262380230479377392958755539179618579831354039173285862135161950680337146004814325241687798967791776400345318103678965363623107313121561450772692559496063106423038780662336038030419676496548326910442546771425743677976154911923959268112193774166632360220276135661006804939799137166080339022223283156038406800505111946021593752458057348968129871274663034031283174154024137315955840524950953355509414572968548575097359077495532190530074713869486434475430351835004974807520711895984366381662609162423102806773481784748172264867757425993814591562796363615481548476167155502298288766277673899637265417601856857438209490728613591333118645441750217839391020167972400983718421903507376669096815904055610429834123010021417248234833608879376318015416656414173679011130164283694859525404792816515912409315027864687058802470744667521873139831913944019632037183616404968558708888728894713162080744148989756391039064257759470083140465159152707357838170115753936553871759885666956284801663152565443825943497096228072057066439267227320256260910564067913148349946655144811339165119606499774321812760655530762871024342676411756784356922893049559985684613098998301060677211324562211293787573401843404625233630457211847576261226765805253630381463828313787557708518657616720165499137234513577420965620981817938304217789579774769558171097045517395088866114542889024962979913227368726386005383036117217402965602713494193515520799669464717616835913243783031202035305015317421027519401418543782666824468803554051629574111892144123496667425857171171323108974134026208300972305889265357945713789075779640311659486867395826152909749768970710333171863048219830430678218235787663907136363407009842664366893156171857388489465122174949512312220225704419769266133575418337494363272411575624033202161214851787984866131862601251429110664182462656634364674393609356274953961401270383599733118971709419067822291918632055038460604475551197741078270095604508133841502843872261307662321826895895573542525553627363949402384533376955852907236284510285418857451278753720824270266639892677396083741132762308179826047308459824143322967469747091323885175402134519940713555926506703390616614759361378678280237644338543081799566551771793222423716931742316900540774290771944810545787594165965632508168116918778943831655058530305552931155571547366234134778657806407678955170918031939250555432627819664470983925598183562689701769708295874730187326568108962059421090968871018854746593766941350958899508908129953638259162715416911430564667338395677400479980281430332268472623423029202437763417451228831019662994089829519852478788308116307046115279428249973549767611325537360579580800824282095996109621251122098237546228812377151753814238824929611351708664983549554573241735260266866749983828486879773420319157940321254348865094739851113989573078031090925491524082341094396593984316177358469098473407895109091608320526434953036395351564730148754974209732728022140601545611665105648464139170303696738195079620986975103399980072061305435546782412471593477475982740413845302103902758170763297033367718061193522550081782561181404115340249876173710580477746002837996970364169921667905703659649590683004289722546642822542459529266901656304028403306176869069930068044522354187995053666128182949975990895321511387645126044240106652865335182823952424902890546622586342877976186708130507262556129856213282810720585476137742269610502748167938445845860441485475788623402094857693602705733252139178690505777472323722269324761567989958272496063681065252166201164241851881656730861092065626078529818867665151354551374649329560184744879513552196612560624615713967590349814486020005390726042496250255469445351289297592030220349732580162685324094895627625185625532666768051685768939328398127392271312938146823306317581216147782310252373983695690371608830383075438109258699314936058952522398939115134546008342250586999095253737996145643403854490567240047114568411705796736211481908158341950262923572787486691952862655110558645162037123537281375019892818963720012536297173673678358101547516998259933934564692788347323568072539185769062158862143785559785065269836080557747236055270934568262827989138347717613457831311968337810583696356426564746928788418241242259149542899186933452903446653352510045746605589433470149914445627012819988449033961098115476910716886834638822615088467978453586264649375877544290188590801943113092659223007660967386197483952333875868978585177222286913027313842102543877622723817843874099072821563000807526041346172622706165200739593016474196621106693304993229389974220422642499308213235387716130652091168042589716248538441038392981787072401761019809278747296871722186811142075077002260798214302968949473289847398037880918785151643228839062855410347800772329452712781091832097913788771360593573123650146327784952039961731970047686776234272060463673984033656391347246267554826519556015428891198874783461015949522574305168913559534751966477301120731903746098782086539353685975188839920907989599112565003723185147875403048549259373185742528372180282435462215092799671911258898405110590444861104426646196752106319507754996770739129280998213711320054351048936797626858659805376762395872374958233114085296968435120540931395635424062657002903264805213096988111419486285173665122192953511253694365554703088108636074160895194613350274428343774750743108026877863457209554791809086890196463534344174498297572208364849134610652243100836431362688716667427267837987413930235847114856671451884188576571154105199149049480864179099372683936201403022759962357292730159732061439445243662691931400536147836301395865377876964004421209143995312519945718053837524627077937082968403896410343422601169183049159873997108935721048606247508937848556447455357934379817016651101692054787198062392460285181696943870325771976598709304318923058261127171310663094487554713952903622885764656105086303118616788452657609730931207985057452184547994522936798786454665078474609314558767181727048721734140374095676098646866712593937309553855820413279179196789343283600566369896435277723736072364969953356015753840442412925514836372466795088786115040210590793300098292686285124147224389137059138838029994229327572967509275797574630419097935552930297410987943762872110998758928113021071029532435899018220944241870662706277978793382320729787131981591058236135252262867612948475420341196480773129707102221062312855811176382036351255962300183013413098202825514630557255807762775288411308692885963689586731936544381523514860756931691094455568240362613447875908597103058312330368696434014084475255588781860818208054592336052459012968887588212290949636410854926564516273196725656657335065290530437693265826042220892067107548394698866885439209526199786730273418181495457490524005892286891467572104921291931574475265427585726396644550843451399019091245217392071402132822526117615346425554187829028148594805331140615957145192632531486156676432981261077749963570579819865347210433179227259745071512833629332992023246247991647266588443418270464911696639640472131047383249669027823662488849586049081328559878368592154641716343625905837575860426798373581156767067788805813216433359230816253944414649939100126213374818674731120352335136502362864876216261990283433489156097576973622794994227849701362145658765785547499051075082298388145165502404824674497768609472947932472405322680650738262449600532153612969003738794056844930105956232418256861532471056849621485216751433012989280869565051069902404209673120361722299878946815587704190594343152366322732446240046337943216266197429573620274526191593064925209348747344843926019041368011072955717462148734726044636662015140257356980105916184089401468794908799052836800139728453389217535307074001291125833630004629398253770953415709277993006142155208971436935264099381195164671302822324486884894583375792069852351483935851173507267476917808795035019896959883637781747508097685287722729953446192299581295242055945907851860063507112882998009212319913708861100371885124326310824394555821233102306899300925251936377324110364832152592218444385817868593715902553151918697954061503686383857730534565318765522912550908556980994081706273160630087616892418356263298537112437718612482905821945032635296385061323666113718591266922683321349847442404078211301787873936849794776904939781171802039796322921499064628289824040681364678489798926002214145010349344698071206065376754466106646716839318186601964633826954920233807544203540057439675236136177965025274458073029152693228714104295572310238630800701932474915007886810069541499846133720052380394165504916082800048169968919166198305765482286683367684121247304417618648648503534814670055962839915254441946394320605670122540734706131188799213634690207017520566854458536156096649309915155038013546629875039209126805872664217436607547341505913863353143475738136810525887708592947634928928768796152690503519903169989720005916484628558188818304177239261875341175000661515027612499771930498755864859121356042093902225172164109231314662923928512798590285389590238872105455158851102308057684183848121880811401593461297250410897063509287981752282878561923618492025590106355289145701997861422667015571566364711290325900403810914980272764790935167362150435664588869316055174941497434811959785001886197187315187365024778729205259653740397788733280830612608127669707424608708678697164503551225726560421621776694320309790641538639581360931441026602501566222387767266029202687723352641234127962150422925199997339645801138982778245205683135555978050997148709574549717231992258305731506226217306043069110257317987716867728873624101534372307770173781832709703089852981792170493167168451790376750473034967867959600676550228938478750700505495366041155519020135554093271623304391685634218182063469370028107161255618446932473441750079081569752498651544260796370546165133090468427060801432350327898059337109311691521052953875838730185616018650211333672196159582554174284800411927279801485988739929281974185265779227553542198453731248953384317323122448249237993804890817228097810488375410944276948729317156247533669134824668081202902698245179601571746076019783992974332013296290362930101679581664742618318446277202219505121207908701228649081817648086262971294316215747071665547215678705382106095883574197372170019972235366674564982178224096834064258398206475127026732173853578129661431536695683146680156071551936260679448431869091608946845549708788168692830930548821116312584987330294959262077714584050184538264249479984761819975427533670858880627769118825753730395656905019615881902809273724133633772438721679152340322225574336931033658343136798300529651112334789613000917296005942717338184991895114202496197039563694109533653139321162151885608808014532296341220235030800736585818425684075284365034996113977226458925821800513276990829791150518851406883925465875205840944559742661829156697862122982408453695791000983246917220735500783020967988017854178800119507390627159966435533331734049217101180571005816844206041273163332476874959674230290006522914925045826133610914691011042868535159281164657666985126899825582137791265212048698139789921003604168520845426424038930381378401410904773773866100667707840789322615788311999884139404756128577225507071529619897121477696950920096362889311699802106296646299368143501617456823821879375950030523151904161861665468294987674036138345393870820925317178510713549232051644051565445093719859832401657114584041199635324195098489761818034200019234679723135143362579813482048072810413898022998173466613712334167990544304694066707625577751118408484048158381724164332914730542939061564730018015284844056682663160141244767229156064985046202509982122303941965047485144963204424267850731907305442336700553245266185143371266946276586430304936498682707366598787174137816707950080754224837591194085190090197800702123058973462099488363782238656348038430196823307116267893327199432379864128635406124029717167230521894859893739314130811014292652485676306381642383612515832632896163180694458662308104103091113980670776756979735339788201951286433322784299992645766083778426337662342523045847259078316791134885517899972567882275262466987559529506395644531839810587052567116342871647251174253809357265952111877925290779462279399663572437790248964013634646796915860358082851874944066293570793044202397640241895988362356611643532602754450172355393026114993077207479316876896354123384081526772272041907140107196025484538749279520719094608492233029491390555073996078401454002204027249060422217664054098035527647556258860418116059335226373549214986592547316065564145784521157499302766120997684081513162117736487733192351754173492135421364366780057090379103251145019555817152418348444541830712787316424776719807917428451004139020962826528232380714348846791222897502774176088534191803536723521218500931985698508816512638633692383328195331282759316683128007462945759409785146450204278426992344462790666526051573418801930972397390057048900169592486191186349325958545284242248935104613736196486849914119985920590012900652297549268321530928596977248170151109903349780382020425147512247848124905089079963743979901994338907736223979343984428579249957536716135336449342234299000518406464186093225729148552280263606609229397482259662562027662647524107995666225520241857903606761837732148293892441282674998748293639489723681751967021370108713622184540378241899426161105667882522770991344733154665118982466438428262893647617424062706973171494253126438440384453336308786803780420236705556138999704423054394799317202088478704594408185235925004248563781119147949824124246274918931023676320877364070227490374316894550840174717800292450880480285209791565334449187294827078545629949126970624332417399569125787762964843192906106232462219730451655657890539090597653266848147506437063282902386180565928282072294527274517670604178496588063979645389450125139479507271683464567761635544684686237513238413316528358097324652661417901039807210849268334238351230126170171709636509520209702863610445294342985920657535703116371923588912831988817864352697096232996882644467416006477851699367354115285757167245075918053153988730732853934100610910401868774494626105872323991981718442386553627068807757945340603380081443506963787529046959810794057571048854427085765188532733427669742803449569448943278422919591052380332047203470662771919391566469066706096965832631911947128582629343686630218525430804455599033550745359185286096219829442591116657327701215056184760136087831024451527448845026671449647802820335628589829093740033261513805264277503376004089922709871868372929992106769668463865063722619925440528777814241832781590847253698191455460909673587458112963305389051848825177223319209133905835181344030568412997497259875697342240014721372140338839592625380670451406225320283518616413134972547465423475801147480553562220142991439096750748644456135275098697650738556449235238142203829029251235535082786674406817339902173083564781808044245623966853165382000333628785108999853367099317960064311592846231268950084345712046075171166179745833543582274691960940593186750233246815367337879580363916171280105801622489803021399314528978258650422527970163788258301907520898550446924722650652876369872443489235805624535934284512298803721110363700544799021236030468051796964770329513998499379054810668798691859049092978902144935786888656699968020298091793657954304533480725240782199022550762085954909114215314765987865603029030648461085266816984570224507579188427613009890493014234149280438725985871037496719894618465651430718276583592212189838781853284630420825916153394582647448433339703291225306862554018837812817189556078168597762783075086529321250046337615326828487876615217143151503926139004638013818357827810035702620818547473859039932542880528302043564421873814842854209593049460359786358425320136047528122579686372729593901471231095196306995757647501251760069098888632362341199411133491967135642743968094645066522370642525083542782346650691437082319600897392444097846200818788793519387952340894378542732678843008470602254539000919883395116601726513178645654365472518477942641967524868450715305620436839939046384643920105941958038654431873587125298746742479770669295186029242225483782128346531892036568670749433363247948522371658316344174308913689794489909032121608277994866822946032901379872155324615306048619497764476939542914253018798136447762392469685568030528841237697271356958396645495177262142680970007327416236650740427300830792946976658785453978024924938478333269978191226947734636510878665439337195007329835680899707434333174230620514129666440469971590197394043690867915295247200763825975609567070649161315284959024252486096624790019131516461222827145622206113667379652704189816321876048914938526574281997271677538659578298929364955038447957831413095499167904481701969232335272661923543300791060223180916225079948180290037049897546428178650056770214916206432393111208518435774070901581477151763007107658308979684947599416529109666556033773581590291683431233158366924854087719650937616971393002973865074687098049299816897170096903696528029980213427647866678523989782699413256499287319903597519134853251577305831381919354984089827382617430882211571467774648927328578907395787616951656827335880356838518689282172479956737538499231080720738359543826483013057889387445472468959583482251103905363367492446674633713558502075675534930232604339429886459566694077267108633581231366040996945723501224543059679515431820595744391962390322197255546270721301575693347605091352098241604652009608413122055673993769562940812067951055326598371366200020917617447713908614246266873273140774924043936253447375401958092996236809419225052234690214638825264932428064888473247389772432885663348628655659611199788175910270482208523531873045986024235120117514499058551682669396010996532539178748110348282111137301764899666460862322532446517859912251133891691439542949570471418634195449799884965990662247714394457523570700083362648397543689372234001626456530224710609257201073739126756806191982860138286498689588800928325643322682487333866834687517861395361668010997720326950047041079161506440898886398810704778824554063202785873100378292549990677359532912375486004043780617001752759065859546968150364766879280810542279466539689159521155973016820717403560062805643195338871199021821691305503308063668729502627624080750076308645368882275917914404501139819016907800823068483577816642272160572132739330539915180622671179712452318695945087193213295992415221595228648106204906125085280194068057223689707304876559211634017904652480840550662909401046841058668832369508940389858491688767908174305399840090197924301150226888600477732316549492292348419294896109679747250598120634879354472109942574466284781108989486911078933312990598564420052613829496561090907394838557978868872491654070598011765112310033319017362173949643820527677050399178211356269458910741235316618313005204003525892951465849458650012184995712563453665234161174216060256580757067638171074803825229719324976095705567345971200410456822028423746695335985430119026948130781064094954503693768495141905037008750573144644619064673644548325571341859467192541482551509723556215994570106158000984732173690673928050621965314611781601080396607383085527677558926195815942427708724775866643986470343993959253168032312101273107390360571067972722706756872001580200055116994830452190271196793471548728764163108758698294763526075321864125118633979337051257253131072143116428021106822145694156044166607947519627480759400772138487478081483695434055104514457708081957163206809090974921194447270372182527737162283658241403026083396253198451792910627680295471982811504188313154657553506458260576344874235255932464764306700873409291654564945609726818856138737102879495682250116626705057109956768792658173719925700233105325514956433487817726608173574058957005589394475521698298417210089319861995031075083258781288578720787697422828700202631311976323262565631997852322431893162849956892319001327050378736443432332126727423132429560800747258145888243141556225792755414449224183816628116025000461932946536242738523528935208021557274501510955521169133875971377905263528511363150388869772550383606887567584776273858414342114708290086516898011530952192424168515964514970549166675866879641360061674165373299835213408994120580091454438449088659199910853683978857858180300917265568483076217029180035961740332885451899474757065952098083646234807566232426528137993981340246773274863647029223436802132451617284845595424614220929995725727465298753917360384242063146879038167796487632746478252550461618395437578589267589285156765808846094700278812321977132594392918599164117591595780380814756677438744726517065595345952490399913580534340114451976420318682899223557367507011326396475505497837707501619482182183806246438746912298902215210182069940091612445055555359653481026999656462453806622105257750849766402565857425670601014221055763466738357934550607713896939256735490566611833389417116925291854587696127021526189566079247349698708499856988717978978255701321529785962939098663662247691986703797246777026542435270225540619298336983812959921821722284412370857851709109433900990762404067868086802334564652642002983930592159197195255600830739858146971797939810251893728313203758354131593420015668764802576921368133402196273696362498726740458162794822986972388050771083651497069703532560054575989728024605690192423042629570526711911090591037546185194202812377893454479833372655352497461843065024262413417976259724536104570527266996654926964609355395252201909862126527617126419576449177630964140076400800715627098935040909375178872150071050877348222138657384131149633733069652668069239720259190595166873414639293117523593232309539686175596173352896103079865548744220657816137573622216806496640856174760679948034176146232282150780855671989158165456877339064295054182496455672544476250945687330742496103877685981937909057685720399501567995175250683023831496603444167021909972707224637371359159028530266698553204441376898120658447657810101825782748261348462778033249155939087566420636573554027867689258899762989205509909859282352818897963869834640302480185744583817763079660027771664935110772068430656470239015401652205248487407729552860731115503657296788221682078282816992418613212297441925046240112838373156073611072906016637950805915770701958566624583540937468183894496609597344485816063566112604020222544835478337361332084611294509276693811380934142571571746434714646702531794841850976022903825743191527719141183597002656364668517558824770579668909245670441571888192450859266759952904407294977259371342555592773281801443675703946284712761951374364122079122567781646432240674675873040040077881451202130572029303645764347776704686677935165861710414358285112188172556691210960316851984369170102074319718805627301232793518595808994802457916272919901823112520534462989741888227072998410641082664522670588639593463493317862138770146824522385524986258777300282648826524162474862826552534188518956094555559517511418295837767577013072778376742098598315552979795471345171074141444874255963636996858431271845625929865582740277518560063935696664802192196648626770286045616261506151446959507172213663777191712660817811687812699008437315289300285117685742021433999995366899030306252844160711919487003103311295438764273228152145580618360513030311728339892424907007508142380203785863012168363788181770459271984154208650867565061722890817821213827592995053509201061023960160105157959173433112459508501844475558449571855439036143347609792675874647239832689810812599368496093221313812940972047386731921799670705529304131114621038566792994107725120963702925496712335300765952014455641586505715235674934181495966778674449131020462945296793726405714993482715784712371982073953009751065242197852185760639282641825720476946807265818440892309086020718900264761836793068454006603445419033260427030354689980961838082328260338823706311314350217963382713483101804523052619100928327425355032301744902891275518803625310229816946888497293524963328128401368409118128809368357964895525947987668704455406624749316673594246165176818004296922574234963804390741721227708916476162854836674066476555393689440266689607325470878684194791897029896625749332067663530371829680549619444073007934087177010755608092475822741484996434841456302494955858614426930329277183073941001346166704808229850602941397201447614862716029745745102431507945888377110757092251044793229393183296512501156086418704690767567887632544274259646077658750264805627267668690791854427968516341336152047210033046053895292643753824016267586637284334721945439151625806189235595758835205986677104775360235563884817503947120326544527122442871833563811289639126822719442030064070584477440223892951148706112887172102492904059675647430538081998693583047486192743460998781288839619080760682206001794120946590584134518213495765076018649720020198071714940488658888893900460909796898994785918315654970256388878995061312081686690913094592845034354723551543196060816661319848967889547905494412186354061572980357793088226856664639464686560108101694325883544826654171209641995545117929210107602609535087413037897458425228436289223043392819731221747626721692820404019108911532971524438089780276756552489537582809451143647831185280341693185902716077338454694440699338730387561812782403910191421645998377148133458763813550323546346443166133531067963673382415026132445909486730245590198236862908679645669301635355017732318252618388062819078203081500884531349466914399329053002060484069374018767681164016035393866724539401554560101000597020035978257561236480767996653667569543927548285253553914051109007161523642393944032636800017005643110174136413652939802606992523745443371967607340020684602229617934375885297985590389739061737868042050646879228214994190515602481197919261081401524951035991320132841238172322968044797022227697255662988667817544271064746243484949729765531589601876150418401836506658503579055503270813540098152083263428808870920422592053466980696907552950676744744562195964662653279136701376218327036929718108729055846912301958902446874291797760015743011350674852707940204895108718753534831856450186914752983562784434518058686925980140734985363650922437600954483672043023612616954066214971244868617930113814121289252779392000744773562481537513790051985782157261108965391663907814200711771895161006057481190981884709720077166423290942965132549779446556721314713021939538189712846888036976505607683404144517559255392144871475408676074826689133765679199821423584665358903691164449523471182345340818701220722819649021184207002885708697103107363816417617033767742046057349373174041649331576628492877464338154886166236719232632062935303623351361506931738971243830004509194351468251657825226108086509346242139511770217148229819094755103283072887655401868483681181885603945054849170711105647955032333769376064061958198156604537867133363737810193376196422574194806099354006593783333955083851893464458809288735963574974784246156247713581330268526573096997405411939686103301332998339540963766337796301130627351537832237129771224772538925646934772308683765042357937195473481522815336095289857251943830549862554053244833837299660329029010363622501262481072491840506865783702111577584525914824054347185889427048327436303913258845216392331307936715457113356469235589498936917028347487395382062525834532831403176754089817294956618654681806201071258517404674376540827337360970130814258830810908164995967956168453298095777496348780851876380037852923549834430431801680327448545889365956604100599090321797191201961515217474055271148171760118420756799609892270506365284162170025519666932804327586222905587564163280196608156975276009546161194550028547033805102470144076942524278145710072636074699265867357340044587552603593003515723789804337203577452488361292271684767761476850065377640254509875276483860410796331008691939678216801594533991284775417117205938926161669626072647992681822683017495575920257590073222105448212211133833640832862034954757929669008766469599405976602062525946660074602288904026878783930248101752899516777636830555583476157910783170588086982212813071701373123851497321874425715878982485469633675104104644474885197097532934015841704891437248001880017213479927169146568154512002399941081979612992063819713984214055297534243034073108582414626096802571673924403822406961421202153613005022789650040496423004363248073395338784804654265628433528053543910202369061158279984945078122284810160145270812489897492563111367707517715422711278763872280178476625111910383208504313104915063584368550745814003182833298276267467345050271563889222794309476885075614653741931276659089352945957887237702166211479633343346109996679969116491980401173777876552968581881842072528859668378379386009186982090702636954716203794440823932553544294564325438527516349803634938424713746163797853251384559136197521346241256382033997173010613009623604348447242239235215465949940509318077759369313133115788410675789142071144476199439095115615374867408509202906985079862865643585060127122996867797784899996928671970051591662797866513044529224837021167582000875875750415740035470445927468566552267835927642354901654220706850095397172522905304017043864379163248268037455611850375268120682793649434331368853401360259977466531200530379059608590514871814063544894932681234486986875954014859782877792128458077002560374484922925728824560776827902487048689676719089259837932261461661270024478985822734763357224126714169523329488767940871720097942385374479020736892422127377784629787947126021493275355947304471653468138447995964280922825041988605353283981687067398770451093161271398255102776216521241062687908225313596766840007562971761448795117831392184070970178435399018940163706105364509091370925147464262274508522695551436064285151691338994494637301899321207637982759433730593983076681101922352982145027467923863620664368551006707215452712325077820759807210252817391276227799448172166869993399541178665893991640478514319061864687438281069970084022193328565597594089235486334653177270485998700335616276194737306517137150346617185034505775870932301231769749799521625427275818871074973857843729624248502048740597154404366432690787197595438019768857746250094355520092008277588952519795702478634324218862092028069285877337419454125304413514484161549289651590064897778636469710385612510742230792743530434677321750308700263461898700419942307064393031468259851693242857230751015123837593261154013167839212383800652279716624014894652791489315918041367087059456713020026924752324591191726943865241204621751931433864318288341711616859030029523629120138198950240523989767196541630672237882375054961123067660508937071144953662723044695070002655929185290076782742038403134221927251458902365681931155459481192232726048933117774112781812173610701821315018213355343251847183904432475427180448433427776697279016225503863741695642646835319314030881386375576195145300263890245018233565761748253533765939309216224433963641017192840239114008042620263530814185126118415549052618634919068185549500438122547040569454502760813962192834461935516571946255075458745346509312656230146019645396210980484194830100614963029091945604449715096550250308289171393337743203160886897739531887306418652206598921240328669614287135121684325174616001768220514134491779490803240177033243496408249812919672963067391273147612762857900116597032778278313104261236740869751913851645709069498906766790448458041418109112738742821368467064670961450439417246774040892545073215625684823540848116159635457313622626856079013106216104638964137527590773527360094661761290044440687998499631864634796493096571207717694294596961341805318348073063579208109824098226183849368191231187665180532588511803341472210850615798606353204972258869504894884841782713408803277370063973458883056092675920126182709322003278253228325345259698139490159234908376728373592202526060871108764577081217952932801555111933783086578972498266318718708924939425577835538033944231173794555526715884066344335949751802383244198269231487406820348177063171601951244537412999803704485487688249281406530430439355932088526837209134506954359791721234040612971726224540615900517388240652895303366540174023545430955351389323365961328005707196889419695175034423365305451818185135646184818120893809312639952757963208086314914786670752598114292679756609261141007528128061129703002749302208780939322745488244703619540233254569104082019346503745965812586718739876270516918599675997432384803214811985868406007776843518235136451275077640253902801384305220552047517276856272103392750321692783384681689412925487467333043765116989616013926601259891400785044531483859077260834114606490098825784193159161506416258490178943073654058692447220774300777474535036413621715502854489742711965948354860991596990403088189383678266268946533686633418374879295653601343960768431645394652957946095525399418999313134566972493257954680242306140801458628022142472070485266226687008019137943843788261206813664919383257862026014670036740459042773199994535660672331079125236889464253021973484437924656569817634790091965476868121785978184165154740257215769907787867743707768800761152221892337084308008240883363691250816370847332650021212119088979672725968494829130725250265582143042821280152884295189376723057826827185595936163216893655038459995050001650997765406975723935170330529638152519795028529082104091551818046513380978818788099802221967177960805256311093806386133794174343141886830104719159055277098608599321146012637673044265494241167145138762555256136717588570404358345310281814111065336859886099115533792128055361038455624614690201288719436067316018993152023329420470291082022971938237192483505188514398943383472428759273099613409939954343774726258909281062078728446309073519775802171894719647009436875525735547625158649810798763958174698637003716552263057899131487034038477793155317095485251450473848337652400185816500569995299537326401965312244259979720410796714914970965315569727269396727661509285064259587483313448791187518709910638734107797421076312149991277321472723717358638970847470808797152699666368413828457958302327795615139818639897363856163343237764426139175355578002752724493808849701050836262095867987352811048837908676264260608266049080940569252963043460843707051345789755436485518619971900317007198217058456070634081882774250327334808982996177593756935107724213760353399854442235367361537259669558457130166057129946834896973796509502275703412821534827651159379463899540414480312659575898693331415312469494633979636467066303062081505222070622694759786645516468353082506543907953271133567275083461332510052693287460833274627525052994709464971731311092897160220569203754226343774420179714113068690886160722229855865209572202089163757315594317634598425766915768007754279698173702672618513841197326698704656647539385843642996678404688561846739670364132254577051577246851549187236434654492605087788286852980832483002715302309345044127275285219432442222924082837789204384497406308930443477708731581446739818288677676483777272367096254960856785631139307082276126304509052636472596142453521774844059595257765553523125080255170716090958855634254246338199584613753897000771822986731411926290356483275479353701252973553527222644640427158183632061361506204468079891030504242291158584006037882957845115063972933616849995205725846054238841162153885668968050023509867489499147219744851837107282609951991664431808788717113723387285169320913866634631569460021901050779746372083157502061876507087421254002011463654557015257016604949190420401690967339895018222648167310489124929779756025186122027996544252182081308702309885916841963476087517773135932607428884306146940241146064172292905391260221147129722460115690176349522441489712712898698549128691560419461350889671369775194965838154600103366565101003116794895858964489792811746474362220474047481505518183958613846801344479986502639205560996694658971610586292779064009607180673825740773234222145502892281101071060396826539563389487896162769249637478446085438303915572059154565825745289908777041213938528164036042301761741467637427850921932002374287223322330293066010109983383229311182125590375839984281555428149502884065621746807393187896835035817831206717605196049717044395194152108422077716231198720869425564187107381177238378954339993375807981726890316524383443130550863623898377946258204514586974287501277391715777369777844149401540291764350480954151084650837257769421438804259520956672656514715881698062386589852896876356806272012085161355098384348349775630482120808256908746459678540568864201076815982869118127630698647349427713934806645169690416242096602466745668363823343766406981900460161167361895088964817071303828360863143192518592825514640777791889582174053147202957258533937355695258153659632465254615348026909732370250144509978840193354939335451455685354755337917474996242182860360188466575726358289898932365792528754589934421406239787021473778537269436945089701923693178592532393443208215198534852509293697986051452051633705884753448071371806023097941317123828092493150684030167035979482085474338631573627897199886143031104050582251961284763724162953306153912948977791512783927527957378284001671285584348081959264290503906622679608049291762023443001187320323329211322438584658806287416325837602609113494919942560693528908459355532003321265801701394190187381189335146489582075408850850951244504034539967773939188986312369156500919983049470685229854427726686475793822479000246418735149694050813818777702211498329609310773702647427561546526920255583556893677987738598860479004719265419514692082720927561286417402003397546172665361113419574129197903400039099020842686616051734527012719518127056429248950416732848971209223760716767002465974860603121069156363522382666595717971219261003112764097998165710764397759182186976813150654813462866767407456710096680959409604152702220089193371296274125007829365691679382433668620975901384481470278649665638006669418960479709989657192689966371327306239098378426035615666664865258297106225397693874924695105890123382961474292367230484176805699112945406067781488870170518965858779972929774994511719789574750651798323738270596168951007413757878517292794431845860745961910699073048554279394193416793627126024350716837897955194492681890633955092135937519084388756223059007079618807523428850735453494444836765607166825683703381031669269498374432803434739986791594056220243010896183365595806498954360497439382257471485986450103349853081839690256276830500122817220191675735419907261328124844054721205003150566071114608488550685995307293609476169965396811031731070801602475771004819078303483445134845692170291960477555670032477298558057278661803353440478376226362438162345980958329624372120231490448152955892651745719716253040430792059804520750794945296307675637281610759515471600512521370598857359164094566341485717726214025764418340486222727841344642241749810388719136654602704301344119714464760750066997326065684165303452840923113780295719923766179701973588166329358186870097117073065716798080336242581973392877589484544011290257143202281999045885045773279374167947009176360245062776029682331199432614715522428254192292935594148078241519463416452261472099951985407879748901333235272333631546695922479565501892903240613719178227880181178494084840462284220876886647773825688231866292311367271519183243964341444558661757901190722918464995434358527488897249747262041675513015118846208910287055495283920809002752239176542633586114966275460799010939463783037895220898620599020176436753600408473746866039082824505227629378368043324006654351728912763755846881098808077901726375725088536495126705417827496811320483989797589650007281693618090867082781042678414688797679123924425547947402179846460392094930658609490000962635322110055155996508761901510696148455678289647379132324044626490441384742656352290414065516074507720460475824108204338008578128375545099299562875411733556445819991441497038886591847701229387202994902387190741585572955181828959522469444100007675168872303285060409536891564317818669119987232620991499522357232657731824491913227817000355224984996047517643723176237407986444251318466741477537893179443151456018067231398521865940526719561469414028445145282162615283546300864933676258539785982247333904960091310682914957383319908590965990301672027413469013973558029666080313999830148642340094795497244294083307821482763601483675055066122963371458851136108418173000828944376757248906216401473781994605946731556953428830874318900004238943939050411185461545667704737029902997867642235742621070885464378376113454419101114930074115557843154354463401071048436272721469550120318649608933117919343358491348515037802963533528572801334973996656070054802069127889900402781458471411490411186733542081797261330883938839390682775249604355453588919014347326611579396270440293894606107308574149373019446974895597202576705550141596456416066774698852008526114283159029502798455022331274719648885455685146286338382168828134329690733669774602674522848467443926031919167115430748229225555122369025970100619220265290244655742364100463174388443781615506583953910251362677079519953683273598254169569294204614234781020861823402264912384978968326672991811467268565580794804225818216567123235000956604403033580296244174263082347489258831993944901701588020622267643933334324874080880506117458275669963286158299418924072298615426688735633464953342077443191454786544847070335009362806781628034163195519321316664383363253737751660244586470290849713368778021412176856554305736714791736624830632817850796752478321403577964688430667125490024601857948054614811206523075357137660228938734870568583543791710758485854184562921079518686952591284779167670166345869739587368254157042059145386234541829491428516454120102800136318243380567939913773700455859974218932024525244015858283701569203360385268246480227967746613074545682708467591066637705215773077204076541224350559557936442357128935697470413081505339759444021641055060148495823692703914142082213458860280703865889998221910217921183264055432033656016028635053402399586154389839040014189493996390543221985759612436580575346056887537044596826382035635173954430401864943234795371316912014987491678753325738157517819573896325874602628359225663616012792416150349274613798629460287639980468559361764239549926729492708036017314425946914945359495673235873289718353024686191583041395895607335017408469069129062992935441736023395031176768676176062116512191893273513020698632930820769862972286609136168194536504069486188883398415282550108570424465442145406368371721217284570722763043117396674839078309742341137132952206287764588121358052631616806391897298549228307969590377081793684869732691003903689352270279389924184393991528924926316976111739252132626195134230709479758838460397030396698393812336708626958875149146099765375588130244438222129031144047331304841571287153266630418207710493199447595603563979148682864564465875305835802550425882137795311224765950430205888759856652974031188677284306378012858532291649829718927050469327412660997774037439645369757804548098471513075055624955838882619841165773904373888159446646694887004736737521962524141523485215814490405431182738244007926554502088762519862173077670446290218287694830524047319329684979682522556417842431608795594639801691804456486941181504660610150406122306571110887712690583035531928623189855397448226691097385683641186829421640989629201969039722216163261065836754412686969152322623050564052042606763897517004726676786856629689851827070055565614135084958545922830322983445620360438865079076193193613610423433728454864884298891803709795741933701536817322785877513740005507962183718809797594170530947474784455079055699407052125071376036117271396114542963788304620761111823739146009469129959276867560834012058463203400293908117461297761851645184469765363680747534908365576757823199598776603124168494042414846867095842564719987989385581495005331331726944453175365029513042667381526849542961584787348992125854669916169304498116352454420703227453187978595435076270513971293986566049045407513528286866941026824976490850854289460773031043446714431025592700835380990841387021709083967755193034217657830444285553662342683022053485118788757894697989477011776471544368180241847750121124731150597162440323079931736485044813464922158751187747474020388113716231084756289305053790185093852644867238104005961674628816182653712559241850895926380684470015270000616929220068177251500123119383899189381509989095380736515894513374468196940228947424325840131931769219899017209658345329142463145695687644315781545582920797485414350518475415504479399422166413318598215109490116218421738231170453844397400771181897376176972799463134051092379936743861536527027561283494853038494941950938569941345092452069052120779046681034227503193837876513455227727056415117818662520417740201997930690931619011132519409919117921805002209120092796384886291054073731462431607051704116810594871981063930271000427142377263979365297577387981767990394715418634063900216434373462276658611359022269322540502734675532734820002530961363069190212507199219800649156058887117306802324638476967187972210002203998132925225631841387399465625631236511687651475080981907223887430109802368359121545118756190268345103263477231650901622636579152976141203625940578111968186856473471764962059769222368835024131872950015720999927657013410261291823290718431351679019651732055617212811763676954215088758659366798226885343244937383367046076028419048349458738478861529841789270556423820355069503552893890117771796856385913849252678342991810219049001415093360408160239852785251727368187982157019274536517001168941109589055368144257335350619924611619104552184341543358738084876284894067334175830767582904633014684662598134718315361060928990474156224606497816817666994647820974577027553814825440048348545219274814395212649603041294204566980055126792972613685124561259343459907594647842294809844577913195798605956262868179959699134223435895176109919974169025641359745641319235388542256412709902120072889773206888284426067388033932724663349566117111835782828422697181734841693937234697418961576330161794718252075024254593018426044352168514393798659264379537512194627494896892756592422019352660102526476088731585190088548637194461193487786469486379000555405412272580971171005321207558940035697780284836350258711541489438165671317236191779949795559042337548222548047516917300562830965455511796045812097581265485020867006407606471357393574730650817046563255516655328622791464805530056281600567774557508678334267663129538041032106512338352399685042701303888555214361222848096874033170259500399841394985605396325677736196162963170049355690375453108167258399574717554885220934044845632133433882650726287738004751578664428215969817248036857767527644107436450329968419422190413165843957679088491600813869304791113686146858399076052333951617474601899941499793216710013488396924528985320738541400091704268710787829697045986439759251025656921819457661174598696647790491466466643417573527807386631537793097473116210588306083013557103279989150213963574924315457789249230370502089816826006759948548489200548992726955161216740206431167422189431059132083759592391010590055118454570113098680996207071970487597195328194007871552977442438894999154418760893480392541900524555610786486711785077561430937585571771786978139000872551938008033712501469116319674381022804293688528664652310519279102193357613327230902498479522022560192629743867005613643244241243229698875316914719911754264990006864675463919608207509788166096011757894083945714772488068844955879537935814104998880022771199936827203012731713801877170276859967129476108217758974371559047141188110227635391883211807877469348706371668709372224134985910924315350476994001086453405674258476434191479991730263347120958475536149434440024964467958734953173219610491111743864187698174376554151501870204779184437633765688162750317993833375836170856015200338085940396240877728566990736931560083740941091375760030950849317325132964586003757111865208530314893470921117871783807506681707590838559510423605843566232108650465581401639324756352211912248882249200788946995690378066808615099939269014975926722560046908753218137816586644233983972538238503920747613254311529812408900294514674115676191051497892461541437584491107105406390852057707767523636567837385137033551972981800720271730286962185484778392369963296087878651051806197121280599763675107518415796222238903338566674735995685593772399006749686188948428895739140390938311057316991460000782580331365620107233413410429272136119786912585458373972454988000050841703040664429936522961740380852999684667966270501756273279085094730126100417599878549478699235492469716210953334201278203289755393356563010344283790223644026351620476335747910901976317049864093101556686569847247167998674108430971110456394345652403095105848655531828472295816524360771727262939482896782362514977887845531077967174788147071053402185189717589102966868684115809508385554631003926819051993740042570702881558960970867381839514646390755148536896303520076829217222375508159615161529651462585427733406655836679067058611635938404554466197996428579738261440564623855249828400023444534083136074808550558072674453146094841128863395737884489991080065383551590583278431464843070697395224443186908562019144622339179035191368453071059407638742413827360052301557040530006422922964223758094957231859796887533402547360213234106487792312124414546055180292266131945189984475652272191062734153943480615304831082613603627959577048099126612299103164394156994650189391430274070199049462818990970934827231579657662923810572027818677569030916895992480891047279485052792999049640473044831160335307307842208729621210475837513570906490874046360178804690601736600494436982548094126087740826043053231832876168760768013389494591837181859647680374413729636400607595140569196135379556265907103386259370193059485740539871180821762928809810466557537051961320898707612210067010935864498530269086728518618015542696399222551958879603125323322097539733590869360496684842658978677479615249971543281385419640307527858370832474897634060771726613611191554984322100720034477690722495281251637482137520730485092505730662157078099452162077755760682585836184704057018219740633246493482673256146026754267261735818397915099813014053167083457331954003168832466852527831927969460512019704329795814204714020814692549339670903884699680371128009787540847822238271947602586898013755671085310416698495721166936134559207938184941387672555515073274059032015915301572156881016513691743133983266069730307381969612853873860066072185011590942236611537913549464891851426717841383470691551029523353508720734521028887074974991040323565229991133706604425532704268995277224619196826638614007681225793999440761471957102029087050660958367224490906832523266843056392447596394411196589786331849590216148316067542009134682416924609687872521473309168510678835796958776213176993899344318102806582602284932063642717460003620027102089387939433209050602946572297838661205148140530318514285636066384202042919624089872945101036075616609139817496202907252993085399171147559035547029932965653253512267162956563521802149751505442885055992394491285298527661892046405093059366670014966690378802145255505096993423773735563055820286994430617231600949541973141280991165830409736197283950704033123239016150740290209249074350633283954472610246393887004033101514002738424726005404614587703993498748999505794598785414892756461407309834536559940295569974756530285685041335347578520351405274097169243838605581380329998155171547652697552745011645791099695802167730796084397773272220112261254508163836230886068694967540282211951212115278791810111093966976974511039868750228638210651631002554156053280791711200930078387413002218553453511575204216612757841899731957347843315005062271124640868188073210203781971085595588509174983931892215567623545708427048554448462289078613660483031150489989273996785765310808351589554781577864211136174512700875216849227188798369001510794902038317400987636497733666852828989716466192721453579231819148681775577445549059800907719153292718111146399671885865793563559889063243638990032579991949286295769153485254873546278964709512118385479131010558311360186686665095677446586550767090128664479455951135909909479592774829128220450080096288308063697802364721853599103422408273821442208363572221837430542861892813832859674854393562927989287601577916319291378796369610359549725549051075828112872970222743389454020178029088871091892946736502437079702679435084640308771685625907455218401768194148865380630894658561251530089177131749690261821093778787071137878871106147475175251734886485537865059454673476516279552714337835469909727320227472807151933446374614891044875059789503156638083495673058474103151794225236430281638802906590133745712484023786505151595836953905387311597248018859060441720363832959028642697548710398238811401688213097762677874440967167259297169516728850873402479457272125107951102629493861885894401289595818226254100178244401430560825887507229053534270108388723674287725245623089116617843828622454185611298018069578969172663559031108172413681481050031127019494318028308935796970169648369312043493819976263125414276674370616263652045740992983238793395388273038183253724552885060467867693536107509831571590578457300908102900224894656309164977228845880157550247583892592403381262390399699997012085069100887787189980708885727945447549880157664303533851642996280500944265463513544842339830842424039908310437089205255061079600805963914807705377674439589035797721327571082621117993233239220042782703276795918735706490656575690773578499066334786357702647182362612295972362705968179652898566931256865319473328554965023990786811359838123969069102307136954607339882585664663670718931535794799976958736538531903040254200191258460803393961939489569941517081871013038514986151085454930630303101112249258202031680639263105127158410395927130784538304507384269176950945315189048008994372794284182895890282575453514135680980525581245484569445993730347345678614812222347694039882346537649311599770609940185279573687550138676258204674582618800001154447276894943046907902728344035925288346296923019645858008983391958051738471174609456225490393469808243277354368437904823155676798296412739174260524772941403194921292164178544731236829649570010023358024729988860636923588828868784909298017592941221053949685720432767457138111192975859988923871259621165146405781837782964732813453499388665677370431880584973825317747349909730740068161683685895589086866264112467576185048992364057388328035125577082752605038143270673085501867218471735631133193337043102232815924951445726008265281643097345923450187603354636327824207490400607007410538434120188542254739176238459590113323639179888940002932316629976072863068720789445404099340013056381786660921360993233265665026022452562140271210141088130101448935394884563447796112951944689731758235863559718251819417827295763734839283892869093787178690773871461593100636908119016592119485540812315912631489526536316622552842534865736875357954351696761860865251898695897792088747546055880475094342160567848784061804630229538624320283637729970320376998303393355993097371933528106016939614966531357735713799249913503129417137554482235739381438889867344348377238750190087272607059652274503206037923831946630160669942410609261783766718452861365156628269077585010705235361708640786397476836946117757064640887954470360660004166362658688706266928427291909928783934779872544117194249224065501268160529176434383494118658179082860514332009730789008207294107517229026788687616272151606026716151390399752775633746492393090689137388727793878235090681199659756102347295561076398245474462347891758794154529474947330490898854755100487608019686430505053312835238524153197297933823590971615457555424932395097309181647737902062301785928848633644657859657052369784220880706912349228419773958879778717899210077075293924915463049309097977487093425272116376918724483118913524194841581496146260370867140212594527636699541517780243012546396073765612669009620949691699230114808245395991679950516454157273370481683088512724277136518773016207109585366118032514598168628949472177851476009731236784447796022502429331884083805417977190702182594909987897595459360462832024069280850729279269627777436253046169802112365940322761946225837264446021030726808119609673852019497277800980760650202069973760838645099039353213083906589600586704180251806426797892625701856646935215142120222836404530001294018729617627501992708778913670629410163605721922260156874694322681013464747377018026260437127357506886496613598010396518775768574840802908781719398708574207191544625988228150996998223134400604430527491809010893671833072284209817417014236867836224400328765581263645882371008864212787943022970583478639120964645260540819636435040031828165067736310168826014286909682634296286352913562554532895985574280603710292902759264835535659819978448109532975699146889977438567350066698844704588269358479729379561866064193864029515158472076712586811509784308910136946400254732724510232260123933194428226602415520201074044793733325763584772863193779982113045032705047307805706335263528645495493583021289246191089835410431919031665218118895015959609743128164544436604978492837704167450214354433594440871332697442061551322347868268784288816344452624847509137121630227302209425070816425217478888133697855246405469616430477596227787620355755569325919652950783705680526123654111840304493654903763049551031941668477110956147499779741696746853679443352178163842800395173501071652834167248543297186360246263465325820078459195819640474569362925489796340720595217555597840468574630306769381345467649115611999177057850613798451294691484655851208221906545081719725864354459188199318592115837721192013320807721675404398275703961385480956988254871771154382598644169962953565257166103542365334699181813878801892591608792842798415602971745456193409438080112999071710475353368217672513923086469684540312138533801810691096504544870796951674255711107626989096894588370853149063465741259484392562636825391970886177024333363971436787101426919693295742498567523157460860960713254538867318751863380905590599058339307317980898249629690660067027238525811356960665941359444985133207219540067683526032100201112539480613394451901261295407374972381012237102452063440442458222723286599464730557743250835067827308576870140350265776524306489321870534564191330510823961795744778716013676130462485555469672752014261012415791278029974395687769765839852642351115949652085530573908331431610840716046693512356203461853600637565771074860486173632208989297673260761457965740289596935903018984076352712760835396206714380719615144082932761704265427832214061629523655921715580000986477033963632746476627629753626244087772019270807365105706122250222988535525733038093592954240527718709955466555430768031788259345890151770572331821672861350981050572709891176501178223869052692312344895989104974121541767876315237705584924272787124866039882017425653706561543749172651613826823256402779803765882647414053037963240730216254577057301416794516456621894805095992601687793343926948909525001343126754841973269322359429404441015015309799427711223273010456195236989765566122826885183608414552844197304216491003770309460565712575206648609561924795639377972981428342720696730816188067315453888164059982771877448916016410244022691127042356442786410280168849171914121432520270480798015606507540873034176878611868531507917549493638463106838002897399567120119628469681340156163151903100412912803850895492472340896345454533126415250785475686772140969464043118324608243941701000615747235716421832889431916982912600673420358115217311050233632680001136065673091804147184211370171039543645433752752588097765877688702585663582640139202741066242357884735276205113529983299730360329923177775595905658885102297438294318881483291323441949121089690896786082542607729709039189818167547538653666552908363803208794015427975562566161207848227234290346403322383544338088231745066123276035684726383394685839668106809628981980689355737902210360666162903049287794764807689005617913499400491787147666219272761846309181351988688322525913517284818808657445214156579628127852165728933205159799852570739744748042404881795077898469857698625083529022877615118319816934340084865561697257974791850505694229648842913658270693597016719691368266683211335405863145842393633629315994892413042682209233576019968763692777236918286578820173801770444573243011800404797570157174878361587008246988302279953071562340776203684276125911349448153599763210960358626596776352120445290365182693102775777486641763168944795896411722038294960326118639033603705699337706512095762383345625507193508064012199098283019718363167457289433111210194198926098805065747436041277558362226146241987218947987166968404525878351031790458809685680315607039961514263684781094494084498870072761064773905925773047128499462421667318931899751621246697692375233873632421935877977408941920812095861752585634334964756909744326946594271116578960058304128354442771384159198222522811977526245255595552128950670568119218965666233039694975108228656503996712566783204604703442839476264063152746829671187179092485754017578122225066744160002543383979870256433410493399721184087599062548371878880013319566982143149537954249045656241596189474952345736539383863323357755948546181824870067611417959547453186744595226449688486075747919677902671232046494004609241969494746343451890251823394830920710676666079652151124846586017040538354271526763120722405349255510324786540400285580593170762877592329447572562725610221523981211115965692881702160975274605486269479868653204617851896031027832782408002450904492160504768417936750247235518084442160640645591590998081033432863054226416259427967287034212118193934811431157242286784962767076774920346306637425121152005234546023511048039102690524390493843387672780900991202204709861062055709590150176960847610043069131604999641985618771578887331513089198298588822646510249117908502638988591566548375468000906841784972316469782713619758942375376241087751369317629544663171368793436745547317454420303144703528239895292278299140325603600974403828212856117154301521730420221436542293437799754821300986594960492430697704529627269920748829684382576782828029999176508341395854052137571125924591051359199517687113695650738676449635527544747353817041526391691955599988411487090970044101284998208430453053832664605519643484548336609302118087167084896581698235454098255110025657784253158673655847132478885936255321115803091715150193594683749932674762588637208426864467552815687071077808621301446059044088134362663566500419482455113558671190828659891515379874347068573455547025495776355911620505486205240899360334529574568262642092567433724447634576922632940429417282927073270315768117404380328736369505107223779745616857561029781912342660142132545568061821831856789840225101167781929172456119690067383325596581064047831488079587357347680338700392806413678354922724662551612773566298779732010791402296724773622503633989697365228909357912839385612929641314751263327762375233344797342196738279152371909125562946033941521474499123804072881582034558961409400628655430280259201911746868812761964920411216866422994989603718493180069754748446669327320317128932174368864013225792118632649244260692819590601263366902410520663009835656718748338603103069843344630322623301995412138833917236207827439465746754207973959245640771622720249778755037896901155768822585226538314035530919561182270564594066217775622078990866766696501333288192165753102542316384494666427065395613393553509556360938133695697864257579777825537962189272821138313366771897670455140069533468455375101621602380472062569274152183433761193846317836292672843496239587636917826582993315463784212778298371005046946454494475686901591680368315520560608556634137509858330876471019120967747466470897613982053352704615672343855265573780814767325913547457844678367457364586255744941892489113939718202264385780830769327935500427220879459690703195002370788254267257677315586466891128649760223398967431757025680125707126916500225943098531523054998943561118573954129614655084220132066132821605011279102252209347493105827465723999530285516685599852622836491121917091244657681193098433670872166014600826612219655948913603138491171008589852763496174332068876291581726878367996904036962020932939697109383647558578850555416124654529250211841384551982659044142244483344225862744887621865082982671618465185283308268340755284192921235511143923336990605964436476253177064835692827452270218720724289814768175735833470376132023779610857175740505899304552943211261465287112183637515866771794147849501698306506010356760780716376712345620818473459455792482044167631273965115701431655244688959821824151969563111838993530131311519111538086332812873355632521385775066871200092907285590277285020249536242163621026472435786949517550490520989535928278992403837140842242090689371529192266590117323714550477945440004116540604736702984325196778746136884193472160439502734561174498349552526705555509368978575307742034144586715171020879444258966630178337468680931245116943679138221997426230813362525829814192216227955998900096085254806781156424201982518685211265124476589522997579301661073797861751255896158072882118262712444269491044659784782161490751209499473378634748096915303860155997158794741400106873645410109856620288976429815202666126546098574584053417666799116012059117517677986330932719085418829982873471846627546238542889891294338533864697564479613910388391161190054060177197156056143421511905027854242186356643952950918464581941525545089550491462771252730845179749923304621960061568033115605118749707110472662524253250585333482873483247652671557961242159320382331199376243923519188322757013495355365451823043047040967355453894170532300113423372835712093049449132664611974887468124948746651635606055090773271772607742989097945007690331538809777515004415614294579799003065818378795892282359921616311264081887897780140075148751193338438385035714984751975492745025105581184544232494945257701287775879927471634064448592655155086115150194497620055056167201672707586859661537203028260512536879908608180790237911023521365269685734961256445716849677670689571001282788438482697430087944151258094660356934000800996230285740329772242273921391684504644369587553951981993881370017236588860376028249883252623845453414013229733445339822650052108849058286454512226315807776919664281156381087892622746112906432230082660157148540177739558232362591060197276964381656783782280517540989228850370331111724177403372405203498273067312686950879070231953121643675018535520159466622746811217318654916966558863059090386454718420211024434718530998532258257840477044323454253237795835670565701666117732508584921816167040281854508326404946167692110030264047247339539710779965045244345314952331358015788267072270045078915513508602294248853558055867454441423384986208213441940230444871783854757707582726264697118085791374476057149664747233661347727414129725169054340447301969610857804098013137994575822454661337963016298171357016250286328759163039084814812825624820902193659881912493374448946452542738225120760952096300589745035975901820497182556412326432877169280983559538217747045074040053740657997746485901864440752394302526405963915138398259776226757313924683992685766518749788073711494765078911046990410159764525710334510825660318519072236017847297345712456002346185407128988544938154786086759368228794580611460797937790563947264059205287860747719172412352386323904023077628014144854242230547629705745598868624916109407151181834011103082414007000778984802764973136713853707126164165082076900751416989589158169206977972075789755144475732939765627041726041112724960699496017505967670478755029349897207783928609749321142149750998451792358610381048319700739652565307321685248533843806776003133111266809373339342045664466520784057789901766343431380214728176732697164831696243221199858783066664362085485221198816691229576796273475505228223085409157388267559843236957071771425425451891642958787598340514417090284193290468012886206002014191019162498572065420338154824091516388474365255181240708827256634017217640717258458458474471301410386128551742791285463857880843064120919145600903648123140570733453572101993939951494468305012133570036534134780139932970439973020975618876014005761186139298785473157184351379021736347196305539189185338079657567440718800050598257360593021759593100678403666931703025213111085518771143510244421917302592485202086064389316912627723212867384267828575391379587392583463075627623173492868018875366808327928446304043147475660519494632274845758290098325213837268624923244720147590006946143499073742010314446814594422312481982517093538172115010029751685478034830087515839187051496968372926143223874992884217258915984100957420889726577431871340826198218619461450961274971125821493682271946260688989869840844193649485165973079121201677397111072442727329938000114631385660450463851121452654869875138574528489288704296112938615630741079541558257406208205082245810498578929758791986367666304074844470748221560911692492922741166196170060201576343467418019054442638523331653811401857335073855590206809821359041481726843550534343943599265831172679095720316517477837321227279992792598933998556566951754456297651334731824905737886578395264797662280164050732375060290566097380853619644630497181586126213836833654785151447464205379015364179099039689889502840931422765971200408251509314070611110908331317777705230173541850568740254127556166383925239269459181438910648147998080076073107678451011045369466330650871879794364980287216689455110673931959639852425106000301649853494429110401721355431567205125135817609533282726899157188235391355495891572330671267019640486382772569617138485739196074426588547036861815533681108301156643726746913025374840758981109994149023550101382107740110407627948855212713469004716436100370450023066642613377404778427110837144106883037737636559960842731775157370499747855582241015915744227448239550751708596124238377480434167351055749424280853046772621279369524703263343267432764756840349783148942406196886326435539280627507916225625249669349757444965821157463606509898167619020762350883904472095146111610028178065193159091198284169529524234034699290962493173864997183027406261680161704869304237161312432143467523858219769931959052088630332429882871054974056675903953278252465493738245627681813415905888905753044866892925229331389152339765688111897511061006350313014943937524811549213723783339787674408711206450247613557944208051094519199494181314702228018842983213165679268586731720306386872372512860724170865027969627677186041382344253390150784472913863001307876596605380347007323370099996847476000484903317727377363285098883989361928381827715816144763884588916040695664221340892651347539908003595143228460658393160112461623068695968101277930069679558155560004865391088331842030900036930112879616043149138259868180841876922759960862912206910644427006636732623375292418424358707691839753522343919913505797399465252775545739082229566140830971137303133379660427557739673135958952578138447527192134330941710303619012261520768866142970311065166558841411217303226712930835155075944290535740401522773944515952939699976900789871992126859732010986772004307106173479487669170140253333502907981483370516128149693596365498830779634180458972173005031144876769022820102978212482655867259947060151648812446951794422454314483932635982403104602976914962349009132944328168997292396610716442117078892314760509815599564058682630422421184162498403551677111108606816233760010640385633331795291597915159764564674837284970876850393388103511465176001120410173258271706297253177553208856196293965447907388155399672171404845692003131090690360325064239814939681726327548576026543164334851505962034863653576917830992596084299205703180498611646582178967129046860942522011311610907366662538623132507174856891401488073908412192281095739753162968729948493089403702458235455932119232874411474759348741236201863991448054818847494750266536757947018258274320459100151559747819283301141670268608512087369722877684881796746759001126837308417771593816083915337892995461445418852346796309338521066313416451964022063357099483503989762139315056142411383470090228377152602191415039184257890372267718930005864861791882903823165265740132137760647845788294884107619102322005470830833650264007179098874324414634623816253063580042798532685269009965761944216826479274225363236977659288216129577583245029172862230130654745048331373232479215895053102364377608749484171741018378809746526573611631577894335975141706099714535846128791546796945970930401184321926721478362330169138569848247390784935665192264058593444417108953185147391623958859600488276608611822693315176614930761200562241655620437788554334705168147867376491864268964521625221618870066209676144616970153401052524095495012973017560237821186351290667819315441470381148569046459486385075020568009984856119664621591297146126706123137784576209990612216970713796676148635064117462996635860618078454152560414576501984713019352518174053614502155316702686676633152135003614380772024476238551778690410875996901009356434720374232124995535765567086340190265863563584414905644710461965363382082190249577412756092289600282184439042353549276519483598825152843203488697384501542365604728554782977925554835606047632536697701582748811518746151499031577534316756895345345741150456894292470113145056442958478898404282490423463087385534569253318842442477068087271755411612074559803777771814252382924151489994209765373676751922509775610946765739795607565386451615218395755102687029191734171263115782831226094369546181107837396517246730507479335337822165381638838051665170693759079306424086728996731406332106527256337711062516940542335074224974818867305347268688823373426107272592814920855883831560645503034936485693773315423607761610273740284476530939276163591275233419907970803168029886256637204862840788315531724451186997356297232522566295972642602267960182775928035430912603063644018803228601845240814471910117700901786555044003267624573492179890165448479750349736536387975651658686910368351466264240798117503047040467047532883803388498399858498405324897269134432250220472647983578185034860287021963421097494011402501601691227110500537431275292804167536050579890381188929350257245365263140996454097755971658939225136655977250734137968065850654480794045185840780823256753238444265652374779447144936926609127859043582678064775396095898450738240714577799954297930988587947844920236428643585340620235766129278628799323280675079024207641453670124061909216999957721603806613469032843297244233113226503308704651598306562937814991406649076044609330474591144636433797207096350293637966931367511006991707435028013718885750713882193954364955004223681406910628635748516421186979757215099550052301144471205891004525682611148874728778645326991646332679661888192450607647759107608647331334364935035218748845314453377570619334913166634010661209169759019042622278294133432456322543838338123391792132274620638304408569747388971187348624786775675288037626795639276644929105348097139714396780842340640913751481427599835496338291701247707126182062631078140907968027353355702310702959521413342336757649649385847974479127096825867692271392331792115934837609902444295369113237657022678603214617620972392681343045726382151338121639165715378074718824693054262899692074159679872498386477149709751111555480863345806709346190701443842469246011277174331974221555422989005711868498077922026091030437874701772757011572073082628441740419126380088562576111590390703486750278966671747343487518043371922332087776903159191007353626124139901458106058962256015332317151956526014522000245852457551309760758629265833510145263145688936858121049032711055599908308765460836682028667946805095473533633572490241587168805673333731194189248425476402312629411941357337771299541185556635084965441800421256627672711878469809273568691431054763878921486222328549829265398591187706019859897526091053224502421965722815443409617160973513371755567637778825606639079403091394978345835622318703354713523990643051248674399030654303507409863740411751515246663506609691725741595847480781279051909825705059781082566786264927142260123668495221247012019781550579325440440529017904710142051550506185536826162908764693867974987933788554926890189235103864057312628419596502920431607472364437879909960984034452967894016518731542830764536113202449922380120327114651714400818406022908729984469802225777857162624863376382107887639080285704407021612521048333916376004495174156143716934642094600824206941428290793094409839583496129995110547978147227931856475701811969199616914595259968992588170244885963399707217283593814069593759745877862462455796938689240676164407227521332799158470543622231321489849841543009510545184232681832806451851767357338680219879995062519172028387685572759756443625397832732459730941609894067189468824587792047797457578438381648730069273129404694935812428520936309936639861657121316741824367517044070712661113411763115819676248939622540234920377571323131315579948055740221370661454130571841233150218104668864992613447614512522773746999795895271845892077843599002690917477236302032775867588557662741098903730471975923844608859105939613434617774158879082856183279222019597849771885960317158909480511197596281427153674660816731119602860425959608917783234307709464534745062020398132142696077759071098011526040665023063792460722125402620418821034711146644935201483775516921135618226256694651699167926257457036585591669981228582404799450054194697485256524088989954584559715584803137075190588097395391769446850605991332476232880634197199013400371343253719009925569341217522604081496988136754374219455150733354438185990355203580396528622919275829783619188126038494321227390460804734023645885019362932337624832201729949778445974102699654466171032761936060229677602878732098735308830941923952512811530784697745853874156767706355659878770956372253922477517856591126503884982192800521767164908930939545305682827630207307214793989746611938262075442297232192299274584435503783116098521622748674052166844697645410511565553584051272771498340708683685491206245955716224453237063490604727426633454468650812077230130850019909997158819587629419937910350816542310970101669281081941903383926954507955235100247042314212949791214220740781959275320634261192848378375771894617149679541724218127077414463719123890544619668540074501318013681528382370122836861904915464298411803681011739285865128549364772142346606311349697010278946257698730992002004535946392544680792346460517094201125962182613971481376934675892733296374508272230789053307546795063131804682149025524800948842908492052873197638502727342952948440756160362615068626861170242074913038442661619848454860188904172426114839169929524181821558758778932606504152441434323537647083955756210999851087601390002387692556000204455326164554669485801589611678273289430473928551840474494360530603699825123929001279168749512401120040451333606850436176732138170087913533555003280029639130316218219699497402831323054393929503073490120056166837625037017395505263442191977841065761184934618253828800527762701259846142985435061276656894612218365380352710267886434710778008330388765455936277783949144592139484960884827281087951579371066119100598345393514617727056982449722297597216916945521521719347876193479618354442889542838880424095694095745444820268888428031644162805995472717781927992466017261991527521686018293224214498165360852339870726252326551477976119893804292692914031625995460796365450004144409509973290683529839418406662764547097827968108787627771347427370831694695183238326286149268153259698284594812530781511490420159059979084322328796210511938558576335237238577197437930547791976926543120206007904842473286283469391445692255674108616477783122226921318308643837409278651324564897544635521733781854464063669055940857062123300062971980944341639381427417614116436642138769850077761868240242834678234422922180164224855737509402367735010372201242813140872121140735335720048252445216170780231295538132070732899986639170214318926578642613042652332977290249622112557912631619823466999859605049837162514939472736446899329045668184467805243827076207547450678848135493850742841389392698698725284035643526735482876383251581204107378878971799437714595947966751462123994969850658497929746638018974426402890543485701422313754491315543928984342129399560666616669753315613270559109654015685255979505160376017343705734702302432447930622650097107397690959326148361524225466464233204801038207059281870065118062547099208287637470083886605910469233928709091620852802670277021754655848123670837473646174463766112060037107725388538354132138236827029535484441864656612662429827125388714608315083348463576287799550750572954743131706411731978333629957394154944835270817757352292860320768263515353532626712000876569435451721503348003453132122500115662358422183887795078399929574499325524323757559736343356832577075909490294809766929628687577705913561426243672819349742038252358373692663719325359798996730343746296327451083744866271316675405116818273399054233010823325855720644936877837070332354032550400197994438894540441190145533167987875690056428193303720418348105237706360534265017805518669118416055496911251001046496852336651602785040484208291687672737705755334118359902161796269015868480189347532149505623495553640537942957280313341838137809128801291555252448235789298392572067552385792598011347097322005574387299586745920641642345192999071433313599444275824782378487370674212453747980872298232975224712389988693449312279275484574123496039886275836160921026832381323594514928411808191723696290701912883934942414395152806068479512790283689504841532815543635648666136245745842620202402180378156498516836981933784959844781184131058946768389674513281964822174775194172422443165308590792794251968168523900168108278586721020834989812881382912218072534927427368899177699602889123087678192371531550902074004756488852189302684790571026892412271370780564730919223771922066544629530076479657018886810923838631264287519170150545606047216210339134014257569314989351307236407486653240053066842121604197643627005887739613631272075977732448771530338196678894704542006226903737348231076810985377933029796984304495310819171302059482397560505530595917353352880084809810913512754049018677891120865686972143763070160984173722854462175778121961274877746268438427855879646632908180586996660881785483789136910018635413785136872691161988900571395710243503778230910523494362012251687596591576382743585691600391601270326958657403824109222471921644708528816720645557794168331046091454377427843048686599831014929802074995135242766609937800467321992346535864608061026985104134324811283375080734462000971981971739233797424345359113300831266886152683779925677806759667440480015830723696803075235071896290349488545371779805053662648402298161714840621419995532158043346711114305604839755446224581714504293347699486620477395833918604917575343110975045425274845783597919382111189079813399799838469904871518906233928364082874822388209046183603149189842279332077773269397457737896063129191502597322619357515009663843388415758997123379428838004579476069695942013340839744335251999560333406173044382690219051430567388651806597486281408465215904850753229469036688603261588831248259837121608675398577444683260229720812051672385367161444559011306273166870206910049048148365068553513767956975827041633978520620256661656774448170457393877233126776550132502504665749141221627132306987370071193558126221840034610702438961755191872868010809018162826153689246873008791002518037418564843663375583760203792318792907634912547575093684545343010416905483208137265667261574821129739387402402735511721229007988008825232524339088694445632325088254373325159198874026090530366601061733578428736851999480420609550158133829612835252186802479777772214635567097310794140545814283412230784711599685277057165807798197104259821458877828544359017948446830057677559769627772439691727979867360783265277695480047285426401708720222261756481720855051642737458066127432180191257984805795209670006732104569705118165888699264232586109774987455749204047563760520850814984763191090655402145891576671671681964096830321488785548174616914540936407704876073854197987778868473886699986880821817965606928157327008444254340912905198972873895959902044516683416227136419142343367777548449363661400571943156146827623473785583629229285863192235254595856701373059079201933192058129450698872480447454509798254751001870631932228106472966531112140151157035620296219493789048005439707825398143532808833133639740355415596346339062343048737267045200908867938105454274485091685405740185933467939277201339621519863870318849726960543174382491164782283129237894178366659489160002077559935004116146566785641960165608339044627551067375552901310148983056864618470526176683814848441199569445409259324645092287088089930271016858824371003416328176654691977909459756187895789810859150190140794269168623394910764791552493612913392715048569941706464888312791913574580405575293654897816504220406742619454633546030900345372010547613387232538837853210771580364458304520724088436822008255473259194987880022035174821040483595907633674228308640007399149194179437823125646881541180509394730697640036290768343206448700041578216418440958398343262635277492977931707084854579633697329034318802500658998081526621442325546035621837235565015360511807169098021796715570561665447941334062790300628925005014600225778156576529044492203721017214923547058974036000312168993583704228500686435249532249260106654487771679356374736162895550013924513919009285119672803931134117163659741631174926616504684657350094263423243452561775048860238214459493364020074618908781510958913136224278330978788310797615355159664118074001637044704487628547263717234447810361406769912986309349966053533779470799828743014547616388230117018103176602160215475184300839118636849798402209075625459463474861278599932008921640765026085872794909830385284369158757134737956215236731907376305169332590335671308011818330483121475140079354273922685265537185667090179324058606121237843182493506855192304021063287421290783163654115125506396824352133362941394253294576817226296528612983246269115246321586878898199260790351276642985510645705812031314418827121957678759044170801710014017447100814727601637135130985909858500368065096451425054748304703284494570132828238650431381631635644357199888747864857078397005326336585436888145009104053215005654003431513072037356528062771635566917481338941177331304786860351216815021199204106691671187183605689268941346288061475730552771250095687724024523959586561757403249518944472033068047932915917236330917584782048574251225861591682671161291345343619708779154710503143815744769110083765194586394898863010693629836452050539971612115994099737960975590714007227701222759043543172094089266259715100012566504679208294707532320611152081616632007606054978555667084759461493085112185280539535381270685488797125334308524733072690356762198502517349262730402790274887872352766225755269280002740035960111161413051125907052153533956990920463852863784608815524993006638095488003485995871770198608174534620299220107989960546730441991702195401318594431022535181346319523188124065142655465248125121005458075973033964436353092137924937555515395935268418895934195576396080027259810724873933593212656408396356663294280886051271952118436509222668820964854658320817824590479299916201328108635115165183297640886604833419541693386550989612718171893697063716923053076150040157378032032394711454162599709140800581703199530055772964092627689323033350311539642177135738106906395872913712921957293983350381015836289997349287694961975597546737845043731881023394997291206540946705851100304050952285649313961938890493349688999903635333887568444090064686289260417428154533385245451035382988752639220153279322075686818665570642256197597350187522495555332036739833122054192437209342219446983883763191878862046037641806629932406931579345293524643425528768745595847011414580697979996866266217052452732438167887673603705286204760398761500345150379730179863104839051868033605877707063301933156237022670192410816124361839108736255659754881197388113265747305212856309136421091337224507521288959093433696085262074105168600452440338926122667780691787584642998815545144352803952730277555830583053390636045659201500042304684060760422984006734761107263545213737845615381675694775840813844269811052195151307464912328179670290748014318874454736327433743342135994115522280465200282785496426943387561309917469846394771399560723405382841376152284214726211105118945688281132378733546842236644762961229354421593179747288814867010930440310563946389110161777959270502210477785062334152654566618374698688724609959371604862674872479236495405294662852612643204627421651406633523903919324108407403842787333104918937615069373057044241103409669089462159997942102571301739102475834905598815844323106506030836485145406195919092570534859855590239249658726714929323690865804007357543791313471451407538518659313568569037386668767977714650864959071850501363777397690904813917453049739002020364625450659561306364701902471352499731468428300756663223006402204495574681279474522059812975621911663373793357017687524989583203617253763643113485324649952688609830327096407659674373919997872251284444715372918943378261283480050203731308688069985251122969221971484958409701370052095959690788323024639474181885254994828286829656181208939213702870044687962698086330084628772292477113010171541343275777332219370216271088259968475553361467875184238902925681132389564046323698795809886240008394592093459327431379791029271891188728116961434339445520896887018815665746242688527055246426387553288791364051442588712203221533293609914198631373166533335687551151193085393967912421522117987400479561933958212644286981183548700842237523481576846838024056344323277197407024349396240505381030681026302493627438844090329433797915024951026953818843029534474126154945334439125457303082625861607235173571625868845810201791154750785610765025045364819563015599754109771791696679643945028974310482089218242497901998177486334982224455744711264188469359726922053142073171359206797726807991873195910530448189280359306405645254782465536985318908487118543227640153949180360508591260540142797136586150763324590706547246833011587654659052656167632478135946070385374593245545219957141295136272141656539153593064807499435224383874507976392354171622319924877135029695104963689709738957944708326469908033083664009214194470269478101922842020348843213906512141038955621286958009965689297276269440843841330850872160250823200400995623953959382851663343650701495077899119698997023787132617010384659988100129235368244281584646183311636114422533104874250719019508152229276444379337693755090655042378130242339358682598700747834475813874703279644372675584772070527393486540580136202171050486220787410820991495860039115933851715514333241484924111634458862389555865729602625354629026768067763401892021271550758535324306193644898753225853474003410012467399881318859606341399934415977948504700284724649280783882604160082698322494681146511530351645395398186939141507660660329361197783724002173207912188109790701192333357797273117478154455281026085310178602489565081627458885432585239725829561270038798148213333499335842451752370089985122675527410888925841028590818080345684264384302518648443943164724927947988456601862541728314654448275730352150713116710113853035120893315235015605214499081484898001817916806331826670040824128465181873026730538106163150184834893830618216216161818796891868094838128085219600176291253694728796146257412847484900579197679355213813248599896602198344981750180503525826520157963273256955862304604100129252959835127238466481634352448281513237453353673375726768944369111076261828823348680806792787669414174327340544854175456656205755210747405985017643363298179976042025811883425431394901865858805549711300391528790338810074431315142542160640090565442714300271025105950991987015601727993393952946490305391310110393984488762545814535100465235039046463981994091564961372601631108842934678563294003935218504594313491614287287116145915281402280152844886385078183384603726279573606920132431686652675854235067672418047303092920359388554091101387352060195069650013725057944607380192905162694404952606260499641474990339145211385816374323312949100573170615708928909452622201561441132461173516895500467348560578552689082966926104074354512071537128644862943388459071098684822860720429274030028597675963470312160676312175468691305986328626933899465568878277290649260428263265488952596667642423125270225080122573745990433601949067439903619603079127391708031710274920169532278106417253940532312918613932339039184465787273533711788688528594673589659832911901919045267670594524728393467886519584914364537855741194077055484001412068775952327333546390294364437896402780287002896016045119638086546171167272209495539872044821221264997461577674934049207299030411942029437058187776645594089209779711841263146743699967671874502757664223160599505078651927990728810999264827092346322103504001328717505886493000131842639848422202943004098440859091385278508479948333826845959132593053493748103215522873414095899228623497774912609811185836038226312024510413641625551314187124338144098431005545809100284050427334675167625748384561069194908372406963416476108023435199507158877436544161191371461347565766327595434979654522728018494119854682230988748240806153254126198706327335205222311128312416068639939225033744420435550356982096685649967359586950871400043073780294952046497362515756358784083517414240161325526129648455207538253514616243391593893429039698986864856743936199904529026989854555502689295587235345255635663798795717182042658486907206202363635844150419166940762734629666676481607758370336335166314289495856632734638302586967994036439788800613179450258508591648854033474891306777792840468672275599914365262561883989270110522094970469602416041606717904225154470524195783979922385770708152320249370027774590354319942473614629817438340089642388140483864815693993368600833993309714993193751505918100537844161712157783581158474201650405210526035320551624336880335816757223159814591280972677041366463931233554372531423988935442945855441227815915341263957725980934325513870143751496762756670112422245166627190654373848226268124847781305167952681200644618799722017308289467838667692800186461865195252673951226105760714546305948617388942952227600449202368385300805587535737483296947148017525105009245165410115643199658632685033017820807971929667595305834097673691319514484496387379403606282764649190023212953258532814760105650675081031182450900362327183301193246875092455255843645861600555422196158508544806400544721182896022583606175587659608066363724380867426542492085283911598761952326840250148073464341643296201229796020335656659445074226196253815517452731036892741417094368544361834050808933001614764362025015702899675608501578836123722111497524824272466937582736475177470738617087670452792693076487139787931291639116582347348596585332810237598461034458269863409993506844291015852609417439709305803720414958786735077995850971647025154276247337080492481088579515735274538655128078426787720976660480222812456318424383692196342681673659994577787157087025496763612791507029929705463725322892865440175289043016351516587793196670707850721959531558131241230438484670854614295899601403526592993599046263026410163894460722279978012817904158284484308214153590844404297153712970653291855514200918967384035039213131864532421976687914696916114478252095687029391964469342081902595738286861016030156978296541101493302090622017226352581208005648166296381287068430549633680237411834794577143692804550554732024862097267301137987693888117023618353929519345547763816866364136274929600396201065231747061897280034573338009964639638053759082145621829436854054537988442545606275318062115800927893552350043939773482927813476529948828628675387130714898809213716412727686368786453986604936126712490709104845675951487152475091835951240940813965703595030140940167715158339872274214786615369889263413875680729264321050647054808158286530319511871322049057388738630077314375522741012376134677419370438280182559230885394918447477130224959438289681260962388344212280151588136382059835228336691666400904398157262553740497372006505193532640233896703277416969635536723084276290436309780922406639714507544063462159373837841939274887726784724720754334808284863968964274075651355421203923744871689167362219067581366486703290791345550994587428283238038430772553495153761908150773341950688289320541769237192930467086939378515903222922094753367708956657726157028107932732620985050385188746059666424599494289409329504146075472889683907269625536887969914361253474582931205799084625598754883841400822418427331603005108331471315854217111610291811726321754988221173677695611166484569154006287995397435995750781399773659542238334981100824877548579785024972131234978961629436778246818739066322947571180323172615908397564102816297832679354383541536201759465677727462940024453102926206560425304161746371624075147571598136581491392434398091527318532741589498919674288023397067333663011936821842457092873412993961011042053575689847514465599236140109906991966120631831170823307194392303054406726160135197034437909433289381480629518951103838860482459336774772441817269879083242761435416745839275317039462747955698457818578470319037552486690453208086785413755677471413523418296912190361820469577495369211126629036640596043391675782144786403563227520824371488112197533452503133601822429852922671656381592660156391928396781923960821891030951622320996850294039415441085558226750366897238219315505660855527851067908361636304080827682095113934146235022197243745612783725623047685722378797812321792734398518145174108365563377560208785266005425024363774119744433343432363629418530716614381215112160455525937087762903077436196848116212411055626226757843658681278785764211089371995340802613813366173173767211409300275720178639908334542168222136153833125271917048519762903224019426137240101402876286404106456870644558603263565467121153610166390152349023493498344051707588638250381042371874353932074439990697209068895051034596891172725695885778693367286901202802008679936419922477286590354001727698704812978251899425528609269188447380576514487175116681494935829969795938131036866934302837312756245426754919312190803850948137451618069003377177656172809652234020216252325669388468269661498209425543157491234688543483323068024048233608689293842849536543362962942817996623884902129269263696447907378270877077448616863734763875888721419276433133019040283373699318548153241847497612108629246088879239943615237420350376453157950896099046564686875718058167262969560699778466631674326564849019175035998330605002334448837628694705060221420776483658628763114877656874516488555998037936558542263675721640801511630970465225974732634070555707257310711196286584717047584748813503459364235169596633931327461618458669310576467540157729065313889742551229273570948514172967091161865180113093795581344322283832748814416238768289554111635769676883220032099654819130720213529262114647072957433099499534481063894352142050202999543167205938007794776079314435918898918189531073232246725674111982119914597248580509231707661762811330032151349313021516972317951715922720770317550746595588344074040608528588500949628203076695374698084251724239986922138993609182662401012347205595868730684390032231665892154566800921209825923865183807583884436569253845331737897298229823394813384569002933900769619168053252962670678489541589123819291121846546719092667452263364140295853025797788755177886581457817620220076012423889245582384905953018179966392970271080155808460653288162870393004228463878736735230245588689768619102304260534463366740700988552697724153790433383280610948428384595974527391038323659295016702028822859918652747133752556732990170812030630432701495679124490287156909705833815513369389268159336143235537726710782956641022040927608672325350379145276085833537184512874699456534526045052364996890733583515576419946852031439277704783132319760303057803492793226695560647335563100951842477794135628825791693056329811963075085632084408940631616046238718104537561327957112476524726515152320150451719395651362289400244419351537674164968267279579191404667121594240750235376008722239162928437295191536527670036522236614188462941747174196557738931054015404609183003200122428032788526843352273143396731159379511551242702621884485492506854034923149961507187445982810775087129477533164640279695876375950643591698435858895609297691946473515192974152600683390133017854552268242233638519665613314868190829725302873695678895993115404870549294848421801083570133989666152075346794771236043699554725316226097033699605458209355776889644453143713157340506294800503653245078085514565737137418361696641067043371744581077623943754692550549102349414132922801864587209176237834009638590044735000287298105733677600613077549927196008220635607757724072998716938679312714397056508075896392615901360500166677010035968959570043066751049818477677731038254265759832211294418109008477283047144850030921825131761213192790059812986252769017428369208577955129538647143164299404543250758273087133369602125030180195942586311559287942742596801212878430311383339322108092028272281741175148528014561142033175806612023972938134158791089688113782025157345483501631130280120750047939486056882842220054548184572685746320057945099837602805632249670941097387667398832979703963228912087165295904566806640451469589794019936829160437029275238171219753695510206273077041706228618372478749831234778817555896484038183243769423003924452081640020111871377542491469080150894281798872458853645172819986350078739135874883938549586768337027498885313118331251622641935772869535185145057796432116379012975288412368539639129779117730764545140340323055031797816643870204481483941780684349222947819757090024676313990659318582354134712831317662148188375113077381995283008114508447530597121570620383526223209124253078911537670457678790671017988696749916111855749905475717103561264963424228437811115026596562034414475064937345968861897892189367387395355141067081832480092783040837111995112826997623395189015901683696000627344857178984456455675676185140415291222815423468439931645025067629027477932374863953024399443780237886136513788905154317670174971436292003815289172364125276729110604492063328962180811891547575081234277027228043046050425493720671208604209929383212888472964640640223971964530962251589231368270760305463838265949353660446756604350745006343743231318516713836033768370183552118228656620416534177608456058522511910996263517170632593602504845093147885792438322109471662484786325117801188348090560004823408587035743579391036432986760809610879877967888683010351466830099619137406977616696268407888010300893989015950085660792804824729490604067641269917425386713136157474710032702782406289811618145938384740034697149141581001949984421335766134246635872816089904027289239041457851684203374133116215156056806778979692513075390352823288378675766194966362175183131460449045263148329056206653707557779225426000174645782667039639448958320416426117792294262432005394292291919375032496069842811969158469117104366735268224090691803222278988018971559617989771525289090820006362008272866067899746580415812334677661538725528319451155281274568637330438872162801460324423042066010349570143337282297689348746447289387841770973218204543701146645373547406431755464286615839012821974592469653971494259676808275980489411390091897206996664004007614182646555344820594025263417460632977158850725612724088608589959213301096078464416447767969857013874304908651229783143272168892864380775614740284813625951196772499613440031730498460814713987111892973523158827144099285824532777720117056317947186900191508654920004674162912550727120432459701280771138478123800508243487353459638881531756052054954472144754681944705942306041381061036812833450662912566191039217681838771261595502404292252381548564648091599819188960340017436483056782625335890898106504727515807726705624780429712542200801868218402635179479189027712207869271744150721416442478150319785263695892519644442019442963386894729661874204409543010707917258182789370570129420678264002825163285951592845121187346543373028955127939756872269801975869012685500982657275729456269487576346736823961752756521860271530996679068183189307722543149266759324763678552451034280604076089407973452063876246409389952960568739079541135829581202078712621214219400889961600620959518152843094588421664858615099956283393225499646994688750950987736192777173128892631988233112461322170196743354183703134849987187490342719029558036622092117759272325647251909388951465252309013388253894028546365770197553791614558743411119823979858295991259275556777841748031452664935020277136886373765379759118560858743248152739198622321699606238348348723299391673616486830783294608847509837794972668664643219283252992223926694685300676803776177655115788924251631466090285156692533853166644173085065734695967138168819099473775478399416937892827114128860023363964423086930881946582242962434527915278056947146129687327573698381013119357842797541000870335525192466053765784607997446658538659623098403981119679856495223950323520106387271478487458069142679232103912934069416730870979872633232628725340101905447703572928918355066222597400582538247385059046731730580335176209846408984937054704118100382312033505939738758336358978427977546429318605540319817990867726546051484732815786934432777799550101757863440314352040777594080766959778049707579849668663237138594558970901361063932389667054934923515443221563574808525865846778466562884144204517952679152371524473595688682135642960135412390880338144650877711537090620268804770833937149611027761079721139325598021127211138347965507778931551165981416896253685888378005379119256804536472344633391369580985927242937236019688642389243969845106268078984399729796819523731834652383904159273016024660058000800420401185789702734158842477179156924089201566099355166474939445968239164673081446163082002497592568541647227736959202686451626524033473135577008905898477107768768745267912475868681300854955071354400276579910184086345855317605731892624995157427485456268325573066657038763194229743131193055465025942750751091482360597317834232168057062192902630344895985940766667567488504123466198613380374636913853811168165275186026261789036474969555131712373093066340956031046821476571526529859410144778065241434322847616729912056883976078715390583565785345137908262233333441279045646471502335505471540760318664685837648847956490104229003866047652712418232690064626314388808472355983164269402345937595147187215411908035208290161226242566219485385888292925574306142590148954779570107819453302024622842733121965247064759821516643778972529743996926321383091300990214396617623624359375067647066910110148271565916556614646879204005623676709077841725326758594854980540135993949826632073898263287007560006605751174909127683220128454445337637467624487426297025045191860252049715899925407642847937516046954156814731882727370793648218433993721196584253811116580432863883028928087543956732093266008132641778995950945429456666893564464444451576298526528063451331046049695553433133083762184226351974107117141732487563146176868288428465915096353219110714411528609732328191721918782261632887491584741144729586407870161857739389543686560596922711148269948386031228639213500244712682774296231376881987327506700515818687437190121067677372428868105933309892915389774844846301137596163436725580845155184918254286247591946680876552328986982358611026170996530866846466650405915670482259985073121289384320665879440315268109801443859770531950011047064091816625988795491307780882261375962816883190479650579755705359127686456943343038355779144462797964506056029371426545319221745711604984260361381835711263689256531610993368163425313981607189968683115200524063494816594273300737060669430247846274882908839990201516133750538721574451306660481987156915727143742685352088637976770877362128872641037570446870813641571994145151176523518782492735793437463585361758006151513970906391726123915441693184726670685207750121609512350832180964872043260214172914528350468591870425600137363638140060771271823004623801633849475025282181063374160009224728187140624027722140634852228327382358371412601165699108187680607827659697051372361339272936976083206298918958270412128643351805008090926019137706408445774643312753836808125030636043755009794812318873226777158214828049107467469348545490922563906745731185467620441768405208000812366903805176043671056727434843612863998738099429767118890179992116544316744132324525120552300898862323851286521064473221702277186518858580628948351209353302373302982759095578533177331438609404681793263956286605430549893924470522155041418305969400111516932442504030499137199707508351232435412749942901339602397861777123891613106433871430063632169129014082642609337166991441370918601035108797661158988907885816301781762401927321823908909138383453761058431259812550857087716376126828709616292048746970548826282695767060833121674144110921538962849524466160386089309191434654489197339994430336789404087352498745168919091303736724894905793024423822575958270311685724744838831678978348796596537089860128355696150672124689377130137378536740652783937490533500456677323872512092447887706768772268253311081208662939299205152145992654820275877013826177698514002373881931319468868829545395272825362033576191152734404816968392473983332197934468506730804310925903877446237276247568330695431228429677971057860869424852340813456483079472320391223765728677106601508748493071139678532372119888315094994045893798422688827450622919157995046647739021486795568600281413457534893934362584966701457039878366266325203604523962377287891751441079064447236663387032688037710644588671814065324840331606632197681521195939357367602269972474587498402215386142225234952526935175429594735390276599473853179530451374036996736993405176731986604676133485309126665482608841914383498991028410108098953135675303709266453934711794925855666719910786262673048313765132547615907380419835405452040335034511313692133450320088541230094116762067474343786316172050000787759221456212373708440896613632900293015299939568498491203691025511572107286315913794682006939306592958017828250132759397622374180639767852862757844035542344013415502848821288778460999767093051931652279396494126398866404707461371483109554974340131117340629947044649342000126661503049730635567805701099116639142248663310551654899023756588194574136932008180544755122145652849535342804924248300020128377446097063160423117287685803161692712704910196259202580348226895926203763735327827157330525241371974346741509251926186306028794192503627444190639463415705091946187603556574678055482594584703206107072654647207107244458910989394252080076628390383902199187311814574550637179829385852681905513902450358978685088475838783525017473598134585625246171930966239014556983170725708482756335372271553405608633362025543096110725959365578222755426010893448156625351289695116888843091501892297821548692695740109287598923290222066403654906959491777138077377743870941424645502725225103179131626404967214535299421063819467731005057548441794985684131813812981436457737992788412859405239952358514095178359072101699812830304393484995675935403158667432206543870840916492748783110227356539567201149187918143083371529889298341927775616481706574224441389121230103563367326141105227893704122475152486920750458449339199230936128080038929697031677403985412554028817503871223561346295952906342355389009908533583665891244602820707162491241553388589869087289602635389824460614678864245291218865329067210600230258900381135744219305755588105175760573952082079086098861019557562122149906286350390441485686994246995330239798038667139928159665907219631977299104456696891586829161986431081583471520843069042789522962542534279800383381683862098787270653687541223734462882219890929336501787209766015927517665033826009164511973344038963014775594262587060417943554275122417851064705479000226920243017582190221070332420769758900987776419396553340062824660654674813846314454266240644256051214068930393758242417497841401627422248212853550840346829569378796933093123254057664629400821463687925193952941152432389897669234607992770677380526058609951426349322933818206928596835174576852790693598361471397140885876215847880204288579244691504562349008794874674126619713627977031928346126199747672413866330993635070373312298142152166624156417642397290439099409854314796650004016110714017749948094315546098270729946296360984156584630609825479163743714660128980585736863323591216862448388954163062787657547779195952433775968236024619597360557171041481290246896503428900515982052610213445086958309809170948080727761206568704974556155987526423721621500718141701809321338693808071837110768523497378641391229310540232766091673690450051119201134038153660104023840596517441617523763907231972976186296972722613717244004947432076438521651830655879795844673479703346544525324562945945391260666432888134014167516974410981115370721321709028686588752626932242223910154935288900852997892078955925229885032034270474988000074114263577589346776445670186240606186531254948324967759383088430017004977590500414607821263941036297115507397148364032365207516392449141961477252087767942437105264138044266338361911260035456624838783498888689596861485592648879539266407137214145014899310515398847959744014483494465422664075267694415779726167590715373901813191916109497073755232062638463555127843131739681504726222897294861791212671571314074170969906302671679464666276974736416596490806736882911732600638016731709688317791729180549308279114524812443171272656215974154417259420398639579863515627705631990245776895371883453375711187582398756780667913258432045651649696917665401161602839904907942969612399412455679995848039250548975379854108966302837704607060147564798903174355572310032792547939882498942501951273179682954361835197619486915479423467862420422085624437851095663161347587586901303976460878963303238005311814481103526883691686740334452897627029248508565514225475672663257840963676526310218710830265157996637928086995437833421425560695297670950986211959766852606974452849366370470365279649230037918788998650675518403222279236026310259522943254720596019124719551386230189738468480338925046874400460752534297713339132922266678633604019308827478710802669630161799692602189435721180683315780015501507462180042263513348007146206532504996260252149445188583544704865453813988193232338434399484623413592742346802600495078750448882705618287815297801563119616736530259404368287477894250482778136805959222192675684142551540016628138426089299127541817626228515578422150463678755945599760715234544259641694006105927204134859028110863671819834508453427169387069173419405130476088497329563533860399908154044288657739361972592656499146414909085232796561726903428239642339006733397404361603243446375015624556516341016790621352125776897928978828194681877843656253059200061988857611025979738055483590787405577588014416648353628940522226338803518171299618456988529921292069205463937498798071876743987431565006079581646001675276540767611645873099976386809389766675698868067597035371131783223872525050875121248781049495778135518865035895246460964568457765054408212571047793126431011214704198446144343498321452002295724641136402061384257114470459596075166909511549662057165813652577038554887679765810622143827356637862984180876457734040512655150042145064718301304239531144237883133362997444146849282282178709915732144255995808958619526253663299109051961136440126060594321587915313638104709814412976485991215705303592558340419305413573856854768005622030968811378521458708732921117293514918165721729025782185135408614688724076155429850831554618867996488479604337826650600151903187971726551029003228810175744255363634102189641136716457794539145933515631005442796912695096611376034107790001932254773263440325353111670801837720720621942569757292749594096721783484306247313795628715560497780434445765499651163780278356758480884976928941592394802940373868070848629539949532658456657521594200372967174014013188010190051202837977865059740414297953337431600246112979563655037706027502057766491202795160357910523324610164408730642855527733066518874304823635854733018573466035387538911864784065652882124113432584151845322497119364468069258402577388574806221234499033211895919362557739067544489789282620294474325542515190059954436083791494962956482250818955202477921663356190849862208891541751694124004578660726104406369301727044543692411385141249317234849194638222794050494204059193946419590372804409394805809231060065762519230944515645526516665167757260989488855183621444032934252794044633504114320475715115803477413146593958412099276763624019087233152351682698568970429376800408151470436199238479906501429112536475678889780012763883928329966998335803719518798629883318313486107094112197746526544889252808177817874658073165483620149075655165831646446022714906826185871583324105872402998692650904412280748592913242821970240803230042649248723601106283245722294473719578198133172576842831758994311673662560625615342047656652907619778889452846660533222516668457854451340952672652218257977423044529546745711403594400853838421358950916273015097979405146384646273751129858748411663821887725571298342714338249909195458524453722679888326515528578313441115063803574824211533794967686966219775168252255036330660061328421672222034670395894118450804246422042763565063684036434306360459221714227011402623171217062326178663148805421411916022817482092345852101937797762466473659145946716432503860841422266441906059465501369332998727504377110923843461056721588329611187330864495308941053635400681652536597318509621925965008876974307641073275864704866842059932574796177844352341811246649465639019436086906033544102994184988156884504550815954578984239627100795363477657554381343497718912827921216886961933317549268306923680191665801640262451481381027134074193538226367419844298601796212925606161412751583062147848713003230051714803445948057688320873782216963731920020626431850396343522948180516570386953240436238940162710122895240286795906456091171353822119226723562932142547651636946300679610546633872256304568218078718139831276919952681776168366914430127574898033628427491876714993152962303182791883240855721075161876904222809204106893061519994543728250505977302487934907136833396833257621270549369104049558667136619804585300355701224071761493044616743747578539215162777765927003219509205862997655761607224962812484946162697265896397452097782938997425897535790117283460142575645780544208788956023622903844047714339928442456888899044624245130228296308498231921112504357521678161490071869820161993376613957763972964972847013586608410426188463265381216936584559594599450365679714577052881058469601996502833660449537877117391959132866958357601608359682292090334841785386857107347575994712549152767957276210739465217507868640741832893270618683749528819287955750650949163118740162234769560531677909256594719424199146233210739123952296634243497685105869679114967801915398969939636048321921133948464083175679498214014152757872166870525585852095524703551257106391356649066804591034934814127739086272898764758709284362641296352441108696962490362047262716618276145269142379692992198873611461143090719662614568981302853775933586919571135416383112789919625473404137972932729379185073911795275599715107440333417051972715334794504957553488048471769538772395281236975129218780121050673887807325690237100642666787698311732538469442371141002822161626167896976825876882150979443036975225746766638658600907690914132063870425534844296202832638561031763123794259323393814745923007972594488609780577618750307255084802565306142441030510641097376533698736738721110897928324661580362320906551317508688537905709546688906593636601779774963965842706852455639954587570316189439177538415505368680140726201042401212176811806477282140524718454974272651255100441229946059909185443256464136273992465622870771112711978306842247186086865085140579780472227135733373811412852523045453179849064756853847061694331483409970196631604886417815626382609136306089387234767630399142135647944368154578940866845683750877503059105561655690473214665935385812750925648261738097007923200407498296099916801536480843914292572704876575246515167498460811528227996105950689834567996963841925176540964306248929514635113501924408151502672722696089012616077947839769348061895375017768558364462180112342514818786952679307177438567751234788889882905838701828722563865877740887676671367291514894967290073835033532731674021316679748304964937670838687565548970940801538550792265101034449069095466391328514969356778140889080144631125687360969009487450680255586311932424757370619452957353587673661596702175055762777223958720380744647154906017839694915709760082200216657881983615383635720004160843940065785714605097728684506855983332274622137417192552631278850934974882658043394466984973463311958060083238121513602132811678281638943404603969923090060109469433435550449396765888128845608536725427147681654109573100480276961439066615868293607233274982348096131384354177337033675259824156832951748122529207463753009774586064314364572229829984551618295707961720175446186594555091768549996353357660686477470036304426668441469685378438051943956637600132975451961825584347117490876024596881709309104795785691682894420163506769511615244578100415337917144643251684931385697214525603899155292423273687343814892806912662115748382108262140604726938043532745176024911769638742957291984574484667376957348988200973044280074703592573113472179464329245765994337726295229867229582387114830151577808607964132238246261914877265127402692433734514034680385107047181063195401459497652517263854510030299153569683631771378769283159927256091140450521779644348833922497770965382638762277070480856213372093783102799088925040228109620673364304035761010043211457935842826899967233905385191431277631370169261534225618427390817782967314414844197632865373635909081591146256229628436318655491681455441258995520722077523247698163009610319567883121285783112346161267495033676626272460769325650826067815269425194406767774148196905844070921850630302867530184402961499377031578337209313427807381979734705339355713017901367695879050628662992773560364110297278192665760589713418090198392841863686833511512231661252093887775378951670716457012382885244210363057423162792942224475763030038336602119578118524013496057175330091792125637481763356811202488592604647449275091011355399293338143501231211110820247514154017667259804387452459398282379395326445561727746767361774488585370538522185398115376523548488996779479560365182851732677548856797287304373162924094829631953114245610300867189353165529836074570390956022868773779265326763176662439793665885212559418391262610580204464741728412644122953827767745595518840563146096684106555769390437338590873193012335394314714345028581299786170036025284998120018493087961003106398157665857869560247811133785918044322578544534715913303581047592951448778694415513029321263880620353856660501627539020901268621747984420453513435573745108127590751927084808200884493403379219792401567461680670788624750287299527948407945992761647409687847113844361887512236312959159325439859597408519241732089497991947798779887025810962711715289454194991859149838757266272895292015374130934491071454854285269294587170809796773153384901315295482411138694834573251655694346457367078089449207496241020169997249454950272427678574276076535914953697470766092471002206259110010060313295131959959774223848124153794170065968943062580014895190952911633942350616357277605971714869314677055818196251625170160909609055773207298337045173073844853343304144367540686794055872152081834294367658155822727801199940968862812984619598981013517713821610071963360193447324039015109182896781644972756188807823972608113931521054227698339547762616718959087694503356725250032572912441350526134667109747512294519520975689280642761810974140418592933729577607556890984846390890481452113919665857700454498881089883507550930181911082898121265301898738916150047611253872181827087088032586944511520737743509868639519155857762346583435847528226383294863175239488988876616949853074535380323693204372103091965358521318982355422153834363454051726071607916110956381735806076728494345765259498611660296629411006770321381556123184680255872386220031453681172138293341860810275587797076506256041691992289872887846940167729359482032222392490927580124643484683171550186649938637541215428955294096176652206166112809082561794722724039599911389327897046170691374116983302217201421152439323408123473263944445473796805778031077370998686523105310565434198713562400011523901351775392107372526466114764375228507859332349398622221902271693597890839654435115878988340639214426432395513608020634933521574936590991659780763705684709818874267786703367960935784930286498708882037601956813327812023803501719213527316040192206403620579650913252433138101381936657752735975364182212080971520062825506187537856682085511613649425775881867081847333210336850875952151604834383483404601884137067220456389855279487704010259204216344874798417570984221325332822341705840218593023908855921543669895373729094834765084904173020638130702956453985551737905792660592173634374013404354053864686181107584680244032243858603612164750671688139688827883906669085851059066662068534134216069282159169065112045025192565683180178549908359098101465917025876404032554529597329059040756177202892552016000299750406633878567479899844326249915229907798111820428826406099384297448647660223816141630937178453304561000336247727059032473786701460400594454879985197944784785046661538481273016781582607248242493192323367205941990429135217887454867808411378069812280809821485580804384323178477331399271251052017252014270266708141850036475092588543836982062113735223230405982606987177120579809656582956662084421644323322302169751920978827516510855961736543574002227704886097297988888705864010004292414911130584593464102090013851370953781414792450214427359479992333946611385034144755411534851311909699611186410808061122987738090154615668656187440998230543355387616315212146216409841992471018257832346909820862307311445773779248322522298154711824750643331195611642498157938603473298900202476782472434610468912643119766206781360908890864674530883890045168505916338522138278416836404878546168589839701884453780724168753560092383558449081269827185695227663265200208852179421719828395695140007265665981801157378674670719919295992430923213216994523761895574910553240108885784161020108166257593964550398305812514767374145820583636628739139795787568755876187053561878707395236004077926577071001200450177565353543264342253214635286503502463659053477767724712375017658445425666342725502223985646797180694306411374342303190767638252015974123194666917348838803068220155530596783399490894629650140593134452055089028632664013238653260808688008323936640751096660931291804117882283601206405688077103419884243759355526732659145363882175080284802349688586122086997146300243255610702253588344888661197490055313109263690977146340729904791223418553227862915263109272756864206668859106359533698698785611411505040708943277754338660028262945878458752630801089323394414316812962387152677114183869121823183439382776485126436889814416540769577296807499273501049558484992531636441574436548181971639192402670714624761574541166634230194863713761970732107137612962366464470078044423452517903492258147030080572806324988493739079533127370360106300295978323567114392179627031150525162846886921010607256528358069790084107008024513617138654555272234422531627675002619713425499225452224697688787133263680826937902952953056898843723896443729803686184510988474876483369530089797482694132638144316040700335402389288443777073320609491803105328641792448728133609516587844241059801250624676725306665383680471030370308857009345605845060236231355345355106288745037948588278891456965217565682642379039837136131349133469492224891579836567234509436030563756375582151352967430259075792667794242792890612726101611614420482055580458437495002226929547079786629630372490612109524231712218765779537822367096374969247944581229953616819668154122127988025072590610809290122425295751911484184741863501175396830194189630441203543555236628259583133639886874961032102095735402767857946248368441819733885049198374567689552088174608100552516802549596898210567783786492089041677291204410682797363850641717020335605457907780599482499857657222498686095558095454131682604978829196714786111792244986551247875158124034193342947273917246095493080774729073589053713332543626817882927507450621107751674064186635511180248592806885226123461462559898059925040353104438756767269881088934543382427874148979469681693877865510233728287327142766152776175860171404763502482998915991360204148063922262772457921681187355083812876750010284957055458612145614305916839999529019683450779799840914918610951929668625646532280808403796985554652891795768575750387444123514359862612525960796928081956028907615120017915406393989432518642499314196548570155570019075570907077645945353384916724437554177659982392818626250843870066635920212093908773325273121375211012324852715865840481724383360060579740711626738526932896025139644206790912508254902936090434259182132233743351602320604523740352080262414559518221348755100785262608997483500385469149902977472164224433520840234630195069052552407034413366973355823810155041401739334364053308051288883518389517727175264274775230604939748498008732450118064596918830660152398620898992701158418970221267453124389767857342287871235699847670535351262722980222337537428400710757737015757766286576422823198256707492347722383861401581849365469086652759935542151320342988810172044946864888829769410475920509408586337858598436031840627287208280468544675786013466483956007549638149526836855172970896291733039966943394919842481047889652293974669994671096994707277027327526984398647101188555143733678675225330514133896640835941572413911380066322057901248935228494419083530748685119733132587970554469764579513390706458191741529512806435803573299524804285100036648939684433411991096242217871255004722971850575916753179556951898942438811788207981579722905687851550890333175960745267584626503473467489118142590334491198686837036591390776030563876040899573948903140544300709769114662018293578043864726810520021854116803729811410819749083630723151105769483359638119866844368517233456372716656533927103241165454400518998809007153979105549227331361714148822127225300825922984979196656617097976768587582132511837102317485543959040450114427418487511449788822511965187398667328036650548079062136322303407021083710694983770320922515553457638649497019441260957865913878187491558112681439058974864941732964233130616357740542003507011536536876813911748398132881804541882667270008382577177260351975128691802887023895881954523899080538115197102515527900541302746028972502073490499290141721435575198883254113849635554453864900182909896921108698442867840179055608406753872237856550721489021578231460785904789868461624157312942395056935841060496090266414034953441008813368413102627219463267975546550472279435002986714052565828570384266716667286521019343037518059693380172737460943337566536083331120475473736275932781867446668832829141977008061950204697391834166803117254379013477000271451411361820054899813864211131987698446407124323194602073549132752142247542777021378457255672004363576373421011347943431511751314603953946888280629319647338191647885301020562173338598521204458600584586991937800435792539736127415321404698834160595700719547521456686311508457380286939360144962965336141394253070633061772372285525389366784502406574430084849044397663912520774020076864561861859835340083526499294302221412910697525848753867178753332419121012765201985381737061352176545677367960301374817451699507602919066812218203125247817311834625960080242749284785838607679425197114419213243983974148454560046646946557795019983891432080437969664668362086589672647168651546763241450434365568473887899434357472411982309706504553770993415754016803984764080213321181454040616689541205791009591243789924630670320549732362796593160023597376679071183392192997061348761387073017011923682504725235440281602825180346319595399221985072939295625899795334478587707275565041270125275678870173776733714281583081423897887903361396747767408417581369253177206497833289109537303396906691630982165311369706869319167734140661683467105357463894154085255265012615336003886750988587218046886233978652865762941383823204693494198349145201946197955966055254364956338392551264013007463091650203797032264492044131527988720369430163350386887176629266006646983848042391359725827418561660475018181755930589501817726339676739501220920946405615856533590296411869696407806325913185181346494157684030339681215572283260864051210321659801669621578189876109327080739514977672131206340628080299886904402570823611259580622973759276622219217902700107433681241462353005378786578565421732014890783557205976588938355434772005442179680454308472980814671008328265364397327560081826290805538864485410405687331928064284868784953224404624551014025233632106742707445986762300594382495105780492660970689045994183681665519643415236709472981641234082834264855964632135340833408094608155772143002844797156316596701361660920003559825616225147273463444907377722186720473805269359605021154374594784970797993771619885882792672178108931347214435471200284429174776639146017131438280895262812980962487536109007874438831828253871874180032522559693289010524881020142934443965465478179063662920758767114204211185940815812283423661161486059276573047747878104880722086771840484020486510654358375682965506225668365821273895872744436822455048114254816245651929551623598764196721187622499349582866716044826423406833226279363699175890176916301652392974519389423950011515485920035440868247803551587442967329387378986561072081755336864738991841044605015381384053403203166944647361257091708447015692227634335386164760581593367308611416945888280102693583638109270148359203741133591816739239222972235986714434305090005302822218449237512572994355133407213988315074189782569796819389958009048278042673128570352531011151601736717243452638760705035409709230221086779002022962041796479235784126754773868776189945032244789604864080045021578116109782980907741320174080910373021461075960460590005641133701546355107654238989415919143953474040911234126815556772113327663993530001558340078859708422393866233514752288168723842472919518816334019299894394372086761540608108982697949429970232282792288240651033258572124890682779736397342665714829294042052732578284892339660367476192366092537806923490616778132074273567327430624946143425675410739061678238768859938513656652153667199890711035033493744464199065529301114167687947213731202584457517644675921238624041253619508121319630480866886002701177342096521235548514000741344362196417531527668860069819864544267053131438195361707496960122874727036777031767582994574909402459977023729741813957840519527645910301994113771974381443877824114305449797575056209648163788037063022010633953920495977102445778336369330704242989135596808343112923550827945758292394857619713936567765448530740167928490638243722050637341935561342116514435920733216246816959938127088529838658706900690655817578706811923206579688103518023641408373513885860263015725763387254597647111926107842793977451544468619024475338919151520545741785290205842655104275052352014005586401686285136598101888827854844715280720724665037526228604439061431051422298377426548971195731627682906789766079064356689673446797739538837563297204184444188738135757263435385145214605791709492836132377715468608627454320024320417425999661651087318898078174546644496797092392409164997871750537797869644480859692479110549015409793489520345623521123679566305404084760236586044089559307761256575612218459901937214300136016606308423130404873607306739820828876238289662629171129669149361902654665598281229101497670327781013406689829050570383461028968678971716230570395489862053632127977209337901696575833442442903226893619751750669380905713789000416734377404479153713405307396831646166634900402479934071382934877566518599159869132211292028953602802089566984192972967826732599243878131794769328723226621633165238594392425378816158530982517362136363307058719885290130147483690052202359755737302613009866229453402642019985808485915455019747618958965638302837780502368820217132260319214525391947064355917012737116069004842129179369309683746149709856150462763137098068422320974133562784725266880400034205449924921161354541069727724003064174928727110643467051654483576202149614451694357429082423100374730476697401776746931967923943910126155539614486883235718746526901342408427482982183093251701103270644977748178441880732569928836678235190808943661586889560436766758773324666322234511335926101350116280763590839555301078251060495797432267628740683281034117564346900186048958657350708820874413017972027473119226688100244324645395888787096773048260039058331236275847679974158240834620769803620884631639791196364326214077841038821901606047022643394605789120643782805004360392737570434540896484028324287789038397346397259269947039234748141179710896859377476668247150065625852566310025338555435736890337749209325443166079462034219422428148044913094558051070359074583976629136834427724768668087886708712068115013034752117091257200521769865376647073032437793859408643763177540424364907023112705019451536988301572387065118477037857496694043270369576662127882746219212154230870634622407732388839511728438388215669633814872681279131267234752513711883914706584564777462866819563096073421116218065863958448635947592518017219995458323183116726625807699748572114919819576854612482521099806839324862669756331537598978419023482930901328561579278354206150414655174748173375606437682617264583947626470474263356966026552738298212446066273995871665076867967445235555028491038881079896449462677490011967036241436684069890944915939673234160657888305107443652560551611275713341104348089518589794931587262855785852589800662279018078180424889778370034340094994274746583681685475846143564780483456690630933971824927840745432133984010272366984063162758244135560415147214994469087741856045667950180910684876331249058912637289536912944390039020617461335151429701801020915906345209916878839463607370092680835445287614927017985599734600631278468323494641013944398253527019619375077089226492260110891612225607308233291224442095853855669865589317956439218000354887658868848945608790182573351100927119867138810760617112005408743193071951256499470270386106471124302683758886522202280962594152410767113071546630104815064495645925713483596956621456927607421434496065638873808120005157768538569616681825357573646100237670639918000576160460799519170287004228469486706319658766324046705897486928758358918337034502765025333849714264594458993253947376027478314341169179829338351959746337682624361281705890305903829760818828263021970763581971639099010138752164417491127434254172978930941342833067035368380485065438177554562909325985735641711609654616423112879981893692877580995978171718472131099888716116706374398971616533484749872404352329268471771088569670332490464983099220861699999127980499807785386648734286232414515679845016479500088313358862767652329498509354225635458263493426393612866659130551652297263689008914330902139680790505160149901329874478186570174849320202977749892372470615871004419053063724761953007616835713558380375058833958993982136682063006730294931992288466382745670930783290667933879417104130444220781903341744816251846410239518654458259566976321231154560013485295238773602247000353127656316560431982593010150993792284605650250675424929098220997660417957046661438870810914028697031435969039512240460964355428902749429176859875528038952385749035475290348324188891570990873956213041104945805736522429670124903220519769471793943565146207348162909852821228231854847332768803411136251265231286031232445046873905971443451474836999009795816441546643412491755759985888962283066576093501693047001854112079938352439388390741511339189041275218716510623316727131091653564973068842611863359953686656918955938193086406491072983563906226298216924836457103051060215930684011916013713778626700440442212428702116691736487059600168683777179123391052515540781507750674664762022871191841428498386255843162171821024911640102601105622328562917641269020759010165507955714357416921918312849579822672369148064981782133109770462984784215315298524284772306357769569609906967855027435922551719227505496871092371766244442600752472825639517646499969517395820323767957757775523563174673251046557703937613314695038793300898300511871539080806286905847711751465376645378962266548811970105755525715826236630551971090582857657435830606715217584598056971395666779593099582409360581823693901670817214236418154959203984901133983032868239798208631230233786782333244516151178698475899602283159192986140956323173703803500642059558220109659846034980005137172137065604099416776398050509087520072973849020254975142644394550641456127986850338804252997491990662925385833387093044253584686241596463791961982304193462230551814944474190174693511446911828997710399521058543854770921054200435006757638875574760837492268125255523007951128077121154324883363900880970315275496709685001001876222031549284228741743189198088118845275145729873076420666980954416845432187343035512393402854422334225572999037206522914227958612081036544160091977363144906985898356516755951054185067881080940655641732372799764810896818301986525848615101134925622417427139807335149155021602444437981228519523341882464588379712944033310374235348768968650812993764060725165190152629316310753680233503481033707455089442309601902740313199747547563642512882236032532970894625231760333737331471420070154126489410470881240830210661251053944150184751138571488402978259879625576282967583892574027248778557091262135071110403046260335605171677961318293199590488752121641452399923357694633160227358166660791332236881887756670102817538691848791365384092663436221738126032774394814209159677156033625763184791341730097019995271187340609630247310081331319741299931822718794848190511832845674709663554802575285603861907859478241134559601260918747985596009231362646888790274415354040999384729752215196988294323542060710981375007819978381608850715307070003077126862608731042625304118726406464489717920557557108943117078021093459670710672177739310963378274957369342525000442466182229412134199814877040263751636898424105689486925629818167360544532603021600084075365070225209924769172053038158888277509191286188362733586196281914136926902567436813470720626135981664821273036714064869653159457575951213735060864134959560102319502671578943748819869194374923798372435339976509118225785113779396553026337553284503894557259068602302388150786883010698758850520910025528310474220245159056490032844655704503813209290296152105401921581123193483260708485325552720047899886827508408467982274055334235877452784686729101584603010404224126944214343379291849829116457350545574521877059468553414575533942268797170112115552362168132834493031483886905166098423992648574217597242847597253782011685862927980428661003136879818374761593105558553188841429909855305313762808933701788564417823258288156117152442654672090561412595599120287397159885174804577445250528113359280531601032075626327475214602375799590650690366561772164984411441440395872955899598841090852151770994328561593050173650970124477726731348152844054093545551603757495469808608696892422261245191903577807842988141298021130375238119457227601224195293213658514664545173586745471479858007230209404784658848370727449380471853015391795849817517714314257326317538049097539140462358464177292343817755806052806549427497534387228466958956063609747923985600649357534928251497089915351816426104480081202330953841537006320938940812728076827091632301598819889804738176057506923450044947731671538049378061514988424931350906967687356685208423345890776543716086267045690541444581667491427142841375136670377657525262293916645137360278087952192188437323453710957975369789963980120391177291985965567199978068119662513939430437331997218255669423908203753934256781389393727892350725615606861991272174016126200056402538132624386688286233432572610505848384754944336175064127634033281420456541033909781774057455924706081937646874763384920232607279088929896381535892763852203048848932328621893514111578752921991904401513011118109381500845161485524584971282854816132793850802625849214312973158623438829398237385595498403032210227753048996147198491404514651523213115792296926864806902198058220275873107635895162845531804923862497222214593744205594099871115117208601570070118947456895934159437594404119864839289467753275374000260743263365420921169865579483674268173179587837546837101527793869896503604226105276145756269652072235126845936665996700198007570534747780493735496444122762214678395522810334651600781639986969917874946935876318821052601666844526946622921280082102855317841812967041691086208785782003312413155009363362743094226543272733276424229870824395863185041524465003160903224411932158022808359360695813580110609589386956082092502796399957938797649391456985518461397278754314095043861362383252592130060799206063434793156171848960255467808735086740484454603730886899671960812372753249398795004293474648526237728513080210631303781504957851746153572537897239698708244184270621247428116445531460614576997521782112390106874601128404961753313207553087220689468625952286385484987227856440884166712550523653257534723181095162247024341442507650198702622842989083003935077977089523271547645989535114077669929418310620724621236763860139980297034912840563500011481061589606762424545141119157705154746462841757851920752286403243881141795471222902079672287499812272281472397137846233559726622104818357748264934623840524722662602118778124416691498523070834785997895665631667432489697292099617173543280975760205552735201542368117636130475470795289411273497973762518224112704466102183208429023683029312057325525933570581964905358317773384440407905319158509166952920961573459983691561627104534088418309468272410299253731624542443449253158808745180335729269376880489913681332309574585808682901064835275164831064487725864084818329069344437271174339903863832341828649843552038088082462973548725678205729238965648851946617818647816795715692267970548219139755177947861056922755313327876387229254998325367064241915454806693260950590127199393807701354314763237102916332649158584344453258486431110924765572691704702703022137502828869724341087290226306485136688735647686796141077107172653578164582568913536989855549287861904731113444562235310201192315133798219900715563874038761107803616838423028191916046621678236289112350939673895780096993137690635633685142808584892028618408422589256155095125912751661107854345937457531728082556909718530457007271760031525908045874199693162383207117639204440656446905850578043016648315363813747543330359038376109153486539096403930203591926612001990449086231679954684245232870075781534205622502849115199043886674457733919165969305502381601835816183298493138644486929546232751490187352873103848779168337494803146851519822253096095605131444400381303105578724134107624407822214691761734582670855405567262176035861225196434012911237608053649647887486626328207784601078425550205072395827211174615257222421487901367442496623796234701228508734898679861950533850594402563645486582302128453817544871535473229090765609906180757902362923462475590435555088575422401504498999265762241927664176371833957412343962186499820468605024279400350503732093962415643249653456049202528189213445834268133825844687637871066871643417012824791219983479856539224589988446329383268757399923332440127812528484490280024325557923544145566960427126209598359409243915275080324602587194469536104437264455794524265008773650071611585784614740919105278127732347917643275858706890596301883204124218793367849446023490628313127470945308662823487960743149499019144694252865757302036557780568609774230529459505809507068414619834590516999719460170143314125320699937501674529409663126591021365623867142873162919280789917874665346092521783936287664933986143397396695180301871391048786511412884174077684664756987717071204783974956748138156248304670352212435944460347158805970962694714465229652314973031992257504838065057136500300285238485597954913789230211628318385640697428331315378345984495982095372021293232623988496240085574289795231652107325752262763782603717120026210682321124147078449724995469311814562189294346853682367814261091418786456710834779328304400409345937317002845854300763258147278902813681203122793857680398693528101928059672654084973762297772343734999622104353147410829751436205029507823353656698523858174250574381382080279382512034273243148889983023824938690436988592890197499226564911350913346196054350093849936486497890919884832254072592365056558336927720249798307470560853189162786010237098029269819383225826183106853131532102833180688827140342546491460620614680151456771766267831949360788448188365059955274869285863799820768978824642695105741277270443182240682061704354615191669752500637983479183627683154742940515520113892342006281344944541011176272021054066503014697694622112415817289942307547017680600078941868379106030640455660383101405841740750810704532697686077328157611773135383814451037407821528533837321011198864153904540683369955002584321383766545419168914934634281682302229902689558933195218295700965067506963516579297693174245691644583818861415105414470736209443198664986069244817392375600740240091732539725486053820654535447966171885887054285125370239111455249083499881793709056695567628238972337476791967386067633519220378919922244444608547991711630152416582338106315242581458175046080705010084551447231602563638583542199707340572594146786801231751847751184870598403612565695605003929761848766019226486703348749726729623732429487771482470195964290842396151805334195969439766963301245343237680663968467871168224237699504221396610773517245771798435951388353238690711929483607618798100280126643834702854111004873441939975625505404190513236867736823196627263627253267580717002279531939670070771784977010092455340315241011658597441090635293903567675372858591453134754786884591315258127896245556791630987533149464163219351531389136062654608113871435472096451309778847217213870864344738780235577819820013546718180692929993953596105160914466081999630583696176473032881720209870835290477193601953955385206362024366916819509770007415106953058223991155067828013619099674968228088235245955949170847147802850120220738445689334439144934600333432404958300667610756782872297454657270575961072180684853979353960844760115478252214674076159486138878676460142917771593663934828604294911689925408772166068085628614984695135654359498246509190462591288496396227042531534816707308619450236247680589508960207495537934516586728554436648112472073115339634041747050928750743984267229464483193775288629896136024353002320903872431743022656465408449358852769429298830486913939223288649347445697214166316215153889060774049288897621228534174324491832235971215683621183110484053268879420278783480244091196080013166105191033136424871618968131464454847405786291738914692798788203458892531299556360554396488968247684784402986793603297306715979421314125380322854219934143961922812054991514073435294503375744821890228392882847021738213546370322675525429114484886191373510047947755435915110018368618713685098500192596169279864515228977707928229209900240952694691744960135234084835556738229591863733410535449178928454327799724083157149336301614610818615008827467888622204917529112777753567649262707927840943964314876441527362161230647507484095757464071154052791373487110807248861626582367578807521586398617273184208205572597353538287419849866385703860459068221718614309764925123166871334941338268794724904114652888946964195595824161054693905809343557019361362956324568566139608589058821551835209179155358679557394855589480548210934776841173831603776254567669053695298947691687556204324408017844146527560135743197462283616226949979746272560989307345386833474295354818222841364857408133954663886864932068830499741670836124339699550436963489341789021890190431212065636762878337290772341454445755968872939554507280216746095833911129645212299896461760268553083876238979869690094868156934349880106778818470380492567871865120594880258607364156860868226882171974086298863285107156909504700342937305420133087214924364800131669766382788677232005766013895747751451684217496967449635081454741539057772478121672771010135580043666006873974320796450191799100020689664731172222484214304062594762471650028134283351798648257029749981799495198010519094956022501774411686381502087593534306880105182243885422957079348977884010661713479681906925856879532309677694261101594551423675637336821445048691587816987208859831570488843535875414933596945014276032543705270394392222733282620605712453517687796431060110074159192272593907756971150231462960528589579359797953018656961489870803974447336305370426177100485488813261106893633721864579249767266998861130556120211869812221985604384816487820160404545738223412051331471819006957019633451202927439154536915539646479273331655668035342762876787912689074648247840323398975891937125552784072065466586150614415274588460693704397098375419314305620973317539987604762639348964744894542437197512918174395611111995630618699542272346254270747792106993978457747028758286593652040370991042877903489409548072060711218080294355840491145913248986621052138028577538105493821682790444754369246119320922389825189798680883997060402002967843035223326969476532190393647021445507689216410516882617711572596760587577641623999523541894427787298192871011672704320068355501748797594950874563193328337997872741063832809429856353139482065891105174835524503452417342704847757611034649454491150779659017248038115577151639900975154601028200959841634103061507030158808341978295951977084267357775284414045678496117741336934155514465356120660559442652007272848675171184070698219305806151928577361414761674825431241417253452499938951026431013319936376088876790360135536055176710111500156900258240514989342732496326899978019116519193391413469699850441768631321982711122995458722372297973326807389637872197358597456279818161235144732071682105046984231476939581940632438513298548719717977741808844174099211154652879592562685780877073907661545498441822290278668577169425767673667858211686193033763654809673913166850358824163471582663685008601277396654163636850474738425293867701860868981532339704312572115775765945386094050867802580556543710871120072695612540528040995838933043183403676121371618720369672067024762431462810670987844549707728807199672987266730647000427740189783341487635762355454717497433086829880386452118212951653158280323852085830267066695599291707795712906064539223000570695531555326418461109928423927270073806122035140983308515804955422629398571642526653537455464542134320027901523388227094402236987785333423812254386197161983267300929936174683761669940134017592353494127833369532711759907683585778364999372115073809964030956172705799730103368345177833382501731034660138832644961179488512836522130732370594174456619005819232469294559105892517535560977613434602048445815896291357215937285899738465547063940025722759297104628540046308725608695786441015680087366422253509460510515422449007782674814769878775456354175197773083597070558064835204567196848598714364422738066468353289590616948212704273261255699393287996331627883369012903061107324790732208636712718115354716697135120172190961604199519820233607571454340663812712472954363937591321026516828539740278435986559143440324270571856235437342959837257146159885310115251003776668132162933784289487214927586566087087854942826989799661646325850015665822819427306886944017026201764591387231656378353194671338464938141327140850924498868941984802348545588246635994617728343033139468845169067009728309874493680473984850330997739203061887937477670777396655858129634144011362456349925306859659983524635528022053469396661621223747528322585260148319122324051435689488136595275864153082987432889152181046098272095501173919757251596529946990675352265010329569122267069945418906293568575853216176548822108635208999627325511935664736729543142065256399572610257709890889334800259952053675868985385554468960485737968813543398203439192737827026695492420650671369084602886763809933798364644756067964082783987406830764853482380440839633988688927730948587484673978103887017620782040866216904855243833535239514272403365574800893421464698028789444615596593236164820123864455929792981744616368612535179705533468209687353434563186828871981028927177370557004487457714192927450529538059492264329975969935378604648104409296761134120644781181649392303607647840065520904631240836295084866944918199100352579778195030756167918521481812943549921824803622928602311112214256033024478999364796382657671726443450245704699135724946468683235391181301579484273749032933291057130691539651130966237279186818368608961579339018007507208464532230141934258030076166782094154673364131638669482727950740256276524177467598504778683549849114280025794767581456144163052254437935950912332709720748507679031010325934126449599104163423014128089887944458311091589972849424030593806507936270669855095104867175822881936068925000920297795881828817139432013118608850748715003519590958778786058489436709243672216009186458432089784654327448617757289345277280494282628220880623607434742253244100997219468606972763464593011009546482467675931317555440123309208835369714024987200917459995254772011792443021326649724833497273771437226375065849559048896743751257633488492008445106675819367599671654076738587958265864448428132924313204223090053986900128727623516583501299489683835699997488531656721408392620122815405055619915877184113573335135209954078282554360399319831166128268116254109102617157945977244482330666125572406335018407610425127805903393747544847025089556390461990347913324089040277825689366666694054062492164953449632451809224888124724283924229605261478131100559869991882786642146762767198009438575457284153860716532799838930812641351430822662460325449268254572767333510966539240569527062475160291503489368086218314108350916165495564061645189167350495700018249274144858489402747414903376421096206986678003698427795391108929058674142930518760399753021626810247769852455623300709743186034308145309323317652405361660041723517644504685125325779698068467369620171651116764770205524182821987020129418082915861550799942800644403311821209332409551605738511050672946692811207887026021816932739975862574934153883791365748161665658154743248423596527235019806451330288122741701163880467441397230182294990954529744022653524029396674064236306255299061927123982071063560884511589271141779209863736060100757384778264307228623583376109086937344965319612234929179816348575553803243856024810022715717257986593624624420833088890306169544775361250408355222612091422287008334959555329251952250699606750535747563825840809012531146862541297656946711080619515843715951707931229673826892352903697274523015255086217598718595074346441764728409645138888805331665322418834993652693426445550606988422860337925533718195746950670010184166295673193960535433884976713958082369223901520945789441758592482996475307635593222001605603381416856614611507225446622719454805355295129545310593678720094326443892891936218976551144138833043666389924811081445286157025517446354355590881872056291514390623792263412277833726660051143918467950466066845543233630155521353680179381556222473924432086427741174563794666784948967566859352750242668369181495670962446775593395178610940385902682477237781997424390589619810251199318153057125718797383715151347238914806284374609543904027806959146657008656317652121474348661178697339443771793470345362518860164557528625953379784409308787628469276221942221819596451514705199050268429889819440288107549352138709908115020218811617009340564866205502832079426316796196997619179856686440366288076415438536532190289218849403551649135611099329378524740539574749820783007561825731726773124191253264257328065577357561258598329839094576192960181066722708507103982440108998435017798653060139367134540293802904595165796838059844531228381234364659735541536103126032825858977078779414190905028305909597789052287367719200791115787286767278585023158066847952831817832433231924503873730642034617464359909053761936705214043839529124647134688501053708462457893502689842076753211837484526972977643121537031235643494852741616457933017459033431986486480235550020693875608933989281864592067116452240505378673739231426791626888902934146488113407961650162560971086987699439684747401633265842957579116733925724527858280335368652682574407754046983640068584471687110122325151479453152333249721451527839952554054417571078136999760610886413384044189508522757814946001134229422627536380106112399678231217843495500810108957171463989497744759234795179176542361946996344221444986750034169092307293120231634119013240898466382826397149247916972269367822508017361540088750798269664603144649946352658308291698482803375607933752814151030989422094566457686084562322579807138854861067508983611702728885465320346391183330527523117261377937656769390054795442586450937083565140377699654311263505139716012625052824187404186216303180355309466389696467038288532201386644084942068885826197175003678689494920647273542613327733959692598364015687710464772857035086417876446704551626740425789545347155925838810841795683887509161597475007048415790177054809009560750704144168880988035593181162265255170431636903514095708939174055260758818063899997634488838674590999343166902613103914040847834541598109129923086853091056719607411382056003234452638180773848762579748138043111963469056179159874321204510569629242262038501699435452085689942058119819425560943837719675049458200787375788845041883247197755227342732134062055163529837687117323198552396379678960863234651963022969564696320504489832651429558199254079899183063455660274645256053591472070312779133123675566248917133804364713152226858436694869969097699411711971577046567650401034428881901172423335813932602437595071088645355143460966229412016721926063084946392227438697090658802596132718498013679219230998376650997865081719530808938745540814218947453124953588953199893879065225231038220342729516609631637406880495575280579770846462980519473940032398234855977659277444417654488242899647540859266360758059687202662596360247741190041338442211098165287317088779234844210388558872269589580716502731236192624165568889827379168732586697195196475681453138581322902187395049043813567841427361326668901069326558458552152657693006667682694348123141854697518104281881311007541996856944796609924466191350059696512930093789774046924067394464285751839835724514196909874673937643412059725674391069559235101930776012564982312044858208206771714889920209993632056543924245394739636947199327505639831672484088372677203984383427415684834291434603238459601611362391520166735040156414471572625080168909048132754507237274350899023153647617988824033410454057440915056686566641983991869398632856709053100574676537100105833735534813027577461812394295679904800937020300948556321092677201225575001588784021295705785256026855072105133296899257422783027952795521838478974501311303905466617411335151314879276200778498188902743032926804494711450417468769184300226473146416702190641865622928767780464076378828293393539595178902920301279475850345267703507837261160603912400219401853114952593308096477265544608290657590470044995843591449010135208595046222545863195011477454846673564371124727428882251874500086878367937294311627243962314685924015309979200137902154627997291446203926719318167640689331021982278245854154621135003874625818489410981663111710758130341048200661181107438140409532473045939262562721283016445515900585388137681375307895115882107462744589958852602160126118648269859084716514861529074112009980448633560276991550983942587074332607203250606318821900952457748901619547416812021823206974713280907073636916244492592382537684346441980530615848111368923831632444691932498722548478814021363684370895927411602561497328492684039839432181910840823947368615597752816898833030287518286315492298350356115187904044585051960666526062780382519860167807832702159624772939577811673108343754115131055483740325983945987307771784653606670814366338459008342741892687541560298267608808115057959484503834198067237280113732561429387609194534387331916268590887072930733596461764112811031593594652634133836729726861266409545477782948508713308913752976220169823996968855917261707386275538000083450292520610624715793804778415129713078284431801119592852777669304860126168132795678277001476016925434407164388157489054859623327024903019502798365431733033185917742865014739641726505093462343958083128293966268239105070416232080479919843728051024190955313704967981739457164648743146115047965734067927908496406542569196389504387370494617425397886185750927086230133137720598366385150662337012114419715806995287488120866228566908640073364468314678970774847656530303035053922902950926387428223674897440899574013708084365911556030161664900716934562225018179129875475314357417535734569497128943679861902702977954423754320950459568457665884313573985575314167069548996621373063348770316533021340427586796882031649459116672853795458083761582584162517755554215733707986362616547022112462538810347794475554030267238921195821399851465838799397231877883317811224824300277636561542523548631132916374066060569913471949744518054507099736387176405215702338140697928030641203432683657230359771869504575639069779180064871820372307149364977598611450699663321612778787227177216282524656276981934673260265862265939908404865910474774255537217308939622070493680331221218453674116032314279848548121258274842837565339819735400179591454458878630190766667086429128616257687939999185718085688403442556016442882172591904759098606782198439259394650265887626127164699012476500028757691030108154133494171349284579570624962616619668589064111389078108900291135809918663460413537401854212208334405309817908757408790910147627768901966300791649833371731388390519845093199893802869470739925053289625543964549795289695302209712143979850682092922369880304058243119619855001944618737159435115015451310369649803004762907140961496514452331426634321679779246944550968892943035789908463825286640257977665561641479946748006579851743315864226192247596178517696921235707343968014044681213524677295739643736461594576087582942495182916801515465699307132625992563438502285420170172630507825494661859640705063767181672432140418250835016525808593471299415027520026701329594134020583962144618449624381810892436756047624052999373651142608549600242558885972099951416453245622883949242297183071087421545561185707484843021583104973308386473606263454157283333936597049660100786090435992835199660427276427545438617868663864095710937072779385854564360352732840490202224159149381957490080074481079336304805095651575896017882875140425348820457114597526662463620976334230047820936593919379300857941034295897019904348539609779719729690535888913187132301661772137350779668732231208435572017895497585487498226055959832054782935535127060284539151302441002759247139114611010727436838091374106728739425218907181602123954715531908175492662617176950281901608058641007869809177776416971505400349843836291599630251433012987203815390746684957944550246273135263756326342517221219127149389218337035790421490305825345029333674722425882555565978800084057572302867907452604506591257983018370642556161910899666825735460932427678670635863727035904662862439344369713455809716800052069167754522404541242862582086635708203081853119345473635587533477738523428356528436634975702099175920313952267354368487275435640997606214235498151037693250473181176780885336209673663315367748107660048327233790482488125629019182637601993830592863194888554488234044619769369439212147856923054766940773195992773568234215525569929840867059044462304097928531659438842836247089377737978223048682146997084147312179216065711966070937949401325706942326897795335812234727058268557030684479864922029293641694246452498409248132320857814782272134562056322525492924086067103634176528597815567370557384414047878523269160404776690226489492773572069403077165169545029348037200816547894288408186436703137589939031093606935397511407741695414273324929767924853209175694323715145710175486579665290445302994337689761304441168123562058931169297480078446104448312841596543950532097280519432563245819689330576456689868501333993355181870342910516365222670621836093743551745989663218278160384511772196610346192578603166482615566963866183146533509402674901457885143362508205086580964615761876801596080400112552912635354406430120476599386747875163662202959247448331498674841703114241957592253975645623570777393783262827418483492952529936478269101008337649391415467699884698923001670769294384344750353046205180007264103227236988591452650484298341352574566454437741403456184329732467133591252880493637270263227318907599036878451508713253326710670247450699711719639229140689171140438144709338553089394720603619452915320953119408047375588582409997535675159436610227440358709911919112701001083912566618719257172519987523826525505565297458706804224019314997841907129000361180961531892987087926227145104612849302112499295799653110561321282292134076591621729493193965515756941406382119998094241559853258751463911360082943436093234908111876603437665002583598482177873583465532435807066522516267544765950873835519977288533312404920301355767244703886506645268603489275182029190398208993176807182081342747814641936888828857451675766148159021377680968942217036783106799009498830109701252864862894614318522199874061709730142524952973618666394970536333164206149867409742831252833065174030004146644454661860903866344493343485040725453305414493505329433689831590532658969297107546732463111850125328222143823876070801036345345360195483912974939382201529375500728106540011366236671928400577586745754067508265676926180852362308059213232562593572781365148934864108565823079870718386491898419830879940481473929287847590324491879432497516961376835105712569417654760484731342108834716319284610493983412790860256772682573544816005889704003036537035566229500958641813387858491742895179837582182681402406872825691378660535253732605521312489931053776107047695175085790149256790461368495741425006932112630822511750100741658613239345186305112507642627465449044741649874893939342061388467645671303780009865547509990922549709774589794157588175959624735448076067744011521548630624823438710420515350731447743504482252020838171913482765728308037248569270933096851175475995919799758156304518132254885969850884741853988799088159440892532369291602831059285509158114465104409378956853808641792809338190742963672949317044835605896269718037518466052640340888479494310546392461124832783134697124672931469892080241051057424426803698185881932178527747832469566051213989385662445724043441905649395735683549117333869720111265848155492886308561986422966621858649678982206595834864212179446162952553644222124696954498424600002939733975246625951897710506835283555098611700508494035130834426884164906782874213307350356930902100279847658528442975164339065271314884957060862853234954805752544101216270741336552028598020906103348046159450388692876385573347952498732177367327752443697524504674851307814376944314368194759755956030003838873715860328276210717547478966535796948929331755025663997832559858348619555718628342379518001825062043231185666696223386703450628087413922421542467006842708578329868985830955628906736001449187957675737377238963138830637548613786784281037749540869297944781755032301901839675978890714106638986494323632603247666476091775328453482098335430347426653864044500479817525606819627340833363408976740524190492079281974553189648457931645165117198868817274055700198757061058950781946229205812063279755354950959730741233573170846323364615044688885311187246931503413012425653480187669448520283671730285870806400952602222897112297604364266249819971844037468574363044187317330866963961433314212382641999984387225774543473613996960255184188494167264765461427986113223478729109575762728144731134352137679134970859476690590611909297975919955749355393221781355526717038043045546892465075278710734789042516358601863574619869545781271044159567436727506388588569086236381721029327617250748859036353551457111825544173220232309529465311493892850665764694664921579146526348126511989117668217309193387782816313127832732450094556674216401748184392837893879942204195125168911016163380782127262758290667289948962971484389893528633232510106420799736439059693373465384729802339864201078859446660349524561829407944752686780619176251739168242995949680761316470795377043273825537862386011821439570008818166440870194102936686129275899407985927579696247715598040122893920623884555670970692360303394996079204009318831501465258415978873608893035601269512599516508470176739527902401868263159573989066966583453652053653684624766379504044635901512871083801277241571718226183519361041052293137465041673450180449248963015057633423394148734747306855103664365474999208355934880798832740026701858771713187819071806402618676125647271420942433903349538670339116469292374450924658849944529589315302192767799563462579051389883595132197197791580698844690595719422774443185630304538710072762408135350086774322833207197869734447401258391672990174259378904684473858211243465187719084667849549078026489803585865925227664418219652281671347864843551256384311671683773823810744753993756726229833623931302243553154820353080320294979896218660747925487541079687587071090783192837246210255628271531691425989845210929503088049672474351771782541453939129801698585701002092709950859526162830574160855226145141568463450598438923817109182399624469523552399228354631387955250359796116614047253822441858047632439602445491986495313937642623476789512403054372995712727160415560877719712589324024777763357707024864836741276438017259272047599926051963676101608175205985790634698205837242451239332381564720318337760222215658462364822527762360884911940113379847856243841840417984282574156561819456361044351397325345680093920607332254103683106111731677267019164132980197067750266932149153775050395835649076130854779144620001902891365914875083606993362432865184431857664064163117326590203800551868058043260299783584981522738012305154474780484756977846458649479475903703074291691238606186370225357638991598902904440345542988411468596745663721599096824601057590409280728969234360732837476969928261237274569079060570450821155522542568777837494259098872002111842312722124503819646775268490761246300267977537711897319472811038297864408216573471984584751300246029691971002648015239812258352994614047996447762730434640777640820216653018012190590946051654923456436934067002087469521917953480362206293177929643169250667417817208449944749942664455136427504497144196803321798775617255310882740029482031130263108891748644970579363451174122222629642676370419659389750263900711801425930266726075452950255916351760704304311749872215278939453335821364257016424922255314673319001151636517699186179917229504231476090669070450405528055837017428622444630506171185328733499108655443352161100576619486907809659577863164749281068073007159580140763265130867992750016324690999277148530855648345966270411361834913392518864978253916656561322569740387831361502860024025220239454654168592478389626934502175254074801412641396561745180279492883270441977339902762738496043463925191940707699570944650997384817245992056146236610641274306720536950534777987441659410271103510584872396700962178295153582582758957389276096849924205208779971173851522245434694198497348140200824136442012901434598088078747307126482681889889881457738604008264097202863840835522010024922654079910765530795990660063249695420190721051834736592117442228702642258532942973215193337365216875801326827251338825339442314942070827765592574134194106956311095720647973660256847036915389173510639614295704588207500135667172644280063354490170801057385807646269888468516254384378783785202097821038874190381433055965210660319829364441299610652727480438116150133720444955550765044578200773950690385766885943263281363199764376748887582656905313110950139947067430707596696237636641180363094744837764430030605992908124224403527926004041501520179062975144334537823807292095394165045537284894285243240709251124649568286215215601595876984427679351308893668679864673809396957533124464953043259141341127992875959516969890537862097051775853608064192951952911736383809915332963462984349289934107345961733319666472598565088398986850771962007744125072923617523993168899659320222611114005335020966487479483071053290964025736972682821883713217385203329051425814353542679979707488775408420699893953131028366297464024954125045251519901757157464231607020515809156822971548593089293727075282353366722690474024756398810434146627582289775338985455530204640589389817994980699552060933308777689122129504370381258250583028744547008056534510485161930563097271315265239150900115602577977983575107347761113523950149370059986365605340151244931216370417771472016202848901752907789896871005236901677980471728114299020816579135215931277191204104901566260729620934708438747997168764975427337481552874125121619154744741427011812483275882906041847524546460014321765997354843249809474598959623707202979726778819053530308516005380413056750242810086632535665227928463057574003305754747381630391332768657392134576316377677707770731292005261283769256170024487831401368251668228113138384774695599548257708836415839732910979364869266499219343705578381026784475740926158678859063603817759270558095842194866348873755877906753318516242324175328754734135996663755403828128949013808239501657986547670194203838280228496689920776019627244450854378899171677529688517106295260315069966602679168140553217722226301493368243153566720370544277522099933298939739535650793555229575703459479828938659255308090966531695641380873782948315663160134048041626193309446285509844835366779903521251581244500111475524880723365283520392448077995519600012084482048020050472035286718030923639740551495366250862563241387636142217482263061957684805057818522537716837718567818757319117944300006460189324852118752668555584468660774619661782998049384582609479425050534195997548768920250063040984137108583668571610561027398665280652516690176993248066679895251939914372568900503635963642720607196223513402424263974754542576106786531663988909615222506397303873204478618784857465625523521124272045695560237050688741016619422426132544859678360035532983975583634989071522572745333940766915044887881904849203084660481348841567037987770436104066881534963482957396875282526233087375380672949280463296589779932986540802481169110087267145449489260575105884086921238921679274283294782858097961649892748386126675648237116154625516442110051783935019617702437378999520652585677641770400274902938475396548593426318948250861575859820457968341993933335548989292685376405205233655098380712871593290568823070748572760117732613870842630160449580090115460885692028375660118315705760593339111511310479651463789447413674430543716851481365597280770466098464425416118920765120186311513948087774280460872023864988806971508301441999140048921762084097604360646784699167004445453303127849542010418883566379025388607190812437129946396737234943934078678133670549097249760734094604723496364620687893643498063062539221830733547692530784441827908802800225697252974987022914116861258392626293382160962098979522322053699322173382777929690348192215965112365698947866515085338165143949003344140016395888263867556472092508477568751569096133220072700793144995252177166551095819277944306049203264367572530206537568329455585713873902604466839705451257262946198565088125656330525187403428579634236729988101209691057195949802359591810137257040686912406164837172649390495466539645009999530177284884833052467286004634927553484009638477114887969314270491209871838483130272897901031564258884919690841581745367081600921437384552920119178201451624016455589107726967582138433393230112671635341023364636625804489392418949746049092334649100048354970715506249832995732322378514559750880702276414677685520393225253433960660647264961576152265978935900022619914500163354378779200433146980969393337629217937216738142817508795685122998315834634911465266053661002939935536165618869971265834005882231157761803865684534406800927997964790235046195451762576450023543430064540391047555097071409468726240742728948738808405553592293315289687210111740977081509007412839027597596244850948180355709563377668071217946192198276414754597827347543157774031311974757834324901795136290172378255764278426512188658201226375890151116955589881674513094123724978796055313105236761421595758167757323098565351492511622068920272932667044278837628939683522191771450501613237253008220463429744369467065693521677028094942189749981080502998652238554622190402607752433936739446896509101744762454510264897459281044473417605658205179954730270973914735688218886997366812876095542883419064775224187469599158241433031107276329334407541531925732095719775935093324267387392095973512350318552243228013804755108683196346473692721263706058904920191069797604935828250932304831108376805456488895677682318461674971185159363008449819323506759179881908759166665078044092275664029684945850306025233546791557030450611760797032152621895439738854838962317227278948373370205875874968906713755544819188551051498044897897312161123310496533082202577970231074995290044977076465197326002549617802315854004431093007132035307886050768391087667209350223482179314540141237394684347338118144266274106185867229570920245460487301281225953551777312284198421996536089176167269951247965569247941654366446576730946949136676066094091348226996793747404306399029764351757154574841690045034964339694013767317836765422088547473193470697066076724568485229656150559724235598210633762248342563931265097234259537213467698632435544050451407758792252399219732209737809609150334518246257960570507456596429442658580893402373437212566268998314420621315757993225436331592011488966067995967672329967230346886422039543922095893710462490124975255567517880493023873635316160787172923193415381637670627195304436624348263613522482936901030489212113574749590491967143798971398763443550113140109316526479004361103475140344482449525687130713786999065195821012036922945287988987442349154352896242144011549265345491504549160374674017057304024734533668506997234191303406091204857108230490691295290112112761320850258709612881998502953713159595804442617524336266623672010375213843163554666078827765416428173791304179803595609051294772360453370178258018492081502157120591787885131724466180104920425034415419564336299570419229318377715070055563281087309504530772156479155702158363388729959911581471910245690062624702109102875420786594014923942153368947348684866362719995494654328664206336610582887861213964450633033753037276179086321861918098281026529985781799746747722786800649873273614236835612233252993814377011414595295604247473665490275477825331642838247855777814030851249916402198781913830690480810953108032014842597421460787352480071054967783797447301001380728241204845246642233693920547587325370172600366474963120858867300639385075558601217517611717898712840539100670428697160166577325800934561637287601776389076437469417893803106228926398000794979576019526905081558870712115528836682695988239299323826522546017478071421744626009303583522105111159261194113719989516610955640811048364025605983597011637357740405332818626659402247466735334162162991995541098239007594685337396351654713961335758640758029663287685566015717282745015633813280441650662993217214162373180837963456588346517882553732431117865886052892067186065726238048746208574941108921819263974124396536946730606052882583396572358602643829812678177335703651422071334605427619705240799764135530657311746971781274203423302350634834898122031668531891314560837832734530801481603445471541374252122734833093374851483189171268944677703897627139947842801560754921436358467186366510740528771597109700973835436733811855767044725410744406390372358904445141295063989736622671057745399157936110356417093879897181798901771300460434232204007014740564335647745797881733286037599200216001945499679735611706295766370228922775145551629471836284841108106345185525674896567340521233592703430514100603095730942336575197891343179393254497767662520764756817255131347813239156394658538964738385235068720286827691979361079102507365621200570581628497993976104051679650703754466530116378483743382440308717297787845742810523441910497501810921521598387265719566141713773781832981273829971287803915567178489830983760697873646875025123480094033503004909089570664931580552476774475241519250944117619552158136743464377692404622960431082900121272070310772765211510676237148213010607664937259176520181374447891266574032440035203573635877449603181814947559731214990885591804689134791534293057420780473128426506972321273115629818185389812842492711127151470312943483171062270282203424773637141227323469771223048284317892611621382924457133118624639013180222896509586968015917337412361855619697340457273412534494469170322617067579876143579636429423822985858601175283375533390446076374111700413776161503710819555774220692916950737744030503851546430105398135838935890001889402533749373375256263208729318885219497487947502334503741922212887257113905140820176316101964934518988906343780904451606726676932978516622444870721943740732556802565416922203936762918158174171285713934841384125122726078432491040371110334247346306698859044486601286633928333294637046027243016897129106365893863911633887231793691725903030596498350559715966590482654043705883822967023410996666695582542109501838357701718725861055117918352025519214883000917660076176105996850035700343994364023843117070708650115271476183775338794531423482760440025848613032759656909576124849846446735908547942983538221408934586841734270146206093692772494856115626800109644777844045726915074473083834057770013621288946585495877899389656745980620890049907642897533492569037592363701678813644861855018719333450957823167256542223353970594123558316064846409603806226669989576557458673101848726944132760647094028418189609666478105900278698787399464998636387587173502976473562118890663668478179080325037611869610507255758879156241444251764353399962774315718933342381619176879869926096988374189033883143928036072392108319918662777597584689917448397448864586555193619708317598357067112371579683284663711853676044738953831965848125709353637362707468979821769735333680299380797033484133321360160266523164708357133436371238875068247899787664156345129199941921001319147918934940346433821138829210999858980942068822981285125587171525514179260348419199388549120064945883625913903562714668680241148549675971225118783132088795160535999715920542986312161906160777776716173412514661107677410706136179641993375761788267169959677533390299127926743011027989752000181696505700029824910937859908400301781965402457457099455828758350072593959277368560315442569900914392329841309687607647089702273607051511590417307640911810612870679767821948458025453240401120322445543064433880931925773232139483633064069796145690940235782466589546865866466952153141698835191711792093109243750729420998849215840097672210948008138175295289048293033481718576831977925553932950454103948996159155214035807037464492904203268860922412911473018899024099196184315544255554893095830040761142624398924523778129291550816561198446508481799483397121195702523070396132484770184257996853116592594983551693997458664825646833377495001534906706449402086769336265770648380523240677134289630602710750799513027493674003295441336755133403994126369629188687002426886745354104442322159114453613333909197256735426274224112243284493663981533954439007900218858646063144502926395983049260889569764854839582716837461959829976973747404228618524136478464009080755931879630884220542282845412678523284480224963144102391569836867724274802843954476744987265530372675205569352754639017293520773220902659712994928103491535473122650538066476944306511474263316382217824470954557141629087959386042394175623723907527605334481720158775387690252805096997787544433833898211133890785942085753208828326710946576507383610751852230382792604545443517047345108791864372921667784704375071424242543955131636410855184721132562823817605230205711293074451503436488736587405448683468973826395278422223874298658969230335601569340672500099530439376910006367020683028336858752981444894476501553369033403074250458366056985686999098669935115880301869068439688701538020551515443899846177398171868292595392091602199269463130334699342974728122599519778182731775216323377367192385218257292525099710430700649061152498801858805148427552145754597135789407450019228130273233109547593085331613795116204246612306814223329353038673910183307577504484806263914005653425341144603901686317051683357827463621767391772770077902223051557784156115911190015733348194314582525015497516569325195726920743830843508756433580867988085098943719533554390977656455280997436935363586434429772748265653817262490268078222662618456973148488772400424964314374988214321986789083185988763589376154159397140808720509904676503133773792765739792346113839214427656739285610059778358067743717014277939917040848763492274058861476891867237512758794903818318326931271318515017745568482527363490582158068176057602755390175579941754927907322776295587543099495558801495732136366131781559843870789924098420586802761923706928843319453995783690662316358761890952010030382620972267282484980401460188070513948369436232743278866670027689000787546811490492803020723242367318546875946409242496829142699505863884024594266576037569660773250730630892544505281058883930197120813946386258117960885097967047492267632149326463642466581566153375594137326297624302184702453785211822395557594277112202323838771957400866625318652743617562893160335426530207838078554699568333313453549091779504932911989689490382952031428740365586703813981826432108080291057901775765251448432550874525313311659241587547529991883772660691084910780548792017681782469769483764557885800197439499792775850886649080274704162872891302923933450411155844559212817806263435043418747316917507191594699957691661797882813598652354225207245919458669948552623437442196433811610670595272496320497200328589505209368883263027202182803362408475088834796096255561404512281284639703323315460233210983415534947863947649830841595384654992355069206501885728795863156584122864374778729129254376288501215214312672638285180488481846919362901595838021875579414191805048821784131001885555196119834242448459905541874078425742028198515279873182421670572251324187720733263252438097593643741076083060310868120182619139225028341897170132033830204784370632569743174937581002484788596709648110743583359034822890623749783039440903310188713844611719426562389567406372433623855900359914241575595174778128132770406619956984744494439298040842738264797294923084401069616107872840920182047174084750718109829405673474026925371395812049892095140619826259711609400973961714251890083468763992027704439313696129122228833458726420818523010609944981511447634457433668481506706209109857066933079742120838900244513650637195300327859733802063331206199142192304984530984513728463947562256326907135601267353555890603068810138490323718248580005661331681462281446399893103287216750512052712856254746639590478560702429372464708969465497303172041501646169451348474744835030771914712502136336348017773637094780730427363810842732682539383678249781381515080332361926123638076233159118823766312689370074226687054964439907451907482711017961581335746108991551276762724838593739617477811093817063030713270433935330793397361498648860941304941458542060799636965690898909014540218189400937475613450873275311850305375048729317591657116451876421474129442156883332694615978655063339389841653583175079130918456354623862998477494106698637875392750362750397288959830401980785743853735133198421604411911273963545258662174190960030770515699029356752670331200919932572374651420940950475689327389804229548930681260502498843185296533453359097508801221800484169604721937480585932700914474604629838983062115880951326073153653957928910311881824399658405689231038979131748042379438120445622421793680607209269859595251293226744345010854991457982441176084016193513293847366865962112457402473789940652726360264756776060070420840317691609351984654203877905094802586803090701988170173071999130919717787789969772885590256028646068091478746082415104357769049926699370853819694825364026667055083239902742396908405214630143021512459602306419634681041192221055039822706957681909587429400511102310958530895859694599911624572015307440952194737085663398620070728914312658913523360114073243538020496252527937627173460959598492845541842864883587648151928043351867062144991330509519710762277917015267929342246732550646634537704766358014280182792535557390144498538260913212067667499307334591398018060850267128998168854578689172012292664201259365289601939255199707689036069076895197712049414052709717536499851008753196624869627347768532284577193791311517264359420093523804137562516791294463471387581280452964909392196706071775206845720649016324180661068591628473126455076328388845952317849244033363326563109413136422918779238028611914277349811946266073251897518176733328396958644054394751770057048800678606571289728887571724521579866864958833101174661530662261488622750042923849920586799944534784764167873755573056011999725590676861296684379104411574983847993116655857918668328289547520788106386219878441010373996030895510104648877138893295576196667267358880889552728464886761132909140355582158678445496197974320241362110156404099468950202192543254518594449163341168881416058751997400454337799803227733641628006623257931220103210391098183695797838974159092097688932318181210093975327066987162865215277067067654857885981326520310031825467643323265991831114936072962617081475331963707913273679563627997617511444418237452776425441030274512410388794875347512765069586414805360386820513689775837086364608739828885657852239369344227151875365542270334255649284090848292330355905146706442186043069140322317733456896724221475939389296502321903961573626904542940303104588405618549544185754267519654816105290601169985641586187883766132775580370288239314104442928797384336047407920831872796782112758055779091214948008220080786199229910548345231241667922509549191172577700444451019204560937976626166168373212288979923751008031951662371112475621354319135348164687928393589440509548015434437288947699494904105292441543272415430652647234352730227123840653647389932350161364257742988311829884347363534415892411583099782484621529634797175333480198279407431300498108905103973599468832173361362040567601251572184117089428811163958475485695465468947286624104405968286557562745779662005098852213257927877986323513606484828312211456446738611072349810357831808866607158892195065609891289578495248528618584074169399453210848220074696020943912507168383162138525158999721382524363364250627800979352631060148315216285735168283547806515105586364713404064637757845971205392851750999866074709168995817066638636312044230405786744185435432593710938425271001254970879632600659236796942936570555837262741294630937067036572078195650779174476157766522329185663738807754510643736167619566850504745456344743523006281441380043961998729577779121111088118384321899644537885104157276208731260740054757867833592930842345340365109198291107095009606179737530567863820682526008661563726341992031634431834464030851349433880247632263973837523580501268538721967054312841727090477645047619595259189690104843979351527110284387248262153791814598735334382375057572485784718190344948344602066498332983666378825299189121543278368439564449340204635191705581391420952971554591999203293082060183736932214640777938690039335610964373113042208916462491423094175923325120633420485844460783121787935706064526582329052379542396536730141695279044955818573145978613687582800997026337166326078500674826855436928168297642527086232787468400840859877684528029953361030346177192300822652852524380823734259366608071538913953347600070483601210890188605852998821897521915532629391023386202457816255561067287398781437824564142705846295295923075710830992338796218173133268982042081526694445184956303142262234071948074020399545258034613592740110728298566945921507004782593904276282804370545389037868265355442826514153815346301275728831146606562384122928296027802378544917577237065180682063003965104001730464617120016787212567638453356844304280054651543554367832044163060949484498924597556203653129924343014363646912887958214540018971555472681888833574953854792948822982295835628540748997912492974752814475288538471029470786040839453990821209281981353769754129344670005331766764723821531082738015127458144061802641901436517981194454025521974976657242447697272084906103089316470915660679411464005629869751710343671829273270628190597694365260182537338530452665553371264666299775007924259714216212503847708497281985104667060935792946568463913120638203551458893123085165678597034997445298924073219782536207538517448287746734938905645828421809335867174568986098945776490138502859490502548193950056728588326138400791552464032552021038915962923344396269981531356868653395199563667862772338514653562320385819627089556217884794511318714031303767653410914077206643279146760702174048378363053336112874954604223396587533481608430182388044309940761991646520626498330563656614386078502372612611474266953996977706635529978986393695155376685590154571115533431363911362299075584145425087341881338083923181668479874530841046032426411146359278663860600969456215387457560227099829676704635217631501156146232493941291743402078896903735033947921345643630272837972813497306447491722834199268029939943056118598991437106697338293073225817668873946600089323470180281929540005374244847113757426820279965776502390418154312102692496344849376335828741946325447709812512101813788299217284388987421359535539863250805570036441705060450159366703568804198706814297387598510015193155719097222068347677386091014922892237125451384928591776373126368093987873932831852839326975030234395233719523134768810282176663904641585323091313784852411137079804710554521766210971182243965616751215796355851673070326369552480205496121346781669347336409979680160519619976037841793103702433906182672304051249941266388196856895651888917192849651771715396921903608049146811538688142512448477436715684870980810208456680721924543079758608772312629515113339451605775161588508270361648198006982445059393243792637238155207160719927938343832634449022553708276623270337006253568638425102515743254556813052402086475082011847484711734484185134544720104852034701408231564300423266101559331721797283794566883230682092413353903454055897542726221663435773972325757428180926497897627289661914393005786352423062118521142468770099611585304272976236056795294931244349226338773288280604241034813828078828548208056419375246105314069624906594824245450977361647400154537241295729994834434265272191749135587697927569384498317174136998412027727872356183262357287467677932959786130030497848790949499338954815216318043736198346587632441846652100733037202009013551793152245617961757210498031700450532957864510241321019751179707711891788950887706080880083673823505599655924953526396209444350461986603667145806318295468698850126565483104156085181215011040344543903049408919706425039120868160590158363628583552055808821194707722323598904889272530613279986714472362444754733745819673594286760431761948352736993127269115966233116082974098137176327365953262836402633843377347888939961511187190878388373411816098655194614999149444533623906922163179250282081516049712592795118388628252238757831042751235347673513844451153012860386514238556887489462726096198744185530245160185247327885069920732512648617323029034735208642269898544360893095137782022960661023909216849831347424902261631423879539385357323881059751151039533638489781850106526351601095134212889305342960947051692505686754511097806964960119044809605711405440719330827565144094401839762831163165082190400492411615639590972640055360228461623190975738803009062421583108487657969121044954036061523206807223277628091948146634629558032713358474452261348520560651452486691424281587181984868807744583082797934875848521666880236207646807260402058497139136225735192435764101771308751125824765433963655464240538321683736288878428267014228164610531714695302288661225059588656624492796468666590224667951627697370994560105808376567139116181128072547669931770684898403236763634514683263792331461390917627301257613925724390499878993478434659619202171792008468204983565276816318515179127762837503660875100649791679357462983583567762831841193025258741714067027030760386639863439043266059536994898747045150067396997069648952574795621293320263375212196187056734242480919669960634446719330247076658666887237410174022605334042682330763839735980624262562725169087366771097179705754171434815624917533339060631230332112293180066600912839017384888759350984450535406014682428503803046014657680966704301962099639717732341815873968085891410623231835396152642719954005006258386003985479933583487127264629670112201499854539124423872663456259926549972013860785456765522768776213345006077668453266525363255011359697175150611977826842251226594478261423267664173594756398713958821074175396393052731340171171636226334446866043026215642680289865304606393880354536218687050857706515570217886164693639251402503744930172782006577654049831527869227127844358043788437021611043837083475027881528803013486076014281124044305542553362044620078566716471664056062802029530352302670743355042388562297657335617602101746995883547612912974482016130418943231986050933322628311477950225004928180501958562243802999505544736730101740364600305473481305330087131374930163907343901820179858590422444538441946593881508203337407837827618276982600340973705454092583389022579696840376279144723707981803485956220878829331635826517453544487572864504091416015763222752812053244646955115649433393594271246447026767036097825638448407382713385349292979156447435662471721886095919120838564690076462553081140976516663230542859634798354894653785522057413688412785313016448531498306939145123193895173872566777490820667602444914669121605043326512789981080631092091973399473024523217606166471988512644960464269834804553501312209520014033087842650842388783696143229367774837869445829659944579215453622176272280481704608128261909889763344323856635244144927638465514885607936865973987841465545734106805810505895182102105014117878109701563190954042630560600985144224841321610439978328335614824195106572536841609854443821054573257040344425004387970371962891068350721330072092475026354736190422306713247224152689805035905290747918951821635376341648031583545074005273655335128118237287650243358240322009901418076384711866682095924820556155141706126638829960648679586791107913497880357699035306518805240773378712053920698354019578223867167122759277516144587820515226605531740437373365976787966709788261424053894894481649498392271069411040041947253136123237261114586588789743210563628596147137470364689606777809247311559492871866383990134459162625771260301430634048863243106459748705243234563667849720958101833845978922781154075245706564491554410180799894419833421379047120659249713364624761419600216339008711838559392900469327892306569114897588720236361108395038257548205618526954564916788725381314072933387914059863800577680775619027200444830796306816493980613851077369311101531239432623473424896670966380667958218460718245055573340288617713430598654264381452197399969372954729230013438900708681868963798446488540404377897917155040169533710446414414826944949128018135549422137702086203604000310227489714086587913124564767433509813230022846179374951295262790539856597949210115574684482299820241692679955858622846499032620107071752542085067782282125018844057057947503491224349030490997012745820047549027704228326019362127689486101232654828643299195023661920296171341352550337979082371566412004662699323784947296018326534114230535274315158374488711512641281708117706202745734539738535094794824093379466742511375487502880972950719526775009011333604649072092432082433818599228738150091253424969705871621837306701906329237596633354629995622320630435838473196638632773317557361087810767047619534825042640337045245376995907731353777790117391867564079442770503027019837872962568085056463917481899586997396279199706010437648484236047891975331555122960083508480023516155108904703871683046700772874174168905359071424070761750972861080345847769905316328254870570918455755016319411095571651630225393088035388951297701851808478182055332922582441651944694421881351879166086378885319661481563010869188797584345242597793166640412900634540799639184070174191673197477960754561166697859576906891488618538157496324488973487324338506838096141105874188856291692911292426534499516300164902111303905059160932152623858910692472774269463274557451594515913626882876678699528768934570343659970634266526661093886471062507972892081176000293548144680677783103881050741022178747281455308737648502567172196503865942351861832359325125108467852090500865680274763338212811641326626355159129328692991832842400814702761511389469631859279298936317803418558207916797238786619833182350265230848971203895896616876750169879680588135112186423642701222722482191266212684171238310998943417716619185380453947129116486201056067824713140037300329285909361589666878568714690254934396570403235659995864113701000766989324097498849902420268860238811863190509860310022062758990098954304786462757815884747681024650119305786735787933467845106955557570271244637485582235826312178437746263068312119214006998584611856307161591234104439273475842023925189567685029316491581565419395925877422687760330431147884333639650834410914484389070282293674833622117379651122826767511971363035914787992169355431309317525329790365772767378497035537946132061944300678727060448373955406313787052213237208258724200899571906147325518576261881684460042847218937517886872762873410778667607875185093846894530501557976966648623975533785010857494157496856148899289129069752356703529063878468551085223407544410171573304850566554079726695630224703399289762401638087930683637548497515276239949566625513106865828688897740522772921714247063463490020746493984121430909977191434498273623478187938792604798479776230724807329237027175805990558352002248477246765898118257235605522351218610295175568332333682295842988019540105881371529360332581354764125289029449961573012034464163922521811237096955115738535668680341521527906578992768345734364826055813778399611310208997092302296711432328471986310928890672883945535853066779304412145647337957232178031050588092703520835891440163070156505845091564462923164105306792335867073277609526297990569074926549485794179847875340411612692620072925251839973780931218781889371211266557902438784611590096413958363732868093309959722922684054321527766036818207175086395847812806944728952139960568713919986902856855322256491784486844764269913955059342606365390475355950828714439138624329246720303075017385325322357644311308693412957911526836657299099096664314338270894873905597469380429375873014062107484104375435440359555614466687273126862443564477521696549846196177171102693059649745266722534640949824954265812338148513508690574911939567862713563680114859850514900103968238564478208414059804808281598814375192432736615095768085652924702568444641896352560950614107679855015007204731294494784361285565371934698871563112070177764089882817639495388376239651606423242538855393415707827262941018756567943126021805545205804833220020041159860000806765225581806907013892647522627336999609356304441944988560523312498959131709721951993018765257099759516919787967077176875967538988209402989734760233475137214304521279809432853675038436504472329672013032241205773584708119158071798006105067039813180318057768984448773400684992511614684282339818680048551016488314554716166372546938264342480960156427762835570678305473268667210757886870093135920136716873143542222336566416589070305533892383216571140049856832570982149885688671288444169554932388468592481832679349674363342800214030649260889036305684693618579997964467521132641260183745942767720493742789314630891642271668914756797766949492463335058943188368176601287585640425089177966796302812572037117213583914744428727580796329919105148322117475525824092444756857234856006285414994981030542926020376165404257454892235717018612422935980741484003507710575264687337005543665534442092336311411924748579375465977431998874792817214216446812332344979486205987947295391436678350821920911634626979355505530433906587438062869671033002152241461457980969660010014330682022493788119401683624698589713155744044964419872244814891261983660611423054944295099435796627189861784195147591157878298142659381944114086141737489305069608459343678270488612265769387032740645830714926476769356186327387259541787872088273656332048021387608847548494022993872591334074248302244156282041519742497911716362642100118045660364292633682294977638554068314116336517408463537653502630709446733227426421786994905583193771586398589034058973317533839545346867889922485888174143039836040101333215854341568019089305816250720340487318729062631514683315351140186679084393263569076085065212834506243492081435512702894883917259095228846699982608284776727174332322583350335382730448120793618520819055201957746581165690406087214776734571365891589457493387848128255857934132194557088561726977082710698954699506193312944574268900036932800008504189512584597825001874032997372222658913710845172466527281149715562313866547754172613585375764331309821926088288415171393285561734711952882295884754214290124359726854282216339210341319423100674634904304226815180310534282919124810871586457655248138606409045754617881832936505786857039540054346680293881664405718798244110763219772644101073380139250340438717328384259268687745768699567897796208118998124291692554327785719576146771712105294410061788572841251183864177209297392140170812891669598941466574026145139172781446935199984647266896305711411435637608372813003594723795052778176749155300235193093559944837652825034716849241439381120352828396420163953166543612893830102086062371195735271485843758456474616915029777240959445926629884176864570489182932822738801887740729854975932129672941699392544304493973277800973483212038343329813104472797250216365688078364183547345112023012110875952776868365920284064161326027466185563538472176264407073608604055306636622806203516125268105566586982674843560049365251028559731607016870621496855932133443609152991113102597659446551409023703047841766370016985969158219675301079820646028493239290753369226594175011911619649608661631105020433824460419750989212785639862063331842365251536600548228464813701401108769885387296553553864550335988865039023950850392359411787850127246008540236139782400407460874999637213348935648813434671130176659778121391571239349340900100675814645085294970550876801933189430372970974160878210166822095372031585404578927954938024325397295283609144498237226720723665427213158452606083490059227833771923782551069396765028054023987787605879715110805087051211150948124290604011618711538676148864544215721127414008229123127432890719944975472716082435390094508244296794839101092857397012477742833910408634854519773807734794625813734742394911246678709379053059834591557600631846772714182587725341815414145455126243506291442205770075839515949424169810598035818903048052468556951635527176021511638327290061706465803542983581333621331159464229622390005054858484275661622961276804993525566562110098559915358570189424058648408196775282233352567971949886287141641823279128715617481373530194544861282115202498451897700522378017315187010151099796862290925205533414427072896842362115659432421505234230101830993902642081251432922671904808596169973464046372028566685140250093240617596756581562819000921665009270699136410066492447544742473158288181714576000873407836412855335254774851019357424759738158244326004602276222891543903547313843931967594608998077209430053795881329128703694676069703857584750964519072868894653553139593755256293741541346748810516985133226991268193443645758469513764943020387105572130442339160310486711674692698262696152096779531948105463783516084188899951785473875827334541988208398275517851100509263323958485296344949468038563307695448975893084855668613962525997195904190612453896854746997930090854767099270707806866048191074587179694576641729507986599593621099874852242114428089585502253677205233800659966822656555306719384412347608239766462352291441106014639402560642216553298992874400205164593393830844849724678786572799573478617081040991315823971835955006372845431384750769441418066929154470971769270228085480733207552927214283234954806738328656571290922862799030003203833762190244367143345697382947985993073172684891930864595741127529915170402721975639632627380465231185576706047956703784633213326728076917340340449296548625887486364153517657970907920813777461968611175634156276682003191257142427121703328893941574439928140255985815106071687084988784455105696627155922890190467143095566236031103986573868825891848325231994066598600156020020167461545380538602007041755571059380223846001917457883057995777041856644991530431825643927819903736318879920708436371045112847493132270854985352779553861225330285509668498523725561817793258654174696404691071781533699982915041953806059115705823657515296895200518904442231677242418594378314155004888581026896045638204802491638291601886531701640737771428969971363752192635624431125705256247225735327096087322906153090173867448713705860413671668568583564493345872542557101450405964398249041291865075067353899097770280136399433259269498973379469327069864501732505741868548751277335884339706635476491069439357074247257341257865400708933192254634708017097012520084562173263174103231422501949192752223404978430255371898149035204799385507953357808396891580090478825388061761682683908795916556589380225555400326308873490895817023239925813354337575591906217792321031282543807966887147847127803195387670493179018314968812535100661432625409382622020876946744191538911072273644118145660321099709336591059629693971404556634819634318465537267594662285731072816447889577146329487966216691175347336202212255755511961381618248830317810665990719965654145726359192024898959687842138258259206619118998145471381853447477218633164720470198985390098051448632483507142482934061803009062043622445240728637213111573953374449386151757449694393591544318471062862903989223919160189316413475129255700585666184162823341758927413483425338030929895428766151214541435973073897901476289985997069189258979163750356868223019358694620173631294630377795383100801162929856925572178243607242929422141203559853636172997746539930579189106550311364698745226169404488998991382079206865289440119665951680502134583392173243833795986605449662744848364340323267740111057026770771225784710869502119761554156078295617639206832504163116975118587539430196300917393539791635970094156030321108356945012955206013592849348572042309478812474820762798754391174262453132212281555171540197629802648144661615974206546784225851210654854625886983522678332101339634686153676390811290587221183864728252729221357723190334962911651634684133807836284148061476129081441185497021139174996981509907388370374609873497508599427350265274734725557073319226854877900623751091020087450110937019748731415142392573412197394980422431708521476673856957520000719776858974260411741000291981406889908409960296964874330289095393955063001130016326130847391904331821243873382111140779761006170901888597250869528146931772429989474470482026061357727243541970668521659466337513614245495303323218712593650631748185227777302313094446776780096147468486211546298508607566608707205127704454167247916187605536457793838760325037111258518686975797455894199348955138157488592731224786496343300384041619314129736612661346250234454356674718160811051310660455987245526589558591504821782522304378427679557939415842696185800165894331694538205322828055637953016066383456650241938200130309325504013587641799774824993617950061775726611013153064811575377472525017170059279547089600511780563514954911045886030161859162590949808567248894663057522060179117291292584239676054087472767463784208226752268038742184548778972202635303476089617449794353928811060737306502626671841703194677985444882160505616974092803712013829406694451793626646861811295424076840529017530746814843873403697607402115348464427690987333435978143969154789013741568792709578680304603614004029472505725261534532894327144682971913162965610359866290830380168851028132019598975145073152212136720645273667409696627035230715918522664531074617745105809049121692604843281431111360752274535645017185348321066677794919830432157308926641331884570195665691502330717589646310963322203324171725774941052700368300833107816013792091356726584311855526011106366336792560917966991741246647890025626840589380642010017252689913121694984263102495638918077704255217940463792265040300570781534969842035516452260146289539716566972774431554756339156006051839018010968038966394721244423246824173282510298326941004669597436088325299865369789180710943569311654716198536030784866514655987853184244915190659745626383990288608626201878571441420926806994801836503704702073868684580805811481715906512640843453058064816548280535748496860870700843920768751440194069553450514279822173862328540094850285462514719070499570408603183794702397032310728495772000839288712947529109921544433968703068936736188200486580958572639284250562951881524486192094030822786326610516375187481721431337193374935942732422158748010438517854448099483871207219942654216094053887937492542638569064200558092430665637547618705069794378957115879465896908188368179104892369179799035648381026835250136892325286136570561623305249635291948333026638654986529081778684149771523615112903846502232682526063580385460236740137185916494883338513603082852523254598411709276857704777696472960148757297102175002636282460782472449481957620595898957245995107596932087560699555962724813072102459426117481104238325166182679476292570277961832545503455587693312726248891702070778424795341691006638668822534233274349812244511392461223342631475239951068188851006753537996963141533288807707078400819045961374850886460019361268081302772222350879431153316864307888232041965123544832382739453938608692714432585650010065998032784246728907812262966435968921362246499888712040693174516111837351379792494422574788742293303167621725605174726346501784076648127613110911524327822362312209299195343540709255880002756784186451903886271907258503150023676151722590990185029070944748666179075366614216462139831685808395310065114225808401933109686495477757219975081869602955102221508496930013648763496097013342075931015486073985905875258436241271137568447847191127153241586584958709537164079218968509485908732800976581918806036217461895167352967204046697185614246508702529259034597455695941103841285993790752977176695875302841051821477940054892011218517238183302138112911795257991097397690811064137271654618197410421906148872869711313383370464304829801757418073291024503505890028084966642121359558772313271945519289528143226175438289696854893142785215610194781968698913628466060304223364478229744842805065228109581690934540528690809518731415097342719389853530090574512880817160836332789201457761905466977865368068402732959436803356600993713052298462284936508126745718277816216059585847628729462584539603557529336241103715357231873817795878975557705091542793064238774760844265480108886958904234041704891964660310086443163488192022916246866769587535096056619164499861443923143917295535291071200965555594178632116134945915544040242304893458779481763165202932352594151962866090019277840355410295005378281893727616011366685903579525007494761034810186669607050391150846118571669439637969204763951809846970745935924897361893647340387589431793379589488932456908213328590620718532511781375434303747345325028602006744428013609898897608164023718281965554660483199510108020598283233456517252765295619886372823741898334634135743053746694869260750131339449057890657105145733442051779968883294539105269944183383081925551071992118688756989558559378336344986564776439132028002468531800583011552840377067292710915728130865473835158626413062725887296796202290719447561154816536633553739483745743929024287398464383803006929240636404558693085613526025067677933828462044127894770870370895959867498838244158951164360432123793196362374849319068675858516455561804369163049709252363946679459644617449222367217005962811122663882890567478648639333721497020506672022572382753968219003907599248358074884637882328871855017824971504297832228638037399106254122410816882745337394231720267339329313261261937692614883284235046925186521016513435403433642330871804717510822070980017170211686953671778171773906195219647782821465106349788214835329853154468309567783879957054348657365439143317854432598013434259660497308392439071306979690263666632709279973698071123507478412987850855876303036916096469773983220153842677329883831581477594197994267748720394354509510847105487310063370567844677691686263690201410234755788429516972693385738354589133537985314950414563438438458394972607015316491420567191939865017334881916609243481351228932581774772391676483211041991614442475564760782768891372953991797602086942158826663480718677576806462536057419391589511696276007823286916544157060850646504096676028851859010504558183657342799623895384647848888523120151463158839409503183081805108534253741566203715842173348647672686883001883714905543752658817882036864487796426322511914499283616759274762654197583516808521281815361827038283429407966101774615423978581327522574837419554040634997467811201592318835938869631061032937847208483019625281768135678751701919419420947815249190786422162461253168399528973947033147434227264645549203131560186903091159592377682627228801645633995535588210238621159990900889041990149231253117172488350035339573474864196745638634437319625460218151014834300021127229280371550522311118150802382669543328292504570518773131616747896280318038270807065535501556497227962133989693414980206032865202017335140556123513971890756353354076856739012039676750574843833373238821163407526025000626462381526988150916948569673639577040185915448492963342805932489060210335884555303420018775241416434327028887576082627884574721884023867909639601239352706965540049281857817406747699258448903131703758232826176778809438526051788054580058718966884988688039276188662278275678240845282729489302678154588421066716549709249498159774936733991451828775836477043624878825727337051432506175707369272443351955456018038959651041888720168678617712673885866841053631814702344863153246687094707433090128729692628527414614690695907878138147928693017527756020192787578902774630193350182171994388569247843942538562657306718816709220641363266768228041340844421544893891821488199253871379411563122212115693359436519296579678025451400442750014233032589073563999454637876034918894300792855881837255869313326080920811023024044583263009379293245209878305419260022713950344061017175728914448019470077475327788017496356663287303962769145665162202631023265227146128159055937825742166439397034230687003971424051018433932264052964548136921038965233034189492244807835944800972950366915553082942083412305975333940955311440360971106943366084509693202155632876393603514754785738148991850315014452564668438802048772504658184835552060137335141724834935308430009421001556416942958454458570896065575282326787742006475499625900222892315007165994179898625397018342811512305086553932828108077105895281517138016777850731269007411171465934845062912323028059565701339078670907805983915135390177121598035945150377973426593574416389350325283334701971170164561376927106382357389506165371874516012403589162834690972307167769036640503057435490794637244591424808738415533947205521534511356393432229826235484879383670808164505066268346266937660788839048098591791864163450571515091358392564855253122371387875636119627430814988290268960890662043945202920944137123299504090872397083321398813702786374352074193708721887458212083432902436559995815177270031486068087267584755482284062903091873318477006304442157941573264540729147417220321250691448030881653405851470136764985945542462527389442369785611678418583518619516382690631501499339456381114073920478899363814274899817372662169677672744917765999675560210251208276723785057162316344855481269510456574013204190696961357386805938118462553240893923208731243161855417917496460853157164915143304790371765252338196258981708220564325616628717187831544021753148721101096899420580234696353351649516128768157858157506856995276883388681131589138983560814207533908688134104049299324519992584499241584899863622048027470914617571034371412857680576809556314935830043713473138872104294057040147462173146555277503295720234273420311791345616236341026954474199582556795300201620583791059610657398526986304160026672531423575043417049288204263789315346726647286404591317953223501978184265515655318717998622332491951979672067151833618468441002387670252111175420589543432239120122537494365302091746459082820957435406874587300464041116510208702898144238443962656966930263961631486463958931802683603284705965042160089355026579195307215782978011646152971024672095520988848172292743738850070096830818458387828232040313303601101998602587232580439957524116359081852779201855225136520370889858170653096435680648108429043158346149451434860373305173094986544108526381208865220096265364325341485060548839903488558926423961846337911576579012963033233327404382483254008082437825882647849731862485655785889836833402923771053249489512327755893727376858458514729848838947054360876494099257728496488508110152993619173387263357534263873805952753420500273590219477088821685043889598442269959109974946469780761223232951631055422549803615277642271379657257546051509605519572106155420839057127292231170304035287876449057311513731216996645447168570278630789611578746592199971538159136886468381148583593343588713995317397196290505122201275374392824252823362492487862776907579558364172009415769302608176998874615381551371081209445327465656807353066033340895887599476509190203983768563124492485450056060704056253023013618648657790919630249530512355773500628054115520752784503188912159254616507015855458268597891492723560945687285584869354168134290294074564879264193208553203467633173793251339163159890921701695285652727860805706845565799847223042121216152796780239668845203785201894855804458674055372220108183413953591924420672788184249694345249648992467579571474475521223380866276216727978164376196240209320392060390773689304176002828588283465136483801626601506995360704543793294986201791442334825772510031283503912702991227845012752071615519727749979556226758491706344418220971226700837419751622559118011310600946330416206110789077071641714678327266262871764399723535047294322371106246458132403980841240111910460923690272461791505280929037903089949586162141629219061977688215353927747024605410548685473088392996767505254908250135182739031938471773972237324606270145280780987515553238173696972763254602274958932066410689466170342147829005164150180336079598702295801909487615858382389149177485511251910106990773330501865777652889504215933804814841681279333032942237650065283164845559015818993239024754612370624338348766451229024301619365017774647842422617319371172564221052670062135982835588783587462744340406332279131742331882607056452448195248384195673376276079688290787060085235797129382218632163431636761004023160667945974744605073075998493425050583938922357261472268458562985974860621371545085826016515293177311424500944192202492466345886001970103386711136116880251559254163260830280328106067015345387695148947931281059358079382372328462891850913151728814929620425188416762200606129060556859534219774817154446267292157623395288888827986709244498617697196827298701175462625701846835623734836868861984466915085221978946827411288577630348174558502124068253914505979126174359606325503512919935386885322179103760684265695598709934589875474284587112418930423868853942803946673638309897452517683697891948371592415793158754680060591029284742631246586146779173105701358859590881110333205713578341366136969675331457451155002694061130106537904007982065456669371649810856876070014666065014867805458345489774849111171461166107133711431326152347116444787229377061121673489388643818705905801733528096042447962769592817142833150221577721573917575179647055365663501365890210602796066164362275913803637959430426169810567414964815757393932865500744137513880216874613923910417392784956087561509820009966755431183477874882488904120106625547301624643537338709408142339888317487877048440636855352391849450308815975523396883887020630504150028282089800808024280033454623146562070342062554558593426200094752087283432476265527425335168160938437195895816948238398413724430102290907191684046446568962531449053799796041393946486483569586984904183437303062515361192545623931748461791282845611889625620515217427930778842702175870799963494748385733907417607904383514402479026918411290936192392917129552414967397497571596696059476063805639434635972844566530465525976289901665377079418578716638965056347976502861177340821161566044748715971162680191955354603908263396168850805796555263544858803609635481678584162709078833850250057436898238762687631950685133689003268152640340315844787833133897148934606494679930488639266578630248686775804001790991936555360406436208998801242781738797846216369280036550983828334498897654398129957588295626008679500500861246530084819567142207139712958774545273470056928593182118142812711290768595465713106434487689808325359398798414902558037873249869456614517367086403452809753806088519417518293574123563983447466694161939258174751443844172205381577138245645315353166936583925205504751577298627629772048345381149153849892457145124087049665261138421415707110972836422670472701296367299962451402699130267109311251554338479657032683363402543066524445947981170557832988052666231382538675566823488995176427535042390699905759370502882375675587088547158709196941549934137322059941661897994753408137880934925420052089870976507365621232553622280474412393074563811304933314678403014237564112983615302418684297049573622291289455746164820033728078914049680722701851735942912001986422091380994244737180781677634434532149372924840506525193172884713104726782384461843494068675674063119138258834301625663260654466701816616518913760134317535889142194103769860570151643770895878653076525911099304560857796462880083961162108560972649704908138916421473110159322400184420685556303654664845179980557801469253835187427727712890065453205857467103691159511568903813441723315936202250282689103443484485337936373067075478049009839660502027729573873997751152936431246122461707487307263196854089042589539178182638477360394798333867146688294568703225281171243141550241846657354214563172740394092341068440599856003034452619919380104890416416968515914457403699371482361348090384334635834511847350648211992221581159323236220729449934288852181120043883364699593586718735354421699429074261251097009081453762117140574600110848267842299688270588111481948096077303834882066726766183210658681106949276416791861628760647228529038772949136190289943418203398889622558329146025111472481531201895058133639375693776025169707978443826695824772634604587779062083416977229649376597925766275681895019038756499446335581616449839494850158656309470296124354251444029892978602335267052494708927250086815271538445910577442880545227937630855329958257576594809998220709727802958586262662720595844176195677003909925273323390743191024441727108422600016944930708935535993289552415404273068925435516267795698252324263022859892840037713130970155224535329608728655562904350810797269697411244774878331521775850670116927186160993794739365799517761582527217505150673726693040389311787119068772827174812224803840646862797502526876729214808736147891575315446838723172991284461564943148949643084100775098678590043844593110428128693377988540347645807860724977346234053076804893013800204934202680192119057967549062122571002363668364110553966341770313472872580798579714123282728715900649834304255972060989527685005922538578490655952102389377587690136622952654886436576058369676813305347135662345971691637859152506498111764286772673553197940101719035266400142387618378024371709653030307338463651677000455837699183332690273584498007842255081606095480640583375647767792196427220629539191400966363443164028627118633527595155410213764627875681943001308785009164064034448571306856807764016950472907139033763584080149321148215361874830885463742594470596938499101022136054523330474585396789946933861707454113146139145992293759972566956209694592583178929922889928314259787838448138052087978905141832076683843820091272904070335832082437090006657582756693125053215354884190109494735986271323992071107259457841523885621205212219482995633226525048472196082710265363663477811601924838573181420527457481530249409601890290415136607388166491750080903812984805909982043687836596716531306839953692686530841470466848945807942076169061833116800905559719532779114422331207891061650386631005989786831502260748396615734312841045013084873959033791521904423712174859592043956452145851536167797601787207997347887422419658009479133341669547158844627778242938739822142437825066829468244579218895741015099032379363289116083942520032503471028743983780954269612905186556187798508206699247953289580042811000299319564713992640262983917584895834256482680709358510262891223750612105553539982603694200732396444472308902842909743460491966422569295058803344200022894293999555743989560863751799193621513504823194239606253513151894424960463630428296858811877378133306593664850595631821711396996914310026916630458068962462482058627920341142257985047908800042285961826625126115747012681848804386558786220376039703738279605291550917135950950462051117361147967651124966731873870588034253016178351556243641511207679917064146618776874849255499971121596489512432172334839163179298780166096547022764591127423929175705840453103599864899535813446980699031174352964077148145184502052683680623479063157055799257214445566424790252803506538432910289837625285706054361724747019661649829013629919010181236964946270084601377331335693493778812595809552388049744733132425443467931745068461133378287128121697489966862431721190847860255173002848008239312639320171268212395203806104120444616959788834762456794335893260645777804046969295034713248842844672332327981193769592990263078451807687227747710432107521714195520690749763168759579005938833096028829553924624486684604240851684267733368325187468182615980023646446186736993035624927785214869409045284728845904935366188506419367556811501453699789599427262164815654215705921176267534891702952984751745915484584550520964299439276597729836635697734771093360270152259063253023239302638060247701228124162422490546913423688250928306785871797955386036049117949310105647767506845992947706661601983698499168865833081393231180637493988447480530768942573745385488542315762391471344579108729295704776108369362435823415161735289123144453759131146636978629860023750790873099143625430171130596191737074260824199013047368460102852218035140323891301753210217343634569415804426139459303566760217678313166935285924023224360402708498316987245636662770365233047732325870648377449743059758500479882269716307458100112234375030674351808743792667078235564416090726523122581125995384731299628450756468284995897999745928295043910627113906933519187291032920814390384319273491811044720322334682312815318435970333535332518626381942912275377845725924424858760705667939436926143678380141343984259856823837893030752154991555076573731539112937974595153903559197067401981025529885894176214987201230676432263616761844469970173094738658645846191896310175478661869532542414309105647598304206424523287186063366517202836129375322951877788163135218016229216906829447834518249738361575541431793975753416746279752616049929424517531076399955318447348719665032853163338640878857087964616842541082346925731535126296029470500262455438972122923591287581556663169384520540297371356946734959120355676742765152012278134742457769533195513493765149327753644692719004441945815555608755822375387176779059192211490510576394675054976367304988766418098778015479156803074198352441479164756606069622547804816173542910797185074413198574773745856449338706063573655461954535354025892163181659938909509720840422450271338211355282170312522649411154634480887122044304798342393669694783680960729256769600560538229129558306522782854202309034036731393464456379843746026201291415721822398064656236320942746739563465231713293962164088438675569278677091743980847229057606398477172844034914112340128047520909534763528134574668545694540516075304537357395326321266698769878399768986723737891635863505451955606766324651908345231758508216255917302204544280089728716859000768676639672290693157413283419210500863927076237513053439794312894338308558112278780804473814600512928625577847252931512763006945383904954657135952447894760427887929339743756168861495342578854936392429069721213416315283327415755987396665669040426948757265173319188589484951030579866642783248045227851297516101275435604274860942024548963633542856405989175109810499489515648652713902079857571854678725364384168302975900977103482245869282368808160293051813163004692452018008516592485341742337318889933952419255983704672275674264588403246290957685504788238522729934725745963518344275013604095877665409969048772082669846426025407790209013324448040684833215202562025915257056868390588987886466143925454495029986745015188319580045659427879438477906754521474047315842203241597954115379367597962557039017575073635654157808560798459693864617384594177034781895466214066396258961502996681375409657464030318058903449959811964263874450313667658287470108555744328602738496852821233789223935759517309524200162266843672930712305024395390178756468073569205348230820740636011606652445209475940627351117240456024105702390641902945369160357484298138239943327256047478466509691074096353400089752330538067397629582829121270787051307900901736222710039717901892981857978955952838429384131497220709590708602015116408040384795447630014075041936693205498751709113380802319684328540567932179404362346815608757855557705131993371987593241558519541452152983718024535703465139928938990066399770363490201411432083662181669556765270456420668078495818126654174527640687956357455551760143183888193994867934355906977520813035616363748261801098073714537943554137842701519515886649752332771558925510696677274218441888918810842717608742846385835405979950376631966937614579692766813327168437918732177561627772858725523148733775110840561319155277075582586605114824828485110239701670675065748981902619351917835651669788155621519984160172601712057066939581840986516430386886734374442328622324506228739119275296807731622258806886579136587206216510678575979093012975225957416906626352754928017858734429088975166820988978324339908499206957558985749727811758757547752548185099600576145395308885672668233212167692015259044709826167854624506664896277084990877318774308182120877901721269525669904853272278826143901017022500384584637445045018160255671688556625782533546697534753097734047419774565615955413197747899979463460300341185915469109068129466616678119720318436952778138112723704450234842530678326690919583488804705132115902913269653236821730852979686461215546077271336701415063560426976510021733549188877105021139552746884447699232764769450000518161452396639151348292388749905806965352738950219738742249772526348990770452659662945522415242463306184945056661045364015516061373754542448091770730314558166136884751696351590627432023974432248924101508995021370607859467940911366453167501800010121051445456550472356649735648471551092457739358291084008541408306537768089717721931989601670392275597903388093111610093689742080344511081382851598345827013262740232493612476946002266066886845521315057655064057826522661254652671025726793817265651164664684317887531511218494848869750717908752033615249422917026574366402504286749838714884168439920197598997461994109876303847598188842700588483940516241213446512006341502160349099923188727631115053739372558509890633224804440872397001279863745172362137826677242142248306239629805419863136811249352739893252899825773200565338234941937596028777171583341238791759408312826793564392505149085376724122096174774847717616448798872748603289379942560205273273700970185117066096237122029421662600125030359743415638182188947627151330201454046353925186342640557982110051246337767023768893256439445280928411606012292387335904750819040961550835696430648889478242803567928160410939263535551194990458181963049921140690436337560253185310284835793755859984688288933875867222582746757423571202713649940607873660404376281270669668108992583083509304629886452699135031753152366997936389595911230615621092257875053527065632059387890455003482538410603230857420830320522371483740360284245288307351781915420005058356701241592121782722213598528996776547476941318630725872773766358201688998623979958263005026316296133978996553943005881468885029402321511197491857400582912881560453069809429610426380647018894532598975940983915577000427881087486949257144963761633862935239636417250215755433282436064267447212887099566312999401672374368025997553025428145498980355883577910000994408459550518779864601343074861242626361197939387579859590821150920472250297676603283566834560526913388675669713459190997798499256718286863671119578250510805195454464740721536933460845745189092358987705370177577484533128589358169817766768327545877362702229138898577737180418367010390374530141694209525980674715899464575856197684041495612269114018990323828856044033796577990265705238519836667892146577578959050685906869213919771873653501667226230137802123397552855646996052582307769747088556205950002899626910031200603007639052795948410333349499371017902892077488492583560992837064899093045092224742216592611020539584284369480567476809118123601888913520825826101082745714173304336802973715639689158928971245256572204123300018191108841165563432933342359740913812750469171992425741983916787387547413908768893283469912962960794707785153134340064556609638244733259474859713032667130963974078635872911616712041240359407325387913835873471176452550335420716674049654207286617948190952386614703513482882277584122691367963367218963288865739371391315134861298502332418098332415462326899299568350278279719757127660038139133854329619947142452469373230804705291792860476634995016196755841166002905302573052000475655127970484373279093957669693055765940263213681517583575035692219807677544996631427259026048459156059340126403176102473240125943199884359659848838229888542736955073854143813755870496711299778789702522908478497077080378233561254679278837010277353516228909150738148564450511120952142697183015703644475210233388655190537999803840673983246605544767498270320919636382909728484818356593127338052620898662011486773671370445379269737709527937289234571541610714187469875394262907137660877170281372035508329691532801430476981200693070426625050920034893001635982758665338178486124310991144058206429885555296506510362941252987823232351561406740497313090764785477739954939952259580370553318542401714203062047659196959056374593678955483402262393042032825321329218694177656171384077315284763816101072326136278411675769050548395613516632996610916903043620684122083660976982958774422152835632018495739106793417686278121165022088457234682482482466787505109755159254439186811876885990675241673280857192540752372045126965113675270521331972337151064747879448635631519764872964934936194119560239530538413670055490119798979235756512749854690758736861261194104491614612400559444786887616233985951506876279461321894399441169168986444056502889048564132276704256626242523606097317106109535100081184750305361338546002223812893208757486919660774812602837993984856463370386878391621733816810486028434597896986829762407716595674678680157125497989464579083999778161197635156018798882482196989350430015123259895593350931725410895286253510661218471292638204140252606842491815400771316900251309710195795943693127996916043476505491192801560253869643175377984120025264908764109895432555078750319299968400284300363824337136401450416278906113282727965765098168000136825722886805973644685228224962761139075404245885392258578606482369682577793446779384196087446297485231580835436000043935990323980090159242905201214391647349596176724326348270062408452546888729262315629982657121288118902056395455965111658344613423290166278666191629202662460979926402381727200579768262671023301194115236115000412485420646070718814536360802859732496787706521868870180427703592411695507203325539023128415175973880286070994117482463937848869807915633527636376862472905832326805561556095220778654876983708225393144195988176230561070920791257680967166050085787535722827673901248148281095617942160556760369862385775274664477527614779072147832222775874184962066570542987920790386546011009711679870783260669188954706337112211803686990054481736506625465423255735002606672241851317877498757926262936885908840974551345537545204310895525637950100955394592932015958918044818862684739641752951708221188783293892069500057589852323857843704335011505368204407029330550468494947304345715248238798452870203411977523584783098005048266673514460904655291945265055669134667725361482337268789180977066916879905110545295314163566242908874644367490527500705698811687550954837527828812480646255241974612335653116359116948712604053851840283155534483726907213710921006110004940551829108293406957935707127153081407712266173894623651691917237890007621500397661786897997503523947437894198769737772459235251061956669236321469854779671085066724618425273598049848193532984772264481542316873216736268634276500005497118304024118141232757198656590530984492586278214620161089117290117991293449194387621380243494972362578792444096374349930047753507123650380626269372589431080197603227635571546265493114667922575437542851855061261398013381215056120611491780827480574115760355649455667206246870964818656538645748329137190510531136653867274871713434217554196759441496932569514189542935416805009012169281148720692786259214596748135805935496921568681951578207185182873959052699993557094381729819744322792318836128819462431650372022650368321980046773372493675611881848404947549296280852235426825888774983051869856186443535975076541186479921150101199694692235584758403669433128704489422292864171384940062570073606951779742218071059555338878523327695629668316929995673799413931801452693925985223881139847015841671673077825684984189948205328818969486844491226245017659514740127236288325780205300896335354079432339955697161108081021831980488290375584024261680975933547704649997847412521064372702808034851596944491589735935846936659417819632582050549935888879842395584494415545527170430348637263191552086797582275493090554230823826159989506555119871396665223994874243542121017320652484391395613935468504716045638647555170483855539247565791118212820192083012192421474963233349844964218959811006626356398584370330921556466128464679193811250286552928160878532858363814589397177436489754408353262022244424055926527407598555312448786743208862517620053625502553704443932842549972613919143025221812943274632742638826980915317717752887889587365431272103596942061112256775031647987369415811544691490708566841331925439542986716750481032629221431324122646922912444132987123010936327272004181650216099238290695891830768556011414149163827417338800913862512666535816597752303817901779392832571597650779388326818775230630625578734324553900083670836977636788266149280579463458531747629552421978334106980142015367626996190916680283964232574334424674517391988705440847615452867786343933268068291252763796323469667479443887250165476811196834859007753571747604103078818086641153524049960097218052180140231081105708457646350544042605884814342193506650612034469545393336892211712739379597643358652427906158102048687756141217585833124419343618882479518887088884638491929819903020847861467538601913688119925183474143480315827634628409877169476942921131612027853724509069960648329796953875007862156543697586925218110894617682270564087487755301069451061451667702634835784983554843244022454571394340588246902001251722535440329442778009251093174165714131504762013128006484054809541295817200943007667668497023946338058767881620749436920938218318600110543519863647923138435626192910961250879805367982342055034928053979060407471550918545053656295169870841459827736550934486566757725873802382607599657296847386488297297877465586811545064898482647453671298243186432020364940531462660843187682790252137848564810987651432040137283684185426179395864522008666821238658540069918276104194789766006463502458214737259371970948444909346276573033444957377973468994737508997039175618148644381621312506028444582106552848353573163826741895780752218305234362493620036830746210921060002986999891936028052642330101750309044508263320639173519123516361637561949383255864218672780404357935051993001936366470278558685211557261230543743669509120181238236963388278022471715754680547448903399743648871201708645365763113579532201993660544228608271847064446026169525013081415518369921877398871568275091319478319059926946610729590103047104688880846816790636084921220522294798479295321389450642837709905530983923407465155430740915996267317327699351821594935890933784522954146268576078283320567937703279535579264571434858481575875146481659480688235431682931675153951238351604663000019887849081677839384057293691261875444934795505777620553366377185296856733246950099863744737435313937136714404973155564126326697469712724979181346205520378179386887939086235344110374743180061512574666446996498861238544220671836139753462778407048738641666112323000667508404760461682418149916982373550258507114635976997193094941908161888483345587140478974783939095469056453175312178530096020994909061997215862027059915689706379697196066988358977568755641164369197152344332796982108096677188454034886133596243539354612137985119014009125486432893333741793539565354084704684500724053900118556280563650615369702690018918034851048112232032808417261064747259177120739129668924648891975557015155990817623656271042323347678341296049544531436370469157161255674753323448761125192738548759886336121912401665641600274363485433360958772880816036589788855473183351879304656856589784997508140633415812724063757931755220092499187660491895270705278307335696060751967581951761560044950337274127829608579467337811428976546122627992664849629708059799076955149934683632005493481229570569429585046807091186471047731762261787939213100517494334789868486356329922456403282602482639648055904499564784113052859336404739478032636445296730227914761798423393619599378476787470828110648389558229222721007284419819745874336160582269071590334964189938976026513270836235185279619721116362134539629536297137250301541339106017442158874428146120707161686089711277018216982275583219444856707418960740648481286803946453290858178343225779184720794357233957242977996532528511509944283438036149710599366352795039450674336970236310649664788605889746265693938815385119376592250516488066906968597083688290004220558290286433637142486584118013580733163742286382291544371920832906728988100961057745029974953546654263354036034445795108283132742902992351598797446867670410838939237782879004407043075894266642965657136871231713646377439060014850226016654576748588260709435060521804281419223130909516001606536077000957697020697350937951209196687045849228625677461726189848793438914673888892025351100873947161332020922930459921123589487467908849429908656846074222953937507355356402586523270388492781635913722743561133961817182010044337132792371172647694099802971025246278974914970461070776500970719092659932356086415093049051556122835407778871995587372322010789817704570429937711908851777578721249470227337113063177683955888692999193845737048965131962429608785981474587074620414671365698692670785330413825895105655698799800285478887361078503629449561355295799226998262664858828088151134692390711095237897541927183170422898511607294185425283484043493747963114146882819189997468906679770017063578608436827171084416545154896940608024339694160908346330057395426782226242444092000180727260457056202438255787045769531273919239460961994402971790233917193265743597806407356406981411178648733698165753698539472133034186852456072128364945823892256619015251248447691082477977057816096195213394564063121635079692288841253854967426241931381558586759243552031925942706748905848986988800910302596047939123802863136949394239018901811221708141947084709438858922195119908775028629117845737270565354458854840979792545904502894110720791286370774772677344555425011466996690002572447520591879547167423038388267230043535915249555242357248433342477680859526366700944562176848615622915318755669907478049049496316924859787740613421643151148981637738317397309536809065205660087615472663478183648975159142979439401278823583432875425983250673670577547050273421619750234476865569077160917521459206794580361855449726695590572934526398872527973453658700082750732277309295734124518159130687942192395084450456014432440584040532683248451267632302055544271290107641293081822323700266580194170566072637561671668504657547138197647707860907216671907580902090171030755259083713910370184803806069437838335801254533262315724534996911964306980155898974174390920681477433675053289741355228976810178084747524126044095386635929304833856773749499819739423575154889488171368240354489492193122371453114047974144457750773398974397514484857405399766642662711750556789671564301945058223908553772111296662856480921136006519873825742327868152499237473253256289507834721618355381498596028714913711188179496508887025424688188422932937343046343169291506319614470740456706970590678472576962384467395348329069753528888051016442507207510456481384837087312273556262633508442482424542188266060863613680659588047730532827669607763378442164739216448727489132131643982761480031825719196257600851290628070013449640691230887535983529966549671199327985256662820002349505257054304956525627908236023050482081198753579011623931404024240043506689703731774037384567683897341047619916201065095784056916609120355717806799928848877921879670715394734217744914543939162247829324393737620445699517816685720896442684179528204283287290297298472250007366484673905469083530135831202923411490886903438683667447926986023676845855031299083446189782217494826461911508455469833992818414534139319412472561687807891282405216786507413898929108458468227853422844442040803294516956800198908093780193726067658587871883439659676894590219667036899206201332880532743724035840590118072741249191170401042350381580887094545731978886855436839327345520995720150617645941471291070469855743607366368638781895717116306392137426570331249216219982515981548606506231337149308072533817962784106115162944643580177327161279066174572311695371473663667027325559726886014742369520694089259709097903112029900639897832040111970702700095136409899877423538026156847376278173435535203200876907012185879934812226386867894321620682091588044594638097369154353533097522522480172809947639955134499273480691667211362501285745333600949728354330185933678636174285053821868916261532408617601901911075607165382900531012520204196687319388333239746835579137234922650957918139753421056997791107281328843193712771878782678913709417865305090816369279020755147464434689198829798354748802824958360836361772735186730955491533145962585821218318033026708474634274509506208835923841132766871569957076586302800515087074715093110210277077088834252469907190851603174258386405746349636285091700548141978254769768438216403199997827981424043004932947396467475656967144371380068519332026480962899858162976236886238749434280094627702901584227562016940996023093542065395836459282910490828184313310963945419602635748089469940596408125628755402046965452760696307621006573704825198739269936400049699551920615745521638655195427119545556034080201694120330136913656050238622131739769454733019902144912793450282301256232241799298427443193396936117257003945981683719539386045868200726766272457442884246556809059742600859149434737296328898628016467276007325737466218759953482412313962729962085578134392391918051446260959779765666525901968190132289806613995215156019048143806625978483843416833254495593231174905104170501662426439633807403967375061713603972124288674486195245032520801891823275952355969763245626377581332423862540901141380095384322604890447979340879730889130280341371009553048648579788875668377970800105747878922228033608761539632358577989914623828039826837641131773634998614201291965953194446330611809008236468021943686335445760494150087262822367269114085778344997159330241105319366083854188987280992198003251085882635173671444999554995134378599536469835403641787991063573549825866153180377558203959962054754961146966629331334476184903986485718734011731185632027091243200061261781751584344249281824333657589946632272044336017301990831292909292551591939309519093130926818662314564468116258227611218641971185556766941192274808060360091123231863704479169337431300754412524672501975769050013114568122488474086649047347656297436385681259354910657025579299902566312991826621710344654673742162495847289668759658534881966322807381540055863688315439189918139709804679206649261940797255237460490239893481741041172339721901119642241579413546586360575860899952006302870773943727943936094360450206878842019360072759996800566823017793714845296155696071224440181721049686526447941726185406609040515083234517033869692496666900755315884730914338866317428294754643510762920327669080561823738015939831665091576664587838917087720074827200559072806615684903712462326478151840869303982088932325399673339580289934887297614562456375441577650491317723299334634977524897897372683836168475649388410554052685834214150406416005323403842701482586535025210125598660619147681664125563692243570754196090495369487649791697762220730617208449549932799768344855809541045967028685385295920376453438822677597095040849439964762205289733895061838853805101742186807614463444743788733895567244955620694438898630895563525347178361253413754795877900291272992885224939215353292642280500584472993360866371849595057792468341372408233109139308256020949196569570061472525647041554471472661935651804121668681435197109021024719234902694924971236164206304695111918137069861314754932876062830010526175170811615708748403060240499645332293968656118890643256685007103098328280511615400069698041320278296310814396619354108052614161149694633487949159009080740422481756213941683377392626650273668763486816295011295838184883613043136969953903626264030831987528273368102249308360362915035893895020150882633165679493757096787886337618885539441006356577237195446768279513197333206456309660152794274410533339684698983080599634658161944803244484130830580687790511028437975430670957125855686528054844303540253108453180061333022235227491290339296721041058278187535559834704847167104889267741091369362623306094462221824839643188793187006697547839537182211081173894730203577258637774618002576251603726631093119558575783374015400840152643756284824243144757576856369024484349845426052389363906134201569792641978520366556202922837618947010177570935253581611162244484667877511116836872543853876095201139256131043706940610216696077531141779236644657021755127697600885455768267206603773831266898786051187448463832647298807111910219294879570724979484901336017258873733541275315967782418127027642527418001067622929144302920663182232926913494871689357073776894786843113049527785249950615528838938732451862061243082746442475720763686509080743085013829569584228417349709359252416332765375537897670416576700694547345133027488124072796186220801765951068414931591544585039781419331104693456379810078745138705841197904382187565498921424425709616375209067423445220592433084713835110761360079658146704749648686485689425764089384511336690648422802364410554471349795022378415258043622861803007132969018848246957150500290701501496264280935738739310286118322848737425636721407909482129937127064500647535330375911723214079469178034929719367137645432441862281892204185588506135693307943347579931800512290904558127490543321888876009204722845190338026762990269909691724204065323420730836834614300032887554365683104229596957995102709408776186011356440367204753433120593795288276849918991198601894069901424677727084362660521656447789126709111005253573470000979260516078197420245485337271627349806507461831952814440135429776167096627404526863334240518907688083873880487267082915513787322633163547016267738765970950844596361974335142932880382037757955045348438973937951725293351544716659130298251003408532363314722229669952571344527358971563440404322252050498848681833644002672367167491412792697931149557003122620884384152973931164698462790734232186221679512445240240784597651246029086678971898272500503886752675124039441772839767916506221347977772777786803225778068772166801672111603718336673341469876054170462682783241686971877270297341512208527419826128049411874409923773473391699552888594882487472876999571057003672196819204618040368829817981529480064716193110953385027118734911768746156628629121750631822920401611879644211053369192904084274301147161587192486690775982317646691651301097624395092585361589253231941847389347485670472632317033755875494037778666331378290913869553434516184118047841477628380468218995958197348131060703439883229255394731549930642829439781774360433634580578557025495415093976529214690646886694088391885663321602841508329137481936269381145174961741982490913048757113291074256749479697363361727291763637848280733793063607987769701299954247269231200039261616996133376817847470089776991895262269659340347612727635151858427639133609148098203047952820547603237008626420700855456418790242011553198772837404989254110315019619672911560822669159332989851491678745109107205727448999491588230578340337667343847856707936684896039331011269424065752483634742104283936274297402435149496822672538448957142445275414645004867904239764650221852177170695753801348486268698317716390045928672595214225323300501089894034960786390362644075745298007611238167466850435472128619333313785967984309927511766915688921201812907710229543091520310545131486588728172838786737846763708976504338128319153404037819958443778265717484094672952642922505839659121780767641435955026862291666753221187970923259330000861209420163830662678853394675822372224918357398487758409649966705560761109660243474477006683088167097205273725571159834289566050475574716406721882959169454686813598799419438463095186357386219710048368323973252643661611111071502182987683179687733031147737759717216380146895926173080914409480386751283411475740141358916987079347431436937220121441662415448756212684639395868275397581302167790618110080342401972832844641585124502407336010864823972790418999348250260478188515543346047389647562798297795249279946767011492832439448481865466101348890287903771084859644580115603868239703807319725159643600230490828518186135536086668812133198487178018399223924753899007262581073490864443473591486114136355527189056969844600365522409783031848459455467674314880511314273673432640436995385562703941966085564051634594262259252347903408174859295978655484230135799991516350160473831955247366503563729225406676787649459613083401096631542739234721256528849056273021500957577396412159109252084151878903738253286031645879006419031579467605189188557376968603687323404313816581659900213616812379274791684065934133376613779724896378217485989971956040698392046196241589918269969830343797145131640295041375131263255928070161077103919659558268523328101214696284249085479261507830811524305246314130071859964299286214248147593097540170416736524556395095854483290908086986829533356883916463396451779789734256797002903468416851379454717870780036273174827031759960698410253064129222070920702562804289846145682106344424274203582523222663612364816283824982022207441512767569994989960203197028841684513708058904121579737788576786405192679733619742328236425500337119921801069287075316656009579411756563754117818782506753982819368114146877648149405668545502450713407496682287949053093159736102130086710909776620199781141161620554195590890928291173241365593702523272020381695832322043500607934374154111540146256388210132638212300993317016189033010699860572639311361885420837915764064187304241621357205644510504090771406329894067710597060481280958581224783514527557972029455085412681080849247496037369240397483569995662114555660699823536626145675057242030564057815644537221312515264897329004961104319591045910450134719093800452928518865555091750771202404229369450313375411901391500570473283650563043066733682362748604059199332041359282059272097552432435952605452899784973041613589019933140189931772695280234548843708986391081215823697176152800190380686699561404076459918253371996759029217662201931846975388138543972822197614659176870595097985018613575683871462100030772399959842945519555722131281478362225341227282389961967859439482861660661914680778949210952109103680181905781611605863996079647264743158128550202647180901037394771711738223627870197909981251150635827044414202480843030863053263256663747323409152050082535938369128898279465349107597288909901089458750335611959268045748582584585526728590353721237415656999900998823157131744884347025058337404765115480840110391820776161893573805233560802229495177924930915505311881387356198520676872780017960708031085174480046473451898675919175850336365840192470399512675445634058759596871079048069402638266326013527926928327042189936794432050014619483065450192178303514827436534374144503932248800762124713465345976564033887238893272336829393934258225763465032648413525432572890341122744907384144921227914887047453250794932370908201444725246062378366957336346574408822796719759540798589438755614117857981266191236838849688496812430253026449589042098386809026324600689910551661366637065137947985770983235208104065806876409988284175057125704084895988153255165082996871273301583393391934975181502130068873410564645800086107717344959241928658649671907463254974439895999872142171302541987849417537972037992767568536454379441362127721691287471794692451780122010051228811666162667937530752062089113483891803288922839879433702945851532481018640041547727594878009487828940609611040307858997828935846494466439900954898212369618684355381726814799997272047506893340576452095607753080346474001544306005906346078100358984915762943898076599893902874583731083824440951409698781809967473518644485340645585487998417816609449929694385496983429617581621971999732837699651786916318487274432430881134816003958149989962406650529088564736640608240929967013399985431598335130939900034437299195531587926326955179400658411163675382668412468335808132208955266003464231812588247192387277994091792839179981532620476441922611968140696144321012306434524516855429743847767460144603511966285170046272467942405915671410313471970292721601176852019966677886738817134712831316499742492755132372369449778778888834898251150088640851040984465149241696467257619290700425564915067556229543834282731676402859669035684061024665061620678666213389027643662983843284155557954086233861736909476623711691600571596884183600935584396541665831724595114433178092955145777246154627379052676659347490248175401095931779976689618821008287744904773232850069305153349943581677688958837727997228196523907755370452872359306980585687241123487660173418179391466821857069450581815427559019175299624249219112002410871615107690086680623668248023892283195201030781180525922011098400842227797454412483649521919002293817862638234278257442841503053500016370565421389257476641930420976583201985847733985157664240448436071259117989613632771637604840063713304458369573681279321926328690630050458941025489683499292807451178803789903285630214428600305607862086771676065611999952429772622987316549974642877233542997536734920188859779740529548479659374300685568649450327559088023170629377706553333881606408133923870563321019384197568408162507216206313379677362200369865182943391385705768700531798101044539083356152293302529560032879910396789406831584846188590650075914660424526144947627205716281953398165242711340373275785444420119666810286382211268440514693863442841588596356087098263879541030754911969948132794899123204860191127450837923251735285954066400026414682173086599194243974790236883718910335690805346284513407680671533740574717103791613328589766935498926221328393880642751273886996464701594274231270666363929018359505304968526231017314057718768455394725320393084602646026717119042596776413967757961693690948694080795901571957751010710761619553104820511599251663989247213180458709720647396681916586988149521694545057842514482906025442574434234777642116671062165525435485865766832896669373780798245282314866146186525454164459566945354467903043412876055179672138274031223077866044260020346322824702909571101350536721942348709805610394211309839924729846958578590862965286638977131483092815292984346811879635410560750242770284863940463148287148229507763870787159502189918371541737224493033151108896698020415908631645038398633955288469219167121723468867768151903039649100620893338363829496862835606795183409781472745139924243149414739378561052157060010578795095002201288683782043634429858096769085663936232482754430299055316581829358398117733273076957302020626510702390968795364194872732378906530806743822912031030047361927011289789990643830647247378509208734428218690801602027054219544489691949292769596239606132464220179426499727129569629678529298439958277213499664177397602530046100749717668033374263173355815957572517425967896576152183868286350475694575860505704222129833170301072258730917463914665764117517415779637982953231973963700561905920979506373523375457488782522175809784843218063809864331473356882444451111067721941279934786322944861054733803214298933009061554259299138548980213561433613278905779588340324636919207405527127801468453015467979953448379961375538683557518903984773718031982547776033093147124383636706860054518261782929290373154286500765287662603675066659840051589119698385971291491469280186370966149147538995562041918446259836645932857668382433453249035759143033798698560710232516562547301014276480779504478316100919384512013258144268991036566075624570953036365388163164556090101122633455573121953277083612023348833094519959233248194826152385265226143729813776631158241343733597848346035445097637037157810459293106511293740602662656343461698669241096198433640209948869477953131527334240599344785481637069577604972634057824698727692934389440900363856782863603700125726843815813492443622574448822997834066829147676566418441138361794077907607620775044654471436161187912383546187064343176383917409428212183517705625233736183356710509735038733959554017655883702895689117267513554369421109290898773620730618611535263151036632743249500495624968278020625642131224937468232109035322455538654527791829534076281237977098397838321349156182106124997906013420538629406771993166393424086319350134978673054176380607735034925309101015008320577437301363242328955511049852393176817988773313909005796343245901434391607251025706669086782628251431209088171728399042033451264944707009565778943797923760397535379351481785995196675910291717830697539457051190645339955570649333142672236569276713997597823101061324439751679966443922700288007226409033630119110301800246522316021081053305756536574380530755823585905217098952788068763783517073290513980604777645318765087199718435443136552997623596862640269325616499147885537574427477565616249493454600743040184731618491747742326363115006613751518410058062011131576139649999060120047070851771733385324623479440497039390178817456443750078662669669348477645896416142138211833801979609067479391269495573491659088773776351463285866504909797761079138826654393706996410195781247712515022699427930767608632480348911773118907883996406756111740571921173937218706865327686388018091074345178419254846203375349271743801193129809480576030748618001107887060268794940046320959418647970220458083301861063652169768837847395320933580023955606553392247682748672146570239892128459229732094467990268380016845893079740226380312180521135196490002009915721203738402910646055294275141414711907050796427319885387567910221183666506008875601121566529234632998780230030147368445712173807731985153617889909649285187382775649979258691686648785067729615835840316446391321578700050078767833135527834338352108714890055738376919461028411846089308882281247099880535130372358455861304010025060340024455654476122440433984388752773404850064810127446924297038466201281784009276206764636919507818312621807860212537679473399054900323159274137627393469820715234352823657403738051174278282916723964316442652672626265864432974095443435348211883715081843942984400158377112684476189362422770281802957302442257080723820569792209427845793744245216522456609175978507633366330008752396345247744265433919315630780241770976571191004939739430435695871459411038720671887902667995232557720062911042393843045057481599972011545144554976624112868522132342383105733571624870147015630538830727108536604153858378049483541584652007999760516003581651899852411847635951841357086802303344578277614144787589369548759108816187957168315453794724631941029521233646904593242920387781116003399237483223265442868492388862857917207434322833505354455387586640182159022823636492898423262062681634980366801545393740806670530380825199727153849656921418258546802401758385286276977174499116094510299807825790968752192472588890556997652175913799031624723578641350834012771255317284234310664181901216750705021954231511818965353736751982135778380627541963400795087482390640989062908003847925505674618506148908535471734177941881362612444896561530087176792120315711742218174226345579108996177065283473380659898343365387428000907490426122959929829177610920239584749443763892000769124298068680884525286962657376986020836963117982791983860799856978362054451218521806073905761435796224834418552999313134098125586153773579560938294747519616799547438419878931499037369966469983433031148759300825301174217402322762999841637662809859689179672961325773246398528444746948593797716028676949942016833121944495371289761769296327096103389904056047620557284996402277347922325609744940965073112975766270290106851207471715551539940965007575840761355637556223545916293649217734732234938673794433806727444114977635593110674798560576618278796018462634915421927588795742957411637244300144896522675538108313028622516621939101358664353485315256553039406540603210930356948901025881834389093365121265629355903419297024878264947448605579712641288267994349305082332449301660730582482707377730878893859385066539652511298064161918556621470514393601560631091392534401852566936669557533316387535379530266851222121505023574874926618475565796146698807656597771314455999113550998211912745146173133727571481671181977254463890429822297191534554808064652282546274762523598356683353162677988700869879798287185104463092816013498513378544611399976707440199943738466633992830513458961655467323022893013153671509253075790486948263433143667672214641108902886652039835227769748517597620363007213722601963840942317433984115044921966566468467204075579853673603635704455349855071450946390961696450458263176712341196338891339750707705553455519685812200106484802121313648284261755340423558316685377703265862173740309743056066692222289845607969892641828422543738793414577554482716949660393783842958779773499952430735848148835129101714543681262536887563772265514568490230102081092482603426056980833506402525223225489643900411748456044016765151786923208815902160188929580018724802452739282320506230415670056026444305933329917908453020558432502834867897996563716992131097553261221427689762181609090921753747887916044280046999632165652805982082523883359095200052524170135268264879002038876870149226371261230413482724953059353554917445216794939148523290120970920607956002373947976896430115475662098228778459863077421329427716238628234890365380314306898473942279714904205744166003219196811139838455608193792987637827062899028785207704551210423538313980287642735362902132835786613138497347170625131811274522641976843117128109497614203979877479335354295346595150961646027376557537133186600038583976001579985172102317451084053489817370886127933925446945610958774617161633975709011644146643202856368777486245014553643081800773283733130853551234876945507322184527290820227316334155038403977238263907769382877842430337046341359704836595493783705955360983227914522184445222963595394701173716920525289671947613346943496252124800549712104326944800902024451418477606794656185701610541023966144252785918104146283012254489515474272082288414409571519541835265391045277684103393019059448070334691880500597676987649454477878839667691716692233434749341078476948588270508667661798618054549838194844968241854505102474665060930754574893593400471240613001889555986223673114129676494280334306487384859375982864444584576699491393528054598272853575933723574918393958679036877612107833881183873881979449948820405054837976229246468604231996215652448293269242914106612271751566389859194709826866862692570019583795379728171975265726616532008622105344575748882797066397904290290614597502692210763064585305018315593441148237215233634069530076226656861922233141217982667346626650740858880164639160754501436949888749008131527966133807515668492795968774340677562585099352877265232240734969045801963241130590294345713284923930288681316569440148410166097214030392542174815277766557843239634326690818946101498298243057432236788342365807080245043146454851820038100459246721999541371638014557702661323907296395766646534491776975568689050779179408567851858598508370433947026893952832517247067701631086261189591350120793230707762907967467510767731923055431343181823462881535402909504450842522723100727985615270942717841768129550702317387505186766594427737553665919623940173318174941069390710376217306459011742490460250629762776800876925612686320062737576524271758758786024411714964791524412461730613042210376454481913925289000379992085627177000502651157339162545045149068593863362677042269207474220633983398250200251148442836560170580235618158717397941124107889167305674222920618671204961731112503838212557103471777997193259078312775650140888568462455534545382538372937988637239159835269653172629360078162246865053055952375106641377292646655844330545845925916106289789332782053863627713706286635853387682135416097901823716231930793097481977090097557015882282677576052305370639639564243039081310045789755143690642041701184898923980305393858599540602806261447807775210834911208001829271073095440374384945638488141478832515851703380493946758978118725331556528270036344339102990080278711592499487766496499892638974030521981000751193893087391225692831669200034046884513580875776092069652901722861975535417027865908137485676992442044874356976598049542359700127520985947515617291046194634007180102896387708823059743967903506651378971421651218655476344777529163563363256056815544179966295420822626151184150948168165783401495286333969070326822558344861293292041392818385255223709724189597735123307808879035328110087309671697985113767803065798765949824640890335764778214257699472549187204944207510957177848897108008269398242074089975071185074068840494044921245119517691171232749400931027794113641728730882576761179996146893735775308860156820750680193463430675954579339652390707854721773112755566896459466554051343586356273082813568274272053902847528467652509733892862731335982551132907232661853941409182711973138819423150870884067222968051416488735381453907105548308587157897633288560378496480821001754465287959339301585660943980465370945688166736106467878004509914668043584725582109768016059428979648271932399195746877412568305760176780161878501618733663627700251651580205327002450800295611727166770191889989182957433757374407594663692049151230899412118014106924507321604830321888265026534857860812856607175964849925366947321553628547470176396409499468528913715758826250530270548165988870513337108273189309557316001399051460674024014045496444518455892313012588576765174727538478360568611702070909814740815476563961148824423939229864878178484665611351468512785993616852002445108469683762902024955958060157867438775914855721445041169551907788022778711320621691667358945238560685680116181388593762143333671653788981963143481732999764427913795187074121207318583555717448245202281798770776157097132907472036133867450970628154623351342833936610531563759914906344096972704216411826629935335297979088417118540488493065578265622539134137852232955138418777587178981386268812673072551265909469360221761514732759504788457126631735681210496145684250283766801388645597850670441068144593460440919428198536326317095666386342107403888662416014635191274507939674377103034195441812640344984331582293297927696988269808341219810863885074728512484488243984482544240171919228427441725043530270797624733709565324224521612640809637435187033781331140952786875672441129319356760929741462473911289978291537237685201245396625063008171661583241744736491695244023840602926942300921320165284171891363420388786275338379888519433168859788640477388200010976662136124195853227658142039519634071263830019858427478613919394528355942989712705753079593050643548298910967511726515235811029502187189852309494375112595017231198030544308962826686840510211514901138136339634580158545047502928245828373356389730672411510802959111492057614506489726665808621603305142284111888282431707403570203880394422976104587768434144098914137898340408658961585946143493335411062820862238242748150746478715986142811520572220733245429436842394125399708539719924080667667610342916030761561959247245707719651855458119684436931336203906386523981383756085654541645857877646502974468129638215697940815235848168803035009373357911801211487312726368218535316056486794703963952617107012633443016407859387962440602608513641662780457315380703817820758618770473771544112937187614715551872096723741267587507713735688866546665751381311843960023296526378256847839410125545430754937211932381858451523877471531651970316640916251770481957982098215999945808615189278612233900795810161490053204920994946479228449087582615749138135183074238068530682121957096249927666430151633970266075743996140005422194043504541594859018751833393073140599986511550575659124639732046987482052010141961356572664290957000457871891314072148705666879779843350568898336055337752491494887258639510616240535054417277270887101211701299529757020826531504975857939140856031773673439848123435863244916165810830910285911346431427229342212646689551425183145997265578631139868379939664334186745198410248770900142323966746502363730021542351920360631659830132090013867443493565069069678863604604199362134631173618684478557471051975246528850739261155228710178593280386906674405697876678005841846014116682617014134473680735628651023259209655016629177196103482989174152477934399953378892349108811694768295031523991627492534897785609744228467943176600865081170459142930657465424778988835089043277472524789829095861457756174334328486980095036054378884609630254591624789604805991765006428820430435759762883992375440094970794147266551551118282847212032213934027659039707916568669113602117821708743004193306143289178587544407345806586575837715388298801199587675076670572100574999368149851634535894257083910513009475988819247109849466526149752944350365825441729379888363432691741888966117760514570126524583258220130287519207368849321859565944168446379564349196834251887403171150178493703036762287637615360250834365322790105398118248329765915581712119934357588297001685323342305070150532771197746739725663707350133372264308946527155148137380770906046267305485309243460016881736141631006080580522910042964669903945827911384407873983012289054296347755389908901504684273517070195986008665981278387862021787083544876087704745873183997978531952103324007594851853020449487856334551068007394443676141736207984587669953477387282231168642944583441901344727482760805418173000959317184599073142103581519483966109562887509639355713226243327059794994027875170628471461625897876080147722655105176810845543444798196448429949747163800181635404689513342020059666133875751739689869362744931214362926301500938555377670390869010039011832256418654513361722262287448770661532186238403908016139871767401592368973933206607456609607278523623699898152215940124370320594620115122184523585514606598140812535572493182466412588325404195703861956873576225273876768157101937501367518252070763560828653634197838548957357370859792332805889128539445724964391157365721663421130121520456311998494060957008031284771919147743817055054970010025335151873467143615546397680387266354208314462658039614755632225683758636233971980055738595396523284278607280377697960082902778679771176438913204624368101771292778991284555997553970249701498832646580076290644908046990831564166462159877337659380507270193299875421534144423172742519713619201048744463143366046818959093987051227539580179508079027244257856020930291932691597515122383899862872482526629831753699524339093148713743535254063268359292185892215559688694610882943152066546246991341237333605423350198760499315973196174042465144475765882704114673742305051219040941476849590572323508521924004973269811695510581961689199443780845875031976620645239367842931858563189769996558607950530583925077642353626053647507343822914393570772786129938829576981734152249433254214994924431545375953803145017302992120104182731375481368550661310856640908087571700006444925593175493085192372281012722387282042762356427912772283021902228436725195136189720456388436995720355344437938450719753509373252275449698365526127983278623230714630496122420199799958229050782805177461342892097140470911568447343963564717029915376646890358023683349819027012409170393639019405377595803733705095485944338841727719794635335320758380799471962753044009854620360957677735118827042122727008345320611456201557019565454182972534511639448641502128639446920270523213919761555441622347085265618365259379255839404352266384705334742653908012723685691327696592713220684614174917822961333679128347261037073403821908179425994247422105407408202734547859517984406870515242371209661219937259839263343459599833806377390515944070660040475701079427387649683791285461722162275966094455147498156594860840384748281454032257798416824584686915351766801666028142566217551470863995303180183602396026536747659782038771625157088678103530801154680924160564859537996847326699780608907928141900830345556532256296737712713689157197238408788321829872896430917237420522874875825265494668809072821845250022889242398136757146207449511098701204083206526137182791013950999041566178797717960313884149942700338115856138068845615346205295948399932970056035809098413142166859480938071636458674968415660830335630049021618110598847387785153858863932305172726181355945839420011797215753996302845670067116117417177836240846754178120810020038552115984155942615122202928907681543056685993331681454425998127099676684744995693126900529672173890503366887063728140671439819742459525789584002623326843344152253179367059283906618671216351479801457983316925942259509072628195648568543750224235907191610645736475723043163288176911620141544479480271344077091972300016980437755151851887751339242951006878565006113885812590326625398654565249648238057001840269850340624234192298052631215452109654863479155363959920668666469023414741243000683141136839722059229482012685195024074560501752485898863215248398274457744619722484763155952745935836597113860531718525112505023141743250161192611414925107167895328305163033521073091170722263577804469414545155449065772572782442290827207258577945312414499417166020872445313139765833355242863233671952253178651751157302259696339655946527033011583239048378619573035444086957744897893613377327546380581428069232873034582998117550189265151300312172412810290417149704751432862170496877895076156047134491505827627499152218742946416828554388208072796081035635121594050999907002227584457519604463332643791506004595407728360736014046397615173643670387332708149829324207011480125854781886705862773898940262032704136464927664406074947662803135944585473090844913534666673671753066018261947421682960742896560927939553251777980409974024237521371069062236319623425700934283491191092876439206919407302506222743509824669701189145731571924324050203052521307750852990386809178244389697356805383194439565532779474868394307904376779305396220684226548487491174774956350341847214632719037330383924490669133029938827979567438466846350734656852483992609456745979390639054151697177902371566412477713142444257301275580132966721606907121186708340417580062054378084213156650120805189038536063115956406618849135617534042555533566402704636524282294019249999471135045282285180252980679512720422757690994121064346901546238820706514755822996047326786297111805662938152168957812615187818946621908782094915245878028033153354556463280852992639103638125266929008883792707254760524115133694886952282611953279964270513961589126514713209908602476387730048253611883021646437654051756606189963990334912879904919513376687528899309649120968837662810654752553397254748690034451610703037063510812478996654749144329740887803511510378083640216453557474579036903753030637286243583184364171211543439066208446809589297848470325475132182066038264626969898135144820382788233519149355929621954813458149112785460526895468654016760326337457563836808012130567847673653382437687131713405246732687944243684298202603408167586747627254684211999618387573501771945941297923182135802229794555951933932312076347443560739424870308861089651352557501220498647462276777383663008856382890569313208682598010368498547478070811120861988111889764756507724304810835811635273938401819132671552551899365984831758915811311176556989578516944638885624435560983612879666571707648796237330732598171086336996117979506004968508803126038822510167326492254346918398398613033120386985542600172422426232004144846630708675832533578706482046215780238563086581398810549279810750275649649960858570364625114340988597999483796481460520826531675099953438333504219043512204501710285039447480594335516352231065360781008347099037598636064005338657747662610628732104046968880405642336727640777998882875709476663779328024583240190429094526280934734953246859910317372159176582465881507369630847584434025902298894574184954142714808154155850608326112950595352753681749666749311699171639116188899644538946789215920840826855293205155132144605010872275149920020337716380276077670259628732946902802426560974316653925710827960400266454208708813423472982302984553347105044036072124783935940798827754335200140242527727090802850770261981036643991741842279401902809765593166185675246269217425363039013818458678221268614798623667487372044266229401062828833714144393747752026745087112512450776962466310935374735277832857573086962485546971158944873569301146527752321277722079981524850433927599861676475535809038256476868342238941170068353671787490199271433327736891991546905663909232072262297346117574087629391809034963389605290363213351674451258728284323318819320168801366643749959829938783172673346486411745358491013049655118264586061306097374180973805235573770941367617152804399144138710307853171964579404796435745982770102470294073116157441015639792380382461173052586529629419342844864291712475420975855525955133764668209391750693574844066409314136278099983707097990043081964302598920852303452273728317711773633103602198672294510013344285369190430580459777477581311048481308852247405847514410393227678987326052442348699451881208750399943462692204529741770657747133796604633220816641978709248645811151129468858364615427671001109114965540832660392544807747674445267542775556709487394578338716235637012046187601498138394097218328472543101261885833473291704761017740092866469915343118693024963191755713122178123518648569320864347213828236403617210582354267001087485031528832401454263336537207886065412934288182943794153004688869334585158888184649187948224111259109781464171878590339964184349507647460391744814782671194215249263935388195652194790560719725368510395126368090001260448769500944381862243116424542650780709849710750867165254956528110470266317819158592621749001148390182886041980750091345726579900499995964082940890751782642332514898011269432610444529850201312601381956892491535600509108983651556725354997750472250351630285139769474158287583723499779477849384060908018029710239468291397101222908038564697230207978387110560934541505125348688051498354723150176395442615853841792801007509262137055287864305498690278053043552426776729981022491000059251479491658237680066136121358414674476095627769297480218134386200335602237542664594593527179453563225138956476249000473069240745850387602002467063142275483328994841595869766775035952691013629603937584959443573313614461137719134371983926623327271354077336815739507666977734251478145820456457433555922077168009993337094603131099811378557498144563566401829653367866600644158708849681529733428109391429057069562650705203988052761681487424127330106485226073910910825715943539933818407031165166174018361851712202908569517919492648473317238103945762513722299789228297351788585895627387042817080133722013892548913492054218901161921413694701478440913618217986007222595691548915935137042366984326071923157766716124208212261813961487636312051550290886723816302628217299509653977042283455035973019559842108350368249499000716632672893767923040345009929252762589411840939000871847299286566322093100895505270568483138004547371960739801067364805075510540897124037259884313320754460115223114868673512761796345947533478673173565599184827984947117613736353124028794884248906926252832505306908409422679487762213489325544854604247317751154891995275831487198448964891442860282932712645890218630651900201471298028767236717185711489303118531919855542203550039610181436117596181339181517960174199941894473317810560644786435565101821011404700645857639945238645026296693553843137787610718748636938897153612965609344081175309545136655005453520264113277859449904635998028833591541113561575178586276547142997124350853170606396239816314488197859006355977061379007010964315738522421802211202592273440311219356042993490183671548424484440526041738562499849867092531201849527207566793212607215423262612496014665744112394022942336519977431839540209609200003700308824033671112339354782693042680882946305069023977991690788806847859383898267228761765505099494671291633942547905000026352377261034804673062731464617753740270611365449500856546359744004063328417245023888687171847148887452992360555051589086282097017991209502051623416687453289210835525135699409332274815541649946888937183759506726381624182296319342714401173282615099859415278979973867462260696694394733192276822239662548806782568923313609405755126737440014301055828621747329153200519194839693499653741093522336035953122421016448873708413827060630769908207546066763780100805778735784808908320715545633122465294254401996597971630136245556147835298430012260610958177117669635347899412738553766081396067491310816031354010527241511416944540888683513307212910526041788997111274373718401249857294447584804539953047614044954193884494724874825249072263695814008541956459247641125654543501143922046269053166843372901566891473186992929830343088357207064411788246642809799045141579447514095427727386031870330442683121327903172360240923965305433963024118499359959257379570624766208404197003222001962294625777598158790151292807167227193126041902206807706413954018751495519653153627546825566556381635038736057698787065933157992905045889063171549470832634658581293578814424759421415257836330333785299469635309601561219453495547993029070378769528190329374748233670800578394802681633755332337626401807993176519727904112324441797896070400037248163513871562291728059330065590404991963659518394139721673876265594677192651016012877146374496033247181537002517356297166010237938228314769211671489170073094021020099656141460709503890541124377951990309664853500070226138628452218043753136450620933574094334368418461125342395244831665321949248243975821098445997770797099248769619943847063991089828457459048367873240397875614092589777564747059705055856024213091883998909617255272169629189682548270943617433991271036536177482047742782400030801703498258164367510286191673746530090209835810458535462316276111609348281901560602208584650368864040703071685276507413987016012187693294939941304385582296457353637474822742830220688045614454866623734141975213566664669884915022746434429818487086292234306345230199412095293058856150159236341337644628624281614701530136720840080079109369485708508181524234266685038821809690658680641450492892281323113107261268525248083031049500645038287343529718198910514209518798655891363357609435590906139496654003687796175282644940025544775716407069866968332643673480428671995096104078672865600353035005098179875532174660868962698355121010811720296645632640903833571582659372174618129778710367183373503077419146627352768136133687503126837050450186846443296416003773001211633164231732964414964930093893141695931876880162556618006996712820680091245354700150087093469009652451037855360349121070395382850595946636213950055497018273125115757649593909180617294383156641256582566699711954760955317504434631237820365770333953128311374203129813138389773947037285436573781156241971598029374762614043090252698270858340322254637856609929284352704111435666672182978375338264187620292931666843259933172326739075715994135690781341012572161214340298947233164091940584448879239132043562206340505255238017376403949049637387368037012764623968164950469281067987187072035808654939901802783460975972486785884594850655805700816319564234081767130435726830089408421819486863524827630491613040070089658561841507774903286235206439245634918225512424628953609801289766576402469011999013180307877515796591072250683726475534969429675804775141063149469885400192111334205914991095898700544729954583297330348403355447687722537982880144641334742145046444571313170899105455401389382581637592252855219549595695148630600274421362528249445801176360454434787760089248826234370023086020119661985011841218326981520323792521742287678176271434014783307400353871639474951740608431553892002280327541437123342124769352110371896528170222112120484845904194360513905095932979725864551596838948220343231072996434893862344062671483591400695116363904858444088464191481713106753247264875059094993928173067409507779965618499109213414491581456464577611925260927129843007761514549694439997783060634426251616283798257422030728855723640566415326349894314844817050110361106822039317986051280408867438312094963134338345139704878820087803430882634536412874281781555504810914938606138673252108032198134320448765227368757558212434394978808315072161366236045175945475360871702520772485629095650891718955276379578918230919281877389494439195388916277317802989853160819416318205012621056738615190731251046220374881248023038700809749541197458786928849127479610277807923789046312352271872038099424076594981931934145160244630986320244683212113833519073238728456275677194566653932353251539653652498959166516045918998543165444494208970103761285335247341104732991140700152171330280178708771458742750648857232798315267207647443775948436876503082895393095568805450345863773007755157382580206456409822291651823512737412145915869166088357608345714018766141737849966735335176544438448817952092072219156679611937666689371121895398844877096068076711244160632651674300102883821738850136945653671251159233545984251064724884368408871713627550247282268631472470596921561026250783313491940970174406209687593549739891188553112599316732259392300912539415403793889643223613474040206761332367166719556699101543253440596418526747923349587192785104321916167455757760763095957732235542493400961913253538295383275351666320298830131609445870500029687689966289474294585610649015703398249055286985776958059211523545704597919344735716402345563425371231539984571685365655158191320229820609519534125381079736037257377831774498445073160144889565277869130050781605942847824875511535629007826304444291538958179935795026985142605303720456090295415528741349265176795013982309107077454096451366429559732811078138266905013137883232569046688221701345370173697178765242650368169665850229900657670446246232636954767894364388549318237107210338471045662937659346541341442512711129277237728056318824444817709243735707583975980789345137260398152662659068659465188357595711797108577506163663820109336850357998676022939803130607978977701085266751845051134930730470251655631844618787590428122310654586862160925916380039557603833190702496157069386817505137671166111373169795901427315868348705640760670635277899464850019602565401411481163831319252886984147493908789533643232161750256544613092637169815839684741144108597686527202860480647112322425314006831050897257902661185218971221840293760037577102989017414581693080084859068360750593891723867941087082913001745969419624230193337024749065010676860036871314853981635534231273125251089777476509522234037924687429182566246803515416267203229822225632990166318100389482844056857035924351812939819987760253093524127868103368473935208570922002634379675895458407872078955616202748810324902019149327618052789952089058868212745470789468511292133049443035385458912934054328439539196877190467953599830324310425731565351686814958175332736696685916771460248643824420385703237275028705674546386816363667711143623387017830032394010047709256918783350672265407969061246017309455878958972411526970322548379665668105252265640080958997555247624028405378229473436257652678254035758309850331397662776195956009238692410348375724444245437762976442297134467391797540241053737289329466730914439114736897768034419880094692635439583023690270527350257700237946379728050352401715888138535440300291055100141383617889983783985129007673386633322501819285115536470541374334447238926206573229203153032106188119230216071692861853914833263926038494518475529192773184258166558469619616151502256972070801975387649260545968222023685477111760013710343002950253564189066448250699857445268729758374253573579125374900043150165086526655497531854568121676978894898993461154038921686622990200972368450940071236271336494674744398050948443766225583868830091581332923716150157528397395552997294876019486508858689620124285031214869531612904098475439207862417304238857501694861580570044193822312724794659699210560360233813687567562663643703062458174156181851414273559155316208946655701800210995373520381253612178275409335124877372888738076168507116696207646197469796433213628675870201394090847703220461146976551008964110340469706839643966948166617727585976698954767689975420863186891022559288563401133234007312009383276811408467152073730723421063209284702053411154772105288084716677431466264300286244435367354954243491465539165090058581191762764114473637019338573800491376132009741960378479170965911946516376013742772634497477613047184031921461500068648242868327784427432431376847737901873106163979486887210932661229564211447139761552886937465992727490771099137117890824816001199551777760868628190647143557034023183128861414362987910607267849017678548175859019467676509376462104255934976823983128532101612008121305036500856671397155293572274166312562471599245010748634258314594491428270362682794124311495242764324347430634538154977415341021227034098774649578173253240185803864419945253264843936696720146965425252109328834433992435398338510871959259321953972412882957337768733515547368799157703388076240343816495078855760243569044425153890969817974819056293937472732926437561401594576536122555723516660834051835028402814498850636183474105275020387105160839041134560674792702881641354950149345510061208905280902822816218796361334511067912114603153638954446355624596737188936282903620644657453731288540327996760857582123007084252334835228360216145137674172287392140363963871632855061226101899417927716449694174985063413466220368822965008260236959259076978965044091334318194897954022465571911402388359270115999165854332958121508318225558935682861405646593014576854219712528911351827506898291037334818149671558085995289195623225614712647294644231968409163070242508764019332323716822981538408197460310688086984293605245574659281597965127848653838224921292328354197309951542710729128465938520551258171170977140880547595386484882222789500866603871364241936796893642112442315836457977848999734057615526288685666794304717068952375252517018908975032562970123811541542283471084370848150456121702842483302782064205692085202077084306050956907395991408090498286749968294786654352320910216320037950385631887535710086913228098246268538103719511956782370486906733372258038785042328188531604713946244493834090674769818731870210620863057711211868162155946028267412452624473893630798236701578737084393577721427847034241293846378561546168171511936543556596851701476351263490826340246682666451111545715624704629360800803543145704538917579502930044549870239676842214553719777646143213489409491239151448363447804901177137778277013141619563466164252107233558300482128658312431072814444120599341493598927039938662009549121052280261696781440270060410758276262429837118954248219533413446252372171963651156052201150019382023983580469849976905216667872486178975683933634629258853212158518134975273202508497755196360419663988921694958785149760463072367841695778383499365650726990251580619155907850971600208240398987275681924028512049297186981601935042968934937665826074843482067479584246253215749502606513597046200277458313133715633534361654673229457368108974019449058799446996075207300248621791334525275441632080463602766470519842067969320247884958245689102237951447130226010172935734032281397471991393280000027751948076795965509329815397156705278530663012628207249406543801025818342306840921508172762056696009631504264045113722287380274054684782059666025716129526215573774436852343969211671109202411891842301702693321273727292246846060763281930273238588497888536222458924236356942806667287259040188452158763585944072229693187345593858593523304137687297378654948893136579786798709436487501117596045650931466080817088753554986029333852638467664928001724901207757953051001612435849414948572700191887876646093119739619326889455539518341228102648876212728937190521335361484421906040275465703816798645242427121526358994645203980930977166855237895434495563089940739551300165642449704881093743056010043622830609550135853485793348511305948827920727340846530540850695688615348990918083807072877947242319852660484664214415338562307954804141841800790946839704285644668151914802545337081041489039570778181859217616206119779069403918006262323825020343809502272726196571256455729837563769833335955577231374424991787827962041935522269856775969027270251925690496876035521981243157953164818606044743866535080377388240184932845240024390333547311153833638193437752714764138548462647120640852427636148139687634872614821211330437142599306349950686734180837099339303031621065988861493828883968399426840820267105199200814483720071994667762801991222474655126079232875190256434407510301958555366763249288676920649191974041635512662150643709370488762241376907338970792439923412536798152645658929116105662566950626779016082317403260977620543379683429245254295144261352253184259656913746496464655202421523997520436692881138209253830244506705806812034914957876113885304554022137791690721101365976332031581932806110202343750629569603254312140306268389464334677238132495001890468787316238196525436842400641521705689316542581709120782361150260419515268884993335615269547995446261952223847306932226332077770795156685628426223359276376273595628433700936065164141790189046658479800632825455313483917044768594725963587540485571168921006837674743596339648136337983270413037530983896918511345948642930355334451005536222396776325274483478680210654485147401908320475735706564981623040310088592523494838188707038885592644624914709716911280363804251095790318390363667322173063528137904391211512948304292010613246074397892822735268618208436138573001874919170395575722549932325546548706031181403997244725382001083314810582377336566586293606291658315886928784780398802604009604402285179160415615551406228248046838863129604016186180103905603089575147776983330086257418225316490071851311131754307942896228702213914884946646640328526638748400308778882661516122255428891061877897220910462331019159079637671721546783811413660559639089965044981665026803645102086643290039301423306382960508806275483528945795952682300538017517154091482230361278507769601599397578653432109875673626977141647036882394657090725918201736272781092662555669597945894838894095744706905956033730842768553667121026169190208312425057099744653610704277369631485270793662300925304400422902346283317309368852855193768294876499117708344337361282801564694132985607928326385453772819067743005928727900411163920797608188603100636548328578810183145602285365751437545234837978956969624348075704763139640216822535932321465597058297088428021855654993393315703172658859569230153813754779509131212176803807103188190691957685908736239456620360478880917758961218045629955192092781624613509452603328702396529482413178027266663022959910396558361005712717004382787035597478419906978562327312069553772772657435601994951596777809082083099442912464108452523817882444457402166285715916170774569555533215862748647597674332827069227449326752526675958372322335162815281422855932444126667845562060031707833135062489999949942579663958298071351804423240168020228541470037623191547151266637330236295934651528663044913378587001942083069830463842471624264661721952094434729797571556513345874424958585085563514043281660144601025371272839799365860621047820655031141056310783581015548513535298101431887667107823139370893135202611417995827969724132866081636422850664038597075534022915187678145143337375165846816333088047911285908330866115109399379356105013540926975550256697553184572795825116713566308658338379409329082472277800997193989965795322210432411183135937516904169767027252617964287637640713829760802914825066124396475054098670408795607278665060621023495339646218490061043690974894847933646188074149087911943281404380695043909981439231616583008951228853154419313849997362334210435796179808862148462457993513198106739853765967384235985382352411032263117986175386624945499315271479459955521230700725832004324683528436665502574286998762936730373231416846483013988996856085575608610260117297392288178251870332098055011059605212795599730128761715425546010061119191850327335302010659939237859738319585166360658471029283104044584331754856789510594848985300336719232264803553793264092775701814077051143532914388662202451040745019710790629469733516730476562165192107755548427351715573472146444805469875319949169542121685701183932287604508443409948432250909911843213892423996931353614309200918785095728476672199514188403339487057889523799485657445280869258536473459749747023258096118043368573732631749657470398750559107965891221615993254925533065507300484231446051780638551049828627705259947941813388780706321638499038499751778756176505784717485448897468689050628003412142802882713339913284355179972263111841952824550099706681920531031118483678330964891428484158795438162354460171887454996355532103152883433460361091759876458901589204230478734690810862606221258956395257791713180194570867329273634633390795177538140042361292618115498996754942848655300216118013079404818745594914391972331811417923614639203673256461651124927350181565985833776826693279898449670225271254000894592795493366617525793093382782400751049622700663114865705024141921284421608171309320643314188729413926362574223939332053645914945775838565863089141134858927783725512757992367630764614654049269033854307336339197121899385405566276439955377910834136744348351981726180675812173632425149897830683269845078496256272473169973008707489895082665349539371353377416569452291678670567822171612094728046172009049274594548394157923065220213121478048436378068005650056008082936952415214983842208242807753777520491069655644029077239572523710214591219294250384098237781288750828758893481775030128316151957424638481066907364083724820228582147116105053205391831282017159679524419860905325071920646317797451862752973635225864144444145252752485836651673173269448297045438470988677959013281797782110089325675698503486295814605937874781042193003155041298033160755110015077387472600804619798287667519479921063342080439928511183480895082440725728002912482982028087337088755710609783549403020127163786988389562792617575818848550536987080257769757126726840786596012122170319041302351145574281044940277281162520213829900774612779669048952661610980579376338515132390964543366998203451768252851453181883205288570174604547016279839712929876238083937540803008522402145658304655742866373663617396493320468625748976088049475875157382480176491732802445733488530007233379920430631268749824131102332093870468596212281757245437213598540269710183693688427701163153442586278122636833676270468408875213674282798107519553640926097233467932790714675544966556938731762989473872118868883708536720923677872250751229700936233512240377205026115219629096660125591028800693482870554318398646459233546771310988112216428142766260838945784635969845047289505402359028208730390484491283473825943039387576929614574827938238638488905119576081548970566817283878771638203478786212215625152408298847609469086225213123666953979220714605103669594855385582308999443183688546580841542876954259485667874293543545530981469784118349491233823949228606961704255834695706259752647107606245632099506972576928221797504135991188351253960588026929061393107884975258148583561111937148086535673672309758740862400986554718891222580165987101514950344379151486324686445845027097039658334581872002671335405080004731000551068461397740599890911988087807544975010083605861998008620217343858465335999632833715106424646828312028110683068047734250457342319474027423310880865445082949662361477155019249148258290766356647527352317323066765520982322849333159326636934974204380499411527999503792581183013349497113651610950888103134142021720852876792017874488340205453057737011299590514431667582735358490414964550599691955986705832902949813156647246845400166914235688571991997213520772761606533504459180964710747632898801759836672655535185022965946561721450232174830073686141750694527139191882112625170088818770032448015756833964846674644407088887609396893184571291969266847295126371726184807135344109526419063171222265200605967065754834708011019745495533616163659197210221923452158054361238463653238491080506909453212809683633319531941525480589469283227982711457423750416341770576945152374327480132636452624626824773738498061897483974487261893313155493337870031647766092685834191947615480154529750086495393860869790875981481145033850884980434909784381368196555196556448111400182819541395310030030071352005867394406045675828510102583488279063918178449013904088150329178111711502661315795682665420287600613617867955505831879124063528690342576453297161209945808198585867299196180651341817649656797571329657133478536652649592956659819606335908098347294053938471667478223401464443690849306896757200943640043343383952833684029821128078535567316116894602884099740576737348548134297506740249924067654130437458516970539078017229498495291001068602242246927187137622711194749376370077684858189028990255653254619817300348309861406873155376812498474201336471926252488584166644328141994213106939159042339547937992118057049675182560481440263826727329541106001175358459550680402567049705546527270836611513219680766354535015298629191078014331415019699511272827973775246903059061532171745749432985090142899129960433087219218556032861340735824119501216881905652049808455810672867062951494602930394162635264291973077032663136063218775317135455394454390550146180783546239332962320901721692235598740192365655768031604180812310991038682418553854759365085618909492967499564352309599003626804678590339466096299344233800567714437387823509983754282202643128646458050995605082647773063953049196185370582835900274235786957206869520246643561300334903782395486369833945572766799079017275346162601503671144874835811636367940312225373998714634585041051347336314819459669614645684610248180528406897611596392508741067056050177731039796547600426063178638672661897399926986998081675886687918495167521264459775919645658703668785563939482060526135903904747488476362633752923230524737193364145891508627631933209177325157838223555641861296771553742484640219775805903435900415017995929558211248803577824412222111127905428623993063375642945595992089373157933058259101456818103686865473352378185061349204532375775574327549689177263071080763814908886548066294224546287329444714613439894354116921778556575461483256205077805131670867929694640313020923625800223923618262751569809075885449323659303359942592217355529287878702544060977801161156362143792132975582721954099563668234208980760055198217557740572750606988022592165695421899570975218086105728904908225731858448357574837324730975480107989637818719375489535353149265929882049588780938863183517299182787996097140930874639626316549874523528643869169717756404317630239068050665566177156486460105134475154271952504250442662251894463414541974971503346293470931552944479064683766638173160844097985821445190568292210547040693720394903562872775277639259268804010981181357237814215510570746966593634282296956513576438374733276869966179120437419449555075746577375823974572240353989854010888950546842565881872998421776973703916441459635933804934530855279830768950660676892024562364011028738150600832089604479906610482901810071993658667340245403329712528832912427441788519855157527054339699200348877281881787272969276685552425836380005282164151066865845247669202203201820609027781536859568967269133848772053109842482023184745207576080424718709810020311754233656935201880660953636739716448908547440370272745364382778814953936832493238380076981799916789235531168478365294366581034009872514115880816483499181584233216328449874005996312688585631860566611762033237654753487280427449067249833962539284243519250496639596073025461129443921109987139869634215194471361518871476307447296247593553359161780334959790290487672254316461888218450950917730174543887919606717718339355837732305336368384839625231821550979014372318635281380166674366697668251625400917236520117054193452764042902864561429100661480920642249095289121154615322370299816326700789307873983759054001989353938318680247394856359667085580860908529778977404736617733429858543478430269812379973686318402224729603287266074968794052939017980214926533835716340480925326189373990329885483682419835505656992651460061832791469201706895546234919493122979900110086145302340873063254900196122589017286778146177803950546288666788706710797357710771212350252398755100489053444006225168548681163632921482908863978445805641789068277835271837885320288861965739110288278417540524540932308088607528451257966135855830371123509333425463132188045428348002255426950482005828043020671707717195881678512884852245899110039292008408167942474150835854546432529876824007799822156796341672828971616863561896303168164774849201656388477978132455001203946883995794328709756868217625144122724501213818029888168635088019286754388079224762149273899207067885512149899656586232264262456023749161834157829599383939955325725833273067949807636859684257964655059378858374766983451933486752221699701781931424274866609186371012266563453123884929279354584193023127891015920167933813665490173417160556838655267790862909133971623748412958903614528953876095441011089017169989828373848995849597547075252377338928480673729405966936630839327560892968274868237142016288314234404404076101511257502390058921803122132196498250930018612169168357339379392848479234973668249274584346086815705927878431968516251386520662707973709446140663998457045069982484481061952395928475370673897721878136573793682379829158739772440143072979131762062442203301300240152742189127280189871780874549752625503767783416624408646412458435581262231164838372864515884814450886312558765908117461757832696020811144306746335267952147251530025829858616225775449838707430030046894122334156321164952603986085302601820441176944148569536932896865000913972534311322857895424041238353510214347993704909947810357239012693582612732091995725345404907848209705806557865143185641702240884451464809413536284659720267350961606544928387535207302458780655581547868812024052396776332443546691108566953617344454214423852559304157262632172827881543238680481174465890805064700977578107361141716395443863957944578271846467668426801741874209034930764047604027720619162301197392178807550869736598519211176986219851546564362175171149154712310378259703065740459264674884102300697900932250373122989228941814534142008272685707939191936045816487295278304227392471573745134210469689802639349363622684760832234445470389594338917465840145552781148536627237913263187709378584037157429944567126336315878858079731066016738419711271908958668239058546709462831368496093745238104495656641958531025128561691865673643122084762883285641849055734941965383476810204477133682966357440145279178251351557953157194950069364071054690251516030426082024319840931045683208020328615436682643820655655141957322660701125385269119845799558002090176095743488636183696925952054416973661588632840873997196498961843303995700604006832739629884104391272151268828996666645906985677010146214348002274333030348275806397527222996496795092361004064672081384877081788597152727221023323600152003931670979687322634839276824293258459504278484757646457962533965634405463847043766804658535642989976961011974526469228787438117675453580396649865471433416286848771295822299256726534781202615990456075061938226976678676378198399548199490150614382132096899526267278953409132120353275183612095792276116421758238701073454492806885835371511392181219085352263444920549304045641235498737678164642571277983871895152177481020446484627447800768760950973400874878780488466163541269412779251321314386539445791077983804416372749176664142657163043354003493244945375159187203403990511733953209569059599342863934366879846192056609824436106560562654877377991152751341999428461205422784897346271837739459674150890648107728439636368541157185747828099046794377702628010353293699250986372479204817298660586362615023790977484900025265704869959533068058418041733005478272008997761101835062634658105956882763253942611583719412156085459614687016744790447589251065478866714309043506312130154172573785395767648688642763552544410244987207380152329253524565250173461143594113112802349910233902368141058400482616457638407564408042010677404345893428469456491824540846025982184793221441599327101563514773398832829614856705454456950653575803745891774827490008019881229359113508185052472085975239364122192586991613053607205615895055648581093243802591848105225320093301620979147022217490292882262352839186060580341739583611404036175542608782763404395439527019301164708924741378873795428592820763665786932152566582474299550791480412154096256587429538100853284728585300932061550482545858152259374909097505874383133590757195348552756782224451752177074257015344769624750816540616958619599330713664662589708346892905556079925753691123925718098882846243418170773357292738791927321580284792706586550151422791423148164248515769067781627476293470247482171578650202358077404508772063292870147158769720895516616741801688018288846215178507749246538824244021665070056524461279597278257034316526870991074033647526917557353111855049239327896313162380232043264167348910913631048247966182978585832811269124366196197328591933927514551902222018163251556147412033161820642066144147303991953270007294093622919417083649068818720067390576209119514857245822610120555444440664899752622853973996956348217415526382112444117399280184099372772140818524099196597402841643366729765823879407806779008111796000395090074500827865666251737331618829655660339097822133314011940009120571454709193210970321618727638864706728267435841372931605029414995620422881694452773995988076318503427428512050634415234328636302755256926208214762539994068349418866674095488584938802119593301681318603341808674919805681378199084512556562230565018336357052486138122683307788097957957631904537351677242671680459182019547544913922308474432243595839646905269272961071634423233090173395213987674183594742096040131970135257141507408700965728449358433940253578770757005809008371741939355453347800640865692279551446425760818339096169891362013639899556539548737340666603480976514322112910082035043373345115164967153945117776018755584475617923316805437580224217505785171410519109769092727279140684234627036143409136257992986837196412728473468429311195020358268981628542924676580892818846690650299193905868458357968497294619087040185568928894880921743335940689648767304029841122839867830446700308733064062221210161434626321100286832563060856556165139498865052907645640403045197560436336911799123629795962275076901415668529380910897686737454593717988339184422348325721764251077949038741173125678956549005144962418772036354692941979276351289193829078104088158862246789687687785816832389344982907767389288399070400140118368213691262696739976074830871068986531351309427603058849248813671680300000936368321656778505384549461045266227949255931437674108225198977210531775704895845435898107230866534372209559530492470233679986354030756838630023571684652735246557993473322147791336505038787114107493062864550451687945809734907313681009419688075660400085432515966757179218724957264895869456593334576893235424067986285433591983034624065249660365904167311050487014700593241229020714882222858836820526445369566996803094570526722663728170090809678427390714080733077460213808984292750214902494500023557967125259474641052455971437164302511169913806143261187412395346506032919851472760304900127329591674017009849632253339539039730577139284207190367317633855197961980556464343411682964659324708822609333022468272983738446091387747050663122281289130144323233964902344119699783863624763440175218193085787351092637734767668436804728710699717553586647781102047523509975178435703541136089835836499672059922425147429185179217537803732197841472933266948611737177615331599471607205394104661375736980715876207424895193449744381177501652003985865454565656685219230178740719712655464842300341937543229025346361762591359722190286336052311229510734613390826081388280704378798594512855114267080297186760167501195807048778598642998358149957709486718282742774577417217516905982756395847625786999687231579492667768759615535172173289054391373314528512936773852256362141735848728457988783665599271407297131368968288101058516636190180197310631123300244826371621248215516590030355109379659058571868631497592198597341340559923037361569853416078267494721225046116632011294152521046348437919572528988766469495693924289093532660890416145849909976983067704617342885163594491487939534378521356060756338338013982037548619384748713380976753224022744623826662408678901985742399551250597957230557470393174950797156156555319727713075160167289586114865158525140582250981378572826297900936033025033994600346633214310748886952303360426573410906851199558905590228050141822350905762398287757708020696734038277209114533860077982358056907821840097818605617159912962678120083579432445631554884160448774362273200219938916670481616539535671718990463663655416757479373836119959530278889100140521325620176379863563868247511368167529665562903335523705571141328206899234049233253623779380706285161177497061237328686744002989092233115293210000399262509210120924799596249397735215821435549596475997581092580705868923192301893702383139635104268144669200624819423732184685443372873496438457657443099238759613943767111480861936685360788050264909753880545298865882714605786977085183074942756572915885723767312738988026976443249609602886876726471986194216936621028180605298177136619184691322990745696731693164025990244750542729760952584788416363456327407711479382645784274083078697907271878384331274733208356571340729658234957193522041252075455909264430626160255304010473265289648981502336880599106996470011150910289508395977092130508425475864977243676158907197520313325054109030030452409254829970545535802549126766637828725071129232358349907170523914079828270154575188174072354633457044514479683151783229551570179625242605495816264912240512621417426367291236643543143552438276304278807447720502956421049023752719294861411338887285298828023380814534455881871545490170158842248843045902789968702979403333041237440449880338621154513214425323279828976438730335995975210643480139762069576222506445505343282424047719988417641061045125602752948589695750239415102970303851825936977576961078254394279705495281730646622983025839854792874349219576898467258789829735266557870187150010780981224195581880589011328958661535359689895015733443194085499287916337482258243009993491367677005764999209829097473626989225887906836872489483077257045591171808790953842705458976749961868051567245879771911306705982134579808028142534805863372045131630803221899630997225158065083435737022487271526548702485797962081560580829346326538258118426464540374064563492278046455059618649146893130465384244013314101939334784599789351623152451051053968869920951577474589583918651154597232511767124342920330493200206299802230487058082329152154015065373717235306859532006404992284789368085144485210302211036129334265849883527528461375749362964182586196012667274315335209835889841086951947038043430194193126359072189501426747493895934580257499819918571511731430973436129246281481197382526142860988238206588350036769519220257067432037975549608859746694029104561073003283331547391069780149710759024953196439622305410523763386866285616049534566579772224539983040299334768136994910855767487749477142734418334114677455473109833069952096957096774122270737620945664828825888655608996157658917679063457049604278608926926719371399862706600163665485484185538070857419468739283431710290524952403072041899519134558462952675233860800382848489108002265855117199003360828222861905391394321187106658137061492730684829207173227665271028575368059433749744121417581226215194053336774156570937167512764960448361092043228413779212894368918239641518530199458857175727019110108148981174097894394416341142243551001718055377299530974517758355331098360594801535544192470338620985809379574222247640059221091618270602177313612169581359185077891202133265249487222606430541937303464808110184721620142443575285905475818609209621553558776584559652599594268665162059057988169412778999133126366253414640697742236964791827979447970402177664424338690078970223276164334137545392580890121347022733906681087923244431770124057946011582886720181878687040124555032577902115659239572211191175943891319581722663522283846528218945647640414807002696255373640867313240908279612472736355888663233516841476523020417796792302913457588664121245234245207178747932384725955464650566367123504767422308775483001187298774086925921616597797623184864352402903429759522122357377864287759207007732738613652233470228654750752750417459060303936288357893154528260238314320006104074485205612709082559775987268853841716770812513181407009893576019623104189711089355290827966722587462687144835943420146459483713025070054605589772381807581261660976275827232269507621215851948524006670694072898730860016246329883182971640806342869459154355039800246256131373165434593269613045352063724150614113164937879498105805200809425790890949686829803237324825383801444547458418836359725469100082318775211225241230136223743626086530611427079154980459229832498063547422323328103132101986305554818143006355146857103014951726451853452939663914747893818780993914920569851770885058029462347392560806402356658839379079671591151091827752797577906714485932840507596307613641259218599107711013077064289476382472473870445298336529561987698526814737752669824151130698741935547914536995282824562019133640340549079944131629675680669807909991478948136513968230449841299640044580068057630699903030991177643454922583568137572506266831086028496112413516365422249651972376277306514918680134216322445238726787253409279079723140393711847087250644798603561153486618413696250011767629811698572808341128564724602418054943779061584419292626694371448265373100349414251796093747211356351011935076637652251399041167850910671517529316226864186324961798986596073320449270364861437354209499983101827231407781366815998682242471150333998723594870719415265024922647447973955148960870768856190905604114004995501165079256724698651126885097030826425274915239216492101166028831864089370303020661164538990294603108326363104018898831796738130176813644160116215440592364836248202251017697408264262418884077463394762702614251520443925164209043915180435195749852531790549750299908830000634803337463069683986790293156111540137297650099703269431491632149195547753037452782925797624264070027523943351994225007130080967799520914162057894055525674705668759083593339056741454411513179830856253068828176256209113022764980054996593321900781994978819380706426634398992893870914672940602895458658082970077382248724617960196218522716671053935985070589616804767595873931011366262942935361632126200215836381374292844311291669355192222613394965127995884686458427228538469352623910787606673759384338426842825015953474353740011360722228943321048903108785399886542313997221562833208349102569940113438241428581748856965439149174902804357030700415284436697872619089205137189947294214463200919204551132105955061047288820530780429639913642664253262494940224285488255989422273353980504616822569576008227573624689453760454303661177833391282671598655423608763910846527884079354552415536908841362083683454799833844967006672401490758982885151753658775356063002803529152037809962585526226516317303546964073101316389545026043089082688055780632286265439535199491108634597690188709412092418091517742417437544874744080116481214254304272001416818578339139140882001533671480192541763822587919166279746982447891546182256223527062883029445979084414035412567495574257935367428332720313542031211357714588637761641553651877122810127936751974250156189177672455742581203344131090782778505032941085374731767640127865629461721227564818856376661934698709329817470956411471909762415834527142644309799201470536820968502196391519558190443810863188196180256201465646603838228068380683499079926595245152148971481140676911777089624265589144402150697661653318407012214011509352601768638822482790128369006209588847139884222969001992827341359238877979087690886346294351427296837923576470847650302597837834919853784992828720302076616308961062338357006371949983309610109915656945702860468792772231182516095949244094968481295865145454135614649104926541365574279895576680268930136927019410067034897301743923490665162431441560961666621424205757924867147671282631550087540281705144341398059158183741778915639228011885619754151742808917994994377173317704184637803593404814141272726392933676418159966778412420313516122493946940147741513033237940653253570751880600092470607801900015434559347224340238522210612518444097007920458910880813388623120566321425582784534311853496482528789663466416414623737445685557234401925307532045111459418039710566795607488147496863011231869266880800034907435146031068806367189150863038006016001477239569630178995904939346868425714214612642407737679351830502254722175650465201338018943258007280293018627432259335314621117949272390413285992615848062155573228217146044693443543373434232660599047513610494497380495239908993184150691765693100930154303255370840608491150060330518818716930652656801881945837048491499252787248571306208863823491081481654464290268103716468207770877597550031073292840233452737809798168461499107700185730074260432073726448827569040420069747626876068895317655824764906660923988315255414537862870215833375840298399724975964299483722262236528588472367908663572521459667363188787117073768696051623524391543882436976195811129860144815388411292190478850785802370681627345939363932567299230971877814473233108323668857283026606020061483234668418912577701039071061828123633961081028162440070430955591370385033939322469870264378485882256883507080991205144330833357886863273180687318932369791291700817961969299060253462934119987793768102947803922298507472120544428058691913102156992660030527815753308073780648113390832897365299219988341595001271242294091486260987876280310335448623605936479764697897943016553772105571238885819691991180634011592114125668460161141760592194213159626152740000551581835772205850469952319495669700232462621146180432000414248391829138139411374422852183023376703131676672544938862527357888613323516812844169254712734723670379789505014286525297924878572695592377506284556074835168407870413129317489491403740507209470540480693626188433728496858569813652689457991435193981462622641430472271011771541985958236971338187805022977898688788144668822146083699194777222237030912087109245354421924662446648813259676413414742115101733920813702511331941535205545196131963902383521024825776870802868615161529385901884699667355643141634180388544008132588280568842437933843063998275003932025563039581862502255158260971632107209890568405448741414626935146604436401289765412423414039995699230113321132304533321377432246249876258112397182876311443786045855960537110281863795834704135728854982952074187665348569061032957505006864925450324827473951050376703179775591630659030378754482965928758381395853292246740367570945972419645939839224236565769674481678519865819612650178887383362375466010851827312206968984334182507940218043157485570770694870159879173406516790531769371896934473800292799884281196562106693537910779659245365231867752730646057100428328246163829035885958551477761520789895950298724484584725436605250272727653907348097996724876261625959818226759714239130313757068941930057191205554133922324428073278495222075690473670038925194812583317462948598086900532515932905786027807607661979404912819692068631455510115528611461757183228495912617601420796107274279728888205285942028688708571920657604953427614093253158467056431538821824757610848342963260283921814369494850574842677995023008063046689268220097622853218117002114472452104176272936621551326628315919760783272271812083852343123683180954620993306067245432586771313663499201484398075771347485375674972693072749695574768075264982094415277963290270922793409467073239583851064598754587110070539189427295104975962967901127425426797334011287969361294706856667248689507443025813115661446939505034962034113640590438948840175781343745135415516212721536794453750694513695189171530804702999843406953124745842172583127615332999748287871695397458669514673952169857748584659071779056387542435783883644294306116459303062039071642680663987994657267439950063835395089073966695968858078217214009100813304117505764838336087025420296874831493910694504504617754530999192108537163824894784151251606775836281843340067068008233412199288979289609509099907176170199316048006530644546385302985128470600029382583981709601203633982654121371042868220999003640781703228706083364973937195912346375980940397606306589909932900262456790773429466507256621489355831662906617330690888777446482248067775217008094124138020690942813733206611754465874312702133899689055353964444233732875182259268106062154481602052651949654401904831146726365997821674461035853926666041808098818246348346792916838862304362826659057094672330216843510586060166473747995080397274657197538050187255436572032436880201190725443743308314448898917957024758922243068693026047017928403627595188248594065009829531189889320016563250500033232179114080578278365090468029792876715301596519854645585451102347852810414574799664082372612099705206902349546995211443405785728890463878478247093232751016982923867560892752263826394164214229196454928095442509091868986261005741324003435086090786095479032283075880783338336565961662313426181902626063580499072937878438941900359952454422975857878679742636637115606404358653619777821569490560203285140942426651425493483629440562841301469252421991056616242460920516360602816804907976665641851267935559502208974766198693014161195362813799452635769356522603095745260149141978054953532550432918750112575679305035928973052608122699501086041240808130947800041676750300315343284273149374792316307604485915756731146869297112807508887297265450458061042857690660150149197217584070284053284162899387402447286105599082720771870554859877497201407632594992781656036418390361296070314864334999890282166933967271033379023809735530165643015863122639531798712368555641991977418319185907699985883835866736469665251241326413968366832557193558155722231783059301979233012289017925798797115466160619767858257616050814053909999051738927599891517773775501055431567126667295347956618790166904956000692893136026404793126421881304182401924311597001800454057192539213321994519525265803488019632523800403220129040419027008409825785462039715519351019881824189167661476705846794579966921155321832242955824037948056585445248972651098183738002300164982243526637773105292325040248146010002856542372784422214766113397701983263958660788478926943103151614689992817686751476135325494283919511899091158167059373808291986561215374871413126965639800090484203656899928179359066847936757538818033139608993794336933823863985770580677403623087936315640865963454136058453446111156037473952364826011266865981571904932484595233920264302014733823527335019588454685021996862963628248134187712664442924525121163092544986382154653284515404008789979353368191902934119214449016619931796434565474602889285079839970698161723364771622713747630763748151341293754561616069178857916437745977688567903123236759500343707109879480890957443297838440021176568890311145404026604015215469820192851604356247481570150954071430210441541422309735893910592892736972685472603283875683142437259756533648953858356014671186531104520795612185903923999442643701153116068593357999964500473031833100108450236212677994843532118382081730566914845605797838372834575125139430080485206665440536950644923619451031225284780101227705103755881422866604329626268542609293603036886438365782907486349514326104291568580477899582473857602087652452949857574910088562329073211379742628130853781292498576450380925856020533153649914499314342987707205864068593551839536541657909972426699114008181637761224331292446994779044800693324548864007315942841436690389108816640850584970681938417501814197180546574917642687879840865147031651974141424895891692723499969660586371090182547477717743211080920830317903822577032240646894393983958508437060698828733599423565151711780994336981267199136492776770745276674886318758821402827403484317609420379569671428202534999954253239549363766384382874138643363745100742651349341103572541063932363411445446024243864740994139822277858241473778640441552689141372675844545836338625643242182133252333818266647782267551222838630885289800607959278094413450821412145620111928843949781953944408197658990738216272330253099425240785505419392198623056370739695636323915424262067736781608823066138792200813970618447115587266660845768305228475333807243347653438223195506418369699405123530434711855607757339962084246249870547332964534275005288095577088038940626626132425850736752883405582477516588619097357725379360322376737893202742472034036624138743902170320308073269231728092480096845960339857156971143072153087916119658675179220159791768396376345231121795831312606065790658315021885283833075847571249266091508805148595928505823498093391729944860916112957263144788146497926004293233575542332513842574073332942986743590949068455679503136784866520382646828815532252963863570659783597927612850769585492423867829096219672711358348141794710459273953870598749428207345892137997401947731856404730472146982636845448273800502667416213081881966151818032560885804010629078991940730965037885317512283554989860943303684440421560242930948887509235752178238397733712709358075644386977808185660233782744848035371755121858544337137153672902064905768743316638477649475990594191833163892355360663104221881041998468882527209126937933216891676302735821487057330705495067747510864360309542371603478440018716164699767320556228451291530165716373008228103445122554932974991819733472994690190675167870803441248363676213824221441256590878360597441266638839435687687201051279366430294302635516001864523037440567705885847272754295698197735791530561473617981766239156926841835993506586581559608654255405465589448634663651452351045240343465551803013672338912670890366388462252114864949917497519567796869659646419538569157874718522191633094328481707004446457315732329061091916101669406335391844428034311793781908796189929476987716387010232695989522864736625589744225188644070417689615982203528186139498134403231434261130841665471086299177502669811543925740497536919449055454926602738586204933158067849835677262506244232236870177148242374596468595243703976148846811568156469162176661928710029208351847021281324905887020665363504381026221051248354370731907776825075661146206610217322768929793399296191745029476143319558253424371820758991464293906449741549074398540287965362716760667449203150782334460651700329032552901880614345889748547885104917518478335212167577135540060996469451320834606495021041418202667502033968841773051765009344863243567965353592801198202967203944580220818561396428321650649769227523825433550930893382182658097090059167649627423513020681501292458195840656879688082776977186155533385744074086993993189469350170086094352464940888606325589475530311890288298310819630175012496136137767275567904331164252540816094056559993929710908623880080443060964532850147099864299885856236391536299889688563974772279999912798752097020925737919331692138435671695935126783908896019614103232627494778766780889353081843150024095753233273144238245064070468487381579520755178389845972252931438815038759526513416029816538891321026040604938898501054122046128037184180155851442311937681368549024759955690674025512519092836434633097612707686246012930392288072853264508182778868354456879554836235332794704434186968946469580726517151454428568188445780311794092565327917945877880248312148772030339166654799623246714100330440500834235995697707914505097397750198921330608923580642437527969671779402256971635515110076674059171368566406152822007689368765207064729177221707245757189813895744599481441973098745996737664772222579376171052569192693371788269258944191128388399114700541788447180528152594767591803106702782691836620800777174247866614775095751217534693543591293721828161863434989775656293326330016527619959055310114551494478161502860483254891862406985412886539721657639394539543821059553239158610819203096215291996466896266664053470476153099809773188389436441622504687857602859269364357469542961916121831308350307708891291979988183330679412897075226169493038284388007947563670304043148649091544788120136352695772459918641327277888937466388477207656020020604922497614870133645444273337774577282565762111408323006039098548296472830415340818929955868895459352520432757701214862665336756761991574766068642946368113577772994193615560086702363537048863121274334794313036690434982724779071064484954481731828202376286420853543601284486547020598154259455077601792443537895725179433016154786527653035422936102600170077826055759759713216458098247993854600691035339325159423397677096859978133338438418534648366254346820666247053012034450442699948399494979147701813433449628438718094152644690409943377172158818143856718293503661879787828115664226007733552478111232250970524541821668883561092344142360126543617587082187641398598821526859410000985188129905049620002204604689637126756552246498148666513175571149172485210551872968113990761827163263662991354491356307974699415190157468427396670836469523319027054057024275241345867939873081777754658606996761754817117169145773847973629932807867335738396138464623319661085583176668673705055945279831305214824365706811245335244710098366833648835672310434735674579569174887758616314983162233988090981630925526450729708455269137839359751223052041725141777986300513861998009609391115879348043232668994653710094651009094902861068032808635455028815957587088457734922858106663493670504741069785106032278760491612467168317018528050782706458958716630951368733911459283258174807350889134806751579292042349103110472833666530946037304437018957077607699923328941450046727099622667136785887400394110395883367505141525587568716232370243855298160029047254301570599620201734234400047391504544111100757693391188145707661606028307374587979841053988413498484241805430043888899156862409401791246015074213493018774141106057165003351544866255100909503014072847366162786736243728816778579342106813302659699766711196122727678946184719016586521620763523724657912070359893706277949500303573312427741782074127222033380267107416562170661740981808263399487207214357894013214755597130167418558847158238525411333285261338052196920818650389636656830487745798502601068510352205481904972414186110329672475613504834597546433588150345832234550013900449097933446310806894992438852166374286274184387659658015128940351295922415314489742466519574082431690687863086615739840664506810485956719902232091798351505184804965663830842920709208328605340989401613853275059754692859782857235291083873913037886632910179656603134525401467468919144652678819191833479420370582515711945877145103015687941294694963496017885821304085013039317685150092726257556032363188118617055652107636208512175955807220120849716499210024538660989817498134093325974334980852659819970914904300351364513183608546964028767166971153252076167768412969929085844711970108591029206995153607664263624782980260670960768523265227502712908687731314078945189328785997876107563173766232120961866118796185783758939550210539640510866649814162580801319490030301533190419266103913671385222114089370893738168356518277054073411608934086736736477227767670186009936535896854097285640350466402079272929811396057272506311989840295980021579705782896286782305176333252036146799601521344503348527699572006025357272555658400536569818847738579609444933023139636078517476859344034911862067571544256704302869061213739018353733024152793876053669190059267976300154977191576280494394999014488465211040410567688461915643357085558312201209464645089987524667670967935902542361779982248422449132829922387153207068698955171561213063792604113827633810593476985734481424875627547224102254867651294926915646397208139630788694824503555889856790290639084507448394945582108905055409535601469043336874393488314259983420344170592942111514810111642670480002922442236309656601030869468998432970673482419145873943726979559602894116969613501667712911097803046132992185316631560626983311809867978197363928269017891097396680515532944673630287272304618067150991617881557626113223167485030697924173602279517663320387042604606721857103384353841006955740353826895284520294682097014280961292445941921131382023339578129704162640343092051160513563482715202254608038246043397422607009684000728416835219049051832374026492850967306654237623560791519491130686402515359428340199736668329876614436901447715751461880471589054503700524998305477726460619791870042344858865442583438385076034833334938088757165074389196460482550126455305210327046672727470256725127793939485239032954145988674710856359025896875857293641354191203002240382302078924751662471295867336870064149195468089716792539146688074137369902559298103174385647074282289694323736212452254405736998737093501536587263293193980217149940017642821849593351157692922864232469992230918365066927543219983459547699752733833666066911494300356743552170287840524429992333582839059074734574906597977330359690089709723815688030321127173018574820506184457549488208967794375936448318209320114552459896366638344933930041034707225228867918573888516707269799890822634524539588519720351682128400376408528643207073747858152247044785996668162210716850943699964833333517767301592172538731999539718452873122968575225922535380426615660876775320348380697607050496212531583057599510440258647298878603101501777153640316992802760782447502103573284736699096110552987600027845579407533477334132633641294920019472823515699875752747317079233665793204269145051035290615765349697271537557955457814199535386267290773963270321267241961341733478107284059103293524626451258960255128906647336539890875201031260092485801226697601034974705792633677646814546904035395291239538032162982831114111136197998957117342334289891804623324151547905471493290062101237770328464936377041147636715913763064007584051526085405673645631649628071989914589826821805886736671623815190904492902315472418915989705287055783845533283103138328327867315977980046612405297664259358477234956406575318376018011918700860340094610406547474186361389333129584686930580395279487536698575067281207374141048648387793027163332927690223506217239275083892794565513609738875129367079815168724093729867930508254736558769679779739559872607987945987431393482684559894747895400681871560449710793789666184995589585261071752811266029060087885210834213294505662835389817053103631995370154075552841187212076658954563940629436104141214204854483484612865441742139924353339742808714593273796126103640427571545998762444229256914497529156039680313523164024915871856115112562620469564636789331506703195948395628677333435804417233330012188632310291386617416375809347887658431176933405174295102738447945536575670983829723154089915343285007307290427983023137095659845889677750207386396884086434090149243663426048026325353493525226834821142220789146574262962671134166631546268238115773734962858911167646011487342326693223059012004027240676195465380880308570514071575742243491378233918538509753882925940630113652975833370171311846750293499940564017175707738993740188892331581677840556516400687485672288417195178705595409210941314243086144880890073941215006254828249956082159081270194433295303356282057843405910752730697493132928770998502416603071408449835941429687083109806252728055689493361169868982887229722983030465427870870484194596098493647246241972875039579373748623201727421273684902887734304147575042245473277367974848258069245028064405882291130791154999315671368315863099162219322245633658689375869472431881450068700868111622092121694901958375303858441265353505230115658096288118634739879535382337736861121294820016869005996061698147337960808350120683860480401018855104583113181030215057730974777613787012989603729622642158239139072966947682475157562826757566002967273803488278965128582696496037364497713972803698389091174483822601964501775782085844110796989321835927988994061393107228712093735127503887932527081501392882567762167576341296903961997917055395648674693756713904087961570701160214852860123907158933462868566229995435116054718359952633941412661258445089500590466392480183413363013166350674890639604347467619086678450359826166039928351745537640963949172987243941091967213847021405448960837296176298111447449225790529792948370386932262821839144363100514809139317220402340196782209026175404745692216506850100515164223181899424108322513132708634743125463809997213080610297448719796006356247322146508938971450921534636066031253962591922638473764789675953257668584331296414810174680822461864749990062221041403116252971112906039215578814992633614473004832299521187478646317901526456815346882916980063096160322133481422468906453738184819363012907136819593925008888686301953967295937601070892764656134859804683103105133548391714701566458754582601742352746946026069807479764740877675930801824426897316350182183449095145939311294964989161605264610892741262834425705560000979844346601805595233580459555305838258684913336387447761597692864912034944414290421437877932166933111293427680054032356300165547510012140095497294655197445893270920270147974867188755076871694907835334241514443039887443469405085532548534948161752391992831835726976834236698996869988453060864929678544388418689560715121707228826877765032640429135542517412247794887103760660174907019062107130970984404857163621389733561064738394214887728888226239109190910415581033779422037721309582542001545557682502442017224854864936463631219961455748137547549946258627853768741384462939031067697097468736324787464417921180158242181619884181540343248990000973920349983790957134168620705358442455454333110125673377333662455409442558490256964977544016426985981787904715822988709539389272235581278785706144423032330135524590036606821034502142556804681653479911592062680678713656065859103666642790109303971779187833864192973753892029945319888946066388358498101044915864549764968449473116442691123630147197614798836172867552558795423134561325793639057848252301213040429711750946143077447666433009892078470694113304804604315109364382707606124029601311716250026873025896525086223464377877434190546780315437033071114884346480111735952396463526731718436552095016629385115632994791414160012115984656686773928492226031861248128235809326293945271705472616021977563162496180350194303404380707656673705298423229135801753862779581185687093631694370022045459734717469564802491812485656528620660136649516787318508108239906078681807723396087905066895723237373312816140441111753526674001229630146165232173638051160535636035867596700279194148701677858026078395408083742970501068260531436442150560690202522784475042378567476674949168260490523574145003471883682220873943802383172557463154262882935445812717307164998175913029879835134149730464809290350172695940390400542761303333068644752845544495847692201247163030817025078747946633399832126704069584417064961707946868178436944014852073258674810108032278700539645206479037386209935000003042595733542653323239309209451717461864354129678271980119841259825681928472859979032358027022512512435932522873140570194390867322836472007915095003182621210627213918525859059894720350211881264735887331626387070976938688468488211222960195929017711746098931939819781869254391188770275909293911299496455068745204398395827901130219509259667325007555126966355014847592535845232412572063636090837336403073360325909600561049978180057969858110291359922168808945945359000023935383926963448899642022523757041316291195545138776242720140559589344765870730778284250268648548321823310506533864158681718609960962026735443658747134212079343504632182487577293834211181010724888201868941094811644199456202367493553788386443953973076930593746772184488419917039711181751372239808109417427758825554686550766179981174702864283797815275579479823746890696968022497989080255298116339484937867492415340197101697320890772486326784702543095708714368780566757976368863909016463810394085963903697940735327663701837011088382605590063152020567518268127289072202328139103920088340687250902326404363578401253383314915321663217682918380320939054308595091249796487225259299046613084888818770130326771864847101251986526970039253897240048443888655897965520864445504758769115641584059133737358419551433767640522024617488450328460030684786114939407559275718690604980145133914777625431180730614276855397300567145126538138161536623178413958784924066251594997352160198639912734915208618959667508695650148415671800071371387077192833445053896626333893366289601994281767293051879472330511927384629556889241686520056922127513244820806766318925107290996038087166548949320976958446035066725716983442330354442737450194902868466158330647272180130505251111330343582484047101869472367268266958644573660148129282293917208421277069481336435823139584811050362021264141255978704061029559431697909276234749109366452722287065230734083343594031474546018967742236055148289413252897778821615921195711468118603831158501669274663888636435886560414256536837189678813639441577032654800458196611227135932280410626462782763465379431485298554764707587127159928793210340063079420032228714471055676063449809853304132603625776681730356994920864611021187235475303935809435058790478197352244466547529448608590639868486434484432297749109321979341639061095846065686123158450825041944678838871830159027046759105373543744311263402901160340702090273325352423255356744978917250340684761770975763133379280216204325342594100015579056886482376137589974727802711570029782197628181679118934257112537499591564008892129632608876944666318135180104095350387706038761285790898188335340921716736642429570837097378793849152856637660290460948220337137275055379770373616625192562596272778105721435925749796637386581095262133927358476155045045358751545084801064759570343679444630947987861137022416629905056933877073497125096381508435938402445380116415223665322026280308008483292125123747228706958470584493992638267782220473486267216514667436438026056472437261802323345863745961666562477381041699393514551629570286922918109519596723020005130744004351166556045588917837336918960447556488682686633620534928197511886723924017834573052510399529052904588647661559692143108723725455238074763383747606816434187260183442479298693246913092156721310508592258896090543048182899311453610129795129225349968184295797206798441033073583504785061546804112469557740826898541111793477662006358453322565869350170666824508791035267521308915891997132395036467200831921780063464223423914076305595923938920330440840142523203058825755005044200240642491753181699977379063567597097919363335937134910637837122575734182612519653983012209476667853645286465895167581640620057239810334085455229709594711790418928806185778280427539555145566223598084965037517955931011940710394667350112725031756046237489659137202706018407694676085170969611549513812323446453226361668562394572966866977693767555345745755587372487550996496786080563456341628514208327776962495537799595903789936961495015005569513945498653364752627238614865683183335417577178074966744390510284722030625001351591637392984543814571434464633634398125375115331767687856516445829409442291379711014082407847094040679729490538294311000927899202819271705199218648221940576654271473522909149204916419899558196334407465525997395798432824608156760837700421946815953295643776075563094728482797793779943526708583751102420508270745883865854716063186383856317820873996178049750238044885945512430160510920096033389625426623638440700402263751767082658098320213362770562835295148515304033854855917419899883821528888107552132084472450658981896059689725419219782334614180505517972418403570369176657891577045414312684854674340490409089002788889157096175937330471485032061877611986081914479137472010649230065317480985536465380183100338861035766476152469513146336372875822653331563837882423254385222103000734241396642434809856984635513822889158337664200261889850113507770378556192051833231259838886851316092039180181643425804555895631097560294985398640497521977800968667326586847051485637419777099590523880798193374407171739086313140764624277544165875433747735304970804399428126249754623893500851268065688883772521681413455870587100641789729732729630441124573904225314921872593688122312627850529749323627746733992379905307494501999369833291605240582520628422686710522937349547064189603776888141224618309810281107289867724435324619704946242253775616720422819506363855896896525120135921291590140109542049799859503610661049497085468214644355758467421839912520103601081012314592654560686115941991329457726699555140074194612871649988650848823759517054825587331785310321254663922978361796961310970650961167705262154408875809585051296985557405483032878497360370285926598220340233511560789917203512523837187723467869023399311445418944286543167244129080956614436810757216837415572509811138468804588918658825135393077002825296753983230168175718746657694844130849644030516308524762694475638829041527894391093527526848405855454351761572902624429263149331159410131391041648145409729511567358125491365739749382058025277441669515932086114686104646407948178867353523286081936466404146186781307666241485255395864914955129969257244756567169589024043675844794634350910309476005225256141879850505670263803199113195870285282812084775649924558432005345083264227916508641434113176115938459201417255347384120132280094077991318649172149843322206712237494898657850125009215949028267749022494800736246166444675588740986288181655285912886271930351075097260130580728626887127448506050290000405152915761357457072954887691602771929898225916182720355374255986085740437080435419736859288409998930670351047203337417569781537433216645476514789090141984658482312655060362429558935680268756827815216608839433062132631039825918685112349521123110630869657768718480107768365240840497810070791591367054483076179662481701837972436194038295449894602282179433789045170568170959955784120443664737578585358153362936515846797267609595708901993849476826166783878887161059897580510679071386673801189201321420079418065657030388284014320804948629296786163216344168639205472073766203886554797337773742728388369143330059160815704059003053508515389466319051905812235411934080375885006187960291349677280150715631250268358682435775488686622409580955909774780898281685536341499344339986650911193419433926698654043382728372948555870263244299335689287103440385993784877623965913545268161744191469053672714233534866688797571255165082351505599806705664352612068692600305595469006913499096952552160076770318164145062322957437918750720442672166967596638106766603291306082113512884028949083466699708960371068932634321890435814926507003363288938662590514925096249963793407012423974047386118289620697995225300893957191611275886863837512098666590668608889346245337195312785467825424361030598605352533501479290694495012508025695357106227822983160608855777800032344912801488231495224362051225544943713178503318657502053017684500139421956308178562170290347885442664675679050186122880108314839786455812904391783237720741293901285704993031534722099813901340429720270760203255861466358090827294078567033930741512903197806298101455472768746345680441473155618904723809375653054236144962634454620335552702170511445427098052168267866965234760429087304827244960201589044546759569248339796131998244419849013334630807135488420084944733314281556979411067233219894568232278192522092315242376409448999997459772411063175913086574366217790640824442848552096466119243027122513437619456650349835181426690708119858368004496173164118520240636336159197640712313286024304526501180465059306077134487501132318200146139219304982742158348898097972237366417503400396188315165113926097499638154598996133005095954602782412267997802636034994890755302504468160857196243458710503296441365546709619417147827600134109095738944573088591876454157245439123650611190975756173326858303184231827432738151720410683527590733701945668328369203843730453205236852253689869608207896469274490204980731500648204056527608443588644935343263627764806737335363686335944174716175276416497401260374074253203510129135755078215904064552687001531801242501590284533209689513226663401202077928113147689964834448393703292317786138490310874493767372484607505933138929132002488529694620293324933299640732313581659412175470681588364636716356307770591609598589231327440053508352754954467133476606186212908396008201824450541932174134990113964387940765780127054578638788498205711456755042743615353913373180926159128055161364960520596341843017815830077045421229301877230384455870770485978249912010391775790642117549238038594966636875856035658643933196386079837661345661040444954699763061625488001647134197106121720114985744968976199393489556391164590405133946734424805239900177027517716675393101256202654397197748547310668991781318475526624709987610799805873803752722937054148390349069747871974766521258974328448513191429526948784711924792684093157383129246004228042502087894787506606554818775594327088863006964116566769456622246038952683001013655452379764527597550560238409182062946451789632847567134897413752594588861069708560426438292434607890356741053226274989372396047976922085071232163863266569810956452781963092655417260100882325426915405221873735328071340519235172886704774394117653689180643567071648023132804218084066625574150739979991473344781098302316190224315024647274792344995532550833744151754576701536817437101580275446800698857374061178826386180583520917024138668343352647999504603726837985306519094245732114324381744652360928059739266579133353435964120785430584497814894777397437145767378704804599764807742542045032518044432755041538683958302350869692903920089368552200114869795625793540988927808005646050210545159873071681729783260686550230524877078488478179246709892348683367021934668524169668460242729499921176190777953703543674465382599570960399843978188365985635263002638799220834377121883379482833164978438214714466097967846515280366401242083171450073818177871266353054086785282209600727549059071973201685619907721159372681064291842703086612015730228066615353644892893716357631678163817853805636462871321765576242151186600568096528879411614287341705845813813399580465487071250407721266529548049273516194097535641233062754114023850217053435741536500892409853267363701931329291273290601194857526712695836128938852793721947936322871071725117804356389244478198550684604063486394990512778444740016977068944983932224379749901185455936147319980585775096305478710190503840560443652720143757649796865580761877497870813205986685538617691788410939497134965404858335812789031300647762660446684306078877525494253117648362089288496581254133294875767951853535289320546586205170327928204893602056367246631658546868087047151123087360696041843900384379858538582626241686730484306864936135829189936518213283277062588668654655552976787009868045593186303102796399078509548991692596083724235826129629965903975136574922423854651457310855952644513983972444964197420134405880824919249114184533337671041078971765818159925162946975012851475521992184547765045735216386587104407917210607691279826677971010177779723879965833360396242053063474677531860518277089280538740846256238726799210820816967941514757879561208610503968286260851797230675645678333966932696669626571543497238075725637510351584665166522256475926199220634756046927789998327109522544132725792498214229321546444925828252813565106656353660800755386758839017238981284529741202084023350648980882751677642206070162616072070157388916960418774606546135765501425723129378942899599799086566181240383777212887365607845071998185665903784013121496118411027212707257427955479050887712129870437605750663103023370682921839059288975505633459056901596811463982294768443805809891771204329319282400886459989988522319036938579915141796438737137700440372849509920371979626766019521299975697667897518071446470165516554631348283136171895646176918377672717704186042027946521947454843589353244509183629009053010253196939878877655175690216459915888471317608761603421856674405472695449649208014036111313260763844989625753071443066427868145977310789946670216555008671883628683710034486408729744744697289159013203922647647600281277374249599163876716189711646294666616392485710394340296613886046602204108629212955373832439521304932737458484402996031412545062763663046887928975192550772519791304857498453488607027144790781414265709797017186069362214646132337629772948927069144836070705003987860469081117658236475063368401257129183656579431380882964549187423641945222629047910456799907756744373722691161161233786886891515575467312163907992447460295479541278631873130629736416885066358441292266496746507846372741735033740119154058997224826476258076465566824572991209452356057440015784536645555685092390812405641332198237428035835639094094674944898321943507773910014590502845590968663719887636795682685028212364392486641489860918957794034377618678408388927756830247457116945552477235403616164916364063965324077432934356718197335267788269182277908278179885858567437921751941069956082806248138877335644120848744258690769078493647845003350616199355575082537504169023687847704651667296026005005081768831634827480143322402978753367092351447333273551581453547856233188867654891166573642887797416532523305618241311624044445940819801704448852092354286369869307195540395470776552448889470788611665314621328903969054496405594137869857991192817858899828071981148501370857154761857256703113276719164464094798411252903474849338204279516736843093224616827245257665372744316191191324441570943249408059501502418037211902253287750999211685335013320434769220098192221005611536085543818410278834360883457379489688076060280343847815939067345377667670722461092945625523438831639703451138515038617725956778098669400908779816280867412482200097663309528303002982670297853433565236582979350590804498538815271242251215431107145423790782577827437041631700817642568592826100203661765330888986288887851109472441259600098855057096227444940608305555431598776289037898969662879315606238212622092007308401819474208977674228623364397191570253502493860749705632182118841895669022268725773944546771644266923316740305797801317716190470747099547904767195850620848216897463891282755771294879224148107510114705443831243609480942223754601568350698889847771474996794660073007784486199775044496415231479923494573766692270732846234905014165557096903348729528378979543663661390157521089865134098712197430864823216547500757813191158363454038975246367057991388213040926049570524852072794296085234293743572271114998080433156794414027693633719941827226723639410958555922576106476905668766582992059249237672628446773331577303229305329188248896335028692169053030004108158812251461425032779148645378944330206362644659024672724128428955610920811871941636397432161548527544104044463939420066017311872718062544805135812354203759919324315667549275304420270717894229106097685632666950499623615441956185808132525906360584196332621428008318043297671551370680241310281184979102932183578280008431805195829310734527969871314988133215388318102000645667228675277101589999020973979547545322170857431329724134896948950639841602816197814031484067774261485964233511489039593573627085066498821012601654467493988001736391577394645694936648855684905456294992418754208879656914273715330158362989870088533043101490991355550203260682544946470064517563564114861090833670076068325850480948601906129761203909680462500323075822638616262175695744668342418224395181689952427433237609863071178426818741593071817690509323054340433156319174407431283521561628792257864878475503281535700350617387490630663232942006913966476293169273157251724607300145229478017445347377644815661294011645262698203105537544641751705784617500220643649971142775457895547767892006626286414481021615237468917363188649158439599132727299563829392134118648145107543479608274317437715653639032891541193850947786071448556236350573018158630777223909095174285465025080178806919488286576033757472923384534440329811127932941640106477130969065212294291439297142945933992079217216929861724387664226958566103761390364976972454279810218405034450144359036246692278387256865284546913752810357133904131220729334297070878948959877531527342034327404465969724382618841897236445142074668053685941748767420864375138199982038547987333070072147298686102190095128748258786833690228777667162497326330479864960833174206738243490933687077356550666298911682817003197001489824443110251740237000252013484175003655976948074671147985122763155432109211282409903191447671639440993838727132334822837689617858829974823232616254918722127635605175633529600919846623287953499811958287055506519440323405053874387893283860840506277156440138710386664290780543910024600040240196875413842794676383102329510875986746603529116175140111750613593465883416142373584782131588192482211737196084291017219309897255695808934098900989396777870219187699690364786888768267842674715431611518925405047768375318564332269401351309521915847699012105020657522418655822352814681053574690721562541396329303254078763626209808299719870605133266384194399505392220113306433679812204219784806644562588192421558066579464170819587396556973555639239649451662398449990282921954682555293168075024129842451954754191328771440221106178518560914945922614608794577050783562661698935679847898057457294573808793008062364887238539991150564444183167390055749921363431151459079434310385341011619246349817680043896483397125790918606973398806121369753975406487779851468922182946207816701588867144501839637673830970395910781996246637124870071827767069017309946937330453038923582306529821056482094216645369483294395694368734854958170540517300723523650338640966197399036685292770506385091011075698983257978396493412293622947746452289554502628343778023371728036191554817462781126698320314078991654336050579324499948257969839273090355548476799918979146119671136066043193884072290153618231817650795583377149417982278314588026741442581689092532427430517265221166561334344493838391978592845675924587702119351742266850081758118236767455616129147846327838549779153222781997168008014558221729754893697736897069261715961033203319948974019559302242418794393279852931960795437607935438589202292378691947438873954893672933057361149059119628840049099993164926136245943179559049094084632936580105874091220650448707586389097597018899914184052209518271567397426235962799566838584231631016562856471396729023495895377012964704195535677326583081636651205912142487796833640802776437810709566302550105224777688743068437005410075290787576334156951841960708554741083764219823763732762438494482713050338333450880029495463478802189936355139816298379685688864850462536681495537214689407169169225992717424607130116012316875016934874430700672199633178363457051870004457460514145921259214674603503999441209600208616554692794063272636898843429763573710068973194438153219326182100574694979972285284906828589020353479079313157821659204473307637955474773324038248405085463288149116308802193010461857811382971131262779310555289441401072092239987059874534355434399776227268217504533163444960478570431563195213059279532298586757844657942125717731644451684387002960247841505245287454009719123858023763437836318651199044222382571640330737222480605943746322618183652627051773387884760498305655932995695759398352158093877181274124079513535441478639789645696284835289275071040104299826734034850453582490799763265984910020926854602543674934821864681904420210391491309598270428838900452048922701469443862068221624248321579645294284441759470077563994223299882554707256866458968289395585993306428539533659425315746187113755979289505533899704830375006852532068108846367311882957615189278035082182752501697118083992124518152882722235491068280687723605969742414287726919425189236198898125586891808645009835663431781715784204348360760557032947282371435038038824495308819241616538677237134174568875609912640490013004588257261621020901144676059344352354899580132216488376978224111139016442599091710637170358648117195775460784635048086892147550524120529771492639325954901061476715372136853365777238660314537100006076027260654928300349410622375229192046664302535146611426028657499650373566723085234587868239160304892541675419718905477191238501112777076443438840398218127338755532695370139906540243138996993564311805391896269314524826231040138855555706713237330724349408993136783359220825674274417328327853828846308140696381483801483981234391646988442874315589107283611811560375583685318506817582076391106257432945658106767393728785228984547729111819676767954884562716682376182194689316559856153428780004927429312858481671484251547521720103024355809397692096328294024519617412428184189773496896768374769008974524989398189959361412219347577237233691614295120666412120996781460784274319363698780391627264122494279947254947533665570810896321350791844823551539210423706889375713107971982545578897793116939957657752229480710460097890799772959675518243783270211143808164769980812895637327405996318014915908141664197505532178436978135314670312544551660738135132272267444353328856218300599231524662613478767054524055796467622003791323667436623280726857051001950907576241979323045621844277948840267369572426386065159304884297929356864654388060305807757322319829525377019011185010187445184022664764911555393256517213324570786881468585127246109671853374894612087059865030093579760045767764922000518312623011609784628746123021588651875436492279308060585826964834400558495231913199076838767205568262986438097888850647465558804396633184816788166941326619036500359322677082169110312779171486344080324064258119326341885728814137515091602782423191897625092780415576786661047618655804299635234990783588855409494324300786480866559973549117170477032521636637031824809551578719200608101989489926911585149177857393959260496392565309386654814768098045782365412041383774112247439845836264438966410458050327778244100642576075297777866532985916867013955365294208274504447368751772866309451165725659489416379709971464295271786945663337654975938922788045666047028258334170984392249305877493591461486520186982099995730189098813189968558906776886083115017954958141300490645837960193948208751715272834036756563023813827059782351023893003638756138171559121974339063132867494009418043500452831834240815935965910936850699395481190079498391658722879595470903649494669419056142970960833377779639936261631456571332516901997153801380905089142214480694393895782742520931855962894177391225755086501645955733673156644645540132654041749040063605370436072090609421669286308025892116774138628512591898267578998782112742769311097650376372368286499501832577842158915071463259574059402841950815356107393733704011310512262137485382341323603590775811166273633903771965972125790065581465487298676063376862590427298761043758923649013131506011407164262219739850856957502644837705859091262088687926932027163022609656944847785227087272995157350137046757051947361825615081216204587954075479747720587469438503605597541500539546893870968677791446774056370500323302147921308007648563529889590334475452004436484893906036516385656765413700750391178927478202564770794312470251337833935610691111585220974958535338324011297338929672994250510749981904054404207618037839106495229696627754653789654685295279087459778324455123032003646204020906172116604643216411022928489691002731631255741913050196178589002140888004168082663216333289736996895289590997023191750881498572008413469005065103684962755706555237368837480803422729290786922634553492471229628290851117901227347092857399436688414098368997265105992495902457455374516612068028834633091425246348614651985508835182675374840306575377936106784189703341732732660820097370583844819258541672148655774328847253154491680245017024083613531758823232138161773855589613629180241837565025291893428838358078245641522662013383358932557149643204573256542524832210244658038098803156833121857104303523730147812057995105824446615256132503575335729972257683904582095296558041190801258622842612059463966840126237760810360166987409516652850533070594465196417277073382683391452260146209228115027512058665544857038924832259446082669820712766278502038244453820514433244492259189968376665219518248703978282450641179037691416156962834577505054534624513367673313173650508794581234865515049683770252479766177028728936275275941300394128671724465987322078233008821450444441797532272658343714879194297242883768823974907388225218631885129550755482940554598251026208068345895295243230896703362299588609617609125501901775366439148195358485003797541964528116868896460300176205777474851521888236330487646943592508641121937830949238450899579177212561365545840256481349634575240397543114870022527988872366782514296849185221182350657404250874938842842458390317542493593262683491107772703733174108592341926284886190269882108342843836384500201894213540385783932285053952978913421126822281526325812072290214210575299687938187045292972479864819199590502263007879303162910233734654177797107192602823233754488992046906923735415348698650676675043333179780234005206243700299257441777724248074258934163130470634195721174319760354283269537389881258171520127610931855375102286929012863898491746525114239114966412022744198228911658938201792886106155068677808579161062347386538378466588283420707950438590298353606825995712469684701520327874978622443560038733578946884538825962691997578011443356897600538978440378493008400714238221030175181127847905504505537370131528767821185319224228944830156404885084979676910075124625299618176738640797797273043187052306350681999683466596961160596290624364856069740143421745543987768017861209977437112505944973194627484315917261327921450659451949304428919460213029690670992494364583315554920802567858814547784080225660024147207923258656747922828334076670876259943938429532585034596733212529731049381484109147170365119009773231498368624787289728874236683678393833201767245598858258881529360544573077553795816094248020069878775793131843835055895988513293817193014000656689267608223624832068135057267674409710074280194126229758584168547563969765106711182037263704598742071385713928205357260488145265473910077479178709565338179447380012795789052003085937266222450542491876901199582487496652901031531448681486355671034911940160897274697705791452665420073018562178650524909743680849412817969264759641177571645460715060168622046435460224689268204107923347584981680637870388016863931890231263477065862949613139784120139822513948494451111533619721311986742605080293415130760877767169508013151450234389536414351726168157086864751035554226406583234451473439607597808922483935342307600091201420267006248399481816849611750627790718742031566031676933444922440624405477928382183392768006708440908623570276553065291160291628918832626854422846306988649715545421213233604230646240475829490553084288266916586251236523358881749374376604805837995849875985078543834049350988747044659073263614904159212190979373568643775473369112878232329581127426605281878499585536818690814933219031288218115742260330557303329412776340058155326963579595524185164871695866649458650300934480739000108444599599273802284459151503541399479456989422545942739995463591801570751938951424828773122617034481802633760405901121244372282733897649257933980647553485366668505230195950874552735747374554814411448253642337087802540269411089958119542124871727864141142185387085076790938123849398879931995096592643845337372576540560538531513636144146611292608119244532615161219773434482686209659827486483217402690500899449080542781136626205020425733793030811220364691573642640544509967705478397052077387636706792442918228759567232456472431896099253523090593189390810252896923737457961644056023856543302835468540843282154864448355729196634965261752259399185188906990150091356697314544082076531435656122800441469112263384010833230923048881245400651227688018924745987496685586461772470803097460469778545061249268198031523028444396963736614152093472266105918929322701398940424219025387409731656078198456518650302059008754155265800019762075980331916496000481802218232337502033271721147776205739110640486578545300541695487237547207400569652787985245797826775498909851631814622036221007039131113686008831442715241625098932648498569854085018066924770919504248088829425175842486014762285434416323261069372096195894615761023287128671343728500689659349815287461484963119920426618839977744727880968167789352644404887060286173543872535587885753418357839666709871369861809706197300361934282973403676429109787674724983670146860866741446325775304904891523092246736505727416803134807529256365535577961839255205375817811286488334776190382682051788732091464574204407666077452993747210104906390572310562693333843390290329319209266847866623966742992468443284414139230932548373802704280841466792782930039809938499498834233810880832210543814815959245935901880636836027129237783099821085289520026656388770918129602269769269104791513274977726282114378738535987696037542507327920765019961529349694323354574730866683184348409605208814659356428466614110830664747040890354206210180398675767757602931391802040402797700161557417746866951949419662333224005657019969428622096720171374862271595601111360311175903833066919561555884340139640810784170157167928441380869174600883270892772082097058670995478278017733143857891421845511851716720626971803430787500040339990979555949324981257003237529662354942536562560166315741426469935925692910854059217558443821917319774933979488770080078634662280891975393921824958827518081940078257298801354292498149469949537625443144223452962560409001030547959209070875621004975374165307428963132666059600250284229465271811004902660425711088081628736848232837595468011435209400921697211282024094717639468597285311187528904158083148519832898085655427177375791919399329470590021844991203786281261450620288580962503071357230143765517589584293195604711693957198206089240131924811670632520732460245926769648441202296557683785914704856701136969986090647633801361338038905576621797480401199221517992032561403692828451689337633999792914044834746661905794720861221734318659841357858383221710320085496122824433158488308443338571687711620620560904766691089400177998321522944765004297300251674074314361428510578968087368253193608925296876342216611910056119768818217150897214206264899767149534003058065968197820688654435504466018393161790521094213707249791476100783819663008137254268677473255862211680098732006804869722751036098371709885622622631397634436157740566140408531995492719611348475527097336152946474166151769844158470926253897116470924953083157427593183300462129065434298161864733651830578123366735455770174882113545366600389793177609912024931850610817353884957957572373286284488576170582146519680339313892492790018355784254590840535640397826721483559286489627953975625961890788392986908367812396913264878406584902094510633144067077314794478252567590325969170198065688827687144378827788335834799901144897051833439711861741589855110343233424557950050427231617639314450212903787144421312568232645596740725911324634193546301990377360360690427925197428086030470183453406532213362541046228640595398530690026098894164968671131101801691057741423661869074121037242760260651859547171154695447669367133663560980423687274033854601626304382934115474067049021629644182232938455678828695568720743403918247039120766584609776014307521909308258059258821896061049567208574747691600483322405909201413851166112178464338533922701721765099547629624573753242053191890296733145044519943926083518909824600196929430951512708651881637173659679870686599921399531772957118077136078748987948881365292894169697626907521730416602633264223538685361815712682066804175608307681602290645199652965723415243439855169696131590747048751888561166664811618171271283893851000895082756327225614592497879868346002782707175509554272195492798697553572662131548070591280439318136220303528982853550318370254499402779551563303360170251930744226735452552246671902683476129007175130792495694932102804558654473064569043175842671982463733214459850013940321048646072352043058894852580466009596509622825779791240826536920822645785201187076670451500553938508403212849505253908592789105095616027530934013861714032595987358683981586482293006958063661478230798327704832800782121267099954552946315109419001639814621048048588972728396606191080681847249042233202652912650232184326855349120061382228289712001739384228739607484153220674274655406351722682266163514411839186358789069268267273819827006174231572556176193614787416260335199626259245263821020229541480583040207212499494468128436780026066194843419565501248712606903083546627854623589714533553273116444983759520451784908095740881307101557185881775185416010686320669434719761243503564444034174968515708586239603194378953983368636040423911439125304850969054805418022180856615731489364051499985294541955733135375012740881340183917144146772971160118000083051679517111531400692315439135021436127847157203417662987375596198822786928933503955859331320730164420131808703287382076999594652178868817583406871015848976226363357875515073471043313101458734574683750760240519750237388889420563563091873417157664579218342435892023812017117575173083108110999126937255210219320467048056254464682906386376184211582736212834288066780721804366038615732543225841166799616072293242546883701723914119876215069414789781765736809481570809889912700226024756758799664228815998220091542453481287279405526590475931786638523026871581153961220756295141884454415068185097607899863145694102229108415788765607743450929305690706163325798557454747126642090395194702676181840045715047372767726924218106006161286341608646387280347678612791959903968256339055959052080246901703617557665919332003081873357623629828324357718181996484149795316453157289481453503862941896631691045901838061402863077046531439027929852583667571414026713183057707185819049603034738838573955993619709702053962232855776021489554115740741790903981044708184696480198242967714680650922819425597010407876238443216555925161534488716689486066704720947956266672378106563489149564582109802129481476732178830072646127272371112349252475607979953616563277561167317182064498096451933965924378892817878985641813866268810072486378247070722414499776647339596105557951788385724911651984181135657937306364935897170434433575080585779878911420930014396647078406283144194129975782853732296075137414031323877506363028514642231969519430503233110096684251793196027428527489211662561223716424435167790341269178241804053238688190707656753409616968317224724452140926345871507790009211998858567147536018109668535478274151973776360875123727184701672807487911544312019905844588569638879241784951608846312484181675132381947504664477633931596221657911045620084442779609445171230545717921059001943534371353387656258746316330342642338250381173466651553271348286944805026591466870069196748723206761810933187411043654909682522280340745534602497339582238536257584433132288481532807726997034081938158027457561257797980536735164678905613978296469093690022662222718442736810303871260489256655394938255198990464434737658999239185050665650301581694358655289670652501771241823314977092803498436800241007079377770047204323150762107374476068466200966774566905654995320819544884813553612578389094838875864185611245511992579544272630438187176565508296945327268208660343014397337617897236116279860382135723359156349219599442429292358468173501801746334443513804486032089372353253596598955957163613072944039408826114748196258165205307070244455890612956539469440471897636832378097143109104630917980622803195219163465485329149610315287109827243516506920555640834671504448578188739875190760062658238924716797896115959715291951509299530842705060304256406486227721458413685603612190299906100891508330047894775437010561618572807236283955058699761786280835713650810169498155362950056618310057001125174655703339828654589746118756283694940072550577239079214815454217483387228062858923690188827552745198988472232241883333320242488817335353648022578302143364664183512171322126541175877616288396316166303801709533453114693952622641535155392273222722372304985382613368657773693975204819479208170612003216681657294196937900168657209098154687636465125675989211081885777088391057814441432952291439012868579578282168839013712862102786890774885828883093891418844678696728089384487425796635512295701705347873757004804027502446620162682035269609253702483954587253915418761893409362234823172652952728584432402914298689046832712322399448777076849457282161238338875131616304429017900058849878317824491793605249698167143368651871332932057436808019360264522009727906488855613764894299562251151360664061956396560346085264442531375986815363970265633206368392601236860228348888315124322143770971997933215663267742322231531927278649787355668812636552553405187054097735909034096970587866682858559373044760980958921866249061603169795866348995656195659717053529744676350566093522104753765542206690430169347637975210174532756438674485696163690231451433970305675065880114163571285501820876430765510156388000868959777247814349819843404277211326736802311499940070036892380187954344309924756107457188501711413793729842392040341575105416137602533144680294355685867048412055881894513107825427936085245656928614133547919984701605785048641557445211840164237067717748655874529699844316539434881206380844759982248032315735771612063401722227454028979891716599184603661846115367389156486583231284029543608037978917671381547466600995835226176321046529921774324431972409307822415761447030974032096750098476861079145426918994444738209411746004694065812796308023322792117912304692069438641294627655322168730655155970781652199003597954599557014432246673780178185657094836119140055505488189133487762186558866933004786854849823007427924973595060034724149871424697882014157672040940908164723679359908854031392823207974756784702477738214850325066164738447643687421234897744320340098379124418764549408551866381199225655240664809066381377142202670657330354331491215728510723616184481165609609349466506235219578143088441010334703766538242756020938428988477213083853108509028632201777785884980725659516970763959366626684312972422797562059481864482242289844923073318008897980466983349329394867459104589382807086094370796819768297746037543654259068205996608882210065959141684163817024199780979571862846361943008155077766846998573852396691929997798750200600304649305373676097403114696923861314267420693091013977855621331624723480339869206352396134620574091889910091654116128350995739274582941946180218992772824844606459626311009202693444119722305908460162141028762675527159115329538813740148366852125032461870674552636354009873211891871216301581384997395080388386551350245350193364040162785743470840360391667765962743064680823693078833156420959288030393321479757554758235225096595216494379880233048211159815546048500536256949360384936964346561371545987264310009121628159167252615564766566339739015706033774492290601447608879524512908505309989082506848354203403961409079724474478054388096966157173946702478675201595805855117409934548282741517081579119582294714518729656202719820150084051706502738612374259625325856896981417147524977930778456859449585616433224304318983723675253208741760881051958031927738870388859787942748377422522023744786722518906532159371893039222955323328575892487426341316781927097469758879161338075269094821949428828403214087269494462563680715551916934187863650415663001194742609272242458067201811985597328282173947770046132264438523540213332875166931523573088019194050984314860981945508955899369170028498300644897266324038454474027506548249945690609889546568690975870263550396239444890798982020318017908214786340532546711958803172801216518691325689184857023752531999865238083189743593335414349013234320482607666755613909380512576210259693108463342573226719352316082853573002102816936691438620396468751798091743324118636928737863173346816046468048679408385073667716237856968076397729738007402537738796602054415051799098961152776000173178896465866782634680080670676700051146048989226342416375425307509404517420994695412177272379005454741193830259013128406931995175498118771575656704556947159222806406056920828268265784676468336800507668943227121805838290641450323593325367538646294425338433181715138549106417649977636517820849562654751435085276132358127299189634702591557146161486192677090296999282628351849097395450216808933297190327629623975402306180899559577529213315103122714626331314008308011864855737012059446597375865282129550586189596327444699866105083959465702966216307049706891442876680836476007010694419299753304236733819435297776350008020347450318061514090315949705158027950329343522662804738201647389511887736966705789525993492407101562740807085920655157154881559961991315160937986658605069110670376868990374592640954611021493631034357738250251657050741198410698714107530186509176285778382787019453786328941108456210723180832840280539654353089653354861800656692286964765573653025128973751435707854722911572119256147762100436801421429392203497686832044488846316040327802905908922993184259144282361766611216180754158837651156617365067960138891675935830036478102969413357671276304210680088313868609483626472941117859821487848845483708366549246657805065094024753644605949100320108583721506481404038448224918036444187409798199274579398635597201195098233294362313341940274120006034795905014360467123723241204690356731072572162095898028366399783237390085221489325256439317377983585366568751431378089305458703796968475554167085432083737020927178603115123068132148807462603591631386163080238512954906120942880829249302628571587468893122764671222782123359108958623352404157300438211668849543554577381349348302383729418855866709732624873565095969685436535339494302880559360108164203447540470230904440821210649938578866770783968943666653242270346780825929096914086144945199355941628774884151293785369061535670863249945497972384323386295047708723431612918801541228405334409733576799604363729747514460951448746733186933515741673207466938387079967961304554846217554289246342762896984005573442707298463929446581996542070088959431254777457174742633622845765032564766401445622783113522577885295138492334344833221448973019496912650678801549983873994198011128855287075135779777704746848320746629976201189451897498758942463760146377630691287301971732514272579289405920202508250184208557272986217358497588703191487199543245660941674939386777565646778805687348644512130580163922726251489778279664324128983104999523623475218790651765710416525811016273156393114525315138532940407125553459553046705029108551304237398271803721351247638650015823542866728174439508431986159956938139623966401361441216128808065215008805150532530191236954281988697271085402499117190819224168697089161164772252516440925458529131642437869738862839074150803161351553497960381142044758874748944060738017430340807982464188177573104192612257279584045749052968676472931041374675275910495321448553440841657883871021759186837593507995353947169688511202029234937920199747915755958561029637360663341307530990689721964479416708568628681374744865200723486812271839317180119562929306860571974653292239283995915271675368802670427029378828861461949630183236942101887678964247849558718731835682710028646466253699042760755588779539025151233217058590326308785970818318091237405844760190883575441029034177726652713576154525304695683214537297876757332319817466708738923792319886722058325091790618747217139916157075835577009599564863609578775966675500932116500978181840062014544767982960445700090272859835151163085559068946675859796394790004193798069232478616105392849741498098240214927585627647532088777070498842767458790741669307986163280677340944905018077683950578988577049424952796273515134178935635421915542395255773763185014733643866020706469718203740219057086308901739682291528790787177536034924038290954225642021119860459140132555692555282179149750714828323185165380896484197651322495653897521968603325195059755401795656818189747729951725188291368598084924937316177279487660318332997202997217694162409974568568940586587796886710284191657177687642024072651538835097442417477452479891321426336507241436829810424715512893458934397082136269234174900729748428313126393032181330757107361991679341489034205692994418301460927431229702495108819402221069250945500174711067073375210665050616328002167517410968851683932226079633561439979194153721143700293486094255157074393492144927519070858968451279819442421146944676999930321973744975418569998073347765365835544136261588421535051612254425535742203005474085485714794627117063271797562285567303605319311851016308270747724835581875558653046403772458304576229968370094634277146980546866400749911264681289606455745068193166377784686543477537620394716509123766344061832403096042971364479773311449941633981156316875387310010533175394870147032204826961916183436606424867095970780702061679415828636232810923115022526230795061909885808437549949830570505535216247223606073866019704632277309328098033260754791780775355550509960765237039118228484412835521162770988209742769314689187407239914249497880759466067335904457720209990790385176293758024304702064730372081908786569762092175235760648463307776119327882905693182680204671038702798786070965270974732606261533426037190361788835172386761938497333683993826239018168890443571736303251694496810656424815474417893458113507092530978276593120157400225648551415045581083943594435992522076594041977081309304359804151500211304962665322271691233423361891366348192565108630588795897575286389547791943652728493869228320885085082012375160251293763556777431103195307463115916871526765684975017742216574888265780646040399822837591386470984303165089035577089418251467611166452976695063651233406420600030355511054519898318819586559463759618439220876272406855214809703778295065058084095365327738365627122522379566476085440458901859315720682824267502955496335215144487609204856621528550135138160388319680725059607928305815843611872810039684828855526039073806962553731971616212599956925129950511375004014079209504303372725241039039142494092489149285553002264240855440319576091549959691801867269537312399756007399191885546620001090059466332034216527801407965660673222757931426820523062289351531342868519485497820609215343753525980209951199038616785169850757712180277472282465528266065456031483936678657311852123989660990097206974218551422348000294643867316176314741624547169007496846392198157847145172376371060586773829120545911767763859503436882786003342345690920783259297743246037547821448857431828243025882509005302540880564585513714622828885963270946912125970725959489566340728249972274977709837217446196706173290495887643969238705584064933545443159590176250286324835487930601182147823735861813002046441628117519661275861982917065190334324861847532434742028163615972267432587216515871139888252887428568281872074047508172037286996621418693305363053429798012521752503239616168179465079869731173017735177170478021589487793306797084293409483224292725114202337141100751055690494804122616788977563796488524727820255222194741292980038947125253450308700518957470172626380880810665723294929235819579727937138148908471404200678777824880538153097903476354240595756832690021482159093659633250650296229376837812913649669367839370797994991754562607728950345793926236379486413139205869264699358880380077336858745202763794411000996779516065686539614299024876979300156715850065887080524921259072215008722840409941080983111667257003997465105693703532185269054978339114456526715973195890042477310945614793240192511093980063771668534528374414410181345656930939916950675660121918646510234779182384159285550838149379797978422194993158995356889828498523185468249623509503178289650574333919399584318594633913833269795149947612257669796093776751373989980562251541341520688788856124256054562432250032206345823176941112893196368928116943959085066029335322986691545201220320237926355310619289375001103202637628256197871062847245558232373664608294882365055098322795718729199808486991836048224748167798782998200000527842067370264657771617526509544441550861253056649423140000369901902538270283077170834599547026157803992873046475456863256154532055397507221644702444773917452265799607203981716868318785684339206148046464268641075710770148849664172124985280449434869093244206577551248187896364131510247012663544745837082931446815418803441112428460886738291431892531796550008836834252521637924438746946151136783940699513348375389834104731080893053031327876718063767772662895883071318629943739077584050367659905310673789333740213217503042428590154432415427073031443429383279942127521051783474367038243454481355959990595955219647100351679527385313906035662569052760645735183545718338374558812263838600062312366129279074181993040277004943215458696829881155769558148780574558054856732332731288831710302779512283800900077134818007982016848767124450602386017531841715746484584968257853250893071514611783701012028092037704634313962085960444224562829431556005486160577126751084886008906155255489436887689355286716097777780145332996189000370036124129377176321798786780405766903422370637105278457212576340358477741145156689215719845796110289802717434569884692844090994285404790228431904950466071535449171093822471979866321014463874854180193725878476666438630769679133848954261634244695123429686523991535368709752702460669178529242740916220658186542012124167890479813337893752507177666811738001556567324232626835874930733926356919625316178444219658112027944281032999964839423666101317890993509370820807169049701637973897170923527451391882249563982472644025944248107221788022079720352779438698368060051380886491182551739498604415784275164818263213854902303887174032098375263090787369341514071410201343267268451121256947912108221879584214259457915129568118796896531549853853268839502890358302434491171968254087764059173734444921929648018340271086118039798169545377382258361374407922837733527257949484553685363553410983986287544515484012686459082685050315262551906769432562764566911398971386523758178188531875836380274450993546617363991921825987381111582597258681828706619663218666007017097606197145906976704851733006034850666649797060270814596157121762801587600179115484256792578085529589593963139850971762123317625097336575582212075828621167615991762932049829945835796086065554529981539050533545487341271587115018875868890457335027849520738706577357828538713397960806243698438469956321602536812207746643231884454559434571975814859014561917217936479668420953126387737518631804864379395519502995117460594068612683477131453935859745240858783550505438764284084737462987916670369991100885543926858149577332339665442252322652590899431111614598732962522973392504356959366907582719062156721031513704061513468638124745284704679471495600081172370509296247298387029581093985634234051118297980523330051236207202963824887507688721991684563776540425210690096727883406968434808469635913640390361724316895556467582627631887458925900857592585713909795693912193090152297371169652826490096491593296352888643826515160461931633408497615629815177344380501029855806665990835302229915861074023661131958934418859755558849472405265460151644602319457264289342257003488195885656335294739833710423704464035998934623789894380023673210634542654539168825099443394798788663258979066662048805057573875217668968290078588457438165526419183938036225461897944450664942389151105241369665079908439897259116317405223695978937505450527450523499949205872702051319371103186003009258514426816861278281612789751959267129138964564717467240890979360554688929201856586324729205356096901371317306375027523022677794757214324035343423709372461816065299890348366371856468271453370454872991278135990263880225764925021946103984659986402506773328336757455310236424109901293836579974900517027678482359080061526967775516259202503841030448250468677134880117682021403028103929808525475286762258210739185311317678419109314673664934854215372839268427700991430442994911002612755097311350206966291721615970443600624702984254703147483384049775505682862415491690354413652776583455901954903550196000479312631327711471425822273503645624643414442156880683125422037773707525412804500623823625703856177137206912543701048118417415100856038191060005517727422526656382344551214703270172513213930067038767293194240990108261493045353812984732032332274317191103434766652181096408971098166905586640962091467813180374055392799354285554192604719604668796959464815388547648656196495854345768002813529274283174453627281679951754330343949877545018262477239976826811547519398111097919762357730263109922334926836839340132317369044397011608886313439858204212870815824604727825390462547649698936243286256584995338579074115339133609527337193401040963477049095350127771960252520559148711215090043524234177869180708263203386305146071878333966375088237760943237235736795402304395140449009915357516954397234826205856516373086734177916493359406984415373297710862300037298694434047300633976252677737249108570783988312530868901722620147697286153075439427602611439652057743734371555514085838314793060833771560706700628131378501575643890423125113927102638428071832337539875742303760624112282570512277311100385977671257328393389913026594548648445995373168756040005612172261523675457220754152579981524381576101652569134465831409581933392175711075683093158930744993873693096872229814598462702723432088307055831129475464139378028504289302273602055636015400555918877457311298743293645124672080210068259838932155445458396753932672288318285036909917700115595058277782605157556296060833463135926716648738688783466522913504548590907449335538207220100799853583837228315272780762914033397428200065807031343535106262614057566507380167022435315823278849632460030386785464549431852420429899323865085254782522869224130773626481037351216614011641881462282688489784775070431829455172516981638889188867786785473932951354998173582803490510924832319874248793117153940504807318413018666945516259041984129539050458781044138832283570049956955819212968799534995737824105896878052713289140251722048235045567822851913858368319827737564599748332959848585120207844216251384325722744264297846523965806929372242645292859488396627844404109714190043961981876893427860614561167010303963083232802830726135838023171165038227392422071401939505959894470691714073615122468681914121111107816113538826199127662546896479832207497872096408511368946748090128749909755822037333631548614641096663504413470753491074470841367023345906946117273680934870572131973055224263746899992488290075558376796225337779984867759582197618090860984977127003450398114022099236218145334182501183985447563893975119885628467830538694489250403669065956673140901051580139988861814309035266609568650863000349455361936866191223591737279849801944530008489890240854111388329168071339244072269301613469724353536087116189882042502951242706317115888495565545592734394871858324322090705388244064346718706599825419735225637807804060860244986865717904263340086312754850535713605741594597358658732874564097139728346680624561270604196375906591612102854316718356197501766438042314442068665019547295101077152612422812151755260017777292265825424989670237534712662953346123062988397380802871763925471995117238441554163183779931533143942035422043183938553341174191376920009814121858065059323528606658579045279532329377602059136915053063323479784623690485030696930216541664022467771221331661616827019889936771469095004371082333577704555585492665969494578732213929599327443097489720781149948375366437613278320188204847349365208521408672553335914642238702636805120834907073934393939930158620336180757711011916910541201533476414256514036032820066418638551659105370244941218629306523470452957242088754854676303895871272448062024680280509412801289677338692714638694636018670455630842329680362929897366656825729660052964245584298694607261112154874096776185685955622332997916510742941779298218394853495378655670306940662803177442140767805199557888971118885697502534303247854955337859845757244619020678767365162732508179195804920062914893828866512189445576370374779398451741733738862522500577925004818168228491129879038200040783453198006350576058996494837756909908037701009493293830560063411328635622814789705072811287942358794884827722561548031632914175379108565232369306627427259726500013996071377062960595178670801317572171009442194091247723360980730184038417677903294203886354385103805996740181583628004097784958840330103099649108310523114784260912953056368343368805775578334684808235463658943925942222505339705758474417728207190765965075051177196519435294797802345204053312775193452418135027081720389226667347287062569956661811851942785316464071983558162450455403254334265806302511992288611959212954696463228074262454518169887762581862606282053626587999689793052332557157926929434501688877801194416981489185021325867423176773736018968001279221310762703584535646412851561567815537265485416302250445982275547347347683378473767878750706769183163247203433926395745865123829178946940942226225087124180816337242996154559363204214658533335400577725648750162480408744815878389700189324547723927385409354144221603004709604919279899990874119365774820493217226606399090279502983201679406409499589227823487280575214936583883377306258924808174821791411498516386730661024862409696281616967464663407556914697384915405123161396712361189546560316570663508473864387866519656354426819284860853752960592930635098551015430870964122987183732262052538717470434043443432108265114184823074149334226599004487746480102712775399084206361851599161814565757765048996017441022378031095363446371959234219123954665497539555910010460803485237147581311349754555706138122529366877293929624835122788181318279175875545210000004644257228161298173019293549221715676272045177045317106533797963862470715620306633805632867250784457952243053065832661761682127956619200171606057001426353007807359655836703294867370671620596496015349386981579142425049492256979657745412399542427203945308997789485953995467622162217685363718928448843755333177295877909137827926570087849471483660452392853079595127570380258513576446604904733665233230656812465011217648756835762050303824200585849490311522575473127430351149402840134432964205051413186520637770227790985406709965956537392246147177416417057568309242396791178171517591297432007794914188609772406469858313580714143449811796002578875289451771710525696772069738793690616441549731159955274073817263571138932236530554561784885456765950355908758194078304822819294336271341476991053447866615022158059282322297624728834732863887870688619806258301966582991842905162994953941366582285112564750039832162637257829837214710702440441057868603282334589197192992542975023516576608425373998181270235324206264858054705953312475018923162415642479093594194315542508338330720901855969419384148860819526963137235696564373183013020197841018634840418404446805701906192211006027102676036256433515204104035557372067503121551201417684882221163704783683120128470458880375718043840475157693285773462426845232044060278937076763159616749092012639859475253112263537075900805702683339437962548246414334826931953931856130042832309939844066143598142440303852987915839477208744716734505404957972388742016876061538606757715445069871012051944839517947855770433695657528100098458864126366394926257980185685453910156505121354225269164196890131899033014943593348550395325224990649344857893960595852607051820396315001888402583202004236488656017899661745556037063740028927030029179110564293393304559347277122343402299508196582126482103245077138490082747742465412619101153445268950281045210282149647194374092807277874073474041433615102012408092942425447103500272990595598573285972920842654528369479478176440006505779703070796748247477257095396616629850310521813247916905503036267802229198466747259490477773219482154934968677402496064399112269425910983757179296688756339861898343122667379653715518218416330524301060145156373771371677188825504208535195374838572925589878961224271548550965166873882151732226152393423212168854176459501716252422353452819957870595562536662575429358465559653984180450786689885957407496894121959910421233353948026012560823011363116125291789524136513708173091955674160701356150040146217825155936258535844936580195211846561930238579208571884622613050905068200084850162980863006763124936759293963582917002604595547377629755164632556403848660074114474076750317362497664176161994822608612553016906937888987202178733819931091831763923287039609113293715553161296135423901212655134404963796088425329877713831497658028559828685448439880997446192618241860966157006708323306545633312442649668179558935314479291962324621670777858858340443636827017221254553125294847035673550509136283647550096551728707175951016964435858204539723698993222323119461136134433368610176272834836271956814280577613155921473020786543350712022580627712650403819570450164193993470957983371892178461694116463424072107600812199774887821869506236989579901159235605718354472647588937357534346495102148021666447336099559341845346143165278203795539597416273602631012452254266699370512127461326754242118151291709854558773219519741760429570246432251722391857531333892635509953064337106997962955467723515521999461117544591279926143672886175312039780522423390360028362691967422152640189552908912186516863717013793315355446691854758236418705002632552874706100043775718881664639289335080229462234884678965251274469553003626647149900529143189950923327801003876727832801474711053550499675749450747362889343058533194393346373702554277684716280376391710527903333976295134756104078794817085211577127817843068292603716225873137119974221201793643818701909336570672528956655564411102556902553583724863897040181428237527461929123378859512564115001155520281098450246164626416191464676734471896391475149589522974282534718179634929817362409073674806777382567385492661459698897509951743767974089059064993630340221466585179086599102107466459226332216057983507501670981180142636492977093486703247262766745559297237825277904080199414245934812343806093185431165581397985770192080564308747954268292454760657887263609364413384756839322876882067081952912541643664440730140483013659107032671452088972134352596392686993486650135377090383611219320777710827252138319510160353809810993225381876899722741489063712244560100894911205267619144362627830546586121799104078429754637068281390415491237456454443671035430003744756867025258553169755656384764839898918142020464991663991968946544187077123345670830117630170024235939201982344406397210618964644099446378159001535626815209471197195164810145590594064083738172781932180757679606847214982542466421153170612065806983344854477464404077732568392573742660585561675735858392712760021347740401897540962268437423016846283004195192910772670185995131020504957140950278068951023058110911953122401373611084466850582565933720838475611643315488943675567954810389590616792201328292947724010031286325997965116775905700331342287883739370263591416285119625104149479573722672394897343146379358611465250424275193978988647284218555200806102679960055474711575271719402923105327302570538078149046263215468887622249901137658945072358464352341336634758859073607194799928606021281672172300866397167501501925356118871300491218024811182348931531903199627443624134049004518321012251823128377113623020250959610864778139943421337923727111355596422876862599254760340288607723711035685034894864276601527875310944198100372816042053104803790973066376609455959936647588366573970814072545055939052079955908669507405354654844041383322095810395452909056921475437451679469348125612111330041491001189167533879867840582857321583998736143812367693089487310769934305530280425952119053969227175094487809046242578667083052699767891898805565786161249128241644323734894947682168712870415608161434783403241669319294463102802913930496853383494418277899462746464854194794694422391231653599518002281142566925053028237561263320795758596970596938699511497846521284479955178086149312848879890850442429268500782882883924983612265510214803384533511906718862210252533750355124436298134433680813602533608888969675318344507784122703676655134768290704347202110094936724274649676151532656670783117812764382776956924944095083799052722897585708595389849634769978788224879909459777347396335904517624228007773296005915624506925113287094975883891116761974895727204763446600745935073341618925140868908491676759765731990282537327009044508372250833625854206503024016846475708370669659499177696396281836992017023847957529685268749949622648766534927432181966071377209278685401069074073110180457073793386453109693921523667516969334523876383897800851944456879813526551944194513706736111032141094958351281094668757979581815638077472038921795488396715101420966023000355810067613200685784310267646739341813946281310274497312041676623689599228951185731181583453788427557643131527029145728003371845637555514368113116351256142925529561854144824338005774708794356402241874975410287814320349330202034301018537660037557150821351454332018669398897250609436407082242352760835992477027866576562543641937053051191371279838771565480861084544467453956568796968424033092702788326664939583844430600824253838888569415054568774163085269436103546780135174829822648613288203204411770518824524145811470928010299172684287256008300958283772807344570148656223293916244940684226837763193302605815805038656383887704543510921302472308872268424696159656086164807013486380793991902447565569427760951283830397130256223959300318015331185260471290664506389117833689126378221308314404896341157164661766005015975435783897315064207425395688883330936783165446766691135359520952358503560871052752850420937851201396932838782169423377878196341227515560475036587523211397988227596840453991255315504417338789586550436134577057317044439677642764262655795231835878450691832349782435789507536942278594890503326233482977952099617046437737156901253677987469524373088505784270681016122431859166951079793919939474849894604888079226894088740255934024498676886216672163769486034560319005722176289753244375358859820155227314716018888702476226321241111005104630682527413852552198109467074510200902105276584891861700875183457587146157524119027586843713230955585864072911073589747779362601673556532323161023434366808997315259074151715953015972347688114607783044562194697115989292130900291804481659723255538211655288727348860147692142665811234500541585733068430318121781926768222344050001562708794479501989518112923885938189147564656948686224018559005945617709886208935970444601782463252319985958403519429301270134225324700450492461068624520840141859837264557317127441351464571802975033518821553073423094158620992372254522502050993338471872630106352312763673896100742235472461335798655351856940112561477988902360814626538290307802879944693328010451248018211773727412519806775291976604432372548883797603122371924048263641800686811157502923879869234896619998767055924514521657369259526527185685701515358807372000522461405057417034849418058669093087853225137141285596370324593667110017302393357431282948659706357319913483218508967966479390920081041256027253528803593615515991860626573530285569251311279240339881381743918302629385177066288933452662893287381857098862600507291510652490749950723193065691105731299337214417520550524475012706017987142407996413658250339463429462487194479744068881241447672602747294933918225490297535381965536588306012430673599166589820144245643772451963620131176696178801154037219695177964921898378650741958182979789015443819930614044385582880412051112671634232870173298012726993886961069420853945325853074498438769091366820888651401208587892945250968600038441331725558842211736479072505675801889689618716415631706887593231662346777312350294423757068831726318185130668622166225828683511306011071630558048550094230249091396781453314637760228103251974252731170027297075129624434736263471085583804166420694355470572815077400778043961609426866331413488286587613424328796820999514862538470933493748986765015827293051156478294202789664476613921306146100937019361854813183836808676558583056966378108996605530967506768455251167346250594787049538109468536098854193450958115769381431862040610365669415758282930772446644003118715766213680365310999409537965031470911318456827627494561152823736994299494990303803615514507668795181706725618019719237051787422259001625878835763052193308467294020436097216930912342507593401277469303519092768841990452894977765825957750717008587439229359917415288620629274571365298158414330107749322595112303335282864937671510169228941362141505180888676025365733215818318491598365617526038891707238742350485948468320784390747883463569660861241982219303751356096965661081972998040338225655811397673550217262810100105302772744903065149630593459236981792874746356282578546035660272265348320860074085458452735321331725534648394693668538562181869760924027773928754260755719783622046488766919635372782909176007707187095871507232182484504499553810842544389028861587746432231666824860247341059942569279094819817246910689458868273928900842934634261672450417553455485417738683512268294833013093074260938387865243273801644384963716649233502366482417829680554115296881136420663603821490022898641850555739236488603704800144845406573235559780747844959893489779928997576667048276455838881841757487952106811208924639775069917728259358597125069395070168220425755260608674235596739963555225834591219928981393475506570843267994950861857680343777770145910035656003521354381897564453776287778864864148777756393511806841942502994675863446968180297900411889694688323248695882543789130927844851379730920671844447578279568532653089546503499449772621607156452840540720885919722870112367517099618904544168302836979384914958058605127104483069373550198318478827997911794387816890910936850558013255085722494914267429503604265196934895558117960002793088079740988428715344874050759610766131519075582505048731203470041576807197138456292717534351693399818287920813594714593631834393708488421671933689696619207121549990765126555614655870121525503023497987289290858160557833923961765317987888877840679705007454640880725454814957308026823910327774237509166557191517350729234159042970052734446598210595206612596473231293100268274770972760888302002112465651920196582544017951694345254529926165872570875791640863740167551800720738187310777102821661464225675460494460749472085907660999570209778358728206021766076458601982798116024701895325402106290306542666499751673486936227948129160643387381932996561264929123325799527866841703589284473040208634916225644198955167008494082000707460093108904982366392813104239335488115758932035850988548251074447720991832327090680911413543988974004153827838880317515979798960996408922927391954592390881523824498894265614062591695214383660547717894626984692278629635102927639355795908600730687424627853785607280166825003979053970052818527866249652263745024771049950521980914631568325016068039203868194341609980960753343067324101888626333262417866720734241251908822880343055788578812887505801198115664470240815174327262621922883300159073308051987447229689412528198077514340769258188432967923485643259142617671572476512572237376584988358527432194810544014839254421053825902776311191555210682412536844078858448186920112335938855004012529911642544846112564059840442349887840282947379108877805011651141064752080016935033662079658029616692555863076377356701307424455276817664896735894024758524887554969664839293612999823221181514378308498795084694715251961720189440516394297402627176529636003003798231555679539901806199053362322236955258072299393775712748390490722125595293965333723161183350595172788630417451609129699395833923503009274583767472575794020892240649212691705238573544342061653063259881544498841792831585068544219245774824158600694797874195260974729373837645546717797331356245162381767502407522547479988088916588778877233065535704155895101824228858272640158566586306274651765296122344215900938362071405450464842508943798132225135613780106715075298289649216926234353096332859925097228346778763529094581584003484327716736571189568702565157399095547184336913569442841774485147889750401108308151015556862150410443903976250190519959409507375465204977907683046431814192223044907839130018808722323170366447212407836772287610869144863961775788257403694753752653379326006702880832946016859550153924313291708551311612251798289129135009892946344388510471553861307033542569730049870265988485129588198749074160723988179233623814456273537137577450984496749996150129343871135669790040332538492519285942944369030349823797704546207182849881115393628064351520527506965272841298094504308198564334426376986421749440515355669866392562267973327118518482367776980739377952929033821298433776060687058259492555559212697819870963520518581581065930907598737039891274883215370893090253123294837704646470737653176106390006434723502379471723681483167060417153135621492668393687047090427645140630840559051931996840413328780454071266532554574721327117504584204540088889270084660344205883385522298657904972544433758538714839271562013847744734891356747553018090580385270942451379066217147982272151502377784281701211726883212331930203604543340771869068587613833392018418879154255678764667358993479036023798706410852961134271214578944936726432942965108116409618644428410425737624241256707111239725911897709091092356795050822494948614935740627481009982877686782064625157311930051691411507564356553365870661170517951922716610251493990480200136143215156804157949194574221741958588254839601704235362810906891630387494364265819477894287087606307794919994173761943437514939140627233272561355512538557867050468139169851823119370055706740772019926943625024642886699306534092239882671131083799510818995880951152832445176352555701158235190751725685885183019254971056782556372162998538368492083688248394419094223970309475487590997183545937941202861812455494951725794542659287792202243170264144901507376431176328149773463067284773988256545107988603857847101285486288648308215258904062204540279210631381296338781701293943244380124007412770950671472041675929977499996901861275235447193730747641412726365106091924708417020097391456904856150137424599939429225101601432179173526178078620483555356382835043634493552718275521296008704907117914870724350873967267812448335388424283084426304989872744938857093748851736514193548258821804021679064527778963367991366869940063159623099142420878693832590894933841872573500759622709768871660510888749558025691697749344229232902387421362995890257461451089524753315836382419011439660055747688621772255099536165933491416456752404594544023629447475705331874193810767632791271022025801706646924672389947131715460139248446696211902744526759224711675264800245506428735280616106047633096322166138837992060315893734663937426439703081853449935163248541636624103368958052163091985538021533702420514220640983280694173849860835046043743427406693103951416529730924968503500061471596570872568358321077773908130255025922831238454956465841049260622754794465103987982365214720102936473742326531383547480942256557840026957066494642027098402355253875376166573899407697542218881279238242715136579270853057702929235285410689891617483291082117858681736873541421344723449618171766260574460804203643813223748751170766737400745020493236388071762006114874255747526988303808043744010792322770586885844740838493202018521054209349303505968530435265562420999308434073700938610400976044409108428889003947143143042499046230763185046482230854929292270399831191718476394412938878282767954592191711333797154983400703982399221964472772032250897999747443692196321360764220861455989429653473659299801052853569037912741648936991380143627861359027823813037574501591588814894015829796441390489184154356517022562378344203634564230801476438931054051368268479896689960650260284942668515057668180972773866984207452672135508799647800681657418167090720343458805332224579735497637156710693849369689758129913791147102416488523722080823733771303963324429448380333396833642231054871218268691483856686523467492128843581751885546260149963483724447664754012320221430231470051694991764799831613244461057276936581790503981739542020425145409956060564973565621175045203438636727387118470934672154427218758483288334732066643526939380042834588347884603470742997595637175166684645651024331073645677940366357617688208364364840355206410783459752191659389569390426564923720961564507895736586136619558500676127421828272096446143690172860728780207212055181535883164073975510248346893234912994825749394498765111707421207957663752007227820620827794725251677415409709041216379930806511236318969057109370041253369498358997211349128706499894417570376775345572827773149188775912038967450966588247781101674977518844812403743180223060056076495006661724885093187414004895417226463819125132311810291732280493379974821800207326988664269885454621775091120249614854151762219479411887027171892503292190322511443494318511750570824426424229648358887912137382410819236752886187749361732702940532734717739741598391991948733274875813894768222260187102637873453881738406454896687442308701044597992592275440850126388443563376730058439345300967268291303006010863455777489723840300573015512446430419944610940796331678202681917353544520928250178087237080001648581398592262196921466261860149874437307334820926343488248832332587853720393292417672611655557759237933301467116810406630816983837064650294030523691454825805010473122952154717608873072493671391468464399758643064490660119819115796668488251467351590751160130966554710229819169949054052929775056253027161829943025723565951919996118897751019427215147000639344234250881806308935744832329906988420341325767924650148778149260169555429434972825029345130511298032174118730815919380836508136871990160931237254515918319338429324278845372392282479311070677831586443271389595129582437003487360464849404514290343863235436588900635311114855548449670781717250115425897321040480989121189819548017454506200436511909002276480359716431412902003390803847831269114216113295449487362738926938922149836282027580606687633891661332836857552561616898648889116830135725501433182009986365021309512951160187826495505082497074228213554479283862365621672898510170052470377597035147925167116716633058616682937656717827052615460382919218720113262804784165186738531768082406070729427783338621543500702875355480841268791228594836624886059721817324604855038345561609926550839968583625853117363910902088722518763246050662370101787076914720463384731963775950565796053423294769901647282175034058788624824994970454043872364204218862616363017207228268548491304457540722101068009880752547363890678794067524513731643389294593924181025357339175585091934709371933245127511568429905281580099969547515475033452034785513447213689868458698397062986309676503679108988599932264783208415106703421111592032523006978701285127339368225453504043285925629563201623563957160525144739298252065546003439788717212335804777379806740317073168496882904315947847862233942544000416148813413071247891757353641291664661859224953062918084092517322904468262315295414402326665472004364493170634618804326372486889907196993595258595261668642894817194278959625749966525628880840306198548911036262619785662323531490521846705628675639640203821583416567691076203852282029661672056724752745357395188002048028515937913295034802235496436311286677826651197921724768799346194862667373305096213286022194392136318950482474341628252956881995273508610978355803001896847735432222659748927645342361189020523435993341956694535187596093460685097506834446397551926879757227542271926682116801043043106049615455511846670813974267423959031914108855297749776141851188618525218268086498843726713568055276042697458566540785247092548537601577896200750885837336517752383255869703336708788060349711216603035867365616576248467919708566023109149307426698263948704774057367409762380680844972609891731303351878723795819343007913305814513361326594840997487689171839632232343231823426836027453719071194081616095759363021686276227215552484419258826424915264282119793619582228900893507102735803754955401353237523437959987234003755392641076574344976171667751814709964487565938529336001104739707794173194524058225908515268636071042728433163711505907859658084768966838536615689631450049369122353094653540713391950023952535354849605921675771454632063049316655788821659639564703354886754317339674032470209482434427805652862504759605662719132815425088356445990140575636710403358734985486325241889123089437283979091803442750058771546458519191533924420691179412313548392389999150185091247972498757886596321334427812244478184134548881348436762938588559034507790468477959613969575274999211316221047738307264130834662168098678560812437941068412294818673425232270293157205240434899179263752252448996823507293722854358783200356148658707292044015514394889985554721459444660249531100882955834767742099688882621089730807534490089785854025801729853846084759608887285346122837977303832671896138095031545685067762957482407146638164472486556147408654364189854818231985025093179765293599865769922042041188913196120588458259878867402296745548593748428128825108446475306600052646123142195747393789018150629074717753986872535940134002485818899746506309076828431021541872923769599244894524816694639286144331999464133626621305748185974985178070932990080262872527044918922978070152739663536871871911271500796129538863804921165488828271174037261042467114913674158015007916365458136973050726768705362834097918238877158982576963661043553760345862942178001927107697289101587252116595394967707756063789641135229171400873907334005506638493175117737349626084547652353261568579902394601362102012146354185376988719963624247594508153090834006299918946170156223503284305439442060070165386779843700204891984396523023569592160778246581128388408708198302275590714558925245157405497395485153301609453157885481033213307367102500506433062709324261766347831178742949671209410277437781319488363105712214290711764422210044145865447185472270675757416833617141400098175622895121814100115320098191202719704412977207384773009141427756408172432790894636273107501992935056970313737115051648336103514973043413932792226874067780660172587769123608669489772851838239347260821642009268592311202988675788028038653600732322509623370513538917875924903597250536967642727799562291235944925887863082207230424994451298986648846755404438179751416347864218544768721845216608997674860669509295660878738817496704250561120787127808824315858695340112892285962401192918171984132479856062176896762048372941095171948596279829222346179562547739425908095883072601467872140337073703365679594560066346907926438452084140615598505938780195135629676336164970772379941519225761233184529403746714227615952066295989381176745948371380399773054573820002912277550213767759160853682514990202339008663539101259316239989222933704514430729933354348383916584994352204403793513141210578509944983037338373904599700019012700795419334633886800176355911766813103432159193422508323155069941260067859629239247940675832005081277769047065533357884022371377968194448036057864687153351323084517967106492026904472822168965059745824271287128222249752284620070680594840164689207060171644805342953201824546011123664958187078093127379825667942463755408144162256680597711815938539820221582538303888023406220866090657060950710958262640381399116504167179225883418941552008200488136206603230488647597918618970839939321360800621374617390728394396031328074335074837803550224046876494026884490651373017994278642258445931801095970271335718657174922550842949432469140159747952711528365654757309995730802243450535595090336364361542059172460092565856882601922069082476317938301682653392054295180909179628599537347803092439386333395337573995209017710788439854650938146291874219544442992767570428327772387884043946833818073854113903447895590936207484062471587006861472588180871075579653302377030779203615646483317724759622641584813328332097122286923393102180981779115101657860222455681395614600461293311596101069218412162679472199655816180344171108363407575101432719803147063251525043620647649533316897923595350472924562478322713912443033272582487865591565209326065171604099609904522918665821077456502697964094469630975951076186882781432033689492884146047686916568457586570998127221709508063130782089415642736428260127187943856866418956886938566843249177388920360920546716395960874855287968309904380836547714929702824274376145852921274174432494622643907602595231113062152471175184958184702080375721297907490226506386742666243785110245687764047617018181784849920712351697797036291968383548553638652194282637432866020665843504303830301573651528493325432981757747020025851821225391276101175882790766467319035840775205139979067775095957054627984526577893499562882550185641075324255791942456009450259773881901878068327976487233336382888152688743742442185014072180280280493353839463317330066061162843832893162790590956695791540681931173014985008533379614571934544796205429717700077076687235133310529183025774475720611305523770492206631735034756196696352120508665054614965776097357235189159392426073501740968887123952062455232644724079925857146891548965041777444648448473552365753583890536441486540997034180201661525527388842972721566663958442511705453480405547726877197774371658463718370138113182311819177572715907092085254641996506095257905238451510189719965724565842387899635112010115535056941429443169271680764303724418692930873222901541724226962898003881175775872563439514321848840315097479433733165619189850538201332178565291154656511054489158343167950972115474873507849098570462862579921164993105006169250504356917597955784516342609120924451110415427408333752332356876794157795536817494114043417786298930711640833705864727114399386402088280349402153712591959433045901535451407590825630131042679410747184396263104392264275610321903272373366350400118390073709944418043374461810498273275297450169497549391728350713438406549775391458649338595561710108573077219089717595896313361916725564706604076808674295061773537614467234893005481782274366158455637492178467811581822898123260514301478334196424962411922039841943198688982796936836838160783754969676369596220531773511586178691786255479850051842574706172483630103667255596236197388925868786946276058359901885012070448585954737535680627048363977279277448948429561969427169877267198847266865632456485100662512965408245790442204586574232972004223910275197685569216850499201624102361274569880253637875994985859261299899872209554962612871449200857066997770893149080055503893277183797720937141935595213536510498251224544100074452626744357724240276631408004820035179870340604761562444703404437904658009911908953185868184380139238396572676905604499920858485765050590128448319714496770678738996067275050321932652740908931848359099921641938842193265725397874184104843650547270976431585790533474458659115546816185005717222062465415469699060116887186573835403433942546184003002243928568636957716523958889575864156500227514951152259346315434143483600169870082120429458096809643290938719455693242001146189780366561264958453150805895440464346344322985980891609105710274179902590467347810454662857214230153958756898815148131770929004888959130921574664988277869701173040016778692662804360130074275714035171438280819026648139904279954775746725782605314237005350886001175478616916022322013389486317028353239457343145430406653804565756906037588145957111474365995812179157519070069863321731573817149452158141078231360385350448784955252311371502170398913425995096364716703893619130062222772917417994813119056087004372076753957943001540742926876502274521191613382795090460089386790076056800619549945759202079997456935551502599213870933275606420450526465512470602353416334990176944069374000496546971728696182746027176013738456690332754631429829176118204642684949959092330304708766583375405593256642677921991206501675739487833696360029148380982711043405469815641332619360550885142606297998033714103359126468656536480293452639820634888264466611987382246437309736124094479462241986374852547371430662585459164071046417629285116719792655887711250888984492316779139835715508435937959119419324653163536686059484857533591106804319068632666330732284138259867697844677445308991748352174464544859174603667539201427534317225692153307777152060932047354877095623820427968817938733976210208956995688577689680842922110287064568737187320638490535826019760026271436062117391995593948097031844528810354741050788367165765874332155043659346742388790527669315129909445319682217818813865080763126671473862885177330765111050698911456750084717651490332443438804301476093082601285712160124071656738320391672545665270250227806922953717535889383880653694234743856007864844080149646489245679127897486498128441646199762235633595978892213516701584225017093910477558356354995248789425391613723348440672375644986595191597997823834703641418098011183928793395998159375974238226391467167133912099411542613095844482498043139388700725820400955259322889316820085329789801082526719191456580450876930082957690705914589665130371473378714181028299301710856630241776755267783252985070301142591246205291384322033376621391171247009617525161206778661544645096162327681640085881481960890317242583356568007646174149656041934170833418701807889453547894435425797191291939540356532145954572975283956121452296464874787568411188409745311169791445296551510688102628506357947162518519865250748312721480789593414415607313926908934300072251169562954711976531818770332017849924901073739728507180317720370420044419062627615948443665457995231331318986563515971735871989114998398227003246461637988902799862215883275019514497083233333977827190720226015573376273187114184440034817110191431289017414437244532466302508784012168201538364017336005517168928497477257856274655688018830359584049269988791447368506089442841987652489024728836123363458741077952847497152539706478662923214934844649580656894539433851277186175500220609772379071164666174144490998299880551209179643367344850979339698467462447075347891013134236533267797379651580359127365454258070350676542486099635077601819235980918453049845556688651909960411373184297347863824716529031969899369034161094711693128865879818637495810312515979263574605845973882796391571541562132316111669380803614600213286783183840573805957357654150666464381089669220247872451571773540325096769463975560802839683194830992871770690879243566812355279719014221173261041152462575771624190347367876494622772359849405676350455527263586708094614217423009742945617291612788969413445339045992630599622682383673833733257521910784528870400927919296639163217361754722593263963053966406479444146826812976652633287255666483899569601110077915914203561722116447219907286076097486542709523680204388549754242574702247368920814280579417503621648440813718425951416150218262680183348775561494921382137530567750995327001105303495338340197453717170604215920669954854662723378041397106001731302439414309471879940808652404462443176625748236074358116274949013680920896211198358489950810400561619078603197358941535579549164137934225550512439409387346878913499402151314337298520144011709243689575422529139603894738033200806346158892084917359186750238316491011108173693077101417055905600358679885197867829682329614410026631416979375300075745839608799887025170768841476873269294223299665508568050971671862517951261125294429606947595691791003533582207966556051426829148954582818982666346925097228116269935447018852116343932206857998113773776549395680444092352565338118581655509055577146133345019595823541078804508450059800432753226419658530258496705734803239254854227213141403988940942051223707682650140647816195226041449165745228892125140267119449491410046751957288421089834010598241242862036963027904846175850695712737418923895667020505584156609271753701416147980208295901552885657618787591628563519495613003464175749266152875760118986713522521898940822703551065592604490393540160571472197516260037099391690684828695621128056170525955571222711333802707997122512634282961561781034689721929289124934396042775023841302756608980158057044822007617256840238458833957979655085741340556541069973197410346021860739996690536344940810492228275184204370862825066292401149044241379479090035359166240786934733599889089202837538236286581457784591107591288345083596137917047148143107919323719375113308103285257700562739036491187865324326919835431216554567267207573682955398168699336112281276338992982032257140970627350688879987154900425506676529905825422630798932079548861781783584186520379407087468158827526057176886623236917910637876016819922776567880247623543236813463481181390532684651188121293259587209718274048923808525244918205944520383418921075325911999477949120859689181630297841584384929630529740685381405622101819881267572673237979430337525104177003405481814658803896482065345801792929082857936759019224513560267893810272667818631732225104499628599926629553981469161033932544447887850110209960466262407657212329407173560875206408653924785253783887988354495564075268050565026875422511925909764702025188623265699556364513880855791534820373671034586014910494065654251934151947483189523301899457821226929500665344130122156558959879859988922016597517472474336734731893645230726334550044525935760698080168056434002660314503400971787472654909470647660553272194542073461009991707155358565678859266384743927432041256787149515664855562011959171336348581969864809924206000909979259627298339306014371550383921218259096740377317856354876774367658524995603857209418917964539718401293247006983676655080441308072458589349562525940259737189162547106825116270383790518690894925558996930161603903395085108084821491858359431189164507400270889924584831545507535550500651571408676965584997440931837627817109572017248849537016622086611940058492776476861792507002828022013662913477837653793697518635972484031832494441566781973568311960575826492585381523875211583380076654987742806884153447065782278526159087795438020130052892829922758599814246216951746914762192064090071197263793440850418225541750043789318302570254995769250698562852936389764461071585265472398904004144626384285418992918803811682703003470346557304322401404108654746411365249667878878930067602334082569108420290464830346107137343269432670844714884635854941120457851880902094920939701912155363611983705106022557571204583098325507150863696969510358887297062262393257970945567312497305610573776220535282393017485614050188785985260998653257946939744572989927678529892201371957449960555097290254953139188054568605281915339396835797822498875888243335955631087044446927786811272767896997754896936160344249323904716381225385023230871544192666967791731971637466535803295703541587256506589662774258576771591305393365843635309321676350550916541811567200711791822120573449469627721288058848988912878054529827862271204041984491126607608643875332195887939020170698067385631328622094387427152607965200361032860691135830232677723076472428760876893444799280546834884106928906437658587576241125042950174141253127256572017032070401806471619008142672360701530809379786394159667722564433378382920686277597234061625769263105086464105512109422030864503065024867402949496395287846418079702146906509623693568381192020608529173834754492193027719267090438987138339948460604223447796564092942677592412215726859908047298483608253642503921586014457431902644435339581496808417213687033743050757444331603474146506530570925888788493149260635691122211929086378218377894893451157914715545542430378189236322244869738072724067513378034951807231738043382420970468176019659179385593862699775848148404331926683789517738732241610785261430332186286365191686232906275785100990025753976458356641079176674749918456507115249405562018297506614528352094862615671743597426692343941403316003052974071494282432066512763957026066502530361725735278150900472604501845638320883268110247123806757075884318747378995297920400681088666372765477893049606221657316934300556772020177595147718001154373673864122677870340158663416695303865368784687880111281931349010198158406806965423915365997698769931152506039480748005722511521092378886126858157853802874206682187130235142114032207567052893095619731489535217679197997667105892241515482186146408309571566010359087637887838723385076002117729837678972729345941124331200531066189021584318333979500829801888616861032464475493702022506785856578285825381316385335143094195696851597510915767906659060466914601719631955166809079466136958569957224902982395146368662735592415172963937672579539505073263570376217273586729908990551439037236894573194990961687457574253323215057083929191232328835753367101358741861532561457648035728829613065574961106900893548005823613448002823622934418024527644031578912140040366722663140862780998328419070813672946494622662525521398725634231298530273977812714014449088352609882717652773395494076486742869050713248331917846485132967930488618486570428666724879764076496608997151273759499431668236364088204488784263486463625846251043827173311122313726268027890143127501652410510401833392334377141977050245860118383155756626012381122503082901525724784726426265799633104021336399856124494860953024913164287268843154346615959075215054184033326088503748514948744583250214694283852318352685498669042757647811097099112831014730769863544613849353533558038226977086162900605954480103733347569649931478554615111003894785916992874329926636172802444197549810350337841383131400537564417093549337550461705052808666673645956724629907862286079153781677379613841028089106029175745088138526728791440608171196180839544507792018792850525932771067689876091563513091475571509085297847826608433583636255314239218315022673799960858788461455267896995932778299546781747985315991098789355703462652521936224823883072731700041498056965447685710386729979617761726955961325544495063967787154676609813802983283637095781440719038115920977105995311697876020402050126869446656863994956982347003489395921147129873702550117145588102112715119646932651524179831532947563357498250365992581244068247208482379028898241421458054336221285176761831588269259268943280831689113775069063365313706169753265224539277356647866810066881204381721975583473301632179099881374102948125420693795074937644454510223556703861035392359409492317798386188909976266741535186674164703086459403395096028582495214302825633697280913308609430350920553668772458346282769389618131229606762182293640657127666048657345400451699261469788578740833777486779766746232274704514250007500807501823128855909853570237209917214540781687636386765318516454416830834632057193592834185548151604365643133961199866293522059624041900462805937171007442803346500546798422311230250530268798014097171625526154557345669745684749061133713897582992304957247732906809916998852198187594814327701141598540068594188224259576673305605675765437401283835832913516535906188020510584334983066641601297129746340495422427905226904177545539493306364470439075360428202448770929708432132899407307958697613528402567723790529659069495534137877275585908906466684112420196715754499974272576460859593346831424247513067962201083954830096953222147309044789196818685345105812799793740148609740081610925380021879076418920490211488087445800613105627597273837834708996999603858967737269589526628805171172532477668788431741307832879071437619018905495082112468237107740328340594035613411344056184164532391180815353566694241387483686047263003419992923563597538850224735050730480776586314277826787803346040230695472485005478993422321260119588854902190028728564381910459595835342540372994807866194962904798460541179688315969076045917599548901781675465096119970233817105867722310840454096545660933565909310928067778717190377678822535930551745633609180467094710578137380189956285733005018258250379295196017189614947188372635921737461289549258887611248057237973655681448563159178738470157949121380526458911693137967737800459562240996348442571107683491865127869909183516359003111598937518854513830427095405580493226524073973144609253283264729051909326740404414971179173466736354908319095946927141533903045871913512678110212840464754799829455121947917595198700370878858880147646361565116618138649253961502734717607316762868032961442811449108098204382309761216914854119269971511261305945662844101929752904313656582201721358781983387499714919441921151938624151683729893125673819770746887773007632760767439456062533894025640546597689013720916320740290797988701951697323864822681670861186657436449790157647213936975548304989928100334950764344262382272483778346023875841697541944409572818110904328212763003048727817256854665021036082707385175519182768520197956926784565488481875415578073546106318795585312567193214207893853911596005324742645302799797712800708571903894778357560855984028102986599232336983558720879495777220759124804412155870796893554846094947636122833161930011431255240543041509228798840950926104743787730049609983732421638160201408483472758522223158799827240991938273867067234230990413697541311501053837656225531001918252033107633960719182491488903219820380943904033169305528127447494526452485814304002939626252597533243197214130743896136573536485289995629508025356548697036294593999718919675017609189164344532712039743468365492091093716135232893246001770211131294445377913605483937454454247454957783213819433493636991753503562578721361288517647898038473878496309132459797134526969319923357557234543442901546428621147978501109856665487964309622640813560872975028047893940286298387481206159928042301535064229431315874401228347192298045054027517202123656635526889649917307467818392536600818262796313183855169361360635035433543401057803617476499274875353382881653760861705999250554275827814310040565118473067245081688510067870771706801424293286651165872588527517609842593651470595842252270712713118280073062438417075709229799247869866210440173592016634467112283727299370232247925029037589793253279598070223634172530050196725664150718279175646466021779512679894289671667500589940227415135201065821780778411894359221219758447626940098582022908454319282738985418741081234879491266131205822432100733083003681301617282190912209360713124466646747342448073385775097794785190210270572225955629319159271113428647771256422711752552402564893243471066677127369452522989667962953200980894629408015710167208006644795723283739531238635175460237275987817688038689042069186245628777418692635216464504306357041162546956715979934041995221505255969629006114293514518237402420553348295160409929944544321139715769404475808472682493643833964587452244485545380373682164908399183417652984345036827410529645484590169777421628403334394825984178352494959971732337609213544459304285073427235009157659459255590968061878385483535547365477199500806974843942080926152736766437998534769566240400394240888871073057293238911127287132014223564953446130036984962711343669115118861020696113055177726877257152696237378454675088273247569688658908856207222726060364151358749477236307620382476023639548540646888012077964118023636224271191998149488999621933685935836524471525373164042146891540952991907727272667294324322567895935781663304327707947569432431284242225004512273541034715155424744762622586461886314089812295101396393804357311869003710571799014905509875296446065420264061469665098327586730537773235853301222884777017914697566853225826508195128011833507777486532462975509898094808456350043722598068794517830551176680858137171591123772549134553673089594851346132467966915024912329425448313763005237685401723210859928658454856695056338440700761269427161091133152315016469173028550954342724237351938808624165127604802328529784751923088660665099688006234414404976463470883178312823698760609905816284403403760011670141586740978841371063784158648363927923899941588936731334880810422960967540763058495950322621007019345888191995731154775226424382038922454233472871775033524600462541486551450516846288151995777344865358558373743238268255632103062308005297360490795394368765026046862849846729075154218469332113838594008542942103665951450382098916481174002371172702353504417593047118945351892839334732458444619995602586298792386132658896534310654065137096341435930831289395131537180210753897284808321398788633898330806870780682474570407829048682360741117967533453316271556937312272195710652816119281320337992054219132316397381075060996636138251886981274632518469990139724891612382759996745707479025065372636470145274362084796635783356127715996545500153867844486583422229835567711479152380670705538902906337267159732091560668440630565220222382819306222863445975451821036671024047789702738416142395667659869141848782162115556482817730575369561308276037845820778224354082343573183784532442969484770449561890614472477555402001218712461104410294679926221201841846588696962967128569940203415160060563206369596840089156632818333215365951879822970390238210589174134684881609925907516970981786453095847316270054045117676912961626121467837566675189591429778283518511204663789785040346012944773148914037546609143773968118782338342456761922719420039957657983261203886920339193925858466961512053928176713755211441317516010087622280049332507413846441851278453027785324744530690502525572152168475490218862608227022491041403582394588197423596622857599289170027837329806191945986797081839206290065907606725259183987257971265220064249773696789120226483520884707856653241170815449852234935803158584482708268054080351599396785927074882086183974325141275499794362678854551959696922924730175874297825071059383065602193679225102390053629989002326195634654870034995062009032786903262661973670473881428596289993421490448722571597358160077791437011523173277411806036343502393549663903430862715048623085252447259378963861327446164811727117346105041949051648214525134324689039214045040335231117348967137579457449257859755844286223756052112828997033416182762416515631658871148711790346419045658748824029845650925571052428367907895338765446187346601235339103992516351661228005692855172272488507317413544136041361171658859561986017331614760455165121647634976340590622315339942249659671286173496973321526554877671384593352244495155540917920609792531090113620723197590858136873362004027049941422753126921153311078704025662845342039510122937398072046075406703665807393512734597350972529397850236710815876646444128922136698865873560027220017670473097119540937593737811365418374322036832405667420607746765158815047361316787703283447519312286196479478019466367959916781350013672307423641050477186448561962010015147985296806741966252162866025165656604850644188843421609517203867900192463419829738128233830857877716752578196134386346674060644866714546303640486357114847713866375339805394042461905157956532485027827696993260106073970175070046677069694027573226588512668734733918683306316811834284574058298156044673675581623291398637085106476208777605751417266099654834009249944264057020090486055703691757892655491297274446933607827000510550684143457383991584945377035839531605360890565152621533589858088784973029930163444230448496641377208008038092357650790999356106031149013390015727008365198734370025275909843009773639718194096606387384670858137870226031916670347877869677184286413903066974330634528013226788828869461950376907040917915320403146883789052038267058838003553119679007887889017180246185456618569061959413509449213465311704224720089656434999888908541457089605132664560711906368373609774493608095493772200764450581576355046689344155040457883503927723686815575357819614912613901898067255040060418205645747835184005246872626536073625396464830742613546392535561393593982384342045425572236050114437227605889316088300363765080154178291124495063932585145388591681480199242860336375575681724867816041117946225414409446596369073890312654007221862119462659918217782969125509231479811341756759076647012437120832972323906292044948834108413817415047461336741558980953938254718789156536253940857030727892517773790488837001982373656606828363337467491646853441516267034362281574337166063145155183940671716954599791440492141617313904219587826380969944588415755089460851805938461830555520953270613223225670502388746712844673936764071168594388608950197595779929132975475006769061812917656260169204187717705529081866892746719948825017853662408940097338765446512533556162671421233368493737506675294161888517866786237525002053927865156529924093877529605740870130921786735905593037695083112525129895367812538169816560419215497437152965788247605644699724954718948914889894528639311621055587778887412063982822511607741580710376365757932059080810937450939493016146751123718085313001581148948043013140621963445288963509175567080958972008117052974502747392938322742756149863359502808250928169180488209196564821214070694631610436606330227864344948953064406057704085778223704495208896302636208875960495949740700409401849406685983612506705523164496939989728050477711498214744671136639212097613009955598998956903868605353145545849674288764019865956073345282369766043446389562890939932974158463783570324601239459559758890907217589811648788304473409592792407575479531850569114724255508149859651929127162014872518671034641354353702640800569829506496670069354653590331197757537829806289286383946022525991211389167107174532076431841065822216257001802009848924907413063538375384998433236347141604283799798036517329179307626853444924100786010353427396598278773059659961553579925752644739665386532358662612725305975401917510342489824954713582876091637856000487317225331951035992995273179145141592037398223880238176922039645651375382048997846354802935903754964400070082940969633829620341416601984071276634410043948799987705012685801242870935039728781502841074877561054660940879423187066421606839526414763765858146835329896871020156954240683296920688208429141682219943191221728284668102358654887916149250282207575850665069307548331643908750474654264689000729142653200531842774886201838827212243541412623614107967215116497135019308867124533594379562164955640057765840266887776285694879846716970522736852292314931182993369910223302424773717276930498249252968993665186913484966455476239873945325207578312140211378260925963757505701544810797109637004879143176795806542943961993566673990061845641325774377001631312451108504507659994098069061405113325026208183790642581101272266630393168805535672892461105393513196383341503761422701042839466786736624676720310423812748307910014188455105737469911911210169934949238341728363689302985691569229434622495051474428448622234658554560922564648106866960648191502577268484447477683403946410473503467856131332119079773586852902716825577226139631775554695021800035999975653240601339595488764658573150507740415054131184178830743018934956211976503113741199401947104837741224082901308811368993284067247377697672197688879156019554783196281178847066720747282022414326668430036190936945012410246279790923619130798098784678131030114300704451334181105350751900324280514637801685794095986173214716305318381774258210142812139997501644893991943904717225854686684341226294769023135688930055611111235362370909558474552531605828421867783383442164680619481655962135877480862608697142671742019752010736485344018265855699485614198424280710232064194439776555706610160888456375223217365820697405253065370095975497057017287759962051919548052949121437718914922339664939222382063555843101623715271588306485062258932066627603844864054550091419488240637166085529739734402314677911207390431801282595504958955479720774484620092229322828076367130273295538201438599294272242611396128868903916352149096008873893299905952658160207626172334180648652237644927073681632409364370556961432079671317729268568045389424702313087613041979644441040514384373905601641053614054058874501117395148546556318097410857696264925063494335917404569049808607239454082898924885032346344476022068806852266102425158903340943003725803359842207233094810867432507598217519171697343270600363100900847130893934007114235467968182558530792364941264043009300241136115236078036943711740504063801891126987206033776380497677820856411903021201398023121172983285298540193394780410310250676327916557070871896762212201758559212977869431754779503503893965731286439411181737542905691553634207727649733093749214780203162969694275701198483026124369950413619099810453393926952043090314851080054353137754856169940301451059224493987871833761057431886884870130282894751642155617540785279474095538925836166220297246586246183709995204408479055781237447489773603624027649366935268063838547916034870681732581409140256599516387961329164879857252122296593826109854266833388260044362556478852744825172559729977014553702954080465060204380935943822161605963529602527079746876270479792121385707166754135575379630279451393218196350580845211504425078382550027715948360737358442402475241044115887360959559860273823671215753066333771098700875725723007580550059785489225433981178380501747454438405943923752068882193282968302932912203692776724799888874214620742239212159074926700716320799847314295509857532203215355367473060848842827333061773587509864991404728945400610377137898653975477261641800953986550054724359471008219736520203559283825140428307737691395679478457688790833725078903480871378426655881255674883358726433719353772740388659542961090328817441775939084237096816713140035352340421157660869315583633502428145908980763655884651378024086261039509145832338487243470138848320530323446238725784496366901825365642352193817970068955393052166146523685779330339966862707850555113350557238629745960077017834914091814196372310179971770162212843045697633496250589214620698495768819720194086462188940931516047622630233776382376332287005894193296207063583329379992185551171360780012115126189928226178782603692613245050440602456305818100986846230732798383991359101943800100603316199679969358890887002254598865626485087486332918626210576215545699802254815572409272349033029449457307697324479005464797849947636911829555204462934435974051816008592288273530774867522965969554136801956503183163834097477033560891024134343424305818957808159547719141164706548875858185414390039507982608233249123029115562058529517096544085039505109245125893932620907298739372008017489745663043982651810491815758138908790401076462766535851788922253264831738403389847560538881944532932406763811834377632511952141979687106828012181980412956830395297941930647694971048460359066036797227948572608390540637029131065742228366843972779450444345966418023237903550355705914402763585494646470660068688244159828695119823112260711785903968057230968756199162669969817421557943464203502072367182138261640356922725336818004965902512063485562021626105197098708047120885993099316296363804128310751727743206933545019711650808895115044681714924691852043848839452039662781876361117191881447145846120525282812624609267819886839961781908229841567325857761988993676285780157151618032241771217800702803542183760486720244171528436767981631124010649889527390106416921003694864074389777486071713756134384340363499649559513803843900647389701109003048158186769969175864041478021738686015891545553078075299572288794190561113147703808882268722727350430715630161753389122272674743150185983565840645367529768488391006174632910988221766291658730208399062074731440151365850696390801369286346471086627712001847306581669004171421353747098152177287142561334274327539264987249367634930078018795968154766384626895963766060579959819128122365073442932814690178083218851902482071795648463714021722467822015081971854902549043502593036049580832498054716796111505088864827195165045245668033380796865737259198168865967481711414811103043782311078867464909074301871805396770429157386805583322278114582652098479063539258507528709597959781587075965001274827776971947437690771319267532080617041277628760125921018244742843588156151427242432048125010754096615558456948927322850596991028401411884745948752585101278253237910116152575204509606744016406591809526711812404781670954227914362522304894861502555581642291845058486388428978891909694687625200273066895434796731720388084581095655476226319102154814958507236953177907701937699781726064697450911675593452555329992110593202559172473286004238081621033500824861398783534425421023119211663469049782097633018775735040514874238654335181615729635039355552092935609715717473729044573743560036635965773728290011408822824478967891003595709320488643294916377880086840106319339280450776991693597665272137606372484762664417409954370372513816674262174211676925247780389286194718189431775346632281006327579665692943598986598510830553442825842013328372353561815804007155308642723080959686515962518262356475336028746485670520472298267970874150733614367586803787772913352511017668090036056763361630950334917164655792553502835736106449680614508411154181110682406306596508861330682736187153418968398346589940380842275128482272429117796561863885155176191293950220431865394392870230796062006549179193301044453914734206732037269508405458481668277363593372559459549413911899067400879989887004721158381889944816777961212498244735653099620585675780474967206696709816616418721861043717589574503807726203375547266137852160239804005069481384514423660726481131989103712288268867168532534527820850008032685444551700115399728156336479313529422566029491572736032281401929889118795509658817776373230546885430577892967838012611832885796338037233835683601295944866756170801288341155010469314517843882902777404495669842348340453053929591252009915110118269773514217085920400772985886259239007109870512220908087778175362780546506362580590716514841579610681397824625295633563609512659850827559009518297388744286805034697507475906830354360229354268926559910075868825748905387591203625573262653526174180911528640925428260285954200418473120681674964135970211664550673974676427169260524636653726463985215154821556573933419129088203910323664705469035490591030946894197893376610972836686617353527920054230834336373815850770961132868133231519253906344929867200457311220211538225261149766250188585680483073490597842005625248028199742672204337136503191402406010332385572922517273009342756149015577744180568640711679344916718797951471240739139034851344834983565190022374860160279049240370535531987480163197725902066049782233475103962088468962221116862082861178639657070845025137250445237110198020221085121895605188451647567323435138570465046863132952324683025825494865317634892535031905769421720440667418314551706022727583874674252041864101020890702049992836358270831378519868760142541544252821279870596574959697003366048109714991413744369644470792587451642353478694965302419336912453458519659845249944306283067337906619107592853614247834161326278540646620307109826317045598614000913240359929489471236961737817331469683005674893552597568610365168655391714869141925846864371798958957709451864873067846406486749708439111051668053255425781934113237253820355454387903369993904905380475755373811346421070135644931776263613367114891849579747457343860850151201233249881809552293540586564491986169045970393511541991498705283142041780201858955334938352909026778829184543569425795353512698322046810620416619676049504794063170128998181280705788063647018743775863129668393448243456600108240195391101773714662323635933568783715632921285742540512348604685776576154028146913519224777604816973332120229728043492709252013268897675491411860428991347843339019088896925808173419221738492897700361067640120832510629944448480151892933245352594008480849687342129000412262692475747128560581757999075297857191260029960579387585510915835928852442118483084831101105038923184389854671393327401211392051291835455786849141883702770626268844284777367352671444419758000897951833413975043829697652118925949627064279254267514505017892348777557915820752919602737166027820207250278994576134820466891026179658165868023838091133123257167564871675287805194050881344208906084251752747496766636015050166611743662991418995112959805907009409580660285124765438541572632101208656367564345814016631072399404586658633743056914575935128745403761790771430241194276264995870036436435472147244282217892980528114416390231065937971041775186885123708187099279989400928744899501465235526449949844803521477058293119977805698652712776832519213209428301235954618892321812189570750822160606590885858188367288608388200475308819065057405578613770967600480802796845046654409896483628913591272855295267788147865533873845328901218685295741858787868281367901442964777513080682704110978905071402099204000882331060157849449732181008833591762970151957209003282754101745508196674540517856509019442701755491306998663423949572681537372277658269279104526457192664343756411209507483827706382847399116867492485194539541842380927103986264263891778185980173493185064024010648410490342657709061772526951736186531504466977797681807704307247150395084721801280783920288319228844593776134372839148986169213977874314530783614252578480601542547618927021042926820651314638849340702455974486229519042106168409263774101692388932233512234525839629527195901896571391216898255734345144992211885527863846639161791501696178181940396527909828923928031487591001484768617727179977002358439704056139376683772231895472541645242302464953537449788032255149847662873176758127988011007582437315415096294139260675247650332665732441724011229163134426160965420566313458670753541340787786787249755744250665031962442133289646369062235137417400419293504308858671849055518640786588589806183580106579255113880198655726483424565312042806444571810121628901400495756700450814766744612708675081026088608403458626646886131982631963736839688576913255147674834312054656029812888375943002352372754536328407531323061506426834503490864420042382399709147649762613271265744018819792475211264064429828713927749366183484926115235284236137123632645455746298747919288265482578734622580961253209134770744539168825188222679341795115995779410328599933730371000161017510847041549672448640249955812701033078384658008575782735696390096203996255739276570303446665483466305040468559793533568199799405467547761601413488093409361158560997625069652015276285464416848016401181191851966881285482240105723450232908718016165768485865953428824481719610023960563587231210598109324214809752347298416906284734936924205864995212911168884950756332780575472935746038773573402686219371059078037598937675527663658937038349213918663294415306995994492964220530280808326404851773594683286398492776270140795494176160861517289183173535835223411986203715982045891859698594652341520299757724625945213497077672994516148670002204341035876531242360713384222690687211921878206368542868172973872328811641023124122630971443826129325084464377050998151782714413313617080564540016186092374496667686818226026040909992273266468282227240176199720106874197776281478125904099747906552496533050699474820995669278027320045385939968455983597705150585313434520693574777539371290992255942580848659405497167759838400640173090169406515056390471229646654318122697435225595399868457252460056546045538032449203373768238060130441367242727433785677016355604215251306774298323191157995096465614201088450751753692664040012424319223604201374203746347820834851308591046563536069609994051994769290008325952394755346581905128628309508391270309612341967302638212419238170829574404933937611435908842284801477884685414294165641620955739733899912213734202321848463331505813145930964642703354820580410898840731873437398094686461484882842705903276687258741869572843214746807170147076442509256431246005593412086731774480459336386161439545396218934134345508802965162652993540791526999753867570491419563028835345007910822315056780593225787970091950825226451267737266788693996774238705006573556754937410420036479995213061213036211787973673937002330423495330110261891375235728319500346952001502155246677530469359501590446502811613096254226041049803862165133406039225959100603551246473448353249088073851948005069361091837338734252890974331919781365601777327076778971361171036439199009221259840581062797828243560414314923100731116551779122746638197743284056219904398819333053125046546452671673320220749394409524626988029921760888211332142253798950591159482158443264707229464987418332486474165305959603709469950538758273067589112704419793540102502705434323765037455109701113264297913777838644993712711796535590220705291584361138801105019251011656347108824434983084840918176509278890249968104157796392132838753639586882718731230106444642986863856825476118152246416817900244719611703293101633528845550518009839347548128765727396027451323627076767069230575303398670524085452906304373974719634422152053537487716516726274867321460436805516900804842306983737001392382868489680518731573632414539936126297727445883430562361049187733520617161792377421770949707276109896172282363961601689674175828652355077949345669580976985757419951200617137366981795158970461084369243742878282741802835105349664967086042491965582107325358256024509576246139709298705034633858928523150918773028490120642394253703181489305795829037660736188843757208173273110900770508708889803159156550232099203713033621951961890770306876029822203246981005148502734142973552118401690626567341666788463659833087777561471880260594313548294652041412351956356217611667641380209847838978058183679773230233499292125754844988340902094610852074868472440938534053126620019418522635531918745296203770334907044056787560506480738384602663712583069930094753864057541900966729020574424034247909751160362079965904621374739972092446981600171560950472401594289181584785219375507797332408784980914769589456046486065770581527540526188777715290545786758482762258346995469029985630409731644699741080223732312822173143244722200053353366967095080943339151660856904327053277476271809285868189856015013388786609198692264318608479916290358210584359291909350471696380955711192064428871671818742328332148305325355121871466244698450763865875895860895096870278063157479924699020414656207982215787732495204115707244850010963898157074877009494430094703153903696510369517290000496967459515426063917470026390730616660655724924265926777309955250124856828028812444406443454682889469591384569148931151297131300256053897297052217002722740274957500530417696798875334857915957663475668009181100664260132453977098411114721098772885004442794130048471938018184197476387091524838694233478103378280310888952992547714014164776420909910694106208396871046656386559474981656268356418926789815894277634690400980332774842817981051000562247410305013579914184692457815741324624430575076667116642260403851752517267636977688899692230039574534762029223442934621667558665693912963939077924559295128777537579312592347127496747584155095682999184602772240488058468878676652992397121967323922049637830127434267698855912815172217134884608046111700967362739818138237798843464044014333144045642907245357225785411581877600511051448390061649293915524499596917940821950533332068215275295573839763475013064776937482862384016464122494150005368373073722038341959564441476400551342684706482193808903021234132443917907211885123120611641026073553831451646109767822064290879661506440221863411423678196954116803813750354932107908645291490288217101915351774665583922525753069261553551718157021516484201410468282962723766490246488898021478657497464565237375692768149215435604914691954163731332255190471049761586817052655213186658423566997703879242707902219202580790826478155769613542509226423780330727980039453179645291703728260640903203909645962325192127222662223476571603521234020528530571628428231478438145401273405246145376410888603378367176052044562483177290524414606711815096845784639656500185643935155710584405203818732834002767962914156391860388358734251096154425762021377543544990977168460237762730141334581636326924117575184829963993274164077170671824890607446361726175611162203107561138465058849137274122699499385122068389508972095782633290496795013065800019255933925441558744274516968174574259108948148351276224777368409079420699347934555634593574332696639497188260685232374463708038903854195099979649417398021176737412870736389956837902197166568128961737393283065129823638965785985322657809779733625210170801886548175454941908541045343702081670018194704148969256856858077620916018234485012998351721164495333688993096349761410616154043138806425083237681446905693899022095250607052729348821940610943578668390847747936481354706910528337972019947377300280621707320179652471422457678813701731366511506506251582248370580197505444619616129318612421607123991977147775073471379661092910338566897962918705574759800270955034178989868250252606723453372887251102648532190401554765258726114669696492865450235649642676681555097155113307560007291685873214504040461876548563436673976054984758282533928282232341449734208977757738591716243211710602991471121821234605902517296348760155697587401499347688524948669401792978870599641892000522526377397551535151693311660826277100465303565949147672477642820058502839471577197100577710303581410682478668514628350346162660572417102481807183279450074257429447122606444870453715443736963734133074093304233626852607598473235144173426107612761601387893328737454955169605207492827582715416051422019867805625564726073817977702133087269178804500873245309161741522872214616061559760277506531690822182641932821229539837784431783819845466521059628809451562601986660382569928538829148023114152654948921928466430797148587060514142008830611529958942729078497521721737408921341423081283712744029403424199892378717409366655082029211737305291821340746887008983730697725565404650563547899819355523349766299994537681953208325869965567217951226306554866011417708976059130936106042438008502962172604522207917151392758225570134055241912483838077901641384632375487174195590716625875106192785733455374085783413692205673844213373336578510255380881202918578169662880972519026423564335085830169591356787367214397822658162503074069653768911791793951538012906051736385164821801122422892668802906374789823589880193154525622281563046203380500682566607980973985478406535532223565427348275950932651045506942163910178631811938496191309072920737973619918699236634370310708823604876111848541728303287005097087088301188204480028014766976291641175289912212659270073389214740388216306621071571703055652010381053805252447160002683634037231613859829011733405410292984690141938336333041865244731035854088848428031454960863865192225894046661116834867502234968968368308520701572415036417783965529554412956914813660615305958515124213638508408321647519495255945824973891227569235578079118941342910856355112175146171349893246347160143236795619767333593351900689138994924219780518171712507818490144602682546603970319735799595050752612903926150100509359958904983944752741660683746702916670146501007803617956631995989350050614899351732279893318125700889110990375884358978851427855425883579581540093666541042088362207037505291036385401379126751994189079777440143488549820508640970515443855370144177661913101240535601750489177197128362759101726240641777125008258832777282550630875728175711766436552428529576387424752111491431833115158177784287098891395548170726725878955131169806654409036669968950629503532035209189937110499320279201327123848798069305199902442897785246492619228257865111268624241967831620364451670066867170135934950743588162087905343502093194422621062811769299137263942835062706473858105636230671334007132675457579291645619492588565881448031524798203521211289671291349629908947225403769551838779789246098929983405827322208487356311716898968989063892624759871766617350627222974685083001630677240900979455184670560153042863313023765598007102391272446022906380380467354225397922832034359692016300172381928240482278649437981255322207796816284086497976285924276264074817892281857288290977992720815648196000548355934828720028379440650742483978669224467985400911075275025925891463940115776467090542903651838484500532846242710970675596536774288621624976785643663022533713594508703936419231163973559446281642460261403487059552967564434629977754278373500266387379874276232377750898330368638884772799989066662381923790983898878594587478636221367285733887556819740712018173471943303481796970028564110594753673709483681237311073795679391597320480842243966113472419484293426019771330041689479313423108423130694406299823476854294695486494893181406316169052421279864507696273216947907736979989132830634230332901510492473865426284026378913631922058662503153300968332353642434074859910746959020177596260298785169132509475764069747575261681462375838977821118308762589685514418532218108362934321313587903327395525176092972635342040085311858725723097370230483652234639288192222611573820678370782647501938110317780136676968422346616438518063182863564666323122042764320008677841635993489894227133209528204648221801239487001859032971314738042437646299031373804717116903762236741804837398327965079541837282518012758409341029160973143854382541196467768503081820771845698152789533428874513266002487915678872495730657748635157130589020668493866401293785817257469632090395163295382666289021214168588349437346862028899773225695803219356778904476519046280638411976795087418309684364209077315460124882994825245353407765943757740104792073180740763510371704409748409770042975154328534653578723444006977655720613828960436260945391931570170565096383908472815345997674612851460369093289173847706279174365317084550117237284346211741379214682145082373566416284861931584512405019186168619043058581582540121197591840388912483412870644206774498106563333372062289622801687558566554834468479801511871596613453306714676479115082347655625135436925532293492752731264550978061488420107097689815927436193431070724751107972671817570952200671934186555047513812336704683017063912740209332545240902378605508157224147910436037733479959048682003302640092260933461501433339968316670326117059564474345883085199887719211058294783420199973684025880391348853807180563068076383950422681394765900218129719005933873817482390585315021497745231895972265870102804745402985397332597244974452603558402971815454319375946646473833124876036086804535321166847000358180704900482175663890021489638917840430487262455354012163814241608544262623588243987182526601343097196395897108504378606969196414944158729256132140975391474536167576061086735587647565918131660287110137400013226348719564612393372871822384165180717228450360486649208819818591982601812778714048653378450151449668354045726797237761025720193770688042235834238046819403379816408060982136057062479182665896954826593624047329302487822413658135054653247492754781753877034377506763567372222410556733384876131273223397157660888912902526290138462651731754156332374236529092145115001214758271988974078310298990242077907067915961156276783922229514253167110974061933358157851614605727615356949810538661099062991619114318973106508054179480794844406035480797467572262407563799021062818263898581084260874754131051780768742031147257706652099589597132631432051746263231045783342437292970933178059386581417372669690337137807314259582751068618255406172718645785294613472256276209838071857020054614455950948982165557376648085354581940470863372249430355714786377206173264043950368050781264209055779984605162688404655402464173966889504247456216683385126986668994640489968719716219137582645210900513048283660823841869687984531001898903392163869846989795693746409475995464471999167490579196337003388681101280083468331599319827246866577028325756713105045482497601292369251246387477395187478129542431079530041786401497477258594293979289401555433259249240899302995075218324418316793560462802426911741459201401313753855948588563946778315829767448770541633869111218458210194098072854322675444260185300741100417961835146543850975065828739046843752467804734992579865929046677512016198183566364115872962273113763604858283143125258927959942030804584154846984441202116020258662598851059119535345749941346401952339156922144266605475186221689758774858209220062865617859663882986208022672910399876046419104777714814814109152995127500740023459604121313661344143322266732893753794141849473635055892321249446383870839519594330391374605170918418780744668666429137905615712266750865094569529460348302816750750195382019930259984256499444004813114524763785291078244886308264977125493567297451913934760544281471771985765034342460526971079965058333929594636178880514567577676127194037084129350178040897809407647410432643455193535985587581402680440470134645254223972540674498611260789648100934119796440641888323328802166758830751100880774352886136063442321959466629302213644244164398835822415306380191763444268245043684268034441320384793788555079019998962218820645353294370935052378971241118364080153562335764795404117552101889454356188299125655152592371253315704878082952523586574775578947176519886610747621506561632263946852932732648738244946812550099201275793960814736515543809142332312444286587486784043359597433779913396052657655448005932058739181821582834602921316243243932596741610578361094205454450708231804087519324451749659764264220040282760942342357011499395279831067154880283470949074221853435819770307951670774012174573939566702743353612731600166060906188697344048089140740942665107474042355328453942439263249048525427685952465375749774401666259657663536820277161490830616317799285836899274497521429461611044645790084547089346494097755464341344590484101045911820065257333417201313452876471330524866572154416543238241431381396561603839444697129498347803882336214036572173879607261269440670979768905867254121136938199155005326704614721514532456876184724260531809983781758252562208690067966830657424326890961465225700368209313769974523494147029707468823222893658221522850947271731789846627427413555118439618816223385212556067392928991770982050838540772037119146796339675110265111240816656413380333593656109603014839108732098579983184501834468201161292928587781931078877505488387978397605655614677238502738367588114788609623947645490379902730670194322613769963727872826294952007562783150923956881691746515318907578487005320591000785057804149939466570386378412614987714702694205286987807710017678334139104810020214374565048360991644436291050505076025656698777624341410850459283196660454886504163000028219561262680176236671459607608723842397840608748758267806636777153426425462692584912768960253479162008097046243963518712440508115201577032552825923880310914674457012740142944543646502409001680387063167959724848736877183003267345544127140077064835605910074758766808799726985086335765191464807089866986686779442923385713661796413074596944528213260598874039945200480468175469879710618542486829631128190250649566995962774184037942751228832922588849124935400707442471871627217166388569289056233571732635900560202113289203259903012493756437752034528803695997592710765014381044499545554443196826943975400993793114086609005310183843519598164677060332515427587246713013084244915544885403267175109029862848620967165458798931809416432840251131425388396288575421354515926753744485445628057403306532956817827083998888240600821802014974952974785436512747806776154113975938591932997117522478415263508978851582386655690812825962137168758515806534940693195603395974050019114631117730307688174896052667346501161280041867506823081331278764900250553941558112927548489567301295693690630239394337006028860961207165460230341386373950455376413271501999733148573196205107637760493532975503457682432252267610717115721972836661910768336349455505687982561085359611390177301520169396109153451835061411158365917419719564102899317905818995309726848783350997849377296962027698898979099690893430797965061853558174682661063090236707746000963015404952278821768899442513645419412800349985651252605510478484238482741739197831949431202485106916777406206762256181508815890432207738591608505094178118101940505447348237150113375415540888946372351212156526696134778848521307582979672064644404372422466192120628997737820564659287909194539017702865246006802849885709027126716462420496062949403661024072071926483248790764731477174594686889243933069155796208764280917949849300603040540548211214925947915729201596969506847449080634170662262391932116846939471425359380123558949799728646920419334549124267583439162837587482989794243843853179426235304499516083032217337168061860803776295974052498039999968033039868917466258262792611097855493863048969134907046660644837973696518760763852845631311643877143587839794330068613096816987605093554352853712325313116445671962229988994708678555901755394729236845144847551678525341963533868501323304841204123346045937571838341120381246182181775883824708755134357143052679142564942182354882766714427376062683418324823543799135352147397186321977784681448612358074804101123870146722512380843087330906982931123010633563786833782629456919872756213629055115192424146759902601668426957262196645290357567381847178537840876872097404160260857704814610914250827164601792201984687198578918315916268692892406657736458666754222962254550550120144911830538472060804785619251210900259385061830817928653632300570435712305492349854120880129182220252352943094358957325936726284107040558994676729949136272228740380019647959333983225006121301812688784527942682826717864814546695313833737701870592799765210522611272889455805458936784482457895048919856903027602270198664196618033682498985014825140043898820279441306355112002130417693928949440319155613672414492592146467740745000621507072194463793176406501071182739041834095076781461027125329243334478740069383183789277239439168719941205620125428513366726509183022668823942085965602422237587686598045567558682322440088754053298844552762329516054014629136351157415705449509356560558899609491495103625688277866180502452667145016880925099431365963333903220313761109721538043307475944530765914465551108360103497450200366380597790509564053931192782848221297602245319126356451071355187002898716900133156788673221188809227652230610895955651137951811323052383425150697968834272380801975034870616312676833161672215303839403400537627835291541624283054943041898336770344742991344538404007062365390363589746287145922511501493012480207705644616342757354557125972661023288869087065183259561312591525310060140761733463231049439337453966613955439936520902398016014151045168162947175068104542452398297340498049039761952570091749657887954612083974924221787762569564803481399271013947953193479018760465270067083796869267041489931689755499065002365639901193874590859395780470572250999583274559859334687892951569376894354729266543183946776891094468416899329542587302905260934348336505327052980071912667916029230980133265265416491353014043142354460934646910552344487871595244370830030905336842449256082082247412491822123537721725183314384673520985840821927025627790738065275190575673423064741171353400967027920663229217968831846906133279668959903086397611366018003494757038947019605186986963447513949922984501878072789937946034258722103698981333070044278804315536890364239776438303949186098461525519652620546376682442074828754351230139777302848615683112168411358512105942411673581995716299322602319980752101085437176235391837412810275012891472433562767883610630279680480125896511036967936557920512259057792913371250245714861832107496249767523811757411911597981490217013956300023656797362688943115245865821983069432649632416177696620581481480273287538156206255074968795554871577438776275920903539108108639301539044955536638210283952284490032923976561738586454090074284828436610185462148936177570657186558332896354253672504075776248076223396087478149692863440892537592585525175715287381791743403956199813019239905343263936000180076441862250148906071580097698423268526240813673581367419850149702002353466218425343421392100975899795665188666279624264535450079447171777374461109236692634951628062699639149041198835811270223460595705643295733955974615537954070553944930333359147040433150451145270802023064981237787553520116409751866951920477170622532461245613715352235823103430856656042710919977761576185067920701937680542649961941513029890381024299801449915859902369919094455670294683310231849403137031913697865248786914092779280960751390211762797451817440660890109578287478424570978867898357923444838504006888915551209673668574585115264965985856967318333356045281187273858771346145081825234716462628873726952879944187556980395187707242742877243667880588437074294307366783992193304368871018011171298019795051595075077893708620917760902128880731283007434797281295563717150625341055109536259976210266643413369783149004388992380835486249005344068102150306789200357286481798293876808787851493898262893676934638869919732747912060906461377304659552132362776663153432402094492167955214506165941081192057741985334691035149480106298422876968057966752541454305421063594355056148076868546920146627604747517613031662085616222201303250391152245930726466350000095063617700359531515991342195503192584826035364358470481372874299149128261830628983304296882684728121511546305589205146528741455685848693789731839227184063155777630207154177403926207524825254686779970108177891730630011706950250757230701048530420027709410342423739289606705576583459722941576989650628902237001039330868227810031383158161874949035884475649891138031574742442001078926792282577696773759651013385527369523649211957454415781130895640224756227358238473598653651485592469528990565036223069877031009276340621421286942403491217147817053673912742857833236059484384383726144323750836896183564894712354664865576923590166435719537760547761493512361219802791464114800996743905697182612693713108772994720919363154322676651028384137250571650676428468972268089018406070887839681008040281107172646793608616298649895330775176792605783322302388236962037725616174905236568418570086193923241300361503968026503533720205121408826722778078704716799627445109065480144612633766434842723660498112086726091774790972830917166713172086965002696204715503011610416196000213948518801790706992041533979860386449229067208180658904440328707993903879399695804325218576666290300166843971064457931456927995353908846144550033572428909995091597049508871585119021815488157014438877884232612494360340151663190172360907834105146627535515661294381456127198357936717888185865101643749853786572468312291414582759389499562155143401206140374371705047025317650846539940495272793643725146611540156376348482455726625419546493305123668423283520833047655028110427547336692400520736094661399455902420359078858604494865394730039760171976101963132583555627643728455595973294079820691417966736828496850476759906831596937790894680015153494177323852684058016646787065650533592925551903839064609441181159072703441697949578303411782778443830604147293524656541690152696520884705544514604152874090590851917043960519789325300240770640186948593330805079072295279057626371282431179200152142720726790324542865580700530089133160980628761812783341875804461594270623923493831404097337307546462187274459330721851257516332370422600617456172829183409196703988808390693673954181785176192035444221798428280747597107447983896664129758663796773503346533088329676794466925211274400390465976577270326472890697323400440265929492789091093760650755026734520626880024300452313795510063813282975733872762620578530699083662929122763023019730788293185064830459276147127146811605979024312350624361992899090173720548099824473417463520634761353319292053432874105130138963318567926715955042210154175208149293686796312869737382149271385909884153360668087143875048669174058116970455445211605991912674764008087780925074518479496775619288671928229426480360713689882970403577499412317448076128789667343098478431820922100758607462245766226139177595368892360098551532856228488882569672920102274720683860648566191795457808210245990465749772963130365050214538805644906466399758899963625813254880193808752866989147728962689720681666976792330760369232975313872160296328106464418872030820325358983051106563129480673807180827630616603224816525804737411796803119451492644931424837860619376861457884858074113721902358281138506585728280142907147610837358367707972003224804349777275577229249361855676527190138491020997831277397298164655399286570976995197599164694812623709282140866650930318615282067225124335880375305376007789578987557542289938716969233776202215591998540845798241647097895882016899225029240147519116725026131686011120744777243560900002317143359444826260159179091237163081723249741992980436249023666693861032104730653440073546004352226519328959577550706404693891775675878612052830949035047574183992391456808379979554627129703491755105227203590507693916270334864207168352291374560151401090526150648099741482885045851520644502801280226673541207183014064519306268106995545669794709377485916059676069626351969368197534821952910096191581106469627639890563189972570343707231673468299817424984418103373689972308683522910871507092603597099149674497586693997703634881619774772429614939929616094063696862691010624790739900697782527983800233762210588560125360888877430351017081147255323104346114028341438822185299246425213869953803168047027099326919138827074314265209996689129955900665232643723210776491392260033546180066576114560238183306364696566514162324413511768009308623298310834281801801391559688774614885190466495107088385661148900777899138748606561664859507607254014052101889097860921373076754007041520724817532173514998462675440113492665568026224405607141602064712626428782537811786874770282795072097218893164362121785019073554166850401897013669217975184809981203381632725616032768943494931958936005015175486651056653414652326602041918311056342050306767665828281839479870580438261162895260808492929163366517464453974902615346121277403577457383420505920729995533537622263094789295679592997869570866337305774234429477296525249906744577280183894989967263184662334864045506248957415906695591217868988708058156351162400596739947456872045029760762761150947920224049869625405505008483041743485878034261854108370753086829295539290173750059929521628194256019960652156317711212184424928449036688812234325708074443088484683543559638958744859382607990197684102842347980505316975968362996791625974203382751881339199968691282117413511179873352485449305607370405179509443956325879674042142104893339543318370317336599326269921312019125122740225772989923253999811377778363267502235870149088877901095821974156955272516398520476257063894354483973380816790286622057317037327374422084031955172782906516349268723912481500383090476572471967742972862502265009939467225809736288541819760037233679162160406509812744285309858355642622318438231456984522249608796031870302289582234937002313249054383673677298439496895114911669684059950052921749726930923734732195279390867369518554094928167222243025544363371188078165162227298405020858937252243072288333308384191247174884606333314030116782231777204430736066048212779701916586396718095817229522748536243524395549255526678311132627353092114004130579870595440277942587211859723028511133802823704009123172915585849920715962668023307991289194198951368852792292647313229523840593875102675731509667300841205466592795550387241423789195217935311751916811229878461001652422156783939789787794082675138366461866098540919451901320700156919874808354453277261510277360019449836189568516187288654486061182361848417166506802882322936865972697716729237400908659964240848075939312278895001450917898534505846278911099383796044605489167405413155940461856689288583198501951948440768731647952204077053077680727582254117995986093099603258098832536924895743211160344458165500746921237830076963764163725780957981594886212246281392914127627668384942897624949354818878969405929878820949387423399262975210782910677497689837126711339827414910114564884947967874356057337484242004430546802966266023532241104492419765868761708791458623784450027677789049283658531224280788715175020367647290176719965309016570812905030953135053877366934998360632582351047761318911027711875986209166940842246442143754117903850040698189904101025030939745708767370188647834458148764674777613964835930815831377609621158901586243314932504988212559160610527461186811107126850910313295155795400611241792549941974900662475907294780155968985781586627474818902854851657014929368760033367925204587266819779421207816575404640561866988638581006440406541863791470553582945089013345160176858477952890414489516605962665557063391797754736684229193588549584807554359879926425350263291080256536018979854676152520735618493169072853282526119419151285313281369269232106461592508820318170673224535924446751553252946702196403280018094146740235083612998259870656748502525484896667664116679520763258636792565894018939655947430485156032694221917993444013826430804192443092785155502903515542218554611481703431566009113043205461167432801901237534141859373651398978754960404428593445967795273557696373956284854911921973682939612693817873721289990205598875871081868512606746272927008224416593305216784749501988296246871923883194422176539105478433110578250699693959209417812771450671759706127390826986134842172372566961372305029507583733042256301400705750887142321537854724101193393287625235082872094714465206130928738076111620379154023895653753706266149054339437542641615026220591465236286160464621677004954945530547412657608435822566955061034299407436494669819875359838324364443010069094038957822915367440647769652928610526353033561564984324441084320341673848850194515261533032224488178333435049100896298614077757335363173276662809570767343574398230763156210768726907094425612758413463153166465484549429428538192753925782720827162749034516850960263470507398641916222845165203079204659823488274306547256615441525893813453272289015415320590050893750798367691586751367671496941965548985600567860762559672849960228629332013889609905134874037333182046000744229773326190344557999098158503218937627596551450382246189999616536042211930853212152829190947761083438438773780256721290670875156100153230603532439133711139929043271380652261496765227971560939027471194098889151659896526766913022643867268928399171035378154817349904090428492639528857417807914643221158762706624294062037735068492540882238418405593227719096681524746345522531763790456161109574067992591574372360211142608683468882358984419910602834928692623046104787353115293135504547064592455426890326229878081956658335290503374413940726725522664523887300193577177939234798650214012322770654927409420099665208989758575773080593676930241079440533493853142041752191160372233523299619670828987957338189458320262589941043379472096687686189182760139880890658342021344137658091124973434284690913890508580140920414286086647577838864305848772848347672120212593219818096124072094718426514273297666584010592598276424186448940521208236619502024852839558832684781375310119136661467381559531776344822644839730534411098380133871461355519617453696023703421751521904826945663833088726628825282080065286263997098859640995590955727125005830980138820818329967865104163335645045831447202124767129705862703093951883536449739425642482342878610028086214980557314231767650165909380565924054634944321867570099645042389408454945531945507476548569247073970831220778518561582183558574850978261033403666194393309044178631810422185381786961699914024757454421776109466345217760828267788042120664615002359063810852303944717986258580585056804639052011563056459383932438473174554942940916977406236102197444913429110206865909869255486770301596816873590595331681206725738209940702607838567743556718420204306235122234674625325746833114039018155889667816186756854325137494678451444025215318119600748951541378815712273941898660904435945468172183528908230781265290206822510201304402350629897159286045580783307590572135589191644835212255489793860123833193886476630125824971623357163932051259359784749248891388742572571452563506594112826350933584189577986312475626603518459127301752871081936152551692718727725891331618145830574715312104182390346065308249431968580053509055026097504260146890594580143515074274675299321097173420785441389698310496422370897553664247131890979312863054702824303927199748812512136837683664209669024771414990579634853720463658968357962243564230242202247461929416058827429826859225994263397032237924173124087796397213910920618651319274266764687899119868914395529070715148620071710761582867313280391420964941517907521664691336615262780908620517599011458012627397339655776932275574895151031994218277019800932481723058694640331177142022908117822550659271652371902785974779794340077932922687364367801057745277131688123906178127856256585021810195035611271107948228017133983240269953762842509106381534105043745244118982404830196538747650552721245948890934609995507553628941587864768435040788478601624948927058498068271326488372256395009769072220338563480284649829767112485132021947882813304276572184345674647568596441677811316297614756820917799168628782324292752282610986891205087332776812155107550513707814434729649483769425305644508884630751633690699953027611872777947677920177925502755942557213715701081744726305006971742148293748724743409331186698117808410156518521431468181235404322653430223825584910514395101783152558767132513359424674939115264182404841553712768606560836097336415854474436323066886680165060111635401475177470159844524993621097645486351550485038813530494725252017852474106059388456377792260787632207742277636015347148009865885162831761184660631024048236311636193887658698985346499350263359631601667827515666958423121575110934572066358094551643771069327038323530971139140043613793957018977480163430765526683176268323974518255373179324258281544304911271402971560859016163107228821997468969927170235173160344439954635535222397357402683468932928408057131395662197989862332147358904096629161090138245741261983990900100196219685376159389884673702268636779984770520475420146054234288001501300231202596525832519358997941494849804573288320935194020410762015902374247046153854386553536006338798497571974818167106724525623415451216555764125950646743208901129881782418446655130133606630045607313883604094339923388484441595093012716437390205093061297078188157186552338334897215579029509731646964025776583412785542694052455653446621804922248772768763543326275236497132939246072216230969588522568095823183683374464690024165479470651080207555673806223410240976010282100421743228096038220408586244952506547187682328067496099291036073613167460417516500594709959082351144743768177354806324521774968562735007485959561253850446683282485109213707301583643129328777292112039013548794159326227672606672343316878870680367667296482781970722796369330041882316349468703206778366581258834515263767063827737092225158510708618952114897651830894144380945466690931949159814255450737144181502794247954903527366603556765631509061236938459885597627897930314354151803444813649741867377282392865856565683898468818107863134353892528481367738767716571681242589810263253709246770606750956844143842963576908626976059503912813310065965267937814375575961569446347820255138809918377903516727702842584662291001046319773834232844378835086776702362962494009988275051789339131655577365533953662704842665358781785154667608655127123491254967270934788579456544423663020971585155417148465600275956410545708693547002726049498045202481769522861071785684675615795312607351652479133257868765551528229389522809118182369532127248637431373796147224305515969331240462301638642955322429843602222259324030312885858006935292487882878127935557888927561299717531761086376760209296830393016815393256758926569429167309718813063066003902647095152526474025058298521398763718907856835724432551114636308264133939377425250692289920607907861917677889080307436875056913428928140127604966749617983861296545397593255852359533091662547952416905592338301938755627990680536257737707360682532351921334532412865858079741341526526502890946690967975408087680085177661795073870103322247094102274332569226933400409294801027418906932084040019734993240473220209123028623946143364613700422913349558063515087502103727511112230154543523364863967796061761801669218680431013715722668123895135780697426651844530075987895370095541525525866040759164492495026950415964457694697310185460865682022009208152105587207955846605775640872824217273835362966465650524567628658528141779182263604940649292379701816314178171268596485859602544374610916826182005548075850054083793782614357608850649897874964135527643931272631553273173410887864342282821645746951536111131947836618924824412536341249390939080296720710670759730194348578832953139404767439006391445914484459040942493255451208611122577913526985629347044238634414282053224064776350875812797316951946565628361610761608393533724135236482227654440463274236142669448344600998973791125024834636920218460914164482613524718612468340794800372737105763693373627823611983034178437342716247967664144573574862174783734812921411896249703890065323002702012342130980365147123014912784210667971453547823551229334363333836836819945982865809829358519534661933373658656505381690509121774456693277930889228803361370868391326270310634637191833335007662815157968643277744824025728183112696139941297023120351880960301579609061380219770869525217764409833951928804789883177717635854147751318961642303990128082049232216517587314280239190250209221920216980334415636355365342557381726393394805965108536608437285135802728930148336979019000691365800939592639685786808924674619047506005936862620997414543119968885192687426140286175078888056307233760879436053562177839127399674971773269077138560727296386423396389127787167067886600723741050559102798566831957645985553006790211148035440088151002216965975081024882256900752610977405762082610542446488839074891930503369228584367938247136854916571813660247982919733483857056654645763203964207300653602057644751613488462066148350208453752690269392850821025703010206127499031762873235998711618116172532234824338208737596074328088891306050129518021701024631099828163152406509839422116514686403401395350273057541587012597717072216153741448014655466044594015908567639510853763393171858437357397241710585554016854966896423713806699147104604141668774918751726552983721231809246497063804264484525976016780584827853300734795578160263010280239644643355756495749793077463206781783604649061197639269695379919297609456394452628490515479110560187840990803277857650755573865398604650890094595705521594755730401022595675742064041465089359736773403610942685369780913848433583202890495051027657882860677325774517126928636732340383856516560075909527340602971529057419811926711532217918116583439322670540873773223398865545756403413245564474024250362627216176770007469639107997199356389976660581038492747029929597989430372834531580143512164121908041266552542057730866723664006823275972108945320433269981555314277272837499347670709607510228396772728081120259921440255036607140920060207689051174430040764669105647492538608943154667511335388860638712667262226052485510392661090179810120102047071594556874155477531452219318630506265778866923087617502130939201985758001943652182204596355754553133009765370219993478728493898707711296429659035285186150667492531849767534864526879787410421008834587082970757799018749210707275566586482305139684364922653641677626832069332448791678193273864559068958351179698101989394484614864210842161349328286797673066550714054039580969092958226744790090121485895864828291327225428098795216532350206620825392291245322601700614267179367655692920854279715984512283160780065752675789050019918646452030135973089793431084527879037975583809172199248193610195188568500559223579795643192279697785365779377331244119362952970805131926748542189169125467457427828962170068228016138373551148715717859462517830800485168178554845049281671119375372523271055626274231698804878059742684376548377013443217281097818372800841617897465735453493697928765376916076349874518246195301126220957193716917967276003489240053161705764688286725787271492657775696281299955091803194229102250004467319938793974629024934965692394174787568396271562806778768674149271597565223293106055775666961374093189120385313112335599621650454114495247291666278329388139316941774851495004587752668748031187679317405122981244524697400089602820864701645832028273915945692073965789167741657695600918702940290972802636157054996681910030001378154028960468498147040737969644713243022647527049191466054657405521661418443726842791746396908328963001833436139985521789245987417323690868655329986831392497355847507059781830407261132273165624271606667975892906683468757100170868922686173021546466779894724819989062015260130485206740223938417908063955382793674906840764947193303245071278594446636900736823928575178985695412928157351116252638622173521104827491564454012090954835688959194341301250109178850416329746769029440205827256831343302135205742454500209941095588500050004321921967961350484473491826110739050776718280737084482649615135908071524792348592454774336641226079247657395921099585747995535298465644866096295240122830938780470725131579246665267569325323172557985151625903259940092787865133263614987483603683063688316632691395329322234459687614853688165149055438134617063597795288696277292692523952632009827655923838521221005554678753732984115646176885005026340673263546446813098248367768731191223387221950415293054023993421006590613569141084163843232704008730345947556841221518392130535587528544942309276032091527871137889299978976748453275771781846400182863351095912554226486964343625516461475785987870374962873397216698492091018982429800035726171985729280507789014216502232235679750918579560053879547654288989538524481322934402208415151232369014289597773669662017287931612060950734465465072173749372216848317277203740229895478704111810597774104560845625624337997315956273215812107331386844589726168941908056176519598244580640938977328124073564770122521235709876623022905264365862590994925485603057410537271287418970738606112709179152431277170386223582079788008642243242354932976565827852788417139902363778005986344104994332955399763249096203069572679917806532561673260248520077841652750057999009239473069419122419611548770514331787372625260157110276417718059094244616344145588599277004968143026866005796979438675736776504031165161581107420636618215937035510012542865200952010087671990712369240191152260783699997699053243116735135628190416910066178456124906360982017223655110010495216320798592634774053931668910255300087386188126932999285306799273985801920513436143319363864497311811461479491290803657393772963843536860335468959377755966408626579957880699645833576534486596289813168542253262187176971760268853314596288408046680641100311539692597598522831616394026224837248885415702669430788856008813510858462821157297161220309381899155232522805042901165380963196651452246248671108269247089032766706361296308470119206445959444397556078999434820973746891283812044895003422356193888629499363725674882871178589655335559450675085263715617499925911647849194676633089097375167208319084275499028881994593733075173207360580375039342231463950114253747659525200606832066115905201484805486138810746920096821629138712532173350574799113425626201182930938299286278730097767116929204416118964736044730414657033564800964164427272235976916062757823771876775064088578122986310350922728585351975640144429661380150907345134471480035389700074510444406848057268071564870101686850030351208944009944018995129619593580324116620862353884011754766477102409983629863782177469191931052473064623977532755950982783283770977342973176474997227801564622479567874266903679299725808573516412737096519625220423218226617930006415873569818078376060871575841885857842203545481820967092899259864163841003164633986379348126874430932700761868715207179012002327644494855192363606049673889542510277167315087028851858347224127735748608684023077316328492172638228259624057871484224135565589824200809337152931233928303124188395843584098527237253392843106571261489623255034278337502399873057736025349672527560304150501020722333600599217590698707233001073519669927425335090695087749963302138983945921841558066747211907533478776425908928208467801798229666898945582643725884606233086494475119389907082224988305755460305620682289777327298799475585833815297600855301771791784795439610979539359237999327068664696613639132010481366029375301852711916312133929966941368259745812755776458886513462339408388641722796070513423883958675354354666005635574114461727343433655646767016512153045655248831268874985699833318771668018037942153910050327628328366408590029520930362276075872831749788764384823790701907331798367397754674205546333574859571663234596711202650082282545730070460244421142352019048334959449935922107954782883119881620971433280336168787860571391099292742472748536734792049472029766552405162614509916528068599358449717986203022167507871293022561750974170589563786364795346856771765494075078673556189083075509070094816387444810478066104423735834526343183615856298467632674824637385763931535269290417955589564310507684196649123219923314389954756290495069612575539329910833063406970302381702674519608503884862263907099171417178359235212851506923862382391138133521473406951805117999782786362850994843942936635534461194727668616566298637033367929033762377093132576682009159744313468938673496325078139939025669986449170447865697875988187916928077309700148710719644202333309747173394664060259773713125218471179252472131032348761847557402032288091672973955888102732748310973787163316303545620133731088964332153125131400677650607786641663416866385663980611054084999948600255562773089787345392643978609953468812739780670299563237866150337778693067364676712327930479760843434060493584453278443285310559905405778595310452996136382160393724249641413890137113666895649375096364725918589008371662956291842933854547066072521448499565445798770668338698192069696964870948586241586316723203313862537703346566415007634750608406136159311540479900323724348116025139675479202905142337008771418940890869736700536629284022242858187911736058555188666014324505244388218459009492996055351991940689238309003765581219830043884474134683110277236038971685147634863972319864972299481915624404060624535176160868833753059696361424784774758034459807158914425019154885720529382336729322599887728452161870169675186181511947894589668431723233232431591366390751558181465908770686171986768299130587010205835941647124813075552277522967255996344240695826559761534080182532499610518544137327642288477691973882454524038054060873791630918344100716426674720021591297194738386483552160997406275604094328997068330289778718208485395720103979880212708365018302843097277096460151193262642467568916427918860200570681021060527212400936865277846970264234099321389377224706115883990073609162085943244114954924930849830353489981722071068021049554634832590836700220790196492930119169898258800091830565734984337561460495002467784630005093674583621776024378386493547952300294964764444252282256125115972774666845018637487534579230318818238541324703240205539829547615002803411834258780382799260272297955393886764329933059281716692087408788971942442185839270044230297913627161999811301385338197513375882559862329167953680637709895979585826358267654730746183457898881221158123168386714420810235932674098917039722554385536154339698858492256666758682086229858780887443549454316002444647848708866615927497290106812609276551049625563854116948911066788885358246003916195706473538244078438312302122192591917908335558678963558429860613576362112734052186684879946993204078775133826445972888276893388375939897521971661093102599481489679735044459464589822933987009850010981463986135810520156240680387096573083442472832594587969945042422318732381409958322976729706679059310810130628842891324850547281100352414857871224025331194944504347581575822886614422996876893115882227329815910707767198347339746271610326316561395626232009172123001216212051125415047559792138830503230803716978391786168488707618913699062915329454653630055388969787715042000529591552620482350341904565661006208084526131157109424866778817834712863924052388284880553842242109542230852688394116251545078817835984029657561637996677563705694863006123582922389153896161450486269703181328883877742829657996894030955237959421581628140998124851625146799031663571956897937237782134885502077983466410728195524563950021411113590484897185870894239719470448292768490063152283114149267999151347139209880059197433331926037786809148041239633033136580465936797887566127941324140706155832412432906086113725904843924858535871665919281474530339526297561018909546362550404909432015976682167481891858127963488074817220675910054246554742846132979733600657505351349947481634903945913665349272534386113614590869492482722882189009658397466092440682449862004567612230234926311543273803194489179908120755033849386745015345334009853932899381124213389587154876717546233420393852224601257933136210005917111061548326985264909194339233305560170882315912225181928316563276936269614497657454420910895110673496217842516689225702588155635312120743130452351228544062661623477471200854855487909701467062415721471742918691545536701825122596630647923782061485099460585941236905702217628176249151752679701021924383170675191976881652641530175233884956349408080847709377696313766649104746343491789310573388602955258089480317632692221178673465272188996600160655101074265226769239097096559163911352869863964904187301559481135452911127012154083397643726695272896941797844210149764814717863721703190782970767474200841793392258440693248659637281566220961923995129487763782130666497854929579242940251309182767445833824518133549682764321222857552191717604975371740665760774221361682370300006945988767449221638106400024530249402008724727687921014512446304227961801446318927813472782579352419315840945071982657291867501534989434014923077270864259109814877679168892288335334676887330625156990594526104752552616239055785251839943109351971158833678385369804767036086921097378771747560348997457129011541246518713253346334025331161176561574280920269514353333985987285914162688767723994251664917758607831090624142730747920262852712138456434184203981456305043392001435672974894931991361879101619484896129871259165680775558719581234916629190802480055164709133733608820779135956693875899010768660083055182122366360078860246576433210896957471022572420658143635858765309747179876932166552445300169094112777127264718211783698085758516567560763469387083540430111982673450882811011417655831445580762315432391476661830787118868407487216442678081939030569594145291500345650528826888049955713711864292217997783442583681589451770703647359191613735269161865346743848819015774164609156759276634322385188316187440164157097029027169739646259797865995239262220306009278411764184287456844981416440653965514507147175788199735509631219202290013760886859573028173964809944492858811209855104981643155417561199912247972710964030433461784494063514920302584946930262569861202828544769066314571912896829468201819399771796723940627016215655678755005554831427230542377741634596541405644434538761645212157202721389034472777205660453779541366191800800058935138166423956753470412539809851196851229769704148742245159206367159455464728587386452692059189473886695512827867255910319600581453759708081987012728872861970221181888045623433087426704083205687117693842688276496612600694743843665737583671809508372758062085051096170416553937368172963220200479733159742744827083977870005037019896447780074240093339213953054307571931562668716428416378241299364739675752825812972098159437524836185058412278694625770264730935382297223026485130782391424732583679817067641967531527441539052428982446283943095076390116716800429140495276339294631591544097033766669416986622849013943538469060460792257414892136889935756217361559156021708335923411747724819903599681659401026067332711250397057101713558870622785085253575338982663746355254894856882736168718091705675871363354991196630548178327386611387620900981136321125757487747978528822512779499974820664743673812649256603211298368771129662188854123033029694766360146634073308169740757908609642347038795464934202000089556435528703106309850051308993448239184372062771783938816990040704773532815807736512878508990261772627235972866919188105926394082127743821650620750825308859530486467966801620892254142017915831702671655142824568316850672191283613288058402218296532570528925999475406377377992312709399697142319901599485030558620645749666065729910690277607377246649906404246059658903635064396746442292578842316778991756496591299664033360207384268795059985594191617681764676543055544741292642869334918448313105895903791060041395797367217639916516304398236044685797699394162488906309352533511334934593781034542302521907718512148302520023387415543532046764712691177869328548991781760932425844558113769003250401004435385366324248296707265791886657531400535076221573695673685458285217378864882160131738767879579119268505547807352253954806502325019004895817200836623513866368636635125811997844309513312143849440585240430448483220815591727520744824215956578116840913025378386002115591384319763649497470223565119711431231358261414265605324662825329183703369911953602024366139755512898868609019502814433620834192051372915854909862151734149420067051990325763811407072425240431513612715663982647620537152369272795216495260128055216876661566065117563346112769493807462127604226816899927350915277895497751602406373878587421751359828985437374888108330285945232117929727907643954087104998701539065902386804520348751758374768911574264869152169600238572411100050967900279186635904803640968745047385735310846345308654752095273357751915851804742652522035219470119445303277658250163378178632233549456938620361082230713748461123455617520218173843633229868572250182428527726495904824733026047931885371311373179177370360652704725121151071998043144264083041247048960692923248753963612851241267167593197285620886498209039725144698042989675994212341831444193838806592520113516995979751787346262326420970066529581891181480807802657619116346274051250964100449421123589576457355266332451292579006941981442040761755582141044388932935280957528689128416767670993452008560383866595843403856561680637258141771542342009787565701200908073966499889944508784547040710783315551717917996720035712481185915916176780197240657260591527860024172036654643807629631527157149755017269610515080304486768817364154231868572441603977794519486132394834991194680241421883897993721589652394856987321551800150877147282816817689171931420725769891658445236165976974392473891430765807011212279158729261185856334264442023314005553376351782774506197377419493484652360657681609603162496208419155876435520665944974365002287850051658717585451067760605223715421157091715053152745409306807713726489841906237049459369527997418144928999287218895728607387938951006072068611367925254528084632397537994111038203717150455205152513666598710210877187123468459325078035359281351631879921626761173023266255871951045292451172565315225320620948233120489358553212487157608995598886620509568784901121175474090954478702260876446528171650522940355126130463514008685282386652078692565798872350040793904643617270934704781565439876331176259714909376398161055013355061578989060035430374048490423728588711965746777127245057668319858768677083458854997120568907705995700745635035998684016358364810634355458351535097076389472527384331645852507638133324328437482527765635880811046961807739988114692054483203821804943150554657790889914394071438299624805619360290577472419551081632994200737981222534543884556122747698931366219455523522807220491709674977142453385834355406800808424604119412284744877734534484288967531766423276698272702134631000673528820240238288845107682428589106126854436873275264554006357164039610288758064970665762733145239158767821018528118256458313462007440264672292829966569456514357704001789741728407326505673650536710169514893807629562859762103812172348539206182189093751496766253216047112436788709924454665445652077326059145841616087660278947630940448611404047396453688807339520603102846598626568345930027767245252416293826918869205463068811566318948883499875171303625106839089281161591140609374998429518471045684758567557842463316852229067250137324813055193932042364501832359403350801641390616724433926992966193173076910031542225404664372739866233476815873989649936783413908380182854622684671725067173586670935994630003703814777937776894001244404138055291602337978552705395073754558006119286385876049426519691183143316047228043007537136634289220441611465690432761979476696963747944921801251711536735650557589919309953135550591556747070150867780064650934993009839654283844813321228437991172149091836895312531383591260250273220861334197739477242100500892150599480518750750085686047430390538242386806881707526162944208553603954041204110755452882910379779061308725471476303337383577772314233011245144018596833937167121405662364984471200066355479197595896196494822112867033078174592248313849225246798488200301135964468918008418421495315296405776598861155154322132695923354370918426599185061055012600532906025816613711476566028117359099300838239590856660734212512171666468251021877111887507281587301408288422018573757855825677209158478872034708922050020431771532758772179495429098031350917678884734702474213304091074993655498599169071408039909786925557275819253178872400569487284147677631840820333997228366985836592671349390154089527258815241867924377097410148340847748553099215006287307537193338484573071982151858336600277830007331089998625330150365547231752327553238847462619363816647808656344668035036469450431829818846697435771651393873168667524394317969654930422929859788074577331585837445598346578953209332624603517282465828526245270258330806278831515471221867785806349793746388548558241335486270178261107358990542926294821090235642201316664401571459077132160846961464813347645469295828141970781485552330410274382255489663628682532644091059875811582375908744852396152142241542013865337377551347655423237800265765454322922469518584897842959293518054277774126632459121553214805755936267743663780230888722672763996175566546377810054397982731493105013849793022246720923475679411845593348325146108932048072449012605944002654161693134471103900417684767989396778774286046744589837292208586119908750133005473577875028043717244338552652994161493279483691289832227946116920968881689246400275432312152045612520995386318918949667802615880085664715943675672556096555838804284633553971508934586725834545463926509665957979116211381394426472465356591912957316572114110223265633283283445375597928711374809685861935974321764558021796353642007096224109756096358134344073093961867228195042853771333417740316875649764845027891711847598506767969345562294016954345784885213977044737834307421398648296090860032197293364356379182076349187854713518730361984134749483535560335949761158474179670147119393434129757752405123966357173439741082016081959869176025985754814225148551937756591869194205200133066254059783705400139897914103354641390939473596214617038060138308600536424735668384119208435118482472684801286722212752730172287791460998262965114267568724290556751226472196532889028172956837103704116914584092466381307141528811988470292340394781201771859489819648400081876537077951154473957133415124367754917197623325859260834183899802276769409282838432913373841209134523227812478216572489094364101858832709433338903816263473330444842398307665564856284420290716607374736969248986728402763519538598437300075062938502119843757965299233681446065200599249891494227612702113520432613802531699006146426624001783618679570943321670784052969945179142639120412332816654131222183243700080554015334716035269798395649989936148404148470929953487045538017180484110622832688550012295323887457648654099671429977049737807501046333951804599063801727622120394763942302947416919835923816771299530378662973774774511088685128589989931109187187036606908439546244792966996650475278447950076523210779398631942159536890772030558649190698611874994257373707311006929328406919599827654933027801045533449270426246170793893736900004079720872782825128806807538153396796661184687024846639636591260559847129449752801672276652285208197192315354833410166508341738653481247440753580553929720229408877598930954825509994833846170982256127296432817457632123148703339320133975485243876878638632089677288756530624893622551488856702072629650668214680087694783333708060694322335416826655301355781197183293175413046259299504319687957081277676652619492979823112401531831725728416238135294936106206981566606720226392056711649694335706050921507647631887974770294082779935517279415863483479165092652496416924596404325812581326724149063173902658109723766069835392401517738799556940516383494442324377336303474922375996417762277614790561103576500697014188353265652418267942932059293927982986213423259230176562712262663904435848483901735278117535447935999745995967088437349903628769328074854567370727350562210661461257209319087133275029545595240106235318965103359193999107123178274358937880984998962794134280948359173476740360315347732588002555899399225731117610467294503297995105753349488251119127391878909182850573122258478807108566160152575017714732140949709197939835493715925353461148172131508495353969670207776452124938056084036778134616935243373881716148398812557734882721095487014418324907930134261395116919476031416904858835245752380511079651424100726085907001906154384244236324384247633752311015792709527656822511229579455869019883449353481076056114714738357002937069833992702885289126975016411912244853384929326499607592918312038111958416054176071550987336823842139071720726576208357299471166435424110841013528672270420050581031967063134429435711659432184861001659483506173422281542305777012428033908194306267395512743894519813698055591555622838618751011095237097520819078773593438063138415363917848944557766024702597669344402551692444288357768533575613011642070519155740483140361687221311862551594145840906948388737407041280863765692602917612119402041595928935187771874873872530122450235813815155739869720319349425892980703377177474768662982077818849646678830215976787966273275751879459170226460899483344010898376742099691716934202479031208928298084417560782373250058552992029912205594676801231581923012517936008950175864501019622218838817043999453412876355148400221425765664930221703686484010087660050687295422921648346500523242700070353417300462954830507325321753954481090431661706922452094613290943081867863540780323198308000333486656556048293390874342622609785825794569105377350973974116748446697094102093356268206273127996641372390420618727068198462097484212559940327131293681421371453634280749344213892436696632784597931673197634885304210754676001266435856277136858900157821708858904222368823118644874651961748552270213662391770649707187091807004282075294740568968506693051555416629915227395329900819737567265409157955505200835504555008841969686294966161124525278060354035181837399695165789137183443367040718004620252576445562026492123456165784774190219082298389123451351316484751613300095754519551760062811792389307382968764503932666010709563343852590302250578182661862229336759309240418751655255438596660007181228640880291290193531649607941274845726225148448488250795387816016656116444467549042214990582199787640231883935368125991154126505177298608077836553297381272948146378964807987914757041081714221868419547344598655858247554640365164665614421197444894281974482994500436315433198420365998231630242839855431298464407458191230933392559777215331348923649927730268678996877654093287090772660932318769538859264411252910500593327444180648029801748538593428667274607248195763784087682212142882002170508942022058534443100214772498508563259170894720980304413198540376167229094467525520757908869810619180975475859340582640447867340916962440803606819449473079765646319280038436174433897504881842001966694707388840663622251973712027819385762280578574471381399746743160282434495858114510137494412925851256878884420947373327239885785442048939847550371326131225293260469709056225950544722692899545046771738710126174306381693423892567168786493751868316968185560479290428539158028354106343085731067379025634145939120259783300746735280626989514375650438471783867318076304134699884569181879810678734042393892400685439189079724704864616323436124200463978591594764094342531881457049125026547458940887490791206096990390227982758041487433661469147661209079451012920042230280992528644676385495611687774863913807711337190691508125080815739486108746763264236409519687022592801383820708101365560798737631255599688571737738537414926640796393670300235868272697315514391586222166071677134220914317430139792693821833891975636097341944985939615610864000476572152187488827510615521870620766292207000295131945006125188861464537046334721355426029261903642613138906384310313438821891523934140444164133485776282936896942774300115585415877411816648322330194400047176919092051955814545689060430512057624054019654786911075385195123856253672579082038467091919389406127247941157152956534521380415428685238244187700765853599228870084018301385994366768262028349525190144479307629645789186882099587241977841827993248741776199065610335909604848502340126947483536849087302285868522662734805808183047363049386471504937035186982337283243805968852941736042090963483518406525051747065685834527507458438364468975198394464393063953528246270956598126803043160222622892532664491942812632238286999099999733215604721386934972961870948965103845273927867556411415954329628198168926390699122575758489133972254779179632081815188897451431574895530555387524215409356735642952489075674621595533891413420718355528547600760084383084112132115346904190250324458670448145888901475056156476117099288494662039470205373876194002981185686339857746831194876839742153990542686288268000602120979841247782987876335465417576009592540726993694796949018688662833110022099638248073400005449234065761942533001188654575647961757348701752088115818871067367895578429109401921228839367805598059893186188626181992892074234775205866592396302995987107296636946566506805961730366325100024219043920894861872275958769804180865734132035584904844311869902238030022719586654943628614270628316138272902730087929205765332366458963078397240006849588242027191165839220130540954205094608725616076420366704952107574136986183085067754173086448608665213338678514663072435403218873201532895274407746256972297082116001727078166680175048217700666322676069300320672253135453489207221113731861500272212119080712106671798086231825583349650617476093716007438838960995465374937031506363542859628698559533489149878098668027634974121268313328310734035117910315681348708089106873652753948374023436453894743865359442370697697071231785993033060540807125983584735439706153249588408744125487713217499538869837257638424267159262650909402552146285262825599763481257542942681904914496055988325525964869510868871586354047462022100008488640907569333499700194531631657190974315366220695471262897397561544173046510661989788628231740466647087652474249634239991719224534614557584830639044543256169379869213631568092497006197201427279828859205976910132810898117514851000174353239816785371594924641274460044553045068123360469870180903543881792645158896558984517379672945524309930265257429882429484288716322126880583181921328304714488147560657241693022359307003865346195381518898147248004256303847430907073016303819903339985416574010030603576319305352936830848345119175508272734200198313324598894468636829541631984342326125011055509801927125485665312703361528979270804551432957945137316760018087187783032748210016859023861549360268001692672961891409607957500664339226188944606516847645220607430500678004203231675025368127687142345093066882740029137791467088162805159666764125939805184935088685036224517758737106022044847550046189765543000245511055410341241386689027640455618812591505187549396356749134424352566464066507889863519754124346381611957472820687434533236470434977619563574720307135056301955378182102474420353860747721057310394720371093435069600458651471969100495347155543641396194917626293461511095558005953497410374851648756883950776035887634971254708083519567152603682231596852971545036222836111777900813036258846552476777225297373184727282259440969949233782086793578821394997437565541628098837248466070084142733152900008042631861113773375779328248271990503127994188357361139708533602043377317911172171625359882316435855334286171724363053657819324022642794104020161071341199335344148448757884402307574934990416395480151780629479838748302337928769951893125235210455355594059376988186628149289350833435355232163728776116618671370716138235013719913289812354082910593659585210007168313200331629755291438083541708175396836990523551094494326631523487050695907850163515069773672510793146920086268102419831605597698430097544408155813662184640775681415789313893979205223143683927952148840543956964285802385198200394485960420432981080350699052492768016004608877510694470844290622662216108282755226027034813735366359695354655849022637677935729034924018762018696684473397686761317357519941205735245132610590976722516388651149294400496895134951176667701520585718387846759176862482328150052140926717121777893464688695330941958251968363925074544205608213686805124736766845229039381852532920310474179466749001488238814723507584399431587562485267265398065794530761446772323075929141717253843032089447489258013121576256970275025466631174752730558514063407709052760195476806225974958974205103934540634768160139785570512368702843965177237149769488729059358879688408562644234375964523467760129213234101642896524122018744323696657527533440080624671700609217512205361439608064843945579639652074583653372630971127638928235247659882041313569753326090068364415544505515970009111933303209403257188582505011154542289707053026236376757459040679104725400363749573168833005610783313492422171617471189796881507643776375221077677633440021892007069654572778263662489578224161540856766701387901074773296195306624510899694680686452099523299867606602468791179517981638115226279318384714994284460244381125638199576463338192477767184908893623660602947747610816279590509114402108877686175288777135577122501812121836736554797225574476217392132022733332375685717853678932246422745616544832911195180394000119448018958838328751335556858415327942979383718157244848019761759185823622272696551784643470855628447890033811288769825039683482248620673630918154049948981500710593935371995044013496409499911765482979942700259875786836649846583356436154256093833330702296865395413990423290020925044019212784460548090585173927651039132174744408283795594209026435587160849128587150959244426630491142259652520422564394984956399534646674156446239056372561693334709831403420014185279647991543355439831512098674291944692621866069131210665742923940012173441123369249145075011524267514420083132917997426146837658172749589192062969541799609547311186275402512280669881511987756912718576845380939443140526516805011140668508557317793492817297308169266915130113131208715968368572668048856468368354849818059183471846540033795421746305173489339139083115329375891867291803531241355113595490437133450226842688622289047731907273591248170518960555439111330158488983307251063668735336109174943223603673923041983695480626736037265649075944876204943201353489664130926124417140877105807375010202855500678835421019125331460547690407135027644895428438781064267997273352151096621656338019993587727303936259778059044121040901557919147170545653853781954363122459985451569883643550249647607327192341036058286596578697860682513030515830197925640078666432011361454578490424218705089110562107888956656636493020982141016908058979393359188929326534989239406444250557393716770773293357475872652378598724825856080846296282233351164898869391513055274777966586837055841149517763239232768363091779959621174529161015085085674981642638231350155458408643847441543488067685011083187296340865562591710981506284625663181949631659938940117739005254537280806127782568315470263857873477831293374951978831978864048234592893027903357754874431050319072074498464241679743300449968281031865943524059054886214095869709729246720856282846015377156224222297045681300029599469584211418257499905387210276924349884734816901538221803279172066803338462479668504833066603878929293293053902742854515511771766300242447129554571304407448574090345433808741494836839236593044003907433406677962444332343172260511035566359259742799481710564007819476972241034974474675089371964840742570207123622612277264898447559840197858616386084946736836303766595049873823911227977562213555438008384352879164557369331054914441620069616561646316378917373430093764759626400355758396343313273290810369803572771232168130736435201709123217852689597519953333086586940735360767558223052020920026316241501254709379858241829980983510322845722437007454234736156456666185214692131658658394817264065942677661600220672618679849812341928657331771460585458372988757251975513711320652563908283292443438459626853253221206686924286241802526707544870748629541405593609025391482501400498609766726287529878242717192955316317103523896294799268226127192447702511291285358960067910931672143305852611168870524645931757849208378124704705239873233347566553797683903406962461218091671547967685923721650240791997918153140217373726824012809812340447140340038191154104917733556363567261370184647197633483226104837799727545640158115384791468285383096589372580459979663905874845983844543549668164313670925981812794261864788008274971700790643334395289419984618913385234188122721598312136649413004469560375458875090979133149900044653603886716808345257760948166091361206280519711078831798716922330608098145288522247546504682429471014319963947888149366388099289841851957262133056040298682728172909659643228685319064951372774995424529731042547324382883692497307534246323417924275382616802256016723058065911129647613591868233107939192271157407177398724481382020889823522370259863458890952842626288979148637386296305481250095551559189863583626125777328827050620580683104899281534935329329360381566306798858429818419773376765649630877165826586152020758424292887672014799099411296109285631353098695214689136057543430124955459747300922691545279927726278526497859759301482785454585512104316022637758118280861350977619221083215197653849252890415678296073555672900743150044926286014701951930596462038114193965441580501016500858991629198360771072437557797022549315454134041087766604947848768464014472123574563943700611926777613417064075016440641499437934155871439075314739316129320712244568242213025767159788432003677689638565491975290530860211849159520141854188282795613477146736795689607549550014672463456864421050187123089544067425404652228155034150166441611327384640483963098690388417224830649624015954752571608118742843017930012358901565866510897130824005251864671654329880486377123251198706494370980266691801787880598423458046620344037988241037452276009347469440617036216411817718263996236356324712264038870309309901782646157081538812552711766378744827854910784960326143654223899447925671713541846490825539688480492274502865974634222513825077923136538306201023532290352870220710852695979843219678797733720929473437600052110876613636960953150187799429020784624867259484203411530528815264510701324945900042119450831872278997296596491939139752234017868117763267640521589657157712595450554552270200065733594161165808961810899466132356900229034566229790730575600396764403975503649852868734322860539966405788644725366834485980181733067302401841509049656669759414962917566407237164423359318061616980256248972817253314511604646879829911971667639730961357464685013109477716399981968553239685623245026235557567799965130927209988905455911705697763173551777348477514474308678957352581664057520124503505422866082154480092049150690546657939284183636868090515982614412452668100249019613735887154025962951655860355761216020561171369634036569788296979324526208207322036901095676756685040301716407645308236427477283296670367478527607177048222509922135088274011376405522451056934052217287384348099257230246825668292673666284299986247617444382041797795107708784590991552200519992936625040802784010704381482939815888027195287960012914672596781229646230799597268086310426250328522955963004487620618682118310540827129542843988329280647668423666788943824035976270121659138430773158687946432396859299595147463754968422773156399378646464359001763314588294733274909007063814614219837466946666383576366189626905842132235953352432122640035437181208268524318667895424501706499591238808368437234738541109144925260115947439725906127662791216142716562285972900745066045977943581385956499821253680083107483189218793666754729240026605631656118223183460846588925949654968739765107265243019205375385580110710428552177784618062526372383379984373481819520300310784115470825877697100348145149239220513678461059805772828526341162678134487507932052736022006652313016498601553566302742379369332381972403615854204431082183263984785328028929977883395389198618861047517556959865840418318581348965460521551083318411637088580777153958716134748553485757173706348355665471164115210857405301111734945228641721076196899776658009867715400689933118914184840148103939766945761416602617779458484196716280394276093812603865584573072300594248871379077779545319131419771198077388275509377208403587895928499422779123418567993265538045875571330321106876608253368481190413188210693023390911032083268982694947908389295384471961826220270327774666888891747103904596429924879485340903919675323008446885841265989672872400969126140665324915430570567860852727344363085930220915352134805165307373345146948256120141720774871495396591047122586439643047741804484228859453073024632551167132675056471968253124842862441671111318783154775911348591781339260770687417489913137754119298659920449552860672049619712219058046802921993958300024618392241785104331060791751633202744837801560372810151853654263133543919111800776647526677136071663220998139413558891147399452076930926895794254315471146239846469807189145350721530296483395219523094145100959614583458418881909273345763195096544232312696918758415742307351551598669785608111094994296741020404299055290435438526631566089731161929109038155884741011663918460507758031486431978869886391751199624775462210270153959092892506138866528621420104388286347181978887284177730670049229345076548132173587108644929463273546919325356266804858936820780608258191255463084963820668496514993413477799323185857245977869125056015626579720187637742788557009225526605192051855814438743664394271078292827661409318591709588355177857626993662808381628410650544219093294748673081334334082452919636961717852044552411934266504681059056049866456389995412473923764187815677202762548492471885518129872816379855997993869857100521472752087714301640807928378803587407957734745602792589642440711346803226761902337153321160787467200873978631910832445945683718038035130932871675834731191494500400357539851526939373632772716894897346526938022441880517742888898484548071520441747875094940569323555939109361424760094259902897919600226157592494919270620485347827329228124239968363941737535493419545502482652335374828488462850950192342469878167119795363971579108432483457392098640106507276143381179941276085234252996411496518512488435598008924291301592279036439757053697859202392813562392035898558988720282849555484010331548537962204397591173987088678926612977735328954168838912225404276258173650334013726842693917608488359669538504221149735379691264248216000255952163825719625607251292892458390528584885457333500693525347736378199489976339491905302295068704065022544304425668403439974217585054245146659973305900341885415792661048890664122833520480550533714756620377034259012461496638723703395194817943066379253298451035548083845506838765731991508644615622756600519564225674942451853905829199566937810998752177694586699932862403261380862442491151866230552254674777820235555544246347011758771157339252828229497993923139510399310633653085696714918657595757259424121557538942578409477716367476093989461114988433845349885654202373731621470257573684187882251491653111316431303904058136579594738399174663535520885892221509116222207956897600773362437482441579858414798010598200392487867634688291605661440533523476185394434119286696542470857429859301614651677675329841072602177898530390771328672312411710966279033167994749294132507846613942936552745503826782719573597346191891749929039305240120814142448472671114261265759894670832553872758561223653417169386663570023862284767043768241601871274449746022031766153134415396656272451911289569307591484440188899432519718823544637957670861135914758316840065828185558691611826536848220559461871369713889072782784289536710817422682537810920224442799066418824787220307860077824951744801393751447531068293594171249902575979645542240880340657010738676221080304399565933955318078922666997675211191856103874891006627533453767068676975178837227706677787036570791237598144818514570944421248360920044996271250543558732380114561939428304581838021840888105557251671332726460097243559776674392343926882040872237398520173684430564356569207511502231302193895374913903909139980315097313236939114158136741461576291243371607059134366060281966444049749355409948504669726565611592202972745802417072674082283029234473272767840001650916400717578166273080566158912013760384573887345181499071098108001636006431932050297753510275700258675350844076002469160310115697416872660758040254134704401888112736199165973640869969761010011269764377771426040026709787014161417818323568601083528282822781619532055044229420495598649525245518107046218592448578970573443535791721988889946406353400878606491604569161488391700186429055052019992913435532290909459742172026411096572191474251397472468315058564932831029331597149600199506354122392436340308812144691823666112991646786766422386954698395580791895151530930552449831063236536430923127313844995461163789960986249845247705088959841543337724082511338320065912048763586483040675262862287724353866038597110648818291338731707298230548310032473331364731493017220337969362573389087048036348404774501987612275583826400702456581823137149997142517683790220139980818439724721473308983485673853785872148802097561803914435914643416061990847452883689420721510988103084371187097677578694810656843862595339584492954516856882869560852329865652411864686252590638585692739319082231584431176051695772068412832793114696007498586683493211149369357541559082849104251699162092715634688309346293818638366906712934792704439986103946702200777276500655965358490065301653191717053936130596460901023163870525120430938460820531825110049451201773183799097621089704006250060406421499245992232206941470215918954063694660393044929368664479277260135652001466182158899456478946396301006531897082145742768861615865161247884471790168127026168992106041003629062472447624666800252430387667026424630198139502543079864627535380983764835537450817572544578598907757241246539372395590376015098165500287448233071448212972579394602778041793441961325055465988810029682857786247935293161987596634124701566374150312112483004001688276003150648752547489230992045955112203901328424685159483926119945171185033884036194849906637066953642762840860959978999614365170912953180694174221293900654733439357510915082634911398616121676221418949558314656579102216978536842361072711019675522008400785300888211114773723749745062324036519891915155021175006284796305942899985293401560257024136143021302137750170879930263810142723922303510012436355574669500067572693361722818648040340330039871396647834730691080253628605378103057349747846941202234208696017244894761935635221211642642009775187543398723030895325376952584727468558328058505478942597534972007519572844710683091312601186539772364229393803647820471927501000158620549159598438295252324436908797183005729556156029914940852344920006783001498113826805503082656717116519119448286207361265952780387823015505351849182543617928594489380006110901522131280799413479368402138360001173364904004648911019615967718002921990046395960515561063569010462784986465906419554501570807553636925653288116731999001457652026012484370029594338156854635637716268260817073215174811791469773152960477035488012734055709668161658091884814417492095739554043092079342932881197589200232189418429806848980073645107869598635449028849450997709830670424131518913849066636748599369701289838323556617895961642858551394882504201139240359453875554525636711215409613874201928187979042581825154318407084980047425720169385623663724119428736731891650681755992625647618970327891610552620835005916238628536458146554864128963085267727091904596205662889458207699427040418762951248768207334508957204241624203826239260253100001269999865530993722454179423631606199307001404447199277371152162673638607320773127504116090563386530381525749926568425935684581647172664340902323388802161069040066825306134652122524440323403188211274965892570168707640397818755511113118733813269854469205039397419353763352325756078308898875055151938551884148524687699607376944778307833648429213773397281250345475623773790657817050513236553538909319361914010534416419018200750628358158223404214859359291467623188907661596908084994840961842667335847901210311504078812648537120781230222846578222477844011441220712519932690144167398295775067157185398427837472428765195315199491064193849001107279699355126178121910088981383224209492010696458492121023706412349133004890439054330524715654241061315402705458914421060583060199516653809854782221691935385150292876163778036698785597499046900115121743829804283710397343047111081224070894329358193997819139476545349162795048029005841745306228289909196970714996861476432832620623153274498580399473894091190975578144810209903151978357900819727494000644966003113057134142145849920897855189095999798702030005175241736726978889059387018322769362712686142017068714431602278890609115052384886418631075791758465070709822787053988226482270388443711664599549607778332626189123457342828494827922114321430799328629231717493434036462088766438655765400420726199442629839357391491384295128604233170409450935402693430380958294890234877439402966974588432684421123934047226511574055359757719604562535033208978918604055637678531475691888649932652030504407504421513456742041203749559496014400140588364721305522499865399011345596579608702877973032606217106719754430637052544499896424197637095386501583477425593613008198307996499293489646884051112705943376517801689696115171227252627576450823033959399160458390532695623137499732669659547000003027045318111931755700107840024778137327061611665728342231345506361395768747618699818354879011328892348520309138018163314469146636839328717722166169299489913799084431932516204587342192687614620581215269731216198039762451343840514360754311089171904800987738466618864344415564416984636003222535385948143286804226031401344731319371489398730413995993227347770596459904317180011905030897586405824676940125367723053363740051177488055922686390080030575256212404210132502958305032815013282670712860124172052513451163394670535742577027105008636958316122619595057086753048942583960092665189160840159573323260827153929876957112149906540098415040800146695607971059424582381720290628213079605463513830685307587819682555919515885347972770162367172895382835438392351577871890704574514394100101217279954113211456627296976894178053788123432248998842401139570984726238577159151002924280707928766764901239722569585359129264111003213873463558095235150736932229264266918860712445798754934994667517437618984040048866436782935178367348855660714221680156189863455836250957822446612103017033225361893184417614117606434789576441806487181991594033831285025675174773881171244654968055587282323536956301958211760250432047706287834279518619786160440796452557454216415947307062533545953252597116770912505095077261580329483172200720364091130593702548510498372118661264859538129903449166787347156585565003584641651505822392833627219059280169482246039020303199396227479742841988816542982735417634730447240524851221235681472201880286650842866786963564997024761150535728008031254455773099707090114531372756651704599244751981619389171755105903862979043019097269580073051292073711229152762766772058118689236671794429216945793057276269196090104127272365941293464685293781025682469734283171468648933409017136708529684780935476457295637841867145202267926479569637835932952319665870757602752047246272589253118639599634738040360550978547715543172800640747538291877932158969744023568263183866688283410333697694963613635191350080951409347469355352385823389577998731095575545577923849637743194539753952566888724949283831005266368036258930150158671655335950397306303454538937504319604520717572407773306658198417196525769648465331959419915270349870539637524833449934059298622498568096046647924885138489329868467760766312731016118237342714876676762378937986874213776060181073244029570289377925500363262977630874520758223704659673817486843582237460795829637687601439116536800019639116030933939589409855319323956923482842636914853014985496411343164117790735752380713153726085047459312845052983379919771717581928114771266657561133982616433675833056238000783845442700125591976281521623967979538408489139795576366236089018218506289864380673430151975398907889273721083241385816317700548277482046266765723598838377259301079753725309535277937595685681429431550241168054815360895383475715788649532853197958078218110766308367381412771715136158474354814244802710557146678821106886311766930685767578842086766050856701442184321221053799698688451510604062234588827613480701393180150181479097013655213745077062598960473499218195650121187546376031059769382145862695035134175125971558877221797880220414121123120014565190871305864694606844207905460283661955092550069708645623039144072021556786040674052030066652580854652858178377690941853995503938083607930931106526710850010454556226176658120998219774554765940600057891749900002074511059392517821084183756500999428278033631535991001674757462580081282096287062432600624297758131668677644651124521190860331717535025060411324026349489691709302126290851353755406679467335588220229446301448994721986921264505044016760935313964725737186539026851590865370418395007084011089535626587746624822416773363292271566392892655216264752320528314609711855793526777415264825440349359174999256686206511639262185328217027868046606248609334104928752773214746150827657492864087146291904961141028883951461377473066120515139791169668905658702259484404601406833071605382009481660214295198590500939124484242517084894581119679295972147295874891373575992154435455776614530391447628006054149388080033266177632947928177828822586452888737642642879482861191649461410653290282917600529089783194664669370081405069465805944409515652458014574539989256048207132742255177960122624437587571113007900107814841296327858554281085621135769485062005261397502746185710489012053143259609676905201789595698155812544488579940824460823467093384244144232752405084474345476432126622799004660845732391175853466206158434668100233579849460206381308857402198660323437930409444352523965519264877462503466594416985096606463243387764478484289259210429071636669897251248330341845136966018808012915973103569117801421726462489676328099858466673483371981070968809832279168366410725052541339209784817761339726085337777225448970781015346386991867912764951137058785615564272626070977234660451704430671744980194918045927874358973911380099743459472431056894035623861678891649580296274013537596753061204298388421792977120664171466470993856154705812145744597931195197460140554384073430665453381203776775469477897164094059462131807202533405857892909615165159047120453737374597429821954425025952773899536673340186043864752290774509814576781497504082067386608013053283388739309698261474193712752487512164883319949418181724126035372117820709656380542373805356067126414477638838031008307747356046636166073799145212491372047859026872386541374590386759855412031014678143938596315890155042649496178888800233129332688156784361880622480215067464419432652861846666122677946879897370517775569801544495135605106338019798635735371121212344777607136612785353379306221217416917110688662135547148526485077220786937218309854984431950118891427015652058421854278800212220092703507914963372786647751177016786655768738672396683348961682508561686173325938194522129389814693225142405765558695109199360111250436415718940144609863000896343703407461357483346086110139580086890755991705456021150188965453163612031627141070934965239153142233517789711866396335313216389312629173931208898243791904635867719441314148151108813445201900920601386126028952509405986685480690055146673755564308031293197856274818577710149621230497376349642432869393548409477037373056733751699079979743887107046634706145449894957607460425434858146478424839725063773013817701394263809578789724547167869840008150851316975009168897886319236471196487547238044582623697803503949254946125952138240727196060581830532931876228570102136773555808553782468262628025957457082165656311817816132906691057607094321589175811376221364743836488041266987067970051807218748650701689805506923471567993101610336519007424281378466108021377963079438252863696028355653168912344281264999653732159855379290123081752558413395762144397271121653153465635048037160085146836249128135298554450537491567756571565657758793160729140020853757391299378311951184356328928860918120692394925858798840578780658019745385395333936254949289557893974960212884528153271615350234228673849692084977359594232388940385569928838994422870303592034987213825461393113400818979865862428212864477191399485503528670183172058429855832387453670506156326667808836491739868266237000151912632086239431796154221113076860954345400122211219247967702866194678144993164560006041457924118044814507967274727867170855109886900001311323709813901352561671940616492506572935892486629269821893115190826997602604672388906288042468068799674795015425581031342814803328040035291521882471301465084468191999389296100252568272175411837665550270380123930595763566723964890648869127674412284958273153011812507301721572869271092207450300303383073672765949368752246907685928469807949497066133175452083045384882010707645253232687557606959278121831772187498427722927335130167864283494571207393058176940299263307907778142498340345026201117293247475009031729254512352216120359629985417060862618837812932711627604221021519778664191074602416837066548901972278220182771425194334429847478452269526998028453766136389192250263386815199558720959540598756935344211559144420584413049930749476079002411268525925104721595551548213923884118872670717620032648503171470720574689465141857553159209333064077678928151569626784816929087901702613495008981307043325167990138565891248625159349471422431870769298049497018217935123989554792054885027304607983678198817001519757646898115306694949616665342204789459664435320018899367476063441314007109696946923420552589475718569364566666694094897740732335565126251023978766569573501745422216841510366352550921673182167638861953363831591069687242578697012214220940742825855228023159224762278836791632427142027980480040782205755003891221243847485502125259041421765171033860288102576634125484271687539108408830319629149760698523061702029225533044898175567056427586958157461016579407463447152383134238137383088234318654922913478756327955158754000274466682268409817188883858325717041551974829275576124786451327515208116215272057132645908725957748576173102404589947679793460548030422768771648983415302535517850802849824945549171969616091959613640860679888910025404250456790902593081980380458843038995065702620096445626647848825134054028994630078005133423366737660551997992499459279525457883635250133453044993738602481783439019658019790349498772331693203815339873116580985736569540500353306187981405078500981878854161312388260630172826505360644565252847870307312426488601105218930533586703033064049253383502267994924731222698628707030982839667521390688393486357243441419458353060555920745497698232987934349885932902357633811401663792024824073098412625395346331630861370822744800471808655540379029947564972927255495633116007230669074530437944795843215399629543600279946131941634147902136406104041984488510293618051683461257741946587478343805000943609847785973218699953261884088980489348229818490577814671719014243378135359318494372554033965864475891537831448602689747160543772176886542037367967002676169627284528317897787158354813120965608125945137367528161570618119045226618358316594485851316712640579145663838774084722660382207210024793773001127996165487100452645201939142267331424249683089235940890280942994044302890881804195291398526743060917725041420631509453384286510604897481875591599937195139141912530166186093818515638083023696780573275080396331938613465529302983585863575498846135755729425321245610631248457488502309639748066332216281939673887359867905153370830152658580742656309497906087587294281374703250134951768175515034222402529262500136461907043609159762438142452991404984952946463057848308332899883518109281632032455018190886414943668721664731781369654257710002718459969022926150712693295774554780771824574203980959697420236525355924754553959701101979608636873590675211807550693070466038103106130858171502948175914434313742411109328940780701061468540668895384541490910289934990912479524311441839552896721358453467013182463683572346158178353292156060582124011814626752281245369252355662256736942464087769832479710814087365331007244667602845193623373551299175984332016187386235511140286066762909677649992780439882092713819818568349008972899047224000629701164356540040147072418263073595066957214225970905506390526928805871274829323225403119483208855737961343659919431378608163534107589929630507811869559426700285047572723437256633616125951564644640417770328293073066861770405710339378090139336644265767394903745143900834373686076838001192903279126424535365414828076514494737485346587277829124896066725483250234306643035737661045609432959629572103640614537484281744963364144481607816059714577770662678654198105272758937468080917452958459438415718495289768504593404359790333411232976056149646343109560101311050208207648978523609832205507501242892524815024420375724552689511078065707726056857767913600059540075549629705533259621736092537169118940258213758218715819970525667803994075960659387222005645916217228511367540671638283795137903668241867283768038979014766397680097416943956899819226760410182241988608310642477555505719853595958491474818220096791873756695068987484714411977713076810998108282175857259315282524426570087269072197111193445388990201916709790409361521616480923459034089479845060053134851475727185990439749917150830676138956657741170090547538689208189847654306167994885245952557049692810248132945833353257459592805187378938665833404644647895563416325767900306991085858992872663532864150105448877402440551424713389729361056297802976729307142665969020575921381739948074027053608468848288707751158075784777852462001331908485844361042926354100131264232387915120629238555148621355567057220695231075360573516154891804848850979660957668433181840119714034923944235658860019842970333875037177963477517951596508491783700790740832826436502514614717690737447708329821768547188505654804046079276559669005457627523588970792801545961818016836527220021221493061891029917095790220787646850067081642610446340105869977669156710696544653797790657967803082368155221866589069252863230102682741747337423482593988908445657151395816734810026312928815025399627075893317186280105371693422458144562242579310184727419340346253379498948772743986800769040650926350745802552285694738900178579054332867347323059387050032624462586878997757103550051483600504589006420141815824436585556527227607399152327380487608897768192708233881017660536066060651426579785244815592113494286873335132655209420963461674652195600868453111921014012216175398391828879133962984881675658419192649322513095072383192983654561614634875741440789426128593454271093968514125630679529082342372629652269118601611343149287164819765641038148309277318332389722028583052291606792296314912230560478547028577737963581944996768801059800874397496260722595973898776098358459289244338996050672518075621404333167439862008739801603715613975405013124381845423316175436353653881583276874051945721644884950420096248837824830557137300235079825674856309312211478561255253648015950352566333162097428318519535848510195976468448578113346047543952687414033994059844650280171595603029082948666856568889492486665810166417131541703164919338127636150939730948895701065665776759885889958232364321657843322485287223925941461561541231843222968098070697870320470055009197085682108443706308015278122143346552526662537832417148253773973867250109037222911894624798563770402286881375386922441374980606124602859561311718285937070175628927824752418837758289686128349334694575889507518554749439312993593659393515447019265645399422156961961304051489463870437237237675520962718293190403142830488132195718726816434493700917803840213906911915612810224981774494433755131966701945504263030161256172283058567152873611909332359947208769154944743666835990264601517539377097012246654686921522087823228229737142847697141174068171676704247380479690694777545278585797963924422385743306465849594506978159039403381104137645743018782946728828680472262965530838798931594779501319014016529198268554554429417614824958277475340714488090967652459419237457487213171730159717769413122538179874266976294868557452626869549888471808140468658333525507879150045202222068138491147286376152721308016870775542141451503149488028891182138145670665664683959322519671898633424350844917048175000826472414678484003646768519083890396455660502277195329238918121157442906397071677537780683883179232566222630193098908510731790667472392252100467619601290451130804708383402180557363172129251859605928135955933438668340622066828503506975874952183215177577685352492698514409772491845556702963186534560501641236944570392532701317817875958959550424917305901582139173629753847022239966629260438177263259896492947448224136347255861046540026291826972466110141086943457424758037132437838892197494437550221811526951748158703450396869854203892063781459237184262732077693690265798655675787002249901555909310384655522291975758463888699962628212484651035944773496885848388400111764039245004990138644229838611735803135766627443535197856765535271912020100466310948397526089548492438037378107033144461513605035414134333384423254821723640833928974442282065539095823623804461370182857358872990256905930413945608412703083764100680993375128010428138803889961583359525959201703579132689269244511489821386343270633711041707661683575917419332304336683874925941042371816199034730264140187353980240428867242937141846633878969681829638655711373613551815796886863555571991077769694139936177975457589490233462577785074675316221275751652578227683401255398218327379766360245043257580718437575273297129288419917488430081324725214536049648000026422287615952971586309774019934618692680312353608723903737370827813873245148760506655832488484803227935860420118496377451584238830038607752364135840501248420294252953460017279030723405259894569397878778527982119956593774563007274761197509459485714619588149567752455692428745770090714531526499878179699468872764554966375607227097838549885532912842879379316470554543127058843144269704220299369297443070098407675419825162363788009368061870014944561550638897847455085497950242253671096833678099988025874916641454307692411215730308150367682605302696263584694187684492405670314995373685696201927012190167469569655145786152131904435433513163651894208618574345634027490377628720521891835671462127306382650073892956871963965035303280802604596421759662526744667799622161236013298686400382905274269034012174076100985017296137890537930066895073592728341801410951854422381954557598172336684745305544163200400690000016227990401255325073692934666890027803450455791680159367439125842909833536298491666889581176276997988198606686736680045714039135176344948279342481265239358872405252424109870083026059016442428059969111841875265551312901945392435661741909791912016766057822334883742370987296328603695255841053306133876010773394309140123522548027397654092789680259260895707001442994864025890058726150329857791997387542114799616349361179103428553046724320336668834216369587522380668629461555833003810717622670732431698771600672344732039110232093970423981255620743909184507522387918371795454404066127378528295303590500076328364160382218327072543292420303626719456122261374213603360526657078661956118957721194495722464274010664611723695092655079007456286966124348333722719914399575308270010802659922257680968272170322253213052673378717336342947136219572718033923503044964628211105749990929360216119185419193077004628520115101933958729428167408027484258557526509048865818768633818476866410866195539283670422104140814461707114169878609139548258973650727536863204276377768722956479293261135508268948039356018387950523786600320311960786882012815478937305214838677292318887455310569285314387650283887078703405066541469455175174249197952838612004951012281471948122643276974747451580755654848409628250177051036361846920205316195032190338301942018046716503702085073930606974467775316589998470443445556994935772698581276880037482079579585159596609272590647022273843661580651153230455864923396374122549507359541196490620613154918541648153144032503893145625047174009710926793332817240006549168927223680454574834078561094293032737287732524790865652131048961548310642689031060903471336897365043349790707351702282275178137704537494110207197762026112106307534784187538934257522318977393352054887792546659700519167251258580196520186363390547723528179330429174288970599072553675174399395194135167062785121731928550216588335859106133277903648088252907824598399824025400577703530976201501728284149505941012211873156691458138792886108463353869943034137681033098171702290183077053119191757309525887708722839967796018547021383559805951426507644341650244606999304910701052166081683361617584127462131673167381160661994601307807080117436540449451029457005852951028561208806958621193001223004697012611258715059432099484945631485792681802363351928080667903732089162526312240611330026855416768333359270600107025327654125919536931264550806003543662872513036063474267130581290899165391616020092514744508055896804454037363554414119788542192907126237664241622166697821006346344855699193929475404709427185133666261954900663081045952844159884355727203947017630515399097684623831487415026348125301443062538291840746375142470708576052659004242389635944474274398351588906128586030378275378022396094865563619135191043976890740971427859844072065779241966513062501461875444875705802804592730898199499407882066430572352068028742314602487058848069554095242652267486961873255889892270202126790301415118903993463008399158827452737772019332831963227054901103786435644226890501783243925085569689302235514415690657414503152905743863305987594891464633731107064130223551562300970254682250273059201033222110183383390872964916290530160340310286317223329618495482037935159353942584168104032942529274915295647729943770030414509229026208933849654729289651532072774203206580864382258160381762038894352374173099498333676564852226104529971264401309928855348733176127563091678151716418754468387105503405215569500350009084806398636026265956260125978535002360035078611607370231129163726797445383059578237275301414241725938988049726052609152027245692379147551166159194405187909386564743710206914262972186758142808407583466584938573066490162769679776588572325659956397444274840463141646632277084831862971514847854983223376762059995128600399282741016063226686683926964719193530301339862280907765881872813421458628107080968858472100153702915455588141087272743141367660136389745156336350118349041010209670526485149541985409327834515956094884544813475420130986967772597197098310977165381346692721249614236361536971995264173212811279742054603245654152624952351337583025176685136084085622132916230904228191953536993470503202691376922950640097260050493587537697981988137864876643847411354142421359601814019033283406714925228609284872185060488381362990646732036944210127974773922105478443279920973858725706592105935786040132385655146992604410294307080050438561387994536929829511973911754963412604552229816501094538860780890365229140396239003515541890111738811402072033360492212282754282196912300183141629746051228143378115860494142884597285295123210616399000719677894357995075876884811705567042379076684507546055233391105749860778604126030730835932215773791070628529473386520443278173175839379487479473284920745441027647250139683630421313972779977680730529676424451215396376385074654458920660138635724587046157511623175025786834326014138873395731727389931322343669699940031391054962901037042286022397842961935008569610209595945254721226572683512255754823011333485078036633082415219094802111727030485926641117907040295410688875943219625476609404991571493354585255774480978266841671899878162202935659546761361063642621049689708812090577431701335549647134328399506677071234710842277611152615027847037976530654804581243745065891131286200536001419653859147195291064636159968108732568053703855963422614539764311461199089685822370944244304602105343026841436510709015430230031943858314882475989031860501826391152643146423360939261357658465837792030539247068611801461080704900373463140849369273091308466548908304930015703753717891211075490905254513207050519950014923354588014438919322336018734813785249242378365183931639876995828355199518859499375639008981086406714046545055428356996424440608082993228061584209876007269035768308978644956195086228448296389080311912648346671912229771358296573932619165954390405203708363600088619862474719497643537188874916160601212068844597582429369383911677433222004174638202590031122156553088149514890955403010119141873264778170438388526803589154105049016501471591809952227693996282398739061721526141671504903897623538038134900636801052559643285724599470445670291590301427177707592015025781001438713625877115079038312116233257244526872142833103554239191661199290476120030511323372683566750907847513572010843415272227822918788328318362140325867358626733956054670757943119931092286224207399293130230405159534945091777657477914742988239948550407867759551431295109510196563418986374759191102283868292609463564741584527238006720927355894896760459796864850314892937935202330767156529734791766681177744761656993658571049381476033229271364165315761482565174380584807411174736665284089097834258561430049271176932405966832002739324411977727142330668014777239712118267934721931157238252439924597006669895215450516057678606029791640309148736249747808477185913954430423298001343230204708261698259801545404307858077594089511150349283604775087043991376312694629283698579844879501130228540263877800966322336905493227258699585674447381895989934343289398146627515431828122660005303589130037243047877157230860260187385176830904762233896618852602877862129929304925034146083129194481588697121683170568559174209633494394197683254362873805851020266709136968144869351730529658490352307213916829890748820677292161258367251394670952521219765043412871488748563233839091696543988723811899096030109629695921656508383640915538226638153526937577513630706415564853357975958736806093330291708154628465018586117047813717236601945814880100573587167762202188415452869594705051764205144465900891267032773679006983875692701275164670068802983290993484140005304969867807662165800642554143415803905418885158124160608979054300787130569175090360010050232974070316194789123137743166228442900994007392815573393130586658053172663417955479828147540703460833629048924624716715951835204102898364807112755405673587347927810700238789176454676219838329900677907623073534508766071510263037125620237724848221564673074563047373992006059388614852847869062323300995609709052053477039696255788247125843837492289629524174052652218579945572010632474897336956136192728884530146434706203721546443303726703743009717914492873988333948185992371909307709457700193452365505725683359252767013559239993157520090514356466567894875167704737417974609289560724168905810113563590411526235471154802823802393809476507942034242948090141654510555057785581242657889839298270312426837232349576301050072587802351404766770593453023935974118985285822597497347657026256220785609258498894144523759952001375583198891233521817638176674698169135174408624580193674724933815409382707726010821492725618773138099988055737371316092851433273459586823150125891227312518052990484451816273736076409576894356781105672650790493472244656371455468642390196164274651289634217397251060488275048916466679368611724552261482943862360092779369598345218723496465323206418181211860692343632958854669430698732913319512571170802427808492510458320980983439174982637098353505694747098606552424123759208868277308557590958848750691024775766980561584193455662913824047767301758312032838659770723618740533827582899335863278196760598439411444102836087017896928327444551713460461692883493617881182449103605590068568166700373963596861224481140510965508696089214352512992728247228183475470913396323322361272754287496739946037875550667035104862510733727427187223507033583858796574538016191827281303049769999840598131704388763140200481570228836664381494816190001072951418119881402124180643616682436517788137289366645004658909057912049425059215579885572632060093864754731748145617908477703089765923060076043842666366258410495305441948518941934505612446668106570871952408958884893574273402183316900572610105409539408991486925584233537028069328293729001451921362953344894430578652660466014510888878238638094539325867387742784825632865572497010712869128310650584207208004133929816472655532535089874393607641652403015080122581773770558856845228797851533210601506387383965398776889143836898023760797150485154085174860000017137243227201595206462364228922785666412911738697624929267402213471435389860492524420595080602909326906675546210408504949574298095914027268666884506906793476957725256429008093309761157463834509611068629867645963139823043496756211849586835668309037420662248730434883588691776885264658017474394367754459646152872543771683959047086836136233592168135208036643398857979228333694965873213648518290098226634005640526053642639019657249374965758832536230084539300209344935375292910504551754265910817128854864271783745943387186259917510269719895607568729542115332737438807031320392620888959528624873279337943640224002919744773058026652329902928659698722954693524992665881568972072915697608511331116369157478322561603978009601224366996301727971696295519474955942784838424561388861995163847919988238120393210938550401375342154682953159720912306099558741350370668646649820168062754247370272648610004030405370499201972851248754739133779781517779410621252054962417709589867374901405296461333014698557658660275092339394157647555981757513751295299341305363741130197277437032800354306490395004217303603994890765512614736339957998627710466591981307831918685365945508316235786076059583047079997207129339988284370870654559220645352796337995172962423488545991807122402727132870111128616485214895241963072196532535381309503926324064712641807636288077505011320409128641207532152581994691497834060985455808611639856240579657223351178827477724729813985979941069116264184858237432127885305194050860762333183079394597334840651497675531921998807062523465706438325505701025971973711982581619542433354911818964683444937572577874685260583829616181508227397559236102850657826364575016689755699542198600134833587279941212207589648345737991853156026263518660582695446000420952648461983056155937835159887659945715810194982667720523632339085460919101903274852938041932330985178960042222904528424955322033336164540641586215861753904271075990224027945225477255521340742752906623064556066636417042537507955272473624657123112755311664518483105469803005248536336462812856924373337568852240353755451401838944722238019520978998023243870552373296700496537406728085133930259105236948607835497473650993396818660848958577178655366098379179380149335614654355848588300089270717988819162120344634081919262177740573705656561415859267759115415989915612900836624880543594648313861438195769124506744882938838531635164141955075922522080282154288939952029155242113138710687645517890815520513729179188807616403161580343212786688928844676001085822782160307181357201621116950097856772553589576624018976220938523662183210097499174466392873841851589425354803731459091132233729089850733157890255363011246637784534683784590077466281846890777447140566646417790375448756355231796855398660013260450156808283998435570181568492532422788669030259142941224210193619418241658285769608478698114889765132534383484107491775756849508425067562177118691368869314036161818560635859774461392298761760983098778064610718652122889173139943889844873888207580173561394554208800649196116060252633728817137494758364820713950997151498153277817450009316649403228859397090471812132796418037843215091675291182069714347550974843226580960381012756379837290199835521858923067931830098019866239870813474091139060272839888799824701418170212346163222781031977558167995755044487021034341602121847692371388486714363414098995378330519260592063428532054983426681472015430703707230348718407145307661916147651105761606749004280363783301399126789443873108064707158335092881487474801199481081395107685448122155890916144764508690668514811279294523021844642390644879912154161307680353296318488709521957106662898324354477558949832835321831326649317402905331268583948527010594672982844825183821403879056013330726316760544298542102037531122876237241895504653813958282822292574687192445211720618499398652815558562438278633015502719538428207289014166903886730555475495349150057044581158941192652583196767872109303286117657488147832366390823720932081879518049402580229681196265262262204432823976274818827486629318834148785487737582402723053943595883894495895063675930128466366750101205759405673670561890527559132411930652501601732595494400506027911534269112371531697163556177397186114692735236522793269646124331852946003678434822295444705572444838139522837616936140967971938229599945564943070912983962566400237705562536178157573274972202434070149653768910441393901696232803800430395756145315512922004926360904384202879410584969541244127348375535340452502074039459458259384997245584317139963264405315906659393990918662193996466671849978047950552782836290138012523739896567978022702407684337442571086543841224074458711480360675904076928691276743482393723509378630839029507864912669091278426305756721646748607320464174336677946879642621402398320784710429429362332220886025750224550747565813669878345272123898316657780585927213731799285869127321361122506372572814640958896855438456044697361123033003242126674448555652604959264621335743818818114750397592333424003471956022439065017424375002603400892165082636401222573584029051295336130282102690991877196310777046836555999734172918807488513286596425347949372102688683479795902654348648114227076646737305134382899340296987000968778111018053853012094292904495455009525497140446568278496163169605821727059808766704240788161983106311745534593758375060365278701674881845404967124396856516595235046733683810871175949437458777648200192911729791689385219016556045964314038255599739552740975648323801003300126605581428256859139094075743423473848550709470969594573270714864438840231161797052808203577693032227350985255120979775840224907800897803124929621015898844294537985952911162731882933818514947833473198099296960302834756053101709927176559953919120196246175376046565262690003972448034038146394287253493007844964753288198623468637031866746189220530685245600459719325010507973938412070260345431990429479854983163590918076267066052991763701436958528501311252355212001455300392159547206713811195412092848770012835199384679729472333246975358485197679745786847413243510358630732203412473658919890158667982564902205673881766946392396655380270702049030058370217767572624681457259587310412896341926669299653199557358748501268856701737707202120521034088529791773201711230679928729884275698399443426698931695919953208134601932625498570634066710662195680390784352861981931834877887999845783595713160841927360931211442866035558377683115093778980655153990277178362336324638195858897014595858397813272268060949706215198291922814251974719562201604753921482097638973472193088758371548385220071482705710045689228825028062264993689060310726861640882174095031345027196812107137171830760408824391284700243479977512867172682002634598941364370662043159336745766636506629372372655505998055937401890532036765041506345581088414859655981213997812791720479436086841711135504595335143841971213474438366589104465241549044042208900031275620301557149449863142877251881601379815607090671963571639359058872108110890123445056104589545562062663982287531072311078600939061299175415515401402784232228671150324910441607236842124407392043366148302319584509578711469474744945408969325053212182418765875922634305544040551535990192064259316914973361159632559861829925506744064161412689131553127974882224307827989576284584364813209922134312243270304635506589280704858985943323033590369938641463416845194015865100177355965693338688421845243318797721827485803797484860508508265441290487097957191005914178375220775189612264275934334508534218439859005110306347134510176225120732690318818862485796399956662171058432983820707284845394973841137510140377947043198823855013812293326158285526063048920262318478407262170636642649579157581072096073090090656977145070960648258932982413229664616401022381830100771503126837303061394750343018691430121022030940405258545577320416214072603167013295365071668594464933701106039622133937338366150128667941592631862689607361916712593109454005648242612736369609343909562193203898381929420289787273729840855375761416832803329520621608417230422261833836109082399710855499099698177464373759071691168726420979029458182848354780185338786884750220332647998126556098404201055130392427775764139073708932238335450143981625895421421650563059933957373268425649507615939702601606877462668481446125150658991968201233754379812630913927365044887116228446720243027231640144296806884353927985517253152333097746719957463635785881912990768410344630386430879715271825581789789990981850864677297777775387320120569813833634269270424378601256004840436839774376891732071672262163514637198352599045076396486198089864340082887151551398036975701266747430905019517486480434770394056527381672343694759662683115238342169633281638861986281765952075338594513105177613353894554680529180819207163448279942547819931819855541690680079960520431503822923864255800801060761041020556626040179113578259486098576559812634123456950997967712424186379489897036172686094546783970889792952268671080120330552965089429789535138284296136595201268542154382440216168374289906164655326555905346366275755246194616674842868167089715555266738806313610218676537490070759132607005074191458300399230916716490644132915269828667589149433667324549284559669299261134894178711422504011456072398961564445964624722017686582250197304681245771307549013714832407977285094103866318914705953845751886380917821610109181437762109943731642198578029753708611546585848163357272618185902501159420478523768379346269087698999427108541974138699639900348712805572528205095449846507731683311832246364181216704587536028105679977315656579927436986933051089212385298185906559523900494379728481269060891869581000440905563154463449108071145675921176150340708232256152718050594049619673655250262305104789771897068879424200180795931602387300217637905261285886867036749644193031966663748641999038890626888732002402298139510233101675879860973480990305169186927138584048571073222206704658705504701375591620858711714174646523754000608603414206755213744860721967970281020390644291735924797103145570705155543048850430626712189768285958674624141991821005611458433259370509483148755887371595910423763813377589019805606270841228536670243042407627220297347673513770147558006387440216326055840839736153206301805008982656246745260145096626250703937905426969524867534297296467344993583354105720088874065941687354356820782202912607972389921574283217969993554870907231760566540020852739817533211476535897113468264408550115743254280834663449738003152520477200877975395736533410178810294071691282844105437924970516652466191398542925385990612113745627539249302522101515606031117832335567871281819478866511493179963668112761818239230859841284404352013747412233717363525232357620257898182499836452259998712965969378368374363246076837965677419072217945639583591056126094658843668301724200474973149006881842672453286486555690065790060525448405780921213495205002603070664311737800727905709141868477872126313973867347416000557357283184664524892242836800021220401166829176773226710778273170930511633704042067741690421203266656628068314582590587362152617001661244453979821749328295648482734897715309584226420203947648713651236161554447109615032336898733356632072799119271420145447311661963881011707902329648098343614693162678778056117685768011280862015004579038197479392976994182656947242828352509258850433085867674440983464434523529197424125920347456439206372104732861334833170725745250058491494007653586491336440788560577178904055535286567154477521021699404384825211758704651567180450353398443941116260769011790260335480784936631431388911412046871787246817865298568892942637373337796118047607128657111891864294616051045333017706046228254938779100815812493174948856191877361251305989851168111594175144189785786666265240869812811694702029766283067992001119906571501209794767960639599476660311143658358100121761057924239073376678112753752737293579435300951222133898625311065414179564349904750524691776108838200401820750778425609839873123075041064247125960141037174956862176880839457801681683817144176050596213302120045016287671745080328671225536220805791861276103054800076143423434081580261826800941237323963152918397638888800373652616555100611063454107685637837206337685533536419124173241361740208073896026250966472467934550118284561111752707788356260000874500182945604502947932098865360361797122683670621877153352055156119000313636876698139675648090194282962830335999296346775498478688619542198779952827026737627575414973368815778264223723250280688794245918606397630876371973952690077991946078391422810920889313368496138379743638910815713873770382192482830758873747248326805548703014543629642987603813568487898938559793660427171367905142512980864912366615380826201302007530983976045606522134293067238924170063431120668808512972022375609685484813006252491182023410587324040949874205799013941387928622968748748297023820595624108826647418709807257839475868313019043325125263870984940511691020276301831173398330688479729304075953231317388467502821024503954978381145630630206954424290259334609894009131991121775347587126589137867610835609750725496896436094794869061422727660920320044073750500407895138569708475484456969840721313172211206229360492287433419838863156203873754807608360655608522475968197485570186908490225864140444672597010435196154859471671818844901526122492175972074090395444285239352186126477000203121988954592790096737701727594953264888400423534280872522788408224797379304543152211493566145479979939715809216319139109809640232949943465136951822991705598871094222156400741245597346318069310854937522115916433917698965847991212109671677433121572579787048492171424341070024895758204855201111474679970606226261995384744791466947796734501543033402371990245172656750415340946118914248909248469876194496535226213115596884455325151334179207494641905969948547224382362268559731113004157756843050747694847933045292098095598990837132059124897704482685347200217054377268254790221093285389910464703982972803498856741511927028464344985556947038436265169395088788361997700841020863220510390911576274806208773651743212613669778858782586575438478339688104723071747895527562803489032375136459091187784763493978358362327320765765509056319458340978188437143969909958517570933045964098400657592907077582748981763306207456504788758906959542303993049362790003110814828129643694917186178813077949477479536496843038180716966380596619406007194171106539325276273067097286171067046681005849451773445882902920102344273689273466598238343695483327499369135608025203127393324271308664844679959343075345541634383789694086254406512541864640098172131387960610333034921936092701402521162658209420396856449476907393388788970944495798873946286534307351283941054909935510213444093085599378300908628059221592863909979984003265554486953847318632495260902960582356637267829246352617115429733892728213571405316762723900142938730570540645337978027464333483400121710691242517853719486680026212162647479083643732966422186174949822137997572358811951181831385322689149080935980836426509481240108411987225309307141965465336001265700562545699849467353510298457308103484271112021251810600756893241704497356273355903492563102935145897772749390246660024283571211200760065371241922283247542457424041619355722311245460252413846984220460993336910765283617457625488467280082367150349276706591574527156461029784732769489775549598368543271675507876475081905844982615934110556450350151239136072390109599613285592658805947058072334352033175465244790314743282893908447353924429702443633017948327137570389110500072452082874858443701877572610467302796359453473507727057973222823350575490562719820471117453326731166866996078931897050754228327912474545828671955267936143551868400634256851795849589048233033898503809884600955555008541672543591158123039145519678938098328297872087129102318144203234169389124797402460007079213855562691200827187117675417835242256558276365950616739504598875198747408462556404484143697591673793233398944043648271610031863311385236830035496908646469440777277248953279006572353323218770200992013602253227109879008944511591907270293079500482179212174768863529234548230675527753366443371197029137087496738990556461385181184013795735995510366602042152218741015891772440804775270311305339456293508127433272576289809837618178555439281710796979829959207730841821185929801311167847343979572989663461789379614170405360340511822403793144583202920787196477438478237770816821890559257340278670731488661798301902100417886365332828784104681857741129465375854816512649044593297735013552409062239969203945440530059638788182396412193432564442521393854657402964431377803738904608435404532840266502352628426948693383019721057378281586195466200128225967793113012838309839901061420302099612696314205245587089694504596689934045767473970813378707135311363702686405129361847967498538622596589998881329747506485445156387836309256425507715363130009630276931500173671889528981804262736174126092344535954216805463336492254068230816978032187604621908144600363348208035952291889713575250631657851757688216749496923259101483778270125201257412152474209309400353810375465583681823708534175114941771763715282194696532594111715972303747970770365165059381244270551726305913251133104990586730854410769743329039963299621812687593832278301318058302173191037423873785342074658589485344853850597872114655849701931346427540869837151037846411996757471353673927707130457350170027211473520868591639275068110843825993351813281184516754389130607678103212626348655948989831490617187731903151718002568717705559076299046644923025825033871828671403123694111942446991810053576445294084961127351738352790348522370928799518301069142960066160918991006455211059884822605203649494685921443901393202963606170623717615242996295142330480797845813674196322224750793712486196978341987002874197325163799738097420819049710395240925176528898169347114642952846007069337594863565124043827092239697558964806512603429562009545679013182142711427017849902354059875229565890684378608688590614404387008189498906572521849985744116761474649948552708523948470404941953975968580070734533146392972555178925480051170286420053614724603005080477954068047204866931535513927746740489047556679477881773302360259101283247111106665812713653988200999201188575819120828661196394447188817176554720387544165651465289024318288398914671552038893130853302807230126632121762707807474317108292160934565204569488635074499501218401891644838320683531011680657999121854540682612789871440150143529833897817991194719553370051323608568816321419501501723750596898970062469740821712161818691332027015751906445531919578887802031331450177211260682578602718562660458228351307387100087984416134872241980631236357837611495784011120966279038584030057930572991756344007427452639091342120502146074451084133839956528021688987593704891275178311576289142335690932148448500336579352522988393351657758467685835610066525267322312442548002756879120387815950904388908574209838051452368334205957021681736850254187965984848333955718745709229325377100876493418886843381496539411346327421764821911790312415103290186545100689754172768061677539745088838204411043298810189178815622927996004405587273369691641934716535006391924730681405884169708243684902811160973941689327570803934287023776413449830320288568240631788927019878900418893391309581462542715282122673550211209541020716350767016246089231820192076066018521716265668341329273340691989943368222796563139852040816115090379371338228502722511748737616634578301670887108487133520715238919664556349941300239508695502889743950966640378905187553283125273148163256889309173409228002132560826115432559724015668757288210071987672128454813871194871713146411796917633616184890514646539821139477208211345109506041524342611454033696296817117553423870540089179703088392571812293648870383199528939764517361231173756176484166042991922295473274426444646116944835400084065404611758856913919905426010953779996461707082971941882342837297547271608641888005770538760735783264764196216353880012656327922984999514430784877567533872923409502459398872123577958590867568720453452266736206567173605449127911854959805239198341438861008527516165574120307977466999726501234877316524946736065583688717273449577816931910208098436681474315274246429327321421574196775736061497770982326949986527865024672944914276744354861431278045966361198760029531325064247222908415054896561791111768363332677991219856724676697784893729331995494834585667087679976991278493183840014582620349574626184659796556414123379742537457165095768547506100872192395640808348335577351356684461914104044256349365872679924340904181679824289927874514274512867751909094124263789843699436249481539898471084852924463672552087159774260411339260844099419590196333525429015390733328300644401177302584609098113707917273922979254045429135625675298833555996655532239497564265455046280993112998268629443292231605021752597064532746930790476678810863849428956751497287782980067589473968473280230687922065012166489091689339682464864304846759299069244079862029821563318298396271075223220538081928604334706138969939929080058483421349492598616826315741274908642753843227340986046404271632990683473957412077095125756050592371098837699312767884859296429435920912346721496932959516754369171016062651378064761639038895807067298164249387226072087138718858367080755706346131298443449791311625037434646756147313940163077932993501472038229198796749436726749368171557842301355912722294855309719984217129984260875579497801346737881198297607992090755478575277847864267369664846665250590754458412234895276250837122520944043720856206626904181061943585986919164793669101870857177123030245063040711644836288182203303902539606376540148086683290840991873491098342814783766267082120662375691858954961677340889721749424063858885124023410801410621368944745925955321967004405518922435977180413140268778256506060984971976001251705154913098746644094260489361863646883925819909360590062886349070101975345938575409263663601309536673995355806912349552032775258809029813905372403178371778327814560186465127558991845531640568140348976709786194629781759345429002642486136953906426593910518563190050985157634926632699464969023644794926672707032818710174863957377596205324877519271192641718208344797616106232516359378881673835705575289422040943901686380208229070054397360318285616692211544091680939946556284476225558054608633104094985713127026737745261833521590465485569144235506914890451385976375178461081951122497290991650927513534107774494146708173777003675292285337120727073942120664851095662363160582975481540423974415587826899692296465933385307427863209319270102981268401434140768841281054988634534158187885467355691581886836558916537982818701956210024775599243354013109714833795025466478149066637824333126903043284286565518856890548976437281971590712439189311904592972255110227559456549659851698641945498572428970357867901712917159804305745282424828849743452588295576674487098188444735192225319266489751170078272320376364626489930928057145017750287417807905457213480458600671486611153419748500683802256951995585716307565823989615298862842205055500174532292068594154668931811905666778274613301243970125492506525987403189690407948495388332598886867783095754965048817974609553792373633515430781931072703613990411348535049909047454541801107314109377372643664386128471645600977274489971550460049299906059954446759506138220720171602174589683358312311924947179382429953571755011785592256760050764023519856175809549928759950983516658069378213179404561892215648998179978449602940414724378447347178002999519295709233735805027247212079004403762197580876221938151970961569805521714322189040570589978970320544846698630906797676071952604156736489750494264304931502663760426685846859278731499908647280837985436327378845558515854733715904468981471850607010608998894337127480014704678944255885419578545118754180504563016489502078007959533941874480406274474747913744087616143234169502420310216192024067011764404027395568665981196113701275608560329404247451553580928068107655038998984310403759697757549958136071051892418453075758954930251114335506932870389299984731407933087365466980279460860081933971120101206543933668960828613719523365851043988418887022617558569874240584482773640497694670053393903635865187142717409139753604443699424065739981630026897722127510866440839269529117654759308696092222755156156486015849550520872747790504732741090656183024259038979950116833296567539499119304565261824611552506144546995721128892887055065481572761605485433397870408764615521044206055822408850508508349298634040152797670328753938658948528487414750334965835928740832018280461617905761037406086253455853367140214394280844115908444645432143504816204279874742157186229936237658381415156378207537979483164678234329023014852207576215341593685523655084121496538065739905876404248591670888279726304529019314356243444489943443845317186426187644820800483492185161872545017383107464248050236623664659924959034640197524002655333392521691398420516367514727915504277487023632088204513838827766925295045444434153880123484506451961843852028428317523963163874149482766755406896191312349115259796412886757379930920943362773977024366100573276858907156750938878940547439890659418264120179222298207413233113809552299228101185641093865928797175730411503119268228305125412751232365989000103973422696146668272817102700905835942577170636949737540218486516992115274873943886475223322083903436125833253698978998832738775611528672309387821403786064808042403656875285888896484154109281141515789299779976391812424011689389589446423646896837797783060205212209005371256844330735433917109700697462643428640711309098054322999275480778750894503864072196645937771250987061123098206381322096731737778962567130322212614217905574492358355319875858587040734277604697489257742522620564123834176611995155444181317651935953418345469071112440722329579295006083042651000837724663104995844940948563360435977040806287368299388993972135034998386943010484589961635368691621232113578020060877294055222230815338634774271926886093217911111519439117191463111731948451732304681126022005342914095634597494443104134593021032392280398523101265807899688007876298895108916827055176874048614350414704424564462737266258765128930026249178192145676490141811134636168401248921315795952880831987572455154761696938534854998301957222968760516352311075482630150099631829570583347976814906388765559287007240495754195694879384874828109603940867888193656448278861395705109792134843254661643152517396926724543252309121378644130927108745249452417315979207332652927256491661607094873961072704551890358907682408939228747818257752465968484633120012467782674682292474376444721893648205578066022877777784457623731732086885968688232192687679357373877397720676379535093635454416486504307423092975228255010213770916081064107453372327992003166224162860224766482132891303552358638433522033094473668808103159228480786776389583869937140665455055990305138090596469663804308854947134168717865875306475303210971847434476783885358666135087208377786445689575155523084737919124334266835988396551283383983288912233712554288834987156596141313827771529730793698939131649486999293846501315630099988217507013954916592670414327064175782278500595680239117209861677926756340206827199845794418445194846097691469672636016248704232032066632351570009335722749824703557011895502439473135936936594147807145393705403069759676770621323145917453869846238866679589180781781326330446027624127894419929568059566594149790693376650875573558294549230752094852042354872315499954905138398990617811394414439578829646620462325804711930725261369946108859964101898400342387144042833825263555915714455655748466753770628009914592949328460688821188975701051349768757832896885644240999503753044606408165288151491000492476204162975828236098728703142474056853123477154300816521254443391444861033611061256853284021187838440851155582119905067753510449301145997536741775083219340605130132848269142851387391321458899358479410320999662507502734995873161991899258301642467539478963682344321969298028837802098765554432441410867395286415593886247044360028933074128054841404060941401719950183589453391666701032469815322281040164269025301122661503717520229114552961616387263316928931524660843905212694008343594973243356796227706142608792953008679609387534777311932225746524732139362396507104039765982052837572514095340097355933131560157056377425173234278112371986125570024774825231274670051451432681910965490149074991499075868706409326778621545620999208974094768435008254584644767709469484454506124682036318712329090659924395497975632999573067999040862093302882833343890099023485258970574791795745405543678328073575188596409374586107272885448638081257101475454878539100012987739380707618052045762985889560035477088010787271264896576457265305162805216559945023197832507134476447697580351608169392877787226565653649115617852940029626360477812660618972589675604951514657983705863089042465741906273401980127120088644383879596833650344493865451785440387511217890211585002329452398675122036705353451094574359624167860162100844421663374706180761625202679671422226529540035888214845445549170832198898627531321912091543016656947452850007593699941871430140074790473196200356462401753716336481767955550687101556421349240689903969001279799189187898082236753525642582759336978784452401538736794968571369512208114159855703615486912112285697892160153748329921018692049905768228897064857592770196940819423870096617538902788943385871804878561444844243586437423916235204061075220724375955114063104942737489298868144346285208774666103100817978553589911478035711756543461278529319344090454967532702154175550867895259975167939580047523688761049496126645860560379172918551901942140254845990587833109288631533093244118516904897498257109276505403552236014102956395236646755007678592228574603410236454004466883077669041179954072244918671203770746910254276065768564905588044994689783410848027374744791898917371477387718086687614591455724388357343193569033528394296789775627510039962310175232366513664645669585970429209696977824264004429617812348227557492663062111358420518372753850905956427093963346070143148633337661552830600268538218097842953286619065905114131541333866809180022669111404850957327232968137042730220028230086655762054615162703450986921190075307406907323707091949650644061501687803973761262480889765742212288523421360007962965564761547624689101792898138904385907609425514833859155277032620515890586118994674845055447689433199861163856775035997619959179086783962509837993518662679760901694924602211633605512715448133832381390192997918501346121559743789077629350213528210749688506757510869509386695514881193253520608521621681553107512006887798956309867394835333855908421617061060486224873707171800772247360887805772713352929756065445176260589754852215319424924555627901612676394244598466055028870089060403896070500116496192760615306943976314872555901503185762349589614593168927721700234979870738643786131021728392463797073427727841287619646713163980694332044077826236543842299793715382161490874239434411040864214739484085872793487045506683164544480382424095477018989336112959439345266979952166594427465242249764789683142692972737596368984846436052756917345599223024872076103743296515371443021250584817884827102553976749018083432389208893863054241305047935422528250917083260477063261674501614183699059966309406086587537575497699230319992403078118990011026138815724908459061791852875327395433093363007835743777237553550238327876141030753867415418591836048348941170463251368374869492379165142802161279917691954694887027245711569552870545208078767878662165734247582565623746564781813308389330019769087403940949018499307551630834810533765949391412180077624354592167461353209748659452795082408690499647022750929633000180996090136923684990380212641378071908168214949528759180784914622461133292133559123818529680806636556017956710966479110157363004794101948859325799606936015121940478736143957670034434839447474491651652857848407661274929392090362072654254386148342114907870411214123855327078442764137333646979282133997878658931079140550931753267648310441307361861005794847685447586536711208655540901063455748587885037909875486602823776194632785457131402735673296989830012423068500585523941184955957650011519699883923361195357556358574680858946804632572916877850397820701572416657570263076901274658447820901802610697616134197039075800700864147307947509086388810192580453840867349898835346090754086750595837437107797978288410859382069133924600410171087515481346254971116895638773208995633514856128863340295381325553601941229228003455956388903891095903135558405548144749424048223680935290195754984072707826768464381363837468708101632194934008123755894043923992962082143885718774551088141925202732336079099272801828586500707937360130855372369532019896342848610276554074783769473940235998502548129979659115428549949616343570963781844759394755046992956973232416666196490603247973307297213637552501606666719841839436198202730369347403816286232622926832326369966590402932894047029429633131329441969739518608924252264424298457850162166671602003478089565230790345931141534593987845496742952550373697243614348341589513535793280162416179775758507001410570720557848559420452184263421491409887611899732444492019723999555491775986354833698243979211951150864913024671899034044770274449630699241404750230225634100451161439255203607214701854762513534896148939754658104882305562605282935671597114056599381099928882866627734263000595342910448203537625298102952073782990230791964413189797362669472186591213226374601808990031299139231869990059938279246983276889020476470319593040085961063032393620966523767520544981942578430901530258710750121270340086287993274783504027307547954962622361278576022574242729570921498199616006557015939010286099845462040502940115882744915334219411395381403881721473738489721438703761414333824352313634732493068799272485381837534991702344139154107771235557705400507572959704653082326646229416958872962837274693131271887582450831603750139400135229902386146933950519800891180491857678443630398141309964693814509829716848176739149910069989693865000484833605404068198541669623103157674126111645466993260255469435964362934752009711146657186227005405414017876965029430517832300944827386153885338507816411368759882089807161151150646922222504589508827015606257976257506376135140432883474947769464735797288392275303996186596319456741649461839466948316978542775281759464429239649515700857306399505290251852572503494785602444978895129305802170509003832637393958849550404820016182608952690146391728176471114616333683588447449935253935007608776281830177955868356932236613155431296258056361239022112907960223090728913282379338291547023133043633811182951304609171190049530400965048993423296370663815823556402164649440809578808722565705972265778260130510102012503927752824149893352587094461145850153373688126726788992293584880352680776284562377165810443507949019692971852511398423547205977487902497281116847302970448783559497703317440835784551195914323627466540449676818901923706887506774315881455151971146854177402435645179344576096696038318229250019326608278308011086570832509652597749330758191389029113458165709753354352566575397962876218753656241612559261201662337826732042298923513185968921032944800999429241666241318019896706015192721520287247034136360753113625855240548577685300106379882546757075807537488653360833658935411062137004949781738930219593926308205585825557255217804947647355679226714511088649599025578171077728363485771428031521911491959015931396431171702665533229357238523754352454185309596156111973463640123860141344943755656589031494587189811910322811770807924809047294447812920541720045543906948054885036942899771870303963072693517959180057942844844180984635116645475276983990383144415197578443054829338977671696086191200368126747575136547009640879012176611319090095060081199785867114360250696356483430313904721860692482900389832136900784924075006180075376446292925580986829345232215206555209656160799935156342026999353555388337947200110743454817860309788909632062708447330088466945504721742156163816511442478303888654847328268423865477215446925306225633700756169690906571237329260142191111232061927226526790329352542249467520027338896857228012961977186811414389874323682221603420879985064958274064707410488500925444886011751681403616536468959977595129207370899687097788686436928842800590738683874304092936931098021401293185198588019197825474008215268530004513998742478910240378522716658235315432806133971952128080631741425672654051071248137017475102619602834441540212973998963199445735688772401379278888242747262363261709152979637275502486579135885718199292545697110527296227775060825329767266780439686087103102682344435586331364906711872319406095147219537286315258670964374810790270376973828776540373878892950157559304059841858856781400771129339407534925519819604589833844428424934782141353543969013621418649486542038098094398872287111752361300997792459527180382141034072759482414889776119946197896504603211231937859181729514728508053000374314179543273650837770917290027171931253505245575899091474097701498180334796237726833936243857350134493036037044908769429588977716818523241878729304292678187833404968227921488284587878015668348247119858827124531261858053534747017748187103068639631113736943432439382873323478239540331586840759082311164108911859165280625527842272997120287399499680990155690707619608439771573409029584574010556838165099364332548029325388889979410055402090739605533060847500081276996310009933757603870760405631365096979452337050790239597968849992641277900842635744455922534264066029984335168067668153990066693391279898951863303490903938609209536733129774934477451992424821724182271246757147072639117546619953660341536031180872276199807759623605083649971000025145668065901183652501062424566470642426903296346093750213469167278699409700427114502929347643250385974079728731803434954925490039365887555231533965909659940912261814759047644635528400055178014367778512991079714290511505396027608067908717477893753394778231507805261863903030246510139745193318289379402948205294187070671758424596437030459160647067091111954889582218576069970050492493984152250959492313079448529954466283653324331949545452440897641909518280202088464537258643982483804759456233802779642956207683438911174388622110470840701455313259335264886795373863636793907977579641300150772487031887885946496010860509713366790419670340055300662737367420071408834244310843450257823031029151532545405726540005913239354045917128745926847052128671812818623924356467179709921801035965918254671091119148814628295090403542411926132215555468683205707616703564484143778034781729872059083956210506675696532813131050822884178905996274364466298703626734618253396722171758151915342260053832355472307681208764153086749308635415807259007538269758994848330176515583881759558133450235008670482912724525502092570249210262831904639604832788034973248339079894914874951669479019075420145594567161455285225954120808894683605529272484083048115429176532665634757405121901188822029832390034283909391897858865741048326194938586553432405212833425859089355671185105141019384717430728127126797105053105702015483489500972323392182502361321862380722732842684057282859998325354623313149195464762158177738254239597951458124432326266483631631048815481727398722259910338556259466271949063403205633319708961583658447312887111369666848739006528840281281975790796042565689651427254303412759659426286458800489335661422729967822024863005651575572747964316086085654498281795650387763142449903430404650756155210670561111485348956175469757309659710011394288643974391560895358334012226985936073724350423616369465710440482379580372143400788814354285521259108135986415949621418654935978170328938852315309068563772471020295605732898306226290336020503004181938375260276526708244184437959306305766022303867295453692799207405978572315135516539163164060527606656014909057197533519741212364648851714085071746969345344322865320967947690073248332906390284654610343741603675892034189890836492289493046050449068403140959624223003828281772013501217366490715962544949922108056356405037048305968713125797820546364928259469798283600215005605233584827911152062672364218763984980529182599080984571767881367790173137865346251954656527363840437850641688705425871312702329064799543582395777656046211846783293179379727982285969992280380765909626995477044968254724799712326570011819349711766884135955752145296255467123258623435415995418444581308930218270356084483658611546021044942432904313865312767228367881456896910651223422059576696569984618611142822447468921918964550546210870358337824535577412215334866328545680716760825011135268876698330416147228729127182773626444460848757035011531110246796900429390005448400457885131547134601356289899174642024456557880981723821174251278462700064320628652250187071607164542124607218692133035799721701658389015671470717683546021232050036162700939678981315184431427110946195264475856504172300723218286919074540115775927096800137621221405108127875216847651426450532751355955757420923132251709154821823010150447221418619894235663069578581471379837577525442123383123983950009010633617200993548875844830332313886489891915340045883278124420733447589282072790033550889062717845675612995225207763110326139385621678923473158302958669935677464174080988562438485184417223862966733574840694976844936575231007806271374403862441811574516822396957949203341543823482511397250586268768768894973459733843767207796748803535872706113538076323186457519920079813660809868025092184104517665695456761681057727856693959241645258571009949614167118485466376628950155121604942508216810428989783644357452161577996813564850663747126579073424955239865747467021984709876188443359246575560759548596736293334194255957694658041240265918312079468509149854474735445502909764676774739641478585932711059645317191715371868250004606449061174447399655127405546810129474567572718342008051634392267851669776359054141102641903258785793167957599791848452445241174949781173695472944888905490561866865593085591634347397672685271652915718966896466269537797908206512995919811843707300449447210369341701427927971456091983696391692552275460996336234353257401847493840554563536126684578012950324744513130839475523562705149090602678699245806085384960483820299393040660366896056316950457512708867479423678671283070274429997507839497634088361304167189812930454859221205952402364060855734275235579156351990853181530600498629425505821116270972654376473588443825521532868729743156707025017561040057475530369954378802179271940679879315787772294497163615829105026488387111238386368664609276373016672261718057777646400917121084633461603165987785047014091661161977421051265670460265180449168822352585617947952804284586012894676537256034648222176248524026637152208780544085413034064843962617506035137996595806935562389685970097263004092944614215861827988941734554139620223802350666223442651145705258294628332468591386447216656709542597320697464195975595366165695770015404086890137472620470360994849275901245730080713174768861843464757875630796084975120042898320135937664227311684402823526423863829757466892636621125797913128603591127329361322136330802698822905731366215117562670470751004226507662687921568326022497608512844915683528873284349778450653298484777405041467405246159463693711466342591549317445280178189159824354413519351846638559217726750700523316753091445760376478982563595087741966134070396316152282654003123622061309680464917912449726075564784883702100258271510017538668438166764289154381395079594658745692400280584732200972745549924167433125495964626150322070534059662041876186579531177528601397831565903240328279161885954614640613884474564216497727406875827750876426811975391399406111304401198907964685918736092096599163027745691577405666772890331080153680041676259057392902655647648746012143996897339618729589984767346119885100763535935043784209897649623370599971914456081294050065867889771618555642456311208837858856485275044553296870525950140572977653911973330333459498373738480966788782321749118021037078261742783685814475395568181054287932530124877437532034052673878649543528966890409298264410196146253079512700841800985176409865713047196462162462884563432773506303403524645528324512458624194442824784990145815751219961155069907738111391578090670070348691032247173806939770721354049550052935155147343433377533590689189260484038149071193885583290764676751213497200342406166668662281054366702825383074443459213300705848770034772900519806773331594495354559719966374484063545871668200387143426158473389189372513375350571754158145331460607987462657659008648747232930087248877807029184933480629122026043541415036758251495800968017121028868240368028910852541338272418820167033264192103101654459472608231102668950155590892881515860509105814764640479282893310790266433064651393650828106521300870045426782731815913516763748736397039137217853968467648590070413681224832272806674502593942128622863105060720344432410291689611352119978901339338648837656193915286042169276511811464069905926689871573125214566511435793718763837660463547001387954201146508841943411967059714172409317367601534261517361589804087561067914133374630886356108748381854042649186705114396085542711165223233677545325998183500052757218401749981175734956513988174962042114809156460502088609123188217528790090003688128062633106125217151914659112001565528342975226327698803113627512057783124455828158010861652143432513037630805084182295742925180957173162226956003294520964391618900356821342987870366793983216367295451301135373559708025646602182421647081195313869001542450582446323899902348241319423430750938781979913597059064227220134897247159644612791272760549618608732206352700792114779825519720267568229044381220556832840924561626717365957298852100008426939632668778505101737594955960757487507811004650565979900107501734596950796393598997297282937737377711311711883713180587011050160522068786624892625050154527142533610576525928232703779081068920944820183660518773746588468556078224856596734812811706619485228261625279968690421624395325359977367903662878532211545834669447715911817233010234605613166898934403766626608669595884412425215754933551285777483373170366406188716853409379342278316843421629987501306924386820149788877130952753499380926555011401061167527722322317874361265656774616023138289272928996115706622177771343296149273634999964173658058293208213794481651078743976399040215382435199195771621988370332914248106744563625682682922657642874151949534302602023269243779564857333028816237930324703462723553759638338154005931279512329951788469425980762795231724676486537616464590174041886701899549528936212625806260489563594526747764486461990901173537061410130855507492599000484225384676839575523931039725533398506983217887081003976429922908731820724072041133868350247165387072395132407909021021006263937090796225637503296779596795799662886798846385535098501709980530438815814705243412738324549096277175871913833886995276818560777558978355192590430334460533398149071695128648388098343827419955844598325322417155376268856160272594312844313574474094689106614763642188759361432141363125899914399488995536728137434651034246470437247771298841499651518569589400586304256325267449220992443048857930993100427564079935823568119308196356675120091785358601891147624388282377139784483000097332802500074790557960420104256182854255359463249433080740558268824640493512585906684515462791654549272202146781437214568906749099823215354431605373747313893224943294271347417422130269669197561834368312519863781335061995370829272705812955999836741670063884966840050507308848972969986601866018900790236176686874074979472374305018771227223185057967570135300318781065089749984117677102739347630683410703384431162550417377734660061782603290263036256579574542301588568792998774899896299174201086464604225299960386054314518344996295883166210829395102663889146810744745325756784626402635039428756627725784196224994527566969669255413015424254625477445053861282032315559814116587469272883685856238262120058800047323599548797634390382007255823800207617187404757111179524308408668191166266725432676014683569832263070752878283244632521227352787743911893600181974048348296047417074012246868687117130466610220081138638287195819980440899035883612237457719804037631636009331524669817557055524886021614178899476184285650132900409413817191317849860634351135639712650729867601176221920432007662810155948642854446082042216379056910730542581265727116361120044764330599487419226181924156394655519729961428236347542552365473270039292529158598265857897711043390903091711339341015713447050668652328738357697562545064655855249951369627961288753739695426627785646068929439534439577920195096520180596600281321144621825324793357985379379357454825204766320234248283722357701402072808213746972954188029615173832489047486911814048947802244934757131750188538067683202536315453500620716504296648624857758744208397086333630836005087865308677350893212061563816047276689757541678070451220070150652895646205749524491206785852768017693624035371193238372928471296343373480755175968541138319293814108210180477027722720344491346161465620684010339661993144696588315294868091428332124969018504943115211875236321169596990711049947772802457434877715792417636175482713783653321743814241314013666991857179926641020963902466895184276465060895630612020748403692323484549956266480998192245965382943474936723780098546488812426369336048283366767365181566487637582862791257736989068886910908891575387360376115427216798912982503971156825171896724121750803819206574553798055453710266527256168977400953682750925484505889505918825229545496239824710899437765586850668897473813014034752537588950764047827306157540961335432118081447161204905098044962432703586513377923763668300785357689939475080340992947374930904775179798215992179188867673932368431369725260939970867241139944003851967146655084839246039934086841208200441362235852375718092245106520407198823214678710156541522417545729435408997730920444348387752305978761368516256522616003912500279234624426860350693627012673852931355879331054497547563330299297032403235197104123723725355215828707941377941403331052799988186498812597183227217328125616509352136137468890422868486286630058732364190238539644946907941534716655131903055761184835985687436848479279766359686936605774944728405301554222769632188516775591038694051886043222026409673676198876964663305248787014340705483426446778687271972173774785517803793449126502344563490151014272928178124972392946914064663989805708751683387872379851718315124594170919584088348199031634125119817699919292852690225224328670283976088740241058586507104237768230720009799758268565293350412712851521350505766501195064990871613829195299825477808389050326180101008864918049864379156624533780310120033985450285771500689069881589420707970437167556741064051732992774859133938344075701957587566662145617282421059265373777092470432521550859235430018727839494436028116539878610154939119803325905528066679899813168062493987782119942703146394580947508098733391644061619724245950646140487764871858724760187593777007242523645155844808096384485830369274682039616409231607448320035679741409912110300334147498411558917448911935890274012602652125728691395838412219813346094948570641069519838538170182065388494519166889749532370730934864167772245987592047918566971819133585405504642418667728157625893019026626837364145991841647737053156631816294669220754136480193020958142629432353376153238695717361100700393265917292657282406537047856912617966910360872608560620847208088330060932788045390455640823066246598188940864422069069440660150530947656488960660178829557776652636388728675722558033253619472504942961517718550089741027203169520583405359778360352394582340418327166653162136464945044853994950634018179172415225008774188975844422677163932998543660935213642632995573375723654971876283380444513804008605558335449727224631821528444493988783406646315566925956648800113356814729258192102271614592635159072318880009899323194960718525741613913258320075739846830247037776931966487589027365832048561387776587890384317640709209496026065360363278764700942519825407867324030128406343390662606781810257656470782449363358502205034721663403763204781055759715286550177856882398428706787797238143342792799475626616169667601191288635706043123447258947049057626090837689116584473721977176273980649353313543371530386011097262032647869169732359774284718757342270641976228155969558990481296032441085625785282505410391716736393625232432219604480582406974149665387835110528416924770326578973916293482163990149770123162921172669650558331547775553231287991725792982892687758030277150978195699136354430423421450663447368688700709940879230592006613518401524669342209257910730170001806780921765283372270486140483642656062489749761653801979998906895163080473900066144326757100566397595951591460421167491991137733568285797168164331416423253720324509897271741214828561813029563723185752125828719892867352869776335611961105688484908502589930133182040134420805373679011892114794048630573660363926693367049945371181522007955376231805938575117942991715333933255998240732754339707960646624692737722197670784904099076308224683820007801108237459072020425519817945757551376170155512679084393493455237252261163850004501736324426966677768963774946269692003410104416068363649636787748547949455878412930636080417052070762674286675298270294867730474472628406768359777327602935498218117313470287946989239115061302106333430058434060688340054394181698350891412521197787670978218510615206053541460223630252670802620375471701418441010022233323263647807668344300939198624171918814946685213389668183488304250639491648206886096260540606103824535980797706217765753395905638581914425176637650535265489401980569591657281823954505667296881970151066904651425129068559149399910039410964643131129606423081450867416943471608170661122353717347489992517558256056125043941680053174862568851635585328261500564767554665362198144494430696105687919960800548929017157708390237393657142558912172151289415605564716242789079943375526415207745194361159569357398653683888721879491563299450657490040200123986121420877801961410809128080929709536213212686858545400807229205699711492343114118028410859401144559445616635050880883767103872691989978415089534759732295257474415315913755073569803832269182345468080980763229802192732240478062561027137822757357355228300334441214496115134349346891996928282419749515880598576734867944224672425812446660597278829318097479592769240472973291292034563320153833395650069904620986565761915577922521097462925477804850939527603725676798555371065243800878368732928219794286514135507920877777622964221285768485178887575195087704352224850399356947310229336103184107450220940090396571626911409356631427912654660496326839717791075803600012525370972168503295499930128409476616710824354267351002384659396317450136262434832675583535565644880332402237609577028765636204337430017563090051599907467358565362829249419223939804943900537405676101520282198598557568752790962396257975344163118648412866832490511450147593114210085624489243943942815652148707111493055775084987773166054582833064741773281216988391382473953120325083324800993034693021585910465526996833128642683472416619235400131321301771150542393846717150107288442883942159618944997404593292497997455184415277387412034616814724827048378718655393075515966725158128773805944603396461847499992801098571796995962621959536775242010250126449829960870990206056144775581319998845350213012912104795599850805464778180593331918134859947367103015129706626160428960974734162485793342858882945583601512293200416846942065708018341008702918545964531270451517204339390405928973690846298336654591510554920779172879159775418657116355788842249653900153655728873146830495759348729599999157487805032462730507412690988465429534453426402886158910230298217934409493422254195894657085037717133996417358263807852185854466500889135395932518965056061899319083535392345857469315636395989488712525283944060587645679573891308456725718166571038367189078025237347300177495559223734866933099376338348507359019772449305043167965176510278631075259324039587827282612222314172187609849796586420367562492891453297722299191158653162609028740069589039623191291381848435792608818913140909873528407358850129224018674183421888574304045545285996001520949073542829582666948900219930185786489565642686421340705072121780478124218994045749240640717817549121144434188784804495890465608486839706018158000828692080776500152986126130627283812806008191069425577173607895233199062850422477017057163116979701160228095758542445797595575839533399726020034402920440252739633575417003519293441861140806451582613311295778226292713073128660134163843480636748742967982964458776125987412366608522927662308351903873725765796317986604463830584290110076694111304569181109413983889790039047378842115718315543982569687195972609975175142259403299811455079409451646804734039262924573373484385022920168747318427838481353764891071013346840686779203594417042568700325898349039013658978892119588666284207296157236128376235615157394472164741994162160779466660825802162253060104860834922963588185796568465632607787442979748175361122284288015172742233552332811571096778837380680954424920662411772191213655679934742957742359307750243700229159218689737217708450421952193239068222070987105463663768655245285867965774773287885557063400975085245762241744884501627917892522536504106923978903308564734709263950136243042568679317159849195282400292534488293388277262705342696045659541691808231961866178782336765133509459482071378766437120137139720909735366376288781428960907737319888108965125606102947103886052800827837913314680622439297456455250250618896641797693963979501065421443505580555687657753059536275715691096424512224241331270094003439639112786872895577911688055275574188594217698733711937373131109950771564888079485316348564253706511046745315880222301697551906493807644336138413796837939137531835171622664440651784912812355001616195719737996528612059360659692507558527245061824766679379287168311995014217781482065015937285313319161219814881667141810613369248240141253439986258341388507532311931672391844096392772398005520044789645964740012016376780342726051660843756607945372955621665859593807892212563448981780189054557399922705018954567189538301101870291899641985024048156080864238418466386383665385225086956393844949054672012571332246446918964376831324277349851986743145128930624643531980807904530088237009253525399065538577191556872383413066695095847842141827223749885686119385970990298891881724115817484702234122051288155266040552945301660693424053610641625944355612543483812665814212308406941202164383393803799550441921232176554181043778292739751434677864353553896620603831518708693469341381698989363431342317890147988132151225987577490449622592084832585512789339659817960917439622582579879186610504443198719301888363832872875463306777730107455337450438782776993773947472103026651983847998770460362001193021546945054574015608672501952161400700559828570487191397225121152344571151326533930917786601829546092835274577536428739853350250893992754919017540317297157926928413669880803764463757874501100776175750374278772332562798612283148989804140600767579057760374050525022687680000633964772699009640876376207441257603374622940719716505493973437469009506502742255419898568504107327932390076732214429518765787114010876163998753463211851816745793512102199715870333519021509119314049391413123029705100567764651671388363812567929377093756100771545553668045748809802165216402358512434921873383905171879324006366497569622161130164738279380279720373039489131455254365817929588608711287373304238611269515759890467017225971673932487082666479555022067823959677521736676525341128727856348226767599257112932352169826905403679453335344034378736893139160799198354838874319385564474740422183408630715552983404070362117397962933169080869499573090100395314580448253171475716907976152769146459635938081253805980208798997743321553040958579555426084265001605533540303433961762920567696549493623966341692504500643923205988577869470264673406119084689889282215265451450363893978918503727648228429760476491775276946583610474925214659549168791128449023914731254155286363195378550372018713836847334085822304629195177133831473355050806581337333410989589053007680341583373877260756945678311008296081595824956868719440232068053455977057391973661581554142952986086564931905485198440463611011429487102809790436184707903409692481367312738529882642003439241424719246702233116755786119780669089515870019852452120572268154654901370850202625663890447723322781684619094262885550580813547980401295638539098924015111129879754670130168362453383570735128899577853122516781037517439504288075567214547206784440883714715685084790666205296715887446169308252855501306941891960684896680023496797604990527048067231080038757983144537855633878920114685116614487162391942012917371893773678807609388010100920766524644971628754608719823169436751954501053360532395256832670363269179816841533299267522848337178550831314209257217036221391359962972121315645350094053328216247137198327456551502707182436401225524020261446607567863339854768130355991965360307970246787697713879690898504491354639364760381183256277084841301217212432436509543827177499866597884322864563132903771555613924027212390075815597898384201147625862825402501624633523495613550068077384895730973318095069524968481776694913808510579172669198939298289932826616119015409807559000614281709300629877053232171752525958428479269452384974153918884948311456300422139143519879216150633093892685496765728295915525388732725727743442320939140062692828942236888212748648874022425989099523370219127034760760641288083805723726680333645032128542577301774446165843449326339204404849996815285426603799270333913636750200486579827885848705742394383086016915643878976930811540075834727208364309601254399104591051457054703662203234935583090449367337553752403679308207642105441284296525145891449397081612089767808988701704171080229352010533629969594980340281821305733205006856186089053731787160443946301873486764998047588007254734594742781160276462875256619190048695660718296602448213778511635391110204392675073007233696337912520699170043342768345470143131166510870596630909316365013818914459290629137699417853978169937628433147548853709616309651164104550531741724038033875419124744922410886896110900196717577095421061690707771278213100546754485387669022383209579474313132372695026669688633192318852947474479769660508415967245906082937729818026598551094440974864546600596551707552892464083634899793525351204217304739553443505192126158357353880118959735842483116885931125178353073571282766912890823262426759396097454273939026429592502658117855002619422428174436167444899867751200971502955821120019427713075412718414159714339103992531423148530540530367541188218905949372073645206168301138253319994316590637511947340869841419137132249627027288993936903754190667699139605428966158638505759437110586333589430231763355519191137783453865931007397738242081332179353140959079274516998512507976929013639754992661912901474548445104084830944373588977923276083819652038658370755486191239310890638616799255906945335880329594911579849440055213946248604345129797298880404204763103440880228955125151811630320466231638660399353088607187751797453164946756497594458182272401785166679823046432565593254476951119493157977529348534551834374809594924057051444500949399911555744718376820478964650806232991203588464637677941891292769934147893413602476341942052335540706335298949183932201031649880935337166418300323869627304862531085160312224450242264978379510495648127907743193142889993980713029200717757357282284581019050957181046312144140646668121974552508168287648057995017449473061347411906034660055956611607934348252801502457262813480672230999200356430163329531716341558161732136750481605471897485282450889232662209767987328450471865170177936033108937179510188173633549546242936429079604905430561230935638752544433780892225641475924728449396378584577100333287692561818465026474961495994812470207837814736118300274991695830078864912095628442281372633941202102549542652918780420991710007391210044236719185173131073291238277665950353824982261108368273361113081085951647133923849939331731519322668777606780321337451773546003769753736755052645724429972487484716442813312112762453708326594325881606958282000588645640365660448952961876491479943223054330132730743328262555252604187391005722227415115775204352232568638815397764727783808139162312511600769012398482273833201638372166939798384974897257044100574612609943944478103774566754178475180982454886435120011660976850579988472645406202234851799386472624945666133245377898868009706329663983355789541994892260151167414242695170280734484072847463051160689970159563367352957864188894453989525529831532982047279608192832250498613388888897338466297479373006045241228313532050253673210503353175158890309114056362571579825898812181019291308875035942208081276468364295892444961111997793057478939143077040756454014045140952925810016732022918704611811493540708908322771957789064209008671898644740950700162426393954877945161928025739178641242698178610022778650023661561805619385226462070902814933988712114859722137209393623839309811671701168630514843176746539099240059047211291323138725265051862664623731304856764689692735390232599795473821011035553753327340792937586152177079891881549134187094419210551277938050486017867753999847957893598283464115600654159487854915731951385035715333614899541745159187470233143876098974956061286402226645315089512888384985381085304802273508654426906273096014384168996852889625098642015682522842659712019052757103481496257890594051643287630094114506550855482106526959738080470477364989177092094842491044743351079857980186934649185614510653262466007397548977028976991355867897198713811039778675471521805010755868621511251681767949924488956396869965603428939918809909984723331326965338866426051158677475896991131620623640071017574869907441652008049500471885700133961763296523855547608409781972312521494929179912484372710991180440644821756316557662373102787652615199992769873329455184759813060395991941430360355508826976440801697828321897287909993683710081468628323415703581212305200053530210808188717848129665587857062413269269201744734385874707527539893735232656564022746000745656376654590988914156200677361578728361335674768870021834202395661208918750133914146307156312646770907970865279660032311892216248753222698282033243923228907290632677777949120844305158392303875385989547735069715261458574859976993457848478528995316297983924728732777933522714104928928639838336006708161314016968361383016538762931248473599527456684369595051342344549182828819435927986128312652114664239154828837920388146284452715762741432081345050851961393343841856208749510370417944168322110751786832137932842236133799813393736060275666859358614412175814556150833198402942575030035508199600236856289040096616204026078711855732223306934084300556461609888713179066136924415289122362426813972428470676940080646099531013880111245575306740935277769457419954358850400439883787553951437214946900624632861178250415022113052299619788519150304251420892992600384403441973068179637088397579510475749188465331238755673477328668004593124180886946565490560087074616965064123541360023400450362829016930090923904740869054755169736292231222285948351667606622625624865472207879158331937714226554596946409937937296398143426449061836140321507136618102898181302268485941133278535483555861724227302453150704893261411283012632052298698694549696180565977756164733455580260906579911031259040102155353163964149347825010372132748438196143377625991698511158019963731829849251009789571101518245060562175095194437471114604281404048062423450750613796579059317743928662340083937200057912482767445333421563059253228851054253767928959825961238871809192081169854522478655525077466893372945753888086540182570822252227022235412113034913241761113975425476263779177518183399179663853710344524622289051297768791327290008553271569747370015688558282090341713460780582458437588164708958224599382722696230246802703385697301959772489147160323599074639347362524974946338692833628240485695035447316768350144694535457402259380769182656613211693104183737878256344341964558295994498367801255363193595610321540971531963175285229873778684872162145875388600641348754866153321343685358758225591432830427653812759468681037281732851875011026090407852835567581888195789983896808337309535732551341385096957818664867833048916228069806523552770059916181470524037947325061810348789669088315842508334502912267592359544535873572384659501910908550430907169479120148646894676792167118589281602537375327466496949764421493025000038728533254682507010839434946395642331417669246465178348967970964936820792463420308373718885470800158207860381415971270618640962225244946699057639150857831093014516870215406508040909909059786445372912370512302619858001337978321867127517387726727124958183193158365207170936108595627415457551701505647214660115406331683865581147017135096014844591377849464974742397350763432495081419678242922304144829597171726534952458554315185504985526945882501560680924200039931778919322114061260101929458236647213627946665052132710106997707673650044121738859055171004725712149391779174829282069123367958705578235458699806170564433602251457616761600669213591927971170511875014693449463246588581248605328670294552203877732811212358710249229880433407117100272847573240924640565311898713492867469598932955473535488650674586699622497685643681897289679069704757413664012734485653397320829968363265639146866758087742368942027902660904982103149016264618172312021089912822874999382878093644484088709459309658359782438711904313959073934558820211144614262209971165393755793613139423056218137848156985110346707153400796147844218916620353432024752060255358824582035783800374506925055530090222230267737205896985628945926187239945175063265918501918686220295780961190209639069436412860659852733360908273324889069821204193285218035633009188335570465769982566683082692375452381664314548029208487383108927243686109544922253820520036776371419405458226277374139392401435310025577761183428184170084815828530330275273110892080324129225717774380257536202170772447555600904876050490823026760478459808611099062981118187172838994440027076559529521477397936734810898064501851245549597301496142611632887162923547253773696812182009987367509283723543765255125519387404790877022789881485365039595298402158427657621226844430391659877258625440750629192062937927294557743082872499350496772469336587009909571501276001845834190377980687380860165112232197833438381830896646909467258286841196199672386606620216008677652395729814704648288157558030557682872077699000201468386859822610622173288826601074581157649398840727187000844128617882909058347131832579590510461223774394326802336419738534653477465714121862161586588516188054242652693236309057874693822149903346044875174831394641799408280119477790694777174799448588543986406743081728636610604423955052379959373402739968365782672643316795622968413061329809195959611566318215264845219418348701815454742332848148436685755454676403552023516297449219577489537798217565332627775601573658158792336696971003056500038238338839089587502403635963171080616518428424873162462639598080903977815742146417277899945938164842485632085733092637149495965229987987582649032831178464858875910384661342385019144965246449586274152578308609733165631674006280838824561444980695466885188051904533411596716360532251719437592397015172961469812327908086874706007057992573271462268649716870069135624495045095951563625343073934785807288148177605296084822872273077429639612545514769989304579110813727098123980781142408301433835174025578376681061793230444541735318611169423090075411659104630352436491587288890098136177983339007995086988011786600826360040786025876557702470990467654349805291241557322924050373366089009007476699245273098220161004585308225433869057534800831244583040434953683724435144166294413251448696179271291006389947020566240171181015441089084494105186463900844355811506041131935554177573364183578748420724986613767687922642702493711049827847711475677424012835267634651514337859769161960035907107710219995807294275298352645749001222070838000697072677105686570329928147109623337687804209816908179344301918503712181117505629877587809607941978872008297376485036209460441983802202976539824302241989321923876443883676926232563554081125892468344960853310537024795228173414252727965622093536657811089809379372004374332788472640122675822550620100738946385149262173046451087649555305422041240388080844250772879067695806939943034888750095640649298725550183803828494699844216650858229664744371859145153493717311903306329255702278077433126922741401032806449441448425818479987795882008572258795375130422383857499745000079967243438545769868392463024138814293258241477729831342861796114596002322581988990157293156876869511625301107842153214655264508746598879536682785564074269277871173684856024623396345392267944119096250821088226451330025750092505175534048070188852762773199237329346789833229056394975199494794233668235176139921507174392143814293109100400826557329302816367473663250534290064849807058551546748554153765649778403709712861339215952724170057262463831533493317020987711009389456062414259263639532591351184104972398390826311436966389568280548606680342513369177990002887718730979052423110577766218635613884326292087140214439766564177208513727010974507727704269846080683981858241716924319532056857143944723725032383020068275756609529669059778619679988125876294829960686784670726445091315093587578210705433483562898448843568687956771426612263805365964725901601616911175367134016152826262273975181803272640855546718751804546167501800904588965681918162667184660768670092603731089347501288435015833347419992749391329987282896613812511734156786292905329996141295732340692751851207473412814286345051075070508618774102516741999185025387166826152654394477360224282448024529774279774325792478975593702502502520338449820764996837648387729904357007692874285859426601214838396814724289761761850098278257881200522903146841277877186952440831980354553284951873310719910595861710574570243018269897884363442628069117648590289869223861571962420521597515453883175172975123095721275737251142722076600658702388892984244156785543756695436715666020366590422927555090606146780760340734470906304824799461964623030538845230640732294794763454097310459815656692937012710061517315113443647714886508345598277941301190546900979677668680540525069139650092488248963482249998720608133162837126237307061195767524367956562867754100318989154569487314990942154270865240070815664593839028142455247206935013979197298978912413019317927430352477640457716427984848678182932874949532625477124802348772947098596675946889371779938610567013004621894098968836043577923150260705074206219662827616597790265010123626087009474526425401024022778940333863799339633871710795975695764402860038339074669780751916016792302070701402374586480709809582887744568311036539295141111740366126656170850681756675113905609390871359129573790379239960529828134468276645467099944599445588036343881745889782523289858334539933166177750042946569783481086022774768990828656810671135434293467510845367120646711977146179324197882946049556196640362666773286147226640300714841631594459375480268551167999487870420132239068863571460197713844524071340219877166158545313201332393857723738731082797619938897496835313334984704220165115091205419316468655049311838516137439892148607286669807045548401795812948084251722728773790410027432686780546986182071601941218345974533925570646616449003021828872096413285798117071846559888800188081082403047486506486231663464944457119083123879056207661467237634933166292824400585516468174599764270594408577792046594150541493147156654412796046214095994970210849730051732317511129942112809862967130956014870991026657497788940304857887222746461712999517177753272170073120343116628383783962081362224875064186450002590165981195992595852684746250036255552653173130240258460976936939261784393705565615734772156194094639382612674152949817348399251727921390809930081374403739877550382523506371094392745879638581614423011512011754439706409642516921635671511496873406304417717685233634442577588938725070054864563801702248861646841096422015449436132050654564311975789907354587478685798530154221431299716812564156874275968480350097914468752340316209026549807804468391949292022289620696790049259588442624611483200297820112488288906934262567105794665235752383738847082374459106591729373138171218701142608658637425079160554292620057558233683971859367167056603369048785123330620897073727442192455132659777267702277819966590213397089456678723355479908596600671382489642723730920824594927300049857964020191241509715374398993677226980084923718285969995180860588497542959134745058909046943870938700896314667884205644108106513949142538374878470970238385414200616373507941137598691474315889938664147139772321516645631882435213374824575515696779918767346316474514437689917413917231609310089552290138898049858864256368876140278372167332674773857644581397755281780970908377860454029780474747777379947431644526441835170656980710693087011756919733397909074616322638744646730302323278800022364326877394931983878090489731330415165920288702346746814866983202567140656499244149976718825234806924211258314807395890795772526341916293744152594579661886903821513119150492806613007719423896718554392537665087515161083858525672481586403591433705675613354541727710125632892641930906154277708777595289095951453751525816912292185239143900455103153965518284478712997483164547674488362919367046926299747547431252837945711152030391014740542378991222535124898587204818746920229427767721113895014244502473953666066269183524029385629943218169181516314171259967026960312461848665524049179864471876736837332764568063133125717659702074565553016787285247204025730619409404600756806744337285188167484878962678440315938032284180548202999096087394915476969633408066348849798357887687188120319673235807852988260813912373015909153830172753793561682687087954825030727601727439374518050293832897696815933035301199895648404622687380883416593665644229810253540278380792268641363827546206590933372787265704552907643980771119846094228124193190645939867795745416295645358749265926723814727784650802544507472107535064608021224328246103175049889644347570948080645824923124414423613691757966070153651281241322980332298188875823422616209799331017638792080168752326471386755307662759368985591104721379325457372776932903577733088161666957507431078048784463067432240129960140975431370778610554193218074250283156365129395201519500618014162346037293642337285008567829331493594418475740658175278267250293043928440402595322628512506022228479533565340868566388608550922392565495467955818440977653069933748899069553823656575233133971272726970377128568487035720663368851898019776522518925131200517914430705403407976955644339787470075993488553416143534147549656750648292065172162102068021382338108534955664254694019752485098739129470446348974492407106342357503120592846743734640917574741857555436716756197713417995059865775890877545862912792386739019348644726228009272955383141764545109253166391859663028249505860772093306522885598053829293566930990094184987925324001792306940864187945409665660895933442551001920130084522958403098136137570710733300876009547222797801804689238070946837994241117646933109974811549848489913874268517920363177992886332334018070522184523017228961819086172149733105182840268717050803160710848360088597857038668138135389619863197170309019199113734817025934394009058806271007938214068873576740368953463885068955368809568512963332949276626852929361356890819530829656072023132669216998957883903357941181208253835286106665262629485578520943624049716890804188494978665998451423419719959025822579323683029236656973794218318993847531088578524264983854451947997252346617255872732301823671873939160690990869618176860316696899300955135566402673451192522791365462229744344847384552811091154621499310883209467830358030452057369995729719696413379718473272024441502839167053683178210284136178776242511203122773545904014063684241867397994592340544924844344979778204060276668545130196396641214932790461270305373346914304980069542855095046047494227062753188619852001348623012317444148194319682527812283015968571525489342701866108332015084660629344210569329972434733607414364846151407071789469891148067682527106321574759776174880080953975359524850929389696202807009783780637394557533194889580874388020565003079048957229660565264161271773731715511177350447481192940860814179490030276774221596616416459557946699125104433421803172604072839129305572511275233958728422510589015560127184423035156271949862057333040279865497496574571180477169441754888119433325090118022167382999485827631622667820668582244454010685053131187664587689231737836303348476197422775473541814629178581042762159628926602175447935168056188312719519528816449427720881490490088990469563826635622294494550004276860595865292000317654588314822616695753181757628947043720045858423443397245250812104202316917724580476626585005987909282143817766479369600239921801463319673499575283867407990005352788464545010320124863800784350543283929056877696045705783746497398729669430124065977190065516204331242095016367125665057225157783197534889600810623820267277678652522479184774829332705156973461246406550541323796974751714378122279991987802861556123210198270854816222460433473495287402733575830130207862529427322418440451373783749326536053508290280050529372465190601854485261365145977653919630684609142075712969426912290413612709063038949299538683142504792654635196931233283312572552027390003512047514814397314415878731007417656594926427332338682872659980289125312638092697151472601444943881022314021025524737744058793970850666201102355674801450646726726061027927617338586205528540098301513211043396366336532304856455308497928521489975975263068567595193764936763941852548824149744475395232637369700756880111630864144552928295221406668960723037453527514019883332066133513725308375248431407915569006864332930397207002520507448659116950851173837915636881498530538328501703994170116440021792119486582626759158524430913640750842412815755257382902006519000430545910121356195620705518870722956821841978712173993360675033277029680975794585989367972262767624284072457890451391343523220859933818627138468364555049268099565605230877928662144339444335629056296435156579528345424286533248899237747639639445325162600259051263112703956071607195698602433534285267299660748459526229836956795609683013921158933851947795789823720537980448757041804863111015050727597411286507546010466650717354054038984342512494357630469452493222721380916145385992816444769386680320862099124739341572604068065566311092817946795455588055954778985881422911498997242446766096031694125220299745926942531338080587358381145508083483093269490668897204869587099272077040596350526617340194249909176656791379233328423772456488980495632387782334533775253215766788599406499275366139965481829466326880343463617900278980863613973553808657161074023987880812187065724913356664288164301619786473766055053412929086748744963877093468017597226050106296319435931789767610681956258442042462137608653802793719713289949132340327169396288346147567527916517913616144623562871654345481920005253421838925924129991111099978005238095532400368364639106953567857143136944612104473604090047787231475988023034445114448554911073940926624865952291638627539572844240237776167981246456512214743849127380166394366186223568302259470948442856449779342210793129967966095990582131090475224415284623040348485142019605389372247463354863220999086413420863022070994914271590552966595385751831526749956476824110577852221033753674127085888966796359398706127303175100962699536305899461836685633340777984702662165269373639454431708635519916457851521571653395885720997580589902857610451690395772680320219894617053029717875581007481464102765557527271317205156652594543967947134930963878811810465312330329684509873336247780388997967390029932741094819848923023717413636202492659552814947614228681720976553177493786767979606103113779370103469485741031808411979872116135669732916194088889925189033573387253710715699618803688456483791944838422358445435469839690495848542125659192205881624215760525878251844427799675503127645051106377655297312341081105833149949701155545550715680961444204949282878377558340929379728799488066721167932283809115999211504206958345168064792160713858025004222915729655817673180978008167122887001645982034915012033310955979810066016067325476589735980717447398906580259484939199471969197731694290911939957819975644181090926305472752294061545257880750952282455155330641201566190140316026902084642495187181774487683501775703108519723977575074519605226058456668685237659412219585664607250730208928208661629177025260912167284128001002990881289489350212040129211343524904140338545973207985119182110190553503767201104083799934896597203684635648536211069860333178033530428181394035758615946761698420952719707796925992210580115183637616013635269014783067135054749373644496076251292589079162905315420429693839562670944097826160098927423832214046003441565977625557885159717034726635958828604238644982461602938902162100940847966999723310990111616037307574488236818216401665811340558933251563276692626884448461553136945191557507327626496506578880387496454264132024591161733325789182641726796192835133995783360262081375716654025554339999862019204821544406498135438062995831976049038748544478722246846574066612050574732160227475392233232503686164310171992084689517561642957456890902179491012124115031865587512315152585427858097680156553745077937526737670162542019375740502780090759224993170938548472513718380757950150181449602304485262483428015009696913968418244912168914742413133776480152391252672236885404859052988431998344496940385453426241795816701793961337701612170621465286757526278113891267365716824201761325824488734122054774038471296707606535138564536017366891749403120802220544194359130578489014655781266079655480991917263928255883563873370176244006288868175295297986786051449112154617729064724604480194941568997117398092399384501280912885357950035972971154421290094558878246901847361778765320888764056769660991676669897023225433705789795657949410180256075044130513290832966233489909957020762873434064996933672251368505555473579182301036378737427018219761605189758066515573927319370515189442787032621395679762231471963124890500695874189789538720543702553011367374040642777042268227407918551281381877630020184053549581886251773118632834389757762463568931733927150290846109865350587588597843553766307296787489725505146343575594636297185129681379944487975626115702369321557201681239562360830946629806962433077044048157084696157484717021765777836763896238873505340984362384532983774223871462769766289298258194032767842843949604919262063844844749258837137543245614979280504851792266869447092001271456977541875347536522229439095317124489980112923955443462744426153777917062904124847139063750032042639926308470538415730061468836352967021080034777167320809081031158942242153636578677986259567997747147512875328441934021861384579092152802171756757806909179295570661656407324481417129145714575400231242802737028494106131967042223078100285926804395406703427737217978284107494926937667894263880681608537186606093177682769960667796592128511831545047576624568691309149802209539187143040360749803117295776491653070422800730549471400482002285799228410932844872438625588207403430122193088704371209405177523460061881386003979033119600026310457455226895939328738384682002258842977153230139942470947442773220731662850704148472216266968604391046090668359831403907991426638925810650495249641478708189691228059872686489548176436536434960920169019708656577288275520446720012393841893404916412307918847451854047228063206035631212929701041698130769509480665524419106847369146338088571160254865774504275501219362494351508653622255728680875540042254067392506862308334408798867536137636414829554323016342814543826997145353669254351818294669559022772324764151144628400246170633837842728645176377111999040188664641893860665294766303434542319832621865097093541610525006762624519009076512826161431068925947716039411704901548173737130776932775813821292867956812170460863824349124299591778751572197980292342845718694211545210318156924648371901757949886122887791312773643894197151800416984637069772004117374591117052737465240419931553566965945014199182209228904445146875839416464711517386304736773242196193160775710247117425595700175860740563335876496291128313221087610636265129294787125169870462308565854043316430396566056536904027938531430035893264774233214702727265203476882480099382398086559899645281251505249779766153980431052054529561725006969839933078474905715669300283824828929950840235496474561914361306027743080437156592969905795706193434575417109314067111141360381167916063261999102551346902758758568170428337041569312678464633372370109018809939197864270319771645853772735000047657489956712702058345474483419182495657922184961955173159495278506762051584683191076908376087746514991235148394700897895273275235273648623006969893836408320999554266484122422846135160691566560530047477432764535715237024273477616796854065738750680176615263165348152820642624832746167318418508322562910568134608081812356636092112735019192168142549920355540107985188535376342008046625884505796235109368830809919696320232828599865257549009881348474756882905909030196562069539695948188936386545405190529643257528605769055937372521824484979887790881170788361810429250349579630017117371128287647863081812355159446950158653219814110930795792522102182615061855849663968039924018250122844577405451218645643858374438200562943615169732805178634382092801807386408583977394659126019126589264474373509248205097124574661595118516885593774406091988912660010539815585749138991137131818663385982792654561218960642855948426375749444880240526882814101479399951766631120914067587077019118979279259670673296999619103120307953797532225425747834429842309466194283527927173805540488859011377979721233089305815956760397026455310757565052335848740053310715137448189717560699179662973968502930709860943723231775218311313423136073845764551694226211012357937198199624781269069376126481624085602173885983387256677871409001586589381286758306622155767883743621303918591687871438849856716785247550920870992908736771003411956771622210642397573581402770093015966111566621345878951884715184375740809440869128596154880326455549731078901405451504670469908825293167335779664473032538678746171354634054633087342006148969534503923425792537389803924876305053487799812238149095687878323504029541177431105008259471482297095101256488010384154351302795588433039261207411566554109739150450268828390538413042129904141630707701018672638908909376279001609644933647754937397207755528619909609163496137895423720029659460737112697223505091900369936790469555869967369274989800773958038521384164412914998641627063733072347231818414896550285668419694005631059772163528564561060142474376700288845246090858662778056793980424532170467263510907774034441344696425425038458600123156957446640870276575604411129151782081333616777633621270199756288795491281919196657918689716131188263046543356857369972461072611165541822250119143010125345716983417954169380256315530664839533631606706726316773836228590849664480031167799470894827038819893960494150665158153123889700563033605609005566904124019753742766031294247573177613399701740102309232343766791083411032765555254236971973122710962872439223629254726629654692378342715335640079862176960298920051389770827858250710244378919584921974000875352298407039108046259125611310347254140203934793821410587144708079145436183805969521307274447202983596324396567151604158624531937776076125582318559216061530165458340132438530704878149592016123388270536530128727102024400316822155203951038413604599328977703597375362191463638986239118680073464417617630120211558437738421427141127609641041094689389657356101108710577501518452293945743756028647239775742828629411732539546925993739245941929439440555616460286768820592972445245152861729419309153546732715618399494261743963758868071272051627801268257513241124480817299475284477226830806476824464431952938617034313280854747565796982066286108237912109154952967157843451859729947984193926502026056628858021937610192420137454108330933209370342036172551906495203259385863920587930609037039539604545526529660418229132033241777580062784592336823752729296166759981285070398005586013353940381675360816073277521341765954276426528022453138677391284450979302756498000074127475477560227406742424495494236733305250303292597543078113793709305252177730708034773657902686170673837728249618326733660046824056380803230480087022896628380343793646635620539921823549378748161061750667481766263851992237043868340353161502858835839375941625184446300444184836002248397398032552094862804223527023622724365798414933428599459321658417341611755124846207338686151655764209509798383615715716921582822377457489946508707759977887025354450937636918684651531006055206967543024184044674714745072361020177047204354667638913926875440504098361625592733180200925043507037107642615407928373363790647285635236634675512395825063936391848810927812820830498425865597480339547764890808258290489071461028474965538762506273655506473886870072031789345371978513854127800854904214293174271204191525531109279554940563661904621686813082802284173830776316671019955252176715214182111540526672568246361791676998409233245796194083607626885042335495012175913370795100397557291215786225529504879662230883129208892647205027373310796025908488167476941783887508410979580662524193004237459792414567186704252952051719279398885676000391527649291178756142905126697690632440522041737552184070000366288805759264100901832075867404081853912767109504092307406928051573042948346575752414045854509074577100158989133319877470654931079289403072414959987281539479279003805280508735143966677043973543364563286681074385709649817648823058449717249696089909797709485332576236733138263574686789489534665252349693860527838509179210933854191921401374628926361743272085411671037843695138128000945097051650091698975965177854933145509777142081645400167583762598141068952744418215589948222766152161517245921962655458116301009960933397842885301629584875277439295261186458464128601485841126706730558987354749000455977408103922783850680128767571379853918731911640829858242042457262966242715292454877793047458860234194545447596961089441756397316839213894318297481524472151545689718126897788958350020523818867066643016539991264069587061557735285026234311879122128272457777223113490191172669997464773939324440279065526627747494887725821231499197318860595172406274485581261993894459696137758152649731421152917023682327956469916545069846774329935003712564042707822084802966474571631885682568906328425811610613964825138235864949344680686923515425636006654925874538612551673257913599238995684000652128552469518596994390549178874680724761468165934242559963914257840573304580329461060651019586359584130239076964809381362681542769701031449985327234918829111226977745661398393636621361139201363912682167594993692925544457961888841772391174669125358075083940078653383621211681495962181137232812439511049192470258332144703212762833841757519607672675941292122396317741655558165581685867266265649133565584765043161510688531271360998862575375831651159089162957762764444018903197542760811317734017566492993157518681734091208563857124275299097718066078268586745672334506932989588676469408291420952778209040338940049448298670964806745002497651432772071573916185493007921546875100404497774390550636619431857250736091813160428666326821368183364741406696331741931169149282313505318872609444808812945857721677742804305758724520987508616444806660009651549377013164855280829253087593639843668504815176275069358385527488066267138666346046470702939103600309943190754306862553555818316926804220499911046991958514231775234729999058408429162591193170833771078826673886731519513684664745522944192445276032161212166519925188379267224004570497312199714352365148549458543740589830203925843657498379875855055734437576749416386303268445194398448134565474984761707529996864499994501774034378949894652252195263127682011646188585593986521283154160125905254384418125687956519297049165470620691550347068114690333769712912288936258346256406824406846366531068440274809052117779031375306443112504300547148507075972531814414644433063507409900558911608749368459372190159604567895444790130941175186200163991168026751904630480113390665963101471694983725470263252103176694131714528062195206053958536841448078390450568412130258880525416544835759519381669421945427416266175260278727941888699858337960937932849624979184930297295959027292529476344443782450348050359748180908325973862986736276584658881595134151210302344518253787649781981797851893898540356895954326105074788579698569450477412093942185718528665167489671428387101101741263335911940189594770748376619447214598504346066070700420931935224215512833392289403785890214837714993893886045547266069920211943467746035505525203824670547171788087161866136919309962386938628571429119522090994119695133958993058282797696991443010253329978186026475633701997431953775112240712631684736000970305524644329730861782613297180031924172581366062873468958178382177486697506483645486151467272472514980890438545193435569667420933113310694319998476036977878631251107606421822245413240970571966455318025026410885409494121503927733097795312431048079183791186557633191114647677908076893412908396579822692599181382484560423461389301572333957863324548041086860677454858741372074726805051416889106794516916841202981001621364419851808169554285253066482782302003576321236450692869267711770809618504741983439813270849898885057233329813621963185546511763985404365926342708346407838532522591258419814166815250366665903803492334807275174663097097386555147853444435168142943126145431667711136293429557958063495736144224621736678094975240558519891323699261055121375206536388211300303257989163942422075491870495697494032413482532978327393708565070561263794984928153204307807802948399741558554895974716441683713287550530796048970309087651577624251370909257386123234911039026364299673628364842790759397438321084378826231302766096831901145157396077932220426330715967349949958498521288671326592956844805648578194052783066085336051176616314728034073193577209637524993862408958798090914287488251656897254521669504600145139316377158237466266357037592508252376728263012850130819903182253046051773417866992874270658876817959630751637186064546010531800599682283811035336632284544418389328618696285934187954998849489926321070381391186959329625501152537054431614261561913289072510770483587199014079905997328336684275342379840443609094347530754294487294161771903571835781759016898471270350905480934527275429761965978582426340463967717704661796616526106160315479948900276729969106995099681045739991061154814416328435434957320259943914928911795874384739692355177605349805609227780375891813685319465405920663200154498007771687644097694658907464289367294010308065769744867035992915539988346172132694320228350037382824168373847465675418041227164527212766918481955447115656672592839610567285769169054313108300024445480614198651220034614676595629519237139600554336456458990648712929190710315693580314935601156999737044145358422902450464406820111661279472498183628681605876680757450727091376733101698669252612112065005270400977925529181295018045839270822494708381693734654744641060879877963058501250328093817264525247342209106277948759274641692802836968090478115600816564173563676745598770352647259089538057116450084090336017063211904180866813346111551830653912683653609637273930968481962839260865216159948620494898329217711483869474352507987951619657331707995208180603801964543749423135803172554321871117094463342804006000280951880824393369295639002001957713841833170829453299765613934937161725694329846875755213700910834733067742314517252082430781653074435560957091326689423168781546988943962562313629455516629975790975595624392625729093893131168114580581137626000799140646605543884629595440496661680956420500112246842332282661366501987607706921982003252429568198452137316602150306986603857221402944260387609068960728054990806219656114649851264658200337995649367534713792357418010314850109890733800463815112818086491661740138500643573394743551431147893082415015551387388478469401153168850306521247728585754994200563581103500111191236581472504300404817037632490744512045631811178656099931189574880274399050803156450463265610689874913825844223804343470703120484560445109000485935304332021307883790260452635652857312288397712488481749035485694279392792297007403500984143164377910419937566535758250051068317790136669220790297573289195070779225054539379179420107248938300172748585730724450252486138593321292317801199371711049138270337633162612760917701868466314361393505538097797351350778550752851679948676947058984438956800156653862096580033092955039448693470564757840961602719178040817456350099491006627765671465082875921113306500747277525699556065443452502962384664449239354087137456528264401938614551917660997245947268231606853912753877767631909149499987415544810790319394971016736816695739421167192391560807189718596255400444907632048164643562725127074525444256448338501212015216127284143432820477985010176588836553658267176558798712418624871445541028485293594930929679523325545929645210142856341377905130934753882340836602992094271661602529678288157205358577158850539538217870709568112949007481545561853281395025290099294569079177001899473606886353401334672505976284335783993962135919441759100402426287998991807238573828064478903215488293368302225158570944315150832668442115789910779932863956297393204140400442443978904324272210069642464385033908986945554413567300430496277518702563107010491564743866261827670497170923280614741638167591223788703300514357310307745415863118321741129733238202579093477928221617309683653646549822268763543087391709229235524324138083518460684123309566384114229603521924693593380621610597262838884627086186807335650353855685417191062525768129845980624244207292634064368645822640575729682951359321235298742381549570533828291760988414208879130455193998712478551535996990298156622849324571031349040364459893964572862927500801628240468909705707648979444337571263774816799177125342796358347681058678599058666382579545902108883370206249324374249049261654672480216631766502725997310182210644512254164711649088005504223492667952970847014688701006059441576066483449759608631235440083652144274617958962718894412487589694951185715449098311708786416484459087264809997546388873167717069958558247745237699262337574007418404205895728110193893506232169303221165460159758146683658485136426813512349212227285438077889359716989006313910935440421235917422669620492216154781550141579829720889720062014708432042720318073684899274507756668221192293255043996528951169554757572934252772995741024283233988010582623478492091404689480002231052177013283186750736795658626251806640440811790128069789710661387129379161478576090449458272938931956165755060480734326671174039627749369159855556946058342187039878646009414394363885981806965876678707660642619131036156193545467563971833798912537301967257859950371482249610228117158199746256753938873531182892540566728875424124218120266799122526252982204841735445988684995739308464573935492012114731166002402252771131408285503507448462307268933478095083832404935920387620472757077004127665635782569700024822441925608095822525219940051698519200413774250293111459846720314091021896744999487124906050123200003700213247680786158056595707581110635624688401381555990514651882772520193731166856829351122668708113790391809423821403164122604429899863987743148309046112876961242295700136193329544787789690980000925411693713893418247263305134928612345601741536181777070873075506336754546586653880773829570000778725961225216376293688372804124864830472054315153563191912562692426706817825637053434807073842655666836905024551284909447094110389526437228864655020480092818508965352241591697619730583129230736389795360950892526364668232086600313959832588865990465686418128065780391371563468452158180847351067781584221250185238794698143822919896667694830696446726495562369398721835650949696630922302008527679574336514836857336477290731613710018389689226317169769920550023188215248570878711775268642612732914516883655321548279693213209531285140923982127195218771682268450277510731826755766926453352075118750335347279046870542695454602135537298550083388773718159184722588896058446755736157545465768506112439277775110237517134282278797044832589753373621311775487173557671142074020556057271229647168581533489717564799926605312329855327664959420971263063222239924645080852587696172229771676870551868568555490601974039927817751026416433219525752623312808688684342627100108350957547891410170585844953623426788496768886618514614051557381675157380147726987325469998884586913570813141501906721885820810192245550535105849758191484160029739092563454293989141340366833493969902916722207735384999123345208780001326116877145052689117113942422802795640115460763707692357653488669111902751515928147825360734557028757377088369620920685570940045086086242634103698617157072596868175835027822942957318748629028884388964410521491188377091055170387178681559713728025958555254716083552830407476775094270561044627880090405500014430648480276968267314956428021605476893523097852694939242241458155100070508554340185833853504033688962542286522227338907606681207085825661405362580563541651532745183099058998146041325491665071128171492641616074928213675187577588950411118778220919483758567899338803364910195692592360114892447805458952172221653940553849641218689123124056056076759371868961459253492840144706900516148750556320262239802906071662505434040980445158527309226213449984786485471883556181676609447386716552302056262246378703181184389185761948817900012020546993611853710787718956977378653858581676092735655263907929227490985108407790476858393513404752118060034737103910987495841992288512660137187109145499465092961575001397028142948702308399481570906553962938697356477433042945956278392067191182168316981871897674686380749459568202765584802441542527917641819012698045239439460421049224755290333931317841506911317739525629537713844051276560621284634787675940655438269251869851317949869745923334700751855303071060184320648096616831885151404722783260723506933078051290695088738529465531791142840307744498458063289998429835080919770252606171564538030561676117420318629596392806087000365447236760996673125782670583481664644345487250687125231021043187666240152212952199819633785577380430192171971187828364587293356794736746068758710418335195458638520585117973565323777938948683175757384750834410137044295261499350649974148896329580094747673672158212541044035276353065834948268517925101104229491292268209366579793956444015956035869544192072387941563946408495176005292393948732455111668702759153190637378270341894900049852022257022731912202552266912263190653767865993633128795039684374022900656321525518095382059384391155888205332725108155048124362618896265300922460482621037122227673906360674728033422008921475859043724820218382229316321975816871922380785948568487166899300527970068225624281207416445474189373327964318161506097101691321258593927528690010906591523652857073082615291333156463724192505465434286365132881010407360889851217009787670281260546464320205186516082780270069299609226271692725698792402978062014927785195996394862617109295090918768786058797822943350424714563888866786571788562725003598898206930152051951789944843977674364212341395379548910204453307568014166290518269111399594376326638956526298814429520683729232644253280257900710663500373164782698184802300567179466286852023293236557295934781352254164566349072939489444684181762516139651129276552648130105332261318101335785158821894558725084267578170715906220428120093658060257828123903378084142640882619058396168655518517237404845210163837109346605197395065172936115747625046257069561599643116182842507156638703760632259938091406116206663981876781792719259436029971724997636094724882262114573890774184060569930068469600070283416915325061418676491136904316799076136872338103605612115131348684836320705989852140032741438388712854612269974719583051126481212858376136457586219584431660477756040406697541945970026808248753839355328878619610009371305137318541421776856487836487065540386061026975439471837042598612118756426941059360059942685240729427356283792194985898348464980918901462436941185573453354605912418661299526944219934081623725989417125193280973000799596295769209033057918811823230235744744690102744589400207654201435941815234524623273535099889864411151077190970019977510887971173709792944039551995779440525854379392677490893121308993159793038544748650940620206866671162129888543860565240964072026867238161286020494602750435201784208597268071343677794070206344477381046873032633304505810615851970412782810546270233481109749691778290827016040210798339499463072936130030849145369106244923364140877953581540665318025133668271934826958756249806308103904582165858448893079374073362052791912232757205092263949720584543362120291057346373196299788040430361974726466210864527574323905435687443300606617568546635587157905998872928382704554566497188510711771018130248503235477229142959678878672785221377195010102452546888892733865767222342027172793237123390386212332410295289950733968721051787747412313384521299817355832135764024012836175156552301209182626804364606080031815606439040129972586140436422439359835923559036264816970109367419550087672779376956329452777592184549053244478842759600507621788072230577966770150288849211112963887949047198436699111493744786547269085592269696882911961623547541574086851566301496001117084473880553707196877398310619763946470608186579342956904698900968902859774895825592767861620998702060788109410569123257113055664605439586713128061978653656046334352699498557987129789788863768436443803760741883959400923549046478746544413111496961145139395317697423458860011195680575063783751506310740486104870112296882856820979797021142766903949861354188473310460785131497839846754802235607211906503703292077480813783691952311256879006822007957239459136353406632235831749475901441448164576538536541138339032826036989856611083156151975668069454479379645391392747971327250748479052551911000354430951175712456029906699387484310023280101240518204217529004957106214934696043992846687099353142538128471946136764111124718597213838419170919245703559615688482039675726305994169703393419759488766043646291339652391769583365615028655406612879218744816956273742121186561135337534771666138116908476729211412788363697424825984567193040536818071985700747665380784317336272039706789600387505984041095941245544332719719055028929052840500472814102354681273314786092375921589791329531512126786867930663945823014364984068510498150860037917841556680865023345500570345086498698771870172780529562968875701290562386576227901178352284703666361342503831198801017936316939822362654774376543210345278096433394411296307962003814699489925834749961453573987592928954550289341402151727122227934904513474101108364540514638366775536132658225545105088264372753388791416551320777597061328661238325844114319806286281864789870720199743455277874903939564742099412804847528263131123111289971264539830806912413112903638864454078928711162142183733605540405623863127021152984864948995137131811975237453399033792261453888286821588123210555957037860750217173330596696555801484612614460573592421213504759223687190412356852394749258862900899063489685979294888999387557791723721496891949235921791080621230694635945606494802559460851158527103561923725652182908035722683871015624708683787046192727944736501349943777711869777642583378906649455723710141458167317266937488783179688900651232127800876275384001983356894846118233180847243966672328424465560533492940758970542731319117932195103636665474620740423439545696493422537623904707610968623884580788558932566251085615459950418970516392754454401167355581803563314840758097573050875977830163019338530384111038352695614462512472467951728524770997758317524190504980823267085226100255831207316547896636522438353232405026316547744015415538958611600147492718174652145633949146513843709400495998034342348625735390484338393030171756464973080857071944577793805798683274167690422754108268285685046691552271390538628502094337048840803889390505218580735939656563105959154882661995241492263635202933011008331065490552046043491872383273312583487175607790754932921870377365897776157231899932452206433359834591917880286251638144549534718995732141336475283607559849249454293301393890118981336947356489117822433393006473438608167322397292615725173039645988963467880021728270376001236148975747572339075776831694876489569146173361351473744490867854774299536724389178701206036968459014533695346517375765573264943675713293246241087490368694816528986440046991307920834444127715394850010378972483726542145896857579777404485088616832169941414198764512430871310988035148511568682792967369936671730458115403471303138278413647708302205399653659387877656031361917834191684836770591702734270318139452535126270867359648915051871339030459737798869408625069253735794195314064943043780935555463231624804329207266732197004984833202495402235729295628718702394026755799790741628136069086890211911875625104175780346829416118628097013393219133497193734685910434421946942721934452396402979495539393557144116038539998475312065930494660039834419115874963287300879974388688017229679168047288741720484906436397302812129100312919133420402425295527167547798143152639042494422930905833005118881753998283379557378693109095788899030865054231016352395795900979901624558287580828911326365487214326860768680125924773686897835083225256185553065205512196952963714415711179093841434827434642575029161322545732998466994771033007006910022387111458809490750946736109663474473923129811747699599305947479122734304542024670289539483471551504430511594824654477872305503268414966592711633688096728310524019735862476976348646645406461407855316252582520295786726882268454607098634618271963263183333107724819455067498871910592959529787323054891690676759768963578380552055818750804968047880005399869963984647238154703576037328956989769086442643133329296187397028025375022429745818106095474845101727179390471055384775792911895534574678267106930562722955704207546765472608992278607291431741819086189834743090073043128511857892742205439112994293298513622879270506658137428377789357831994806630828984085708426307441337838595079318279632810318210522222428005567919507970126107368213944758990572143808012693914717332030286073554320275344807045399352756766019209540690048511236399624657411734088190629184639208346731299694310841108889400013209884130507364473473074897467385887847664644898642092531822476095554778121686874297540084658571162320773034721638093801760956593414810018005510851718009551263490226837068890273904671980104802877338230811083230696103370780009343621642897292901475411215210810141894573859827953793245492168486658995713395371529611342500076515324762766582498798851006252758816729206797299922098952431337968061451182086724716508084440771954097701748439909615534627455609777980086409797425021824882705183213278138897446204130365677480879392965508760714415926688763098542759967425330572034492043473589651865605804118518922870961265476192761598486579734835917627598672002825025537041086880900041011004103049178473837557200864181751370240597527615309222029527265501646973617335788682884399957250116212279020067500034978592771808546824516270600587329330161933296763856434333378001603362850593108198839698309306620018932949071558005271456776535108746036360159253604689836749690171482874156038785779939716774969559417845378945031008600255704725939512047809741234166920101852986403526768126757104115908063703995455427973008845437310247989036674884878754682664625183088886878572671490340077098765291495359754997250099645438514907622076744455680216979083074514275437989692870749698454193427950858101728596581899797404794554113184870305317602851621338034366504027824043466238858358519109480288700656593808378256262107790461860567760364095304141098355355925569875817099458934411055652864117235881131927470358233834414049788683773668572118251027321220781227488792152868805931648254767265169084469862709979518644951079305783240351833102537944764140286316100211409874371588224107510902377275447868744569247404433800936982936325077170852209617538538173548386771620705423981293418818288897766957703273180808496272911877926475845617706787716995085166043794991162067767473703590717672773416878682424671329987262137195776360376913738528909522007255879917261152987308128693279207732291374575795955850820373430779122976316689249339091584565002991020567691558268695845399134756600452271455704344442517755906066781070124403402339151230690339373529993532156941073239807063500401822889522606655488186899175883176940942344741640974953613445911852804898714405997032161257816411232937707736947644885737485930743864399698230851214964192685871660721115808624546372235210855666344410635388652928582809275589627547447166393997195869221949628793694943207908976200970979685582860319499914557499098252692137447099227191431530337732650072446375206714451748025601405884931846297620085354848361396188976596383172398391268965212507042092928361901174264848426654473111085480942139004696173038577015580245586121324468589987511624955156582461338571663360021900687630806698412577001545335329497450394178358394463111124083106495631075921730947892248821944590511092728184505788472188114062379309995949795941251166974087568475255223415177196238718270534101272825749157925810995626817643830337047301514179834653097278936360320303555550102671260352095633773500400125291548519960918044919436467929325230394415229426716122740983295102814271569811451744803136981866546882110789865246728848718158730295445907200821795734849922756693449326831175045122982693760904372936060907813491102843982833015921624368678984587959715842312357688864794601051546815193873103334962676282681831719601006306487030299764821622843631376650226240839123107311210690593418259858609143876431481986640615463874984546944590451442072440910199615793543284286674464414923388184563028601979636923582612379019292006752736565463387419217972298633482972325101970140664912994774704270746103503037129429214527176560477807385509799380054369034579231460859635379242517588888169545973779547117359953485607360162503478834384799300883166954747097534901375453297248901675072465648185861284121261713126741254249492488135133906168389612223272485790793293021385538474280092811899149786292605533408285371426873402543187799745717648760504166420312047917332753259408646378913037388854662028004218377572223507700628157018589310366196136727971692378607478947126858383915985697021812286356197639559224911064176085004956788315841875249260983281843404564152962221825647639905722726795327945846677206001724451258092055187506141124900223904812814278330232605005024077251774679099276227917400058654984161700254154551970268206960980774082832998512618924154857085813720213020964789106949518800224525828804701676207836875746425504340104430806749819219889560394996309705448541678341734602100825678503277253576540742566003787577240791199980142213772717265421457732205139151220597895516872230361536907092881307461473232829547394278530614434280352533339596017394363165455400460685519639049486579904081516907756691733183125534283527531262145685819019397401323378216129234414105826245840343890311103540991158104725405034313033715926104811889851877661915902945396231828799626221318817884228746978941397730679611903681982587764239604465496363280183968466603568437545261017827787305225701562822342894487244409183677728848056740320100667424757693027393436317346064462936961831792771516605620535771807131471260871901717120125646377783265403789127650596490547817258007355670971738677954788062399687315155276540388677117052922369094595984880137881009017815861671738255646539231388681051491435059388621496763992019767033026594230431590760694126826854942828664218237415169290625730558961217886576270063417929426592425415633348051615254122329821897753577054677405641586033944905729423344389765412726610027814319001650443612863508014618977083169510560799452180561015991229029815204577318270849369423515922015273492255597921002901498364185400631143339162736002700094415438751600925693206085323264543461510956586378043401693852520981548370400165067758581657774413604652190431962231866825974230072807418637981942825730735299669484004898155614055410647642452300386438734811359713393539859869979300489254331274894052351621921537169076817297732559762295175926479077699897826294445573495402393618440621544050450917628253757232961797350236501993156352597137418230885483119247808076851901960543611619248467399732805466799620326223034539316025187019899981023783702965907695655793868877957690614593839277518881872247020218997211685867118224202000341293758708625018385660173300533228533381231236172366447096383732966012459933068020339026153458559714332640035924953591648660452700026922722664950065140442269196355488435224478841777140225716723174521381095935339127501428320081800956422809494860734680723403046799111669940648283715933747718634362031669493817814037824973431108139084182039598093705018084549952768363995782663588049390447539043271442711708177652143984644122131727467895032443631530963994762051268637606432958848465192772486109504832307920959054141735485003179658578310924082600444508080983978720704605432530801330942752018038088342358452660924609761369210244935275586275732512346426105710510098407580783576020337263936299583599149124520482904557252162258842948672271116131368583921081673752727810587739988427617579036352009100504585083837910686352284644718110120111779872075994419856883386385839439290336892656926949894220891681201227881128059315292886421150138259244890310582947563146414944737864046568677800165363283279680146912998009104034260642429831781078239506184776292300860451335324025326918522788273886695414283142688378163627152857867246205932801482317659583064250274735200146856708668538951025898592334071861661364217399058713392295792195099346724014637727197512269175492825503235281287098770959982625185727945767437164769635506949033565272073510163646142491100241631541026815012105996043189511604834105963828250637132266955243696478336832069117178935133232922927451505264142239518968489310131001285282850417745307715414363630249461145607944113586047438542634146517480395523407378383006037637957068481709657877993284198743514476021066351994068805682096740867704851286028843482347684519815451546918742506712233466169929356252525369228734441763897755097582163137050144844372916504595456744152851918293942872182891019833330723632472733961008029877840287458872390408324337399332798875551350007643951522210748542358341079765819508915528661526326710737533688674082934417695193105275994829056060135543291776806371364356128920863853103228026654476076895889864589304883510793956557267024901213439088327383371375983722511041683105730890617045725141773020812560724341669964558364306624936514330541093155051920840199591362888435567819131016928485839359436914568196459318138066578418493927244826611390834782654155245377758655176781188848023665453176990910597634226609234013960823927285463522323311410611722082816657470774210473457618180415926597423910623389393748579809542601334243131485584703308674943050566373453881779867360718172191876614529767872108768316786681117090520693488580259877259763981080113551408264543752761027116522428151777445022918603710042222307392184842138893771113598289111805845949744890274708122713202892191751959521604840701471999253312133271914780049631709709314352425191526333414750687729880122795902901321622971438631031826437109809995081712988080056905441654083927369712342170826931076130361296003530178564431044325967588213229511116878266990389002897513338076315291867831444757603868691106506963503164289962501665876432940741688061499591707117889659123292042532899136091657396482717662547291965428784166824908213501942551413096699287610071089309852279923222106962487503277711309211571786759014730941524057897167878033385033302082469317407131464558610628928488467247645206837200944568239449399823701981201381377007575281534884224390992858267749978070948151984280559850062591114792662125844737549116612298832788257553205656265546830029051911123447392153029594178117325841662885058225712563623279604080705243066015735388445118527550362440771336061286120763153887384666555993870300710083257720663264458412828406588599761032686795101330830791657241964048491606590175867950445170697862355844962249395878032944621358377054013742746620302162937958281003053635766236309310989556658942572697285340321219067570795511300777350817011956331948645121521285746836783868278837139596568187064371085168185563303593989603770987356988651221258679849408323734946275614649994303662312393454962112101631289809828844287817460961535468355724167411054118581755027959748343986025994457378183639081357997330399405025699493707467996972015988939798944186947986186274245543787843996336379896433381526410834294509693257229635014366637546878167976787137508622696198467224849870184405705333430228995719956192040065338814448855875296689682470949691837756186723522106028077279668321789085443450124663781817659117597948435654877542539685481448261312513330405860888259809843177332611416348736457895125819195923754711595230857190156938222548433669472416053218574442584499226409172815464817064382133610376630833956103943888937747294150649266231507263384819586067856847471941082368065112003769837157922468053041019671529029631307398690448209437067870765333516034957923814925354309552539532075952654222683585873354287805626403446943849951356635339750555207144425682149203814418677016648704350572361804124837747534206376322916539906788641501857054348225571799394144458453493926961463074875776935934265529163090301362528735142824998194640832876570148906738457567559310967309812042214287779665674151867651397316310196790783028835835536679259864964186253289949544801517437234658819559663260055272478574559320803049948493357845521652137483528992842983666136730899493400582034576400192821648922076579821549905758323498720823304764987972446527836885707474875069712911486929010623926714620540836400352900905859102239580449170572551884628531887008778272107177375997402988983241788323577595258810570915625491512841304068503470934201535909753594340491446444007593526117934848753626112720343826148549890828616512740436309303071862501146806022899846006781450927355847100279539461634176312901669181207361013253986934673505177285726591343044794352697814709894949382377535115081268044116044678568012815003298864661350155979209710307944663140319554704096202089270959164351666815276573520711196850417816549975209575494073612201315313169916585817586912437050356412175643884417949507416657278402486485211487426128225296669756512318522873987338939123583812849169658408105700208180312018819869885925968149463970073600901676601303050787682894460994281551987768052301738176672570296944264424270801560291902581841974758158781059838031507109102673163530886826185892282175580749251609003395987234115779785456890237668992324430898469227473747898241384004397895349465385811504359965880321154136285260737772983005752504883603760103703248412664678021588185463456976788646634752238578418313814748041505072007368088582641747634274084338969749325625031674507962535683817210904664260538796270674699921838867110577444519051786688895636512844251885550849853096008753115480882776087324384601715292616951568834794316458527616242106275705093876097960020419159344825654148294430942536267391597262647896769247913251870543088424479821900987825456268849595585249952799692481359493947803530158908141700645231291332224692165080317935810546336920596798332681525823059506029946754393339892132434745773174112831654266069956670177261614815399687509711085119845223333539741038724299692989473792843463507999116968304034746856687467042702749550639577398329919568680072267524036082709738866570789939656341736495122146561673140956852178433000945136743300754543953209311454266642482214783916335044619858514050239598125233538734646025992710723705163724660985916926908347720362582832707181886604312214377859667552101546386610268629018062856271320838933801211705397382576593715123666361260987751527631880926223274719078696551890903073573480648508657165744279715100868970785122704330443278409530154803880682548475544093392339989704499118612763744912976024808966701183334713729989426793768726173662219236940213567425240451049530274682742699465318261390794732693795013848574126055333089485810510951126683634665031493442100898150430526151369189430542452677427032185150562880369273515011571753697159988585228916035707854027439658802926185937109604306059147402686239699853813052159779825404860951624126130674734229882394335980182712352913791854613781332012368167909451718110191406092802679499894254369821961670432048736786523970016636578401182611687141190183845599494940143272400357382986678876332910209183872904785953767088720412465779104816716441233670917110582023210547925440111744342519703934126832143823639423100858579519127313998165294006399833585642621663861332115032308504619361853408779607189921258636463904213752309132855214183919361812399273547507822885219926476012813672089711737791258470375285759209090312827644580584303318709104829593448246190555506741228685047002671494045770140646578440832896607028016100065049191839470153326356758478254772583700717825482324534815513744837661900616514539344635426285477320602486473452640682814640693177835991089839023312181190685535054279928361564843970602676576090837267734383094931322621512631903967647941917889176390082145692649840077603526062573020451093118740528480424985758694273858588920320359481403509874789072663582627277510990398341311342500872226037539724382666845304728542770426500245587751564875078114673425418750802119943040738354818416375503063507792504248568878545954302085350849982389813000519194254937716017037076029246815439520949184899137882059301167706703963788581718316184310240132299893907494341545394186184284887519875246888877806815575695025024850421788276187326936800911609829564509379308610928596602054706821923980907288230285679609119442594501995712798817184584652153380854691002731351434950726472682288722013950724899053588541260053479120285229457988495320688531812480228144616125740684771783175094198722387810495200526472238892760523406111052821192213276198029266373382235393808823212701926444292146750998214501494926336288496959021275517691681365018842356675804129980597399333299796395418201570278543564379311302750233503078497446218848051168222089933558610203481415193394155333080644302394856595460191495137664007000705860119293919924786366613408483898288478131416851212229622301772072075862453126181896590403846029335694412120156709715832833241902033058539107381083150844232053619523548190906469108770327471725627064659051134059370110571170283380339597194730352987773994844075530570740623923345077449230361654690875221131027471319296722121597397385043452966314363249052812550292868567133025055372421864723516516970069978093681499727465813268885822364139443446299147552940708070954443697958375895059619272487781443449656975340924704322935753712933045833865562167486424005745178510359352378958158445356902214660171802652317559342510518096151385448452545356743927677831947268293262417909727800220893924911574048581462688638117107146848723607529195549144353767373087910533828351719270914427070996479702686090099834922144513582494553100942668360190779199564986900640847616704106814665226775040674173445571415566868252369948427430876047908700588826363063121314077706411015969505075045378077467405798789901226393332736472359370909887467988224497171981752557523773796096819975720806053744820400382656373011313857709280815600223614603486976825947595674493700262712725276113176183824599440971858195235494339506359154398825813717169846826873061797161209131267250801371790232608086278357190590600684722818436108756709377309415317852921002959779287803045857439193213374741644299034826675958824710130787035520839990381902974615378381107338542990051974695468697090786787908595942370744376671441176275416779546423922511196316903969473402489505475422709495574137155783709481521234661155664955546664190992937195579729865358605410755534448676920016871577956058568144000077596478562770531628136404731025161621376948639861740687429494326596352794526623606667520414422595382210701180965742163673670748656009555880878705624974376009429908265645417776511622836460000370543158535670382698506066192958378964962659640335897169118404448039117241263514349606216177063848571017649722732644630840033210107296962786926077214119862738231628110537900591037627262640216789898087121348733605740092527547408183537183889656245759704402903331165769851018189308660016143448242165704074805919277093145437672053316222341146603144388719031811954444394170368544073475216708661873692741918527030817021134390706459400652426118987199898291625923270475730028955648704617751485177323635606782123372865201869921847283512112035884703799903151586712940068518328957723612561525772905110973129980792734186605602723719299447276349170938681967302704026736946381824155047853582352672754901149668845942693593318106345216148286034537496877193219573546894173679352797368945856436510175933974778914708405107841580768947992300711144922758437734459225757881134383628826070178523662047094742039063093268290309730304056401013975376842668734977884193319698087943726498018399112440147599319228010074206037004361189885059177503228596464994640046095773847787585467342644685703722357177095327254842491052920625422834406964556848678414449524601719340884924908709179667181353005603324194733109761274857115037779082918212750547650407627259381660525978916885238658749661746699214513381710765390118442781689623311783762148367971391832969959184235087223588018203643858775868340138922553418777863729442135939647098207196795692769677035225512280223522588934966639423657333147724196101048938831671941140666845896349250403926414399052231718943459241293742767480969261584703263002844185424799072257819718502208670875592935146848175541242718921959382694525261852695681394384068402922284704911186432898912979309498565937503716167379532613912192242059645330906712108191123950545221902903307961838575833792606327098335576000544550306372408111655552018854754086223742705061763741811577887456014442759294770751232346290071222095307150362653723999562244307063229252720956889340615373962462055250855612898874581570516883463554533492223065818158853293801422232758684858676161936891684759011264285762026076344191922396675304535353676697590424896393612544476947241663932626485820370161641052821454987477741230704387728761371103229384155194470684555128351236839494883013931071899692936354744896578069087561262662385187001294634525895310888247652963269042453484719535109597953085316117772100567982498644809066472395043614989821856317761188903429699925035177625380428341702119268398021399718615761569429624526811935326076023681744426067752069409552883953639163589068681127587221304901800191653338771794149455704217386973989665602087938345395297927675563692670429102528251361096853102623559154146870352320210871693415623875703024785958746213507060503578842098318827109523182095747050330278299933234501637212844380245504680133549604599789281944562879253660832873108264763297929693358636117308588428425121057222271388885365453602307060954425351370111032500423906665896655456704610630420199908190115985304030351824904576609550726642319137850738838283477645498739233456979082151724792894877332489364244907199979983644114328389879258041804642978171962576309760735779856504640866948383290711007601415730760815507435322637035349022635545599079665630210141289811688457913142240394815403162359473172289728294659126758270850211524860075169912285996421962390874319705007366105454192795761446633725643180168039222573247969238971773234902255151093617461364102032127909715347267435366972684883273694680270792494471194182523902577914547999565716943280893451212382371711066167212743028668703141207260716256709366873542043790926192185957691721568172570979091251958105176866654599612135439877494967633345356275337111201017780172591477920234281588539747556654424415750793945054157538713738146520768789987144494837707716915791163667914768694912811952265903047014668290882614752873061517989241897947246097147785212819433474496803120645496939467686946847234445904355066821295514319142205073163724048081822481881575875555640163562283193269423834715722323646017575300273446652800537020210288137490399490121717340712136322941907890545349358737778507623269317162833094418138265909823979339980967915280823358744743595038779016787667229400276869667624627012707596211492824832323078806171201120804294795329225949177376606973620762277350375752528027772019752233602752731720955344534560192563082551669313852465807697330409949619609087313280148565964235000150346801003923804423852977028944454713483285442885858781667511720466372611146615477806718569258415985525179416259881455227744000744713333980886335255931054909988147132361731438935691139791321009203619086236406066158920919213825098065164973669610247494217630051391290929978052229779274425327248854201677755170071205933332493736832310639115704890498287138054234052485994509261651440409796434810908318393793678836726771165494914887237003311685484083963499180872620726462098351702441516655869848820546072575331937711869449447793143061700149761991471260339856079210539978376627063170126718777344731986635929095847954230566139397254453341023303063635642744872622696223073381541063629174762019716181892841188448793439357401335097710618470240127153511439895600320845056393325854133854016666441653926340546237449681025153975429292877073493715165541161010979619765871965183491126937308638011897109846789516003822338609642843829774463245702263111438717028787352373301574993010313898983610827341031535536386623481855785315531957197611491462264626344939833346682513293220790276530361469693935447074639132816182065642819757791504629248348905094421089247422723458664930800796937434501495877507774999102413642589603805060378561072461323549068657029807793737568423930062861582307493656508898899937162410664099095485037065801412363372271226789034156694397275640458809500725722878072001262236380934995168920294247854557710189391579286727089449997689669615520252647526894563869737428966162763078549221409905136809281029864257495223283951803299334915875429893198177074960142105732150715878296655100815535022499801249975838629532139547376601517937378285662778018863697493580310544063262794827072467025258550970381230077230044610291683933759842625438950436234307781852462080070767445137909742944286362538469008540426679921197551456341747601094365964572484225188060931768257678261609250589178276965982983343711988037349408853669717185371655087006030297000830715437441712105227417397501462374154600505421925547514651569462431241028525018369518240960003559113105047822016900212595459824994207576370673734833939679955838582628040117642580714485508516197187948904684892142278386948480751586946429847759222337090742914023342717429413169791941823228621328543686698817190054360800219537552446190927150427387724944922264655458328993117472081523603977099568295754224458778334150999827967308750394727674856597526443657121309068045506509631709560941730523138041520949872786058460009174173099989004462427247674743419747369573444251046139310480496518220150555624766147101899779468196532638741579336866276051791374399183768913312959125206242845960971499176976520460217999582935902748208678885334601793927419143829198302342154591128698256968767270836788288589146659743372219585205566634915879682232313920459505607496327714931269899887416458245785021382221384010515405819106090231877872028666355982150954696949080325461344288407421356439013151492079104818974875375979708498030639563474596088638721471257201392644968703011123127611993478354425981745159186690415754635328621454665890016762055445024343560349800869901231767874363487747802221677947555347313651981494619684943004268755974977186707960282863550564131517942102456395699570721031478095151606610697039905730448884741006851457037893102746734240395108481570070705520141128664884013538692237133007485601193868307246553168621711205073096747785000368095011123102650497910732152161464534300877725679099740630560605160671284314771378987556445421280580685578437466818756697569933602670347057961688794867202419355370548568581311769405350983235880348623173413189216787636425616192963438100383470658209643583111427829095903228036142722133150118737882925293785644306870243717661188215697599340333551994447802446799444613694670730582000632306870539605024631230059537329849468693259990928071481877773157767817272444412743181793245678505654330419882821932112233375197944577980284288901111842452232223544229579144717395129754677777308501963289242963147358397913175270114410862031526455565993286645088193667756137339164666005245016744334489161561149145544826295878069566342712513321488439184041608610464490173183303555443932902798942819527302941149791308715762094241656033120667051640195640703944245331118012996451463150069368945875602162672167064461660508567644360961913782435212773570341983956016286982852021334065134377224088756485891457017050470448500521642188707590406989127663499609997854984117821890817854181041646668337660218478899838049602874221908698737598595627884443092860535987802834056779429374521056301943204876263933535160225271027440462277617656091992660695767848343770240148351326614777425397317885562837834109510592020152058044012330848601073835238113573242793523978598021202681610550178925852118521796748145592915136121764221216255099066963593338734075701436159826834209471703314711493011446196452103796386121970763592116790188390612049990547261783717926535012731576639573339601587534234690728300260551928976408303094992626093870348472860722182127900334258083560684247617145000409418181482120598713991969962473010027476204327023395195525152090331716833817467451704362661077181867637873253855326938512871903562250612443225789042435481589312933689760922574936771972729225481505443354477331048893664657040453682729980747239083034960930868027487175742671972451401712572475934493433939089199975402896264503438556258777002600557997071031153040669167429133626996160181454846191706091869270222088098064472162254779790142779276850166475209553924301091369674926785078117945971484953864826698979984175374512562317363245287903159618844724724900015542917837968108730121193637690236175614722246996965057403772231016452077435447887195357892099498459956924488672448001051687060858402080773942339842615299475818731501877022648494204746848426020711128409096645262564051525560888446687946565761888887972419750848406723387068040430279882403258096538337076383320026511776791669967853242312534176104678467400753969601544029493752886606619703655665209806915652064724290052095850397231652077949335355002319145487303145574744100090797695827975829848323891930104917780961891725405419027780672035131589866987836263579536057781183588302792826058948870356490499183016754953995439652950785011583049897661410127808092355709119674267967238537381311873160546419653221041063802043092509410835225339504338908601690734604611685916845032130167809364385882896625282654386929188291649098049801473604894101168386715021234295621740085450156999530945785212762725374331236273068043920310646496020047848239187798013127212256441255536382391102198950182630457925419224063263727993399112348801854146720110544790099632267494323932092297273249908806686803082717569654635495078480795981753753329863603681110325545464623484429293074648027753022077161263368840681263749524094551939426199932382379095860162865869054041569348659766310950012348040265872803926957943094514045270204883411533989523259903396508156869564921640227686405263052279488493657148665860035876254471931385771697402929391758105033690775743126948463954100058767416547324703674364960444208125335400225213465868525272540686243076276061661686579298398133981880423675581665044675725189023663635337086600728000002986462935758121566402751528857953636096459146397229577800190879213858378499377046261822341900873767979420287567355131122366071405125736500706748906991670326485470273802176018586420860072420362290531257022505479999557357519961013437190072972857292976684228693275467235807814311490295350973025327461784646188193642957009800047857367245802191110588923802003128651462653697320691793192213304320151002546707248177532768490837022766661893317648517576906451437286546530945681063478346355578188296174455908840974695988854302241092696771714211681984628688904559444198171261761993798193399298919396463751965697972095371265674145873164976314295475931537146171091571353513394011870197621190560041914962745061053819463402410177559875347554840210866071630335582910720317194048643718942048816507491747968566832274353309948048353749624642859897709888496499965166532030812374265852227467619860285196380730107450163944902645661841243928715378139996978382324633663034084671833459069962355670719726369259048945235327528412064461857976031611674932978419185904822695211610658336783093434795599674434638325460029400141165604301403830421522053792126022090196990429911187631614568568500230440823802805145213932920560525218694813466304176369603801259597087363695122431664039576986916623607663079795685181927283373939596909524276000227705521967789227419618818922450530451062774477101701744262549556602480497478906176870060416927706230522704643973638362332103442809229550757212391660514720454334559600144148678104092883572655804502401475556851345047975144077009317803774812465470713527461853139280742280525494285419389520039233316900253158156615838771435077677698749090125521842531006053454021949904388649782970194986682591866967062054890827766537230705520176073060354546080114842259794981614809139771997540546350598127441796504518890962476685676216619761117142134455761849568604056427261289024387646057187250228154863381269945752047412195467466904231449983407160093975803652263663230395768106216690675510370683402289855065497854382885017112726487248148514193143563686007943209157207376645818754733406372822327366855361946782497867146589449064154317195967002382965720881728639349871454650955539044052084219984670993712580366860582053915566919531116656720862243174869854206137136463764581413350573001339950331000830038191508572197480026784324874303744541329421263281859416610073067474424350468465331486987731576421901334555169361480556607068154736107186513211980869572671899138352750455627318485159475411268145851405338235570208010509996740179425486028769030492171347231125298403600845512657323070032389346760288971163637638166118388174057935297052827140428662826734962194602018136835197356773174780787631484540445412072259397134112191181365555497772530705749254368339783141544590532341173109088157594962775418193079191926005686920911327376280964156818814589419114286382099530923545123652351352178162584287484137466663541977616666948413332777949623867098940522339491927619161947712038905051751075554051640614466457098251317351572731651894142445027935968624203580098712927699215673527132736185210604987291577378523462366995601013090019379651104716587457184091655052568715344936555210821804940580287960386589511001926290506544898424665638776251428535298747272468993457839377713333524512472165778163302184769272271174682392307477797512867476929738044101001104927243205434185116956473191265873920516330587025627625588313712251679109242294535448621404264247236681954020142020111951595715722446479192865054145181141754526605240375890746119155402521461156884916456075012871137109574867912768940456636669006982645719017797167300837713239366978026699137080755705109238220274488438376707474059650238519935456352814170919169962094180478023110203345914152251487862149102068381249273615082945499805303231250992628993545411381440656972145212810165488613138499406168435489539920258664831876240062000975228591346829541837833513214612623784957594485609203826333344719075897235362269912628826088439745383777301928969948293698311415614855334280261781538267551076407150374437041960497918065518148505835420477605800674696089764815057218717840420734470472879619766069662008799973536284170881696562610696597311127661166471075616960665177248132879154193254826885356773359618233778919072912995428997628915984280277319875256482624003169644019896778297806243591620583914110243533986010418431082667396618854253686847731252240030119352569286906229796233010445008540787267240624709660171869587705998716958228751188823533900540535213872457436033971430331721781382170576803309103856879711777807519300306520914577198251815010202947137125475640133581599632619069434727142403227086929191939441364756759258913006009625845707153800745597557727024929322548856577317959244321632785500740471279490307348737499985238729134431810331005665352792670574633781475164655853329704828753080022374662337732901571240350211085431093877750456138401806464482989513114423877200305064245763508286527936158615595449152754097447500974605938701867068500648662931529676065784612018710202332064801454911129676800201878688864672622969346577577242295615406649409637761449721711526954728330250304992734016973093179457768974137050349516225762003940532846793848816189229256978438114806546412792595172830607283684700976280479904361922824979847557287492024217938000717332356311644719738579844532583723363421678764150867468481159446931154684267229429487636167898140025235338622536792536021870481403891394535992631656365608344657925066544373333763626429465611799081238099878051037726695911239678011789525791733604543958684208256874568089587722730380014679520148178820546311637949784598660330383929731015404274491349981745985579852165015415689752472506955505538739269104434781607935656262597500139159305671862449372579002482568011041930584146556627316097363578402446951147048120071352687358609494679013716283189095761936728393080601687531148451734702859091698751905026913613901164842892788482690634991123293904117731371976642250235043267515122902796104046085032803321829745944114035025068583579821388471593557740701838280288370138634594272029837618942012235368129427484059036452848708677703627522663044942242852550137884399902034409901591773692409300882524619352457829231498416187641150457809289526163234505147559072144778974479693785759084926702552553511034065078539514429841124557139472495390706328599555835924532923388473306297183282470030373370647859380475000842111183649673357867780253919207012152392586849234345054423194386199015954608585076268788984557632450614444018891047126239115023946303031231947376959342602006505621972664230088240597563260241123919814483233478722605489759651592850202696918638529627135692781152847593978934220908293345952811474835359471328868993701053434728937648010624403590005440016224363518705542747539530095744709183750258859723160324994857507849469796744554181789446819434338475822504353824582984414199264853783515798094122469037331452752144591302910667469737822964877734635811686706027401776429866368013865868236428060265701040480425093161635706244467469324005620551559315523741322158466705710060108111695126009908880250682030284437620583598205340365326631417864440840549013387939913854536457941500697638272561691535822568484426408780423231651711572790653337482478551919200836438124281437069728992474142228801998593634169543221202148564766315532640097280815704095621292052283008035284750594543361608808339160512464489072851067620056954037181152420809017272742179611534419132633657067483917071891893899306812522039663317616282629867097486545453592725067118410776648008774742948461985283989097092504966299501094278660095897567916971750877133157698428736475080011114721464918430947541823463629182827161974316473199310686472033796309255295866450307029126767499988774769212721371580652165460321464087878069401058304926782329519079422809045905319825492810798941499964627778508179623801703266129826451295501263270311768293190499650513847720334243740338213977152377642993158124603076827639491056974539549118841217546350682309481910876588187495500837513700854122164686375518577193429141077815409118200696161323780590597442894352305187360915056491449471256823340154784395249742889861352122314962689746754043688725119522490665382821316327900923076648614764728580795768670291153335824144294633674686690880956278183636903729033530831076074615519419844213937327962228090643722908806024924937595123629273986197042393170553930157294123207879246624518962798273298034088111250314021733432889029818866776368933664511455546555523546412507079288822392941264574858175430235540505228947376052266464578187970614101507968835536677076181957280804727303549250184592669763691968969949189230785387066526116939409570187547516423699033928358963803306131015186080149882411527142784230894415431564892948139530204570599275834474534096840855526021106950519184791292260190526143623303101281216797184966550045696283387614111123720807885071444332481098039041330204201463002935196898181473558428082345335053339889213192514039008399644150040827807584777029644526055314171867229585790251168088070115579947867103664820082031604235463571009658542542791219503507317811918281693978733068345361701964077052835716042791955864906118470317326609373332881568521077322594660452192811543540236431284613017782200018116951694676425387041773866009460411207368459865724998631342610626552900984783210154612236834346546092953079159451151492840298569857647326839670278322601782050265765954235685682073694138964987425247084814402704339127828469683525277342104006143970437171363836668986464195335495650309336078319607782348185060437835012787512550487316807112288487194012370440574349458003709536911286844054727786035662030751907541138816060039508935747634500573209800449835606735716203062179120570696230057825700296823750610606530770017732301972520153600190234639513171237387408540616976043739103900395710864496907463733141586634986356502867353543031764121058787995166530503236850110504227444801234644992260907972980677851321678524464862493281265662103582709292109708758467250324936422512191899593850428330882510797635918142924469917501844485011335439495984915413445353196773923343701976568494503692317301506702264008382786157357638903127423866097912332292788505615564167022236277783518068628925056880463394986691951868316229123521665932688050708990646895973203979038264184646650764634494578862661679953721806851347886012509226119576912553069568492603830272945187544877317988811752842476362080528714741685257794517438561943905746875375033264388226122973326132171754729989966605211557461750085057224646571444179769444787043762982202375847700595999283493210206887795611351196007516642588636620271158914194199493887628483966084333097027242854965758683087825496672271289472966096427806240663810055173531892004917012318142824874301417904060923992206334957577384215752066110162133540240808840174810613328376329871432508174455708126480460674746669638064683725453444119079084833533666834948953480953897040164421899704444441024025294808490386498850786703160295934794711594102272608688874424948754329499781458662093345570903814526139795004784135629255241243888462733719820624468372323251928537158171325110651827088635304793697603936288170505367083650391891442778037855127192575761685902589566426430561931288390042360653334050140007465878028909281272116327103822431445967818865355932215068933574030210777615056907384397098390961869702540070691024944692499356929940175306100706471755612471299626562284063134427034496820967540955652604845338237201499863441229844296730665830688598373174916647748833307708891826315134432067711816320596917469045345482005533948511897470146205082513628720585298616448685769516491250114298764397606264954205167977830834404647870616647394853096418079762201391764615271670495607532656806643918562796247850473451973042461047633601599786773083839179773320387301659708659363752351274634188809853585669735036857533159388209450155923743489697757994049915246368413374419324121264472392090676380113180945855353010748304077496517952568982544839763806117573039322566415132350754861845964840296397865448980795600803843478934973108370122957874972585305128933398930070814382397655765363696145914590535289854092354416288201296047772079423322320895610758322118183204518303741093891630962274798626269310606651233563675225602548573502773763994411957074251810645543191792328371796758056145658195720359352992967035068535112266964118499532666951443469218325788459662312466552807832397505479529236190936735591949697796515305488803627190020226279146479040508561046416836627227449397585823668615378368323431424469768905535207265741640121279971993613347270025561115372947394292109724791779510464859198895676812220970582640637174497107963100543926892563707737027388929797273255807428960738652170076493252683591230018089108896199155381681886936378802045524442389736811318798729763231332502210579263047615793414746397163807855540048059349120311293626489450908096528544137708981850211325651846254709667964166654607678015973510920346043240404290525962960867550342471359522055802593779106070771083984200695949119253121453833207095312147448712313524092051851671276927228419368740052685890223830413562258536214798072467369021575991682652180913186666694306620821128363330396249000984929108717118343092564097774324482529984486030433865173757957602665161454733400965684973383957378710957819100286182119275572284123812134939367875502698206739015972497684144502549735585616839428892118398059295862057570382246562944210032545717336415565924221227984307315499582295447724240558671737819668690924355173128303336367917084740820350717349659448125599787538963098828115715073770281962022371354537703148800894279141381589522369733063015435839680112241797806649060699403862452666011857613405493611619218969135405852787295743617441955617720766996859518625852625229110466565126001278028621797484647043829049980140483189579739945622251766648232397269612655419651656320572602434113175337981428641937855151496693853557170797273298853577772426097024219394945003237546806409229793139061343278183276864216581635310618381756698121840729481884161151314915595147551334733566943372491669705857360138708649539991263270721665259078751255750759420046685573037890118174948664336048747667381805531638749961183491811378915561208654908647397597672053896133873138992320916235813468617254178441514323748270349952130939053472673791853636386825285243177157557004623241007126653472955850101297164727771431132299050834199367675022928218277485933294656462033228326533439281630369408283363309264285056798619700724922294252471654576332604904056235292747223392256739033589370558243187644057966890832623607810384880346931274875646699592735337222458372820610943341174768933360273193665703666077407720638217253285487601648040634812470453457089024783318791448968370117883625893224458198803159962501203382938590408373598527315822069615959840998903670559618349951049103419199681996030017435073718002269807237297521709715718020665526125863399439955381382774293020324811420885927292234055961561351110691980619799477755953478509866006085030261667792234720974950461132110613117689219533093533982603435614365713110734496219269712345327637570468050848805029054853448596631770485502163905626393136496909474074735146969913427982112270260825565741566861430251507230418266954437033140384691941634814613418295169669141965188455891054564169265008919028527385200043959985291367607457278302063362531587963439522480599049184439830136227886599745830792841712757397996011643284694805668244148250627408293283629823471501578562810181733626446263403587199241458984734232270428342480953637249322484619121464005242954940489437688577939666224111050934227169214978333651879278797651384282840127046322885997463684682286138812067890685522049672708156102111717751523185885010335029917386256035889399871694465751797410946424084829308409465012695515858457326441559926219828435665451388919533882243993830653722338202455085709440629849987852899999871054990942819149996340494267726141285402130483734066656963403575332772449790635521479502175807065807047671589754785186295687309415542247009506872246384450749080012003724770573129765955447436215873424239253306091745961855904183883905008958839813113005162175478394481411824082810456184279104178967816420384258405867934756576210754347052831563246367064942724857459131704368490065360381809050918843554650865930295822842095658830950455323174478841623645869587283560718229233274485278667205745772968775810558604000944794085732736726255767276290775328179666428370070843621815225157354843926887590232565579529770794351597495204828733564234760505997939156019998357530832738017790375359459179255069441574103901591063381081477595045043200261714211333192567829706251707390611090236236790697035977366814983701174332571012434776969352865045071142767669089811486214740761044327257733314561071138208566812714380767267584437110365487842675398068893666578628092515639608858834412876853100044845267375565179568162440885102175256690702054405052268622880930441241666573940538790982813417003685237943087273472517177066664196480187959076970565856779110455507584635508670291060071249411470988857310192192832242806844397895549076521757920062375068057418229245940677738167271598767936497915915721990623483852453311866984681522839046387227577806154694714808682872156318354837293453974320085912357216122358886101791914061645797556354965586595639866409444835367787425081390358135206293373241735744594659148914707259122368420750216850675677169077315222896617561452557502354330067765887658478944789533915788644691438525046219475970872668480787915600141881183386916406693180339039563354802073571663855719294949372077910309334400307640701855021676914400552455284226050189538939507550752260033115517367662517419306003119423171159093107744723872942388549683570979695996166010128135655999842415506709967032209427605633542148741828338686116943274536048790087278260052559174504269621523990775228995365076539405359793743511902150730866547032564280374100351083962305273082431257141875007994873016635162212295534674219500697105137308187172649893676456115161021324398951051703494637311096056840879828985028353553677082636649786774155612008208713201645010917887541963120856600325419710219176028410029397744454466161619483146286139261600338388025015433562228448957953112744780015984534150440369978727351154347567723090014347988471882903233464929183054167455447577522288979989545176507953450902577683693125918268668680874346716064456085673531713660036457962792770573958332772919502388381901865270140765664038039070944546255668426296533365243364596443444222732211104456696687781428290646367440617780842868971270269345899483871746409740447956010539494929361954118245266407757959998703984008823207216037362994317832559281003126083092564516078725265187334713617294170873640256915719076719628246878221557560985261715978240313698643067491473531268855508556385943085049473114982626589795129222205926420031597644500159160215441132030960177673686808650810493597688785814036026998275982076482499856063938912253141599120759346231152637347996559307549286713637291188071323961001710510440641559841436512641772522436983167185942989419559695861956035523243937764741581901588669426446934047778011292308137275905810690843075613195905121090109222535761168480640547772949773907280642964877510442804547446843185172368578847384893821445612767142687108018353444784931590656966623209080853582320418688834289295228173206764914645579393248263146139144364151221858538410933099199746676257255643685747273433795166646590596827074313227683868525853596163585624319615172578271466570865772316528638004744245304400911670071977304141557923291493402071300437950048846529173734989563150830710206113775566415137712243519073859735617353676442623079708023402948941136057217263385389168080138826265001675932887752690085647792663559397670186751749511375416440842492935442264784116351723843506266060682028330984067591751581911959743404174496127391180103133203157396230835665107266686866830344471132129625721520205133479721260350972272928361418539253445478282562906766944233622517416427241096436906698550951113924288598219084091317330539703365419197385999755434382704713969991643382144161796676502613695430335631158989880997805316032265181495875384746722713753302489282357146745635777291595205320962272066424010816309968336698174818687712895981191071046445150372697270802179490931825594129804539358379109184647287385533488507232429375478748848137222966704289178515851009163741675683825738142173176754324082682556249501764880964733196654726647223047316238422000813333980677744780276476258868808455689804147365476107362417341633905927279645521444811038693985682897624992340367265834391802522683869368830611402128233640402226451126409289289417499556177424937003956846469245223709775270109212229021739085677219372868814764651545345022189413748314433753845181744129883496744126049618220150973602559653481574736027884807258122921256993065434590807210387088450435571044240177231247547117292303937340549093077998336626403513966486685758086345855514221243269859245794678330637599341996622015776279587323088689963611542153797368810452287845528034674388411515489813792930980543238609907636414261922509546834096527654274449241479013237938852686518138641510206576555859400695715812203710347340307146170197453207838498772449169814356197538337888461729620214315482485269805808805573804997670269531905706699676088363314294778576151653522252563881538496262218860334882352457735381480563514599607232744452931926661843614499909066634525098977775066637561063507394148150760431939365446639081644453502766275940564771395262204197088731923290231469683409884668700239795645030798723316508885363932713485521865125555493762188869282759257363079133531077135133669353084744959095994237303424555305179046235841151484983535354130301098018657244641128773777535467121789497430456741825315651591174715281259617881373938201410092371122568938196662392567494338741114948903461547520550960607110533893643274490213836583014337196804517863156214857330203390018156576065663496396837663397433751438697646337757019856738848150522981406459596711054166036252977657717921222370172222090198758966620888529245809338426546112703622182902015326756955811310143502540283410454735177285409851760567306987373678107634330570203994722253335475235612146522150649335072937522675326373411471554145090417146273244196161030081335848029242673708301981712152025873855161896509179558766130561965525198623746130752492415168041398574008649292879313325626652383362818813525165357063023303504237655702623901494012123013044608375002523441875448329633144936101320301834633654603130011378030411203421319121083269284365481994975906615084738727594632385367071076698581976299053644101517792482777664131607625257711936315867799437048516309771313318226274012010418523108792200596353211560662716289334978160786319693530831415209041358334374222502846552062649770503910269194963459603557500558608341354313309274217339860259226614980665416036935868080386691012540061017919795564951966114677644284683341202797946709655117279158602980470448803569085307150580865966857368681591439510037821970133230288290187892248375335789751566871528796949225054703830782845601698080608993211340727279612828443081834015499533307040010816461255822007553496882842943851627000453479345662267481527175694006784348690648224891851204535420780517108557561416069944452249409564065699864150955365890008770554009361870479908032351878233762665841798919882922899909266536534579920337789936533383544924854171457596296635905702767585079216673746586686161080839016693557548628579558505174250017873382516944719268842959897100053636317457574155893903898325579989649011521479467925995780631956400462643009516124165996439317360603344780883241121545378615554223742709469243589461524798707142831360454539208909910661217351421819125436477180146253204717825017245709125466164133783878503955915280140828302531785636189210472839831812009918185046271846089146843920783319523606932427276870865650404645478797146602786391113162705975418746371904636602181487381507161751238035568037654050796841518265356505604564574331441272891319344226845326406126276757611921042257090408732710178434232555247381299975793880233501807675273454261065103200181431770163880836350913244542090449713609118511038630338887257974857186904652594115701775092386166570743896283017749007267433886793814083326741476208951456716417596188720607001654283970606150214996186020557794351110087404816040645343243842276092861185193411975809841508829435041366559304353578417480506567576427788278843379644560316575502608109571133177679983882290786690534282339726664405439719869337936311892776076575530058229968477471901963255698644257370920526257738008701461905796820956860091944949324628765508793532010479283135116829839194203799922476605867547546441316778399494366340768900569835894314244075226756978885896791684135148188731197908666438854355585454797913473079513141525955452107747416803689560433638344703193221727356124894681252436116340097725657545726318724676248786542875492196955597116164873674565276803142666499117698171675520298260924323100569506932895653602581428892588665164896853226780225475148723915479256419263729132176785985918163534867661025905332429656695419426847371335113411850935687225303953913083575015685869200020498566158907168177296549205389582081004032230636613708107211214876186029242740344890001826127467107372786464244498779047261934007327926361487316986366790803907757854785848843629526531259589447532778943922704037357971476991948485154201514468941660334936331468674400656191316002828228340239683936288384636254497556321809091151209803937891178362851007628153830234839378895203897892111880495704540919724326681987940127414934113658332025444462706837217496424075846581703100809263000685101473246372412904049085400344939846288441164430720769757038836715360895603396185215590271413515450959522067570353220717866020288470472320444050860062945989582935113469338360466267801258974252499881875896031533585013474335454558302363509129194224910637186932055553690735516014072076508690644357785653974889244336405647972310530452338410062010578501777622554245664082311884091563041796294298737808500883232677404064581580125685065441976275484170308529446734963453948819401911108158193588255249955861161907600445128039344192518885547035246762323165107885664656204192485866695017901568056310887661391795502332093820093103899285001916905273598260092224651642137186125406844354974163722382817609670075155642544115558525715697498773000276457202929089284732185194427011620265889401691060592518426312647127052799217627195073056689097438429868465311969197367000888278778231878988598144751440395020602786900061331321646315940631549024487591554165007445444723769122451572649922523156960473409218490489676122087907860893054662218640846258509832868497307715306002950843746433829812911494139778455559692912815305687063192764412918775636865405998384727308663939198624164731840682617314800085563053172192346530932539294083273008817624392000437240170453257898974066481648170601445791153025946738897806691040538459269981705235596805014535939629263438577288564522449124340201374309940884634717383788584339517871546266298787409421793850048753724172003430485825978406139819565791899575215468872399119532393031501189274720707659087811690045941762985850818761310991445613973833537631918938239085917803090960278700294176695095752562230446490643818725932466208850441159952148194904969694284107688561540936254949917796635445342861233964663264883272932526800763327939449821107404417901781106532186676240562388364284194884992103978232146359607942628299969987255160916298244513151640395203004058661084526552878688163428110134948204644287019991208878044092151339703456814901676463509075609392126251839117204609298871371111073529204238837351823542043907475902833699082025699818018307874026379363156116873798285373672595136673809807854647345495539285335811243135511779608144286708531385261089401610707146808662362479586859455102939000228069207155103674754091088395475433968692834211594658412077816290502334170364448640663150512200646006199033798416590730141134715212392015965685932487620568848564154421801507496165689893953089274347127470985560047894943508937148486107620302646195334021792609518417023489539917352921179072478379560811817087572217808977915276919219801845856263322023630721238693452857475772154832183567362642661979727281271141219915639427473694831309115480964281768443269557662775212469609642978302846479058692891944977336180947257910730501056124734550464930749043232978858981552354537538308258550393060904566929009249169557272745941825537085542248106993991774975860273402546102562587987329212241862287343744076186184486594815607231840564360469931331314018609352298969569243539257280945668833096251205365740225633292564861301111763626114929418578368533029555145504053153756501161914924182681925683622003421062380943508302654862118755084977113231543422736204410813041286309820823101961598434618838996115668965659888327822824369574171142552105513177842948251911946498373924472480153736126616767837486236085592783836277779152320302094020958734885260320828828474427440205847692027160995129338086947862999375536061633215416391298208284350718202676123095134217055017648587182873821748676432959872018446829631309984904332890791245214691862662908908010482040217180616646672134669468964094145553391023533419477663663818115190750017791921203241365106528774146470494495170341064364808158738453089477987302233140028430824354901529146942350894582084493108443151805157133353943424956135440640291991000297228678941156160556245718212378389477482854194039262158263033862960811437909246333641706972287074832461571233365259341492303489522377764019175414678356233154175688655656244865523007481948089755063493391431994665935408980252415595938111703693693944533922824345119973666360264676613591224690528330492798233171017712698079939140750660513037987296689766517119378661343629771212415317689335808395758699317341233710656381721812776931289252701821382936408057444031018074658738481838998777851276003701545889354857821057635146591735283434328653186066720662324298568536796340715860915415338836131479511186371240861844757736380154752460273519102506721979837060776261357821254087060837792365300021317912557936027688446445769795446652708537102182935171503076511048790536218549254348486368905767958794520641588925968968141004801364726961731221136794417006781495058219142243715336554902616623003737324459094506273815014646150217115258973359315322144292491869975459901043283398337067465573564059073816506151649191927923678476250706657879251981794586267390164913025713427288655892046075322745580683751627031244855997019316681390943071585575086784418873198236166288558837932467623772206593579646446744294385034428799072274600914000820081312170692553241350735398733774678847983929700257491404536536651976490740905309095421399388403231577469339305734669728071320443873391939537867425678208841720197756143798118662280365740365810118921406283847702152275616293872018042302864545522073910917278817653553451185548095457205104515476583203002492629953050572247315253414707814043246345804909040161517738450390246940374146821624982664721985966446990100637112105210095309310866016389545732830673260263918160445096958448367418761382399795124294050354995015942015133725658322730102929116560257962306146319241349950406507142147510003189986442515344967152985273353247606859288191023553226568361091287367949736918780767733350294122268972307224488780285263419659011814650836784232399396686900686787710679547979160199406885097462355663561711380301704834118378751929405912665981565047478086117904195326093169364022666385174832028377602786884743758131440725897027968609484086832526691931953423518337887959052723170024585395828286170155179017172190441765829425408400217504687709923467375139385443099140720659321594744632036404235814329104577436011330492538984166721081741372566322890699023281522770031815542542497510591663097625546512385924069968823263040436286559601004571522206813560614992378260097758485661057468190040654348752066332556066546897355113683214813511404432184974191826951426962492348457392445613041089179946267614083561382771940832367366155715827989837571165050847228510133654703363212564296803678054746406049936208483762402090299635011995730638383867281058167117935458786010849631489355399045969838350595210503722106404581601156099537353614708582173235814132524690726432900077252638601593384275651402180804595264612752540538028070813680327274693175070346356582967358788941886497876091802274414086341347521358593111386152857154859620250233908430827947751456817669206525051929236738595558229743679096176751948777774335240556315955486607382433477396107274196493687557884375509056821216463187047949228556248828506593748670408574166447517232425103277742337898258226094530152635350014836832410265432347307714813427128158730899925131280577447216788052351158983804386850131163730349551733042384988747939792340804768766203286481765024523100963762590121238082527995420081247956726442131963891852719368788560043277952151158298999349696773832366500348952053154239546367994186636219635689665612508272146471399600824860221507007459013408437798679106111548482611210431584996472087332053622686316697330682494131325554408539018363821403576277508694340696197568676894594919956946699838136874961792701250606117426455595583096755424620009394689728135396970455189518342785300159743104665915855396061159669055179374195048882413336383793172117713553188170233754862688667634711260128088022889790196430775972404107211221085970485126664461836360264008105175943429565757141149309922944465711511841424851113705566779105046574835026871794601084991734349106374758687834082934027441523817575261311618119694312362058138977492969220263006401199217307559588280531097312491275107481810371080806196975221478881335213980251420222417363986490510698649758487208186381067127414372786956206887390119860911382068260495605333693774516564411122186971826719185999984547964960850369440026451726547625290461760477671374861495787778229174442682642722478631979324053656752453069237882945095474511730998749985630027719114252099124290350814401433998116253825202097700343794138914318610535831140504565715319050702536907708581216036083636606065862786314464703487291006682639602553922037877019809693435303915542913738387012593789888273664524811171798248084716230818906990686897577127162287879334904016366367171648373867644104534407428917647896624574604260814163463863149674721930288981111695966676835412705235973356112249816281510791795956201407812428933481010640268408755455011877364578891023285274502345856324765351560300956944678360616726753032757128130628597451196532580931038917377576790517458206943513887699033949132560999297735650239435109384051461685556896958068379404508615889250525834779620701275853019974943717828870435022633685391941176246035183403204416174205509599458477678068579215570515834192198914236178571917677434096638439689724507674327286420757524214406611168095314899206546555878312107751557562568767928452192821065982730607485686277737783284836883779070164122631931547528243338049499803204179908546986678284130651022334981058113236275779284774309885231108062374901176102352794117752106478025959746922850023444580866727634924102081349280745493592628555486886515621426606687869337516049703073461389294581480174085418192177045057655274086360019369941504360168329653743582768893474750816793494877048397058466494738745367075870784651806017084596597984996453959781221669098930116647162466205919958377147968049160729518446199360233699231259454534848543046847345934902600516293319218938659280671440154745799508459847074214416975134470455433419827716656683641535598261374817184779882859282462557305085900890232350770038278631905135223181298101712844250139628867829337823797528289281002050015354992040332921744831131964005796008059010063675573878455528789759004532898386362768032893718289797433662758602371266016993421087923540043820303777247389401769826918420277639987408555886755444378821562073235189870400922460563037267401226528729430313486795510090215188877036640076022731404891035293958615676789924048677442753795024826605108364190218075416482027753295557233494083144178444243472140419631590448843702629325702248284361092990324738196068653468088238880713183920082156784043644590745133395915999803111136429372948142953635641841247976511840650798149751109053790805813657792901006302121790289581226242838560444223196625782864659112660258959551587771008179336066317885831257270811800439820635997824934236239513433271317160492095855420595521982684708318921383653138075072356281607729418434157961867353713007659415349772243343304233764648408081580202156010657682769339254970162074568978269826286017352356537353013580452047858812756007549654938330937417721506767526558069199517013601290612680842151269364441798593325705423531486083261865699149779063890938283097638258207488385061910295740607064675555102858204617824204124039824876357852477256088245543714250126632522113355491242623183960159466544005067958506585572268410047913439501333248752151035116501462704058004926031409413696687076098952567215899225884269325384949525134727044078344497819454676714739812461612573880581654210748966270519808408345539341247448968801153936574364492512424021931578385213860057493446562449078686677425760085829076902861864620361533141681223345263302064674503664589160873646610794565593351410791675029091830492285960574778124171622558819957974017162499418521999113277420747027556632858725989804820940260708754221910600517516955990013178504768590752805411682039348839308629554720761803471180156068243495330182000885924594622429302333895422362909291747450981978140159574940706539919605402229682025657891912127579026558329732708492488389465472453045652294976410938195606689639561955926311082069672191212955698501676416972622510102989328840604190100633181412997462812686357293475548477583687201880426523926704415657122621992033580172358598033645235541567432874129329721389119482523803315500085559616720272352979061436810128580058156388422403094580241816769899203326855418327900680092725030416663673914252303322931950288376341427892352863643269802777610494521500624193482426141027261113015569664074700423611455073890820395538880661679717367365837789778580592407035748388095531090012904434114476146565391121209296423958711591052750770099690391254513154364838280003946001821933558173170592221548819163996312790626043888123982303109051327309306534188328041368399384196901034133217351876090911256786748460334058156386053938923581324827045063619308178621633340471880202243530637767286438164685392392996521318761930805797427564862177384006550286392121385151189265969475548899957291796902832063780356163163153071808394885691465810845249708182415344907740313184533804464385645076066678001642737987923504640571578427052967338191268384492788687199397582213528366712617282620717078419621843036335778009788233526650055301364769461524531925867711624705427472855119582969069489895124838345958497185092135418145050455993208963566959148246073549444578234277016675520411772623821266714995968164855269610836761213065046135158551242678579088113804828939169593945386403328252684957163588113000182449307496263440784344182538264669390205672499002655266976755159477806233431170708447009096881818582280621535711996551281207836408912005773501962767743490333710832927584899885823635811214127745134296508419227747862335568378700443884328759313353982442315554046196281840506557052090952127394271999994492754825036847628765020697473043870995733014901919492304850001900514080686312083166004079230560346244612650174958557320528705644746572912831023508045091250872481769223174165987892916784544564007913779056677710631909966667998580619494088283194012673452354769320050527794656126341469618786276706255954704466330639499506313518844669758534520009876956588107893122202091505414372988427667678023849843997560840742532147402869503515700807501996055387987292090401017383682916573713091390591868485408739844822314861679391474982944957020719728652684202534824143939923827246057724671291436649049482898558976300760085243365058151836290411082519495445863651160624320946118894784460107305536180949677060997093002922606323925286377110508691299408962951924699218220130624950422770464931359726405135183761261390651025216115157840830682474354566871129360128909321691134969715609307736256683160298934005862193045302732731895685324404723684993704248981704431922485387183454906240437109334062915725470863295665273470665073711482862240896085061342265608368818337956105387706117875819531957302402394801713910706522649382858935108830002178276014864642019456146241668459734843110128968594614632026351392388295098290912240699117861052298680486671123535114180021757056737346360801929432514716443296012330921074729163934161339632972917667282026352766259315944278754525214001973144558526973390626509790869689876528836551432235685266271578599043998407271484940866569666661434250320502635054538435828983250582904460196996593261162787642417634713217981940771093738005659373495068864304883475875942367456688711037886850369588856342613471982747740980264940517720210546927929664141553561103903065563079334094859098572382228451615361534587797358331863669719925346425355504265015980823720879900210594824943422589038786984280439154188700916276940363576905070781910529507034178981519621933995292561309922522145333329413202742401937675957859754138082804152166454999690761955124145659811632225955806687328355180163248055498728429792143736285466543170950082501446547673439584912549083329674798651846458760564675925563641474421310788873550657795209424954506370654086144944248094542328536467638347715963826409019741753773012497945910395157679929141852649652132657492416224824979259674953574429386823194851386353223226100482765674359017286580334352116400848931873367044855369516048223708674070892880195518751145070157681775923398191977403316857558419456542369440555210160742889340519892167012801334482088184355221822268330735207219577790273975951295447636071390508580498108590326521194012629615170768257825801607487123636147307524349901127333805324759234343177952607790365430669259245303206939075298610833346008413987933552626191007109163941863111589232490361002669644395141821122844445517792481740608182800872081479807342207594080843857126530119381757707616346022836568591380212434378765979268362552719495326572956195096119222104650199523874716179303354075748772249071011879445008251187114104787119563126596257751645356920179050431393363510752383910344586821057506818933342517617249807718149732569851185861140964048571958185625281210440491023973005266932027316993392226995149294686965204955279887372307583766884177691095446970393851235859808893231766048666008033398297029568348904552191919462976310014835123012041026335863269994660397863225906967451801800376598648086739563948584909750740582971887564088624764635373063024305607602955757253269916430074246808270012141751872805035583145359852080338788904558681146865117108919676676543969572767304115391129912091186224230210915434547916550228047122261188917357800562094866416998837866216047397137710614124102938249971002108787555827409177405995891816604625153622838001648205637785685191660440172138990195920030930641023295036392911910104020682517391288394812225595927951628737684930563639463734046915682556319487174467576924031846476282395501796341098611114328590652881100729669668495610982083060920420636145310018262736233634332631321338150395055800747295630579236611550783191396725151981740626336010515595071056732996640249103292312954045975195370553258745828520854181703766082503888136979645825267972889524664483711013331429345805886707642656968901405719633284725276451290132640504792872822302047433374487768757479609248005594366034774636722134123847737066155584022841888025077545533562521442642490613321050946073605942884534181528945571004984520526767840736498527176994815694603612987589243475090961869649695676204254359838170672389497497814930095150559923062162928093012508564960339627893722966519689677446171960552136759714381388186129098999668740912245591162261787130708865584600233772433641146731459427375770314637965047080138654784898147445888484307258785988357074087178653024908309700636381667382495800976906880650076738975399258273844426483540518338998784627943956105511694826848061040071338562224418234858056010129834467292229571418336746560718809024497090712041783028607671311215872271915474471365728664570113868180402133708861818029295531166720154163999532927249034890311463994176682289078791606995263268042298692369152038335039364711964525015393322587355674038155239077640863678177101671852826747830446678271268737828095018686380153211278873591648318908747063843975257396538021302460912972790213316651747313401245791047261182887068194102653152593638425890615620212263721731145026412764067643794270149088573145023417758521590987643240906655066899839912465995245451604232974454092723618693189127317452045093271072239437343955977325882802759364458635098102085093584604070942462769194194282718219339223873393328181121245507315215763220082385763508901343345679526662130344880650438058036043367567942955587827475819088527332726018864148854608558066333512262746465654421054818519213069814696355026138009031360235030519366168618925288522848560515097449626666766689035047343661873753627422361470478362460041449449728557949161424899563252766489286204541874489839044272811033154160825530906644366182137980391699782632903636730697691799442056314656550942657746962120137412098253208438494982542122824548574325332280216998257295610690562561675342123431120699093794363216014049609927782099199918633325962009596386215849469092366813115605298446202735965860524000613256022111931792922735422842078448244320525598752838648041247069352058382676701574595050947972869994539462501448220643218549613907972768484954001752614261065016640849299213200027374037196750111431051068542021150197930184450567803624518664255541692357103341496106862501429464885947457267910013420204701760862639606576836221664999471426069174363730009450379194089793477778644601367935142906177002214208495684223319890844002871089473961074235799890611534035588868317172751394477982208466581546573502809736025249090042237448308684655129959416529925888429141410329145314380369824648552866426072004666437425979942311668368453584568645852602820841041127549386570321625192494690332941510410960111834085775730198137690836643078889416202561961912217603348851539708514875390685218398222975000557789356233203527360277447094603465817449684526830226454421305700627730127878246497525535431620914914342819543934532048789893797659665857136811141487321538771450320147951296489756843199035831511320349858269604678152178990180062959611506635206121116023187663558427216364112730553009397282565622138817692082102260625716873157623980224616321625221826224687236836811158234317380760368434519392004574492498644014037808588133739481193132872759471699119485683862886477199097298778190065525952180095149567475316368897268711963294425369804655439942516476696595385953862745319116939439549183575280515695400959069711303515639917529408986147366821569640268343063779868135290079050410249224834817741949946567153915726038719727017725589059299559142437449056861425505266068996872363005101093069372119273147639930018312190259854662030238143475589191447423802778680723020716064053730521327717434694916380547501441179630885795619187451542518522960796935567225473444495733310538067356084796694743881465075350657814203832864860831383299899142557595857278793426562886371824749723531059195696242725978760218035054631626709768927309269395723973134419422875016041393035613204794904611169702766422616308146118988712360178782384319112099875075744962625730422044977445667745575182253379920095156463398925900217496601989476251596812916387442290453564102171424475306800033284115332517377467298875694932623082948073758459843759645154304776108141542028850220605157738511539272708640485841266118539443437127739081344976615610344722903348526471067514713574664038381314533930812095105066135676262869305004449165724494850673987119008392411648558237226820727550088403041257327512504885298204541609788492207927171243256558190261670624794579927882410980006467673205566308539582763840909247764636809765351981113616683127325855367018454078521066502602019367026102870632623940252146098636800135001946887056908121613155417024174523343511754864626134192207931896072875024405577500706189159782202810021497569958810515211081101392795794719922990844368292749041169494605734964513452175898094200333462462986065556428970777469585371028559273357408738840274267933232578596694680390960834972481492887246086500670963285124840674371703102192503528282952204645995357240909003268728791968580396199797267279954265657370694306227321698947188456745553010346061719364550110123340068173405184765430554162057899547495773280729197056612644202644317254977625447072254123042066638539318413477244387976608016411751903093148118406080902067346688206569433940441901311652860828372798394252972054248841417292439219029708990996074888139480054260222753319671041837545566844978603684561083873185851673996619727830300465620483796360573355654131673892709381928274290267608008851862357898235362223359651514658781116621145891703547037068541867605084567917616144542335136590468435799561795181550340403641260789882571222098166846786502933497795051668293789136150420864586380496920351179340119733690796417689301237152766270792814776530828878041145681387533627908269936811071069786979202361140919878870148529668391663657343525581012254398061100767457421802337461456400250117455459057027221577802276466614407235176377611109764006631385389123309547028246094260430179829785867639115894924003087452821587258368337068760839799270577890449791846377787373274344398010849712154056864933856069911102904337268992026211716443137053320611247057647628221731475996679963122761123494097249079884892857660297401275526091328890530913518304667582841908738430059695604496663376067961181296464055530517019429557553439891937971136016168688038588028899209273682250749519472053392349031089878551372671232601439986198937816302920712831025891574884323358216807395037392859610510440874325829924708345417187955666121288988452916325659506487180725248580173867262228886009019390369561168376574054969161530312798959622683084855075821886674899343473216557579566370096957730431754999678522221314013118065370057300095727292443147369858883706983489229324035684013211160650378835389786960414960434618522611913098772358259634143689419040463040265813521263355062415020322857575304148381848124046001091600245029763823613874794618761898608722004312916403543831139668222191644151299487264555576389971076547583271547764385877359341243897644846138632417625192968797459540837734002972685257996211503122561589413893956452550917763218605608334009428561182261714461095903659769817460100178782234294825918877084693428150191586582964244248771646893104561000346815623890695592857354017337631289854779974765074061280744181011367793543451371236198587669499687470035253590162356138423535615118983351758948472834507459450621770441699294056849277198323456669340375776769164207311650405201236851791761765715143348133196040388230819920958063665294047148710183031003305280679366284655255552652899877779784643009164331359691168058365717144866472166679420578450540171351995691747684758963708192730136266791080591771611892233762888245782875138887315071755463601216475225308417458725403652074498606987140915513955265660149141519474359580531144489106057083842221294175204148955892312657126269031359812743259924494920913499164901599228863271418339976514464658024234439757449671021479433691705020330136933558249079201362555675364261068488305950715510715339600781285247772373835189942424381092252716515211336247615531426219912715388601817146675722797936643112799650360893723289566642416583920010905348883948823039881522349151809980495196236678712576418668190376627676551463444219542715515588281903958185658001305637738930638836547734538101302478445136846990514243083138652339829897391847489103831721096277397894294372243214779546283027167299618415077912683592860695438991266366136795642489376364137420315557367621712406390552510071699614472129648479927274163539692140338493723591783468944900652447645764257561806552883125090029335105365286179540035358319559254714759268953249297295295641669530142765068808850635896965150010448327632074542314362581359245299398520025383674804553785696383294752585815025079407321585224004153236344341753421185825419987824332724312575518719679758815544689831772895569837490443385804937084311179698079564739953992520138952719235342178947975497473128544284948645058634913304448229471518205104567018439598340455205980438167816135787983696443176644926383505937557802075470881490429400378706982198251879305363914565784087220834844746743024978195584741474220694735868991902748463641043750695039620718690318959010629902660814632765622102236307708440529362347074640452318686919360867801939913396952129904592944748307889133686004655550248520155777167380000083470127496428292541042862703167211071275482236175470892754461907074117075359981781384775265444859316303925464811527599985900824280616242709195103821381231935236453636850216847572163102973534567443908573529166362430104410038390713712554610144887908402142305448301103865690245616176649664333386100436021396568399619147578357513088817554091378715480644470060212499268676511937311883872392555804900685373842808855654663469083416120757484597186218947085957236595283161646278141084668075351222362925792915193282382295546148819148376505763880819254165301333300856358630664962871499460399377843464555777409206963236731370443935337062910673037936319678329490713313754839761075942471548420654013466170729758612990952233519492222881800767259504900347315654946239626476812564272004981018233220031000792330880998726510946314492931727310830222402125186151811415969681986688789743159852840250757647390468987542231683520449086833696118304390001367499169034792804077126864930539472379629050214996437377092844595392901279855029931747692356526336469406276243920822998499944065120095336582809954326865822217699905583254746262254320806688386845201375172286496332137390974472292004021820616304116954554368643535191872273905318025680638725424098716403477281193556450225079646192380541855868196294460874564733280663763754308741718096962889240742579813677402197908288117029724996954548622611864693883427570971666438780908040409680259297636605594392350050346425523458203271036481812956859235685421171690633502635534932911325600014241074690194662664857760727241654865728960735244387798097273545581456441509397374154107637280431200160245936840206939776627026488046682828797961741624535895407334685127466262117476805069941762401083706470556355997854671142546157114655163307241759616751834760998074035505593149847681612565110762736402444410518737859546552822129222821809260921296677542530487685597918497353750125811933312150584462282617720981280830256427617332868152612156831531848699974111285934418799436766991032043681334584349827097698913744293643247996475613819350535165825586231281071334590373233685927097957341240585640802981214726675946304271423838232555655104325915472119482186793890400956594723711747043962465297968049215234402646465604367400794817754656638224794383362722373958715383317908564392967392811698862483093045921076845650589455201680293613527333442822667906659290214068650484679628193970745683236004601321088171155338342381182449904794615049560456391818245049748836924673143904094524929681414336134704334472742016487700979618334741561629545951794179465257577514076414643387784801864228925554906877163480436523811749795478275558896227790284539777611217285606282771419525766361688579415854349789337670568294860590741968568322940800764986508458687933991177886917995486030475907548077416185240864593719484881666090724569929194424427045279934883855914943273536636679977566366226365131307648446120804210771354227539588631833223228996437257527291183539253331095519906553701743955062981343825425471486976301584267295101859541352660237740615407267938600077368609032204862719062378291590658611686932568195238923452245376107226581772465921030036400410293033064686230321224811577683488057971321627566517917317986235587896984204474430850194627631149411672079446955384849554564223123776770656049730642414701804771511428085172846418686326956760089107449382780300218721230569116168734130925688492524724034183999199776570327972291616012323991679718519725436084554135396276063154123945757028930810870753975854576666671834538608335970412985897011036762623901051606907871063449052621671668803216029545905708100494760758043998972292308450783431964783725644809426265734177323807447772312959014350054853799585676083063159838980276650249566168457423533207705128911741226261791120292167970078729537156889406844785056026771895408933616466706774824220037461911572720016173789219208462031580246929368842723451897077905553962599543285493261344314000126099527635666710430157146789559236413327618092376611151178257134770081366571657863410589410862507885738586774188189152924859916645317362704646160066146893177564953093400243020628057062448470277509281262478824652286482192253767944103943684663686445903653463689545309917556127815998330353750100684550610070819592106762607720761159924202542728147824261268912859117425908060520915516463258927628779244174523100689669310090826917250154469743238229239327369978686328496472258331248647092378285243338327107039401193683450773156157534558626076065821734515293033235473443858443577228232712479549294236763289965286020986647182453495873496243629164273956330745134818560772134475853519987559580756335023036246494504112874418852995537688954959492866122265658842962890710438883288498485355767210276604764092115106544587566675694489849312453015979111837061753736865680551689210747334073639515403089432582598950302375270390654167976252429566560741564335379728539760167091842896039487196613322852094947863725912707972925851894432494799985121264099465904270671113914135668973593598034404510287708802522523660972088483742809141222995515891134679454846127146056747155120536241335567309730139252618907066376275736056395946618177037580195286809129349171713625452737036578474792745465752422076886458312289148794322660329159981620257189869787467716457986644851432626077671462099336915149892486833388985901027097875051926966845250765923829135879533047053675095618978351838554583551987959539023497986928574341788644033401697138013524117972687648720820461761359853084370421200108227081151499743205833954440447584491144880270817485930620784946518978921684918947447092142930264493246876615020488953117192074187696543778833489507381217589313293285884776885911451068901535160714835265641070277202776080323689949521627379940087928701294945973526373564654608794081469567016781725307162588823777669552617268111828810507128340483950644365689638521149894856733913425768289538608236359496842808186145738842643689208524778404869182733347393257987049544270194239386418983557105831041307820652838001022952454586369232791987937240959757238026909339317016220765424586766465678142578885396332475469683966757653601409149043844080386552253910062138725668486625726477309201053081509240727581221823725811591481429927721423579406764676822975573278198365301632156779471234429758818422255844783626873603786361175875566048039241634007011799957028057077469652536042412058589039075581861586037005018238988007323011720953562349041196826101577427796402153026228009747531106832279014420667165362139460130724837283826014591180544525425861073678010719254887251914863690388827887476446148266428235282004967833943165795948644920231636539994028374515078609370873752796746823762308951753719629712943071716998057268753949392327557795566625310551983858942688199556179906902203414840728590044003006882205763717485761483159630740003178706100715881957139034485346622673351129470325736698397678857613920253828208128576018916574737205619056487352082186350315207908529775443674345751927913895945714907804460784968336764051415029901466014196820410011322494730050313960064364979060747226755917997491577126013290822904752483932799664677818475026372387288318898637892387926694799924659306385152336086977517359454284329044708411941634286153599795077660482707555375935625098725289436142369365930630996495758875552936625290332310010836214741073886149422715196307334322778185790312159113640140697440797470113534292220592781024080870976122699668277070187312064124977944844505988484673884093277804249064724449355328458085914265955631301878170084234527697203069849727131162359450923725889316520908057971074585845055632466599823789485893500146821880526945160668809873759538173579170706105699580754954466289544536902315569273226724729458940355807484051828333504478134793829639486656129893538248838510838026551027193525873388527042701650235362393865395704405493307966482771453826754883926003449483873578716917761778262805049898713432527569272755108685860725088961832816627203546588479241084063038306249292467660015194655138038290068172689629185094046449728451141411869235553188478218068040897780678819849293476387991921832212860192478466143770238768314943213922455926302403897734396575652911786617340740322040900978491897332924509843759388024981886217284474324153874471535263597320076320481922736211068228097602002108857161062597320832098112725596590872582626889762746407417879334294285994982950581826430101160306746735067972527689481941628864084692420628838275276059458040971360885633243983845216108334241603404385907453547869705558247679806884541569136683070221908865232894556897454998817980227828346860367311044867895594923389362292971110703753025818149350878081885239297081946108244365926487976067329693294823238130864438312858561602648191682581540302525130337678981587537528321756020511231335751291571787230630788930507302121865818322959820295797129292370288742122069813006481653525430841014580520311574959059461841810714140361926382732630270881396641442541102840404864672195020306355989518142149218510364083697530137176105710630345075211247394067954104943942882219342208366746266448728312098090107053507207289036273834274090286082866757729945346802092418293318209834797565943804247449652770013685663863418897279835048229870091624022339860726503913377800970299895203162103312963742071686027245038240117166479534574212249622784411992613729119090600238533128891711139463747062778663316186983174922752468933773467020272021070150982619277615139169517240081132107652226347260996705073661753004959860963625120122688055608488359451972057653852323636142073480900412076362951357231305644279153571576134685427518820755131603444322415602206176735436638771303435556075538912143910978012385159112056854343967108875139103991581514372611650892775762240261162666623127208343381108239896347330190073187254947599083979135358136838185834240793131991152442678503903804508356939085770355581833942654601908370232149911527131154489459496936422287208131980490975114708617733962803398176749368586837927576957624526381603669747754908747187077775546240749169127345933876278357937433573145213000380647908680442826825864683309006060280314284920986136968929887915873300456434502487083647001352455156188445087839266823295036946266843546606813489136637748291301315311205367688913009410619573866528784183279506878934486470826873680071175905953991373125994213853233357309103782747773493306953617882970036873116291266325440388118846710659322191495931203511412048939612323808858484602844928772223971414649821895795954579239260756165709374512668025360459127821221079265619001998567590083022673452106792791513428056910571584727927288114614768039187971439623469096218886351022213749515378772161446774584967427955229328195017799891022079908590979096309868819501455323964341598294790311622734388038459671658425523082649414455398998025740326222902116165337430407889935008896844121988849989674452836382945829855903744706044376694779578498389480030268914953640194939629744544586193234341685583800913151612572592476860755732459924830262250424541535981931649645771681158734095415805393244915545511574320720276425691103813022249721047804614361953365093133017006187250094909104495249922266709260639466316396914395154480774417224956942827674625186711774763770830452555519159258261601707179273056416103301044495849254914983696319489513160202108725394292461613847204173642568021876032144691717642295544258301175695767335364276081336763182649384309367415408450481846613863172212471510633693421862672158779101592767598107653019973199037064041585709085220178696561723971483606186841509630760490442945795063269431507987661242177721551920178926607452786383167460893793508100384827199804900118069497984426875135468802733417274365886386443104836402523289000654300431452612971899787200528673053604180635768227772426958442398644426763480772305267035739503835665666405958470233720734160676448753158735138488261446432896596695565786081820863791918482677998008302156597127019340912448325270906252521946159703162649636080291784214818986517609529217269192920917301022387550194858601809885848671381931919603971593694588909810274738498659224710398492531250958627475712028409053884228730446451282359779860411370093511417225325947540354041897960805420449290140510107722984996954424743326672642379233159236077356893891856193971389153365491466456235348864529272109284978568742916265361120630843165950950547416242873692480548429528793942495296713163763477011212508821972177571857376827840517705010112348195997788755273896337004557306408451384901526995094792180335463259046535812986896585091378368529053473723336921264087144083786549407592905405086329942247169812525377171547449124752028789235328694137022026951283013124919997773011754211202422825724263447041217922645377736366865294144003502111723470769890129401293504490648790380538905946170105193665530215797486829796202837735050035550098297011874589956288206753339513051242546076023662968383432637976889959435029464277056905827173954869095179043893396403128159217622207297744608496887079126244011833283950051435623770892875632774116070396096375163542104241913051101512898729016264954165053767639999770799525007868476554654505739778987189146412258227630596386573043571763268779140783637685022205351978908873190393213809173274660263708717970265522314835217915721481155525204199733724700027319928177165441273727289712262758719296349788910983097637569960517428494713996714022427615420380825988603093640662129232594787968982833101316143095250640945737192907325825158938509091269966327289032973522334366626734827813410501538656212737123274537804753934745379815486565979739354500490907307700718859532089906036623242353545753678821245203443885839612684593325871399623294515948891793271318526510999516846951576925166177178991154401857253583294596061798020664336026808248062814860325613074602381560868133675396710927585124037657348727228883917241240863167246197239745334510369572289795074125405518514314675145520144672363113119407821907585817866814697991705550053621504860243983237863345667315237996292532433377743497142686608142747757666639486429576462430826578307548343123825588414433943971367510095827195283153418697061442423088852813867572908293749045947257410447134696314417411605363964865811728327495241828635893328787762585878150607200929815542285380575522848531943381873689646305240528579925111612845196583594571605414399719638075670028250922070853037952235742636167489522712034310678938941377301409301129787361127926088697982653027994662465064200730093108372161249377484879885363953932153303617896118900617828001326450088742991523896602679021358051555466394795138232912999435518925556804871913151137902177834899340689148443315500431752877911785565939366192686798417576095371576383095741546399656824962400727555055160350904862871086901154934729921443910124345945562870336443932734788300158433107543537591008831038607517420574172720848981775633009757168323761692979607086625412983180814145539364758314796157094664332058060000841610297964087908268826513926076199140963773191752857357923231953399732362153117397264345281897528630834238541124506549621830932315230492606374726098931425879887503847757105524869183379457477204270184295211831613046372014849894975558501404316361094289413510761717086190513268629037400926111462872746247541833141763482560342158475195699937493837764624658138856585197269810786438526601961728597771739748223181416779528988995893790992496824779724066140293940480960608129855872975360377073698005967107904912473163529170240473326015337089172329699130059627752340113052392713599317078630072508406793924690223432186687538900395196367589548840638077391088745197208500499142506842778674596603756160955309071655541030460422151868481190070043484746279293240635289805638519467803520513168339347774745960919929047776938664988835323469552715452449137745104390627951130397465455740450492930144867285398939828045691599816250749893233855888830689030822413961411432010266951494890623249831359642926517171495415390485177235068158927318567706214677849604340708811555906174863654393299317632767109785110768679310018029702146199737454595241255366066594522859866252859617232444262709742478212844147598648777039542657869480624195861707740967728058915269848762790222780747480952865486657581537272727248398092060944848023609251845754687362096454935185357683017498588579065449791206742822828066697689660351588122635791203700645552746667849031671157060875960819310251163694115076603264128960581342961585444323558673966417940873730587922861043770340781454244593391427166601803376774195422110392334072396887525826485179216418727326236473193051422343196023557408810876032792244988124985845191410158754800213877910916400560296614722713577615057065217518534113601176864274492283859666796266408650000745300742100250513368244821098113053780924624310147220404559748698591840451287366762318555226043694909105782221521937157214982791157221788813564987849862224655331002451803931626103705382047785692172862937950013154142098661783593202581594214975463896993474540058335608783241017012959267048794633278684923490416618454829940185766360454773273305457438620010136645402547778688388682293410681888154864527829883261040784102830782089911015174879881490297276691254805035140051061808125707165014260942729261041611568865740371623405094124180613902973435741774056653021486647309193316345327324783123909558040516308853183426445664591776864863545997966771730979916913857726157667900026362063383755755802904375850432184366912502537589189836128058012521767864411587832028131127626713983884264477239874300500290998366882220828541805276989673993295404798651134762486532203899498851137908983218556352276331996685691711730557545732879831633618339771147795777378464813969364534983566488229521488093374228654142672133353701353272667365742955381236408893953096401872569605060828639591204408856890142135545306112115134970860775792545651277528520994230844840466774699302659233382933342758302406230447107422010209966633813127656593893406870084036679673092136359506334989314147648181369277188154860322308258978124728047216780643460999247969205018881314942799564423463035070139663810750114152396293828070214481100928973370341609063401275493777775464666914174433429759010261368196459658503745354075560538297870850242242745774576905030045710300382465095374074197919269257721010354969961801664844214428470256193798919102501501819777127559086672983613841486229063814145046445356935237293664123442752183653876357359010327396548432761405589033569885425523171247060732268913814108792497006674681534568599754830262261663337348049012577216213215248074540156574039640616990988902454401242897053622458825821954162336368605332279980526824537898550307906882992048472888882392140126108262627679148902457098122347673732514289508995988736645743054844775398293270719085888240409738641382818985971275753078820955235545193406566057596373727840014879157867339249380458243949503406343239699085825946574244194634334773103454003311536994035368397934143181235670080550238441687583643856389346831775393549070999340060338807008448461733568540186048388589778703975054143346435832289056091965817491359464975035858973027504035715496925383966326599462915505294431070669954934591720607906478944448918514316841536816841555934694130350074854641785177087189000551667626812710910702643726353004873348161120944514234237791010461160445638852143686681760985341500889333274608077477903511261354952225378783323255383882806810879627282281026746667881313726941969889494762955955632050774620684067584387260831811964274641685086723639427441984492405922053979777841296096730358093615589196762925734355177834315466745693816777157459884627723517934400336777823589543602123654527688959325582969981041737928068945585854207692847280895155572394995166443684520572886899973209294825605778074929631875210516953754005647076642573839115830784100927196913779090114841351761092549374845198913931204199265492589034049358221961243182813907602540897783597485070960043285091843489764762358823049835531721849258264804325612404052239602662093514608217556344488335466865933416409900891698636853039931011537148184948031194956156179408194954454139542835493726654154638821976971451130278735136588475414204299168072120858758050600729020214685866838147455282925974695234734303662751579609265115823604125226147505902258012612110295290556526105761733193859546321634997469499222341840480428578365820350827159583276444000863653727347382034588651006949596861663936392015374841287968431800018447990382194867076047554733054692302700482578390845030436911846924219099840807623255882903842466018289251255492894515536833764746013348997494143977877260904581590351761997266039429772690312967708950925737332568316368899862020930159407237372379582915211160632655666914912784958015233542608699207220680824327880261028405173036019018170622977572052469034549366367192463318067400309404859397070220103010225450254176279448050195970171574593751217410818859259523224080603019985990836959487488999911010202537567142407074779296292025400652496485486681169079587883045951640888187670907497702869904655474693484219704930846085612139931937705262453878303523435124535474826757561766401668069227629122937906158310412298386522879452416357973839390314827760551270172119003928184525006325075121765562550560300989341896248677673760831158478149484813538367888129518696820391715869090139905468266417156801582011682690632681064406444868350516247854250984876965896434501743763041126038645696936432459414551949080099339362614063984958372387765019356200939244964237640749954949568663353239877815652919692669821969483728675348407081483096712358762715373910978380697720514825220894009726325785754473465748670774828177684632500084223907637348359462327217606630438968640375827982876285074779938330537722086918029330554206650205830733797725141207477317354577237051600614705553490379909309638702373571979653733963390214025368180023925973158601855922007573832255136390997590703464313658964322195386522826109145401728331420822222396955979145821740335252941684361077676092922613066270415360971845520978747366482631538740817575464362598966848676836830342082437214104493850104517426422049903193739071165737880478091820931350527561284797684954179896474315270307832290967254774044169134252942973413090402747029387275169782027994173153439519086607415381208789664800343481552047653947186586757777850287179528270730625893047168000879734762966625389402500599496163970844714477388549481610688781216453813367000570278918142971417118059537599864318097244736187436731193323361831762179009948351872580337385960807313499017138896965004933146441986406963972546788347996507422142646429863035985534246198524569058714198860328352446369897211499280768731261851410502999974766199781681763981904002560906350334246556062491183277085406313789002039350278217622530751837163504302595523966937204649260482037799163873846336565690136611265703082070858545538261622936977419068868082064968386056915327046830766769486826786696040260824202801300808690432013380686347835938411767750223093188536120010650316549164639468210576092891778493056733322491644480247744222297691766298905299799896380093840306646662641503023084424392121592949119952153266888613356351552712387788766224677842727425725473703542945765135257581557911333314764423547030785384809911745287386195563648769277660184254332684189175292753670596807718787527861625535740121444346474221248961758567709754919241714673561673579564451687662607066776261188948684196555576568744124255953561702754913177696264320167883649032782964537523463252758963961587048310996744735709346459580043909847054138912910857246249667318098595179255157450872535322460822250255813921739297731944472144187010723391864550026108997732244944753912269802950096440376292610202630415007114759336291395739231204448427135369106987201293294354252327443014043449413554195632944097472123349060965170042632994169446390037751982769514730006049906951796411134221386372986923147774521434225744005361501674324581047684094346142135982718561507926865206193706343263703412024157095151975072356627582836812762411562657953197374358525244758984760392102003354672652287882484892825624058557356789648187262029986794107096678372338176564720896437227613236904108045078546219886157043069449044077814118240026980734308520658621227407434691257456160299433453936653783286204917374404603656796233673651903430919406806849694381232634242381926447040538627824443599248601186328419744583353498330069906582556048098651015891486316340123097888095313022922219752239803909461654575206001536612013585774372807556002860359789714019678001677838239685692434677006379575843002554610456391980836023797617475685574656405020637825564076032654364201968958406436309196593026194640194008184587309235956952128531399599656637913944867815385328710280267181805686383302141030530129054015007307568119996676562169677537897161057574777986547480009142504355187349802824215862222254387325410913376764135776314925505454449704481680252713747130352128974264049946989584608876199092685974999414908520519498947764773982083507342152621985352471568093170667314825627800284859962250860802183596999143355138968849596595365367010191490354366023312132324368589312513269448276576178762712523233491935930188678634420358346728200754161782015074194460420483970083263097755478250319072984783134225984252701109248502220388767042605102885944978377439256852548687188832213357986864956739989565136664974117362930888399123167898527375284646039275721305866889846918831348486851014076783640527188888876275295264093557291098962656185336935273145965759858009549273942601761829397022417592700710188889239705297327034454831083963680737687137860095600673188798468054777870606234711236896806602661544792372887863312735100281874561053977130907932698582950195453840003546826920938304430551243134758396693627956277511096448651117509588329658464030593424276775678318794909112499497502458724735108224574827000502705126733855031763721042869267941041320555796683816739916571644858019027624354956365418129966479679725989109193753257219820709419147754234019267804906404580852378963115426941392011875891828239182439943867788285072299658105518334477841645390297002925824842837557770896890457291755431789653056782979721650816645523913353492806999593157302850193017542231726132110960913055212562012344105621898267851531041793288389242060384801938971762345753653848360828905420028905117629898217241797091514743674748845807119162338407485092141198731502854495752174343813850513817777698305220515860029347550312992897661246666359476151610839363520192491322156847547521011321297701529858432905434485170578021894771712334394516938397853577602415968567860899427275674846401857492045367389501220787202916361344751713605204101950625198915501003476903081639375954505009151439439591800832550815109558316219938131702400739485116710390091341789881281908513534872515663890285195891251483649217903067881693768615557615032072345638620701591373663030195288955243731313690850678583465771458006687557403984855266504981708403929611756863149408418408673202836314266246617499175498405211234485838797969322225503413891731063154436138750982236214051867207470855581376534046187405874898075826476552387632723175843002469216268291113456487121393619176955678907662943071932555521406875996053504249624676076542434305345821476940951309908104246394431107041663729900719355382260237682488915714382908371673962529925538806192468174540084502508249879190689430682382773753046346945663946916231663681849956381619604192544006275441065981101727086080597248973929642336574055927725912080858959606037230036609809149739922013504011107247684120943151099664399221910559080448487575563610247851095219004739519137420762287627691264651959612679448455171331719105558208382615516651171362562372238357352520638531191864475408532572516621319142052562135267695510326838994905661776334680219006280643472786957610750843498746981987163923615967024542649671256036251016502255838958880395834788162777305852138280177770591216215007714246826160512553222964760342469818525786324953418093750238583002960532920387947955248563753123784513811076609829527690123673090128923781509953117478490518135415423856129064882813192720623422438295436599210571913052115816614917311466490879693855412516827004343475165551970435745129151818141883117644264610359840900379216111790980702958962201651174172014105735698515997613562452097650130040185566102640302020231538464456125165562794031348353283691731724740384922708246370560944767767022646547265190180707350939097924848408941649787742098933828743076650857310700593564173793353513090741349771068678170061930458490411411948325685183278296475735736970030291073730760560685342016457090894664656116249157345509648500581174323401897881821367826920325096819737422200990480237953521530466185490758296593387975351447972650454621918890294206084373334853252608051866204654201708859574030618010445976642225230073395404233139580607596752941977609318282443196775233025598228853202627671626270491252744053523795130257386899762957377231830504954776224715969612691056556833766611462729134926998393953359206546668626126208262748125404758063959290542664764634137374082141762638518599928112071372081315266364552176087425030235784525413999172649159510740615913704818149799673297895531545373598219134467906823783992996724444705698742688351721232219883171502914448694703293413875522339841674110104845257903982462956408195905134633673174026160033489347618987944970046663967750993178998481251095164267697637384166736543107864841172319585689444815699675152958967993792162121162903145132988477487639745172166035722886752069407906134104446438795403621707791632107884769819685001877258175432118842560760408857023681271396402779015461649928445095160540816259454200458498948055651391746636763506794516836756193225636198382217711281046934937578592534420241249477086034027280158771924344023154181281955458322443551632558590844030288636076199406136090240595147471240739762049511894653776815185840897603444202766754370549065173361903071951098459507818177807967775049604197169229333226117240504907557069692029709507122930242037248929392705211433343229635218198657454727374554975301296683037494487415250414339992400829465346019420981713919220144058409631872060800747166348172155798144238454565816451037916914310170668541299056348774598515983631390974846141340069442317922127651427282469218726457079743065992194654353877058075812844206598798921450568441227517713461878045605371316486650974460230171248698407275184209564730271749375870667694381655650182515120905838622575407252656077981727693866903020402340128239830682002830382709318553077271904820095856010072404461754276606067274396476122098812667972118011072302953028486868933890199384832985640083836369355069845949633875729239779742285180682697653041019628620908418226236510126566017977401645254196741546099903492501454626703898473396048736691166276830809136778485620379208968658816351443733607507091472694817170544640166740475072411880009384685900486041154988143702938110820892633693261125764848883354376360921313275197555355051936663415584071356770990724547778000755874189882073950435117442086502984381614546723722915416744915022481656733335266420160085895532181176402530846017955159455094777771469769880205364811160371088848485955717643691496777541138427802287610214733361781400115635299047130149603431576615326391753882589539868354857039702601858417905892961454752503282851968119657878025474559455028440275422830696562313011193156787379612843609357584587937347340527711938918883315917153701876366161226908952514955832528272930045626268841038376990601533200733325273685508879818359734273429724953257493629330810544372589378833221939054918715065707082561983939987293283055501137926982843339178340195448360563085146405605725824236242484226287496281636508443683004780747290468719502843882960704983762727270495118928812706942901314115621745323208749709962869090064280501354214758601209186943789981596989157681353029693008672362089218213832662819076750152027827350321973229175658679474918674967060757768289447280021098373304770308839009767972133470304826549175788091991632477757469739917135290332485821241139358849658344608433099296952622009184878705711569993161276714828260773734424147757934918918729033579064979858976031004463329138385661801623778608663889428312959108843714022805411550098109369549419019091057330013551405384897900875960083720674304984911781426358630730219496505952350078325912444513216867677631925349258104855282442995007027394706227859339234343814253604006777609948201799579659015076622786016065513439060809632964143410300757184011023266225062621716623028999367250431805032023718953376783160897084974650307751191157413874142054755190333863842089329624429472698594112898047758878414824075133777078101019742396064988969429862121546795319843631056456108591798254790778544289717542211594214629143233507475595712801173522481924363589251268575581068909682189012915474722149740338255202263292932051591903675956319268558429121419184923220078048544852725319732194927674730563775955564122566923473727126097166032668320939557265565760364840838083647077253773179343637445854164801042271890878254268938207809605914482109890354826436485387371269377956468605291396060812504893140417633560834910287015450758425833693048163333180749954721889820647759552310871293046824949301033321506822553704518519696639985325471234559535998080486377068042065035028498839004183299823029173500983056808688280853351620337003414115235298396539767987825205011370262858913326022231077016726005827307936683856717153735351712380100578506350922254767066701067942414159022561784388457188394091864305991195405884023027306039717767543686679705180069223583854267002394659792307044870429598370477945571601564625575662847458652058155125627542846094568501478725135716577881984128893250844685907495183167025709596600294442783739756914987035636383275747132503235501816179652813554736548545212001178763627921162821866585862434555715061982124856799399149965895563589868287461081813285453779560816832719312058400695234567164572755548546180386426510568405977893580215205959185288279686808022624161259658007915054648597638332821485726649585561939606743129382739526111567785902025555375754627798099886451067885215902909394593754018963033380490117881795727861141636072758275212247809311550915597311652507653814453487412333311795936803170672555676961476746111231445281755378654992415353459288300344155153094995293550528586949455583931343561658717608170021755083659940147112759009518158543299516468232193703201067479838044205988279154469099300197427485902201802759614818227788922300889091988943734695520366490125381031860763141419684028944412704025206513581353649164419115224580466601893992927802701507893229194669736726733278569290014458883644349978617284012781556799161221321751291907263395164535326540025615348406962480343679200515670278607845434432085780404424659485594857478399732929894536362416257775664050309767940289484987596125663849760780329505172496186547232735307817024473776795093227371145629124619190805163632518193936066031654776748350664357127177408185669976535991404276514639161698807382415105830171345819358825421446555849048349833217701236588350189841080897782003141043479147101981625055891365809666666839774663506617408020262653518418543458241129853529741242514559335555159808957189667480749705618839377713232696121329510375955479064653646916473095453608756443046270931837476668677182788891297566978833151527254446449787916683273646877608503117308745656043038711642044453103947395213655027619015356479819615587838334628984278196192209609938854118405359688593131123092442932708418768334128419722020359990809925804895328108949649969539718676416094349995076208001747487611680674213246778478654985945675094491019493149437276939898692711878307204357680917374813499191857162981978211111024582617057669211393420392241490741897136061284652555317037278404566254598887485362124190137343129912765124801122338146029236044322223588913173913059535916898790547409167769161822320599249589736015350706451046246429158058833649827081170977662464948149208948540055198547101936882611624385982623247166679504285349194547295907894186567781539709406436823100930114241749260738796191423600809320995636267860837721044601823250646869601818809384882585638009598187176766749161622585492587699239658049564059640024467637708592465784222946315385629229292801824554829049781948037706550438516949210800723034497944726434098744390271861083317264615642474830613982793623129269505409245606308268977814511013920514957519017489753562087171334205942449388875185550964944254867510068537973357936874021645984981005830046033609145547001845772421566429485837006734080320778727146524299368432291836452432691984857906926344426360533077723790806507435564484527826130527673272786359194004969375708901530353857941545736819752033245223518338308467220129600359187960570565970690868589121219435831633256898276277245198879160921423915001600134766797498984806871973774211597367011674718546145941779446986877810083614361325499802156046894406476995876767211098446778024738831928868435464970585591959722961111554699884187145859552962156482756977573818709379518344336476349709608690070103808280976735774651796642748357857200484373722108172885801549323644016964238599248795174745748217987982279472191629264099495985822139060858030998055256665179496239118108757576439682599206097323455383225595843734382824534651526684894803050866188877023852392973828212760507206149467355420013802609212981986896500194357460386742368416831057825865061740083603149342515674784971302893782710904401248087196429541823817796916025446376187032501181716887757312289389508547803682361093775209306844882139808798889900338701733825372947305536251353308460346580149927049294108258192155189477280565933834371762885841003296941039600495059110388523840083347535461339294856597359887531539788918285811770563169007456375122396159544384630206630458255946501677671779972639275442293789980015982645593679719764713535745191567252789621810130696236930564029044274591391420161456961811493298200254459503416672582000346129804228280883225160843073024422830401322020996240099226582614250373933431837173316588292919418231705792622280645069654327487252856362932196038536034334613813665414380685584222614861165106982100675346802521844511435523658644524694087146368499039057146085280315039895171402698639026514151666815939011819905232505225984887121544908222735779771214397473541103354262315091120836041039286060513102403051321258831221642885180559982684680866422314317348995045166016699736986263332005174850285819254194713119738707170866082202974310891508010930067316692545037908575242360753590395406807999184418160150340331247160622282115592268959690849687955877885720957540792609436225901345827703841081564551104362634859428219777663736984086638310093704811909010830644312982042008567615175700737500438841400212401176971431145113227617983712627123320368749361969278963357321049625567397312420161470223533404725288986421058712720756169284356108497678710143103273356769929955884484300683403192738959914885414382541778813888286452721759471682482753963865605059332060594651036639196728051655710953979092679158059060779322801920812788067381203655552689237068069779149002769956809865404828970762234485530251817146010668673473468280493211588686790247224145783706553737547728969237444078387153903869252942560857345941443292413526163594146859571337449470928773558509702617699358413502458640034789500424630333079635343403314845385579935949154876481349755638401271099879946430658638863850117968312100260848119909093844597518412891557872174944300258428466350729101142088420686404173966217556435887482874930479489303196513047366465120886453754097077832784884534088026452858450376612197764715805848248042253856840363005122094727676657196745088887134556263825012077161909814408929395335608970737256387295088940326349071710162913007125016701418591376765435296541174061556467448124299410942179133274298409648375183282187536774648606510494845112312210360391160796466648960062758343146780633308926529803822983853730239789239647772575904230414517002388011977876211033315265125507810457020086861365753248829970484162940912736283465841265201910241526440728740361265122663194359492624800372259382510432263378482213558249058224269814637581542011940883005690654825220694604454203064413075794292670844377206785273902158085148867171101386202409912031689187832070134228069815781081321295404828249733358560077580376155572214402754984888153307202329129588771563809022817437442032109189404199036328816129254882897470491136415633826387075948672002834443657881832295666546835473148506735462371081237063307212268692211705952632398537314999374178021358510493247952970428964892460305441416793797805727799774591493679988068284270987004282406333843963160013248423102456657168719617373136670929130686215958385641583439195008283880420018245768633342525783534509283166992072555484696254313390826045686678810146619984680775657574232545451213903493542520204853733006110690550056997431870359816725531467352837902450253092611613505864915078280936311346925542006038359415517112336346896908459416456542747497683850903023281507302265022815283037729934595475680283265132932402825516760335689038097854015402144957744570677102143203417725862568675732589780941206952001508804574621107309835226171749589249935021092091359174950965658103726764013869759553408537226485791480486631799255259432835736102111860124555108976260523151118030133639820276719698351672026013007998064222833867711902079885284552579146505727109460567726732425579541819196702644892219497788891673774081526473331667125136039126973528959076963123257089667099873222855969613352570511943906722035013579737668069555069568740616411522033872197474456476012862624184116071467106240840976628911957966214284064929884971580493727464173854947165803825958668597647285032383623042186947787889250202191254112628422935544945727489432845012981549356760688497144765511800848588654145306111031389245760855836740006448610253056442375549784329248167155431000921712502478182703757581664252048798575672519303165186575620864663539154483071827823728340934992163449108336958100728274910368198024426259502368840459963521356885409785785558603544062941570690501014546776923186770631659775956176374258535583305495724462234336326204366142070985384588911424630972216514549832800733889191867938659947623407410748407366543630895802364215999055081978846302817602835668170162809489988861094625080435868431954944358488966293351257028629165952683114601893439085019971350294788961459027693575233518533698976915599771146325930940535431005503610421112230110048791589644501291596062747710835266999049889464572061422676242623534216831892442261393289813672669048308165537117436290107343594879241076214479084868701458756707317517428786042544115469641835483653835156488394276128052809733319200651694067952051928260676373864921195894406447914463655753171178833546436109131480656646330919271114586384155462891085672559947944107253734827396722779394819105220310047872756736398962965104236923102644295820177906033260264747592079786965344703071397969713687986722312501436330653060099515431232120720177329105598750513686813973670948558440111250432803342727374097958340841932753873009387599422712223716784703146086147709895161379506184319984437295773526718019607408893059079268943490981864914185609088435836258035668208841226541292567379442617137273217497254387513788157594483483494667467247982520765827463176001373502595985988461794835729735526705683399170956058093878329837246390413801324694976278552255163358869340543081704075009933733972399071797029533720177983447285925557668499595784032184280865029727279932927863327384284451244735171962535048137950193019913676096847844430170953286935261515245078498166862220129171224067699696189524716947924541645094871735736235950381281052603573970186584661462303360944803179811571948217625960106822787250029877908015096565685753904533901670147799706247755663681069803529513256742243321444090074971649744738882092549887395538962471107568958740607862433450822291673464011980063237585532429442039013689582826543392740974027118332289994286359340577475176773570479580092149564999227222568062899961110649583936650034131611851004005755806993592383064926550095578667638504030452530078127440806918648802169477537985458953297476132569625531847412732387749722668049316652331527230467018870266050873721762671560091915520985266208849503314327469569021654139465392306092019667079175557658358343895707048037986713750538605983054771719243931363252624335259290343574099358176819655994473532761883297689106363752533897187739156570223502367146259219862424441894863239543368277415500540373664625813637002794971928554278562134974979260532396282658466200366686712461309502408678079842248676265546896323087605443128504898293817820495488972203805923436811650037646563822384720642571885537994534478013226005096146001724405786888640125272701034518772897365142261613397301309645116268457123580337100720644458153160595655923686029534896967803502238604930213779558239950936744980278846179696744630742514641104603046741130114826167883591889831332524058766659581254673659735165285789290120683825317629974323433900671524561976354093124163410835818397352339537927227859940169071352404524511669576804261782729557057846147336023582620132195356886692966573305029026751199709748876702491638760834427633581158396786008902515632999792131243749289440989298597332749102065781277858040558477239438567632756296473055712021060930185907933249617964652257860139138356234910281406380344364378969947949154825608277515871591749524135227185971708065963395722461573313419861243798417498517339107280734845954033249546505164761627148770195065576889290069964684885265757587283724738386836940300786143294169999599159458057228831563156062091277582455467293790675871793663845182621156828222092600273156725343811174195286729232516916151658925464927632423071686368208437546087884176123567877267810148422861590365616351241131846510248279230075389850045383196616241535438832334272807252178333953337533939389633408138014068791963962277836792008070672354365762308884502144120033080877546427549742220371907588553969383055208891201669528144761906045977339274584602509724860534647800634663592449230890090931014838728308389054524348995122069844861668105053202280429211414855119150169544597433886327999925085626962729495277625368944459531887778269570787031509066110542131863891004214491836122338618222032019089517432418269502625857440750853516390081573336597065851454892590215856433415645613415137699046905977985582022846140651793919502081445882652202950788407196194414805461284294745942452476492969896165031610110180767430068004865342955922713166331191976848192776037453963523518679890659527168000191575432719594001859287943222958969844819449713671606345005847847540935661601916517507403464725859669609745859949093604452757075264329706285035886661911607997316837169163266498002356375866418727108965950928477209734750154438902264286258795743051989245951345617813266180535673760856957039412596306815936928592145045428228424596930230512527423977995230144819091451664705049037958342213883688349536880127925359115529409995222251397588387763204171596023905525027925550225118112111206993784831530809238148779093868520647379096472138606932530739445594825489294299606706459956506244342244669865686904639514088430781426294051284047576973902065571319372061042541968886514258305598294594138257468216252796051470748194443417754547261983653862763715163725861869434620895173045921801710303579264834905108635167246777002204480936344009406737380525994770835973242024390353432478728158197330515924348168853042155951829193009240205122923622145968190575329180463851948228981611779016514889116336142974611192912302686366590196824037549260855851937380015884564224620963520560727784284205352224135620303441058525398475771820092438427569008351536412341929999429311949635177404885326945205198619906754033408004960187706454977288690945369696484174198838840564437160294382212104410853292855932820345792854265032758472969554562245897494063966143094091296044558892023981038626915342362732964178455862059544752978351487947005402191515322665318962257798941497634875806236041773488280039478909427532415288554569915480295174472718058151746135347531593824374635285110804906765809859603550082739226904985274381508024643975605377967280511898846738890471576482293950253565397406109735346816201891292922610895553678434276039262983959717561335536680207488430340227461145441254436914105046052484673618913568033675420557832850707546067614907628348071923813265485961361968821781143780604752070024827680698150712012707690264958709473038204114495474606164876466986017900459442690264896923372283607102988971239628783782714637326610491180353378382200008879337037236380368769352750787656132209394194730724782070286081529572038834571474309838776613150477439572500950434479316746866420623847381524944339034624902086508423474713518528877328999526323029550520744681829982264979234887283643857840067404284055825179386585322390000372791917223193148643458850022694641485402059726079118246804262777661740150215231500439423674753137704937099236399068614274139702984411313752010805855326887251650801588007175460866351588821842889366017201781784325884580274015668257811602893940932954794945461561927096808890574785645982205726440878925962871195627542925895038226105261319574374265966323796697717073631224922598831089000086271626948243981376584112730119496083164473916303719599550945823202285282785027482695135905424885332743891299397812338516132145898799567205718791091101340356367296195536810340432440412331223958705843465781450446768486013264327347677628934844241037804770799506982891317445184836839476581665851320382709117724124497095424967956298354446465170732186151507113738200043669615478746920170955374555628151861396662837104081790911178893971515008067095332229091496163278290838974230203980711867747160771524231185406960516130840089718905363407024703601423670668264742250767372476004103487193064326668304232613628889898407917957555916747766441962490766633640590323975931429101999501455758510069822803372444333807887135940819151770248442853180058935357156641206524898749790086044952176391860189572092198964898797056726616165146218939049009196996085842387247335376930692258783718815862459332187769419911381959965605856105793787334270374755162540618293581499671468544005537429134094877459191872264753480653160688966250157137481163419643502021007411409698809372089520792918047115019906472768432286562601374855702770179714828747832296431255817100994750256018397494382534604307442582401125447051524594135279763064427492324362647606410855146749311287245583838883048154005557044537979208330090326324331383263161512824022136165779478255670487046225683902576886383586912025628605840330031875050979347725891356814918462664575330977740462224907787717904803902885345342800491068922303205108785057986544950610751447119087545659950929031670750931560284684440320100518215386628429542508850416926385335618816030978552827225828604007617023628528294446645508353521755415838358445268518512681692440099478316011029279708740608045255664033244824968170660375898347852535031589304109358648088054340870419908345717755815130179739724833006137783916311122301610797475528107151790743226311108550481752554413124948810565613650171494755388839559281640990244189640518235473154745344329939892011449689244419966140679057754013989781064430537021061143970847708769742228242322442747876288668870218139849078738932259224212071969080285689024264516704246407042799268471108296306518476272922934754252087274702395443208897905778951811477211394323355722734569952152224693310969748889310247751813097439444756208321309481276768591603321196572333967757747354459093000209250579258578700252624264750973210019173406052788153446663992872689218853737424481556480464449795587711362589281257285023921936335897136079247676578700313443655973202846369899610084652615088161783913881430523866164767760499502858105696425312877125889494610007763963396763368564818514066078481653487785902300477962435419142805940653194278877382731635131088921693681229499786022693120124760478016368168260853488525241222457159849875099686058729370096352805537302813493060591137522547126657226854345858623119492587852450269097291675926586852825559875753373442493570257533094380425578048212100352731705008328794491484048192291305343332166898632566963019292313265171117153080376926452997352550992010664366740860352040226726094068216639662126212458006388127277704809284156178964240139453872816075370941135805094145860537180782250637996280720591622059923821821072450029252783427258544493124792885090813969709380700600023014891104249488957672602339011620538566571125687646721348880228911332911710530538375619979558145593325817901729952778336928681255133373274958328250610168982631512280236099483455483466296829160477759832541831692816859920125176401027653301020662749205153041641057858598475852600733459149645945325129478923997134427522420068295749453407820623208129738624089572192545635680065128520653523887237609339431750844880757390518138663642133479105489456736064814261036544032830639836448563588959870302006586048998592925456946568474905280841061325661735651382642077684088426132824010635326076627399751697575075799498351576849998561567794900211237536344759333331896596680229284223839267690207726242733008424088291089400802356570421398964721452385199092232969187362923458142785077829660412148382067223083103487793303644962809886463121931096816998541979560047193962810891683234640056581617009590172006852724205734519962184582942200900757242504783142097884782108159063583595037292507376912765137524959246095770464719229765391446567978290376594700765256734907902899771977557720651924575170110057502142668479243228402797001689721291686529309960042656288902659279176771412600484577030676130955203574019395485593796118194243788305155234825952050269262214120977824082075983009782535059085847970080397097256137208141941505544153894715388443482839706584084596009894812945608394814963846289444376302427721681993793788779329898611120382111715213695014415829263303791881375675470807115070356271550695948195287217077881042824955308387688643601763458737259716634103424297834191895460171160469677207215964995375185994132323672092726693892024434628371458381886787470666110534727840145427500358354504105574878579682773276768130522065179376716450551963190457520300828254812427137255845951424554621108088716944977996955181252808220644361663111782525725541812339323478118532376061420024843126774495918819452689927860163183909606804773679718247027608912872881509378861004887549593852611342871857430678160026317146011350901343832865356024718381875501020322876413704927473050956730445837813293280409367260549360008703992347224594900201643994107310413268215073089872571357463561369483299234051847350956811202356188080548096021176633151269952146760875849462135322420833680008174401072222757536913790315700691558361160103345592412853912284247505148651413962624725934911139116611891352610170192014718088348576851708486849791343721863179665896692042438259239749777813372983552712410312082050193154543693788013137091399313204806167592801055345330482431067759446953978717692727790549677859822938070497278447569712098778993193550324987059254365735888813342993226585004786689410211831347985671943279759665445663235794314786537805782531548583657774502131963058123571912502412554594901144275940438370238502949509419185090480812203213402886599267276053463616642019777626706287257963444289434634072333629547047124578322383134252791357379186449351962242750547735792158352224578776483172298206112423968132007867028219926221206360623529438385777934993791090508013238121454234379211435027833149258542666832601752774581503062746080829515088127282739355054111441645450879513616319994937736940108617903274825745216402381028493337208529263469336521693226545896404442537196790097096661417791431924163295426238873817559444696420886433213377541591060780122951169481514449159761827443885742955377400390151615352101857920963243197780971183604963617870990722397185958771344043521689682085080673556339424953940663557171478654293171033079717856295668298022806244170235394185719671513099176195971775525983853157620316397451441776893586329471947896010975684856861511121784921985638014259720563281817314313945312197342430358218145280865524664268555639304872492292725902936075796828396996317272109129857265236713927389228382533603295109870194061687450047354348404151889181685899974236785617117153443120566787936749089546055979382251819633760508235825082805810059214128408259165982399856172883507710300538601445828790964869826925773675296561813886474848174200993917651567852567147757101256351636068374669076157976983358289101266142809230992198422424406128224540816331409593840348708676079096111215594413001893761491251431691804662766612232025790358438779549332365693470724093230936958674977912683220681865336951367128484400459295710003920842887066128088050478952278495534849158221429404824931593243133827677911287727872243098065315062326078337212286368665738335936069338272355534144822719590605386622860167941928948447869824201631479681678498207408555899859228090865597509778589187252129816464913378344462560074278877284221515291173453620685487666872186216376965528536025228191607892356766889380339831920383379414365283711691965895000661635417663306254913419200852793416738836625212898162854285521420706017860769148539696324628886809365814227954284091237491246164781584858045324922140907965557644187374134867751851634807360494762528221677422000321832631701251807901374714491180153257411027519714076159862161125004945623469580457586694895675017838613386590689171362489219506933996228995458428669038616558320431492225491268991674456215838119997493287757529419480973645771549604838588123736694977309013797500724975685254456721252848470574389027180455267467616692476792977076088055828724369136926522599797725995817414649854286500525610638440093997961623269423755782037936927532332731237493589551924847360130204651537970035056206206109070330190992434852722151859364268512258396921601024238919540813850814088979992855601717142949093175598505179038754354815180006429878109760113932698109854382740296850366163905975535790365847757600023074438828678399339421197622810870129709823898309287641329524748183915139449614051243588149180541395179684706247131165276282224763642364354797414578422746529429054385048514113974537995337614409010180244029033955050656223402866070420655737525177170909096231287008847411640965502156284673575537108737879975489183264846574082076846099290917809216481157861045471924249024319824379831763927412347627351009142753166135381742171076950615202371907961887061179679600445877653452625743866776269975103522036752640785538594898151351438906211357458891762157501381744046743174272876938495646736169750644436182137807583629091556950109555877691902642083273951485533653943562584325721993516555801839896139695601869284361985002307518302156902755145419875223929454457195569126034039616164314783378412649121235563337112742203771607353216083762354401369491203991157362281184862885536897109755386245984902062665513078277199503507821620770789507161966291905578217184192574332536559213619513664249412321051072688058580403095337254385142576716404376359913191029522966920158819241234632600798363122105165258249904044454674116279221198736980517517362427215353382539755161770269031513353369234606599766954884897545443642853636112990792745246367719131340628793324995873501707540002656031015414395677652594252242893031572652926487198062602671367231881329260836488299226899023941255727568698977474540806053605271468428760950619874333963280801001259702260433893026614724067353657418290545169083956580844391456323766350425486881253611279506880162093078005917661508930651079199916607942881342123016439398718479193300164447924955597997609800954399445735918430220425994378823253305328914387095963998908822374611148650575540846136653856568388517340960010622865068145735494818945828442847615432357769238089201453830109474601596902298717922385593596656927317692853410567718996052753467245312319033711203790411762148746674698894036209781437480999362988937521225116863915562676888592581703493135866454200164677467168978626931257735205675761642191329716779463902796693290549706533708271729089811214495595428214464457936660697020649418682069380235460353911774981018126496986190367734177423673973909574668502860480484532774024366446983990579003044379984043432993399569595078968802829188807187206033414529306206892720439124875161129853116373034698815306875552555332502983280825167292073273763284403376494502134632008902272303314680375722911712729170254152553286289740340969545642058968536857311912538645571090186744510285770249017463398254846387952478526971592477111514825827413098169294554626857718396303629059413532277079194985065635654165216426831121043216964726256360735692639711241693158063021774868484001384009893454761900909275686661739130321550851032304008080496069209970454369871559758944946094033713980185228721712753020520860118064316202753077927189331366782971873599158157817751952935106413581437313288163363622463875100458877123070598139573017035305039458837014869044138651992669814193424842639742565423830962375589347106732714238996881007053905344247871074187146750766192015658754389161569831073940604926267540764683944682422427633780836012013880692875036325091832076673847897586558169687592139638085227865312499381096290794977413941531856511324608639022362034006130255654397687435351996753988752391436852908322486364383027298635777359758034298832222070434645476893223868113327931854621330766586315902187537578877130064657824738445280550488933925123579362252536458373222935503970253745762369035096339114113273361639372086606443863394490131643322517099270703108415915259453381470405118462019886109145279763479045282640467733352480317274994738068930039390069838248861458533491481299382831542866052263048448874303723447451312414984182262884850962329836705234080882040638054059628031132395865314737620461210012219452778516126174681898417767617872120131874377701236969890441888587031753276696566939792619796886148240454279997217614759123253659410214284937137013540536940914690398475909080616735692700585098344876758749173758829307060485630746942900078371597659834676153617957524258270416284760683181580913388118980506733482197678694012387406497836595466386635508060883740370729830768732430122106411951841927362017708981481184892086265342449913088138294678793345000211091638490156127040264604299728648942266475645267359010337416884931653063602650505024428046822926481553638820161619356940481791800672554598939771663977340149293875026622449801800660803697182409693642299696369247451934970697829069428760595393821342823268374024668785612617472915840059944298379844834990844597982754629828131306814902444761615591136529102638354069884782844943002778608272674299121622530643958914199753040748827822663308171991585667306270974101327397462277043039894632523171535130378267081508539861092273918793518328956144916763201615952838812159846487461943590143453421356303099428549950726878300568907772190513957401747359095420633127942274909360549849732799821578015173021404763131064212973292819166361412262557372213694271935441093043911387615955315385603198853293953465045258287760963186856055900893752382303033449146754127857511222473659444657688369476687644010283514827489227721741476249043572366644217485659461855335035156783723240169135612448909959866409207997225631926372354600582674125055552401302474472425076313433272464311845068088567836616845316182066351343372040828559848195480863027339479098676887119983082629028595775877986738847194768334013546125434635336710753028583400428113249750928844978332508008452648964459140814760908825698642238462990853079202257368284837556566481085674642945775055292771653216141203096750144290001899374910544563579812021491073857727947144225344208916670198449352625219785906900527488915275038415192966428016636501544677539281584944938941355071997226480876849768854158239359288804988727321393515968594280397451313037617426212424908531143071800517084259766331404205180725633708724199786388191127868107025056392218544819047614497280641280705889568558045422406848832677431337567691440529340304127847357288042475808718177590177519345639699654927985570692540273062599176794421804893656027467522847737291152912711346375949507066289178629057155560974489574084679781687709163934561337372679885317488747833552220923508013477378957874005463277014797436837973186804289135606437751150007941445445129959742763932421458080589608934964470415442676254730363890169195547965177953546282773170885429637673090325982823540425458251980226376230394562961380882565571501849625264562653637812038350452694793687629563603127049902594540571185263600496847300259606167102982189337240688684507728118204021202807796653056436046830779687401161812475151487781417960941623532796834792677236600244318401666743443070556176423386757734000870408387757903427502368618858318979655182758874677387067835063578112285685104887807240068653198712597125254753375690516364324433235898733176539370780035948663147726061629889367842423101035728204516499571632285101645005551698072346686983154333428955559263723770372650285716465481291584293774841362233683995644918169489604792275429906215806731507252759795141438449567912567280613690795094522893493551335468463993089809835131482517775953150692854704380298238649683426922346079435592061844108572021950837194720225383711551893541606644192123894370261575031998071046912382757249522649358819350445873015981594603120648792880467657312087830007795268649928960757609669911770164252848598540257559081134511706774081578469123741862607131489508684743719978391396836542056107492093909229064082165439366434728288273517308423490322211003230561695278858176696843999438843517084796956788849768120580461092160436602224537681493026416648380385321293721402958609483024710129891236751667603091635835575167376987098740374068110666751581788364206598217477048980754343000862970004324820967910856288671528101632653912526715199690358710899401114534243133034923898746016845209900744584126832347240389935064861755302454825574454468276632726016646199383818072670007288185534725294596993312971555489947304516940556789703188271800619602249023610438350676371852194751016980167487417252449991681345453480130748051084888732889153906090176710000783548167744940822738248660788799472000698899285556651096185435377069941340262139212238493864874732925072989993218307763622515722912265270210547173252108767164513307720946107278783840101098451822667450784825455207681452746375782958434110081853312694134373261672302535111897687097209336277473153467777477044078021654857745889261369175474057394575882581230484395499021669195381014423324236113264836099567150989370148544020206691853846761965013533990965585092649591745650372269220885911096848572390765353961487831464848675738368312585082404415010577067235910686624140810792386888168797622525655786827477018087933345406032060356329870882093355585212584640354190225371336129147668989016556971429438811030032002547656204906412669596620761356198207416527187544201493726646768192564538114945357362909694429308754690450157365796610239994887617392898306203428250584194676134251252678159562026657771267721715671051296735835597384002588966860961004417573374453669629042268643348491604532317489368281705881561584176542076590978739051255433769650519046196551685105276614506251300783387148622903427515526273013677485102372555299843869132692529434075527720312421187711903825271821393486912070411203605127107033389582427613885921952985333857025500174547909021904730177251491564130615120336787782907675808585109461963859036485261915125421414450244283218525854408637628331075209859589218043288057960209534160057562533891458173187417819645938052411315179633484655732990542415113715277169144699222880092777781407714184479128623868862926845075483760523235750401178793154685910856028856571910468172672359962373307943841804971419675569279216607466245876275471657375564332885937919167010062666156853921929069162821825972939151933024808453869693132615254056998989858787852223911503023339266462985728565465965563370120415016841370337732479658949665587947244416177760955923096578552013704923998682471025542315529160022686623811501376571160963643295085528476732977745738042983112325236262282043012211153159663352561307079139956859812068994876701680112475724674120043982379635983202377808956225487817924104805129966309478717490605190895827550147156956012202908487365615841646449949457114757598615324467051538311023387642516751459186432420555722597575105627378519776496924197970714002737862995247129369918774652305900329546398466166088680051416290305695576534992349026876172085568874009529280280881259835404722818405469489632097973518388651941562210050985351563043727949324793043929786087628492702965157499571768737383864215568058408940837223568721104747321606044677568818286864841005789775065764139652053279763405950886561736792084968026310054010916036339543629939341842047820571808556700070934339910811598326033941422153612829558604274496402857770708710118944849697719229608020630599859866426275828054893455851222186561059013463252600127021621810939481938726277492190877500054253104571120461912612206179763488668064932287102149450220360315730246060663351526438205614742453580083794078003225732401708000339903021938719823983251164393162963269596198885214713787132112263127514562454660081520944441621451065024647034421505286732855871346903364247381255438378833564424256434818379496568009999287544908786165028887204211619155101634786313604592915048237434583048595356374350313743709075421487976829591509078616880904941464732794637629898449631147141929026346290351984673484712460763705450573998043161860580764939677446658461329876987723358241957907502931510944966361727743800342729570086304102576384140177117501121803277277661407784427646523498739704814284906273845961059440677463927481393871375486787834490659285706045490013405628195037433233706080826275713127194121662931740641061115563910536877666073139422282789589833415572752914840436091636845187890490655570478158505079792799946475769263436136961006754431925494392336495383482011907291831008776059657076107929111354747234205537658603592457361966683530986252958638925823109056625713607904100348810830725185268764114979513414535390862064897652365510735747104066151259325265047509984176199684658592203295891022588136744647320345011970326886751512181360915617074644575568939897937578191063023816502075530232800831754090679566155101863344242497730081946516822133026187110642828371033160113990700993245385796465991071220878312476001592151423075942045971764374743257510963588281527007479662160704594559894427740866739861020351147113508331615616194778096757270714094993797388214230084174844280329874854017939910071799164275238723251586518721318804292196157387513972499120032143144555562122632112067281605287994350176188978064298005304561444103665684121366121713485900250837992268343237408069312026471165754167586519742503556809899280787454188325865066863213320686741820825984469697810340300429918419182808001375470695558831830343656369787944971297624806156439984656178848906577154264253715779582625999727403300934807743294633258704592704022487704119856503806504893913508968702752782278086487050773983363314336988813395005736788617056220921767440698644392635885097099299796330335426925361334650934174987982767160980153736831425323752043528125629543211826044899592175183906552615827375002958263551445571883435834109237721782793968698130068549607001294261287440365089230661159630079278625468945694920997379690748594091076268875681946283130051694724905002735592365380494756823758928415660841453558978129910461335853203505304724468153820436525328438319183232616427026924661037588048147452259435845752869265112880875070585908738066437369145809823591192640030240756089080381969897669902661516347554109873211850304593625650471013433922054540740789029519479490099603572716084665603064460733416342039247417481726378168119482018883262839480800921387836024296364861641412510556600004614097360035242028664883596773896780696382185406076327933034930860234611654249926704776847009363717574082141814516073663937648845210026438970801062303248546302944043059631347983518292205533903285792218886881140363413487792466925709888500374497747405159174496088474625080784844163547552717574739225565168674380831165431658681456373897460721822426313709248208410297181765383851076447100446523829433200417712873978769200062116229820561338097905830767777325221758797822834600621537280197100033381672786595524905387893673451653764522155114251463061622425293458746287573710573322138011030550613049327543843441080470796318502001362564805900825353108749071209221262845009192883025851461313653131333697465488604081900071719465003499529990636913159326088500510209215384967672366837577799449775200439096510361786665314055378980003472442005696389053126344722537914889500304138080474203554434774126985917706942249294165580820565658196307617439880772681377762392926421174472548302382590406550877924517253982503960108608468564051675622857317085510251058478471770681044465249387094640433869056454154032723433693717140502871327896685621705427935860333977489865222309890179735588794869367549442901611521221860407324670523329205007280974766271581148015675619712633796367695820702299442987873581251587031435694609369408215173172749935963174495371629231705816482884740143404989082971982405178865890509204951949448676420624511054907741859448268221076957262009453412903382607190786921095823203761233393461696016521444025613651793632823786294518996202051075842285057202358336282359867081444574613529104243636749654688227827922971300411019925228789633870904195595976267542114861224918288234382225474349776782059458016059674749747246187701328393372056721398621343887406607838686580194895408869970887451209587839241490310411197270230469653561407006105148955188091231006119995573804209108578106926588555928198740354456076916690286703907000642221383286325008410677776911227508019726548013374479962052774716244038008700976421216624896311185731240386406658083928676654894793523948779135798079614941336352495437434562153738586951527085883451727038527849181128463832657411693397738695000600991608555893286979065992285437138027627534233807947252553367102076965370243965134222408283642176144969937017575673933873374772840819010875663364244685026653483872337507883610472781507035505989325991993491662504824244021053486953891929661327431388099832070167651788419872378591537268960781042981290092436447320051125274660152052722383876150553977663454777440674833162129637993928706100466353208548748924329470123238041360901292541960951683151597773554054853017411578096472811915156790974745283430910303026961060187807024483794174132182977790651514168594071054468659481763142383959084969134378120204917216454277618355232943789249497776455398099055998762027491437211934988405122650083421086348304696520985598394038120688972711707227147187464380315310209474664870503580555998790490168608006667350972487702955076877921300686707181615898293940070106747799099871818985464724490802475414002863090799208370279523407535090802872810106721590985553247631830044940029409076533912017425775196982092442206260710995614567638644832156862018320307540812511389308504752371084258441700794493341957633058444386167211662834021836276839676413349959871690091559026996927198005680971288261073230188099857489549411865706168808748617052299728954716865851930838125289823267239245600568634920257163606272600324624434187469811618662044179866940798536924175193664321927302891640138603594034890379914611414572373334215678020428862577458595055091708939945081605357536381949556691390415651208374759327295554189692340855670248665800013845874435253494035845651416077059412788307338502407500711546772371721909267504411727786326692594466621961695959217776542231272082266049410662962192615706446486340978425269857229739920430914459760338821408022800115080895975204004959341583788371213693450498915451821952279223280638191296958861265722777493479472908451217091722969552991594903107012845955273153063152631479891114162469726353927906983584927572568742902799497999507498957415318822046052852467860952424158503326703833729462642132535456166145194414291979730506077712513618549592395691582077710716153039422003950659284743906086600568405059295857871285971598653900895789314431822014662827823628751125550831831353605177912322704040190893900322692972587748820824601171829054296774634571686343209230847409859168909368729913712754238537722094478030113541749273538272112341180277780948964108924188739504622281662422865728016541326259180674883351630996105388221334477884938766201678781202984874749782078452843961776433755171342566356168091734480131485476642533082080153868740715799529901732697885483678434044937408988763257908315971095031177479289162585619299032524113297818522104383487830452758863652483366394406778719438980681072159891396052647049777858853326461748927629121942940256714509457810592619904608771553111477640984336144186312042999087155177671110342425567432424755010817756347578273639197091714090073715624559469535280215313731642770577877829671968008595974406880793015306234579162523449088579224906714001690870687133171803615129617510540535687790971355043603953049630157964106547235565311154832127384405297187623981418894033889594355983348079459892795689319723179619172662518644517417888526837566661502410805275714127000098248312147780744142626592502338760096712202029845786067545082064112130447127861327705983812630364235854315477929520437486221539598010433128173162057954799377283967555527544180934940227886640405876757001711768446222439738301156812633478237986187692870356417770783376669249666759684127248653012540084151116953684667170929613894666430440824816010074147263094058642948195949374020842751780650587158085597283033914754958415120710147990256124420440230414693744725985697706565037189941031580249556067262566217020709228515755984147653986325275188005324051012586446393460399552249611685460645755210567148351130450669707831729238345879224022996043619925972910098710327796843545674240742064144006335742791263682905604381694271275916973712867006019255820950613096594815437138336712519419789365386824767885761065337217359413157571549336203860616641251990857812494708284487645289954128006538190444589803718748198860971137119197523577056393963116905258381168986202025817774290117317052660765363312407523606751914891934809637035233456777172328511276033430532264001675717849433099891942805974884793623237180548896117818912974404341583345766524133403898682717428194989611886041739223616231274510380247437079437816104541577953657684888837152130638286470571395278375618362408881729296220923210451308307065625643044474062282738603775988769206312117672513916569123401557852640895866747880039588376742153458406170725000161326582284466955736196951128806208299925470859013900303971729301937309688348053820538682435426128711602496786177417817280307927826706865757234967004678854548693870677521830351593166244536370423887770724522163310958482799809147474516028945555813077281850497699177987859319012864014513634972741032166495493031332215237976296808675739875306168660363133642752768133806282500375535772673311411545882891923609857301318395547487146367037090414090891240529836886460476113341242584257001038139828585272877269556543907657654144488859765066135049209351433819603938005430933136863489963341316538721867005656143352085782908620861685799285144419108835350649658276516058879158117571514259562134616094905912970964349968933405745006512501044103461758201958199230501397384549159449068079439549469362129624526955192520152254212357997253680013079253206483707964651165591217410032156127915543282234602590384641542566126836632659082474449905944210786625593560762628495564386679036281159074212562671330654998579159433363845477607772455208942941221699741015246519222881022438931323529630651260071618037645744897032273314896879884915969825410124450227597788608020865887318847478427983565392678968647356449913826174957150545336354469679502345984111230123352140156984471767740351462053022469563535475518350532778991957856036177160906597427786615645613642838615393845187995638312224315860414698912168977008842902406242688526672290900449561608306909318576551818273054101887512115220259663395993224278719304317173916594948241975873916924331424174074236035739868764479957913452923162784005374421894124150764370243006400279752893311541136636104754405723759787969041074546512339404446393791306881656950163228822264673131303020325430834475310659172318322386429764595973218543187822919702443384697741648962448367504546661225809613608401457563587339629299980403213376027318236493201512708166860164137862158330494889097216623814886272858433567180118675846669295692358823818216071795447650761276335843178422837626798205846590012170746074970414718074975675033028789376256732710539415830520917972475715138912074965778546102786864229534754776736869961236417688951403219084039887911187746409690730886614847375107598672093928859540145337029629946831387579052662033586971732986299239236316550970557823575259907960621750644181321248810105737482313061684931051274669912160250628632363192286341810355465498943558580940792211516256505461803244950701878660568388983985927726516979372296220454924735285316767756344312090735604277069101566540332674565649262731711634893914337547013125997854922061030672440304689363687206032040648116869785094382253447420430632313117751115655770569980801922370478860883741836525518457165479450053130174544328526994064150572316567339630061137018432290084776879671212220193295134980948752811165150783419111582313888199039735218415085834608045446736339548030931468649160741516022308093209046316483180918638021318496282770904000088740607542304772710222005635066457688877727625691545363722449086010614999339817295785367254422841384529269275045654041595194702764757781839337126770308373282309242462687317156511449889652108186729704982645797312614793892207336696137978721937679681389779032469150205393529105234554905047710955074304527344608996859558409113715033067764176370555242134164114596538679864331327678686582450130012162308456757912170884400904772031064878938489501945383750042540567325478157464075279416494528150693712782213436799851894166016908197686565828310859294874623269415147766841274264781773880958487467161431756919690429823730846594455926114027807590251311890574504107548058672415136260125286879584420036609757209944264307834384863870611447583178254535175432807804007377855715771047039913510301168079003055828515843631786690178368069235652699502097335253271482059321182275481757346988384090010522067866307836603503796524797879342798363635113928553784084911483377914069031747684405004985705551307661873466653795103942125041352528536838850442928309725174068353107852577243279620008354503497358841491435570112762159428967664104207686763211191802722670891056693817269153112362044910601782670906057677379288119162606909579956903060570816586776926299699257790101323639308381992775012686896228514085848708781577739841176906057258612023440688635017674125965552535121464754572367461238749586829604114952557646512421502970349145687894028781183979980033339374278942484050327925977595983544110529354023122020105536918207960121977525100885532755078577999539078027947909671902291321781223203314564955868895658599575980682561777517289114993617028827943290088381899107038595564492308299458608530527515300398656512865599911467812876611190388032948500450288918041411259463337836125738828664330656924409897088185189339799160003714254697404607432481530959718538457681141355709834070820743536411509110430824205457043321038507318682219384045542762910727615673088774975240886206490719475338994685851206114741833209233656729820612883646404073241346980932441051292357240158769951222304970131069222065284319596364007875689821545803520354401966915953795281824994527985066980024632314842148657483250990741843887573138206746825413073979795476068821610529159358120842776721398343914799156480150893315683486011584874304809167004963248877261816109091445975127263186766828248242174387591694202970256036897091999156535179287879834670503974685671300081692896254365217387974973918031073844991148984762377749867102849259809178180218789137378441777680767228560065982237772981608453273240502528168346112015385273884003789887223052163007209973647359784711444285833526699603317112722457890858013063534889637881369559741606406923280028827993578095723642567605342996596136493335787915722215731434517416022054959112109776112540791264148539821181123796839839016729914434607363990735230581020538911187642114972902584281712082127154514455898544379269503102469610116307558019350650784833230563323574939098609134285945541929800290691852043261549110825672449395906591963307929728887096630434369887054943682857742087342401989774881541555531178379577884020663240117074729381561707768493305423744249870412763231327392363586497837784810280845789095833632348360193448479392048530097499025452598902392695056012327619689814547243784020020488132829152422167666898996495939043907283646491427837162075660262169549513142853730226117390067229716607896505796109585522270945759300846190540649817282074359045693015919806942600595300646748601041433444473461656284795904006249860072096951148060326753308702892081152297960874985102235118678470406028675677933587512000705582357606854741695972745836803013701846404940864590313839219238203297407425566701752060380809765609815174168244342754145000222347197966225549749439305460730566242037036778007644181064612892637660414991552760621906046872403771796955776474530152273951129881370338542032662336439889332516333380792748213291991433603459893149237809730228853045960614217349144658906701424320465594897458999881490557318014306726565170121610351978512365812583829229450563255893657423016875210125413040070850363024958014486529597605968554609167408435128562148321140599626883217101309483820882185627732333383189505821424814610638643878617027375061502601506242743783834224469461284763185599233837682482053468470235040853997106538326721426510054985770197604804308118304141645420281725148336105564426196639853504359523218058763460926320589921822446422685984479085773967528745969022175720287380753560775369539223127953101559132175121614628712692411283742057346069616216391954712950027148238218798424284768563204198999493639146505643173067301201713575123683999185939870910117585539624826606059635282277624028687627385956820265103298657547594097989850308689349979674328446641113364035496836173007853166963447661301079800262729386540608653676921824122655056722677969021444184974450048208075540763554401908178678750793440043243470650416343995003178506299948709086206199611224097329668404586830787636750796326709556715200471626438061905327368709286707214145642128246131682205222149532637226260588717596659203728147910799067250389918886924457575959461126305547940289674778143971932043004654412059199934501758407395849296711371434833255636601770618079414633867397279640316419508928709518971537944574320375378913402597895237589914420479460830733937704617874722313781532788347063315433295289558732207969182172811868023065088392790813233102635003229336670401743520548325049234273012804518405188276771330594870105564222198824399158834197992597007597339966564856441875061030708757523488288409796316252366466557951171729682375427568635334159036674799908389630538204806100049922240777293535882384900805494594465441686869888822228294330385413647830663038442852477101498091818264299350141874435632326135385505238935466823405115671370293366606695565061642212445892841606323990382630956375632838725249994711884262309256893079979744967851038589838352130551384715010905761769385168671091453301661616239123009483661680772079500372253523499883219505812976081538064574917658145015220024995585945921710410063743062721263721963785721411881414561274917673769017596728756818824005500825730409876306731778559097816625265469884806162409848678512547047082698255086350366860975698073077701823916109967853251411945303998856668255306042060962239496245880542066413809641022618597384029129619444343339530846200047301639866677144264980701983994425361143534384439448102932085860055394245360681515406746555218055002729868773597415630264589228470110181622701845593615919582853036537175210311397246932407948325177496638106260805357546130120589790179509062646599593312295274925191782039701508146684401908917013461023902157581819484342644475440688482276240605330064269032351967062316497052995019330231182174129567461299213001600931759189213217983017969797189787772165519473753867492168021283120603162183546325541789137551761745311077073332567383064407088103072221932770130916416073408698891287982800022080333895772834081322166395784714681782532884230102326983322545773712480580386707779557802767875383914448239270827289132567534054161354126058202710486349962942268136588659311153306977401688016523946465786121444133147214861615230376690723743548309410981537178194885750902870140035172008972426234099427231053944208889825999954651342235119155872179572018727396725426461436672841677370029333570328616528198414782994389577494307547819955989926156022800160577490414815545636793954198307468957788616692480839875857160873320219845760966457743073080672021351539240358561731338524761595921179223679778520566965465011463699398916151239794999931270361753111536893566742915790741989087700236466215507126319322191222129270854524847281351844958699400000238001805070898656511554715665390306984735433221123679526748378902005951376704377618030263552773395199329715690637342773848739589553151603601237355222529567711679251163989058816882946955986392622074595920772495459118454777073488509906499542900730220753622679084376957707308724486929048287893212178943811700597975019834487041536501744741186831810318576222911145153341481457425616778124247848486341724547967756431804792547926444290899256583186396735499600038263635803245696606142152087001959998513221550651001836256923795741895479176370749322816070777042868432442011170327842891666879737016843233082854754732225704076413195224671161542312875562687608510428244112476967512097730557365605436074039585193814509405325277958626645810753302840613460704738093656551602578462128884336910741078213858792206198324022156254648984133933897336545891824263603678761475211425184408685111657116120665756582035512628949915053100450203636674110804524665965009109181181408882235142346182561687596024615795122221596110493403335366109023295052122012746086350491126441994334823768860300207943693417726787291158420472359875234288110373007557752349702423339015387757288493328369501097042303575086931396242309461922341559866660412822295418832639971434435932666015738269702667690673453786317611913021249276687450326597187985189279112004555620584613179578006364998930217657495148955902503200013693129353034175888745520943334976358751447002242834479789514747497613852986852754314837690270697915527669986920361360749309303900537018562311765328099980557723346750444101502465643831613267171862564037006971399889406627613221109435759019242257850519000060723860818171672425304160828559658390916835735749006562989692776060730222454941164062930387636231875739723572057460525095620130147217780609559437461017894606111019880126382255574430910514555191727692808631264718451630837686063133542421738321460907045689685180519396285060693679130422606027969630656938964947171852508209061725657779441816296560380314475368761486591644843363545005366997926340667957810231686730243400230597920034272968024170523495704698799384830226798961186783854294035775537181087731712166871530566730927184374000768642949153978425837827422849226828993087541077886503223574356554130547436774678568397814653249887645769262242550452647880342478398979537713404233092266156694379988769676590237831909395575346216237394703972931539774323772976612057259260228641080942771858677509310741706974758195197471623389923077363474603670398856391222892195347653379054447675897707775382528204720643819511619602656450519111066450985138258222750722772756512099941433012098575672353401075057186727495515426380490312269903882068334042614529632667574894217293616425560476198414911523377759121538431276056192017529118720311374976659342020309301757606265679843549981280637756406752055358671127991865772660643733212917190993887767513532101748061653090997953556986679766706782852885393188445270682947234462382760034931996349257782799166362965434429576217656599915223572811223568939015906217674732466211434692230366783571426716331140311567677716495039099234067801400141660309583373230420362300625771238472749565949881581953443305399636267225772678402238002562600941145804671976755999173860061202962354656168011790597713780717305587553938434786542897322387647265915991516458766391265210214570778992908624016721061500529173828423514969176306662971621896549621144427655807403657631153445133103697570946164795614422484395118454898066675670869178322498896400964751763067718918433122745702904744153442528061660594907846415718888884290771852357332586831042037480300835118767531988730710226614774490951644566343701343072092680668012153110210403090874700348645891911960400386350855177176154403903822968358108056378266871802258294578138269033255110201291672716230718817068337774555897070483675674127766522262645383294722158203521088920672290466216186615724678936824894269183392374052952876690959513406621677436454736446564925176338561102688910324486240043709490126595628840098276453765597220760529158939472946893193083521665113168217603888624330518569874190474700330203796879171977423310566666933219950114717528031289085171600321356291610498448390161783356926028359280585245427716557616291105095339815679735274420633654285789442420149689893327286420445662511496569771424236433233930218637627082639574446629966763870851752206003892332218671183989210584472632356596506238468004605145334871414947077854249911943122695736779524216903760418469642834357313974984265002880175530297298161088996226442277269138125083753731870384632021351660632966290765633476095840685841457034625010674374069803486952705090606923073485334131678176908386406785967777272167045353081286949160168057390331788953954549556872115704405602828671570794691013947165922734831022349685053519951739405647643248460464081194289151854996565604662116243554744067757356512642312924254312583011420145733007185752953372959494743344411018206093502673878975946226412492548725489740939787596295290767307268090960831391510506935313831928445010930698405477493070195985234005800104702662313089337089498918442511799722983952735674366115352358636310098090955206957221494339864583572286816878556684784605726606151554938150578263802562257791628853292008665771836189740504230950422782023902120634369179637006922972992550601396107031623702749857575122838194053540196769384986615878627497173594598875749002090911004120921231323419087560946378484823855733888459703965018266687129891525414770638597937890254012335775607015320944197336180053341571354974905198828658228163017552904873019198165777302247516862571824666417779370699110693148045582178426993474052328341783770648502612197300015960219727642087715793855630990810996187138777805461225499278486264109807545706911036264426287851018119211422533339972668762923389250291830995790072234770313748403700335483196731190474434243019692646559983630714210225949767602765977571628890205616925123708585090323964003113334461000424402967180874594823721268649032003176517027197184436705102018146067414063289617096620877154132380804769368507146216729438473925161885653687476685361935431704587675116813695106842353070491401162484094584198142359270098769521283415644272173669665899287199788706808992152438555082065793859910843958410157303743594620005842678216400621952109738842840887263938742667846598374397825796382583877651685882716421262675459748618753264038265879226716983301675494973210920310332419667184116839862458858049598140378721857142873058467885089055811131043015258093400872074100702566777076577573424842888924386502574751114352378746682473394520027202435837236926274605020213783826679912291599859232409221286952068512660542191858249183197329834887743546588305405896625219131292859426192288758939585272955911302979503209205176958398271948819001943878744585630183729638020981925255909246162852031743502901851504271589142118625646597362597060820158957414224967723709145823921812569437352138753310171661722785045615188394277873263267510382806595040580235455750784612720317623853246587332765395397087659291844509806954617678203426880726573679595155915880110028009177838258672579730894578151184592326502923925899883377778823939731262605639221275827807574746352983682243233719455690003727025467903477118753731382576456138801157544815330730513304980910131494891708559068429222130662128846695001475376976840966817816149374328113272250741011892253480063918524234622221081553336221396689818169831751886660707193046186679035623665169152716224830338813076885196709822861643767627981089691261697842147545228386309403996313726566080074667777698489071557571554786483308110958318191921519927591589412923709786720253402528309362462175620115605018257202416063545939883812131064420272270366795783786034079175897551005307180887395866036487923844866140699049429884855171273531518359597408039900593335322821216875729428881390158353035448700313027731036704834719852248923876014725720754735111809012251022161504625185506228797185876181778489343395137104120582287425605877367043244217487047339487225856952033418778520182689871111190318623862764641310550585296897122694132455119964867996304517810164244359505241484059008994196992159566128741932511257498300015457266233296194444276981221471528377447775398497583009714302190069642925655864857683825407442456866315421415710105558135926120963338494087865577664948138556260591090764642180047273175748755672650868917614882440344683365056070032891562570125740629162628526041751196080671500713943113569131161754413472602210995637786618997298887920357607551097183731063185480677532589099019254696581146206283741169341174493659956079802782793983641943168397190651534917643840814356729615965205333655288248492036744093032518467590878591171385542831527318909627278625937496198482644435109060170216935538981944208035743278966829964260123948416148407283189770131877055560395320637699609208719994324048745700796852366855484841720406089807942103042824248283010886848631214568460361341049045481475160267115766374616482061000866118827878356018726125859820216215595800918765186121965596005549194154378112783218376416886193955052736156640826747906490119834178271750603370991988519871028011627915141207709683057421317885528559351376050912494408378929116851008194305094998508366203117379906267528105605314134192124572962203447339536823049728195821759317267207236059574828520735377084197293350390121354382468137643082547127679106567823157314923360466479339778435297036350913165882064153979161827298360098401937186315811217174323647148768529708105137230392801504864385635546000144442904265870210817768873539230285457823864148316538763509307822816817538373404924893677907135863382242200648776673808913481240971281402018624393343698986459461587343932122052778975021701409021472860672495003154989454514848187053639594480939365822129057478341556410796402056425551815939967425294022454055937187769187980216261029098173763194178917369089408161196065463345174512542964480777007744736609413373412487046787896539757594583873843052059712586689170452296073902919094609483616594550252926167285993245706073685201751154792766566323054714454329880551988339871256635181815341163432589414881459642552288523280183527578759683569639582996388358474047911472139872630791333188109551433679216032192134212350259473556595775598959381938817117568160614354614077532609947079759658421010401339140497417549271410498031109099269317618625036022742364299177148001575082930305809634658243201890532098971212248786000987255934161566136659363703926226279185122743023109830140020054348071077353564464356059028840015645790349035714196844740840118559447733663567366891876531272923782940676611423092621351249732364749121152863249963147184969973576065876461904041036235959065408775657552680919397674945825277100164624554068702548999680950008213465687507707084803079449249355505249977040791344599583191208203955918420384414774229437702731465173621078843371094583885117220749244959414683577278067236608611442284072813982883378782588513887597927624416153438279509622581077889460057083650423686186122800829586347204905431431290253609930624331673569069511122598535844713726506387098440762957806532764776805030613940135602762964821819516962797663092822819504384780750162666781602744504381195300021449985527964586368855964378870199074800926505884928932749018799653405546896927098144778537961644007527946057947314296267176477425282933737993753188332690471446911362589293266791561486821078714112021716043341872091572370281907293829777837491173257826069410894672785145891601003291164223576402687760679484059304449304442361113009989099921258649064551340801149441653517388865515619330914145599899477521364370593070819059793445321691470189384058167220102718003724804089606456551096013195266309177704202126021361587782604106340464264466563697161987628135488959754981790188306192127090617009895643980457100789803458284551574192112881535510529405923862738692634585377859261271168023864305710915218156820631802970426369654923532746492787214762022890598383548169213346874876824694772211472010745325224911753345430227580340243965979257449291313805258672381105892431772246940372399053319017743265511644030752387796857003685010199196920698453576769869780986776726159706499537715690036993647328448633961291641063379534185759013363475097718806516353687192074123649047562701325574251554080525784420928229395792614160674298135460281050836202099564595913674314192934307936610434043954784842332048569326250118992945898892570106695267971290246966613006373945786243144130236931693805576140498269452312631130114923840148769315080860548926960438588394302864133537577280621563958888264301976473363890252275963748044189715713628353712245067793345273105019130112278736386412433910410314728655473079473382380030321081179599870199195743116998890607879031088911260707970839508835759715672260697695004841022643423383626209703593766766841730093066768610880440186477476170047340886667201387289228604294104450471736103667487304381420201157698165183042975772334820970118103956794185390085497710884699245258412802573188012217297277872702893789281069440025075221854168546694551185672589659394884515295869096250695620743839720276050014372766406101961807955311968014667671040071716132935072428253102943201774462604198599888925893712064269876092724908496618743820851363832357812333653499229701111087775239144620950883201996265473892032908534630639414654332623336412146617178663247237108604902754967454234917807209281855254832239886226122535220625009035082526596828072910031451212421899013655345089635648164869835096287205048539901466689599527818398776847334533621143255772461964089033736243149791559926295693153074060042858139772719501346660595756062174673041551527398800470078406183741881600748186913276887321446519486092413750472989789223318225501322945237712237359998315326295735564912744591830360317703013079516694076055776500342751861838177342928167234157412037317746438589912904065206465374350739566347005576806176630918494210163782678170084671781590494720780999716535980769252015715980350119533853044871225348805114047204108512856173678543098794969448559093498821369799329222352283749102094263918640888096117374700830303139862674826099591894057035216766366398144621639957408763275180239231242436380031615012022385734597497201413352575223161153973797862299844854008755226760170346428561329549900608438320002531486860995384198324614514634925214841659302828557457915966963259096477843509069916260668581812002410371850035962935637542041162813682414707250224889909796516793794534605866010140078551007204918416752624632060428012043610808847167446710814092366894603517563930183875788190721085410854547224438840559187277392481713552907508277122515560036653539233312546849228929057585538291103104542206705663803332998120455238149261708132051659898323212507766783375389732291410463259881027040285552759492233394041198265339512446157027912988326653620124651200798110752537802810424642751860563057953589088369086030847776410027961657827234036168332038268757059089321040457624351366815080135442658292485972860317534657883614767313827814903108679980332582736519855580445751811958347939349535698268434796227860849797004886027399327463230244169203300964854875311258088816208298064897674901425594416867847853093798853283554404219469689537474908070045337179864166779252837310982227194948681953039588964324801056337598247169961358317003844055076537740229279943998406337880303159679956169095602042779171037544951813825974753911389885241306869045216333694410174483511848718666424694348454397792581925113503643707864645996955551403069021660009589642517394680259359326482038545224959767521563036622745307418052888082814112823379293285560531154095668771814808204339963291573381118025426417813644199813878298417104187745766399163581977261611207444122859557602965164109229789435838116136842631263268298431950928009253742909523972719096920140216814711128818060812767618890127419795461809891809812966407195474272841426150959584351724744063007611295598596631829990891754962055626840822110848178163647067085355165780057057922868517571101008289121019870858329665021803317071226544085581496582770280760622217521964213246169143589963565484548981429367303684009788633189184403846428327058723790839427897762685911044506337747133094155429139468900691354699055337163777222582440530980746398984568112726573819542530667124021521096099859598725277980048835483847585705934269431856529630916482955181453686386068994497203512489753922104069238474869288634374644633489169722491912469143855339432565446654826166323061104816243013617632775551130513200045335120266496811762715517027546200926135427447418964257956769450787611069377318824905122764932743157805429562231907207521398511295925078142674091239729651974067106661142523331636652330110234328186570783475021825877112448255974513761989914278712847769153859543618613962253892549391377828423099407888487372605263743349272281871071614122510357904495441621554692327521071517647446798985220844044542697925744255106281245560781140631052719270673580322515730759078813211881136601813109051284733445580447469973443272300643874366344310223981122639891167269097195077497426122512138676875769846129219138243561123879073604513339396820959467365756166208501676073991374336029828445464402117310010936797127142253549630124188823796988750392078523530397102188035565591057214032286198543866473348559649946342291540488037265638743032002890538906010563520347059723564158819175286244576973537447279365919586743650101079940073814018620296435845543090757280148658831608434463397712894636314506356241749793264032318661315145205952595980376623228130081746511340385666461768438397344680117881587066923741225837477281001881683194613255282953114120943792214097575098393302553669668829412040607144713283971634447561807161733810138337634138433783088206152511659208994522947135400193294753318222169457623929634434387646318394398121722000880690635406700785951599508533794473116839261404980448331833497508276303900183287889920712349571321429636535157580851009640123746362590573956206962674019418063546498205958002530604108358106199970259173052626320892386689139769726482892580999685144527784311474583790379913935739027968413361035655891645948015202032016153017318978891900101688541349620687394889762207078644723841687368057785574723557073814567071843951901348588617335484312049990059735312986284902428154356398165897641074808172385680772452651655617777278236901827016654825637112310512101571749820134153353320006474817653006454705284141545968980758897630147311527521838897379927371569239052393331187913210127962416276196794739479884204195488059251448541774537219249253346563632215418775252660087857285724217320170785525071854528991625937774984512794084385517467880753368234471313599973592950684974424739585249166714115873598733202920727219369597243884650545535165826433289308237760418058097117113902583193496424551348407916429305209251587493440731065382259577373322525612814879654258994461679421472724089808474489890283661730125510998999917709520983803301529161463511345767173392326846106909569856776625173617142017335441555677189339525153935248705234183694045043033850081554480047144106729770944552841608854023535302638956937790722303859032735325321609437551157904024152367077162605466774396897284804146085069367024726245016654454608558473354988143995575311516135659738843112168189271302243931895933564576534385883949141349760391379958953648623158812281562881128452813598605658868386838077618442883767745547583626914214358123317074653896924895695032057277020344174664622544376189682602894335724827011738599032770680007112314171192308515843974799207732687316995875783576503928967523977890617599378962961937103792049654175358035077476545147278961817057957403422934545446554531536781392241841533378451962182834495443636228436832619734957150113392098178598479543622137605912638147096572791543228204899348089343129706827882585423002991180823686219670353103976626925573028371279607226517852979255760525438069340038927903892059007152565191835739355045707173586871334320587917496759308745199996051267512451165652563794780735715435191688613239049940501157803474720700984642701631717415232885208312613155274015756422749770215043142951793422545361148997275729537373458808638776428563197258537139959400431016046334770693074081717177714432613516745957416259167960053399427317017002318896935768401174295158342001922581692515069872819044203505006292142417838452924123226749753286897791831527663879634969424390442356134720886244805759283591889493578535294480632833297213737158211983570900258010523858828532709275097182168833636186477327265531487412201651105729299248946763805894830637661674980935676998453378178476442482938256390935603639738913623497665305199270213326284271720223310335575447274352903544145500551684165316610821083870415234749954982648258492508047894495807244405665611090221333440630620213212615608717290368629351566537322334261973676606423540819645943916357276139106505863604241493815285100535242779928739596159866866082775553370619477123517204058226681413189448733387417283990007159196122399914785701192589468737640147691588969364223653381974935252306352466073936911004228723284789209730231717508155324903942014223098511862504027261000440510809084841669244127902650448291374951495907481633314762967907768177307247615755692739510253553619485582770529598352964809122735286191236530723382155882614510067681615436558599385280825262388837931118837035692992966108357594705436064162682866618922018316920905459973771185395303035332143439594044807263668530768271893099603383394106854509438824477456370349087401551033694522789440449855513474028913038751117326044776708579365618279847336009748706862402091236469846816581908499270231065871498652221710325151253907354855995371130147174985958176942692238532826866641508842871998464718471062820779312484425673190839689832593290394207456385726560777039508880030071727393651306182580461191240245302042134808315929557213158297843956210310388566996168434165040177736664038770951617298543891583506171353801768050552897319153626530151957173541272923683813626167560949879952547215824385056589851918972358741977400200700228894708705669014811020818027948989622262151391608863440142973772275955608623776046689748518982109648123485911563677775452385279440516703399137009151426049641351203170023191974793258941291614883713879995911596024009175782019587354137642133756602256689192622280078775424131995727314904772703279140724350404654963870167535010114610790068698204801219770859282098791421311609144518511916028536034615337236202853970712959216910820274366865197663804041381719418337208914734669692810400960237414951044521402246588197924802187116941115492193966241514666831450036940263768934604959764016518437160197060094892938015912591846466026977528949714200061259647240830619504359620294041580099164867657444793415444839127903654141906176632538207159016411475675032602673613546089841634478621434423039232363277064581402948220099143422064393760531805110834547594568828843498620130786595502838847056473535919558787076197600673785956346861153329579302921794333470859309959135095432761504180150948452945093590337946559805381684195098826430427152324576624271813971855338859504489857193061389988969832449862515373314111791572769003372875428790866268883544475729629264786116149034627221779172310884741856202858958759117966736723705956781736313385746054424019542507762430868656174116645481212152877361103011671812002402717759316542198764781078300651808806678576068627113481315619256506067406621748628181365822936197005817564770814575061567089578507619917322961700294787100718777556677805499725772345906186489313753556035100838503825408780443335271465316037581623867643058315677923549523346173112878418925095170015017621473648016068263086604945514381760504390590636627773888396718877237742725547554189205042713122760622791263021778739733576388361461198181843639644076097432907057462025306026725872125439318542022980124832195771385967568539785752057297754967510001380698480687733346452059733292977786612605973806040882785559647296442632764934034329740969526921584753707700772606581232591352516471675092556123858569602274870203626477450148238069395018849607913432819713070875704034328645452077957890984475201676037785151986279423027673659775727782488784117816605166114509712258659651858045190715743289693971927401062612177663682058819732817505033238177318365193137714532631884549860369891951960890910320726641419339232874690462979346490652823600636434006930781679666144547759498223251808087227636120981235359092397012817097662448282717139206726057242464810696650368877427667245102298512245579324658376295897604692301678983276408489622786256168593988907300558602070052101444134072197142261390842528289850393039666065535147293015981477412852337851098869902310370940286875196968453656436101221643106379950183336277311339775479925428367796784302083834957185786468579938530855493951095695825902862564073887147682137231274631523362383663168245019590470285222941666015461215797547452385208521823692651832121088224472360942518779258198221719532210172094805951191320071000484032079320591993585365333146732960109328962123835646742443145656937916503018681785239764973651458405798320076290772095338904601471024672166426539101544491924723470146648682254181383835470704670595118610410438552631879256958154841454619682692169086672918989338361293254934555705636791569114200754806242060695521156842444989372284702028189770601961708100751060490423852505405809430482785445149782983284530163161341149476863105664612786749134710163596722882324051214356542990679902454361508388074975418025614967322066294588526423216843041704766929445422275315044579896277319865208920642077380917212093484880957149550610422421887390541692845502589074996899779813128104215239457391108826232978075734405415221919555655687738138984860042269936497887305852051625995171651910507127278718829150740006039333448890341461460786410899438476197827710099787780765270541446208212301228627699022313744331547999642024826036014788681181740907078124407451530490592565958782313253034572551808273241259127574351898286501460563510151523703064458157046570270127532797707820411906127161883121016820232304523754867374893020273586530544693377368660428478652104682563393908530074150909850959279354454337609879406604675043528117047681312034025322530732088692738998004078000510776111461658724317357992854644017690087712277168227002754026178741334621728267440692306482544034522909961349664636613029765729822104735519018401322456133152380951762575259688559974094790821073546115295861965932126660254853689164308245173837859804619672709526107400926161146736054676095716299374906163008758046341977567163267405612963333043648579836333594320218289175914456990299009696631908555684493686076307867230183841350334556923696406603342870373279713884372585987994869383872888960748253591848276256986740278053780116760224067159146456030397611723593265871368939416810551095145465262053696253059049670021312805043508487318117643032217171169976038214372631623085949687434759131134313676637277260497497488273339493690949203584181680938835269656238698813179265461845058640882759353429221030651764299274036945924505521832362856990572182531125619091000889450547141644870877743409498960062087612611089558298109841594051522180819440926890349650241776948729557911652476875412582129231368484676092641496427470339332693964558443752324405582094577205810827994981467824105368361359972948843096055569997358926886552130048487197856224106395324807643349650076451875055335141499071525891524519618716707258379012798307435468648371769297704114027693727196396361352974202485835143819238909870015412407399230755182932062926701699064051441316126530933158749891155241217687612936632853201354908876233473304599844261332176925349889055084204107399844968941676740681655738807278373193632500554924024869509504407746386420612076863088896270084545913591408474536457591090901491994679357592179402537243068281306517620433583748314252068229910361354414522069406743446820035295530927499554010787011456925820120797987298732978631807331856131331879952240273626324779592184255477176751100985047425060544212949995551660018066816383003467139235694587274335417240876315607585003196508314828485885364197955334961625379058534177258252606434565650986208382663717271925793236039013520920233187675279795509586993105560944009328073119676385436786030833001630858974410085914173548846939976525030799107494561859891391776658414504025115238646223139964581762230994397184006292140387602529555097266599717230416928937360712720951939733163297078597066028894569127130740006535107930448418226950353689744548094085335888282201794098122495658953899645764942175533292782237252885753848580833688313578755246091819555397570649331171761340647396337392587618583662280930678283961955501619225657539753273189927288494410976087773662566575526118542032696787877384497259569583665262373233964449514180553686271777779315053284525189428303013399500865987606836284050881274768528895193151188462783267062213078023526400880353883816325712825640767227182871943578209468328035825283937565176524408062297396994769913857732064816396230880586222339852226362045982288755043319236099593523159125452190168453327342078800816805531975087703301530439517603609917385784872397543283346919120737626043726237566062726029085255292412692954171277590747286012620470511082340697798370509395869519700519408848844648624270356227728722869685795081619621074224863818196429633558356611590036988759465763242193502347233986252224643753066989635142160122808952981372519763215844076122498205267250260474115815700163215049399705097188890321583186635183160846362405730053156144870782592101750125901898311507707282426129915083905415060965382685173875155291089719868563642029321337983099635254224957698408367332302602216438789776264841788119289833495143543826298960370812403254488651654559115441151523399846881265307532338571097006982510482214358338440436029912797310788509746190432903443743233847061904763135791987310566682388976318998256242294307538125197308546732594681186551653397405072011753126622928990909338641768880718694428925641503508200545959340156850885744811251780690736831776107488083035899125352135953141920173239076529653065117140340453192955879112767671937486386443137864791859849065039463691121103402958089372027953863678258839853763335754790756263490311457816774624403113698013639697645051341151212000794627388938218869288255418500090806583280645644751672309166993867515345429653305883267147526147439299515601768194662571894560188186390171131547357338295529096596854868057491224461683064572900466823116935366944660433506751317767997653419814726311270664742920003330312826560184133117431837042366393893261671981324213679885177134668969884205138014933017224174292790050592411040581443348134076213794439476422060589083241250158405371247892058738016334079518969371883988924927904056515935965724313535010578451728951157364555312329543848166395262744446578793073999619076873482299102662720914065090379702295989275966873859517789789652050669785875828793004247027565155327872971212660368819063112340517138909564343421590540863145721527615245550024421463128942161847035853713438469922238499197770711760156907490847463329788293195788318246504804019334751964862281487526160223684741482141718995592126254670196606680867321465041712413946300843476828292160033547028910976552464012200895089165738291122798661681809006083704801617495366343670852486607258527461185433742522756868120097406774867800869014572018936515667357354437394692539745848495562848511825526619900720484808656303381120477374140507945538135081389044300472020223318265809799081277259816908043628632364631116004817461803890784279318248652274296458725108534246609679489986514083450421807522241302252346286184361830709065195674546368176681840558555266165269290344539382512244327620332227471144830649384938393216490153435090098206292854912976893347633906942997348940440124570494507129246239703684027185780925912710237217146236668053217457493843246410738109667008922492573819523536864236333725802897738545564565757210547317011883733929053852203238170558270682701933053144835030227774590054006128241799760832764404176081795875683510580828696891654868601850403969003072074761335683903340535407517074437928834433797806740105643885782159618595735810582722589048030335301554275431914597141897023352553675314217618007634293666375821165706002455968635458291581085369025489656885863063499289731975598281124820045097123263605778193036792035720699920512405765525944774351785197512337815733423142772505390612168952155753642756859907107838493303380612058620948755174552251269131104933867395858042682075222705183383881233781806696199694638134155753357464880092179637997860895220848422569437334823597263599123327454202354051537534513137551318381830427966707069543056558232722816683437819966654720056988946718068949925816612334195595300814564774532730028742344621528273139019928617435721631752849739035660204003621553888736937243171126852749038725132923971254190860012941244255219763961917156367591179551253748652762118872866323100720582353205772200749559405150880069601680816943797085001692660733985440178074904318354658184223203714555301133225366024277196180003796724688328428686476540896247755753294404665759963859024359720530557015198320709084514435956540414961792964159687285806009828307495456667412983554632988568321196318224003439156842090951274660543679262851504810358013590549926726516546790208884425187992208750378519655884382326416391411203661314661925563698850256230997483633335628999103708294300170962738926095321301802462640587830578355294512611791147605866065346031005190041720528105318349525089762333417173435764163190969109503207626221487933767998909808119567370964056084162365638436079980724005343572168158949088410566303309915167771310721784668451085552567034855418655927591070955329607513410591708133766269710600836498065371090085850475966252594350297725139628826003857235413338996344420549929942160045601381436519895237129597096818088548395429480601858220337615029734519462825879704752347104886202287162445541278347442665646563187189059962121310219989105203415417055099419188192635330354579069707251569050686217765312451964149355903486820376062111667518225421596075395375159626732389519361653562314823394201391948759070927090799968803962734838319318050376866887021234591273737281655527460355649179230970385458782678262352172617279149202046014915961800379506321365339988341020427097373882250705827199057999277407824570703752869025064672093733891057488524121040372820783752159603376759913226831301358614528900736458799228592559024910621217729671050630369934098470564210363295125747349956235089973108225205082115002778825716271613585234466682008744443528877207114594419390537873547604650161158079110909334077668961265113039820982461384420853611547612298969506573432015823146754744200851007443282929203264056023106722809499072656753856457475455808853406009143603833120101709815027874104037269802679668905062100440335965028247617167129062701670327717658437717860524457519101365123787673031880779947762125696139605647631076592159491544834403893075509090981386653767461172751162265822442829345579659851585240181903656175456942261859550148663389972076278847630938359984923965472881279903460437618535722866424472622709804005479569574796507378232583870669210297373209820275012076264022743513911282003835602271043223531633352439049025381380229674194407574642957669623657214695583322872308073484242417285824318423926587540813909449116648406283851431424425001900564521557471099011505789817504391328328179086275479112455212654980213921930075406494717565635179241362024002042581928978701963746882110870598169369070912777260511762307264878061183558460115837949316385206521434302145805245042620276817885931256131769737690826105791187975760133612463718841947390427928292570496482052705963126630654611656654084825351562623401451131579968494472854227030144698354605220514885601852552737305366285420638249699941011253275830344131230369892999095208202923974655387244441920415398655646479269687792953882137855358932331307776578684485013209588909468661567696839425631920451704006823289855178770789459261507274440647017960257680570314398375553925755993112684226424450362065664664506597204903350206968965522517406048201200197188208053633488396425468619331095369125365410779582190859123889808691681006704339987327959727867133306261323009387118479861885987974616721633424601417958111519999848444845215269204565600239165946779989118949618463475750652573617037434560288609032208380787037620862362071162142580305185639831944810005444549855997666338387564229039343174292481300544393523404380561211316552941334116671791871243282437035374689109633796179677232509056096573560962832163640679542034508936346139472107231005832420915629632518071630690586296824015436781185760221982082573405479229718848559877754375371946948810617086519966270217061956837793557690430103513212356059889794006827707871315774534218792424102464499063005087470622895024430354851758258213130139857123264948902329256245725891818338750933529612708942089155873667378412523091293830329426433847347117032570161500646576666916073789819969003019150559047042279345086015500440959471003051688795869158668716333913161384529398445564461488302635366056500903109354300772778857367949419747448419827438395202050760010107454761847296743625626660252849262794592149390557771982740399909752699032571828545331840215196849674897747769879745933367431872787301514513236026570401264293712715481796233272089969487843734750117768820795555297975290055819319695874507658524071121098108925332476444355146380908127697409914872688743415360835322800851448011100327564804202589721437432939539308580092888847174282586093704162623599920763279087452058033092397012486305525837345875043421732240758394212727053019565306733648402973644957943747512935160622038326956857443152371040745862758691860801754462798236993018647479526616519196325233223733906357597568558835977158745257010099166232954859493591820909087433625159874774407653240553861776082719416015689887252876580801174807291931973907893638437471591909890353049374572613808976663690584865243893368052551909756058825846857495967610524699652443372405236892295873426775156797579846220393464285120976759822176026911212486176298701117728711021086447987280063580311446255121575471076828491622050381604199562240830251138629012549764345380193106226938076064124460907254274879945292083791797803269724028606059507008074697221561259344674792988842557737916565012745956964371390036084338337416914027787483851152148838502814300796787463535198662345704080248355547693876200911718880991179599618456708803416141572456772495596915737216177659056008975438796490409839589742628922874459996375083041584157714451088224000094392314113788356441216888410924020606362332395368205229391488398533173590079003451755239955585948726336926246753132649983158289942538186111398241491068978922248046503621744496849527517450127166255645598880166040915459045590612446523717153230928244920813744931901013903142156299503729577119908939866179587499695094263905287689764747273841200224586976359773821324316904521576731859682973547303581441869890999719446394065918784348458518823479778816528258904625055334284150254599615651013333662905294812077151275696960189502796549944494652086197800195855223857809313645165701006255414040788653607075805068571229409455303430843239809460604127274672061061510858244902431549418125802397027081347244526095406319225362376457195103425203047875069571845299922529354011906292253039464482044143233380233010914984563232632650493384819631115182532857452493360489283655558626885373700626876173846691044053866487794180228747948129315996784776519360508004473162281307119640412838122564649991217440222754854351688548922214245165069528585102748188781537650029812551551625370345419599824572025166623336730562022409172726898561461368460050981488706363861959202361728932836541414390520418847180705459846688673290390615880712839392041178196154914972314789846509650578957963889856187718699501242666756348696774492043985926118329306079970194493726198780848713768833632699856168869238995316118731500064611956324180495245279793260825885305818434807856916069322898446364340282649879345024125501319730397107654752016809028405857106476367440180676337918880021591874178275718784373825087973661314384573496765411308686794065027060454656725473276817902935029500473037889822579947426539595911190576622007189680310203656522483584653528551294577960483849178942956859728206696810574843369081989884695476192370448428740170978465485307970636340084471999870675682023464196495217635246074574606005797431113810253445318093091877703955745131161505902062419112996527084637963089538262882107395088906591162057868652299519211650445893429252676460126313477668378802877265752140347746895043031806741147256501294204188249053701452343663117358472484639969411174973199907985899438306458391298170582169643753715522847095682053400566853511082475853922529133073499879090917632820106663133662336491275436886841142801874515614993110060122770252642543100323560611015699569681695024166419208676961299735272009043089493977068900985381447809393778371573122392049292788085364502436797658031098612877399029777146302479588228684050196095231220793295582534690990687109695596235702291290532750937669253298793631504174498503101922492552095957581777208340574260299932307246940066358115681078778534001327042318908858329393063491269864223574418096687620280446133335080823586594203522229301898521230925151245986053630217372008165271656107356672701076041730944001689981075597397670511142274340808640298910676190826521926958949657883033022953298102197246991956075340479483884289541494603313323976695346974783404077571011661053639616689581039009133225266250474659475793062508850486984764722223197945667441798296997879519107110074407842588493668376502709966610395635066607362719737988495426299083569430274042861887946870486139408211340252326831384802975115247237480736022055078639224433067074138725237470329470846318324571546358441413077744985132900608124192184852267696160982316326537717936656007890490415225599603880370338203063239744303136722500832074985136474474828853010328383056943892792853012914315716832705551291833876071344894921958319404067086978717125139483505294481668380761008059777965174474571209923347236849687183305661074903115086535464700571875069572800890482493218217717808832973094763386733721752837751290297578190430618886737763059352753456848319779133573208502718940085601065965713985120557416507492657893879966694373478275958743113398286441439685409120276883488684066506194261607923843684380834362989188942808658420197091767560918198155477904680623440565774504137723642558797779557419814660547232257565610368132164026031746204252470034501567170176338034189085169506334879837169805867140233020487122402740139846731694747252748031002622053043166969763861943663179475702260633772363865739311698697928655659471079333258118989580826204549018107945760882935713546426101802257220390766303630949394142082945860775324432980785440134528471070718715613224660717102528551891368664612801380118021724349437996772738972223900195816260151125297714838634090494193242332013478440908011783975356084877217983595560542380789472842442098376258089563496335938003474076912597362187518363960853144742333669773592225952419708602010007995604168755628446595901122687032024612590334056625391621933827218317713631179730079627308773178426208891587328493413743389370971240168116272116211286945201505195279825909500040194908592486633997768338010451181713771181446120339496655240264413687413790884179634162992512780552445478740145297608194671550112880917912323491309252233311658707995877656884459485202964194078469321191411121546632422213051823164842319939796361565169634119145333067155254988507804601336050498893996059113742537528637826115167166989914606562098576247082811095841328587915126448755623838913272636788966035004791139175175557663233031835830542804563349413239250150619791970638384393927281980270267430622998887504296522827140572830529697541589949466768321802791805093696285736450129244850700305474629832828282812385286840071603844672943421882391981736641300755444264738312205502414057949809697085907477279594079324902592243614271842318120312503911692374435440675957745312805589469223385785411156840344749888960788846747556962162522550077720838079049647946748678940371500969318103465698389953557009130544251599211748266191367268152463210696147005642117331497199258646234322494220438897633226427941383625492347586130078012747267006752405615290787165323386179163036162369914268951763271752852670033128298251985208733898838427677853877998314757802722420192568347601570082578872666467438016536808552240698487887231801060985471758402216893786534904799802337533501415133765611976999071583287790611026751159654449714423853199068634169900874625476088314061966341419241272278165870772031030221693660878317368141890525124371927341339711514797272509291213171879164311778403886963552205193377469061888679116248200107216880852906160300885829717189207655018514717862472255522687170736878216574109566857752809451390405923414954182131895476009991865979141516763804924185096397650353151526100534242539956458302600417620109535960631923490508784315552243012282541996289557945129122397094390274382293141263066329716370297615103462366480395775089219890051120520002186371365603725807486342709542610255711832899079509378781702306316007284283675481621808775919872400840740150062822658748656881346316419966063528020525833941039243051054203935709820022103480216264656196505693283131565119590426683708666683342977003941344695181541630206917185778257047519840943871916925153206953408125238882017526788962848233951646670903503221769439561713788795083679705312789412270976279849163288578930642077608516284506757311841612646722922578198535300170837197715230783190729016414453401259528926404253696064604002476979512085928652249374254239485222058221691391738671412334546347683075953117466759600226108759451123452510918843217616157119864523948177080212620603099167461827599994200635694637381726833367127868689299363439240520194513937683682791094701791367913602652965451009129729123958566078521671584999570802861761869102910299632682298568997069125824448771796653981464160709027511397674750533477789540521373336738307659746981366781154162270702397489365932777636553516464388236770552177141252562977716256008843638189743001634793036078285337227382116164533920239063862682703762354371069582160942124889672356745257701427757772492534374292036501498336480495725656270448491272142482994289620309475713238333562154011095250865472451190480230607331104671096539213789636292428007286669070749628892294119201033937829839008049724717795721166896971095043535664692927114594069799782389172465020463797305673440877894244310995571688800974968766568061235584539532196568937188310903551684202096530163782931573516656431482943030670585528860058066836175333381586964469654280042888811333581130823480196782172683295413696094188678835295229874752703362410903060268564303679136326966214635334498037193836108577564569609699934689084081008826395172965727548983271302686929593314077198860004790700688616944725925348221188707676021122469798827166598201652954721800533056486901011021396173000282184168287341960670568313750918407749692813280148826636092613508165574002894114874245183010526878418876541378519634232986280276495354405867087883978028593161550549501322007389812291452909045943233351103773262291232515819118628884406416613213712944492649932105863983331025387372664386274881955805766618988459512410919297533702960181049308268273836286339601118026118840135081071047346350492652551742411736290925257927200533307378243711924189282812273540967049925830106864971864976544876984063673196148536588563089060706452655231986955287501831954983386777653322639800657653737484511089174421085795477941897818943957613353982130115115376170379609713584403600005796041959540812194396348059621280815687180416389797069252972897495017496266643577989800906815232874382365714604344768567312310638636432563755699703290042510731572983174020693550641131635918951976310070016294764008613958817227719408742513762916406559702809189999819586101784723172019295276330598113559126387526498558133777186328676683030787443526646149252658649153944279123095864262421643237667067252467581021728173959236738236403969199831875813248635058096046371475733213601486377501410131734132081922315903849511704160297809608823570646205677788017629761153511401062152892643168635751058665705910823271439576596341455986675849573061218816453974949619007381662181427839134884634889456498195088875415544719059080268797916778851624322743637948881460239249314023132706582894674723933891284370656365915569238615903264808004363940216710396395712309501365780893747579005565355106952613372944618469309765919703840562290839995227326429701192627643405061995652082866276526767484510711787127457000643337971944286680391353032070276570567746221056691636192411921052956838671054411042722110937702311894994171347796812584338110412312376188489946042437221510095222199012565797191088935294267607795274385740171471162457939778559596150733176123557749677149905887503015164513600918594898874539289197102793158476837369762676988845572102312174000977548991228934246714341599457725432045391437261379751753006456332527786554339560163801694256797829061361823588790923909335498501775445529186403359884100619284158300410679365755832324098511374959192227917746181681357761669781361935526422535802279956825642984093990732794599829218237562776193130536415370304068156069454873899959911630552457241506074875173908917709453472199766056811162209621293089652574722547513205127931198955975648647587226247214847755525316482493186533715172482774809365787062098638992500430190935248198779091856152008475553331331491653702628225858832632160383315584360653171584011836295610569715121889173963877946056590806862641018056351573802298370464366362907481504061080138163920454250007463135499393491220792343302108495584105493798094749500394308348221660232731741736448264333966308666237773714828439489707594385942365434399956510535457565154326066810992675183058903281070558125155934512769767927185331385215596496452066037292517031602347761513832186964395580520143801785236331401586367546588787104095487952857987830133502000362726883374281618015283328037074537453935587192088880446098949978583845072450445621804301880478164465421793620962105350389972388191763325382684439159495287459119319256384799827316017734572041176098651008104969859467097599934303696365776037040764487337799752187580597442560921195200985497923144771523060906438771365303577824053576199269684639883910775626727080184119614779663140546253168980091677588567534144418084059214228254402339601014231767095695720657879843923238358087373751460976327589711320388760948959238221398872630083826399110366262624258122820839513183879710472739652936199138820572807584872001887848313370629342260419236386873735950195157692144064727732759141351051039003056504339078301911188386171065076377054302936403936701798476713339433203729654333436645058475029729679470192851655273473818648290428477727118806680952587709508440147265311659617204739956548252610534999796836381210855040570124621300484829036708921161406501955733449098892029574823678417689129615684807673599026602322587736857256765723721644517960838168777824304816505449914576496112386538039488721575388356384027169420570075128684059014003767433616864323957844374316272495300779468213532832599838597813861494754246037212674298349759261600340998876107869397788704142566760196873033995279695690113059919068288516389993964463461010056792280043803006235643483669830466077453013730757050162438839508525078464885777042706647438822422033408964704207063721679165828426394100257448688274972808203820783302530580433662386134005498143944915685355085600614711765197534355841399504099976400233455494865445158869080167001057272732970405701642114306307150164642644853175791717701059101363268920443876861619712091427568853068493130923406221380428616556642305743141854555673564760041670077455006412518531771154448675308725883087939338400620780381583926979572111361349084496972579367386766866433919142170029876894100804984899655757190758617663894706756443217862905129475558161422650421858975004583282614845152599961118187332978741594261788248342597610897810529208078035425669874314982002527203659671199948906025698785393428437678948968865374488279283740615988504566218023002475858395718537449198580757927003343512119703376218781874523201910255881975953415487534473340050388955575433947068256209866896051590667957164809451955840468321916565545119759186738968516890834830451384318068048769773672266341402797888774915326099270109368753506647991586815915662223467801525937284462411923390746036879026588926277272422539631284621592521260384728647381331557300512786592896055741308343460950457524386529189375701831217509066576306754319931621057632923181708310255450555850487139704781902630997048948717532601441658784267457198845992674332928722261134368887595745334954304002486499456119809429687400436007180669743555547204423934975075023711671781144655739792823601071613257925556139516175155350182849484338027358489167255830611096830281510446467106002982301761571941082249375718392137791016197893627874403478582886882345732664074680201180017803211484261379568389917181290832625832956014954127868239083579304144902465784188935838789612778633218948559974814660983346806366043658391853645249537991822602323942651832537014765946540468325229830561406689516201368373993371014720734226607839532529482284641167149274549104177268958698320954829251734305914659977465648149372499566318993052705516407456518294772553257089945393218856524401273129565844832000960374759345675267751445584581970152974125045901275760506944699660067566856821134600915082634990966836408105531744467587145375907454770859471789515335849866550544153178246004718515601290078311464041970953221501559734504761474204047547703424761823168831721997808564966698173823554144841108168675652449855736343666231320545306583748765079799174281495514570832695848059012433787304684087862844860581678933059288054085393956336416751371892750420140298861934442380539350013686911025390115997443539126845545944480828884083257120654286951251603964967941003904540849881765969376478569992237988900364788439969057804191790668631939786826012596029857572655235241762334831923636031619801484971307651466890563089243705588559778726993170126304966880620282480158590997996923417520607749098806721145848699768039869625426482897261835020339362605736324257681518537562706459083327170128742851625675196391977608682482619070644883983696501794807723092068557621524508727474912689734218048835638848949058775823956251232894112106480948670212866244223447292910045156202039355757824534029015234108614901138171193393078050734156655261445237424027640639640658521629152212160256149709818059805744754704229083884619370751044051269691712424143367279542842738558376003027010831900357926187434573353203314938130559715454990500085090973431861158747405903755345833439142296548131434681673346543955141510172249621662708781349460381954097146920062413729695716512854233193136927163915469773772575927005265491819442012016790415398610525613039167273393751181952429791582967331698764157374701953544775440720232582882074600909656849254746182343766810799354845919193953165686196174943180020457273857944656949422169991523655015351791880179756077288162588724377579185550864088537744184026047344043104478421639154500274603263053562996135606907117390305857848549409070796387074318984554040762834750068023333640562532468760882949564601735841727396462935435858269000486485849081496858411639960824619823160808337768208009141062571710517613391516312184169396020595188869356868572085960628131809292221175564807970339555074037514627250350139802811943472118836391933750165028978460008477577278177679184759978162731217701684316240111735012362391186459967358709798578541984480269593820126573677797621349287768932199204602470780350567780539070572515445336933665809241184049042250465879496658512071974314883726921687144320895723178284605274115398211316087389575385719050390621560297809096288723980724212896083425248714469498110361103696638344821894166422135113019365569955091599871402319356390626843233812756845760985242486289034367585858194029359138257368080517856318705466923151380047646614116098031262777415805141036811865980830049056466681997616014621382262921132569732436182542257315366157469646678588858458079092536667783834575457651788454633994931732899649275697918556410102345948818389110404926328612667099922527518771411048229422710310819246285042501167503763439309359935606272975873346230915228293123340570310749125109825152317659376797798731543559176454538464837259014541469272525994521396904744122183875079510028741777217295000360406705479332000544794984368513082035529052348330490922745092909388195673531533315978526654906761099757691465139778861122250433101973100431413160962105944193435465045636983459237849698423011062952817645142857658471635543444731475099527229247787941641384197932939118191632766844708150531508742746954444579319712679914808726740102759945878808261980452243631459002410206041310361491357654687767705039262023684452117645087810687806558477505778407216735295953200880258856347707879066798293740674990931566543004647111668332102835900546165370734033209162950334733983365687929479248023902198372346142641192339026714842778868727680743353409532863982729882161041305377154117830415287374698692534910879977720061649356933602255589295160003914602652535388667123699112685582249539107961760009668699646131256136900576925577025818423687711408464530024143433683734782373755892999879417531628308637580371787502763115612005783682011969456773135184775528795670973145037543423003620778218878449982083437222394132013657249567802380994579465203183561247952869818855131073191289904938831662405654668805567990859261101401689671967772548549208219336366266907763136828132824233132705823073601820084214642912121664507482165069434531802559654104832447831371154730266762081489082820459173807060083604718311200266226032035720530680562339677921754159462823750466283754782618269723321394976793998953556409880621311920633411459871806923613172028822885116993554900106216920445607087204882117943754930516965503560216531750552792499335209182576506922985808824399728371153926228407858074869220393344466424933248702741387190369515974573175202096205652613235336257926345633990189968376251348026739316617393788263244828588895725149658138949744298550283006938947325520429145384959694576835825327960875008475538823598714857451701448013969777140089750726384439538503189920576139543229849902940223432150669851052535185967363108653903914017065080069306367122819117907328270576075625477496245341284784395519127682434610901434729351514707345306179107073398362719053006385300582166533641607488465924923142319348211393086120086537556362652052279806848254825863839083885865578049166073521627502460567639263875273633874167404868916053246342251519904049808694166328551511324071173998508719890718687317196931467951865839479480273116875088059014208776723768044744373627809024713169504875164752510563455316709772952922910971507125144975296006194882198520106172581881355950564145942572084816782630399521830984013315864062114629184550314095621482247556855782051099890740104664418415335791463215752064878024759713271621684464542830431106363744351775315470114008014777250604822846937453642090697235608161082550303266723247116640668271335671193362497990295314545624457573216477550992509268716281666010262455855833480024442938265105455938273099233070163531914959133360078894320516921379796099980298887060814259997001341931823918832733495759987089129093086120642178369949863601557712751581357994124903172026571895409856058789119848368960042906289253673437867325009507955875355814491150728057506358623331475516830963512338082992130552975207030872043048906809670877960952492649628964489700775895450352347533749226167834255468777149933961640688568062669673769958720814846174863395460088412969463452571552572275753603968220334404116175792836486768942354339416257715789044126750080757487301350634734949893276823135344628040210700607573699922360128252575888591774876113145894439130398389836189885845078907690688698111379459167249971446190858071655897687047673849026479958885294137588684544031608584699478281021310900811559991857743487371190634135981101924526175612460319306666953220204901643198506754962664388003559254272724069388728707061006647926784850470201375237066908280893380696793705764099062846707306474957004214360839164990568569338319016327683780187840208298456746009906803258558586499158596532251471061994459110294309270358182390684885429875652025678331659874912957737807752541267980471363487813723231373933105324993236541156430133176781495759341891034347463790990952153919138620916954435229203545417222611530393294484400538019052502080465626266187274724923152260146426406000699118103463196225861218473406777890445773791096557612613840355442330155009577528253610371995344534118037056236206825450691792743144484649267908114443892022406732382623976963569379126123652776721028909636217118181402424683581436302758158882831117860555349955795693888265921412159741862473680133909630544736570115852601315852939396830146106437701744453746625069580951606256431614591285226150787956276293072518571423075207332989998399946178489499462998158509460303575561579251278579139079298576365283039971707012281507462521025693457525221496564690256596469666541066687740440210688808547413849866197992688296261449790008898382063822818021132670112648390613415053595552312910246955919431199174423828816616197559580506995809832150670222226560016993956125307157359160582512276202616263290704076055704494009228661279039796418985130477150233204616629362422658865920052924869154391778009767042946469478543872641365974016351397301464174309033532539622294576605419671376795802495678802186675716139431940200589335543009033012743238399450386798141416668930255573401919464910653759096326580903808432009593335416026687887703118449863789436329216830530036429107576867473451799378762464082634390020881201465257415288927858120881655523570418556743119648134596956157250677533915667627487377385201599040919062963538482282522396973644608379345660028809943736514724216958119055233210141494821912347044762753505682308249876462884100932967311107687709500085347202203156837610715720217735555099742008954237458833753040542517099859056554359029239274321833427568579903704889151119329324261307566943204484515289843778183483631565746484872877244511072352057661539242947079643427247961496518991247961537068136072047078544516772153221965889711039977455524701342889014041584707639037434696249118265475756254450465074334467297038628624636394248486825046747115375756354457135959844696841506462792343121089225081771453312655472553384189671784234908626916647655597387440929586396404864073723255158711608642963280428895950104923987031447422287740299518448374150028160580085789719528677345489097955272589856696734877731148845704585530090293755056912925397533450763958963398607649041912083370364874160823506446742338472756826612646463467326001037854146239912683042437266965595376170463249824872503173766937412952958540293277040897830795974037535001397174254031683784189864900677332815024469362277455510022384720422453339556651866724977865191591570526123195858011033307255174041274370655996004148362063988827779052151195879799063128248705055918701347351777851040446051610777176513236654722970191147173006978874447133551797157960641080369112710451687073773572068112578101648732379042996635092062790980023958711115446232988769082553507236328537231572440704025495587438098125831143568973899809292565413240163501113853921728516716455218456819076661701322051938187999120391353916812305676222493863019356723461513050945341596810442715022327398009198213484722644256868686056828985486056651103715849858883515156846588278249589977386925426543597774151807201531576074985179777926873003564539521573211193011960858546384580726536356265108704837162048829722351574352225970238675218578857826135911843214235941635438402742663676021376073723222351147264210129455427093054264243923799965111553079224321497973541412678393955178713196303976836947454122399173520291393874011773260121504151780574066774805079228263097694862454901185359414593641872074460845181534736764585214719774548889994940212673360146834795094160194019039931234747731185094245857707728039967608014547259639828173995170008898004605637990127017730877333167051603982517924401464294838049477719906684678227960393970727068017086915805214292548433960858736676533551595302670879325977037421416665115775857948558023682121127498801243298853163999702797464021569768490919644262602093370739810613619193290392466001403395169416478070034397862864521756757384063401020254680218017498294082591213787797626724193733513125126526375890142373578951173034020910392897622406163135148624335430127193318518692397820772992688921594917699641861440762386207010665731655620533581584364252081342384462920592657608076185718830071054297185122575420688978993187567205522725688238636449440407783272715110412534356049397988715922395875899541325579544288250651244178057047834421912450199068048218520429523022853174218789393736251753096363958523986930181785071834650790024083140316311731652551682563517803595690446640260920064878406113706387192026661675571858934500203120478150144429441191598757989036762220972325018027877260358019220216240308056405863718851813658790634430114085436775581041224227883652691508869365799728983055933337865592463043499163239738465590716113554552437192527829848816014209029180395369721325311331927808757074958096301044644284177035151281277227578132110456254131150784290154760537117015261938627648058580984893818090669873168749196568836175108618394158274255958867326710881145025807391785385128750168218035683788972669755659598527303283917941564840921136499345396159720604780170480107115722749593895462206803565674164238165064827925533865139479231957732838321296580196013037781835263341281388359607493893089060578543973162699591143583280582284479288203808971521284232222258971417083605965066009230041563846494983264910117399269309659412442994409364013948350887639082808302738635157478064056635211875007324281998973877476756514835058391199956330341649885471405850393685210724018330694698796916265493695454580102740436818148067038843130166517523138997966517403762215725670154992192482889777953613540885580601682492712399672287044843271805403009094284320700548622981906384073020570481634518911953899099076826952905572817862751939171231248387068561521726614966514218573935399164951181156776035193535185009990787120269602865550565937171699820827050167419466712498277782431015856503428574383379450025861722681408763415968415088017454634709327854049361387819318910219365573498940984429201619406436208129480032351447761326293874751456586222974879640372907850740333810521562471376658226293508136951903566390289138513155309163182380834582446442504139458909284534982486364377118605530634220185892131250400750950788470941364923436564586097318232104201341706167971676915211835252811560465024679370703415624731897774902758165110303816326674204810246897796583667870226200710055457322302715767626635035858925198180627360035074870532414915656217538807772000879233153183382577341118105218244970989942663640153186137031282308879801361439457648663392590748462577988843558597050845105464405432995901496051195054826363623134036891519993778598615049463834924257035842417670682075218981745551863513259810484837795097974175996225601131729244732628720996509417732905194589173824811580756556059260849637281709496332797734824420611614617074734057337194142195943827412367915001589965240552095257358727988717714303685635892571229412571380402301930573032084922749309928597845924499033447376494951851823890315191870684413125193730735172746842683810484191175650755393829778246024932994356928123361193549913662460471723797760106007578140112449671405844956594569594628479606476040529279034543991181117068759013440454121893113833927964514325335827619026310960454315389169570874447479915425696403153984487908643193535168796138465152858972427258173686661776695148415633686128531608997605370467814538789634842167363429691495042838912647225422251685319162445968449821622523540452946624663061562423846449547703071791023544452332721202348284046174293398710420659313698415663790906708509680437883468763349897052547186478042031912632612568430148752996150329285487677271202545844233364245203701325040234067246916199835909810954921297951498348116297287008542655452370672057974428892974990473771734181095553921007768040553135728774139398960939252246694248170416155215741494943129877675532781241656900017292056957226416504629294897373458603674206630291120151617575012296807972512193743462698797173489627769388318870815451388009092742747572249148617738449235400029525963201371528100274241794381367018389363688725584308478157104909402743035361657475768144859428369152389706274276246526139861101623859877508834552267260259817980370292687739323403151521402422334819867704810645622340439092711766110750687128734070024223442793235574543704568482397262616446538143854422252317518966815440602601794641907724112660899040617844138714579924435415228322252908178434697108159795784232364376027793273892273483383033675666433364353913841143581530988753640570908887761790826531807104091271152201911014027867134360565695962220789605673413408540511491424410708783972467710222831364111606094714260567195675773943292622574358933846185201653406680704921995454092481360267314009088155394388062037221389595943569956747504660973793734799467153657426556977294429406694508168447353738737986643376102074529428129862024858114758643760879814914723545503564032042632849799823494509986495570037615078922438968390340364368528549176126284911720891694089436240082758462663338848587697091745903181572385506840638456950565414586187622315645455380713750849467824362853105293320139520916679750904022173259645765282832000649077864359261685136290166110094366187560562835371444778067404154798759478627484738227979454295475766775461091039962453434257808047169922061651914448936720310019028656543264549875718613532173528903689794462828551948362107719005675852082908269094427913002819047032596406952059789263953194920073704109980830882022381300609710610647856836657372504255259281061485125544625346796077553843938031959534436157239454277612936821404687586922291245717761523101743573434828008713378404888729558000532755096362129904210005819246939831306821320484971042732941214591545080510053938356501332103621457892440248858841414043041216277539615007808021929121742391063128973348553689262035441492353872327985675176099751093291157633559057601205695241161418159222362109097312048967732333776442101692477121880334861406438276253053048206240090394108990308608969904156890170798907006479520309712720800454232563060041251240223597140547750720085134238934070049539767378596942791313121097773881372199458743153036672535501730369108294980843943484813143316515803631989809528540028731929634685996200296661574413887748767786871989955357596503571273104411657523558557848178545890315402364195673852926560937881397715201317205283740834449565800406149278799686959987992642089469076809117477240654575410706241851281003738078096003593492768982294159404739557790996365571522696815576994099307257595419083698693205338865567915182344706367959177449596320774588347763443987146683596087555238234565053947020076274752846948642476809950963299425173255855400897296692331017437294529746037064871763412976205189177100560194383095203445839390572442661630201306256040774427744429120037516299389759066326746160153245268166926042996480292198496160289894828036036631855589576304099328858691723442061525699225286670151127547245793648964994331676867616069040355664656912257357456656213612233223187624983488040355037273211403521595589499870924753363445865134496594261705801584519262378500253786935860867889832789357097490178045108561688023543159345095958142664749255410273277043075094760328059251012712462712101345483358353005838132907274975647669404950440453099320909928502900417819425788984306056416225023394289040185397460335770429714133992450306391109105174527207611291482139090207182602294670771777354735252851960292700004111978390491913249688939400560884790714145992626708645344215077513167712263764782861950251409488607354142518583611178138712021442490756715334648069796334322004240587593118728155298047828001178964972433205047019522354192199024783072506515967051196334395861130669992226436509659000300901240033352102591561795255654132939391836205635293977862313288711009618460567760979802067897243659890359037858197960334386244465270205881186805906709483113343685044209147368207692431910948060357330717664534389772640680757058527804531090133115979582228764632089249572900094967683795317075250077556795103448603642871221990668178222455540156869752551378800276816082711751194770362025415135154583269051058670551367155315100479074127214364897561372721953248487994746429321084976897962937840131450184228949013172160610960614933035649206350693963118560356216176538784911716890684290145213780834269640830019592558707554293826176368734022801461406402589151060321316971116228673673092485764072886258787381253734068655384702484944661138228951232937759368679803757097526666887509357020380599727464595849514615217250458670072693644530916477835414949821246606029896054046675437896533845277427142872310776638318448686406024332249967191598529559790331378111415965325236868303474089747680166020807461626618820018984673075792554213583203612627892813547851909213372108202023294389891025027996775287215359307161864208900276951509957265177595374096692303005339513951607903265379601023305773575496241206222511430749340078710101358527089077545287522360342164606379985488994148670636336956588355846818818883431801575213709118845867431370908370138151816563672157229294798994010768480401187360811754032472576208043485844289454416930962982766042503307583000341711711172405667465618771449235576705850264387399133896012326131757224801030299900199337912438039806537403419074063978032610265963113296797493783745179839166583376673205224207970137989153571268910910642680266078993020224752628491888556480441850800320577368934323031061259580005718930709604798274482342924685972374177744300155778039928471991410204330287211003834507867272083850077589346621779754444598825331083401435830712529088380460033897904910863003378873277865018900743897180371201685216128468429391469635921779751894487781331882586033914625873604464967100176708340701612677075880982381207531328631638986216828844567409458197337782978492534407899564558043081390334799400565590895935196151633522472981521489612639015817485698092704915172691660782003093390493450901065906907238905541297949096120555109771353631114917748086940570576340241263494183590956503584146739824976075742390769744847798070782177030458164663276426750146477137133120622586362107332609858619173433740531257875016443809266837690975475515028886469251398788398432129967148297068810100202260638621205162837477035058444772845313853742677491765268304279960632871468435808427076089281047574652772985296779460705173097033866462884483508077452681592894341113657677575385571373778072429940716104119465335950883196715826223709796052618204543713938813177437206116735066590188078640170726152505262442286051517403958572435526738743295061743100259876550608427524921794053791430291680275893074604696842116147456265638228436180158840959705532554792108421245799713358694546542003967232938430530157706299294867161898410343112219640504254445539076771148196071991021181166731216044864001430531992298635180822436643696167033676149428863549513939415065704328731923474624505105939646222561937186143820951573619465542783463236165308643612460339048793681981283750137374910794639956264380019963779467087361604248738623328408957145240221197683397594468449790403101922726697706126331778424538495741552328592295021985962341783958887655931784150013333522491706409548532646042138604827712833614479691839242857326260715964767297705983715938585457745590115511234759893589362829575538724847886844886422812862445710713983842087267113000727351932552981035314680538247790060759796544463640887238825836142088712716218004593043694372974799919165259617397505552178187289119209229007389086676592503034842658192689936858107516383543593664719968531722069650428916377023982718198402384423194466200481554840471492601272447802266171367690985137181619252638508227120255759595723919954811463892114207296685914532571101956716859257987532961246327786869321147992487020748396891122517502958938194601716403734563367660932696960178103180899698839649735828629750469746781305779804766645311516796568627554641457319396469961641146320296149534932633982534080773329286817824213841268661298278019631828926969273779523506700933506222494623889703574367478312878345521864609316142475006357279270612663916813879969365427236191156680324810479481850714617623261280701609180859508241799049792378665836045384626393917039250982347640896586730020109313942632030268156985507727945087708443303891935731621789612875987336984511793189378157108336002452993955909003027622200861286027823535287212873967619415307335003642481555744672700718937862978930118783912470199858360648473171279616644151163256512369939657457854842251114220829468113441040949987822141212661643044414454853981822331038608149062733801334666410052336748559824784173556446417044609742684801730133657298731497746930517848965283915380807685651351405237000027015276080809850119931563211269812454544238961480863009044383642758462526074598250297491640062310142292561164807300666918605956766782084668257885828751134068277587197354838196378819189164282992231921153581143038152423570006604292910617569756668956996438273738991386867353891445537768024574373600476712004805891639492710522219025315559514013644139753318353000664418040761741172324323392287074262943935678270752856056228380806693954428579895207857477184746210705291462940419307535451768758392707121455293232191318688155974387279100202443951340499304707327940657410538410601789003722050436496563930574090537077172896324481803896373074528884683814770607899079029676043092178888235138433613930652934025050615052458453192615525288917675633888373865443038940675320925986977806205475501577754268219564114144856996714427986080735743968159470799377244861757663579460699842071033473141844064079633562089165150259505670229606106799452376534533670883476817755794652423543404592490844438107687485616647438382502589607005902126565756854298240754067744563034433417249289243473599378793740790960039893559866373987289848795913173119735454111757514985908729284265962352610314064266877442480055085441234682522598729375902957836372781291937537275945577051479808945870406274174077813267839972093223221341725219925540373228315418185844554445567716145497345388369980123734943115971643181137887080268302667583459639878744669477186167204869903046554144858402362827885285138431786667625776193156340425538618643899809920334025253312285349915491451783606561952889915868359780014079450480788968688803814913940598447641234687644570097549352325036042132541609084645115355807224830333486489053110743832939422983579300791683315924380725405751913430327460886490442079647252878591484872737964894292477974655758185982055453842708467281392714884347530802752849061486170178257789259344244142097792091081422880481101226457769001159755871926254799762750963876563167450642592827969038462196794946747038927065624881797272299204054405794566851123532870926363971496572051587679694016383310960697881773156240342832901610065922240442130179432235046361321964435309180521711988390573483660605639698971902513970720482501782279052913269455471386478792938635697102760510732469457566165497675734289768862239068930622730236637349426952687560337230109028755735057204646481226634257768471342407877293623189929665119996947441833486022112065463234684697358078070022323882734635899117493956002566259546128219153811567578606510984508577155615022441427598222309044015351231077501325142041780001844731351159269476899894452840700464047206746078479923891926974399180282595927225420659230820428596401845477452993939543626309804289726338641336842164092151296487529600825248930660751565217164455555370559244235949190338547214607815491434639993468057436851186287799701719713775021515197997106170126679331825723808927841748323351894487563304724171627023804931033873267590833804375025033585579933465667866195539368407692029255142404599400242563174703553847607059535548881042635478971100017498783698844453991186884256708648000214615873164117005442691437085121150756000141396390367669457836264931072332036832275347878317177899954873205718699419514177420697400729794803501612148974723879403550667115023281950709243600306602604298728238965291876730685242781305534261399177758964068147095415372219414112514517130170896471958666840285169952147480145228432371331191102665901205617761158047872905477179481763079491827227455991237351690970406572082780606620334518761076377498314876151791382018511205785583074752961775688200862531176352703467813652464971717579397818837570037187645939179181632040115078431906609176762191119294340720001566100760597512400767465926178564274577461016935685607014345112884940903658379935269661012554623822768206724254347919597576709359176327210757772537462189976550763234216864939726439445420715929568652629368946749504270099433484910490161403682540163614271243213651041160407367455653162493784372464153115756907517404198737282064746743330038441482645362044198319409129602497868305999834332109133143950695366877256129146581241768133254242845430120283252655129331401591937422726673883383487544721456811581028477762804943480980449293654902162962074666394630966935337081983671227973677184585476050121630283064255734929678219659833821779243798285493988389380089370085402831972932869556368239523703092184377847469239702655287154771624773537132272230027545249690221516835211295750930516501790209787254077632511417555577798177214917086170463368808334938682219148773390462600220244151194746611925094781624904776126278042542434438047999406862832517585741213055268779718722859996482319470736010784502057877913779659014492073042456757396451065804104120137009739128521726273754721556582655179309333823997592194333113424195089958710395665833384586840362867698020466451562579888895545021716480438192656178325011835134775443634620541936220311665232885592150854461299404802970313095414188910707261039121118508796749502262346574870757262020101098932393379330634547966768215322925559802119138027350348562466464411511774928685705585139739329071836792874257103719567989871653147197313528367773897211086111223569632062039745347777490909964890496549010516569718236142834423222146892519913336984681644267623333302627801210308560280049635324469872727831676552287231582615877499805567307373862119305862958805537212838183598448201921258136515158386389894658099150484737365602121933102618519190837890614449438233219182222851850788565672944838197081117141528952404649483092164508448709257686645713183651346005722847672258590282519837653245223771827112967752158372223299440619162760238019147842552800072816415468838859334188068180372475969688502054299920892370274301986096104771755333621414183902277116007868808956886528676258577893712967366347589324804098466019033946974448482611955943984476765944565401956980591673496106172874670999794513962263381810904126540718757416445967432684146266074665281044056498513209428708104875630028047171686398770121281627267878571375083382846947864039069366561489043804335181039551502375627632290016589961502677964380106960708961198394451837883611545981095071759204259540123901352625284494305843786807792827724587105491886485738287291847895802700987582071312631010625983409496759013426876549958635808710770334188966779354120828501475926506965863497546119234234306311673467905291339665391082174698308395392421669102433152533711114855951088131172496059084393980394128892745932548860514950745773207864140435336699742962775785483700557579403537225991606316830625141226335454193141303978963324023750733901696247378853212739704808280815552722662331558788126025305828059818942285417501327886251755832684515029395991192376422957295961254830969394547393953943282181050705026694303406669065334092916843063627376814686952202525431235120189161651039558965088919369970324179766346475076478178723283531824438442494396280053142416113611849951647950465515800051304838263316376798875624754422373776767064140633815789366326162754287107750543197161847043216265501039672285442822051020990233834313465219423824593390282507867580544033172779187912834910471455855338942423900255023187453170855489860521015607189596376172640404652181605570772275279388642423389390527268323147870601373603119021843758009148038027417714355424873887261126581654595557910404956497629200020654064523694447775380153728528140834129323768773270480858704476626144828047612073729020056750226159300222326925994590540046644337792421998067489272375297616483161316522193428757279112390911627144637058552681727022032937256824605641323513847234250819615878875454723853288392961690675715237929331049923435504493539592864912613098039231247495914394362392433986546408239707338326726623805160231431492732671764904389496280559468425917785998327869127914409046082843372396242851159622638186904198743271619217187472648138473163805631392422160761432341445030448059082409971400230109086007706000799462583059639672400069242583745654769487002292878338707639435513199631917386894309989730133232019516324112172042190302913490805730715300737673497916469497639744073662082878191601677167320332399815223806278766306188470433205419035393886786288837181930678551271122466768361429966248118849218417804840958681806510504251350645302120907878603751804133245794607231449264421615251640644806226035754850828565609539508415595932449923769344835820543319581473038224242453064698985650325076806497484162949764107328187588706877599424767188139163213210966959567751830430345032050744546201701104697852108127291336682548139220794968680689035843244490917022877618566329020109893950857284346427507405646156651534665643607592766781073918166285507070508803576550259925446363095693028773759602491850232022042877706454490610698037940668154243322947772172687222939461175499091754569267094147800165337560579541910663806723078444777526810608506045445017983692680848395689984282927846091694481590292276902861324956960539992580964026484044220198855534586423693861135917100048512435328957172283447112289304190107210664338299744257388818252769695955623380004656960025795726952010402840275335958874693821097960364786202466147436791161013981322676870341663146622041371254305836127978659910713813677670350487756935031871718985733632173824051099375374402285486456096009280388430478024492457649173391993768549509769145943905687914061763097899671082846379667160226678160803861110958100192027724827589054581773609087919237182152436372561044706696081347459777358014175618052468071886807890044681181705354108567620011100570657677815360060147008649653336487221912934244574671286375108032853557673383294653535915965885825813530413417503901760339278561948902453317522638317485133890390323665846734349405912464829072989794103809507060115186410754973508648353317831559127872903890626631539977698975603915471858243288382434160088076259420910607379181492008920901609865532272553968228047971789883567841881698786563968620999958126488923921626672129951842835401987350395610313549060636967827309147843111909322846199373305233503889439958764652487756406595269740183371382234740016152410088884082522125482442289110206344971688458510765162602749106063517687296906669156911194548116034085002335840657089477440968720135681366684864684663163348168195313656210294006965423797748893035733471096881317250145278639616435588087195370382114614506289167655689066474895611779737611812655912160636848336980786769629737726226491082450213742134621888050463512573479452737078010381107363936679301560967583409664732559191747401578158219847347263861482547853725731984907094475333912101751470594019295761432251461881284626702886942208722218602996268898751511140056606060015963059081620620983487347292985105941684284292623261440688842117706633655518068694731909771566918300140905746364579812140971807462874277775594870394269025566821023517882425086463513229336734810496796418471221228784290429555284015134735453632968338927886831852809597221720535474962895514176551290709396973484240963412667186108125221907640186528618845540852831174599681206706951184122129939609369484114738832132058909600733897200509791355106772458922831850838184637783987946634883389126017088562877712006516568861093070272642717422077256968960708579376947512136012118296247561098555185012650104285185266351117031508651063466617015693375200851789926346624933056417061672041055251243801325442747848526283182143676295606655330212158972673171404739642893916449460621544485057585739860507509003110803982712174703522688698907872001008788040540229242641782965510617138486679202296503023392315315792157700259028383490691212148003498816402665622647264008719659039774734213694784097155531718838832469128003464354517768465610864343613456789472955856686663539375751009404780791310198183346305344604690952924618224031068355090045878393447567423561213312643132357185626763527756996172999690773801704257065757844728958436540728640084801070728209998957210993194138391951830583890105933822809404799431016969398343281710781278182845548424141600462547462066691295406493750554941495641522065008695826557098081242757313156309720375370875396002182483455842396935024085151684920144677198067420351658827677009827445915205806959474216044888424355037531740635769153041567977649431810455157937448823429333618829302085663423245342983996780357728720758110372155645192405592554439434934511282266388517292197857248365764685668807994686927952522284741461633979183888544717654580034889600796515873389975361157433075768404533933296140906023809250502773606861019006289819526245341670048578609952027005300661608709283753317238032935112790164205191083658719976518150142477985173364993770626730989814529227352424086187891765923627433685009656497347971553048326652744331731268931590968390046818198166283588238142130680161147467770445171332357863861030569481684043613410137188443659313587003440738642587482850620514542120174826226832290386161304079910022094749182417167250662011542432719510271463597271865907772692970526054329692270094722002366033276441159283725720849429288673198557504758969973266075148137584138820747899862357051566720907357807280233945982888942159756542269663971614709649995933697898947579137439475600866032351292384578163983610523387710586588350010150155891962169649655359803879846282336844961230247636336612801874500630995351705501836439273227604473499070471875684522994806409122687206572638652472284835572058780692437129943814982728637952298593132378936323953007435964202358213451118579615348225655961853492172463521601524329443532875183966446538858851234991002653931939445125313296729716328813809701540896105353217578545406341746156401074034989722609660274030101282614030155012342316869393969370201680631621339959606135635500685292217982117617906954648368358032054288712035113262669930020515476806863185398428170626792585299599615617699293892576485778690073080143376084866907337953076126887630981041487306505522583599590674368836605980091970759101740095374064737035108015336230366491569552002419613395741812167165838018115207858722163491445492000544081364581539648800550831654135776486197522469356993715570475031633713398189883539294299239320355731506540040236409676189699859480382910554662017783493556265475536613957142595111459213762496794966243705076635230507358839872742722430544614070754617166913907609166954023828648557167285204645855216601147789220196808003515865487489017953195579212601627321916586775372235916284575190531802188471442433501387306851810586553621636487528364246875994526467027821369784530041440397427034983207070366734827108993950182401787533998944878684775968160635287737753381671576716548785269261278538361118487945342385963432842215027535884957843225873950015680085942718188928292868164147011250191739643974378654037093116535229732147694809408347621502419192028869614301719247011596819344903574857409776105020329863126146413660282762549960326605938407211949033154344876567411917263173149909096182763283815492815745284787547422275057286973410444924003573155535590586420003569516325524320337614032508296316972420299788350299628988034475384560464417937860551069568275987192122268520386551450246440502644046584238651058553480825072583900821026774979814420747329891633213840658847254316997505558211422004134069298479144569938070287518507799606957283872498468514602351647234516851177878883049165699900654440524279072290410691083795687553927385565474970777455808876019134284097647582649935291127679246009581425851761968008297111777851043692357615076910176809783143367905968879807304372176552329405661318837167168092909028589287461870805419928486731462177813057054362490239394758284279319191342407384896501212502332615483787356590472135522838772195373106273292265378187677472269499410944822978179319097554694006870309181089787119457675101224247902207609554879399403150442560818515834134943002308029701764824396795642232734206862680817670685242809789162576203083035294601584052325975005410518062260106877658104358095881794147310364875353906185236003216503561577411924771337740172030698110748818352717576043751642318904097954548283546897562362420306480474064244798863727412321505923737218315726214049794620885979256741548696058393273560398830191692012753549067883700133229357716710322657112609854366910451600241599945562004464886179502512317424383016718926506048048916715826171644879541882463329319547948592775955288683569012507976588708606281887890401108223458319004126774081918157822895697066887972208052041166453031958778774694428731575642782386822008960158757886435614938519922966174509041499698964368444231109260031405176176484290728173266149411477535377291274068885689763166237159911371793984461617275163734523775919212925548150225939804890599325578005624074087997244020349034005362538908048329635658562682013253708507413808475887691506646886386349479474371751863334110824093439911027364518598327862168669591767413615925513403659087951232446570920156558369403562561840505072467768701703027535087211068153374564852759745139880148066168143739542871738741182010176578759020565327148841696373748127754537135354015605494066395298730144667801188511560109567900564263461596630396423450866618454919550299619522945779366796941492353246064970729388374310527952246918353596505829386573473434161774441060971237860384899014122761052411723343826938630203773724931168603308725667202178990497117860469688952416437040499327619840038716493233777124791146639224528899218002817895906301562014815206193652411139040092008895032548375399645073541118840432643124719347683074455064730588713524616402735124994237771673490944687479543883907350916776213090095703349915745924913791064550918290963066620311357622121411511010649084059609532086755716352472084125647645088554227284346190168902106805789882011976348340556454098546784936715549433991432298360681264631740973628993121738637173224033847574741574156669689461799831919316855462947795102667570115649433011155948789647983346543691546162597453822705110286515129863723299706234943764329898970651233667061817672561476942764503082735018646983927452028254365875666993858890536184109257623618230916356136904587118320484728662551976317855105309802612122943471765937922050627416004749432162880173586913726990762693781783541106800138294121308514699081508968092893772128714552177588337673787952487498650459932968620079895476699065550184233726154332954102542508093076227614114223113225331689559078183342704983220519367745821148999167628680695342652838743057390263112575247259821472539117311787238874496341804560756720422095145568920009086204943758371325680134258936835093493315622650994158947619938825538575547281318676742204376626115735046499094328621543860399894910434639696938819212242879356529825214325157234040674456368977360128042186436948785437942735798357196822915036984592010332957410452128986645024766095718123814942124784554168813345159180564199400290184970137321587209562264044734489523527788381532340907781511510114015077660708162650999886240810247858626601486463396404560250313932355135707327714179330463350530228105287206338127650162797839364200451383935951779381814302764937968331292065564848246159955090355055254973721895986848848361353343167312090947033720831992897811218925575898471891946887716445493075154081115312046287904312633357506312132792624532474394155025518454452050099731071581215133562322165962277422047009749987509986128792786193412592426306864410162720086769019901566543723645412874768754950658623941959152821471779117404609123771244040459852483464364795699828155061012941263001212840844331959402111737043537914370676880135253825304893358089228635347953053979606290481266787477477483194108750436476212587301536094823284865448611386832394074790555421413532252717709522356558694086342700937748195685634163305257667639337666900349433908352332684573508615702636524144631425847428753271704082364731443110262900963643990908633181586788137633463013214861600523407693116658142115705875401676604826960051324343816927887974376591057969874676607274971956513807357774208655839079513353458327846881508623257671740340055784923237540700730246942492560436724673446153721443060029665874850790488519529212584770714885506488870589701168203382232056912093303472030464238101634207875188278318197555795086296517530848531142297744066154711795052529536316670595731932627497590303635517004725828571781346502312065141867101191184553863302783206735052767682245675053764502060387895244813405427701318831448829986109014745701225821011510758681404396006303433015309228716393361634688268969468398729438410729048582113478168639382979779528473094742056233883350376524685127985286998787170293153592120123807226918403314249308634169155389916461838641257647255334145115109180777987026235232847321813792242316876025087038418233787199516414880773573708434691590870549009325902885840503145105278252806599254284505799502568930411048045430200445468615423965436623191483623475749748116765365191072498562796231113354660097395319908522393752805166683592013914879764776436682372437857382631531008734627118508719892328565113799377892547561663981014676374790388446533695768160805244244238744844228999351482087925496848452809933753508602645139291921952970425321055267628614476247221808518465626945298616135615445155720513831897729354832216147029466484004872961657834982625587074948352718298672293612439908342159741355556027998211455803542631461277177295016837267024571436618696045119416992584081571490254014861077450978811475268935400018564859644680660964128241147181503745212767407604383393084420739073008754966199224910431824028486197554028215488020291243564420362175531084358427054002823491698125034620210539264312719147516431061311550693773853541771479375172934849032043574781449843602280902610431923310908228245192910423779316233833810206874752240235976053580405139623257943141748455668617205515929823187355181786720240928574143635218105513846707774835500195482468221423479818243251646606593241405366555131775852615496417576293495826013561527912831957242258953120833234737949273877845081344395634606742223854505236471747423007117285075902223938882018352231173271746600977251952007443545827142123728919022988266079466920273109846072843391820643149112936330383575439578291212247694426058104820283721894519819927751622595366959966067882592834918551971502814504723325782880481390444196155538238459750127968524850176346457003685563317811491969954595485337228547655042108461988368432785958548530380275651274460371661397823487157605951478034850661937396834277850993967074047890372913962422028513474306707743591014563813426588182700158262794001633003189571779746717306805655110510288051033801180315953976168966125579356551374538740707075347462593902585346913772137783545142095664638135738984453852164369835224071116626226163396866146304987493130888287130931858201595460256772013318599249593083066650954248513506525211425965661371581608744547124960801596896446708345411557481233413778253351543900432181167749435273859715821927424587214985928546979856236413266861781384038488687844083900648286048055929426014624578177259682370500976816098101494632766044227620216697253026376254901884821169354888356952737559647989030469457062089644408588184754838766957889162388309495187651723224619648684901193280519554863425097019853060800127597884596216305118056248540833406889351331830714719405669533970058216092704372835019334165315621676077866497122780855710175430309417050033447830747353987600924507143152703117379849030668768157591945569206916730245496380047233588765509545750578908897820565014791586023826079461243554044529003097748105257645134320757492374270246851508146075644599924434637204516838758674250923581750436864060394705530003036773396463207654364530597494644267922467858769051656275671971590148048242113124464432783561434087151589985508909954152237377426359412422460046364319365518207050302274818313109086023795632976265564260364605159515196257054552838502249592587446016935179253495402052104152887172357729375834010618946611703959134018978001852567000345256155977924969143333901257989792858595889974930639516847663012337770644960547881734411966689351420788103554322508544125009700450308327197469582061968904256141536942307232238321404395806523096000314435855714961351232888918192708169720501171922174052746820265621826196081383214345543987105472807571862178784014989033784030248801454925943342509577165715949513377162945666753007741184871566465094548132814769553282190470398291319066473699010289777671322092532663759743666266365063177626198743762308596697695592715567185258397775504587827225828693767813135923108315084816773547376562843002020099131491516325104718540852476837882222491983223549525033597749362945404830250391869048336007087797479974863367496545630731432595622082871270337847178153718794770420068154136483406517329715137277270187246443779648830497822587032684596671984629371842325987293080094567931385471203953064253844680141519735148599023407229487185194952799658429417439297975476550266573787187845868041842453468015244000297285383905537430974102590698905756628189402740895844867305756724637499497407685956231474785633073654593437098249667209253921886374926389442804786578733287954565368070875715828405873250123049314424887368760123932015297103243843790722333785477937002118418976773268546411936404456671022691768068556501266972143433743674768062906224259143946238335817701356772894201868567354445801076568352975737276989512700242500489396610123794687346077906404070115804402864602113766814160781129215519596316702752553943755919034819947872284168946480543732019267323069680387911850552863187692560440654903726018104862056508845600526498148870760681023041183019642747888457876377689634016843585225372871631720665056056857940953493624258546437911612220856903055337954755216479549327175115360548802732965617897204897778542282551396312430671714425508147053993807097061784921445622115510055427553591434637786933243188141078682365886371025939794579374699643285089150792684573297192311242592759379130236530095276673155608337364078724108836122802159555385114001472470741614484857132546288863786853928092336398042443681349631826505535346338896283677588990576663344254113315981482509836670255022504747570599183638642747995371569740228105753906835261192327003953546667827285551437287191952077853975157227024395712229551734168716172264794939542857871662565339266325574601879978630987837959297664045264337366167595860782860077217608545769790634872427255065446823707441215308821165215224675133282205570446329985686145121962963138503480751998410786445471061311717061923126285449882206634371645557715806101320830688778618976265063976733772472361534824223566814495764750055162501554335571474944829503343268649520955726394474529649637904952604448437833008784896297788480383609625111087313418110269177573414409170684737093151395650008608592771436137420979523380633626749109572470668045400573654811081032587370845775077157668922024488124488980533867377313176051048563206040043211713943932145764850653387594906514835596219216840655749700749019019093071891117388604902529111548137140576490910168511572999006471046946678713593243762691566631037566035636002152714680601381848279483824224701597325678575475154630450784569112912442667631772487432061946278193759264347798384185018471047253618379327543817130429094588833787400351560656740619231928509061132072221628812142208867725638085222090891822036058141253908404792630642582096470673264009594581033791439171846808584554137121886160531168176171286833253958654429814908923627678193300263951602424156224445736039347809508615308024071228640372052740313648026103761770786445671069146282433781650160544136454333493641679567472733450739353089639731635715910379753002470546650905149673848561054012237469607243047338753020246771057279000471004484703721328874060218190682316190955471028685404816533400524094661543993206295761665702424157890342814265539021375094430414020682158796118177622212483527680206997900245073753243344870361425956994777216138006099533513716286312612688468345037112157427534091550878241645077222410190658096202357309833927194371327519199298662024609660783709137883030436655901725843445418252142181215883558565668907844151809495006095113621878804167208397477280859950051585745462305532070418186269574565986169333775759950869571465217547759946266273996294633189894523707540014675026267041997252637296959241260206979444124120623470375064723820735655483953444916308723474624629485383501731648002485534710550853871318516245672834605537697488593778727751944271690125956348821307090289086224277672750856834778799858953616243085371478408708230541741104653540395268410317030344331650511737049224233168593178439541109373874334114515382047631748694739410203437316730888657607942715479294797428534985134820183182349253327198079226422517955943640542396272041304882079410544634748917127073297872370547595215402340064570873959138119639146990095693540317843048567669080506198775625261429896467496294839663881507455173575059590439249380157505349347700385173552637182618176688410792523866042652950596095047522436531925582361910166117791401321514146218209613827208133176650733883878780964356083853389535237075613039912536317145633985953722322801868943147503205370628803171595460825243493044141691918247002812276548543457376568994444964666615718712324564531219966786819339903367911258263528867450862562859188794166894240430891467457592982870549488008885036274860509801917901886224441910221846772907731996624514300822541066235458194596567123424593840233709061594501714316694439376155112247405946322093390440775235032382087039859976727039569180089505526251354836060833973658193141399169526609095270728691284803559362222458357108855747968929154072318110969583211361492949629986151549921721944866494317228535783800719930078526989374667006495065094002745628807517854700987349894543172083987131532900445642462482616928781893410291328217742728126831259465157004684030324540144669879129324550249291102779848152991338481712126595050548317669749908854990664175590567904625980212237931399390074983783416578566121901899581093538444988307265356204258009635373929754851410463093665946250216854063582971061300518962935685479399059559800999538046859875557738995251674903520156579323028892475907015954546407481023972920035008392246838465635399759412526328332462783041962650066964037135795443531047891049031292712828760783853165667686240095870940844548743656360029701503774463323156208605549445264347998825144214463001089344573145299443772980780340364841765899713253674141361003809594933147417932782399035586495073769688120424182584090875320879640898729788561341322406524774516142705104738888481499425818838029337139488981677141255991231903293971472538957533808735077501142176293473933410050062131121741361862867035729914134927756018267076082443534313966008633903458539984596637652266081207554218141031963695067694035641996223364882220762055805972369628770186149327372086261244673885034393200050870489634245742626194357352863693723853123085118084828371333966281166770468836707528810396033279943944773267278795058322219306097010739465336953077198379288295298729500629253942121881430239489712027808240889627438584135585644480138781211800640297120430615318637881195079551979236696818978864972093734831973937208721783301040397996571602241872866509844937940887699565013891842053856869937211148110178297777127161905043932420129929628668133540338981834365420250252226329270762664309109954332610672001216265671515642874921948265263663376519745770522041661235932188948514733418772271312230972442862111225218842627095262284474115270033966796566794824897899961283371718239823096392004994862598005865060544835512930648012023743713890905925579220412621580639260668022553231158205243142362867650737616003710166214142282283221091664403603825314133205092213670305544134720710861126012701023504951729168911474438986818344194478046296952678249069012975587293406012771394056389249887346063135561846001096600851699436984497736629536063117719718688994698075798674481127654777573774543481540152029114176514776701686290827041868111213747203646277992647296385265185818965955406072215513314207299753791689828894100308576368277958268532653580962569528410331028750721328938980813372474075620434041389074595540615123348029158775579627063206452407047531295251073121252611817211909039099025556582572122907608719383635697452195609175507789848632704980315478489616054370716456276622918405178360778575827743651919798915696589195249467653105420618870542836672286536957287641060060397786801296135264351951490082860128177080475479800097229191873581361237117557355136169852577885219569800545748437939392075153901196250022236915894508040476793021272796909120123655983645170827075510304386198115550877017017915142238107680505701126571828831917479173639792468654112752789506641636003519979508960917884823577114162892970036523090691146104488906891955521148534716136202173865557610648220288948472124390360298384384495061427995987575851355610629192904921564917549378354722646391735896281038446124321984237788772870290367856625874839648919399630691130928300078462495818539765198173779374108273592039284952424267427601671084918266524604473821966410104642539012633635040590445779990730137826576821856247300421277400667577349062088304256099196018987092201844122141250835182667985041868077405780174692667900735621550012228030705184551177433931492205282402877531303969652972463734773140171304564157105632353615472580053246026551610579383381761168402855574110388301180591002552824650946712183282107607792212611830800974282085755257243314209113677122816791963363234100328385264456389792199258915810610171999383155057633175179449452285273854228551591191703604458093758185218997320270828081857244695561497482659566701305854395606483567074531030537296646505656358953876976823213572512319390734856260089389474229248381987540998240755491163358924970794192460065351432482490585343940493400466888724769031369236002407931065716727216870503074311090840658700986701942027798753391612344002921257809194344058407236386638091731573027015284402946772007633251674063341176413667847366993921089400386404633962461840782627908797443967440429938910769243520891769614622172772953939511613486425517640332776071160816110981058270584574603278550053314837392169296070888734366959915304615617386128958206512763149144585685739325623114143200963705203622601362862699837652809008440014389963338051337408515857095169316708859055983974780555770403851890532438463532936130663443702871965332624863850248527406476176900702489227634970662297173899043699063156708472154078204489544268833270977973783113173769770406842075134931424751698715015001233917815335400798762279693075477343489659610505594247933883816975065618649483910136603683642919359735865047596013305092163103028882894608009468517104271449092812711988053392595971451275581443418069809943357850572340440308749602830853119591251280987927528496989558569995211122987531819345757080292044547123533654178466653003459079312630121208367825304646171304733027262295715358819809057904770607074806177205510520013687350703604960695210127922750637612056853656779720753926691105850118975628974648469661234018527381136826281059063063978101980410873047711236837352642977232644873758044416652002385758347096579418709447205965911596678602696903803887625565285393489569696785153903779673645125366029297540411429306972764518963889198321751118701966067811395154432031345126289720144666811795819568958644409511532933631410832841391368414744957416666492112777600385299938378513078339291161596764018596485406884023756556622646622759482484966022995465171639036062799376416676622940064892592507579089725641859050286082862150548873379334266951559693434619963924132066058600706835679256997867527454764632243469627889839609047324254658257157314520426726600514004547396502569325706033057156101660530879497382256279833289829087142384092902880237879765486622949736646634242825075493987415237493028603646579130274944417768594263957581256102361704809028822388805304274893126133040000019683548617053151413190905283800282747141025972175403551173677915584558684119953846567662095414626914286008663483031481070868973270896664375431893120898338084057590375038751475676833975881254765381972801907957452942259929494568223261450221699029016211706986007036754230653443948397848283715728676857022770290295620850629298332775624768888310281023970966203543223928300422263158790607705947264545159276108097360227610770811848186922618291973911676861213646890501780353570171650064119347095335801736599861382320139922302304398195694718209315843865503623390873837546247280480759539700016412019059668665807985578450722679771428102740801092012878560589560295745147508180449121487343718359638676270897898611155762866594361542231249369562480335667546639825302342648836456583925620439739617403329236494774217809528579833882010942082353901872065141780709907580778497417366577815661166273037574947062781928829650534014445420945293722400156399123634395716318935067297285466678460780916334492804151972585860303992475404140703623726519869864480099107736894503772785415722547310205441970148835651845104123102315791191908914700498277751164200434598727609701759587849251177730080105166617359294880242278308657921294937358002021011712492271225894267206651732412465217495231028156397259585954185470909750213378040709027418550286364496524579633600691237386868801227068899712786432214555158290611771169806796360845220536698297637519062788030663921409453508010810615439158367179331988509539375255228587270689376967681676682584653376101883032412641302572048856594895226804781666341640855113320350875919636323889702580520639242533273935762864955789502691613224846050137087372534012975781226854757337479382723615810118692666920864717513845568720611835404724476288353614899114535221927602576845316379389400022657579540675900624801017972019781986648469231890908692328958502273646521839488514000591418932319588055645521610728199517634507783731734939277942830762645869181753377562457542568018168590472649726898033165478726986155006530648946046678453933633894282230091744249699749587318740473954132649658968134288713653240797516444270797697136767485791971470196645750233909900564245624073347804508185051164803449447467485352592532556285747724936533348680550826075863586051554878236971043361437255702410509419494504663918486418560009663157483170603791511013998728454055333964873690775384593973219135285301081301263027745069772121532149835678266451787606645913878714561154089099382404368429741417798701286525697190952201690127986635215295742148991072275753347688665134374967736331516143435469472725277206552643889888606939118739901401759010992801381841196169245366572868623387937345410663690608976714570666705357612822630658713561209249831865659641242974567476609775732897934166209972654024925404670315498321491461069512970990304293991916620020667865586185952952119801355762704366364913967994086922770762769525912095765465609559850397128808568790452427086222730138415037073207087570071066723264576986296298385801399136474125579595193242100267711574993237803523131113323565864781599749645215805412360352730977856357978168697742692210387258530940661627920342291897068515552401999468877733823607096471017910746242011468179998346910647207267172947858004892978802919027444559134431811707700042644559932321510531745053467872289120320309303688663331920180097375643941679848197626590849951178114066475349437983663832394069359931387611963427311566533497500165862741623441593248224185624967580934786869443595492426297676958515085548325141979284224165614312878708931437093779406189527952446250057817242592721647154615376259028828737141485699109894642054570980631372008752975473602498528767681573568402813960680651003001877390071979174630602610829062477202192374189074292138799474682121728136133129814904074346837251678835023334792832503721083737579158369796467189589918190823106055109013313118540150317456181492571558390194025321209156001370557330737332032992070929495221272373491109890250840617793179350054121163094383624998083421052344627077924086219130812543424781887637485308273977028962967184657596451161204224030543032417892754172939397072307474446850404380202730842390548617598364671923304175819150623099126117608705913101537596874338143195979653499557272995242604149728527011215797434819704292764331099106804293782278259754940390472620744811028511012167605385834368524142683202000899667065587081399354368748025124044131761748121845088011300189894204874705167383737702961271011507103094551128800168367818104967987275894420890799266031833586837299360038133722698262286956281126686388503673139677772936728300329642739845717921794846903355695522869351930055573375810348846954988871830423726698401074234638801205908471281308808782298354012283186377374465193616583782821646360475416256941222692653816315686515420579840180018906837417094301048306361729218578637418358681479594532882054787623403006352755839795443193756022602476475356849886645219991693623789768317870619628116900888354883853657866003540667478949880925648414560453033459256866623997506171408957248612394063657311371669666584670483970048792891835000608391029625224209353792945025418167435084825645598539938286993402959961170747366195448552108209024338343277091448592436667535635423485888176209070683925263481529582465002672512791548850809604782944923647252950618335131666488101723297025334060660246570971496894101301648874971231095624917030225959716654784694461254051395726530404940429110760106788641735936391642192933068056250671684579785451739769222388649765342741911667719704185689789839320268000985174538579552589396084847534576213241453430351154547069651045090735791668959482270071206305380566166566505447793435669454359357340271401416129153332592858179493037741800376121125740460722664177164166823426965129845377876104562109631361148993565697018816598894516140674188217126611152641906784797193955151732589373122588802281037226177860516025715840239461015634053700786968507222339808884841025056806299227337645204276108504376876770499977581112455216447140992501266562180302259899315455747093948155905397470316710559139305630099322182105114490501592400513741701506659586223997208438044281545649934791627421050505345635601616665561384044723318741988659043953606941689386227916352407770337408858686602857437871821558888281177806138634499580345103910110428351007751089427852415791685474252276431073733174282055069193261114818593790449764307699941576053090692192310874026628005399023014802933111531464068700353984887253037243676726002783079561385440474599981930898072429097091936490747543781156240852336857363041606768587173820007624144970972732648102525663027665440974018422805628016473960316348324932543685010841935454109394774913717696851108295627026808636444152418228565671995321292915168756717912608462658111441238439989391935532045441210490208326097932631831711200494688638201938951002827901094034415773122397384411112530905370145920445011088446774321925156120524432499302983459211461000396121678843213400789939558746028757489456669207101975898684567128197749915837104684212600437728636890168364249095585930692226326453628770311939734131116959581665431167178166870694346427226575167068603233671917729906696333341733523351717569667516211251940898113781636720878917503837535038137925734839058023302194465915046863067424375273255288312259503982051769931424416622554179586018382970399820128264271817888933645311746955232966398313459963605545110197711502122817390279338103738319710496744640508322971984281525545684889360818775268373552252035812526023492584268447243372652648989418295581267775085610007405539005426081020166491176619359141623521768254526360278934271872174687700610588446257269550886742151865229151738897500098635826291680822998893753924137327927603459584695539230836350202465391651119616227528084586681141165842488696832397120077578039492331537247127065444392999962409526789641056934049269216156272234816442031560844904174192664314863421346617828013231234079215216598440860357940111509659358187241653868251827226393573659955267595181672496793396561655441130228100177721531129700244163677939387228739218457794751579458124422891863243758101740343652944586599263857520779497543275307783599408563994219606481945794594949178669945578498602733874524497039319253373546165775661150978634312352513041647181401674552646645377961417434329398851369182182210487380405675668680359118146506520963390325486870948169290886877916702076961216109998339416723408658820725218791695390296217141697311214846311589961739976739222976551309810618508793440032466462139795487180135353918171569938214176773982107739165461916194105349273578267454175860164248452356278034787672555959526625920217308331393325440386577376004528629435730490109030122786209327644322843333793190587912193795355224141319547314803258456710107127613661664126882962196402055525677475575026446170890711043630960952213138685261534706708578568702156846096779616871427578164316729032826499573533395353942116584534164861257780091393424044904475433473951115678434250897331937520800892755700356991674239171328876591419268008566963770066497770611598689838563504487195256939792700876287504367365188482287166080096520031714018746222188500259538589623049966510968635348729962704190428220439339351362243033333075021311221154738001881513254274542881956449032592240766162141922065423574705186719253377392773620909059420918956756272616075672442022230473231335634803678820857611538843460145301159856362376541482692963577036987938649015560319797998250270276811573885278261583527544957174043362084655386426394868051173274548596564633111859734871420076253476007079903581720201220178164029609230029696544426309002254508557183261929735658877941742768012881242858725657460658535021203171063625791764635397126126890830504594557107483095593694817416411158015198620985159648817848062523778489862405948831277048384919546593224404632546712875708185475719603192077827616820597576022419554568789595395345122762149394190768290885406602685359390503618649465053070297522693944086449548594354441673154806242505381896967487877965248850336528694576356495425364358632848535319110198466038103444434673045114205630484630689927914065923641402276252820794770770075488884893915197475083283245176388081505028280031146406093633835010146118109208317865709540847509250408421185219354550190069436031386410277201990380124414339043536178774396550720751932406339006719475484550254864897581020150473193030440725316967101523969548602956380685808177304980320342099844936639049326262857966762476726547337382769936839436244459192192927899162511224104091017233131744154477857932303505636541080570394903779392128460253139333671788241068607210994479942592394956228116776745551819150427016811840874149830332207699930285984583623686499411609807414894757714007626590558837695716408949653818153139715877790527542021359284597554464102977734514123034509696321155677267871381650590587625458108221149346561471444468546002745276713924036210794313222384389640855422797608756782388483560423321015525616115006621539201009952199690854631667046340379545706167837703084745182836110403397969173069467995086358403019916566083472357062330721733863431825884449257793863460911496092756743398512452373059847648744150899137749167038911044501759872952038635077021114432169347307046004752790026846619052862310640546369657607490762015621632557915452755747087283306789168082445094535555286565809450458264031021559437775712621927660529792894097076732530228601302845635142059292494963971951806603201018305421233504914772086984972023433895190049459454326999232606411123045400925789194518116009462845577518845423120551836052522722695451713145249460993106320069907118930310497852073924960735167918855891590409875858364124525877002178128131231459771222184843162810898617085648350798616285908497009965443761746785924201399670719132381729253577918224380015410032513700341855684240726516378088541669591869391342474874009534789388411643586678779643480663656182724238061758574464569374255046363744223108381477373882996146277362499123086052561262031961689672044959523875246574914558838664531368356954894683662515938604907694780093408086977354250251587858703209502026033681726834787286838046346669511869788665106880996106306692566216545785732274050076712239747578274178630960153180539457558096404950374483862801821005744093450996836282812785065704699111545175202927267116730682065681574463311649917289737327240536237303309128709486655682921595761844987805806297309790286032949390813959329878660518739381165585428673798629574721844313565886086532660005143005292468769760213017939438488078691349811728748299006186063155581867733142212124919883190542929729414441037843175213714743989219484885535162224647718119283128761744578668013779069044753997686618957279866487315203161275571888284308014360031086096526467705599786879622746277276177861727718117958022494880277234217523082669159412055092373627009064122346370977970573475248671249466078783761920867337994009960662941872963657676665719412385325288002373936047963639827577845494810577636592397999108572861906212695657959789814911253716848795681300192316805460356390859142372143335611597187173182855834040828005197121709219943482251580080640313806496989652131183214885668332908548444592212596573242769115138024770485876785361145660241229787187932276244390717540376858063354310147384718128667758188590098978269423674062742932426220433510336565819425172620691908750681168632831850387187833272875553575878240160649675715502616518400805057190564096755764598976098056772627330562814741965249797334141672671210204798565985351957980141472833113760212066876013251300760723085929863068583864970230766639885013819967834978973933163614508791613138914332850460526359192663262598437039708066653393316938741847914643347360672753669847424665369168420179646432301104197284053145435485138455270422846327755872214369897798546452711631104721212246638326721179905727501675580750180303748227588669942625953845741595900995187165811216485830366270298048894658763472752744384873484902268710208880006373114210747559860213120087132304873583103146608646539406221789043560507919009241140002617873845276538107163779666772602522810255925755278437269402884993005911260158787649995037927424266776014155461851495269329188296932459616817223790611578616044611236346167169810733541184748562999719110449785797741610722453781403326581793840613498288053081339809116607072100232230522043738446759138628065448672640921584903361563243013062252771277612026440873058924029644989063940812814048882942936963196808590553682922007422916969722201956455218042535018617093274943204170138093308588399421848331076194937626320559576541304117058181973103708529911866997763413065495138705860569572689614460139784434422471682276634111835083412762718131271064246473845316883015841734285342604064023906297757697914747771587656397996866897128167495218541894465394661907205607908951986730084262553291947192706296391614736482090497310708226599957045003270093457665281471489615821080834668727725718433883548552607034826716701930276973435840588589359788726356763479151085811753840229307408479965792113533161015208772316789067751855621223257160054453467321486386615180870937838574114129356281407973041864102173951315883155663504858024561544018642460972351844902543285620610325297244272708949966495934407370540797954439648755394993504358563419122482922533822986728125276557648487619852430342582242125975487942196714460987497250328301338647243499953453195739350350968443605386634277264712806356002913511319248905165828383827997445926154126991099332223033831661968761473885909357468186499707201498084549445482299515376950623682900816917733163213650785799682905801617292129822880802729013592830057762251391055705197221192340880885125605700627344585234764128027601290863649106348132644098325877949450043399815429284200542348378217073863025036405251142762190657302852535615438173200196443985096074984540192392583950983718376920534778732702594477866897323014196540031696018106500511201724123856190092364461119908933216518870802576370826949533705232706029931044875298246342182078279469772040094694231238723660587043930918722436617063016767847825715796609308569389086455212988608743391681683098496735975932384482052824151181735804102047378022414402041404708221801718061033955068583010762048280048089031142725275383905409439463989446656670394818068681950589358484996345140346024080730983149913540747972841997138283925292912890304306034340884046220282213232780976082814443054425528024600700347750395284488513763955489762234758486133180638498432358453213138495150349074587157673428216369053053027288714724254771289481279765910717933162497603745546372541259879839324094974516316673380945377648566541830910470909497339565729263187671621221389298930661239135839051194919898425370984558406493038602017627749242335507499338124536352938552218030866775635113074674661627136229949740922433764669408540350352781829050545532994079210016849307318205825044448812872983251579303722941663047181306942141158159524103158111781997317461083116717243142724732368220219159871739927117777934256346920462155998219987658634051068277158535296875267345357616975314452467980101318163775474328319518971787065818323017640227167595353301966921583140881548487580822854831998787574034589343004337632912645360591210454048634473185937210734160480907064217685393105083063683072499240684744612941559534576457546356834673599623365944394658949509883486037466563257987427771211716296983536978589049620567539702395527623054930468757073171327822536943786690361475177904302195604328536363978247245871670115367661925217304960994736424371924732838419489416284445514723781904910982873577173643015973829644249654441994637968318427856751325280235142545757261768493540062013358948279499313291848232620006679388266461566796234768925000823451285663222922910441348752590514962218185960607738016397367481778349031792170905928889760748586561874916893241102022579468922504951510088100435265237652091932163775601268491122773747884975288265005242782685759727178716626343185650915796287912571050671549976477228354351818124389905936945294555164554312853031455886991129407644406798224237392683759556102638034179647419719380400371879071368473190699264224268690966549328133486563809758904288956198037004478542372921297753957688255849254169013003696236570884519435277464508815339900170428256814075158902787744951067914365600982219698144820662695874960533932912084164283785279753222512790829673359419934366751872700907819158896344504960598482552872207154757512369437916198606812898682085585016397374372170228763135308038484133974710719604140539454771718575295455497346415921419174892684013072449772105657362232221734094990429082529887753368319992737789165642674764516465263182750442106252511179252013921120031068222365867093551663006413624554039412301091737014068520049308492989482853335633030430487847084586165416980284634086861339279234824861756670459345517485541095239381623406479113131541180280684463781697550337657575132623565104789992498819115898306181912463818217166483717724782801113294400892228659480580193038977373502602380296222821443479332183548382787991063586090203274699354202688884108681113987898332161865667464780717793212866103042413980020940270884032847501077440155091304527932952817898001769115353131951970713074421386529486645417799977085070292204024976485907416732725507955398256695319591392265918575056629933819081775112884922280257977471592182514360958851359269637590611531522979943830667074385913557256406649747862872719798032717697067251320873993551865174876343022141279836427874792851744022787060845792049475390674408908068051414540693643885348763650911022468198952139179657792154124793447021446765157255455085795806823504456826902262419219166217995066880136143520084300397804205624562106933385795994463123496228334698735304272521707846853449934680504472909290609152425253252089535579074430841441674591704759603244815814042483662685194077815157708088810027120027968332685074242298228882129825807141950760654206642512884836448606986435307596609185138410054621949667843035800971031826104401103459833314379304835565179581295488836821243644095835291420481666612031489991755236928531623449232524417619101985809458822543955676937833599477353063746142221659562380601481420114237408293337268967784851664516459687781783956560156973588126630850755853353141256936858621054251094120965911518886401940499472379642440462851494917785297380215422910790122598785239760173810047712733829507071972374357103879170023942663047072125074351612224997906319378292355464960661654366369095735222298992947894439166780803711759207687279604492597895023009599038653544045819414081097345142994828678863655198384525879081624157241700979881519511223519277745244262075011033820789998145575575743257828533595309629088421936432297468627779179108652679761528053373495946380786383756206827181430979034662241064309045875094350617793696303468124471562481982474680269314732318264712760577378788473068652443045689734659561446774093402137518344261987361107728305785007520973586807967987893808135758833362879010154181729428044038855631645139923470934745730804391641452184420637602481046676715439924552685009513869379513695459647580408504137881302035327410102878923706328556741942429740985864705470977319064102746711100355463966212423861869820032736280584626262943436273020959219527366967069916194426363344502712176259074180337918047263932605393661109863027646094041956551524157268344590651361804450093700959904530961005032017463892389879156582838364395907725292568404699013091045653205618558852273766039453083531962765169466094806937212989299713898585816924633622369631975154015745048893995104924248223375356554327490806419765461343131887634645913403450975166664960146821865355477977311456233151769825488541405651001536844604780788472972604718857046300325797756088204414746249224484711584369904756440460333260073448712451672747778103512331045407920821251465492240798975059543798319366470644483904029823265564993973758336686112118179702036016886508036186892681883878214617883308424012062676013249195157643883057731601555582552575021004302069005126394544844191852432467129912400626468588171103643025774114132402892862080249296857254221680759738165762331283310470728799226987128539692967601241378796518875141522588641664206184370347435878374004170409452419570225928002322736166289984132490094790408680296737146666380636519528632513768169857820862493928556076938746775778956534608141005350424600655926784997987824188415402035664267268710551730067381459718159306538406370388766148432536091736752598220806236003740474191054507008298542853926501503243890131915162138253127741073576798191963333593157114655999030469280317426976898535299554116924150756447635530048766867245817793904208315313155538264114848953632040697130426849410736283162543086086265891112857078746647647232679872394902023626881988295405313212201417337439189389821231325109505451959671820792263274231577301418034908381575253976308529365343676268227842420005142988356421370173878257423202605147432887814869347999540476870513437805525803112099356345185364307783740552682785600007502868211807079423262684217786087942727091922521797279083958321927362916434358722753496544960359750902801248067905085375552878174111426204311082339475468004646853552504402294669819341557770894885149951644092339115425920604527689946415564354422978708664198567772456148587874123298123785908878779151023716395736962554176121204525198464906049876642749315656072358028813331781525329078494101887593803673464893838819799480734194438105174381176257557737043155978674204510550595674576087286102791489826821055768627619898272270564651184454647346501467237390390819128801533039603178992183992576605082544859812649443219638369679525394528719786905806067484449536840632721843310559301829725475135783992999460249499518249131740566634099737862952840204443463329820132754305421236265107978167539891927839575867596449287304101070479797808048584425395826970206132024911340491258502952585017227981658201274468422939688674337339779990148931932471915033391151853911748267732521696172804330457475718286171312009050146590844375388396005286784037603127240027170285572014807968341901641783190056607926229189691957020988614530963993728990226486300073118153346440111048758531367454545218396297793234209729045959859881617474316687897397335805877538008602007490171970699103987267603140567294263778255423569862082469406352896469189786384961487503561533710874582709002908538694402519135919298333091681674153913309737223767886339092953401955558492940121148973815761308533657442850514472890920555515429696180259677976648741421778433337638411761250366144553580036292257528387472729926247036931510308716760904799149698383431961149934843818735375236450564036215007575268829286649513782838204468809665791307141897167755948391996579029983285560554061238085997780994514650350363916397168163272354203836119562419850404888522045409436125817617087059705387485631316616396621532038636336932117666898176632685479399843437498992070569781167989179929186916719834679575805696864902355789256693990291226285225074468301456412248625597030224320551444078699924002279101235066252815751474658119715402607731623693246845832928202632817868670889120223626673513890812226195696645659960052396805931323080962581311943246128750044945799140832244480306217784079842683175678999769686611210261962855617583437445839934134513389118725289421466000950405717665363953751951099352290043142360731732201360313835700087364552287631929188359293683070996459479463128114763254002037094989586123779048707479981366359257323515013162012380517966079517353274246588351164791363907200164321431062804792814727979993149869249455665734065635901224878393164774505862818311480429284992635016545677070918085739927867745267196305580085126414960586704477751637723539736524118459510636852737455254886795658972870934332661624112380023283190842159362232067173395365501750078433996094060673731733779886914167890535911457376462428435794810231336406279508684988606803194388577688774294308585600036591683402019023744158226674593910795543916713594508717607882822589354606847297228931785781980557728499996212009306751475335715474830298108947991301565378075934944862169382291878828781759930006166790394787048312706052381029594293383429803269604097251405215083107934379979030727578527301490838797491278521907439232744598107747883475552585802200081159604701276298625470430905877468110880235479252658698445412317626089592884274995909951975919783343037375038431109398630500035118309719762388561266591914617085950731285686856886777102299166155503635995102065923647097425999006240667192461735906820609050395289094631790021486581299844229869690863909477717570337987677311152946455916138241416667061176636602450376755077675651293675861285358589769818137108851186716739740584436607862290175733954402906889495842155192942889794921585476958102616012791514154620269258397279413953855337218988078225995649767794722837176507198157731997739110110746177088480889506699483682593259858260953663499824039082466658268853654712080557481399257815152052432973135276980287003102278583500138458937411659622583467997587819456265071466905261231094757541856454329481104614297250682361295230997901995669034487523757606004347363716348541574457393568158335685773163551904477056732482625551525601008021004091508333708926306747428211686515530041212423449391952115546134201409497613021964781529900751054775324997291776534498098931555262301117119974187048694210214457573341580280809820605751161860642973157384634771156520879888394308227887813150520055172271213316140718189165008219555538450774211687417907011359230500151182719630895845251357626436402471726404003250867442897438372038738868243366639296739601135046798203400141410828598182230756943493971945602611844465719952894074074667910441731323087808469569959089076843355680851692098051450977634090164126450727182496378492769347001948601666406497317944874870091629972810754039586368076799327238398488426099315692679450906222953608820703312846921434133012114648487222089345003061997009942766873148421123016431391974111694847361164361867811740666355058417304429710210644641163143490815255433857563047633322346518327048030317645381878531629875021784873857750702107077173083980611257931691756906358872124629167475061137531069962529655108757188033752451537293810341935117146940388366031603101001847431442046006763946584097450603212680051318828763227095592928615738589223480680833267566835481795831433546190727154534155099852824808838806611465241475119921038049079256931049361692573048659034203448772321656837532883017578011907568549038262079282260431409994363246148667000883934156009195945410722261537178799276594386470009763685871382257634520989677627669437822696922165877001275641034557986418515690583952971768549463375523517133511531054305092175886458729011686330863652596822545651382144771587716478386194043551368265729290887523639330534109357160102177221086271584729825200586308553887805630880075768349200727957290779196081923069379956973339628557980602037564962082704043629702600311329216013360256487549501923121722121215828868250279180955029814052385927496835969558462786273252264211051825753138022891314146252904785474444408319389925214545599318302851221953739492126513831807717272855353061729556007526042813085332094263714779387456623314704664107351853632505886150605181429415167987149994756495670414719271355855237285478536999798769216630754836092092003728189750754491760497436902548438248986350211019131618182131065897516000312988569835513657552948601487819067790284715517171741863943845430048712229265171799364768051566234088656455328187084227326458358541133775563162058650901356469584212929145258918682046394125466382346039365118190942309339139443681648814663516248400375277872538628204280257522743359744128886116777590390126944962555171708345049878202195099092755866107155270083996336459781770646077127136667215879167882305740183840878876320752326348503622479730679222624435884599744690590652915242747655603009067361270395435369972808047226780396033949023746910312637490294701117023178037569177579173126439515635511372014357353505666737779497465991865411864130224063903678265674713677593205503928204173271629878146758418878831796099295468511759630995275723318396111543266844546094049640106548149842949542260283266522252838490302085894149992519831755740209474951784537168813325005775075565788509556541055597147084395202268642020221354550390813760859551305657751705286154458179864414778022971986996687354951609664908959418653128298971679771820316348571049958905385145339619838528547974313082500436446794731756989794217044875788898466513023018987062397592007822998496004117632442995006917779655894729440490587958251965606193849380778131658255647576097713837693901764896375005426323510294122387617806058690338451801640162673812778056392888518016040290139813360935677978957332922201204482296836463356328445918729206717681179522941639390747493253787762477691932867294503958731990750461059756799764325784195964524597737016291758792123283303229935773288315478865730234165171427761950967183013586812681688032104783948101951088983941790583977144430117106529156384864066741341322592425567292671075849681975369427192514648439680245874612908296515827079787669002632533699540020085556999200165594969756302041362980583012157818798291460412403685205538385387346593409797314779321990616869327389927058685682493987201687842176881634529582123879084359587183827114345575977321401005603730027583549237240406562256939021195819187162356294471771785283579152221839652971440518743555549014356952972697387859605972724032234107931962775667891873343376647584285920974901988488104780017820240863946384742001259965098463823177606598177529010667195531841438525949039574206982644703885291847317879152692255521064041437096972835014692467722360906677859730448547029326194284986231407760030003351686702313311693837540307044540364469203828462486835582432930414913703946291706455307736682334752257461092556258085977423458748284701330002397894674771231087170423430894097228343033340768107725022754529603525450628779077568800233048828116730653706947230046711862876243506755100232655140183149656563400337532894317973622052131160388075805423207782049418588609344024804477693124152385048310078763545631527433505212041916016574680212743061562704457010575465775453886651587576721073351954646831163997288218265585960533743974762115418615451754118420838534893330286289776850138404542675896676082880615274747427399222142865534848372723760554252166932007021637978551978093789467073483362788318688782687633701320334523050412950307372328522078065184469008435855615376754035168346769176360712942961480777018848572309682816550073785499090746965310136243988829606284324581822974450914902602551544649861965860636637132241892596926725626271681093481985009542722951831377667718427326209357834553875479999997301811045264971663058812265983411627550540640285951196811295483688675422665915395740085913056454638555465275758135218142068988867139671642854020283793214052141028628903811356499539636841310699739933865866684204218288843148164825142995218229232154384205564835440858286450302442089783946702374431640160818449448053478699996446342351483926314678458045363180685004259416230618937396051594782727970973340512814187614994121038709610804164302172210081675613532198313176901041386539217917404611188325667076214188915358131448618855670312064896944489368600102327889273449810036255846620363539021077793364241339852959758831334341471363620781113047294654668169844379904205316380074317192345221319306479805762946851224052657650914907437858126210594378704574768533684832983739477907389885445815172408018569788408961738772944484077917836402480262607768651421525812572023990593113288621190594831555657802564399395082252009936246969495154060724289711903605175110254320520263186513187965360766536658538700438020391215965160824534133965122389524860032249256432716930218297490864477141112939885110896374296957590358742831107380486110108276670357842287033646438850058946513751003889960960224169958119461568710176751779261975436191903437326947439932866305029051801898933226846818689630276428355958755754832382840530768739104234195279476940992059868647330698629972662008836404710245376467516436046072007004826934322868398191103230807182402772940056945853287627691393921221194715740782276053394169623727225946292936927189414424659828196780508510189916609373356083584356409030628871054451193959305499735756173973273133618158644466114093013534848959002575240605122311976628065938641369989983768487851600203584034134385046629256371026533218637037781991348840273037369766982730160799532584258419763389219439871431186265248963487851492108984418800001525335504623174409457600443432467514952442048150783950768892781602949920800549507502616757215027656388606651745599129766318986119198875486329425194248129236099048928544603022801028013581218499543898005433905573937432425833702199778940966193408092136315901073892802583314836341344711558287959306462924186262617310834226992965975601652081092567184397148251339072589025219420518297149030301393183409938811798387051297683614986281158561171712543961243418774789565330558418835666990886396122314272004249662210206010403454516964442800186734075036270297143904564673381293864260296460847979724894995275038765346759109262886534448896929534403868653367894751453332080435563980562404543673646293024931635594629008383993905117446369063539544556351847925645747071591017547746152110102933582381864181843165154267588051709494191926374512818492072622153629074386574042399842029751270386699776235638101606632706824494124588069892525921926389336207198413994303943358911529402101163191263449278073495274331796926441848228225591166826901647912158961343548737283153716098989234355150565114186549368860715072197718033160548264989907419817123018286951591888774241472703473733415332832041956193050445511625195840637387602856568555988841799730057640210053900217959531897001960693499239109215605877452042435532447200662996447988132389035455007832522435816056399776115071880558359995136089938339107691301621803254468761688012149854406413919742329668919858703205029757335079155550880534528979882429965474908056784630426188605543651977071741456428258173756368501876544844191430222938686206187267614027433117048328063382974504924010934696548768024451151817385647101583367648770392663078521065742240450972241264729826498742635238028561065981095767792793380569556582759591429018317845470600542762135380316611036079869928503159470420861603403549897367171263613564356120549007921205553929035091515260638959895429239162715511145117535253267400397944840745315711628278149946142510057237305726373690909727501204660728692124909560785284115473868194549168161662278899959617128723646234456633102549130633138908445592128820370852908436501026459650892678221599837642981290445769326670745970299396726540072515474298749487504294799706636844265427638717939988342663625243339746596941305068492862462661017649945816524087365240975683865483102297267080721157024874630383286844969393860545789377515920202409066140961046751769217579696783249861193969680724982488831960197602236173933835756181073272665962770196146970141912529876578054943742338298424368675563587722955277945280375024288737618775795281856308959360027946884735769235642355897597272498930302992503416309145798809094023987554547327366227128056878095094097692113716671705458547022580449826185889653025983877372056618884205656463599243916184113170183465307479820316203952867021651164081013464325904600960661079859411605932666526785029884408474532484523499080207278147123214495414769619323608505104118813392936263718977009302840128807992621811474745628624543739963158969167013490067851987149762894239154627477439723253859059183564505235865943329028294746100978747880190979455109213743439593259306004276366141270603320460380909650268002626894954493065769928291836664152808410735529051799609838423438315006047880167750881411733535504547412762479120250957442254904466157555120727354469766190629989452745280127649166482954478473411371368159360017328017869596637721673663660177212447996054682981451935953581050873157869879633556517777728937522310606192983031219971982234627054313665798464889928891047259410192461406370027157628688489690681517165640665238685720081670503431223016897914035412618320026840764995311202310488765859192995837407918354153181317846822096772448658977888153778755169989025305219759303458685547590857032314958285400154601353649280405144590657225671598384814822655210444989578716759812218011368939563601346313974973013411326732856206845237544049250167943677434970129094520833141335011095735816008801554688622544817614201413663877141210528579230898350004495746189553157943674803742899297978876401005385547046740676317286664766732559673013117902049125151082802821641405211588083586106046818025666173005364305819587746647392376874476395019320680080781614852114248500738223298865244758260213108461207026487599773058693103484059121832602517283874571899515199052819363465946850939735769505393182152148915910759416308641575118233120119298946753105019267134751280287511023333931080919291698078292569728698813133942040668068333770360362290806605392662699042700377673676565794372249076988970010524289896857805582197788839517382842540513013062202491579924609428650970367386533427191762574870363901979705354993965145175274206554133477014466826532934497250785760757878755707246903563949176737698974868274127848309603182204475333815514723799240783487345710457100850560748356455532443727750118924301159492898230987150698982873634393638562260301148259734721735139201375825583086072062355950923353059802157137544722312798925959103885107649784692474743006763355817246286299498964975083111256143349803190909522498194206987572348664247429574830092921926668502089464506678775774047571321844503549687832533126348101269675375690416830177697823860785956368895828840651109442400901873805793389862101669189703882133828928838813376425340409131645891213238161673455201422954086852339213430703267026850895167923778340078137141187057835666047211506786178059672482963475438144008769924137254951141401864736007813510924143240522616052372727485534848851585616023913056508388525509958685744487697162346710769308296961277788351865860414658240537438967116577503469888273784806213162023661938253352939147774107455910522250316284018921876728604431854106872400261531786502382089801433782802884662516927666853688965635214896552112574355491555134657944709323597003861826660383001951945941425716047904396723968301046625930975557270714900244085695344176961959196828557690712980295135399204650638632930911759187884935699532117364445441873626320139907982910363750231809547697663698075223643704770692831448074654109452587734705489426128778596177424330585798884683102799784578320861005897405977218053043961447925832550090404787055094391108908654022301532473953693879979906106851181068451361597134381520168970036023719123257087404661413010980063708805100362688839755974626112217655276200092333796428717744684899834978570795971169672003529313196543518407488287482380291896399664512507616322837902986289713942563440763583436345661369940357555922778251358495915551022540894250731778132959213089153834044075964333388796348882441468961457483367087534537574555362343637480668433648629695334203338599936129647826889732726884322040146461423023985023769037305216628145918117919178208191462511243318614977166590153771516860401112150570439407963660096341195642014558739144186102817676760958321274978503578118531208259714184489076071774012511530049896000785776383479954574764380802781733124922255404762456474653953830855910035806456507324946785557959793724527030973553199297788187110852271150087205153543013910995705697097882482755346742508540245383585002161848645672394352846195320295809877773936370281605757121017017516728893037667661288977976676854674939585706694571833793948820723837795231174244962076467790952533628507430248405217654457798117922397764905063106821878650613369189886346177185102237715363492534520725609674597020951912694159661710517035008948242041802591551657739026482631080412069510059031864759986653942149515700118681447676355496171513140852309637274713361317003470422857177464419364270534830794537890721073851512879293594481552892480905388154643270261645370222399703197969907643075388394169440371825305180212501264018812691110055866507299670974561691211554083211346487224038686507430422795605092447427515034495117276898327090980322169784520360110762228275138170372153126463281961435601787352839903613769734472594542501455022959245078307515507671214522348268839049401913056892616715061904200514696707422933034471191073793655127166432171097138075587940638398215314999119633295609997837616629735450362903005569863670917289393486202653216118733489711977030582054715140485452718076706132212169759917348689547397984842290966179769170824048584706550737085223161761662112726902319062512760830622035675698550948430544350684841680710703158542912541672880831720469517139173986846981167505027603884149381522645545186119292159629718714457297019067186239512795933273380934185594112860834372355760598318080732412408889012983417446752249107467500300781029244809052208075058968499683307217965913647257199248342155011629063589056151091844335133717525306240937620033960418764962202267604621300813846330720405226933083256198126989769803964569177004578668672740397943351746697659909019116898423360089040108426361671533787607148108689242667679247218486856225791534971245457208156150824936249619295295369463040362770202098248279918427767717075291275923497607623353283575014611807698435356208880062595374385715234771102686823417199940786336546405687675065348631904115481140789180809004322372661679493339119623892625196402638381952661394300386932515512588462140341574057425648120038266493828771702365103488688380123142231412001318342262726991133135888344495693727956574533280803295505899715926956701267719989117884564008930822950210228508797398431691198333211007536297128407357325251286671304868456449148181058469983000414112776569912136203165379679980175337040046982092755099167569407394241612905977366166166543102437238489576156205057344669918959085790199990517097592176299137177577507458457897041631835026827833728203827402956914047159602037035879639110050769758730938374612320502070163616477562749591268286929809163677773288201896853950727169348356238020238835472044857695574343877143109650805209946446357555423161750939323509925750924077284591289119328945901638651938644446531947445207837305063254584608883339597842294935186579503809756053683326793410091971371244514087671346368571625831780837666081999490304368174169577550313842531580463593604625800482257256089168697348715153716543193461460680729910437979279165910042355318585872748930801297376425445916381765120354048990567421494694540442969950418484846161779211844709015152306906264244974221613023912719722426394074886231594391854480646532876314385878665012417893885182878033391419443462836027217148202732047855532259107571507188457614523923691647844260354078342491222765108010252137848784057108218856083841659988342105351691467888001918395934741476995670755713311557037110350860681117267914652632838253348037688543890866697375206680604774875495288987255182918533687423432000712966969237768426341175270913213770376302213595787850706036093394194195876262481143421839832600948714455455330841902491354377802700555138729248738367885260723782605496105748459031501601448146753425437689611533622860597479171458813307070782594137661027523096382329453985005257317149425784295821546473335343525002275418364613321031704314106063615468149626350778945569423400901619110614821370228371315994557847434048099152892311788231976542681513548692032501412875753164192831881515036549022984323009413772748030458603446520986348242651788870188899226587873564788247692136125956479143480828594046546111277254206319788992559601295473917052104613321424404942215296354829101417103328955330970420382518695946830887855626238715651194965161994032773623097798200773380968615944817856203118656006715012474159607967131826099949710801698827801076907018009302279157606617121224024853141490768931253387735108268905923849893824112047258791860824423609016519277288129912267422825661307143182318583503216381120292049503280767305590974275980651661582226028475111443157819569628452633531895789122824671864918038055982618135933066385804040472820723871366096333635640740486486572900944490643201452386234140747732346598101878894173439807506828980183491934960014379202210329785490728256473649092033089549232872670328619557258246362108380191423924174263466078953408472442793173979907298905040209181019599576034535868253348884014692296620711874803457446425665667686034018206133480874087764128763377565889766627083387867203578543785199152773641260302258145279206178389192044998285828848656219883474280913681470414669274609819401033523802061746104100665550200098563894241270236523376190485444822984008204464309445887515093648682751429946294015517154041200529818303546171236530060739917911094266052852174159371729746664850545734985610370461895719107642833574900653837824056551970369987807705937262585441096452842717277232551438319097985569793460041056243179744744667542453962716250111080562573805113570443260868358836050266382905954371558278935917592638746338434462148491897706800080558242054508026120635241878457261308030017759124686754174624620100659500888043076871813823736339356174077358775584776929825221719358938457501157432791869744158336233491144234631619967873563367506191330773597139704427412227089195638733263267977242085069671474425861625362039984075388034874418023218252116464081184187680491383508053112818719996148742459716972256816855984261162216838012140502813954895186779169908804315232729441737688703146173875365746292857781684681531139039076967299530090433150324838504839138973719433467206319336877831880010847171536239819866307568562347883524134366050000120136217586575493596277604001894246192093203858240904002005745146234608995953319752288235541563647120953018251480589166987468280476098184113624632704855998460168519897147293165892685436450658112799372580410931805219038392777270326450245958869139977994190999154357847606734310928772022670109239293152509924129426827079984120962272452333649838110221365485701059000303586115154024162768140147363702828434289725528439295279564269227651284182333822475032810572018911724449903610501141358974486592477650340544229871425286448700016010619010149119858144205395103657886628119607832183656361243477815238446117630333935669788557824373675453129825304964613521374870934569919198145730358007691816877767253761715355246029023196329199194780070216847359095124630146597968672729616206055799521776954297390807874119959426525580660806838569861333124933299220829630832024414291874489668715963605828639495469904273001681188080648232655207305809775351548434789227156659649041004426808497496184799460202501476790883501558802476043448828455649821553170594512395119705141105398934656959494202714229171563780279365926291557758778920104269691875880650986576758378937797873505490609035969102638202887836943691775333724637885966854101174295925389861059136382563543592532936590455995047846829271666931411517270043246647970342772018995179094617608242782647486764956707935145911965079040571898840622365788142836633562163942838107717838687428709130812098509509756523768646724126718658053775491536142727026257909875141860953893198950441087912227691780602441901039965810123220368284228155768986286480156333894090791562473421200484811160749336876634496897082103537369071396021905257525250630134952742959025531617415229871176214711718544027654427735069413049624921005225970207219942830328261205383736581115197072641823506409780060607923731589407232897781224673460835692515203735750653210484565345479703600868385003469310191662021367147567501788197543301793575721620373949349671777317703570203571237772544377080165324042084709497641849172072071452882997669056012222174903265847212952970372054911810268383987150118125543169926896512757805999815472082401732603362454824138829655763500150936218443859485839423063925494462089699129618562748030370948370010114398757840382910344028663140459056502660112312653980844518795891771161002309955470314065213350211214351010639107476823478205585171520271797257379072745814911266851426788797335095346797405874022807472298066760127934035839817155087368990590948310767943804909238799818274093460143417912409128668795776794008714891880343262172930674759738376519858573855419548454881160753945580668493163441681612727986937609442351557913655568317693588546125976703670862073698571873154468289602670828619862599778736565394117388772733247813191797880954843409032422520144671707583132516004460912752137612340891022257702579991021312014927774191486278213314024590352010265949501396120122689101753731240608914636799718476466476501609035241906283655569369236049321132060208489481902615576710762555669365593351966282511332615910060836616691434506094734571011172351040575582914328837108428841385566463889042803096561620947781388890874248628745503991656116257342203312385703721965004011392643587307535581879864377075778927815130416050210130572028096287344921172692414362853682781431321979376991484135290385350640588059351955252480927368529857619362978386640456540272941031530793283193070845008775201063675973543529964357985988645268747761697669061614735129936818560729530124746247168662650327154078392676689533488477574777648350013433496220253386847104526724022315188699986769576164549616896473124749291312556662938860783131479400028255865715351454872773536502084407130087970061648905289958390015067370522907467295114703354877421005575213371775516499638021922276413834341709136839869657725766280349252827085995763967596684890664207381706243976044386137840550424014647659896828423287990032718150861558013917216783179512696786061646743058137751470015719432388059426969904111467794088795323797027266412867357963440839347109421965906073220573932057906840996096880738522815861053860768149808198288919275973330915841140748591551676044937024545195902765707017871074818136356573873348160286850326539016312933621166370090263815701427918651425242777358187805655415784141722344545684847283141542778688194000952058341473908181962758880249361074153891345309842083063040206690287665639772083656834567137459030926526022510175634881459677353959319595542889138568238816456128131208914279441109537632448546598273095115308935385776834631919688905074279399272497019247622518033567769207050918472840537629169153446258538121768498664198600382065579021732964064817470834656403006147203507883782320026892886927555773136405148191421932427636392263243925599668337082837770844793828629606594408535660978762047866807440768888170811385865944421812178092030207517541129358832441563102010478922483939947322083801707126432752015243669901382658336094751174013472375838245735263734274388817353912985174754667979963746296542530394585302464502148917924132019687655838352777439749320195377018805440123325682501113446386574144304807561957110098003910853668721170623402777473737030200582309169832513744478376900597871966650996632388334008548729121984744327260416868770342696097335058696295352693115668504581074512066421848963113815268968208172436733729769114264818386199614826819086350966028739143594410868202946033439262893614882351132400412799861612278380445712097662064213424022360158056066492334450951961756246230224036303224446010790509856414993702217555580811435876837415211417466918451229214984244516701591575012295563206058013856657641932594667498897752171927530224304243402553945881613152307578283176852811672277147709966600513610617680858367306098840184402233722445056946110002632125888830723947991479565442286051627706712110071789779749477516367704065119331216315035043442387521426804597501318192701062159106972487328513948525260255212914763051620281101241638211158965807207155114386395269459909683610750467346003560629113876547756226522077968388220750588261106177368441712559015442790726107030807005795197305536692728379583623758865660168225553247863140265727713211671222880346751834186829616265812205692360849813796426330990379908710409248043820644603371503705047397977577120942221442362210251656392190675760479812870663267555901179023504077025169879500382963807465916935135964160822532300818881144500224054719486188964586819169500946396495211714950389003831547279555863298552071556658819853532277341970645604049236454015588632227624156635215078500175349811302013939036425654890603724233599905689018735189172195440439842046383231957667223885804367114296395936912359653741359504322903620175268774445293001978493327220244247335946660799693006350860804214478321854351840654894587582753630855160109486172374927593174177364218980227246973353903435650870219795306476809668272894995055185497931450609916954680566603397782778198367135135092582881412195907309452167594981953147874208787337920576960525974152249924662408682499534124929238180043783957601304776474017748849130787568363436358214475317499722108946718126839100358859133095683748550645252709820737057689150371889266252632108186503832499923500492932905877217361153115526305224947447146264013447478214223697927131122511973571991798560213437052570053090666108645610344719704542923406101596626081733104894774178250210684278138418300685633686335878883420630385200905162662184713469495192737006184560929500026983068212610669659326538783014491540834128014723194218950649453767863146348023823174131275340563500600742459195628189989242653785985342907805949081813221797217684619776786081111682569445020333104137168323784840050573467379457345337299323978619208684657508465090197987736640810724708045659033873502282056576494821564228836345522507820802620255748031934175097202254997021900490550396514028296494447682981258605189874870590976948716510132637514061870207779175087700954770532507083194830847868277841634679682111611264571031558060021704232274944360468620906451853396102219977534586719614295240225610933244432865638843398309544949106498633846012694419002429360401321366976794358797604949414139518722658307151999331222315789120681625276620746092547961009248902086576989188606552249425302888182306379555513674981293159606187779939206775456527693848510500471623748755440779959343763385928526316431030994080016664682775201276354454094383557252842334895348763639623333870958218384029788541716154512176941014637711567634273301625709923404738425449985345170809321793489713881545906194995765081608143600335380203959351877604327857362012037323460799665989816293222932368937354810559048779999961645458865636265883303669625117683279154174103671933929568791620798155385074533894199634235276926091176625584952629317775188704880457828055954961358870430479947230389146161047577237019839486619769265224511050673001576402211941669183239961578351151394069278229754014858265158466710841943762804201954371399554597154281713511830606188120788143208114283453361560533173309984677586809565000433105866176453586188558400513359424425460582534305551139593787923736115034171111716538346190852609877460223495061402952867190993595793344587381246772541823424864286463338511499308977374913310623571496301890048744516077555581017894991050312307411427992658514320939882814921171911009460330748089446377832674521859738623726035442021826925808934417562608360689563557711025415100527504204183519704397334429497316811610140368757100879712878872783347240381506044990243693413534837406017086171885460670098516010105160965736127729129096045675244567257998532665317912477419266763224724431744670669021916160061735428682774663233579537077323164633331573798916020719542744786702799859789560171082050988030170650744262489407189771645131176301073635658526485736912347197423028354705983310930405362846560951086275154134083307050097467169286673859125077117788765167567327793496120993880949477522230995968160989373111324349713075249490751506367470431608827549400441803512441197477173034620207994780283261152430982222547761527752108013629362170255897453874506940084631920076014890974333203714075126508897961591940476334770900529305431735701283636051990276846225458267776020272944955459526388591966658210096023372157606763738420933310699333780612117622510215215151396905083447001866685409380499013612605936071646392351573254630932127726585249118868953225433958136275467886674344349862660917156828634889836882032914170251909534410261458318206809762955653757937840367234379533804260772259904708469703291836217615127629410524616294433988677476138016777761978973520717056015345079717913806718087909133660153792994833363930024865647697107971071143913990441572808781456328623648575347641023925480284767682955922312236438794289783134254528656790727205067121869104109829157174343271517316639131377659443653726092224190466173387618476046242864409576070269463196639990797347286200998802405690400669314839807639301614592364665275506472705518546664879318125540691206876180098558851771843058395581058959594317166683619265648560972435323877513364716407387547876823209447123689428480845230945081453021620136332455695198610658323976037811347503700970038760617617493893867947238763219147208493075794337735026241979287017896918790437349566008591973157793722564383950873853158295381865823378904179042578151741318877206732771038929313070990586748942500028718869034403063211215829508816340490679885471407169790865336040998933333974646485853042154315883339003539388628087114913703081182068088122417990217883271223022080294339456533417820658510636599369851546571505149015436554822672424319971315460147477129367734430386023018395425895960493559654731263224477397537732390041977267510941260213994699236220130431198056515845571178191406485207720872574489442515544646229037220298275322430778671037969120240447857955735673684861625176788908111927496813013261041064136094049546118150997096917516095571789253110927276526484445458747212593198216971174183412136629353529836120435203533849520538907183018794635921300932059330608489551642865815134760492257627768976559457173073699631193179032746830534165948143285859198037608765467286575054577018427698507086674891004537729730242329122178673873884658147280487133710301658032844011638078382884696748084530829594385577391413118283746627826764540903042867332129870436697741479697686416526059811466979881547241235455713617251369968504525357115374470529890121790231425899799472987835874809959207205843112021638844598569545169637277490141600717269450514476834180677804392386088801015022735949112883254598621538156702206531805023993304105119818494356443260804957826397621123854634223435486986186554963386129322003388273344775894235377940313658966864895296037421137405394518284651847883065472627262229770609167001603972383467789830986651107979803713384544117985898519851780267918123948040627561390540139474411141090484630157260525218608835898722242792064132224810421015102141500593846511012950914650972489208147866770110228230509976129575790108877186561074464095095945113262085263164240481066698314824458513166662799642860027354769103754059751781176548905194390119128209515769171759084026227982173118014530201721623714112470320751523089940775527374675995579824572759755416937732291759027836088662728499319187459356464414724239325377085237226994134156679089606626895235214868452005904133500431566271440175160916038768706486317957611301507682687211725367887334738801517997724244171828457815916204759217802845586083804688587267153823707080897165325758431826455488804636183482716946995235152007937269076415786080477818550671715120009890556836336445517387101976334322648986908569072891427486596833346395859270789520309223275915935495881330672687649313903835045560677097013070382301486508230928461135326381554872136144313043831894138746690469384496623127858965912365892582663908356721719448282668648918361141972411215770365435727160692324991342574748446012039151555035714349024235033414432887089610982374766115243212313533651940780981702197978084522269946090548030869798782711511193977067580877681042081441973576846189907475441021536986880342604992322664418692474975474156886335898629623668052803365551886201144679707561238893440831959717502863387717686291155834318807733555948252853502407201790374358925989733014379295120217559821958617537303719884839633754573103006224304815174207561226950306687213570043071811495834724679418075059788238573103996453970146868175848569564239053576276033798111914662818858388751752488030278550106139694827437525861175056685655105660567230487120234173045127946041035261771875722942308425408422397778819125003401187740340978870817763719791608614661421549160722658560800361569127172532617257765766009325004843251696751401083177318026185192268375670955228882100298815098735885103379465573702618891744591915238725692026977626373991318330739685655471397980880663412865357043453610008763848187665894782110766853279292912839859207720867527141586189539043276288532808265768673681486668296337508425171734809887468453918774326583216359838449659139745014905115348772956455509079557035506677999473720599405106980086201892357211081130207629220316248747968417259705826867340001092360342249489846335055369388210657266200821168349358471423601043930441781005071377310626010527759854249181053679143968614548824583920700166257719385772096330498711059037810117924458150698128889818419884989287791069107857343859442261008813495148579403790232221655161171493142787300228279005262810468389622337918809531725820358142031557579672326692403846192206684999798313780443238808503646204849957798443686481332755090368563336857350983018898220853012769859836064765735219230732681819739672237165552503885861729967530677244197303822087863446191971067970429240456351519552647008506345244292577989154953425991583094941474075625285825030245441951831238227929604467350013051190402967095849027575964038573351103834495358039065583282754279092147898089624849341259512420323113080061603098243232216606145380042903953674736664173390250140143197857849855376814528922383188795598667662507225653675454371987205375843809025492583402901265436818314836040485363034883795707995952579229627246841710854947375986141598567719896977108803754935990725007577044515348464512614377437261317527020079643833287459784601537896521928566668722553053004639486208052303283043304697448985671783826758546254014905421073357837804861812889073138900403815075433950273689141375453754341312460252554348084643061878795660650829355362553837970042544770954158668013989740290650495927465406407108543879071224376096002151558126998734952547382890819698740155774720577010662427726954785614607166327839989473963156656354075316717855526303841834922327539674599001714084199149442357268560742105256276133356445786403155982774824233030981219153274998352071552918134604398574855333885162968595031366499473917635301622165042025040332921231375336464503384052298373930631226778557685912623317609974797484051633892037796579330324182923613672228944264813725325407376944144648536245825961623453977396321481334882754465023206686479795538506619001065351303267685846918812692103390865542103360683529035912806820852711913174067131347578746360303303813267870430774254810270360322666210524478078627784511556186543122364352965966640769348387095426801196360162136012274998851891980839907933039517103091391912341979799414345598231599621250783229393513630683713181741155023582443955826940787751686011813899563311464067003948803162973537663300640870276720986739499241349314500399279737306674158387582005929140984518798556050470928161030266291587455787236995169843529085790711018167458883777699383037385101886712033401952789924537627276647549695058152682468533838988855732826310578809186327352989917970244508573130924591417053242645788685343450550606340135858884928854639211467445492481319858907779235045203168742144152463907014423289666072422251665259224232761473335227084347421318101509645227183087969875392583171228961959246765926397366203986778060832696722738670932810652309305586187033890856482857761162543138721521282186830690688124296824256493684244272861186098222998478561623111226308202633395851723788142677249485677247647800252986298130498704920179424945085741098024987520429857872620657506516040848714031724186955444424044000606741485282806793934571894534069621032847036597590838041467621946771487040778642178005497599398611628343447818157771351626456651314761590621151103576464996256889204623048803578870885734584829627998093312761271408660554298851836946520620432470807438694964524961212112909149270209782751038075937841437215559735595431780268829756528721019833128930416283503610686114111595377980139608395179867128874228711734747869159959717760226477075957714252176113865260991139005774970451528219698070140206698887906211430586471767119316992128751243116698149447709744215666174053908462481952395244579119352033591132786083781480675034712753765455408844473252551077149579264973136421892989235383858825374678514121612043372167556265696844258093162511149165329992603389070719069974102595500303000054492988514596094452496495983155408896612948554154005302070886996782525102474034656769767653018352476887662671395314517163006824229377065886556776879393881378410988158457741190744925390891452497063131087372140943844764564010714398658934975132709463472992877971296124080970705699273095135828899095754989286005005122981050801806079563136748292033727570400125540510668129023291610758784828172184073010032823170830439872131351862557419271945644387002935590546006318085900637463974624564177517240063097881281025252748226574649649594881466549525696884505749323536232413112329568355301346701181257743063721976767936635808932752231454890237990679581504881347598597916621288857164126633064009013414119318520858086858959817236896688572209224262519146718473571282898379947587905742483420629043100530078540094404339193845938845444976166755058452772436466461831782993723415290464600672845554664757034517011481576594510925807782582504985568908186225129604188682465055818360505289825627483032062515159530418371712192131867239063935642913152956702329836087743939520195129454332485821150282643715542635070118153480502190940939642956997553244189889936240591457658973914760770256817287825824805070253394528007677785127220724932360549952554925993778672280025824116051895401870912868625755924906650226198500911522254013575574452492023588509349463197769532432797939530581719491027078423000215580807240373145277424972106427245582514603759449445761022205088200156878395922514882620908282479137263734079091906620009664798495350960096496121822793528061062061505279271761338840215795765866869687021072572336824570037617096975934376892514187096522881014705308934879534448282907034692078587981755557407661936661228189165727414894359590958692969942672434756880790824372382390553805906958141433835833467107452171739380873574265655634081160368480332934824705956663507234858302240034880167872791763055568651177872375294751720092844676355861528911296783828405984359109155586409866677590970270747384459334517311262538176172897028731624909708618734486358198449049353304086232366466389153717062980611420007007366048035083147656873802899267929541516349118372149640402414869136688545171007635020313137026912899547837114376749510721295051641321510805044660547435896956508785797189165667545927853833002642864587625794703564200673781324114512294749297854895229526422322848866804810067508523515038208542263977685360960446270566677412157069017885735726341399925609691809779177747357119756305536123982775578797882734986039695614584284865877457929890856070272305625979670670771649462674301282354381705358996155446019304734653310750584716892685327477482906687953258983532419822589631136310171313995294471343230716030430467665129265686379733278347919613382345009486715489122209975150364225172904613997666918165142269180044096231317916910312463292183756799792532019128454761654606841769143193898132156134365382274170970985452095347340402598748853163602371413480594431389601425479510828472077281372980189844366204544891546729797328030995739286049650628763333770095800400009948176285587332229161118598972387332790693843788157142519266346838736111402357788440671230752165030580936464879801304368170948745414658446465421535838758785947194690939484781079443356898569385617057698879045915229239396427247509096110271446607355072716231394918969659832968637081664014935133072647585831430234131137661984004285928483568377821398059715215056424537927454345939347995561684191236321506049284555465366579928193952332303889987710240087213269344696748311402542655455989237104422988977191049714634444189093107577370061656876040705869859450879830474017192756744890997685884974239558529782622788284980371576967317706818188594351094836424557610056287870173008827546416065014231179203378442229725558033433130456914748866486285769141098810710287758096747764147085344033397175645452011818036421664622304858540778415538616000280638839163965752917434139555754562252191685506027307356521322743681003578784298998632796005836443384617497190892915777084496370637576295427024199804801810658173431108288891738124252247018335181791770795027176958318525675689901615717673472533884006089629597767072315987348873543368318328101784251919711592752099517458023743786311040806960475043108487412754645705778122619796532039286043274907637433668225640684765493053249878300733153772695217747871159353025534635828238556190909469764293155002009441181245007564446840814032906047478511966577817293216440519001868082113988430521978030057742592417597214326751801172210754718771507104313063380555233476033437196607284404612173071348965693286527666718932174988657265790395627169755773992293778256395534260917653452667496135692442766428844885266193748705289254805469290891661272040070181077000392550414641150046857392820782661390472449392157407746056237917467100893158165091201951562376849934600417850610847173920586717334910409758700960827270539464892489828603762877834156808261704361792504494057652192838987821138352518719548235974007115198736001625449567148616806522814097570854922761662618332366981256342082193749793158413588222655266963172860205463971646655381539911558713585588183144486659974297681383982238247471163502255559655485507456091276859698619518722067437662936592448260253800558601923404082479091717826076956598190334606821351828155844810517907345438216055580394209696871151601140679526431474352923508253480121457634333527819787670370925126787453298504788443547789755963278678923415992097098358445543709090523447432530736210423431439621315294887808514696038860277864418846575933932261130795215347163862253779910401003208313728952673148507307541503683361125056706055616563308647290831346892643168919828043382451437134477162767045660567551848387299428654562158281096957793295134740915307868064082293004120764680703929639558287648035398309795165818584665521816737412194287763689811918208563061449700708070141961550563430218885343680245977649715206088000177233581425759634566821969552646573437058373521964737986061439998611076953980669462250000106094562248507173045720801007425911800909826005332077778524159028629132844676691077053087411515263231205651618024011547884225690240367147301187031381628760979879415854290234618741350025448799637749308551736534270417661338089026802275502207684783547755264919452628689780757144089187203533574156088946194895822366240898420170150829186742544648014632740134292482683549612205880858778569321253602634229337670031972841549065341562684454940775726563056600960341504698878472402406192111451263018240384648253953930696095162774698238108535076380735734179870424076102764023545452339324849057209147158731254356750146206586579415550970460312508436140781151336600025563565165518851697229678178319438828658684972562394970955762247605744101099864518299979325846643774488677174126628754716523643401102952163616210184867257192039249668822297539176266677588188782712340275153362639330795881974038491930946704025971376660301410577688173597896135367357261933399160363226313520487417887100932699972969242293884082795572236099221010048708627436584181876959126050092511285140307009464493154457993607353962600373236363333344575182063009237094521733181678725664199001053300380259606418460516852098412929445827845728652856955859921385634142968598919180461113306664370428305921917883472389756192070873769613968043905800102584452610311877965024044247561586660459675365351445467191118725773497497569403507395412959349111543319060796931877853353843759609616017731383776263527828620711152476796304576224667168450254834748130311786213997538713570585445397195643388582312209121454821158169314755726244759306620903266774117560639942741795098445811856159136236453090177177001422603328867305965528549500161749938625314528499566575638814452397140254991269022428211655229253813662402511684521499570062731351715987347742485190887206900598538082069658003951107741131118251010909867785048974078612682868961702848104125470012461080374674218837764440888401711146014973957453944857313000980320567573411992220921272159751676519926811470225500560736347336520853175163988537490795218542741747255164204544533304318627011516246514465671753744897667865382325252161739251767202362972883547630228784196542755555492511921465489108910247104789322106570215918991342082212408295308470679504905929965844451524373381589941046140895106761117872471731354314519061861465613973206662334697056390430268181230020355136137604974496656838980815912360979718255667169248598478575418904093380934236897051908172379331583987618215942760067282483345672990296785928571034501801803729887537566699572208170683119055838580675374016500271033135680327964773270298076344226735610068480022115741057496342995484000251222082208183830660807664028480675651370628303992583847099425312140023317951444866510806611128781919520849969057946453413097879703200131372139477487026892722957668568561176205218201716521280660863530530482781571712239956127435143874805487492582525568618534097759676506987240867589661207724837161370682695657961500569791208228103656535433647245928571824785808987894355715400192361243681596548329018080285340239088228435294394112120416511369149299814390534758140838106424414096298133076281140017012255078064976664409274134574661931702575595840344721958889686640939773681985526066934916165094610329044218066077333833027849458826201661505057119320756784148614895980920839720271265008957191905052894815909496801017126538745290260341945004302951799782863955110177560496587400159880263071893862630835207044969444379652341337246827533078969857459807515505235630097466862592368106694333528759370233559420272412520720132177568162513857507011322068003487339151826996711036787256121745970317785739749974342790868742186865200229926218190597529804832857800766787586432633115165417728346491004370891177234430023073391028173645433508364772006725500217528970601066844009235997761429128032646158397310259730033095556310680400927374573550174571151205840331648411006398083346768380484290621226541903079408801317992478737556831083665649991896356390459654529777022060810786507066408080495265600869950075255217400988684129248504180503320092050964760594197883142273691669482543513953875864056559594067700105487108752448676098563906756297603417221873545220624681692142810446942163120017745008929207785568636674333992142907993383770176910595538815807930486196756397266654292227669653826853990175748386462417175467814073499699780401841218670992727289095893420101141759921763959768135359439945393396185822433733845503824998420497705193361334120385790373130429622661579011421010424263656519268700715457533518259967891476401298979152273498247836442500422130968729489151600463999791565571955707234947131299143964382043292603444770459108574874204678744824914813009816691215937054662028166358275419149510023322783671736368215529139602882773762750757305176225521974443379934010597811353355236404831279149042849471208422490155317772806006288635751314963760200445199309460693805388166026628533709898887860288787973714976752947107449129456912113727695423649801754292376538854589407018313462005271855385923241541255333620424101974309633224308326588798766640497431156033359825404028583419386552687753808438030837165501759763963822565531390595412791043625085549863370616168172564128479046733124239095599873042133687615004616856647790734394577927231239162242123324309755899601266141331732232209975863342932623221245027705770474864324445408471754615566362364371573832824576497459525115833035884873244016531488640823140298674002309526875422272194203850613126215056445299450429218689229610824441474709093840957758221322272414278621420904177017478444586927111622036541983969350859644385217605440963889526113707958209072026565640744961852527566647382876432979324622704246826678046175028990772678876709861178656883850127036939629431593538042092849238904709640503917101086395839344391155487229546223619229924666951571269351043218308594691381202810568053883911102852422899448889595026502981245954507932231745520551076567082165611729436319710865562713879147162223067695491040443958797564604670218553549439323124894892114019023859487782506148445280533791440549460335448741907720101237646807905765337271300597035514254929233341939391303109517088350746384406717826673971031551283488096273879681770600299036369069730906753307130435838862062777815645504382944403802536904734375935989353567717849001542706252046172911146416002916597440811503598920895092104158921307495840680543409905121917555147975049717323880920159099563881372976454686884079547283133292267897374978247575604974180457254057079433764487757103087532148151423943522191408227964509136480851368120024060352299261227575930116126279039412804672638991271002322042223636850450377585298893425214294417509879577435539483100244548861897291097824404690973373392438539723049867887616250199618028981331206652648401175483441644374177974802592232480352903315026244147864944695269459234262646620713883221728950638509159825559679474057750773347151119912260154684955999629216263558271656004149306889281290486359265377668596068082242031238132740825962553698180363256910661645673794639610510765988640100741420983016474876337822948300019386344757050685621435390320249845796301853405785343123269612988232605550836102295160729190348547313790533089525851138968486552070682258471345733905776251133558379809442668348523510733961258115076937701412355381758736942109833263894061504607857198857621440843423543144842470137326363711939221387187964640240424949827227478628292086430387952685283630646357758350732636309000522930611510910200764952439242684906092090713458375022455276667377748454445739083751342739393514860709440301005622028707301551841026561564087522650059422326197695516024105040131114022689373431281727276272396444800796094995495939122886677500452692398246059324783302634454772778404927998124565853510286098442241711256964878959398842316068183986195542013843389844605621892730915804406717011013523292270442514264944270861271632657838467664481943018561838088887416160417259631325177332394972387783151519034385196964162226954535998490178006750859093443669711243546269638459136316348775845921279352318930292068780213537802418493307109412520320183233223611936640091465423415998220504912391189304110110315993138480150907889805336345323785262216133416021395100197820332135524125255618809126685527640773918583108252383847809184713447405671311956003199365356130569282471459363964979017247686976676744638888217315636907587111464916154383179705188200669012544017094936886154848469696707941796610973422472531019125936449951373342928109009916423193973588414538799837975477783145206825562601098481414008446056354402873045010517726172402558908162639326922074805799469419094620125610575716417280943493288240372419823493315697023172531219319677608890990932626017141770128255352484955333019553750905646620223909824508762691476144226062767993503158326797480964534982526042632291099520306596599675770619926755470886817633588212889732718809023303897052433578950361753782721323091521044983637974983103330897072110222256503529003932515470200989264582529345765031395459549926072236002628997240220356306001173782412053993325203689062098866393935268005377107021510020449483364000493900239710733824109941023230879543756162829728503825277909299258270994770665273901522949345114929526075260163109315257177590815233295386376756818272396264278811314988198500939774496215022134550662140909392752036706927464547673151103526934800638275996118290086389588327791311704972466879999506491633518083620865647637602729298758151078683587269545592428028584641139223556089806361526445159628440513297397177886774870533452417494709121814234861175912551831802262341950343643950017147752414630825029668595897756412723572931343707143513343762132282944336326898837238222149494322557553991101097552465159801791011781396034432383958637255931154278722918205083579384855721675713879554311627843358045056177730097236823340094209354452490966480473283754581694808805261530732064808484789854774120901459530092449009027258580791886314983300823946912068676189536767822346047276715768115896374668979382519990243295261599358368647890544708816507684243892290237461600295354077948699302245752521243041828579243140872026291948263530719925036435234599373595813183658362001255062108045220169832137395490412792023322478282632471292061756940205044524663119621615803842366113247574799308856611025313233778653241424187430126032494162383361854560705278211328100888104085455018442394833174945302408857003119615169983174944129730553822216435212285154630935300473610071239277184573596262095204780846815102010875570901396366460337156727612503814531167290741972961716767952656588050972369049641850650155244013621590240063713091411269111810190944333109866682796127308466809399266289813915309294716598801314137410971585926473085122282274777314606693551788736872088955530579423854493571983429840197655881813276755458944086611154852389622240658882269542766601083730046115202623109042308263431423240708303985954694057431346868171266161849561119409122152119726027588632273479130106483020573024514344311214843477415298457478206604319878099342403815400955820371813761707241356561479779329892501532172276337896975648008198068735302667890272151312960971890338039755124827219738550021862285874565104499360721985942179767807835444509595445377003793557005210684284038944829857730010162776031343441717038338415395437147847032756348020334222817748743905534370879251554874221481851713914950452481539303380810609840621076415332893741414534064814730730623425777565060553165050390911372670669801787303057307981677334376456659952917073095571046408573040798619289944496178132632119311750452517079928444109804289030771413595694743628192858390319807573002034089469943346756937381453464486538480750865370611188705499453568535260612615059148831305399785276285729696466234052428666571757931562507459951994868101086354352331935369621020191624399487509729786308712277986987828790346596318629674457792688693290517920487632610139174807041708195841469479104842809756264547323569124693425168449186972948915161792582430478484393510264097037397319024264787519866017604462189282146876322376017592632338298048546755652221040230581087563340862614371446950156100619104347161845048459733176145874508527135344949260821335059009308728214937479899804091785616900106037771688174459797847821038869223554385282093780703838222100762298403033294931917389193808483956502611919178354294560856315474687464219850941957388520200305188793337632290257538188927024222357218602364538650847762863188764937327227631388889857784480856309251979699595150432152743625648900513755903102504415984131905883890279867579874483644612238637998267448372785789098148644652768695517447444720337471154705178149272948427880811796397114098348000527939253832114559782710201572248045115594812322949219293869243190285089541724248065580259932628887630862625644972037026363639443773482008145597234711264736370989675673338022602104913539613359346596066584575472977506709170692322373564684104570433561717859297473192964917496986350448923634941409938251528826213133289599999998669593144896852384743232388749870240152798571499827883985349038540473515327618408701744852462733234161280499039554831927805693210210389345791686487148703482560832592879055809453192823334425678865852929336397471242487280039114974743635926259169191430183709773601606699830012904447672394600680919632721862299210387927935565011182434394863415067062247787613221166756712010275903918095448267914690852266555473526598150869928449923453533603032387797432300968325706516385088813403289317292139886593363676420399832574806885919022065473117380126981190609727208248106023089953621153017402738335279611538717386828682933764948170956021351293487114213714148782960102796093931948372435884982792817050969484504243353663306455776380984928276323737786967724807216609657346303131852403304625368028379324987025440025950566743132170735024357682778349841190999155215705534961960230859397701199820747798455200108404466187000795819658117052670076820551429355137248137796340972380050086676604154243981801251704042855119519184034521764010158323633428131835768862488011598338073921226306195706408200468756362048327048823792086930823155929227820258937340391374944798862651270433722055469030740095697910399889736543369486861997246269604254524009030009061033533469628533382458527939383244166067334791354456486304031291789668982354723712931145183667453211084131188394134392063850505493347818527730840651333413738879181525386936593591902717317893186252974816733517398817719814627129842703879453800969318036823421215922125122450915271681778893361516786900958024667856804437964628632638394567913604818484694468575406639796707316113204002029559253255589309780296714571061323324490647126139043716484555610330616902586269890321461084176735792510037487071619182565523407721098820439563398894049110787930780135086180577306365251261754725952482304348708976451654898426663521306124790023536762613140095171996900556411872493271849758959130415190042501309327123666863283829278606613889945196099263852146546787011635250897338426190862876945783437033378627997905241996556028073114643586490180614500704841030585000402985851952639608697879971414246130793628953922312451109742297473528491168965291937561897856255625591502790747426138446362092668167020848286490489223729616333716488673079637603618290556797290685862826962321212579467259092786698004006310085007628771623280889559038813357920314160829480904306669880829044912761812332579139560620613784952168669570727437177897647192517670476806708801269498409788234114280138933013673296043856115208632527708241258489973952882197234911398245014713235504675721319262991204273002592162501602417060664396032715281193430783984037083879149718675262389917269766307876790577053057659591816027591016396647094290750076653528187838734431587677954481463064199124087612875047228679743477530228002106120452250027849217367239704188923122380643595540621536569827835664851464936647595255589981703226972472868720637216057407146099665903471631552808246277977077835357285477270434225435621613346131370600211300801975285918038591237618958944051042199772972060145856922853138343731034860567989914655705133401875915928383327177373176009915962167326163932123385221976594071370730047382242867695225291328960010563296696924504120627340903273126049837821747311112159416003729693026847768614290695613199477699776864391695627247132153639868118820056862982216734406047624492376817800484008456731578654484605084215813566251870865605163185396208855924301314609062116758975070574490030362934094797033748961712926738349863399260649400217138270205480945322106041236160280672316183363779230324800373509265933004485692073380564540417446961988732178467082838523656416934388472710290349290441874267540707236956726464757754132313931438422055865561332569506022229355864616261418357436081539906875297073945610989312209034440068630671404160837611465030492310149091330211532554803569714863940517307305513152665747281926575420380517585485429163041412323457390677809476619717386413936771369293776657714581975797497680793265926604431581816184970465046694176020289290959328326764432935663776333220081778604270225447641804528516107171159264047377233239996588096907832651506957428040961850834858817380610845648699254703358230992902951584010069559865105047746840894149055640955517238567932289770922393277366814383216179276313570696769041365438294615835704700451111342346015941696081275773642416070131419012158495497451068552258127329199231046749506541103005831340093761964511319663015652960849551215613848688481331318927212744719696151368250015966968599824393270864279916267334474241334390534629471113726900361372539501637147633644678102434105689441895264096178744706938939323280366649586291139278950419601148853898003354496905866025051388626907886479223174367844704278517661866409481857175697362615145892146306248049012657963769859235583824394907504344838101543739035149758452885152211405995229372742892200067201603581427848384444798078869146453828807844589478062485450732602552025300440280579954621376119627331321584608828021038127251004019941398400501059366897099585140320384732657837919113588451732273288963694409487675781352069032549559159299484967550240807702680822828869037053844294790906200753811806741793792605835275902077916514437705864631039931279369701533360061043372227185824777798949964560187316197329202036281160390995723919165098608109811164729222881717872190427688496820993404834088816880461554540622951866430570472008010985757911952889250845621499427190638501334755114413490103680649724289051002073258730504597673421097091727689370131141625083918005469797193427548268499296538230896616233832454901111934801279006440988701187169899881826970065326602171798892662767347859182332884810894236433764754941489417151610656369932859235394150520872620069449287193608252049416306558333109635346086957472906081224292967163888203021610167270463890350255876848412543692577969073164593486644646404126509209356499300103289210448894788848170232510735626491378301978787405900745705357822382180826187732062294734386433041344829586621731828725841286305553715172361666373885274308997032528583944355486966800418325231154132850882614719249902202888154887874902367393962034030558208499053612651148235878988410184383626280659927128221877475305233498051727882950240143377936747787064262430100789822101480265781984665698561707957471723797114591913197919148877360892274634713354874976478494820132734640943044923766032066185471862268113824797860993922632955770738624393802283326905051662028137547304271158584380610895559482990182273964658526876786132615977909574706841904447801044590068260398168887179934186919813061319328674093717777897295935146854901077976053001321021482641764701519758184867675566320082008460011145284718687973623846876246117869301882133336157159673978033638840755894475019202670935982638529889586534768479407717228010542723113309229318562576787012606857220249321030326827632757552658053906193845225483448953091617888141256684302880267588029935326980860848932908989636842768411735663687838102378334618741720565751104086783869753406428729078821489084866450369797562250567934671771326624857670151134322407689914280187769547542247261927736644968534130725380857722833498036590669658236400793000345822866063775078202685756585620130992021739705658711861031879063761770571302706715924996593410109000043316988516511742533559574271433260236658428919793369837320842010100455442419643950163940770233755257930588114105259516833795666359036462547023300929074163435335379214934812178622718062559214942735543469905430924461575301569999031070436011820302077859121165327977938053124460464539725379440774916959582637003099006296815638607451399903656998927839541723949075910163208512875735869435084263465639261062584244914911361158352941864871458855862656597464266457541845819757102474025877801459955096174137163655557051604943011463420469331186277757929754652364287220104154390382168681909025694883985116780810001101344836011274050886953194530993682237584458943712686400282451061479361754824538983842706989697909757446126247296179740053381435964842520319690686786059420958247365817556004057407414391002012109867564805220362435325447066365356665766014025646957877805346937395201233120823004062045479312386663997491313617330036942615818673714547477444054707186966453868992858280687571686177551383642373531314634533960397079317380148243260983402151726426611659368147583683083022492886726993703715457285703922817184754231768548296088012884117201347702235563276314403116375119487223038628080550077541316520879905675812289409499694499355809703041416071030258668155736296024270630337738643461000429311417894462864483180391167732420100761769340013308955856164540890994004906673124329762273116728904055927840763918017658024536141222582122498920606288514351795330717428118229015037181336540450250587336580789505931177382719426744889485429433285155961409942261064109328215345678651021025765427074363365573828795226556610605732485117364680440653858675062934648574748733190092116293794515026849001985761788268880644804355050392051614409657955118251685721470850696772643844412302670456529840229715841512450424365776212565811020679234839599817512733719563630995412679421499983361059470742755819729181658457630768417199927784063637527315035400114725441599405334517046427564883617193257936542451293253044605967968801831550902591150748033450172322914717194869229150440286566043673473650615259377222924045956369706230242879834936644742156364886328196534314227245162069954004480765268689820814380829667169022720065096811169094271413825849480712804017890932956448689817667315227009762322979126097528605132029616550701162236758406983581327158475843930564899231790724717318682908996019014214392852777946348337093597823369950558686743780858460725582448170385803219111897960344244481550763277276593205175006663445976866606515073119547461235678881845247916396255967399670212259264967233018941495257011750042537375869569407491187836143776409088672279391981907874630756118247034122832063568622469932554695881685702149098828471191640787978923758478651996353499002497879099238528353296073451179738057685970263422820331727753077822835416198548023963421861800983680376680256030147127567643849150910887295541126546096224231538279202767985873346436282433898389366475668561796537813122801938511209896988704079546906550778645598825969278862241963545859111073092863488989208548705775250175594139956730737469791103463161045139733263676532393219862965093898293334738328763741774886501338872703465631584428640251018513632184005844300135500877257592134174535938530886539504860219774999858337832959160669625542381485844753363930398028503699459903589851827140933545919475809714909207579334579538540275125983884830109011333060559247570500592213009101802676455113466032524861827081478926686761142907712434254432268166742532061064468967741447553606730067618736955171636155451767530794341984442554063785571857191364856444153700603635029382907150279531538420606397008118027100148709749947340302227689675187041711206721046077454896053779623031267446576305265542748163354527773756365421299855423060428123518992067103176260171956343617551938766478572469268078621203704155007056098165789108682257746291625722315589136820497317879683944281605310427432341778825681834680452315577671600626739785334049436496527224221544397497099780895444443279084493535051925302421212487821051912720528581789256711015137238980091212046583820204904722730149569982105989504772179185031996583885698890182661824908905378224077375957646068128359293687319875556413555399444306549595614863159735414944398098616336723145092427712030732559167393640434112730156692065184410582890918877557670841968002492320309963250439811135634646683248050319758379994410518737174467682449768286357476803401311852910144260984833577288200958711201178190707331887380012768800679971196675111487327964352501737272003445299451384574330628999123211265773763146624249043504541997708917441980128046493233400090772564945953152500589374961858992584670851770959175448937178829322630219619744593015854776203809862532161461926948226739387973240123854025722814827072360698587719259894079842859670742509091316102897699047652879075422170612185362451119331577359239961481592953899864326103618242832420343068206537552574958520297116737336411670431844913049459220644873502218734508497579990045316580611303518835701340244636425385825803237826490825318796953458621581058748636632853665006151925281743915260640100783159220745756678998105936380743163128552640217734249421658542622139975108182809745706010305326321877766864540895575206858955866031610087679531374824961066037910804580012280169481313863758672909033136557037583137078708644248062969569104620993046006564633398314246586928211868893638926939556244644461196368789664751607932599905020303727989457327354521763301939228030430397336788916417091023073572141063714491575611129355804597584028727219916365552846259001528501410479221245638240035639364401757844111768006315224349458464986289596428396271183451891216472226870581765861540078477295713649430267500347642591604490172003656882701200695872942037168864904686795121597533362073265555242089927317045465593427864706547850247813346133102365525957497793365649890397640265378209415807457313414244829209490214487648027729731235764095338698404649727865985167109485339526702009285692630422524363690153316932800437786696935897542203713600511204768983221255265866042920743794579218551989895665224392448635715908855531934235491688477767246244516191109365844242488753691054736510783571191202678883161238762788917203462943777652029978319921171241605643784331701039435325846833080175065357348261893489092729825431438341989200530897531046927359503468990035513748630907935420888273689482166620452009506464329797020474935912326982711109720369400004949004898604039064000901756015454204821521832651976272718143196680417862233519686649557891164500216448365967863772496351028208329630544915447336219884361412786678299468780834921712873104829567698234481502906331536775845947729690849577590454093373701937773380726435171138274280727602613936749248176015682433031747081859469803468216395873503510641984751237177214197585038894377104901873049886934543559113955899772762228108123719126492416500364147296684497649646526517603519300881698361177358344357498173247856967097009876793534359731584691042245155101227811043464000251550530289966933317481207792726608464790826807731721774917441876280998273170537588193791435616013255445790928016929766417130112416099529231035279066622837751226924232008860438784672896437299189316454665035457469784237392215287304416480290269649885600695917544285312457161926480338497664576924633819217575456316744934301015179288057271169764857169859630257259454452995733952644406148208496440346874650851300492418512866097850158008020632460050663811111170706141669945587463075025303715906635489650039594601143757124836670870392356669814356862614717236090896184453344484538958557172302516551517138451393492534370585495322877411314759218107503041743871972203232194313011068461486464341118429310807694066448310915100747177516368819613057670027884768752594492341579973215183184046840807376616159988279209046588781407014264472348703046797850437538986950624830418466403726464723718957603204487652936285399344861507837550469866173311194630980245949920775410621446131626286207501956132233574449601082842644996746885808255377177983841059672906026905474388893698868493786599272977541219554770375330670826101106265748643099129902196242637431685204136183789537530136770457350488085065033263872307168465978171718993455700912303516961852292998465516681384600072637223629863577091661137828950754808373893783787128187970576032374144689917498992264507829725136644081691044717836787240443852572016540238099693907829450760461405942537917240101677414497322085376796097775749206607150553677195141026488855818078983983162996498662759077103851326797203869866906282776658336828769971976372347382576457700846333389486322049512933979531744821161063864905704789834047402455721561744162908098708953168927941150402857876392058308880650777015575356671444052765838718781624503106518453440020051437841723013644954096162120952077926821437731274369963380605619003212873793261092386096915448927976956452175352403455638250715136075915648802440565042507265239611943573286574251667593217232225757344585631459713997911688141080749094228450649777568650738053898767860518016146652847106388622698443023628386743558566699970264952553267632704493325039661257306852478394507094096122431095083694703824829050349340879580963735537104140338847942503840419394235053709785990968628311700834430506044450375872600847040094188007088113426725905519385128597358390101806750726594001393930320242184525526102603941252858833042456490474996699702835605513202273570799426337075033646741372603508532482601654726244638177420219392363664858961160380377786281718052995698704158748967995706037555196578194056315965984585690092952106353532768910677764079243330527461744824510958487667804902408234623696275280745947755781166964540600606274996850299030615263656133847477714707456269444139353115854831452830440152847835125421750792941157369240869838177601332292077528467025263973398853399609431696886352539945038413933335785347016292055010559657022428135650334871987448096396898113956539224074654786051076541502223809352504751087328105016416764648978018843085843029453763334695996155174452973916296343034982869349051840153801646505257257493655644451399140776374736038490463955088449689422600167082258898797764182072660737324824347091375854972618893345983415000446298980897589712801598862358658541795334595088241950008785752662389652635346848029319449333634704342842421261957637449093588038655715772878553931707146160751441611191879094796187654175805817631005730305952275819604433273419027773556961707663273025646274902539025556308805282074876072671365500391891779243595975269951690237709124312593027142570956848935026471411375495178007130724407324928302627401513581549125844441740878534446797935868872389559306408054613582755297797579272919563853861157365465669634063387170352524937479648861961425570105047169547111886764890081483245428674470888937193928874598900195381534779588676182271663880054321853982073939921088029128351818186680581566008042001821082318261596449097438475631893519222734961151095644192402302652146534097083415674359902945766660024282712875270041721260735005174420314993947193112748203923722045327202534962584896337242261922077926186100835129803964964229693940018337976289749097208133022488687180174129810458264283672710968081736758931392086996496645639995561719525614258077571623429648386890196527252629980733475864601393203294867334054795147625562576751576656950961492300265530948777421715490743929161189479401502830601443210114766991061652065295129934284978742909335333593742392666437642797511533168370301997727826737322002521361055872347433384582412622221937606052374103171200216880588518849928027456187212783744345360393853821047868682689204299269817924876465908508016847859201415172212836380381121327399153260330540562643619419120933172666376172157247435697282193495095211906845911499189179652597508191199861342153863614072147607309224677338779884253581356128567706867278192983917596398207718049405438801583562940190011749780153540129237810695385710462376370276860645026132087475412654503190581539021463512963451971250689531523053218159728553392076773505535790602469677006533405887776240422930281762843883587077131171568145012374509153903352701571514778757972312043173344810040200773977755782684852496262468592614595180232309034829266330662999977280711961008768325394815028213683857442967689188549893896835010255592715565650999509251903570435090525991710663909509004452617125004086368017430650013202126157643162219205922929810009585821800030938142426344005084253876068956980510503669103538910044167769756130775311923115703684122059518255235196593066218305010845025697621186768770271802871141052908600338123631670035174672950730123253429696135651764680606231156940955884472508094984783063706587989738666530329738861479584389381791796875459547991445595583328138058854671880623319433049724738592553784424766895261224732985743503111895296302531590358426884821453932063062698761873983596439604732811844339859402478742105032950450765832202983211568883273391888379553861110272062777214154068522339268243179437941129109277938263109274294072513994958050910096951760316682898138899285770705178386126841125598923175921880634758072106013901580359146359691521853131264366447327573011903020777705248106330653264476438102756257046317330610926270356356373064294544261636751863767375309583620600263330264868554144253448969990437912334342692500614991583375772745776536994504697704853757322693364352230627202466671749119934933901684933903588230938807565217951353488341522362811075482862162619194861548177299614975225305647663234934482465073908364248833624749941532108346628176210507770554421965552630745979987300939506029524118398789219498290703084498991077372739162302256803253171464606637049339020890875998600622194258147606984250617824896451330294074562810972982390759388254844889094998729633491167953598887892825053301803476239470174927751593247214657382846775255672144602495554987358536847692880951971470162739029572849214008484895582249528760172962542096368054801618890755779850572489094012023799287193906683227747929046925308816618741697118874905639532961073809662555308568189053512298194939416563385362064903834096893325589880883553576274660659512608831185084059444905243351780170989892051691181385191295960029077655078933125824856878548722256746878635249504320674710893659390486017171122735233110598019450107938047575234282659854972672932086983425563609203404869131573717835663705673235346132191788220852104364343865922450602709232718306626268200984167708173594147158051965262547469623419182239216311753377162428528036272950635505837281403629209556011106679456188868514513585843176737367221005024209512709316667890004717964925201795536233744137681016716606358939271520864302949525467054521885744687061743515048873013689098131571433770487768276976438421553322650337780691014431320020072721954404709740569840357026851852560039676072055349462519234993758954318571427801318722649647431147608106617642009816291690386700695228895930411191174429673114039675562594656350790091573276907569136500531146901207424843037375024284662327784558428281058285054833827142177012201297154235966313071350051358009458583195434386341448861913751610560196757020571585004686059557521162231843432731536554500567242299176043839176508901187766555070408663421218148218368646486931876557628684334944888626646036201839402168539450458050317325428240391745843779161833612347465825300678518921316271560612871240700818664557948777119748888234126136272843982845058325118286675323285632640961075279274084778897328265375183477110868692841337834097154449247595150067412662109167259276440358157021072219062956908980187308164681602549774906571378553572783080564470607397387676080021402438595671334263506696340747400217549311384857577722622077209897473004516725671814033815047014311319032086365021640048789604271349799756838957798087837648826464356965403234384866434308734732497239737894940393533808044110861453781951318654495923602485487512983411668112319874965461239114860996727129991702825859835256581319494025036621819599744366607476079532257961301634914874828695325447944197055700145455233107076316726803238092265349067247888861301039240477324754398531639645821939352587200242250907164414656623032532277652206290566831201248000954044639981062955389996341460622439470922420868210988826312141693135469893096292198411516309222426582254354330709073854230614746295675862691646752648452726723469611590263097721511523100771651017683357012793778720289357447505029443714035138339544558182253102232375264777907901324033515377513469488924955556818007890450130750646359879604349327846275998017689231683612419337844653597004708151319420368251244724317668549313387532331500261784658754162754295300924898036344651501380835040120161067833046555157629529385973202963524067977313296147066666394617956437385771639630481184139972686072616239219953293604792147822690611268521141793408084272261557810670370542451216564700125195016620689148408673126940227206957837115146759297233325041904296775439679898394564765321110213326615051102527007452633173174926228978697490119463348443942088388935356516871666656676161433324327029095286259692427586583263596969267864095655243608326734909796906803485276808165608513156470769408698738441884894414370309602331653063168933031225793996988808686571668453525136204820233284557512182753811927551087002328203018957444918888958589448713557234667963654300133251971700566066299266208239393057241527945722951435286916409784769090983482190955402022271887890297595552653416251830405037285904960467378181896466158393909575117657744882031226118411838752185649762763567402518482112767920222011304330891247295731451284818724257823810034850661750893567145684955213793726130385371663778128584514523661614406654170708736477243775766314566104149327498893610998309140589865177854403143029394294371431772020931320145042636367695382649020332906168065277065137924796510167629263548954117047080895902063256284544683275651573617444025742737794431619916853935461909391078713968218968019561112776577531955247352970907706786553507548604940762307258175215773487586244366340812028279422506325714150861015500626744193837052928023401859796553524181381352424793009894876604617600605862958275106558537171289933625493897110140288513127079956553143603400719411389023825470498047876304036668229574403645894904954856083948305444890619349829974275948655216172894187673061929145419858779912951213771827497217551624766117389935391134348546352371557353300986730409394168664394602233221027988763195992846254713826424767267891587013978864943050138232592885535764889330440848291810024504391132495242295247321519713301106783373597324363613568164890911719000430471899974583180978362365195985936050947511653345776243996131204704010853634343662786331484171564171125142013778812048432086341248698154355922660879507630614414248316595032129064892592557201289998987101585397892479244880047839010526235833571204528421060949808387934531496130324475087093286185021325684750390244071801678908987705996222335342619549203726837252227224175840557651335377277125769188292580250770505783020462748687190774088163472358591631167665721141662461706214682127700022181204444364765518874117141998106414834055123663091994154757738370536206304809147383065196196614063222229409031591245358724672777237251430718982857620017225335425705039773285628205297351612357533928094720125681337114784760996229446613995750804340205458773418706521159648052557381354351951160264803040071186384090032284893153466024995760583012419590568190772511532392904123929476800544934959593030960775247599340893292113637338557265937077859176654940134107578700314752953624829160218611704340945128094032167075249372971341807925215670007524210463798965342781212258326899152545252031157749775112082504543534969568866020102231013629891732436855020786389758625730924832562485131312658835923238371286836206519153667030422244441538618151032242160326894046922585809810893676088332974812667748196510484521018157320313084428995736253230216068950485302149841779334476706060846756036579060294324399610853922989648127005173203626771071169452935246394672196275034214075149097718629006315854145099720745342794740924395569745404236985878165827508626476067694263917559053848399951778872723800552958013609285171675250560144133111926234782108004394863500977671331073122560529029640340361154937479484753558085386453094252767446572338579831317376591587166193441340711234088414793707430875568871240754661386823213915406508784633357803050190164134164623090225441684870749300414816272074315113037899639147591063137181892189400623758578387357107792367454523865565603404647085683962030658064562114369721042513919956263634292124660765125218812230516002600639275900206277029364962538978288516275933192083939602895319464257811338403792425534607569339363509983158113702688873991978710082531473291950641919726562765700069132689870127814324383230829420586267863036397209250140135374772260699283198625280702587787221487388880368975046439236294280420617927064768114296267440809346299100729059990301474077006462292212623083862807128319002284666064006394791887149796517719420702546583091203388393594140572939560311760635537768293343805297054664436418252818055613565812906245761596924069438620835049969778885787425006991830076258290340323802663330231417061064041698052610055000103502976449505603569676267836798615479348773594632210152592984002586510190809015395499285986823841346009559462816894699887206393883858468487433609593454245581900552465971543450674730456421670304326432348013478880464129063659936247172552093341001997138202220007966738713248766342057623176227743883466158977416719439521048261194708804831127075803178180528527797244426758509335685839949984000165704764528883381920262781897920772138371496439389727376860461751137465315639433209674316687793264837469880403660059216492649776083576035668040067188616157080234933758467636225088236915987773248501943107672434187795135577388415834940008138018750228940674847853584647956204694459062394896043796694691645374748688781863068870824043316745221455797661966806587523685244867165431101038828908356926431443424116774648617628652425133255788185979236084204997408352567234055251194293044594664814951286123771805704957724113904890711508580585152000785855229345109316959315260917243080357470978017354250818816239348270139750104035587061648714790162318546079198505196386937489528865477655234221796123360440485434460803723870527695613349780515951126166699694709417672798223451452188444856814583659583824176014186145150529394930974045071360904739355886936326157419160529799763637251913731816695674760969003551982835652131322223480368676301578457967219552493495998354330579441484745970449137516412521686146116387842377720695506101046941728940290596610334833248905617348478740324794463301373205684298566612309062343234565900262204894689052667604572460433056380543640558524812488378672298221849418804768569783710170504509666150290167043682579685135570108377842355618242113853530188670468720197305182169777524525842634590212126060874647279392653549574271039186411206645429435295664913091132604115721204773337211961014179826034415787129648316875903022763207771524566845999768598503799050555420116278168802360906457747454620563831644586270525610237143721520548390173212448072062025998574518416359950518635444273111413200642855633608224420747339374968826313992136010515595056227152115167585896334565312063481719361442662381679070073006830949622239997015918923882624398412270260096699392051763782717723525742951033987151748293801100679273447182464357308003506866194511812128381441476355376296587707808414722467078281636938556882969815672426349620100040841940735778186851201109902340749788541274385708749816496785883002666875610909049619467369342047342372194362782442915176553856295963400256808689777599241842576401687039841510120502428573384103690886657055298410830017025134176523111329304241602138064225881448079230402758861269764333507756428751818384171560718429277863104735212310865865325459818115983590479072057209114893026856340674464230604894403156198944474761637687447568332360486328346742592916734714617293663897843074046861970497412290801839633899733645390239966917021427854869981846250444673112278143016977642925601022321266896533706094333920665982083489661907272563322189535967772920939896709536612661908426333600591229292085730673894138982910737554838579090283988148966611457033019497695355078959321161611685959991789543275119739638458201416972691263901897084054085127306442383158541738301370071091598891820924772756713186914259691080162928515319070325645172545705914937792096747551587875258886777279177687983596043274718183835836000692081215279342194719474393039636448731771950442962718991440686142128362721596284741832260618410630279154300751066410573036615554681086248274739917696356643291842179267131637089626782095424220252720034616084917243915970380277476935199112905167867029773805503568050167209255191975251927748435927368211165408691957243300204652780831289022118884070226575874444482213799840773035228165275402198698230858710580610636270022943698472182305136061974422218709637747327473575195597696362499862332485753243726650609084466751579707782420837264297029531047243004458542452225036665442730286409792121580687977115187905799330415008638182425165463654619969961526832779039822847865750855391220355947824780629681168622999496857163710209445158851253587435054638653419656431934950951193594141028493110250396041437335149931084362681432247998088833273790501086707876532123359237057579606561748782054439096873965905702563937955727176421274753823649959226252106751684330942162545933756292382506019299917001887169946574103188398061089336574123984365684977238956104646123460880692933238189151251760055750154348565051372830206020644615816529886734661951990998055704064988757699960480214444137153301608244345397936007804446167287218252104047186329714425290928444090099559747106348759641313308649820854726384589840163353984352616381856244952378115981795382124824346242557757101048752773546980533228100419519653652692704086045099942704133181366003425051508895863573081589483194494169624734169366354613165528769693386136651919857014547110363362340008480582302703956343083538937946918490523166478055840487718096912643461250980843239060936366850701974506605897728839745135759162990434737062397168672964947201474571112559701598609447691228511448921240851349032340499213808496697111586898398428546148191024218734430257451993241357057561236548891774847125832120790700408144052800366282085080081112378445895733343783752299881583305869356148128102085644395428851337495581992384794958908130280567413422619283209250155326837359020538265832310653750089576773099313221600880990436143743308826703187958338231994701535278322348771520374803731879681047330557832335510435561502738025299380242622540635853964304479687990855336030213406845046112485008042466025825313011188267543647758062173021331644454606320849396135057766375702966093943405999249759635563127421672641077008429940527094677751311435796988411873304632733544296613821314075017595462828175105062286865822554185752457879214949869407153093393024171217351696681455016758658509678723356555704016638904836390874827466819374072617531697198954734915945788321327554639470912019918271722939535965196639185281850160110887378145117984203391728360610322240236990002943508123526016719292095659681426482302293749366898921168286976724068869855221107719536400671486410688678070527472575043483028732764146454526246702595713894764059998692466601817159059320002309585710394266927173440461194650700831608000410827731057910816170679577257035113626311503848323821826571209483957945154418497972921784855123779991283628775192176288240949819709935656409583554199523528838543120716802645018542663192799169146672739261902288001372526183928116561231331575244825330782039660351759294101359968308679197028796777486055609899933474530424217540050866581120310452495782500358897450739721406827223599624335329078015044075836277990402384794632286304192969746780202352705924235822994888201731158522553093429571317294987450106011625637374908975873868865233219639712575783525035150684548240450719143920315142368782926519035437672844909558022564539794649366030446516786367807383304138268686762397583383871866641076480756697914360544465474404263091569416796382187337493321461749673556619030978454589434098933590035887889998225153112729529665194149092691783480127018886606329855570942771943412189399087049904250378342984121920666192375950434853785386936601409988474429263400579234907793758798574647212063802110793070512761332922598337774033032067177409527719072006940684857388832483993495532627170321964035751763722511565608654817316206834843244607732378610053628766911139747453367670795737344286095692582202831955980827905711274077151356814717776122553762473068958251234444202438735655428469643484164922916158117445399904128861087257814309631534669981337612544917850214401868315303393062890547729203052425453855133305168046614141596242539731058823408539040159754555340532938143738573812324612635833859749948446799185021155278147922881105213496998061188739729612375274612875005655595269285298572127364024045544737421543629861533386625881125102785111467584490015762416483704018564304474953426159674014232697031537344814881211785582895853096715802568142846721433211971555750825765521185808744190113462479145541946182659130537616059903716955439571551921973870499204093594751202917370781804259566976749953983117598268640502512243361831587912834983727637128664649033983863374153406896921421996187424011525706700336757955612480130617456734756091962804916543131821556529187472225886563535305497903757941026552165556804581448738229745693794751552574304632589148207551173325280979049645528197183442587158402389205690276656521360050049036290252939931782965894420822313977889786443886493804339868711905676697698277189353254437714425262321220642625523481757892534281435816102026373602713031195916190434350367825706788620953318997031415207293078031445161866834874595597471936676728514463070217749689719947491911763653443206552501862540683422681099472747546957197336660793547056546363393830078325375841432441431746346222554975967526314101186392133467731934843237510657296435705240718665878314988653152177589594600230908310169894005915564464104320331067477392954663094051085887905275107301278084975558301810655563558167576651986332562080573532388425478818269927360458524694991628459475291931754283919894483433961858655876708180323878557548715208377603977630976469376780738083768487138849530571581599835087660353885227279154187215300380347354980156961108158853421394477694082986829786440815481055527118183949159340908462520364823299742409436551270414747738607366051260446835317052193261230544629469757751955961564487477315796282399915610453247834693564593968944074048946189854772492240900191751383715530234592960728856431927253677845532131143864337474930144662763047079810736461529593538915120745658350719153152767267852795644111145264932541575529324753231384542919186759990044205009331835599380740548238762837681312417342972453692949096279412709353858060520728221409577388693817451583149516218884825912692568758309803738436143585523443724729886665406478588443814455355198619235916865730213326165045108603750724616105067776242731041252427411994789306763317701855328791271584528818259214433571882392337045327192523490860841461053251751733274015319220776697993935202688528136189020309071369183970510146512308201167038352752199264064705109157672876704546455728452204953473330346739055471315969815008764212772960770067839030340573232489703489262670933428547060893723992941398922309969810920745300727034300658267994954924729843056828892604638869239239103003484693789274494581585556617183949368244994496275061299366651373301903149138632656422577212248236634108731494690643285095631783529243200292970038649530557630485751360178977412385379798308966753893637100887421646074932994994304093288670725049460394695696670731275058487230342368917863744128872395318232099151261880743822356538065747549251650380715917257223358920333403932299230368866330656244985804930748922481013730605200391085334161511266804808179883042604213106709655663669492369070627341615763507880235436119307970252589765580013953327906284370170928862240150946842791823722045057280514726438634860276558028771993646967648193332236163773553067042909550115850549221430499586795704368399944419592864220633031090445860077961759392378653669784390382022573394360492020277146919897938004615884870935177117912300744183611026482381533967657135333728696413578080409269366727781187249664835112276464691820945055297657783841855639446451334924876336927314353832853486009128684784200687204410878357040408049446446183216938737051861177051177657838487579313226194122249310353941569402288382413822724434720175621224545812589355846538367154180630014526281795209597769510536856217681875602348715724341216424181555385720315489583723552382599661348800092631436149107147874167822433436315473046729313496855767777616217004720603545039519104022383854051478278249421327399800071988128432905376750457155624220288031074757380976183688673732157552971036037976165723483177438980080732064592324666215466452966399061860095939843404829567140121810132233342149774160989796667984816350183557492285088826024158541830614283153307675017657886125148680265612135380266973581187354204851944715372889872118372836736338626846379264129547812271020452966286889011584366346440811533507674430588952924698433542497031769790558183424676664019195090582851743939792820932167543756672790007420290648404834710489409411099257404217835216546993133579390335036926078798738208367964031805216436785907738662426033938298339506538613387643612361729102505734417448622933489449535858708459911560041486855206873141736006033243304018499012414981088247762069015844590960702438563188344542197617183705744816545678307098785281791398206373131366581537148164044467852610202861904582004111452276095477393272539724972598229684012775474228670896117549285635514632406236186811451125949778847719362413175524603221009903710970602340680475438532521816866882628077014690551737540377321504243385696941719793052853372436501944031508347742265314912630441737459724931722423562689955337074049001974760057637682670977431522868106366211622003076928659940549755726952883474177924400132945674158023050461317500782265696027959272149515939520809550877789160366431331113853486810843126397605651545325340782155417100996933657010177918169127947541330328507506841269537450004151475272261751557393540273435398162479750418918342038973125164373527928190874193598548720920239167026767634574933418605214041723602025279190884812326584250638185558832472403035399560819875645224902092184929662720259463165403321000264642742114609636145870283043118959791924684035949724165096842244849477136267706191791931405626413714174654217375033848756803243464989409023584531028466096625953579253131363830070469775812092487822064256227289046516714958063857631838540334349550503547880201450252042103419391538338862810487569819318684119443115028077215068350848357489565572919555411705561713779607062746913602172543989095643398240260954902950469627529307720259994188504179768123149731051146760563329167357392232716198729296781757798107243374029360568395309079978349302859960909672283321090326709308488857757693112435784911595022559303664916842864540050367048125494948213032407023930255031872181023271932340273761084075130529150297175223266132759262328565217884131652968091945875215267345906028495523345456028721022423006449720295144015698384493226704406476490426044629103945879609001713086019237809680869205708357046865502480669175406734975071391637844939133486741161055833118138665801563154582034457278377972340117711766437515711734705887081821940821751801772055040579626923868937085315713770936689789159374465815206879520503792169292889977340898389797567749322404983092874694035207176035269163066405449888411220258133286163223885970668012440409426324121264900202891147932481969217622827639988366733443397667486010229620678608965155428295726708068057287054938795516136250150232127237102835812912786255620685088758991802264902198005008759049474751894778143323845538246656799842986815743903773365985657039303253097449388341049221622972144647445706631766583467904196486033406728514965652935032646732287445157128172952542158094609517556245943120458212895012889912753832291206412807784034848811067987854363071924708714890219033417681102274255298453576654106550761418910056942788702256383539342090325772798630419090202626310446059862522451450935978298317571546311861301018265372523053885119159928644818557061250283134048099821443952229318162219162619411091015819983655480306002404478085579896232369233615006580548984168424779157258034215257335263948582292651295784411682424367301398768386824651454799444187177896669059912028040233285030176974579241982319373375120435432008927541531466232064979529283538472133030620795575349876572956999679013515296800447005355405951394139873131577410335877770950608328148727746419060110973368608580916273758791407491398857993965462515020064849960444262840344379857098699593933110250184604455225347058920010504134148249994230927297927370012596118952098091369848066252495733059810522263402433391094420996790336877585035036864709994818999386327494209155217761731753355362713827892504357816264191569109942377965667343484263705113619203328364305315910695216791459937218406960196302814136892861276677515758421904544644067480566532191364696061496270850099405080409781514662066792016389663821328509627358415218190655582889779445810017580138796666286380191332820258746395545504540820227660277206626978185845598055596353361715997619001574560982585011419631742073060373319973911643919130552737368645669312232680867779740586078152281986208320289366553046676137345526725126661531186691727501022349404278538047169280133899334774195382570537796019867177645916948613697715794685088242091352392287137558856804476828393553928863766103008613563416350279219338777761736648985084277797846482360897271540650744188278467998136639435418354324880858184729690875954417196586801805679859283102280130215582929074232467158276131268666355409493859112267321337350616654499086146779619469308699975036177723199243711503696348083728382391706332349458001010606932890077023754830177668592464763965375287902693105708199829845947333265989389863794895035786882914463026793567377274288888661651527113886752334120776621612014356538242972245329887272921819553258319729754549688773156720797302542302363057198920172035673154098560943960041912948782036418081983749707851962305970180799825364366590724436293408603966128085316488983807383940187577235593515668989447537978275180802282272714481167249946199389762821286745244683784053127002591640295417196974629025029216732729418925648839312042545707752583717376501185262581845264632361722525264713177733852364932361178379412971075459885421675446690078268718025151740925124581792047764210210970235382481384524587953828843483912552400595116481036814642014846751684833682892030211342235652656220393413510422622695278408256677858370645696231958113243964744116036887423423535048323312048794135916638911630227574812502609776996033003809101102360960483210196381480836732956095908316259822966204089781817766324027968350700647069092673196358117478214627013525846397396812732865646806753748508655820760688592512030394712115392218451499024735249196915985043952013229037159131888366373277509197449898169275496909667850778215797686739970626859068026266705816747741345925578635154042745904453762937080066844267406792778838309653128682858322831056282308912886546432387870133074392219206662058394750789278976460146863647338173681939295875316864716376815884176061513315165553939125436009752982233747276822651557222078804792224256984216962724427932648444555794837815622078272201888542371248592192346395547750942103127002975489314626739568813677608140329102819026475522005973199347021347104174073209053239078778011237082536534636299138933827649556595263678863508021928370930796387825803874279627688383982763559231438176952991577184341255308418423399042295137934657260986316980848511301321157083009991372059165094501791400544628319591534493375086266170458503341173775889079324426130579052590770842118457345036483962552175611468537181049241548269616590676306591613763225594023641342866915862091747391518552175638143249895564399108788435436924093995579950280329128199549395421425196159285136898403392878445033304479415479079640605058259423386871118538809406042179393357122594273665560726133135592826981429118840753639108978534466794123622238012217117998754326619332036102898748345714911811412983484819021062885938295489756909187658305605713106315985584956899929751696034354712788644429115850539374851622908115546592079313182479287848238424886115519345845807479278978024128041577169616302999855999366269042216262154709884029702092464155907352895978111488519634143963829099091756147671010545827536662451094278276961346089872489669183115730732708549490521175867163464532529171130194417302741546308608561217043975625160744031729369317989454580518078903141646634851653226944891975511778807930833221203590933399325626486224830573747626272509276837954352334485876875899504251470279815178162310708573146079674557043729002250433083351508719669033083551597758500894661336948160111351549042350011587227965881491003114170441637844725681937815341739232230491283959470130554251159112396783742237119995298903989871949019843269557074065030033841718968114032715000150581981262745244621828499147302234025820484678683079449871297627322427036057445558487965808658487522812824863794788593054514863593615537854361424057572100030935140942103524859565304532968945145037181994483540980357674624960270278855500817365556233206941394295076898750825361876751972763064102050423033409282748594456079328721949645510896556511566758679798440255932109388172340065304253818966270160907042386223450608457382587371651785333781000421796489756672681826110018422378312424275965879188457142828385958619108939915708498058894537997372911989243608342727975286348038465654292263840656379242540846929997824435416207647945904993178633431317581351354208679108521338347186184506483866359057780949656407254444189505810876918711674325680420607581384402708998511867388593968055142079182689684579943417551851529406490723454080846048348316418350468184060233649661518359392848378108929673551555073634491549515875096037509956794612214294768237212596364228736742900562751793778139783921496956489869970317188292042497994639344277004070407755972688210093277843240646173895225422635026228418865063916669723867538330633188547877258337530145771429983061049177052935780399611093918419562892063311009097000838293611834821799068352731562492028559812786035348608534760160702451750781198715840331902811179660417222530850629724708340525641156518133919474580954343420934288267728357073863209952021011274524136382975346886856374922501860621999119896456816899253439890761451927975418423941770889878248470238076308896215330185566471043272410055822315975169841389852195527786295552488383259664615940747578831968097120397689332019879162431281656234542670712404075868365294563918295389823115393307275866964998115549249803679322020434657538085312572429117781344910932539579795678829222713761745387164114919985241561219378299946220630425146064667899791590239834429180434279401964720648659958974958688626889209004922444820994032284025893857554705799731478807938143137141669209815182650668589884015496262891687552462740824796409455860488296019791540661679546380870948715347247695809331338481931091814619180974920873795794829859383248258352755146900440109195319330500467847377708747862730796746513262673828673885153960358666941015670249931889146444628913263920242571102453326114115124794619558070152765609896205077478558442667628672736250014580374249623818908885132486101233337259382177417186119744207121339581164697427813052034540563351626831205022946265828439580476763459118782883658752815331273957117959273244596992767565372347880097346538469966858296795036047228913727046336494723863252293214052415052964509327215619657097755719105081169060075556395000157730436255625848602648815260284414164322018141735571835229690086038315858012821364882414117272086172846096672744748387548511298951294107861415241178851969998403281597264921269540168095636124070512054578472600845407803539881278162513775781608300336422325012447134298163975066877056399392780477723020540865586955508684154375865062000601423891798654655356816524298652980863989698674333974368417337731162401351290043899469019591521837744241717110563525524493706966357440355692379681475275956752744351214593441547280527791910270495892017702272756307463720643456570198185120060028685545988857479115750905129392997300125262521028573612968081080346856081541656302883229587682392907891483800396473221442724387679223296363121387677549533035053856257598523259532632967009999255390424586423918774933217938651910461622787942452728597333726312834394409967299573468543493045208112471252120927063876657881443544502571930466029659975362253550620607789509066461686951331689847649868711426730672827204117751957063188664836498247658987113755733061878650519608743221057751414756882095022131303838489918201896756494175050975436368910305451677834459217607826210115394835148295260637830128685253102889866598709770159377508531408977749615348932322186865772493878278476827054032271619775990116843644889339879393995052204727717467242781434856635530441593578369677183163984767346716062247147471675067076847315642301611337660256551106492771126756508466410025921620305239102745494220414286201591450028605288139255514042266905649343090253313050957791386893644923569660087467346663127560449970989983133131598063563661361457796335856816900619937438534725466692724666022850515388924269985980554832210411364463326467945502220951477490900116951722148240273437805799466608696638798979202288895604788677101077188446991959045273630095979452945796963595782953439417966930577245461801389132824978186604644392010275603675957342750292993086679745628719954200385005443491053008915679714373310470410573799002952525423216538552497537758931814400820621403622917134263105738858808505069172281892076764783458465679461738454610048748839480951015656026007495631154840802677319929228615367082830238892706082195579341333862064910024316110551671640873610153266243252838825325346275747751901278981760567397360077952681384969610166305063273914444200302567012904053664087237297292072678064323945272346708940571778182319997545058671814298257192226359869689390863297683442430793830805302220024606599808138070836139299845611168387821783779127566472890174419462801860755487136872754799516428487911913660011530202577815489425970165390243256177287748766374867394611149922548912477537111125350220168724488141707539921090780413767721978236291835144837617243213135106515729932115225558434034202762836787160444897122308550888462235281712615684411389726517100527179316544600155602085602673094644779471740538685422624725248817784144836959569953866952783232106525557321821025355160299162684466431246403823621364380650719500083991333263611747135157222365080875106126932869961572394582825090305803078872259771982694456715845770890578785956696055022032244529832974222606841359028642620254399520700986335385260141102503603439241149072449253579673565379955759392266743214373783210007247591384492718895331168423388783883546045790083572988202171806165308108443390541544876804201425753602008442458534687421642557295016581489829243060982659154702606946747575534494534320939019631858802950691354805208484106251793452079315730184742485266247210603483521016975832956474297446828485937937336746723894979645596901556535036066567462654269733639183459919071513277253491439035718525117175749818379551868369106055233885608602357097600204826257697504782386621110501970943921998823495348553311774351396424535932447641701374669611937297255272372018458132406453688226562896052316905493004105518572217405594168849723395791610508728633992737965985660521614919784997271683125283443970616659174183160349260329043054517876313678268101269972879164424744935686850092454640244991461935916848453794474297645233172765505959261341740566554143783216519354905167231186841362856579079724721844094441075588778323158942696024484681579581830178267467136716560609271383015059788330161286232292206267037199296999444119574361880307247880916119746069804053264026562718528280507313187933064069923751634672210341844386898803775084081235444176645152001537561896196352347918028150045443224742976190282257207671012633475167802545141696044911455642071328505116607726602977976472291356489950275616129360130212149334475936481395657979895169489956318620875319150345571559079599435381894629593394125920155897135197566364215568912799326319413215030565616973455885630116146627623822454954636101130188660230981271084037587222399756503019397600842151510565142268761469018661595182712128024268759942428329996245870381597210643316969262980317585616492806293119310504960879252912324489775621326423111254879559969248650170904940874210636643476967040966252188011449696131767185977823213307503154083509110241311745790069634797484861857284863785276842919010108086811500735409285090566979550607848228266739510828363688058454601718850161259047602576375663365234006117843757104479352603620318169957597205447885030542973792491161277204120139778672422714188318712564521626309234488353026698718398058466071824942951037901113896190190531201539986938336822318168711810272414764335388728307301135902051621462184314446170066097067583878158229777119724212434932388291286788787451714962064557192586187061399966641623216906659992994582256552906908816615724627408629509790441997823215660327619573578878335785123108808766737057917261014654667953634800548932949513356001093941489416736849647978670448048136347689129684514969602036595779325073346674689354559762683036734794418926904018722532358529288356775091291442254755077840932093838159149923504863612042376306645095244989132526604418847781025065454263873941758480155445830084904161358756529488654146292517137752728936569048641497857009012117401794179403986588963909636402275434383736487294455948464647829831468582906279515554425063653678703108959738205931944481833001052805908926200089382223474159961335536976900557299125473922003407656341308241661027805815068470327311237456250733043675471861372079970062552649972014666655460192151594885998229887692249770781850883303819054985783154642577127835766876882768608060303337571196642394663014935945448473141116891148900980023651218025997403443680119992811710331888024803478434079712141267267476795337298600892304750376741654054442316369712973165158073679945469582321531801368335277840257773675184897792619576400837414522658280125577559760964611325684791331541762019336663182565601190926223733980079309293581451110218817664654100182433881431302061301417044553239451327798901583279249601819113942644190835856323323973226717312782457002332464734155212206197404998030388362251943581874295756938035620387737195568696278206896090500733231394654925635484699430719001453690042588410059588789750434534184109670397032252955750124376330437034677644140949442005509135653580931820972467605653092633918276254625342895487813631025539553291093549988487310325906306463073207307893521576352401918365484410628284050306810277578634809425760786200292285939300280990324028475346297677325487356193967124204328557837013398791539980120593767636362070959501786902013847451430166728610025249150343800261593277930775014450769068928169122417231327064778926636806751535182956951048083041051718010985099936803464724149551566936140869680413840636296938750668756120018347723503269835856198758408499775014677438036080081510809508294479108858481860999665931337030971220824400982588058216532869254443327155471104293550602702800646252015493469753359706113601068376126945813778010277572036343070307354090101475128825575909001810216320043264752951274266661113643892778503258866411831646284000086064634540139543218233023903470373121816144443692023853218983271065954241773230796744073977103610477799564695038801821422435783936180992607614031399231235536050371758247801051148700840659717931617397903183897553093178529273672057377061010621761914134828257308004406711394615167765116152251833456938173507412618327269993082132198264852830787175887603144387592706563182774581929971023777990480187878336576243272797037906893768361899375724350174991427694246124689273593652031439075719868907783175626900605105158384216080995730931438302585928260337127706599439579963665429557905662255287955414518748970916786332426555532839149499673050125546377116696278109616153592850137471897398394324237117800216651011025854225566375354636227371807743821362736574362424113836104117909456053448069187507272631263444317346081177153440121633131514738489629147369348973092085419451249434550043879734977728224384589633709878283424326393035194267006706653689956134761720351848720550494098784158515301122251112306757634571886529836716963680101317408224710315694330160118320725100375347944892462999196055523431145207585596784796075973490368756803587388070828553321432433864605060114065489292404121024398290576618260899605896109820068438737900666886987810025099686602970265875417825350189810062546622325323735384408668367886787784682228869225593771703828399655863559545189522436279972848851423354580015260023880789378726999120861255127924840512094942349617754225132726825272597563980874264164834418424106937461219984236762455128119318168921380254599222890187765447659494526718620303282462774354311240623124453732967987688097643836520668327794649000099180687496056048960757018752828978400550125007057234673517925659497151180047818276754597440112640191223060129340150890506944742176888159218913869362428307153216267478914160197124706782461552289036015846921010517159541640924353982658744316710630138000932689213990665176679908633825262497963748246319562967659707077294194010412564982641552161843291816740805897662982696517528811089710594092881636782340198533527871507448606486012265683438499409133254675079446727790457835349801212544120131331981158164388441546126018826881451303439655895385349212978193790254652822265393206658960981124116812654589833830651984604210684559331028535058983604092383863931695145693473698147030544969250811539900718545694908100549324020042712156115853263761666497878763262111109165663604801551974594696932819718589642847697973879437462258660684868343031678921631827865420099474792961730893678621648157280914571989278429156339615036548841121877556212632299903924279885912875168129988443455523072317855120811947377967468889753013318988163875870145263021909207019085932637164433715217766569059277193568622042075826374684431926004931964158112157575928811051534395552074261850813588301342905904196611856498510987891575405772882707374958635186040569515868658307155488789772467451478856473463014464480572032324352848459788325269463749196173317059593889985314380060767570789783208808367743820204656187497033285759709388009331110274936889058944416838879978554075989521532991603494176777577231591426479348741339506837990383961353062108448560707356903642111899103523462944488461955288578088307673703296834964802450818306007151587253375479321119757747725105513854695214141813633216576182802869502436726608640756057279912171595959552514793643685567394098034154194769912098113019332913120505315203556763382252679303662310873231431890846059306801292141542509176324851623411940951335775923185794278895186632483667204322140410907547228149281310974348624312970463579231617209888170210021780888918788355752124622088030656158712519283802840324059289277351430206973594444449156552231956122798992315909357503496238149222682288268908574944583249079467182589586165245140780621369493773303684796439396201921934172851479616732885530221432639318501191641334593520935567020115113479183336779016551242988740733452449368232309044246854113435755743398441850181666093795653657849391081815882955591573755018452643342100135298915438647760217794201715294798646469148848855856696802979354511246265237760527085119156105150484566169148532240921230905451708640948719354020173708430457409250275159450457148184412071740779563046530105198567987574345501461096092086167558234488977497327060060296942339227825166448086643169764978833427267141319299560537604237428082773440479786261358346216228887441456718510972176506116308564912511036800614373780891980446051164052523146996509939883936523998917915560410692836571945895628364502465595198358852608644263157134645433111311096451830629814003678358543340178746618525229521383950316198917048812223080784173828185101590604986745279902330659071619009880215409121988654105259729451107536165146811635183000309151276575485336426795088905723915347232345352406367036297505082253197048717988912748675197987398871967513631119876897346028615365108950118759356985129953938839805925377935069786843559996851599559627997210243348332586262104668044959743404454074774492597005498674190280086749342729839409471878361071480946080069387625746668092949706320891911225787356543487898042861125679674544863954926848317394927749192923328998046684253228827318862007074028344777199193861005638760073210098589405417466349525293473064368711883124198997179053211580302776608875225648789263376675102991937875774047050568003958670038208014063529128266539194009169558841308010174620111505092880708895140568520928822726836122300172086829859277477200192317474551013226671437088714964175873242073980572230134087516248314896525759748853870467768173173388253088256735838340095515101796296173593193984487069415390271305695043565659068795319000808073524303100926342173830331709110644202444072366201384820938238835474013286487904251252893064597668047764130569449860416202361734848794287377047211578199728469428836772583843537476452245974334699751508966021604272854768526651058881593202695649298111831483326589674023034069838468667249512809187261165895320085408243661520029601651569275894429207113113905201806686310748118487595779744817587803950819343364682799616918346152363810777613149572793534237972359119751664528723439510149520430330286651021151729287456073762198224918452160603471974178559007779243240174521156325065278664844026371609437811209204347986280292712161410648948409341115322681852904777880192708113848921140957662412271298410058048382720617600846932339759500986391484777069087480578775291800649674620448078147922803483205990133821791051341881056813580201925872282830229277565596417494951605873866504821615927157620138736542705701025167479953333769770411479041829464878443955966452916362153293148053099154547463770704707099803077368724013674642140970352219167188164662268306684309328164139765981518813330422688826424530423569086306746498934793674621124906007158509804444268580003159561046026326835539536245303935762068551608215874964989803249182572541823585880986275317502716288059427202938768577703430773212515914255201474097291561939816227643455431344364456745802048552992199449461215330651879956667588765649966661324292019859771756239859042477184202868060455429238897687824710622613885094161290800454633442850060532167579060759494720010776067586738013082629719360854474072460027932340450433145673918306519725334689635439917089597161567295747834913744365127461014610886232850380774967733660681831885529175389368643411520406031795760991235751287312589117150811360235266902184880750880518791438908818184096881952604182525460728868291941113104279927574390116759446364838355702241816685425133678742396498656182289079533351308247082018283103105286099931156048506527973189528007826984558615076401373648454889062361996136181107229764236520552398891079813792113514600352559670246086541305267649364110500241646212795481472014032060830044540673875759686027454906716442429264274956566651016841712205526568371234654019383825743650734685848589414958509648113992588697598765859589501846383514109620596205652506213003624303185385589791310355171631896692762833389289464580727495588932852308749785963267103814318585110176118369535025613963639171923844230942436568080294722500196579166086597689040863427665459132277990325037558292495874930104839637950116552792461202381325539798814742166516667466143584915882888188238110771698668858034782274458126249337930285087878110019683193573177745006023740075799506661728938227534987583760568679321411420220127883935836337577322472834746993339612698209786905351669642311135025583357239735671393911180660763927559066198090470637835059631385543793011679703843779810699908321197985870996609329097703642010546758044353412647243567207551896878129538040752712025709907462362926566860448196156005186823517663016539719151720534100538989178641131686896957191664415714480940182886565275879027961623016369870994066120866065594083006384141341174635141015589566529505126768635995219190724885025512179766514574907914922228868203849380350294842989882179944530346897994098258505338360943466206007990033310563147367302362688317498425125765833896975183397824949084675420886115619211126903754074775691570044681588404115673370481917255440114986107719101883988713970116489189485079853981804806594097688083966105758323160313631966006901072105230852144547748648370597531714460319878289927831822944541787610864697383898965578844676850167518044737335474686382448112810845076328770933478626609586451591814821445261506575659199925156231260141619359453455654496293321312782990867118643247707727700918427298693512099204205287591192933648068951208296019351919204972036697864536154625741266684254858796851112578725277234873560848302377442548189744383175720064722964014932210709562478300407706584523335645414215819280449963946303374069670383619015986976886001526980431971328804503690499076408172910199398844702021776034704967735394209510939249305756509410715440317290503251342189474255572795950963350608216243388188892273398698603333718727877430127387557706912904141057390756903595259888882590267279629188323593003332720556129106982480642542576201279811816337884626640685718204952990218053205574685749263163604873455204778224128002557534847083087330294407822433072332039136143217116889684834793126697830985582845467160373729386364188841492785242099481538823908773061251778849867187489382443410512200080474332103682895041347993082220354164006349579436954862266597048795006775523698220875770337764642611913318948416209162569782503157137311364463883776857520663993047798582009981301976339295438334310018858919659577613605421277273752229308759635595019102237288831753627234960644793216347481414835300542069345495955004352400834644854776556792388655238606410495056718728466516673413835093639188912650416158921461424870267929037729620746319283396248664881952379589297356420657330314146861871938037033608784758209187070659593315681340313924055216465184023340631693360252207389629662043018463142912281470844871648754520224033743630989186145217371271471588987672012322910384270980485547520700346081913532038701986649131961572746270249697559953854660824386169259310427397797048325546502371150418533291496624972023532403905301774670963971562924015602299356696986321564899050455249298811857972800309965604522665456617351805583140284957546762668909042238884981487275210386006233975243278516098029091612911143113945334066200058843453478521221698222910970079973965693275373632421827982665244302605947486847533399536917982158465757189668956033365434590621089135775939263024780385803753002378891159526303835949051098068076353877070323558105194414370091736290977360319256638079519037637285132012764266697117483005693164122588400294080079155976418301829819280087400173253939364012519167107812111606379651025015736010082379995582345000218629964495541120310190337190153172448769903278721942188036838584151212207698634874470243974500029588489947156318812643071932917490410276497221719986511363165716728073958413204462600492754271790997983556384300268714248272715867835073054622965291207275001926669923241180874852576729028183167573513580725479391851351327953222743910863983224071650528631655494187243370007757674980197948438002079144690482910299045576749860365673172508257339716547164869474404525562018260799812996035351519723252475334134533027463672905152165565814244172815100842877372355946259406775209104555558667819770942175948802998028953134353739401172054742195764469253111014159318578044438889540575295748341722182042315615472514784670067239655819699193231364103343769974045904539813365576454830070358912268554844353209898715379703488387335059921385117431161447049908775423912041643203516771263297132548889639615658289929384484633296673388832215234274488658077323829307621915054655039058808579882221477885981575133485247198091366624955783036532271770653583648958938601739949268923539235277448447639422036682858259801166066388482705982949073978462509284682457316560249799572214670155655422935505116453763649750125767289652999226137276342463041389691993566853869015829492195721716759780021984500349782634268007652032746683594829532818289673706015201538957870848655896941072378931166463748967248774740599676208906983229516391924951633781152941034852590954639214001060389277817998564108915268673982550709840626538827758522851613050549908236035270275106878112680784649522949524879061249526790921921574774953273037225408550773900328444515257192865933843492960164124340117292424488610698051425796613716543287915594498105239555879625260157076815487462860616773093231649938970852349611640919715352035797339521743105518637628825019113828477547316995933319104626352554211745527386812479943534444892991207560048412972135625217696730086772909618039732109963577822258561543079168748744770378444926050078090677534117006128360394533683547487415876301226124833432714209031021802502681244427858211187681639046883766541763270980440822984012793482222047614911865350779027246143432978117799062814959130616399438150231974590068501778626542671078929835842441568737327884471259446689858015969451219125490267618199447516900294455906218892848138371641395882862035945892700978078820755540384073071513653672794268544162155536834464687714371300114521861324410701899255524912243075897270775773562452424769567704704514153221884269556871965902284418758668609043430077807736970640155853066604967254065616251392215028190667640349472903408575608455212389453782592259163922008808983414270287895356811038016433771725530909841935124847928155720247649082970977807562017237489305131762889039639752960907114750862889212232814569322552410992471369904347593172300589250358319520156908383983240834015850217642019773164875807875760312791388006844811915795048531100847600076327671896988586623802658354372850405222770032423452305254572580344770184770350813109775653646225523086228221100757253621569008784448706386277765563688391315968954108457554830038699538708690209944407901101227789841983448629310456286480233173432942736358770345084020677645908885685709597571570562257357963808336685940858751130640912767232753674249488039456696614543486279491380617944710716195977831360698120981879473775963771411820927644354012513617685153836377168312072267461335372038516001655506163931541676854224594618737629211006372204477865119840476176524133057994832637245222345235405873119164931860994356722874854871617907802709687514605821150396880141166604077928638394447360825263173911111248089049396896957905289765795366340866766956078014619137179824170192156878730917561045336540265172642782742246760638473033766883329199166130884561294345703620723029797215648659688601386813918641555663617413588360042548710259313252868071178756458192918966745748966470669485328837851944457434380222512962201290834901502138313892331138109077624805840441204505614904909249700097702582900747783015266339862918982380238971187334145183686254122248390804160563815365102182087184277414970245113398873671209900671236504843360934479262135900950072661105686001269726267969329020508797474232891175983413421096690187570479868708442368327411556235560133079756134663727773272819103928523912698661979415359660484514077071473579717003467781641845374996976912046183549995689194805646906674096941622605723512839847032905859083237862135100660898047110130643381511461621039150102964278975807418804217744431887028546149567122366254751097162430937375854858130761851476670970950342352759579988703450034238781100258721092424764970848336106361785255688276369729327954478048826676148725302219270376230120462159945567880063557329028291766051101990935975075807818495355266583643791784228071136012934150302920679075200897531296273481749607493973183726411192573003852135959481458181793055393291461142623393109928987262079083749714014379112223585940413217230051701658195033022467309785030842523425823331722644776228570543177893191475479235989972539626580859880249730129721702783674404430406099103276855677938377334280419603854466825804682290030307285622946920133497401226054361760423189480505100087596754429802726135844842815359012965093160089831204535870274192645284371454999537292082790267708444044504353073675852171672105797637735324834066637094049517454714326096303490240573179131240524427143501088917576705756671897081303633319713917055260277663630780456820915482444490086499848063740161698931618883085902310972752669530314866591220109177092067105340006748650193289392557226689812323521431643505846710046508855948105697605582918169262691117141710137130527789656670883191647358315568591128862269137909419730816958195268200317032398167223721591070339936140906601432101691804678782226636775976008720130864007500079759198560880205089879311197940418859982382334307120489959399821964757744773865126151904357961145873738289680397803701130974651545000779865190290355550682300866545726776448072670836537493308269312737512204660934119980280396250797627255236096766880267437446629824695253372106749271390223700473140489150754825102517617218405870055626107571671847707516119415833919107014176733480230372099566519872307316063753789243320384037400874568236650765412718479297527126791333529120589460853137964548710412906660805941248390701241298621224635741312721023161630408546477843197321049112181404228749920463307719259010797088000870842185521208954647534711396250137875044568248083550449643839109607923340032035212570290773468219560120664694494415548153637241006619436531880848696471535028936942394251368715534605112459883238934425505552697294366132865448034856010585125999601960104591755735087169592873363094296003490441693243724215263361383311653201907655000731809571315505919507840078483690562950713696116153449521217535567268495525503411147333434907500450475901496976045712094192539545612424920641743043100156047284286317509977394642976899684325025191357460958085290845370012773440311549281793099068774872111498038608944810980064962908681848011755345583598540436046954554217738322300428041978936660745333163234772534908080931492618855682710007385995793811685247412560082221744130262995256709934610983800195335695005131221898001415273229626969626381428494904576722220744483542370371725498492372597301151581576223590851934850199073439899837608790787868052727092468740021084799283339475211799447553494639415794528502947812887174986684809454768516068860479354114072979388098440706872232136449566366719776837240647307344120055414573268700295618219677261203504395250183825040185304336713859349032022422039069685720173731860263221577515587403662800394715621085455288515275501557897265766522916545675869087006728009649034191081480444311943088884060556935753976448773031917492339259726349095626436867233559298262889852905648631756970912236240370628855614856817567298954527340904658900721735639313554013417003901599302701145228436678989790416533143453727934733569992573289947941345749402041235154275162304768999818158688486584714122956882236258586471410140360232660844197326245159389792103853022002392049657291450354642743568410908489256118663351490812795202070580496735465197398862402287194051432861978026120151176416981634007371208948696295637842637086741759957869297260010225641400429965993605843992239998723290974087513129733091729455686462593440967208631029894075155900620021704407134858230494806098210427066404760307321182716442330864929196161421164171421297261953531618811130186566495357098413522158904447403423017356499458425873495958574169391972929703984869016033383671360045395932975752972293277151460902248265705006407605412242461762577742758595776973864740096297737613243476376048421351934981618282440148315995590863633158984113262243867406910383035361327261205100017065549582903960851366755836229446685209594731617447793375281972142963132986614723822446177649057518046742919078507389031988354551422680851178335405013791708061329579172747309016381495858566098108576816251569952145072917520520655192708561462314891324407635695248344053934691300397346669359312248055825947224381863648688050172651609349162320783294561001987130934088046771072472060744998549378965156782295151490758954422937274397936202906010206990866424951701785149083625826293930996977530753314592040185948200729290223707860311260284917226053798094605487705161889044284243835595987893143253883357972486269145343123670711083523479720112920615871218080910351609328120475445177800630698487320550924321643978867032726553697557212129392353989884231351078177168235916190462967727497460827017274611360848524944207477786484773789934457655534317826956341957422943040711935585396874338429846984194566032069557652204013708912190265705053711674124989536150237589674222457559316447132423985140342511773149767498187220180805933932196290040193853937433217279277687510608351394176808846212913691725490143340617065957998869179634817974866990258981134728032683012175338374508823156655146416091441861912504076385465340139387387939331582894152568647985118881816173505231995220450651245421313154785273440343476364145854003367359441234406978344653306941182174149475798557316901381291126054727257407536835034168993663841893666805082981424939924292420448210049135850670824812431874276321032240330925793835502019902452279580134543048697943525707382480855218198833736481763427358623614231723785040139101986691494705745963620873932685624989335645307378002106206617112857940550693716851870181148670382047670624822448622293066785588987264265906933211687193964784147057915521450066391935145146939767779390094452237749108509133633113000339101302726452713170467396418081644995040224615783736772710568668477655696786804042575937449535306033225361434931404530765300647006175346769281724663795353025040056719964601395257833230804888416513166870970535409882370235112884593944196869947680547030412675210654698596017729727051917993036513084694356172252345556770077242170798967298711229180635574365300597443454863809780833736513357889062373238738577481735944261702253070432692214123949004707841191486818753354113063457533222308435805415393544325655351920940232322191330081182964127333309417162504479995707066347613032887750339088639740678864793883535635657787368129697457080059756095679977420285292648528717271355819014673153450620099211589498613940633128579590328184255556642011361493737797586494950996774669383956624525036718154166714562455239780420876609236354156675103906826743510502389715109695707536634192107932346144098627778454378323305001615472735428328535608816962544408654356567619668760170233228212568703507242529869728368484400015654486548019416926974209681954688169051344663376691254813297827100704499537433570503027310913921586859698344099939440001541665647051140152271038818872364518552726970138438315899145405577870152076692606738661864921504205182371836748307039295452920812148694808312150957843500272153054676729980100861813687968685849697987469873328345318116844119317501076025814716329976251821416146110570059438414396873951852613794022909654942740933176640640458737310379544372714588188103416700488968159814578048250191371558362415663354967646443945372943782318898468766766988711569343495188287124757351139098570727395936098327041560063662070782573562273654333869094430325918350571959119010604102354811231526938024275469952080862360966067752426982667765279917081184565842881419456158056647186394305807381531059819769395258870166375788151120835253643649779486203255929702719539433265256027751235782069278962360007094382313363525292293613836924454250307826451632997678794280422668964111763078880221454732876216793161054483370596446308384562734519751049410777949405524316738970519221294421093450113402608026650498319614350944104959377679822120229619050450158239998400415621758594060129810350147617048316228963428545252524281037532294507975611390248709336324066035747899360928431122902758598223893326409193324303174642040126101437848906732081299340233892655149818919677950300777698465761982167612251957204500450990376225475874996559203855807020847805737234347533218749020368227845972751587702810051514767512525102330060674012748900994777895677937249501456091671702383809511101240622061517114029581903671286129803545350386864846495213807546531350722538036583038867784167738358941929564085963725608592668925251586182987914862230130537322676555569382866710001927386883387062277263244007789073582000753802054031087030219118121151536980072840479428524731645480951454728688436174476952177860485399137072390698557123439234347072682755111926418491896455327376826035373786277087053122134682746277208314213399149035768039721964491364427590656258811720592883512606150125611703810421062281928983444683455919164883873126549843062235896269425991356126314103382282312372865582751511810066664027204467824324859359190339389695681744423431775174515828155409216283834314885793518149734430600341839092378154985937537750810657038836532110401936396175472117533580089997206245604708684702509196305748216761787759414944356432334834181932371242293800731318944126970278848492197729458430773305356591103288336804849133191820290421685940780848994213689697349008873384016982598348534522525724725133914968228735308361765288435700983111767516669563668662986247494958243244773639383432375700118383419964758474827773842829950442038001046204204327589065580503643646822139598573415993067162354368124984541650116592897082978341779699514334227709567226934757098782534202655370165496456079405748055533113642911854690535735353333891772562692412121577195127054585876302267876369522206587130853804715154395879880509344054010688284805376954692430810980723802036038461078957119252198295578672051867949525943120831854624974402303202453019399571364704278386195354363049245848690178351979040185769145869752689464919024279675653211275242788755671220703838639125137426441651394862299523379758455850438100807621224434665801478195437994408776062268709298381981544110522266262300268212321283431749131796237398397732398320280775264640722290054675074893677489622403267881745283443527491307667995460741826953271802063804080026388972445022474701806733311592103073957112546997714754865429457945746926648497947494498474787259076232848107346818832545619007277101471174359214564995085461336931765742783440122105307254314708482370044353103923730496138786882153823615404660926094205859211408937571375327980908838755328907011344926944207383778678262607407344964827083738250953575048068512897543956473879302501729734031046376066948941660310405184787421890129474773188126409624847206366417798581594053337804733167137726051010283626924653100968870739569408002163860956288968422291786606918739463432985422411208396704194244780996523998391977798288456426087043279108802539889783350217296623347579754412839793095449584945926874497389676460882693910979057858282735536664916380530049736341776914089626105886061004157598991018901616910021899952597847466550058831215880763593129634363621539395628847823871271767358788818386210295836575288477787622018414763953209254971373867057566411793851473274600221416208217503197091361139781687580444033426516785095205689602467072278593050521488438263696145804808249073312738896008612904704582584877966955859079398852653138762812900323623063205194976504159741603162820148231017342197887642051123393612613055589545280138049443726836679957168366406661241487278534278296070879906894087227921387392783171111079207116401395931666706905673661514653754788808465972744305057729558758070896966162022611299032909059435351688749207922242076245222526343110298304871635496537311579491050330322879146393587573641024681960198657331108032628159678934524860870662464566280671472365546283577050699368395359459260980273503090463952387859642057244805700775111718944006652896627048834382985583364520435836393357846130625562294189328896899229695671801615260417090301386646079191537016650434231329739639661919596725071662161260841362547437668277101317192053532626858075224854338897112547406217279755422963808928542316128448192617299723280892044429432550116139920478400060097369307830996631181254943374245754042955625595484496531578284967997812292986878382135220262939651012177944083586257185192965856478031355228839429486725954930443552507174158459897446215581569952779116750406285291149766693152998389458912045032133938196139848261302856986861802167387077885643252371001775873446105727129295307498489223975683767409591857387619436994011293347854685225046505717452809661034042359370547656673106958812496200728269026189274125583927163537390391208271885149999545150428392199348175304331404061651386662984904349985950377522323330632312484907643947153583095905171045652445106710050799862472388793737760039780683513181900591362962700597510784660667570958186559400457441341920176048697648196335649938750648540099444502666564282483698910360491630762090710587023832064283635132398951074344302479197021644144445848029513172009591185490804689785194116986059118201616559553465065502884248272306688807049635616081218406931637152838505514579287406716308862381533364218888415683440674266778264761419408985255732649298207100991501298435697046407093710756784655455190682389119869381546717336775152592899609063982446081307039819270407520282505004693679037922917971135858254277656876863063996941256065832792275377246221936677224992784597343986438852971831590687744272151682541844984020448345286403583372373647933068533306015678385395913823098262250291677237826811572787688339056535338958352241222734117257595410386439860279706340200587229760414930571856390907595556669874899331211455057958741440362367867197850454084485322396689287176038291399724528177022049485165195654464540449923367559173542395851796905928670091360030646142082692477766406488890884810897070765293656395499838907222476605654684718759712455091702866275757076734011013724997997644087214371800935672844681883506166022981275860684216495429981733454068556245744948664318674537794749636644014978743266284679338990086625147928700547400808081238913167028886368503420821761631776609793024014689335798175839838014852079297527588117268093792355077733325571081608140916623293114172446595464043409350427693886701719967881012711613370033550610437032415213952414651346426300306240796518880966806370997324521416280999795384774679086616696403901955374900425354718016605734154110211887447342613601969314021022506893852261776427749338000048574121742274513402139791410020844127278680109130391086944017817222449746274699253277175101439198188572217528713665681595127858165880101776812233802821097366870470627191738402653937825075707680546230026302097175293219040401506997740422592238991629346926159452779696788687895825865858585645524015136276696911410876455136221654158145019795943968620409172915153067783090500256375268289231734189764021013730789297609972461305502256958456003510450540708809132061637139315616093764730967886228257926273100314449191096570327748963013317460520258425018322762744320888577328297630882125144373281887668909832172936728480503644151480661412425186012634877701549264497779126249610528095445269859265849380962181090550221997763306408391806005256465960385308317178829555594202065927929168343495883426024591032629027312930333443170868006578557406289018584713389075737938389034334801159569310407378041530184504143450881770020040803611026456206544845368718118294414283314247433608852474485124526112947580028594806917167438610589182249640163870656893374171684703688702855335392363752089477475510096022779296523350453432724648684967766125566591316009569255259725174627858402612940127610479788780895448529965546704720220254650871077741474555201172235697627884089838310343138732262586459588445693721252396518862041706435305516136365572716295014062667856581065821766957941839589923277799031450350483947440348781636800789415015988950382577231456293412113520448513984702780488993310237496380752025722878043867760607714379139512481564651300047960052143756216103902242571264829802261881053381122316601326517115633736996331123567261679021779918052458325237314074694909981663439887819666633897669515824819752368223198859013680643323541244944107677806480986382240617982849021207374513870475532296640871701098438539065920122157287299877572304622027050920858658057747238029409454623724999835658643151026060303409981177680931867116178372389537438094516380150295527132567367364320306034781041430843920278894120755833123569508340129680464059727430473069363549845580501656679405876554785693179714360356149288867747911792467358877128671033805197334071964997095427549376234554384270124662931930865310469240489837959730227658320225661923314633421541367548929893333081536760406653927769551510049959313791411874227308508064259484016415282985474388854350435079647741663747830779400175899523803764150484766069218182735064963730642264291034906641916816236655197964821448406030481526106742623029329347192989579960938554560253151573859250642866984154959347830275172723557112479665186701744704839596401374305233484340258832977200925400932331364754056990799655028540586290214272831475702975578464496286673289942566321367540948129872680279191109709318550773791795240875734048822480733106948287216798234557374926534280509983968924670012484244326447160405796000900040358332168259966260330438300110490496387223902587693736788145976516306300617423181937680898619541294715987646420248692179566329157039878435766819069297284008566355513835214541707056717542940980660066673872216039954620180118967050513126355492309779133907772567939055596884485562665650101367107612635641227697289386266150570727906515209658351396627568858741600550984802937442811254089299804444116162132857936370947338952936789776899407344237449017710872116181496681808798919457001801542448472600074180194673769856441522810765735268899525900584001417631253183316803634935112452413937905717181673654220357337501747671886156610582972286837692495630921862477999779774234683998963552679669426904011608276481665084816256956890032692216066000545228052011072081900099731407129012845639225204788327401956064566221293113864309422166464903140079249067383060217650196069994395080431272699084037271210889324546302453595529320245314317942812821187720245167772013274515384700545783431991628350581674124439818125342881478808046848823368624358549397172533092632551220011158621092033992444936580889052360657252447492915635170170105635281939894550966940265849941026409552350990011199638374782407238875636137757269946089337411698277620291494389061167065160746183287740254102969119156000213645940211623948712383552499377414007914731265445759946011698862714421880203225955144747288712834942321682669675799823711281243176279314884234280929376081282780044228570212221239593839605584641726959445540028076318857774436538802308218426948656153011816598811737997411868632192201039315544210423555400096654474593127720909225716831336571232034926378354175324983815682806442432992842559341149728883016391451026118353213858019179024834220946178672511216191174630743107306541162440217008077854397531766402504757296148420170559796075950207140528209844928462227539792109593827894494076913129369790304209214613117860067255652788599478669707529767913110322967556846101535187852206754794107958222195763005804063644128411467558833852538923544608076988777091831391337955370718503021527418593849378319657871033881151868551442842381155101069515330217472836050573133314027649738715133757113569392197809078101425105003695971753598429759141590791476085162495572869937460350937100122358149253084473859227668377164879817563495029648959443017610653821404461646348743673203018047145487436636123571386064449695231022402954549084013497337302935600104121267276361006436448177344366873162753311672000405619801790039507402941481167225044172195848223075850619216286911595870103720089465675712457546526646715144892278222267295074665929373556629008741178092879140219390988206659460296485357389336815132862812733425055746414885374169424909096809009984313145390999010903297660734378596136238057788364589103557472315867978929605408835390801056701527323871067356247910544835459469644714674420652496262785397330610770457477246189956885528521705211771332870128747419240931350343520369963687258392660767652733576774226927988728143052080480548490128931929184406777668821982717415975294513472332310099556307546137261671238393613422086758286654830743926375932555613616826745384526980195508501095894291421843117913702400604789353162922098946201054978458205158150071058208717915282141444057793016688725712641803390744577878196775581052608279530206790936913070438270930398876559642041317649135737070370139007870413475744437222251325019158867003680166663275822952950286592767543350842107254172806527101588761610049384672484766570171084224340236700132230817338256944933713594069268120692800865985798004084161265647689014509667332775267686408190278695714303611213453024349949775662940147419025284928289514655506550360126702687156627321931525815158006650992375289369081130887661623318891685528853535388186711840100227744696423944509853865272233710169083079115210610707218579929123465127928838891064024218835803045922454890863249858012303752924342443138064913497004227976519426608003653023099711578198280665609939245902480458330270021499708097771723626211230004036418963529931823632472972011235582183119940158900627777116381776555423344466382284144944034495498079699651076852678798813196875138055064619165256366300075655528359865478106803495105218809562964488231243414992238589215245750961250503401876797555759603517851976011985165192924825260313179195652436572459821674971701383497913159619094426209207164982083857088636255004625575922776313557360805967597935611441684421214903880662176225184312984940180446274928708586459295439801022842538847524937485931123195775825273492081017061163775041523016921281760999755161959629112430771078731056575282512236363773670067915943412191989149143567107899979130008342723198412734124770557353921917561324229713167964394018149470116027395938847397631091659999127919277151344864804678910197589895276492203439810242180559769506723302855288930247408150840381534910809290838182001688991266374095241683255281908909508071769933001685137291046321929861840055370006819874805172862618286743705057531332791458083936651541755647450018442705910875767120652469327312788435443333992015276772280706195812852207427498201255849738788929068188619042989710008420474242914065741771830363457431285464755486551273934039125782666560006392245642506853474019778786625127104546225497004026614879862820405598805149823429407258701121702427153789353692283981517461161456722420262097928101423541519584191736392253839654509681918051402451399357733062631207562837557141753176322327084492520070478433514976841220361971374013342651311094959587190410344455814510499382759566692673337804481845788669754954356602347726792076216186243347031488721222261081523246083817255081850847856217054552692083399675433094420245592611203766698142813831527819273121634740337041198881766001606166220161695043597265235813187177028360130474285927428723116553076497341829360389381643499919305603262057120212642005291786523157068807938693222442448954799977539436967542154388419582170631769815878759166851980742939403869461867007166677936628028741621273516057330580495075726476724629634734300998037212201158891589490284973227180538433350066330759708938492332487997420573686804527660085655220062079466450959038259427178072376225780746784819823558621882322961157261371140429313578976050428700954461520838892331211144914032728164411835964103166742654695859493502067122391195507735135584681574043078958182108404877121583504006358883056550946284988868018435592969193032766742542328649921536062094212038443328920197381018921156192140491305504291155121604555270270389552439303064878615736032112547511320226662927424059680162582461111826927437202723440090667785265917767390857138205361270880814122621740927012346265450816594917870618211223427533627749638353267256131350083971416625039303478886484146801634554576171200560377051639346590868903394573171315518627977129025837618044310804955170955513571257476930290519974421116519190600017879404493061305206555855637823804981513055570412124798325155731177691982914430100453071167088227660391042911643915774886383742953045573433752833948979421220086096253470557103405543154496998454594868632569704750369371828683065613390247237275434163665988962442616156801904078397894017885299977486170116272043528203815181120010083452926053339823852017193817463237053065817463962267799661366075641654948839912237190652896658827263206484656333661097284613352221709388685304022370878097421631998970690667468898349259047977869783572452312434509850847786006620990886653937514463234415607380043952281860049076270563698491352453507279938871341097506699463660189810994023373570621132511586696762153020726503200150169173594671289442433386753832741219468398342477623604058459790949170793499180154603130361766265133150665078471820348300394955653087966129000866040332075390742941639870909526882418585041186584109631264182914019923752428409560179883747125616482044097158674123910025098126942332935983503324907241277732504176571557131364727103363325080324372337292055960813102507726209256843762530631621681561055833105081366704550879855883544780842550642748737042676761919649189345778202118684443067414098608109969485618081425225878261482235077624398337045639907931224171046705267919373779362728446162923328744642008714588459746229177192850198378599710547800209220651928132818779937375305580470583165236298133644110564738329485274576363672503353905759016563302439239826994674676357311161042824251589338010501585801040027767104610047937241990261464854688110484320097935459762284016573979157738927612777304591659567102767761639647592522172425899334331140277000462446416281254640007449870330348752638026306862801096290289884557482784468150942485725547264558417515365390350244380681846023803291652230583484976130416687137072121048128551279066262943535451508114649068072277240040931583586579628925364873809043346240811196056313065023470601404901092909007873250177267564575001319110062809442307213639450061806001514968290797459224406749984692041968689944811352929891316113700968686210209246065382342302939432858117663850287309653469485562166971208982642255557066967334652967133385519704146014412543748381865558169576748249392075136220271206472945776029621771285198092517693243595678678450239671561656031402179490134038706345082618655695337155539774273618656172351628351958279993694037825643476998638903367991061531285842600276365974301638101820553063906743017886672434106913810994826440752966078410987705116131119002339237171402597418114940756624539442931308542330759408639785935153931998946781957586931304498420571207624129816197883621786146165922554549118166160271285178324080025146168505503838187004930858662811311333162965484259404854983934474593035748958852013159456716865886869675540752656049893653243007623279324684697051444858373868238489893382652745331576379392542229321472300421680063144060601093123849298872425238313355994992923713178604620777794162525069207672858808009116181494217764254928177549046190303334645349356332739742474267119039515465636341814388138727438559117552532957936222332461706065458288623727766417998994079424915009106024667341678308319208813557597391844700999139340072276167533452832234950415913649595433022985949830184603369198314288521838272742759811866830678667954391433821441019152934084305517778275823517735067724132240273398154322772605016524536718773392228254199693622683372111505550265357055378215303871462059183058692243142420460167814067764868508396242135539906179664857783357843937934059100312914309931762856937625612397028250781962413484012341697580079327987266118495724913478208096814390467007489857655190466484429551558396623222640507001210736172614817724415204606485972512838362380981961306500033438342035203495398674875908592059271957509364126578632442330237843671704814453738413387815843588715712870242377798087878106926696953246485659529884095123022208577929927441029081232673363987860737937728977939958655795920716490353800156657216909742771847951303874721802068273783245026856231068882630848637050562702521180621655995363073890867130812301173652204015541931765779483552112692939473778408783519077929787987073336833548484156775510313721567054947353382557660914564135617631390587311316613602810272022857807057176921025944555459427119350284311075824132444549133219657722399602270301101908966275989045755833401309211794124111309352759720085459535211310975623287538619870573757263125537309736109515368639541230050967032378528450226797680345818045296836016346964062893074177754744206140360768400710475431557019165291703850070163192948930713502467805000336203802680377790926721033414208663480101622214587255127559407803858980085527187270663832842430751146872765436101982816191892454199729706702699008286765853508305984469752685713863291290055346534379736259329188658770647860028567475953696369376784028247110424452947551639601234732838438363280283759361906943008467903994358562379041276883480257205496780466542685694191083792351584045217740866918523415729607745324841877607705869359874155294381139890440626554493528396921508616715909196260183614205079872132537225786921087312385201489689442514571890958525445332228813227836011327591022476431101736763437875667484706925326665735483312791876545741180044715379944031950828984719742576072455455730318009195546889902137696343466803693068913615480438510443602596442540051590869746958604391846193272294088054648187377119119725552087957215687109053861984518516803877763421683415842484087219575639138002477107423191384969505636754795571911121404960174417351040640687166590916317859396419613452982774622034991922410958150799309333332553226279399262193990679212369681765862627589286230745768800631482196713089076850489526586016024705922117503110677075887748900007355219976349590423514227723126779226421184554273207356923200937660908649843573325914741294262698392907524467687420836978281909149587997815763128571244355164993670767832261405771651630384126418757403195994890088675603039236739496631195134940858217423467695024322599765995430572699785857825688662739802016416223158713002549344609969198477733103091344270327074505562873913543487925948593207362320510926579154507854061582122848543800172804701035960663474106051237508365485403371080255520699890392711318688438910445764509082810983149804395988765977055391119720573005292352641262716519933461706111224113669263038562585080751526769737228034108384785197879315363217092635414475744547978895521478899275928854415722101924737423076767136046849298327911127788785325912978878380058498529913543642327991555517460148869141383622791182366200767217452866883323115087162186386076805048983898760397066865086067283821561105492422715810755772005005660531051116234775413500346656500450689488407929469606613206418990469534439611357100184231993987683248833510220241911034411899434165701771526439612933758723473256032295145576654291241612120669932739401915814150558380676666900333839436210817921757628316065766294112402961391291240025366097815919594483460451397493333423029400963752350928125341252161778928971828844815408692782700929698255967380548886680766427589836496799759014951613722122474042691938347819693050855979065654524426180781397007009750351242331514928348195167529765476759958312407023447583352697062668823354281229251994155481965584948131038312027008664009935113989552668297139077535498450292318135701459676487322736857313868062673296629210978646454844279526387316512269901724931889094880979110619919116425442326050879585365383085523105629444810811456148597207177879380960221596806555342124505591139736330533202286726576001722125950570753958509525511415691676440968988926829430524859563466011178854070109906168816664013562297639818595710802587430819455138169096598093244212267237937952005256276110006074899644130275877574061347093933556623340016314142740573419209354452361695447075477578025821494575951919785648081327645765913680917703823013054949907378659591865106416920992012598350224724486024572084461348461574761979614983800202563557122497678436741660901987088882727877273525818141614008043881520035083705546411038694923754297210731134768615060090736529258948666420883407755382442925183907738524577749719449185489994561968491833224893715547363097841956264902656260318642729090091865300053823141477691099548401420987706276048896511495594658068860098922587710069864771372366918228295419918767408265238210973141470034948542849319004758871627013642558667116448929325511641637874794854242725676201163466679722280203556318696134451506277334594036386219269892883752347992950969540405999595640200280052646865308774062992759946030812805815557434255211891053988595404699900204580452037839039417630307545970473783143541486892330201034122728139602772815139222095841009294933752903476893394242497922459363991802370704399954286994323741124263532429166357533465765100569028269912112766479489823667462549999227556747591728779316313540967642659501364870903933097898785697241064537686085335859116985041068586422078552390947632600437783816177675883666045082223289584055195370837066634852875694733023879988024062319106635708415874149129145371054510888203283336038438320073607785087758256540238180050935843035556699256757957056405945111670287416215626814047725595118723008273830364818579623959165468688260721907838405598269244042422912383376331722771298887457016066034072056085539452295220504029951266570864664165053557564371181522687450887771354491211096483468565000397874552473103212769640357021201144238913736830511526894609568069762348738621453715342871932819036886206033626250044017911180639381595798905458528489607242907821560157130885776572784489102909407315965578256098492032954344707683606756068147721104514239424220349377011968128591847982540430524512314094467605849247169027006009745823017586663240709966521112289999493586044917115038828297147014484403449096720540867103995422631464313777741367813621647076439847248067326922841788839477805494392556749037907165728274892678884793265514147738292043695784793417161036399206296845372459396928261563580375992390608872403066328396047798069544478677788403553824563502488482427864020185030260842457913859192184032567484699924724983321169379470102355476011850918688905414278897304463821742852506148738005021203490049195663112123573530422284404619117483367101101171696947429669392476759416926951653102005675957355493455861302858308548515205729959508251335904565597887024306349822312296382895888181356690389531167584514749162159968438050290352201445475492493545619600193859941596764971826548753612618645632048364873619531513385171443110826890411675883667193064167730558564111247624832714147094967664978370870400509217667886645647266450669436398987082123997943705088868579636260369828726503787560174624578178273190586398050073402961580174326914480064370482008006170659346691367093280324881232431476558084026412877118274284073765699989408913253577136577054519220496249007573031694546604138379723046068281035577815296407891436196153479945154271005157561360941122870537294109161856326529364467910965265940094559554418638489083044400798786390605848483892256087213909968018838397508452114670775597850074116750707106249814328577637269808476880548741483780507213641856213730810687421953368219562181783499506013487929659552172604129008224327271470332577240415323719956968059399107590442816789632777815617101223956805474881838483667336421483690307492789511825900721890969674389572870558366220500382290736164306633364525799812891524331432973881264980962248600421744252879725086641790116087606372687350777614442003016352244928788797692368995589282532191679606172621303857218015812902282265933739809191325994833694691856446374743111989745638898341552838747797696347758398824697291479650722099536281349666924050473881577811140277877204362903112707199568037152696165422064750652570408313065555540360180152914369486655495435425650484030962359449296707997802162197386494731480230789015701604446519399999078528989924802983086080181046170993711485550548153045378136304618874567454127369529476455247847888941174329199313172341814422806018010854499876806414347710657473244769640845024651297835542395747538574366418255662798466906645303562515438414453154688318075704988695025675319039130918080881396469135262807950341920744492240290339927484817785919431019807423789178113646758633842492647126859479244543131965363157095415925725607765951205350341567658307568134545058544480120330253369137001902988449851090287627472930933606960454902902325884353882125395966996126964537122590392105629838148884576898224796006249430339284036643173734751779800254218142326196294000255919357578491909301067941865388903026438886272510798995576639713909087352157136315005425729083002256534770812105719851623933741977735985470632873247024016330786307006549263967959751385275887824638287186333423017756278763170544343788676824038509632870964442004621719429045730064433914308263559678952323798160788402835272284202237769479551794876897425224895520058306773557649883525938630770466350473188440404448431208332239801633058532987611860273439875724884038562643362660397916192973535595139996597834162482269640140628172506666177654745831528385225799427596259912199613057215091019833482372039208006494685269066477569009914869731332620618440854875349143683496785647143338356139145980700302822977342472424166584330716666928322606876393037342651991342488573709669800057364020061158975126644951852097342360378310230123449391887371480674442881155313720392325282518777351963349271263645810504995726129863021528176592888017891562757970662120387695352377876824971108180636919723714448416245080250615988347670207725467455276733891769096606481616851836339837921141118487200680554733324747725368995230567205480462169944677585996441988454043699261623123712711187073157556321362762422729464496765713205876546658516227090400094714231754500800696402647067482537577807982780589478120490799278486353003010994253531035664930773602859748814883044517440954813527988082257515718490148509525270379369674834322227258038543062144645308836257136051848146450733250488163065943955920929662712233089980322275183962459734447240821891692767641529588615253153167733168338549031699283847254977449889254606738105757774230952653974947626740985699186117394476548144250532814517247095520432550585113546002218612253845317932313592228488340426556811825326996352076919564195905329751716100576936209725101313458607069996524576889874401973818357810718263822994934185354863127014703779654459226549120765640978469195281000404397320199262576436907816263262066937236682705734241011251634237203478567574223413959914813655792768579725392061606814850736005862938744183342190447589229130322926593500673920163558553365606385179738775427489529277599016679603491915771703783895416566776074829168127757427361854030056021819834651294130695007386276106438435747697136027350857399959464106113806202609797062920933860440858878834196558894309282564957572075192634038130667210054430092602997389186523539379716390307239606768580640579056686390763723476303640144778647553679854030289224634020309608899691849337637530018568634368382050116913553241137288911509334741026290675341664036203724435925998525683162347495257301729937069278674042782163800304276599070008905301972259100819127743267595487056048446462514466599987488745195599680489880284678338466753676768873566635514408982386903551743595114476620718238440801635962348394065262576741011015295004460796829072032544728221493381965859389305091897733416999510218709478438558465164636001998418019861826115937306362818946818064238708185294743279690819176899955961812553371353152030829256683592954479799896670152302727110409294625467073890147850614162184379137207098174418943063725967783986220638868380639465504650023311839536544065024293421615124213156505002585100514957372979157661074920846314926023147829338362808810552953486860919442979285006472310039367072495005204144972041193193182203193958636933833455376776242710006450581358340550760760171731705026107711035548888785239375210618786031126734528850513808322909639977635664746116961979681010082927916716429305262537305830344710050309694419258198412489682469124788702109758914101028945796462369036467258077230553090161040282283067597861538848380038656975215494534971668906232562499397135499943844182423914524583045913283839609798983235951480897410194300703489783184619524251155105017221844210212253081109745158278232455892822151670287276253381809968748219309415731669459882638136262496753435627163836370253571701340649991965454332984099161044401978320989587227634567409484866406999449531255114416453792223662402078655335545701885757735702194922838963193348368682910002855273390069168597659602410989383405453069940483439503014656256363101415348368115160557762662328513453628691404014271606008228946628533124240419701389791090049120525420134084784840816586376674205760793761453978298575062686303345040619159871739976264623664929724604359543274316631262422614476555618284662817576155863387890233227455716055356322672622628529934269408999082125350763845510908057524250140008631591983047353096394110581464837358340977573352691179439303888182536651839482513669440827229946422410935239279493174715598753570528968494584768018430550571975149430976534582557284854692823562170092601724682090321177864614843627560041920072447339087291527441828817122153734581862869515596784083497693891175705530929098356252755061632886116968413473890692851941959350055382338031110352593005603390355328723706965815297582663090388517768443188623865436694348222348818190716997344914805442820782456687316576225433711792164290464584769317648984109851414245287590287900165024427234522848981281299617532402665180627126747127572219069235423032300096248098686515515376054860009248773538048479033617017697380847704906443390388082076170292526174804287299376077490643719063192687616555880912906105412280702031256627800691131118169594368904047635734436979529263806434228837979798181026010217062166184049912081612464415145624360302901582675276645882099819448586788082287990276107176073036383505573775841764519774550535952195451228189001216505716478493473758167877593305109247286894348289011706507253864206718971054062043866171696972016439913574074376136020917199775666297947820690249690828175403966258996736053082036212193228684316643401166737824500676173466183394182430448005967661696867622273456542359993165202383744308302206551667712804626553781248919590628964132880301326465815187692605586469308035003749760831101594474794843150859851811945349775817140941035358576922357073263615480988481688051009884130549399635475512581589075964238727287273950463724405626156518719197054180902900164235347409566143849613562870643382171027043967876729412284642753681770634839186478751552442072716331812142760816911163565580430159197778185926939096876945825628739400846128358125403737376404849982926927325524709946920031822883519716850865948777430221077815813104267797200749929346673935735686681131895051741314340229715245301795512879100329291793606182769319415533480972385137461968055440424666045163319203126910762008790243475144430403595310767627928897689407292969408480012181083811247904308668752747056203043726866401445827988264667214992911468651228266142007892039402965007614221266296149984725782445580746249133674761151018587580834705006401921586344842254975864067373028318422898096679784174143389013921352715648931570076187173825565043470496786751851354967382593326353507135128051484948138599258019564612517708842318520650908752238061427366957068555423292827503892910811949621075990785276745109643391524174048042373203659706145479224918210410099503831753121435581759685771306852299553437523153424734990728719650607191985825246453051358857416755919743329060585184713296382923404450792517851728158682750131477054323391439834526493057219854322781648087560154186312205433462540803543585950791429958263557770743127455498833915980072607651757619786382560651519212618228344250233165462713569920486042551700934324734507304542177115123488795448899191336218656838097049674713254234998935801854138998968278438510832038497054333611724572927587107956374124123458366148433613304623094372520633917499409193594222151005134534100172239427116856430217699776799484036322713078343575769252106621935544495802829351491560192193347876951152157184708764369435809242430392903596905773107361635495746192377871959534215681420286363549577730196960501370141260099705086284850198869931417023459442196220445278952536456643725705072163124083485512446570157021645549887211731828031305459636546697645513788565747800863251732683701043477822475283317435198107570811684971619822591067362926046820678225692946844131372305716551207783169673288653235648605666507061965432849498269952511766407804674163943781595010075473119512970601169787984925868106159435534466103738733614281803436287627375356644393945314325232290617098503176052007226718655686080888165978486823279438414806215492587806782573968488923570296087428049525222163909799458160308396781499483178612163007585729238994716144041680255269492529175315545527343531575472903437031469771480384060672057770529102344237766971421463810953377929727089268657745032832822485188071907474708218676395308029328807957558965476295215273430034994605426194085711891260112034322945743771160893182664504699197231865165829005323040614819213361302656659762795895848306453769595758854702234844696831941755310677817627221982217900818236719582614863703676274030807023093702590769892778111919436195241696266803396347184738838709484200707729581772026495523565858596797581257913243793230496807983537010964932529694083237601417113907003244324160652994834472350161717399068731852057745903402429251589272657861476588495848766363921869793588223349706324835841479243671254668349728673836398634235404622941290309725990773855899961037083614383522731812790638181449405711845685112154653217583234335484781095284822934788645799047453624372727066218094818349189982021503908780028081527014307610117639827849286258762786354378561881769413066607519993586360047198517481270678179778919636894290828630248315887570848755430692392899692911361880326191755762415010729266869886829307147725449330998089126152354201770467653222065807024371495108443351717292576998992624408082881819049133595864932833286230105671947863681097217685865605198204855505961649371275198980486200658466458451899124723406974801855036780295632060129223446528146389112748158319486783038468663979629123610133483357766256149964016038953150224107466555896829845557791404530561473709959318240212118642026933508633951579203545440466121148399129252656566816789098341346513428708586969633773186453016788150601366197317274573875406980189502081101471449025041435354189476456961437108599512065461827412474544453785674816812401637819818402543847112167101579391094798135951730139533274349568682713045878418274238146455481555468270800332380833453867216524263705283970153454381532912360860722964353756062876708137557698207673410394883303962302782607625993940271343713069692552917065940679674962932595261560385744258318192557047873961040545367397182604274086452491514709159553634095184644705359591052341323590018304765701754534196277754618053303738691297843884742758626425329655915823814449478926296140352450236002978989570885162081041408348499936339751791621674060636187858765440164034556173942514286644315968128986807707039678994277118983838193928661996281246106733181558751418898109692410371579094404093731011321211041038696190241932064269881183626795474965070068052528263156315002072013257693205116019761033002466007275646589514835983121410886515667573765243999501055975475469249892629185212182021456156024830183434542905671951313918611398540528270588729517706462736979847323489055296047722693083768180658770512319188571741952986451704374882121922506667442749528232792939452747086480038121374508358882233378558118634853544038752342034794453464531770874986092261176641358636382860127400600948878449477679733253536871077255597541685556943229218352767235775511801243984081891226369357411137087545607653087266466064068381851872359227117954723923498519094949438810724709138990327233959426752322591592908530614008949322504137076301799726520149817614672227385397417878462031433541200395275555827375261820330710764614796852876105255342335087755252875110656896146171763232022163391164082324416866556149598379585464451525720497465101153602319595009541424176181260342228935645727732685303123817779296896472083259757868879464018041552157073301335910765856617694378508527582850661616533270057728588884926453158756081907001915572647373554484394631268320508410712063581329621290478658154073657177283716061106664187390638805810424770675718162284517874523804928523860790454590926771207659815359736083202510041202807763450498448073974919048198069921039504558376439620373463309061389149263597648089360596885531204824577229836815668498112343263431439988935465198325524553591846916634612223219445371530056049350711149977538872220606445687120075451263906467998886691129509441543010124496967230041742325875298459787329509296038802582633505755653141751197433739603126584164527960310021223363805356261281459130930652460042027866172004935128744232490466240992572847486909158518802573948301655710960424184080739959614071900465220528343550674567512431683704707640196689384269783480307669697445096348730728544101245396629056358313141429971226725462148315301164707196390434210682067650473593070300568898974977091374937189710920560681362847890341946754005785761512495424637455047111905146294549398781758904088774820707017564900523765659227642940369668357339261419984137467254736234720555326382301915547429007704907237593130872169157662374464938008722356855629556940354870201324801645562851518347142832397461252124995185323759781189272284316035807884718270923879085851288139216551265769667934387302800795082092745420231154104149446162456211491442036021409312710064572665131103144783206375389487296196040898886357616156410648496719717659466933702244362545161927288418442647578531687575208354922309844318687001638543803669274362481017160148087553685390019850648800656175222391034888269938164614566651535990073983628373764960648095086092535081678875653143943803897478717635329379151814795160827438694822061141114400001585549390654945900028005443811437627584564864509816496533109613435618644976754778720748589358712669657278908194492388911132750720181131187723770119199150833887934678549448051069285188369910463144358582049488252495335836950316808058047104397100438212501364415400605520176056750987212408894815038757442125728029590375958220225221976999544954932846352819154278896824935997547516080912978581220483981893442637790041544271994886218278618613582702090164418101962022056363705484324492479586477822551481691115201227198718554271731614965401014878173031269063085869697851315196354000043358078683733216057622870601692951744463808125874653066762496988681259409724794181281090864614686916378988898449046087720916287383969029342639226102647408964777629886116221181826131442136395871007851001724265209165179482598521473623560304697117246752493870692049764360063501910965923348274242948652129021234286058207155229748032790389247221667065857333659153059175032087741820618018953648902048859726826251826550796993407964581796658025579624358690824496694495301165466175209565226071150696313833897938523499971810080277283084221001481756353540770790825954101741255613234283056614740802339052661303027484832117654864983743760529687587112679639833862136998703321027951028819356294959254981479283355783670121242913081118570589888862702221523978146737032244318570013948820242029528911068638868350057128184925782433091505543853461226980297546732322617478437670675526592229695675605892016458231749452843468954932433828546487932406978068372170526563562938667315930188883244481729170741027081605799891187169419164323245548129624816902050789331633140098760214101597324850369385706254660757399451593392101744162160790493067563894154982056353087941447290162543312981175270443253971545324309798294741811538986573299770013275622550634199289493783135398607099553332243994087650466672194900444198642314713812487395873457507275711402056429420310270244884069044287017471509606824169194374562165110479070128749151356852774884616567492534592578976037169783080072215368318690118061822436189420840330913816716197541251071298335641557395387358081004018480519595301527474519881912316179266745255155749807925751373717568622740804399602634977125773610225317676461709541272108335936576950499389973175966110724522139318021027088755151606437398352582853929533606692610996083950943099622599008668951688458699913339487705692517807281573608334106344068957759195714218488713406721517520712999958409317146771803245889006201806977479561206712698298309986478662531446980040001074211335886273445162076644174336185390177267224752206275541863945975588009220623565963562019401831594235625057855810512533527807405266297638047495160322762617786602188280270779430628995905079139090348701074227581195072573929262336249492661483279827855102881682744254157127239047999875692986712729281590106885537210753471901347957896523967298081791603139470205008581897746717673937721207047648433711628248123471401424170099332492670609062351719576910245519173834746423304487424848767326260866499904322790911910150792248422035379002255570766087788871834829690397942169364812964760330945087115610342250668832799548818586542024534720184842040386357911213414299391205653249637283700637950627929651611972813858233101106237447169903226233708598553090264272665053478237771088653969132422779329317742732331418149792323458257641633801846526230705718206493150456961232100530112782300414841397549749823397682242403378918487524218778607600753887903430481714367886916386896787912019067570671852297547795691532813661738745351798417194711651642250848328257288200977908773948967858641080947127658712540263577170643051907983856889726294072490626040588403116729847411997954951701268293418936721871039115025396227754626617493300804001811425710642332262053340514356527087050945055835104928327502290634520657858133743240894339809952778879103104082372339405742050896017880752029367949821877443346487441415862538913958051596160203262738131634827068381356173593441715359053534764574978660834732589672092063183315700364704783312839362351144288325961430864611893179011145526233201027941433616996273127810761504476667444919997612855217516462760377995901739277317532807345139104576566609906494039810582478260639348255213654055200281994355109296926751888377316782497131045914627006505251838227017602975146413086940568817976501133623136969651880026069742067172710030933668502238409257652435744538309298901902995916419618538097449409888083927398998993567977877889018443242175943313668431205829413366227800010601382666643638518298553249115084815270512991543943220473593411325313032360412865646693648114976230157838367556771491330086436079942692405675309174969059801460731199137225582312091164681767174855963053773048251429586535549182463316250457756835543716711466422283931224449103321291883325511789243736414639317222503638463519107301819566934738662693650760775309110213476632325189430265123113085079590430616846446260844848557812468882920767827049830403470406415222507592273827454571925518713928724567968279287368939131869239376755650444448147213752488997131417218306369031459651723965723644924605717271493667031722513004595385428333421527235849351919515399509692013022004090412770083854407290198296719804889959073039920004530588097992211321262309705487704212178244947479004967204160690017468640158121632181282108977795646615563821036254107689859121095746596993928016962298832357892124592236366834569693269705934209305636061624515904109947917201329479558476071278236671665222295506461717778474191389805338424535396060293965773108129689417856195013200895837781385733918403260811363620341085508058666418034798747823913570692186372761897334517153674477285001183105809003175765491469508860785429305514360458878908957542071521047010539249591484579473249690429415208874028083152092009017848694373574722148496173200388912693117562874118322821071970544395500878568502945166736639242289894815713530688066216222606403015610944212624056833598335644048930176760109117616466274369291369664764100847077253833867946818979903056858114285069991158992146705564196998287600925751366258939170783468790240341570299809337071470684450120899745937887224632154309242764966689983973251757892407665571205205212741558532728626039124491229037232340822319916997506903165598620948717355780280712139154376899745845038923212550826670277537747498938231266868881352278005099024691128495933051649773963525345864687263598724426772828721103975636350954466652405000411864881644239762568928372119213522524421778881368608392881416648149637743738586068171115546880785023561098896753460699254935194452950419455891512745162961959103596598727139878572783978230270536293061072450782723279684455288853614553853486673609184273003962261533847345694983376089829280967816519485922660196033853064328805310289668524722733431718661718921889140737565275981704809738347920158565239896089691788604258100654946136112705178456664285558146811708780992931821825054368621500731698123135410858227410144410989341276282728349387608780418367631049849353792890807163093628148876383625125789149786712473244126287849771721815348262061827878076426057437991715421357370657776600891466680546705756438365233971812817722221424859376783523892437992887069258261182187661705646939264097756384888278240424341368250438558415963462143974002981254125760631147991426835760349565019306838670332713610412086227374189916466462822856083972353258698081401332109848681664199755376178361549218685392290547881065638762188341417712304850167193317614138084427291132753937937711479584749114810997827457021696383934669104234546163829411861486766167914656415810113008393930850409400702705336240551732100380502367462876683757070672652128957345298094992201627238415052079145798928927234467191121224011374688439236449189120976871553247157415606762357328216465724529100942240487127353959225855268902627332945450637582680191043527917137688495438104101782327782835105910437003045071885835292556257101226601476930751302889258888882344466573298248503767760297398156677162296045566981064463314728480175103187356439120428871088308149180561369452074054180207592065936126443761805042241535008189307971572546973081417030261097079337226562312453173131080161962588489344478070020263014213322521914637676422569195103518033465583754990692888329791385012239799470646832219824135031413947956805255389706080069457181251153705638858760355882898967160382919283700070914101507518148375348020681933518639840822801310657139573435131541111903692223437421655612222032091914463035088552780857224634354996604357109722502955698379654615166694545064355330475192111156365927526157927637358519644587034698061673405506744841864087851182759776478755636588256055081991690330393715716295660492857567120288040591449081787813745273372733681157644144528658717090272705911054226128543216571178057238968676463133909958524460693718174882299423592334115922048610927560539521109542486309662033723675778749762218382659781488274666270218206812860171472611511294996523488479451052483548336555135247711070530590935991264115664315419040047497142744045665522414073565017527836764297546569541309010042225159022691019296452009956568587589881781244817587385648844498890104309066094428670042139014869150064871081277123704886708905336764459360822925834117658121072971236442201162878220212603733024549651550463812488474666713271584722515789982015181507169300004500391005437890626756350806482504799099806624795758384901760640423355554862759187923366030738766401097908802425519331682247067972344704683009705278589674999610871761659100644513482061336078592182300679633201107325923781801672319089936025880340696786865108979237654855721529046191688904178732572716273336141117509936771464072942061225942883995363497347980716644457214875726460733670106836493674712960656510933221605769985852317451928478178100979529203120410536980084500304878920638451997957130352767630794652620577004069134942887764077691151504236941733094140967600269004058500927423935951219497167931199026176857023841701352049252714361458211967040903821268276368892750182129506511113283049233005427784103730912018591763500402531649828994330337905419045534707574175756023240534308927034521197369067855084731266585549085299382311605363084137685679770461771947391833946399377843027226839432364734960195304652612316090401854614172621216875199317560654112361824015781661994522611416905671544771709428453665760488342807437082217164659868788879882836813063534058806794890174155574701345285517288619751910159523524273578641917657671308602051876800419993919168795102716271957915139815416983165815252297679786974824582538412339925513782083315174691093217917152593664544768887561530567864652901916667444165880059556736118278024018583043247764278387418628453749572879013903726626147969186844106234979184901241444347984279005292478091321632426517533836056550161369896568177940638769055307033184699397639853787234738489373553256337552424181686806211004949109239032102372017432215468868850004301212933623455767397233043913310819061855763869559153106303268082977850362481407060005484559949597479228457127908737627736794454541578316882784242980935354104283010380945307754717704729579728821168044007086932882837162544414446422670787416231984805991561936122725795275865860446318248732660803191215447349587388105257934429817706127848147443661530088491689222582121625143230006767884622443071165584112165600334404775054683736275202599463152308893050059692261047789375793506657484044973798796287611892072886741134481658622293735736779229968031630143223835138962540480963174869003456726371724443790250197758719446081542409978270903397965538316937716945361253695602937543611421454646677928182456766030862629266985733404545756740281393595697298145312181437234079272672688949027660439737323280546326275914741713902479007144223371022985529612882885542391142698572696571710378631606039020380870701299282780248807019495046598327271196529634249230450747694637324528023264570838551755075683369686310536660635275061920814799337205642313502060969742093906052857812783003562485292862498837471220347386904219537199669426499504548044730203883980833885231266226627176354549088018114350623900562027495906971906018841248839983648712810108926261519469830260033727636960703678812094367114508690197243779916530387127612810815926240849610501931305597598102327560592718420478507479182772119612648626888692789075838498592740260763670276968003026955608176434907721701177808974438257700738111863421379664567208212148891014380754116569373931272756041971376943522578381950595287582422105066994061191741372571049648002672041040462199809242311811406429844991633868268138925924621483074915493570052723632759308008651306125005598627908488726800379728412523223654500537329806538902909864394144654012222984582362780340665776561897809674979399707371002388174009427494639681741331321362913088878169036298091725847985448291758394132433288062868338903260378865001119172001339243140679250326002817901561939924578626868015669096601054096603542602686284738310417026288576611738366242664258516914310784261968863928572661068986931880960435697330702183778272585944225782871186705373932350651940596513265150145840558724281646408173838439944160411250374253167181256691589607425875339210924253331956141487887583828325093603676228462438948734836720291989286131434407835966310469721544069194870734050798547009445402523896019532501890656028886496449135425368741186715174468736981396553474712691779985312339542693551458876617112800758936212227489733610048423253679540080645620390379136794510731736787314230569441188762585706687742724378671271227674514829575131602919774895105758191649991217782509739836581257400050351109483947687160994804627366639561684428858792592950010348757571384067916940237409050545547127968095500014614686059411968744681704925596457867324787908843388478406081537320921880983196951657852155092359494921916030848779805104799699944946687079899118267314532470075885820295889621955859055242522051156293990935973525070457796241936300589791402504431469824744855703031688068929399626189761312478620526652380101723803625098311343097097193392859921967964503081685163712492798981895784257989668291725288757643911567438077675792412725085886711984068709142157467481676585511181902499903621501073713397546484863210621815508528069560463138733147507208861375868366935123673885887342600985686135932764669106599737207097927301454547616383170372248681865664431510721656695313014421577875974813431611763799486861929875521574899129921763999468551387519834083691363782015895045164648107001149366136504641164667138187662335214822689999546464651403214285344196337518087252422874138665738025820227675238520857936601260309992456886742049196110869877295736214003488372398243817459695889435405429777491730799544942721013589183399571964528923449392933688703472317346515868637518763870555822670241189565621635337429509602178112621993835176352751492922995958960207738927125324690760074915018710531948375215771707425122024019732121736423465201818260809605172747916915855265813229966649906632990647300295289420430612980882040598741626183966049238654607517926978200188822992109686027725048242582524514247903073772446515205267888692190693726487621842585942350841160020530169795416161946877015519581175856532854399671375287622441221298468812419991542359038538110655902348969433301833312477512700417037457181216529568734983118711260948608368994726137296086253534851061377003796540035877270973525012417598527664950018469837536106965392233649429562249834003829092976111998383425499994155760948987556311081888556942459282976098153316558396969792350502759195720630108120135455991134285008823870926509886633230080779153394466334946052341691855200261410822536571975826360850295455333336200065916973122048822901722476962068852053088701541484453648303057205639998226751144190763575629594902764772157323905975086278893688197275685576971421212583673563195690035607870322133981759651763166132738517633291267260053210316860618787703712222287408901858094699780692949382514573198764552945313120142605665293626307111804372344057608048503356142249980851880882622011219819392703809214179714855286198087117806003894586691275084985169714280692643965430556258886095306184379114463290168081543062441249568244048836521560183153157166341760814422199512778933590972704094000768023416909319055993073052946869531539768804712016794551765933178914371391416778320974055918073180874192634793634004713072150381634687313812137487877723294317362882434291429317262605011184395313303137773849150696654820685759852153433108439773285915582737219371290905856432375058059244733286523108191205196218251412700210899760251336555162366730395790883455756718810015653785788029814917772337672081033691220627516323049320859329070031847453954952556389047288394971552958174280759181376899307182898546401932023625745240584744288323929636293658167514213294640457746264564762788479984795896429514237594539923224650286761978984394468614327949409751620520767582206709017002645945412008614981945504806695322154899218354699827812539516312129920072679799220066328438845242957346682436138784013433704544575460658632093932277057314027392302437007736323726706914499986634559803563861649984268687737259712634032462383839321666349391083890572317273813122638716908841574165842621004150154348540785217563221382357872231428306643968753900350028376987587006464683579685115339811742552253648925546052497392420106520333764039366184813865034891483845724846039770210472252775945549064225819443231797677282595606428967228503328116108655157284432314579491512124553251368580715783272952245065324099718364902463872167555936946285932256054881051259063681490485857149126511853889108527816046831052881633422997367259307159461943667791440049776812813410381709850511079411168700670420931114102720100667710183580846044319783732196495762093507404925925908649491966524058871735220294817531137581745419885632724819826934854721631705329519133097344964023372720714816882857868626051139999480064557535070922344718108168861043138760228838916704055381333468995728269478542386354095465724876078069734920917912204009099983810345879806937743248645456045845923734095932852435124763692848943896323215480891118703467585235279205431116189926617783445156348420895526026778514569953384774860087741770078253192188191530937399557409986716060616123979904154088007833894761804483341567374901971590567200370571878545886169900938107706996479906741395269776691735483446735934523992421793485758312536475168221921514872022624364952931974868752819848968538968468927737699470029809408708018598644252429252784591724842707820527463270726417466212344896479073530443708009750720873803252337725673424051355305162864198604574547136146056477202379862751755928047818798073161089170806022422741715062405840847475097452611440387469012381123414244970927611653272666502765710962645272866460846253439889152004143328920014595140870861085619723152038636332495706625422378318810294923057888541784887835931068986309820718520789084197840773745235678669062365433364783395947610790190944584364465049240109724412788281990726632775444232898393436949037589989292304188145552595068783895925330123683687157033107726606912659207306191542922402994989555295689898826228092438185609823774009622063901613981530630474113717688942746722883714910801857821354368497133417870095662357830811910131022120425867504487739829113562393986415319462382561151916980561060324270750207196772077006393800279375104459595178058176221406813023670998357731739173941764127816376473143313896284224487926093239397816999845009964555308843097085821475285370119197161168506446150255120349696345313498254606349539783769094952305712569136436905897032944205748405148884828666027932864278334318156831482364383787770233577817836107966287671473268457636932022618402899931801103449520702031938795752308039582905008636424763895084956299019039711841407731509001820055943111437571596757660062946413751445272897144536405059244470646140855095244991188731725439391133355894153373684911540366873121971587008707698796612119624682780316721148435498598300730476417502342020182380662056020183839693343574520406527789170805172054465201932441956191912487486155724542554753313384548149619882051958284469042853228668232687935734222635312529606123324701246741951263579725456949613981911120905395899981610373681528946769247375119824874665404177073560336851576916209736155657946923166898470068304902755044487942239330915204346230287014266317511174685250816056690269129853261059675829355519071016944704246039519364181887879913222488524386281329830593365939546804041151914828514778475360029620348882239454963647928164764283236114899711050481662381014709760812491064032403654726228485870751854803740761154698308033806593083622511072428903878475907615597785719080695236966411524388611440538563575895877438428059146040267302632949178419856734911616179422589799978775532246991156038417802691827520126514079549235544706739889032759411267686998395225113863356407760160019347699311138717126601794590988043898013768854892199171502683199087890686299263833545716084038232213783465335280869899821089981669507899221927315411742546294542426800451237201578486308359366681354272587097792101020031591075269062965639264893435531470127847966237886562439514323163235941033759377678568224738144195242659410037260758423753998021451169892052059316078373849083753970087471047534663524429824999914898456831015346006837599849025849498437165162435181398395989180269353083962642317262239874280404444361450664380991532804377913191854571754339755863532035394297672117941751965658526959518064449255320103392519158670025344277637961248655266255389537053740085234433374303092518270523669530430728939905855145843634640030930522986549500300987659593997027732431572990792843662778317951476869458674531783610143779515566702109966297120535771610779271539172444391777780344253618954026517775066937420674974496555355713568714921163336808291594100576491709723168802712717648917486056470824435138136092365401471775365817695990951801284086900875611021361286087609923119030387754769282792526519869163420823448552642078534024447371791305507965383998286683105708013711562586794723217892111237648227152468682122615998481445394471754118966108843804975667595352100390493860594633190601082550818916310526424463185430258851341890322258044444739021053202139823330972156515126208344236087606589467702701215205008319979214175342708950307062946632167276952520742756743254729709924391546597513756835959872509578234312223842664558418249921004572843142342757420176222577054690277807529426909531106636839514613691915264607292859509938752376681806495963793105499374548112769735597154683295145328504007031799417066584299746404790428961372563374098678762761600114201891354097367853874402711233720981280232662031253747598615141700225906594667000763930241004857665015297850230001703449074462365755137063317216212841623736718740378939222978862393369558535645265664218591919923554891039389396755632359294567886198653930515237132370821460112485641255719302544331328474864532792177462186521075037014482788892008799677341239644444759377613332451715154065117037364115169123819404647994391735016072528128396838175824786444629192559927457162354810363344747574129585913987140264206246525224276048502071963301806048724184152870584306263479065226864402495030873666191238101724533435589239476462148215854370665970442699072594019446898177712894839945490005905112715298185804287012985962496803771930386135093816663777068084729268514735879067454014594190503036036222943672580684119081099579932585691596436073620485639264883521234867024424641548963954397198008790775002854870063842621314500257415363071206271166204574256324272412312954219024847734452731708130294168757584677523701378005294072867641257984977234865224349989783935327784050731880633618747907448126477294708938530670711808976084836152677479818819445367784353992197932011666042554107282969015985296335740625983877722250726510089672610886110891989871588848324185292866915622645696843536578097395519073660546581565397251702229432140422281314027279976783240430778374730138000207063446266086460509482299638728943706306347908141359126270117658818604247749143843057796465961000659559348217374486699334211231676998169755232345924442222649783934507318087014845476743267265358715781041913166611562986324031956723168390668767136500235445766735380782473520862592831586371334531417840279091945774496506697296597528585982528016936656702237259679912208481586299949971823411804809631769989787080744522718387791361029074102970835646173109298965268946699184592603384896985211822836348485331584139114459655157666523489188460991954541537763226484312663608066738095806430808854110568601343361508980423891294246912115437683235996720866768453148109593449850921860575434177876708109183857122764161087008903053974800149578007502906063670954014410104463092835979069384307410725264004713666387873002409237749210816360266675777240025369595149667242644931724226469402109769947939071483632253113588972018298733690852499883042176313918365447592661960992917175408626803047880159535084113792082219269769225196916475436781393750175838184174372414102946923285254948798581428877831361272622008639059426112444568759195147797592638716405683614091278385173927564489509083409565206148277091555720370967493210799545658972926310899741528201677312502676137990586819596751466416481158267525373544202843027354128604041434721410734711485703210144729165864392897997600083214414592044229076994451935103418550935111705731887072671215859523522760744486345944092997759575209100981417598248980537313761815105950726946499276225308546901426595306767983692607351718069039813452356887093444338144485901607368878233453933528720509115131550370914858547742502052848751227668142142475155459197089823210663236306681008598848244913953997978568033078542162927732969276461691044893304583603356076522584093000212420397540703385962661547067863573522064483589889591849180403820442646512206380220211109025947407877099980049256611958280506901078254820760827255681885909611350332091285784139650628580789496854491021050987824090599176330543206118349176670972356270009811076206536775800456916736813850354503680553006457769150249138357542063671847780726435808185780133674198136071042978563730842090594749982784861100037324255989917967110412234917388846239683780543029206374867207446219270331480385394545540868317860050259869176383486123397138851407570368487433025140890641043017570765938801574930823870840714607193179664319747023109390466191526247442584790295795008427835121672460413389782286355369616211997305650080152577157339960037127879744881823189958718095284100685839590182651662467012401558769792496152797410967179382350388865475816343604831751900964283947963282476520698598951741247366917880046452143811372213423801547464421129760056547923492125798253781587237714968882049122987951128718902190343582554847772253667868081192596967458406665920274842510324680883337097590691774957599765567700493182790558682682982535157877319488421015076181654624589105260956516210689869726759136923320610904359964263897881868671337615861072733586094538920836711310236001033835189497091475404701931818268554565064772717223199122261114337574826787890210623139477171295405047975146442132710520397413394665736554815300632356383758647293632852526996939034119818301800080847028700479182997152050175273875880505463104390929410048098970236827972419202593371741839131699647938759441531402480709862472339318814266420583876396788000498081163519290492864137135035083276053238057628540671643173396845711357624806884766613242205318256913242586193489877550405679158013689010422943890445747636171200993490582490120803792082726086843670464013899904822266004203419299556053062946900332089588864505096820480487866285837381467074601655258479483836034268594151186408490722655324247768668294415729264677561284592773509698031104105416992883425935585029955823229454634910781533712723946523122478381632194965469019239917692663132714124379016704612538167594188030145868214462391469041611751857610412910352464773097178381171135107897717977622086791143091132495294908248590496261319842469717550408919644123864541769001297281378565415527694427464501827115839851401481827253511953902031789094406286590819818628674512475691979719760953329693508900346358487287519477341979906632699713596535029082652286097082971026111848895180101672337630028818639463409884171219816590403333847984999278289673788389323639850252326480687427719598732410870331707061672656395042439473804976645807988795998569447200530173156467694445756637949837829899370266736072720217776353727125650026936140280157967201281023375870805936295844994931274882968604067861947825692469859648759274014657444344856460151461195418358132958440433214548318454276011150655583940918470004609850215548272967610273816635037020242766836136270493467898355433916484841037184732518190817732503933484283543434782423036980318322104503912124273433125658599712360245369905010735300885191252664578264764136991548598989156885440108240790682139507289086248853676089649695618507379120519611682848576690479819244519040294831916813885339795054601540334472915329541578026774286221495253583252770339445449902109528173187372484819467301475029052497119482890752173105215441157221101825779237140487157282734555479303547150885140835211392356276305704673023206989839493367368554697211661144608327291321110868195006462375433487011103094489095886741826335706146866058860532892425932538348295686185704649388418473696874760810383148608391265095514632042399163339987161390835633466832637665414358888249386805258930085032409292055825643248333597315989547697342839503873220973975954342233696067048182268776829112008850861494354762435026204635311085328853275058878988459302721658699835161191251762985224224050294823924737197425002207464287522394107581348990784394611088207248365530246398683519900584219107056991655967274392328158881531128714078670158208238926610200903839967944249877931713788064066700932886644113306268446610225003010569673991640899988617175308379441159920532150363453010437494637635815758027910411365397738971106344181605052474947086543330723674703170099706763774200490436085597521419337386462499874718307036656973422437556004939588210644869494516919693766989449022345877694182576475719129570777096941421077378271579248397156427376799950108104565517877612649229591342219561815880029288525308173985756391874633457267005011599587162214702961504091356901366204821955194145583706398269713786054039643035267074364209976891765013021501338765467805798179794189889918504307111194833722615311533808450113829430285069573426181668813586014252295411316103992721295473397828208521394742683472882112439871935011203208291818194240588239171315775886984352558584331634913842419807772307378264756818554512482048652276835070318418265374333622829915186595693556165840477359354370688517678485431512609646672253950188305229947224679797712449087513809660952202332508957869847784125347382599281745907519179703931593670506905119768515840398584574556163874001409411620383463996602769397261921267623978497518143922517904987120274302949446681404312100742088418912656201712396149422792725741098121464156333752426192069437611732474295353626066642214333987163639464290680131196782138187384493328619880790530375831526274084321368940238198594617036959487731799477828221362578225814450093668529076604986727426297119342917466697032816007555244891720559306687606700639023359585097496697464485009481982471050974006044381509725127112475009038855395767057868745606380535320984799455723805906180997390992778551772494386370013232025951663993996508317304587996701894943149702697051297079727633324902304638140557452404716586653294516812032236734554327445407688449296906434118391701051374613925597265865086316652886392870783352628159650982454873663585299740436133573940131133966446768677471781174557635861928024041940313175380182367056169535349533534006614135307323291490588891938934772691737823816116988745117445128338702318770914708352217150914746225408552480486749869447690195808553552632792492535780878369472671893761061482948800895335108849996605624719149377844605836199377355806993053064921997588386416287250378243467436090812237389052744352961537976864526934726040587900735350431799510489053558062869071946131502729184026223141083549542915821308112211586604761352858171762092899708694522844669866078129509800933005628190492532510030194261107833519006708733892475623592152287211877416288844278336421072613517712548277982346222221164927513858296295120708343864994996315350197203063791699514346993871237205956708251881658605551734479092102321029921013236157705317099620888784386003643550993030780699258457454363434373389727275828227282899445345217080573438234761637909912738562456460957492446506199463979979253945707533063591848512338557902580775691559333550751869267264887524522421741249828688814458627420767526678585240977970651163244187412884988989223945582812193417039180062048237970441754932411251756478502980475489030956012694047438417338534881121517369898242483977556511413631703842545952343367050055158136929096361863254587610430098430333848205214587433733411177020247259125298425084293257109046558644929307111280586905819963381587588849988105298036867392305503366065161570014219251917924589740995760922847000472889846988528180577131583450692806781921169159092246743545855867159481449607928771892662025862272377860867843342841992227975934254118242312196974398995894368876995057627161261508894009755688251883723670090324817780477755232251236966826312550206745084093456505263559440678463005046666363796861426157165298203907099529147657975834947321488108472311949301903624703425539889131779672132622036147138917968043906364093732494356137737471577420749492191544680712261377955785001607996704257681476885111768297216855532539492920311351833890923401824341370951021106412429990714716245718117364392509660434677866276527666778221485665643611366447380656698589837891245534619141824644649902203441388152451503859454309770049935721804029175503446823432021261889590843535246159912357689855958025448426843198517891512825658594682620578389573012211991171637174506949737090111895384149882852857610667044605570610794055941986014851373770542940734817222317796620435837636261051964796246014330656965115368641747953334934963000482071979914893330373714959711699330064142923577038594755694577337776139281963721941809907884854727170338038488217451299304685335645435293423357755201472829630357965752730127192979712639528984112293018355693027783723596526607877620451586201230995766342271249611584635319456142990272594570747381538932295023442915049874553210278905396915985596804563577274318269382975121514006331604439438212875647494305020482125848893963300591587126001318398988329466732816071110721416734098111347113483876558733942268924327965848014144470251972122414925214128794941839921785184068062506042130280500279232331221265238125861729468024168467831580502810753078092743729619901473708118277201961038255772342279629073892424747334042404026879077299757423440757334740108388908906810074403584552114446876199925782512690820148510029624443576471741081654547853994578241406757477049851558132171537295235841224021372796181235973872008369065150402889054727661428834248939999025582816333572750904560677987133701636119241494514862674448102251656847644668101959294973072783632540678926301691283008878974777814033515830090479006065593353343457635087412602721129168763464151295694920067832383992335435892778072078617124993574536350191744614432062059177665000968584045668022154379534596124945455003071321718249712629658425239912866851849286511243756033095897059772474260088165265813966472207051897248616815747265205874197260317226322212234839181467100703753997058051862093683710232165010503948068806869054609725680784405609485720910975649118785763910415808253903751199306663307312572171276497188628779864756361921354529711116807703914712553854710777529228498003578744061136932680633072998251390807775694013894146048532674564725267108413197394103302383833477915827921265222155761473941341585845537231552947131842663988583060080846692494437939158776667302229976044928565745538841785327998953797013697923694243655341322597376044606428265722271236939405060085919918028267414810766500075732208332349435381370839763098059917142089515848037765884254982259881593512548588268911779545535797353062071822909643375984589644493071366768789310681897907812602298767245044746641906333002563586953809640146239403348179462459117558035305817178778184657854983232647253131942504967727906349330662941029495616888105394218225014934460005576628200555773074087121681455519442603593981442244756626510179933483493552670732733466897013724572890309650336391614772303653316926243435422044463141574934444839100503101118017934947614823251477412782359976695461409622705291609403726573682656389325810291414604788678512349433599967132828047855758388843743008960816480384393035634262648580417230273462691286534920686812456460302485622466755641353936532869889440518735612893050227202015093722634620389021684539380575827542778987829010536253274096108491754915960514176977228925252991028684021304187846245507017242277416843776981962319951320589443401748918265448830239317080667162177809894077004403745210707081687848174563226023010758605257277811984598825541706449514647965079840320237632680585629087051311556555929382273694779298212748173722595846873530821961699159459540557961930753456881390938388288729907739877342241691671934317001032992470776047110287906881686918139689045864850833135175778709781605351543079194862104167051092228020906740311386357294255987064008175634042805495173266423971849053662372608725199701041258771990621906559167205952340587553551979404119786516782133756876122421147394326851935113114138523908735786066920431783025391360679680229833273106515509848682129916204686478541795665498650004824079961536327775788036593628800269850201954875862866746770004712595422779390282757769296869311552445050302665794020272022771561171775712100462908105258722817469405996296415433805831502611998584461550381609980591865481146958645110169458850446199205253796253868188725256710362686952769223777527647666434201707231672664146921862669205043030848551566416047504478751254588421796184402752994043479643908964273146523537991507213515197783152386254843629760275704058071734638029482160123795247296878620439059888036323114041121045997941537398977030955526970257147159644929116686208054947774411133354395176434386606816063166664686175230217396551403062795362283085478423985760308655092069813135897195411319157208579391063917355615586116013407213425857137893350785112347625475253046324590613362108335468037339662665318159551960854587089458500301222664119709553156306617120980477422035137827613692184342760457657630874556846204909418090987261214685042563826370494425502051895565963879172335224881013020445426687591795294128043718222957982051607047487255348867464895815955451197962214608771843293161575673045529843869824628979117467630090999567493011936120499979401323819314916094309988727058828613006766010226068447658452566506604223737421181237305639258715576623362110577091416148837595385453976092441318343565632241100706647686428353697165764042586660710136788109851484270978378988829364343043160653150560272578208099081824683141542286283033731018711133441016136404563324320454729519660456071758374941666813068420631459521568138326506380951791764649958892299018306858222465943944311978346360820427793109515692485678607383278022347953912735719512679819397356284425512528093476090009470896439385227201794939809034602122700013904061083904247145854162776539408721003055622097499165411014962305431659073149333537280050225754901859661903284613455714825241391603508803578024722651086555621673324271163183327685731602988900649813675304141747305002540413041455060903246446820209154788550291178617023436525064846342145672792791994093839991802572799433500202433875545012459171614011962605998232333861023940271023752132244633994481705545483057771041372085782326081867047253207555724861152903265119692229532100689989535372105675365246077797007582219872343837636451104747588551476365878305902295869538597977914147334001859928568881600670438038610135545766190667205647817505223384891175813133849751621485643214056918736098995458182035579334823869665929584264095262773079717499060633687123584197754825960360975599172675933115561369901843819073850366053672026290291036465355518399383628170592582606416977112528030231489071336781289533009045620038963051477993239811956563996694882684889585020772519948179329078719833071366653181639347994539456232711390888745642993040029074759383123233256750904752766625449727693144375859390062660519521443434695771416793511518077487533328404731959244688703957635080809003112894288079378377725319260731342688460375338354688214142166535466496685958705717724663339782953311738892661995284812362792442853685172806083341562673519048378422804809563013729535709405695987613892220121505157454299316566303466305385038675038737851677250735961230567579416492950697354019193376809513674978066735416144233350300412612016796480738674541063044939892702945050856240115309960513394054990098723562863671150653337587183905903939516535481372842494573954847629645141338235637400984972779372875286289575298148688374943335049117311907097582361240317433437901108671157225411790779705301023132278257846469658780990710381799913977843065008803607557774215400270375590930209383305462894342861821268157139659979261900231561960738502115192461856997455541251273817715095420017882752433827277318469262886974526056468225705569487916465581968313479880399359952890990488509844170395927143523120966115336224855002269175271710105677237239781846909555210724814016639312537251910896911144122740732089392659083818386272486150399318861506079438725119266923687490380143607769847889454454399334454259649364260336805193228617878928915991150445916499469908427094558386736449959969635083392388375127148951024046404303286778954327739133181677070060266213553380139961461244526456416532866407602579352850884816246120233137115954171840377308487348886200389190914670023460834925602913058462405364282183064100040699767596106959349395913236649919067037212477903165670002613470414614806851934267095314930162547533938763880405525393775963429965454012204394620919622816007459436927306728782768525037513075510599118234706461972931577913347686049455342353286957330921244414218339273780815853089532065195579414445683609706609877197230002678460801414359096400730710791370023557455311738942608005066538750955025140512868080649228340075979349726865120360315072478164463879561656398016376830751748509648390771698007972451537098982857138594447095535183777523580332127348890703502786975769783894717795663304407128963571859209571243854921231702711481880489526338060002976602449193056914183835174408489446442071786661027598106211169430521318035632501372902961147092407307039830146749763774148154815479917638724949869243028007028357905560628897928725705971771745460799782000359145015564171048630054004138607483223426007375482228158034877773232420289482545988936550109575545778551882830917610899687580045513885876866285150270929336791860882064361482127008706970093585093483438011393464481608013976122442281011851882615473402785652927110946833671583010267208534973766812068931307729010275715409354878743613364015750511002995046316438370355942195361676959654997923221357806263152698295430118427939749070693680660671114600281286092127222457410978201338824918430028488901923435139611912491459509951556452946305451643969746358906765312330210647944522464287865855202813745222957429780957607904808064563867926993705756399497197574614175195532193254851516617341395497179821006554339648589564235301780299820220438574348152958862074321240947829612151414307024790075312729467802905957770087783525191622783127406012835831051790019003138286595436922708810161734781708743274283613230337026008858394595977342319813272149203634871431204896792480923825557065746022311582798520070976607601019271575143575254350481865602826932397147015948717532690449012560768191075404858223571341825337343263592921666003398350051067746002451182363079750475710123438970155774773925104235485126342670074918043477681923287491127734516262937583538430508566073905866570533034627770675937734823138552586211351749726112923157582614322117662394981903750849232372738958003180051948644417342676444453880830052719182551180301167124068163796892565994796135900215595112479563787859598436940378314560700453718011589516750271327511425645731142760247472166334141442267996460598552547021048108381057919350641003358415281536782993283776971531414792002169987783968311881757409035752230978521278171821030423379932769654426945925566123797324489956561044780002403666689779317032304226415416582032915304733742137862503750775408179555453924026049635448697076986634017329323509142913087448077642860828816553412429754357265042758671524982834299861635887884054747529993191235682579377685535800863225479110467430659572946290271723967828705233619496550540046898472656795301760229077311745227474513460346243568701466160977428152047968764407889436576417294657839156583130023979547460931757556753515330177388584848053441025919555586363570533388761752702745148890925295012938829337282461808906862193153822625247714658033278468409742843058990160826297178654323606877292356796005491401829096671295970373179240160081390768348816346967607463731920569807265006742868288769409710348086198953838309540950787168609551828734364794797966451421381119037814269787219631678860870887141117684149327290183863644708673026673242044491878984596278298351641158079813335943775472860196185492650959761556285512675912566337585463993891226411535694722794647640985218647705296420318009965145358274087780013482048510828034448318161720144001279107035276611065698968101333076848818807767193575189032873533857706802104408281112524340740430659849202863622575824516102208475480268329121380263538039822151994761234047287188322493446020768587831679657817780190687719690723563721184096971870741740907357845209518249420305056739245402460713932439707464398160801492458483018825775085394173985345259136608349967714205622454337408025246620416428565525289799079400709552287869808729427016748107456666036342532121960832399686875675566422945627743289003772311189481920668840219281366839002152081781913631820095593157591988549349585717048672462764838212750254365628093816873204032375311423357665729790658969929801600479090485241102044691336639300162008819062531003472112003875469141296710450147572976168766534014408260033907833006528140183888758642260524963045354186356155291730416416216843500990477180846066545203438290300925034271041637183738869153776048956836459070806469779143858430770324821316730296116549686335118700705873979724860774374095625965468503810949232604981255467828565912513309454281315396388974623048461694450764229445289720290425213119508815772100388968781279981888688037009081936606441845898197428940600542800293093313481728828538559765678699836607246372832937570370987773380855082310112451333994844176751249257153682828199887106563975800989233664743162266213813990937729638520403233183875572167671643992358176135057771930905743015445543163644273363471876397235491558491731637737843608116156958911002697786345653121220744161209646426986338356954377158019001853672857660402294259024749545391230654695725794489965638256921782578409269045638382386519505986609473445232290821494370145929946605126011030272845604994965205840858753682702927865614719439058125012166259719234350682764593998311294438379553566353246095903035903321428809946196614343041440759186010978039573962423425503347810269067148525410146926434257157953430193515583131937860714263576198563553439796669015339372972618276330628716888994413078401091014368450331406354992868211517519286227440766737198970659552626927823231008618927460385859260230535222519718818880456736384292018695726229656162864971260845263273317842372305389825883009729729306455489771938370724905519250031169765215692783635398830124530350184822635998397162457561883966513955083757047657253114654333439066053792291450618469468965636850642470176921627324959948062396527552500222186185371424405521919083328195127696497546348164705859318686360586284130842052444190526283220063447131755893544140360712491611579591341609764194995153553438031353522016895429444924649158730001607409934434347437723457740805627584440252147273138302749222917461127944479761164608813772827691065973281171874578433052865158156522324244992316439340425127195710750536783204179691591420462033294804514907995398208974249888427497470078099933548844334266872785355997114503582680553568141962086227393063014791920778036001756757068977879519990273682708676555175832273207742192248137392098350500589128391498665163103424438735513986833921289940520914085595263232873040420348709020874339419454323319753256358705293820772232323580551298708156743219671496584447064037390730981080582591442033047872595362334580249095681885012843481198114260965479215335072053995480201389095130923793363939056215203276744844054008539893590491026118770155318138039398940019836449250102457985744917693498352259771934857126677210175125988171034540752094051412094949769839081070792411297897346669157783214876494602247109832323620316079343433633014720569029600761822728267554626002055261476868754878703454343741209391892647644407323796771692533593960287826904784433311329980830689327037875824224214597216218112714167034362616739822353772403353749003873813798885314636535882483873783068410547228290365427779223469688182882630719635068475767009142945364199176492912198769861096947927297878445146636447232508077804303324609481643626724759990742173188621889110222908553561800357870135839965985085274988475351530379038937872588387223232509974863701602266798479078374808006066583961782111012255416449932519549017751544846820824846934651498280526531527380639495704908510138180856296368934305419020953032243148949098522073120580029432327032737756801094013033506340287547529205587224754340652704156450676077505966313120144325755341650276986805166547377370115573575978822843873754982204157059018853843688498923104848753038046395036563029852656026319612955236001836593629901061764404697770175859604793567666365467518079629548328973062884699082974403056300746272288149449465918031496793108310881194340960504315109699051771869565684979489956378062598078042650303350745336012231923577843335716173548001961668310286769392528326531020759622925937115362812999874823746653479679240815884747212840473220931455429295276854223371407452075889106531966889211475071427105509451051291252784720098598628325463335495352258202418334429960527707921383521620308249898393789687567950177373902447380004138062523417992265663875225479465248373135825912699472837064778676621053744183639521897671257851424247647213825519237619867836682024417268889540023597538088188740209652397275806393420896555355512082462408499487260943588839191642187567212900808630923236737489750074160457082129735130021419096327953737553479976097824923214586463255506104516890500098908236247142979696460562817884013467135356046883816937657912723091647699571978186815553201159044343740354910745364267017625300779559800700259935283104565528979504345417654863970941985518890986511000722592073275433406205392288391615035158685310452638384953573356271951193956436745117395260390964086302436244360337484627107182779895220336174541165400111176001837697016777182303024298066602009711392941851137748746223145860423632785028087315302243962116810810554275574734987587338062957598104516203282434668677572300978251717720627232657499486581836956826831109198434390177691379526791905570413124101601860252550090587223623762406177481162004161304943849844755131242866210707715156776008821851067614911089481388474685663875250310957368220773959191383827609783834283081451364266687381909077395274083207331837750341965402072797322125535038665084210629807429903724360130296017378389898065931406259976192250021583873623573251845954583879688089854554219470463181755486175793446950105731812560563441316617670088263405765918779613465162874712175322155808202719004365427398118828321473564217015876562399717000274933081351319484753823534195065596889293505708686718201135288391373164957343805153965148587587774060371537975602574610479212892685105132810543207847219853347533665389528389593003017839837127883225572507300490536673338057483967438880041067512639110597295498957801267539154581121276456682116176232977725912996829212620612699764812346662180944618879911427454681586351833858364161141521269302415310884148489323518419831000755552056375307230999869633153875811874607548795294683253763148373680137366992310320314341762059109029878965707810403430705332735259366126147764735513074456192198404666998038640379663868888603222198817585709129383405593497221049573495545399973562100399361611871133582419686599431463983903582444370271948952868817536637499226863295176139377800930342373167876402991936870946806363550578133754863969549277171074445575416911911540369922226382824312303845105711807568378359434375872012925466230692236161245636999749150836507897547183356922802424627742704791027957899981500496458393610389016815429653102581924022457120148108725153909984470452559152096805207771274808206924778038868097773669607674331114778542089445679904529772174797778610671582996573317701166840479247456591260522968463493507983863079501245522045718083294407124389537124222188764427864209856914599326087901160393764370803969496246307968938874275514820450001935482695182603553267458745227555978601594753461669111347088083239514909307608073138338449950443629499079812877977068610407144566417577948980207550189753470359692123252113642306655960571221318723511121023761457027991547995013856100888042390961201007636072509286947680825917605162752518804208301591912121269263509638259829841671753904800745662818499612752260620395457435073594375567191377730274171960706044717225693140731518809681356110295729181101724910828733242601289962608821473877004434498145928436794534194398315994263371913895097684006520498698079267443865979056858781608526041339853162949746688402323236988226120113992316556404038834404938893166595636758566612374555695619712261699279178851091387328437904082427391632317054178842993101155556986357829318186684615297754749911491406633358286951291076116477044859057765274836759409602039407664366268013809463634745787195651057378876819428214259736095225591292245363143148791013660504075850951229163327797676690232993639405436451911486814153944908678652587540655562750939537537038069231649245456992152909510907971080591619003893311375848969186578718318994914118912828399889082933679718010102586744870237208952417262850888187650984025375227005347262986330047510576893804599595868276690031357766128683305513442257967500162216854296318807013136669538262037794222778563804406540619793756652709207001074635662012770488324192122573909379010372802885238305128289053611566229143827710749315439979464009222765976965424676343721579890432827264459019525343293955789382077049326097577979188007428067515078770697874580290304339955137123838939915187567679983315893331295605176067365840067938676277963000876404438181443116792560488473687525198947163222712239593944895366883910885759402258063474118998849652827071619914650203290150046213895123231991212839389513953274676045527608047981698269801961841936564466082775532282686338989388520367582214371317383989178655515990967241694922879402603805066284471228887725938719477323303643808687022287865961019658327187047363006166768255503826538225016546423818606064081280309016284083441532629423593651492906220616906349218745302988571997727692380139870486446591184981072591464490487173549935230775947605983096795021413700352739377921266667524165995792028895707173777133055299838996151609973418712655784233634608874555568850291005383826307750932780725725525056202281221796836941262706454404639399401129186500825298040377848936260786190405908906804161818468296906285683101562443991763122200394982165602482380170772495893890877937502708551819444464781022957620938705895145398248031781495082140181664819098021226038267716308383506489739368590146649680414070758747798497708613531560814790787031016178262595501211962024022697649000283960575771820745253649108744918514942541247096202092084835266702810177638954465570052519960128804472415295303317218293311814282250423525524859565566543169703819984648131740635733189901565267813897818383074379959195969722345838098857894329037261360850538417016808779548561802190974392963013938022295724084759399635173331249768182100504201491180590632373337021277863954604347350083847868725287920140773181824979193741928250937025175942011902397478972820242600639479719889857517163697001498172071279021899467356903175720425521262684762534890341943679324990477937472988973921106468978724004310827040381041023552231495825547171998279047699871603766831397187673549648722577713090126572170132132656532209998089523618555963346856700031054764674187448318159485687357032084517996470082988311145641609404272196493874913806384440979344327237188688135003779177424183472322848404484939335838904414247829570369546534898705303863630888150061600900065786466722071450152057940041162680175744610251724441874677717543000182090214695349176954298410735390119751161636944729172868319091831926687493976027354227380454605829317413252343253584866155337511232671750056182863725396608658776596331061704238821086200767692479374436434668733675373395705853096476566275687217954488249708095531314790959861687191894431868759100245453648041284341671899708866156087746694322503702233268855041890977922998663869158090374259678127878542504668269479890721553952132291108220130786106425428813037311811291519438689504247895182360305651379706213945201999257434912226727603053601462699110296171659237640701097903444880968212889221195387967493841757443941295059299442169420494994668961648265809219769408759298320295299595421159625419422401231494937376616551495218717149850345066691144845100523093160845947652903546198883989147922201362810168370878626451216549920206847750977289167660767973569307998019956798054029717038438243127496974974571564405649304209526405613581238298328708072821200180777732980701655572702913861952647450367168979260145469704959880457808609819365611467410733024223846817962344807991829732779439190007174068211522657213078797690773619703210820811656300000475128518355391975162585049847301253877899023156815170071486659434138694231188881597168744331323899748213422220606861429860637947178468935444691577655635243879013016213113204130154184921473072078794255992825338785774965635377807274125376392381367428905724380246461420391725717827439907976264334023663023703432243739289455761228455720688887553054311395752549930159235215946757962019497218368517565491334169675407407054675038545192224858865833969574007001110512474656683756529090491539613558601545476653417503205065406487330720358968529035861239547375880640128004739003348169491904474722151591855385531464544757693160943093914971781012228912660742801098279807920704256107700940683492489752479085646148833981438211366786139451264263240546199923302299694654238397035675030174438041916724400588437702873890277368937234985964167746974132608695048215405620832878195384550119737628600575125489151207182915912760487401295664560711087208943563138697398689162778021114489570673775414224790167234615845693278663351471096977317679846912379308117751292272560995565979907971416384732186636902413499404272606038345296037157131796669545145096646741340707010529099006955776692442204025121362916967933846832659724542513859338574217910840590073019398783842876673130707438832440198049189309756092732488764558290428306367236980263087597942873206904074147429609990962064684260855639302981160783131701835817285525595339891149820855761381990135367167279893876009388094457383641812084384113777898782702135466832639578773820965620148724347318759507419757780259733814844594439349869469139967349154682642252476569366533900537360154116101367047727056637492363837409472513946315383812719125950556242919638909986491935890184275019646587884391519769544969864534082487671409306157375555635259069221412020207406858603670168308236206198547276385419824097056578903203124227304693806190884325508388697741672453893933120398516733881206450450262273377433818355682258193380121365897137901749847366212874150145402074778023892283143151122800461981062195279546446017107068588503785053057159177187078212557499416287666635733091139902068780405359263861104282213178708134926881516865669922194595135033118925586178755989837867502502818086624950882172427886889552202865597357654365473953420818997788227117612849734104430777294080929281569654454390764620736576062335736369427779993506695723353294010203211939271822122121310975858877470397576189392596458578467530418631927616499144044121813340231272883697022324212561564055681418535930912370260059523064086092258661239982633932540367809307587024378478338532837344559293002272891804396722823269444518282241760046952365266441659230406912476516526887421967727239793292321261271605905823519457940391067980243377419467463144307666795126030488349044691839094412192794839097845546661278769280227437699666057941533517201222139936542128009122540642149774291511586425752743063759225418936756361609458384178860589271683394630885858035582307504752034567177785426206188853578694527992283206222558630106187372007160926277649643033892227670509092707338448378289891852239160535936650557104982597817404729573301647544569034014014071961195685412562425800650846696303672360701403012469178642341133328419074248489699056667482184391337599208513828959687335026700676558124494482864531581732520641851656592710311977703399717455208581293761274373889631907605866664552326307070123554241359927236048376642190060631464480025012539704373066321987670752882068858700123193948983058075833222454218878551742497148600140519395291218986575864206093043780126002887891760767233619822764962469308423198585079510713245619690435800614399321775930799063346402899541139219201778228614379356138803237609249790084901394329677811218178977793734750944615206248324042610375662839065981086722877407132012314532326997669070383447958876638225099870826142230036011004383349451303689325791181806508363855498474452363110123273980959146098879161390484227212238200919866354818601877855169685047965582450005383724187776376131485125959231324309071651791844318590800611054239267666192998900949773894750481453744530457161902666120022070661957707191276628545480240008301195853953840778194705533640234781951651790548670185942825083797534715985354183897180364477131595536129135946653192305340813326922173325192546542990174741299493025536502972647446706305829312965301355635833209604587997781228599194812521309747693714277021778479858944369697987594982686757075893490912797257692436477045081100393512894540675742779892739209250939159962242302174772544996177656428524785853697593631549116916572304575467646086192957003102703871791964881037525086195292329171438220963982424241165274000737227049771657684410562196639736814639151526002129827175354764366496759369156356585811735762487668511731018362437634626466879737450597607186007897166771669235026306748585827324845635297268253879028265855269418955699341739341132266948798066273836494225327333578507693783311179895206175457844570177260355785963660783708607320148222852002820360736334985163083138977539100284578017211901358011982695202329116248966303948723325454752696865587983411045807363622372338613960516691637893602737560531987220389086897231880843633405863415780227778331065613944436995175883048474087625530432624123534897960956123600339517501384424065119739423590746738302030620321853578121390340041460125233486369897097137580526407445485487325106769810668190443608036642175710881528831098540918211653832578573540332138181036389904259778337643946303707344158351532539673184935367330374614625022281450326725183686400830236069837641914610381800380934901255703630162422645971418603733534241717062253597989122227688888131236272205966011038853613829710914561138473780776824134073703686835014757208579568966707523246400773492571131319649671924921131796075661838886793812898853220859033317793482245654750297835487787309091981023773462046398035663211375675005707105758222464044844814888263410084126586795277686015943952194781874193563743993811212201267551556979502001385672544425433745945143642058954290237738133824656332630281372233168512219160787893167589722105980360311528738052127639848868721527465585118349739467588289901584257796603800704970177693086845163240744884053737185790260675282414977718862675985270046246789683364013129943670071798057062815965431428508631813231341751505573965153332865068742554653452519406533143931107712718464026341041631302296955854250291765288571122519280268373306778803758705972000040002953475042772236542733950945652677639564272789086547360640088908355240225715067765489085619843900372223244503462381419358126000808336210144681610847107805094709306689875338851894228252883529945075772857804917381638239570172916864577134800179509953482136827220408736371683864147754723687084148752636056297009015909970634327039596989029480666562715584155597819384973422895994753335707802981318547249198899514638844429530964521563186107287788156687899617162595627290667677394668708325991325166540894016536100650548058989291869027933259446315711792432035552579862489781342365457520979567009598434506956671245088235515645216553379548671014747381023646684398919707461573479296885790730892645967008815519918020592376536304388029403592651493770070941304312523187479869199569080326002774602622498356951000880625803100812546882049128299645322923238318936401276937197031608898899583240961479994057179322915564389578817682415939670884637119749756473281645656640177786620765247888967962465001027036888421265241990603034142940922775574215414664908445901979503310493105509158753093010949187117844113474966931298971175551097459298506099875093786922236633215724864096076997006601920791537328668052424835870491570430195883171262457573463240236954806611031685267516733111473039647169225690056521552706428749932473711712138610076549164025661182219266176941151581778999575341483604902630675533476572183312756321424734349173708748377071846979334606674000150849694790858860540306366191156554803457660754389860740744147656528417617069083741347393749699306402415390542914391167981287913313946998568463192686342075896172538492839893793935415321117858029149943575090654141288550758685767402463576551718883508133308771164539204492524832865996929192424570841797043163624450281393592788131235855300386030910297833191897684236497469449405211465758766793733181833103606293255479570175984650598957466280862293393062317500906575847004733898323556831607419211884652199864068150379797423538647903384807430102145018650634667831541908572437650671209755106613962722110546568430322162038738994381289142934763930105418295770401592252601834615786133194985799438376286797055226999971376832766596122674569863340264542439066187710943110327941067163675050557030715650142346408649945013926600599069448701603916054213467105853863256055244173252181718204902807954495916097055359738035350697878728252602335017932466959742438959678072180254735829060587783428204901502054993999046570274386855454457607498877477245233190940794410545065039139019851732047584536845904421963577962332673313555232756673936880455615644751487155530190328505635122519996032100462675857613530789793072901580362459737236826410616569434179078765429684680173016002938921718987549106112856965892471045553590500372600136390398310504327966534843499134042354089013817557700445853171114390668551655048522692356340024233768060625581034904281371771331884879849348814092978521164231614681034057513001688324646985731320550660759187207174679933089491337906383625463041587353001236783479626806867746629198505295535469420978932327286384744334183631155257010486119661204330610751082335919004986808446935654664580188925183362901389045649607430079444841072648564598637516663315518059673201030094956222702282206900092860540588032384783943058184048700729183053964323574259217786137492358824851674513225896234317198373879972920103679320119208566247808272770263066466622892043153784519064177439897951409229363496750229674043540586663167978719663856346570416268432678202338045117315581083470233031694043045530626422314908753695238094575786108953175810619783280442068602320885378386674944894125428712445418915798626671967514670054313077084938876873360418482326424912025767911360471465933420568583287913176235257112681628403844355596523758083037393338676883692823191456009954749428372629260425582025883438588848321120976572925852059094058051269999791513914874542471561438294281417079867455146229839285475171477197908615466734132686041299842035000228903633300844826046097585708876823123576287009102720887804401422247559774752558834408113795610953701167196741624520155402254058437829740267289462561069214838147026775388569062323699511754572577355306606553510722287541517312209321364471556416950247932290743468509112804329183274064639693657307717129814725081794656009036242471474612281504482278644149064842439961932511788777042109495226723778479525701663674718017202317635874097021879498349267670417385196014151549652767694815978769057628830917901525254213523835008383759320836209588847703242547470456550870853225905948120799847062573320985897570126153406128013785124341696947675439780132467807760526328236231828180636134951843302499497048217288226238533474122659380432027744522063072984168837531454592998342468101232254371141862886443712078499434455599730282443963941272055292505087884373211343712799110326444639140475742110799924412381308160029758775449950163083217833292142828915412866689621967976456845649505743354266804141757532627667626012598595938094419140504558815560431880824937771076551835621507953654842521556583530411032436556963171368745486451350810170685017943209323200890283241280889836436402484607359454869119252147757574447182462021590141015260153276245941015762834987778939247799251975135548271423106833782147700708467180339820891520268232306412594603935016387402609514541192122856628172122000677830420290077356199841473222265923736731248211318973525526541687898905609556107573748422023928428558111910103586288917390052130378123963251967392161927670246724522258665806463734190823603945317149575404468133449528777938749221016595171609196834356309214911341420898160651767008375435896515792674510127829522517152493413875186254051918396806485840374494902990901670025390635997138773916459802344769419605638633376106175561687052154625732275863353746463867168761914886161560605675599058663986560677175243963831387846098213478086817823460327800407519699512548117602425918859574188450820722351497700665497792128088903126510247276067201630408535592372370627361433900527348612775408746256060822919750614028169202917878162098789566038783683750034393546354576333595264913419222835731092495164099896549784572870943886178944574179226279457698526399497937079851332202848341138544562204260798825208547232574347419325274264488916980992956549964000979585266576490105949491082233436940735587899368764903217467860953863488765172913219455604818970698251804908823490029594401260147555973763066074364001122415283744095246580274575222762053964321933344013397277872810453398159808309691773398801099797756965391421467768922938376869437058700207119495622000592301385757757836453292603872289606789743975487791211905601835805884499384347980783927128816508049872270771216523455973133224708393227281114314630196115635124218358235844589307530888997113498747042002440294679280184431718610860954012223963989465748985708888044356189485578419828329445316467513288283695138311333343871114753499110644084393514739342583426587973383191629730375341543183602640145931873964499860289096618764475020505726181522581128205809049369459877038861519023310735237592102232188423988919257406443399321327289628615581646899757506708731664623863155422514145327329288623683454012041053059546820185741301430435111579710250650433487353720780320875087661740496354639638744001314014373138323475975922966013207972857653832192589021380537637467081608579564656651115378415523994109972315459552946217273334255610226902353512385042670325170862420224500740833516285983605099125066469475712190580090317635626142799304900738148682613347028197647517875260108843561043689449131005069727790020059571949676502442530169210648726126573406999745697834015848507870071115566432655879425129811494085791738999965150109377124192880914139232480225682644149885433827458175602708011078344962508308988665381983620581743170958311587331995762200692569277102516650732447105203778609481596772045256769479857560062666534638481820005908828563896371983587741982544985171703731627459629003216799583614800213292526823241321262838162084777952101311191510961600558833055899448034664115577513397865238911770963607067750877750481209756807538308674874171432211214776330532643718509962907259916691812217077009551915530029711075922074674502905613587795206369497026621278586767414838666594187193498641607822898511086109275369067482406876425891794766032743033609228633278263065297668874691043030451765677415975128612569296555232144364561845904150036526352793480196836576105625942011671837441293341455416818329985899422706048703372639248984695568922009411569698073555364384788967955174451468007804198278497136333779428438808091415202817447022756563490301741193211037014910706337806471367734980692374417967057890259487917312443560507030556266100799574815488946768709745129879375344754193642103419998984948291962692000276324382003097229821983943864914703706978780774593735428730178364968044915336965354959893052154615843803346797724494133677616750062241212686074324097782462830669406144240030639586836994007957174961398626407574352197072898405561987352921625374132426669000776375342743141273734421294291223527007716414561764837595351428446307681637637046693773598115077075009517927191862142226319678057681131709919967923111111149620037370216444155594984197686532434193973908842533570040420068847630513115558741441105427848881724404452678435720005753858812007165125022143250606120843154000289482695548586054364152474479156523442974942088310443499889248906969698704549723351397266974738356031259031497013643827900091524212651855112391430426008282522360381746216159577182001377811862722655543649021886395768623130145865461660882435934189140047122105826950954767378253035292149243741571147000733447551232484032402248509543647081444920524933534012349890517393325068528988442812131529578977724703815394957483855882360339681189386380082521182432003277211633839590450200383892684046709096808968846727290072186964750394004302089075253243260936999440337001740815794662922827019398864521199419730141071382047770298224704020352950797326939235126247796518710415288132757855301195522906536429828693955787898631297552365659769561512431852332243872458640956956345458000884671601867565054512208131047676892038567108786172682467941216626276616368402190655655428573635556458913697272059013164246828128777459661098020056487124680784382409339155272473540577205740245069689186475088744623966707225808684011624662491232173003038967187299510865464865033660593472114703269857572143224514212931654255529350254041105599978555203597471559624849820118226103072778286538673691676006081318617456263239123723577928061761745086506573992204088835061845353429614047482093965281298079869014280259759064794554018715542472779485394129364045951195893956060033417651200732435790648658082498138787003454965785973520369667373031058885841466765021195803190132669145576849551217129041953679346150654192932036967221710503572092163615203780239310447682623926121108837179959307252083858238374536192783374386776693223792737904758060901362831352297079021540964939768350287849375511288560098395035169040351693583914752767253963450154752156180421700531579900504913025313265380452191415683569577301503052565122476197722359749464376915549395506073638771447670194177854042453763777174715970663288894977862303364747089042196977618619994793667156979185350770732517233752279474666308088511901476653503999631842630487439934558494390578410166344559781050576610737504226168098999549119631020847768296407420999895064364350003247369221444975054311783297050718077842009847180399668529035787090719974467780764891236460763316941052325010831927842270085689991943772438458713930985654215942861788596891562431873478072025886282188330408293616487882380209149578226667934189989718895668140055058794223310462990437610469681151118552547893546112895352750915330821999430943718973474568423795817953411002826145014453925059108063137731076164229828186100946523735366288811618780707599799774707843483467912874915767306962196486815760032398318891548086556468520359923629426166490689467781135692290332682606635762087014535068014963743626365595348032208188217686097176143511022295975639101285078948162239108602797102372675958619780386437481403436682878013040256187618321083519133156889610265000343237304453195525443404402457785267461571777673839076302527326263396807433697627153219111829062904627730068393177349809338315083802331890150719230525323148064811673382860974060183931351005934385195324126249362174493217846900164824642310723205550166075731354210422667006082092017718223100567670352208305242864298930372326274900046298420102970820410221747912629514777329855549791080654226547315526733301929013190287715283894875663541110422547673529630656888443730768700747502985394341356810747846330230886360774277214071589052399370804773320343223166409946680767954553045377891342175894735583594535730549453300869154592468146086565542115325619374423660773909099095020024359928808208652660879685713451334169696129542584724021364528162931526522715683813228712115973479946702247839084846582059918968443724366055740419970618843019730704403927441913959859422951346038632454007851439850000080618699362749752755281949947781619841872299974261450295736815730275041197724801369431379267800050982826346944590470908001043561740708406705960972162531295527186098891010705690642037181390417875664643179708832603647626243314451017703566167885485566237804621889483523058792954649717380981037194339113046206642223502063196267276763137103698141950514959707706178633904043844151549821386280272974519843276194890977424817402138175873310481911347014686179444624703253651949143955688711661765910701653958611101159921520811050517655431490719028526929624567577002686881676595096860822478385315265394406049037433361439793152473411068443067656087738037222706227793465427429700997825644619645394818751534690726718016757413136442027157535868035479870968658248005393912651251838205342571506561633408257513485043708602486244319984222082397934407552319737020865200513900026833573215402014715058969922986745215721426204372849697802085730390395522410908212433446284737318585976673129098711397271459891033763239295452093845134298917451231960953861500990284301449513756860669461800620227972801291576128894202407929245038521007626465946167461258121885610036230550669235597195030441053384386361679951674236545644883536421969712495193416972347824285982423397122509627156977258778542632653041973409771367425012595134617117350200965130965463363125472891615465956478159116223330528424688484113265019790054747343834484738882635191328935150335148303933421975988311781363258284943895921092286736240829272910292422608832574420833844588662989608694984267537577150025608822320878786130348906797245551708340746816040046214870498030423593143615077999017797798469432252759950478870247703029750299975438311756088893063542597356174409918253600461549763252802293616267052700353576200062225115261500357173262653523651993221792552626114899495800638579947275288176875239068315737782845325260658303465171030898110697691950260866819613507488630252781052932903098374311522003056452297713688634686766714671902984248853195240450219760131002941761033989467049187203845984022659005139273438479845769535942381296116967231845980833393186620155096685979864908232826292897513650872351731707229407853226041191564661391664372188741271050865046320483749726441819102714510548302574301375519494711805779618194745472767641064085088745665881511358159108198467091947390448455830521315510788935444127419477330399417009106044360784151359679089990270970544001374144918078498664033125521081067106770675806962500714257758391632126790472485374246983960456799265438851736153390816967460781413609495005155210613613800844388696708018522676375770437537401149933824122966858084525653794972615412473959377947641227226990495876296521033952242209954414878881991405450244668274815206895258405013019406323692168689865663803717060392207939887360526861201485962101578568181164326163819945955747859106148252489942197066597130416059752870133928736915675266988858248260048291624250237656012865504292434781048523532520562171247253601027653268902988010388397113813665715610659930613386878483335478759608381103190973028203998575718964281272607191346884300229224046307209076647596842334115839825585855572723024712760497577833836722150012403447343618469511887411960701676282033667815045606308581000068517120705925086428245606499768701686831181515264106669263741429049047126296658742658164666931120943128650844956617491805018364881413206589002759054426338160899887214067212699799940017450891344322914147999913355760787055552090554782019413218814557828780081806636685357962680768250647999716795568351812438174868495094274542975798302246401961254863094753555315554624246195671175211315830180299640699107276339134219538126562763004229203143393836133075263414188284241227597405512761862778484352536532446796108984480758662623240944820777614471056758656846591449871605278788724668133998259628205636950485545062624830420063450379246029401584922279898482141681285194283659610324307692912538168239048030026511142605178834493556449873824696946925807622905203050361062078304950173140072672959903457015239934815780423170703654924332757942962022629389695638446442755716664311438121550637803096407264972750922699055532692895660903571529673395397969610173260134738266082983273046423095468278720355565338901435693892689844455019668399490818997274794098339618994529447805649801678598152761690630134932532434457019761255143820389033854989126088709254706041164925593215896672092781402754133893720286101635986372878463195269525152233766946902289763060631158533116380909030089998615649896964545498367124354890526241832992138473141426775968149780080858141964885769948841651775192804759883665147237899573999192633886197921680204267601997749172901729199139413681970677364242793299129353626541509735810442168447708397555283389451977523425826875444409802924559108438018084375904394764812317325149839391823509628255132270408714364685963388084131259508728361550295133978368089930872975964077303327150376889100022136558868152928885247685029810530611714758710559172015201749045660627263479568547864876181852166986880013117498336643001534896166496611357505285085682852152366383268269578564475267985292906356516104570104047913299351045823914954603548057202947367910350891957172402354309377779506322190370481386147871369976490294120144885741468391840833074575161998278965225877740560487782918338911549574716273812849364626879523746966010393914197432883804366445689772098251497092166656217291235052235602500460487104142550311954594216487855359252021886683867834197604223643511360438017178926948999434634680712582967439505177116407561597192636175271260688769414641947497138886879532086729380888489313038027315651038013041296412734706820552461149181606832820430062264523670629261174476727734918800094092540260075106082562231214459186628833852962342686917406738071519081168304367557634247494276575420632042656826087722110630027645955972713098208440995138341581227096915342266651821224869630340671629012840865883118295264874896813551268519963415100467717426197039881815474750124988341368114465459327104969271794299632867077533993354471668661790337385861435261665343577130278137976164130180394220923193928858459772811245336418018278803146699414827627865157644318818011784988347162208757517069102812598360136402113690286447627666602391658891969386739074007291553155846444202751022304422082385526498599829293131155452204842323438194587201739481486908826135552647460447955573769445552380257077006998362292668279738619773177489055095092211335889423894165974387972738897117229098747118420693288852966009329392087352257724368685999517368623928072224793648769191490854036350270862670927834332101628401568779664126071037909185876537513511392726095842678518123213907566227520952330245560847622259566679164221244939368955702611926649891538038962795707445749607677057430792761526797077657335602191895132162425475119437893087618291469671097590332281610592259485582508403879920519761776937329661834832054478166614264326959624604307008157280587475126621294304261229356058450790410134724099426408758545893974968389050707677044872405445647637125074642983396093204662520231793361226511026497400697718688098166267077753684481623614311586160137006254639536139535188328908601767839652930555615687617198261159111861451162870940471918653065718902644036182029851962101284868068236711022643118910000918266667946186915184876893275701724955418736034463692029845473342633504027290755320971797806162394005935489984057087899741392768667759064360187739403119682459570856602830494664785123275954602913212555211421794888317268683279614658104729147361885438277733983158138830223502629279532163986610162398480529912387845338260455929100579849211022521155915065792409059961074711375769848762727277743867266936463174502905110775258163932364786621701146103432729097398231150266658879369857670982055314369421710976365780473576538379896400131207086531805458018890911221345919081000842632123546759465096842980018798756075625241879394665097294290374769460358600042151720978627063238533439133204472613989753413890971888884490536849405134320320943752327952629674195050059939507980657154401923694038244105060097917971299741920697437659439682076005356222481184737820061642775608231640687012348404575884252552495844622825546303194520405136830427397605184346785431465514458156235258279745370308322808777406691428808201984384461784442511427116420643405193040837583859364631287339166986893666706114246794342519694087379609590739625699068798304529157852583227362666327940712300582589254241656504172868426327928072975863256171653943909327002094735636545685746760117449263256121952991720981687970123892688096449272966781342154267045001625681116372531887143748065226074351763229280684892753981713160228137747424732856372452725185048543240307603946630897861292632668650437312261424374865309054983039829169853992448090688252186146386682310217745317022553335379863940417826425947954248873218783125538402780172300336563840974772048777845780845918722647106097144826363979845480532406341025500673386884450811354946013104479508073914717703571755860261031123315851529198286844728590553957799248940341202382193839462117166563839873301799347039197053740126559430877952359372503689254687424643048415126238750249652425892983967190285022063043360575905054203182204350865774131845960811110043354114996802097887315533239909458949259793389840182622376374050857833247019250104740243917643858439669229777183848034029319665263676971167839445731866646331366480636984517488139955929626096073704242345048301006452676854343881851603448311247825632220264698010773735266425889474518530272592414089348887114282365508977577660002604422558536017984373476208302887167242523804319644799964367577146868408760610290514717810188051228343562101247261606871825432976645328315668890248825094971801405883499799540917160094102272756539567601070102024659176521840587979633009136552323526717669430532686826546809755472984346810855586332434132928732775327878834218653608250716878155296709399275607441178893383449554886256593214660867053638962039322253051281994419200619526973345063675181889394383103317555617918825610170777697101228914444364887066929275107391900231527633083525348874249196631100588222126860625006926501393532635839624243589649501115747822061103741328419727598935995432112243419378908992459437819442108780722602229068582843527312650310128244963817517897916612148975240670566096110987086424277214402804449102437637237158063050784473815376865763303957980119404241721327522854371975671875907136385857838637264401387801614087272727327998393988326977747720226389686744804037320950044792815876393503419547990397868471071041094526780913276422535415499540193359249349139523188365960673603889633680950863472117164976689728949040480401432406803315098265195832269841823406610883000468825551163125802725997464201895716909771377386288156810191977999022491162699954732071336639988367501021746352372560218533764441777165478212649885231366125559179412062451624610627439489536033358752977596399189263981514544171632188748379857148394070737990237183065345040272171087875927540388825489372190953456384260496791541812208883935580886300785346158590614091546138136600480935970692250100464687985062498144667552251909784883966843002130975660519142253460647634756454829735131943016843541746745333511075391025821347834687919110815368628399805229079017460533708509599279769625011447083102414569928994375316889518636310200834199359617610415770672687335103059504177169750796839812859760614237012009743318696607008019463864468130928887087005665911776575905336767998604237132467332483724506472856423520460910317662165378481673803441216582160188290757858066262145021030209265165261124682153175769631259180043704531480884439969625518076890360492381470912920413546236709073723509652912863988488089151238207057298228192655167796538226645688562713125990864733115220605807910562182852192604098437587594940322551056658887550647543692761596647642448484909890352948174051802122957280963081564113710687513473450032032754576044016966553531832635273278732893583219911059643996178879800815904094838934066320942090577392388576958250182966164068570210227016995875934823807068656800971517744935168900825549325386762996210623494605906695369303970930623211758429750635759483885219562897786702102977853498240463886412243519332790089290347590074073202789564228967805658001163977530678929795464946422941935495758801000314980521118862022758918687525384512717198475144160430630849773199844669837358114820325321152779185772495099834310165881993582188578924358191854418826665077006163704979168526001142839659139337767348649934163754202011118637945221348855474535481672674340495979537387806693670407841313986229996788554689461701767998422932761962549228460768988467530134000035462631459275268190344041835354291496501424070285695580137600016755136370701862708708631164272100946541546745266978787010309956809039377260162933191767218330033761939186168071229486675992877114616097123536250979583717073094644025477995019117833986470928035372613729634680686009814728669620783018633455364412570989612959805209993143490650854773854150864819716719608169885132690845435518495995648789213286512295449505981518273133333524221470594993628374752163663623961282965352380979347356679305177369484015461839003768521864863846346214337260082364302288235618739482647789892211814601781740050701190829723911484897100726015848248383456249305169431822551681251263651627694302565756882175544749135664374017094372596351473075610560302802654375110664972868688243647062688506203922284874623635008179994791227379089374152693874394758592858841728918636795188505992119044665627604021196634670632601775308351112658231230511444513719242314288743982606705232163280088237081784797707479574854647792645137030110464625172048349633486492739607808544498008622663203034832627180306177462721820486756051357317975804855913272696022807648537474256166978718409915739699500774930672305340408419748477635036445522001915325626227480227775196250500380643763429823603843094697296992080729587600585927264233027130449832608038782794546550011706290789885057286590784987510598476425194711568459549078278514903676681466074503337556711273300214573437151342776059760248170075519099502337934753387804613960561288489783462396153357883354960900343928302720669682935419553421739680612965140906689401247338993451420598984145502251870792952286380239112125022446216813231451854315539883285048393262596760717086094834822098548364679814344401169294570381342859884544056067084240693903490217338450329808230348701585100060506903218323351941344177069858880217331653626466714995197408256226215592506075837219145119606146911724392318679972815330542966056200084689167630156283073174828401826764917898254009777459471642049940683246447915341068206722058425504378400157899772633741912166587132750679067245872257599142643585540277860407523656798774493439515617734334322419783455146498473512804663054743957675377838577386417683038788407314367930827338059147132884524174264351978848366065264925237734348400541597816138165069487772885940413477839662827649184049770703369690973063757880220689200313108807576072045850323641596464679060371768475617988650957186146962921564287193602872117680909242449152355048939016141649312808481083710840146503313973357414427885442940637115897788174560235887596216770926698978642254080869759595196871096629043035016198886524044368735765536708619859058945851154507023765011360949753450583460130680019165009143716734300484180928122410499548676932329725530817444808520642817961413797513851672304234366136874484218796344965438097595006376848042761681419251312749230989631461077468344629054726296858931263486834432625685731716661135969179720272179884294420208304709293121925719692441088697679064542558844399010656268988563830564649793773236687159109648265925202655055306173779096389954523814614555577503499787295367989945053091980155430184418403408742208265349058522311382748344451350526244391587458789770644732279682265654982188207795925508897860027698962312500316403391135661320373732676611494973357714519161127206333002103772295818545574800654704880793825433477299747567106499384862026985118285194692576705580303975412322391690622812982478101996334125370560494667645389055241616847187531799611305346292248847797116300434519232557421596555451186645458378955346561823818761103936086605865774328120890583530509956075482235961637181466422843516006467677544895379117750150416592709097340684593777209880117338106538423161207573911283897959290615082566570961783753471916059832869144596973331781621941363945922013703591440848739890877123260223498483237334367054982261536608501740035771118456484623948357434952048594331862762562230233425798681783361314742233942521882037808924292770190731566020733452795437541266241689451181008030630372330002364586314958932296328840891373259598069887443061844283266776267426195011592553309381726933702774213681389621258695509782905688890118246874564504571758475022107372682894224210385639255957315966240604062793216354888381768045783834727109395035976068043261334429688357084138748125811475498423111759510547543406845156141857180486927258653818503991083539288462626385058387588912620822873051429732767732867768064809206567958263860246622505355613156952244199988819427252220557717758637607989210509883327904627858050324144331457276321352238789379515655815018678271962857880960550278004424901791204943680502243670063855303299880021896779255015345833873941116889948069112470807368053887916200998446168380628907249297043951029653795067353246460388162173831485928955931574924401339958704762311055823678533589827348334787647218757135218260483535002584679284135869632791016280924628434967838985720502545606476380511872479035953315844251703273796171845479835362548533721629019672819755545521834228944216772876763104821038116141936200365383833685909535983881018502414872235290564820953751716927740351164103714944438763969665457120031593108627164916083580940939851319778752106148003165044341558355050362798684548159080193262702416227816611960808525163981647494777192329942339566019471880214524347955424440182446222368320096503424270993715805388349768194083933927745062429472068573827747217434384634261207749260528213528458073839151406596501447773343884755743832439169957958318283546077101285566857023916924278768340368320570982228875185157359209288016711768519164293553119257951639432852482037891854387409100482147195590022937664241402710450253745357414525202617120658453981204480925250786349001658167617286864790220892246854590042165820296285238559727149308072346907286782404009569352890745799693474607927636862900045211588535000955410522393664637347603320517107046893673461344354143616391165157658785455445104991512486683372080235108384397858981625564628972284999012142981073217138071218971513784029669818784375078665207418728117830488153337969551652240177264667452157973712552633621711398323482335337132329171776177108156390893613323602562796132331228758412764429637105221581254546594264413394951995012455341942188035539447487872180792722910788249876393334989601257896637226218662789077586039654610999825361763109907329869801797263362822773447290032763489210524160016396382215879423365438998664030470930783021050582572124433208415335090090990055671519039326697087475042068624870518030386396813680971775019526799105871484602807348726679531275874036369085367624722360209500985817073075818155540743839254344863532361567572805873352801658947704478206433243346938313864741826592887462052351220868267893085629238327301425944351004417216201667707635553471853126586175465443103676289446537330909400549924033292855098606356205074075644576996162022224098935587457496843441505512348612477937154669420601134372482695425904212668149997306426526721866632508252182424195735553238004169153713796923040655243937567007509193573066124805682414061378348348216239291255600654226883617040694823147412882939971297152641121736775744564012661905534883306878727951399689454171685561846109907260146162754203982222551363741430063039792288473637833911393188680583608815891268263209157506669298030984571686925551012943756423809335224922991150073895655613091855015237533111536592174214881594615438954198530487511654368239534146750390592459226549369751082657807730445856937122442268660166828301720432691000305125651227187896360524437291598846232389070319301056906197032020803928916670418159559513492599772567102700077632799739851601086408486928327908356917529117735024355525192377480427817045778270343326683240078374014229142476316292075546626612860096127977903382996168969213231330709268863973538048103452943837106838634082067275956609566165939078022264015097775314635404491231252291214127048765553641769481175322693973627754939091047787065344674835141507465377493859804889011005615321911828524350639975806552376417717786850255144079148636259539287408087557978209516170253282947075747154961455356154441310820495408724046420737627480543514325754662651188590643811150792173155773284747657304223990105987008578187391185164061527041912719607686946038140703238252894012303712766721168709938319143605278775328069366174647051498226643808132582337843486099796299766013704395825171834080566904579061919103720199183778103909956735004713555404828351628696103609045773741489701314778937325084730710083738175197185653332714291940700060144266173336459244521716778836213569977053802795153176773477415493097637051478265983561268853181672994036742789045948625071365405360462486319246212758056295767332107408268247824966021288395231817917009104640087531445166600122890041422273308285166992158561661329693161339243295147095654311424936304941854335221062184240429036925522060134488190114526462899721801506332670654953892917133717289188044722744859987498868390000480891841937772705591129267406079075081059654139455500361239399786560807644197569676614815956476683212703775896214348872619018511328178276717724340524600296075956708438760295821831562123699470678740057502942048592542098072618594367878727252160117175136675112742674623745356171419235930148187945273165789641488027656568653946974151094031284003610036718550612037055872011431968056631096203993133727941606433691315050186689433897223025988666253964580656096137449724638389240337785219270342257015039571187792848033498964859804304872852641505217901550105659749278557927153770005505999804480840427746608299357416707518819613170695045422212419752337991133824773529654651775110207908486764127260452595341850870977595982828218812239537376143779056650341629601694166490977527335110032343483963063190132034552091177510706776854715753894989218520294510698044106434386026825228642699701214875601994409158731505184811892545990998293466320551985930648612416684844229546863542014524747918403696691048332397029756025489324272817404014435143472439215641713056736372625303869662931244056090394239016318272160704999043339799686975699414033667932517399049962206418475046712208353376088904377308467951982318658126325412848314819725696473095170173245216809186886678982432277074096640006310772875485588374362751763483111284464870385975955202603293323460495329335725288041863985947115890346647151161825937438123500151731553833321653055111290925055940492047458298234679147931543550274507488869134927272994056764328983783174535010266118365341898389702183711320622032548243001101144398872225126232976470964178920654720499930422521221001009112754943035045908328839212440413146657074719948046141052637264228487374117023731228721907969766632336108076980413717698494503178310041313507649573113286313659576583122733331835255717159635276191363526111112682222916174012109309619947694720237629361385064926235808679353951662981333416306050770101015989303174600335247052235412448614262185376373807022485800744419547592477370528421043791000527347516022621526685508611746497537507514184912677057500946348874223022943744126731869177275633375800887167695064009600293350563680677598996638972502410260087757778651775096638924458604537683983858756390965390548478177232853299767142635634931812621126749682360239804475975920474249387963982368686987246052807630904723385454570509016048881347767911804928395867771016332454656065236154921605189508018725594576834741470767831186207872757565850836772726769424770163622312163400652311017114115009935316364952991015283186085030965528226450505396374675122992245349060718384559475862529755215418941114771512913424859119079565960466288593100330443128511962682083441278478892358411497602568145528558354975565852743006690946018651967842108492925507880854510367895572303258434790833978677893649310167041046339832755261799764897193097882713472856911336908899715765720932946668626733301533668199997011157559130969110807050818936042062463788720827566398240843584486316618949014785525386908368350175018847871369868314755023403113691710364395507999919826195289649620356749342471046117988841051272365180194302085576768590336914515145406484139094417038356502175980121943189906860203719333037252649648071526963916945084938104392815434282001646514706273733417459063927624590547021629016183339920992279896643688789064388807991749537847466794965401381636572678701711655621384380366403013688005081235157452144646537850057176708801956685593044624764944500732762921909119661821642713449428791276971618476549295257996615401055507643782899897498957342274231182639343730706282960638800598872353746676956515332454940498095848709714277088828849564925757287778860567457055853373660001296727356837817801794414976984784676371653926938519264584403229821884953145990064157985519045006348402303518803753217135547681350061012679826260825382020226249740186817110558016675655355705456372963989035463449974787196792622697057163399602518631083480338104983023414393627228164663861621962077382430095735988646325972896889549719385957685559186631497824281153766881026789004141694707446915632653752948470105905646395276456123545628529674849701608976549520926270547379614479807284238594487624863140101626288486224418598511192324619573144214577711190550369167351133007945234085896242075595962148157055195737062484714701830602080899557257777491964464137455358154868648500486915575172919259938477745794107146191219306755587001081315868739976585597278038002437860149638754244734593614826358956939129902869542462011800345730864226779410252816052087286015734345378065317671834280009650328664211871254258573401517626683259626756632902054472118792105667033740471842862136895221267136437411716302454029545749392101456547205525264010563909118669721136715750427369245908518154872560932740244819201028021069140679495334182465732808084019409672551822116208785675105532618147272508312144892519354955961468356802609006828669386634559816540817295841044857498677126071928131555377796167727191899110890052999961771049207108517255285259674694114966987549203613829785658584267127616811198368597694938284472918246982339882699419587618915863483023155043287881084208885528301303003364151396569455528118044751379567023592522781240427329570602764589727338353768605763704045861749419381206979503744428274969947778418176660585425273322358113927721159682679248103353192291297788116845510673766457090704322209704841836284502618066071853720196600145048322688827753380350177804298032160815634212432295423318941252373527641666694140036729707663853086095648345838458662656774536850080580810465471749864324176962121447829179405520877277738110995319962221833544600792323457078627543411091948399493155857489354548357266202755770936532371351847556837849632959034176662817698311822458312938338610939584067969497017715875898955242059098226090815223628704835410120931581545845551150776875621096651704695292559172226831231923748659333913678960923189732982835482511954039396808559214466554510899567728027100728044122665380058911494484223325748974224306006074431769959758162139062721440099895652235281058578471613956686828729896591098155254000774552599704242779217079415083222177119702108328348501914785396702654527106441114915133189347616848145757116528403033957243419753794094757515221740260882562062958186011517459216428617470158227660754655613464461207804285143175579070400684502793399130096745659454617333109836594604360534900439824530868151610460318242350161204412498031600757548086190970868236326542308268920582298135651700092228695609541826821650873562024604928798484321420064919427840327330384789187750922934400349684454464250030718781869632821289212373721557955352326062432212690570750725327380982536446531752776354465033517153661080411539026725856526123110154823402326322459850661041649822293809669518609242722313097159918999777517890136670224888929913950554625199193612922033352394747641676892775926806743128579479629449723967396572918472428495146123260037287203587966350895585399783159240789170689007351018549447004473992525113366732581187270475505956449656149117377398647347908343663820333144728930112330698254732568880665067238646474632035528041456779927783083688056909955695755069753322155519816543267020717598163483523539597671664234684747674536075766772267646957206470681666104693224037458806474233717143053107694529143503252700263127863377893098497640034921180974952345833960211012064963819873872411371207578113062041036856084000852425069420411681367454136171205018207775796205543526158117585419612466647427809777696410638825617965339019898150192733262301773157636710034950595690949290862835538116676786892800538385245824562540859872414641254694358142009946364392383707113533396134442669438287008651209125617731167937475400664620690228073419223160267622660441222975844307516547121167270691638641402716604783188014313772056592707342399258463721385013126385829122841656959647088270388463625187131722364894902866846197751478048183511333770731363310870067145722403766962767885850227456007968846221700348943371478587677083910827179784635475431992678436812222703943882555355356388462340490699467527456686887881623597689302540496362900887251923879567435036207105317605271226888620907204201846725678697484670403193647290255033521605114584521638456825152257868335792488929697191643831365602723398568703959152894694206646578336421104782975763061880688786779021361655245204249131632317394877108382987826321881267486692848275135359591803588748792508280396033016396123186618105855471500886265674611195991859936840534348654305414843765348475047613404164673762840171458765986113227146423356406438375535816990516908649246591648356941063871728496879250610697810730499912735210554268363736312061269043841102440254494724708546358858355154176368130738866694964914499094985070724619021551627373308140492405007641484957307547904309458987321201211192198002864884561614657941505190714094604136022046450731931100895303401809137811841954182049800199552503688362841351590772361716535243851376568609928207573829057967755759440301969705646522885540783045124203960186139387621653914944705155511880033260274067753947270727793029221707918011979250402665418350446199548730396817440749470211548518831172132742514997150011802216753381746897499341109666849941519477538174710624007611209521300001369246921830212549668120120827735776675651387276153172231934652639773618301060081314028287155964502525706350840640996573298486534403660435478912046294864003657869488564475427215051652972758630028673150770447990470697449938572459465372484496984248661886441949166885003384487978165750698967785478532218837052604853718195689982558452123722984130661835976780114947066851593879209882982149278409160068395030029301350541140857934606104580249934503288155466302146002048967914213384689779784146862680963217925730594138016597568351159376352525970227434764523400697168454278559772304003522812651250062593121273737837566383296564471184681689419030666950629977138548565355423048877187735692480957737050232761912854054937571957965623351575689705039291215376747593524655097191785941047601317724481291980579048344361874776968107619719517827352414365525404932927169956068706772645683495383647758855645875648673984671924221316136631265462680497205982817123857488321173131727282386102816432278240893456422463621550873945610056438714771466642276072718600563814866643889876824318104226773559303836197658579527702030877545194428502405252978716394220386931784729636067051239251803223173478493038973186032582486578285318332638569488108439650326387354378838366676193463670489681930502751010245188732463066227595397025785988953150877522875326982591155613877094888380168461404375015998374305228162793027669333471687691524487811774002811719542275921873244160396384183419857740659221327353464446070568416987158958580907890819330947355977268096729463421858958101129548485655382594838430118082849714748603043396754291298704315708352996632066130576177058728852860417929356043108113105592399100484667408801635656297565535262614128307807958715639848443254700958691646150631193870168937180791916139701826007959923235684532157640541101429556562518035247356891862553528307038006292206256137819599044990785415928748103911376886531330272325122094710610935207540882425210465788615758428538044233725320817776957832845563794186315420576639049421046543576073081488965278413500348337418251336804430902396351125541793509508211291147884148693660302762999897466633924717654492188828788126187408765636429016007535399664346571445333773511965975071208004376007708698064824718800183260046893702944823132255119851548898062042914346984667569218576190403216549456785733334212455870650093587123279511124860418611941292749063253505870321336207066343394754977242741131989942799086723797868697803560907846061156296343299712462957417036606684207826231470563739408748495059333282252379058960131621536703586148884035015916020752800589673843384357916344274832813365846312447620558851842589089405574126363171289221427060490756878399845416433887297492890944355073714834568545686827089933759571518284045439082352701637899092867935287894177339789373361824070451074581100859684482576140767668288900714770855478443016928046071712176995131383234905858744451239430681423232806793047103291509750657497965503434407372104313488130396795514831289872153393509851672393840625243971429560362246539796692572739998824461620268291783107003453333952088889742119521544285243489230054770373945844623550265012301243319299319443860434248124578916216443533208907940936490952613933855882342140060966646800439544178426488326552600088103153692201357859654459590800745481162990401803614520476238627233414713864006704359028160867036716517548895619744999776331680382196625823208052028993890478944854833984425281186317087955724778891858893247400708176416024802907995752704434304848479177094538118351436614229884631531687799998117192623546469691061840870417955490223991381155423101945161510821418454298538829203143577315305289827100203300834061134643989317789089486587917935662258172575740053441650799753810914818721878008205051833170658175991861645083530847391331846957626930413881047921618800856304463544612010015429623842336449633467801887323083455954677517863430927501278204481188205655508362700901725946604920025646342225205623912942783980192903992141933896092866457199161806186091341310269576675679136763648439161131284241744005726491734773569984878517097611553720132300668557725524596763395589647198543978272959743768505446226374064505922938466101289383125812033474667634614540720609034620013504861532247335768102755560251733937348821876186539321252396403252259621770148624200875589807432155786651821452971617336338806367819420371117524080855365430458059244943379836633323707802337440512382995213894892600539384812168520886504075470614584729561818022912345650268966212611100453114033034997488659494764042117332701669212378183229717803040069795110995335407973130983962594671346502180160046055834508648750006426258443251340972672512268032608934648444649536628292463467714340464761510277968495321831899860378915499901620027326058276694496419156230445913676165681082497482500908280421818671968105076425865414770821855997501751610841364770098880422937766080700257832057736595154273668490741785414711174938816956226056303784738041389293527847677428401971589002707061076915116608816480181639982047655305580829130432971879273478426414152560658281396999639246571734515762665460302805106890585545813124153509630231955317223549525461172974646675322388260832848644066541089041485912054172303099193795072490569387172236540190606489097066946662363155496573290057223151704707982268502483988889090791330480379319747827830299279013672897579419781931079355125048135297142175095506186028307786450061589052711461496735371108330438453995810982523271136700303023427098262193807378825935088140597603398299099701848490619858980667885043056308693549047156651287965547337924008807883803039858350652137501288836770581875899881387178040109212351369871562702827509413206105118156031826818459166719179819093203918805201796991337941142652511191890350672523360521062052977119435245507295183101531503628812328443719345692072686111460229376963437565166644672115811261426194726365945886188378221728073532122333148835751886188315901293483904791624105931947911058223702611934880460021138750989050662354207972150701342817104937419539746035241658909146447876371783654427560424216831518381257384331584771405807012074899059787071412549173179724013853155534890411157551016097103988750270301108411524438907504032417809346977708593466504730790435545943635568147848883975095341088521227677710818292917161427648938328449137689795565363112790334484714777442262379664465850902336166455870391021905904312334274297700483162626166345700696610998071443144876690879351691031743286375015555447766628270932899986002859608439436406481648065609038849908464831459699758292865005524158361797963488163233598097922748617184185092070761247288342145871994161743758459161516575353178278137142142055185160685655828823072855620628906485757208368588637471306013603271589514377375737633762637144016669503813695400048948013194203287438543286962170037413564896092338282219773684632552624443560824426628578618092791908162607845631643252308863602977626966922298680001970693952107371076082633333902921023328643053637441056389548821949998248197404594937155263927220231398451384880538282393299063169653673858439944767728441041886125847918603162707340722272927898376219242880416090318040796860910081259089911105557290736942620922860083456748283522562578657795069135319856642688622339725243798512159708127473011496431999430869780411103284331403656852948347562150981660056307412011518020840898188766551366745639888076755605284351440121065678326803548995611266384893152819348759230047265171557643630427523986167565152459735748957000573202422025216385657972671003578428310895034904382591523749922457479503949621919158591264960883552480763130541366434706726910774969759228189150285116921639025788712312244239619094691370977844213328221953689634383810839486866473409137284406937863940458145128578959431756885372369844208434563762975048137446587068535076811866935360507139331263145685236983206099784301818045020939683033628337876050653675277495018904565971069217861267562943829767340443344624280326628889066307513502360958563125983811686906550564750862603326331447132394128536963760272889403061396240163347941952575687055454068457405116958190146446231180778971655962294046676971945603978474825021332983366506635846318198623008784857248027963353965701763133449260102601326780721752032683636183824087635931753902874464815711996897448013901468497833831520498885177254093682538831554369254928064160755268079422140134157792532918336541045152310528641595564182776340189659775931481957733346665813046661820586330975101835749701559067908993244674087946953064659388665302243897172564340052665589597195224471151427280077002178204328398461849265013126452565913951785415113263072827196475273947679670589036281830465407040864653755155708742929865048495747817021752867224544911579606187504462846863552747955282950085490083531345930690887828329106856274330353513246467085063026269673743373334056632621971201159337894936377387145032849267359821113500169544205821552028172445540086696510652270052284370474629480234703373212181403110665657509644387606442981542770953116090500105923342974039173335026350650443250969668736778476587062537398625466401410929377554043457113340421429673304000234455716445366510226618203579996831990071032236362793313758406053654488325552983015309412622010792083986324718293692029744261977822831244583944135556735513475376747016322304031679934628665240220438377621810888036698270197693737001655650254276826348659310383510526596759007149368272971312262371883077873554746798700410983764062500609714020652652278555513919682759526568650893820897006625784320049224784564721680232990721647709482494939734792607368641857461653798084198218951732871321076307642674166800428944052294407231484073155049817435534377768138597607335802518242979301293646737050088168528489169488941138917667654932416220108047390969991277154995238577934459102068026833911456493178018763989602524191215900233280089049565501397920699553618393246900890592396502886761322654170888102608119008254673589991133348370256698553282613650073477772691539131376396710065318245523732739372643842085246340975620621521232164707146643350556476572764473062981978536901621480225381969760519702936847341534231052352942934937197868532170560561547701003309890639729499488701164822589624746004547820444900501170938974044262158480666851921853318596113149374736898158340255834548727996038883185140843659596152791094465522406662445510622061339379731311327668734645315901187805126772220580332057561361152738056773490933102144882874359267676691309856988748097421621228980814769470594932131747534379731308354949530169120781341043308383348810415404288608807528940884264129925669792729436015928056239259167763431469626022214043141363417025472054196355991775357513849649800404664865639990694586658158268923065904856352969195092496157172459533307348580155893156650645570661476826945251613867613902997448157351446863393245917394597089016661529596741436156706060400921224471825710960789203479126435431127031293747713925869550542934281203281240707763353828437745698473584279124839383526010841806692598336444537438211507857376500546203046013994122998637187985368610063230646950568899413636539431664607397468268921599700207762025760655874786351746387687606162563111126082984856741548653625561348583762897534337974578994647191324777028935552001988968396595195095624937229509412065736069325175225417643230581663446007345824761754032892843399056996648375276505931971833582098947142718200553756409357253192742594508835021069215112274203645095279378995920904089569049024540211133318069349371550790147430922376700147805286189867552578810071656853015987922289878861768937608592182809474238735782407268743489865972001159245931016229595907905068726764026735790642582486916572091252031045311711326168367646334844537865209933623375397436834445122184371405282484665578007545055188532783072856856427354008782702039353300334044777525240953122246617150765761699701177924989611766279287633956268909020807805086492884462063406723920990408003803590744855639378499578085298599968423648380120449910771200468229514134244874885452267010857678427367633871233757355409332090778675922479831902700985684326420209767533169551539989512664134742559218312521991983575281661339967757506937118927540996011861821856344154661737423349754682060023426800402475341286620286763829641217321432569793556350682574243469556127963012926043297839536855628834184965555559656501293289128743411151270139915632195170468972855593553674146097253183844076758882176834733023045719198403315882773441755677255218369272306160350949636496637747594775839341935379083820035022696243733558952280643168053299981514012363809626747460756323279256785354739122741647841876296923710846411390204981875419472468614398678340246752913551388522959664411733033739706868483984038337644694450290923753197475528273635108228857772030500443472768490998711662115466822579373110974739939057538708506283080331210376628273452495776112854185044172298864065374483851165056990639005503248535098298935374031554319207807662025233390388629892055091126193088973467915375413630127166324900979403537228006408740097152196328752591103595244845296109592825100860759335298951855823528957632275106038357912215232510646887961783760522935818686992191381469334581945932554252712507266582938198247956875520485247781703685656739709649653685345325913292951298583274484385516681841863371338614422602449091992719802950795407032435626824548756574267453925361386890643200446867946249193296247312224581988624144768254786062416162530067390101433410794044226267757077205850714437074738932749112491636299550478127430869343667347706187376805983661013478739330840532208628038533068011124433086687263725764466919089922830742999917362258287888600425101814795827603337447147646467893573646734896562203590798284762718719283503450808355260455086992456381722433848963107808198520122607764372317934124056158187697110584663690603214600677647137779310440083234918977318295429275130219100133990628020253921279484170140870161417190135650178818082136694328749620535764276093623038067048458818750684305960725595919149508941737194224231706680432849059596968989986535408046620932915771539369458734697102837209535811275427828417311187531891722836281603374988143845215229108264246043576313396839290226632575073974810990906448967531791490677773123419037362871068426159546820949248482167961467894207421042748157209023949600313119172199455372848912402980841766730318611789938249780471636672076288631614715924300948564133778922070096797259933197765842981205093887552549219317095376218754429604889196313085471919244829045910219540655075008839477118329723356626409405957183421731545053134543552450472910202843886180059176030905427967552804786660752621791694193861881751069580781077322640078344939851489101480873365043746680960668653384697513347291412224831189424338873240240597508761393941216517996337796174762455302095843739952561683074189355972270737450422676065592691072510171290471795085641117223457638629581920635847247436672330397104277921224543096479247364553758349396585830832492211778962742339204489640566980020771330349584192153646348525470379188166846204775058587484772101096023472713942569952383012682784667578697233263562651395053179182223307381332541925399264126748662392131972452721940106058223434264808331001240737414498918396021647203657028903052050280323430672930732998848283223814503318142049170483341446969459033649466684457402621657843214550674172008802239384567373873383911654676679211562155268285858237380650400818813727243099914273913584661055032750280119009827801962230507670535909142622342062661709156483786533207085543553085536836916986877058954553369697609349717294994781086503416455300157412134667438487782905899933739518644698572627196346946363671820803067894415426014775947993631417917829936008909966308266875463097005144046427264692945822662676076555370397613871444866713925161363732552835447693492386919787294809761953560346860764949903196676208177696112123392926014612086435636100003694294629611233276245320665098852338351301735456786764065482992899715755016944694824476148486900563748920416281443508615700108058441995970650084478774988490041807311106703251058296760914683309501652670943975445828803184411340055933178921605775120929385528201470446102266910530372741528813390848021213852515147768374377323636269693651012901977284259322092345942630563839838277080875372236530949446231000509318326748940085942710251461223113070063582264158278267416539476557873366872424359089747336179882298047332023819391908736192001210959397092898860405081542990309190328690525677517653759905322645986775858961489145267705913134584624692401605129330466457416739295430647696713519648036823578707044845947880463137349032270332896031232341266980232206181675981593794295963301740472105493732432397352361426445429821303682682889812468771060853933593926166705059124818483185926950883283221217905542495118640229663803338519994107548696363616777733680067666572015885773991532289427258509540946984990483692325003084763505070648700239155664444289712825530798247450721852245351922367587667347521452576530838856398124095245432032410385195798396521737861066287920199511044198940232607472006073552866216189601901389615769571447749729211483956430329690406188611855297725485727428867190876403353504385616795731923372008754740007276277929183923018859222317505481594611625572830430326027198827915607648144882455768408119087379444743606989597470977004109543620959810174288986010192281915662351254592833581673961943614413633767398331219826510540090756891794537703195886401409787411747555324003056168542517055347194517391335082454369676831662677200356906206776138453072588646085221999840832487137718858284324675465112216669848310122684313729737945596880719147987597272842993736792152408169072603025326242374736726737874590139106671078853520885685941765498832247876542650111713516112072273422713131439675443279851817273980616958629597479709918447267829030346953022251463638309021698591329558539822189720099981527288974126232097724572456553309371018022632635746989464571461272836148558057456822234812747189176265976258946335323328270595691267799966891044185668851418981422489489649481572328705626018726603261748261413117552230587592520577816539455857411178299607870951634835736364878079547016956299155907522565238026954228719171371731993498836971312601975501226790845412456965983450587767431555068750238321693844878904337724103453735832249429022625224452670759847505877734364166120586735745570131006454857727606686294504700316177387782539491571752112016422778490295182762466166075003393763468462615431967836664736780939847685684157953625267147185943139034192450524278414029665038678359310848268548969002378379755909548247034961144624817737133435127700047882619466456637990954063083433010502493620928135943338524079882743144071925546743144871359704325918422900666367486167698373009006741618554786123127415255382740891237438230362487030385676750985951396646076944844899154102322205259312537120818203000536364030695464815465194481875729940498012514602410704588771397416234139655598565002005512800994064763620544420400352889744862926823873982135866506322432489001171275232602150181327704582227428528322894415373058779956615951612190016266826214894719645843507237292901705878059057383469128169574262629245124438929125725635550593799507148232531395063133957958704398319807123488810160010286132787452837388885873764705696550201504018671865386714951999346189773584447580803472260819881486885574853900964883820376276445196163685839469644853378812529597878959499321777639696682298521995346082626854559887430855153402452718326964810611764072164912172122173362785502449767334874291908725713221616418004594041024816475839856961195147009695134924522262412048890533436216044512808838100583295438461494509603103404079503923968951383365727883073351245516292862969958545566537431269750882298214410401355903304525693607953690176670973595790053494913588184630512373595031948827961733458986628984181065214408288928414563485138824418777109385803334743436773873485107158195472250628561177158770796754013508480029473626441933320353446766255125088724239197558151893010414587244867907589450360578210309316294014449668809967534195315298302119297690481719462791165460695546137823498260138605532605999464480893911066713224908439438767212745437291061039480825809715663655101401296980583224917441017142348907798247773355707578612250815068491457542698354004540112242059676812372643571886841551050599410715841023574015907821472700820888993929344808163914347989979863771301860426880003044901486985566818680174018122377283938622462201063961132225755067129832356581073591560321512456994601474813990517178183536806178140643074024267636430360568750245516439019783792020697150216900904283275649629217450811120837768855926703215539707328814458291273617419481402321147205129419785309035251433085556558869436824945765390737697058501869076754117209743083916306785401489041577512382458327118034847898185461302320852958609038460908615325067872367185955887703283236337009622866289768179346027959479030973885106290620562287067976358065199225749169673091528162192118163847996840808035404302642527046432722655903817014061176155671836017132081624944767881448140308808502065455286947444873361753556919121284395158451067672966347345669262730859853470915545163163185008269719222048948632247716166856538464995355115234693762870787694221741929477284397527528929919001598595005853418609912685480629517794956868924867239679988342692323367334147859157619131043965242396830063001792895040223185365197513511215530383634460879597432899869422441328650160670303183453522705361668777796953680596703291864075261426690639985785930255188981967249435330297139151722199013968836419620171257677523871853559474288308655916877488197381266678497327963190899895278472988618093363006411678948159841143744014697056287690130144601285613594762972760927429556766167420430759028348064246741493535842217770474528653721387723219982391087217335782227476447948507249760854066497558774332868872920441818675053555012956570436401737522980870220316186739463064016680082513978265136002344891552323142464237794892124619634815874412500539775358344727325171892869127021667992389212061956449898272800968455460747632416152978324262935078456713280844457784141953498364977604664392558845891181100879046824163911616727821941182758572888961241871364159248119355225132665539673221031405020841208164980883913032863960785830076930209894997639246192664251454197302064788670454904654189505007782170864513700681155278378479962954035147431934860440576710168487168921467989429259269894098695096491448634544372716825116553730070854111871930117509652098326250542096118202009215631005592395952900536895432822631007541635147771839890272395392917171401754423949447883044848089187555280119127850146584807156415203415995888140289254067696043707966292152700126834926011610515829329986591001213832404343496093126721923306470077902382120146207688048705206396888474269324384337045728481563890032583518601274701965625203558747379662090661380979081863330684411402697864259194717961498613888895302277500209498937089277374164696925497799968448089119580457042599879187070088241836081153845473696810429260436935885836946281984102513296357006710870680185199663382709431411492215719403923803923647002225306435489183655606823579692088940857525263479598460926744264799373818044992209607530105102774259457043882848438159118358973165660952620770207080313771904454025638219402627691317922999949689009896391504204095723895039092875020490611756137712351797927619719466496124962553668371265998708968021679161915450281227903640237735550329195105123047536650730205944220788674556025599666977083699236223040661410488043146804979674110752635428540877030576097332878625473676194459413078130995493485560167591786489752558115893584856054255198159179109829986529279272064436742587608185162705626907530315296200639387823384014730562367543450833840218549285782817344356552278257331976006352304349302730974730975099258941548438317305356179989338740311010513706823058200251885184041483228956140643877787517334455384664510416022558491771520871657517499880818013227830647026264038877753499389195687677932946029019643538236409692647009240263552668410196626130614154482917282051664378457118161470554547330118648807075920675578632494970182747162270116641148227639863103115559074195195349410481133158112545959628057968172662742508490341883134568736846651224967990409144210445794273161079077324870920871502407968333460706182789631188340598431248305231211563820574105124704997772115756395363454528548840970056340334144251922209433754894436821457967908009962940144516319669147139107149148690157862100235408926429627939327659003740390043568451134498556530887596036148792001306230701098686814115512762402566875776056995827706402289907786661465599574748928791146674325455185476580163137898185459814581408489536501130442580366716282963876965790664333681712255959943163081261800171053208657119801747635893172079136830464506008256065465390280122187795231382508789883174399137911807459578647161595846704957267869362653895000857408081488548814188010938462556263172148433304510345029610730438298197774942243802486910920199925181786276750204149178565576788983862107820478594904802491784635046355143994233879700724613338577375610743546109704819623741964357513892157470246280224051676826954424025125656301939352059965181274929898203052153182171266473915348699000681775869890073246227821641240012381759651887767131755680593622626790798371044016323294275264275385179423326037089307333026609078772510356829625465723180736916660039240207224270557251506580537694403559798668397075372463147888705057479615123924729912184272382409534261772575657076963153811737414466692649497238962552042064812866536893244608566285611507597350323305001929421295040946860528675247028507514917504944330224391833392533981895809336578436403334661528444285993140346271572370650122032066562730525247695643797142656524339646075124847043733309530659382249197995933418202795832937946403703211108024432892887922616131339444184912425894296479045345764021728592423827122490740661157478239345381931423764825279611594260693339235944115026626677414003571373827790299571099394021339855174690425976596401428701842332025121329883291443183944291792829229796539007264094856326110605115706309315614313890997502303462929203984892374303748822119595402397799147013724040209627010217539346669667673693026575499210553195038123048173842501232124899498506308959030780546457686792413321087280773179241163266338215411644332551551803742165626214492830414036258128206592009601855671934642693339715790249330071992108106770169565371587268893861175745456611636776292103492421471912966760985839384619950878793613034357743020444648149421901907111702713702600258188675659676368437966026547982616496424851618896325245598937623339753200059892325255767232750968758581661285835823929757709082303275094486789532481038423344172928738547586377743501577433989887989115170690128610173708075477747001259770567278355308968778279586309204246879926967634174389726973067816596158858329408033945195896060367347557379606367134167041182510814694483165590048195358173299546959736019734809881038760357687744614418875019103876798225410371330146041487615435754911864518461141240004236468877026317452880873071371876794664632373884928124322385312875624000920681613185573749670002886365223829623431556834237132260595648069319445892509477170846716687705590576786319069091159714289050374475309183040812387389806265824875730082448046899339178585690965139782627855006297876629420494547392882711196025633823789098564146007570906923777472012480685143584866271149271179779274050948631614206833275554029633769314926083500868162432803745648025660700219477770960158951237141137196580550041970014787004936306425252977083444912033821527480749106048368276136682944165069002299064195791430087043762474793541834530398166562738061711002905414968082437255258224341693030677106553186682590279000990466086745748600174223484070072115600234452076404682033681833012923388985517032433002708647625508208315018355780748902094419964295671285384874760182875402461774015031304740671850161700930843123430637158174222290153020571127378501136803864001726746977008238778686703714426511358634377748308021192873688193180447131261374404296373035932023694134215221132657025548181164701992964143972186806961535068401273566098079601483002137652164942018552826165223251069255695591822753986007867505591177807068765713375637832394758019523742174896712219832555123714802194545002948814749298129893096538876507874101354709150176525545553352704410898843499104634291115528977558296619078980277404844349089508383293635913786730879017776927844559581465457006323318376742751297961962338610747467928975575597807653325235713382280955916594872791776529212530702824209070358108805280150783733441564755663192924665953799740164308768489327057371306193929801471864343740630333576777384046287034420897197164601718282774202570667048521915210462104974303953295872329770303354090364416870468585230526671001889282389647174720020899786092459774640908868536337201218109698581710208610604373961110988515194497619086579688145506850496105127735571272076843034241518019381324013793009467448691774328599887098649467471710648240423857158985665831303795670272759145864714060340276289973299484967276179616903140423117843202885047594470949905019496359900964505593790793704404039597910477139326064703921061736278669945142591445999337759630194194477940399943007684451267564707932038829226327143813760758094939461306862252328690381187079148892248328489954462249291848193038519117672727914995897932325244011107072733494765535529920979620492812729587049964210437081295484338277895834428275086059958231974130555516735150150408334563198518161264239559242152474860769544114836425659071959867271096445768837215882973336438692042359731334590916105409996486107923787075467234232597607376168852187982610705811086789523138787895915465020395909202321381433074453436686951853207448863356068865119025622434339953086637849419615715077747012657857883867616250592510428974893825747576716671421333361676168359254514081918031289640873403738262722928101584007362670541615612379404467640799331120343592688993267767099778383175654129815716697026498826102047925105104082068152683301077087046301220454423371182548611745948763980009211369588182677903081836450846222643252850308734174803276237195292821240023195788200169947032105691374804286216097875777634855799165888902437095303900557060404245649999946971121203671340338017248627486668692969471750740067792624654090880440457780975633302728367640081392735693876239044681120233335313192229697590688402142873203944601771242976546220117368578926105058864439675947681933692802899322147124486008855022449567990708892117203131075339166920821649821017924152862068733782982456212826367651366178107866035690910060081496150684461378244251067642241517078678910049919724514347423915675633623284387824280056328605072978240708791423099980774684299166665243484027806902279739148019368489315423342323373387528611073321244594091484364866683314534349578623824879469721847703028364790172413385185174032254340981887238022425823043499458440479194685653740853863529243766286979749923316292097699474078401518451699389988597789724902010488070379667195535241578639740608913642790822541245470343081989181664629359939219628792299707609706686238406636335853286184239123620935547819251762750273728965086856854573055634567963520099426731096997115268156272360414778717373382966959422729223097909636954773810129676033036787373683006477064593308874926323818784781312220503478516090748903014540360238974236820903981730033909262878712684243637242855866658614199573979017075402526084249188786730294730843444050925770391745551814224472536208310460621679242512636100991991050414198484157457126974301955242213573288927702385808200631928109990049307612674832343657036444716903570194551797622391739288477252544019284321186682821966158059163048795341808120678406891122693277594866834666185464849855229601255112482710623499225975018550487358000913358962709786458671165419442352361570154124433869103817895723500300201599523897370741383269851199187755385138013347949797550019437904954320336578242493305493192294093843152039917401372799848207863862430642064105116534034954711082101147274379107012463487296359155192108719474386958551287523214246170339484119784333609784781028965056700603304029161609053823160702479234454829358313158639383643710424925536203219291018767083770400777709358364660106328888926141229281041120992803439114370144692128266101870544524204069988408157391687304267528588613990457701241531914636716223726785937909451994083010629223426360460879730675635746754159589156477097938703554955853946005968053305429849857163422350724333651132820677348552727221359486243814957645947732003955371149611502272533716480585268911634816639205423927968592319115373864545943693056445947153868267560248642179136785359458536199831372047618851935341748163425579191558454395413297897816595481837445601660532329785327621518605668033796602156928556456627827980131869428829228431409967637398982970394475317124872327578663304459216021443684931398926004299451883967279122687374995554835360920034933220374211647027900852149963898185762986988612005600750889523524712017017706456113448876775742651093883002320131303840800101294624873902818572074907185666720437899147034766578816156335495119955967343289123712588934460002245982061800705149982582272190975554683646229736209249040355415428851310887961515115166654016713439033157770291671552244903576315919508844170636465140216512469564378671171152022202625218086634478054221022755211919991133121917477661069847672231556056626838718585943776053089612583205960238035724671127946535365436152451103131372347160062924861429323600570644382415774757835559488490721853377101448706097423630473417853513036921271218583400804650021222557829278025873165249608144703208318951388095668395609272636500635832762716156378030731651310799877290153475269637572260977345982353238617483056912898645230510046500425949904704522797367334058464949611122148463430390536509379809203249614892567702348149452802641075845735270534322826887772787885576394613050283493599457709595271379669646203740725300243656319056064616736270282639480284533831897001878216569132081501006576787795139695315897279231022946028901495843681867673578817376002490150849767632790406952659496251384760327942691845517891438461775710199447922007600718679020365568648610480122956641660599833555744012538205263892937286179009237768854857537935119303612099952606717804847026472415938081886528165513696139871662910295423094899147086004159208090533134802215140779698706287319760791552987523083023853367186038415399288631573431692493136617018115445354258819099043112471221278843228558257915323664076292539055071220494483302452908888235300877867778113941908842257867809889217037316015076299591161231783778712911496240785134496997338271557748150377559275207702713517121704712843516151089202434743646380489804848618053834919076540618918435077632426310669757120420223859683282468465449631596668751215717521021495579129024283646437781847384327320573518418467560807309948923924690055182880336451745380889093347311540766463427882006163913071179986096787891243858576734584066161118469465924127892861595304335280480495487852900556359778509732706389442522450543787893743679194290270635669650459866700863714068650219233222804957503993376199490020229129988318549023623030353410223647975871376367010869843625272385969920122571243713793840907004214348872070036103190198877428453362902012822451665914920633149797646939929807560774231601618463265577847909097067110165099832708789852315243966400594889816419652639053606592279783935163007508777996014025734574318418011764484010684781353644494247994483076174183256336013887080433248088422572206137378460526132953731884470019746944167136832869784935101720003985475150890425423650963618055028486741706659034153577076075013692307097188720178313269139532328199687500761509435474086942769705455891749542794735656689448322305024525371400467945996631716464379603846949090075886238062583428221001845904028512237809212514687266113526524239473592415392127418792306535888916163453828989171100378114218937716967654070603986836455104355359739294205331276509316809088092942012859954945781566057678293829291140282333511780952607485293065415848863421584419518511738480676583372406337585419619462633525409159663492173527448251502035395637580552619009243788597859588412617696165685467709092715102303048028836735477109202775011237686209958243255838126860676194699639249105030161850846013482193515115921611030112173869966509834806176586656228197413778831325197005526956061452213608703300796361336792295649712106467943746887134970690463707687723022065406781941353101833658081525884531841022610759482252041153414006491102884596309450721528635256096639407799351873502340565382993270221026231982358710763104672986529260932256875293740396806612992460176179270552658001269862233912738644937311555546600688604521786222671900141235630049420829721604999988531416371191631705075026875560106697255643235330701558765325452972648176553758099025992952364091387810747618862225335891394151342461256398903599318524910850052320286951445962200697008672118115619211201956654280589370457363374107493931429778893262120305641284410648479650131801942464150316580381586465814776046709929405824252010122342023237317353950037916425560274999006095774893021555630029315709290316215612318253508138429772510043416167933733148748506818756893755982039494128054418528906667165579514715612219376673856752229934740354063664101333785237154816339171238326908688476095106526022599882259387555852022315664375221439729416660174339175301833290047020447787097500228882609537216960150916738348681129395193345532100825264096374187964711308871340085513900633434856444320776817623207455714284488825732588222190677628357015322495518933886628186266042113410819399321500660081175915009632290842276916867046508698053080278941887608040308217991561528547643750482642502586566791975756867723403674502171443440565948437139663225881193125078707149146458509239935692133722682404444365942680274292020784056747235959230925610768215058722750152557195197359678811571278005831889655329548111809220678189168830680457935130925094799023082165345314457264636184740334117872315568522449144345426264383293590707545262080749330434115422923578500478392972223484490342710945895716933670118174002108953016394297882842800587081470010044587728065439927930312229180288288998988177636469567777250620719016071198676436169876985020210337196148624382982759815988279376345198106339808627347982264127886085005257597751737130628292324792500828171211123798781411570061791038939981896869242054809315395695525212655717042307910826493261273092772841222729327734368406129895020389452565908199838995768023397546074796647588616796632547666785889583685256116995827347897675868259765274504642308725810342009996509831972989152463262398048051119768562829230380678644061576526432076749144140100394392957538840727067050598400558465869303420502820660086176963762961389241934989295632981167993983420108880365071953779724178076181502215213602024342356967415538670329710427679790708445795988836797310053228218920673945476331878174815107034610955695736424924645557555259567815044932143954324364832692104903231622048373930783385651029281223198902995964985791103530090667844005178028050731489290761496684940997876769262372161132452296150595607526870272944314316383215922544684794588937056613360559029464665396548749968186963435989803182028260041191172565126882946888412488105109599883091214258510360862743256257323566321934868383828868130290136751140318383808875872178424699507995885229360275605961714794241008809168299036465884944788744739382978349729195040716357864463620167988980660050689394836486126445415138355910611560653498458931484625428229304252220072613295347642639774623348645384235814109646063289010920446137808060424567949011706529808768268267135049875883310548809805043149262696994701316091142891129893330703648072440341687197120450266933184612302866334956570996738814955380853697692838321763633982005248384703430063429894384985337462802893680602256049008819817031503480301859269464973172026395642572904445866312000014281304133244879810527363352984006806828455099954744104104979576949788734213734595655257603596863080079769202510637998417246748677051599521218528510652503633345332159519869365026386751897558494630672028952924174713011100746537733231335982582454167213288085850160833462647029576742030836964623871739974599240131156782699046143771463571199000512176895337509199163684753079449458566341461324653273411944485387392399551987691139138693487644697887124406802436142125839507801003070816967857823162495922649489200504693511444694039067720476078773020591337555493404552916698479102613272299080674860081190802348747196878680165359718815871324791873924486452920581860955078759594687187051878040360255911174867758970075579934707221376375895712644315837135419333056616799990453277861548376766363285308453066896137012657678443019965317287426363056943590827127595631758267656686186949463398458399006100536152649426446447242099035963699602101352555654756869395309145186874401715165905719138825600710194160205224059067187608005780606180656165965242667975513478429736145727231260510275097679873044240093354836830305970169173289703686204461945056120216843907211695644297253791959435428285627924930432618537814564074690306816887118941992575377726235199787010448758588524008634704858001591905042404557766945555870245073383880609934919394758618366543735796147936576785898499481912517730346707290130445991035234062089372069371320959170014739608691454298344953270174435800650210236453474217372181489708572919300497640358901811988904783334651664483892212016422462576601360804273074413942860417585027336367296121428741355750197566380050426016956826304097258591926922343464621154149471404175550277443181567879314228196101269750139908215724749042444115341925665300139399253310173380034158662530507465506044424786479791695192006280183379847057684058288121214008906708330414360233612523766964023191301591206895928536737845858736357068965583195564390267456787686149118947449915244366205530744331886712102839066456930661908775183104219717379075912891207575586754993189303207475694633827979699752801809784451387510241262144331848473260587050128240255323627340509040344828248044053820160562171623146232929116270192202526486430138223466159692250917307044753932896985731516746589286594768148507846569089982773336391466737759406640016228279266137151030548899793880785233299504774075926275644627885683306096014433653246537790353838573746768722117885159299006780036212796140567169439941367082822356274520021181405547782885869126366283099806201333107814465382245192122974842779815832824924274461588122537328300291301594256275750133796536415303391167075705517559750134808529746171145163482204510924355405969334199021843001090099831947788379979995980965580386771124567721606204955603731392531052324327528328050137353367519357938344082959049795121770900918436207906967971445524845090900338279972457698114339886895487180391760954372246261462840927690713266008907725957564318239131355660007938623279935280284222858629599972361527485217279276419845939317912726269016738425870056308054314269019624372097624609102287034799952985318088493286160560527374363626366817831977735765436156283334352608425105036289946556345309939684531096827661517453484984098780557334358798623663441342454926692328801727406682256489661025140425620376268155399340701858143515882350303205278868003190779124723650021585432903516201793449436205190639790305626639803756943700008856277328114596938913832953654161231066335753241147211817817088166366270159139596097980023419686680530405443453729931938584142880298163943700640836404854157354749757055522958533190647121459372654112587518222770082152457637823372215565552448225486030581553184322731217424017061766154674345459255295653224221462636108684965959188605634834507863492624183473119399060172464105496559705426382936034293364749277068683479020244906250718919948723893090716272504507286654177526710208089275923508034221074165130036126439079730218526179051993228847379834719089258782063055999132931094617871747102677982038851672362298217180192308242859376853034342549902668480563456590831398147414833678469639334758561241965542391433813258051625198527153790580997141702823709523694120018737879027317054163230187674923751858097080800428463305142826784699834956101253007792897781630886486905648930222803529328981477855878501308179551546166536629370449408957073297260138954925544872577089835727876897140639042176066992540671580107685329683868920024711815635150886338776312710993587524911453120922872126095105371385320304735438079811073074979154776806383106231214486241849701004168532358127090579887947136416527343626193314175478657189145992755907932451542696544372889577761908712621120438649603309942654304501962526780493105603536840684477585126489526851574589586708409508017445461061588642714105299534898368415451922982366390390305968992495619381390935380829740386371660349113184610904974797275404679640216239336399662810132265968908441264932329714473440905028656805061698598990051681058694217444532505384474267557104739549119025822385454877144674428815467192454672444162148039088867653187350261366810091692871946200951533930600926601366491197629907472365807600455267476978043818282035278330446030865224620685512600042279539719795523158783623091696490781346425534757766615736414914598619111878226302714034643959372120339235797818457805534030569683170957516536002721426681133251619703926667288387672863446763621125734628363911950693289318161293359187057234661215830880943728793796744106890633309589779366185018290210948043074691363792379741201240586536006290887671174324528113052006882959869847462119454780380597017448245772529443821389292472552954016332638862453278466243213754294074801709112696910030647845792121248744950921222722937316527507585202947831525907411903918867948842301862539830855578472282608554412410298052938173930408541348429575905855419170419942102189301894350516904789547062641589475091236255592289734544849742752013652454832825711640355808585323625512913327383115134352241055627418903623950336790292915005335424567824986014224472406773358267896599276730604298259358816295917491572895915409184048111261935210362419667597521481536759439172734106752026615388960077748828191108055107831830535463556654513169031173332884574902022780123967976762677194200940526120589111857397514600635725093597036345370029845371823511156671918709018809242529283210819855128676690057290016721547017110334165256325333998564741105918002205708567293648308404375243459520848722377829061477846637249758263431113960695253099924699113021587461823230230470616081475620604812871698177751988491040886309491741885700631497915095890107900641852116252372832904805716882778074349407346018293520776051124059313629382408719253685737146270487615972328625661944537467426028913385609127999852337285208979355195185415889050595089518933593925616248523155953573252972017966763997362051499133871115888725529964851399858873832104425055859072142712005774868821877663556600739545871836340536887709826611659569918646586040848372969614456116170240421675694168092860259933888390142365581460507996586046482763050558535827465387960840980389622981021937669371201193804556395712278671090867904076549356995758312853900895928343577135584949197590766541301961130547498876318771811244936630809230542393276738221457529860437085001613361860144596589241832970294620940327395977375215257909599403950767873221931675979918438806253731429519674816580856057000628749309184491909303310775503391189601443347888437914805622102723235754590219098553353368037928398364806681520216832875279604865695043850424809510792276105155002955176904214769228271113009649351664258056313793213920291766256626332902418764080233548995049663881804350494476612129106224523279587471461953172177733746906920441285293995511330519444957697274668809680359595854969886921347719558740532855419474376580057182109458930400591234021604190947228818547322746679458042295926522197003691578790512964827056799995581635166108983393848192237547233157869708179054055502910722146314336157461194568236050150245392194266183034428781819610203892952779842949783937846312036740256632953529704763243746025347047768064341593983592648876196017741970570293745592641360631773842123660445149618156639228122676392069427119287789056161769482137071614738592535972036006110087280337963579732577318240218286240075066323313115274443233479126043293689539691651055493345359357035927392072438136662979001675192931234994142250560448595678515902527010598805258796817059306377703194859782701897130070476988736115913541537067416825853522282598394754970940549255185370789124964813261952582041395991993333571478821901424414305246990477065685914496075283336702953995100916856636751550652397464536980302348166653931720044859053135442470601020805779770930178111539064585058057083959385488788775754813677317526817823380158548606953397348220073635268076178777390639913617559609443151550044562707122025598052430050985407185275190210007898424895972956650784796466315707751077628144957188271522927091493202171305511640494378891017119116532018062503894210654080710098835124348180625856197343185985599273398322336253316400952267678561956438147530970932138850357158847826099104107054666518656941187134052302427893166815836647475142089273304605871800836736280601367509595576056972889412493407098393600034443003520594469755991249890423664884403768906753109271479406314954133846151254705913464842293294225620199938897454796460192075116304128744735787365895874664777881247117775557232959024396987947447281631480479869401405792849664572132224195885724609712610688170758745421238221767262302482867071289176708370615815129499905005019128077252213153442743160515021061777838286246150789515887954500398085278960977822921269015196566382051826146501560611419655288557724559802288052635659923631265657556871477903272993107150075491958487884473382765847913872954361008136973007393860620380275791781642305721201085547551609446134773682993137910308004918471966548952168106882147909046141123204161240322810038431611691242652062018884387094090617469473833336308085218350900841009886793857964769109683530717414328333467197828706430935379495962382867767183277733979179569765346019545331850212469672993600020059045364815435975373719079911100601554585032527380017267911107190860134200666977086146150602934202355776055853240219633458804376015824048272641790649671900443871037214081595322940794957859737794208482460461249713216447607436942088448818850759921552034108387053576718123800385114949570481533555134456441294943317787499503486763386271779164608137660712709575419732737796617947162614307519362160036037528780290983697251830569874510754324980687102785445681206578185864728354265529402410565815543043325557807682868049213479662985630472340787817533314742556591584376918717254722101754334993428969502592911488830527626571172642638580748891990698106964199566811120899937523569557810012495615356995502498857975259927893533943454093862982062687610087809429095136566391348887802085474293581137326028389896822482983123318546834152598976243544859619046059544620834378458208257921276694170818653872594201742936713817740076590984509960957546890101033549518064584932390316995875296140351022849212570276646616356205178151349456244967181556626084856399780795258810906571161384240783610526894645834521295820850676238258601337979799019402905928806753201109241547227980167911867771001118526630031647795430209313341851909387385977514506945466099804852403865335109416885231769818703969056563956879552695389118629962412803607506137141889696518147965428744905464436922242555606090855754539599255290651562546322197249684412760788609213218824719933241108314649246869937979340866523038840849573061417163090964825485235435600869372030080547312764855652601026679175333086792254612916588282070963247991802339909907364561315534766999422429283637254728663285610366067035223286157642341925715374791871933176343630528899561882708674061964829511847224028465325359980051394757274756787017571244415383312830397709612779863119239215634669550637865018983012065478157727322243145599185620749024931777010064553289560623303340240743614821822895772368850008633944949994427465962634183085554330981298330138886098615316510665370636850386645468372879240749877427438318549112181624885862517010724247691574464660229430498338243155881907056751304303596336739982019492085246526070637368239607631558278631132700791369240057772367326103348950755570158646365467306362257053466765450233153761868479012589453968020019026864260101768451891140961637150267962163749297664450937068504357902999934949154982564496890446660108753119716098369174424052033424531106458572972126021531942767549752264528234339305655565736795733076840396791859723541166102685857801488851973751927154115921859323885632350143512396513604736429019894167679396749778526318066244124633849290938239428017416484257169257521889471207452073723189119604865624153725981595966177745969765250695568725690502768815301779574984421980437387879512351121068935494698468277041569857509967825609100050790786411734777487682697531620714915457653231992081545557509711004093993870000604282408678013828167225919270604564366525221740738387243097741377194999064463070780683519767417973428426062689523600928214872898755556018268299414377629157556039811065216651238417399925737839102849710905737781728035240851396517845268173841798211673700331891517886970110652993689880860125054937030305818355542730080334434753467837223291410146360707390740435813345685965180741056879515976583211465518064873818222876696742285566993975587028344203688979452340757347722152444905645687289064938235659330193607141392869514928616061916773007037685365752740347290769923216365982544520144523238607854097903953860723653038977693064671795464077818122969041361312800011957272686375958869240862339727490420223722141719075974453602275950653780452724336618108379680171294058350602180549216517267927254458133832313003711388619524031431938021079486900899260841012477002169719904000952284377727081787430343796061838546842297439190023312137536958254126352500033192030719188448305908325670034353566893786571548246882897714545378563329577245632889798129128880519976601087279411304595783366633745065199589773410580609220455975348459662248930716242194775699603234863077040584384940299836211010013614825800762525642652428824976665715976200701501166418570770855467342186913365585174786164238641365149733556140864067816824640537846175649047925383432284712009999254947452190003490526317317351492453917939099893200637768143293096418655604213039073811879065372135524500032055873949007321243749544049777437026124173828825490251529417367299430764602301665416549767219979116095340060505570273768080832091610873888564875450128414212090558399380030692899223722522440185678765171713630327833257418632993814084541782734977387195383330952517653887841762506300535491416165035291845509120644811236268914855322837599351456495413100148270241635205182473223302571168581799465539295471880495901715976689602833721850664667201542877164512081149761632713972811344522336510006232051472886365939047424859331296248165610359144599221129435265629178823295139875215910188493150161280210252957677286536767576434040893676422840126023614584883466374032182982992578840788925692920792624724345799562595456651220941184077791651766791400454476231334190038305657015186683528399535595851219141042943109807232256056241666110497031434599476859769381202493356444610436257577267348599937866465208796504540686149123338437969387231862659726089356795007255896024150460996924435238176474944477154369363625481403833526698541621604249430000604522992803526025423035508343206670957685120481909281175458815126161240865241657197944963357038461539699965926545262114029661182659970983043729832911987293464480375435729171824078139430975786129229120207778644626896979272663146644406536820827248740135023862842579132975343682511019652580163931202116404633067898196995137303101989544821846489862155945746138219677284030244392506777944541492831420423727586003534200149568055206739680360751663274218112816346529880860361224842879905053223504452508626597376466999047491214298007999496241863644234594348851756811431201635399798744200384482075312180586945370639067822656139688096540868215793003872209623604643714858237404040343730379149427443068040827431247696066331670207171163294541444745143866072640526777331395817653242124655812540205172136433740910696753013019608450457941122056489432302481175543903722508257689902521877100358546674190913262342037965709495124027517736963925953932711816214706906983600096745999997352644987274069528935498885668546022804703897676531095662239291396792986987541435257505372539858786614157719182599050874210618870835654944666787683181313914137580639994241158005810578339175889611183416487569885580818874148804417636718067049942264319672488398869995056011987753918955524760742091001056218665183062447200796128185194708122734488817413388922388423435353071912477045729140792868212961297587652957699124196907147795140028897446371005202272962470018387000866494408320156573795468119166276973611677577041876327554473582983662637174866823271604187181315573456152012685241346990807816056650956062917500304740429757892178418282566042137800557795745390345554433796230164898880344503748502017475937099356742706654218868808768029998793137019286819324974026189581866656096972080076954640749683991584059170051953823548182690853851502343364019446809278827846008740605691916899114036862621192763188943275651821388756496677553705898121269960376203157898910064817702336558361734591142879954449633237920487844381471830693070711376930022245401707881328747431908134359555138116392367928395703004910548779662899522676397274738063448726110484369708031497878695453835866545455238334208700096923146339996431186500470134878923015563254642336100441339374841354003393606078064557938201406507000796644088397210412633180513268258210772302165027277479557472336249381646107883278378279571063674260662639473245850664658734508270218599931267560940766770632993723425853036510462556145916442710032249060487487313166436237995805133469939006626284929493075733301723120187440977190475716187447895631257545450175059141083273307085742393796081284662197297257844892400857008625879374209072774553909409748736786281225854051223579562161199285976140063093507026946073093754214207188249033729655559963426986655487622797693587971851031037024062973990255297506390221501878061201936023805701913883864046222113605478898345493141119505420873825117102504685689772575677056741694915687086756309553853135713278476249156935870392068119584206058843537540016911151095729914280109177713437862052534100368229507289704814133853278097328606068010137016886457804961908879260708865031051823801889121454365091971233723041542560014606700466479982462726830499199746924033758026672716909853651871950723649155402683682378067320593988626527385112473383206580227377078303536426596367591541688280342828315695539723411278282633324564410901161403389892114529446719544884967107152666695307032170033312684826853668361088212080543182357044998268982476425199920830251428257704715609046337798760161015400161727693548535934600001184403274635307419505915399012000917079573303767677575643179416491725498166847474018137939083401899006744707920786655143337122404652381424796370174163796830377261656399825383137127776298354875669411792501610706958514284469225993317596003165527030801918185293996163751329455781719224457204560330668447256423084301702877673658398786072728123165355407584994874689633987811353234915644366120122352727271934193793784295395725447067237080887765220159909225805813942905961247038712818980124881531773550680625064813430769458060594860625296580459347579007017047697197113873653221313432621533889095214273478295263770110758350788745096699955334031868838731642410511545492206071837655305561982676811260521459054762593275768526045397406624784331561536185166467190483766566928387396775246847594470462032367406277790547127668425215088099617839749934155481735210893536914885628469611746586636122818311669394661218777934768214609801170546680348267952229812374204627863929143962564686078518713319675510566458403989675124300636430903438180439488371998859475743178331586633841411262653494052495218418684262343434881403465060083077861597491637484903047137597328623025949991337547072743887596314140834597108256488560321229584360944250812908613417525819689721596967515006047720206675634299732207509460309210402906785200957589501799725236947168148773930873469928422178227396890469338997008545667210814730997512443863792349963609249325019862774355219104574185801171338002059177717145829155130067135370216628455066134508484504636660031210105260385416171892729491191103072038252880924445715159121015301301276874703534600191400897545132991769143375265489985613666011961099776943894356055883980181692267910552225687413370864134190641643439265362367293752944867136184369851909119599969915165456681192682451430752583724376856271793408251290145307377018098250753466303718693211214078715911440471735988607506619648481971114415778847820385631815212993257791426993896023938630973976395618454073091096128908420018895829288848151402959034911057445219249086400835079892623658314158529235701584196541558877400452602244783831728023479099130993576709285800724451014644419516301572143678913188846116490190111887620332358987646100712701333637478446307349522812791070912815088520039588824448353994994973893628149358821216925445664198593430993689814177612426074843578972001464988796970989827715386920628997937577662466789787220311508845501812708412148555656716710676994566291463091132970618034590667023057312853718277159084732846665941912323429686539670221513188181629640064150257817707761990707816096681719471215237935520749838555529096284231504447031497059940725489615929923550849759459481315993137794788839745285186340844271451033731113503257170062178654679447590177401306990693264350440974338641946487211110115019219493837848334490870730412265998459749476157349341153376186372022646152919243010986941566965021699249367868707923499020449702311302680769156000017507978695562989910131421717577116668670131506014859874301635867228223878903208024142874551333422941808108761094158383666221272229597213028775305206930268598445242862695894795876706658188836709979192764565745030107786693882255005401958667151331847589793755302966596980285761554952049660569602129182768278737280653168306743400549422065833380342270978781666390459954199044132320565939455090903254345556414516795970835854650902814790854442490994040453587570606280048271472103783900359241878599392010715166063394219412839642066395440897981323516701747114536629636883901255611772707555810260633020633295547396204599612807542136843452939515459857439210376466498221830238790495614730242212617023921760511795637296321471770899946257538925097675830101889247516985783466702801297761454344929722038391793381672149467833303202809251908629361355551486915988002165936729871938530712020576046097816031665907463212400811108213950503475719120738532211926215282609632721184534736085504008634433221878001557581436755231542956200765072105107278658915908433320003825466838476527691476441937758439435072937437451406589859031235225183417472745736618906265931148620983029991172107688912055601640729234312171363088705765988009507736378404031812253947589899488636535444620459902924753203765345680869960454967419981786988196035519618328724139618191405002057874441373620189993455800123657063508408615350734618018020948180104910342032637763052230208278448433609892359130456607681568482054476365079666933811116589043449967646842370581663734360074155860717429940807434340012221982224800933923482631389705627026850642360737373737099727986217956177752023628013772786640792929434870681810081230008817916865912377679035152249841623318830657410046921553841291986261626527632183699189047028007040684944350933853198871194606498658714129009220919922341863646584473014554690444059078914618502809227993765099225173212109247617880280121052353540578816079107271447257685316256942182161250149967244529654754942533114714372649982577419794398594913626611383667046907938509072627567560070366318289947665969846193920546631247248469584406197648356261628601978642937824024597959594064796740709574245274365985860417076017228664782207567206486561525860995728987658820151143139234772749492398726744262705677786428422753452453817130394877857810934741967404124113145589646684873184846035282591834415284135766354446906448377247488505895637028154504330809172359545677405163553068709579038325592325482816378097938016687380360559698258214803636337680242707526077979583955040505283113119256330935258011700658044142493048083189423443622052192166268186305949552088851201138977520979108051217327294821362143002964661639319098583340084066555488096040685250327863189321859072082896479094647425505302781798305422548545568702308660879590355566053218559751819684109896767120376200426216370416031034533785240687353530212728839156397485236241462033070183071438431043365542385178002433975695556536873242756426123886954923093970352790930394034126917100860043415152631412310178129479620700303544279897124109949610498744639513251990902319614817997109059131755226900971685522334702911079148480161582880298592531919039024742276326118507234058745146815607683444851918143228214406511361760481761311479756094100311260827704222229950800224933881808416522046096098621382642883345654292264142893556282220847735267584643805328293238968792836914377483112514895084938062272073715880201884362532578900641500940179450116368647205754947900575726761600474089013238838682666175094128238467649810201859792251223764181556095483079836666250901284149451204068885080213480362754290768013426140053226474550234465510243609643340175676210337362769063374971980607707459209409141720521406530187538923308626673390506317513278954626995253908638736505759822311389192305893655814388778811343130857678384284718011916391411524977147360433192368085178822720864125679634767959900891562970792136800161675943081272378773282302153530285725070026951522503105474986015190714536275835136104133684191429349071178918418300868236762687656945131231904953328337172127593825223823138491122352950554683178023480594170335698607288442264292490936997382286569680010998751826542029406100447439617789443091656582841497626346028944770101668622365061839477527146220162220101682215725098476277922799493540519906867305337843522535095538392711907285187517425090051783597496227149962772904760891883069990846888395632939192043192999331472847623352130369689509040751195811453675042786083057621335778816203088335973188489318869014365149517673475659291475807722132614194484158706674122399714458836781875469328611742851785403355782818439279484011283158830652399707127431014720445831131121231708456711477963787089210620703391538969274830898773637677302682557750189473884917975316514818628180933249015228873825727585891185809064223875955130697567345306576908172692151024767810511939579309762990240441013401654573574993929517465982142394178847467976491471896482457172110819767366659056301151631623822010279765527902799900621719695398247593942577553479458659978602277153579291449751342516461140985752631003995089199974981934483377914814253491667923178495827200689870954409167800185107973755698765541831763740699381500981775457382514064457750197087509585435579751725655882479637357087534441614790538467352114807977257151636773388376403857931863389944388716328435102209831914553164614264507768277279789202353857474005629963880410154105940048996482694445990085157693883552018336387490351850764662786826065421416235772306064029193669553583071587191886956396215302002689715404786855347030544182554981969027985702771918333851588596722745378285736555247706005518280644896400241673474362559380493769056685249205193017005355809571704177144820743562978452644597429966418541469017219699679969456908248678080235240582949616703409764687186691458597825355423293176329578754853913171566348756639900979306183447674395082035893725954673060109648106249856041962224769295030535899552056320687958021266662253303696090805082757433416516340131505937491265172715133014928592601902333938131514407427413248250157098497931533683630299738778960123640343957297894744260820371185201975774404650256977208970268291776317446490068159483615959356200046815199153342729969785003128690008512167977819063382767892043538667549850993919607406216682844493027580991525500638734694117857265724560818118787371555777636460556323809486816652157865104557130857134209838039555989901680979279764099778187873902078630466865351317616102897693368939328126374951146238842035725456818880392775549751001352868115461811333694131208255611704522308319575249149200280315790245207823232393000602135393741564059018961136803030361707703012932187905508423411759181671734972971913714132702121231623440351335639739227664063144604008424454080483077939480255927417287895502202197621127071288586394912701483470529627336303616409580669822508383255075280335250727678690014865938717321119880883880655648064691326020276713636762096025661698040920542542517385186002142905524488359873767350179966757966701252574431775281258454564421977841287222986736463084958338975034523617630852723061338962846471200652967592852503199233049831078232648943158586738183032568910796573950050826598377692114962318332981712338137250418990800038562496162947668353046693207347887777946675377714147902293356995470809307448860024129306886595996312688080066663824306667396289798893879316109011009546073565214127667963277443344758135160818968916609284272324555373798435024606883795251783158871903622661770081021298775243228746629341000957785062225333634240364670671545880434938514727363265957511816101018621415459419392600667312730410100877210329568907683405828397534635626935964536695675701283876211210641490506365326996886010811486690175757537663731517246068784401968350758471296329079626006750432893292451053640976967851408953865317785302947481877354329629438769609319858949363527809250214213100317102809621144093661703966164517186730642377276568853091723212561099874332127849685433237775419110247785767756744392029570543250934006354582743357081937686386597519221651082930975770077532135148914869171235154081655574379931542464408144752985248262076493265626556532665996981406863678790408756443680539838181249146233151770599592600178369285333996929838628516078227234582918410249961390690221580826398955979037668299312995872530584425396978499472877316510711930520431095141924462788341211064732656556014396747560939028608344024597877473224710289525849812361322041332523813650180291440699044223131475929576132484153169075395114550817413590548644747666826270258130363682816270489586701470739993051112984585345038265026827754969904698204244037909603273660626620179974077270263201607771756877651451860950140829529811547599578954491392791564957255736389543295405198659736126122108149502824715772418810374686731649699141701485775403923546113372458300999573076159732640809367280001838145698698164877239532167365537703751377703277592541851157706399162279034795088528549514020285335650510257608238437085741393991538308416350876412335383105379320092149046884261258147585073991074950764159692058085320582114948416844179106785044302534088153210782647446395945498202640312739284552879535816322748035326897844404842872262304505924989101540227252476083951340939461499817110198301288695450441599757654361206768441209984550447611208151240644125099716876172297236956201417207064802312727994490133276329814763660306030243511581915824962038267069518315387357600855040349546017183031220626776757491554076710845404557104586772547835790441892880513393126918715998102499703017344141488757019677980369310350480954489128447263392794437194952387133873579883533296940375234589576904445882370291437215847936998774973857380320734232598866189392952300036329417116348087448587304665995597759589284245527796066974300567637836606576099116876042473329433428370404404083993166380189641352195784481541200694838571409774271573665303884916538594125207480792230059665484319468949978517177313993593568758129496213553672769419148503118325287220971039394765959073351276194898902621291348854665383266261144984192496613355265679605457176848823077661786448331434366513635894535855069283801762362113094346249862619363545013609494365996370757423213479449183573330118760334649875693062193158358051558853994141113638797491294558925677693965328722299319986840904693076774672508891435839563447423570350110545330931485028205240263427012977830692353651657056137649655736298279042180589358815823746172366701609365035455626802274039232056744526019370364191465358229802637244611189523353102898678359914181015998105220077861317084034008763341828718333512734169582570447144321108991181546341170440699207873764031775277708455693492767936768403625653995894620056117282565264687963314373728981771505648369736481268995484877419677507364050628690063470282260685091993473411506549386067670739003049845030123941436817502493309144865919391689803585362519130995973332937609894851246757389334806275365773732003783010977962841753066025154798566784225369083182929328177988589740425747279983301262486946430600649373475184792896583080197248988666366545015804696534972098037362246087670981640213283629758413759429964231737472419730408355263086732312155949223543124455119801773352669915431854115058766497917553999339933573431826399666862009283538133149433727353850911354889114264269066279055678011763265487669099238380288249847726482819117007288050119702363661450658442584509131729117173674234417058132156217756490654099170209666541956168868360322890338117862918419727054906511687971498195913331783625617146165242324729416224637258112490603409173508849539399600167900978691043603596561583904558347353376808822095469830436794128695254430688115133488471741165677257519657078809226299655008678106041755958815928020780446985209371464153141738316170760320247914123935521159347392758338776945285260884293360083745181824590862773682625903022236982877868364002192473220215754947429436375549788960340034417500760484568787313012775794457399667687531139877005804976020512651590536464962430206527021982406665427074045763601846324620982712483744716869337901887547828200825577739845855300868341859594052419910987835951140959516336082154818215714484260790721195302849477792972965360590818507762983073678070382117739695493999912627376997940954752881413324357069931626118320986217039801067646981165473758484269330828009770227267890899397800384522646704492790591470559817325923838135409779590192396273540448570110232635097709284546942718331286788314784605874608622371180617244056192958976071623068212709605752351498099463733673077163665741184238297600470292436899872880626374183966819324445618213206526749053612271156783330954359396402770151349143590019370669035005709096673364800406338127882142168248740905995058652799639474656053344263074548125490393900334280405254035349976913890703994976210421016007534241146457622217054829380298562639450706454711606219626902202692247022044601856659057859736363203754722157726208698360388967983326233712326371154979723591578134523463198076912545079824549730745166332033032561593787051649054847236219145549235927387724137099532683796345881071448921689499492752038832145010167312233170130729394764524024090945101371838128234785524710741426065523968944322702980510398992531238671927006607365341213999046570028155527802073967450316565234389308832395082692115484242903986145878922350419402457513767941403355940297978234146111087251972043150773339169239772278170731738104019442562833907672697263887019610940663258079158080621963289594191177033568087401847223725131533153147579051045246508225422899819601423553990189657673405038988927149393109637710850501967641670073104393365217698347774068507336890636861782684472337396401017220626183508700864147649877454943855150901258553696072606178194917030378524050366242471158465372758122557846355762254290429760671286314730421716956439900019912777424867672206956309257338841512309142445752939080477372967626562717409024098225054727795858458073438095848466087329067773862322881807844322014706148694396040143974479888410147169820674754002513174616842696593827074281726809144617453579814152804006502207621468539532318486811713787304354681973428990402282655296263715584987726758742683855426712180813297780013130313793330848373055899980462822624264657592802514849311502488427087072823741308912672066601012646723427702115155720125283266191194026563392647149215424583694573969645355997300676258513121228434562575802921585475220731726185141590048889932943010022488822233081526661461893116595578856316661906684690847675171224104663099546032070319407902462717256703562407236968244661888443684508173665474456891775227600897841027455236443048281180447161363433964444927560178963391642069690685803871913608744577755441857185044610474463883244957265611554556009132976602869973171886005345523593080040906516614240331428844638139880308439813308708020028366411771310638447799998759876755020975015533604101307403809014821456239202266959950546038316885187232457627623903551062498972721724139027417589997052548292585146224578415787147244202334633647151821399594298614236917774958940949776077435623948080494224658028697750244564455064196068640587482988345043683571632927143098501703641991059290026754560152939010138922754876655093549031439978613482638610134849562269381858609089360825026738175447973417684139694180243270402857952736528741487356208157796879829579308931877231275525508501677487956354003714015169438978356252756758087838312623448405456140332580768054247409072870839171223496518725944469043864497576153489088296418706610729117119313310360287037872984147296705151903358032625859660072626385843201584149044003038785262746568471781234438751242192753070635369729583332545899264486699129888746835477153506670661854360134657728284222557167935364114201876738927983522194235608178470035124687625748056632857800306982599544910936184467931791920283857318398828425256126703644594835639084407029916854725136684604163673605836697928171619305461622185993604457501961225867410939292241791705425783052457462635584039759036360003993277510166971658445451600687394853049312356235510089781559182633918925604033976607002520117836136623559405372494409675063605739885955908291236682116339344796915969198707926561644582258145679136112975924941515012193328185137948496220173621473660325169730883016671389546118774184514517241854614985224566144459980747547967910617327169845775123668022581989752078814823803714812671886745189776548540544577595866893004692902950713379962791411708882637099360296862236862291629394536405841407255508302080977218208994792314518674285467391388839420001763906081228869699930793546186609163893976073294345997850019754655914070327138228956771506687130513993187669887573522346897175489332241663480019521984543377252240269342906518884616168701538310708129513601709340432292062534464028237205861990568149004183875292158902220298413618950619651214037538936960825203627982857826451562230173163864812581352973324703491871192690427741987337757743414647879387271002097500207137030680245800647667917778810966566381439402996687205977523978765116444057361815959913070144061395208512283007937086059654859322040499524689061681187478515656191378216944722271879250954795970313688590038999969137228510889180275781282623284414631491177579468604750005638162693554770411089667902490667684222852602831593677566619765289558610840368048927016473213704676137056923370310654049861453375832675836238240672077374596605503642051514149395740557600046092730461989054869506190011466527409830431170122758956925362025587883234642484970976321913074434436962065685455176597760000003303687747658236653220332852491919334243414221714567343829586924963671799159133966520164636642406241163052354240025982455510056080265334810572593050306046020755505093656932415728492669436098706700625642689599935451535201550084796278596792491290442706281718774603083937213250437695231587973456975689981137647360232948145870042133613993116725599628795750796625820206227572599029162799743571094590052533620289847740733033313832829214545470113689561246592454802628742245154304000030016846931502444442520294100224220937249955917296738627054745247583254610487971688747478289109655230575295461524920161947767017651873970263088101739963708861009752248061150388399282307956771617758817402223743752108852822102234067622144534544971572266675887934175180404524541611523692709712086034832561575042025234187933786409952516107414775367702651739324641142084330730315305867097704483666287490369725591500061635525151530726682732728672248272414537617115379389806043789324137417384504642779970970794365303177693503626726530792393403424282125626439890741221219268956673599397167535134863296275047315846052371909435683028169260271069277353278330111698131074534658706034526105451681301130460045626835786913192720417040042078875811611142724684714595441500726211220866927671953037369633136889318395208638317179733788063489810078185035450666235452240524213654804903311532395755562702552110424960784533329435836238037614232321284713453862551725877383616201237448604500687955159410925010192665382339927044073131838255131804559035907759471067689708300494994863328653464709541216823662907195505032813706466126674915864945090200720687309214026294827808362913529863826365444116675417445169362796194946668627668365899233976060342855551466741535392564877570684156706884594306429436202068367752077624270233189668990257651517655750297753848101016227653869397204737737277753926587926677379157071602457518742882447235998447989533041114757043842808562899877218071042367397512813615243768933631595164151856510857333460117202778104369211052518019479374568939221677041942200797183822160780514788878248543977703003872117136637700092669172388003585562998731165490316974108016335512544679647801983548753031414794696684738569616431539100887339949391982268763292803285697254139152679012357758588904205390406157563541636380340343308764290729227691056864543858293300095929185613178235408167634018040279013683873912199523640444612701962076731036967089497896788111570941078795911314897933635749722023185876800121489355346258705599184940659945821799076128190468759065487879693391807896131334010490215605692453840848915523039162419650637949613864866740315199016280400657236186888743199214937116921032607982601691001319189443297900806506837628888657230551315486611247234158686835638015132924651649220743701145951125673448019600459126355457214760812624958331799133504781482055441158675820417911940050288358727120461873863487173947088288750354795485909277167899953246798130130602188001872426956053278456306098037720676252966162075908891154012827535331327607814022310477323451650889520407779308679350018268003157609262016859773672755319915645158796060647746239049162274179074583412951228746616837272178510795835876943286948247128032755761455296311552947276791553013737168521130170335379034539179601572859692160262669405414663594998453184162520454114341254793469290136903287628339431990299363231833603485915773241427777822299036051351614673163726205398622880102772395403275012438519064385947507502562975679206661858343413078115151705553030081314840425789141238795736399604881322753545629461997808258805642392228102196116189184132542371639449508147373863507337309310148235560661014999132475309715509796149162261838988502442146557460530207289129801154929432836596526178992060179737716671372510032010120492016651008839067271776831409048602673611619371581440685080258361210324807625951639481442974582427908533439986734896092278765453168562832015452589003150842626962466131752548708496433706056524399303784169541729071501384811425259476366349102868330101447500078438315981008944141433970430868478984045697887067177846756525370731233199484551961351130492498324842249249247632466681357669274629714242850211376459169376364453063657685476346150103893322317273038400555682520806490952126262125334741358645692663595519268129271506611967212846820407478753012418296122106209346007240211557115955944959657451981581371244857795166881611155551757440173283288381599751196591079815235061456408468275718828556715762606457833662970089619566483162347865992777494861851872874382449777558457116426151386517859296791225119639293910502173824932931609263353168552675469453818028274659453259217885715925046685739241322625022255453753883053641921803497164069601248558708805693058633130245934998784055267338154673587285034168584653207993634045959717346906500185762135015661639923847599225888890495813125475007746891203809766666470627367158308474088376302904027448020161378985996335906430211779852938847929541205955464679413993901609079822207984325403142646799871029467308311757035849568169723884065306038996313121097083299857941204576008158112857198850726842347608605679098088918881023094570738529435468059261136885605456504371166536279255562709260156228940670315273697082636442676982686824820859325719809515628231151300875945504683373922175322898398778847406428207867849293234608571847717181809882236031651839113759149284867026017111272217668418990162159094565429957969044901356703078230540810422545346065349934685138875790575344077394560095994561723947120036409498542866782694659151461167019311149609308500364072146968784675235421507893282900829355600617462872794881019750845836814693555637659991314488820604427332889325097503333579412637654004491746908443733684981660488930203947499410096073312330790952145332303420515647997379401853998031480035772585353294910829866669901210602670748399081234939711405234336931832246526769777594658800855858174354583984743863032565053734056262652468179625441921081321104747084352759385601821482557427032040904854546926689241746787987873858859688752924215590408676589070859378635010478082686907027831260046774322114202096096796713184735828753804165912883662949076256495701833950672651815371114172516743362239554228943013308520279037962673250397416346611239314227667075722533616145088438736839665499513446793231112375196823091171283820961636120654723002035308449306645238161666006487841247376493366523015867615635040549238444471677626499880812963319251884659940149613585489310329762513514093348476913808072116037047601438117909672734656596497219054066725788004853045289146685271381162169261128012214481850204148188857095375385522887363809250186499842439601228640119741983122253780623904825945497332705530914720429699836326944652618707957014837550862693989461168911058860985366369305551457052968298578530311537040364316492669162883596083685736156285266892294624208863791359823293680818102071243115395424926183187484921190155999036593217089110793965594693442680176006330896731872366198807766127558159909110644488518097126917136139411114174608829956413730221056984685672741349033268038129576956747053882952506400623983784818353666494014099352496476838890751420325062609973089474995514360420148673683274782254555586438478870856757331186495689254829936496732680883585401570904625774796537907954038739212827973829879440537188414956874007932611734711087364368132696634198209462545943335759481551809650058909603827265245214727067595837730879304101647124306307745044100554769175839106877811281452044655511399382035000267694775341661280868957380975015637927098053435564022776762377634651996399686200848560089756497906757384562303951307921975669317517757309118321175376777512041348972993644457780951491975949374345665278689294227411211963623870005176410266428342978209679382224897426084853722599526145437551341940757527001416785528889713330848127236533614139649100266727435000086382712519022717956126224997098007658111068083268319830237575249242770299506933301177348030853270039794203217836008182657447389826884431343392095862949628270921061477818019576424950690874626610588300943733234053872754775639611404015328996467047176177101004030774153672824842841430587141568648500837621257645469021175181244081532237260019204921734708712493052302195673536460655156872630294580201549621969093547993035301305696874874206715857101660639963101987279759366735229123752491424573973498541855998872028250302108020619544487177868565822829530974168844960764528213537485576770069420840004530989028105930953483015120473576371747256200814338232481723813874454307586641923455875185691920968670770714577332510164061084448947877237378441129212767362316961162105224202654869432577453050756211654544606237415761368900591377852683990966622202800438851322654437463737448611441192302687789987962560091842780878529044197124301937588449682358250764817684725783986594727807576384877575019975795376314620017903025182334234036004871366199039667016561356505846237043970892151424132406295803588961002896871610551600530185772325378696169291290475275731790514543298104428119308646204475770071578909104140218483893328840625614081488681077218712876496746378699301654405283690020257666183509235685888638045046361732326186629966349334195949100652330774176838363560400530491514073337627840708716397117391212862406078797495677055510982296004097593380699929520398221297327498421625552964124677420968990618144001715648832362359101010738863654872575832055552257705641466605316837395525598789159912019886786343816974916611543007053119852414927720376868616986818670792377398233838535151978066259120619439703400858286944062973065814300261810497619447558236343274215269435132834276919927851364580753709795791000181928735863424123272193803042255326288030367205609634527751489414550169195190296161525480402519587894907604533480114422183554031634750471514687865572534399441927995221273602220706095716816182210739433318013806929706647579964023337299289073552618699774856958844617567207722424379403700691464640840714490795854211728147721787005066039374171208173629415242844966068901714491229332673115059095082574155418713164160138640433249533525750169667183322501009108306655259834827692199043786260125177835600461698230754613202479725677536869742316011417984101548546109715283073465310590631590067040815854080874612555543982392780155885211109527397398259345816355744252242818966790414332866507562429985630997816731460047895447822690278411898638961435536651857814126342282282562056956496387062080467557042879256478392163366100858647625415750449641517637207482468991212779471883787011325334731340543645393389946095862435154200873227779751797447378408903025802582424707227130489183159266768479358640184888902516146079544915315002143326316999562353957660283553837488222265936338566764314405251396450902074420449070498479803834400501460226426150728268623473864180369202705574104068257177219579009438763989292395173894331827110404979216589320017317918394160085300013954392855799186588618327673614364601423909244133571093424169956285381031855529680902235227943773392337271404022823603214513496358344158630463652079442405108844132754737794709830202777343681895646142742758719399474168239901515453177196529063914536428406127836380421694356666408270783171508217498047813606721191242577306142148524474453436477258165518756628664537758209382637390403724240682009140677539915755193849113998565240524420544044034990745789228816079999975182204631192595667754069072834278422836974913085901588114636740460080536695508683238102897335097445494899112168668141949731896485701167734852684772193604423999075806548824867032774332562146742299738375752930086489356552066323557790083740201414634282144182404921733059520641725133074012242610137688896487698482790690562605724316338650740673503172799185919718569561607588679694378443667313780736382902534967046595393498368066441463894389987745704620751102580351661776577243531111768130756542272965010923813238123233481169443887055954860014894999968715381959601370836237268572803394331778278317070516710230525924859814633842490183112809040310617834827886897789664073133314137955187730091646689641115825917546822493114981460893195803788190055706400539818494419013230685777980938119337148056213005643754764973897606316786112805394143361180692053833393993973462287709350689863734964506441183781473134144113613505376840881803820609385662447525203212932585450992618977806127538362722370963467622838198736044312344284392581580285033069698052396094264830976292869845694376268702228378551044274812158133764680620487585459958746517158442297185923100867779043221819551438487403506292957014726475705542420246330832427728714206670502948016557403576573859972209167306804431351817765526360151651138618418191438727751490422499466816619359175937267887495708770856536752115412723215683548002942190270154821127312882834216055710953727701181754875601001111146359827914511543284131434113870767600387186439038341160250708052984237781998892522026970639100809829291961957430220628115230274404845282319823085416693660576858448169388204307009570834944139546209545294768918768021165196392414323146594973768050644502246163831163952946066510941224421466159695937155560967266888229348506921353669568476552965507499365710953723385278236863845868575084020120951186774548480246766387261979309271538051922538798310493892429616244344480435168545341879689782869329705026098977096211352237569436332842669600626471866614403286178694272928572825699078703795785595698329914606581344125097119248507357432431260504070988039171266842440845081264282666485839122216146762886521689192983898262854927481105520294103622252178164832211746541119543662322555488614146464115655373701546153846820144409075108601079711117162362642796024937990698346045632196007071916667477315403317004112566146222850477867455767804357171101427955394876505120862446472438747995500904132013062175809863693748488998301346247872409578399758047671874106881339469518284850632145200094744296282750415567690017030619169259419989965602357394701707075765376861135698105525020489236032687495671684924940791858178868727779693248008165117391997805803950595741840287440274751018812255138783632874166603213177019269474780146225507987724954309945605091304651331176506420479193249776757878742991476875082846921818937193021434818189129621214457883161287912270092257162063094866388568535854100358521427153745648667355462974365168149081076208608660240950717505998523284799417526471361114276595507688791236213031002165067548905116403249727916922365016338328811026437994789327698155414448226872797191610974932991632114989890255484042725271272800268675861864222150821145430509783402932074517856363224200706196789039480770913146925058468681970338138510846472621097657010335994850206767355447358983924488731647016849894791596996422999193468793170940256436058585065348626713371426825203468139710544952851287509406142525488913253765940150059473748822281506444533217759231854609083108158459679041269977771754701242654066230125393551644436726025616836185391133673659910720688284462033904954425644137164704104725872038591481928232982398155536240182986379128599238780344670833574673963582598568431393278114196962519230121650147457582344029341753123370255583879076032548987048487586865892099077496001571575928705611685811525180237934043260144383235929226453713790714377450917474326731015249039960533105960666252094549593680642615471010757449135926316460278108094597198622425283222250041906126644862117435820747530073759935387434826386920254852749618219637065811139600517214767229063443603117298632806233954803555459823329489613102251395134644237836513554243903026803473056126554868882741129437224219427548437105810918635670031003403493849499010626894645588044324702582051724155174108231383668586660094885877406584551382036933560451903605946318731409120006261511276936167886763588060759267486429600015833881290623524082619509976951713660398152929850357185944601783940326199015990624398096976530787361508458851862243908483997044608104154582171075995816714321297550796341955152091885838610441317346257165930200122922717055575936359865434872258276668780371412267075437846312061432864797428119560832484995390335890178932189134012999062705769739008326223552890738351025970410840576356552803664892631094142929861171659229064562268226877425298562830796416328756411722826884700891437788723833301284980672303528800656010397916409030041551262225421862376740252829283117000037683952376289458656722138704736803308365587967192615952072871616814627949246914778198127473619941082557404339831827483249137110360430027656492014256171206043787561745248701379346103792515752339220854290492303970783736485286361382495885826777590489157192967183549807337059690878648962176820993290027906358189818291495259840993539448575499772250838543176444574701779558446346490283233178008356734725340052833191002127158309978377847745474061802800814758327933340093320261678232902824962226303841016563452916389265092176741176125765407878155397572280292736805192994115396258681955781218099916055101072965887060791395177332581412355930308877037863934313204300561775150081827463927579941638192451468066382261505010667789041004674294402979427479712707140801450648429969774931977594134234347422851713743172691651036321836779076458694558389430489539064286780653149042274606092828864521079919903897508976297959316669920292871840937435032995474041842032524329182775348480190527715555359275457770586608494795182642731572504264347428289835796981965222512573745497226052977775348421948999918612689693382147289637400486240684418772235653640785829130074981813692308122202160261680268519107204440085188871755736412649391488493068170923025777666498017910800429327064486689799157385162041493610357396588029895673302658992015125648312033198531134025677686556809551091620814499045718251723514870478573089505526870880941646253735460659782478442183437667830709950442546609047106391200587114375683751316071406443268452053133812476713526688769022071583418198778296378087993493748042951784663152449192903478102706229176883712147595203962974469485115770597301168155768535180758723659110925965728324316608710222844710951205871240718474874668146525561639978019888387588723989360985060927215567052610089166696940855348585440245518457561927794669406119751813402842675113527630607148998259951403910660933596181204570426940614225047674554314313128066904528001254886963062882686310604784712997305078145411057037410970235333700718725372174141509663771704726269760208655199985489034629871791665019707005110405297810503607193900322332288782579117233996784363984425301476136298964408184586647400699140908140175852247777993039605566718640481997325612571327264725433279342792712320472401084837577491026636330125792489245857512509172158619524181016757344197037221952488318519168585327424394039015854668390548352744603400658307315357928384530650356474153480585542571133915564298990611260654387180638606355692886674941604908456013927359958023376527349254582031731956308734112980569647592553786383883351561577896327525533837531740988728450372978922532446939313675815187662840843614764417862140898663327800108588664591210663927822491041260648342247381997038914732860395491948132430665216427734891190605783662502287030844123397663014492957893442893457536370522756874835484678471039660991395292188731441784861762171786588301450824423007526109751582801571579030727317580899735154487604005794527914542354353060514747310475289000936988037692559968813320557317707901451421730611272187823705164797116826604233165500029739595031277874067514246272525794008933611002569388982408129865422805515209402129467475658460887814578755940082216478759344101748993148939740549745582421684261774731346724352951027873298241782468227489538629445267252079911975356057887861762912195413673941719192283402019183824437912720391558434286005667235836381518365784178313354784241743635830796259943038820611597159031482582387226122073035023836197822417950377703804551667177358599714107685832858793810664980249406261281687730819153484571323640956113654010263310983702388948849559180664233957703823761062778608101373839226510117309936086131377065020966966011862494984251896065212305077713301531018133452548472234707072756858721384854085459145721719947400113664966009620856237928315818199810295785023626516443103329382896950577518840020445233603062439569323792952119282193086915119176568441425045586319124978680919281233209072449833977538685861238140722390515535242846670557678223674622483330712383837268716892831265348779275651442706455249899391992029314324461921960946341844883602699672955492975210836016434406688476201715762099284480871660942510437236613449392354347160226272378717305346270480943959713453347948239123021160933522029669113187722446640900960424575363741797130581469081540195864167191365011674545472698799404432966397844872546788137314846684177540221226183734502926882694838046837877583929182655304647677893730825435428845710108959867016079626711710196563434198397802421084718742648692796066786753590391954093397365008162946316848317752584794121576874787474073971440447618825325647840016629655885245527434542684505533834578233184249234013098875401269662614255404397950667090368326496993754673826363234129289368258210746626170843881485958997891424129839378846494132627456769621979036898869715999257435479202931149354504533980195268751263520646162260565116231913095298415599210789563536621419557892365127775399888274915429104639835727265958170460974386978702362125261864167595658599998365566833318779016099068547691457153610345715216199230591070256909731274147192749717447218791451393910379304586219949425778729635797749849272088507204649695152356440615797185263332120646541441156830801940497749922071450871518350534847617904334687385345815253754944778499671726217127362218803803892178798376214050111525303483330068581234646055496664870088018436696638329296679285238122501492731167997778528231768376759908280592594541269760702356721682329466303860883718841579216577171666370114690513012963627896449157496632909528549332430489496158997161584044940634608788462041214374584754123473418186345537245690768906490089830466281998274421277574621441934329605080430974951842104198409840435180448464456217426121944388946368670618706579817536550772302320957850645382043698177682500251594458340047354912215417041962422593169095890671970062974054404707301964582851589963798750267638844531090888674897693649222566240744683321651528185527060992912123305602465675380594393568499667382645167438607050842980222540505633920740406290399722960623932097141281753209053697601473944700811614879956348163998893355336937293857653993159116655854573192286827706477633062385284049750679584507449433829828196406262503265485431365084505782891887555620139387001504038931360430261313449514799541106356919943273905835120780164245025679478066496161208715413667949041007307716721205366401503644718514664187093409182639034911441531031446898510850753417427780462411713253597138834331262311284350789833530102782317325695989259473053678106069169411461274699512038221843274730217400612667761467107124751269277489627239637717594924657235123735921633307575074867163677278926005917359213747111518160588523439692376874856773707480100858686222747138582787078267530700610621221666033928244356509186867822305867888883551750255977801847654755055427316274046662268966288952024935683485579595008221992223422583966944023905206945975138223511552941184896065234185652766886053300783167192790977240201471447334371516178600368013252762956246210182629263546271548071607611029707951720370738897937352869791655372062547526647890808589105218881363975201929172219596524405732677574739977372014172943945625360488923763282890201301423087955013228541250561374588369073445430864861300903917743946111272619487857386290085209834850336914066870933166764632270790503641908826458931013146392295656867739371037044929556947698545969173280454805220887540371302092409109390358809155954565445314540608187748030061934056829173790434847922342373576919223766377589435714654481431527376105994849993501588562266748199081790715978569419477250110101160345152146035305586794117629366500944952718298594274398630314996251732435949017002136579593853422489147898703439903308806727496656286578286545440267917324992312401429106332025110010005679323740347929063919928649230481898561255246564769591483896623460027586578888611823839744522940884918914352061599909619953123421881966350617026527739591494695572903441584561775972409333569976913070429119825167488183330335017940808537414569047386944865196349685733278840545578491620881645254586979360361003151050850959147187570287657069818728809295894956761373196453058439783116928639476196878193702285910234533887324773968125951413517688300272290231432939914806280781756724087216695356543989052963810761415245051034595559867177776659373566831466709584009633628486425154110847430159420028167455096721769947909240961563471177402879961992490677029390467707894352120824199186937158629643480341175438525585369976859136519712133112478743783753234363487304418068631074139541199701295284634289201211315193813648331956624045977822824517727410610092953799958351489629000914101087717648874968736609181784055175590478725742672041584945840232549429025760514536634494859272997783097632726150187482799024408192404722587237363344235819958913970720534394392841642237616976300322098170902455191523303675172442639043198393493501327413744146680300177264156591620019746638541007604438573524183635663835504116868696936112460705303858442860679099942069631647413291260835593802845707958549992881855084867066503393741952593846816454777475143839183718056069798833127590803975551063732528496733430990801020481878753509561906593253384191323953854824899594524954723532322794780367262744724342845161769083442143638333605785380355743139723367178639035686540050650103000006303726687305622828990718967840834877523667274418463178374565377077441982457071480404807172108395671922761878076509737604862144348098638596562763214298118829675060150030443968837915091106666958713040965285531790290542063759535529658616543486600827912106130529388529270682540112882974913400471944578045886927271542985269771988501570606235430686689553677971943009061866320188453040797682328150487597505961769944222125262963159874073647446698216615934898559430201484152725667199524379201853452448508615227937392696750829374412623038938268582018665727669533146305388837886417953307829012532941930479682874527365843390002937241421791102761529451833743479307555211012472768446512345183822474411111755193882477229778727370725065348584701312114333948290098351971284207431921617032077065804759057592717289795029944913083974724897392470777213545791343127287440383837322735716859819577900239915674063402364410144926887019867196223639887765179609947280375283778632526661053531409059279095803009956407260471002836411494409474080758725087230848907419457056429195939716036207008359874403346385654950537674639813560162905206649631363307412803028461352911191342933421945522290722380460100795715075260917534141906298774502815633791886934405084036456463423156671092455592071866063081674153869726164467356280318726201011125756887101058845513901297674482886122874145264460807084133970506055118935677474424788375990027446645551903028802734822427636129853685801934333666175073958299624534892851258977018139393603704916348662517540677511575029158802625444784003254792917548031240911585391221206481252589088878833152499822692159364334369985767250242834265355264045859506275365828652894267541556924294202896948513570887444271154901528860276980998105588320593357074374417475226760414612274137920395975262643003986883167575829618656798368885155398613877924910358156368890589608765687338416692093228202749913556646671794015765068208428654647630071758141473295461953492855504255657589101231564536508641963569729653802170917790409114962280277399614491382397125992421337433825027554433596449214213714680991299224996095781767118280788217107049347548959905338994114311929238306192504248906176744013398424730400244187427809459160433850423161616951190661580743550880360156579499647468487157775958563849397939659894670796814496209137861401056875402312932149069166425131716811827562076202156493214707903289886462853887427817606353450321948662084210675899544781809945453182063593526102812847416237112141551730749113503783285886592594126783653322828689268155717803493389616169448182856719553723601941486806433572467666897117544613339376060793819164135627204199767855533764167661506420091748667732202211197484749246564927664441535277829362919270697381043648375760837936306366305075996914913231854152999170885247784938354611902653206061518135687921711550445816890788914673371549664423424535524928111461218076561087778634843560367779810151950745579525365571643882146615419925598993186808916669034295646476158070860272165687683821303378233742646579454617712804077290666201760509975156720029377307858388455343701009351893681212820728998112467485845710852261134353661573703984508467181765364374563763755691190592723183632778145649303495171607943103517779482139231913832655336257981874738367339406703932225588926209384592289726579042734882627174863629603044198221638654869063386698882356826844217519712018438753343283297501609675244653583170664660628271868043841731737056997226023594676331566346057043687035365335724610747215870670912178202979351173067867862212977160314956323225775829702630051343657047205949432489210534801002002656648948049034984757138128132897664551180307707759637482690080358100097636177597784170834913643386172949970442483470512985880251913443888286677795858217875254253370893041178665284930507321924483611196899412744996202103567868186491974748394554175986453959375741192209043856207221339906172848926574491771946367739540295586258190981953604139063746946868255542118719986782535333258070246281238439991367132889361662017820301775774050104104866897296763157637435218633120939562036300471002380282278525662464453834807762447375851619107796871472055642841087397720271691073030088650817056587911898228830279387501946785672499116067146052087220731834711663044425648223791539549568963998627355968836515436449216686329120611552954602903454125650258666671128432194230462600230529379835118717284267899291532296668220883934787966776006442240612847278170112540237168084998378368523593738878493336784163223757002655927962629842487749251102344254868421915792592093818588943975322489967733253510211487320482945615347494726490097657896600542358106973301012654212969237132755258774457866953527990448384959010922610088276686872470106749821682102647021413694309459976138814423813841079198609016681492727053470395125780962339021356527436737083048090416833834538435267088285818474269851212343825627746506688114925881291253429768453721410678594371448793130864632257622093312080789777809990696692663215815881803819083524346542703173400976464305296241074713520341286326818472438716261205352275671803832863467674138292364984008433472466189031501309155357670203450919799102789957444683629495548516218270413852572891358068442516689936753745494834841161315252213190968190365952109768848418380949251610180627457999690371109008578307855085250927091075008975512473317321367979180642483339491291114366755878311648769255988040117317060191195974474629097272051543224284219759037559317993765602761642853512699464773222782898842779210043539474609469818101900831658383062198881926995008389756520236760081485436491594178363514208215514921090013318630816884212937585162119974079255036831475891266113585129254038064895959280570575723303217184312058545447831146325094800495538631859306068649758338097870618487103547897723120535579695855774192921077251854457398519229220838622787973252513359895701588945698208745829855704397348900415005938843579616543035792443407537248827143838441190445119096613460071078295013976880585082261177626540631279852110063097752407383259002482099249777215316390311443623931964384529792471127130861946377951898836787905296280771344102359537114350641654255183991129862130278558644942555047352607844173862032798395127788583345406511171018773735017913707679332848564102314410932539390168065818923353904742214822478094011494428103464979144738347020816438902380397698490137598365087454417198406133934604322362484414767563745179696872965490847050634981371496198486974577667946882113334078650066443958617994197602770278622611829221567410141434456772313418274821564920244805059730328449387468061936385843384146163670842897541558958265267680836874126988346791191927113490439642710556594683208447885661937954849758154499089564919823044624771042784526461530289512034397218110387705873544930950656841538893968167771962781249094012101678876663943584491349665745836203700002583370256832299216384358749104969536828043281167723853739082278026955029936953750795652321119801253559590660705321710457987524404292947510539046613710321570797414264030105782752712350389618315395411345430605698261264941308956916243551525008264853072825311416223342481382218231502828337261104886169219098990494430086258251518349348876515210102456522306911709345638003621426495606447821857106862754917706556428093536794430308239247690793525516085114469110282783730583943842877698716965680165456142547090753140888729193774017087209602609417588092979377428618341381985404275668078725594425266828313412505472558944328321471751060347992403675409603739454473929013845121057697709967014357197412045432570297211384463462229545663508373020433953934111380570712454636869187316842642496524135565478348925563169627594895180609958169637468534985665557669477074538733022412969713201804467129681850017999917236018083405952342892694873330344257304648252940932945828964884281022180350398669680473916152085451053202972973005303232250166906198068545431886133234296434483567602703733666188352713480153070463132258539796728664316934027303913553454977098976095953572456790632696325254071842108412563075531931886342012213456496393718167133780077301751420253919056298100894683538935519358355089680989114314144777971229038539472119687057235715716046428868683455654420367000726284714005282385194091197443482747858285077414099003337096849076447736058198652946634238192790777821336276127964950261341200485020401026870050297831838477553939579603596326019563234451047580158237652048745180787070212832396135302710018252590326838282912558665463372995588662371560735005187745795017555405766007584350803772927475076572685868096823047112818568548161859713541707081235925685887322607750111075496066037534637042313938537072190447992899124749604186676656741687455962414467904759650732739285992788865502139086630287204536791925698784779380727121325996320724810854306876961459546742019276196612078687647628724145640173310670213547762432432523088142189508587462529302947911082155771060932458466986294381799793086817532675599205595474125417249419725389081276479064999310098060463114070418133943744562291858753240802834833637388485557514205400517298165317681508540501726816524930445957860627614104252515667830081189726010034278661916074205475197257304119078420275718711604000802958177625436865797597739433891802815605594529279429535530249817524593337745282008281538169174658007572372071368611796193835369703884221310227603729066124087160473446751020266166511696823028230060557540846837201295282147184774391645026994341175109690055826334848901917750422601864859806083060935068478197334310678332067999626407736194533291453494357894706281021749472875063707302753901547788731849901294939711321061452337003840671478209854293911842014469717036578721029046092875311584788148118349806798648189035946205355104389065616781668376278663205882232403082640527241433893856093358329422830335507906052411393389648850190273983009376145974690064833154169725867670434837400008173584029875926807513416159973316340922546245046708753878287229817584451259328102130345217241876749974371300135985339766782108427738370426373447765542920806134612230250892193485186509616917052258020288066963263214073683984344052608226636995556151976208985631544367354195468152485330863096917944659221582980406325792534709555085637370338290271565014166316985692081863130676464616894773723385246856554986664048301480325808889437458926175509197306440765674271109560094983812528635081459973836920788848365452741101593324842984294805711041636265547552791859819861001816180501517890640848465440682615916001311767530045583019278742565424019476888166151303875579352767778232402621325010982445382263234771720137374741521794205783514853475232815588865016680785841796664507108397130257470935424536406649588754016229988861700292666378867848317540872250119852306975062256060348918357662727888186039107306396677196839448775512724559700195002125805244101926702534669265531665131361868681854332531628277681878879329315114288166873489847738385309044390495433761610216446615815227258975403928990352652272935148361654755790390082659077305512727545324963442631561014822958813604952330534244637696971921324366123294825935479520242848017435827175585989531339607015172990385928855976552518397440764692468654218734355064208541680332238255844170304447089548259632373145095352787967823850422535225991985472346739978089013284477147438305710881075020059245808792901067946424261574024916777486671116831984117700716582246574572219897592356849980518736633143555985649883867132430051802334602363209950184585144722099712983713673308519380194860610649316457083303906408079298628051798556702585040480302625084849301217363640044462430555527111999964797982066016169401615887152996472904309493418962965691568943904515183879874630650092683575579108689266314599109517805969490621584522775556750475776918573244102513859908848609207172785031953820869032958184708607840049046612897697621770387902133147652821961749155495129129142762131980770371147040268327461647137165773232287075177657586082580388042252028937313519748935995243669078348682107454822493980303428485968744413008513130134884997275046464866499151727576474425396756546458906464588527216689721757158236393423322641800611300364219819648730071561715865492383897169674383792980077223057865022945398999374935261584949169270314559493369504154329036725084402004349401695449035129835409015998974693766840494987216076537109571328886511202348874654198956294298373414460155698371297196362289806182531485612679944295224983421034034615699944856266344619424744563847890365612615016453926536861315156614924518076885047230675976838558363874162975303081003605268018497541488936421926469336407206166940557410005850629537782757592605956158975603664748185942486384801739216996744914674119024350501620535909293823931799454657019782207343567803414275405878973138254315118991422950845916392775930186960998364741090564270263253094791817082421237571778770202643952739186396480127869495286044398629834357315244768210399675075732137313744998429121304265989020060120477416970759420917121759213568217292392097809724896407605501139311755275823991387258322039445678702326055617012329993973686809121212826975929789503002451698005797160173713062435793469812848121261830986121039347310349231820106836504276077795095160167613847208326890852903281178379224991305491074259444363505366393037327666259658262230659154513537148724555442595830802249582452982612098684534580540659688775323782814538953957230805321165234885980673736472501370379277039863042957226033377623583607657816946075593000087396822597901068653531031348558531892499096007147037225682636604598842397375426725701580290149173762605018009365068119330159375966217527599856178839667693119629392942093147313792265300557264388818172069447986242248501342700203981670672069968606970763406454720396377997465747098051812444008062327771688371888688149774670816506082757220072950147467405654515978004398351958339428220457887696801424104559245576615920062422762034246073741712955343535019067338158805431722854187916024442015770076500956252795422486500220332440526367330590511384422859469179534868972456043086538666302397926238489044897409937157331677308894283392768131760474506274629772162016165844156434163476301533453481574717326006319230363411496407615464994440627888032907343492433491552701090079721681282761728554774626691368442293488267213393245664099704855540426147028477787555074497325745826938908065300016985929220539762204244721598653046103392495380472910326369033790209837757489441216386584515762968509018612433178942984019920352437638116900416637157366829031798315609840289776078453723125371603512048646785551098547105017261554319503840233457725150946814362679207953413367739384981488763693734084929977901143118045388672445070162126967614489950395822787083041594927404315726553263786603506183052666092632922473315268164803510685901899036051118827525732853302387673677481056239924215997824970151037313612566065275959316227695586934735900683548156674227366745855927558896344356453217002418127077462685756921703496764354165771624802525952267027559835029582574120914290753679897944978253977547021835693022705389970628461996980615292644760162239810958877659244186738195430619858561404336608382511478132542376814314484432099462066278648263467682886631771968578493093210491573637575295673819349593978485558041555545792328347573133774355982775993802720690439150174942903824827120241841078038461072823740112309740947096412534192685315865075314170103282871703001620065289608875489440479480087716820009821228331239251003508667615818479260643469135779465061958013151950556424688413354230426712165964984681035416281661744122318783938603696393126408429054650874750729055407317920634991704102845273857222193280348674111320031460423714317957297265287584687849170014793090522115610834027188975251166743588266709075827763744818958559945519323148564911438794290570983101627253345812266091295731702409690516672924142260021873967451384586737329750237514396389906284864041790262651174731489436831522551771429972763378294493198906188176331805116255950830639054954003668803067940346127376370147015130591246947468832170462831090918811608110199900400947498300741020324131586614248384209289531146734779814550524175787292559614508601200508152428116903475953897762683968283598903296146865318254847857224576049530592159984640375200830806048525339499130837684233720891104663667190946773077297972843687984122332179792386743117172887236962601195727007747399032372333891512641844877215133416948722223066006722438462821598798661134803694284441082065561983283737710244258418619375139241958781816350159599387020337912696838134054770840885460970718138508400745935664226584740309220469590994659552618270171763453510687320935638607202443237626134341850262820903331439120178040201986041110042793393574890029915196868018349222630847208599664546551936769403372389896139349826947207508366052272861296275660161695608786573980988759166523640415209587095458452334008432422490075849289565628930619144633324754013882344474315831114630200850097297277281979564051163883902396929186147117718424068869729450770168496834157868626720296043860371135764895437890273075850060266231904525235412665554461897117970716099250657331736164097696613819202736388691557168325572789078806009783044379552451695779374834560128411115297040541148074884571179173548271013583943727792050970167183874301053996082367586526539529454559501057811145570843131308183694825890858680208318151427169465318007614684261592533191869092133130827014949216990130945870165212833177187670396519505811125135985973547087106325522798387431200867871404351501289806406306654563862486811744667022324588667259018464693393761571162857498481838866409719337390947262079303460150331318823745028880345729415115224856895205387974620874018242513503603522833432646526961342446619675520040529610511937700422171572660937002314624206254006881743674573421115109271073622732192935300024203706013327099355225428583087707523516006384911605517077052896705667198596079889280466758297824285722551681800909771281506228539075460970967991351813823871435972384377033798002236208397729940865044347654612468133267129527270661227038462996443260223287879278496155673712762541013252363032431990082512614341414643264573130273925840075418766743052263003582673730929959734034525357191387125279368760577769728456030698840151885403623511368298556966532743537636624843709510536644534451125635839411767503055854566230898750639822030250124987734968545835547387972422358029133691470239345860097661243591511669870774978561773558504006610359367684426104599987086840280590106410266430716295839071988970403389709524865643361612897379342758282048796041044958183717390834817997855690934668418130481539275440327325003414987666066409642883343681881250039790570485548418032824603897213976156625939622053515429996497076865303177782791186538309289157502098858240285086077143867915778541878950124660747345856683688157119465098031082002066847507008579917567771298691730564412133669904493700314179059515544399976133079018854520440447654329354851559724481456395595499810673207784346075513664375607784076014320403944328762971455429298555528625731632100292899499380116819803656919551125195444410737623952161414078386656164508919519472194147586603510795460869078579760389845471410917563384074520631999242559420115050812956544846885011426828279507618697927091164563025030876598848254000776611139114189693942467067824210419564780092919550542045855397935279958206251606248291967505790686096972505279277594671842095666208075185920773783024993284631112881237408462570676894767951914959134861005355095537692455611795453945769782172876387840147207354491265922398801841939802941923720419471251411048113629043160505700163654401031285058903612687249684498610536312078978314311693342109808623612441411598099697446664777091581842422944104056956736735962544480035503942789418611476072334507182220333936079759654669878907273309286181140172771091160179000024577288671411258047625926194713623839596069327595234180631468006721496038660686168480101944321238312942678595818475158313554711547042042342750004741215459082717654548698267228564139328843725660373262463120545459878000877760541597175675893084156258441408708086684734074653612324285840743146050486831129746482175496672413661959478879166689555909274107429677453288060112481099919026998035975883551168389161898625064209121890498326961918024311175105875122818760452555997017664488535098666211164474338704117304653534168057830407263743874273456755561421916129794660320088008657624041509264143148317066725397341782065047217439830236766585011178429109008363292554795976432361287324698078374513546848010913307866694004623102345815353400880295281612673366299318350269675878299896219406531277575102157043353687936040639724344021316603924988355297145900349402842380966622924811306818720649145492107527023947626159366287562360816914167352100820017813140008252807018800386857926843723705111417194009182312286028664481309139659133444130861361544980797014144115393637269328052688767875579338237030711223467381310192644355390554563002364050552199228693150673691028637097234246571574384903728234047812133788258065391765802880401507798637817511355034365481583114462061946978980474147426303926466796960275261228919179278440403438790184536960772152220307196276656820405825984399559888159727652149468208166753694446008804440710904907757010972707847290513350935576329526334026765409628943622731885487476507744712278241184735937661537730168951661530288547279503474070290174418142958163898305674940096651110869717715131474118095259917165270126294126702515557736067542761768600718752164125700807736866551519624611724249185058218569435537770005319217080772751158190059094831032308089893540030206124174993774457837800783330775163526696452723768697374488948567811299564826162825922649263061625610025540956599535511432235639493053082146149971780546026987783266536303147340808370358126444978936873979613107572534408079020267693051825625593872844005607021855944424796179453914288708030508480465741604311303221325347369034521026599778750181191366631675678983675089863333025880244147346897678972159556108423371843277403201151390087030503997316032519438178864900104268717164103870900398521107569746868490022242978696811477563387086690920558698493290529553114103329208343485857546438604707944483570135599419738545599018426887464797989036749715282640482632191752665380614598725191717584110577815067161985840873071168203980575803152124052045932594920272301974350556764351260066235087440182522070432013451179663178180329566445744561605457681607114244092418328375307586158397544741548289033226174931007660646237359268168155781078526804552978342876907339791586078150585877351558690289245132961568122561570794234059197048262775172628993640258686160995528529410643831291127697245299343713787436555786782686458370945192269380150320696376379202809359923774070298756793144320450664975439272611930818824920879382310009121643620133009969229113428683942990579342268223367335188788401592535757584198815512913543456625248995818497096154056856281773333692284567895943852336869290720213172746246091409613078905551754724389779653951864085359824589739848954081471785148257747316689647007265491350024543802338704232798780428561020013867766724422917929086320071991765495704977076828942069400564495147915617281012357647723796190503908670682377575660658103634673292786255524867667483135618298967397841177205803220122183685150093282523784547613954390495653990853375007532981190978323391135401829495786773306285309133079267013994285910551941038741845241007324475530092762512160993815771757161654894982483807515353631099308924252592584326850087399748751075628242364390656694553995109569135814442599070743245184100994778160506384797678548923859480162551976544326383402717745167005599639569420311113656831599090623127226526657432451029773409688094912382419622314217735920786947981621605543004570784994207914030079224535422915733287677689944633874580934164951439482285383758726971019424297629072850616101010312059468860157525166804679030681511032232071574808161516264758222471685632678265077940834379552023096450252913420415197715604801800342133872771875496030095692775935667434040093589535568058208417108623258469470908155424683239287404166738663532759832617073943728290500457066628862102506243973341733129536650636235360340495629359755646213633420159235404680736253559364099444765352747288098751252686831625971345910398346359569460661976967698424582184655801025644920506471924624935420535145755173848587923681520169669320633281896925651009082240691225994760120183018730770821953642529357579672572828272838989108945804752492835006717449239569922121565412511166830242711611796008915884299590064520401007336568785542603518082953732836418174704042925588021179069370573638470338103615321000562634091080039895498657817545319131293213798044065217353212485639600109971286832686379071249246909181688171945259760817646042155721254204366737118398962480443455903953469236452489324416144494808327414436676890927963496564734811459564158651578209929637682603919512958208741044865747432751223651918755632689095525970542458144017959797955997493369216274016014433740677761726324364473208614546210352248618271897187231517758057942533708333679027979193937889644903458184737477940680118979787023432568376182765203146601373329497420675403883265098298827216733596779271857915320750797846324814047005390501569899060265681049121158059939977097555100121448610332186849902453565520180891388759977062085542082679273515150671645401489658109969175161841577841547603369327729654762374467700979762967373485900149780416661887288442629981093303135001381243713164832081105291099436422976303755354073033579330408685889982969426543361289247236092614642999591227843032821089064145796181909330370401362203478626220189458037435773220530186653836670804412250840482084391119553376408258486780499630992360105631632457038168553067442974925984491536834551889460557805646641061139582785536510548782124805818883679652084591124464046344367893460920403753922155086501056520595634763638531806995239342895307353246359683041686655137361167064448322732522450106450187549584244457402901414899481975277174345620394640665736281359127142860061101771771007226708077270172958814364082464800190220151630901941895222043782725263047909537462109764701338964871382137214555437541291206200039926644970178220824811440563466836978455345290300659730707731704857232392776614539734866131377757832400028519171016322020562204631059708074994886370230160227550840033877923248061617359070294228382332726407842721392983215839524253537738781309888169626633156792486466279498217347335707151619719497167517208274688386079612273170286071926425782861380098225420661131618237790381734585555751961640164672553263994553700109459109255783752901764549261115709033388077582295397414318094530015798860854673619873537678895428128703950709560052366484452324554267366419343140524081790804785124933778011076965457366402738200711477271594901702488081099575397700125456246711213777329060548143858357943174776120835199101152416635098435055083625829700809123407451210842589782814331298617683632647429227401730201321146172809759396749729858171193529021977177245235104204679378210826246070529322561882304278575975301077551530873275183846935667984699073140076675301166419377072719363899520914241859411591441073098185879076790780251908194160006526225989395011208928685253647534755573618195353000234343015824857043535870727960207987966360253251741387738952542139196890415383597147808986111694648563063616710244792404162574773586832209067104683950393602605442231533476041218590655336250599595570732755962133336090050910622837473506207185986341884805365475144453577608714582371597465241040180465579812302005840740956854064205926181533285943201910711382335485795679462040469571744371091512716089738382938477794054515708219782483079302297581182621878077969196800415663611918145527905192179781886317067595855639603502893468898713583211273392003159354239288303480894018486653807043491006987248613775571168054970495592280638721673322017104131628982677811091317019669933204996323180996556117132339594294371338718053241988506301643051319212377994375849104123183559803298248203937448084736892701694817236807880582691814632714284490713864285387870133693583078799527287692965591821972044298377146825243363072233717361040173558726220951436903969514510902863962346980841553963664440898782975434902009322323441100531540248317315139611326201497702112796122745623357707538785678960042635716622027007062073160467651145444710552763448191343438991481505219168395397990430518957917265166443231790162112300879461612410185552075216639448292251278156515767517961968122447607930285028368695791932128540643365664117704847306796184320202519546923905701086363699290421300485502997057516405014704255991837005460982961069840443119690562249293039792813215531273404519571574804529655823981223196968717840103864770981681429009410312207151584179880160800489149088368879484042830997876565551475325256385265353619553747105165419566982104258410236617114557506971065115584113075874087025906399180111694545390226606275867005778167534608482380995009849348395495189360068187917761842622167206869501339736949617388060958501995724590695955950773713750801662769612832195302093115762728027110222725422960351696292884856544365108070598203266829958618815910861595263126971185654553225441124294441471465238983612134040833098852571116726400291706073075118655332803554503265312686872260582806355011254956544219369165476807481036761530601826850067066741945862555551341890147058918292169902949153093242232937636400663795095433979297949808892440938634056871182677756869963576164928920284773143695213276038833431752471123653981659025444265328938978670529352475876709405172432135110325042024730869787605782616003354026650499035997936223387826438305075012412007797156761252601302700343846976364946865285264007969021076761401355947475300916870861753172400769398636128266722103537633452579695353936834966140044072062323624402157770786986103725165726189927077207011148136678041302505791016971104353760552309210233585622729307971497124658642552503228589943994847950951502572694133092087029848583967807733739790192408917661264323505556699279686103351476492076748138482869171700689582169747919172075112707286122230092055415783515717620889305624979823570307544273374278472113641916556137743474008520523892929625248465195573688830106342639112475760480241240056092710734372388802242669313965392060085099870362679333807327791167086432155496691643487836035501146751581575339296648739417984774710798821023314871915477350713488298240811974304682710061345593382308921336868940243693238272795875814028963837407187949004590615992534614627189740674602981863615775610611597486477500304296387962857590993545071675602049526660108747548053585797550899001925423134666448709613508831356077178039084633731741605992120422509783433918037310553705131279348825971745658138208609925753729028421274203180049151038647385254704000733000384737183092217643480079010040519743919448746838345760428625453056345826635377150802878284138792573136576524122070079578938630348106411754723738832750240689228692201581467432361625368107819411446932965390194937883486876752084285999067183171488674558567928902765703238168683115893182922533008972763735020431869053083697287908238284634044940341667355189589203345035700508663862947361315018633885356989798864238524867864538763702466456614746755670847990770179831152478910223881884732961783883833065720238302826541636988423126285417555727099646818956871537876117413827881819228030674593949187769176330109017055082551025306943878681670043677076578131701855290853604344337803649702153195987442276417611088545773830637505980529100230959267298910405212872215285572626233860000426864241876576417757489827002656376946382258714130043040010484391109779701541173617150411972187973291236396126182281035049117517427777603354760025145145009627913718281565874585694940182888120853648015243592862411050225157316314363740357299477556309403974769947394608262852191277234082279391052701458082517943389105241815023929508173773859110451984942946089963206362654377727170635133735504907416377964030821692954498925781077605842290608908604386852404785902043729317013833829075189103440408226386741638038741030708055663298384994720613722139045935326770587533480373666879947750669366183970605203542676230358853098042106781968953017504741974672435953048458571903526387854989634782612759550071553709988682749193651541236932392230212968049794004139747751999589929173441295637355757838941460212787668047451909661750239724688155037871024980694484631203668893198158884252459796457565093171571495769208368232547311087434632435119370137778130182906949740416616952430916215822967925198546868810963135905174183999358457481221531597832032199663313491166532992436076894086525144071432559351721297184494986029501104052421298018492115516262717587985633111656059195250366423673271452365379007513404757067459588425379493904611599238627538392020272040054121713367678951308164923736082340083903406613413534073996230383818588530999099152132972508624357707864794563302070138142733534340862679002178157650363548130245382083405902660934982775882091919376460318521583481193275804340453337024774522380373918415005625661729571921927650375795761505786342950784232938476938874663014788301209128209558908174801785233726682712396406575477079080956509483737326732173016761180915640959771158145307321650770325138443418991420796935784873301402287908519783933606269290217070988580630061174397801413993455437966145172570015889876110903818133613958256802932118709438255525170564977905099218854447545821632520026438791980616270011114522192030996424927486663892684409259800132761049267672963366307239270327592455279524733549564550209358386728923448243277189225917252338761924452691563667892015860514363924598173115516176465888409036438233311357240466792562102074328632521783428021860818140219604340003482771303569891278679415769116415586794160939063137258580612004558082374286726426825355271838414849751462201901611051113710884546629739323946194041087613004963090668609720505049953445756660462499479522460292443349714493514161460055190036918029969405851827024569783516115597708595354542430761384065738447270073987841332910300251950080785663274271107952234321792434914274164630332460977297860902512078963134789915420730284224568852471452379616985368611851242496775408304547576515977798669428208741527527480834403076197891889122988700782234664516459235447746500360702356361570780803096986927622466127033138691056464089116787365511099203779268140806753096217738154218934104518603417907846435058259721481073163607865227506459610998857787548163262410940858819289838895335324001732343017522720915799578737618296770932490498060166188557669107954025313159127673780264725712538545407432896758811789980993617408006654570782771854930499252510946602411744529598748707177179460506529106427577546177384216180614761211608817434019984835730259483286340146240645449533864958511829942068055524943116481658312121637696043964518138426379927325747034333770627318481409690491057384663966924870878728913952809421330371310576679655138910095805155088446561223483548749653357863330719407526096628203608171526794070801128442934812909285957111025614417728636965460106217447512519270003775807725070127239959066973468527133954283049228101490963406016864204148600923373878532940653148284164175924179563313884618469010655624569978181087164566880651331417158404685996103431706450060399374680025692804554835866213091538869289228450251738153341193657955103451147686693095540618145181650836367081405942870994402410369803543253602180567334386353401065245556841989641351391986631406879542541734554900940135666999669867667074763577970909672982811666814883009568517590522578921551368092740099506397427514409173194569679464241488972723340314578169188537969079381583876974467651615150700713018324243564965935224573943905620889906305892668276978662037312780900969565269875653605560130763941798482414514480889029312739570208228507340351093269996115285355822025988829649156370126210028230915678351630598966482483562008138447005963666656539489507544806972364112952819012443124504296004406848683805949719107059894567902094176498687932559222779251209476687152771411132315470399685826644155928133831022276569613267967655308094660549023217772786093069607835321852203785027474122227841074762816376930565497741282451731218103377762942142623197562586691039895070593699663670134146435365364831561851486960546843428144031388869279701137608158933189177027067651896036779046630483598725030801204983354210711500417837422988135966202297533335211366521345794486913671515150620032083606204464457625559432549126140113892905976205802522190021288925409155611576443039545182842838819878380204669094295788256605553089959962443235134132313050673833996816358891203502858464665396436138565111215920752010965927635111716794156915488125274268703710444013925131014785249212219297524840442613336182368816202107330306540248495429900853537952214757359322470430787580660329733268257738221681505457777284356711620998091438720035766848427835221946123628287604135300765755843125471080543922579447774686945849918753040872748804244794994780319675744365247435976570330074617016374073590737767370289061927244298044215211693554789902488917271560300769626923633945369213441725956337090976952263999291906532110159056933995360673778513051479492450409532706977765710857001215280280295031503255210820441653754978361091731324304077827204523582176858055114991751206205283011823221112051632335621965166079014282042160077087544809320050242431322953166044379422904919359833050331940283659535463256281403877653276096433411846881015960059544328608352659934650061052283127115213077667354677729708466694031991433925483473862834460393090125651661972509736140895724844732815790196800863453027610783063251689502998425372598343324301969846880202455895566157935097236723638962013044231270568596006123217982537653435660326605118030257980189950898638675655965003643050595141227569087496172572269833357110673790174306713244202514669382314851678245402185164290490826861406284522764197699019663871552741056263848264510355903327490348609096760352123920418286472454283893025335514585176764626659212040975584376515522496987199339642179367500731638798373073316741741755623972953106599537167989557140687201566063530844166804282968494685685464119688995630048511671214669858011517390592261098602871483309525452705980265879371105344820923400060384735820433911000455279362152065555379243348095055849949059121138051109182734757984953941293925878281685629875629230086546233021814083760206466669806704415779304918417207072710876616724828008008908871423662038892247329555008402240247733191489381336375488692284136072056598604833051822490959242449325916064362978830165201016762988160007647350681603183285283380463261207252777646470516641753737648236246019822596508487594050671711141491109063467601757788240419841850616268932564359968058337633091945013228803469049444409198162287498865016691560748556233251636594295185004226445485991008292742733221949169259732385524596696197285763806826965453084259852088224674769777901951225023695406532609151360384940065408982045789786319514095286274038063317573305881624909999191260369347221255711943434601817215055770038056388503004235858472580313053620751261341927765981080215979986486135747256954560880024062682658290426254137767515089623956698830882431578460347887599171850930923794336960631826011818522910148494806838183375909497905933173988117426226794459053387377779994831347682599223433525012270898152200914934492776256404677987355321079328182482763955833764484983973329813928963552155387227761271489652553233166454702735677589772424545051253560611615021703685219829097297047255106505593284653052835895733783111405032275382363921885589275769042511082622201614770243203705789760038846530448594620669832327878716858310426682336062057274720316233574469216551268820026513311410758231364293527104535812735474984732359301554526745417606721033622500325216459071676189558881998914787424707149976751333738885476513748430408147586750463674226688759189854871955370111639506811915577988287129338934726458308053129247391132277156488712679247038160629601650109611877427811967728582854182502859668556747876457866752232437620500720888271406537635234581918741581628913872250003139710960732989595260495175347081051562557051476771377265788080114973737094589281176810697016280051806007995167417518129035491372933108604828569526812344656199332810153884405903250618330301099666920099695128849684817065377229814673823031477974256818087358476851360400231592334998632774580165463235267487006723033617541752901822111788875351677935684357493622048353704354943391758848498674809484456611345038508527488457706414415483873548842673630801801955252692336699979457441757112071143979356052615571123125336869952245362471816912459062830595786105000191884349047943121571953903295668999937229207074604113266095225105868981646796685529082142639711624729645078314565060128242172316512405163856826207741526225425042469352366399257852509118647965967289733960940605306089701167991912614041317829213293324284309111209482370964804893210208991960926035222604664927521718162920084196128274195872021938546284297887462943970518981115826262646952104288055670214871977233119779623579885674407142687952656200079120323600623399755673907173483618533991694646972990273068979564453265423914582378734373051483316827465417631849090858639537448706947672045944079852713808818170276390508107838209336297644837763603066760439998295564994834200404654499667803530934642318731955645644579341514130947788887514653214020707073260136949011325409898436493510068496609374109911658788803485487179431069059616803006430347523115774990973629355245712091131784963241743771722416398580249209143513562249749280424383315245869258826392010225184845404752380405298371403770553400315849328822891766247537635567733872977420597995540591644230714965302803385056359709780213332462421583663554759958343934977731123173712071805020617826506169616298203833067326168780249029608981844861502032713803115337935415492185124300767216978251857117404170012468851051740025627398455355638527313525861312984241494257184399455902614521946971149361907755113278011498165652639596829655428270303891926735395735187056717140540947543636503481861294949127694542536116366536737075318477856779462636650100417895705231718170378949338783719552861464298099966973030620871591567197314719180510306053204344256436445522611103375287308738852287678003746185805564270640088414763124272741576696185037250398927038396389240000771885810049555876249499508051942998257313281167326837237586921774300001355099552244326956906016240242307742778362398445483977526451141778926323857429511233516792613424859144729638395849312224405490658396697345201894095108131639029618364983193203559107477771815477921854489088537364581877247417721829413265566890025913355040716413394164619605214192051484678258152487361337101967046880175833342455476967665200400947542234775928605363043027192023459546488532504296210848218696005298584462909419553360041758790730288895408618431198092186227962889278328743668415129616860223766152606072984528014495137214660326169102992134361442472438296862541510285276144913390739582131237827849787916411438711813760041010386444664954071841413381627703306053208787611312090150029315093064097574495635330438804381217856763768180914148458852918023093450880778026079142036282449497296665966706789330248523196225331244359502462201451185887147142336665783346175221010883886621517296137601698236725762465680538098728708082248059388624137841407690031835292878922972798944246519359498709202546526744356850360452063122536672293115510452354542111726310799421122320441033635981274192734542659257966756350671931292000227217818948554249634110350761468635648814623012989471998553116743121145011989970640653592425023083534164049714858680721299583976750888745531485918125672111773974549123926336561189981947146824464367621265872927302291668527042890851664023177022814099009076553005248041972071310143090268768429129812860458647900097121739189396246617445858227567713397761936896053234150765922591058689361717499497506935126807324460777628716523523295928556382018092881394679792835255034991812053501518921996917765967915555830702145396405435411634832517153469434271913656595524126093421684216814299739837459058117858804115637300286823590796923516341302922632770731851338265595528766847828183013381023264941442324516226852031939061770860676327325282479742498146882024245620940954567333743920645810111765820235003699029881656177877758361099499795076761546448536917725950530108102335650271514483403130444893177596761588738502536007813203147824173808098935790371257171687573974767921748346493240868130870665894728681772514625582988413120538982726075594114876507665482455680572123422437002961889699182564355366709262694395193057746302505168555442032847312341725593125714135689280414098682392763369024914053851784640850253910857463775722662485740163198492315746217984350280304684438650380535852560436873522016312644207601007884288152103565521654385206631145111402355028232275734057708468917963402539237256069519089799713219303620569136045237199154257742128001557600131037700038578767427739858199249541287220361797807778768868529901707128752165671342715319919369248368940185116699799265094488289407327803877891638740289080022079946419353282721196724970275354065376232870324784425504619607916267184295500936841801455702976848103365457720901162700188425420410705697973831034470052594086223596547512593597469281556621532116689321422688910511614787208097178130636259513528025103031851392760001729985853917841779426851735661552225020225038543770781216074750678868431997564916698938662784504922506300687243313660723357717585398878960234812550780025047224924255371079899582285152082331046882159457868689807384053105538768024088951387902637150502975076146787021530806226823664575379775601922704794495985664923282484215136782486606814564968461401536828244806178142113189097487936020902520004242964481724677651150922108494369573918570177157842984243352629922517896683972154651419127024851685311325146273447179176822935109682270349871721894673413060299859618281069622539654895659489822398334192285744136217416215717452209808039634987414360509483888883639976525899872635492992933124809177299677242847543881713339548601346456992342545908397558573546489217591454207018580910387296884031520875780106591623741065303008795633857542117881229132111878784675797292574618445900830177074473765357537916496722124949891820581797383740495544885670770669399400949743825999736112098416524310402118657505275764183277632400003647136813954925569602460150526089600713143574260463132482889929768629835032278470428696179731217776404618466810100237200817030496641209171600061947095351182168590769465096987685238784201609499173238870905819476263871004769632174248284110811471529605699708355237434246368378852274269813618520786690437899188356340840112007240002228655431160187943894974648703184044396956456603045734388475528513379073227245568481173312551951732585656266845911683579219318571966858423613554004164978243228564077406544247073844946742602457122636424013099606387285388410082704080090950302798282513180875071628430058107138092327565075380415093670740344272505604031783904378646879639912639398006315125719509720216353233798113046683183966817363693122140528633929251269606059817177816464991535071104136230538431001953688211182335811286823771352846119411233796277023956383613471522237498143348824024416796951945082130707369575216372823036900002499328278514268525885314273701290886006516699992248817297766606110089975804656296778782608570052505507693732168934872397854400268582986283352231225623443022783986098097818111001320345867630642114131565386397768391832101993002143739727913774760029649886523183051762700426972796656794199187732382661170779436905557960343692397138775817428864781608556330683653652164380623796890660525214576580139250034794024681338065271723704261862632690369366816022650103575205575355026085488505327927921063695847967551610687058117094280783516025387551916483095065369494771942805694824978956543690811304746097592547694443971093297620284387746521676369072096032269083849338696786204932309914359620449831480060670734664259229931912555550779967588711355660018604004458966247637738635562024601836504926138016574955720939957827523772754874117088067199203958262067215122040494447397706090741755337265399502224701856206613271920139442606828434140007904440656065042054883616957452825556606777874520992668869245921032587917167691971484223529506660515858262810598314899291534606681554803044895380390500639247377196716951411438775808211007650388919957915393788681311578254054688135939572206500906288735210162667077987727691214293277869640630275183770431070884775058768977740425913674803857182033548732321573411757475058856091913546187598852815843150234312257817608505430481978786224796276712528549326106385571456940012011003394278515424210022722202993244980756115806808250186195935811592257882333827637918024274121106562459705097817757004384142915420949258460486262681481605706272823609290534807965327461659206805393885176117707394923177868661361644046266175742551042663775080024229154227644663030901855904921800699405876160555961410275770293202834754719385089457611322582652910837845902336677343159909966112098117962519863057905692082178856840721173311017919966277697990932480832065229977555075306117341991915739592267594046214033686652182406536716139863684236055196637092270762084232759663172267333107710683786822575266341118267843416500494611528328871837261368659988229434488111456163467859646406588222184294159004253156003254670794244040143511269617417736924074662209885029312068000269368749166328969376957668247296655047126430628068939605513826091677508697888914007177748398473021765352246773219884387201431502586215227521135185790860144006068095332617066235243916137091996594927519346316825287956230226846493288456518447589302560074616457979849640406848678051051346838132479537570825694056745223148234983845541623175365971496157022297965304430424034091773850439572353143993404114767830015909420925931021031032362855445416958759301539383835272985301783992588736472158185829333044540602759799156377443662773064508830671576302979376517458941079182068250124158200607045802112633777292812064060263971797802114777351874169343573141282343717992905357670676738745186962986702860719789650108482722869814448914351525299543178501187043694232647573825736607087519270861345739344700261670300808407149813419411478491664388342912051556684191142038222759976439918680686011237406395403930870243325392077557814942214097998943359821476320675491109216852237185489268497037885310988156623126419923120689732210526165983834517433148699910870465591248660186230508198641689202750304108562435347566500641785210126228776505447749894971314139677119777340432832854715393681222217079071553567718628335116888998971270929804898607484892908756041779573925774808174831521132366247805041818413826283052749295439165555433666087218663074068087543662060461947731045696470541384571040614220407931416766245333054975358847862690411483257249146930130919177759136239038358706988590174302645062486378863113784707356709838487782483279908457893223056395933055285170022023728097440792819968171450255963240379881925592329104247455364418315512135302652807523520948347811297648337719798161159233772358636282457904288896153630116332582314711864948957552432557037512205140056094419814807523312146907314520057712140560960830505566227004338271223429035863907071877829816996765428865662226470429796233747991680781469319255758622390910105642447600244743953750750746749431078380733626426790109402423120455627464866542211104934679163625284529842297837375141341690343935874178398904017512954988629352420711881865497973371905228845588782371019243069012941873181374614817599380138685179314165842757009397305407647770575262995926827537042048068770016302153660729378688292457395676397525773397430994462712014002138931951054400482899327433144604018932452523506195357494830690104165824272542213214556817079678141437541443376802081629553993823555544567572414478275341786290344424106689201331531924682170818424002832622612238692185624319785837029387766818197538439529806294064906663064902295862461010788175330753544457676909290892775856632284544701582440627501308096826694459595503196133772053550348506202039252855735567838619561408115284183320390549826361539196123068573231491109445951735557455672415406009837063322715509839745651374872195041121422144574531528767379306770877317145261553151474297577049957919261183628939125282012584210996304283882008781785561811530508574944047581115033492141059437661453396224146120353068505867099904624733645536683914902753998374814164275031311432028670265119054211800861547763545581447843485262856262963472532176016213896513268402368427673348699705015463333386223308592822029760775017406214890237949895034877032146922869135825958152520445209668612621749217199009832297718712046228199336937131654320361899597667916478665888171494820880977500585581264017285533111427212517982145215239547928848420674804835718977038718827152119998721502545511011553969078086664098378777706781416180929938108905687135603972763182188260825844003021852808471740484240033138920335354182526583295938554308094534381258811444565357582387921717742817896161396655437598062517328762054394776737227112777337343969099397658643274660847409747636459270016982748696498218646390073854232648195365553086226530505496909294423748558297223950192607927251891141750343960255988729031339054432025569889164122751898653910231981730276793939843504498793237433128726446243904771999662867685714902514269186584958454899456872620786435391145153629459924554167673081902952000638018008416011852677868707832435331457877895121371712768977567893309400082609985339237163380685497451140934440446407360579385893717916349128641552300916225708919101410014570911580504587906191334629359389153005561937666481664546116340487082240344293859319107001122679994619127454246635437120365740900947788332147994743896288314084075462402791393380018408042023396410954432383990410309403073512662078081099639720154707687871860759010028675045041558549366120213828812228911360411344019036786960518599552176437145807384388492785192462705380174669013700342061356361468583503102610848733031253206834041050551735314874959872109811946947072418093067822431218166343269207255604416163779014771255190238099419422296374022787885510900860608663316742956950219471859636797656639061204058315385245017474608696080813587838017811722146150280148213655498061347526609071233924353082126917700646000144770670967156021873844395553191020256254650137176570945542041295858117876076597764154970954204063420800121683649233458906922108777797576040011327036078653184620208376775423083143971729962078755828619718823073402487194173798998406478463282678611537521446038332488915882705350455835653905926302854426755518270316739783570980471199200558506973321154002922004253400609180776118827197598517846310057243317849701172572546244183839361479174249860791325149516547843857090455006414173261916266041139511438141107914324949015234218019755659282363923753994006468909815567442399261295285862079978646730323095578790918417266144395055804917132909634036517758653038503842603891870439097648278496745654415433834118769074893896539708043080746568679565587170554976096350234237010991645733227270472510489465503740602054535857078004572323827583049531035533434748961002589210545616290852070662382649367779841196601278798135632780431307438236274695024062132442044520301292889865233400847859793837274897213898230697819636638395294065710773040429616703247380398692304379471135487923136139019587059209931748079229917004136787674283429560452739162506346232343334102552951375479081882589452585217755220198750263839526678094366485839425566503311245669073637793122572013754599921295989181513603282556312157280739636120266048268131121439033577650757663724446023704826927626714023881482086018685006697189005786747490251954937738422023311414161190970947316085658397230239450580574895814826013512894269409829716451497077995211059268024734788689192816795957985785933391191362875352646690673661172100913002337990278383358577833973848138775604628776407849066428872295127715314527778804892009040577144436683860814682556086658896270118296452022776346351643957061300583527954975148195213499767407180526389060777897711989402313738145284193683414877065816155892914727763138390812099354088258912024553760437795063731557724462913669066894860551106803768870419552738800760968508731217295571009876643641448194299932445916612731009750167274186094006474385855108761526643660002093328805747209116057625389782436124152219732040151197090840905106104487495870967225489482061014119751014431849829691312974279350937532423752449695930623208472266868476019226597742549896203724773590189132905094117343085650484905514097659970589313412835348879268058690200508837529404166904727995911966027276844425566974111165493757531918891047923085158677003790769298710714188892365103397140390259922730823481382084191968603455030496678158323384734366562731061796894274531635238726851538798746927860463912787000661352726468385039139126616175420976583324129483649488335742673260119217755706391002495551274781407714965748664550526640698065816048063493791462818626318057795496539324968081680370748849887617268686549420236431917624065345419847162278469447613833347593496331206709073660170665043070544071154488544030782774725117739965299461254180076965389476466282728027316148560812348565094227770438661877317499637244190973622377699167063286900898466647311785163790725901893963418632866149093405717288688440362844600837054276545166508835726500532884781692146338649585874521552646902603101636725271519774374713450563609897806262326886175103614967638919916036562186448145860945970169759407098787196109099601648212119877757604628873719724305875932961443673515131238146449645123309083794713545233619287282373884645158865336007882993620282977660042759938178638584286747990718615256220434858276737188173234146760974731062026471869792420499903951044981366180513960912845884071172286054461221626943401594138316180376202569521614066580760528541952840888598074163146789426402418332367773741624424705461090638176932064001054210320304837673969024040298360442167871397892599676608286091675378789915035488215952500685730572669600432937623975850163205912668361844678325788422013983541498726852788262652229788542575193303229994737745947929838839941715169341904679886718569324011667318896070817204426129203612610905728165435681155440908724641460603660025447533940393355966765392921366646105842561306346647646978012909376466772052874062893595236946066318874392004848282981579687556026771535523938484947327536296660568243827530024212099401002891369066440845311344642164987541565911688740302833325954692270091092251903636937013932665778312418099381959521453980577931867789532086852160133787048266608902582180499462923893135728117294826932087456446559230493772950150592069011664070129781123085639991011764731804543371446390800492171675859404655481445776679576962615254608841333803956505236069336641681414263699913805427505990851842949899676137058523658583236167605362985120199103655111000164069948030655312490929376752081446955705063110815348124401912466654183018625760236729517707314657529336833031544029637863900661640670688640450318440779465568885877339290521405208252479248530840380345798253368359315799869204834576776371956910281497381933720816455992245503910359495309293292937439463333371270326992225242213537634163368683596026265633118843726655406771201938128821113306089523194989274919801654858309137641837955977582099584210301329229114732012813578720905284265216820175299352064143661257481305885414818363406185877066101649529466658945814503108514293747626185712687360552675601315941062894801600714490525759203881374910001975470543414750564981703706284765609748589444257095251347199857258811096897184625443692966325182253164046381646454481583543878147903297599096586091053567129742147221405897426466180140748041694699743175338074014069261487178121841493970779475282721695079848600368106415828195926213739435484939118361851141100175914713111926021188656781192127546100543479381729566088705361686027454520633931984175379545997766142401735433309813087126884494251836383741356009007882758140430339250127103161549302396090352014223020170358408325164467914978998711548639857864517288091809467067085592701095494211641825841444337345967497799929400062609903976432721301174201080098402932759160180875381322495544824776723329295520455233262818440800389099516419051336675553673462056064506295788709941893526390136534577570223057490886825284133020046674029177129519190640466439103679702378795464940371475311926279423564212685663245224838184618657450237299513689501552592834137560079028552549250042509854988781455008460751397498708481639982816210761247515754855204829817794932682437352659072719481566379866216945095018986531968807325383841900878782105301926762846058823810747564664569435113221317506037924246620614895414191183152188762081844171096852583676855003010983962477916011938925896921749508658645525104404670441611514515497067792547510649413426469693123781969044297359409811797687022317134349564671631130163150157680049768692058113586856313434771694851987125605223204889354242397464651619374079869567481570923479565903940815535756391311212539426539701051128184617195259054750484236766597891513905201537687009848962721469710943976694797789909878095503996267948424189608294244719124049153792282388129702280654544528634348353554778672468302893370088222483961806059206601730376641960877575415872364041058684674058764266488162190527315527357730882919466938477142099221509359176037036474226084249585312898429647343206689702754682708395343759959995431321603309687148346578051727992473038241017823739010977393643253213370770637905297281484930185166813076088679322994488805590133137339195168307368480320500444423651112209646718665096561618403796459104090677830936098569869218005228033858805218216259418644615618625183100026978929263851016833242510470236044324693470540384533519054335389954016826339043990365314442810799848903642461406256816699186482418382547965605068725896499373662770894834470972228419266020334986470064360230293836080033663866775066920615892551797163260581850005086477227262553571894102198541181009538941839499352398455504211525759923537249511977705912926624607081299103082722515942408408002185142608543185144456100377516021634699833324103768552330473372304564806004107993867438223989453517280198942305508765555643848342516417492651207642952671528453042151468231081086204846865776300228987999795140583931830342829436242644156930177056247078215346654982718172544946825184481864679667898991196121611498775186410530767694547070638948076119363308111872458548826665241548250524061929043507598043897668752667974000882629301220059512652610398873635282189288360511210294653783539786773383030935184425185945877001248585023596889573825039071020836511989160882944877070046999043547999950948207269401773939028692963069350635830264297645554954576408309114043693354802805327574663157511372129649751153532877843085874544582349381512964106397188041555206315955429301719676332770145329620507898612980796345303433450336531307029888886499012778575739201601551961011088264233502532647206295638777698864515159334364528946677533820720305610771589818478154220421737518347567477161578579394755110755395434721877555504288333151191649117903135845978480497985460968766684698866032170145785417301032271593460013007880909069643971003063416626304442663890393729658626756127567039942315580513924080474405499512618660554004865817134960343458462819799791850656342669273425954255777548936109041503625283269611421281356723471240814505906569782193590233466245573420020070237833710103196163098190569749259142906977235938334935428322691690832196508743034817836386675446276431062744629191648102490260468137845529807497819049526450855212646445386531867117921031701551953514484065722653451497383673337083904407342878469670552936199565987828776225836232721648250230837157943637310952481466552282442083191707891533411697719735255449983634585111572023153227718964895518780735396218811687726330481530558621234628384345027544205922483112632856285674161719964035653602141849379080746291021786676645931370700605321329319716988797237385726772507691349672406237137259156865719778268647519370090223069483604668863703761469653768696125064205530677926163493717049322039932508199278902184878724915713417766928912116380828831243521377106031945028372608595548583015160810029443558602413142500546568065756306010671322090359680592914136768727570990686920327978485652523021003807781001854578934115957374414435000711474767931736035862680003727396203167811513100592668902940201735221739530002502233114668301475465522937227080240623710394035238157760737715827807762886607364750635471094512602719863598779428390015716444395494865516312014029523480891634166141855854032812870176343284614974655690795688512631514266179273788113649555112267863063490297544654738441016235783633797001586111620610156637224156653971395231103132671397679629111421137556491845193310331236314301328910963728810161021673134650561579300723439247848363550608136613817712522550097908146226804347367927230546924119222504026752390797073194628041730913862120092009024129696817844490303079664569556179249168992976413571512433646464614494556097192372460109705573702188280096283561303911416661503789807652660990729147970627926065448257196173004602445680112981584413075610196657168055677424595841526049772940266673105414205977625207662818371985641510291891405738234854394636916009211582046334703761082021014835475363284661478252350630575808649715214886176115498978414095771600716602670717791989431988270998863548146657285924378822878685336555474691125284155750042820177280226332049068570031374110445324750613715111456822637174558161893488712438035820895053846963569167211747830822558324263681933307380213286402574677752973147702860587244357425646382150192860514438183429741524611078159876198684459168761786393801485229390373256404261058696215387286648976105841561219909823323789604774452186639503033642742349053042738771377532600283767712454989515671563599801765504742515681954201014476281099396243116433866289709745147747584429987724842807859088247503070769665245347743998855791178730854767619195252466010224787198266057143844691159766983956109676104624604785286500821131354484178499412732734553124779462613817286600251357417201595354314242452416539879978136113395823130136821692701897404062689061726855526349402136829178457803436147248489685487062974746343748624326605828095533231808059938032540507668994122979612962339336314302559115194762674626249862941229714981525170193190115671704479662054762328273060923536978579051708830619854793122775875691789028528203066514656893045491098088461458430249040113028007424951578965967135345211725957873633491370982505350238855957395965631616193614696030422887979610451351158997159281047286591077262575492047483007735351671524020444474375870742883212123011908338382224210948541046458024239087852126089834048129242454936103257500373009544193220603279812292525998253364487093209023605982016106017375145552820715948249405444668071978823085052777357298193084172334954689151083870114776373426183818932507933444197588376499823592160436751376245890064374957197774775170155839114324607004275230549624513218438196990064487498150368185812006577382535819741861256748453262809001430803880269233185911864517117975034972334437488519657049141373182846348109987567097645107843168589864108737812304566543208148696697644286825460110199549334060200605150372332919949097119591375750074073128710359523753089659819670151294833510508356074174375171412618355646951723756225802210421709024676193586144255889436501615197931565541262883174641424559565264872301127357386809343860029297390648822639989425510901020540254924785713078056297990611995486950490191991857676300187023317988885450375132907307413847234048180582129841673354637445090915265468617983505298459044394512505954545520239405063369729753159728626282981473301058213166916630292727854840031556960252226141108832119018315599539422393020813943714060103824434155223434179468757803117252101389488744122961774930420854289849016247692975866787451711928576636020632576322801087839985518321354861575483122555037567983184839295435381712027911089300883581392305870379631488820973704352563909317558034750388569861502866869513687040149056595053618301811597634754802718832844836696340839687357004242557602429362242099906573470323999757394506410199521891676850061560239850217448104784356796540006942637585468511846217240270592752275893030816152520132058584925825926275840330978794096200779385000463236600163891751432534772165874980024277774637405763640437214892018998568590967812996722137825914802882932500558374627996066468824681358759910652868987962056610418132363398438740558198758648103369127020744147636994274359304430456206370795959001663191238504124150493801847406658884217009409191546510822883854882983245733624743973491756592214303423640082501774323775673837961262579713314364033838866314699005263915538671643158756628823808350414774928977247806999312098169362065166112354017580031773972323797742800713484441904528838861173290365512142716880386082064746739946935178560407688836999402328921384667574901008505511000506608819214194925981080856233345372340867473180507835404268662718558241823583188398815468028335781867495970169879893285347702207774195299199134268107632533939256312543958463960065197425901372830894512226332012392231441511853656644989570060941120923161545681699610128947304544381871312006248208223271782696645652620101243716475715262688000970076461807596606252835785861031248825168975237740467524422583927925334122376018252341262302044651548561620651889412676444541680428503529779420615925630805975635185251665196691509391649981325981278432074853055786399578969543890657793490714635853701384233207918483444413098568476840017612870254512249839854830393393038572302339839682941637259740277349435872327102826940706302712770607861625784397672805694307335406980352286422030002987597249774958412246271894229462260597912207925601297781299392192174726427171549863465982654179437506239706714155916797899008644653137468696104618000626002037701117172456251630234799233154885481523548926652644153551807109937092768407180668643409395367214677105062622672022796254218255682427728395404205609033772019709510617567083762507019901237762638074697757786379518148487115509343390954321737730974698858305797880067689451560638229281158547120117434270146778349796448503186716361883080830432541374491738054243199513586171485306758208165830566606075372230623812716633915317378890966181337446533237319536207988967191774506424196423851319764294194378876635036801458019031094127314894082368252455356556558320521618858867353039432356429228673662166290778303296830926350661572947376153799367714136253643708148338223331928550385506329497364805593938123103981052016526136532228272277947567679029058794624209692280912866727647199155231727639172127884372829721498344996432635427078871845955596590641702200339682101806859872842881900484298028956365799359259226461815459602612565851391344747310634163309809599968626818784546057400251339696435007958534300311452317064641570937938173915538419263383631345685720879655018221971284472751533989279266463589693937075902043281632307395510998936821963663759058872765484547878031086517486757232721941087748678271391470498018539106358188906151548356594527175230588466818004976739140395589080759157555979087776058677757845561904303814788889625547116416216216834365694487161257022133077135566449518127228494584707309007288874714586959481197536867083381262072228406393162803515262456454112485269906341449071280067621311294071291859980739730964551288453284746464094069998887371225245461516797515512535113341417008361486190073031863699204539169374488893376244956871212034183546601747887256041983688985738461833827386732256344142904829124327298257159586023759076730439343954739092198093788495924039129490093263869053480141690816120898772741540578058843800068087337828979401964518066149984117692599710926675876619717731598483252721329620326063350564098314643914779272374200540452494986934836425522992304354028584446842024862286386080030156768124525339473041472795103451432836658745033041302968983272852745156161167078023136904038015207307909001486152932980391185378461312560850614633047650101314608234726504921772483674892262296448497274226844071384249023876915328446528708009660924237936680943077114114961921257496877974133306949230204192562348204839297160561157026269362443551774945588712310982290292005229848057470290739541749466645037801839320878092958316920261401053277692584812873275642711007021964960028628342297609324270450911002454701887044231162754441300940049645204133607604228675680241957353159498591010297232366446844072218420644994430285643772553771271692608473570809011616471316843752887843833116578410169844514259259143178251007139673740825939530066077848589659917634617162263492922100429090434622354810464411803479500802468990923098336655467577047680089861209864564435270617426523443759438112354175974870966521930727603397836160158036452334503017983006877413770950622203008940370002392896874920855767197208074892219387697089179754695542052374227637439889241005469890820631092993076180416711528656919037735664077966512938880355250108565483223883319703260504674195877643384381624873246275040412212755606856242929457152322823673776881814548364235646758674155518028496025399535185754974775496777839581793512691722733186896591055118596274624989827256852748049042382475225850719947153990057597171811201496945643847146232448375334498418730624153594631184304243603722639252837819982012663677669857890993327692804406918774678954692446983564208867638324563326670643423331470437405664383349331404147095949014972451463560828010290152086592372651757845747403860538555701699377318589979074186275648357352816957156705218922586740907119634564977191865271253123473299197528765906774689525769973882056182349419500363195478256377806284962628699622905036255903078734042832911811467575744137082056478936507709752669919394771327823388087402202013712522099050676257655920229079966292651253192853627104360348130452708400000767632381754989098341986840618051307890547514027338373233836536065037378150267799679247714637851322246118880604109510058316486765437206195104256366269831797932304710039662790697910149479204733871965729190871534326542069704123413908695235535221621402705761364411256984418299859829116863569256992496918230877222199921974176321715472458807202124175546214131721551575888027888863044780410529809424835569682879458102016683260654936781520155379579720649398961921821929889716666855159312281741731702618128914749917395884346614687491712016939486645288918246122769987007839769034664779720435324788352925819638017790188542567640650096650161682565526529945589951367919721326041854558863311182529201545511609649955972166227127539526626550895577080902320032009630259922481898106406674862522047776107052106353382866966649335080362273062464946092431748774833485143669618576220717829649521869173029323174562369216940962488989016188755439034877682639244634367776545176292243934841550253083326339453141786160609012286473284554386628631880562150077569323014080314768984832249468508618247443619115467872282659743273188357200048887678069471676428296394893221909662516746473784534351066472412068359502974661850403512689065409843650529250673156497800024604972892019655813872867747083472644679920213984557430513637625463340714272424449223554226774914466641038291858053573637289403168042454299794561358549145438048028195288802846059395287501107525423259401036345267396598879519025299854651767920518607002953573719752971466340579685272641678510295943650235833106013223314050314343228665391864455547175234204250177222044934529143880841070819124703936079834698539837102898891368073392441403504570777050460777170989826286984507962290303633237042662824116430320484064260566670417305569218402751537707833705538284840776948387115692516158068889042566809721344965286221779008802879397279722747124722734588113511168685865805184373738321752707991023808998064301230736363377721977328685008519276739288298504803292544577761284457658075754630504821546902515497407965316826181963673324325273662293013053486910436025766351519680495602309310779511552755150692653352070061797511434522635597314810032569346165987155176514539581855041271360282757636797622531402612904883800725965820496102587596505885089195330119964690206062222081983880800649094997608525293554720478010896957943694247742224718183720536013497048133802395601547907036906130153872122011154801415143494885167373299657656886483921427065158365618833844611856536230587897395183834006826133262061222522797954463119103055424468670509434293886496747956131195004239523998818849345147273793859180814152330852446763356819009385498141178094115038533581901986196229707320512522444700760179353693577912692190421947738051103606421189892805253675069093188502478410438560647562947264455969542653299651761994592321709526162546427003146997037671816736192360796530622344012020670279623809892320965999861166848659877011753353302935693087116109719272694560714771465804716046149689601099165505632870316268838372960426829502606568272013369350111047058999626729193570752290464227153049019096201073910260088408050257601447157029924419851835087266351336231987279971199961428886736685272634109646871395107329513790549566010614262538342940517804256330119340659296388541622856669197577368381879881645837565410588546213514719519368403612784179537957599406618337568948499729152541404586455581841074941738696226122855944608744443667174380521012651441295934644258751611603426215620886284503753588823328899327109191298050873822724874394119191290039591067357241457963912053995308980378686795033458356877878622947981936110565458628505257105073406702936745145379371743431239309348624737744049694684029522512426659160045150555053147233355471107594095199386223674162743220698372908172588666079076380825281962194358715618621567863253503293241482071021242993375471240745954436604538420157804593959398839565343224383580240916832622341321512869580689958898791359969004213382135796711542347328843554917195951509662962111638972019624940390085403102160592295585481188256667598073029151609529910362520252461975456260998845404015894739806012533907947750930634505051912753662356589453233745295619103523686842801417129792436011071211304099479320315528631964665909229586658939704578657844067094131678436169662572182470285099100191390788894866123404017386885040113557428118737826387783367379115840002273334742564592599310871634257394746421213665048669902050441191019224301067953534346763311170433226132104590150444000534129073010198679418602224018795827448402820335946006417069618402363535092948615381652801327457466874792468738948673966324983861468563700706551674051171682509329803194120913528637663484128314289525655095115375246876504915900220750865722589499822245248035332820111017576587369618982644169292284164081263320077745137853192729459784215576608715793594544120235114567994407158503766987735210651006644145718961502671034076906252442641649828896306580318291063211325251864645514206987465412081282739649832500072587765289389653746512127900852481080570667288344085552573222431584947069346563029082856653425332627588714305031364594800039457076819003401170877946215536428471142503419155800142025640340750964548408819695183102555995794646840854260793908013407375290396844747409905835204617355183569068848565667307106258526980862105813769508997339980390916134478653560197840411042675482395968255093985753234622016086698141945271223611266615359214675783200557378089166422423604260064858187318420785661458242057334340295392484048689945542833968149340275085683420886557516045440119316547137899664744982413372238923472744915759604896396109006592528088769369764646851132240645200819318491664686650978811458957300943294342565200116471821916820364583656617528340526894029822787762853605373914512359506065519551053271300125515394882721678947436092810579287530253420886016134146116126796463413808673462981792269905714594226975557894236380192665688504164994413934416102152735417138266533762250307414595763174774747540095532046707062825179039067145873894335074024900765560327871093184513161138618058784952858228920543856372013673956849395900897055638242828898847672790143745462271691823695050895717748042323890383254084172045442082183193257435558484556029961640993653781825671680207529032225067615051203548931396671488652097935994952290412787554037142485916445081185833110967814843023216945160777431320222590492329039586877835666356936285682566783744718072198042822213104625168931189754558925180236207784490756943341127688114744122124862876201284937693985484385309377809849777951796505186325346293623820235622609179366880534651952993529084923177827062158513248790569014361265140208800052940728294181906058509043104204767055522722232626341198938014595718037815961001306699606121962288782500554887670573537616414160745905657296977271854937748213561855010885216925189546274563615746220301365368171152602600711321276901085745168883494568585125387870667676793004935931371059749590585085606134252804400298354553944693718672343351697443635634458120558564172320976847296507800131886222786548111203010260635005821816288842066347056818368782099214518822953893948483750576159049024812435848036737408393395045174383981250556019188987479114831988741176570485910914173550918868807387803164155401767480458330730968582517281042052489339918476769285262812795886609486502551219834499374482097706144175427531136216555352021661487016110007776856948197607858258273303191944565199581344037757804881823414064136325496481016549253747164228667818512539350594716463305895229922055136750497197549064068403061764592764051677582075587655602715535057513174289584694732081026740636845151985077751605537745976371129222011136651149684511230836088890230943095334308312413683033091422849710607405206130535917166485291300644225856245106391257380124492414390883069108842775335397965703628062848293872856191140020082678498372453738791519414559322266828690456457801096579318239687145993570628777895249818474003827047110383609347423722990550660029974512229301685470841261102428630937112769191585210616032433445429340455527407734083827008431168505810475495451126227904736663019074150753893808973005711151399963973194547767966086244819828599394108434240372007881217275116775477365121258461812091107550846289833489323313891136285949364018227434900803972315726981829726038966257359662925697417090835372854941524643685330020070295413879439857758053867533890841133489728748417356914779604409109984736711097758253504174025694292244247089381690195361527138136116913935695908386822072341168219233868185562393117424290051350463887063411943297833291656401654168112149929039712149900859096205383192436465475956777224392708321660426227487766683220955915027421085137590218076304309400515905945512309358365482727950714752931064897486416000485890862886803082169814118170192063280090736956752398591994962369359844310332847641014900026728136674372671204361440348963277617655471835463638563494940210633137933235119458844269213319139771803013952751012566642971802268125009061360285273613167112362278646133931031387399145089918813200998927862525938068786072361340238123619786890295373708979721033381675222243469223678641721396259362811744696550878731706615684525016918592583177580131966583800444565783894030230030707603121646612787375026420998998935492483303838860848263255100015926531454633088223277024894158083282966466270006574901860125307439580807693323728454986520844219096753188429418760351261333255771499466945742886439341833166698782811381329473282860423243088395051627055800888913224189341112018057171493736241170836136280203910071192787679921427108630887508170078317214922014462333164185968548598858074717007121635469175920030664942178949007935163475045804291289880415288460030641438256293227583301986601700867374555933355190168489327261685941735637258270152269059002062428047999241286782176047973110928609607296458875384491822911000014519608584318522865626836587230183200442977303276063706375617593658257679748889926967690777533145947765821552594395622037457208766560512831318339036261039369889796567794136408451070467417540236386396408429725737729497104541160119844360589112959906895172601366829123013887395847158826936643521180283626492887314821230362298242040093803464063428995906818232877934580149164646641382128527558608267318260249747052917388080915472785204044973923597658419166507229543184441823029244215598338770389419995032986671250206146463025598095355436866103120584291260799118096196275355160013197857076776435826172044643051602210491872576351446739958752560230348354161057010233788687342010889795260138932257117505251079266911755139576818960904536377188620373380432163600302732475804584171082402368194970844334322503264631438082809131134442163260314682522806750358826660466606909460358852589319857607434046368156507533351972478433651152579920809762309789115216804499656077879338690042608174363847255839427536208271691689670188161493260920516342633705278728210971882212743360777211671170600796965956737063561143027955325053848510429996330930519858583391880268296192584529947971536661925433081042451410284769693218778436133181957041113546149931992736625641291889813883753173913554661604013771380175452899438237902747467436813597402806170888599183099447111731925269488191890044381512749853826164811729431667470794896392516098083906588684420293294757041197415033476280110906804413265351404247178829913384507382795615188737696925911802822346203897010718534728195977542573701598410903346572589511356526764048916306647302125208849660120944349482086749240573529153673181344237603897304169317945526661745076286556952136071357244888011263161328336313684765645896193117897990640258326203754133338197092821150475126904980329252695030992773593585559072359093024303232295623027613750018959314553830509561527283133608418845574948761360393189902814561561234577815335614771378755422686514398074678597487352349101820212180316113104909912943840771834215725054008598744045887039673613222733018743989203767072481558339057534979278142292978562583718967671061625493523489830804460595997038076267239866645163204266003051027132316531143496267175595405481931719915054206388986064425574018359978968145422007027863444893650933102506070117103851913103885817628754018486276759711974523044903545740621047150345483370630487641641151818272815467594937629252958376327011446647320592084726167465950898130342726786243039960068323456821597975982110272168630367348397991893586521944107757308804478517833289473879480140495701024727787939492693293389711680288146952484180627294985912329507398360569785417364372555932733721052441698236119566111042688366648797293927636493913514273210569260774596363191381326752885593427230353347699870585806121775309855865521139889577795100950259070137683494701636253981369833815092937235519888156642508031551472368285893382057897298403680411391409261590571121799489518641233156429100998737959160162545148725978743075537644050285183960516970688536200997415974771582209191014853756577392421266614510253357322966221016879995591788315908054096430786003469717078657684956089759951141367350750454493574538289278478089783561594776288309580809916806111494130798486171470649707176929230312117874186187729053257369307964362858870745848424660136267766349486438327042393293895932033920004936338885453359084944737198080578107863802750345224104864077598152325890961676738073312961099323502627368877172541047522461987947904004861455244347436220624512317538488724808755801005339181643636493856861021828728605799198592485068444885842053872680696578521740787056671337705279897446382704269454464931103244618248626126546137840978804209348595311659806505911955775285480738848515394331916215108225419230603014474418874632638825420008643562388005345203353894601141589519508785491975902707113881852949476733981932445979881215091563071813840848580438542245838586229284788532959582305060977030534565750593989457431506707535125833550425123003449947964250618307751746778096478110772041012117323568447899232552364156435284581951279482654502644722081103460024644322888468219747174199350331244800236584962898698032439957479785728185768886472987864130094858375533359292759228544201856034994385751903113373498819705110916720470447788540915406032927695479702715143001017385397979447281994305860440288215411138429549696983578965013980730505682386093921749517778037375779906289078670706965936731216022287245366074766847192740109752135223553104617391718541792789850611572914877877322611081303018290562555626968138733240087737782279275338912718164663230360200940719615231455941102044808655327330081479673224108418146086343175064396425029354511350319118493759333730083571922169908843386139732982058281539793645611425675234148228044017694472415635509114312267792964229919889053466264421966645029280830691326190429279026888848761584161204783313754216549033622412796734971917669727662260473744111343691978707070048048442636984119787054664104517500510838883397501822248909162893615852549478995283265151598719774944561641824710372161607238485368331337703476685685278588768255653937430865851047142305923756906975303821250916235222963553655181681119240041476177114319962516483234408023605332255405525277811563974894057887100141036337570976368491570012161687070811916689796244908381651305732548359931932988527018160678551633192599716350422613992413527663992706991519689570003537361864521617523815718245579663911302129056535735029352593841357641032328569108784792073162982554931786599921887155934576542024803619362993724329643048782819095764479451652079547651463038418914667211194184285890026708507494418157636265279062201776549616653143320397605654176678509544079494449579058116211283058280751988382148661156955113937195900781899437118699581136098864441216987814550437274728419981292392179090567493662338411577984971542444056660310103735715240345210345343697902539138392285667362846202183332257214935739026737004554461139474396118712308084928125953238048475563697870417172700674774083227869337940288304372190450458944636555669539168549140780870676110409701879283157397518101064942790583671788711772870523052331039130690713978879939168585400369042204311420666440432657782219852418299097262252423382548190135583228572049053834182918557985733526079889041732531980292930360673724942423761609536309127964125082255646224296980366837229533362187722057723233799014259977174273101050036134771317747249965506515498800017729431496720466253764688329057319040649438937215908428507765370556847366174223664973609964540238902640512086588266476730833932645234578644860744953526436289485390020347545072185664586295274255978819331411913218113990985389316298533463479325097529014695333365900053644734984607385769601407504592232628145045650395049100374191331645151068161602192216375166591745760522243479809362336755527552980774186491534773659386480438902110505616258460068334289107913032107251854899397169066860565210825469715457635781275122246729974156389995233410210713817526891346113212656776815189193931184477992274252801665309846006505446194422716374350243197324369960780636291451403755039799004408036952538013412796304554517526556727573593356780847116698163029519757064830763368452915279661223517535096016149078300863295678098778218327771981427855734843178757407937103088394767920913278830795390440561427160536903293486861319974980911436705431067034587164828321448983694613889192447078915315482272793659559409318732992162093774787826780337369883440965959027640984934783258559694872618493123141329367294221849763591622172579035115177852233814562311684095107114995474005013703284138593127922654964573535753205608954046601337834682419283071457028171011461041743131145788334171117041984997389544857625641468445436905834600096272887848603479635772362418213285843680089141675869475053211013087851211132555107806655302989190870407322784221807630743016803592340551820422691804749289558627507681373123483787987288097029939621102275707634592230150604259600479507830216858878748195115002431746532977921179976833218050568177974201882622347503336093600555972335621081425748215277898500387619126094302217313797542258420852756399114486802099905368564380750363058383159517773956711060111125575391121328020513364278799570995067621264615609412130050217055245010177102524973462776110032650106676069288538652223295604078229127423875276437493545097356856671461187135994845174881961760280515430268063923918678453307494770683476775032189309649488347532549972103139069725634023905244921372006804061714504951259769358894779222831829261221820430922178101709783702187061467782702197000227932765242369881569610735399619670303112770001465187429032189506108189228431656464317351540863330032279443261723645010594813073292301479936486343798919596582560815182331343292983732977928748018684132171185888520889322252933684539120714102890407397521918703041460013429162357439630352133731056317547393349535353021739451595782651018139505551446477437947684197519744535465550807695758820839073367654326255913576346531935114148063082086790368634398682902793545521050257145087070505140608077787081601590146258594106200154962938400167820223259846127188869697136360311205702346755896532091353229710825505351803494695023735974249261008414552565432054461280842287245588172473452185506908929431817052800986683778165444105130742231426653138973722224678936575916038989273709915056398415208376853795671793203442994971203028776389277510703991966323730894373503144156575444746580532991644356957757421423402032202290233047024872903759872009516007519842513457124875061825875036992888143288443972446115571720780722726466535219738150591408006122797272691940488950788132960723871359407702143096666419369245828024309630003388937992312856580434674447337574420616580808059418543586890211070184858209961040380164364450777220628901599030970058348382958263127872741331462582166869697863360813745175912673152504959430332361359739145245138977214952148012406547643432573541683016963573310963724809703585564584289245886838045981731784439331954796722100103355990424395828458420447978169216241231834088487839014606698022796892814558930006614963987686656969218409691702673579811501127378584313518255454046064133081994376119412875966901974947051366850614765551341326086648113475142357720978894279039315619887770969478982467217840780001039201074763664630566962624762551909604937387423381151582796846963947562819163615954188959930572421363365673332046998458584477686654990495498753075834852851505738629944923155128243890413437808502893732183289506756745045322800833912774949815266569499407081742744329119103289094670532040849789229760607238770132907716483292945555573286363498062545721443352408668746548994525068700752953673737779079642300188661316011394910036135598170333134102863450568531937931044333555538736111995964105697476092136134632817249225069102530405762155925411216572729658769105561136301063009508331949883030691215743254581554055061902843073353713098581801041753852635479856046878343480661609186157404201895859202977066019884148241209633586297022530859387236597036122715698637295585984021193799009189578433306360117718383015948661287060126397744093390587753963227909396299095238069646059452416746178253544844606160399579668204337987050282802844911582255614457287231788123205441542591092618485427694065916201272494822797676805518899859105845700938714568324547874596854833000591939544001515928853944326878881707556430470318387023002574325094678729218154592979078437784259271030524037299910573796217555585789756083141191228079572986364284413126449717336980472215929397624296364128968821681040748042715403402197254452368070179500492452635680263339787205188764267569792546601333429446262128101086577232599056407366035856571960415394620204780712074654883086118962565697283359155196239859810904685659859088843069577306512817130511419666476242963575114208648866600316781048014983482898730591194128400531783756804217610654866498970841118765290863002642138718669198080036337941321417822810440003643787854573296646518918678307656694847264970646438618717337831854971997097021003310994754476770837442485065067161571536562879242730361100036459655229752478843809548611497648819563932320029482775384616873169750394649559129090370131856687529981973224164592724376658631877508895843097725714198289695022461472641770093684613430973953279369906029982443497484555927143694181432740538082988236629227053861493880575404028508219806087775382977579131645131364751341447991661370097734044447150535882783606025259446223214376826768597149987012674707273889078939568505363564253333352702463862648644108156096738880218821078890058633700024302247222115961131390782283930395797787077116328843174310847190626200347267431056163883182932086918203636117118091080389954835686117688918938425756251971594472222280327042241392957582645698558026783498360438806305390199650669770951828175034275838944346802405784530272456487949760864389171304508235764012121073550217408195798819030308164746510610053603680434326139559216602868209726479970352527667692967314499979747554237754674622783491327074430284971476912237766313914226602003187550144954469946726225220915954567585545885590040571732892852679911340329628895935281030987550954012338499635338262997982544314133506020051569736008122425265385876526383657751831920501708422470062067023242292118171788786914062368659689801498384413674335435763204998749239248710208534677901749203166946337064644419872499194038881207405480553424644248968538090473189223275897168785607784116237420379992361883686307661629817298539601809040820748423282548964844787623471667179483142226930750282535977896625960484269335746218006610287405497753728241782466531759970584219496375381767599799521199054385799226809641275575204310480313194356012995942279054606933895407550272190491346226763202507523698224759518850170574269144077702379448356427376858969167272706307808611758912983291904050627625445248871977140815708966836797857654323772812177547571688952349005882308685523592244401906027876944135477083069635407137189821564265549338508649761923357653072469888138133724975753980324854876501250376205181764990799249711094651659590111764918032675153021022126150776174031200638472071395543928388845770431401138029158470829313233089408205066041539179894062787079342388917160838810261457546902052966013073636139513214287967263382638242480888441401271147960273973466056261509563961780137597808532062313524758913135168655651208513187600085258193726656483575035466776046035482409359959812534349974684056202002250079400248357655548752359138352468119092725767563105954399117358641792453518454132780807478701127608259704763923170492989355984011117542090849350401065674504386251026792241144217485482263906512134406918067983318482575362579356058065847256385560514148414828402656878993310702843264691863170340919088353751097775952689012338978660885753581213872091778495755683695955147432958164237499837034940513279482443126281277699385007680230820580475624973372087998243894741394491583156889985969872743296010759763190989125056774482050166510211480776916753864750583791134231430019655366305813309755888471087174892996648788715726886882209894803392736843197147637395755434238496810099263939911916268484902693386233385647150323686289720308509648547034857022023374185557156600852595106964921320065267661825142304034773597161850371088658641805895183142822225339822714410900031990045384893429064660773016444065009384789032347399695293714220305590446892301911969003990466092285404310320450447046698395072442722206694027935004473058857618971380849013888034170352625325635386080616737824838884805705820950646657641719687337089715544201479518318940203565433160729158074381615178538265716846660723849308766585059204696236214528963590095617025462151070227151162736835323486689136858914122742239130938754139970805006516953482159083442967473114417318504733892654098901685185233945897796338290102381716009659638678737582389277169325379079492829045397772558422267349188985684628400460597277339081795005672804385333367213712714473123862112298103337496069457320299544157356832729582865218842185832014292747964352056383906609694647890803909994696756275083158076833392507643300868043358868059904590609795514216603416856692756957761838802140731805319204053741452081600435367109466087364911465270427691935296489264451464078939753862487452351038458183247571325696461246392662936833992327783237463022676889757891254962668344990418712993583743491990861296485135265625824805343978482859907009014443440414357751367555660004112418286878451131207826259422606765457532624380601407417859137084663728245726552628197170738589576945681872788401332482574279442984237509019212597520143097593651857940109858521984271355211624370464164501179124455077577444432601335284895112138527122319710505015181805040042233050187937084733555633060440895667924248475086606172213017611624174376155059021393400113663681288497623152276811808840706147892127305158870110036906480420327964777354251493940848074735848882735296891292039428160331200576094079282248594086919510303446391160916428437154817053440136655707431144586454704851709145147635573862976021668021925774734303291529363696201684822062562074297483123259926433920536719299289667192440182928973639139810201858350680499331108007872461409749819389619802617609929481145593976281283474532098651021923512612640129461202527946828002684835777468489098781287341437939312483955045954993683823008665966662409408554832996944808615717443224711807612437958820576911500134262829772599375219816006306691401213960384780840984303621424546416747307625747235972402438791738825256775675510824676051284714743626038610771707069568959171372849227424495482190880045996712324443709690364823425962518246406447784027895163961388884985696641183163701570190553155728030807933875507939245843725183252896206032850150306578014591015069249413475038457329908357938824764725556968737129544490683023667227565881864868395116396823107240820690373858969459708631476648996771371427663611294580130075874512248953200928429730183582447439334224512515596562294423297401665105185564494887239408552685844620274057550020845081719072698829528424252204489515947313977950364565212102962562887539695707553254352931003997392356678303529608322596671921446103177125295958478280810545223675052021878327840225021467109649514245414934311137791885730543805519073670427898798719520607060457062294829146905813212470677682713780195289602568751820430612973674421818677181017121665905989489941832744075240360802747687117227760176711237435045634110424801206135219868754920822903471028452769564287802886959801605537832578412265177542438883600692570859198901929484871598184440842374499497555661029784108973235442465599344600943575015266731951926097435941167526320751179072278848995326764079121500511553038354841473240558594766944803371195800359422899507720283228973348616324036211508835519842634087654844577263029614222172165791171671193038490304650658398345008703059309863923914633166459846131875802615044829668549032203701959803950965856754804133546094516972566329617226370209577257904594138731755732433577087210890645016776457665643227884589194168611104593863296954061805958556837147085010845887872621828163882573407453320547781856840779082299484727525959029430031767022315242702891031337139579511180819350614600515093348821864163940912282473637400403145699281194742104901800590664935212781642725648175279815494497049939982734016240749861002643129478925261864646604420944100112655317422069780009105500646015965783549305354570482344196407648723884457715545567535338899121261260304981154520970966255847587036751821801520250349887647827820991354016667915042933559777664490079467300107573674243016610840569268682047491417640476923672471767047804834057761718356578984769222360077860421495637546240442793575646135835559491236404802357337366652033657291732471919000490250164535785554684116887942479674496544762804610349270179262769969809973881228202329978772866316355769830545112140530713956144400163901845290472412553268015235771102527893125717277806020847387224622251998336420866887272649816707275399678584466088752532528660480361466816513023549621035347191874349447119054625785954676250696282907380709290849578986577804505042793963913902339527175936269142560830685986361218518409645194967101885043582117848970029636172145337809332075831661991096828002833056650953043216761563958346151994832892286508050409335662481561566936512235218002969716284600483943697887397416616980685345269331125216683001061390948746264630435851683282317284966452259956546373742059846437045356315039647277717720707211355685537763080303016458871163030320141383192239734241438787972326085596257972335336667630433281574714133296290840550195295438264452897814384589442130012527263770783798930629387291451499426569403382622025232648601926497565201863010467700760369658120385139606584175545695111061606346896039712769465073606359789781869483972928832066379989716759953963710855740272155718299484545890944785488892629224288309954968778832325186839429495219672956630340714468979940793499228817206506663581384992006532970604724669755979939776774135210333282723256402282378967451556939397320696363397780290835706872416050184171712358509643699636358925144678143715221912851249713424267692728854418999394567395312667974954255157250344220405065344113603397365642931482861297055191278243419843667938377146748181302658263016673843638362180722091645347265201812605212166797997942874975096427628162271444878680432898949885322845992479755308145539690088591336940063868030166225921194484707223976305855023631794037892275378851138055883333496950874226061477669367710595989790835560298881265590874419100835631436999533861030362115618822320560924743917346151488258993789267843270567211896836139321190563235233911582320445307866039469543253722320325108171819742769943301582435691131779494633577507526900557597664621419904657161848586186186052401177351936113639917012124575467029522936855420092769747552426634119065170563311102963738726068775305339379123739905394006426002663278539647999229256299223030427566382214714512614957810901927640741029852358750876159975810493041189699487734104144668576536831177135861669674417893929658512287334727848141218229862708784938767909615209141561046795696420471223238658210449110992816156137966945349880294068076446191257841632377778889723835994780229531135727952480193910519778631103486828040053187096024473426869772277906391115613829999450907112319923224056586540509153208489257163185660380240510029603929747945432511693973560630647423719010866406595889993750216228195223099772834998749419659325702430665931956469600254758901613179568198923646579335424434560739741191926794581165624447362502317272556489622961900388687323764439547449013646485616020548576854448900119593764112333720923559281730775447378754371985394238114605616964764893603994851090491081389414920030987328014516445841159622664103076398142287085979843353359624779215217919575382809890802126125314373461376458257666670672236700120971118288386399287296698882169835316774530907458809917007063887452052512476491367505273573471317649976495942058460844685647497242091340288528499150612668758291573850896134818280896818947449565887961928206545909804204974392651824468703815494277487210404479878518667996606722537635707268151267017047872366893662685665402046749594447220407996880195159314360897958412693843161637259078493089994562132550268508587822884769371208934442660663060032645853473006555073566356709498385341563084654415562168871202398601684316687094418853482519138650412765309266176862563899874872598772228073115693155185145712089037737717813050770232009940063715122529313074064630742197017365362904105017166344373177952198012905166415040991775285736631956665503397653235754839414917478117925624532469033760330793034859823729764234213862148109543169929852868105145682546635852644848802804323369066876360804205066417945794317226303209358677152448338887608737433335938423691488319550395174086463814492390435719224012002774855132368025876276683554769390250188699134033011579544544442843554947135165852072596845335477178753010030712999728779263144386333677714141020414362692094323104661675561134425172851018388911095106657530716823064064793487872639827728922265460791174258987106074366872222240011212869128372364542371632773290392490481478093032667291344322511109921169360763940889010708150537578301624669513004161763805249918980750472512687528239546060377914381734387236126001326743545939072573933298880409280314960917384537366734603675197726914269523642287088662839166116266453013897376425601297398638652288349814384896409844545802515979365192437787902548179324507567665898023379701502006861859684120164093540879097164066156744322620335214195370271644590276081721492126699369142754512840898079109505145160217615729545723200029759841561321487710813254797563079090119840454187986214909996371903755166732020642702741915630136042161362132380683427279800760790054800119936112422049093051744524502392573347703837744187145711799211969282389474805247245727906956399937328298843696162571819433476102555244343957471384996136046523794015899756041670903377466453089997216345504847254109690667998344212538683745241734095629451650974953842283005962596227738451778192424393005212617646404000417018545164455133373990962427085676369775828134679557557938483080416430325157682072350326118199628303349904581529310671909410079182966233945399755998834048961627532674939173580871876540077431730525723676556435453215928408287076671558112923900373017972198400649032811686084133195438382273456859530236090212199696287557393861316237990710215748436159041857509580883539164477052035994376058261505481829923757549993361057000162640610211617556812404778376813495951372022773061980904388378101458923591585409633248496007718289515350255813275763643878184421712181327653201261090684805932005162093881758467197341013890380054436788065107817864519971777478014178361048990633989669709407831666875821411937604966626048705144235554220265158280154431925995956649810170131764722387071409535525635519515995697711025141698168215056129246654526339014863425556648332191263459867681550453310843945296799452098329488439575894289411186602871946210340535966958525192558753118683627299977081965638375477001986204551383371035404191580014117885313753840354512086900416288887893202610482762926156939420978716740712807346437693747117775948668211461944663934252091380340927638318629608274945569464642902470809189877445186839988623860336720768678004425969107663479157418991572858742705563019110995926501870553109601130698891917809687557287285976954438024060786160160567783288473437973303628861384738074283742150307753974719007027371326768325359073511517326651100454211023391636116198055475655555417753960257230431159784548805614731065453735551815441830233231387650169740477690108734202355956682286608104524304920791352339493311826755871181420969581962466534116952443128236494513113106374977725311946734716705238193788673771924302141228976093903751891117757660875666180982240740761602884176192556081979896358012930928795242373224357200368218848070008832133581041526492362773232198930163288682880468976103935276121999052037316719218755147800593821748925689145670543864240098651883049137743126524611620443646228150856877695406077269799924651391710423391443403515570056074588335369902088251313569004942758344749225556959044787982096752933225460207696402351788905329546970866102272813409009588591511780407249006875082832027557253695053050692948556696978787272494470932433891149669443625718945571909153841589549493278666804289256145432770522322264280339745139577975286923189570508597977290723817085631086356222848126083201139650767307416171556903854701778886714962128441368341945245753204121664478638087920547466832351481285382381329897904404173961031856379604002869044197183386479153739849435545069145646529661145799972739974756480427823117466951241784041653906130597949958161451012798333303363045085749996518862918493772803310456407738687615291929398732442021808365184909375187408727380927170832026838829301911202258246363862231500009350640467331414205755811891778466080513757608424287073777595543531205878246525089514261197165859657960005590948936549551783698782270104759511237304969826273222370180942407433110077764617908214612230674080977983510477311657944959929453349839547773086722299622984980255003845557825200934270022997204605569577334925780706894636543993996091175148970803783626702229633198586113649741668166722915158299305582946604129640903626096661642458261128951700924952625115356371179791261584045143992910807595517923706680049315084888307097282329694476143717233852193459282399428224387110167864489796177531038461743147043913551904119843254517190118388552575852292811729842983031961744960682140261324428707251305651065498867699918103888182186860469329552942272558006246679538339273167763483708618870684213270903540799161538390261243010880979601448804568912219237253540875512767549308519741177436284553724921942543459276489424359563845077644761004521593948761988775037446813812205449607903101191512063937460459092150550019562434313790162583236422647643096695871800589778815651669719075364948705375015480121845232219275246088091466009692151593766681722561672920931664755032935954668726390033379350508543364489229580680261311241257183570903660129490206133769354346518890789149153006368224724804815339271601411927496670484330105337266840480106217651296437498005367172959407422534021768473487625892441349379995478118584140629294072540877644687620987388698524970442531446636367180289701324386951923821757569694825295866724479119819619842369996310104815168913544659502555438064534698505979400464844076296289914641583960719977009163856204680952460670753656100802435624752611803332479579913410055362930889865245056028506421980777571225873132333116948721915420129179212098094255515014009027142256811467647864384736183518578624088094428144010356618660076861536924583574617053971630391700350379126745499330615870782696679353047145328801122389135007008804507215915396796943945762529683917117862455181970756036720401984375640711201832666024318527640893767995563532188767764186670796845659128403805641298650962034258078122674922173902882113146204083523967303643435572041398410350015910880008480941745942899341285040657445328576220846883608417363871191300599440487256352296133522010140635583721351845235702738316639602174050580829000651612800922055112575494281467927147882423006469850788915113794490177597417993310431110522070314456668475290706692817079852636627693045976337578242597684253162865846612270655986449084666298281899650520025305620426355926879772728418828872302259318938185765728802589114433188577590871374676684251090938606100806917165559771295626822521753593960782707003185476336709223368224034240439879256653669284304689213348997980185009130247587407734703480551333428106842792887380990861564248286106441376870640872205361349896695859821335069798022809288437627973045970634104485058282850444394863048095838182731588028259122496090076297492049529769816037064257598389555885661354090388094616936640024214135978359398768797167817994662804363866999159468263133347767029393738463816208922970844555343483222963094680611894864324702906352530281893250256972859620108642044534691458702659908685661239416347646349289383069397944800826692192393480586851931550443107240462550940970421162664891801047923028303170919570777525883117855687525467002531110669262519165182364152720471944440103427393168546675754604243973542927063113845162309584249939095369357135683689923531343566241496152904657157478512841140410424033861657162612215492935498824394791340897450285439895668605883048120117679084112058550668627809832621505866934716007331646742482591075405895345537303788497271318817174305963679698663754325441844911457922733461817867571086927254442405407075891951953802557095040896597452486753270363970584908762803397226026074597979847690135119019886174132084382534265082253428350734459828788771292439168747962760300690628337397509163678050926937522199517612130912533847528855549803816700587761440989343507790215159739385296629329114438960379383561340201865299840814056009899265096059917708024574348742722850143008499343969809386713616696964815778262229876619505120577646882293004990604352977776434085663919459105228502421066426633566648702461360612623542289479817786894361738153200362759350757958715912932191062302980328456502912333733139237644271975339825915726290816768444117401201177026610068731385941032934752558713482816928906354619069755327635838063061568311302866919580219688024934375222892895581198600711650981380623008157229376322788536596713226853687821627978494859847387789405930971491883161348158096100355519306769140375326704085040531207060833154595926896706016132025876176801259761144383154506017181435729630049162166160140990399298399275736646598184536175318329125470039575185478546141435869510753080467488304032692587980201268677869200575436917267318887333981255287560743417824324496564663595091432555016048928713785379763834790378850188849802998648176269760254278959923772263953080815133479378052838796951014576091266693603355439639257183880340813769002259306741461323117002680048418979382297941371945732063064496913142982928017078784928744889034847537682160188588124390873751570968038187108030781029233108030362725409343960197054629659301228535583751555731861186018609599777600823782627499404344210064105903308354658500171474108360054602980422926202373879123745025109834405717864617308018310097215377211952960194685034400382986956668719565795160685240454512803074997282727447128747719985340229314166907255842008495387535874330811999680401344937899421075126535124961701005624929677810482648926206760001734931059196475831325985763767895697493251826837833869481260865332088887207446225712298355013840549968557729756480052194211267851442157571605397113343599926256656356042674155133930076185086432771686089229547008013474138442036304401936838859015505673848026948317138655768786044622665151600749870649567793917210896868765686892236891413662064263996456268004452062517126611001176935253668781277586972834088661813046763940605264458072890684628853332154028994083517074449893093660832936594921644660318782920882842183184980713653148299938765107362256329295081176133849349529994484126658071874296136505911184999698394754758937308144973119122772664919643070162050812875039517794830770493966523517065501129207999890026259080158314471038333444225373650212529599275166845732395072349482159650226106587299346019925408524009606594526873734468357792148717471640483804159385107402029535502194928490940886203475744857609648720797014800788158177440383106910070410275434245088628114593585361521832512808282335483449405558081859350145937634945868157110979087312940763800862093542061013113658551490461810706158052921245886268471988426564524499584955447341719137693488134490522471214107472845572916809425339288169611568177439984449140731804029829436986260256822645871661010490027687399030002153625385110196089434133583004738911764043270565995913921099139870090249052139181834781412084051135001160317222463909931166305384834752746014757700022367386086013310888598932918679735412922144873477354453955753409961523569377682854239518886017472848336179009551653746571666142130607153466961349286226532160983461359115826442655680399029693453346773900994422572491966784660294700148038027642963204951019668986403493050319249293549200466005690692131795433556220820817905034818948774003930058461328753210124459215353475716479995605851264254103140823611437832538197514417506732752854107724170476475313513843709582737413198187150024837344722572442850663619674669460859311015390328189422372170931397576820173781045883443135487777647507468179093250211715441551872179520074056839336984526573280225275479279568699154109181612094569202636816945018253013005620374876591841476049840358382174857764515091350001148598979310558923488923741234339598412581266433622982765934137735423508582564473895532939985514166695555902944285407776653302581911117064892449636111957182198171603823825162362831875354507741177637038111832923080377196334499522535869280393717100913050203877205765046664019241396297719625630601607119711052855980641620364314357676271003815120104734634390189773835834311782049855892126195636669103285432702655230962571087008015306663987451663211254470764328180210914345280856338334387117918925043938300839821888926747990667104854743859577580576022686224134864232169721931047345072642669377931216620840188281931778853909032117847809323438595058610970238576145638361431638585969783721681116272242487154669307202347041776593130293771663490443723192050381776303252116408512622421434925550744367156820694991988831267682392777946848942546658389157419793274925618908202638546219362431710430716788359859999700851859950428173838380182433403393373103646336699427940249870161246105530297508534869113521710278288218850800206908168553014759215876451598360636169104172099272869407400133879509201610107838083666579897254742892696592376323697055290541223800663848911772025054826998675522047275915477569099657543169487923437899624305944560268492074072405441440176490394733225267929972682655508227171978180745902066827184614127807724527455573274428166794608304169844679995265162408044165225827817032513244500024112986328157800346877391127253895808217332011431329416730754551599824239915682210661819183800402463619974882523250560656102522200300006032943242068837008046370636684121233895571825755195379107218396994627669084348655131269750901285311217269059114079898037949552982582957035004591837300544796316827791548798016692105782036461983597646191257944474711086952165222664286639645799075482494084583295344801798904598460265768176970124156393635986553369676664687320014066764760078697740381634207739420983347091685637993997394299370694370973620229010370508714538062103427281044209525368790407649156687577146762924217979092645196407402106793215225332747407153194513199925748615053277491633091173130645348100700359235764161480490712579274869450973387612751224304338735600750058018561116481217082492738209516631484617735679056539469102706385712558532136117173604968944306988885552875472137453234657444403481316484748813844723526458105771536637872179455176833782573115105298989393538819111238693417237333236344883024881637304027569415747963094031471996484349760410216176939936234767619807729699232646214791131661727326570635666824056186491314425087930947563282083072752937823072969655039015834576294539328985288332544024826156857896596402173838127199987584732773350226891769386001737398791439996805867852111127318180759174093545715973474592744986808328533375612525594759352882648891349894109219320643343305246208897311102707808635855596048128519661924946284917182239336150608565098688519897020880344357848306524439309258532112850668713198740324035665757823987759563458505882131215070645887211722933150099625023513782365985690453669498027312797678923014004529872939376694281041767979587566467979083941507312235764266517533770706953757993382192925906524263026897998222698788939366210310621478688724975466682778387955306682021097498517341822421052984315479790342320835978771466522483957737780871597877740704975904800773891792645575714521062691532570990140481904897266160036910730891466714153586928769382547080629193620815728782662169305975929042539557930551773096030935972674499873189003881954482865055470289842532441393267453870753060156866140307196563026904148220332802796396558710187280599895460000798785716779073371510682626794267051055255520810743446876795957278347700837794118320515985157732313811413628445155558793861085427841865948567587597710963335134513540746640512753182093273397145571002861606982378277761875915039986370555570867225383420032600506561390663699333032026386176777163572629930854838262290262198873891759653581545918982849361693426336399114900318879146509538147256378051397753724418154124890803482164780601789107675400994018939000637594681997501016981786500639469117760652608781611623575094288313168713739613971188470012341555467821960559091355106498004564745351042552591483234728920624363925026672440867697366764244531526848408464115386577147189327442390531364360119751428351303007844481371874162821409619192431502262589039664828306889984814713137778486258837780889587772574162873754615850226598341833172797315425552021898502646559254857622796455644244007373710475866691367725128283859758376552849586574883692586112651532026789183405623274059900689907134922810840037714683227054873183999500518876948079259271001298745173035021299475451559489802905798783926532391001956755373675189252424861436940354847512584299009624236338205629962258536149910434297164285349540231682810555481596196445600607949775924744821128678766649855724829848550930499006007816954410447054498911739478691932150638119620452761771343331779917419609834569281769307199883159340003422541809213153131428710650271996381233076693131403577624836268520873973673132252419969311797328340799019935237343149520263354920409610755711207225660766572013561440784434757975272874434979330288150683703604885934046903463911039396044060913197619414517315438810900481005836106887604093749429823623273069802610730149900778149022110453378597946235268109478986458724559909439926361690509127841768440710849972126959685585329950424195690729528918495555573004532959588771137864810804656858073907349466814942745067977107466707072377638879004068976475316530434016834345108925692194363532722912035449914992228388890154886388496151032686737931740291743203426352232643402068661842572137850675207941403929680013619077074546217797455742727397633372632668129824471098824846837054103233960998341908935435266205805862775399309238159612667888207954600298783037496152433099696909432181079096808816914039505471156266041092113660292633633667562229804806489223805832346595119048526890035474925455807247359874904115816481036563927139612996078259224158495603089619524669803366195537278309165647300927321974605077534486822207708427440626699816220569115311753169139776760334975157688704613391716518802519322952087680466666397947815949739340954179867999375549096453041287367244933454713204186562398410049603372990351506164441976825239318407505068149621110597558671611170623028790044960587203485927142437189876964935346079440093489849423469144840021306548190550164639906122889749458404818887708959910607238570331548187114913841796877867677283939619214778134605345450644225906377569296686193397735814986420525001971512552805065220002411000396802015074402773133956019983729491385495704079254887209693176070055302741307778406560418126979200653499617652779430945686936888524550834027509962019279007454168978461271243967692246332454317351921243877764017345165475726397692568270385056533920773091232447752274039929507665336325677981965018053485702065463169005170684340629642882391752783282364968734792461919938514839104654382060754895272899877658727463276040819779914713016870260828362580744222427575336959549003342862689473123197356868195465444660849482170423420150287192445261668077138126797501048562931424259970168510158320195633608303762626874301110158156260931984647011039628313114566163537588577850282609606221483908279265621632282003315903656912316723582820876086452639856885519931746639222821162778856578669436461288975507111331134177449826243207723695248885241309020715704040185531862398036125069796997491640747417967628525154750560587965459318124518443361897303502474336936390670726831966121800543763061534428540491264900207623541340837392115933287890840207141213877709334083611080790616568936266577835484027904889126416519604511963464455552271609174671532953013612026840220656217800042517740753927016638372029516385908147907196111019757492748329061881712388116871742981337317199673143881754745707121980877611024452852288136086976546995897226140783641111064045826516575877904647540995765735322314991823549572458242853091791772280954580687410326072538857397432370413409919169435616663488213249541108191903866502090604884299492662826550725540608676729783688954863224650606565835714962217281658519592219762052519541186702630816853238785119251323989950298994938191046131459316171561268114030312266695071042676209025892991691940740144795434748754771025905248621141415473406696978313136080433650761024144687824867154608703608788538057176478372919564952374199890340566941946014140256463575059426606268098436995538721870346269752130041329761534946144213093262735336364142916000960015684235020019997807807031277122335792207581186664712908547258576438004807798146808323811159967090680829982931037795467045474202211089988322045315246566352312999805962598705161301680092481513188067800130686454273817577533663091226761780573747816124363502410111565030037580424462613217518459213124141005424744992533996188546594677830190467877499683128280095534979275893734709551353154389838068638409466424320436322003272155906171655767873175289543586669005171061028266590119319995753809604991510170586768497651791206642339896007590595505420581480744806634008993064811492239381839859709284616379233635525501640371861592805456340356489007015838989452750731927115127307018124013896333950093540326556906378651683700100879007511616753117558825407466652644436121214841559744313300091640667987715264122697032425920433491648983473865546489603572178381214250619749836633223762718339192423957987923882094882907487649599149327575310601572078344539254088319452858699724440852325761826738196799241965086704355733495654667198948793326493773824119693496668068541344632917494411018218840552234853908305939716711730801932429627430777934121039988481444601381344255941840037929813889684435007425397764231605077163596848281448058375008549471596958650064807862439314251071187986015543963336805958572759563975042019213358280065167405488906492425437271131490748457363206784893154711521885599391977812264489284077954838738301765726831102578001119185140829291260552670472626015717103728429566415686600899883961336020370284841192894462950272068476798503918020915194834894561372427841596755010627031061144729294605971025921560730384283082283333208966631028434814167001834044826789754820288310115589317456851260642350815330397300759674668350980085238844004373957906174783741981611053788322711200476738466089702942309709293801864642682220200165687603844507496637437486599639667991180708872276595991675189484282689052769447649155328089264413990082544421418867437362942019511064315957850302475377732172940688239594238918792022648514878883294637657588933989101029367314723822206895915244902254460438018997511527886959336024951166236782169322338260243834974931993317206400093027311218427403142370165423056524502716218504859850524758886189444827594338662706616198611905816217798831904966944434119122840545590899939377993246378220671142210361757223554144220438731384590235533400452442719824558284506440750384803180401643465375411097169929252464883547384951516082171730151220968603362731840073739163766783981151251979435904753616644193707011607819102571109590657942442788620617482634495194260379926648526934163325160605322278964280366910498128849040492375022885190852819974475820110023624398310793369573610155202507954384992786915115503036609193314033907553902390613237594319877930637958815822773001574065464888580740641158532305199134962332644052991201346384560279942892660212769520865634474745098376030109788728768576360383525990792229147707931002864136037026477977401479529949152341965017901414640095990199236071757514563934935056380063877455865202314349318144034291575261911613988183793797515546239148518462073978292339474569811763239133029813513150460281917884152807566318056143015957566700781486702104334057775465778952638937988293965283014591082264304311515493883557208939576913047028180715047601928229808425977591991090861667922725629485698254526690695714105518533002118321469398481110161222606142970443607990672157998041111454968159072196235039909806564063097968756801541256391661941418554940175001630410398287530229907046571392381488642414663886396118293268619568653560652963361542082935653720246754029914658108961506365273170126569851414269007113736680055307078498741148044848488855323517868588025625147471432483640194614448011733359121673861607086587448718809279577437340188844783193876719079639827461907054716270120915188674958693869866179295525765021972430483002116673913682381988037049640574223168075400999994409474287665130232333037445969230225848692128971042139878545082078103834437148699891908790169007811950816596123531475138623778107977793358118866314022336966323655211383816063963145822412871633369250141615832162140452121591735588499476144110089510057196945991889358996908858462168380235255016948816666141490467818005662184702454169398817207735600102428742543884400423006058835991114565473378181773726134932017034390283624474873325348310676929620723359655786852621933519156878222003810522421187639133600761072302322267000108541592063426792998116610348193635436774391995755483659332497395727308559993474353355709046053231349807745969459159297865061005775678524502522061684616385815576362428106292105739022349286184963276612612483279671690899577594505428748478245529482359946282781411239331622095394117127334154545545631572104010993379723575032871138247944810295793146733499951128923672488076112413527235769902207941788183947102212083535352040526351021024979888195768131032368065790098284502877591021549770778375794627286858060856593352146096320092462064053499465118693900017869765580459345047864076181027047975812753035963330090635960536016369452234402763158091432242082408164154629778665058864561714224302318849850761820675193681621647701862568956388075038802136100839066276417909971676174894980741323690828442456217785876509952934152359031547832067758292242578255847203310310711663921182271938986108056935512761261160754138781661025591705913463996733053628261659333517763826244576032015960590484262647129354582552533345212990837613410511429492679083109770924742535421958727406081783709724699114234580222142664358580284578978626772311801705885743470986462978932041184630539633860111556844801371484980892878601200021463422586394797697751685771389403672781313698218364861007931161830166812191777389156024566564208247409000233497413402042621735175774944315431888556715198464839851292433519165762102755232595118581043852910686231942595171839249414519773886147889577669429836505348550629647119597744970502900286330319789437084197143451327102986392137047531904622684889885417565979776767849194098512868038269504750392535333191299153851286125892466996859992827411544619729921335418654009607391145610269441863094429746168859279475248052054909855521342323695280757868050610229917398252559662987998487086150974842199031082569059417833137621766796999888449970542630560207254880063452656702730740672354738735313608522455934736438717528145903575937078447678205320717960171321127356370761189450404368662938788305288559943756344293228100382320495567287533802519251888961397922909068267342614800703481848717774547641787011288682981468362943555821833808013797306823445086799394329705821519658054116560687668658382337902205908281350445113605828370520609233536536521161023118053251579469599123586895069527108525072467381708404214394704590073130375676441609058859419047687857994388046213592112342357615014704725401453101621745429467921830953866595825931660263821371502902084274559724873186107035566425464280737501214249879998134695911907715764940226506553519083328020152646421862378458490113856539666355805613939317826413655606574594140305040049119146001255810995551890497014610504460434634560835549098232285301604099187138029059543408814254005848268340047917073396122720078619016981951625391975956527059711856881021508252566995188355563461771266939194419485230127613587743539121624452946284428397087059026376300478413080273012503948964870167919424516043920569910691788305337515540980455723836241126124191471876558711310613923899188512238978516044607981411397639717518567358728357805168830552734157244014995466690674086434442434791143512110144543837457224554837516420236425002185603800813350629577162475638951460573853826542226337807219355296120841048238145829647318116003819592912879348613947531135503458147573404744162075741520612602741665433224796061455732125171243199027984635861671264893143258665604840310916358360426397713303427125608906789569379028963574143938621293856905660710818897285052128287939270431729956498129640606268401089231278086469277712035093388419558905898192496724164563755675573370076493399872221538379880339622849308394140165678452222546252289705584347325055997784893597130765584518878718747523167196663883536452205338551140885149241475783953969132365923768273281833708254944472387928886886453801787917415903569884748155548825597435429021779425914969094635390840627176958724285734227832632039120971901524135996562013814579684637469919524846406908599816721684201862334455504360121272638579258306965794584691490768780401326332340504830185886647634470051778971507776546986235299139516718090495166774121824623520093393812710882810785086094315060704279678739972781661622082259268716587768783002232952606495058054297715329068384750268266397705649760055368505691331142196071811641058069105029725474085410785964783014306713953218900231240088232303619591780795215925166999951605856402473624731857949772135736110565946903570078377935966581749773298226431585281944534318376240087228132056739150824393538456769433280026117470122499422130489126928046185256340575402492113482597023429976467587055331455155860529472119863916759381075003297500685373389284072865933823318809327719428198772813611871762854733983683493652203163012044043051751306150367065122851822034469661729607310869504889228764407782601647406783845685746722521671691070901465857876270349042412754550727728695258579617730905690125119067881816530269976706016548388312805602136795708005818415985183491169049357876644794203564146346892557387665501210939584667645071511803523329427926019128765256009630226397409786186344362287713496950215383778674865185024486993348538287679797041296138829627731035261242346532258743455315078674955032129313567446008254729759903698584648193462012947279548047518835285472405327321426614822970694068247492931517139970329390314372359526440665474196732130526874723928636192756360680355145792752184451250371432492339792344180143952585670350461549195873099644083928527471558977053861653537550650108026004475960694716887535718340792453571689252688622631497059907508933301766024395656069283994463429178205786082808251663161277630884351728401513410369945068239427476840874068933985912616029437981341464891396610381903482521608389552403822387221702237854532968476927104017991702912319096256198769934022822743421764499307763153961133652346461045685372520368630395386595664782605288717789971423455790215504564194567539561982049570317352320168382304436554319344841054993488512006372565629492721065089641545470827384581498298703092998213897040206217858667328787901999785919479717123504662891999490057820206626210264514382192226845960877035441920134389334441344605045624824578118137507749300287612602770065618983065380064618750131252494663060870120337745909111833393041483703197869716555441034092434087559098806912082776904825491305298359069749717069162554869875097827991018267580594567125801137478514672528474090321143723427267058939773175514008398108961725245103891755498978853981698549902576777226572228836926565127786046020590552486735238675603103759949059164562884466194437818581190338126894715269749667559990744092060914860967691376087502707133899702684327091605974033233619698942390797919660906589653486401755711898633971542473676790538823920921911299005417658698470838369390276543702379501838189192134988862118096610702135188769723495798266218293684482827570482945153749505005662066540831034220989536014363007203364443528407169753546911590468589712241484976568641110315341384162726420932615827749955991275028171269539703590264673233965154372752192864009853847900052135135884404991522583523211340934955250730109776898565218878297863421000897760436254963708102501887846116568513868083159666466150882499762669465338978583883730420144722041849800382889744056123217985596302944563941681823446745107704145359012807162150389896580506754183481921045674904972074754990178065967238212152159549932248503701836539563774657145002059682798253208323916538384406863607128307531328196900022230531561472424505358112553292504570326416950727475640485882306134965514658858559539211020261654114616539479109224641823094898983984316795398885786590805748111647581605738893285360317196766807568880092250434756051584440748917184765389950686234434146379378134553606972592746519946327029755615396141269208418883762958301032488628897918648306912405891829854618389748909831768622396548432152969560242377019613348552359410452418923098947694681564710188907971121579307985336741220124099445059580316597093172267887768013695128848027503244997507413167457568274338243475678770489400620854931373548254157742026788179595298792180257334783892650740809894049357285801003001282748183220101812205522865451215573810172391895300761206237424034055233844559859537681209582107673360347027055081673904237149450916410880167996302542174196668272184374713270089550248996541306649457850533546436952343906174350158122965524838559119638982276463236815737224556238927630030312607974913485542391974994081282077194206802602895888682518601194261274770806392774027774555986260708964650115530911035506342366312277075825057289370608573769892310285232785437993321382024178065855686066735547384764954320127118345778552744391349455216851660316594752266518082045875588904266873196206482244637965908220449196939850666876588222079568294775742160366280355070570536260344122539523532954394445308101492459554148282515175895493618714759390966716380601795718378870292638910986000536133882913440200566830826552775252907988737000307325159815791725834409164452843508259099366210522855881244317316119236918466067042336168532674450147212831976591510107150757006173605515306991889205524568908442007331846055233695964118932408397167612586840005792257264478154261571172357424090333270670736581094370757049862602586500302517174594087611933939456228034327693773767283223258040726295638701234250043670177501407008124944004259542772311391154642566774264837043187337370661654760296365809786379299908357796743493380518198991934805179203934543616448315953162796411554550609455325979583894186573908220722564644491644068068522378477490787563486092180078793813427456117231520965151816219273810673555425933036602306594314482110195997614935132749437166439289626913501239624739148538562451384354084257646600977910070849058587631098996371083026868989489148714299079974556607119790276106886327439438633091381068457436194664304225835502912378785302933707034172218757486197013987226204165368280064082497169341858737400280677573474969796640640586122842746999468981150530047516216590190808479278088880658717391443677908888068322962609643720345145551670605860796806531843070507530889104217290938270966994824344922013074077355657336106075326971842015931316584335262041153905639857133179144062683615403734040291465055830515074721262165694056997380744650009706602529583699114285903713769971865549223146986457928892592872974618570278284834005563246760484372722234340210552514811122948534852721726311759071143535282761422307363748027476742450495957697067351896640761587953787717803805613238867797576705015618630728291916340121636388613669444836118772341738892125410571794763103463770046537169358268281935500924654689017299653403872852919627310154026628895416795062972248992389493068173376889338066112860717767971855992781396536001149086647039311090283940952381230147820484929524928973719217715727081408833046775926587690698831609057589016527694313333818625613583985486640719197303251269618523047598604492129905913603161511987433383347774149755276049970506554447835872084463772861829141733687663721224407618100221360907710577864551449955308359371153206860041439301172732062231926333687063703840183461268274468616974559403851174485796819013531320369951610348069443186937795087696594303822477035619030522212319844484540915203896320385065470804780662457550743120141257418180698183305882424238949826258734999696487260870807779236010813517275270590710839385324842573994170613697302532440309565040386478614956904000627293238944948092023526631946366061713935474800010391313775592160507064124866897810629621698796300451494156760190764720512782047251844869296291508440931676923025661322052887836483276447975238800739954906919985099010819783507896851304683035894922090520148220951549016381314062688892365801046398885861856613063803390094409278894865451678893359622333152763535583693598828587491548901800068203749233980645171100754294545520281571441508181107090942829928837393996298078789515621765765525601789370861068048762649839262341989764860685406754838333177753623484117382456826283208066785731111729426639387131666214545063035189153723930028892276311992453423395576134887859973707690920340735363796962404539818619713994156644215844244371287348488778577651601448159092221768674640020235599694129780076317102599400863883884277304607189564894308801118149854640703341422450479145488844247150760380720648766902374036927381723449651421368489630321789167019296426743331659615457794355068363017856627503463512778326271753203483202524722079287540753317768442467846715447000581561049035743974098368962604033521527075861840356307798721198069800279115511750667245209196874027018326439078674315390219740334892098668968621479526233246490618364284636186880982326213726593599006953647880796464645140910324863590130334077476778944578843942483717222690982358877710600537374717562526805041415541461060220993372484837145977353789971608570025928664245962894064085934990825484007822227415518147572419631859243735712387899529543852487235619324310122540362571598892211775824897437366533177634750331979520293364715224620326349913398558427131469098974449788396805632806760534570087822897155297941439502530804216691225558095549111882997336922292319873033017939684496047896497774096875323094939874349623747538981354291450447743885727239716572363750788488076735522298199867257851447001380701639034218786132752678199877678349277383418276003290501008175792955969820872776689927336140525165423899648093203987665955703324268874791615054163008584554512566084221961803001304443896592628685682003408270295026925394799662120371419667475435667605853569148057672380154511818188518898350026341156307470203761324433084384432148999963776321935287278672226950268345263408320611903805204436711905395009081276165635877555206025917789068858569100974116022979739511290837063394680022538520113740869467852541825729729826835206698682453223791263802895792249249469462243113419831068444230718419745270631142341785570469580991327470975634688281859762465224972610080002022256920323580855549535815754111363079633549799828653651728106091982828143949631605850886289149607030087499995370222794812322528594618309059553824564926686702876376089238345507534731578541495348487199774342871142131535580504002815189269919293204785490464322216967097560275489289621606133101231121281013878132912130540299712017487013245454984461267205519153950330125076133784787031450126720271095921728691512558254709540707169531465094714854011481796004175868971453640659942589816213892452689074619631579725748249522170763538374467490269087685926843843142960783020430741227543805108138242539910758769509223808952455543336910811428098720137070724886463746958883325316801967209550259467901765247832484868138604972699873701303535303741934463028408588432589385465788782096909113700920156243167205511046577068687576264788498758063484754478889470822593046981191257878211289466109400248938847110094866870856219701420881325877423767082383898128134166719141117283598544657585619761263666307601315894134381300322944029293471108845465233497833971257573745929979777346664444227759268642666297561743344932556993533948823897408118673608570496623999401098138319865692674215744365096036452812281494011229915482617047664944998855300171537556819138979642488064831576924623295168658065687393700948744012287433132857265900585562585281516895630086902430588004403991174996492357166824028866557858806735710550564989383325304892486939368705090842604254633840783780425681659178615419311506266007117084243346635017456538164451152054245615350102187635840765311204192682657057428568530480786250707963770689514007993123530023732651706941878258894529180709782761239903654279224497167694958200621808540023802577339716299376635924595750254468610917608307657857827143144420073109566017919928042729031547269628530228020347226287229466929943837134311187832599939136677179488621718979032694008267995977884995700282860542561319459037581048369980956951679204026236039428304873697451677461587383622101735323388648173718382248134155794022740433690963643230505949896598975344964000862250502830592038162934723166815483095284726726250136797659472082459263457387331686910692261026220336078176571758432246997070613837813233728468778836412360971524037466191869498300404893754023657646438125226315541495579947974410020037777271817845129367514786174010739030045444069698950101724458660267090636038518843743597471195627458737230746591354790461099272166178272906321795603997827068642463103529425760061348270869243946790717076264804041919579441030946396608949088735631253074386733409590571133330601172614805422370821717747211861356200870072838547719026434822874602801767819527355011570394389655588663690732557676827124974900058913791771541672516262645306008157762924514631055866946990261673589462700600511238017782239608774167279631817895241956323648487358838920540182903326665542149746702455192726331081254662601513994829185882122456607272269567797232587142389870136905878653036738112375189856864806208617155639194368259366516296863083654845741960514344232832025832471998096386014713490277982680523827643515636911300702210049249422324748391296305516869295731845558193487606427733180085497216670793228693175582459039787733824565454467319177136833421053929704735938492146440407867690831222375013170736606310462495386341013615685587569124387462366290187232965865968104905782404934468065692623036040362212712491777213949427423064697077908726756376212158546623103715753717250006479258577041496382397903445225525519366379977973460158939333123790365934117264376621299458452237326397739760410866223939536827008571019458993715120616064753176872581349381737149804296204207870187414366254078202977142764047394560843682139978865198620812489070343281804302576930887134979187782502572277692590558486347498931149847943586936376819948074981243844821332197191984835008435350287194679184029033074518391154000631526032025528493425180073386956930126571505088809041741115101309569166785383439095909201534148580062240945459752798112291815780326030842438110545668433175002351555522148533519054768095791092275346057703239018122624607044728255137378842041826757919282422525660544123420142631775037568440645140891249202128845261557892294743217765928955689656608646980665961180576798320829852862599995636541377337861097615883297712662272633182587415858298173490472334587133094078591539885505848890208876535855962662603527291552161579436811744632442582822075622250365962534868031207154452881755864861948174961301144285485931413904269314439061456156432927397652080767635031616017525418354029615676025473795241506178219809283076384247859683204474175783462147137876765733627830595606066501787404237278480141844142497819090296139719172563247627207750990619261958497440171539992759649573271433249930707124936963467405382536780494039145398261793000843726263131065097196680861800113072104334836076742087904578857888669262371541216201092135681568201792189375495421509049201590662342141884183251589630394031138189609131657856885728462081761809408654992981622127765212765320580930504355383942733109653446252007112183743031452262193594289766118761359200448913750807644178683898286928461118396120221615265004329615827769000070167583473323219036722029027923091800107659584255371507715175755022027997472557719607343287583200081244731369544867278037457700681813584564407783667966970081145691125364873810080694149837986838894742384379095633790030260954689371904291980069648122842548306603998993748316854280816853944679606537928024003644776933370825101428547329713712435539706488650689617035667704963231493800227854095662820693049468350602851003596964796595094529519887277006291952911529118259588979280580954292206899592823334267851057186602872777581047483543650611489829527896015983216699625467011492258659656644701952620713205358396584602609820338093495712952722590613692651111585523038169485667769450451285844666015301954012290536895945033214711129583063773314040822723233105761766182761572558944782608549483273081644224196668764156698782242212540331928185418202699562288143715455018828633188787809278317727825415797159099996354014820362530915356877094593600211828475070179013279085907162135528646297824348444693291008819670678753967658055072742954558392804815219921760212067675643236504394803471613686642190076357832236858220408135716353280435769739532232569270227226826948729656584066935536292162706331377555346061201346223250538069584728359291696757142376630313095689899090681197654543467022196641470565776796537085054587571457562674922820157212802984354832746291446718456142340039415075351253290742006945676411521128413875934609530061192212676866917994805321082386135755550933716568469579479906200217858666430268491498085076734983724619442024176803449224682544502216873806940426361789240408131694244181281091294307800348240089347823079874094075916502889234636745665340426537591911505964471824136620685407716467837205045711680455414495750246695276140555228000951924807954756121876395240212533281470452427091806042381086999101931021839615341848824506131704017038244111031983982071475401777594496501451367225283421006334603477270710804129607567296657278883926699348327400463790933763687925335486870056786211860737367262097328067796252716982550796190475618050698858407596898452564349356517421921124675459268050916827582978733833084066389659851833524890871272975427103339138352622804650007949253352812600073412237075912141718789086380347627869909319992662806060668144057749219649220999920461125190644254862632100857038255260585028589421486191880537295464010656695742263188196543844395903191072961181943560294366333050287425039737834100308648219226668073783371206364627374159542129618251590463057652302294919411190301737501621739307077308286498585358341148632293164143874791981275821270332682776033126744497851252774313716786250183710632622465527216388883062820993261770078800709099014298435470516970726403422978632628309349784752859682250596702488113327703732769092877114541411368989122814114394638211080812864265996221777516256894755424024039554483324103595901320897815346098145691101782503194697122979035319355411297713437856816329655154684525020267687308339361304044669844633467531044435987060683821833389396217200700442895414161011471314310567972749167062953574728958237682003225078804929896789379445666018340843127868348104409445085909054895693991150400450945254733341017226574843110252594167155172079078498235772503030666378186211886620741887728915816814799583949025593656871554871325994322564499041698681095739362739020514243782227067498640900868981897482106686464241312079513594009124669914799903199315235176309857310251100846489581648768879201221759207660058822603709388475353166907538578003749105496693567610907491116751581398209987015028228831971798096153458009465400625450751785661920120310739872487438831571035382177932998991138296975564891828641801623317911191443629522698643184340923544752324807542183413599703671337770733368560840704786752637043259070620151081675375988847875157923245869865694497167623771196878087978413328482071119605150095018975396632589414762411341843428504014796863762660607886408920343186360517481841921745841421582598346023068445594531401518406332365116821247907805532517597553802696230551243980780687569410744833493638911429428982597864086394079023678002714359247267110857784609380939526895133567954881518457637340318030770761562897493680285402001840224674483618796196116660131119141614921628161486419169217756333853448363480641334708935505749690108243049564120136273535051118195136982875234946523797793328713831848733279691119345802134929547133986121918724105493603781976133901694523607955188445618953312814810925540074536326176998749757075382170636316568888536345975158778147805543594597663096869032409453801973572511006563996627045246481614979338692187304185009173675712458643945856278492480260188851603233686074334866530103858462455058195205326689266453755231538720253601639593711779406341587623837377507199954957516332501440018496585874368579043788874354953775689698793775325737506976559203992866922600279940377749462936349512334072289406456373316390998584660162256516046135366410301974480142915934907533481627921612888995567543694585243595225241407557226517766138464303878741375358672634081631534859607365052362901623584882021029359020613806579951138746328324751315324671360305134970971773602332989169482591807732264675106619783287183889352459699053313918940903292796399185922418475924775567294885473146612296070503735817967838037797339467894178271927612169399713562930695396605350116428845824449038295083105788479976673059765485555433556831858726407789525703749039288843940251194380480838027327835114225715166174992395749289013639504114442559838659301600368624545924094989259285192091382027307487110523967624367935827894134149237445170341153773531504127956101943107387643744854245698483780129903443561200492634005227721694376619414600298311486017809307514812282129782567481631089557811805904766505134369739683532210125492320357602581885635769826948778996101638992164012509376303542451360697683116930474010535476671046939563233543746125710150068283839304731644724966861679351591723081484165740046933931980284238660246043526688804556277194476125685017793179285581351396609470761039242743994488163394672740425780733689870487823150626974811260252917871373058180674359076793487884069120906929375801242704243901846272694751123928601104411145689806162414577679441140821647018853449775317437777475371846411652698557209402144503829441973863332246341415324245552783247997003817483928597501732515401355508190305998696566733052005599021057178237357129118312061182461625150708231329420024748879947765841113026913559430646050752302480919158570168239631787629055919850312760874704943785348818918368485117475758003557172163985597469659210478369509666192473163155214689570581363493138301107488548976281274802285539858619586056971473091543203787152251799326088687183791929111541932191491261064022521978258559322057626891790278790264418531084364145396802719138202923714894253797051595434538800414875647438508434502050596035499256859871022084367654820445990494859574118993881960176487254226273026509464700492854138606571593319083770285665170930420959235164141642481680495037124212077070181497646181514076824705646597407571838878793512111949756255121667299649370799514210577855106106434585691863128390259133020302771050131892078948487770335868007914142661026018886476231267974612714218321572438299631022946675337788787845734424092820701801988304556934660737349458723034642824099217877993111613452870414101793249414014487821140293081009946790635022015126075158703039675458829339410808573743948231129127475495211690470292903500488628281175921274685067350939361140596570670364912200932780288719765416669240995122195387437721102811475155352325383072813112455768951143063967495523481949195268854403767781336507015823435851931321555274721743263006182256437775335405236345078529790885476685204961694317708760580040218493749449073944058006910367471338729525684517028645189567342459223629894933417305364104029517861418942719373319519960585236488291452940683151016802448421630085715406129163168916945096160349375197697071944630015106378046422880435155661448600480403672387495106588941071200103629123962954668660865944599736485850806605315735939110389180459095288802293438051865448062181912565782052865863558602874706658036998659604336922918012303683411394936568199742313832908544982488687807482651123784428932817207076545846387137173784156499045276264916183009599351077320606139049372940168653158655873720517931389387415939746062872918070989593340002519848684209774028523494655599975096550975525162800781275745845013069055911625920994078808292677500836114825513604227908742720737681696572910414232994364444297520970912322890962007840747131357943490109044285471414787015268864219457373662216833488106469857027842438288309099983110826539309415150328781546132110242601439833691199948446266107194094493533217112072904537757063042881814505834735719245571271285871179147762179827366042934998553980918725467633624858184681907702083319422787914172909492080167973696817376335698545949354126734404596963032629645435396498433634318626329188970757158200643487110657545249264302163987118203485511459184946798957048830796169416416024874233906591840312549489313245825290765384144735720682340320109456644540121566470993258182077996587791601755641853390157861751590111934343768062426203289663332433450832877153063649306506108219910302425704251992538491684839197267610551616943602507072575926279862858802425472957560183158678646016283321979928910334005333283366657197567681484251554585738095260861512876588804068206068919708697658057997329625335669745497265345925813901187342680068368846014515415387224583670456776019930525694501586788386831642348165578732668094400535624153417173546508287994878411210838777957728785164862834201905069366430980702407007437659840514516069807880028674194663028275672288693509285337730434793093985561316523125956952913653057847801892253146158383967308041847169335679279899399554418733856217420463708725652197229501535771585010492815023445226284739849289828206599875978234994842792566378118352698029523789680100083873581594380619720396034198113785959203706485600394993285133042974862319690661611733964620572607074182076207503609169660027665683819085192206898358073685127031715528027834566497575678333071229421231318610324172725992238394477782249710931038618658391887641539856373985786712282072109147807333193147718485623761757770347737043510371662734625272555849169328995676734689904841527377422442587658019859089201101263489134231161210393339589981395020675905180812978378910551868262321385021379049323547893117799637240017599169173702418820483946983109241130194791938862207583498014656092211833532210316371879042296257830490011596302496896509969030402975399225918910871395342309762208467428777825576673181537717791806974352205162370805146867233167895750201816823945662604116578783779050246856480120100821443242690502274562249895377447185424666837842562079881231401276160367546719832004203838709948892138208959629351795537143653929087141218838121396311555187815635695989437130477742994868551746665225793420290066529347295568462116218527176237187719274421082677982205140089269236712070154613143784088516894429400691232416642325607926406494551015409965949568188319677927819985939374880216826186568015016012719867836425159275565833569251110586906017260672776984169870095387930985095368595406912444468579395188505440010614508762413336343940762396790367592500586989932367193675579158102697806564336590237206025332561318651371493939986997493147395940802400471854705529225362417515734808338893790393338068923014624706354843260131065114746266765859895324063888153041617198968376130625097793259506963434383843113984082716870497899041904731404826438330717300017205320413307299827320156107933204692341711000431197211387792761699811587433412278864222982005470855768306706853494594321381273878377203570683956405626290895648838183527826326856318776285807019307807694941795667661159510498857300007108253383226511351549836750114122871217463941398412686083364820193031360879274889769230205654179603167107510822584120852029762910100277379020430649199968538817809824443480590401155844994181135521770611817507486185140021148749799107282803717063581546728476121722563976059612927219308865809539928365963184744907765382786321783040470360029850318267542795710803634830048755783296640255450634506391773041778440327819510395021417519584146166664753565657911584866732615573936008674051304794266354543092888207466515563123733838571082707970535772218114217565432510373441898423054140367282907046369851549801656057098974921447249304442410440191340331790468080123071634691694697383236087322531371704206565035772137375250136676383491856098021057584012404549873914478622983954078256830963117098594518812315037232401836920228831186262864569647447627489876998561129026859783247312306611200078863339227608118841994825685863120366104713279548656957593282646144544680041186647056646412095967350767061488727714950745745140667944696687587696334870489674362989601054146026726840963071643678787864642494884645104759304582632484231253748211432989996444561446711994762891978929761367312411649079729078295479912936889970771249995892061418545078423277357125273574338928877583670881129864567613175822368129941896011680721738194632900916256777157450064966885393877388382733555178114130287723396072870424710588858150476792628907134156571163310288919275436349111379302077007693131640836209792619489020813514600077003837367363344757541401681561003437546715402690557883230117585983751946639534700810274110208826395873188372851744003242426015156242078055445993729228520411510085960969999413632573599067543663373922802053994327112326379113023758098588409545635129681458806431932198260015107368313518420906223975877128924659385286346607954043981152673702448413484447226626144589390900923190431957353655536170383336924652218327057331854768696865038774885241827297797781332062861335735065736834965884794202386455902491523483283801613906224312943563150492580302435924995331598809813769034332314269494150152185707971470633521560245905101765581229740711321213237266128738813340914244071811003737415989361557015815472868299898389023253469745563454295156945056566767249300313884982557374414170631643976923098823086248318563555069544351069991996692134865342357715465115341887160602742327551349882929208059264366084198675238874998199293299811099288467036674971106543735659514578083612830367814359147129997748660065033150835541595324527933707922882553234543986747741484892862889650025786678331029437995965341442138418181322868756075167426659668617788933819330464215841654444827752946049118789399535690366932439716658974676830037653874995742147138928997765072968914198271935508161914134141478787780376269908772641668764634151271438865193649701044092347981225704269514682153904234769477022549572526884921277880884330001249426982734681992941473871813857827753440500866455869267430476289560025934644275258790887352080455392786260266037949593485473466438453431512823849940449968566006105438701021777998955844667642833462475063254261314859580157598416413255603180352724113556929649402835095762452707552895337037830453167310442892529580487617997749168853177544696927668474801654597969105790838118495432137800114575331892995819638978525656390795420767406356650137454529820114409265376980772997006933328825334808572476413070201253311623717119523941143935974767284021876172342194351213103203006250207067104484731943208230486961941169925875359441630954067000542022666196102278520715928268664479398665664674908412151102069323088710612810647072321650177764167671829738420195060210208690845365429194739644848781456696821435501412658696518027738212328890978541763950917921990216701372725975936216691563854098606927918791597170125749367249270420022497182419442109350303713937948599305125495835758133684988882800189377911530543168985808730760971777829126615897454738173540181871942022471578593612166202563999133409387725884171031692279973463796626684202208702656733168853659449014530613553915820546274113557753687998063556260169131284915266701745061031623280334034279666125631571197800634382257429545570959935464322279684388512538188202089480728329030141434592716017676991886018692272286202038588362649815068636056696721434744251308334225500493761553756056569636765126240968842556804650234970484309786997701390647278581031568412878654347439442667342370604024773878723655273200262957106438705416625148602133220069037647206819011524428952547665830838149178038507886841257435288360328535249801769253275301414372549934339570398511850962521359704371033882300091534637956762349748067919425284229029585297566921673089651302027764788961662243033310537811956043599018504749964547631620260513993929561288480305934734167778938602556503905831075698721791131780630821870543474328710008144033565083178862277743880487588517121991717821359496276933127264438593134966275694604722658906916125448811020683433271000704608263574976424025718485772442452428637376715274541532434029026042472948410372226582234019426164752412428693768992594431324710724671183112534647697516475652172699642750369756319248990754267107739372928939165546232680780264383370862753619023152818094662776362188924255451462927735333648311772269801862474691639770295878951110528726593029451832468728909321554140598135523943597467394111003647665837133845915390705118567157942034205567903397128776188696846880378800551295519864377858329740412563925992114464968009124160594281461554711303872710630409088268061450677536040523549835061961641466897016722261590171664025015450064136663996320383159706966254638958395737035049497840374282493212117128933525762477287689542063553029125360382426144956796658216744712980040627648929826674790046179871004263443890156090172291410768761445360142862709842653964796114824208176759491862679510667043872144226570803346744878410060035857075300140664964976095414545646936356819338719146462531431290765018158106030685549690204735736785085246566117353341786677213551326577621190497974762509865326113899991685213726612895581684386770302502238109940453676591563994552139226343089310767088603162394789672344819252883147529440909232850690016769249760874854555277093568339246429495246861657076450574347272503386283625603917864634997960850248956945726366961522502726343344026928031178739162126561848747269322613201368430503053413078664026335974234429061573493560467886971978916533348464013912877782697108880836542767395286554817992047988501896881054169903988053469942518372105718602931081443895247120449447893718809167974522290298808779941121289255242323441578742173460576053995376847454284976319329465786017741674013735802598790993550436505944320837682610206685892407702103924421891184072638941708833092217856589045133818031742198600813376241990616711770884763651907446689119184024378562965232117302281218949414220813677465552183001808371424511869401057744299911197279127083400679450146447167033303063418775876896773418468364963162538373902025887650671045532624076386252192103015241230183403209448004926850490435723729110944488854554748570086193905060240399213557578694820419654159084389845929932751626982204304433501238123202212827825006834310291876091242723624594181290340752148903113229518240918605992341604890299136606564600083543414185082060522686484284144069680541791594412098736397272393101821769354103463109378157667008469366308805282840526326360687343625594026958506395334132579944095220020368235224594737785444840031968347363625820925273041974820894060240502888963970838266560877051419001277610125496142665504901582105185461529440284077376259091150844797740486966930212105575077905728099275514451119644984634254650204907298636833728149699688057019798204820409702512172910561163862270264370224604911180923561122161418646439152818045154854113503676763893769583496030174889616736062097111707149496381760329145190951212835535108579950665166196953534935715124232481281777830790006370180462720234846723164885320347077529664080336646224210382642093758165592985360519372805358862385514050744637826617629467314033854952052284184340082587648924876570104837014315636171724573469977768328481431512975921899950076369512237935469876496332332915470044580221132767194639971044830342269420177565004391507683041924130509280802335823920746853220988138997924627582105002683230512923633926767091987568739433270454139626842073683931977859186263896317042219061170395659708764712028141508113976433907608568081653492572597541054257007428269466767171311546551320975557656761952727864944051757868248303770837659350897057483422452537356088474470346091590109244891048140942188197018339684198356127686992895349016273275871099832606796670340775571511119445971072316575030599273968641566338122848093513714428912073464517145102007418244234930736528678875406078109379479941417214021467317865152610926260730961715106750033159072349583702032815019420049394974644778340137853595495632551593771199228429718563604551412316378851500254013085836722836555415818785324221312251187879483852538826083793899484145200564921223434868616676026119876103429037203488636026715135892953058220591787186419997077406877877009854474745156621424030170065941572305453802757044175871176554168509757124581276158002020062365543524615723059428450354908287343592723061989145056487940405333517926026091386918469175461349291771704895510938696312909549324317203048011551465441001715434931390581764839736379337766671554049930750008134839455675800053216054282530694417437119304879231424859909407052906639972510249478507634688360236182388348810323763617622726953745769656918947859255213732978446644697821476957399504317291371138923511088225809067728329516536302704115906429580931000898707181767431390054610489329305284624037137064279603533945101458596151285842400555349993340100304863720577688818398881630481391234729315847377418869474978784046677243864739346185408603511151492975073791571208564384777761650777401935032255442458728189759585059502393441676758728111287652911900343578673323391328694875721671751184085954921485215438883639001365917496625293117739411810946379278405000785220666444734500057017603924198607397116891810770518297662774931530270736041628710780684442522775081111558993259076705124549803067244962251926557439930697022038148850150842513400541318691280998763244630386463051798426883070150429394468772151047299566997482698467125890459518075044893704330611594486952808766982834074201541861945369481910959547572820675505988257260227942644295805474066106626870943217022731166693235589167101136972756455925233201937270990233002184978034798512910745687278411891448929626182367311318467002260264345254927598314448703610922770118711773145665238994731973439538087175073353269598623775106813047277917785699015725333460315542061911882948288773442676458569603850045512017499939313007267365012525286682455294473899353948761813484698758744674736576641921964533051256795221539654536547566214148013534558385271917573809952544634663491046646438368810237924626776580670004303914584224583485262561084049265536849330148396705796233293794879419033532325058053154249594508155469094675751636552099086619648083890618213094499218278059175275822517194061734945893000657324928218125866426570279040459465447042207938302564850371304773535630656729826274285982653374023063261525432225534869625272615131463680263847958665749447219532438892960578682854915471451163319464162302411376608922424425846628458630587804048332344538871001016046654032895238052352153671873149397735872336948134084875729440882538779399188401503200120559793291698488161327455340404674373428096273045974687869190796365291947092390005251239358823609062350419904842403055719112488512239974739612267782003967037027108565227707737911905426476322604431350912395694540529826119674488428211457971190045120294540361696827390453662773770882794882772277791670680681889607222893282883344162673264212233997402004605814366354217928866034133962043429316196145200435634085263388893443978939704841172254367810128654576612492642181292024437726388863808439135543631090147564487621876490201523325099419810200849843211814462394270539315590754572083394748830246073511456270151101179892145207682027679700321129660075145588549144974409106036661016772391053569867075434480478047139164429208114224300408564366336953306772555619093107193628866335481198188613214636487127733689230524809609839908406307352541250346321233671318922286737371228100110516926456793421894467809947573828871441584280246161370203117592320292395984833319682870726988654466092393906159943808331981843029951677450201702430120403554456300281285650660514446606760758338134611333754914715673054403328473185310608769113023541699449044553945823020189920507618053772943405435722394589171107798973655621731656322550945470355563975014122176350244332780169705534439100174617929636544462398493121530237356637368974831857477091686792249583518393815532366976963912706232201027270691854368129382777952129432697853316939087445768538759018639578984714843604352576389116258748171135847310354343115855276071608693021435048250974394804466929583685737749692352431263020123850454744412230016693168993316933174295181284736636976220501924074643492464009049837917157472867431583879043376385300924401303717348929940248219156935096575923701104305883338921415333299711742097750755868331943201006362134547924792206765610990667885588815257496454147890885556108367172155122236865153777448649076836144000538196864967646780986259238466322155153853023412968203598592895866498773676412943393709383566394677102860402095498645689381429584099776316938057022564892040990436880860736692064024181901248854691246006621902381992892645891078375956490546408624589146861812876749044201033373056471732493889189828703149044390159195592456665296424761875555671518825941352964192506822618673308175858427065063198003025397251562821309466224100570573671399481455355970085477019519128298857845769505594904011507367008582014956996010115864359235739392977906299293375169478771373720288251382330082232088298503666146745929286534681541512018897942991311532770027473611583317941260616725195981479289616988858164269471499624656785138069295098770851676485662715614167872884730480437784405620101087249843670331622033238146151529274023480678828815483252822894597931677360795751655696137707015710156566004440211162451661680326833722226115836287587918254476519016868104119521654267990855025048102354059037867008323529258959358420597908007166484409925526465941126968481987868819662477839464382346589518185909860806824031472370292728568050395408153948660890460159273820424154982786601210544988976924754605604005484606078180747285310561501243271279770392365267142806718850515180939100313767685306661489246892324152795273055526039318251458597998303052573945614360893898397572309819611964631448417200091175540139679622654176522756947846473107894548031997719249795167972650480133626379614806107379519495189031855481588478758307480999321167395669292822902627841139600103276590265337820640017773137204953644734065235055770904715568631592185437674260813171340541015181279956267388061065123609354733599588694234109613849472652135924651612286244271106143111960116117050133565924614981192783701833294722954266461573290767415447945661980121102308333963987814327473853322974787059452120812040746230990025266136589396527168019937169675564601958265588629127507934743355656827740128176839660286234136422094268021526507899555658852943998227027715122204698752740869021178188369610430514687419983909627141628350014109040202230938041766743038487593844975691415470698868039069958312766542212182059698385103712627660401898218118660871057313097337315815304210980541750953380773689327943277467593401651675696334515122012215583870699304913020073076573260077639880361243025518082790595794042010189918006378782828852909109472886508442490725674498044411460647770705089811997376718794944677326849122386281784750377239733979905668553829795795907456379934210180262100553283903877512473535144727865206314012103627882655590247209817505465087342035893018799203923285877373627153454557306293298682962578474179639401882543978241682771779707784545918162021562138427243595847991289187010443948041077246425784288673123377585692056480507947777089010266676015307495701363008844767296197743037032604513733432673174456352933996924173447985592532673670143477027724296821661716413590879316839363186512211185078254487825554941409747194591082522913069889881033231176899321454671702387242899058322578628874110284603306689549039151795010747299336977210261739041354905325836836918504631250784153386487706347764826003359795170723270448560730893250985791457748039802755319110102194634306166177090653887925146688183406998005123041136335266510094290148085442913372153640274946056826921188655055906921050851366587516121449739436765154999899500159603961418873200031178743792035350395449785266701501617009655492503732683173199179285795521090790811431458452136176444932787127631462151503372906203838078505399652022477126007877951553162651837139118892968265110007294133051150635093068747209859615056532864912534772143834031003869573081098960939749339156671770123631493245450057607884991902313915568334505754982459389625781210384250528662166157149738404051329027714329180861863709622956706124619550696642653585146144033468065236559725864131484063573176699685049326777366828130459774255449244351780882292334119351237490475946434176524785050657635001084987670386259274104220582452453256410703293746372807498903490666005638130966135557989679371358398298530825782605641548108910702295664829218558668549201215663379895438031213471487604746132258929511260175066765797956748975002823412448114408480273108588387756617471349437960403027751614700964449881448082504442029415689566989398528941695099317699443349062671250878849131212149381188645299768474953156477462523072778217164129622427741592677344848033627200595375612673542532338009598536547975414739787321574013333689515453099623041006555752257378050032644315177238856770233678875839361340821913944224335486338216096419967036520435775357539844799740156233977838457413425084515596252763610974940556889205966916992281374118858791931460563213022848463906060236414938791203382063394375741147071947455567659538284192054902439508189942767071823132159099499724852971595440696443927550331320010921966379204823832569873762289436800730356550703675471098147914260354659532863184296570844624708310149819429050616062664770149394211412212746176658387525425104632209425327896519985554836487884369882445643899306994531758878818662177365729055621552949043897031265618362373249363207989400600164920825528612359572196518985017645045805252266916404327654762725131054331483463885291177658912090291937330787802795557638349533768787050609767101061379693734655946241842526297500429502244238788648015721112197068350577170717313665009409483114177729983268853714040571411134622092546724206917138879474387153982320127062346236542672749059285165070351432925753339320041596617437417806871005622743997943766987901911212835207327213037178343376492792248214908831317785565283840620624620026680484353694263323728115016489751408500142211534678090565371118180429209692638939276150748663915976905851316610268069579862151304926423052934044042630212876871988788654178093200090205165066995783561217259579659867713735085422406264816203119675282117892236582299330205395684640466267111754113770760361539064033935319582680776480348103351554244593273822148601969798462253253018357946892012196550676856053565394344485232876103486046937003379196108073521090385659790147930520526113481029214004353547647241785117985241328567680884409199309674819669993435332460273906975297307787411192217035457119574780021578232915242601315735707284983447190145035384700620854717738820954661508007685562988582305260873246831821720730737303439520659962739094262695909172865669433936801566269084454044766266076048175436823639040203497614263314715662081742421059895393956158531114301927133068035283799691259245921288803809748092334156898134077788896009764862653997293173817305644454127333931924040205444935191093372513243040567661559750434447110267810699077043499664740159313621648631002969047637073975826695454731712632256369552272930587893636784588730308975783685935085493309380228142425110385458589934553517905144955059152628220249969599491733090993948373585854151300536565158791802655087753274659019446928516119076160465180163568642842545595599500863561533685469974312601440616310952848998467679819030769585050279273102874640856669982476161766391554309363409006995823759507090904848684514039192651051041865734404845720393918170596422202437555179669842782019974817711875894271500318459871840967473577494960979189522684230894632384979149060715332204341483049784213400257371752462558374757448618342962666253692272965773882316657046295910686604385263170501757736364807614151325115152114905887025613924133510747579299416752011560981518091140676272822344437053956978781435824794975097005719670767413694459449291072481876984985168314544050699338780113567762082838031388539327578568198250780078073901448933951253813742719840278662682759307220027553112580233311103521049854647708062948123843821717425844649800746529446990008226584621655449540105355878535834731267117457699429203022589207103945208630176224263331133895800493441894131109294185506741891399500162009671278654227381877655611124280773292638665318050304827867828322719675825967736695513290044768443984282805580934251558102945205324150809601578841456530459289693610844901314080186248550744211090496089849345587707482436308177246859520133080628675004474504801452839645430078196694297455139448630304684248656864657716253718315775676654486923271137254397723003655852489169279498765793791446092505105860814594633603889796808153166538906772889514755137617984176250721813748992783553114417957726850434115773163974373015898415847625293842998452633588965655944957238136254375575637622246581440285200228674608363076314172960902163934656843984600710302357749238439584272580630241785469771615272269152640297565891742551816772832281194403612756593088562790442413760250283021671872371925766240461018943594171287572587710244259727970311744801638619157054030216028577897272155072758405623992036994232499885673331309883085226126286084648540423095087905979516598935312208900168258200135227854902669870185587569968168265482167350432091930662991456680443936517328619383921957806684238909711466481216981438592944317040163080156252626252923746210309443013869202159870030972786746985984298079278284525373549437658357426362145414385385280077472264375466802491925582822313659561384097992995162535867083235945135044607874002694922799596229830231355894087547796144603567746165425345502584580657996405601219442893067070891630092955569955858998358709384382775863074218158549283937980981914662926287136875094127060869238401341607079947366128542700623007151983888417993672274086586510370452120097882965431562312836677258639531507463930418059916270671867605679633649139548663344888255558427041947906621737766163618542410946733476302280127815593043527522209982136135295758236184201814058195281559770726975186354026720104095933975961794475900426874334930175437570546555749568599029814738724341166048280350820030263162104899536442126567966838250420162010140206664134280656363895422186560865073821424305732297414376453315638519626190166970856000209513329275369607845982064855808123149604086122920511487738330029492884287112216253942142246493477474820005583158017503493464727084542122686096282684217090057666590983988475209873476328224295096942973132510165770084757890905937737103677239063012131413999713279043366336819923244363176123459680522021357620279342597607113351681660815326944737895520117591527837595622945579996140196422274299761234813128966211899532239624353188526297786505233738422274819924516327999362993686669327461111476236778286677186845686015042947815854801498083212662281202012122015009715269428254276060293056390869712907869174758733502768094614528076798431887191250575090818304398710430355216010411004422484090641714607657290781661570864397498853211587168117467143661366936543760488425617840482347532177478839708115738540436221715295204698345534705138384852843744059267568850423124726032724826960165311920713657660116955419637847285824376278961666227189346374175651596092311226325330098034827319293839455372846367594640717021276627673374856066269107021692540560375569312845074120432490929089740640725792320655679714401065443999277553743044345209319378961866493715509820126807050928093937234980571476621681670389195610195489945101519890840600084928041563500544359308323147864069169915428001665250764872468940596494061287262639645233552585146832746204484174946237432833132650346587952837261085942881229154541851017521582645501319922258016898371330824989423689738727514753532706291851253167209317314079708464989534957793501154192355324417728955755373710220395677980710763396825077418731962999244314235162692321032676363773294268569928497571528449401809293912317342992131634068351300547871814632949072855011376024570864819428555853658179946682602120222929438964935064568583072041584875270956957343723581877764718536723821643458270954987331279183968817935565781990028954744828902702554212864884008630921542647791881501658770415690364548583007255984153597740407294629968082351515984704262957627025675540660680562661002008168584317815204807006453197903127891971361940042497829778929388893513692508074283150590226318553393552357618689416703392536644483751194456594719839197591128644098473541003646287780871778318680001975344202464904484797896880716410674985588484203711464107605245110746725609819514518679862546399824925617973300523715932094859344096027407556976803815171841462961920520882979511464728744992651013858047890362677307314757018963009090581930743053721605000538005477426527577950688953100948717666060954627477380573090571063765086776131496363413377010969656799999054546032081237441045484055567222297582684773361115046980699518866071300716661890709047833804101102874563875892628636062794868761303542836511112716779095244750283953664638012106073788050376455454359348169082081737804594000552680264788697832979612081711631831453859121834316889286655311740067260145506064663536350073061417412924623141350032419970072503631073634686030452106074779958390690141166410955001389906612297566399417677524931492599486202239106609665643383325809648499323610693494585080995916256430288137342099786843734534336097877480177923189225407279489877092351642371110429193501708547872293744642712390938485334597072862055165449788527032436748763216238198930969924580452152014081702046102894325448516289726536377080228962345513878340029829032863116059569124559083866669524450279025173108772329736031350349164928908726064087262123994255569570373567016236273133961946484148441709876453543676130865690428464945870988648505660001861776786130675618023404251674873795449981741574315829614349348129945032830108820763529970008589598723882020147489824549773460998385713944549547040924706857345545797751946803955354733151372291355881707354706628991352102006253224315850632538937126291880356072530086987601307227355127549207188326259144503171346300697971751616821234910467779952980030628311184684610141201659087296269524180146447551404571911377759418919770851017274055096231899429037238363289793010414299676279364031200040797590083375104303762750673995170653340475837708976478221278743396301774974338480779039550270682725230732998101723861490324390062540235826308412052926723065405676274230323650407965799035836546917157831975944614616423765228200765510654931406627033762706204980301202641693963843456906995063520372742409277737490007225118149140514044395793655925075698783086739318650180410397138334325019871216299148768329506897074624909310708839427319332262852690724470676811625478632394984365161245578973289679475001360737968702406969138738027913610814344783410599449865912076249259284087912665214893685064264459277836446317406560998597057597694245724999779475226561655162042798858085422799146541182955970449017697873450228690474631974835596784241780102692450559672014959338593109418172790406897404251986621901291289948026951868504316306730193103848745852386580348417803077952108829173562004421661024046070732228878148918624326289352527241234110797792295493623499895616434732981950611104411755027967824121755010931883125927167905882101150332617343535319915444587670438900004909297453644514953815455087528241385045503183792469287989018919554209031303250929480889712318018090186598412098999631382007294157217587361864249758675171772225003315512502148930632111751946582441280496796347500496576110489946434562433985074000889502290587368502178952938140360623058930876735248282911845064872577086707870266730604149010861639209867702108092683115312281870602229357616440530343031282910498459261161584044959863796817448897978809798176695131208314096725425162627899066655466794668973700442301843470881749879323495191887939045575973890181775248431609653888602011781983767878055592198300117031018295339770713544449215311457473758169268300031200588090151157248044784594914741245047612477920691927478116667282401741813586292218471611707580039862479246416645667229859601825360190160428357392848194528161213261374824268020236034367854076619887275878355936207731480736217531984742544179583217704616059115215371326511438959565767742482161862141202129302820404915484507191699558328570073257940075118134422796027014731419115084260087971964632632249629385254353468340668025370638048068803021808136399938956942409515228964830706547470638301588273921047559238658371684029830394772613096628004329028295120608845818349539123339816437569451277978689238537933217984701344877839203038520594704961669676268971129334374749402714153602701475202241845357483889921888941534354172258500251893377404400504730597016061261033178099001534445278560522807335567028155885519020687743247949787838367137596500006870268144586890909161256463043028833281266831757097010563797109374851908352690706110349988550798910634444910786428060533959549854198270481560049318195483351663228904687073272911183893770030254422882658454144589383559576727291198796017308403209013999764644933463975815875851315722800889334366960920461275932875017540385858309602092564790022196636392022673510386420874840254973089286407276166868249375513518627766353295460265231482360643911788683176247191273780323609118493139430574526193080143586931506570324071065383693912520622439111207621036927944546975768593965403109046543618194487932074854555720842746055475803571495262054495484980458953501538045409032502141263616988365672845047064338314124530838668585519397295240257951360664156924037377649355857062613506232122260037039977272710544083202111883662868580697784673672561982649289907405881642502745740439401151598422269819865030659477336309067187108787750935334120282607997253557017682541160708166366046670249583284477528175152794758169283866356530146162821922908728725625974932764229278988407315180362051053814969596736099264606002766467878996518193188516448647669592416691044693618646809507676442435680765467453544742621315367425351787506989476705656068285836161161448922937234737250058929608339476266293244372588932523065011227064286837877418068801411365782112819986790665592231718813662367819821968788210540792406356804907915250367675009444054442517777740508637809774900538132849121366573215861014300172129279907442289983498555977295337776652159229385909642340600326766023769618715945994958076362776869602992259614871366085451385081964613212577697862138120407856258400701358433303585012597211100750053003320200538023015667288187058416820097684406546494615343424811472293484609916408201167714650424194743139491811988978991557628035678239908654761636050480100309967859844934697565745077416887127436369054617919184792013035944722471171210552828614464232103932534162118448224967053949905513967782497554836800326483892869701448771511797454934624448141552357453404723627612176586493308638725270477278007001071355968119448805850421867101023540169414387611102907236762481269114611323308248787250102103346919078032431998071908540021697157886077865690359920863475533115075366869669750417133740504923607865100232820368031492357786467881766320926783032600851318448211504696297670216157250827282751836776305603101611300928829537554649520852191847911130870606942908777670903253295809212912573419317568079408825125097010751869565859126955787313895765103898605722957988648325228127732686066118555779386856738072744450497189271095257014046564517254520194219160084476524829690171121234647922929007801200511654835592914571489599933972980241899960992557432233271553831318679408339488885002394310979078541518240962922426001288886120999823251570168686175393730239091141957106168256283844339754870131987865668882202931061640071039536316984912336764215130172919325182673987387553319868989956575222824155900389033316154560031333785319014048332298429713487989783247701087004350534376995864364033864399792462693672956706840166948848188664581203538951588914153585949130686939730435163157237299274072136421440720769534338554374093592766639824031063984508387076797920202993042550577514345725405232394807771755917280820335099105262429566110984655160600455667291874636508751325224544882447565269087826615504869994116471574692724371582588981240042946702937827930561389520089550135562592052587876218153187435584190085017446445852177833345020964177718707926741841417419418403666305424983006801965064953905206745025852516369302302205453682840244100915690318891429923194904323852858488275323253709930809807664973867461324241019024489418767504622758434621322397534837431073188656920670937906660690676602560850257081603274686107692389850727355933070443160292646182800996903886268646979601479727305045372125111155372141470836060943139757764628516979800205553476363529686382984245752460737430717371058208792450737297997958863114851425251179509243670439367139591878807337183277320558025503168762473307047763880372791237818770635265910895182935965207834802493977674657286126069411854867959413823804068287277614796627483715272919983286075428166924526331944801271968709095029676698380527583707844379491931210791364712835455041684110624533501591918666618089119034256675075080360281204084540118287042891102026726997794712734947082540494087710258687923799185705726582323892208177443812584946645855794726862791068678077369798392978332806440795368301808384826260525809440439261876853163502238112055117000471845659644271260274070727355379807687821572408336057677966683295377312096701604545520655253395704515955669176420642769839747669469627263367842936742664587660735170544922348664732375633489898508175732815353344072908463498842337665947077606971196790432595540142630551001875056446596633939550647784156009243721973490271185901408054632869732597823938646233383457751975936499032204459977936780461177991097091114278041293429027557217803753271572393307877143503194840278164721465875786297707830245563162150766380704774386107775442620947760622451924115911634501339744963133301259610280076953507822973421438287742269832706065055972524880025689446705056678072716835618961857127373785341866509011493012751304520499692216732863715210811625095517571235377281996273309957300797300188663221665954210374857400642149978282935194474752535657175499751973791342753286804988978949441086653139852273939591292275759450023056589014011124397127123412538721974180803583500459464009874090749475268587885895102449008297092562695458280102295956017939312455477840306108051522541190348307345915023652029668225054839610025582201455419545589034913573784913527521843641983472999231530958922702349297632205901427083428770461971100047558228624574646533702303426914024520704046213289976585833527382893602492130455697959705571890507736779893518108398550579451354769467347838873535991369130154881831723687351490298314474890759525847769673385169754913882174770260951719660305191326376057061785419357193279063627461985358967031944905724728544939909172083395408401526104444052404966062504267117466930008347920811229377885532244705410911863831302055209170877553830270260916704393236405730891719220992329308366222920222797481115356205718843502269103417070842132548275787130227423105831711361011672558350258798420128111652247697807650137948093533491808021222141174556871400285123999733414084369514019863367492270205131009569160461905023438856881442803565774013615748030825505775213672212084456003648289341861852531074690042913659101217746576890412418454002456764010072679532217514097107039525428751018613769199807575924246301975439034239053226477050258524110788465737963502214724786783694324180105640148906860780978083138497527815147142119081169930632925916936348215192277843688689686345447044432970868061228290752743367939188138501648553150710942359732288616759020014709347162044168483528905375457271707506177425017974204761667243194404379016949169085437554736111465513399459840726301934476077974101769572029572822888157735994201678365473045715448260599136831330521304460105569409757146837300516643009921548718680464909122570170064488307562935318632796653498247357156333008449215358795916886016562525845182546134514298660296820060101938516777414829424098003775883433616607085079978713739204894746501040743241589659290635726457815423910109566807403724403738035050512574194280631983251445777887864235573622493116881763867656641482081266028421912010126940629664198493166797549101879167129202622613167016176703164955155623894226075151648692474328606377319575575712686107875213792586750555868499970115786575650973259401607546886646825175830812047721946939627910987463312003876733562005588119288201310953155760294994640618287549371093371217486939578248112262367218420735385167077352767095973860162886318068768749818832407009859937484795837097901228616598264493591307160684134648082825594773963660348617316537831237772547162635237659933427614347187021326254463127754998211439751543193923894581574210089745210397033629134302771004811830018794377544615288535846189266850314010671886829636795685278416857906950683400282935180548792802338141144625042472781214302090988811194088414264187172747252489104818898926623054922698778155064325510010513091054940675510373665975486202135920334709037095592792990110802522244043149122865390575119057088361563212748172224337811928298069386669172426960624127282072593910180840173786406308507377908610276990944875545109417226523136353523020056467322790312579985433726976272942678008383065156206820699813436985025669670643843781893718187129177378920007215515208375009430126755235430323277625347727935783488049481292978829133580944136611762338123855870572388003406648489617833972610313341197823855835220077054002888820622426273516335844109567387066973910530101444144386348882186194293530809046529177184431286030267576556881031941913251848433475901469372223831261780790089889964101168004282104997567927190028014429174996159180626496211819423718984850131115021585709188934274328965609404797923434571852430032212869346700569314817710725249018091143039637216758162530978356867576112544139543772664740946059518593318779826420437960986664403911222339577546107294115020690083722804019649755613085145128604482505270455100240247692660602169311620563281473255918199796838242940482886404971133210070508256150686707928587541636392077756116984993622754714911466238162702382621916401135206113513427527246290345049292532455378338257335430979873625521997322089305632056361029153214328658946772032949100239408298525216909253663515606797732091323987492002086592084472339184935247716311447659966259003242895646404605419305096727494092017024471528318364499307061837786731939571935636064417040309259918830507616640491966438259174708357629981434088758399960805508162545619594339384021000725481249767295861335561049214722095748331637640994688259232262659035209852677989377492568347498679835515510040729409147085912309058431890901355417033281734839361109624851401693933609391157566428692694511884807770770512447173594158921579028235797172738385656078277913709572895047682416094444272991837594039861909613718485322854716915348117149204417622533646385775166842016408255622992518631160058309212174962817113620995199079822324551506506775527346273891362984041921697262595850007299097253274789300296757355818991873768184342679838472781969869188584243442395386862528625254686555929890837041952419466592625706446035463357045509816328044224515624333263361008535479947803368589382920355410508103624834777938069429198631835572450347531690877361964092071655965961400303961059058863373271933764753593596011687854025807764528229468789517514278365480301845887952212537113660300400619606954280164207660592723511931123485375699978119466007933865273544952052220575700409604647203322156939805068322765931484157220511370954240886231623845508540768278343969493456200823593191188165854867839097388418591703860490367351789659168733886584531939139007961308330285191481313111865301834324721461171754523100690713522191878696000778072568788698520378591623997238251642978206379146852497260914276212811582922551566588093267385737869920142182125792836413562531249086551936046978073399168243798121739403693886515605803362227682931624038488413832196561085730092850948560183802541758479495567579059324885506289972532900766888705120329254914767606452173432783553928288713242871266668522839752698471652643880526417437409556366079538502443018276943503626152306034580505468569868890322322306940110646594419509734823345408488672981158483227423930393409700115504687589696942282965399617082499772863298246701365361401098033926217928100251399866855927584901219108577859079590705683421084379865169856926042825362514209038732628144583431139043776576383079436580533692439448014492085906806505926231180310858242163562831589037744688988931094754958072035989262750634193301195707348544166303593299523955509316516471128831975424321653115089995160953705457286626260370603727857176099125044763358541027186735201412626221224477678493769363500311878659675804693963735374628075691079671815881979887981368754930727495060902365421222873582412709720649639870361024058197452298434683084197710883785106107593737474296677235398226174104252467452071606389489324458227475777724705726443784594825498715004674891473787984052602696120981844598325744919149111509099266022541889394097207704493669920334594649373436934191169252983998692911493174200198469888674219839245843346448486764397300283110415106664170874976422136340304558676562094528498908079519855551631083779628057392987102108288712556228543180965881685044544022263110464135247907626622775983289894534767255303563231134180614373327054309121267010128693922731276679407888241216332941772126812184426775464264057633090304848296534118759515044298822161612294470461771931737208964159579768373398217253428845136471957900383242803342508057713015310456054253001996033578275582855005909288072815005978151355994592876795426301652882353862651359219913929991419531417558417736952068943318332046380955482596948621750686804642285294014334842817128118135983145169691185254549631315197887750034740480749091754150556570838262940686113439957662912901765972305985389900175840897534363879973339130794974160240044071573856764821681203350481247120910108911913799701696422801210819369489843055472266514723230236703836622117789225507231218003169108083896497765207172189967130872395134442214242260557424140354319692291730139304944574726627925433452022448949769881947379750694015278824164080577362616376533093610055270946361475469854807740245409084748097282769882138388357420547645898274592667668213752484999666547653654050322308331401875681820193036043672535454030323955230188817907556950099914803247780923618828478802079716809032834430783661178636309351529470251547626281602026302983277300980341914982932118892926196729404192712058095492318273670993970516373025161278866051975082266832159696423515089931824326436854834347404578102768023752733173178162321550286969333922121173622213304902674137334449380102973679476666403855828521711114029429765489023165852174911183318206769131502365550064642265623532701583952453157765915802807354164719824681627179006390618554790594805585822957961920223596128956528528665373977980738207710582394280011472525493727468955855157949084508452283063775554718309226656856793493329545143773668056096513089074220729168899721212951326945332051342772878866912906636104331091349954541080256298019375816483271229462091923106712632582954706598167615693241879654181528068059885356176526489618864070148505573598116385221398471842348755769617847256125992610903763191990581617673713001193838798670632425249110905894274544140801677318983638165433163688579920855556333910522216282748955760251330954466873302383265721878154039063428264460573071718016722979087174499032390479449876351933794218917826536980087286350396440794380119095458781425875217877451629654743347724998338565675331179941304611182389481804718339839881326114897872230789766112474190045159463511352855097604133156282566581440467065016340637209976116768384061226037771738910882985706543171083925574084680503822447845364043457137853435199349212986264469882452676883905519870143142604326755274497341806873244301293339008943765626772670107539215673331730927603458581820595552253893203321146461066717575397242439535092656880992202132856280823084839994636600715362444925582225659511155440554419226481698886932749045208163157594137582645275269441115334418034575326163216361177296555270613518692997418310737317046931588159505152935262103460276498895353056810302952301907559731520737753165322901289186795871613905766771074932861774106112804565167126992498688488862382580355301573643684826172466999922411920548255396839564397064311206599275838498796880917919616981832250056228663668882653569747520260045193830641535140276482218324164901935896168393525008211973903187427945373183484697921089613794899774538713334839060872487696851107298500239561711571561960705709534738293743293455459230149609444303695094739340438215141806708878626007622510440444884188033020840252222200845567038652183172250758327307488970812171467946835030764675131254160816524639357000284560563068253663367262412555897977537428561552753747509401785700038127865579994280398807607972623091989173520769426824496557639259841476425069278417769347831812870258071866324239416569318460548798324349500844479333901241882369087405078828347366539961221877390764468497397250953224202291720264421505998276077815004924398590798646271993477137544262598809710030343293944361268321015209807567369760365464437960897327802913362964527714272197998441348325676188294583753111456389660568825945379030223820516117954107240496296182926936234448842899518530869881471375819791169226089937331097599369225509616692551045874392032029961636593443836857219498136424887378636141002153031028253602680581154987088126964465211909808950823062864477835795913085977777331762088560720259608882729724664550566165812424936646526478218246899925454085371305850427220097886842575140648925156718445676355670089981265420817474807978361939377724279366461487033363013542600145855030166272188756331850941151351811061589736738354270498996556118084743095539155164170623806329927006210427180543236945769432774821313596292276797503363902151003008511587794595954286996586972031116540750456400133356468215485648577372921036382698428591042314997508489527013329203501530348393006670959842709508656602826708973869151312320605853632332394424427391685384642223580994544083235198184530968314691879619190023652825493059657446724932731825313177136712139889242099267059149831018474351418341147186813119676779639949361240861783318466191948238689031251401482563078364907610531769996144493580520675024053553076920873995503806867725328969997715992162377886877644392357030094021686882717069807738388911072586725742185174056529405964958496213484443960744229210442914926569536565075398815209415751854677637425904479002593960461250531936650761060100244564140631751147858113706619481587611284992903005761556142121449564601672851444529444869318029656862697749637989048809102026551496376782300944390977122739671332413691233951291895772145950509609362728329709844653769578133409228966521462395181413014472674757429846011719675535536600369745935981904654328957956561022842396921545635951072047365095001528931002256283559579709714756850616606105466872315946021335949429167753775263931509950762846857501303101263927504615491972075678892932701575461474168680516163390696153324737414672654787010937199629604541506175959380700285432274989325045888539704157326254848288784074443646713952339448002146233742518968755621042432278217642837040319229651796444415018726667263307168569566249627941467971639256132889157861882838598501972760709700670730005555179067899101721635249178702528579169905188588374830475316804070376051845151341660203002571114482712890640851349452538611274835443332979633631811169992322414004843621614646649362574104245117530194891221227149976545050064079414879739791496182210178507191874631870549300377586686422571281967049586594954333656236664324798506051463090128972869884778393545380094351148966739449568815976997775854134422068766172942585967589508661250044870196700353536701224657255507355359870291086283215389705711843602972591717435056483790502997929050850440366588923634011086146827214897211777465329645277154177257682526036004495824676123614957446882950903373904035495025214217504579468706744525665732275441977916294350547456825640761894519782677785763390504903731199724829449925994179516724611874510596911036822612626650604908588564159264469592063469653841538686142556745416855476692979499767600260183197644857864344127499740898104849637079499603783529833592997842293438815797195151838427123375820800604668288392645876508983674600504889656161975826890425986969725476426171244299279324051964501723221299570559317669138461815751135820737938582478273963569168507026213598325083302150795303354236622065079275923592179366030626753599230467999161647554316188624855823615758517145522626047884534443700044731332271618055667242260534193850948450553976629850202372835097897244611000225534418072928341844743710754714534828501091142999548089608711867075437937885422228215926350852877022574425626659505866056724964308489699970684477345261289729148816272787286031124663093399930120284355788790978312091215056773353607854143582784363550252306848647067834410180600672309667117386677020921049092829805822602186346083293191864100299586938185020231494088445747257624021828179242958653231238427969785939816896205751591311828182054999595583897566543605770521501631445847801765895168595331003300717563099101195442617287472507148375579701690522376909720163426932953388614790171736398328691805329476941062579184854088592145687936972754183967957794665273467544164377383106604269630720404205166578756498284995911747667814956661578839998041252819970693643031315039223002717503110275408914266811342319872370243792486344812123227946217201839944935546264623857515105309622140452168409650345445121617971719098249839500787369586930168999622207478559099461292994662786261316339115359050053626711805996558953138840393638379932372340894443308118196218872762335804551642114668307034101983755649573817911483550085853964372830792508781649269412266693613273614960473245200783937052050098789382396672578112207109416002892989703253706562063587401976798806351036878977344202527290499657736841536264607459300557580503383044770189250931870618609080217002076345444289221873884725011817772642664203444820723647399200487679284585747928145286292992885808581798001297297321985202284046805135723343738972988091119617238962045565521216097203312128854660757137508252827541958499338669636619159116837391016863729297699737674870196086913691244416517508678533044634313983410616379622278802632613661074665801091654235897005110473408171453636063613789198219322100597944261705817340806206805727401795842972134572894117229845945578298115809175396759497142217076877012478357853883976105931547336621748600966413135300466861246221000714250634508419392498275544620610038280737939844947197165198843841031561538682865305783622305082525710488033069203407358558671366319301655968446072573579493699683278542511414036845664238134975140318328314012752934170972248373030929055647415049493773839464099820939731961081213567488093779841507069995442269524226562647888042513038086501769944184552673609611325011414618805527015362701498385118496537781753281834149727612544178687327334293973644692612901098339115074303754630642831101200587359400371627130352655350500749249933205968704894867176794448060650242412174165755187196747410785981836855901357964114764571314459134927680552591441119878871072661758277471803931159463945551688905644285350235065254614367977241509401269060564368133628843794524067079268806348657384180240930928690030244570121656480476250638609289435695471296773622280186433301482005438753601632140155096759235723108655736336759470131521442952634412030548558725862609778346402928995961450335680446642434627578247966433990436048364830746230664421722174736179077184053564576330947826537130467855362086145362694746020089510975817311576183362417583861835839119542234112497317608926007469698619410536956162749871921731807969123410817649217591001313738615119236457534979881543060747284374390698208892463592374280275156367169860941984531395677018227206950714824548610929259183696066185206006723272925438216695436996937379944060526815267488412649473168683665427877009330869027872299588888936454779528450123385386938969327008249084702440614913414728788745421954479073642524037155751893969229508574577563835055176181511995884076202757313734122306205835215883792270506101914413576661264866118275447793485356114571491908451071570330425410453653304994496625666306168870786455508569872692023626794004515438403770577848997259698218035531879247612403621170802166623959070493849244369786265836580896495402372359604119568175326161193839542097508913498618332385810489837143484239494274673161950677661970825159673722856946499232294277695435656095173811569751709944694481285676046877102904458802620264155423730197084479255466739539677772933992376034196228381983417278100966779650719276615851137511109096809003348550180223310961024825214693477605049460766213730496541860331762187228998278719543430478007645504915473138828657301071630798563729061333913518799134202843475345448260784369142462720192367565073248891970793684344532897328369006557936599272080869553941602490489741657915599877987374926273469070343506790078334776749426592545854859799139330922797585525984953028793236331716528560653734978896077714425916692575510835526343482520410289491920705788104626024809070826663468716886022347720152615518341019383674026522566813447629669320295517535081093672106414028274543676351660395600936454292910009109708815006866999229507868007755783227731523484525273675907219313082492532585384001779162880864167758950507100681523463672765660087962007958957604690685633197773906530169258661513564140873299908714810013423579058453299907025229915579321642918402894590530142475130329358167421606447230426383409996010245952592715274753526459688049448745238127435581356512546807810509208002402717891290354415490589182928288523233511624758012847474453240252972190999606295090439374259377925801027777559748833054783073698863629062103795664289100160370516962702574523627644084466532005707251601712478249001418230139192614280578795944943039663917465251253632124007799983864419127667050021986750865373668615749237658709438119085529445727316753535046982059287848611329119623439573329701714058982293863549335791582819538605384040245916814809681920930057137917691130043893392620829896442218765740235008179102681377138829040823002213193839184412579657091667974958064352323166561140170326118830118639322711177648749206189918718249614515487921663284819921672960666644066058483229975149678017046429333311343083114392393776355623845574549234927130924800944230097017869608809517803311867740059833724797961787008597408379135165800419184924444112329877526971784086850928463222895824703183886453961589050722300136676631312024864517647202222380096330601934982696603653851254212071399895910681009604935787622234577096203404058066754061488235262574642909646378730491416242332987047118407621557880404528986115379447403307088567829437746790819047557395275254517689969222600406609814885885224131184425622655301407009301137411965689715759770489174664833849989937412133603942770012744586201526282279222016187369856681692452965723017216273104472161496821901428383961291188453326687330252466870984223129613078460751079259467009800907986617932852044271003649218176347310755366487557494669089082011565218331840789047725068920976915325282405289044327419818917422524310805638409442497702082164221809560646805989924798205475882888904386404403009621986060129261879405982290282931124464072404042327563508809812313978946201148044696555629719712217593100486839659321493483636664172694582397814154917643545559699185146950049623687304330896766653873808716673726306335076011521583678664409888371828631735375776426283921858617529052662484583487301929057795805998750532235817188470458886470401576420996613854124199996565501333032482385790730892746045371125422734985691779566912296814155482141880107151612665606694292817058386355576557765569690037264659893018981177266272131678526320305249049348544969574546854260119101121004578376343694078007617665812041343402680899198468820168129308212540893137050864905498043125793431698478644300189727712317401231609197737951775680605297243421055708231238006530096092578249649548507198660533418421852230434758328885147157297664837715918076581785170312028112839552843859649544348122681015330370022613101494668395285235269401290790619337603285768783651928039318209552051782716020036978552628464180978528639334954977999370632396558208144434224955870552701043637246935295276529052710042192960771739881293100653092287490004587403748759335886760879880527836005161089777802493124404638537083573772547822187191131937843843484111798942375343619094245717682142166516222714435906395927439818420368261288064134251403815158687679907141581372056816763980894022723960871608450483895002097789175335301346243406970597622579519353275644710393008352683039616963464422501074996481565287483009872687423265162608139213732940302724532228333240327609083851762461965954867218079735811641860611548726792507358248976808918630264982434167726286433851353412801488197638091759558627810401798699278940330017089628950484950380826005834075465950521661297154145435258903793729901949913705736627252324824152678096917328273818145819194051276322878722891502860175463717003802223512478146188609551826837303870705385014812559629918457956366399396179792192635011495595897144469775541392212146998412486182785502626466650879665715247078818512522012214322736437432147903397311261592852157354680949691843011944361509859576274532529221614499718265124462977758472619810889678256558022469702423775588260757620943425620114687796941959923867764347920827925982096791253131495684948958067728575704232477890246524461325846767976339276565924354020635061251464623549978852082018485530834147355499309443144871058486984606913086910747696216593629254073477986552690502851947413217014402285934805718370945965357840361604346905302929547936798887802766119218580181669890497144168215696918923939460962453622382717950629661809672159336412168565819572122831499813003978164354096419157730490731040654514384598068838923414132800674402071744720296811391899648687109566160273110768672896723812494942686493397688551644156923053194144667838535368391486482210385345582736732822150628426893692204860815800321915900183747523494783847963483571184260800671872615310358132350192877300826430394947398521595517275895066922848859069240103723726596539348885257313964691903928088713969184414974611149588444246968018172264544566876588829548899330205636296897635740643085913759371195342898557926447084247796215754738312528763218967643527590723625641280939436653924202332055567495642003726875033972649467642650874759681720214393050858066866072112201352370095993458254033966669790771356713556433645858208470919295383033422047553326336606887278252066122806089282872028953918759215725145506691233377039463175324117126792550655195033587964154568975599792334238533912119610065263756810498981731751770168568264553093561615908011017284488341354875478423141033561440315276506698565189957986583605819755830973797938920260633742224148917957062832718626038143920045995251536372631800585637912857599362568818792465700652850238389528530047315259183090417854443367599064703969624751358943035701030258631038691663341746387839321951119742152502173786491481456454516401775877128103004473338317950618486847176153752811835837072153582023556132695699870484143096050702867650862112351864361573409563484756504880162316669785516967749468215507271067958611885854545771940261825931101842879721810194528959005762632543790273600196549933373688129434507060500092190076418941351128383099659212946990455862043688110699461468320587115860066347323190118559599763628933849978247081130864856055247684967863237736986718497537763994177232562461471885491257113009273541627304700592096757750914936260215235309671270885632070430005543430969287360213926207545950286247007019557763236873509300506459027140029443578413333861338227097340124076306181336817995328714213340827478940354802091573346103305201647214253346990168936506376317187636782512536934892155358239092422190745708554852377610848525985375341281788829721892304118848721436927418947286208725269292146380766733461166639576142414093749979256683006841827480045800595341597169361210232732705400814007043763330380060114597732493692476664513329481962939598246454408941508636370385083570499551906631973044725104169481360113459966249529972685590199942148948510967779774646099845044112427328316873413572274770252840204487439687387498500705934635163614761500076740716762380120837203998246040596594837835718896554704089775527248446310308674562683241820066807988990197985291355720441580119027938690015891164837318845229099543911152761495616588821964032479484520479368833636255471800260091655739878065911037895611538740357958933306952351756073488845185153649601457751655636496419726712368881995865219078721658197615849096143220048317928631821557731839738266907366557349827588064697942457262147230306434622441055482613855759461698803709196228605874559660762773938965089478552956559555024023013313762361131266709091558179803627345669312350974313861691572038083784466326474297226631106230165920732962444511737470468054650235648993592040579717500724946472596509710845354430269302259593355193922066423175049968085563695908699002559864458075252326026381894671318199458481538913124675831312118063819412685541182706104499672096455690481670819223284957974230734451103790746047611679420910350965315411349858927806761158660674508720060166574471688641218536912818934703538497806764012868944124251463445242558414007308962274941900753217252483604347640487437536248474673241612882925581273120926921261372363013014747357025562027555685454280254594427138662056170383591686341671353459773860428554923614670189817238952227003321716938429913910073127956035844318556212108542542318457917565533679071987558605379593209104585926074239772318710743454117459973371043519898386526931925611113233926343388600429154916845071891693602924014298490716744702363617361587226223012268530723171364453534647666639821916842107141954613686410767474830598881174135994244331132645806487429983950514105809831686584906741012506146130800039017296471434987747634397740211691578652011857519892083874122861157576998759755526928273905845312063434395570369599891180119938570952510896424317012890866932318701889194576713424679124724949343352143672502710381143158508960993022110723188944642791715792415910279090897391239399571170566438138943980088069550616959536915318423572398961101588752914282773198721373575221390860094493557801061353888735412509316457470073671174297937484471952734729782686339905855361680098991475376652230095363916882810903443909461453145324279626828008639687390913394688985395427504946065717568491595741588069010830483421135213455898638020413760983222639754899860268159717315927993300850728623995528472914680077264279696550570582939905038141867746571111529390497109019324104147125887954097251155475719057590633444502230848275121417649978180072778894694318046005117489818291509881129734909373964733554205436420382658210790643445974212684766747876246679939592489995253245048180001760070777183711898367123998495212387315808421955648277624154666642185289462440553066678358985970594602628820195364323169145572800965240725398279976203119193525681817340662568924579010347535133670998548443799062937970113908922165372992689234855215699933681290256112723299073108567467814795443819635880327084554992921331453369165937319580297971727943793378716238649761708976999351367606419768226225972496944476178917395198268841333527684470633750475145685273372624670447515142482330611540973491161451181779223902395654061502953962778162409123761351470940357850089328808416766684454532418826078078411477609806067022197683486118485230460135377567162230701640433997123645648164304669130804926904622993348081399039632068702580274759390827965148193563394832483442857444908757546168805477569242955844399106675784926178046751328651624972780516849855954326297230138004342120207848470106009893768628378544038233523460146210087454164881662901201186022048440495421839177644261548913128004209802139715951569890588760821586691292440402469192183798773401587434796397151328839027587289802995786519174922913063876799436345766834980134225891741960374643362586871325545468226479020015640644854437065936628306036587769888530129344483813011454487505966728829673139783213248536461582615695817492305012709950688648506660475033509539432739321998422388869223629347922995149557463249935996258900712940070568904580267387856137590823762427739424139692105562161511838639660847659801260263849109542916440934119087695659742623943987803008335248616594228022084438883617557715655136230814176296178636469609566902708934884521063901250775237412614440639704711008938855593065730068442252449932172653836148935110779748168882708056834851266583472726784138466321905063397851821748379557021325781616673286503352529932132226274594429368101027843174226398936517034685489101128787995495544726756911249580041283343728161429790713821017149485506234994496614483261907452705804547600543546094225170370450928604492795342137975295238800147784720434847005061333226315025928651897709934101672933435897663700903635689410797544227937828507490273461407979646571866735839298496047382818532449991657504142895438815134570033316480631772142103060990863330638721438241999588682526781443491327135869321539582424067676445370485592330712679052380165546243967824936595089813626821054738786179241878250530383784843422121822605744807116773249703925381889460465425692442737954714570901690548646604406445981778540523255030544245293066427029359728518214821613284043065081598146353066463039360800160777531994900106313984392819276192149659134711380809827052469805009067063182249524481550378495300250836239033837239379812954294017866337123733396381850726067615908027031952057525600717945742357934406715702469733014666779272230034347736742251082286419353991597805413053903959873820138855291141280337845062544552622641765989136516994723239778449163582027703258811236538629447372094985713609431857746947941909710881349889307824526183642732333652913935266622168579621273150024021357610021294209013032269126987555964424865173527650072806287242858587782248640644147883184686035616756881583585336364347707366774612465270754207613229535602625529835690384936524414016077733238821571037745624975119548137759120856308529334373749163693644051141823769676008355363369240593873911215117006330855923480401741848909770241574079762366721881246257131884312024595328127164968843033300267663129796751445471356806664683807434696296777033571456899805737471123852441326285296831604654330633831077089543440570873319071156567505388835217777808876049654234925039809626819613059953480317610067844772635775303068195489907661739284968848703782837853597129954872341357745610823701475047025997027162076456719364090564657414104827261745901244370499536468005152162227999619411226670408716363384014349339086321867952398535182557737098623437503091380103238569592516361984126296604545928007668715806079117199723911141650918670652713417890631316841362249118626137952181116838670931731760466091090717896539373575803095486716358217744059459515452910155308678397684302062065288786485491649588637238427083691097008187973189850150259625237503488409846616553125786719303648797556654768282219137865838190064797750926909118709911965334149299342939368694854497051954915936646563212834955125343650131644964719218445229767301798454720606346987946196469711644546680147995607650892583329525472370462181247646766792624671919065483855539826794734529196504880630663399823362474948508702976342244950731611527033609230226604286932718310709581087307203154020610943101073213108289568952839377134619260117224258219927476640944095800040711570604143050054932038312712524353075629548142215608931325990215246938872619337138827401556189248363838555487047254961530378355166188338229938167155694534770879400256039642088962692531125942878822182588066925107379742922133131672938947905487018569080168803671723619978999698152027103066598541859320854188275514091863472852910840611311181866710330356966143513819255535728572599648788242926520264721359962374346107719330163078180461756495099738507826633873273771563396542268028706122918355884212927239822589491571557194192344400335617067267058995096639565006218791156015947993853886031978772437026410349306979860004706352312891249799465437828209379640969282501546770414263803998494915742030392638305879581576048631808720323347388223600530599667788610491682172982811968134339232680607082206639188576453619066454434998480543891146534496426149147074327782593611479796348692171265624993694887477070664172383867871415066924591903173807399109643696319351185548571615906085790745671021519589005884880125011295957741082933781919839763753724482312782877419144883983352222419705933543226838466843544586773374270938251963893563474666112903666556457022657891656347716416562490243516527500120417792561099745921956864550641276369048550574168496115142025801281196527486039901197622005000284322213430704406750322846242444177087859931939098609118436691171616205258322751229644040747606831461111750553636437162217229178503454842111385476515777524336314751922425674883574459442178882398129852130520640548741644201392082191160457725969960741663568312428684919745942513903150668710904130712455085664166834023495178714817835372800223596337547896168140312628032701074358865553573006355850275675397451101632608924524937508287786550586247393827314768423735204004545468510101936677656339218597003070004486152346109100864489508501510188385292247060151290432579557501938427469146160905835818857357090018657684688476434516498559122462284094985740046556987556822645882033618991641906525992939455278501509833595352897253455338219104405830194372648267061788988364983780170103899991945950935265336196436654926741955755389684892239617650185563494833965540578768591878655035231177822957667758365974877537535181884217722711349929485884059487668784266735302924729517513817589358443800056114939241166841493681004272707582051287074789437925819453998832964041934836066327192612469500427762969693094488343641516829079255444034254822674636203905375778735284470210981003130050028385434453416018689321386323495285553083279272200946602477442057970777989917854265527113876135223625354284157107001667034930689766306334135700566967858103178851586649891276501439902525130676254922563882631094859574649306606403695626956650272006346378773996356082910869060615572797080051728510037139016011529851172533461797638158255562962704816967798308040430435525741977975739084887610146598727409294766920413709671743847320240337237120455676385604263181238043630224537277274933504182336579400727932341091347185655856213747936145953409065048466132857017754246717490781916365063956274253937942372691387183451333868775972865224298559498104174751370060661702961635528854164476914694329613112152644494767205745492356687031113109518215795446629866253846787628523690155835445254066644510958815613227020665704811201083067035435361982875415769229044650101204107927352165138092085561936459579488328236174427322373078151274331053419917603800304645605133046598935169508996064820999461632033608373314499896010351322620478031397688053381671717148638940215111721388937113739075682584018469395375850144782867989102091163568087127191891295039695374121665693783202038140636421878046287080751026174303753426315819880471630730563363233801035575700046249941510996180062102428473032536401004019087737160170244290486142568029485113789536562644043363033731027152544382760602685513979040189315493533514436393686169433285856468267998897915612164117850677504296218199729038905283883137488540301341921683213585234509478079464909554770937018004908458505646230505156806482621942332210388153676743112138742218059169939758331916834205469928340179068344914620849614395931277690661485300248573380220792628754791742420867860761731959670035021756177827127684776926412035962219669907064517284788101326967963454213385088376715652817088929172992273705311794582381422099370275589456267264221924122886334286292122645292012336049731934542207909198955914327136808938715662674341339132035492810378911681457680551902094500508447598869513835511031595886204202906351073913264262126299035631189154633920448982609622960971647519379422806677874893210257732702462683504825065088359592126669736414592270476303254316630657945377339858841050408917640362730127321127381696671761918440994208846386646894435321962389285399835361398093146973425777029983370561489216140862984242815003851380554871336509878468406476872921196425914621227592883019796777051989750358626752158723097812389176927356920455132885249685786484191175479576447152134204261438991801529078755780775089797114122517803045707679202540807931692445101160593515625111329265982682458706863205120533755107294205803562871816941475928328408425273882318343437778964728058773935120544931864082198469900828520489435718044583941353372603703423445885711944614974523361357250553716938377353410230543126025914826915835603707864680349321795730901198019838047629083820822746098637875921459701211415263740238265492335403209770315073868587271511857941916882195847154481008052452946107664526267729554110768653962449896886554210789554307046312888609523710523547812841617126517829721291031757404634877989231710964871337225685866887539100988102786319183110661232669981892351518998036943781767679546770720660824428522569203855453098949695769092719833239394411070937242608907151763374856698977410108374792980377344633648928909897312579791635715904143273946294210904124443811572327994515010528954626861268395871645670589402589663555414019236738421135011357557653528643634164502928542241007685398770578646690908667758482998548219751604834146639516032112606138737971855799157943867615874682072398544931798246075081986977578649878825010399198064759520857158438125204459712136997509093812662874650160745018551329426425220802391402604441803140461869502732722436826770092485349654275755417007652051619062306353098569488475862486339965309039792546519245311302653069293360409295569472936688447333304522579086335732918219228878260329419390292171872606170490741969066685774757590623414627770647829969811707417291192580583313767790530105742478055488056883252101610671561624586731111692821915720133757045136569773306456194685916764615167588114079018285549624649153735312745193540713267759585940481265731991733138475505627785669910045086996830934709071752146154272420039592709151610617982822710718483104682259987915127200833583520229917437050960525930078292687781185547007745259033264773196328667358773891239293482899894020178068267377773213496479026512859690859139227076709260609928024684395738011549996911240965319923109149878644222167580474428925000404180805472749877607114607685710021360974301882261583996105630103539104184225760828276370276035358873162913303381652893678828814518258749102133579231173182563201872265930551300364406410591224059482245169556420102778653858437234933954953976333279874414355379337283959318881612211770093645767311691189596751579243655249350656422986926930118765184027262459776658761577631669405553740452062588164396055696171725093870634124560765678226530995246841834367302650975176917685319288764562745933479639437974734888819076181925413400107515473940746678333385559511842696377904255311523153703665586524706161797116650874721875728401756260683879099928148155482087192411350035160910661832204839598749481522601125905107660592521879484313764304337761810046191104217481461870554427924172184347014413407514242021168947830096860262434120934426078632747197346342569878387819990840126699658833109719316342646887082736146939011615521074180077456375320481376043703717848833354821787928966726398875508829077567208206535299075966995433555746837875373702510629827864200789328858510690799045904871447269818089486424368209282262139613998536550336572234590754947218723879708230352043975766992847172167958861514117649695695802986452227181102747460734547889232856597691614157213919171060596196163492072869070038697891633672254776297211945209741314616211130292026588093200066264100011842669791024286122994367124398092786583778456039171128033819491973379624076337762471587950782805256079546430586585390838515437885746881487837382462811352544019179802650949222913533742402703232619098518683297384721033326654923169057509715288414514941064576446772070826783183111966695265117237572193309798032162183565486516641147462685794469860680691303937747225345088708501534718762464505172993496826936140942498431745181343020931991033583352362568626452804896970066075272798698019154446345498984370014825177479863594499202959702578607056039742292916505791695364449546772239950803815671937929170338556816886075160281797683790704042958605831304092974237631267898873303554907465148768129877839537608000767803985691516765313481698389234376572083454023727353771968247205784413385157295693004119780028285570548021808855340176812660842786869280591288192651856224315934221415618039071008387592747681103242290761349026263314603354321505471590944331498140086013587676538935023096138259349588853558489547609207224530584599878242653064602678598939537187629599809617775039907174530347576143634651131601038923033031931216721803931829706875585041035163394523545052912157818920128513987155399498515600703325911763016307917381020248183646238380677686414353697776819547054853964762976005882323871690748039725933448684391508494511019645085790528984053084683505892291839933841613733060243105909392440002914872959130197113374500681723764298270171867592131080908895108363073499305666082483665841717085975780833121195888689972006818880143859627129512653909156646390670968879212271754544972375801383050420682504604985430131430951624852374688844052970163022905805553071485487714153054843466925398003330307508821134872237264824896495790627186484348710155171387713743886235737646154754973282109530056965255080906802355631644237568957840712993573494156281106343405337645968183617432055187668110738931012708180388728539938433256104273998850449992993530455385112827987596989375180489792357228971003904159310634593115554106790844847972496259494510995705520613165439288813825858705863018597565863034472423638064050192042628712752010063837395745762831018560538910321089834923283807207087549378657180011297833188010152519222066175666299105341695820128949897753065627585085082273805274074137970833191905962431454543682147806441667007951326639682604880113482329763635520581018443204828857484345212641608570358167585310799217995939749866462730501303665386388182099524072504893719688091004101647775818607952057473988547993034645321903053205808807760750230242742937727097231078687426306853129301840091533566063839437411680238620308973501823591167128662684059977453645770176301457950860050827490418837194023482052670568339310926383554264138910483722236537403088583120517151479543036264358133950127725499943174348168517056735570324676933638162154622894362252806672487070999638713226008227674857697199482311215635313994541659957996046976128798388075181118640170815624790518600065965271499627792053075749690947078886982166392846773606668510556573309743316503059362286837561030487736217635918081044296944393513211170413919540080558899302039503984754489558852808493219546644260945824861459552208237797746700971460616355354786554757598816822439588073703651283315597509880380532859123427791243750224625024178650786873315474135464842691811686490462123142004249971634796122283777838757834126012367822018348223828525462633314043503681732886478794083505617784659196458896279138951165193867537480820530066037694935107178376534549681678229138811922658792916897305703928086006664289789445774074010087566465086628308074309106502346517823511920482027270129323720675076082562597518904558349917084284986726385404079138967993785795575383127943597504315758452438056096149622772491871362280231983346967932482654722754864733033079411845473702122898948527998182256733616963389105269486558357400383817597431781026943207939043009988418716469448810549055062061038558726519723970216451555326221495953290765302072335844823581795515658326581173670228749688269700638098773885373500602954940784459375260883295238945487821378206359683012807516934281283583752903345824647689059539008540837809610987612298271646567508976216335091694439061378499555904627751441756256379176289386893066502009008344061085161964796800349564922743820359521719122895498581564030004090516011776781300475733416761104139199817318812077561850498715760260887763725145831350645176649946663311504824246761524960304874978104907242602865232679612745948555379864879520140216701257062325168382449536449572555791358459260798932437195719754110373455375908508187202803009240176211168323129217965839271233168787833125714148429069063830847440160867022958042956530017393599379597083569193411262862857312908136134550494591041417236762159687844344690515017730625997075439327015527370010317995036863176862515942269944463961317561537429248301509159740719194834851714325993672662066207712921417563976098486354659385865512252128743864133376532058564397715894852430864405412440224799470228085871076590738316869734040911765266672096897145057742106457010384342303732747195022468697968548091937330174230240216635174668818111350629103060475295425853071730179189182964915771960140737444125030719253853657671517043976409771475315097645718392873175160377053890754324847479770662316725377374824217448061449587268113939803342625445116316694993897744953217506503245221715102804371594180160764644955079968552273191231489464367805965251510743571946983626940753592177261591458268307174044055092366045649712376009652135085689832878174055444597496379196838432444852911112080513608423523075975718970749631572669974628675532414241035585884657263159082744673146244349350206464955377330229758340523663937785264909203471202708162841846659128041193089605709683276467136292527874977291180113396063931628439757829537608914412015100665855186623958569957970217773827791646394629812556473517629011781473257667668332159813614700481505404135225221952458254151742771794474100944695053919556919651688313159066732074089950472794294305805840694409889023473609128930750426058236175747539593257878568385208200272209239395739106328845971299405843081890755318034303107081712421835681042623242153983240316378012231829325759797997972247484893392297957265283847650539109475218783207329629523399072068863770138725933403519475285535815873700022309635020620803389138785085668986402972225065953859440503231977354522466351041164974559747026048632433599237846910513473419644228392320599597405350478821839306116350508876378366034405471531551917574721480202143003666093204124496866695338235709584531128236339872303306565033195991781341020554599474506474783285342235812147203980131057320965750132929049986231652965313344719891004018163521048062450339546793553186830265766412400206503991975039219309786061185605677445761118214371361005168742852665705732759226392212919822769847122943104344539978298645716402313891327341012193605247869184325822819915003482071764344917109740416900855447027558318636983377704579474504594485287005676104043449320018019537487307349425187671734547057768796572706769987661854815271032299304025968288253459651106921080460816222689763102934585631574221211789380322281623362614509166406081052201862958530977186880651323926161979898313423086422683074603716665759768564336589894926764038707245109514579632262098071175295306623123801595036481061784909445701472547243810529917639531464018418722819522881718461850788727163752164659115040173587096783606929531902167978952550007984400878308722704700595507103810353935531983606073593193789698815777498269804601448285095563123258128955406674724721621706102010182155587759655953580717633811642201746638818860199978661040753955779896792084080236396967487559771781058448741449537399174391193046487330796843292050564217959649043851984791673481846624613249805912933666977914189663586286324409014777951037956019403185040866066750064004134626106022022706590477997707998484290839062884225735497084970391403972552884735102343434402372672261248691154678849975718066743893305562854379921085576949286850431967038756012072908953172421575188500171438177363865950647954268848023984853748529113175110568583430370473794862953163109434942599185757907456266864885046174582212344066824900553221103639505160409899118116449255164280563756170184346799518308118444182832365544624443856148477143500091557063168729327562582058897613059848135884742694697365286874639546378017242650122050956579939202138944184709932449073293672431592814646612740202560789851627452319779721217672516268626618511167842326411430391336219253015519961795824118730377732193723437166225559986424685068948171521417219789490735444622226542145806987562511009507619051144330118862889077599843089145150852238926982662690150718749649729599642978438455950404956666094658742438503689844852440275216424137762376535472428081959572430181860697411536805302078972738175265533843212132033319993665150853159735364693696944047111504862292820984260197389232984320381747921180954978548812680884192750904547533549126581823187721759153407422268348596452830400537614583488426695230954262260230147319116508036818818157485222869514780409113834677048340439744522758215157697833076830435385140735161766106195428891815098926633807097654973602962929570097429125587828343871353489195380807432356129123306206626357168320474149115023668645513597023704573098097668717973818056031914180089702544522808995353568035347751284985488806242354927346693134547303565517495378226396320962192945992134903497471336234310265487111425483653440895345497075450309223277149059723957624065555234742317125816309742424963949616360986502437046397512642955795299206102568109894214008513648058429026760516200118977348151222234531800000300689974310673155880448903529779701388658561084473797801415563394493979251012475454418093331309940523375135870500990323225000598732804696248564719117586766291652495464137112733535148106706860855054669351409446672170634816936336779644501133638133287964016803798176384646178274947377748492282397674228215621641843028914317494216305504137611887943976712199154313653974076252715146051991116369687374900174398934775700967003631643247612703334661581542195273796369413086571655464787830679551464440023665075144945179153235646710432524354678889642872151801801745898200131949719614379720737124751646220651789749509860957557506345694090143676210944130620731677150064979062393727866156517534084831011082970546527529622016436065114363509732957723150986985479898940137854433352200148293464801130326875814260458544139553281377891893752630220048691016881794180548910442279612298785263000601392285792498456145998814650107783041128747205605168356466994527510524436734181218504445661230290757446777968776081063422252654963770981060971166535856084430699083475518587286088570324701118830509367637458834386644361100080320622490013341239380901520974525630221282415286583036558003806472148931754911789610737874678814761625208555038848157594869407843456636665635889254041151089756924740032577880458294777535806913282584977516419830978583142717093084796994991331746329570288193310962733374209813303203660660704863789733234143490812321526480420733730549339779684429397548024284538036600306699883199381057871781527919829565216580545597352765857891935808522973562675530472392939951013674054568857353509201308049730469856091976779938953629526445783242907929005009334153299639711560727607199105385215646697350837674217076962460707990273168692688587945106962010673907624211548093824706074368348467212667174352040357953094867312827838253204506106496149370272197017185868654387572513487415517557395550677735195364475439093030712758639117323377902936242866379583119908485661504273653402779589381866258294369183736985784760335489639704511637070985395475182934598688474014744135773419418480497180085110946631389673230671416817797500535692579444504189604896410266834847340213812922249704898674662916093909938756530535263319913440172200281737493344464805483673983603351818694494322892181729552354330014817899477961102940553543960402182999814199661152410339802780036902129657559156676953119595307112888486371389566713138106549845644745540618966252442628641895782031134335045835386561902673998239191870736569227209833113726301435543367922736766304778926047175182428071214346600193853725053667580888053571375464216663372793507712235169506694165982589434633421699361894535621488884007031023920357800466522270062445536955409902886986057231754183978665872337776133137957423062304555689582570508236263433185417795679466096041421053899600544785057377913427376661280142005554350439764007311670335177491845133195887583698711366746935601803502555182748419793641883675587252433549594935115921530098018175582518679359653350906484292820430550543743263191081313940717818461896982171144464564315906003323476082475877614034147396208617350730392801638263338881144157544661912999108161583081477810041319456647654513305436918598539495993547655776923729598243553890636078932657198304192948430448153475103637759207257811097569156168720177926016347957319925054426340527936008171265364531410816578094594380939055716704615551765687291047140121446801188037169257401287924282275654425422311174740423881603565123403539807690366503727562289741681408086831051506505394675466937631019073755491164356382591620050876229020838970891839392376373014442849027454076793449945320764944234866659241773891192129653877217747396516411619627891057689284523210348597076094285818830029641459698442367360503788820956625747075672675826827584575421243764803753581408762069966682794132997504351734688201885970962461823744322718637482849135114402850713175897730232489688288492467604143991694353868314268148186294425983126848035235440754197469013388319810014389109034295524918034500133020091877528214774978460049657309776515273265972609524453125385426872855452862952532349420206866949741149013282326350446913479020017570998272586879714057147203315318960399186092817202203700053021149168561140277635077710815782584634513768840239177924353370018309791990834395395995557057283822455619045443694819520926105581334233829817788286977171925900622249934033923173228035855113475728937162198134408313717522863367269162570884955454051113847109158812997790797008481087308019404712736199833784291516225365186246943635607862477989060943185735176227530697863993512622034303839380220699679564932324880446157314146847902636984015003088977830326201459540266143489249742818130094970561602749076638811672635973341535102581096697310472109809148846085573514513838138123065617829271669999841093891107608379742747149563973722640473984279085112750446687099379921879259784511809808913226181295568533042763629927783383476294081551062846672740002079020691791390714220064911736972716358607410830266008486687910386714834495799529114310777869363879333122132076422427589473396334322938969116155276846196776623357231912298318581730956887401474196379618892571924441704705559786164504467115901661920830513785541724833433322203070679272064407108403134463639653245735738785578228500966129912335116478361700651330203048411238795982547523598442831848576683280240841744849588824511689914598649471015608072939387364391120356783909148949321609763315784565145940130917360785934256116701042782092613711923041255588909824862029563812184775275595806181044915396547232973366599874148827710690030414956359319036142275110984933848202031600968888606880159392457724014296487126709596949440637579057773447279214014530416642199944697515354401598447816333001561211715788400056756976794105234901593778464572337366698919029314779636619888383132083922558798917879730617736290269397588598782884761951527168985249278340008972892844766262892136371854511592645758856669453811564997014463878412232623155025625976323256165446890012123030835817900026846206505576599599768518669725303450452264812627133753606971223271432580183125497058753812020930823013934544780281146307031484101968921084457076776040995494765150927213832070756431829488513103139119911149953247203360608548154669845520021123735319100924604379517604592937838054190264926177684698857298452630497449360278506090883051869617307943111829898491817516205468323750823049828881248341585656446449583242292753024520764921584020523273090401146956509497875864864332932449758109896129727983610134731959824927047376821613425526700833485874656031204934588913079783095235539333760627006783228336707336816086755097423788976575202907164535385643008170318164009615284369963219957240463626764812507799306624053504341161577626680682240664115180596604682593023192054239209365551615894691697899068999524992033023005964282791077987821710981461735334470437498577853407389646211489627930667873434974618929467649686078432510487137367219304068430647038982023568615064603016943234309445769294765742418391898056152021888252935415072064696411969946777254023710165748573530110697746390038369937723882406958721009496019234038893997202453768086315735855926358304859599031443570916088430347875403610030214191845069324472366526595061059172105195214388788231898520615065203846030909367786718431111505353661433084990327608803669058510708063469894697177622317985940595616462627884879044626118142471782851867310297726367533061926845618114361897513519003801990490378354428192513743201022549360262827131167857546708235294424809984894403077200519332334153246064864219752967565886513657445491916886255134480495257858696390011117232529384427431852202533553437627967353001984587117032681472554189632126689820264968226548414971970419515331339026069468759366673658270689174805207291577592406846914973639162527677486774804004762152519157107264653483315011022705658733273873159422262618155641268158953786475726715906123681266210619972761364471596317681463962713556351836485505885211913105824400456992818697409001898521346434883520203549955111813278179121540399061573130061489503175347434740779616027961811583078928974851094896217183319522746975238519266738778572814727062658636936084927825098556432959934092861052457279924928931220324657365114922828127092432266300668032880839547934804778696228595919462039943254235373155179486780890421164283604644323973494832696995907555973307295831722391474786460818006149196410180962854739194269620601498304935962517465492706565954911580978191848297772321252032571064938730578436867577515975874669881373179132778046587055986472818763831146474184713922341320121809651365425066184162514646877930033854195461456439461021517600473443416914068050457937244094359055519113024948393754178086235542266293363541208813074533371832009142876271651734725535853076164440007937482218004623877486057164681746414022095572467650855029379696035793531580918642349513190849057102396821059634392990608222170183132410828257900718320029234135471931873470069072590657418935920835104674027644876844362815553766838794524050402183326740691967010870474514579792065625871208590525676100622609535341415070947145241976401997759857015429296459318908280052190902722188884165932259611100934899547187232699612884910058569654455210480042126223173205212645625306648003713294052163795884284891743551927545160838802940238529300435864686621337406184511458399822418406513575750522095508847444284931660803288037950916277060242284203660611896964741646961491762558779534533478504063430636043521639501050530617457885678110850876237776763216267202219859203516969491161511467088820883607129741677217606672711382873645589366877689446930190295536413804380601977904221592373020403201740561640298060893096879827094709562360280223043826728466031034388754357546887396407948564035783665752734129317397211660972040680299306185897043986689780555093627607390951015142245315400267754009522707772907202223337700341111007783919964740240947281343433209592074787256187516104656310773433397427086810392206754390706452004557079647409285928709433010078656965913921920048921129508783981384538005782252933559171184456293179610804109135731875369578670538925573759277049389335340648194885918018362967170999912866917032280226411804517558632126490061577886600385900604554375747502483360263411147760742751330624998048947881534978719218852802236848607479712585614477539462960914945101139540794701986709156094145405409172361872922982968016237810270702270685398831630388315243559976320525062608758174023762719486504768742490696232312354078139028927705072528752658248920877723811103158326014875944857594651961600738655191233315374593884897024763449240103282353949219180177520175147591491152907391207923373489863302708653336174099349905754900673691113290741273405292527271778761283227157978379202157518723540520981280912125613259941329219227821802488404838974246808269412498324752553658304738108664204218831505429406808397607806497158442901178238999212983957530685020362167365468693880176180636555977421617931156748615219381277423777325597788187324915642098501606516987828812997774079371854043563940881433227781240800115486681901068641016297663464541267970611550121190400244102279465397678053404702272894584520901444554627358022668411658568656779750837641567618924187867083972327156662411311052488999895093641132113661908154975932027978110203068260476117601108453455061449769760275089343602166609467019818777166599000584817264732595898815252084634988121988400133052628473110039432300022086670150551574233976474892819683611110115793989767954769468260558749787062210742370473251273130967799320838115616506614275457257806361516463509165004009238566368312838343655923905939458116159376581599023575956165741293085041349169195802595586289256155163024179606151526231254614379334815066141396967974333145556966360335375729319328132569666862932796444623338795692044911184301604029753050812392564305329206824320069460518683625458705830503683086604265148321121025744653202395208269067169255390601737250127526662378475948122635305011845080077594547314334550405625555295703859175030846873005892696174894744777484390071722253660367497265585673331086258913912004093860064863713888990415926349863901532407350002177751515708992674326939434346406900075176537590966670363190273965198920282291814554389836412719734922199824082468467838079150308177854287740012196590023968122543800969890984814044427764325920149234732104005868845564821858752785959572204452030533216871392505735127568776586608969698873652071080836779123659999114902503496013605058123993591417423060967404069943300697180676709357555539279139488947055011703096058613471665563193566487991546856496451989506959429039450330756631691705488940240338023731756281692291553478858348575274731502053349168486218910320387174510401165736473952129300770870506689038984785391639948941466930810285124404419032026043670026837043678110268351541666616950283181884395156131275325593073113149082185994877379184754278830034905232939520673484399426289469687606728477031076256075555924071517614155043896192610908446921732000448861906713518717118112976636543805125269853376555416819667489557654513081901238985520791073900996674036949463478974027909586887244349856673914513661628555165410963725301022117404260781919194023580880631542993587146654834735390596689549783655520395062419740953915176072394100186860684146330178768133773888489832297121386320733481628215131293370280276245341693706548969443444149327698622633542582685993334149152836869060902883657769060217441524344221807695805234375570605901746824871787983804842875135297654887872600947035533881259788900859890917760390547479367843565767569084389365613332963643240050210020196733390260032324968373846475578879401059551744252426662535544001945560677813191195269881909018811618518075871611149161703188989397830162188568489826209303994863880772157958392338835931045256851978411698714907240404005623804950047345666766131634777559512393342855776762504912463458298061582006947817543794637572975125212660651924497512971226958014316389218694744463199764753430030777450801077160666650800143828425183158006979907608575076270339828437815627775546416863494727245922217260234527493821514925435936213445779980414114642569142049022688812813030888193255731680924508745976545556924894211175277934539010020364199903099237796481398946789609809929552403180267544609748323085100366821571314764527363862216839121996037446923427657430329462388444826188850711326173434013147675266180781244474277873278748658781532344936596454659656568413142633573061476959938102240185950560084297815844126675337810867568840829057695195142048458666079304099842035722754855846606814437265084119440322142261178740449954932578113177703754048448058548658659497548880418410741634056287023917003070551516860120225180004925536178766893484993746232687188642277513261459698842408315250308400329786279842326511715220035189664002571324806646123312511283512533672358677059924901041183832431261605725912999674853327179395925231574671103949002546847403149904140488849367898175938739026357890402427622188124774942679462592053761793194561208394968062273136012973724047769780456339058447203151523733891015267688905606003918616536574272069690015004651243242982249542182002036211274948403857572319194987720394674036134644555688582583301883083317477577156927174432432840953835830227903313297704579110478541168143857680174943269157040331961750081715531114769001547731742706074521009806302577945284931889777911075583385728976485946731086810265728310647864556258400422376197088279218784128449333550636954043794144842780860742583848317164380079120851156870433912969530425415513644864409566845313283504029113966294189575924414065688517533503750889455697848941317766542830438418876478772825480954186955523192728652428485694133303672629409079257031489441262123859752755469056768137703585108800619369637628874751638035499300401615076458650818624997992203295366036807921840924007680978133787984166123789363549277570603303867044256251267241569216286629715928966921104468110148434769510920153118611398920156520542678624507547379848455101194572619896502798824807263382424507731292570673162951672321360759701442494737728746770596188022599168705685920751048808797025273616134334211420391458508162801736840218099318607293316003694146297487324919186138262315384859718548669819636994899907126432362977838852496850617284356411185698012780194378354729143869111144624463456302608268094271177855872714597641734507453557912719676608250607909178176100937502312517076596946212487711002114030362535320451037593612058028081871426957711384460094374162619923705434183565828518559294238133427396176801033032388804492797690709347360443369718239072263385409639970313870908056907314660865334521536623542388613929420416817911009460936992932964228968828547775465059862248095219496714404193641008371337164690590632967285894667492428824657707121063802852869942320950130935642610212777170144561984624351930685701743682238860977072399041028034164893565804070203480779810608311763988332168771817843740774682767744390102493129405180240069251897975302515033920818555452470464977348087245364333031180685144937695795908666145896973780901635177813085416470316017767088213814964006249748436570822372129771546591773998155674947779554114164085903547238341545076712926130596572221517594247283592261859604824942433528941899894706921209453311863494686195022232353678323256095215419117079106642354739948816883492736077921324181700803319280726852195908648686628601125669575706628128730907561247645725902339154838575799503324928661692245129564610525611016005348117141980918249894701924625606822823368363965508046395463276898555960131791662597708130635214595536203430575558906896241597887246660163313805832693232943232912861321491312995202334514783349855895787946444378923511299352472042360418535743033480583136809025166133941655334217229786174552813515821124779750039909633139775279757340700388144028578434214813150887202258890376753597244038762960783547656607184635939958410516137212814346251372626493823490475418076083690784471954561603766793793974994931998560909719012938857548233540795743840599703774374154167941704289542811078798271532762408546918321964670912555621604984191405279902269297040458060059605569167973370631314094485288107578936697592709177363445998655606716386720611118378464939500585017484100021088146306075629063939830282460656606469771659705311098534463584723920537708169425831411517667983777508317740858263182849058607800250894352690815809474473999614720622907404409266481779418841944760006554543167249614396887339071704565170917175954061540016715794808730950044170388310104999700709469920317240436833861305930448646335143190128733226521602097906139628438055184080366609413878728644478645225365918324238058214742314088740179979079170882727109351655134532300311023311560384216144270014832102252166152389954555735494118946038106080884468149559613391141683189763275655573175783919944634873644054712151124319090247326997161186914851054779661603680263883834240559510214642195374521145288904003334600265702480944305980991778495614510200104844147497960297706159971600460484221023669556244921156358538825223460893092896224300936825608876176410608566259943374130160415550432025532132806630070624645162836074524787907815910166242082833283219529817969205821490534086110885357274174642483967297376209432903816430483348933496725499691617827526156531536291071104401289428887345131735226115845241298387063248115672239057270502495622579412830545767401103901873631204569363693023306356922001060303145891671827287097143620222555618642847232826641033520418604045410917987922942456642254781985412944621964163185581286255114563917579608255070485497370417340757999913795619694077161884645361092569374329451618874096953294717989284375870783768024829229351910713626121465064829073871706509036464296213603480729099237319651376983538785305222707629206698293062388131817564408783931028023011768157795563480494085513675486180283810770576800042815410824888663550582454188230041000307587234928618806429226088828139880599976911014136255270517907581169499168525507909822595853842873881941793768837105346009643562901600972824793713081328946438400935520079957178696049943189309446031462476890189882326476423830771745048624354486096392276371336991375852803346122972452322601750435105835104331680042094246760806530099399841923756560676431567844335345717910065099107956546015841801095559606215303494817854530070831271452565514627408032708343772507243622759687817114307085768514269618369548489522284214775388640692756411328406526238131259232678463676203536851045455846596674118808841114232650876832032412003505649347226234092936420746041658734872249525302576958135370646385828191232216287850643507201737830761467926343816563013474693258314787223340759786896487940481602646371533479645567513308801239506495831674209532827569056152155434212007549050371770359791176764640183650841170639114862785582148273665627849171823099475312776898312259822371145032346178769778656849140337617987680478000539350569307267885020912225762573202130317385696211956400336668170350063033252261249962474155928676539947081280273342954952599431868241503722262217268681102002052081780513017238648155927195265719990310292907026445549749396230337823835304152968540792511017308267301160290168019844244423912945310796315204568573203387678263506006925580490817710670214870786229831637945615785853822561495004429166766276547391236799757726787820602398807860419102811015737795024048754197834329161840482357983090040585286771672830694830888607672469483685668564670029738930207551195836190011972240199133757725763993033514521690149623288795592279096387752840811696679744878926480571508105863370741770850082531653090302916696151129646230926778653626683867024712288285996098023059736821394844578670945259319264786233930646946778176458369887089721843810056922785605117007215589013978462054575606386077709986583030001521607927888883105401063821874942028423139125393425966382142909347827660296647269393223879214445678709774124304252926888416379630947219386663443581538260690218831537807965442974812160015051359924056718283490320516389109608064358540037316622445775542969462733985104590500341057580320123265667658622229172463786443711881558724821491379356194943090512863032328000320364189304144580338979075452970301265020414289707064311838944807185328942426742414667174867858755738355022593790530415521194912528194679478478338086928515963644153729768515352349999168409735814759527980669518874944722490384190652536678729101640884103658881067561230226125650485472812105809426453553586442038879398486938032408284557042623190636747479036593497486665613188439857328455866451312421876225512669551468972233196861837463482305051655007512427051194884660004752978333084366494891972069255393886896952667870775502850046783527904254655287988574393088681937826704445714537537612046364556685486259392124055186705430465467229542498535973217027911690551093756431257317311209029557320455087200098043521120615809168568130293267287981100352734495981272492107996271868510649349163293605664056536002367695745967801626727801883296216749603577317761946212494815252082194193315043954355626670906074360068137090698084275595902548805161921395602494978219433603742003468188511932360596683497054684136099829667478945668048850542842203706533542300196519121375185144044803544715333896702063497832352444361018809697027931093182724987839649629440824270340628959687555611574360530760993910284211625459483092140551862121613959689955878187776149814932461421641423338025564243346668080427158149078698613400617848549757408418209813922999853482082026569350495722197084580575510180078529577693584792501980979871480134415840922673560951555316666913855152317620609346776313665967855286241706975537600283654074154883354177435755480663386438364181725417872816747821022359388996340652292328862664792070081233962056647657286544376699691121235173637403652274516682757736933361762720367211723745365210818041815581531866875297547940770840771534550740821586055802906139667547207009254985438501033900088482716733159165274653819297038620710306898021766578014455936912843547740356742546881821702198556515664215208009241296912345296681369839062280176385166779561286217856407333593527853711338662549825524976489788019749123518191947197526201613332535274263443435175469771657600717323393654057980656049463245439888762006487479727202034654898623644696410562092731814822831747020345419552351511774213603495511935836879953026254379526692105774004233589350537095639752646828642561306045338776095287766063478303430425794033978028142414673855740129557905100644597438865667512758939925385897838218954801097376077158767281464532190880266727744688505024822271433252840558328033572366925978185566253480206303108475445392713472216995523832551118747860337785594718260794923708825444355095666524366276920600591786467784792455406867267895157704975208116565876977833775891344413747047431313214806549177148727446311994678137468799683929440987122096359418948603062938090408102294065826613982130451822961682821768241047301509738779107125964659686919178871282809902594462003655168290579831225830259374929012891193906731363650110323735163759680894824673372089862655518963760399989734226036562941613328140892386242710454717072829834559977025962939429489770118499731721088931226286842695769778839207812465954746213038633393561425570483682359385508432905154724239036508882081187731332895203425000532961775370291082792756634350674931393488618118057907788222689882853948147336635238387941940894234234508445800757823444019813093874620722484935602877075041915242950429373222668156373650775746275488939424471379486557516271850961001214232362981789587580771883708127189520050372401132634088554008534612012867834893189617618330202780375043591570406189309595219130074538146640847723731125526851555885573372091810065533895344790712010660978848473317074877839846410103012843126493006895605603877102987566193796500158808284304502797312363838912255492560569540489496472874661305444777307821496545702867552681380425388852692236943276342932170294032255745770171241309376054663320743639169450453116148568436520739756499263856018857015086800462375465263586921308766533367004093929450404268403019524028003638939183053420721053396555537540567636872353628974631083382675951125014803768832409264998305566666167150366252911151851796822135616724520356560490009716316516489383903065696114008142464966703739356711430657332540669639988409310030643551016879239960801214694095855766608245922264291263005713555305686821643214844260084385218690094212068687052766309773655045803346238352632175651231340307083456539073021710410266238126530867793457832179098264241496030952161965787702650932012250914654990736040112730814637049331099896383887364119867748960475500211224415076898728245097579869749909063124380059092442166582401199269074269180408850756238009381062725593712185960410760246430508209911751262208771631732092960432807983043244405523928861259667853297698278845430206769081730333126173315289640013028557199297616276792904194407930463375363390764255196459497213413495314858483402632958243247550339976502180028328223897897632540324810489246595441024805558839230697677564999898882091161901867027196547723313232466509648556033269697129558830655181293386829072228206519973196538981275350702289683286037702243787923163022395654779703035954692664479507458230463647947747162883373226419619187427762969724555901353974840232096023216225422727128759451837640470308413391046705820477793886395174676992371136146234659991346846866802785133667904290474636473070912909035141897653142074987823791849364166839208361908394478749981167602025790560922985580476763765392261678936898049719054042833650072083251929529324241037287075229213813149502274184297093334345174261356436352434255212293194336462290864129088928138841206705285872460793371212956371077263915338531050599111817782256208870483380707466659834650519937650566642880867547281726446899746900924748075875423792474814060726185572701558305532639119282239762037946277470488018211167525816356419160284785224983229855150369411992295891931603739866076934125091886786401703640778826866568812014559132638709901994508205115530952576954641918037481273486253468505268361048997320143896106742602949378627305905049116084409075862637728211793156483890413630476964118549218980940506547000538947381862899148021117349551368981425603569254629797081314810600702336208983969511670303985228530000201158059683585742779444278305883708823079300339935991725124077166283782760275067416386569830684575091144551884990654251555426192310924580975195884034269710407876424997870673760535910561379338312080844709924770049965922403611771909371800578152728305599218053289335867926889543451237942150212233755018811276742046158442553091402689656550089649771443216979433667288019411963760795596396211001030906519614285788110117351721058359956935730932484904429605340842717917903727185550672775975147258672329753801351133538786767005672295992414089599014006886293113873230020808096769049082574506536926011449030490751390742044942588858371998147499071755998773920068102787417036129805769188403639230452295787028104985428891626531423285466904539314335540489239898216243741333442912909278554379840171505593421570345377641057597182844383101982548756960162215804748850267093103916462321343140967423221271933685371931501291785974779706531633345686553409614039641191310898535996980215788594835385046695531287257110496656967997365288711181004661426614280707869554597428633684462897533949848073564963793204991132343121295666545569362362532330732507491733580012767862028860370160407345796407640660508505355942912025224261587413883275152693139742792274896517724057838070300987879157669224921136713923172873825575088094271325773894061520211482891773368736824242494547849023895489476478511532093697582894820296725914503381936067964781613751030710376058377936039224245357136939717784018913798584872044138841501214088913583594365389912869286922295070531543958482718498977068115571393081571907076470702120365931160731361197906806684754541172984755745526017881037917685196824497307067583337646447065296631922686752908548469438213717129761003721378505849558564791675527449849813200286051089749311356489388052629854163517358412906856354163023302249185592607768143603097295944803178720209896522248799057889278215098213400798950613227684985388155673511001893916396229974690276549079992748691327202464106825638876383312407845117341877508792882298468792109324792883007438656997489015566530402117606137239433448044165644838155613445889058055329515182342558525285418329387856786799713439313474044837191383207948635637663714825147336026721758112341573887591307540196248303520555255823497851723382949262845284718725572732838953477086717760909434213672432937600187231162895263997873554400015538090530245543492156308239274804721630727485384811002242645489597158429405567689014184094586108849406730897695915381749447051836764055659094856724247712870379427166729985589430177350389601860578223924596782839301197584333203240379461785069063487159001646714370197842972386820433847363531444282395446991103114980863565612487595824915313543979761520572991094739285947629400286996853796978327903044142901976733856872702028608715218408897324195630302580773666405056878026507064162598639159109855156092380856197371069626167573747356211189884885862106485445623526516741009142207377610313212096908682796833397679496146467738829031386553497887755407567438104010937151619886279036126948266013828641232802704509898571635738562221471776075400675484440353638874882213795724807152788006423743686695081364945172006067587102038266442611432889270209407289857743453429246993355572076374035379820628909342140192601534283865692394262925337951394269485281728056251685056047992492870170713850161063433808848119153381304555818181099793707553419554243028495947597806798274194462534548010372936593468635920077351445163333911665409857264782383783623318491573575123966863609597522639936488483444244530954867894229522789749235551667031384292159260257015802955213319560173862837656253678349508266682570757313284040935876393512047515961523960367355019532479853202011952777599093278288481305740648261499753183474079633784451054604200930983958413838323899582330700954933912340584496567421351281765992822824448310488611714629313921168555241659349111668061654835962018443052360617714907922514639856537001199606099205578776078810674304775842701295185135359429593770584609692886891209345256005937334632912915840024354160871795753416326161786511682186900528215459922668374484381160210450180233598212713079738930192779250104940278282652832572449124760880607789751467303065057621930516413688714013296183429971032524072558140219435825022560913626276519726853430404025079334380042005859282690227858318353028886195346216618698666814589666023724118474290966614318990552016287594579015036665886691507709642433801580260369180308697830690158722868941338878796697426189874188927977999641082651329033360873744866844715126706480208371936437093203909648892252742143675790828981632182157893403452469968722952372645914385613604681618088165304164594527614967552706034394045499139807195856377189773527295874681116517408901830267309465134990835837418153402133775178050450897245937692364847815645977707451006084125102378075687732917404250683706356505329281932516288072429652229919474932490121852861234894931947971043556973154612231504547131905913173066165404264178787159397348290650566117931341352816542915793094165685123837317353523322148542583531153907345279716023458518290753143018259316926448582424617331051858296821936218562666074718008546407381012612096821431140302265959302626960554225501929543629669743189955133595634763180768483200879402366762129404212042146811893668140515854718315525211380107153920036297861579057597850582001695047816218948500163848326023934784481199066639494473484444404110740266049782288471029807446068269827828388930621803700485705493696399574659972327667337045966267936366338984399254663884659322215741378098998436922241137246049448437103267382040490643261363347025158310902205559173024254835644114974922934409711789777301339639143366981653777244348723704197452699874323585388324799601815940169083844203849137462661540206726928646093247003935399374332417301849818187931006854276472751803947753706380696226769238930943070634878861958394282878529694674607557415193933419272403104391169960088738862989853741331478130370173006498347731748448957916423270279070727752230241996927998705519564081468782745319621741813385456919079753746711909305672874537823446366066668593068285339333320987358707829041837212534575093323126854007880017996994725419406013506216625940163341210121077051495683916232724505507660676460799297425483611037472223532007489585170433752108534774407954303024395254331177315884078966888814060967292211734517376700614640445793044525147139365277275738396235876195378518632657875571481889045378354566095949799867281103582401536525965458212667368485516672887314839444489277009344172220788247515836491034985150282697797745346253776531952642689331118649100604668930084296844165666890596556999693737201744423995561353957178335471471285190581254105549589732949855501324116104854802230040360712686788805690979926924708773314095808305492067653148082602321634793013689307878207316093354864141295255829834851558568886652444615203297950633862069127658948556657285439428952689830486804913727055275268539652035294200557912804457315397843864482115147540062383781069534184442974003099599479546706853497441267614109360595125441679367767529487819794559725047558293027233309918687146856648761690101397465323235052329762463935415583257820245326418332710009844879453897139405658545988060881341451436812590516162392496062075347923507472289850494331221946763178840252975906307840380810771832155854752726332171839536637604090254120813619995370284867400621310873157868048497800451940719883018801158445829501714727350033549611233946769479615795900867519373746988711860267946515984942015384246413884014786885909681258591400142064229920894384993786099229674090311764263432734552819532066016178153400746161279247472811434893620035943917621533076404622330165263654557373886919394234922352607513799257319986387045873175233820528432036398889571752590152969485311253852151780083206397311441184077755884778405300871001717076579469867323168372297122041677117062506671572420058012815241624630298972687941379930948538922098177304471426275382703591868230447556812403184586904049792762558750155313608144461694527307636655754445596675082359581514307777440130306318915771061140175532145020091309698784982163390400661835951820961706828941430577413965844697229009803053761204633889214029841709347108183507004978686806770028505982027486990037220416665428108228908825587289316965975079141315720135444978897404496575868324191398150592150293016595239435777335538853714194515919624538347358607983496879574355179948851519050896433533360241290208099152834060480897453775841600071082016603917220607883424103840697486573218808836938403725199950583434427910970320072274052590581341193493999921754993417825183354287437354079636131143616190135236222678315386884893877911684523007436361713212152451639275117022519406965420164344049114467777305764256407585585689935580202012686540464481527297619834695311381067342447341334569233828285689684803559431358559785732883441810525992334164702729391859576739632807406185870467491990937160739722524761426470018569651270609962664190224492091565963726034895608304880643560696691687235497089292854426628870599923350243664859257939376582177674556354884133379879646884047491610485840560601251870026438980880007062079207988285178058565597728970521494160949207164548693632985621650658175736017612228748972757300740058162206082721429362909473987633098687644626997202403800069467153557280920766989536005239104090124657501678573876891056528726566116733571676491160606253092987800904236709451748917662266238138878015674552165620294367670726883006044685443402936513965942883497609485445563836122490434301009436520324423970787994349121980692411233206370995928138799795736693051176455851963787316441183583829875666951577735788287089857007441965262396834992580420807719305641773556173426917780733442644130270888417272969559411752022857501224348316390529620849012192900580740135739811759602378556478808281229107045463194739002471672483404920452237370851881896518756997858544071297943828572714704596309731463872547787296094869720036765458798106165503293162035582548525211047234532352706444718829432814143511786582927917741353495062692991726070053419775109747946220829372912186921068952691873938132476886052564962976110550196682664426924378449942869450888278041868194783680837132458903266586283839916396454229951031001758254136534621768978386400930517386571125947859660891217991594568578601324304968489688164366564216351648617527344212263179495773584825640690597455181800179341872086748667477463802209199434762439072252700438407152685656892039444167096103827283572867949625341059858538976764920463140254709842553713649107922690258172612142363475838147331187964369797295887465185232706970196403780236761655558200887482192507292590776619286634141078410366954454722569164919649502379720313670178265516360652618124875927533548143049919265793457585098648696699969557600977765400158267621931052878309298835137137692569186116134245126713193881899345514224990070398286765144017144436603395903961557850368166706339398006138913807327261851490643568850406926819587504194917502766241160232959880625083413822682436775178908603162709562719514052224404432712672060779272667110316612076665403688136702142437905243492089751368543921582332752281243085871443094658836189801499425407874784981053341304057644266960989192053461898364451208644198690053619322488301493600241939767561698072958850441753509959661440246167385552339473159585191855205469216254664110599141035477226502267356567798105289380619477481958887548940880426209386971619446298082568808639540023995591964006349723434593932987515844282992199716480392606975227386660936292019591036802023261823443281503651014882043138092770769761655517549514723266940776443000091658151181502135566566383710218559995060564743543621063084064612933640302477456829685105800085621039505328435457200637073731609596355326941509677251789415712225124241062416737808501167034511477656572321546037783988293330267175256452578248147109738936127042477427771418114571148355080659373942714365972054124189410260515763821498781171712797067364217282679430108815643127109776998297757043264491189771465874499554702334098784715440026851106468775920132638348993235576378699382881358917833830430445880614642041345595113406755838455953417070401071349361517986029000339977503480718685793382838422790902358780281555980004196673509112653126126044662881877445870483969074703223502831482291906400827780611231099365955737301912437684721343517206394474477430851851132953976588808352943984069048000552742001057526050490710767734071438292699964672020362678723845399192491654448087623624740771204751815112312874066646424095735289901038957165805277043838307335511237932262084780907998566482362954393961507570734926834375111791793174168531534364690869422649875232262835788591139778233497921336968326213579603293362341464814456921344925948853476868472802339625256495279984352174176619375695750714772210239400772098184039443032133189413446779439828048696578235598461530658367624068018377678427986740646697646664148125308238615550649287820880491573404479108965444732494770274815734013974557801134254605727432974802338469063884055889719096740601397497791503641619820978874542458722396864486851927199957342171923599869797997914763168345998035382348788313432253287273763230570940561645876672091654688701563457140171229292534635949368193143606959098485539453733396032620789079371645618101793228864738792266546516226285573041569324592466144254036881284843996035838070879141652895264979911433220778489905703530759496578838572065970168144408242175867349129672551589601694778445023980202454769254415256982701385323533290210579662328911136159796061762831737929680201234725687158623526527382099966086651278463090753436034310733084230152780112630149619207785699357471440272052734273891098660768610429625011714309931346168438732580147735900666283260089918120499276161611152827882900676420524539558044851196298792098451229256588669107322772329090295883235710037232321217150213707460357906333501195881521821710803192738795743148118166203142634279392454391683524596754083049720283666232330640335523415604183778188315026566388409328603106164211949038216481789503212918458869655526650802196368059543821776734932748785432617408763771687023283736353180500519422226008910903275571014328910960518879051269392308249930713752384729019235875795255592042089326252604785293083468939713033387061890990305471107664833506405367067504529439347594537198604371023438446488608109660079316041437045126135368960504091916342650613131059540779936135351422701153431016927514099534354632449138562395205452643015973918288113292313455764954003699844837137384593055324269999892721398098903230957430101873682622430749734262998348773183453409320739952386369142059835390296208559003348518511246273287971484884581903303623270673355771873253776879038634444496629060986055555543728862101372038000448852667792250866280143765433573657642353740791789626847266575331365740569250923146355073124358297357300462559989167959457320760369585982285497798474042179224743377235743511555105287270510190931813578248290641368837350469772356873846235625193761723728421255315469726640218582485242245722040225683864626735634584707246176827461513897127652479929724946306116205779465605993068405264091289207065400824900463783111730353503223100597733868425365118021571801297466667498784864636874543771769233090248736303711617508230358489825850275529197899407889549551397300034695583613498817085361128289392749396793616550063040534507636866316054979620058781851403813496086115310022657673955148932972476704273038364238724679138989519732993261799346600885495869172972579391249471571848701757653752818604055168220426401885759259327260826573349516690933880277513921516482109359884987388113401044237385857630566144226826846195843694775445038873851236347744042352762320068199557603018589445012987363950980936287482110059646033253281392782976010886121946288469184225921478745724451243626874909960121957860984114604068486926267583577207949935260714694179136056833775643570792286703461704912213636003844341238578998126828937019680593301260826528122769181544020521601486843888795758690118918374829522715852021323670281685896555656961272542262395262745882451077832268514743068012762798710742214644321330097767742233315015086144928423316693604218962321860669597951074373340540683773227682419196365781811985949370495547235203365923250815535970019791948282873616371322280671372183262091497128786384044848353435066478486883504513860043193537731634215249629406114131638912831998113885042210957693978323754165507158040097757197448642498900181091546361978213079742905181612832947578687423263733190456909472479379908693364640165768535608320268989906733459992870943167092798286582697279709604613756993879123636622134547180496647504325515328511025143588582650157675654853031693976366368224455556874772878558328410781213899006751417898299224814737976695002228720649720642395923916186385357832465640412552194041268419325483350808599256422325612448302506639811263675727183746211978896340942374591603529677790232463048390320689878648735726490121649143018834887302248716935562349848715589983402133705088984560534416729312560796546371755699812969254713208519822252921323486231400777842107334075464156960434480885800682959138855886598127652450381736043314577744062512536226484542599157573402068698649623859229538361012064126159283913133991626462962855613520634285065101908425059429083948997622453155459932156624566210748413659015090475565086134046584534534610231551383025262657180588138305639100439919235927006546441317171561472909231827377535762230216103201671947522265577737626686555123668810752320824497643077604826230792660029556656927769467544405715676755520670883280721525912436912840334212463817061541154414494459837549286350140001969465099071088536756240770593849295037783997465053599780359264141186709234958415888968828664140038785712227298879216815505115353933261279428985948446941601575682435931717749275125108426960717722760266618322047435482572605032023820976078956909990365663511096485429056764917491126089569378948288150616388801859599404536608765190106369307227468967566346750439774039865754953299685077319662787612749455533603589026949442565672057487027663586179497146786102442842438955635951240442523089088593157326469925330314400969522174491162178162944512049630171020669543225867939662443358203778055604579554581079881862746270106234272590355500170160490426465924300235506240547584812008952194188427265224273294829971228735915082962129922377802755368406841083541484122369866457353415349142415286685740075096951523196625181360950781604798594322616165917278680325491411006074519552644254053977988157812183860838691584131900145483553931575037542581873247200435155205501929667477280077980957632291233795058229573610612941042307033779192061565125999872434389395125480205910067418032091389208671141555639525391519084567965691349725364106462789309293318822223104981186313200248989201901532694670265489572887626691068625256191620506598567993243516605908042368542932180211196529865564397797050315932002601356816882788853022520580477410553347677152870477998574168539694440995480566227743379045567100732099314325669479229803148859617987396021362418646464204618838606735049008794703655690903228248044922777841703901065275376165003929511727027350776291659832790669781198261933847240866691043160463567653126047210829246653231777591380380062628922564928458192065441772514319661107534131092122511502535213096064253333470016588416425360680323700716475881148904495344528127844646864255745994970586767697680044659655859054293239309706258314326336097725352696322105997990553379931147788129857613007876638195565343640746001823350698792805649353728855471624917600238779358052871491868801494779607131320150296828296185945558798283077822003528976899418446010661072197683162345935256723551277104506249047884533575246127744693833712364669471483905775624625118771578265664146337299918223098241849228048590144914513935544471646201800272212169147193764562255876943486484932718186390811584751675965152629007542659460127939733873239447011491438398428348639745709403094128697269469828510462697731674235299486403745640403418750047295983122533320527005138002741143466824380318323659749933505151891271318245774620295102252077892875950742104670589711197696770323208053387582504054090885784598941782846951549004037657899372511754104596750082873335088109373713916168839774570394621012488434829284801149355525249026556511067629051519899323752374208363613214890118077922287018386321705052070968578062569101922394041476281389018166683956673758196967800182622731497730536056203616051305812314617671556110778720794533322417590365971205564408688391324595662380455495010075326712047971113879350966948626672849666546640476700017965838339272362267056851887661917347349214417644952708970985515365318829950041750402018306194028076305378857345555152305968094099744763572677526381245122419097866990954794037624421540672760381756617077292548003709157305796472360101142542662440231779335490064148395249014869365549301222873662406336075471927956508637170860914319791560074350678000117698069408287382914218865287261660400330144165503768313603597938785114018688539563069846561345842201245694174379805276868292933725405905876737724882271078471244468634403106992963772366473043863851501385790946393723197720725237785292099608225194662287389337251024568002995457545677471661225826547445136122823140972037902881606303672271334787079912950709560480097390111832219676671917400090214358611808736768999278628170467732767298875043367663627919733387325538122347571628216530785541897478617268114071569664907356354571923481567026684536904336029758648430029010697810277904251427290553398498511591511124935324091463191082593099426176548163468069920228359042193354435559567573698321868706722268574569638992452670684395538081087298902449955567482903170581747775652168830579838654488435844722847240531212183895732293063411120866369694150498515911949754603733192327947670938706926195300371254520050025946885499568250449262209969666048812791695312058643137438802602283106727367540915886176960701271365951648478053955598538345229478429012010138846762944758061867430356468594841060543767256597346706047472563318405508859078098646737160920320982873369448755551103745657271099051312807874878386144446218195225685860223295949929402277179710025998381278026195132202294929774047606492829324391341984621758224237825780633499258392453503518842460013402991045783869897598267623701655568663895762081050549443212200650951108917593955981162542375677815379583220691045336752574824573308043377814752313953297833200069254607864324371908660444450286463976991304338260489829859804916500997047982535435387610184440176766707726645736881234254288205565122698595019997131607705432727908394683669331840460407033652126848705953253881828752280535668309518266934708872972554132123274799354072248754202536937074777327501818940003310507213200558368485201826153331086553285493886248569867295646602889146224318721179062291003627560039474737399466258900107100360914387218907186743456695367213633834670867965876848098441185347701046836835972779342574612881606535605464224856339745694191112794954990028459197729423245493288380445789172899929891943921793103930498169633764157543238842472243778849432566170350034124718992207304329972830412002654502357019403080266069399808547520169980494208610417515094878941025821483353772273795447162575486641082790542878570255417986431404319030151433458847458886985048723315070736776755647115326462985474568909930168752375150192106341623307972983441104338134192056007319629272909720918254941519183465192528195073121327696307328279705714779535764589013255382388746881882746922034428387632932415957944273648439968265442064616094284474054128008168452964467712094661586848792688345184545679909052228846246202740425640780408985690874168476095741295594318857640884489216405148628147741026409295059457020072430748043457339900459586883624163894887515020674226959179624489561650283034578239475139656787368948693632960704872236832857730703004435409880530549519902665017438443991065821924803104554282354637988298808942903784205915534544944131777837806712839051414691927061582636623409861743064929568763007894680886198605109932063383165275683518055248931924729557155591822171096039945512343905505052579108440959998763936322888938241376986181086434075777378710011710037730892670655116483329511652840877634827413690423421437938990354761530900112810028317222675459593702683732674260205361850265106299446937311025740752554320182042968256634030525582727726180440526636788165459644488181820176811020134798592782758311144770852901477660662952189537873121770629099032080049490545678905841807921802460893840344526849768030663766246615764099614198384204032282318652927603933310039332978614536201595980886000539837564161882668367030803294423640457453218222354892112411311489404264634278144903284728746054253578995237248393129258305779849449264328304441070062183268516587527541477460904261675193617612276534038239790153417089474296030165566703122833954832277964172185121059114374934561044641447152659499643783778985339178849462203356619327064687252661015368188269870510595420283829094828579396910302600403838951023401600603035562771932115023083832387846405407217587929814221607664619490044556211321535222840684764897051733396175491520284495636618637159008058423235940417606573882900903741724356580403976711824787010605695549092534298471655229977135632801143504869101135758167310056783701191216372245760240733304744109902222993729004445361432378621737851928858853879723933897594149245735813137424152101581653381393035710566071740220187058096004437665196967587941259793488256955047556908783783269609078341738479259014530327482718735184838225421726299605850923081598491943796292715348523306747758680669858658990018336602459257066720381151968309372231747668144627507298343219412679320658449386423182684355332332290806022369584503071018532497472898973428014122506036265732685375827056107351698819760316268698342693342813847078068914992544600152220352761039917659690955776589499269240209131047418039363099927960370104275651069734848404721692643215143896190678052993085137132575651236873469733906599232515229424299767815754043227200112043507217558007791813140105069638236288675648582293648908639971718255944553515788817902182652155479801361921355325774542460238317043803690323243182373701972622593577163915969241196472057148040024014665629912310650677998584673238441492599813271173917668316384811589229862145991829549093974185189405678620081535472281353595859847357153842124243479247557445305481464453062964236156226918987402402319513978240335852084208974621759112793752578882794036531043312817091510370844390157668518639606575713537732188117110477069849028411947909896621765415119521503452298537290333377080531739998318933527935237848844983156611258966550198824860983900528502117531315046472024032233494228268163862842970655793956308778548256770366096629873430792880354104199335525453021632989883629998879895392415641939304757995307709151562615007131785998322908083990129387767046438355524311464252841773756342209691843767354551353218313701083947963846218962438338736809792379211304614107268024280485344791866331705380034833907126050716645376053472556278683081174338273013764196306776958588635016001082157326822402997084609080957815298404272900761788353815061328694744853005121111890310109954589935511979984297405924848732044554797372820349342175175905170938649173350753008165492284089947144996216604008435472320009405778282074068739834671187933480192423975375678363653879439016736258752264086755666145952444699368743527291825134724414364500600197455253888317874269030572983335282693573616082494981722902754399204940565358125492047325633693341540097308188841052248765111909464396100359248178757091839675328324957192369805010643934724991187205441613570361690126715539464462029099814150583639063092032293331224906589165623572717452071539413072503189261039055801341664475722661705050190367060369694692957874546529888643518014044061344366547240924644452220873420847656000658331888228680041088405607567058163755272329432147216179904188279815780693511530689648334846916123442835822952102674634019799227910540693985703877823263934981889951365237265473462945819831735678896282206014088348031555958474822559575143503154769442461659742888189912387714277278841874800481324475381787594806237318625428153233060461832161571186675502675567114310672945360360621296567190271615320012198762606589999869383832303954703481480418322038999323521204456673779191069273104819345433132216926868757446466840031145430444494769082900202145894394361443469311621447173126474771830094485084843765205912578034533940505539674218911258652491460629946853173193750854507031669517516208006543810520793020068523701142045431502579798167556579401622413529418790382987429281605558313271717770121868081452532603038922191673537306391043102352533599833182976769711559837286195989358565647238360631825575594041192826673639608099509268206819440758961917046329072302098718965893601609121779788055504394086318680320037124473080925027641309169093010660576346545276245995252936260322148184020160828564211998507867043468507783878111238592417286179236660097558402837934527519403166004643040671011097498198781367941151012843513925512912728418109526390205196321883074698451666092434784980158327583213946637636588272906539944993590922822205898185357117573371453776488332753155450237863001381700423935612910427003471677132581416938685504380353161855178710188017479272107465897705493008364989402220681494937571088510801308493814485413432550359231563804955692085008037168612752048986551795490316421691903382119286193351609352391736976881818319742701767060257992343248969051222723931571993107114703054072711577034684402485310125096461279478464722698252232195691695365280136575412746198565511150076218301075521088495414902566473523114336247151058022036755924487866132407624771089841853778644357042957573996321712241108120059722426371225548946615576744889291731768679268743708942492275606019880855938474792656399632191642111052142586963008591367306983798293899826683135444470323926862180754733740886715153772402302056436787267615570910833659751279786980204815991881174082318422954121787166661397450548684101525514127500895191402810224297906360895876890937655257239919553936825510335920326455190623209802183131372767425801191220108341943485201745910375169080379734760516191093009811270984537573882178318095388469179699348520848202387950764938679157286530143446017331189391708574783668344517771786893887744571590987038336122887874470713415998437410999903179796307276957088635108567245326277829813084999393345201053978179038768209072267267699472384141500487049383947705977852210479616891639149550585181393678133611172404164399350012452843898579646840213274072302215757473019377679324154761914539820387851995266383430483985957124716745411726633655451671123129588867247624201915422678520119123762998042184379506811468761350257059801321525575635713645595095367927748112591911972271836785645156555903901049864943032272719635062985378805185845465292425059139617671048928327003201444452843537586894583528473216043673250130913733728636833612872827792990540755333399058001306169062413028970922300165209363793368400431246888826783183861366117519843177823632701842597334689131447758269669064215699350067480752504543048130501885584667717274500779013531331392896510243129863939788001846915797040623166735451965302235005367370005114988767345726654259261208619237995829048946608970825149988284940015001384410918477585353894395416766698727326525906572337583489356239127309085096940052559567705336812460374242608337590917493741757596401345179313136632447509365855022467827249147445772170529681628029191972545098278031690883227287717969325157095459847661140772745625325037806840452688971094891021173196898942199166683774989157035596322519483434272405592611831778863066228540716972239745874387949881215073265568812612851845175439238303900301662598603006670775158817468244738647032294822627521035469272515391348268617083875243694290306185099758484082164900219976770293311934359972920110479064997218680672619539883638192285531436320117475011038282740591252173730023506872014712110891687055755624328922758276183543499435951992017555721754483834530001995913844261903853518667059561859110488476767157078864457920635671156772661062780258460697541303480590855027528372658228038272029825496391497229663773474547989126288073035169113459461118854121432459030199371093443393824793610663111932076393768252234109063583937783716659623858590462607965114896262385024793135374167732680458154613582052842451087567567370962311902080476222541105213157396689500166782099140393464048567352559530759457912927825854657695522189646020781889968092285564221483917050088639892769860245986684996934289393756937771477937906697019318611291327996140618233019743149351746267594087812935073576292003734804851829465078891008044938589562913569561105717951656313574983565373651238993856551210620828366752107779990173381721878059978229171855907650520051668193754831835658722337832624007761805240768359676705438633267007286562203541983574655045695753652173687818684532567731619379233544886306519498176562122634343660599836118354510824238689462489417597646520409396571719525744732380413781069536540786589227292903115202590443071400499423701668845144432349735014351137439429045823067093317352906144364948203421581519498355075083806709436798693850613197867013724600693988288187736324679282450483119002082694202491427790637337639131479811001474448738584675390538503349619780280774954059157827635342279970404271001191946226163631504099820254246701753216843413396489429833049664986334454053751300709212885057496717693658599084800755962229850927962719413431015048975046060701958798325788733151285805656128922692626889516915409752909745099582992854437062531609474507698873058800700375762534396794253673689434803176946086935274792805173241981872339267786746102939800824602614334167476124188914510131780460248589627427952273121456043926021849677232173655428645547224077907686987386378565169571652564713080603115331156687465619390310005802406273858867370832540757098943843763693914407263900417526891761310173308974292401509978241003593929843521751113119788678010737102238648358900026523448949913432630485007286894869408700121315772302436377283264548655683472500018766493369668662544119671371764137184209619606998512922367837940325126885055727382205877167720560220281181626061901583426651487474116998299963202528138112367673993313567103179074723322841791247799074135019813125183739441912142923050417227081108884252396734913242282718812870129904925372481539434074875360903124545285359877120982776279617838821915958290485168907771392225472064115682720505624068411471482248508311044420598012288281206315474661523123673728108273702539667112960255161352402701062644603835604914723670433023338449814919255992837366033904221266339419634223965276875394015952465462635475168229027623920830703159743795106132383644045420711498224692500990747991449500751157729057420602127645836429470658487898023826551718260042622082380919078217179052396421753706320930771053183887591070687221034504576295594686176149394441316763411253397895169523958782985697596696564370910521382354681416886220431395644604015979081089744728638708228151313417873546567858002617356724056707315823368532654841757508691179610007815721642265654203806180181726212551002797582884180779380451349327396729385425366848820231282390349771266127262584934235206522832040173271138941945198443311387033101541475180890982928005794034086574586189861264827638583017901330861220940813147916333790271670000648561145872498559984489158541384519964606917403468319797551900333599587252562533472707169556153160484100416842966839420826980219918132382548256216632033668073464276265147542102643099781248787875790230150990595603493004872618728995716375123632929348418795529196965905890474117564066073797893433381293272756333540131627206710162705143025962440656001915422477003002329335708722545489484382753568313522372206043375453336563074047246747140791379928935995367527772759342694127253401985421182485272799156140003940878072988015030551261474971703058637062028113191509408723171373652034157049919488818849916534254508356878590128882735437334678062861582767369039407452271786958297930251585180877229704063836514584959617751409342548669509614902698611621325736023759788662827449162766720841447661097211288220735356901471922915916986636368437893363032419863648481927956974556287686376205615138695840619165617451702984119922288712768369892098002949228220793611087253358030138703717685901658507310129257139622952980211079696837933232748761187501954609670222748832659888484869571105392000735087318776071822566752808752476332796385171915269619264788765746366312172680817130953568280334312008438416344463777701619880236669566556472168079592201035941751483630419776588070697345047223260561292269629330150420421411199857058895142333592174059354362760109819830440967448085903496937179186115433131497796867542162479821751424951155310087052033059684708517223829692801470756489772620844149546268602466790737209765769060199471571149683823508120423474021549716478194291765816402359355455143860136649299448790627652698534217189655933619007026453763395845956237251478280479805820615719586813451043255832603628977233803399616451760351603385276931378925162408171807178663274829392907636783876481067238770042845903275475103589447460551837624215174379542856691594646472008140633877231603450664330477352036514764028322428358927220024812335473534761538533432678467732718184551690970780294382548525937470822428954263911185569831126668444602040385338484385945197269293297384473616456500485163059593394310289583472060046571954411713288068729640863942712288494082592743910941144173162315865496148767751032333767736634768197163847423150808592862587866543191508309119332767442258949356857389067641570841588617655246128806422887075377394389172930911339188422636290891293103159475791825284270991417487141811245314077799283173291167944075046580290549609030090951956981227573514460414642781009617047324316323687979631509634391887080744868820695381543139440049953116089755843666518786598145975111087019794002336588573137170243093882614870209276085712459814826241180979868627772509899883093184400384744021414044022313924747256574526885752982926783160343988160222410754829865759362388095173093113449096861196634108320323059165967164118841182854510079095494187000926253095041390201720241408395668488639230947745543065123470079146968523026757813680579077342013751837803667142103927318135331427147861114225248380390603306157634004255550404212228820835117681497792450879236243827532238524205858813932673994843223487178031213520371066839237997837369722707249472515619351686790413633816566920155131645357842715417924162451292489889871683484679046628436439752494388528764474429367550330574736217154602035470554528594167344949201218163990508655658359743367683151081171334889574748344861606699390136128289352294768243190807551489636075709857747044248597203703866903942924497318602231259944813595762211624830448939887501485454128470436073411591161587541763439819696775800971035129929682457960091914506861032001385295557211195502122771314634714867854636443559168937207745311887492780981636723533775999379480862708802382387695197062883860792462786474417840749229267251741570682409778361075857005247800356299998238776750379801148694011309563944365251517697188818033635844665185391278057314142496805875349906205404635510772016488153519129220369531811194027910992510488637204074798297341725397871170717183908062833574844519796704931638151088000974537790387994854079425564989628823644216229463077920122323485632645405573814546125699108425055050968063056784208355323966895198247937636106112465703552876872719259208084381041289336502714419013796024935075826894384093614714643697124491621305143541766362473188736352063457854828076783443499498443098122356668798686163266138387695960570939136091383287025153092160290396598874168817750207959927126981123043660219982238335137483001984103320389299101367945356544102911840996033046177391949461505627270160037767033768786801520649594880741613844094468100518012661502905518761522846338779525438560310102922435493524113480325424157834465336302672501532229925065410252507885275841739865131310963498544751918220390168766749299534156958221150919326557847330010289824086421775307315642598790048465015534240770207463650051425356664495303531137202990261338907830960677465013073448638026712597444566740748817602546439175466920230716140128144893616898273846045766534672167750126646316550751996352982222846873365744230808733280655840907563283824220126099862499393553206048257405897027665704763478952565772430584574020440251171929678249059548357554637040153686187151532754512451257316082124309674510934835543250741952699631239531578094411558479924272371370007807110147310542481505145845461496780421152191461521207960172949893432430351279762684011012392465798128070680556755234569215800471965529806359813914643731021067968347704351761027359729876465935274916287080958113646536528812949056081156509052092096440883152282336419661673483762782837850744696357062853966518583540521920592108111701707837293063677816073909992038379245539369449519577556503970930136894394360243045557162979511148265048148514613545171934962322856543543130796971665436165466186581134290720470201326362994365834397968829869585868829508257571456545254086686940600187430498752101950665951424089355104397537056578621202513899709944667348345895892320114955519734803794219979707171102467451504299971403679951009827762811615253657231209181451705019312145815395749514400840451884761235319173237089012859137412807709890409628306467253661053161884331735601878053396162434672711088617648770468514677802448654658888302280307812608907430932115494478803073405334252899289260329591246075390063713046665512763933379285090348093461446603327897075752341676146504881389993903474842219040827423401407711397476752991781838490948285030084194769006127229721173063410630745709985591128538020361180637712648219901692892975881054309976668854611818107839429626348229764076853733998255074788055444980269039938433811397307810677929105840983565784233546783406427884044193404286804123438916139045011159152907258978927709148129479159112978319174871280642135643676040887779492750087691923594015105177260615721575339326835839997154206689088838749975149293570454938999147523829688122288174482100272242108885443781173672735700885615081479832479721972711632996642949922863741553173841822182659560453099079366545576755528162901515704947621049542532294492365484818409816769315124895506012879672432887383483023384382624092409481042555439494173977969822095718081762235973634850376492160128705805082474324522921895626275289723812573431093176308881072207115328679411651909719268341524923552846822141489160543162373879660818612374230735774212185427017460985960953703372618607374359742844828863508115434777708378579754428714680818925245347342238338637504893222237068313557136917453049192089772065890414892835255809202869115843744197935172366367079450851730644395869479101054028622545920057607141248282575464702101909039610940975898433047084819441464636288648518752357939088235908320923874804858471224757592257715435231907856258560567875600987805077225076952308123014640865783203139138449868817092622278013125153241993763211845551712951241743922272891401788760948824879325969478578212913566482210077778117500087435561482998190556411663584873942842284070194209555450853174393898492780528186716637010496767353882588818295556286015153922079353979316345507515162856770512917050426700284054833887669469480424740203462466956667857636578717729527069556303778413694857039617209309341553924468526103362731015243660801228073245079164486905126428422064268534856183922782940920230409101132831176225685524037664489220047617794527004400919275104208238824400406885895358860753073851833367551092739012900368259967357195276043654014347595163142903853249085407738060898963749746287908641531512027456485803875382685155525286649075999136476942986586064365407810838390282859193322844772794353172082791652118887988617530321087011493959203962186717361370608259639990049725990266210021961467131788104374460317537582167039135305803083942057704981996525308814905937793506801386247226775970801941178328845505669272046191108935651749633509696046083084213145311352360028002789111142193967100435405764181737119187397268041077451120596194277969820291652188988660195226393885817769723031079009439479126872685271022451968941386072827488072664562316979017331260287861590162155865482515814971940605002441718551145894577514645219995511610558393982101572546753097267515288325755446084162638391921071087323491762281668133819928915956315388256585784616383129945132264925198028137482941452182800135637288359800142794060813001919994542708043414822997285204610090122433152469192000753680603244184259828218643251307882487136973323895504200812231121053471692003446638997063095360898674782225121630515683377853810096279915391868647656468573880019779656301508547941573132154938713725810051392357128170033996567313322258784253268300445473709221621580466863280024379541518516707388362422732892086011648942310168175993193613783831441265754066342593083580694084820365424736678651457947297178372837996930590189289177865448521706692480684021478006809202765475448071359130377894371214759338049100814805547402541139089094001333290967164533596232570711576692218854929366364585279725322969043541616626011968300534818393144303360043411703276262200294293219140650404246162131209785317147683130610718784986308936215325632364346683096330241890971129832528293299515583818910713476098459878863099286494114050440755827182991918669050800023722007975827147497417882304957833077799846117247878939816833562348995244924866416996912807800661065507411512189294041156933122315750262404604556064132205136858771526246963032750633047608552548610358459283324060388281001192072138557859378013662821597385267345128884311024630231760825852704975282203294654607639394086969737272183262013660085658469612672032826746388047454957037183265639799837913687005582909573750731794554497602292792064918172488598216587392125515200976235521326780592543648051252674335226984874713505909843997148386149975217071594718283238125422745419729234950557666196881553007029632276028989217043635434715332231482143233402320750353084969548392991403262691396179494115939131820221772407203895829994670622274958517198176793480447656508223066684006982648469340012021036912617190539045892724073856837928285079389015341476804952649194249893227334181069039731969289400394218107290090157259985939689713407630600281714832497986406885669106963786122102721356194028950139384346651450892346358731755710206271263098235551313795926839346734264618059637753528190741635068949815504094409849887579600305679002259713937715604227133262347636837241907150648277562447294773613179959359056673454663674985942393565982884143045044424465044306700504706276367781478248074071945905754201013766360498185277166262470348440584752856844701762185487577547258356241844201870276220333853947610441578816985768065139891197539658858548261344728541866981066470438222419318249734236084562789928691059455687895341296724341613578898899906072905702342257813134319074174706800985921341623648513537652319291520280731591860877283845765064113524229105025937832890586309144763697597056445828393812186192974238406628274205806657129095272527113880242073862959040918356680912816826713244538419728632805154206387607493123193815637744355627228177280793122329164105374427265673375089539247599884161992551584530647720993587080912719287319076503269465467812820090582129165646004798246573202990160215598169556342347462094816862153320616616519978726070195885409936239274036810226228165571335013142112490348556383088175611972740108827599015195114844407800265681301537385065331309261598842715627231488632452779970836215117342895174844389983229765712614876929272793235879755362731101858432335710146407406133681265040065233426036958876132339546873993459955853669991798744007597062133249974596161036855057063747824168535288543914118610921965449782681884866231702915624338048803247795387078146099547066506061788518369833331749885547493819176411399943347125154715533516385349306549033572761000713127003698733938770015022984627813074969279921391940632357499948560450417762926115169647498165443747036632337599182716751890100198965759110646018790697361766076607583961037146049250969503807358907341399290360290387890775531151534681553341180694968807503728795163610312924782621760931148851943515253626922018880460511258661491211851333345360668758871599342425815114007382101895324606630927362414757129900254196737142471716592766703927860492438441889496013205605606291792650742262271374978419447281603777794789241343250731274547219740008282727976043140536006347730547446646637372662091836083153934532993008818521338223532933966173215317899716017132985749426197061756776751952622723200719650883990743043588132031780522508829558448611750752576503937092477175403660181147120407338085912342963212313873269329060203144423970333240833661908571054536106406249285944898700672069098968682070068656197197804552703615756750468870430464904559572928801280528877069372779214178134570686287926188804955576443680324937060218681293045155307767114675278803512492317654623813633621779790749453051992673725404143058512058502776323356795675065965774255280995735700115736033549485407539814315590710510146829755140522390932723981961893427081252594394311390049696475091088319864885397622069575308984803455164259236956804703258095576196012620369459007126472738207871897668034410583524070165163435415131949671880130815334737577267708529527478637282959194700114858303515636095733302203793392309036457544343059836883060833613579633606837759196806743546821691214667747480915501414144477914557308173991021913491994117614482586434112812337697592249915224867996281116330232980760694525779977541449338503339800462569487971223810394210696074624617210239079868559566049293489367979159078582425023450062940253591252930974273115279488081275424764366439024699814866481402234962614645399099577233621290833950481385115756512310221792746192287412510466306419374220145711694793911810082766884448573662574468513264860660412916109643347201178605117747784365007687691678012238239176223951390994771489375945297839618259147707455983268495539746696311939889654138728915719369801188590944477032651590847312869044471458079478842473945485986297353837363515047562157554282301110073566251495171283073374830560282607025826268601960788865698112229959098849234977727059506526803595003458158259666667017423931990778982373025385627120670614137050947514764482849968905556133205379085199973827615860145778421176722108562466482919698471983838078945237246713971174093445852824102996561410039232906564176998784730476218030678165831740178060104209280124625122646846694831138674626345481335230096436065569592711445333847112429607396340324365720582087666161878595645063387821824983515465557098732954487622856341656405325252701702803174941980301962314663076166148750783670102656279523700095432510845016983529207882465775932855281632584476915931567738771868172401561859235531698516632219201576290202931770157272612570750609381737267246576322176601789912032032163209002292264964930561850873566712796168921641661273270214716865635166534842504419782755628734718216681497955726456453228609517406620228007643218917022250461935182557306700336897408624563609804522200446334423174478283579971395148853084084331334969829857661405682606064980660652167853714925568467989625432320875470197472417266799288319600403578576562092105754143201847117157465060962697747591833457240800395062549837226165196697951787647292765619422421896572920894034461630637774713902891327084824532220216637248575471887614995242755798782506206608520467345569333041976726872401772560687473457736713960553701924545359391225403723294885401937120518597949896257866341280696385844254231208890808838586039351475119063218708132063163265361403318348872481620894717598616513657951844053889231809957358520182141966163248184609198739797959751557125598341643229207349133074871262103452711967278291820346615467551126414626208140780811709753945141320871617025792847255615184760118996955658640519056107450813872482243231203221113433516452797516083001397004697656576929164511960277948152790421784017271145882217050548418398454861842019594317735141572238227679813440058360412353450209682299782351217163501058143485921651705172599875468419246861547800664906747653033477942225899728868180460469280705106692446196915651770671105153427933680509566126732728345006752073719445780460698742665229913624025768582135202766777392748749836476554596169676216854210026751603515852033239116541370152023527917949806795990943393515900262237285890540447478592935464596088593829250989241530402812836240587547985089558789574108599436204925056690659757571149648767892805377006636677075306983226845224185576584077617766792727676477662078642321762061988564050738411361188684532764409504245344056440993497600641350673733279736958343333892218614885822721251884126119769521133966310832024011806664826593621494133732994910518041760943784272753375712349236941637647088808001484233157690524661214690423484328767900441942601096657001110263278079838047262474664968223982580813577803503782907674929474043819095340217272076668843168258434550478792964178177633406938407136360665028300429715338759736365055353554844737939870265789579536891822084759223639856019184532322015769099583296076778610602631078917095172560044674821569323472170459311106823010738431432665109969313719282493572986395906605233007204750988778723470562245079457975807504588478484904914201117420136061584510603924634885050051995200286181910316039351205288136528299925372251423156790705853341799350151328147336111492372134616172403553228368734733632607932435970704747927152014684752635207670055600763237946490993506607913485850181066176138103900716671550852810844443032978472888159720763791647194488392882981579265077032848355398513230266398742953596275868972527607994835560196736034421153674739910433235557134343641332510852442617742557099019387709891994984863483967763244270581465197889296873164305343538220316839645652949706777604645818621818429687609047092471782531382310409551837698033610662095394802562551690965426306000538351210673828944640595413160471995668096048515873122340136519285681075485758262539370682511323895215145755008438673994939607342432842308054368132462017235496780371004197023216730884269208483048224399141421070990818231111314790306324728311425542333093654376582628189987645571812598320461003520368551065689961906980642618956026714895678620421566193962251972078128655282504568429371420336392167913113563767671028556072536749872004285551009989400463616071473355751818434659369079613305886168839980437854631228536424163593259385828314689825061345510636258375839737513375357942891683945672829636011586777986593319586208176665106156327380839597153561681274257088266041414091544065380807006216657421768598297099501336801153357803896478548792787636203077918449069107319870999937877470773013005530228558923438897481101653403367416961149694382534282170491608873863920627706119125881614828982196003686808553961642529414077297226323714296613399282940854770997674835667936461216032419352208149735952735247495009123495104443614374355208769883716418195778298005184498421036299092764922302153107251231960982692099182951005862311816661886503978670425461348153240793491402531796156657608503250799262909860233218206630162414472243957634378188723254123240790142706730720462846219525135306480108855356847441459939041094566688894668341585156325952166254636246044062262120172254593276012946383044883057494239111434206282941719367887711395335847530793878455424478657336711794988911794406241454348321112596564384978620632394031124145374949300763256600640420680606277413507374148429072586458749393489395662536481347876736512642637188099501034365462045401028998914256005526527552691375812706417067092002209711327316232120111977010987486673880945467512125812018430217070724225109214582471493115486838974481811506540684851969909446268231266044850882121942381095278080506740963325839519677553747298442649949430983558439374958935337599992915435171438471177677934731501547256991944249396928199411467589184757086104241506358983367641183435093731739418827544782641152140910033109141006086231223159063735187973799361712068236082085212553400075309543006724975588462528553922961354253216170843808128517547994403115775798518705817635968292803667756683415248235618432765004356107076604659024509894368140090200054893846353042479322917193670388838943269302605360118761133366813296347382579153865281621808816126212294185722712296437074771173752635255484442579132018297393339267572020881050997697699201382115955692668304964260800406731198701477961856276761396524896625669065149250243578527664466479578364729455124053461755896692295582300770300480471583307213391650007671576502274882042373420124548582516922507089033352780370958594876367506451181236063603018222360494667174402816159561339113324853368817676642709565715971652434668478892889216374354994671318018594933972812771375311299554438584599187795183754577733406015274178300941174864819785055136082804318427044477634365930413410150462839307871653148432054795892846760787860125886898327079701363361741099872435721848309813558365876370403801496169261569497743978697258934830106218532365687522810466086855594767315226413230588483382362032562622873315672991121218032913729135983378402817955037855521631506264432941975520508627213287259602522180101115858360534938566199062021215376682987801502474400722405949996017872824448244980371073930813964949350537042482349623781921059614502985017666351015782029572146023138830658947214153954976851752818879948420829632997188624045257547568910532772415150138092575504131353038868449897386178131247940025079387085182403461837103057320271886089711487128726835187301636459207412775866602181274873174852775592262386082494260646242608026800889691895749854132645403528079245238239078167415269445388562352072895290940332488230935721957759994448303643458026446137991560729384432991307184583978617866804237264335512549882152330023464727396202323006320911287566216906771046467254813099648411755511386276371237376661953120650230648296070084984215257685027621804150416208573204239897333374717720617736543309397150879772698531398741567702550572682899621245673206036961842203440616361641399654901464503069615020978777851095076501237121288671912986844394936351604538965459492751746286888825561012609653349464468985179492315415595104956324517862151958950666890054582752268100501012400789306282733128328777074676926014120393993107247411959249855061356523105168187642735105271983692396182446755736480304594891158508986721206013700988134031072470241481401330212450861192073022918745728106930930041127620275789047607972107462868134026495343891181787102118655962888916939867578468061239213861633664812987451812378055500726502567226034233429267047796499522621893754481546688533284878763042661302393545380802218649375352027583455530483779481030004768675787073911876179990228715607142479470940316344034682789156570400969527010065805223438383928135236726684344168674520732588164207468141701015316039530892319910177001952229808870742485939273152577582313516767771727555321893409068843686256166012391878623560133736733718953123073632258721188151283008649342623249184760853439487187117287417090653680683219023788101952970627738980208055708974911513142107019048559528783650776097141113246990809590705407447672450304706149895644818719793637195319273042416957959104127045704425840961997703536351220870272256786700589337225372669600619202468951155002447896198299032949524716858350274355586819465559274172167171515838236962978261563607185430155887616940157640949842719448533247324695378534911605447339448329526395603007384448457053789849085049345512610140172421560153994101779985464814911696672611533980393267514400153831358973464298629073150569353140055304187707110784906170065718158199419884513121169566495007736149087103203655624832906116691093052344213847923815289450844930333652369034681543274879800565108217015413478785352026699762376812276448581661563878042203642176958902659242109921700669820166963040849068510904555873671015488739172452351063108711077798484473042788729163423385941340540058925775956282389586486930659862713622988537104713774742604325801859624010890247533055164564633739324085749528418367281709212026269046617146452394257948955678392274462163679566594606252753164339702412352514312540944388633273497243414982468959434181406350030737286027414335987953824170213103698390973646849992082201233969584571825681053840515293391841035630001465240063209362716216972776701852990507856667647266156958041233101722051842814866279543723502908993857447305702869733953952503433482893751054570980696249990039484556970748436114105535496930209225487656166820781889969709429658407461948351281933330192396582457995378110048875848251516791756219483047667744242148466938139144807966608927719434292883317749650330964869399187337819651797858674888186727484816817678030198909981674829307151918281476101884360315705222924030656225328052782841186674601220312778934755406278150727299990509934033524948268860204341928845957240962960152580603587488112122948000784777512243696244574984659495614501992651319805493225076169561127829132987754354576717603123582373569151329975843068224456282658041736007338298825174473389525590757698023417750562140132384144439870088376984748601716593229358650292536496656138455241329660655896530964301529075381857858729387815759428670731608080360464830029624509562405373052569650943391443362054548506576243264047339088811758325438859564735726610109694479806374737584436407742174861126837062950405940224416514349504266811246681965175301861749475216968991123511841530694536957097383671394984612068668007043481869132125756512906669594717947376231877341822005613319877848174238956549413167717229937477582563410515925843218812898856306193816849903990328805873309916990257681263643034851869062724280363306295538460605660967825965130584949828441179323346215611196080062833237870601472609143189435163140932515436766254848720163230759260034137549439009968422604687094481712209796966202870884388201659824201583041894436838427442540174975732235273650933347293840675939011829524061195660482161958799399899284674652566312887057126474439376806464530479344299746635334399687737494580464775874136050721180396322597846068753963297913053255389201412500186191180342022050190065532283405883050279944899608029957472280745608004284679505986059006119411622082686830308188098609343575028693246056111219581846750742721609070440618960417528061015954873480170559373823581559729677174602136614027475083986338466876585645491252085430125581786042546654936740326316017841816372809013170393494602199780046596207862608780803747658761739632100135990481657539584981602626192223590730123965539727613905877145184339090570412816547006748629564277795526033882841239008922903918603575051497107155488194543059003906955142051434851581106888387919929420166469419198169929769050743409506157602656531548915935053298639961548984475883705399034964856694080053743694679663323784024748324752633030452662245722400340122499662031240871480846171116373609267957751084921166697061510386623606083275066595809251126052174777637564054575951279308709486454167438960458928002062472378316521812028616598536512790582676573594626852488060277712720168385764313727113050814557202083827979777408861451236398437873513160991860507336566446213999877975053633423227255106753597645675280423418500726695537490653565214596801601646737219438954503205369342142516758595523127089619341939161394775536556892759430138070700903237122995721244111692329799126098498703409688402917444185535837253730101174765278390681730197256814695936688138386242740626107048923901075194468592855236974709140449179641277349117144979055502863422667494944811190282160717188788055227811748615703994694821815873233330716861858477623479959653422391595446272868662316820467298593537084950352933848008063614320037662635662135303618248857630638501779230848228351028876421616842775085583650848621109565309050239021526032745578508834475571012694972721876195867531540406732950568288583234764754348263847681883898603157471335947109580979940668415842142807721443276857340214190384965500690343990017266339194934555514452672758338790926807335163411934046458680948423766513761597205791693697661845840403493305931204152540056004691937649015813723454558804629752142466291581572153865296653308401043224020516265907311604052380495589046962063874966098008564434088727709350585473569411081663723846079740679541634919338371201808165261791324720372982488632468866814952956916487998776970939118493820206723900723935660690715850553510151547358863582835573459093900928588459668980796838997074372524917689329788356081064247351459097725842932899054398816734267592073919554694258038140258484476681466429031676851154208604811684654421810662880059190382399178760262196717862560741378565488115045257980549518787246487435967511600721805308973769497053084765574920833656630670059684730901561490926830846886074326993130095149352256679631690872101191667589068488288377609308199083658791722206849655001068886761190306108017583702808020449446102000450823070166294912319164054542739703015718075380376506141916537679323663935743575347137547844888865152154261581747110764398160792570619859667837482862439916641459365126150221051111312872899600536986209313827363154651707866713624099285471556054944852029653364614728114980745998089529095561092083584791955597288537115155296062428698208851185746207292986910347132710005262034516182089301759310345533762822445970657920164925768810761172894223716562113308731619528096617965109310652994851541304099442600032976021113382182589413285938091995682620878872603545165963868483380770738372366022563413572523660044279097532184920312657771413537514153599711841088074459928451172424911904219455838596137986782966184124684962682682952307770919581079715367385673088349142991496020179922135238894867880540986623654235450671045519976199299514012103873780560913764011767936231119537448102585666723781821727136164302943167328917919877607357137879041109723724832365381263406612063017046453075731898366945214033969629267325448826031872971614922252557564431805805071780740405135578912442986899327315531804938014349692549701185365127808593204533621053563748848086891158036104221768817345071472815317580842851266752943117616116402934350584552250044924917007545591827252866144585663260969336620790080984169716611719856578892084775993207364876857155012685938929683620089066303297899199749686552012610896635796590720972349562644997895611989490699449356195755328725571486071610325149421220803127052411248328764602163154622665598396657054647425936486995428299738152152520930500637586084988777773202477505967393526009993977792391974092489940310862022916356890383658150827467741962145455873458690639975805875524604798846504425486955079986867318118109937363815756217161093054134286971919161768601432916135634370140978524112016063553230656436778217501997022754328270916569980493790869409210821629023886654666264116975747804105365137973222819787746451245734527690473240189250615210034850428615398476501518961295305677798310285564727315212271420864319031243270856562868286679745787049432005862742644110156842589504359029405591975753172596091090973341589042014336584617525819427465859152004938657915587361022120412300349873448496047862915384470249773584490949508644192635548645370944394174612776259831641045195969323947651095101143760929562356580405141802481111499031122627689130781051951593641929825569847206158244664140174991565833455350628157019087604902798007699317102008046729644779871548210221624121600881757465526544466657918712560687942331283220289092891368196322775676508892687377631731374354807846138233327333763575434427006353198690928678251413753775867264169866659335908499071945718025546149410636799962943463199782594915214800644682064213619246809647678425928690276348409352864818462361326642696111974065581484539134254105352844206855087112185735885452816623257555472828232811570083326192223449435123672446247410810985612571618027241580291556898777353255280881424420252884295903033632546901234286390980138533176187742810764222189681126523007574562701082333598937928326225861693756840462004229694668557160837633090450645201491608518169833583680910675152312975731589131481747617878564330806134874533319627453675172129425552961594920434278387956057958417751522240680823302103750571461439208291109538602117980582282082563282095563400155138502678365779934878100021865981907800797005837503703205537574823436298337795567211300390294119613876029627587235896083847594276826282134996232484465890052377573160719447777125232258458251511078641059249342230913009238177575455016856968953497541656840221760393911653209401618361101990701001849090886730479399403379516562003938010477323458658023584670906573090122009472356883307208027987444213276739329169956209604123915378356768880872244634187595636734066841933961453295907115718734158514778189489255400956565652268415256753954312613522060057738876141697581951180454182867100725044739686222244375814796924991036530061410852219267305315887790319355387209315393296735004258111726281521687046639812741652014830543155190857358440598833229437195594488615146826347026066053096760179586200443253392961619540534449273702438294098705381187942517175988366241264098168909675131563288204898901270172434616288035663696385246461487911394964752717624856851205034538670651060080430763452125878107381843843908125242417884364272846075332797021197935490366360060198869504706820393591875958787784688289840452497537426835889938376503388575848524933983035968911026386069919508870623621347935612760095621176767876476805693606044266465001670890555690295377003171066933012062998402041312742062917931920238203961736879043411452856148628303459620926791619789521720456241487885131713354596687333614635366255905138954160957616119295899206563082402417050804763114259077966684900965158355765925777654669834563150658764068176349384596954350185381022408285003635841516271707180356717594024225751515705996366144522874270480738399221563114290149883775100638536167016672830388200140192419578257492962041430149917863288897493668322929933816146775622696822448985608048081358962195910415430936123876257118804701058549177191942350794838447974361485857945334208205675707698473219142123329687283456448477086328688540114947471802129414612103602813724362287283329862195109038562085796818893315537229440219972897436192640602369463297027350885490129848126941689152265220161283392569896473660048824806144584469427494553033973019393705180182605048819744354635953191124242070334046693564278596362572779005301827463562099107058271810555793352337166341888752152605143077702416409565445321706636516216632776326041782498995725965266258887966445657318693015029543019694930847899500350480337143999557471692845935986552368847712530137144681983353604904698828127708287811178573656944920392143924736478807401456332621313471513575794319179787283346029529066072148674429255675264151896843773004911853440525902831272161435914583419885525004780842887487399440090654225537707526328967246303955570669370081436797989486197354511517319736587210760405358333639737049668580703715348342755089527088419386865630166901125046282811247223295065653350532791320361746257428619887074602060567209315034478551400493992088218135489262363903532956382485471853553794777024738756042984929761892039149944406910938406493111579342386373029620058930768180725782542999050684169060223590952868631873068817780466967877325081257819990895747451250600279187651144810035082303566955002619221283879205326967712467059693207029071568627372748546782867524522102868043852801266741409386253516258320299139079603587863150213962894055173444753883304752089036685210888140361794357999528414037325725193181287923065686257007106745668626523174902446428293275486027948625446687088519718859024277157052373529649454861320209245494442585874758705570925691203777730674889730617182122411342528325553460727746043232703459225289215085447104308785796475070660003943652385483000031894689052214083131896920705764645827064098835878326162782783431641361731995488523643220167288088221232233272736441627077620455470246233519612880265056692825394346898275381488252629077847867477933682959397548919417573827576768918370643369880939628442100864742762359753308027432617475986143714527011916845819210433353274376010100494134626620487338873500317138017068880005622533408097400151470543828764994861599916776379338520344155523727076556547099047324833760131012835415265708577880917467349677896353912598777708201288922851678621386797344129210850951094739465128130206435683575387965996433967924921364390061610933505799326324259487552919063525511440637182773892625513459771368162191428491768154075724250314383842880292007411591592479103332671675271142038418144916475686555347516777953619776698291099467096197223226455614229771539807404716190673829063603554859957655996542830052223500215670903728285154113943287413878085732972612141846055212120456946411643876984365974801878749199457651127739259845860802408351234799894544397354882185717751775895310796951994985398732373636282569573541976512901105502492468956031029981815758568665920620506413021479715706894322838176080725932296783413660056344311394222381952445097701111318379410480893960577014898106491335828199824987345110875556965633852654956438332129127124529417037215563508087837438294433009115134805309491351017678898113897812462328009995793070165255330595758703242431474224057839556284405842274318381753974119314881479795795850291058508416517478366443080853305445977959420447206722901296349895419979167692166275172380965399980578839272010752103443092537418015818842963442947234913241932734518840130057608269419599628320581670364404424468112030212333504660847182935763555613454149639029844257975016908550449805807020312702635469268314567475192068533200132703483823600312660762310879470969538193505708117675979147841466129065559043008657279879083270185013266079818581932536351215225664484324999899679989825980256885848291606431956509113086228733960713985339311402725834580069735189877536964360346027589166658329596756140813243251400714880703290960874764545457774386770447967001110684140909947515072382212870531377933627819342328514819365272703079720135281420832250111983811165530015138631337539533870192536322704592905179553874375340009907582143834707270235323104024891284751270606992115794456582512170778925651727699808838574104061572128793100484256824032082723425678175774151899103106372246491426625509974518405864340993780937097220857583782856186694032891386292032919471443902604891881260457901178668105363681593569822609636658455926335564414919540353914857848011441768495020015583748769116419977345055473371032398731878457789172544658965460635552411185827844094382820172497678361135228778038009355661868582674324558306720878812150495564506851030722830764304642725629344437811356983462021344955650240107910377636054063005195053920238607819688267217540786649593623823305793980957083950202892438224082189097871245657264288891722772661766704473557560809447796280051061515219964847965265191464664452899541296849960032858284586526891220500576559311141527406246966834238379069189867034524585817430994495313585013159374779041419942482854143166415321976780540297374722423691133976126816148825533606060359714888786530654797191049446259805912494243564018469553743970943448843091538145220405192634519579330605567713788332843754503091900620006467045402627590885481522639687635762796723325809428818570887519267243106071248279308448766014137803188294417407200737972546917081101318975161925722208655641958061612425845135134023067697437526521046191264428581269867391594290047074714740984073281552363332214890480257752380839086210048891621965173618996050855272026720355181482059720234814940085509511527449492734167850479590115939508663957800465729687628989746847779060229715125696844387102939329954267151730563134560129917393423252342129939970662380354454248077799805563796857107399612887252152483410971723254122885185103486907404645781166806091255943914762343206631679821875064539295183422648615991116630492675337466997990808741192545512836255641744584391432699259428493647587648305106994297809039953305960976364603952732883932029585379292996487804577082178656066381986020632107626317945694510545007169924439046620262095812355252026893078936564962175686113993346689742129946735676733389089487129198201243846495711884688569105211986240808084236069968258376593546997085666397287343569504356162607039093926934517272095742081867545445971288578989887795095992564493488906044295129538016011279801011013229640402638467917008728813712229121057971052176301085908173154173050558056355978126376745101547696205701968355897169718507994982701726687420315640504547805625428946277332153296173956481138406232417243638876274591425062292992793125342920021893937910877779165689446409523926230035943633580629406726927249634105759029397064622491755681298094425345766469973367636749875903984174018228428581575886003135029889262020782411117482470313956309922340060024564128418723365192788395832042301458180087136761256706340276470745515971973878284393626972676541860782072026427517612228461727205421706126908587038518337968848001239232411185833263797689364351600044100697810577063937437655304279447422848339039239829802364657997770191564288630705272299959540478135525912694011620126173694641655909688268671117150026049786422420984364211000072207659850216325973730914669475736427942946222156770440952854048006301092781030001381609070332500208888864172277852315033692571537430026592985953612536750243498932864410984655056477233185131455973860135759607458457841057453967089211808179621693464986452142554071062875583236650349801168138287252167063175741796483817270771710763945544953196591562860279011012041128914286479045284645979492973027328473648480846701351189303445464248486354482177733601860177308857417391766991299839552773918877441086224314070196057502099240717392541281656284927293679360096495302950488078363544052856614901903450753025732048431431144910815204238555849365808959462457540399247321142433818336882505784542147339660591333047813274996353223613506506550688082310397180021247019415651670596762426660508373130179011346414983120217891509915729185427353854664424198884599169554730750179858235654974399607167121298614500583071237579379839036800659289138003028460114458152202145514282061740767145281573038651063903778938961814069305866174468748776735146352349590615624714487054496697460832196029281505351178641205476103454778543367750844502327404293008286707811672054065445306322008081461874495492439058646110348535964730842659909600826719399796644854025603748267469800119235287333227576720962657846813351351312520535630968189311772133632573294905138686872722440875670301947978621138529260800532756585184418585524080433732767172508960789891186993027002424977923137826413030590463078198833743914240259144564139364190239268129552812917504531517390974633939520403254975251315485909334059315332793175826540947305633843149868280562227545677532123951384039023749648964938365495652369398872843852633658241829515470390552317771313077587230360477756248176128523013027509380839091719081450452207895495347424408849537464900061726224330131392101349520868315819553244697036299995717069876347518471013699832071944653011815125945784799202170606380831418229104209007014205254217325994673406408934865331440242342958683489194345927384497930779291081552016878525096022805685933707217036951193390354499577345532308968308946711850757780969094537604176262254884090428747676851856213372262053362777666292705123644839262542707178975823177718470178075093429919018876520863690061321537867571236858048360670248299962828985117358346075846514289631676828529031251674765645825843912004397127489011367248257027467459304844427205950144433784875366945224762354671284738058460496246923220780601002382945561991278252092966280581164294082263495622676615087955900396320859020764223391629919618986087434354375642576866274109991923369972294209944143545820580230175530893921835009339237158892197091837969106921718824758993628376987849639665906895223855492867788093065833558307432509535506125923633791704563865282223962110791587814066739457310705457535854110489701477960018804594538978926355707248911893832619879851471223691898007098166531063053533242022567371090059699620187797333536066125637944779608162459439839599047653392331613352590606302648622292655572973005096211735223329689497731626231642471989629425110564430305692801180655540205612450548825004064419359287811396938515590938870267304100964245832523851477517733722363815856273003952811538617136486804595774579119245702746363173026872101154384519889566398934632746583040003309192124214750694724930023356658328935479431445306859815383311058895709264970242071515705683963802651612997849361071038836557337129749226694611652624859058841377450222997634062676438032430775607508357086891922536132829594233817495369631931538804007725331762906637261135669796509469065052262084493083804634123605521871007834113362342118411261502004892057507414246781182579697011394029406162455912617787993873591143209826301496399678399067966768761761097418433018599805127937236259420573466213849922964050786004360664646768334292095286210500762691329264427632825379999293485045639511662204450815840657081927693702751282265931664513672101301117555385201929684525667366969888624283457483135814884546662207645362638878142795175184755259205833077936087938970859309692775074118823379023328711916501902839832560699833551130335054998791373489058646636260144685957238652637332340891362409361697318360559645253604907809301738720732193017064839279486586314155917184979882041445926695445784662712860244241013455170449511600244954652154588092114194658798326100644785835200414323045271451376577331762894357407381298206131009073815241654140487150427246473285886323032343289089723328433708084164459831661059767451843897084510517479989821076814278230913180304159572097070822409587884623972885865824884052568932684720788530373474968037298387294621035535651500528675716919107409636943256801394341047397004695670284293597698086141272368148700691538806281242956168152934558994881887299788837057715895143021447167423502956440633661152175590555796216678827768853091253638336715008572855892821552793846283920507210886969027172562330919763095478181435319136997568580035945533410716566738184199680571321918716163702655525056178796524456338461216175824108902671660101344146864138365266201161333293973464276557730936424753860041314257840717334626167589502084472956683372913917556620833194222965648529589217810456891650205030999321663707612201789513951961532566595171185850590998586210772213951491888449721383099270718044014901785507573413534391059229198362520001640333466827128304001133137836156513616048955299901879954228928040704333700682522800235756539988281039549002180127918231229750870877678032544781727905714875756549801006520894610306565987205940127713117014075939536990946711023400909584358480860816272614523404270662616981966182541356511222017476752129754998470839295983320708241748693821125444840396947299607875418970989075415695361029280079335698958466778903178294829422368593319463331011267183029972346858184649669831708725228534792853620572262812011454143493463990855028627770068513779192637962705773693463645955224690017534622452961132728413764034018942615989153478376098990414950367435950689645986864338530669688298464716024929910467557673905120468003351218097540987166737238255844698586727809225042264423350428101775718291982345853479958526075728343307851726901111662511206633381156903015602086299985260080298825121571478546551442385145896866421529423984451509313403308085010185679508753999664871040062387883328600081596269989217918052755661101452011630403370437491523220410188615211138076697155250461557579501682614859097988087132486705555623592747398716668819982497170457704596041837588738296740922072751407635531470489537928659811658168037292035884814229130977967700235921843461849376795436251664501696253795158700258009950447498704777317856483326831566352101362316768912741993661157425957709184211959802859560537570499177030845334725783758298939899945575958406632930927848064929797741489104272200008350256185493528395451768011170567096060165736753466814713266008143073282133273581368705128664560339425712504831563313460970438328068184495342667044685356373133740886149643718126979017130311344890144128154986483685528568274318443723489093199660293226591718564646556450763337755407958116795817104752624205333443629731225815524882005225954431523845894484850480983968855205115201379653410387127548665451990239273411958836214153275855598854064289735984296488413541241445654890214794780431742582695847129902928301991903988401370395379383593756109618119733505365182779958934444936744341637003662069257046481338920191923552988868077739166510317327845998284604668521083957234623738178067904522338744117757808530708338044269473157204855232192918731571968578907042491025347454553469304335143523921133540332261250634195247828723931624854795540826692021988223697358054423789345223626842433955075057185087711015815499990151610983775527080257744931498851345026657200189954811763620211565246892838763963646373799386779396884813820845453874418275094605086017577561719049692685134818819726452759941507160709644514181529557442996926157143259237398515444811362528031367648798973954842770540607912305124351470752569670440469723588810258599258877543630384127971318495906235219677398336677598881451816191162148313113682337311563939893243519790904755884439173877166053146184186227451772249201427955169060387131415505029662949237578154806638692232708960404015677668850786618381627950809907564241693840512295065175926108839740449233381866019751931814257859063634121355987001738996323688429969571146062798242324814553102042463998529551291373482522387480368210003555558780164803933977808510210650169874491053748708191164587985076746710465440376733196356972712720520065622444816748274017205668792739786159644163757730789265615268389501946591765046000529629581012284218046307914357027994766117725633256690109873378496369826761805090123055738618004559210325711971848088851497172821039357591368335548821958271424658448758810551339603908180177173097449358713342952905327306011361409123680407804419394656906626941185931807191306998844879329288375855686694574410239052834101035297781212953480390306425276830425993970770140736550651591014021962596148972133405949289970587469020654666582513938976689743882330724803079435379904395271821910347286127388873021746694525007993084008122222282821096946137515926982556447514565495731066713633793626077853954439396690656122930053653746264175398111960552572822046439594826663837784694516091714091554033837270743578426853065580703904492932413365910475043994478129536170968406764678855169872177936756948385115546627199257209336755087446484325971816190597148526027906365831344995839134922429688962440870701177066051610683133133425185263525947848696862859918004704072564191665611712860605968151019571809131694969729483157396984459218341968783635713467124015768694419991269126221612457280506511012409236435701795246221903717660148130679718876721980569131231456143899307078955223414314103315401063571216128004120318367292493633599310760188548487204089357172048785218028640522022767877448105071106768564533469030338290977906616674101062761394774117406270907976222099963803429792192639937548914303284106842642440851122324414219357526296962443643502417562280040495267422292174289042253812867368909814911380600899944119876781495229907111296334169903349359079741847274682732592123778968829748821646605923956044885774904587883708035880062484322625779423612818231563048226019852083006520871118433623958725660650864757835920073083189318601511957591132339188548914817003073833789033745675394975046874121148082291863486048997111455926735217861793552432711863201010844750394998104670482944590646764570989889282433012254083801858331538837547535741927281003458689324776622525600363610105760746790005148638756247025736371349555486841280226109040832159549812972442454133153074106011908655273190252428627080721103607610430242360682570941252709256773772643834955710381566012105534938620124864209676407743619697111351449778103222411252220206288652156514584241472994449802830224610989751177796621523928897733543340402577009688456489687401798858511158414675812509480052633439584298994544798184097838255260279444882988479657404096773583233491444765668591022935012630431020734756448357517876832429328806106625590188696344913031830224656987375954618284391187012791908268160053025039826379449938207946624805992608058475918557656602982872043149113109358021441122023295432423404006719893044236974122024188004556570096961731145790034805408617090081861973979538668270059125666536911824916309032864368786653572993681874251637100608056577074908311954292882602195884477615500250933411608488256738335745190562309820719845648042506902509191701162571959158011913784416046385609142104333812745454436477081407902834789319463489905680799143711143176062022665950822138752286651970876341818127783222537398105588972560564274553340353621189507719498786402552359021689317679957444451540272867720333369780306034681084285234194688190187516906848843553744777422884738433346702013047951964163462601192088237427473723655242637260568658016536175555084739465187743984171393083713599852166999138278647434311880727028234308270925808210921363044630819491793684781456509766807490608162736287827120772969906595920067914853211216131718655627028664810081219309483481206537223630226003526041253631881182173643716952852819608293418873651932604351552137045655012845861461753035326005326621995476722601276788353447950761075069340829048131321357062203100300628281566583543347389689152878355989691865388917733742385452482224196540555677429915780411908002262462408379187159683758464330173578293682747706856770071964190256341227810153711550492189462853611304579406793504656981510258668171769408249298573339185569319462510287112123963602504399382885197656518118116247535001415677658906910602871815192018281831849394172659826221841623245299121207520388088480495706327206780743779943811532300453022677667820274808089147956741982126505822894359929843518309278952093850974326527668020673360200473483795043107418292112045746081199454261609414120333622478987959285356440704458683697436804738669344622909143749242534781558541396911030915397080800776433049498526259816311603494929615891089716864365938909392585037112318517380902626626904234370760300420481521265177722242576062526656316226822914400053444709993452312115660895871500881460262232172825403860150383016801708082890963353935411217621935436663262992484806083920688213280216087247760652975993872514740507707611074696981134283311955740325206459762840781915641283213759704244465286649873770106480638058109024266004380768699212348128215390322090268959381945094956826308754257895930614455286809673740849732691623665928760441712476209009413298151241660587899662809724991837898551188796756390745353931408075783805425421822134426193037941229960326973190792353263621531670611166321188810508022298861030340797505185608579061995985725408565453276347006200838447994887384784032451269118691679731883744576325506682691173151202147515417848743697853492946413840661563339945274344967850489539003916463646851732135323802754837801067723684183267565595197656535401566460416969268309413256203344087646850386734278266312622382568151393100559209472948910345671472627709595110013322922527168310175231544096682406256709449218363713014307458765819283535898026123350872612301054451344687737108851046779753015643926820655596048381250603411761094730476017697003120955541655728635054340168280527475471387627161676897397680497643641258061651855021477317319476267063779385355584040928857544355696474184211166539918418032534831058489370865638896632374176342080915780711936164802621399825955099892589580029382825517733195148090214307409922476309845456600232841820143136732466774794824853146044895915574368024014592228158162815650108452952502994816412412617173359513591028240448273271398137218970791146971829637778126962427335986565042331835004390251921149755449823862529648879931161188340444618990096001961662678580382608321307391753690871035141358711041163824900030375837496181584173842204198179161203379862065357313316428170646922800395077922747488708888696935515620207464147290057739302494841913762038438062118311134840574426446718221195996717514313620111445800960802152062547280853710142163504533500308824363826899807161269043985006473742269827329432927380264203861283803721375823844301956490129233577545671438967571202387883152384109866793550424654680434728552320324195901902992346899664146037032913580823821019928599351341017576623725338190753762822932105267927558352924047128690081856979470652020836754571859877386428576735337481076379537122530844586372448713252095473069138980753573500176795396381109855693133649232261071221994586918617820711694398164492332930724788840489701728789389808301755967805425969124739937729094992033078239704253296105586584675201573683354329592329098565142559165532223721788080692822078126591107759857370800248675453460469641329701266419003329651543070851136130829316457160650799644990694646959768776664782797699222805091071817405074467613020422791888953626200041306450809175330915226915921278236361620432221340295409012791234214356960307713491633416884863729974768331992116279011684005946853393794109807243036210036635154344722884741082174441229765311692944963832007560499244814486622274732206718973501344365841107730099908803193203564420538726521472183458784021111375911318662985983065247153648727599167067365388095144699546618300972050384731371492189703753464459782587836329907848544271598491460146901788042646507436754687542284203687583356676313909393789713278414855631602838119856100481305938758312410308856522957361897910403049872897531230152450840058692521189015121950020370632902720166681060593308406271413623713013012109002824570840000047555238207785619948196582111142242663999876495884080568668646670241278714649531067298991104347492149062156779742637184059928365134691035133439119873862369891295083297169325316868150781933781125749286445552153986585655498580655892693915147600498584097456647334242979314202485655014410279939872057576328378152995456633203346682168604312548432265094086212458660430275232062698813782995335367188333154843321630077756538692378306459546651264124201661573675862871359764832550756068275711169940849708279517423659171791686411137125912444299644626563055207411362250279379347935528699192787407469585732149141686826154943806353043202904026658823747494632184582326509200569535659237080118205108283170741617441449429228575667069128975052098128610903332546348570775160079944002371432203960727283272772402584266168614701894773834989387895110363431853856154474391656772930106848653805294675461907599077048339418743800460630360090300142140288271010398680255092884140676659974819900376819554078636354699387617159632458227050364752196732975414453179057896368104926637031453258278557514299918970021442463461339855297191041683942430064747738398234489804646377237113126561896721898575516981358304272257967346573735014326093471769162803605938868243552023146619961451303289836640073031664425567001582682599320879180815595410093470150013123648129360849234120944593794296010035219200658770401013552310437020843973882893545994816624918411384630331570658804855234332807132853407615964730538349345899154652826392378821403195857193683111901578083208532045562364039942018181051051336050510422455557499360660400134377158339516404060401618630576157395692797730555458030731628814379748943734403432071130013500986404656696967563826115871596654098158350824924139494267017283309744214309569725319956286208151767865186776409143307873385757816878031078979763624460289930896367975143386395641218971112920533988940952618801980120697539471168704661157457066313369263516243582979912959709012768948051118785674820485780514826227928507708827852022921504311618858122964718140643696708800616058552355022772651416228338197078013838893360151819629875185185068767430146958280074446425871296542547902982195922628325733357484054674010867766710881323796383196714805746567971677777481700393217572796765865623583405371434628049018893400863438767023772315536086843520868687706084519406738986061767082142274525759406293359839689835854842172732008028103558841626068170571795011992097329517081331766778369426703937231404261405238130413604430970978468743290811882091023422927664664076533405017462220224493971671620901157629171089924872739867049189327591170454854237446460728727913003797562660754225690247600196124881900885571772432409580290435176073329297164480132449080162361476853824516264636028972205765613450240830662578081952535558116692899122288377664826497284917101382553709801991561238818075441342195723807390569189146294320617983012247375192324430232661156095833793687745523502769238640705799404150511982908027462062131440224247880087284596503837457631798046290591242953362577519728074177062103530090882480221213562566652098427926183701846819502273955772940965218516870098109713159282181038928513143686358052324601554487044604120494869641387820817112474219325418880830435663323698365546773120616749630818092051736572460243371864353659645778672578065585940522308554937780996889430172710120889209370618187698020131020559304782267021115264342618268394611906546873826150693857680582614624451767119786402970725562156897811005555315896495648675339887273375018582567183283148219147027470006293869453240382549908121244974377781183347269951887284099727735500326362248831624448873077823257320878324612567436035814728516164294795512267715187059701089557462323630435957702878417331713843561040870487095218046306271873295418743637165845172550868221035106990600838953910201332575803653821385261486662936541773547778149392727848996547278973339200018366444739080589711617903569761340344982987034253307184480674483534023296660197577769749643770972160938458798940089752788455879820995992579921861115732037346948503064468238649186135724634319887082958194400677410056183194637561384656440470540303285183852093459757110515358950292533815974771897885640920732988474742501047834918948647971001101419592107303355159118345461064848163526559418922808209850208960263081414999742900750037058778249726496694407010474259401814777289119071298284744805184352520029771760589862742401658771550120332392329921387215761534339890918822109073472144249730691808162814540008558777746412670780016989414983557488088549131233743614987704667809266838741484662539589862508728588111753225311182318376375202848934914359573247649754402313977223193415572543349367248942390005141959659476923189418377946057659374312328741317877574638024857253563015615928907208827973802073616266049161067716273614149689534407694564321894746593830077789901091521412451762650890511854263894318098037457525973236431296591396706146117892776081328458955270449778098220294810109196665496844304373756445070467186190999710915647003510232802956278714573740954766643088503091385709747573419718814260944913673726422346347105142311407629750528310357552190851559953353677834616240773985182272987110464564065306806439168508677201604033665384654915466718105699380441204422326966057396633155293878413592800240774253784960276609458982623551342118079423282509281956438744511497137590602987907845358689858486367478670996827169187333277260338015378484467450950524333692434297079719409870285674368553790612812649061666129684577638642859864133970600713971924864486979061406089008230611939988307929530080675704876989724143518045085175015534560294705030491652990779089945108627396475131260967523587362530150215324978858681428158544222622705518140756439919972344933743995156474363370034648331801795923587686396446692968331555965149184630275854060101849773391197420405165323491197215367371262295151030641448799718759152437595689021241694841271120251237490825994042477152694814347954821924444375864638695491290276140847525687251187467053199714235911639300131157970722785290783392904101060633115357425621523585378024008618462265257783893168511643968588961567897614368685288238497369921640162767063799256263011230101112539325350234018420156996664530631229942171788730790764420954731868598920338628577097448578743553954361386077603326436804463210395356536670950761534372569843678540634674537185588600808991893794459956926803669724339742920231780490721493258646737033634254115078729981780400026471213537262782258287986679952119235543122307413060822338827409208131313380514403944179648332895801099030402495821655633343557410730612836612592556311881081943340919374472880490234049550114059430432174736340559575933918697637612742565683377797569999998750970777275574781161852869932952784673811041715138989422649350076227464913126826238588631477916850210749695989462257496285800145797834703953786503601742066102880806748200747832648954796064915046694059903227330084047906432216427200921200701316989978454677203319323950589523118373031648707901344159082175159927404956757313043001922810424918245125258683188839239253844672564318173759236604012520686228658957917615661040224666976647830086876624471877381703683017036846671671620167019585456580055354442080423281851039325329301081590597991168993497039948769694796573207777322154422255559235942740744425532988968267238019461549042355373097414419301812278821766004816271610388671893952411399140876707155559392822745121283825498565031133346158186762172524415675559731203377243953724710019276305778083121228149439231191372474412886351421162655408634300033001675270279369679675763074847126682318576577832395233611747171705099210471300135232958153354974201388745043089604110073026257730502338287217465461890405859061774740074564462970150612492733193884590630615467654421301508051882962597135727255854696604280473685500430156237193797172235424329664649950745301586157750239829058881084146033738374087668787699226000237627454969539035487066912475343609663217022566173232592530548792283367365402963750412434827200432397256451789597435538528853344996095686270732572191400093433210220127911286681380951560672209221993885123968865694769671306687102969772554955005257771986136011174330675902971073964459750651784684467954107647824282222821289978165090394488779871432952409859465792681391545288266360313072100009229813393555913614137965758664462913534186043418803372947514167334442178051389762199772002263627647016779359475984176004326366021999059233261219467337358605600005611212008738542827472967052457817022886364401823751944625661870337203961385870402037748821041588819833083038582923213085790025565345202343655847319484860891901403833159735075267648343412501448786454880122571221725985776937071062630304269495712727840537433056265966112772268575310161609931883886902833785301231440370352662094383898915318889783523590609280308694804778997563570346993470394686738731210348346919915358142716696753993915459844343997457345615471118131589861808292712193629451011908557464632495707618845084099248696132602934877527449267242339424562615715795549796196376791995897354354222630020906404799498781042356361273103111656095541429795153602809519748406831594799672490365820789752042296403906335913579850504734829765968097449746593852408762924935041533909924009627942081331938563200569976782619880936473531865918078426056476724009110390529903428102403328650334989500004042149025248498593874721713222224016463019508917997729491698444464545796682565273320922560644289477914193386942954805476124122579469465055566653831354789482351631193772006656985956281323580521259711242703462070751000059921033137270766959672579310239575840166705972854268459867626935454303808923782135012973702912548903087119903396977686981111216037972203462141858822755572974848300326051903236916794038713748565339755041485383276985610669181490734234870911171955268408140857363212934684944705404586776567455676231994143637083371257097419682076698006750410273417487363373965171934875806617546352284254886482599649475845240092156219679016560416534722850351115680832074979096000354922743482372220703013589726163728126308242021575184235041350770192497211465258016566078635631505919285194986502508080103773065812514415151080268975093128739610894210884392579202393485134596002137636787965157934680001897450151915736010285281349708035794664529524856551973798755975495292376395857516860191622321529466211888106305643448879399607227505715288809325584416867160284914916628965022025835115529792343874437653065186168715167089758747367525626512502795576864712779737180082345958598703901684061994311500202350251294829070918484114108972310711494320191962219406624311618114146504770897782556425165111587754195311139327704912669675189163117028303157068625231017222058416376017917586816294050246145317274924063958402795970999007048383947073416833981214568375979985321200392498266618337279909398580377083254456317976094573357402231600184055208451210475668066476281229315348507699483537851441248128566153897237860196675148876756707759653176950228589750401865801568710154595753943428324162464218960998536042438997219584297545740530079205751917468690495526234210560060583794065375261564725419956979122193212025101821398829269653696042221216428196426299530440306768356602594845385595345226027930140591500777906139027318057122658744417362683478376403709494694508367819344859039521011722037056771868066582844416404900247748252210065935559050948201791890092635384897823106400555591062889338515193831382191480159191860831251352969021570110522935151961110411202134533252325260887029056300128231591375593226854188318983107929432722194010823893385620265859061199162793234791005294618289222608886841546924442630628500587320451110786493762754446629763712102352051420418744232752477631624819077241368129296202428540601341056762653074086239359019217943265353603198862389368416271516155140439602218900090130418868223174420879906176680765490035900422203610739179962207176630327512048999581637964764470965768408327262162002836320883058875014079351607783055515472778598888361703075780357440707803371795769040235135550301274161616411545558048023439160958945070683921308438681201200236182516785303293633276268786203154894825690197092880068898473752853139873964975288986076165746475186202499584069219256104756309318960707757489034512315938083853174430528334903049188158172287068353996644418681422241459526145131179129358915507759217580870342787899019070112419494596343721386341353547957497557674971640521015468094639380575803095903867378089559588786224948397044039012359553385318705205622699250465952393975458807080786420451609648877929191511404937757628482489636531726995249476309111432494413567533785256728658093185136600841541141819966509322387870780215079514805627710159518078970661292148754238258348919727487050427061363213342541938205928431715565491380593078846173635847630695750542844067514470879319211233019936018729195648222358122319332067135138667642021643957564070226152753844766283115839296287794032816363197214176599866964360886659526953813817934995055618214939293221421280086847440152166464320459187460392553537357911712255944036558922471496193524130389198758753834594032344810408847433988027474539122541066285999984494325404844663099070067313485140300227386592875692997859572224712269148649726666265879976093289235912958988155130838158076701591416172705096099184492470999241591405362475643277459615280081466033373020171701172893423058477425949832580158030793754355714431339266898888825901955950927898583353326969653369086050089561414837057735769145017943508655217813842669885476278551808775965562028726864950033330519892000066145109219849160295545619369512122588569973338228161323282996512393988611802472608170930438528453073086252534820497731573668894327762976078596397441057553056156511410411461749556184016597469097264639575221953240600016086240008916953962883403523822073753456846258843592987869061533590397024766626039618586991779776247815955132909532090743636297428124936990029225242765254601627561817636561550339327344943443542662161861321574341943722747039745312028846590667941335939563590018737683589950601252442268532184621347116790741129941832713874351862220883502956969995731382211786126020587789677276107823629576538591793668441762279234749884526787970607694001313424258494276673615146424332742059833466886608525756192276326842828024941860158992003856270098765903194483957968914816761883680208039651425904504755352358183767824254369059126886819821311121904203676651511940648707091588044803715203177123710106533733054212732469783895711502391920577624447312940643660327688021689708040391697685711914056125321623239360480868420744196763516646852705555962094330499192101672852733645212503338916990642558281298274714500079070305237686098803352595048320678387303982364091235516711199985551849903255978540887372612262686763075640112242858141452305633475541152956333826808835742347645299110940495203634923121586749868549552022661749499221788189052072883056740510428338135059834575513492874505295902394858660151077683574452645768195185556717795193148492437892240822473649270088916424534754610542951785711788563464173107546342574602719870222538056366351029964780451207340989058073227287591628910696916387459457194366783766405513479290432934385446477934008466718984918530508448113072792420845789665275670652871713297150318031804963177258549509003131533355303281758871670438196920033756280332009559271295260453113348404483961930193952789166130457304585928996726722467712218492550145573629818119971773353469437636045033105356633606942903663268461000507445903444487621097342604793957006502325067867251656453334343109248750157490994006499738292381794186504270042014388953165810943150936869116438679015287972873341851025073454711281219932368568444078395277055764308498370177033719064045698859172415855577153029130188336686785398609351654657301640352968234516129013694596975836817057182988081221989145800742651398872458709917552683158509925924431253083202146205944152425666075244086803271761343216412545411929261430498045880275195286375698199262156453381739395787953805818087689995021173644422874156669857122324085708038207377203153785842730812044352599100626107075933737304824105608730237636182378949911603410637469909228676942929453225504046622442238900691130161825257941335886235962175504433229230630141936326453092129928149667020853275822649711045900649549114753566856722681471669844322377289963395306819505050246439487532003142632746377063111433098724013869533851575463776133659504182386752417952314473433098165484054654817276664252091706444341424770230700735140677850676780585443238543081838066621453900266038243923321645725496463729236207670744533853626992233777455943907345186799209495889936928271777563538834151458756951505722452084851372069812451403473448891506736913759930148801474500171127458313118982559551464431423010729271774534517321379500393721139111165235386323769058247889237092223914434741526398066147273956045238612043363611914472558018703587637580342616580566723375771264847751216964434666661478098547254672570348776671915614319876989204600450518735429683284583289205440018196191259049534325661729887218853460194781157066603794635224902116229394349662737265263878432071860812053730661699894125084963570905803835110407020636498116798262481019517448562809649921627007356574995592327103310293828574722690868010403242683701160461864472942746255892197961853390827337050673548217113259570057618055402398209502272877201242748203017492304933786060852506978616157990280643180776444813890284688113417728358288773964196913457234643871998184728742983878006476629908947191401261739923317562258898134724969011309027689227200683106935495304013883241741253563290543309994787858878417021305960118236649013250871924338146252820688259535395934072483837361416140920538132979901023489815013190625667841053454946713804769515545220455687029730401666657172497568822939695459250468444013747969373243836430259333457736941358136629946284133765246508494417246580744841726979237461727281970667582986199222284575057904707710289616411160310211341388429605368571391121428538819955290833484943259999119670772685565508050702148639151180509807628370624656694944257231515624250385950059934334392559987626149354629884788433550823610559205048499240012431133555338232750257522521152346041808622068202500499416044639263996760069240472601763395644667447697815815626092733034936542621370907927141819527533747382004394608356138872197013647903807771959012533282413128532127694913096617204112577616931675423884681900920415966949797927580445881676447138890329231992629665264284268437019863771689873423722497820605004980100900198706353803275412645799043338313514493134116026898033010469792767552263654700633071206589550746384099377448907421878032418667445398622819148037048225422856207298111122171147257515272496077448453022556536947087740272603126152753994552490247931405142081560982982882136254768466221431548972309569584449390589090323459474111998044640785266918734316490311359279017149081221934854547481265151206556379079574961492776001978440060456788202784243413300957384535973415146975050909635366954645618782983619355037742640061289048479497134426722670272214565907401257141811125584443867246370976669362387095534502047770900369899130561434250452685370205613036927870591612894451739137220907311255729404711563727794015684966233591521155456802406847162959223439790070918158165420673930615909001889925532426145943193194531022110497824435800408606330132203276498366890655422878902700200714445862917451989799894474859141659884770135242520817004496447799093225974306477382957749600182828131295766738436278320727792101588451414786850716384070075899568982331051893523913053487788279637375941174794514634532907116207056522545063417320887498436010520976972570507871751281366658454543286649232759593178181014942223793221278922169918962394486174985455583503688961519597337063548417905577232301642124451075201070871592612100629512755205080126122793745361081203826456352962914418339053326953277028266511564335067541814437182661527633745929038755633316619348119125086250952722788946475503632171513887012338939233682572243595126000922064612219769572948809069571716313663144144505896271147921656146535703422469000075317459274611149123215714337632774816636738274105313186162772570381422471650265281358995289675302628487363407410002534859598021929414082239609352971674581810449299832361224096157299667742090563125712447939711787381033585283024250886459133902006924522203930267674935261511038027954595687726850615642326592028790332426476478375360610147182303454083464708678764843332588351457728445486359985475140161400020954614136916034657592591098238433432348561718203330593031595106518056183156860515168909610907213184299076353499734590436295028644354180254021014563859511997824967113454692473574834152311842165909432288622386641763244291787051069206065770771202781991736127596168911714636765427876849835994738788773973604285242952540987872752416153882762610065922913908494503792245303695360782047526467253782436054711472079794723609096488487671325925847521379878754201654190912920635697295600060447869162987111143555564461597119802462707775799169830160139787404469815829974735102490006008815216598702093523066544752750688898218257385716917046215853961440840863805598076921369849876309952613537925477435758873922107578648809056478636147728331429448684759510087948400924015887117294736279304758442540114345688511596742590967268718123415328124237004460109429859142939653574117532044480754333080294569493284921286830561202884130001600914227588242615173415504973180623394534700496825401317619480938000708887757580272482298360857056721812056624875129573249941404962462648828992318128005643030259501205842516735414972557960626329093623149615184896199860377792700520262450647569440648855501784878433130891159301622236484679246919629642074916431472487534147653193280631360641512596804852181947186781023212324426456716533141173509348365793157018183867111566730217608668103046917759083436655553946164574530275567517953559198399998062089233255532486633009653882767162292070962949265127964392982372297669515510253544044658336602741423523029171624603254551062550662122506169352287238199501103567919692522548136439660771214234420018724649477368951313144579675149342383494799108973277227486210150964698243852471345676763320522134076237743941988262045502653975855866575376337962658762370055688293979784980684950049217740112230823128007909578856325107148255433347469656757120641129689021854021171516239210941378822202371366965629801727497864492188538426298716143236989711321700728546520363248482071830003397679947674091278575037957074276878258825844968990943300004387824916651408567764473730452633410484630750772773824019367693395451108544780232195028031473990671316591879422149641738821433447193425195940371560705046845305304452636378951887731476117539153095317180988554560012235931544860507730505028773232734736709240533651295249713948517540915628458734364552137693115760880381030735836865384900075907996119035339715280846703580856968505314713101639566375252111711023925229329715514606822433595482472407617437554617490205124534680021052870862921715722584617843928362221806924041355370520153897502457738653244941196276540940170579281266388201747363782244420407135525870707792963571724265582388638971859425163749731343658521295908737833263698698873598435161733943081737506469304099856414112874958537313445949081404241506560372810555046970381638264244271083386071137382911683042342012961981963420521980568072784473050372922613426930610981940047678277796496126918266239752724887520049987666074982837482874488701729447017440975364093530030848490334714737497254884488335327278508030470412774937957030659841514413874976367298776814384956985315019043336069794982346386460483313246454869829624971057593744028623221073783685137987693014678115561489500020102915329878607175480503256221363222138477230300283635466227842791011760813038408039956762083463821232365779582831747027009233298918096934826141876145935262182237203569403540712469606134486692427905657886111442793307603732742354381373093069088323136668828081720263594759381202194563391552480282322066321429602306845908884562968932609753245078244146331534961491431197714072411742872773603231781984150050162976002366852684937427686787739862178722335615285725127309383127823306622158244825301542232340925411305078759464277054819858974068083764940804573294589202031914385779348010387399948698896688536316010580105834294059912533766755629986774347393191096537368136864062529867387971986806519922494719918521473773365676514394288900898760473061075760930768324761427923162584164665694541888388568232110667649827435057847758628982873288595424263920514463365342197707744721377345725953142352126258738944417961456542853156999635208241876169665947242007379453159506967748705106942239077593758030734474911410651436460056356769213626833450302810920840505301191295530473192534844371735845541291837991621472573572876924071686862739503722194283303877017088121852143033271863919052785815412576907304506177213140060414601499410495828690304761179446616543135560978732844328590305806701121583135943543741007462017408545555064069596522671895424906313796497990889200622136899878719928754798916866651624090710427440920449345022183828238911796073033258719296415643857516868337062900937925420827031195715902496746512883366270681048722497031738199364910980622135388851448488259199624235804928950751051176916674758461633304197984742689888354468122614383477406455451064417825357901633316860724853611322728219385595773982745640083279722254595130024664461182313565678628311725554927165361084054015870519444681653121164999901879402448418599453556567315202427891121678473206160027757864611989823829611449596626243638042704314863186573922885165310837687119547867493226588830453102095858692196831768139727559278619806619509273064396750021977556268905153574138210840861580695137806185682487443248911136542835886230766529764422399591995610617981058215737108282070077455566557441632763967876372780809749736846142119840374770067404844094111546378444006957694781915400812112516723834529907786349656726579651906599812683090342670764471666454350360519188791039866276566835981504695532107586603867428429640054647819293107606897932334741668151063653716020320561236881890113244317712075770828089854406402373421263851607571068617264300863907957346119164493177873692053488940784760303888271892789984453465575317552782832928545873186680170870887152391035318937263710365590640561871689711894287627845228625463512742779426323533578989698355022930396039123723121280860072379276286950257270680923991728367006877395153427906753442750695402507966181400379437147055773602579886423853362433182742795597004089560169121260038875632863753150590430000546486207599678039020803252043682476349266556561877026783862569421086366901511041774067413265239416839517688525480212654906384674555387945849231649538023442842841453371618289420270254691609651791940925831858603313420340974950571315635605381456660432332023149755744016144805060200089640493105175776676380829731762955221509467918838457111151756781891526751107069453118782864276459688566564690306038817099014533313852429027662772208323736423114821954366559771037385930771370107449327926759022577299722442321129309549059683517079394994147761702013859100657533993901172615873634998326952377828062315843253485697401467295340095818691237957988474909210601879582946202221488205407804169664689686468893149777403835732792037469099558394244956641837701370437202467679967360681418608227157226737001960311671268491202719837928549696532412047151832547854049672833158054612421674380188619243370162199655947262614352716453715415650680978701391778967362142856060879431713214694836965881872513720703514999693636835631818728453324659880188534180863866784762299878658897127931215628756061628956920437852998955754247545132591641648661180412526010350260289126233708747488908072958358023632885702001312330774770729241096341202063156345561785728758374994082341356245761997597441788604070375505623525414270721811578595673778616229434911311609724589445741747148787325696960049013612025684960202580973328012916340298954135218834085225478995222274607019468786684174115925317118690340170469385936095474615361315126423425539200522254728985540495742558214454819600962900237639220980665544604082621423430097283616939595950247262694677318678289994121360143638125763340455043794293635668701188577147212687328076969641289536998225679151114690128592514932722798862107413458557490776322113474590183717416991831406321106042377559744673262195069404456021315998188296343922512711741509485698026583293001415294123533030731860370014315777552552311585037427600471709126132623354492479310348796038542671726566312570459937422725136962402269485434685110282553980104331921162699621038849493429381270867075196396694571000659514395232572264233326872276232716251013241933305548250774832166860388059526913308218705111111099082989606239246482334933382125059137333792210357396462619243405679887981674012117167234675713836468183610758118254945476228355727297877333461470895841044389846852551543361727250440786339939541832775793309135339812777719835711754910246973498071581994872730363118026033102266356834615159461758865650057651327165305139501322428000930022580571025875290270653179319924595849253022319693441582542702118235103037473657454730675551818835990741669549151753490299231799089053736678235550285388398122183202599672921760868415687746314587388208149536295153112794275511514714342852734916024936698276021030339692667541824692808450911835182171089790635616900608885736763050662257253940247107347189056963937780738836030578663646977691461871997538350265989181066568395712787491658462407528526886117413796959172238351257937868495359765331519118737405730793677626246089276826981947837001316930861323003127119626441441231437158575388510349273352804098125421490868840311216188346123335956196167615004488831775178324831143157448436415031929844052818039765629961203374007854341345864884096092613367920357354220753532907684647861015950065417483741040186179070444626292507572195937188677666873975221441904070425997693519851029762080642865461061173992511649792940392979024486234584751787663177532792657353319190858614775287428683082668066527925843268209952791771847217167058197412824487534212276566584641325299116345599156441969318372783473557250614727519769322478395118511332315734165548412517180316727785935286478322393021948104568370626846102256999186097627696185627548902414875368975039745163946851119836907488235667994838727258105752659605613121491179850179397702854736339514221993423222631680832095618292584686776321953254678712520224044764872438771085203418662478280187539298568902293722550078040686829734672392559222374611269224022973960635503735628901219042713237870578111140629319247935146239147723256612584005117316580876729741993893940179952077772781220986950426091452665890286764175240907149458531458159357469933788833203992382663021265570024911002677521629086269475898002213184755652193398984426370985828352628889643632942789556012804359003286449918141002697659732828676048886913054719164965680296877175833226146375627185325339526951553053459018649525080347801887915472208921790873156894650319420880315531182365198046388785572875040529430753474307069913773842758389905196285166352699906521480330284646102263161877395186762261087064829269916918500616942406127242421069273097528006943188708521728439059393297696115931757646870417656914558448626556399358671555306890049307787840339696768358329657706969284711133649933366092977399730674154902500749778248600558033303987772113191049470155249800631402917034812614606264697872107632315175544589438921165890782948646101374975051213151682565808089587788903111638351416845153277767755522787377070290381235611396617263292136687495443983226297364200555287950850250777304693992603693272798335041223672615252359927213590041058297257711463065970271886204479796811997091378001659718350519845156072810950324413599953054219635648403987834062564427651559523910813689927910622295137759912405918218284582392089988259618233417843844001118978438992133550698729832712002578277930622521993904647664038477382845880240972398288615069399750727620198469489199811842569934664206434695940925329194043896399661950215370934564757182350586910356206398743446662468987773815931849185330907216893982536377319436455040775168820675462868423687012665971079274551566796316030118767677130940956613376544541543487604228284376717698393211579183288498403023535467965362344554834941473215810703575578613395743758005145951748243764622039696894735510489878714444214257925788978788757712503301883617386309913367511578386984791278200929227040708780030722542832776046849345630910942215553450367215383835604558060326508195441458919828520890066841962023042840681511741215101939393695091448304410481516876417835276600452029720707101347661145607373174949034952253411722736023360145632602043645132379171241713331291018561529130863291827903816649487791286535726865954911029800261539228972942537670015483272737931009632423170754828323102416867898107864008413459600227394566629878164167801343361959471778301919372752080561192488077347556634150078975057221355635646875838137255804003539980404200963384714311696156190919919340908303475284757835015426902465421103367746926110181338150073016537609138500474097154849852732908088237257771765239333434946325746009502173306428016932050112273391771550821639250076966135462789330780021364248491853051387558430441326402404503450578587098666593064915971204406987823051850247208578963878817843254743608477606194109748380526778355203312036711081546171031576179072251633242028204954557706043141115514660128936534039176038475493587289443031670799773901800810351793943101622202696477027204660862887029556169143142876796856619886181198760900293224024702017636613870735706303175290833084242953317073034040006396300332105911790860191985672028557983595745778162673447843561801884198019570205177389514477860194700543204309795326317555401215390026197931571621936092308681294313351011401570273582738396798891642543830058759116244074898477425250865827275241135611373835342285116688245528777492565311480066333260515526293408001593722072692699824007142886449258609416369794330457180127731187155550096238327527527621742539774121116682503918658645241411743437540956025765053924757102030847262117457734648605679453922579341895378628408485031417280941384784103587244239389904910551309429123089245513272028691473456285536680372599498196973916675873523675523371258531450068680863569621503284938875790887122390571826191021500111769631697071807757926369408444677673491082414807139909402200729124256028965260793955590517325815227783001251614841954231287408022722035811781014570660487640100740900708217980091061089860042368236249410783267209840568305348787311772600248687386835997134513860260654051191608312295130651058124689199781885147790501166682516793895308646758408001808257807008886786792268126913658763761331469019486521771609574501741208807594397015300713401305147773124501552218189388404184529995896160862110797663399965781635579066847384836384290410721102377476276247925871392174717317332953004567554405343657665830091440490816439712973805431582402654684070898407303525984545373664781446644121936540069155714193050465427336420744858881068527760926824661179044282400038740151163280520375542510981261905054154258481205677556682801357110462723473718735800987333907089434046061968001952136040639817625857896657845533806993469995107389657112311069248205239246546351656852158924392008311693359876222671903028046477945448981761899043317879095995964206313351455492140268792349145703866338245778187882285144339578866898956370689123517449515345413767893041097701735501225421734008713103134373476988720548949888251986561736121545707889945153468062561671117377546407236409958234054292717996743071448125164836255207145647117211606279695421197879183589442034668983712603473489755208573996122526318622199770912866389142684023112395229810351411878239735182504350757397510971458982353108302869318696514942226482496820496692363999996692128251130033426118430639688401342748921215130146055794073782291960803529267241802537709760264196344471522800511009688615080954454671761056228088180242678865972148354448340571854082659375184203111658593671416351360896707291905786799778884198072328520510480274242385404527858044801169926032702184144668868172113740581141785825033692588411287353355965092620611963015285469044300544309897053762587729121214614782993026928004924168682215600311157393968785474685586996179481974708951892471245901667994157234173849176122377399935754637919212428742262912158789945472653576749288801852924815194049362604592139510043572516282993962523669520255112525042964803255265791166418962676238632317059668095237415314871459310485645013579170185955629661052839699810464769590929066544518353636162464092229896763545446687749173956606672290119564331788185839372836388002830047162120557580435316400336194679200099884471287193456357246654942820160498759317634996699089124673623923603530710527451847144125477415140906432606658149619810268793092215450048976247149154914182543710966846104789223393034965833619550681750808999264715621921253749490317588085288245718062461510412545569749073407739568047141137582506203882413163413553139650092889669705268133771704338234477009588725337741147670182426292271736896869787948314101976605975284839900298750176716750102854971672136795731864004021751595681536709421971691189849539085738592657928868687224177547331862959582750210554123766992582669330512137546340059565587145858575502288096585747926975877586042827495183651510349827954906219531139624778775434702973685553423242323243285178958738658796572842816859504914195249680425791424060121362241734193726017762989104792607415511760588861351742862957467166590697114952403595336138695257483593495096903962121821956879141544395881020102556035440551972349545740019516720861692274689687981179436790272702097675466113913334489971972938859117752773928653941468560727148644897634819331456041514699800437103074709738454543877423328015587880899456778690164893406927033959137467013069765478902008450059096997833407903667190733147104544781652950498541955537353867655020007935366047290770616699862650687792255733228506475412425893820486502563257685158160709785574919981656529880427907954280973991323095259990872861851558717472560504780132628586982346283005575319791101184835682170055737557709755600625269514873471049662056854183391504108742973864963971833014937569070019854804905644231012456009603940457067191866019330471301349040700673194016409041084389307929831091779446488525265425373871117911012300419382881078529441307012139628261719210561445579599757623520604354902506753750100445624133955291409310800644450254724238492938929673786368942020372727481107505446174585825280447018629627956569862981345270293674028650890507976973446249568835430221061044971869803541007483305291299644866589063722863346768357700678393974451962629727912078105612632460597558226594004939115369168947165149563644422628971828021932656213260141194006555059727023457836565569995121654995433892338323721485052290151535683611141085252749244511164262580697938201022395254085692953068672719189882809430631449630675962740398145106734302656046085016661055150996502324710205600417828428669633576626058724995547042610054311658981006493306843972821843840374881855508735683185080955667990831573902113827460620996865485332906078914099563129816429030722595303275348612454778246958328583133127007710345212939284766864892515956292264166317554059097924460594466796098972024381096814015029941062646567089181044464080859969811589022560700345024616220850714201529417422894133528817796375243460136867559073533878047590831155840662092627441271941882748895029960360594443157916466872363413573746974243042716337975385792227810570509004446676584411863908055499776102668402722718901483379746352760306025857932372164427869926453515860706227849398597778070066069549670671420492625660869744738043758302958491421074524424206959258127783013845532065973758569800505539015721689938809695535224122613648533165305357623772970740642612479627898369356412026437757744500969141356175025498235469414042854946539499596666322115957682708296970622091400138343133261521368650830837576838235962215047167814296538198306039882020209290838326722111250566272342114401099679794589371664426964254853626295220693159163680301326763114393542902687156569356460325596479559277461608622185683176251637885260625194904924950732077048572914490632921693145100824355620529479776893120144911455281399046679857168105359616758470389766147551922574798796483622815511842337482276177244176502944943251433322992782466947341617481320691979883505481382728051481279381607073448817458554343700705047426786698078926400058469338335990404173680603174957660269464555250382421746652635014194077881562679635406917611480704643302493907512865467575295307949121388330591363259070123985146343160483070503492730765004548942712392314140999745163708167447588853529908634316887034214159431716320432962303323293961087051257842777705236650301006939584165914220819412860179270387559592412550737086172621564615850189450644537096588297354568159829104003644897575844126567642945506884670595944643670205510829767770440037112410189166712872436444001881334678133585289004192709619867874633758135604311526401395668300685857851955052483996253343045303154860620910366943509298407567977606411709246534465886262837803918248384510057475595603886817495941486517632438696457653520402175683387561033956991242544144669616552808974163127667327072725002403967665428741555425547610015206244663593666983328152756276258836014330062595342879794649033824527827377227524941799225863580267478198022724038346943206494417373904539477658349229682834884479674938409808640318179160272729905450249851293876110332666505441757198647790140759529849004339198420512795042320734628602499150873800707225691376829746247024970346849319749696442252530640649384726059012668775026916538910560828790972765636212793014807962489166608462861364637140919723785445812562735667908087512938657872427253313449486507183093126747258060693876582605584831879727338537164210169662635932806672518133921388674305611633610984145416101299065349046450660841385558661516991973239861527124191362348650674375057704801753991909363765178519923513762394677090293724334842650666221274561430074258372235114641515749428979382191872048753434194191854061300537297808752211157733402805448247281681802938488448370818372399323150945710932270522965482620378527888912440596731316238568754996326548390683497252389960906949810673381622626267385360996653743641447529270972926073136877315655984894731524390317356676386998308013873562307796424092513096970298856592196668221428566371191491368761621669537130632349624463643453001295942848380589189966485722034270500403940944920996664970130609623923023692308819174277129521459498742406099626757025783332818487988293173157824848381174003890630130898563885322073877625301428049966088829283629453712859410738189613285241530112742306614706502148275532548230327853075744082134433562054609629283882489927733162223304323271629693153938415079250112862880647809573739342272023119491839537624529722766395524920022696314599287238249804535547745830250999826678743023097323609871210281204700647417950687495249317138685888592220692611844593296095515487735050911847407195949455874382867253733975486319635035490090836165766848657950972157941453422956318971730187468332167052807824664955345722310775905669976705211010710377981488315530858329535341160132619923414142106729777003730790469405983545075337358673018582410338957962232387397792251993484365427163247532386752175406897158602725026487404129918069334831893931326107394701563763168135832092876395484082112688149098312697057925732195312319739007098193098100627969557925390247618170761560119315378295839955237884110113817154780852853432158797315150982933807584803080027477822685163536104124486461598889792079623466415178556267048179822814362329554167554502236989435491967874786792047538179823554731721884378924611473509152202626625642369699333881939150322040822898121267442426273602296491407505412245892116634874379119675735258664449164263866109038612698287434700827524247193103099147844161084457889682754409247007019075787184610459649512876961699465420844449522110349381751735674613537212371138749693482220645612738316355993985035642154534740693550089968954271463666704712396750287518518362249130315869464560535500626815657046578929882172130077523061000851989003890224985895053336381136570045029042299323597843404462237169094775334354773725934746091761379894279150582539360733420701790773521526059224292258211312085041676795836711523110989875018855868812773388821390817582697616053725354295298596687077511295959140144447959807074072446282622542697377904312355011779002821510391652582113894474070327825620314805098551189573245872444727080127742168080542570760099358428607934025939425440884025650226779555906868601807494077694757185285198874377740490413130140467748934580645338103022888597174716527847712802758792520625775529994169412768171782543892544789420756118392974689587959330550591798491461609430702703623709827098145927764779626429858282974343958721613889416849171450461588664547388149037018041502745728612383920876033003651941113584860779380947784882520910522364490174216252456766951756544208848509082818838858254879176470909605242600294771805517708697489224867778589114195903550797734845539862674492713666143300417304626397050525360978154643725308005556971507767278605653366686222455000074427314189654222099262587034619498577437455167104544463742730739602300196360345320874208292416564776109132458587881372301935465921837295493137581415097403631738533387944320021607942780066974445724602501329213259706875807612904238565182385492547450068371288870847591337497047019684522258628153748767435216318428828033220006503539850756500582966294357909001608411503917026629362431026809075100625159572805974889975876745945480149397999358998548452631409137457351686133246556393085573594729109337278837583476750652211744612167188733518150400530333115226060757255186158011149450310052785586189423969676774604446713653181103264134476448279828636245109664663469829786707122759510276229297123518941110647444421679389368990739340364882191491403046444427572270875520981148877969229376909786143152300664046022055038609001537114833803664190464517316540743712832589704117133225653580262463864193737851037289525476177924715542128389916308207512874321310077483989834379839537670954915754743157158865570802480127503534598761137435300396479013206777223704178666994756844133946898260131733962332781074672901101596522042129857919220365576176665557667845916535340387488011194474853068546620810510466123352437784276454213632633118279289360921035942228367324329035255608001129147964044268402517293363762871853979189907089577608562985694282177693831581000269912973343146709569590873890432259890673686972355674713758852322135866790651076968981169017880644244386923862788218946645486705409726727609838823116667079496126565165509201947321370256777984980676089597866996556115866774412777646691948727532534513458887552081732586271120043393750279110206762296850824459439626949431828263728906780544943827722091580385241298478847509917129126178120605241915684799312650367553029428596210371015079779557237873023483463388840857053975088046702840485562270529488324328849762924733924649637174725973629792450069395744483029896311162425988065406381726428156580357913962712166032039595906547376895988460888564300659298564100101641689067030789139466609582124742789112729423211354026453640385728402811080720244019604671870404668480075808086421778828896399893176038791304437379616039957795372745387851775330351759810880083774596237065257909132836811352952358813369499635459346397097315956049925107164181687083699194572575124991876821074287871855988170162007785190817907930514755441656996888927240752163985775763200350734238567280923709506836286220386785367590490545927208479976147036938516641316971262018443967868061480061191919771276217021906577771973128698200106902430758243323120154986030884936641069725831156396526531096758595219528017413711272540871838497352200466815780577809623234401792712750172520986341487890748726624246769300224417970364661749802867648920503115658368423633209397359221323751837193281026421606071589819354488918483341628400078226522059460768786718913443497211546636161170855991816413853741559864298172434289001934121568242079759688537873059514527234076157780478862795936161286443646351647571015593082152338240845822917368904983613515757065555298689667703728906508796812254252258027522593988440244074000967473203871845485911857650677284515152090966130820194065639657607821346897433818823525945729060307158045471916991074110819059304886825540894553092765367442042831496931360313195622329938314364096755487491842623535068176823989440084778008500702624685828473048039140992397648851329157410418421045041274941269501055536100595051226892447767868138635397031914121298868082322689698167551331346723424700619619910727364981108256977804617020470941026259467172300119819097237283045484361126605544168334234273172940619907248990004822905822711548159523809715537351508057702537492070656499968718525731494754468384803870297036405703969432556212769400417938829480099892538836005462371353663217743804435955934279607192743647129204145738834303192185160260884667905667666498191520329169317381157423867080678550553328303419383352880430483499392157659518589536498198293979797001232634728304821256460774656474304233875816161135590843994087168422000386707603439273894763138315307165242198609640095707758513975252416083797228911784556293063913985687610111977788476645084967913507772236007921701352621826688850789312807872766722411665895717390692721046501351068456355387921368686178446903608406377052159093797913374141005683563889743891773592413922553024484747215152954165889864801441119978008785178821040539779650945106875938951093035927912481573012523296644356541326529498277480715322539678642408149091256573292249062712216185210516961785700775732275282105221324872336677830049281009995484180611046496374909569474335903828070296358637708836734851361486594200624983553468239999685317895048166409440315705516622622929748737016144801235114434686146103758422114572762721547537600729155781527014498364141298671386312232127411896297478599550745530744217327713211447603352994716489659107274080805576867659357839062417879700913076507451886196305699329153660765667707220607063695739903746742058502315871994961774654847961420611887232637075967074299882448352772401524977858823989981836636737337202935458981942996900798302803109400831854125892899218269612508038660900857177892885518257860080600430434392909805423716548211914775580315502116035254006208773719118318393974142264599708976311968853941467467529435742511070733037740298342638556509787475908438590284970413900807138606114490498471903981567078671809079690923729653142942987502857586229513103952344227917157003114975363454190373936574549597145823058066857276229966616845412718126993745862684753097131539833949189543131760628192738685757075838360976135611060529166335843455252372743389569920745596793367011520041514941435427054237208896471955312093651633395768523612234221853415418918631874257685992119884113780093405820593660002057938370683858936070260281690367668167686827199829701983933988237860482953159364205995083577102524281847624573739233656390996086255453603893879750039380187170962469693177563976583687921007901711044590380685594569088659359211571282821729621412061523003621335631472011076898155998658940427581955392053015998317402348327838550107576675985840774747626288253321297260883308904657601207327933340525292108045939492337802115348707106379386730667183831854505156021005815216400702967021169666763781937762319340517838230732054517739630212113672932800276678685747700170751860867862641163135657275651942201740666359918514404498075930584984367334863570062844117494468705288750535722653778544986846602448850245640879974489444411773390402752978485918515169811889759923283466333224921998477366720130018122092880990614672590498704462061314122246242408050072557493283399969099725008798519947488556365321629935465220084963029874757068355700821672733599281759042444565366884314086040790251825317977234193391560049938043482428263023647140913245507572832140370037805921044802083780408076385430337301853167936358463413641765158037668727742078498105113745170988045773479079002359883204165230319495612131729226530293727663693250370640481840562810455108043084959393426836986490529336907720064847946810935190770436630822197215708825136360657546511464245173117189112193801065788640672035818554975272204282164150813619771835056051490838399054826564293486068756973543629071809319127312295061768630543344038138372204114540325587596843620372815275238894111309081146673632512770716467153399722183025186241476103031363969796011137608769141672984591902671564410578389757884663742843905398047050117426901039555126753128880867685295926520627054992470024354438471753110073166893201648336117614107608899080798163266385407703032943617767311794185061712447263776383687318730671371030337821419939748947994044539739802603381909325113864137760207885432216208115043847437203785458866379537315226999597786651210956944512744142414166775367320095348761311844064206881465426117156417605579531880115217775002182422210578357582374571941322869892899755556123062395580186577795725520898578400663723883633832914067118011985250956071438358397213660522722236255607243374241949170000406565584022024031666316412096699179975888836190438720287829475916871374077136358496248687765209326769339695505032787014337358115864493820556324232386897468615575671068186329339841708108964276139444478969525370493869527197579606081526159576944747330117416781831810675136189752618579183403429511263859414467647618151708895380320271443495928526423414434461422170272999888643687749211457859879831817734679189845413428747854988986638896138439697961684669696452490555475036738361079085275947284682410544876575343436268142938924114828639605173762794745503464033774835281370054655377165676715562069958480698028909941878946249823314317347069219461018228140857898264884817857295762654202971985162094987709306770595163654493806989619345784063930176690137912096790459405601811179371383308025164862161006078156288833855932171088684051063791125589274823602113292878632853559643993348716258382619934819767348168937561660830119421254128913252316067508772132302586344883452348283837162658083520193899390864283750787832900167792853252298010556140133590021656494315896862002907528306053391762649651365031123795701491378930404465601377112926724463935144108231340951791624588336685539524044075770052018776138637128724966335409667656779853248013835446126694398825032243017141343823991262567605227965221057504569118357729808287035654150189106794049989778516719865182966341943362720182962934842557783491363828470467672604848192331285850413014316155258078554665737733411100062825872490146673993316703777650630484436411801083178852810412644923729535376347138544922412192272160866891291401597922931897334738301692912935713408386935432108505898922683679641055478136460878076548374756441983314514356986391285947143929574383402412090248133565073069377253869764400899774373072879381185432171999789665292467749915912789879318687859198871389006584691214381553348810209966929029854488308321396402871901157910671900518005107814367344464015541281726933206628985068118950563100518322514370622043313842751921484836041504343207639928347034606448471429868035965135270602397790968527734982799568586551048331778001430544266839687952336331992951881092435799036832255914842179227859320572558318795161657836637943090234711891642626816046263836839042360191322407004070060304037937934770853283238175992600312343131064781711221542957572529054746961370611835396410213535074560145160025150174658557814840607910727163682064740710039373488337721494978179317729233277902894498534152547041738199517603264855276038373069024934360384842001561089423835997976903682402624040121747422319736320741423854614515371429753556842857846512049056408396440903392124098171958163475667888026915840960554900961381845827505460982332866952050468185210086727093202292388519926222123127259290710258432603340882352458962560203724934619019653068408449268249522845552421245858125823243134057955125380790277509149659263184151530322968994429505436326098258176898825456340086103519561605249320214637243450752201051683094185236607962930129177777186613391826622295594467979592733466605621806404120110106491453145200470993162640429072105292643405748161020913032000529861734880696266029472008513140021953996492340413635812710229378445258592011331323304912369687556715114089330123459871085922041395846245729192578635267361695000110343418062920179570854179686506819818516627784286816534057625888250651393765264173244150933271955133786551141122716313655927817516366875817413412072019217585335780272855848615061407409189949834321041110802379064458588787452828192413740361208432215435922038448366255761205370378947097595678657317838977765605696375697711267520956253374879751687624804410145292746901564874397269560419239555117978280463494847873503293898439710346977198927030339357065620210058498559391911426737087292569144200210708042620114890833546156767426410172481530466116588075287108794028059650579400029536359054941475077186757721611035817292712545235521374355523292754920816212525564644541240299498804779142990629268649263512351527301836987952984703615903127831188817027001548144480874218462085501261948647891078114653912501364884218102151682598172026310745716507101318633110273554105264368793082033805477468099320592966927969135676884897020676626186316786389642594662375319568873198446460036319646306781640451629588522211978326379908385133494045330113817865344475651692918877344522045569251328814749708153119644937788483877560602357687484092306323409745068080352880722264997152778047046524215721912794439286440240071141647230111095388622545011666560027889781009147396038119819989209577474074166876881573073368642278621506918042065533351161556831771843998081436359020543899683419946354664245680280910951981320284796374645738378684102453039344297328059976313509948474722447876998553886591984453944429468025449256032521569693095613831478242540670549223413616503701994761181960145686574082462128861593789831858462148828091209306246960944883925089925063919112835740838428227977896414157521584818638565462448779573074816296577419633842027750767631877735840787754313092605080999109598734653863188368193646603558646309851207442064360354956270878618931883316988667178433990520674744877651224081109025379536025949684768422484742936255526107737389201930567941119529756217694882473025160859496379522360357115524653821726713174378857328108850041181493965304767985429237795469634747201551869479844321714573769071418466904465200410669763727003937568606836457029832799064065951760265265234757175613912551152183275090808613979047425822983823550989309944865613615770622470660657492774781953878000856595569534759644141533513894741521837892338733808784132952167059305274148604145877125775288704679211623486016118858300827103072062368665160122662344255266617148771649564937910282441094131959432194304781543169283846967188899985224827867950313553256168748986725919069028022020875088596407590264630055650852087981712384762176027556226628326514992171291296621280930721643556868872872235603644014721713496943866029919411144886983115849074708063750293057254552996912887207264792059346291117678593241984744816516960724337729162995274775327338729705340929538607132314497010935533789864065730413280857578940867643552447728294293006499963995585241356830995055122171789967563880534751813720703953449221290075537527433838705269397430252890729380239493382617933588059949243984434452665985514960346767443963214227686332433763009000376886385390255697779990067836146145071619839583745837503388679107352854653289371603303344320869167248992536912485925636651230859249892127187844953482388893604640568690312667802650868232931795711043231115076653758932705120623216313903047473793990441073284813012457701969699611272995979823239135153644574712557890712057560194611964011604454959549390757761974170133066983368384568879954056337723801253344370036234635379226694741586224405381429507289214494109580528676594985137995320695581576875340229427101035885127980171486803095586296392742794390827545778499829368275405868509510394280372394688812617933608829048104200187247062304528390752768504146231587486586183553928883779813619228254930222524149840198178278293860731598717659503462384703167017327191447179874327450487345913749634435046487450799980651813034413172901469181271536370282367825263288278286636644284694297059363500363411877766885472341441736177486990109573918918875106781592001396799882561780990437237250300399272459726669871023629889639284301677651008739702395565210416309180627763905166754726938536103306217738358047741799691104338928816743138180530288811531641930006045578189702373527154967773110653416099111826386759011190144650422590041729946360510256841602279556418671203791898297466740080534583138342683551882057610457324060445473676236917492073882107869639251975419348780105202293016398178106672338658466459841750053669787327756970206051150016270540030406051240427960539377001167207840486770092055500533579418606441815321884975512273533478674367762600222552060094762952907027159431877747043030883558720086946666489047125309083034807390221225864473903355972686662816164374384923993125852243218129986914955956731688776691716656419013658560843914086021500905518629707200623830291211328795367793387770738097436761281320058673664365963373841273201963455175722931672514482536455787325967932832505743603531321437022141418066292646416631540510010274083663309974391434867608094985875170229345527679641431941605550090581123897231795732893190622371829662932429212175096555739907869051383957996347709753295479162347274737421216725801537411843750498357163915204838609238950252525718491845599690753266639785399604534174430047145944587564607515706762693501278293970408877075240817878990040890078780856100691317475742301219412576820579803922616450454542340830753865709283572416205825848629733611888105924012974750282472255764195617504791772710588579182099502392495604227055013869796964965604828420420725238878677849870362064787066783283896007448614671754698846884583691004358174602162625886616081334764949125851383528065731304051981027444625982870688952883258524932699975253964503846692256468943481651720530951465429657266419351370107493333402820423941034373465343642892960470407539301584527688615194852771619318925734630638475089939802346912009050590332326969645904512023865775662350621574726172728799442162160171206972623192997544439217613350114643333024023567442641082219180649714446966910339522423820729397653006913667466762101689331815772146767901212105128399201355055159018787307651158883499923298856178108315031816989967907491529401038202519852664283653450819607290266173314989903143956975154535717325694258280486912889962352172708016730930286399238416949397016818665313779271081859414288457732302939129500520411762829261304936488372196595256149012631972898614421511160712267032076594212745946790059469169393403644073793806166737044090286604629162252509349587625557742532628788285454058326396670357494851146116517142673004782102364855140262463046948169002768747833000916267698334804392960229116946689841161944610855443292185565164399115406081003129122054238881110771239469319724971292296159181567514018503301730760559303005442361726771122972057712630885456975715904052762950230293703507867877089399157108211269822847673387869244459215924949299638048553011741376175659419827039230742137530162594549257119440813893114012394538315034903971849069159527781729872097856984546779155935962442135358525067927718992313479429102185979561745314959420908906701971805018928594917063632989815727385069752558860629304147021046305673126534354625535701702818530708013687014440948492772317567062849524657257676120137587150570045660402583415350691245964908804100001855259748199224373447131977882653377056744222530767537215692974902328693031797098174813497361673057574997802038776722540322365406724627233228307243623294999361567198025004843061600524410270213183738280094542377084114832844996032555048576716625667816913441017643898210000581395858720813170741066756298049412443879016167780351789858204652259644091276924396844813582556939434797704089170541383355965295064756052471057010104200716579618187628092492270322958540567441031502835764971767567224908090532514249786756545664492869300598974637903894194106984837826772983538170583020973291540063267883336433897476651353672826185874386474180074849246844466769405157095333106724011642104471179783130527437478202716760880235552512127696767320403700070236422930240115163557868815300197897676367649021621516848243689934341115491294603553459697516817398996384990609769562861092364682287884025848018732749222864214040981427435459648864217127707550079616208730385558407520315567509579137401418911805701992706613857394441298379867752725231068432941136597485843423521884532973897092041924077033840952532813822062752188735583642162336186524458251049987009374121081241323698346696504857455379851587790402345499280564021944393515116118198000725520257957940998145039772512054752994836129569241235889335890023751248658917366094731761782455357188466644505782331667084093494360549108026956759000176236617868522882235966731229953127397801130388921192942366180758704586664190580463281922455454611235114683588370342400360462441861425317930209757058173117328011354081048029169307537723085297536522922519158779608894755238497357563991315289581868410634076544027625321038186467628704222807253047428014512965710525522744465990720623039363890800925660367279167406869442473918341001974975773402387959499379454490735626575535018883870117799453343247278830178458038503379046566686311840661974342720544173684016284714686261398147287978463605024498920962717536364556585908058553700787617220197694212226311489961475737116144717019297223811768559455957341747885594195769763845086486205647179312113618814448794481823218487754876183587795331151690288030496025876619454303353709602401863296609877648477594695596581341921013459688934470978960439957096943023455570083267330836199095571565535706294927894446208949622119464540575780269907659519975178161191943696790894966490284761615089154140268721312892703609882506853878035091137541864067299702375907117102052754765100071955240955875217146478139883266725740614388409713315403098153837820459872509118414425422434581353994126701719214846410365267929987690170533448896599154655346679023809237851313429338759787346161752763688482039097742070027476337837275918970540412683067523878732985714591942350311012406911409779331791224433838123400523154270737804734183464770819096499265562671358447926135749572313105056109588671074489927782721145013224257246488988728178706767949815592609434777355605416575604661023459211451381266211009073627391190314614399743709573805899426495697215154122454301127066306692033877121180262202589431960471289690920355884236187671836354377335423124498103492795403091734121639950869385916959452589494272257189316198795541862623437766996068432901156954963993725126715362263595358159999374742100905330958612148918025894884369622826659032921982819984911022615809575118456441679950677464929643223233857471066845350481231763635054371791889695189890697806186011834650637542250884001701339777545690496967041148956767163981963071316180796306728448030097868160217131353098016382880404987300087545549570589772246175767102250183990134373135273459329972747886340818229103658954559355012505398508484229500125939060954708153666028850033673400130114273527002856844284987843291019795574216735486142320573254085552435475558978712205565561565340950693591227982113635793624217019845376983681900537523353741584164745663989808767947790598608361353110974472730764274546440643370322982895467579340872440083914946730450824196973887101763161350156503107107137528802496376523349624912134644643755064558587773001985210629371005465758687286978853374616360923337163081758046918033996608068141763883688090900413643865713496519835216756101337265495171442651424473176095995622172279923345217863187021395165797178671550676153416758037162497906637781337823413269330422807123115618372600236180172796104284427300295727890576991527923471024439357221283039897072468385613393768598153051607527280098813562244116277514761878669183705068403434050853062587055263347753595999274674309347414276830575006695138276254503318854829185019293631485397062932306451780789269608003342030483198401233455831206000231533059042906692858760445466244828400321471317278510710004211497387054744828238896595354337618123045185191830511650469283787426803300991326913110998373495686870419775620411783954338161205518286311276462126893341576154035488725623343144879394427469466377180583614450409255616446054740429291202418705184675740324660949524687578547020228890747286682605580989269137476307433527134175439259328203347300684812179907925449631733512818616796758255432985148603214835669415180519800083210142549613381864243173045744882937950778699050507459249889880485596041411887582752835546447447899936150705202201435178972055018202718259642123038470338076207659674609263210991029747219841999436978785291291184874783273741770068872207375601140225041981611105749781869329856759670338460733173834487351415786288592714644606234652805558641061412896900896977663308815757965374964484438731490669426315357125961693091586294138020620489822961903903098264716048175993588957840595997899760458571397197603645881087037925954906362435326275932964338289678945756872745795577714397928329940334265779942554406694026182624163030731921394683071134227516719026504661007775910022196791353009519808753182118813254902440166317297080182444435841993364814131346796116483798548622307989852944043399967741717932243276186642190225804035195939170297773537214993150202778055836634804609538561916877533034854072587736928597730500216881646912445406254480564414122118597841527764916879328289094027421604966155621435695258971122013296523582570208203834397387874903942461338153870067907637609072074710945542543192689649496194496709362388270042659871059993619311698362269569796428698309609548032037015782057130966068876463497218984151900888403742194471620277109145120555816831803544939320761673302593831844335816628627570234747386600520628240908001631188776952158066056041728527389637832138312549166475437094019122686299116242700373486272636215797163794418046422250879240159428458352802544905449966335344337986845357588241976661234029412912758648801446054616540932105715956624079386604735233828632876397986764571323191984594404735165881319891281597971695813201597266722979756238087442630736887209969651913970241777515149272172161117600843681887731196168666781321447445924266069636210083440604669465648760588029672515703268830307525936604276837365094720753503309008689161949291763853539599997243070336689847984015974290772124554195122218230453206214180781488349771220420441731782435366838905930890926559875643817534199013422346122576450597991701103728390151773106508261104338382416971375276779419029913346993500950058656446158970958091387575100225996931472662797321820238380799473508184419764669098907245287826102018868695880689365865676885079207204562445474665341367654027788231157651706036417812648901161110629551236207177018255502970923153624717425117429671088355612519541645227576993250678143317928339072030333782320107496459154653507664803372613973012237886212636460775153886415483999638069061765980196230933554782819136463592136493634674357112291062563785043944340285542378392866625881830312896275108197602387068752493809021438289975368317706013344496134276207324869981939354121160926447242087809315394980831904291905882115491136465632802654197300828542073807646766380545531707519264013741996852391881193877824279114209054801203279749637381739592392339537469087742523635348493584342970953418977648716778949494989086878118365174432407728970800630268034792369456142829867375109783607137093579278567853887927444612746796468698650393558466686200908001241328515329948434585773740645205069784691680609412689886783937321859767778302940609292902197914151315739172157931362678871908260280077481254770551534812707950500917987998490442092362241792659801666123073652804592379465754461860908499713197201033578506866035780246256929526046068218119517102972133013237301667640057050009534190123686414906073310477374178793535302670304470958573635271123503577461668529966199980613805624090924135701337477780582690824427146386426851203607092887951617376555138854823455705737508030270147295400854665350946877354152629170356571580332799200860490777571629712860671331286817398619781515990415386398575772449118747089099164520446522944349514245903237348224866117609672580592311569903353539253407827949986861772036175857283704526317093752813405767591674236547811654653188335825888064074122495578177337182188434103191089048056994181066529734987589059173149554494912374684899702263266822405796637560447980770075004780980434860215656578014502640668039938782729855480270724731687045140470235182935715925629337889221287262045164430354979364767599705040717198185930788503298972423068264021964653284594798416271063300213788132092097438004859599135712915140950104088553784941938150821017170130556579120822456869659237356124157430213842747417414515021953130139175494061018996609843100596646281010779344486210854959241591990023692296317284459945140385516209832310901587195215794064288692457735224979200388684427218081098281116477441882039762319234949993983434660338307172364551432101074548606174714882924031554138998101832533487640763556098046484178890936796056636814449827376737281003549726631400288707598410655149842983814188488167377068305034755315543999289448244974517676121466126250968217096612148250014907074025908658459142279946066072226505311980780476863667591959974488379251749061803992131575920682614761915990579274990232498586054427033837299411217458230289976183425315727136095252246855512507125538956354769686690821506927826776761914445069100494866311189557972728866313114778728758071646713091331811882347440426099225627250859153485867516213124117969018049203677518558858675351713489327400848201267447482385309175785756684272054560823102719927282995864099837900900981309353786306205751132412213609962204439484862849012619609407867084285173645898737434953018677408112382907263625352243616543004813558155088297622564917401245131602764267807458977866291520443804607330566850118165652675765239594285690181714015733498213264139126515040462220634524486113124654019525518017584956644795554919554472004876870072119151260613294535188863798706982216776344510550044811510827315660668550906101345774808838567435904787386873950432178107446347094628584658795787660847061520278421761065705920097519427406779802655190161153253027820742205227365777226897854943002593881132209740758964702406384544485325059652665494394217676543166199088197149459787706926584035408576763038466152781251469550207377925109166038250120978759144533849836242180324021129973515214493073776944931637535249976018945506845138934528228437213698405310172456385688798330271248045884277137926912253366670909551764570096345193027682697875900325794277663527189900634864388472442023181762046932423910663810454338474303894464025937524712923703874447266000866986473382746554867279714263737351040696955005197369004625079043283806242871263332603155247991271842219257284941261289021963918097611073829515554792125247573558172397098714376523997866517978845994619355543102981668322845866061927384328034518717350800533690833267679312978479064774248337567629618647584764963129516228487481380824970020949629639295930318993041365387191880412859800273657932628680011752019768272027969982643581033407168139231255604154103891391695278369045467087720191849321155756321119558412934882747409996144566879793996137876321813229143353744260017033734697201991413267340834304050219168037911980517576552671199431003574959607664180539955377797778439708811359571715959233752779851671076921122080816741763233565589049059244379537322579672798535954337262863029561237493123779393334550511546185729920250915240128133990873099141905128864182377887182851132370502434643833096432200561862843556781834892038387159493261943261805032312702384026519607308072872532353372295585695392998673565248881052554002610047541728692759730065859995158527368474541014683412105817962447581847815131575886991527172659170904679495657640250552059486952697620723868231940664474858789394582078657174708113361821569754073415489429322592071282267596351989558341461545019374645943588884461807525097534038711916795510309451146036089571165035236636915237231628450115084941113030441059617548274665274985872716019195508734294328843704405396907400713663350219740833108762540136747673370662979744074332130009299862106650702214164084044410301746520570097945024309090741871922245423506303717372613090345709556871223712864570012729978161998083062509593458475737262177983845730273333727552730481169958956106914708521942676949684720597572747020970769610365751405266051862618877066134446918648120273319569047074578452689446598164264005325893126431406761433228248505226103314315888933489072679044839242947797987049053601937979454218097709250220375876912860376776416499444835728419184371047599522831968529553571131607071989011151659407045511906962236369286911903837860197203978035725399792053325606163080111044745046058090273584684464950078325740761833257617629900452940676330810485065003377335206406995375956985882115563058363585175207115343746189010192654609110861564496820687580857844735692132943460500541843878261447285777482207192800068245025244184943498398216187826668325328955131541198133333093971917549676340273145066520794822497139439895139580905162516472516766824962789795446625539959625903079671564894385435539605150744530537717484833537574001223243336537695881945829450921429670388708380627111491194251844227901373326886281888416378047765773461038562900511126079583644569131658468627608987876998706770953638544920213884933130504758673834141481131672578252447163665640588933700398605654985665199456068170155532756363561727827643423118696579022763924432913870376258185054991375563694543330505514503411430419264976109261516019240099703330304415772727549207778110293922187224394155087985672636660830647180736399102162488362312925381863777151069796961691187488299847986674461062787734810846871165392298456751047647006733723597681251502752048020459204999161836660937979349689941146854835410106805161630720721194504310610894498894389027590035643835000683182733908828940546303745600620409787041028723988349090711097686325989626189408816731095343762584991792700682634759264763960922020923967055712264238651103084996174994987708602693709113351695585516005185147150233775386819077710898673589088529002417364667756494655660283993523948255237746927476744804956992359440376700062541944578045032572746982401753292180093761881803206811922630694252514093399466819963152103493935566038001189517608301230125366522023602801921337220061762495475342308763530216026155890304341490493636188544246308379895214093669036052687897862388337103434224519265664478520772703866085581373449851682795669099403190123431017170412626070102464004836509545495271989706370414714104490165935647543512083810919405586851021172588685065679968503702326465691545712885637649994040656948481255111842010913802838774831306193424414094357190966841815666039257235807289080903710966796514547496704669942338017873179777580837362495234582268288989173624554721965936293760223502549917511628435278352747806962355348353840898452095473171699781500004401932967540832774160738251314003156604275594613624685351845067955195848224085305166577368834293029101823424629977099257202851770855549542773587314734050603885087013192373114742674303764716991860545362876406324370083773792608139755886203683007129171859521560794418391737223705338098838604701418159400977362915600546074321140674754401586588498554819795865237858112500035563549700356536623942967928620652683312068763892830736263718011888315662359106541951813475476976077140084837765474315434433737932496783760948594837227706580397496871117943410778548069710387633874910144223508513419686305035537228435574497514816461155476958138585032034627337206945492947580340874494259341682148622891961750958040673377244822340468901358043743163449429972053538618323759694793218352493863327581897877452687282159787432005723835742879463799887545365860098625340902805375541885193879472544281666362261161839246253128928995717893852673785154292019965167750116720638689827941136305256948387516524204024038188939006792243247321323949647101065827202697817169958254718787954957212580504943476407804956105412038530654144962762495974644793443793278259013929574509795057983617001384576204424987301014458542074877715352914680823107926939307708382630907583023612358068833991949749137640723130561006000811458259932630769316167750424741353424488860711900443107186227634900154119258611580363340108310025050953693944963246459608043495351893115335610013602940812750103311894956698211984303487777586573706428279341283845463690711179478167444677986973471970565785275318828526119464475315625666331733453324265239806572140876986634263032672581104115489571905762808254655405639030988888603458799219478275026543118822164710982344250176236351779838504820522205688325939883541317296095501216079013580016671424432022838578927159006507592003423200000785557482519358289047824147847427988508590507258374553602609377481590567952780745229379718019892767745911506190279187074409481702593647841890278115530596104056049895971387361201193601086663161945435036294253577420803421681652058486910778209463173873043020722339113540949511187601515962181134079534816628830823034640213888208487169573927915458900036919488077658632316846614487008911079882329901627098900974069211446629458375232067388452771786354280237959494724796318227935497420161394286417687612924589522066430851525481825108860551613212747323415248507675167120026989227914548467009445797399597673273279865744259641914441672346635391545565024685047910560674106205657256389895844604487043904005664300319083971166617411153905819644352402765046833255098769646526406753502132068255484762200561602913555511717162370166549291602251057391583909366127291612874849058518834315871268687913034037904454626468434491990465875153180806824996053263255710480562884133633457002342502518183205077193413089817137484230930205442845332596532498775954134857793459021208465685582034249801952185874884507392526714370481542588484861902656183019318009895033989245067006659648373421003348923868970410387569266769856477457890016335169378251421507666352915204110623235754422465442609364651887935629425704608826094179406971661380490664149637609775350761791790905931072409678848782363748840685361727891929885548480393882907642035369653491690537921992667816488564974311887531865546921269659574946635163630299950895103331126727435922700210800410222060710761223555236399045287114898765787348138656478519022728371903788837513093843301974806455662409080701048298946433483689793964100700427538855055933101236616008349934234455599669121485726027456817151712178028219921171991608439169065480393152928779825701454102828864366063965223807794525710977937752645530331588192047158614864758678821032687090965307948398146495831758622822041566664951269298990857561689759867348860690592915850790403365532347529847754608761136564051659033430517458140527982818957003974154972696978999710557745415908357116605954000719536186553045603219632104369528414171954539549504214951853738539062204478701028040371842566060738900639485345054147640510103253545303869059221537056115545164550498593804334348324298536154394497415099588801075893039713088507918121786416078848847072439680849541445949666330067437416741166785223965451427193704443279924239156939076314166674181694087752786030653511851237031946289807340798747196646455428417218340055485141297118545358598658677068000007902360364540112257305074726489577475759438676431987201684049224439873300066289306664954225925707280962784107150313177712919038417992859768362251951125034853910091742823617133649843884981991165412490885932409626200670632932212709018424335638188318361185871283711004310979414479496863285574143298619542528840211493819486393070660649003295545907584010839374764698973862120697345576263315103955771942016159381445288899817486853908069863715880998112988184088772731073016470665092654667702865989631769830969782947059438661154157046476159887808079139023236569310123592258154000420949195591912352668575761453107031078260966194887160663035915211037623657967756778280461940855736238454584602313612623966875401241144472248842601619931731462144436669802268368619459304694121492267841845882640235020138444869890419965349315648578372315186201467464758670042877799274013004914878611548863429110771800790300058945520169699583071286302608997849674610808407809749675369371145430460176686619808071843300629439877725619918469153308229291529933602237512071265449647968961650517054243221919372328011865365771390871928126123486804259218565613591532901422903577086765604089588158751458922280289733640828353327693846342705148680465518141106911008160064016696598207552386996792561401958173544686378848332841778905543732578083548816076096188517609729776536627214649304489169772952462457238744146304111074047071934350077246263174468015557727176491784657405485883416382142140001486949409497433913531259326640103309710132408101952747654449566940022813998188739497254580799946653401394111062903029585151479961921531181084181217579680068591906235003081641283873094046734494030718674531511934029224305516384199954805199999747417892333924437159135204206561603059082528288318284260888101589828930496798454415453980072337006527894181626689396115273123700528729736192400793007981072131762857020433789737749684590039495177790109805006189691562739132862883448137869119512953863330408971990638169291598014254774215544959117423046759509634699896083568392399865865626751000798349642102878483775732721751427916675684380515764555791168788667819689628500965186299913500365007305457969354834732545196555687615940891836263571908082685933900780968676765251686328815397210917782080918108144618184648194969898111246678901678369703625153696826774753862449335958184955385062282602987466164921457451914251930856504496844456425107043227295140116526396836863763135746868319337521855344972520392077628294242589812253433101834987473896682994789405691104996490279788663035134149712509072914875427187612100299344051000995467552737743119500382753534278673554047525217807101449377598568591445825775033336571091456913305854107014455988306988805551105608253814023390155007390138258173274392399309827849235020730328699859402400861260613576080243785092016970012330851680296168131974712640361711475653695416643193388901985599364529053431344517077004306547858989835484263108944309747064105193866108424933259623616914588797341933169814532713735548033775976462806952068059165172785135758309455965206793820997548027123885104980347351282636580526227418584551217918760117150850157372931470655033692927785219395540993608997937545372260720492023116674439711133070676540974725717331640836790157196604093175367959942914501385405166206580950877920688093031868531041994098902433450087403421936094560691383265707752534442108179449656406562424825842034904505659985660785890699221935972058459017628467098918190287156381784841430396939563264350241755704981656484920081447611882613550095051656126713208663909671100778046422948561106914014420318973668407271914722405841186400425387057637506720210920387995657924667416337479142225821713254562975277573796895381714141113811344991629946679010916919916126408729035797770485628233015930541279126464302649345425810601460842900032725063909622350267838724724069607419597337156986557818629778977203035018516390881530394683473103946455318535652007394189869446103253170216758672043615342329913708729953815440936199133515410623992422099854881915112685404659382086822184030540295590215948775847823370140555076189868845165114885903115924390312042081192645145407682268989126375169740600284119624242715092513743486199053851684807310250757472578645230197678615113842613456824997549337677270749160205162812265022155498325951729516869504333369285786517591126134365277672589396148940577709133335989991121495304164788914343465643968491173099989550846335870168744932990407733672700545353382761490142888993522430013125979653691615682175413451131637527775083625905343019087559161380172132752522451964631660269550700444617549216357183208814765087949159146469446760349371892315908318943653452626169782897802123377238461512883713105285810530727552485883360120833533261896849332543445095767283892680654987486331571658482355602771065993055497348419027835192579695659401149946859108768134196784085650907020657295353624995388887993224010128003195397449802119157148944350284897151054197360473148376902929080140529032952145753979319663714482274809638512803436863956038771542633626973653939185893501892879032611699521125732383613753697536693971094973524934887340165165530783215172256416980792522384052756881708420543835761823452149143169835084778302040338613509994274698702282787257835774159836653684285450850232604916574151098786177612305992246245369014118070919665668102576336575144371336357044421556951130966366539065982556702540254083210814003107373073428791553937765682641951633786755899016022361460116054845109091479795403741883968834585455588437812401444787753635547139821346992657869515965751484316326733352762870815643161085877485851740746573737809248746382945018895327562725275107180090833755316366466680966735173292169784942259963521053111325325915204762171306180020978288695962211615126394767615850902914163195048075752499484188715440247120888241821353753643135350280135005562540655451723442036857685210725424326856476793153482532837043192204210869617860303468638656366861053614747415711166890906462005438932529407729655502855319364338403245453454790146774782243717993172184396137823716250365207069934150496244296817300490952121059717209805659206500596409050557353344089563628708893216593165968455701355502339260826164814185157854080470804671369664013269297984654763748375398119130614437809146013187594730185075958511275219186682833792438825393884588430553587807024063944499133266626998544672124396982162728988530453045168088687739953483611223423341854050491594728891930618239674159187202449393000319249562902985797018263462187650061712902656038610552554483289005687039186656131880818294104249763497605556686932915439212998640582467200817396362659628858406582485267254732479463751028870238328065586582233165732295781586579447369947350727385037352640156846369073883509175427740390652798933242750650779565892606294877285506672820850705702813820050305464837317074490919069267442329621326237156553921462298232827408924128188805096494009511165460437944847885809966042807619041079464719868844682787165745671436595827179252011856883733862087683394118216889735609607493427010128182632240459413718135075405532320353343430387793442153872087422645593590638325418180176175527785823436189952971329346657182363469054888646160661937580660713184715885870616209917929538303842607246428334384120279836469238291139184440802312951407838259589405544659064047856330140549023196685794558885355416604499400592888961926826546987423852471001194604607053588860615842657482174231783853771553838017502302051722525039102824783644931715547647878718339197181294713496006235959083742723535343107987618491330461432075079333100259060131427043219771503468445239011511552261431804083446790646227843805966540359593579158443192074559996751843194404847225024648151891715447501707777216866970616980151627555599520553385025909839905129837313963868585912469313386731064264455061119025543369612774616530110220359903129063466427179501668608692367198048554604549842305429325556214454618868387637696323252148703277180265450219097894975420862278813468586571623066884227897841920938467262100868081954753359255359099000798694792336069524513672984208099340453579381012416712244329164857310965985117408747099117329351500129876101793152550095887420963724078042951577246190515085069361729826244177064323349189264863955179659276994196564556041805840770359136314749501996345888146300579445584436905540785722607317875642572848320542376853223874386682532803486880458291596559974046963777702311976670968243484165552471900714779920754677146380338198230257010337274502815341900530857532999772148586018087336647026307173291022980718867155218026653080167945000417226863778226542913202934258503636142492919369808464019749631018418413199728798911670144963695940041996769982134447995859513059564611013932985638811004443786745749148645121428677099116428819186448458306040363626229615992635019124677284085041976969271120532036961869801071249437515079057386133030193155101793110242129406272603192958568872185133173754765603670707688418969894039515629667636761971903062986216690366140271101037633816763589153983367351934971753718441716036978166926040258394104555917482623786262833212110039779240465370629320758061655857064506793711615829230711532721620086057434711003593714428016294765229390458194142627930283147001637404589649667835451484176485409288196627851172013907586377801027556609807975658878122097821279273437747513545642945014128490617304318165393319160162456654543319827689955193543794377781357693016010147389168306453612351517737621590423033476786799522843460178931010325708702198089228517383069596677064223895497194503174532298739403597260489425461894998976498905379784938795891955722285437619175906535119478158101631126694327321768520302090531283163594196811497595304139064460800700745476696413862281531641550232013956236562583252818683533383337470405429257552150939865462358943901655012823967404554595544647242276425793805466129858133296152627824914293676586170665289516188353939288064220826173979255397553451569897577208984923778674266121265001655376419811510771549269094205250888409986199597898158593127747907062468488182498872315749998537592090854860470298266891842920026225951295458680674777282787704176641783153275219843676090717539802488273132623862344195417437256956192997863714693490608854873469177342002323096287795241155033372803986194817359919245543931224035957607651453417024210938322432521946574537909158116909241250483577972604916502019577917879218906834852017755492788487610611164965860639454787536758825478124191369481414739349286010928052763000041516977850621840890170824439547388207625673926874412721664015629392914462642968326498767654722351323647265656565473713556559017844489950027912166995483855034633990828446738773255755317715848463149715734489571642708064419676938515694340966157920408289423884291309550902811535591457079634232555315829700313482264910262418577683465493634241774051921863410454609281458626640977059333044809104740967069648822504650442924068532802262527180615118445307130707299569295526303142242741727566903632066492814468576538538298339097198307052270239645149527234036957104953697213604232309114163721322760347400962029979115215257838489147715772508510458212485582287441415838509061963080536156896654404346042900761606925623617451909753543634309859719030831688220842889304080267458206816098887174082474689644114959233339248867486688589717063151067467678206135574323683448546563314255044876401609084577631362782982202244075650167691179775000260284502708894484937351107870478843489740281579009961561343841999522236767342241587980856350021620653772127254180343791146124656502888554492206380639920565883416629384387151356610776792532868779266086552648574039465044586898947514083953301656912067065976068270427575434315377955263268496249757640247539110157740762510087574140388136721729588353011216288885813153367592795704096593431872111250621918269263709489073887031771935530090242077775571442066205453377397656996055830536007663244346319617708613752289937807692448399606795028651156013005644000767397183710886850766535288130651891939894865077013537919305657973858172685094312328479056429490783746112255358957830109845785447357344575128896625496145364634588539240964315788328909476517926400488708473331881619580170686144367918478739519665003282318254347338061229415775424293979332192104401549243247299190510058032570964202985750881384365698176327160206573894735628707781612817282753618872788053234110508382049584363011779771410187535314912533270872502915749229217454806364428459267309243763383208518177943694584824301794018958220102956343277291063055179672096037376349198834563810151291165697580698704686130181151984807411139841871297058297588534039447025231858774991518073320745274411726136306579773216138969746343066870337363094967041722358295686763815644696962154690524976167008497082465734571134080358136054786815644796751563233029310623159225581057891491362163183357434681973047008536431362091311426538996676491524383022852469507580656396248416787824144519610460123555988549041588810787677931948083978311562651873443900772391976066740846859352481819510358009821773716883595764675870821541953379514713712891283748629963369281402965887984479229626878719722129593340166284811936581469340719506357132777543775618224902623365077874545541462143313044027124100987753771836524663790627946118871503304864294079751300395409287113002941655094592081456061285152619940739036926778131770804557504172801273117988681465454884202054172040401595742287886611332339216471352154506596141028298513172224909239298511709816785293800538874029949354322917041740065455715713334559813463439740901627649858651687609722944928918782554822544637923175145932204045615633972437698101047287598720755096179209547336323534871037325754836757349578421187360153759281990062043329804422632594887285635469538671883929049804506804918347465680431712077604441106655291901814600946028285738341729022647361785534138528088173975333380152406823740870785133377935637905025346028237190485267907850209959554618787722582656829960666028701087284929109778969243313095718889301670109542216860227206322021318116421088948275031409975690638715633306478705313716547631222351601355392292230922827451110243858188641278735102885857240149017143286009225437290371107078391499262562757153830008117136812290969260283490236677774774102918532982975176491527088270254694572754797765629080303074921344052524263113472871104778020214040178324391270052686140497220517523563180454759162028232495791035896923002205870714382616606507924558932583297225686975610265711951892100837198619828343647025303913455416151243937867922627885236204609227983670113465782590319125435784691533421968377948884901122291747372547114468369564015141122072772946419622327894278085052855561817214146379142088287179829275438759572339210707862617251855530330516599073505977289355417144759330942409026228374584189005388564231981424334676950539669330054520143465927932397637619108118019696746180834639515076826640568529604184193239248293559822868980881462912020001016490265750610272759968602128230930585159492123422407639120410926628079454006596408436073365648536820352546775097250244171344717073213595050128478176405182427152045136322560309179304596808261348087879063111350716658514343045997036225487557784656924439079917271751271548751562818099067631506225647556924723969312170509794018475721431889220811278568741628197649102766198072628418760482977949945177875524494648192976284074482371337081923396350368458538904748561788396161996033175103660426973628436785699109123140445034189496441664289243414836694036580865169645532691489454245159415601296337331327064087016989832038329712775495937121154664554822544199551032295964787988070986522518676428261219163634325521827916802671760953497769657772219064930677160650446863671768534006700169128753725267852592069018041554468594688360885509857000502326076953492567429771071360153481318698908779732873846916316652032949473945186857957975801589864697105509843082449816090859419564757100183409129954438533325434723917749451529639596474733525738884863723303079583352830472402787714870879219929930053902346870845919151640110679055815158672934800129979402287504032858610461349802516322429306138420344875192364165770323762714262781993897497859568627456417587446232590478023895629530034348971966021587394663476890155715721766925688914969172439376862893349840245334353045464742766359548797502822409173454596292809395410893268752221142445195519478081068268496634104692228905728816764208581422077030424595365150536369743158421808098128654280577424291145354757448206429269348201233992830552351782781534153545891844265306954259715929134733599168758199534275451769055485003914953249328046565247626058066295898448338577193848939160304018213270521141572344694123201105083696194589913137279924496206814537549481280649743439531374507109502492815746345205338130114990832623685941597490409305241007853043277698108818312248415827449847784697375559999784604585906833896663144022930587477882391276503993641000335924361539383547931506530242250248104121722312327031030932678362859618772498340802826464510133022767598654854266890915752816308668064653494623585240184990792088770868403470623663436596786329515928603517572839829755166452440516089974551483967323380548044878944936342887230118695423380369164664202996859891630584266679935472735175176453588451840386304354745927392412106997581211076216095616308438272367905650589139828561408438696291355296035527085660292807278164982124425742226985980461583688764698787979426352001841071567873691310805234793511743384071306329278138240760936855360316143682199170891701332421286776526713130322269221428930023533132490778935343914311989199739266180412301031437822885821704800157637453689089913257336323414858695225118588800802290710984441962296887489472614331311952235370129364818566435030169627423630349561840930179413607589390045071087309848597420405744906201298631101103140433742036867792039392686711994728249707475000713266435090664566553814723407323560799741432770605583025090529815199086539174556590629045372364193537544499184965705217692529193410911978368592287163630817319020599065926241270911459104989865902154441102667263009099524521840042133039325911262024334092559363857451981200659556957518664826721440605764215942221020309176376098927453753292248515138344209932721523533515921618402907710628125645873953385737394940637066620521225817542496539982562720682166040892180936661261595447707166586065258673153005292906770254507320076763526468030447340252964500458138289099563188758694117881781188743237198314113522859704576017202373550103097641389130281248865751856471612273643921538250830934931285119316088257696269620920476952380158284531376069039689856891279666585683555561691459626453076557296745729377905643453883144871072020021809371366929577628765029531527354785180605154422948692213614294300022706028367470371049035610082379162186706729780987080499316408672008967664606555059802859072661085238642659563669933324786703132934696193988102662325988942537426229644685193153583424780401590625323041899532674160173675719748914306270839563713983926211160713609919756936457123338849158624392128325313918312253560354717940925187366788838296755654774867443880420835895692534412602422231284376078269330330509586652313075386223229726449137112204398874240024836895263929701968439470973270157982886199884943032524281941066746168796576042274267662062128869059807556950769495359424998355171770660364084010800671862911404927419843115674811389837530957103575010634099092993982269068835932723419125755815144005007670260752374173646209613314958618640259520064614432945033374306224767207469158347688800905301491361954468304319356322046404175856911198540681769524349007454832472183290339622108694497960108888949529072469497149505040736118084537983780507750652067990440533601392935428846439899260691907582002037673923769508677287678639470778533246287127172432240396559858276508739535202197750813771297192833481557413157601206295779059757639097750503078391783574984976785381232414531835275756778121289390215207802014177170886416308632658476617727721653346366085532772979573081937197258363321243756061912252101056320704576512683185638559372749052648629751148582599542797352580271004905071073195666896870975119989304250776245510956910372453015903996655511598947029271040614312469954231629583026410980093918261938235405560440045047700659456455569086921632352367544137328774065690531399532535982430288088878363465585177893131149236010333209220773914190015315124293308142372548724330676846047287844282263313876549170195372484294450853778284216525241425803535343384340787871953918100067697912101278209753874438457992236562104341772472594060414973335872225066336826425772452380506120400363884682839512795848664661495998227326162837274916417575556228970714690055721589753329696895390178394680218711388464798954503905408695753327118357183742003064351745505835159499731880184531804881560239472910434617646180668355005969585807856909692612852778391679831666515421326879799561070430601107507193303023073528606186975633636306794446186695051191972312098197580368757604535624419736104559656778838472532540351949825832771457465431263614401658256845045301063841616995402342733659793488614519641173135368664567340794774901249428438540102442508044745035812002149894767042465237032149665224500686891711857297321875758426979019821958545351963295717866389605181472328698788298091803974859815811549391811452670538176439096502037302526371347693151258271775962657100045637244672905719442146427658738623829109452330386049036695818809098538590409776389321042834168086584142940740737575441367629787269381553336189928528722729394426457030976617474994277706805882470280555596343899711975953462701939050244103173495114893933639666986604973296339991443740398911388816785602736057882678222982873684250610849286453533354558557814580070935404331653432451410216574152551956923770256852998239852409545737486920691452515785003798703487222995064821568721671737492299069183409086414752707193116338563346575860461677076708617739699910139548166085371406943281784830580965541617094293621482035453993217414833244428465874658042352545387147589899232933188186062359443559974512644686157793252919494397938950372517471409516712583471710421523873458881855475748127129708570353473780870396787139644350593289837092204185665862308633086819598600050266260388954468130350082873284451036938394592977516592173503591574954654625515088772081003082817104327685281549327908503576081576028856841228308663850023936994998901960657768977998308967832717753112807437912038774103735745957497176436487135759609744644810102711190889129695281463980062752633943251914886965739005137628219408909885049780089334385431517833835474814841911482882380630953059488771767494592043553593119219915795215779568461630909832167806930718502827715077411446647254660133347214000408048188481604199055065936561707811718110676242788624112752450165740354106509107289578270752924955045107931029928684227617167666800660702105114489908880049983757170471089237724905925491649066624779915208988921179655574513866378019433034361217139413098002111725385571591755431860389038119973467760275236781530855889830206645592357664792662793941108690305690050949937154234438772260334921022358132902816825777640716731630377722395457790910698247055258168427008914796743928389119527543908978947717613602645195532789757557508202412793878110072797221175922368952950171243901523640023160442524980761868907862371364094877622637055028835336963859500688638391380900608901073350667961950461744741794191473210150455021062871661534700347673656354675571322318667066150064859393037774559799747262407383216846276070594948859113850492414255997833338303024397796081849040892142221344891800186353091978587923183895679968116850146646781219871354393360348138228049397113275606149460560838247659912113382373603340677064686263690240620155767921209610225509334096084055146819455606986575843181489547552890635922089035944092665725995774783702081866034878948272215684497551447976171528762054267186154309404873195195914936888176618157312638386251214774133390879550685077705869191950218697578693862260912866227997242894327080822524962121164281738054392996354020048877137447790541580309193314504152801928680197276216475813474711160580945729279546605068347016036263625256092650176833728435138458825807000193681808413717824931974797208821631499787705271440904012340022055540451861732334912760018019339589476244595304743810937435688087654063118120871784558202290886430897746617847684432951281562544044755000595202510407010855371468939202676554187095128700893670175261078264897192683416218223373609794031625268857756033012177759374348049901942025054425573082899507776697735076815761121713619862032742760412382308897510975557154950376586037023414886701267783521919933107556939913315101013053705990132602090917208708951828909200199707439610015227014313426494120616940333498886694268939046465722875947260018807338288724806636032756409330692535201305936663426654871892197050474397989655117021331307346651113879302731858604132219805697798589238281785964057943285417380250315916322390532002613450455791820586871385958781144817018837700337906846720644266518226196206510596654551129366882233954907455168196831632825336153969865023782651302014818926433691624139952599620504869367649998994386665365692246345325959780043302488076098919613542815778371751763678298436340777441632215305019922920656651945529206759599738420722326796422129757804381118999363358490498374122523115415250387243104398455552793829187741098751812914035001975774256094853847395924393584491036176652593144563431506103772414859210179668351678901034070520516302573349449227097901825022029054446068463577618835690297981972656703217926930799162420293933933476358031167831631832245817708070290165610901223693199523881528019635437942690637808918959289358770638981718281593751672087857551850976989258698304402826069568901358211197329559452624304791419932843274984092214528569277070703881048429162797395575397158924949974540866462550404069909057767997325772872527746375898928406882829457450797422773367248287245973727465199998783598980901879165768712402008419711921362125605418532508220370443502300100043084602497622298309285505624180151211030821308734434458064621758205466069559890444981332732051935390628938935394106775628353861942945175534373368020649003998274624774280824069428102024867821352815504331222575788063128588027600501828698228319430443760295349293326596161499435547262665809289441075991820280375480629816360290431742130310932490246757401272757677508637531505548902949760087510000398403811243566195694218090212006224437857622424865563707989237287015223644717625533160298855070806415526134220354329003292636071798013181415649267823893860633944606239074433103138433192358449351189800164177358917803546243153314998882995830618223415314682015632951633423696543330201370205563304746418411452873572084143112144195212759969142099352110162698874300633592154052514032022539954218367182943588533666707680609419633916441142506761433356704314069842378640776110583382552643173523093074963176157931472414458683462664139399891205983038071240332785638471042530864603172915980587186928734523059298496860026002714409690950060086088071449860202208078770182353428054298455744093430859899579961838502276910479342013448838203394769478506030761905396344826467027894385872521347240709290318515836416383359823049133389638709222222569793434323430879590067146175670998540274603309653315850470425057901019538887186587342057203258976158272859699630710554179767518537869469873447154406298442637226991904740148448773526095554150730131415215454920536755569777655948060376988701724425787781321600204767571948578556525933021852799351116890882718487089034825838959314290957218069377293481890127758913074390340382237912659106939295746392034238794849342378203862926267571759132220265758191206394705246360480373381210158750387322142663595272006777847446501378925068721915914391986156240553233185711693701452716818681605699095794033314116524462663567601761865072419504684886757551226883644420358741801803344611725369475393178804111641022186767455997652936796323030962998227202496515414328102318819202540280834447408644185472610351924042588483594700635332756641611295648290765623482054505077350523241492252242701230799821917123333897060701260098897237017733573602212625786462102913385103502497150745579260753629867299372738040080119846396247371551017571966074453714419557357469443447309737082462516920340868780510303542020237534947116171146914088367152691544428289902148444505816505178297058703685285668470933894002387826964728985126566472520226459437179382993364422033685145791944034569500218309337659219493984160948695501482955868206762032718667857964239732781154658985574999888169238195431015379143528420101193816100308355704492680891194863479476417556507636741806772980658097222409819372745941254078792794850457382914775068056726095916271059915912799878813771670657727856501129475919080257415146431039256584885063014284491881041541444944361220832154647843758013806605182292547294837041772152453515915888801789729223949581688689991309341653539113435881082760691770228938037191517354431663876421662151802226865346600556766246003798387899825014687009465027300185340821389549991063261880442511049634979795088026566838312089925096767789560942539455003557648401638224915077943729680379160627171335924938871422453957289214289741426523064846061485671726592298104346176579536717199036989548821426086325728242021675737169780913672852354336022459019894563490154785355150475336143395750786563585673832549027506421312249329384244641906889503976207808614499641082426635174216672587692814498216202167801751357320643262733293711406288439625352838468394451709721467368988342418242135775826005445401310960773824723357598014522931845060328683079121163224619872332811490502355284006384770694208702901492762208252505175547615614697956568555959253996075789182028770441021995758787350179030684350100590006296118890298813572794016206250971510389244822399648834159866358503986326935224475163019178929887997474777411441162976125763182797419284065538619781528539617067143908924755914236630387672614766848126226213618804373391110798062822805397909607533173771165602289605088383121401910664552733406030000392784808719545073620082312159323503265324380997642949763907261965257971724960830294269217525878377451331271268890157844742344426148969442354655736195362021808622356829511235030746803556658041998302892877282160389593123158496200064442893820464010368584984487225314057833046831623467483132473073733486455925079846737151829270412467763167076925439643868359785769126657552179850910475252840488118745038725580001888013921499095864942449661274551426271961608975537677276197746649903832785488788280660061662923893437080552385100659972246735143530708078391360814471427147930352087856789686480780778829178650617452433392475639255862593721627755310152334564052407484429915669795905298931372051942213729511666358209566192567333637142465371134458959024102357043432575829496285117862037266220740269851199258607508719266819319436643309934622215083742998829568930101229618508510736335010554510875421658588993912401718698262082406754790256442281274367617648489710204262612022489088814134944497091838949445346866019417217845672203276740851768113836160509817903250363580705381987426521374134652421000815608477930077106312475172505137694734272402581411060976189007933980897015983749076993229193377109329425039821380760914849224477560262570694436975384015890847000346219521749378962220586857411211181729769595644079119467100217887875596774334278929129510268782826581335008989401875594703179146466314849707745049875432099571151395389234209442091972362391960392868282278314263482042237933864677951046973197888784228514194728075581003758482206687089219914348653100133292223495704595957109368996532116143173621128156084125958534431783792201507912517518240626162068257911007597181087015371933111093437348963041777095341129182510943381599103952377679537955852057507805467136969685438721868233973457990901462298923804443527651685453987404418346636554181511146108595732284686748116466299461528445593046334236957048136576508321047764202617888942173198676030184067101367823548224558936696377768662825029690458413038047212827933430066943195589233536680180590216423452181734152502961565244280971671801168207336642258913762188349709787201133699537785253033649675322922606363432516593594005869423995234271893396920136369783390931292099512839961632516280149552739226294864730183293649899039930204297061513382893046637470526087525665934525455072335954617859442269171135449790754601644269766690076084593830863144312649413337246531303587524961458949306020250731066972046885628461389236489329362889201662926674920094321723926956528102164327095302131695091653387669163290287402868664907020660273606271655757963756529347957893638113981941994382735069827181169602625837987355595760071268103355628373977118854360261855946632538482666285095629762269633424963835345587111131076971040998102551188461169807516749402126360389859333536896428958043859015151937002442117891590446584689115119585288365474172763146497242527647965679439624602499707530577266169629182704120080850285635293191540893277428500541728273106213384624459222506476508190735075355087963735133106662051166614540050192056678550168372812927159498172787725137963966219558551321585599169586165048175595825637709027469225337198878374451708955565565060182172963296851878482107342453458957599335969419562832300036755979406803234300062323399405671201701519391741171117706313317659949962143069227716821651564766361781295363886335784274851774758341647665636478555152381416718673098439601446171566173731577125852722842989386218579563669456311204832177120338351405541929657280509558575848516486052553864548710930912954420222376108177431684990186294301353143677237589638298815228347886563590660026514763603163001558943968073930932352581061418884776766869429495785345124838111263293121867029133400082395458542223456315753424176170513551666144557660980782036631061988983561281225126651156270987103409543443843744219905760472807640067351614951318781085429973089876913047478123417809135108405503466014441158351096255282941559873787665966396847619083587427504385601034604853260476908668942872570999408379244366209502094854987402232738960880522811319920536417259928334881672572000540241762329504017818618403599078367232006858951190920501602775655989860862390077241423549925629628925080204576981701120143792104796802906629100993835340675881780759677943271250187368642858728735478687800105905299776802179394047438526555407082833109941494114231423721038974393156698849915091426757251092223476153798764458409686687828883198053955365190534135934223146308848144984862438445155675569958634101031244292444552709856687186785432620483621814286885296892466102417183045789044300133285359984353443329480060092954697023325954124837275331544554930369981387977791354338393236373672522553391995344668380229916504259031969061544807344259935838328342058246752452149521298936428463969090340153504297503903910499273742046147272047601805993623774009351580377917291186957885520247333504644944154643676356206002650112834815403099586836345932722526734691355118668236765184703617261131537608541036322449875988156563329069277827592007369091479111828059558506622334731831836501225410297392119472725401709136798824607710823632727388539108177558826100688994056659303109646732590333435124094252561103087083275968492557235752730345471263007297518484886652877832393596787096832111259365490282210049903981307663246672356264630579680719359416717334352856386496975675795235807718070769114760848853050392818620147799451743895714038655340294379608632518857694919840222948206347819521380981341080460864636224732057922430001061618994280009722423177911465069138955881193067782633401941719218891409338078011827411115129017756315777511348624975361289053083433384636360508487931128682886742175601772407205852579372502574513954139075940708100109396763350558696667663955128758358383840847871991888588934625418478256150573941881098079789558899083618356571065867021945948674675326897745496630371242317933612613793339589006336402626321199013223286065506772748018872033803197316776688742534072385282722171141009333090117922435403421044106899032129847320352252391005290844136176022777332659429054472380380681477390320446598720696284702049278303642539012037642150936929697842225342977043347020621204982473184169653233998413289819903092028991927557642169740723626629684016949394483101083897476756570927383146769799312556064920770868672841650886131190810443330116271534916129977549269772371348542278927475825383536521125970314056207088284828152285553654102931513472527179283242167730014031468126333214716627332703171478771175241375603712150596380626547683604704365487225625488962753247063337326913279481884776286502733659542113918329468426964223224923137404492774341006481131096753083830372624338843652226795523702696567142045041514268681525326870790180576258471055798714201867456527620966013780861263331881324989158650462734559952970160038261808407459452077912093723875669200818017795697940984766737281876414468027532902798451916123573184848188425129329475330049743399615365392077222022095369817041844190059964621255257443385690015135169098282656559929957506993903156024329352761309692183384957155320785637237180253211593409890249517907734867042763645224359684759269290585428750624377327283228098444241518988063169867384252131737479738974895116993323889647110302040505221598522693829161580511871813346684186958838312909271083911423859967578474487625992279850873732410411479553799251734501054767946338271774732686255467744519202924341210486372981630527476296527556106621032620957768957106568227258295543178709047123150267653058781361672806518153544884745406451561685069217662973489905221982134282207191182796551841929363604604052769304113311770987883323313340385573027773870995587581523101692223736921935236136606675501762741206556203027014301676150280546024702371679437319782332302086066237676255751800257770470293682990600621965225126584150523043925866417060155683675850427534094170437852353649899703508490444247487993960198743256049925993828266624407193071274274257926286562932756799390969391757238074381924608728510971423260851261726890866536594118424595740534767047229226966682421178823483218438882490567475316881949797625234625712185106655119016086625388223212772428764361447090070577284606448771761001633508218415820145084836875388013219569664401952145873752916318257640357550751850055770768723277411677861369581871240806510202203031726253087367992152333382247426702460255160139683094131994788203895658838857589646845119332048342645847803431353796270600985137158552853595562463384107334155529299576963709786204984883626319056050562110221305435608175999554379779157215259704518700763411453857260569351759186774841424001391977141513188624908308620055765322333454090628430865589163901041071883423954673709808279543993715404255385952799255913625734793555703744699503619472597340193737416275789870232027061095408141280290674328846844145516995552037158380980881240700270732564343074517735627783208813090504315083839255045860378157231004661711080021106232187332107793170289121262371889529319029819746740314291739643378646839879971563029960086964809214472634028892946372870210347491141848005299977927517490890884486124605288946336208561962452390983312982880465743053577264569039495488675238291571255312617963096165405709341561636287468246714861641796304701241450847734411162840697481817744660360985781480584898885065182895783584960871728328504904383331851713027568217769389298904745308005213876792984873167012044199444010137501730668596027271566637195617183534121372689955780911423072691123199011775794002603635441746761309428199335921946565642257985382505592577185874230210664351855453116975820502969085467674671940756999281348709895147102793166130450682151130390099275090066222878666116454206184604007374378224085611235086531509172412908539587689951870293304615933436157752859906147641869359665249416475757273387979375662023884172029385005463557793731029951970996530848774410025565161747936928946040004531493161930531259591035954996642475992309517744613508650455057483187957131338855158069563071245346898009354125233378914821978215205343897613449741427798619362198671993610165234758199870708711343181780206535482523129956570427514654788503861758856355667425412630479262285014898004864707963600649635643428675573262033798153403334754791034142044291829672657063140753040841449744965784532482553206101040246745156793377773470850394741608933282766903766396186140551235439051425730566497826102385803196701576607365772243674231102026194696085743436088352990472417176886334742840884692599456982455210395354773376304867058999063146948832135115242841078591970225127442281618430084256189157751848042513409453097163819424515776410695074308521661764159162285776298938867222952347777633079857848899570731934479374174471668049848849169876002804965316833486636666723308245363168202242416603982337891971561110878405394544754075845192025945695547491712987385909766802527625230339703915047932674881976508405409027743087181442304168925836012747519515682435829963775840267650918183037437002581435428874235320597910016553655170935020256202290854261929744195485229902001802224162305561915696415448723084964723822371270167608970159998565357253137434373959590584404743674180283767854288973812395075039851434644142732349019949738639908377783118154881589452265705804190880634198706022502844707386452291607457056045374736915881403103008430811872518552472906482215055672772349725138262372130581174734645638074578050244829416536432806730044695646355843661232109648245033036377689268008882073945837147060103250581394802982017725342781492873986592594394187206038705473099098194398791424491266056629589425316696011463858583776666191206360048010186535091245937153706854459216958011976953128524029590510449355028355246474585075331499465655184179497671287820685340349539919523872698464971842342730104131199306453808408105351125659098585778745817072710640222112568131804323277633732646074542467349763316938227105993156493487721856528312663205782087308619757549007870543648414075572184609695865433889564427463481271594090912615224492551559503686595117285488115663465874670770109896685356850395442958231099493596657247354793424088582529044513220237892389830576056135696513849343941727224541320889447188186456164097638205615885863701551775570148375803146597328813712180969493787860056832952681891818082909133943617169039198230307971889456711216425173696104631904145629751272920830427736096703359853293614392478543951711819961459770645180184711154537959940665318589601059666330297630012754483588816631484087032164079836874130663236800585364542413720363799959983496747070288519836749503989230673044299931951926008522267663977267182976857154890938708939178738990864344845436945132015512352037377895811251674208971767083720313350041775827413611433627515266555046466286296888542216843439873621154547976443964647311823125439735126895823184697720795890264084889108155785958395341261786097572613479574446745832508581248048424776090775575503759147798426989072372836286744735432133382795276068116380812692035844082797676587256374716690269055472926879538948544474317485485802725875624430537779437995760444251155328403157837233977569839028449511932164486487539477596478015392239628650466044979647510140635565218705631777454972790132738997417592273826259539652032093881007905212922093560203341610267688856802445434336763656495292544835946637037681492717071053930064449788013563358946272511862478454692738744304164100376860354117272238169774125844320437965698040008219240178017186674790560543319076245178912888545314636986886035946680296153609835294626718007919553295244716430085026977332270513143262769697092328603042006054745798878313172535654035868494154658630134108408827492464414036378810184369911495242321414525735660502405767611059251528318798622037128808692879724310484966854001232818685342250096815977568828253518248987362340661253070034099148611778494229333027753602532373788721798655011851711193786263513843440570758902061755351700026983852535899874518399593181597653624774221484005087989389063515077142230071039398173127467381116130314296334464436277802225656348407053768615175461908530474633669279458384140782762396983513762560139677325872865919598279904009345491484956572662649971028231120242101674828417056522633719693360436064940545089278462623584541833732561048725639686343078502224553121847702153255896663116297659457039415514875102228696688378732385748198346946577671449663623103638182780233283381565903914148581395957715615080831430420646628603566517041499530305338729955505069882223194580632460332311777727037992241849231318436622759606125574460590021979566335115821035856016924861965676968614183759609965851573419455250884832370212596254127975171832779317569777931416641848534001292325343362065978699950667660847928782213460919128165763231026025392399063751791525143015755398526999024902556632419572487379072071398367738726790913829041062976497067432351708375688534799204190020980322730429678332349415646004819194007157612139283768606384115118599483660029237927357288684944697630003472950667958153189221951237911717595136343937552884309913638968679787337849747634947568570229871309902435437086464888010116682556098253868897885369694856222316395232151210878082690821207623534489737919129856946858933341845360340116557097303853691997186511011256523866687297877381464070269024767274597731304375144583909472245528779412319106953251541231120313586592507867008613347413044947064556146773087865340268868306820084103040444662880989445884462633951000600192194231441721836924977259885970001613241022911743070013765531363905031840305916718145093871792279637432892329423049101386419479701106000483313039914886809364502600893365580152762240738689808169995549417831141889744535797322226780719508791791753465947458257516059781126384216589327459212931224450510876434389116833213652552374350800019195439225182617474719371318075397802287243026093155267633230424896218074048558523817249198907534015698272984345430761562407014846993053723424500209877553243000229714823600182229716773837939598220978084702723795375289210108292807116420944044821616111191884982512194133064216280622622473543012188309888254966931912915727608479803108335611612679316144396876353571523394249129266175269032849009304492438795433191478750790931350780382406278127622628373321073429076570622339432564623287178280294621330635773045025087777178280784541366809368790104546222984290220450359454712596183187184140108324928010456826720873685766626714071391956211196828284267057891853218201966254962008578249865169436666345533367668844251067913542915692315113631236962893694952047303617226891793213288987324407635213435753034305934626717370131918067837682878825053528937142624013648972313064385933057585587031245573013713559390004000899517872450678489347770420776546068226544200381840925066414682237267743342054982971016350974796999021616694218890764221462272323043665524314777176979182784675507318545481650080699187536477433565889266057469208740503041157552053718168489149648566184413287453586757702005542758223460943646134667777317893607329635014338871725625422458062887834994346360769762337010281950306439113839548816726308866290926656972910869821664002866102771307732001265466989493853425357238659200591018242842153231428085623052568956015238790580542325053153222937916301803692062462949914577782808670123305488384795176795303975575662583887490667929399343729461164826663882857042147804650117638453429327787439122232951954948654505314840543234596027976726737712197984611825961357529221328987585752345601273328761238502620012937688905789286317334345516046764881630720912040842756393114295095920548352196572782897638167022354736060817194787911241550338645824141233276828240344835379113388405817322942459042997649655748299555941239043999874495681545690801337250821681981801058556532654980092456827217426925620770370714449276829553605180092717469194806270080563606895563606811305168031567838791424224037151104360520178118896076325224023122523429808408893419906393351145461367497060279663661915059163437148750689939127459717377337350402440276335722065315250591082076229805319201355486171663284279108298501783299147258443242341523643290465997263209766660580372227414906341066909575288066815960878865478729239958761410978699722221782709197597892771177226717155583300451057026087441493879544710207433787894007021194211120739113551095670332866350045602517436942660438587167239635655527615682625243620304862877272112863568801359991428669499232397418483206706025029367308841252021008592673385377346898545591825251213154844726004507957324027263550434938282272288558829865463941473307131508249689858862572676897388627503651379911010949695698832603007066067845254915477575615110391551888209823761435237486633450009751881656692634746115324806643315681000734964487610330037889170996015943496754327320691520276766559705127254806365303834709260773188929714821538478707883857146663438035838034539910018453541319326247640570219820476676535888380324271829863949627514080343783022668079551127188774930869953038507547053749788659062768713791855494128438577913303111024108976062667682957652267851949950723657689042045247195789396455578051141818281200433575652361246104213835057573156315387993485682586292396619133623868771908624226330251039925515726749983773597088466810375548424173463549680295258917037332012098618485463292427110045603413629082993760065249381083497331266926410088608257020107972997150476288788749364047011664386218852950613779546482234552683453706887914599049244499367888089003269376709521032604623797195841222621721717437276314613109934846783851003642467574620989237974959702417584864429166606858532017415502617158853172708546478346427938249072250758193284999904492017219961135958643022652644647144238432990403689938464602734758607234592822239366699166853503208501082731051755377569089284499166176732795308361336577885407734512679067109130479721356870540824162549460764028674542148631398566082208644232878823554706836781450433645787045187042889171441302386864916646315503803621071239514986976283964713222675233387684965108354553280626097063664298001165395013358066486198137285038960312305804129091581864642380180725466005189973753127306830840185344705513457672215491728209221201664410989616986960430928330360297207802391711740292985729421085437218098355147598992203354170963460580311131381949018605971903683932087923844019128735284641465077114740487038837606656129199521372402594782130634104950525972470419533618423398371933881641213481281440334241993119470510812844370779015531050707727979496610275650693585159180468133350721134176299752376732938757456061602501027948671178100807005264189717874291011404887835669663820627001129173382936811504710428915489134365819986102630993512850985253923018664571930174789604881742132614323803787089710487631500974481448683820894124368414959929196905802837379741876549315224057922286822367456374786125856740833150240506294871628988272672372974725412547163831632683505695159047136885407696940963920474611914842224943632452680924719421019175797086657492300400989963014771081767195673187788849865103614452764800886877911598949245552714403643333133985782995060859378055722022299077846314204484284586872615057366991345238752973600023033497320972253040552410481628676411177152464492950578753799826934789189632766089283848704023620238606958104567048105038479157204694852092399775221148304364252193729753671933922147702041701214176616351840610194451082362487626224721736770314801404001627806873108231908757116888636641494059403964484780622029332292692909334885733800436125180561849857342182785444898140499428061311399495539122361227323434548979608230915002537472425458339905759761742099421293195749498091499604191166594192233300096285444839180650538602842308734347713328482455605692012505562676930802240776163634101450154725124195480939259473976769892945507404282307485238841667099744413470620849017551647298801053840941460185737700951981242858333076084684736957859506503824070752527473951374316252454426909903350437095137163388775404480097456708678050770159161385895139378613922106467841382857894200730657153879740070257063440734691639413662753604529212747727762971713180290496331805724776167283281994334534954224768676343892804000833333155277885811059924418866860490977847604259869322380546853362878583554412859037718286354056268193092168886523498855954111203333905607247367289901337729561327653512990322082009536882018533905729483798301604269276565290918684296158686781817405522118883804894974338841048871675345591563780027562060230911968948635632851796841980573372788112507187267435402805506688609681634856911548454960515392116836089798926916929251347310194969982596644212255822940952081845393668620048955322169792289834046377225071778228421326505859553307982486139404083311323500200596601554502754839914444169287710841147252237642647397285928533931595641435669686946413191465833278478739300730938446113491629183857965126175440928231448038608321616367578151523504767691892231784648263186040900313923017255506067730213555580950628407559630629783831858276852828065698430526040391834141213386786566904038731097238305927676376224604098594926575016231587123376361534868246270588637048671746750541635377203739631271870345465649978475524718885737501618360789183741378691909104078132822378552865549037505547071622299444361720045841185541179134845903780250038894690533600334301631888411467283132130040929122038107009649334168355283559720997805881777372677188935471567249665822318297655815717540148175228739490533172860705811270795339583162038772230869386119889048554640947174344916162306136633629496593609404368073130957276663695589118483997364806766814916970647538973828831036363005063197793969505853150853749196833792898216120150129312956122552265498106247503882758542746671907673907234119198131060869595790429589109684631001539653955086261230689402925699782777176117078361729485221598481536075307423165500060446217428431118732112070352210739113606387008225633009961568101279182365934831304425040303306648202940941517063686321339050689080079702189416306978922479625753016389955465746247692747851171895262078331345801511787890502471475670611221014672168448613332158344005076332464936527583955338642833169937927178069519269432730850235754536638182042015516319004003976206882689495938573572649177405621372433736626977500731381709718848471988070137240827143445062593849691896727361384334428860053270025797451164421986568884843036636769325170739865188098490347938472382355976116194013391184964731038139078407420440317101664068479343977965846933323446869201789601746293705494557361483191651062931379298126726495510204332309394408457610097935270972498405556509882567016800267938226514098388399909610815616053155890986045135619487526908686649661437382812096964758526935510217278406093832915567302293010518247801638546368467756862446990233786332712767840279289264229188631137687159335255644915118760606397389737756760684582193061103504830818890460633689559753551713689255107083688278573991738360468396389071377506343829841919403977829796580130272965660941954579753532516964074975112764722692854789665976361611200389295472795434402065195032699321891757835678955236234163365678513093374295374663864623979164883948931094867720743825918430431822170935959041699236812330136532958926218526924596159119216294479433015813151347020912294488670663884551030763733070224375864453051984293223700323641033561141366142915101485000012960014296944617943602460504584376168037222508871210421814811792346569048759935415906168325120522065181846457475830398958722354566241706954897817561573684091320459098363230893758800329400208245866652654167796485598529317371988164670597170675597682938831846831927061422714192904274997043944788576686805052132568953341366204959012286279735718856133406866958790111142935365149021100104231826383267057243270617486871266598061388940599901006622858292652304101859515819979619654848761593316274929977881604536226293233040170078071886987530504165229487569565286579611164959506900898149521032086809888296381113600922960556667795890548920325796043413979263906783196726163483075275607229272427154106381026841887066848866113373310591991435954190398640767305355332856381679098689135157013284954456383789097026198097164708967888279268315452209123659527192115518753928760589345906764397209771520456489066546204659096797377198299460349250876250587781262866828600142984973490309725839662762058529054423497424436961917595987903102116606345630357596329248387981328717107617102557771741404478062097881071064688876683466755466736809611570486884584859354751283812644429660884726833794506073735310246010349323739749508448280544812041641912346050025182491269423333807863780887454342521737081536589368648955764959242558915300208911872109428477469305381156542411802155841882575715992308118349718625315353909711248335692084116568037038612079702120695709264339393646470779078771283219297878358764082449888703961750032899823184003951494874788689764241035332310364211742373455335724967267892019008229648835745739943806793116191900155412184905114844312506426211288328635058517489297676137643260073073706255505584924094148203861190177871650034779505504545863647339953289213540098179048938288084514513386914395580805921474452045985096314486151255590654714280839580673623468676729111745039907586207848825404803171486204613963600755512599670240821563811039689208828062598883697849056332107574671230221334720825950605621775266266312878590575440234556468037694643659092032533994519971947473437510040338345543479852953199605310684294332207994679885805964936687898943384885376097664239981050433131327135128905751395140889687402647808445322035920046836615254216960361105820680424034595379133294864151235125477614319413368925363024999310723768334442211743905206266080537794904513431467957531284093748144820030107506239143012186004532476193418998124095771505103181757184304429040385107069084256620314598325687949931771798165526778177631394303329809099029645980631289298631169440347504668745457590253968300946522880887061098002913165008819437252565327157421951448585161069040698475269585014126907477108830013023034488185683264039374035353173016346356972480978318759613964849976047518198384474375701200181807810813311843005988474524086501002014922457272485756020528877591241465660018776894655742779037414494675059619513637419065685463959738167244058100345784426199130836032702167838909564860745538253798613895972402438308064747558497750441221809860410586703818129190743072376866986458098388542563738843390098949702502003879905711695327435498085496138226889939004577294493862397775279711741296393771086110177225230882173805438911651606754349503345230064762438695548643397413716876529665303059779378713323159160469519046017123179432711977051675663972084807379573664177224216267504556861560524863653400197651745640325856774878718618767284562114466933469310465334580563158072703225783875893837904231177976428394372688030878307642728046280883019799361356948994174497631044176314737737276753418707212448885525812251559647403576031879142876685871526192862427899746207216311823973898697489694892297797870327767707384203686612438029438525891314769099434655603625512132180455832937529300367379206940790470808640273849895453666105100290337221339076054509428780623239448896852435156809216736723865497954416198182763406226702724465625347403195139097922662120791327502178056327576683698954792108466907126062868877871088192155715706283150576558363215044327821715509005340615279908572524121603230041073448539238291745180103223260366387168802077384395429275428976780735585718266215765550250680885057678756913117143074610793875689393928558359785573569132434139028816244062668403287090761637083280488466550159303851167466791052015765124711521873514603875003290575901203955132263272558485816739769012339698691334312978650034619295278115977643204731691375297170980222383888372310024929944485295791944144618653926949521798020101834891823592079881030007293497791171481124801377166524680174315880164279051751609501515935354378095202387757250898785227323210260915097220214215443508796969762704411146383167036147631297753415357396799294436935907875691961113875970273430776616115493096586830466902279191972545493968206508567119619203945267762908568649570237084277465601140835376344123913586524779597362833614775569118193789955879739704819432341319056606379138260937905942335736056303229883413842571859053936670925681923180135426028639972983005057317324102865349220708663695378720617326602517363931862714224403551318042274456159465643204670976271085091697607677654214986820229974062326600492559875169472905103552176151208623202729630442023723378249195603975770817768139816808690240559709987798602606217935572019647100265093685473221999153140971827828010323298857744525201831048794398193913321640245383514855220186654668412882828435850296847907298297676959408151181319804961571424428228670048204654813996311816045570191572382468275537851073543871275962417909837310461422144733865810041288622533923517048729412515470017425154893740690988908955727218827914220866510143221594782650776047898911909766083374369212350400476111023801308517062982588091585059931829340928127000907299520299867194932836395426159047550789265247192479604491442488321152957910690121241020487107053098609725417922000843976404931587572535147045762663922711834053927958067809913034762307078881927459919035525719095597638109387939665078298443231123800856167966644865833847070090153997747238934710886088400730702872652066401996684390201207538526817728205137146482729603519439257114232971904042056369712755129775800953848365655966924436537154972293209651290510629511034644370224829356950297240536439603770034200263692469464388552922413287342386629449055499258626884467029459930778263167179923851547777408764563056583443058049365043044087206007573742632862157134313070092764119154161061015101369905869755912742648408271240108803577497582810416572976648691373984593247644863016238581969642929143562028677544021494546861583867523010049544516564157990959173226193673215623286173348014215005633069445061596743913605290420261730601985881136457968512713392039422606151789740680575553396692717887212839290049070020478116159418470968861225610393878791791098384204406913541651044460294064511846203743942643690031895541993991949559276573698449516292424670104129806826531731007722313483355715502269110092123396851456636848678913312027596593265469137058656977053721346128600177948520520666676742448049423736677153141750415737504404069744208915257372161920671533779155087590092116186918685690461771492917550493017762287228699528169323879630070829646055887928287637825878682172608058095978331951874769400034000276712588099254976741656309320585609282478195104600608136540424232701700403769530188972194500920830336340752991064514493952685327640102804114871351544456764672671391633428870256894307504434236290722784403607832065954783861058147770582155971908901313259780260347277361579176598047697321657775292576377886664388301356834517000695221067931790051326690369251584604703341458908773958211003443654017592534868671748163482119805188604203438260168567912557589571508971234679725425575852889656672912984134345890450478675732316113064565775851661604506867518033395791317097776960625877287387600659197272972736451828995622583455484742978285839501839665563221433683087654611506058538873419031668297453921067761781999489970601543396922745206410146537019798110527839389925474006486311466207340421123984488379310790058609642243026706179586805406606078990957400115994448465349822727362706070691630931379541925354083428276092878069403280913576185328796808819991005942612312948357219160326125844461427211119346298277228982007947278703725593023167493575259033413757817375740112213910968640092000948615471645043165107187635449733643528105352138282597064318517535249423007894481975327120537353466898208705699550222868344051274665048949407837543634931624244228433173873792410601287068728265929963014129011151912832570536379461231905633800676245241292734892663572601873271278182123816137154372520105025171352118296735678561343447292192771455743179371378805031635179841659172108582794165170235715209490978668011998982282755123955297476124166197244416290033013492052212330132259332635880790097427572735300223596648527306943315728365164907258408813986924487921863902532288823011768179096192397282013121461121956176311823883420965234104409993784393161724141689081207302457075197944371598050169718528193826622814899165747247007550486859552613193455331850558679056204639520752776410839449900668337836724957703478710393238648382201108293789805469892207478614027837275213861929992879307191812437468528758045101266353303733735787533299714072231196696070484673606709107854772889062152847477549920797316525869653672704550943431885465985512115048862092528131878076834170611521802339098514342609118947270651880588897925535780199544206636173454345537902433315049345106626118858048819601867026745076604530931820851302412844189167336207377387783105731623283003400375904614333441046416723351538008401340917734871085351372858835671917549806373312459806840085923003316619499644881568222460509657142357702246904620077395033586924241394625148247684430939068427884887465938210599257085402347506248395448597727193933213289429693503822624974263508032860102424124193782015247920270580438482979996806003805102095352013329504705472341393258480650410829265599715763984933803239143560074756744566282104952799884185387175798886809867700818374039098685459546723239573364306889932295188026197465640028726236127477928751285940186915682053282353423057041332435419811660262583280210462511680643899553103650130253371297856923992270860832190179091694327124368778161712052975539817293451330333206244665507700396327885533456939772080103810906985026297964364457077720745184728423608612221816164122377905325874703425101714263994397161817554466023737727917848517273276119110417252586314679609303541539889488704637357947609188876878873340553541596654100559897146496337644200073313416292331853156771299292668863174495271381773239221650339702106957334239487040366792682661811302447831943069251878745945567759072210316318893438355591727911233855150486365724527578893242172200325682912399138176400798930486427971368414301322592281254022466659339159921113053660193293243282206172633286436806940590267228581462959278078140547735374044830838995785160523741156699758934773090418128341692763543354327070590902830945765249180261929730512398605613165971269412296494079389124810966806912902340958166388069608507155427234184715897601798042576660955320308143437889011878794705061259313786574120118745593343093696480546032145763441898769725197664459606091227487353586403568335392451613041959591483385056810446528237216075630118748645407168604515816027306831452375194695448564226733750933333800839805386663707758128890542556647884180060212041075008452894541597878855419952840999321524807058627435248929991543846864622086755006865117516404477800936394763280879904117580607579474049851326642383048497737779423208796607092336593589458413231298907545535197790411525095247797694740625571303941277865505377173038224288159830970447204967426069458337034410715731749491500158474773344335298425859828180845225387075120064692378912063641944855848268982937797472556774028444922543277628900880841488052605689483494563040891105232970869477542190232083700139173495873687910391166954628544818711034132592539295474882280931523821079183937331838501792563116014952705557582437970728808812449724918776471561862155259696464263170489524009158818181735098822330327845938958557585560339373637719833669542871237812487192701184364941311280666804614583893241825722235307277696104942837627593452599481740430577193570320953492598215757444664658209322497298649921351165929139100464543268674608332044368850740600514210883243744512367630458221154296390207765998187432524804382162240145437476544239925198655917850832699517960225706107736134729927657168419186690025985236193645556059054363445905665433075746537974546845222096193016612503651248644535029589861828372692182261757164158977388397915253790748389930331609190557871323217278518990372427831544638865700103324920501141221024992165968801635085306666714566011103328614991110304973215932849008028128318294916799004367541650851599881104256110130659741367194477375423285748717131552799964398258262105944507612000159053820253628820229900750480962467705059250009040437571051955881570760808637338889208804451568358912543485866293434059014456440449175752760347998403921532663489155071021398975062362490798303707333487946164986764230318700587417124095848011195471085967024738425930513283419188023816336393678946987044178055171515361727510643127308256905768659803031992121420696152485247518563920860341086817322198084804960628605531688378804845711825501843361601742865534586716748348946228751661181489415198896249122592150061736104182239686635024045156581720649489533825273266676599287335265036483561101901714474168106178872032652968807921200235642563161834445104879794012143872240493041329649349873838599699627838200959876428911613923718524705205344416022849318826386714314981149656515611484769160145656210998168937554171458971585228173346650091455757809742643466167678732918966008721442170107099828878586672471323734423264761614155183515847416713965412328928540404272664117983525570383817948064764417866088012889473971166867357353323538089398069740968089182794397335860822145333185871571223489059707410477808206105011991161957306218116667929184425037318240908630968395360201847605408752709857729965700458007698241740159719569228242983370101105967454234173553150321437956312090841890961068407026328257104292730600138988546849616832628561510631628015426415359325781247580843844483201157068787890801523812119585122945187107625959968210530674858345320376170706920630882054514434957905551206578883595937287973462239644967161881092595892137723970078853646145881255317610858626579779382679937685139089125473331761718092435641659826085778149970450889412553179787345237390940641202324553609401596782896629640185200560598051081427067815664425234599212397120774243977806909455202452494540171976953736538639468626883640179183741739733601158118024449438683527392842897274307249496110861974621404707130302508975082524050333161247520602461504338696982308712622872854177515444796983807145944996132837597319789195445044553530298785193000935819178400656230088904978037017397524178145180549255307475592341579184530691124907712422161719359148934834692484087049961726103113110066101622721806660091099034843354650640919381795615594572548440468031785951063613529696568118684018373486674391953386735864482204353038893913687063389663701398788597567709866825454822658135700296319469218678271448691332290711387210532618842270964873820088362432796023328055800138705307520201548938878148988546053285804808561723784089249082455586474897209740156661174642609037023064598557019428874349028796314483640596125693164856961390344897604747960968310264400921324869981487979176489548073033315752994951726172623388266405976704434490615878566960039667497754576612384582182182282199202137555785352208108853228530453827597201002656764696207742057843549807152873324980813891497392495877093152495410311882311871447668733292220643112803772856029940717980839188624348856047468212642011215836794925384410679434384388469287758941382163073688071017010517892700233036657279382706091483166168770192201945703326843814030676579499967143676494896754234205501292890066270349019484640535431462912138064046630595236894414149606626612183029141892093648356036865731782857262230300974407399690621906412669421172500689920754951247923598075778483780806302689337457934886594067529339885929231633746311173312196447884916669280865531084072478215947136344746346742704625691785711168370664049191296719417993991296812328483962288905874387016784009623820922095978277355415017519195715565261804731905487424361355318609642616886167499295433665577583106031543696399720024782923267638704729515995022493451176929883576956031746643542775794475918765028133734891429482730515978170555602239626330857988505524484073950841292690935717024550477996129100381099838494329232931049856282961979798210657152109100484202200441034991543799776016036775902547616682607405344670744032800612909702370832124049826951075525057700714026214547292438014841914241889821613842065983819489215734036358919865121901271383510769100159161655952993549691721263808382052498516599841840123448025786561346390861190982862385864079835863120817460258651769918439941448906137174010405727259639522652421615969638419221589423112679128779140062294428974074746386691070013236537123887727689276245308089929873128361982313156631095240435369200072962221028422473502091388228438878657289519714945578876409525344588805013174166753187286887749269745947703833091376604530070523781223920835616906055092048111846137925270223760992306870740946384836597631677897012554409122326709626610674669113729282906810609546309497248223161630409188888435860227788722484348890116630210584225531145123991002294648590355951147865113213408927632442945537327836860740860677997692827576054329735375835196588663601582100341910689693049952115654111425813892782277897682885530861697049136016331996638660812947486768806881991086963905778603745619567880158181978282289125306119753742565345378912084873405685326598723899514594650780930077255901602162595971542127506633060538556599305768046555440629493166454843833538367346677275453953451990045649135566913665788441146725955969195912652486017617627582598896099865310765753115885918333228222435900720606764914100809563334520840485752363681069741598847581862673386084927505027856518249224882895828456984229575504598171106954842421269394788368783985178308473283429214219943003043640685270594493380603711064830231440499683109629099613147305793226926795595738340716807392928749797693425551511546473001412414551279474067334257000650124398805540948164564558103912241681476315943003623293167555082258551297300360838472076882645227678188906172742063398857971862663993179356199141077948015563972233131543555082126925930451412972447827256100422625902587689525086053374791345631065912785650360038068461511841147319176281726053766879686718213303522172396789098657646286426272831049822529330026857196781284829433816931230689368195455275654417714097898016250565512899815805265782311317720070022447912709885845715313568660956457405948036176090181818732312744222880940715608990559823509475401273903599030054388517171232261111828317623505051324719840558993410173802695280114930771606227288062769787033107164243738031517862835964585894552638309112869447887170443197168517514961670403702472186308431378461343759620348770363849860973749077891210487499717360117627121891604984909315004497762384756549111558806892333409685934022697732159954655735738367287919357398730362859270262735040841945209315816372797793483271108724139972455831259509337440154676291150494131128227277359198437540520856672880496230735036944683371604583260076794050387766305989209721443366743684019409939390910877562545430393758305186610751937843618492340593837648688035900320744644269953997055345078048281020072587609653815788356308760033758230834944126985536992664990280673457770709763001849436476707814932722936598015874622289532675713669588903044536202353016909574693390488156537938957323639473027974120515112493638391863528599911692931876908486464217653829487915602664495659373221485121565891723351460380541651660903494231739064425791603478849100568879637224072167962087633811615201402912779851872351625897051171129587336479212586208231998347991523148584166620172706301238695822837841327469826773454822278214436059143733046854820510381686719722830292238622056267255407155394278111674028141245161912274002272351911823535066658850193747065680643035808508908513247536837263832015973893614858923710928098230577922039386910905781343574536181889682788620244187003725091175396465812187048244316715409302711176676000934436387872922751018079663097738297769932349275258883188399207143433934756212091672883714900192566208406404238325398076161223692692021186006903311507951250317373618561396946694134198665985254513628701831247187143658505518204188030007021284286887957058525139035854280129131923058590595464046552196206199606095805051940756073780141151000361066303700832930275952457478533139151629512488217775485449877232949520388696060438809531249680676638409568928927209379227007862898915806374032696643913893240596889433948324035508190471936349466390158208326680318259011796485679547543604836498759746718668220403054164352716559151028772023463475043926931096135742032399861706756069188897281009547640620648363049592675724965955128140274574182790066607372697418371361154494527953905955873832702489110081014860081118059171208116453961983034871087353770341827085081047523054165307834289491207673502704497984021956264807135868280516354258419012225985229018097233914025746398488523812342981628542772058663353017952504480118131451763195326163708211952539005964834468917819523900491536396922180193919285867498550783044253502814358892039902217198472514250054881347513987463527046229601214893993705313451804061697372651810766232725173847382455405235556924233122765773179521689090975100930369769534244655010408015425345559119674166491521547162326097740085500665239284255444232850461285084633296620573591396032947989606132696718542238148565437767653268812632106883365083056732453086118746464980204107506780524675832476625968017978331745103773388369560643187535082983865370167021404879502171962831580879520172116855693808148170031693208921752971052959794412329906571426021787526837248939782237398304493426650203010082338294233172081611762718033039264206933842496411639009460768063839145740816314850282080308685890615094477268165934220080255621024011797856161748102088049617243670358682721149868898700126933438241911674787299730577741440604988150653639816285643362404341141836435195001359361617399067517302736312384017380298637283857388053563681466607308101618797544918857836932334611569951344809837208366752609707463641231902155896091774232121454635177415821674396329059742811853617873914515417074336600532592506161150593415975892601838103457468251429962701630839416561049394370683788229398854777221530636199912178810092972526238288142314089275503538538640037685923282086255642412572686654654124823332846467564397402698553300404547646485479609786960077563405288463732146641754184941755729783892287640581558220532554094618428290856006403487716473284561325486303193489790381839602198294150148814405488737688692957502344892729123895070069473788656316147168666592061239975949545630567783866619593117097099934491743987105388477988171246227050670049551638442133184837740124857476296911590050310399548423242358175031081008932876688639173862131038552739309013771390414773669952308537022981574093200239435104795270767570675893753971027305314084295153505909918166398736815929848468017257451826143734227346573637337003987461587308362118796054525201169447385442026173546893155078167914591195347842418445434950914048461607405071720567025019879867079985076059369744239167846849560296529396306642998838208244808556811368587001405487778363703297286216560897341155738837935498444535520070371830670301246632631592236851399677939369638980808643103858147008880255304953523083866227937654923772075812051676011055040635575167495244746108350496816207089396491295295113921154960881045451143462819711559639908614696092967761892437324241211404438242999294051679636632221895329735772768111925164795407639078078234675937695079570361017770255884073647412123776888585114153172988266843207565814288321304760812816877481078904544069460005290318363556610862394428306669666682730762589835294760144589881242026405651117773274019773744722463294020784761124183214397807093122757560794197534248836011043928811413837063890697389976279032390651181589522175167911971158819686041917170505320792603424211171599380162238117114146630811582665123672933389116304291591629279522138533447072172844873535639692784720497847971625800484710839308388447505634382082972726704796295416639336715272094677532557596545682513583789979798388978859564899195458301121196435562978216268296934646152031548180040863366611783263961758658195566073447987549052969028693469849319964249681574946669795743891267925047738229311759970656617415912620030887893698939909211887385097355559284130160820042739473491336558416953077633217190161228965848403287154921997894056225787340546828663496386390304816361943430449723908456648979325760936051912776729699152245990906042676329569221768024667052335619659756358708156505838207944795416553966940758998293353718148602997056984010231719665759581817639920947318085079277803654195074833140721518929930144627729421933928580967988438064569651851351648470639656636949229001193146100328843145294266454553350297098137670517448313584764208783407856471584658658441863661264676238189671868023574692609811333429332100694888647507697813612571759072899975029027653330907313327867420893609041333185728134651020155130376746656457890530222879093031473250933380446705504702374948261247531294582916011633569119018594379695532647775813990358017663928794122724337416006473883696193495839988858283849921429238351328727868172969062363144308421229963311101684830507047781280816113694809137904552899001447958247735550030176012256484711210625481342766392621286623878150476745665878665595392432341428372604784393655183135329013160377930308334170294802636557648053577582171423803376139405338449818711617259563020445020600518277279362090503855864950514719105067165992416971394014229274862098945195486914109422678182880408668065948192762557483510756503970700554197057815839898941377234923283713047615867203865102424133495263457565764363513215491462769494185914119999142743610497416788058777458437893120004667934035494741376612461829063338316384698590761459185128455706245776084456537126106192934492527446231330877260871040339033931241780220383426688422958941455969368000174927709528398581489831689126340313273085464099307139116486033490687326118704425469945310936577275365310305304759614668445232087675203563776106090067333887371084076026708945756726647194154183550406415617965845470493934398326514418154910801575778162143162060966152816947988411773598174971877831873946965790699676630079234373363199521819347219069176844082002622006337148590867396200568382309251206938760827935474477454753729351028602218489057809079615774490884732013015955165083643397836847875636822012305569451146188745181390476236170990500958177962187670059685895509340479923291999385928864807096474790626686128836869133890690831823046117085408470621710228060133447001425275363278248774838869334333317549438560072805524052769107842557108097499180653576955796854374090160728952179063795845788083709167258044080273545793024742662164806136028913369690718590791407972477858857389882292646490576866538301769398011801968362238827383871060312174470184154828267901899707369082465361687018476826218513824983922496159089814179116991139086654623230099679502579942617378834787665854428901136015263622427617978357538486582829846360038528347694289484293185254984933146138202923144262363412750253670257982140387749631199708630899990280881625417074046707981737945666194584706758342255928751391045467202711624012439242122740226668522719124132010967537367838009190394241862201221886313922477507014494824951164496816930409056731388697307230486309631801922119513958337335579466803640410426575373293749633312251599792410279177266675265857922450684335395566813823176030608358662482319308554565967921725180307925219753735446035767861045245437173620521346532361409331667143781464934697356110004186772649645275407445270739773588103243844405097225007829810709726089149921797520461324131813543453725887780512263764752143418071508665250209300272323088676590119293466077847964256082373549605581460202238109067156334484366775700930542321973337313929820686214572423520512200370458591581853572538284460625592796234560040910386869492260124524021694853866166774873797834706423894578405315580590635820862890642693061415969605577347734859396638469961220254082425472556330387320767983737210258727357296072330006390416863777687235865781618382972187436817729931149704830187112241426748265773045461766831784962920843303313926724570869282598139070318993121266727972839048774332645270996795133810766994809744901040873536642617211622967612697189947346545628140751598722578238918763377368234795578499128592181481175167716133867340704912394513049207206735669783491999112655791556064668699769247951040287773467738515846503352246659998853415681580556049005124231371888865004700742376546654241447027580610722230639915693411211575915822205038040653794982459430419473888765013254023652920666664031933726595600753859183126585272010534329753900443261075730461128337405693907751047766300447077714575854553308135045958418453976001011271695616552725276686497352354598858646782992106146098301629070087509357567656506166245532229034910423930168926515722068738111055093353420354373296662502239332654936320171981696050881927232577097419354579039840296826315282792211252649155796286732240134629625801051089155561471645585827210384324980612069929476968552701117033214744151218349358313288728863082045854925113941556847337369023428554491375599280564520254162350751147121522469576627889471964952360715991475614027060748895906530192937969073806487845312397600499841167319706583543474036676094887792384129665088280767903366895422858169194423002813149616615279602323367814372321703910014898827045580710425193805682766376560226206516070059821147259577970569527929547567682939233685337207097373403452067494268049405983928407570548738651612110971917794580671478013638179487003188057944767451911243310406759808769339918543465611846647353113688603263451038763928177255959869691622175668630914865399106245857990189959723732365308030957785240514589033383793943226761344798781302605229369098006862316677631886470276896017068459085019715887217444622555207239673894898251856297414015581441414161714606452636272361460374100566365204778746718308388314948004764293973472034892100620688239554046677779691040308928569625849024015997116513260435256128961955432799155666688235084430731305678491287419752643301227211261976153409835776669829256571308518753934408320687215683529748870678043465346499629478092904377081792419702782549414761099147010939228219033037555438554229330920182422049296592454451156212285342850349145336903167758287120452166282574142547061477247366650524954952742685195352287647993834639193295077988593026455922706586415617337943586892657198058319721956307235117048208065443321263731824203464474115470804079934735767811885905551810210211940958219339524371422459164308137637433331070749004065317440855143010758684231164058891694259317425895785216960103252191484907692857168362732407169172531158911464058479609441812188896946689600423766471983635320268131891696931219470014346356184569553849172777622054737421498080347001146028336007370310359018687088931957926174092329166264111041161606774341328749887058773560889147967538070074150310001921695635270284127096395591101522213943765098407251560957101838670444346554826437241356402469744448212369745492204711544441516351853818025345877533961319546432446340077571739007621162271597435347484919987161514882422572127940834734634999548553373447187727810210045959397478427717191495173581171972603127692634326902377144144320989209603073491022701217723858113088974329046544047179832021846996950051434732595027189804170949801491137258997531056942225824622056235098722114364091217749113652792291493056120933196018173452207195077122691939470671597747831689864448902271229999298876540557049232030081982131888019717403738372934911174828208640577280885488576483790409928134839755070305698643209790231283829475077627877742175405171566798906298603988894960296134494067803258412877157754880559968012431067270066847832677703791103355201412493833348590524404504318290574538165655554927177846010128726376464245183366661850579875019319634119410655900456244758240883331160879326735158132718583777601959926409922680187607745989267998010653035144068506107191706444860745730208078370936095427785935991009794446616762325104279948376174870642239234239643360618904099830591017742902059385564404324671877979640163483481479386353764648793389559169749372261717219156698669136619180058130861754267867359275689090708399353446800788125949695648092451255373654595417230774445195538812240769187557269170790649760276638531813130000543151237280211179115472307922758882993636279029159472784018384070522873172483313433748753344099466007844002095828387303828408857219571766484244426011547323653595240997480818733957444638928495550634234116128095652113228157769825527251483427674164430234598782612214032727525999821561190918849091378318218329792721087789206584026722393595889116788806707224931692324968400925152282333038710902285007266903275475423719481740530424408061417805437709795865173715629861990957009517231540063692208119443378329775568308734837429334310855642694663614393514524864365699663671306290261339224004710359079361177343880029560715429895519103063205098412767353502653830114561253801239019104851940791307362200317419956041200155231296841388807811872325792250971075917306476820364381935552142802671906254264096978618794216418484998144058152787233456317366959783785807824030792686771647470741297057462592045426952348868119700099450665703503876866203659740430072732817089206707000242600053330252985592458140823545803302840936969087703538094069910372400840247540214783276846278874116718953011825503676077830033801054241784602985766979542079214001053585773729311895715683263338046881802410864590117501603640200067492294221425370020318519133158371939008711361949473031481177333093058698525819461091827309907682093479984768235913611107662784766734201292550013774852108371614691149698549540983848963305497197473520634684005708968900458396437215518805573350571029439949268425772469114326695855029484812824327064884282313400468412169185262714178397423062597595125621542308754983685325081742556031216250113069458348145567704020810384672300349701698502084539427377713294541857091735832461542241422689264081075548861077780213253849535813167091946736627063596811553340296658249398647264106196765879250237987656481281757920477052067781304695515774607702709674318189492824267831922763170382052021767254386305726734667680054280363694087738176592109025100914380729651565834679411102904676596238608065028598649572634760913175121563831185936002774010741759853161764580180953083190553097438076847110014272698163850149151532162067451024603623165361811074810059955047606383384145307584655324405602235383807803385400707821366190772468606960306305373661970303975984962794299371791614290396535706219141064874767589036949371473283693516941278531250880876407634003214235959821690407145333712074761677942395967032113853669568775525303910001674642736046821864831678615798743195969359443029648656258004247447320678733696220942008346909258196952794240269346229842894142590016306530580598338877978123110802931093070318289518409678499919512597950338935394422836357218675698098167254232671951798450070640625684676383098994237022793497194271914012298054773056317283343661251013017460680130227447613545576029283265052074778528855056851430074046136102291390161735222739991530856616738380134368650119183817129837268406626885396744953984367989159170959844918265991839790360884802520031459791407787769807997755890472144155287464498950517917535751163049294868339261266927039641040555844899332493287705346914301496809029579481809064425637191001112186075245958537424705729187743485078301818163588980761979719812370628483397163442403466156244445924287547693828273443631039424408123437407880734706427685332106218176549822735337284027373648778471370911124726533343588655337097417062425785391653361312670669453151682984663299367034451637645611272727834215178373119357656615467903748035564549995078768981078014508298186158744952281919339920367574233690805157399663247203883242138006716165004539099858523307288064025268099290455712809092861619312655302480184833382677642553461166657179137610770459986981294152650591648594728048720217047804174152192416433520726245073480942919668981729631359009254830409782147286239979535045374051509083047698221948006155056158561039792070695575797822898201328794850332011563156722762630043166012865570837279261327062715731308372228379504663602097903208502036568282113875681815648953101474239251544196022586789959786921811249684556123798087841628335014852410117063988542503211721235412466766471995579418414343679161501935454777864505012021092609251760010651233401461568950763726334340714091562302436788603622646160021983409160395320742047930388888510161555421701151146907588328438370088317145926696145701024991535025184939362181593087262474147475778255904913981370768279688094280017158189212308529907600319327276860017303025202538308769384480279788734088296026131587578563792373578898265598553993722120757457456107836737859318433690720636096136248644979476132244660377340208260387958272020327792304921827403459598660343892083234803157500584384310856389430181019639495482117176485927475813684736023660416762436068354046322747779009886409256558113517733879042600918062972016611259685974471405563181278447889591380950965376562699331670607963577639523248244607632352893567755386764838504950306821034691227930060544656257543581379136672472398604966698996557721156506333365333394525505399725500925741135868853719513556611933623693278597758631432736540196690992135228638595928425387204446892779785275043692621853944368702886674408005192120095697470813823888700743732921087777117849966593640728017809165519115303247790071190330616129066775032999437900590936125978086646074850913266296377320268684778538516040452288761558495736835444898044077624774413876479647786406776340190105408941742159502941320459218647554292492345503085907163691064458713023513591047557015274066560924501989100000143375991422616624040161578351885868768378701890017987979868980488179099804174386225171572471632016197458570531153449963497349024208979435815353381014977191911040846926296417096891566990721061533919223090901821580237658423211351602050531927233116429437957400609521223737613471652221300348910087919444900266353911872389471437289886777284942549405927482944268808277488596581477077889077143187355956340366445692914755319953771551316584461201719469706993208972840965760105629035273110186630959553893524475045714016564799347283327253564999660013549747597662798381817458236014609987200080029420217031079596930771617466676867371387518253560956073062045319301238217981786325770936337204413894294028066715056283312957494912670832592526372485682973022841000021309050299763064233148973027274443856795020641332677857630978033028996076467925763992340343564718142326929138109533847371892932993358552928570452524909454361679401112653096365760763752306242857376714775580518623788709073220534793202409372350925200657714421535371535718947852878021070440862652566463466816654223230969505702699019406596654692884989252745757398945361029330291304218048220620340869595673997305781858447464681367189893668019751326813102049577860733734647315505949291729177127984614158588295023143744407277239702834748917412001520811239721005311495539673428967063515806193569364741399905022228300623409754872199634453980363789508052370174077676736717711042551528360446624311111084424084394043411686969165746017255157270937599724268740142028243230138004771426293294613989369144156697766024417770263157360401229159982293726799167484166000772120277138773426500369654285812948968882368432663553271456827614639112078985255398154142546707483822044152974545842667751132395802271067934732998768361833336750590344869365887178254105938518034182220983153309529262889328569176277468587392578580670174577968969246859915488340095665545185642713599918613274925618888840335119505893815976605244162640764278015520970257286110005729087386250091906218237492304521540171788459221922691137255548442690822594056351863127996032244100078351727804748883822353468816577938996616578603297275720931986324808027510642419035270325435229683238515894944000552068926644197590105277897576818807975755330123078773493380276961382865278984108614847659204352524155449801539748371002762624250187410007091032572484019862937362541128134609071688682374681454704664266584379742844352677745846665981683805120409936059124814629658948797728907591482270930327546934189915996694687601094224324163407174195302320874876343385345352747720204560262796124176734587802191270675855722462148408906507329260356222287114232203628458478171264421619811243702539055388526840511473688843522193710910725047695396433126083250463185009918658917149474261424255017460024240762983918964003310783330139305423886414724989342415287209604521506789681929639316471164960846699662293167309764614677478217415671015264630853006097814163547585133759558505496134943391208666842207447415019107025394568559642664301663243020681894418994318593126344287304998841691885816347322219244715438903986060852084628871539868342417453406797633681226373671730606451749678311622171836660647170508889257192408882506086667102038104390332224508538889322152887934946196317104302812908525040895184625541751958161306873048873992628571446430504132855077121779874540098804378091108396785765012018140662485907164911768157918973237603928792540692033188651655557218910805873789896612945528049504925588562250077988006174410663119032119674294842695448255993881466996138405784726516609938826193405813332240062525849798365006769383817522233705396010615333776949484396960371216411960831629242786529048911768012747794052397709884317404409090058367107857055443821664278603321914612041762076679113245088654671792602919793834252263805538152794799414855131753896627634424196653858702126575434754316894174401739661293447290111851843892075405054610231065174854769900218139353585729124442580971208239592634132744922328162864507424848475584630749356687560907525311570278948428251797362740651278592470336144859955108999820341866711954298354549325910642553952282685848411089983942259578987143324565648949388876957813511792130271135994234119618098035651985627011111217267330817943436221639189148654963546271595804311666841934534280317735331738282535923961621814936807478570695749731193074995308312353536536393999178284121335719964901947708530415873740440746123419589707181721408321809596686161013090076640100055276143771879117177106549310043829543982209245809848262418906031838102967540793920329738428355616413898041645563669233049038121705535217886807263740254324292219437967730809363288870371214950344846603822841389913254694528189774570549268617071109421758758578638674483347432543010022643046202984426162010414454953748367128311119738919936962599884713257328867562454637940986157289188095921418185187225557060189463921601034936587360163104361842712305961230773272971199610531364877578124820189553612036651014439161808158931633147387421483772497508868819926063963282638557879185499593338655081327217279422933344407085093109790503261579361850921361458266727231727590795464207862198290965161744778834080754238238646194502825629153582595489246696397871908108209153382848573600074134974736078865723861096279314170228736867607140012136623224507459764933634020357539128061589695854889058854302194360322503580447139349632743015842498383042945223809676785177399611707585500223365188104732482516082432973769335044746876218841807158155480661345259265057700497831550225667214898821396199017631595891508165128421505292309885994818411941992386958057718242797378401062166051966941868594373937312161225364389310897542940294977284209481127618002553543027180106647355595566558644915953833418706504222099986449794665340407914730498532321861412390287692626604070562649371337829173562801350788037280721113949707410726067295567902356385590869944858142952868682151622190445094362681495996078608365436750239805861894759452006671373353306960556465801496177493237923645494855960758380841833646438172567644517615862701687322776735779882927737719301359007162668478767682562494282778023777553818085408468307202293417235521652695301367317753866291310246620713186110714544539741089189557658921415282570638922547169073422580860111274763375474121641216353124260115094028748434742661145061668707794528024336759878786654427827391057275320261897266317797571896942803029279618569983823791715340602414790031160038695773358873697166172760176604265429868123014110010144763993919218396271636279908527904281654436197092063669869304093031535442666180583691544703322726503655294698989731249114585368150661287149145218365803468947255453376987144426145448320150284534193899482227242985999720557388435645434315458429941839160842494233870496062797904085114523675758651422640128525829294358367428333391327536225292279953705656505752845638725122055836839031501196261931772475285043971871226329493031186987859378701066149383998350294463381551870171077738838256819782550068565232148076904487083506824034332416378567305614641502599321998464937716967172177006219967230086377462146140024835140582821048301994400325672266474310835784862694963344325141055207632555368313720260190785515518731953984458185153178474295428985599727983064741795682585217482782346378253020112897037640099645626677210868341235237908537571160264103243408559207998610053850071971600372371548148793004372423384812062592467236806842802770211787255955631477221526629566015032745215486372105589802274135928785208736571312180219188187940546258006024327706382080938413352010205081925563195137203290461773077027739607510271152030619489599062408428223176212185679516111057333267109008266075981655070543369726222165893061450628257732713405201214501886088811129822435336444445293741427908286673975402453078570247769861338734889930914355702588818740868377143914792211392686468761138358340207744199446114215914117610400986584578982178757521484426339072896938815967112764013001189576537606225772292320978052024689443955672336011763655288774330346908290002018256196206869744828164066631732971197579609413754335019266253976604110245910325938539001469498865003967148192764711827827869864008202284241868879450487838956865038694217416758594528841743280834564164039250539718190169675335186661675959144915538800330108676670609901386769400386208240251047010341285997365460898380910219285716275125178213143569152899538066722578413335876202897741029016728419544087950694256696729282014034030944430879270700607047240074094472077936325587383772434265747155764078459645900488217903397560692054442198263726102641528540106235638729130289584993367504744068703072827008220050671948889997821194604639299517063868160108036295418709200483996489115309591869007218094566251552933634584637144662457892583536105779997548988368050930645281913819672591717649907891338714645526305154596632784590140693328164737718743820890295279884789517131916788890741002369282255599935002480916581313375075564477501396645661767979675756320588398343591922527454742253048519488969676598172875969108235636850751676070504676468060327201176502057438510668728839628464441161468296140105987593423496882900071529391918933443933064709775681218634811103724847523529433509379079747184330474944847062567235983926453954559729172262771114574912610383268609049933053184845045132902440634821563086155062636099991137804950766303065267395650892164880865946305136421224015584234998581083283134920514788068043973153234811098361412416696047491635712675542134472812113577226598568464998198044172606163652624599976012763307664865222318876744311991404343993553957581420638254543146928466185145152627954943471736558155428528546138184461799411078938074606271144194502722723494786672972010830093468236282657157742900188765083167425560432478122106318435273016362918843511072602958012408945685566513295509903308260427925582250678227458202689210307698883616029653648690416556866739141751707766491809901911832645076325882392959893547986262414950700582595998499855338162752220491067719527656685861252597828406739352871890581311899189350263412589150787216186133496506625920019874081461352835496416911518395152200875910815922355210982969069424450957538756678895880887376882117212228043131285129963698379580066730428141111754489093937163343490433428838042815545962629247961768685192271698377463488323891204675394582913800903508413295180567520388138173667600533482608487090585285241226134592581489815689059431715825547003413040336855324859160617500774444975660795782846325421661657926224361182556948004042285286077784746743047801397582558538838036293537914156095898335648480024243513982810449637823499623839933485069098910189652595875719656274507993027476151234648029175646222226898335019439107561951844763050576088566985860057722158478685518696345150720286155124095728697284096129063910476332421108070372511322347448976171318681304639138859596935478679160884499862463620143266408516744276183536110815289422374908912819278838208545107843354639885524768347936923310822033721248280693395352164216016137412757127581713292240930227140469258182006015645416211366129097024193604459580404935561712908358169505166852614462078882596492260164802255475288584794036031962919307144736794625358523169461584351630161571874441401612888632141665153000567339081614227782481167146879858939263660506186284155461337881014849296372412843293111946774264723118994486223720773544638910838527837774981386656297463364432015075474202951119939725176045367966596896286150582203371703074497845564871961612067656901795352983305934165958745706059090209766961355486644425168250476950131156469158159754588955434714121261585072754880017222511881381354435807712466866076607135246437939033814908237739585696773724644603094981889645887072796721032725412308923656399657641988931846071525688930256743553876616451072337586668663854117329202190573624338950325329744940099873391510967011134877012032623008200373350874991463705244705832890030789092709919854402997194618671300537967396889987476931227262857190954990831945052292325235232163065191697333327671806607580425196270616053630398620602981917055122162923495620908467424010624661845909978417868353491301196681375635851169896965223241526279846452473526839990932431330439732058949756714993940110902982988805533492001029604505449879333348126666783162448066995947614282119912437475121020134245779346900370298389345127925600852319234689066174529282372623903019376141648560761817664433848572064713314803125008670229550441911510780170728975214513549447371093471380463379259482851671220397406116584015258453101374385058198194422995597647327882505487662941859013783999274471781817696120553497205699646586721965174792769086927355477675855723135297527561139458874447033697772575054072773076834836861596998033061706092141851921343372144644212281527469793196708377387034242837241487415998365989391060666799784334806756616787356188438839209332166562076813680474909822595844706131036824602034260481797047762746500804050356349002776293034302470639309374847101001208549567498590773006774487040976231980177313619712006499653498803208842481748410550472528044988647597740826261062566110973939230885895547025200829396170818945209739946595083750679757017588009601659000007074816750692272453700932819087699770285150543695632279193436678067144676295507156164624318740548440542601258536957909729305717167632720444565228271598503025433974352687530872973124732355435069422805300300678154968708872493720390378127896808900503905730365649658649501276043556153003508918223384784068341668225418307552599269223091150894990084797430304678376883241780648049665575610581989504138219212139151427230742754745545567157151207358560424495664304257144441365111025793421326225966876007016279398371876899751499109528211325020025410104406475365434811015772686023352704456124819628074269917218875089240112749801052849082281601762209504415477770887015978815858364952903808879574190919154457874121013479982500321809117423105873991326605092597548627809027657105332773439124997453637647665204634790973789850795514836460942837126114346390767162710932692964522662223160618762939858357409012353803347943969885655135987147559702695297000002821961506633116178587684528812969395138670332552885209888376497383908675166871971753534703078761158272073221343114984849341574512057335411872723107898466923115383688573628549337753998421546998667429268812190196249742216229657579818817059112221920892104781497958763500955564387707401331974972286946144076231805445419175417871915852481495066117783262919638837917194420215077941687032304865363298167907215955775541530861904040981026274942492860622438878051706936176175680507670417137474830144278565764353730668103104551694573902040859601434619911252518352970727707062373561105408389625413686846328446254785464730926972141848405562477715259783698473296052004637224121635106649256974599026506044656580800356589198247800348223713135265887375383497802012842531284626000460181121443219035644264365792587754797416528986102283427201413594609232592144893868473745115253368851989241032805477888434584919574621882717006511268812085809319758836776314700772116293417289232537185284403524487721130841252970914519068940131274739855400411617852993953835291954204711818990949020136834329351820550752954060927102284758794567557780876695229952597387051750962600799690781023345736769792112192659711271634889142194155846710558875463193912545204417711016445652640340487084328496230656038750093198584518699537738746686345019310454490678320401152304580467115703504742876021057667387579629215068852179629087412451417036035537719357102158715345428138926519088133617622927633262174643950623294577972361060516315293900639107664487870018480323183765522136388204725555170882881296036121117118522443177666275925250814007646600048974358864353818487164364987915782386886331060179662378019192243709812468756548508076016811823551628470159759753619854533396883364160567329854250317466802980381081725545928066556877800934433339440018617093318615840999035244291509500856288580881064033096740416139961456244817991119378858789503580344726270544482977414846582017888428718104802649670346874763566318529159910825625414964355550765835443867101698511506649674301976356556372882010869898844971181880731295267860972470257934187031764880854572523578545342842183918141723865264128192459927868490579183808290550038328619481941652407775856994065841127518564391282167035372555253212182337679896440080866175942248167879481977888858643928481555443755703127199560106933021413692791661618461706998164539645771736251361359713994959953878076171507375147758359257351318347769518073563081080512495484046588599163635334014119253039025495810771835367696004106411285334295883791014803743722614429774469827223801924856961688417932525941600175773053670139860645888071929248530674269561599658884750571841907034773499359828579643662351790566944445665772367776278487339033348165831493714530756167807208743696165482361433264737028560135103690214556531875556586129303599542477326663521420541849725689366056997140087729051888930780734664343017210775215347563527851105598125022415816337181820694155915110760915335865317204582520008268442841765861301659285243492655140038777048454670372393263385026812217080013568876382421716069587001579738493320856187978596342950370893349277286354316162849644834322843750781183004933872351733880016936540072212956996824539846177381839864342923856188049313657229196765024240958241766206769973868965468073170204737458399684028039338537916950200389632041630384812220252058184689181177815017725067680039558501653607758910836406952828752447269117112402308630831256485421119536453177728728213309584476392840028916002704199825990186692212193084515037864939561352798690130486630298041149569619365138219218448187468517291640419052775345002452165887737128075045399340704025121703805756379281094286369637906817926433156137920924891258289352783878387382406517115702814696680049276544008925273906245422247158718748492283044859504805627206929958665356065016356592489840985275723337345578177973564336242343442817393927249780003739294088601632740732413726566846951114642945066071129434497388890144990777626198584033711676289716775584050223741247660300166589296371912225637406550063984656798497972344995805814861147174463905126326017436330610605539776608733411322940246566295102017068076255702125207533509685108641918818575047401824204108419806139482629884537896967009776828981435213937588935046748735819841019227584508012714767086467031496960411270871854957436925541113149539683048457585159802516530832293330337290618394816759690870503527293857189418966740372178196007744273320667810683570541817853765366468848078308266177130631207795093479787403870656905588778583978124679124914483862282778320708822535226780992312073634769365151655040621938829522356907018232113371061327799040605869253695420450606799546871104914512318881916676043016142470236970355036380783033348909363152776935713015665272078560463817929925578039557724574677475622233911158388313703237648652139409067185082955558846566877379072313024361318050038819566243182353395587151560156728209071110362986921507912903564195346209328022091294780648058637109959136054086934681700150440523234713246315158721916092486514825240285658861350512733644581639026494430759707651596115328123430959702216355659954176669601000137620549840689750868786732749105537973297610740221029116755156354027014433461064577917739152369997214356938627949613737323504703330315845178838736562316060776606503827764279582656643574619658859298946915609186923740367162150941288457878102884249616556705169176117191752116375751239755912026640501493004322355488300381213248718360491248428835541214328211006767918232798392721352195852418899323480008897095823905650247215581562655763690537092447013274127532431655870860898733647266118077304646090571891215736635488091713996137644837286465298320045549016518712499825004455029591890458078517803700603300564072537080036169687611661198547256821683122091070684090810507468847099131398792446699621384321147827907609866559415325120993804167877495598187823232600197906779633804035783946909014230760767193600093958141809201751849101973773724063347006023488243635306830588839604146326029022846481930369434059004906038868365838849947177510544202895312857264902941216292091447685760517255288463934252682852723824551931383474515768824846024005480798686313931503004430528087652421720305860303517673923801932264002179768856889421284915285810795228311679875338627719162115766709995285922820516637138888717216360260622493634029837556383080560803597654792869790241693423689306886282300922568138938586632695479809036334605876490477772235028108947759690438947256529033094814245899965242123398822936251356229601875636923236726983274599861842400493023515118386560564831929238691401738104546593829276212189469447142839165150448981727303208150486032526826060529838371369238190879148185710256805741264399658396907651040767015502562834071119072489983724722763684308371505397721201702648743302585285040824334812849852267674356226537355396853676210863393182528163637770780687781302580517674305085688647141151024340435839210485963368781423177344755205848246605185299694161467704288069984927594956373321927063660134928845098844177541134526418962321976255907044611419538283925822503885020900186912568356431030256407501881677306088559323699841777444703598304261721677594851733381315047363357234082650840117047617737767017295352066464984166812873290531361393437661438087528198977522667430013218091003457241322961398673144533903751175145423712843950186482485473305219666374878215820834506301685667457971121976090815452873172521582865588684224472873129847532073793012471742158943053352152735011299966609126962650665210886963495959179849660639186696354519427382292141867102757039184648527353575453549918776518376399977583915099033403487002583786827528704587810713062828109949054931815142960972122855538938020702726805350616670220728636398855150983866020252356243444356226914753516795950417433693432057237686334729345200109922648904892466816527564213026991582603508941513282395221039010375815002982430329551921893965063568722351250114098933836689194672344622897195809905098804207587570522977349218471310619738418880763419242918247543792353220279383080147100974597941044135679907856965094208986494624188472162987782699959114360953696417099896233341003735228976731504416015847798847761392834774330103096051133421147637458712107907723209725909228428235904819872182568487770951861528476902336261965750970386901650271807035103147172697610456018634047905362885917706951468455413448959375220173237002324909454426486655393923690008302249667939738729902060238011144314462921825602385384103248507179495138625652830151576304249240392470045158630626382963285507144734572076091931277267069560102309297093824355742500515827135834652985388276214623361826393349920712828688587788609417628173003666367617458312367108881893235067022723356473673162259242111810305139163466671861283325684880371278907584480583865861018361728107103336197404476868723166295294808870886630217399130920696295387561874416046677106697597089940186643436767534163864151754636515710309418277490972034671845318158869767923617530793535934898651539741678736677391247226943471739629154978385275201259910511433488260472677529670422023753796704286172907740468003775790770176667708514637512518936022757099700972614696027519699065275181544335066579325980195781351154770779580754518019551083359057569625575146743943927379594191892227189067158315880930066248759529909400772177360562162154202498058728942663719421036944671587944950782232634325133283723352774783605065180932671636247628271206715969092035198987704279556574132807123939667407677173877800057327230140221511569294159463353605626687495255731479042281891061972001306402370419854273299778956849028711275653641484728379533858591934153067626774308108432174984838734693870357409424055883506751186572086172569221273984269327877552355598675968487512453554941070164601420327682443442316124817166272609643450328963290310044946982658859703331774347023771868948680501860579331265282525806631694468189649473840230514927410065375542723051726283614608339963250310695959283250795586937983850874912341568431681498604134556583442930758394942099496309241389494639119100111022358085099871624193448764378231411655429805951040970690003117261075246557171570675950516272274600072000726740503909477921141580873214452055020370300002793921851947378591059647248604534763602535883449480211359303591954801342241810232464351864823152698186556828963910140477618776409040335359544262982996549982851435885884748850420801135720751209154789242690798513031119979252712583332788709383068770512296012732493071124776446868994630894736064441133582812773656167077167939716680227931731663631944567633419392877349412337577628696895152217686023850623075541495899371130814634607051975065321597357626616906757765881395475479217031679622203154200500312431728594484429702125555491869143215059872280638439055503168286325220195029443513666702602110327875408606211387462351560481637226952870628386907653872240841440886677389598447058714456336280778583327587101835516917080286068230992254644839989436223757510394045781785285784726372640969318702762127729055189948918239514622536012899404427627092638836461151598111906530361179174535162726447037374427289222234883346956132162938708900988777344431189091253848416881330817579771366446309366064047654110686051473283817350750621436952501378303842253796094584262981559505400297155369320193298370876659445292445244453985939908011916448352534798564167228396408171877062850003763011288297808292520879656085384580856746614034703319159115675823881278578988375280524045265673679152937069622519077974665517211451228782930925533925822105822379554681934334150729435133344661720401222664304515099331965120591534072920739844700817564117260447269790674122073593929224888153698546071867848348197194362510620098255331636137069475945305305650276466574089328280787859893791932728923628962296229716090016262746989040529454512220370779461569964051153716302493122534541341730725800139725339547106105920257198884444264653009799614710408414229591383862098133286276043367907344699318074308794518742116978935363127224554431747571179172694689123712537933957459724314435001417878638817441725744288572755515221110125753569740369223990990228261038706013139753327656714036101579423849443673463831453051223811211350612039184375826158429383234073498805570830395717412406775820139095083519056283074956258632641926582714319462596541185799066283461089769321711313062876173431380470971622851094279352243515641589424429637934060243450954794279948877317952729081644248595150180943609415805151039662870125204965754824460210089642604706025365715511108928190379124664701315650119644659126959471481194944122539219947105655419233339930984110153258205815456808841958005400637015982653616333510820505958083715978643090171254279604973164225439020549243430656914562521636697145836603473847806278500569408804748051910945073664634229588715015468291065222170093329760391053205635615158079362721124656993833906895467042594792836741500889876701833521088073555637400896745377969154364808911248897160928201898326057502416625406265046839552581454237942689367584877565366092719075989847370220041720786393156159568237129651692430306284697576942219805454334973056285029020972777955548453513619393205675612675252364297404936474195025619625546702155406748726403257979224791822222928794430283738337382534818859920913480778981713021207709604602563882485066089084078642393914325029307337802056517825050341153774295878812403507550587068226714788932028367952074047410603018494055353819899829739435002731416200030357988627684579172648489612007148052125065438844004981431436300449232151415771251552756008234720388838298430453171356627345907834570029912104213334060938730364076623608128997614468106630738028421864843461785452637333636034112033297214199993023339607886810840141733840461834251464322452925969644347076531234281934843331247154519220909575794682467529351623016358855521565523814506499058991693284743398153628560996850550330515438151919322932133153165581841369947210967808379274188011507984470224376812379572568397983563813592130734474206235103736224871812464586532527966026465636539341668337513093897952009932713933092695206887606768991716059228253419026928338738740615981842194093108702502399062618471429764573740192293317611778453194425880319249594844940491056348046360924346665247312553572701507573355041887155164302091274981542071819268546553069036417583680426613148722438498153318290671799411810032248227754456527289546603065170108350881412950127708029689082376467356222088228781594818406245200422235290565446832706244873977980159611169589116104236499304996223154960941501250013760108342365945128730900820539286780230191448960973735687028578527096876548317147210754410611454469048446281474474399911276333507244166390936196213809692702412138825486253302256192507111470670813957986946150753843163739117728387931095393995806338527893693717653494209774492143358360217663553047729631717847895757468651825625105890898131991992782007129727257377842233084771793627477461258789112845747433329471102981432034384728376123741966785440800836518063936251451093374528550025969231166743378818695120573497731490936317149248412730902113043858387763048154923769537654407196075147938375184305120862818819090859027144526751955782453736831004140211540551278945267364157554103772474789755226493229820604511363345365902219245898676304005540725756279890496833999275470274578213887472939151166576329940574722084428066454561816471330368596756854923700961133218458431021618934443241550951576696433525130188988609980636710670053701587923661342707947574377170826416683124527163752238101207284421679016998010761712197011839017888070985341386247496650846894523030029275867255221414515239456636103457415237699856882958595540194572265135717690490157283251960231473571415342797634638916073699368070993948864728804722236018115926124553852465618095313216132148211557458786918268477351800681532882773620703967679899131812847198914778858651108391832607780977044686844948363486194976637407104866918240001900987195611374722676195052761249468866530477338569261466501060639440953811894579114502509074635040734646154188075664840409388248540003621276486390299204052196097246257532357391186168880954496217682054939669222077929206614860000160484057145285874077984963568753170175253525261863255035032825709226590730126047995610539621340201688993323738861226693363129676511048467300966611768935680835487009837267440345060022366658681191537267944450744048575802651083247847486383269489503953839982870881682715780743930034985429318097806030076805652213692327753764247721287525469671373295791287057226367519042009046150981572128596206422547853771783624245139102292174445772717999527300102640895489956853617890005598888649957147415888472229626426179515981472953017706773786221106872546242060799370833350423274293424576673299965595480601979760773623741401505547132799919530196936145446161918548579579812985013917693196502967197724085574080926172758338973659048345860523460309313377632621791135597815161592316230807206100664606293056381693543984410565374334386017586870531493421711126358156290614664329837688000487741384963452059384392755436306553273465024153729801908548273552139493316748270648644122656414111251180504802135157553328115587056283571979610580888427770190045759563036515079791899455739188499611869182321195008800055647258909557470879544558193198830255284387858499642858850227057258142254025567889841847021342370984441835897962028479729909891682189621419034237911313479254751099873647820921238639813168415657316680012144021879797621438456416677914529725426017984393659506538190286010629406470057098099429953097282254683645623833351101636883376726270450908143940067266633050677979268396644817257873106100575896129439056736342012852364235030549035946255018666866249303854833753728669481088270253575545554765995163191322715844398371307201404415745890624313346043548225605260892091166019840009597269998952990993889313840788437889226704272194639047235743437696307280091573007072747909775698830721728167145445783620008230889145203237921396359076005309916930385467670956907389626918449370722320636752016513042987545404301240114685595915817833827254495300188983971429152191338393983122993688367959149357282734103153616128838346581850689296766052854898799545535930155735729573507154934322560932586475713064985569275606814111605593003002472585044330286736659090433392242505799383133778964978143593346575439468763374911699441774543325964549337130145648419062793421969947643328008472165528697320310104585642095614651653154206967720115455311771213756459302034405935728373346675432401751221883075114088302563518366974890815980259723336438116101425036744671487989488868818650147283446495675876393433242659155768464756809959508426418698994549797417910247244819852831124424295562357630832038799657984514438775512413203004180177965452770002609095352116020492454247997350259745692475656785298079946599825999470948667453715539049719847589675115378320872771309754753059941350190655562056714208789409665263382819309894006438110097962409616862333450240153072146942254795137606510857673641882831361819982285576254191110423644529989593013218183555071945880962566529699304994048263902685241634001550492653258382705101373048936245846372342807332399386035326696296229072588445883693091284489219444904418337942577426870112299346728454890785240932124399910154033853105109957589918189005188422385075176566078677694995558292513556399281699016504203402557091608386359336865149587465635153516519299289451707617360717475490867036706338395359434912366128127331455045814478862846625418773519722807974379515711567483254044470486118041630864635863916826633447868642685395681865103238129387147530566380943766690240087764637785619415090041180968702886764050574065514137799309392046308369613229640606612558173802263815272523942266252184681992159817275055988047535143674425551342588465151244922639040421451539632583932527838280020043004135709746289295104840096584331102176815976449537805096217247439759516867897048399616485101807771298806853659690800506586265434460115798239891372433547370103396758193688843128162914114824382515469257752724303834880776832107463945260306422325730220794329092232306262069484734758370962264608906106580886507432712228835672462265192131617378881113994202948017978408376211765946590405322214003548705719262664057202382892759052646725826570533370829575557649911070881713411299457602299321443207218311204050492664276382617208041933218094169150168270439461257098326032849765522236262849140088233927161766952876179891442642072542346441510809284841211680700737524879508430789016879439081017656784643999279283138868813909391222172034362882555179459015789107750848748072329490088941913438647145476017825017688054398160160738682544335088234873504218198313994572083778188202953646860739400327007567518644488159840968672295881766479238261386033251947022064897573594065120435388350150299804951535348392673792349586595261887352412309069422748782675351252152694759837886343464329358928903670094407156555999953719087346767672070023217812376550912672474892825964757431197570949044057143970549977261684415596425221448732998609151175333228711019580767555119522689710834561203757201930109221348048373409429859536179596841220509405379107077920833550475678145986415348755073138767094057025019852742937949520303430537792607343964604009767991548788343022198081006148266817212655016301737008457073718616365820321220072580924748098425138213134217879729556281462692697297848524039321659848604283303237942815133845011496850445779776690905827495659568059970212128326002767983347472288600754394178821463212622349594969471530865537072738767321568169377780656348802337360560226635811373745901426811729392344537623189235289825509813464682206612869711693780502303878994165055790729762852472230047222828118601783797402226203567389087515096322654808328803908468702377613432450464917957432637739250115095428624302088611182161634186484167372178075023072942845678215421923328184054551131500613243556197171147410965587664290343942097517846169593463290487342816969216885848641254297620386581554685457252211373352429893469457604587221029997133809907421936218484376175116622670013035525308204529975254832569470953910729402207152062543530862392841002304151369078616167449301632565057621968427871661631216984109358312868367332523921144261833833107515391391391837830110137857959157037906130132375161177446307433071513278829984258803766794831940103764911708651698733219745990271108200096514778568647023497171098777938485711822658468241349265120943925672015037130265636316109385444218507472706593140773154031760703161187747884479643862266262894554087683169274410929297693317764036492355874124819844969617152278734404767768875975118722408301403438187741020459277760321673531584855453396043202844072613359670737646224043179119796971002464665309950312712579352738803166891081378438270919614533151574640070703822421631952311081512967354479958733134445042963806711839035448008462527299679498571473182309143213657944122692758731986894539896874208179975245190754084372505819852199627546221703461680624614150027016349401190818445754667772095530155834420864553996485568651713278885710480817693501154362360043269079970081424259583557796462984029257106796342164762389209895068584692841338993163881093533670958028253200680122040877828294408852388618573918953637290446386855081961516883236384661111734110693298660493596431511343158919065358806479857952978306903652445940287023841456937587636571980367107109317842878695975229237625840372849249746850040623353549440159120328162094037561550017076218587911577798749947208046821286291439482763520364929714294372258470050799386504314174340795902505446006093164235361274235608724303178068789960288083865790534214781013883279958294821993088601645487651222680913246390651131763029262094130862544775066757943379338015705030120017175745899109107817820894260246151619178392586975088971861139558285434672730920272167910487327114895245272847462422805439951034445984662198908446184416499283407231519463631261939765001409896166662428030538849595952683130655036173495387136780012362843709639320290155161006166616132660602626225371809617004684310068987648820022938182972743175457178040491429778003892644782786006643905244666937920966221886382324384417438623952010146744536097188648905076268176776465157396714958664084569406145713556967141126437379210351245867340468969160984659155941063809166780220411737714474623225634691465758314479144808399609083331499438780672783550261233111257929798113712884956104350827302915376389740034282431534611655981740304684599327322581464853106881837360201190713582525642286504706572722235151213976552058197505878897553187109627017092471326340396074725359764119051397356950853038971044954420721701158527257477179409812290428697534540111723276087619662311881450638041965088116247406129209292443844310347018480786945968384179068760325793059294305455849608812677476032953308788258945955520913955450161756796168647254194867951073110511875922419385033107210347728025762822147714799630368996560024032927200755000674553237945478945594668814504264303642841767630382928800349377351307556150069874276326250928848372116472856668027618507197974029977574633541644752698073047515145752596163428882972919415345812960671628709164329878917496153856209633743835172471532345713406325349485214877603370534909216412055854513643888392071238444119211436331039338595303962796616061631261453573467950166010921547434086229336851582969192971300565484419179282478899955504010370630093607283148743326200535035251902473913263032835982541732587379210540607119389410707297979701417356909653145814489962000287009008200238752184631246560826550495663913087553317601248859010108658456264986720107695530053284985540646862042597923548027477912743907436006041361313250967715994108741136758213515287099125588094991723413705930178381234298168084575316238333958416433057537777731240507489624253230310332593860300155980980476995461892499706148198348519434795672696636812666576260877661591657635993146397196564764170724749570575423673457281851283287978252028992653564344697086402033105727734661197800060550672787950854117358494814391003415372207703399804224455564214747523275537360061593383213373461457284258923507496869194849436653239808719000655830088311858292595184408407169089062063407353788421511519763838663087112434637181601309167344718359651129350742746342434859200486352882860065716952723645340238021013598594827149069455114784183917440020668761171222313011012980705541233940123940303026225656102945334039121271062258010110946735934720192190410389083159214197014552665794696344830351840278758181234184657631873705776495639412669518874791955480783437336166938834344288343058684415554742624999524421239406451518176973624000772624515434202551601887414964517503261012353954287025474345339978433655861160862045590322607542830019009575510398925641403106096409022939305158904101078544324798418754539428226935121650323497596883556307634112306109583909739797210685501834571975687884952584435046900409486963678230829090205169986633840423554821574959000493906675132576105130298985788105137283875711250494439372448913351262315800041959656002365884245435230879960718013608836501782244764266768905737664908969570888641873763612002922197036417367218358257755562757475921927100170214382433862782047365183200182830483785953810552048977743771329053724746565432439226602484677836007569852622027606504975195004575532377589455665190510637659283538003650028787070340738074988435692203046672866708628450335174322834315252810888856638422753212854391204565772079292082987861259421961968638940711623092074507677389131917076921338327050378637617978801534546133670929518308852772180639709474770513008402733963408205531907148123265851869284567472945382043998035529048970978768128918962882711058028985409754543252983639169949625906003534724479705906017168220095974606519879466294013033246074118587721659815405287688992625027080960996192880287063658827720056428006548906224318076706989594941576593560939807458930266013541133301584691673883559417031861746166145359910830324430820555683310565506803418206215549378220364255153511192201768505307493707411121414777467313311553885946003639202846830427708422070267006592030597214865356234732407345754968469340723303730124025260365091535955003581302132953614008352792340622178443071280244839034048002238003110322031535905680721311396455311581326092764057631646867450022799541209338189627572772720699304288218316579853374816936307167152924192819563322298937977546735597968180212373311929233805176471006754823326011301536144817593850700892919019139366578093948723375683078578559154648936490091207328057948588519294635814039011770507667345666555029454216266900678462118671233445496667009975819216165950631084568831956119631138078608816092464901988794826977258076470275319306920572766171747468492304286448919245428090957871109044040792634404965600150830694496704492165977669338045672607399540264208872965118185108608511655306261913986392230118539967914472009565465806862535282567546401877928417369180068104877913726583703131412672341952257725788820623391393600250117462918350392400587249347056156677653451552896003190263959359588569124269913386118827782778489409545570772676599702350779935754119781816140325441381621047427056153998882149434425949366140063373456532989905398893006405648478359609665055421889356905006139862306252419591337001730517752302324135198793115571547449953027144006924974373990027305120193802750411278930402563491949589659900939296805714593713511108057270726190032404296048489733202720115189990330790728646094624487671093870673967609506264018823886396542467573893187454714867563943245108390477365273951509026203853301511498406196732013554460747872602109329666542319130921280726723868346772119919143706881654888976788581350888257053320284083423032568927441597306832150779750171427389206288646317290241662864190416506727162323615374570642820040388160274018399637725263650766594790815803658086262455061190751590226766309127502010179478163505877319862461487050915295068035917736380852814118045902499350147569958962425255006907233660531514328183489199024555049861463354603860814476578178649962009828833689004085166493547719968286948584752424517071364698769957053221580146044725075024715747464285314676516252285474863420845913316008619335352854136540179300719419996450508814084284508715356962419448338780561591447988233940002139359434873503731050125612965423768336816493468355246937675860271885039513956615331002361598850802226579003172268588082682009662150970908576453728339463839448381647331851208071419743120039316040911956332816314768409801302434593628492667895397757392855714716079137443289900332628324416999006559249175413669674690472507992760487803264006938661882681461677615634475019608518038801295963102457658391683265710673578897106218937496643207913531482650629752515973255960712874629228777320904393111650452757531459034251162231106417533841844013893684359738809371870944401863179206322287757035907449763853684734324015026445243172245230009412649892682996787124509483962229817391316117805251704507284231798835521630881028951097987921365130742783432446849775526254885667107922102612340290664657163790537999768941074424388035742766323495422007358468976098737532560029880706218140208780479184402460416491568571918291593131811157075784940214057372510305977452784521659480077554054259647117797771009816365682576179193314301519181218222894548838057602253323857017930384959140799579809246410595118619809327873541017389625622313084738276333596428291944332071029750369643522997788635619931551235480354956181875631040541964489980149251628544175529434187273202792806677111921463594082281835941574064045506506505542217565951738959587507622812965417540694996278599248538734461723349105431480588310707883411162377830001223997427461422854284994740786077706161902460564792796904056562942235104586006703074655038833511445939036237781853155711986376792473356345204063330413100594977330728244721323716281551483731249068053755538858288337344500730295533744338126681671284473034554067722631295734451305637708934364869294756625814480501948179735018185097998912684565866164824982835033597555628059524657788896707384550687359281313469855085365025153088981149739353435305014908226582775826368804296721904844176308300853183330789070806944565908444201804126100234203716854456831388546842320382380163989220709503222492679787872636705443343757818781866543204408703366785176531749856766711307510892103871456478633598852790498807675647024330904953611125761052951530969582174929051807439341401168496492739911843418479625860038756414228007347581251032973743837122426395127006900079059744418994721146451687467544357231811991415188383728979103356927941967845391358522315933333714289868606612403121536870038567447568399153264688391471689231228176639571682857452176563819555217054824507786753979051953160042736753161874102225383142437776185285328749269112119428654373876666372390145976234538693183389643305495836564893150357986218505784108629831806120366288171330937801524041445799644770679829298402774578361776271130144829819983218551852847167915751494179839573811722499427587492772340938048575675777587490023539713631939682791280137270936501983070428323434435296468877000232664727597322137753432335203966815252347991135098389680862454373937452031260741318057544069957917052466349222015864997930401324625294370366643775532903067505690187992774046767649203993804079810571485877912172560293768361730239188411687140733650826400431303997802312671156803186894061181751755982706999134975581296747110915444231283607025184665713726255523558762805203411642396244421595406651418924739169058962697022943590705859287164756438124355866901016788776056345766328613080420915339399927348964751000703446486086436206201227359462513555562846950633076137444187462441507005550289971990660800580900066621323275571135830817339792980423923109838197996972966508538003015996044085183985197060233223633603870595921216867566768772240490867792904962130338407889626328993611498325754211626033337605266168676629943954033863582940589816439483707030572670765840885726136610198085850646062441707247379058803498225750699700159255223638777982355380566033752520715037915449799423863125574837710946521025539513593993694693230723183654722507639597417859848471309379990281258693230607519079697718307421975210223732009063660151396502147323375756039777642847623224396628484616373674849301140289786942356373554493024962818232303296842989835035470524324155396180049155009191468886203207434774197709941028534404923760492046861925487632741883110726539019451036830616979375946815054681565856479621736306222060478504428823112631871786312712316466937291982086370420343206635681866089154669187192673648913468625463453616068592981673108796822430903736687873335159432960919156644394304061946372007795745596237393758334627271272924849532197776984738423094179782329989170865916267352132301133495707096530473872102324095378090374940011645372852017449692834731938369844417248830311036503218906774767255601898804457690705824546408541592424688971848928756569559259874133229440044015581924397398528502852402897911014412175127335499212555778963483781068591352118045036975861772103781708792872559244793743593422792246569151915596758680581505734330325324596762781163375183764499415959430830732915286871354251314654873084989855294581423422079169687382496653616260508759911224186805919789098966597817775934326934423733845523069198220742872264854654756541188505314303232224476784749910043377651516060273225593923207592152891025775923509070458045607243969955867998011264801371033730379402750535483716482409946384392317574798446072807211970127764023452824745011591211624907803414085633617657714709288699231473145029610897570130733159121946313570662706538951832794063170279775138853367740870926900503577400391486551801544441232096640170655997921577974261415903601907656961790889144744230703202082338973594963804605956131932376291689902403849759145544354357521821405469713024876681404885383466690913435090366034184544811431768604867257666785522230485877976253886521201408095918962741704393070106013306658922639432081887547701018782793929842066231343599812741961203315086274935393882876905449983675149350701398598568984731906139524673194228476561911159781390399920175505564451257703934756163510921158508229265946625219323904420704726188893956353869571983812081050169057543563022321967353420159192514370585928848555570553182528949484367225536389733594359778978052026518563278883783627137067477543092063800757964199271379218483494806761930683379245935205205534721009851084665032689069105022672945624053411183461331026820708825997336978726896841018949361082910462180881707047038130985301706903646977951324569089384803375511278605487387827908746267197032364740734699869509333661881902447038207419228229546355280849255174731841614289205805879585526916082184709861299420534857625779410355436283300390778238141778770481660543066262107646953054336765081435898840708364585393695724937272670870369226686097187380516043996735118557760281879564370801422589954429439099750738877373357199657170300634006067282482090183604499939100315966068249636663062918655596743977945430196136909089798710460199832898052590284709115198616155718845580493852280479561936451755138875568309261135548782001010256219568876522841000327827230559824109728757424865918335863851374407059598585840497441694630642270992295027912005111048836981262621558475158656293490407538429222053590777106156828987238689674748213157022645428961048812747448341078369049713894032057359781834917177483815905481342985222517127754464020948012903342347630130857652864548110288499130741249773135707225400627163823672582305641696443779200525005528166749857960910819911811974395733900549370435450323279272214649923567866558599075082905189224799462209312569331012497424427913844874209082155596209173548108634417174805354945873920863070810895601111313987253576538942958382675203943261743905049153448493717331029904593278845233272881730742712953934741949898526683708393415022724846400409510919188561257754786891680745496004664504880054695080135434721176976597199595673897985672460099076932253179166944976552321867449374820080251976808696469147683781414507399028836436287471213477631032472403325272155288994275234644609312776851552382385294082189933419553448639936965869008670947864735514758014974327679838906026764780359581305499620812180737607075833625349895288292303987953083558760297759970481095980361047112565613933730549281957663433581453216702023667987505451114467404472148196511040806053996287356990263272736624597222990870447867275969916937939546427902041261841894014065908533673757528546422086564758847772358252320174980101524771567218361710612604445660745087662049867797680905877772359051190080369965655464203127186842659501730719050613265959219553080170889584600000007006035430485902717005181464821391400303700074664056810597002917527706685426292997861939830183437470417890475511780243965392460215888532100677921014942624631833958932448629162381503970359261551408178400564354208998904426734757473361096955488038554594678175313805175321125767239502333174776055132779085967057374701960739433501368749780409173766104337723999446451048595095082577745370284645882132721551952063321903219322455312899445947044379576746279540455048218955640386373129486893629142878129540500912774004041507212823604404063551356697491028043726864859246165949977584073821944097639128835253310436956341227654971097576161162665691523849842706355542038492369707797226331546244294593939633516594849524557127402229825492910925181547942196023815282030331061402741022456669370514369965184429543939162359851405130766574178738874599541927399167180427879112105339365819538570422736259204793110509408351377738158743993971006033478553901238975526789925060131397946337881945507489577963226338692232920994657583689892219566183739863817512247397352144946145595118268889737595979255814466952999541027148665768522456406421683147973597285014389414363409513324801955152273650983406547826872073279988169983098517457530938868097429636905942474403152881936253976549998902509714858732414790484878090278699905072793601187051087650357172282536170020816337685427380810136871248274667300045099595795054724767120783386050826589662477299280018525831776624969634736236739729904326830212734726362366064647928953354579511179938876442063596824832014859760383630446497180348166309476626697163816972550148927461526443142364800905204869704488265494017399475966460806853736953655333955022790833669628337616103143522317202037709556749357367190059443957730575851974821843912632134033690486960694290281906121248805225228190725270885542984428471201558806049787503184331439686868130133608662114047147222567536934674689308925383712341579584755500023301196401236915023721715360411637722835445566599415962243424324460304648836603281232321574103230680260469931582855955549971143707889975202722290364400949655077007917496250384818351126055754775467276697425952170010712541286888361972892101280111450721400349162522211544571698656946672482687551885129592150628387244380773532224844940492621149735805065279875545791834871085579699498539622045459408552186183480745631281253909229583302394773375009366883571755573776151528779200010642768450818007733718142991692462392445317327656069480894460701046952838237986259231091090852660254839783484003278175537480215773103751477761768270172014419807291951050083418007429042085471434964499864990507810963544795267099908037704215409048123252544959747182089982382558148938803487952953881713680896129854310134765396674127692506719590899990285452001588013151879322734702429457069458431733254700527694629751686951352297384895174741138811185395458941714615334246135894337969649730456321022808363981534433340569452462252517965983052703118036892622247084227156830058461340696769178930148960322943761176248077642493417292603831910035931836285242233284765642977861383438331299933245071857199920618684920731948624664289378841658503196691448469185862661294962078989459124412376476923586380910343478449176524740148261549855508916270519471446076238609800371182353114850207319780574013697239115231882489912813907828089728845217429221384568034040769495033198148705015215594579913463668505350215978889791725494444042059850563398175207577324208477262775888894575556377742024257693641498754976298192831842995677696368398868816265904501285244492529977581138632078935452057644099592131503690228397782523974788919746063490730637179472405088053212382566799769155845286630336048774863407933748477718277635877481188637386918676887382216954717049423073549275059022104179916797030101053415631750692536103900422088699749228530793878194153609623917492221314633346662814091678930056015024139519290224532538888154426646384019076779847394281938662292201011694133683842468159348858079538006496389462905697364081452144303060528621776486109422763697602647995884116248693466723421003609270578495698700992492472371485062994044241634558937874596299305155763630668113808506481390519997207960599998941088862236816124448930384019010180676316784378577920300493193692914366511416945502322814545926470614590850570092254321878297199264164629234489876488117393814838301108417297008818741910306927691775067136109628584057402126028489472690920919146476326581689615614908978106210111983298507673383043633472151452134385188717843936505568827297852172441943371995671252251142215856841725488694953314035778953673432926635340623770100781910203227564019713565127815668849040522321530280960063368316517703470495584711711956969591558500276146208396155317746082457505457315453554338430962809102192861143227276285017080890231760969106072555315664076224464771693032768187470416668794138267232375021134145790331898154536904504589526340763325150506617236827208356927828683260365987697828979459188497639645046981013734296027756171931380850000436325890765798629021604646006732549856550869383387037515919062627187379216416904703766751767379186636174205795109976010672599832234739767313772727169575475846723244172922942105999997897228653648175596342632337659346517468262769936044622869046551885237543245707746625225442656020508484991450106619673142982809719916786263002958983626586619413878630641832789261388993575923369501213983793009441868446321025397853546384995571113042176820576973148696927629589329565934385245510797204351734116697336723649568322176189436809315423751891913912682841216036449817247516329190476755318629782598204690122763297702461066298753443197872773797392412272052298869330964928659313906893399665085028308258889983461432223279378109926508961168370696073159149301660492494743501288773088840037641668236220848511390015100581701827625251261726991676302085880572218601080447147421239579988729303407897422553233833722251087399225264352491392884979660025237214812556253191011249353178491850310197489202170533948238358015169412199740209849203167612740467385087943501571118343196824945798297438121517266281349755865514890939557464261012125806468942875137090488611961258593431363688811050873573428993672441377140742839180433258529891507365716644139230015744128555029516292334297835748590268707145814517876818080671550895235550469609045173295872665966975906559594520531378726926344245756007450153517992482515870844735415898990460768451999763642138474872031681188244000737575429264056644110468893030317172651405890248708279457736924040246649503121936237693769590578194028204208512744583845809379823274492288658056788743429087744884033301979654042300412023644270223083765644363645637724478765297228158213315680412861649558858402965597385086823349476228935296708856133621706058480658227326091750663349307944594699923392675104342002584548109053450302104899002930899611847773418795406763139787671971919876338248921788574786507407686649539606433739186867705646052917572798473907378180763386704785618283234422510349369112537344058221429251881820327575219221590266543588862723959825109358874250958795529857208796339273525145363841906558705162475682034093680489885277495074000340097026576229573499904402643594059503804615152203678636108230805601985370570314748469290102273701613386291768856489906499585670461722836139813485320217188655939047921395187797907730905925747680107622057794358219591415801392016818957720668467745013248190500445005207844902581713293206237749761540643055940431155152982367215586774589784085840211840777237276177107080762326107195904515034259288836812605080298640934554330279835549790301082471776081936672029888379792018470727216618617204784556543708502570645879286891062135696264495701379389319664213695660301007563645114475346792507978764839932587329604527748624302045479747907259828099221325048631085896725237942111715056706422374977357237148074016715289863415007975318619473110597639229641292306911166899204754544306552500286940225995190113191673570839642709560158478991780099808282861714398197896351474419122362761960547722311001214696419214672290711379973222240970710668133639259951170664720959015869753613624675417981126186194311038293988112748075264313154301414529128947114818208836853009493703095356777247491379870436952905680177366263815972023831974390641966890272569157575649103457642971761110949504579341082578230166823404071859545298624477720078057040403554000606670993885619436337275746546460211723922322340124300426594071830498368118611783079788214643835358316105129464813291663026174510105820754406389942634359153007495448058373307195704991515326283628327479589313697078412605317082888697157590032022963437691887379287811751724747338945908084045530019085161017418621495138621910956049180563932105637951631653618379078756680971175127975975301636179186654766196696710383317251447479184450248427165817630238488340028906697194978648302475748463080781920320234439229226685947329552036798720381376283621312864367998196538961353164201505306099974230836257795624376476059751067669043730305664566172859190428301150033874049888391782816058404347234240786743958320583154058207500005630875371762068566485214949212141796851981490504452111686958674216977114995000376581667423901937003315330593045833997606496510647271956271407050917461589838621883275503478009131682774750507697360609560561487999290330305038220844626435828697045270690687317747040749913337819142733321858257045670743065879416106026523988418569279955667059731496432455471131817125266380319811931029306992179152819345795892196408449409096536307551940904477511112901713100623383311528142358499014490466623775822189600130569182777446495170814954602667348238549919104278539481041002507852104159024563713089988762997094156974619395174201628719867546005767038109588150669750416207551400129288418468188517657784622709543925866360081585419042767151352512276288774166735547838716153360447379183105919669059014552542443236249885492846545999860412910268728329812475704927038212233679428675181336487787499684293735777547174587207078132466959160340707030258310600995720526704566026626947697276533993078241361372719474717027900257746685199168551970216628623459196720977591379944407187684022014304585075048070297353446131106840261236554565053169051908428280087322353007472283062609517442406054519882016825969606652897115944878164908623978970783316107151029838367254045635263428976349032479540630923951519904175371132188271147044371964886748048642729174491315626595101159661725908753160287280037798579069480050017335198431083948580104607279608097785683643114136979498930604005073957668102501912281283229183504757358631848953532392606422592017361936410880325844676832711135311047763820590891034168351188962026844907052753774056388588080791050952944560637495965345103553607720373024436385340438243379964793506188770295067441606185623450075793279738845914679221427664097342237673554879018975023686710162610808054300360137407737194018037756423702921670427910166892671368714786523099876196967838904772276001335790267451984928620571420770262955953088153592240536008809004236714552094765795733959338918709466960111853195183154722345895545915924412780516204192828608072047327712197304551102720824545144284342555496229825838775470912294337440716824152001034615220097422266561616357776821339581770841978040617619244418414093478120206478281714996128151447027272314488764361714837736734880221003749161784774301695130986839330612901698205024550389867357507432853613611728473871726693786396797005810972775586621533135491102174877296697895669770229549250900631902081502807566472639510583244417307443297806031362915212369163325859262067638135125263652737416477380630194073102201396561403229478438697901203771261422812071805031346085631522531328555836084590232161669156721538544457205340074661224717424153300256492506474163562846823227775625106280137162457176823147652057024437791824271660141651962070450137234134583813761942791855507356648075792239822006254434905337891617997281906255730914245230304497014348361581694367696010839743727068879398619749806523022350701634509226551276545234527701855428792364684404475595162287278830369943303818655652065266638860500149479815587354844070134341997459587847769012428075114671965108528212708989199819882886608370886165398832303680924683821759203314666774660959726162484016129167515829573165295598314259504376903869472865388035745803648918929679836587189822129790195133419473747003329343344982413081048914864853011269876408793425647830792670240228415281893516751866390871655484820621374153639278942238340720926232347062203922082660194585269651162380517627519843153139300459746236785400241863618863146126211865056491772245260743162946167920719931277244279384571937333828369147256318422786115626222647096524568611966486411773918231744186632243652122657580342573712333131215871102593426899310614531734567178150839709833878821957180143307808147159263275547210847643022909200347531214069114094815819190935847268373979318172655238290272090341820551420722959088925103920732400530810809685994294903000692174551273349345158095678400277837505557739753627786929623308890092632898734572606862740532989832317602787709920214385019657464262864013102795750703605591068392847264422763419249198114996696535126334537266750744587649538106659656370231796977894461622440406079565991540150576997618728331204850266602114741796053318468653645719859939485390538297271914242155777118720605080821862575457364664745691691595758498395946947943284937590541571598181470942266516516129971839861098421036189832392155103672000350202544116744049365907099635038287620139894794774754719589521238256850320560313451714926433203658516759374169121434240937997323426579468965795800160347948157638105522659448675261210387533738165657838219944904397743175018218616551554285492833238501921468585736280661581366002653268852515914336060595910998013967953612124552508027670048146668176536774197299497034092337062162847265153269006327983932705612165803802463843406882418633320275426457961112343229985653741154581541963902823910606275357348507828970965092541474680684849708045155356151165873145173974408462959099575032352145161761937595446400907950585317062784519037886544311851617065848538333737926886876464554402209099471405535626004975333897466349126184546926757331594430873161878721924283568330393849705642312718854338585876244302201918470304302377540587182362190395538443533618397964121772745138334452287350326492340283681235327837232632459953936225352813679565129717850135278486170548540890620523239170401137250750135251729688709801764082308051357977514311306701715482160556208540897942162773680710099114062630209433452482171009002256707602057510249688735637851052307343840494036122409694761297481947973817197100090617483123074033997454692240823693925394779521799890187210638343111240474861835705730193197610197405471728062750633934924078674766479861915063983140724697419090655285691462332532497389278828709283034353571976424873901603780981302470625458168567206345798395197568835148311926868464583836982565324294938587209591554549637743689214451525082041527294620436538248626379525315673999634780589002540795458911775027509949332875051603375341339716769469943961886723128375560158707883407603724846147128011153800415300518467578095515277384451224582513136658813187220969112865583061255454561618335624673122673290071594901160099908573594012097469364258650386369562576892632269619353546371561221075312574036740827120924208556348192194179502721119866286143518065360001957359889277246697285180827140278204424887122216899422674528515648361918070194822718999956513609686551087636218132310020249542675977491645237997365665154781987744209348463981116281211830490029581180780167069816460893799837791661200499087368113585183707654377358549310683430526742025388009649928893813973443866814414153432627336542891640144311973745683012017200774881666135199286639894789892998287697443286657976006118254461923140554604201613079306365218308557314168186339129803163336925019839800250902625458939573000565269100498226719047395981017938391327106388329239314408060331488912921233976382756537636249075512370644944358502721259082946973864783638135573249529144189495436004148043054542769071821528382000088873981271064254592599383340996757406619661414634598148859929049134495183109114985413490385081235472817611068615965433652092089891030493664138248227887178681176301842203032897848917560635178418360223213353893226775797998427965453977043692794721153643843203105366775670176727121900016501772899646527106432329620395911507781484742482285316360300726326576559382568561343673498534577698414431130139451285852443654596254773985779067450050933853874783071954441076224466231906066185918825314501085178883206715244986495773398431733258094903144355487223082397046140744158353662159243018419455619384641389459068409777588422205152461138802798742660652652806748229421762953956771758203909739719780243973442236311246114370264885654243956764531253733976339749743419675358917870344095166448153316851709330873725262581791871722391582915239437644581836946302642601423942869234429961022700483638209633904393608201308098635319679701073836720328662273466678158832959550372551793871966487132904318915563796645843383174352957585135090935544779414475421295696055759247333936164533237513232255322987302948499979176082184360027122601891719552195189066021076841337424707899899040358407476134375063293227154148207774661948754525167160466338222277489752464472033648736843583382097769005323820763891801930200970126555845104038703332081015902647791210960951318236296598027857219581468583885252618111295124141818331336833247943987958092649828115612114955036473215782443681793389345958068775189092893511851509344451246943532475334435228023208588557165879963495512922424186041583703500669447596893539079299267978432689784277625069472913696510691815092117158860218433670385408492051533995656135534817827381559602767052736923914650868026266537054133983274288215626396043436768302423284695323022008857749149286428315725914298782088047958347109147099362829132260893463419271568583362633623847060593096765356283894093594228283915463408786401917126308558415384148712077833499628939416386455544253606941178119209940350699559606752489055790067274549898090103614650081709302517692321667296145580628529269726140912667249835536693744611661741032733865812834132326731599374595829158934542285007637834936679654768056069136037611251284233197834313811025827203275942128144408765158169589535133935994410806712260577787023534921379099416349348935905239223472809546221103382359394590286664318802973217810984942814070222851046446432539171554117563148532514240342997001541101551951449418372458974606106840178079519106506404813627950952881441853546717273734680384505560568582013511870656443419765912627353330028871447789682318538173183260543843040229268003953873953014743777673775997397116788529055807021091561777297696417830591259077155374166953954221962271828012187405597457682203269356495285701997708637249453097383726602704359618990404762865481461687922558925757242598590905031032892824379684503722490274597489712402733987741881494775803022682854525334658478706378012008529189886754868101690654291195832103585431415811805850275127144084288433479456252472517163615643719268799515450438459868824404522800186520041086314816682106883168248281160390834425105039549312874715623243687663102971040446164690320046906334672470629845284399973330312209650652225768946539361072646197348173615848780581275684196545691847530069672636834113983864121945797627815747771292905470610254480039333651176864818506328640705142979924509822558731353071899579594174086904938669327718642163670295684315654619225565604303361245442179661029614968094729342302770347273201948444988714745003333370210972429235438994862769008955480411476315785514972801563516908419627521982787186423490503453544372590165212885204685544058356163383659690672202144752031873267995568418146711074238489919362650355364945870726210330498274447356839269097009981662034284324218806322944380104477120686551362468416239782983246100495043430268724906856685225421486956333107534117565275021665987252171955191776417833959772194719358353018537090808610561153080132838921222588888069256304652229145306491339257608302029276770387407463525933866448199394045186576673497075298369728500281912864772670211106402698266201249369108591614873724914788484799597340379089403458010001334528007441473086741790137801101226064862351378547217098179314826588379867142093973063244458149097756364859813694736209403270295958856299490407868170837101146298369211033397326315585295619231237278517172608794423948113658629377016732559904563708574603845486333877445983847222873353799811875648538995827010857612918096727197061187735843218236348626590962188597557165392732644729831520010960537404100276857440685248076052581819181439876555420179260273309150925974224667483416894362477450522639175874936754949297214098997235059612473850486613547863936114138376573213604358615024176874557422697362328584325782743645667593233350692588683596682058190479116444687089414338905807551406641314279328973635084134574590609280468284442895412177447533899191394818027465708519422600494373541293922635096791954611560154282258065467128234583637950635605608902287988332115799053363865716759812335770219395827870577605974382396827314802481617441463511734123153747928787684569867199987792689427074219489600296822626657582693183350177178285612196126627569163546330089446974230970261205055025732860332595122094844074333459107971754505048875802175356009135354113336832985513071017487763522478004970202908504421547946892337259798268340067050453735531016191284198155380474850641108913403244026588600034751311896998028587958242991048481949977473293786531372020183441983157640267880266334593733951971359618660460140906506190754738366099955603396225134210174744115136879002450560865366256049826132256677476892826433167901153790566040624369495763067418478911676455212904907530897035728195432379508168387386524444394918410616133753073522921658767100773093337991016371113842096857767807544389820818682818244878221883648536699456905094430615830360077662894196071241330043333889037213371833264225417914028144578275796874495678704642195299567369718762292067268403465992249387988536522783377416101178460239876682899735404834933867321132410702749356275596936836411038616829104619695457859474704186183774862870496148635584067841798410886840363270410865691928779466367425367275194297374021605515687537002038290494442693149451046120425804196687603884193044279191896335265879981337379716258902878257778926474308096164178441341216775356515279758682847825594080050144604160850620993317059188760018493028117230405464925378904691347076250321926886968479326443857599937502861250209004761759016835350210113769111818757321568863026822856933793630246363346993769871256100661587325249479695787949966260889239215839677026053927764441727438625378126421059802765252881946954000886673674097707591278348249311569966505919457919805054950578704980280800463621137026993624983625911449991159432820430068115166570122639668783760926391469523005378998353052861893310949890170369494475529698851451640067934777966672635175760180687858798358153566310327148987249839279552988501833644915879096013927967587917731516714856780849641547729887136920544396126851677096188283287281955372161266714413754191704271209494399497101750772430861384250741355073106030549195399624110546523996915656359183032384424699162361366932857538642627182672863860361273515856036374264393748937516943552358931193267585425962449945485231459614137075003500980253895180030469473362487738093414153012933940948070906584900829653077735182278301506832356171779311259840508119014534641356772181914018120090321104834344548790345532036712533498813910245927624786709674732112614921723022890748767212644202219158506245472409859333641904827148856567622738558094835800191378795672456878849627182609846168263256043077307624116688187148698820163697998774967138600648838530718298318876714859182853228176837084063837994336938561276080647637842450427540742269725137825455397528215171367141118864940152800210003011983699681106721895723329943797791783018349744821165992539773019847075752747708988710931493407737838176825496519652131137276223555538462545935806665796370994349659779231094230155869231689993646833844157973285549953086481314960077158582955583015708646788390038733859784808365526762751040183633592889499118519913149071042999691744130461773885508789479280737900246503347470432946484629124391610423253619020104019930160474812748286604654046530557570126879991296639735526128458127772167816139492840625070646781276598989576428209606880121150003254066217074066889058361972516265830574992033401796829415425554319053813133974106529279466623800873139628749914683317559327411379276233281874148961038739381774876684645773466876592864184902587815824895058545228858192212163954651384662225438063022514970526423459168170291890425505329794606542266133922720993307491768511083421394633539033912892102353283442173319213504023198331410767524141587865583858477922493315034592099125576104417235704040578602903150556759513068449130795912498232455916824438953199325623036417922272772313022909631003583576136516826713744293335998214575288274766565465037229239785566482482082935558854401672128411765295184838364894697390550924127851681983297816978239930046454124440641043817441229306645503030173202350288148454719699622049929223773197390576722779568132543534123508613681523455775921413070835000492235754336150961361108178787950421681240989160061344460381837446526732180539646974557586446324026769062420427529449854273724449311799753461384668533169070682446593179117729701481180513146050691484967091107470822053707883325908155142050403175534834563479207491333521684036022743051290367305597272142783546986211585861210788642712411085303680039857605169139235194633930740362553644246018546971743342460072714050079117313775205035040591003836219991384592453423729282287983052574675172012899224535548567449702753579156237422463933124498425687199317499709589229454395590770904316457792754213713864803400160393836836601447496286814466325469160413226068656372830516406533635638792941235152465209407692850543915318824205181839942776114347871155504638549497090820084465445917421915515825982576632278449683659594227725641948974665306653639386346083239549130202761063615932167613466472506718866231843853708184642785449923798830228967064554305460761548027167638742435757345889354476012605144134187413062282956851509938908996003541828524276784880488104014960738390696050498633653557677711877581362559509337255068038812560127224025986830471403908047356350367534355490916551627082170560287839667938785629984516871085775368768044024576436087045884027666716900767933248875796527680901170826362106666691643692345304950009100908685129497162042869205111426537154354373915742497805946486406909445785626110803051433480353178550482862642825779140308232704580753614633955929786156780412525514771307885599454798595167525055429547492827215745710115525145791104156643193750018077001146372405867996701179705038176182749584443500370025588120355425719845996337836579836775560463950391901527518350266210327821329418937409034489285301109610020626552098678209083582624784934205276884719299370248176216286867635661463465610472330821826987880647449535047213364745998985719646936454524285664731256532174659273857614767233672329430682512971716875767280904175709644636849278683848659447999968218178121578172302262933782372385902161572960263642192957349576047689694165812602404397385741235440624104256702419201190757363288560733736273479913777918966363330434596366219277884349073110857864682020494164654658659978179256640270268705921796404857644908877939285129840896247022006934080202582284487946386839285729882538564779083343638868439782504456781065707161518498287570972197673080290898208023006645765021844869333892869869088005913515695504368053361251384462569470292258922530982434877414571670654386689606517863128903742977242742751347475808233079487992453197650689711798362484923684223898490387968628042735681984443362670036183021334252013695565080590173124213640599616485982531909631299253692078895908968291781931365290764353734882338860035521215865252947029021367042486060889692688684676288058747481685787933774620023027090834688691378501294822627874325998630841354699531587409734116453707783866669025700329039157698299091078286274796403722719737613323869822707687025442541167491176224627306696176213100123620314444524255179548099123155639067167696211721884736743290315065988295435096562148897345684119049962676537344802012664899549548446587585003003902703566208955000051851272516505902436708866812298810358918143590380319850987158540079230065807578766148472987968806043885187900696118017149662877270769146724175428299075566401865973440281471889166755917048296103036011651009286770168734409194701934614123612097907249387393224634573552912329799878267629234048164073350117261379854959825757738422603135929668987252325377651153397057672395135806925352788921674921775881551970662827002427159649764525780852626061738487396891100287079522917993937864409666513182802416787448462715832985197307943651802353923407689105835995697341781540948997724172212986509215868022453094239930278650832542454420601013930174551380296850073576492442154897951876842572160328350873900206963871889535729902447978575029568856674429423190654119200006160362082020900142337631745445878388876887131753496138653812678525936251720959408772118689985442614202920212115137858693445201220150922965716776715505266745394405185239219952007111289118512549899814359898971078224762615901102518226934731888358222393532127078670330764527321140603387357482974148257551074381910164121178643921177302194596112094648670058401077910120303001235174950811367379813864504063373048682238863320654115542928935380077258760618220184782680315123969606790457543062099754242394239147131786023568339497767418198113410658364290218600591339711867958785849095427279719023494209160949979630476001414120385683250706930121891697621480362307460366457405462228549651319414876983711673569264741571982597523019165994101190222615232542662061484926062091352659590160922474273014425695839678422893840808703364195013837508978149130017677814751999914761548925327785294618354325727655906527519617578705134702311334096820095432865201080203466985187365122431348293601249324218084517218497820446398389654187785738286816293402301611957596834334652390573211773408070027064651432092329896302019592290032877347524256996761340796394396888720788859727185927107382470871734373291767448484227462333817071740590979653672937923329649610671003378775022474682528236375249966633691126209882874253058532091323778759670199430994714576768280338172529527902293937012734993258069944707539019101098000672318923765667047832228418910288800567059127552035313746728806637991097536992592781160409247662244579180859975118916752825829289574543196011416247717319009033682595867256049260466755294351725265065202297094746915123909177220193282761488546535231280729723926340948542043326063129758060641257021749847028941399998661318084993203493461698668860417025568049014511481308461857054103362613488074603167055492786621044717189265908535333979765161703182357108414712890196783323569843538609342661082079694420008166591090972861500935261613002102424193264891418648862891499477107655137190879985027808930664546657936732305412407220995652754147546246961124649689623325231237295032582319257867520308479950612880176469411460119373814883065857989569205784124462302978864266995682893848661698159113853334186047580833008123892369540398604441251852459575178055729764829417227102533601023634372399859984352984167236198936235158873016668142168385184237770135842496935441220567229574391110898924827605956745871161726180214102119567398678058798915308653175230368538618781203911035997682513030493900213375428216918334909978027121395113022854347931703805568298013487435974365015138736242197347977547695745157298268504297437692418888825680287869353333993746399356054031105069996372448462315181810289053140884385838870695141330405964705805530920230669149283783262711450078392059709854034341028036996012453256683465625226520647756812827632706200148198753805382148840193751843409637889853124449437962709747931936163764841695860989148923356374013589051803929778339750231173481693631990472410082506104390198211766938014469778791492536381888532672332570914854768074048126039964338336109216862211994300985193437537407496593438397408446286377110544478341660117804593822205545256158705287680632575600458586320602349453573448922365579222696947918241115643293520971300580139044735740589438816313005607232792373670353793010386180684612611742797545418030482834059401937125295088146350360455467207929884318622530662331828568977135257405606164773578564231214638575684205672107058492105231498371300151280607240635472761237790553283097880327536269421798735421226646375813280692238741147342276625861814270814810759336661488429466718516710159861978249250115589297315869217356972003513014377277273623313917138917458286323865967906617693555536905279343139769881804280100737135799071341884102886568221819064928418097448260886818733214015378530964964759994447724306387613773451504635110740623564122694545896075270713702923645183849959971378006562304342987401543119593318555355212779005034860367422056350610149269940810239452252778786963345124094761857833656031161699277189214531185324240802272738202566057211977833785845768887524627523295174159352234606743126957189218048642054254526783269412847118778724583802003493853373237300181320101088599671698699079549222843322376167283504249307904513459928366826008372988291039338040767412843566572176729458884901813198100803509873820314076147989091619324668213483917945101210995663110778936598489063489123971178729064676374620057445834814137900863314123657034404232702654196632431264149453358007114182562445674000202687117831830860279431063102866614860565560166704821802605580122426818272080174307240588589886327559208965767258358213413384218510483838486185408190587924783278402104047314748937423628594463684183456815253658206822302752985191301918991984240595633041366969654152022547216957467892143039934495106020335688625324847780469199082990319710766153815940370504768716467153419630740411135346364516111920485870301135273863491874456000356722583935884973512952580952151032205347609045030355128852232180630716560200941241818942712458575542611244959985378068074743257835817588704427712927366714011080095699806240357927876428528464581926469030164010580236597997604821309027431462815978655725556546017752385641593268171397650047317503962769063686130787400226053490087444142631776955175492588779135465192703387655951438943348430502078522309040580923242898228470910026119854948917652289486214293765398739720413157300499209050166099369634250439582235077907292057191873192609643806104418683461785387174670967598749926929890479979317279939864901859102766073284780214121283350991356926873179849568792870307815006481025708549429170073550247239130385010465355850356347470874983040570731698624180696312678705065912595777003369442791905981218495842558981878526579783984516360980628301466892362490281359623434568843774397341322866403654010074937332553417573829694198629415219115662276541409181355393433119046801583225388230376169820765396607226667287969837327495383836852277882582935290347667193116238803401100658753444445577408473467071838270833011949153096802367881525970613191362325349542297635510236477976212304199856051247399174939474457357271928278521095830620107336824619620631634121419376595152451326013590485164544930623058149187497264012594409134732650776212700322598012840112697791470501089317033795908049012918338611564201193961303315353111433119757298136772780287108275350083940796858863870579303728254832149535621895517786966343750858677627151675905403927612980282842432897115062714325161764079584328427413369902113777901468553160507247056803582415243843348506437474039790335265532408472961094555832583541686725103046257468568186954985606411754119406434778556613155860621241294006397663291107742547312127944440954968754711753882368994508783156531348837049178005305167531596094831640467642508732812766894971302677728828257664627211790012920852881816583727633624893777782971612179171569932685521980280885315450932156666436713735315686457760005204197942260890869410949587838783018242803357494203616474910092186143888951069710660437688739529040434585793324852944345278805662508044638721002082429349789863216569127982740396597831205337214093671963600498110054335989935049032508264575488783447607410123444112798392155395763223968863160810542738827991437646062315976720789726339533078032213615162156011513779579977139035812493347134929324021948189203395039856544176230438863770987491773912059041363223953959971383315613838546400752005666715340214050637246767602550867723501786078466931189871883742300021979456635484459085361143806670394543903511048821427931549339326266348497683554152212237833787786134129289472807411594000136755011767942043702222608345267242313703213506645963349999154977720212831235648898875942510474854549996117309256518559118070674301744272585681089172003096575311223085760719655561964337372125229176401152747901879586476082691649149456638755955618729604838486290307284865547540124251268880715344902359982456437411297759247037663794206962215162891592664721999062119954664096901979235799332432565136165196511077517061287165407423435885384398379569249681918650304057559382747817603720362989641980918791498509591596354597150180264807956985820402916140622073708057244199043999674916664520608464590438641410223735344962954202977267611184384281847145590408113139391846254466596293434374831021787777276157679783830783166512029028709770896706249663672398815552947961393772782689524983165279790014050469423892120961566980904916643604658178383656928024074016147737800021884859707405548440962295419018696545787266422543056938988738913313032644335566051766045134393203927089303508103226667161986551602997798373649433766731267937091751109127100359966366741503374829946415943465264395851471593005607215655744571820676512909244566402949226981644260807413268755222186127118301573768693852957918260531364078499368992764887460838333079201191618553814417454569349548412729045833848971657296803547641258236627293306895597528653520806047074799824622000145019456900108258154425910447518330144451354939066003233300492013647313246912556149647227302918863086483525259560935361879683843793050414219691139096315132353207339637008136654800769988357758451376325210348316570850324960227945361020785466248961885187322695467126651274200210712686388682951330712912174486182028425219760114620339219400930936396992806922427238091945874695909114246831980819374234489531637816729867420454753897684417022425010506681519803503547913907438206999906017856839220956276875263277250229646059185372425231612126190425399575386737876029576929437766520463384800738300657937983722824151891360397656134280499976597878032253934462856925835580272305953480648466856010946763058903620668815946337173118714710201257010794236104864935876222099497361697585816191113538155392994477696948160484571954561697078449451528057457209473773244871061617866302929269502943366030084694795740975407747241594888897682338951831677787530287669349533670693046140977646956246554342860270750573229292153541532913965837657081026081454686948093458421680881563630687274763495833234489987979423765520230571231262923425109414687610854314487222103488901118871959766163486147185284685271309062646023235716474633655110595748304805566562330007153598263528659008512342112930648698213549264477363052913781338887066406325339541991259837919161586394518880659700933928334448023941100085157718835748476073931620715081378893686586422192165187575620195824589196521925802706394389962188990954042880403416683261799463383363544826034687837336826937385012195879274826074744789380016730662659857691679037589283864053661282897863294872161343461454896811115142885405684590586606761200156194264496467631032009641701706033090212924136541595185537618525402107857108805214584101992783255087021171207628232573197337440990118725731327181958221037527571342949821789586026132826464170906570715725644059075291566674643773808879238623275219017999607540549618984272480242571646447278216145235635202340465939262129537822868463798923988346377182493478189820204044347615121794691870660108659545817083351795681421617607382709517830461214932009125270939245936959675860399494616318452642246211512162507697022974026621034801817954612514686695764043117213872839159563841786653079303136225746326696564219515015173121013078841876322884509237883487460972863180902569595777871412403242556564909490852536497733508828465298507598861734114530937646230872925853057605803087465583169698546504186926405768822844040725350980502159395732672442838223540181066761703108931112441599712000317634793928283630476095455113551062494927545997189674320990436160011776473847411449103782151058630496406455533780010285051495114499596296097473683628656506661030599573355883624385917467035168499711349244427141045029781507639851204662262382536351145705816685581060118634001331361820383991489321778799963096218851279319149608823580061266986489730848491294197623328847207787918837453889292702037601371032825893708922294512877271760121983310432878888798978408440316929510067030239234667636322022352585934254954422796998908922468963253100747267478722988054207094387188510994418065564480782387644903573502127580469946090826135288316091233648630264160628012241693546896757181902190454321304888273814214132269745237023897342699889045197129986027077652604573285102228898875437853891747037255913031294187339431153554964140557029269910799402061738797411933797236967887035451272044305462679211688005976380585948842243451518024835109609661304995226482348355164929855790829495986038959318984894931433796576510731678133520823010131983349342567756618223087228873585699392274023124980547637081371732038899221076927334260586990134740885580747395883135470765311038389868470306314325570469084110432837572797814571540175836693516593963744776903475423848566911004927532607986163706963375498385354860604083556234492140692619787996958761234329933261032636764970908298371711970740214628551800593578528974460411764754218651721415629123757341640177146142252505642702703288807835865726121928965211361642868560174498723927580406539390747917284660828248035521817245487879713395124186672066822135094647716401660436297173425709357835636821570955562733262089536785633047726365588264426431919142984044678023629091255019757558349381499773225819609883664095316393851680937725227217638843217890795054678852071407309696997098991322637680702872640446379834242851473852408116576436091198006424401534740465014502878683646452846389931485949884170095863254351666373832351549588101839734540990534374308241443553454721806321772652533756939817639579170522659985945121961239629137606575561630964964680365880041710143138148902060534902446226792510043206162251548400282079690509856395508485829568833737369655507211998252576862160258240847465789351421102133157909798520936200060835345014809353870067589400740867080610960479793902428748487644755146595696214718671813694695504227027525450126007619434288479146225441600688938072942574811824148253562890445388646386207198978852553311390442123160867286114044970035193699180411075901820953525750909467995092067805259886483083004809649637881089957653578249396715942413918818687406330502879262474506147190869468456160799752099986816034357273162465293467368206454250395846201720546415090177947151438428042855628909587411892409540027574970006737335179240424801467003027845397440607181093682111907176441769976283942562714440030543146840257054661701185463403898877375671678002833504751449441430534768168154485202370162238395832708432111638216821603535267676315154094672301142285604418459743968893015482073586503742309403636524186374991669765297195873291530785272676382854804229852905977654892754738865490852069512793731721487438153942543669996693745398714936193603974655337637737329372410794332489450812543047231328207465087857927290012441164198506954155923211628724269387066250885213232993398532582991064324980905975882711138698969732309891206770598428117171702217973388517364179499332781589255816971536757446221660987450484878842494092939141475285639685318479532601978926191696787972964177396651269175745180967159551214589099611954409611151342216263233969682838607758287977072878533542075416458102878163744945689331005236534127313539658141351961759210267772674609247531241571329345821054540533939733805466186961076724977357317048199353103716873134504525020296270924027715425947911026866371359670995654919175019779224107729137921424249650398777901990471631295866180165915588655443831390334195987948915728939607113922468643294247803435934846278496922766599953970811398244852883062585315086700667785984275562599088335905666084028189045630241910489298439459014170208766822541016903439352803314159624696570371527972039871132906246796097224117715336224376928940697111010215147301467969844928147062248698460495185692689024453657315525971216268239876794654589338288187650489523885044324222253009895396167604322915421199521524354443098533147967616904774379865322510942428357156723639250475185781412126531534194702059607764258126582244309391496328963792155669832065926426548907223504631062529033712624631062109201983822540039398462541136129202875498844726592683272020882259345533061859852508744316079806358175245918825140521409624957838150181225029573418652357268038116401846428616046573491546258892678387996315383619078667540663992196079802624475248883706208349298409791784026504745594919098131020001465921850337712526202590020851104248260886083946469114629308749322196686960343952283510023433673650327268982371139946716177876072380974092710021129132448874095890685412174566982031692552430280862762949922761040012749583205858228311409707354137242237268040919884659008997155944794559420834404113149075907701746410768336554456135568582049671021137294673742383389773831134600076877955670567593855075895981928074737702276072582727047523038665920100144383211711168330425570713414360156548647242307583156441842162813244748917643643598468265321253311955053574378782713791797188197949464125626557212775442731571066483377097867382974987271304743751753358325823013965505671775407503862137303452854265452869052124399503882793932018195346213287445677042522532916270221277027522014643369241994716898597751281160031001459387942045665440991430280755819977147015379075197182717301049765789518997032551499265057315703179183377312184132880148056634587669161151321221000091745895391826851127489125996821730892210580119619562320533934317942045701736657321101067385761327381596301335250725339608126470170208672633919887672581868864325566805618998489918780531847402931542586430044865521472355609746775933818993307973613854601460470963425786089271739870730447594206351988829934058236298501443573488647844889987183291733889754744290332548896327177234352416226732114237217406985595661839940491347572816096646628637671373275465630646853959124800118777072323293718843807271599058310316157898698824386634588941691851698936663158521306076223289937070295037967845190566493519770920517535438695771319144715596379762053345477053541776908931177887768240206967192057641675583908062163825189138622984426972560966408869714564889602835303309362535935812287748226337029624390990877042109052921274434417143767091483372519127200776395137026504535562464759578705426355831183340312651275350106721416038478787530345370582390244955074904084023706304790772162326569279996668855320757013409739549167802534763131849210179459625004404799208011575878482778779470824404600976966491746542721891920016625041369577734643671621361892150517586944061669575384951009465115135188081100965791481818179475210512957758523193672724750635787601085013008655510775720977813981824861896339419007492057209754580175387412471829477990508843096582846834561775630953019332335590526147356674367288406793251892995185084804864602678580398259866328604741949940198312431751521423103824440375802490167250539645644021991539794481051669454345290170825346855621030390726924293554815294797447858329224776071234767937897869034953623637502290651046197511722915229244967447791646711321440171932068038686891341693406759359810912749265239895853145635185103955194576451275168517042486310276313898177463352008685953132290214295418010524947221412934915136510568642172977789570530190149045734829519447440949385049322977585009472900298511605489977244886765389635936205593511600989139872978496833652529670504988263329395581526720082210472049125300404031469330143774188896437433019188783385456236306425049728105672840437826836285465666033838186402571377161455213493437658471260020502710939723312920924276836456241296905502150105703765249271263373200735990244394496661896598428021189247565487574401925962461126582868472162142927300010345117688413878734982525176917516736995958640350114507447687293600405944433832443822247589971391193894696703679266101625618767846249717461412288755731446745946196942225391267963992186446185635116901345806024896442346015759265118100073045608420907907120832021148084814070156890819682615316353928449920131072809210357478589996913423168614831153785490036948734989264178266276017936856696485209029853988945973401319226386442524060149487560326718464463357683416672124236169727196797446289953963960186299534403408001855083014477049000918225031274424066346936064056028754714824642722898843053751216839352102994006347786347054880944714098967562920301554957362158754390087249931280610100104152986193152384096331024973696321562462932144475858268676927905350928013740107399305880133375569221870062443074309563708247861612868287660755319948013884582319225532450426056245547676486868635036634350996820140059865551926433395086500102993255204166912227094070333817482433445259556347671928198490037395059563337169686905842536359638018176553735712402523488638027296934069432973644607553916092281767946148239861231329877476378732673534720467554456797958464780473641641914635292178138751559594395072094669209560874718360422189458301397679504448267013429212357321120337265409227614523487119058622977246286311889003946686951416829440248869417566006880789295655280485419261560342917523343976914022529602480415895246086397132280371994455771509138480520125086128224116955899564733934692255387446162806578059089745122331234349737938868249973707961623962625455936785961473437162764326904516220546306556933502444425687899117187451180455385904589690485545473890246056987186839668679859455836808560036174738871081512276349513914389692073932416770317316831324497758662153117154360748389087239031399404335314472724192596215619247639082603720194816385698752438721105565894475131053441395047980707369896755370264740809766820819724129730689239973886165089852336951757365737554134867834322498102006267043242742313315043951886661495541615201534503338752125403007291346592933891389506876114063437933838401239075998186979391273550022975413687687112051680006362886938195572896086009120521700418503780702562248332076697745187458779916295147102335966291209174237608120431970028824140550612769463042165909757476184102238916297662432439126329130185984924320701227777782833315982722760643270504512259079370049876260132896204619144015103011592484854600373827078725240161448800210395489886340701802947157062665216654401580177051463952245833548873237848408620580275322654752287025096882189504296839583559551285732869864679238108401689128144269670893421611993575845083955136119338329536833397756218978215097975818208729458673605642115810172085249281471166717689921447024990797531320859001433809832043858492085982128532772873289525111359535030287968653006147601912939612192348753091748796241253302792624491334275218093295112371629447390599987768183167463282891960191330349103708965845421066742201834563770494995387288940951387745230315764890591757928880683829259777540730759469773799971627741626235991471969925211714115923330290589912186104476984348206699276910707454401914573095947300572548620808288454786527594136346034277957302417650961905148355466043693930570171100214121153617024117992048979595007222999406677715049787004574083249473369852081233824870372194230977462644401930869208756093202481239013689839397734089845302027669862911401573304139620116654030542098934305551601328277769873205341900715892196044870464560390727649094705637812160784254418804645809098804539426963540047916300228065785942846235568457161524471938732276165227075139191620299013760460802418011845675009877006556342273842210107814261605215307171296787942632206418828902951256110006218476797494974033040626356077993158681617284384541298483172695671254409905988217371459061268932727275748841768150434896833687751684997057268276130567821326055149777968965979715532683861915282591187097416300907346546464963767847367188065256534029748603677309892037201095866635367179304930815001948315247816424891764154846881751951309745326055066813965774105079147468554645813104361143008877328632966554755828309888285491209149282447524860306788631821543532317884540705824341169606955719590199905251614470768686575134358504866232383890733247855427071429464501525786547855194997440695748956303899454001735814777850167155036987573919295762922730369147393931385304473436766762257655135995358591057287776133038924020190485156595580956392444422099917224247090001956331098534426017808221821507549374702910493142424498690927146998051718315908345341964305845884630945607928302374161687353968261492487022370793526236783933624512890576090247127493207922597838892539311365376077418623813055850170963543644542683033577641435153348378756989149706571258097359107558217741553264342862290684170614646079946555263708707944678581041844116943403221020754220927877237326549701259996378615170282317910540564772204980077599936145176797941646731654445353100898398911914078443205256724516043344827793584484696623063684342526818236699876281173490863192200358403596018473439845426995341453528936028114365778859125997533842417445163895358163513413537556151536254048773420410835618677033803521891675219815174186073025601441337101660960369859540305071211644365679665265179544174459963082330969075904529040728775238155123726387106512973022097943872073818337909592284446619657782816592645582509476212874410671297337410769510324549005118988670146329595370260667465876851278626973390317875384898532926797570111888672323139836620954592961604212935617794433140599869224729659009283114468773789123187938577023345199343644036028121811744487362502629326711657753764985783681415917428834212363585533598423170172800439181489072260824575861443443393559234256797311544895423452859287161315987058349715118199010043842069700351534159941005812677659168155028046041366363375928527344140913871022821800345156351618539741626973589380716384614601391932596315649895825955861583057633776774693319644001444243642438995773954957245207908544134972761937555289750631410949214890675868620229157323945752145468010677105763166070557516436417034678216327581632739869562040454714728303822823387730670879789829926804989524768794547643784078713988042003681671371417299002196539133680003008732023718896301214080306123424684115160960455776217654028332548139528554341928500527044291533277971543100224753096030643760505588490447246394692860854813581153602731953749395621320454649994830498317317611711346338869722709508915408254959633889047472859674808718484723600839278375353159077631610660025001812411540349688196621717909060940695719365139377396045179058460320808930470853974541318209232586000312426901569071145348868998314251796913947130735237150245426131210475491642449946257572862400132747904503386874789774738884651980023446988540953821909362884449648392615219280145533481986292405441042137740373459725176103640218629364429163544631113788218893608894338908095426248619677935232379149215223137411123533293664799387935144117403269654592151114912787672725214504479451403314821669553178996995915162176345393778029309162602496341111633269588241900725590074727387389608815365632421837894930413705875804974603121815380062666056588142443606991060431124327390331142099715177783395959689018301091710804950905472574019550347004965132089971859000468629739683487144474757353430273456165255849501700144180525267607656491938669883959168348974826697777349806363071581029066983289484531761997988110720247043245062627345868977723376870257233946883102415487667458403404706261123408926588326418567706107871606621806406205412075744470932734510482369300494305224933074537839924578701033920796402705678015857303372310698002013716365787330029656027154869397777295768422536742870698999946140291059035722766882301190639717788368756884493736222582690584518533609725689929201346742424157758460958297842715461296282235077404901151555866791214300241489419409566848532028490467649079918888774627234435698587478108255396224565221026191663878448409519639757220552511181072825858918434467785249971185403037125579681913564413428095188823538452741021690544846352636646081990487979044396034181283851147101926224303253944573257315057852926306493895805182036428345706759126468968774950612795806400256732832467548708630834593211769710582011269716502363526788101667544049950556895302646055413406278517135665453888890066102624433189912138454795978594476762530834150062788323718240770192397881824498049674962796500927219254596076852600078845702808418849180078098651015669024143437879129776425579136380562131068481968515979346593740219572455581225775741741388752969118058083170527057607356134926947169674958922673890390636165171280707424135719582872681230406577953665437678842901155983566558568292964717866014159960274312381955026476086397581794564805370192327466443978078431097205242480128654628149407358097105931496713728465212139097543904069478962580242148778838876688642816783870503081737104190528839472433309589868194018528522561060823800647684750336360946232612822315267220378863884807359433925029705595654486994011143732097235199808016904354901405945714694143356649741276377416185047504435110129478369416262076996749657243729038229360671301289880298364454149006283628973245677845094616608103880229321626926730579004520712767030427649529854394705521896573414225746592459865571158134802977438356865980531549773583559742057789845956200134802597714087724214989599089023392258316356559321604345500090005971684092345572923761806649865640268592922536287636543986598189825477296864907923892150756726637602142652228066029055485995290842984291582470074789296810308839909086456621177699313242368933777136797971403203241090581321581872968307125762043968598328049265530302864740441135942658367619550138286143792128104793991929110818426010366386282547209232623724197137162356625451647948205381887903120863276787594909000752560846201475643229210245609874698292644966388454399023400504433815140890163176813297925881408072682237943979798913424730567444262940584329015485045030139833142373063941505624187607048566818141190116360705329199720517271008956648256246887736000143162239746344069137512607986723700333762292266019695676377312983951504884245582016098762643559414289310930524400124593870263456016882334338678652497107921872574892217671813289453819752749630997526666534434995402825785824730086967673032368529604905298170362259977430141013438186739168928348662364618014851810641802639233931038751823370640762461305349618692529220059158068425851194307448753526710037614055464499611457254407299652150033958394811781803421831333673730776619695031456196650219006036539809914571871122537023627911891250699339899035605193675657143074408193890818156253660957341937450239202877160364864300470121628272662444755191490670935570746451663417702913941758907067354471300378886303161483928354900840512593890212696278759399785047472285388999647133357813288309315949847937026315070623689114864484014642870549863020006548670702927693840132217484063435462673309402809253314034174790188012747348205058180951540678072579457486063783262878474568745973938183181887029215360161751587705578812653566514672559715755755596775209496741349072111621348228619618875358673154835905240270801083020153269447179663850310214775897827346055670951313901315314505827160848963925620823853492782784137322340985894809137212215856020210838305529059762490005170116681632910100168912173558394890414556047539654105434329476870183167192810276217530413507825442410657169972734480447138212601300798815468142560207189140536064552706202327760070456312362764059892030745441986166385975683766243278628140165905941310322939153578910846759798062600762818321015488583939677266293547812920708880543899851724634533028611829778937093859546242742761537875314174680447761342447427486604628211601675421412377072826152530474180655836271908412218631817844579845880623973820304509788973841170918794805505914210567997544513739803695542516337500502877904803985041839273902089761151109272842681913023346409662183928587098125075806496438258083304622988426293750120777252043980284229321277744475286895305265654353268219425560271474389662354820989834458374165215796422834679278951656285111313988913743564666936530568188027832388929459269906314590196430957156333927292157469194821786335951923155171391577951335679356933893638081013374099166461879269539601193108290777140225347768769837212228564922387184610022228769528638133803625440936458596472306858539224231791917220859690626845635628150818854474713806176936698996559981208994668524120187385263520604845882233305876242901569357116174224677221019732463712483018849791563979540127302769882127185230334788733495803301324920283115403023334395823635759390915222860103504618446287891636319483133301292958602126047229408794777786790628594811399332588784285928301052602952126540554453469439015261973893233408670403746763856768228594675630775729115077964556838772776573771200016896457992861609145809888521906265203244622786765372172459413070450947657130075698807473405885810028283631545341150429243947490533539920635264481238468128955276160432850950248714471743469544209415008912913049031936593853503729479491007176179496241174482961161644524133848936136778166154329215237278370943311658280550051035089293711383141081419300231254407019250498902685916002068676351699565320587463342366882097450272873299781429135441233718708820411506999610220139797658472215916346574694270299626095065031175642635077423334063483914491838081165470291463272946856334297644703382580762582112596553727503270351739812795023795431472603408925500910101705432951706507519885345570969533994498052978181830374450441418104245445337695235849817215132272737215162947094268589752843913424550960195983194048994822029787567830818201818513882153538072211738797620857663846553576765079697419537258713639752183064358507553367123884217758574726166742083884440817997227350847260162135536458323721958642690246118938201335785371987801931236808293680208611942094616729372793884798780531041718858929766599134817855826085857879649444918687216114334294735416304098264014747187890155343065393402777445253946198218914021286153378441649133096716031325571849388827093433345135582622943005154995947886819346572270310813734985160614699624373112952775653013047504587655233620855127375174253324639641257013585762361958880790313089518350873344227914328257011285089953910943140226176414243609895959140919035320642129104919888355422076016049368810068507440937857210940528691203316285835988960940592674963823774540258635002415855245560172551058288589098313997111935594747940948785242567345183265569208380444180049246715841954124487263615692716270669473347193766531290184137236284815145510462405772888752097741293737069952457671475381813620192540822497792809180829547467810620896615477239202973055714448712329030412696643586647901843564841324817876322160581292192382057144443547152133902504243391562606284503774012813607449738427047834195352598053846642674842646215922781552558920601864978022753323762326169871401894473599807118174814430725063724939967975741714730799596678983302825072061566990608840450274281752609125114518750555047175436809491480652209495723730696623819025543215154636065880244384360452303631082165147164399654258504994519927248076973701278526389980225273199210098917535644405613645909086440436151716174631691811478691813270843326953575789240452899600254133981189979338656231288555251883972041330019754938319784725733335613157710399780521551686388800956888171125812231434756604756170368238025414215265335711227083827213906676459544221994257143048823600641882862165415244987536191712767752381357152382683611017796408656781625981169855579212004674177228025121154548600492198649603347837001997175775209867574627100448607782389105749519288730485807393827684697275549140338003625408196089290244151947258743943197897552288934291996542896739846292979370962134110453377813060291526778338098513782676018134731292427438010119715695309746754230265180630473537063777835408098382595919161964128204927361192815833017025167800579637741439071393540690545091017627926133817289586171284931258145809277358523007064963050484908359463103839897089602815134485712411979887637472664676759434245144904835938762673804773622994188344829314930242924237698748467185712441973729677996998904613641145132996249037827054226778209473222740734113837241822604907026895630381482173080832023329274270844935727817969712751462676076334204695548901864091974142286386641217007242826639627072689374804655274282943991281370409767002421425159347568606638184083385714977916930952013094064922079922255543216447207147483865024249481686753903359836444741090120695455136501511604028066959527311673164682627538320947590581785640369583764095575744488381332693516098075492763856005271231390711865685283400650763869444540560897871552492823213597380045686922192225271009798154000400518984994975783338099736242861238635062206002169132016636722294132940512784259129176509160868424027931678002515254744866738072117867439120992211784065880037000116302046846275916655320238973327989780973896579281948637424072328899680929518326756158464038261672170624962942322385766014964469436151579955170919715566978430648575233883624127733029997761805561477336849751818576249313032236214714174966474383116964676098802247423146077499978919898379880353941594668256400949234103460182269405614097123208347222746282058777938581578112636425843460146328356455728994899764000060893373459938355369434082906487057186654361120699866665249298797670130800231312381236191264698304115192502370337425961253572126251289680559894635781682602994362694689899467210085109174698281050935246401359250839946465725189902584787501906362252947479313043467205674994654097159932944957388552757005336275874516551996417206194826350211789353629832982085066449311413318156118320098365391825433595434253539692874080986982657916072372366517396265643731967102799983081996111891274233804713995185166853879699490834464243169216399679325582305716770642428948847687066335720771739721638035755863104570023761867980579001867169251778451391555364213657744356580714607082088978292392081967293698105928389820160615197135665198663610912425357429978343064803709795250563223587412128015839044940097807524921620109998953953743794322946263542569038977035790067376377801856640145309747908465528133877763313195880759534806781500940353351679106777468590622808191054168241827282868373942326207042748526313351844680981013523568384878379288155754423381704912801420394561727741545206072306999976055360495611537697142020487654239979731239584079966855668402506558409659264612516730721400217098520748362534348914106710687257397753725979056270958661025071523083679495336120478822030253713236078646848343999018062568453474949503180200475960960978133298699330255819256468217853757606154604209647131998327748159218323965037312884351127036937795859991469474903701180632440586316503403443628625002893661623911492112718944444097717175788284509817110062453955357012160345592792286157334605824286159778088305875926497080020232602721674081994953800976862083981232666185458692587369821140644546566912018412735983609796113017377316971178108352291765426064713477941606778312148489922129801708385344742161227708380966881375111920367256912658815199044993240678363566731083928888777092712984822630090554817678536864696097305589384947542493406085181900167151734750799254804151708399196576962241664416038895952937500612110965143189034830332978672289203396129980728807776982391490818390307060401314954933930614707221901227152239490475852601713479842060145713955421705734597001402339598027439645143779093761080838823227833196912623405384278175812348823866175548420256952433346956139232820313888313713932914253727480166527262103084635846063470186852227854355286467857511438696869828289857578278745164094600893848307951032114254130128951781360005296757549255710390594608637550720924553269885788614598030173029039504382920660216182831656559965288306366051849849763966623243457744155805022009796500090032125206767118621384467062829303147460406717975626676433402726200638557655014225288149595130898073457192652606593915564130880285296998993482826389565264256247528512179305019871033629237235304138558798902819284488767721406902319554775041754553099198389853659882466998696083036493737838733393470317314535575264428989287444015651349626005364397057924481971106168360711160284858788401016834129407994701245194990553264332688773190622926702609496666198289897256317306187044951928492386697440902858734095297353666695367227699431482060117517146417660962669912020290957453483891680353873433377125426248572454612183082501499722603616896968751962458206150690095740061779024810492260161776918744733767656837493654089633735554707368615648845804709922935775727281181689739317258024477982024485967736291264716034029320675351720950600221472632649241277518275147344405805667204838045119500205101422915950849710667521052080155988769922134223511881503464575616106944176175586395733313668786515011681658901485299814339871636166586061982517369969978594464123335436297292867441056339998500987293002355997384305424789883427692861063386631129727028918430580799073774743135449454309965040520950686522101722611736840390886443815927100528734128583286504974302164538688309874440389622510611885193724523271068373883689287355214640344013467200978565023291815464542116933635156239537485102581893072794691231396298424305015714754108250262756332261524284209301766962835907336609735078827221401519822191807086854157575033875595273505740763866186004138461402469712968133606755396505814507854222563404599515364132708930827616673783439613938659131612886792423671862631708758057018702577735302973881255984067798014533805166143054376431375183747193508704781113400515403688875835593558657520644228582387079352512751114669678105752974658488228707725109277368687728648720988138563641661547032785790189304292511439846228042339243226258669425812767200307641516269406985404170163075013942658103985922533997239265639164527161879680332424828786798158023107313440233585575122034822323652871557498724051916053533049512624468890473301494778901677927166723276037279226357567534591921499004841957460659707470981496020623569111391954316487843859211443349470486700527685326529456892697731639660943466109203635787046529166237802562410224514218772754033628994308726560013548042313044149201151567742055644971173877191978982683290218839369158261281433068240233159816501710402109403115986853851320675058628395923084750779392095455417357365171759305686269794031657916409799767414558740808550495721644062722926334599092100521801225062334250202924269807080284182275395342304169883863968886493652108201756377067143247104427016845492047432049261478295648532400358014859794780897686008064314677004807951833675152415889442462900077546844763874120125532756869062813448853279586663260118947277010925797963323629853208526239550335674362649181371359335778150882452947256632077002377566998782990723822657654927187911232340913596116265043101694366211341312378191778676075465909668593513006996451342251396962320871582315012216424323723463092139849653010280680327281737669820689009380112344847278067220637351783432903632918989160084222560933312690579834631555513578915539040869348050291574664264642080905635095901123916822479545819452157659013072012938867652286612183785898959036508045715585663760505793555315635834796760254373195268712572020056609022657216416885274328807235543835736484403406970737747431587239409040949420054775937829049068369358456941942764970886122166045128565100075536909382847247318222842811147375739219810330570166105383954595978121867421308951309350479830999193354524122457141135207286470284424207185932082519468745459354576164877299126829356126504547395070499014132594198815134091013115910841720054512386888155717606474272985366549924249933248767215718645127259262947288650479874914663928746502336444588405188121564859986981364619119056794403624724162634766333142689739562455329544975429912787401995939443326966758575259051328874880582240958122783009645448777348593557474723149116171120574403465910287390464605849220905227426546529365959062701560954264223520974505725302459795983208449241543169488772556455193450399401175162668871696318361596219148977854144597372095082582476568255278584774910273623089628557164541446547712210257212440845416501159335989912430411512869613124244316862067170778637353999070654341300111945501438708962217720394124522078777882716585021154049639854763496959444530849856073392685425230208651794567045436439878829961301229522480100394116400185687975487311804421278238767278785417471646614046199692091807097242520320817388869095723036393193070535540895422439077467261215471533060205005576909491775238001783857868047450827980915423978626924848508779094667491266516530580146714821877114753169192092182989485124280022053756453075639894160165101733378512056273444588091788062109473272828434378478680177393280472224439410834986701739639194591938286223237114338550276550655216485659126145661152886168097613279698157914187351418647719440626126788917331015096339096490284533113785318452244510892443889429934152130535797664467859687542935526622513676314700213904418411721084185274765111803602015296626577680723407340651585602904693633523145372416084788490161804564096655895192173883997076833558297523658170693260845938628140016092589669994917038302182220168070981825556303126542663423485274557719704121119389886931049939639826381283547890908753415763748509373038993285357580816901353582385562048480583553146577081814983995312868921569246553425128505639663159206211654815464912254113516634674748026819032869030921827550027610851528210152486350862823714027862266018178630636524246199059247747715205592154168103911503192361001139032579211413746392938577978475793986737421625188795486056069994400540211799280849461557014030240714555648931628056543142787876822532535957980027459434813812718280793857435514796953918700410278665304219875543713493731594815355802690648128210722778794585312613558256964617268561064057431796098918177652559962848828146838607585811340551283904759605654443560481904266613546153204730994141042873435511763425391383989012764328852032187539320448226585662389475303839683751543912235812085700761660774096896393007781100878675434477231217497404419788869196261637824601389666694420227145074342262503997019194356775340090081061296467574610871995504261173367242084186274781433515431849441544112648904651602965569136781815379276375078520650271006885993903588580448853826220854560891205394487676297712301051335208352723839670516674226562496803514926248378613616007080709290078886350349889363237425724723040795073288302362753722240566718478577362066877237062263258332056546314912855228915514493457691542635494353429834206979559994676031832509729823437720182097376896974300598782057512728630654188232780779661866277338955422629660193533845148125906119607454944233113471763519587997190083999891465043066910422188289630592910820789923064076853496603516797909237316992969222063170181035019735235134378233989200735857176381793345426969486109908701306735668437618437821403996193551364587663084728809340914256265511162140018564922854791742045537393464963104266437418856053221157752531329668101849809490704569092769091259051563949170226418745392740335495357522993143339871691263819835520126069780899684576912733952955715136494603966618924077744078532098850378687994626886386173385622921245318557172848698082476160735640438818452108260995615809077954106340543321067925344231769526393642455612560261445615655262683033094757520549085502363959089658044059532062975407695106777511116709297214496809493154854302285095240685100533425574516242454182446699725894883151927820444758045282503983465405934877614612465708424643596270698333865714789786360581070308588594873701117903944764478378786950475327960794447411141955542897995884992964794789618247787457888623373181049536142052646946518978390255429373821857608752028778760749261007448817435362025447055997214828467517742600439902189332238576574850902079796267241943902710102862606209980090123347553915424904335770591355641052226009870430233845017677432215011656169015362394309435819030053960160318960229283034965908782145921281860202705548072293583759493397795346598139305235524518361938661045770328345769884738938685899409881442432176082891856631599606238441323595893336835380999671677071510713727859941140539127985286072959300408986798544060562718536351525369637315013136536765405903222996230480855664748271607304289641219949767022160897704707276886341968862318772516303989797001572943947552596822127631811376230343676620151101278968353589673490459157150085924552374590990659693262741445327575464389293734293263138315750305507192649271518797558534099008389421740120969243350060099465168127086463467123399052413224799794780550070050281080281582889771031694168066623268092518092100566167750301140018967631241594096019615342692459783899663513053239733209762546164755628063331423659460212298944873713743377652255819359574096000125790235429337388331230742310727905740017273184832039655393868082298001253412633931497613840590990327173229604557266980056616502072718645930424787714466242713033359906006118184087718607780181333145608109628729910024345840507543439533003545982436544202547494463930746868871661648336215304608351933195083672356941291886073641391515628498120798010525710855579442770180295006082497943772580769369990067598455376411951646134061013950891334042137656273136633890190561116816713749547935957935694403060384664128703006406549398889709614061598979191859779741577313221437657984343524815321230874701595015870448563187989742251455774235100726722411301498882083441455750586861119900086511071172438236061370194572668933180058402760506880747322567437603968914944210951160108754427617518080660840203454652260171472285359603515849643957766776979347895744646495285783280995769146515072280987688566483825846280965983687336822834594420803030294306086319702932600925232413726317872870545738998542052618802169732378375627722379881676122202402575645254443309795896929696820707228462134558400840910508765399868730473731302711096796023750820291664310713290986653038607357543686669739522377656690723441905682933898429746129168565518115238635620161042280886010935914269490701326144296664468433486259661139824983609357694359612982171116415013000817296836037150144952178788159541990399856897022332500744962942788140483614223166038228177179616262546554037009561152412346699949717653484391584089821039514018234779233838254142970338506302872456455734733552454694269332408615359800628501867954715174291109234966397087624285666211803054838293595105446484181054195358296687040166271264727785580202088389154808248136243219598158081269389582083200545331215312671845993924165583725000376201276914299501503575974364662153921555379757884700476780628371025425462796575099790640147246693995913069831150664710247518960959328967064614825930162556377477101693083132663580343480716178739328094324752548871541232353170043799574831641028322730943627023022374881661278359936857986155913349970067844887284143331867430868412854536700364240812271374008132392053223462965610068128417323597633525076326822625918677017414154701523316362302194940655126702216475018455606194593846970388506806702462660067513190416890062521236879111348597442238550947813017999469780669006627261139985778172761282389226001192942030139035565359658180051966812634914519204369048739506269171189294083802489444823843440465067923106848951503030986876806336468284875323226935875636656910751253945850775384285721766817497629071804969601503031940052998833345383074579804932000199131409248831387754933319620116248976766270004202659699290745500366825207679898126829514893323610253294965659335720282597452480499716911879998480116153486479938179776269949219333477191456475681655573429555882734605190345311769204748641950092281265447768551810163626502297400752364907453600763044861232591552511684349023219805982593794371927662341937000699717021996716213577569612079658289162987092395265511355004607533527309569182354016593563747688889972833279765957964891089971658742778464387391510273232454044507509254464811569220526914007141962117226721725884530994849524897170931380558910192279906404539054186095708645729230796866118751507729051456328850584303356861842530502587029240063125206581737257485176752425335539081481420395404783147012184026279646108935813826840618594461880202143495289331051967099800924248177853460697664355254309751138008044236232643378859133421697539915870239445362235483244072065272143480650408410349737047281488061239523705930748112150795663869722900758014701093697452505370490879681549096116373372029086926730469422692080145482539841252930924101657380833323247043927644074987355488492689155213054466800726294192405682045214714499447458252528481435137740899700928615863352877781464736856506407231267313891628472205369229468758902741028464052312141807053649308052964341377535685659597627910521322532313237656480562326679119044778190165030984076732601271197733204019888811038631253662423602934949881233858793545034686946152613588425119661256212599736444009464431105411991690836162837174275435084178260086424817450468489829486902875009270995184542005512305204900912275702701259877380446399557962311688507014397598060180781497407479266093166132665930079849032248652861812001485214425022160670273324728748875667702329919084139592977043596958574221403689826937669487347782928701054234783020780308077775724016272187786080195089813293238638330240183910649298335907032798171478204095878691281443816169838674186516685473168011559704083888078691414757836911495974105783166240637050029695275370589130592392428769730584208703438774190236447252244716831715379398151632026523132156080441682684961952553256124035453194409419130274323594337633645515503261990791337781489673359610279644719271070640470578783774525775043773088289183581490614478971069170802607095656053664965819533784155947194817465186738620628498671171865825043736713185265361010909134470996658907623010460964227607972694895046276105523552844470730801757084152173357744474034771764965086889080282352870946398184267104699040225673054993836550906274901498371928208443839957428315627755964929770614173341354461827748088589972323456217913598324047398458386559263708221507060309794693222539167183465488754347693140547699645870690357866874097498983073303603213241165623775382211867238456055636885199048482401091165667148784614689292148949497682693232670246508100748610650992550174809984089628652406348324022013377224376241894710013358546182569439105776466366981807768058266030858084928010773575171969590360745021032915590747426151617394103976404264951760152051883448158986832550239151634673382299617062771210621843621931789470282553336868547914804654465963963345776452343013036871941138611359027016478136903371605692587034070664189185737399041315260803399771098193741495899631042364987686089264512443192779765081790188758496663705493355202425778828936129559906840133101113828302263448154971453068530964016098635434910889276135913778776800885651693336720302478313389163777490044261110961896231056066441647634865571942735591303900005949802718195422397625628102804951463413788741110548441387363038786300162931819099602665115350808622114177642097256585201490049337309547402902616416137984221017548799745821150098810972419532870443100563836219929830072657972371760046962392728750289368961666176869364244861819962177447948291038452903690246186797857894300739879868036747783226605722233734720312304556358649321500442601635272419890496054027439483522298564673507883136423457718122826047931522840036977657348846500558805616491410960181277819586082200773223151701074713162260114865886787518417282036958551127592810122098276675400345574022581456561758038097815232792501117973365206506229281105491824140492609881106558062166918076777703281781271447322723738881137900875038646199293093905868478535104305974346571439618261841699982641456250431068161825811687533281911370164841938101979447970787262014397012589286371952316734805805939406363507489197150308657212097534658947154704013125130802118388442923891404829556247436187097664735454587145058932747574020099431889167604283993836798754309766315834504286717926313901693395573540828943708268906744563199509755523172918560208681292851138237432583768352218012758677048121312733071348938380317021197561506660965973454929820012180189236043641585643979481163295617602895055935468576620064707642863506283328233706881490500833667232370676943652215910687874341988299197154114620423015165825358857347825932147617324240482617782564237391749721419886077185188764181340516326587521248986821141937714985619850600825989008981541320785758105724148214678868497691516145384094804978532078825569835162912716350133556667420536072640700259872635227706485697829437777820723291111960815671694686090588789555163863383862947663658154229400291908880048594374453914647411760191684878038174702952215654181549910236973434935908417382134426328709668253708387557087948691719828002714830141706639787739386388655501909079453177816044589264037329528302814083848201503579232069742042630086136554577794387718273878367847448950390910660430701340042617078927604937537659902603143579944820450163030208089124225467063528727470950175170763723406682893896565935663597733758120627796584524494951910230736088873968346024312870568731247994579742058536517449283003788910055533684984964408047789549160979706664881022011144374267827735676572810401654060929045252124931238042121687618438621041110510741293483951256242580492002522180497527695148666602686907398409861662812230031904990237703702941912090389659892819924700229201882118653835347080792917481744849559833961791436849987820615668484920813303165862777876974425074130101943118127553717392360503362468635176211313771237312561175160617587726302647958095005415157059300495529024298705528967984072721654642615497504138822975859996056624206917355184625660688181837806106998859499908249175936514587052662535184460408469470463901611721832632726345927143446980882273968034554800832702062190408941768168485107287767936176035081791555186206135092126590584062207505588745339826729692571864069977982124894831641571356287261509471606857474775102744410824114785222790472125775391540012035285172585129943863727194956439471640960817753586684421386314270137097055282215125610442586650796079820678196550316864466073634030200976868544612792272949556921808266520743553826543328117312571593882585097619440649333269943611951474278906307350281859705758935857970771011416220424858468454156202340401202463771742461499812838809735396351301048328206845434974789844594393420607924618491176418165311862434098835800535954235870672231762806905828510758501765382146429243133168538307705322395305776705222427448679894765570610790983946188473433047290996625392383864978275763059202205583795731030493827547587059758705994712530857175086287853661404613906207188343240282224500844515542398294246880870744980212863432793456921085802163628047774983604722545724663997376434569546392752119295223393450356899839379242296712347963722518111911971653821138117719485909341177088889528666517512272132953634710951977389956541607909397337646336244679293106684878875435621789072964166981932768176645568271908596222389354633767671528638743562450844050754616610591854780881594584123292143336957009812740303136046348429747948404055169166572741361989538742371831415572616107920680034106514377341758519142322836830560992654984390069281124695753995636265197906572088155008076642047265478251989019503993606390728984786767728545741341543279713465097723046193805498112578412482387753014828405310483723235565177861804091966003026528548972060890177395176297815751737650873682809655268615541058343977258113604471853670169685945845621659618171691979044914882480226888145913807514074381929172100369035304630575535844437357057109220877401688794070322956016192363930985860699614907447645615053451163363779461360514167353143448651435047267815334841422540308907914406839012387107230291255695535855853979939319616278194010999227103858455770253895224842094606601574782273784601120536895023962458534745971143670489316551978040307687047312412679380351104943816294765392922921233180076038839771133614755414412626486489268272051917656137746228730864752182156858067402102196096063556421721133099827899464908953933228689670123779942519912340355146998961338098258405487646204444712649406504135487161908684710020580412462752528628598496328115135304443355618589942616875513726770909108501963755836765010262222260129865070254150176869165176836110361335579204928713565442760145076738070618539422534735679793739906966765143667064729284878345612961351860400068983799140439093355117810711142662186470057346437244001796944566729459123070636869751809537293856877990435826334165098753015094034514327329432071124977314730835347598794604790909406684690272674456277805771883273530417006793466931190127482781262196009763527474487098324074199668576923681253010240144672849386287722885497864113098686813482119431519077199481226959563643897830115506476778716706661853758470133818809476761004585685734238983957651015091024802593896402186442279666928209896358775186381326293932664836440391416369783434350943511999637242095936480502584393406423931341401555515279937110057036956036788734157654996563067530079022500467106066472977096672637975889834180041918121593934327804693724354211438389847133744358598756124032064377495013842428546402749912283229780087483195276286372911864125410418040557836184729449205937486447352934787552982578904083849896118351876575456079864412985918046744628746994668398977025438609613931320698912848873524359392465854807214831771787262698777665154119893519182649755420358338388847148068467093953623630692451558521478611919096689625869362681619921432831863981287658792744761780746767093340767581051701236080607686886739540297265900595177556165111511944277392255971937572962405746971368099620755580899533691240263089347196276259927951162187397465227408599032448505502668679415902067205809655995836691245243446525025868049270115730790361513281196581687018530293835234939100886184682500810894296006344333864381144834466654832621470483869128477793285360289838849810631016905552073422754725571838778177418683232984871946755239854074858224314068644505694060642181149819888042019669167706533657185693214095213913616330409336860591951505017060419669039923549004262427894605840020508820540584628350037314172297664041450209780321735761424239176832394697958002072797964546609444541236535426578944522289153903295149085141675796909356720408652087552497175423010706594172264179338751942046470277430597150493065409324110853018305111206058579931851557696916153967618734671815300409299807001669700459294332470239018880538735680307981495498757962266588389027062609739123993791797307496282197563108559485044724054097309558205218018713542385337735743917704430700608848131419023400028094277870829192363795855125022298911497359282387384979565454861505420494430758548798057476620028967457803908074272726854351454169657794734566879948206967688398216464131238288931042391198977674611309329917354694487975684173314226468194193316239588464543448340095143360848621016238494556416239903392776605381879388533033738924965399313935417725519981191334555434196458188615706757612538820698249000063473816788374869746733808556196259726507673119156440376880944309895874498241026946429243933469655206817375720471812680098971148750881131444240044786733349089024091901175344953828951650154448906773643658502300643740507376478390391402171567779315058383571778925805262211006529659178621874448767136480459246948896332219704149285515595073138265194016676322665883313413717463344079225740454612702647225913426735311493211240783489796005033476135908668069530615193927872822147545203681728857954220780011453865329096700137615071413956339915866884496634419675055564035465458942530907243303175808236133812126411027054524039119952392033249128012872726033874566919389629810876568276003130765993232167485435207494103600885592607015549729465095374016075604587929220245102117747990042942936960455008606481577905948581758024264233075363881204398309619158682173305125533172738932627952393957777571803170197145893405282956712312612509932280242808705231850489927605136630195852048267019663678613830023667952147743300170191556720882734631793571024102073006318657114931810567100276719704484703847266673234102295500328609601720077295192542832159597329306844664531824123553981023876835319765653332362839820458949392246003288506654852315320508542970069020088803330705095415624474796354027188707160536238039621467855156601783950334533172112485378057888811953674162181026468950833708870882141853112655563395002330301481543268443183978570629202969931274573236954698788844936658973963379807194815488879177355367145907700609654526006929659514261583414954328309189585221214332609733549573202892414691042229169446515841878394533105103655847639698787237114407143039317557123618704735652049544883625843230906164013560274271533567796661132314450233675539089134006266639793928004076501768881881998736695300393008400925168204447708163609887450506652398576571165117223453817514917252283752202849870221587995601072739004756755888141122696289128431606436598099332401570709785649515877976253057345843882286255785514601080635787333127206855402552011096517238830277031973745903291564029482168694203946267654895114846878297246264389120929447705455379820243809524460786086525724424668186407700454116529632786030552973149015215755811873330711561095404929179529146799077187937584883780897118844521670565656646166411664538378132098483224132981923563854373995893058744523176647311226808058965637187577531187107738842893927840524515115929562659963426455144429833947554160378278211249440155509274377511960805264481680101683496131284779327611399824781607553749170102957749147341327929731047128797007774762932943944191672526203620898965928707801090809018062608527110231627741235396063852970590922368485556507648832971164590228736088084574135106824436594966699074092004425166388163789694252750572180243756417796366070070254686759069820896577059735688875913896870088389384664972646977107300486825937740113614653021077754980383329543130180734543381435879986808254561109399204266911370715818711817746784195800723820724822308117944484825453908954348616159324340990253621371497233919819589397700556386419172211731290609578863173728802865129345963768993348956932606716722989156046864696504714446533829479774980545329632969527490064374338721562947211020080688152788364446471756503414988708670880619224001378742352854268497804029532568073882951594923477435833353104945759777649451006787674876812659583579081309803651125629932981983152280745036450745796580788704796449103273782185725561139154319475599278288863886477172689038011223430002479539342850695436407339267786826421468010272817835255623642592568014854049072241489185708723006398464687163472477675721907352904125768959037915114791813023231519933714253355438727826098600740418996582201477285911058660597839898892568575873035366008767030932435390459112030654496824051624337608425401026423206274748391453851841968367905402803202145871744572739414174569904678851638121071496887125727851061285091382060172610951680825566560406821470188159893776831147787869077924001431724957409305997624460277146828597479725878433759719739032675517333381503329684067331689145354353382187974326277262099164784510433032244534924179987334704973540387038751998713252483550303786144302616976733558182989780841328223061532272016342577549895778016830023112515774915053470988608920959160940391683013494116104461772121810475851211356263492734658780241910168285987861043256433655399771166079971525587374394317648824789965393894539886103196798208641047405531866004427393547562753996743617629894639097489582074162670670740116494075733478668003525848715146410373833948371324871681114710103794930832493082210560957616733426517318642588029434809255395467553621030302334349980319726591407367084535760072699251548509739244008265923166735604210008357861527131889886814085674277848827940098964935374131167850016190151598810505254061615622058151725446140821525752878730105764098464678122191528452024083443166907630644483630985479183758695974548996185469898496510795177780359224406990697898845058993674744943521692365203561046892207395302817877387433050120248661050955893098051816850943707157139398915487756592861971724009771887763246943221256348113936819828324670131293029312212854592583629701842329576590827650751935785016328316350229998439810800759338211597533879693024795542657535344241530665106766217251593568999556123620495890946429392102817377563929645977800955355685565288003673423053037088547662258263278294885838994776994621630954579878631229519637204546325805788301489611306494580556794924938335753229206072674886511728650698171679820978988674520053562735710793774570052532921854208946666948464587381469231983986476773040198021509297814278501926029676884748799715966709618649742174756522083957271180775897935712107743474199564739175542737510389003682651955434845419395242704004068580132859988807030087523895847705564562833704711178481294215909834081705390161504435409814423795828601937280478275933364538378175753742309009031021231193407414336064547302709443147492823983641942767042697056055345948389684883911734470560223298332050402963170301546870731380330305284083469196091974403286548892834026722897905051301346892753900895040680387519767259937049692727675575719417401964575658339536833717644618803585829499404969641686484504362875315765284379635387066274480415101244407692847028492680737223379656444493307200592382105378962641604211430191286783862791926579246863889898470726535340458253431941915619316198301993131983076044995310752292983574126836272591708125932150817157308446355408859025854497788367310525710829688508207153413654564377156286443776176027646051112634277514436897546584235730651012654673405743451730774848634629283225962403670542783382902879672474875307557236541233257214249292285365208150611454581062284554248063058428277739739105290702206131278157325061449527945535727803776719427182320339701227736441238918734411523887691022647804002960629907533817590447438546998824314578187329787011348083397104678793859137335218072786190215603901071732309170413905733547556776148312702159737445146421146492053318211315901048661978778900733187226139945926937255109596054667355300433507443503078887863765903267645559574033121603744251813135074716871906692065783430360852964125597175978544920464180072061422146773130498869285098831155982271006931930168576294262570629822786741275318739882390756776866021778785084995530486254673228450064538496038112544024096366839699497598526466125524274513034409418497897416220571836842918287978727917206144852922919290544583619985828447020010540543545396276117009986085901825084985799154245097887476111933538390963280292065695004845532231955099638456499660009520337203174324182802210682912648116422736627145719520417488408477840840554791159982579133747233606843992024794076962987000843981306939630428399617075620233505884298117162508783122949541690011747463446238019436110992356698701173772799504761946450057178301059972360523451949687123489610469918412700014212458960878268598625279372604391816035146149867566290116161072746069987745485485883293057654490364858233724877845227278525837814501773078069791959378187717647335034253280345214655316382282728827976769717547571658391170421419970159870189564894997689233340704022540196609588562761985112423829494163638127384143886947099076702914093878347880418972577714528792977757200033992913393013559233678623515632010855685227186272295461354170095629324851598537025709179271379419320734026775074316639240688316874726767504003335212637458599515429387122391828903325114764041777085710039788003063506041961468782751348023499073049071347160686688229090122438704682373299819928927298813522205919935165359808202714712920540551783140377613095608257451894641713397115004150564884924415758591674223766683032625307552256422102393044653804492609342414486446898143011652870293652784116510059649738031441192349276735259899335794580554275051668719705580755495641085344512017334302965293241597289237576786138667201133307830041747104948084843208604875956255490886896344089647506021053956033841421089825381395669935182132114766575040230089768174148348404411829989578587883651469364781389357459230388092948632094114830021927837693198920958257118427196850189381822755363382699932402163536054489377372323083707808519380885257402290169775167830868758354109515198720163744083269332622580447527240147882291329207856024516667729942712616652929398974604866961980576626443845194494218035715756471174142892129452503251850275573846921804438538502866083504963988574254115764491979541984717392816889131675093096421954561010016406308347192721177181835372705899553756693211960959945943397114058928381802116569795225926506103211800963430834147463140144646121764617651170297333380236463599786860104850224681844724768798762830607430265784294894951228384160653202440359788581992092201426604938433946085232063437270431976062534986197298178086004700055905001512555501635810419607170154533541886046119889971795197386644156790356367316810306918115008202714875265860939718244112606199291196188307166240916362737461174857838284669166247005218360374453325343929196380061531795132239449633224509975322354090615876437972263200722713168102866619930781133324589934361188128590245534530987560765432087765148345465340072677913849463827661999224846856448630428759118100799319673580738920747967661636292865024389140428985309519581082737490769315073863076010916227346719042740401355235012894860436575584736386160289417824623739025181413520792610148196834547222325302581727563934782808125095226073547737323171145660312123945111386900945218434858363540284191094951919402609689991801668404537999304276854713599532410206074610622262609476093104735578018029206785524820133090634878679550853652439590410385271561491664674589429132967499694186344695165406633768924554332717409753926322212462867231461726922700432618067438149812030125790497150924390003043648105718688254058243029304399971719394721797686208915895065814966004619112369891360136720107203071988184370923828815009446413116535405797460727204888756899350629985692238065500466231818017689448394550865250664219729528563423224904089664153592774139375832056018570471765180787990946883300717162141905328862642905270854501760380955057930528140632831448964902239779717865776958759003663518020464587189445304632843957367253052688246176117225200971645714679192051943485356217706512086958572214645339363993708799700241568331687485906987548644710189813489529945336358949885589319619143218322286769250227312341067571713526648882838692430922615850906886658199307346835515694421986085104595726961002892636168999986221092417717148042558405558367626640954319252704993513915441184613164995511564387954474001164880230526195918454932503109733239029641052718690976344183682795641104940331699916121834696864960823969801623137498635974625948065423487160940631047643771808895099172619156373740813268999580038336236340284550329477862765571582028767453126467459110553438867100969368947358000803225021381827266305805998439657179959199605687893671954301682636304627748110221062015882579198162117603959026688494386146322912868874746162095677576003051835223315875357840619528327656870368791400416513069251815813056821988461297654292114368700143639843466645213088377528422041002613746162713336823906774781974460420944322364427347554922078944181596887350945357449699201125186650372078922307898543253573206453503135722784831424749559457496557371308430647517585832788069234160636685895154789880922004344957669863976288749271117335951353882568446957011378337175352902958268213971730000960686435433839838335062247692776041994951292822057821300074266733912062769961748896379178345823999268106118306848121105884005868969920803308612880339169663986811762970782580851640393982483695209253577848116612496846314659092738699401394299156008522422654212089663354152483816957453370008858472638711204058581894768287491883509758525961547374975428012806761599360887520988466513883666933298137084134732153939260620218129394821563202654264340854044954462145891474051824801877892787636380861334734081238432229253971051895252853062791945535013233856858338289565591161276803164218018962217703483303704177164692394714875678644975615460127447784910633578769028157852622567246284928567082403897950991590022994245055185013170567241930969999735504341795963389588856283099862963527644203499193106121160337641673787320199900339398979208063577992235287959334687259081865288524413238591457279995248327401199437502530433827117316863187764830772847463726998711327275719610838889894482375416026610224494583412618533096619009428932081913565677905571259597614526446766323863906802348496066995254706369241390743020213521194047983130737607770823276306011922781037574816007464497932049687472050062909848279001435484147335188250110245095369743268103285593799005832273023038760346284093406327652605010914564585674377532700648087858897449353744245722422421661299237870314389448934725217935472847203844424583051038670027792688723313422100556579038770438477833228447333077047149336109043766745602283063058027575531725768212753971155232558538906380623276771164251102915049389352103642660020436608663663743737626810214437724823877716900106134361830614661237106219625256636264305183015544940262026232017635334958364294155832706322433248406458678424234556745430657193209728917670351794217385465636274034975440203802670055207990828296086118344195911194131234203377582364654123156356701843375034762622433454707427853681313141587448903817375731698692338756867145122898790045952470922423344010966220656173647831691433673125431782346897962955465336982128832071714794397287038832558653800555841537364560976057303231044064068385268378413594960468684789218060900033406064385845955360451735730006445814650720827879421038216058392387110090859776047280563476965563164354821214621269611970653095426521161550745290092131718299613645343186538142288349827827191973068324263296524896441016534897512542613244100293778261850774426108806184445794138350405991153879950885230256429794592744865326609498300129573317315004043777082389736560683905834886242302377205785729209132657221245194620880956515534848077352214571505789779932788224129202344608286537238713220087753451853891214602201674741149336910246613055137354624631661498551684959927786392502597145678832960201597761724639544027092321912547279079385583114249080984219611593889246233071139227120916642638768677533383948148331244084858522268601926829210341758530437797797982699315928911418536499528848184432390609780349125216501960096766841274762110322575315808997004386652743419685305501195671034631717998611934804581666636989403319536591027233375969747781161705278092328751106571711266669334135279137396699455972635942193046811650464371490673287898276994743203892861713058664308578095941082971975746177609933330269543670326505425495329685273327454289055325303699467216917212504188014693587194796516807863071146259887278287497211374108180479781180972002060806664542755453852825701973578248601203209023735257513015462085085394429573083071210264408015304656670551195473154614811752763568942801473259538387235678294565304962215206344901814570327792910982242939251297699232637138073068021972463730724864793611371075123331742052257347721126597158389347371827192429353838738246452593560424238658246233887630009182341702301110026184182387165061996977612884859353852673559620751939208496071863824575692053143513619183058934019310399859621156177620050837362622020381842268692743953472738026979411376967241119526488403485866438872310652310306998660829841707127395792544470772884168519305370574952251442199557787201921669761018212595673489332325630267790378102494871163814132524455991837404664636157722384639323956554165371056987344652736382675742902650771005286941003099707714259686044633669247604315827395045083929706221161332535361217434569182135947105496708749977923441081279790159942135561683164177160811645646240149629579115752000931553737352682015690211070654903873771418459238213781863339438375026848917641343464273255649973485281085420879505515874950969119999641682885028847435504330630597367358132998082482442601819923985252471288360476483713949539596603340750801589179787402037711851116830911143241613878299138211911256757419645666183234316321899275732285182204851544724067045328726517272707443068458344304239831312341666389225378685009334632466926579554838166486481870939003732347796431218743461420910048871127748415475954871205275311124668322313944878194828821858051103780307899293605114435825175941245512902353840289699776591603861996672713134975415425973359816266565895501308774289599720725221861572308517709666819798473629700337601527915944202330743922349430618427928326074366015182424162073795693572969640670608801121091423005274419754541394650210795461775418603745306822962177781623057309961944777832784074182272572499292659313601707712895871411703121058065163925376587852443996241208853976769186870272341176495883284596127200023264063166564194585277203845064705888804334739401595841425351937525503312694795865189950772876398645274538236477325879772822860889655476163256432592708755793452971304309319827989945925776775428340800684921615961967963543912206648928709654152390172228025795949320258191336364169023317408805249263154249602214485061697850807847469131954071875637974583009171411054786267871250868433680858953610767978708441371360515936030587087825961046344299045576377433953952202320475146762709505825722040658736179710608797131716342788414350947561251627188107513778179146114694248601271216401230515729150814434933880368462531951069448504364324454962026793436975900292938094384765784707288202754605945582467343325716481356941064821408172989275874466476920948178967821693099966578741686577230703420422181419613567755909358415929710280017689064262024371196820133447032089365971899415639548410871717474364185647587537097296660578088389284696909488316584362326490047162950149403128578945714529590188773354957892182562238217072587936845302706394317597216710804715363249476201289429415211874113644577617824696876394410097671604033873483116214941422500852988658664521130141686105084027337829734016110189094267540385513896366302108909498813605223297614197847009238152813834329236330566499084928687723567641392569839121364263100915446128426423355185159442438408206320037307511618879882783621429477869384648514976806453086948433301160393606437251448563779378802237227466480164035256810562320098392638911298244557200348050664476233794110394976306552755854050668242427165079131871288553311370414055536312926269562035695003977050246577304268679930252536010144168520600434911033554111722631649159907660077613146702319230294079927168789216621451666471138680071066251006933819684867187561130219016960694645941311908684429242616225206451956396798852467825549915230255241900568378223376915756892988412270702332500937158629030400942811636052863068179896310757554329938925869817512738174408245333186439772403571078615499486104173682404751690926568191335780630391701359253635840890272393223767367236943522104135886894645093053077043751740793007406620772955131243582642061098835173688059890518215239569187630731701848655302757123203128876664331130645177024539800986032929048539427186568497644004429884085128749849718079636607942732565882100723968685454583000595906345678431933171008885853333335689284115821107249981145201654105009207643390072050499399102425323711272379734095779928844355805900189130276188991101804999482408395074923159007484244056553747813218820471192304320257557861797695570616753342625482410087506875596851018979364156576584397677135385709141766006680262009995072350890653487597607830355265072582356339036482560528081436427604009901652113418994291919262407046499034706452996609492964036365508904046634244299422321560204687681323866403938491131201465587896284388525274223262661549675180367895172463365907987625644331157697615655493218339023249174199501836913552248609336821070856545590846432784339522086667866133967066125239625287561159308538872666141375295827400694499428544692894523623632529068508361649952539688491081498192889338833948887113878509908236685221197306912168367654832970786030157759547717399357070300996591588014841667248147261413918254423717941570581168016851692380141679219546340676203586212493665427454631054608176212097868895426025990300099657814594278444922302758799462869346753842828361345233313485962706187634102866876524726697333758657204316033622882851664821738484274646929991175462267925965776269513280207624535161813825056668720290194269150818190083354285668943501248026268843532042524870704847090989596544030251954257594040246417103954152439204244813476536301909796373089899292052973770701664364101306392815564443734348759485204249002316263657226523782786481929597652380031459875795168104351674441075891027803768516421542218441366907794893514396864986716741073046965212491279672204633262493286088717903161509812128938979397310292617864914297666129070642088077310512370567963906109296304487055827633122777110097609919215408341996083666578846662420863117900447339584503894173904756823118028920500803602619771005921179216659255879190108788323483933270853074539763335219253212513696917307667510031402842966749133316679300870871717807147467933880246054605835686936798127022976176930070160451832837146375757922180238961004139810531178993344518509533678783950523443161927957780907883434674865303280843185552728899105784467285888307781754712905484436096856069315097851462632977745728102124675777605445582983449253710585752184641749983962026861356509406460679038884857251129031377489778780130063646955529658979530641269133991728442401178992105924196467052067920751551876290354109191841039160097460967969407550979316872333746478608681243223411725875513525279603557022926940349477574907371027715058626234513252622990312722321419904200828683175594612721743455784569249913543850427299474256514412014165003131439205607005080421315373929596277708763494226956963482193960058657487666028653821136876498898010712371992966633450855712302110943882202701227074493993341024723784130242329738162197352445718284323592754675594978453055595515866482551725529904258212202255994338310815859437955120432781490315317605444745827746187341254725673080272352764920501886946632306335983302592194025039798680082106736804446799743871871303474380912785835405375126695555676744128736821297370637577062176898723780819695379189949821911300266068808262302898125958743149073190703608671511524276921680357020870923741247711446614156611844988796207245406288663401859319156931024597863730212656855254685596267213995017931448604444942791654912580891646085783660084098189919334021432763837490782820807072648374417969852243277139877327109956423428133381201798249381062686701746468576939149422813477748578792012277206817119395803716357341282296027852494956866800482334159748231094341066895420797515463426558682434019581457392332495488201759266529908559564149520512960379090291183923879850021020705706777320268873425834585128942898752661701825055342894822799523416138953617372466080195617622907748069276778164742181289497448527351823529212017304890774078135935451244903891343198469921314898202735130715550412547427196321362291125969054151823453002178958779466894552104232456182807968115665514946822403744607903354339177655824497737235971953018156731584510028691529566583719398127898836716369794237756902226085941164678823793411413258711513832782000839722782964977232073935327906634638983591331886598724846645492320694348949440212227093462790974847587293731587842359589811298636968235558839137216455202549599035033542270177016329349705203645747878366407447474082440902372148233091187371504130074367930300483356815182663058549506959978671430783580626019465900497061214921562823815090586322942337615685841016109538147111514616273780185374599017620613110758804887626455313059136477763893544324542427180646204878122997971896545172385240130154672926208592033637441846557464820077389962192637331990347018663800094336424051084908760387271968411766366372950304148813581310745880965313735792275435715421866002886498996980850052865443842432845523845673717984739509654754685842166571482155525453431601360435002350041491745150487789508217073418935580869585261839520560931063450913339411825265875171508383488109053719160600978600179217754768589495542041645541871138294851594687205891379353409016202470942910659119099978221468226049016009021057016756940277327080221140960839035646933995521879325160983113426744008980506474405466670700339304758090389702293155938764113805493810681586591659851447021578507724776919924619432741234399708702905444578526564882471594658529350301391358518681237679667299002702575294703311823324985695093122588229391194174964638140163490058697056534652534768745125400576407739047507562647193263809111387600625013322537493797985305807748694505697494826528024213767592776773404427504117707051159292188574612466832833309629979409962448351901793018809464802637836441093947400782720309230406328706978693607591633076402059359072041562615828489002518743411141632962461061215899965647545944733856824263796584740168364648146416612021802389640383935390157263257492065114055451411260522198625766549897594892457310162119462583681356039786033091942045463623274388600264637257307980916208831965178709468482855750201315988129090927242195741493082660875668627932213705236227038127852775509081051470425691946476197330242880102284656550497272710130217722358760109639300955486458212204307409574584069296016372857310160417390258756594652671764310733705099492540747418657059938816739967719783237889049125132797839940121641799942480895473919831370646171054738269328457927930910049524222216070405125854388126483129389960111335053212592552727442030773192789758389824328408117906066693338122391326326461171243497096051684491117334470250316504810255774316558388225893375622698320129645551827683212945679518527258839432661723204608322511285476666155334106895510362541241988439128466409182671505793855138545496355584379829368389843762238588447277160086573983838014916386916366511589069892311451414437123803198744915011239691835191393395597871730550965267737380487203690598238219773600587328123053896218754069540576998335511134810542206376065043820357575003984085400215484837803753362737719640299559066442530900058380045242566369607485578024601894506368176466861555192945922286546894724031643800110774195676172224962444988696488413133333228801184952123498141336397548063177186670880979866361683746393128170885965274207212969714270866282478153426900545630393759086411993896383185058238677221384942183796439338335856562343969310099590524541171677421220260700496503716467588198708110093677240023780160806336009172603754240962432248839589424709020959749445193908082777732219186693589593215106793183932917203402958622072444697892755530658717588631344329338058311512892307489165482919943115113986882573656005577440629244388441515037785145372127379060116025251932779087852694773530410479166151697543472397758567284472376506543818482757081487847246143234461881342608729811064018369892952727511615468733654478748025506906633952856650022834183388097406385116689425475811945480930025393073695114402984441126253933861779958820679385566171265083575156395240296124080562761462869615429366152572934815241689801210203444273429368943312359252949007651640006279323359812285098206704255111046325558954103946286170250313464441035274023392208396516166716815535997207443487653324149296252846396272476139731418258197053875672820887124639442444207729243410090743771225692127957975726777405789303315599883186421252321485237990239862030366662911612767469024330151602930685510687547305197764081799186058993776889018232678729031658474692167298685992507660430354844057983357781416858471551031451829494458657201270815025586928049574646213568501305664902424798024318776282766065475206535131272260608568030219924623756511563921576777199211159104554528448264705244197617284289306202450653385673579869496983696765994732321807970112901364971019555905796852962476788887919215006485575017911841304966483912017342813495056323430158356098006486163296243927570696073221657202075008858396987574919500473445029474176174564114636593807813438094276099834026581174422519931891512600011781558114459111840163423375579076223120657007422623779617317330713328953098295738184348652715634592643395565656135769705073105852983585180076614113583079778010598910518952211585925912384014555926892433616526756198392854287066718633488950773659571134144853219086228893548125281542033859756572614428370180036928251667292525638799404060903598133936817215712300823057211509409762063849594338851174877291253090395345273735299588977641292654496394303917627168625178935907220950246058023720147443756331035354485524485558091356548890963341372250286183672615063912432793330983910761889184780983639957059399479788864157660936361397606241323567344172160177679333757312793721918927451558495999703489070084152068362471850745669238996711546293598947286969558444293873511704360704083956002599295095732438807527957639569399371597530250915271065092504170290729724156604267082163698009322894169537696089550802933273223365905322593429904495547188733370914943219101654404599137568283763732287064321232139491808238820270185124682045738976781078205586341182903423667587674181298250567804344404422528831584188970273380080397016653382018924568969710223435636359874352357279784095375314568544526862489337848605894880286821458516670617325929446865206580147341284352368476491784771851987143273351323014379217328970637941582647282658286590056759155141394876799953523837012395117878503776112671534733854726389313938655236969227807065552394217392381260367627758927909410644629229619073338490876641542276429480456860423162308097016071971246210315352558595272285864622156225725601599498339358259214383758279892847332467212774155163526934811921169933876857422048669708854883117268445997517186562410726507784865798679652106460145074953850746952301403554030072209559340011884249110140088914126421896804823838827405878430206180242947855057367447436298682712022762972200370148959539888621938621164237913307174433592706877683339980293478919784900133680355187201840027126772052928114068600736121456810392058368357130676838795907133984397082466555135482882159104419313372887403779598305125915615616973143384619931874834086952147057720783518616460377498979089191729701264539477082644753365251454894585704760452638189828961037633179566280790614814419805684093363011744197672228453157143250017883369201808138968778281397461396526111918741651527233702522927035348356081028486525251665482542364035337758348555209898274318582772525358935183468609980274138922163730745001932799388269010386619909120037426877463792543811110846014828861763739446039842672952217450976684555502624557854679022292759498352421663263476287484099643917630131775730844377586228532132153216829468117984061825591809693870897787515885063214601118801662792847108273027794243988624715931612714938672388059187761315393937451864454435017317860885537356403466332650632907858381896297718046350506680618321004242570992266477125546688074539176417161653385400248438855945022246648885710331805676339198148770936000876304317853383353682669105531388586882174155371655238508327901134622802222348069287599200364590829942781601312536741906414415837305338483198588588836047300504462768988212646771986307907480070094015146074509712433712021737260534903199620974660371090058837841377686251973279008814124055729474169892995061786347696450434995458921488290836773477144227969816468283871787817554276845518121377097259182987363722149890208450349292921703866601103007155403453645527484852874866224731214881147323807853298891480853830946036666516321564949901339606110702987496232816503995811439446566706953338519503124485121092283617629468890453931067275240309414713539437355775867947486256345093149055201721566528980065648797913166838360458010551904576713160810165689297381718531543266403499700803997867939445221386264147944577150241109800032044507422957452117104930700862075585688423021789672578271673077550055406385551287191767175756642415320686200157281647509512889819246191208612378675942147947626869928928437667090134464398386221065484121398551740765249919256864420200475657457203292432502144087401820348003979420561707962177551556078859169407117168034415618325144542636306307762506927123384981127879833036676058664295549898550653436885617910856492799453535395123653682873937873459072979742298481902062213080792330002221861656768661868362509960896072580091530564918966337105592634857805751403583002615248739091974771791501025774482464986611822925897024106793847439053165743083200039609723034874179096231304796488189150520949207451054553268617780342747603777120193565632174273621889438427576476172014653341966933569480463812267833593025432725423827832273346795323438900906604661182985024832316024614395843154717996099554929336610652094304955749477899766248461379621158672874050846880644935368691627052415464883569037856869202502571482832528465282883667079497226555541820829127293535412665153842790778577484631800481531255099708135561773038020062032853527608399216462068466916577257633724613801613745128763654501434943074185821265839734603699405744676323459464893703051882993475064700556217221357297013920813276737427648240966497549906288002286377921646429337535563063695089467749490069666793991150553541451040828051340060187016543304080922028693809633794725253014797332271721031988407891925077584834345231533632946057325695396949123961297714903215174538850191334593474442902870869503424665726367240140201182013645670774088212937091092322153583145170844359162241984143946297360592995741845564033316478438416148437082411612940455168897627426911703808374254091552357984560865401253168891597001065990275993077211187925987101584136586145308886887347399986436968307220561079133132325932676227164808322251700940078270519942368716085364161851212089743673106037800208444258320253466081200896767493118893357168168477366797179213287472337191991397227658827799262227199413160615251472702953901662060876388293123369183223044377178666601940881852725828902866382141924820840178957094732869498179441930199179220002383434256768903736749781036371875126374143617871642699935000431160634471418250099640518540875135435024115174155909181940702439755928070452673472700241740208456151932565241322222472158311228623771132008453252732988621056831993828589747367980877595426617288082079866923169348763656356626112964846289762065499936415867062832001020994250666227489006731859808165338422046879684109375993429931836444118668664358550963329533161512104560606811155206757610140912636282334320487113807826401466263020969622451249870446763006016162283092035937649083224810097396082434825437295073720986995992202810647010400324785155558246143698111115936737202859899712428007064277476233718257812351892046784423894280215623463344420661013626471977324766837303890466032958270765589888105050584836802297900235350063363919821807621239357590995308922549878895976726745214692109299774495060030558201306129825167924640563471067884019301897200970031582552987203412642721301173438860124593338594593320307731326772222751170542396198663633516755294786981025562984570937695763917202865592331137888646684216604874341306502878047505673792119838746136884245023758279381736328954823027039001691433053950655039753248010033962536127071736900075126828164267888745388877173814309239818961889417566133568423456048841011962022810242454354530436593874973763832231262962766412678224688506258213243137046770039953977565766917676203124768664546073179989102395236274635324730115064110686512387297032548369875576963620143582763472772280376984034545157410596465213205612024087488478455691698648561383859430638820057690907133838498485956449090139136483237985950825916521960092627747427020354309890551095523945190826583425828524735269461549865917293088317298580083134536591328610661269558910421963628033574268520403135811979334005746344564177369962327917448416404874735471620722192964378693287693055289199523735558180746901339436604270523881226644692419952242534783698146219949845752688930822899559663628625906413045486858789411550413172808098782072218125807546865963369120287175654891251008083155512619139318830503490318501861183537327754562040071692135572155084617566684750663658390063269021311130167615273527262895585217566428140099647950397119403061843716621459931582814208532194825052338633821971792299733156536784859000913208511450086160247705887763186265743410115174866308455179911307849292762751048033475736544646985843007290744364515456584516218546093618402108889244861367633801108310034923955721470360979399659308743442548645451403814624946979934949947181264652077498592711443147138888948776304014899862653474728918607520346601407560091899772007043011106200755808197341282960416948975611292062555981667266590487759696031486179457036759095617039038399441836282843032783990935104911591815040486203439807659297950567788465294260334416505956584873572221897610976727068616478252136043222284433066737659247378015728179346896919663075957935325936437488887000101113128281961713018678206605273384837038761485338109294797994563493335355530362963742017858848485704916885354652921950896991071322328213757374633057263231417524147309005046812263503715850765625712776528249925047710958881837816301819692305973868612996979517450074911719375115162124144638878566202853337440653378480113129230659247400867704992898124651769539525685033184974984224995324306746646217183039420529185970228937348315103830813767690878817335009884615829559691060949103793092095235600014253312938046282392471390484528221706506414312025385818725972623188594481579443217770822196788729646504377630494981205804506034927898499185253097333474948534229084753581557024436199441718228539775709600824138616201451154479136982262502483776342790470967813853523927087984979646566863441763228822914453828184756873490585650638568841285701464493810455362448907498679858885968700301170098431814716069420657347034070242004600454001591745950668484423785137529255437562037329923319212146373459627535483305552940602267501788452287922908255617216636673159528905347716850725355314008865630699606240538239727272330608921644546104910616845889429664692747226389728439483341376518775402765664435208859696462832731241706643317531398113149789079605840324774991470962236100979865773892141250800807635083877336861430744589996911844801988044624043789468791635341494461434904043364554732663127215733721909818593174014616008387328112625095130312480919193273512711799046634249070501726016629775066509580453059650094681717622478155274323171759567046679518447505213881313967495578715868657538355063495355797463937580113084855832555528478180654985146771320207953151662168244417121820900005393468179835843910499306668011374122091417043691777373703696661296316123318702908740498720218698486190090377303458454027661849829820253086664178055188093897990797599840185076630747428155355858817417296378111521857196719206616697542304561826335527696143929526802399135127178470950951675723039306027752654033200798019187299187783805015165283856480006604433246322244229348387283729505129549735366717542488573105313160499210347382105612699197084815863731057529368120364908745141919426061282427176885421181960226905261172022195369339180150333218560122959931597414966150092074289236854065301832082253240180420396781054960042872653578220900299014925188853950441296179187043553303086207119306535948634182346931151863429049053168250778204549345631943303948885448380967431861680768730264319690766305534530220287781244498021915359817594255799165221238819099788433246977987668175870701907532513908828670416963457096091432399807026038426559422543423236319373429597059347423638619527440158050537377088584250617790024278587557718150158670701869127933999050603351782245033051733365135389460975508497555324310222230762663447330844073315954200078612327576358857937865114343405369897333340176675209494363408658084547369568800176776766833566152442975500878368544262546762582699842297847504570539703189303944041604081984242774466390623089198747527115095134436260463423145683711216759018668476329711566404227302278932105072350228290434508048220005432935050118351357101433011974030748398776085000879352923005550952189468605938985198477848834008370507811308326450428668458127155937910572352360861389928666368031953953568117464581489713531258861601811888780737000720614703158068470887434855395439015033646007000044943946919405231047215736169075875711380123943065823086630054041466710361202882704934899807066022199398726518015217334138804251066923789502977763390337570876886440164180267929895750109861150698817941878355164493423890685553339970564396411659264248692430576466108997769911997562039678046908611501132173224271152666878458616967634740013028583185885517437083232218252876534785973973869279019244066602511645064038134387343572407825632077929398046917130253157143713914747397577282000809031333281406026875477466959261839726574345503388926299738075537343399255829955724915157327464450566057488153183755584625027936623040229792646360851336914969448130291958200909595269160082888123776877128495418528318735296969422094609804671276151531248717107423320153349370043804646832553521883839497155811009487372110975434683817056570144449314036938720841296037863128247026987507684789163743048391465825026652800525913159171885251623280517844650928128490893321864055460815523282123143523186511387410795669583514374102104698077390607486398859474145906284263195370059804903450353181549011404756311739001722789040725727432263334482028039679345607477569218860361982642238874415881069974853147200766502758908839305731742818698464586306294725827224557653010510751102326402356541089061352715685782638219829935639458166658963317752375051654069393018546023562502468088181825029058491874461210665465765960622159233807966112298087595123105274442504732121026149392961900067699150643751135487874233416564348110335018367805677452721759862994514880961357484939360867799088710472379588350901433035631313296116865309534072219457113784160502347194089989255621203805174494230625117204506051549585506238761098726469841833042859793622165471873544808474871637857225496962176865264690372040359608372774509443290370901104142758075932883449822546267806270353909921430432529906392101786193360796184706361576913238130438711871178050458895542866791064793448592636002870950422266315940813471940513401334845496742246812615998779130575062927966645776152596242977379071986533690627752058724841870163647120519362399365192005088014785385031769784908324647549222176580837780572740715977854297445211117940731810573734476483306258994662666779021648413916578178325229412776395742886126352293825742879237513653240772964892791240596861889636582149576959730501916621012132814937418240196373548762852268491596858818713157026634941294016313219203949196509710381524479718778807495643055492012776728840707394870024256551807457563536062251020786085962469893245048504190843645174790249641201062233263528427764327115809945194936591433361464381471132037464321973554472252532464798576721535774150253947742298018904941718352923013131514363907676253835736077385179011079494098040469030480989264130592232444213106968836641089968190692406225025347970614272355037789930535506431186957149067915665762978657219870167031423968317506868023100105309031957855988680538863417942816656808087233335100384027350826782305124140275128267595318918221651894532555341025801733688945450860851973450055002179179022463826271456286452320348533179845156509243490315305970882524195873512403084195982119411770185312549799135742124647186203489184933416006549971714785154175832115011932412346726554656739354084263300584187111697395824128911577200331861806911180203950879547320045980148620933280055811950950565865809066021742853282165001856853736708876651505611085343169639887585490943105601010018564637435900359868921663976077466662301475740144859993774834695105553919878157187139069139726209529981746065557869225466563293874660986524412742902099726119652704171594235414975698080596322740751423372876833891909642973561467083989769518896140522454337453377842725510268725818746651415583107591903500596261732083541658883463089375937421548791497258119828283928785836813030729810738461136995737264423502985497243862793302753590215121858168454257496702378164177532389644526536620374029423445837645614888987865350174012520159380318467310943870143067935914312169575936923600563433031242107587060994166010765722749483328659811052135987320940008209504460836176921456643987942699248959987772624072165049740466688875285912226537914706226559839739922988536407861447071189076250700129260474519053530135697112553401861968989398719009916133832788624497444376567660919375441099198923379489561362676473955906660828933569944602039096795456990251400170198051296189872861824275149254932933041211278955967124617233638705183103096613677938494259271224125939284541439538606580286507813041581211959059408778793484339485454338579539615195834428819801767090779155974355477639032035595205603740150199884025977922174048630440022439873509971515968203059284404479327466181498972274773657422643182884322827448345141905275194684046049620116964737332437971149475289197328172658653081849488377927278777907451721511967512518743138857599387263174500839800861359614303155803835893759999181239524991174105379357813888897803148408345507935928427128630091597145283573390516117337333650019214839829980909833321482184393906309869270638071507875392536134821102793970856485670710393466690427067806974657893941707982546851375597805998111904147267506930467252828425554932333342975796599032622302756416556860684812697048343585141533739466453158818640947904868865484665162212038546208704033110823899332757874039802741164356017334941397986040110721656255837382238262019899207360525512344350693481366786108000559256641957840582293533752749774510731613297721688883965537831986558800441681189518413247693854026833223703310023508736680023833899800670408366903339461430632587805000966692046661709026510768760680940916748382018652814356051899806571671444518255629216730625203283822479501965212057968194919723483884734030025605367910087831412592802013908210258698360576814968774062533718269991109360444310717327743974625043197415667288029402871342069093447601211262080727074937917643127177068221849868351557877217423202994715328759179072168224875875655874291107048983697052673229898858698413080299668424324107878889583320204282320219365454539224457493168144022890258647859169798854766651544021564113989617125248080420376501187867718849433105384198400936584439806259919289920585513851001234185204847137803843753961585220217427354750202428795456473230673182479062380474039072832341344780440759407331355744674148165735479511523303014595102845767661132577988223213205586460555581331069019845783631655584150532068453519878937134699605209783076491789457001157918298852266980271342868664194464373683800020161020101649069668510482595341723879793334998708699575975504819095830911375391057792516579172879842412165485443503157027268844367373880503818263372779125915241880434676023495935248313652026328936229597181388352654975363870308526439249506841940453142337352638142308761620807749864049445821056917695793342445342369337618905043683199594152722312426495772365291788292784756718687079854786130563358872710077182990975284235004460491582666535464972190246358274476548687552107177570333694134912407720440175788219192611756244456486968897038335514023360146614854338085741532099144012629180687328827199311080631145026492888701808491768648557087026669174281432716990717908309399465930687475211604679227643362092720514915910352468019218468263908419214161460863207004560095657198862983306020165529129220188061305874892387728781594755397067041746206547690622468956712937373409397077838865689576474623043065513170088731848989004402971941225219096470210351054145884017105496594306174828779641112826864645460994605651651921760715546289882321621101379440929515316697357814138123112685049582299321645617303718728978024576427113191679393627836776431191281419540010280280783244042767485832104890329568477243815578207569358565020200305654595484916375143713011890524900016246762060990300738858620471079648752165559693421023540242904283056598827454954501380304819335791778389511897413112374252910602478023280840580225364897115151102880672964625811943433696798534688264005010446018462018535432140934452448385150514054998043918605284027284393462090541586945165084605802946011377521288180570543620018198317566983485303475156090714133182829849257279744705461662096731443579490399785070935110423007247240353434881690768147001919266412030170515121245260674762183080184146592392998208547609763737272750620046929297467701325455260309904370201949744430441513889186181644194046320562857952534857356610952945572984669897126213771902430358670418141870083263627626346000398983572538127262782669188394074074475231292807805134434110490519978504331958213242550794322956423803519299865360937034404670828769731139105984083922286498476297385675307094656883140539779769102602662196320202559684317511256611349976877894219856733411427018335179320618290974523060395228032381981291155241551730124097091234118072367187448837988432558841863157615460839931523877015381322570936491383188421055403715637722901688182245125707265340758951678169082679186174535703276521486370366035692610715655377463534485854831846138324177436440806286987073524314641714769718635249732437986683042345545481807047352278268630994233218415724123420430356704099298972541178042448270687483402779438082972561214036844470395979665692612712326943664187095572287969542038032455736570915613164439255732262353864235547177993350771260778441176233367981911535781255733267381668459123790659533216395032755191550136140969736419409359701062258737519308733458664638722473960360421745516510073200718551706450484401152715758932501332160145936376131121552193100103067298103035415801418400561689602705945469070594017285036884941306714669206554175186910441800925293422023562970509130945973960256613495906469977899957715370789267713650521548200133298419294935664755423828089851010016969386726960588638325992395847769655326005660375571348469555306898709472012385458895434852984483869860574747695192187772348813168104340001063646332658814329480492957648758722290331305994050922541492264899689093510396918104380531104236398902968762765679341950057936802661562826140993736245946059149922635363516647567597261001480615107233585908689780895004774039444864027862295533546143329505352020835725462478949680109721191362601625312947142862310735491597701043477548994731955509122242786785724051713422795709884363932547072859373161909182828023909607110174702007342018657052807066473581247315923442487949087218670422108067825742515921959129988718530984887763037881857030478158193896860793639381000068051314339510596520154737127803098857462252692421046006416214171079305866288537138630506028778088942601082958312721360567179442938351397981993119295291623139608571913972439106827036890707042046313200590332598241161401574786801091454904630724352104887153621350033958889197283496013188630991805374464108533154537188653526344970296690416477478027850226409293886976703769314283412038843943819178858217118057143004423241576861210889426187527484551774231253824046764130982587008519970771654158905079429989208398520077828471685597173733418369683617273306237664320497071362302742905101052810786075247636295876405681644911037431038999098082835084683569128464124773239779033290574291451320334575937151969902881043980791365162081960653078044247156185367364871714036467993692252241580876844219514515494463579022098072082876683732953730751055205588458277380708413382212062751736214306839571859874914790127306104086954258258355840238546471212119826363412967365049440297077777850749835051826795811297291968030241551252953383978193046435456400039324672739598697268888106630965111423687986985878402054623171685526864968354312491968157788443389697461020691621675294445108872763808857927306208206423811854754337269647375993268579704594264241136460118665544983297943861103426737895680990088960261983735129219213483569475150590385072709358618471429980087305389612375722763419811532226739797571343996918150390540844022303315691983119476410347959071024129861537984130088511364924508441080228752206521247374045267773046608366753885373152194153462816743178088401494079457052303056943076419685314727917122665538348761961384452476460308657035181407130817378426518126675521605564762100129317634270324004336285455308252138905382198844686440478370277751956825339372053694463891637942465258843971864756984729898037594621234011334367961984150655811757082069486117335218824368864479229672956702684808392265087892630132364417298534191278391763431621149517262317592890008711727434684163760491869214750634604743616431436322460414082190287817947104917112022512535158136972006797029855511945315790511819147348259633470609923876365687295385248338317588520725812563385764696915005187660285922116481240386714104080711843485283071344349648285986969152358859535942508912922940993468043914520924706168164490324803920409091047804885668311496231889714882174411191196238820502552610087412030443524522051047160123727374643658470647617177696377962737129065091001144139219875485703182912660654218221768876514035071183931090074916654529163386766223812282220583381256781343255858941900364390109121211386067502674070056243674109035602054361902115373263508444542461021725168174215273247187462876427211915719027085776340188702390793203951878664732401704429540442401803249601803513987070240500642909242455575498813095843869351164468204736476870664714295546110931051762377202268313265934776518556190978049689120981524123512682795400396319208003633531454991520993670442402044899395010105425616396640661014486105625051229486068704407062119388014734961823054604881113348556811934701458373917148371396556963288733894485981636092405353691175599684680665389172248149988748088941900925780097867332442923122084148258630585898634850503952707268580437185825034710766780986295291300546022194926977434282035068605691478821001296842710559234674441274735178255265358182249408503973922395422438714071241772746492422697719398542309866806466562612800548708375987589682011515850526519909311895769269843068492707996506710326252235663775581856323190138806232593795828872898268959542651878168838904177199699624939838651795892645462581915088270900813984526756850183102555345213081706872088820527341634075530234232761232391998073850588968100860724128967231182278145209458130307157211231219945962898194461359701536591367777419075452208648400729699476272474212559839938534713916766807448649733114243596433059088553350002701484652553498383837746974909688923120622983998649499656148975362003786766788470262039512541060234315729383391200290001755792142349344656237889888452384451338780388534500219598421437596607552556104057595878221537546058840457265148714036454535129732679268334072145132584858853068941245602332926995768568289130924538676000361081958234413840575824630630691746856558845202897093882410425636407418010992588724361486576341769832806147911218543488967545330482766250080050014528377278731763691620431050034135550908212264523238177866429327163014194709747827022984487954275556253791502210691364582643439021660405018490507525089463567947074254515084999120927900474368481748807331039203874065717214237497478639989914970211392824794265775542530904329941094701219540349471327761633000067174374500948083637540893741091498158961412361525153883581537435116583553226935648871360303134972005836205446317363089736894357112330170749193041921148438542802071622914172509770155266271167880756087373585716653316239234450468392376542914901875031770259308982367282172288499220764146706030337163380814405510523754803968995522556332201032657346927663847326792312134476468594830000660659720009887724045598345781565082675620560373631253685876620292999482529782065957197013320313269452755721224831913464032193457515769908504704954884239447509998850548523578157489498591294343832597001571260317470114411407955282443530737690744110957760118401395706009958308402029499316159189499040498535324677984435685128139612378623998122925964564473261416992197454299879780294450106354084072583009448847258270865018712680311109202001336315789624309473321012912694940160391493481691381996738425217951680823294905448460005292138841113784711148980305382082018666296625250444984722298411052306396065580556541889344210737707487350535368096125946955099878973382382722112149249569855161199256277256496514522483560052737871116704263083481956742209248399214549817773748740693863729902399758464614379228543769403061048008086926445785059034757646155538361926437526115663427643761605825831849150215839211322308936341755665650447974869637766063241616636380038888308735197723537604763101381287568187502627132646441675566725543106188315433278860278949333352421385666980045164496880565640845300365054462884038067191660233798348035188948860542453419205740905228192254821613340533538231082411212463578957582446059858797099206263778687596313773948054498848814412979912416816176590998213271804890147718451111009285970815708722231151466548865928406960091501347140526679400654327046509464422578712363068471576055431486357412535460453469883749097062185469526185747728714363778273616280165662019074953507921376025332239056450455001470735824387251750826960999246234640131944105320355370664851600407153474044680182740311684105623345298642285501878274728435000414559121668349792917648043197818569292653487176228264898720557768403421654111296318776299233879519010415852154229827245032851405716431687301552969042685556029677934621838847313401250700317827411723384390911401594427288683547767138794626429502958017791144543220786832428399529446697531657235248907390997711859105562142810042406467177240910575794183336942762466554693317907719874035052781264810965198837675185949864103349800426871813758066040349164888552951948593594809657573851123442491673566180777018451117199877074581429974047813486245645415724302761812771172786034131201433181305990912443432287528936241912864075664613447968699444876801626921334171861420747554968500309694564024549850864440784112630672400739307902753456527453230544481193672781127196688561677911604521813895429161314977176496902961568519471499700103111589027003061400371463888002608973594620774416954728809269128559752631127506981424672039013325028473373034429503525499272686670644522636001037742691857873002879625393925632267245699341471904379887843704604408550397578337457451619858715420415200215153396856519008338055358007337872615360887843288684172726852159239690841474754580108760294659941450572481739132101272259274551833859027965680236064959426473836380908178743611005019971190347984688737311386782667836053868069754262425724341405915450326209673164164108915079817363351275605026834791239191663844279789540943367216943802358929828559855430696585590407062022602268202089530844535090423001063750892496432422760629825190071547057051998435579559761037268844579808246155927562209251346260081848967671552751624021393322041744147562915543746573096786466722203459847138008008977046800680788895382653262694492141159622676319380950023481707138665721530682470517609677255058208669308301057232603606959140000329736483596533429009778383149214849368492881160830894851248255437160288440646308436116977748656489019202946752721412226550742537088495849695766448381100426069923044782995007859548961124934729911579049238148916921901174328032623707004210590730944589051043645110262303336110200400873532965278218726860443375086982055555569495536100858803868603033235327428398978878337996300873063071641628224251815888173242044955080207654713807640782080645353793436024484934416136847603936212121435283121714310449582711741447616048528224250824363113570928818203173463888288612483439280031445371748059024544531769339833432742813545204827569654975003791452029644660178686298496774143606937680236638875091714853862841850732439822355067844207537039726318586141015815629511935044778319262219601121700079610483045425767989029917223790636499089644746382319617033583629398208767916073707010279657271855521269499337579433150788926824390131248502757947838099824166750789183064125493546243561984546205239831210135231854210708484529978023175027847128556239581120548576668775329730395800460506625009025406865466578687557953950048716656021414153473505988399406458692771632668579049760490336355414905540989574446207774764159373015589657458990356348128985500315409292346325414656228058567564320150942748528671519578291942201479012885986947989592374942397388061097271266125726766629231125470858660610994542612583516273305804525940537984014823912047659509424282694455943914112203145121003977073477835323251518845662534710069228875568751422405363386874374539911036220768935027787533625627375167835342587796455199999425408113012281818678249898536913115995888444980232449218395991925764065524644313425317924573869742927529776414037723852609391000183006623333248066933799075599630023471510354232639576018417737215311140576563197248579197251473605879828519671918580606085455912954834051331888963511056325355528301973046171222439620173082301001044212862540736422703168585867061182943855849616428232767087868878844453796988802352014677816644386190454244994270167364853528365472378120617455613153939236858195457977434847501234941616985725204717476617595973037829941164083831353290537756577254211193949248141104645154215325086943642857647540010910789075824197460380442908663500153453814454077151603757280589284933504617310158620238025432163089562705259919777788919527340627392428271767421732457221880475978861468535552316485840474319084384707763610046331261010910437966628570740526002352734956622164892513724915389878078032143248332933310767427249882034511730038417965779016009117180280880939574935484071238281913483634406646905729384261407046862156593329721937936753540192425758935049665782590432862750983583540301202699962839880811021532633906006371429608469101887950836286576798919408218370780290833987932589059527163840073132674688944881854433848068688087645083761597212409225514974310324201246053636851181740923625865141089388537805449081668887350966366726420499594728070256995652142910318463887631446928759326016415805995056056394970254614081184343495451021483566165759241191560423170390023537859742827823640401479857477325091145630277588733197542776323369476265238484963852757965847846347714133687171044971622898113588176939312282408226405217482115852104480233360689429207902897761191043032327562500201557172393750608455318962701410347285429247796414098529725580321800214994307130212712970829279834196629105947673483463537389809517644962256644234673307896093078405255597463796003092692874260993209165108508632458471198144804398187115341594592853772565828348649021650246810548413991428662049184537017761257462555818577003924880426517476329029902090785062385915486430641849504979367596079206090467457885929480644903279163345931007200460901468986162367692656151856454475249067956878264009485639071073071054575126133302938838469035318974287246530966280081052571937216387533041551539180962912049459942569917147408394563101338916465811924915230299284990695132231868437881635644267740137490660827108010749043331725845967925947772764920138468329727763767508971001889996470585878476223646846528982852964524278521140418793051877637971721191583704140859224383301907059900001056286327444366351289424684385781775177020937757028709539945949104112202704573199057935428634845702080472357046069186759866681884109507440530270053848595027869716916478268172472429308871482909045018676811449451956415522088712671488742503165250428907586431990066745297145966595894885104028995404057416537962223481100754639013609020592750620634147216580939738057696753602127378114655156876236044543495416133887941919981558590544329589467309698532701052866349953985034292350587759166988484184446635198683672619388834054325642081415802959816051660478802289623004626390125073449806051686932015570625023882451830182980387240481089340187622365408724581522211565022772122724778777692729874706537756154145977778414533346424115727019829440930663246866552776240456147454746159311561743321810430695749535818896359836993056704166299067845671727452602970470337406767997885264421466748704661482381039366405489538994949080652765889200787728692808412620318306685437450594903933019186786248619267956340258208801028276265463430414608316133998311538996470568034979896012501096874561090797931987262760704464534123208124632935744948660800608743857060180007191916073682808477976395868884506457636373078645904494745779168132813090887803042035962276812806477983094368912401765060172065329787431869849572801592209922113749597269385927940918565279678367699502203798953975753405663662299216941989023156369023151430691137934182260239484435464108678192207662894047274181762677780494011318187229444253302218319549872293700128080924374892726415518382648482055487913395903800256323456253290211947156754779248413825914433449546967054434171656285587203682136871695172742250261374819881903129647425374241141969388943473481041360649669115640839515289885871943323298647075049770787889805702413782370815371269512400171147318297971798298087909804680212855677931394003816670907494387486957427696890698369219492217452876325351348837683067048514460761621407289550530373123474040612449035360117109606755314802578491252312459508009771291097955011076678797412190524002071100508959829551444736478203636061166256374412942343415775929186825826043835602719176432037391775722196231003978240017660895090119029998910779508801877971986078219118325795652964264289546812352995192942496889100423991656345655721949060351226740987940066416009291873265834972013361220248942433162452743518769799008816565194339638722788100837505044721177237361561655073603770024449684421736050539568038990229455902876114584216818729825023062107146202351166080258632430515139790049798294619627924739567402379711951874618469564961409531310218248738099661181379454819346747289021489197716213515503671387065784957624669327205706170447887422666344058470679920120001424135539756741210222477421566712843222609406676093131070382772644872680746597052318048761955438814063167743074268082420300072124801277358497969883989446289915425410437916382104906339140963700427734107803741707909571677142871825209646768801266037751702477925224247728784133165617336714657105124784445129225527156587100487425226930461159400777200067015072671048788194771322465118041723022898981024448251778739935971400295367387456695932802125071645335738550676449679523206458136484823551252068344383129910109748795981114758237429514394002088450650487539073988276961937654229870101060159241564611232704705131543743621485254390420120610122702924906940280875829768880459973303202005930990324655461863933716661356391451716550663280519196729637149249446454789114810729334905974792399685263676840886082382874223327386500924847265700708451487403096545849270579609082583967427942673107106115548171073796071726337478941697513027525127422705359354795965629389526382120162298518552104185873128062215713125309611967282953161915212027004761764230850180036493012142023219669102947511373704419521834884456685877351841516789276507247533116107838379423036751459961844927272267675156986047121609386728399366741272001800832015519264126780846893293492711139084144080506815577421517615150325512062819790109157522008697805209796989999785415672452294662633204170295687788671447019538134422371051836940354750557044929554391443312850779553958274619553266380733945957441644317847796981361994547634189361384549015925398800369322369842015950949408571107082255052984293860675865561802840692128650523073953928368891600782813256830977255312678202371406326342543626608577383657351823272391153243006920133520328056297456897811699440998254060682412955696587145274048697227650379171516029847178474985349801973233250505787039710302434118729868163134377502791323254403555912398130357043693275489321881478566549442498062256924475447692402194178551287515241936374762800865227006380005956406483172551480510677276061144630478550791796610679441707191986416930959232833588744561227505966638802962386807534944680746954409161115962083382473113872219423222554066164106017515383716085011748682560726803354565890121028736489284500425912721369617657144516428568787865588418682868798855481084079250100069210074935652152321534040684478480969060787286274558004107302501591544440241107584867237453492306639429748446687553259743545538474485290248181496752106554471624986339060247239194190116423652046813292474165486893782345716449656932115188934570123306706835300198050478862583512963865541459085168173854627709318423172716146796274391041177917310402336483472562548499244876004592836050043862144729710112047378314251648100125001277573570523862136812350367454199590009650818864232546729454851942622690123830738022110323264306139107661451988394227517940877078373489703910449983575745556554544987874050024307751125620945392635313088626755618152902386233322626312784866122858434037223483320027106382403402750691610027471221478904683609257852278710113357225873208336933504309014803398731404557088865399692694832749393190188940058068502883820233637278336469731316576731922403220772289240085563847524309879620409555709795565614076362130663300117578474608978731677109232378502430480091012922220794181910077264106186368422336803423490577476093566097467248673281715796542752906869637361410566094728620435534471065280088455464214566375138863405360508793685245285573069741883627817288231661427403212804954125716030886786852087415928619275780916482875307734790173944052136599349615288355249695378897295453232334576709592073099223371230943240251933079972849003620293010630116082800726123290584609224947920788394783900590265233223199214557764169718458192163362434677152372535695101820070594895223188422510902525847889255924455267711695446451325112760398194761228007499221041549677974884842645340001529380861621455157683339933468519064978929545519391464352551024087193009135330036409622811963186346150782819692250300271891537826319535045721703804616377835700773496706727747601771883923305590832117126902504416920524019760533278888209961475906776201510238869673661400819658378132536404457296525698056155645144437898847080281132399839716268135965566143438526176285462716415103934155695592848626416536071995930673405310000400931263107906965509112896413487235994580069167578835607268155270881497814068588161329430640499568468040473541071909334860014288046593941709421051081173788216072443757897008269923576491784820031846876679688943579312580054845648109207771959479729728344920303339689500249492452408918901481019673524813990829415692643463644917581088915202728946842839453991019644773021366781585367969347823057486495025279994550068542106123450561791853450060452282411878249466519477098905387309505238906310722700602728864130986287583893850377737680150705081389108489970502075267215970121607450456357898984518613468915410678808355403059130042972057009393977778187292510245230711264432254964181451653626856802706112625149484154115007252220524996348237183202504836643284813457869225124425690277297673114044027056485006851300566019598855573413410663413041810841280043379832404637658926373077692563749608674611898592259367545975268978908269324036873846122269258207977340363348201145551488201001158294990588283776774821031189132832295730386264417870952997762805877754101150554734412949708470995481115289083844790263120234693114727850449141562100490394544413609713910834999029344455979848783452246449023238443309413413521168563946835439565504575466050731277655593450706602690346003257964237709528132593722187347248040935459809205394610471594992984461670829079672754806456545767302225436671271798942564193745794694764911837513722993819484153730681683698025130769013816018893456994873088528211100206107721654187430096785652589658403424470143898763732646466987760495815007322755954963197393856355791150638783081449536288810738843266063484729752206503120693422930779878117488811631109267140581904842612436554913454639152192839827805326109622999168659225772639633913249112163176557782151040026651849926670277399188034993468880632069498389278321064540922817624086945882387667813180597892873235339123448940495529142082179592774631341861236966509381191405513232673398792294686607262995063760296724856716651347204897856914149176032421057825796068730978824572785541916653582806912723598761142909171977496834957665621305097425486314356067033287268091962497541657999897370554244122925926964279725150719973454891206233454883909537116691420595407250641631514194661644461484330198540011748566663339906849728792413447799125255958504913261654104258072212044641249510421515568281325180498669297557423380162144136629691777398865639195530073124872646297957130824745594563153035069835742296624550277137397502970950496472195026008813725746499748705934747181759693124611481244882890973255202392194373021676046014681566251504398468908754178425285304167054279059688162281590514898018630297355472487585954932106144521774052611036606858652273392545198040560104055563870942895867128094886003048070572517688792007257308274887669577243555450214757643207244046643677243869163295848415181711666953824670082889036560733480157254936609596021732922995844031968533207228204576474289466771853959781496744960395061559789887101403177668664982949001528934674239924677077681936297242428307868595200566740852469286557187961664030960097342658469532006930145746940100863565376673842083649152353227333076402888767325701001892371110893833181778594526457984171520945274522947259114932357750559849883468028316942364595910537911298796990364004480386259515151113814196249127093565551300726683925295959711452977623001664660151946136862666322116581466591441866451890329511226891520644379424496245316456916133883232352712252683591865416535564919009360727220842003440195991117548355317906353087399115741365105758602051289826081298750035562686394981639624436754429805916039149111090208096046001786002999881472328866934371461565407960939448383208276247132644976429297697361802366922948683866695538779362193183275498338525456802376302730875210084769299177907965340549307490620974877850166269272636140838889445320150893804325489668186590628593159857258128090212364319841000363091939504300500127750645615258962153467555927011020251950619934247813459083297979254489694128214450014433394263419239481750552892467576027400627324497845193767641715565951123156358264797298578179179367899967557026139685335860103500002822127336386273498418765907044053528968016012447312981008656092569792518863294599826682430325116455943847446712903849773097673358966511155512315839894300887406699011530763248182903940190233321489374729210515997254138839427289553788563550774775268743549041815878822193361604155535211238996500296878860227460706619456265135151708885814112913201379661670071259928111173598079275357117091370576731505622561785651830310043949671242657374142491436058604671202282271009521115035182839759995036512013272862063792887511322053224873566850105468090885141433799248281382774348637983536698949413435551644286843610067427760429680201856454036735547942847310609967363184416296933448175906149051247402444128190691767548038869065941183538897462658239238957416137318768248113073216510833607425790831797384287833266112348764516128240067596986788836778358532895814580133476534585927448172737342917675276801795984065887835981716498389751895375914229351146591832929728283772943310521823446238672674283614193499302420274657489116422573207508798320970010422255552891741824172710397312367367302617715657928134124223918792266016303811904173227065102221116751791037661282525141383389968673576545110052122261295300960411619945060466386747642874132745534265376429611337399828165821754989411374982680605163238886848903359005199714304594935556225119324434701243426628905734038199062133376204338844831394340727004579114941583607335224696724764217104558271862491892416095032798850948131964709648098648742439425983283831595516838931764909874159066706807552241476566499456590507380079776160419785623788513790328615419671686925579325873920224121608214772454462854205986619283565985900276882684417955696981230400527349951519763749388085600019185184361396179967806120564929632427501183218209666702488451419454005223120951951134083003119626441749323780917087235440565311773935003028277663341622857934184217751835097437233629820241428763243090896435337338783153014671990868251816927035466863684145820543027635416460392928945741557227027780603402460330020399442237344755175794838730114429971359072387013538997402204463362733425506898566675306927486908379840751952041406338928141136359489090482666163199819135819064834300050602894293086409819936643236322092453735895203756569927417405658473597114282817929711717842981838224672697880424703275590767158807666740751954540864057973459863996547278347516277305121589763392148650204205369447803324190601401037709233202422618856436584606263103659228855197122640328428118660152891942981102483603424800991644964203530724192591795574822104241723743098866386150095711628561783058474981842662352116664886377808861406519605697207883016102934455954163580667045625297550735530185908003049193405424698228597352542028932028823302650483001277999895345715011033516897041713586788877156922690147900174503132167793688226265661215302843878392277467607674167213578637336407521929534903473195379324738183266183969015575070891384296089021693043377213424992436304152587596782119243514593762636371699442567324947414013172682525724258411890573026141836917136651368143052839578713043577057229461305345148491787827070505595341256589739221101039538747532395977001112747924262564646900170902370627489875583541982543572665616336083459590312969845285107027300031862443438587195306796589382126451467321536962343493777840479944559496138722634185226031079305965097395610578411288592516088682664887006574979559444527488765242046542964559386702650844295419782617509622231426951726736054547633907413944900019284348342656451569464320854636948503374131305074654307013021553957895009767085554035174848906438572246325035385498467727706317572989775106816808567173708300631843542494719332951247755312053673278695744877143065250995849543505818599796862805315103199667466298296106775699446026913847882432459089419585678538185355615966230072821004387371417767832287096747664499051775843301984839586343594592256545469061321853939084424204424052913669151999618902987210593962919855116661034082257258448544287652530969723060639318612512649844488180321477193563033839925458279444240930403895714071927663100406951809854285536371920046916921191295030788074225975984373492636273399074984278597113048594835772443467511700658770647885337782021260513444312441939155217746724901417591098314546498918683956132036065031132111423002745772332141926673469408925292721818955332899379312254317678985762127467367217200978378143624650626681914153579504350095504472678229640555415368885314491555792212546217247965583876081259711409515874148653070836031417642083172091157002885770218669856234081632229173015907988056366811400146911471385647564014112779887969050238917229064492458247227286708029225405484924487284571800911297244406325765407546512147866079103154592268544829815399131662595229055602019447879476313256651600370403309834716854959258610227138444976836348479559134313662480441266339241957799929930692996651707221124568765657772899284810505419466809422331595558091154277072048398683358926796273065853179178196826517040987589656983321903198979006665697030240202314347382240226344957193476618908061439357930747749420584870854480357592030730781171357319704957062654053232395763064680476406498940362255485135007928628190288071721378086192823282102721669867683084893763922480285285905521639713798140779473380006674491332252463732108191361427804414584002736022875217326523935346292294854975569649037168319586975493824020899444186932831326463795660937645891398454523637540027648327759923711455194096543748322588507351098530850117884169009397171481381096779322399203152802108134820452209954532296817983276862388701213881893097666374399937624918130923770228672526669819131095217443487895687478399037370700290688821767159544783568528853864621073041467693526780505633624323107368264374633545741372853700158890328995865203834413655757302898781485847081464847963865392000756175715277039252169525839010763736418832501887343545859550443745727784360843509873938987646303723045792532386362265006126405481852025247382233191584692931775817590717837003041373430143675070711668784766514799458991000199585091241920822232364096348664050022223192529694466525594443147965726316459254205336773794509414070730191212802735676605323852275078566144620146855335345109477128554019882975925255790575818459340067701133094268840421427391442114599181557891454925705538730025624538809170638865238061972662226980726859122633292068532688916940285536597164718008610262210322137625016413730140715319861627645344272379208808996816580232230387511447041306343511892227637355032821972322070972764262177879994602084678197721857600389716423403649023871506381397490900465928373816913368834132048285675587005662503925613615596433559205403167323976577492522159468481371290341573704497861700692987906839023253040506921375589539099239910273706051926500103306457799899326913370983491892550713699722824084348033826151803980687698878550476540495961355161435016138360068709325355913902331451667959362097129361987003623822516452166796026106270271216905216752447671881090840699942323919915768629528467790825217057626330760576255509569409351574961774916295989532551560641241305238217859381198162255345328921718832350656349338449608652693483071583396756566903010698975134924663324696309203091758709759519672377137066762420263387724610422174461169818179269214849618847575160963880420023941626553820524720691735201455077823849935976588029364663211681785631911389613758435735779527200202974441625425600872041911442278370315434373969993180410394991974692513141671693829191254688558482944250690564929618257857303325116059716762060496067330980001474127646752590995108395629510130358877614802774652380742059335217472924444038528247606420516325495122571178341982561979427871663453101278871092186686236502887868311958793364019647840779141809565307148286178141531107908034289827276137647160068093489087299928695598835765051717540869485814367644696642387408457523997018653351738341588089306992068648077939554642741637051291617565022038803247804534738817522270725511251778069321540553271095822387998625690529812905070180484962474933064724089348653781720516673296946757495683061787857354699375482451449956823236942113706317867214176429932678767801859800999444248688114127960361378459635794573658422267834806610368037800575529707221634055358969072890171551614841164169518646751931931012524390052264568396267103697133980384190034846458830260426909874135436333626287006052272793972565711211896372185027227413198462413589389075404192015301576957336424619950405563852039939925827213691088519180766400549790073867042904687980418110360404498672998512169168559085487890297340185842020068783280349968215237663677665171349196292665599632014450989571691475775289354422416297280688151484338829428109491362483062770681685246659927712270162693828703233574306758112977925172300741709987509711816401920216436582543571246051170798033318234396679951209309276188896083747083861709303967053329350871944713739493743228445513993449971065182964541006270938481218811770751265160325894885407604396020220070298004447728148137881747643808337946868205845734300141333765968365019674949310130119932754974043854388840236384178324517431502019805891376491271098327629710232698345410646561265405027296703228333756306192661367828424174196724072652036028131038363367230999117616277678083721954493025785293277098386845544303890334993423927822280450270607734355945672261243895898701297469547635787671483414180370850238974893961025076657833261068619142198857128792494343177355690326470952399214005391465579985613942228828367481993568114576781807502492326488467138508069761522390587447707664944872274346004957988617229207950559410254011321671206842610107725095157740802234534919957399285116986380524828046022462789893074475837317851979565564581015107528785357674921312663738667525010678475168633195255684885790009436772793019642496298380516102036304891209137524255735853864739332036998223001578779739661070317304721503288308012410906676156672358175724242493998247044547496797682256750606819010030990846457923082811966406093022611810631343011607333891186025353361356360274180564427380264995671631619398021202611185358775348948256112505593097832397680689479425567481088996501786442728299377943218290358954426386340702670481095885222528083993563767836371558053763210369379795654518745234967776103939453075735742402352673632165910442435305735968731832381514590406690054772256490696205964362619788219622924918088267365502710769778315117947667727220114808646479128447150264101855723748826056149277522320997354603863587718744650546522561242357358530057776571346169161356829507042218486844716151863114278579151704063662627611295433879235070780824318152542458104275098461891426455772983512133211992473016083070693112474717355321328309802037739529493448120155742153038259630229338843612523271060070851566814298295654678041193175942606822801380670649878807867887844379734593415204665780534085474305703182393490622441678712610088844739312170631139133279602117487992620172194312278462869990709602143720757933226901490737127077796918306443050796943047305746096376091154876541154374067298945541916698927764525713507273514282134826019908447441365006870210644632308263483604354168259664698365422891425950072041847043799270543497974791502584889270540113504424515819738333105322121561675145563796161186591538119044943776892397468380852463231395709423009106969266604302350188101860565672617387637798368792908056675109781673715560063252588650748630751192221608935932438743046582810647119920836284679139732310937152997549329353789691324940474926593772224075914051407649103460673469983343317754518600782279554495640076171633736751146658631505677569730336660488785628009702186170578617446582180146000942449112925342761452249057066355444592874889421345565060757556843555741548989552101528571907816347586611702659291528970933716613771762682835923931065456830586915183054902811176403636537977905023451315982908794056652076016154610950422043352299575054607295880188552285603239440418766459608116681190477289920543511070303709620106334850370919325310071123919505781350633357279939878591086637588158325106461443698348685319118281729208511185679068542873871674480721644314554194427958389856837257584604679422554555811099957855561755238577597347221901733595698870971541357655561740697026810085839722925669805599306759731728785130168048024455991666362414386134858244715446196139975220105387453342569896148783655242071181681695992254750345065944308403679474037971556140116425630633043844146634840670947014679129849306078583613423984141020732314451349930778131413594534419924908900335904029223644833383389447742130382087946139142205588493322100903378210883355603926283547329176904935765875970190546498381732501319551899410028254610256459421354602200279526598643296185917681176989791699116177452345656690234226809362012431709432575109162177062984222177388677315023456172781931103455802840586251872993263802108664186216503151335885855499180307686397413975302504689769283191043711435741398438781751535160493080226544743203591744216029734932641953118759226574167616276043078524895682234435120877383482625520372540338048905915485592155466420750415551671405276175158422745134121258761292496851713443153598925646524271693213716697444672359846623861644695149215129762356992771172191024464052012647708484310081452763987192436818773241428020881663472221328163372039505514002166889624781353033459260129381484412747382899368986171858471320276640449077493198647406336965932010216139620034737534164932016455565492431867141504321089955942094450523819105209979364974793249000913937545195638922707066309948233502631471263349469258813469453825521549654145948458068867765849278900241506777582465020813663478027546604995657906507867941267642534182576653658814006409461419244886177262428513461036982365663517707975102142172594603712699765198275694946839468333038450139925168128287960975112314938141752490336988048655395266487018528735327646749670637493133032901474498568687500567665725068264852916951168805723344757343840574477157366847426315494700415243560280587229113700420679738073752461098351232842684229055493879528398028242053476023599095704452027628206898725911321986895512084482205433931651497554842509657504846418542604675684368152170565058069680191576057908609529862096903619031465212374913379126403857119549446893516291167945546744188199716805389034161838699671314408700672059011934752634274467121460706793358667497935444523303766003452588394907573750198117125623192623826698151683068714033695653313162369275458073968752601446292640179598295384133445827691097748945972066014482600551978610069354045248166840573359480939180692616423638756071996240660504008836980365125035995738133796655298321053358901876191893457238204610526867494770103635418323266194169402804255716014137759438283203875629557874306519700081074378285070145196816639482391981221660329267627465234363475203773874302182847111528017779129112872658383224264206642954573106473448730422109688749684588048837728328368391271141241918991574086519777061079103276025468849666608122926774170457286274119054436941245373441049585265451843104628289011837339368629064906670115768529430366191676747552559283447093743965101901307111769259539325030807267516463196884767034866807213458239278196022280953722462951213826962516945531150333965000518159043359671605831596348143432559396645799817893022299203581777117200047000366411180294733977727683017351048192722047299546226112352302555651396704373319296931034931542372762751963971169765312386143556123539854275161754292987324378980547629514405538456495815611018691467442291171204220048977128821691309728394904994033796973931588553070117124628521471455235314779491536056481321601453102844755731740267720212288096894276119455658378840701653659681390324486848167433981333175487841033112838170575651781500059492291605412247767889811400449310712373666583220475711762320654981925674256231262905382880558033742621555381823621726932988476787307973660287353144078732031912500997253412198421722045117685247136723591683906835475485693589684875083516945415707614566546356013844624015088706908260434827616292797372738733463870611732895785028480356471912076568410953295679201264624626165640345313801931117587169267680529285368700714282720834077225936783122482914343432048068611884739026297487552838262204808474483806521141581775046267072558704450373167915479353832024039383235162318540143120415836464222773951503622811113757810454743879419976718549656012509018585621627187348533251595833955444359119326629169225685292271079645467686251867952013875076071829976273653556025554592048845654522631595936064951293730962387192598921746269847663716872609489858660673023082943990814965593635241197795024896053821396753274598122030661659711216996758909045758752402571831754270443614508666759553899342814652031368811141195096057446963921435078357842100999024722932682125088265139910632655884637474177330318706760988373617443152835411934038333692725826667145711116171758462434911030884168712256137199570657496270239749646231375507315307865231231149871077263570537396912684750932585457721422725665448657694935517665523321279504246268285261128857443234327122321550329608618251892731176481525764821545502888969311913601667993524392666717185743855498377898377482249376263341644957133791388244621762719311510847084159462356476589379254307056713733273872942974872211410805174996044998826879670582223537972751557526037413182072038399373050802805818907737462224210571678410959743756146024736288166059938860960272769366676738790625537214355776069396106204630785299032577305396438090660328943153205760263714580781485119527091811406278007635253915817018036488532979214376673730123410235846026568084842644710071824125350583379712221714253737056704561337178414530597075342978832877952758581751187407905923031593966628515881544891968078141201839319934051370604054516499221327041481834415906705676307212304085402918611944648465345767503041562952392936761153843834569169442502350535852097187241062661390263524383525571692399017747600700495764332085124978413827451883284980956280441020366336993801972707896128066269947301011494950590394507291385678473733315504924242160594524067424436328406144537427668964803968751368855136419147407028777477861636878513622609301904965234413591351270946098739853918610751192051374015770703545503721060992139514183078335202623750880098789963933150375774850825219598873596772913389539522991174586656026651275042382865743862422926722746330684832424463221171417143726567237843769370545545123607778030159401099306385357483893316811031373454924659402091173794081534126203960623348633620002489104474841658838484985319673449733543540044933019593650265965895152528599099222428361733176191385207726445540021355988780945132849082102901223051500219253557850456630043103611306735976418248063994765148562526196735211629395004046289009606464967002413928037957140534484925845029390779596788173524052807524105004609552544154134356280738361996825395034882672631821046290054366819535735849953286048444875112745781665927969416703789952969668142447876496090593512821927761313485234402368912989877770422715571810856963992121253999977713298388217106080770599135133134058908570105212575556163005334505106336897877592975931689905965849481506701058513223742534151565431803165732398822751944340625320258756550614923169955561801881834985622069458708962290021031764482646280102318700746090435976258555544759793251195181608540612655434948856356064052857291892121731350424756537911456826370109867469850957127799052202609418944367483660867397602212897238935757505895370841391451242575558974620210478486575777833369528294130740513564924316184096475897622551530006786182144783246772720100876276422331400028238999286146285423675111828815786334764300585986784352710664652038888123214128709960337530576299424997255290868695687723947789257815000740270457647784102615184207187408545489927001562258131927590959634628395162763284391046677655343603664507325659557240092439545967075820163523362898511910158395627922353996418990263607439573240088000958547339749501956715814693277990445082942395237284017221500962244064029613645435602551302469660050936087708447171695698154265435973613033969677607819342626779462790365532610671932057444289577954043142257147124154501604828456147450440864598911192568590823662060301949236921363340199307297562030538076584558608507916134535895948212205983067400295338345132434901635689797404899572477279312007112380180720513115583975873471436944593839119955502235875535464100785153633979358504891788822131688070197506279952309885352933191803307565177352217896646131831895783359249546022001592959420137944851117110257721822100835627010173991311585187428662081811232897919973786314258849790741284863004404085419458122708390790507077774484605997899116467759900902040254475095101771649803924354767486144769001293975978961172349699658524119766480272844995304996163279678672355610081740854583336149493819653717660132253468941450802087545343897231137936444344221735540041184543530180542504096284582855605885918243324647202725098673606894982651861952662122044128075664597122171639191992132936910977152741038312014065171341712084136757156634542196252705660416238638791232006569812469672092622885252596601718828436398484398897552413071005551929714124050242411547963358137232735224071704927144490962416849796367737139226006858152887529234704466228647434361168995789896660585054269206370704254060097884417443319794807517615355221161088732308056732257368697247417425866476390086898777031549358020264486509698330888215758439103848055977187026102481866815983085325234487576102461533786313315001029976681621846646706875201747450943504728082277747388422838212896028011992062336097568904991669837119710487600507252834500435930154417715483296518380518205419407776044756421808935340294111377519456405160332501548884274520539852753988560862436610596870248707609368042238550898326533804457591814717902248883167721490208121036773238568519941318351782699857663215844154906705277199626567240444645315067001186230826776161736977024204166351752955565889006316963526229232601157843085354366186786054318628543848092825668846126376358389916085206449537937764690493759261830147727969860031623400327186275657433879628375084873087756687015503742798374215654614255882717110315416609768906647693100415479383756821501881786201942587731090135991989124267342841268918490161646597908219739226357644330758131891718398977518428431279156319056445957861304891687710978454834356745425580134140341679353684726265078614880003182751045216390638578603221172120673115279070281598667114914840941622840332244933027219598489631058861414163010016726646947575867774193562114466283832413654717632125129508411866184139364426826044157121355905445643452404446708993437820411024162569773990844452186027994872754743743796410305718268339603093789032710675852784154930368002577476077078405276354744079179971561095163634527387755074474049771591016917991558865491385089882516880755392484814543682314632117177077121348025819421059916755118402869375279622963217586835042551526245592100964175362910818096000583967323493677481226009336948859829609204490500792719204667857879960892344391676308668167795249989533366123897632388474341140617748900944819121048518610872624099640564113751723548288657881810236789249913529556815407546833812264047368468192572701956910914000916773256166297360284152816352064270249429986968626291410156605102619001623478674171577855350349038520435835272720591513937622196664886608851250409232379741990263959660047004305989648033983920546096365514642798107031924945609750753434483746839532471897201552231651454153549469079124870778949546059114960024050000356202242039203045321730056422492052032560722105926525823476514356376784885590222115143384586822076375703814882527995579012033452067478146588089923257943407145812935506256165839545635498402767601630880198013969993482984377690660025420865721883512299705943273010686609798105017964967905841456394807879812819845648173542770718930689292279400206490876213198901014183517204056395239937327000245180924372193880615730425143626986182050592138108178168935626424611578288122171894405656501679619948903207783918592005643943846190255532864303040902607060686342697164406177918536757122668069280138277344228362503314093296243084383918565531246258595441575139507621681025240367410717910239603112542058143991089591069025095947662179567961192393200013917050422218212367817781589042233324308661073560218131653362433762242459561646765286623988735397520351768998758882689468478168202151298059464765365610776404713812542410077101093970232760040185320190858897931137045099044850908029914286584663889372608897501475400363730865360696130800053143603716430213525261436523071373181484779884958811508773027229493769953913581077671196164401538424251252264251805154388076543681002801302194261118674098080506272302693157835608351594883667417681047891500961598597698494731341902555780925102692690091766414420298365695723529903819853864411089144425280926472997564314587933025902754765900642580428832420098695370933221984596464099343999106792387976481618190969773767737663081974050324930282005520848408119226057161592843343997127298077956072310707399119356492542074198353541476510879552312558800965130070686079149731292630649566570339683871994477743141971369219616546234647588727840597482933804264517585965950434754632230140501316500571021139476458631127363660553581596865333532617134665934141907170797425825957652152583360192494865422157491232543054674929422367212722818461009541544088831593842696725426674571617382878250558798262589209969100989088956934923713815664691369140412611106771344582819063081753223202570455920622185404271720793797445790563930406632081206527709347168146455652433702143573222793623941395301256307929625974226807717882687405014130128267967803660625542718575257606614394635265565634081757238885234494092359961155991476795105799640940223048651464993857093565001664345078381880497501511516484486500347190978134996476173545130223821579839881590243134266417027107577898447053261903749067299861823902535172560102009228773607836178155289757376439174732455009102959212302151017684348624381776707205998000731813656035062909894689592721484945507617767421315515678384607302523456081147406861195643666104412603729437154034127977468001025214092002971074477683008356763325533951113416145677526593490408142868649570279755405822110304440629917481660385314820565871555669438311288015038927561757911788518460121052060387657158061017029351559412119191601784930067250972271685022575148317183523785501747925380831042309862582235834097504986591719576628691991396112125094879232530652041188005766638590897534470033404392783241786725546187773946781908153910951282526097876087037895831855402033710504017383321518501720446291583297423443115965868761360282855863082578945647947797394215810182750642930532579929437359012814109855978846498542784243406469114124035165102455347684486970975473528718973126387242304575896032527587200127335442961730512921346613296081543684767155167613077386437433121260030066867543721822719621627567222008026681681234592369154961937315992282765378841735978591032087128327124443024487768693592436082147892397977325811086590292621221438384244098969737823353395201438391120505750478758309215600414765820257632655192192790541925499749224521287903164729175295745460640503081789899507918840087750041867614961554779131525298048411604565458976986812805578461632349767806218124816280906265743569062976800898697928164907087148118064606111043749318660917827058033358868716311645688228615641821073302683180300234852933848329563753091458980529821528168285627333394812524403825584050796465717027585875871556180047764215623120950788454342191025018812421197179405045138298636135571711307410452935373903273634306486578161040929551128939472045006071358698121798783052827496724329830677553165978140353208214634488775748637925550953090094137637215091679849779093295946827872225238490370356250383171311167619754787839424804513068304623296083818434493752563588058811782101743144259144985301049374611113574857496920573221459509390876925866814500176823717942626831924981660271117559666681872165569089884719697055989607469173892306369512505325972959685065270551302429600617006447055163151542274890562043047463675614765950397360467891935878842985115779861465694346348143648720561515109116542824065198001970970138183555960093625431974479069882297431670308423043222013412432484990662348317392818394333133311637367980073570864473852052529669484334034602465797411982621502593578116077142790059926879276253658411165956714736552306489751451878364273625270408176823599068029086121689106977565599292596189268609535257339844969669288441251168968486008482094467696280381930986618462158952998562712024375132938159411799952938239474759905713368681653962187716084242032609992283241694128704095256634638637913396024513629780659039491168877806579581097875178717032466578839874143539260912737680644299469547821727174579474561940652001635506392794892218929876832054227624720120546019022268368266395451543233142788483648224107933417896395012535945904708196005758670425055811325429659159875206911246494268275367517075055310786076276526917560244078768638945185360228271147567563068825101917894471385224893457843731753358396101290120781509311337806577949454049537801773733753732922868888226131056302536973143687485229523825013136559167826194134898511398703312988255437775924623383310366153218569526864296920460720841681282665646112638919497762968569035748545303040743957748353435405058345282810887990004440945763609785932827941563380732746413725723744753641398246255330140337416514055002250878386446862065361991000229849621572426456625696909168895688640054781161116100343811213795152464979723284445826965525007274914615086936358903816171332540412342563341873266129811697026108550579711275727845394058548562697236748460427818296278629682617977772827142214794712133182932388026915092765708122089001481585342550702189241071073164505128000718392668907908209275095931024918017137530697082087927909097021150498803649445410737663465142874723618621117429832745941814151023442380486192520631339611366189292968620920988609549760796000351388358094963361896876767064931000225029026228087269466861651728078067799510920923502098313533637083003954541568572037145064255321915830955129448755534303079868724906977408632460835801713285352240167827141561548688672318009233420841039038431886145320177815263774544229434593410595802296380787539406310034881440943156301262856329568711807103106541612103377468248221454800162168314719957748823336755365722416966940114585710172017621013998207800614792043099024990685239725973563774490954112134085303478355135811257035024411833675126404642980230025958221616276244974969827895997377215484320616419582151711298646726237443521068294407039054801293118004183576083686486009162769496906865515586769095224095001712165080621286497498414481705504987302254354793945627993524584402623080348018665683425074705146038501944015271041333254410642377228637504983555810177896523382584256256538342857838937545328542477698093703303663671312908021064209981663448836449744062215803117464618075944771791801184376812168841831149754342721519053161835394318731487959251014967877257112792731113261627577618002595014613646235151256942961969142317721902668497402680633048507692607030173643617910441156472868486365669017188020766810913488838851791449802471058900033081613813753042821345770376836055036257476013160035709076892436059510303429440821697190485491085464307365363292623614363234248815988217662042682688444394413676850499418405934261015382300644554418526357236227794681934127426754773197929422583452171735563085103986279939486534320133004419335474985177177993321324547941877210305756620299799125164019549407307678661123285492377390327172542675602550105530608916392398545430607615004864429193085153133210604716836561527654513155434969229924959335595697331298436268560161798094266768540141397398394991039722465091359579459738907034644864228399341987786624713095148922053153499567101281558328661651835198286718539005853057856357926164579295576032541883716552640421927301475515689647649849245598417522275215353968629526802301815652428888900311086567065036067801767883839755266996809570331732798995373807324195418639850930503948158150298052951196201463104005021854278417219889950285183303919286189479324282191520010322453858486775001963483111361681116537269172894515453686003482795461695802450497585198228479637613339954988646292113736975198277414022957356618047541819502532698231497169472589490513803799441731161610933935898778832551590181511727950026985149647923229964569153693882562625678955969509699777910650125197260656665481481309681572882132404118417212904986354908220807985916250611632977917573507185871329358359205993359247194201572294245919917565002206516153156817278644977002632951742472847547832916896712147139510473772525295810698712762201403569337677096357810501415283574075702582535034587139618825865986087039396585870127845741172980737892722519533981114050996878242879864957844831808424282661671444869219746565048755415626463265183307884110979709420154523122159940941144988380241427781653558942970556262615747004211400065366425210712565478873893499406605562684314531330908772347151473715491095196902084396772965249220919781724131746639944322522183774268955576759003906508155104990371408111698121601181170177916729888143087303667110956064059701164231762142479578542051828005654037971813599346441652767123381078109893330162544311504833607591564244246376939734933631161799600045172562499555201836411665143182818623547431433141790619895376518250823856771952035485162877754661383245320531203270847689615102776199468109544617599394217106000455970899987891296339732765283260528490770124068419369464719600894298200625042506642672394122862747251851898540633484743864312205920590254589480858315351652885305368743416247479173189655332244115675273832671292427015574268042520991652081779822410484644848866163622069320634695176670915867808067004079493320828398511538067992641906358495120161049232616951263922516297423464732072191390945316765220740813607295478523999213267731097931095491963827771287639952010389441940773364901604354414499468140423788749932731195939153352234433768422440956198459506636079779613360067907651108154968573285425056092858337795848928872067603917063801412251013916121598075001273344961170977087843046666621469969531108073707941251633137720883856175143175700706376387624759619839221215803133652992301219878274886864586053735055034840832131230202371823860759177216628649156142965360220418557549442412346616560448175826644359594373871432940366762312433045016918769803195104052355165198491264010013733197676541078021806455619781476650715769244036782819398897340981024690971005899622584794684293656088878027190838991416470828593731549014589130681126177863015961009281662792118901520472250710971228176346912900273312841897315591445866771101025567419501293149647136767580933780116719293134671632504978018402234057545205204385275168205929707290220364371164738855587149524732475069379881844835651293904909409080709861768607411725751362854911840075672488949379655992788348556785787797674297582916648944772306703826989265257680357534165180923338065859349834206039754113931167932528500911853025418796599868601383211153980896468673628900548414048140988690068946436781301004657537678806484849654689288346288100804929946164099791425446317444645308511348259473892042531226526747449136559637022214302075527704499378486312356486875390981664006956998484535555087183535951827108311054182088476659383845074189435133596353521664773913019865619713347680581913227159241616199924615613722192492921432396141111324220142086371740178846853466579257866956281837707386951555903555074658730799985313775131655183596061853532637635649618451487260346184397010596532822190257517330312854796623726090922190763519864470964847479796647619043830567363219731834181290256775067940871512299344801009509616203247473699304180385237254712467915391832735751990423342741304313253602765400549142665634166318173181887601843016937516262112529373185295687618871763267137734543084424155208143915795578295516457503007001260689017428172957390979447128255798355166221893591913792412448930686523523601758807549552773762406688908978276566747497912018642959241144665997398270078871772436121106035762299734241698939450766067204093994904646440298761889324549566099624838337293617580032306400930699501563557218707161640541065751402060602984939267501567727218152962664519988510474043199943489128489922689681636630662881441727191232332101594112027168682052138279224070082520034227239439235653988841491396471483779505038919884980880837988125878539369408262270153618123534777903907791480269051181047785690562944240411195028141890685041599163370645834044481182196113594000533290768741291299220176854975828112191887707292199145681617762998714043695172726141099010119593222860459672522311366349239675100450623538116900418433057305376502188105148167689581603879985749900121894640441068194000686129121772868500096931576556047384169060539318265674102188819927790513015586870550909000188147304028448627017067471599874541664430114522527699848698088803988467528466356380753183418491175964347041922751947962912235911604841719002628556552622946337090510795232633484273713571757917883894822809472197784906143531997212917842563731279129835383197425258021212898047912466703558290444245136304727274799470615251967341386936208240673112179950176929611248606653637784573398712248261188969923817834622446576605611313693703213480043146751682521292174934017637700456342992882418023866808682679841581534407394648588782156891945474748304875951391084597298634502827133007112054711507668895924915421931776442152617358731531034131838100573314700431692044761245527002542023996002822882040681381437887183372832326066335925477962811360206084907437786564916844093254940246249253629808573526892791203241896321162157681129085744921051378461853065121412419690742438439362591929270153366386913427649033213652912891659989048847920004235896581091535537398535508656314793311647562221392174371530514787245828382208218894319002935664699188116257433743965773790961901092822242942532072528396176773667620605689920332792232618969263497479155741943094499411176664430281419390739445179941426563279689506296419763128834894146506461076405956017102073664036110423992768884078594605976940621286448693313087845535459352102565417010242317926073347647084084243333772606340325291975061296575155699391124002169393742078807153632639865479066861822846048308696960674553728962637985088078571984139723179360712877062068491921558408212062168241541169208520608139337664305852260971109828981395557857751446642325484954597761145080300733718006106521105161533053418610237534840545395056759797374941077340510599976858976496177166442736591761427234091618069937125456151556310238499158190830015600023277026437927099235660706669237083023040334452596631383601462251945500655117246916219021377907151382405679270312437098545694153900565496894909250268275376717650164389879135134368894643467749121954565224863351732469956381918136024167749792363487528384051212817075856474730430498694954738921294361242831637248412402750619045981382328124006839870600488830873047473363048070189762973183297323076798176556343957233224401990316548112500864727105930769360477484063224145671311234618197175910437845171999071437496192090165533830304852965561727967564999625423160029736267874747457179278735965757645080656673007598416193513720325609862725807041581672957746550925497812472097125720450603030556931705844599555305859322864813460266677389105396202981720015432893022969448233433304770147350090153466977958407762396913686306801556712842215439763408690481290861771151722424027822765659587380174495352785432789149069906717174373133871341309888261188273209790801678783334953178503082870349762615226887767498146770167876779068405868420500509489556662668891446711627461859428152672197917720407456680422398431510625422552149899844179874124861276653589784417707135551251302847869361384444606590662078769302879265720211524015349857480850073362290710362206365743048765463496679723140833517357770919317334465152370759504373029603269030245014157965670630190056567425232127206784189256895643536587700444505376163935671925541995744420568279767773354323761148849385378601255416115501547627773280913236344467493101721203045552671390405548277258613703307374674605966225612212129411294322462854368877980267794489044553864885165213583453916088957013854190173741808719819152331141129097466441289796662418974526640552564124103650180285688543728069307269521890897878549222555545537631231270276896358245128655178366194112492790512991284734812210992250254231839113673755105512598108056373131067562527829874050113187802975916305629801704613231120148341163877189047009459446592300896012440521990742374692574513812548829957084420535983954202502985501409370375770857480870052739605704791150313061225225766853109938913677804808192890914973559602159222993500088925969725444471501878570798896445962831557529558828257247488286059318243563433242435470469192302044671788516020427432317498658582491616875535665456643306439283885342458263827837570869732141360134996877036081766669185834716465120912483558636926171488120747771391907260437551446844289064942306519952623591194785459390003786486059118965080291914210447535135639196901454679361331479506585266361024853447655126645528798896248332126398593663229254741333532713316658553010633412191514217291680871433065708087829468146720752089019381592839664666573667988921843262491895854583193224365481395224313381389472032155739545846719549883720258662595164568851119328890248774507198176141120161626621033098306059191762589628029877324403612614968588793693266660200245633468670741192223619258936714183323981699653221753663284491780196389098888354097205847951927750448135936424639624714070187168207805806611572932154402179171993844920459773235766959294990901124222607636647937982731639374084731604744258134569919385673640332152675812174633513294676002547574166272090350628669709204950707367261170169378589447289787599132338043471901531403587839102020377626050843055068309915455350654099600426835368850170531406590558318890448015681258570299429313497813061788085981409202275168423618925386278218926841221568166627361823314509994833234145716798706155414651808840356654358525931939993199211740683070980670764624150207413920048045046756491372942133293280571184823381494520342989530285713399000670852716145540878111989289402561425887932302479410038449925582859956923462413191181636830758678471979392035709097133937596099622740904407126183125684330318019111125992608366922664052384683416292187572791704377715159630177310909895454810399917328076480605641807406090446994464930434517714877017845601971093133678386556122973507059666217430467248000926586422964703332381581927167365912288187144473271344099397288828818829278923530660778954803138967672239382174037535587426798205400218421244115265261342527746638407125583996462524976577310083300513998887519412997230483393794948858620805343896952658729039349482617817122161751589165610400553008909326397000659670698711384390972016292030428954180297381450139999337550408289392380322868019324996849439370271123443889105151961409158979231773169173250114335874666692624603828202388831750500582885515043517427090862502470740485106308504036433876339503670707106569743262177533648092878811370025720967975728000490159421800886346450393451660192185277778814804157141712121273710529433104447325660903079947924089386332454251415395658933213144199508811053638933821667495111443676209836982774841072102202912422794771177002574864024771847227165021527427969117555278468873983680657377444535737612353205569124263159798170651607578948235497548354584795172897222099774409723865639044394461807024647742452706327673829902783128436949342685719941179321034948928608268328398515832818171521425873987801696041125457776485787948412162584932094021171072489338343003156421228110270176538399250599306182987124137147979134121728903666347383783508257355000372078211732713388106003811836786160699125334627911221581023264642918482717260917438661978168941284490934032163836909299858094662599878843615810627220546580537148806994043036914042946657642723449551169583718019884029640867456938938284059066869662879072510746328782863224470355089720051491731368129706365127528554693457852263382054848547740512791745686454445250652939532871635331460707645038111660716029873360014906928150862904262090713729777576736114666477177062450126390047318806046329311977206443930195346381035411377137680328748482351411064287996081842175666182267792398244639228120877108411197903778510390493656740040514223849258379788025232104562012800776859124355559754872448676651485102281221761485734078402621391753663853540386566008546797665339434200685059695462922587513857677725591694024017154367878897424819150002236147410432390113710349385196713189578068607898904916965141453246112935456775577915852583558435181742239664055606626875063054122999452817181593525267467110722022527796297662644550027824886740832974244847623733999104457148429046408698665736599879095738744031511013895794285189196374931467367707608050836267920798272420621453130808555799375463788225152693339570984236260906253912447279237384373340644753758846484040894908562905375062957100723512304236851232145905581897812020937001553104863448868967771370941839306767272565928552122698955006063538574737713610456755087027679527523022169581574544303573015522666803625027836952971452344337937739251285001785392692981485259351161420694114733377439372087437262781004508484397939709603377779787054352852495590520002078394574762287089212498796580334682747108044105461799569131754903184708293350136826467550818556890078318082478489573265957407152663215657125804645645646719585310514347519303910134359106521798063719627816826355395264642225511023594575290920880075187859143961862106472756245820209465974576798151714787503741795544961544857356981743891042711442259547711938617221849282339830478584788359733382665504051067560872979566184534507967452114193677374800442685409680865363279389811453045821525808695376623019055197879809748036604708198738973249714534871144276892887209924616474096956522850140631358901420891915510958064284770333614256678779522313698950725430013422834507808350832373492448769936299408050751540858480022330844511985679469171047855465995052335093502061852877372364170637108378289037701618552351989449385694494475795459632749233833395204089709491590780476199545066151870975191722146269879036070477879599574958138959926437802830860418258024112192638071259732001755530740988648320212597451620802060811999584075263613858709618891757945686087311771836472296270850696519152566604350104337922882522250613301372343039294670051602488640041862693296606581301512305815253313470052922569690730245340574766916948841612888611184739262232068614355134823071265557334051187162777870239594460876682631694065944293597529622447161856263410122526668980738012844779916038711431808496808602420796438219657121239395669648140240850644128347142547036550782546144862986535671340691575644361244502042411665393876630148193316353877238923619402631905619089183870014774403977753307238826398769126697337345034579928785522934440230120388363830684448947626961332336667801474575317273594964513836424612685700094212027203157611540378668859779359768341189604996992097536103281009401384746531030497025697036439956269206803669803290819370762820488970932638442527989061449936990098016851807191042221055184182664138589693818726876121999630218953132664335199906793910770423917543161922997422774899807652700980229813086729559026043755150645520467325167600659501134021682317898685291522472107998426043097622028946905296284223648381402059118615254654243438680204272773662032699961206743156691379466092610835643768151073577432612222586632177961392427860481589754846758602020699716891550021885394675469463337378804304222681915569609451502511964878260224326803143791076063822945551363176871226097025483197028233210654603143549783157642237569177027473524629529743622664267317055661406162621008022699530932030402425149368572447036199405265138846718511006533003825109568749973725510801054336145925232151038782586339093993196136669345413540020265070640927920061365736233015739215539935189885770257225813260486863321147112101202278302016446074278035712473096266926063557457362191259656305795383479562387870216034069715133848495282188668486522760617084635790107063211627299899165686215651520981066400847026980697262158373082520928521845687814930761223485519063325963573568648985584430478759473328678592285932534277100786254089393394901825082246274148696638207766340296324294050274581548660090807832284838459276005572344585384479118108867737309008682138244477044888979477146882014597916596302272389302771381610514253715238096748956122358369386591259681255886197845613539431893204509288168441688514291107167386551861766514065599370446028323202564063397116624457565118933507364861461972599790173442195289598123032533069206762617429980621673348376035364346198827890176936019083095148919521274180147709068143677522328504741349100955588755021528117562659136461895011499689646019168638626531922222113664536799544366130753575179385581824508726470974583025561448324040718075944547032448791389219330207252502778642975771501792517605737428611442648971038203769982239994266376579513774026963718400346330694397705356426315931554518780070187131692427239827293388812427460603654269979581278026577958333336536285306272207115397700834389218887338259568970472389086398898191994075934306874415130101792080058955519112809004452565846813713866075901384236058658194269957169396620856838993853929262990627335577979401754782022726060794720266722585160693361902234249484989998509402117090281481206710502042368176955470431771539902016943072319961639921709059414090419073333485376346771203931701272047079307505220861251083466457260643382588591761157122366691919407797257204192358413302547750595998550844089001321855232811296943923338668577602560307552395038411725230782655801995300025209314436391010977060211105111662941043048186344194666608681256226163108650428910873865013354547557469439170319522346881576944955982836091328595158653117669549861848458549213996100132811317070434094279322617643366077538451928398796309438661341756018288096309502071831839540851405170234857964594989948972849286964549273178247796194011903988371779162063656012482148318230485353985751864402914758134110356219879914869668340379117990570980860541401458166051980665581804873655136184977646300379685700530117428956639280942979504048093764794910782475337159827525180245704891639503468196063646921695773873919981685770309168230565400478519147630364902020705915547169812409288227167616134019374649955642915712807850101422085570754269508529011170456105371523955502948728434904979051763499215429458385130136825825505484718169200822221669127808207685699003088203351531414636737880895954623527109247467411289978453332165239981010063833886919767159022398613358712386553255608248995302953715476554926786145377749863069538191932257666644659392017311831723938226730298572864144874684839830961290341593676495894916966269639808325864875713328964665298710107544650469609731563579744659261501862852384668223763164894651359600425882521286218566662962701376138354046673982384798765280299399179882125268756891742855765021312063643965580472648709463269758948797561023695151617533841038596418557463072787256061000761143886949326198491182657530043908042628382839150724778387445878698382466325641343281628531821736864838563248553472660753916888865824426281655764305093908877870654459653536114422901505720719875544650150813485144041307331360567136372832292648514576171117764656466044869323347097530340961037359186267019217153270945206500294322172133874191813822554576523490537591272732030228066719127303389818827867419434883490924278251356466579526671072122943822876182374776678573466797031148638576870785241884778222740591811385004618554030455296398859845935759074993445490648601720475405528831007339861774300467569760164982068163518637480014329930820006843888352614296986102553424398213091069947753653789022873492443174731435689495337903270660719411418018013751765383336735982639533851784200292430276077000861351675648893012906304851972495188346811001409743832474274815440475874644199870957258442015622202946012820320924778810553229395606990022263582130234673106067357860734065793939757526310407392559498897723262381194745682949413241500164211903801599820896887592882606674905308087196448788730715412390917082430867093422764376916661096600707646537135760048370426846150934363817033328342629652409328403058139357246630417740627023936488717679240053279971577119635653003458818213616945080218338561679807182126544365361757433692204857352376868771986729806814624445812722871765823974363046539188141409201481195781063375369580158731876602303375387847528024715120744698610769309625662045285362456903994444932173029450833717264094579209492575862473304873067169992982338846369266160164495935611875100429026843240463888179548085424637447852281881370243436970391313075439588432518105329904129694107454546818952937799007345983723884143383476501673529492878532264603234847188349348514113188731003184114045348793301529578420399152374286129074058957710833981079953645747362783705931581899637146495897285008963932009058391063892849677599694060429827104410500907613818524812769266974677766743873427281626680796091941902873301035418167075865358602747719113499303242477615180880947136489280385285492356255957030782561193510417129944155519316864395389772557275483003750495474635599054062530302117030541638038226552700180257607288351446194193370631851936302881535867222735044457397327278821185179274582071067735922508069241520638839588550555571802836185211845513094669951262400219189940047499005568816298064701673617034922068485768150213611825957873596733941418268373191074252825054040725136112775694729453914023063109456848428699277295667806015464794453278328211051573500407583246524724369126243858502106991696940718098914632506546763816962257048025263935630219175133799123915857175722714548702614191529450081744210044969241277037335696181994498176944919599161965272869334102567224243222650457775763925784879607542375991167075702492625025809632630377984935341477964552798007125190379649353629107967244397807676148121171253814587670607180938348134037832878577445653390378481533186832752275309883284832248621179401005085971001386188086795203018370674344189214373925211032369176748981203261630384178119244161707959299397019108660652857468731652266162510465118203528428794378434438654649146989193199483357585894523764566933401019336041419760570731005084891756246862640867331276605188717981076206439273756470637679287040627078033699522804599743755591146156060146076366364495106235465784137581968974994975420418970889272287125924711703679833075589442123104549986306931336718090452140441228365696470331236859856540034977141967584341671706606696741034725564097343891488873927930319079880264352773306372783006285272956348574144548732509810594146091308816281909346829573237068306602036442410694744433366253361980297539495421683902137066378620789711798443079499901014432541301134462177310145227160748117928838286920309233036051843154137528840014557488428282404034538741794544346455698234548307534937754145054572111819367516889278271321195652304505195013338046853943523943812109101440132985267977131843368334989359269675790530993440484536195890762425498721846596014664276738763462034054771299540164917917282301547163760198323622008049483574381331274136049921651485629090110917427807914123824341063456237662562225229899667202610819372952534896099891399409700352746672550384511616646330750194963293593624256117670251698949700939477225227684860085737877905532642510206853930080832263786882047134810416897761627713388517692322618921797669956865628478046011393555822152493287163421326227758321677048891680709556578586760183511865521950196120737454063111870530461257415625772110438681111401128448967037955802956632775572744529770185489253167620984906242206386276142215677522910400905148258228353861702877031529134264001909354348021634394730996185738670893222363599832041022376322435884880203117903779630064091732306438564998474552152664159052186100701341162350997222805551684373632701921524224006963612915984466924957352765976923178633786814246951075911002194509185563547248375793183445452498522888219948243076224764612599122565018329935685418126191613252949023534855736469389421913416731045379898470838118004218699475188866787734037525067508106654916246461540581549978263145918196959046696565730041443135549501522547801106965655029145323145592830195400600765007915622920911173693793767728948562055388282939626422572720520362467668997915173753306630943212718696163537688235578594076084479577029997429671874717602344266561818349792648233333337391076025534618562078988912386803026465882145128380394153315298423274412867274488929889649118695769605346883292119024907687318959035309141941048225964542644395806749546557087843757487478040866653730609686570424455362680355131937974104353242842776537453766124532044559415719811251976975941638953235342725131855313992379235145321912062196503223058104043683186364210770887898201931974071271030701303469531584016479467129830394735068040886541969198320194404815290831466437462605084223829336756117886032559030998544977339520370705098367039813507146744328893991436126491568230363315952919831022925707484957716391166647081071514142504362171279250478402131560735138566373736593057039402822609285788767511702964669249511753684999770506559023831127090927827100693499439924719460184209819707562017114861049476528881406243385884124521304660913144085920457454221349269427601949228812658299643460556182079561878714831793802332714106782559210581681742682850710723394982846496108407262123229851596615954891094493659629023302221311297292150593382205431993628652564097115915226902680972525561939365233015325626376456299355555654907851371004988437579106399475088426614468570975069008596635471879432986614315542769004915893864143478923575532664901252958678374789398537024136542945020820972610594779522046602080018559153494173959942463386235829957296284503005736622908267953770204005560990373746954497947960179466094690164820793778290613490146904873561695431160915924959096852075919972397856069225111823781136193573717563288070543442097165436086251536819021260683291074175291788712325117300625592582756527217524387668976622868764853254923505482847783712278447443411704460122920152133706826057085895821838963906039369082290010635061067344601758218173680812563627809019105403232095593150864113483677233855945222502774804081570838766363852870397645893427651180007368362107427327053944311268117867287322707694210045329357617514529960373054871175382966335890739232827778079324407953029024388438434564052118793409734852510289851635747267568175326165478987349778984062350874388590644943825160391864869878131629767874843372470494368128618639473701035542923719973392384562346535022026696324471714140238963698947854037927718865625954322027611004130497006911709724505788221908670802167916186437168694551686061213548057570021992735920317179435825696073364874702773799488976583793079382448745404452995828105219322442837945256213428228252292169919516670755021127746030252460882572700767484022667082971011994987121636996704127700030004388028977328227503257112282915090801054961335642113599675897952207116880212869032324781220121223630034214555049799942522926857905386213105063183523607215661044818075238168604393078245665037574735327882885837310122182215865717826539533050767724417117995736244632302267004498963141493432563656163646525678210517329754623560001600051307037412950465658405279899578287994756407896239263575894631755215509214757176353189008401941072679111526392911967398162901458654686927715079107968364915623336961331102299667527174122544202315004430839102971407821435939427296253803336565849987911772744112037303990689154632256237705034629526366418153930814543519300841724681777451508328395152962099796161280083850129105553742174948364427062775286145860427424273158773727951262638413142956501841999447447930730255256443064339354260192393527905888387212712483347262292846650807618542671771719526900601892842258488015033715328061775603396423313147137269174950527222896227627385003715221486454025086403141532514508332062147398004415012651559951256069841110050767099507466372700875947256475343639471345468654098988276368823641953488567754597677793658841424285409298975432013680164947603027927123582925026375450989993741395118882484713610955619252812769223592266346900754298306844802371630288978208525218734744749329031586215463507922368721078869740069466295904152258538166060863370940891765612982108791644024516763150861711897878244548123057318350207726610300873692211659588431681478063227595472609810935845427847960180417951599303568031809060611298859027583788820366666218513099392552662414499590340493143584875751449069765896560148920450258150911664827376436329201730128604413630555730363290330364531377359488544381946380195260504276683466535641729776210490814584663886798137909072824762245116987322818631117804935108502228286489730324227506232342077938262527908770279219623489204807477129261357805433523772597120926801771467662274402159215581881610353982479318562152832995367071341090473628343123437095070665940866859902848957625094451833024732844927102229684263893436256156680592746526511128985061477315881950935011938639330112479840050004698487890995017327916569480640475303877207281253522927056139700269189695795625527076925468418052744496796906672006961125012653188426508946460434456195985553398139319124313545157416247409139494085452123697128646090464308612553060437172225438648663448640741777562361322652322521420412438768922162782786891396542174133140496239971872017890503603721293893147513349828214341951850912086828549050313858546000303688364184093843060257327728280960618870547679348301515797383946892317247293441072203936605809347591809254766560866529000305059232457945922623936662153834924456155700602433866898062474738254821449130463846390474837984268124284305272484506790124200114160091065712670266956694810195171580054491790393339879840790900153049535534899279139980881058707837749581698686386852588306763999613084088634446834192489672155099814857530990264498397024167608387212279666546916147230934958844950941100212653651357774875827600265594976596908627082339274788607558191813109134796656437087501613284794835785945263322061307702793926381586356623783342550611960992826873391217307206837314256537564957970060186303236153849420752081402225094570444121283491170768249276332162176944443639836627541821285749512888783715212802434792279039674694938326642872505384026196876370904965279295690456570098241519534332877659010634067153917147687265805158105280270086639201750989678974022667606383009341993120058668016897921457934862648517941347198178851494778154975628156333816451473733639238442238893224099482644701803797164463304752996964567401353047101181456939953444234202521417267785826306236879011864086212728703328188601901422232546650878434300267212420060985517925273641812142961707647708603187783619963658230344869724360618732904830282630953705163482322170512022826388597961931806401562072480846056360157854240735595022304246514909615474928788702878675550490265060734139426764395526409320254326080767207590418310661479590824720300165361659647308782420886474456052871662261539631340825922083781359017930816171448424918075687115963659839407059458168368368382339129145497962931961131246831289640521886684941542273298152854396769050530835903902224715591749843616542012645757950068216896704927569145080706891648625139514293657076274650289194362800179422824717973577444230537756760527067818032517467177641475966085698732281326856861756333166381003616726468559221533223683960506422179252670682938640726587716455119428287848002431771012025354731971860471189622012769527576775459370314771346973770872808997625752591907250064818716300107975468033688183455304023505942804386475523757282154261557771799456513699387943797607417715698205921669757066307717354091681048563274916162066549069671407889105164311740745401448813909257743469193445785364685345694063558617649427979715391658259461101691277983531256815611378695349003807552982995221081681470359076915276395519079895973614556280086001472296460854984485469961458683742158436246733806082710107282756151101399678302752754782673184647179940333428008936441338066926962788256536302988870912160520144848084603827358799402791530215885684366046615889201382715889783211687916038779957323688681378718161292199991636965661630142354514806549161617064797866061791822208827509318627398234679835362625279440192687003093315449006722772223320132532288789681571560632383458966379621256120559764690583259163678202557373692363083892056439003547451023450314234131683813423177970362928988134467563474412628954214936918325021746787729566778063791001335860388734448946888260367925449910026118049777339397428741237149988963620177674055125560924160919164339143106708158644190688336990964602447391524012592360759168216673024566056788358058017431067348511952475770320737823903886552940545989779858934896095873045704971447852845357978570475315815613303975037732984678908596416085770262075309585120474571738426192917921041496982376832628903180140990562723847526368112773044623102586145661623005139930044996252657704459967570378933162224669912183976302842090044883995241061129691938978798306781235734281246979275405098571334664687295554395974407107845380001763848314217437458137861743108706231177221003281403643438088118048785988489672573518905527887464743920492391199969048932903911234394751194864881346741399363105465850408045725210926005874539884955793920789075519405537569883467757581108659253642206634444482315831308886505815643062369641143668967258957141290229311106774411980715258803591599319431680891084764025001706174337292850454731686679682346373004819823887052284569786468552070326984806086009467267100172642489510202001749385727707116966385609826022218608796425061702600476271682980060535052057543192300629603526378498778216851058032567131502708548392026023595447432548312471905527561681019016312269186507309307972048538554109975990755716451265163608673320750316618461109644827905439840253950327636367144500713664502988014773044833092421447813382371427993983515068411597217217705423507965366918998676847705515222465352900221984694875689169301136784087005182146173339661392504406022104192963062672844169171821246071951503555574974521486737897536255284176081838983862982979069490837591240846437540217197680302698341793293866820517455326839877686643673508321634191661787285404032710544495159051303167012308896822783310507259429838497567234084581385610214548744589610230201986674735830331705729788415425803109960999409333873625455439825992277041500852219451223753114344314161214309413938206906105075183391896621736211349164569056444286714234330465046712680200457472940574248745160590001076320793950499017526487148437166208727337294597562858643826874235640792463713199453087916342697536004141002109653032615149045986889612344882521647153588012242188476870026201010342464997418560154395164162466549485136243841967781538389793385942233533929802010677418997521345640761462820814476684283048859084516613151233028588944467584277693525561775359165719298502966453968032511051313542716449079099866493657496174847386058941967594608119981045561066675016821857013035825931528002285619136284159371286687303738986397273751294914788073419043027317896623853721769143994451998870846992815995495629315705798066203479016476348369999714976392542791082786610655589653835746964672027966886113393201557041137353707506578497182139509536867934664244428026843712170529834074662891595548972890018204305291442095503257972587540819454689926100168145354964807007197616733012693871442629063515890535550400769710015812939403733692151526359396954560196223803185225834192268504197654157844344317974331766329612367386675002070060078111640805814368127464708966136947144373749054915284068016245462455380470035741360250808662108013791639140522341208089031558162006034697350958229105060356291711528076517083687934106644268518236568063781185292682152642784835616381244649409904048909499036297820614170680054728491570302678046630569112082936432015557219942363962747826411343784434493331093485122961681901181769830855748545534578931568730583597943776869376552164182361331806575307630710841142575341615888124439320120239842540155695449396786202436800568132904178731152532292667666044197735753077029129012832341131446340188911443038406794002113535222038445483015438694595400159451898308295096203438893545284597361659099670758806382486961690520360487212417334537125393824352282817931548258308027842394717215884717330717086546121695866961564746685938176590476643460423749839716922478749328587982949774986591417932727002462773413482262705041172634377481095608249813468508557408847236826729622203320526177344298203294373064919938718137828688960739331584872653001391876565965923910403523883901391193260212729621525814690044885857734469864871846981087088981130534651015226852429680131656401897423331692614865734228347007990337641973945589272564494931195330886667607465260583048933862459873757609250905561829058050461800533301695290908258811083321482752759480925582093458602283209453255099159237104066446738073689564741853564372245543691627291515115427034553043258437647690913439191025549229272729503279229608396760351504817609632679560228128985981005492639714388386613130423763830748237366843631621383078329003612366375506643602444896404702346155176320894653552741356190278513723862550550554234548394837082283321139758685261029191637955654551606349068431486951561590355739193579479093044494162422842209587846389515073928647698475631646909538575421087105486997310458461581863194813994798546831656975740358482918407715777826803504887607054095003573802259895023542538602418920337325925824576252272277013486897854618439440334640951864622913612131358168849546426338380418541802202611939506357118557603919441719695717483831974331090535687175504288239526679204622053549363680493190294790541183346055581751176288552972097688393710304547155094711510558488055130509934517335050785913106392503800840357730225837769595197336431449032531211743836249851145872826178144782951355326769059938706731365039455937018596639521699091131666184917075328414819034438586528781002760006690877551045418319627897849228142940473992562744970618409718049131892354834530892471830663040853669457364460596987115150860892300567501152736439211973459810879919043446490695769900140298457709728964636386286947950352601829738253312542122909480646335379463568106276528332744512114455945869899942383259700298802250427974208523940271951880179397861150953152636456935962288389318963537167584633988765969013626321019473571894706331785987481605580587116159401069594807871721069844968122627542025562070225052671151468111727400449435912394861039661777385973905020809566256871490545342659436634070833011446807270007222543978888191731346762437520151365104950829968649092743391081868621746216245966858626034138273865971666281612020861389836078928089305980482580496997817176501471997974285605148921272634090893375227579043417383986400767570373621084724258178170622239661778316122579161975846546412435038772568594381401151043149549188443637107862827006438259291868078278874382411147927973146659158189175342347378291724537068991686479712195395978588670081324173321050382384406557434562090990376101214289798965781466832352353649411057002927008550449446762629446496496499438623543520083447205150778064907975532656871756205087722807474827091487098971148129893377215971478673939697150321179070778979881384801563969623683809414375015558121015314626060376125647034260197678967656747816214909553989779728238538803797302316043759361899973986326458882811184466216305173888315250798732386075546241553569768686843080434024682768232027857908246361830740233616491439891210187413724589094437945598792735970860126784939503720037799132756796726882558689975548432123454903746348038578290089394187014574590364177372261303383411216694161934558537792120008343220340775801130359822652364060591009088163978551562785253318422508522322447346822572178818039273544897078489010609424725771512669543922834771550391346679240067725239416127149978068005112093029977749062224627873964021499720471465287147497740734047727419079474183819033941255834523610709477067223921047692372257097556176865323700709989871660021510782314340494826556465831184410409573018639798515918491173400444968077292649851654586893542052073928243546744333912442116288230682305373670314338923670436189319847003636289406993725252908543054383220389600117294019207513457412915153458727092890075695617765634152683520074253153657203288049407643799918557272048560070568847154989687969880647090977160456609877177935760920702349250938729594300718384459144960606272544498709292269011376018334077936124869485138561687895880457217282322977819715555605241331948570253497440100069143776761135645915967484729855833852161591406066245576554538747290560122403439073054153400307006166377889755484650320562093277328870361460407633535242721575569359407056759595762250174083786873741029091791082720393847734218668812910336839561646051604545504015754904008704856399894855585833559438568948994409549147603895208451776411849204104228313270628651515493016420170032552534663765032903579455117423301459325986652451597516673384648824953824185444489545745566488363172325415878335906954751116526324840678506680187933203225014581851613149620293180785247119774218559984703317176464280991800124597396656023270576609225292046057777674716038014159169489039129540115956536469747151647765029110043460342350117342950855088464785815249482540322249586711744356009018389598620910941692685916052492525365522451800627822868396695796279265883816472028310838157623405613253284102221446966483971270441800899812696817231325719205818216561019666362935950189285574753926771938132815880072397768571258375353931458711309744393045147995273145007976055938549626094130057219219572849426417093303287042776800124346991462922937263489703465999741814841494667282436607799951117745481655411179366308740660063377686487627006886391533635969468071264626953374271642441101618638064478815149019167484374979898605374123578111516849852670751056817185721688733259177361002083201630725352670067205723045105326511889126338986099142797252279854379443212395841198369071486074852981577666363955162866023311839868368238137086745129027982254102810003229870764597258981014018302098315006761894668722141814398309318544036786905568643889785834524843183053586594676246888840189017791702659720483300792186291607717827972418092603813960991373597581718692766633311430514198993671660673427849586258863800961614391745947075619623052979623325261562484958725066796976863667764742350971831798160943101398819473360119855467176669147654155892392147226488009825538271061577625427603568146965442997752959507038764094786059073316598113411644811635930191215374527718626618437919562016467366657406423846468594771960390647336963755291693416514036004313989079023123805517664440141164009587391087538440726351336124164307166700807906158176853960435059083249457725958581795823805814208741482890606529292209720994169744536084927255237013735600381410616947744350461505863587650872483452439718787057737250106653252718497185615984398351965522825116740738779102967323597441906786969067436663958117609708131334751336044849779208653544989366806172017051801948645246355874041690400304104666677144793098194848108022034162083545212742088755147598866472078226413365029719253288167320712566522546252328937241069691851289267301539541292783521045879191092900670558890822215683160092898594121062338140800810986556117069082446978283453580960127656226068968568341142934249544251641587454087190019691249791763973840786749185872243539012689704663025737725088022467556092846551052318237004443070844405085324614604956758959277035990385875345373363427901414800078625049075113531679467017560590497868070312124497115170820906824109686047728411520477172754861417859648581564742379047325028321440028686764749011056553648422414684326278079322801536056752730718807578831671934235182576005326099692922175322955700818673280872026827901465713360198233049643400606016110685018473870208244058465492182113466463985955071939351414526572909937010832917002977729831479512484535843119189212189655788694004656248225774949927298653633085672049837126752402620898274269285733563093233721571417678736859559745446416054711612860421892806738817940114456017387239631601957049883097259526603006699752812507208145593122525998688608134668434616949742932547650235045385803431703994369820479684064269760672352782821373151181669416565612802041655935442703701729525225054212503857776813241590000551568778553896554977875972112404326920856236997658343634712973297614591011097195613783824644038689463625583708525917494187248169104507075197541606198784761127352095083981468772241179622993166408821554565528583665310796517417973564643127171044263692756612495808768930908191145260656970987158808742272058419836488576502560633289516989851684853229329400394355057463473852057685123714268528395362202131267278181517768500028372999189744878196405224581499019701108385588688604188489606503059844011764832882378026370271870053315980786215013024103914287938292114266746683276365568778998071398656701522411938267451521734214524796826350732392932895121039936425634102412817003171828105800840170156519901785376187068304036289337206268403836057351981174711054550451439564198349497498049446273486380808873870994168143381005893418838800920176643556684450505592964649988836362329231178335991270590921808429321741841708897655760528812914090061988942672955541355796378208001984724577941978243139469582536311388260288381182574399251057972441861077745144868930049873544767876556949740098125806589368882072033701063164481505148408588552293736666266021051446745893721191281509008072779370638231246270276679664253590882040825335105083433875615561775002865642491720576144823976240520886302063902234536252856863886572805454080491011702469020088145964347033491908652265768538392714323568960074278830849105926656948283990469159310394547703011348441191612405805060912686653460928369343738143723997030788731794434472803920457677904357960521901079145567992275148325828722031116617190326568956674423419177750660431249581945244096924302095136221060000951666754598507662983114192676636387988646101378850419131963712911844271601024269273412626289527700619787123728773577463828559334676394185569555089645563360314783159473230737188755496226132822549719510518408723198110792196987040134110772147006786503618021389019216935662535560473881396812972577654137852645120270594904281059649033418692838648059289933968269649196293959831432935824339898058266536960805135189648879734863492413132779283684790247619239572505437013244988991340621691041014763142845400494532518723401997053236544192759137880408503634427012285083762609230683628089456953323401236373456139876504207962773203995809857052091318990613016880083236776905833058189719797534304202437625850870431080941590317716712868908595218526449887606471443645698993581701157251397248704269990379155411861549301019552609813001247187374430360145162432275740290194928109607050779385648243350316420659076307491624044570941588270863536548997926452752363690606782787333471996985260092156702920553991178299754772299923298551601805127407035247312551680874032043388432817900101786809893520300494653246804340468307625008391020881883866662277201218004490676403136194229006315134180704200701594251865085407570495681225936870594155757338959081432978486966681710495432264023647735446089869798722479778206473662409219911173620547730585123030454236504237843635260660198544460497071560468187186932851732092589859132763982588263100657646062278361216757392689751327414722002101151614213864101498593291377299492296747492002305507464476447877626619850646396759469500093382770912294534093248134630785100157013760017702083990293798853801916285345956710412106241831478117097237846722759783278117249641128751130711342038625355547488427227607536280317968300630352830030689610224213610735249994323268901707438349788886400655194494499838931074376398721768247347778631524536054716423073326415740121065031601179194092479529364369931584082849198351663990019774372926528161334282630220704845100765202472637312382973867211285193702284945163558672097610760267576185083669825661133781153226817299918433659834083685906235718356736283252377817720833435589142255202071348250801615899343939883956329116863991161072144954513326199010682133721881351966694472955612439382461896399671796448655539786173913239510510562969892760984706756703591516001568370094733941257638902721913451285461910762824114566516015410452552985510523792270803621690506507975450213645412076552100260713112694612681783461690950606064140301978063801527465172868192315939690395111941139224035026258784380464565631802839518227275755269760743397790753321716386936050166275411177707045045094321959118162204295656350652515117838057729201543679714096156297050583309594078217705139901821698412660079018380326823382227554864672544257858957596223020189343120531476758128697625157231911169194452618751557879356665354652067401684093475114327512648418137697808144816373344248655665345056180589656936617976003769027050458215114046628938507548361144562496955777675352327843352244035821353553927200163748448441614609399103499809494287554641631856307631870906503975144339862496590751892108056631704514413433698393896816499636873504173816522835125410631014265437082402934912899151544724840500040622037951434518048713622596885342103398390289870513064957202257986681369551022041958688124836872187489705003483207761743076789954619062501638422810562405240063744493647847149694970559577745976689390755203771928690975051228828621937732121533270686137839825903422734234945971713346369545526630359928917671251919770277137718986972887763407266453350477029219634884657359521459903945324917741398857037312794350207424865048021929487209106799204985197654704607664591591322719426580799512315932977403608644421853613737405761698392169960927607175676752123453380308122295860960705377058595786213478250066225348254073384452346206194096356181510845894995557490255901474611826202314003611455194063040273489144249279945779108292383432014201244227032989576470331917987385165723099497264996965937757848406305171095143847713476556867915538716258703086177731422562558002389104547189967694369575762086230965861340643588330602669179962442988332054321406077989660398308448341783442842920862206805858150355004201618371294803007390202170466478563945102689423190774208457175980164127331157693547716555234519743370243629821744868652310299001167413602824958105922052641999343938688286693953250737223025063719753823934690529305691590363641621159972107858833038663705338171279676057251381130579049394822338238665734215571277150757434599494398851051794331598701147387542932974857670186930696923707525362225125438842630249274549185052116253150178437602964787658426849207700351946187225641573819545252572101033828809916844357336712735470682434913352745181781675927844575554488015540550240196521332826534112723753124174946892168760789738432883818889191833804963898626835806800759897682263469660067542743372457572282689062121403450635464375607056621132736402923144446281971398125966471501451017088666065822620056635340904261173423430878424711968234823924885501297227410426187784644843756938972936336663451642560168427545032837484474231102606194096632267363538634329850282938350731964193065174136364034789119098730032844105501987314348665300490803716669889379056256456131384244409928559832721186752007792635732666391463294708638186025288727474243584348028499839975884710649233185486847797088677075038792947609541241146445877001696865058974153904806613714130058401517848841741849459590647775299281802977570959609719213877649071672013473709073554298185838240403534767303652668050090727815678236676089436546461977045245994798413016885578871107356027742554813473089397595196055287096604582564959616334258013708798271590893804816895244359364015605242198441709969657691271923390766931120960113308709775396301070828683778263109450636947735030168435357289079396708502561591865227576430489540139900696568294813756122971462870910523482113069908707838123861093698799152294935387439800279650685639106808258488994897432369988644939676623076150382889901677378264154449396099319056373453424664865176444028212034329227803802892889575825798242271586287531661927361607413174116720934009300485391715369631258813971132182628201503687397996488943715990936538116500202178500708106241734535435999931122314372426285469783049649614977048419969084370540413097599249699995473793533346554271212358372278516531987637731020603854559586825858775804492819824684038798927202302524370666615179268779299409864616061642645690639799034766530857143491040410561979492613930260632563800991850788612812705342719008226269815401921461905111190179968461150394148855060007376632050656537472460533995370475692641080998382913027632782434841763741168025393164059822235337634620868968200729340420068462954783941209346658133249030494044524087536130073004856248240889775296959163289762916974677735649452229670972012821880541020591313216603102940611338989183850252243336831982929863443306568307354711250964515962899422410238434267022111469225856367523810717366281222885342291684151887643556141645810039786735313367869070502879884214316373895899317433970551468954429696831729496613423489869699159288471710177153743787683923186917091079861540677196162087761512840576767093004373744608905306291454973703945337836356013709188735697516044338892298353531833076870870344987482613654259858604193983058448944502685833153405058216410631114327387108084526101223295592163750813715748504718008951369744613693640598806433332901206390952331048056112252225982304055842382267953047445718691222328718988337733361575946079530252586427902666612237333915274742246663496537484044212226071051003302712535061339719323321661512460788902865440395227201163742757059097756811741838295637833324013000296891788803434769685140761541323912301669445968056445315699884488382022654029607227619220851725463512145867043978933952536760400749739868643843982070073756500063596843886891585024852111360790972442373528138771300298692540758505181758900032504626948971122785315355831193033290897962270616578689263532775061462727807252320354800780941092533488725661368112582877210172073277982738719531509244283050182394086740839063333681009047455459033642177235191056089352660233861293125864645137310269200156581064158593371099034598979292573292930062181041820071248123537713610704342354980063534310035000603231191389735871724513287156943757527498059919076368714124084146546524415914239027409499642246686183644578215905973257390029603355024540838170368646449804703099130174365441003830647910428216092880651047134048027758167908112645031625813103702620191644129186476522767212104561646974697267889824618767089477828286539206549623026715266765419110042654053389668905096808472528420035916398350323033932631037429288982501170718111346902443968484647994660249432605169581008767762148270356595321667255306102894291828785238596729680161653078945660439009918632916816752993963378518512032215008101896416186225056308149493862123501192051105332698396278902968629071408102394612364433387935079223730579431554624653349476331009850534927817537296651568359003980656634951258382955445321190905102420764376006700401502028838556737076513585410003929061564856589022230880454454019411143410603979614988794750652111134518603980323998158733529039252587851812930068179395691441287266735007337685423163925804167555321160257921438109296684841381257308845207788572377418014608609648664548122191236132739091427998372234457294365591478175300173504439907059065231546245131329413824731884703221460961545022856054298757343983677422663224149084294517434042838835534403023551939367206165054758031321473069369079657745453464579892294643770619160372756240517936336024286628056644846579896056268107634377354523869768184336232208220669106276292567302103602722007240980489725798413319684697324282788237706137111054828699976410825488927610428128929190151611639236781752332002132436280824328193955216491477223066179492914625266375992614340841792778029652547848029351937275349563267029016767212907124160819754831455997560110118053037137080854462526998719162807150983330373703123251127403526931005124724088310829659959446867945716142100301520021082541711043993384400076874659683750941909482529517708404994620989929006310020840893810242973347510014464351571392324315406427108548749590089023136040233077577777210795529520680270447396872890855732997487275266672013475093910526704786103929800848363244366043758202323482205096668726315042345283246039121305926030621895673912596097646398487864806901027003806532205006470359630769996265737015162209387293754929674434175014650491186694967863215282582754220510065219880478773783351684951401448279256238076495795134941976919801345707935706655103794914059846707478676209042271608358711182856077692347505514967144826853628768856485874104646368963665723941880509113496261792573177149261387738174581071797374548467489807904673482023946323137835839194099391243961772556419971427430850991733650163080190886412530460952829670207137155764305922521215341420870475341934963147536352800612617683493872761498325457244491356071538142175114682065302559616573075233553730375716580057463263467027033355397400213895731256983920707514721003654278733962554019914591145009826283302071703912184160719110526295762871809936883205492636328378224360000047123987207557702071310995855335806424628311549475659321405747634575750142061616025669603688393935620026567085894923979675328773738006939592324249057288635208457093997488487907004844023994012119258113710052412887452870386782529088442974963758264151929794096689653855617295077165906340933850740295785600634726481055523608401314832683677208498790150995458231036158975043454877570393430747385909184564760806582724478650238995761096184147108287389787433910325194864780730840206615253746345657142589488076849339346206531602343075747468510290839985782661056697800378222030818816447048897426955309623744384746964760765391281166039188398547819849787652393910555092465683447941883725014994256485378394729334919041389174559571988535186670873782478034518589651528574973379531220520352793567569329594092989578162220207147912297908374703997910349205275466065432677046380525309292242390710251322788656705019466204748147897610077592787213489190834105328970655805048837537817817227098398922067757125008679984524654289375167179124768762811916948455146471017471404665784998281368354348884989377603724178723529856243938595917945043668836844080152538748135474860039032723360784724522162873578094553793368451688647558067736314963802648753546793533126039096200983122048653922474082721301622305929534593969309900085880775777349973172684111944368958941301821419609949339432645280636185824741928952290661185162162320294402211956379636680802030224205111906381644800235399457187908623063163477556968404054627197145070437296189756551235402412418211960384054766310582373315540871240415375635441251759686867439151203819590434580959166568740764758847263055347834999486458085768789497805535304499371174891761312976196877203123055600691041813352508151641683141455450181498785423848224407686598035749318422873643615721840415315186063263303458159919113374661414383884417626263862218633756394071923639625297948806144097325371963775625436297294295222414902413547984501015116005519299159020019730806576011524474628479812019679666411535500990072903633484366525866053113142112849896618934973449050420156669556198580277999038229663005765595774495240691124092718985900385725859424619156384256562271448508150669799881369762724554991227361843423152074879450787339339298477041695362079871244490767364541701291882660315597444302542707691677268434810930652530741166909913537690668538037663229564195140901110448627522744384280114050903132300313020438503022703679694668364674667072891749332036175814160732916925608578438854588238888868169149844949371335708390735622901734154961136277463263230714821773272861519536619828371645025192155491077638799609582680848676759869876154808616775114814368343491097750096942168645433644116870892576329818165165809208311865672802493352557505202127623651215059829606914359377885873334271202451407407379445215707636103900746881630101083779581485436659503121533511118635303537203132101750048524586516532328345168195994455825928466233370153230219492643404529354002482687353934567075564550416655911288443185342767956335060299555933174219933650280150132654903854519467157222392824403127647439410803708830751227985395068421653496684863052128805693485167605820140648030458177564341171683287374461969223253599142947207062483767256029374712137019250451127954582811425365761184083050519730224452833386630091479219470102578483552228606540694880106371439294278422176454850500820067460617889151889306157320008001776141997059184756909502207844830826921368698943566022079867076866409483151277604309847481568721642425577904676445852021798731459289332585322681181067846273950617995404370149775931306804936169810924735787326605617056008411205877631005044362036641929530157702231560118906212484337383214871196926319093316764377403333485312923973818316500500101597676751209940282116504644601874066069369086390966429143733220771260385896806651735073477350021820670519235264696099242183362828797070691988409048391421944078312462043211054264911175837376366206946536859956798553459993239536427950973878631639771288639455805601550743500500076821359638092406210456249071481111004231268331419991601414100580485290708031427401602619455732181137783649886492240497711874084555836290928074817396549342767541467453962081859278623399660448596591818408649321242009358213803842667713479717407339365546209739320793119670742778796288977544570253155453883198935878848029470723231290593421662364507803404902884680729952643161706529176263978552299572967601144672707646912985780688231433632038453195573843720536248416182667775555007992062377838972898678112002895306230647724708498065873683565458997976185239791749477708407020497218991782329334210960016077165910678799457047068364484638489226806999243456874653185007921677100189302430550551909937343890985740885064646182511676112393559618577824202347417931464369040468932903430577337464198841057730290816592777744157324208649265464899416287455484123766431632348475874925028602122738956629939647638826403657866559790930001351577349567718732868797882415713881512419193269509150722974519147557681994762174340862622695151122268207924670662922894303940883263960922311579257441053625649908916401528703068019812274601107541216977808533332512755781130275573640817996785699252873136875687024174830591388688877681579953671024989990769510085386347853853302253326270918738487498402602748825690166393398031047391775663337465566922064659576325034688903324648990520803419943421639489957174947395301458206131881909054069295788586058938066296997905482290109890968510025253280545287896031380788801531353922866805453174450514153636680253214048258333974053014952065326034491216875694404550733867732510245881875767353910748726590558519644165082788414972942226813888620861630148124751590367864883283810587677366952533720812675168010767877674810408157725239776952727730385342496659585755106724108003484291296281558401721415897625871613596519306787489764117468144734816438128054361056782514223079002658170050496790468580962637209971697269809372254459580771647276088169869953035782517845800131733245909791523235927709955242168811005062033340714011530939854277329046791053235566261888990967782966833297247198604201628655046900498992184954824621890813139802468635366754001128573971052448989126155857853170915636817223633206527052876011815742702488341422490893269907795628274648923907566467232469998835229711232675688988967967590507919771326543628353536074549561959090464098989464895794918777134174380601511196368553191050883170576389419500863182375688864305269722678520968269675480912602142127195915795201142530851688449105152854422969493636462108206042246279542096566150618151982619049293262035152817421073928777865148707967694256762432246633851224540696120711392688837230108117218928079740267753820394471814336210820169581352708701518647068193685853125106652888114686525610039985244249028716564684121380297990412878444806669392112291311789276884403710064736427925025255510953778560200369429774779139784955159633232143185901875753270639314827915630238916108866870191350165520715286647552015450863493273044848384522810694260091416738211302521432522407963061820305901837764712748048694192272048203365841638025037133844663182785380889735804133727404891512750347136352682364125390837041878000380240052854432409659499721695753286050198516429086993336269681620759617088845079219350822570755519204159723510730334837742724366464278443082121297275317940635346185087546787936727434438463080717082687287817702541979506777855350532428985601319279541427771529194545972520122554760127332684134755473103804750384146899881449830898031255454797571604371927516013347509116968124874756366987778514894385096819106213801444250959030990605292037822376312387912837516446003998569181663944784011419109146111858559630331675370015974751882460948887405764410913508673862638238658120787891804343657739159362573743069985883399378689370417818229903293601901444433785616413040383702264224210827179679444171922822834071564361821927850443290210291588571119932821181976287452542888294452323917856233260169669138593258755007103581723336882956791320130090581630131831861780742688108061763319174024533803927988782279379374906234151977293771904736456742789879817735451335759643660717276562261769213565819393174408830424340193591227590385590616069996120844868656768169233870071332365307324123579398808003883023019095652366187332877535044908038540652830107835221454474779335501343127698246398606139625703260465521103996864757824613045580854672808711025332768969296733054850483172509029780037248856583832061861395314910389016173704298606913011002534543006062846644578622377284580126668250076145359615354364891888779851578688492365774588766553085115981583410338001867637559192853448927755075711947921185619142967026429398145277899979478746030876292049385261078579814359270717098439931458632799642256253951602136853129936219566304954273210797298985382932653395265461007254065101763937506803711358001194989818707506658463695410676128773598000908941657036918904248140374834329786216220466225629401374947367425728014883063936130255740618012960482733486733649645951362107429338732806166292883708453342192033359693371566491323979765803811659664138123369379820937840886774132655548275474479710972339583048329946824622152319501478647966640293917513403182025586866983493322288904109998353946736608612100339130836474803571436421646914883141665150654051807988422478758653854446831850659108038880752251136967766707381373961244942595928478104424029993319907011743068434117726299658281572475074621452518448554138165058688871873931839610914409704061386947205465995100472890848789957409397315058478106838549221848389040980512480044053725034744248646621989295504274595640448750301485811892686252069805478795681154482178782192291986393863406342866691462567787007317548126735188283551892376098638429078861065897565685732074468647372963634211636530715356395025519398203633676361156500415709174189721670971598622444969013105908202828433976630299662741180284728109271210929904686214020882153286760380648501205839022076068901560475951278403656659691601898622651824047263673798478087548502686986343060854148110454647919918085294536521806056304672298001123963790714738914364642715386115462016443388845005690165572786039045247207361146985730350414703282846944507965975111920754803446636482956483785939687615719563401279300436251090032256961329308909426252589162110711860509884202744540386791251681623995746688611179795299381627452482677696108991644927026353167301953161860410704858608455140614527142023463354074367092488423126363155660098571382456565396630880647032562955571771033912661319107630660589780980278424064134175878059091713604826020203548211885638820520823100929430337041124354870242872737947372364226280072904526461701352648268323518298194568911781058879869525220926361312802711530477794872320182901996014263095563158906521559207008939868385236186328922135397918708407537122440807892222226316336781389180495858360015690148907919148248890212793445467189310489421551416092893791227474249302677190275210310903699564999093588057437328106110375516644174665703562587479530982795336684676940479811109101667865822059247978429586972206494095519397280152323533290832921463415829489353707950644434979132674323386585791625719060521616906056432720813548852830622832876667042155961395009785856206175300930483122980213984709067579551700706048198570289072266323745718223620056077404951220253474941316133383448942045080342116130818001461991574025334651944401618994903742395990323796498197233670030525875678896693636791987221352350163824174591550508785908247023551988049063226050983702524315836644068476730370411663027904595013356599366083736704122057285153878711704482680551778715991226057476973892293642582485132105162690144777705202780639734582328614661947046477721828233926663831740475882497966635991146358107176008722759196551252752474707560823550542195672460174826545733875666542670483153840460447076393603795285312463254881737061585365235317513106253365165238517572709446362315194859303957079353916498545918206650640572184961018015473891173828158099028130059667269034657906683808821766260622685529556299009284957411419332272671814780523175883934214747532368093910266113690194444634856064584847010987213228846952972561449280074618191083289471876424913226374007008038135489425557068124691805730533304786986107609380283071549962058373041907306468446727289528342345823761850952781617277148784327516887604855665760242769398309447104088309355672083888867422563796243067889362951168155514715413224959075658226544071109199899477639817972235560304225612723055204963009855761456192824892282050137419064523055709318046644810142483723517607131909277698749381272201787843124161489520141332495332637783588824175719504175347952219963778525264631962130970641026120680275688072959298610814630297006475874071345185942321445714000273742083097243866132617982680000737386485945825074464007323106886269106004488036085887605852966893449225508521605688880763477995748039355606349496684746397501547684442012042734427240183834280810431709612722885032851356897605711124090957158048454958686625126391500523112692378261088089892975757262694112121852103922225522806527428514026827564747053786134836041440209063275297981584266478138741006513970167408125715387531386251965675093900270508232273633791417716250112683506952089874098626284903335203829047663427338108631786571635196426999211695970444731268263852677769204118069417029279820951004207373374267440147749779669857855519140102177766553706795696231857875440529007105902223296823475788337290255458572500896836464421551940393795059765447077672548869099127998351401028912616302940813485577229074184635038188433574775026992045527631945021479703334715072276956850749821503126357776760783242830266495888727190726891192572974803493900033750239430285126157268155620057749400475250818717370883186688190129811975229990603136854126511207361762659408004930636064552068022822383512715607450798562665860778603438065324291268576292720726113283849526731374891067408324648699686148738326977699445911992557505613008600864470458143777469230179203189949419317273771436729012204280741880369411665876079932861850235226496242442484079436133931528374314385453871511897227053460264334124546386898050375424558849156359635790262262399522931857474233042888150759620472295160713498206588247455376426226273631467800389580260873858642076170985713267106312072046995988424749289225232995610355717919597943523800823566134042892529160095272466475067143348147086234769358766115925559284821635289918221450026708472907387231867386596116062839075468201568644785437696398137430305915365458323299933773760056640890921788483816478562362456638194834036430919282741081084983046601904868620312130886086461535599075383522717713435884219853998412503913082861897298169646501878297517333505128446802527300763932289615761370237726019323427579690266231310033567458366331194945007234278751051178523798556355995085252202052946811482793289475076785350847134229168322628007782770085761269334068292864731778467821298247117329445967658229062372402986824392861729501752365977904605996550370676517254325190772562092452368906622616784699245730283731058458978109600365806311309148471605016817171296998322448694331183703075633596659645958317160269946048764904541213352982067120095497209163839700030663070859786891738809887964892423506641030075582460193459747424037133147905585885958041579918897971619004459381261525492188722697409352929518203217589814651361845896216505088344754517342435083519247010637688515895527372323172826692610684258659803325838802861694804301979286009836531935146324250846278267612107751727831727345355219402489627039396415268171743753775330581774376730981546332853359794682068406106337324904564030342436881888092194988983587875715658877322642564946369872903029276208437887993732572967843263573724539085102546360551879873042266941511241725880825191107729659907846305311153149390388502578172367369716932257861691886239448596844008576048875148307976254374322664628697579061098698592334727320017192139873415871140887057942380219896984137737638867407293220447979606652852742395408407879525415248537081428315242045634795555405226112969502364404601431599629281331622001698721192135450731615089453084652057890118295396399164905775790202488964073209080394109894529869634010226507299751273852481527736070183901336610684388840973478733357667176859361198801075332160814322836249519060604057233852602927545247846095462434252667693384954285067647007457996183438366398583312019099049777324669720963757256367168590153264041254433692395014890414557819375184326743763087923305935995041839824633894152787564382389683091159558383414677809524062676570597256159367567457994629078081294081652850362825215232398717830273865547004258052650198693340430400033146803357494968949077846166211246712484874986641736948827456817641741810839148553299678352096641919547851081996918494992089649869409016471280315583656291398253666456311515106764725386088804669366361693388654637203665742614311218197891205909629057551390406071542769108227768484269477038645039525821324623647936870654711556187108024166958391390603672945374689265546078937691863628518922961784306786897295718894568010786076934271747558294050220814802485568844516689469346608981786845689368364173298107278853925662278057591788900941016214436229194760127057941764144235878926384217273619941798361223537236317019407495323970179928710215702134981554188873270164267643169957723651882336245672360408034613130091664041754526334976081254283342379754794865354562518847289261906249504063262529660199837125686493792603624552554970369926302179445200720121006216444300738946481917959076125604517917212057595947311848340326119734828468693744500018639077641479345356092253265140175733620512651271670544797104428163604762640953360366944641936128927811347608433549405630799458633394145143093545623352768958476756449749013231789491100811232043943291878618227034269096557948450276942639716598519134217641663396705616332373059356360966197707998331381696826466626132916662985563480321677863610349497754804099908351752391338039896257930748271379780670159862401725481387424133836982408523904523476542739777666525765767014492148084674438757239391723976639629188362847287445973069334612637906214528343174617284929687024853004279062825518329161303247015957146502047051365011496326621558157607425648499622298193318330119939072649986176279686907914784523979542740758378387211652187103873846834430174954416714594619869434438757158829252971589065196562991176765335825859144952905754132949761315524169828079276743521954627269068376174565276322948603169127109869790908101133720259574883033250643727838778629765266912449048617695890064113021407367677073567536172125751099172814594998724100405827452527781251116108801779283742233028231596265226298100035307028866278407002920224808615048265424968442194573177901153865927310478726088007497853104518640682216039094481641363715444561954963331154700752760827653223600625645146776879577431609714962409941447857082656717347867577062915623565983339520042322430094164813990742881556943461422410519507657056917018811486439562052958653505158771199005317651803765611308683765891089750839757255561353467075696038007934730260576773135489409032227088080352033761985584833276813637639743425528227059412721218842925477896983891462821708160496302176557647297897326781854018240747772805339577714540052030545102070284944074055355857658850526050735149151912873467566620860984944681203160959355096093094463760342139333602999023117469772404840539873531011717539609487257092919946847763342598025207111644974653522298862703334909865552899860767917493384234027093244539400387713180839749172879862360160671808173709267741107342643560161175723675351982769982538547530845252172064674984543879866804574039107770390612971627431567641526985023915479952812468612407125475391505090463290958401491579268491584140338228112662888495853600658077654117010994917014813687952378798109975095924004449949018837450419637591994077887772638397902641933850470264368770431004698793899762102127427875496024427770569893430419829837442103879276027973933493648142549056945900757022146454940396643785965331304886849504671696741170027046342451586317397591601254431066176472713233814182459563311108844440877521533673667481007266097989662503006946910173457468176531691194924137216022093527056432320708923779060494856883273762065427011368617547057912755985087621682388483034432521451112909175878351920356345763485071497774645827161652478912887029864000855815883136358295786522006963008076159685018913065340888123217823692259938711167123525922580709273758044939572653979210544749547513549263225561471788682831353880605922655699757366942070454651204900724694309562330114562330664871518246226326650863250610957774844800757916089055565241963012421861332097027166272544962167904267944354314401607276808159477235257357164536576373440581420034070007323939230066521987808597318192858398723367464320043552228634179628189969455487531274948850478258441693496898191532399444296078137785037975237246291980537797993262745187492707588379240713902207232676285363377329102848767181927622779662809564299007534053716967604919948991089040415722269878128270699951410852500353342600926323019668772043802295313916661288129572343053635498463385303335950617645086392365013465632781703358904036728972237708764604636385561846531192218662702468518543584189064272708625624325464627774547914149124681440997735445297276897761126315309965886340636357329889163696331706434843580174135903421174077953039719290771740377878454127736875799806383531283318677103959974652091960506683475918526229897059286034214702850750175169759195651433570731470544322417043892736527281800723098986329909932215534228454429240359693312075319499164183115606020851992976993129748971767263800529596662823480221716337309048175136310906789396312705638347084090806015577041712154468605569382314042370644941723391970286679131720224484477351980733346220297397486753091461104217582299811362854870734994048182388321527801079423279917613082176687004752293153787007067724162778827134056646785976764336215646044636073348170799063475221684293612767609315637104358670504637739801644433836012692412645384274718062825991896714618219167500325275635337898801686834735091153196736770238572866319425570293071866879507629634575066507710928239275126774353577384304961422884605513038554389567173816008595537618776351467042460824850825717162298882080473506296285187649905475482565023129659614136830572333018496209139250530171352535985698050351119079424870304991922227566663994814705093208188506218571902343488252507700295233680091542283102190746986248127802687730331046093260402947910716999650187379371678117344122213624978969392979770294984400270590138085999237990505923469081185857383425807404780608233356722540028535204835832202522147825385264188846041045717005488000987771653415697829227265466434926251750553208666602438205373904974468276089463649578177639226975007137006769071841218192304486039208243094135606117382294062618890243483008546611701786146754239279347716769797967143852552890974178311548586978817140342500161236722878289851458142566823388288581229397184909068064662017449656409713790226300007795380727755359979461156002730735504222125931236391838088699647880816299193860634144407442678129219799490102956794140616922449881892881645255145017385367314577955946687263164717384860104090294923085141471853425292872864297465006694032867764816729124148104964873087846458943367097630872713749785272054259798030274214260765164268955764567866542204683270807242628233133225942961742668822262129253519170213226583777080182694159415298695642030165373520079494438509068568890939505704991041791112229929085913070730866022623513982164520205467416103663582022703592492004222158592239324032921180972570334596476178300633414909646720813216478735329640163961362527656104160038974080986929296443527365336479066971683540283085007726674546273256400717217454980566323860352228054095420473544409174830389432581147779426768169894466084581139920666581212784232039775241239013505092265486899813643269215633441743562779560372690663851737018234513372993898593503908261346339467815915048925542346045380496060026236860796709024501215773193982817206969198861331257874753777141353017780224345412285783367832031674159461560115436832164480471857406679615331199084602035253408771843873782658830857257620345535795667417458513938782255870826213181169596233099771019838786802356446129832635422979137861056852271444183215006097324143450368981624607044689264212981226881913414411796651893824968004723280411640452765736990461932691409836835738243320503402280038114227042797945212666698291147061007814260475498974787230575974058959482157195802656180602637292514063400551788158537383413825437804325862990668460713591392115127722723302510184962005912459165276244935000191244763189325295669753229267803628284985425483366808429784975602573630640631876107582581650387023609108482992010521888726818660697967705764718263892680626309251043503738830543344353287968115736869925287207248232523247575966303792568612931952370541951668237584278485151899105344402491153229629504170543483925410022642000982060415809180124127109712835541746102803815664989054184500675202671637869001441529495731821043205340028937203272416892018755557591380296288044253020283684738602157765362296792324007798549820678336840961173266085618314862854283312766367860173646758311785251895867637713564071652469008769809640601316515727329492402499314395847871665159112108467822286665081665554598300968563231342630377273063459339598763336686730227643185193967749455997789933611517842118334307591310890204318067118317503052190557446807245815543755596919320782996750252801320383838753997114797474636140945341000001317660711865606446288028443818802377630582788156403107340894285357388050545822428519116610353843852847594084340945333229653411213031659804978511524754785603703257952775238320838054160124495315842835601184265045088085339152750857709155800542289927483202244878993923950224658959143480906637312587106865390536196955336890000490312626732140038955696060786166638016956779321268648000782897162019940127742517895470812265615758457060711999828743082816502759113470976878932315340664961257911283392913241677929653558507001809675132736877739130047568751139810608511728255619912727941621539734354916287623287789388511977814411950615316732980378167064419025155504794045154127588561753437382650255166592101549175214917625938264408969431172890402256200555121798353945735029813625348374506094094914079156467130233062089725038594951356899347757754232219659962034666982293127151246406349975651232533981443002244499411508252459615707389948724024272636170139622554261707954303808495671209136187955389447703906987677668667019949799804332570350052002620381305578298526899900506649897998622541651186349387163600417779852434804438060129699188050112125907936125510595876238760707418943780582660251763185457104622582097785950952979649573974958611893097471004446940375258722111560123799210908512809960830640336054861866308182327849401176478087414528594196565353967228890912749090671912220855114593507109783123674539162002417182783724021980287622487764791796417040238913325393622240613821760769095724013488203874205529101135970102850948791650986646021004936655873393860839244532473832438545695450267895165783526948599286847707367005899933634872514176132683823434016870606270955772654068094940278318534578811595879450360974196772199643713301833061558594001833565614265174438817127215885476904783068957031501679387885770756628984852147967202001019815829111813886522661368418312549454439146210657744167379576549179286578216703340862072523288108204498614504688174020114395030939859637627547969626095112539500759317569061987379408043190398124055381018870079583915573251970451692592190450659417683491520031144988228434596557796304532427618753927005092001755442391768056153617258922636438446809579024172911044756335300489384666361266147159326353251194625294707643310137011916228181949376063531558245055837622282118779046889565138810823076300266986512211121096941749099235564317308139605935578043167862810853735018971036950667841047260103186659083965138350361801932462280275713172046125102630420059061674914202488241833651160494821717516985869440002432559880922573183017386036709915292238627215622963343608208097364701632538376975305205075169411612867719779442099945512870154059834715394052894711872585229898970389565051998372603204017838817702170347916890469328969011593266742052937625704378969451868837066472307269987963944329265615765533548839038960521961115225858216711064798622608926318449532570012388060598794542184155626168964482696954195880053673072123558463354213928946650759829657498060296236194178271898106534196173548134572887513393418212706661800174511383066234517541379241990467678029229708541953272276040447857198612977371095812534044251536722431176929799759284509304976412916006201234625851719065703325499733236298304184355276179933081522726065503168835190724746660171743665809107801172610612837156172427643825708747234819254133738561253964417773322125795851199137111664341488234906155885032550612439650507092811821572376107369270867705473547668573944640810939292642157675840482787499222303943370270508817979574343841442372799544997810264444097238924867350926954573825949195344775365227433312393310942024376734600566027092366042713244746868354158336560136680276193948900490165103494386721754970767610167879985757571757786948102526334684332015052873489902910024753654129819417019147424621536946040327066208368988581688232672546778813461388289331981271869780926318162164085402898233037883466541482494128939821382894631342008393819693276621695023802065485278657606743888085922641096967817927914809138089897943348068102147625099261166805714795370422351872545848170275276044230560533962840442096867875943287149080299408778635129893200910010390145112181985627503034673964637716534018439455152562875863668466443492942379271577900909441869905035095916415219447812759820607536006251652927076337770137630485296065753237216897750809604063104467109252932501499055076809002179273108749750224313219668221015579164137099581561311186486884976085577355893019776737050150452744075909122147195414202725471145908074469698792731782095499072637166984592547432005452597303680128777112313015345902403092790158915948678126233141043950721225816414807446290780557092280356253754980633231560116497523246267536318573572691840258512998173090628173274347520289490882482627020980436011272421137554231416381729600472961898902923858309038858679911995983319144671510513160213627448403272938818864842406939914763487160579942603854377450499847742381867264547345208866672016980376916637100249628177603086952581930492885001276338740393285371121436285885692392538108338766360593777112106500736598809143201350210086075807442830895546268195007065124121523700257153862065857793698315213996111750795880626703149162435400859219212050397592356081211262790498139144533404223527998702760917985217347337247441685169550319008579949275633972119283998311333477014232871053916104903845587011088238443182195923273948445781072166390580516773860923816987369847892748631055908386964542918963918462253918331949198666755906057204362430482688132477872423020770024130629203829133771657509057828489841740521972975428075284653317691714763778106462464862974342823133255841058980726592759267779327534817655212272834519842116897632107083716358675870346127364891978948140156077441930392765536526664639114264299195970424861316868379651928491788690756374992920107065940224481407930963467613226146009094035720631672969086886103503164905732198377040732088209355154635721094739930803219884852468461700856381419563827944437888656840658745809571525383509551758220188873377098051209018211674683234549099338142381523454918862576698458663521370943964387871503566852515342666468153320638219716896334658854134671441294656323956179671020650548533358835481871598510613563450246206426003521944070386867914105778486082290984344530111771418159960784943289190799822041804787908526287956953261891919702596138400516338643341794135099321942066879502492463625785421248942180471594978919787283664234720867805606746294054079769016811382408142150749881105815807230615776288830734955654197583238330900797398564394542059820447368936301005221199726495882762313727546344215395871641897619720182364262707213611646753517854885501885022071499342273607262337143052771488826966662330709317544440282268695417278400561143367784757925542383167258100522075593659508601444280322415392226691872489817627677928787245360743010999687247989231950799644312156750411475064953296384173022211588413716942022351713361677176588128530180955299944836203764680742415089227084142499272532628883162986355375024375295097030130557989158009787384062877133287113091678766264486181325899267770307793098528089898201907408806357532099432135102526050285319988238986937832053239790242549666224722556612484509408978124321702750227676775889345094520627744643663929268997984178696507267914133158295973168948777160556946349852280548200551162335480224273069729649932941793910992910207244131949387173450884036756735626883875281411348290651102937309018722172655888807835675589755420166016890087233411607552103573763091091670487018409174844669984270891789508452191434354704791956128748315458930230085142202152060028662090255990293359270716076329116094282035154014578878379779336204622913791642088438258186933220642147905847854955066840892695284977627728878393590036070563651255207438389588591879025149108783312291128959231105242047559189173971547959776195111927796171686485217878125714744382782717268718261993699320352469522251394888241563581268338166361729587016754253761718511498452678741502372536484063076436049987145647410544732362535713730434197839858049877658142914466081885315943015143328636023817632133426326873353071145844521074361512809419876287601175546754199505741192201008078961803779091461133251516960481428896378143593566470652053674269216756099052305800651691116138539258772430075099656851121005012018398441365767353867872823194460538742664206772202440371398135137992315389218359021703942626788478369390938396331215531883660994051816581963471181490600076011285958105848462585795439787761967454351170692424023321910738348272852519681701185597959432756717962926662396491979578101596318520391982020091176450525542667262564905018679598090952275339300365945881309025995184117384828731540961900809398214416894877938557701335543358949694339366370778928339275591825574738716964885301146472087347631907893817953492969982158487035862780081192677531969727450701332820496573242722533788060329005154483052177128035251011477256355736562341193059622280877476305186145704166562273933178202653268571543187559501274869537116838484499248270307234318249675640018905780607623885053048455835798044253867783046755391605586933329435655783951831208430791262755947699961943943392786275697833692833123952709007270052520887064820925625714130124242820231742214867152489386727736138787265492868397306377651273111959467291606472500764539714019956806049077224178338474088998460584636022800462398348333023165555759968126168595906753417568667701788910791540388135535586684894969949299925574688447994898376421473496050586220144583181638491668524808539246222772965886747264388139015446406699062639951994056916806434068488255830617243109910976509919826572920867760644335653836595906734679540911432459442343216239791715245456269705994851952218253967733813005367339492141235176822319115007048700807115265056120608229126598516561465678887904597480573214738245277024760221905646700660758821984666422339337991164136325221866999968641137443891487472768547432410484737740045689488766095657615670573957160540302420316174194541174205510135948322316621309473861798802120244750096704418328577631776191758164043363273141890490284742775481945703563251737917795960357899340442209663210240296378743159861974547824844922129179510395476967276711563054286425626894273560153713198809364455524883443917519761153809774872463134478878028764962269569940305095602357701982364428682800631688187325864709911311282650045807071632418508394823062816895821887500665677117054772315200254360008813391416022599375357942102959097820029372949881429801402685252315623413634515239113217281549223156929376346012786338169171468722881665999162066391989982354195161218167372237239379264747386096905313096635191374262908674971725740158545737088491978181813720519970351136413675876834247734976952500326543889519096264422095553190308844170502459030599430641841255044238841289944393009429470438584486481999448271680898483864392706303868187999304277826036312482007769308472314394885930693173025277107923547355818529425009122447322966444209348302430786407837507733566405395675962396653549443707048329567851378247232259364494620610989570587319262234810974105816356825116380907878153614321736384047240439837564976439408269448400884102592780176753367653263320490026638778951639212767823654079639339708762453464892914376823420926246172383931975611418479503956053265085304312769005512383443442995170276592319171043175461456687149011787112375661764739514506691618207852418964698074484594981511598093507434905460117469942675852864333905682843862756321487847534034052292957537406119642797750355526613523226358001534394272674035326317277310953832998272380581201553644902234855148435711757167929093060989031227889899242154980851458865228860740254387427117894217052524173283836352814762693317549430799948006952267867831265661143639735001900645634439116023055128610636338058373702437523232932603668658152470837362625545649869733307437969769177701245795072114905132324741411143466776168689920202605369638600256762486391769350172188853319190714605005143286520568277937607897078094294604136119787471447764651184110611047860829795085410995233303297682778754379808456652369028422839730567835569344549016870401951975578020730247831607949039947549174732290742845710094302364270410384656243259202812243176080730331482990024284423791627546306420464747261151138576805844120879469939779934415337675778096956955239572258721262859205346160667976164300322313116093179173219839156561246742617579381886444235584707257004129441250051553346372094547927197732880489583190842162865842535848099166038910355556155672148007066150553801508964993172068240630752828383301152422380334741262801498166852858799235316114676399115494099296907910511427828213458068686472003106651065680394673152588255845313322132652209532880377303973343721329512330221679121817549036398908171153061628963461232131548783093435167360394788129974121459931489800271246801735615599916655840358205834377525204364429603021981237916973252447195347284189858473562987790111005556729848662211040453686167656777788561940923833851051337920610093409287867419184547265597109142712272378308480910063489179211385801677414848433514382667805265741908858056787828324486606932308802121580566258759447213324001306824600824247042240863723674025913549090476727028540442574982798597801986182024980527294522784759558370756818910890899919663777076213811072021579470213750627402979919734705703249789606811709976354271842285599966281561882334726280165222927195970118942433022573337283989027997063707646326747695621385560198982567641528738765469816689607199584082935830147682663944470165696827961802757694447028055969440095103234838721392270680844181583964956832820021569742197880004896266067521390918994069035400484043818834383018386553993221235819893079345675558780867037513598971160398896660069062004621206421954118429909964424995939006601700833881805596084965478979225952488888943126015075878598408971916704175006412296183207034548098891036763266216741231005873919236166688602336030883904880843422602314041811115137227124977284986962545671155687926496582290872677207141845546496176553762961525552161057601122059800509396915792297071701121587265206236230249159212858087537045333610708626200975154534472018502761182790462983497881086982834889623426920448270940828560381201606686128258566130505389294831934303210103056501752709519252463025656077740299904020296532289147011417053520004445269046098831282734396481547343052703092949351534830054423791955699359525455225422873585753388228427369630083265603240127650613554965460238473984738628843207394141656658551149006261999886524679822223120057960637005383160001777478353038149410068201204982959204688390336042513893732059310620569575344306249936250068677607511830871926502083422116438852566158827722671949058085812338672607759670548764217001439056941657340568140913418724726882327672638813134223383833640777833824999274344764334440293323049957656541588000470791749091499637890575975439220619193095777578835860116188493684248941520916219665448066280067600634033379084662779355127326993459221724877882283247573636211094748777423505392917184081511577253191132693799889856952447714062856281362544831693421856049692713685385277945285623210059380005792813583314390891886913580968175756278073126975538786917020065020743967490526829564397238953282189113886282343138323677439203957036536884880373272551258076594416232610104588921164992329971213440522084881539339814461638718693859092403134617923516356151521146644696957086982621950666762294896789787838583623188697544725986983670737993376436752032736212492784518925309673090015923516899714336364477873500137510815900469697550289451097371557762094378060963481672296802122685228770223647336726951129714239793020625317843569469519195189473904395410672605911502175772806529866861190730976708924729029923722677949554163019627964669732752410337925836822024239588947526146894702762003911791821902982176774891172894805611254803936782982460520589148852127750274520378741374171651031817993323281645442805544605910557901358122490721873092399054031886195134540443603121958616287652751071582109233427866097390568881968789602774858403678951511204804406934732614113063524361562855341397995026051092878513034840246806257846204081048272088796365405070004013486591541548013383552491525447724769631535972302754496142604443570853567223533465696781436405662113204888204999627820124118705197581492171080946821144362898446765207566794786277254649529906156009173626133259086441066883619693120309806377502939578448719009983549434067856347375720478410136566754669295462161585275990174262753020143571424700211928184510428649212314371487399879620671910374777436899598135403827113724143211843994962484479368729561557022732990706242660500730389925224637707189634748256585559374567402752329047078920364414110120525168310712064812510122541533710411620044697623345956989043771631289536431966760141784457554398127943111873995708929441618560277476249120966384294356160649307958762789003750559410936716726923852342575077278940589636280679428536338459069602114204129516667377484829566201934407789759986264837311681909701622916918254122659412228028158878857231380033428304912194809602395493522186737282974184531102311347985945717659687619112316953129958381432187043820439634650089720983148875755706963075917401652905894719783950162817869099843753778074991613850911721403004876931132230392718610753839688966384434802653707537822994319967432175589237595389120766057997389543795556149530296162646637916082091333342736225103409312857308991333588127724103965130685481511627373057126758096304341941549056905041954215008747658069563662809533751396244494879626396885031144420956632496957884549286743664088448243356037004103158631398123862123306750790863566299528882354629788930597746545887793361020681935123228687714683414565693094433574324776039689481835179935488944640989248806622717596078590498026068235661336458598060253821583558027035107019471015065872638366134566898661127177156609803598168458771817274222437219636297987758884747933259988629183432160652137592583162685711556144087474078158551320688469332854048121475429964245210176832409364002834933951624983426367124875504354780930945501998950652976910277318844858562223720303068274504386767228195908082324354254679534406635783537228437835961499230685288328590785823297481498421116826821679123414941181485683402821686213996559918386899377989627133440157109557804763637609322124366690822689996475145716457807755514094130698575953317849012740144156250347440804493538463716543228839972063625185875024847478402808685437027718815202426403969842321601670555423410716463239774072766590461976349186388021123742015365846120991088633285546534471616645222004609740124068671913490992796821381326527972259277095107123938346462443673875586593884617144945128006175992270216264398831592625327649605588761709032720536130188652404428837950581965750007438321083125508684509922167551983506055299710969762758473651776863929107386677621785262423997300676944521131407355237552283566500759854217462587557899366962485449959140695649539479969644086350960938601795237295064742391098601644255833075322174642127280648750803710624776804446547931799534599898435088500722542785518977211365627648658058280873110118576801215855685449115166267098762557428307367807758569120867882489341194415933337200296871791914152574042465756258840006146862135941755928094242591145567687866269981554930976181210763826461233415911141664381070324598548907293634231643923332752778056044854161457954636690748409074552239430924491419180115502286120462168244559879155329525705572742678064943269200139884885575114726560349263075300593135728323291474033345889680835912112222761140436286481038858795855698607981043618430717078942250457234137774235134353109906747589384437667125931295149506448736297987413505367516467649725930659807799124183211623626194487787742586899955343962500692396359110991823889577728070790813018847931573378788444683678591185326013591877426707176519098232434494512629148103535829700834262836356052026511585381543779243574905700123396390674484998617778874074832401880010873460281596855198566126099418060507745564831980840128585473701054215354616774173093738309915097706247145377740570020240166593964975513765522910406068731724229653454597901246587701880998669157627900923803412113794679356365231532865521027246295135718898593547644695319785000448460597721015343583573536252932471129528681247258949858001063498445008812581140578420795067533462959077734460190134243611993097179773094184970948590069261599921457556721574975998240232993441346457173495153264387758027815693632174937403576140340379766609443981917016214565354044146788536593871671099968798813061424190831396659151960635046715931309079043806827931906301393051961055760327708862004513387234979725556111562214904198364136773626715151101646547932635463813735060410998053471542251300437370312255658040970224935009733885033251731470391696401154443988269174017149557420301736956749091561784633647475858203483963624097715214592568906378203779975766627827059511854618681296846072753572380108637835569608081270941772890202678070426439693181219826390628516039910278265442930269021842668193154650239232485206911870618338608174808363139563939786604949790001048317740541354671199358256542160621198796728416902208152975370719776092562828679510670777456325094514094590942245114044527968500592388370177643593375716763910626770542857965699676538261720896114801739390620915464167220901915107747882524431953321464010409024220567000532559652512018124308806346250565700229840427608299012836942598564752320757567761591804853688472589276701578210913265699981341971474351438607806053752693343584954742280068161968537456821252111913398373760952865472869279448120664840731029593724761616418035589950479557575386556737901163365018779387374097059764930212019684274308546719266969549319539795520528526362624261905546025109826359605555246976517825361980246176811792655669257373391551426789596924247044527766925198305170811032000514894801000164514471703212144379477119917065185463892913793561030605506918962224541728075262172637185124755308840845847765174995987738204394949598262984817297220189124095393694318970762368425353061528827769962724032483035490470759831657713658452417833260770028144300215589824046045276670187771052663802466171885677315234214869620940469260265965762597728545455914730179832778294380573865560065836265894449208143069168625001483637965913304613582571498401983782759225110144020540120356468852374533875100485971164938603310345633893841745111746913577045246310016184829073950126213642370118177843530202110986412025052189430046793755231410459862970066299773813178400758756269354704877304830906587428127020014184111262153751267415685989251975301621466071309589964951649951773604616562278878086488525841434395557446141490857373596206723174435083664087023926023085826018370134011891825606561396208896752156711055876407593330960018285181645844085244739921463997655173377400741864505105292103936239426444201931091587063879631741513927884491367047554373494861116989603620810502020920706423831433435883687062581273976400568654290488159072583169464344412753195730736792829736792152458997939635512166682801995776461709787449465008937706272682770546736238494891985047852547816092217553270171528508050705001760546180249614583658328689723672537469131862209105499977883942715251107114022138179250581854064841616884013643644070799211548816386300959686053411577791503218568907866189568615799969841563423375095246745856842732778541064002416415122044924235469116807286947362525222030197915920420699736066840430004211079634898341841537745391108536824011329745093240502581465016252884142073138175373762257185664137022621522262117564761046448215733508193536539748652673262776795184238463129709002446099736046947099222054801905168345919067758498989774958179673164286483708561842501902042778972180169016176824326540781921451565572116226574630712277316063946549935794748772785969100288341558368605707343906341802344814830866336916767340227316510440627061276942031870045201592471882288652778816522846698244027727402695390030367788611696913575537846593732241956800999541746001169560513073848289688796302526609034647976589398733672855106545511999262179508572330079066564232600301358417538768894302107639894342777902798127291186583091183240792080518356842753837145924007127358538983695625374147739231275449771586338833071365706519775581599848847685689340535376314176225807255139921465095412264739000791599834883958649106788172309518260708441500495944696433183148826046189265389125134779867440180534655595585389668061398221537597851750905399801867548298946245807178801176887755317549535077182382485104766657206095866139137300084372852418794436013206499589590465873983596854321852026191296002824858259920313710117544450051847750554593654219466819782216554874556483453387077545856508282006334651348734958403645958948772734287338514656930573862647679968552892090886053167012719839161881577673963096474040091730676766743210630228957450386771840993890422184241989264341532927753656007477121124055261894569303472097161982961940510005553548799835101084720712125952234387428427369661382210233081990567514397245289432497348940361151554613867624861464732728500847589386173576802787891845030520250288342727747720892485592814610372012249826836628285396830225247230281608281059642874533792626078253477848936452251745981496538567117151126768052810654913865453235217916038402417085510648523236222909186806448578556951004038139400068182874707801172689375837737787220680506547762924188768989848908929564709581460864788498050203829335607539855681133114396921303851393103886196822754614076462117467873651817828511963494310518980438287575306121590618842032365224465410742802988883679068024692794182852565366775684623738946667628454062437726279799161810493038033140691108523895825865950320643344203662629575406175778930949429453473628179892082864674141745428455149246236602687194155506502834581565303763197241854683022889226783179606281970298677128825712228466659439659018953720806770868466895448161382481972644330796481264252973178779762985545411701472349487430994890113837431924491924950808366091098651949238842004916215108233566686086207979295622319613660827519239499747528936361289191610926369465421603859488236571447778505850334452164565174703451680825346877054128720227655229359804178913669978202893239183877964135802271081457151587597855356183859221514607295535894682129532793658808094469226479676015462193620493006390253570821401437352720213576964828391083496680661038240828363689172768000055498895332781210302785174291776117097964566525802093475647552212175234657944875839982562421151663880774199592027446512007843076537631675558528709489932495725219299970785547579070607563952786217841734498432157180557074735174465762691386223884306027364024653441800412553188567982902915834489400785485106048729152105772104489671786147301332629165804929877103388092581651852258331895969862547371616792734366236011409642045283192534538428877379707913141384754767321112553488220850379782980927145298223364316054769294347409892201893049303420020936678069887708000490827297417454955874886607137605069594382695264542018008347903685419508845487552167640527628721438668443930307028137430410082234785557367308993829613623291818940746855245678583433890091646155771020626684359398380816736436250500344332105038363487950816919437123744223180774786180083847390037702075818879348485468174274874590239389762273091822843384409434079032235980456516836072766565965940041091467249907407875120381016088643325619204923756453736199145700342712993701921833862018442609070366802587104026026941539115376295291766140994230058357252731440103521231120512399584081075842358850704198317134300117293080847086683559209624006862520255810162243662678891364747701883177648013963344499764282012594530602190583899491791577729797774844795100424745707866764290600924457059889393246616313847378057493257794284442000491162366500394911549727649706217099877325126863028756079177715806880369099208796062362428090043963496874194080199698396699583894539526125389997832291213238600087828259824722414224884696879410475219504393574255006319081152670796223015107681967235467582488556228547573373778375815492247965603852160164814637777964008165005180899133893469115740226987412570083162323574012719285426648778196672758532527812215419361600617571117466097585652415720674894378791429487016293730108183816010160618999460608808874012049854564862326742813887919351394726520358625994376463660020203665284951913247784278006774162491747955049729509947403298631358667985060937584477230220242381545718195086105285262010171090152779998181114544800311901154564082288902653602700622768600272792871604865081613360793582989072839146469202701003605883933688052818897054403610965247397857534898758838120114252659903947779139637867311814716211277038660546126965678730562968954266118927616726713566670589884536408271480508848062165892277960409753144274682310107284949466045031949950715030095230632303414072343392021094651891868418516018394894914337386198483455518781420702689366754404279083224451812538672125174203663313167972882135427748231939223949663363907604786475630238466899173742589635000637113160900990430150229135778164894156233784481112396035890227336040585058359832302115127486900813913887886730370049165890809754198891338229600827329253889592780324696540634426568430302023048445462681865527794653287507068119772058512930738241010291717610817926680197078882547201353307784539966959281251606229195494302565293421502349739127992012419426189581865379966461814681184495441778805401458997785682889851498229737772361478858179521035556313429849621180057658643301854702751138190963551667174818558290918281685520465899005775061965129694292990746723950451004904244325626727910871702733984074120244717603051390944232340022790595892544051546511690316176834345484905184257260574407866359921648660157795964410334230988349678394702609352074902688036369758359174291718054040762081879163313733808939520016117675414929323855721246538762599432476198798973902478545832701198894273043641009751358942796054965231258734693139647990632904413633677913174140930246716868372940616437514087270267378789472816841542064931384758737740125994317679569265611188893738891356459735885757781828405864367838477398694891194652432236224150953630912707323992617895697790056280209275843782963537183707258964117170746278959026038452929965170184852645098027781430751131149525652924401547635010064216374835366906139507572497953148059941993481785546155277659529386754159058840347628043419082977038008273390796757090713070727603553407975034873791434835369349622641099382712114178127355362818418030965070985406687611910531837851954713317285656185541902639482570578533429823619314623561700362614049481038233571518196179989422635988636778738718081209305820052523162384186333870328434853660026908724461337305343090844566344588826544394913149786883636206267545089503547370108392650335072895330025599588834717194948281605367311713676076659687848898630732493177086819542027742121832349103650757285229587083937534166712317492042231162564284348509385469294077827653452244777516747784035117883769801314288385579861182274087157377086293354495925405690091204107858308473327657090621743591951234667594619661372020889560030394205090197446526190876957387695272751396136520259620716580788183566301124405658265368958501299409855112075381731998621690156159630507028004082048253640819667686633924340997638156045999202806229703412208759477099184928409219041568635171816071301756217889896467497941480147273007753260917090936923186350727215000179024061318664470292458190587082580835705795619522162172318874863311639134820085977314187012240892545310791194851317983463760289670253221420361034860738225613366037081838828975206014313198442845749587234588585492858955424366996531437253614796401939537259404429917839238212118993391038324192265654207399456281087437893184003128987796482198751180493455249092932479721704343668712999840190082735150258315375551376922724095294252233471566756204139258387630815491358640905535172285198823662337024716238884665618243910492492501328864454868860876223730640577969068274874842158087741185115597870212533054298883277164614031985617230043752811552759674855375538244690274960479507976595842120973831122631964050359016669375348157204065589785132816035163612723517319818145594865144579316954654839377535805135117761682311307319666810345086178612718142811593137675871750256484938748966838582721808442830824530003152514442602362607336398430150787019570244217847427727127335697126696559069737520932670789992549799633013354245913391831911260059483148732799687675874031650055883359440627793896145447832690270873633975165531489438919738629921291500789181030904538836180457268892564459973219211209240054014604308457051174768434276132400284354546726840735342215180258863369571803800367287691476013882200593969372154113597552349584828528959085109557531812642912238972205904591508696991867541366592342175109438854845238310965235429575958354994930754279268883172555172363399550738388566716899765658735791116651375217436541181647396757479129521823639718887439759356019792195786250094935965112076324064578303681292060064880252615934173054552751591706645537958446227022734697731257321339390702161338198883174249038116154388896635408857857746348348038640230240712950216784116838805015072197508218561552390880796118341231531204156280497089486686289869565759561514116210094347786682643643951490851954740898147223973238767553046759248368962624114859123247181672934852895889326535240171492805693679718681933399329312127571963742625256265846539783772788107123890532194854397002577947176676607902060819525616799227704125115721357656997282424179619119966833858338122445021504226080369930168613242628470763702571884406391538093114361669908145516791068445275063116930055244836066134053196317858392053556403520675012999999860079755256718355256018646911206388907270006051672018641553604234130883235645787552692696637679641015491435745311121378052869444993956363199416113391065120346504182816101869004696948100858644363188695891675005851659529741302239402703276150621948392399437922295261485539351486207462626289006811640258023898151376403750115119159312801190661782170606312866995455065187521893950297241606546589891006474711896645912059013655523454769815398385332811142941606333554320135175436878046918891957240133901213245846724526872059262758347111796575165551105027755541467016591389905527853875287370530117815589924944002098714424334431009693485344161523478841919186081922101334072590033141841101236591205437585326201829726666084161507194365236498322893751145815817682951364724713936013910785054223140741585833189512447507768175188928872347271336885344914766719170437708333681758191189271579810274619517164763978562002517736395689839351250836504569852638585622987188692000582441234291400782033835036069863012624847223298679245593690309966343948851038400351206363014530412208734000171850036104096000002380038897786262293622011095803618225918988434084171110868179728970114846501335577566173743298274238981998653268541705986969339469065702720570169207378859155911840379256514678735925154334431311833107348923701656702301858160998134902860393345713492125955524531623646959725795445248138944688259386724198377964120990024791472175887868264435522578966394385404022842416796122584785093012120007671751328089316802652122467005509164394532611518075462168824334280955020266011653197600807582091795248219533920121568892389518633195402944139442604187914059610696977648960810453238973074014480953081508230428394940897308585192058677875352043689639400509751815323362574275046888142884944604834482568700881328290009405136481785285003311236553952623455315978555305004783290832364705470512262924192019456243239051256146429465444587147089569191026070981186728633263290523329220929055333440904674581503284082230097038211056761180145509828893124887420145846319594682207187812247943984061501676239777382377792050360803885045325926711668652614493988928806390519274502642807714865558138654911712849298829296460111528336597116612983274832740546365387725139325584172044550449033639647777207740759509435638770099108553204992616152637756835378041580552326673558150474031372999122572438566774831617048037246207499226009296063831068272822387934137658999285622195917526589556447740969060218836977115624298973715059629334684061140805976864603501972549182375671179064693099669590693111199246677323319141225737606702357550239106060365959896294995090810474527574319721137975386877398957544988576666585996556304015626045585326091263712822583061137734854946007470870596436583583032055038850019859505009391614155664918487281728958111027525790493074087985220510549578778727206351260903356479051865220345983517110281205962892509864203019728591348056489474018060670339483513582565717092095774710046121353180131743886014750190552368626451864376994365573772530647179782363686606251995217455577327217206211190340233653408581149834525162168193320333916372050980401361348228506053253619769534350123791493369929674439542928304480092256716489150205047112305398815454013590603233565160445186475293713412250463897709832889744657448201903074168416531989560196823898095899699506843452875654359623270912235848339451952157313572104933021582675699687799050332408523026186496023192063277819571536307109876963429431879221891432569296734215930559262748591917865223073722669831452895905073865166102895662184375788879177475293840503915928684449892677961955868255326663086369826040775036921476667566468107739440095326385597847488530483474711603932575109155554929176981977280634843456747516686315767626031977127448010099262078370862613959914239844472367584016431926078235443826703012475854149605259097107332206422287776903592020355033647603387821655866201104390635368538207934311259696109381771710752055840677362134698308459718824990097123068228129667641285580974086366397780376335319519569727819052844546859575167629802450276468911195382559938385617484994427724213780991347678918281450246796628075388007667494311060696253565457485974770225619385793998043916003811191528744976058754564578893336182918380671332413130407384664509320742697736120308706056211468307323158328164814568694121220125680553485146292562982930695331154084500898481105991352148202120762965260532235702771404955073967303463729688290253328493318979968303702817632531446952854167471215200010563372503090280030645529410095653189725210150688738063260134143882352655334132687645694660594744958204117915598711667477995432636961861784028102767707949964382460923281088622512101896345346008361821784010915492481702877852244157402320625719809073265844869601919665826576090456959891479764353013655912045110151348554067164736455005604126135018038193140872772929620116407520831220115075014153260904294455671158479346112418042745485689206557038945701944178816325097889029119522462884092948944542368111942637199908549349195566226708417100139296141299052474656324683443630629526295283727034985548348438994435632205552452037280181269149558655065528765630852547096137563123670065435850148331571984731079086387371675305228028656573004599705957754197780136685787822705931326486383878396287406340361767770552266626990736773127700257823896802786620453767654537600680345097033815953500829579703073383586830438437823465643668698866518848040680086513706818805850616999442006692717016917724644798561465546096059179539308775766089807728246826851967033350127084290464315898692626037070473202812372443671231027731864186345447611694036645486102703672498758763147958481664211583989188984953868558004183746753128547423625145284334378799514515840000918271817619373989702809302431642107232584423804740478981220918765582979623622103956311968466401043235724585902194194667574059223326491608423360413180783640205277413888641124828086144946402794684531786027421427560117518224972528895806329587084648273421814424598778043209942572041177741053270466745238426603273164811329601712782420962535933973716524239176858839169602947797943079520524321917121386169727411871141766315395576510962603163821137336238105147501781189630903677850878937483806968568876414520074000196918763228920054185176204940586608130923068131737556433103385021259123734162254588554094337608364422186738919697267003235314111648291915863718499350628857874672998387003766338870246723332379281593584698229157947598532632720330650066613166043016985121351586586348018529284769417772477686322342105517878844724344040134315897260811513155417134871341810972500416249171468133846448704704532602470769093025009608558480130688623245028751773133229753131372871195845607264959028625751107907245137646714133684647754234932257184235329971343368371471587150078809347569545264756450977460228656952502540352518624893979803870581615819110009036654308186225678789622442951169317941242521242988034709299200143491502015152619620154953746693548817340988269754437181845415152503875014424454775289429870877207067337602784422415704752922066951326895704684350792415251239298757172123837653149840464376028438914521406593809224972234757296238885050672564532875160612320396616446729244537562603966331867234960012408698851619404493461021502273685277046120805782606872123798112002474866487871208658535222369006848761618434100948834323393465180263938141686882093393645535730854194351216738832156054725047826691592314764093700670105488248369587199654031001857731354167852094504865361206532421078634036112168132402998369998476647877613721040040810955308585435789276383781295414283469047878196131720536002743247293608663189217692615629968907311669127749853317886832439544290584856451126255056265313890238094827230384311187636194160561937854680664080890143631266981613105704387407459529767028933540000694462342472127866860276486194187881688426411558980211049797527267715700974919811094975921926081477647554901828926033220844847204062719865810274531231033266796142774677004511143136175078269080438235297665810804842591091561142615574728717400969371776820809059623124172699490097878457016158438126625751869773272508927357072709673896199339299031120797017202924521290452333191414220420328808169322639022925477614461134813200064323729633931244472950176091331489818664516856390942015533434751715550937382811620972899523676766842214646196024427062258393837011891139681388233339962534836824767593996997772148958756720529306784821770409469088389109513404267413552411982986784736011904694628255318514071248226694337071879958239612112362321027348238597482675150712939820698309891488479703158525391941289136204421456197453780690846133208619907451131526943750398793203240497334332770689991694196278021385438843505456572487824842068177926672017206707395904648140614968198125940796184397709859210342715533503030381990651667376207473564620242737561671687147416357417602911542486789089678989955168561804630033674179540931468701904234982624496996326217611648469295636864036640923230761609344388477113303423624148583267817304111349912261486125760792557203640162924979894904914264625133476860708065210577979546695902766871942874744467595150544946446377081952438245640470172656375952452482741933491968847562057116139940202081587240234588767179467647836088813318177581502916520320754226424717760882892004180093912930379989299542437405008983550094553894966514267980203602608231598436788069116763719057430612752491739311031564131651501642727404601149539176896099475375761021124600446060397548820118881820000140386505582885816229423482467312450083604292459851111098264305942862445624090377279683055905967207516990246495853623891217026637185653040583778223809938624949184859143218071062500468193541826437187346264737673008640623775229660604148684153630760761618705442060426495232288981910771687245803166810584044309153347440126495236506753821714836335867788151053352401016557716543592133992130015195430394145102910902023315060458557205219702873419203548079616504552393134420325517196002950091374495510937811457025244169041173859783275101626129947044534646658069164186838650015185069769788041403397501036552832241106103845081519086517592962922466553422350150141332534053919972426305011199771745785589127556494443499625546078541206447134481771683259613236993927964234178412202005547889214641105936099969155525400692334490190539209581002860904292495262063176310963486038200738662193932181393069708471561710094041656644310710489846482813656796142581875420598911143165072517049443110735995457469698548220730534034247284750572118680268268026023980982976345508673985556898945379559075042100125386335359445036754806704411253769539338207787527721431580812068362630559099941404712216591916119222945633207558649510879193829225517453572384999508684014761424232510038943818716583270487093772567622520733617512564430095932466206260391405788877030404903363297780268126732993520662661709873114684368575638702047868173136360010692253977612301666154426660730941431113088032858199236736489870468519292002777035737235919118979443177491429295884058562264195972501822079117007577803258156752387540087920010591175619443932712900182060003648591835277469698691678924891585337136886480323217575401669649214240156096039675065970861069978019857960108994635114207160252770567053301584562977590388028327368300868737790988529003655580420122572961620162430370202576183200005324627579920068735437080961789969757637123436155232170083457672319847052873398158997868067717245585954470508023019867705991231771619117637934017132842370066240388970459500937990179978605829200905252792592290820853969862461470586307254275398081120581266385374767413315454913070100175400660182845675470960242440182294823776049787786943094761049829883843222885570292558694750267437497707954681029551556847142314414544963306971178827176736482631814358338777021681852495600321169496955672236547477097685221156569232311726418637522331384752538116902870707662090107480878235965246601080644451282554805818895992763190079045719201203037255682650077545408270199275764825211897451717572179208542995561652569534366378623074736078841722773229138276611561783473385974151453449549096425672048211795830958195519911774511355526387690377464552460980479725387722790323425157281835622951810187545613039357151409413531647707414121452247369954099411726572137130686713668543420869689067033679083973743382486895747053658843877258662427238865436151220657926452016713209012903860715348095350289374340641974975227701582277358069260241427863185223928613679036683084545557143925872130464329790284042471706960310134482074968585472001637189439448699833261669623668586454555314970182185043543674117300663709621696634134631042578324807171650697975902365196369865197489568228251678362185845753101911560214469607612864197356243803759195433416199513129764340123019797473598918835403488920569328592895296270015877983722658822592666011264349033657903629634218775760728338473431297770400939315416377085371259541740215123760877314476416660551144117601740641668282287285422963161591196940534985620142031840698470722510088756370982237248084033460514292104589998556480038029977284170796834045262886817415012140844234264019930091026346395365784229863311805529796745536223411301559937708012654806574350305428856656886610908377078471800419751639747301557763799966342573368026161325094581950995536083116848969530893425639442721093384178976216475755735629442526059342522851792559728747533134709925102227510627854674674878313829760854013907407964455521186129992178886327286703729327466912347626377909633877369546139594574944501093672270101170288518520394100751021262037999000391767981900864993218079015584512202741100530331566631181175918579726178383561257113567071679682748868008877621581908112669954186766144920245011547844597420892176536047233983030090830424393757725157251391259955502663831129580295334445125384493428808327882078345587017664011725203624770421184803971673493255314851396342389148356751256120981905018382734077662689830794112112525801240703141304429477985683084588038250845525699353722493280631614629228147007747271589218053593177981283590701205327631046579055997515996710292874461995097685861957040254718355237059178211052841018031731519769735838261702371279460386629357195694347868498157565648220146250916040895125353656445232834822883457923830001381535038378465646866820196762514311871526078785325357743909768317801829432467186327603283937345240754139710511925371170868441228340425796157913896863680919429894326492634375215733471478639540938480980903639350333594299969009983897805078120069497030499663839022642294537095292597463621647716400039310677369970999745729621034925720005286939583049109502746871051664622720916182760564254155203861738876381200478731067487416765051714391657560579456481484082137528447753436442962687591242896887999928418042227350838997990104941433155567108731328962498071282779565974046473515752314539701992704112434031225505973075073863845788240803999842670165848508821247122397233750871542156994191190760567760125707446817381194435125629527279682864092184699597414080687692306830503899078584823803504381896687182523039443238485855902596958461963551027059353589333582043310091398203912139971425820048808762566616691084581890942526039071507774898324538346166611847994946895046564899185085036290214883114802345223507892542203347398784873656107706777398225083982829344691230409343071474377669375901418105217280039502095171117655203533573225846507287601180735400687510443258653758016975054438189792352960599438163342665308653402156733210164424338693654697451414479479574896933769915712958034378681659164988913747573709274092727753519749916100852884090486476449475778512164533665877613220075369957709243163336200760719016022255249399788779958122951778742654433820474354147689450258372424000870499837584810107504188986777119136851508201406549494175661843964585956369035299598539191867935284817244972621535526113938840004805140891891962023311833341544927451722284462719904909747097426681337377639590766103860076994644854026850941530914563567632189388089686426921382836074533191371521793034715136053086631025888116363647624561590432434793294510419594204546064305191482939352353890002851284970084094923502873918601193542115067974748946147742499484804606713539902695689552770850185577327078617940097190491123488747067038028459907586451990636525401445483628790792341631383719832856729557189829923265337788868969396762745005617442181263092091797818233765573104924259106213447845557012411318444622709136555965807200769106144866176269349736112171251713399437494478465935866041119322952812127406439928645284704339603032277731361738450860773837436989428626883517417219283112115475620007166633619983991235330087281206074695113404534313003612065244473953607099100592949454180527637063088756618368811884919183227445846694079813542259427916150823177326784642129336679133476707814523848727263388508010509671489334566356561735072619039636601471306242137150152591318363781916544958876528639458816848773203431491022612329755323626205535062415677710185554095678692506759051984799548172636217291523596673831533837431346967751838861382329550481521616802456075765834020296203549086885145948438208598011431856485474299770339821660329412860372332561489149569408758150779570399702755725440936742855511692489684041957930369865472027877377192024747906837784895905640554031492933812032346994167962184281455566368219328874969408977120500983232709693895606531101096883892764824891191383706379965805623753878387226803983014564869691810383488073353108293788763642514757978361939928418698479773690563693640633895718610704164310691844968716742691513665614579352771333277422242638214304884864511703606277893664967887745701737919092775221459824802425905914047536200551278445314946396248761332770260440081315320138307011474715156183378382945136977217253583605387127437419786688030221082974139526117621367199276419183762937551474270884911800431434597275168247002094750805953448338661305500504722037511636807800301973480473976207575954142334253357751115101695966350667634636923621983991998746804490025859447769632647123614854056739631230252310916818919948516557230810054501118230374141442470534287389629357902382437847144540752593084325635569339059929566967393979432182636454175665027043795940347518598172361097329478941407911504082388498451417083279225025169017743539328078396375535360276576335585961522348574068870850803740949476761079856720760202549683063654112688887642855299566007567239935297171919564095436910996797751312316014257114149849014145863923950556467851546365133741939940382339614096023568412567859647649587199857119732533403359863406639314682875609733451487666364892450230303278313669394013466941351201285206940919736806663332928606976741326871925678898149256824458028676369902026471442646678670139278976823704605546963330701285926039491197258987104128426930523985594610470577634999811832345908052287470758635819775513988545457743842341607973013916228759056679245020597126498150099603178781436413742659271937925674277016419561767468720143240463905557054810425466800596048194412687732437070891802532073556346200033539114571007812724391531036310221898598699403561512198438953918174773896595210442640328208287734597038121605518965493413618632224509502416621127106145114211988890570631699598594378884902604976561534802786667788501398491307128654735195554428181704128792426477149640216149144547928269562789174920215570998858269279527381497175732803664228050790055547016189018692100920073044056232456364324377898328372207996553776090011914003087659263805520290795252156707605094015849774120757638051376002723339422798644341347768568304347513900626517580696042319397374496795128058853570538647610755512223167625935169302459033054807163975122943529262627199468474380173659552461135012305477588688359091138248373549599455205407959981138485891943188670364153302988478770032602421286684657427534276116049840502002490812407242053740467016360769945314724757528291302984373667187742720311639912975937053847593882333645850379494238905357211981300399426601766865896250703670569961618692978784686268500204877836454751248454906528531980595660028997262415517306253742376957859733753050851178594248497643757117093664169592184568813647330700215548835094351164537866270239633351726406196536902743787008953126799375603011475337266060352375294360413233558204489942524028904846330135899477389556897130602827489125690946952036259981098722835727240813669708425241837400434636654930837456370427405567040841385738682135918425713522496386370580117842838929019337500115107820258482037629947937487050851295245253028583711387607920003023711146680466242900554966209859181342746934283791948739731482569489211718582287196835225361729257979406480457942495477549399067279903203178969471537324962402214548013159122268242317418201848404580084266834676099345020181009458972281896338655491128104033778589055080912701457232943585434022152876481895432875727388436393601717579596287824453060935506771135186973862216438921040473939323957724332594556912852155427786858693260973880484354718594288554686279211496015405079365619629600680364339932753652435984859648114446656299489737889608832877801954304914751328270972975486362617531702158292132119361277867740386081312855292100249304298406098965781870789164092633577080839550061773618586864474857642941603697541163527143077163618036641609320495638689205093044346397841928244118560689335522065402474483102306249410646138856140130620292674878570991545501042091281756914564581779487033750258219584272226142592225962957417829132824002816998257349952610564640331172943680155760019541469018505659493633662919617513514252818298533724662321127547991979713670772749332789847511692675144120118713382202887694139311491170743606217524497249426467787727444565149424016162334969287383800226258043967236768139118922846702440091023308815904441506227445909732220110271240239496370093596822366590857569955257972249045692776379807527764316639565758066834264443279046821184467291275905780231524237121993182894475630104843329839890733206604381469080757090600894108776607140337363446473441027326087155158973470803101244512116512734444054402027945148578873360232298312252367109800847217202825146698278644352901768701502270699906162413953081622988950467498327462379217683053595933039257470787147371428671671461465595936813360116252670824912295534856159165686023361104824113935061516050926221296593767845844851719780014313312044758121510795595379828394877057047823520809539219661703599770231788242666733233034963203651890128941619188870954890534780042130036440209299306376745136174667304834808188320587983175009196993594938796625924773702941381251012263948476869305492358589880989401832475451079342600718220087892122932344208229493042343076045269812589125323231790427785176291889322330760395724637237339111399704418290880208521455609127210983059184460137067637212208060879403109019276534640589470887805584991205058268750463751919532099400565332915380820612633330279667493922846028364548137750529072785938324891551649764369573225753222376042896825319005660448463039305888704932570067538212700333850816830061021886017262131895459644207351694353315395874208036080661598120499218724943253640189349287811922589568382806421390471275509517243534412591856940837375112389146683278790467055173919119695786075856894199886258540238980564477580090580441447957073575362050042378570076048539649940482513593683141616529740028038376081698973414454835553568936462986126892959289925326502460913485293510826738376251723979173683896417259722555695471160361103572781181014067164405135507455946135527775401454440654766400502474511501824461559133672709096297614685714032891064498589562829232316862061332844055280518644645267324881722645674146068336684476821220310813551369632055475418870815113828748222257851626595090495323234427690539550423845008768453947214803170259433838441942579498073271093450410580697563358827789337335996583341153209128776048994179679510995127798499181272679903970936953244821267514467165240919918505945045566851718824386068608451323067446419892479001501494089802543087123468432520745219853181991467400849976213747383217400780629088136107806621056436540210091911366878612792456927090537304221036850537637737908763932162677852688247975273538853646516336148963529367652425738666568519876270186536374865733022595809161563126807977850570366153684123682025476633088925985267780212170350805418843339259493623004936780009715756983463292914476471730213668151508717363268934146485947052085468623103759840932732417315793549815213244726839235799795538606759582167595036160499205807988381973712566310469820857985016833149767349791946523283987251261143446153127815523023955542361097568909832154721178183693503512202635552528745161434105874322747842528859558663726831682987805724977630295078720777824103661949787666110628935142036260029786418099146931363828734100486345516439266042883043783272609681486166229527176840680574026583478412864708238200502311842215222876840047443247608947345183651030398633627586473453293128720954549528176359696817541293574291771303444653507213836282847154888750053278047312413334120188372899623399142347930808426142130457058166736669914558728151508364855672105648721196147880982384545510937693061006108101210270320291953912433731895585821445780102178131911922696927400765666972130430517498696661655987364027782371508783230608235290520993180479466072306348372247754701601197470561741416392282825010826449564863779897534116411097088683591446701450166845725050041005339665873611329358608981412266078416023586520374647740474240913441784977503404391859552714031259206597726104478285509960709486501514647571372480719499579237163576043270294597916067313262754408118340131600745201744304580361443701221106944953092858099183290299657128435292405241404059232970000681412928487922115970914316866908908839321414822819719851668164300494503376161019230133793330781500954195168465497839283875577870788331049125466074555486877663008875352683973520697485792305016620622305695801393833282478526323022484779458866421129370146208922872832231209112671883669041117693392936152884849517000984949545333028377439222623170038296513161811024085621316692331406108988121257207511942698860196588906550485731614764187407822481689085725782714497527770136301315119665984785277730145988640767349646390040313351641973618188994009637700162371838845477916904424120288459549217625140262822743939333755102438533041474306122191509163682214536309450815486971361990538956863236937969256589670919706262158959281025295443299484038848458119743065919887440803214215583980469307465142243461579440667421149255086022324756858263192945840411485697293436024802645514388226660145590598821850887557817912411295908002669084858078727751053875295227590824003273265617867415906144235159353839290712796141195331732022112248736443665861354954058498258200494544870983809157949948892222649493217441592465639510947763342346345227798409492450701902786694096627179226155121793254044447407371480594533023209077629726108170796198387537594955947558966910050116772422226884021746943442115663491169274182819819215162479843680511015019735160498749053886995402962280599748246281340007338723821586634972591362607664530934130442154799064054132437555723619517072668353112309255903278250931995052572047556513130764933674628636676711654914320884949475682236599830799303914249947083674398981325368605478600673588833295692058300897776704237836122420002812152781887423085271444408447881767983428121888164090119440084433991968227504345027982193206628170675790394654117463033113940213242469517663952587157078910067318837413977539731461221946827053425241779764262570352090636543382602522665669163557168710349421310325778596966233467893688151256185434744224244835719067247527136338736392839347808481462903601608083972306904181852212149891233264897718864224315308436063093685404024632193530163961890784444077406045271715174268951743182885459512785387983271137101791963458663139613996280773308456248523026305017785023857371116382484256063985837095560058363632142567511227844576706530661632943435632068929024691781085938242645387258753104086431555550532234928666339276121855760615532529775363639010289024060866787530604264590497592512546865194044114287763951034092544653883912457728183794472563985674260593425535935989317891300590114565765270448935665034827686834490508463609506571512060080141686253096801191839660658105113302843384598517988393697517476328713274023598314142691328667953140320383718673440032330569459744303632937964712586704965382657627026132442154679990839330220143159651358464207500423245696084302353014937549969954252363989579540306417064671337137656699311371302947290773982161746332129720052709967911054328632835463527610510902267496502571326853276586373332856195246523065856289727234833771122755773407839819341811966011034092468054591113912808027654043516620182436700551930411498849018483891898318956851583495902473489002379035726825367368353156199073658590621264377590630812459943357561880921823482904641217559000826891103326335735028067525683270767685310304801549646878950643893327345380582037170166703787207676975915471799719223938470083481430887727438764972773354976644517630062130435784028754396080091220573741309482236848635624863257167897023997141985267687442455968801666324702597011125095504555386855436945323614190728915441965154082400375669759594888777299425143408123368003030815300581548926821805841658745661470191532775871030045464245440565039176447096045781367184565380129691447476742664954388206051721046020664511623321971061244009982036520942092872740107509448265621213412207515297861075420439427172807405797429670897928820528977712218733249704544163098438783627626747886417033359670360440428987870542255811873281142344050579548134878878875137682009273378520943325937930593478795925653591412725545157211132440437745612523162991187848316464814289906085967432426009649950245987386651842575231587871690652801857942361548397219835823745680763847485937359428556931041501369456981656175102121739895506682281528371852725024978665167935655134403767812819482707274904008500515595382223740220213913927821298817428569190622735607551911265145870160524366252683399617858505816196801017688629227480382679169343834058175164286296119422140420498575990057583788548649907714913418172116456917287935890918817883610714316832652905994928280996196158612363627444184844561186253291478013723012539790426776649833685004179650698691769590004446396117605383186932508280845956290341208947665913303341906812199022460433573626968348546429345360347809879087854128653920337667333946364217875873479876485038912958673085000900132735892722374428524607758307712427152832975500997309539955662281587876416543102494737334541552091378240792485876531840357084523433778611570594587232742232984534920029425240023949021246241712738513801927161175457126545526495125847278643054357126272471408264313181123248992596612578130891711046930788677048955651000989827773006630048724799781519209538058732452087051251272730904327774392143180137475969628352620801824317441588674934066789775072144140519273349409644678977125269827510520644348859911513215676831041070336759080373415724869334061313376036135372283170007041004767660798988265787214953751023899345372241118761244035230306175736091760927363863273751552146691452469070349797250249931037466079168418167524004692975209313739527144596382098208289853530631894610482134973850584607204361912973769042547463398673604941445408904112578359154670584801793888939717438400408872079005262751443488073204927203383180587284737773037680481280506048273905020885716741396365447563003981418710258579868796021830302468056843017148657945318837604659619488551659434491869902309949830744472623727757485607947990298661913875793247310741952185379197902059145064819466328828126397069394943948093019923862571408454110997130879866294151202869316301163057726596048574408818541962998604311975083100001123408196932603198430126104038644679059868290074025211840172522160915757034416995156623409309882098326477659215512370680620473717091004240256356432424569458899460698620282687206416889947866323834324080816493680363757861544748271091855830202922555551528630817792918554047843706789390016901073630682095813697852123463091538114371287654906774435581395558875671175206446249088680227261508703443068700907339221575962199442100371634342542979498486532662188031432564870582170215279526806231584301660425363256993843724050149649443738239414310597013146096972802319711097862342324715604641466980168663107763513734565700481888383591241308850082788869439343833551015642060404525012733084462118414577606029224180099389166225617037014527890820462656730594921276711161731572582619333536653831471767118240441694513669855015324911288358639581567367768274948819994482928833540524898974550141864617267290424517918468100708027032883324122861537964692530775698934640447406092115343194063640996841946066263500372343842129673352750527157913378792269814859867828964045849202921756205880164853109714640600988933158363485375787471904178769881075810246229818844975932691143976186159904792208124134242412743958960944312157809357186180784247841531107898674054539332868978090176472394412365437128470149962528400353206987360639200500045732606395505770562226499441765674751865654211931180014669907480934428332268691126887040613238723315965187519897095909612960683696289682060606112593332945784589822273084666403752277902683060519895800129919039154898359479427517414509936135765753618994065962351994478497682995501174277863896208354448026704995989436886711466435484162249073861435341183613528553434186009048054843560208607934839912128751114694883270171537952871994892326816997278818783610816946814759939846149685933379621530785867604476597365298358053720959994796733838635188462309580791520179559517276081038904522638038333618192986017348275097261054694014626702530048926988856381495477467326760957133106708621170364342486915003400464395339158349146167967329556390258996723115120312861686976054308965473281236288166551097924875705474045981890734136385156544923728861435418131836367490632706929421037692096194683559715819665316313341558100416884677618357336489525607272066513071311628662918049501761440230905717991731008717443355652791469965993148551861860372778709951348714259196597237378332963117665166299115559846903629341992155748223376735060930306194966185727985039335114362502452135257899219325967163915805601056657012784292972719956985119143742381230662969230754696635013903051018049154882339388380180352834984916352870492732254088474089321750075017050486605819630307151507498085098627050447394356200820640459368314296224205192102694685649982298803339123559431089183979019113350536860191710164141325596721494949866648918629393308580499391900142552924951936867794023621564449852001269001709972656624768544942432261754010644260001303247839738387739964967891357232559268296090948817506280009605001245587177002824400170158907766274293146094163948417645778072550443103152423287625956696811918720407199745941249794530713051577379212589299404361393671741156635373084586623384439467636582019983239370620671040357812995970084051362133244916658450696663641494473176258537655498344638724848244666226645428771135246771612838903961798166227977622667193599299483930534185637309333721041451730582113985292475953541600066153658808766336657237737880441865727270264240368335471310893825324145989611765813204742081877374622607248828207327957766898943955058120719804622719558385048688745755464561001697744458779398532950389371496905857619406893401938337458684410428567773908960273792835691241273643694238376775810473996920331437993549959712110340604087044378816589866094299755142110305315666552069407876290557788878054030314791151108071453738784125928914590228596262160814808248740061186676295933534046605982255458874922301367839637453264497598149113570494852172853819191795870041227498050195198069985425530519679766259057293082111440394023593977376082886002310272581723714048342070402296322479303736207994905425640922921344061758560869729792942534463507148834298410128730917414316662530475333817638280721412107062580336625683808519461806089346172087850896873786986386012332266861444291158558680067861255050843273963955779599935426810416678879126775714311289214968169410317777225569694313741516406590780667964353822407379833498601364425083956636823754012512373966101633745702582164798982176131567692713481440631506321446190039396472035696636429593065322232532666273735330038981523858070294638811789305043161200397618528869726278657930758434437469196782656916081822799542650283355824171904368409603841589077157616661752024352016391465994895437932400231610974287566970930690438017381895369317730580319491787148099271729382810324594961942556624366135509880301941952823043429318211472282712151677971459177074075865374951287461922883394381761748868897927893054370828955324183265409481781984506125462983824874506014109187323373296482288154173508748233480070836990979553462577901019544235304786258557464044553568537532167608901353736846401648791414237471429286683368403346645246155116233115381184739953394755846565457755810877093110714602407393766738384568528910548422190882138967506259741438302174518400498662212797747587257096813989660036095003116021180617900231335111427499219303989226739882303269018823379534543403242487546468447792400225080591213643434442245527395306116685288185252687770096129999019984197633048575013810604420978934505209985160938480604834183327852043640015228308787688112121826868705507850982621659658077948184225702582910108459926555078493891651428307088767431635074756917856207687602488167107000292527094741629605613715478664099942949950395637549357031686054911753893193107743002511883075802327948331256413033811096938655013598451869677190800893219480462691555016788165370668305187591115130691525761142654357910754298025491386923216194673202955855900210416877595324549979498599380060864529174822676347862164335638622457916256827272613192748276106240703204188916327130586202366789439964495248909809514044946169650431852775693822732778601414924322718586989125480754912767935558843417027252187363176372881969936021859946662192490496132310562592823993740650839002388445413098506766337959899730169241360348211892146437724382431558517446433628206831975208604078141338813875224101753881564947781786276565350046319760272848841634508549617515952330724593917658395949496947783708946203637820323415304620042767299865929820449033212758501257603342343000622314175984282381910555284550762046125925647523117216106709955422218946147536942848069144054466762554432229370063779124833282894165017883280187042501476400343633460323230245067635654744255244335538129221364628756854277348889538922759331510861996574818454703979515558312312281659805769365451941524898963062571399860764183128650468699254418175383143470840764918335383130328684233683506515671109804611894134756440045385545466346068555851402288317019454209189517180190838721488147008698082915956910301167173484201210098702943378229310277983428766262313379747635984703629943298278917130997667427476965950353813743680296741882115305578598463750285935687408298142762206957307452516628724973741263157463664674558831592777069098338930577601698263658789621726421347502904420209650893404730665500797501970218749292047548211381684442247916913117191134166716310350094798799676653148423761161880187249117289475129436599823863537354161053294483187279532869503396100333225925727964195846857728568065394597046757968893835625523164799584220372609673375036307857009656116910435291490925652474079751704763254033703845279695666450773175358287647798319400869442152233942800229753452913527518984335083627206945406013201296584182191502439217742617305960519966838021031217366185949174532100468361946548477815851225264196270085598146803246935493939544461981867155338281707776340669864226477019323911582596134034338907923737800869730340313419106981618972817291688961528306623774428770622777233967360567708730097594412990153181089478160335562921510457195005370889506653072997804326448746913537419487400773599402280573604002796824718445100441228758140165119196859924034318125924875188786101860912611866449653184728720495321207353876234748207911926685297400500866375872316765022969827089452091211788035579074947296557986011498283895681815262245484326198804404237712884897751875720058548435264946189675135541458705534425560566759647673991294289950276053234085540189966969343705750370889465815762744460541559527539177253684510876344890519044710428912330967222569805830928602551518874299093872085349518218739045878119314800603087395279794222674434078280095218395774256877866608828839915805276331551894213566741543853364247089273943221951606905099479514758774372814278465394723797946153352724803438218349697890267365623503425734229864651175677030418131236745991167061023339998673135928126206012835809156355580160893130439141464347821849909741937488498456723720201117527972250104359277176144484539560521578185338565115622230971449405358677525861629662240573981195756064866629601071028893938432267636432581110773192638379309982129660991517012179006434782394809310508446315574774989164030099208639831209482395530581620153151815916966688661830208232804215392327937474341761588093476911204537819181916291009272558629111879548808539398818153444864074288623611207343634333525164479744973491084544303042188323411652969113320998679156712546076105650372687542147152470561576400191743001797571234965190131922979982235078678565904816381776985705433504746777669573908555189251050751491107698076053585355969909908749340274692236941728965280736491797463866746424287829382350513865847791156352169158318779615103059885094911560458296078717541250399010828062961844942185986454279183181368541103664218053471506708283747577733087814635238394667082052492282036140875200200184690242159458253691343004396234065663779949615810902714137964233772241337761139665228447455275261075548706869533112449066675838475972236063283290238367352903776000479895097350299887776439065545457350479195955630294849375749148694608656485765595639701636975677812977899191023375805721974576902614228781329259382443925741202443205827620201534881960441151547117437323994867971827655309745710915267000002408568993217030571098500900407703550987488539120162120287844433414580460608737988205515570520183165313411273904049168587837080411012932072335585769231343482443214639439786252200652233459304058734946461184969833191864469442984661859608176013134154664492001645459512631391795908419637338958030621156666508957124555554215737906607237020875960387306749762216389427450933827383724079636092542128704729121536387430832632282094134904452237805794013570462174033583559035726880142087126454991206508611158619317861891501153080097775328077041331107687798135162804753339580881916591857567107203657610577531995284871685711421913277737384597122150008250780385331425442619945367065645102965542289358399558981977796887081785257661012724139329185395925010671281770090301202859200287428514368899998015493576639725951192530950152941139165314111606835316225607730962610106671459193284604093470235641907628704619150268187146899877250183291699841135002573791328072575494936505892290352096402308748025675520865286308840661957648299523117417155916034750011755897105617579623055087429789409948558067372106404207748542206452939414843568498549909259440802502108200743093172054917333382753535104547325183504002094416910781483446173086810685291044778007396933078283252870131112016283677266795799965964039555117207647477203154306139136870479248709489130592375253012176863632169934609465455449681219237070230226339921565392473018533939856056021806296953677767624157433015456711053222221358149752738466133541692147608352548607068727092208550779133208735271336121159451651219595785045819889212822685254231611341135381330524607007618388104147440762648871074073203708737429020388645100890236851379216008335780009713965197055218376759294222023499989287184751876739919344108320924696201601533886387920976488198619676284237370706527747799183103586630807447993278948171637152071523660621007154043597557301724100734561889898702815508146504858846568413421188282294103365914589679365541968870364718219412028106775049717046058421660242974909417468398707178464644715688762048733968124710183864441736995056923876190652916225511602849217763094551566629449011647881968907578619390018675931800152074403665949307112434955395248358280811713311057271160319888434433938957879620588592965680738489392962849309243707277068823092114702265582202679457400977685519685817478227533781329189526745068001396038095347984326751434670924763261426908293547239585012900949253538709400022321969041505297523292319334241560437434528068869908537970637019023033853701654868627997509050966578302986076272216410102891478091710937296922031809903634299277329310980565450967927367181143862660866423677308793659827172521750173098346305945154507197867386756962304604771648835826886195489299531771464961617858583467561622564548820520969300984420694495079173932774144186404313762812355986460787918329757424624655145471782639262135001131266550674129290528244200122034067439803196627438205795936294359469333185644494033825289497366048541121277770073396891315864895974166334940033769631281818281713495142746633520648489532732691168751193027576127199665065841227093662904165618073732928479330185951968948089557797678758816333349883085885180301247414789856628451543091489404238989484463944601078666643719763696271273795649194869547201451919733266285692945614027977387786828712271501386401501966555096791512514559207237385139268557783555950145014228073072369138285580758531090849341224705913918712057022861694984196629783837285955566215576562042223800125485706954482933880923728869886263261862601326469109167044330241501851241280589755585780666072747269221778492120538027516539842295833710267310685370118855804151299709893553799158044854919566157074946484000092308669012909695473740174075605776007561987483860054856723744445548005657408464030843911945541704632355426812546173241506271368760795142577611487404606458871860248234706804098776373858238277880460139229442238848245053515144127857837885210466855834868820475574602097896907536156526642725833293443454478176791759951608744653091620882167156560727624141200041200773233064465283454345371554222736364689406682035379135715280286668698090761484755503768316857377161095095002398122680475723221997541225662117505347110945634946493825872523620073114773305672857059682341161716803604173669056944996437867740552401972827809861905314126009252638910697709465137651243055016117811685017794389719842701685704164935598819697444822867832160123918085395711799701497424055194580388400160208062252822186538485240385414521722550339604530724846695329379751071903681920775027133634609547562375680454090336183120382482695831347362877131198977104673986820298496186542124231614908499152773158867951690373741881745276001142188481603750828973291884236848780892259451964704009603513167712090804182232534290143186322529544692433910023476020963259991842367418603265687178135748337688997819374753733522559665278867715921967480986454040530571934306070792707080925198742984566677790261889920258765162830415899711008843513266557757259854383354903967601370587444798762141596101496017028392059650850428097151753201431874597199841284363198719125682169264535427228728475639404941796752253924323505328065151151742504286749850064600115895476843643481298375374326864805429728255843237163614525000236416829021282659284886604370432038065612053265920346492550040244407219790003327386286996053722209818518250813278481162786852303906963094038277553012033297421640136801171179846415759584747830581247183467916518164809111965110678484034098762149315930704959424359918359952052479280870125770911556076897296601951449920814668622635771664127063036031192975881271427867670153348170986406597650861695067182379470871799684641465973124078746071380339971749428051579923360572603932837239507017978922434684122296143666162441501230630347008791388573883471305625380967882385121479913890135708939436698848645805261501532341013427347166838979235885604929855182032646310527897594483819727287847503228649361070817074502836474692463927793594052651148645391307956751531181601722732059539923532847320468544856908196416561860244964667413383138120317514654034943035479289680425820008620902126859991736806894252807069297136675090011448703657852966771936282501023667849583495132347967725575797535642680681173122943062942856310519089854340898906652321568615945276499554450882974384288881029777276360208000151328253150269530138842730272146747635153070862521160157866579519011478220983923357455392058947349657956849921233187686504489555455981994761376998372809938113110181947566081976661804865576004344923744105452694461938661079771563940892138208925261759518111927046638004798322809562771637431899901853438915295321765396227982909871236096115008164515904426523300724844910561363078562669640177988413739864747004919546023559550893954585662326118870257336086759181507765813014785618971871334240397757424520698652398233901357166727034769090732309582187332802457364202600225305030159672283775874014590415936790550050110685865525483036095473686604124788786880379345270848399244077031714603527652627661683176968663391264540858261953990288667577530515639097817539011687840362790730674183156505233000924713263049773714113282938615487637646310187740721456358251412080461451881807395439104256695822735400622954040187790395561354935241956376064042464953236336908339942958689024921593425781179168166700992657211740111427718710114386834101955003576878890709686974599601466774284219613540255282120020763431486192579111421657561959252899314239206471412173902277458228269713529732512259232052216844537306042064516364048716141876539669335479932115580515755872494581276377854843718355858327662232079626651207597919920782729868395819678287269870159810034125309940956735493555231529823270227386370927844334170448809660285304836034364280261651723086287554086169390196478917082528403908795685434103148981318089229751684041938639250095333259641056021909008407084456248828817903346493636805655701911709354836326364087846602050433513448933867422233768513915692743552419830931023278624524521523308284654514299145841580901822512693277173048657576178452054213576020852472754795344621165138133324716988590434582521431813456708158948081129010220402126127333686630316370287342820512313703584613558649104506954932793904904354454166064725125985070992284552404355660879504917880793969545963940814520456933418319304344347965688336569178238324785631449110767104349212541088827423903617311598128987601801651474846296882459823088969237317024128119219746625742886084459218878804707036529390725651112979011290218063165627620250941887400047539562623853581551936994443180504105717431552372840524851339704280216413544024632945188029217667493786524087170636477981677594030077216761710614808456235880544160818512999868430852794563849569472048724646715686253297409039608179581026651338154934757558015721427921382420578528113744977421834605724476687079583968953656434357439319976294933486302707591295648285342121433251496908071470918703568903887873605877947688650449692994108867406813303531844236122875156348645821325245893602137303747961587833105825033062867185662054139994505405781205049842250670096884442075437944807779223921797941972856213291212025509227924189592940062664728912046303251042514485917456751677859801260671225774273817697354539207861988953586487070746471370514738536976922340000614672262056185542008271267470673584371910221729441783832096841126382151412862708521644176591675575457032528568288312361912323672361461067769107969294208244269816012080430141278178914766774367747546828656437129621231694021050581171868284576709881634516258973983808170308327326261640759425492189481338127234080212698497619459218381431773145610349793363476974443015876707065252773426037053738507635305906256640451901633016401899995435235278855033529240634126044494241252386183075846034831455176357626153591554443161217522920094831654693237330541380691604657345430977772741372884145556249582374295986994964665005662374071490344365344720773552400389091207546226682730203208906593240813672310718552436674580697328045527513797023160865577821139971240243095119132918962218782626109933239973809762894506486834909699588624199778888111458407627954490293635999471647748013208679241263122766438780034583107494812859468608550873148460496055554414833591520621342237613182133763012328394934985064574095016483783311389324207343041677041944723919953533083181267347823866199903794604976606287455501734877962103531833273601462903619678095200783419166345331248080821576030273747513594417851802232515910731368715081303329177041050158581601084562406878727938586930318962858425225488757412880954766227334817253141662216976875295681719245101402846866749979919696643715760725002974129354409477060440406540886470377270825847692415885515858610329867785453833977509317680931792546653202416849013655385528677430130521146317347677632469773015630319126752247159551362770507041415234364698237566235079467980738049429030348891349387921517585363814393572420802007707313619851852758508068327126085820307181906541621255022090870812121973542829757195681967196141078997308321161692115172427944081880830600384790606230991937141003425573955794336468606666093119780817876888221694093965868981988407916606978926373338473168329095916766098587882960741016629448462793099896208487345290458009614021688729482434216688056513762926739068075872825312980697313160473489986375193181908588816670094370646068683010768258916479192324018418227879675883379525766781596562700836497193422229991659681462001612647852448322672429517528680525841831536227670981276702231386160366165476489832909114940960283415486876769662602423314499209783402501601497212872483549516359913151285270459966099861514176961195401797655909624343725587963064343797387179525366337265045356221493328597947720320026235934089752964376365148603512355577646060653016749558754837324915160761596202386224612228514384815071811450750977911924684959780538462728293139662231656860853853893756926323752917366390823425825508351120130987160190397573012409449717882758950744068582316562352050049667409706474369331317791747320656396170384072967771420122036200011719489477326774602452605541053501831687222672716392115784057361855474760241654363242862108706350688688096990808543072512355938366204239890372350850820883402002115191621844763084706600528680367238442283049807486526379376010995922626576925071300641681582965196248124570536460684589186167210678648284128381195193398901235108282716525450979021706357869703396074678328059200997063203800762740292351575165397307262678098322383290426656888798069710747037871519758972486049073652963057829633084952370444696641829141291308681523616491713326964634425661940570208641838726117855043744105561416079390404582227787366463693534565799215898170844197822765394248457609989184654121547752766841109495803296044177791645332781878736538093935755262766270153063884653655650726111238554303343511613857180566809536686695187176401826326494997875534845864163173526459997598277799980939128864585619695271914036258089479126989737524636043377728844773495556774269091418230733511920628000905057545362702477915119131051513569348288019649514954877783283128425925512286095701645125127989999685171681349733260852046661661875757145282130202675062685606626948244627459574908462628940155670716908613505317175835221953574944670023843955759953041708091080606439219240823665447323167968082298940377056702134928488875434149583245365184105722999712525565291469395811091295510010847018418715860000129987134392915172631134988483793473698776468596789457790582323613276037130451501865151724303522371843630828219353617364623887588034734066609371902297928804502740156717752247704881536939005109123532336276959910826416991301693148568786657127144755525884129569926798854944768401713010727000984688806409796421573520804186603758059900368091049708406216917799220209406281641959877071162276932275632627237208541007032164375565427187116156309499911426491476781228519436276096109333582528205657393056421503233372413072046337197352798083004265616969498786614397817070202693797831365455196087639236330154703650090110691465416434786483407392322910485021684839775011324166348942978841951534339138319710893441990830987290507648240992980670323014296564141751877653732318050892987626183153033143366317370025267755947109393375789547432644749990743380070542168723264931636243232049585757696088832990740750947749482956510931479760990191746427648852449983571269656487586793840404293993009772889957381707835726037950916336536348129338948920703711093874087628261460292148386526529665588302001826118351953633719058133725008493790892907970643431768003372338005322262444334211965515579521236729111753620912670835476861875172563825445625279748885586764299976746403275352254463541470563087596134623998036063866026751547065496785668937094176792143225074428241713551562110697689611599530224144001211468236197967215699478491631618278067052749370789662806663396256577883113127825511741824436962694597995338765931603871964377770984448889782196825117315935289429686210376636898764667419064352784503434954420834331473103174807301597449284352773557770765984261358037514557424459675018491160108253994239852950315109660842784153348443749058066133041554907691575382474022430336293942361240555482782592158510532634450527582943150840235337415327318343397194196600935772832524873184660969158644239639031750186289908982241691091246957294604949013786810859180847095973697492951476023320390632951984701641796227182243461891348843433908935045275806263671932769761941178438806919475877878602128510833392547948247989416186079736931602586913958345462426957572360690039566697826666898916979330623486162459605729538422527035105384900956631707943386588757141444114933767763308475832797219777842715228191231118509854697145834281885914351244618032309560735015163447463296210317097238190204080713706688021091400807297068696226914211265469082776996666580163111551706267762863908005270210622142413732128980711446957688744705644538995278593005451594921544023670429627783871453027569555492906808415096676110957065777254002218394363190989773864609867004000752768116655949500318645689045190228342616878021752731899351565569239128289310993792739894657532395563131940279437422506152911580693645486367781295194099058676317501902806342803185558456057125438243799222924124129932327452438998904806610664610589046684689091180882433801892740501638584582761191906847159497023091516816966377224322238189163063385566297288791987524730280945994285401550747953781505260630657431127971350898850634861980454489741513932455158679889247559036549251386531441026220982803418381466664893565830257998872405053080333238978163466097381179386723580687780591217523833121278302755591116207067750697073238860180266822535850513447788505195049906546221525811901823379945431483510442460487860123891924537159139899113277895065236633225539323871672861123486503687445403144823372780613994741800308167495470256185205775495646578545063069801946986903864227659153125812146632468940762425398710887100932102824718065466080186273902055632834277291532941550810231658023968415397253384593243462042469452390661957660709092550577748691098977959193594790149057964692917795552670855148988809321016064919900085872110740302490373953782160204199437547834060084242503135170985451019351129566934514097947662207463846722320473136354977245827409449034532344162057151615326122682602051861982308952629550177686545934855483964713314651893430237775199920729865625793343340369153955571936906252462022582485709596482836701972792207974318638885758943330319844178816564899163238887297060005081689260511277272996775108757057887711910374838941096696302956484279313758673222292228800538700702341593422826549989880214919973289794046148602296696208545135328386892940226532271266384422984407124470981013484249413678316290871157503797000721249371313429435634490011954289660109535001450990079111447138031648877516157023918021520388648593456120702000017664894434140679617534839680937385909165670005381966372116497429504095975377751196936724108466418876192284457079918768650716491182223388287465112759385718561195610726156436095601621449559123740528998350562741732593941972810631756022253468316516764583832613941019984773242371767914159316292294953964032427311770511367129887409277834444024402973026576795806544113948197090426594780794169450010538295098429697207455514264118150322964062946847348331069968692504104981874254308624516065130436747060955861500019721598707706481437897293933718320041260280998562191747023223696558129864451585574589209336019388410593354847211547066869205047608522165432971865195841760424717130727834531249336015497965209437926490095533866461110145496479264640313734876599656377279845187082875649864661072319591769646583258069179945831224300904771630171275124577912388004397328708111397163314376172649545925769940312933547138603869023535003690266019275329416597720621388056490713658552939092992736050568318326719820908098621520498780640854365201527811636676943441380940358218235444017025448116777632704043540209152547492869599714505163431473031447666043042045647556235054946377219229015692412369933606923640467969139203346803688460250349897686133397182040236396125703085893048862051965496043263111822880514765204670797090552998733104850887307282204853667584236224867158310934492139515232209849524607342268611225175146087252459285483103149662837883656563845192189885964299542673422586053174396662273759059307961094606490947745197353011114295702079772816961583169940627286541558008394692194371377511709885733046860632394207259471427838962051652739317286939689603810492394972954150135162446683240588560189259147817761340351928993098968005116129996159758100358220294207176725476705275600305198375148336358913524404579798558868234249389691297767898776398018779904896455707234442715036516451278081527018385584615653408658088433346274574845050672996226095033743912588456697064451904334408542187049272873460510457641475322633464234884920269678905362354365378897824245174809042370839802793229689011784854427615761605229409659013698811119669449398623636351636627440127648443092469085847724284929752939434129413453154997521153257925562279077656109627017038849015909707109434280201484854526505468954968086168560532960518629714393981388075044187344897320056731746945675131764627090675593240074420155563899642250795233672459197642514610123588518315159091399766802553163785502733925434918641520160141926025311215247508525442820073098566394604699864791956697678463448738385271062367465244404910010527235523502752903905671642621903413315933121124936556042621359140369500365742405121738272651512864422866887254678361584536121495485461099723557773353419777080588051182616223344507543425972530437625242860006270489061886315201411849492966502001963005842605734937222070557531705285139433727235445101031586925908407874648557533897991933842970472232866503966257315809437735374842252895108857555509489898237822966831587643027108908392983704842182839161712254115878881424070866804561506328979718988668279493632381732661439508841633421341095450622794107157312324787022940638327429896600856536620482193956095651073790930109175477044209468511971544212273746619158311869131227104160198601412787930293737743690966292810551024108297453054919252232166068414196276397917459230091414434535975100680885073030730607002770214279966454507518712196152320921162282108880409301748581397050306854339424496413858762543005315883798550457454921958238384788033158058387432606738119072651783496919110269496483020754233895995970646329192021405913065833271478391183641826376195345872929819957006184275448280540234554971005519564899261540958890847316355739545327797709422549857350966311591857137813663873654729447496973376480418584290502985517583327711642874157800431717532205301839420204262850393852433688120583369304061842867308466647549631138477817774341649623183570564373090301978361250178988680507352607471055794073864589657861712822227062806427879838523458575767057083022837167345229197550409122266601062504931284032607957245705230262188702659738020666369686730204520505855408265451821117045614424349635608062227266151489664682645732542955325533212056703091509718700763700165038078648493740787094862054456387091798156796286376422909808433188155587934884028088972485944649428653618272983496460264287774554593515751592957898287433046550137466504995085486907089340028427114129287098326816738673031724808360564279880931700975406950495037158017340080429542679149308128129392549696352417658049066500466376227196446042540666256780928762141488809100721548955658811415824448997033476986108004086493928985362107910161594718136078909563440195575465635021408876171029167071920731239852916020600680772805767532243044904108135357323291575108570781857603782208989619486429701779830543125438503663332417733075267576786422057495392790019393844024949724989134745036801661655170663824378921365734040060143365083111542144830713592530162899210038405067434236613293229808288745090257531608454453721972261802823385887999501937766382024710502418794387544957702065224910337254038779829119127742270217394548015399333019556828014449754083341990993695185196067467483355540718832813435409279383477999918102175790776863710679092501367707875262931383071241720357438439369474299034464786564599582889358882067185820885840688444553021521526311543002929943941731366243586100369620566556004409195747866878009487448081387604999230526410467549874832109756496046233080135716788194227269339489884486387329361839885186741716066025742874412527288883231670806666124714722914234762766334745918527929031260774441731538021885430027407280719530700087014930834474441508529758937590756444867914662297045956459691614819381429841281436070377283928750935700385290144821074656579645424757383176138874825044543343612370047354789339380852732146672250478746743792741223013692923871717180715609037072942611104296463585000293625648897039157272447693232643270690340150324594241437482469510682031555444803932824526941172154037412139016833320202374720563883770777240423927998020963927322496821303922658506623097297667516960552544202352542453715226604793654791301259247928592543572405490899591260453526563632932636101242097197215027025805103497938021257013239005707435275055147595269141815145873650306300661122360947078041444954350938385159901103860659885047858529791734108274517698885043825150915347341504117492435930717417208272927042036005731741127303734164130971398633857175433318325671550036809404226452682891827388791982989703512783167825287176739110420187264963036393446710782672164042734920935775293694597078740720186780376379092186387724945412360549027200057773429007559183436453320174442635725618182989766702973989975374268076470530913944287954359654851812489040646568693749983212458157212245033604621868848349532883975373262782167369213492917661047346525451868407992322978205587524801376062154361837703998164930391251319314120954773648001652329090919694222493624312119077105612186641926310544917964525612565086901934120650908329417426115449664362520877589482728326290875376780018880525063496378863928296368646022449780621167442433928618523815633666533409321534579290223188480377365077216246107994146704609836544849060106526538871923749902386989610514082764023825388341074104241275186482505906562580215281472874082209552340825822098613587503227051479649108069148319215583188895816566819862750232341186865513189007906123607777148623149414610852747281621164430697351560093766752730046140233157855811235471502724642168144896975450391397845237092696874947734289072926875254802597651386427034875742869559416494706045604212495148517534267707048211643446149781852649323043193623352202598920662707288274879786640922479523605355179756728532684054029860124277045073425308603903744067306263357618657327547087324069307549641618279235112929282151901450765346993893036919601042103970971199468006710237849367247560903677555639098440453850968531414021190248566172861384278182970294635421328597401154864908662891023326335650331531584483215408705112529078714365291224385942773803359081011956296498624844213506559734370596132681791726665439204187344222199250100428120905921795737874972371385551593888752871110803329409356771685446937628291605264451986347899609696269432888513443658191670739149326013794728995332535900131938541779173539237910161463134549738957295309088103544339884903867899400319390292288488852263953131811421032411527623062010366439885410104044232024062816289040116459339750939565383814584338555171139844898566099593499103181048195877110659641645245644025503954792499055630549295244301791638652644095449648763648689708143634872129727348792473219960803577648373847348366225880087370644213413829606307358648231131850700531442204655281172819523731087704211569721146947634319061220112537360152395461716256214747662418804120531940341876769522751082449822385705962539852561069750413548119499546101217548744079936328287166979796962145852031558767761668043754314732857856367317022343984448812328748925944774529698242268970339889848064509971154133715928981356219751759731687397683695860856990342985547785907388780896782997138284661025411299495111593974340924447264834995482545979221594496288270962223145408784519706375449601922841555419708609467921562515908705600822722881809996607616410795502104145184305715394765598726376353400321502393470472915105559684515686640932081597596196218192507727072939589141736127088986550937566754123946887629817002511258559506091764189914156839022403487253988298729579137275670589561858679641331091363262419503356866871024490891030349028180594344767470342616753340871398672667903815160472202681256734864740274515610578035224413357573967486151735089021794401427777187825522184190757765048476863282878548433984581910333473854570876416627929909215861421380268719988824185440409024456276270827901149263076089759324066214010608010432727251813121797110928167351690673498266871564993346938238722726773385752535903204644957752683269898457149607720532032535939752873813391872594342882263039025175018857952442220674984944028627821544704116302540852476622912910001337900782070300549703755572645301810184482724610915111091418935254452461491111729391445733666448827178363268266473688566654022286833346974178509469467174912007084196644947133242135763173744585101233648467714581938357485380385759801066290367080392431569632081925995518231500559767733933964670403602589252073398952406036266095476502570240787208612909375368822610671522897538940386677899883159612791632370543047541041319996682109845537550889363622040841123614608075533137041091284609613849960967535635398400077846743753283465884171604641465830610374597075555785117759330453894333554797879658532033578111991417416607435285568477900870570349168792312925005651568939193037151515781764773972735914206436263187336550702536379431338991693263761865361706206696389578683300780956498926030564841999178944213130396450411657501410758569206363109784686688990938582633557641818373187316712148437909323200561880695157051296355881495711612451375553603993354640559927141507465237839310251414875473101567348399374743411326960607141098458490452763945062649896115495729583366329830285558384123047482073531232629631525564373334352297365602472449781851280402661787459799638556034239692084766239536127197847466871822628911857308897407314337615801874125415375617225167138986891445895169245945422148945293938835941888870035256565728890517033448922391142987849702022885522944996868683049094720124458974356500858021236894689953517116382394305650655293876717904289223481404785123422992864049007603161708997025752417380031341665058520107748878468064312970120104942847793323459378787029276283277898836174217830478065339414252232024196226599263245310783698096765163662132173516153981752680600124232065919043064991964382185470438288508080065103852355235541129014380843641205888853557341980537590654171483310429875477145721650390986324874072996500468931701828221982059346199018070547957239919095669277981581798497135765428413647068821491631770137648238098770736033301574976550100110882300402365381877366610344700163316119019515568570870056464312907354224614833937260082626155394900656001791739439656176813016276891444060555650009308371633948316159139782232606316083452927766571313140623229312834327919498414800395405956388253604029884934918532929343256806371052531972561580866486409177355533678184721695633778371756122536870856593858061122853438735685982992754354071267140128416447305554143741055038980577597719369321175231943147470100958125681570089753437394137604537882861757945716954560375881551434666749577586180565685052616037474306343511963231818337237900384810670265360591690938502147163859437082594218267226295621727925995687129570543248447102979144799146460776808538685992020216830569654183450619441506585518489451399600599174023726981538703840362311660726503498766434417032585148030977458807645649795382977250511399735467467397431421340018382406208752011568103649502093374308011346176101149464045512068151478130142983247890488305515315617170363291538711808211563370204196857252259550885608667851917996540745119822464196757213802424994157946072018740324896432501244351137759401287170170637632462006738032864297471071393510276225455046527399735107115925676033422836405384048341882546656736611179251970085895681844065121668169663132165827210310611278808512379383993484414110729557725501007516035020644426742151557498255920807689689363812819987918619887400159178943560048403761121468581430892892603699572830930913870214480730709293552497838151800733178077280920478913478205652466660827657433388837337108256156726878144273715364951814924998350350486632781421545696375882268880328298712318280889756099343663491731556459030251982048295372046672068304547251931412078165202816169131652752741080506336158834449763304143071564108921351550890781858506438535553387313364224633886087036233448705667895208994383746217446445355154291991082818860918068896364366933704488166176550901936487236162142609616890607028794017537707100423277170428864904093661533965482950303083779938265083664002279215512995863416525331040107770656465132784425695342170818242057886783427752639174820208584376045691393666886741279413710006143259533610843753933198391644038202098384816139969590987583215280139903141372049062253221703084021892628218269071663242952400811654376242588223832708389369103566071849920427454031115286135658776964462264423394428026673201959460685366464521801982314638139737121902174174832617076686062666807980190142762391793500865155336895058253738865476164836554126011665594770581578548276811510889999424442402649341352547454189886181163024551647593074094058345421702935050306390887530546212752085047009743048808594304178798851186469264555032557344832084075717368726119760845913460538702503924595739579245373061403425575920628696977576736467700476505140966670154997522996107575386770157857976242878523046571020870703372962075299988551448357562257561151138701837154379902263503437423904743049757878444810507456901397768881351759531532778150894491877109359825164315829475994593108567153791449731887587683860017762399205817107935469385837032482061820844745753794284530879795093294584566260309506642095623590188247684913613171901677692019571425755405270657482175433283796409806156373798338365256834076918444584972036176976668964335132958861615030430630521212964500869051260949675874888260264374399287612707323762829900240896863336215448259157879209579755382091778461410664094636087914007831190064242225088022113347178189482748670230110420575838126246390355161639528009087541446344841736254526155626904181944523664755023119161774006822645789013366078753402902272183535812350160801041599395672518271982556665691295344824643348890536703544055137462785339864296631462384781606071971313362713470182282339645366915355111862150753774695331988272617449423043407320209137279550777061669555396151437266422209773822253596610374116805272940479195588019627579620422743324128332595014995879127263435800097466066394056321609980356601921715371610151620919686191159834203486935180768541110344597251003062321343581728344965383529655207592861733931192100078677232663607810473047396309182979492325375318255882508293826499308244210415024260885056217500810089093529491816350675913283445212130024679070055021800224097808477347912762970945462835548691365442160170311257534691129023735549449860595501548759862948753577760718705289316141733836075950382713163595398247876410574497278106752568173242859186104036135940879351250455862375609684451430374166880180121399404574303024983003505567460720147767412821751602645428477550809035078208948891679687280286296437448369118403217747556719921956938746511155608947515484528703720902228328695060410919932139034825449721296253524836972946650207905060822509025429851487921790035530698012857908993387149960927026622983824860374350807171513800477902883631048762433751509777843755410468229152268856300787766333700940211677491735805154894692798712378522809362406451249673484295308412328832130245773899276501831479002074544979997589778213596899618767976639010298870434681159110324820773197461630687070528613758309232627754368570878420348107848950277811616259178891782187624405067986067159501565688132168063324055632810884173149940044048595295992247644084447954043388688115156606352632436797382985817108896765505078677996374261894207741523745717066228410638231530125757479835868649310792412577129132224437943646715353217590946121748441578722361548252353354030148160302486157547110253416469892427708649553707253664044813873955282069945372049717092667142139009136925685975160588653828346697177585371866755847659550057595116502660282133160201854042276166435822747876915286391000777833570216946995383538733440333264916622057742408445306337496044129750143287992153530025141656160850833457409388189989230457387620729025415138702132863838104222374916916124777332078825206670985730767204766125124294486501760330498395583671459644748028485384880665071406350923343561722234100635546401421293619729501706092211081774217707527400868691573944622678809427591673573966010495841954637130932757162734019455960084393454214263399152751528068555385166263297842967909443363668716688485312195902586278139232979697889164416405925556536415301329874561244429987181706583051182477847383411475221418142102746889732440157779954183901139766804166645769941269394513042966532358116596871921848120370606937257426220394266724045367607345226399032686080583096147577182747682083837334383627967958683518730064760885348024353614290323949356749576548963762800086497519849392724642033752726767224284454118260917816321727080462186665624072957141413490902649777542420594350738460197414385039113423122911616537605507492092945110009867369293358424385728042199126800100745192648306345028526601333451839586034476139358001399834291085399366353965525135629252931748224037031774394592647222125031694203406247090960383006433719236688694477339564930977399401320263792776374275594731085121961617316058172176237556952178689085308793246217190074583253852455425502378621490926020239975409552354360237770971042562876646210365311750629865721861897414573965388514647251233763530405256766985278142368560287320357156816599384748520433745791369284004754575979608906094865183575502433019542836953394548750275131076597430498435504075489843234050979933614983995362726591008414520229666410497512909297068969608448940209981243497448459767515859559153275579013870423995978935405793302943320474512720225617107835314745597133489558098882243976496934878881536699935900009139007763628017536024862637643156062207846039640403731670851850584325290668718182071348497802519855392539370389458715274840109238476293375471432225280960108320235712872918515290962192268807168692380180724551473490793858472133118832097578852349671895772445034172596152305409300239994502933446441187254372183252335829755160984482474319067643236098641150285452856941237123907160549410047383481114415834796925311153838405434985174316413074048253172294964106833957538086007956282046872463673443812942671485955249719744404108874525430193123062353697354060959374586646986923556552482329248833266187652259344862885089347274406028479988118747849471107349087707072700253368978799769373775710065751178784202145818819117037970391440047843814309227639650490335915483787678885720273073231052893873523362864044688872164014067572984562880412935996527791663333048896540100856976417932429522225829548111670285345380217740196023286993504447790066985207493473087110717137235407839120894865765370142745837113864372235995331520107075760341168933502736009972242798078312624709349095178953037589285126631034801746410682306225552239565513703296459395923806555753203053844148215160110238750570394445815904995005383406196938940641813187556183902944906074175028496693208397289286599410521980857715886977639313391449114208571378811220837567558560830885230248132661256126104402134538510857786510605280438629173660099483180635821305820358023178393307304675674896039484353661224864203884558501037386482196086749194653050412018348287393418739111354692221161149291006773534203386764257547857461254229761931058660140895534904962098083517468516118375581209304391684793615513704315578590635390210406596306898652294354935685911167879655747504164515758675074697088594275738110031792875464570921681030770005873598869769481877639794782875905515895156304341703333990249314002064316600650420576182166030220846385019188886062178543140239970562284814970587424819551848637090526429943591406645870888958901157705372409091059098638401409447632511174219314174449862484426055333974903065433527932728188746893175189808698532899037324787144841971828362030753717763409475256768645695113614115086739139201954252725279866252361255807283582446583981660200142953429590693051235954547924331804199851050461797852679630897369885664424024423437352758663822457277402147217539172831172538363397541299230289683589697298499509487721458533242687724594514676188858439856862722127714129146756917251863538708754726100191479868900916614732044479138364481525017523594663767861654003707288266272007275713302297206275599921598737172261100187111376661142848364447240276611816417771631642492819020439133368477235634955649044488737635970216475379876170414668807408992834331241688145279046965623842924849766655390211168265850791740221473349904598483962504355282808265124018236219974279621543576535865051664275172338332747162007166208497379908241055649887656939466132878881942653828412115566759354709046890320132073775308313443761348253709827936543890235751199307871232809124270182405670303315704893632899323954512515192528010666539089862161938381330153332052904446299250950985556834582640854155941846966048594265263169171396938890787123028483874355347473151795157286739715760471853958803899954194550175765778063839600850654770454198369040559238886528245233110951422242857449041851883363239271108906129983359951027866898566034561695683637037406501370699956149021942938204955646574010619014275364855947039520315607665185930839496820755265247488253067913271000533765221463222071386244156727581903275619464274761309156847536971774980998530512789665471634839610345523975582289671498767800461181740490628791924814454424851794428369010093024959059950174031126085400285654884944956183386852160836016016518308762087604293014285593396612893689595752305286007442301033723637618979717019167397661149297784997234127850330747154137933347188091241121642557367788106499474915653901346605976859264155643992559728737431113720125406857064588324722942345461205094649185462246258176255878986652961147055876270527147421352674291021685529527919216054466451131637783766456371543897745626105924172467502923628641316488880012805705699753589915462389964259439235995146066906024829031956260538904473997573761401220450412693682299163016092382854669320845444747238289049643486748762157690237491815193827722723310417946555857795903806764597869730961188609098625881125216573223633264614247118311010635229945393019458339138454221715276604572100790687664921327003743159765857200439584863246339439511509811807595589934295390822407915764428053035888815081034235245485042360150533646131615035772005412673117429253291250077443342422130187130424220244065959550249593487940667170415138326139596818511884291730293215679444446175756922366051150988166926052339469934868665074485257906579066523278738321925888233070164913471754605621185364016999106940142717957219174175603441341286622638626712534299814956182543418980662054271285421189537199109207496425831228462104895894000022689406555348186124474876584059718333906552015504212384280100027933121031429752517158560428662276456199820406833692926998581532519688926507218661835616843366219892231258674373412369200941996271229568953059150887758011559325334841479463720156516616661614152183318238947499575975791244842183434619458823313815412681437536977052648731155596632474435933565547964396630062031406691415022806657540440131128884856809215307196220397139026303456545617705947208325500240836128359400379220843881297097029464937129595152502788264981986929151828811042707812828629310925863149980515039237930169508018201538169228363346894914362226056601373097677032967607149484134967524938906174698162534778857577331516872946025358067268386465783494385238005952013162659335451642158836711680778213499104133124025828411414842117125341987900919776003856850636440377686912629491162453563322496407663189158955491969665530847853732073204592851151709258067561845609843605934802396243551120231175843532221960847735149159473276097971027743946179531444853700323869647370493645038225204721848446435552024422992367205972055728852280849380380489512174716833161053413760592826581741256147934108819388479110474115390841268836466663307872838248317992473890785923233918582876331754597790957377052080769867761320762629330193706637755968296166666941075667881307831903252191846602778910879487693637034354130998344026573362274443362158299777940189961872024711524532114151611354330609432483363013954737359080006525930372875429369479159750041078701491449427941895353034175782026412248736627932396123615008213248656969808703225692392495869514221152231193815232834120833387880641331707977201234391914931250571985883897723136912974083472661343841731958164755550624145231994591273990405733732813444166170041802693624911214943690876700106202959746109347147184796309158289719432308567343478077192599448132294610755522140898486083359522818195570005687931443225325109921099509019429281519862872814484908675233714266623427765994855442633927472924373951364984071516694477648975673007343361432399636908858191799577785675920238437672454049587837485522621482972016460669024849111201056364275244073502674712798816815177975079410187974643028586716576054324468444937616100400366315856724426829896982847069388492774653691272244370574094997901414846881224121966443641743851418583218512387488418395097936573233965392268122749965355326855150396693624313857434338738767323527352183163692447957869043470694119934791282595939243809612972941796266890477957728508507429250603041450834041000884119570242595392880417649264532442261637105213844234442076915756937056293377935699195909476593777462974624499033010169605641114771604137037829225291797841563769698352839893368138589601979079501911284256219573049407093730987784086685859784961716180761597984028534892567604781195149581336714690003998962018256210712633442700659119919799267518616916081557619555148683170047784892922349732483611506720055101244655034582466862241808202953984489187898172011331845398102817667078325099218434793878737646941112379408305481191758735213525539029068617379908181023077404522372061829442183690559116242668533479550335605343403751649036367239308282056260066349638126761952331886861388527264011283877927658127827202564150698051634796905082208530034316869419000450261351570675081365967670280763560396923790817755789911558986644907325017772955236640568005444456198420767807757538920829221791755276746227516278633824578567818911975329038318999294430460213013293907647232188815484875677560492354840378779965048663615530949201779585428863810994567888756426980079486616247078775768033973619227137029987728670127232217645346322145581880960868197117988787598748114965309395333806045419994718662844568413797881246491825362066998518871690815861520255786162660572855545433481060678472423642878249509547624210445623613752173083041089171974503614844329509882129963633609674266854640190937367889219674718040181948900104255503765829996738455132850520283888721867642464236698419156013530390857151204422069682593556157989871776033624748145313959225828280251800655077085369559578163725700860765201651773490180956382843235035160946997697435454744326972485792538303045139428002011231100215135508686251891519588041445309421637511004189743324596844100669450324984674503716649914574117346823554944757723770133293894057986970868120551786696294802233769143851886298699017285807936059685333624958829946521660577314228414748690459652989386129738958898864198230954951801498476257704098332470117537862792002735628161188573803484352687015903969896137888135331281977267311361330257087175111181350478458759462938181793965043419268776705597710636859596729236681872243643518234054105457151246954518662380786223822137411343731728332895528078260994743172628865654618688180618650521322403680248016316613708985153082344567532083946822575448764953052608177861897475049658204004806970338250603772852016415470556893553482619701483513609381407283574406100924674819691560849989600145936920587493692409399784508940391303454822883781523068277238380950604540605816150760309811671846523141422679197315829754496908100207925266999154430490251860306542079659842255332548809657150930603391490422683202474077226243300081257869943403380061149023578014043638992544555097095106878234884948225680254097687752178355943008649706596209541943373689833771416864692712884882108060012351698120589504049154912733392556800336728170926627803408919723560500611231417093653034249579352634637999440711023845703346490647984624377692221345142988389564524412720186138884858882392410098282708708035940730201616688195676748959173588341665333546121568508111534710793092998777651358361360871204018772334475078512829322422614908886447535014073244165411974321933011566613927874229486723305664520102591622197276332558424642464809958950335013636601693222791495520195933941650351540491943750283380114642513819479688813996189028164348761966697883348103101834720955419742233442105112954765652912523962576841721359034930333716259023462156463341945962674045326851378153747101839125300962238070186423639754701364587434457304241254726495433915546134733919048674438808706020241596106019682948058931348418418908135250720373268172173168318995171754233526720190311884321075893628614038177867366563993911219137082356648939754179349986909028533867346809031441994708258219795681062115594307589466821994755790708102997633598568111702370025127717464939026595454627439910193491307281760576854600902942599999199044200323329562658613487771192561337106556563090766239126010563253769896663247298830130547254390728408800370502661934594567272508262423901838627771479437050085434303618123458248373142458843621885163432589245610276897940782198867741976117956171506507487542388052950021280088287302002559996216173799267003722480879779505647285633894333610500765083272736160975149150603343476801973116932516070571038121255533235601537915230098794343490384902825704369153565867043682815683993587023072608799129440799980802380140267809959389999460176694790526170547249762492539307149888120447293791627694938311078416440360864538835626000980814713603541931473863905575669270302033356139841759630833890700222363588265448233563131863416861948486846121092637256246183411201059387071077821754801097534043225475172463538563885667452767733720414611118383574200954913755791223945263277465650282335519678466303382648403846974995825702612614645669279457431291813371746427909129192617917150838053522283535237462917415119283379046645799741544514309481003131840271571173958434879459646086164339918640760898421716272914318207480680674561637600213828653157739787144949566521963596635371835173179662573792347470504846721383490901306254637780343413685993664685679607331568200441006499806008509473663794194462074895491977311047989914804995728128918474971896105403945803401556879441071557114756364586711095975862163187149906090569902740124567557527222048660507361497085162716320471344491574996233207457089155833628387848156698461962656748204390011271932502026205280007806926007139047908801529445976045403948281278122544432025962006854590865257989593435515084212169922552064437514261961187371063895713261726146939120654036798520383605218747815927053518460812368274630103449145581519623476944919542365853346922670455127434996830660473112212761400848825026655611709838815570780866865873666805745907144358586535114572077970756017239880043574968782746739842892655620578245773435950810026343376655191608222805094296441874131452393692196938118037995776386563611489941663430842249729411262773308444158579570664298536124961007205342758831226248926980481179122009392843060340093862400094238719150934303066277245600938229423912423701986300690151674878055780757240795152318845312917504839335239965629881503397753198287967688615828477242921868360299797875097547116812262533569324702919283139472352817270805450308051215539652333834212714230374605885670825493329233545978361357395019072534388137179866508716780385262484693768172068700527200682041649235033599394180594079276950509244807078733782606020371794603317656129459410293624333224170962655953711714768335109379648666159218445240338091330099042891633079038457941390346985302907736970831052126208251188943611199244395370197969923914025682665832691681033223175881455376971836387000815295361876846721057121198185634554806166187803496261470556271466428772184560732515307007031117350824074829293029348835481363083243585178331605833707377812931739380182776763218390758723617525883035454789228376159262692869322808034572107996025054460390389063904501398421142170647557590579938580058790076047017359185325148155962126102337615817484045811119527904691037795895164607181265896505107868013177741946227677194150611972370718813976800801719996772133304734129027012358651353083863764428440517807291312158890102331331485206771747053499174896257184722023365518546874822098364842740385977283484911693863094063602425372051594276746394120583744460159704443275963694321540647187251213866861927643682564979346929531496695259893572467363675750317583879459743749076348740688107782638175069099003032421206603635642114673610722602134709356450686074266540328840245924239700502837874079931652403548824393355135377425475131919909500987683014331843044185092295304306197741235827215016304351666635792135237718346059231631103929864125134121216749533284004499289058312773619974847649732734022979680700855727377800721374571610981504442060694848911635598763074268596610523657938222119592103386552097871321731078706735520274164342050444869897449683176940399314575343840718596026739320079343310823960956770384914019211707599378428209466834034747905718948703296549751174615342955160598820406170187482927965576771141030696221668437830363136537104046424247450578300403880207139795268964050165405115499578405292906185253368249155479774561317522538400401512817152997445689302221215640984747972249560219986608529900575682254684899914872765865230674739217681024556202187152205688859283622069003598073560045547562812415373300050068569488112090385989526307002695358845825512707693137731041971466026697710168547261316501043154148313753839276021207447745701191750652559336105720393458443792982169183886073339566875435912501277647481851732942301301212499634790472551514387003536076511517389329252158550229173362494064075549723736714772912967964803370184288498950935690136967310976956801318346308057620065174785448361168910052143607075547563768763910341577452654420096433113683378933292787840751773819769218512258245782377682105934883956474748110754525893398334802289759903500604569238569572501522716822319299986543327178033099013566873310282149936973403488339921569466043358913750370433268092730986163328521299374974753685735838060231768900828108955415674033806610682992226211669619444085173235555949706585192871587422728860102212909179547083789034418142272755291183120943402829842430642758009442811940626299077904003905034208022186867504399833963651466554959803093800668284933872327768641293915878038998947288396069026790246328292277102877256274342560273139547934393084863991786144378493630796035352878172654789774592352209642509905446006174528664135558666754240090015132448824876851677125759430702419387681638888514722904046428494007720609196474774847596556060087694682710324620388699196637885307855169087728951436985426747203015037407261762524876240465276964225775382676280833548595673859530341057802906865706437936859742357418635481094133478498703823064785105584755665078774347463034166947150304628162006066221038642458266418913783644806644278111232316181789815450789948559705949602188226884570392878407245342071701780104374326291468856030825976774996056234230875406421611971772399060085383267843238395536199133866157631849085106357814235848491241700262259788218758907279021921869905567608389926595046757256403732466688481823281783838285416591898677167728663699435268148047130681881228587062651772029960246721420845814676926361901273185645449721222746038334602506298819379899835824496843664925234882905495999064290660363806789815017498682474374152292627395455131322881551781605674354844465647552103704913303855036063583187452824903616704644568518482086367877625026101346529139949438664629363186955792709267221755888904006864995010733451005255467253465138883455650638438764469952551614200578987148255802441000655032932336940957180053189802593404892804685691367432383367125401509794389608361950822006700327289169636599093696883904904196527157857789274534928485765322626551902793001083440039177937981023449156349190615307316314325611304033768185754751599152955633722552394214733446483771614169774084943029878842582797057175608992629146683699078647971844945156636034816345925209582128021636323738155890986416319323286837428312226018839946611248881334229893519059651561240284740316787994339760106168467464141608380583765070262589670707342883929792773251452566598052235963745587527416060960867708284267963562265926636148752411134941699634023385670754569039764812157709938074956185292413040766687992124628576675787914464574781683174000358341513400145343624393765827380672028861146424790282142839320720695547215425489266843083712908136639709358746982490428060435828624245630383926390459530725103210151642559638354998070860146413693350328386527407908486182594940051387777464013899523830415365349483027531476254515614782224129228197705240745463694129694761628856097846854771693155598935764418635282469149822368413178097716815640675321343564668878682126512686542339464064308061780576966109281286837980033801268606915326385866848015710773926033494318673532229569378181290908874053242575244029805561042299994172489304314000114844392471367633375899006890269419168666364558373617058555623979261420849877677309499840931966573554998562071047117936397725026122964952113938008270839838768932865314941409925824334030088417653950688155617320721018426013159081461923244830809987874297713320530996160748753337467286562135536749056811901614126597018419724695528019076279094496132821142781583175051668594228657010354544024088207518591203408972752858699465460855756922218491890146362646511550478857173632472186150113989387662046658139529112408151759680129650860347368975695652705570821134904231684829391075000858953253313543354301030812935025312154673096797371752830535377769151278707952484441789408950105507102787789046833657790019041302574268863816505764595000695720647501991672975074112664513290524847689127767395055785522532016636212826156115472047687585858241824581176734522729000804309890032882532616951800858991543719877825689004809633512519509818657765794661645020950521693646700215522131655613094479192372955790228103094845264915505531330125139006603338450089696478136236196039706384828546429787409400734274911536830045231566059631278308778394185579937442442114212823531971079813392212400871523958141601144460371494269072309870187621192798578561668843446579515040778221786609883441502601145747133595373649572230067355876313341255230784282424405618942018022134090020654317517167659042066357095720600723351779363573020185650955183376862156331681885932043553484966618488877173521527578600912557019992890468051426949465250197946467239207088110796056566754791656360005602393019736151985387847007640701921903503053649979595141217215436343514212192074192243105215970014071103207291363123388979560777895767185201074266684218846990416257793658630877379342579563464826126434803998748587759201826068324092961986116440275628168065885135070506670103010951462880256383004180931985438314414926134398376966762136086785795964658143778786339800219289731356904344762090242050968681106877607265708527078177059180994794557475356810012404441265988988302472159530527216501402665222141766198022003056476257664432836698428323926705858143089133927925618055374379404116741599504071472055835692717122086021452132827605051808298046818633395367903970481791859166681122518056334358752144582393802225422759230537969724128787314383650315417401313048564529461028814470362548034144972383367711111504558207482818221322165411241444242330074731245306645466152797534105065219074615278625750918434233303518719804590194792528653396722579257048883882714499590710274462989922606236254417185896152398734503085870195189699811692918121135136682945602654695213408723890747575169736580298823114240930593298574047454120450308953442759999556926693150828258545524940434148974432773802498019588997187997543448031616041537266815555210152909367604489653091122654974718003667100836219379794148530772488487480681708815354842581902637545644968340603923991108880539162309458689701277542664870097160086608273852248149702141823432480902264426745934352040950931047419719235408851084848514672100738774866874785531321326486942773145863529758383324476719435057513928060855232188311593246642006838118212456418186147704708542509263327981754324274173806959157340640466222759825079143223013822188824788625101887380066987455797972234892773034328626875461335168665725336913320077418443476687669619072210970233451086768480425172886167933092250740934193396170008358235734297191005584315877037413833229881870585727578072763152981294112899889072562890413332561028938620506387540535732267305664989775030732297848298203146794581828134395396254902970644304485228306468959554954446799770874997843145824766365007212519971818378728208263205425247824555740304147257988728308593428992177578656370852577409108448252163819531368481085530354670656221241526561315686108609034833791190722566587624184583360592111471747825569189819712530752209888810330236340274552794678524785460571564945394590282367708196573145027317726831785236150083911729561835354542380762650929751297459488460969518230199082790606637640068658139084376801436525456967578460258710885464993045817507401445918065001799470660753790777784864496668310290968020826272860292201634879224414869100319276972795891563004175066189290686293698607828006730284809283260904097553078017926841522598743867921785941534001438920602624139464083853030938676665777240266052703423650074867071400564879811761960140437628178893152324611949314345918536778682109077115595637498698530536336985380249498421253810530821858616013792212880894957948668108206090307772314639154235765256375826300019785344282095768113973050327275724295404705186278773083574811284815894157811382063690080560218423801605483910334483421059719081308299680733381594637551020294137037521368466656265080192778877856010384395922837444153494203905643310738253773844847846518393380475720897542733392892911655325938652180969104645485751955144369367683217264262509849377432355704632174380375434803857363951039010657437067885676079037617224176285860681810113109076334562253252388352797784786991971088394827023610160379768823767745629016548000713036035381419921963789207936887377365072941191730383764142350780723502329835625382682104719801965320556982818891024265765349542441443131106925816412507498322326132846731181454896859467733618939048074823950701944924713514574310361849022790098506647857665531482070430054046223469059089708561580575978494203479473016641678998605749028051773631885066323171363791729752992808817019637169233475389628410319214463282435978833178585003754926903348960471192696547867310749405433214865660462850114173886968779747243664996496721293730339250415408953596049765747805478946583355706034042324721583989959510981996040669401228858706711265056981825361139006198825072504882626043330950384730892503675652455026844722173887313647308138886030942329573190663937269939087125326196778604499516213516902008286634668402943856777714612039984516164480008269000521770288765808197445871389967979034557650936522702938084242130237982227928960721757972297862725254736627284554937336305773081733417295639194231706638938896007668328188381859863086679203038320363690675065131969930918299200520346572070917323903360925436741163265329565507181372814584040534871374377241232446084881754460059937848561910380355356243650109059896647018914076084444377754008251738971538584620166224348081836132842712682869945173094010288189456942322568287665331413941315314938482389079579025074372206422422484546472914899805969391788686994064733115359367532106260864431545411864537631976957946484878413005614148003438760435069748087039211232928839951677415534948412635426218423244847801324405036570797161572251839307652540298166017698978716517304518667330086258903860721835391169932932771590091133319960825301103892540851843133349055199315003207288521605381021507255417828708124625972987748606478793288956653032960513370926652586919933218846725512916431881985376879536636555124428283468882316268371354956139052109236933927754651679452862228645044199895501366706550969436710545270405318167986766120947604701944559034553545081747930074125572291140962274486944284459394803057307954046663215354122640211802754746392156738033710412596765592401928870784286217104170986330007719642819334086556509583510699158517872423344653732214358540905445395247734773925354812603178347710568803591594586470121517101602808644444026189774424314708281419583863273842864605239164646735712582991141931882893132822749443216009324015225518286854933206874373389131313221826614724922235810616683350986826087276412412973602206417579748313105871120331957736531448264963158965465465591976001121828966673617690291340882782006754565355343579159845464005325764404604169074632657079944431238083118824357901202956111004395121076056737939628163215160484778725990021914455664421338838874696908154075763565391052479592117507008380882670384735789754432334571201432546735048338555933486397866575347287350350008413469530883419963653385488942397233519975008139575297082526380187260297890680529470979348746432807898017663541080763842428239373300579282891492378062235573599911554256181934482478808244181029480329563223817659648755006889239791285191165951211024979649429789579075923581497756461093285139588181909407550932241103014605250630682886497963845607034464563977245010394615680013215394515349013261588563535460621034826241071410533378442292935520795437846773404207428259497166533044892546316265183303006168941466262021024963329376420468478956424888776031755781122775313939361877358638735685979605076953864428885866342453808092112116575836800756178239950834466602206028163698773105030395290681798006340629085845264740728954038826623690761196369609743049799474347713649645526659962109576696819807140054379482545910330997028318622946350736599035494905063041533391144262337671434635729511692076914971305226431788739435969407688713003380931227914848573192671827699449814759730793455494867537974080967933523157844038458387366763283463483437243112708525225934382645380834940377884366482954312839429525507104990542532553347738949962084475821034896206967753683155264419008977622995784011060579136657487794176514904948448215812167502100056324101534733606357367837354318258801550173319104783070771384905524365816835739254585115867829681055919079179724108683562883922507890873128784653163250422141277311239089703374592488909936646575645966717575240151428509774219046309766035551976519257385937188426522961344714881667804093008025895550528487886086083927160405753923153223596958136849803034869054822148055678629677802613801944264242161348022952216298438486769023124590018952583969847196403263176642077290633854190247151984991196601402066195593588791087472607831902524170460378375195651016266745559183641426013826777720825938623936843905256896891463349298788783902947254088713514294724863381656454431115939483877408760904149023157813279922948177302909527052276251366173411293754131142024683629686530952440340213783235114384082312409175319863517542303821308655911512728594655637612565851127890593329883842875255027883323648917784159956271269728707412193562947182400133474276927268416006992200475004087259368002632650451474502006929875531683686669751359793803746352270081944060783026845355980429517183303232188381357521215904206211585156250628895347970726609562911708037665838481162038778025507057445351017312873436713686258548934819971077366417735184368102759662696423971866285773267538176519114350958066903640797718005044705464203949084567720935670332219836044500587873188709571625154720119158385986424827796889203623835995784286815713940231020052930423313896471678617659878068903986037677348898067512582888793585746517835178882282771483775632952437659742495862859979994183520391824899366731157423791142086448015543178431320376237127074874545591216640128050969703045706086761576457505021403430622708477951570966871830991097988051803821854610127916460452988322393750318137419761110154788586845908535637663109632560142052922251750412222318891363704063883831407907571861833770180814765492940488399745761044593390146034538195495648937759038233798465357452369161239389572669691770094346603892985876716848738309479462700487140673600445106779015311879894413113495279474647506335215507329335248127349690930774713499963498409927179968374533147126743944034727367349668797037508929078470673262771306531300463015664019419922271869016950145762720535226921307386660576169743314239417286875875314834420537874972509566143131590940284828015927635152332066677866193975727446583688619852585669500020233466969680731257615356924928797478618309620262057961452142651409294144890584542168239790341268587322530711875742546799230542712456422331269230451254631304941090550785331416852635031658226424486531931611439706518007685148552715891565015841272964509814745009125965452217120697188357106938508285171907455806291455164027912873523693260453133215808393559371478799182692722579949494447029147891077143833238462221231330921964143261696476519231614264057067010239016987520348629302912173747549279931898070923183260935636988910209715130429781276578450963073945465649701619242715498968644351931063884425327228054804712377130228010230321876370214249333767542417525565157430823953129024969480542387048569613695583816893420406082938993784871040617452705781900402650435793438243071449505391499012053325725923413422186929646512500334497230947199771920601888243449645997349101583902508568654056082421135339845486027008183279537072866614477118280486474752963436704556257795538304561038902921711127395446268154568843813290630480813957901500869152116324490743436327081952911346749591198775466255611699404439347354657671610004178391255870969009324233504906880887640623280855344731586762392134632611777261041241684542325290831238599083476768799489439647130928313812566645743598716287784768075470470697349489549226962417122081716599366278474510677936471444618157332703936800603668811381643642630549841680761063765492597610925590761290738336694339291707799086263310314300073071862906879900548086847752688878699627030659938194421383589541425451018830454888184599710707933180122669864248793293996110107671164270446195577137271214753048606164526256696249743378484026685824240745494166042354653886433838902009820189180504407462336823590099076187557927172004633474648797554217214137934562550707729452010385139137278799944067887285562892373783917325425282530893638661359962522954440725099821003275013573747249740530096868886527866678190723842133381093380887529238804191015410855531265270952995540028543201530087761541723734053638618713130900778043000886013940570412612518088026781295718671406390004249853098729509348041256315892674696766475344711053379862127825402072912764288016947913594402831762964079471134217625340487365700191051900938564219047033468652346367268668713479317308949270997054998488885167854341615592876849556365044235633004620566694771367200814545073493904398372854240463801165117749690520076515625894321061803500774370357205728853705307144555284745943806394287556257956558562381030270439777750483223202813856442523577925242891191935846579010540091615234720816648942010238886173322341780547817009153022179057594923405502438439606151971822248307141405628128435559365360459431944192642635419618922048068385331711077144807480672059713283177225468084252826677779045053313096854485904639016413985787161780836230023306669189295356413872004239984261402766320154174892983687060122715281883418623913574242851251359434773104132146888212135920728120871848269524932698106815127114960767721051203777372854163288344512388961998871477731223935927226774820522435130603445322722881601169143379859970233356380089664847077454678655906158701226535456831793739380246676509298817098364132885825351350304702158966022662146751343582004929570381849683824550973356860124302358558505849176769177373417017043047047039782001792196633173080392508046639912536435079418885336961164010195697503157726587068713664442607470603537996512688834079920580841498387993584396460375297791431160115956898971285186933458094906759629264327413827849238216750747226060886428257107751734747848974650344605993194452788636145828805939594376002161777809844672232840055141867008953663846362635743996963209083670091359072403780523535689007405420337128176838172769477938230231610260506401667024739606122925286995248363963975261873153542014035553348320006195404295586677644983249853953007112589219684940260705679999073996369519354278712103514865867636540583236411953495202176734878673783482284846171013658530388621651271930259106666708877006744174655833608253915911247007171447028031541533443259997866390724030048652326184550507102413679154795034891692544212697279962111981504135975784941260653995208530404185651227380847457638562869544070999303671038427952974983562266360754702071266582060525617049919207138526127662332764318175062687061710083949490923280829462658196389146435908252692894894939740876497704124916670391393260408675015742775093764803867021084886581211995721911321031236856690571448704051117780677560502658384988079213823664763729971889743492000043949538409029175591717774694614981841492348415130228115851091797025097897592374390198586651541802729936432906034197720312317012480779868622603841109242210053456818588493185952827620939174362206423919355749179321974663999240598690232467063027842079603991116814132000579977575308853728212704458254316232994907488917044457276656173572003725914122521635396595458836696264737299370492179793913577489740395836185275198671398510629563698235549074970547640312379885127552676325447300200123252466048096680322177671669591216033238089862088336347239996864604424265442295437899352180682048862354971138552541912437320935358808819386185298474327720714724469175648896265870416353713196299122979863649354774131995299186090750617517187434652405872512472199957311747440006494876767096766226684677916697064802209606935915105141990050290932823043663801898567941821421754871589933867789946014666289658139475596786682836079862348201730705752109483813828434403626500170202196685480778328453462854603454510020139521882066318505645125921313997182757768709943630581482632346538149936032673355876960798526296152704848162991080003511275448177263491251892510474450498560428253929291147469234870253984916820968349943639152579115585221693998553229020566515818509404887127521709278177366698271029445599872293469507688960141862643623152808521338281607740926433125346146522295428200025995498801149965879625112445489931194866692257154428065897101922351371370004539843868394190288443778761701073531319429187892598967282139123970086154245147699602036350114188982328395681202541768461179535996784038655836308385915843461325501045217333279640444391711494731435935038628822620980798846187017208157254403478110887807378799809132446697052181421704584962804541348667982993240662929256197717501944166146505053952047102329121387399289347407254483940088039845968148241325660988252643072769591842433081088625567692364552236912304664860844194008636494549868441087471207344518822846806206357257078148128161181334625723677100510124067053915464966529095165466766168205825311269767918118760439186537298516740807281243489203722364383723920313311153170645549977818738635256954139062585277093283990188253243698687686853788057359469849955029325295917769296231966747071387846333868037636745602575287790782756762298988198603636037030760492213549781749812040426079256523855070378312006713746381092061373387649536801706710694530977559482091682936329916265290729988217430083379099445332720624235702424948751517071227944724070906629867595492562513793695571382837182122123267933573701562870694892372498958116659067826947440371049845546366643866736095948975313848050299198517712368442280496181204033189253445820375855657683379129528402882400451941855649397921883435118183358138506329797055669066995852729976315724520443331888027152376744992643475211527362454248625567628813401458596531294871048784276852907223316670864707239360180679414471733320904736323933567355647997358688090622042722210418107244735984677500080728233990738578975778669037995112362556091949824245566186794539495049756436295583985758666342505827469208009801523424744421530439562625467422636594648637134082805537184668283542972605722845634452105666717913597011134636866441147584598327217440271082167471475055272575992227081362677579764548757044468543516131973506685152903879815097809202959406729207989904117616306227699617091162554053581861793963019248795483821094972415021224190970965578123040747400750153880865714388693515175750185733239777286737107817632852295939753980265633366574705770206932041502990229747024477691260657375685965197387541256239219449308908733087158691278023203772049387907412543401734287616752777454076968523920953952355739584720015760288428383369794812133501894416384655317431181813247075556927546844088898172238721940817560830515255954659160986722609334081221491499958538762861120287688024794010960324740631811769478936191036727427348979821296913498957836587232368473367450694157496087631480217335349713399831542007676740941732205246645526243900403103059816436951120006397025748743479833864014715500571643993039257133378207621238154689283595342475377096829332452053977231463224808351145509854305224960145379778366355288162405020625113560427626656257542675007199671895792005504596821280800677131211859228698279568931546123877496998170756842825578983418542690571897036391298060069272129272876282318534082870625958132505628408715795102679011643984173727027222901211774690369889483626100757349466177838958953906810296175643607102870944671747684383621866017789589085719191473459883293141146248952069252759395182956992161384132353468741343290464082863727602460694545895259386576167620916519519044691021367591195357162921714299539605241157024202861017442777840989259249536521872986174746458748826237512434844391597765260405328048293535886723547851286039991403032587750416602713944801252951386967051488800462494410087703778486996764495861822875168730548570262634040459513003413993230059207066594629959342346436273975541092495239007285474595063950960171001292762722385141212844261727165949965299692496833450799287438990672362001249511839360086066894347458731967418893879517901383754138389508962418590403447608722176950236606108403002593175205693555150095989862275155386651334464510080320443069838373617288226374841380073359669999207456825941080027805665253093754051457979906297565584683075413000086369251958857713189140393071700507462218039142338003173679277696574049639360547651476986144998265709211689909458438011065247628725689720443235544114230786098264094491524594091804407121552151836510943265124943957119109920912840700613648154859102828815513210068743260539320782146824251122632840531546953811503489466182103028484464632228388737442182631748044771655127671890171472251549801052659127411154812253597625593709052010535214933791902569132556592617023340255529990328815238579590107795108961940520495060065490784462392459464728808650917386543498492493266392267844111331486557243480434516972806809777346454969821979808752187343152774189399165810462740448347235768981194510683134784818470483712584401417614411271317584989171738081273090929747387462568525064626337217160225963564090100341139823863888152683212237547921309980500338977299622108841855643819786517683268553118961091094884335412480010362435354770698598982614873769123547372032658559155729679210717794405064438150020141917246731983183848183527918966369283757199697891892110162375451742851389262077397025577392593896752487978231468654380177652847490560308101093449013613891641982982880063243959308246635065899737517317908707095840879147904317929057598031062171378386600023523864647197714510126293215564307953646017054739592993803329489784837357122240114008975223025072302751568434882673406012454773582219942430185277814657370948666551840273899930408888368823512509745023883896321996745813786045496895121577555444536559434437074920655433223959617996102774740981593024466170357117734634574474943684142128501172311704641956519616578698974782600358348697507236183735741549810278030700175739703883445628364926763164723610419195565405333151909250492094896462580098496999265631170310603320439366315381278480286385456543483644034317076717933706421691019341893818818874364938163872374517885099846600357974765176523329124302487172698462345718897896378203139948100697092623547098815170224896770097336495017315530512164907629786980599493108884952481523829711567142250670094592799446508247053057440964283769595441253477303114806804882174481549358570676712114937047906291691877294361702022826161472162439121516248799885626397306538907547198901655969078833775453115047291785884266286999623026874903720601745663964657558903747356149562122559716032503638128945062762397782488253088078262265282172161136612066520067719264677159928910498077242883503021195544766596015145512718113034333309492782780972957070356325651442685359061469894953374625488994519530888390352056162826739995220690160400946306646476579338438942204287732717672553169653640573556704294860821788389919647363608266607591388977828012839203141561206200994508158092640101133505750767150207661444260811376249442726854109571404077043546003883399173124138288090098530989515215253573599969667903530051371854068052950695191881000198770707948346125976061385845283759292309401945832561682272264094909729516480463808203810185551511284833404867635717035734336962043542908704469376942237839338090932064224915584314215615211538471442624115644420997133837291008923776119856576769834709740465008071433579878553580538039755316740870101589210897013755095946573362911963916418436184063171713771312347636056600702822886452813704046993294964840730491608285160340892762367771162253011867055486067333539408479120765122374323198844558708562795927211545694601326762457361859282165709278592362984790613190997348221635102761153747306458884596807401582680953471197588228410466124169694449557813396191335108203223738983680889169639996044012684484853363273662138699401658721941596001275174015949658004709292297424843943185365532627702797265110187307106572244396518977597738570297901807164714692257656596925362796005767498858982498225975950150663302319259169441170178721639948241961830953177923739489377154061547652006655702103627612578007891890278876643780954557434677497158443757803338837780363547487012502514274897157733873115407757657688041012501198482901188064833044625826299615973147430049473746668271057344559043939806614028656726305628427903690635195968242599374729532649551110130032707273107873597247596205447605357511046614477482427849044370955325920031359708196763332651302337010574106454293761347764244527275999033353010663674658768034411548771535453061866466078454081229861353427771782669796148581393801641791420560048238972982221582897114896602926925324046728206436929564186571652646130188778092767258737162483520879270370977459964545257518416902667300654152530191449031597622160630079266286845201570998054222176729609265032634537627393483272387909366659542266038861923052377739861762291180877968221750175907561248438491045676304380920237369154079706187199821933837482410182613565224230085628553040892833370698073186344548272460740611241881121972012734272683778502136356521667492833017232844737993454909649808778228342890926674973210904610568604558974581627408784837953023682104054027748247905963454344548566437758346000861091017393981692004433442366752441023928070749116260516422604713934083093543724242232120477757151454344275299899294535609567308136691999013767291495245146108839874220943251274660590322551878035409990261944289190324229476342232371216707467549338951770727386129314396613328848925689844233061154745630867957666020355056488497260578686575360229024342767726429088842286655437307400605235010375343959985039029890776502118002567446238022875372285767257662409311831517334202545170282265429895012585353410844924377459677980730882544754221512386707557012857694873786974176963772400093774362576779137135132495510159604709842537103426273278778068216428895673362734959635453921090296611207071780954514837237738348365266459064237913076962403843349394278181213147728429101982126895585217966119851752622850699942711389784669837639799632083292290765538857511272628424653219802454475222392385897949511990071596220484831713724277674421418335529500896794844783415859813328798570949666836049990745998220420207568822286608778195406912141640941910010835363837818765942367144336508842605992882492828585891908313916925387746915156359962470835021854069616939965891661538046573750745389853900363715893692088486747069722692435301471784544719753261163991276869075073369544869586354433575559191829187399487575295090267383858641589300457226467499174714481418232283538003737534637417107718600394225915007674583083301465418354934039669102926808730611101034472464810011038020334771285361102556765449995545112574711835130396708273890438871100665412081086780622125399816436277711819706322800224638672434423271384119607115792352549159485245374101912374952781299999324602272864941625448008862380167945691639887880322899162489780961778911081271744853779061033624768396611393625492190936308344237179630393423615087133714888180405579450672001084524556467630015173108615389235709611958946774468956753996139012215210389140670440591327998330017429171876923442769013675471963936148942583370390971476839917578723067012114428160126636458708186899349430560522274872867595255003648959972858816981484553700613525505539245569809910522516255528205613600552876666981093632902167501957212446491578218651996164254210595242585134766138418049226376179368380334787277027623641355917095652365012992719467027013767744373066159053110120355207423444913403636248358550922423338356897496839632564707750418470444235377316459110312342723871071505695413896777566931415044580820560627206583004769661090228205347090193566802927509046842972727186846857727928517277126872279645494471218850047107123724803206063517491770997188213415908423461772778679411103252515081764969175845871232081680987349850941141322052936922396661979729584786975424924160764830519859995929647295582801933382638496654661274295149489988010194329872495594863024575657285085963507901668255717018628548195788403682792163815662364428061263835573950375970408918560941654135122011379660058000045934683346733932210019170302814884739853076950479187611080387124724866306827250765723267688873372243447830455716494414971034997665500465438752076726268125638648332371309784039335807661737672871608448409122279766926024933767566676498553565238870328073968350881295548556573541554288712648048861591778263436297626180020229289844452657285858862274948038604538311605009416736702614587697718215078220651423374958889595465974920761588389461663971661685284245341385409325770662487534874893581607308414441425771196686818713805096162870245937091935276290216029988260212415741706067928868796025115750527276574852652653634709379576921981159026986457000713069676420965449157805096172449592428881720954559064404969375354647272845423299700979501528313469825094241793052253077536014397851731578509922002065792469666820671956258256180559087683606035021166401098441551852836952898196715193967596762013584327651551679864947543435005608669722022357070480989007399424490160860658268542693033754090076114801969867194841751577713364866146880685841302559304450846821544708801754636496930878064527315418321199313246246435246819579710889784074285787632024705251322857490043450505990830889031249508366036440559262196330817999243735994066255123685547762869666469077591578311131041336789995800385894147824635540155221128126499426716325314734839055957187038468911408625088431760376758741501784338717143398363606499579907723727797388290312897967512411402847992004840441317005766149155238467013831815384077797131327623023942826080166455509371399044614939504889288923208339060907330485402469512914193903031218783590735444016077972793260345097819235002519616670030950536486411610821223398680048734798894931134280007841656202195490660641425681946612238658372068386031426045567320348474515726222311257074332235531794297276135094770376299511878762919366438901705384452958732791949909938384908389743463419854126814614245643515439818255451848527864294639440823665353830735830751902931568302555050131403777090199930851337171432306080885067112940364018054847442839453474746932695267205879192606774377072548065122661446706811363438851408523712144133798496196486638945763393440662410828084425419429873219458919581983907560486319251000422956867069981779014667962925763269827418086569901970036184811650953332346137954106306876343649540643356671408081877837337610501619293599312711836370675870020690434873043153786819648639872483659414269506313416940854807211800465862822094309899527085683548762869008954693628284932968992202269007558987440546432478844052546363972277641170553902131405189592010074618458857692912018847419566245294100717866575822551941028364688151468647890943828359413198922921121399832314282178237124600291588217191425520760034416699364913265005926679467005922125765170971849164566330095668293091504706253120469158271326007524710825874378112980126013523072953670687705193681315556063051605385542563397927871816963467687535285776199436425668932713014341108268799418848123715052613555319983072454355900771760594866386273421307809860254954996327244310187686229911964196611114853983011130387635045697076780277376215356064785078373506707054298022832073729048725567515581255568808414466906863995552773742246194279840488040437654911997693762993960010691388195249888123976531716327530968561295459674823632704253822266495947006108872901022128067559731382564507612928562354045565258570133161098395633216581010067704900639601063155994657359040512443193569901167274403065753851058707664946598191965170784223280895316170749769652001967469141671372312124129666430077203020411476108931407856770005803517856182642386925952313931001908342832968143642267792179410720247058254399553907282955322978086385433330281707809656571626581611511910089139630952938551282832918286603800219290315224554878973853200293751529635578297376359827761634618399449748947651179542871108185130818662883669035025903029396165002810556663507235300212073464628850456779189213530570042947776671121436432988212863105219496990387069947269206882523572824625769846400181347788225180973339400432982184715500108100484208836250262988401113097236162289183702769388625857057170067048606994073111030374817350816965321174717494233180449657709808161356400956857901885089872784932029858435744026298049568640840227455984951198976284917523614389194686457983376913952571533937356101424319066251192106125823650352512013802769791612292200747436889713505101383503280556176246335926078795877992587616468240271352204402405570312681307690045111717506993419394541185603548756403950212794356010185625200954039622785344465024334786862463431555705452769724833123215340259440729795067435363777251980696045948458932960330539968291495676957283464606638381684947730116290463752557041953312654826713030014875625223114661677375414315913513320510675818477429480144139724130346807787599882389806245616345338147101109974798676821984737821334393897353101378829953397563909260788251251646789801220563299094906081355525778497681968338648086473072390250040814116950116385641262312078863126366883617585785091269233242068523227467041715409590097915143283466739533776870239538239405527960896003661097684306221266634742864788036935098159741761001026671926666504685460117019889702893609773545071935176531316514344506116596435847354652118253361134784585562307543546321081865737787083996498043185314560201964591795079504695804344539670282019854615803613057494282774927391358029570895672203228673197877858762555499506489397850098344790782509504837570444200423191666183850740651963838366421978407965862760954402864853125659134833845437728451461004440623131570247084914607005165854722479254532520654931794426740555180596330830579915977018646535414992970830123484630214888734505510463548154261090072693317258802808550305895321493028826187459694262204488484794912295594992935674424157375167138160881601521797796505317813280734884981673358648350107996075588269115471462054553725074765581002054466513226446551581025327690901402817143058653274471407581220886573395422973574628874120360430888900810279586607558935510250378140975560569658654797309389099326063744327564607130263959604787589117510178339240136189801314971533413774912708022422462282624015802059497846132216286149878891909926779206842348363666203027451569137831121292314218634666652331106800236086307902946410321465737292353208373592042468990910438258633060967331402623239283185894878143555870696078936562982025418254161735734819784931918264636274316605884965215239043746890885085081249437089646973317999901729840888942908110912510241990330346271355870486959323739049668011054200419043971017034333693509687258835054900636930890773869976037762420488244835697575406850545016865740368194408917213976886267208010794477161343640960621704021660577401003485088338595334073642368613828035858755509616093824472836333432963657708168348250545151828578490329084179413863893588455487086349318173969724404953204464109719872586312053965342544999605781232544222827326417050644299545807018293901159923271787176735003938432974650967849884244185670045445572272899406543669469175481953596686442178873841168843982030474029942359463267764962811692112991419163749342627659300224581156670827416536605971070177350517766962573585186144160523771362025625078753875655522056820191185564112729303551893503696852768669982728824870718788258556330935518638141240676138112301294802612022807878666467054287814567292769456342064348581349350760845204937925976084914148548797866209378092271489830234668031607272481445978712833546322740558891434946789634489522405811326695668892417315663154191615582992827145529079372808069037877366354552700314509913978439605871376940092500240797216238940488120902283198847930779847440551706305028966460193301340016505279453456538558431713927287070470190835223064218060405617241068146051997359008546922432294179164344497369059615555756816324360778536030868705547028169734652075543784009472046735095125772678571470685924686187499210451025262384611843086456366371492889788405008209380406135353398593036110358449495436610217080521355558629642041513271897604422570022427461247225250472598433967481503507442456278102015930975541040088575581889960953010245853946051078467282038765060498524804056370223504758862456094032921489667312922258860633322288813301561081041273960520218484170722445021114720787936223036755723025922407559849180517523547055070482959737301173760961443957315014334789258623496706247396555494452708955686225871264254338764866216009924577062032670853915183594051754427301168635734446505457157067987407978917398932432101756668559549972386585757611410542062015972015693867295367369808105440532753618191560564857830971952366907710055924065468797221957271765069893284431121937947900632802155152085809012726747554188685255871208311658936633357152907740239616656694143675249514890595262935093663533067882989118588528590639288792535130432687382064589005753639581831663526772215292447969885567656188248032578268677837513287537489883066373736703250180370989949488798905321296433579045129118766985027107231805085208892208178809956678045976350965948884032511500803788557950774708561730736275299037699677103591870774742070167651019867105742606021431420089884462988396944890293021462567499865769796128161100726476166724741619422006201874452257325890970502334820550909351033783818182628224522708141777751605463572056179570049370600090164833793245383529380343583068881805293213311677773370726056222453121756436841039674567340462251081489480637543369471922451900642507391735073587575681086168425975874777048206371728226635685979483288817228004199462521151893083737410255460266961139083433092234048699687658833683005713386885050562319752729616998276759753670199220033803116552628823426219615829236527953791387887384330907357151136315430207194611038196945437851448170353889306536500590986213585124868886089421100869571234245842363208081247558105510047163422412325033750443856602137540628533154161419307730678052177149240128981265890360003823675333252354380475564206776561599347234539249142785426581250321543355235984345031189901949780912201866108431585000077636102925922545132090849104429719851565719534232813539814633583976278511587237167637794797829206362766962905488599546996441216052479219715482878502917060541850594260827184764497134138255661068485896449847210150690422873770629922143181457941083227671748163902166502152975046956560702268449043814964697492109528785076416397316598634089426567737155580345605067584781897891096582869914189067258699634358011535832639021818308798614305092652974277212168563137414645797710503846788034582167925754611169544661732527338360313181377296530771205796320385803001659028830423575864389064940503071876769959549397696418128658992883518158996876039943468746399805511930551652483039187327603266159311349657027354324254549725206668876381240449336247911405885221585508064117108367997874430335153539410061753414917724590080601213889000911899166039823740697667546648432739982520076884719737790293396437331915751208338964364336658759663019527020109412080636217463134921668034436871243429579826775662632880596313756602450069221898340070765285485689101392605604387661489851844657077064204344649696961586077331981597451205333441785334193799153955158037840718900632181528360269151195041268324999653385037744099976279212724857599392873339041289219957387819013831209342752929026576864130771392978627740635053868223387455788171813865479494778230823437548483739823740663424905359341564433116411184735421914553145162893189837839453470674395780773576342351137573853363739394242408382841529225797619011657538599445118806160419179469265739762465080031936465411894523753485274681839478060079277165369973228161327437689065762114621556154366231139141573309509842074805127120713467201078778353917963806406202423369015469455377828021426386945054692329108190609358898795180083012052401607431302250750501994595414273917947055882164801446355726626741332154699975515958681102104904334985205494744161686561628513600216346591876273985801076889970227261672671228333454862475279780577007326103443571985732572214057601426672096331715831595691378485323750002675051981338263540454944401239429716813793562061375279970581390824306697530219938316293305780528796753494809858985239351793897587130478557961568666750019028333135403363562631533310997660039271550968758799445301449019426579030532557528842282846454891196353990629823224411859504011880379015566814159139317381147942518209964188792275786830851132099384588278289322499655280790167296941481589852524061346108836122108810265608092448441374679542550713503566884981241551518962599824223829031137152524756453990951678573801928146425941645321966267298940653540587617153116081787477041558159304421135277303089488020352934198958952693940915045850783691248579310757340683310827565679719487572446285796222512677536421290114166571383022900469674863116508271102929632606581938063179137141313037236356223386166977975088667116709990331110704465377119527471200758524923579489361613126702981474598187119054711968081846011868619860087175364154354091193672529187769394942742232085094791453917489497887501688495044612360070400180416447437015893871810119218513466522761570726845040423897914226115555842234822207376694697099591412706029826547232488372898967414048928324634872488891632551650733689541421296050170003527732367434913993746345545316145766280841045808680453777453624706082766776291564612139164536618903563042238153352168829275928762756938220322675168726899042283334132636967774535309051332440373803828757912341026298464347677464733497670974479012209866472132982356054200311606946821810187829297699726599474782861669628862349871660838358637460403248915360679913074805653259849258535444801620026456502918104474370995267336653369366877544577586663497344024192674576413436312589261417147420216332327565338360015549401747183271087831643019438793360802967897058266547636972825495333407924502249631649519802233920744567165015219101544427568728633920640565213472439899845154382614353570669616192451176319146950941377595852152315854918193473473110595241554908994259825876931451995464474080652670448773990758925523279655896891312803393123167269043006207759616130344707761050157348348444078176722844429136328253818744787504598936666440098170463182618621429389635002156501257659972501668550654240505107334434013280055366447248465686783551827951130475174858831904818609314661453584913228996072738036305727335611153111561994819403228738875197059321140381178492598110365995989639784734330681797369963451954995785233814913115201816832480640173471610961321499589095038101974079419465900221688572084179027157615289281453220207060465414126407516383368001792510281843435726436839573203419752894940731624294621394363082680132504140628863624117647612829953989415113730775936486425808164302879290173746142271805239553875959582112576918435594083849711174212026062229705032976694333985708389692164863284410711326099868461872688538480709812544366942011732964393884979198654255721262698879675659114692435351602368419975162002324594778597253105851628204480761062014313024479964974716006611620795199885975687881516185501182022382984412468948811321206039205075565514446089907397376957097403568526775878525265358780231264111729114661957151262966450576872969670056393720012238640188298506622392138823562759888265702074080919794028458964076575099520210559886475714192967318053634120548738997069366174088198891141064480442629049589676479168167327626744132324816092074180646540049909813628744139703375267737011475811757690597747031443220776903861509803304357080596723451933821458195590608833943746886060456487705217505344022795506887323681546012344818118496716442093869821893256824283756163837773003955407460473951537683690197544514273433084810419717442789604636775107606760194517480662062753737834964036432796917668202577567649442158112919965381547911140212503832528395791436210501172238711487025753937631726120717080110025097464080713719028864253563610820888019755984422433720344050999440684844662244967408285618834365778207061486284433168388464282511281585693006269198730586343423014909233854977727022835526289018728158736592752985707120269731315430116246558686913655834941137494449198340040051713107863205574685120802030318154578227002277543580705613913721134402035669753187975067302683047422526440775131994507384409863836940937079458451959150635707020370347708455880374801429352384225603205165780697438323299900361738711595707263869869431419379548802767755018991250551993566212156371585866528607890187909541247095161261176269067306306500608602722838055045995529428973052949474212386331320753519049551695072501811684564430547014011385623404343191181284493279552398018940283585428530434357989836423168808888222609025033622945292251917264564894474338041006562110359319735543292941714224866140622559400916693781776734363288385306937803681142412313594221445919450528565561795318948250162637389147707784533250652882647700250848653636476104489225232491679889502996341125249293428463251794482308764584779413071542103302904718700612116623019103574662355764872501587714593717544924751653222073640472525887358862844586315505520340915176780394565170684415688508398347433674145202626023337328257613105833609882025877562132231529700669606245753834710098023090697680505797506404698798233219066266110677698737893678455212467291321602740516324231543507260341705291071352730149181127383867936236163337187968885128135141535560709267446537129098372434478675357856534550795873702149976001915684924056138241343545333671864642054209431500543959860182590975918558961195500347980691138782663873911079505493617105564033291784165478944214736875089089680541713689324183934787454550430052832362953016465465208290008260364569914981747807793082277731879604293236435633292407973435739687111192339944518755859300698042813375987096793920743716150515061143457571962704465811635462793083187816238557570888881148029309508163432520185671849463073419986875078909305786795122362191788650478722084672134056622261370071214956577599905965144750716940801645057606427721558558082518974673333660956556805767343150875765197680228734894534322921040303582734567939840235889001454365571196501825843816218101900394286039619118802837594618450509399756879322440080226405159375173284005196716059610389723006354659657674712363531111939695342842014670544641528735305251511458383709711738387720401000000141713136928846728159349419489012479985764298171932171743946084884859457430410543305500033334798474667974169482299524411074757667139576303554486359718348068937206931584528020481885232632986547093965676228535144706926269328327197140732725258529474047500628297231799336819757790766533327610764853966857935392006126769005358820773335236308828728843175497726070615506540924210846924460926623204232232842466933056936261200011172583859036985260051507106484385408056700490696742451823875066643213953560056322569738399392493813069519386345701628784601893227562204794907842782472336069317298867234775364649053461991943742055828864298598761652931335167021535211527391661269302420647599508851464923603732561881637696256166674536688400168718482437085593191976155524185967541794544048511865763920918219470621801958367789384771354131917673532621720097656447443836942975011707821884185621785797797044229499750524942726156883027376084296243721914693127259667095608476680065002970427937468336445869644412892649183634364208627557915133292100883698546074074141886253769736302956186499261509999429270548747983043784941340394051423215943148598063249678148433441812500657414904806723937570218240557688370726339054791046630119465168594314015041198771856658742527817955457345266559610802147864510395849342507239432771939910538594254671679895837525515359562085361217771408634740856481639947203366536127343983697647882228057036623632870589060447783377341642154450008484346558653600097036076379483461328880313509576244826778469281959394667780130076488717539090624614780861853387518329371540780592571725890150646310056280202816676709034040575360790553480330348067395118010627706823346393852222728878611903116350153248319325200038201786190299725650633037284794985929602521081905604377987266934216473369345553007779230302456000190786895248928794113451286205447217670130764287065250983266277845638005652674505107407200326088561657856946419738259552456026615699917716482257279982087891523382767512277645013763532779773267124749875535123183089638933392156184850240168964559592907665671006117743025170530642053535994776650822239745732489482732662149911786812300923384908775347929375577879143905580129133390170605382571225253981947420153146251773178755259608212206245038058407617104990435610147163182791895743089564845323330424041425943573243077030517696880822601299845045595753479367200491120882397365962728950167107005185714412167093150597326801624892763797130442983009755394457066068028879636609473545659253052095601821322190860854852535449543111586080950557141860024246606229402073737725875889733666049185925784583918029946612531421647291919487695993219290080797715165064113929697685521811270730677955639255902236131494817238494007207496151525874442438623893513693757388521672463101974018046691627079197529471426211809700838901607132107642490519072762476260390830994544862161385469091153559450556038801847828278923514980163385340288479391817104175925668798822140558532152119978125776582609634200466937424077707239313888517052314123921399890747837334667199639861153119866652428431606991964091577594110346128692953956433019136567357203958101736977312811290080156674638778916158502384920895855288973282644846150093539861164626337803773608963337927325018393709920520850357422581000443734730252001711558106431714089766577103418873839281038857116398098917075120013674534470987063598037228698490086464259611544895926835996467425643037363231158573263606916312349377972055800578966403804366962694683089346743104259991421145248493331944907807584527548338360459115874413834664569605647156752056701421364071796838256663991047682164602999098474622747622125133111167066698147237975306215269035933981837537146511668858682678208906089413519515056437862071750674064862200710634125813708347290624762820234883889871238332493047798787688524775038870504969886445860447204990437440371699467383642322297830017796758949149436201026979242327606132432872066871961698303541911863947089463937493500030768201337584171898649318681143760163845515450138866131442930079570216944498178831551028250593106126967864554194549252347414183197672165619069912698324748566598375185525669386632246588005711381338271591824169971492643458771467178905996629558323400473137915977862883407059464949612737846290261966759832641590990200798885524128971133792965843182351801369998552206326267772754503089387116741763036093555257747808760038819466788647599391314549318557134436299463861762270451830585988516176834081684335090247296389822435309430501602901118006963984153556639394747371463042600309888762401558284487645227258006886191313551201511324991685139076850153228354147567373373746119514209786044170899126989603914257630581475359367854213691013560594263500978405690174077321148873946451514342100577824106358836646892414294240545074423815435144133235485861028594670141141476929139613074756630760667778927274939177273354762252084559395934909286936457876525862389829281806415641645703893572535969031052905179963184065507236577482255473634632070687038498100937830845353553937993757657479737757578597058335547224369750361205198758033718453019654611314284892077704480931595087190694692878221827957803040362397741485795774681567467203260906800541595239227241614500224049228625268532131688504880395016104940274488304249685073899546895157698858139807525000255453518322863714782423287768301044474078990047860924860348542597993723780521343145881285135804211670221795880760808689525868965812784380092464573263424531673327609794706040525015604381785097910633490579163774162748168161614236009527520245028138358784744058467979208583784114994819335533907132540974521392720582112791526922592832549381157106290242330525924447125723194833785949529429808385578831185737767006272998925211605174857325590002628302695183012803712721448240515375528568839872380165204110480661663637272581803965887975252305597250255966467537069456720396864320836201516531121141515113801588714326258486234297015067913273998987673478325685919707860550465930003954836030994507690326074169200721533385035809986442196254195825003475411372125234877910944012335866347634690582680427958311837642116292616311205771189181965052416149467281290669526833715787968931817010969736569959620643419485774314153242073064905468049053092756510221328059565377507447837935369663942905724397875721641081316778054677441371377405774705576948053976427770481934226412573299164446642070487746129000402886513089838190069596239044725516482773095196008146487081568695087822614950331114664284752522877728455645537630559393141243015036976922638200830451301646896653064999575725632150991603855848297533178484590245846576648450842192561205024843490709307711994996430524528765824454573068720228175273548753509356435570237175125266536589184402515259811053604819010697948095463092186023456000648656741457881617014240283021877308804930375568143334154879832043105420102103284243344462465889525725078578248248496899230196869668218155877959871404750772698653858612968382856807549711053769451684049115332314343399034918976208721302264945228650087131890763082754501114658493454281432727194256355681879608005476107169545874433911187319510729450902384790871148428427584938525721942581327031676781508963753529366016828778671560770620954250182922725552094920498013721556868820940103753505227088922473129752438550263741898037217980875982127099003144333575767019856685611724256419966687205873660277339539026778954831770926009547813872287342108168724979561272280347391505508376662259142005687588155918915319893595625293887906520682462339294918005404125177273724188153024057104864808447784613524308709114939168725560038806924553718370399592079930628550599854529402557015413377996047878273628547406551378028557763680449347310307470274538123531058958449717246272796758328212704124800663438467692274828938595604122510817155267818911069188482819738388700770970323243271276210159187362987709790661389955725832247782126925746842115741649708494303106911500650179286033143487390616046992438896678488436477505011961289352405577829591053151131326280943839153283028888062887594903388592120751241482932038185474693503217383757939646490097231609918040017202857373612938625274068969732077551388299024179425778858952027200753539455645908649342987108696619932427272650596764914270484395942633994918390490702518674397837829180499096540947946572354396437834662675188206624084041039186877749377905602462726742358268029026438409286236842865461495383877856514241525207781953755755540878638271672853737985948140454036254072427793401959389760654243557138255854974826061940733814409238209366209152894784953345456211424202390240718006088563213346679026479401185169064939936164725914707622145305944583005224388771061539478260491987531879110345835682443936086740745797773856494528966946407608245109693578437311894223343334365379103783744027281286872294393783935496082782174997275750903798127424876493154260537586329894586922683101130852564949832629484337820857060562986896135125778965958308780313423471268635832793805848088458635685483239389809516834678519685220964155977954065287233756297283214651378498333187883499262946399702040635583948011166936088900354032773689076358522104834820149134596729727667938275935586191360412057495677072418970749633437063741001317121282473993756131257863630784356126448957952886865113530999084634466091081627804569870965981617090325904549544091467195008018732866414104340023047509712994817022787792267545776997934975868784501947745386884475556922834731735585110818446476578192550592221425661310677752376848452532834437506923300477799055943337380122222089511988606396370791814529930984556722939364232995717180021714307149031266968277057594962078020893251902268235385733542055687863289382955153531610711498013732228258819692796623351496385189843318281949875496339943292118806376622937001087392130436000607689052803213456412903034066944182563361594543968053615934112158177509552808965744031851840571782146394102596494209737311733709326933020798353101625401749028353372991986179074977732427073626849675050337070039414364780132215464999498916309175187143937548855501460461254166561000202440937597968588436627362239522656747686881900510349218503307371694898766799532458624669543732462871386625140579382061505836723424771494904475203572985981190799959731492620228636749593676427152148875543486616815745991538821660707919160287424997075997873482799701530176177246754105827347863289721838781926729528801608272152112373847514987716585646907723621115044897524041259270528339056495309917681633285698571305172664459043495376985485872633040974726905189418285035408265065469453626373792497659028100433265057093078221203801120561669868814138968860818097468825118456532170130946661687285174503075017027503010812453058444744874182474889316018228859860724603726050179073050201469312406435912116035836699880368682081495457459793083068984514094799896506809662192794965896656334080506147306625076835134186993778518639375977354159772320026466209785167469637568427955739059246192076918866082444066320736755323440963711165058435437146733173711027184715421288266132521025403257346203647549444447624366570011316213716908029854040060810854729589666293738289067378191279710767388000894181171105844785788594897623972964799818957618384411478600305410775647562322977263454677112708147080590146980219404210569218417048168190842963454550402715794313334471811886611932176088476359020227111660571338863108515256273689318837194444393994116626916816555509164485911021582480703236961500477913064817893817760573005126280890216406384343621169789105681007995945093482378861579504740906658666259014553388825274773324102722177030648544326662157395808211690505564601705840741624257179144276988983343514248370820773905945541127960796813663101491679725324090070669666068727874408768372336595451735946664712477205841306516136720013706591117848231880638844314666265647620471496989714038074778340130342815903235028076105078378773101158243620652003843702880057969804970946203226713112489802012903817652998726184907504556140613944480207655827401424231004704296484952405633994661536359128623461339976764147861929597202893937147257947687897590402632729369134708133037376322492288657224646909313678394111993825239955371163854840174681325158778921947116837917635231990740064312736551719229934145654747080591105203870524098307084607348926273782169876183981137795537534107168895418182733156465245277836932914455367354340364440938850040033052318940745136149815975676068069816688195736409889449385270581633699602037615811844219002784880525499300066154414550155093135905883030957131577034478150522710543086034721649456761549170029936170831561895551330618724344246998078250893710772190596212078136681600549120289442372507034325906925428238949859083846574462217841059288146072408121084041737488316037924709258566497306291481312384156938795384192627035501413060118866025113806986345101438213404287643393502750001697375710942342565920661246781602508850598217962329870274080160731865381019632651292654359928071512469947575878164909496345656294377582230841033157061275240774865764139268320852695455465441080614279289442947444396006766848226887433894729523917589152753504174394074064405213344292688883101419055328261294084869943827419103500757930883511899981790610093536528446118875629133707149515517112415010882285488337600692417591399868367225953641631347779876587946795650431206688314843912244725246033096869757704641510408247265734575601817182474449840514230147797717215757572350708536617373494213569691286806490128116324578968926981884857931722000008111648924886414160049062061342049085130498412746243006976966623585782722868608063183170939116795834050197656485643221161646357675673685705822802035896992031957126899496333038632123712059785695850958206663281959170269987577966111210004769613050309417529099758330692402259227605453360235611037457095340271436768489479873483457493627194901629262780739965223937094982589932065323385124039268139611837286539813702089993182788114873651687339449654449918342662795221993760360463003164095368025462343831146705628218297635291008896549742174146069527847368698392094949350466977995060108472330850541747939494447930650176738434941012307816582258201127796969854244159193765214232838267316429890786834939071838768021224254943123938052176270854315132402665724537984042190803205083527983343403854293016161858057482457288724135174982935744573160884433029276061285417961030019542460608706569302908288446962931726462902225348810355484614339274577990730795621926673386527861465700577361789765732636581557332464349627564386368834090947471645662839438817433675056817990974544944697629855972428203981733555745119854516437290090742133204179326116225175887455570008870566010501040508243766296696877405841307655507574051143436321640454941524281415994402075066717412717900819839711512482879518149818658731754329131335142000529273052876662950112965031352800634781866183104774518223219672683659464094638841491491252968366480286293172210855566845712025873022191843736980258342893253651274206794200022774885119248713362890748668076024434379433417879794658119111519399222157453985046609888174123813402218907181870768951851856709371245673416981728092351308761121212463927709768831821860532346516549994707113348542218545862026005139988550582206110585857794156454435503391015903354934847624330505439236600321582601526968379295615698804060950126085864843751447363943255120158440420996350055607652941511559547700871558008756744957279250620374421233429914919692425299026720378134855332578135744167055269944326970006139847696175163525515034270148771027323070362314512095472365193197655254983330942500760055539530626069106252739613910488022365487375776195858402410112343451803319238964027379766120712545813719458479817945611053070423747223631704873371662295373260641357729764504443777303727790449911171045300559989984326802295400163552597371003050345957395891665056852915966303631932690533020840434764053665127869112014496905159876210047628990249240424195678230534803517558069944457928536448815444780362866450842551085331593746799785648734879909999423176749721824368129090360073626955915648110554919427296568442158094226038354953082410333351039457821546579640494060685818870742732911646425117976609164512940594666708708490252466065525774147734716164731219080468701330740998592624908065695968826949986466969581168516406414213603936078175793728906996778350850747251673874721250213081726866374436091679916870362044048923293884869435035474569526438844963266325917744266531424398026457885802182200801259777053297606276913544803358660587015114822964427227572132232665407790412405316080633253377062940389405851958819055824608735103893439952287575883867426321359573141776190702957057588933930542813248079821236922953255812322680253682943531571801467825009982446736279809804501766574049531278203127837327540794557263243509264284306519913454932184270738838996608666342605825408952703009574418720588469046598844641135945318488743764381745104094889781080751336740278393044129598952880908031463068077109616563972713247086972872295495330511163851625519604866423463312385257128602031427307212213321223904697558971797540377318286510987974990677011502608013858868448751391767202379912456742651258757018645339423398023694219705673289444446503518137794674596253160929017855473040215747300531459391630859437137105589895221516451385350481703769607464038555634595094106547339391887831381571289662525276071280900866004710425176700767447975995433633674323490665491254096090233517652383640377595436375823549943255141717863678333837610960298884667780508009335993083364945335733765021620252466250776383612820922518256902422493286956530901060470651382362687325560798213729486267120911267992481494815755105569828513582476003439292448377181207658979277592882172020912667105798115782856708946461765007790186850523069267279143544897967300782215829678216472009090279231201846913112982177979064649871214236134536408868114455492294377862115198205599086453031847580629044084673904713460754757115186950446064100199414443365174548322728434892632241630543236640488951362691389072314016161357800789713918648433537395004894228663308148432073797522242998267013855009113331628904712666677709155426482621694301138586686037011657543533097563594224989122597891880858361875574600398990393920162762716530903078356454096112989374264175762839197344135660925072442739482917365951139411259174659088977093521772122469154989064159596033314400928902515991411003697087736618107050886620916372796990394058866922751592181368549508418583627563984218547947562784066375542183466950647473103766403162929820392335538082569425799962111154664439353995067525723667544836037823113291932935403924927742332720270403754662992011805827431007424998344960036219890424967544035798893790577339657624140145443792397536467288876751458447294666356769605095091496893005025272038358043335513515289469319880788105432063229655413301710448337909478482795170814901778985093576453777501031248938241101305237575743512413883718736309769576775956347428729770189705755429162069924962222433357038105446509103333153157181608855049616121123358008584625539097643226735043289475503146215196765743209131724550244664307060761148639908891421317968011092169399399680226383477983345061512819756293650338253415026574877688305009555467220356512897862097861635857218695040495239598346328019086682911674222875298101138591878988320552319750702209536942337071799028420324622288831047239754831821409313217015101287123364125856953484411698024740259946554393946003517774524909704380040913423256102908318434474429696643989352327665123930091418357506463285823818218099202254428609843956139437746567018459560422221301921470762801783942167143271791040360939386501467634564780734752876326780419779837652489200985030335888259902772845598301689946502448824500423255191858464914195647262471440854367720302051024830604891385562807967915545416709483865766723206984041116186706345977666232347506691196113990480511558083855800438234384762240561059986661608531454279795421765116230539706869888425100024030749264339968780633672743602837539010932844822936480616458927755154456296604553870985501329001571216200818202858722897911027093073517294483183898688192874607437670813549902432927764342773545238023817640153177605824507041175141534179156956054665984267038458525161357422538188335379009625996299410512297280823104899768077485349299453330787404827512599174097831427717522692585309212448800765166385843803109171379060173279302847746777110367914515032985697674974605320939550685007477028555111836525560929713360484012191010299368192615090742606263442759440702855465163675479605971353247486019726354524028907085774160471411319297226579233221713599973845344502345435687516185074355834228524343278280111989520651851412824129887884535645399697442901783198365761125781520601645265384312469911610963021967412323493149460960530555798007726658057765906188796597412520992179669753483252708025027407786254098482805120850323654349855266908070388328413215026196739345118223357777628885956005019663191867399306406104839592466257018034316347200469264229624805461290192560430205574571873014919977398245682317718343009068871734176606464933767432193870766912577026851956221013390531226308650149596909829087979377595742593667373398685337761016779844853098713814808749570368163598375411684214225273892119908092679369588273502900658222608538402310735829402541521126858757169550051950583651611697876753128607619769762975821917231466241233963201148392300864713414805285503196006788360201203821714764207090627116281598694086273583227192136269028579278844265326184807907942870031271435688791317034998330193136025469380456981628750142204803905412475527446574165856705787776779556893957547026474303099659425590215563245712632053815018377301561172961593176954003545570211484816607426154170923317905265644726755531883912783734944033481108334927156501132738504703553472866103975346021193385016587828055908369471314761335513255357822425117633324745630459686991126544436021005852563409849688968983098908003858353628394792387233825731247426266914836906692510331479707655093711817181657234631515388051634048126633383763925150965542182317237491515972335969906803653435392374503128693420808095155133114360479006354968406368001036651336704207367525533250545392368342529516071570047969270000888832976608733312991025513139645235547391582734460822595637388453791678618274500963724698576738654605111178864128006894489986457551586086242585482420516209619410614813460876444043668068268732439784160459395096901971081269688197348047931303879570875226451406902674787215149858620474433648464670186165971466444617171407832826067747273116556419980360415390484218470149662920048627243765975098039935931092314776077645422456368679005520602443723966960236381774377153235386562919476819154582919595710777021392230221170554602532507527968545624564791002505165930823666760723826787326269437621061156376948049587842148574116746257639734098065386018856216523451924305881239137066363248297665094845325061301549222123270682975488220191777100319049643927817996586915635992572407465963133487320691652034746717747327777560785598194792467964395973382567533810819420994674682832582288737367514820362430710330681088924163294458976328934347821764716139447989574915555771761279491624508657393151908815068759176384740242480184616884769190180968315484812891484169204973097138317479732285386671848433594928894972031784788719932642820102873570851239901349293735220483137451807999794338893354234167358720779282056259013529835424811034208174462451398369592040693862194114464042137082256118622233604953655239136728337268612271846692630202727536793846642610017426882362510691840324252448208985660828474585990943821460365230031139592100685738900671123762623008114068885251934098073900678538034972425371933203353082220545628025776769744725637027251114238785007709570140241333069094685329827546339655663168037142562798598970006719765763104506331248502353093838487070725684076268938663368146389549743756282125272734919823748136973503935596576358508898727249936619097510400045254021219354973547134818400516263451162407067962550958423674155657702974730841617013960615678956789834088571632561628611434184929094178696722677692584594990263772447308540019383602501615049787900708985901792999627097610682957128972027682010102548914209746647928065182280098805529856820370408711989215723254763833629139858064216795009085925900502209274827572105694730784525943504093383037424153817924669469780225404558790687650655080323103973989456242061396364852994274578727491733599830961338326874945710815580747748566402535027326778268036515128629964895752415686673023114719259601426510213281627322910869165893645863669457360072796190804895433697978519923028478843391510895629428817069082874023623147714975276823452717349711787770124470407191836827439079006337990806991294011661201984900980735381802438447475772902803485346396935728312230045725714669117521322514871165655920433279009920799945120502312928674549931807486816540652962164926206576699674779521976220102908629392662874227147255097081370486764196402169052305823547688231290051742041700970157246737337702994129466655526866804801354756186139252646888632889608087097475973266601955142763094799248078556342993180857743171454236706654830073809815977397928248660673879490392014465164423533238315718790027950417466202742935598401801004201571193428691246670979020074897577133263913627885844773334519723612872466963551894668593257176997492853029700812610968208026482537928056591975741904311108303852946236132871240396204104746352259615148221760092100945782825949291460428378946157003626482613990519221025849965805036535007005979160000246015816209785457623699878061935816264161782129461185770632518568827305076297039185302279581340326472272389879447890772815150626806731892241877917741931511071114609273309056423327408039048066813988604513877719203570484337162051275439952265415936872960912071065031381819454936866847535294599144363952730219937260525512911900007788237510025002300897365707291820564647901831895510714600858456847666306671530487733836679311303430738686751178942893795837031945962414718654516744048547701703950705927009691830884545699137736624773774673755563931028156950863826773707488152933520398117075345777264745004175092491656643359590938350465679717419945973677327404424097507914746337328888532696228302186716011244249564562216436641606634932223027719433508312604117108808121581605298935163593806975293019697874915999625921771671037460644589140173568722180688210751627861160748140918272966788884971446760977547792773694192464710344633698779917388995309175143514605102859438054188087743506544889262450266946872843741022825492580699237987551093991790625659979523458870868335628562056865011335750440725739967666303649786674835771466335402576360917755531260501273226419987313717030160992730156774621326691659498001814095473530532086500150615537123539548811427187966908739857450778117380116571541698160449101734392322557534445101485281275484876413466121105391779844133316787652127801464688260644141593498892314658539621028360595217942443399393202781519579737138548262119268512213093978729553803918343265095577585006769584006674027303235428785321509596328747203503358364078201567370062755207252718532476810791602459379867450178451480500123457225770291571841281716447080425705134912532066053047821172847969816024067115794395988860657780666688320807556551156619207181867910521040827661975447583496108966393736250497413339324897845462052237695183757088561362474365697611584338860138641517117601474538976153929264772964240128627323192709522703824697845014486886634604504244159245172630567783176225580883039878313829920666718367730933232587093578436461540334450623931981165900972043549586210757411273564935816246677594505409936654300435636756767751911089695856712929314267526267995441738296903362772604755866838380304454838851176629031527240311673242548336923652148636973070506281699438678031743948581832639815514398348598185954422765248408925425362795343135010189597491707400138731803375536933655162931613901024140664304816509738718265734984166822197988180481392907697675319165819471489465414478705316881516855887802041534424528359412623802314936044663827874647446286843264881336420768837161533867716982476565357510543549339020460976604239005385390461954074703656439682867683215774483054771700081502204084734763216029036044232770164648608793723186493437449726730267017579005377246737987654484764993298830957949275108999913117050989672306935946088467079446483417320221773549755238197751169529401677185422407360921570672091652748202962345306223362826820803562084082972233917923814950791442408759506616026006541678839851446861642665111869671813681968956192412329786451744638226094970328379377152572783632432821295168500921317097088277453822180801274285481037941306826259146472520140687422498646451422083410418313820659293658396470907494179161221581138359132364958792958736933841618075782462956774326451125207313644583052349102498033024809440289828176268740192087857129202205200650945094813981479757483481938216224782441581172782866505792940537748835907579488624456588381780600662890789596591426622969313736375549912236024363366964112778518106868276424774173626823672904955586049027181853811618247564893112167950610556356482797610616595013984831975103842233280697932398138331598164435776482016158980465221489112955320264661027375468805094302552814165982550737551467850109641102759320146530668465173969882800921865066294967691895103617539513452286529377884689774712442478086588463860893779256274585892990401173445501507308223716805875178601284967633065081012756125323877364981493533734697508525888535944123245014426386514055540967462482625083656281969244900958639301355173844283805483904184236798147236051586966441530320053874574694959831918849686208552375921284916884945941916712088276743236997244056917571149665510161418806224909107702293875456815401390480755674596483331908316008605972028283562549706848338801148455114550162017622665359389615777251989368148682225169214647726302405745551909558629748173623057783720424084786725023027719017769972810315478648385246661932678018038244974097763087166312513370951349187257012595076406166982087712484863295510701093604721129327931326468404515266759173018314457154619358095913622648073889948959229864826289168874797578449245328907827095762967088467696314855235137795904194584722799210707387048756512806254032525870197960094059162979067060611760323931767492366823774215086208272978806575245327235785742368898003844905645741039573674880453346972170646108351854416192946158198798912710462370666031966103180776901157863589138759232597263030548756260862604145386423927626731823158007611296014661848884668983529406381427134740736643455307382286756345365775958292775105033723190403690353156322010207251424727115356991052806371138555829702814480381256763892478124911210535744907514841211066083357405692089679335119015420303705536833361585603103979858874087184409017939451507194989368384557854422288168843027962721397851197926891405816875982492274231126898391917673849064913675585588580083159119485088531033934135881939907727318041152049900162053639419125651670370202115750817397995653800634718773983991597392962759148956140667177306668440359373489492168996690616152713381107516923271515953791401344548359127144449034704448044566726363527298265496004626200111663391830271362553479964330748373001205308699908909312196867889378558659669811227339146341464100226697104802932653568908553761385787860004773014956625053710702197958658726403109589136032885299026445401056917071359697927296489208735566392989818146490876896398449738268449152154188246017882695993945913682761791798111404407527650642528783679148693097803455582513618100778827944137417490619041914799448353561867831213424105705344103544978796309732998187376433471021008437597205333395155036252930256353958096485131452676998864780198828686199610520908480783795939975622245803173872012614862066603355638252790633279347274390401460146764747596841768918147827550099146388194917388779769780602193758104746931991242296806557250451612595865416418976501479482350053943321941688611916610788289116714976983990021316204737275149671897395548404786098684034090589307557563912851964932761389478354401389031082097953397276368196786067471720713187896681680473886985361425821756509868585832035166549658081308007874034019751345071033237095425698759465736624560383784543740286832758765458011456044245309409187764522808232144284954786118694603628071885820609414845805735811618984714832342767130959103242008493917132560436059370196276226651437596725198867558668098211019963740579457701503072954266383480293451031065705036450524542107724345796053716570272641296806730032093908979235715827077306929500152069129325058890041638541382113953580159295925247020751930810985466925936702862340397073122976410594405937399032635818736484374436522209180847811534549258529987351630729481694589837395513278001797218878211719623714475067014153790817417752269093076926304368573115599271023332830255971643229496588869301752748597155065809127527088231467354013355727882491462315131587537219174367785842406162019237030608465662882145332832194257168995321402777166303606177079540444294263313907376287161373840011119882781486305449879619947422609555347195038668008145273955770076516072549836362239471943299517722438958655343921074665657525145873237778253171434748090766829293696159821973195367745302506618924945299993233958329057625917085559252485041810935586314573301734921505186662491508508564554919167648681302935695595468393305589782103920451915763221481591193441447951380241960823814311619610816213404999015522987713706497972199004840853238237085085030748800813296186710972322505787666427730477243479082902099416623184279342760319855255470774510165390582288899468869415858195486499836420632141866468396575334706844124681377999877343455639114551803379227425338706501037085526217130775649648625337992739695554986874704974326863782438263943657498917650691909038866548508915751125840176004407743909707293859209470320221381992129116811702439882322723950911769843336918319507032185397859786743273303075641929436756201699215861811479209469076801941559254881203246913092020718155450797412302385143451225361412055052597766985586374881679603078081712024143909456359524560721657252776292142267445423760568214198756422226662522708989594693602470521987798023576377544065293021860037516793353049732205911579319261437130181450388232714763741371946634502290670264466068312620770892045532683225179744701709540113988918247543754185006699374997612704501674280268885338130252304751696714201684087276433108057281652326377140370158900147837206054720338029662914311600448382230332005504490136137102914875559109426642151922605628086309937114777163408453354497378034028721216527437789842749941434918068688140547114214786414509896789651881089201622606413376038705190874592595554448911854343894510989932422969548479120485110163472931266385277518729718647796174861220466660619598515592102856202211085506710804656234883170734482961954635633442780954170198732041729662699007247386829860365311003890653780143230250185469879950649958746715592759918342548357883671084739807858668245098722453513956676318772988209294056448846695456912520092330445883176096734348740160417723351623737937614028339169643444900538501722227208336336228997986786105193804435847693207050360034820213974501493080619533335205807626927732805962093178521698968214464448400231288033968878404641843039082126770408882420578860302056330024892629165459191302623992925379700323425282585243218231354792021103292313430369069854372134670287667975692977371661789180369228903574381658383837028464195180541220691878183029766548902972158656597783611110793978382408091677371040449267220664108964280773135569077784809705315127403440917047825414005569030009528812566876219947665963320795721497950103779616115079226228145377415212822055829017780302532160833878558804222299139705854975580307077850627140346173242730489635342952726821219809325942852514452437716613268021567956931625345588350643115369913296462186484064448697265250566281657657150776207628147905889703512092168040511929363493563244956348290664346566036965561965490152699016666270179408155249801136327396818386188637296702572081332950375732221380242615518350148608546136310623061079603459242621101988010349634013414069649651484936032135250192089103116446618836562279670614066718330172837450274743338505921863593904882644206645584778753691518691393257503368770722846181995252073730674528639485202095079333192578138486587433268470612777448469134214963853269550928308054976813021590059751234834427431118801257882644227592547131409196262075322728022578942498469335923420462932579919363369474178605777947377990377657503641609755883894742598563419403245939009705888057711602286262675107304942651496183150196920706871159777779808154668834575279049208352836518973372172285187652633057218560703966762634486081973378398129779042794828833149895850894256692477086821566322242660691386226306666876832997467112784633564065641016054992996088193243071021152617739088946622484551810718120658987891580739688543246078602060445801317078841589878112598296626496201796069375475866341202063965299471921954225902866311423993184716443311194400677616254200206504477219618960303957471800232989058395540207564230537500455220764191006253631513861580231553555850734029916220595371936133848261992435779564269633514694364081049510218725170358864119290887629407166357847537657582302350111266008041659992144047462420570527967220698871033452216716427698932634318806895317579789080465622715780749228275352355970581957857141467563013578392134271761126454293179532486807066497593054662653610072421345173831808312478756003310894095844121591726055986157999533039960841399183008947186538699362121840233822566291915042730909492788214342307557250360582839774733016267152562779192429829140871788300274853617791221245624928843949553051166921680150649896062719084045604804515350277735083488433691704401118853846307646356138595710114983710051373906936675961644368174268222208617578373210769283298989192810108117013355261251571190650193084405130264006413717373124824418298596194047848973270506780207148351881004987289304752644425743257125596848082977580091204712051337064566325799160796149224783433565691535970146379555536569807234212176559678460627313350170847576243517826572828471170493347886614305912497152788774416535469014991454126279124979955713373606280953560395281830814367910122588321695202845684205630212234082799416489211628907020238401323468457085974552272444390413592855618841540646653482980881401465877156861854117017136396279856641903901198779785038608404806429773924074657925143616681829551116308591525951371868633787194433887856773156173976416446035542536811471276496233145215939493071571065695121104458607981763234412716599954429956876240942752977578366008947911390214551360657476137052072156661905258509080832736554233687761995559564292708159534536319933715783835472115357584618028996687782003904063239911866536895388534701140060447627421349017359013983917864828574100188497806733209654730652408661355562056500637670065909455941120672365120439479104491235641812948847869576569594962605467661967122596504362499614446906950067078069313808612682816115864271702639422484628072066727928494803095809582961169401507323078462856989155288298195593606053381708017358077880585676123637118612629804927963353840813773154652602660800676888371904064351520559737603351548807012191710863349096987703863909041735462841026329282560035943416621598653507405285974001690135742262442260869017263565345380330532247269022945379538420953257729941635840487925137789393063879628104892094645376284614647112907735102224175794962414180592854031446195733290841032646923215957463529247171261845952254823739376551128968780262765634745493730486769897305631923738590177817807449718124462878408093640529404423102748007912040890398270379213272171895099018501794282288753564369099773569744333165760738444308252025569077357954556664978001532043870940090484606746488586643895643306784847944042249893005644781810774010867384776962368195991590611420089257516344911731685510945349074075446029249744396957738163699180088508974709564499985286995128446271708382749936741736407035269805405342824835127172213218799189567758527617853575911396723258802399306652908420446893327254869353052550744801312169761992729161185993743590453669699591996128277300011908527696811998456033912386321296200719703377438195685610368629566155239970826232387162980403005136980577823014375465142155774465588212150772351701521619944987762862513787128230156233872776389412361112002074290800214707629308757906614245314156464465724563980007303284166350169838249212525465429857142506645669315321614578604899000834124296998306225692969663051088267471159613062107012189528446269012258433706125974269352348650002053319719748527916333178749522521991280836318035126626864108568949423060690545835695221448202525703118797827275643697404896722046919481342867152505925298646129335704676302279948808827348736744678541225083513842380695625450752395925819558498833755321513117746771514079854001446430761985219096551924170052594543253716726121100231704509400193739275016215201479605648845772024478642247525555437800961108740594104740852423983414135338887846848704559593905226954948125176051173993835165937864794529062463656213768304998806852669688234348531924680731547149170615432350773059289313413216984711306631052330650046911776808859881256531624521026446158147649086037647215863914634115328678299578586661165145156098383449429206339651640784906033028454170613326072005382967889926118687182528080193567478600776110928570339424283900989510060175732558003831968073871814711389570555235324575864533704388496616964087824083130609010299428111089852937073846335414570432409143419032501250946654600993912466837276837457492523477059177849311703287678047391028904690337679358878708914016106900590374209026834318932932504775382279224532322110550253449372441134011545968895346314789273015286121574157826105156141222199507101239762494264009541049441239026495185178278713614649060978202079466702486293166916047624575660896060392235591469499207668297180790219807425014678055294294508088008228002431010811861305436611735167849699549332466578687971757560590147440042253501094630477899919554030631190107131682783705619992128100659088574730523034720056665535710526871890945590355822911617213706044271279348409918863006061527949975316602086573026255530212733340639963672642772546688638592361830192319821791648755436435172825914094624839583551350114150284597262061955547757011237500921888769296195602232629345827787896389994619447637439151915153610411464816756781955280897695953013660664525422136758833703652760111564866729339219196601232846508870911473665732162251369732421870443235214814319108641863643180588371429453978165526364070695920573777137711770612032416540750053252600125438637012448837908018504646750111091112480665916128090114273658111121747732197304194689594069016000008200776656255598788072385444563429380740396396995796017918304592963094682263365884842706842817718853025132775626625041383150182112547937542253872507220092082829947525177217130900575097992488242370060302382961325252645918134270239610769110086114273933857257912493483369946703945196685930504046450699971958575114959366647482606476010169049528063691211898903620648148064026573591525997248210941137735046505341146298264938883447025694370714518856112626225504556211162120420687342148484790825493449120562397457484443147234354702273383606284469427752513786860040190147834173641246337964720650133421026854687930733920855395717382067362273610167337678952044278512235923961652509326704360208622193284744819979885563459357791356400003297920471047228067909715661762605003794081074120381158882579997330405603689809904765508665347840452885013629548020710251852242133512283909732980662814506064072581124502201112268178077303736386900106454839308011069458484803120191659917812825749662381023697238715795699428507943246022031568345100440701583602708968069954650073527413131880645784017471402888007467660305508954375910425935228183183677693498877923862088559005626398451006406661668989209585242247597897150617347026742654020549740633706375975928483321852925164225486169609892640456830770827169744734645191418187480225072741021070378290751327128560837514377517072602563766201619595418800542766691343514347891212663912838701699188792216498216067781085521792526502570065328129829212397848156504561579349902884257302558213008854538747643313170410429861939740409130140021518632366687164863113962040376221153039543821021841186326927283024326179261173103789043483059152664987960426833541572525765182708236321859210540373335744726888011873854217028565594355134238270205947528527906377248436523972122275360476146908038357983312189478981443249663090264883012716014746722416208024990491235386587473000672906479430859080020306044345347628298870110725668398189435433120766976760555871145877610002699374624977787165290453543194221098272326871193691108771209156035786187614477732307336362101142938217966744810326357291449831992247618791870998124413316183180552594441757687602169125526852763476779180241119669350514601307539378472361760194607163779891737415001717838576774123901179700943637669279073731388279310317102379578754225771794204815756251154810205469922935588361282973643318166924904316761910367965439210358683399499490996327331818677410378600108643811867380542222470391332085221701306007177549167619963749102555582607312753774890258646589138818214780409212474925850011352132418409396567351463672332389735462679051212661258469476669350232938314562770065824483761383920522006450237194904061678253443562990721180610784003867207393503628281819447484516616627859307867735033915872047150851466071338059445636124533867352522389088127944666228251196921229111800073158157734397251582580818107238580181133991714722756779561572311018510486368068550352212584528928866027069459375026924620162171049468854422166599674049940039442410805927640173700547956420907897816783770740747944412439453892064475519986036425116807138026649637346590140210902436131300500672695120843918152570258470029826592910331253472294586083574068820517797169916966864581917909386649724059392240289475684883207793705973329377032495126835927051887662953394637826506611680591969639474380285091975942933540274647148375177330748394279371606083955553406852044489314369155474952954231848054341012885092092517133823677148970676216337237457314131933294846674259322804978966721652617225164689540312565043659423751877717585129271999547102522423627290633794560894112781695894375274347272927934483974185269767583969735235156473591985914240563502207981265651509072708016555673393287339610638948429866438153689746890855868879318760965055326758463317994913495470663459960176498597774156562938905081836115981421340115936592813360081969479347917095299589914826341225010382254498396209516440536534527558746420694276658803781411304924390668888513770937601914328863198798200549238571125282943432229308581155194971449908285980766753968849017168576614037087283758674358021658411594166697647007997824078504777827757189448400756159671321356879375210594895916425808408102167601567744798236708400796818786480202808097174653115017281851473497926546099432676593027163612759830990331929858760067083252544356595339978755800066767914807570956916930597664062960001686096575668671500118577712919452171900798350673293345937860593946148604831077139585701036260825727864710608434500898487935078096249399638302046255260593634080855173864151546643940636587751793596478813065543586025333325415826215661404232532326619000515369853255881837107097554498227166390792014246734706666223265870988354558285184992995619805367945123971434801565466375802665500703985983339273879293977124464675589643922628140184293414828894864252822823508939611799576794338199574320679451239480619193550995821248537802629334922786554166367738138040675408177818795091124125516372962723995398697124896780117466706675165670114612233413708568170863993737069130843420442228306453629727509159069955877164901287864523413506732477625437017200089360764949619964285316854178723857691276605072491549799070737687051864094323070633130478722920389066056157220487037265994495792627971450588090282982181019548458118581132811990087324214812669945741148896888656517168630767994916162313797153839287405193712922563060665111644289624961524248830497151865645774251164451665330429664767830795738622107379212040770333831051920848105315663995281336181082445927438120161254229825355014036068047387243671256775679886571875612101571012716947667007764149320674470842981104107458370963033262689241859428506178615962428265329794285261582107672305515776347134520173960294564708734570885517501445479203729102482096305487421367960265084056998798583350164994093616721832881134388311037207116407767169731446922788366188928785420809576338541319271575612140330716007686093804754455705549042396239411248844469964188074017790755395393473578912258829287921067889673729209798730638178450337437903114828374695586774886124626836785889377476710795267050011440776003371575453145343818873157289421129476080260244980595890126214268039188128585955921409661275467741075589979632845066810873887015524643951223526351445600814367057869687199091347375198636149962123613905986200521931021517541005839705840483887204267036284374404922402484488147700130265808640392128468350913434109618822632371340495884918333239899574669157671083612679040049151439071007673407536030173061004889581616702198687113862607566655946621752620720156767350280066458416173773596852753258837271920541288840593252351104579380611465917897897292891970101600691078454701791039180438178999253713604914185738710480058846049949943411214852822092379307756091947299070577267510655183817660429319778260073007742406993674448280625755236164631875446766439043005587780815140877966295217455560592989311172440980000107286419668553904350106278012082448565158651384913434971965775833311630096376270693791582728527656328011901250088060977153782474713208259957773844600964596478008096911145593257072012441839493104931100152460833514777246570502495371140961658925528325975770832645167818876174777884548488166085771141262637182819018798429947055461696822553686698550368096308357817382682748637030446967741617966441068800857630195436195761522886086327150643912954916757543427434923128707561399176112749284737269785519661020911840533967944190923879522018099624938788884110824817508860442671150729488484601815365273877914043525738102770914456518883607097897397576886578245690644100484248036801169039411432201950021884149735247048905813280179328359179137002570652503112765765060260211624839343657539163151574467517071261864468677656970446083631846931123002532926643883337717889623067199413849929927987169399324825215253412446347375201828833085375838223526199700443445060663996503989867737119110920310158083191150475104218353184415742683612295673462576391259937754715238912839968292569851117985370326108123811331680967120553709603881522537018181190410354363007381130344409636663231537110431026852690174958737108561243728998563037367541483002366213083844758356677747865258546334183979524565843221252967869682003844642121988442192236435415923628120842497357100802520008112237800543311762695050308502958929027433450899995816210739882969438022292110777217844720585098608249850366308820634753116690181769912789602049700694542686552973175246853410957210131895456042382829841327021073630456622704473324873229346508589129620694256941067612609771843113464539214027198650671157053326915714946429706813004921760113388316564937155669359881200865666642441639663874162972984976359340955713346934193945315638414368827621907637993679857777573551767420876548618224254051098934407783232331098250873974306635190290938350643655758967943635626977294174862054253361772825651919998396964849586845675814940330070432733095084537689189503769214544700165862500691214086514647356934134779092991207577089855909895201093215231450216697131729186773435015505971760097811223701158949348805923886055823049579365480240506579524807087468345200666286133356163270872208700968489071692505619661275965973066250207853177958568735450076660231242849194709441143764946907131472524259955110145798344643646261729873035062493357156668641119678945544276561202468467839002546958788941206790811052492792492882566307833071450576117495400247577164877922984723052585795100883262225684966477964179242186280673471806661438182931962738608834694314957706802972048917753902727823748257872886531604320816969672170439399389100824358405627671688562509459424178666607473143651929207079216506997355688377194038493638804020755514344399110219556881808454471986142462522810395685731750167175896346366199498217855746865597411327968023956551665593995627218355084141238889264780141029011015291910099455033704412437421010336430901620769130999320785414857483652418840611241338266820668476775336359233359513614072126902818310072939978127581633327059366968633457974210312712500844083405007367926286006489141395678524790996628859089870711217277176778864706627656035088953281206664851841590702723490122945702344237139808599781603022287603485477687545414026873859071199917012459586055221703898635882390581056095071808038959839397753436469508835874046984979908382778654184934485530356933556639734315575956571276054311011978805051761983450747584507216231418144393196736378762155135805859366465277090051688542792637518271972353825025826594882004438379544742104635174694744353126968412558696056148223107898549290756750313314206950210908794243948514689510554349746153977918183903005000876042221862109728567254627159830226902256961663632178197406157915322582422395978632680407604903231272468990200640313667480060239880673070788052717043355159224563044919928357344629189794023593815895437264917456667655192094350066901921868311419601323961187950305828650349588642764348199817017162251822303105478743824129329642273749766510507947638272974493352324735144870287261920620995344134395020496255101361258040287076832563479001903280787018833079379699450616512806427062119324473873895788059601791701527196720431279194636004802985674401058369336599299505570039288836560479054825347105605227446631732635762641411472382790443103492305957291188470808615224978069230144534899806697787693952863201515534363592190343295456187608139470267240755608640891146113581290831868513505654261468122419758822703636881389072251830767081156790323671312583030413064405770749866407212892098001044992676071951785421894576988448665417339867437208615811275484355786169418800021408729886402960370372104133435129349819511441183673398087041568607922433941158539164876954321992469288175918870917212012693621707612101350985308471940956381689154737703269195518134093272589001537787313798474204714141674547717836080184320254910740289124563153912586547411739828622060119681341364264202377686398151144079513186616622663309091330256272852499383714676730909285415712990978868693365213875216553905855734781423612578897677224083294674319570208077281806983026439130681703573895674519761390550259596933173377452932395186707511753839241231239959103291917365621568707931202863868147136249369302185370085405094817879004046828155579155545251264065890257879425152835387865019403109155728813694575368921761796869361347874433740898182075390953496119222676004499025363280524535829049992306538941824407116670264398490578867840924988977142427110854072053963131204277218610541233464065819449201404113245091179199644603474565292017807714249692400977769107213651958308076965708841863249112892357718846294107310033946746392718556451608701866650261710055395022275542199342342970026401720554055418890091948906025699512415896633846573013411165527265369168322574519594545013921454201439109010733600356505449203986400341793395709710556240293309825510900888014561698080127431306559497835053887914482018786387719055503849525911602764703059958946636281136175313338507680717096785517232758463369899258055139380173660440650644326256062683045500508387384984377373585737928621530620651119859039831198229412982777453777091057036359497001384524181105228618058380615711307488732403392886254709243330442553473063459659515287670335673809949678339539372780217093211124998876984151889529202824131139793670679671510848899093988618778519894657544452182891643320349840566430162119474286040222152193552847392974674949881109910143618605607087437517071495206246420049761157890196389746291821937444505976563340190664471112768597676969002581964840474231965948961520206426600167429739951804748583028414558618499126869718351819755287877773349222396587880967938108909400659698681848534759093746793011279620540181404781175495263009581153606349180608231448840565402486325647611498960149859776723708331858607429642953642952742624217684324895223497277503903671803822112130210608815925366532293370367664380860726322723479571411245542870390152379401257308823332916753586040779811481012798414615733864459609117634124062830494585483078645858929103269429700764121455466098331957083710485863748882141946052659105516118848328249069004695531163763164921130379622227521693921092660579025028406386543738455160199716933653341958192991140087466855291238237876913952200319200574161282251346768334564594344619486410712104375094822486108251073588930396901956947574958421387297233749397082126539204110239630475853289613777374825567701494535919243909207555840286832023995748775733287797747274445342337974248353806437069031279169585067960290655463979236297379862959069881476503932341520668565744406160054569859482642490454986387716371490912889043427144670097670346511493804224612812743849366308935862278465866157477242088648667370617038360629538770569910514111705799625456515594279616263591582941260390920129389187486781882961645500861614704430439698872558460454304323534804013628574949792057156616558647665757513990823177339921551290132519250359165058475520480125584802889399520770573564228521473048470726866913360343049754962972804359641691322829217614171116968373759837754588257543670665496503182538112242792919084580909065919716513025344749552326178598793991352965520277640560039065521704466691451760427433503894745531123845252550438153778349816951454736605374719984140429106086550709359146215560419190731499831771584783797808852402027557842585801983205836920892570851075452115354734445934535051135538447415227716077205149593199287679802296242594319832175943010081682555982277153993536705551095649557053515110315124167187189774998592332664546581625239117302001806201738445505358740499883746498736974209615529079484428327110179022023145143920127488154477625226648245725672334497837102991934026216830676973802901685712809216907632808895446066601162961527875060278342713449969510162964492059711853598933370603819026345769182571335795722439119656026070536579248830316070711636557900148779143353491833315770414146366834851110756943898808055352553147701567671623444973661215871578332542207140244381136715352405073391965406733134308632643538412916197145664321428309041084870785318607257795825060301602988066480655339612920010399767429569476723905524187994627239108372792643849443984042494919380115047954704069569263587680159491515160803736872796014806884992976556978447948067540331213162743707020265480856547582510446615742289330587706657147252795920732092342586859943009590202997451967149488204403774875364542244070504388067922139231230538781066704785794083014172901329263243750316480890629643387943862109875842840035257219210471019407324461652780161102325480652196273757215817795299948575155240893240717612246536883449830045257004709491827271151755170950352422593759028135104859215958262991218265680969851162935176307281924995381109703528784126904523099988420148258562858704981754479045235417275084482484180564474673318777207531167848987231747429094302774207126570007057371409292474615510836500890195385528434961691414222518094913829633170430863393674807230075384641449588765489141508957017775540110230305064094689478622952583074155490792771082434998496768465588065932355261412023731337155398313368399330539421809055460086186397530072316927188590944625900028220793946784200540236250886704754012598705899113184720303269253395108697555376181127925058903695290717099671602090220827202301077910831778377958803830871127076367558987624845699188448142149160532007894084976195746728280090617113953525444176695507332097700645853113124261817083027157886485661650244673588096918868429668268096691935058626442890554654768599314451342258515156488745351151185582476077208743696650399870546254161999766544867731421674006449839468169839646032202185582457744845039483613316267818654466419647324103891858773525297065855983282162637912073721744126577548843247114372521905160819976407807915646299745508329399905525370942308234402627822552007967798416825382120327915823560336176504172275858072296885216238260485843996331341468766047856722101876121382538781187614759868887360006306819958892578426220069001918917814585798401087060552299384002720184594709292546884118052174569191773088620802491521412264020873938790519554140607260764979934103107049903018135715990958297753468347939231522848434363329509520248674543150331180084437646461607892012389866935827491665386951409965318582779759961849545161179396022520000260349010637047739493745296983478388540650071017976451041337203840079614513687571487126906672064977881149407130178544789245175807934550422395216578327063710113416817542984635721726743605542804632638763837611013127256167731574423626581217818680011276182160361802290742071867545250950797846355546029969809716205190380158134321484190227051107901266666272797459606015878539677640339499101657958884034899636959590235026597816150777725228958193027366459513560008902435149126320044991637738895192479386211584511925830274917629484005332229473110588227535263311591938422431027145354512205253429642875840949304550809728822631185760202448015657514604810460523757320144701811707375937686683855500726899204805787488041555377214357843957866802270549611793051744208642822880887695465569008259511963927275949902113263415708693853149662221548911363326667249359472045895851622146317080057939464751364353045863168747780911802481268948623100810705022222010700562073569945337592635476488489939784263155886860632905933405120065498161250613011365057344359581331096806531855523709681156673012961224468775546202757165661302292484848801180097879831853892561143824738903457240546165915784073025569999053448038027061750738246804701889455917804365464624639028208581880590482272297310093163617645906582480457109710395328325912832884350907077303808660269490134708416787324729054507627842660167335467105236121190175605202433396393000394806276750416106864630622808239672359441895771517434354446673823634975798780751410352307181465005088357653508740096725083033038419192313487181269712004642444397826820580519503025777957187942558176103528997150323716618432421048007104774042051228169025197271385415339719693620499252045122916256130679369194080055633160554524019984268042717743486102157349927868365881419005535317955387120373522580038452713914496497111659617781411617743702987683214741947357422287976328927514031754557237028703807814681184304770587558769018866743876950538153048174895092367214186153840168240421861637496423005701857584630314259717454061856306633183467583886586200237445526977708487682267697782283099511054480424641745742444689769423506033205042086800533027946488620407844691699634745871801898374956405217472291688377939137149537041002755821614911640950289154582663349385914382937565891506388319159773084719518027879559156754354457908679223104283334198533400098656630468473324298227830181771421661244163787492261925552205143618438769871096691758871628423949807150496621515741475773737466563681959092012719174729711504264777688028082265857407609535025438149172209054489812370060127479288782635599647316724582608639654603084911235571953980074925582323662733720087431861344675717390941708418833842811374857289860054070899828448321559064271718361154526317126065211462534509364389203185940117400836894038673232947651129298883991914929957958762820314980157088075180996244244403985396461541102530713144964839630992053637976656424691344343112562690307221884622249803677943112705010051647472853551003994768656562061050734236904523100337717816677924143081734120251621527712147644978252183578389516637201402529589770768591373799645460833923043906836406027082207177148555542521022237687786127567466731790445763277202819571702447249825767214733172301221618619213843441903201244671701120262770199557330440375367305651642207503486046485275896166300487982140108999728682915567513293412302929165620729744189753885123130594966831544663775263496872391803706355367508866541826136386402427655422712878272571170463865028518142813097260542692212581701995627840741232817094520762102122954125622630691040221577905536835620590868069861121365432658617956730952680561571377618603063372849289263194947860471026652997357152256224695051540665771940479026372101637109600650222176880032328592050436707712504302031671794287926359188266402646490676039001773728735791404150403623861690582155368137908935336099285199472827401471451691612586864035819974627463493128208445680189428840746084228685763891411314903758833345665486021289017195653042250699532626494105767442794540144904261863255757280262674909561113380715723902438927505727412324635003951336605741650122765755138164082617698915713268265932950202184957533765213254156298241301715945487168051327688418525580120871715116954522958312635535318729458281221326266501495547580766707551890144742405220787131670112399295466503073248220067779919211945248602949045247863112686863733131499345069137708242350369846466835023575858801832808713514268281314905009500254103571842219757705507767727521747575036214351172545447221878640324914099441775027291317962349614131719297108252590609640089500728373826149980678376922145618239198511443277616174439761002718285130517411682757147827780131857900747405206038149120081971938668990286675880152528481386443243792917063607185295589073099941040052112528581380871201041374195410478395903859292027221739671862648035039053761469573185846027973997253056022622692031613502253224478576669727467260857153852122781221931308235105050614103652904528891260914149844683141834394025602995498978222752618872427341099415211403563641175536795046324165889783839388194826090408840733924660247990224558534446364367665136908905208599502286693217239291202756236605205266526160881976264297971866283354458987501546263463586358533868358350336768921744812817100575239867619121595210472949954290714418958564086584644529340060847622115322316762692914196221186695777344686412608959320096763876528940762300301714198408505004808229575625545107648735034978075774003808884218387413389205962844178676219606981681998751120264349397285811104213450187404654732042400782360656884740005400882023128448815829542140413362524534298870067684167856279416229281471802419853921998701695591862331771844084943036374359642346917443481839835069340866045702949926180794253557095909324675544964081725976972601910877106863301980246131199076752843372205511655641625642288179794978763511744644116219180336667908210407072058335877589701522150040050596746757607921197161715987729555597432144158746367493613995542038048194279083309003780676810610184632979295044602776414376461694944234640931105573704574515284442527333477386206167417778388903875652732816503728711835137501071339162706785016621095724898322113929850723438086750266191612670818654624872521149523123046580909387341194701620426747003014972704794657251492723938968969096385298462956183374960956308574073173307326361778536526034926416087156513909981110256365717629511177770091573778649016808862003693398067589396718873072475304740797595959664062421591177396732382246894351451831906586968818459707479225729691997803636352884360065352024479801301777591035436869400311356565138090956647576550609170395492618921017296160889907093420317189278743099148340801962524962905805547139767013224961988543329127105338889744243642119153952214792214438073048462427109642073285473589042216906675970873877238337589172551175459200142153988776424515011283888500704764396996617423814924326662900907085615517727834760896956284231817474838325050350709919517316112937527713641501817420354584978688726750935536942901266069296248543693467377729042501483588167927771980027727462396312198578076970320795252840386137971443713246449160087694928994715239724433883289065690982714549778467434242476362644507405330620339444349561349844652828372211524789213524412676655176448846731141399611563620900118165426771811303623882223541293098018627335993031115967381986134319250699916173879040165620166862288966533349676901252944242151382000091032105794440530701367586141507396445327813867169022591725696016144746850631909490386633785768820908870333447529143231016318776169709471766688174309458097329085707594898990766581965888562312543919742080148676082671487511119151454014715387606338608501117532463393547624784771563746645585523450157317538348310948318938370988628323122026322084670890583237559998870645982825132628687821532004483216657146182204767790345802753160554713820671129170089781485299848430206734202602630694342246445641524951563074704363442392975032988640211961422336726576820433718756119142009041283991733993935823640079305009246198430156568921692036840441443650822259284249816803095654642113431962534042768990918814540188620781348497866531925841789830904244459652491450243545928189402277602961269032012952856984830126743299717426687081565763152379983735438714662855702345397858321477099241424297256672812140999415375864233521373468315603599498514038406167361658103114756363938904042059348109607597210321539009517223708836166845946841881111788149336043440286029359441594722963357821546487470049366532034414484034720781625194044545389379020282391794332376181725350496973498130072509874379333421458236165286351728387847060843489521137231477010951547194013928540225871672375658734921896609383393988147249064150971614433907567486897195036484011084277854780547005006613766332177919541436869459213914489771606635736447467685368144020035330619538090220844333856874864331130391867780871737744232257384460980253865121153788541035599458305107386881022363969505715241239291557255770143611665023404462728005670453654609509746100077591748831793281025013546784646787814142423823061101964283697678228876411267227013577915030411970208107729662562344499129348875192908332945714006103978976405010410865684013935239305909920718540067840899336442904296013108279778411490007761719805313607856714458063713110310979086463868590872129405607858696665262011397256375338166040582970033104080890686066793264828500554545117636379177416261338370605393514766541946640947413348103824349938359750861998767534305248274476237003864092624915677881517879377890599239675683526556695396213106484516279477405678068608791277245959231949884043561428118577276769746181826192038587594349972391670009163271082193052982349883011722511929454808728092215753274937671787684052327307676418955136214557535392023341209752491324949512091958834101986035189007933490301974740644107082277920931763285116397822441793636502776849100547042358591824931959001660692154569403797867823844017354656019705476429813052497594385095816092469820168421225408462667467944339885058259599185118218424791857763029162596556611756543331894568856958901653033501597618484850182837329778864379587202590790352885795564287286644539885462315691834592240082900285056418465394479850503332231668998967484400152847642747464185855308158911172706443217625462415862749555618868401224699668910865368398035425305907394077137792675887177232836333403837905927320609084056215428773155392212857849190215673496470366949419604578893433673925767822343518790232878337896610993380382289016966539204636842364382334511497633886300459745698079378618545796755513161824569117535251383126410452537595165694490445169574491616399043354129662147491658005554277311793333612656637900054754814451867152014147805738075265476236088012848819448734008775275623044193245332966246749336691344964322299023483489318252517183649618112896055893989786440243650625314069457565889159343392683884136000635318217087848210189665488889732482034338434865089189127722456618264119535346112431875882806685879559519664589710653399942187984102759708193203372355891735809016114450954474458169960552161899430973165688938013116707240438636602170117072497826305341549071689792379927877060535509415633072811856078615580075468482439880368538537198550156585689884131921718858988552786841018782836004069015106840899897587351699940122177848639543941788053822342616882822685956340973134510092552071671971654242039962229112002722430380380998774967553718721393324273917901462465168394268793424260879774814186852888690102292938434913710100723366889496584681599847964574148675393252897344315278323943596027981725565647975670735878698171706087531954010281578596669128832242160926194659523361342145248785814033247035377764792631096642020374825747594194141863932365502728084300913974509401864140911247195492327054420035891234036275670046136690922315016950825423715497268832471485149746434244823636034238523291668019297262533240256158901280798380463566959998268429904824430571280319168618714932269511163086777446108805598363484529734344401092223927995423780592705277249751212306571567442248993104728239681452492461196911752897162512978014343939254165357564877829651033915596459001244710690703168970525975081530881595530820399071343415112097122696631753886820479865223891097515002179867929097412245483450008652880023971830293708662483346845694411095879679372799969586722797241127615587299727896334090865550805807386225817711476552595488712740497949614335703089725487962961555090764257840319273028702910550444866130711769074642180799612986509331561512357942355932197730209333382880277337030370906832932528786737450475866643983638325313114293583431161105401943593639284350666929696097627555571805726515415490360029080921763703410132906078351719489353712797778016087851632373853288295699007002616188032742763904246439543450723253660126979899569443605167609517699714951092835653034717623854680210612381279738226371533141594886748933356111383805635130490483940782042702530974442254258837307990937398273707104603220929537786858764664280531363016314679253353293772327486441412617139049383074937719340036046522763673111600317936703542476147961296057682015585207764430517916702447209806810622484760392387663349125625200451574802441007267172397453929552069037548329262125880305321435410324530419087788364157988878247664119255213051374284162832538417662686662768660315598214477819659360249702860662074383250925477034658055392982461316022757949552708438494335373406833162324853843390635563050415798759465700541851078390318579099062124286679012481166093749431340818668653892109728785679159968173768759392086518276913750689791609013367922636754868646713585597306967596041991150697254210366889419662176618371049008408717372232367489048714061687902468710222203793568394111461132092396733722513795007166369286328145235631955656200968336481481867436858021452304745065972036376092301299812779147188947118345508307968880993057873816800729967569761135691841215822933225371744418961769828856427393506644294950763113346353775901677748903681522658841010497524005082135596136981844512094258351662400625833693412403577199648638356428831105676173517796847359602026224656481610984197527523897036060541938227334942152712798482942769319935454969189129222825529976893429418797192517578363069715384493294709651290028031449446755765152016090442117715707894857137360748266952955522695319284920691829609641857511348489627817743401008399344335756396299535613561668218722809505550482096726751739839544128316277268262886914100756235428899141273605810370247664369323708231584547916711608736370442247387760231799518800312071574943394216330001046979682565332896269815310662185272540675212635954859213183614390926602867402467596752871917048765476942586088463093947525701372081658475639441978706566571001688606377649940127799465397155455103371274986882902670649154918284657179537230726896939439568995874752052468084040553385332177040762876529041406036910119278592531241055114936893788713766618864043084453840060522733747931820154199301818929961710674737336305283160723498645596047049541036180518147061059565442216803819606518467465767724240986646645599531614289464750259467392980351543949415434405086085448702752774635406574344876665155649533648222352721731256894774945144493704972005401015914998368305017296884065417223883574110684809316108706046892291709121061881739382630427820115836926646720055362169270342548559340932795798992928055852343048792158994189547863677379389969233410695703908115690339793731928193538906747918966505375042633692951753391392808251560945829811949000750176160038460705261395538253703341221258182535543900446237346454683750703837463989044517188241947243522767565417722582314610359673192541349277395012406105142238946233236137959928960618205961477774881258315379107391347023620619749193128154127524056981334112818095475647631930453371158271336982604425872543430791317681881368041616067459180803615654090664592906516187445597268761372300853445999283960767867143737298892741375557093212235190327331088906770499513412830465409804437496922441621427256793169961484923802528264452008246261894455667743053649293773497844827223859375889821356196863460282871260276807170331376416021970052585457293949935543871516297238419321566145786404458198308823377383982132895779419566496832006871292754153529131121641453691316626371786367983093994984361358550813267585304539181511425820700826674180863262057141133424870328580592167860669400441100678242694189141916559611414210129572149216105072289898618383989285489505680998440093280046914680190083292799034527491849872801337971956077330105369501409358479358665255700334962041826629912534853745714917327052862074796369659365731420351869819355846974198539360639458272501016511346759383445636394595583179954906398638999832342440901173753502753757011052098272753083924241530737255166178895951999900043425510976869859093812888144392455277050141021002205349876258636959776625585541096043320688343623537032875146693576649400306853000036463455281422704294589446341206066317389641694280161910750480274555027303641413335174704476424758457244445233551717556692747611497475621205702480104560267882473490063150115511651187192846692609235285851342461723356034054846465120447138304500789073505593049772858977431144312988928444459691961209613718429812424564588450484074037483748591254496881712633691889835203992346182469712266015370684610055831785752974396772269297359259614737812040627570159883192955420390616785234310419114435872078233762052391629532669039057999502730833905806911799099996485888987121632308654076988689703420319504945096620817419691034705183150278287396044045169512350189994389911529253609319957567782521725918112173216429102651722035710907887435050529826309314399037108561293116831018993665150780310757713069844355157775567433031689753384315284724626841740981449981330734548898891032825432898362751529155689254372750514629728252767014679838787830240588051623794258719206127619254226837808851360751125552573863532709235605954542375224204799529637789400479885932594186054276709010227408950848895339628321978366011196894179714846421213768440207724991009760310072611687890307327790421256204301356393207641633370462589844250504465289301681858903166257048825615582589882960805382225468005708646593786666689179985368389749344368058016118299534756264116642711975195446098472811660859613552294811067263717588802867246885799300487544779955844051363607272937311013201984801831184454134326946381628975411402567651099851878124239863183177235040170066508381808833449975355411501005913386977501262173825422631285987090281744330269476968985358684743526176634003039009721261763027053203473348074176433707411696115320647236070107364099520924456940352898227548957127069408327565139801420404873487026224748979332593141720296333826483772475200302672988508072228203036219259870160732105002120134170026203308233230586087149050246566376488292927065825415891018591039417441779734865297738878850109682115122375313954131989510944009400532260865428535289710216036961593007950204476585940003019653828936726483042963516348066274788142776876823332270591541967006038822599215757712370002379781149506763448298205711547987428626749054054303800407121024803896271725187211048845307477738932706537175745541542960072745422228992601099307586352973710405832686727727189399836315248872287406364085796676220039898158559017316248999463190731944985916306399624487466270469440981466048459689943222057711347035098989120288634708862519037455731031079845123273230857820267426444848802260451714558589097544217624060547076205775601469550249813685995597527003033037226006655692603336242282294834919422939651302228087819165702341066930852183795709262205175583590865551204796571291293524646979812709030080424045961739927849970246105979229131599811499990523571708550431924029208562762392897642778489594619288756176946860113669030978070684030216111410341014013983900301864829306233867491951852800909712576735277470146597824425656884012061914177648919465395904207003259295253834250600570724128223127328975098065746057613353124734193262198655358966998972003949498577722194282613582788154173001383187104389524769325197971719471473119238169123549748233080151578500928092847448399704930433839166304642380521653947127558960479392680022422073398272442548015770952975525339341199282202824949080983286266843838795515602002861534252173399992003929373736209959336775021810595714543558774782005448061807360944043218038789639609173983904454831781266139282526526355432316472123046041085337044721465394127618946135266648507397262520589913503404590493526872173329221920086829782034193102236198816148153360420875875833302060705157360733226839300936084761396944154991042119866243644750672274507549091875672513440699330555137829839527440870640701342077476244624590619677087942290004142530791620931245665049551298720491030624775770682478030064192919415794849638201704985225131597169370551670665872983990920152568946157015447302739941098507167128003033490578600059830465376751293909841710671082356493610135977746770955431716177392153495016830012374011822563643241668610801736735253666992398717353299084234162638349635276654149578605401761843304781779371991323095447656078185102709610555805102838216274362358241939081438769237592086749982235462957137057558905316482732388838224110180832851636811701755328360918498362925870579680032362596824395942182816697399747173296620874121620244760153732432818935637505275960067243793818778466305494890487857641711302414996879828730728468894383568597984460322373549358516995299930859695721967343116609302117497379566842045922796827928833511732308181896003575470949542598947330141358189405847158512084676963301397514513690579365590624872004004739301383021858189650665283377013760107431981136788186723927414876837312589299441213575181372338327172003171871644237975332725653435423451439805345151457823170254840878481846480166854315699809581202859670148111341012305181204187044295651516543637220263340743413819446810845760126755614775738799426047562382351095281919288338596559676883111046152962456078676535309850673838996697091901398151089230399141598452314495677166100282873869226166616940975761692498533649785733418464795825324867120628568880604976396865603259434878777913332458850748181700778091984231848834335933113953180975383321940472179659414552335286024031633596316778582798222197463126287280262702132652811869127638696037470561537936180054088811202198874742522456962478029885823935695889120757816805400979158770547438513226142845269747047939278989288366832833055793809355384571237722063593477266561238547444229164356988377859247538393777661259944940575608643101301810274425001491549749126830408013281983864978649482367319378709404420873959994968624964668372770645191164453369669719378300184206261751507173505056539216816291620604794835971211164921935929406660208075008993621087394240968689172446689823207885621630547586113180544670628773621059468824989129918456023925943447995280522760993824355709294206345330739444236690181342295623331319252718576562053988514748993532455120990150086575202490588351041100577040433032959213936645470154870383530449708404538372057390607943074728677794890023467562831188781921685331244787662016793972765583383678138721043714653265202713045256139661133532135851879856160809364231620427112389641441121640355822284878364467650851630503046035000713553822710967360005955579473456967048812765777048902606520760739827489797632815641263317489102724115211517449314553716836981125007322608682638427751846235052033839255529796261652327669638394913008608978168994540082252980471411342052491959675005711467633163853745186708565698290241147517832135976574548042770622192193185725094811564742828520333919010435760116752756702914171862831797151588049879345928331924478776539705000136175903417114704534042844424859045589198992302457076669060967504765733690522253594874042157133692517017557547501880378004713503307202375632231677624213037603133682505782871886262365607207288496587857460575380746543616294542374085333638555539351355874358245455543434700033515723197440193855431587134038787276959795106404173016215757824009456786615200011789351483925730968906010857457834474023338958151659558765179954198744543055619641097144157689549415561946905228860682339221725937289752159315348515555358507013935356093202475466613089575576941885847778819517035958047376075384295889751968060438391628224162616099448060775744028554722634047018379130818075116970379073565656902386282852796841274835374212959643196378816543051818572673117676462209946043966954310166323730058818929664401174787453423426181771661132886553835050345354190801906890109074556813641832560270476231465952564384075475236258941064620552090656715068798388510374284312600843521912242376446155276006402045950393843920866588622664897142948493038971087959573283529333174784570851567735930970618977485483623282075885045394470646842333021249871576405235741473377354666733574150875002266921721523848209321629439184598899871630351720531373865187276972862184804360102399408915894127731673783594996324531598950614041367093517357852092011092020419791722591067193184731945399772252827987235753051437533305035050391953394502751384484073833665795795334328483465083124710343203660851743141432415142076242299390963888456498664208258063535528652720244575640122463330855185685690235085248709091886781759164793924552061553758094592937629867196441753660629875008518955420878274894681176454184333493919112401514504024125372047281126142600145331415996171572115269044483868796689473913295346220750754116851534877336595303532725257103117459434679998970442080396774376023510486026929653626124927013205372881724314468291861753100057339821915099779118970338769193739054863499755446313564982829894103505844601886230837662165888778334739118785755116701283915184583492887294063296766810831305043611034926559473976273515763563181571372243479889709920954002805298075254014987752510497957638706684278108665180489210965192715469842681765777736636182599483483700988546215915181806412963603074888033090865951163351416945494805590760229368194332945753015292303589891795153013794127885730399814686758025700567070984785749752307719977059361819854744319679437020726855856464336323535294200771706492417158579844266742659823429900014203275066566583084484636183525105996809885696032662254931750866712383989536978590231055451242899047816535031727202811779099673542329237391289844529236705867450365062561215861298515833139003960216118517271572050438959998716173627859296513944937636677713298086190834121757153714933710776096055566693972001250362043551252086091986494564882358118215417605564136740847724683341500858908262132790908577730350412606691529671914177445621386650298336700728505323302065983599556348369514047455599415428309776066951377076254306144164099250137488790534486256372160581706140247394322106748784699823367808840404271093494808008646502019732791743942648426509649432389994750728257982861082367707826310202773722595540933514689738866881018806358651772000065551449715690343660239853164473633554523844133834951360788597786089796816172269331087659074931399881401586494803118748103242594265083447884647122081481606447475267681338859703244563847325489290313139764167090135637071578730632049509496473720437323074814960021808750060374100154898091627488773414128400992606207196598615611652119253716867752457255363596523773777249283279750352082288964030999735589701110844225985454691212519746234594745048742023209664339331931248409672244499760490797010905750700095256149623120561862281985965518506347539210781456525923561226386161385246648835615952468900005592632462687584489707420091503895327653614652270404049135269557151132295922261629773802189992344727050143717173810734610034142939203129308918544228247104834681973279908175533576660864446457126476796054130295317432174103674138999049299434988967197286286661414810825305430821466639558948451611413258052605368176842475842923077907068283171882108790729431007774722811188042501677375002853583323833393151652020097740681636177864182799353841978639247732186439037934481774064249699170416920439198079585947779791776559218000584560912243086715623513014338532887240893298972857778428980708201797620303309501907542822039790969012039607462108703612281817792624661682852409835578162610376247873029684737325185438186779302551890035787772974212269440082845156831255529818987552596723676967298199419557263893775827318590106255499423149584373184226952724243509384868865593314610692747706189061785653823519483482223979043368005129788094063670904678647994674961440400875655819932444043203456615164356276273030673593999300562904253096329164643820660179002830108743010694275753208293704270877743557976096283652538843768331173832280152578571875053991004952307595676445110150851552542680818042761522961681081395823176518481432950076593513296503677631425407312245930924412692648698260758492572850892013381215185861292855053765263223860953895175550697146002335262093909711506278105693861165080918321922078669503304170137041341141761488669044418312375355788496826456636836271750040742928182013668823396367091442574118934267685278601586749631785651612969689597603073064975246236285714399234416235636991365706388420508693930912463399232313828864213435325767154549551332501200481324010260619547338150207397049939256477765180812473315400660728815281320399061188568385940838188481355415116723650127544333340786397876211647864345477381796948790765633409795810857430953376264007539360133482044627639510110560050748489911639893697003278897634838973093307618665704471239475106469091180021805160140520505619569838808454381427311264668329486107431577143069223503154448443849967262563702613553910692788007211809943304944062400781928880523703030983069464151005713710198063330916928448497784661911271612980935756340175438568281526653821920849570853059630554083506065602939652430836776078833171307299274469877770290482593009751627416849334558740494419461521878530546877699553665650280695881953032559005549283168634212858661434840585558514825080099424895417721983106501267847864435340730320269765590749156247077465799123012636913169224242290498511551812899825784026251855224740894929388718285802422114719711523147914042475141978678824212855687556829332671383330696523992697387466144369722757488945035764210339932265934552746922533407949144646310693275610984577714668611138452717780761435787995481124773297278631713557317171944759925232140748699822370508764285064267281675903777798564825679621884132155730298964565951622693371021054551509543415405348844928865744701991062845389577408524885319030174863714613019183728242463876478367714483216657613122520186198289690212496519147436098678743603984918978846228970340460689949797663938280430181629608754912792836271614276500187965504528704196126411482902177531819426693846767598750256242777208098970126342354570468262168873747029377115750698529828771655126848288650207481254398817216130125248318904824453466076293132555936739691961823726205935996101323816875341681950210943081526121825981465600711159764256177067917229261804446217763383218528563971918112834448329265526587286036720226254968553208064873912398946963037779423160075888690692581376805733063128819169877833947851383162528305010175986038548718214552512484316679251988399912641823308620163098093969506941591426415780868743388658979257110142232242689027218322870644884892917905907401726647350610836884624712188610693214861499757126420601655070407702833238486897124310260959389551767361361508943485241243882496355074742134125598408087151124817190999808139207040027565096920117394620041664993091824581276441956281757928911094070348810620633591651983099764177465020718738822859128216576821084225814838757288219140246614857453539817713269926179137071237846592893984994591926514411708724632430296864279520032201093548506548516289246763061780789554036450801917460998860086985702380968288440460613263635221827763194253479540874188694424066519987035502966740329159191363809029524787566736134503053922000864584397101640053582944327301913256270139444816691420258612097092310594995417021911551594949292038109524718744765186434744144308109238302969045925442220238414290948260824552715158610206568185135387699140972973115444255605584803595299709894973209400316511440847209795883382134098023744458907227119716693721672851384368261321126196532943465140578996271060391095918942306339234797342038174387403484053685580381789000206250952983915208082612301600003492278674357932541467330511436948701937225699546244134258894123486962547153475788679406917195186586325891400319655316780860736940567544402584407334954051583683594457933544187206449373913760748801289770547833761164296397024216408315439551653913561086116399152475224938549086195193921728254913152219466218704954881322792867821599560043515630345987871782643432519964782653650093564232668213364805476476287317405621382165194013200068744855469248498814551308985212205568783563746666643632510516414101294296831216126787907747569880540204702721874510906589776458792109435604689017374548664952945284942405531713995733798914826659588253252693402488639816190058010036700891001350594963796905763508008454907152185118719048849013803352978917399166468618395336476293124504506253139461239376286639770178874293081170242201054686750855913985858170713485015545228225204730686167636367114966273908785088410590277962568447423676318126980656262515681043721228155130115938126290756929426394996661516651598032202573757368222156486500901152115411782956877871142477463904601103458886626164771858304531823580718282690783729173618137956193102714335933366917026418509960376551321063253341553340001341564148027514225561266575215793439354456685021252033417805614269038359932398414883229415140168161818208196261445381077234130898356383524459994345324791837047528440342922814593227410152464842142563129146816124019872572599305957473549047343205770832138723466770864935199218516521783024788041527000423184684442639241253140666278935529632893411680910815862316285124705428139849625185949016124938099388129052177610297298232586572228293459400440407320286921063512212972294596317803921287417334160900843767170366540065158956972557659865860762605184487902425807172230253082700190432907091890518260127700578557010733388754599700243077168421781633458370649869262454779338080461337123180222874823956098567839327355459585371107903683826263040386156845266353109750191156342793449004181467650438149515535512361986802104054816799695296121104757951083397379181680550560911722515346190187429630381103166507906521731926735387072265254997951611447028253428289545010431189893313369886126989430832419010691495300025421855611482594044291807812263208572718686795084562775662062429244791310058886034201356883035490351723364887710091863942894578528926531131426109582815770039948345320752132305832210391110136376856221140470431625613020434873290808798026650033518407259712054401056904934836380413973855979734680017641524522233911059313127771002134101463847379587962349585826994291495403540859045887473825739144174079786365064566493532764079531005666123877584648191205400704710158197683264370573742225714371250524686224797753398651630731904508258432910589271667245968912850667613825978112887969786547709652465512758062779022613488718663137155312571867494457414021293315059313669913753682954121587084380052274553396094966677665911439312365375942024504910769096592755842124375489271406420074413068072885270653915946317915861858976784922580653127467779136575684235698502067985135302976488231041662968270153782611784994796443594839575114027776371158389864379496362375937934067950958343956085573669862284872728112607615588745343187775815634435061717499801952528439300655866603292210270034668749199950613732769298328243125871262096240698260635783812858687433234008665449014676266743949655129871090092706891269017592771110080718696150342167429172839585932165831032599818691809177351151900908646721985958772818501298138137436763863133203302735863803986866155051186591782361831871818791122385536934077728898165270982673128477574214658172658116769057974292690187326021527438397055704997531709072648319306540986978903038448741230796532278447926152372652666885302676240522649322022538973768061373187530921284184180115041518474195012540298755527417511755954910979079301046126596016575550439160792504422113299247184103821934330234830878880402600930769126112921742866767350957810112168339453354855022646385570991487042166527019539171266792196414905765118669064602249474863877648187861248185826006094756095704709084457640268373028368742564191591011199860360480136209544390725382465619723463658057021387643220060653556870575265522590569235370528053257542413446253002408126413544667574300432665495850557127943622402755023032749843425775493042962694789935322423624046771279146987304390633819869829820713220866721301454046141613875822619683556322241550225339985462501111818528538786260407195354697889295636088482287436725637790612347613326249908772739028716428852963889980033468611678605009521772337929706821508009563149460372247975516913448106884478258643107982747549159882917485768809731663887032930903873688204034917198583411417012971070203385501325261772857739017196660546049534206640980050403589969143461482510025335975935656722155383768884261023603676357756249476123368908453000449775007699117340889439729687582789856322107311612211495510124976684540238569036579011012775878461903807753821987852318861995592827529728609348796656051853825578072060359002494825523912084734980062335616543590092242192931781022782866146406745423034662018916405299949151189994727376742053545469632597482713007874256953084753577358139965274760240533022616170290923565594900453378293537954293321632331537082491774733363610716098234964696558105752725632673916302027849858742470981129405897038643522195482212150449523031413411305425278933354490181602349566277337812101214625779778499941512260512484312631693514527865606458115006630349214384484501971347567758890699168196932548328452443087675102760828234916980433926305220224967144588866898091516352718380979821530388102040644914822184138016257474179915555999586130251604298397402686052623355165668448300907625033669301701756741798552011257433948225355350504498261382132718566207582265523908393503840073946982551572314942857306341845450360253881177396817328735273801686451088405509294399548231596258043120767171427870138771773980415405753600214622833275229941370437267669635789539471408776444604883939917353128775045886998053985824155480610236056914763660587696123585737380903772160361697197015531397901431645989889660279498193744200937043024059117070129420411690062468757636964682124431428004404280713359345415351967844847830076659048588594335264492999482320059095338833821370661936909485392421427924573762215476501255400039362967861885481602132809306209697587617374682040205459256755223030880584850435905039887467823455013265977305480525835298832106709745626635255829623612566562653554899653791516614803036102350957289527104365763105138336747777377728325418810163961598096746417758554702195846313843575039642127594347040547321136474722721681066923180881438155301994876975525540872555714559800761703339032130752718047356876684599295406990533635261992997541332827315329397755508558815025280723111635247124258829707917323727511551917896573347892365379265287515422801856583211729271255600149822851192401910105413727786590069165509290132339302350143460814751801892323279985670032618510516240075690477863596383550691804912279784132389528671913506563202076195324394683475247595462836934613610549164561040399259057419283511885466977351961628188988797004722472399013652181737419618130234750118211975053694362591981917400428017463116663451402818801121268628169611439958586588196380407478306708986866625899792175784901651468099388605570275379338659893319748606507440270948486518823966852257738190600928194143523494475281566056905924428555543832308436574408767954318771584011258923577904887205456655219909981846982015864026944414995926193985812302321534763054645059434253114667844135547855453108229520049876272771999394039511650518581733576764263586079004693669744168869510993725583278993179248280712649564464290182645375250594195604322318408044913177357207381588309759744468584874582131483628824387727931285451992243640987973931296602924899297452650839525422875373400374867834485362873271325114949162125159451204463499748712481254388139934229267165624371988751658140539689222136768601619315678599568373574394310776078082404767990340036995177915223769994621237613177057286719373379352883201986501367227022184343696154673501343781580143405231031870890484223816066806874000631164390787550005111220063314659345032909776260026534644040322861845892552970812747276950597598648713137692480882735787911159793581840549595700944796000028850228538663474777685924205567548857502069669778071121152418043344645656703251697348089045183671159138521820964807961990542763850090914995467165093583643495613798796245433516657764322739147202849780131925810846947045162978368731025278022243052027294419601186792906152806923537547108362278777455342518720961886582727082306826258473227890993393111747118288815095403110851076296043049051158803645441763330621777169301592419323713530766950413312253420750804402000473220852401664943489293949570173415156405585899134594571621847456503890658583560322358968397228230720307638586805371435578388043890477051440962708450561840831922140256075345742590808278035802315216045803474687101950050339430827354421536950313190646465502433387356022953426011028298869727737861876140645555143818195213396218870768029212789776793659796355360861064027696091593884831070477119284437846936109235985326400512500311407604476385752657156500531389213486727036102765148404575262589328630499477560293886627643800361579544268557356220837700775326066277057098336183223973659769311363382228480432915943937828766533835710810256828432588555246883421063469017040743791933503138418279883080512723344442133413348590963549704309198529392489347003108427918012956228861648987363866696893045810584612208514614331703499572978490819749737211124934865676428606452929441795899782508306098198046703382834270189338450274156174708718604884200456771825564217850551847928843367544069884786618560991229762340164406053938149856025221952860318861471660510618267323653353861372511408179226752944616570568744450851614210261140301096970893052775857133689351169237166861855578096525923233629352415213867916413160520348560894813403171902796622033529267711449104703133121468745969411293867723503089880964345646255761426564212163026359628770252370224223862215461791244648856166325267773665588236635292871677500675839966333119294463159303038047907065918271121830707847432248651630969690928086688531044444112847325525621886377299184004143125492666962170098568926374076907913318397302793843330789132704841357467446899880514012211185542242839443047329119228763159092750313047000728436354494519167353146118734202251364234785921988169084803925049620700264558740820427352293254662735739067753290750128538437410021428703996119868925500863903422820074190857672371677261796648790855895559242104667346838764186235176738604836185381029870567261048624768863819341537756482635511300338525288926064111967182152135266274636910814037218052048717484234346484863676076581675727267199219801672578543265519177332568965007032588540217946921852449106425641355468132779160015603507932160623588240347033302387801958742362368121202406555397382099695764518081835702386452693883191150576293135512518453389722856458148112801050436516527646877576672527813912952379075669299011454417366389148479366897050257022662780822555983315489544536689900786274651427778220723946016418247299280701168402438246806363241335229712926124812063831978944194270224317220458708489425432556311252451526415301390086148512678235519548938418829628606861805047969521803922324557007970641218127162928454486181295107817772603766229935467535885438332826366466841050248100520890555314084356882414886276889939501808303564800140772875335224944898710199051630211975175971342442698277668268043011524962782763707154615832235974276713850649789252055447730739128828048338521368912813702030798979836989727495351851662546149414323766229084036905131564309822341192300525462794282537367260125313667416605175415166812485089701608102100468720132560769336305698063897164998236787917168059936836352322463336659271625264490824277518969832308765915511184434815707906394352634366679320545750816000877272725763518612897625948928821311799171483580798304555738243235634964227067999555435193751969480980240411328990724680177274395859522073264497009535283432682759427531248482068639521555684141366191071568511184979211702289265624337279910388674363454144446197039273683317302817096630189533785809861545317994490143374037124418745948504490514750659727200956185346751526640606004689586583054377517359941755770518013095791554611357842520290741630501805587875682601389207164402231391254347275323252581537533480736375472950742803000224103423437980322969103433870155704628137441438196375609000170163707712278630124432685058652037119569555159838162072033633556779724991019919785003656196785451195911592086376988862944360170718830193836987310523612341417419357429327490699256072116385695473343662475459423849393535418779991723226468828833685514783588574845051759474553313014576335976684834367394641137955549450750081553019819975541900001524645590628376416980209198855025638486049512875542207816317754793260688709151522890269577053859629730611767699440309053505401427313749033019064145775809353999353343554909016009473722795944249135050049611112026247924261701026584588324478630759419456248602505820863975334126837261834786723184566251472527939665560843247960980294719843907759831507513622093359944078208875049779163258350465680397870201291209163626294336905566549247791345563737535323970592289280141808272232149687240343837847713326324347110618463904434531883632035706570391597574175970863848005616103776847110381535056207994560503441642502263307938919809888143622711556020336269340001578213652261439657872358721144455290932205412512814249343878749896745930685512967710222600716565948920635632644866164939076305694813655726765751704321946293748811995803568360753938800331381011628412852378817532744537507114875053515121398270631822894803631931350307945476558000642982843597995319869905697297432782848652210073984974611485712960900425260247368238772749362617281957841657489257639270218211891570621449378963249928787477840034473490952419896602006788672406024629820532370905284299147558850017613915442531744154513172148576221505548602219530456566263342046315897203872689752061000307438558171452808649430517318905729788487439572673365576603959975674476065518769071914357701749870748673685048180448442283712138465501408085328443131662482127877396162033424408121011800743188857071081191339540134283395910110527207867141767439393798228069293406734759033768664819930757678183295385313835244756459937522064412758619690678116861682064126585583611951046410980456129627812387067946741111838891602375859297758206790926283098816166011007467521026489320732681122921157416934598815183627464452234264847971175973921155445971072001456807184668139788387000124773971889307023894861537588148933668079105569760296492496439695094688022004138268115893452312443252278163819506851767406152148658623413580481753611735875640168284693401050891429291373819994945337865700714632849366539438244887886415309091711136328664869658546991778963859642805788415294194782940885833002812825070520065165411660798325802366517243571200626406357028646203280698538566235784131456889605589768389530567710519830497123447933129604837010240084179878159055719636706029371977238498214493579605145946353359952978029199108678889665744546534676975641450075104695350270822111818913294006283734637239721166633977373995766917530339095493949184853051909253212558935616352782975035118773228840328152630351680400979284885290608090136739504286196488771804815469017185983400626312427076144323361451296265008959688732578932640117223166368865702052835046561844170601349197524998264082899455951427348912531066417871291884295067253111246949258074064497366459054094967671248382518588145568282635702580958839217218835409721493883241527147058818346964984841247228085297562752224835382673775364359542788945866617463496140026386238880343402509814565768636787519539812364571998907687233218279272651404167213948428796130190609314076635646518692163691980005459287490243001537540899364533065915921803550876471102109062674832754692986641909231989254250577845564657625792352654299252447777485234787670187663698187858941193974620481441428829822576383376088615960805371817526793584314347078247800284271141761117345527894341502321373003298397646024766790614080002588776385695067779533192527124971680860229947127286971573204647589409064798050585180872249217122044007998402819069723792288988047406975715948769615224038348924838997936817766847420408290474276040634688909946044875467062635456787350791494684517161281182624298543893877853531234085067320367453148973163286736795337354167759482590158578516154119499016764769092587307406851773321226492677690869585205045983662114123016976087230962587466048420306535152229523276596416482429299439261368217049894189596542678571589285769418512874078074131852222530597340133925338277718214173985904701101758639906427474905105930514830019576473152527624893741396237078631489973499312928838900047154801766427844919502585620365196256838282700554878961251962212900405794214651639954781522370077965550035021505515655452550351236617408365341893233479437747077850530587739877016105988642118059810655922615104114470972016827222553537459813384797937294314212462784967919719249476246554283856561314657674706731597597635681131497623068392063789253619982325909685065942946284139660661033299692772820335745050652598495045317275158593887329638010064920678207592210525162757019847249180369375374946738892074945270293535210449165871816586353186740420050042929873412855142434704031339403596469208502194090489777481440246200726248978424496726677185923503893277663427238213895311490311561429487525392775799536252767756643486610783396992861838617718362256401326404062215919920705499617154458236124710430907592639796680607200160947125267905140481610786670810108082745773254823708211387630001513528917027835944674836613594857877556866164190702457261241464372941060105847603800832784102500126682370330556133926401713067694682687994856010641856579084098310952518473769043319121904144913926894561240250818946054586765590740882375782385481370998442175425947213770740977331210209437329187310876536697576157770914482233043095742358433571151262331489773087687895488006473483128060860000917197347549499224792382829295669163326890916503414740907926935706402977207840819192191790980968419639696924542377177839456564154104313703400256991214726454829182891148154201070469820242904672365637233609356684259318695863906711968631863995728027018699423459337151422340074338466229297194434051736127049978742038389994154836445867698778866357127931634280864931495556568077235400273107740454896561291474679762325750500859259273885696461081492333446785180231086954950483276180911812054524531215689852071393691399667115094900996712434806016484029627958363045839999829917867560364483252750064514741429916696388530264854479917589538314257753982699342937615787207501390211619380280497866109874600516365852571784676364949713498831367293943155399605879224056757185989164744505905690597394627689999622606780319814094615490991634057623264452726690284272571687770817692838175293148075851305202812521934709666209981185716604379923926655604555889852500729363310160454253091407891866821007202419134348703944476447007932061483629268688004151843781843688944760846424851690172836849835588083754689290552985829191213684985186502589816158753660517480555031801803269658702543455505630947953598713756536343630642817207047493225789882506038399448387982226873791095126387909864655394879097165439225169497685928179621855852822767260597139730876463911255904538972044822705052348882062411270619708953957446545016867452936855868669283413810370336977422710808231088905322542052018916909571814578044227589447432965907341242279204069352108680047898467269110918688748932777749966845100053888832360827730334733005587721433255280887082600685105619551383267702611707013222098844458786512610277956072987396890321765923566240588621150260167489155178882523059070118968902694415907420263116871300419754927058681138289741467878277600230905230375444629227161610189911160022303171590334430837100971807849079349529334663765037023745666131981557406024750330744775531856543839520515966079232960386190692956916380797154301696474396370157565874920508960494869398948688576410573194570817783339005662436219970248314391340721663778610494194043928984650505949989673555916555914066542174392240192617059438051512736059356141590504069230724601452092153930128461201050543122394440860705125205278280769841460123637478270494429858791329241605322720605227418308696324412122249475886572426664546870302504086862449221088257581521668929437684621456119920879392505079378176104201135533925961804901069224552177228189551285467278736181186128089586719486978403786891756358427502792790327014704085800077284183873430862872840340321422635834984827433481273673377167055370533421833008540995294892226327740103641280311549527926022419277877799240487624104713433710630695537966197295272750712053018615959269449514878115186675780452798063163838190047718132104136523585725341930561382751654295972601262880677934443982984648393835594693535940079488074355460255252963462177923526250079759347836580250761991454400504465430182281487742085808327288674809506006057366254389845469673904174051452814379374181400893002943256722518548149829416724762713640009658704812962144634508732335084736542992091485652560595689517654519827106601469186036889232678830809440183804606448010529876043503329590721017625357922828110965280189709153298484398552140898989505910612534183227362124951878965251107334105103386157935529531576020266950564571015723318602413763840858922269254159560352492116062873097656630425964381411162535791937520587178570809530749084567566363883928184863542107503868902529369096939581826555104118256228122449634097521595983084978441522879865540162508595003189386502508879590087473362701271131164917325663173752624732902627501626821931534294129712189222891347224881023318411456666167779369042988195525044135211642182916491273330792120612373654725455051207816459122675876948039241348874992050970482851385140253383104096587385749753326882271348644138430339250780142306708345006682760449502447235472538417504491068962631540619697521907515822132607105657080846174189522529497567602467052153762862366837991010951463780582957971930071182089180888659481273684897103955043324603418048133122418690523717797502489674598594520217875667102078108359078066074389885475166710208304422366797574080750349668046355203961267877597557082385123086174339934311568876786095808514443804685898488946823602841309609892239283472622691480614360632056945457103683509846018695785084460871941772309693919203074044357881576872103490998188032627653984450736232923143682476701367677728960016879612143993946021910804335744077671175096108378737008632915192537480120108749416179944153440663766953775051060996154546803225911337016900754485827156025955034202666513147821414269784122834337611800447981058157381490673864840269196371577343299874568339862872342756994142836001902122264110379380820995870660003639403237384360607173908412127304484151669037109025737377056837117531275183402278216459490746144803553724077219875585165515849819147589905740296658091929778220606638172696094892986026956122598769594778305519156525335301986839960061224390289367206692707593047859101054489765618473337924486277814577730615344338683229701518015121860682099887076069312480959065440163836833346405391000096999030144035014684892846005597107289466618483515382643521304138432826876075643791731828523591702610710183190823963610830056572462270969903707724466825062198270416989972717087106809581702956140631464619955756130611622435983854920534911663929184392901188893455088728937914373940918494136893088894613648656811475844800372241653750370089461749383317678004069973629970192847023368126924272297001738947080703080915901947409682983272561886343692989721267807335102391512858594048399357848353115249602752672412390625259189805293053430855729686522557202507649649357012427426262724373640294209482139281865679859170275176671125595881291443193936898167749091938946966030146738549187915021499158412757119776018785336261407155514254731223265713103401187713752150087853789423616712307367119376021828813141593118826178132592273243239855666432130777598677505401792732534120161349705870659133585538503678620586846817874847216696949588659178615236700489860137080325410808325855543062105237804531131249872282591006404033580487707948338266252339126378800546174606521818327568630387696652796052670853935558543176838482158083233948978520493535973013537511729321525809898197078274040675130120002943665560203719746177911558004717859231029955998893270165112588247357314826434942206488883678356382757763134690389148428683656348908778160585579631914727156803759488838240582183766693308339126629031000005407446038676558106194414814703103681111546753498867690040558615729136291168712553803757134697008878907437195103151881234092593781294688839512445824045346454484130608351954152658059289458563999474739112307859855024444349809507886505633748519699128803288082932856963484071482465709293463619971331680850700804141609125386900615445339203213974308491525472922255485317614508435862940885241803720595118936466711591954497866364153209290684878569647312232055000434858679800486632269449774846442151991309050262988064024473061803348729339924961800912833586930378578030447698765942040859383839159548934215051491288327223459088364354994176047152327962669181147688661959967404084430929350606562745854192639749505943483391150710521931638641959948510223405869012476478738176155774896381723760292937861500331430674400942975818466677260499058145631542204220285725830699112836095530786177939901276400843181725327408468884648320991937908637656767232655006583239491516839594570442961017683838110681304820736348705649058334777528151102092260431339604746443884379490651032092706885636158204348711800807306743096385730026955177317426486175317796929399005066820137947769390130051503784158864288174613292170157608481325416173672426551736674790146890422352509280194649670292255023976928638434718451714386737390599823530107806981059936562852751779982562547186258927670338167691919665527550637101505155392487487009642130340278002443920846176947258788407447840993291171595068659393568343753159274179449173656119668471163489407871240834456794023318861012863814811187329949799915192197394447378128110757026556598872812702400947830994876851182476451358078733202138960004556137127479784602051147351302225541649281304054476361296638994467502380839018599568987129208772677400077945866681518788204699868596431739436495992138330354608959172051024130399342672894718065905206103978919159422032236666566402285182359279107064712496310673574588025436319120745089082056604523644362347306186087122669848715671864219843973813192612167246317702983537441098344217759988167796112127619303257573944270079836630439039744851632222938759208818145769667675040995113413729453270232028753622277427465226569824622736546452096467738586453504394777113910872432371289544103615785237448693700902468969169585041195683802702445475022965644533242352197205413897036946730297348831095358114241414329104022582170555203101790789043752445418213214229221366311517430573746783173803991037363580751477723053203992115293724727150022835161399961789724868094025134156127716848190539615088048837068590963250525377058444528699778925068019541746781476658128993351711298513716679621120848363462482974160192611893377800281278592055580174417889086745061310423703296675282977165103564070857658614190582002623505417269766013207747342122297339460876687667945837446264084494834467412737159063381488127589882316369344898523742153777909754685479965651768643011080461081416612590091325841370639199904536198581659008606724931024491306140626981168921050972335036746302372462021036918642244413435014340906638352406388644924851475497637661864120592408786770014673814087401462680415264884084673796122155485381508746626054244840634909628787627864086492989407051304736610710147094542972591212531157930442377631693594305787905356290825044137715692418688337859102597530714523569799025205228194009918819446257838423572812135201761575139414069527693332279902018345168822441313265993080247174470015969677172985420146814748687788811719893529610723234014236480792455781998903383610573466491484247569193228703512605507496773313928241574298191509033668801616576538651296573603161495344730052597772825772905737407887140358168786932096046383892346620386024793518014762744904767362759949496806114806269067308683288460566713320206705248925431287106085496775791579610504151030745912800507892932502428024358935043159171470005379272497171748749685366958042527820654360033096404535978175995318852349230825257900616171887827311912193335604540771605830455693590225794322883771665612980331362040811701457652186536606934619732352995673863271241698124067933275021790470624660645983641415723574179881831458278744193059054436622721642553988485371482150180769199890495950956003813147834045572054831171026512491708334678856336009056067902093380645127924924949528444778958260439138858386207943607261341443106965565684026196761440686851333925033462458807403730836945363443229190198029613212279715127320365930701825962817345507878442514214765463884857136411121767357777227448817474596042755781115016604265669885970349857192165984462946434311881824600703832257740467022631195446420134622957296773375193188795567970722309633805656146873567682492429250827310665923106493587866356485536271237989947062957924767022944922727523692998886818952637066960717940281508038014961146628303544271376923045829920956776383619831024377913279261578505571869219446838643800629019354202353394362463031976412382874676056846878462479923400524098976563236930263554291510668000124569822401310178136277538567209291971267255715346809706205101052772730859633456199308627538916311271773762755789676876378601841809027213279395482761564514562060686004428272111689317253826937898486044995068568057923062953910035549031527022739819093937850663321131512999772478011523993184622751182034136422176889497778511979431899277103284032079186748200739839923350798349484108128677650168350727604220226497065465804614037319666804557362903009383695915160268428450925164166392770032027413980875764309809937262374071998359318644046554956638838513813287866833809274063556152675048097959375202820203958663448825098554553665305182255070109158845012581392892884891548531117262097427585729748262514654884276846334646775272026189615473070498456626538829810483956655451301639388057106611974413467866660850293530162972612646526365337620324127704609045336258354386707438968553815075980379981842922394108645711192567932039480957229703758328590621697350553149937182321285133989958652826898265911479795787408003122781427594117166935627129772549477209728459724541203089299311903729203868345062498548794431986724369672915811307095196374238373206075592162566530094493716403955709232097812597803343267020485925242368317217730849365872115554170677024138747774964476216096975991730836720516856253099363468719872776078292165827477920083502360327935432145072502837579649509536162912278885380240290810873643979904959873184608237899318348118780858120402255160245249766234762553744412666376318570244752072393922592058185680853966325216699254994786836236222671033000339286987883451624864430304248912192083359807736142716352110111601086812398410930235680056277858822591028373430440477041473560309943585101107483473830950984908034195101785877726157248489332820994781016472631403932093832668306859064677620713930162045367577617115631658281501199654965591463698842120020620796294866612810394552393135931610701486407870489149238036715356930339958036152455596492847290091256577678227339953856587069144712669036812244092492160833086877552226598480857908793644612630880018175195929756429412805765585583325363973169252206139830076782337602825295158223511280754265129738740950585604339370819353815497401066081456758831180965553565746667663623803694897974436174002860409326755771407401199003614732395139752342987548358750721362461927419189220372831562173385315513875547712007190597220686965730853779845753839232199379182330814364124899065243260075530778997238948071728023869169660175706389211762116511213155658702027971201139256985795428969025913209784005921489081696754053129554912824361959532213132978103574601431079184375986705059957164519653175023384696674466705783714862486762297507512661568039069661066708574190071446539245825552961267711904750092606802770203219887522599543146006780690635417122029888076818003375067626883195180980658941718830128079068855969196076869902626301918988445687979569108861654539878228815917488117617666565931241104520507792806681636910636796247793298586596076197060016563512783355573999318581301895908119826438733250061324081705765484776703534385151424505535720392023739433184536505569988656210070088394578537237241902551227543284756790353162674629424869338550666349931774469284148076071792897934748641922758812675651435452081666220889237093497869352428816142723959601473881316439459444732004963294972273610717590691230018580458242336110676079860294412807074241818082580149687474157972504947380886823031604081859482273562079100963371395786094037502498040130132346001829283435417687282187253906748420991518797231343121250167738962262791447540162932868296456954173128682771614881813876527591555161637055382082627421145854752447486036955167882107621598466227963279817110036301727928398885223249459483025693679252654208062068207059994413705170449382079566474848265209756718324679905510485846268064034714305316915362706144657158795779128404560294057711854128511494795786709446007507514515569702505875716571506507117116656361737053628367892558238752456701995733511568394657841558894447865513239006806666251458357539388580314703386501004653175217032539905001708720529495173138011486748168828540989615027473850628404368405133190590730515941852720235066549301481282369984327409886434328237898410713424565275657615777169007853080728661109828065461989190171513293955669267435493717488705261559754748524232838287322773306319828929582150613328776672515750011551061829603883896633130665063888310849934374150154745436466224945456436808608283369254896939572972029654082532732967225650764841790916832556205696588818632897898783181443798390242455270738261912529926899828079395480453147987123185303742982892611301938127071140619805274892668666704935233363277057712491126552792845047989821643627106369677318794608126695667231498284922834981480150644063827095120235304886144088598227965648683835850235836117349303781672425572546446626731573612841881524118549750661413599607927919214821466175060296028079466070269125047997210906289111341864557378294584821960227113444383614182456536247174478126550712806252679066912667224269188407322014546012223797292095423583565328337057783726523045318530200234996500090781367754102851808644600155807834612661493666972486197894954896004443082003216896679458852782879978955749178129567390668728760984373719213084465291945549089865888391423458049967892487231689929326396822047182080297922199019422625962034506798152352400342811421740377092289672231689546324788368165337700135817729849283006823276637486558822565541015490517791422599070158340463962908628904514305403206951757715002168887926421767119431207653303345128210489067075152807823193017751905305512979918815090741946491680591947785461684766263469142736862151024354430719234187197811558071152914356914744029867988688309511142233290509226639040194326225663497588784381577572156290914140336633011799422889195956196281040186254431658971999802150493879081284217292276098343987219153810184030727998486441920269957136720895419395637855196555549454761354479408408959981659419647107366984130993629301051108366393434160521900348701109878073153488318073944787707609905077822124154921163584323165569546704338383672296076786404075258467665410069860224066539441566006314104978029758076286380952397212327323704470066593509280112889561833089064344432069154844060019920125759006018251864423932533347637221528167200169488872311385420402933141930133232085577294578936958169878858310078067698545913575099838916656223752373035857988862074652450930363645447200878090235941039558701919723927622374749052705208096723673582308028492871776356243365069673101166841735271386675989030465319089570436898927046400278180294300993685262514846012506931455757246285703932794329135555240038962338134599943885792885833663686805694682428929674297591728076340671777931411110345287042022684131963849653889998204133150400947890384772717667231806036348563450082308106994517699206225318528393421851797091280540889427487963560932097365302954587939961455677671754708459412858683171734386861344716108703903789463099143169842408424464330054154013099149922587320097156106297848139983723728346725133491624037838014498349272795827922016884530796250880537755240084563617777672103477636840560855734032497621760223357049721097054291475567405170169675780040847149633683210161970563735662575052945107122003623431607589041571628010264150989197375432358646994522399553993133592135580940785880789143177397183789352583005933263902434360066127837100714899954695673461287594549590343530037564451122481546716876467975086895553553323319842962955542740692768381070084806524318731132854251066900370460850513046176895285952423955759730749251360685279528492925670082742731136701984250914675173600556565837529603988515551260263221388583798947598206958464379728080509123297910402153605646078804856747009947899304239512073460431965838385721234899852138676990641890447834740389089116610188357886685514964960706615463450769426507625477621407349689209613795616937578559442865541363879638788839131273410395141627468007778040218512867522736186591296417676899418186681915434312138714245623921472198807972566797891843994800367940826950254454772203281567636462724791206746164040533967560669407527948330208869186665305294188167758053099676573711339816622435768954715480713062123903962391279375680488574206091322446597323317699669470985888958753183535543678808052803708150336510409788435859179422383810100683467976932817236317967135059023690519261771436555309312078601258191839967839462325588284757992655419208936280840402885088556612147427023355716868761656481732194329214139124126690051186957557168008177192053189202270282393265591521688812747528898861540260748769850578417792234784305789289520706462697023729251654508837150262739863293264414341803977328592249746591530662676474599774530057887836617548954356511317330926476118945283658087994073182258253180702839237902779373951461875234592336670858293811002125446320741674886599963809836593878551258453396886464889841753038542033479239935002660332008519277365011012340434486479391096278502988881946005631895001415583387752094281449720641668244107564335869184362223641366963488537612026180923436310111694241475579689947097578859703624922559379588012154143743386765493036722142497046886390648497904785417603591132845233873119933280548997291307261213411401687618461221445074474633267339291913270565396613622368425228639923996920221989287755668483041182733622440232118764426913124563702024134352130784521499531655677347094929548619833588387116603144721041861406616319781536395491831240535373390973243628133287072687852695468800160768441111820997577917022584380482249868891124440995277311261869351521653820852251780670491594374561580053078993270246315201837995930058418374692353247148459606501068685012564914667371814589212261111996836493735151626544462196385069881707287322192163471570209045176331152002622075040945933758725884666699846501589637122466843754197205397285078910929798752501059223581270407444341229695208582948670686260566352320795111795780420463975037061087361525094967477528973108814172546634509118284615910553532859867960326497908002503431604181557207283899622402781074139693328888246675911980680725292560453385404462316061086826808249765559303964028727834095825363222401607384046393499849541659765224996972519204829187360789556216908486095116750002737295834503118249087858475456988436323699922817371530871433611513243729996642887307313135171800328099926019711502184075324600186167712075397026219659736637053273031328743543704458885584235173191899613688446715208318107880140118509679253347848965610485539171174418025603563935276312395236692798401125418034090413531215818633764687180729710513456452380657590393550871548660820102489112784057304312656225613025292012269089819690729236360514052791481329971387607201558181328891194188404485553596652182003891526121254892394149136713748260196939700996538712695376418335558492516435514409175952894549248258892238307837029273016361420833534974847193336852465177619734664466967045397540391114667387147694426410005351241598187402958584282047333499138156602273051012810253174533159529558182563755249961575211672050150106117680540462738999008425522243584808316613246090540837609482960292444231222395705658708081495539166280308897051878612535166796906019028805917216335232969253502172953559178292142974064860338131887812953817093786019645417065374095963375316694196248969946743832365764538521196093426867460106537011637777048716121354627141100590406297164669710290145170469128376078145581236490478731364007477755312407649940589831503958366319692942468914039849815743957890033973818228251453203770950192822243692735454130569500838756780758221054719873083205717469868308779099700982898502705772223487329777814364633618800133529642839320964549586911579123450490318220026866431273492739982537679911181523543751353227695735990437418533182220843918357475527496579142942908145858864699355805298153597452507135302791121667726356946553406351244535397774153204901820997987716897578971091543440453527559488932218442927262989960037651882802797651266088280705008794987629428491943489390780407284124028448782239726058121261124287370163530745682240807407221474600688531801617354626214031460208668170645629288654325532517598009914605852265727994182378434662367128902746454772428335038222839520813597239948414375947654174248006734565980123869370693144109688610532370475744364872683454964076897555770899793552427171650133741456797060366694844758839290986117925553714035580037839067212668218382055842340487293793328080048499525499038211252476699707943501944058484868432896023194775068001155660585230696699795472842909979339556254160627789175240143820320728125044957543045486979554160653136747442167512673313195197686672209371316316360397341516343682883189293853149371599819752478238306033771757127766563464467939628862126559873893145350674109601719317305989448672517159407134527051249643140643106645820061375090593394359261000955244778268792511934450505177327870470508171769470300255373367795921915457964410393704033278450177579833205237268331766983835966214766460076167216086699746892794269056227280881369973972185872526503951327302228873496129374892259754119472782928749018366605658646901449149068920589540006646578398694485090063542569266013116597778199194035660454902613564565033048471019025613634206216168339055395063797991345311373295181975047524934455965124644921075610347539406352200783528049676476018840652579223572978718799499812266934487136694111974737066145778660225526860096177636688628615028431212057102742697764747554873896244418893438424232948645467348687544575193334878268980121876834563641133696560024093052972699110277333683871602397390688021945154817266860657195138615539492132707607792272213163894456220839975172456108816788884469669381507592325868264315271137577865936388592092108673744044671785211049787794184551437338385864076847989125801299680019713795694070867379634265237045691287698613080553882254427145947889623713541148751944892111803723404220988564942085418600208783688616813332232713219909389443791815796029207982921310455231068897076915545058119267594855293326354680153801599505211502946159223234932542299801729219350091928813492757640716036708801885248662497300909434075704098732055572137839580091068740038942771558886342668177725371398710458220221501898016072537712362972230042541412749894501907298170246881466779278271378020151883898014362473794056864394798797598734844637488466334649088798282031727219030297749012294246261284142633691110742905010193333845528114554408121639972387896198619013297871823265906867791379926410944372588219505262120650246179791334280459537365486755826174642341936965037201366492922236212628078145221965861408790361057872487134638803344656408424747066660302578177049588649442587851055505974372992464678353214826751250973221593903538537370909256999603843818463970012463206274290874713357139950682978566945642780442307966395577434563301040164673229513128996764860358145723891639435520685785140257264986743826541340003368006560617680440949781186324865398902787120565166018433117152995873270837635633790576384318652931706345064097216679411399644667754872105201853986203598958074539953364367975069490772868369209641660381333509729984628720681525206412798330249762636604664402198482387300821387771071991567499176086862555656410786418961149674415701188123672236590658833073593714641418498482784380733366410207881034410253488585736288925387525131232364270577269698483866759290883080976167074970601586271233434876737225111338586363289909318352503355556994243283618054048558143500581256307990040124766293237471905613237873746458860926540761184680451908151939412062113071420705502694573755095318961035651983401985420048802362138781885177257817425132186002827762748312484497593427850851394820747307302825785360539337840780513035925970707100390604917283843955890483964823081581681332289020345621211358734782198098773104388834414926099200228510206506352881961088609631718164642047143569556382195767902681632404380550302025434594412432806374411043453165536750765685714892612360320715290553016512779179777048467322255013621887178675283284885503423712502221199615803670164898273374510333142571389858595792949277381156407812838901512109804517359045028741918536296699202206320757163696052916595515540823672682076994917413243297255544934461639885284654037999749509550137815783141386686716637227723719723033665409146161777761086143503281353064928884314856830708333414580498446567694595409153854619872260696971464424282845721094520908957333432855917762112966706108176784358316191315288474950427812099899152685627660818077398557616582585287530272681895267984946988561225339679203631307952412874967261282332354085264437781121900031422336515459643257479953678195983620383344344356975996974816129133976703821473037389157392571111254932381098033160510977253470020588798560785771887138437023676127666161749221858771477327097554419738327582739763613637444203533895541404256630274605154548370935283157329557895469606075996819742983920478089456164215127022823383575271592913742686732497809096595142329849910174010401176349772685621484398077362984283992810843993860385265973938442156297863718157986982613160489776277294206732664766215150798035569577636560251943384540160788231849184335493315017701999404327144521477833403918990340609456343969814742719400891380546523440133008410118360665085371198723527925635640519496083650053736100154090911520805137773188619973663106000663227041308456298140558686671713828665752444642036553445706787272904033184367976304852478849408620313220200377824555106325659212310747437474248043435763141384107343928157720586117491099083020092756977980338249725694518172001021243758223458698909133019418663164072595489988388794761984669971462464569180143765313510631184584849018187863983700428482288641044157329171328518395193269217400541006890090907718675603408048330058490815935694481094832765329738287673225331677797479927441217814534880859635861377385198822956644117513528160619805358772700852139339610029610526055049980217269196225229187446594887771634365271573759311257589122414317032746635771069726792402921033594850053962388713125177319359486545921847532550167142236363484313881941139100861449965393133999487169763137777591307472608802337213883740047583064414664208949446503963556321055985770184965386882040432076794520546883038326811427953427497076602709635146749224986006577316012792306220340766883724308026870521233178167677333158216492657181841062116043716550795683857496448900450047310719009534570273653446861511835130404272535614476277665068095847521401335775703371986766348871321747017956395642016662665374430557221819356782131196575099461143432838648250831176252532375410953858656049360282386248551266338124705443569307747867788412573164331684057948049994290775399901986552657389154717405300945200963998407888141081511198685740805521909346867453674572987244301851187625177728356525465685114781525567617184347561132330781757501913901831489384424048640447934765262396368294313247608949204177382781156887338171576712898633318109333685798060661431205247792165699240734077763678539426082859209623100542310050983829712215191451097825683966914502250987495929519884105931927778555703115577258345850754112633677166184589485525985759950468033381091944328508692098993398431905998368676052819229534625043257227430406173210603665487329650763977071650423917010086973753257859622664428996853326126393017493937392415658099624043080713357247489744914862625890633971738546700528307913280361479208397739908499048740665051787108689803778792467090089612387322732181864177924297983590922142630332606415963722906074992871129252727596676522433504387174644681913234061735684778044598565534409522277104077197646996720875781376146508126726385018358411137439524506744817792678106055584251305795872028182560055227001497448935363557240285157151593199612709264712236451436066645667646527890291325173206864221921918916716278751097348648280309395721348914851000781286338206289361008937881568555614387743094920828611431500769519459519103187630177595614157154255654469838112220246923960062374465362166660413316097204448341857163754283441017180557482720884633767222736073738866684316928453593246785044239601889549306235643792142843062169956239141121115237452614553844481749892774293327610539427594098382541131875475107706274808443404099684732255264358918416513646247155251516492195491044845061520654879129078570051279281325993834347841592878685101714860630986935985894791681106680566258613905908386126822727025277504433379967207526439838503392966265192965851799225450097165822672223467019837049928301148755999862411304642854073144064502233867084981579373942104507560725687631156983935390924141753062045332328129114557195790903430145964695706378268953424037774136464869331851725222273760978599121551849611660185558414145711004548548752121201432025604593700738946939348915836072886291150234110955657118844366995966421725062098136421363671120917434870585974834472640876166603317269492462344853509658675190220417853076548347273065522752794833542418940025113494702731834684825824700281377503971731332896651058952059491113259038906890970648473909684138667640325396026635102148491449284004680884520120229515630749923092518804575001177930747808690632400767446825592273125503726300278789012473204252704602024833784792248956852740997183877209699286936547571495464267278503610843326838133793678340179589975081231094936508161818508594105892026785370155347454514565921888811509255753018298368357416564087827829711384330640623277790474578875395378770329342244911406356640630293903409508583145403105254343439288438791463112605063646181003753218220830272916966247871749689975532098897758167369923479937262076534689573887714847337626217245419104397305147915797044130068207346656795848166045127836925963401366878411435891054741324645805908316436113621931666026896248141110238566510891157686595309291137109808147912961555280626256137393384772823359982348841513421876639469564915755147514266157738134844028684530762265468355410604677108533896077920575939885843329832779513320449284120091243489237946212654357549672378675248242611337856528262599526208222088759500088408353921268897314437460074526544758362791182010906664287790100749539067563284352592275145318854028463104226715906423791768417994146752822301477062099442091858099671517684393428698704340197682434966936735692920805679442064181581909177241521992968021898928491226646479926682569868202427781469994196657878036854142102275323927762242271450472213324502030750878573996482795170314095039980811193695060328108094803311790823383535598625611299034144216705908836705160253318947114006348351883946573133101552324548593529535825638900720190973157306125736378760906455025853115296404700971226719316524287122166390348212656683983284606832009205297704892580111424369404776873582812048251378474435498443288294327862757020042060066909848724793881418603710168305904749316071427166743823934127266577637226846059066307851316579532671518263535008662675170239645083246243548264171666269752754230824426352489050349947572664288187457181780081051485664307703394128537131221319799401673372481685844957791617942577641117947439375588625111778527892966530896356348454522267253965982259494623603852232834295668839699880891877567024430055489869919537561665780885849744784295719607470794238184263322205743393681590170957405797065030063159634303264069265815088322102986356222256111369041205325431415368585278420287087410403710615944162767131211718342290583899420735353554223505697458101340935694206123019512727336624664842963145711191945327261540922102235398566601424024156053185847743224267873962868406520047164057925117201168646348788930036035149328975304341265592983643973945294447943859018651015260201127648823840750486463275284062095845614377941182974417137802551983532570507059443191326638099983082740033986479576377747545168241486844668260519491697532760612698846817290047319253519359494964832058282387910652880681583777423441044711776278210557264785327850763698660966928271431600980144279268037812755448707667733639323306469985445141114920472322770429163839665628203419541599939176784450524364085368097356207889911770106182380670008998707693346912909692632923074811918245401061445526798953185550926962245110798340619399565189314000306711573004185477640730437548934175792999230053616696968680282879253678270919024683943561925533937066761411389961264635115666252437341209413034511741452189057813581383209474029097033470708094953103525502909717805843938306453780608225147688894661709731822412010870962362591702974933274381098324857797550682573247022071357883142798583657942025788849059373555594338852954363881411384421612259553495507944357759165373022533186187364598330774107599836051821087328299341820326538490424033083526894281053551558691588390496837498359868370563619159405253060097983540625013968094218700437914335381647908640381701122387405126270042782086847450268257449551165531415668190104292949670271981294198243736442513676933834119666915896747504534286122952220670543716571008224098229963868165304713796520832219766131847688715370750662478977892039622607194331924655665092240460044221448066900366818810978357875168445914768373261927166278209812542434919980331329911757155354070361268427252985025887573422433587912202327442114087330653087947853076473454583562562836523773129414044612601578681207447690078610079628673186968481702164392900100290240292195656244112827391128731791405351209886533312926341167732531470186537090968805737962874318163735441208523428320081160550138370751860722451220154164082648740948710227144832028975306664970494255477831593787072599747675426188734570591779050113685850002027697145493102201762195197715786309908295406971993922677545402507483864198277613235824830701430701885389789329669145595289500075842811181896855473359986533715538863641043235596569347638511639883675115789120479635498920202056735511965060257457385250637260016617155189503988276520019519590727075851423952142107398890641119670302873078019293089779750412276333840921110212724557708778030131406692535709799108100025799472925590087347898045952870405350149971346927337254786286362410926450422067092716780552397781336042292338985763258080440164473453704749290784591128695794118755777838140162869664862516958241740419005965115676164886787846287955771046685732411475915365539714176448544504897437702424463443062128317364404973809401376253453284188027721249788460756970722332334927156142816663217290995873698884812270226566864318882840154741061161366164904764318711132359024064769047229338749693358917935939704223242134165593376467811241332006722287302345023178858992225180785273518058521485237789994747726847547357484909070577543281367042962387051072512080580788602294325543362938882830025208218717384752175657157301885071179993543613322579687303752408413496989922119420190165620259255560747585269157497364284194588919159387398366650834712660747373394190198108708060370294612034888304313566284346911481978453741595642429396593941408104675283479986251892559755077906753414794842253246440408020810446375702455488225042604488686163577132651648587239261582802098548056444324221249446910516409158772956037832438910406508824438497491853441399696516406103936732522027240726404304335557364927713755172752110818987237792131845373303405320709165497553805195562384287848804451999162220537926841641818911781381965749095225324397299527502110001625313383950643103062198938535424570246482550280605153239211865026109221000507132531337047533786580321397389347076707012581327716597349419012459399834785670404238296577879637720139823659359919333289689983232861780346949387615035327579412356473564778054694342622182289200962365155895495379348878341825872960168089962655819775645130396900234037781028641029395428155337744854863643820830751301862903681661642546341930751967613805456674023439162102003010014547144323882039124607349658802157316589510298588124402908451394619442894499546130329812865532757317987130155890061004239520935401205923918529571714474085998703342412981698990634571950301468044636669513786391160161015218417332054287304961687435019323438079102668065313062967487534601780872672903956477015003509355690915507635434461377456180087800871982344666436100352778174883067156937190555660717172497359621105224148977057906954323402230064157249687723786183363287069440500077984743867272406259544826693244307971878111351404630094120039572254163544861149995666166302092930681125028789874711266676742951163430348999130181626680251104496372305279590712869178529680532734745706833488154476609229410707282465699975025368099496056207996402763442928304385519485286868498090231107765150447743066005635023808583493928409370150971570943663424896899904286452246235375841860024049561903489252354247803183575121709079733930954983205412199765790865833866694275035463951506252210502836262333325568548054709098044995682118185996647229591251655440992130718833072130026752641885580329782653144454412308342956630906320489258376920551935537382620847566330998599542128976721530129386094612146272111901178527654133919339261450681581734178196336178477633476412608723991743522172242771017660760742710285220463568454758099205230305389330672061172941699596948016809401180778275935375445994498870593122237325908538654857255767414591608126788513326897298096836171948343694561248266023006349003217451199839915298213498818948887217871299943144931686567056748238514878760265272924834490955641426979856900649477195938682714806558800904409329058056474989749845324541833992095008921743659417598196194177093015815463688046615277617797823766322163831166377024571012648146507450406551024731793270710067537481468744267672271057922918486732987787733184883188900854596532456206649514065217303645109160757445920881736427792252783898651585351483659119415472203666928393447564745030769908989083981336294071197262401926332094118732112104248186377578381202664516294580194130388780925941362767996663593610300305137195253072167178821001446658791003433017338365617600506649637375780720744024263187957355596391842397574447991023322409724670799109322239309917905559392541939343646526730654714894437946429350197059398253163473848600071510878542847826596620102583694569402602102389866682535294572880800439437637256073069922320134309554420288086530590107638512300449704898512989375768837170576513067813813280171987742739022034034714641309484907474402910608319381249851418637787812668540693733839736047377821626724819795088397222132146580370890019957486662976852847140956803490668183613408030507447782184856228555083420703758749726003426140824292156084952625974363294265202340842429929147653141422401323608727927192757583193034873287589900391746584154459450971376552356742239620366228823601749357302039774329967940198962077480863968732995677052488796049000468018135532543484162703686226647185748417177115303565652783154800781624047590458149079362649827506177112520321673292854374586855210552261772266811018707559474632524981680787421653942650488627196154564684157704301000936389800977063235275102410659168525384593259516668246853122627428107854854463893334300332737094591818295373568230757227005899220196929580613095639826937000847033150044861111047750871755665459819525447252369209880385465760699768121641508098135182072997494608531757838079143797277362096477631287969460970840918753100820923617735390768656458024914757100221736299805187579148896460755035411791247826029033450799266379162992694377000845471244176372936903754938741116453980841058223266648250931504549227905462204209268255061307482285481466840845967038765419414029443061595180136838763350067267178548965032528044104322971995889585437034463286914967129705903741629505760925105492734630278057307700295378396346109558183174517825447454678474336227052588858278103918921904395165891266108170677479621006867566905203339941437002004623831741305895081143197793911969528573708396299704632262884948237900322923020407688317784981195862235827792351103319506806342638704046623339058352711660646322055897817957807015220025197480953702454357408107347624767142150823154204217875765628466940751299145328898559881586285251671583182337098710248535376873104486785598180677994052415598512147771074691449259932474379235357345933038500549038198761134246004853630200611834059845908138505990339274327194391075402808624739034171496316184624929673184309947481489792294780415472661840422794490288716307000625978534298832393764852008328327400343109966360145346296762081693601816822645889888766325997464154603137323416972126461476257046367252529321274006180003507197855891418849486135644534630046880092663613280074322376526922712049684562768222741816928206372109628482142945171834090014625514058101876367320592402110962591213443898891967074678674457022820397785057529869469611529179661142066581860169506170473294082904431940609793124615693804829934547884191315098497651810671553394997196088814895967462182659553186859278152794757932568932029542042752526675556240493144583701789901338411463738849541349093837894943649891994879435237154300114837131621266752674474193154208152409630897515620061942484189807548049880307596096097584204670024636595816818398956387712897471547358808180669965830443064014151144936417964353472775919755954232291649349270478041369807270293398730455220383937315173498660563972128035128814929191270561148404457422262299178389304294224937061078516726206302550164547994503931397973258898083314653358585519536880228905586142851961540924485554822823181328566255604375969535323799554210495470294419956034892522912355377348706725656620742746602063869252249607218742761941938550981960359192170173406340506221676164164982639887423985229274397878537311755544917652595670562215288270075699479156732180989406025976362753555089665907266674079672173324919936496183982783086588209223215618615897398049375380073548177118932289581880823176223913942573491416736993849666253637286544396198602435408825074871482282902107034028017650935551675137346967124958381055883475004284593482497811299980508237183632378404012538973059104110615809101160068442254858124666586511041749274105137841983450638966614866756578007092430417223221862549317031662934163023673753658528061333533625616604519999567160190157950336005973122964085439112982848645157458068347090110165032814091279209286994167297171573868970262383840973670741624008733062520718670188674962779663654476797140764644039675541122455691691117129464415672323642793032729412032439127381766465658792967703703071609042191383856539652636370276483318400785392512672385260929744873006390147055563644120388795307462121331549959453130122364203835786139340195645209850655359183181011599707594382857534277754363308151430042458707771783609092821029360433706224701287576561846967815888302168527657888513847982291327163066928358800791134704017706025471979462527393721519571968036265374248914774090658945956446167683636261307578786361864090577623866977549877356030053054931243765824767129826261143569479188859909250594325115669021235029449365163939298282933442691843152019777742723535881491522387494589527343274320104551683684544316681135163696605873571261838300652309036811361591147138977898959381815660189102053178711127053220367804154058996100089527467353237034715294916990168847470948884453547499975623108737019595786024822976567659920543236187936917492234024303650293115844521396488321730563015848442033442126794137424246710710525195693690650734548634387476218443900811203744282638584341431945608508890403538694762567127642184328895370046455176858306381387493624108754975945512807877142430145323250562659111681182705195763561737548901356231643131079076935318904877953800658485884978939767360281752435837475258329451788938881671380794849437295724217181202748975749931146969080899457909856633969708338814277689523901574249275953772107136919177731729382767944793374907860921824092580468082595434555676480941181517108635687732231448394928186687143286457357233317084774966256030018990262016520969374414673966148594869369297384171227412824220372478591832793110937203942736500364125508071347097986127340294089817696859146205480822407480476339417206840405950652507496463019982567767859658680522015404078250819136112822101707545917546229008135324000656715418936373390476770308073420822412137875673600051860471560934664187652872769850413634167842694143290625113290833114253725194989102628535475501660268261039054829293260946943885580988669732235086071820261231092163883080891417054302860482615108333374503249867514290367585471166742369240664284673289756363698135811652914682907526958385133121362696853732164403755176126974421773269309463956399417290096980985708717657299265950668257959982926050632594820567638098148395944531441570082023604011000983833302713210277010688412553613342794688081142919313888641846324744028187057427901789376600664380946784861079783557255477349879340419961894594293255026657102401789323166000331917272578326683681540149325005384588258136831533189010004276235937554457405045539225657506920383959870290987981238793804288515529325151807817219677810949606765034197019257119716340898213211948417868293156981872033579977183361521700377289178330122909722158675436807210622663905636278329632679577866219249717862508856516887792319369157933093557464700782491239102330190590705651705548206527057170020446429698485821744443386883143783407042387089376339360719146190773639831720072425601401602503123964454067708290472389870888119645681310030870839023562091958958307882131856539944210965223052059704741510456948223159059259857215322324588850153307105186804238371941941208473997277555178848252956366075240069994935749539825087085627550481847240614534155637561577474734337828846992215709004317772749046364177003188841773618014783271155237272510365255790350663157700752034756947121259478049516614372226382778009224559511658196697285070664033051972157898610928709267655912870222988560612307823743693654145866221310022429724249888994322734291353822806156662257714321710178440552512825610331419829414701223734776869028709376393454198209647013892323077988777477508870363812935078841985136756077600395094327044738585239730403333693262077733177934502777576918784092730172467827032718598958275077540235041822493333790689528728758822468981727248094631181010084140418290552372843357954212292252232926406787234503716669938801088996768400367779406480366960600627089079018314253431715072723368240858005761744359236594797579807277103923447975835404543929435156993035562816220695240744809851346952203309065508544379944591401158518569192222787053223460603741783457625824110333046850906027978624712263135285142646818007606662862073221009541187708225111989950531216227056896841216684991736845999047367601298944680566640805660738407500155427653361432095463678112148285703179711922576290861472676664480042251339796062202123934993735972747573415531973501021906859234096926168137804025801738328318892686185113218223370507815431883340787845218704403113700630386522435586514668384631400387413418692056611175334736873908936774624850424476644717873303057728514100000523211009412163229393028757606753873678012628260140051653801003807727460949590836677128902626581071128598932055112819717211578400221199824216622430979723575589815683233988296768654125823700934439482013406455026893107509794123022983463132418765542744042959832604493556319756419971992811343758472963629439861196556676169166144827454351204597714839446935170573938109344377581074156972819081049740656325340262816508681914050859501949386146943676684887824377737321647642570485942475255840237538070997050939430475738609341481454078579242638840257776174940727258334525648125059837564767654699132819074229148044976176825679903053512155328313547037333185273657229179369835987902512985295986475314653667763794022019764771919624561861352341368508940608201861301959145391480043342219618646495279474959529932995487156919571956569107999139209630318102000737690011825972275666347002755280914135669783522650102543145596270715070419570359470757812677996723155348021670648287263347472945063397115329848856810802910803840835262093526387357617483583440585982167057727556202508308640941545407765862210005544767213367104854018218298713023534850739040780528838994946232251742835605467415451970987192189786317327045028473739405135237131371897929158659555659899869894449904733350528598697299839821749836048404275343875559561632377154393822933650380693264023206764899990627903802788611015261717752602348542878901484951269893068997422851953424596959590100571363444975210818047656386995244834714181547336241546560490891856460847957444246371758690592740573694666668930221189071818602274798625426734459328471530774998227460896128834761008835024104174068605850360197794932305534091517615366524350803521720244236924176229592864575359781348457086596433408958787422822260934200178944718116081707658589972645914772632901523759536357911754465401365112428295792065591156325516060812933511193528470629991033533045051676302927250346826481024161708543940090031874416935751746746506912316845534919364425599495014837146551788554766015567191685098300206073810826128460835397915999292772418296766236295825265486094195814815849541852899240473700535483655111469802915727419818356032106795042737231952998213867326983506181254645469548020158696435228106449747716012816683725104763130607058978437685279766113834421546263624757197796433399148617313941520090536062618061281365601232278660100625421092905152190706187377737075976424389025607377784177582050532951727874274366306382764537793287007308469434885122341411904546302791722952506540977723640881309230197694535056218647972880788010836668064363404085664687055821872535293481950121000321366388405254647088020664632708874574864204926448830842329469713343524890442594288690639688602323232885576237986276494760034457840873451917304069840841053512577332551789318031896227048665792899931082454497242212553520889170359096366058862579287292445140587390560217047750046889988508543164731473834564097019725835909073694548383618408450471568307817207474053020192433550820128943897335244305851055766214418952781565444554552785947744864504764040877445300708126359794495535963716973398163761418848758864763605166760984728742032339449078848924124101283137198969384467503976907646498428215877618978617412647467214143058739263556798470595240337170001818476010945326021375611353079561174863810905752178445863365071195862277861919536438612906762540451995954199106985425337845531920666221563619755781562000444853537788799465227823766098573758978571871000447650539243191831668070619707205848148555574022167917569752372379398591196138544717650660404624669186261516595447446055839831696015026338988394305816248662501186721383818507151277612626889194879643179507681511305911116492787060298980877420847023583339375863254071058545176020472011251607218245784477919096421981067752106846025254596677329303975494880257651421223588994763243359739508639266846842270882399717687710091865891304990739965154638744887372570712822152821213113018471190138299659816515470277511760732758245529735912571716376379158769005752543168774267968817157529726926911770418062326569098409182795974129396157695235006271491123374837857671721307501694294512803027771541076038371852784690402764487948177638777051965534118179342692676859447486949273077136902893329430783115013971371609748188571859140872213146959669478587351266480892284972795654178891280002275022581985686403002465455249781536262909571586715734078673162961818556893433002596007313612365976072364581718564346350962126844429088700783931011438393842230237455423414151988149140517384424035170850052334280128381086706054856594287894044193027186719102945960892035242837795511528363253909758012384578782016267074068334665247119287804175887118450052153370441894037691238823097474155375323271210005542102111615991283709243307407077910839688901084579814131447307290115975962809269056384468564782463906207727410879710518731909825373130703895346315268427338331141595371302672915925683862548577043477814282097641341693093425541242296466611955675939266602618989470435315107167535883724763914345638678593176528337181216061692745647349763975035692782288989650130575653380021654718553617368505917699839612427636109584805482292045799239051628281824337007148904882958960730206495205113336777822313824597400477567228291965460373832670250680734802090546281639820673750681925803322709331372733265855603326498985901253071429895700579333967561907955281671157780973551343417328783101892780247770901273574103935356495207745264144893195525501897236998827554790735766253615276878859445669358105790715271075775951554368487883815729210111710268875173956686844483439522189781339494557828470782400597759086178816967970221851187438542901080258989889882408889434220860795358430084679414112508435865797762414688836603682532104961163548769924241853984862199659077646078467598038292888296430690592722826908097519681750874574448115252320267197672482388198255473261655956216960310222407647781522170047719923900579421657310862517431195907271003565559391418529584316782024146577276488439700056905204286065299654663324223810140342475992655533447344839177964643096315418340933414450074635612314648300220328607587953574197710345208454644170355298717298923621028120446488205291979695311823546276263019595982131760041824482760318543479689565176701354178920581485170982990833918677231764501687396050556841363125691197736367037906541312403478933404922791509363376842127921889203748465715822702920325623451163202875397943303199850233958355986449233077489909005984598099587226387509698899731920246422132686209067978132636437918506167846875773170690859016923898419581895885650493721783457623560426722197529626453461155006506556938119286361882272986825223900912347972717948500760585494842952274612270410651937351762821203789447314351335383038998442691354557934183676765025395701235201227735359883396589202368435023938742543261958833705254891014250913180528563777690659669204863404340094710974898421064926653750301536864015132658459886653751312029307673217760910907392512386172152523964118963154632857879695631858938146307677668024473022232886776560693324409178807538515100151428414401248094390822132677398949717370503766098180354874799839098575633796704228397137127373459777197560720161174204476031152112813428108436161813472518559620435686504431158304437034087892498899697908321550303755674770403712759434745924193717919636062938834687306833414663709759160987492832191316786215117806242824678409588955070949939587701519027045616800140697148332776562359661052133374974164581553649871454700745476968819655747653793582155028607278682239685722309830365112567523045742897152913351710153258890967781447551179411614754471589605781856592161917695074528010499862098063492682981741693538967314826712058806011468774064460897107704791149858629812802852838510986630925917850418738316219778552339921489289086403311043568563509757284749197624110363694001080269584046728721034113632309722280860060161770269043697332782605593282436041852833684720648130167726550793194036836165828320466173201754226014701812785287436633491831287388720459506813230403528798821811133414798899475878414789005835422492333930288090102335796479271571699596233076720333842137494495218509313906088756356632949516082333750980738024387314834578519279397577157961688401949709893684934613612391029697642911780059022709888555695974086934138764675543387309508667387332931044805546982939746961292181625457476961096642620925823957641858701099140362916724022185133556332181634909788712760538302689605647165441954564860572862762257644060029684968676860010474146936528878752399329533442398056572327011943347585714117900602388761944437046494348355477840264206782609419388795369820274173642875866612616735784669940001412947077818864680243230153220373586601926076222056827520726448879547886189925731189540380212055860532751831378570791359425376337169228261761904622137283980837967759015164630102981508681661292916917385690991192771236526358052965756463801925511362682416258170366467247512277521816221682879637960544269810115998783654746825397828521415602807717007687210605367714563646550962146329978163781117689282563337344685006696803861947879183830031880088426242835470368838836066607527921377754258151098469277886535156138778911952603752213568196145759899280955817485852580218463637400727989273852283704222692623700012945948080632730308430460459984744773323945690131152321185146874732244287530916942153696242018308924575271056062377928529713232600166880676171086585439721197040920788294140305618341504753138360612146396902906924256331694039160186746515917256938751037772340613962948766738318237186282027940001240091038866023372280124282515319924723414560535815318536843795007954327321629781229140585665937498402327935198741574269714053563501346440600438699189506927583375907010663985659738527871093332388507440283021101634408500870060410187135203085948122914326000456020212161287316124812019933422867149562719460276562967689179059406734638830569058283305220429508645614738886470616859906149113005238657453358702988230496799581167939114543594444610565810597224769704096139613543199954698593664916728079176107871902368387370293760488208399404503540732030365448430904345975586373704144650169397252813904011045812094587445834021881243811518372804396271466744934182013837240917325395913824917702085931262392282225900157939363606561072262077360313674143011146980376876479654663426518447117638266606115072774290205408719680040127811557873874553460485752290571089134592554592773062576436035357158166571410396918823531947924382136949414178247098527499562623763141796895615099842168590387026240922771567025346594425919101807784233603965892131488934313337610631818888291806525463720253140218861966793844458238053275634848752439267105724202328968025229902328634031561832632130093038787907595538298598057680879019488732427399659432738843219450401017148334101820882043002479153976347193112343776186212984549631346268322050279074677487729588235578589688766737506009910456337488161551949791703677278531544100717652080087796675048342327485224372370728425777921195221239829561229133669113560793700243332131717668034330357088217035591112989207772971070369251125743171942000889799932328926302806454175350153195855323507302903851857069542446867723343946932724594615588794004551927002717972145115769146574882839311795732047085517197905467605783170386820651535806190957715276597773025459758256323528349583565731964970154593667770988857231698359718183964035380824393704638373095711851474097022026341401388761408855168393237129692536867375674387874812152765318280949615958096180721928738460825558234554852311281808477045895439974700963928490576875311773774671150552947727144199952796322544859220433984035948605737672682724950743567314544901993317458802911764973814944879267376808393242322473732399235126762308950271649437519972578483556706302899194682881197473370772330919964680892476001819625124337422759430644042277459593491985181326441871193751352985521102007227292405255546829444484992249947422409185197274535029700181562322048013825343320455070479094292164181257766863716534791386392924610422232009588270593983293695877695752695694172770362839347396298970978092234118706477811153643350731213603165270891260773406369896529168064419513737520871971003461968211031132408689765132513659756823170017406489853565153638294417497493200053238492301687984239444371614399588868016184064211515953204816432270162475366046206378393403253975233715851522586301847437388461963524338568643863870376702605407132673878479910419727187470978619702259098700290317633183984744035063598917712702968083470364620256210349730385958851443310150524470197642151304604558568394553056417167300214976222094955133911822574947430281877976230857566898061120278204164175924420154784781176285721173611256211002120412523428454621455841453096419410490566921299147348293679065379192951055338721757241736576112318340163585065824540285100549828337606523366944144098486227662760607077780226107559618164932852905312009343044555037144924018904128055707634221926135692222982109463513548395101000366847786082939331645916414014169164239559827053238177981067193794479549389701273298979024952432506498724581642686107489287391139427127522670751307122844767399080554224395977159912412096171201424218732192401444805830703007167582881406559601647661759011707822767594002993866072475497140897357259466076701026392035246697339737202686516487850376206727870599389580128083674633900088850993528598624327938055956574658743960307620848156942574735582270493314787189707823329684361670512315030303729701424476908351958232707316908509365713724380707009658665112148521924374820422478598885897898356551216399713877539660069202484878769910252884512367931774252581897953480935472058799541733940048988532206783949683086735396477298799582934965214261798336643789841857614948667239500639691531318641465523331291087460885008166850354728580778587482728474649170833351313089344596106383114307638071377901613491625060926357932219859070262771058526089680180547577552703466451611539641502996633210160029772681149337716261809189369098394822145741562922918396414383974394890248253796422916503948834612571110257175352571265234534173465949424016970287287028686232384128580678503875516407029298701892072004989466602124459632102126879159836484738047626645743140080907318222284534550893878648189396830896833008038844237964800820898786521304620970776942449723835727080880480193390037223895583833327201475436840177291825588753781807568351952746180423301029798385568628823894974980985790795746967110309333179757506412439169178793811379661906279151959136109051183922986970011296718422373445448258924811969639941491891588479963497611970677953527842300176224725763768924434095711464775643040004977552781318949042560838331480517264787424891374359350485205074984891368155178076984705178489589710261613192195257659722357334567701952105152955952255471596768304699751521137278578513170193443429930279688058221052156107347228693546234610239834833718297624016951103069216668074283368972380390770998766925493569102109527621967141813685657711201176173085567633633331503457531906172120132934891287841457456787583064747975740369302026582744896660923186762306439801288561029341079234177479420016147142710369135725077475949297614637996190352230856810148911291702578252162247018111965019585338970004911368225133768977155819310925627463971569995408978672848248577141645645852950245134368931097893706683204929169264927402833708729557948555173812762496073123183093305357895614162924632479923432774711260619896199013314507193687441262862032128219087422285829157459623857212575236988624467728644095794859656080551897756023412743622541020206205614543814394099549087097522268288136835335662960416828681367499527614765156819338253516031992113961761120995577210239232339296719866335646584215890287704907912687118394341740767704544212182889387510861259142240810095202268068994832972495020518336608908627841479934195578353704540283121377067208119495223920619463265117868295967751640689684817779931253469610808128666143475088487858872021394600823027638898519692945833985649065211800097098928541641241553569170600089410069157522274241609925714852942667684481751795415432796084949906564562327917017781290078422950497932240424271520409191633166070640264338102357657495385294786780276556947623066154235639527747922395439428921004579479783616839306742210318773058384340118998648332127510913779866815248030295497647237025762870536705949728063086322903852301470133170946293793564138115955222747506891903821774385322978222660572196794106595484067965830445453095113209239501789729793915494586163685109033839298095290832393483806081770776822162193339831472555946948916736180075088627786380075666966010741097366550357574621253102307675090408723019987500195669009437417741912896448987644971538335662986741454119346305850405214431321549061197794932488579007330822888111269655800266031703825892753218721685158101910638836272633809988370577688295898290984596798711686597215421878514711057648137551624210322569872235066603139650368781214755008599803557276890130716516744761432585326306969976226632811196847098563329323028232647449410179244975186419600484041162192096885910360528446604945376649683801825566765009130490827849195618292143489728118813762029066207333330758542226602613561228833834637690165230681141193643806701483191902412012553326420481800708999093519977627186306980938211546026686896277900742064997312966968366244236349380059998025488434135182080967206218915891579426720484202431192104189344942038699730823528713934746510332818513696178025853549747370966885754296486428623905386377626995296809243903171224131598998253452478527277622438130752031662142813980470101193161122796020150611662817807682962653556729313534323483242888764388356876121182959271203009870760409491584688301368776711800782187230359737810812318931673729882791244192349744374487647060862567120809536924702723928071530816118887279181944075027363954651837437998314734760726854440989012442043878466692598209989960406585652512871069195716674197240846820423330367129728180509738533316313556989191250134350964236911827173352026878046832292710370898000186462936169772814768321801161327082042738571460746687620042222101578235222052299781958947891585454791302593848729246754724924277795620589747851984276226804754583303813231265832309697955401843125728690669253268255992055294930980592135125059342195703187128162133239394741238432107119206543468649933823824733927878168367204198306086081054115728034270049526481776781229469628104725799510913966991753545948346112350344238632538776536770219213295812964156002651853783668711943089993890711133064330624878600752979258772912991049041682560301812258859492529870193177132159269235348512455988419843253286763305718102009970187566963551077078777415266760371813262414790993910094972192421338099906953388377956409598642337526274471929174457854098561457168588132610521053635559701202572935593421457273761145885701701085306642756378251788132081017081107695886594358917801468793557582464228320843970757405008611233995681999167772061822037603501508755854590948898556085101348504016712648029734768304325583044142989368443121808349852208081959972708148017728503865197884504953961628567842011955984156190048127216710402840657126006625491724141554755364951049630409741382631628898601774238491263330475005946923271126916286410928760480718134680849696108712487682778813166432701124954105627512814467171079158225867808437029880822836742723189480915770770059174809448948855772607871106753673253501073083058871748610885462937742130126812819660212343352619252485315270995856014243693922415536245496940430004233075148990031649123142798007282486846070295060939102218885906041942936470850849380848567992725954503914448123477538286221815381255087209337672513899961991381324363010074410378216519731335273032609833158819024122036263698493334146063861204030428406053614312739471385393490918686451353419831073543412259642365683399107358716867768951499374915897826810516685992785622567860270300829036637402953428168206618024797937025771315932593649296076117613534098619143182318294095420377107847968894858408803086706106269651654815951020985758275412091844748628624465157082993142530245976788066982310811683979975032952938653085516696679295606126973812146706833832010006118446293431461325927651719161129214099987293520515979780607993172338026848183981954742627110236058911051876737614084540400577936639088823038686648106871821032639724745706088835861374418017429437091748304006470641702109312845863254660366150876892168303124919597814856233198876611930150814012605461954597060487593977410856343271782409281170034990351767957414932857272756563840309377533291623653494275870831821950090188164671827866627685017110721583035321786796682601728212737806045280962066023097847711215275412274644633293326360407714315302254651376220319935215692313385890845258360993145256757438394194804000107212202609548662198429535216116166446018359254012716123618645301612890727428671152852119790136309556554414695940103565893209060041980665196929419830381456269304952073260121799865110151947751936203496288932301015470325166327087095902058384925768225269453625308756318685337075766015806905328198945697354985125304611475903742494060030393751903442526366841406339737693624443292074213855368839560909558631101194545745591450289070828478614472020925456699114380162461585390235125100676870568157657823492181123663762025737433809644322236931409141806773861720983047928816891920308192582250284135829310873824585910650912106603311501418755000260042002729263418754359616201733465255461694214912462212086097526968178698943747689531655247527189938170019741591687410204364289733776844812528838509265703162336201887605930188594719187812569260856623732144517913665306713678412744777533253906895388114765113493322035521904773427432756478209770057093161686219933693335458408210434463858219199942192614887033210604454657947079323799467476954825593441063536031950523999601674787869123917780201401563409979356031417649920411417796986252662106005517074870831055060954097764495359550108303574216977191899325130930533060366732303513839786538555842566297657323943353480107770789181713470140268447686320223940661094458311880394519191197682806942107844238778791195048468329939899014141274607658196693229765468039455076342675778846770130044356019567186252258954849121426275991260886268536381276862030860128536319768654611245478291992982381532221311640379098199502701919968069187850481534653717964158168354085160751682710211421239482505468961069531667742114844793605316765302286535509118933567729454291227386083558696387138163701254524046685817908236282320770272190683667853647597091874721524264161269760691800459571572477419295753588092182368978981824686016576373072223940639495303694230141872779236800962401801066329316784210903833602683843397796152944440083592509456285739953528413859088317040964582478517139556474793931210487325151008738788080147111701023542413982929295420058497015549285264868805133071929935134220046290981800477652262701706128931474367398282830431536826875650956184418958752037289799258711900401160765470848291012017527877640023547849325748606420549846419481309506263383926435461936961714832085476347952314916255448051862972607835975048627790024093749582769473125656025202783375067984916146156153102497928249036342181864712290109097151208550682300384907991149226378284282341622253214516135998729712526913438845376894118219966142335631948545926333212145358535823999234982228705804119878259079603411209412947903922662028301792462305839280546455033184785286295946003838187658669625874733384413334710895490346113503928647514734574300060478655646087533209430108656607702592348938026215928894897011839221358435765845713504764577040196511724352830128986382334173394910357013363969083100337605019494516142369710097649377390337779549147465652978669820250865271038924785318724580200493072837050041836853612972985721689778732538525746098360411684338380736065051757760041253631538843399660501272388737034482517793854939745521632976677122616938771618047857427278904088716619663126180721973160105585627442012153980968821624521422760067590289480675488115701188764052124272234047543391321442468844018391040361026540697956341152605008691256432080385327869615690472438481898422248306853785479893246407298231074960628256933565949572167635360404942005480715934833268979858566692339900660756771917207865507442772092656217720045453476700134003355369184545530330461785612973012113170340096104476098919738136186951396475476142892277861384357271944940718228781263647620545327435227186021694359477797100904156532862305018923937791910446524366662070825636528363037675483655449739612058265858660223059085742635320327629219685544173468202335315011883343060463295601573007605390231094254122215527243411730892982546506306902607669439644465633906294676441591219745349719846895976416860220344236795584506477731415655440778269765716923127371283513248584119476167736380602723475214946263107766984809816829679618881535398750626979605536934411605904410019306983314696061028507756611950679639802982010235886457252159150699942813981773054408132889758417746579510903364926808732653154039879794041311236569332147371895707019372778397065130899224481710226171546745499825310324460781705317556759647058987670179986934565640345438029741220300950640350113183232441771905651373441112376656578951175262540756628983622461715975401534214173708300607882612998808952896867551043544002247915442538927379422184192254525120535901314455942048978664694604004057291915729131087408289047146992538967176328933737635220789419812505530150824993389736115320599474391795166152533711468193118225436546173288407119717608472010650456029422903299048692142161997989624545449190809204042911902152010947971796952973003518206867951057695191667598404140154339803984845526163838620626274201490087613128961107386416925202899137101469970569743742992487053741300863551648589450765079347343247552793834092515749883912762002532155003935849588760205325018855561478061198914818201540827609805554799506745606991062308164434787910198208590334110622440823210137539050718085593153770173737445435696905148502663679618459405432143632733333617044517423565163766452872445593092673699541604983731941200898900603139814991698870359780255076896981267992818684553997510403072884440505531973256003748639226821482816661934598807572244354290201849829445337666128795006229386811957992247127752068110677765289103553418773212324829379596477775840844835372296011161285933246845420862581942822629704508997369748235586031259643377777575945066886414912294105397518658467787909994825799905848030249077286090990623406644715986898054901575299160956906457581561478706653083590192423746412173762958830041089958499329386932481002350239598826761481215309918625216887668037077038948152955332074475952779112057783179207309223745208166074319495888304320468171609837145904175149122718840079491839921356190846877325566079798881452287234676866778390556866375052400184130187748577099741860435913191947773140172442059756718757648211249404607483528024238481117849127766352453028287345736644482844210107160830440804909259724720054479368760035461399106247983507980685561851215756853725309082735312649551397314404870757922310693602299864740071228053124501679056941353275439233489146374539607186944678294466273111925063915196291061066440241074145641616879290429824970604640374475805928025806159256485954056801143124679892714392261470758212738511431257207507912027276822225889499191773161868883801904905649704584722347516732941482365152645401850386185351934002894045010420218009305468062900806821828339753970448051321384863429372387076012381018740770980725860579981580158966451743870790741307201233603275479090036901349484270606418009734662486611526027517483342137590893673664739846239305506020719667226841492664995431161344986173931022583519835696055387859203262054106706249873454524841642950009293350405940980986270071283012191122378387034711976585555988491705563953124244214483971015855834747341332704108465853316751195934595477804110390207504267407152069581266020926023174859060494145932529789551310483135950245417539747064407909310194348498810842545167088520479221016790020461247406576477022341583737160655120569662771371141857151184137002753680447862492961997122074349190503157033452257797717509173227522399356832439467172844039291535531639428224108757245678588424527916446461085860208742427683676693709186587621347200163760472088487176191240878756160865124836195504742497383564240515688118430243237649184097477523729756254172794501589882790144679959236218530484899507376738700404470453944178497839633824604792930800143983134301440105337060344816748264136461779601576742706631337159882538718034169257260049233355346851116701622520285179490286441667643134150935856193074002590219468481022791199040678667023231187456568201598533096988612667721163783449870749352752617624019540519868671406598888673544225980284527243815853093348571528587884575346234337461181566790245404857849029835806238449421082344373091570462298679474685822960015500536028465404734000847232841628377202789077060677486307924265222148543882333259969408264235252423524077272372080279258420719342196013252155402204547188614205006586153616520557650782645731428715599341545545233954443269503175955944314070138353050537929610898320746944621782352693132129854550205395304030793701343799453909005891253709290800771130221859256811036727495049969960672990729201544541097368930082432225303431107853973711111007085066347089259236125261313432231433432960856338496971271255214186172499203950859669585534102500582377476704097094585617367114186434770718338712912391739165027041739752265769392573127546627654942137748050916991413979417458834755333325608423969940252045244069018940461974816997864171230120989564715368498120615021247459988869370978449675957929191342625827473014612081106400326313472535843410416386602137014284967819878552484683276229825215545145318593839176279017679811242737596773260284823597775968241453778461104567310837905947866483954792134501838719954616187177288723574840489006108078226085497364147290159980825689422638124086882373800057475016916349955821708718409778400825072642196528138789675795181314022483062240627238932263277798379203152622883665754086444633170362760921509707778066458119630340422017248373741631501067066085115776353664158430932267571345138001087060104449743173848514664976540375692274328921315509601277002087344223627924756473166018529796931317533915306066095668943709878683877037487839108911616624451893067026306293996158843251759989796013056677134861662091414948574984136251412664081993278826983188898022310160134319695196468515992263760832364020201648531328686979136857648859984530907643887498251086571520523305853625521275967676972314299983052895873665484342140783253626859171735957099892451913716020988762833119295790015461060847240678943728829199602617410963773287003632709300929342798741792378251395456210684497254110900510600511366463854020064752765697179420127141427267309184226284334574214503161977533685591587454346364289784853676234793266630141655435386012240547591964278527188914707559938858491667053762986612502197082533412604266932658970800159790651954853467312498524200914574422406772592460801953680034064093485699561478489598302577591448422058307702228027450234514145973109178863418244933464498503086522716419474879879859594227139282648630779448575260829640749712456481353044674283721744146301854231011206530263122132955738796363757728522321836459700489968764738351239632355829112698943044621237390473813454802287312927015194667770263211106266512780975617824612715471834038951891379311629568824196391100250442673060844491995042022032583431201469181583087834324453326971907735804325258038479942660267095275681434357147077526255503311300302519357623781402339923879810044096238958380390165978703510091494282853509536005773567366956588603537683662128615845472358229585117684595705659127032041573366216679408464802948976549011234451282702340293678742343236873598544446446058583363082944264647499184842701173079178519694024926129587390735106008556903771993367701979087842513042273546187493353673438194668770240422634545122039888682105450642684273576466937834150836298511405281696902273243881031416926232922047459295709904711187473354363037452473592250170960379902817288180997272557261939099708748921720881320184178622336714766538465924366931784870790689023005964527010175321242355810243210240953476643204429210224745665593371749185063442921082631506115963146503133108009217331716470737545503759735429278876217675901730269947708511020218081028553250280176665393394236380404317352222878584073959920858321222110654248726808733889939294994889699326914044185932982915185781550675587310669262541347418435343202526691407244982498527017406580836437755437230743155954081450972850528228504802455612040572042006034007920580713333354362939932302248870868112848337111798566818871893426653514936318326988256345693832962777414874920565672054279866576545047319830458143175540357469511204127366602656674336194873175321324782834942576682869077039635639924820691537130989050263024098939041781446474425173055625150006394902118760743802971313449333434283235681794172370694666262145703475147634868303773220681014351545725853995834164260060456019001994228484012695958710875177491192782551513396577240922251053149825874650037242948847961399683281869606940104988925530136196409398588699850576453458663483833942994949792181112344312419913002552403745350168818019921141104469925305173551889088137799104183778963800252027656863426996181295938019280367966805302621334037747192944078159700875977751924234356432683776674289290074493308657981502461310766913072050686004864257532316373880742513861154826846171036915360388447981493386956588822955008537338786254462668123281727730487598580223479084386180949712590768808009772941789670790932326618010597924573884360587665502745449642660156143325124692221146075774459026661080670944513825746337351137495149140636886671218031234169852200170874832455084237036639896578657448446156409314367176347404154170365699518704877219537116282439362129291957477363775108258885758986107471940870100675265187621031291289667029888097550019277506361330499372036194834519402431136039555379101133690768222358094015955256654920424186031092315048075707604297959109477997729667179087712759739555048969643468319004407047023105470997970759116449947177443908347235771786550632785381697115774456675577835824684022287994939071514349968382382947955555103630998292928640585895289858776983987776046174232731727583151579342203337688900312682039254647863252374069755031828855590752401056863822226758509393288299374514710101280450622939735521526453041811249384523424063990668999862644467110623084848751024154620415319138498942932818836880327104880705202901086310081709047674091629867861573259311028797524004017594847834594762262541359709611146111723763798459988298788561983477489548791851358298519802722202179206627897128048070772125641250123176763485342451632192574105447291963637957281665132033341404727626508251366162738421550542293867560783320804821240349917157354807316463722674068286068252023586656401196186621933406121922252328868820206002550605234576299481812584055345835222525793798461791264733521077539594630935813614556057192918940084435228764785913700179709050089986168807500099126416814325576814643829560454986011929835704948018928323149903716196686432856588175404801398243227721163081235742190289155397624036439430766305747177667736576810062147019926983478012162951456106402284675543295820815081576441828062578449248539474278323862503392212946739326238165906566355537007632988466417004088240065528701883321164841231038042109078656415936409012409350388038854786279014519234685052233381375445585211769055581160451079319069536052470646988197295729767613182297387617030122862166464386563592484379258292904846152466565021886078493827547599563738856861300889534658829987378515272106184891450148389208082350650651139547746047616563695208393589161121942735361951805097783051300310414652510455393274623086490781565399339996306589547591705421405729627417239208576144270380764823506903078514433882972494849885497116707229671486414042093978951098362968952064304300938076026417252533454828551053830407368575492839928785580752735981439808708846508247592467301288736332887000113665466394033215493389624889921264184773390389503095283481176249646821954064661341435361450221776272479061556703157268480083591555607124775025676349359472794058048727380359495478290337495327643820964620687168454594121759141395950583267540084035815749651177465518616180453294000068534198433401386094694044557789065595370276321713249897514176336935711425088995317400791052893815132753156052026000653587171268280009909402452100194206171033377798753683092754108551758585474567382363880503214853925641372013233854307232765531840946074823082895389195594519947447120423497134029963832309577980382297111214801080001280133192066121704309894652416949574029318780117027163876169457547635900069835833904838025286975053716299670176364180227361231807207398037331549676994762425068091023920166391368778806623258025213309890613271043780629541167138603870113792276293985036362495602902345227021145201885972047061683794879907695964291609465410810551696530868353828225849815823894644378545145866146678139337002379063373301603188896766328814703722548676567795406069600506859605014232530079477464020727109524844126307192472009479033296595218553176190044900989757225904887041342655054668647500383409165350747881539900155537073285717066481604198156142728386260147199462534489506862658539585876670426941219572312726267486804264633149188670710761697151606274460745755559794482908548445944769053732787975616820657294855876669656470144790714636598416408496690201206960530626538607869390429138215042997571793543635621133982442082136752677598735293340989860341499829148011676685416489405259103653444810086954102922464666755567926260221650919558346258184211331848625362524717082849804266930687918009902436106418218781467625767231828565720886554222043153955527834218473018335543597465840840370746237283249257681820665484022802741637703855119891192645588126104134005275038809714956193259592114289340792578805471195502211363841499636405975950811688430187528267798715040287365013773691999888899036810020272242971153604185422720564754102701808202522068522317854419299134327529636902589386696490675285587496772368939169614014042968314260767108467293688405719054281747123879913235384373849897743793690285444620584073024980595028508009318828413247407156547599766125180520096563559916099750786234539958511752408688229907325835138250419261138446804884906954100373951597020658210174500069465946522878699750526375082831174053920982099513230278474900723264002942523890635644121455997978930738105930907087624712242871096620709659203615299647182503591187376178883605597946268300469188460773379222208128125121264845749754146526217270256714385529200361566690373768508148525069914435947383997198579773376444087682509367863963182535978168987413433235016714903229646966678305029148513862255661425301590297692338864695833338446554983755194656104617899499929147916999036374132565234859774372000279910718258534842254908275684955316126492379334223918441476121013363826043970608018526411797681210149967528063370436824070737772504586214537730031411264838104281048190859977265732623228965983569565972590190132098798918320340358949150845414398819397266247155434713859048154579143763898932446568265614043824169780191404113859241850921108991428384598991691616321708355238251269551071043829413112646278379503123021783557602085883457390629487997380432670874901795824580321592228213458244335043213624040271350332130242942654815302009969509939171614204067610383515105358096326836916870861127143172757926860973518332298226094914433236222639596426406993747665306967500260014322332915275779994449038395831707450332969609341269388963826583484276046094734824693738721438857374920390948660550501099295041221127816387068903010262050704725718519744886253597727054257666328965638904223852148733751492162928386346884709454452807222353741261214138454858139831191416503759640557355961733359917653305830651684252836037885990618166015319476784635226145518199955326342805200326460025044231784532328706633562150946010191071128947155490277697571263212474816365273298463439564279916505214216131518734732935593000060610483011049705117504735595436032714358542169854013508023476893537726616514898797135536569542568968876553099329205110448785300076988595555694263839448255654865228073764127394075783208870355767638173913239538682681479975647355244222990021992114112325954751837695467046482425452971140518553127207855481930187811665206016336040838180487301952686756227279603246208833688582866158685845440653386151046891903471853605100231005771828084027017844894948828870547541152271912448018516392288053816679268583119271122830571110470573811208335228363893749563725637239679571485255718199866270258125481487907893023021967952533072463569694345565222194991451500007829982776913438036705940824636915185713404780659848374722967030543792565351998023745696367910022381062015887801745610279785887121993528481864533970037425687463140426971270717991120549329171554716945439199545162913996236803922148264091737101311061916077017240288850042188519494203388692241520109831163058502411594685626290411400033264282911504196481334053894412544355765312070192571154511336455416679054211481251878234448004618982962309141205516836698974864031933305008022139114979316308241327279513861303310006882442717379477673764233197606031895398913724292554443373222092177723711346107502157722629635681811238491536784786430869802199199274279997542257296420136835520505863367019002057980946683602225923794544950252522967837414938337422568345935985254277943986032329813286076117449175809459792266873330343223678008577741084140714136018059904079462863591206222502445174820728153903161026209963271793005540889840611759844018101900966558533185635369780857506411516663838092984241397557337931984722213846555415748002692792502994329168391839032372675647638776491583032206572891511801686673989752600682872676474708325165208488693208437856833688102240184970050841319318419233926540056095796039764343400862219423066833999726462440741750361128904120711742852800371241257170429108426370551187197888451400178683291262297806142240561313779512559987913436264166085355682923017490222953168412343192714039049718310612001593295075843727289678520413859698675443351272516300464290638896374414071991241243354003814181754108357179507972062920088478223093509558578923780163339864104526342422264543523276840876812411764640459999196020633890891631370623506947624701650173747891047340689279420753410049422904239034674069510925473987220132925285169193807440587777754917475395484409615083660521278498866149240692851387006127809997025502304996621319343485253008598395687364986754718128098754369888396868909973391885233000763020259845905733092039373674388317522309317101243138014804302564585839568776562873287829194589165591852345309164341444367842647327846682194394626504486359775753360360013508492954357354640653169659867013677960323398961217829710714532868515647220366691141519741216951862421658798789549356652870388185133593375803617760304152414413598149364875553797349218754053251283165783644110654630474317467485246517973173956656753648712885755201848820279741681116775338239911036378267153241549470181438515295664060941937997575953511876019754187246217404024153360358213997299163168113304815201287276469602487668405554363710588140984829722577697062742220153926619301694539260464649337740656867916139350502730567601209433162688030392430006878256259883749921231678658376422476055529588095410896901229467580141134034449758011595191842309237719045852661994165698866309932976445244198091461544690424492863248965299556352362768553752824612814452638419348401598383771724587260732914893069371647349025048156205181045104408925477286313976305115975969063579686201568844899866008814454972005113302700964416704986959751886505608810394799922507031307716828640957240222621070232944147936978695812531554556094422325437508333222789124343617457784945979965284925135913403066034537171968618819702357357564411127658081667444521073574817775725955570464362777780068279499566607102090791557775880316304822491192632757254602296079416815592337191901496157111516393210997437954890449469857388817158075614286433138830087200662441918583439018788919636922362647373157677229332741799035857658005041380380380246275336760143995308407634557965098254000921185161456465320087352567121915475140476994957741597743989159155163082910123335317467611175378026152819127297576587377031905115331756743470949814850205376668416499270376358407976933215595789595779261419852265257768495744354048502611690571844312117670968273356862886841377927000085898986053939010447024442298092205170069847141458070106986045392987945437545435251750888557461837022895303556238792077382158680578552115329384281570359369671676128372350894541109288615138458282963078165605012497147055295646164276007812609527749930109762958719696611912504983005850642290371639007896014221241829066522998555466618540984820142100795040829068841282975638627464483216346581640200740716968750755032015578352313565197571992007439518954037292122491366287159682639306406232001014199621748049742864956564934275162723552347144684744141757558649371361308778819377445056081931949883319197517461972393251498237461156247795327053088810300387134241981983083791707382317266841024863752872309056555372585082269062071464006532703930571957789381517301635641419497911841789421985660620423072866894713277501779761554053735818719371944975747276929084650975662462117381615223903231247098384108543457729412268074954951368714572722866703763682930520184776557180591847159403075874465492285498225707666889590044774923012399284534460309887655561427866737903118382566375149097112616258486812095501923624976195364020703919665813641456329153774824455478276850247699153470956292970262512934310842220223993481406752922498330253866977357980302644230077706679277657176567513779168706170803421514801994189469968639980741743246438741204063838792477603155798976753903545107357885895088593554039907433819017397515613577610061082695036656772536446846591687473618162715857486751114717298811989792778054429177801862921635331015554100581726093741366556351317542971102662428646904482052943769349834380271402415652965862259667214729107637755133150606985438593731200763128722975903857660809111331550290718495816776339047408088155689193412877593983663432770897364771671874445239623442829080889929082937332986694797864799065999945738766557906712381522196853834011925545199724002188172160827792701114229286118830326276243127962152457413348742103889126322650686887813835245487558670309171052527214989034118174887575291608070359587925566030883120943095803904845419368958938863390579377595186208234120009723459703693454322151193891388300168322285804019668685111130713127879398835086909008554652562656356456835087684913197779515747459155083941512747328290582206928948312928339970338300540899180165953817481997266324507787465724448241401982511199828151165426006731463114061878521199375708271900825769270194127217553596557125408962414203849458734293008195802729470167781508022151626358684041872526015412062508024216561194265920481770493843520186261875933967738292292102218423721536603336787600502592877330426352819766653974524251091652933428489635913138749658900336993969415689951805149932508791645369516242151229153948309691271654191991175820700348148055731790256512543840821528025536942340965586781612098839442791349271812179825609813297894735516632942449246874194774755372256064033125080344012382117275466679667013318540252233914848374676250471233985454022542677069203991226516481388533244209792528488937875632071190081492115785348539715938822427048720451209142419987214412954196102547265214675792374641940060105935194550790855150870694220021184028041856923707606779554184275452982596872734686387757226692942889888013667252348337731398139387254067581762496833409991281069552794980285852793927864188076953613016934380862016553505602753013192709672021951509784377372713905259513556953645137844389038189367532513136001247629215085540762548451425037088338229957016131029233316446584470397368699027113278253507123256728508770268936203082443977494752505749877171111670067009526169057882073778358515935969869237153001505804758188000515697590649871815410650637694634211167951985294747517765295262349598116354828429608935252530161103954855283093036360905209154174805201927970417520049102744046616722024643349228102145848859655537335313887292758956511966491890607689106165309718330767931344558264131604690781595918956619242392331037108709666445979151289364128994727720081070480934768189604685711098579683521860946857698170945585533119645274554836924318560681420931272601814548560313562945335919585857066547965217941348023135465806888189297317582560566644209791503600794147837163116054389567890338658470327698111225340007578109838030449806687870620420513081549862120834852106414326133526733502345333634891778699999694154363101130912695602809467207784486423720206608054246413474909643542697470658321541974802003405580041861232046243645614635797480074083535635143688452325432356774864700703029000558818712022402880933730200270050042608690527295478716681312803456489534116223239679726403386130243755757371143057912675923858756140209666318287663471797359855110552279668552063886109019151565159265813962620224380557645479103253666135972629130834598972213407170762923636594810889166515471395866014671137965563720855255566484732458375675065850461863237614754017915763609337338178036395842543189084370519683621013379252365483959374194493226876123394234537394259709147273352593962316108359624153811605388406275596106466393124686335851868185962530688480484832316150599767850842441561646356153730194343711970654083460000742426078232331558588425131334250402870497941135236059532947264100245453084683002028611658566740833915643170334507412986953700504328124848053397928337097238834301723288807744163189449713970100225077343911475572107408690868297632932965946784439579781382334505942824329755414340274910019198614362161058681231455678547200132961305601075905934218183880178458410888951243780984363503061199887436078296191886329340107186649056792013187538894564640107538578551103154525185849806879502888654190541743969617705493919480175673083934288568260527368741343181622532262340160031289825767920439585556787765742296744249796860224581813912374139464902414107413228114405643282158103037967516482077990783466932754432140318989556489988588242240365003284448009527866855022999186061140676930567041639122552603514160951073532907457508562834787287126283440087365056429871013491172441406633872366810753922985669616338826296945859829812732661974257566412764785262166667036487654540039724062844197644347496055714132649105958206610484784856987975578187863650183246762188229105018284945127112626619892122160302265842673380281641459503145499501780903835473236975846505437872955553093028752727547142473619705158015531838011572677555852181685484663208141485357672249913650508078171753229668756250253969523700645957043648135862867592222682874333232687368537112289115913720126615507944645842172379635187442789495380789842861509398835058968774116445906833522204082428718912445192778303694908401472293423237597805999165290265623244424424118415355207689617991437766070286977522218368740469455761912090056517085999201917769693098684036890574478869617995462935228682079924019069667308829728639907781336214546980411203938086556684660239051636385467028524058142890473173390520433715222605034001954718317006166298758958647422433288779624549690670292678738076816660619679464154785775090176906115900659667586951557890965578404948533644888132163756068079778113493362009913946799465611121948055860810862014193462717186296341736443200138997828621448436048679574604168985188409258028108709813873572955948364292427008972384200959993147159736180075884295771836195543439519054294007996994437998611929626962536482596183924479448202059773734429102779836377772528507119012545883771693632957242868984141810499179998138111160373124903565222995647805979454963709082539729030149415840365018190660215494903135757249785940540008746290178840327573226864103381512339007982426734434440169428664435078532853882600952790877643562476117222840804153295949554142609938347552479175381054701988937644799806646675706793218110403960403392958123188076698309677580312439339080182781356442165721428405434584403426311857619656716396768608744644549145743095924833047156225645905504895641674642660630360861555183107163105959868748331996809963378866658726301187997016673414159749227945276342312402594678080748439218375035135453236588311027668350666171516915528678834562063201643262859790010336456864591006981934903614110963295011741658216405887626279431158629307264001808151549442044446185006899299318273194306369017869206885097086499824245077345527789593056397177346360979299431750343350650967184154682703717493469699134922948081826375482143750032680573636944380786972290196353724914533311946308941099732328847281796418436537868679060912918386473251094188530279163969227859800001239929230467729816122936429835553377989250409136150404867085402718003501001855049479115481740783631300255693859804099877768974088609175590399922184637090555758173181066709432295134545764947966635246029330182256668865548096680651559749025389121381903740277319890052402432058577777280201030694723588869207462283850985006080796610526116398499907720363029999528296552507170299509532362544570940842052108827423163972132244462560417933156501784066773799207276301537482644147797692902778743204695934888827149232134901006120800422873090521164661899319893368908304587097247061436090604078588665113423296539762079838906721030183314218367806308566485111371691304554562081126666019617609778252397591733912830086618571592687041519005445583988717813112092317713194868662288153086635079924890109383080484794339362416809142300071322642046653584298017845644732757206481612058937025458030894003204617180042113476486299741420975753074872234709539391752956189446564309946293518551865053032330056476253152983380310768427564913710373283012790373464258856802236363988620617554657531724442198416812194302711865915314571777066221511847353727489636746697718970145420558941098808972070614122002189902758176652413830598119825821127061426083686708941292515556363146463272053491712300668793930756477945963854091370430067307781146460582353281856254635552125977695984788750367143570214485861524710919452520121893266353806438501920627488291815733609328828125027573165080385417424315787211756269950877589337696357373567351744102609894815725186814604504411466110409713094591998556156000829589542203022443874171763553292503024728994413201447998049605394770452594863055921003331448945366462548660927057830154513395482505857904258498368755166028287941658810492949784642235053831497282980573701100705959443990055067084342452675892883504926963798046303042463936773302682839054672347729704923445465711722055927728361635706587761233217810243822311857090559115516206291220086403301491394030644497958638690767588318228786803737646357881292189364487748791519453431592979224001579425044370433206055616229900961213438167455437202188315022120417216632562231556962701555461051669293767357909740863089988347766006367383724195704408703650205890054386343663818208067576084691982445329354439563774032867968074008259264788528652551224117388161370964466063842087418939892354482150175708710859848157498210324829428732863009673752641309539637282582578704308270130838825274460704222290221438118073747255085686394820882597799478549267143827509181761667120752794665367676841991470520806800374764680311357182890680194264901364101734804145858908208738233102576977430003812091996764756968533049424618505665274170895631933697350657550797136027249982304819392845669234465964818812673169892353078772212155071801903720741978042857591367604474395107601899642598152633444187183669551757859244433454796975151591865981400550698328232153898800770134318021009605150701526804914583376853733590223156848287648248647796684070265912036869573284676642557801844399218319149699728788287965962996183968291546722099470502836478430516615418472661726049105128511037278519559732201119526856975642846747502790463424130728292130669559229512172168106480507493764085384528115218124332713743532734775359274080058985794913848396294287907716405701984835607497155993876921095936429246980700176489642316976570071877687156157332231588601815665532947421691927476710971110679734483333900489226556424813519003384401776049653081271993246520537858681566020903347625564135457827425015378247905991651728440233915800582361280459580874730100456331212180919358404689482210688841728403107736783675291224445639815815741075421983924884517523557049794856279492948327471636678877566160600089244427069952505432748586155736425474655824969574269034691766265400942900429729513921728480829734607191511003587885137413051872961968327711012116408801158420162202145561766991346622604840526465372890529885241217860075162496386893897772932099010227676454316041011231327414072521368799380363261855529717955513438916932658057256979153444896110442510174683837532872945494399552822185679543753949791984704146029881337130513621580059248667969200229430703846644697307210656955148987256881163842400756825641698252285960281436175641421403275619327788179315656544420797203235331971023516001378275331254565762719999939492365786127727759630605263726609706499406050496330743402601568421932495930392850028077486289224689269198931675851215914944463674179919970286755081517657657220808916645457660190865300065159486066773847695124895667284627392741101330751840907376497045227535706333787061374983462222582768945597712951043306905794148337516624610882654332638579286286085051587333156531920609206542295254773300157238073879390355234193728916976404646622186126152222168279318943048052540164241589051290601395821245731193932663899516836899725215992867250790570907470070802629526728805954077396429127203134109694513207004683711756304987859612465076061299717641156400054146651456317141549199630039582801443378889128230808989917045347049703946822556845931168051360946386795933922112914421032945230302684180301251234204389092633287062914471400948461811256555062934695816114314626068466890169084786322132526014651854732245999744618920020619887130119215477385741372574172075964310963908118167580471508609494568809049734968357604806542920235434444677228481002602658673556980498793001420201025445683466944563840659777733434561800744640752974299384343931990354712595015297008812447310752895732056364030787974739151280860095826805388362263939520306444089332105112776162504699214422084940121407451175375572801982948288294480451183259440063538829430154150368963020432548026805847077703993562431725725344959657724805954305655502454220677413237988072690035680628086007527320032095603847501698033298526094625113750845481653968448392351251074933928035599673381488212915828929668980226494622304567951682514307764898242329003206995827206616979362489792340222392608297539473731606199455583864216304157173275414081416460620636212831452341246701192048346350687855957964677643609816475000357539591239927763753436057268283519325574489233610818209550642549174382545252636698929890421062140557427789642518758854026042388257952523587879615555715891632638536756656790653174344473236660872907756260115914062417350067057595864584192463259855534567724536429898005930178119035545172998451742937781861269637420010933947823247784344765927273144527341470373794468259956855777971472983342568475854807833726856809407560529554120452552775738790731811461468752687694992100993871975051814426299461483268853412397291777904661491184786677778628601725527573375787509437200991635655430876699249008039488724741809079565941168308376263848477450246660282095268305424202183182111927407588634436308723174445155148303127657422411761569214166670432361383570994418547174939713159523400674251206171699669814458653245839628216472955424482564486499775457531401029771350297614717479942104824159072141729642535253444569125098846138543468941084392410046116954205534964084967918238301630515939716470855230737710426987755252691530376794792838575722447941883037475748889284750022271335953249019412190540816461658057782169553712379941859836401948746306248780452717031636962912685086986413280106756578735278252274533599990889351504764225548799530402369388133153428113206942143579528379477578126436999101393193461844725784265379068833784402953040105172836396360129736717960322667531985833508874166171915191073200611256137940342604520053062350935492857920899608678940493889864884980812780515426841818693752544198477694255586104344425898649901595040608309519474305548884708739711362181735014589678149581013798464173465710085654686072833428498232731644495399868774062330321843683153566348613628390469329328626422443073911519784870550650705187367555959024610978716997545363671707279258864030997506589389579772732544894366431795721251424119954846323179424999872358126974319871602007905835964321494524839971785116750203091604901214741086536640110760323210095742804338502989655733746474646385054740117535976837573193606817736825748589383079834306254948135699272030029412795209171472077217835290748097779020505401105081351157544308294892355388921121668249159768115038339001690744626842712793963330078719797148994560819393303894975828487059984460827974353982644907413533616036772270533386877146023755578640969737205180796494436395778802415156359107545348659892441213193049199766859241745844896092602158058429748862956057881483192470925741783600789545434318079709497651498619769649924265709841486502164731229332588554395511300531521354695005627519976120853902168569937570536143893195121129259853358384377615583900269845517457076888230531953566158179040090762709072017400648411377405091441012816237498268214523965285322692353986087478784536702135246268058064536947937069375415741781245243544551675589822262042861428319917294783787717397110516441395562051447622622160389437962475543088160649142030537451412674795290958010889534273869384607509267991982233156307621807902443089060335620086241261424750232563027685347883189939723189359802930276176846023036348274752014294830030440597354272435809380670770488245050645602873452863230767063654106281472107469537881896678695827775702579333070683804625924319675630544942623853648635911518172268582750724873666507339633442256879230474346198658054184988464910334810074805282783729860081294110643834838731203884455444534811888530326099338979694838552587118577639910541779782790218022204157304600951306558559967019815512269618557569637905616180940301403892196782796058376375313503661463761009995340656745038746773792914275471486506952298235644026919396434069080909675497814504295212732586565518955579583259014416353160052817402039719813147366021574260200869248577830049706898209118971043076543426776980829577446956134450607029172739940051623469076507429362749760309494121013456665796548638009310387536424828022039391126588780835144567624512803646532595787086537754200462985246218885860725538075581007449901940348487453677115635414715471505078134417789342459783265341491366972789890908478272337531757281068560965412159949072216744332543587748365578903804101489039171483263979466892413221316345598517330789498751472781089506039845341478744435846862243196920483156075518645184713757317802401408893905100092516271082982957938777874717974645661056023086861071320564648954020595245450181435061823345534420515336057232220863711319827059974603813824754686269899598034054453883102456278655854493146892993026537563796107387791190939390822036219390675271952097810449562599057833158561533050765956421964177334135565715083809588803837428406900354401216036342772717755376506344427544500324048258735672009444381741619640438498006729810429853519468317312356544960869828019180189055964016248181715530680141811080713789890803695935116329355432443122207532022260797002528425408243276333502943492107918979313797624604819124409486542032391961045776399708174106775014938915765290538702941035149630748838174898441321151758835411964179480304854197040572850240408687760765653001813416257193567684801215236795518335442418538513608092435632718236380245239144155558475793230880892104735982227014223552993147105219303293956050267843882519001560773695836205324888752277500639799164443197202267422853769738673590533803648392092610751016847504513144107177564738524503939738883536275213066118053252818976596345172565921557553821775106816118487831586834268925675125310619191038029185301799039195055396866152395978069041001197898955669608783795952702770292696597439569920525287414059087838773508964999664364013549547675426894371253249604801219316248064020316197445466638452681325177335585757744662294990677057008849081049835423772917606979570326677080170389154520549202479806579412107729055594717379847986467464989447692660555482919082881512251380284480091395143836447775561545880266792187367259629265231300086987081583567645707207221064048735581521623993634962845328377462918117222163016061241336408685980873803618826169886683693415189718766379058367631531647374066113463922462425356553261294770012365585240714304422910268497973908142252070414673251672965840655797461378627570382652150386731541452726493436379921070971267298649091750804999691274201450963395019640768019422163097797281665569234061638714921376443019213047273792052303459112089300666390436432562855600872269765119130029782375335004005117787691985925769957961229019848509611088702108106741073068332361093081743737667004371868841370321390756397220695206457687461922765959408294416655287803213107134868815062238188238361595325911259086626609862560747501188832773772909591673351812644674404369864204082133022164998562932277142438638708964245582858449944835746130936726769749101134690300703177485051735772461177385277301922091169632299367854871594978137867682402550667810379209530888704175355418294202206578020411461270611362530725161183424913016251153481098622177753370926838764238814303013952564865065567068317330672032655929148992213775972309216750248458726121405210905060367302195953092988309733346582137382541211855075091835290045981128249376232462043010685844627176697406167081475596043197820474490400619261938369732640598221850398034560435612486849952152917387247244224417428059298692289237212397789083215793983301596239857944505481621768953262320444305580322590493560307445919885962439106137097033673720170796805690319552414693764845333311816591016739831208640252936065330693131323511885738862363514793836286390008969579582292634545496548047183773308571278512094147502263150858578249475595369843717070871159911552400474872496997225780705514228448005348858921503389121489294043944018928442602642163056091530299071720217082350789509209817922248080040911849245567457759268368137976217758090958282570372189543767118300599354077163406962691143717648774863870834849842696908914855059883756270787255338568509295383396097850809364362571821940410034457768659457290144861383893554567798870338787959275863381345365106133876006721029867677914758756858079627425292344723207020542365154470729700425343198701048767742286410295938181830331259151748601578220802048692546113849824264755855049923955687043399016542168770230444304206992169472665648010517018598547299484682531666330740273421258953909706562486416854741497138435040562524951873172950397916917280247720041324812508852671802482617080154247668207385922101258887146407590424106781910266375733970601261753362430219350481582712462245611696260083003132370141267578885324251270105090703018811990036798420322591713125609524926276557409251848599790442788100060987495643624707157722037143334823931444249152323175684191866076337537349008206835152180981369550626515954944433459568416619958186295757347136489059292292504975439498965806032357626783269926381174337931348758252787683528181809435180671305143662298544587092531165569672557821611453756663333305581106801847424844364740372016628876494512478905060036580564390207476204356295416519619300008237360105761654299988348021959751343498807397415170797869389860205978561580480559271157081089151102706431381703375300038552540026432522946765052820467890887240067738039287330289446675146616972582248420100107517624134564240520826979008991820470868937040595723337608409333959272291253976088467202619068764797627415441791045127463978296588465364085206387003048006237263651258560446653872158766418864229952790162985286403266202729900671936912627761684981442466496764375702333359483218085707533904804166407451232348988840674810714071808572609649727348149368157995734571655908316951871726216470587609003229876136868071497912446780856841862805391283850349366620405765567067531604534691629149202814176858274721793045791021589486604089105030859852830862692134125913458875269570285533536075048867005850017658726034832575484902516927853712654659178049519341171345718408249734916145479841477046379505253102276364647191121069333822115320456822878519594755682957206820520055604653775247634648512118360596935108140948133643658422942256305894523251933800858394783612685442183434439843858995115703772955535747934324703385840032985083451159239226396184412892431854305927275223000376741899762346040899746575325260255304358184416978242482541065770687519852916017312638946479669014773422810471756245770161662768787790905878480985652717504442322486196290294158206196610215175646276036962151945281736761122377643629001556794936327643640406023220846665826448708873930603524381513827584786839783439413324128144839194605907554469516132378188766463710282163881500136508711428388765772229806947999167492913427894291961592635586996233242024744655913261290411121211952034192186748190098073695656746184375974384139302661258584762739085900664278556261405207454454298134871878456054754908007370441080763840276444193355187725461731356631418856892826234028568282025319997580256452741544957254350567895824581992481528160789185816289574780995978685101626403795455800977057301426367267753400925649917271160464144356936486677933633435244301426761257943533310709586972464553347999968398098186152179609252533706265761651235989956299029881058326264838461076976595348518732321293962154078663814897883051790099418507531152884633616279413497893803401151996370285575178703645518173772072426206407794721027562165003185158703048126717745336036290357770017675253783427249878040497253836538478190260933121935814425298830636146446534956985282811846595304368446332080766593212230130359674638886035836353896047529064703280506994749959827705285616638810348121126683629834929067024400810294792801328330352623550141656640362473536457085276704400000710592837516619608693014705099758903717198348786286167602688581672904346533791000985524428707652366901258973623501650066775871916793855420348163106542865089423636840670289817291056216814754754911713276863161741477948561662316707795390843568043487236056637237391621361052887037045246427969958586099435720540951036488104738581200397354875097336989308830601212814034841569041159459196370408747506432309926328229607852634289090881942096400220554732202837564664832296339797278719422633733626162054851358311766639172376662925817739978357305089123722600204008201646281450851101463271393410036883176230810705380380135371733322579082661655880744939559796103824742697018949806369050993069314215998383127587844350505718637896000680167776637529502435842361968985552325346088168957211783056540671200807501405178067042955409756801797968548681954654970506439369747436947788803358993390910591658158932839709971978917845779382944388661227072889797427519550619692516775142646145843922626744881195756578991306302567005387275106216401924895090887484607230875978042440858722054038094815072992406923764531039513388668103106448278194393303397555599867048787175599136583701462569379571120874883950337815677523819869389964651649143255731912397254914736065724802859922986902018438567786933565960015165336908428690491165827425158218346139477369197598968120576488142253093159389937195624463746376214327294053678548127275837928920759742132344509168881265219028475523679447529405804607886589328795255039998208944630102228974029773225397946139223416642428277484649046427435189905748368704826997610824299360480665887394501218245390098431952599825816040993322040944843258595234347041804953539378248109294472057183817988292940089246137627869202346322040962808115878222877088314189169664824467382400327416372530191242634257740315870223019850841279410436896268909994463063174612619899648963523155303214659728208011016297553048459591185122686205265618037555523993517058797206945081623329333089569929721837391321229609354215409214963781518401945239117943689823091591856270631520869750001314309465982369814146081830097063948336911739500288055754690043224421010303260006506908156445391137141390525417777268472089192585004683278607782171651324419144649578825366399225743386153481402778609097582507742241786670822230789772218350054852460610291688633236769996809768987497003883003795698858715956425502319683464996019457665588552297798875799884040267600906936167492294687084766387793463865078847656336214564218977500631107244662366745986957643216331695431965036680214010070760761939175226015479404398126621377481107827991816295714252860195045244933304214350891358904301877670373162758388731537031507147928361467730864969568176261179295163916633359147053788085800168959319429423585441025284237765808200249556261477903249010793754553255643895012509573111405207969616491331482391837788831209120890049216189002763010451930204889053944085357323872459184072374065437116550380337962468330428080687613476514173988489004591129613628363113960657807177598491473317502528952869388417028033512158847795281357161853051080017277036027864956507625976019277059976135730305860190499677873922319583755633645068238107316413329709011041646528269695411688233186026072486509569926602726782660937349579741102417649838928715125285571327893324635622485316609014646999843299596855149846373866430905997452135792484763460322958500209603353216330180875833892127748435400549399493005482792148713984562767157724054398972921870479101983900175087624495184388258191131974770867262581002208211012062004898407887566159730258378772917504020563675092071447602316416549533612546660120430509831730171192000885357064181837590361275623870363336942862514902001673565400971732996680266326284638127914499191208294530281502940764066852293237178246217882589580860593533357600994186237753218176717865283290006467234558577462300329114637979229756108302689557283672913993327982860286441984380586162144054338451030697049458529842322728382560969666336235349187770274284690516994263110633516297615777883351887705354222913587101701850573381124816363199077865371406778579871490796902682754617329504244159631811497845511082573515009877548461834699906008520471762906635518052718054403273898418979851621249036771590975042472581654209876235390757431662739431788969227216818332016338278702311236556537328547177978057208774330955315658062233253827181862949035259647083538191763486951869452283413519760465999974923581897071225783964866271832143209476474818434807950742218988122987476324564989730325678666966284079940008408106363188576924867223983193449992179982095618567926322640633125548486502116434126744165248358180622278932052015612085787244441966699654634057935214059423434269669005823362951921657383898044929524976619882695227101822328734461409989130387548181887586626578706030149146676784328997614965387286440521519972724783198764246425746098032074078126711884522308024365079162387559757290394503910580954932386025329833234164370712003101267932618559640612543913842567828101715719156763066918145570259823779928829806547203758245009624074719955490004333848953877727261699514550556176479792496686194761754270589682990023647392656942361722542879911948095088986168869198634750618543522424579331509786962409541106341302716069375137461994371769539353787968178962390183887176184957863686878869786040487283903275660547388234577349056364349093989254173908717875396756615770000668094165743059748112410347838760392404500175481487660965491108568995601657335377822746773661415631195862768217296987345825350763315271558182609597200074804671498707573040849995739587895509576697687596872199784436336145920321785047980675299276047749217199684211863919546613659843950295789533305589095799895184020673149885672989309874690432912572132031317859727711875201801536422879491952076298244516348482358218898003189533159152360968799451429684928818784461380567642294079582527750745064535052848939055887639022453047904440861690022885540230206293989274055810633074662991876679905297767495639078569207332886337684256264613883707633169073102907318961598884305759134700045863564062945122910495936903574181608202088288338219131556299923528144718222780260050587659010378730255912223840022243711776710560496281651918573214550653428405012555841029155792885051662810790566315400396197515881262112353724963229701989963916724725542116750044362675569352728839490188443851112824613629264377675090526338367488941258782132007017121174141529331561305511908339685233788398830546666950945474645572087059537456717341245685634142266151784877998323822746345889746419932104416218376997193146846478709309337571423078083625024864181856619149221104057668700615054378102186714853549034442372086598872088942838931779400642388924752925081556302578713269621441020517603547704716547586077124057750163339270388241349060429319240747851456468395785846694559644086944468297460649753674531209916585253366902994900901322598289929730265958530228776137360197366584727695328675824290399319286452653634774642360758140654722881452133214532650046158390456059382080378930476934794947883960818510150243941429425142532988186088898663438604799120784594496424745917439551204347642460425911525129035879239490025530800287956442345879039371252074853263076653923090363316338738597020322745117814293038522601414349262358457033373795862314623611358915714689291967648162929412753322933618646514488733134381431305916782063845214389190259127546204934516963451582389591186133064545945565921188877701508779497962492955561539294611758718883209612210144559279922505574635354749220978298191864323297879907938195733912137302771437174358476699468316553369330123605030522996378070579209730107279302829308527536926244392074157450393673829989456422107804473328936518612054156587090151576730926663684252857211517430312714049649425323159320061480416571618101616779391014341278824123090864880742001710480469000130925758966099897287412864610108627110517717159771436957769661472562032724002313265825760250121119594982420916850569538075256588116028137146188229452788908217389344441354864011987292803225372168848011521485886727331225535173954857939404762882033498756944071105364730534050305291202231154714593470009130152863551150084701135705959039555829083865555564398751598712194088211939324279247881898736949027803756425270694943955592009271319981997852892154351262876995562420288081325794811262486630149494863208223009056288752207897891778867503450163888202402563593611338798532620865315019162505806742828941398388954661312671651039265009392583408493654364156772897230944564112876870938559508841461794807880610026795953685954956541924861956487236957171494453596146389241733228092543479412424653899330463055704913408370698626316806165513771253986979905641106122585086313446480007699294773044171087497020406182378620175504238108226617502828272794030993052485818930512447404906638213097856017646621987349369056345092980192163268616551773972988882508404204140519022828254339465388918480821500981465515268729269591088868899545782115349183890333259803360192415708542499431176447355780310737685636728421559572601763554787728062673088337511248239135807151749660424605583560549007470759294350912773260138877644298687834011899859958953372719912289933921549113556530147623160152621651882322093573128304085770707716598007427840207820499840635760590787413741386683262611403791378645100377534001996571694991579494086799238897550531656339824155174578651041897526934389702888371763907425729720051263334348787040116010008824772585657373105307999366760470613570244233307413863002411570697667916532925233530436147521557083954670815037854555024395402476248507470200975292624267919766222364965668594489467577257506772255623901982157610199045571400328524216460137136542615846250590757439409460288571303464155373846820662377437611007860819825652646433381622180579860618602967928469353599984264974592216449128383882391554516668862878419702319543602401465287742297091728114769066403601072962655796038425628152946628579421182858904224736857319416608099771435798899764052451350926344594913620004349413381250185691192617978056108747938069331695492181784232598908145744440419532744797716723320359510589081155422191259804245793409161681309996520645847119941411520397508195872962423125052470401670593841253227912227183122420389560389439471855921560115271280765582562033353300946260410426226027273806297869107246916585097371258302650118316355505054493342123680315908894904477398946661642600754870836919575117061627424527295879575533396344531187268966283688224497501951182048562055705348295955733657244199066361300289905683364621128802791593562489215336783768980382102009225717013464098233285216656569522310142869410769634576420764840600539943692303291029582778693103961509129995755124202266312115817378564320873818710020846892160821488860357096554441130794910811969463238519229793277097884672474274648962968071275286120072632039663839320441313294179047059562606148721992938500865840514578202345893066278031054769051353751457516982445334921819291108081089217773629380832355252459353242054722867436205122068331260719774437547198396876756023529169032287723557330311198281963967482451028126871755439857140804610567780357471969492328037418100323055941838537505680128647364888184761799332777907028058685065484239518357266060583591163780993118140480394494461314897980265654981024252683171692139509169101410737014514236541376396547800766208703284380731030202884865464198274860192400617315234808200374670018615127346834978466390144779381612402331033712236296437714040857436446974807436522520075154159032346611904376093184884519622467883394339186195694818144923278978184871060496470194874768935382451107115658002218073689411292799434060808037691769136346970783142257537759436011189382570667615144148066856117749093257552382697374944516055925053644970672801219312479472800618584064442059484290676927380905494526491918275620199878077791700793000129482787034163656578307932456683287648935082011780357640591686991886373136926900400286758591827057689792262344888682993312825622543673269647230158593128741826507901239014514912367229308385512788756103353678580565804053061994698981907890450770577677235601918531009038744295931713721129625690106638255679898646952672858011900877304671502733832229596235733227152395588502825932444826596831082875394255541715355665750982666970809938793692581994490885472746622286665242430185099001732366050658087329418736931395559290978631831782676027113596337869644229551295751373321722330233047894020516509568677511497624769774579237035492955303071248353392006242493874635517172731032441298612309771854999321286207484957782683234604791007163623440393907106517658972320475016679646928635347513880037298155178018927512790096178697164247261226283120499759062554594400066454327004064522678658173807790959407242549215431235092400093490772466485788196998869077452925206282273993565166624898418834835398250518726710993293357455399839684278428510003680802112705725705399731850456666981546990447988671112594480801521624057310330478582674082403799652221680554864980748918308511260037659966485115805574677510220874783324435746844892945596095203482178934507918406434483356742911975463538224257583186444331586213386300177457971627347700219513529658448638429113210543030008278118505299235942422069303404643178270177069711931120350143392053732424352074389553414413411031515643132773090812427853755504723787992680603647703471431985225720835117772285581734828079266842361408910195392731419907357674832804649074788055358885810272029320747541074748669230844279500256410469148500352024068204351581241049355882287863560956421264500220576832378816584438318940959448126921593256873788107077331265611578990783979479088941739694436628915409308218712402294934879791941893560061319954667654745853411913673585586281705258134503858444718220825969058374474746114212212691864944251515312451671849797051324086249226736927588221929179830770019868965898215779240710244204270821945043173306468754289873434746344516653155936683350645235684432812895391872067287489885015635063247994974790777402261194430843938328977792021282542209408204683423794688939529419160581942256233006718312225765999119905066287569897767855098238844560910240810367754988676468423325958993166461623032153648460614646867731068596266646701373329150321681502052952504481579383862103265215930413565588775835361257470749729927162828792726148502721901426860303654511938231883956135724271449618234437889090648849653425849941584056128798275543415608968028813431214290001173636510655843737224056709065132698705639693103678658254226010157701544973868785526948957451588196558767384833568590224050278898699362407099475981282956990907302979446193125948817493626026346191351547094145406792315692433006980235333585550776555029144944750935407905292370970435473813288213879572065825482267499441557203970500984729686455082955341932373036855727456309145549199674492757663948194509773506082850789217839302428041228004576414244271867135247179629560940646037383085272852172893897772702287705842572996927605947874850918270725199145430514406458855022706398918786169751140600276832162106375949130021630642942743339710081075058938357080298434290441372610608932182852616444774945529124233862516587460951524131143870125864720851907750267871688495904673187305383579962856312894577012361166244988234390110535530345715965761320305675418690840455668240605616392675308164613186802326735210068143774427189312924017181399878430477579592295431655021439769483153121271837734419713166337904686100703981987079602999172683367466437134459590237192853244894440645337831847576038235767930854253702124450389809132801607709766348661879682800833477465403381966239139066517061789719094434509574039699501720878826167062932368229176132865675692596710055776473337441861506138558954281779418364209494636110177951406887427952565436707074187058626229341719281009942199671334405797572350611773235778647749624269733730772970447668443060033689250949656940879159540967038957616474456758353276906355707460658796840091608682735574974252898845544768068119645519390185804618380154144788131117280579964750911527520844796981118161432961122803774049308249412669374070026429688773656831427019568621400834423642189743203450484562400576151640098040651195896953672533288115404401620428829213937837909434599405586183820630186548404821978223650888394282240942072390587686144913518903350791147345268375904709348065304769504520254954381192418598373220884932312952860235228697770315575687422719584074535165560054231879513617539124154009051345315161039945461539130509383033707818259712337915347276458650878093076004244106951405989358197728570145026774992899775962252764048985044447492104821877692897031228747638879263064563492538075409340541279948163743988546195867499829358539789750732915739460496928056539765021456763802864399995790577591677631249873034720391813075268107475982761903281984052788038987646030879866040165942182193418702723534936477039037439542902276966749130389590075394394913328905874681941040522330899937223175493673859403111546363399725866323697016491655378392650064890607693755119084134371232263148219673923630029210735688779455881876433309624298545274544277972420134654969838943263834926858925785029415020575439106113766468054250119324117867963200838591395688386538491021798000783335238640765296147667572566366503094337165332568774156196085424056597647671318070296956417042099150259603643215434557138056459545671015381955591594955136450105598676016433850223473036480650974228070949416496945743991125143924888889042468668413186281961534147605166361456502815939448212520057150040503415881991071880805647793215984829705598719300724124668591028375824634061526860571923961709371391346114471342146168954380818956798205331480022302803650631832429748266560976129146457286327749969831160120935065897623984583504299076245590837482592379605869116710577470000616813205082015126339125299815021386935558296630554093122672331320178041189072199270080682782850804790026727309515251938589758036114842684851904901375278242247978127968448726948107980162558723899378423610625319801136900600705165346522248152062988996469712036318549538929375978692260274609436767758525386366634349603214731250596882757189981074165728315069088762368865615068570489366979880749836799433632376769805276049553818387385878172381778712133482036067087052106130861760074644632151675058300876089994701175637189244037614246919399171334921440519405298587007453403622195501757680975701609423447637019073561776111518467883051466073831113672770081297929175585535813757258354965609003393478129984426117381732618929652791580873428583562745788759061587411867906121211475600960902594954282679001323661745967221840699475237377149130957411420290748290312168508186138352396911110285532686657398385466711155551862012013022893042264852430305086023439879009569220989539497328671541060952738391416100802808639164142524654620711851852828472461687515815840948221410918608053311140693926221617855410002183935952116470677427283008435213261584188538026445882657606605442158288830762894999985573818291619421108350231438549899503207222708270916281471239194851261591094725028314597841798315702479786209330718882445291161766998907765356402732841157363149122279792366062943519567232539436311988945613577009878883914001398655211693103486245538369578273949651310396027943314203463952207550159207357708152097691193446590993221427018077109596240995354634034157937298960816817554490133293118679507896343185426396438922754242717349195666751741932864652703943118106486549848968453954364309694574927519085741869991427817591471021696306276050629317294742586614771156119683811050080780165647201190649557024418726946179420135581337433693018312183286362340239555725873416631673172412228669903442575574710457970854701383307824345464650450806428119595960691790357677762549424016831585506613450703206901639135995336499395302949992330815105312439216292104807415290916782387653268565515945147589359960953522831204644258293615954639646273642761670761298428630574228370136173087078092587390984871057017246845560614069812332226285525043895280248629655221790987725000028215955642510701133486158208417972613584212541571391840900010215900477402954834984354825981387397022440951835528914260658722097932014109341792975453064554745330550905934176758863006650707994212211673319854646823091861841458534766224844093010400269113205232468057252034248623757176765501706576537682731110024170064513658073931500259295625075680905733296811181474460554956944068864065567281878597847564152871947562426582550589893538291158495511932203787258199826896137950505205163573482187157196503436117852823934364908848140731796185222448753054963026164363902708315158845688072388671134975276013856831245326018482688632411445693366059107354628676207612284655220113961566638784177055050850799653264232571585132911323213341688320042608717598484358303080209178868996526936557410383214241900019750746199980409327242654436113763477168970077189274001045569634545824109675167849644718324044916056605862182766476329246068353036546705918311570611669528232129495951046997876947505801057773273707944099951017653982642954869059262847487807539777743407728614329333500750829756103717635871434359410128091043667801482426844709752062277819184072013963934328648914909478900432475833472409366039571445628099198420303708792334187787261332720224511678696307859131465024985350641340401307058033434743838950413655326984192762596762584572698533584966744383754053536043636516226798977749340981042681136481796831130698966498477563508459427848051227290477202011336673820903681020789802694775621342601608345899310684592244507209095538095063454385311706599734333611488224467398226425691183342863732175199307659446116937511684762883141045854963675330192247134962276782426010543222919319834804756818089376753262066799747679559948982459517358291557128000246976618798619755388397420136923011120914738588911357944296496929220581448484987129040222122891963968501319140199728377186521191996238484218565303646665656867902350854472621826454658660527444560920234277700376555474260417896527006280056554250186791700134547878800867171301562869717177840475310832196357720624954025708383505510956939663951187841640766797043458342952842218599760159586722916782269271056605638545440837851551061201137873983357533934242744177002746251800366378477478781837718052208947860789783328050259214937999787588245422229402100157867625902994880915425077971417057582073559716101688167553625767115122187076711769038536170073720725820022619386945261470054548434150379521856800797871213996386249523843462618178881059970903176712424402905161018505612532921808873268316754619476766158979081628452729346356597548449513488227917749780678440629826346759024404577419034199971870888015130158033826984807419516146359688285535295796941984865837670532956232885880114611804345446411984344581168185391988289160693793525557145764418512602774992164489234040989722330829647245533178745360882933657744397873070191321716573890871835797688395804970390629907540489402189643188665459997173874333785309877269519205290341717163074354572756268702592259626633383156808807791207303683303576611645098328097821871508321955409291854263010437371694420481617923684791812028686823631289306628582836734122452725365667783000378315148185476939973000792790647433858697657336217490207785256600691673579356674429717841912446113731272230473032261132064323730615047707353180777925066364866477217511468465109083862171851818612940050264231571380091072237702767015185776368131435360336981498386848810360284549232838143296725067233011766142461223992714032616339616562542321837454588575220089310878763524632472460932719333454801308871011244486051900964383633198252849618829392140952236662111641875570369595389755246817988374400671320259684284517521535068512847594706387092938288757867181909228711176072401177293225752199036376301466163550947969216638752918205838220291069719081413259766388002844380871270070565820101521313539566691243500198218347448057074695243298152271092064318523333841686648452007067315044658247362869927292432461968122122171749826574439834820209956724887306783959144781791527603020595847710092738768580572287470605211016574341799335141696917463249346286510374434037527710926933263536906741894339785251494670869061830950239896643655771054206847681221090642521287633287622958139681435429184653962897694565968239400847732679441689297763248714900179266530994950399783730839498162804204269955316629819548341357373898147162216594810836842003759759976117371446652047684703999765236646756802432043810584866947945736120316673628368954739313979229135338738992252474144011432907334353636611763026914286101368991019926694916420167862042829118903729968279548608740143332891059776978056101471724218996783627490585290315881174206566173290020188458183270670889886307922498758893156134619538391602913543705691751872338940316084297425415564209039331370641501054699483330486995534009351360647577100154998283623947891093777647192524664698938551858355922973504433284808646417546321802362590044075325090777264407159625765958339924756932129703149314963126826459957395514003780380627502199166912046788546598869200162686014906766732725333838090531088876187860946356106220303436209705968774518213142667034552520457393955357964757884610248887426431133531038700209620411065244033471019797403392953282641898735321332058587744996857866475283064855419138071726494729885898477537271131954437112586623475374952942638094243131568352832330920903131304562967969109649877082595034394622339869314245483741213509852149653631341050911419686164755036985092239677853497986782833680322746644412318558737207513230449144363572576834888249558278151986334965665311970260737857887853274002918501009888553880747523032406880872862121916890072925589840383112170164001788890399511885180264027468103114515654248083721852704179623038248660119244589451784216016569421793049079602709131154969127120764066210215901913473968035205334967554454619141995387815600843837631660811857592304745383688841754672882882675167885350124021993660878202085994215016140466447273108740780711016661989080881525615107117777339316684899629227489972672341273575974028439286247486770113738848109919820317511020606797833794847626605912322965606900111156705236951378443075519742091538947565782878915708596987016886318755778497737224628870708399346268536006272431393401247749720231341729428569222789167601681704475463498866392879417644762425283594123182294728779810992444541716971318354019156717156234334691439732910539233155922316974790311564358802995604731827456272977469765770844304416886690009513698507441807138711914965157377935091102946870595341663412536518344631039767973206122276061393647663204461436088611305818983453506211486986803883005737413015944347724241126480842019216296902702956196766969661436591566017052698703281590043668923814175796053507743351434959047126944395585610865614364956547203835816706264315645847702451042581128696456313598885798397842056119478190194625279345592559235656756538677442115645000624931658606061803934671489724679195357668498249342461383775842357908355127523350478635994444123888855202332996461597633033932858569582173120708569856925470028246561802423912267010045073632130699529042438806222137671589383946484819143729777300818176010263915085165374682158321871920490821637542199236270370645163384923254688854695827231762485215224883601256353592733980990598043429461351456916052176217737999380992711908161243660816948030281563406789727671713650878594857396144960666540408856789535706933704175883089919797722803129673087933686827248941130665185333365388010952021225207863860080927124738784692117113440542493248369048121288020423839764032393101406350096520853113885816832404750775980123413840603214576742022150151139880765418200430018910642713812396750859921981088490127296363512705921761887161782273154839193196683699840461218905831623504693389929567035520602315321427793636453681909050147522377859302714207487004878331489343345861860951578466952854296772832340297870636835885781313118587759116024214374277017060184816268297195864380589131031224449783731615867187191593358435112017516969359018805653285334539546164527809853325516303647370556754296155923306808681462895594050254781223228651052396916166535905302024868676563978033650788387142210838077969440192667312962990594675239062390823802782071142687886320409312649213717014814292802031636180073883435562392826950554315778418476878604511171473375884142487536250600055683832321133701930028765999721767589745206024507970790889996099389505184457214415447522821135493805420614278169721739426386755979562968640407598917393757569410245471560856895551272750272218339264439628914486608147035435677285727942981650189850939833309895906144522108973004035987931209640653528907242252013425472978463958560036191070258360729883140922379291889147492534106846880271967982720122235888692335373299861894235986015607763430887207993336726571760127030490422929083305487466611475182192876861486126842803064701686873280214111227617689826157403538846157283822610202174736025310171265609082196544033445575170633751636426758348663471074066181087676315559959967572052717007504323287073299363684612168907528617039928488129371216100905549694329142275017706913473757955429243496275842752070752251584317780526340134740477261010254037143858728554543863159314926081492929022425621596314492925899717208809837331749361734008280882182656425412480621874683238994187551928932610044645741725399246254179999295780153425727666015840812716731395412428801211215702824244717043070234450256613493165896683849773833677587928104495521734396839454241705993602188872532953734479246949712046610366938818092559712513556027714796277124935094811807861604449838494451385280109228053767072425548857527440806258873000873661529114406231431626094787567233892166501226108922492450700474760653420248243150768525308548294185309841254241360789087421931015565205604101468855850482714551304558102061805869529704789124945683698391350676941058569528456851823727301281551591847167495852698299896217182245102290641308843062666916556586463241734571495766358559203170982584067252971759841946850078952544726145148835584030497026227445003264728491144949076288797613344631242911996797623577991262356393401420883941066265603814211372365094622132835614642468606886415394567469872701273285545992809842891627466084958179676922468404196761243219230313000948070566412891541774208236445872709292747489568376533993523383192202204159187902897382154695009421766284193696152334124985129641878504818261585411937210060861328470244447214959211216664579202613978076069743275422713979364786454031022225601447790998878248116041270201635277332549796360789849225488131372322708253883903354009933574518891727500950991814834862485945856900038979645317670599350783718299925318730792059878316439826052919783429771907001874968224601708343583722691167499258683026058989203724086561037408689535183986319282913181842199984433214723338994893809309785239007160830219409942447356283783570056987258581275144425063585005678774923884650177214280258369137749086193948186579890094885018564261584139350862832879422982276616962944757081330799404512481687697875462296154975845066043821698847798981718928942781715526286367307709048444333363982270286902067012222207863189597208712612866185204976839089437113542243902616753882013209197805248828233698366870064386623384848910156137973142304123152789501884943355149541801386098958129469837661314497530055119082250193492346386827607359607264699660600564184362379950090429328741158355903807949175501830884164354558742383550354339928763962192226222263870377603269050631349340740270477782314827756973905471338926845832820161225127386406540980543146734188036146988773044842207479895423275412931582963354241636290257905419674945503782759729977943229909451667845702662989573133509950978629589389419279239867890382987512476532355179522972353154102332312353442747959684222074016732069423979737678802016896767198586734322743971958161715460981594377616669187139746586961702630646501383174656833641033037307373921166418596935563836222580403701604277734436315092759289691894846208933685053869782874989895387253040009289457478197469292636932655189678412197717958730753573976513258641909111977409109903916966548880152060327860399019572167462319368024618988411865132393290303664055101497142621977632961626519256470093534996397041323182933687763003678974772089091239370654458118217575921229043807348705830211451228731827787139554906541156789964024587201781982460444940072056370842703189028080250841282883015838402418711174444632027052999870857986349219255832640615625464531999107383804300867885686701952258678241179087625312132020128843108320421487672656958246068093509519754291906668806225523644394369961382274463955067845882955038657985097129822153884158823864934075658274348137645707844000554426390374649140379851326741643234051323850026932840995012938012657669634312492039000312303815146806677897839613758505220797937346861405668843563895725426520904367087123846952431223296170262005034819760020673785222068815448290924822288965719011563329520013454366233783471701022002619768653268962513381879002787974881446069759299333003128201738087677046128471404325059022140108145570784635155988784059440280308404737072859257509911987208261027148234867816864854929344854521906659628650552800943242877532286873171962148416699569179341471147827294938102726191954370108548079161530487971897522326105673407339457939752376813537146168985332247406607466529764741902872499147258779227205653052444064071795759156590421531768636143425812837941110317022588201909231498462270641582170903857950626162480939730723684952830405775676292641309747414752716387985609675418560958775863355011057830544399302346719862352331060313630333899042536329443941290581763073418481006230319352849485333256457871669866073799334195249089058951472143551812100629380739638215405685840655378015422574156795342410482575464798847410917726963404202759637069802127941019008849086980194600012684181237212650039679167179715482325381540291640113238536628197381053421697090214161045098621860164626256923027705996410808022748947298076324871081583705762033654855913637165375867147598770355692872700770887878586121717854608407449639733425674735467663727112377725602689844910357486515689869363976537138247645480131252436260169384762776205353678852299113941677413403497787317206240455084760088934654346401586784509736552379193148097424193848125130113170305496865178918777795467749216389411568704790654391628983899122708764952804217718082506461423332273363533324974439310253418357642655198061697577216192059752036203497492457385975768169709847750261376109243246128165696709235555644594884606423034438820138639061587681247946711074907305634854056282193582226388465207839344478486116569874005711551782977907678107909917032964568728345715748329448843973619302794851114033627484071331905146741501960187340970253573914194184712825422401328004304881934202699058569361240684397451107031216392083515740934292518359366030620650235316501803372516371673571164228328835633240520895138217178276415580027252775029672721086369937403886157248798174316136404496253661187432153663195508465389789053433457401088889916031379896918264678717777017424711585722929855474568304272139214039130179525569272659639602829326205416292261072059058913774790225310328896596155325427798650999932280000089934960893164879914235996531977898855434023681279949135502456264867208657981872893183626480467812479934468712778931333350314900279829744758209376518252782999990717839846602560129645191656297700019515844639480158935145711452974765982062300781837063756889634807136637242122764666311748623200997730048623783487770240252783555859137534841098494165030403395527841599425721733067043347196265194226824036366562893571819620496536933961477912341733261688191126996056077960361059070817360763904097436939597709500507101640618392656971240318912902431098041648499309596285758871962564629062578440131804774225664760117185855602294835999770986405669635179705886121102622095894495767262909625289261241545229188233318741806834126063468644500002613752361240308491116982614559660463445127374733373301402255403893223735247809752147808267772200388750613442296640046646724276658952791834443805939808304002919802773044622867563203530505626097352061189129545893516518944612712719269183881095199015685932030632943525636915573657461915145042495998419252892128266982720343684055003057577574346705804234445785442316907220112399599154395233942502527097285249659935590553704247920366294440764272236183522640751530724658317187762655937806294751649890399515033555178957674215701250475489881129281023621746287390442231674568784873876720895973237162898362520671055790549568716436293283161471935741602924958199436837016626478100242740227041886116965258946381734470041541759957491105134748706011040045131934908004229520961626029191796401148627336261510533843518359924050261376783376916021170364638280862915965890071424447058094618970848403327538313890986070035362139130943947013710202657262192279383172107647025094681765609550641806340808635423291859704886475431828900171997309702194207544461498732693055543604508239235420278303814688609545483726028731761847084108281426103518632702442800700424695561258434349659756764100665897338449890952248502595634170069271527830056583038732806945859585872829463970769638159599137044572327003984949151150691144546386084080362727612182093879866986553658576751380647931438855295457317353217436141123224928537442490537129078519095896024475714070404437159612674309792893956907540565663347330903091716865627959916539573494292705008878818620263224544469677076864748070287107997637570641912452109390989695930583260232386425758580475182403508625333791149202281303733618088123038718415182663808107201375867700901965144242735690294683815171893341645527556450480620926665250341689569181619630842849237859990448543764833828193319860616091118251264931627244410293041158701944868546516854784209816092374689004752119336583690827111029991766496620670255330226087387901824601326963329370140435460422550506361703628774679613958928842085554289002660741916198021593809798487142644496276720734713072046889075121655574049045593070933423172230624095855399775425452770972583545814965924779692452989809632655051197996032955264460029829429356011706089392247907373193593770948679036411835980717348824026832002814546897266254466943290090678829896735938552567974043793963327976649152571009353697474395974574410323249255746631671183911922801171595105178036150497880232988715363723991633257451523567229519587124133678963448986537968868948091335158131198136752613179490806335837499321204192224868969523601513131847357674920708951307282705198051467250885152400412032931469383044356865015205698284446768827063366217774674275073569329784003875857962657421253696023989116418674993963727655342317388079996845533613610589099757276525974766762720608941719188631539367948850578728456372741971674380265067954207209407748144350562231158549744510766377829510064584765223531901669973684365019728215691897573598492116701091442321741962788400553517565949788787887698161698508032255167602481795706716085639521401976474760992965567867205325989698309122497272558783662563873056477987281196343166557328115983858867978869688472132744787722330026286701026131726403908985400751307055390137666168285415795725414316886310799366339574825216372275848470267762058599989916904127697118464161201769993070042843315756353797462219602238218462534516426270318353236137144834889801466554958240014993054499465202432694947415166460524128121218893220893240800952281633813837894358937389230877634054770480396294840436602482943185849201394478585261485014269340123714683520129535168323263447669735706071794444714548155209283161964980481378519183015122110142728838321680233551710384768753460057195333645381989801611487269830013592644768365696943702488312350577021509128886016513953150611166193038672492449807673342162092180201146074159126072039993717471576236268599827269630767924641962165041577164923138511355837051855874317876024680248561436863406874472029040684614914940644569880553892178673473712496841503656962606680123364795420215318199732536146132467707972688185666011513710764470686012837492576839799356477136422788970170650219053151626391585324108525014821971071216744055021948923021366134034361340506201113935439117288937972812825069765130063098525891035347712511237730204187866503035303721754946019795871424641030586395421109941803533582060732610606061085798662316133452798048192104919127119795550773918671084019356718400057918152228376511354994217449025174475614278918762389251382544468564364112124498043269499381862955596544554070635738290227991483030036616242596347823498525301036068171772380634236182266022341497871450157724627510785035143780387020457603662130080967281643318780812315793708828624239236800540972491467449424144139587927404075941167116613571984641419472608827192715570903230885585171804620220434058514573834282389146657958371929733751386706662741167539965904954916987783900930638558617594405358324551529721515445497480658636865710821555595935647875880653235368193073035159314647911918881643138015685177376634299451611961461489900335452618576044026345177092248604649812728325532492308258483942126916140221960148201503900605219833294981585690220931914600713282199210075707030757212588197286078574167883535540150316662784288580146392633842570122973546092586002357449307399855188637980989844346379560924607834601401203421612885104736273968842642965567194760970213143431521971616886303272359003381714890145059704949889494884406312737893720087496010998070811918483630593836198948740886820904788339472879962854884544429242455985855863388348369267271660368290661543500116158818451327490816357133161684039100773715219898389486107922413789366188510588888857530939541715603112785601452262651009126578086766061287689360063482145619560220147516830635978308816975831908804713584792184968510151120890553254029224618925879701572433709080224541373789203955434737340453221774587751764387274549655722738668539832128194876211678581365059280093201379180336537488824501699752959790613948270247464373929470971997423916786455738984553598717962043208550644646817319875360830956221362636780491882194040790198231323248198445301987396544769772210328210711285895498923365165672638124150911844587121594409910893137183844533863907624634788752673389738061347676052743316038825356077972540219598166156013544435118104245439308268812469520632626351326527731055291733058440009277782113955862384608853580788832322194382494773187896488019833370386935200128634119437057763492678026481005573521203324782507440891299114590769243886914026134525215065807426369543259866825196305105247597873393908828801182790596788200471683578407301002734918008030034016926074218803591046262706352722621102737060548791308808762334326497714332159288928544481259635979963772562516423816984912970067111879891398300033155144805970780191094423932081013107213501303712760468489239830405884447363252023449055730031763392207116551915031726951600521393125453851490901662938529045660246311293374014239169952793510659943831673824220532450735188194299393491108447850079734881407104376755121160915022914663034596084005022690379246591098346230518690064475984751211082914526150549070100650812362188275580581930942211325344625515689112136667188844312330781503227817266835517796494518304675859173023036027579178528315647283760977604309144222905454117981733294824294673890576678377342690340783044944287416284573627468075648052104720852792749197692798578576224419074184817147342343990123419168331907433286802489903682048951381428574401462484781410151095387140492644338147001418804913898048496663492848546753378307878817517222665688152197545481279835286147512427514013589776977714040022412822623771645267354729347968550593732957203185569541624641749394827292427572884654109470138911408263407121069323847979674872859213600052483439254385119949212465954367149866038962190693986001532635059173697941756743204607258228694853292282304130408196494539759377036785955559546601961636353171972698746708804868276717971903153676517008904846760989762353206634929951483332863987252837870070289083242673928546971317636682143358926291681037105821118517087189738168925435524511345723046534139154566896713769186442843996383193917206499583434801578952629544986583601885469380888006112325834042795536388145371879924880105746137454489513408415353787712739807421851275841332605660260811596799014478462751707499165994009501283988167451078596511415443894927294603772817654451420319919664582197782183547055412925244869720534325484365901873774801786783445440643312281489738917253952727435208242044600707874177559103617314670122225757686126657264408785003249845209060215828950553145186996323233876049805478789790360954421882714805249838507707941060163746344609041583233347008334995313281410599157110059334199778957945650615070455340603693233635409300689737038310420437485044748474569791245697249509148902714597364891595836690840635073186339536942194248550520784699399559500821366587874338394039927088086524199885159888427755090592959244724582074083262087062609487312709426987121678444456835854572053972729893510617383562535524844148705369199611893563874774399297753410709369756795841967853561580418212733461493564880135443385806341667237144702371596949740780446852426205580103927739156723399111099539403234941913441754945190324017697037124155720801464634434781930357658385827552543670638798266749722001754829054375741117608248701975708794850824010205442387334427001289467627844782909875705299021997997963810905089633809966250700249211560842601467535077466040887658021693956666436721284600768975661489571145376315259607812430673578705252737421040772503979376453215517488125904368941275343620867205937835330738895328107537745734265076845724629758920374486870226293438968093932360749707869097419368217406018568967127478977589746225082409968375755976260938973878632396676423198198064463999625623852761310152859892735392945466594120480287488034181330510236725992581992139510919735708492352330678843687815726803758236942968526713672453427624739280923483073660544932681801130147958542000868517438236819917563208612509454198998945307994391399716943195566684263994286161426801445593821043794232645665496043891128177973449698266755608778518843536473041135198527750765766564650329692724995158854455587281248392136457201194757483772592156772047989429240578098460188311012362564202374652495931310999805471563262751530380677656277946815590999226286691790171451659075706747607584291430831470262100615233248082385863500732331386993644463497803187130272352192928472097530771714066076812845724181078046365813283877990028408548847088564822499256656789640011311734179708577580888013260706072327275292523416087454864770578529748297551651499040402316672704185946554499297174632479730742494195580328271000100898275722233827334602597953841828405191208488815290794458981072798117521542739265055266389444353674134373499166062944186051891158610173738684275474372155559416673556113142224673058999162979892527638376947876638140685774817389232665408739669617055167261036162145078870775772683469650060044765637490559707864408479452313653506252624055454276947597170659538365761890327754060604852544964384792520376891422930792224631101273454020662237673546880734342182661657869906482483002283736937997171524974078011869589189021509703109281997580961879375238149244281779983691746190615962658479162202337246764438476538807028936160093360690534771093566517238512726982447550240929097142620461966029239279661024900035816988576698838395154974343338385245763988290899982127148030560149816262454696104843657270255903074368008995675179429699261503125516574844304553025520228370773956652072477780809958043988654652098446419070876577660636475553065101791979977232370607700159428737303407424323939055208484145590702814863771924143446029887510242342986057540567638245663311552089446263126563928280400869099909291587088946905170542119491317115502343814025689777099382999985746175633143471368828225228528886139053125227494099526743827377289886051335173148531686893291988809704459400079558966312513834979219498270922592892951111711156962131896455211925706432819077824238051089354847254784848479171737360059937793754293443065593765253727111201399631619789983886959302285800045402869565854520454062320222408434420958872700618430707196362548689359801442447366922782258899289196133167114214936458215172619508634299400326574313893270758605668547554394561434449743025891941450994367320478705451957616486843515748605074074990647279664192978563760897269189538990772965668018648840329892449846274943496668488976800893413763979110702604545885989787952756188355639288003418218699732486334102523632640770877465738532550713138005333688358264214790934245927095333739598266851933245929174158825107131258526490801806053939375751188360938133439165176596949539951560129807628288915650538691271284637216378383735253449760910850763799320798621845173856434301354530275920032382263044349434983591389960119399906953525816842335571778992573190271316838230711246903692396118303089944855435481983118275206454615427293264611762686546469685330465372550878072949353413507784456264227161122089026001505040448328796598781600830686621054228883576278504146466385960514393610285818608678770978732075685974955676711899267326429818935548648235067757435227904629193509066674010505230521946807534035585430452090942765570352669055825582144621073269380244329987062042814593820341342675260391326264081933831738893160303700388291484610705557139336094893649579260546533854737050877963678128893710582672296956534843558364996351964175706042589122253486142723190024992118272821011373122794271630115664789285204191414407412508730512215806287861812830359950044856387342742342523103101241138337800707473736452145406941200792044984009072160487006517898226350883835514271331802586922527744252655922188410045728508932214331662984137809054045073257828285774997282046572627469013563256666567171090022597789412609041524299439362485560907335174569908141490046604769311288398224990623461779964270517705669576731334055204326867253241930539902149342796333072146282941959439636505236000407884376980457516354154524893770444823337094341107411092073062464114683822450700339244144466416030903566665954975873728100448437355802344425948801194869457128425323466215588534340327076599900653220393540403282785284143815759931321051697358867747779971754066402763828549256240302508131339674104042897780793412491540723095011931545823076797210386347708361825592141874276714065351645924174207630485549065341809091212142464594056906890274211259224265300563736974427205193391806182330665642434025103171936158073867942562947268316015352504370583440875081471905007489472482804411067008950370098692862924222379832017162172637409034887014550657884211731988697540474563972347585856027493566142587945304091617122417418814394102063856927109763879520869108223399702796015648419173998339271512473398572604454869234035284926478439691489926494552008016599028707360793559747754848126318852017148516901421762532599717584232760423670474897090017093461362612831658283917584432317092443785700703688150037632887459339592914808694182899696126342276143021115992000730252549234041022686220282417828850180932729891981679403223950690290344111948483224029936942319406958440043167613848663151196465338261888647881200849292241837814040386135173012915349006647757506110504497454479999454178362686031724651608673689458363107099588430651518515469540813276031256908402346502838140232465471386382652100921242811033613000224624299254467249385787377798747277707000174972134362913789701398191106502601812715085708900782012107735549721496695209485341147531568019109262071181664004200637841467681058865598363274258737498747335261776397090322031509899308792720439586604431137970588950688036255685749947822310238012665340552433607659576826146734291668713849578427043478037115760019141105505882942454467892834436056439619850370302408703755462617268490464772496526627298035067993042745208898865586847658655199718926040128802802351852366107776013489187543334536725909817948896928847204299389352255405585136942500504091722441321351797264712552755473940856925943085909971737982783487720973800539769582672060041069649251855610889873480017794965302114051668770629193063547408960297427784273504118252677014302502196762496936461767290520946330166687691559728188534110944565921172584177892275579144723943586314774945489329948262442069634477732910300042989993104531190554154443803038976699202192735811675255862960161874055792755593163596406025915217284272646557234910941953068982578606533470641476855799754477351946121400205066166357276448327664506449865255855622671850066613939034397168593057246722257702547818779539595700005762197184393536923191385321645025258241638908764302907547316925030636565593217210075671195127480657765153249229143998640634689933710028410977663488247517224533421399056667540079297590256774317013375248960701490563932164639759332053984349171477890393116961987303089384051294358633916428179439552984112671830110725455425845156860754335792637177490138318044743906795584694418620308422339384311646058173353863422063926593132110071861419597034075735619835467136597254395478946215768245823525908923993156561184198738880896977396856617490942046092369168958743197923135045038190545333853558271486607269805206053594131459552209458079895680853048858749597361728769785486632502468597305386681159558053550592435239571486289504683513863990533785639779288308602668743890278484332743504669495325627710226550751234544035335917629389286069452177526721408068360803049860869561487622838083156193777996910580465265934786868620228379457558412279752095964031074977571199781783380001265981502130963086474605979501005157961427448216218278673902887798033583256572172119920063651727605541075865343795551599893766944406184597432604927216287157060374396674523325025175555664601800744820656353679290423948048394279968224230247656322176409607522352851585074856195221942488614231282908954242052963161256666537331644984192091414511178468974263139440026663197908887796991419880503614445405140716080770008144583883971514715754670998807982546069046931192679457441798038506761288701758842552789859577556844798031156481183364128765196040260262186182189543201576374294192099713650420480010154791664207546744903165743039317175998018160506317944032736584092505161466338188301080640043243585843007316141769039829922077741335091658634650017502176590194163205030473380283933917288985876675304273090495127359496658846209051083478265953663659096667579392556783756848024525239806659651605979965522445469147553724455967498240193630732763561771902773203644912246013568129425786605928838425884870139794376101117845875316508938192368015073608914661320905406841923335053603540901206437187731588315518498256552428752201681698866161054808228124914102609212473445078777299728521941274018842973695282029435827892049472118000282293057930439734896542944776642908381541965802844015103667826179786316816792988657027865948850049804697093085621552431106854303542340661331395912405147590825637324015765375433766719759457057705994675437532417785686962618722494176456679466406158124967979852005838941952537573858146712939763891842131407441144170303582787517268343296009891579037561571991856819199105447152366625731937409200636039221080426078519441270147589500720149974855958893625743362348358175842057342611190882980823213380075571683448554352024521025960263094283174670627501007532047205124779387417437519479394932211239458232410149486373708454203232861684123582145298580601444363620280536839779406772680221602154694025522831863809958859623745042319272660402651814879848259282386288819240217138128674360045493649163464411207397749843981951355802184932842308944404015687105900857806905543107305693095848984098689786786799623763457040171934270215168910318772867741969774953945822303813952684583456787970460084660234128909550942471080584616165768994619850854336512802284268306522713054485757846256775241041143078836860049896125772499952609372145027489903830568361260646443468212267510784219993659264728086271706503617722379257884846183026276484156368163151179004827978696114276739800622703205358418731722725021514229254942407691868897578814512332257113068429140247540309913536347572382666425770955736329268534606414841131263999375742391339076931770614887170980174493857018251615497915189986225424564966861110919166437742561449372408317247335853173614716122789829779235890270710580564391880631495294552576121137142048786751345973341358969757111848650168172564604756509276189877446450806362207270036130925954712360846728642768716988403423032830025415029991961855869093891831745966548954962101564270823125491605973220452796199145239680031638275695215809213694411968387675322927796793585605142934393138000748593879031702116509000286970316801837234887163212790126643397717859597773970526244398917732720563499819614004291054612174427152046665623863016659243654781809073259877375262260742741597652577686392239884420332567545934353546073336003444692008464707897284072205519919221138571198180707823811243246069342473610262990883381589859955555903755103058059933516238415399104982263797555401830456049854776739096724193806396353717972486166068919490250588446582156011125825016083701248514427548898307120001583729787372643685163826487454517316353717702431713382086186430357742161196769455269740913610969354741033243437269176709166265530333251871596148688396285372509280767677025809101643043256701111230064872979082263224993634674259341805842941653073918640584609098005285807580701849221381464219765204958485010652188241886046245961793282564269116028364708290631584485370250176246978256667049428524686262851870856260524979667849226810898203486523618782543514242997991214420187053000206527098378203811898615583684587948604135188188630065777470456590282959827353682357892589689269285021320643739927622682078054448377884485677749249730992128883795005828956996612785844944074369134866365538772817865169266109958234401724328815213456075817612373085877839919061759919949133305115832884289276051769684599377968021237740766122831580889317059549587972963923053574242487509955231074275816038715245033177699488651988644953674187829190199546377451641231022254447102675684589672039171227100806749551246416130345916035154253738393139857415576229778844370098793867618894585667953115291572665137540637716126540790505413519460697230370095237293295692279408983617624260757828912975787930690593818225238287019210221827464157974109615423817169665278131056685309659178803528757463423679584347137393217874266781391546609699711823276205590494980476251357725239898276424100905632649480443753672371118082814751119187306758684660700727300145445120650077198883291208539747365005157844739536562364194332101053132634200608196479215269096313016036060889366642404549322647100079828560522613207877623272431068636433343040570535040775071981398872978146946172219429162630241226590741205768047175175247378774718308201000377028398029696909804163199757829337834171704127081641164044383619426052767533449551277758090795012934512039124307332369296715281697569163463814454071908459982116423711183156588879115343643816863531904810505029098101336260516917987166597763974371590674497989796519552299878283891954135539055389287058372349326146782484777457442181530765793084135813285857141456964658962921672827369616352478146271247128437138288292195447688546612980181040733525630545884302702191088717796884983098681848756529056817915159237779314104215041220551624071778776935585295632415753343950854608999156913261916688210696862074237807678793274340340603275636411248934182913080453310244275740368351255706388414626168714941042392297327955895978476603921317307762083788104148244953454802279158589411437585912856077709700756346314625657447338353461157312135946427045079500661119930682073413331357799648704364598184964215041142732679190580519600875872543400872959829577909266443339701530845264762056765784991879290435053792506707949260944152826180432479529951682892634088327734695312548429204559609966095391850043655302721779824806859882396358712127911580641328371151969938164044481497039853435832350726005470524282477498079344992004454751102545233211513031383035544470057218150732513386937795773088955720322695999402715828143491907776650519826777007195777423351883826389675929234436152221240352968119137613417871122030318495526115943692387425536435685839428397504744492518814278404075400611360146269836326883927609610979136888642672125257569049985345803768375359158616241359581950225886428846195440197006930569629927259611080670738144556971948976554804367122281482005195960112523037435908269879729570697179309490591333211055861166505184693955668056582906884553705720219293501811972472830660712732459356441650878868585800168998253185670100656091041817043857552225013076659166813252585260819825902669660171529490069834823739875263156859041585524302712840068288412475972766993351596797371445510590458232755951293377796555205823058663788873026858473992787352824302976810774377610279761572040495394616202505859924949631476095602363473366837881192473613215507274257139982685866854497613301227163436527626772389216569594767768615615228031736886651532256220139988451602559064202368470863456144130577070718461897716661701108667949833485826455988538965774025042990043779788552826585365009641531722481695660015323320708877481206832883211201151965028872299997890641340394438204908900659817289618622574757895488026202985739212052549159790008072218162632570721015604303949778774587951566231555017934105828917862918560167232965786381906982871273352066873218382611724628268344687091001586360776714723943387821234723200799198132974052110306589504297287977923333871154619744995195411714669671349174373912105426819357789811024589927002470116279442180834466363753566650175668203292258247461289344976383740641102866508194272369144575664434759325577494170234231705862207684789906665300695971161152601029771552959048098071730770403697774499287770409777515484804839583782544376099530937379041402313595843482101940264694810659690028071377898904053943500558112969480671252838556698061742563330991831599282758012581730871991102794745909130578037461507872411037638407860760415089711570110002246448217657372264662091090232461492870677089315121520169271778324835330089241601387111525920135569830814141258782391953079251590780315348538202294540069091442108611524734408140100799380194338171470213499481765795098807942487048714241705941889029173304583607797468053528254202926081484535199581261211174856265421722386612093974312214550047649245767923189803238417105471925070953522136335444429447594934380929690599140895376127688233384597090024776551104716957450606244822112656708124907453039258456563826170919061797451411646684032039268166152184295866943579558602866084086686886155860990629826937405092054017249190209945437153563029702898462783532990339411178404306315650879076043785606214919690162845580383066391308176156797218535220945382851969272995131234831431586237940554143438404375868038156215983792704272985552990602710134454917741865290039728245335720113284212994757761386785046856667982103143139531829120400811149683232227440402331920251700422874011624033763804610982076982116929754357949551547100264356995525259207230034742606106720930245235906064460971282826618185290515473405264200565447534023240372356191372735785261527496520035335591496983312309730543162791271614035654214002096211591395601853014563677221698624182442097189665398349939360655244953598904494315588825122353259939363481903567150938190304610729974815536459468839671762760971277659522834295902508178104203537418076971243582922383178904599510269009979601611401852859350767753068906668629594470276404255515225838347648052873963571627390555641235967423700833488448860994121357090636085809104887338607206134485453743844682549233320792118511229841699372422918171898010808515356541796703322172440502849777989477107756025015935503516645292306058443490529873830124085178467223349712246303704184963247238182079827992292922757033399345208505294687787068515716613903677695909084593692511479014938913570770382428379391369179484684948478444548619406942779687394286386338132538986617072984246871549682775817503389890710545003410041032474278780609438818372893682439483323519807000362421086606712483216301432651342763917653462978533706640248223613613247464373620799461452957888177314155251618096969422859991755535041833235005815105277797346384363571262781049113449529827438611117579927995819081313329936738533037592426635856272821270252123810558463316477398881430661686826670118276415126359536115986362632325829276493279413594418368873006465509542698029946870125732559899700769842033863913207981647988421110132471172297350532009120742211026727334190954157302973910399523014837295329412564921160815852634945074830112656155912810230006227695456363229418346667502611500052465467354558929532317747024612476137231835092357158252688428031265001881434478831060164191258250336256647839983981292618116144868339460624524426302042314043106540535787573130936300809345658915333543894149435650674926951124233773012393753422043847476874454229030558009255700206616776048172024936869462981295948985781035631342207196516018557517469568092794394497516612800827629187504030977386913803100228787549483409805969107321824012994526819769504053320734304399360095939707999333588161000683881294455409026754464914830323052718608333830385442448694346208687670794313653277059450131332746282950061687234444922867284002875354112594305561635282835997868532175667005648713723267870732356227013682698669519375319378985204934696983006747215992597637791704882210784531438469416902757887633323262477420532169367313601224689742234066330594638270460528572037543872802143657472084046647912325798196014494151725826440937949226354469995834376495313487646026745289333231985096596148214326616292481270035803449036574235791578749724278077954331001611016903994215002063133671705877411738644477677581868690816711716195630603729220193210881460520900993496055020836874601639551081928719127246466211281927005816623177371976229007684734710933715025896515083472790587631333155950600943834697231074355594268393011675759270709509483510905215755924413317789419503052044973380245436747049174852768357641518326414739586519798823213446816164651789500776835678201726721969301502274823127426925812864520680891998214362840673036222777602919612351014491075958083089538344466948978460968638707132739783542656178973665509054298175607873800635147936623532231845326054920819630372428985223406844529541410354507162015677493905198672941804377382407799748335556055274815616422758319790812741186087605020465621419013244097392348733618012784516871072392903181245761045561951876378852387581635009690001448867234152767191180978289174092924521410190438532079847570926112573283284167567971984297025558994710766689303993510762377557139301745648547519292178706930008018842219170710703798575308240652054007836066563873268219593668245181459452284217312792558441439511328187245698287226599021252803524246279398060132643282586898698819206245194746581899468831941740095531891759893196469546071104249943896248696596981029106617413960869629579795656246117546573767597811685099217967375268048112303419612823616479705195073644783934497426021643550196211000333396311442795702752046881766150747843356678831549288910940566278386664578460407177106138580049746968508745609424274780771267490378738216149094746038630497750879197683708939279756131422525784316282868913888835282697650444646005473278427888257388259944061129233609782450396373895980324809556494643274946029602148053772585940725306758648863722190711745276373527152784797535671082008143833006615641141918209925827212235454470654238900584904086833766079186186536338587491287004692661068874442728256269337299080355180197339722647421433490800812848638528904749583357122227329518603932939482080945255973682189380524698797786382537433499388923890514969377471893660527424269417329000776602116411684130680214158547526305145492608024136785010894781551178307388233129085595350480433492761983626432229383706340682674496000259751782938537659675137932650549773510623946140635458573490761967340155849964059807722497835967783715702465082891407984128900907708941119548173959007373507799986489320195642594368861060303478534156944565088945765248261376040167354650524544787220034698739759797487423102223591794605565229035235164859703600134676603028280974634163872405958968714937264262582965793515468394051580279394991894548734532378971260237960620996550377463208136102811621746777381389022521376472547545013278110700007067579203690147391686905746716363040153347849349599198802416632196344284210041284544080768085803938210177237554987114979725295411878802366148523208811521720813579695817159440381313641345605215833781864885616853325211346083817212413366174141236547281625748154725712341045824651272797736221777407536433887429508363901745494449291854739886535443567032790244256820179786886982574917420283710418680866204366918843135281671931566933098755327554526597209968755894576047365417112856971016784133594037763181861087472916989929749357457665071408446246092369077324015901100713283217595043946808068796169791888879961291596738167389934052590105874209998031238903654469904486568918959844148019505472367901288904297859299963039389195466744367064930585325984412242809393866077682994321555195783258137314746907464053845691223291967033481316525944838374487632801060025952912254575133905150607233300608536673634403438746791747222036376286955411194288809270785875689316976800672249237365791490530019050739221111350411862943447678744979471778826387603561743001468680391012846433552982709651961379493447604854095066839109234578949242259271981727985276940048661467745649979321582586654665706049596583428060751608096918574860034811606157825923612054638406275457259680307801257498272357082169786971450511860129944181901029637162519229295398361676666720418603074678831648462958241408592948798305486311164763086232511650267858519974996308161720356733266076480567884805597394618013619065821927483154845602881504992854328062935660272410356799145800204929600733406632222285537059154998025019240290023767386298616279098901605666441211649377774335657113577572213526788382208003349099466869039887771042036630272939222262369116429953332265761716318626397964689113243476333060861331037891985339964774501828443807890433327894062333045011331757876895568619465059577591286711499113090313445782510408842662213193259665443963220957978182187277652801252718383914699472718721636844278796878145682976682041592819440914091868943116285694028785655375626616069386212113018832846894421430809594164914894040740162080569100455375162713601486750232118397626693339796204184515522346833229196925466810072354780266886323453375744824728548554896182434471628428567921677949434936658601978719102188991066355671381967737609962086414172927419706101704094106755800989337976804680955639574828242014413174346419690789207328259027319582071556912820352251315147929425023853234616363620181587825265355508621561889747456314979688017231928883125214672545994727136357831954541168877698793462597682944331613916176802700584162882813289543928200527776356208797150931742364870997793302238010529835179246775930167472553538904629550665452116736722409774390202331272978126525249981448180124005198725581318708745666342637860314959063928556297633576861734909016822789403775164393598772260723500516273183488265518250487525584244665281212009351478510444680158384402505084370796797649731322522981502671389262900837390225403804020947723228472597291755121611773569746149545966461369565611833958137611614282000248377916018256608940192690740450014538042313668982474959108136293689644268023948100979062569020462831417184368930417394646887788555245467706577259457159018101786794270904244290165252240014832953775755602272820290733408844257005529465488983091586620536513700783131088775678776630121020731530004150284891191872365390320609166209142097380451876438095609233648539879850775432994551684537678999490408674923433017616440091337807803485192862682836763024824422697075115576370580314743021176033682895299954176322683213816209908067744952574600723064843194015100461440911401233048048157975717765007784497976453606092511164936802692212581092823424405431782729341739284991749315631246395568072897745071483851242536309811538076005908335039063089455355753519801628865927297873642811842188532560524335793590607186948928668574074155506912482051037739121957121968845863304804975381655731161483748338083332911556602196601755706769289322588316421014291951073780155228815317087212784235852632221078827124698217021633261782234334454365676934321509966233518399023254489232313326063840553372912335664266934862234284622887816772953593787399998720256308816217693325942849210973420652822801495501409241962338640891979246471318819797050300185621299829193700000651274358353311576031477882181322482516753976736627958031088818168030445344532337803963264180734041101402285963141310767680929542303209293945986917456439268270967981175509204560800715414347532777883342920820585136417889079219625224807398030080861718093762689732416248034109237467829282387044697340597315751627909903559565555539995737077207086363632365313101759325674889644536437063619531517059957654128074344850715909592340467903798145046846274059523967207513628091611935041200570750769140978151215141397727140826120475059794339415600010640172803393918035508024365780807925628401700697242724713860158707184206174382876838470250416180453372746912146659038561206632539581937645308696059846461534754812234850547272028426757826859961978464720247500258200689090066778299797001521860099066231504632963724256797022010439778249128024576345898198777935848940843862731138206933450714097492259734937689301560601216441810423297373409495447052325466799983320054901307157919422417481734130048099146438749844893799457203508426206087029123108331413509133502771259384259552923991138909444479615134659558415736090879201691481088685280228649394495066872099295045668587884504233977627131218417437165451796864693557591472452630260659635185296238377136082178864335820244859945187619861578267020759722291764327143321689983551429110413141606594985232188281905306639628401735936288675244898690951267928536973275795091614173767940611287567142439142932506691826784625580439213055808931638649564165891396273967428855596087171017256862671263933134788648183904538816541063947489058152302507157291860690721293638170202785620243574510852212455122815967054349912270748627797819148308652481913663551050969121705647699187467514242020965177912092398472724779724228637780648414219119719732301126319979308268102248827001450890879678291665374493620103679578023225206782412875323305238577343309819302880601912359988202726192153656547878553702164263285742733893448705769115932009009373863528608471157645818806031964243216206793671580769609437683489441516668701155937654921559559189998304552981778988341731843891561978080112572215367447780915608404813132757406850156682535854715252981226920086038822647194354985235965438669286345610499637779708754348960707264858224165223713066498740254624546662867748078438404900458294587369562528068651465839622632759394412796638779046574955784100614534004400591374635059381533677273259391096181111545990571368336720121047000544026642651867551119309134085458637348710519760517935706313434687922910924953052603218432552053232487632810228169696499687312314905877150981909609094369863784585353361184013486968482583440860907777088166794802862973825567419530073813015166476917696471848447038511911952187397894079636049669250750779858287917484157946122481525586435015944812408515466037551539137591620945691067626875944297585353713432447658729621941309648812336649385861765084533570275124523287236076838665524847878229780824431248708365066598000780158319610083414623636283074030769750768907689565798833051661497020835422353192987518715871114985806646823140636518815098937192202006977487778185942725191123342105460005971770032566973871309806155268243302459060601022077561376041436043568386002851841531358141909912260007357521407255040185060416696891722682442976125869293935299698700901255478085464753055356670157865380951491651985614278098788904864924180781803753074158223053145336138117734099693598892876091918637111377773522232944520430810043938247082019694552978081022109076807713525765505900008507130705205327935099756631257154272973436507816904081627579624696103037645676040026508991501557677101220899226391487243108323921744484725093311936328143859155796931810117381286632783611414637684764395751163455390743097810210166075165148664662280123860063324952564341500943132861607675205665384716700443540187603005311016599419926693124576581663881853014893190714192555385076976480548650385663511080908152221825922055042338165624522254953043580489262782396486736388885116137812320935272656561729627998755709784093503047225943410044463453797308273599389627424640659208862629719255370481970324293651682653906988398376212397075593925382084161193225202850704477601273342621865359927769172947773914457874377839601304176909323288071592023954761074217660602877964454784751527041399355816156056166854317947060249503135227212308876024858220802085979764439503526738367306205525256439986875810463075275105068505675025818393734217966876264214694713770048029053143243657024562372872482066063473567658254839533516038483428450699891195884788547204014631112299253637955119782691014828246150859760597423816003076709453897680253848022311663211947016929000121309653340291028812903868596908918134223794281325038242065241325624996811031425096646835199478627422831161664782997916430136991624791066134465421808095887632741298001205633088866931912582746591577202299288589910534815509356221432225431829867076363854424369112879507551795350897583861960771999829905012002619993863783838494507159746767329884451772299571933218314657362985875883797785903990543355438270779814116067210530057403828916145536318307709567282618550890366610858497565461979737450845488055128834931047205961811978183784463898427371141517603279628677798683835103352493856648037068582814658565859241367540223267941539926053736069169833500332122468700503943554058521019823848857110379722790984562517684012415800184707336077458976210222993503672043389242867902804598551044669586343817264452566565553758697878633091671840002416978019923693775943427289672620226615637699210092008645698224282613695714353061135745371005252010928072521017392586356352341018372350035837922761469186546887809743128360740531742517519118799418670440332446129537083286825232605554039249441099849006755583009522767866084368078131915279872657238152934287795364884808566517263554590711742455740943164250732370582312842736892261365243133692188076014500322340985843202247817173854219716278312453778679822714920489142818925052395056981864969672876914446366667036445511897820628686145814209633774589700666116847467891474529792699919956998782456586018948876155656298398796638199851120799190410073836665551249626719040445212270792066774799099424506165046905440419879475742494779314914223760497672516886567951046412159049055994486441094796174773084518287340543094591170162821790270188227706428023265647147859840737222803668661157054757661973914066404551941857576431854760526374352629332824011804598280644686565755790073414546078270219936039556180324530609941982394929441305705304554610771400946413421680205784448285060562587124554323176450298308218272148387878167592879958829200745617124041273055671357331230338371386692505439851693553684795070061790342889214219149805816423845172197847008509712526039354064277630595934060724407588818307366745434788253409518662700897428239451150526628696320398308924343789455829634815044750906306962307131105902442823096524082025964253125550113583208577797766929799118190543076783938891994389418738368593159313733544522716302244459889347306182962238765442208360033147554953515859865348419157159649539972746243052737048131450833217203615386540551763347892770479771495287059411159698194760731194792962490119193324587184208786489393271421435580362240852427462417036391882608712692040659164246742912612698402286754553173669367680438906307108066878660898400443815225194993149259547541328791775172623739362897897559083900405572537198726334953152200495561601835311821545009134070226655466359906048726147637543779650226138938318027290328234059542392364618258510328801777667428233895241127620158999374015003134972206194201430849961505113042908292340794565484685068230199339173227813239640728133726659199208663635602280908230564890638861311034697518974935293907543923688959518501228894960161204032942091887219287037572863626937515598198614941810042547175254574972626068575444873079475188732125548170850374938118770125072983143023373577099271418423692775495604053682738090443602762746205575173994939617556802397272801770359632236503266132039830428394547353483604097619739535453229506691741886382682767571917547326335559049240248723800993756985398792092217992043119673627527717969686864881316723992888908105310092773218498372182802827105524824728748737811002562607565279967413762062918831661081799761312479779683053750574009286724270471338149080944153441661810722854565227176331265634986704311022885260022518401387344230874865447466908662689816627527674079047457519075907433415951014191324226305407322404750748715757181962995024149809695210500738783427013808082315432216524401241698598135076968187816666283246901103916876303113731879897691244039981957200101757751175772887613911551543065552333683409313020479775097196867893051851656215908237108016572543337687347933678163569095094337074506257341783272777824135248190574237136638093146678603065358155714917205358485158789452182981220739867702327612280340002627189242459961497476617135214765858932602410668221060805003187672378624179171277270710351994323632721014638331066091891273685296307084899272346263966212041587576174476826676168347193446485463793150256365194694648502138152354656200504618526092689064674247393449773497203485664880509238386532589661924559733714996406138276994259288639494459370448410935935983227589754670612629322803153803249842720382175979377880645475188007855522101696997289565099365244170647951167144887655548867898009414974650461239942316091088831823637333328716766972657252638608417234712818407658703594017490152887087794920806752710658974390869778160381352057796326608948913782140495441635491429646080237924313681704434305108302235821417258487832172882755203307202724475831386829400511058063776487419620682735442223677211549241878997751396543225738985830362931083755906174473757754673909225422083153043218048660614880830907897385114744606305459881244482173818110906471861512485569284382690382836465067018459350807782336061649451670747643115297525920412503589173634844923122763441795156852058314179287366973596827261359834752606921574187431710231764774590414792119076550368631485048180894755996948180469049586417576374635349293952137254822673258893342001999549840677131641074728913081324923488905656213646813649317174213431111633686372542511323021027570905919081324709240965982558871930653231181476974647987865076173574763972410020459476948464023178142439680539691504533501068773571634732296925465589336150163483817102663971786800411960741597999589848202174373945327579424099704919265608393964249657048450509460136977787805593378323561364992451689695046844075987411903290449621116449770896757625798096288306654775198005265184542995992974106876331259360126453747970386543466728385386865411497662907938961914165034363976018966170229247398061652612408248308047595015047936772055570980082534905234297251758465338129972016828600239988481707411433672418438728456920543856628801677081270018872120584142097462062133255687461936414765845845617142307014912090656155056212546864129281460959217028993275914036578851771187187087118984991430053753679064565747481614094877525651071935421827726852106609546688888723133691722281818995645627536022709573802600329623728093640487561249199264012593309132453736909862151785270358394132790014976930659480371344799339201586395124362763153748919510488457373349245699197443285874688276923876174647278623811374425766949992223064892122680983709892564004098736227159027694376103178222049992739404411786152394083657505436540505336043961781248358857307576876119712433623800002798532964823077509069239383462388637678094653555071959748891264430728401135637324326919132054397030473174786593539969733628372004790778284368649692979290146698413847624634462425677221817573884065670002223323151076579469394700835174543376929568839952288849647568735696250985660462238439096671265082225001808764171005709677120224529449790272605661152930919815878943446461656251821789572069481379660305926163249152995015874882695278374077280335077158456604840471615347639865125250127874188361865590794401813554342912897004228637199646107099236940576223994059384673291669310647400491778546088018596260880983097027403736469834190098122030964887241836658155893698646927185185020740767230207690303600085039457317948380642099004185450673290597821923922675780630844119713393330256112824389086994313787934123193473494197235179057532365789062591256330876322568782931467811515539318601728594554122632296628500258821331256502497744482210994482516804704710792315436719770799545478363921798200683231404639449689482366022410454361408765337826599580339348356977740271947477322229532950364095888865811139874556345517652679189878245523316380989044324581099269117633982460280763025035251215030483814122040152926584126722179410943898871673951461849827702696144167848874083706358663032358340034043419498417513931647284338771463789860038107834376190606695937069509730075054901183292595249983636379070105240990640651128217183541931940644247471075926911070492508186831530110471368371051925200026894923022881069087238345378973491619488159973629699995677571975743241063063048230132322051566853413128143006916903979073364782289192485073523425918632508021014152669238829480552585404866738794006863949145206387774809637237415127733060831352113255447524396557250718451992083388720278817964734149678734889220357309925282464081838672296717272665214599177157276050227704086813616015979007573280131928155775550109521638835031439452171205298275106090360801714013847058287218207426405954308677202683947779918188061813616588817805668701638111274607350884611490517557454503728127247280904755525814373474245760338927053578669368120940786058634556921373348457136450001541689465070206073115458817503738193971248935587108511486977098675223717561860372435854192031154242736030188150961934975085644730542382017421385676194934577874027336281545462160258797138270070219870804873364652800778627450023649848995021920992681758698713882719437056164830078681478231096693328091269435205006230409016940293027481544866255603214537342281785620050482498299095322613611170670449726122568039189228441279831765056995903560816686923522331276814884703426565994143291563673427052245224276228945549059766469140264901186248001069469566875713523759293409446819273151888523326922427220630054123571802044218059849435791552094604379369052676828861900081912480925167153753088123716524572509470652347902557738816840467196641636088293913003124231916589865155854495207494841207754671774231846852086069867015969864044461704016650396047696812978048078524796234071734933225261837281758639996445575411560123119506722724764038844881990881014997564751264892077983729765470300681593795732623802816150636017487304510868232838829646391303841239444202060724416626532747043230470756421803369034976108861028596220780574773606825653684306700052790723436042885911414141228778203017430728305720489919737148364924223792348489165346000809628789102699800103294571247901348757445987358116732732771992002977706044124361550397088655226417408073284410122024943334641639047574106286480243428839636338100969597568414810874608119754033997172416526399626029910455899236746091908258938626569759140976111215987852504909723387383690511284867325902019130937179862571421182444370191334196728738685913779881086729934723239958216433458026230454338192672829865720945889317138990329867247558963521580416932754055715949679296746244718956658790724561356985021525319636607372385537848150213682689676105212435163817295885668940229847961850023551816899295895649378724492074688227088916448292392442615384505159980969357308114597434569262632441787282170039591333125930301814831377580854687417541156577515664214197930841505078232054063972130888527247984170077732036648876750376158315129875765144017138152186049057678118214033623862717275732854887761237119503492275521698362574391643346286223995483958997956976784085038814087790921517777402157572988301246946297108116426798869659321442234493820899242534403983676270176929087311901717803319367505680899912629985282407294618605051234241659526652358057517966372384461981588478767179125419315530032178890020489104378308835777105451903090458006293720262161165119385222762939822360574297351085162853263356233474870307448590917939002567480928404949554121571558314011716650787733504121414509060571456650476931702319624519494306808024686856735598160000425177125715546845261547063754656960810418699647930917287874205647104950330615214444854933886445350826873313229785594936370912194951774616584274772788565651540433973460274524110269995121947858531805497800053651106926462497869768730387414667986531994799789308795618866994286371736102409553907187764813243731231301757550566264747661679004588466362967226543718222110058349186022927203576455724585941231957378195265391563703383735578773826071127400010904192779118058762439105539019333600978765601995033217397749406379037256679162742335160728162399042597698419009172303928333731855380567480887472614723172280927452111365121800672864551834269660151117045306739006010127825645334172166853700188498967424508501657191531874183257344130887758725324873118021612669673532799980120372786572556130951720945655749053678726929417948340712426784512867106699066172190371739845412034208426858575440639016516403564277878855199641552555742719139131843099133258182276478010182177708080377094226903892852440177249136583212633910922018016253751007010744430977880145695134622250852228954774757887419096949171208753117959803147337381410508448867552232510003661446115400834136488126552070798731626150815941985316839732966690536890536001779098537835778431383195643267764853669896152674065906773053149950409188844850312185108481893174346210576055206275204491457075191390388036843794629355503182061524619489042453027129053200246965453851512049344365541353278645094112350171407529836429147752420531852943926254560475903150703714010082931812613203215232143336655997053494681132277151084562226250051323564483677548593615003425766945857227562026280988344894694712501226994461995640549683541449752782689186572126692065969686891891473344279129140517970958154495614284385623674094723434101188224894490440111388610596752536103702571910380442733962281169252785135480083650235145073397030223661688509316793192014920260243046405735576934268757886966042861422762219953064885836350196440356639969521239225705698938553744299524171462696967230592757945475060442235191241736156939800504517490754190418827415400740368164830759498067934233638347980816974772527645453873133525004257743013157859706178137054523791332335886012542984478815163538503076710045487445330001417762368491431833116629570998537992032697411031349459181522604512841225768917546709938062646285940907824806802863370370667428027054857828294199841155910784327597626571372413039233008192573110914021531669682765007627013763180334477197342567260303264409193140689516374400797868752415954591404065992742239017450020171469771334833778044941662427776451717506419549673613874770948389125583673875950629128077469364316437675134689103834324543961573016835929494717044306491361945726657190911505537244289375051616400582177126671756881640812659068869301506166098597441504107650284717144615927946391244360584471848773293804933636327708178725991506981063766886317990310352899940478238579315143830985409537255972941324123644987993978665321131313298767373560206482718808676345477787223443501086971282764739537667703902350932770638055807004966627746560193087450329998729558315942533159789339241482069193077401583821044148154151424665600303144895898595810488426782853781715487866124895811528342180273960764907843266511973256670327841183293737166506962063622767790487270520995834618167844372985758032120361217502510778782402395488212991170122376715918707203446026500852470777330965368236990479162103717175525397683441887853398162048984441765397340530422632275985858366666385190805618492695880535159711653267547308327531319123156518333010391431412741251564893072393744787453861891500719997125335102793716013759615261521999462073677761364574062463636604374321660175635482079425605743501808920462835448572986859195838534268301345273524774854386066446711140086070627430947995899393828186880322792231544500733685228381534615599700481979995997487434177648202759741899376489017195568899335767706693105109338045932453793049184841393138045490615863514256283113637086737816294972479989706354090997684931449186469802918286511203472011780430882989871829724638298689127418003118327540368606288445534467576020839968344049618661204069074029586224313812910393617407384084966665870699570305028990390083329070856450141532111222980658012370728236512079418852204647500434208054185516201671384480675522443944212316088230121145819910854841668366189788540423154982277559899216581056456998016728342079765771698981939364544272635374515204768470654279324796579665122641009746980718417843315584583312950472626656964395516298341430749307779242820320153705698785655529758624469989080786622893397930874340462270728698306461121163749443429318679176316084344171773006877153589761095644020622883218716504432833139026094076422665332952508175983971216278824167346739813879436915843462503345148625437099737650691670678551152925907818768336922431719544887195752991403087605162563199263775291699354702411934101128030029380618357315351180080295347550310966317066597674181209295831575012281524832673944973898701475070627280202384016966506609098045664837430038361810591905582360144345134693651696568389782142868369469719576557406079613611397981451660735272787701453853589525332237995903733382618134248208828010718233931152348910260188099782791476314938003359381836591137113799104048910268300586609972970880687013807064258774281370578885042319767324268368170039174356234182957729918859316926461359444921797604888337856300953418960768532131002852763122521786114918480276944064992089245555668884865468487803536946939198326147771957793766753409021763951780008065245860678969683669171371119438178031065173575877945124432427016121589902150335722027400342133266389545671852606550519869019375248644411838621087502035229953181917390777663523418267014896417612088493909295558371374938575959807743346512018615316965586217950814381696083642997062119727351135093519974222779527228031254547509535240578564104500134625783306141130565851214503902198330389146474400845290633437472759571315098668309898292296754290332267923673341215418483242318321322702192855250549964736683529644164208182938980778536164487978915416716257291307053078939127419655678754360529003369824310536400444673917308041361638064678098306348147414000660121648072291259524222498830290031478444368901215291504797062394587961260928023024658201469189062677896600420752970807470275136241112837112367658491411723851699964484108486622608399218257806659573729489620588701550142160820411387333219558951341881492981832594794018279425921354181017120796879599120432365663607718722014118852670792620704619141409023367282934479965506273664146424822594709807683760364723019240852628619562929567634184032764951552796588385225934695030144116352917695249938931103988358533289455881013858987789228106423381820086120546425022587311382425533540234196470398956098850011064431293314350863136757665217121280941406507727399863124443984171751780779674616131365180570158986859203298783803042375681327309611964508437650367644187860150954572623422260235837555369165867578975775991109723276899438274055368746814392238464566994127556748565189891520864765737703389475172178076251915775710377347560880650561243816360152174549304823775786228003978484818453220836252409950248490405134363914620988039305993451805754152238884171421152967323997324449445722741600342770383107855518416145030383196978811912114241541720955301326084785990508708595284172452836135122732581715820945556381451012680186142377326375408704634482442536157738807471664822868783307359240990440414543209931895257257203312778084643153827486516901244314824792319956385476216369559971243023358048270902780182394370414751059756045870919630583117017651960605179004970388318787878285752449373528253552766796857898202019742712740256625357364301103775120344873626421112809067446008098394158229519692317224835865749796750204322747364893879599998007713823106098360059359245971503611797746301991728909079435870998643923845442619250164078616077386758633506489247473311325666527799755154986559719103362533423624331954353508001841612952235612068383526080944913874841124679243211291723357250157388136223720201732638134376971163163539690328707054109511554106663158331060618834654690875853274784527016013867110135397176830574238735325616871936496999610042282109668461621305589400644140419158520746706232670849360425998746966442819932211296442356733418938406692542681638981609014052514009127157445387324578804951360490584320581442851857124100334867468817754270011229461573848863641692510301276276626267710441277617097215838056115452705008037828516471672482453331097895574706460085432692893599012283599725281905777962777948127801926277909090061923195961375970020069904451107766683950749999081747152923047558974239371319521586612309742523666565182480110830532135313582756986198448242202009995297039998924028732367874784896857234550153522837800594171749180890905299819316757739233350902721781509630781418335498021424292362565293344926119740284966184944630485070990810702701759703562393496385239674460412487183518235959333851981504727225928696176739193312384880803360514305031952728224405464541644690840838844673323573274782105059581326713015153582479551524870280147220714900667646944608729079847574377966822729080009045924495489310891108702025915636133695938229363969905353376446048156811728205759767938772898740756460788444616295544404289077673028783760530445893350786840800082050067063845649735493629921021183919201114968914296525233170082863048283401877322816476209346420459073794703998483304185779909744338178796108307320585911879595256755052129347052195138301220371874124133879068682511896233977708041032175048964956212693580725077101880727038328636441030504978479815759609987105604206743213021274630749850827398340602319682028224762659572020988850495896283248454560660963870162359353868941370354548422162956708608388718453780584277306757092121471807291707861379133077419693929293854381061499555380088288097158039355517791893346993533666806493211588493601982827094590156349722354493987348147366221332173726394956337509847197194955190966792058356375005260896908553362147611440223672719259179924682249745857678708340642527878744057442344608533049179584493084743765257222134626098418689589969545584551540960143340564024322327786666142407537855932696684168083044928432215331418669457032426408671997133160808852459845943790439369984304955574246444478591596257791846733058183988880795412881862449365870547241777395356750990159688036322688586168522628010748581681684093612349757898753124975485091675483267715155921151569553080369056252021717613208547598404789199218548151088542248026776386785279121146870672995590834298349195684579883514143520415814382905442236053830211956881055913896651701201914031582442719809837249668872218309374513739247381698336029969613994764762127080535094708690061363092878308950405850070762868055289484801659499747414847131360998930664354486909009181877113889942061217143609326100801924395366728347149005062873422268382299028965752166534968846232723358299287338726313214404239684334157201092500900392709056188060228714183406529559282152587250849495917733570089858594981257990447533511697493696872407289149157390467019435473590328639855802995348252110843711947102941816579046779737472281574709883796439095360027073095491141879099703167460632108056358123263151211621001264829853817133322249313105938803156043106746846296858447452242960496055795007993445845818864622194520095587651513646935754774602525263976944312521014499106960508258475232219751755263265258264200966735906362734382534683058751573559202121801496311891573622897765309241943520155220039706371454777709085886148510051777352269927317889394257395983487291021440964199419102888224390866264968223751383603096276028133100148030760124021252654121401650870504097413252816195231260465084694263779462741126837792939828289886242110156051359705742500047559821337422992968954868959959357880793633351394038569577668185940357313000908230055691898538928353661240983289870871598217905704586629169091021507397175129481916065661516066264998482701865407278810378972941431282794829361985897930666472182833897995037459829677644555910674615016164401774462922811750699932260796308979797483157782658574141456379534247070313405047848345187241011191752044999403738553994598187039167470026125495506101210139188332814375071185285631544790033633702217962969206026517200316358828863305386353105697316462761202719906125513781110779863065348184777928966984570937220381852129051092504067734760617785249472333033395783648885221125394600110319173176619434220282092243866291611407691548848229986756267012147502356232467290148901821728609736271940063255210083307597283351788730069949661909148013902636011831600620759949107518231404660286533439709038485042433608917851983074776969147650548433706287487718001988090932414002538483156954701837547250405455919879370546140613994431699326584083733265380623449964794446651139158700585782117029454876067249586407152345669991062324503068957732264913107889585341832272909363551078691172784600812236582233351219875230939615239324592173177769046824015415801541323730636531071627126857340920983463097494094208143539573093701713164967611039178375965776712523978694598181502838473457830248000776627713864566830295202679674468531637210788009956550444452101077944354579947347884101202639542707632344137941702829482444214222592843667228573013911776910036398509514310267188619047196227479285495742270064627868558111756612029483331643949548297916543489280342842227783843854494507694097026431493089187284327891133647230148010311615609842244715275550950600740231016892066608181949702270855003228465153228398657953068441411287172006909140283482499298084609882552344807431127543344647843983506898080931099752778351272655037417141270992041082315132964755423766607612245273264810095175527073683950684712958510224849489969852384044832445714211606020712341472496962012811325699478222904384478600691381157048573597771869504235581657288433976818195881936263109471265820239815413536593609683505138783144025255621425918049291056114004503468473731555580510858395044021335611506144403128453885885424421981736068161796476502240002409772256250133660251237252552520935873526900065823133633841361328539483093259214333368687636080703480834656607399762102073127219943610091247030806822224878496692605236964966684123077727878640344257376468047624913057976464529002034383324155196064340515984688244765697191292663228686915303059052324330274542624266769605610589601250924493910456769549274735133564921903994283390019429097567280132509507649883910886249399661996264342348887261607359663565362466170235918199193612261039589630297462286177040477341623346311600659275747832997363289318956604315479999580150632385537638967735669279802741897660747686295148830912012736099859238500187791181032977099635320104839078028316210740461099104344016882607873187165051743552104390152902141582018392132948214314673132603220102296147364786969666038639025079135766132856472526798723066446261345613803408589521817859997702949270800556352267459037752962475553718250523810893415199122771315544344006071413295089794226106124882131796484053243216956679366001031866385324957914643412159398682209352711475093323751497706851459976707774291502265725187228113510192952682595361316106319077189618343956091428563747487487103877112952905573967427455971312521515714504107330539195910326282210048238550706102817365256909954634098789815151428366253454938640263715849918660741062175317788947983604864730083116617257785734885999474606637068026479040912087560364837582110339599348428348424595177017996534491446139645003633486455753828960346640773753943091621974219756963314305921831582311813110410162525857496606807970386415905344909119278271792079753873666078175232101091635184878963127256466233126410314050213667244356100682374713502067886243092842377308316274179561938736670890061147955726792779334675860442493486555136705134459782813345931776781113865600108286826541896433874863452887746341030697816074489386519268098035836250986238332654689733074123517593986881725176344516298535776035857334167532235007515194877677395064333377808382242542610486236631668374961283564055438517660362224137534039417171969348895121912527969181495440281722150129555923513759538398486302488599372100992514786449320107443322422715126495300621627254267202760001423276524419443495384215161780780288658149349563126701837828394517929442327441122116663143379900908892707932257840147289294783808148239737526286660218309363297689137117927551009129071755243448295438529047517607167960481261703868380377769573593733956820717046041993396665580305857136444030570715064434477030526028230386807070906870847802295910235942518053139104003193240889142612601096530128509226324585595509936230449914277042204710972178720098902566977091751209702485585947512461552753170211133461731929301423001402529798961367008705467486885621157179195333140140883639999327786228194522820975146094925113454310786810762100082621634747157795379648580825098960775677572482797407588254764742736810285907150642524927357925644877561987678428510381393591296756761193928256342636507662409622886683007861463005546946053422611619150029477463795965837033915342441552296082833882186525868775189480561681605597326291039314417031156584091442097037180198101560540912168527059180272621085852317077272316719997752827842237611565301110449863738774579973923522745725963638939784263032459568248365843387369854213871072650296564515940760195940834317735384289508723176729111572153643871523421735104350473034785154683185869970152714264986451961245190931313332129457907303703063312676095180869524112810621140778021383891221315968866003023600486355966866450325430412729324805009103141870102710845455462320621959778689090890850763758435640868143172746955037033669207438343634045902589899703591702065158699478049143264802560608066524740283709691074696674569812175213085773388218398533538013331758126249182943158810742832846734736981094658272526825768838045149502072686899727231136427033635558158605698697216411433347474137345966192604798916055247900915134886229189777112728283812829585830880011490523973188661278601841691837771244422468229994909188083504318153141541271876542433364749650673759441338521869347321199987993996301871455502866626999096479315927074216569514694406090182158766088257685382816343642710660898538546394960100897434507357091936102475510852446497307742227086670413943674767738531881572399013322096409457885186663679767853504697549602031195432740388132879717578164701206402956237842377120691746215667515931229301798136086612866911550356919854030810941766350786067718887413171236129686677278857022044431213889661557974701358005978408177606252954595311005451136406994501666894637974586495176722411617743268943656180653362800037985248803201090636573761209546195756024686033862242592504152134464699682444751325368585919672938842254594966810538704324205860372231956580986452755939506249658441983627018468066436617283175562214908285107257000132433758835166953034267099794499276067391386432387800061590244240163734078995982001955328673117669340492485471655389801568311037487103055678990301990506325136605280126247325762483524480990711734408214808784529524274221457807110621122421188937410521538722510197065937558546217085696806195565737537025203369139450850661701266133133174699332817107577981450017198325556801540054077365079948462767212732153117787415885628465261842587104783149060834102187450395848552249482500545245502649003044440310523880903620089061141836730183743423335155135046856596470073838230330259333768428795820646651675384072366536661152146617035215694051098617928529197733038356404536009711294412701455934069562112087898144703028797300029177769315768038681356825985474684722159214707867036455716315166660272596710725151116587933322025426485230843784560516087519880613899523854590506928194358416235878061438986726910673865823549567752592279537126155459744832595649163495242239221846943055619265702108315439876577366757830857770462422856465310672028414086189121877148552546244770001882515599680810505325077652228282787710366065978669947537638235342538742306516716918489266694510240273020057136840367178341390346503348969858559088317195649982774695591707444395544304754019512526675280269819079342683487765999778065568209440689279578590646062102776283498695605290492881180622085526126397610527922002396742521118267203740534129151664146338421680823722233116844160561252580083752550632974855028243415756502038391116439037468943303162662666107265954593936196146384627701148813018683695088878072317276501439573384442229609678617741383330870095291041338456866860259988297294440452748106358954907921944736454169074154896276724732104632123627394935579528343964701968565259195660338634551917843821566246876719139571765897618504970947245620202387395381794763589238667408254481113062365173177571809071240009968710552417340190207422348204146118321726199857460499046371751876804538867285826813699713284302352912203445138648018734660203008963793786135384424695882562218882246591520745835361825970268619090691817741466484236087622138681656366193444876367738527833451869359075389068185879633884060156597087197368759030701451596068025185118607003145112288314470042060666802821183780531177192588816940973885334511045438810098973191795187377295392585334953310747008467061838871159434803942146949449431992921670970310230218582369948048769892016064786122283995575498843492735094205689846003805037789223674198391374614573299316655897538561599152167772633653639339541708599624808621585650155866558579954405094920835222649962169831375716681948248390093647366229467720485357419915685311089680136528128698191270002992841103461538970562656709763232825572971363769853763768197390791514622404887956774834763350487828388154194816548480700385039527398867722249034434680699891645067887740391190499207313545130557198520642463781784484494568862009583472497253791275735524004368800149569359666106803585528782699836174157822213760557684229732798732610023178407396201104967106546021869365725618130414295171664299982473366643523632923452571727412379278374363455165188320751170226302449340894432731733780533311768731727918678585804499134915868575855754291796809003460787275358159435119421316381285977713084095314120464022482044672556109167103306036855794154778787524556503078066766916654681601933615841621271939831131032544403720513673385821403110652776186783810993020033158113914938233758478004906498473767085294467781784346876571026592672912180174198134079767127931530711644057697024495933976343799952412308577443210415498484490794663340587353806595523969272718865215239298998674829084465364343372258324243782367436849287638359252091007001244710388976263970919890760438945865601159513789564797046312667914804376286493181065932391503237368552549261192078411209555659705895421403716493366696683293350748037046298433709539361126506189290875513810935347094264848526760462377750859884892372394381622529239795779096877706544688694503678807352264266162295682987433393890373393874694501823907352365645863788598364324640182912402518894578755553626445043755793972385099494318495703496240833791285218267883346807757087779727277102679068341531838022490594368196402063192436796635042496539194185543450977674089250811898851740048095037936134083726213835287931974922323388448830464703811108686539361196689880537688496175357591115041398856811846265410121160545674420715602903739678921513912469899224818037928984749197300042673781095611512368912374351845962689935588861838765399835583726912852523192809554488006415294370402706101957924203214580084632376110343759746545135253000052729877139548694139098618550599099152033423917064042126280861053142752539533129104269397191185700926445947207225820121563739851388549597519916797296652392749197987635915444139549169299124759883438339151051900422253612807145065162990446722788738932495954227241983909050131245521449561880870640257498324489422269568054378394949787472575193590676713285204556134499426546064890846308759974362451374998000264752164877497305797987265510869548608269675120041476334242690077608276764612250102467875803766355374671797056725188192931166525906069019256951182620806310731542007615892132185908955988139219814069940884565857027090387361438223844745776827303878365256921824898959904261895422325360620735782435284792910825419478907121079274036247124235685727818993511284220497006832605384553017150215286083816544456624204495981777791977558935865247531977721471966265919895176560102349729115373956544877924017838320653075902692512512510735466667778860684480282504781943049382932119725856095225523024620635235036196189798925180865226740225757668664821466639737362761572239249634305197117657265048456299174503685754683596316069023284998160725777879093481801957016190028578372972731312433728546851695828595588125200741253817915446146965176773323688364954734615518053112167612266940739219836431835059548865717353901956460988386767790497304583218961958789183168004992581858602483066160596894682619528804042083564408001171564191932701949601622872957105424465523675924332974796635543189911805863198490746460592056112525537055662663490812757336575861577271816374374492897196635360527452246512874882436074630169276348316677791810817359552112998360347437936609621805860802191711037928491103222384818717599860584261250971570681188396828860445402877718410134448805287026628226367136486250368243915193978273278194099457354042165458954375903087151597911854726824950848353246951464080557757579552519915263127129519082210953211299992298049749478561113023790307390916767375318027636197293760077222993639608458131615055522163045133903314901123272706511772212755404321189640884103583434312893748232629638895953337992119961466350084470750285060812595830127397562164462321760924506300832523738968966925304326079661832492803345655937708283989897894597476332057429342572082485357821142521455973999464594089452195165876981930090335320043388742384175882980892216587076740615983318735809117481158299359714995655855619657840296509609590862366487692390119758191012805935575568967456089726048906017890859318692794646701543946626663115719388203290711446681317437786678245775842227258767572111007004028574745643239015808551452577335386833247776209563457782072127718690908895468772594526243477222210489384845738951316017793077226198637394613354402355870495180299270124116098430689777007335042678260210217743354434133972055557817578044039684507034577697573018957734173512629826806897236002701077937936297291961623830968720936265446546271312189222567096220937334668473236540789013412219894757828476607010729510691816257465041818416131054138486417791262555208046216908425947983175219609034204981839353317904260922260000874255902931029048115192805103212001375021542444911645473931627241171041686965884595021046356014934598734619096320424652736342762699319290190189059105437609361262940379126259231736534581077362573108440980644842983127608072756928512787767063829416186911234720599587008091274945692422703373590305738715052051484639970005257243736302431130064410883915967385639454293030788561742682012801828445443507302486423452459843359190054896162807221104606624482596436928243653626480071317269447571743878337731804729821811980595668792105040563103673474192691861980840393284767813784931505573502812913301968054580745138466790572526980306928042163508140389939501116767582658240540845089215899121071600157313509847792598091131150451848528763898400415614065959776015791950310511974264613435736661442811861650716675342947145790775038738845877369292350817754078340372051273839226360188822742668390210332196578593720747633009005532984441492971326016830641605819417129317632451908275510768639979034064883752438118385660317898871880462110775576099714651380716929491103178901661303237412761598222427336103329900986464653055509716415367696643773612273643950818528507873828286393529494391312986173552745651301083089695639794761306375666117178953664990560225467351893497068408402526857558924955165882936270489183960443906260227615764603391623238047711518454591067425715195473093551159520785016161488108588210120126906300357895451564789258365383286718771325515286940406201652123241820484382082958174492024093163320140736447152160123454626115859479030938643557798844132975092362795985613762114317887375699831933395938981482961898299183471578999790034048225541665842243387763069662025589940605882749510986422333822683976819447369503694264523027585570553267404785426783732540823684874073771417247285626362132056033450146056145628905595198502016226549214608341426529754916474958525081246070759997619647002617712569288653392370688614536046718655626782446712971727419148909807705331551517954179974705053583111053599844834970870481340443040891181924170696644227418284384870546693999553757804034102741909418671182539296274231265548994735350347275251825756252752087966106127724984928149731848314480774690089702632700174395445782669015357840216338657304009831749070119556690756693815424916639583466238929806612227152893229358812683816705099382809301689998451168119726661093651967949446763503559687889602961401654370730216900174016820047640157621519083074792051014877606042418100724892596048722475558921710639340696675086761632321901674030759491485219192289422130871804056770898293064119880104304893662012835567761787636755792675685953702041581783547098740539324640647780533966738764532260687491897921125760513742899679752230066665676698835706880327560720561002094867075517062902356502437660836823384330014824056753303315157218416829466257148042039533129494648950482970691535635560231028486148376884528071783591903197295770274197141914305838180005183466199195337227243562450810592320159458903609972309027971246444214886031462606112800574311103347612848879396298155550173704738923821857742637989790135842046877358957543571023560612085940969429083283005730825307943160059526960117508554091766845157048225583522149980768021002903029473133035449740292868803503440793996599957572305501850702974153506918858482440163719645561217646563935802516192352301866564962178200786839214422545425379439761936660580135682109127790208769674095012612555169785786571293128804825100198781716017198259106066796595782402067877439232099414487095573154755505894896847901512134217762826492454415690348770695876119306209944911719602522724837971813429086901655932821625495350681360096152512015703196540950524122125315716008905289315792674814214969748025554075717298457937321893355528895800525747334542733895614647376261860911172410611347727202590352775779365341636836432076186751632106274805587151717661400306869131027179182319221781680745041617436216955300252145751718967380984051772995609162736791858420460701653323743480512532068384581195085514558499179710235007694729231565269454285679797827231014910277610933168672917133528180931483519467090415326153483832302115958770064734055271925120802793194433806442261700221802410672225877850791285682209395327745865344527096878428785178537042643119388595646520748589465092988754527419997733176809182922253787515156465763514546080047268774619258563865606629047816505906132731626752914154427690298994220672440081503047685523851310706844773192172563525541564186196691738912005781466888797023102105686225503798519209341514215889850403938060698896726069015968024269488956298624143289782209707355482970287272902592301108843092605364984650417484005984094499249203994881525888998927370865246208704622990968332868418574225910203062742170992668310902759899701792564986044546783257897143477720642415277074992364811273442609602767754467743159431228439001337037611332884916753065518206317144072562319370971097664281867417334117849421670900423411850143280389518611417659876085995596999131931637378366882394393864341011344773827037141674500974065615683707958346925888605643138903505477884185644725484941316331412280013315641185505097094758075349693638729316305451609421874096385059195617293072390567131321540605492516256162426403877068050713054048374101293293897032436527057942716536890208757169956665860742223791634519205218132551759517384165034034975856696405305228011364699938903380000036779869009837667412773053173430409509164903426764377038433784635577295272813227122230854118580979937783442577469302265090259640731157252345138165943640403445686764584630465199825171084393240535688817969532934177653920124176819966701364054132752461710711555053464446411844692396472473198399117127343735757658226520338880459285075803627269159389100149981214865103696453479418513487966081538843030522930645520802257393990811013548781478061731708753846518921596473482593526133885976097175266486645745702889875464849007478149751298871633268630680558404403611173467631945799268235381910731904969700422233346515963582199843792133088998983089482080585993040087523141262503990707584246187287136572298287271703897194469770331595544467349185826795584464712660893071897135982416718154823366203403020278417942513810938718649159461106090302130501515107491185631476834656936738354205725671446666137136165382138943007787233392066153353412109808229019050294077405378438098273525249621830743600440415706637500747707786399877233063605782331680672031097523479840212983432094739381285321059248722354333191749217104749269910673609311744979231454260396863738030973893320663705484030138195913775270509121334632226204834001595493031434386548536790732964594174469963341995709003901514556329581422213147059075271958978445122009608209533379117085381721787807541818137015580723664956865408911817372834618255707671437371286825005303048524329822590860810285717639218262019869627380785230465561592923493961549320433851045680690247833078011688338530296028273526484694941059191256652387506586886762374320095326268168440828932214819682628356784399704138856357117266835228030406464346920311247762108810534793626335468765634737596587667738201144356363014301185328229495229020277917524197723586554224323665080796065377826201380873573648699738200970945860076121834122189535957097742788477867441901890648780853188373146058198533288255125337631344899878348473545261557548282211620591979511104662653167621810827828012413818614033887260677240717683494220736970428522183415250528406308539896500724984297599988162268930262351979364419064856526728413716232360339264671532658089318223095594988221914899178391653331640021887987528088750069302709850141363054011197567410596941720887128651151245906334558852562818592485832755824498597235368782747566003361412007211114381662062765252555871036430528797478776752739287209765689967758444086461167048299665868745145603140111496470321651944197802854604979318781087370542247374985438118359628793013064023475066200035673597076187394517161378732755054326108276349014998284898631550835846025120740588049995361873662904233924613320631389955943873578097943886827887069103235786527028681133509268171115460545267940943803048478041641988835413214995568311428399953296099907318476084629577694785615577877643746899209395867126819350244014976083608296522417381288167995626552785669945182347213458476733373599947267490849317676262711176474316560513436023679192514421335488359103131571980696562531707444995422569749038702604723265449955952954194419395089875504835226482509589043092613210458665413288302714993211051055883336212064469385969373641259333960282366600937795229893341076076021519393275749007328143690795706213641279834572427028915570508102844052549583971778843200831672645166389408424046406491768996544484042054238703073892443117884346036516068123116477815071882394594415446783976437010802429558473384340075108014350819967855978231315221945566888244472474925257857071423040537840888448309705834900181130790986626966606986052509940143527266875885938779874293509388229485871193526324079340832763405102341193796998272837034833287414272308307772742454722970995422043520674067713089276719063989550787952519193691820326716189818747483997245656801345572063259989233789868987621566233717602612885454276531260637153333575468547349301588301254277140705693706425041872640793876093188157963095821002493059942467202004308696037458147625063551754548498803313117551424902308016287999748520114414149023755866928623077845779670388531843655639854653949653920349785236964309519613973870009201049130536964756504449588166405150404759604208245368889920587139885287504692164706528888448454770902447799187573938836689419854959644001137264284577307632484441814069276967391037318999107627836381232921102675435171690364870199202789242133913120540320395442174741507616390091713067319435812417862549817583820877871066257622202870509760069774205709378581421884060320390830047574845612908888116617542844584508059714972701301373138747538862338049308738301727705407208122147176925760322387415361220320030129402452873575449827265432571235017422122099219063848320124500319677142453525803254796418237142191808267494120918480141290665801300205557466924747475965217036788945688623786441403130320990005791768918361175974347560636624788985749429785272685620510966751256796039902050439961528809093743080627276485298597040042463765018894061933951626290498861231490967149325900818364270472319429929753719342078172279492745190082365178956065216201595131893325143592689007490581346349800751103834123571393090738757176181858343644413006447313327180145882241029326177694262031913991023109398068174174579534119874206267707306088068769167990656501081410168493170787300509846088586142933927217980007326028231197054928412772275011884842706608380703492133725081579662693468977569406146001313599561387438546566318802556234238264101516328534883414189485583614730367202160821200515278483635679441059488597257800277147330147561199405156050056766475503311226448127754498040770549761239332505636153801941689179716436643389420783290925378479004231691456054205052291845444103583981045103011023467844322250728329846300129273526712296720167568220511734336307262316199928602542542608885155160814197574988285418760599033769527231639711059891287573723648529779998437573785468610133178123675622426503847474329339772582212718698450352058054295966132842802763924895113516596961158333408058176632248833285053595320612539386893845750211720720050747549646556668998901837310137758416232655658055952598196384118107864021893085326035149975604872826885296714203684504114839536660325245726470628539746075254572750924766380203203785786538678514961996081821334653410729314307880001931731365513547607823331762101543509316947895711208171952776731773470669971214550929607870827227076621369235804456566845868797797042052880798625451712902142482236466689104498483767195533012132258105054548540342585698126444279781816847942321278088752029825568570166147836242336593378520197068602654161816309871700673190768089892817020778231620734507257437915304355111178706064959206063160923057858872401822789533502122183190257662591270292269049474549700226104609034645761085698294445787968136022798426713996188297715912458779644836469699998166637695016836960647664581489626987111488750801689169682881249664017050967689587774839647392870440783951754219754352962299237585460928306622488368120309064494819992632590479939070695995173372572988386681279408120146104946423841594657745781196545766584448654734135341953149045852972522703893321632303873692384530533495271620285107287463548826612259091480997059562535116959965964364695256022855210600957600015980150535799504017446078514244796011752342579489609644654382669310018890126987145253294603165476244738834627937458582990790529465887363676230560858348753391576227666520724560366687623266488834774622918103562104822284343979328205036083836727842771191608610542882530038525146961611338856412243809812455387344747457369352772455939454297541926409166004424720961785782681773466892990288503510139182598434546883444778810285539266927901917684836173572102887162295836758963671402308255900142390142436691575378218909137681732538486653973083059195581626824980222516259689431144825679308578646119721644965798431540650533026898499384881903158823657186843089955132866353223619031515478953830905824845161447530950540908322313766183887193988832493317956715406700645104036116410255479238261541139821023422668900735778977788944442293318160110975642877847211042469067616654218673204184022120744833752923337294607420703718056137819625573937461173271668517948040740970643298626935186200849929532952327272015861475075042180547419377726593930517462333171646804984831415721341178269522210232681380482412821397419647825993440953557217563326125577547341602361408177853808556260061730841680244910208050071881360695072128801464069413610024597391969004057433013973058785637836528515901385151083950549223029865976650705636602661776658138541144344589486638721182503152807942174285078612885579383478730150912834829054645656170690665939360691341806329997006843359416298574386305402510452346315692994616054835680144500751724356271631704490961945321842365330613228217793985459081560625153943541733516443533480916513835287314226684671440705408771707732815470042240304024638366204542915830228764045824233120700340324693563212786722079076353004183636828045036268277473217305782952353871160009421967868889317916468847599707909750245577383475797782840819240139501577420468259823428255346000028428823358935966231401662588597296324856453692421002422958074145167611729094241514801011431203393990556313231984833928332371004822777619286989844736926116942329843656817594124719146795824701403885622865886731079500002881882279175934843713278823628309293467067604846026822674232803307922533763944423998882302288983825711025945341000957686132295821400103349813955198803242130806911346883696965799166485036587224519909361606756199248819860305675109771353590685406890405731146255061014877386024521715005778181027903662403452197121346950593061685428218980772355081095617081260841965498333937736605889262366370811058438981167777792732237317677968659321508907498328036285880434625942536521460347401138171165821093222969227838921475922935121611807007809937838996766244790330110397551934462905135092574489876860925676562578597877084082843460226490951057665969997203258223947916175677692278250343162432242731590932000162104114908088023343003969863051035888016714321574205792743881476948734690415095566886094537336050940778622895369766881379590531886148073955849619619348416744937188027689020862688496295886724843379670446556491879554248892852847591167371270422656494792380455723687244083202053205831327883037185966328780200088917784975426304646059491179657587525685324766713075389518233054924888868179881292221296794017551815097948696837489052471704633278118417947275152072648107938940121201416247651959552862146878987746801469980779548983349219829135600863700979207390526778782329375455584788135156812992020897086989584594375461879984128037502776731495065524985451412194735203029190658956501237914694282678786429681269182609605061482091736003207067631015143131218803904097129017064532462528933478787826735084624145583937715554116835337886011093222733709500477126334093661414552856913933148132123877858623959730592343119079463599561990133182438381055990598607421827007431966783771211952155300417200398867125008348572559269499214987445422461723399239342613069657606315891012269408126842474149903025827492866846041851221699378540457483145395504291747596889860273907892454151073311990206916743422186311559310151198666728506636131695429487022261776344648577285576850719947171508017842784283387107816053046455071695632445416255765161995804469593659545305058298003833827633533823092945296356816674248070017011092516038326217517093524263387253683023278260893240293431032245980143471402794965569689185451945226366506895749365676554914321875059682238745250699763410902826282973310710293286977825024843447793287940680545513814226554770653589588199156730083129252382104305582163356616061395983583054528337473804524296322650919314905346291223751053206222456869749041190048722079472440174164529671172339195599331700358615115551745010002763829514593672399603696688280051473243596480101341374692177806617836171567174521648560964557468935189757270092927548046280217858245862365538349214577684849891048822490689237410673832965769071010877074188653369191823697109294225084253584567267121357311927774150461367877035443917454004342660962583837423084894760717773832351660610283616800878330920984331264104365154149522876335984096830886698367610527925503083851206451163238201386706027449242704314652882688108767084493450326886877321783531022728446097530157656119260443522064545889253814671204227010814391422546421591696529397864839862403674651751546690121982862607038866261202600668453395428564498492907987830981016385881978341381508118422874490652959325765883591180414916617092814152291031345820904065273864957441675847701131185306667005081329390063955322666368032149933735841710756679219353222538570800530758778328765920674718151333236370325997649654802337518568679104262024175685020842667857628910998291281278999750249324339249406684582466144930043044991872422657282002776672312403437424787059571388906916950656468006361317194424921018046622103326224493952114306821261089756790548139509476691328187638327534915567559856869778062631299576718787429756580615147280916707762661145335664660553522744727423385349815263213360094871998650231885835264100139765702153686715150187458424013421209692129208503850169507064119695676467087831106627043002624176301586057530375045532335995748281123038098823615195777277669914247596456626089547691185470701907980840333547393180030519863449806156152859244988072906011668017284135101801778037067214938277472333343778894443290661618163352229442301086170159868294084616668241610447259397031827013410013864230478729795671161063034846362817178936417172861273319119400271936913274655152288163241947908321500790819384024024671197150571970894242090699942977283871545340757387045235800863554479073660562875631399900240701254826576100145193409872718317346552242462552045132686566415697967427163188986658340316275718521426277116570344040965858461609816699002856839822537084044922191195099709409544543130531401798717937630640293990042745365507465973278580562758313405309267399434913854969944444688322776669724989546229160985647690924283901158574935656332987285132361554368053271799634383700854575748422542065590502040070548563590186925354334720186017326871567871009365475196664691388930244666154062542254393972996594484050728799654733238874460190748411516851126987894233094374771333242052630703268587168548146198070553487458173430280192902228211776194415149303711110767492582937004280190156680965297633040540312749888068921285133946827784468676607525850876675092517482108206882256846228662985569224619028130834932347827503435549591667189721110889541558694775513044216171776268164285373189307744291296621447706153802508053808920861697569515158614977233114482976623860891756597579033696844542032417801648578468277747669659657642266920272721577583219301986152532459587773442903223174596638218368375750048039523547616640758334547919287972180781710747417637210750111788857949101015876225850265023518983558311912931437801762436597125831943624764572401182038437839423769411283747607114056892844705925648055916916581596202277188288374549451443823588153909700728164961241145337967790552316434762701461340700894619710854473095373842807928981523359013544919710888921115102204147353499558832184154500043883503204851454834202939723933931636349453009353186300766161174623937157329128973299235857777937329050227621506885403154918596187603029856604428510136261349679241622871240219554254706145300404732855643673039420831960102201365714073250800833017735999643232649942144616892595524988388655900519165032725342893855703393245620373409679386797350370814877363416437394217904109720456736563246386710333781974042585934413437363319168450285946114034422888814018785326951387526395969589065707854372010120394769446531484718402476340516725561252905768594394804380227050182207758428715056910074439126969523428432352883874117517864328143250881885799704424915673862585803341121116868079280219377219111467646164067814199065627373021284378789220043510098844906922311400310103905690589377026792071868253326204819292608596857254154770186132947888478532191678097463665392488506811259589928447352720497842733122104579799964113647423472078409254925482422620481867495487262039439756474733906298020469444435747295824848698995721267310474813192173836834789399480567730851649995453956905705718613111767743956853468574810199797118574009411921620778184153310687692406989415214322369101120769284803768047686074481797874514129458245434771945515379122127859446427562992842667908792356175554864240997523561630396596593086421841387286855761069625355754296367323602073289548202099732194148970383174733291865314090231783609012651225653045718899334606649931415815785790873973804885295810317266640472167554850387048770129815702318413984001179393176111649852314615659802240865841213277916532922131680599349254274921227760922086369294914917828774127396189226780295671389595741696067855004497377397376536644218495686152920736641457158920134069790183441271613802895451890150908053017036683296397469868798051595489512768978123543791942559877933172694826702700039293427777613623842352717686178686901447235107257715793362004031506514396105423352530061184344084138517043633641454581807269367475765424232475622682023197337199172971992807953769266165147437068361600243085665796036185594330798621725118839520550637732518319285512939622779749166974412231030863888337624733823820565256084448982975098712075261322373567695747731904197418530607120095125487650038292762018627429759754018008687180459915671681449025244502099867615435661669725067335896621974134517936406439208443450513699759920720091904999369444505410159520707797853559826341276680847658611644347236417353809554040808896730305542736501199579393636146303773187387248912725937670118669134691565603252456325396315689981539942705526535191930933294311846775489057999664430294748864212937931551457673955317758846780201287284682219511159072376929274731079648839946350536534542487322616799000024805445922660302445461215075427205129568528666884405351782405207651726768532804336764254476645598342597019311727553232878883942171633084188030553640989256693977873300628993273219028903589438872791086594807185827105994228596766911762766173368266085226157762671355316495174061437259767624446649615008937028350242097265008734287001189970060729305767865423787467245704981016226009118992704794053049714251609798692978206850391142998792244477616030176055436123238574834978925402480165014667462432977286455907895248283304111832518093442298319986910659533058804780008496204528408552173151401977859034366340697113397164589774901387324909019704727215225633083805167908980708340035109716167538743053896439941883676937710212320543513373142159278242586184254106779775209351361995474602948676032600054019722019905863229536517481072596160269701489875321376625541914341056375358774154043149027997510214923867319280171665590864409749664128742281936582794506099342878338640229447212541093869753043547368693537677038184890914446016937836698967990728099154722268290269854020612446726073251403015843587232661099046230782895089131231120226451200044948092304427406691933516235706326027320951832012910868867294503855530580138556888488663506188031596682882605240001786627800686781496243120533540041258672740119961265307900092009173492209133481546260360803749775279630456358650635817869968362775637865606965616423926206936535848972995073021454502914161213958776528107855565145405724468704610519116760146557832181985509942271567700811410346268503146404615476249982340911187864759585088732992514773105183256115605314088206958255704955985381089722252351679667620815269852972360544808114441880987716818824807351015253532177855046932486850469376974147582681972923978341997561257457440553454342602057087556698768774625288494019492463474829893202096161129689587710651506743537855537371611845684942097755667946521353877105270431875564566436763250754266192357493874930705417991126468699200478482216811073160689464375832215526932891397418176663577471549079126181054636913207664665888640895834645479691797793436031900595224569101985931849731398180593171203111525343057409005934708057728409018380773053152478216434587496089501395593411053939149787319478591837699681692262962129177450860072508029730564134840165798591536855735016063432685933103167500481397603809311655681506228523352431354468257800567314131866880019518378714184827165779775022589519709066331791772286179306886203757371562960427293293217885338789003854625625827421490848838831164683815545429158513243306289743817609395413990668169502195237937803624133773512592219968934152303236823678853645691299037772964818113062517232794809582925795484723205727088781296534515680817429791516163636021248697987771070924801347292940300636840588435976231614653099119836999813064545519400097538684721435267698700930029834884987357998118122616481514874040640963199790176829591742188846811432068506952890352681346133997750977545389708995108667935064943467763008886464781334146332158914362206239964181999163836844374691219612875559203115322743135096944660202929791270873985723804036268757626791254821911537245197369004869918273381681341992453085892182276839128111737123753846093564515358421117665216253892730882970422713994286091094446432374215759623943650929144176380552898554494890070495065222486807298982672970508286695123866864280352004116393661835728791993011229844198998287942436306840192107005798768092387418607024448326385963276943996242595500796730605796747168951691957142411750636221342135209424534449972332804128919021196875838985581505797424616189985071276485713127141906989525314119393941788285606777276077473080929436728276113981571477899117103490327851080517164929464682958569264348135456240433084708298502203736971514258861332957299928521329688236326716914891415564850161114069303574889466573135349376031684462730225715031595781320783602703994765069366758475130168351349618975248834685181169070563376950538649251507470048848615836607587344309637767358340443013538323242626969137452954004805099488163165255438873162701239283265627688509666177132843513921102329010214362858526610144343667008889900336558935536814444317930630457609280588051078646615790251680550363585201247472102350594723372444557161934311298320277257587911549334757423262224818791665107541358674486321938836281914958423936126638915732580384773110348377560616892859415255355148264436796935285350382909664298162746948812824435758997547660007116716597813438980970056725896629055678323178869775437565148420045780651830523819754497218690461238842577109196582808849139000452922490963470222702431573849920654526004943182425333153790027364881275036125826333687766163707733341393547551447398125905417871018047183829807398953587371255121537096914141511144247012741738177042103362816803033241135431822547200406092999380868397337232132849049141090463804008888975590900377130463508331156796417941414092051481029527816041349118972398987340623454441218058124836115493682774162084327435863710761165086299769670112297415212381761023335497865682991408697389444126265297133485119320459073755637345290430151463000885472330587926034781705263596014733394573197646160578765567077586026734981186186135318437868959754541787927563466645248271849520495906842625571391660478126281211260011244722613961221565450452309842238332772681619746771736571533462076965237323819705811089890599412708404464454851167644127885286446041471946346942119728657081475552672743549877117615345902477788869573047602782521604125680360261167071810776011388990342624282898059340896378388698851256912842076489281402586003132933314019251186953670041184842680035516844993971868979664177672115510261679043928092416071548906548595882953343430676134215274746227452047523281380599930807621297961179809530162334237915192985292392429785753362788666578745167373726937745996672742676106273224365119222233260728584692487684474148142884777645711831857006472996873513415448086433454064350140736046051706965511933782306707543265533496568646946880872570255586694828933278928808557952341672620106792617176031526285622257253246001899441904513282523778258943824381583743506741371169303905689558964864437337825112276976280111238073852184951241568697019111549926055308513581521043264394849181444025282356981942723981838018879514920037412697879131773492545685978952849610852715486511118236399657484867266263598892135143017648590752205414032731955482290460228991088378803343519923053817689676883372912176214883414345795929115094431076115825250633824362774915761775184931179295681273057107776736072885299682161284142385705892929626299293979055661644960966885368530398294793810731739981467674338994545385501927765687326542045409111898069079317649659633343128097667921862334765097126084493622280141027855546980918024645464212906646703647030485260440408071657127315248778272270199408130883734941560443324842646646163919573731093343994402151544294272395578840335761439970654157780385176415703247506029705610348401708917855830288311522191676032401281491274353562027638458523133533291754866956564473676173885244789936252511220146895795558011351175336225960373457777581296705423103953298847099748394828590256207400138052181009059072728585918914732324195167098888531728789494087437895636039972331752020774542617157648975944101183700222243806460107169049194796389824599546014709300779059101621185570837832299699444908063773932287977340139355718349939276349595055471137677355628153860970017218150730363858076125536638582501086450344213357796978102880997938672127864320178418518023221992086467218602202119050350034462651034187546211257338293932304084924258624061430824752388813182076337410509936148449623113120499847835568636117304157741628961258043213116337311707964784688568644185126346606277916528195401349338726371398090155124285138041513639265199946762101476085154532175680279428333422321305484080679226728648067293940697673233456368476157888494390011735119288846082762868045636014018027576430161308409717492017010674301865043122896867835477565609899244595595732873668921029298841793606295408445303168995143461235654382023940712980525840277503155751975563666370252380805576773067180782926647079549229327309816171673625620509984107253637798417279225502441694702783421924118057295817126381560723432279245034560974595035974756422556990978310272015544459653174244040642141103679963814088804976376133584442231503237319464180969185808472951032605242344041569007853465210628072718110105453977097537574727563740248602435742945169339682092940009859986253320083196547203294561590211447406834892263694393285378312790161838931684886446418206099294178232305997546399755519145205457283022931169553635068184008838707442100214106916316346668561197294989896925362659130287699781336892900354581816233036959566158095941540611023874936660535976224710265211053858249272147972879726881907854994599369275457835129194155546713988513309054381796258677051740528741826448429131103060611173324682788285369240093254171802917624599718839597590444614462344654437873752809852942731103971349024571299572398774648617922568958845001186481990863244863796047287925659848688296361831898711774192635692145285536053328214479924252728636321132615949700197097533596773840078009627642978564311149144832371455450315703315440010921588361847798158912370601044430177478660654306387333368980799068764831959557521075700493966131043687415460950035545532326350364045966450433029979316387431900966503113410322283323297684975672807239141813153711617536494539250206478325640483701681053683185810360120045695733759257739178197345512069653412136095594005335740388480722678517822177091099705952475675940259341720401743635386810296071769086015992731151217251425288737145282376335830700635378915773440423010918452200794604990762860513664006176229722448936034502712465873145090649597315597578336490423721256793801503867278111285664261624313058759500406540419187637600144100328618640112904333401317258037984137043528492052122952442426872746225881419903910819542373771911916633242384388153056920166727101683209745993737608070282270806355450064839955779560394853166921085695925937536931976079576142820363519058099883807467331130230583381531920445417741900530488152468803886451185434745591263231458249593690773081665664521334738501991449081767917851312266841977177080832389915199054713976786193930779443436486256508441611407412235676560941550321488192765591894732220438261544133157218417223652061006256553456652781855895638114838927142873398438838258022100123488674497795066711053504015878710679673941937352965596066679869851889727156876643565577538312468693424011634423416344672365257595391912120752075698898612974657873992506121041384681427061443518087908982828516466181845957741831643824294824357907762486014754333583617710102854148198102155579966017091557099815419888965482321105383298971921690586057538576001448938417815128727377713840345879358429397395164637835309931134055512776107706138415786299121823467882020438244478287232001898160630529091578463906525931272955174327282683311737876889761123906822415301117918949599940100518197118813788355861654101504552508964437454579804134882104034929009497373445796214515069530361328160267827808819901551499623448670354850170282238971319733217593970751886194550928536057406645632252515793696952969099578253661657719599150049562641770420502688963411777311245145011758937993021656214823790692342698033581965266867507215828925295968485058154473253720818014351085885452102508049318515072549073043741903319625366487328666672787320764398852587464226035267476295966060630745858259087679441402095218382409204467931320455560875879284791874305363085620961630216305552194813155288451629229888603610304449871615987729947115685977173259051786126719636399569139847861083721525398475342112043167128969810174038701552636158538366863372853807657383966651279361749052801766532873286709815781735245820774318653985585669424565826905684475727170021337876949067492089988290714513383494947785012623663216651776020428688231539577916233251003769011896150210501371457274725081821108585588127071006535022465053603806424128213730128770482265597584818429566748964659137367398234057176894248366217106177800253894272421123047047034149089475739110110422625450248262785325523799184281011937812728042740593679335505116074118139103948254157295064612171779374954733388439039191475306866432871471353730108108698043098403690959512021648305465624119365555344000404170396294128874359271659191653188929124884122534479890674677234227596431871509042280534240352730866459384152075655144610621175679930745840459012747023927627204082529677422613399821439415011197145024424529021721925352939937369135401289391394125470249951980092661584787977526222922472814725020529614029657072181724534753631662898132331186941738386769301378930370941927687826029249184409151076583865878648565162102053234118119856865334245197883798542857435971719510485877834651014202679396342967228861825572785667928200565645530700376021317140354759857053672339759277026822794532787499623124936561971732687437663006549709770725106239196161590569026004162797402989338967991381630792067170580473609735355739385583546373529720867701070550282026203938247584054185378261507752426777922999590726386186855991758973841325055037627034826026075361326150960974117809349294668411475681856370594112504052751276722149104722254893088016271590252289965620723036671089601884855574054221180270194187854130376970152592243990771097098717832707389392184372536729586700352680610736095334911945686839972095282998343105698089604849299943776573244043870437652159128116597872286382008030555942778514007727584042824174913097155756253958498321574908428108295453019765234824296197909744984357987745522331332402720917561694122848805111110745073397387007693767603224787823681094674932684878854872687093136827751990638145812957482305528413198991637447539260665708294543787370028122921272059139073785608897281654765792443101571831334405244108855922196082233827978059270188661491109746401054718750871188716892105540499431286789448044069239749371136461063577786304784016345632335133306149629745496086554120081899563142687962413023270111467795148976469224594374408180452620068355272441654916069059821549289674358894258138783343670113939463463835461120684778603944836785003144556621226295499192482275447044735231070499321057794336082202700266322484914156762680209313473619562959677779362342557259441497146706857240285217549724467616131233971584262107851603207796904907693706179740973236606549015384095015030010893573869880946233015931724659224906817296506907837714159726104704173473197448543463209189008558407554753897306803430690220924827030936481071571734497236438320805635033840727172439339584090472094678253527873229676615317269386071369415065065672675691412696073237719835049275274674113219775235690570546293890612867110635261731136483484335890044967428601014176425281041834657355435965984559648968066897762843665761325779963655593412145436155057974081354455789739153877661606331383296122103296919832638675110897860496384780495826028444848253363620901677856643984252635519752797879550088512907883121060528284625424603371943887236954971407718654338144137384010063002509639331789767517009937963218295208443547236342546554337155338102687823766757887355512404047859386658554464963895895492594758431573062554627856964082580831413609391680507587247414757062608728519324788035260561637011877328601755220811366607177605346030800787171931061006354877382393214965420414382944913464553235798083720253218773965237664540454187379924108902690983238056999621597673419562496142895878351280980167994463264173497965662194907334178532951040354945784398380675819536305710465238265882715175095342636568225992599378366854048384245839909196828827461374914415354125129950708095841845325811279368796259124314589028419177661787747587258920487581914927812362654646221872097840261554144402875796396888495396954699977077030448062743706904163282410310136805291123926020250241402593041565440900148288382659022210570140714520744335537050054763272188940578589754343226692539106511775677493662902446410238982547676853152242156359273954996546667371210816208120057423499112721166983517014593545443514574861118235045793683496567216976907635821413425098122650695833535338822050638210091021910399164300378390502846891865275433581821181962185066466776331220468500045933166413344950059906699058510167007059568692661128845717886609267576283069137879960934004849399544981495139507638621652386168248104924193861279681747104396468723107469776460335155966958440688236934328449485924127468868875118907035171083108707437013099234664365902210608846644963670385073738640053787416094209096931300070757054465149831372968972723880681527786676338083281029393969677391936256151142835474887413576819655775998596468497241266774464247249461433839573231862721298315840015691822844930011988043047291634553082180244784278251051980643656982159718502010209052277390714810258766216207526229771499175221011681718179198700409847993791284558071905907510676786672828473977921001543465416916238333004309687905723346481422280865185905190335762904182573588447869351834639640350441825901218571974596447698739016406687107501309117502713995149764841478786503785460166981142826185380413064973749607611450621635380803099953884179319085838465197436130253390120021948309784130290105980459707760120974546656772872536742203200497483781253412258753766232948016482358642141933085101573870154713733591033653681970570211183663357458968410774891917755051640463227882226630990647247093411018383081800408579655524480706249043884063693166642713137728085392061870346009066752284027571582855626339988646080119122815290995106225332144302324737091077267757735621976995481588627940545672581982879947736371568258117004123198881417548485010096318094127054656285439921000233251018250245543515433817514576275789635717477361086631724384726408391076187995474618711274737788474496139680137864892213399689931102159417986027933738700567588734735036077528699147605883295813751400668217265301606368242723466875896241429853336216493158798796906125414045541704485245753759289989822086343715930137224839109751475364455929790136179445322530552499998034388401554030058688131271478043328318089770839651929820389584598030433966551492752377852927980694401423345276988281730724762935164598990186167045528600947098744592872878923974690177144710356931599721765695909152038615659473230361110097812578556618125220553750168539968622087858372675733988746599204914893056769067633554582690761117644086277935123887834269369254490166958658139454260706860498056694570176145314480719604064139171709687817659723079486199459177211749263709648171922111445396748746900903117064998705879208301132432922958426827635332134278382434583244100179703842695039263489929656012199685592233655702301181334659733124310851672696721654687245607943281523477700585801930350693828450784140183401143195241449971575398975350562626471311423110312941417063018675065280453869166248763290622513648899667072650227980298347003446720600707041445603342366722700382626059118981522795693831580859243148490983076294947792550996593919574020674295592720347851063515967544122247348804562554580839404779800004317649588933505637891175421968581254427539436450122605768793051085464696712552611423427519657540791417885014249494558050068235944972053925186463809478578955045819502751762815752909402009301983984311646254420423729016868802572524551059469265971864045654934812010256668606034440694996183846752454635772495210651553931710560292328405519466869337028570912312041429927753891766495889183106060513243590026800335938716471849891154131403369371626354682058630616441253179566519398517496819677592345070279032970347033899052364059302597276048898870779897166049825428962312113305103304489675236892679627133350379439318647840205395507710019523864332576392036675738355609484955100021105819907725419503943563567259257722032902887759403738162318189571064376763190047913073133265978318572492322174080530075612711938737187274458223509066185417109840745862375159924673227548936442942075801694686764099007936590808184704698458781357062622543689426982241841848007713967829274629711189558360939486627201856355577173544928606991042118649473518838947323732015272134656043735879296667526333143571770092922364081524550602682978680365904250464020456642211346422949603922107155791505382868677538775290990885387456677251834747165096709015676395269358892031844094262472919975050690823365023853816902615733670012224647855574095042156094101098425867598865482391401127371506721941855238748672156726747685585711427252974228510222596871379231039894174910555338925405079296703501468366560550153193795890223291690985209003036016537486520942101895070515170053304621255130790130929907664880311445887174121057308195391701638858060207668037528229083532202655276379861364695201527606894272428201037477076880912226518610877433304176009922322656412302565597686218839856161685994214100765903615099900981160169566790092703659255890095074636430139411520622005894039468063441823495944707896874709097131340155736840515705304153264932164562369348637299834159237254584951174681331175941039119928922615819765478774222767543642296108345176279762372757140158237883324606415283844386647555673063568772487226276118321202072415080356833440048076318863345499524532034441901008538045412003207924864731403892416159096647987268579103893358254817954171726274883769734974372920422663553942539767359988394708405197268331004170768633530966009759898805345819501624643085795651270825088304675585019168240443586928208921863080889174778256048761603554545819114899681320201629753578022792880008594281351713200487503644364595686668250248472207337157867189808215151534835219573995056325115698956121163052805421686203785981026971280297783760902505744827627434200267018268249247850790990111729573031070790841435107936528926599373262129724558051066058193727734867239688025169964094945794514642537538923829066842142112776322575802006610551454633950400554748686246717418202393135862663045621267089894131670025036262297071060965327137273984632600454901518096437264469307238728339980125758090952997791599814597281058515080040770593686067436031800452469750047383675019671793368117208137862104249847597027543270529291987593434460570622778501450872429615389563158700220078656772972546698089574063111574821287661126319017786253668932548417954296270202668651159856872584875471959889808120998405838207933180267721674154746059202073274972942497330130287657901953967226093630775202079539200008035344370065661520849952895038003952582189495353027823802361265443202901996719243914489935632412685811333657193977969119774922202777527783041766270810265584126907582770938105647842160869007277204234970508682594540502694348865168205083638011444613767605635061516797801138125685142750232760603036152467818793703603811445787858064381104047562374080024727944475879893176127070467320173785777321010681767149934549728567256327835128149777527734721577409607273591428731717269655511845406334895326041780446493965535505285907497336600740785437077517765460951908082044186713164624855293992407554815823840359994229978652873542602225447353412201627493185147341251626374813336071715224129255804434134592828637838935814905190539814724016744870071142409209148646781868099436350902605070093064951303565858682338470194908873682177318430185406486756656830266541238625762802704670547488252181268314997268975784772743117202264169929938834148613475802481455492826944969937140698408090053654057847323669438628284003705016199545987692038395350745731473663360402231904109975003523112273367329204300699493611245601743444274864243188723761255822487553166392576207432683209225616010234703401816626773282878732857914695253931546707040304537274852788317759312622730347291951227945074383943060863853226876125798240449116799896408624938290259934733023549013836703116225413691654667187147773646109623078719363323210006167511410222572337888449593693779241867798382554583878644924865789888570535909668717160939221734067513121803120154533525379962923385916124921951755793197130824335096483772675262700397765208529971869689970032280322307930020946083912659590950777779055616875225363563601608532099403340462759276423629225223943747021249962343015674232676039231641409968188314949474370906615823572237665339006495159919939633381237692286071746638158728507457336207076076143791409183031331999165115682690813502998729316105641776482256704137422955013409128019824214470954495625930289569971615934248600121682393636393370790363483118023964227470904338708889698910150653985818968602039521552620277804626909278884855395213608725535306128684804356077196063930323525130805675727868521153797916318231611975495288151153003403150115601469383520034279212138188503256659660659076891675228731193414994818814169511025933175518565840280939104272533613655067469808693368108124072290616279173899441551388046277713101468886982921363579646850740035723519364511249633328381846928490828574729522262319560849977153996324510803492285179200858136596339660512195965793382320206061008114117907708132464463419899151683700357388599230578864669547764050066859053448039337212434950309635251787442999943406758380796929809628579096194801964319958732616530785160292318415840493810152032078918917859498749125788931166247255084220935376158986563005862763249426238041116512349803133769583159878598441180472214913542865441451674358830700654908337448915846054412087215508975748908037653515741793801541280559662935269203413302337754339777361502917455804061948895832717380322241537625022978969687185904061725105870360293277281436431543666106677448129081850118585146095387636584244894553513408595924349509661957621555355323019829969280382886951460486813984256750893981771143037206328201932945971533066875232919636026488787263954299088786301712646691811730839732068650694973841202504212618678613294987823270617417968929375698041488973958946328334128979781296654891817444289880301036251149598962533623251057094465258234906239902432114743988129524247934048616669788419621396439310482984596377115429750646341014087545358448880701673605251944599134303719706282170606320780745400261508536381051293429612036482362307386354559944482880111857619334216987110185766131125514259473615949322588205238238539694489423810799552627087474492409637949238923440523841305848867931766477981026076592614074662916208747285631369783972462303972273162014674218118048485085422180555981358630191756127510280961522403923818891675214169260412422448927763911153130700831987691350445947264907235249587963486673207321597178890576705467461523500258255523170720964668406225836105775175804401972973208540500799485510505638861730582236860946311924132762545919830450216390319097024165107565693018255620306813175840923046817465751799524062985069744388858947155103516011611854952553009451165791578159567376178503088660686800791706143044809601415722682553780337757702389794243199649499229688721010375426622884861779357161495158119601720380932430156621592278344484654901385103002679997558515668181849698147281546957615037879603546653053771360413130624059191041413125539419475724569857805152482929299101290367045638787148048343835490028100081788500175570217047502351840106909276026210065117607781228429604742894246121381625554574434768788418766979519130788180734920963819158402948309202622096327434409595840084724387124606796662754937049671720379381094948162467860544594427404244712282507537968640917629914315828400484544937311039807412508775260272966874620560715783664504593098656764795094503552715274082400064014033488373157536906162703795138171332499109266489721267392059800260707773084995344352461281738607965282912108858185180929345095391139063831726234713111147300813613267613686835321924667250869773020938525297946645764130772178828249966409654967221941208311667437713281349189066928831549710171767095394977383834982783885767359727535944027131079746448919147023685255039769208731775177769752736172511139704245057411491063781708979124127266774880665490825592639002814736393281520859690489672369221278093192741421861336326735811249199494020871051687652638170024626533624128974227371949224392040234541603821749301878776750805970358787327048089507224169681050704762824413647264520514925797812252912646131137455772490156249746461342127157693443725436874335247060924710426474833962454879219058401678057632334962610888305232066206285690964512778756197241004702508893878312920902326427969650331017696108609182863872285901791603259599827013038059525242401694501751103747942661394992799585991789809492510531928615807052906717796823821068403362328998907388181795504766525128685872484605347697219520809335812409612108747984705328737109240128314282548724497345025808420840512365706040035352245321426416890060282763586859235388618174234375908812451215719688448993186967832907235101618936711409851133530256329423671615542397292116997133768552477116775241545503549687257864266773483858285936244187384421122134587093446053992749203720385829492392827012633604689070714712859358091918842907097802581520521005849430701917730866479028550832829508937008272482531384394924691157047004450564069318706521525820940238445850143150814381622226733148864168039464195583592973442993041015807494731218362477174090161819272395029669932728049474601438831751476032395994742279154845541739301281871752774081617288550146970635425661502425619630342286560734777036916631300613003589755118259080435982052908888044291404414538208362355344379515162373930868879590713527087612011462449380521472829373035378574405265032088546515674037923115834648472929730994122357974860519917655080325998424601905729476560754333634275283458324751587457093774287825951859010304991815876537508921609441201095834737817711535251264046246607368997648629755910590504302357407577256457411193093878136989619244789896600962134708458921473687518008424984997868548956116776499823346591010570217934806637478664666293175033819164013425933957536550641296743614098153600627468503331219102775417439475693354813355624084778291511991749637870143006709952417685990821474681506719731643837148526781390944150384285295172715225238269881801275761126407898883851644418115865083937009710360062079708516569943851849122801465394981233509099390069799307950712680419130428657527090962268777027518861745630503000848183681807715445912762393425599044488616539897916646942875493838569960697370258337843321427287804787029004757418385351982097172579316683113018485903104590683814042758936147569184890074109601612085417896937556126905922445053591911803972160270211812448438224196177699102036330725462688332524054836068502321880546151030087466260413212928603883421211770106435097501199702464475126759496726347838039076731270320257609290447112786655938295772908946166168219866024445554540991160741700746296403869255832420786905832388223586024791875355642706761130078917147925414803370742353351289529398991261972354506863442808448490953799240325182902262765877795688895382708066370290392013379020596655775615619608039031640154987596960063617918750077924733511202956484768891499836444396365530960784215778010732833792607352797190982815088529047287940591910671992873146799853307896524604283042192431831217503561226022458709355937889930312208037764254896228692059444367821711803692566109545515359930538712827298432979542663429836072463015422738956785199127729338912486126126404936815107688143270492593830296939027446433576011427979743954271749053112567862521436111602067830428178601587998528164822562924143759943699481577931289385682726258221240637762470616604224359507474855792413855551685102995604406153075213100300477407216935424016175908370027505435563663305177006049416935730221505855319116317718001949518425076207358041896573311310244192594358432613727722026079673908987917465246943357385326023767104603178613488906397231527763408646848570275030476958996206966607965233985590963241043178070285611551081335267258149480002870575267275766742258186419256254816054155764038867755702950758717781944768648941707900989925299821867941860005525191027635402124497659689116867137428195195668217754782263168551636608680534850807974311878759618195105388746131358050981171119723743699459847441303836047427444005372681423305932218518767490586607815326228159609367202619690851361962946040091658926491551376734472711456499395011109824363208723596254831144233953023465022272013568037189140118006094157347390597064201856546647106372287946786010362848467043026870174044784586913487618789920633497505058014782374325613872374353809588520107077043031799089592259947624760861547179815897214032506670880565545542631475563379187561549083595223035142575918495955273962134280861238896891562869998451523651055394403594103697863098873691287116487014241865756533081945800693813124638290143501947927211880297122013588523731126642250331197864568541338089975298618392225939668850855970142817016426297915055687290206115913266468247106612244151114707790671728157685732376793724339296694798272483418629951258296036256555257397721191440192329055185017785227866763833283732147164745772466893569003484462342573030783511381115452115114750586602580293997099690073454779247332353816534666208834334305258671227045909161072373524870455867393151962503115407548444899615349932592749034526879310775843135038544841618634675043182265855876891953297000464863173320412561897449084822141734248883578937453899978973890007870658063012530536564611869212624559915893197668011751184149554703964503303940713793214604970225311330583122812654272184460647370519535124676918382716077579327940850183161376426763107873239721237435842201934785873129634157116144983667413160390760871502138313865469856689223313756514192249801077163157993022503854899565432319897241033764896189235070563663471548063811808122682157069681187354122335113361930251947796424884187025244010591754503283498719842701065546041470788005050143500197326545406660491217140689880877220168024476184758901705925901328352302348221040111612604061631478853153199204546189891013519493978519487537825188574592751192873410945845989099299149408666471867131035617099391573683037781196989170342626084824607855139388357858113671420615304667320634018970242640803606222486822722899179143949733250627162380621939719062114472614425407050875018124405830656134630993629554644032331925151390906602300893421727656821288404706905608074114581783772868126381656496645986259427366670894327281804273025331586222261567003608533008014024492001230667171808347326285582308494969487762068696916778039173423066704981816203810590092356321403293175538873592187673255094960278127390929711859136375250245262020576896042000889341717614572328324226235809831732522769637240167697116193707869866851564742619479636491721179711886542737079078154008537634370355339154013398495014274582691549986821317724989399492622044684255411918215270647895277097215088372731448319427171571254878592463255877225058459727266945175633088437664008319942330036209823955616597853341967317628119887228616129008904308317140720106222503369355216058939358227762006131071970373372229358082321748304619324223490084158863762355672826780328795959634970806992668137563892369626037916317684255638061960283610907214067725064133605510571973934712561718824306915527720307515273366727771245261314235866988461631188036790804844279703916225504813789154721670113722905625704264913501823750233230738689961143119707364898389287444744808156388844674963868526697002291662173007439343069284890130431627661658547759955098193485422388370538763777375395026168912185315825332581329225537577418027509907219800933860726289458536326112335307660062928087077434074844040192798058967492358555813347966105802823200089820868126919098686823281546016124926800801776814316153354588972182627556202685196731273848390107358939859551884433256818909075620751392558643748403401911221909057138672208393104014940331417039589339056430141390137224943035037760335712331320156971395331398207555919115433301956931726788385860476642809494449988965496899179412534663534634258386801367884243886512320432360092376944878696400068078732254425662739620325766234184208083651268091075095799754194507351125997687140532852805501569358886256350803690859673010406818853427276207646067165542294381111614042372292568376827784380087356827365430376001238870638876815549437307126957937482162444252499880637257915995660379070148495603927025778429014624518321287623867205681127898838328109912468040298449316180185833046508683373067758151693004253376833831604202386011334262952899874605004335102298525706504671412127448483629963843101314866263819633989359856230484810521515966091530119399679145427256641983417741802511546778235836749766908540435855194509910587324383715326984331175100971861741362343984474067012883094401374107932829179419473244573242086420882105355713208594598519387235003700459867302074307888070042168913802044441288520744206506953327425635227021418856535548392159048069780233447225323466974270459019912392807768495756333039092367256340433352853673651449068703488257583288368589490258602853917013036416557947008519877023235550893201360222087689584746621009590190088684044302439643067928329152148165783163730708693657872939889064577213620415120663807892569191492011033920796001619362474774762780573499250301115862136565969081855403217007648519002890022622804810015323281006049235371376773639073900187068314042630665052467495096258825720475365710778976829119941196821503356298012965501215382079809674108310524252824114768859371580948969679622201612797352773116661361626418059732194435432340650408731267430315067518423090407856861847896830119883524222440168092298584751978444185964235069086452017096249284153980801300936962545362473299066683254790138800901707016216817986706393838918646407918152248622023461506175387849773712010988029701719911997007582387760138844419066592950999694975789952263900879984906154152220505243517515138131033491324222069564604535018413721764757366596331688064320801566969957382116216154665287932442488136342618498046108202429279592949217272172692038428035144283289621866334009500485267438499413348828359888835165025046049076810628227955586288877617654871732505346547512644578485546274373218449616107911517500978113819050007663751728390883680657046238946958179024998022834319765185184965766498999049341357614668155590878235264821270860133840255934165955836991931995386096425627483518904062612721158870589263011734737988030343498404645570090915212235076735002803929835673174275773043375382978288192296305318549623604293065201994386742763792231779986364373320366465347844226065405455374341369788081761524420786036158727552985524460059339774700012370212798110879373480435115926362364772270148986372507470005899050354157797248000083152960844035546655557582186865144251781092390801033026309739713162915810086861393916430004099663036681914586625720487870273974648133033595402492982789473463045147389780759648137558986459828707514296468537354390574123062552651703343099499289288202630209594857792303159629754736077311501042921145019224349872905894105619507297932130734059978158146370884776900241698013409615926625057987593895587244209211594973337307525207785790069671892036242605569246862526609824966741641143143645742679444538894745362556215036466974445311748045386281986161519290179865107808861761398310343953445324753147560448230141976267845574628771106657753340757092712737904029921269975600081780358282312484763808084838772567240232649832819570008420210452323123088329188021382028491455099967584667465883264663830598661308550841454424854599408459784657044563595463676110752429163663565624447830810743317156843897273986685697371812126046704260403113752858254202719827674482084417669504942334754586036590133436993179643797455721969024055790150625508802193953840860759463399569078386751068190113991220465279558932354811701720890947066625991418371402256757717893838971236914182474364522929976873084873544964043257172807078805262229404188282152464221135934038984207703678738118525360056864789517166115176595004226328153256499812052680186883538913289292417592747313542221181079508026022389876340177331633600230248929768651636654776737396807648528461592403296294480561484498930453398251246470306791103863895701131050473562065923776777319649356893815540981323638345846031545713284122375693078337743661128809927183638337493992106264960348163661451363114489703792706523019974852187562241225461228414856946150080653979444986535442179468152617089266904071150592218495680789699039513621341347241779233134642510969168773813936582886546928177986778567908584975771782261004053292143394304798999851610258261920484653378798967892437564431859863185665548711481945226010160516565143402018563421402139231526673234448554482806766492062779987113373038168572065213946728306375468133701440040648855135232992848981073533123221349229204766463210737779359413958843928248327614440120999147738139213658314854039978519421768003832244719489041755830223253610507909163051224400698608985110005867035107845264966752662731684417792729063166730303337269999586796734757709177694714501143380319214655554114165833433114037110119019021686261684299240305496540355970083402607450521749711640621406702311876137206493586155105513470869986172218474438831856107763572428458564723769345026092076843172876595047532711156237822277447368400311504593658300108691020444654188281636378519942766546730386800189233168783093259413143849054970523175853345351681709296063298171979442513162372852568924599619542175338369547641440834767498639570213028838727736904910021520641471514698985483811891377735475438018018039464223249773545441184586742639996185128012932697218264685010898667725302358942923977529748484100346826167301028401590770137052143890399467713455231378335950042633555266817518689675454482514056245223302366976865126489078361917327710471248834283185666791874330287167345754644124647044198540093247911921042350888864605663843035670097487967794453797322510803502653244247539231871675525953835817462589606347089379954440494021686388001089059401070022246642595497475116064034703442156487660769907717481365902739729123776837067666068242682386887891059437316252511942208641578701351491760159224910931522511135354427675709349694447494725622658645636225350139519390226384282357097384941610429998831477962814426050418703801931469745353730464965373177674947182024192090428792833128785461912479060306846155915200684656843537281411290767706711898454275134055238069651380771107603353799510440519625151920258491227763161332886881741406399640588935707374676162654139792295249428246099663353447901523638664913103346820342333689796002527625173708896412166502513913518818511780749389608614421751694599514142495547075427373513100510575347379045974407854646311746400055011299265084923929737785031532351689200987546922449968631797906582220756876599578897168796424638656784793639211528536686356391687829783637972896980666574480958763055662499003558519226568017869664740069594475023814069224593721921021530693904550381385028744147726718491732896395164958428273578604271936011822766110572501684953575696536941750609528201000228360466726320503338961204145927567360595310051269045039185687666660576493596185619330295865555822446835677540729418282589300053768686114696974283796202029379466609478722301885270124044490628383422934425812363895378867358420535408835932131799663354916637144094484781076861863215359989854152161352614966703395834241668593922888679134395624764832714038002757548738200381330756332732500121530621525023920887533318460318673438248228220631808983746224055060733038906944898943621569964902169763368111344935954024910502028784414209962249776947028544358994195633348120939343302632382470413509952171464219194637334503042959808153101642621045606968523387546862596085004971295747146425574799048368022623202635808337532140301727733481685942610054739970648780659966083798793497893090492841382706997247971293779616731987347192113118224918764029846332331039825029582490040298853405517597405391160553183532385073963621127369073499334398992874166825514168902456667450738752106048116766978162158455381433264994873939223620432191653367454799120409315253917308447789190801532614293955181504273608630882952120439163475474528202379006398545100769318632186886458581137402004510293877753057843891101769357224902136872042783362628253049802501364197662827137566694345263003728141209239370404084829704502688774982325551536248150354700108468350990362918454078083936304156722787024679295011783767151027195443061561225841389940306613282985603053803920965896459640523762283703999495073995108037818135536645252642666720854462010335340328697643749970221431371946223571820465581570928297148501720800823173143314142568371576995071809554363817133094023700603227796615727229211413224909197069767202754473907367876755670631483052040518056458924337527420780983863739406666371987769694309751524851492321782383504688899717981182482853194247974421616081920679344300824303735856631008819126097606290624076745413976248317199067806601108308660634444721771056699803449413511070037457814895839413449591060568979424389662321914635644113855368862816088959231724306894442391049609542033411756146735461575499758879649525762341489011331303536887580490080293701507636855628841215680113565760774570662564963171309797191579894644675781628815518228062999133582062733392577665817133116031841189664287291402958461133522175049244418163202253721571564332456211600020324436638234280823158253558216990952983705747285913543237994502250364160536848292022499328729176721455780308328107899660221217999607508113981810898050736543830843364659706899626633158973647407093393074808307345806709167241615830664682911600535551010727406270001186092446110773898180568831055562745108271435389723409107438297300705002309730374539349375377732832281282537589634452996155230762694980913765975066312376981516795187740561169973587437828057707949553240064220508300644218094832715795447775589729345646944584894103957714868557107872244829635056253766952695409069162559299598440859917088277170540802904912825420885823518373324144379514005339135115918941244518960647570252320309557733409628888944130242441304033305216488246532933450622320226605662360792282835615860932195449811274887132741504816992034559848813552741230044520664660658176013411226361475245909072931010596163127774711399480858669462728608760977205606015586872640432465080629883890120513549298635338321173685209958103075713961483347146055693713023100379545811211312438886840127063095538757540712025346751567556284238968491805227212325214433061240766166906054185971619122742328616271957190164840102902238669103518748667608003448075864183113385973156670773607088059701344799762715480444309932610648294750384486192670176540537840857860605030189523951053883002711470871306951278204858519394046784879231579603852046247754673626147539128920910661058259593715097489357807027720745889478187510770758050290947942652844528247908207983229611948119123500221316040775258119561774424229616755934836138166370169634110106191168476744400479817555202770876922594597411755471521207271882985164900304914371878456099787255265992739547205805704413648381501790970556655532581753107715704268680812391544141067003024601459604121565178599179124568510828426018064454897637351424656736413008799555937324073040771395366673690952490835782153908277863073466868519311899260999968543962742257402574113306083769917870776755103785985184708942200678336621038046153296950105409464888075872295239317544362242579321948305631123566365972708459429609645876974046417746546626041367670800167778079843496395956068295972427957326118003263151838825885639201132653024045126031432737587096030083705282783505701574337358225115460895743751676588178337841257682294013629721132387905388512160440339087666055120046921109222250411817537363452201873208705338996024693251069353435097566966387095035105805118512335276634291269208729674174981055906978777251774396544407714911341928227640203056558011664529563136193754770122378055721718454724924219691123767139411392516257169905125640073060390348672075893506732788922176144913505217440139469092911855029061725915424829562882157117613770872106275336337413843283294793604139882678556171172452191441327457720923374038888079812757973038676276911488709726578834176021182161381822842514153089943852953462895164182749471496491216711463845786479753517514023689575699239189694489463803797729594345381432441712834404054951113775739754628193148199816968516527894770050865403655048688203468293960007411266669109001131195540034124591245393999357557710059324455080365468820271680334040241649639261520397901802215863226735056050356116871981347094248451329181765774521193961350468339488400802011544263913322368015436410215238348819557432080137713506311989370844218514393994764498588458363639688280599590550321685136452208135976980410030970224159266602385234308312390459449336666172368663867425524361855900971576195937550207021204741811779168444069389557220808603857856313131918403379914347512708910615870696411788618942559770888330412003412509196201880075689539487237327792916243096609420653506607556614028353858076554008102015630196125391902009018677322912772207959307583395194292448490062770101674614601354664862190155214225082669262336153928801611722998116747898285335144059234908274504714798067769638554464219463720723957572257277202609857516867024267242418335676237621796402953687793918333358470818951538246786105028537731656730643310802814330102301010029975508564496062259812857524789782768322641136281585748046621229842328191883382906671702905313761301057983099821208413491450319912539684560939966391339839299227007810459272960668838356748954154263060733374626613925612124296576600719107337697461827956943099619912388726202335761166135776320038252015762223271841447715639719646023566708102589529169527990780878544651275416630897857993815731562084217607868125113263645267598926150446390473363780650378051015436613873030734132278474840024197063031220867189319851595040203222157119994085630053675369508691893295948699469840255919019918762333031455906827973752453353502042412569607626502562026417821231627772268277411713892567807856658619627334674127180688942987327908973122790303668963489651643376694667346881229921142297425011926418962176025226868277789854768736856501120587049975278051760024108881185680798907221777345517960754061841805576532033253227688115511092221758737572543661685187094580243241167702028052548833438443320270289347726450021214892231659041158139647137265615347721472338111412469556650685327632236164045668039261527922049882009773334521418785699245360960936222885510689160190596253276462244770277868420035226492779124872349456120719805131384855471787571590412922936516988015845265769213629163099753502985929961224781214561044553812219870079281278320315091189230890588605917633691554362352190861342850062834103710829780158716992395713539560508447097937577310234634222613447508956483965408719802884265171060412281429305216098665218196051804023985516371350984134284430940421065137941461413932171749606031963537112308148428235839872237017116084954335295732991938054578920742246268013030872603743461850622881435212264404196502502151821495888001696368300675755896311602558331358604908496037571343922227243215763559885442692363944243056841211998250514193819584815267606294977986005646321781747731134235522852171569973950928762726376624122013059515986448668102382408754140556496609980742771543698778520870791439088466593938789083771192416815084251291005794030250578321196215765487270348581429367351142142954257466104846873572507401563380514024589464706582512085036678781219093150416024020128407445352918759632715537560067806775627949189125819530160472175325378274409713751897091341175050339741041988013151982322086329986821224575309480233992269193358085361840732508116447136623042819073634966956613686984800539918494689320477333419143018110298544660311791535413334247378957368472400552820177449866412495892675745156429787890896660535464956110449887918974243272675269508276848461031976571347796854066907133345936675779320295559670174505408098327290881353261820845637244440955115677678402612415808147244015571932704812752641471965520260220645250787891509225521540643101928297881857734817224610143475353920997606155965046453468294994728239318013560117631347458526132962707268000601432092067857225413234035170436015222255617451381217309814911898251662851511133304532612238443696374759239600707966778054475876508449526316424143123675485332510184650769850711160144104301993379291251890495278558283569624587186566426925610073009387560200127602126114139306748932541139674238188962413919554483967602569184234192935714642963123603277676278266153407939854516185893021175234935428371178180118439625723692821058747812263548588827205505312310759764951084601294336141381145877749448295773101659156844149638712183064783271043613460110161542670764055541093813604688766598693305429142470538032328798709529781177208241419078309295165781883939330190156924473716190698115448071975797571565231875346182793260025044927796484132405085820665312735112615172969168000438428815287922810993116155015622509702669686857784188694196867960724594332775083110717307224361866035402699878358985973344009606527680856460114330994315231594577538744887922006501828907430157677287592108216201665388741376921491097997263258845092914838931945844369697030534697239270854897751577950109743881373055755291304911534548767195590484802974312617661904342149153348875985906968186471193416221933222450292029522874595725180038740840489149282072260383723008444901239147576906940289187627188937490129665201952084425307359857738273871905230909119581827150897661205269956080219363261654339603004809793354512575961104695932849449642370354691946574552085659385169634464688959852580515215459584620665633143146680563114304299431212953035003240126906694001494213090677103850979771473061902427068905687575743785699618570617086420538920881873365068387601353604635304584286956136734744306983064404291326807632832800101204814679226850389303616646742474626137263980771214346536985785056823607857713201156430401285417246812249825674556189997870131234794885736155011949127845242780760854733885180969898742515532105894097292402025222779690607660705258705340132043646072043274554993664496447956461045644151518354869889041796653855584013138211313521483676297480960146353890600142899822498781812852111467288349435023832538398726826381033367058794090932267787385617628629076670598378228075497205745460996084542996237304939090104768029671940591949860949261194566002253474072164907209715604022960296618968677876597107560998484175805711778638790888729753541888246610931187137347371940669127085378776415758932152091200892163342781372458551891870472464812078783135666637820709288860829275379945687158926907052528251818021300273676094345117143706984621183188798370281649843872783777853518602306820462391673844056251165187807334594179245676401983528803007639239949437493997123858395359799415679360598228623175197999947726623054373118453347738904114186824988110006240493754826471754308587666904216118289369753420358857222987671399604869815652539443857258075393817303219409607045163200069023033547731393732048998759578492078031949651140437598085094533239507775406130390458279621271418635240966729377039543722608586465261734009912484072412926656781139080916748686174215889964665031872912504845763326976855188315236285311521518967379221956591212295903233479433278091665138604924763735301405311383118370538788809554313438552303555285253327534935006500455709064968157851947599689113200188642401724111638083445662396647025820335527444392997517572242964528972817469294253589177781547721508667307346899781551678234588191217392821282652150604974830246593443986573652440293479486229328792673953920651873242144770694700099550988193044767727588007086641571194654298250125974882777011415096005067047292545192537673840899552547326582622136933223557650213069014291852822624023114584192222045476403709875749447794576958550711807371445862551032800339036710667990601686770878072950130598151861624487503415957420332020358920652833173854637426354659559661794366979650678311557081020437222370655689277591075506934229709194097118975744634418096770623052818450044536691220411414452873662433973352313812842323441645749944023436360176488694898319705355367618197639456986942156439342369654324361382605658571255124061062005842695958117771040752029730160568935155612990414896721056115588379734881369784648945990537296715305813949897411483957113527063159262623936969268003665882195613977411548162341343719602937730499377947214393560398700249904398864188906250507537056274117863720203967249787337205876644887448828852800222576927338279073710294729034690864105293628039911885125686627055679397338170841508338505730143776817323777991654558440339099514472058688725055393224842951713720863986034986434229639925624738601754125738320129292361318997533438081265814160933047384671805231136117779073946794279637195940421117224973598345206615038561489766212771981964231753496873467906650614613375504013089797951430672403222992619971690655791089021210130760932449912014945394474766452027178309682950997774731462833806591452485672091960570993177224592925929829363950366555714877438369334333503972975589907926997847296126804379736649858928725535529378912949091519093452357211307421971059615634200246506552824947165751775157772960028326020016394219494759520520876069503590347412091433458222665908839794594280610263102444033747623605059893532686152813769790514061764515096387234772522586154873316570439053908646761768114967220004477764959846761048148176184380014481377708808714746997253722091099554792839099401922693576404429588479481576595935012142913461712335301598250668931449848856098042360607472458539002046312893446221739362486393401825270635993512350837982154842619906859738359650561241548683107944922680541775916958277103919148430566871200759337455047234456027026501593766035438665822944293190700336141703757207151966459869411384858437689625148211121345518442471997083116385187892195598322679943956493698481667665014848869048106163389640588185590605803704683874468869634468189727144841834639735193940865866819747490335285116371705403216441039859635338526086258365736976431094662224277217447807380027539741341757611037616906542221524780818026855997650583697782705968883371786973429342554622205885425985539048987150619975691396740731599840594169512539653377370614997444325900471039458857071718949934622550533664822473962037544871272880978065655401604998645346819047854262401661610872773170686912692376957488322666743516263472470425335660533806710163144313610486955373347615584785090874584559014584703507597398881105010876366179161568577470472609166004011154705043579340124906556781932116368556931896370038685346242689050880036754626205989962269581769874886514358773945783946418220137978770816614578822608272444750172937807065855864624455391146460802116112585495435060593651508010883557067835257388007516960585927745698965805327549708629063055822105293144518202431328403344222549760286483927894161538996827623214436818510262368593683562713123533320821312201004053695652990110417315643966460074153210051312673281526365202679939995144856495710935541005952762467643347138344679814492765513491326009565751001374327681565102462635780338749529220715973477596090725389113172232302784891368883104072684243419923823655203436541952151046975194990610173522940620826821922068048523678652209297109404807098917345694233700480668868014099587810606681406490186930933852278348658027588377706097427874731306990043857819439294635615244083906557549680066088522440662010629340364946082481524176456475588727792899751286366944931558497235555274694098797555649095031313666697690021223462712332772695962855617520121482884703702994967966412458174796561782686956340340503372725506957211553573936245911289426028893456051477652045572127204195341833900819763708932250508175067498954451243972879254301693325685964510796640829432714493202440457683607093245734828945208302755278667705300909850067329383857352174699649699648504197762499837996288181306353729685675260993873275244039272768838728146982596394637311636202782859685110392241296585389300502997214082374831444805557353128694937927751209395709890760398626784105105182291247793251626876286304087131947629079640215764171569003078876654097392713922601670866654713164444432000239586272805333914192871806072363315249128715715708522369763634576917846123123229653108173846336532465516889742527587089384546461052752011931928260790091042453443148650993210874983377198033341081204136003642580617374632610999597413332694759113453895106361933112847543059208263492840374025970103237726567784977109935583920139134540729887091223729531553836138820514991607284431940776420283689722688402029112328617565001146777172761790250220081830342056071102388906471003742385405664228339121236547194555779002748864637999698805312777003451155219317914562951802571221076277947817481373033099967675852146652314506515617080053296805941673992773406198790642834791297526386357016488091686090001487569258847223893366994775300473512506989460658796843082625395266727069252010515738325128725613934632001061814580082415690285840190435913228477578904389513293223939856771319781244002400712877208496906424364914808161973612993982301537967885236529346132094037142881264629817211095062935645020633668684505742422492428385800925134947998604541215435133529288677179169154796756627097519269130644105610924637910688526277736300648811093574202400211665050778733099191629526487630298084567692560294471961020637111398363118803782071964614046599406109121005701083106395540812930808799474040389589929558224126655253718649535535170016055761207741821676312918436561048418835735087869270051841226531682966058654235341337875909785376531602832101380297660607873537631137126856624478388331915957406509422734647346530959845699819914503669070187051421308308372677703126988219410879179377710222418503456425162205043332632900108512280538649033557582842902967830104106352220796949600687628213820930064563629886434973127149429576503039209315936942041981155360098681316518974231258641039879776536166560969781091334463505880676841357013250963978237328675532267784164242560577455734676611354934555420929641540177734357488860777128931063934883230840773977688522415651786290525355560279181509600002934128299365094869070040540395432497599474536346226142351561825413100466947179449587322386477376117384056286326088375589472669299034257010812993925438471100485131008053516501491064809111600049014051240255584748042268195709736184863859536353376522029925995525010518370896923392104323361228953481508812837635114948037862724631530846418337823824034001385380280150192454329611695396226192289938915837370119049177645509935271254957544392186522285436961309788236441974087734156384169096770949784262040452408027088470401599883232259665375905489471078463184261157930780344472488680810580183872881178098697515128987895338913167363743363402721798251893006673938821639911104748676357892251915276947379544566755411638684287691519836637569113324069262008829712554724954552203207315761798284726965496067080454693569666350011732408284722408856763505039937408812088572922356134138311128433974794972999539673392988222715264725913164871237322499377226063365035134614122695951314422270591362436832669232682293300084222173669550559611032371414585905687452844619714329164858021450341429561642036887555278654346246062329635786500895430414317796791404993665268709621993145669448813073845812085467868586691805977923290133903752240944228985250726467283247633306140551342420824794414317027494827236773423002487822450422370977152494606584669819838219868950967733242747163092354781851314743153959269720976947072014670935035137087973112940326226822856943270299368565418987105305361248299343844252471147083544393875918505156691006836574171082704938443871437051494914339422865697766566800496387106538883081825680972120596431520036840648344086184121090935430561045846661361485114246393821166066487261286742543947125639312001277261216874101460002623168553220040296337536872005465973105788016822540712493926675131627446215809594535568988116733296641419721823178970080312760624719030853190492736091883372694001168622761769417753138727200193955116211573587956526548571354065184711801159709239691821434829853968026559944403846680049164632530907725290634031135424848452281079297670471518498578759323922256087997518641864094718741456503308791137424114486041738085697117602492543903082021778523812149581040276717264191508881972188911078059589814378632124607254292539021629523223378034107324587871827670656817002102690983728760947204652810908206035844735282600154502203512547246789177539026314606702051737594618774994186453359358698845134637010960330233002346409633681267538333974698701482570550218523924374168576295684375074421760770999341782550467413655987690536871957809663016907317625361935754253678821710147875868025319612272622055814641227077732207598432772125457418486618355844077353867860153242852468840991323503043938519957074979078186697771671497821516946156061703257938469157019582750438847177655319612161295033170430315526123588322765199747572673794676048713625982185616640923680923630475723300677643136754143992141817530795232137790226347847227131946198787413672071111344994851255467400885678772259984152905952386166620033216070031073087634436827199025775048436900361956981932114346884996028565437996610639421459314496609697986579634691157612792688993919944519434161287052626629021658721139575089629400302792808247856915782019145264595292720886794033616215992752923723157917241156377697197128035339325672007876225936805609287759840108054403598257813277731877429815267466524424862901621332675220929154660872635758375353680207707115420216925325436628355453117354409870809032020144277980256715418017039365020505449765686557012568869716787616713491613647743445661450875355569031285525127901435353950686727968513475279719682254127239398804497332894211797134139438861329812301485332358168587833557477427778996314741776442404695152970176245009079774289707601155639590389868895892586703202046647629129512235565229877674573898900972336622319557013620235544061293607995839825636394065067060298827078613651904248577629891947528108355340669397205110424421536750081483736873580405431306182798155917185709162194379506912989864186553726593718780819481367081260544862232683569569260297804364701946187179723027257502281757823373012922971182260129592328260837142834058437704626823285736141420102646065123668011448641570211457040879158776297005992618652150785157403852457794918493638363448338587414048383723430714929409392547606323799800155498611505877089029432714209196168235509961349558499336764449470717500561932449577419651348429120879064526148398200655989781671495776489593481205955469856198737293352043658819740918639738118532041207132375614038411820369074852264457104116508772746690534799296504696253826946135152854043131582709382646804998314147451247151525347033136949364802295699861588919634597666786441889590330892070293541135938202596030340949621128590769320009111480724319333609932958238847798848514932459598831342664639909275466975551178596824544120607337647140300711682123293530890183061938209030280273017657214547939093602842362475034154536758591901026418910339936996872738143656137863847171962480251417044698502291217084595994961430601620910213462818677673234546276986642547152331584220468776797353689288411428650844748773732001470381003814896065440329603338871720087982267452445062163589573968454978880838613172738700576215059916226609809594031336436239160544157596744625241141570459062134114567010284554644143112241304491526113214942264044182397177555977597292340343780978432481721605656476886175406383069438086734655963589220819946928372507761888270423218112371105647717616146144960534924451615101255098395206583543507639343591421935362906868982345027998481813376135912784210245866587433093149530590966231551750998071272789848484473371875406444544764398708759835324323633239365473469232682612694442231037327969486891478186676206958684860334544265657758475249003316802712329939938810413465553054698776030956748128123776362725902324470293049356644868614649197451887902007158024663454503957665274604684899290855023202563834471285795154780765187956417887271349755049710447549996801222022804504261923547405498455347794991486811410270810185566979331432453005013433859071333766816724651912964288749389159623189847338478849781463144683608366558977902479185268002572618291429665584341205815084846481396778619870439737922375920045114377601159056853363566616755145471816552656095939826855102582919496724661513810287648272125022381109965608179653412890735506515838770661816726132467027426658348854717726081721414550581592807645394166202998515662529513365605017988784726103273215477076779812391543323002657455327544825560262667030688457722943278044550823396774553319657426577377050824889485734657350222837022579741923584422300302890350462306851210263372994423500728318965064281196715130075553637079577526074392590290771220560434502320336476453520546887303874179777580820797977143266206858449766765014930704847368153676921402742948979383799889428243981001571730174510934429211101127648695703246803996233819085688363906372431073176148709256072456503888546277992360051465167463961611942975868373593933401787510246683273149223343481638648560020965986860290204212593907333575849463103031222310414052074066378895233762885384319526103237499026947677451449455160160303002538470577324202541061317868058883797363293500623085039900618426829307045265147559919341797789603931057518378448783162131411624255779902864861696166148639391060856105545612208361098154826638021183226430684104945139270720452674399704091883991662411098092485018761165348550113810217806353085769199546434764885197252068615438995710597600215918328248403842671899330680461494975560673794130274222658101483708349979140281256482604899050608600894019373811622779342139721281558926011216638649809392202141928644282567611188924919840921762307929823832847530127983024129283938218956273747418540625403048415583925346794349813965793146588882102763469786024604994959749573139329856307990988215930336903008675551472334178165973543887862615477814238513651515327225348253554812610145419194804734000092789962749055480190802990609106983863410511638754107530414669755128798740396820870662801255552055096749286930321721320234032695116750396444496885007334054674628279603308489080873865424102840752989566326093348111768006777544107103201508987234387432335618360403950492497145235635044655929145595779821996526520630229782755723500221955476950344247401860980554623804297128875285192300777077532828751684180644257824816832597293181425773226065575626241233771719611012351576780516084091988623214875057418831204155475580533657734529844522013714786770157177500212496192609696800926074227417737340290004616995383739966556532597998975393835055468282635356067285386201522178013862867439128875784483760686315321295269745762021529283926645285424331653481304671402771766492235795940328676635305939406974818507431826174607180689983742414217574877785733603792000840797814521522041942836500914739752970957740766083351330537679840548175354944364228937976544947648317291280715447140253672777934498622348905683110783778226473815909179508270254375813265094585307238442748499760187891655824002590693533270823741093597949853222387633728514034098831456026079892291927880736832636526422713627814197658438639694635282254394665378699848304432857011521302661929400399677615958322564101242946315060494234983682652950696731195572348730403155282983568834262134745580086202660685333581622976642081593309945341965856304644806841442560567909205571802823691847911680473461101929826065506292960762022566057316052378322150050587710078263633933993775453785539473699092454646624158292081367475324236013014913202824926334079419643474244255393899079725042772609133977538667303501263954218645318031249006193993434409505607840543191686680550656606084082945768360738950813333619041882287092641694652069798709440991422126727570373955501843942257550281456025819207400824334177576955620209798790641260725170583334740872023074673444910814791820882693336287836141578542860324972206226126696249451538704165554554617250879727076814772739634180164539269968238436838442505642693200614267775185084352974195124637908319994172562594371587849543965116131036555434343617295410446935825789066419440976239521045724743069978329537633151981529269883835922268274575876265350765807116608639618376759893374621462351607517654427984506008917480951328973373028806057771725624974257876605146489357424174429154360320862182614749725478076920472441269049227465610530690458575436349717284629174087817566952573314084195602874243152509536789866191930039484543575641425035876507906581008516783108486920882736389595154562727916684781007962912038424484782566880638490555681461661613019206914392661973059605722875737141454961795858849317108136752627632396831014474803059446980481019491191666014816173990978571647544361054714346654533247403897135407078967564096313343669264359475185768141799242571669964760607603139763792587085234728044315493134329048225271724217296943249076037227239999319105471199089853579900135044115415751243777008018243015343392440123462194151007134520544834777035736248996463118587769085254228508142969033009370665313008859891905836810267881539216320099924681633590667838989345426957180891501588706321597008531797861560658988668928483920599027245690820725608860289733521434958749484195436226072627840323519494017229645436114914720764458852961460209208468427631021456272474131064164635760314252615698254560236077459080210554376265998056175587601493617574297422878724358515234624559652480200836296844288418134877155707484056530012129859653165690839377069145553602895165959922760178230518240446069405100437138800632543872329613953556150066779667400883394293736979205724692218279269635633772937860180036372574636292305834711915402394452415455627061801061539622053117245221516375126470874761950102390294716491883898854304901388161896566170657730964486660973465284454132907283977960405998294586848346024002246308631124224566701765854288803682906813522438282591760429037508830210109790713814865428320786634478776654277954351194866402728703142043339536494138551863433824052380022272461680634574442324559008658806663023140856687773020768462815836728635132847927081478693815867447083450144458553892555922013065991731412097484057505510201743152494259717646331586693363375260874829931864727598251191885219368779874802956870866537719005918100255850243750211469945974403541809626156632739991503018057150121194966785615023071997310011163577954392718619754494170020229447604759106013373072625048794494989830379804816926055809108252522111770908037480565073659921263750318192188992874171208465890236405122645857191836113608004192527641732868214394972054210702007105252531816810882707108375687863277114293910394254964850529017135447234576339777957172013263926083180120722267013725740659699617250127231370157229964695650336219050917967542718169525090045072712244119917983451331558649836666004824365205427748563971323003286868753816662595679764302349906839769364712548528120495266990733199639313120445401400926820114230778754941939040436113567895976434968869570816366267674299598805212726231720487399111587052580879478240099592953495886228198372372854127329915703196905559198329760685068989489598437023814322060577926781285859483160172597163160808510709410454328943207665911761589911185656735569227964162592930039212939777325400195622933807325053127095179998808240254871918461930709801697060421353291053139666450891060588424577545385823987083388704021324717451247761569531007979348519785913512145484945532673924917189273206817620925277384894001637695920299249425784790203259721654929432601713034820032068213427983107393071457214370224070132911154839899020558529202490672757806073548051356623793717174095643454890780378987854002553245033514449104340657603190262465480228276367625323066479383548590049760096786832313517085961800844446925691516961690073552677264878773594718550793012661958811597557928060908911557663721149038467207911688791371475952597445470255003975864818969347590986499573695137212477761081900217707024836084930871545684748762005350564036107229326381888525116033352094971346340268510322732423593536933998998672643612705554212979107177260096178985791094166748274097092790732978823548348241569286693475487556975662717928181527750957213589291799676089868076694685892576267054291623794403084744642219389793033473059107321288599120287921423112473752290104530454166068637620839762669093740516958530872535822697359803395501105476661867313371459539710282000008857971283871890908670436838266309836844755713215607705537798435340527795843951818668163984585456218942898508146610689017197407266877821272347848109039151309396683686744918774613547013404375980398950322702441722800003436271202522310148167709525339455795714391601963926647733393054541644692306785026064307447991673351610158519696970582656146637547339036599863368813012898500251219046893925263325335394932985906897670506896093407630813687913772488736435181756961244780491629264614532022605491788735356562506715191970112960707891768433457238198090450931257757167278639047297664584279556075814899378182653125812379827943245678954901327821919008808841290463113964078587574232555802008072459806191356410042138973290492401533142888537063391579934686109254004713324203738630770405034814969367957721770259064571687836805714714579031786039514999294544844802225124836292574458416351230413828508003146332768863939196414758299669592323476899915073853110851198377940773318628446123041353852070554835041778662029904766078158525575304119808182936740228523650674899096610957524401216144270309348048112807452185935164374395443343391718516913923897343952558742311669300081164581011369901446998459423230628193460600933214806101890891663773398686804355939961059109841775669544487825016744707156679443211467488449119680171351873173241440293010506323576095248251009230552582757827878267349739236930980335646809418671980917532006536016783613072585299948341693738936709116875750134860577628487958932078314297754212918655087380513128654562696179607565727870476554495982822338973312841301475068259589225652981389475364684724663806869509253884261261092946142165920812884278288784871984834219371818836431524833119915262188969445743341834020135988080487716973928851584435388847247074710222404224661325440382496936220705305402073914151433340130082701560817518080022699964027446500605802786010601208383738585884338692927782788245812268009854915430301737677392095107080948178908037605035247238854056248836306358781795606980486370456665628720549372981913490730880295009647766853231614216714162641967876757489842268924216182072808505099721727045850541302759006743037640407451359281693217212484808268029193977895116049301432335366599064779480276828321305449438852441113004595999825724193765543183170986188637603841787981172826026634784016629180151030240084346463636246302367083692296807410354909664233856543267417899289366822300575905186131994594457266227364436482233098785377183747384539900794486037655350995267347519689555297196332510699873205376438759995724039587743558969257467109966174083922471183551099952316095576930081248774143103931000971601229416105694750163559350163692003278046367665934723463182451025580871052409241564665251844775222672681156588049564932540039616771231588061701582933713687518981292961368973352018917171473926455300422407200928077077710998217715635565188245808870130118723467504511875817032217762420562008477220784512834500301436727788352502452652037589526747263403614316775358022583018466135946901625801857011000519493391243745084596478039136092618319575571370732794689654962483984994280844438502566227634561793729505713809415990836455178822828566667158593980956542308287164893773848909026737192654752874254748129425335460435512313854239277713852989605542192541268475465577716575291598408895599602210334433874425812124007953829859229895034364519956274322921323182334231944634855034288409194240110421263105995540708164470491707789456552497284263382270816382338022266386831112693385456952675163601268462559362971080203925384957871741996333929712650129972519633583606878198239464857006409281345786309911434422644553283824973123330673946978099466894465352431028261200739301361069253147992550894009201209429105209751246874982834034122306091021256209273787847917174032504987443461454977641184853492450136960226136720779531631540311627805878798017138681487649172010814484085590763082815069108269615450780078507642542093961918627092038467537879186964934714201144780496637323414970739580886580806259817045991752172883676617851519788497843529552708483526720650498255654957297458418656502106461406825541933285664133488155521059770645715828212721752866044175168726971613942345972651120784535180797263624623104828444020510526331310388064897249226976568274740824653528708514329275162075111530085613324447853218163624119262642393187795708769072082316469284014878036169982155370683071450217909176588820896217584730452114975012667476412333929560922913302310825540788765896259698313304416345751079918699374206197812052938147815084800639417363264007635958333385265776596231266146448006370778176941641712593117457992099696402638678086412723175972821211303373252067241319139732880456492615152144673431231125600737727131802216810881205344629468031860154138742662918700695031965087923129187395754763677586948031135689895444028618531141643296830919158166122674394719394028820944117226765362111681258940465270995701997165432610918048893864891708223024947044043284719980758043129844267104875707477568029411349158421121286297553419395443644474629381446167994244984691433341643965640515030616519555538867116646477843834954272351150977386566594922717856891074256508109060005299196835246053906620588927752760206437531851613909905301000614912652575083055965531993039865850682707610544030812753507089964276406158009790970271838519235944847508278830917581090660255707033474563451708700639287446242630243267641371533674470370263739379905023472604732646187377043340288155007717023463505921609078496838195317475421997203995421670938233977641659340908553441182858521096939178166390722501871240186491966848201141315414678111199979237234764383223975235997312405134379678986171121444261042156410284862330831585715973680217071005253233464538157228146749307854298418012054441458961941896403008177781007167365664815175825009924006452273753958806231174024994609372613703805697312663450628790818100955055071403995262916248916263688886981930538086200913281338002734245370007068876576448514343188847148825644237929105017905111784940951861017021915758981011497197595440762581576956063849128513808447327450343562665600850915072802352953331041063411139803620894361075863867671946438123151173850188023699279195075644344376473176409303700467383615738419249723876937816949428403389500227554557518589951833960965995860457861544378980546436146750060443952598766370745888098351870960931573392617568099757236151560568915159712367020780800757147961858520879243747761158907547520676084130869452396589645097550971508077655399880410483587469542717512511989526986710573723175499303660576542390819251795085565867790131501106569253587302764889671039893747419493543420878475139652905911002724606227038812007558130331092816292014358016480653799777279861345047379180766952688185156934267364486679838981437196648019137487490004468565959488714109955070449676867590899825257454573539243789701329770252823666536558971437864751381484959904865357280789099767777675991989520949851974986671252103504531655026189421330088991558256120853687242947130824689699244943830435808669292047661482592660217965706472671793953120310514817338533490487722261885465291900838628256185816520334029866291183456246436725178003685255185650543508536218446014315861986507128848464208264516732312274533043810372502455067246476486299019438356044284842212657114838903889660439889479727417760546514873244451834865054455920024137718339549561495560196675032808070615736776379264045847522878339301517575163022151044068371804673320719570042815691012441809775784433991639090731988089215289422573256989178030794824726243565495520208016491802249580477465044249192772518092678081136956410296383666853397475732641654722383548623532961332144677069157776301585769605979199247019735243255792712061431590365859493165135415197553599878719734578522075700515093775910648638267747839165379339825751637032455494347920465316829046657813791358499630118122997852803688259152147949500234827669668970337338434506228646207468168688702670894895814958883774274284138582592735695994379704513524467850272282749089433869677028383941351316247834402488543896249614329958632879140292344707556763817113739345462882650126905426519143460864457404265954517058619225991569309531672115315232498371337979007215502034579978868546922648303538822173972200963417825660883325118953245981293550191898824925857395032855783581363380037690453470333499736028516058065877166213261605252184422308179015321491381502167023280294653384456644401512830388670492978861321753533453400615161423630526049897735911108174060106077372056273024068131479663143971418317072987755408021963047697606678179848612291373130354027106706057387384041940940937730050604754154812742373838960097183511143157486751331822448745362065665545864079995525477255101354190204165761525669337562760428446469097275589688722216089685235734647952019653804717191047862233593216370975464574791783709902253635750441708627921541589043114418103523710947177183740696176738349709595252306610306960549884597954163399209538154638866934358750526911868575138239584602620528852556236816091425055781879476340887684431717740146348861186329694792127090082253601388159004966370649772770548848011951163059228471723641967645406334238953469721839827535448588272134813408325173197337909389206434093487991266441966854029969366159879732411896426837830338939980777005475141600143106822042621272227036679850029746426019414854230599430542512970567903293664869714724284422913934786929195629264578542245700748265837157608248698039430092530373336112034628169701173390419256999803015685118352006593028274385516588828527369873023507549657054049559654144802690656502083633509357136461342644466990935452964549197627427366532732110665169768058663848125855015676639681401783322481889514956522900002161621140716808973165954574424040145358902651305302314376523544913480113417325886565403278168111916032163276688807164394472809924334024470087450225331345510988110730770212519442365792862529966429219744440975162260746060415022157711131458395744939768240399488735393656973708568745073492687585669450895817997713492922230726623826874814103313233406230981181088562058609303501925904018091930354516370566926040446905341413444372618187572905551002272221204643071410452483558729817665435205533597243307547708018337980284142677859100349012169325507454088962735945429608168618778937157680136203969267089366235435054909024228328180183950993095184790232792170058380525853216269885659453181747246894459569638190854069545525921404111180466909496484843386692460638051388198086557460244340643188647663970280453596472992859627691695154486776150282824000411028649548555818386752459190477757266992812439125936728933232865218796017480565944724619526482775991788977431421819238459755723888942296118908007369303982980901504122924412782184115185654897308879363298863272324899387310386423111672518358182007105070639109672760014381894088419592607871640484786743185367741252557697744551741192216750973366967116923133003850227538842149485086799434298090473178041378061518389162437307842458372468039552868971104316090553638379930255900251011397786908911149461319296710184150144087568726777330446173321620455324545058333560265008028109355153726058752907046960981538193609666902180629322304461540460578541969862649629390485210178547147037157503706952066115200735857378838709588061119556249467172186816471118663992329082737677368340077184993675141174929327632676765147856341145621817959289199603280023550309578881757932087522528936853639635956786490668074139049391440359728149408596007192374970738791972595337951120754320247165839956665894869143651207741581494524688486215293703221714505445485604610549666967841330254383586374386777377240477405546986711861880179479487976389119855070218732648821513426174499787915775899727672021847857124149405630997987361395290511488141399921980886271269710328744596582475356803515043227847799489475720047401032145567900586214501083801314739500524471027553831568124368663453706939485548545366085953148261664346111114843206857747998463986945471819832964314001800835716808513284816998432779244148931976556740580938832675835092564175838237365973911619047307922612862330048951583750644053714256480809811032235363759416400686048690078323882801579837798412723143625938968652908991976239567665298631846463173667453396994536353839003751196841154921053042554355222437962053263393416765570780923060455400908133297344168847482412574176772184637667383897099104588452784819757724963605115964900358675872501235871440991172252562187250224108060680595200711211530346565835206053136126640349364474420662386071327349762525869878232982035032738454272968467002402982687947321686154357650187969595647520017312683816460005005095755156321815888252164360305277613720378633920493049880770101331777883165629625622814698208885170288042018388808476236770148699023697121675396843293461996027692954076382308216905835979254577615378845470758196218471556841365199006560912353289987788667264213073371098166527574453287360030715025982353382264455786831790967396796205804047236105322774028851895047116173203206244580058113300376460714568026993536491034421771275130782696638136493624747590704480317776484496367711821903850414154058321533332459964895755164720652887031565772409552032637719643147586910998194139594991122501123185782714218254987685447131584076533333183917318340109902396293787716074535579962058172754063761578926267825653199671372475334003892956377818908635088651876466133524098765681782564459512713145109653874443431157882166692455781542192284524576567626021884142394426100702000558038406928662738070797410704459821572294286010252713093039032456866128666260650952514870907201392260473038476316459041059405427555518066363692393309799393984782842963040573381595325732779677117100948762871059948009902012051250090597045681752113628706842330349793354759882364331767012532046670969885518235397003813345366536588661351225589185440924953872225253049720822886261973830307448338158977149909400880023338381490137011684691542468823439760204475082315996453147872669321290154074042121046488810455866178177412480859165346976312533745309391018574734375762788072038983529526915192428304897838934135312143898311010827485356942808021202733154980651923016735624941768499565238072974295523844458405486743466188825237382267231477926361695512689519963472322484852995893687326271951337087387899816763274292750512482361819561245711517636614167882370114819454409818826600414469424942939550330278019618442563777024391761914435231954561699985949648819912829652771089567417489229600840693384320503136224376512106430489901699941349865257705306001603298512287565092967411265521765919784262499150771957692668240963300202128184071145798469091670609573574382560988878351000142068744010187174418167644248848994678280966864509297784308714034250425084327986231777579338645482722229792611776173647625606442895852963423691582156057931604787018662283101516746678346218484857497225622465714390051393934513677854096216093569528662166877970257214243194482075157827089038619199674926715392943842761643302249772095881673816351139155118926959886989293460803105892773309601022222897751242988896909942689743887741634522496923931723239283995611065671644234977161092601849714211963754488541154001549181271081664652273695448365285014316876911358841950227673787914863594166940769818930061808121794259217869165682651180498863443123482485127560737341631711296709255951760601761447459628107445059511162929045206229123977515309982987365277939413384066076441851066726717052615247217580284623088236725092171524878954682053085818150511265223550241263210793511116273851538461243800954915606758191848365409896302676843298268786452049786836469797367216308952157076307331037014161100585705528821210973202722653279278255636719612457441457536744853346361344620405570617101815642106879631459006463705906472587323406648408390143290387420101163497803397919784221304363016046731033076814571501852226540853330363068811235415255846777831544480040896842467153461754003521871190333392291829469547373899210674934463095351345770170847501880363161393265378587640981921954041253887559244600009632717486441663191507834442017443267698511135727090070756435348444130714836257621269575190108643927726639333377448362732876268161449164851155335171350296393265882234724149601052906010796848618465518757719634090803484622886860743591569281066450194494645592489061097530679805313760383091156979372891703763356312113003029603105279323313512686583136259232945784525915042142508456364834096494653180295408475789181828877714620898865822021630976958912124325358282284658306938450840576228037518307872372579366937222001107322086052666202190421687705760039401257605476380585370967195377332647320718759595936091464532991822109428757297449042004875213933022063153349759242617510504042118200743940585062937093707311867417865035489519636184005568015422541070694059726246726093483254615865006818210134422514236442597320325412908912958392177179292993999032593842980983384573299991988667831386255076932669599377975339439005230203521803612770877888683779808266871841818789687221185179102966922041721243167701505712197967395753850524821826793465256739066521827449280828032174073475000490943072971318049514352153440543843393473025572996629093647229939229263145555496229028295115300775236308277816023409714594438320216631304146253973391856729574547635721197297957197896590784073926327389413778209854545244083771555922237314287981271024426717465940363164236588988901485557502719670759313746413756083730618384888451157405884829738907790944581359628940405882390121736244340135177583399998874990056621813443805326675961677991431911449305273623337269212993653408822639095429661601541087443424612627364218702191544431169499725966360001027872532863736372238536402584161349255088856957993413166205763274846117328812173640373695079636176541467833107969343366092336964546375049292060836420230126109254864466235727902131785914363187876392790604685541972308899415406687240051917490056473710646591499464600395815647479277002719439923949995610407145523565059862451065904295391166409138653301744117688939048259148831913708038109174692257602348608979931953078140652711324812312328528784089690122638289522462196276837957014613539814371200758200811635853467410676492945952539557530971392061785027775195856424845803814297503222454721829984517827811141914245424788546147222322899906614431828669679721653846319004844568080111942224761653436509848965533608059462670500737021148107236210811874223139823055610694086096439279931468908324534175530768858788617642827016735698164387155854047070851456322454595719627471728252529438209050464656760396799851953141147588770647451276410894838176059734835100887941438423331333207976617985616311205510888877850314289975436847693832703344593913070838319106238532865903825406637663065892594807924977815415749599658406481335560561308288489964191229260258660292902551642901559512582865258337560821571202860502083370252950060671249202438730465017969800212374303709416165751806144067688138126310857170057794635021727073562942301909828836256353945582184675072162790749395170364080263538300415126276328834947637918338060917862262756408823436641833532763903577689721699040584824708904082776997892235428236062988316509110565459633932428825738862155202811248246748506978483983239470060902151118805157803547533436734974684618132871182353102360599777007220457834550970595221246738934533369700854301904573615995512364700950721149132099277267471541907649535918149514675883871127187019234425382712511068971856680547183586219084761981780645670182982851388977880010840480189202889426108781508916231549532580347201466055988916341289949481474474140663060921673843023116160077022621936532457897223426491281140786775771618671034090475788283102858006949829645041774534557572738827380150515120008721193122335104137748378299377360859430318082630614798733785661748004748910701110704295315559639131694612949619508071340372591113608542510173426664483132938144489044834302567667045249339847503682535754821638805200427412142607410232967859966374995148352326582777758950723940817068508259148367845418400407531950204240066040452183326768620663473876886818515620841335829287694743042901806049465955224594471405186635777274572434150131968559018923509331679511880741518804573231298060237107805787117687895801253776630623090725486224584635589695661076156462509683089448638782776870392827986524853525117790204279761270051073324598684545567946354631876380023915289217967675608111768183016633267743395838311637361950729994234056696750362177161849878661605649537387774750659822399881117043623659366105441413187006633500851363685580714281672985007560672629200753403725235905380950544683613229536449261735557132063693860323723274915879989072875244337469620710740595793199783616629030131841955357788263120822442717763323963319732707109147717832151321017181165980576046124907156265243281375803225356473532003283266521866416748817482291046785916912494325875080158054086003927519699221986743830104674328344735176872378823876642433880332431880009275648947643388980059272575219920077588022472956937515377820906422970004839830503995094966284561373343982348539398809178989372963238457213486282630698664053317553856900861727152129559845456069165303010829165955357145785981709438669023298023339703855591280974398009334215503016961014917813839681689920761902191951407807734664184639860806461613883944184909816473007976950754061177158340111053203422109708286126919856754033101246467387374892460113869056948629446993002667000279767743705350345504974685574049747403895797027752281719489066494929609005054672979124684205355324140718197527109343838895311268303566891964971889517361523954578152860858223060431864677233614066667675279477327028717023712730463427502242324668109020341500644760408691980905223932457503804760080827821493952055456144542171642844298208955750913597391084367096948652368683516557203397679105027721551257125001589398272387953900196528774913587820454516164920726689630093750182049590615843806502101355572869905161911238892081382965997680962700029369261990089214756174309364481214595189420309446097112496458242419561309966383776382012207879393959417408276609186642153883799075821839875071596960365612979898242739878735008559813582995249698214389129268684941144066280786837095850459600089765996771014437714346534835944544200819476452767798751728494270808690777716505726642681528707005904977462357012418895876812593461069780517626835993292753153598038355290937357717690441518983721175650844210379627113583001330253929103912497518713081209986284530943035317013103993013123883445970640602477631405375293878748560423484645474243029514191377667911552965162442522671542633568768959878288905911213132004711479590137226776820166596737283384289505399879256722779721900587858894692808254448667349395909901355473933614187824270902411569601161221653364367588255294495646005197867966571311589933013313186317735792646980215252456007350051463051750759619505368392804679640467853291067276047244135695305456350242720739556534206470661612072609502000408952868515256662674211658994524838173279160645607338435948496642434859446092098047105958271337841035482376243030993880652559262969631022454576181476430460443525039975552550029663850024631355932419080951449782539612695924633760429535744202479541075533130397021410841973943006495502505522359056041637464910616653552540187722626284707248073653121514333874579999681338115273019006675062041146626990558549553344001588902133436604865399987636646371184554718906788386292947922837854200620002836143114667517701427170716191928393832665298413855589478057886343824219065443310769608295171940950182209106588351780212965834873094059077571406767776714340993152649018639229413781216292709322638153129076355619208721677052040057557879935737724958243064265494856937665718774275647243006912957722930112040324965752412292923869603253716251216183460482958451825259754941656625488007249778184469192777098044237943192295543396190390882052126025165393739500083560013206388294489044156818192863045771893725683457447533071881172273872674174996549653652317927079990168104813940231321640970014764253579226908997572344509360766003171954982149177215410555916421517356437316969045491548805372970998825056830768257804334103569511510236370147657533147075702587319741006522087187209900262886652639161753406661108776066360213165131868725298414567622704987417013888666650146116937808378496062497141613884078170438756539117070481249760018270022516346388692582465764419207984635879639446429327561077846548585757697679668741428430573172118845714086097546586266269610932875059741290896848780835441426822022648166935158844139863518137703859147487368522973264781214902022835515862745544147726155928905022461989407741668408260812948049347852664762499865197078720517270029392122127677466141562297534331021044478173643306946525605588806774896822074864606166289661950050375578356512740310881745289697896737080497738496575693645329484692936259860484813391584498817718019757317932755136412961788384613660783087315209562231894188557261552970907385130914225183783096964513535282299686704459200434391298701323973620350153888123733872684395070584880897151732366419565656054356867188162177216735641748394921153014415877253191801506442290555628575146112745756986260692444382775777098661090611021837377850867063480144932719817197422681623553233541652814300708060103266026918212445520287808761015162386049559948310094497551044871393720529797159633804978187855969015139769116346918080961620667132070692432567764681057586635072221044599649704261384786145507862002496266632421114137895820972568423487776056858280900823688525739486272698585294064740833626302404582535760714330759080963272819991802761031529139356889891825573028571234891123026500393451476999744937499658111038582072085788290250819595268657467176496618879448746318511758382334051493954864208663134514942959438518825773362712322920762438402840653837759021081512730118256488082990435135052399751075603366815775932757051148992267546459890800399464929249450201421610745921645445349499272561204529745623647397172150148486844547242921317386000302347561825829092440099082169226142920404369311094507741388746401270478011251833052760595523650868309021154120737771111239171777084154886457548101282300946204268911656554710017521556310540923142546431975126586865216023101370002166093512475177037367458340487709419869359594395546060224473644758789814827709094874516284582275963622820633170272051786875817877437421149000278062345231364345578646126893159722396128438718456854358276851081635195648592082123297116096255861299046631738807631962636984819873579157627533583329451524614082806382943086504152239073585683187832683747344224375185812060610697050269044621145433852034699874739025246267294028601055566518926060788058521281261038752354638997583789640362608039586817198405020310618813130817477933781431539588530623010447210574620005997835186935832484795153449497009925200400397472658503371337866196320183798803818405812860968233430810488739401311559211041823696215874370633905895997738266905581035677222263277895119469554175173225315729142848424302023073479747641185176398541804267806773868125461391986548434355463716989735488151765734522243699647435999623088248617344952100300870932966770876819883770029382861845225120162611838101724445566812055941755992224172815683977283710105247967081210057535639624976058382201890731292741762131770287713491991476419955824403702171662310740038031713102231265698035199727225621764583569403323085315769940355473746607808077800951705107343666183448949448070351195679651264764436667080223908380788209753031170966046135492340639328025077665407713825277279869574324579489761688673261897569153955991998969850085608487467305321352559828429481227631370031845504361431006384062407512942844863759322078952714303689421570383809239403543495617055808436446661095992611528312479296983102614651875257469518668024680364238356576404520680893471047496993869891703863044665974418572104951993209360203617639055914642398637105455280599089749163203484593279584881689815315448150480562021243686013335556307791707249173159653169821277984191931312661755340270559708130605755378099009557277769841285252309700753732897628977734962885688366625067819424530233152123878380761197342348660556485989869202535211904476078155226366722989765189242942700492402464367927659987899320592972686456483624540424294585732902714004847581099350813452492527525963677456484215419398936085527531201082213000367025334617859622422692691865144711552412440409492433458904895505245177623781444861485797508434590486374495603550387806821913572901705302641091180931911332218983933818235593916332612212129142520027688250515247381568423595023627029615128919550063725174206795809994260518857659707374787049208878238440591049689728563817572698890658519811888506300593616490721823747282682619932344528730233145317376196488924504376684591668183784352668530972699839579479837570162505967891456864931557326658519361061417283734781093222591291327993024542556720809025976657511460106377538716263969982000882355564156539243456671377967859991072942676370835323314353900037563844275369479326200284147250166423611414405024958377355434187216163523910603076554562961509794014898967539613585236852614133822552509166835046354126050299716171822154582807365773151622722515616087866572134941430180371292825966842658438008643133302659695810491020131018145182726054318573326514946702971053844897126387281354599709260074652818426903521090240234067864572047683503696888306076687697403286424596968769162363971141994904454663259700028848536352896597479469220333149757604756056714700841190476986382914186263219397950245933059844357945764722614526890231441510714711453324051936318809729373026105071608050835860691765586426926550295303245883610933736601024524033398161813293029639065303048057786510818643395481637482248706133741999300329395039927860497201043644054596789306003641151504051029477059532972577971457079846775059825582892220428882697308804353055828370183310556550904767618830311364659562907261094774729302518452543571225599421622768130345082236553282207700276077374756716928082493786023188719711156493133385602506481554168850560259040361282304582508674454674100985690210182067628945881153740282072183713455788034133114962222969697727176523110056568883593721403593893652026205151731068466149616579162359192830999707171812745685753408617940970010511983245651945620706315467354111832631782029157442965733653740181950937367288916200523065926360852872283196820602839980839075120152410255552982314021016502430826049804547165754753178337864073788805986754215509465721296549120708444031309795195577126663212302462319468117897826476722742855367354907834616947684764820215661264056850233563344264287026692547113806927729088238770859809685008351399543991638556865032568759196758109716627250814195082353053347011613927365549194961510451219526503515576958808068610098346216609558982629486825010250058788106661703143073245870572451351431123239056326721499628212628279371897072968470298055212055865096028277361364264095935759289686102880806618029251497100832614918887456271570823367695138301105073667305160524043834461803956680669603633822623000692940906773224081616259636613430423213615952482571017210833625157393362831307629538798964953729469216240266149075705347350206054744878131968512955055021662524905485326824478023292841421036895037137198808786688184532378676356193745925972062697123595830851327193493861757148210905171356199578439543637714641318764331975372293388280550347220553247832562990370747469981620640592275729596995662172697739717062679650676421652124972044228808168067348817262644273132867855675849918845846745280138931555708337943675233778784525776557198666494175984761457100938714413196964691142446890195028197781068268070453750568736348924602583028604360035156280267045483602878381893975877210106058208897882534815195320946517910080603222152776075820043862275365918296262028592033097242917811850744307223997700703096157048453636926653625540754910273552771748551438419690704928988537628082981373420246211254026614304019382827179814325639768752841321625562108826011687136019243620974542460482995373504400200337280585030682740060348437515702779586464777406819036221423100122266754532963979418696002345590002337510340452827204773192015957128244909126061624469012577009956042725806067510365082769332255577081990041454124280219925389036375462931635607094044439979453151039498486307268911381831234624617359794226945511214889741931660206271687656519304948497061740885071661868823729859756915969270987955806439741235274415726134946409125006786576740574889037815545221607356791254848971100301285771305042369457957740615297388231314705525960460086557144462816441190744921122576300050096024617871094129411437148871393822711984258310511492385868852633378967532768511126849511996744901690200838155582334653880227681157124393494517746181056858643772424878640500329355001263189472508120654643861553650667300558583292209822220331110617991742501030519523664194769174596872196280685340917565537880286448281573996537628601511508674156137721921203083645394986968966995505606961366896514317536908111550149739159002674698271949114833307222042355201840950194196784032718096107454118848137543230637563779105374999462805119014606885923020041464237185714775700364762582379470721696865297331412627190649608307172968794929895366259207141630739585593553514489085744185811972189757362464902223247257872490221076505116593539948985736060315464161816501926551145379485273764566473842764339871638603159906625821053428138605896449355207407243660048699303095156635962950969826926558680041844262290211268761153100687509945831999530779332416190623228201106602282909733038173003475123951325025912750600551896586912962217255443889408554706642607513165192370481085908154739511760227788746962209105785356377747459635810745081830034878365434232278135328333567194892249448631409491925023978845961114848031825977185947359280590205011254182614680542136944901714358083340597014021240425158279157275632568177862256477328353110045668206611992446364169627669086130406701151446854268387688445674588759932141287825464928750760906631443836779457853919965725108330903021688899181595169073404184677888822687999949604881130465014102655122624794302676888291714632236672265911425438933943108059515724983382669592173702023253623268874735076241397306122717892335257503507238095873187266154738474036857876259458539028249092808688354867717909583243760895025823028684366147053968454574250209791454133988185430976019708438222078255095119273439968421530350429077834921178194399534343905978600206871000940140598723585128713278296729027788453232064387771051474707919233706913654773181563354064269932497786642717484620090994678564712029834189830731036770453083592758067527656001441367951530304572271624444646042788907193946651911970556747342072301468513490891617146457105086829594136844167915570699005319986114425077186750684737237159525425713599366490660950306517357854035157407654689254299626831296715964410401040845716860187630393228769030575974932531920590942595498772094316045257950850153303464127914037065764989329270378107262817696222883422598399394063759765635407364149281494396631243285676522123283361678599228812833992969786055441364109402131980649578983552337433867644804702334881461117257382885129509106485523070082346594104013600114664232432766309033635536450816612417729787387258695273562229867647875190195271027634093849942037236803929607571268683405887336978856377480907390591786895594014060336161492065250648024050591241686443464645331908266957317351927768674405933552363276881268832603137802214282474041267238240363062240527537372730931218104383412476617055500223671168447796220576268926935242780968358057855448020951895543739094076328007480864615987769687313643597562228169728377810861324342131081616787620346390582116539561940162816565143960747276134501625394150420329073602996082544603657463539570821193851050020202555457252866820844538328938599493831148619553183682464797746772098663170491239307229412109659033348916797328040073557497391485683350093997278818407987667871455194537684325412336350870042420703720875935884480467220402221274711181453785381520915433611854166970726781582977646101692460663571218854640927091553136552949297168287272869929813162258825607109462041310914655101340406327457158500085248911595675586810171737311369564629707013405860916663917059493606908488313030495736578509712530373903816367303202913196912366271639095444476930400595993083297099778739700654875717309414714572657383715507539877087731036177501627229205318555148370516877603630836825172978163806673694923706852894460651675578610290038804635223682512032411266871818948404855256053107254846543968525511495234643265672698523400166528623821499916837183238663373046081930200959392830303496585935487443306274831585185042563380718583830694476108645680740786504309731575981565113822442247871263625967228995050467180014324014434125245845578397640194685010208485890419894940927679184977322219880021262255450198819423080939933518059399301149728570115075313982496790110299476756087244349101108908505198779184990059954093023758446871848740198869098989306389249959487713272836042117653931473328381904431515374775432611053434859936995628724081149604870024923238417976693113901070100129582699194687422719832015318160210029571219851046926273349981681118110147843414859646175595649495575227016941241619258038734439031459566652228861426707378475767200810717187166262068674623989229874890310744747466302260309701217238232915091568980576540420411736012858382845597908403231062757574524618471303120370813019595806449529352398481655507604166635623944699088775272208048734189830334974370392975557698174646852189494634046756640480979748632734575800085735227284693735166469894993885267576100116059064139649858319025161974089866495293214752947451826314853213723636565708436052525259039630005973935151527374883945858697216826080109404562023647176044401864952720736616055530134097092899255784430939511239251644136714510682158013230216887412222840265005517275226388139435066458418878085459137369892969188154928791417640535031351300643554026471909386717959785503905192766408065825766236752932712660114241530717808757398755652337988009361676114480825641431322671475619513074266147467117519034057204721485178499361054205839547600804569826174476226508365550699091801164528541471865785481521956289080219759580712691769388231910361661966724480237523021534233675467494346109601165341794362942283788039100195609658604553737207503350034672899856988690456261994968984379746436378556571877488012179106056802205696076543769132546050052426954087130945672489667573081056540856283029341519476479114946310529917635429236631501229454858863279452138876584223017611637732164934563494703462831648231232411685788142814658794901708479964741059826010022947757768228184437026485168143035796364061537723594917438078324750389523464496328871336842562823137210512403238847520422027955240055254831363094369009476798862437220591087477904114707255592551214287870298712130322908026455143428853344963382827130961006574729009580690543311632598198590145392328165745180481180145257841059827801251414853087866926601651596399481187188144641678762492300846812851240191654828027450175329119375520800126411701587252500365581492148745153586000021939062126658189362862696943167972275522782325566359690430301439561412368246460478242315512186974465076155649263398458706468200896683997770089494591848216302206898437945346630874732560266491834137757988781964160959982697466845946330000177990116059055325066559779131753131824090274465937242383106283158940319661001524155365769410716228336513594690751200290382380331427622303764106302409567859843308281870824572943861253591526932178591133572582891188553361478777727488353347342273829916371116465598198728216245596593408680263619858808849780971323494233883868839135601100615721714147378923643752602620214554006091621211646883759048172501000013618990479112943332034017678209260311721147661518863240542890584073949711883481044936318282871039440979903607920446224932979078484390085898309522524572441991032369897975580076171790070302719294737820770776271297623572089583937095088956605764007407237328172879602767089651410667579885141606942545028293841541060946025357958445815104410791147123809168378551033548274494508243920917103723529614059977796972424032672671337059919868049749813158240386937856894326830939756048958079481490129458419068621521180534157250410783337780546139867812697785982773011379624784087060544350009993421096951857063089283974823038816123585403117617314460412435009048909890496889028240361901376921796209930306868601379813179404664920967592405710379614545801186576263314646369844144485451117471356652939354618676139718485143230080129746571682641964993899386423234416865954658258217824389872176731727301615260154726725137771736200615571265606588777009944336987103549142881713188889998409854609479189091535428055799614482902343549918225324770763026457119033660344764793169076889231105723280755830021414658696205400044848533562317388690738652514925726672703328511197642032272590725277401845799718878822685800723799570901782267992821436455674366186880240477613316259255173449285347818171830457381652727267979694584807074123156364267072130338301460666826843419489367295280707085831252514497035568226138822690210310273413802344076441543816779665722122740815882210601229800383314425259758694421416147409254688900884985923562959885500138282863588485821156779697128692945032468156271482500862446830825726798470635493957650881887091227633975495037377047342159283571929764635414437205023747746605791957764058537344327744741749098314955688513490846034059577873795775404426580843796317385500116634594285110738911878863372522152515182440829199875769136690055804874644486783620335402202229763097102653628471912786317612738156876278254661523541129077385094302054842876590844286707294909271379896613621333130619262169654834900284115316998408232168950815402411865721978678126962753414687240669149681277165198160974611563339356906942075783307070769395141771670864843274061125855180857211915807235074317064801256962382080579769021642077025619131255838531711980386238441652515272914593966383397127127108827125163867536606187926897122690386366366451389889670629603640576622087916266935596237136041121038881354709403745082528897596578646808170430986539913798965769051316102635221895500457230684609533120179979719773546053523482929953274361785361610126062856670001865108555926599641523725335952496931735816199353244879109754335332051645914089717130381502118107574635680257303467012238717003842721248364909732988425312844746217131248871989765670957373852101509688285491825266009296298930486577700361587020623593615440979534380147313264696957884809717519083504507823694899162842635404098539288530778264442656852294351135790661048626542689514151520445311997420124382011916402427290272616666068779751700144892352848049508322627927888450698807568848573352004669481558927617656964157132574951387908391156214614219520789013156288966363220791862748590340153171432027077837646125462974243418996955740100456199357715062190142622304623419195724509448225598947047239479570289890632674715760637311818565079805698225580224232943401457751031309085081160541780699700189651171680841996104015356112794835466953665274645096988598337721051570472828519240457345335068513306255287029854611999515490638064108056429943538805730871229643979791031644159186011920966460150133450675454404695254403431715059936790546276621426112743261931315858376346959173390444412569232941974266036309311669488388126092601638499621035178448578678727955882519873759387038999284042558399478093241344827185449015471667166603323814534456525878219230140268530443149156619411765246467088455390406620370935143710014328183425787805749814044936847757978381278029389226893750006481727776620538343250332178377387067769090149322734965828124148945146494230656423423660466237917225310947686892013189015586748999563510738958336069502720751658339204582968617527005556271294703782819150922587012415707669488260792682911982429330130106203668526877468803552445321448422494869226682550882357885980803414054393558937562291471749684658648547777381850643842589546510177881447539044889481443983895932511916686485101506193117569629026469205952696379144170700875702693055396567530839503416833274533293535040368468326609412444165994981089926116306434854938039728090560934448185400306724001237609766508927056046716400007374965509325056546990741987631382950424256398176305362316491595840649155478859765925130212695253558479354901645576933058487428112418203541637555749324332671583903270493733447535115654300199065645907041875628503799721516918208370089902227916225552934289852319030401869253431211751002444526280379785038447652168025499477146329169001455283631487362365363991971565932286144244500875121554195112268303481585027427167478895454451466244464088090596065285320211820265442554118932792461101650137736248856741028951346946151664150028641461398904971725583339426425366384639670044350612651409857204381722034243762079894275070222608553788273727950695627533104322959947754165652366106790072595502306987918067755393612023730770476678407549159936783575880935203158558266969769792442037163504368827955696126549648886238889606573496144244270441497304678626147297284735299474413292607241790445406140620040303526147870187150070495404148685492965359841529054109669914981049552431700246936600486669063485883433016264561755015658010621140256126417444336421387127866521397560195069156798146676667944355944755576959545373494653773201388592013015288066336475900694267194841050276301884261306476500265630325808498750534081765540395593137697530443343906234422948990536371830676257570355774610634212021919289570292226751639500977884451638238703544188054993223947572624586389574625396794260859754860075096721678096656160538737395078483672821192656447791938151448721700380803248951037172596554588913492987326871872801091890765094980869075213810147440283803536579176767042840965155409829762939372716948687396200052449124730615918565277918519920943266524749773934767190713485032632760430806153874992336444188846203070807298656601447344040534045418467653057636352561984527009986163407344728870704272446768772360478988355391432733328168202422440276273557569859265973578591959992363351728395162747986344354108360984544081877340923349495559582000636965785826045372033184569815641633012179102705311034056396615931375373913588840814887719656884746684657754366356614335696816266464560149141655379850917218971700466033854781265777455478116344651969926194855603105044227479674466571224835480429494660400370519894869856800191787156663560829856476026449803420898271578519719861482161784596180239599216706522638384964724612294895480074136559131749546283390631591754957479435028514953942183642279877736303923732928113313078551236116382928298459474419456141520006064180699417456904116536832143419274794293429214330900827333870473833370714900160574679093444381436560562347680791639574589380586681475008899764719547149611853732827993618516866458106992329349047607928250653768194751660893689274134727249510809902751908325942283169553849928332330875673764447740028413137685585738277440940327654129324525908807766612635870928423878469660213410511399292979766468920289504444049667690242836943531312111307383486613462882609383638299630121828088788418217854845265850579795280561155621699926985768873257827313680512989063946571706149658732858241393852593361131645275958575066178736708087819664798382145902891531198074955773234470033060632017938763139349391501911129631209990079337689125266238947342478355127843211982226560413525421799327742972770105018855504649191161551362918594373950975158699974081028160767784079612102088954466766747819415686058788437011796471105830388409492106997362674085216738008121086925239030752988118652539245037172252476354428196433732489757842995197693638915808121337520210432789011620150603368270883133103008465512632175341194101672726784222077000098281264300443760058587041236797774830511520850762040300543030591989030360007981705664615462769187052650324210193035316304013511466906375170898754404759713143287412367702083481661735009219326703514387780807897449710116718236676407696420354416462336699259491491564677437828489277024770110809973045765439589868809593611130525001121691331479696215874216325097426898628792301860891364059878126905355069285590185235308634839427090979477916435673814011881283621361150685166659450559045073383091057941204572633327343955459904346419504793923504701027515926101288666823010703484262142186067815421625008288495479182196889490556639833533727608235839788576689901388568331590694132321243702823456178345164905213017809356118211190134846624580175331960518052957876659979608791947620483991239018752895749141001187722688468755421613690615514397212000642061337749213343202628421936832060215724410204768985273045597916702492311811316168877954292148583051127107721169807482052227171530409073459862727450894686736312662716042014959485247436660852662104609208978743056910384969054317346133094508958608066807916909665535654356870452593687215672960335231233017360435202872136276242567721810834289392095522970949792953031704027146185259502648253349512756564889201538911019707997554966649393014794950754763593492650461988700242664123792652523489018504321252470579344485582476523294074754158505523183298754938793676467102728630112048521902766240734430451063599181465810583442004119832135682026788375209332623079749784160764767098637673557842028655696139623472076865512875503598570438226884934495307673732774840607403832819609443694991452167660127823822703331503610695807849548025695499467416248916222191750984824840647157978389498544850305391424340372138423630243251607688864594234381569899675135223039206181991180902867827510332562241845950035875336383581290414984248830666471337917641770947431236467588129302288565374177262616701465901413285937009115451579064101238217886971918001133866331661404613597300808797080527285263181376568215418840239490913753084385396710824489522531916892878606876275186613748059681223253538245703654706247736653810975019177243627670183482109095671780234730617174229941879397240317788157306822521641968549230473258424908456639685699279643537835450455384285110239710428347247260900705173796852275645431636586534224011622867910810608467522361659858962393054639565758088143417017438907334377644254860105117393245666869469098632154497071724520660324818365395914366260206121435439767743446760313255693236772697493929486576471617214997197941825670992765895486230720405789109360981506809781076272073634721432974394627718874896101791959272972674207814044791056983389179774000347991800933236773937160599525013451656523232450971538934426276269315066588571932387537764815474891735211142230997187161621558355526904384834286644084254419061261037287626631292180459449395108616484689445850324613732149970659624964966183713528703377218120219810214173128487550979427905929823364573036163051505365575113432479003183667729244708178499791781202362347782419506989287249016277647587558827985186642907906055785160943626243774740280873211380490667959050044280700893831705418008713332422803105867267098340087614123907546685348965113383088020125757852291715850152497332696464369754254805501859315358348554355135592536602726093649303598746252091390524093142063031402425351383378449884612699417085638497567065349712843291203088402245392122043927009002416180792899651982551782109409572931382812814816222388976147922935958203263258581415344573904654022320264685488571138161739591140036478122401344927884632209118435051985540177635686208752744279944806456958614933528564205271820991028297753996866884778258041172136719150684035113713124031283745553511642212667895066140998396213764807932545912959830808613740791128524290847006701658704918916551025738019105405066940226451297747958250305499193016838795410060545354116503309873692450617394255414853596386834664302857158178157091021432705023206043277905759365062595025346717781195849657072479950051563386375394506420091052363811809450270518713158852924481610734303648262733251640236707017828949395619556241401960891392231878376964204184545597773862193083150142737527109877290600491489600351689940759758754273884850005353792382395384312047239031781871849417147251674438261344266810651035925987446278988134340462029172255388084895133021104325868394640147212010729834662380260655602509361772456617899769647011189697180482691765515525771258601129984506302171561686387441751817951205047048165578073165047135027926527401485308539327055568513146585867161713016877815863515184713642198503964504864481125213644398151659350940469336654483320999637108265791906213789233929987549734735444457517351433393560014556597433032115003949450251823007038917109268688270325524822187925491908544362306003846494786251709868710209808378072479499940259630473580295690379082063743353744575849430074529199932456620648215509284064465864670989962038065517760505746176275638745033688267614675303232682687906555252856710077764225008122735403419643888672600907989405836235948880334454241149213562288419864495102390894545073735940507824352822927317365459813772069961669531692737884454449648831995343445864616562927877434485633824591034210767945774313482886218986088377494124048047820814063683077096761535928914860010978561528746122800993685842138733085294431638238726891455924097548340911027257127985052234847222302445057542631495841951721252407430098095190958329239879224795910575740678873723672784755401365914142534274378205347941639938323042424579957415390207801300677456804278422820774016407846758863011531760109300164479208103892382088178987950098186137180000088196213940508671707436246618588571394195629875342196248518111978652252751442778655981518735399600058624889783253195264537745335617537185758250778968087398401535848805667096517983587730983351448494824233275455809502731293234180186949427446181134329134773201153744814107749005390119796152511791698496525053519317414051546854683978787176978821146200740945264954787647986879865564403737838243134955166372794279472828771976477402066021212835497588493845006523841179366178572055548207471143980971722359843669456905287043411931772885645475847190588852376187662393609775810853331705962869025627168967119026136787882594597861556419657796406966012195994407133509224274993405898297874333168710999185287640576054408451385276217308065784101096993573811023149287749171847493659085166987242587896023837282132204682552355302267529825952550098159278009541236083871125443997398491647338428655444797181706805729640074415080895372026902577260587884314654159461022353638679505311409463214768096594747106258100575591692597280803372937049548811900535716219225890543163479947492406947927141381667085373935757035689560378126644918841063880624683555098603121783522259235527501533135179276635451910824228984782263398955300387304143363387208074986876599241758010886160990026482879738083338227246242190786749731284900533051253452007853694112857548177305157109554437753491918173349150812164314230698110359082557517390032004192688556615735079102282241880819260539941428975144273646514728172303447499072559031365265055419789863680120363814349832359772652513042040421406357621035176318177649169453664222444370449598346462426633957077329870074812020825778583995570111095015143546403598111775177171065147458613560139717323891158156414275745893104693480617290771368461008560547448181720553841964469914771251345375594869862253602646694941813130126769830635268685076594304996298008967961925840629525167665582909530111312665863902459837892913553368371758625102573901564914957505369462067214548455244350219801250349305706052625127440139463454190792680283506336367976669017586783563344824873288559877310174192800033565431421957749637650919401065720454983862761825302131940752468781661262343107439165674224040034562195993567571153047422854811727180805649671689813186407554775954018645412527055327917806761124348232670542643649369246827122562361752482007112920775694403944973679914445017308128578795702309186997347115898420015895179268914961191708585723197951137440380899646542760995298473355450375963572037688867178064138575809571435209856392576931306863382284996132076327996851160134813864504778511974153331718793013843797733292619035776865121700534857691239233056756852597144499751126817926852977063380869631217223194963990105060885401850583570041367816801847045131696999922833425958970367670985274969247982282214634067368979434884364137911628058341046871403633176144245197750105074080186326501532380852096877103693492454660046195674427715702949350392495295367596726734914939355589773586094537603600983660794460737514139609254516823258923099355757277100050609286100919252777167060817772709188542090334037069389600424318974989188380309441267192043411940188933599683887325995094709766202316823810826488949004080094709576895935083048801777107892003518385438072659968082965579588902494323590107032833529387764295315827018683702879250393915201198594182806822272153742861647176078528343362924018948199059379117846473289735602139886793586648576190409737258724438536137540040974823219876932378178085565394566592874841847191044400290642856522140281446511946585539536286203501250323327442480548518217696088915189553515879520167040792940635130365981150897988314861269035412359011595217544945555835409421885020716066343810933597445352331617009881544046650786056538055770939162216605580291879432878465141753732860870695141077950367308279689816214409418857263259402236085261729159321396325703170951019301683999231359250144521826869938121310688975127524369382288284716348279994800355579732712543075215253302619279755580806780920245512969892885836186447893469807074585928197800277362919249045088808803199737713598907200136636347111308245795334012678476070414663383766216846288574761305209876492975291214840814441319893220805722620854423647451285297021969230177186230583204471256222683712574149202590617214876518603858792790350764595066076252866330742216972567675641218076033607842469239755863489181967968706950944022449496671775167031166860352860556588321168725296708196427156752403027263929362446551024083255261436637443943231646274712634593359269011992430855068855709596758101430066132161197052289180452533605300982809624374442985151312718373031903596369221767163190683615812472934405818404596022466034966395628765356815075609164185322263523092166241732504532396011687048054777815954364108722451459944638088327630251003383625268769829964063900525953621963447635248315251672052168283915787538707473391220663537195329938560692312506531968983568785304749607806318456773116076471821490049201008672378557556946364343398312397677923224236584783622878911030377115648841171847077156372845183109968255998205960206019952263661813463524396091882662223150869042121421684604776832702610741440796846582011175504476674741913071854365109607962552172092911678346270944938684208336944964044797986734397101501388798686208824074528565263320855988728486721226336788749019219665798237810464580125669103241770517618706532748736118390525869999836640865160569590157255389474101993924075791327744675460249344342216238562759596322984841009838287636945845250001278922557103813049775855375247223337926823331368459948846220665531776578645088940877732660419704996801365441337260484367932068634047527333605621860880365893601737525996127679724075061115427241749796763952767329935736506206968769195430862643040102133916883761729580389636207593688098990883277162234541632427499723028870016168984925733673110225170438278073415501252886601970366206118310146546532715871532340813742758965061730780351597262712408529336872652652574968080863505084744911556468840769980628346310985353241350458227355433373771747000650352777281897739243771983958434414425755692198568716604162918696486641640751582422019736975423935957448397692716559273226917264956661075706851707349732723638434680741103285352800754617641802675458726694571940997950237060357308106729317717653089144110923808347392461635056058049732597397487588783887850563049977703808304053823801410319278159410811023881730630914358771712622306380714930601818601697350615330353202586654114771038379815929752983514148834926652564634089189817920049988265758301583088672457542626120547796952064848171872263042085417419666483667609780084524726559970663040926922989445903040878093901243176799430125293716687069217068273680791662470926484650147426519494244068570685324522187122093111338800986400455425333561042217904943428363389881172444293870762716575242443851105575427071403843406200432102557819859400066629777467628835508746478888925656948986862069176177247227774373150353975581545867523317368942255421385778825342337176775688222632294552105191134201408935353574562504963278849840389566086170321579891017428615070546927937896215103734331264933628154422453348664143405742704672620351173547250564538554168420758197366085852223354758564853799387753288398401135878173342104064009136076233562450202615819178888047714348392163030482252867450514097540194338276431205640594033183078330147394636517979608380551153102217281789089777412895124454263619364302217174483385992941219153870581905240948067762768996267092093815299261295335768579398810280180863176523185173234138020774098760734517788388091367436143239899441908832989760714992339729396519961036300094237394014964075333569063884909890879231943173514956496648253596877553077901963088414882714980188425858913921496897313681301298849685104905524209361430924635783629924754298300591548407754063898742757452950775289820491863187956811970670775430323045206241439183454261837564635804226369412970751086302177738247326042921863853365039647557384377275606513343006022021653467378309163324707874358904921953566749233458766775435890267814906223496816352490050830563367356557620349838890160295661245065819104847567162675994654817287592265136228285327056710483508684773514719656782336898869573086300743099248329685547967783751840728267772378478081117091572221152360779241342346924685680922568323410087529151645578936317381927010852029186473578479736896835484428689607098096959258007715508057211375697295026376197125921466153267273119495753867517089407123775366379104348410287101454833814288799909947897938642900884817089842624193982980798820330087677694241085296177268989641134198808609557297088890009699447018447552073126894639508800663040961294432272820436709604177489663039104178050977225799555964587828522683388399171488688665984746616870018871372734317679517952909985085456895376863811401607697361518055543827255305855653869034951841650931214360871548265976735244295947053177499499026294662126282353205277435237800364153797102732821265091943460977371100609128828161895388569296579876318448831364293555953695146383938996794479930440555046861641488193556542530569541561748770042422352435667729824647369322717267663665424233434791346139942422733485486960070843671290149099758952480433245862949558278446208507100761548739544010514876173478667101658125765994404222702119667776190985244479834090144522051710823786372885912413281487559085828475766927257665074167260182448070182308269911430080808548034323332827590900540243392597582667504538226987767381711365957877110314944978992764236104486368106784757332624091146366051610329110141858459598038102137031004039583812286000178739934853368702235454509064143889245907453322741912619423047369716984186765065923651957419407342959624868494222295301439157831988423033169719033615259946921900715837958570947606193997413734411193501777450305219815237809985455742085434943537557605032230366279541265950426747687981579904193694255921111885323841013410299024105056963105293950138422669330191498630568370516950400198928318638208546450748572444508750918496331743752654105685278808142679108595608584908612635537936153693275998775638409492344911880843606582822409790592276225381874172914543524893183758248929233691569865561270351641010951979544515215356649841671089907873514171950261600963338747639475086349815111160910433348562758146782654251888805935362912342428493043255658856109774546732190608215032659596328901146268246963777542510955182458269778422025478006120452924538846014693659490307297777386376888199554165610134461968918726914696415697014815404929984983196210197948306269143872130544575827473385958257401578515951499721869773465686173127863675616251393783748703466737455563493524997795522687933522444616838818212142569075992889753172731729877521732111506318084194719089871936457553619187425512647353043122557515192175180212547174631864106679354997191654815390210135678994475894341994852964461444639594388890487104149183269773239327149792643014056692378350498362473115055759222738288717994759098588574046905482810313821146408150319983758602533404742146848666467493692675200191358191960421004225586182298185713232735722327789541615609496599722542089442179627856568760215418609078029601340145896021879911976371052556269548640361962747830230918532301674518280984354714685767684936034561852941034961697544916939641594528345108696783692705626228025313011948679092429150502325227897514597673417804066029189151875405198999971166524548586140628315551433300476810971730535958224584455290286244067983278651500541767958760288459670002802412412665386010291323701071570304487603315809850217525476981393734486222746295993694321359668611396392872114631862904918363184627589762402488681197110419382983896806403024850950839008394180905811222663147952147178104626386303587248075900180601303948431941584052837023378675353537760374573287303096429972522893409277087504768872745982755241480667780097671598712706498849588522367011478169782521499845177868561497906224761961819095719777899892433807001081835100374969268377724166402059348635382335866702402376064351826903214183147536723449852621081336089463842165554372982395476051564297357552998375373320979991783861135064259610660349386459690678274930932292033719612688770043589348614245673817129678648558668160922553235282311411834383544059359263709161927025377197995655967573321928360968866725332851120549517155012220712486765151754859300640431562182669668661645527879534574621546473769892189062575542940041821573637332701965708629084233514362347452753924298317041323826248557212608505367804769014030849631323663339778549474428242406307056981056619872320452304943979889642847638113890545294195581409858840696107298974634813286298175781932311245054969171288389867184586562705185023511068669684133573106535003297020198372424296181449961165446134541324989772921692116504057548169347219453902837005250917080969523021107969354317952065977445605296354503575172522828211079444725036996198229385803932916692385584385187707468812854424163568884103115262057933517886872936230782205332447922487809032921045496477980577874174560642988448596622835671653280130962672186379856874854514330877048024504123336619891319489691574149175946576807407371286873259294361628026837025343327256314567388520325961507247180337354675008052263864121587391494445030331959837249387414841772513993529325535438738625923749632195190748272715624967717349671714124114654286886422001358588742191565379241827661005335774188011733509748754780186405200534854191893580237413806741409464499561971851957657053273192108801889828041494194898523762994464115864754763262904637238729070202765979046273674227531231408058953639746231206755957091348429337070629121688726553144193295409557731845195039911396738757528600897195022919356109545013164072575704500562868582069634692512815075731038948662784614527862518808895184874049998647519401942620794953035957791617763749581770683888050266790695574068170223348737898825280125652693867263414932657665306561806055857251979551553413156829750940077990095807150696069389946558711696715913935872370276148487054247527907026890958888721930295005211840796916339448283759704676224841666547522922577740463409464932405738091557415515319926984252254787618999979435025603288577843808833117449208937644173195188404920394821740338775703656721995509900291697112920845912697646286856389267198673570466918018804639809947186271916518856521460213245859929907726145849288965426768425823596029720115857804919627615014685337355420261350468633314211174993522349699086781991294249564113809322699324559563567960874134640968880678777148984406258372975775135920225039137954802117605676894421123575485708639003104364550010457771951254538308973547817989730008314815446978986107196759766330963557695707492660086870491293049664313303570345241965251075165138131875177561069046946753577499732978534362431159853429390504328774074656717170839148244290080970613248814655235640919258987929405539573482028979816999295594350650664165709140854621796640083278315787546283655240141784277051749811885832318996199669327080438595978168158216763927089324411332462302435020782879795288306254836703777359268850821827803367761908424444884404241479742952754786530672090187734296758929922946867242447245930704151365552419533546989142390376951780089259043533299866908039344069222588985762097582588360233129455238538131641605177723200087349812864352938184561876479229500002964685555555329835334269224907653051520021151938202696002005841515658581110727490008422468280087922500425561122882908422090527192326093389586526220220338581867908210560809141606159496726053965887742117863351745986710812314052142490365723355368063087919704524222888847356669954393775017957988607914725430668514058570180786565546450146624966161071714703503932717784194525618233288776643179140796081663510647097158927189183708654298337988909935059550883376967127834203211537056823034804591655203031173582592634351616478459560528481356045601907106152631153286989435795153781458288938812575173148279669157838236017785783617310981879576440366627443718357054064188158591191764145406085678884928429770568859725483446491228454113244369738070008199510955132420587987482815975535452717689995258981506044065740187362128894440916381520694931392386146571675806765143549661509566705402815437740711074786549098193652910239980331635080062042504396707376868409428597957052077186570909978110269043079275371816462591392223995680505222435948256517670944749718527151629729643846902487512320027427101041118842710464253777189269010338180054040710631113450007465412162768252407559541585166448365189521655337503671618015767116582653216217994064505937300019394808445642748420189870892764722290420577177468706277169932197861105846842661961918703139536747000765496410829924684211090666714712704794131678624116392194122734077746890724036136136849836149970966035182920875362953314706336737937916885667887561068117031760963605509607271575011342497130389676188148928563876024503287613070863052012291749560829023396254766384487982232216298164778875735622586463910518397405156120895132688747075546419586716461294851414076971459966344628382833141887797272231288739961633990223686835589311003159128785142546619828801440216286196052004877962409585305182711304769495475975074353862931828006731065978080502654990681871609943957277969588499898475297199938582999990558794841579653566208142792940629441868023405764006257015343220617626641862109913467873398602151001331812222531843543220540875134554580836890471421570922910756483184786781630741409645608890457700343539196747198228020925902369262084978873212433129252320239235484386669158705006136526431037063299156560281621556971331419486257002079102872729748272724609868414378934265204468013457273728675552108811949677888045514754324149615115388439233112482252833671548922007723218653010240189914199295391749391700171638977006249764165066775860408312848978730413368590330635111851603250199129496500716610725262913240092492595328203357521990559892741010173594798202574156486740381335015410413135450632637334763783520468952218606363991636634817435706686913593589459962395076337036191989616525677680243568974456917811704802282645893477158317582826564287709497506740055776793400893904644507832503462752319530069783382217466734040358842923266598364225648152787720158168675076716234637010650035772840806750306409729194183767848802864322200451946332866221546244591963381508410654985469222558144295355336521380045276436471769992245246622039259548222412773495677771805462761953982844733540768816380517865479330886154466716888594022959618387827687213818822090178688880525879667512116857688246083208821805089823377093550651844850250033719092214519006191054289554286139400087386001753958041027033661242941032122429167595225531546741165061394645495549316342906561974484171620881370097889347717004475071064544209361485084320613650886077219950600301020232436039489849315695004611262749903646507597821008965563145061818897379386661693112017451599159852171459522205939969583202501633427315126983661140885979429329869329508389659687960715875302363148445457909387814134074655902360113594079380892477171400195748674331839816957669604798464618784317679988330604338644812533733746724366862855041138527402065881085539146623461393854448001717329153208025170827132093573157500076087557530037251130993104471956830412886753637691114170870728330300969003624106333248209138974065237593085034889742732730634986673245748985024961657589423436906795361900055126098919138003720094932346137007135775948985605749590358403862298353370185971029933218259637959976189192753664507827507122534223474837746589175659911133134647054965759490722869118748164712471822792638692754062301783781563912898509453851193388308016026242328689019464793402809234885073420143567107642607246832128416553427434515180739320543270880893559664417982901737195571085138484496116949468365121803817082466334255458663502141668354626377685410957431347193110631375049616005535116194184994882053889617775289372227245086934449844186345848248095586773602857284853365468675598157454794548936639507775301687322750069997704636068329695433975828976212498182917747444534760056936298392712780605243940688912392630788113653010165159928363877175999394479277659198985380336353801743032416491703627260304150140607325190712093345512494725934260566147431095316211367403927551286717070784602731168285098892232126205567802272688054696792831453408240859424573797684553267891191995999088779201498932565054992833295497118240624078170411506711470089990649099338341435657766753088584106601556048011508145203248443927979172419533999825137049476672068848865645360727196895462120522146431319470879937237879480474819932614872600399701290139293728920388562744840831300606899308066735123879965846848109535345486497076228368025396309199990929023148519633857461700840724161402274712226700758387745470543491591010648661023092712253682529007516792643580490576530741292646212694525258161095645136307136430247304419265107833130823037160580602605602793659320465622627085501193566345187707543630330621309005506326013932298006774646235555047606896969996467122953660090725477310167509448748924330712045883489651817731773272217394080330450472921527630587889983669325822304468680814755981393910871142726999375196731028600627853423145933171302348180774432373571506947475672115855865549136778834332859970720246507549484475313498504071790422742786392039970785068731449801671806739441593653440572664675302306476596132823083652317071959517333144500642748390603019557208850933628916631615145333168338622606535538227378480857183501606340646963855537471973772007524024574818025026221128257855258916417767632814185560137662114805291780476580948210978494526031366774976618709998305489561760593351428009451728813840335407028426802646255230926620585342301804724006350823767162461536593088389349315201396298975634340832826352456615702596495091219957740577952503846226210385193527272391400939158496492978531683096956611869554580401192462630469280056369466470612724451653660669508303948883539212525647971698401112900994886538540003174821411438211924353319911730813302044173913174692957165021869073007174981075835632049389998504810726594898346181936698620651303721093309877015340535735993464791660424927746469037309341680060489840561040778276394360638822146389205740960233987755278800236290365988621639257044442688384866920106753508196307946714773811771748139583643571241817094142695211598095025166422590714300086055242279883796993278148797977130403200337850600082605675543998849129846056379467929970051449927404071718507999780091073609005853706928059116895822962565688019086922552428906878068098314679101692890507031469951499135601775635112419009732173803825688264015517049231037073118894325115727596282440047215245899005424436024656714169442099290030669051385324103687599875222565791847422322504643376042991973244429352124811174153241908101392769270085454242819813212301260736000315020162268493456979402997804768658078883357236571605588354320513181044996508971009792907508718517606479949918552188538283241831972761356531732415125826490382586575267265933650180331563868665915568671276465966364299029176417816494324162199964511197463701548571546516806051736446316792692531897633616196418356670951542863152923307144955832824273932015292755088910739242646370358985951373016960697590240761177558615927938879043182644219667740850873270960821131977485640028737672659867865865498608972783575107977053222496536676836315941137502986605728751740997119611285205560136100256476606934153229986637843567000798918051295396219614062852612280479507832848026776234600010870685049699331697267066852185970716904304633223049818819606078020780238132712774612485337170854631467517520333505305399707953098625160656212727455435362841359587177857128653793740036817086134836660662069880974436861520452867408159464082240224480451467654723753112056629456177844573982198370798382498668569317863135071398895011110981703604344372980948564425620218438156832932978777492814887826368728869265780633851690061952012754278625396385050205923859358267148761081920796592952044954891011014390765210234096905176576264006698205331761907122201314544396406050434509300751764337488452438226902612452592093973286938676953327516696430030990281558090187711168899815649554904382129261865658392766690833685783574586272789142352883131494576152659484803753018665894941596222284600222690305896169123332371527843628364485341107534993381760904024093124713727713956900632567806838130384093396066389789051173187637369983299426370647771775828065904968348951692941665730619334454309929465687672540544016620535588228120690278541337638107052044252278158415361952834725084792114142059381034987038193979302841270593064822749663709505973454643515403860932896414986910245939008569243471577670325713878184141007396735852339000589120479885834169598693645170498885431693630949503631248802822735403528276056799124541503800538003112638652219389102417465377133374756049812090347917915212047741060906159879968298248226406688469202797537447443236661026537459549281383511573636957999575420093321579225942566221867838067615602658648788185180734498235975678175490542471575063046409037376590298768770557290330548636565730761610795261406441550009899134225146638580793635411028040681404198917269780351340389581248566714304102727901073545895899548556018929205778707176338290358210755896878386584236536512528283407242427753237822003044194281629050882133925306556316271210144282635184058027363240125755608057670476016025891514054554035970380785461533939762769150302770823272519755639566975873979710510092307617854672592664021852769255891864277631901930920663637508904871732905415595988100636665799983215316111785837648635761209390036443794641369518169161458536920257843170669442421749179045987019248363572184015781063804111947181607960854098585574027562493323064832628189429597210887142302930551705132214775119553557758314968332784155879132722638338354293983003398184466615452357613996334072790737279216418855853982872027699056265006079071582058167273691151406403278281578021914045172830928798463601711717088640905526461191969217347719271251836648803754472926053841658422632842536638242236811630322792325045339474752834212444909212524962544338437729188695116264461497814245504745940084195260458473681471359541172767178222932936076223137574755461988178958580715946449486188149041382845771301144058652542177407576298146074238862164844834490646049381133030353571496626825019504244512074212779618979415022725806394126493789415218929259440785784642617557832113968773961690557614270950808792602499882492259030919531675809718268509657207009970518077058553931491106305659805431488745724397902835980515214633334656776089331996294551637810276454145407365182256055264697836551447623926559489585484013836788713594844234071293730101625378420594590966326628005034669332329536988918792133862551879701555498679832761743018778144961050761748814480064177391059445190626573399642918961047672519817408865706741661720773013913840454496791765056548155021000068850807005074113088851481737440264830485615646657627088205193462646005452621263902559897512830665587278131113843715522314355947922126609234809050981378543248092794217871942395686863712851949580210179930257878953914798113905124224990547521000722000716389990047049818356381234538940229753257472349683419283325269168976791047699083775509619602763079337282678650639656016581236944399268597189114513357000120195459961170566555838481495003704416129378545906724813619466274622784864918381328447219354858157298884850253628966919743617332348549669041383561947703567874090148408808700948951591864783524092846634074170255636873426708420571344189909428275762022455829593929216686123112955321897096793731033028323829834541498870823716658178698665038072167912339803020323176164145567804795519514301852079427607079998816459233724768271731449233540549702310746472651381700551679639113456467725227159314028658656290245367317947638786732632682202015381062653981503670474406225776113169931351080843994080767892038198954049843439347222137682171581097423916321460753544458564477853090958873567640685802498250356867028382455234318924626467800779003909742143620498247678836057107835146806880239057934972866740251009503115347453811273013354217858542855646015955313047286132344303533083533353086888375766323090643866673665794369965164419768353938104455318662077951987039332930234223597416173938123967163571004019500030509225186650799119123701938160975516849513874508698845401023771021751322497256978372542824431370597289154797175943146310044227546475086413514687684200893471739376181816273370209221941034093781297370901529687988473689686254605681732124081953678672314148009484670344420672116332676217503859558548956744672487980300213541716798793557883993493686732153658146359390644632309369825776647450666453188605865536731383761101014426737182558208300291763979296445946328747263538029419339132006487924222648446864138876402640334711762981839707749465601844793064219066525299238877493805314722404738362747888085296019955665835763680215844102124806639732030977489639134627905847708042658226515050879401190378447448551024007325057086330369587395379425144713536392644819031262395812774624090778580603838322551036801687676498918451384746685770562901354942122321312991415003247748717430705781598780174074060184031605868379252132510132624003466270631991752586351368188162592533250152073829338808091139795699795920083251295090747287998168205513447020896312857202412168172641282567069199812123080067613418700643624930691281165323692311448155234134395407686313130894195340959901644326264306874584701529032766159086650727559170367286287227351939093448270989955049391939201798700126824986642528377561298187721968855395283150888150940135722355084908271062886689419047880828438898420840782917270344949075232187679449437885070572417718317117565600505000050837048282617411131867211024502221155137561811157689779513989930306608249876414325005774503944712723812466861130439297585918848864773190914998029685822775691591990486551817404677030261036215958315290670155899414885123520771215146330885641057128870446950916942840426021988582123710501386090560677774603413323941603676132062965813296966404268656401217410107217761369268045658427058766232863733100955795405320941352706827368919994506503924328966505877872378194481586267408838094346009649639659668516650225585384340706604452659732616516481493208100495840723950928815467171929140339745367819384316279206789047146803741721745403129680801570341261134930937804571890323711224094493099717536854756866714288437785400884361631462467318267876564889183235381582832612980664596141241341251578099025610229647710168651415151924796799733738974525177867551762950976868307085486844197249766869681377724539536341301923570048047319906401795675755784419201012635227218302761463527171468573215457047613469225739355394437851234815504284881960850807255950499635723236296454681724749038764506158155402242170139688189567320109816555437952404117180316845334325798212437878026045067316398971602987653658830248562667622978365305076081474937066952208001837241646887838365615317889116289076367049229390273187467029142213206668527432726622111829375260365513791351343789009432299618848904184502127673860680261522045903544965582394495388784547315681950881393378892996253542678477188477835094008897412042003411337400869258691309246573556186605985280465146876210396716628976651002877778114681740810985817767636751366154762618076948635405734431627529181377724699627620331653508360166697754349817785298327790998697596479085130228805619679392324532185061005221370385820465693516342921258783264931133966115485626163896173538766596282412231117745197996017404513150080403334255887524259497463958468816202099049764509862541067963135247917066068733814305026180992975287679964187898058858501084085543145332011890465044448800509574437431338854313843205487831504530454099791870607997102435913231957667887363628556681812743951671701773814503078428643804226717431990109331531202450320467584231067548233603125749291330771593356512775224676341426878456362362836688718253454749653427564904010218974069308368716998664194511472000349667894561768093105180019060947702922791956318469335028389951050272626278802419743057487606793678782708013697953349606153077363914367638784920563073998695846204337516041899427257080988231846591381472945666703039597508712715925843323639804645418670839077330399248600400414378860832802555328701887878807935502177381710608430644625476068805910572055771645795523209386455861229768806057051973676558350147822047779022216597015731214272552420740049406873980777512229331870495975736783205190804678451693224476507838555026892812560569318120166907864357977000037967250106901314474861110487579465132022662077940669126199699414882111583923417792862169662795067248528452927478968104745025480689929303489768473440587447446616897546218480880164593907094786136525478935065785666220771853666370167106662647314908563904058437659066222533638183026170583217688771927727874365078980139191883224025440408170781253922409689404525742086558118693032353441293207569079175698847097237958601940344556949541313697939550417447656617067304342253131792414101497203701994120446272552734262151521429438811317128295434113700325420142830683986847704969930851439718331766503770263396635904674897429391066695373258225964811358553567681344297063020403372905162840562973690231087868922794742259951235330135192224183994058327248506918963093094909856864452250616410224137347233638386966907723853618397349723470350411727452896653508685568821504347618780331259746646108385445113609929580710684618816148035589418166699425942844745601114566860476683642146021292808562390382553858002168425886355869058409874164965520103147377818353069612216097801739856777816931652804779641329037075052808720266039660770019488081588996053568054691409566012941151497082886128112058171402883302596601654643388976900969318422348355872367725406071989804633837483005572675168768993639294053234502032440079516943348621471793800311384843868300441375200989205442952255123745785752719469808551641695107905503362156234575807297292548192533474495752352000680984047422514790697071336443290394309519477172439648804370469557011642886052637715373464626475406960345841264591915680770440678174563976705993970757509089392395195420037775182167540200279308086720930448921130095730361615251300455218289755334658769383568862764127551175892967512270618452800567391387003171854691215250543652583457974234381961235370946448423898627211406832433433322651894784090494069405627403438679586688332008960305803727178246666519587865594662852168593125775731409722339315334057095151320593622106519928592007361080169847407080355723419946922480924912068430958837247205243597816292102290724599801433492330712203398925619797045703518101968915185585361782141188790939377227412198292116497150025190468838139223627213558953870322180260159523111706064561859405224427447910429052334552778792013219787954345852178841438960381767208925065847849224662910680392031828197073660644195776956506451592914654850162310564420518568074852409787322820653453311923663922886882889333561520590007328164540004754833193620305889368394967841767328527542612413072299030906305245279621499016019551104807996300243372933994145127897934317029405204317674246812108412092161339783324897693496251450659062259619521485536078275439952235366253278200419977472779059063368862269784605811041424576499662891479620670064934885047794957137276766087227452135498009001091138495792242112762557845266590575023703583982632235586702186330597856943304726315088318873972356949134542135177049548197132437024627027495515093675596295288861758338724748492077935808056679350404883252425085857217314440772799349950889123332706506825751566037840478900436668176516388335162221080349731256280193753884778103762829670766944672081440842721489245282938523483817457374162093519529311214092381922536445233703679839257445215152001630775160268984620848316855764338480585703382589578742874984508392945337710576412507142900561572549466762388030688874607102454133337305842345614598062221643299347913301172542800205044031502817143440755156171357510690953970995267774801736820332903972944228384874482850688058066585133873928636246826988181944459913980475896113361316390993605357074991762387664074920527251431355712335440587937078157474475827050318303079331103616642687910181528059335278128903766352178040258850952789460464028512629511529104438072487474121406932102272182797526084812882815168614254352139270269890133744805993887643936791831628812146359969810208311335736602728294533135296084401449402632522891835448877645085864134985836148604573477440553451811323586577971479806965875925257213493384682822390674696422595678599335726505729680131315955826383452886547251192235918166057405412861426728039980432354139664755106527585593670745093295022976837983530588727747342039402249654036930746656790010986525709841566648800149576695489059699764185304479123350178159608314779061798347925060851043126985191509652487764779073685082239022679418560015964614943163160647692238761103165529624207445668127927963853612781897173384669088699126500813396297016016267480962943659581080269965248729869788673653999510513923656088852288193755108667955820467092048755369699452826190406754851708930312587286341127731646737631881865868997586167962487638738096313541176017741669124271492278160646287428973493781403385599387080551949127009091989410416575289480303229372172877243027072114219388725021763503945068031149150702836442043903689836504327394255306685731216027938512752063981997949782455326002999286375945934998570833429287618454506633443424118765860656427938980660739069815315983634899920313658076034563831523597135217247544507214146762416270580884421899995487633617033794765097947135875518579858861494519159007512715220362649193374020665728582149266321045691564644740029996642139640475502261338246205222733964344383386612734894772089574504921963978407288746663076608514604738440852961107575183214145011505179099604913481834504113912030023114206418805410051030028652688941077637172447453031924763745284526647688628410590797114026931066816425727577275235085704044898321553486664617021075089671137362193303792985890375384433935572318151584855324796043609312366229636316469924498951508348567852038360414987682968271046575224916153355293237813012316945608460424140569069761456783707458943991614056885714653005930325758959983665138623513023197324271580210703500062045168527033391016785084447568965756328876169521744124758423301623698874323322900222899338589532381086565091096804449443070259961999775330336248782317954479864190306457493502095966924320735156325680909312218325951435585406824214654639860196035367917681543955105474801395887104367692589419871634931119942706114483597735089119944283320746768650978944116362394232896790714906810257545354249905297455603106020944827059031584755471858296094838097564403164855028778575158696611474809970162398859724489050949059336067219763541961837230797908923993945468324695446651731847476622219678202580249415219164553779221493559061761228631426441881018906136626403515287807854068970409790375355576246210522888985607951616112079910744452984102526796611100908494988168073649766325998612858050230416249820604753590523982041434098764966995875702268973759848755091057353609415826166657712104655017858534554505645599770810835682122003723757423996831327786624084893304919016444052963875940905832828981234984399708536142541412486854064207927678129077197737760443261964863681640010468780077061348207204744346067391552990944515478265958508441930156069137134537340789758072733749015318732693628209595894010535938646846030670911269201939191748781117775301669953543249031671898082187383181088732792260749667926774590029197109719303540926245299671543296785938698397528240428682668659261406664539988218965927923677695133984510131438159389897440116782824638264646954770002108995944452704228062118576205315665437709050029512424589633810555697459336887162632726818308340020708509149344154214244061052201503984929155217807655421635242772955287796693963391656168939472128173556934472988379512695908456910725931373811144724761298570638809683315195137070655888787821704081348389969280118382604373413400658355390713965223426169169377943321422691842658279952014024294822905270442894737808992419437869167380622136338893845314769386470054048001988689034331476809952442425172100789262317916665289509176215051438274824135843581271478744551404754554990631249694623473675913261862479866151603783883416027053909500421947580375692028094980599532887286383048857776152930717824558752171040373290445086557386302087000860164340716881022125273201194411772257228942631839342414263519409500186711937949894204605685865425699074878648856661585155417657555433442476827334995454540076070033360532370997546080183092440825694510234627891640308475601003235640298007089881293899685282596405347882025122016122047891273919394444667084294268977566760633754256408971730602891659557606097737839180329200238735950865986585862031913203559798890022043948163497108190081228300949603609391551119085744501668723720336081068838374190021788348394556691289584698972847068527193217532278359681770415727962950215299909359061966304764941889238855587904727600222751599134992530809022746207498392795488383652248676194734270005286624410939820621267011155893975766797563955483427831170879002693196360175650708158290637710775084552657901166165540913551377597420631145208452588802276059334231440674282050645557768016954532187951456097901256911101442391511815575934982762956304264795270125952175773159147445336682689702105416625837289649199680241336116264249989558164815599845430363559558002594655960235076218563928076109309565084830449655752247035028598819988835808096461861745517673663157422320203307339790880615272118298141618205224101244043881779241945095203751591868872212023024474936473832066998919031411900036302513983203346146777836394828779821512586052640870458815913769308775016712181777653510848756719187900237192153914311850417305210424593622048398494724470524401110493502632537640278744153380607916012204887147789780235295305965056089991655694665698835134207189470459289708940216415374609509559895636081852195751291659410907935908464748699046380513739339799328721021094915720090200749323756424965774088624165947893372725938450850508214789781356621375430645622564985816082384658112816430855990822496392658380397405168378591441262956954282602473548742708710295186745590688005044066291624210673950099957213676391072622309571112215743483986321315461655612876132373188240194761116107362127000882268679857379588826208489100093997325909847603564916051992892411920006424183708636090912314990604840831506179503533535380724653175449290112616496435765422133410283973851654821732918169927243061507959090166585718393871557557112610173781086089392181424873246184753459252748475635429171795977194546448742854456338421545628986545749966569797242364655545865262405023487067859100262736800628255305363853783645400251952446317165339686189386856600741502501590036926148500791690697023444454351237404411045113460565100523510969665853018809423119197560258990582309433486732189446342548124558418611438312234652547309132623171045330553297422972055910170390747398838927519622069808754475666889699860168211796341734111721088221737247420233620981837349072326171655787034164070283246471160105934863582135397650512054308839941226677887233707015394639749847666196572870435405628407192825430548234720751174361164831462746213956893210372754704287831369653312539819364700528647299304012330242490610719537710457856563533472665743708342097571720145255073819572115373570891156471715480301412097987611505983359763440358574235074177149474779397445982719639530246054711779099939261175370048523877428095978798476728671292565150396032321846081539356208003311003817063362965164064072067969694654030173781025633675597124980526985799073839699120575846913750070969076261567261259248076823952779097849310268105542962303559484924415859906102516139226226460314695974659319913038805163125998972508034586465334158137962696561305086817190558806154031227569084128669600660256679622734059232966436292900677162914531760034340399896550041360493287769271649639050009383835315449183945655669585670634939331897775083667193247477816241453190613785454182562780879142812564109767998645431070208075655982579841217854315002975713961897581189899760445180112952887389621088006828333603180549099540775250707349150008447760620049739321830652722392956461209316426322048107938623590780612701015957746633022047115429943341317706318205504810537986223655523167725326803250646733024396492478700949831576153898800849473238138492706326626678439671625491300721461488772124464253482563392881469626553670717997614319899008662898010463738224856608953715643992402288178847900768220547783752546544961462839898043749445538303447919926398549890779225974402178642892941797717427488213508089240234684052980626291545490595603252673681566752152999363834007914945435712718596099295881887172831425119655702978100880352364821523634574843395523316998762975395774759720535303979225789663997736299415094504628289758082600854716950640879023593350981184864845253088698361257085674181074059670255374417383429413442546478576698873956459018382106931395165182689941229307901174166160088580342703391242922459780445159521695638206355756164103572254633278034599859689869568205028426614189684714775079594578302038774941422850930108169201059054904757288292383582974997880482767714652047368724401700005484972074396100363446738736798193278736367025199693787902224911462960104576036960752210799966314605106963000545930851304688763054866524492952866999374436934865975359751233350998044955878456669607622633980689043824114870149439232070913935336122282979991412783819136352627883834080756321401905293657235402795310314469148009702229673110591072679304127954432426573024138652278788743972836505941123793305766768223659300753627479646920403236974612796978097602664779822189883201532405033246079375211194878914197754180923758219098038078466197949610642969896990074291400257176863849274682356400498320897029984707789025888307250511138677070487573882376528576153136549508976689669101644850630390885923897813883527050655021313055289284789631346527142213831766437945149059655054159230403944683037451220019963176391319784173203367783278640091380024457203834927825805651548161908858064436817831359733500241894052175005136362774921972957226894217328603989566729890943648922818016078162621981347327006525024588262695062623492070113266701127793558968807082757962690336897757786584857601783066693445762398446680888478359489543731964731483456403091671824419094218864441456229317277133584592966671656818762066753442617462140289739115317157173208513290464267436703611393560644105317638997008785143869234353958969867442876289566890215647299013320688767604852600319506179051446525120627683372107817573146122232668819290147029532310226006648490731209038650115267936210676280628951397391714010326889731327324594630958445443697328616395584879209732504917749337034257033853771201982204843469017949584689972095082820246095751636188258873640660092008006812855752069142293154650116951389000736902718517873249533209857929107895367302891933813180603598485309888330416192154074264516904991396878456806083861470656637534477547291236608654808334970300196528949090630462686577741447506088169364699022164565465976252912054320504865346772678317073168645558725172505655308196362366336841686106033395503384855855949246962429176591290990620223964959096580645622024647007313520791710499376233663154539713256881228363941749458713091432550465799863717184901642721239681812085643074648783741706627876688498413301919632332653756686072632858705128118098953983791417089846472377771007000375661094728242789184486703568588327046334003382582566057570035868771494612163831180892235766406161760244762987746562499252321846217883373218812005198817919571814903605587429178879034524813297745929250119340678237557350663697317794795476236510084094122954378973254297106016621374630308874031705884061576613796347777459982035151020923245426838894909724296926684582332980361690078647496772085364818829040607332041836159843460157134511766690456272592158479955599428229450183443730069054913746586176201274648610419410879282984292127670212671790125380835361441828127326518610146581868289210382702852914023553633927363794745208794396695859686877331228853054566298369832832963539089967254096159001775654771109491755296777414842084059537240131109805668873808243552492973921864446153258844125547567972621738516862873401635642389981080431738483631370762043820248731447848087472581707053541400714587758160089141729072057305885974715291661250467440809284903314957576632620131055389675549155873679180150381333661310669893735395393160693297050679643687673978144900473811793893146917323018369933271730050282879420887472090168079452582467720265112643408033454912142618086282894835230087985503578831261137789934408516348160724206801933717270292695870333159597867037033033556259786887088203933220012345016336928110028321852544541682995031003355281582205242586045541209625496169554383135009453147089935150273997138736659004181203165174218585129416667079977229747555541718232758443574664899920614667074510270138319315487662332185220859499347739294356672094521047271580717252209569462169827393435852981528981227885280272226680607629911651935052496893601577350012714985501972321211381231343019154243110267879597602806074249903005396422949706935800114239736466538169669958838007750487819678110649582136369820600832614381280704117871769081640188665939733373788881220641908601737502444135144486527346772176446630546970689639120283543933678728740495277987325115638128473893901895329448959693209135508956670765973506043988781009440856971007953412849198710213263357139490461873670443837267262713583072810563298320476107829489715834597006238800995003186695765547093535032046834299234159606728054052686795536317946505577819691868737930321257262482397968728445413114232410357924494355565155053737738972846787640791289207090712727620943381904533481045657646350978581567138067639823909836584595654212939471462231946327944678471353595600502473818047131751136864481210035153190330316327161514006373135107765587001458677807363956261854461371945201350178782580154779310546321968974216615979233787294059603463425146406275842428845150666973827468428661543951088946264055097940001704302650893752651534097715410534140993157099976144159799297268793129874697625377604492363175428808321178961888789489692050505446698089583214042520092606347397858483516279148906666490273831279373571238484568943156391939018367143194026576857729945336006922049268276788775045844331242704964660837994692081543972146553399698169200855620973059121344214492650363202839886586624359939753695559185394179792402651409292434367853453255095254009198344562963156971885250570226184835469973274386384894464117003991994738121396472537225188539592649579417331075385173415409258245122767070589109758375264163361664034508270173274483869095840727772650679008314602951742577399346846584820005263226792360562617748365480098543466755577674721586964537793759975968509720640902270485493317290132761427876785049520045445141348006893081838550651220014239233635537339651705071994803773964151297784164885462707596155342709536816716706392449014297168635751726787963293187087762594865192356674202903352848097157153086718371878349335918566861759202687252410049538513146792545920977086323799168531609412305660793467903161990632596596027685205064406604810990803394524221592538905889344020522851757749590534685160351768407755379829302544080754155798858208325480712392014079091529414345901866456999103653632632327253516140471961363820470549837274592141935277309200950796294535598162726295632565080189770779217828647361021592721994520746779924360705281820418076871867753875752302208349696134609422520880200074410405935809868560729618440815880828155163712293374583046314877690138120557166066120505602100826807128560727454660447243217644999431074148860329142939892168333284550399223460908611092933062252925206208748820208358734754265802053916611149788811808348350162076536104299124259640384470778323670448827846301442473722496746172010613335210005762512048210321210197472176174898691216863573286375802900809308535409867100729301074328626036843071149549013591677835856137845144544273715678148013132217535475271554925461356405793889294742997054446840993542849419107431815364748273212563507929631603405073874128960369120185116881286576521088512237767741216633275273045083196102686552351950783267392959014354734165436513222071252621505107733341758572141130813936116685599702202439682238140017366066194221801133708953279015554624659886612376356124181845548437202589836668923021571316353067858517504286083375220681003788842817162329253797895343580036486338346858128661661229963126624947861592622479159381564176791590085398937362768203702237052665523568435182099522244044012988072114562481962014349651651975779115312245843655283496096552389700027180041234880103572501906760727841886680358364651109601608802989851583159610598791606991826403520680653689943999585002640187501331187357008073484109011359032688864333991574812467006721344301360249807606831844790597537378300390326733344594692302438689558218433492631705953273973661673365915383738886132955450453687153960606126146044237372157448458057253460755002632233702382993951866457829669860438282870060601454134139928789818619826221792121532144518390957113835005722181318884754207152377284147069930807793953875579254899991513327549618139630643840181121346409052514797996774997296216934924239385410666859837949436447603563350292493020371668282619182180853821192797961932459056308048879530070832726536084025345268247589337903210949581816505493461374501259359588041892530890308593505746888461617024586405249753040047329415742035551766687500234761384508760932215252372300436800425456349364643038808563965835491470827747858309102389456938366914666891393149447545180644577666189815522832094103687766774861359890844301655959536427185262402355277741896191991592914970072038040824557137588569409500454157578614762112853391042699072993512876307503486046457870470415152863529310902844937950630010197252545906541255392095544873581579297661721401463067739451064781416352225686265353335484056234556747183269811899986947899985671014384197076035206913260820831253746667741177418420355493106042040305583401655187314235013602608117885586651229486081170565373836917918102185481928615681689405460090359847354499966189592825914807716789026398481348158217595895971108194446122168327024462006953197662711714385644232556045159858875240505479471177620430111659289944567513378378457335958012227448627543378181001210974741632101093348691355343031364151356186355934454459957355778233804381595549483603111547575353887985070900880936155120127948645964552289650025506332733564323204805189847424614935038212156977569377415214498572549115820164470391150008341049076102180358092106143551808784528116220877060362936911620201712133566664286001676449278233388241582255574405946998381162570143776787968952213536881584516306074928527813450131921191408183154156817256851244700077037945890664918276044764797434355892107199423208471342763664333087757243160872457461242749433023131025764740391922569459561051354515150862545329233419557469531851396763503654188222506074010460403853693782197343696564931646342545677565436224629419784756447392947253096883238132099542169438616456035814524785676716902419323656742373725283245163877595757097464143862149881229984453397721273778677721553407868204791216850598551803280953165698967244021802161749543286575332371877749091118206485195438510685118639413242606962437114742570542151480275514673888410382770183420911753098571547552668182490175560806868573821355541985220202191939612780228398955486566713012772302404478492806970877200036278963777414957691820135244633400957873429118057319544434495222913043757130233517251078072215518360569483078569783826491264402917271467205596332427013339030836085357510987135081608322319794194269762660985848100504560035648623104114177257653989580016171485862426283975294873361030395652680796636989234871190640361012963103792370971611972945116169796999498796683325504004879408430031008821976312240580449111001667481193135337703376519526598633661230929601361235479877838989617903110811330951465223794073038643795265156353744475371451447033608651357783967150204481768104885312347489205187967689930751328802633742494765473687246563574029284262781408979983514521741795439461549169779375231316770098242199038051192106232501207833138075954558200238680048070727703606977080527134546378955526496631750089549570493182049807588892078556296547671592233790795666500355358762968335475292265900588680038965430119154179897757838229047122945303314579672523785009141467299960143682492490501067168314079943131365448723929959321386108546625717952590908258741139346639832711810367429690040706017677579394898431118411731653399735235811165145964122297902771921371263856692766815731131693458944346674258607788743444488036867388171001996399477395999416206334989276852900774713457748463573866195976617356084024041463914945971928878781221400376369371180388894120802285705386975474489696215224748434526562763583479836197503747530012467222764225940463217098326409544532168919816981634058074634629177011577322019012572715728809073135875749081350228909628098146310928578288495540810040018794439552899199256061326012249238073848616925331601702881759290199921356741398857668571134841700340895508294014540367250172166673301511457679862501187547970749757732743065426164941671328096183739464204053675443847837732183437530529230938032299110763945093584217695414110181275310535239789542631747527117893762783848987957306050168085485267750796858796009330226702549612193930260857854224077199410606336101638981467524852366833457607182606524950495524300025537287356836087203083057197894455713944034960183978727333976386103273140889316251540236225912617437685203221878665599538219799526702470610181151298547367440139771830218544651484879567651094096167164983210140203203110101888344122970788906515970092979745832892278897164388146324867349370574912063298335270890987553766651184096628668354059202913216447097858666266819576366763151924049385217986322223594810437600983002244401366359411750180705943572872530750513871441746527866488808737202861694609328560356808487038329881583328865426986074881654203437544222304484586884236186975750710230188735980897335507710573906423804273447225663524499319373349959011419826102655552441844580661663527645782461400621076024316994520194630632187336248149506329857200813646972764872751158180173194069283645665369556146925804238633668494995835868076066202530467486038769577806636506387829069649797864454352767151866328119654943017720504184157010289273904654818919583677852984865500793921311518035365232168874228567942579133465404993805954147896961848318094069241592297919130126056152037321640727789144907638843282865942502022304584071254681361589566487893042093256007459530189005808186791094886276356900160211561966948180842366599676456706985627787817059398044187922652849612838896654923782315085766144830353146669192307091604250726184431609282730885924414953483510027759819750353457281099024729610724889373632446196726608707865558808805519492603903890177092180407775895170640611393074064039113836957520645944362599206310253070228673262509401158596953316944566114182090296762807547030534100305232932498701775062784959814743180227696135044995639119570162986675882865917723695807776996041085975411935566524814746095463126240505231886831605626467537360379102396140222574511396036428281146303871395634746605590203424398778079680043011266751488800562936612253305537114451115791803495392472517289879493876394987709632047148642187475849655312307070965177548045120624540772406525902575247081362490168654728250095915953217123589025599007856902445899370795952793080242455876155490814486982953543531410163861239952445828494797148883881283938352065401386682038878304778576830344558435943710008814765456223807641948565918889056520576030485235111885574112876786594697991766170381894389478922706118019739903538289630708701864433687755258556832508693701893264612919656404336886319506324666619467146912522273068131268621802485304627067878387509475789831023503845285735356279810429154117692967606191076468333799815447132955025640758081799672995238385103839259484310163019950403116861358396050212500308591058938992434249220201143498877720741250839728808957455124825632272496664351997301064678245537258747098165721244410096804990569580652570834047523093022112056880151547372719058448152783168449299219335629842386082751826870227999708669663033772387998984494156852308180684108533609335791147228261111223398223975955416217758250779109220579910361582543777546702991990439925727151508264850152107902516505228285146308077403713226721792674631900077714616418454278981860859899520282857226828436806968398887438317394708255413710677981231861405015848627376755321765046832411925195238251985734674993007033985697756648479325500607478951070874071105012803792917418986396348470903567145047992686370081560943495169786281410896669180293661589458722827870796177269219906359808277317355218553035045940325565262360503646297083909826821731184983179892150507464351441358573552162154148020985682627285394404736074672560427435064019602548274266240490396857721106852935110814701264546139463734976352300192225916441886043890786941315832872979665717069243118053980511155424993144420110134212272164044383251986918560749273304789135757604480336795114368783822350126408815644712496547430877657485837971930562669929927730439171782564773803237235524119421026501525685865171225964970715785131309450395773330941849578649339637048108643185627688000444075617840121119942152104373624636207320261795241367958674250380126101053467744446292926201802725620718473231831012392649611135176827534324663876962482091283980694730210777878480136999887698066951496206355944002628426017471304280415008918556303270673413343238798925384927156381061583431126945424415018589510694396985802361923465530839324210195286988209889953891331273777603401473758641570629183721166123153724075466796489703960598789406208810300614681321302372965551522313125663311710821039901268299942702440142461039128132492478738420597614392636531237896795928502041832886034942417443939527146167716370912244651297398010131166596570589340799773747014434358391159150171393472611584613504118813980704667682312751993279024314809013715318184330540591351979678176748072132456561892192801192143403082291184476497938719940038916192103159579287664902961383290680845619846154852828573669998988482391068061199309066204106490351027736068594066050847746820853562940902566102901243712805797069660064748900372246957186819760772206008604707121310163975742152385474261096401978314499734019589874549631632344817519816096872962467935715539418919825712466036459181481646861310577087285034512819134825544239211985625326001272080192757899805168841159666842279838827565063998545806928808311551702704578399644980616013988998029866917413877344387902291327770141415273394672795571479321621439305758470557266721293196316531968527966784922698021863521321150487204189505181017979403061615965330840388459916732753013159660032533282644782667944167272953154317888685849411128596626786662065713328260721500449935565434976349058313749469310092669199677003836369741578297343076175742800578852619123056698876648571325244245891516020376057415262524767590015260262552433678691273321881879756764105499104681525455006522195535889351731642775302392010045243910063006614265531113941831649695367591895225078695840040654291071122808364047905264921381991849739242423206402005468608044037381332682206910738967579315239491685860536605990891422848251069629587952470243915926339192399918824605060950342377770210261475564242891228169372220354103123520187294975656135937158774042738093328258264495324243250376878217350840831506204226014288802541408300601030485924771001335199429382440858650287282855468354813078971419163351436885880108952438349059354742727252637633103825413366617740591466885107074971194139840637571460394482976926949042422839376610791311501649077728357247091148834859817852384101458872632832524507942642161922062572264563882648921410888234737861157426772237712884055274297071285002253244398544894133396421245953102482474957235559253874650820941815174316080155239766177811416698228344050921546027902029950984073270910030302297115435497026151345526128705139242859336051681371089765967797750185589194573582163273017750091797502065150526341603622121678920773448630300070654128921631274389406063168218683349443863448556529231225425390096307399930648082399006415843698365340033063399626590671983937824974224589724880952456266282447785345593174462811850586988458392538387356155144554067170879396714345164126465144556152061123444446174304491997625829808092184342355404723576633827417094745665991290182741458037945045040033529224363850046294021731005177380238833662965752871939065786760910903186573846503516056724431866677810168731289268486592043622024088344374368820374021303778853612235423520099197766080400435175125095427770826756894940378846162883510594939996919142749812663128823389253782157298992892027007061293594144798647843403126948994648198349054189016676267782759065297388520858310849925148182075249823557856111382736649951674907163962889564573352529551100572617147622943980819682236401676654328833798965488416639431814709748782990909089923800842306259623401937507180545412200286394482331659212808362448273639494136864661347791177690505409246249822280314049233972258691198208537355082704152740871418925544521882095945191366744736164465568096700561220420407150322384765821545742628070782582458405496213362873585480700805636083346840456231105839816676871220641886894410137495261033747765804926370211879354087281271303914007879377675737646472718912336808861176842513168922149106718418472261773780130639260721807137109297716144789643604556613584725965997971575168595866974511565145524340079659622946126271143046392978020462623251981420407459827537122545954641471927688352273944766861482694435612923549306638721865176589203564827899818397524670443966896876556543257414691310613059330151644784137160355631229357021489516203592674770758875550483203812888286680743214649628552659524300513982168331375967444397579241210169593385822343609599680965608736513892412275415085122202303820260989994139663171677223199190230881038147778768284796689687029503923895990510049530829282753750999552559966162397358306047319114839958402553774992404091751138266790663141084846098011310162395262981117502867437779131661501154083829031918768085495995493579948055553350713284757736073366623635550310888630893033024085611239710134799998166665663560709093295649124653946118856336772269212573960175409576182348554974861647039478372524186452351438986088603243768735232047089796809372967096221559029657309424622729142582066280370036700385061555375138377132778621789773927159260661893745216648994326553133228417472830750144653828316566013695209069187701780329396623521184972596591985632110488683455144602263562504851839619841577572818607859091091104135817719112619461652628643031013266171998372502493649531259205084570931253296047656956902392830072640282613731649110878548754783254293143155394166668336768857977334367077902645075332122822892435521499992243782352407843203697641621124456259400449424797386920569838308844540559143164323340416686009790685599718806335876515316756308818391419104661842818384709277492964630433263461192581364113899482391934809613008392657474717272892789301444082619510296049347992536989706720902580056475994763571232533466334758831689687749916646237691179656164067188241532809070240122552827302740413062111769860634696715592153781615973362206767428599359980803196549681056636921072775838606238692178112111317283982786779695815318182656406165471693700549934004360805409697310475475555595937694171876305519083158858389433921548421336199070251132289545825933379208794522740394706992729762828180887211824577936530812872413077081117484448793021766241069658979452554621960447563582756135180850064858197456790064149071791011913293078381376896420390881682256748711523170421752339948579773923493655043932753961508624109061489207075117988947515574342550164573325764847537183821102165812834531567197587442898992374057502617822482293641924141834816275620385703729212708116915494848267183109889702294538546713849333323973407016246661625640973234747664155408212669106270044347445989060874055547584055556856214021219706149505786609967587408518762418348347912735567339499435335178146028399012716254882991618600228039407607063341097396237849113724134407119179289606335297185075768524442338485884567420210658458484555025894804273763592286008196832370735404131742589860780673605889720911205611250836363433086499732329445939293818033373327985672104348597882465716318142063168949188744589735425302547881458178858253195232211085980031271949292106860679387497022990899118345350953374910679789320777913927674960579444204475061472892489982697970687314002647302606967438034469113194600341845398486492960914313799195655115375321478541332857231189510945375670620111898462373927923309176248084817301729448080366839121101414345427440239446894137382881659254908583478262264773341603294483428228739402247249142145198230343290928946932190964397134192930885073065733624821322734830800912610769000011484770539030874630626060517576982613239863137955935496145953940229003261953123797973222568005816738426520308746301476357505699611451547401791761576038153580976560151342251904538428880370784641002767014336068209336747625170386322940424630903673505844144593512186846072228003898205223320745072638116503018955353847035493351931797505625396257522101027993189269212113532326251762702995818428110999172050608349709004840780746463750379502536066460589696097973608088204515338122971130131886299336730720615873152084012481514129126890764691542381443128241853579209378941738235713303785951231024058734249978505125222523355883677828724377519891498590244785427804217365672196552797282164767439063751192901448425002613254508124956202156455364436878318729579788844292307908961727442114239870228387704614781543687529099437545547193209046475547137652653245224226823154082980149139073017128370570076987121068331423686033423571102274778320863821063106113000230563122445751107342501964760880987426043184445656392456905400275118305395518472828623242390445507930928022758410496293745426271077005234407191867668922035123718322291778573768836583129962236931589298924697241923588465578192509203187035687394541629302942121570107302779420664272536586413089645053648523215684645457790438586854318310692085230501362763055846515965777640164518167297200386927158055913399441896988282218429554315657391597248263200810694062491348425818236079602246986236320275811097349887489695498922320720563664766004565614610034229290801728187395103853483996958061003538917316392625415183927658793002949729162088656581800673465203413497967070967592584931993539703619075339879385938496223727133764595580374871419770345420688117765709828261714758873237620685658488271200529449862477832729655334377428906109690975306229663278591303414469060210908149829698171019250645015236044298592012302213609357796839677403912732040733223118640374269749440415522990725402645766886095055926515943533873578523868538193425390012316440024773561391885662985994276413344227041266684017575665751129391017168661416172389464175583784331132362368005646574816032320970121655572916007633698662204976230099502121070791415637095727805952818427784387278004544959317989038649014689637233333396711038770055508975392034366889330043041652808965208649000397216130515602209441760110797232003545286939086909825696743298465917696353722293345824560217523111438394066826298066640575610201740974154806451538226661140776886438734126197684277640290464976285145406876412450932793067425051560115573845066934030619958183056533862244726032749191973825429557252567894418769591171679413784218293090224613966342192220650662428956569630470571269045707580824225529221695687771664042795035069986384930107971527798628424456027338094976955612262958748187433457365108690179142107168928355928831896823462726858701721431088233187655810201952220101248953904518324562297033178934420058934257596217136822176638735193185502237552920587864446188506470398954825891915515889586160830141019759472319900358542874264630345160936519015015050943479467404511832117504998691162385145996426899500744799432993882643438488041309812043328127671210880653469731811389119688363109852729418743063673087828851251914835954190695322605457351075583091554013002809511063515331213193556272973438910728612885812644300845149178286833697755340196022426803924244370469587231134760748048810701109053870920724754940112355768251446113779858670710183688513528730229783664403747458117824203825210395878159444690755946188824687700669892627858346958097695026981761534221111151546506197224930467932175115252644691218199421747542267128829833836597602467486124352012765747026673423720708043585592368217308700508499647102460311104135712230156319403675777892745685302170299334114449033428288997301882220825842092937433658548020419098010576558667842524122098358039767048882094552367104890315363578280236663268828801762249218149426945116167123731174794846712250270169237547720808319865537764436174081293720023324402801066272462044460187166048840518584714263419352509647537614855331562228933532510608203651844863051796609291432123724438131623162635378545779118075160781949755459208202766232991963928870990967460248953088375425165640631796001465371148714484794797643069769240385238124326906737639638342082481325232659948298775537824479134793186401394247187180056959199573205544462890229809088402796439820256832461985247514257262767405973879948739639583745168275349185339730908977812613462921978596259406712795737822174110092613841405408035371254182015678371696841364475111711729589220102602148305577576879128758324484234161605394948149518280238464220101217440806930459229588511711688555262309123787644063526107684341460112137908227250679794519471470550403226234058602528575767825252223582359711215429860362776241225258802387317344175915374732250398884948138558452260459963254579027469131293920122632289046012746023322398091128603366610842763264274859156380281426919824904187121207610695798727726310992898687783432535014664227705655313246070685867865443923835981752437762266391022225425101178643126674864137625885241653531457149609691143667812156760504732496854740455265593954180862296016663637948879527691494147448945049062295346386569502782710332679321253053120523846175753647568127731215443760996392355958071904689847378931567819298215891009707244850213055240139494128598492278986666860926478748924129731445845105933551951864263039700601962125077963352488497507020011867198555962976699720025238224671259767764996755312001525649880729637312473821642292549375751017986490775433497661481173090589981012335660310264766122757243879454001245437346723772471319569659492989017077901121097664529750304672914337897946243743193201712211473667628507412924525272656534358500578002304641324768837472490158517834698348727391977870033089483440829588914694727747815033042597109838705505987649215149711329705706121672769206187780504285877447873104115748897228130436261108923576555669095738182216575848670528170988153676553208456864620359402488505242320537875832629010753448036853190200210236426538401737259685526028637240714527641121826842191695109259604043740355213745138251577855484060512735161563422843521118003776206095399091375208478914036977626060031642659719468720836370647364524798362838447499777543964838255479830695881959354106598633541665851325837760128843210578718485782689497241648333963809391977748598191532866378570695384250475151535029874184853669511163513997043292824270420785692515452825255534090749035824715975529926321044193576469248759216623870014022090285495860412343233467699498852483703874445736622813300307345384639126582739046292555816540711228503729774736882831756505264733389819839467489694159029188002772913217424575103864511808069631945911074551225834823058701682067423554344467975678123008929189130407622077039763671156867008356347100902553061462396840085503095825024916790524827010977655838740476248957433432142744804001582720700870243205730361395197877433358978593658101157378421253293941435961488618876052480808109639028691584752885991955179703199410565710850927654411012821056240575830324282234889566080183809286383057176454852922636510741891059701776910366739054749778782584867429756644628912205557403969373239995206851777134873332252393615653751413787965767664106357279335209407855929358822113570908030644631309670986240802995473232135745873733430481742881070134486559396332658883450635480720009576207639958873109930742286350967997206811068294814288329109872186687477681369380021634931033865283673550242953183278615043120469265512783115190108219365256142131080216750864189571498886646196696644175709529514098707314558699987349310577194361786697717240574087940695285949095529028319456022112521428631160867422680946855531517932284345038992514454661674828677094289984408096429931902863684731934757246922818585508130314091207466060013538121983941675137813092513981578341217768665279487263323113746485785793827544886199955668010551274290323922461757113243247002399098188942327741593743058037739524228159690175175731537142008336613090737150211395069899120640774309363095655094252364379030179743534731614970666172690286052609078840269943317393615641683048972173804382634356372044373728814129021412351841186921722594629215891999912088822620028971515154215749367163018875660264827645116514295473998973578737102729456582455977379485056595592113590382620429814188919981756904369737441655555984385147133873104461907828759242279741507378833287994274053207250242713621049587318175409867161343772440927029326515052506689404268947009392414448484963200419391509061496521936677874299786956875784017930036582865069838573474059943515007163643040994110077074728231788675070871660169999300869270411613262568375873220284357846129862131036099203032808193539212937097827981030254773177886664137706460424188515599530631570343469943881668213849371037355781336450769333787276449394292246069482130441253351633132493284945831954622200472274579246113891328633498019182881309834745071839021707798564684020551455106776916019761751212574645177938010404349004853947211736805709222581847798353200873162041219182394669302351860625343002720281722942296985339072158902037453106320164679657670487238881817948711813115760408323826231259040130459393173865273240332294316727963631156185478742016637771952980313647862551763835575245962531949930069473359136186305130717051505013173819319604235116284895992126784216432039863909831564243312209953131341903017141062696844279995132083010501434004318402988176816238318639369614101688026516002981455999894688794710291155375869632055653556687437101676566536839393168147754262897146809618579031626104826492196901527562733925012309637299729842435307571642213064190102008191127359841423090227540426070837835216527963333155414151527181857088716925443051991625709579389483441059823907791073399434820442750089845014258104004412560640318143909314186081516090189725094945013763790409772671962201282928131295904625331040423620345604395488375566446454261558187028012383637253931970018114583308195775534341226364047466432739875676534852983041435187368751250183696529451621464085831592154093069874395113486856376314332430169506042710933868251937561125016582163287347183793343896058351724358521920259609812590107287647073204336973895340575136151302618454591119452073896890786175681774379981901481017620946375615110190297412582566387262456220334483657282831538727346637785336896952611498769332000055583387196248312770332597988255030705628289345401890291159583194229328670072819518214943262766226468203668025003402593476302941769758391019315153223557295629268304056221804657460789329128116947294241132124296998131517332086473808629111913986107991749387725204022921167114800283157904598650781206098091508713812689195413391519320953588355741670512105655384174120674668230216741994946834700764277531922860327362647310345721631593610720059363175143391301534271126444300944653520434042226703095795514589170217929326212707220415253313449822936717637894514506163339174073139109948842978134021766748398142814549563108710041963202168371044391720896990381138225212707011056689035567795493372506157450376982289921302586547677182952933064887346284644667144532998891515760182496087067435859927580347528317438693419791699156420595516778770583599507266062475942327584848801299123447878272494503980607823798151953210512572244852859376070020697001589456518746465728457776361561272103190127678739030654144815228902383895685433976138423210243310549709494020924584728776597347035512878177638734361768837477388600366814263632615331395277376104083245370812948296802894436082737336474438059444282369440121060566733278354961295350711221804884129464600231196207140909981148103955460373745092482211897420558253405852745095703738177426417039068246463025236835603392918616884786437390138483337508482276564653329349193318284699973181153237343850502563089069053399975976831466817318965261195520895206874337338660211111306639757921244902111663094239768958984800112491702869922507359141768736072421575015082851391430201538102770963009762219121172014754085064486263607206083149680894560998796199438518620784565693725260638785831638249137309684158934775159000118911557751959509368973996266111836529199377743243505332014933687091836663767523766185575565475661331519643414486611310975179174011719408898589666404959816460242460372913129005152496832234044172593832388456402954932917148837825931508407121907571402407944096332937397697213619654113603969890980384233863273668343062547118995641958330841544349757647209440246977923486069660467705417157069174051844278589439103612452469832867539901305296452293312940239184108213611178181528711028654661880211576552632299241123377996548939276491783798388211763887586563693656394078642421288015469405334977788031627619844412906930753272447363811271054231715292784125393187040487407327693488359549300211055624645780641396921965653883854554468857424993061433248965261214188753851084389388975198069967921916726851010243911679268033781850817450297230047399887449454975380989065041806957947540624952218498930280610071855593132130992436073498707781216790959217971895488251538364507678037528934582841040374215440139232805273894397668059801451829942851341729335001532536555173090205944550451242262627752266085808443000828898284568789446117922349571577419526081270946221639534005138509454870547826704159721499221719719142250888582957205131300204215630696090870691840044200754873546670138265757318292885554378182017923451183658717310906321959456081810097434127251890244805931830308661868935674368811176933732845090819553085906511791247606891807630047587390880444012802864722767249935212899489832155438859576878355787195486016396747222492028551622943481368975190623726376294862329132882836269439262222542090409223157620621691149705596412635901728505038673987437122309728295227751138340358140638303187346618395982912168950518389133580027916674035263633919979089076215407547478431080519316602119127639119307397185574685435265554844227587498512916558942516691732537992267061358941518605185488079585043048048559531101359119357792652897755909791371184759022224526272826078290471885360871592750044580639163877190259377838074252743591384657315409179245635902456243026941325343935996558769645112091034826147862813007294069834257743588327316330075636907825256201075371025960591304548606906026729349927104808956204967893712851946181917070194923735575632974017074535155512956460442534424963191973326950581883775789972475276242590873868150421351056909874606701634124982193283608240527571562149363736926895540173202783808939201192848510360345992947482431389063454199444328926696765936004080841426351212311724264636701361284456593063571760118885617727011029689281620205080019532984188164500307600477491498809930471753868392720772381968777776798105433340269106397425372718821026905113228642588446486693776788057884863827688138690555215314064508425575482790768245569431557654605985879840639036381615006529534900777518905590971615890943622961937766783292653067053068640075348085534814971105713653027850819487120855041437013254282873398011533523090569519370809283681809848871621953383411458448721761935376151718635705728509836650664311021799328071653985755714597826808827794071074448714964148685314324983553403902654072987302942037877505658614227043595420860755702318065955349982942201094960721448087823812497317585391818198166796434872940667052966713610799148061722568545660330006854251209402478607040470820614226721324843800279667212629826773961841663749329682294071043253109112148839255339282444220987212289186151081303307634963825462786953536829819882513930551865744460204935852956032207302032365744117776787166787631240534397224216723541573623707265261213997177397585607032693798952221419264460872177820534661744235880083528693340670162884540378501686359944046312554630582610449719906960759688870543476536432686675755441391576335022798753872494667704663656333781224780356337441436082244417851545031046658596023615178502230654503427745596473843701156210841675475419622873358063868998166014341176901678483354112585053880936418374807595314981172810769765919300138602947149179097832902558638121191732638218385576651742698979633503084565968852515275347933542405636214579655216897826813470451207631211228841339656107694398446522724695620940503154597051639922537674877708983680805582921778495919951063307495060250239226961076168502425620394269527813257505893923802282960118081161670832720460356083491742111759434165483822370194580757072946672046719653451227865849320277589088389852885648876420728926095279199080002943030963909386633243969360395795827619797515358278266248242309478543707842287461950906752700588158188229300630558240034268707356173067157543470639332269608281064103660673831919861295788267717762504715574991269431960299932624784194308174685279845588799551000325204487289021621815979836189956110694791695774246045923278454263064182971994139705045990002419133968564352407908451946665948140205861485882662075662871913846949233790675826617087156293942515068984976805076473365631517527828748062497733430507786571563722809420637374081672683376715612466502128846130568190453417957633593564079330284733697263421653997528180693663757347588106783460516769823309987779116091029745592447086930678750109271349756198051203214757421364657063483508456347887843191910972727839268568290169916061074946610099311247792882595992359806659770024742725881707045205327039152218111712256724026862766997313102911231348054200055025578935092406303116742216177180041377456030250010157803173459332826538836699478633978814624890592105357842775050065096847029649728437586791737427074206352478888759428576241216384768165381087617021544979257804106531684765965471163655580409721827217834971020353054652150158789574881337268067882672801667074254651663507198569111434392442813047584415433046931217215789365412335140346546537274074970713335320741506552117633104237351200765605967993388085807642786200860484515424244128740789403384951250603849298023423187200683892247224951645685233142978600701092823355759949199037168929769315987358061269988250895437319961238720359437797142114041138312222836505939911172022219400494364941142600577466263379454520118487117163383638038341427514300776631622000690204837515864805383570206430600316879987946411602536430571476689296244968781059498036417626224493190539247131259501038085020235544530930716342655795412734216881287737325249790622522973337963213593128334413504849692127217105762568984941676720495910204532368863932546757822911964585155949523339399111135180371876974954866333034825052490423311532134960584297992063309852469679141654447425467237813559399558554938465392695150427268488867866803713201202410378548391492483921287784281493123116970051332247784133578019129644414954882644762942448924719592210259864688467136357779415647827601609737953059105037137187930238802257379405873972813617305227568589948735568321489634762307558128798250688182118515325256543588679126793875708013685734797868431988143533903749844156867294115162219810566531680458465626280474911214974811484271177229755819373482961060218967407864328929590963689393617807216387307712656072841605346892024002194571187587760888120830256497762903459236958827795237818027587042517116678759687340810143529922888150979542366489063025156169039471173508898795262394886365601997469511291811949017806228198687441522365478355598123130812567602679243260011370810298753601440636565463724907757115362047416237531915061022304393624540274307441488569353554361694561051583536696309714714313506603376154999607108967425920025897940516910848572065649347565517217610030288229482321138881328931869385017990207149776657520544248570643137131196195126917776601149000864669329511017189612397241825595697718426479731604197962572009407880860938609724290833144544965898354236338530706502051055861913379839463663894971047130681565474493144420545460823626880524549827829904065016827794065293073724003127023390985827978186826640366954520151228040547704395379659550968400998688644366970416937104081914750068118945175539394497407934124109528062203232371195274531917880784590703417662641105237214052809795296110804658561276380995070766030080953927445441813067641409172864035507803648253239497062191738694496862541928703707648818774121751028454586648757748825349085106642578902109441098340010303183581252782980061787688599798009730733321413987727212584743295732248886862877300950953943796375966751587907549165672135814081381731158783753662650290242152877943069282916304762056917083222619711877523599219766252069123736587578009046144606911591152197280556837798345935347891254101061387092448704572884645854113561000480692336969272918053434782556441724504188726104381426543564344255267194138464069426111269903699316161359320902018563376425809822705325239360316741301241304954097967550323870203985026243014507024144806418931247600979424317007645522292420513257027873367948393567290165375482329543535683209087976593753430892732253060203037667014974351327404359548459596486148025141366118881563731888590769208957288216785596872648154720694131559034011673019129124868360993673812685146846272869725391312370443968819053609103153222713921583508868664864938732875524587686799564367119886857748203200085304740748535963247669145172415711563318838243351266139679866852390788523742741502578814969634718310732519275291951787696229917331941854282343659317100542329738151884274106331340575262565197428192453062578502220128136293514314577960735893104745108858666244037693408162134987465976911182701132643025690451832294558416615071277074861938991264635497875852865949733834456213013560522499006453263749336795619407946457733306983996415586785587709842859546017104564048776043637972357748730207449924412198797101437300155296865992735417708260011187008608629499008023428143109672219717647010292915453095915446178849257381342595829924668017641473814756707815552744072928800047294011982956014514206772892658921730736497352101487840251442124908109169058849806382716082533189163506807502914031570069717435329297558716297408797592769199820380390719194593939087191953084231370597267391013647123731661996116502040031404428439174158746626860861570395182273982721263566897394027916598746976831622524094142794158275081474942971020266752984149402089492661934316899534995896953550731260700234347405577214482138965404802835720338950992944582273426393809414766470581126348494636790619588367947422668322937199997816791281757107186141780291189869318941133089499522875836964478780047893066640327007230309292332107906781995068779812712089531465564486390890178152966376505592766716777710382829423361642284084702441146559926958382809974516317712351438678171014776994114440280468707903997661777127062126273268930188168333401110461381099536814142436676410033509128539962641757191576605344703089138997584124103701214344909592675494732298675404497552214174672727763158082212565190621056156204212683457708647790245725608774416058416155435203720835816715621133446162065049183283106454669780802018476489233449293796231350742706881499717244486317414841578757866701253797498683450305277594460017085773435098876947512103793115916103965665219822507155200572142315133816973405982246354242982837644656102636191115750203100298215478114809656559793393122232991373639838994709803361454241746435712437305955646934844581682649541081549091839078484329885634073683172782296333353076765120144026926011615580334747893218593152051815310816849732262965294397920665785139802499854304023021724963988086581975100897544389689250110299232713375220849658076787339892565340619507449596960501241166437118032721570295188364737501165973660705679946118691053194440522571530845568198182382820082318209913001013850126394480437528363865615942510798891615456389369274838161743896517283632140039633806445945949396255672252598832419854995329882989405390235802298140114247437971126312550378453297467828262798578454356317677298697706200101824766802353032359188818584676400664401026239974469929259658723539099675318460231448679803682403796507328623285190763499660899279899537343564359756166229018911218249365781876140869097030459319161825019085752053940720107143727221684589236738376290569600239379479146705926290449429443808917349075659798398217101853975045790979570674979267933418461438174293658552460237440100166322062033456646150176993241996577955969277432792682488223987039766387169913917362187699964520461234766974235304606919239033429214423542817357442198616629561121408985354491204626345098180391581594281743601440574105861884459512351254164684054078446610858542873173713818598856062596219386799626760798356627582705896544851804204907303175996787358009684874692233371834731423915033619468634084007659976267580796476260514309028284099784340485404592255286683313582425462380568765194144603714891806273498742665497528597751868507626956306634571840401717920474312984246182571938880669080941239681823647883746790786864013034187684248978081719176525223314942723837020713190612918273576394217838064741318879138518318711070226909155060092878220613297262817747913968261486187839656276998207667698919080156883854617235297840610305570343513088146221831205094662900038294637901720228611158506996447748747370287435501104766040984465991248084172105715004936570202979649888623217690038137216008542437622837777512399118450178872440422254670744686250359065851587436541344108356139602726869532428627929573287594051679253958777225515569038020172629235199944761452354511817808585587805376521504206849089679480858405548944072122778778167675538547064784406133008020374251125813450276541161404734237215988683646779873226440845833057589718284150490392429786419957277626697515293627192271895939617047362927663530369101921267859399688684048987069476859389767606553315231223878479374225138674159346312747794266192484519627050434741809443069663358005754061059696780428936679146438904522621092173067275604749620566982834777085669318199565867409947363710123503805600102071359524592293591074343070894353385910834548683200856431210731088579577327191050992674559434671080239768214572061516611182370738064234749726924481558511865922931203039338640507541655730533951047917261972041557716655715997590579570890121630166100689110896402126522480988867715447163047031602919632068109377993545600548618250218468035094845798088058973565335814500415951621225792418225681407129534302818958096994097352480964086314292122139789460974510470781374858352871754551243604731676244675906376717567830301745450853831646784810259674302057696276971059959190362060816707022305318531576664101330915115345459365732858148729541557394873472324440335813317720114959464991743666146682097966555781465200688737290251213115693745206905456796630544615445642775648576572763784588735727958494957091422449521145246523532358520573572693992372523955153678593913104931615523126912244837094271673327725265040298097738719430141868503976794154680665638523758937613563118128391579033859098236563964265899981406327026764369867836297163441426003376227210607658171275446293584692844863649583284432077860255833888043092342643320093846926518065000834863591850858778186599900091674528388399772255304148330091495455830242743198581680228852151461870852106293308868444499160439548901543857337477275501733601329839706341350523508270401712272487504078578490679774143139326483644293055905399190005429793109385018911785151164187684360284594135737135144817485386057908702668425035833230031731774532102620197498687170042212723620675256384808088695430713798297497075373155033613159813752431596340436479044705881399946344888541805666439763720429377169278499742323152682907541350890680062800368536727932959908286927971406310318886481746574062622743819108344971068942845443608905148823321160726283434223399422590836957371918616394743371630185836607213531590867469146953409437987600538484135958047479808059255826043351292428282353552714335269904715857338594563364662403445040313092591561725674547324286312718850873389649381587679833293891622020834373602261224031813302333937566824092953774155262580599922079694773654178770770518061778719921174251321940683869477742825077412834424693112821594966603933159127184530472676703212273076305001693276387129711224484261769971776005970342768611483532244299615635701410946363575302523697415509620053794188002952751943714646718776825304970224738145488381471526311818094559096341095887360555678021749040979646355628897931597848251566495884725157191071934310483043322159561201150347362076901486622222744601985983020846019640470928783605316884979252678278969242335332360517062897718270218530565821405688611167091417212764140777356996032334844906789793058842087297260427136944156949663758609403080156401321636863633966074457006588000194370465465818427404711767151818830737705659630948355938863471764869493942477820012146441955480364490201697636684162238750686296680969886801727664858515721510859186004704441392293140969932509181626653583819088306381676591556586070141344744927443607373825253205617869489600507688451175093851193273783765485133176866736339127902688793684112174811088806531996788135349193837191407203722080360549837249666074362474949735135882632598642844878393171835239666871566145191349024837262646313335676717435647379970499244789050410672247857112338191377487861408581504552335251115966084448816747108450683561804622886844132815652973535403643565262787322529298466008039677239403935015570551065258807629401599136981914479767593682983038284969185714544795754484437451356244195640695119388099994462784479649389517572430495568289692885191481186180095661459051736087485910289474362704087802679668584884831300244118362519429268959994706196800133030276301535974804451025751232838732478419623313752094971429509529747828027978006469129841966634359706606366343595917027965644173570051735896263288026625656522775225183209013820761983690332697351416516696270394927855617606805290333545286276490440503355931724557038125774665864801952113469654677649439454993774843252503634049621909073255067198203243035814252589222430956348036686958325591446195919147757700985680324464832178277322375042706718722996586898943129826672728370221629232266006558207928257373404834216909987410224645460016785503883616698738797147410139969699386748941304688458350104871602242524584224350660863358163674319748446129124561196057207725038183361704026289941120224304116468397739860655686291217886873135471192191672767154930790174588590123061614504930735837118680831827721340999747913800709748093587199229004847739064567648488746680644457884206138270561911312081268212917037309375280342968602693618924790750298981866457717982508906297181218083177214037222975256924951710474544924748351598523743030875582841097098721512826214022861750637196926774688932967289815748394399009102391519033577177725082237401723088713151718314424739301359664615188928276544745877476971046701016607967209566135188114815863565567165330630986731616089729817892889206115815631567393945374147149638134460270135878854597285808788085997605594843896260631420043355930902816116068365981410474174713315735562504738939219554671272976071350208227771715391642831693130985110342485195833848863156315334643438454197256101777374354822907002314277391907642712161076157496919564124694217017321950966400341057338769345645689105893614176695547749968916888025251283831567175569626627353186100916209243629647601338302643799326686466148155818723856696953531964917056872049488027865251549672776507238314698069810458255316313956300481313293642106221717443571819803198668095231514183513920387831845104122701786082928989368101215699060694491700005482326032611377460544584406211569743756806753518995799776640605162913380592717109554725919258245234448251329822879918304933032006384344759515092945891682518361728945590652885583769175549074673185778476256550272788072041507846286503857848594534998041628763488828916601728223470418724297273688394084890884423177454241092413045274125338228823381827881930758058056350998452307910790942762044283717912763806592549712967794987422323466047400254037523626252571414932121621757847043495587415048543053326701246633507211579201098971010430228937759016178913178301521861070141577421268695478242894331309845817131882523382813181225276786531462457515421771118297664386137464470694406071750189941941845411311159264980006961383453066309797710549555955013795048381013659864525724536632067814275967296089978816499892540764355765621107623747804854453778832165509380369103096691134641022217672786770329235197635622419601474240969016051940505002902452488256564446668379835988468915359727652890593092478013095691474280790143580694874229295244791392189263115479847400780175104407348593165806112431290832561725274461841459492682660377230603528019868701524454466283179485820202765553636053261444392798237201372364494744195241692195747734753244646320841586601098146246513903493105349488606048900432691468744914336591393647952123361667116607015679878349819896282762067373804881935607429625585316648106829961830231306430157694074245360811233636664283673470748462957240629002017057194679525729221466520306309072531146562417886659915026075568397955942816290109278469647960454714507295570897151313437510665230766815244265331002336458829232181129354567401321802027329458652829664227798300669717478799164073356861482668553335371834275266660197415943192275972154826265348041286808059967085348050250176673170349070519314430938975766829907036806588246473057965096357926064551948059043679919026266091028535413684714989271222125869241918043557154380110050490666729784110311994863420112557926319206175907455084424366958757568109911665792156576177154596374059233137493456678731767666585344852171269739531813833768681685442986690309896380463109377048544389017378928239818124092941804970869685590703490929598942592970447972801306025851900099147001408514788996429860716462109495161088626173984892140589078688568752438603664383376522634949955536950249396409625050033116833716765151774828316123588064165752538100585200185290340659353192854420061712370158239657822003128170339657197802800057752829484511064683520896249073946312886647194645060462529190217259860065968981190104865177505522423169952383146319135607209939936427852870586758509877528271651989174200972588802154828686036548367431942129834748196071237988667013806173571545487980406326848141617605252302979423181526579404282055917746804444461892601934089623759535323896622748584108893191210660281540727078141285163570126179087789232228455972608236661167487748604156588183734462437255236377223542240736506376416241237480930766529258938497326092365099536280466820167185238289398083346141661622841395561575878133231265045865888876619870662663152153630179919156066700180060316690747525923960016920220785019697258873130414608218334573170407228840753755168740736009657487849515604144952556425294207843846542720924511802922528781326979386637388163055940752088382824172118937599885121393519838863423482779032110286876817985896575207093236240623293225790975057528422258715869235429946636384619550398369147490108271342783146460745393132032137648857538093489828000135863908225578652443675994623836772296301095155031873546251767669818447492174709189898956151041976014977146808340632133246597702769725828325355335697690373567183269402896004976788876023529595996305556964177685541655841848903683670914546979817884895630134229551874489642822666490722897114422989448705526233497886371260892058395851145977592423831747353383668401717946179479834880771438068132989672086338548976586406193523241565204685268143703391122329676142519252674488828416929687148093081388086065254060972982808521336786280770062582489303808671495300678972294030774500222716352809309791953980738870470593401143039372005923655471156174293432598293805293092083560289521078474488676182154095966861908980589623217102786764769291022295297912577258761556955659990928401955654482906621537170303153837828977196831302882991783199450675267366484288673234529749560110809661207118726125987665618222620967167807268097961834256530162459759302388764069183968251484702178230169090490033519625781137864062089649769745939378764230705771987797595693034905157509749172191512033633099968133009446905040359523041239679119108112982821701129288028964254847461308486236131659061698983590533671809933043221563524305414034496216360935646492288792894919209377004609533225247940208240083116542731351556410888985108057528417691413353597777293232074964046649689800589525653013260478366582595592171865616520412621694128349809561109335365060749646982467544569893802821929803367388950732351738897389618082895393942090801632283695155998791924348355328442530082784650139507573116435115011059471794951164194175236864751432108250584207669385634446303026385888980008454529644323685191779542249882496010009450386966251876776510898472134436465517449695328892730867220644372715132016788173285136014204364445185545977140792749436589513586543481173292718514908620362364361884795050439830568233748069997465367917797394080124233005770179244599807536770708041389313236764295023969144185330766755654474517328298755493496162890006451257453173040224807188887436460268865005952108817597626123047152961406132577634760747995849763251552845514520280342486290224527213399464821813774457363242881848330681769797472252304084693937919610039371877566560559923058156270497833604060871475838909854043810171283890134970813623217435269199953875697220614950530709086658074580628140923061497678499293102049601864444559564182957130552643129618301513738581373432536583319713282909738502314298395059049817089443772804588738582095026838334103198882320944345705828566927532708901037031880939689489459516104752091272705144482043208917684024183546274870696340786771285121546605582404065755017659438128038377842472073096584984485038014691212347293411673176643095311108026755104127594375338108697282208078203690803098578336587668439366193959903795646502803956360380295343586886322685626098233264328527355732945189884787853482692299191389962082571268287558446537544999936223310114026429636120714623751707737667529429151934508527655087874796544517726887556590829970872457118537552354847474000409766383070263096251883296118440109127185623044022846622424489901604754794708221054720957339194966088566189950192373140644068440397344124513146811109859638167016226495251148209628185992033483523341427343595795879009932554054744211193217367553195598726595486740982416404320337615848691802725646596606334014462567827819943260119075661670363166554417928016847625766997494701286508810893304238512865135785371684585699404458427082519309286298864737204195464844597170645702159313145959203854763180457570723263033206588294596987171726824720459112294568238199501304141333421119401413166802525808926815594659065595087956496740484129360384116972369293039046308401562312532469247468120235661098092337043586516469410463326687338175909420909900873946039965278233514382737818903481909359435079046606669290578058517866194627654911405164694771705303557545960958189144886310528021929415666864158931102509820204613910348782753582402581518725991306544235671678355749072468584151792209659479534443656042845576727503366920518570381617473459120743188974365904555976720346691960177479438930324163326838991496041053093198006365087861658799056362473799618378510082798126532505086050758334401497641108983663367315481479137825749620094984958270791121289326465008587607939368986402634889539203040875287242697427443575295226226015111710895083138977772070100222760491686834300140543172355749924070813102560745860446024351106448336924680666776011938519270242542345361582609223441382708841531698155870321571728841018892193893641909066328813650479271610923922665579299128151893949154260634898506019514698256853326140979583555273027958159854665860467005651467914521726076720177892629159358850345669578330115481896377506833827364934610912624624564941571401236950835220647149647232025201958940039913078214516981485936764294202387476095396305659759460170212880250190977303373374969731055705789282235076436218696079806353544383779765737136502493148438228001869583492329614961810615561686208589017741828649038498845355747832094118252971911949906186993100504013535817743387206905958950088222928116351325758164309200816090141600523302528385420056285622602245518473114770436874478663820446998373215632013089478152544265755223289366809978266342261027906453024337050431273582615515424108227346759795646442073669829741271505025956883377564080133761311047874250255417496740151179853420025806948181723152845911338108025384829647705514913889367545046384093403234550499029628122419210368897059927907858257875734890932213617299989114322799402912986227876799193874886676390094421198595439358354875079294929179809787416375264906248065212020980403394982134941339242287782713368281041195475778630201399215802746941336160785764285288255661026740595239503392894433851254991276215304191875588697477502545992799795722672750061058194604308967043630139494703131861058594025823664105440815108830214079811618996277984199956199315115186649370279439073635974702383316680106961686841982341164181475282131300270693048836259530775087859998144497284722417559702145379963234412160522301966569039383210402917892631456381170916553669475796606318618907871249362448455853300144086137215276078996193196193766470657668783592505431957439065622495125252066709665736157687672995119979093244599737828831700548254242353767339736752432794983276609735538637295883282626474923444455891867756055106310733535868838684901854456648889464918991987355111560539613246258927150547755306276345160407148894897254847557063252278258080230398983848235029461716518358054707627484595412482680714557012861761488652406576823792269111012956505430740376132133187022499536675623125579933760651253099079806485094658015756770291326147260999204551465310819424447176681326774069842263546044590108216051446470301955398776641632553020520906199371163156296220294317683886601176917298351328113590822412694338560245045460553441569938943855136496945857526918646429209117503395657268063944130745200808970102656070726194989778808690511862181889683325225548486483678970314431467969080414492067373500693112430061557399234136930830415723305533757069893760946882519147094314352269877933381483214878620299653402614258513671504838879693450327928001374989457204440086322743068624198651519624542902673428291195625026796665905894962480223624136582740795718783110559571826092380505250169560014212596280797220823306611029568796630768598557115240745181473053674028627112944217436400745935649030896143182645769815021739586599029596052435470503069738790147900215313205935974350176526965389250326659108238084727083803566226193871684355335797827159636398559771857427448991041662088142435270110311056147842533166782868739636796875806746274649884544106147122962552400961373835508288329407728508203111357223993849790117402605788831939091472792652761588634888298870983409339659870120698045497403570050662002615412537956308330711629573526004354194298581680037471119459249280351505334891263558599995176961364976266351133544580339214300920512990332868232613176453795369888200141663560385821161483281557314881340002009888990257512776503271632825592976992925302471477720630806856338460215140786582361359621746122735845216319580348023568964362279127125421959858544295911905756548206605596245020086746327750618476384194687164815506123338377291334601666953083249047437450101774220395472000580334045970877352893484423281159697303443099044017117866774086991230471702717389210781957771777351398789290633681049770898992808744809033238658840286032026530854145975686286570441377295916778198587072443076542434081694490287416070515644658793458268767011116232207036868199883860810665597927233084485223779410447783682562734497670087940463330973520225654709072750472059030578794119614120455170504761850947572066888140430742825138841618001989038032571612334886161759175322366205587617661462345585837633644097317569058209788914990353502852481884211864768198165564800788714724485083725989691812833877726414352284264438576854800036571232965554197785999479302946169941424225793272214808471544326840537054541772582861161797018199771329635881934311606854731494155544146715855997267354872033423330567839855888832108889195288387630249434542289171828250939628754563299087012528482509170892443531702524264910536126665205645790968236326964367134426178542267343396773580278164154215993595724979156776326293570648751911183872361871844561544138064988296836634530728427773660115550532730784764129249991079414654663962663349068198135399407234664363023390115160511167124673112563253359627153808988694603410275850896300490475729774036958572556596509403588943632548016098315936477505201920798053060702060184439227097975423452528444635463408105595741966230695989909695692527421898436522009921814738433185282007603356790359082510454121394978546253122005371295081961938035884927616206759151475728246510648296047699583856573618350082974203349454980522301221449469323770517189265424252094070615985078234779429221755749248748532040846575573786848349207887539514640299575662317569785682889592654574171771277634777768383910742324467509757344938802610516230033870180834120171893023576329685260322932097905831710175810518432858079637684628446111281401954783232571853154712349945574008050290618004156415235498502729659630565234468004437203404774482996046970889599594250307376938492588499049441420664760097988047915749840971520944981426179274087586589719320938963295268108816317873435933494901622482972457603728380422812997684061966341711472870935807444747724124706651108134244321632438439552874041195069341061159720010829962266509172697137524019996744227677359221178690340523701869348243671612824986880001825545507873329201819134916735472949770127380954954260086197248190373913768376312128891502989830643662137999932703881114897098127592942812486825972961731941283134407727367014597828289229373480801457649279386153532766262764589584803229513467755744434507845613361090071083178261631002664183526023017403772653583052892379369859057794340086961721007205611099856070034382445947495399342834228781872723497831626731132084099712265563857694301528258330670696057787720011546416527043136205954853872686571572622785469364059600171556058285439417442405614978265366285189915638577856672978170473316125294409481563387371719423788870857406657623702041462159427279262763820657830106995036877033864624799948028483181084247625438745713311833201517448527783017406227529877545764577719630490916783320626235157571422659683728628617235328338466809872422577033635202230198255182604331269446713505544261404063475910674233380958794612362018098641583941220376083697177653811468284519068501103693852576627073374283506247948315013866528736901476763630618425339072156698998747526408420606608206365849726210144278481180523520200707676373297621120829118128165280146612733843792770220858749265711391002627194158145157239910780088874499202151839353181101340972822614060512354212644567816659884749962701244628276778134072206729249705364369969890267582751901938431545646799777042323259895896248035022570595286973573218895226629275135160871583318776115907063872778949372472755748601254722293456558676380300101863096926519314053749221329555884002146410677270259252892703230802344943175679665531119868323687636695541650624074349231051134501710362345546891398598239804648653474729265586252723615093095257284874800804437344275554120848729405489626368238386699210580008956242820725355809698250308823600689593952684934184306466167850449567458908109240828011392697531089991974773909400520537142977464180600685623827641698120216467715582175065328870707998374946435350388237745207189953074354153108033150934546927598634070456779147347436892191801271897012624492205943988034878937596409340133578472685930163296702704749040077032247598560228073091654318518086258551295380945779894101232878070258442327917047286525740755659136147980041578760653031735862611466866469334196945179496966657678984911377449301276768438697840762798973330430542954720578830596342012807315241951709865119024893368755142451174797405437779069082245500328810737735690031735630720747640576643372003395030845911422684163921853047367264131561108006729072925730427491296163193918671495089771953514302616160461532684041616944310605866083073175471997846684922088704954454713331236404300908556455557443488073856569906430355001822142631683098095761611584894152851888840662907921606723946764460192213835861046257944088222288140473096683774536345518047202383144478415760064454275626004641254961978095290044666092701557970865200273751250272971454615762436881210926089372978259267682591378906149926704125562309590914640540942865040943776080676384394195385743794991322111577886449149799360307283633993270500472569852820110928439490485843020902800278887081387682966654450581396308051313080337206386525352256531893159296646747587065221749078423521827616941985910649967477559412511985835126049729003705282150493225124808566312215990011405076843465803840527177107088219355654232783686375759265844511987084374645089817771265437329240910163276192295077536846225233406574344369598149835569931530660596013009987162686636635638896028178011105673371283135778292671628717586508189585693849169493766016563825901474008834315541652543391786267696431114301777638310658736917614973010448500858970485764807860660289920290607666695700558573158034482137012153783657373893541682346374518639780019807481497043526736362078534105206325367606255028862442650592984418361736155447512636456167440233829791348169032404170296154613235608149039499363664909510981343198042801158695742638924099355907517892239373742015952778299721319064085640456394421396116142279270255539592680884604335874665102571278435530066119210839751177518757961741876713755300705317283148792605333514545253748110083549172041210572788951339821267222671724174773150212307566410937082397788083709518952025719577624809180559368900554614548172393804072098631610594681253928132029225733554546397409445505843093942775230384727645249599780507601662060793523437643706161132438136751582717830689908385074848976867987682457840112655329938516030054655780579267450932707437542539502416762977458633019074509792131543622999631631147381847985566207279051499003432904876935042970487719497224143028065880681205714819658928827574790118892848600489798033729137051383533947266966736258353609532690512704053547515161862648466802348299805977902556266651754337018299012918333843764319932222549569379057991978078248446191198806053625914781861221058014780076920244777379325299893716377169540673863356902534292058086815822518912168428214486819099692006230437761244934728543853501845078721145980643110997209435846037859653149868814153434565417439133522515793526185521906011844357760747506150698096495723854552307222551363979391681688274501625343618147733718807140581869796913876745193288649467612471657090549717942347712317289229394892431091730664039831752743841992685785236441836330752483959580238349751934255944200307513478122954400008862433966861157252187238696601816482195913464871101304873992750638649216769417570472703901949287341151323495108848983507251622389116060011819731717295365546365067245300425608163040924458888593841033073897181320703021031502469172293455289178516401745429992152480888729965473690134060847742656622612407591185112845863469301488024876163360261420256160707600134226540175186272911441362832042628230241039186997569311317526438610218273112488404808223847336194227120369633811465541807110945537555263060739922951968506279886307008038996017315541011714199730530093288580828137342562440555721917515647782836012391306157065747151326402076999921966514346155069484457140430921536272871066485070715523933659817463356347819266458859119696637288261854454777772019023663830211092749028933037500143583414141201028279636918988619566712649169997197127393356332021665934810788071333489204515500365098386356369892996518208577222778306918154639716199760688912767471439049204597990851413795174129046977721967473332900024886609071413745813764131810901454274415359298720437833965141989226360223672152831742773586050602188301477777709130064046728610016229898418591520506250108207501236144441177039697720188974957571420378111075846901237745645293941272686465444103357036513220461305218151184581299687906339558744877256814378964003579371913630064588654157095618816630379979690313512692286835947020679420038809427147147888500540055946452753038299106896869001981393822018930988026047409664200351384869323704598625797803225473349884595525182418569662130180770156340281650054410153974482667186564534458801257443734004631623908692568079413699772647520743005772597753894879695484975803020862971158334496408906160712706343182982067920188830049595341931215351112759780752624499820930908123305466392723879984325239424899354377737654676974786459219245352356070226998877303489278323543014366872459335126833459659713392749617912745285740895759374013192318996474473035380039688735112603318913564308271185901100569905468239062815088558868889195695876875701037622533111983120982062780824146971914729356923213642790951436343206955508968825336132511801907753438988663532235858321082341604436239591345957965805518618258969021682068978158503010562535596603625444564531653367953951549792243351804145078507492155262338124562919739030660827335886925477976205567146308059413660792383189866751191693716516141641484955026348405891496429282516269864671069322117564905966177248612302114465477714019910549302983900987103577717896819978529456217807922260924580091254319372775170320540756171791422648908473061650178436866693975772141563599655604266747634656774449130149038434532903383237154782677514760540755167758451331964702301494011990086841872837418749403619195643006100169008767315208025894821604972718533986887526739651037924375188188235727369550744510816337555504676613406528788266371697105166520860144812048846386944020486881749081984134049332642876673420318035663328843377115059835233481010095266168176393531622397019752481310215749708837349096340233581716023559727507934022668361611376715109467903033510890367925025873107825913093753200015461517815741098123292848438052796987791187756138399010664631660107942648746718174275296103201160966688166687458870218859032202570059211502506926706170985299797513758902331050464313481139213740290960637298975207567074908326988675654477287024076827480570758071206589363802974972320694673963507219821591817645691533514806276848783781575753345998475061068862164496980354272441680217863958595016575692957849469165981351143131713903739442647954006700209375875278072664816217914220871036467610872736888706071773309302168847882189581686333310273815766183296909285358072183040357152662028242791776458631860271922437822140704366899947873148415376354545230326029350738771182092737930343416728570702973527924122739744063122762579739646008138288868931992398349266276177034232552154994989755652523299054113901142650224998221735017840220344929027204900843404246063705117867384850401976072151346903573602456597919034486477043145842016633586619583037060724737490709212304040419427042574965852096104960956602586739106314105847562595299565779874087690461089541663702145670629871461510218917490447235548869762503245326216076029926180596086047316135207689591357797978725157446259535819636525648163548940156411066678428296821330866968686686537761390949161122254842872170214166041274375064353257545454442862268758564612623064978102615221978575366121824814674688548814101102777900721294987257350996228870240767653636302904698012408000927108264585926414309489865942668534607480889270106804675770746507552517233109319206728249306140313478657733081010986596924700444654822352532270721277049902558282659913501838523255863826836930094439983568693783347392562010146423754456819055108817070494183332389326147390475188530922357099282101127422928461316500469774259887888860845082195723964682119680530728879125752919130303472853754171116791420214086299755024815077039523561364339173935365034420152863163437261852886258841853568671399667075071779466222641432815378936133071159361925050088613163851614341797340647642925717405385014809894859140326861129203542523086483840417627078842956440433044838613406240037635092758911495712895397703344412975509466674271169440551723250356067527188341198324155644823520190962983373617207466728171828792886734295131352066942931894541753576727743453456788718100920569969582139751681837870211531643198377384725918475501549831292539007206937228150407518440188868683642918941589242935336517572147370858476693250833883315556759956800764240075318296767592324827833655883270770557121055151507615001665022060994674226881382626224768651670694224550734759238171834130766413086406083133798993112400956870031620081548986784079347248967758914099564268887370611557338948164929641700003905631619140912340749872782611653130892176926477725872609498048866763211530815612254830101950958882923079589498083513242911397807288951775319655917938156417300874993646789996247828304480621163291095415419862679822803326323369624743623449466770923047645584878681940680068556890045875129171837001858982575572766926785439395959336443395116402048378858343100280891418073968408089483690382284137888470039429524867113601373776287672267988573807291306713625899904175373724440396837219741623095631090075877086310934285008652645006531111935755114052606673518883782956793912683501825693346724329862446050879225203656860489829421795079963702502526194856708823849119004833661124949290744263330234904041321107726674363181595295702420986635542891122980514254439995333704988435639746282018378848241450598510755019160549226879374331670371768042365965231524655916389548195063130873110326390089997647667246707697550344975998712258552318816741119256583484978960362089158368096055277273819930322189926287169533243896726077135790913282433391980527387985852375102661210435600995701943955090047232721213325501521912271503151694665284513879145586416361088574298924655839303999292408284551841149248811457085722157961405072468813426529932984187506979991960799187834322963870921794680411273550536378431730798537332301003694439770091316958869156766682799118279188505561069594904288288374780360511525295813748769342771313185371047481142765930391660384827676841403544004580314122411778290655265818451686787509863122452076751656024613980785853874648287008759425842704043593908510663119943506345700979627234020066567595642200272946662429002935632994466699005403823526995075175130863171584116316901015975098501037354938625736122415253197246294258005821102226821606259443273303190793090113888157246966909276175061214862837476519989584273134148700882710310672967291579321931462023056098000224401355366117189273118055794096742759316397745227977188115044961019753164386822268980424905395790974013131579101100904485034805808013179548889733703514971322927959532261577087879393456925739785417886589411382945798519622373382686321228374611618168426981325055419786660879903028152226274636830159303005411044541309364028839529293799441304025144704030952978534100755639256797996462327538658272334017232296874463580160832272698492602102898704496902842524156338863394217993338993012151223618530284575944318116984656711238725661233754130750612630754222736409404100863146357628914662232060589730824784251729833507383682609016246171203612218503726220560857678711774489266269591988286285829270679720626809195114213024195026204692816609943855224543269707585524293208801053525458940552919541131601417959698427181631396809159873458382832847075023655258455687076333861164221027612012744989314784708397978467230941705831422640596691832544755078599852443884629533070319525635670002810289712136480489705439142807253679911872565750687582606526794847876112815806175805103470579342454026923439241816382429891213847354296698004924544956640741125844090352036734346565391540594157908134425671679041089345463250082424618058226538439555148693194190912675450446872682994221579835925446641269517869597744210976218631723769992948870418768997495521761534942249566871326664986945276449654134726037115616248752873479925444820893871384182680845991503359483961467746608578387261631586857632873794678163823972734408466005064748716014821266352945578678262023894750393625279014263942480098635204440433022354035903348549651722085115159902414206830285928570536971308044722980010069908423640961207657537382529558079286428263094317085086703294904099364116863756753061547173257130348873705012334484804222874549728288503243976435977358868929731972539529021769501487075948048285035670813081412080489497020180767047876092662375657238143374744422628299820217547534083593924743084654520807871759824805621662204633241061021208925692501442175061056684787319922753015040772855007011156558606880349833413500567054755151617314836925422834346752607725055140068216021194090148064124862204542728487247036989827331802100515190729300651793469757002638179325729622633632953547990929610074935434344988472714153795354665698884083874828454676527973500734395702867063559217774101984484215222521718368110361067165414538343564818636996120858875651162424802439475896999759864430468279545525822557020332745513223224032328021394660826111565776771903609551099188087321899170745486744645177495691320799335871926287841001722968677212232633957501445629026491240840933799325113892748927858533516858347589186560466515495917874319979089022371828532411060143011879202145468225758576648043612015048931587601832688257056836992244365358271946098754582617166167865213929851468562246755371727898508585322626402818455184166401839269842419320546146978776243833860745000409022911713656556571307477797752069007583353632060806949459177016037624189019856371970782265517581347284591198802674116077360802278359255605361238603349694601749867390324921638764736300353293512412354376356780280568035041159578296317971843273121611095744317192206962399927675983229762331352027972400169351690373619973214663265942336877601276059083989499328268572932837838197534112369081381486469586662686599909088455081117776651660479628269448091224131487209102231098637581441544721425804167856075183228474109846740192959839069572462937456007485509545513305398865831209387200424445066360509746302545075892508345619474797701523759440368581432891508946607759598951141931705826704994189062077916732285464757174945042199798664529109017905530921170050293324862177575365185282342966033699609908869479024690238783941516935825079795695669664942433487463211642983182892591012301936115114419380192816305639382604920051022176135659454942329703633476097991645151765939911488862514318197957741345570473994906084078065217132269942934172758101245775379288223807988249236965496827803538645561716738528045774341354145105239001001281836846845614997819766508618397913447086900874664012813033967622535907878196797479317899544080749887708322251070309463425099809527291823146726193206315976892462844067953010843298669032108191526469550986591893629388334441308177589318864882754925293222823391858257771236660159798828871345358984045810437125736688002081144111349114763746003269796255776002550521655997604689247303088842638430335290105492125788616732719948588709076636991716797009771187000751535551020579024197438422767062629019034868693979716896288833302428271972449692938837823935732209805172626171475277710152522706091404811000415286616459769939878895243959076123666402835649500287729742928911055467570687221470028600593164892218529226507485288163091133662403508314464744038574703463868658614157525357189760747006100722836485379588669928080028244429491951620623763600413396506811160186269147273044479349407456094238121748502412498036327226395117864206064446453646579191206698150673890261145723927948044793531650491817115060977075531115248142481191490321836909959305672737447149180536575820876944319786139524154462521584970001587931190715040031770508543733786774333463777391302030201990441957838322428734550216826987633346648051524290317317005819361005223531458717636566472918377893664295591813922770654899419473640615898146263873591278667328260173370049508343063503328713181129059607284089052142433464279621577780440577602984207309316142709845626934523670789604085028170452578365877536823211400185073750641846746256832965462267083013156772266682851783548503143105902615073983230651237445932277118331630039188083791466172728550701934259761622044377913562616860365695495594695386400877799913795267885383001700743387037784102900349732135406458484506071418097404883523021942411952934348935547094343115227449720417420949072216479033536193824367746403916743063921237962976756369434017654436202393883551994943195165533192040350700445352668321273776498096384053733883024528805628287543317257120285766098922675586157234880600485033465288851571076882380352332931959116308022847903616764074150065072082578876273312626857307234498693663156929648558118776469701958088676435087588159805236441267520216131868093690176330183722341568696876049031854889136249567164677512669246190799184386272857332489004274096668087996310478008757329403635383211449587725848049922785673042307813683066934663075942591959994278496744132019367681729496943733084578665354100797481199080366182203220163902301256470829271953345930715719782094134491695582103644548846460899794919178434529023725428904515215334852543928048577133001629170656611083657101368526961057266325875404493354007952608757869703952495929933127558734222202856088544396702740893525414634410699612323722940532729547708493746752442434892643825940300811955110253915917393632857196872388097086726163867636103954326706351323944083220301601501099958219030608614561969565267817176152619491285747040517174635650553278970627708357618961959452318405951605165811296009098681368457820335576490207765055647964938592788724440478508935653872875601144606120310826596742773644123522469016516249374877556249884647968167906802696902258777067258107395652083898915898943744576937338500502160516721588620685360583205672206116202442118165693966057558282765810775318090373969611405866791791987695520396364460199348802843859732098664600339321082585078255763450670451749803621334554988991986350668757587272354285144526553937822604309707158086000970665514531473938031791114177266263037686783409776557451022068610637105516564381881810021157311075962414154349139574865029058467775137126221741861028693532928110090757816779267141438808948969664974071106550537331709340859300653701315324892574774434643710113694096797889115286418517721940852592423217413872396165284207116467463406631888703098053203505145558875322384259470808167848428557593320988711441497414848937590184849937200898159048347651671830250080878243648652345114843687975025984101808924473450889063546491636070358327953310604121590187068361764862646621632437412782829563209578128192622404700465255689116944181075179268674890436590672903150830593150763073638171587315865920993967092883030837670440147047006610849530837910617079424799614229005901649759026578027184506417669908121070911184734889142997962066485041164469163160904189539152173255060897803695143827264487155408366142111336080367684952921425951819846149061646095642901461810279368457058397593015912320057601874817602309794009427428463337597657367338201148631217956045775512350016384682599931721091007816138529581954338937262749891599546784929278782949571008606038797623049005109547861257592506453091598274286655523431971159895892739777094818502409093555386937461336286325752155967946220747674947312015601119341720659531993256721157278961182590669000158705598318359435180943556123530912075240889735417708508388594261915542037630076522440042898812449430662989948130295711436587943321924822937561151534264503837926277288011102058790584735352050881852933050850692572828614233697472669044245529444924798273192393482863142172809347580171285465483168609896977515191523840345854941880738953739293397664014030698197261921794738645469667259403402307377542603353056524258293336275005869027070662563183664220073529575103273908639347347792097020839137548706844062214232914576305710227956798622926107833135376850893861380122051658024146689179245858742378637437812359680816114850698339084145247958283675397165064395768293537789107040454431700774505419350473372968478510628217376173159209961619780045561641822187903133553163839611357444541543886280199206121935256840943936634903415588534203295911989938232327900889788540672013818616438478600718523553523079154950184676375799552812416727551063250915789672617844377408884148594575126710627374299536596684111233947830088383248460044800760326930725606134764373028921842011452559302745297989616879820959506738459590694091942497750439760183921636626284200534272034545321533117535901679195491386825775178511595866425623293674866104279572805182509631390627175705946715930377177936276341177999899242060040897085206516257479394417426718278971113463237750361514648944070505378135298608753214771561207310324268952215938390837619788160859607565918888166793995859294708493875271680324776737442517277441426812992886473945695920595223391028619625603578112240601111949287067174053783747066616253158007815867946313537917504932849349088827403975786724436156919788905516322927446695405794365981026582829616999724025908214945806607487159505397903387784823336112145734139549770862933965091703257171271776383114191315710848480467005017153610363946804094399825837097554607085974634496605301110045460196412571333243884358180491397279333188929687309782321021628205468361676390601066650314976252788033639430422698986184875580561815192423821429713254010067061229284148091497322838208639151385796678120484405938449594934081607059385267710122159275829660043288849783898959956382480913211400587115781420865253945057018208136640246838832252620722638414746327252725744469581042148995360027145171441788101100087127626172117225699831161836252019374109955629119435097839837444659647520149463902151488440208886943664556246684506754751621702420709307940633326282590889726571343882700098790713282060159411619844717272374000935726570212972185361428549039571794403083090934612395315707743790725685845123654110633584567424195937039241910052255350195127456327444546453205594572831836401021122111659940115794099758874432725339067582555924636901698454861481305641965877854547379736870091999990478865142484845540237621690216001617919683780997866303373428524391994271891747072792302312488096284590132750647708878873044492765814042840940086902785617615391575879992558843565752753436323410809136838858601293231571049165570798860899692717348325986900410012755127932244981320744499436839996332802198270561965979340671954901451805560210486475624212057236515782104913738248516805503605616250285047220232585409700146360139367522435699179907153694264967500717785122307442313603207379791925271580010059318174272459824761109796009525593291290185497346103348321965841811509162784553379968140081747231416983724406388207454658243328263432657678104282406338641494056888808265730027546415502263492119059470695691268583382663536817725102626676188678050563129189642063826712544087228268103239656707689214841047338168876026138475663504113837212028886502130649291378504272102406870696432025575270279769163539956416890929263159305255771355371679452885872878997527474720751835536282463111920267453445528311661849480417284003740815780846176097845731677075380166061147556953426779162413959509641085037877087944387697561045301117439639594929016446635245361337179046218047650700538787302615373890143216777109979444229283541720558644873243920537674732597259922902125938321813341654977176498331702096446201613177466535721658327706665685182585747942647850679961783747542664696218775721645860122638911962156017221039606880808751388166345090217543926952083430798004869984450175582513668036872409688893898660564319778237285071242180202350373269367215537500126854646161216097774021482728920257953396604953844065956772844533940555364622017653281715228733861378691325507218664892657136486581927055759632710457027743794952792484205326754529295456661314756369313381312705272581071429928725776319924610997804729882923287436996839939481483353413650978829425132547641175845985854227107228420537390312895371668800982291099813996069695852413726486747488059819902690844064157928345243710597059288475840860989988141717658469578012947858688572959463397348132608539702055748222942387480884709827492233767429585983899138490858770265076806553899861647416589882506779207735941272611069241014501461230629973384167235304346338988198188725404808576148539320330055405273757214777004093977636439305252441280344807454632249541316948193472875359043919942828672706431725505586240017456922484396557362305333552679000238631005989600030583597636115765115766510330625129070971349153757403623057453844313618867625179772021712761603634943066215660217478750501437752835535921389561351070577394800094270775112411479365577807694043924866733220647295359806435086728462062739885773287966924349510803068707503863034461338145713353126206997902457151396143959456524215475117213526235402248626094271765243097552484666524648368677623313989210755234042958582612040818450963481934426462986827900263489644104264589974959576653934674870513750281776764511109915817865808036272065761342297053851748976166584055353187718499928686921827847110921002532644580267834748185633121110871258984291772948892957950982786846987367282915758121295018313655477898201513703392852087760538566121402404286285762992631601143743230047582758039361791737272473267192401480268685950389537813127551820009581737939667906597623370839875595591842007658923590771096357432203251667857705866033511572445773324030546760502644430665109510598442063140371821113938930775719358930545598996633387185855072633648738164050429815135890142408419525891139540061488496924172886692333343031512948619638986049874941234324719432680805251009971073980056101934741143677355284875744746984603703656810801204543925749304466257765439161254165474760212306045674455898294607888390822620736157416279343309026494688575321464625654519327734007363492427678034639573020454868099541524875627626270480437389479112156267426319777751588680147263752672042595016229076209088717441218606317754520873438740325462247401522892685405036225225922193412221840287450331835375106298298033232220584119130586622925039780235299787436906884820205598854347690585512542839348913309597770061018158348372338805554182369586557079189303315380320458013630597179853797731828895939294551065974948325022076504526161341513533158673485017925634405659471021374301077452973777742337854161725699431618069862552032146268006661148100752962213593214399150136712944440890856826438015814106278848375412367836425265043285175856576102154864991981794580441093113140948786418898184391422045172096365061392894940596466506719038207832668044600605775201627377855349259780049814563235946966127724002504404515149958609848114810329947593902642846414623544694891147837071493422507522602377433277437427032295272245184680748234212927095992043086161003065584266502029238226874263371738241337651042799435020746691066548395589731671843510539397488071305622820049814102488258919225321151677023159366008339363447289581653869257335573245763945978615109476660248307662989175599237091138812844019191337447957890392933678065245921542088340473028754910783681860439405278122687524560838886515749314545157934531635908934480169001427420806778194673774062950983168669490512063149975980483798685202674193728659317264764906941737466055749684733101624875494860245969121297165827941389889460633424377690844742519233314115123301083259125010620769846435656340766138910198749762260558676638850969303512755744383229227351044347795520418968262031530534529512643978790534894644178699181127192093798919546602050505483374563332563379831805410240053292666360733181056234861390325962224439821938678538325817204593435404230072295161364772190186999852053749556249622801198361806528726847510930315959676563242627051342050232517138825064175344098624017616978364851226685528119249094752575765231981530717739843589704945198744088217014860268998492465010266733453075772124127780876317176130954899573260740039395675785625552541525764520616884875916934316034732410493647884398201735391869686181481003549963425865789051105695672536659046293547856438609866404558668186435303019459146488846031207226641421481031312849969563258066524169124935159146906087032891053218566949520271493877164584375767692439925630651761714810610582274835035457440723323599117787122291032416371662311376143283212925610100777857894031037201592157978961775989007709249203231896877609066661146924709714854845073032956649190883605791977528115944113510937710887208664628225188689010616198088748820063580551288211966284562469280030739710651610853300048510003878639367645914457349830498675616982620545536167461879331882291930638946703760918285845982047113429991159608570579547953116471222417092913997537817759312459411171300861736593660619648993506080748803501979293452250703852795131288762796754121610872801743639222829749943305902858003625722455523839966353960922415222486775644882915877587530548110607365550757214881074108259418716574427031499875694660101685349219937525325164837601359083595329471528653081583734842756412097774229253298767406863409266282571427187579871308788573141566601669441812817755233497289605051067685238032119278829099367560759973236341561743014016544692071333767525552882195770102176694419760555507717021363870477719345157562358206665907551681550009899286006919883398188148127300697535405666643052027842236205821280593880586970605985293040257705357504985032370429445929483064464895291648944197615833619042098517588168683908970210422943546897003276889764535382631966013018174772881060416150608310253949243553764953475504287794686905902563054219718445934614056600525409272050612097948856958822255121192646497959315428329231413395857528272954217201628424968485413775492448495033753784952950300732648251695886169445863282475993105022431555667318225731620591254893545780674734034310341221697215179117088407325222975312535683923623222588266779581499341845039577676268322131652615795014683447955668149853737856565484394444551924929441792707680740142620409357309300307025965495712828701406488909436019233096197188177574861648529588332725779936742802946181256561496291492949031937357493395453845679718852213098298332222058280657668803247477520389013598531986479474394939824161082408642687121949360837433945791987367626771098042878377404513729193981004056121128260839153153472472277908235721762105519865344577548175144213096930881329973269687456445031266866471629218917926974946154804338573128530836125642586834695687176566774622506217554451891085439577662166624636122025650576353950870523835655869228175621141708668170222152027299522553652716965762113043283478258759395321201737417115087248170969806237264370951896418499418589931181279061740773201924072340560547829745040912056367200246603727392161013286621900335872382524301040093530027841842172651953463582157289890586565233380349618164326599546910008640566629234471267695917697943274129732561339984827355052966486415876255231598370451701393817646625362390051952589746698375732420823252228847418340024444194114730017622402785421062369030552362667343867682700495649469048517623792990909629492172712648948974943576748201120565419449472079940264991255988638649490064016054843320254226439114636379533972811370966639643103147317662447212542755860128046504270346910840868330440605341598928103023262135075873500308503118035691462604885071635831064158437546244087395611465312832929448791547192266606158750955239484632088374657084839856662491632181935796477656253337205968669758540152173601239378877585363408696081483073849739571280135164997858770249090299300597161226958774570971648918750323051402507816227116025731231245931416481581023429834130200066553941602546740936449777102790749178523099825160707950968896601809189573345156526040673206332952958723238189808476491349154424696299672285940505019628488640641767516887420609503068431947201794700249683164843117139308726576240900070166315204677984500599313310497036433308397767465381990745386331629156667990258364351700593572983018751618082686281566144331884703389060351381715855951643669154511154905810594077668606880769710824662298168049672771312777045810003398072811110256146385058052065681502979892324634329468427840865107718010389106588436619866617436428346808523180625742797157063761190682216424965937337840394554262481712057214595863187150738110856547135155310368980984658227264044487219630309840128249183770487758943336894806742342995175736703197340027306469991625647293677568917792321393128402514305561202439328484532417489758196553962545923182622585338543338235772949181840251350851431234697993127024187971137526168335805710935413246574563570604345378004061938389774404841682893864161452684540441191607507422890562825854947892338037162632499234040517045554020558502937612690770932094530832976918895044641548145219506230382800999598831584101797836700705601781852814684792184233597182243119940245974867763879312763948960054250061341064486213148383040938712358578196991746018890444202054872584761722173972171961763599734734234586980983805979448990805296414210932135527110617325914983666283941765112696698643920344685060439315407984378922918724132484029327434137541753543786744450940040434279753136124808716411742904852568428239506964918560383532765539823127508111162681375188587056537521617828620511601715584420973409585661376029197865894177182314930824485834092550516272190234549056919972209839298012071264160894780551862374947662020726043850126178571824687659377684614599826008244966322795684171659840423701702923256296929811408269283930047816402485033417277849413343118242515506027897646107517238308988002021856944265932739439268420006892870255308646055038817993517490475849878923265248657821043033228513212969112432754263458971762310081526835694944905517310138025634595251068100933437207025441717630493567809868995666046052563000681027332219241744230225597015579482649568525220525821820756206865901729981511959266342790501249228219816383104772781729739471729243531444527995634783448577266495877240435211694930663115223891216272128390498660480459331180830952423244817230257756183954720747111111447265050154029591001742251454951201534402376975318278428986346503633269375320396706170643058783422658932119614098844306314692578818539378852433656412519106840944206988381157564254344906004007422740725088590870321681691190629854884340674932204847826676488697429052311390245308699425032843971524422883438575181047436621847768291874755298572843353867005009429175060863653899010632685274599356225559081357486664271234109286875134520432735728884497259831359919549784344151475102643115920610245652695431637722951887567220340352072753891256400667004439950892315052412352921531968916213577830110270971347461719394902494224542829535520499688111480967925007575704185949228066663599586740957012233661037975366447366261953194333904642936178928331095217102755346904007788165584874738324147066844597218272524885616368151228120592083805367304985789922720014906915098883387532115968445395412176717723299039596947091386432540586616684970920572559017058364470873880391216613737353564462703206796449733648912577548477164665945786533697138033897074445302455666502450146094231327226122142488533087924955578463166511423783254967146793913589622886542525203288435523473171969518278273895646978613552496022975342174933817845895647862865287846474311582690050578488349499010347822576678145052987133175345321143571970643376142203120591946102870424600265713581318495527468683162246919268152408640263303946126672013091876211570140459396801601525075817260011401817105077159257395793585035328115663785372389793747045476739388094292616222849274174124313793771589330440233759563961214551082331502676110715990574356596293707948452817919902015162854566565515747122019990549138316511047943261307917712648940122217676956276126484851362028509379209117440343997050927819637389401524671328442020566520565968218745894346779274188573798946586777053484908372403238246743762776272055653078522802000722597089757472824964450250301202792637515266313130892664062540794843970395713833830843843788353646149678987951575148772054514750456988641291332682557309322329207847893713508893224450629471107045406575241536484667708976795093311220768585677563554704958499292982226350076012619227533849485734306336430308579126122368161073409332274608015544553241535323403033248546407954071587151942776618210451752186557051655763426272276693147344702181244893576770444012817256781227706048150312288045044592383199845482107438717760259238060629507985390720366102654831423513206778887083003030201857751686664803396270956682517598434049261121236022488895047924287541990758286668294657181166386090732964971677157259536690154231353503423654758011263265504517288513758615324845695561618999973807578019968976053275513911301149552541235066621837676989495433205272009758818909988249929827762760722268207953897105989288451458942137188193111581444609020528329161644232637976519072988612715921732375523459719879760052951878503179219259472425170566675936767653459179034699700788880945992940947960665009188587795034786918277236834018900749559345074620403076731415353977505174682077188616335286966825623006479791440661948397490591542942055761858603392410689494460275899189521023621037397324744350130472017121761154410729132890926246218753408878082673881529416206852860097153244403436703815659999930882850605643931369584475099210615064862858745348302025239698637917995031665017456330409274997674716200885396561221335720091869131060555995287441828975906274295592722521740147363636398086263835341224285195026822036781364506051569560534882942199193148787246113783319572544030991686855185052349585099832562818065479908836853565522092531249759116308877311270941231883442025007312201405542032464587100919862386400196165066178883440431014736199813061584226415898653573639551393165716831646126555229155127550655381831204807660750713825840030454770331990880368697990320663807431890453051792584623477647818961120512224842971751445522835537337135142671642912840277922589843300586966042761311955890916572171900195781889213099450494708565966315504467356656989353164705875970990178559552235536742381066092488636582547345529660034664861439454903310015418158106039259022098657197618863316780510406678405454716385008169590972401086413124114227192830806283152128956003959560999213075436784866764305654676490393053485097104588768801708887438176644116345126986729762387489843050692768328451450828812780682521587436302462236235506441742611510427276759264970097862057505082686323492783695590570774818117336290732876007450263991587066356336328830769947837171832626562761458673004862840155298066911763784057426821460890489420168818013747082776736647518615604029653139305321465327104905575366288687349572138727038759100279668986457381613157532242263501957199368408981591451315769319434564849925415957810943959257893716914407571801165391335615155014545955842545904286673049184394154632894348822648595150545203291766071977459761619716468831651064163212349664853434642135778908923419130875837839718797671597542641331173205112747351398044580760073717560140498323757063413733930456798230516381081762182412964526555744868406923847045102952690095892077080938103125535252107844696911410087469203328570840913972390187289782252571476822504806109288602233242772599914957705610941042978929415201722078136096683212975620058987386653667038411485750832575492670609832407498564298475034545749513216849294045519286149982891837238803078215971866946865311893953135174940796420656821316997472816954325838223455736233629802337446456776510230891775382294414693100173544347442269407563011299336726608326877501081655371752894442496597914230345690677502603397016688420979990892689796736240490681017318314055394383822844567330185744389579921463806145301648123985242742988214200042943464895758731714757244831052129604994459961532589583809392163771161264863739873050735852659232617242564275374712802911331838465543188955433764943995965773542605989026102518610325894396228001455862107372247080528788985618323009475371355764595401985354283691579911431962498365503594660265433032047258330952486050867296945243656814171460289846061928333788180342892006757007268114673154366299438878068397491514567927478410917363196634925293425850337214106750279017206369923406694432911082822468268996786539348466194118137473856228979132489843228986349164802231112083136472709641075192222814786268040432039518779188061637814814814119626157550228730369640508609551990980542078731343207038272394742020318695379218490861525534775922063712342683111325724956030340488732994950586313404997317286205179498520675638061735007059816209924771097321710168614791646231683964557746322665809963316000160257781227322439978491722150629319306499406646584324275463764124896612424170548750510968518954168251388757730788640230256829790749875998711547732368846990403357363637026237975917587940979870691364744987073157111439153664730669029455157226089370418501273576947605133343671569080768367960292448871715107266884661988380966274073979621214046401556483070502780539498860630794499235893473220767545978807575239100702737538169533295731967230338985528413082186866571272421830588813126261128057322538787876107588352285792797956902852903916646276897240065083522290782379929665225434312394155933682071088832868483877848328435057152017550085942756529971337438732388169680216588237398135528128210245771521632597883795088536440394160318785966576161276658428968352611056695882013329254158966368558869686340881194659128618481999348076134093986437663879455907262609722874038373418708386939213774099523521296459717187571873783859608463891053435618583099135822033750309402138037615242644882337232076584105522390563887342822239854051952472159790074948452196710575239762514084273160955657992483437537736697260246401183995983688233958872192105192283745022941798571073030010979001454007468407055918852534936123238275640347476173116650777369251303659231027792127052134888991597695727353489153011841729111389402650912969770879700452944995295427998356612263547562666863083978491191139077834468985852824448014988153057038009216242384665952533356792897498831501613597119751295282170285584332497033007613233000343807141098705274500698067940375654050473761660072041703692767694547183066033663006465008506395831878635148413460448191330046021123678636546712053194486130561068846702020515427964157139612278026382190111996202883459732948044283953355434016014505252339123864738722492119882418210923153566394751342060565287313960800291747384399126037931720596058740648002589229640770775507029527214298057968526015247989650880908738040488720624507379184098843011582466520337062613620106265054773675697379628060472450084875151547874008163573285148312784799798465039682496985339467727109078121644360347139440065652133722530903750811201223604049637364914317426425557155591614390800647676954576525437759562878408995977522095977224202475776273184475379973819732854837234549216896635650256703653573033165357564274801275205113149548848878004396522701399607498474300831580392239629884280358264945441002868875955962314734123946877222403986811204018128396780995377389090729739018546678469601170287016228302842815360307103295476905765603922127204383073367541648646928876444807558600361900033486546011646472694155370131552088691107274528763911362579374003394233358930223582265065495201647420282335383315696969606189177324784214751910319589545589927954802121145563674787976628456135154502059877535608100483419895275620956691820180930354070634686973882680042171597023808516896501490807880408053568179941875784674770697424773029653859663059477952403621767879137657248307349412520147308243770622643381850694002151621097995646962127131047214230766438550114083989146528285750780748134823132479890155955813663596378443283657311490038010521629422267368339822679810815290771285390584069185098534270051684272842418857127337196001175547442949224189473525291172828181275161364308081639686560505830778649579143476880118262642995370420603228211066234492295611530318800420629885499327329441008397746973695752961069016960104335799390796689601856446258227228347800405605689690080772488784294570185287759982698591925896103667881132101390384553180706478101316657034069712374326803740281307520366637203462476306403482339587588443352329888289791029573174913747739901911443993128723143592154591254263634331536883669222134946643969908438059415789199144740543863101530183478295451925007392869216469823665461019317972137568675052422922344429814819289169334553412667427576346621735076899118470839854771738869744549694608234778452700874416356797022323498586266875539493361306286784772229401133118233305257352979160921043521346369347021173835005149780904834797871903986490217401931505706545700324380014088722041102594125027534223866816314133221922899884627234631543036565187911284051718942225443628058781703130208156482547996501435685169177073677469953976301314730653166590379148559120341286106450192528217268738047135151737455416086220962550495491981602326649958492262216207448645553348363171515066128462918170796737403788711648424654035861206496378212526036833994114714648099997962642554084857664482297072631399659199807451978105015044413739697592920983813466519912345404998719454311616937233752740332996868523867093580273736678772414634912321567626801895708157624929367385680341127611654374959330449931112971763322897280664985041366186463256939151241761436679578767410846449002681287110909286329708857371382124931176856859771350487727794368043279583097614066362078427340801313706708001332095326453234985800325877294100666593516132420850755690463897131771013418771533099294575366136413088956388008237896207507626304668811255994516849377382651521347121972603572043037952336835064313618802034808158310200784682560987997727351658191730959596133343156045606966292811547650368084483452148919051227551444776322502918383015564318960325873690362612349785619384078254881426827046168738314202158291335105910496912297662587373496655501056952792367144879699430236115824457384214904592201771584952133773741434884739882507965739862606973541361508841673515121319718476222315875145026280484082732439556526375227050615748617765234151088641131616874043887046865557497618447099896092813775274350889459448980239704307896600376987071971882807051514500706292824276084482984716500497945472917257871807030877899264425474435476265405504195759830599837800580819934074259851756561514754860211822271448611184146694697080125368749829866824278591753105281366978959338953409964691117332963035859497561981990084456709618512223104078680089739730771255634697800595472380730600316154925297466850599897283380507104552700303393337150023434440243312112024357126471162372851858105897292639478055730096233005908411612692507867407945732254271938535523255077538121862110594901826513416679029799316134281083763953058908586029018765671885234408530408394368074138112762721628746919678406217210748677232817323831292421760099708587980816090322924691726164029563238311074588680387356161142199368901687531786266781694063741273575463117705447650189935878751812287804386771713184758561522899278363266883310525713455779449797524063084606124244405308692051823827635769883748227308270582061429299752361949656925829964852200324013865758808289404073865940486441987227999075833801386924326816016969527683594480894766163282898760855620159005663943895675574324018649368228286897127141746489911578407147157104303481923985776990032999157803342584442320609927535307832879207255028405444142870751386247535566349001153366090553882395178181904495141548719568306094984111164109302530243641541388124049018626304874103368951265111515019813526705957077364454794269284421642077153732746439001955446099734305794644144107131642481992580703626390051784348204399232571853875947353557078072729937835735316802123477763733464899681167978230902666627393080307378657415041334691376615878930059437795622793941239864099414169246705318152163314759411732867864792761221291583705113001770678693306996048472558411724018308061873109987376611920100141880707974377503408297905594443401458220485146419982649607917801598267312884386195891085164670348244342441497977120537514839708399705162865353380442024273082130366739669795764132269150322487457274883474056653337008219917430789818319644393613659108335936980774489748736469473202395241919235799537573447979691430172702924883309366132931804369174183465302320402568103343706697605224686808390750006801753269931416427535847549610916205172174724514753962923186158838121539379651270170638095727664618656166395099179970893903238251808927048527649659474250552267804522872581961070155360139106625542620838805036651868327988869903046922785430814677055699244593198741352858177439867579160184397533505970410487305151657664159358105079764428813091576291713818566359136853643745873445607082561968094084085961988447799301309180374559815031238415758482038877946506618750677979626477920000207097920587027154904610710392653066121761122649987989491005811468581509977635650147665945386304903237964652741697343816754909435417736622555254919024314870226549777436641393342277304103088777820226738978566961421453031520598082214078410928238643945524006995616717592312705704792414631400350483874075612568226905900207437098924781404567802411899562707148331337613226425286907116060207277536194968162805617587640246656619921653040771723447374146267396448594778881332060054157727219906271922684590989321084587973434686840599149560566829967159386129923504194354373234157704385818734644873154980927869081859160047233854159674299914064139475071831329173007086378084873617263826629817555376621853318058043097479727859281557032745878111136984813037653664029299344202959459126524929721791737636162240147126359712817767556996846260462238494545499845318950504225315339473680859313644659835913497438697950339847952979842824657045355839248732332887517964159876840172738874426851686000830580272394137478880763608082343236938808194190050415120629723073342497917103512352267512149396875586274336422551278286719478527634743878473534738791429065998432617320307783951506057013775134118007958228970486099406096410006768022550672619070258740971655306356906554224543305146419839283115162210533502771692484636412846539697928051166665496643572548143243772204533646101792006711984650419038664438718788903058177958539839752757775936293185828116003499227902622829464442537012903022054930414388969502370856978622686640768408587047095705075470976535288398487180955506167688023426988145314515064017168263784874363288623278106131748152754786448449124673540808244663537504549213784374534660257124379197086669730516027387717005613919556581561370066358957164522875439398265752095850091054256274353887104938680815582049372613319203332052887361251649053302518624373549739545848792695526151846784952150186951320004035590516946940637963317283597298557332062197334118918602412427042212354488877934284465980643598438347041534413402620038659043184065962798721881220136294873896818027124534124850870833173360876628990076411608216292241043620255452054311051350379109278728504707736175852747837822176095186618912381044901956355919862778812961731565225616850771358987869730143026220255620338869662090339188377455639506345514460689746721921968398869235530050388925131140788606971671329753075500767297593943368813840936984871985837778930402287195863995803525943454020108155054435834613484790771997255549002022110243427968225048720427595922186696436956541204371496546602395358203012732864215865207655571042265420833759220623333261453067432642017572443388841249527897361889968389285635078627565914668412588709386428461250855232683965063018068149159256492737963291458915322990900306498862049180302412117782238036336273836046024122447928439350560282055304203253732783999895742528720097676079052204770217985469565496815608014335916019795062650770713446276093838202890757920470381946864772878872034604231329268427825293188330115546220300462524469013592531866354082549736254934540045079731625276270867507523331344172913680249176844199325003262910764423214497709126103815811423415249737352312501009467449351172618939774005946281393465851647213052105642354842949654979137620125222977674295238954170216309096905037691825869915465094644602142965141183055631705913356430176808791306716040393118789846603653982671418051276829968343927067018269564616143001162200375958369986340561876210476602335814184458220647616236333412749479156785157644952572266956597373885015787093605285911931292539998477664124663823665112934545423619517034910503297803993338594079105070920849460092613263834474699348417020014080979843952717742859574511461327008685538033991887433583669701730344467389552916026301581854881621996058859058595212272975785572646978195267412615001452530981430072599452082156730575543434401244255210739919387646478179685543805657914239022121287987889880405750770204360629223561139901072209039346860007094193263072230302319214451682326198234314483902136648768732473749767728885850072345503909473457236673463563271324500835168720858777405707732194380060092088124518381779785660836103947748477545271397917011748014485792724046009005040983528604951333494708783714786163785741830211897490026669704088240322707241036371981442168851246688023833908709211630854375836154303059972893269846218810081144453049615650613113783995287725089066108274467933442169668195868078376704964497671760563461645555130223656637580205454348294869802380183555622195081466676201469426638437120851086689788934780141237260067312645129843670833411939448285883335014141480941882069481697231122040074712861526471968726041709187354123317754022945694651406995660943526935587672432161489788918884165404298235467535845446879558994603847869259126324127131223774840603992598663193708269240527416870898135718470150278042728961333415846047894988748278253899744976395709307064986381328816442367377987531152398462529417789097135210488773585543274308250110098078347970118016927358574735380684213091123831347930949851524651011139233431933571489970068575849326882439180257811292316881172077695656301001169383481833511068128150419261593533910121917816453287811486893245257225759679529509527273416513220054788935006262395142151357086531537744408768872985486879328144019016838240970277901506116551428088661920794293294681531630294858753935740433892014510771908187770462351635816385224118600713264086230662253290846898691287238069182398376098886086036071429883989466550015894104080251343282407756077693795255651184102893055479123806854697333524319047483885711186432914727917988619098704916489211733804660414939108943279222492282034668527518465147696664627160587179529888815669314170524962504934368386014275169044336235167720912454779512107644026920574684574171705253350508151913672799450395753339029873217021661829058857315180631692091446226670446580664335567604344653939311189215255809738696835239057916015366008952858574152905479006317237710920721385332849726850029530174974033794347971398392385860192040786385558382165203027801472081448593303841866603080210450540821949782497802929978567493598005160314336366886487041767793695561388566453145835031032704098420349937744143831506366577184350354169339959968785147892292718966883857918014122518630322285859330159221205154837652274300116440798915215680119944817523440021066186582964680613631272672586001278411858566329084542504217297089415618857590094191116858315831120244954405531157139643946349586245633122596238331057199359766476026275169732819570071887206603404736225270510242885034929105145492908317223065597006678330378674004363950822410603342745451581589392202701179101645808096380440985848256577727714365427303997175607687941877246851418824851858328302148477984543994443946906284337371836536475165627649866740779519038051453004463486761235149861045831682208944694885987804116888327953870264316851434195214284786976898557118297611113747484604750503689988368059584133724891820838865955370632780918153391703663291852803633448549688540381883430270073533757507709310237476539318477853414711215492148702625211164481244390198304120706542793388572999080188050144036485001973030181011971931300510375111699400588026479983221752885968450279834007221165987501673787647687300266426770103248556032872629290164704721810838242825304239895589460592122292712232640615905631718451883769711492012180756659179843237509600696451359012619482032232374851371024937479860206639112311656563477997604773305396459109857347060763453393327032908125995014829520445822169659479204680110931546717275183706559950646522335596437251262635881136253439531274251183013355244557910465895185788430360988098238397873422007816584229168772560694826649671391223272618998583212065766895134121969634062012925492821977095279095120377264692932436045086308351034529992270298406100455964219752791351511155365243045710844662339326327301634626602547676222953812665406023693692039498975149374966978485588339886376090824575760047352769148304301782947778943129585894553774674122685418424916750390431741430039686621142898769126114098419177597090023511181412311980824582402449878876615526861016374022207750688954973373691388824876488499969878719565447533520854818634371271033168050681574062471346273704830569112967315988086262090198527646176452960576063592379610470479125981113126682647288597838533340374497197954432026719287826943154826414933676083116343984556637590984531246802956781472112114320725672616776547958905387811169917475111060347018357148713304357121839020256606843575972135449930805038330698927764464272551043570971921743871884612624271283479131991013345346141457210270360394352753782186323400065947171908018798709612652597429642662497706889508263554818643576609813663733829989095440211625606037799744306288310231604944176079041272723613019277016371757709599834644978077571021335999125905287133903238002391106668137716207017353034601467554705651776813409984492418527185428796957840851819956927339375875171100425461112706684516219731303377963007253678672079737859743860738230337561565659881666820105256438882693526212847195128156055155226356699466465221786418325338869606238184501088513551380081366566321296560109256554284183616509376257303389699230274854202114556431994831217813840190375723081211190864222529887400357547053635484445646348924500841674158556316836851371805267236474298780351941534793348450842936269309235394183567796878211925262516036722755712872589153159482205936329924269357450336193159018366165854145569204496555926812210137433021192167828386358369356018780323670188526526552112255017765593472232034450905484504088830532269624335221962301301670820552861814987625683302768062334716876666634973289200448203800147805464350253625352809912044410784197974263277415623729784435183043354909293454333948603689480033680733192078451070124209757441441001658254224829451773802413589660305976217894766182993706995947018539585626474164653958175246283353944006201551237719177047248819534264870336432675225315085313181375310931017387438127907319855546921725030506006519440014918625364763119614454456026430857792650663497543069586786982438257722197693334515923180417846239674838381090792296017108959813241309134328559837675747402195665172747170357727611302809234437481482332736603892519737263312763235953454155733773949849240888462567850726237654945167538532050737886301783721463065780906259369951718102126257283853556603701165439682355460246561431695521615655924781923528242440650928458003556047994014850583603983987075264048459296037422832775325683684357435170426782115851386999348781954674929780677366138090316673414633174741012676443706621689219589439295262992766246366665356780764801139620046709046814332639076029941768737127127221375044226584143991099557201667484387136913119179080533001796596026005658001637552245329335179074970515126098671633565263257512418809910331601223765194762651749342717630436755632137345668637900314642586153743276220759278309369824883493031846258731385602125777392603525101306326680641683382034178686103198028083047285553325285638477044461834840213953013255847247654447182476736702339910652885880984573330358070483026370033139204679838368024669883818815454482937882622795114330960456906425731550041569933039267136177864493917931799522691703293167135784230507506118058290400806645623627415202881678610210306501688713152979534017169518965430798769324688154144385040463932508793312298497878748123499141108297865868413990411487856081402161744327578448832195582839504729561222245962484264315338293367549963453482280289641181427813496837462163912609676580835594314429292419782723839883331219871439956002667436387086178964227173501048288591861234478294206979457633819925535473023641546665266666192963254107137103640558426629724117855703566890794513175231358617770662333222007092445272223663288545086418418684710764885225818752299252169165179392343570510772279053161683641939789179395945709899521773346714028042662888555570761026567871637331947728035766535109329746790632742068993507103349141770281403732670874060316520512525063165410834085785441629502016690204825365613775533837777230964917604538545535594747685998712258386148674552060469996646320364246118757240118012847562516234392293631678634916929065504613779743596620484305217054048642434186890133666085870646490432421808167039300720075797615853374557841023766623617331555384936966180143258329168019464951174882986376294240188986552307610525666747481791115713390155640337913751663547735417400434803764384083773063030678857630504130465865707904850765024249625049389040769019700455771682884406543978434039449276073648986979204760989596424731819498070972943140466151265415666261281930488687468755629085606886849657985456842675757878198142459302961781358134609127882575357532831479501824797932951639903301278042516128985269491045079781737787719515387013113347275855332023633537567507910356345823911717353493451879559109251627499454902738707054084790863926054050743311372799708551913515411668543545675361349295793296060386035765426555473420157809435683178479540422274131216860997824213612795101859148335958528703463016689972074819355043571896342991131370293133489405808999919614052735899832712184318239898302449322587976915447702122620196587450576513820457170419981506555972745546374544645910346148811939775631220841922145746523154249884923802991270657123700678215740739401683404468506407273130029440937265712706127488141375113576483302573243389282386717837609888595767559033116299428450082911046666215069529362867526790997785364544139589365194961246637585768028588903094523320876803500543672051249827027305821041460722552218006465356717520756189377453029523698239916074866656191085159415491424952708359739497753843639368981419091449454845923074758554502492235457482637081225566834187949829402885078808890130787305249267297996803712391573860815145248087866971095277947722251790244950498409306932198479764960719585897435439710599708338747356719282082035082946538929701372803367063153180590334315675890389371112938724027626746486959541675550019019498790567939158669546297526029561576717358150759648259967168033302557765855904623982965593624173474825459687014005934586877920145874043841267433962700485366620090469813137678945964293707242914885319981889558416869521905318445751415997440495449117237122670384662297315347014473759212255128488790922085414279213311885708807316650596538205121902686411846342303217198489465948032176691069336870357392493959010024423704562989811807833908610100932522869112435315812165948673710572781984040605481788381138536686927108093176139193108102220288032648271886001859682298119568992435026809976228991478748523871970265143638944388545391288299916001849053239731200103646908422242385346575051032539499019633553661551828693826184516158860162341023529312999125932978848299681978736688930690054982790346787094227432395925925059346152808767312594850099004550517312814351066912347182178332734274143101343998654987720277367609530469205197691475521637395534615569079166069065793341110146142387638470266583974836217546681053950804415985695470284250965524448376401128117144627493257998223196001480233223166145404926077904617185359185880281233794596646664169617691475388830114953048307399076351759999107829765214707979934012341581970531045475587318445338464912467475677189072064313209189004367506745843234624392999135577870850864911794428966283937052159148964326738597043120237270470869361943226397735007041692623118078786001604244052606637922643494967815515109920358405705711489730339610284308129033899711653638008469560409490810184753179132063558228208697265492366384108255040896737627060563507514291780911542230722065619914505642014934078835827952192163558451418159657457615130995009625369800176698528965796284875873475665053200566140418234076961108297860781506018536827826045474231500037431644234567386363352151664519008092455822631687523512607244501589950766592279521418100117228676779295751030743668869444264781367332390984417436111838609870072779544740801329885939862190666183951560757654479060845036607800974408090924884676117063315644064543090855023736586804598515728989656991693045643367769291095179479882867250062071675291114735286247489476976101390569825707976693119242059363903368818288028893121106773595606237433577148915474265262213241465115677344306006635726197425503610649147450749587090007235947452628733841770198316195377618908526846774086470833417382984844608620039739953962352140675112669783115710741404899974047205864171609051546175788448048641033663842587426519664991803901163704138621290551781421708139585434508094486973186113700172324389572421818674692963646302418018588049913654684590351852683021678223828534905293807832423314330348837206217070100996794250647667667350672730580764156343767688819150979430628489872263934309094373419854993993639988046621790303049352756094887780132153881313931139629265286372489648020026047021973559872880789905074739267339503004411169931060398092800701772672805448590444719976475882250401639055273135238021538683682785931713101777471206736476361973370083664417179487133695801106811153254960699555718800956938473194923014176687027444846027216211164191213182841850076855490857814842233393722736934131286323329210967298788745780898652758180320398319728340913786986803284441605023150172362052821980486450126165576957108689731881535696547252662791907618349021808811213279840206355185514110068907241794945591138609706889997535321507453387144297381567166633018764851485137234236729757361719606212522275401426526344210418961048902690655160125920817796306740532455128504719762194509709912073188348214013436458466722356126297972255318409541938898651179255870108487671989184528510812707167108453223556370915077232765002923698497916941913232272224406550101493516277983714267674382689534828107535922838355626511510447597348517009102264703799116691449305342811320744577659286197326505664650445564086418718687179200949275999851473319141456283289683619651928012459545842441981201600389672363224217452591339630731058035641319704088916446721253595782615726285624055466759768440539882887009355319954746298148789259398178471487659812862529266560979662118889328058146855060682706758162397348431099985333913708021076939387169540811334728160777458315430824783392052337384974396094279789949552213019290221746766452844953192761596154812712094260897941649367794292491190004324597076917947107506559637607663695133311626761606889742228670601179535247199705307721718421335246422056672277976018656143107951986692091824684353914326795994881489100129794481687990427930242180848793817794820859382752659535288995464231586030504404019948059765868897845479601293205069572287213778252920107660498692548596091733140199664160349970103145241483325032106973261262081501710452618698117158324529760441449614109382229138210319348593996259816689363243879159675110093726102826898035980335716502584900501252323281723404320559616248341543104081812321713437986072709939362517538159532118270513582926942200451671064391619563947948634050719726753920808614550469578716867054774927049875741970756491593251666579688708278407318198810778580118199598044648559873350807867452195875910514041552682205648853559316873992131692343297901939425269356777300634433084765093914584436456191040706033683481594314881904971434453422856196747638799835285358863882939778662916850124026899228312607206677057446238742877720786497350447981603450751327678672197510010758606646967228796021589905661605131532507190675317550687899422777472096342179430422939660616404562416117149475408144351712760928322614616909119036045825439715639766533329529426746583404820692961186454311269437642184217278052425560848093119374528651963846577754658388006202019962187888327577425673276528286361735690854473174995194271192046113807264004420289158046182222540184580972418075710603362741336305005602751566476572015035216826525347821638372703985642667485056886987348122439545347601759604875591613801465968185487079613741016322775302507539013622962001424882093696538435552414859569365402382466439075058795895648182015546056636000563586966921417984297345357116843701061503108509799704873528536511696720569832350750058787349196852016390793095131580041175710479538399931759617018947685623396415967103476356993178101489246742365539565514838506385270858110874829310678970963478605702815304106282843340943025178531021017357147470717045165408772348239310041690928324159229993788890283679540977778090104078044728042920374592677196057507911233332431739412383896684165885618366831389999309521944251972882935606956689058492318685313800429512904704007390732248986605781981924994278085120067675266065026284727071484599574749456643983187220073231835913217180856718109303779080957723763221106128281489538276971630600365816219471148635419591459859517012485017625960051332027283812647746204090660075082130910563663619197751934228019142368650847330729700350425825985730700781104555571608609058186947230187594100054077364625405804553076614213769342614181059242767307942963692338364612438511189308637187209184689920125237701697190203844201029868772188822370431366378372334019593818374962757574734364147970113086141315581091868225041873627527596478118320283213690149620091633816012639993549145341519303399621442561015966579393977303381190660468070079450592539116648229382320060101386564068338192628561419379636647357106102432303928277687995748574672298823098194951924443239786899226307653345839711613029291799748198492991122118031934153340733905531384292028809492960037330908798298706390934287727252983336476325435255384678353335874355133835689486626328083786655870922133843310581178738701944973268319611880378868120249172861315651565726358832039802701732957678331203653174945171888038351180462198026285444793940920195027006591842567346460426151381549230575659181323481539235213248008901619065772602634069470226343686355977793071227199127349374016397781462897180012187657667889961133572012231800901467169989308299515224858768356631986165626686215243832410517007784681156166302662892565396755193123034732370705506698498506993476949012658342023138920541520837493978802216822470115096722046274430341916314907303993305172091538896132451982264095145928261273997140086833901650222641204989646846271006809923204196703653207710830000989062822754052599377486074723643448665861682390767085594174649220124110999051273167290409061593538351653993439802971967458039272853267668135766669980088290432656781351630269025713392024536692421574759976443911117258874233220982554787549166825391031197109318902571274537566181541535370874518212593402354413604820584639021191981629891203433971021234101491894691126771416551736431580895518089341827711459318333712440349269642205397742549728864846204905212621815411915257986775774962032616398854333505913997223142895758710469016060171871314799520135928518760799309300094548070961315745034364387814159561928069351286036046728345915470093356237847434348145699611080483573276866990429112153658768871914593353884759954254845744725178080627118757886829953425814631317119356986175404729549167392181190731729551983161334788815174987370165375252062749971223213843484466225655537980404606357702147808773646285121854396883168770150569640679424395099879865343555450768706399854605394599997586897363912968943737481307010941064714592156975959694556939403474100031459651468486659208717080053453717188127473202475366065657875277045019195174842783623627952177655442971718518975873146530206458539487517978068284956314156848439576802783372378581159380659608471452814540349631390029613351448724289387095655756126452735251494436571485257488311790768754550494864434666555387972692244532161324317551951145505586253196608870284750305924125956070293621840813943731339397121986701438491452749744584364763055591380471950056514570445898025852423456293636318200965895247812911957226181121721832713061076155545218665324000614620538193015114904031742907002312128614732115363688858651144578657386023009789742988520980015551010790197973283230776122779509321171503523577683165159917299668723941173209181471860807984337349120494427281233063063252739201712607156431666029992307081883755438604666260967925099506414083719127294246743711622958230759266502013774871554047465344404505465642603169750679457110431528980958941733641343274058093328069742118827147951639887953886427298197569046781533084144034233502674323613852057573923581577268315380212273794960965028865293604309107831081668555887106277010022791266628815306045801885317760678284447708583846584455168455452098352417513341508960316155570954507327059558881510342508950214605838261250362482025605831318514611226455893647288591737932777484609378499486258078553407289100224704235796805337175305745298704399382092000363798934934367224539100688392976660230854161970008263384305197723281247014919687568449129993322298772745477857629393596041373960308655068475372153114040058475089045686764108257230180787868954159009386572695131448983867253615330304218742944442459750641493723333447806580624292384202053398302391063391240642737730799139468112066976629205787198419432907835076121695098358338095483593061871584601353138585013739298853826004563672055006717320244410270073669288173273816763549549208300911803119544709725706001858566513211770966206890197671308224392600399041728736156395713799655703396781939651188111257302592092738652628562898896747415891470606456495918020602880031004277197636684406932597124432384833493019641918803615933099271502618522529346434761675655658295366665943130792996212439705408620577384200671719675256137382292134217212613761530239946024771621711859280176122361867542389555973155457334518309800461151570006352961587124024920079992344974462603194116488872052360925879196808911371414912284810829401316039236329374017841199572592288884447668818683064247284192708756506856531623495654020039375611583598048088608557311075537842905849216130516288319842931072897283383221860213880268941333004739974219673893791030951065131112541207221821132310951964478882587778033962756592635649250848956976608577562537491181180626376156243675536680524710183141823534068954512316901422644440345381417521018087348797510275243648174658046277517434481396003133789053350788354469208376246346746911079535093435116783088706703384869788330547431894321728086653116934955877539694072469346601267588867267457543838606369470342003627061061470580017246986474740807749250167050001659301412566975554998739581636663532466286025636523495995929720217653719222529250980347371219395575522640657741235033138277601908083153828144139321202619212058499979555598314393764278733670198157171407578704885421854764540623549373244450243464759210670940651158021409701949585558790881252305430410574198448335293648850156226416578566749018210711401340973953925566597623823433766838274035905578480356235120604412796858520518103758282398608915261511229699020767049345270842265292041423580081783086583034152500843118687343145904298930237617445694806546617016097594477141028947726734391236801176852853143987929084480185251069374121098942930078321171900037164497804245852174492689390177210386014315689465096792034868836727807560537301340557252196796399709413776692723763251409441397290695063288435657201230097009840469845230239630153692331947945666184043092880103137881228587468661051658754908911259014036073706009236224028632994365270931561867490675868427172163974953866708482079624204705983587528473533952607144298222003844638204100173991018165861223172962144460988288185390227555086657021167935855175434388420479119994511250801228477708105892284205886483121503077758989444028464589632324900108909120630092423454619563010936080891142800573660569404964602679114917618595649694651665787748623493626683724633706314103660099572525311993117506123814206145920716250376455169550583750178476528125772136501729939758479294004013247622363736050470971960239694881474419188877730958895176506198989205635218978922743461659498758803302409143045530304206596461635944631970675782225958927142882449638064043360716647712595467156270421544872047001888888363975689531457341595098884321579515512621618765725098485024989604407617575284208143294320050082036512529087460168962595731946370552944240117885396553324308034129192580868382901986445598571991704314184163992282949168591146941653200031376544281493933762971242351697861840896087981517449332914686488777716564994571939616016401571122735033538528539832900029805533066761740110639799252125501147448679912815111163512984537839135456448969699357307518544824775596381989817125116791803277522261676000145925042594192915620845237419271285762128268214874756794662669703140782814813847119461240346275928891693613960497790902165625975187427789891178515040088541777113139007388119536824004195761991671692859094860961639971978530746745835852641175239211811531041886382989143096973195080967531641321132059921986276489108414941255850660635925756035676450284429814369768275652535226633406245258653058458315585047668647425687594821800723039488573930178080966206652802748000939278015612891592947070731970676575296688671071002686593711271872746539188047032485642892153723890586719561027084453237519173761026497638060265669582936928733702716071075526325173419559587842629450524686112016909466533222567024502860702801638180891956209726346379114621538078011477468983953607968251519781931638494833963359276702109563705947502863787905917311563682770583867148913592199779548238041424133143573676686734190010658348968992832284672232464425329535692276229403988236375946476337055868011789928035476946259530426869749628786699252149918160391529551072407491536946789735953451581384879752209579299564736276815568629047987209407098633862993720648420937306097832273722829665738539698600419463963886805335614678528989345757584577432868083482770832277513833579223164271417530818791414444108764000649907671505839282016872147100516243708783054109287007249276340758646422444118973700270705629372219551610975791160661241166785097684460995531225069528359974772338526658024589951148133447551368916907110016718912131251352653472060033349351551213714283321320917466135521613021896751430638479903696988550496699751012275192014168384171388393148551922386680567311469393648928808642395795036312299142358129247875826098884833400438384405468278796106943278326187234454347499247611766781886324956922046313120863504111340349160557389247947766363320166972034272167402842392933417918752273746067470132932101815350749638737050349906572301386794242459460810373191475640994259140866427039790885438691424775646739189294343422327766602713170623062107990288433085429756709148419755198209247559258859346998976290621759979087767983785717442588997611767482926496143997784830226805444401657546854294088728327126129280634629038807808875299414588291888162184721272765189384899495580089285537022193263405053347588789860988800238051444351694455629920420179321513078652071024962708435673704451047201486787531619109572981391909201933252372135356437216346035032363579499550357707202255702382796195162856174438442033623918464022622496339230386944713802641879360152137249541500898824922822232013992529590615147117344335325221654230582333179794374261434931543582603327455970796579624740321171874044510001464043008063538119845902440091909045790183751961880978304494169588508620189722381404170687270748320018639393496783400182402912096168381227505568519573347720873520540584528761128885027039636228770927372185297575923389903044476093733571543498926101762242703325272461869109794692949717826059578725047154614070738470626804428517717235962319330998329822297839448909278498460755869495166562409052702992181150448851106605546907117040594484871118739612774618825796833674722781583708375012224521214785589257222179498459456416183549731122346544254550435589130607329652179803972779882313383861304994388274724581860748248979077471975878914089600747676267588446946356778537474152318352234026562884244477053339924392274817660672609962084447511189617846318740120628045307761663983883742267425514859906740761505006110399536736271981586850008254768084766774722514328344546975449841086414181235051467939934394825776233620151717625917220527855669351315294637859502568613067578442539115963568163753769272423429883810758549459423483305288564471498330927207421740540019704870734025275205268045624362416885451488242642145395532469417859428012238871452693316045134037925900137798502762865167404797563557808999578466027970122371628399785604567953829155578016220481241448185206805126212431284045852468951702665473409518701428948330579056270400271797239263083917295140357946479187100800353813675992069504279520425573700303804172976418065841717668131351064573203820109600482240832249065261286293650750786657911522802204302303132125815034148010787060509334006290176801929593114456309986212028812223658783209822311906771684586356536528287514385741675128871817632651067492249655579110806683584305751905664517210826204016206144080682043423094751852243719906439550364271008330964507727130038752607011764565125666368356109032451128053341193454245032445388616810022018644761580549734700613423220999533802803025543301160166129183102047848728007825107052099850920208805590564249179733139463847153324073170367669499528654723441135509969749329123874491596517670745975275948323607411086384672075156374558443239082594224698384751653274295042591611933117824778331465800878186541742467142019059733293907367593121761749266125382542372707715253997295709352696945009367962954986300394650056577126247014431062110558820493922942482603154704539986632401830316145734219447024647017851465341934884174824204210926966172166739445045788605814752679062585003106152929361480875114858545395438600492837867813957145965861233433073760336394217195040152467809965677542956612349473764078233936651289892774575093596954173824271488302514012547453670156582626617349474068376399200775034215356623231342369197572380144517662668056101264496849519558383155463817985064397066344478791181390908294030905133790376791444810319118110170415106155701905754807256322085525972170859071818731634662259793107743452809719522903883577309988889766381853273141888875767982280782385271545077812305690462853108486940904619900954320657303542600584753407661930913687679718989401116450320792425522651219461652426287724402997855196566978522287442715894798667458929731679719667983233328687387522032879881689697399142559563279027918356377283341764149842740997668305908461012389668982368148857281901884860159383315147702891107893863414368463876737703199839077147727052798730336201376598221397562690329081645221835709177285848872528467664302297308647521412484019108439391816738375681379576798957953797737245747003600555856663798364325808421978892159593322246452521111604959522613530770269776234986840657028714372952218278525416347348217529681865627080351470567294973146110616720725091111917547730127580426867558483718929750265008419121236848548719907645528398213850136598708662016285555544310568066559243781422111432318007229259472854030964033717216113802572333361510093898393542732879834089921889443204680999471053011252970106532743417858379446715732198553540091199892838084315699830012597203659169232074274152230152267971767356113765007228869225843855898643680646414240036708075395310130857557894554709570096596515059127676856946049822616894790699844360942066907850520187704176175355112633487907739087779995086707745442970613419910564173948245357512615177603836526331180505604115709008842703317545739976759124897652854544941459430716720231132506139183350332999536919591676959462778908999969240994355453318190996509523470665155136213401876390183429955804529182492898235530238181594966569119712857883838955868977665268111533497610315626925970870678830900070917296561026648555168539303714578706287685879023934672945215641425761985861109095072064127944587463248056868667062576519844779017167162536284011933650683700181665590232535054234787268479940075981640352586954603071466658169911815357377958108341285246524049647753665087781715281333942184979337728155414086522876754435105185198397067880446905341252444523870263855581196057767421215492614377025288459219328329632010670155858793835044572357233281014531899951911189787236812535171619951521364758011444781961951029680036272792949954582981289709857128882660820786042391183211041907060858860334632801402408216383427401558251836001515406632733407942427779610278043231708709851499348440059793761109742492968586447948077201190124334464692476398362720907079294231224430285576437505899945059602979886191221149360331219506563248793777182747297862908272708114747634880896706934887888216399136316237725333732012817421341476886294018017042053069228451010284379675923546001959859103046906141485589205556148395790962001618616020660921124907362294315768368236373025905326059395002828753863807204379959051099626759552556545983101610543047762162397437746890090365460100196431741033115172619082181105070916730188720295068602423876857751762816402641135963361502522728885304098398007158050394071147912068877413836566745254004121257596768275043187972846213382909137934788946352407644505631620268892793114386107377785461943609059116941457452969320060810562555387816103743001989580067434591554086204092865074403492047264487584009745314194293521128570920554391968896552212338884941195562031023034883154583216516092296920531713652664939153242507358518590646068732238457322789166892154858492929855575595823761852026912557633221000941796798936755486955503706975767558955426968847130380802996910053451923790492003105582225844658156705745157927711856400593597909489715872927239477880130845611403723849006108832553080974038610058616978111982704006408703650162037036943840231711838460408745944220318919368200194426577216456607231077492959459619939184392127092000733726985095938604661102966332407632900746291496333518022374305149367512583894946486271572668904508314318922380192776810311045087758650027016637633142294357571918843483865745045174390427754483342738363188848233685087650442573559461164364733796386058756882392619558996315574711597406107917656298997915557111081426801560523013937737306848190934557180960203750727035850720578621239645755708630234795773887602470260359098802682150323486415611451285910228035093392683981427197233698106306411968748633083021652293573284490062917043515491543925319438235309593844646422071918872512513411351322623671974187474426098942111876444333032745147420698385743574410253009955365804847766300981232227693223467330015768824838738505197031163068221442029838800956053871644257074769289499336669716235175720389560690013932480952411108650163691514762174382337859469659565554156852753202440567725465499928193142197839386140846327484579706274964768222078790119219639972175823135819848311519556378597485799094496506697905713724782798112662366597613018792712536187234547519702753861380955615616060894257022614742629172786684833101626751873561723826393216834127855452323461343233702582251061115834924242114853733791559435069164497412797647170048486120952759685155491228837562944846239732785098214657423124771822822530341436244103742985918874854580056725938687217820961321680724322568327567791555487188855130381600472999887209739388020983479992381051929499358218636821175388457822865051672474380145167999715049526715934168161773407431762212357131399322065000419554955018382630169473775290856932711963517169653047417850565891839667042228421441017220080787671543131616992510575711050067334061580148522596223405338562121604280212473796048245821836807989020188957344788325344466992111370935739882387312725340027654861432407072486171678415364902933503414322557202187314968948798843694176848697402310036334301788732387895064399612082202500070205752140322749168656155558825417560870159216319150775471972631365821674414813289948735789484749583730811463581897970855959568964932126923861854025842433528632305978592911096143765349734522302672283072045425859326066370525086124179868258180104384455630015527565275282947203715293092818753227854606887064426916142478040438193480527613709724219516438344206547630850881652398432828526774064597464429812769570148020487997392048654274449401020905419310127660765850475675406381036858150375877941362462079263016203695949586600624292571335069189650810288309170133322311371760919633180727545344254315153414124132284195873165030957178591699648868366094834427813989946749194243738069823913643653798018223014536287226057099599147051059355460512997031448090154559670844952492641410319570532179936710316333501402365909961913186987344359462295725851620250571258273756901733078099402862943447057807578187398147973328192520886722370607905190361779733040935225858504636457554615473411022681145365209356443240285231017481845274752284208274102466764696841570301254865795517389488354060443319619217414612070431702906863230839967816288258149898012579256183821698937354266340125271065359369765703436210304410055716529049349109076974026524801936305593545814608992436249672149429947259973313378024057392686643363147573186772324887691111926978367695644808255874913073755371505592130693671737807089734387924794363934892431610553677122762443183112472742169125641163055515806799875027320059307101382321914044156868366545483816815242522446042257928911276531928759950497051734163170221257831185861781700055470358185714943344112878124959803352752021168788434660519591955061993519589047515157719630584421992713544635883523135638645728840744734093364892231512924646164749164652672409259413776040936034417316554865754866328289610896801963324493973999039906745974133699142264550474897375327279298284058104078544002027165570274873186578616008125878017526445985128801635893882931695567170470492335939373219423757635762044810048826897189842614089466343216514503797404999141103835423639355826707640545068872563834458525943207638512581792092475823090251210968090060773354067423469514278633349207954172257840909541369415982303823496386562044073559679680082991800389296612878011403340385474005658675370297124842365888643953271128290553803641600437237762946118787807006782145502257840322419731688104253490208728980288672520354044468988943499089506054092797976419298991590071990774619335171302731909200414203358479939703382484773011171653642630366611917878101427445845154041358433725445467902117475258391064620901066434773709892235495152093966458538694082164206997773288764041689330914209492027322707132273161359101142365369127764322814524835379091903550797417863649936949387046865799527986255578519172970732026464114944137414292357800122129866895522439705660360941278248730237738211676250723804897028954454369661754649311359712765930673947996972161703819777387850037922785384974777236518357555652520750675437297569564798268420470339907569712269524347344051579319812012681413522519654497146975902223267931545213019232990272337261897810141274939812822091107272315571324105837217977075968527292685053462315860556326955173354068198603830463268236757934508971135978903698106792301589946081827478826096923471417223902566275894510871189651390402107584918431605137029123329398117751719363504685250645909175274400601753128040666831548512731924803431465103028883617852742350566206793881486253244422980049039272304995625567223763796452442120221803415337766567742215541157498788641367638634249990513978212147230714134349479574318778289277803138403266175092616186481284969312438010388536596521134250014343589210385576562635607647079197377680237601505365882549329449783599978680318492495683734623613412116933638223217515409271550182668314378046174718461528391504768682690447132115085273788402275637456004242610445453739407263893864189997523021360341290984978925730126950972563755275047739559567046233196910219538604069850800578994079796703005267634520125957151823559463274858004955419958222322137783573190080506042872955945664161889288151765044988435374142454435584966319513768839250822345778356487462457202706910138492982624527742148952901169392263837519192010876982394055925833498219685004258419826356612497844683117091194282100180891591427929199387743904773139594618456485822110362890866426111748056685533014599802265616265139357366419336238097183572460427488266156331701341246264259036420821605371241360781272772611965017571979379092986527847326382077341547689207540442728200625642183670671507110831810908670492009206501256981663678501481182181496251706115575689327631603519113811149618452949556996014635322859850625243315357620917242948162921772192013090010307005557801405646700033290710951404110148861786055058841772659316999561155231163838209367141791559902182799455551709121560161637009024946561779254542508212858678186001163950206607905422646158295617562510251022865386298636442050313644795335797409678479894965581403099945343406917641517970171375803903254358111135488419653180438674649705335519863139642808092606138165465726590619440445926419131304305878083738320395432962348127911012177587095327160665607488194651872800468022106771335762726808067022381420036143727470917406723558729146347269289767790566680958328291802392178218163871902038924687018921727058775586397399436288616598408340808117928439620518886385600633460077376294317548961745371568144907254265587126372347361728385966228876768982421755786838326381256233211987243945454754828978968472592030585660030879122488711651110059876293228106367105480401557042850591535824501127267902583390606138768166114176132229151227734969495571469572016975674626437076353001078307402378701137838852521318532954103140430223286322433217624282487099673114275100210647875588598957734347311519437381895121748236610971292791805985223824245807908776745246114982700521966606554553067596137000447721903172603722616643778153539517459973604113223475180201319667150981450486885584639967290363128719340874058865543468858570525519489882699077585235593871909152412269687410516145682149328435316795453009646000182704576253395065355934248312302118989897055225464858716704503730172065243001980656244210775244569239378585998854409373270585879364085338137254261766698788462362363979828934140311996797426513573459995348852567211197348161782597046108604768509676139861707846096163229763097846126285565189565399267463321812889344516016906456509112030157247354681027351138197495345036622542782102402994427288088862224595988746172384834053460106812916398697092857897968259537257462691942212680046956690484506864195413275934878152005252931290635119888973670157238868689740650444341542353333251935758521459864974840840369028346400590819437732914161010134359617760705666120088311171715328504563849284012839819794897187190320907600466684352657904864706545029987600768427014751457911874035629897685167313516443695950052961546565092055820261467972178381579834199761346987178999819122103556731546655403519889426114506355312654361849187394031632835144412586627901913530547483405941195508322691711070029182162042079664854098686359282511877240780148562727788902749282380911256048713801749314778232984068025956706080872838376720781542997863010501908954400465359345551242724085287720358407457833251159809984140181393084829066651174194346656738473785869451822911501239273171067693369291136291389855460330973295986429134138211783706971357154271250470671251297885855943598610925934019233019828882859213503670160313442855391998538491446512627540816450825575806516557688707524644596701994135323704307805314918845174444469274141911344678758349549178507764359802856277730452363713967620444197681732097327891510844059445554701264851740101120548953043023243295127794490610282632478748560572537577392979757844252939520591089089884796017193432399784646719093682970710493215044855017846938952018822126823364978765708178506632582106843837632668075247141835644586750023006023315520972611590629381453601516443911890983245230658436785952139423060405210482264708192818268982972198909689588596794890655177572551911923320224698071287916227338997715046128722863640223726349338730747439679953044776655411771943552041240143163713272335387687643940832102064460236712268382453307208038865122752994699592765930824002064207471886684056339364386955475637607401455744040701816119071104694902556307193020965986411942088986325357444499609402822331589394604215272010574906239888333868224092895847627601964385722448300999632249550666136662764178714308847986649851445240680804745863904865480167968706607350121134582924880922350542936135903848072001975455185081947436367350648850698112380708509143699077098356545303657649386043792303063238645974695135821745068865804168461134329876450959188258108999973262172178063401674001106103249677241203196390953378547502382197807465501187431285924473088080643521182403844043009614007803963702415050359416826499161790209409546111036330484133640848850784303789899181603816352974218714032812114680621411449075113360205842810306811099688021363407702917550329444808474719402396190485469417728199210631756959898705843929967721911453107464700529549706112229609117846940796252735263026448508558221828258530174562613857008824476779617668115041149715721555044909415662343646097384602671200921032164734396377785760204796539529852104903791379231419694726851965234455562038457543410873593103273012528900086219574395614624509903177276071531539300576243779845699112633752597805566640520174852643136328246996536805524874548698954489102839344862407143079880178962058459386595909084581828507119112353370665613882607625569837196669635037755588836646437821105047572333216714669013391548650917502837845347482567348264037009239843150287751738807751153109964115933894878923858637327416901738743370661172416012316219103721493740808741368061880391368994174941818754333440799082320889819097137219281880757649224321379464101042866296060283910410848996356266705880382742653568925819477228257646988627132063708947216158586136936947134459899385678450018934901056734757205281658806801423861906492408692068214803137104310677743035479641777439688202108808316199979891654001558801625726672635571180040138313029494756712790062950146192677747813490763267636711105361238713654842643792113675566798342765426164358243791714371818516822946027809022070676395139655160377051928770082108953251326397132045067601364889792070437707051653726124903160590297838660664491098417783208038645787040855559177596537481389821529621207143585524553069746392524356583899464108970801971744836298466906475919411040384251485620173232597333343994770406713090467755351437910761566310182011745867750521681244292365270407804196852030304923805303012148185145580246458629252317053254028341102018504395583590426910908530171295839335097059548146169975997692955754884491871181739274655720952894378707404281782562592023777496615387784107451488102755461728349041622464917398648801142157205826772529681326520701100587409761820751595656881003024926292791200424743634952908480405743921464816504458854589455854999862047972434390335377656348945695839168054234166491249251850174228952060564716684781744219907064674453781847618185154718816662269451514246457884649274581713626181931145926251602264336264713091370468443791865464695494646772166699283450520675971994117501692663375827930213254388782673118949099955166530968467440778412188770242685883820595971276208927583128661167207937789544209323162182480953614297213354800149908609894728078893908352507753092707435699970581693286828635242431297194442751015470152892874991921043790902190347888083066128561276784299581825101165341432936612056931566578733717076401365364807155725127968155739385735677417798088636342103576744880894761990483093692335385305157179868431685890678539313246458194987063521788635458396704158912305173991026434134865799012186866872396072245813677913305060825161893194075412536490294236350992396972306763753090559245763346951692118685946734407532995936757059241251536144029920109856741811464773833077016280766059111183408978545756745000904278458801639052830450887186987848471544704412937291444977210137340877418433072688196385864428204691311614742336460628264254739383276807817819430865628852079461607804704173711405865729304304664868768325142839151100016670434654223294238310227265044991058302486644966202925246456805701772448237483633781898599043911272729300035517043015404114742821607042500190689408778008005979075249471281988516985140204938534831920800493505006204409099888410842289095207061116169628947247178813945537871116861357981422004300953497610143885009112961982373812209119271922683837357191297066172030495646042226318292457424470137009340194431882514120423895507393855830279599653541575685144628782100143073708654470193722034039477553279045983845344081104251170630369721814770428978628592477392912072680362953322505631028023020068292591254470702094613935569483272447246777391059530173049552936659370130222888026532642439967654919859192981392603037318329157493062075468988655763463136198454170439830462659485609423270829758070843479716944369218231715873577494961175286651317927130790607964782964425800496470327219404551975143638911331852953404922297467586154392175165878986379981030971612230789020529193271098368542562757998082994806848886790914088847702477828831572451556705647310022263527097042848037056173516850067482515287033533711778322797474685318383291074029829148636679551635297221172646019776411111433322205549865211083995599634485553309528764456419266872203500513980157705825127759942259684840372681282927841006738698976934743196898228706484462141347991950765572360249925392256304195705914346628096436857924100295637974247144537657583750410907321184602318843173588927007309898521341102504111764882464998046408481700094778517942586304079582900609061812787096766286112511902090741417969787152895534833117902803984519962194805154309924178195956908656392222580451852461508694286395516790025988650613501635487379003056714648999475395659321184415143756251907355357115483166114683279346813146087070669382041179627987620723014009899095350970270392336077926689072834579204565448887898364803279719613250095732952074693496938543913708191531043921695862455314713042106260619990727561937146950082858360462327036810578313310805689231016059877291779947777676202518338671035337872165322724255371599008008132251855347432030555034012442166585708805081923349677217066574540548675240421758515521914158545310755432289468241023994808635368370540213123418290335987426051378671233051617981266675968756156678213719192954257101519934876684520111204825993873345698189618517417794848945184045688367729395529257385369163563095656636660256129778916064832287101464688015336866644580547005071407209836356445237693209531736335940503638707709071524060006617004024346425931994978323094070885436222812019733890155386681196623977508751920648495112768029637599597071701522299262937720806040784786094448159938425120041617366311635584878280559621421205988064015356771707082051726414743946293958748199213948448397764069381556957303449526583150342425140867586604592216424958693285657877424703779569743705767883833396937766172868413115811016573776859620573242996397542402137159612585883332969884565785152252527665862493070055764607818764392873519556794319799281589540938623260888307560303615060041263317119673624913050120449239743516221494376887930646861356466411536404147260835143261563484648943822433509673413854230369678738897308074069518373218405556696027737329119539525799617340436979028421176264703178306325531305501743312169296244335237099476137776478580000202628929673707380295517210063120929424973905197262351354917511245878446971927855733673267291922541010358531460015120636639193483926077738919883447240658908192096593951331780147638826752075383933102556571007184053054688397458696177010547741437807238616766575417295985443830220894095106999115947925302180332686233017717034166291861678594898204318609751782220154946190026180805694311910627997816010387531584348899218374089633755386489912927892508348410682551569207869591501304511720263521195014939569081435764000369674161510188740753192215646380067640096508878242544574282064386971808337200393853279284285785886865122505313700703230003468031022364317391950443206095143393761654118093233336681622675594870671569322735567509112096662270484059080046587828680290677265012786249770767133572172660656914567115186976357389334510794153747467968692033988915169735717590078587298354310286079377885557378657814482517311533328368071992637710101286728873868496914829942529368252541345743063377643203580790416203144959227351391839954635158635211588760160025704277889586217837473697317750352669619378471744290144947944562613964986789934496788241637791666923803849515834340079559449514164548203253790240261372127720519756502576024101690507152041377537077413946424284469991412795557693658229576837181180938976577939614283696665040666470056855331600162749866301656362654250193587755805778256734608982043023998431304042695304043435139313093986717088413041510422149598285662580001689016332576558129193024597952849509873178955916691526895889478399402418584065414926525939460282002766646564488659425203191917134410979268596704218705050831375576213258092504334952748377637965953675684580127949065585589854396047343444889296701864804021761782632030380113155369605955620208704278496279550800244599785092295679440270121943969786306285653436994890118333542756498788798296573930260581943753872670284244256492616974649177516810677527982798120217727516811303420333854471765551775296589139083287195814735082244985839958435336577046347195367404735650876222023367495766521676494906011484059841015257072539369134030217878806361226444631721994253808928161489596528865691825314487956589151340334343877320551669236499176748390134021198353550856177798865221381658971523631811630854335093032238569302616459281872911642503412821595871221999510986057528670685015275591980911386619467142182394015023923884133440092090245776960713695486454341033813334020574932189504180678469392184086895636688369124738600620916132933269050884077701588609298728799832272272275351044277093370449282310640579186247346973569353277462574113115947941843356942882522312259177238886704562010185492127623385474387780764529122082882248379286350590746144711925673880931087770059352028169584875384863448850009667131617837400715949953548904162765529019953281977693307582076158693542841434664547203327742950418906429402717044125124413386138502897079041463120966486499261364199474321942111633108808880392823466756955231481509764351010752384657760658802571707808893358650791615072463267809509111444038331313191314671668964508633209546989359090528930362540094529559599349806771180269756358483871824092774540972660099199283946241118745844205023299831404077055451398577401032142196775382205381939691278453241633026232573650631994478656522440135253250729286390092663172661738330666657161787874692750490962035033018513783721277251991520224142037657868644865520983905290441848325624455870847050305503845832090587815823103780405743766970608935653045304368847706492745310255791333505523523380927576551517884172560541105531783471521728040778300944371515865469351291885969356598080723345105549805379464665060997030132332570693640674492299066384213932934763849487587790743693867641557046642050401949127164318544126270149168348154239467968184598447150775848022183042570513048279142655348415883790205917425810684381097160048451405565365523039380272470034489788244673447164157713758674241720552504667390020401815569131353063227324350543179135304005060820750503458264244126546803590952356351010275918773097037307749425016639785637831996909908872434275072214144542932732330603113432529112215462232924807344250479535238358201897374039963569156973533597482252495194596547531270750676828898546954742596449555946895913674665972188626192537833326127737217666792451561461495153921723921486418641186420536650838868195612444045471039531858786384127712820293458693353921758715700490533885143580716398163671478772680800881784805041701704650470855158686829214608083096318721990397920138841083594647439203360869743756382776595919205758480503736377846724693885447548341046654171651245535382128424324979980834946599653241428038005639701119587793287332428647075300178656311265043035713807550179302569069897925048838690149188197282202790622829822500091091162659922517860907918058300116264918133240154205432796466885994714053900128925610162197216979520783091793158827043836267276542201984172006718825471706245588953734012168261041163212867983156939698777817262745526635363587174938557172092534562666758404639933921845943104703568393067274607732751810062233346549322998859308837844252626691798876279580866103666936308195657198706350279874243300262112515822322322676386742833014857385997955970765156921034596309207673991609465216260866934230632985756455654919776218323765811794247579342061213403915816757521710915077545830769444583368719550550932889485591336059553678538132865158717027826844752853685416920097108337531560722454812926132592910878149578972731234868396036266344273526627455744813864497102197728912247675441978463673328787777666201926742100623785686094417933918306947104763661745580579567765380495301633167517205314131262373020636320172127719720031845083526679310247763398999494643784097915984534924024604253068815781513359675944122982658390209287497406548701317054778985609817374944839598415377516388817574022091611302630012205877308879275940677714784531163095486267616359878620557042115324247412491575339751855279832158564091134854202450014861056789443956041732191144248678534699564553184726687214620419963880249231277003817415008825389366592884794877628987493713454304887479767024111825832966228134075128391534478165622666440030002376182582362307987463244213657651297525821343279090697434489249567304650019886422850161150366637411969284195247486158131624620984165857846766069006046114334886873127940320709544960485952197360647574582909920016859348428631953577476723260234480383789334550547238931766521647878451086844892723185619980000101981672562166259888984704434072226618433935302906796299069613285357374653908055318291515753105011856533762483064085815236549817298324799525509042233329994683920229989367736063414442695097940768745319875724047129559571209973048259578474031832731523672971001502686163864618863880994549280648883000645026277670712922870089955779899993039760680828744104456036299734829274756980996964447788078579176434616171954656042709338166636205659289324906980221627397452224671277620355767466593135825868538416881397185213565105159201506854031179567950011462675895546733188087520709932610672846137151201757102937519367275982076107496401231806797582976167634357042516169838392554151423663846374745668122900990621774179611180461981777722066848649608691340283810938999402908280875717461392426813622741989768548976189945552842568949766132216624001963518879899248548156041477101572862572604277484690164772808024067489872439512112749186582263000698985944609804562176039870466018155553773219401063634420075352671871225382691548988011492054141059903921979202250680257480463399999962910749460384870902661114820371296507060075142323668952982851425930792194395203328050708988141912486844144214827947746614112076886634893909978526620232021693286916076726257187128242081750827832008197704028780258166798595540723918885487222453005157795295600730843447256942335790088048215830241718061599257950648820310999417409371990368791509491987357018402825283516867567835114926427878204511349942258920316600324153124337761526987626685476383503417314321594859984153314748804101448102861660610853924378120189319976017885220687894538169035823620993214866070168816963170140098100663604442949489557583528570070393498689199568556119175504128012759344358682191268705625593537493579581938217916342366484487196465309726152492109754409173091744667231712452344536733804391999762355340900058981556470968116766099612690724796872573755440672553761124418625290785287577074283027022554116387400735867570222760444880705998753077176961653952233293791435260406164818876402156622575349234667638068205527600900445381114065148405277092443116327929221451004771800717845182464383420751555660308056482280768061820610430522137776305379496436293957012187192536418092179919032888173307736179992005560199050067383325936697684351845079460559137236567282815352215390585562808616607837175652019535458060133667658091301958299634089265938173559003586304380234893827739149223785571447390373849896741379663741629643916614855215630906878675854350248861666574799481215671750814770866864009163299458832985341951901916746592194183371614720257026381464396552996416039145257389435589648878785078724583886394798090449548903082069792533340142012755030957734517951802366544588932509945029340932535684902252437126658261903469258204588438958398077068983176090569708338804811414641771748465368657017938252880368520857828625119611153949073544550843261356387300944478058729063791573748865248972529896947428193395395483819241910471794651071579576440416051403052344869380450075966899007466451012772507640135048874638140452257723424051338500340817442783613774823703973593891659216478375962960514653602659848351707724348328755861366290469546096395870627025953682194926445726136242592363144763540940961927789370520579910842728916622781257101415225966428223204214045593318474802816717279370602170044748615807608603658365274703279598125906164045646844231351624165877202206165107246829390843596344050738347612143619833497371269388557897025964432021327505564366743811918758082986285699776591162190316558493906657269406601365410200202977625285831894823638024517298705144645695785149387026404309598635041265411221836524785515574769509546287053220330817811932031373876512316348676208179052468287834264099748123603351350513040368971750510049701930330997096009725960735654552868296691792145881159623548057649606822802753494662619657475831270328195585359785627769438879527239969309045323048892701244215600884314318358449574409360299069784056538097368731875170406779900912138946587077511506528528932934718638684060920711679465011065871460086707721954699630439608367167998246687850199894867149978535419417611684046227989051767064375067046548059052376307630194501810957624931400738554112213034617246373951847342980878764408689820990805165893771009639834196898061935676321588943868711818880896195977224243376289667593704498186237521573378627313150525354087599111157012801513586259198564558309008787284290615034386911407111308756794767301906754336119127208997388358754434233272433043272785263894314767553407223133500975608938871517718015412531309793693952015337034059303678155067081806036801759281092129723325896941539043557236071435375738097045101650505409572953807628295058479842326285061695362561571295802089303885584054272724308385880485042568404949355491486479748028524102840010925426404738943999003811109203035466370037145302986733334342313901116320564885837510766444750712166774912707483120396221828159866099960867139243601240346969166659314204523150637484905269035109641781437183903148790180136636932530038991629208656577583075865674593309667554213716543440488324246922087635811546992759508953930664932833360322713659196403756909410559774417604322596628860916175624109465986498934855678595920217813370302419403111809616589440621137782946464840230833296705164583574063105990591534618520129259803927405580054328430584681372664293888956508063764176985619872590030039637205738483657967170182155387530364680070211778216748612595977808771023298398597529258529377373092250096347439135023486630365613939873975499536859550408515678461681893432835815480983912770346704876986650853339874540453178946781601010919300839525840985987232056423974828945246321998192650311016556132247291028475466835200666514446488495123222269260883805858395432544779081419287291873273668079448198704150656181044141026298960509160491284778455740063956965030148556715412737474092478779436498907518787297859880908091463886041566838959102373067709531906627027828736063229459691514529628397505775364286101182865453608005373066956469785581237853398926242286144333495298343046013029725748743935384926893170981610237505802707076974100077757721906062088486785928585087660268540391423521406404696792865403779417229484422798801079199660975969169598846846431821336410622708883656760128761049889593246508773071060100173997234591301933552024996591219439153871939390232899645383750493811758591323496074008436387216860923732874548603800062679801043718336672062595601096345195491624002326550559929495313104668553623537501635997225658055291511888523724763340944321099662098012349831513632908411874008245268030419095798546026550072083121630937838119730218545624909365905167961471518748077240569663057496042707407916683629123078356617612714861775125079316400330976427928008904599934049837833962716495768619997342511309440026560445231097329737937025363282064336347682547816515253660683310328465041617330350492872206955150649771904417485955052738605788506032202190510246409593959464511707086964077321096274987545986316349265120079972914366666809048129324676354051597233554692529026960908858292091155047380443529523166755058777062460699527205320754448101743145829451203943506126450768769362538495248222018083560228873608106044500580086477483244613594871948019165887597660334220282755161866166132127603943822972405310006233016669242393072656233309226625323271931670870262662461225739271315545204017084233622870922128381214988477843323897574307388182767883006596511071428699059092271664735263349324045250776409464307789804737817376362658632627351006712578318877163669307613978403709168024594452868848773130420929531376467476117088115305894118500439375657920846368589250604342674548396908770178279342559976596727650405211307894870255263106459593508488434598520270626440680988970863367081971766018932480470458557249463359972100247497948200004006087015311718310978261287327258515255106700418627970992875601332184406191910545962138565554361892514986880964035434227366722171908330860582614216706340432667183816800656960762256679395328770872255084979397237310659641085088000763759072155751763545534352725070865331410277159626963755290578435946431033051111934402223125540298517154469726518622437173096314819225438422317268173455156404244187009606058210048806694313899523012073421753186144396372498601491263735351254549691343400701295957840472092692988051201784089121113838539989004535436458441905894918178842137405352854661891282131275598132153906821764393762286280753821808022870300143579570210689876690372706707505820815103896734519888523264302306290590989429219183740104051258359069504621951234418506209523286098423153573199739861630536305954926977557732185973357405292129422027819524089835029454639897478207058410174819332285144752091274500780561600487933047875859934206788267432360114691332502167892201279434427176961756679191933960373740276439017242136311161439250450688734905234992075818260481369466736035243595611504973019484369305015350212404802344404339358721933646211137950525337501975533450338639714350976209392699120963689620434369393593809980126569183292040501665282453226452129717568026800656628112112195551036852091075801088565153757956851682686318390363616376241105416058299784330319633058442949407384876753936748844634438525463379493457534178368732335953920865747613957906651873715283278801542557872999947296153050119027381807482183919831179975253667634202999052864837090631856817193336932841037125202725510523758802946755855807794372002881802429459333541439671206874204035492016005635195177595774816180138547174753049510593817400251295303099964931174118395974208998326623968162574374590094059223759961720660208542824871189515306017737961957888792560411946897914229199062311857086226374857741508305508610177440110551025204311782460690437058543548478147442606087624264925634152462701911343547485273695871329588686418770645741090226160077812161595164197025926622161299661678894448169929772920580847796288477276309262250337482158412701862845502148622435269093817446245768020500073889420972327570132769233514077608797747853415216372613090168850853401223613489385864517709955202634184248009327721608940308456943271744846243839252223616646416051403072911132131060912746439959572833110634484472871843261620096904198686405798658364756667410097516561063024495769910479809295724836656007336840119511344906021350649366900373883161967892470419210377724730440600129394053491915159431992278134839318737950398599221771430180986973495575611148214366869956419310808771149236490109066429672818200409887001779446866658520860905816667383627161583481021426150586281337217116306270072912780301413392134812829540151839002318408281948888788621393872287667725588542504354170164948365445076116000109711044050201013676947768586572724147812650787616360717233602735290354270294711602723008740744992584048506739276316928911463673357310495263721627701888003387777636477114003433098234918673044357975690664530127600481070465836630738901662062997921946800537954374704714225211815715143275006822759348513679270899913994894267415346812145531414695856742942909437757347908262715702712140189172780817808200207279180624984885965586246557955018117790507883393603638648184808211267077056255937635805761488570760519353081974699332019684088794987216193113085239750605807932318935513221769847517072717037524597064899559846166387240734759089534613705806951057247835113044439695641095521798099091409729623167638423271942525702325604731183573875480723826874405640998684597328300662874758972780857731916584160241949028608556055531891932956965900028768170047355542305809665132444349678489940511696138527197400578702367871750644898778370727661429883074083915199301721523578562730669533132765320617808536370261225612463451947731532385712098649922894590416844438180397957096321619982005160022240719560284823493054805027746163448308992727284873562772034709319717110255370919038720891221185916876002751397034794112758020635018967734780936117524439162592145989430607611682094530071527848955992802847356128477286185558736547848397903414089920557961568015257869068982919723537471916806350721123644175952772428057958465549114989464962367707176989713878132568339756425308894547504472632237024798835797462914373949086596154314690331159790145477918231727559978937753959827558007218224549388355973536545543274466035500303285489895829726615102579041675165709679713839232756963177299270923416014139583831357294992190384207944675889600930548067478569343060398085831462694791133286831264836048105353175917915485202764696997000770463113639137854235353509799217208003325377942372464515140526348217758837936053894148360130917655417065166862403428915163925926385974761128484002593027750581995823330134101145838177128602845072723611457592815101580902189851407584324538141578304074306360248154558377183605246820894680313448251623573206591312060574590143730215181633997841920650280810287863374617127343662519630465583482104340033804798180682732210868173760252107183599326287818212215841032367878777495940640229996614076102394226530227699570245888915886782447519132867560869267922699112333530994040440862245409104044765910133289920060679525981078985898454635504628240231133307813023862434298466067586623144432822292735672141578173831532312208167037765294829590720162020929782369881699666634401684492520799942375315877958940199039763345485311022374258104665789650970603100898611246877294945759943949712444186416978696565555255442704054187439964958424985606596479246614361664700637946820161553789552988529713771093783379820110616965281316547754464345584799002742134605417294727240411272590941756967956987569126990159044794122737598366867737559197193292114015873676501496574185872987107958462163397756539139257224326353172023350205766618759168586208849677530723327725956795669791909194643938961594280327893504266857126160149071249105840953382651101284342212860109768656036361967281494125900883925832534841804016841193024988604471836550585426397129943146805494416570087674150995282093490940109710926713882546735799907986623840471078230412519922688563740878502520772020398039559891165758463886424643613179630054613934531814544615487745763465128362631336484036026745119782474298647417266368863184636373634486176296130902260915465487109987481470862549294413372347701834330487460058836454909157502167852405839374754886716725131606740295797048694433298236733850533401072591518122584673587014169416067121623753423807466104851465823334672375344281786610332412348144897990484530201269868852365516220360494401007807683695991113641705424534976376662941971765653399706573256076234444280543892192315768870602330258444422752358903949200792265113356488991814713562365278371729344678341757187585587917001399037085278401295279695282274655490290341296250875580643312336510323628413905965493133775751276874659879209312313211182973459201432406234795448104664563889722238130223454124125042766006441043153320238258312017279246929171390852244577719192518998154064699453332314975392283451661923388052907703367467009075694091686514240863295089221750471440280037175072717001544081277904079958226238857798838279204667473044308752008017106357582611166106407176564415919665742139697748308303518332930477684899583161586440722836027368040733404731775301472885225549392268154823570098132295718412838465777170047778138376088501067876574997114210153759212464025793165396859061773037459791475786051591659323167735389705606521065398763940227895803046992952601403066006001054701948206873199047093546057016958624727337498978617772558012941522924883542050914047697768053747880046929546543937568856223569205879107246572384966671280716901541325462250463958485500181246740934504850767978915755265094498893151909987253382829706728753743529326260331688226204161121120226151819608389179583311876972582209146686817596496819977175635647295229178239442932941589320340598520477462898444041940285568830732513246064253492627067466528805384975956339958846398552488168555615539555478321299034619747551608125349383702663994565689670605415335849125481947125659539779570506740020865350013960362353515522950657318502154673502212960667470532494077971347847188735691760257165738732622859847149836190857491471014764650924501655292267332796927380323135871047888568190577863989655526840171646930729226765395180658710477663164646997040719888241864402832721306512569635852715307424678655600801737093087261938433377094211674024430542357366059359659295305800435820334222115101790151789506727461097182013851845980227423543642073629736551517622402226934229737029728759082640848243189416133457690519298658914815434996671070170700401501499890860890199015998306503821097918254481563762173381347482657012027596720382202771806335463520656665393780453673557925798114335576589134863139457983977043885759770219593536114714436827993199686588640101326927788476953430783724568569966238634023757003349932991794893194690918899206842860605250891320587481536856389021640421724064022229316988518111855155712107757063270172173054926263892187947895266373693028846388962150830180577985966010187864255337567131468724529453471035455325173118367304816114641209324631543124212460560949481510099268794302693213234137717843726107562854266260636472825974485460673614986298209689403601726808264811390327789749034708681880876566123929085650343631944385939885704708397844148726873527023430495387391136854389913253826960454157286416971868236262938271608725960558574362944484569573974761129720125216829696673452445300161539420831325349492124846240482814870706913504054645981477387827050101766595466706234622466955784299289475960269488738285638058098144081240369253455583003286288921806758426040445158617727407252080942913073418780789854743707237555423200680133164598845613047222892875271330178690900195985133795277734372210384715374626643499036410611868165517676944116797593045537392156848013430063598606832656846005008567986379672285933767510237878295006392459929471909573238977159732933344542405138745190043506542406619609632143172150072115768674261306348730939218066662724950360240940085436637321037010982876828072527324524963035870903624197229380191787226378872482951086839579436497901951463426551207652622162348228865300690812341212703292692722294243100614970827621532497687474195273793444317855312795034827780433714733678000898627677684436553914928654258483294239163192899397662036087784848917413000298981396474344491166170194904151160395778590277759887587903326947176546104847410560712074978758991094085532009020507665291131091057749852839997464766256009595575465447463567329532123019519960643078626412599693602250012876105159305786869678321219337391753502064319309987460464836079734523253188457747956694203634255924676044334637293485467536528526513111885680015433615345105214558697173354683027131889564102127776123146964600577657507358795931513828596418325957745845409445235711097511196313354665709136323569082256007750759787061119848712373279600801452629042256573253155591847688171143630642406936221612491372337890189062924189090301776403690493992302897733861371789017279107258886062054688955080858351295750934336012751066455811045223179145555250718824232224406571188790467242486945373985361490938285941096759423927298838623738638669342782305063877555561225688417918454575553529445098715441480793160671395622814820274780212027090426682982743101155801384303675560814963354096178421574733613692821906838953524750818320942853049292427269725998315003690556768397613285214765848553030691408470897867523811136736182264126220713841083102421460970256364978795646045746631627144155302208565698226052884405750106493468464986794958692732098737177322830968543305264157491271146261360058611218093309873948735748481211973758124648957234665890397851497785117629835233935192713496183260961159546987922354880842614005985834723544373509289006985216115381922015105865739563012723957761432501635195707927202704105875413292177967218962120585176566695858017497252350982536289986376397802796236153845504595656767763828993913493371777927724143470835025196035827229833168657487184269889757615579228191916708076734324688292332417578682255184883508120959986263936593145767260979852431805048328802687958701882800740761375472964618774234757575740829597114926070318101874561233730759603569694075221792217597686432730556632430226983664481911153812398443100836663681816176685383556005630770225404409420987230821589243846325505199593149943879708769059678813845552378567715282329022681533631940171170615440830045081265718403779774089439960340594669815943288704884364946286522155064799914036064840399088798388741694991929127204907249422744186089601314694530800028593891875340431518329601082274819655809692181143929577722244500130145548789775636288217847583506859695997775091450836768272042544172133438024866301051577198395927620901019242428662259747595867665630905345353381660545114786605159421779493038111817187128719261835356357780615611115443595357203124945671905047215330179085948311131496049558180763695139503606870148210193814180558993560184712752267539563170655794908917902960655298322445789975671431148822667103888222060045209778387819764837211196585149594141189140304642861364506022802198731675594906778210363436283851228926554333707110010298178169523696684185381543558547882541938017154805193433402935115105007156874820303726713444344737814777372957645895387694771169672153258738205177554380096566237557055480198149928878023691160972128702296186206221247827567023970341763874523360259258149926327527796363705380895217021473859662956457280866945130176998238471253330781588431446979395220180814185957704471211360705912300612285505013808983112292943542192613654237751586233405734644927070843820383431395399365135787211297269714440964352152767888025466813234633640755606196225125255020671464739422866558548764796919706496960700406566474089738419455390902014611748901943428448034758489016409772543494243757718248156056264969750758585765201755833166319423113938585610430513262965495114931426475140472910118425457217304568276078782441048596706099883518902551153401879679632296406015375629547329781049210291684114603175066387740803301853924735001959663166606605826651665413622042485781480698681387888778623876142850505682188239718465527687337030916830994891568859806447448319177031301634828013053680916745310459210762242587185525258918699906460244861240344368326411003046832103609707850556940841139215916073946898501242550260414820067466619275090894667873033900193195339493833302121706000518286666467507558388590578500505812609089027044448970821951610734409439790983296479899967189833228613009066184036887220770395616800753327758365513797571154995122369529110452705949527016265927845207340033034336279736715917241050256414865228149999451665770874751110704894362732945620156899366561579195458790567534041974811374021168407358966358199863411324184671509807620864469234429662414298157855561238028711870573370382021803067439119883863315008798994445836820785661861668325474776501622011423046036759827487240458536375972288836075442094021116981906032033239165648525014949042457608550432238336245809391990494296497828206616067598674206699874696818977348788877328684524395157451059474687799396958107757267829338480330837734783747670489289900712917940572546567047031635106733864826374341344663265741714616875337045103705098816104890883833109437162691477310763120582964602282851024784632336624826966482936454748033994709476582650624499275649413683779349949611862256952059820561442706653016513838685113789796403655510709582103703242929140064297064024999613969159412551717493016169437834175393067235623012342380054472672060631134858256049133464092130191165974225926022547270553393033473904140881477628777500766167229568819106672646041258432974898739611053951922142838704534293519019320293215073984823270049844410209065968572831644370812958148556060263390136633151549064139836419252194086903242394699237687891524434100579642637861845523872325879634714758847242855152770157656596594147653664805318812417237945126053941121911463605318786229516427741901381490853172384598302993243420716808927079932134411112137544005062696291662682329289102414203606768119149661178386838679579820848927831497943745399398531680410307502883266248928422768157658014556568276559720955206636096196252153573800956390839019253007247031343736768774680159645869745831139443747758434413447839953997035265271105658878692817275253942516724653386347162465040075368715141521660707022233595958924873905085030652083637717238548796265371228477945907141979415312421867363075624526331860080660073964448487051705691259553371760597441438619608621214238795012887807772513808313638571807916607124267347844598861951548771875056372509017039987316285452577888011495669254612770367869359614686230080543130337461666843529693873180481812428373096722321684328798266682258005221634269002489904090782131845839234428078064723852953415621739539446534776243283109079119341290368129630948446648608651756531430317041029272902850423218721035616050137070883102506968545433813013761495648888027921888104408689058042342003162211423045721915862676198478092415474833939263429648100070315424803971416410150933034730675179642200092540638363023028856305232766727451012913572629987853449237523556078554628971417925239838678030798248615535684806187485254350576109797240240032893125143467719865496969645663680063029997752224854824104361999061894896079109659635365856816231021953968393884410699987592082493705365633226115590626558292965199445091133944078704841077546699999024816414486162609486892404706113447375363411366253583837963935432795556203709439821839413137367082345702570144716290527709910071679643088578147974004764189079217563747960766450109921171866684131269670712809436165793645573156295401729415339606715756682785811163958889069276065365299880217968554608570103720624681945227413134916443392135665050916888345391899270531256957168666780627091239919668536250802388137828702331242819132656997013226559103255168261629837219699473314004965151226635719021724314856034038636983045735077628315013472011548285815038080625451861506144639196570478762399335739999203115264332246624810070015740715251655980328228546642569785962113418319497795136703486041575738878657915329112942756402627664155791390460984075966271410989220851476337763973007731981696508037794887245999693898281627965396389430831844402584806620512348878248231099203907585948711702779221196340729964852104228661731228307705455511517502494888496780153046598166622940122554922855895295920025778919430794155857615569229269901572218906542474483531978068247199424290045780401766169088167229980084904094205305161387378421036452895139756391111911033228072284066898375721886181477787009861924139315638902608710023503259448058754744483797730162794234200767414511420418149782991436040973283129350997250897765866875209322699491012019453162974966708178711557593066820351064557370200261573284826341407674096791410142956566004120960171375165596456417391765811763024080405084421039904922721923447497473268245912885408156420966671641955961640118911777613762589626771493384241094464215084854915292264222012130292642748275908456443897686082962711234325638499858930542097575262015895686184604923551413298038238874990250761175548201467561216364894365785388511833863354413916793175451665896157706488057309863775425182835448881296455310570904716372505058719691775035130451174330252246139183829992183053341133977218763617357715260246520844060114814328772060116617612823387014397928676285089873826963036175732739313205475942011765885177778011446178513983516142769771010529383026023108333395424554733423428815413621226329291079724685294628519255643839726160447216922357318540515918162169371605130166285695566220156353174774934179721627390015208167321674239269672877615834602179936771947195983025994157244430989145246641752657891328105762681328476708780815079647213090206105976468678572929076285912367645381974844695995544140963733396175618439851081030146554349775870751179753295023688853990194560638197842059666073092887408063446039448421106221207474560981547868433986442186371661731238221186236689140158582640299625291778763910691326262775755676102490886457668604730856486751522870216588782096846866258168911996134567595364289446051734885522374743407793442682780390515871531402463773626803616916236673805954678427828642198531118347041810526232647014576589785089145615101830068834324230196976406583066821652510638420915467173624381208476810868329619531287109893553928548292175787907947374052008278392461155924517545880374996082077024175553183967695024710495634679677911309832519975820124456059596466908303698122201502701303800209939885077154918258325899955830976985651959310405811719558897642530160957536503014988598895592067454118733581075661595302817389925241737681927547346546013738983791730239555306443052577036996828660465720985526036586258998224755696252627057423683422142185785899120959694486864298139523264758197849655750575522611430621613300713189020299233968626140783281320947338095486430543208110611960286209806616639761083695528865453167504115276344591075480827966287558462815574233590793792928027908981762324070061068144912740155815109981213181822098904858681575900277790115766153572425825821446824592186132243853128347865922896927300379007618522955546464039860836836827827227411530254416695344278855483568267939401903406526892477461788309900936063578630124714552477714503968033253659845672831571036561872407359384978483446526348474723741559363276524083286964991521923980355534454642313081514055050246527466885272314132969410373663439626627536592360700642257451942929384942017452918379368399942925167029653431655523483087070635212104769311609276811065194430453320962619899123491276410757511123787970041091598250080678306337834375881226993230817628273721043777371287446152559024168553987404707719926678120193909939178759299719506055436042238950770633308656901021705281851521808871578463269336192769785165566188640762962710384949149460755616018385726635079906071133427050022935066137616755444918369535252217394593535710018998554565108794714143161197928365322653388386956416702859000072538348778767295605435439001981392759399295884254948404895615579791062224045438939759359456075299389630846682233169073008864317676043449251112301150130660685762465047996143228257241234619984237999179087616401331118681151099662962669167395024098989102589994058936401760083970957900447229539154622434097449374392824586060924141073188224989317005056549445171681458267422255075633509661537938442826034045349430949123834911716177465287553689628925296850015143841251970476557793644953129112745765479006829380296105608700067821922739193270292354064731292541866608244369638532175528001099836363938433755803534853852025897496807636590643210137618147962219505726826410886052484407690502783763232864707802107391936386010016151044686498540023248262118011654909846765451780283173458438382790249997801932464828911985486509559555778079659267177187943563369712542352407585460680413714597394745780503225651152178966872104608237113355029674072776018663430473391422319945147904204721429283048617924232614798876419805556782114846326855360541103450185553147347897105809862590096433126498251982450339723359782332950791928748176533240687757270052005561093322610135422939642696299539910812154807849844711487428904156292130538804001033343250478629384830249709903438406633066037287471210791360515158142828803038794325197055052417134944829176642549969088636871562257730699202468240757026013127550932684015631047276788348375243066264887350038825315432618000809726174931674546924778917613963097235104888310789510720703110778324729747479299643271341108182980593334691813195645486383557418436396637861744806490070583978935742730376584028412899967905338229628361739217995277408789553288883785974592279780041386130987727562043545566359392657393606461438233447374350647467862707035214914703447852759930890911128899506922937960590076429710307630119964088850861330278074838652310241710421115081782566626318122218035767945126038378449517615078133109297044403402442367371250269393804371673446518697716966570286708479268609511700109566562611413906632082044356331730689919614157444185366117609531077817604978731557453238065972954652320890780194605921496655410213266387549809806987084498858794310124028064055530131736090976563418462507305875364022779589333599998304095761011920663125080433691106886529453288177119375413477773598197178618602177975835208958805286548385155296341743115556639199747971877139064101221149323631931350677254314244364787609388313715741403624644763425324781832748540082537517087411059871810755667692310491960662812954600699855645707322835192233209169244327953261143769913358562527104096506044792259767756804977827403619897541849948176106976593736122550047505916045048700452243984855409387955391675791620939674192371598063986127834266963622183753454887402932351721020636035550426197863605507397837789561543645411369054835554530273368865924087794462224515175074553910792186893677930711531021088616052077504188859319101001412448966312192573221183234747732842646057227081651080268546133497109406063714675132832315961999407260798730279671242875229334019882733839444686626583227671880512158968478030427299650582988690876330331923970363189617432974788799104553509264049902002612835503591785469706113872537538986531741604699208605726649717177558960284590220909950658197142324008321638365669397189548270634394577548635020381478797862474373852886124417819460706963624430053332741477331053651950838292587138946260310848995007253558294387059951059371757058506498282410001346504109758488227040777366059116536253899336654381679844617996730878562472305260516653162011226827171570145684670914223520298641820374265369632534727038257426471770886333829638358372578533333577265986139251259776337593484387289621964179125088805328820175098978279749737161053627842451154049370711899318906577011516884387727960603847139871926163251264161322020113643373715336467599131184875757002776365905930461213168018764628564994128438254853766098027166122922931382339903192941543863022386710805234924594203037355784504633950561815262322965158388736273248338546282692414733390290638215353055763284787787904433559200240167826201957474693804556823416158090824647211750790386152150499256920775106974475936884911557084650871922821151760661324715817230657886870174732299684189377084623592396418948849054014143318633882259430514379316573512819000130483081288666637103085754582117327258689105816996113360529800221256610746954896565141199497276424808994163227603714199640430453533841638026200459588641289735821721806814831815174025797457344996315887578124630230966561147350844010983659320248942456040134809730569883472404497116150076139484749529949831781262066600109836623418628404988184748414666092921589228413636839613841068521281222398705033222397372748356848732358134970877116355884717802763008272754292065634597191958908558892328178224009851385574435593625093644126753168492047674014834871615199242591854972633154169212428590464362589090197637467536166585080590675969748381534154558807724203539668904322004061571616923350685022331179419278306761875152915270493819695127391348860103049970801025319737242352676398936522797754315273566742962495484415477600959144508656856634464559411651132107584731990926798884018368348752364111226137957534056522841876264458695840558938214983985512912873156328450896699743844851983465330088057138093470501183308331182742951308493578404918672061207082766733771084827346838753648067423043649511235478571527349421281585012804602395720433404593633710708633799498442823901709972130854582131495307167857111989665334864888187381873047752116040972142967851270775155737360503195459896753967504428709212161200530222509641097518532119356006350536283661682405656644446562013508992212753950834153657220477926393414742275006805522004145266123477468476874830442594978941664908861100643205486077315830688887174710426671605636699641976653033423039051101664259624795515253729610663211755430276532875141741503023937548483169106274248672778801721405799251960526632914912189628995873816647132344699364245695684713865670656645787072864822373494791763255731832825861692283521165654529789614751440903460194481992777929921902938955165431714883369118618278422610692937300134171489573715790914131666904608617647915325996466798760937751755045583233841162605114660136548409653010789991659960176187569106197216814491349721150492079500506163711327229810031200616428101057019426551150009329290775226604914630631272989261160176944992744916310410821924689175930487292988910847594586531223774097765823986736859896716948138891015776874593369877242117537081283705438841428509130637275881200866306361157332209054261095360749612287420035640846281090591743051601887119641625775339201493942218313882719846518865702177194134323753175123542365869329229961981878470394830284900377240666533980888762873167620663479702414189256840739616048973342655401449326302649968984939813648541408099361372585916856748499861747632292647678906053759667826779976481088959223821271052818923757968837992191191551623398309015702289327955990886245083038171357960390957419322763704423631062253765987837231639196823907424149424373481864938263908273788328740536998442651671320487721024668140985171265513215256923570906831514670360013617961166972489952769721962151859568347404357331476773472878474321637636106805304799263689807775848748515171055432767915173289916177270146814154496005958678659083302242226898505427174243523443087050190387323745340822804178853628654852000526574982507430611988085716772798794905972081172858722255969670632223140317309204898907916304633522710520599866491265578780644064028873584623812431474143828101182539546527777676217813059203902805863049603364994980902116176357350095864940750425381822678342848386663190531293410143072408202326091548532064767662658293265555550061804694075684996864634205095193017972965261333191532886177093462900864182138746527408460167322869735430788062723529034040868426862541277748356126328768746513018346861369915377708894591357823239832778219506662080907987593584981783628336809911977746801470812066823975003704386004448504222060968388232859893907431239957341949130218728053843642522291199916681264186756800690585368920929392629103630123422335724075581041865389618429918510143269443452152650327660520291136778624148679997133685163331656314446326971732840431288477939546658826777371443401917088820791435370936196054616322793289483493788092071968981768523017161050121991782286196840501315527829427869295063782723087785268059444721107461704020607820118671746584962388157166158090805928957275019493100351579310937598270185546685276350290752637227670805956729983947657450803857524803572846383513742724629615130147690730491775596868343703822468123690339723521591725261981484799028234057794330717648050077065012461876473447130105849892364623906833295184775473133792313500809321503273849209621370309129800814289940098451323595401941034923531678301136270541473037817193877716373242634467953581812014737000505795395012425880156219609961268688998980800661322177103496935475035879855268877111904956115655255760764313008199122901518378164640647202446932987046902573314460427994940846550457314320604247635343029158398729216430424531487642865486323289796767420548042684814588111565902617131945744854095226740327243449042914827300097082171506298557126610537577157165338280037904996074751782980746272361423622129552055996225689624854981366875802708114881725933441481288579068830470334446819380610967584011367588464925179849425036582322080606482350956176795484989585649428405191630694603050998601465963947643697233208270874385341632872398188926046636314702005867096572812993779035689282725335458489442681602697519227780426158566515124006994624919217116565060788208290101093597108340871236097107259586344838301817090538940964570495823400108375809836468637528344964964238863051347916510353845837959743239539001948324684269917203731834289845437203663903112637838033457322853523502380693481309257365500100412524370459634283622022957335900630286013923028928331530343324544752760763279019587579517535193232737970898288885600550006292186017748792707479621102420050772236328230000305498338331405689979214242231801109241873327040943410991156642294085322474549699473494183634270089877752933065431161324866375080719778221736839182458009732983719588654397025068943405329205866244202133595544352121385060860940120563464770741081120133590685388163413509935460602297555013843918176551679223782557294224339677145896439301329061410000487884415663299889723664336015615432600929484593881439576759786821614953550289492874474033482842910885869781796803670169297443158030373038315074541068287301890739797331153315675400178697796527138295738595496192642324513183920150183315716927976369157919398191865571339761135469397860942425057826561331167473459768006181259213522564841866735733823236023698923567509610500468504780868953037934785231634536785204472207608259856728055195521065955710870551656962773064093692087912357628739508397645133953663585056646092629772409093585397151644209709671500173990289882732500249680058755667125561124018607585937147953197164061754156306070950965854525826764963953499672782707155395669960739902224763687860508706932469426694976678951285117989968910378864180343257444128560373827147264760887051039332242707526286582082013185052436473759941712978401728159801677367849144955369719689054204048758846373974185073022319203186886302544683113495510396904824451797958817009433340605498288589677655464418751863059069556991374989906009095701391520839197048590430800634351718003424175286038300572032531184712709002356784553638224506414522218333235410222404871410228420567780881814620585165171949968479507364875741931497838127487260088339899829153474514276375308097630755765230497537998538579274055141589794003867510650722311412932360749771681365960144895509519617452916112165082914130519563864818491371321039810048221599456281836188178304926791978195943889097124300926031245404178228624587728320410966678143861170043010503008022095040036185672997233781976214991500434495970592275672515562784427001669069187241617275375142773773111966417933394285475957290694628177888815614919694134620781368401100401050386133597359973375783415007519249009547772125461497971673355309889160239698986917673743675095865657639975765074669762063192754904481337714769860114054402327087190397863836319059901122134571743339260966630561603055668105384006228866514815698246478148404644885532536658846845505939971182409563631409035813227480745107104657829799957081516997935647120621846296483417546892116454746717114471098583436240139133913746639084640883454435071056012086523826406100683482113838764139992901784883542595235371669370176964190597924876120276179530499571445571124819493923819768036168379983313866919335162539387905630494934208563394277066081377464220965178538967263391488422589055646189057765233700197300281528361668091350014308092982175676372630846950298191026085341423236113988939368417278277996222289561738837612563527270972099476183631362232832852011327160706392178477824389860060542787386335064792203261964906317667051495618103680372736819704208973734602105493457661686147359696016752149710380738047687452387638945718681224491324549482463194344620552968872896941962284321970562561805210521571067326378237499756615611397181501028438582707472089738143420532356238585665359621330556438291192063540810224933310798749986497336425422615030965162568765658573709106157580159962348785170018663457004044176464405311260328172006605221147055313769409647866648024356301721065467980896903320885930496562006213297088435128845252963118331763794483042079342658031556432367857183236032414827629514516396063888709841530476654899980106656213934135175070375760987382488864279172427250154819331240941872626293002732551547687338687571065540355348575852304869616283311539328885771920485421944461279407106789557082157647744514496080996142836918356354370682008982123592867001355800215688432514509679105267324566069840768192489963672984447736117084927142412944741476654533026773477398471111450697959341351630591500238191375875366414767608487751988775786476655398742571796948809760241658491559843731419453228188342206689859217395097788562552504993981308079422267140889471695037720263129408810851050786503767211571445153715975493148798697356624513384741464154791337689282517327394342555148785525682035527524739996631182458695082478090451654177932345398483944066600485628191633301721702338621616769826784051395824577697630689641945723584821166258814415853900286557075938784665452682477538205085569618401874511595374655404738624072431621041503670039656450739346352447714600262759832262260746490312111365207621554911883787152282798646701288113949792445907022060910792977631278233161307809066516910927776199056950640443199813507850526551814096414989611703494295925772857801479863909712952938070706931884665187025580750234808481998420350742401658098772806407160605843743063276497277607207589881733787920499481466578101439417042247405955608782158767430161754261891605109722372905413007175855769813028119026562193393774750323723070489050652437851316037563828537447166304643080728448207832356882508420415766729097811091114081029919310522453492698802851142776748802026342086791979605375802920623006520190928997325962797399514191442349620085759929407776810645721115638319002985588819136002685181243308483331856359815179682328124615215833277845105635272550680111576867337793683945264802675825195309514157067682996400355102572413684467425666247377793455943852776890444469076135849849664188492281770460935166128191601836566785229539393150385833940079052412532912605317996814222654614826379709690569329690351923693159444237862796241169562862008618849164711651370699937334063559740539591904075025692732970226746063657413206990138010985600693248360401888798268606927753076953196442193913139225456882581348604000738125998629095830673585586830917452691082968020026704073181006027770439791916166205288563950489533738925947731475043413516667304212220687245585389271262039357866886466032456727370260654694222762602218512473108498578794905379163846687280401177299844207604499503903603665418419551932156464474265483750581494250939347579760044362825473666427328096538913799048419987296929152394924806675937748463215000719772913070381190733535083657114796600316603553050900166285808861098000676454652157874711803927575171669297022601931506116239659049886869324874683734714298759392397017667359644705017072637743819253388116268100017922600793507171260527216971702943335013593163061273846755703336080182730464312726020722083893555585137449413783214905967866568516929210555014987755704884207907926276061882735240111895989327858116332573549997092699616436540486291543092238735481348638803073934124421015239518930109184832819959200958300720607925441258950945820488416885995238003287106723059562436089034794586396284172706808441378685009827098381534874233287330237026690267349034686442486236716041081623693228815032112923485171941117038200661040311667247064423407026873060472822956154575076858188028781776846412112943311236405573809452601392194553488255944219583438984227758443437680803686499044356153967414276952161632116691408994772555892825778753076498507301846426537175291366255340605566700935946079611038649075117162791959441754960622572282881379813523092923990285225627658396488744581559358317071855086402734964091618447486013207494872117661254010359472872110430307888701075467768445723741143669074611438084168758848963179788091019797229486611619794800042131583140370142987383538959507890956552094259903925591400775242720844424956557786795104597363170874476981331820258830655817449513216214999532234304275542458550583217401191508415230223586410358728300206263184396601241841277096156333161711653275737847083190222778029073660042176427414393319929706836152817325873147498735167169411891697642749955763142274791640138818936667384190597501954653774398938559531491651936294796480593809345119209510743716619276719322970782465839749260328912869954150472166966780180536454000453205256212488905024335648733162184497120817616853911821303058138178005552434567563680993507815392807846995053318632716723751847723367176968208539379047995969573969698437539945278261616295023469914594661946725138928185481232662057801297658340929691713647168146399995950411605633670380329517488503062233252403034026898889497900738818359743323808168583110066050726466536043404815477230131177024083535721333532499981805830364613775595723209800355223048010658760809931975308275055916340078630127314524070497549676267456971964742481744837240560662542058713506283762679529784060046186995464788514464691647965535930521442882250848083461455060010905970025556662989487417520080425643835084274206205033619864728450484491931717220076364673117707981877927009218275342356104948340124822393639442138926670498963414164443085997471138964283199345467770623300178714644640328513937893189819063874793927519103295465720730466212768873222057789765702289604326617964185570409798439828323529653148946098436880720267287425713081094698307317659182414126202630463528989577811086250641640127889559162354746467328729443786451039679196529641685018121193060668431829706831751012600673310983341817796902516649310336291780023413297653953015652796581309086728096070765214963463693566750981262085531165457249823491096224477447199227261856636938339729835072934012615653812621290933037987119050949645069136557359561770819310923409498786470845790055902964787646014214701924509547348563304362783358330250318719169321348436660561814244604323587693222892471838838156575132947972666505039616260879076849649909597466809233007352654724165341715544839487039982656810074944146592318714153290404796292296750084478277528811667134953982604288060294127251149649302872254707708320890484181608700500708209922411940649532444140283148919981791676869728590290486574337565874929314436697986866969401649685266132973700873889742875301853598122470071615418144781959719047394148851365784890640393413668573361498862506045182183612150958349671085558421087124736858128363572013969219241672244428431962455259025210488566319655444934736286473562766191435670523671068154331483606223441380091009944873135311479337514991234167894663367050541888815249878122885797214380685164134983275040997591333666632327836706949065651156376687804771997261124730208315605072309796531907265136833950225526545756826011969132155207955755950971708585847365064530765737331292146042743937555013467760695148609947262397961694462696036097254867053900650298315811835517016607164763631286078571395851339096117186471107195977485761625716843691919899756329183064299664172081365408799171028628297324352045564922234427774088634370399067280347229240047963171477235544024605436879756926680601144578474556412667040794842003887989621648173751842704199254010211168555295787962820414546623382029083798424902606345261514122451144468288070772992044574425383278673565725661783255343911413797303184382524129777221387174100231450299184041182659990780496030911503584685460241926769997553368407115045630076363265222516086930735448529021777388151814745643974443684561724600750483750281904173457215635836098877553794794008773797251673041682614976864519897599841136607730856655809845035110796677053726078976002041550971646841558695569732659945356395806078887744056897633935282885670949274137051404749011157627260724882412779102500830080538350033183208417761378519235856555504976815329735023747850026504649847661711601173385172367009699043976480805536674536833296198044407674331001623374258861066554724859129472238919462706017023620091554966593842548495421059854221094508438034720642703407533894200425879492408451648393922741583816074996020212047754547300996532433395066053909495650566446269637245373689303646754044690194531589083607402559307386271493856049254617312644716212674262309422496826197728711305431417054079568318510832805814260948734170892486440840542450390369979250629946370965337993606114124206439466280617284027064434689148082431294382212682065591398179316756656702356416973196324907884854478868893773510841429237869713267333886945418003010620854781584307444487569873950892393281015544678255474240557842844905423486925227982876148796676542484806169551456005824002186107794084656971356361250085137011809865999616358441805440570271615625890993437928364341138427510428209117872697856104803963205256360080478413874739675060885418635880674088023627905626183069648461813800347776332102977927858024560216495353555311658367652455203471164799931154183589112886232670280745874250502461817791345253853282122104883188070043958568085335611230229171465830825717008140778533151202274223071964612561691564823106640547821842023702833037713377152245726648645952167020751178111081714492972302746918678085311814552793751546963795687479260427260042767064193506934660573361086648832608505421812000399331929220906017595599310383772785727424860742710448719771927960949308138065965893477095747228513164503023457478715727274555966983275073755955000501754524808673371063248831958790869355082156419747553992046129788167932202642540631507908980860487774098108500659848042304689494042153035213890340144348964401442727229715148550652962432804914925711259479022726098166393234719414945294326558577443336007523867786121168888546232364431663253534142099501275433176882508068842586666074869403423062190750773208270488897973717914617406182443569026293523552954894421608985310095894075359565556866788594866022774744970361926324907397143377875665900729511424182354772011833789047945036375427328002111798391220835245811875174843081862491910085265538230980320040190926718038514953145230169584772812631297548733136979315459018462945221062446607003658141359119983237536409441384964278226089859791740060258490149136784023986474357424651347189304508262694337588163022060236197620777814052795662142395524284500198509615270230415917875973464790360583667205733232635305789933091578989957337458379554408916354107299017370952455557106561785751944692589854990662765677250235838426529222708071193771233338238960447576205806976189960070298612130970342732896629570796878592900351486054305878479536512797715540855152076198617406481308605542133686733996138141373317890204825672954996382426928063151862764148044981690506450779344612449556087044000476161314278644355798119102491907303161260722244865752798869653951402915442990280716492015076165330759556523537638135450776283497970865873299770511286590934890108847312417037173619487516264946577132144655838862707514788268942204976391845750743505401199143043138238374270093987431613160175436098874138979866565406214165404175470122917708166539410195623204341381874857142205904571704782214803462446409055167217320322904025488401598810567880559415085720876096458914161358676932271668491428170572283322803157805061543752632060872920279745092529354952606136280258540031303716930370003899669957515424890159157533192785697542380768595164480335755783340527987244978315071864870263755045633474254844291576299344283081020347053322732419450554837349703369078932741527556504817398431481683668950117832025038665449203532722191220801119172053782329630423259776152754168011888915878791599682664554135157459186523143283162897939052136044949171857870579877135450446117899262899283031520316436210735785327698492964715388116331189485080582945658591534488467418222250340715129223452463606802945196796922323716293312729415890407653123310105101405155215935279069503905101831682835025317635373326713307261682849481357903489850506243108222315863231020141084664112942866377947457744982784130361913678512625344204050050907718878027899190458350353007978062076878823307330412635215353319800852777650997841341418705580417600138833093565787954516288346702898195785172617487311921224111446165432302019019940742626314255493196276968674601187938780753614276167092314029143844308346884043661854964019414367814165234766035679226353041705788934666787138491784057968314655319320243724103688443297485947984167610436626508185616850005478831869200472008756127741047733859919801794845943163761423685965345599869426572908478094425761825873605282010567408814962383524940908842037268531958210509125089082160384174433710213020320510638287658971183618204453714706542249727520504568395183282817906100140377379073980487784512041769911145599681257645282807213154803264466998152011249106090295655500124869018593399050362137103147303844501392364841998373853158683326561570237946196678780953185376944404823085188549912673742738557762593806967762065258299167419689765144652950290474829386290916013742758986041482787046957336961709241760289545737648775160096453238994661422936154003961245828347175387821906081425614559021620075695597878672928676318651637310323904910814528736956600132368781013622560070834107505491042322776067650157254405596185333460256266278326643964474407609665584201065593765730295972324211913854203612951854336212835117757818941068102946193761802046165711415086197230309685438664586460232210828304067982579087449739480858292131651927222611539101869787571375697209029505135805363663428990984809053325119103755079768901164178371682441224368959793951062312694499788827104234938799538949347916519176702312993560513191371580700967937542907125138296614828072782874313938476747017476285004524388517825232461541581013203031457828246650456307069640566492676171608820039941291823542472462418742375339020032509803412374687033222942412700852874164304822552259831623704365280909169971057082942014146516108063385478067508808420644319508146243281107072641909055766631994929396040372867425258689202968525010437730642491687097921344781192264303160622100179631067023154965602839753889893114487229813140538525976470493035163142993460652993862067724602996016127401207517399083723482411401051450354007185404035459134737600931098328031876612164350815808722305575377342526999968925816636965194228718086242075276297237675034587154461244563670366844495497878183557176805638379630253542584321225023174057707170063762569260675943398664183473959710716867180556561248649347434348244622663143430444510015988888687826345375283421917836907121805523105466165313638545889986213088697573008238859517103662401303889505715664196497152469161121184995521615388322145444595875664741980914321239262500794586013993574255507245692999064636520171812278748403619768365285502345580787158373191461492952119296722374709620144752790022884443514758051934810970088242612381145116181359479607412280883241959768350871822607998029327349045262947404023750396040278057625503515156176134219086393872082152332621771197683287398143895772894591988636703983813617672999123981174564725127429579261581699404373424194725265190806879782652146558602177093515477294200146360457660419188247335330585140027229091925942331243038106210287313992943129149002572407302622393360250051328259877626810464303701416795507336529751360358485208062918015202576897738334342700629040065413891734899066153132167156127371088946863856765565202105707020041804537015939937576177032167583349282217131644356933042891873793237275452623513838068655925666337253871490168200512513056823134576702244657451817849730927533224950727960982590281381442254774750629813696099220425971710011636522217658708648643385917989408931199054506289217634191953308903375106716862669054023207907876773280401874171981734720135161158955432106135664236850336167317691021213438924847428638660990726236914534950306749832466254720214307298258723654172188450505945027946931069755313342006729699293775032315281301716516814468794951633098541294871079520180292394978818959834758265912120631544953396546754858450697413007349578181571176402428377567847290510893838960604015448824156569984734859186779348573664794755360649473933633017030516253556037961310457608705060719716450571236236991324184258917582602970004537707420937881633823756657101574715328228336299857256100615711462868421695488416913551756523570402218473957108718430903912679877350776010382268782964371249010121948489545052423325164990044658794204022911739859290868453537940692668242062242387947773861251266955951649324007324815496787307784739097163226231847558979768238298716903904067186502097846660759749251357796785399066951126580023422443873416194729523029204373535855069465879530210922200159315248582408702740886355522040042218661598854715258070724447240060354441424560530242773564996743180890214596539393330376099500480192159680125262231146015458631727514978353935238206361536056600913714172798733079393869233945130026313553952026505340200172811083900382677872223992912994992864960477815393570096513284741207987217445626750569933873562722380769891102219064119670206460823487254810458724995115762504449713870117376139527877080547381824757361246127327257870682281152584465860017120066005094040316209194098956317698053170152769726688085925684145390094855058543816263230456247707047445155049097825498453729982848808877468225873651571986334234513708435197479089803792876432823137349158460086406836166780886116655805232521261863435334507262404237024679207827489237594888769004519706863537223990909833256729657175245447551927197605415051114045479076828405157843103753450745025232143838922016224952776124736574254617430550787566344477877649796398050290647955582872290579630734090772819212055012150683793467955433844318658606117312030159006723835242914185228138776478630042622934823467128001356212073192333959074804944095503574239593437288679577438527104258993563404397895417767970947782936612237443145699299206569371668027638619919806526719110366710445415037327877778178654371339152054284061759207189418302831613560995021510422106197261933493480663433666169043682165515008872026180184315061556919880974154578106401062489626738302671598352361632391469730509813339584889032306094555055251457719121068447684175763480641558633337978682421079703292898995293553371875289975749722170828965850937135806680496379908742854428176518740084785684927851191611404905922106108528303415862088121609613508273016387702876924504989150475199565276595969818080131590402167763563172651879845998459830794733838689236014841122945250141464503945686727319545341919701909745279229608570077090055500561731498567324571570763764184737695947765304509384540793284305918008695179460811171867060144815645769921786656641453910198078769347853577466096074766475806589397012013104032883112595293076582552872291052294340449318258624749717684996362428487826862049382390489374461826070833800356954502712022372041205640851759730003972418918534439387480500931553082573744399842336602357318166394191549456809458930625237740794901929593756504954023786479548578720921038138259506193746630196137704833868222815403191751487993493873872083805291447085429591974119239480428171741989785160568982952456677224515543433053514041463351833515079703179538553358296727992687397602112902054273811094621044730296832678668816650741861303316691143169510277561319665788257080952800249004804925433672572724444488987161383109872961322324533632485787863537606855650891352593759646073868844898031180630212547708386865703479222232013430797343368518731429389406023101382841823830079647208340898317762487945391762360503806421654621705020174512706187628485764509416191411641678008131395486834254411071767052301656135850333838423865740881755677716395919971607424966691581621929106836106341725334611503165171057246191875344161826060691722912280040179153581510071173471925670780913575545804535225738082052869437675710489258996467553119981213632813569254882979776858655718360220460794356353538753998552610124799815891572529172818770345685674236742069423711638161872050249723009473295443774172788603626116499028694767275167328268630766567678571338434970341073320371091419804718553646290599914405894848874777570576393016847758084373760130261699124659802583303401799915775615348991856278335206481996026400717010892138538561673592068260267686094688993701371167027934973574820766167433822711495032784937088180782958574829064424747865377469481867694430686480266520084241152068149499786047832495034944607592273130023176577188644518185685377824291660712831789354522905915413015167535575385155372148247907400858227666803103565205218807285871650973452985684073696364362667914984846173805457167948181406000310880261442487499165319326949626174067746849239161147277988410983630960242741324133821285811531422828204967932773765206195398727316866275336859826821194193318482072693307157608264048280130889338358559403065713812801941214381377815131432716434509694069980434886549752171286463442896217446412099675771399366826985413121144747892784649182873965469529745403615715267436443474622570937987968447658009380933219835541510703241073519795390244157184488133419049741617242676643768485391898022537599105989002287653756818548487194713061096838157248081055632894384835330382795534609290858903240996779701896608423138429915924309227836910785931260236543326292616169368355093120628436540141876466605821831120903790375954309666133028626562858488899788043800127456094918920262562462191505596626557790924121011817439400325999962627998426178523512123302689268283990465113901739230894561702693801350855238619554871258957053266878871381632835186244523948346200875243509836565838828147792802006942608321417391466571863968825203544757414397205000911874782233840376845118817183466586643113252042213494575403265225050168153255500439959937849439521686618262542381321918168610557994191343811087154573843364470876372982298664874671889041484109015604327292145225410913467986965694045922763432726004355646660817170092632834798378634740755680717338952404933796295296804110319137348701982880548070768599056272100635456536076937152562420443672790611742059991988591035017085822113100380664990374830301562683267919490948557260371750001849681232319641588172041859970088308872909613979436065150811838345302035381022460964696500595813680639844277639358545099681589810368021197911229958896864253499284566725106861397411983876389878390859111649180156788224927993818745748314046541816650087529956736063535336000063125011904562685612303901365756931843460076513656859209832317191049713713689485758397310326249782417399146449435811803280166559727656407992005995753510687021234494838741994291753913942459247701605372589537970916475516046989479132653519971007485681299896027788340820684787887992787512694371955727126514717978401003352900807618293834116045292071445179824784559974008398393313144085382876801509713568253925110682310517547816815519985534866930229033566564966741268246796676438672040571201448718445923668480262693512791376344708824069746811477085599944400693873573377693997083141500912148385448550111957703093076722268569852230299595445060314803266143852023798033810653143151068968578778636523763736467557531856351323458784619564777613380608799651629070200473457465490215968499256555157331086008887964366605450450400563874142224009059476176572253667004822578103849800277342367634677798636528374291125879133869865922708910959756740788083597175918083778605984111815888854875592770853919048443442910802178617579528212850290190906115780959840730849540595591264474214808450342367630008766101148257008454104102783056891230527975115742027405213809573482052116333105945752454572666578219451167583368159467579177204140196816628514679801363422608408739713561956861931663915646176119807540290052855600943886550835124436580723596567042851042426092630743350016410861181894303467249852814159737332007635469211237681328844054102745711492713091186116636115906362908610212938662205929302062684400677843693466867957697006877012601904420700168580861130012610156680484394990688249796197033809019800649990400380122680909693489795644798263864573517584124249556675791174378584636182811043082462744767123724804891523046062735209126964563401124753975791065282407083855173610206719159008168761474059384263630379984478513791034261258613583356543967490884963471078484096233345517587769057157059639974304726249035783192907380327927898280564352421822189518056355191202303523824651375678005487909078374993147402213508858669791411662044807260786379769025849894194235493728118603861331912050830433223520328560078230771493771884802931925018054222395625973576106043034321147866552696235563499920029106076607854373888683557318329485080797912529113583542476536548789685813659641590611997892167864728244061413317273612022703705730465377336965732650492195412392629223398681541084499454617688073662008175565151309838053654262040106916052738768104288704903365495008472462042482313489331244414600331076469817388430783870496639145708828255842331786336821784986155954786394919225811661088333941841988066057121732614932283735540172086705400755103486212728833805638297759764382414702770098515447486337297015301110380714595271708325917275211300099847247224241195549745945588268524907153806158125134580939027756161033927041387909812349169603211551099800716248834089182826600614390529258358174958511626171067892730214460640271472153879797868396576361110878846404147965880661001827261354379304770385319335689274613375948526076984967800125297620280696861993588200785579118090010280267477763066703705732421265669934163212839627846927858331785027254836148998536035307330321465990880778986265520677491242326210250891145766086317203749314855363690976323214774706679209648394432944200629185481586370641392628056995972743928373737885120535292266517189101992871136249157540365456902602422640348239718473147417230680058545076274898152312801068092943717173036030885779036158771929759548647038154702514816655095323631164534977115909623805850068374610527371650181048353958745646563435168696479915600000343829112159184136432205599325290142165007859433886008932167059425107499575856501753212226804467631342639293308371723021614805354509315398124744660387482051338572401577068527831289756562869248475509429035366510898758889149539650569749366030705095157327917749121139067574373085680892747451532474903238093546052832332139285637436044609968024265445008928679842823878864115396655770707910374301114237042919857996447635552030251296107274214772197675506170956449419401624170079632092126221151902030384939369178262108996808424711496231312102554893603179843235696260470705915386359685502934221503663828574888842280033449034769625444282627041244486358904411349062909047729610612871015113404724543089373725744400159789882662875651439129796393038136130796751715588220581565482630323327611308700024092500173477931927118010181054305535695056648934187761297396147639458523714988200830717254403336092319129471062781061095695892634165249383404880256301314164750756091970511039557528219038859156391732268179776408613937440456581324075520998288299204411165886802031547723046853984355473432969441613586425491594739447832407416124754846650223948593069734585521656291582506617241730220278716838583859956316172666512421212327824135837327146514583917195179192090580666745463276604455773231496883936729290508012104393790100050263011816453776583267272485786033295608669237188566217208568501310926022622823263836802331443148186341658458362457625049894956529766816097854045827501330272736926415048312318896125153765012488941655157549240070683227912072334336507847357126558180189833669467109351641349203877124351867169075076540221995727592608094390883122969266804306325896818680844257139855419204036468307051404729358081583624619810007233565890432065824474869638844649108448970867321631336392135061215613049862913543481188797172997904767313503964317504634256392987701720628671259159362487810370718055382865153831237657609068097474390960205817027335111995847778023102373161076941643098602878536127525744694832245179078813765502143578226785715446624668011541691669965526251117074968991752186529059025365980644931176187991202827684872009088978745890568917406263711435392942895444630407155620518012059097784552713268019974509474671929425352441960586632031198974735524166167397538366369818669523597155403696859216452420140534792339173593121616842766208172899970360113888299348048939055354141099575038049794222469421445424005492342953205323574066985556046664325233769587177095190474282550699631771210300525864675682737389166350129990171801287769360653798746192761730796854143598257016781569009404549519474838920292670312259002145540004326290243369043777546907209623504881200368905022826610510975516380037274930581239110435712678328261805126402885092326708633597514060094184219433217342647406224733587964937877029788398458067374794277363796016881520793338127563396931164371080230828971348636614843971175221782505022449815657489993858761595956424625958509377552395054753920901637830296949849785030907340641796582078518535539092963675026128301748707520781011574974484684024629130847494982101707687826902181859917130161738412897742654952539132299885857751681666192997533034232165431500009503780015238192834473399123339632509800361137742600380848611492823640076288638831530728866255140063949677072585147421386183833824247827345576384205155077224765691091807229660243977014844717632505369532139841220756992642719383825856220232599151859290535080874000391866554446570035175348582519474080473158138088575278919611242006961657218300441709049964482941784277575296941708794166675591145150108732731211387633046803004724449340970310124048291395118330694566094254049178154231683714155795293305270985887903096824803142165891389812408221727520390082044827995320552197572760641452350040980042631795052664279336247480151517774510546092422702160298095090861951227691008343179586458238998482550224451656703553610811552139757682171472361116791898261414682323108708988607937032829495341894739453474524084186717950542504863337193401658544289590175084271404536933722703536729457483437366714491810103683437050066881487210676912850576298740739656519770550783495671965604115335697449861156537156314279915587484830496949153626781530276081247562339282954342564321591183734580391213683426594819451630124640810752022464419248845612742185989757573569474825053803965867790903998294776896352297761306209438090188605306477778041912286549617310938541653238248082399085689817320949038729915217533026102957070078069512927812959010672219087214204213790588491567833033628251153869477330008581646162144886233580612111131807502732169680484088820012524391879606442892612955720511126195870028651349452513396144042806264773249595503188577746733369608985515543183626633066785140134673423004850439252682356110775162972186652231442779400579106673393615972381836853837373260955174071926094434940476791709912425790114083797574166622456178837793845673265082029958783375787641171337702139392959582529762037032583199105934150169739360714956923764358963147108735259614327726144322865127430447837757407614917663102339116748540701879151470613013321127998925004326068038573800692481447947316320622573226369520518270568955141486445381159747449230133297663864872254299164829605277969165432938920334045474881524812481179587218825830082218527253390707461673749264679504777314909668699622697499622037848488309808941142138321082811475541619863858297053428720988539016720297569372003955412327607625325099578500603720568057791317095877322263807951571698430954836916645415056571150670960782220070030317250624231002298966473662028369235209835361345819597368993296193689584108150457028768117770253735256281354122564512524026251654567824713418159639059628014750737807156684315214351070452911520038065772321834146827221392438085949801071564849262548563479678993862450854344281728594028674174932410683035738913397536640694746598969286912645509508229777786593468153718989910459350666664713497780032442895693073727154316243685581532661844432948604938377697359078736585085316605203659420944148846202479138648592850306299591616453020277691735130016968595252758299627441453028289245972903964169310361291867308592037087673972916076958802825332619419207258979798131859622505041220642434832657514812337112629432456135670950437957036125995143948797733135642981776189226758284234733384315506504904236824659855230576573000527788239315810417940702317781786143271471710930920499276472252090732571177922577138679181236941122519130426526005834235741371133073869989437564320931138649176070253084207851172854029345136619575091407017481565738204644264158555954575181009111122796830343622100777704318911305867858115080450437949869332853413941881731539585424718760483550794164976323557835833594125240844543247405129189956180069410663796339464887883203290568761845094097917538273315113057371151592929047816257444251596339603047184828676425141730696245446694043841083502427397546254429059186129847231910876437522468282696019092730635846953411453616221160022052301852164531456268725816502327148974803404730394799937591800665380176726706656123691943671376315393689352967238199997503723747843560234992979971938436215522775751161151370050338381398291558931098622003663556121094517923554234563045507426899524825277713467067590076542665539886348288644024798544737348948827812000033872040318687027966823601511195416830762666242916052606044186382181247221669520537609148532446268920406246817617668562016205206827807593875856365339349165790570897984538875867671810428563023727856121709967476586396104504284953206786554074448511973172805635948158907040101233098343353642157508231529823789918971347667929482402784093557445278123318113846229104219055402901296220713916338865587051212197136684376703186354459669512006735552976180301391921648824130864885665996713058203675741249438186790265586084559381031407984315832492153692277618889247467558341673363619746947506538173659150846990585637815259968093423727175595970581890820494546391535681360841963945414957737221718611730087856356135837362977647236567537899229664126930114527989654197487639927897319416095309110429733523704299606534072266350315169499269880626463229324460896185680438286009074688067161300095363475371434513775853893992817784488585214701808550859796354843473014135538383737866317559385141635765304970306667449696419877764334651085623386996438453748721205700106236256187201628653552536923421198020775019504628874298564644726753916353341976720490643821741227129285852140691780811229593812156538678494520072985956253012785474620564384236371512340469646203295540971899803130687228543324150369704680872141179852424410209600344290137127983990305412323514163841090462740087959165222161633644553652712800172361110756646663269242752444227740391541589493051846205028709720511923582029833169944171337465330634475253384286458528995358305681084013748532068116367200749399745650829107714916063577662842200481864209609318309310949598875319161727653267311178992272375489007210602628379410058329259097160717209880405133281094343315103418604270876307546426381221777255621914102065899509741454308766541539498177584417147523458643196106622278157231223931200286819954664891506464219943380821849990873219230983805549707641647423892838199630446063560001618307229282560186912981023289487161925907136217346903745421295831312317402206617238709117895270412707068237181657456997148326454348649641924215729513362530658269619691660058310870540239863070728298528117924015137559121464044454550572054396473552867795499177998622055386141303157360956442329010211826383403968936048611202556104657313564736407303011965132871841842476911244509559339297103266653673337253310732878563434501019401634102313261707753672735977394307186075159168862598210615769012819157293210319211006002510425656792373427067530694491617289592317541278757058821755207910766438803225587334779002375573796477698444948250178511901725950426988664669165528248825909324859297492960653275860095839221368121314082737831178114783167226341233842526331377483094096300650100988077646349952370957085378338754819048343530873239076408003258276063984932931756855858442394923955043320070707064079965942849665871740419729401042422556339465607510019280237247395396759741271010146380382362258284992074811418576123962140968934394660953842769585197644214461647855762304930144878217296492219721927252536613428957176123810459425067988868131353526065321775182701313246671222272818026063143440283069210372685801790245920189230739895333564823663551560845773322565103234183844995369900983755560201798684501722514108954291823428441279719133998783448166933278595289954462658117723411219087185957009943325767598025351031017195090588409466173922577845307227201044539828593488954693685291743495603390408318760861449769290494221535098672163166788666039534306095309822999072606074486516802019429229831616822304502926294928165961001601979916226552033125990118869880665994148840119593786341114635087616156164014642471638884922858085412000325062492817444226706741481642956663183121686723470859400159666202262214187446394234899934777374010458062903356366254882120439869016092315947538489329093874834558785395055473621036477737838827313501849933221791616641292413407675555909055373771714437022446712013966602282127495755095614226974810596697696362554720734864084600533111343468892069574485919575435763595612499388668654981053747991227986830188467381657259649469034358396426736265124766522432390033269035388526998076878861188154675326871152463257355094535857502918020017288716748172804489519618335717840787749991250568175871236449160730937136265206842084972582793034107714007486885729164708826520650218146928555858764568402078824523576783666640357049422564968072903179383004852546936402650897620111830347006306587577577080022303566831607628926435970078793204194360093761345925157950992682984213666436601692337017075713979724996684321044291359909603626076728976675297399519628851515126064719446944776538029085045273732713360034559696759458627997151646815385970307374339128486044743172370092293186347867882392315693444123857009008343164884485004502508058870042172154951359499728906894056184895800788630926849516085176592476554136345815183327326293784788494242411972267655210167111759505010753119472152197242005860427170842156616771878443319866686974258110013100403623038959464272371423486520685424705494167075554010817711961532508522110445295612819729930790154687238222205413570753879976701891595259238771880631079814498830822226886302622483168676877416648295174450417403036131301027797413696762067158809177828876081333661679792221371422439349072945791844369336653769124279868925790932717434023246888082837082913436541096748204629958435385564315958635104138530969776143688369220865426076718306857038762215557825978090992956902475037873168861607770866767276476243718611847666615156608544246622704663490437688939122013439877065780399159633762290394846200712614439919247044389953094685531006426748932126824658799718064953569146342618587102248939099181607207820963114138460042738269504510137982054679050004749318725485402106801891683858571642948561183215197049846068257266780984152900413608028481105386643007034835049203853307192138426358111897425492435086254214874386382049333025733924334627156126232783618911267290918548537822068881050144755056287039346056491855903948553872759241470403480102932923811660502622733455716932921952514098336273210898325957380745802124948304678222715276538874552081809634588570105750171442226735938667530446870316483616388126743996402588657724807311603942921237967720899130183525844060554756666112517655225864337062119066229867174324950259786326564444719290081179890181017671137433596404661945486395906546900643808914491962936880170966202208036387439335980060202959888679469503218762378503614481803890203283670137440565377781048141978963620716887087580811603686722628880118705710241739830659775848908027552213845004703513417091476514589953377658091827464697134160209228354238442773394588559039694066159948380757324534551533982972529858611026544255037770052330710810103779757664604464774898941196281186721511395080473379319207923114821675082280642125837717311610930501536637801668149782710451061566527554599353514826966238835838031206635442193996652910961940365677192913884175499233666209983612278975990020308584831648905524539738833034068810895715463744407154755524715869323673658282274780380966165075616692223429660558646933152173937533796067662900173477560802708119099184991438067167469717141552703826798475465064858401383940236602521852192543173135778901215229270504337692921233726677724458673054382203608942053892912017104604942020448468033685255887242065652663544053446532754002355185474053708917367859417080997162140463516932929785610251081722310550599879805860636021915815619116801356018456976183296418643452863700956772286910092198081104037896411773893722826427135118746958370112565188201139099621289535043555746903689637603782257428144612344418409180381260626183428728359119030786562580330537336438707358425394200881455411592252876913857232865699825987452213535678868933730803435870534890851639900656494248153236951965968385912566518906336573659090290411968434634034520412630103394653817188363134907694678698216171184499131273291397838489704923138869787308909754970750012842365243602506352763898479492192666943461936531827140992027492245236953798593271789176294085626121566812149052695039013157363992558946667551184739664166273847300404888846912645599921782656737721755030196134175016481441899747411085684733003873659256313105609518120635956979583652715631461488858508295589118708414755615317090033738999197743697395033963854757518499108613684716811039651988964727278823439804590506693538790423505932836842133552996591440122611536963654143521097263378883516212683616586352183161055814996545743888471786660217708141493604560187534765604864941839204522714657703287961758564021807403517807398820621018100432803475829135650079605449187071755807220923383544877686081337409499095200230775861564130829686659886087069401370301589744405967654164202573397857015692636997571871447968091990138636974505936955152229375936031769239641050625237538601661469114746502404136001802533614557829940190374085263977938898721354022790363839859232750698549996717863456172451888749127340746879727547361620350587219864097481511994488364195537027428857812488702447852917553903389435266199447305318792030958231360650523957077392140338102934847099246196417514112195838829927713517890353068524674108664039718390097539476247085616006318010575554381439022905756289318247865638152385932804250002699592817859748967449035706023770452778195797284401414178764247723577065601438076559101357899902078520833756500966040654462377340541824382080680929887839363108314709644427722756160302400557607696094220398555134089451472673567485628302409153369913350018541081058491564960167446577894738278701818126562035894735539315082056149751876896470563212819559451578175947515643171138798918439209565509490372556831464364787291671185782637371807781271237299363868073040539255010111553666305399138257909856876313802149733438093900278366310700158461014039032895019052602348922854304175096980677128922710679503484281087960624336429357598413460166563014557275917343955557488114313557419650864437022268765446378756662708461282159737663384148530371813601860345556518162727167401187035072199595676097823612939296135119429949330837095019005364777902258932047694577359647068956802808961757017559148772686146490880298824756753016432013029213437209027160381548433608175238997254522450508868577340491717572046051900248763509084053330420133568750716034741710391620286814179339966129643691104828474694104947393947739957334643110379506325046646922612056565902464378003620465765735689122889583365775590365486873038680336827023061014785845924285187729153122324527033038769887851416075810507198351295728287505331553015439412076634660469502111504409704614267598551684092509352430305421781181290192560306982030315207202191658305656698727287588546927398843578354537755781149208630350509472595416097433175014362379842544875115615003118462949490279994877753556866371650321519604915860183428306124014707153929726587973070329793549603440071117496199022401345392068579220275400375091601519520399947685576746105981901602133858034454650094452926164093831438541319990121288155974218666893050077451642366968666153489209816884161837260575582660256686963605926662040932241977305254202515945339147615525581312698566244438536955405570995773695957864327515117678767294854001806333602727408798589185260343091343409434079786798595561936984080324536496743505081872123250044278217885315611437253407430274475950502458528060618991023585902775776237289928184478778080173211752104039254730769131303576860665790084787376475541617904338194094827234441860541579078101831089231268063456291886521114133818230229512251699522948124672763717787917777074078114625780349191644535980214673550455432688290204897333991844498390060254805452188710014993756332509362187265149445485941763799139724921555058033690353813478070651500331350134118000030687646534936813820610881816306540565694519594657694506862047976709863452612943630983657638837643394327672380736836529147968789098436234647730443952564381992637391441901911843842107882407750501743212577082752797642247513566459049892157945505765098935260558107795816916649856454331767914211018989438877980893465380458187127759156230095382394344873179835628183901508078856335403989340996937575735928079423629744945034052170842089872507692159750209959088103489746224458420611352546637475696069392803804831818528614806916789215554588305039716656232185248272395944735504201056553047311891295110723803505345041648633140010952605346138335284195684881095494420143613864457821554182235778363659935720101004278987938294266375823535926676550926412324663770723458085104134750178473323684696216611948160918716365104331131763343501229217971733516888424803038356632698856878909991879043387603707734776528499504566056603481582695515663773867509284201513803346079295769330722151052618730815598030956084790095429618051366706170518366256117724537640672324566194062123724402209733787516415394638076690430047735646619025821422947867233199498576849405439838937357725432258645948575013398653380541128170222323022360352563419498765524603944803176355941835045115163570846435867497084884617433739280894316066837328739547860123059195913573666119602232532381773999446295593641047754196023468567316133657261864225255159557893405601515059612234024832254743656119375707522903114193246804853399249816283921554501041004844305409121990653268585703259827484945769223017133500357781343285990773493566377078572919850510985231791705790120639175839866303819396312098622877627425632792415715763190027414458171522284891871688355356734336605726927350209892654279135236313896026843265275126960689004688781109298598788129680210772789802123446826388964739607446772968889831902169852979852792601892428228779452835798388636660109015679636638456916110574509709122918783594834716229781958822227758518559415188041932945704803922656394952961271342493319554666239443000347761760644029855730902118999673751401831773549407941418997400386001237701640212110103029691108284385544178681249458323395314551042379477788087457163803483251884245305691077053862082801372414625218753946290787085763635453754889200388870016581472101677860114634423715178504386252715660548891716985361152529534156767928924184363412127372114076592310809971006838179903629653081885479983112489490650417877780533583778496677468641453912449222331641903759732790557480204407027128025727328009596436932549963860142238642850002525213498693592595569625925278389562309819135241942685620012370916440015651496976304583947969611117387303807455639273756584433931990589533743676242146298765529549625387895956785281387764223998652688591451903193595882536578310805665771472356322931826309467509146138371845429906601839462068490418465019948266594739440817061954999237724581098959644377546016221170762251883508595572802697023753191564165305239732624775077293170318079225571049162086545934529269031955569132901419097925552431084416959413993161001041991924031849655948745748895264116133291850196815766845984408481532626681803811906494556922278785512540915966897544442571081944449390889832862075117412219915787066645102550280069839380970481247846936420723292540518663126107220554920395932227333792271012823889061588010237100790625780677172085219764196686864366721295254820329094231147410589882558453740953828684388573027256926245038232617572431933004618856066121336071540512931431776669813201563325672864064106125385536225782953803109623488960415028208250897745349502681693264659132032851634417381704051147533916601494969799835105342452316918541109419880812793904508436809999569919778278971567187922078654787832869890475572654256616757215096350036675110488930196260986599562072899241420856499355174647468635756288665168332259005297272442691791932332391238995857238765737615426052947718349041042500080948173203104651171489874100510941055625303329610500996358508181860512838910001106318450112844461506864036347901095446381821873567158268197129150373317105699159433551546355326854778038569576550740737625447933806745754677496688656706393260970537648108985037472206761053370646979828505112278426601599978426158551978709989432683109348221999528273743924710229172482317994406029678324019063027299146404077293812119329869233272718076509593952140014291709849015172500320118516904676014680890195190475856642779904912766391036539686691692211416135600814845465130546648042423367485234569803026655954104022831064064392590795936148475018655257211573961515336339566508258963038542037426182528495828250293553696705067288737635805744201385424838166131663392916541777191415888898106000883294583717519356007551844984116451263490284668786245160454577498501275275226836811614543906637626224042296771994080138198529944588490014235421339689577573320448508778699011223378027023556553839117605845142802776283876253535606124319364230264284629110051896821848303078277478835391832039004988019610457623548630021385487848259836046121311390987345315437742437452593963541595248528970398374622547772312005735071234860647454278366032479600982582997519310650211686802970927010971826531290186464588766902449094006345230818420294341890856919231082726587476520477864892787404656511949955509730268458398092475579371184075390838570761812472121405069609897623775440849596515018284848908950705894535580689506175507123911042730908361079446137064299552176040324348383504252722589695584430922975088273330771422401100652810578272089263938932133670724269551536031485195101856846562791198899850057233728767248648594640394430557472374476880974479491427397472428679267907483117326779147093576292385450385923081123828191353345316498511239072617518816173165298531622838990608109700277274401768663270506229711508866159356960822800777066534864836757829305132392984186702805495139517627656261762982455481318592571821889389081905366769659352763504245047774353378989041240003068949480541282185951838412796387306533834001769551769709553608452304030926570588411467585104230265834386697114822118782141837121255007005707220173566687004710336398091183456874223536783263982916801739922850013589640617619475098528372323483116345688145680595563333005879457608765914384592633848464798745580540955627078923224634961163856083556622338367336838527473288089511140293876734702637239022162662221910754277075742388263767067776274133794312252354467592857326755190726594071912628689814301370410082794319947198713835432922899792227457336338099303507452332703592228701957349882893786429454817756285884692480219902079400191011993664544960055945494240300354910149008972954990011111576914367692506136124196559031395872907617672969894885117865586794029390381523513335091330275739606566740881008389547649084003495597914163890763523951986109448977745164452434465035748125989976406052120792612791583450107193724582416358939212668634521015273947279858238891353961187451637163039612027532918656843340062222407034764795717695542350198157930999343825180742824936043479699660269778514380537654007860315191224913024859206278385149540739588896490066083718942036830175896393698233776351516716638074045025578493940939362346125746423223555383751025035648110922938848723766684726868940389044370286356442372177340552635540277843413405307399826310420134991678314824392271374425138929960027497900420362840780487417439415844730077691580210490846981006779403073899679336013105559859312069191246501696706510551232499490688123177735973335226929255649148714122707650439546605285562286584606703228813389531255572462650961120466833689182228459059996353199537805839386247063248607439169302421508551988243637528883059823062369097243060079766503692994261419093640121304341734919591487552763306909673579363131874983989947582124291119817703602867353335149140123149938378492727910834206674005174509922674515539527440581662669042169500893562523520598697558302439463379997990651050554856498766010201863260875637674505078678876830837131004425560695111544299024009872029652328523033628414618821124009419681562483509063127178653429904186305310924091574057798619478821763268564454715466175389768618726721936357104696186813407047196556726926774051343605920721424525170557094133676720817646519996514685628848258349550690397477781585342985155880377299594030770423594453924602223504677744432267606196101479384174748185818451766513126485632540669150406638435607054106188222853423755299178244429360574968198766933653543200527911978681568967412669685593217169263436524929330011895803483740931262444603928132180480449366929980783001269863616926070503161931059793816058928469272927665324222633142981525778814135559245218833750951568129578920357755448669882233112731098993801929239515714337240243794460540922212311651182870808420875102652526493742056501980321872015939860820597722472378386446327386351955177574269306167457664392598111359346700902412343806358636348228170958085731665454711640241582136566230332206155606207083762794925065760746752705617226460959829757997178539083949161039208212062781035007562553445278338683965898498410980799274522111324701655499924305412472078623463617760962874288809130099335396023083255470002372496704221575545094236569301399606066376900513099279770036927563972219928695315155324809376426766924069858100499541064911989348501364000480478371817995355526271937695320915175558175725557217131054441054241763649568239329044391021594669209670987173778936312642594239755296635806226527427864524262313547603190440140579964726768293827246570527701896015548412406261491255757793005973477603358943173714463322868437992364652119262046200770283548785084945603269019616065718601466163681330414835170194607990650286607209077583842122234680487475068820536075986689515586863290992170650224571110892856369103889892244170557260097004513269210961230637105636638268306208258140211947252091221301192421909687314005961778052382089493158097001659474586618623496135755193521412410159515810349143614910354429409814794769156156301487420168290575987144266165504957886407168162196110479765693971317746488579836896059824313485557518528825526123737518499058404447365333769742519265071091686239721994970277905453771907207748894489279459266062488680183498444289538546729147915188065107902869933134332029005273894879527528979076055906228580362184134422876721483646774778209383108119881151647730314372418110019827876217638020640470166247263814148178019189582573882489884988608141147672112288363113994486614256439020638721899737565570172223620529097893139493119147191928192342843290410737412807589184650365322507540598951629721558819305933636499756500810216330976217711158365593779973371239119261398642553852652132062347657513955141414847343166004982425953763428591236939649644178381071724064243154349002321695482678327351009058964698600363720594721003605609171516023625267953903078448927941072453906922875794595288472125197812224993866430425244616651867497401288539883291487853933960052701477455300311586327476941582616143582527654741905769513215343732081327007710155844275966754024708092565216384735475665639602600830513017520945318146971582903838273950215798983042543702658130044571690656285955505433817680142479372284282526896134811057186625759006982603757786170377728438426553019123308092439184754090291636938023225638175595924761285226524736405796626425639596552190477904474301279602685173450625253008903849386495512581933647996221884501650295654633472182151248474465491491980108365254235321435922847851850023786684539510715350651769934698091548734298900823485180125850766644043053101855815165381162925217527606937360963259283791225432845868110886598701672097498837630679986995844238560495453642540863339617534829397820855974726676727220738722104647159248592960140836557623212329117440257769275926750234716200049658170438335864498950492481103190074710811231517213382989786761721380140611003655764312986306230419230231431704012878978484645890471714470874912687397066743455088290056502559045139432250474856593885253396168001782422267074871350367222819830770783107999246265041337742135780864264052991370823500305777121118901836295474403261528506240446109027969943154180364070881562029191944583039083267727531660597426892358083878303537141839898991980596203980485322630154823377657477124526880543827115613328854606576112339863221114036576489509247435623704805045230346711543813417522205293592652951894673014223959173282477828533791409926558310119947548381646983401097379139192833660538930940411471713052368373783128167686967720082316166736058001473903290448946546774911229426549050401242470394157497635836535008031712522107409991001521888888209346588632292723695445103126931594599490984068004621623323980175229877040515384071847681989410545997733034052545818392506529275896540776517458330826868483106681562365766455748973343155964130303229293625666957996089793821059192427190178643369729162264129908853219634582814299816134191460132523017401381415495000215043504526701601417432919810581071971971211840207058468751314839534913116748607812401778505779321650226043853950682393083060628947457323821702966736474383739801805210599379946405489212631409032259773405461438005759839329163956795997072337853698453181552841447118596137565704854127583195916844031946496317678392737373994480560187030951069763628774694137084036797117272438870026454167428987241596075472565064653033843735991776622887919311541213277059019449491604060236409866618856656590582311135276132783393711819760620510387054004797613853230528712447563024386764576939998395269723223453533551399533961323719520252484907593513273826948729598813338132087606772709864821510857796579487754747876091568534965432905384622590866453955371698272271545185595120444551668167354080515486622667915305449566940827995164514985653880883547992891160218833043788355351244313499049932193958636443149353510285000699965388140763459270717275510520325533067916090305884092862262957866999095189235681406119957230486248998810087495822813137014263007532431902347159978965082599714022915756828535027420996436413510576884932436591497270874754904639874872475040899115291986976407038244563532403056940314084425650761816938315031379647845033866120631250936868866063365109811148067505229084880618099554266244756180335177595441436698210465181713081020415269491351387651231335919988760433344141430050066853074164148328751533068421880142612590356671618961359433406896599249590476927073020059693288261504035484168451812977468596717827185728598821980280857867644035695353364071462912530899455810103905953109353475493254665040252151831305481096069130722206633790919898737638299446673195766007065354139220867992832235379783911121745411737892123430796274614925644860499801701776706429186965561097084973440084764378212725912786102971759140059239332135259677431500583073018447345211916693999329029981646627316279822808360641229216776297444110034889710626563359337637647874029148557845870718215277403525125606211742840250245029769091730604993653396312497063622662907939368041730347817991411072277612343369472587755624541268737718155712341411658678322024499160464426835973055187702092250561041218831468061842907013930826769310782524337165985537777222577816991857310530703831797989592780464907616743333320320354531727069960208065136413637658566331801757221942951667938758666709053846789619356492150969934451068504389931229292768588302088550625608062918200502117121842047356904329966186630894828556322674181304342757823452097709226836215387264967242161579891724777917434825790781692066117487748462902677160769964286251770760002467528845590190351873650761946345264999673626240654000762400284950880759167544284997031687706288512781867233549953630195617252764352567728698086675093273954474949024511590968951301967506731278730076270996128852261331672720737712697824196381655438554170492247945156231574331562661274826514354012269680988165903653836254963662758704805721720449989790931447087236255814823013921596144909539828365156618688263042937716522147773204817125938512234443959417692156181863201158400806587084149593044820386068574432886582009116617369083941444093848643692088291913410746745563006395967023332060853865892717708589143084455025485096910390306561278510502759933264525088049471432391910096293413593156065376907099767270340407015071587523750089576276504100132339746085122511923306190376255100338054881668276769620449856127210225378770626497484740163780155184410350078599305741014563819790485825624176247970737922198310778129469643039535217321142532409560530779242982581557776966784248990578328368174068805489505734227280398662036616729266339843330212308556817324586500530582465933049807970350318901095907039465201465527305235054494313483228156545069644554896235258900791506421765740385185571602913907079890840970217278761810478557247479341654774638872954917806470640603826084882864481494987709704806512792107651451026876129328606551633508648395582196953891483235643940121679461211181377178191798141118172398731530343079540779849645150296393967154205917092600782014658744991500157762360052382999714550351095540750279481557283118963639988905201834841159733651881216833403528326013055429454346858431586190245969173260914937103349974655023864307637603134966387701238950612881131623370184056640961801552268022405918415287411642853010810026641602051037764423911854659052059327374643285483821664036513410345247565913819901975082793717111872236704998515110342067963460996152865264838448255655484817548290910330636722082630991912595811333752794050435846584191249603110901173272055751779922389686795915680505136573956595863503492709601386065733185209491782164316344775894833545969323195307368572888397714214719662745224273994884017264212615639244879700316485841960976153305518317634161654824467553672886878098322742010414530082960580179696706782861112788503239840974471966135538759309584808611579717904554022756159731289585836506742712099920810454874427923337349156621661213102637582299513876995206699100437518400418100552556712790833833863624980090491904676295888165358047265954548347160468275670994887689696963272145037342592102927874642382012730985611019123272863818946197853604522953301807242673455280335744002528743436354518320176231062022296505693089569931449475712594548131267509697615483497664365865357217817618095277365259431986805434536138626162853409255484758553538989108342467945404651704379350867791130847116082185283165929666728975565289939324125890205599689904761518987397388212490999194004095930563507190189021232760031567729659856773971197552357036883090848681555409495274252272373389269081847294576980810049940481758329408945744643594202134134365502819531691899894398263346831951050681717054045783721463451751160512454729245136077209652953239379480132324674913283101001634317395971407038780520490875877442234696216115679367129805949568044255869955299597992692099726599510309878577770840199934048254712314772555200456025374534682456071638911025115075532402766733558100431335872295781391231959767988089743367007953970074316365160324873531686962651289064917723262663207369794001789890131697861782317215915608250009241686005018353754823243632830881179126193284992492132433271784861994075977989675379686396770817031135998373734750461605558343944849033744142011719903487214800454780203493818828800219088452808712909738226224276003041881561567107322016524685985101255865759455175193713478253529989244624726364470258930779964608977682856872686600401522651273097138197069759041385371012831242241299578356116916083135992940431026601035089217352008792815653238850537259510467314657184132057294453552975128856573066392026562706121172978042311555258224607248434918313872260839744455299481139295898950934153971658969998823761466573867113803101958866596444549152352673032843841908912091732300998646380311593979545162409651083517412965427939438288760829986905689330260345891683550876293432304155066642511071568851376017150440022569033945583848146001603195868571211034119940792335335086151352450668999946147687520306425600644271109513327061353234299022557048021954148963278678943557034473389471615674428348676111555069345229443284931957240645366371408774261061623287122110605989852425540110435812310977912164136083363717231673053978869427772400960069419540524993931765129547030074548423274564023597455072798383589749951133759103307935432263960636300685117815101876757413790145419506993682830465885052077508308252768087140790954106100470030071928221349747957126930549725589007388172299236957727148437181775606695616877783342986378236009581341049617171268745498738315025522277855841386460609840536947150140009310519284767092143773215616102372605618256123436064952241196154979210524039943423262358829728943895791354503261999342065730578319538654821156818168407109401846975269026997060608911225452092386116288118453596081409406926799232148732433759542991255685710267506520757879110169958149351686959844106401989834352864668609667588770535399244471794299945119127963447507900634849491918923079673838591659975236620858541985839803865497673107678783249018900975555422817892606087240241590374494259093170655492975685844214823701313024101866886975120712789732653971094260590626067244620767477648381742858113260835072444588645911734907357823157957777678876495039159979889940918455863637709577948785091444282569815696558089932319425752578257105070100045041993267857590467495265137879577479863503560347952774577447717220238299250448699379064327738381899735449952976873993189424601601766515249968887522338740363991819734662734949085685097939080690378244256342193741905556504803942765933551157310466984644401116193693691871762640776368052838838899340236264280939242764105084573814309727806846083780784923752844757176129078003478187799656292710381952294417310513354750231654922881032655031788820732604823963993760593354072831665657055286273644500325954667889743391061779107631234607766420843071930069749907866623033861672266498934605610470460487143910886229911435763973731462971727224524756094386251630695776722367178379465100250288810139511823801943562340227628089936566410024715613758050599990467586903122215248440850308720398876172385987082324150237983808359245222460123453983133812148985499448213394523496006245506065566164877241750713237810460697977253003540574827822482028105723564287504392062316990089520561692235296981218537049843240683268909045231557252979527293413728837246130547430279891286824479315632729993285458371542296136589639182793630738251586466932839653017395498510030968880600894472894145934835998925546183342896441886661877867495174377478084875778122735196282173401169305355898145362090458541197843700346792235794234057430053572839658118882519471861034451327338763620483406997562356232243069138700969903404740874953066302626795920706525602131955872807051240958957443732070861426058949349361663602532516330000112829404915278653282263388900624913760128677614622674447062932570666776340673125651021015883445214019896612614729159815542533774355715862099073754196812230046323706954693895551080424659439163783405456606619182715870990154224313094574971418159946538094046179231203152864352792177909324456071519298622634149520948298968974235159795846424194919249810829888275282328794426122021989871597388589704965777462927810032704502582423785415317775663860191287050781272957802915066858304510964094926119534265302545726101876069912720583573029224754261399225985847244376383296804530624056196294651644116868620771409362252170616821965120298460446829489028805421071975651858636174449951392203429641929417465494448765298674666913979333775727845640287203317386803377961932795062628995272901448607667052012502154864875728832849132779287748460609234334408138882978765200733622071669905517726383399641472020418199686103368185437014522743763366740167611424329453511453230607467830322539828488764810980479724941727028811249535316106552363472045602490909806016082650679386651566900445522923148381020294758140489704341990924308543093983367723853959558163476623777403795212980863712594173236944580211773421388436633040507050217341983284480882633745432993106935968458448923774079992550751975633705103641414549848532139134116461208003278517607409354585560906931932229581049494577255970925947758653778399985208554384150717690356466322676080038671830499518221844845559175708693045537813621140575978975696427207912661801763589484488313295891907285073355684804143315589260946360753287022496965793545832203585507539782052908739620109487322421222384053770686787592422212351357519330611269896892812000374173341871354673844217460735991104210907101253515225819746562454225992393332509523369195923174911443183465501809217128187669491831315054958240983274006011444752071574372327048720623389462454626182765655980047035249495337152197760858402226366981195835047822480818927174916249180199227376930108167459025180484643664179338346319856940097667517903057333812470533083534124468242424271186383136078035854316015107471471538199093282990664815722822721395725994198604117595285360921560477971158536849453233865047158429528681368290331431503986111209309862480955412140585810966314740641665940242560739025403716443363885279655802953959434200042883107880164087287332054461965016965814521530441462067881238531365732837561634299040686596437987967862751509290171288763018055249369833264636195430299264025667196559908786792833367209927889893425099167851705931986688321706338357386224555587024765041110059453690617160061912207445559590486832427934159599248114251206135820708313904385260630497924475563345314439233091645458692729958511659169851164026342447362487930757870286619399602951237267356631070655249939069553933004417224248394956089435278463619884518279146983395587387122236434747348493060552755668701400987808224021014239151996107344844312284016826598176733972233524087461043782133088004561536517043508450297777078185756420053432990992625209893103152949444293427760389202962688944111207475398511678452048823371015514267680240196742539293531734285234509206832713721079879492191591655568549818440540025942964408001774630459224770754450844272814603241087704327099324730524915384881341656784971338094696532233092841380555692800488995389511029832203183055078831256468317691553316512808665778744595139487562871046172263901482902483286889350195808696870448231261477217685204497487981956095459683053531922803194703353679860804222094825734259850307953141898574849806054798885488015970964002947377170421071266275502713809155523690262296001101811093229632735814548294992778232753995641978288166441026585526167075421314191843522002917378444074024387519803320936587301597519954108852093596472576269308025080368607570302564438626385531443541566560447507654536223745237045158828709574573679388150855744510508855230413389080635706978393391182575639482307613275536867421031945717957166128597367535232969791626929711884422671390197158632643315732243703778184261670489136008084073308250734309004745393533243728527347454620859568058441949901984848048037215733612942361963617222958421682035081673602341366526749644801095359245731836079756084512395638586136678354676809261356993294610014155189804845187990135377240415877201378188050878323381345429001990000300191604568695861421336130787670875018530535719512928733099509024840901309492166958507743642995447135570245186008930689268943660827709213294121834211795813852913013858522359693749588393161395058412116236287649870951871208983429993067790836297647602457313632528724036284014013050840171848334421943539982157253586202993371310498030896297116000929106804839538546431175087266895363179924097860993449409270760602366095154706057806431547131941709601046818205626361444880911640683415509966683593950461012618927197444742681717677610535845144417168381200309396767945426089777810452636970113168601216603435642673983083723628505113632416901080716075009368692546541755067249808193566629522800001172471701836727375318632176792565617834878470126127286481911966127167821329560978932912132105168149046696097609776589034830549014764619622968727527105331642262203700452143021549836502213850408758810670571469200838778225205842531054907409840593327038173059855581801582486715043167148201108528522645750715537386377505900010488465291474747818053306392679553928088894384318191715643144669454096118777666676265659642844565674965168409003744163760695484069985547139494765551658012241291082047106738777952962866164066420667763789709882645262940000757240524865796829796445147004910070929597390647341167818153182086355378509884262154734209809350134594286276466784184669205815703718217515705757975385632970263372418105758317763670427599296965488025524847243568719224732114812187211210931973273082492449542142075106400371438072772619120299594954911019903489206790191628593957670561677483125052785305312926247363510839009897556345089223948410822388286172432473282212633438722197649618549776818807829265163672364342988178365057080309296804835345893626840020066725432871383646508800776330411045218627457828522193324030827883888489230358130993970346155892923017948825185612996616309328598463166920015201156668986775533266294239099333121016150743546792479233021955119047732444205792457575005290251641920243398887250503109493092198771343936434875036535619054718781266911284652583502567101600458738323395652863033505562693956962710844223222737532698029319223974862141037675145873367050562481873621199674138483710662193741139417114283698103840909967687582928533636939101556088025296657963463660100370601619607718982421574635657315527615860745157953394534949827758794149214781595151213216804356213541437252700591557791712942609046947692127839207916510503960592094943501074108680897469835447704011879259171940090620981363472815780970576463013883979931842548270651280192288755059392253267799045594122043975845006449389310926263642772400004535151516633138477413440484233942114817248455852241329799690685399081519314242941054070781259667303486802103546055837747573003770644992654105025153626025373823036901841170971236674669033432375258873470601035494920818034929403992515135942966100558169572829187233282409643337127205462926242984722731756738265503567365826482511037570479673220306763543585845663323296265861948408542762675021739026377736640398336116417630514692407336327468389302257965779197396253828230136942420669329222901597817369361057950973453329596302587844883754002142005362808239552153529107578997756506183515767770287599470539911931691418101347321803619217164813611767476187018203301816262268808369094740002852943195479034888336051389531136196632537866685902116679979071003466655321124292428393173256180522980119858661262784065399612888715216362839591989385927322575119987978871708006188099677892326957459090697597819733824907874832939812133103345476416989875128859972917765081508291257357851083686564402693673739081355502278296240117071152588836595351499157814151340010324747920307444158775539134705058475832028603718815071297898528806899758460807675116732940622941774679162725538647421201702928964887120707390391139110889908183926294245940327592565806333025032562674781687054369091552565443152465392455240181525093383803561140489578057636255201248897957399742158451374666540032871193760761022127747519180500798970732830275242722083413839530817573876797256770067759301174877948821255012718391290887436371492754979682238798686934662416571874774528620043213074401325458034904956590031089432280330708814063010481700042573597245602056022471876813847498266504437069148334590489264164526132277405729283796528882752350182659817050449982594005212828828538568696180790314657361344248230760923510030179510910556228376698142421492081908160367627357979142342698965740315339820367439765953689007156996828914893083202279449495893223580647431476344102333015400930023172204042743140764835915839184964593132833374210697138205177739251385692525375054999683823691722420099316228744492581462978597320849912129400654264100881319707413822307064352278187674735405021108204411982067761393953964063159966603136952753121289112671510134329476264429750540443453803667429473166771481876227407775715136338954351698270852636093500450004978318969393175883509236908620814674633786207515004426295624969460241128311816578082716075498501404834516073151247972961945567766969401607957942412952042096602276291443590597314080391234843022586919261907798612986898091455937026986067791722554201436369568909897122592702686934466784079568626662878729551542503298195916922543725149327077397051726455761880433329783184019970486542519093342441961459929101308885034548647206206021170935354444784235419638829066460755991348449262697267676042349766347501601940957348578242129684050320253369035732000777376414156310930107675921069405119252088623457995464429759622300494915603911244928845332763281760585483439452665937459051405138131072699003037406113117506893662533689861192253249086973732333444062533726081013831056007595967409925570310766762827622056735564729582407226929245504905532180315301423155121534568291232007997510312303390342269879532835069310975109329891163869895932507934233677433583771421317730220959340872616778059295393209054184838581942556485279834345020331145055311342296585584054498670878845404384695609587438833075150548633648279832330510054378994448433577025182353967708886455432053537722706699133213338512448796798902035483782977776816474745800789930896246967383005322164682891416028863164442745940046918277977999489089378071403785127215747701601300035427686467698947805999011455011319674522648506417405937067367704549491003841795699494686072953585883851852987851053572453221795890675227603426361883382094847085592906034633250970090424968539052168514710581011949674040863682235609416924804067104025878085803635972491463219222381033267012666992864511821142490607481265057165900406828334865651520662265902643646933115031190322126667337817577731458625951669672867591613209381515126852650873423505816452810155803879028815648860200160843944732577684819325035373015191144664039261223300156437476427779999573725118287880902515742415744192054875485562157972151968516645678060778598708905337879178973373136765876506986073474127935358497339361717543657275697689716579894030414878067826033884118800106064816670620645796125129589053169690127920124229614110040301959709431126887482189134567210981318668647233989075039520403433415515897569885342038768064305305686958484807790049465763925988411928129220220782498848160453507329454726221006281328954879061289772838828025380132467507578385393967803867752892825812705628603681631486771682003991082306874391076569002072281153537084527059506545960591963022299331712962000828643049758616576116200509793471351538381110483841699494905759122736136967145082124210229477586697231407214564466221564612325556793314048329892304116006260183496634488001457646959940826969271148564313898034106294665172287321287604848162795801850366526923738849826961132811778314388573019386093461618558176194764238657717017126719818762286353959431822901339004940525994772847238990913375076299036505967887796767863111826553198350840908967184107438818827051477065394945259582629283081667038429232158101392908267685402744622549191706075121800386197104972026891921930917946173813993585521472242387979753750874963841589117205247330341733624002081414568934937546821655188100501889400320403723249936784318501413906897822948740473568302067891453788552216442088759580467298650453017055824734069296986641209431859951560262996958302998696663944727762719922499061165185539841347051470603754179694705342230910594033786022574283877695126805211469657494219143616273762360867214132351441881779902561136371885815565282644746582488138631676221862903463616550793204755528096834528694416354609315785549009359576953501667566113154006790927601817128742215845797538288884169990634160770203283700216016231241916726149296701173833687617644485779569985178239477855058161870271759745392312526674679061733149654255936376664858456749255361212129596479402868087755676697014329421611427062913747792139698996506793767285072576695992147597183396418666856508874624365093469443100236092336153844619521187180090047428796637148186892502060814642005822953436987626854629533544461051143567331519096616803997050433723407493324698023056293146606661786193920304038897664978266217427405038091989246871137721568981568822763429377860610003277654239616704268109089407806549111360629579194824276706064981452669914797437317458660820438496027254285735534188289917426634792512497025450834892675171261705409580039705303823392343142951391376586906069846345868025829901052438264770878951818226096057686425743082017167987308471202356408636409388446761307639364927091305498859209130258252999217079097230763622313580566234173946139367628838322364731276010840675376952776497928825607940934139191267219959791870895022525395460804898235298671434643340680176837608794437995606537652624246931691232088473267064696048356906750667451612067408063409486834341489395881707543070776091559893364844508809728751890277497118893150299512171022680019746337874579447437593474680418219505036431968017279857879908607494131329314463556489084084884992788923486336070394412532410783161433902119897963831905550286902883582369309577612508714568365476413484892867481180310127293375093217095496123433875381247976111290008618851912654531438608798144930788766182328301920854137295926754695559242347557863721597253697089295709642590859203954500632965409192240471616181560761633287231682844759986054383455878086298212117336013215907066227583211250854701527062184568480021876233257826809531730335096914746247136398697674383681619398068142208785960974911289213603926160622333354862639245451458137114513412369728784186075915126740354325441241268108545171783359797733990905387250758589851570011620899366301964434217906993453833837309445936611371987288606224930357331194474693882532901673046859615796132974319371039395611418846256687347650996637386531582884681670118007841061594041311506499410428883582361748985342587240453883775328905304492546396320295970741630831689071622174582415110038731633056569841778686480345294950024875281028237253302413195177252241630357497881865225073543094900319037444968814441652560308902208750035666545481948397151143089400972947141335594191870188686692646568514922230812228720767000340164831564541032049938542761095702772427283402547542589222187039561998339461760163527795498259889085338277821924106786961442965342301454472274396199183512277584415037672107905953471325794173103879127073963552843692180237504860416645289379042201250397280492521303935889030303393223322624483133796800826025760343167278259833783573598999088132826449650673258096724382872878437221025296009361543357015170900754510330816054396618610430644186518044391874108854747860122420593062330232534960784791203555094827403965978647122870677377730575145815321928843864378726515548371213279336943192778724998427847706931329651653644532054097319582310167643550446901227888992997685458432664070434541309424284546540163637962833342498821218492353850722542738321118011322717626921199980268710366188587459202483085259697382953775707958313179469303742181793248433242506406323392197550678169998916173122715899877266551715510602978962097531850753847568806678175464889797403555889443294899751049193496196439004699767205580287193312308962835998683073976890877340092483993248940524432756889308184218422591877228640664432886929712529011101876965172168992596657072559938671438952731082311458980906194898573459218992918000895600789945086985782399478180330070936463516280026252177758821569877085601692097331302596961924964264201882694211274227103158873574101303368492119234701200693885290965591388285407448016825341466421571364813160676926297051519033624730106147854947909027284311799421616398962511499189063972496278237119935659588805690307734241915006606972297434108430135923200904843722630604712972756595231284964744058423473414802229918847467613610989579476311750718986837916498659438349785651504688540336147552159794068639214481876727818897804299808291416669952993981451740324289876699109586659021025951454618815554605217592289293306308985403196083226435927814011232531016944338405798986489786065325555171034768089068003017377802233401836956203202172073047998814839074207344313685628000013489964264949775717045462181535806902721976976230195241703048895870820821391433017101075202894222446233855387936092051075095686485089538392660167786062430214998091749577426588150696721367762446435861555619194626529532051772574585794215611012264796905007133258146826295956646856361033401110312357258900910528290107156063785107653810522064042031058568328781147592805022612034664585479820659249986066263834942156414838182661680336362351725657544889217875440093245901175520735843654700712488904888489749105546864928054529004074921267518231377590907066969021601115773915088386265665350157160531892289067029805203126268651374538280996857338110427514276549504067807372648501538459935891054011106623304540013402797403253796068773224996981225003016538526622922806291838369283586918419832806186415165605872873204380357778483655486359028918640336705889422689763107162997393008444709165258324168554368506790367906762754793562861148391816751358858644912865414604973081119590903878001600621341753653157642736382454725129039689533487191960952654407374815388125461119065469576808595993498116899276037858123274533201274912708277234741928340468184652681950410746867508625032945547751004639588696264765064920841950980840992718585287818388819779526670609733277545811424947158897479416141743434204172521985299366480929957422683306503793218149061356470439144094970577241230216624743405510354741317473359355072084292296526921725107736693643953268948410112075827457211825986622672539403837618056465786805421933540309138912337000482687990969910238456374948614163513570185161901833331495834619975318397171211791172419664506502834159287051366696430006218332427450884366606549781384163782033345237958844121874762443260426221223900419916073083577361722758656542148417670023183659878582815552381941933939688251564216439476685097467437988524433163883561615742570033943596472849978749209235942130684667852325569336371460119335844928135035020195954646757660064750979124575784308022466893168934990830832331991157603082725927703468492327743641049802997161189620185986642243034468661913546589617846607850182256669543637533212829709964234775478395327157288545281954726640676614659384943299430410365325384963953895443831634657976390437431005620550254961626095632097601847863623440000658819346247016830372846381086667715080205194182976160169728422227442964672386280629577586369306895383816431065733124620873676644399717401591050809396466637368259539178108382469600891260825870723919915809292009972964317810530117908615440729765817440901585734967863134595718828354711991847552482705524758186373261632587185809190108114695008379103261813210835535760293542877383233778631630818233597782296368287561686191012685384732109349006843963127430812534896385710036908021006127606660752860119091720634864395057839340262147555489981886119924121341353886035359033286371808453735582006407459147913267509923842422844470463196745246563789982138830739543138967763454798375606243338699476158429472626009471725892086741479083728955074420932594005219088334840295568939256968804565457419337964225967858083507019670828171500487904627375321073603714030302349049884089809169313385044628104701650536869872652248550372139196572357300015803605394350730668635079556894653165374271427768975854295120905853903079789743762087443034495510283153937339973367637498886837593163407136615093239866390661868710423065500464501982683610055150758062509222805911453411069233847008466801894405682476859902408281634342228837734411728560504224350694301360527241239706169170008750947864087853412974999110727141468389905959908021375867476767496688728373820030928205923260575104488004734619216327961505463711687826799001902087123874639635260774237664693935958334087997568345745377741668328998104772834303691588810905089921355295556063556997325894707277882341447787298249757782560680462477204447842861017584653932350633460578219412957993860904227533121179750438048693789363566440972023511202007780460595730927569204704675967850905977002313540606359832813195273664177660969848218990564758293965486140983002389937973471696849378015525454491127624757285176399490177226303137201124446675995439242821442895629032668630514772012801817542758970969122830069366054244825873090070427896092406641670735281656652026740245254166101086697836530464963645863708231986057144951417534784398747593016260041081051720525637295011010765040671267411982593883511152149761947801665797388789560056990374189548874620052386019284612511274243470131324564301056335332037444568272795157355496542480590020632046418311863582640398582353594613494193342887535095248795238452852443335751476676726103601455097807412658150256568566011420740115539916197756115050338174004112966023310931324280894054148510574606471195984494353751021548209532075296604529224272683868359779039270433937494170724482883794397313814362290778143836410547974297891097282988593340512416214008787689141409150188056514800782647567536990444922686820785966259658997516013466987811088923094920740318592244510867377048419162808383795891948151420532893380669287230797791236704703315895967331138867982500910934574374560527829691148718786410732572225472949174382649253629436216803291009066517178873395318285469369414338560486857537358541786602392560278397022566829765766842672125176319955394037951205586962445622826241362768219999955912904595745883237860377251794208747692342959167541860054124162935195547141073629189041914566134620792504842980656824189219112089606214563220410917787009926457257161133919860559254426246137003938149910262529665409460452094048663834049819980430426384401136959305092566134535949309909183985974006740939678726737413586972549553198102551293091018674726746786577886385616134874330907327379152992530617836004007552147761207891886540495545646623789620294673560800854130631487191195603036319127402302377752876603912918836326553379314501224874955851805079992134466178631929738201337309754918295121732574776685098989266303394425253979944647755601066039354293021402786945197905899630116336529547402622303585075805757290572380495551826078442439526007023648708574482634307003414055861788520738695611385404334432542643140833897650621695219102741264538541571256731618223410572310023712022940517702157608915835451354626157970947748094170217046509470519561102091831498198833264026519586504806572029877726062406766857471453640469368169933940795112106822307464412145689311426803557439893986995285860214322440415019302018515865016181164793714767455619900835471241408543563915798739684724022941546677127327894593541638145661031237496210513129093467272462226143005276852227632242741058229817535878434391536800003258119435760745031336998432589198983178006900919008079687325864698456039223071744214626468384157849173275849776924531126895710923751563384502728612739373952622622825558799012352487986589538605722693937093619971490706579042442364709338080338319835283042913275970325111295399646296131995961263767207485599078522417481664390483335300860043130291255032162289133907266696934747550623991784274591975846101035014182410780932923038871218867781868969186069848460812568688967535297080199053780490234447640274396404594698409715303661469946192945297394632479194592828048595095052684068375995301824767900805158977395569017626825817165456560326701517338634089399524567649770474210959657287254083500673453144404191532002688511648707258613812412502367436531280211068032288965434478480812331099432346687489328043259574382637386026346125686377433210537982384433019868573436268684549885505440056162545712594859891061811178834597387139865500842901439348245973244202213315880153534012801982532068028092256144094041727575436222423070693953078046916591341083389108461005387324212424101642852622991584575176807039689758676622114336501170472743264450383387668969260358738180850394164246810632323425173042846491023916373327486882427769211725159644250903456349665438240808224980402733693868126197473280826250592835308842588677366936344608962696870657478323482278431706710055285150977811611279925159566187127928020391569219364792418548671180877899541985033960432406900682819105500022451011358043719120100007825769836354571293932023392111671271011433545400735834494027331715063812757032431285501482122717455870379567849424649695802804892372136133002723495204166054079525281490247411776379417053347107992501304092995989172996353036496554052592459949092419530935771268810058506400895719827718958678237732379006010350900476134189710859104254388826448046586399709320742598818311150340334658799524556371712213703621085821975713008226051122853199823096118550626161622875960837821033498613400402745245469702403498489309986443222298490537237140192522096290380290575307348494838120148012219810004919848072924764171451232629053437215374155739786028048054131542814695026143746052011322859091297452451427555508227702861300511181104101588526085842354763380336754175473969552934900193425826394276097877928144322287217392326957374245024545411723883944190412652070507815437390663987623873765188469633356567166994261631891071393576818794147615662421157675433679421062699075838205333722509452979381956125355148372047577535533760297746107242764615158215799779246806899020912057783291634279618701570212258932351524405591936793509069329097600008258265728263857973481991629067878124029065580046580477891504421502368694776873280533046392591048397707739293568129169368193995060325166348585093583492568275220669592826855857336245622949232602221617318986231369127551013787718987990562652978480107163968510487690656625354831815690589958668646336445378938965709350179316762392911347807579060306660430685256414591813879281521095272231164714009871432430654472571301229537253237376621372383680366259795938895813973784656123020673325023735992566328798495697291149392302842770450783557963907872352775887457703594250584079230194059979512331519609932319884078294960127736639633300555015633463896939053120113845366942550704600098724759345240455786542794313811677026319899521989459248638175790165313278560428524376672923923876301857576496610087065187048939406466196523426866307000157956933304604899074401911944786119589179724129022748631578484211556760375764001605974265119381265547416254778931634223768833715710270640051368484545483985254000591232895358096551936690632779838031667050664768755010599124412504563547909009108432299856427486874270242449435054769743599167334111180133081137027477113319626172146593184886100900727149365692635281403367728664225431804671714964721144897398569537853738759157106633440359363840163806062003911372338365873058718952161666798543603231810424512468688147532731356341475710461227325509194574411208038351799130031272748250710904888804645939939210744297590089885951225485623893613723517658040547586310589339551759169641170085295804606916180629027113677494673690975747041899072535514906913727705909570225341838758576320631111118463974165155377512044751107756231964832225714717665855920338381885200672412509321502524950459017774293729315324691841810211644602226582640504229663274366254512422834023049092908752466550532399533859112445968612844942254902222803547172754913332633761724707795071296720180562063084097335259155587175764635761524647667800502935447190286300584966864842986873932144495660616027411339711655595042960835346452046436900253406888126580996349473350510421412946803955945082378952925679650803916482618876968798483695462954390410574198706646408756947325299528563723006003035493339966046690855733807748528597484525299982012157368256931877374105788140517703020750602596440541565956947111962011127462048204989084068560592667283831806368576164162086349047716999821223922759308617935464862014105992629284522631663649046045739944050726815890529950620747571014581621054272459885669231219209944180018093795790246018943038752432946292074854783674417904095213303197587377121609918463803817994994919420140716050832540173942022612632930244800722630745207759255779187632862936274354198754952469849017309324921046771276978737723839257669280806091291069080610875590888592444233461286446204478220959043105625102923068323167622435415673931573479942483979755032017014007389730496260208522325491542900820543715649290718367084815107269592565843780133403628583931914902453317699157885015258602805000156477432649213276890828171159077500501853935458589146458457231231135931522366596314547593101431847548861908833335516649134494527814800864686609221098172700269078911407204584037972698167104108645253590721943293493461400058292412893721657257996034402765891414621784238205225152258281216522979901177003477899478322746072524698174910455343690419033643181703397422035494584035946689200831108678666531850504217871002510926199551110146162917063999947950967024287664397617495257000060277557936582187971829211505359328294852411387213348506188821954254900413278725784575824194451517126642591825617388443104501154848577853552404772424025006703998594123107701573596488422684523075736052053738384360442562820689162430420653005857323309807904312467514913395679783813063162887787483999623877027813258148554023207824367709950371106421219448683444391610908104288976073499515407955210712378436806602795584737158726373883058727089562142523068911306154873762199163946519933339672252451479727122619909282524180607540030402028371526776210579851140025416689573784959595890413805181072843658260905887794128026299859850094418518907118702088088665765596397784503272289054687190259003331451818372036274711664591788798115094785017393872329485488533293943214347245129195385173945377256708675225675685021314002697404651900515765522264628866625697529945214166309309849928427541395379952268399769055119128736347470482517508842762207657321974927384642550707392470597349282926068861786145566510728177815171296386136050013138130763923442414550534158758129045228298436620438814720321922598718213988148860032449973716384121038864737094686358515566926907165909422014571780869993124975167713789508296258872517043257075531675551885939950732210982341165682878377656094250768857739362489372039083834194777221330888489331434810966806128045394653218620422557482410503343513030480100092866991332416266635011192681140539611640061134094686382909614785067735900410709639495956160040375955389530016053333217592646158861443358164965147979493100275126624112465368788309332566947756467050063485311710404738924036395464723653726385101780578975523162019939899030730525632454048423336613778296523990889950915451701522944955085743338711368353929401821231226564287225078322124225541507561543238582057664606314201623564547459731232233450676384342613044105916310550251830774252589743101041188405676812049748902769614883956160431412122404786703819302848753462421767871422169435847047202293086769361797564250801419547625319171402449644227098403466839310379845032606506268868561375514246024643379288789962686260640334307287966280359793115149427651255991068917892530513252528661136784334792044132643824449653064527976792261422325148969597240008253049117119937301586638208509707703328692047013418562850203723568313849784236132597117382491101141838285369606255323673927115196695612760474146301451556233523169760927832517477588002588939693495828606611807710700856670581696150485345787768181685169157724355628420050473178475870492953481153599311900477339125873300101805793941364167374274344920700900759387494551009755541830403698423895361137092731151910519994341054397696779885659357434865447372970933945366362680386807245166650739369912828013269562593786135605255788073035667772715782069367732578849226591665131548690897447192791902694166796257887517680893897299530552736515039420210019976522554480962085978910119507113033865766853757548680036128055579919520134576240359886903358952254034311521708708414301282558978390270891586481654594724436059338191176893085537945971483614937591821033951384062990316014178200693681680394964744517681738180424507148770996633278868624787528492674935414316185599513422336939243880798064526804000128793707834387539738885960224857434039892726987459626505029201608021471809140366853426867397178765597327225200438070906918515182053249466786509193816012466353746101122401993129783620739475174187023811966483740077489522039946197733366353868740035968258641265965271119647659305495309606154195947226278764852455441557841050940170389528255606179180717421877216427292796588903107678648159811425092659272722601587828389744951032099975222460817298456317751805496618780319220532442498141677349882363325240534584129695740272743704799833309564086905055594850571136182050656392566344597117383143054944854451758018831452847416413761882127667836103458236335327571891999818937918969570160296382396916571520805730939682375483888655074735375025206041561600008861326911762349357584027762253904386709803640259822376670383306138673267381801815453706612299416244166189760596793507528234716368413841756696925762389943127563931723027855285281509706619199612261194580998810791724521669253953336021704560222834865634027188719139398171735405287948646305867462410685069069111424663887355203910567880383499743403944046627604520081237332895441586537161605693755114033526549295390758231503219249254547083554358915865644078589852764583226897617271463940261611964834263602199537258998034889284706074830572554452758764718406644283778589282272633714095121760097288467646083852396575102122311972976083380896179089987798154174265001828650055516381119710286809690039007807074508309930734633337138280554692433945635082514245632993900925327792750924254813659685008579406190951805270834086714330086526537680438151464914633769043768432714301196602926391851111378303803393184252204263050446932021326864390429018405647076782336830263965043463617689811658277483446170841439983651676173708590804603207111657578921071973549313932736200656005646766942519595545412755280249308070271111872830300364705751669961663746438974221433181908808037061509353496263115370115213001942740158892117384663738512717783480470180547301144379118826925510078790560700007072409535626885662182682954137637423435690940262508760272650524800938056434196087633999584528800570216614187029790035868392513112013749596659063133037827049877424598427707514822617475294863278895161397746553036546935946510959382446445292201423152247817522685548972695220866110493371259436515928225960923263870476248280612270170296550991800179690787831559281964370677033748997396839878918290650357463766552374090378913620607920542794872923768546530998197993682361295822934686746836140995665983965956356429614592298518313835728690065258773801248937562184542212889071267291854808515593310190984596888077366259794060725347318497429922774478858673487052617419554422666252345871802246331942617638914905305501421787629588360426437622267593437146686884777686617176344679788531616891307646431747544858686094377382258348520393295324177990758658094651049611147694542288921406022326321915589158519544516671512637018482521063166109056739816456324427318025113093088013430966228223078913027865294230695626959145370265279794350749855845624506469035779279814591996149333095794853765436715685166719095261896232976925068890003150525885690593412032537985032799741090437177795207378234656641116655125158289496589894184914947920356983707973800108369474175211666472926909480969491188732518424130431489717637112420960598914154914462980465576741819253083103370473979345989732725723476693618567640083051167604837468887598587440838544711243263915199578366938757921901457305634240023027206447331132184682095313977340434775981717123987292924748911148224277398757654613217749999052700292411749399513541131312791585054137844669137628543899359540327989621706914068255305165169211400054123377422550932084747116118497858091576224905560221922267482556999594590639589763663767434633824980651136847232628948209144553858351862785731682025663966868235907181025980903604626588753033080238028268988848716251741543846284878405489850028597508014021293757279066367311898275883831894222395626456216117980810210207879492442003381292289146871530027121063021173246289526162000607070205709476571307300825236872367617993588604916479466190826392849189603380560840195663503404922917770977322963250479463461500103635501541855909393241563439541342381282584066872411085380590756110992488789269541042275429105266474602394712576953144507806652576684831250386917780591415463649408108378700529614250944322466867026921516438556312073179950029529035384447946744217675220819636483370646488362753550250348524562385750194377049815235376578455516196124703921308993399186767389897572857003447756393457701986551322547774453008281930771399131607364443253110795787252257869989088457661418799275739215998005264263005621084378236328233345403739949837546340559930240879787933407912704109144079099197746844517233304999334716845566214010802279586527221314615487936707194650285512929255101715947635553273493025254456524537648342635325557815278728573527966672624676526590108273205079259422811285378057766078239115249077600702289019939367833770757082664862467079132974860383063864201324153054542784701224316313615275916018842301553652569829151942866763420280145610207606076567378619690148660393916753211202926583041567383286931375488572403072656588957691382614407065770861257164022868890310163792210804320060231868812730531525933700371574213721151702748670082724472497562475445611576415082470246588138626139845130626808560678956075797688077621711300366674638281783460295864628967533215054226288637831679491386399678560762204500570517479846731171486338171179783042819646001384419643094358607479734698403145498576222048376981555662691678894069266056362750748197939694989156085778576133151867996892789184771657926260471396472734296791965294142080450622624326431272953615249932360294038783728814430031091481826147686385712015515315893237788052090155671529361036555864110494523921446701057737107369539261163936655502770189397217442063328980851622780107718156451539013581502648757823622535513131048466633015446455603278298674133508564294417780091808520160185527236674786810962628662426142597265702361318055507133266184699160086116983609014608555214309864709456218417660584466948231463327424572667433271174082496607314645625850621087910070319130218250867389549959700007102238994744911867739375221582167130416928575595217876210928907119205003600509169063199630517880377288909728915123934325817138170760046986260515281139787464297163021956982308620055952288441174012695223455310595225048416239955130028078904396418569962982914484384075625580680195681716380494794767481394772457361095917551422841415482999078778734360695039775309241768651401912347034438958786108444490978742867052491546020171204461844156768149767694039188380583775130539643886011939226220823956867763882505812309457524408158589434057876683780451089577830799811932182985283939202890894202450732837887200130222396305326500524049594489005343380214840248504965346875233447161273680363752363261293176410823268146244313934352713683103605748577154157228130800530344130038610286883786204616963240645422666580104649920369651316203636542478053102544525893650792658094720572938932298326433578515864756163091155899394674130983164659496052412433556842300957964724303963048832038339492708700166722298038120532280607917619229826317968320709839476364086909181280832993180653261350867195499599028678693510379430309075263026644740638309140499366287250306358105148539750372412783205692010654969593393295162444817625871704236776508748622075650216369551551915709519045789466800033784337727619653474525675093714667763261602101629783821719749344249659001114975144672781977467197000533755391843873982695802002482607363689924003516034991961945938549071373187987481513091950941114754776199168896529002802800105836227328084929841188665620386296619154352591973411520592407039848953790038059940995452777125209393544015268332032343273840789294797095233535130183088744274605783325125658426081483315229228317114680031590788972293410315149986898238452943498237305683462973500274273650375635658213589424064040502452237958450369950026399148996029936954573741923094438131215927094799319262502245019173774039265771591121940481271086152175123004597766206539985582079220854034145952490757500339415332365880586851943588795574801733027922039510600961383171452630183372114557525168534530299501159463275386011945796921872171798945245911920940727212861583050435716696162740366399729718608416250472133029300518989299409356345013163949952805666001526640632350910653303808281118759502761891521532557333152093922746311913333858008291603397149623141895614958299704703657388994642206124222273995232090146639221116793081255857737583130348609110031469544947649434627325948587413475072310714392196646683731050953188090953723248741029530185748365336476276026366810588020574144918373729339920998375803459474225777064672993425367482557719840438463398184249086104476190919083754778316653417206523801588710633734244589204086519380119410888365389274942299559977750680728718143848393264206940638397742554191874790194787197522726171431357050490610678803206569267817856086235949335207686695871703845927283833876985659440865138060425078225651361890977234611959729370218220998909200187348237498874476186335156097614670343745213228431090522219391564075005936039486529310363299461469638246635708845346338856636715912181475588783057452850619681312514807094356172155702839579662404445585288210286812741567901004714997003929074943432047461490008514861787262489465260838709550709062820862798034695753695772676902665414014657972732134467738836209947852774038545161110569550248878078652455496795597037107987139708849926256106472757382013795010894523426236714572662873262763341637440927719665792123793643333611501482031639426361717308648051008253781498190968557411759477053012327764571808184903037853968709811504493593810454635675138821208217918344248794366191459935686167713216463219726649451989554263985438422223929693596484311650742794435398915519983597174627264408533819146872857770410140752531730091616223942615110143293515773723546914359715120271447868698493631372701044471288678481421097631545859246579092734041818432047170978273002031715260738878120942231267835554620154061303474558841151003411362093115423073223599461414663316051532010043340833640881272229934386589432058050189337225862203341415828874972818549540145370170650057624886520279151382671201770248404758081617797981503428856405043356148493075114189786809529253989168475087776224444610278268732835477250012163951741346322762334444774700322822596920393868083997411566252908184519651425729879531116489778983994937724382602796218431527856205437913697600053182980403520540672381299429647558066593246463584302267193495764439165133011406268527594411049244441129858529879968812299356419591860768273866993320259942497364871173958929738811171628101411410823965386245754049438189275818432102030631531486802416139807083735086642135402521927418219528823839019719041464281252674371406129544904194093005337648445427915153325734452945590860687223188373818636271600604681179399891463463155155458540421524765228210763880301094787407088499577441806726879332945917574431443723287546959174861638190069897452636429219393705539284942647639659575482296338178887760702201397120550705936143222076243653659167310696225800755116173783350782204168890952579678703893058263380806642487751756568840021472335754392858586137505671145058589200360682246178864981735407353937296838402251700295607531253081330451897337111231332641691969039262852640429224633914212017447770334710291443313776223597730951807505926572781472974015537574980424027979247465152101286525864885901747010932419651650776974633902838323043930806274351615740522732489187379176036699497570368173004226898296991669161558345405016328008735455161534509621260058131137707966223303343798404315604171489207402791067858669330372165127419246218055528756683378845098009006176192076303300580862134547222025079812115201468588001572990723471545279952620217087802453411979723388432276318316704031820990610211019497620315105750337327821094703373959925426131489873567718184558328773935502090053303360226398445921295642715999066152435643006496220099143973889811207604715070892012967198866682803824866683549741716676871203078162212318998663662374852834169551608859405718124636628529410186446573058602086148611972618424266668657161735394265278607279654877277268332497919400687160922548974552707486970674926696251819577118417714001702082960659726187526857213523555578054196348352508973401742712233728866181443591695276897267138270963820348020893346163276773393372642042201378914279097324119477473822174983352854110766993793337242718593496769710081838498152542324997836214322786899101265199271224937605343794827334090752132830283453507113683581959029340630901817044835090257539451834452035710028429621770420829563127666119299731845407916730539937956791733888480775814504184775976423548653620502381839595987176680033536968816548250705971999203715025031987719985718804959082042376144949317094414246055774583106330584910439442180525689247290800262829284316300919755214064735224526714034628630893065259487398544102536901421920037689453492440783233173192088099406135961451630639017752721678090025723911926728541547672546345787373671625218778809223372432430585769168373565340273001702249040365996018508585566738077707890520336773448933019129410355421055609845355998313381130193659542309707045027014716609202259820772431834938805205349172344176180546590566195691993961034550151505237217195397070281670417201113414964479752287116230684484039069606433676274914309156868770077523875496034241015494354900470290755391743584196123106859102606925501862530391277452507796757894490605898198883047052351060250711573411676082430242300892068302556953094167526271593813452445040655338497085609324980093712012806343591707505419781218208673968056485812474338548341051663691102311013217005374847787751443411723862831804746039945142820162205787588824019497984936227166632362329161530246438985147885780869420780449288494508750750712910202260799029375145718107292832975734893426868578949667561878402447611349712476722461391028396842216782199783989208470725162572860063808111644188594918201413456292866967517675067233347324255357232269673094757591364579527108505319222003558710928732137706064120411119727442562396076855193869075716859715446902186049521111974358215215840336755489488065388860221703318377906315803655992230746803223501836360882970439168421542911465229557571290396891127071304173879680196105493603187638825342774137064390394738748916698003188742512498114686283653015949212172727653705249509442602930719868138309884857527595225175586024052141838143688046381960582880511277267340416167058125201241767234243806658090650164837011903372589910834840885858540932953971787526684709376815359379621580587869073515796887685012468100099569060118542343055245218474622001747528271927236666612928073138400214910590874274127130542729348558582648333980605313735122974553933832749652838384970608617251994876191816774629813905064850543017919259894667732098126606766132914767827331579762411847824821705609171992699508955208199300033836197471749896710756864711301385767553522894248784628226379980967532071220446327061181683982841772753674512168208309321064603923687854683598690362102481424296277518754625108922221263972345325021763607146349673915860054917890024234284468564122526983626897243921741686132814500417020357580720921190095050841764075039032938734197886724426590683668645879489919387234914138220334017222705054661314208582447345666333073354687450157289416790597650175304975724199534269861511957521823417205288677185407796353133751665818399001300448371964252175005955734352221971989520610880007688155310450445319343484716344573684631520891554787666106416527654731615903563574058661130588329408589631593467424379841917600467218579776195018546328332245611735194335783936741928793048907587503909846324588001867149213739343105665345316778971013433572569955833418078326182875243971858636254786215915844407508251391377567955755227907536096472472352303187252297646419583574900380723301511264111079969537311136859984718672278420184274183952175350378518920911139604610204537457922004168173069193322337435454684518450240755998623411671331266730407236101818063083591652823622571640689270768199905335835567889015382121728135635419722922202446674130543860666875387931945661795330307385267462100631685577434327446952546956310250220234434883125238918573645147986721590380394318266019811752360113192439485548979839608313962525906276205215685628966551075809440027153181938568544684206039963817165518828517929091407912226159875555382113996237690784324237801236156610719116046537227550139149664203607350865351768470738559421914661815243947993471651455871848620510914485833455821278636722078031990975518068068469689210632924074476102136513332295015256419863231440975069989640523778432830853310885882443231416039026404596328627925521263666314239973002812092434895798290751119370040228167928363504755623232413487558640094538704807914364690021060119020007262126857833855012008388942563072581778556113037825597785711361211425469742059144563908011020529089636659981733585884414433045790079548953656049489674730279479066413039622482482142109754432924982476442581959766005033265481382547856354697043231189174790830795030771060230076005410605416189878727050388263437087534613791642976729659856562934813419818454403987263791904829944533329570217147777218063726377549971449014818445079120410919399986280527559956951067811213120439201241874288465759605227890838123948476077739201861748919929392523647670189051420264950421883532291874608282670851040060006626995044297010096421460577998324151395499296002036288407706151408126791704677609368727620797661933689190895427595952260726082016842154058868523170967405682890792516791053128164898956353667821153779945966020753034787097620618401698954508638959619076618624880828904027484737986613431065321007547206876375193425780318503252574783826220470756892634997792109183920996639616487817750672653357013264969001704039000519782833075797390100016353842432531379418515894755367032455259897595127621307851235774790899058104692162699635679987930537239490305612580130848187584666822033170442229974290823391179362886143579968070723146987466353171243643917445720927640977329171197711001641790677751329295463815038903310197587175627857503621004268342621804344128475907098164557482550789016399259746293863792365598189605953006664578196376441975179018389297070889342196019890032639458379737004027129782954736882064859080684007039868513279650184201785134877182225659962636217721221522171935266602264186482740796254617441501738962938210030224154481743509489912363942408795891360651234748405461197809747799654738791983958497178512142720131129417005459284545681084684529616001637496391378447962882196928619092973562112033891962086330658598879242341756673262833984503268970929759562630159179672587776943841219620911867458854406294524530967148898238750197462812945704290599182557174772784940067827612256160816384179964616062490123541232071069689493562868527417414095450485904074137194186860362985237171763433626055551598789365591666890900589845560202561678730866557445700358054707512359501654128800675335963599430889026013413713313595200838244362452867793201440746943355578827997252960555617343964611032951717552700275761860493789464086502208773006338348113268408653587398619590515131726348922852444817637597718454155080692160467781516699526641706965635605574601391150636593996754123184653849715865167144089914490984067261812104561408881769024752723921127343589759054227926827276583211488392091513328627990112542048694181698134837640596663493476963096234440369591707256109658879993815644001765410460214930310838511526846094258431086776523518056301877531026386685277842242634364632483335442240882253541429550685976659584453006556022524076029814697887067302202108637939270216244625843518023234737927979142751785328931069117669251847684199120573897339483857431826040049852514140250144901481478111398786263981262149779619179011612828220606863869062437786893757290209995498989883555800748204589067425201014942452481274862757455039762871647951350780942383839451437054738591660023901637876775543435176477549099183218178159131919260473789966691129751017512436663697613593556722666214792181405044702484747567471761685412557021903812774060093781211262649619591065327267852863453218347710019155544642338222003278708166478361055452364615439104511493997737281403392711727993252660785996754647439704096205929065490184350414317955768923725557937194501801902381003719517154063509857142355115747797705651146707379474307356724054457617792289492682599428287918484407025952815442249868474327257569769954225288543778027124275127079433202797930682684038313416314890769021273444340297643275107741263362508140327913649842187737303305549741038487551545769201464874828029473187335139444779264983263681487937017259763978283297486046662991511954876249012578859661316586470961441571890614510003320720375854657760558773079601234738436137029742427124859204733228612444830205781978226151296340436517875880409617603901517172101716185336234756624571948627812764356952561568326687084823521492356157945605080736688421250178177813583281771161720218789631195073221761015955637449548309805331424619639558122022202847526220805475866609062187948604567864485313390726186125186398552289823104833094133788333884564798059851864854719456262460881096115491085183931390117360268428720987005735400821869995707311111412507691688706436715663411102511497777998944434590735315297743706706520218444724918182204657042049584221009528761688562859214533999940177730284592190739137024894525191726183775511612838602426913311153427241557881628308492606383841866815607273069249970038904382998689292995464351523309750713712137380336891343127168472087818893099423315483245193702218215123659681432125041493655280126187520278280014287174922154779644199659865993638309450451728556734369519575040782765960352374440377862047042852841847910912039317024799866361819038416597740994422998771032526758396157885626425012114691998801435898826172999190466443158992580762824025103679182819976153519009753323795609670457535389065071251923996935172078682037910428408143468253608080230279192706575236740696163548059099453230946921146431842660165460092325939225114842249878201922057317763079408567537625195079269573366485431463773336024727467594776911766911835636050829557067961745966964255036909806721994815400946888868529475635209339574469359772307460898983216084529926571324328162496343176528223665561459289785028419519655383640079177962778465507497677913951255142762948640216521681263380455289056827168225964057114080569795534395739211885956397278296012461697125377896151521673699491771845119701121836432502611367597985022995265688361294110027352205244185683525676872745921573059458628822654855173899287471651036091539550934563746259631889528387290936926264495301952376482779337589187058218848346467935677215469809559648185950017232097320788135575650600003503986417177429632886618308960091472737652416714622269545027714726342600206440615235718067949526397724478498851127872050775482624967312477208563028091910631269762706149156235207985275956119992008969289908649785811239660122007815418658174547793232938343855312771037410245067536890002694188637839760108495745578662577657065216495647292438804552786837452659137104639908662106560962283347513023175671451555265017691249075853954499649133287559360421083137963322757204873086831071869657597533537566177001109736986433394356303714989746196772058461106223664512686271560982003419429327913706412988932608528481087273569456176934761582557882890830364404746967821244554807250826276601120172229647950182926910494604110145671228972383043881789247543718361989537663843139695724609092957455234622025755742837350307258495884118800596403073272114814528286200919875489738164947288611477966481092234251389241504198713424370439534815827211022824982646632562959958846226291321642876054886736655270252540285854755965185320844405734272903880389027101234614338414415407325092548492702829865402516937663089004529309878063885716290586380645178276276828713860039294055908365404678679823950395282768948523871501802505320507018616605110502019520970757946767643747029190515306279449613806157462131465737736526757004251845166791051109163943272891003578615799108107203326671208395280140144562904443820818616901441493294456541661846409327341976434696215327662274994281173836453922623669816316064558424477676375808393385039629143322941174014597618164289965864104276819818711019480990517675498946650003289519977463949143771023110669518258674192308783359359819106432965193737304198812371051947849170715790870352657526695784322514308920327485300283014253906083685358499859322845714991099735220854010282503710032637831562901883749270124404076668324204484339167121793281437160619680275214074676681050004387079499334842355656661562048374180600203933600817428211453695855825313980154134582560480199600960125782528416826397716543940659045484017651789237345936577912197674618464991748536936443409902395301092336491809762078276295821421392262943134273242089899252522684160968223453567956453817897728810793552371675706854421910296898465111925222548016567724214731868127942757624326712636852726746079951352038216592816236316492952636985820469867416106523737641305586927743787909300423445142694127801828485547800821601894503318806431007634400872511138104319830668331708901242311797162684319158476112466411851066926003588326725631889217744555521551813335072485086424591270151769685828647877845980142109734885095202103913058973826729972753536036554048327406753960637994591781289526662131380706772695266162515682308302905029849894937176427748837901942485064754382579050245508983924546530332471061684931419905143724293353829798629679311950543010761755700839659459549133636707650981685721316350207256959850923112687919694691274638429033715901036148065950647432141723427100263238771895861131305102622942232925072393064365203307948918717846147910298735028629344333717612679853794287935546628479899109727324792453464782861605421174607896293448819220439302740967846577533397015675533831324881936203967299790878101162831396901207434463283211261240806475595378801789270163540366262213542358545490259247985225896836969575317177439272191340535960101523200223788193445627192766621221181296886161305932655115583834619617893285457899840756476956193113588124115100500238216518604219043468918085356579726743535747456746576400940986426987284236507269528185133442224860056416653433907498368588355424233695167253320851556213006207484447093350284051602941692036366435667426118000544439200931285609424057972184374708859483031258283012466125088790529427050189870774917840040388882919548114334280289762716347405108772942648619649716207774396867080204500172560742249349284381937181092711686430390690305899332185514558554783615847448275054564009174516892487648625810428324185746146828061576217304001440921937809429536542226704832425919313189220424199875984975126481277977361000691484381537019618753956248174543403069194790000973676997433726411331033919788027608357226689648575056934732270308919524572543119524747248280211340292028855986369775435982996531114842832271774982689967495583351019436986014890325323807726154240985435222556744035309551123362385696451846950200155220794610563182649880175229799178970610922718052916679453719406408245582213252898660590960586482188472840581119104771622714622555261928703031777488894901603109192047602600029034439053732747718335508221153345393962892341437547559580688480512054554994836104886457827487956706728384276502543411370295323491112146244380459818139659285901043156137842160354889353328878861046886243546319161576645653690056414504324298596972722629202279904316520440286161892744961342179235053430668621580609850977276632874520472799684114369387309039331387605095122123162944980708062508570751437676175442424827555259278266722868337338750867058959756217340955820223597472377795831159393694790912984868888819899263462673877190166408299742772959565614281404453174915839209827805974513741596609358672838521553136208834719374652715251297534091195633255305801017367249340562063263007059849761483573387822175894456718644706897866289600799191855868244181848770688231671169781241599765745642153099456909302073309197848483162737086162940961388247175941554274051464516777511198954954208582540797062697001595035113399407354669762845062756424585563137929500228382965375478010398973208547595302300926637235191645245724530823324735066079723147889174724027704984670186729555028779276283473016575977231561857243492149656967916911621375551850628589695615991550609920488760207439669454929734564853688243725306567729358899240005207952223673383687207825410034449252802453815643233519483861236332699593240066778831873605048509560927764410751493840046822738498273854501772907430624297731504164577647261387743459512348388209793403951087315024070476401645438485817587198358588456693632046832236411022945445979824748606485522494822996780131505602734543640506784552999771335817237583597977075348734726281338117047122475010702999517380185311957933596710437382290072044543019417072371114148805025589479679513303013000864283687831009396042659337509121515211172996733318834655867740803849217301153473790078368451228335643041122442285170071677887029881947358391555847505283486153519819847682474226952545890994167200004955654005924395870647466668971176865475509742546885481394008683033280127308984412934186707865995809901615213131434750853959071548750462868202327144480980704826370069602508631124291369955346235781759047158308446944849006548924924125559979697974658383229352989906332840243094029552378590727941542102399023054162109297512511180706930744213077839564106048376459641119428857525116213939751886596780415560747931954114517137098448617702620493752743505884257907536966032048867880921694323604153520302678754389473814389084475440179337380627657197246696243022457223343137213638911889101276302290159063807594547094752054305346854902438411094389014627830710710723498263781121269371430349391023373157260766067102956420575711808252084263738309518445178688758052421713974213233735448147238194849565497169462145669519404464444584634838787023583989936717926924883472233686573525445429225396075703180809766760980297563551243269365678128056315403601800916768355375432554263104699901246784075976256878233593787188609871922604360510939706680931562411145979415940441126365173826192933292974039456148149311197154820810861876381078078083375024731925702441283063441156284105701064178385905612219916527818962718282948299570872924391502223871483204150895013135589583273311385843797208155899547415826195685973421875059110012138239475535891418665072811482618475518918547551719346357423935973545974711974452640058759315390039873471874357764701602422438163752099122140124861672665727651163384180982238651686895484951823351024630077469150715277088815460003400215704333485158824015962599396115649362982387593253355827030157545617737130834370353990395088687196254378741433598665393224695189843960440364964529447204557877451194846274630462077961700406326696149283531681875337694512627308150583645728181923068644651455836642742493745326135799668165384575269865462170856598497740476060536914073348017523156855149347841256250345816995906125661912763331496261805776079962971023758706396781930846738416896225952089413065676179320349952833324200219618251882130787628100050348317683114300192031686923901682328252912190817997743490923865760688975449006881356018479837926178962415478431168692673988821585497138255032258030336565987142920601618133016585821144202336808304939430775771087721836255285882681068012077991999284483955011388929242159309920127957648337584665897682904162325723027555219711341000826086792502669177339544340735787631105524136684391964324741085121586304198335234401284350733013941032760375374505229692864991380032726275673917469686994111529678915139675064193271486358070087823908895231336810651983396452424327729856903042837598742611066047898035920285183541570872692941298947978361807591722650972748919081622460400506049382748691722473767239845705044782568661191946659537293558888605186098458823826661248874959680419648359478584655295239673600581929445480865005213143765286691575804687601339118781078814156927526934751590778868642951647995870064989759657993625315737934605349552328681209216504485287137555524878420658945386478252705826578623247965506120888363932565713978963884949218786378077489259329910637033497954350161134274954187291628393237906531873716296426333604045738186202619157904536393521883892468597758667044131805465669887581844888546680030396717747953664085550671495798279059494785434963014616971063378400111863904053653240539295247307113103484362129062011308862593686222184797725199247437659615274575939304376422413543869293304271024150157386452897733529532098619798743859117078827152901411533560414474890751855108460085888605279979227177762479790444472091832921421170184871338972396184950096893297727184415228559745882607933708596725896258452376265448100605563398166910868693240482064596825077489450931510086008984742762426707544067801418731219073098076459304465884882270356675544354182173307675197880383123716369631928222568488977055168372102814114443358754268431365941304701927707755532640067946676763165807598995493837717463540731817142335104421755922298881737854845775264606912791569596471830938788889970934130082556692017034290716881070057066606490091416761395343460413937151563201630477616008267165341238078062623887441855443716439910211044430846222417227694701353902480862882015214025021668462197630596599312818850345899140888309804178338121735715305108829197127251835754740687066763575510653126306932697734081072807501151209858321103810593746374810233016594625828294031698871943817290924828103282137888454913914546309374891700012341003364399017486685592505924320050305021233849316771564279741509459963923125380890257595008662969313433027299392005026619161634898495321943744340127860378142453863212899338897573864235873958076202503571258271493413421510165363979500600943205218442137033250035645911587239348100236782383483630126284354577587197152051096594232416571986319955900126201512862620700889630196823931780095211032146611435544843633079153340958642862569366824669710546636513650493511707591197353495529263933597492172697401460758083690914280430737042098615988806900787003071698147684833323983339696591790788238601646880498740930935269598365753371338123031726812692036990157047048120059528816902502070002410785278624111572098347730804660609303076835647202265884303141243283000214438398750556628283110480273595493825080506089160680622064276597485456652192002240244008329234093509869300444618472711691149634409352672656158978249188792957646211712278585269593542171737114572375640282123775139460528004795521476615549471379063712382411300047455361422934355117087904166110715642775407785568858274990282299467927467143465367730266402402937633274588904853700322255470954638671099712032681387878475290887237710386915166997438440375507266967516519373289654905448193891225072536370899117377545747078164765816729122700286695141995544674918416182303244552473603856144469137753873819445954578693832676226207026947480899314828363320808162622855604972006962363536963805234416781448198739622383991542987085656567516665161487860206011187438455738864274368161584616337170238502175658456485146958662415039282123107395638874833379318452768422803816628572500667315524434267890486550914209581129874542746100093976310049645459877200401106470654571773292741414354444556628467340443492246111934194020074437061001486336819164177294228607342289550655031063895684415528413133628350980083834263251702042150281086213080309944348830392167527028341315739743058206920293237519999564248642120249770305109901899773364874370846626365354070231271609708930386914844311621362926263127273486464920173228597535952205613755045140994810822120464021307795585334926545192213502017050082067411508261993175889754031758048760714488059435047374438847236632000530782077916282494847433698574775310256997605904816985062164289559174518350981596499479509903754492141559875710073827036482524119873490381979177895194454352591028418791145523381592605244079075281123026600493964249724830707714294771304943747522051343979319107082556893315935324193873483679258956819348116749619500255093870712957831020942720766962352246199331862615248849385639565879959655324517395120644768045406809145173887908994119519948239349864452531876427139698263021928134494592258540239372640199121782855281551339246655076711973034015970610456758750097527620475622781791681707201582903369198054288506700559520958176641964505560692273646379281095378414449340032415606310084440775832395775725327256332208012394212621812790619306308896322641467618221249904156197618734582021947391853843288076826887685066270616622549085192255535415516564980391135887870530342467530974718084809966997087278246380114138150367573298702902111882228605513498631378812510992550411243723561553826437454326271410117320788065268394760429142806638719608376170429087857416798681642458948462572487581374527971637549640793324063786260830825636571254229026064896843928565638872302286877975982582696448395538548731204399944400577842007432472669770131338583136362987377287620102870945309531195707955633199476688264981832904251482464996540548763409722042483106868509489085336325763062322556623436518406507135096175144219902686391397588157262390270056352432746845694617051827685203540971617369664175305964654745714221538798988116291136206713704017667966615132325042833242252459185056658575375185707435921713042075671189533474470551928067497086958709485709459837732098387143064276990955381366646273513625110167610431259733296582213524302201748073313239607432902930724949571804937722975993263859778996919360149508058033698777634871711253731659085963060878265950286654729980739636519734031531037055637416928009197776585422920307759353249605729583174616644455987427238238648540835067843293398771639829202929293149743443190885003928809499741511836096102609354298764909113703532471241478057553665689289741440024129566140514461074928947681966803527257039402994914024937618748403958259774544763309500072047067552755519869742475751822429158701637123714183770248302173573278586885041412997792483675746553104912616058740553886786947063603329037648508238354331447524281951106267670433889820928868082357943784652144983746127763035728485400849883632829576139066749123037015434648068208753157216414550164882488041964514689075391675045123043875322116026588613836375190591130251718326317375868316377147199936308561586067913661507413171333026938204650416334352425800362886525827699588587160307436693419371575759704924253348563717725753730446893397156855704918218020872999807905711106174870121071247721578443099223672689653458782849662843565506616283397366099982155104744565199449060350678387437791648090594555773011304994451940496997452275900788804352740781253618571478130389693846178684252232262060688140909841928607700502060674043642695107072352751444148647304048161655645578193298483621016723260917712408939207292545419494200389399056176684110514380623758537828050016219301245529572004853346976511658880145018850530010978263659833465102434752542562074843633794901101871154686280243720118964939726238280947160489891055283397553609979366814026348655335178659608969045956120168518035779523605386568607431029563953666758470427998081754579210894586177997260810935570815329720372847102331765220233294740718374738682934508472325862281924768962620113896180150280687857284914155207952546102651174065971056389019759803655864003206432425688518180949754064863101137339123620067771087858725049680487664828477966082581912406673264711276727396728292770749472137632878657744832439727342831356281261739121338410033760709877398769416630900207041506123616977418071442524738022185837845697622141779381549716348126011980758068928156398956835957371252633285090046096191698884600672732703316033956070986806333773212422148680300739018274111174228332377457807612009205375556579241675084737468403126008220804050926905665433979383666094021099527040984782840163086348157922740170995498461467158883680515644522803741880705128928339767215236079574452447378711712437073873777728259350172536554814491526174286230970954152674824955662392479801000894178962355151011254203677004131336147421668307663710000988982297199690403708328930045277971916207014902084340253957408700342519941283271113861093072037996073717541975205379643449511657411679820486831899829068289212811199224946302184036656200206838390802688389126765358519525708411581704101721141955930703391199190964915455734271790415928344897763979751849319231171269471105050906956287445693141379608150239384095958073106387133157480452366671055958317701600267039996864593782584194746462621498533576909216920032172997309029645260842097640236710061802922194493986767544943128819409602590202980098909441187664652598124545082302611227185767717944567682116319172286174868276701428805030065405361939136022807795165039610084473073272825592119210637652148487069773017951388958095762389627111340553572561379516093738488247762542729608407619677503610568515327976793980452002714202565795004550623935563470582586421957566147703857472284679791301245904030102523299879345836513863977120883232284896509614408423237847367305386608196295955593230871967295386804200894830708264403217325635151438864916295287681720648413831844084507272990638751047142019582006880613573839940678330624701764743201556244776495270359511241762145326074883350527078689239906792627069486001051441668241598910092375665605434078800970296042315189851426325829143365778776495494298885060106721705846353401948990943758431458634363927511780093727642050134657452876316023687288456715949018758700393561066874722283603844014529514524070667646684876945037401214393533500093529754113615705217170712845947512746014020134015867213284490293388836580514689450905839654218085517842894447704747751449138092319202477238577745229551794092417356914846454241784229559146004877466609607660062092426959380632343229872031553739885525749688911306699282560631910434155615005628011833878301808245899525126021373065794510885908350357375524848415781049472068188766037084693837761338835515728329295128107768088108114802671726710228688535930681848738002676667343911450940443047756837507329333357698281984977965787936223993813351663339005792048709718006411396663136985735938008766126535528650763954622731929893586552457934181980801759276243993468948388266476159434568827986476394989229081895217178458335912004913625914196440958457926260696292152007116585435389456672328020597959394179934044717172224489621753275044833728720409928080955375882703803848965183008071750411837672527078646395879672614780277298582683002878859223275277074546990429934477706531749796103438327874610502612981837697811635647346506254515685345660430662534672968093335850024946800848569773914655722683033830093479841095044272994441985501462826937971266726074146226462255407228908857025412511466884017236493476684247477608645339428202268987017320377812443181507550136799152522430234347210138786996748581893911795099509650749689366604509387810067122942386756676919065010956209632611269204609172071353920539887652670058395126368023119250174263249188154581173418633247391829883135143250633078438077298354928824814504764740593770880442156614327379751066900820381043875953751751237307083812602326786125165102676201622387802435044599959911466303860383144211749496576195551215525145205820491782405917881604962612712711186819893656040655083518150227074598434530159588804962453526585347001990678457767904045585966754835138532555842203150248476372659231160154457885626866276036831661159154088507448753902225002192886069751425163606262713938000122992166746517099846088761739715178235201330502472132702172686465651608396587113798123225592835197588930975542739506360683258376098518790428188400791452150913043968601471361696317375158418947787931348499195815008728853189090644069893967493112512017744310429696880207988667037148457109362474585852817846044745805635952854428564757002441119455351267564381731967902955044800353597485898779333059117775242028495548242707452464942440656859068926115900978719808868918028706818128418879308638642662626640564824654411795430774516072897358438452230409108998440279799258724422466292828288391547871961789719166563668712610946712390023688602400063025859477950379281293710508417722411933341695806349293775738320701118670559883530578027527773211140510356090856941254581475432587563682209573485693640650664547569098437143946828230450468291247341298236508065634223925077768948372541100028264332599473504809657232947540930280532818849988163897467070626165325008614711771952996533883083492722129337117803944534316798926158087500159303414817755527747706152756281301289245286827147320207692542970818169698826647526782269937302892966822422599351087679907819110740521943457252537982377854986620747156072039797986193488262338622608813309760452521367478926060309161827277691613437155723399541725390503720383019675782773403117675202576806909033136760072681807359347311768404751109622087530365619233796860453193920906382814170491583027605988639214485114324328701665087984161119542929305679460887563435039612923557460395382862443895271879517414098311221636450388421570445850269629246599567635778048821253222235872843207300757172939220978002172796138082041262431820833555576591115546105081891195017926946619844815153013355071316401413460077046222556545173229891943002198290904390720185086016451644431321483869179366983557263194482230898837629684221049155427424421984619112391170403487187248865389438690859933270016275303702356125477889560916761091393908366548744139671752854316352007305521665882270603122619022420309098475308729126188196490780693169485111323957100476259171655560038901781569170779978912698061306930170850386452654552457485688516185190436425037365569744635474505787868499967676418452745763141023641525001505746333508916169886574568406494947950178864770956757080175148171557720071677547264157261245489913766160940335937241033371074382706370622666674884535794532079767751644953029967361396788333898344386256403042669312875478147354977263340072464180403839307332674926626945901463488417037964439216449853590787826576343063026788176709542905725673864074948897369491988017319116180045270185809540487228776836727838253341092867123255958004167899179587462459514967585050935171287881108189631011959041441444026030152939115312298613181641265999767987405844884443318411621020581612032168786516134380735385756459746612642861580633405869499355458550860546823418956210978146796493524313307307561375907532156815227040345435161404556545236696521973951299680468026953871340472938672124142741609783354437446157119605847139643498957419719705550265108189725507920318121688728451092163188815425457231685509049658238724660792254491191646147392260923953316581905890511120179493904869300857082037758890203961150775522122785656657381788529345455858359196004158082658813679989660583522525947390720840527772759828568889774899250024339142169392820493014517762591888236750727596721039801084258823232797071615207586937672299191334401192333987816848781981366297402595531123415531907361135486585459984729602424229452800482976072675069732655474241377640869075980437948598942939479399170253844369416090454946640216392002801151660541451079978486611662706238814699823977191587994837288192681033089062826521039125833430081465660497677342943201953762818900163073637656907639921124873056856391808790718879637399148175165520490493618901999110303684407292653445812100333504879444500905586667146301020607201557736947987118162757810569606982301491939937111414824575647018445138967602831554995678632148327216497262352951115457604617643216638551683379139092030039776871715762588564274422638775561107102380833214270627771889368146275211489081823905073883234526269381746523655452670036287573235064301359947816674564548713448531893411102266790366524845568963667728860025068070981533344201566723126818829310976168978659614447811036133198626650388525353033083977560410580391160232159760724255429311882817209228470537139414936463947972735294228930382253297224478455065012123178588792380392218941203971863739671002557074846262008601126227653301188350725460431685383962097059355337535855493527842014449277458178805176068340734137753963665209400943521168063901027702464606067189104762056399018513167260014782181609562302162812090449838131201474260475696865737708114522817068892790240860177334869247553202552214825789382137228204567425108370218086192391127830587346077244414969710645820830116279286671000812023271951134043308582717191642385123122785283610482632639505991475886745428866882950237994835240901959066298529528733619350713190257733570143619596483838564733818799018665580292929198765679141324471249541303265645807736944944797514970532925307432150824558289316658997488656002462831732085703556484517895307721165233639047676132561112913317920199922411597626249602987871164993799742534575275570412442102460621037514625182221159841531754928583371550366092321297522344103454705910274662000944988573186835365658133210831828642562609758097550620063285019228046880027173192209717042806770828523067006219224739878110723006643070144572977895657124537814344239221348924261793795295018190721043172025450483268690103714255537493757484700536962603002654754318516192984459403950279017120508260085385460796375107508136528673166730338167127683491017399841183208895533426305904808347526361086613625390857975910024400756879291751303265030814056977812742363049718105636658057745017350665963010712778579647765476498579659017360064186330307374903957686980887110613771850934996974831203802375616025310581964669289790762199353559176979012206706742958970811416005890544375538826388554546778080184180169952638308364497302036255359695080864765602749826610711286761806597198944114457260661706459508542992905077244981886059700538153168761361720469424842248162127627246431879079947251228532671501891805356178227940059596828278287608246513246812729673176293796529899682711502102246658776658075824464593668868110447765230806541465746618044050928335711700026054972113729187538113738582456400250810085926484766194193398817708349169872968902697876589040137986827661113583007585172169927710503829217716236619349015758304357264516538769633059756577965810166032195475176420210930922651547647588009641889087446386320131593034095891968389896092340061553998451216667989875156633806216596509192594525351155069339711211010759333463279205927015631073841408176149579300996171864933258157701967288137347067165040610958320869406280365494209022415471945931875476266778635329097276694223021543545195182330817027030123155815413941587603975570318613584532512227979516588259481461154903174708602136062292558100754076048898098523746834651917049641697454941213039445553845623416287609108519500365830653975415395261124486492403389243889037352833612758320454897602707984704012057890476822911342557669470917659968538564068645202748190250695003564013537777521648804838744849584835135955473097170315018184628426638254539702655258942612059485264934716093003280975631577574236889017908058080622422892244928616220803113447166296325817975543684053022413755970903493335578452568733156109307384791385152844161500136439341153709248229004800627469753505680077626249019288326950781255465461850736321281508115278766898764033897702369272137359773686099679480467344506775033657295336759541200150020854546128744596865746167390595404696007760919611917697710960342265512726486616299441062538912517735915571708964019874297739707699271386039563445506906307649319498328496288527364565072180559806450257067140020369185124106822542677658646974596786440107365962996461673533158366263347719742735107319318046682418966208394840899420415913319080491257589567473067916654870812041365223134771442082202222766823310610131218311115081048054713742264475951062469217825304002053825847465204115609784929537551985308967594675838169371709754881576680232280930648720638918993772949863151736359924732187977971557994593414105701707644415225046021707943478535833982000964006041618734008355500024555761512945280327948748764976377053773088330652362595306806075783350059782485037431899532787450102348744149892845141072056476003933318106038366148970710682407667324739766559892642373015700247306172923969554234134577638049216293732052308342065923774096325516459761440396295642362401593137828713122339612671494231994368709165992423166716780304545080712682971359325594721322844987004683410721544663689800297436364342878645975212767187622312626833257628900943329501969473804053459927249320224488801947876152767198037630051928186533870037661891687767754002255253182048616012300965827782055130010160581083916298030847501709567575835371577517738341945748958885412019346553330813035853494276425248955090797039148565845504381809431091863397773899366906256591397679274446291428066694885373246171668471008019487365016653370230830091361986382951933621307251731796562889439258453171786695453055953687191907216836693742319548235503644128590845898806537761117523985485727306241722735360333523405942370650604635828530807151176241187293422603331254477761831678864461507472632620161253552997300142992005544054756962314205984889044933719736827749728956719598149833865003683594782302413525100857183733627240045015337107906062043906104790325753397148374267663590331727117806196856667652031273848071971344507429081360334916084960624500618463491339186295451776412565210089679102050237072569596752314256500089786853269620567262835214885133164600412989262798697615229213949426864350219932266900910827420669549742363841685752186089242402211819437493024852662301970386908949420354376649798682065603018033172010727512405241103993449881172289406276397491159292529235333954463499817911568976096867596680180455721952734896744129961172998230924133089358531509890382806494233551259113135643275470667494398522075299226458032406458367186491155570597310580334920032600057082048137990025436411932430465189157718163169224987873616289508889676150397857677990118733729000686785585365148727267116701422854078832026300062667985742074351387131769309170948166561249591524284900413437890049184005818036013025832181389244850126511003864684080541904090677613869239717572350914871286281227758699860798959716741268347364098841071505226270808579906332293071966905964161434021391749489104741153856527922744439714513074518764077746249075347860987194253632506896504301400451329340167132095866499458195798698129697170313359281018081697237728356961369385483483905735331573429728380195300059839974613494293067895091614169034216427352789231277777930847918685079339703496142787121478688717725090885321700487348326555436009353561349200553244886180779514193208447624681101199049144947604566948555916617234758143510970318949018903965614963425348437643733970405445921507311841941248311946799054459681952467160565216415304963996899623414455233097012562770017531229371016269738958144745603421522190994716061824310723324195769098720744209247513153491518005860228087128961303623349529665134512432244740884372064814656763341295117515955454572899978178994648844956188579358037761272396960492065318675171457102213882629867329961636394736848450950779548993704048995605403052770886414676005607290553448316467769611902081302373148060496192210847092582966183663264271978157238874442941936377282902715028799608607248313708736154091135000761494509920536177575752610630442418436378883048935853318169246416867583925218498315107794365924586918642537564970218744333323215371984056153492138337765102046588766374348572138184440194017237607240567851762667721561585315394391539397785821399927401447897332330952484130322622425867354682725933752892023927296646450686441413095430945720523553079407082847279698638654597667410777518553942102350815026677444244448946488965831173555172820063489703169273017560289757187474820923977087777714067879904421950073754941968252055018409081825482753239460226333980617967418317183933291927415206289422472760654977363416497121062618848135222955459746582948833201564010509355030401797489273504972478683855416851911808421347799869814641507114528655720944838723890771785990285743230826138447211539661281078240493342084851303050465297460385923774180769667956824607462207633701249091300078189897945298015212952695862789262809648749795757812985140803400156571685722504915297737777313010561100810700092980836155062179120420831521071627164450820013720084509073778882964219774449336551734073081259384879006699058922889805292192528421217554331737663693664528156799782231233015280466258726510900321066728275285811405885071083795062690076629944100894475035713203176551774213982965883420028329355285708635254858471856735450848939042659353523528779702173531961260040078866178504120089994888603321091723141864405798650334063882316238540349938553081634688342607254166527905512772857910940726262830849506488795580439262092153464429083536055183891805453483773755648383115900926673774060616096931551301336825928386955642369903532799921580830246878246155138319526003159677818306719159495989101534052085735228339728796892467189279429976211554074294619494922685108152885405579844145124966116818453336705332916034820433018933302934530164980444259495081287422956087627255906952064702090553008572271122299335948977278944740038428622311613194423158974276938825707474628661146191017728384721891183113049084184025445020566524478395564061254362988645806289063934665723456386051042757988238017857339712633565587832206115793784126994967300161731934328926101019101542825241742314770981226562023325699276628445660635409488322697454831565706722143466865000994327684719127309633802102604735209687735843699372540092931587448499726913938226180374644296621483478151652480332789333137179661677037228289055972502964580156951740436760958282800598167750863795418250642536526227913882842479467886369865641163476416037495403009401976538270803537733112770192644356883804495127324786531122940537341303042511746289720032469710699153765682768462200466428426399182586287210501466743553247406909338151455750089797713742299795342760493353791830666658933988413556415682273581830165523957622836721379186577968193820071062189255170126073885842695635346177811192439271268109997435441840715628660786314557592221289881736757820541630482729068580995883213762274084784257599118967745031278233430271491833244117660561313274101884096499220849024500859493027289611366438928923825779530998581410502464675791708565660550426861098218139235967999213886012114465685928922479738656953553139298527976651698534216674142818253001119060704654997384999273243021450734091772731497232454263099339272457893985857158436582503554801873568572946948291237570950428108464598712716624789490312425375701387486177133285376605925346804374742864619274669405501328883702862868912303592116982259568333143641811456160780086523790810492841175591164354571652549624390406959309531685241222783612639432515693907873354872808616896230708725668389415435962230978492870542092380074881430328261608222848551521314929477517509841034067927606702910905884896993130317582919235134592406047448141463322467520383855719993644061444316894849316079173160155258552153245442944470592553807134754440832234533577107642605560973679061961257643988278093792211672587348100961085695950319574864031186996900763050849051591343926232376939604548750793202194605801914477534540460298992377202493273976094728387049018271572242372588540029970961044562583899781940480304261573966459618508405449928007197329864405651383135485391443022044303071472640428699490620389043291510633128308986088852841137449541858307129097450270709831896787548008081253652195050401262681083938388475056796629465021633007533592366657518226841882529955888253659743453484174601877863254789225963707030027713637167470322851793899403465684765969095757363371558071825134417533730322049300303472102474648681894185929018043130909547974826209747731152439106491546854627533109813545206150050479110414828174761661427922775154931214078180291169177616408045631432103703612750097118563100036646292920226837655682422741078937679009718041388570112082031003850468446300662749001629409182954389539789581887315350549033366157873403316053530850356349296464631355892448651441336946502395825412472545709842975710368254687116363927315049909202817286503703686203599912496264810444607252289516591154271869734637581535800484219865872860773395211586710259033707303415330741914244443591684374558351184626654551182812756872348251109024207111467086803558343644030856414595916455633391736701001804843567709140752018096115133255477055823779115210797303774265605597182858705672154480239032904569134052294487683282856188267598177152276406274710064650819562983716729965787270066984396390196631345435659202604545076554187127454078567414981134390520758688723766463857385091193423059216047387749498917017541550087193026775446939324231411714756589170169729577511821854932467849144504262390688814986114645495486669246666832330735672251030472968173573506248199248002081600771379869390404907383551069470989806210799412333696762489174240361726124810562210281946919225951589986202525581954619016125866749037846269133061647853184666185259749801986892286251850603906319330575691774868520237366620596150124536690645082157115329408402921498652258963266522745908846501217734489573519597770156867806256809075390471059854698305928546363132495282082435065476329849878735828900134735002869876907700916288775986612978949229894015389753114928748941620561540056167886989777159376210666538371421202526011778445636529315467033013822957253141689299633450110041341434995041462413398848793348767698162879664867096858514508321230224318648554894059161574006041492708751252116240018259481272042290713511290663077557786198312811386100666171144557161306875762603593767662324865686471529063597735727084087303164062148571298085360520611103628380658597184300053415237986368186225608943877092545790018172515423621852781480983269194832268549008822222003247618051333242249394916739074888461648626066233907464643305402138774124347326432684026587541146948823243647547775001235441572330345138173615672414550313387651748939213308609384857500098104101221467423432724601330233865084206219375328037441118288699255372924118910546071460821706179711486015637187845739039919658263707875324625427151352948124067274294623014568523172563649196664718153408662305708251409065840556552691785238842047739295479264618118163109984557193099070499724519127883653749968403658910335480831446707408426119631653096265131150324696528158102762886452719123894163872118264730070637503042023693568165395353036927671307234417278391896814815830149631515942073344093754493147762187903982514442461718576738616639868738028233999910806934383259541895626730862094076809275847693437191000199932810120915383983089885923271550648752918475192970108983407182265589957794567141742010157014494034002678574192436947356392495119035321031159127622144652011915010715974812381792561053767813253296216721006979541004094189606842540694557824214772831712430893580764795033421073165994029122150438744262528043949233381387639106252584501868724713871270272481244417306790992380284245826047041256299396529070245183702937274610305988388061290917057432459180281154307334109189857854857799809555933889921861965859422939726401939585203118827243768028668776020447820471786764663284200997632292148588798200232689267080461011742385520288574527976818514657270666441278396012205649624170026324838935367879293381642599787245035610419241381716466127662701026882662732565468214080240276199950249261579341642925422261148103330443567622610790156316003771843296370392036390871894531568768626642219553339633931400160196965874763505120292455116096469626062805415240888395650657228168906728175261175267846631073615485203446485564203816563647785592367197331090291253995846171554653608650900510473869672306523756833630692140357507844311584254211256649029098729630659844129220014210027502098868505990292362086181779054146967358078653672716547421477116937795418377355907359091296617096170023213927871273449183666575364353820815239133126153825083590016408595287534338136041882442717119264646167393973544513352427534666680387367333916157725314705815231961912394310736877522353429349777975206214106659041867876045434187537714920200120393391382030343741203680492887557369444249520738688492677483774502420937055143850998877678176495150025527418421261891722063586649935028368164308034324922403916212108493656471428008220640340984463204856232227232207053216937951143714644865148111911962818358034166254926070346107993842529450438516505779803322472592825973067315641184968671767581045580338296979035055899334222433164394492658492723921849748625779861523301687248107652361286281736545171737235894268599685714729466008145444117271258838881263052677122775548753381923793829802088827331157506775565709900229116885980085191796835715486775998252463888340117655506907438877713814129293869583663907710719948981780875537121223784159034247960169606576366830570239451856249997352509816672152907975698789362897545317680824007966384738479108791145692278293577551643700173626680447392216185954581310117500582427360251941405217220219084803149586234007381725345628653533291764843153262763254396572540386613768183898449781818827291128512266261968726204161219922491992101814076029913387661633606592573151268563364282569291748689201591120022062149135995600766639355727567529892404762144318683978812316819744156613647693485894557484474868134606418410276301929283444964630184260217435487683851013006858650173145378306738738680893481506499861867262348078727757564600158187776670056490908372236565090938756508481346795850732152857732236968338127765869602449472865064174281306121510821589204719647621825768694931304682816711124572845708404462664562313052988632923680037342288836324782180689652470704633827165511950078389912577741504283460718568110558092666205702085173351958521330490929360113187637562531354431512197139318077970841004208454560755187282208324753106265637824823883816699859696540667920366564011846346903394465349011124840061097357313722122421740193658459244290036317269893622215111334856682721658899972414791014520073017081717749049321558466474263595178274574825464763878708663644788623394420920161844493718739954059240211013408221500792131449442205604012212534709889092787272935546475468672688921599600256613975049697387035028057544479217964821244123789471145819749340132708008716274459683083595050578367873779523724398466913349701761764967834285150330740991309248849415500775224250808934628027241108793940554712109688279243220444980937472562541455035026832730001412545393791403553854593291871799724367093079812062919315719331499712838804435048636186279390602023378852157861126704330672486589549116327472499537428230974707408318416960294877523768388919174813064342482515101999971746751467580544410971823000046582266310339722570136698171821456744054233230757658312876524875236096095281004420628062036389957535664932671161469764131153865377228870924801683532335279945420359511637976122027702649260911248004147540364907351484574619513203657764338978421397771997729935902931306629056504839430645593141928513884270020409983323575932983185281283599238382069206810595956643596883901997717599671203471173730364389578786821372423162350022710604534518862465162735657249193587805103833983833726175815803999357921348392042454177836616203443150417354426601676928434124822340879615927234830262722426505254428405369404680661289931035964254544304459172345211524948310169847869231174744974098326548699239487243862393027234668094625909560057494256854048327577890726226165660884529933943298628838014650350922712897855973445214155301796840026574249714804953759720277165673244707861171373903756340828976211580595671317928126599241002041313982153169888750158644667159150639165223588151036515397557526441764603777852884892456398181724717661044380508972423823149382649487552968889987238631691131138917272813088984735673848395269496246624404470018222603134032058017400522103209292733544510569477063423816752324584846602401319446539225084481140208593453702830788156852622045119782193172484671776796285948493655615332166216388097054736266846189962341449621717434188875042827575154035532403834172142300079245798868256940442331585131358524622810729620525618192852861925909820833713932691159109095768224880804248380659230619230722788808666742247071871286659879690139992416787446838474984306305545892652742080879763291267992425149880557795878484516983206585152035489628734781522626244136673775155187569734389346017637090921638205668320912607830609846577056182013684799239672853772781130391065751564864398429457410483629415623300237469357086685805922135833302150654914940999070674536066079916881475453519655515190265972357951631278965099765220846630924852106148938184769871569564422268280100795803864006975937631225721658302842415523159153048172258444412211574451705241273497757972918095710004069189574211447143430690262160344524559793115169832360308360121725946893463198431029253009815300364467263030271393779078843958051426127643364761562852411222608157478984577122304840148910706634663539041372781614785070657692177688507594844783571129189855844524878236025115529963571039838818787656871222957392618540457632791348696755622224415953474001262607928095923074405044162197773546597836525400462692162412686946661848362440650866661332819188629499350386213430151660331908401158909995047356666479744616974882732022982729095259099715725801748220997241764659816026687867955329543403455429753512477339857483601013522587619032748283262514352157175742387693541369790313896649224703277908005672105509546916707164894108726399991983924167427483802503111740673952409092263896859445505169481640075787915096181788412967772996687018210801279238273432932840068647093761581371201045487254824605139982931058656146167899611113574155125277719110643657487613884333153789059726684300696869237867039140456909413661597899465174568951474719214145645059011050977545933786515977964891837857068761786317079938167921119429459989962503532651865853065536926480616441300555651169316184540087625287989120898362665282435930986769811169345295849498528584247534509242360092434622546821552833639524484719934299535410814088871051922405598235244479518866198628252569000089213319714335077207755197917138176072022583566616233278250115587501820127959013428396743289889614624424591064939378784618885033720562841133384699569080377250009108238157727914289881167173285961294115471334273721246079884550915811769591096139556998608087471007508243581251299732917467890028987687670380401013933857013670604323747905123883904186930243415699488195583391962124325656881254002834676735974971802822125648483924990168016019481361343476566934713686021904823844890365752376406110360945078792062622814261400271266722164830477729328950577468603188740845459854803474766446259922154464126341167152945264460772456500378485390355455517218174177938003607046902524170342511441113751060318236393002752232664194754922009407731505455592399414167624214774636807228937314020188795169475997890880684640393000027771950518200013283832134589938099056139733826710382637155293973856926560426121863998353671341843705382202472399508957254552656828598506401081275573769155528049688706448512573320334070651586601321012852406328079517906091960147762186209433454668371578883745670672561189107456117290561694119967734855248420102785897280378287471000373861502753199197687689373543647990237580509795122478514990771943168279668145417347048140834484210572579448731955003177562396957361170072340000679984857437794713735348370670686172766921879262605646098356911887315438400504167485620673473986865565884585967961969925721779528034339519054991085236953099120218469995217368981043425434441667568713663086002712066701392479550292245997620030794783863238501595430368420867934401312676007536801340424065215536769297617155641383880809126694955561471180486513462961258532524889726092458525333077873639017246732078843258199300995111846713450868582723354684763199484999696868671714554138405115861289583594451053378268640230088421971726459891990798855550251227397432495379225136222592976707455896939791736364293680012300763791817364774199374319258924796337469741688205930345975544632180303242085896710596408837651941887506254039359730092888416940991640936838355730203328216870403017356256000877046389200506086460802168333547214094741823157550905715585714654685297215684244872709465355515572625674250199131958323070224984005378749576536166997150481289480591312761741378574348802134847340610976652333372675584794494789976162465557684397307606268190509808359540752425706414473320251175852328927415558315231782940495081352753394167538352440083902899512891797304277662198062910293181256649166797908189358153853609699677720705177489023054233512086978312466872520436510765002596321302808084201088633964285056085582643245038039252417137457012653106098881751551058363549584956482785813880598948386150855013092955159834344192120041629606309676694118118528813939763543244499956620809563261267032930100346475231220436998023734124475345693602384013385374661134756661420227032965374842783521330464902228377867778201356597556124071810905310215266250851776366671990770125526569823167197552918106617119317227568518251441704803201949733569577095469915850706765828924511548763503474401616063458784531342766232035857674483150595570255663996586293858996821789902833270630222066692895532609932233110911932067431962151106532352505353447475223555064227281392594652984230048826076428007168026207418588701952773785919315998224539999616128638886203145857505920314789209968444949472503881338832948915994859238090688299514314135262729813696892908612583553255380091202917981514510547832644229837323066861250714114327285459123495255922582901209607724194731053502403608125001730071144758351997502716147516404284290026232775822740423782349273735012106997038553097807006510367140343753495373045284944044283346791207014954241518559940624048115671376687078418006983843570656901873004193966505216038229573461898435583887888520653792624536542871943654907254834601818310403979566860627664452688584781502370627169227468733340384528610562432918135029411537256605664824084843549225755770184068876732384512223620194706515529876069529273530357174335490949742439799072598922445043693937742900560867832800614708705695165055648044358949533613831117413165508165885797371571716895138337724475063590850011106219342489967743945469744179248706180830126614362115987441274237354508560192228612474925694710496226084363128443419857487666624199670372143191006533143286093109384624327021108043614348539526476492616408313334977571331113560916821248779646707234691740225935240724212003519492448666793277550046544968768780888826446505382297023861865462912536633247604481684838058016669682722971193187822080850548577958845749924103857906862840712029345231657935527321098062441685273810069559211234965027944249662361609503218706572513241345138637094183316150959149339701086554709938177808219779801123711556137496318846512134581541705877621399586029753347008244057913551624118216038005084929916869680209414611241160082313663780463559621068329944444177222978747775617664653743101242728510539022025999159087118735614730289319768840185199110821611717130441745723433773719361567499080959491397593310214320551663317708754257806923170261326013502558962564678581979942724207784304707371630578825287621030022971769634118379104266533595782214113112062941801469350103431766187027312477423643965973970706042775544013790707602323639208461478513639671996212758989948057905460073186476765960027251194813412009084180553190097767107043408689915684809680487936948438512649539231143719071186743712895351027971294345377874645858906843235190016380871842986459685870129297701604620230417677820245820601908826505881814850358750242903105624798976995675568809229858518179588198620871795882682684058395469345815308446145622369167413412348000320128300226100248873498811261141417040364742013269853817428170905980560277607463889860788307773520757464461888161872707391755916823545690938715110904832960760346592334655117627977609326169046115358834936043462803314347273465743732921647307122831281141733649941070157824916095253382640954286587896366196524117371714038061364778591677129826483323935750653591606679893299288423830096191432738089169265155713508206133694799991263399625609977454672329059291454277553433686107756661047121669388399202192831706328381095659850794070661496332673352460497548454198477790369421008680706423458438998154568908177357601770900797707311171852997866646827646799335415798033348756848405621386406410038963323941247374991561290108827336967078155321449562085597312222603323010548186238665832709830710308687841354391924009109134773865431746068209792763779231958278144558879260580399179450400265478405943989859191580138332194125208487006829513538177197474225936393616121895900347655546675266824770195326930523359580874055330386315449989255866253395704480146555258379627661093908521996002156557806954652399188534196806033484862777899483252216480325660897825292457970427590971526498337257286036844136455572289142919855826829910307095681881923385433233205643787379537407858714092589877427071015415637949780705752341952216485060717931311417331613936613687374850913276366524410838173091637195776553589198833438190021045602017376508509337756913796629215021817748948182329662376142270059619210327525827393732543734676301894179493201418019611127287387625667266813223242927000132500641891230492163171855819868613748827141064697694231676392861069278588490393551329497327724685511279908566461593569105621465081219506406284166456944049042831760719108561838876548813322612153711117970387651849460533487239763849664388120024567222178434495514544386174604676241684017759613783759377757556307629689540508737570827484601999626154642806432596924868435548527519421014917153937822286792881521310790564584756715243819787697453036026101097906532291188283361895987481568386624428629302943975320216441287818630681114194064057345331660287293909167465388866364960250349981327754229245250374548230239573502462923065368971473974627711402889371446465523119944283585844615177569511343595336236786974390121535386880812242628654209832501028972577072178887397309987537044979002439617572267513077179847048350445260265422522007296952131811668807214491757708069429876200554646000101826173954600574131265126937820585000571656666746011440678925153079716333684725844503631385143454847347978681117225415330299853109057740334704493293394631069676205973019029485335520079866414571098725645480383279371678588599443686798956192944843375000838351189788298429510529898143084753905348606644281679986964483747106459237444169689351008310691942996999571510633896229233192806960151020270785969956548630503304309167520272660913190993981151559774385407093705438562812925412613813869889989143836857927684747548382376027590092664814795592327071060542427858985466494881852748867221761238021341529041133373302782899914926820000573777710138793716797397013153798709627527877022915810509814324747050075946115365782168040088133821801438688761032990345252278188492626847606107003772999138928665838268525160241021707239310945775950764971319591001605267607530375883846372402409462578341363835955727579860348040365035125083982488411830686593836600116161871892072735888729251239258316199479387928232723533450538073550611632365655390420118615209427317466825624645175925983314671165546694682884282903915349792401900914893197603320122889141592200291817226449743531610471779445397125765383408782522927082966523532592535867439959477260740797097291416943706923476363974040065168181938349137013627836121100848819646279111441629928513455127887176044604633311959747008835614212775725758621519505534210052587608964920642884062852576880992532945088313795636108994839157058476491103879412987202602356090829791678978055724429206192819689330154358047636608851267700310685140707893413891610585819594433595027939838103287792270434941666623478629509737811352711872536102853554775048460777331349558706032978393492941812642690218855836355285899619451452213896722150627382749169588146630133803537229128001797624451141435667787406797412552189600102863750023633995274912211917682883052526045250566140990662720217784110147095461755455191412076855032847234246934930913746984991367384412264525985131118452010515949103302048971110808072566832556825810090443335351922417164658745075680861620486208940051464874365777117506954828932027622290893389917398732255192545839133618445874923339603836303902061101670796271461778770187632132682226944966252662402548653210358952638959228636386728915973961976841411816397465605148808301361770533478720409057583275848194932602434948486553108458272411328646585687541189726858005878073511211303789328122486949481993166155140441887622147317719112384555274565407550119255602339350897823672439799123610133957927837626973483105649631177981318520631146021929120493459296710605507821021145149026559357298047714656172038960312970675917848258211867874933432159119417896655719991509289074138051553442595379816720707412128971501720772082388240760833125845385471432837972579526831262180459142278812389719549658141552285270456042307728344919329637682211068041509938598168457340987411253620956395789664081008155746095416268047670090746391179096963604582397555062045583548268432516479258829334333271731672213190149410190776111647433113251472485475167081803238226550982020697629161500392449480448357475438131730591299593397261749822379674736128249594844293875599421545075936475991880196881172124111306333682404645733402203907664326564540243890018982989941470091494838685707148993603598048070613649434560649344475128353808466977162880545030620767074057612707277614815745786669428327574251005674245880062460392157144516830460870609542024148862166710616161621734700811718112332326723470032215387578994324538642866977561016765638458186639234436723362175376506907748480725673063370589516653061624356570174281658674370371410135650360849100621127679981430533299804394566394323913382048726668284137802421436118577982553923766196255231797310369371638592876786009453475191140537730245656035773188269952661942346698106157160279804568027893217581527870667474857166747800894890937871955330233650381958496945879979572286682323719861796338437095157991783438936347061912547043184663764726342442756738979106861935603617149268305968023521433841406352310840693363614035627194338412825478751387913240655366521396485576689206507639694341992749792541460345218196022352196128656584940801813228382971573679417770989590304534542385312342523184220328936422428601091084150057007579778353626718123835088967100411812836993593594500807545248613723617520410740797621577064866275629824548874936283027723838956444779235806095141197271981134767676880826755813424214323847055624649737568490209042481027342724847468683092924419464316955823172989154478895404970464976856378257551743542583647411943926920444726388012530387082664610781295450632819392008077223901763564005146244304572522268100331159438033768845103958605885792045895550945831737767665686807451708068577513208975607620753118685985899618483289022986884444548836751834085418495412926083385405233024952088375455532028455747548108892812269318748663360333698343532772566383998524385221820971063574980479508882411943175056973275922734836118207216980301456481994073265240904821127102625514255714238391433237770306281243493557298920868774581064109328032766061950373930134240520077104800103367471471836945838101743043940983830198034433785844324538200226950888345185963960411316720326299052177022300752650402280320085221203929475946431933248167325711798119932460495061898564877901366660330853511941887676340690302905775255216798377621425314643752953535431707194743295701729226295932102218639323682910873764299451933884101223316233180529892297818379678692527419747035978641130385591142114645264391594937609372318811343952712329966616891710892864895436052914405701018093416208828084328493932327720492402422737356534923846043530920551261638300033242814795538043539698386486853339044022678236578804618608981869833951561224632451903922872675524109716694546937148750704389227789994799766113752255824355287947722858983936342996523187558306646568819329669432596887265256548090452314696084781239940520756528707852796328798954698619883813805744469519841402539312753233459606116455979144395846001605393389195269218390226825635939659011116587399948223221930418905947694364735282432818073653009566521222194302831410708150814517816558285354259370916995186145800090049922100930062232739260015991268946384741585380499112811015478615123639533046833064245900268509768861857656648325103013084853715342182378290804172278306705023775760983335349985079909308861309166000918675358995602434378400881603969673133850559856243518952580066830576569914485881245744629733025810975516811688281377829685823356125649321666523646474425521688667716741834773514399184973240575957304359018463168031916646680923116713741169895183877403360585977821791783074045108605727949001189515880681214465903333887202618466885418245753343176873761303783669330430957586448974925701118994409149900934710926145136060522234973735288030660917312165066274629177075857263820773441183552264148696410418934709945935470899879705678098946551581775730532797557862359070340233591468719953410955919329657300594743884619918679223046995778716452419510072310386741713019426142183749557034003388050539831613172755172535458542899623589853114775896626342504411272802944235798997909313280576980548027758164114422027997220701493773349351700999803871359485469410880331201561489728741853929189242380687498959451134024233955322242574988062629664412421594668301608490983741039316154686601409747578166009483269670111900399817099090230572869759427633559981653506127140246309750850498578528495980784960753946125226378365245092311717212609196122364271502589219660005450522978163308519812491114850785627109909857539846339064910412565836816199372822478863748157367320353640438607115607834710869324047437585632835634220134124178468512354985434611217370916172462347946388487819202238122414629689313606600140669986985887023160988965944276698418297394753633572162138711796002642942399556434299557967710763563383144184795252681293226650522677769025529828509682463663617105141648503600596457220640329688231848921201859853554874463524090894462800128564351164804441667097486488768129668390923775958136449811763955503925311818419807890292328641258398303851920950320721299219203999598391697180900695355045968221726084402445143463580517806324007320232133615467039550821526606957123486319355009148741106066685160922096757946771010867073109302729911726275098462528510542876371727079398652566847206333602397453872646147971491208589102960536417915902720487006917310562153515024236972723763422126416570247226565276923670053520807396451006875071829779478127597086952258839641154907455799118436314367036919637165619965045214583308593515471328258855787387688325571043327925635186117754326467889221304259069256555358732580919190837616549048535080588920536163930162955207419806164676604806588002732312628994459143529502769817796188875795380616352981133162714555215266316400516798025194221571604847208991727788421096253472447012008303117683065386919145793150665314064912248645861379513312856185470126653231551971168158366995062172625259512836561503047655674683642385266578484924420516073669802732349495173233349418344830670438419975240453805716770064556575266119584121171677438450916376959219644481492565258004614813127491466299744168837857383061495047182866212443824712840201203683460724834395494893227577044932126812904123913093573979286079374294888711691030172636290339401401981053483577434282355557892379938889449509795160575900713606018276240748627384261157139511045206003796709226310013194458132558328559299714786174179665380398180329344857744206796637185671154041405929855180662860827796897612965600064399624757528255865707779412024563936832698726489705126354688466499683319876578514290694649434079305761644028156282713265934715067358381183796448687897959159376855371755322149802494911020159005381706397986713213474460910625209229137097718463513680517374513668567094713599658843211142666196685425007625292542639787386995346560638231792538992197787593006956142560990285829895430211679842124293901945255319651208030243755295880325927985162936685731987330618570088937217221226152480661747299733587539987529760858014270954637372787027873425261102182575350622063457216306875683474064392895693661815136868512705295334512715615403588537458896045398054558136925811712787612530763571717476493982510560632424134458334394286246862177499253350136767324583990623003310206465601240849774595154344818207844099990375881590040848321912233803601008485569026920734314284870027290421742998099727209748753154623796223746374710728617843916616996751059172561923875539036473324722636334003989536636094639628358766586762156559961434495154129701595174012367098890331519165066978413410513217267262718566271643570174717058738518533149530783903047076451347074534341353590108351473779092951953906250340905684349339248623538195147175561974923795873036633976522951954162892759580803503939641062580287741439374023237193479431367580929984791889042959591639021315191333513810578323090911838934846640354682504473982740789983682645641766224936081693682189526979107937019613780034156476472219908239592715289863107525988785578816503705132843559779097484808032443785827792875570661956502065911605889367268960278476467034703463792974030193724005871246140284184842721087349421367841735211407265667709626645266027473718964852122395050089650753744446618722957940851069893213490863976708877694160727445731541882843343719522736708659012967162309743503404692286245373950602962435617648453759306113523677920439257556410541374380692456069239707675816930839715427175193004924816792126509417884458380182714285461818691371619076861835845356939107292963705965933961765134623200402149184045857363489086106329867545602258710542597181492480245131207906702893732352771313246849754610818780220053411710055054086442637193601638125076233783380307195905311443062481192413690222296143876888492792922102555529060690754484098081731706683258203327939030864855963172047085671353157235027504907176637433799419603593155877474029055193682428527579891848018957428587568850829726658859851528835700863076891168912655406957529811628049762397472112007683220745025865563570194777301261654735893197690379264459919796065804671628307024912398148616526805002536243224962843989355538141337529004653471419893904523109006160461946250181274240098967192630844437576053119468618557477768640005076809700736448172272723807828611523696699874214913059572374657097406989127718710791318672936460881390785726003285274920647500375523113638762945445259000446145285141540761299334257265735194773723108100151525642381637798684037636631843723010825654517155984780900209979125553423234962331728687970471319233493782164766369594648341710304252832255193661955847151454110633594015686816702183508618176664019198215165249404007961729882969800113386849130192199165324213458259417053101862718752862745190371822060626520625735914152972011842059402602819830232124951001224172628085440834030654330463920910773298224925014588999930899219284722487220791824077882978104837982766908371328321561877157129738485199852780355980281503411632582446542201567727375657131484644484986928471750683593550132724913292929123603850405006478137023694401793382004926467528211779474941722185478223426281594050851261747479664031618179663945665641687163255186367069257104245605769477497227270147024727771367157756065574593586528686880212481831372643891021141888601314242504459890221819489403458240839286560038406025674280483847810563591772867690972618567649785420439141773501287931330944578451278123663885077481485406147595507731046569169974524762296549214359695976585094490552919095537157686595110450927134635267559789739226312870238111381983624250082554532016420078608041077572755904628219921275481377387527001918152399309026687864645204929502174737483127244132872303583964883162169577841347520004293179978127936713833360629971174692500818601542809893825067078708622401739670026709993462913206173411617505086952412456645085788485233532724620909028797895120956645454775552746354438706161982768121081318206123627210619129357404354135181633488556310828553696382141059552711397463269530745970044677840356049404104837197793015905200183162308394508242929836575277846204763414107601004760906468765988613203124244164998071303498567330268885982492916978151305960568808987228024604461017372466846723643023372682362744579485484386328308541986492853949003290909560981973772312524442377081321976825110497445086748793713797300637397975957341012406182875430068551486037996152748407445876224798174349546985128719382217284083728163857392938119156642036329039997789681541046150634183026436161608019794448795813199894863647133357532130006330169634352675261503309217601235362037612494478329222815235170797307444990281828787915733521893526311830848157804878445563920595429729110549384328084673598689325623710685383782999229021029729453067111914271429348463617019395872025982604608396177883914004390183074338775576755316124614866848727491062114235051708670976903466809025505744832872709213202575649666886060026533877881513878144962439403333851523516077400983577739031816050099017192368344988052481893128354876389896641547737948425888201952614761077249826802353191571100863911266609056407071366896281756477464898735605317803581088438617296682144208315921437405491704640398275404732637069811281971846417533060657233426529044901385738659135093272325927516729604613805816491506372097867582471436865805966807830214389079566026119996090101773367527331938290742499065204169814424058605683635935771165292800932889070269260615947721813400227179177180511346650670858070790206441907402343454007044780524591093015747060760698453518573757947722534675160677139147210832912328476472772712912556593397888352584385085327660038701660478539796610828308867577411820197600219929428128809795290357785029016297214011271059088373087189711376375754415167068546175747672873910606177416892932897970739522645242785200952451356285424155993732813562492765454646909388746856388348227776459960078727317918507488404316174716540151036709926982569450391712202391571514635988915898928625655323823668720779557662420809485948992419049038400697887777588439603383963575131318655210144587868991967760061373323881799017299955050730066396173239893367871069359339852404623541042249520710324219332363183914934096595938364608099224412448729066074494153212033575583606553602088057706141736795890719922520086746108439623784985893075730126661757579336655252304665424381466336464714506372991838758645154621663202434020370309683102919424333554749455798328243331609506108973652036940950422161446328075428368767858800111753804817222941363180082140250271049203918402517332598780109197280791461956771911891293018339046228087171381127430215064683670378367826018951555821137465482559353243633016408771324590289764555034350193342138328945425360003012558459284320516314474672285699029909328320844197817989464059913750067308830338089424554240182481765814329831558164284701903170285918541628405448157559370328410234647961512764376866530659247735918161423738906828520654725921143306535412781084529262146849127165794856545489004726072292553154488318914322288820489394856504923529736858331599311982246001695861707889795142585239423677350322615506800155629186416219536068243748893673800591963080539811274187874860360785224295436736303050542039734052634873699560130160203742629388298062514601717365544834733745514835754165235967752044996622524653252372126241611623636740088988430516450736944852297392645173725307611148606759146967217289227391991532512580039972452576580726972848979378243753530225246071906140728460955647606462029432583986233991803124405126596413143114865375941985071372226881392596508336680693709601505390292191407245123012055025621726447700188007553570062689635218758083537743844150372312719442822483970939227384745766164407509620432028687578291736131251920291222029433935744379319221308723914051330862875845349596920881445574187176433175971118311349981100218299532382769568699903744416076414573952457745383816804857489588680495654449422073787039089699807281546001925254438436629974524043818319443401367936479573936954064541262611455388897673792499544641465237239351236553943577264300168166020852840987687291558139000757010856277741603954444994150443481507834903104105633849346023151997260125590178486951036053352966786446657994338810792777997843423065015114240851707540262057434188861789426964061155303105307078185553748591119349742919832557995748258898124331482458511572534209068533877197327301602455221461411579082932761444772629786563991683496661297397969412634651146536140840637900875182640837904398960275503415478917884775240278664913853020829692607294221440131577341106390338849089559570419133870712695262650204526321723493725870142322002093009710128787326070064898546728505166907780145981223851438399661429174413716133950208743733850207245848762776778751541259322104090774097735218990050391921250960618116204869833892735021178843446117213667706757056621220623100888424423538061204451637146983705981947376474384058556177107183814501294983145662029167924146855963956614835642831000847468003536494438786659029847438207618024995714693763947750500420875608153531230849764948971934988146917548550801013620133131076071894871566920014942029787142840159888027770141035025464558322628877289201065366510020343907609227312173073309423867621360472926157634105813302628223930618520585309372455586241536074803469903326445667106910656690936803391756464357532483764549355709420199885224602087912060932436424251852222469395805598906558637794445853891500019080032640904465107031896327532654553216313580410002644084008289860590038419342012419065175239636187056835845323476546356901373546601316171884876297543220640232900951920189501391293908959734833016576082957871709849297684660498415044986985717482367970346711733218559871411802183232318645302490846467659614019239843848773412928763724188499111709558599192413070583044125421823038518650380424548347185939823000988187775770307135478941855600317731059258846424375962236465916061980347039596367552659576660958700676683102864583306364843419462347697023834228196638116395358548439989325153935801265440477877198543960661714371941098642718273786137514963492823329800624446306538722671918617388780942594721795770727804675646506406619826325949010751682221606894111928282436142261217846823956200250430139171838766420542541974573562675335083955968530577279498140092789627980908787861240130292114300053888068835447051194678860576696799611872560724951126079630704139028648976555016921399740514739244337432145054332717467256700451598801142219002642117334196786431874933695078120483810481950564492629107686828156199393412894571595065959010435747530461714545839495400230258841139521673814296559349823801882307923679616022693499166771577551120437216315707357936513962857424425602321723254423482922436952363415497173855093367732232953528601878104825692632404238087305123886920768886390058984186339346965575647418696813545468134767558072641847394813817799398979790168625187916344721327107295994918969499326505649944604365406473981751217591422215809509121181620905418440402641270782149661122934186338194871965464649285385181230106508659965983852255270537728587674805009510440920782291829851111804796060421805689774145956211706112142492697355566092899427823469057440903344087002832335807066080571326961835345384211092312129767653697168325283751171781148679648783228198115198006039925232752037369420300986794531011129886010575870215654247268477596876067778852944792307684457884859198928269524995353077315681249833056244575655324918391424023329147336393508158285703432709927755562625853185010234345026878685287478151209066570190495042936355680021792437182302584479403929824120926861733448603268168390346477544352400011162193833608825671657331033153782051612321222919484808770124874851533688661405652918152825234278945528024757349812808195523540846911796612743002976682579176456793754978647155034861863247172666017234020457052946862541266061913960198415941234014823973098183440346547475385926514023810897662825298201179631260360885192459466232872614706786370986214432030672914404405522044989058604041305922948018839891881101878519483061779997056032602061095741096590630626541236607638577167336372360772683348423110212279701762824942966044208572241926968874628191592426569602222223250236126925719119947868028277371189311311752682079478798951992387930567812003824972290846208909085494449135272880110080688099661722712759807259685075226688435720783213573384136585668844434237631038654954571181382852939434159547085997915790015713851109253102537328002827918624033359381104363557370223860995871935256174325078826591772944407385005656438088486074367297891366512292972253769375179873862662398599874605937440189040697940403867247965106010436307770960819082039993059534980217300670972919653686374450632227560852398454521743027306807133948460919194661915756223147712128909276951371955855243021967209401358199313461287881108468770800626317296421891501840303465530740826868729456452269712550145217463412845595123223336651536243996901654749856727603120883077120375121353800841704694770431269568756198677212554688299287767290133635574215592969766905387482403182901814169311576127775315120773798797012653423845938699339775602176421758491840214691600712700295284340360802182358234595153182826229807802033523399685334707515714614268961399711750645605784127382398448902385903171352807934764911049620863766215231022195565866083473065078280678799831648159372244329837152500830148701980126229241883701186510732116858127611214472687729389662471068663769980419145001268673295404519959555961681836106017190755498942847426571072186216659469891725848430808834296977358077640110729308254619647036576074184894305202883563448432400742544512840594069623424459688900404170230452132998371288048762696241922431566312557605632136320831791658047829589701639481896681503378148761025702970350843556644638403985981227300531468836055175844403025072444948896483923812087917206204074995657377416259544738953894727139617002720996541365195755981662815358490290228127120949645553693705715637243940478415379973858996125197731332954425017463286276670274611132902959337564819244304434517295428499548474675475533110768398977563016024534941207258033640612395722822675628654528567581101309248074695456830194251905951045024341556798142909995174891123103520030018586432690332190859923166913518563303889472635077074207210035380210761231626039940126248281370235405089929174402693840771112410867765866106052092101981859218616868685546638468028305804500815179065030430334516182533929828000312373375389976905441587183674419883591673374355353010329211133529823950232448979656503773801213500362980350665632121395073924213483427279963866876642208978633524851348928337982207158782636164339558960298151006724941184301889136046301096057931343075005423615920720409486682729539177761660185934866608284314814955997916291867967243452160343434184441062684917503828029286127702727111415187034823505052427280008191077685393112091064844652418898197908163250418107650846634767057426847378986869257551843044748826887523461244932760360267650238311063230202185093578265871088020241129318826978443832849888270579170873400543618239150681630006636167364711931311186058081797438131440973045497304020302330426911583417390456577620453024050945917837125644958831566773640900651060093466248786439957424803215808827105647927562478309979627981556225978423756283626827340780357115812990901241660728867941193630282180806592914725183300505241414784259798132577613396357520655923202656411905840905340138070944315805060852681732573811483881069764103282005657573959970166769116381232696115978221409679177398153622721137107762387112332339752746637033033082906538224728077440243711382390607318212671307466560786826371681854831921893922774336414168967061125449594355924832004118242543351852042557341766272176508189895516679979861009333818368619746493281323677043437818084217231808926146664001911826267275147234682465258664520458345611216334689868907594028147500517958503361475839808208162117130611744335439480031304238505832431654779123753598198046109403985134231336247280288309100903629537383021431925672706188065247083599484626276789122864054588846478799684032251484600612392689028508699953397931484477433302957702826344872722288759274892208821991819177090905537787932157227074751756898466749461314449845290019029751754776278483028960432752264083195097647198583220083684009579002653519710347507813656667581277084822377372840481041441086468082904024667482774459231807645668263379391097362331355988299790170762318858305462934216239881446955392058660071362678937250810504069873646281131977821703645524456621103178720167719770064584535921856655930541979294546361329224121319836912069397629765588162406601344894096819296449658867082087659915723335474246000607278413626823628341872376023742292119394919521092184163838317017751977125129409541541067034077364847797433331798131865135173895848862793951380941368312343968193439679310983673561986589642746369850162654657372436226872079481670479461799996422067407622709323390630798582983135843390514296440646922961510650389643002265047296579365543177817773044139075483089885109688641441115818073911371671236592547837568594356485223594545882249463362849713353963804535216077862578227001498938450580319122474182059783763906209904375227301683588392570438417840779635479653252234754852112369365126171643368840893698611111854132665362184088655879303627290903617164539410494713728592444969311299659341180858077629892888942958577095077501849524126947453997251906605093166604980938526712498477142802373233954483622242117064167183823557055005321297018118125630134068263455770371972815055273854981474086738489996437148755023284003952357761810440936928178375169414798154601508616609862741590570686629950590891802579978531356700988277840934399783633845245760583560229769997797957656200288436764165016696829067733533091237032784765982871986094244931924908246498601462209884832156538239480331334250880994744948790743287075303462162888211112778394259185702461544357820740960485365308001332292927425042029864853512639261116319784741539613155765678564402437060441119187840535541924558499376740130395821787353949648242272353729027241024329019293002812740308986307568680101036284626010863168623297545057224397268090894178310180247165920134644720349250917266534455468947146465053124763561523925585776756540030522908758674016450100640511386730448289317374870687264113126870749799578588450789162371999607897148108978704624792363128163662757605852827021621003109256286393054263954014689626779180346452755731100223857736115355070720343009592067292220953946902500325921202398846032492108383599604953917441475326280435849426378935073059888846594134201728462071740850586684683204258304920772687101151599526559064865672272781917903694149934510780288793044295391950935184617774646225771822711327203636469403787525321400356921043409655431399427160765660129299362855000425527664502362277636164077513460254009765063317626849844951692149351613878119809387352912479486436525089652493441939867771499762576598869747495582128987426585401220987140971150157981521566988789481231315574898910028215382733843076027746783694387269605820575088922390117347576614210797837969111983585225363489137935989415356477783625498954273138883236363113778188806813115554811662694324462811842652683632550526054692044876963452407303960680456756478744794690677063583549746983666317013263025818904581391025807344952767641693557643730934531657613146776387045532905302538075256405733166146243261800416525909552446577450192529931264432947010321254492202459822230519226376182250169644350924598777230886736892508258331005458496257694828994012145884001264125941026516309741076354643941233259006856170202807533009883112557175186171986112060071248474105090192756256162342055966299752603822584179339387504881167505887501514355622082470756501056337153080923859186150209399811167665954522025698297088573394992785590411110040998590962381466355983136943029139749793989287046038115897979698270329897305465904714054292036260645189047199632203938323208723346306812626881392688774845010224112031880089917648151135810421912355850650417354820996112550866530642567158758469201136186760490247395869403822146176346830167380823086287656256394812706446808875620672776152666640019147483127007845250829508917498831863852810590624531346207421186648293734979918401171678937346777848159309963405869544570833677751149138800332069158146266591459876117978487814140227642159792665974668497135153614152090146346979036411584341789952990350346435676454030694052851958799150045784611521934106100712109673431284734713961685593544566533811427507961696551266429990873367804685312057813403906092296834383780260866354021449961976436228507778516761549765860101206166263305345237439565988683876956148019513031005697561900137598467295717433752020920046106737155575039279971652117444714175023513700851359430008470831533683205968646916807043220966479414272328790490004961929218428400053409985673730265521913064430422197750723864670082931912568067020734604533808923186321639009765869246942842744625096594555884890849578016825335792175789341852220190889124207815737252099618477398184969831273380766799965416363598920012824846078013284179050946091904795085314034511882599839020439392257706553624889265045157200786259158993713713413463898412270304250225145315916564056206142411872594419071091762852691189708562872325245222401777250796565040817601807759188198432404308369382308424698619791610649463875527545455096945075358411550699282477492787557382084625693065066799316538681515251227798570688033427319218026794269485325600491518055528525178985200182157167241693821851753864611203013130283019506923119591663706002323057379686705816811260524830900778111846518932924596101546318545919304383283610809204178703728527531056406286005511207401485373381280226263963535977653456725124613007415456524248093957160422285805482616008698825362180017142141439824020414735805144264361817635676976984556526810046359083104840375913186352583483018469914725304677903692587489193459523491451832397973507101704362744822623776587985238004095100627523529463653619108273428213178044627184177435764301767055906714684831517404533001501857962733838785397127818679458447001913989477382309492938003149157492060328879554114724514784618131492833742040032198137453341043488758779563359087704840335175394637135782142587183070224207384286840544896534354033938989922492856504940592245973128570277241110690512785783343650118358577678534236560454722764662784435829552249217371693560669072455573114556676100625823788224009280263074328025910695894108475359138160804550154368370579619556420234321123051769160292842421302239404374406593923093705024400863899017324904856279912255446150511516181461659015793470122785288270820816821535760277936003514538599276246213049316340307100192712852723968775763990570364435397195700210047770261913135423161551704181703324180956220133939804107049827638667700760670355018533414793063469977532355920597185282429668546349225236325534054195562620224094878448379130961195711312706328314849062014105007139251645140956114063597373925846382172406156524128497735927801106304232147048027826380093674543227016919160910560824924546889568775670193864047239344585990659076156563963696075745020927428080491500434435194702200122771740561672893495524425156715368546117707745150001994530039711217166127998116057930142648230131006601060625329932608263634073932683060577995061601579652929014100836149342988357773008583952919649397233167722512567077675975582740902113910758091385022273156246628715008501146034419926463583297780213203447570662801282987296430957222353853724457572884409150523373006952948615686773841619767877272138548129906049092294361207759539602506056166132084719716648035760034568750594475167240127126371075067608633609719761663070875693613292200944230878571217377401628941778709427878605663408595510851166167872436865292429787997656974183277495894625882014221901574774594196928372387966311905265705534291520743633967656171656858297821426009065267062241727529390545863807251253120140432887910656560202100548741716188136094071096223199276395222652809118560656556530365158458461897678085962882123851266167078519981825467571560440783323195757001374468699877187789673710141378500103448652727525443505157297065327885191524304697291506000441188067270970289719661597607643131389787909655217420632152494017822103171483274252865614325534422032980271483154279349365564228778045270846907525307883363075518921792868134517062345838769511515065815542589530701603008987969989794176169136714246093080095916436677656805219420321559984896886327168803274481841533925253937993240482825983628611705452076031030861385143338444557939815389944717518892305347444283267986394954179684556560731922485106670991062465419270825866323999566604705261616308140963131752864585457877941502674778923607074552071697220031454415275806654048434945772925328272573229412723978183593419991458431768559438205279813770542019343443490631704293245242230719145985783187661707060633424123033446973146449960152877649963468136679026811435948029461970081698633649632899528706108921664773693163816064157641072493259977437240735103586689416678019220762404256185371954258885168609378396311940694483111850666890466035494572188062867485851807607486388845605881991924373091616218228782504912831224539635443216078001717525964867163945443627614253218719187268961991952463260482715556678770852896506424113146331280562667348954734180897809456073285364703706017392454768477872060843186430754165135958766297463132529889702258480967385194955091589913618487542339069915676241496757248450955167517441373006400625626880549938031335848129065087552486149452455601446407754185362731455411833048827473142803588724251457192270497899396795922718696145113173045665638271499192576733067727098678242852327279295973223107359944657278347011296736910521377311499644413185758159327069236177928748029536833143031880614347986134301450330138629273211581850894437628772012511831354505016065439361268992126013091510610586424199405793584203207784170536834607566051883024409112243450035704321618344638939232223011604703845804379867655453373053376632254760311058805283606414862852242092395828714140730683185641295047843561183800005490548688012068461422741278566938703238268574152165859401617285593305232675266754786164786449289398257564445551249798382122972641478775792776523288237377963607605835068137754490735956947687482947051517997841434825274613499918107606092157831233497159102086722361238018149223391728270464572302710825632732222946686520349011036342143024847990454855971310480784106880414760252437610144566811744406278664118972667330932713401647063755973981140859173544033499560878754442719565865220267925871550742606125240882419505247538230500827935161878306903166108573233611724639573647820878303465361084957044939765514241434727447479745520308556326766191931041618767360656157588780335318039923985284409726591100889667263560848161277389892468978563061585417732908043076268085699179679197218408670486775759461899466930650745016993990829358139913270949531386646964895703001316951291353363742710838430240759213303335693399313757579789000882991746522827977696982982397990924701017707558098658784029432365642528593738673197440783885150450397382617310760548113346894409144473361919085397226338152960435005688583293912093496148027228521234932631021938723232898545336744901867900714238092871443782616233173017383110202853729613827628738493806795115892515575575332485256349496866308149806778929331921975658060583463314766585045612151626122076281875511561139666409004523667174048041105676985826661796077662291894588774992373485825623566970409984780037010004749700440944156666794013126341498265017141367682954219525307835843578797226826050562625568657148615521369670490325035767594774676878666079187747566160812945596479756926477823233031777034296484842892609938036521008365296795980639519652458145802860931884156341111013506286332137731272287282637372396915648260625382329440822282019696758691260922122582309108636525307177911970141036924638208730551964199106269635714031573783855096530372996986466605140087209212544290044874206443406250103358677520197953375532000486955056602010120555468729712058461765648738350732752376877803042088043749892379696943594365821246753640553321745970960166926609751418207378445262083306590638045741995270343352731393263739996344059183725546392583655190339825311120210179129790732045060288373221118403971633551480408519794161633873795399376366805896505133559768781753675976421790446676177303803760808164471617535114639105256817620496407674254613976971484785891064961983352453304434513631932625619132668745177641367333052705880017653445935417117604692829264168909770735252649689766102246730253631227081874442432829513417755062411117691256955098762520354717379113236532056087066660245063782006494321865204873557972023556261213297024370615887677786962114353868447116838793115899248538761071241546600569620445972353548695232175848913634756261884487793597652712787116209848118735271683625669564200218364150816830233877548677120168321899404946912464102615695314745982114025649465168050291887517886762860384595231055521072208315364523617400067195424755868245464607065235591643748124990375414845855848827653754375876689233842088489527219431705644405570246499373230818901949624694279349223162174860996781713511476999470574868437177692176548118073786512618564323822757604257454072008045859125162755303671343973602541615004265007837974181935584638034722417079239280404933544153484626192261269447045893386503041513027105769261048168990868051844124188493968530404035827745798109969835473187083979410109573043174155575891047297993210445078586520411169516170546463009535990511165583276190868390399298061046167116287061219563102499103583180640383027272417245961121801340625894090993281977467389825284054492256433872544428096240040068726022567400997763656214229055191035923407108630241992379571005930489019009584904493127048228275709167994688912273151571333144899071180788932780416341048755652689321007724700159464374821869695534602586167734960916245229752909737816905727509096656849876283826245789388362322667094694162925475025031078613599481681166421773159145347507163973864874373902730349666398950155492153550180598161502621073334322192797385445263810376403689619912849157926096694976244618560140333721340619273962696626637902227143675748936221715882943777370548233361738378122105156226259510265763407889720953635802240765821949178775796848583514358769125810592002380180629406626451798586998409056907170220622584752555498971396247292537428510594514710241268377228672056711747584573254782686509588802082115312693256654985959880898138318021652327141316401082279261940107263585844722838416408604906794758702450236409328451927087197582682269610606084997364352113958831415498095814434542372456343405589705954736649316124177157962386176273585706862238932904443226038838997799096119994820003017863570839400543519781560827497879156278869758904909473927339660028401114274274144395061711658626052356010956428530016041852111901589709449535170820515872419399665956229887404763570030605377494653543661019395601064704349527345673064362463523315290203625816055252524065830772814897132274836980351595417054141091001895691508166644851611133813637870832062263040617314136466740486606803556277061028700623317091404998192387162307995518849622355218460983121593284704528243467974211591615425332941322922330223546051168374510071064345390411170953849170451417187154324014778883483020131731782039380206714053614910887468311083815764083068832955903418463346682033307591785343309041933226027525439235462488647157409498718352592518521673685352188505963523727822130419516789703389956057877097173510246403993079070752688526763869829047610059617947927672163093488928746903411753568314192694097740924840373951304194003931605521509053725370184987653501269840246535924238338199228147980976387010240741568621065604936953692200773983180284799535461482969231423603293844277394889782552455110253645168369300534785299413798104338661147598745502663511735565878845368264906773793899175573610528940756817186989462174797713293741000367389550071724234865115968199291805801105128669171035352788450839594602862861084596025231305271420757935322807374699545400069558361676968516930212845636267498035423493567042005757782541692256518440475463597001947447748923518804657840086661334659607125411926732784728282445453235264527054332249615316367127212719142664961220443681327002365987248092156379551323595001690515492195433041683580019386167885178888383877137614811024314732384422958748374943122432986168256864407347656934619052675169315642327587894153432119151350358187647067532418043015117103183892852302095637582785388443660970609020592214283624851371546392130809439926116203497098267330714227704112647298525698768265310529364560501991602742729867207718534262345916699516059357746787748219798587320620425031287923035975038997882981968721211243183834209184921084663251546167500604908075599927187676793710083861247433638227034056639093844865489790730976282683332136414676890788322218591003573888849568200771549198194269300014266738683133762695303683236814100153462996327292889505126992198122612986248713202434875196318926937784955272322392464545540290646521370699500581116888563555622721617247098856504027138310295894319932735995638221184315927279906023720563423135658360345222103802435608166915923311188778649596977798871466640422977852962430988422393100415453265853072618711057825745663951709304867391610466802502588367871338773740507532710134750285064971271558463518874858364066519745611167376536883764978173762633947935883503935570934593395271544090261279961255068854136501685662830715769131281174276071957313347651905597763550003839013222132629785944875412303251571388116317532861989626533402276018550935116398659098099527603188081547120346590882289156414903407665199624788573253836057556896320026956350327597087048476590663852126383262571232608134418450314485029826830724894239022390302853816098668546009807264040149578217231904619422386632479979573974769796087100987699052127123711064117870359134271942540416143223267602863925511618987990198190495330219731404373326171624659786252668797911582789551610330767455142444543429762716968906606358000237659190653869051169920945305394273352420783960086618791532706297218586384965954902152274990688224822581132832017932220948779652111129205809579897599237670235768005667400372585278343752990802084745481455134840148235782954337548230318623832099589631177488379904444015576682974112078677741198994010277095895828972137665132084737678860215221257725793798260817247479955794077806823157774281856247395721158643585647534424369789003774112004590825228616707790535084947787983906975928105430864267069232793830441871919625815657335642038772360539695496511914986033992519115297227644142656273103687406698989929354230210621211826262635890555000738525357472879314093586527830560954473427624012903265628718902932686043579205456800023925232462756297099463633524547536352537288400833228541607528521138654634850337645156477614359332086506139234316093073171099822467138193871695572798170578464279895818572080007595696007261603257618700617464115679908277602678514374832990791877993034988488323396011249417200848234676328032067869398860787766586579421015549724290984553709515878773582401662368313884803943013699712705677289850940318710502991639440980270921889873353605283840685122126272499096753615001704742093134336497460940348551991177716875593033913574166210003327718367168745130231973532321058013175702826130747827336975614506467399158200249975683969438634039054711630069559146297196609355420961343183219432020492355785494179821397494760515039283729943402875557778756100991669123474599686724647956382132028613314035436608118500426762928974401749979523072897215612255484309965511679898368972695883524791652305760677940251121385498851769183788468139993794665668385311965113149682458876129629175107205666915555554566874254188756040837432758340286408708722068087665461124773263045572230942324520723148078710217789448560651748446021077975174260511712100215446102525144021111085268548958845443399612846637474305473924822658292721959059192224143061933031440805613952203976065740886054788278159346210461165113492068172370387536691595193278360944312552253799743607809923140259563641608224765467810179523034105762612415861422492346471256967031568630112058682768434664484975066314660222511050143518575396247400845456307477410060141609479313978471931097092954855531781682212750952638439801246104720049858722170993212670260139720607615070684269688235667446266243502075707750068679567588852612412387383895462666903747226255264005132891726162117646609427200836562790693537175388285208641776968716904064813003339704099201782933365735384969775246236569526154914477888175312075749543355632395874650149453446763134566233325541887589059898893591074504412012660214733555935060066075403401924906884733632134130791444341595727718839517277628310749757971599064108126048413694234100157708732840724898019306453916889457683155898822649976413739347362278155768647874798307327633447674670777520330521334747932532576503651622566067724745568125575330583858758298356246461119057902397799749977197724008868583852521025354976401723064647203698109726440055731849468258657929529477957141363323376557846603648498448196592301198217103163146688284456311390299651666599419317479579955674703812996447455873950394540865234421289354256760316345339639224379488946138345773560001786620782954381632374614607980040346719115404825960972020719641877350150619102286611581176750518325347009333099108126890959144354058889032137021253876785635449891284056505777392672087989839756965583152781314374316615378360184296914516575181354363661618290790891783167899665563819713386563976313702416089656904306832708455536415924057847433161096226187386176570287310426708537861406437424843175006220672996512672497925565116521785295034865793164598460746038954679938206604400193501051086908020928422899520477052256273843430346886712733318760729512729760033201166085243325544288363828049557017001900709021306674282464513929703966856331970170025819208978586060474992491439919821625260885402363046604171243999842775980527879084617349687819487964984998147020937335703344065891847132942522824572692880559650298397382662183279798455505095967980977562297680530359932626393356117952738523584413809804126909295096691540470645999528897396075116845716936219344262892315746380497064092159612436619090799565163772586591482758072747737289517200716490025423677390072533845103445682532986720809225184861793098575866225299365043039613449790929134416839158194053851140840031579168991349951554336985197229507949204067386576526168504456122647787268979459737244047738423863776164022550552985023418257642832286616285895163232944312574707007621396125465384541913592532455296398780106864945606792515122630564730841351224977015166043156895260034846876331665973809309049289944412177473578091593870777857156845232405054406642500842532054551178120538275510600380275698657723583200772768342057993973090860895081813275901028779431070944524377340333804337521568652486124635140827156310207317604745471793775550191502670948871196902502752675488246506961658647613897828937629896932252895020704194075183534202506784777398737471454958348428241693079220896057963642067994071216161077346684046254574391515797282368391424244353976107751112946075065391398533281126251102641309390790937790621348046587304302219197948472031824654631738836550000513462286972453814866193087667308997222269022667234841275022572793354841047117604880662184109666952860216438005662011043133131756056068112331074333934526240021846610259180825375865201496227934570480397604836289843563245174120441464836118759725877543695932602812440270408153503116728195673739880880524061662912004860750427498888824542877474228564882464826345703063438834288506189282950189196906552277053928430759085117557633568108800053879483572830388784272336856648660508806892274500286450083902929772803937449052479888194794270941516156843836328044993214598128356585258356736529316751707028531396141825085982134759545050411967782407442579155694435699778120436592594096058134104201631255007556868674651371901874800360523315596772888454999262463076262027553451637756945725787675621069043197828506793123254404505090853960389499640564149709172054335696207260029763057465826938465720555985586349340284912820360631466186942459242156281698131770848665906988794149134183701386535231171678713908089821844917135252511366799126243509272857209783961560214066750352936062648155966957679889561013266413957603136973694711941223190457570966493295766850841003790677651003433442748809558665044559447363482087414226311232653898500776268128432375549688051505708248624713740192797549856187398227109001223216039674274395728559727610987088888114670106488601151056461274969932812751338652891539312986375457289999260140494527932567398004851229048843682454486895345449980080498470298149443113796997764869822386673507927236478909804967198720779795439398801000865805091700635640122492836699323783682273090539580611342840830694101390427176080954080895419072026830565770135018971142731980254424870416764188528951880225157351872399280361277233492814224152228266221404383366064125646879324668221007318321316919717829738702150737839956254201115700313515885046603425622765744609971720917547678469226266194550952766865409489987795893202790940587539744834183089967413933841729111427828296788695072639017654094014304702169880627814347415092382034240736067009836106697125983066154253839281540631952043204791988491302955679573675893428767838587128764845448706690671416274416393768284793801896415076515304091095184288711333221912100865413076478562148519880898305759365575792248948575634196851441057336573104495874253296898729793230632878919627173418440291586245551435986805778815728318194910117933576622944224419919216545104383452885433913387275192020438453380635490382850466354977551332876107725905279321461082935499827942656414930170617816099231930619581381727612822276489201893273013812287823004243192985544509681152835477499955108285465872295456154260862700332118342764723572758078593719322632637441788896367169771175276436882255891409296093610789938665089827041134087247890225139065182098117037074386883218476427974386391073235801017133755481414000894151855073060201561385835533349780139622050097605162257997049782856057104994612677705443384132807854556929855149178737203188796374851217641699813041493314154030829166465969461693815864026214639567553767131768134862003341057469919042872099663307591848612952581641988366218996343462201593010745845553065839722793766362382687134597000035335623319407282097833710795144476497193234669382173612448087050073719190506811037717002202687989269879781010660236239985243438835497291184619328736400697740133686592109788584950164870069812714148097775779932498508347890691377486100565710316213924473823346120066729835255741376535104515362102477579187732857948445615003942581957119010381779569097995652223960990018173864615108831868438023060888034105094082649508738005940751610595908710903501909403309833526047818238362480213969901765552448401964648998101396356915257016599429182049278502998142747250673129049986420559289158539844455838659660620613347879242585320914412053376342458971003358140023649218817839014048442201083968094616073453759464282740864432818554454929047356414247038365393550325522554323199653679720989839136290545564024851898071722967900122907549072217309292572533519743866189381175845244474673207749511977333676596417972877535639145212590614191494167914035820374382016485266567457351574723490824897622487229512265668334723276805282014489676763708640486728560667345735260345800552478459808278150079121892789550734924498295668605794928665987974753453657717213488023736002365167443524885444964735387663696299859170403815299246271000132041077236761490652058977881110491985344662664915391813312989954086323744487283315434174299126042319240027453974795154990235719944334753801489188565594137893554521946864593386767042690129742435423540992319039403493355400448897280227397731808979904318838412735631110948406601273707877634569903175021228495343354797075661865768064743729938419172533432450546821061892726581348808071018783577180132206430545370962900353505598786201428881666136563333209317091906007407311453963469530801394735701446822583886594791076748283238356354302907769783660545480299837810017361626318988257479974541261981124139942278729746420199681571070468631181041256315520170998368369176595675083333053043913026524330053392925770091801779247525124671748617005526316522360508195780778942399919131528822926749322753811535428440261725081618374536622201991854974858424046673089058638146043716858256691849482904708392815238611221202273067419312927568680752487512979109605272031408705892487307497093890461835440744059245293867517045817565781502195104683494351219286036896727075626392980695871308404866984383832978703019394486261726944056801116174107608492324727782375934462253302843444617331673250309929397503611791070557156076577989619593990457332577570359531737625317051692380276083746598291471499161037649301254171120800866975227406533785964300212465634675391320435918049197438805610678575124639131275085904104049095770786528130781074256498754579032743271755809116001529113828630873611529754580543225953880845440656502462490808572617679528254401487290243097901501366982961227553611818395602747084169870486294792833320165302062406324652521929168865137727742912059246012640176548287714389526756683311429749433253419705557673402242433992725221867272896592025698745076969544198616010528679540882861445513011909927001032865652075385845508558524418207357699392731365583729852279123359574539378705662754191089246955437290355970558312543900404444252615554038505327607956058356439084172764006373459081692013989791352575823117101948921176320425986201390291788337260021083327079465661349465995748587651426796634044874593473772026952251438255948224303296300403221936974498526909447378454327085065936927831297075279924834585353455515170045080936796649257066344945755830588497904756773332712539895161277067277758950297864418953072839153383602371252433525063158353843830697888723302140884308508269223100551485705860519155048433857911841888399996276409360791638805829605965003147012958626108676141828551925073227434444740732974999642001453064410590825372050492878067249488053590328180452527150182066087772939570077173741550416815498154692350314945457267925746053075883583433582777635729767129533975080736523946957839355338178724218624852019788868251191646621406662534865921018676930744644136391857482837482289698614876173089933864761229874390209858583574604374558011986614193275788153953405986711024381008307134805660010346256471280058300471771350581244648898453939279291412415051550740569333461972905117334703269343079247536412400484457681658995971985458863398841543754212877385760401669224244546753662568384103902302165832055368335548499573367882523380636979358323298492960305560694957672649304710453284486508651479481536798964964640046080842626218914417437361297288916702472012271452147987845469700265721769797536625946582292561635820370089392423828587774430098885890132236070215171618280908958332270489246016370946418019624367515874869072873997947552670578778412772229317878803720067492204847379530120160067792813072838644970385174999152954330135796403368857667326431783742566679180600443796102767627280187405065939346946892108415122208044743058347668365705330444120871792109161067103728339080133728410413254602667782370210584022995187441097135130655061436592023902283418056436254389811288490005494499309750869939615554888291292299933990762513009885619718014775608933683764235406769079407682848961017320947772985137140846994058257383976525500598765183324085970968670180731622306033163495093716037237986967192212482112547169944083727188070055738408447987684632950311002204324666096156058559337157614748775684486914826441390101779816682326234202082549150811576458225625415551492778588063405686468061774656309601029873714803221405875906716010370253643124463875419130801885365947320084978376111598002488593069525198456890919994892976430059136127571470748912515580124196417562303121460883367115510103674824100994146327067075941836968162348272860664603863961966051280249198808511287521099189353704947557656564884689326698315134656233085422277972922510089685245616097064368089630587709946847402463833206877419922406169393192298806776231983009516124315019743463786587251819953453508714551860301560548906823860907083620152083732389733659357247123940347235202213702096749104373070706669297382317115069688412108099571802407763574332836177028872960086230742893256249261809424142833977268480542317686684130828448109206732160107287447886870321379348260312470415215002817362018817775883502491174680191012449702619980437926592668866521561203736140564538963390397460076201468091017724271835998398602785302682448828409769563488179216468990963062234116264082598251232625692757787013369358662767122217232247036692007584804695624425020555365163072899855048726796365864376046125814573088947424600105551874085111356335707372894136634278359255108549292563312819948360429719376147654691396832678149079186455769219274348038208944583851508206883238692793978899332519835471174725129081949500055883794591232036031441639634373049046115288116725532166717251891492583853892692886389237064985328585277156301708365987868594749074979622336621393095471255865331032664270660276781338763108312653828053360540151118141641221475707342033390880379225130578036139639917860705369647392003995117572289146558872352988595038187997321362239012281299563481716585095074298816536187415177817671175249931915290811446439186501719635041792549863987748071114867129221526259417444556646198800611747683042894198145321517039479194771235836664891185603395770813508733420860959097486530520985838354691815356258977014699687400988386953470123424270670195546344755544083037842341589861137278389419398704064562711578722658204171502856153157432512886028128274586205263791736142628703129689143960762452372623281299192384349408361626590083281089880989182149311238092870721359625531169646232655523543649729167244798206729196020220302516082924344575899042307715917574085230828391121096068417751137629212535882286766860032070913466105128301188523039462455227423586016213592811605677940701430768221109503320224743425960741940585473643184544644662799557108516550403739162613589107263976871962902798725476107205624321465749093630496182066396043950393919592790102708954263403021261353426489951039705907187136221923475496341988759628463927717336763178043498426949190989817415389267578169352288818696434855030473148441525113180001942577530912050666483711906479220541371815312459173799985124025267583010149693413655002569740813123509616347039677314641863881320969059695242558575975718368991827065749187586298352556526217556013734904701542718059548161352962531778295263888057135336936810086384738389551847598479075052929908420067537451564146823681642109866941013925796378133555794463922959834283856035107827694924450320282810213936825616157472500150280945457024987898289343331026461299975298498037051380256577089934787853702818531183757452831469857943195901352813784207440570182615807500145831168669526964152627417395684504044730861164025484140157924171084559838560011106195636195151899632922746871597580775741254717435296422842050025770274530669414755088558678946844234744902909096635194891291330481169787950692592538187380278058607779508619677609916137265585250010004387128197286425156856190723854129084986295865422068868588008905322504773026871533015272884470073665626098415091635259158077191973661903529839194611270941556102835115595536725970017692419191233211101927084326924850470695962188393996423209437256727680150051603427766936748450051686449436172428002774544427615617651211749538964421481419615336189580344982409407641741006018992152937769015769710252269410629602834164785377273904642085502032682103200033291230548148981388285574150493654962361828634861703685866314433856416880035336967471864025398304405682578537664289297078245128105994122796976262727697924158312700196901252020071451057328514782522605875873971998326203254981203901111639067849216952455745607118782040023838409964261013386237213266424757759280794469269171838058490675926922053307326870471942516231220692039755757649012705353884538113972487556233991837549621474548055066131298757608472804130770353580082070798793803699269045220604196504701680841777623397810904006901308445431760119826428387070108903587827731840297918975851001011749512146885233528379405197991448360814435025725851811884619605558419475442956715204622308808087835639294155334113870020858769306051983934695846307095681974938835614538829550450673481574373289330096641907435832142513342551667126429681688901959171599373482554230588063397759055233307095686287553099448532399405816562003940130769309860061321163599972485595554062404102894601593398340780579886371705391934929153471353642073914790652410738328936898696411082394789995877529969969366586081183734728312299104126597256130190978944001756079712331921008368816588104117015004786889274725673665515734841567021807688775169384212373674655461337005049090946480953217823062554879969039204091488755070530850190524506894141038421065356815542209217788850461889851075523939061198648953285030297691817014716106607068437976926348002175072517753173247480016663306533724699983481349921177528483023126145287978646967878241696423799500540033485440896080325623228803891480003081204410703694980314762685797550520754820285427886364060901992701436952057112770041424542663432340940238174404445541370389081853622567881372868683148394272185867558623260383245076990920540563969271308858840850575042010656866621395554920432604111275402870826966648626551775518643677381443820040498514046976937760397470590043799529039103541435629560353600417495821305899051866318171345491943848419006254519788905673317878138918068418727000870933455393792133277392018081134091214314547653065282121033531855478919874986896568292871763925395860241914437135159503295183358084244642664501496171960615152977082368027053079489524005306740362661610054136190428427538293165123051528526514715517466062579932647706153824249246362395343097152919819992771439212826327092683351792325681647586108344550840352604085603356634245506484936233088834179825759968944524894796202799218318655750204719565101485729603400093134515945062440864353891185255265728505260146904167391015204604761584537687109205927848133434030445271306275486866209485750469282775689927918377603140583122013167563901394089610359268632635738046966219852947212600034061322433593580965306670027269826716398371911864276294293828350535014562931999879679353543819305691932626660566044684481308104693407092872290011753361128719598565081231192609596569826584686730680506667560063870456112343612883078143251754000123145175360648510758257776258866522842094084427411916075571299767773826485034940741094442178738545457840065683869598526059849438706010149334191672303319355241210048021846174156698269399976600825750538736059109971411951615067200122732766109362522320374254071553981936103776984565333984963157067506944661709560477205297645023056320271528746286260994465185454044820971886505572472377285870806580233974325629873649895983219836050716558325461867104907976375888621519126963397165738542278673687904298858342720362507423219856370524659202374487392898614684897094749280871341254792732484819974073096423807908427417063956438083445870069429375967093348749732259435764111269409032609891820180563719810354865097718398661241190867422613785431335513126813401677716155077278379029165139101004692027091539294594987249112539851675225016533472214780991316986567379114184225684673617376858816455315183229530863728729663577000621722053109870881218914738445388897795757142164759168557201975669252357493222708709292735511757197179314778953225433174170525554622931435579277937414233577106338203821711463993364367078752557423141314583517608345925178793509174500951593786614616034092464914331413108304065426775530835286286240729739723623483057492559489599778441903954021484305076705318616601440162409458036124380617650218375189671947931265124828466502498634455008282562333319107905656177694506417763122745978969058146177348715474538918691383301361686752977554931243743948616111720057101800133365518712550697351099040146829273681279696559586009588557221812237485092238292551801200721922301871939287509171341834036969587054374426790933640787838199461486014186900880656426405232015819151923129470575198659269043843208407113902458308294408070739330309281941644643898562776069288276570842745766286777146454269631098211995836396155206593689828356901118831408666957610765348598669867427576442946586813185034455873398238561445882102742885973060769816338178504263899645322051270146105253250828491710973214433120175022487254512368613777688998174746745172728439435721244860028142572837913680330915075885523305395370868123570132499368349091819131875684836546181570792980968795201283348314308268609271264337795466099673762316322289880653695959655372238113847873377421993661488675352324858441231270403596745650555943718993253615057392741704449296713460193500513307216793101434211964688620051099889166071990769239519263992268600888566677235170936520818951368043268862521847464552996312315503789936064783337419966832872236273013125464314864477869695049738160067636950061196105041585662525681058384070577582192226507539312879789393687749984716297730512325257934664725724000341858590049608200944780852978053136316028561077186178465439740689906154571901858852946518338919007181457285459686907361904000136410789456075116908003240057409263427514999552903072072583439519872453112181130394845357016652839255983073903594366503003059009257999936065331110677409980758320486047826124886217866801545477937312856841551310290340479105498443700161729345957887178395071300002541653158848383919705535887626124049758241000539796843942525014814253359836932266590805136211134262949775593722979095274712107486195306578240038061308978677295903161230649423416895976487810588732899557409024837022932911880931963525001915484522203791941968535021326889377173052805037802401239567789702056255133415684402840454684513067789618447545118343672444578242765628537099965891377569773170203936862087936780220617993184861919117982913312491220649548813666785416928268434675244019694343011009377635340203742617835659850800248431509287883942161067478801884494777429462268529960229092941416908686238202341486835433688196849326042941945386918018694834439287688894699031226073858559824701373644698594430210419064044499390926980677093828645127818290932894808926304158588249897403896654200806353016916737148771663703798141549793874625850901281941912933158421934208288347428104958116491709303746509122949692733075123266565167554790509621945622550821947005453930286465995768525721217716697322553209907720881138723908067697836982683076185934686552886588476357364638454773549879273974635148143832993383834356836561047438141165397391425605974292006679130436559992830947483918878593447379217607587967529212555722748382046321213310069734866969883128153856516199038677575729377057026540209147306842783514725755200868136785824466421251559029012184571899858506107358779483165799250172302208970900921790088340857028207294428780612215206824214363938151467254693282002751627283892554043711185904915393832271121112583569881691472077156289885838957642980141769900370617590622589672859099719661311332613480737848554208938324443013941665685369492915939054532402102564134837580731220498975679303323314437652868764395296826446038642841321573924256407444810903705193503455117626029512610591815485694205831259369324232525959085763643689901735972464953150617112369882078605291208341950477888102932775308961638113248456475938240404032351132236923765739846017119998859535960155141960832273984399875495045125531294374977337722234958746197776918783963252078877117129542642007188485202580595668175873743764271091607496660412858576078596235694560584034292017452452503056360285721316334265462119644635423893730811860789512455973988768438024876493239700281785344026942594922287721544449700829384742249032577749055782659335653917556284274630942503947828498700058616974968492987020832023741607542103072316221798678568973117733050064800289706041782387380262569964557473011120718037465559584469343875110663104923998368919485903992447531341193273958885050218362514544667329962758685175377751811476892139797893053042682363528370150978471845894792618312228966055932543335693460239639787082564357399062017431228271071411498074141181214533865180417252287925735374435372350765830252964875362045982204391216694073003422967172551134350415317480597751950830035434393036941482582476271174708136452128326432476989128155212608349666862989064946299435768181003022953266075149207800826518896355049068941775060655946550657594266017066481550509033406937181798842487364579689851830614274942717103401543358250053138602912774452294473594989876217448044582966706770723352716536112676041478363463386806378324455995050793618431837757274265852369576407555198403064600725305218354220952271336829470928707760773656034826477383926555880168350656997695240239974489401100498312303401568868955675473196999875345689084129968484301003165182813264334590508508949780645318135675448449022283669337876727614517695352040601525611903799754577474899186712913317960653493371742155908059685545961320233317153778067616436548394831815885841554155050210728939849918580032836425695285641467967097895836772333963878682437401830795601276544494244197539287303172294374601165283880057600736067989477032637631390400005125091858116787107807754204795522906403121917567310131897318106675369746852178771001445744498985835314599813129286131895641384851038855318861953764821764410715525996550377307479559823053248679298297565153613526694793310372117822701837209637241782198725937122358770887428473629090607350871099366329629007184236790927241269505714484380396471344276804037829953529863391760216145030055635899187628590554314917034474883271787380526044663330076043796043413971759797047746600351273210052137767231322621413160728019123189112934625320335399387912044909910533887805914582965472541449528625418621958067368944288752251281535030567155633452422678783966029072401354740358560047852104022318042969244284259257782121329716879147131436582901713385312570371841741853324120680101187953927469754860763190720778037373356616044605472212416931966392432374900092505635444336266811047741977696467927209990332468004494830567115276888278240852348101957187565202443674605271444781957269034571711282819177343678496257319622386639285643772779387445806594998653979658062259383515004762526763351322134424587151258392709792931913409607627893125805586400877722809400412159440109503816559223940355670396605710829293335997096703848633978416309411971397952635533851434210481242444807577341074333515091249909502017586885357121524599556319573209689417517523491580193262545322140929078136758878232079536730408516309634736279883219560253977567200868369383850143607735137160826545609036467931786011587943779348177993679401782640690327428643870959988146207605023446951430282168444061192011917195342155587826609473991222581916550082494640836675413992873354434785420108945615111708050413417943512180377471269689235457920743427172200620152652954290084052448135299710614065635524867546456597014192362607904241777474934464779274048520463795849781398548601433807528476686307312496771783765335110300771932788637495412871541288047643498612807599072208746703562006336488620852813336150138480324192999170814175282167304212168884944727401561956568695666410920977833373109074020865557496712356938180455921498689769619888328544056852224240825835107175349822879315641879204173587420052389062900262765296729920917090404316500163074418482887941703440517561342096272075095936587075795908226794863059443148293163368150121931561636468908849733145216616062419085973365089177808758956379817862535703155458035509498340038902353513379632797208991005532771586044665152443017065078871232111685050953693316747379242721886135307171055274640999845356110489122909304600820150214376602721701794500968469834158029340806836819919651486012418992852028675252645535498061400151623809955049992191712035217781405727589552339069750033739107763717516561517767001510190768626086015643154406793412474072903115184178441410251829016922228603879909803459697626962591260442872650911795413728654009064903431698599769255332503877599531014671969930182811679394719657973079046450878266964229608074159370228725633284078722990577789697870660976192973560906787784389474759402036064474735363041641127014773790122778900826866307250131620024600657244339404600924174725376110767195524974039532137553482664097442518963523165980814012508149721799687996949851435118166597850900988431893658376832323017204932805328354162043567902699840653191350606699536898656154029510002329639934962200079220163208855245508970903634251208975661773803016051479175483610113858750426538329808683917181748390123351005463376944377004427165450705245932599728592752031138227440381371270925752001425500857290056969522957640023751247386739692337673934911045806022269873595702355095529739658700599329074996691904548664083354953152896139175968775811121949764422332088179921768471353215783036115457986966156459523527412815664009711107219367742357198547183856089991387870115861014662975330533042605057915258120691301296121009398069882947906430488241066753125510180034912778452954187292746739993784442715053364844711804251347086196955690187343563374952602301746136934702689309144883224967622659286179872602580996422345136095333359614931004442786140253248971120910960099349760543989016047833083016685680998607587386485867894599881731170242557921909034175847362252920596807960638142531071134000924019145263259271868614073030285691307906048770835991418905989163710316858787331771030313229995055626652516348412455828530447296824208057994639274871604496614307160121051301545477255403441606350343480598336133451515426489833450079019466139815992232432836962202104819384023166408452400210046425841402337379284884172487717820339622748637912970176174948605327156167146628963354016000576809272704901585574065497637705203719499620476197033330370932904472078223342962752267398862865117795772470612099415868310559476175876070606071375730466378933607953285223042290674404150229127781510267367411694121802758526699660310858513006581641279302691768386051580713142638491638820828691894796417179274182420395437787744278712857648863673978165871990885612188606811182179832377161711046586513128169040520332117860912050849342087880606146044489431793838798349859226886902617281720252482530579598384908017403889419575155665432816674898998879496386441901025251378015387230435805999611711884067717782834248775093104246174734764203636164658730067273029186911280393164026328228116229998514908634607140876387757883066185934092830486585131709843450512290753230517225427031816635655541653599765993677256465845763221809194054982242001370255232425061789852853924620532239599423239600230998551427805422597892091263522429822283973008757345897605391867933009979474220317072472683367216421297352400485776658738362384472498220522708357743672866246944552039517347758941556500666117771367750765904530912833645945325733374008831324290863325389562712628622643258446893957372653053338535509569743473582541525476986472506919161697076377244218693871334553866386145334237295469712151177205427890485544885740448805020814051992737550983840710447254903445042471943725357961679450774769883543884988473996926134110181361171365780762028273627614134680177607986812962092582827520664287612964269033138400365049618735660718516105689198993918014995755893172555434438197382857775585002039017163252400369848632009546634989698097931755112783307502290403024941729913834408622542447588206618807002211568458911807353099557771517490475290741444902318661974450568384788160398058728793052268737513099639735286215611272223388486252016078359687609878580785561621314858748275467160443273570260572190594761545112783015339883967231686817318099795115492459822806968466584284401135664987243433176414893174094479756772073391713710984646634824377126454831057821583978543227233358441045226686084796979389599114642725715583105532843623100845036525160288125350308054346003901686955683218282175887743704731997770056539612134323794985653205583618633809092555782350577774453522519524276372432267286433028600503161817706204388889786319596561272320651571975489598011290626261028756564096196599613683237367130306782079112219553287769291863576993274210000530558175999286684681271674592684942010646354458093372363994008669296500688935044508813685220524899322441088908622291877221646229595557514917526745014822965456009028952716541589585511266610446331567928855114541474853110822362727151724681410524127866036020583401248076815847574351790197314868331375788480649227366915729971492488776606069121580220727200187247704264668370163562702471441962113737869648227978424306136539160674434797196960147738211645375544292108223464482302599912685680973853984698529004790559492489199880084195876320952980604991441523604600246092626838760978857086886741219491336514008104883135903892700099566315709797221960819132884447409405826942223179350031693681742633902589621535114855731600004605628815291642577814143564298331372634819703162282973014316097880517340410913133519940700306872392282875925958612267790161313987011468391348464158871831704390444822625310701531542631074860434864887583716528518162200767434425637886889246541362763644417637137484363449471382108129932589384143804281246080017273907957519981935372426919846724770008231594197534279223646093295980543828239922067349193151249239190207378229622993225736300074223564054669450999535387697676702708486120735756058476072273398605552456433450930979376214568873081121748020365167904455936789464416060919019898144372983460681074990945749208272937394863492364727139286213231461689597889572851579282254480655847675251637617611377093297995665982450779258656171691265638064915186160368114963945188529481479960214640599568837573015555686337630148033952374707940216098462740141642515923736144843391434754068545594977681561762019745725732522354285515264042567437177518152150916849325612803642104520572648668761133207966597923288535027124746175661745776356187467586248055915500536612653554161954787280961163295853499344148511763804153840326697202567545391274273091765396500781738470813693954308780326899172973089229314760997745849220827758593353732109241551313254568591494261694487016683489997842817059541644714740510611872676109353369916914474920825346890566472455619048595977749660135030234488922871140058747254994596669628310852999044365367890735295673045577860697161193682300813487982495584682719421189567814965240767425586040085009438412295114346010669363633014562367855139981055493422913523036977991931334358517314823121716974114693004105580746518145816240397659685635742945365805370446582748830465197752915658831569321007024911789809342668681670149364680266234947966551786459691525339791240110757725222527736551504802149849250756592395080088263655709461551326018766243097410312949939758516648576703649193433048426848309852059081420105895737911875665047803413452307628881026909852325711820361434658191436316209964076016684186113969649165913476094924614579264024436042059736570910027499801465617980670257247535175375194873138802484368910601880876980190862631172706782194126258658769876974057779712222513001431172087901697415935024071430158295475125090351964205497192961996428044770106401428875829737494126164937285932077542596195398817407481453909689039538692939047137848155088255864989076298534488828499933942907533328502566249899731126209840684768346424571570524716746996381207361028097780661919258677381618933228300235197550513152782926240378678422161631503447393755569260713047815403630049825807812110861859699801614557431203441198281508054963059520453144402209904740599194641507658936628413708741620122869596719330588731782009091304938478572897945338114265721993840699256324024670551760754167382140029466877139695677341674162477227206933699595416285827953179986288128220747149474299287503397105178023103454036938117009672770057805166076792391850139545120038420926968773111546142947654897317170065333221840565851108444495044610668558878074348109238815866228459808344574452346380258872586725137723069370550038865312057454730467586771236141053143649321536982002777107006871421325905896712395347107703500230303874277982922537572479198795284552134855706221960100287902947071153457483214528843286968038118462483969148879135810851235137063071196930562681830638129619289216293112806641437678812979192954650422122796518767049169844626341976094292216803868242202858137976685449741142830904767295253788733886913856304277750626301616508925525852420370982689511986782153426040994108949091991839143901752666306122381002504807639094195202030117616347855675582556602450449795439516189791548641286502661444104903777980983549950069876385305305924731878344207728013449197514057796652963743488952167488806638714711352389796411540639887684689702590044760948156258555772552864751453377770671951328720672059948995432722536512131408815234827662868012492359583960562853582917708616130464511822404095896465099306206382773714182881191415469179277603399149845070499213211568554127399560149228803087168905733737786644305636579242993936152394341399554026890752101640781717499970507586421836966344279148573314290849522045621646468308861078216098138052310127671979560842108681302159637606450472502339329476879895681250390052250310152283810982677169189097865635791598341039654498014639457776718487325865487723455633954727303076114443741573072589804724222462381482028920075545489847764658551205480549882446521244541432257410995019612839748152633594803226753732796577567123075407854706880458753397788668598376009381652412997124629541540490803867302899881873795460397971884520017806128562646141292174039424295678483729734238287944627337590029267989276256546959469949701116478689724352328378811944845227145472496551575688414722100950649079426462894145223787494930446788423222245947286066752154657012409904456860487642465123239276698638928690472342388847487995508059524422695662323845380297880511615119026724620431213693662201543802059520827940186816595529335124536386599562471464908676369736079963505488808725937868378481446796884477909557900742318439750741394557680675786472117621358211345537478449960733986893388306893684965629243530654115042333798579727791095695827986234696057868695367380284559303274897173505487885443188747795041714233431084554418295232945049040473734518342146214362347595074560717274121457744394524556192809799744254271898452353516355465959491763784060177115537527170444214326140850367615843011171671987669844270009640519211038840012370772758783690731438832937132740525210162725757890105963907434736424250078009700597441722878576990605241232815701081185844499828461839209456623680942905914437230461632816378981723087022735560399454830142363083210082318995066961877349137158556173093252688526437139842892447102925046650562530551329124215963316987365171507918265044172786475633073263818561480631064695872236498502873611711227330840203438626393381909357513610177663329762650088054991294589584907598246458685176636586703083579484986405579123784150785273578464023756468057576816477084846380841014142362137529261960770787198715203467056040260747046775240746583213531049357824692759936056322060215070870642749794801082113591289923881131630748071494640686982912844230867241795397299413431939953189218779320402388939233939314590126015438249734665073570998385568271063063767868852398665464354817532511779680907337011840379881376879432236781069105293911963084381873737052924707094624525728155558447872257842638574903384715689983716494941356285447731845240635245797957666592986521528500599434056505792304223829317318344221168107876699742276628683257729269780272535144988313689190549454362230633129675152461463058269360647374181893953668743040249156273598021801088503950700212108554289256745508832816836746919258505695660219761711000259026480378410741474195391254326309722343947206422348067511721868019221987599144305937934786430998198292607446098510485979213271005535573338846343739284215508875619234773280042719515285909934895529268089756337907477748777117160432731899458027965604092485582395890454243742329829000778483655522099059043206842857419671726305097406634672336996808571555534992890678257043322293255315988023047795247331962855932550963524743405416357704431087156439908055219085908111969230486790096639652227027716818632281547880930507940798840241697256104058215051565871142784692264147253660396773373183253619195381388701029677526893327045128318060241398247024536197857194225148981696947149277808707436924951167739925663701034135099136692940893224682332950548235654889981088241289875864274088874091335891975619308472542978055973758336600116272115143852895947763901345391994385525924912621284593507365782132701691062478713835912352798156279021865099017516362087178546888218611415005769206748533625472038623232401340028297797877447878237017132173513592037375466526595312277658573982479513981819373259245106581524809999037156237826466733254802414948819361587332317612648530534388498668194798145687772605499128898172537247122746752478628959468680265568393359796691431015950096485320455875959073763060314210887924724187310623014836406484384269025635816649293898837177671518576878825071395142241648444359219668927409495667959527231820542092971885714916773302477773053370702328607397776540955139061162400462154891700297863963683812311708197512153695658682640254082681675735576460025012287034606143383118267427726743962957553191777226620875283282126180228086971220740415052464427203841547536946047757288908972490876757967653147643788087710223181683042273759483337622227343510889714427177420066048632862288661875582774156988635502106048010061315505013609910157271236554892644346613666057978757869618291033466525734720050353153054790213059787423517815691361232212096920478115676728752441658279248393307171105636402909514591266589828768279191761909047486479686720574507661664834003736426458401809409918131810318006306230240260945714089224561430861576991300110391175595491363243516991560453589771800967931511811662051697302617760406686344243330258226108596158776843318454069104171769267426914735234071100661214907624696101711089189324577026651509162689118036409248811789606676398533667531655861095695742680272984328712784281708739905754209067867060583627056079660303124220513798138165005082087174537417126199774128573884144072909646186576755215295889222120237732831784228230824391993914462621959382408610621189228288196999460490283387246923983577776145529498470081733506261734237980591270478355355298244785713595780258210517540019996283743129249245387941783237013240757484272581922200000252581565801555501838853330588773421436628517275178748824649121261353008936966083017998497613414309442447702930987568901929925391985452010387331254123410021747033410314546690690299820949745559819355959590978311177266795483614611099449678650310585240372062726259546660728931882242583180818908042566053828775142202113468066549767558510649717775570145336774039825772997871120830874782712793674569314729930824154016944140995293461313522368644353568630951000254996899264189241869567725218256998430796248666319733827789045418129024370711721709107127592508453518704796397928533376655190322982339650029861642656510814499080511811456298101223426214969714778872720774740438111470052963069859285205665809511954329926436753441990987045992329588496404695499713460832693582025920712458779632176689528521974795220114846417130285571689576342146478205239004486071435060074091132038487371364722818496043436544053244781032835872549928968740000681380537566231229621198244265497238605562104973256794077776084450500146922836088131622235881425006514991301685245390867409716574705163325498647389353921808366457583006247982677757275622182138533784915125440597377914003644529613406856788852619586645590533383723175922596160247727590412891540038561612625659165685419967534154079955402874980799299801783323803132507298850515383563014117102958798664946566652593307524469970644562928485094112471966530912501906831053148520098521557756821763197549572155524715893109869024308558742503204047786903652415707800672436788740619297245530963153834774895993522485061712156491095555982784236245785123355592315129629148548868361476592426694963142419024998694871752945921686621692157227138428755826503932757268122126629614755927567259562009463741815479548431283331783599366483664065646393146739022187757401673498613424960516779496159580260346045145575812373791790824782029233018758148519626965648042776080007252628400658529257137272273004015198292069851843166653922778343825079444910511973675705017356490209781375171646179223999357697137206460812593938682819063481593685016923315572053852163553808078461952856126485403071319299777104870808111028023505079355377693377162139964840238534003697967754654428571513035499297268495247915319009598972929771842194836895800168559777129487515437835890289424333626442096977077860698244354378949532939833830935205761542202404412600607779218028589312769888055208281957044351908132589016494639154745764496201408790693184456730523586945468354537551559956053634728970272395080646821529395602146349637254217906978855434408256420452537250544536245423757845555777701988237996658725574487334999956855601264175834149962403215037630898103568918398283822711677808329436030021962124227455484367345065309426641746169124801243364123467922493124426875369403790113555922113025060970536956749871015104922290307840320644742932823336851234189816343015477698449839803782439315158918709276887809835360797655068925546597306073358730245544097427146594436697246980496963565226365165171698135532241578459292460754639335612124667191503350660346804089384458173706489708369371518748891107591021525602981922650650990628487633698873885405264245382984095719606139849062277424547297077196126964467396372219350821767750536209364322569041308216737120701003352275298701618059621475838402660273226551581095130445083590091530372336924627750397617875067593471806074797147137472170737077551518050464188222798083090722406755025086314300658312749150831899445260882616040520926633029113958835597160882488355661050672839798064797585893155849547647990486742215482478252011654238421285306460541467462960182609128296681848888094215034469494360748807386232195581730230764963849561720181416825284465744234620648800479703630411990958633730914518851546913288920405443100936092804633709336525267367180286219100669950122740835691964666923533152183023185030365334225568656670797348084932600254766676837330886076312683999965040590049080528915027965308790599641432871588747605004704531080195343128168919828948905530202084351887160457482067776061017373456481361689294783868212986920534845737914455822499918329025752335042193048117043461469819866820444595430769369807294455098570693634513215419076876080869280588855814049453872035008967868809551988746046239107676906813400335754693854744476753701449453426143441586054786766429346008757116560612108255850816578739233001093118594072300287767848333742893158964867712941774648062632424538619364537478828412203548892231919279476711125600858257263931595266968255189086909446825946887706762288762798857049759940258930119299584673115092812041684554684137995606692035401731410866816136838272271823472254568006584545776555974604871306093654219610474356965736150614726182891720894630060935962997892800131104066836681016261932031189256934748340588586370419910570503350874947281739159089185693959915250439224830197239777072581590242936924981820622342041166623893689104817351193564253392702021212723080142310341732967359550446958798803226733503710000587355181990991608247101463218520745861321673684468012425565482472852806117160679402680423493853478006624436356967456457759321093813441719966375836778210837077534569444531185031669177158063289137380514708549674296617936159363804252545712837251625731986800530232322205910730389766038102599033225775632500531271519962677003191113382927928616959326519997839202518473943630531602213231300919493206448166902714798060021020470510716875957310529263329314260751434865192499334530985834799753623666869323616019717542894027514883808240362051272718007002634297922413650744696182527828492145571681686184962767472889703114469995375846855543149615797389557657186020609516912026121448710921861119585055863922671229187235304248258696667985720451361994180506421860422125823674589685274501622344354291393499152227062955922700580511109292321051601159709730263392981945713169990865570908675433634202716379861998817768527860012366804873459719070123856557678638586109913272935889477856163435998386818757949640170010338998666666792557115628547957605397666207321262680018510428746790764387925172821756878421275425666992955032929288966568306775313277519409666130589053497002697883105985217848767184529512877410272561812995818565533846772763887000524173014229605753719174640152789369496215489386878410101958467971836418036825829380660158859605561730088563681947526870465378176681060461366324459507045838011146312323464400835046322751916309318013901543502982010104167493455189816121822231873965446570734014572285501478814040715118880005880386434407461462452583112028212487847328980535058088471532462330183966605879521867092039057520116016719020120570193732059895177317874048142662549168710508755596594373366090477238623893286124507335502997129508183711115156463720342302016900747168642971514341131297322834994871833787508952488356342220791161998280240717844878371646364745536073568380410837838038124544741713241164198318873676633003999234929513299662668355642364811582866223850555878878180228066767283214740074712814151331787859820522595808415812242622226600873777221902563090278234085399101264018215297738214267800335873740214661174151566125574181442604311659939931771783494052926328959489358245373464833758863620654913021964001059025862818718051674548875775657705501293958719856749760637259673522383737908059434642633045388085661573326614722010527810860275780612227492283051341515623482400072159695284505429906570954314665024995235681435878875224339630435005183955720679325561720866513887176418985696850679679184898152923187065195599411092247719584795055738808816333446986025860516095702843395546135992199070430578351923357114783798144983889298339870731537114185990177625517511209927916162373833504627662915843514883875088811222895242905878217366739415431823807799827521818133089971851460740249773118855535102819231660539991338357053376702447276506741312123998141500895097071290973985338813553178014003938022149030949845771081584062770146437163494621615962370933930116857495498920306201783445797336076068763581617002420684731010147383645471897412037106794108377116423539129314741932582530444320717560741648250949909953307949209093191601211961176114510183272807320027054757026152496067199430533726550640154120079203476135562094974911235670208137272313307749757430399723244082246695389579860027394522490091651105554359823866114015342124038220918550509338522764511682100075214489060626462925941819664981057398442053229727295048590157192670007665100668046791609619338606274037072652848741614575465677737149218173005065466340468691447048206220880216286520306461621463928776018704913899104257052833982726137097593303213727595597107385324060745038171379629597793816644552023631674459151138944850395834916778177246321502613734423796142988281546262194078787980067470301095963793311682873801059273479570134643362117382707505794094806768632187984901694129370090576326815181179987802086779755170720969591462673233504260462410450917495167547121228214715666687502360238899618506176515756497774394131820409920177475678277890081323616703763464870290944177548190883217120060777350705423881703619502992331317330854129166621045564344869517148785822072530087109651345787078301351607537559652929967779630879618980286883927672866117723433521598123979659734817804255896311423605799517414476435114462318604596480027424947798530538411359280580524755566471158434313079709538248723618559608739715018602582031192336554650579881816834737837782469704581111767615812649846403436305992348150502296600967513711538482198621581111695600638556760543311163981491914564911035964591606034028648353759635698926623748703872203869301995427089196621363794120734376161499454607014684055313526651606618516197360454870439754166574586549998791487932191801825933589433401027722823052850607728804851029580551627514349620615528385962538649120880248427146585560493592455387423270222620370660047645450949616576856263520261811024802562927728233259383849345091894580615796945699529543321204429972256974420849024633799214585247850688343715404886598881969143444718318870787090310090859037656038807257833621469295679233563736467711188626805153892477422613223908868509798499347224058412063741424028376502142998073395893938233405427597531395281889348429197676662868646525253976436313431144631027301877550914858777218474193317260704695713239225790392784524803959271705712411009218649737850189101143020791956781729407367964274531093843612602787801583505570764281857779982887609170096827812674488292965868780831989263446123890918127396581353941472282677840480526773682257995653926072199391097637501509049899736298068013979927670897303351906211760782181867083989540747732240952229111687452786327474544080421637325494377442973907165523973722017120541099787938071707757340853393266415085542261299459532517273679222675723056162082900033327002173280159608940778813008472600503990496365153754353120359078685428397023693305912888553830237302286118271195906142390008321905631391364314016465266120589418867000773551468375781603500415847237214546373937640387117886991010962245288675964574326343526880193125807090078670563119869688027105576019649828608367841516406876142537703343600742009417603128061770918047162751303257952522686334624629297282602267025416826115582561604677750238523096459842431590951312598902175227023847117701646149841601799049310403083805325072760515120517805087369443247974002051942971076940795595514413427297367359312496659653412960288424656780793428272498246318274031851519661836892233392496047367833221091321817175222356113736345891707004512198099117845280293090626108659400349702049927147826552384779070109036657557431280260240423571448611549210821706574470236691603994538083554609091248603883045220945952658504789720816022459567056085644159071028454609883570986696915688734310576551228425972964408601820815214650055262683988322348543395964442576313396386242464410620566573523731461607769627858751713901718803293055850774896413085594595901038769530981265793167692215962178158356594368424198455268278435749803804031019718630791293863186780949618490239803410373942528877503749454645360708261023461571820830193808927466516399527833766172181933790080223202999722385093531186141609864131982658205606486378546281719498017274615373096758697297007625631285831905670800043534319595864678592179357853293566380810902109075696412105769090502567543914037029241256245704612203358930713048495285767346634577471221884452936567345540978755729641944317026032836337605701449986487193884688710159795616810699189417303897137093984821480585470561211158076385514123693358418839107232392215579456388338894181263187704909569226763892488709227174706771845025476103378746107054443675575066325475127041879911103920225156821984519421022189719082066043367574637529542383571094401500457493013091913579346427868576398476299680826136427669115990118343985137765543931030699790920219120848512433941891224714537766905142318655871760381636761812372848563344757701641244259709732820082813494125545665325272766016309080990724057245404674854728014319275056951669991027349266716729411867750528524111582310846210248432723531847479558279687608309606414022895917707388604635652009967329422038157224476012138435935882577086867272550306657857106661506655693029628518179984820156995738584570987771972288664114395878670949941214723822786837841154164784748180472930998296961298216850196285565212103623945900329658537652829308461654096586444963221179075219834423744471177967952617389699268342780514403335774454753483480724110289700977835240122512862282139725436465225710972840165465175747754612688408037625716448966926179297483356283767093999769618395697155707754893627811720599460935244311713259096433500400838868225179389141633374925387011281049624748306309258477897197333391028083208835914100345931083850735996234085953357765101406294191998491336374432828686179432416013831306900445247056587377902721053496121241442367809625490482955496635440836522742904763724182644763893807717188725004364303877511405730916165979666513420428034212891417928562868087052573425164726191697085516396048261711269220528209931249181297337660165252652580160368243876669677539888058125292137035495500210621600930491505221302946631309173653068310764478552514577327198928999100221899823139282137188392115392753075118428299808539487328761602176897982808783205233006566737257771444048131176615960596039510002370702774601937800410253433745004875004385741141363948074431952171488044374755569447992334910768935672046759141058660142099161647398608396895757053427626172989117483358787778400354414232255950911061557207610941909125823896616123008331987172243062597832712153078966748153228695306115155785653446293851739352618717028965085540139193364085252969589341882501632941788692789181050852417983060796717145395513845148396400196532876689837829243202573438754778130461318256361974355303279621414200669227940095649263298401998730528165280587139692738559994605653189504810618727334031416799553333748436414640354146009993662149273227152388026948776888139807677216122960847900183040193838787412633658142060390628710029633136993345263077691991285434878299435492655978606209278001429909576725706487121636730443948369451365261572163018265568783817440700984327681840099386486310736887918834561763324968061288360384792136719558942873151609409099373837945257703366062972105451136693017224340357401924373586902985891083855608269472264260394196542812825614013408363439759145709619469987634413162966609336460954236196549928606355169669504091977435138318212229181151815025773090800171582806259558056139843899436197415896319043655771401041913577484161829418894766359450283425442516835789981540133238622985798266233826335494241503883275306459105558258122952334886827504861322912149367984812519916979728153346475702106896469889266681530197712791406791849761879704648261937435359227992366779346021961518710354472955143383896299062843782277983324564610280991391740506286204296633148060654314595567966159926356331669867401261075861493547206234874761578288120056774721759141290610162992329110485408855582333838588149442086562159053449970674828831777810913390167158509946358262978956639139955532968208588611384453643823370287014316436423276107195626230190385906883865675160562729175980982856356247476407001075949832529695118318945982744175935354520712664904035558138328491563783921485962689678160506580871121764875185308113207561920762596672780193378642488338127779671572858428751161830470159080592066182779754867646704861337916926932916225079209751424056410978078468354746221827144214862325673514744681870596391842227815049699976312998857385018951937104160445660695364752227359857963262204969631684214489284917553919218649315221453189063223411733497697056132070526560745003924039986781950570257608542143243584360401271754991405591535576111521854915429251762027262196053423876513937518562414638072646090459561566909356441216700940813667421180608240684691437642158361603799840261979155871719220953664002274469946672625283265964159800710667961811457347534553886512319679869939388375448292006480612855891415960856590427409459356312936855419378384898245408051168532675213081221889651174688966848394962127322069101972261645698676159998620298964262481536125815899220701966378302642750671664221905995812015953441504960505831100889613840905206648058776157225453106565142559671412246751485032992481001623765880390257316896335511973693268802122287136118285079856033844387640041024239829392341572270008155907041932063171276065812059923986098034003098229726017875759907953220896530125709333136121342176052162690110671626364908544671080431373188369057204052738237887149160965925160856261315698015304339207616778587558725619406607036892695945288403578479289153192029468383983255538120757498105089248011891205878531692981725722344024796796510338704955808840948004464327499440648733148952366853239162122927898758826250871098577441640433858288662017938809000575803403442505522201901440570879189621312935813509146441334269176833105886636516614521250347694355310368801885932908816959695173689678396255450591151865376088829962111027450065761471449425980269478394152338775782506702472140411699528704899938704895212667772589400091374151237293664268459263798233415625074144067888811900900171000312024126723533646199918461598164896420094261088084089101739196340158127327640976144937996436712683254618251894246090508385722009838878525590160026988405634781074975482475578956267598760367575432176710299755204796493280274744556653218730556082362903266326676640156773713978990833420885838447414630161005041994750683776209221726190593024308929386997793751804759194812026935589844397242814653297716792632508275056525409011622915054574529757745937127915058333274599736867192935615800935591842017784017946478153166381692030440415059415787447032180122283056373208053036060786862510099392771630370712617446589175862005047871542540608501936638689395804883036531950272341408878342920850404474125554981817843769139157032454856778893897540548683189925065758920245119287122269255264778571050878107964493379938888066600945992218536047689589556865418073882224799453048690881598678362890546562361252867906878746056730705450974630860428919162757555401209790763529857277529612733760682303631920650478892041293509979440713611968788672614747194138768826972774768143612143998738737186190818342395533993434435347953470762210457508747853240404020126745008482578619505524637959550079171943443069543844113779819869711818659448877385098557425270980881945032098000304103464361340483969019130292822199865809691642328787372381523269324691952100770087519366436779597182010682163910128252446389021343504119110268288333583565143647918817432460346764015560348849813643131344242193740189062902359309769501413847887332506791015244860140395728512743309818936630892535127110272236133857854746178925007716976284550021360553736802348677785761667788440163506546335764966455981476974701933856753512674724884578872047178246883959938760515563444066283441442843545544033541092138305490866003403654443879099654526341315856966632097658767763451048098539937243171832271349730308296800462806298616672133869661190433227875347388654749411218468775937561917930734201985351852682551214507974092658050166090419152351736970874407587138953622190567426134719612334412700998690858138755912342204722652394208093178193959015507596859831955113111324685456731235854784724646374457950973574916122472836908118866962690151420156257528368586663060919890500157932942197875667265393052617578363485614826738648935796985217419961259983823697324340713087963495859194062982535811592044766273776157213253959158927671258065656742874011901600021745988545943422170117206427156516115323065746762127622732545375119337997535414746438101950611826453896094975409559438540515072054565312059520363634256939355737815447877805771931303949801985554172122326277712192708051084336706107880769980862433599944170581711143841738536171610927887786578336826218934831396930677910303396421766357714954010878716705189296585189304568950906419909985987809291609470211448153801102827858289495528049736367286454625761970093395312349709046295896735547178689430190049225686278741327821254146818802231703696578087297567470529529495335234024418354413240585636872361701081023165244708752648207450173280560054115636913364411667231540163293000917980542750380641038097812894344759845178711220115460356998589903986115353567348654549167045208239082352952176713362461729161094763916267302950220076202744154630256899745447790052491769859504540345654285770578676345574133786987883875792288306119260680629674341923332166968042991982261752964567545785644862490227078247614200797275248950086908254360353645506871278623038606992551402996409561146406627497998251961773159140824883192442452481338187295677967428958328488357359734932858910008169749556042133867188912113769877935363034650753760199174693784591363508677967513341486867231341184002412514121220347861928619370179290258029309054538980857197813730272753313054527130165420838193145263479643660223268012489360913589399714915336015318830646109825780289818458156266423231852106816497544916816877050365469298203735717377882580878386890893465879080500459048981232763338729653702387015099323565969172767752792968906310455014582737651642577378424987860073625266112642636123176980694593509337734753591361696406398437133837529228728631665561002621969442204172567877329579890788541436791992164995141117703703455437410000970065353022101084616112036679662850214504803287742054925725822230679591067388757623620913094633138334319637898846690989424683044480214915175557212873632698320304709304616792332773725663707508453195365414186874079183954680369196136083137178589277389522568731611613675317383197527461974892133590737147413943458258457596527372260438284524485758420606183739507410470209979420320396296798393447526015883852735745935099578648640050855458477477450000957086838387641340318669899634850979865314832502056520115723895449660551287413327728033383112969100128405226656366983372696781680786559475606881688867061329030243896018853343320207776481194283905699572533045205947744276049235628535034566467450167015432469770026017115241900265709612283384953918308630416433096056135680446042779549293523580591419131836820057330387312488916435761671750199782611106231144774616753268518820914508460974704514817639456992035543985007851963220149716261847657753759559403064944466094570857504147528926194129663335024390112738707555646587635708033955603568155538152328237121792698886941878221016547520698499587417256107879135267238378343961280874400158217448821498804469211066481022490154540266379515102687434147465239553069852863850753455583434972794370531157959143214207106508881233824480992895042807787635805993183840670576325318095411849230644649162489214568243708333917814647252409788311377584830957329697780057659828039541441871563416835895328342394531586674730674209938097513890888764316172230016649596203448360772898157581676565622088928441388414998668286164217191842290295532350782316953747850840650405589181654919090683612796266909534036629187371893349142367123070186445967159246446908781633427854580202336361473059313829462060292433425328521519473751527302425691157033415871442390031029898555175807443950229915619770534834429706806108359994390066521907348141194648728561541464147949643627310193510745575499195358155548448717101257715790160847313098026113433410727488920792383327997953091270880107089884297820002931946378645390930647187949190548213644612413983281497538654556088753661694283334270740342084443176670638704877316037540777562941938393121531547714585479757067988514320067491352310033159625762792890933954543865680543814013838655730727234440651051424434157662143814583177500049992689845681457569650398252908524244208616455578573089049690820346509766544786500964284899938838544068644811399404967568475762762800353004751640890068604452225716380643965557287775972312296426896955200803178838595518033418669443927267514825556326797975035181527340497922455832000032003687089393668154930966734607894076361357141728174868584318478521907778953338858560686289960748584116851097275404716829539089504313642316567440584712937808113277474703507168907411717325239255735792374816661459824638249753103636261455985238961090904344919679041924319552508028683296361857323206051579771456718270659932792308277135533225247464569235591657424369267468966811723363878032577302308298238960517074532389257923591064532620182047174309570784428494300341764145446064601510076597584642361679170183723741998348542788553573959511975899531437549307666210268607686258406539946246265219496939657987291347428688285554483693755497731462291487853849961938358590563887573336703415710081507268383235180272972358903759157091330940466566870620479146827224646202367206940423505874605751204156806335801030320241461251862315047993923463504922763096002094156173001950454585015735540748545513226312880328821757892439034453260378024217038331193647767407684409908871926071761049446814799695404305535955258886805247143416192504587397571560410112684083915991822051833449306708377534049234257271196848153749535586954504584548949169241021722745355404203614243353498503280402965940027573470926084459575628041845778192008419137143528254814268123487691473913823818897508234680923195372471768715247099406648567879739991121412843011458702841545646291233840549906345035088820382481101360668429781639403009511816699077108318826520173272329511385578611336813370620188184886678915380077762942180027634612383376312875104851589952115735668551876727102099300016713157410826230485135919583635392929623597681389221696494950655708884176631301692982064809224541721790257832514651957288564752497340835604619449329753652244510572798628166334061840260013655603475600404270831111907066707908353266981067759714953539436990452943358811533319923319268433937213973279274174884545237524804988599652174446035567511413023820942968938649170664735891206003345281864472995520752932421534996678332644144178317889796213041563836588120401088531174398818102549116851384412753896025620683272027445373476121861568330122467925218701250045605049621442666265934256353813869644961866379037631184142404244471602360901840184015499091673499713922403164473766142523036738962257330714458931521114583340632022347088892044115380214950915486079999243883413163654367041604477853129744754574672300913062168597183079819401104499200910850147232840775635356690407434530951724578456088522523873547022196982580076246665499952388009454394625144535216920450876435421228896558749329236407687057567418153643236415098080144180033816534985555782062812807679643874160170661051996953751491826638868890736509501332061183475735240733985641425409916650034053434202204600136795767187961357557356294931512290180660319321651518799457607249926543586657443167100573157130700123224543343346251632646130629980208301166114687561917883802905679988090246856060401951998845363306472517046164013930727527406290870244477306095730708194654866052173840350111259292951117273239771577611883033803247435477686249814764347767421520324566087041039099418937088782182751922508601876821577285799807325823972758784334272019775257351958498330061902969930356398199373789239781848182409697722317234796900646716358789802614471415879970035665497611235571486737644914233075939861035593973449766015247449780516622472405625053542591038735227437151302435804501868778160517560053161616591263691266173140241154237417284780255960863230933053541623260876614551464164468617252922160068837296765867325231088346796313930962339775253753899690144652652793023196765871584263210376738140745638250293227877264168517988232843928958496136891992007468118269768401151496490305965413939109151091639151134251951269128193738176040700340587278669748074717006580786998335078054783309894503621316028343631455049486063630550953289922272412981966494854013940150306239488640395291389859225769166098623358331391918249931897369565683461704950844690102380722882898599044252715926221696735885916913162874902103894970563839692577615407957963459889122184857613589325123564210065634977045229459059361488372105773860593284785793421818785095332876691269845804965234159106875981166443769715067115795671305367175952940140492861938082607509452153075612552596721029070455085021277967263920373442906102995151295871070505547839101367715543545360332944244072103995001665812971824968416939691063714018681300431118727859890998451813243479446428573102971760131876874662378638973805657791347539881447254122855415075324208761668128464414008747475479655129772791031960949956714111076655242587063644894997933788600577895694058238746831764145428458002971529434073221226377642695028593876643133238085564130475788020989155348426783399436644589563988465844929740030181060713160460555827519706888627943587604428290290489020568744848748128932048315402948405618534819161635362691767189338290338053402575765602406991952622355777820982567802262363415497467354725688329022098051406894064331719648592297516358592984386896707386876683676449450247283912860777835788144927148895518831337481211481781240876963332248795722510045820121868517142868658708372158673053543970892368020433284375809725568537666193419931063338695689765163641377868964490511645730162609797796888181216949250018148477931744592028916639939127516915126665240935971549492610670008912308431428333834883312151327492144507723309304796961923876036054770791722897310560056825840530646950232992837153794704741470772053860278016818611983840453237844402372438861441642551951368111217255319495798172269317035369634188872254200596153369163805341035471176805263235640571056919935082309804957725802256830123518722313541650108804562217640049783488624411992759939734151395605752574226611647064316338517091998808475884332971229045066314862869330022799900486793429806496101475319297599920722111467458771957230868516422896296964797286580723888421982641173435324980835891712024272018652123268013506576318334296265257637633862035540122099906478734223558067556831597407056099284476079211191727796707690437235012486552107129871089082937204359145219161684409624400049641715935318890984856965287042843735642568375542569375158177727708675701481134989224388173080621382689864055185758961701633018748214752337195425861526265440395635783407133368492782400672221636679051156702861635562097090963427100401227607559043353444666904591294703643244356390805652824622084043917676159704925448875145850184972447869629375522604780225285840988842995187890576518383330455142357182384366616353878754454966858327559196187528151375264405941876176769188737290182171868280616116112535389110373080472070908466887938828083685474746255262184545370292563406492707470445253079642343753231693608442301215022535814847381144349062662386743230533320659603829493649135750314655578920395269689962560515648849173390808169963195709438232224469839148068398515550904058087972053577657270207056908855768680089525833991184475232755072593278634512012745691559026335665631942688760086135358204537001637037930898632197442451657457107778637457789549148003795268963962542935632825937341578752687948334585138567593548713332124524398635424552492895116926736643031805044609800385718949630622498997176809503841533809856142702193437714755248128949516828258890309969583062229712587472842918252638011050916489195690733549831343726404402079359434598834327731598399055737351607668625595553782313621816676750429696161802087012725541546100859135492132489952449639512213633490587809186106615606452877437148687495874828722648999351243728517836594092465401650434139018235365651267697266764062218640296317360086372586414345324534952935809366012440356040230647654671948649697224854055517059103039821806033496494497701826892887102794324384413395262074500740393271278341403842261656577200949088627014046119781787717457607507299933652741528353319957733345800481383963967361536072964795181674456756879130615652040687663883092819116908145157423836269891168406726601321587520927202770732078977567332229210351498237892263457930146936156929735222717185824834542684237440931570035245688870798775874828945833238108049279270064442534899451047207702088267651001499484836488318292459262079808376042413728591373052259675326499818291647316546323724104185953304904153304229718175308094939453700462027372523386038854194388635928570620944105002271087910830680935672810985640016901317384415969545253116598830724971293224565466262591746622269807887877104759601512529399399159608355339835973574037447048535805111423630167477203371241664468973716796490074153480460292849868828196444147179949940485675952463392845561705057123632723579159049433961023050524103342068205140022109867124844743277797791346006771913904609386132046704563777396324057710353894934029425950229847204604600250471356672031177463066380553268861603339080819392039162355416805940848501162224933612542332880105180059253825104418762340353534428322075833027667419214758942087964991111227315603759393509447155852696454708346366479106932704148746146992735893296235362948034724837161703199390474415713827552427175080394238448426596847379439479715532154441328107414663594412170958311499952564088389289443571880710602693531877903270560961209777238556014978922862024107610541773982900610718027255652429012686235011142459249330889262332142033055890596676095794347926314441039954142242906759382087355807982315066145929855200381501000158428267965191435747253655736962216477574218600255959133407008459104029229384109988399818269752355507568103389207394662661055489581324728221590913800443750060487398655386081889139347712588901928950957941321100281604257777427562025107945261747335088883379231219771712474874351281565687849217591520842901564683199633279445446573671603125963586681081293335668235965415536300740546172902158307843822598742313332958326004505281313424440375072895163076417963983382945264008205465679271885647441917693739329740490849257773878452855408591861849130600484558912456059277571507226838866906455936873377325218785394946788241362797745734052048938119059205757096285543848684408307207747064023731560337689191481063843775090503599999743064475508643438288435561093832770771851610652016909733763612206822428930900224692408848158993698313800734522421543645274308576276005292578751392409343568423466057877258726944423482273489272298707001872101813156293233822667716361361039921373459602791094741376832876990828688999452419334903654076949599134711745627078569040725945946105047723128930157357427404333437628678916422145667450712452133756512324298392805348787916020459675233661825019222154021671780660516510606392523727910432763881233746855010410722897190338472088105271910974295872744830877551700864002054148215606475222301754858907623057731866339013390938035805701501670190017369054773562758569675465524212072364370248861867343286896501565013526808928323187415482655651692608228806597436529969762238810912204769328275489782915828938962497597074171791146511101401529553748043890235494318229243675500024054874687552416348154467563085386273150836288274238764797060024329580827906092250118543184999199756403673234811685955035528658391622499210191751296132194499475586991952291472406083305728387426936139297635030802464678846161767156777310914137929507811847237115278198387261936014327354473826104980955791013090969946091529907450009689838014469114010482009331094027850874944975822908654094275406548704335370018368369014420707392838500357819130395380795408355031643608192785539820170434708301050065220682940819146782798836854092212883907179045141667924871689652027792691780520563973106021343281264058858362209385045141462625981585217714639537255763914526573944431388292679870532096119620835652595368479201676431433617980935570019615485195636482050147669143440213120574581427797436524460952995088025902382454033103875851802504030915387818667876947128918173902390043092268293674919057788546121510827021057777798788470069193742064140729716526939008079235744728653837768702075892219104300060809866873128509910820503570023148449207875453852301893589689635375028289366662766841615275512933291799609059002999634396583460734598451721139224719511004421355295678806275547264584614561201023752161453211685427845597296163059628863563601960851129095345281965355508881154586341360874333047153661998489242555092133675730819118547328467698821646268114835302845253221931657113268908728333929591401511245642669781354217694153260455143772185999661645548634307123451015043308418961156414553616750994762152648362577657454455472611415543503218444433084638458238693852032962097034244855111010625491936295208194097778718176857631039733660989551281278726449781133393764361970368426954273429906868414321410126008798390967922344021644960369160689358924763432195413086645775969491847355570003327655823819102619213268644685852024158917280514531289341792617530940049173297471742368686739966735247043092767115880309161754531062342236894282068009172159379458300286494442412678717657991052748039599109928697175598696691343987039111066775192023122392016748773906740605925588272800818492176229580343395426351983081195120335933185437306282811972285180128632412981153637688331186383442243059871227033124994697547617970207927746192594566735014603576517878521453541018538780108731258390305359296000067839170954409860473452933497137148810895591316670073972749925617755478819334742341256015943262434565137172752299587524365219298831924285529782748213039497412215200652511562637281131552177757087586465936830999322647545703326547230500223114121946390021773086508456908345651181958582404294808536216954390979485775523184838079462817367833411648342433524992299212137954016528455019037706723824940518281974054964946850871670492960717500819903043237383023381302465234409433300452020325940406224214392767858768828916369725859640371681465275205876230353022397655623933350693539939431559966547584422470461589453028790913233665906972988096717477026996983126905791781645827427213772792339541367387553414058493753217034548953988552533305858512171412519002806841727545280830175305610535690157440189058225192038731519061483534904149392687080686225597517531097840902585277345544268569698107556302572710094667782188952080536060325099198387263538524927311609189978775347511225292904206449873491531934692044134970825043446524928517828221794408055511010439521236666429582179316357381741663669923157014690651001611793348210414766307362693614542863016795451069636006237322524470397213468404539496269356290748948697039342366160763788079914856243895533892404650309520190519912778710839912460182617615003472378012438086979458852484911099889004957317457409958290150440422815804018554892692048813031253873996461862297860502743625739308147394149607672811061662871381251214358217725056221353835075665310806054503930420697723291547612737882554809303545427780073044649895432752390004337660742893187811294840837470433492033694577517331467590188867200046731202784336299906504940668667376796634630110518292232403037689914722774199326260362051708484166901061484346945575258715659827448214250153759356826143432724021719117767850227029276593531823889976988112181270131389776283175137338182402874196488572542399686713368272332978045928969484099600011557836829638435729787305135932057416115236450867842642124294922184082004331286849997841279108354665923475063641360892839912546632182801239356944271067608028780030528801033386291918113028966573716435698632282676366370758567193838746949932982496492453107033309186669716346154167270631197004023432574011500569393158623018838833493314920456316750789779543539656132048940168811323044540958930954474631896859984802256370367060030751912585769711386707712857673374716423921859061073722326509767024924832691679658825432972486129172086192718041521363199719768692963412762277397259818048614477748747345656850555968485144709790462873609903813613641377784791022259711700195702590567101310721441965085906164820781248038060951063831959522775674799577660397317084647143992406002863256087284544441489144264920894460683291580932568397993926009322274381325846047387513893251220592009616941392265298351906172274931842248800615333048864565901314998856518829092246808191836123895418122385872310870382508350660847082412704032346044165927787588388610190899043413828716931804811853719195324714685475620458179865968000506407578036291297919344402772545915406181919285474364602508506663656020738970977282460416681801654641597916735572154953048827487381369113239949868979995152971503370192684778460751066566215871107327756451482698984412343594909124515822472531292386489677917742592815149397708838473136782664298972631234448262190846320846815029355838675565385460746972115563062385223569553089355466267967224860734190554311790408110069923044760879424946660427640803727396611831204760609697982785668696953620166790355494395600082361658467254105595098533682351150426088712205511118934724392456829379350628690850960383210017166501385419855059448819221725965369677100407755871913763787412574627536180118220072484681035046001073773301605834614865271911004663891680198501315015658298044962113506409308816351124383338336782148716832096806580520393754471309530028186423077872602087225120792641765141197085605616474481154977948374708967827679963736267220828469395302221575897499792639376582310669211407562988279714676958506746090092878831232560277275041455852724708338624895558285166591911140941745668537285132625576813678466420720857944083300041581013682531087413517182354394374925287566246689148355732874836802929164546893262372287156803326616963461268926374523114765874340798867115781774878837671385617026081382655851079128353029486093029103412102883186557994914653925908811883625489152237723939128714601266860044150383503885443417598634211648033719815277472577261163533511938742867276677691043402644040207416675647205299665481308871784413336654381996536016386238399767855757662420718388529794470014333767485847218923783230603811480999877700070919912942345027329342202987670769038866705985491527036460988385779545661441576623420857292973970967534187673316234663086514264622043170524849908989258043305895578596266562874944291797184714746123857853549292893858857482715500974147182943224868425790039861049937624909717236582451029147042394015632479348098635967431348351748168657922691176578051365972565336408423025548943167423349649071724244386894036444747808114018535218500458667885766008301100512587406307740183884320099402966279275398842368940880280649489351129822152062621069962993383032862156646630012159048919649068839451493756775569402301865032258414754015630195120910808302173114756641662481338975064004827481777487034626156261662160089479828685356155386628650239272425221819382481719305590638864479143206991181924289429885711412226848060840781199217275701117194775364670556292286573150538098253529155409039100520718958881228320302973824553093340582107880948540128974270713100383123738098107219257170337565238578224010931801720652933419447803084671795095494034564974231650058733044295639651455966199528506847937012016167335129895688963517385240991357094243315893880076918820325993991018514628613824258198184846717172622728300264003387164251006578998770405398096007757462369040291168503371826577942575439388606089846596271879471874000949254249858582571500426664385690943547335300297456599999665155109755631824379052814638457871448985817624705658032755370956724995877727041020067271936543634186306629018572106775644228453956503057179114023058952386068287838329760560347346440591340744147919628120089031990886650999156804029512398510677730311987657277278263725838614561895623936886603102628131832253429032462926793207230004696575669112690702169850076392465951563727942468928811513295607727486215689178408220428126021154271295744863361978782275151332692527439282828745886673700983631969841412423429215939477616025093681266764781541195251488497717235547478201402223058776302081134702203791969187629492872407894374573927992039240698905372198987223407940323446572227913107083786364205128321762817538721453211146221856772196030251375764367297118790227317412263685191049832462944948315167900748810859323378501962052156571935875251983511724171897833831371703271692125270995534149389142359418412061185617573229077346505147197003714037249683952055344814057532703241903398832139912858873971108159764420740917846822393294380531056883866609721658915146351454441097642605315901082107155439899338184697290443744560940335966158755483824846303285739659330428776894963411223405330164556903646282576826551198807739408448116473850144563599514746081228603480198233591742308818520923121087269033662577160495501167802556573102456603635078367598397657746713122846555958174557695326400661850340621907012599340941635987686155088846483981175930577371102789316477367535388500702620916660803880309258383214588133348490078870592845238171582710461459628231473156125852791617719336812982715182028057309980144964360862428057866347356457188639578942101750269086509646948961132158127568954887787988930007142239515413810113245519030613556775460523751242921094900951856412911210621425026909190022098764081057606491119332092920478577281537320522686879130359463530564314446434695309177487185184475872691617858908303863598539434491015137237360032359421122956050405242804555058716459866867902378817541649644909513055832516127831882362040625220062756419143818338825624325270805102715376542627020419545367096804275080306345549293416920964719481010846078503175436620904018347098956485106569143280187878627057449763112040891668891578586749591257009486249694276157713134872660156377064456671928256784416111182934480899381288320507305741562359123919162911396259666393959731113602076198377165362867390185792570346929293482564917101505591520162247084400956965025418480493230683346289289258126876684716522743437228428083024468961081098779748896453377071941111634711692512775210558170025668179696030127966772751952719295235437794376204803636023184812812823090531121365185384727265015708559619565569998297787410037604685058554742376330028164431502249295261056109695078994433938770891036977815306112260067244204983622008314953241459155923928234283207147516457156730340947433673761763590066858058158707306399505678395434101089880885284027205527364174715469672187168972679350320781131494216678428002272880039138235528966019485031028303818457642456652820071511426481803607664913814637797231261204430240962306334375798568049413250462167212463456791863286535111080257521599300495696933365011269862547243504199236712533556696121122551357927751574396656371364227445099003490167799574332679484891079835359447015896090453701179151787115433746214407606021068572015273470639888179304110468492115369017647468817311459809362186538870719837124666763608086502200268777583996470199492504918169732130206780489693512033692951659953419239364470832179855289966933336010696759137014214992006108905208297688075061270328882754225502948657729884111369855270043718349108093404153628861342896708835645905433000510240669223166997532936576424154185440866547599830841267013506945426171753465542880486382146606311804988393094195757631067738196737483031567187223020109415247846095553061441788523064663977069465906270175430104933198990024136132818962936515552177540206851625933841067973217227870041671765990540723370555246052013331895665400950121206576022920635037371295343182442303987643024979912794895696103727861003490294953732621824533115222907714171248026631172268244277215606878932565147119008215311577083664400019583291248017486879862504674520169585130403816840725976969865806976786853854689278822385479414148963235665882957471683340039420825795925022406291326923224857934422166938554569318664468051563624257309601402849388621592694327152605878845626336190505901123421041932041102458536318533428049776881629701975351847140911690634670734595511457130422000828637473499160167256410987756028491808775410285410013657850879441075513204135327875760108988385462346932759281985726648160517601111885531659869547468473139329498395258386625125547015986190723126369344052012662972682666915267231464777319917845843701711573182924591207587905769355829551976446802751275114343416375217370997416870760296590319592672574113251027141297260184108825899824820266066671270796344205925730964440609742868440726558250469081242851988013819375567203355276415489469418370004966377132841659005157274162259150638919767635855203680191420578324526110951876186271801196266719411785581700190047513155532798309673867061943679454172847432191874131304403885569462783602129842476108501318462341808600395679395737852274447332273420918992397668529015428872127583181996896938399193875347127108801495944262693308241155187107219542334581064953581183559467125589126840284923341428947949870515072809877281988793298580218742387166841735348303207154002414854523662186515209050849361740107944371383737003841573552889702797233629264698548491945327496979134537103247924316981594276843453123486003496124444179273822602897039866305851200567383273038102091937817093150757059061758636544554439040969561336977978964536984476972085722145530580884363431950383193351040916371086410885621230839513230911920875866876827819401641633524357474700097168517973269128523735659840794164384128062782029908317507284057663703516592254102427924554921499726039610336341173052760692733508462624101364475374690840034501258793712978399696448198728327369684435950911413858502871370244961504222119090685401326038867258116735404950915867026688711171154833323773609505840378891569736957191622206989270631776675828187277009490082166368478829389590577883437330487460315389993400896650375696466116519737536757643292680690726914104296601968448703376977909864466736028140247002658056015001858898020253400555486862024316785181213364095902032874171075054643642684259427213977921039238509118408410962378650309622398091077294186144294905411053806404888570316588815129344667208454058318518188146880856127726287795806586185471813848545874772348562100490991508103562239188914937445234667381951700299322670378341181053645286854237456298253491598807378944602672637638570196963239693872154061305564206635022179027368064754994930178395000080310054528500500780581128401703306465756111281263378680281332596293143774476906203034463952709180330438705026306889209562694925251569718310232535590328835524422783895030578893798381362309737747152438180789503629435817673269777667302313414889813686557222688973454264140359707493823989759154918872318483425612438467929189069859933371989798680252836416473467105323325100089749146890021591951731655576993048732083523052693593680570202185813636932802420212393114756839320374877832587928091259771421949093619026909474709076000861357805241113231134350777343910221773864981921992618036798090138682809564475874852120108314765652439402983704153508534900400043818723782244762887810148596008201904653518592046184805227653313959863391217013797600475707891167517609227962893816239764415122834580971966193036200381154636382134682619884554561774061178600481090466578195669136016222602067454237009145070919770678432312474309325897915282796930053496408343086279101767182843884812370280280318936029958806639898135131585419024511263338721996456398569042511777352417341696494071908748949573170506216877891236069498054397049817012445946273883871887895808687009164053539599965943371850944919421747120065193369006296058710602536986436669661815026712812111595112153941832767403314897827402928838953432732384298479966509350584138952247942141571317164911955930115303508235145800269809897527866174583123448080035499643799975269706567978146527292304965026257363699390284363757898956205798661724025618625384631664532206405871492792012532549172171211978181858932730477292680039411257359162242115578078217961273515202888084150799126111151083942467482758115514850283693665937029613044546112184536063776766327255897246190877153471803672723194282205003728068352281547184144279150879772414447962891825762619819257815060091072560804351885224842621817543663117784905015288652236742587400598226691466324153276323911541773400019349698196254956734667628650858446486476331023887896197911399411458828980347877786984420734744978012824092414913455920422818161343651700273442423108909739051298461254699253313264382727625955784190740737307133069447947338961607706176343481511930367010631624846316184508191052578216799509593280302054954085737038551586957952188843367084091196781942802849919985232562891490127702675883301843426510385055391962329983148740883961688140741316812564506104353156843992297823633642215565625844226181298281029134449085042071112656266940042176520069522497539141843476348786624618851174059988606156724934772123759186453410300042768976360672683946637078176367974196824361212115332720745282534452319090967707689264374865784481494408660221998745287153443141957560751192261526092744650063612510500135646954997611635238655653066449383858521634577903056573474070679199272522908338439099160241025732687926050226213028525205749635671041187491538001982359768623285327615512377493792319163195612864998567919874947883590139370082931393398148306544155899210736776172811020677267136927021962521324465220631246473080599749857714908571252607189805911916572930710333315834468798404995422010847861771544917807587444564019231072168419698825691854000956853630939844668941530680924610697754790392813551090553452687691181430372040842846566238019855300880007819032601969532313263559976516466186871735726802579540058375976206832290805207318809517767343334853708347144406302693412207893549474686947030397308505118360525008628179188394698518569829895770680266106819110160364664672494908956987033508193458078226783791048648406816106664497625360079365491242038865623341365916548845933752163215829553942985488897401123353215034802648812983116261681915668861129577355111502355293532450464449049963178034890031424980463814337295939488925442666769013078852480891762668946682620318887281363011651863869351651820107726494196873541420722131167521160795034016407515529065983502144639458177102689496776985972044212142534306706410140562334362900760209888603365867833364743222621586632896702489155228688707911747323304903746817440896780634963282016011653255083901376423144916053059780527965171758898980191570427872458383699134999154124881902381559438012427693355802183316365449939954611347800652033545793258090749505837621909852592832843914313042900300505945482556258118560513263149344944784419460157144066268404053139442879175781684984035913890803741494062675151171194848454689853860655523128877575171331860354644055912465576843113853807762417188463805498998573905030992528372271276465378120845032253105882343217729969339660898345208089679139203000816555278394448299221950646213428731135752793365133549512607163490037925982643766986856440158825830161490193996566490591206603977863699935830114579512218086883798879806554064167173840868687420871516359369789967782213794610043002625915255653028304595284467929775166058327967176652501067283196231727505641309938165492775810549748431317037476583073363179482948095418321216273020685721499305308522696207316258311734976677499849630281962822301068706432623406834318528008162121736984007328422695862428166264818672890255441510574297387060558637995638651728154300997441447053194896608290874972604660556065760633858357486775204551842518343846718932954409914753751319648639432063569499242665803787021278037772996331037726836593962621944443724283293225568809028292287459133257743441635525715281170480063565840708387145209593653960642893703039303736080493279283788629610326747194326923335634904711385465429251997696413140265557024960026360000680622670175316470407364603026024362916813899707741558565798693806990174592547103165994046297602944722720715056236089050797991258595316685179816580903621389776271870804523616746074897336422043562650293748687822546855213133782209501674125343145362213026819388568240238959550247016778419816959498161538670799505817234174236841024500649000357480248079442899231550729941753608939695656229941833307853697996437369262374735119853865714279267910368974925937370916934322679739468348947606242773936049772592069037077829870882847158593229805523798596181017849967091521343473735339838099436738935434401494375619181719670355979905678425236572286740992503153940492987161086673749952592969245402370773393367365467380735600276777835376987200261239492965934863753251466661044660570694335937050410058033765415561340215978208412758141132757117400630247177718435527245135579046525374842272359683952101514232895863719552131058340049332533800234848399502406559594529789832766918274273759873676950419623832398714296921176372987894962531435822038766048462619347727176566990550398726600024790109663930372889653470616468247141412140986461151679198238994663373844190607271924860190273050722005309166086851464961698743439960894302029006395374817691035077099134790951289292014517691104591714630364411229417936113447368138051466087158840558146888070607153354921434127988097916456387027435006004725069028191379353355392023754686349650411420570203638458407975286233410040033259427962230766481387463599638329105815602117184689881593051141915740478594915410475990280039868994736068630555579647425988370328087592852115993499861898704958997242680654311979219154739854071479707816103214222761129437063897216735349540310457811338842070483097277729750750363502515568327620805284738094024119567031391389177197280123240417502688685044432259596710802823894922767244498701821197600800669681271478510582579392378170315325978255673370968951888134927404322880125557019228960407134003245850490225975850815502788480209430704161474424593146296793711364051449063229618210610331790920325459743878470928190629208991567047828176486367822604523971131686762483991659590284241924118145396124887455715312147520142904171514514836506573734399730871769342965398517541375991873923266102852755626230583178940706536528347113526309708527521119710691643443179814483330132525601618289711384486444323682064698951647269294892486531363974214703239735425730150447545451639368684711459721418489740285720292112302936578588457561575447732819789070590674775318840066684477820544699297174282644022513008101307940406869055590076445619600643463000609029588812515399306946688407366968505600629132274597406241806313169308354566870861347751443899641072722059705260660982199992643584950606260804701067346502746675101107295067259019781525650224028440859268620529773886367315484440561119646785006052665369186343945583818570754510259092949504978109711354839253147685859212907901069428034471516486987442342239204931506242058342307714603127178332589579121124952534005627021633905307997659257582785753219946156254879544230405515901945411345024129970383600303738551468853465844921900877683706728121579058737794192135590760209466267439667325750241722451762476600991503235567085649592686802390212063690128477922429172780476468595809126424184484245937414054216801636316885808823853317882588172733366055715531394738138270388775653923381356250984682411345428073297303804935235675109972785621504951101162821819431799149235620833909297771909428619782813932985167751805062013566076252830179421620995172376251516082491042525673370581475881445751536972311418640137255204261725213346130933886213074792866749251593866007128558002159646306563015235230232440759429388974384918896886815642850388827461775706561335208266629876863989711042937735175476032730839066425971926783837573948978558367242695303754091462842762266104693740063656258246463153348326339672487618178849805695368213598116353097911852204104736777571350275409977970884236908975823616037161040765929065513862962050383363505182793128314035376603822834267338986825050618072770714123398625431730137388898145379769944680473001508019498130203244080905729154004713990045959032601552097147302226680761285300797837998047472947138302896380363151475176520357350025068540597264141703847417123390224502564960767441536964637578113456453700586131688750241659793158042185481760520075968123471369287624743641516258150619509471059921666930794403475820805861953403994008342912235958826183596206433140895308098210563110421082739037791451941741529571171993033297667678630103121044786613526915627468271901937613385445338539216057884641788192108524606463176113867904571406766618401463686340365149263057205966151350130300816658522938270616930617390131477037930791633024586819453655038699962109401172460359668773010099294846487732588430824295189954892138366729457374512469002569208786324882166318250130297700136038407665054394038320962310615512597515238455875653539051901614336248662375641674075790421626460254988038587299081403754314777092015070644787944843608437160434163296201313990875675098969529704386034893813337093953606324085889496288040370883941196082574345517239039211610492981438381030861946033601097871173528684771642148775455556291893821219379360641662426141405721817386237175377872996309903330113918877202688997354022356615767451438016673471082908067726498618675802767587072790538395071358195281723257627716517126074884973074521395654913936186398332576996506482648734697362864047822428076068190047262088784906131061806236513840670431015926597882451564670449828239096891938074650692487271402104118789275480503911189740063250675416759892519857870750060909336169329201036798423063872177237961134201553679298044569793446891987829882581122199932357383595098526065775024607437329916667768742811833948674193488442639949115751508755411890137703090630256235911561148142450225426330112675112375222684730420091552828676640912322266006150719937944205987599503313254847059442341002739481674471325531887312619223539228703583553326778834299620201628212752389790527854179676589524015723754882594981872703314524087133588089471853462003639780267348813609095929645692246831655451478399625755984714399705745981900041654435224422230916096393294446219230867310266800334123192377300447882550654849898444755882125618935389727800555193450532570021743687733133565152244978773090779312763465573003632707248606933378421192533815230006982804693371201689387898940105350298934300287255753632950910892841905880755355666931225941421463965385081166053756785246415486545009749279111180303165929914762826716856759183959090209859569969044399219745901749265906128835033335106611949888124736990718364982462034791946563878247005941541571440115789479337536229541174509977211710284106051964206541423820744657181362960671973258505084526518507922256267210529801765084652682075351277829864905314714872285116649176137990903865735097931439660350775044157137552490913831502892810417511715350399671683157637403770919896505373566601757287245947395831722069767193243691111286198342005624138427296729121126635519556724165495679014419312251538884111403421690521460945600755182173230687536943952086772963820710674643746653128651975159378497325239430917025730935468208204139750399018980371353560088468103238817466248707778437052955219643092179997222907205636960891607395730624200883419659128202735393313883466944609108913302352899498817059732246069788804272159062750573071194702902608627015796479686641248439968885726580216812497368658856136524427168923465267575008759127578366780499486676507145588997921552961599430717907024982593657722686119655419204803372216491421743918367839294927106197661218027496482633754074321334878689507653935751580654518215079118149264227546199099422322712269627160336933319992585353800620820546864881621001644164063681271767530225533914736009124188199657355011329376101976434244024033192998979569986658812874726926076047271253387816812875024296441474415014466029622212076436353977900755427196897206776659709131293702610732355552601011614189892362327142114659058089451968051877475348975366867664133865586863745197559126477720324488646557049725805703087436762305490012543843920010334656587218465099353146150146676109474529177432527349556437805878248844577600417806340652086969424599894359850404371282540930892564938555289145749464715133107340126303896603279706494590459605907120073523076612824296282035699108280159452695542412999001349665879233273462956568452323614856651049353019834420705762083049698136070500247703053207463393351059585977510266078259112779127959872018608857519851391227609638764237155234411810853623484914127376944809466992484177875905844284654115463470390806554508222655957728034925026411489980057269864616515809166644858191554936789635423547807614440082613399983172862126384308336794866830655010338822708364045956847960071614716514971526331131227954987429343242898774607050935851866373831655861826584751801367584114326038409005339664983680857429148336846581334121026239354810427955085353765378080900750203298077256872903769742280142541060702645977601866290492793677168721021983858316257402252709081587076146743528170054224309832937178554073301556677683453488400042222182069007244816783655225354810555155413563122362332687526819390697525431447052881190757611270740039471996916391444221367524310435410128207083068241610764398576532096185443362753997429915574333852109253889438508124858772966726666014893440279311580911628076873972286349229037640090812146560539879807633356356151795461378859992955666821120150459080562934273804773634091427033815154197182023816174757234741964372409875295547948952358382131386819080015202947805801085484386078487984192144156713912464550690246749611657697051647097145681891405848673383749300527152302951916299016718828095134808505539319785926966002550214857533302638913213133500286960546897530993681921255272183060363695514631126103128530061593554814787202970685822635818082034133344913137574612991918257208140190118392596014789469376232728761530841802543248862430345467775361919521467524696198699053001972265310435121023753386181768016092573933167495390299628967775926561605777840278064551343121045610803254466176762136582222097657611293841779976050466511584007688005430291932419189808391712993725495365560606201944729835192893827599624682544501971669766894055293955916982614990123720757595490346285609742302391444077716345427958507009378757164808968500985267943583894566074473158098655964585419111980526630060312998902967699553084566054078627629527227499429999505965852070895582463698617647430516499330407513082233006456523869220390262807260906870992340399108787048241871473392328639637033759709519996653917793394954178516152281416681397763615612779354636398462545378243560883560662353119722772327145477332209416580110477091738285487847529302473895161915957731174124457751278728965157542154930238360651133078679003663451921317539939597084521748129264557353772134632942529912374613916558640143198223080043227226088681362159771227031026233909724269529676038335921442045107136004463199217552545387596244278511400004348265594892709923820386118168804271882628297027827936720676478174560506573765166550115073608522028709695069960126606190344868572525755024634984594645166394142409068249697147633646983793439829271829360816458903843429540974423067500230178747059579944562556252913863646641385370282696648604340857020036722661218402962055344143180648484036057027095377435424044524312025135307118044040380978056119035007068635520679284721221133879428481990017961961384144525194922135289892416142935462971115062593938938230861229453191651908556033592522673616331644359042332666822744480115238920081989030803650636787691007842928980883865801667364245120537787947032847974112363059273110511792530529615616907003010072987649416665466837140381435985082753462720534000620258444322194490694160850571191431629605392331607903706823677988385733854509451347408249684694354521039406788190608114218617070650649068908951570601266201059402227978215984852755394141361111845181861188818766873623147555676477005151117672367361960620069960518124963938472155862308255127004851515290172343069003255684204566858459345545646369378215406015318172748176859310634070954732112065085051353866557247455006719860384372663235314055453785969721723154213043574928567617393976842832816166346334573034705034823868807519008684678329103858771841813152978854392567773511261922042657017912936171590729057580377020595503549994125863302500104141100560861594395652450200047765797704745638693463749415113520481897836648666660942118655473458575519399548887234548077149562038709732362269178838002321123964912089727842544478396616269669254763861445313863340419077073265138715431169235512424710353585987311956891499875720282738214405056397404251679753318974243909877328201850099413151013576327597004468449027709142215741649526388391974200739611042360023522173218097234519809291313971516920634118839478204144172842216923627032155587781203552911402436578485526844830443207915231905399069598116042821064200124403141427360606507069972528124983673674401049190793346255315517357220113275756204764255574944779419269460304622461490528803019253724438497639232402995758690570541303208988640317465500195867297486818687087361141241059933888364244759750051419854473986764216167894428360866283114704871401251304057848567404032498561323844613568195061784258678622955531109324215543240713667965010468420066453397822085302413791123327831956072018907461953995960835433605377389640951226269821931552215213440276806148059013556034462116926370321800273030913958707982911638170098139923544174785268946468691482834520197381399041278661909241413975526149921999594654162494992595467964510059488501910334202040702869518688658695271033925503499445606388016519459505235271727346697374586093617393373253846119738221643231896178061714405392848058591634084270718512158726362684942846201936559969220900122166915954790101635157224461047660620053989819918527254468680958108831843031002208239828042711877769144941795295400144735995521924009927239926946285471129160336857954784701523055725632293541287544779326596432310288354713393056846433312724139611760861085641591276525389486841771940313495642836530320591763847291225119170815086622584014351865988715176183410112139470766363077517352529928922094392619996902038174438438702735503594483601980633082924636967820852079883394022079173086764473174972679577457923163507002935783871606370839154633131409097154914452911225105740772182686520746880892687511046263440122716258333099396856888630327642656039792420725785350778397133808748111630661051319017079014387016489381195277720192558267044226939520292735428378959242299490553294914639352749070511146833992425661180843040038249565343742657780503662696437575370100422523169171491241121492780762159530825041717354991490215088239062489442984602749274474587429893323285688117546901359802610425362064597258531814038274022012486087642484048512430655706314379126843411916135318512876083693890135598418776659910257742326803665549281177253658515215713112380256266961590064694923417871650285831189499007472818118795314594185918262445486285314217529262337835687908553991575944350510002188961201741246799635345505209014696117279391315181114731093553609083134747041519051033617890115181177425129987181684174930787311304688662343921841248141170413400306340205610809688162919898145127148190588081201712666029473170307406872727274569047952055265706171227646566280981939444131966120612391505344384717400906732765911446894800113171579879149319722682119295405633528372287079437014659494163371609367434674532475495146592716949416741239197114935489713309651808519293000471754785472524219305992075340488729510245513832654216256734555041991224419290201260227338407314316106856277708603968912496165487295599471472674602848557234696122843782166722946037846293457561441610179876804275862061941593581860134765279575478756084753084909314391494631221926626804125505941876529060126450892920071682006150683983803013482266411318580448347625432611613272359321066314722354712142164537998084921532408240620550623494065373379210964827492681325236827429072553043554420706909431060038803304088272193223733672894288089539430128746192052113863697123012591677103138223410393167498628421115144416508250431960945724428371018642905043841349734458200511658265400517611880698385509586789363207909833720501520103441318903412181001420396356155011695442963381318343422763759062538809109289304501740837968196647674885812267119945375212563120748892526843121568556344353978637469119126824538771612845885718479428390645711147706819397821769113959636459437653143673187921565595141180066678984407755882599091931430998459900790102150391831144212659716244257045031858811071785115457062346613635638400992518715104779640229616573831049374354977660035149145258969678586696728741712347586684063996093584090185284411389389395606220207702702478379766470080391806429074060156288225287097387745517300083692801524718063548376642678935007294117807613684022604042304053675501819639632552216411601304024420892121570955268496415442689898957460374170514963983768537040208125832702988141651080763547863835562468998942873148086480112360738850951872449422323517535002838696788154222139239160015659038812108327134373047257663458140448441737408034803793049468224390350503396672221458858412651100818043657517287047506218441714118351441067714859632037625034434421635590547457360520478429773382761677891305861961634330297367674414331042301182163643202770855742765427831305130684164827384501279844574212341772803173760882450248785307078413096664251060333627400293941358560368992199111424513352374914852428474339068613066721499097498687620070282054053247839786709377106669703957307634228906679072832999702800204544738121936782228250573536240797063820116387314283423798977780747419745400520910607874644925457649951638879222022911089701873863900512696701545261310992293399715328176173770901384446406287798076870610282033750778793950367835774008108952640433234611103982099977196411949115008988553225445298450707762550965163746376197629617805237587169561177100415474149359642287976708086003337686010732886512881211056012641860226167332880214173758422240916709418081933931583485072437214442641977827019283337443333940698037731447924107008848716898745705733961768920816499971585173751386101848206107550038431523943288466288004327101927508563292653689098260785977669202703980179849919819921247956521338852145073197244563984416476397241053333272276984167664268714694718475869799587145450120602203569396745685376148032052313878222407198086100569869814465346002845175362162470495086310782792265998394915952161993527365653629105548915716084544263129918475371986265187234698173376587385736639758778352692986035693637107204962244528760337493645261308856837787299646328816822507817241673147441286618051529114765582916789918991763163859502393134592720084339518182376930134913863782272224100368233491065205759077055912246687871352660172444070613353076121505942177561533452076881820253428390306195516496930898107602524604925407598724031715736492797195095912399094743269191145535110824924056718521098680794366842955834950950551038633180311801485469026137931870038941066352874508204896168096708180681191803321286620605209431331836081057794924188446648387051788398956411579310042824731331747252142356938203556216226011080635303964935457676232642655094117082735900517536863854629895497169618214208011171928513778447635298835675022181394806042997524825864510951864264935549696027470117965045300635810075980395649887587740494787981690907073281309237767298863127576735288503028936899925117506905317003314931333003836751250064301289202960772844871803928756167025738655285351630960244356433919838960647731939230757138602733524446666504622406031468420484027091996091507250312286654463663190019347988798721555150108575068407175261662324115210123823561410149055137171557159726994208927440747644045878304997565897136383877057515441874847884324204876479566908400654935910952586099904597963874833700529126813799253910758196316197280613177264075914857946415584923155368346237464836401698251920284469473209601816160405790891952540108698970659169585880037333858990791098169981848001473362741851620720947301642364091092789519425648406020468580786683029655608262346131503251348098622397316159688305420256330144324543992574609996121720410567022932838006018645096500635001761838901552351255986628828903440842126104652700456606102902590871568293891848089385499216371120759204258351761202787371143392086257914536698617937257682922977269642695020298404940137935920426952517614756822500538522243091604234052070887507653953698495843467730715543002268202754025569486678263159480242802867818222975187780975359212851132683997384724893099900502073385494928299694568368923858671225364015194811552553291110059214149510755012684750083108106726549315719831734119271035544574562966935815510874763217351268484534974874676521157857571732789647012660926112291493172002817893569135197451427578437719165552761187247091844904666666017374366178054418956104544553947754978447055902536785148564925153942591288925289813110832531340972716656161222913860867490263824123262421463526349638887815815722808595628659641732630413767127486406457707094551028231000202561941909717828774309025848226600410416091968324282409586171486489629193098902252840241316409877352698486278515360337220154351423896265242427362829536105526098669547875053318504570614187576653330508075776013945963471304551324056983552847112005506880422673516296164078393121191748521438406458125729944012591949676649383498609071276830113810008761361340512873444036130102881029783750391340110241149963334523486004260084282176000874665999188072358035794065872790469017080251230605909439489926560890218908465871890917388400198290603017156507114933545457263872721057128594157238101469175662967343987693304087090087487122037575997235514832951520604328799150779297125066068463174072969296088946188602868323667938973733596110916705537453828073910040301090723344895663710703254150601250628006913959411374534648628596025909288132606512283091467559950578355002849415939266776190653869651868881992531785268359360343368998007496442047843654596245249239075983137506369026261602218962930682303540309159046331352222363687606210484855901329735743779021786729850355953712630182842259020716588674556003757552390104280566318295586303630878673291601962871913288887531872400916605567725374245482836030101672632399253410341675101604037174286743840353144363316136169801468522164872418776560497454966337947167173568765006661612818487506520268320749840657404615437256265805404674683781244987175101775296946820291554157901764360248851238125658853511692906272986693639507206474385600184874019532106159837153109880734618123484011750114435018873463897734213693835387863190787823501466242855037549323190135254694205409435538480139711594807252571352937978772424312107410619721890478937858993816285939685086321246979352624547053301829684039185868551483170782677429214554013097537834937861826564241910728031468887742405199392131873162971341640502054844889510155152191824464860033788181571148984625674138381359474152099422131749354622895970393889984283819551643808850048973588003024300448612167199406170602849496084944259861383991236955220365484607917070284724655953704496584949660994882472931214920081690891031686582218196455308781210567573038687546022815345170995042788805230982977916412239198989972342304940556752532541683554285498921432415363013093072622677844152616225918058365850391274604129144510699587944805323891179963423338567990331601814631357492708868172320453997133129946125633418331675475340780446074322293353993974676572381706087202474622471110323786250818434770365199718153649788607728475330015775166630137545903881251570756554068986184333368324181446811225320342091338518945849347154396402520989801990070876544090607417475028972216339041496270030182126311952913908180032531422990069522405254855341626776086139138398461080238508050709706788359307234478162497869917845128146622493150016636862940122227794430946662071678181717038438829097511681650769403513195833078825038719661912632174952650988315807154274067005500368846270597482888753344820472663724724790236387976678695594566657097389768096503017076886338483890112717844730797099955034330656233403768507858829113443921201510621291997156420868039728827535830428256966914003894397769344790414231820307127999520042170879552892489398717517245437847247043754254201875204044625365390745464846395775205344579305982648315112480709554511593890448726624469156445374080994980984540562350616384415672509249241860716432572654217087827337136378677335631532806281221736293409471403827153537156844835116117741602859163365558357929993457539993468419855716816340006798455553265984001883835467129749675947140949294065993282533388009986696280176317050942279512735905724287345416649266666612464828015436946810791945583515484536335495042741065432617708361351496010525995887783807865413408187308018503829162604823253698165154844570043347227058989269370900147380309701490978418988628110535025435700791832573407440379788991545554044063658214246512419241610945212627945817685140923058474634028263463666443968654482268884219692583092870949429746167906679117195898742445934204248914550799443511918875118099154412015579550828442006633195684037397611043021806059314460103472043006752701094393861879465764263866212203561614808435569897217414491684831055732919716398801355773009173958824988013580464620952188443345658678288954075595608924556600893170172069047487105332113020286438207137057128774671744019863978887933920616980044280261430242375141186089184480152144649703736108738804702885758201724367564447183389713262820754474830912274581762455368274861798712968222079020383362082903494574117813984936887732638536435980703260805753720774085040754793943007590407387072912116069116694518553360995139209837142867237934322806682041994445308114352770866047492722552801149535920171504939364751178833935964530333218547258823027041860562329629926436570334931698666879127186322691339174804830223207728022317328671962305558384743809951289814540629332031741289559284238077634313998514846138912867532408849772306945864073940453974802191244183729729934098364122834812555062105826259450315041032628722929700618493794247439297932335774508590314542887631932756259699030358357412376290004917114444071707169025034968845726948386896719576941203533395689370468027908831794985588168808710990197480318192055313944693456032203181538730881985474393386396916174760762036071346506032667909174634431046403537561742187303143790750728124141820716004232453916743553422875327701708225495212280282909911029540157222291243816322799750399823139342259497050537033266746106541707985935142826302703360284393973386227793401004841578512326500776091335210306742303818682441742453071256760577240120390893559014287000619387915428328148448889286722282970028463512610966474892131351434125985248243749598388483623140184731984033920724455138641535862158819731631802610709274141753444986340069861578213218249416795238340328164717646977403826836474449765662174758591588696416426555468357170817721288094810103927069662720546129260552960476916732835351109037617632452841941966320353326433793395889875561665347844454094975894495519615487928682168039964661529091416614382212309523810646173884013878756599925961680266008156993890830243904790871271323359291972013235638921409242237775114084752959217471169196337988555565255391791543516194406330670427653821968329551302875918110320937323722735592224456394999269627361306347026526609740302214360622258720336689205529333953816711067743316574755898986946114891692429539891748081244059976669750650064742004391498388043815461486262222386473706884672107146973711975760632722656914638588155878462094159075600899467064613153978409267869479443476599772457215197597542124780270955873058245275450440330709756354477656575507795059254782166287295713549143258323235010611718793858769924809507053446973045752577409188329853250410349697138658845657901954408758863215772066288843190815973289064995844903325989514816460924440921273573913300586202299687898291812648080919253645142677827768559613820799223738231015058809770687624896505509710186030186695841440865833955801871032377141344235321404719824084716403567361505017693831794297208024000333286438569238621541864077440618397906776924452254473005155531850091167079384609263427450803365145508768423120722533969612894433182888984849092915371429983354432370451031707005874898173700330768402603128192709642626666054942287128891745059018059747827107069960988649439428376231619322481816967707032860442231190924955340801429529219289573968665837550526758565271863552226663331142864368214358450809813898449845765452541982039693617137508922877529197455114586324696602743036359495817675008491605764511589976091938773616016867133906939184835930515267248467987989308491183191176519288236317039601639211365847968217274375990933387117500166265645780659627602269349831269876733748720610754425977152986966893101333668858536000612128611577408820131183545388662118935604210051934305976610778397980260967859864790683422638818054928370785937751573161416487492065243113269565782593994745651219246925978383720005903588177580232185647459293430006039880580810280762651728437729429194808817316417327358107345188347780736399712370504047231978861795587414228123141131234063147867729429840394069604681080465008137437383415501463798578185919683342246264213595854946512641820345628231471326488657136719205193345962599534651538202449462630538033163207702097018692964124033785198598546525065464245316982631025512396292057061902008508321434873331857643776459940760751549191999206720288174673787541653821243850777790169772063552732199708035240812540461382224969195523029453991319085828721585786525910788531443822788405647799699282318288551100378670226671654116807831443890098922004056703712173524119557548711585473021690816352217994549129386248577724787917692793640259269131074130034080948457385220003894268849772927625588423274356199577268522527482097063606722481069841312104665110459418556863401626444870111414455158418801855445845702706006102560280068865360601180530392964008411039676240724018778816266260261665376211442236529815764455788963036125142944697677550978180007187938786080661728374862594745016551562382667226188767418659909139225064037106859113898949878966806659151816240582054472663399081480615109925978083501295977185341193094459363323178692265220878188723419115850921353191193744627705598755347213266594407955740643474535046741265813253173857566803461925867593767535153049365702685040344218868959553127960575209795038331399487002090227269958799636017963924735271713411025341042402710901053674480466629032196231170842583500324410543791641677032462739148288842217873927423266163073605346935048301390425511275877938874278027739749274319579557494732109128204433183974960149052297755854406290729518958845644900600625494207306190240689083534038362034068494570821143338478154775671822876864860155486066210139490670631054206768426155401580251118771883437767358935542725550457973194995935582669268583457753702423718262791975115984299767335374032903176901956878894853845544515385278142388884911595336506454301200183143665762409445152658755590162740680800065733203552076753559864817824217312404340510315676297739568977164652108730629330400178977807338041915355087621662520398537117242114077363626817333157574903450901810070773088262561906102922760181814644051187744210012816827330871445988802173723474943077221892402825362685904795301312893388670716415777473232554780532398716348129771284153870479909535719104959847526701358334830503761781698973828069097510635395115130687019884492737659991901041801960447977471379217564272910786814700452802105256860561861269623072830914420911663616517012969175385934057737374314360777955925781346251360599660833399878411397601866476178722296332056043106671761122992181208127323921936978683943200868969741026353418061747669765867914448086117169902432270840822299611225362619205980824842052570279577516496933265536723594706571838608703061200087589495478904535032638173123056452648896339339090908227472357051679558527235166841140271492561320938495739230076518374210752416266844987932950496286940182856837576527119988813515606803092113457789255752805506224174726022327782971617388076603376565525511750477025995334778486429164521100849209157162292965337165583260001520757589127185261199030800756256292636649206135705815505249726677045454871762970717634699320610616308316759872531809494485123394794962096829122264678866513360547599475371478293339778670676093586757156221166439492050348555886528541156027176928945206495701210070873907954583917350666830564999706736519958136752773253684658660906926211549901149544827160072734078112976926875871292735770057979952764615945178802685081022713374245323099519169996019970747921062505044397242972334304346065189252939530794514044672214456245614215121549738377398608265034559429617531053519404048370551651648594853243307849022558904664804941872710399047700499490539419702962164229368546500054037812523212038956629814039214451911645269922131739369858439596883221162632335088695809648365451443959732149300922710122643643607612684000337748807525269195993200461022640282950034046129834213451818048604822699306965743780438692010117135966178953808901779136569191003550069948308651012125943544344581584280910009919645380924005033594093907833039285806851693404985812832172949552973980438649327208740448694177426109305358888395435005349445045385733785510812192083567492849602584303020398303162158976523820340449730054858676093099797444316209238997999173150893969607863709024845137569624238335452667055074910919060520830847204677332819291495378659379472501981153962640089561649894654014622726516404504890398276957383911142674994646476622221590285177493846158906602301602899728486130336661843946181036899844504966702007628857518344203330721972624867953373393157700202265730963117326746377372400742475080136810026777670577863840315762701747216961499703248032092907437326490112528519362133046974466401269650179240825573943279434469160618750517640518840731141080506748515713310942979467073898759749735620082569612985075040596408434962393851275472348256742489320200409384867221154440969724830533691731462304098418983471489491566515183847307775380432016638175716890766589386244005813981488164368211499546615295949105494148388037589205801065128577259538470062958053140313854166326127054348822842874204202773005524037406310520796959151377397151734111268505474793329114848156912655441702183031368227078216699663335265475018962376430269183190447927953277531478688069131650809831911622294496734229858258718047763891174250478510640755647741767847025133081967955615346176150009036416131631539913583494901392800368794054994599675953253261497348445860771394845539203019618187820044109270672639046984834217059922990825325687989598362337997838771537434834952342663103816510984509783228258456948102843955722670720504398682065053279112083799645945102888122012086557639453049256006554628650371725657438653223675663298862416146754977291915877770344107487218443043058414554647043929537322294811424243909192317406914941559276434305773299766763980317109458527151218394393471031825503374571177461436888414479018720342227799651728349036280537514012755379638963800063663645941869528111944258563205407389411157265883839114236553282898348877707041227652349874800304303993104621591532150150308700986297564020050155696074711534467159014287978522956723617128171249695430617018480335099428439442759482270141433967045470863675084205013075474504463842163170884749512457390642583749979425828839648681206743074994946996068352592240336160067777399745460618142673841617192956797106059493478911754311456877451256611306431427454648799920094672779586357803654727522768444698456693411309222283742288666820053314364125651810859208775498268785539558276277466389361023667420103042581760155456116783320841194732544215669289829626702264663291870312909683384092944918021345196614929577097808985004997660761124546632037633557189195063447850848779027585701309349354415979458457739571925849418243421221988433176309070876583970006987070200573783168579219209288974630643405304044000223931507825905381942915596667951857283504529128039908139960288282165500667526964871268638070701581487238578534708189360655323654221174555891378078599708461329069776770226033563855823863527256212302530128067960660357035697898174050479260415006910438116509633312041518765820745577613191837107612205420056630388457318223942575542963998228920270733272286729316498138327456408615695297355321365191141821111637734801000036888523245710519612635675121078259341831925953621945425469245792148139316605566559630266966166287306400855510556825808483713442516418197284572811326569900686264677699357350062510264326497855768981649815580535539935887976573121614156999447456697805498029302884730074948606045660437501149350720688440971881628382524864334776870812723134059935019165766238252912798233623302960160834784310911413342449709015222610321399393502964495172708334674459019651387094119439691722335619509422838154831206759947300802595069001854747976789898870555866912952119491901623522221889072587210696148255897618780935556233733591804123153892697782675395003989673971585521302738881313668495535898251349418023743181626857824589235290195441501020448055085285342634864439047249691767786050130172709909916968142938210615894051488564272041118557094763007930618498131468847718393267457924337281069779966599116969779679538866180793877644287845749258738185997116448633326221220421673009868183134166488090719686430222605454286856458587003817417992352190162848069604852074686787560917740729499558486063331983379415861717189533853397439234826205238108567521089885366723464403172006290198447118447815161807646694741625540675158156297515139933858010662270925334580788914649829514549737955199551448898561543509192470429879286170239520011568779624572463683000835873835127048274608425836626332159034254431522264787368159246978768215345751186286924829462837575789811811715347503220466664310551408864121266495739931545599994172247338242808563057339266664089506496034375123489468922938599498344607590564275781019105120942537139282165635572751600308681276358907821224754553841990703452127147151929977016307895855819312134248966305875504486347962384582832800470658657118411516319360604457195866626511962022485256542221990537063248079017625142832077035430915429560936109110151696303295376322408423199863846803253823836609013668727622363678087720680291562489661292432048706556541481706962915409892325741263583367216222022705027079078187335497514399743583584262342169843500816551795231757707048874246552402464380073577522554659560587369282668868112420181855926175963788924595797039821429879927713503448931383502817900887314429427516949693117282370785631941101083688219949462916631225182801440650131104569753114109574138794833013884495508242017967127029596285866694636659491825493009394157606708516037828643911582577236045975012115324024073507554927101429778995552976413644093225908308900022953364693336821662885899813616499644019948972664850879870399247847247520423498267599515066962756877382730899684450902602628606258382988569876330565976661986500325385909280110705074778463218716921890607174099206418930603895908284350903530050214766814146702088861335732156261695848885878525708596676096083306665581518877596845935403762947331827100531793686570628289346069825935219965510941516471093780836391994852182226817547577871600168611914530306297693856013963119374537791590763281035133077038904908383047790054592846041301901962744513067324806105617007035070577813267389332642229611198034329017820946685135994501077323099906334510721141178452242597488881185416790523197917450672578766383807964723740754182318848413140867742730647369139103231690918378963006963124303614224112046468249344819218208584445046125941707878167244399925426892736508502428273356824431844182022465929552413438286892664755943169788482056883855699695629924958792154667612179197927434145333986806691172094256142849292435636889756056153804715679794758711383645577301979231075340515748832607577128072203836676660114409434612737498057653018388972656362003092612636506403496337483932487100456580073682048154334388792597665042505794901621676033608153825526013269556173092423089036425761162142743960381288835367183841183648441547736467429632044848575186186273890369079217260779806846966908579561361233133088713217364514104152938023633721719509806637081377867572298355319835289601396974784046466668342013610123783656024249433937921223111368432005327078179417570627004771823227218098626462595976624247759893064765977224870650188194395093544025962013538340220446424594874203165000462120250625751066973968536837788590159244239025921799690686039375917666440219484612104448877640346716167568772294874256989429607321227266406916524562452957286720490301100485222771770638213207565835913966391097690370180148267586564756276695874154568439699154642652303345804999807573815307745399068405128454081970582366662496407267046749385045995470501264874040831397312682678802108626713448373537604901927074384948696118506729216261488242775090417009965052565063149164369573449234195752472457856276330060373598634413497879583161527564740250907601210199265127166416965774427567365238804835986352709457957826901952754933412472592612231097901606637267785056544835425205542755354784965689619307075761191722801617508784902782497222799645682518994058820557780006100474524520254568875724492450240961282242768565309000002842004597456307024127929750441409093643741286392386853585892992903258276309597336196648977570894670221298916848653234624251127795645619494072839643188065107999900584619650903840230681215335754812491460079047409471118058456273981706683523503240987255042977361152669314065537971327236803287405124985683764692034427167836992661409892470345614875134724228676578675870790309336532247115491773646542854788707664966438642470725643666769764964508594947611875871903396791014020025380176710338031190504845605365058373593211375885688907153105763511568151433904545085009342185706291188167992841892326091059910172962561566049180413779492336261042585451035888990373536728171542934489073590751934339907492333309082783943717338329356649994295903081424755430443780690196386470442851092769816214933613405852345573215832644309428321006834597851748873559122710314254878958104559717122761408782462874089404719271210255879349485799236568026935570257657621570715851352257382127915804797697024485875587832526670585946015138708355380496815998343472303551160866701717407088517949154396985895970216061498049960535748528765622775911863149365415386539650164871714793168686674043865480452956166355790181371471491468808949319769060630839172315901228098393183805300489025767799857410488298925090547521490017657268398991086719386399374650072152971270022356058076201840262484089667302755759516970234582291744914958122975070232387370009534704466317314998082575836296490625858000784043469775634525219396647474874570209038371833002098783475425408203400207356364754175577494329818117369816432765061734221640596478853556238011622155755307204926934895848287955270580080987662466716575652658014025766240373311620401953095591405221004070462337152927446150835571969155066789340757243024900480507636261993484779018429687859793549515002605852213838624042111743980481287506353889721746548708701864526582424660543523747169584032869986873064588018413786813431318336859192130489772313823894837177511749262598586574222004752783101074299335215013648932879643741726057937999097407732574068729212705654374177058098236206889667680005601220311592201510607056884872057301537305437339783019125198365245170728338420721434011876045328774079647397898337377338946382000831334202368933677551871706944970006338220177883252708199268977380889914238921012986172580415827373420538869117628293909402983835566140473458432355025327221733827652158061106567073778141559414425327782309232807752706311145128305505043513752911248279285157531081583175563451335233980996681984779481273946532699784921177694963312440393628401102483403932843865777673016136313628790259349801922830727026681507526562352487986418921854522947888050385618574812867494091336085630650553187803671660871142453856485847299050685680204539283136590935012761215230692517507670254846117828041695877604651392758027811403322506927674649415209264890207764496048898235082969324644912227421886551895404614977337294619120449447369690110542986432902617585070563751748893039638518665825913462923305543694562005265696118594931339289441085906033158236392871793560522931583119180684902711795813310272204448693633718494144188366657044658384409253301736399646674743807404123030824634045475435524827002626217537927727100663607687172126138919480612536608190704263653916162363771086147410961853241878303587840445197698826997030249587856319408266172671599240495944111035055985439804465902492151643889778051213730284622963964773118585892913538942925595915614374596386211032030918655256464437099254526053526580858294030490130482895844951572572922788422759015011108380381772589151594824926980950597065750872745627559430304439413998653152187825596049977486888323775584327154226943263564017575237263618596704383649905426229320112433485519051193245580978338093229608390643712541848129769402859041194749353963670638179263889475532384690600619137770615144177735188755742543532127731793148169292973251434512947034178199114662228962920450192177242403208001571807250283807271103190642986578983584295251271688592745335282205471210820037179279811322012362007758299134622059512488580165218762527849308577230715639506311879121475503438320388064589040728255421783686437191682646207769674846309838010022543907363862411825728256675401354554574739041014393662006104942216828702035626962821212572501964416627001509309337879396395700289943808126157561668135950815901548701587162647719995999804942929286315184703789079101926293849337646686162085800311229643312338171824792513321476691629241677246262436095277217597423248457460053504646855972144264425271009892524793486588544956230097683331304766338708370510657413068325379721273074442667757499749797303404044507309753014988573825874904437661347686431842562275801231378885082165525246434952427531771391424709131365342688409364973075806926594162273383010376142836139019546347811925537831785168660741343230897634364311787395078958737262061805197695152971897508472255119396106981921957415226378742767894511386382780384214843507010109929423686055364586761953506928542719743269748007713328575837709227577300669884620307638082561499599827518883673360221232028216179343189016894269544250051123290617604091418495605605372468742899833717119591035218286512994432934237072819527294129578221483512425585245993327451927048933030722525987290833834576690758619251722565373761832270435490941064282391085744149354793013101488911955510844740651765523692531648818839306051865877443760114093913359163425807954760284138539998970198991628007069605313247857294173116736579279455102355807826294666959823440862441046271280449189664838611527755069245093706249078287507476941564528725603468260198281648323361408056441259149974871836087690846771510003674575847979861428740638816139854262431348879925826898464278989283008940961314415094266339000615725550507268835593348843324504906771434456104013326181015790923256596989328493432987611772274377606222739835057808966263015456544862839740739214165933923780301775768065163312139972537118639214229034464291392696927148174215264122558551736271548661875438609200908754195821712686299267238889078025281832324214454938452894805385772618620427307531209000807933611212762907691341478590065713810780412374106332412484677793463086160045189581857500202078412047515729943890389829987794702367126093125611118113648672492316073458883231888339298131247696211168449336269891072646663917774716387228134546678359522627498242925221839171824986058861949104612353039512304303345734748624481234864667936832694459594530491817426599334912243022105178299650559129565358371659246129705076669614138178805327194808235777855967087854270695723357594516126608107641215893844079818181208300902501095808190061855120491159903176216612289421165786771773827018670444282576957255052659760637720181359826472629949679957213432526181420487208375684700773195767854145216112597047039136715188637169621229738688053008582060763850728301884685386631363397659381872657765964994933124138304267954224723104535159216934681800234997670429872635397130341206164109125880136804585990419272291203936558890661980150400280848185658829334357770513132381210497076656476639071315027181396465576022561607257730075407500808399537148835035548059174534600176776251258788758808206450640085054616038068026148478379356046673910848163020671185786073984170527180293409039998219259301212235266919876373229980917129540417426404056784748398668624748219665620857000151219471230755583346697125693650081878100684490202774486465266322267743265985657620488642610696697529357810788641752067945658125774564483165238981980590370811703000020900723822655445257532304281077885037175214656375749202213152657953902329152957154206224587205430931410745388733351266053887214582649032063502995370432419342624170601793625431385160941306572356744158861671702300480269209404591699775032541886387544430633341793815793107736491986633138651111475075805025309727132329165919082766140328732498099862644166676841126822352979183893813175885376094203661046181931900540242077338587890160274060847064397871397965406741950532762317885024758728523511821172001041780124270736526549586243990696697634176544448298907465369315731308594156494668616558856026429483611390208867074990248422290542008598544683939479909079500388383619524323290607118777528467856670051936605519785612062727024668999748366537263976043391212221791466341892279772789561013277178049266596416782517285358160839623664862884536941520826811212539269813604842171793535167087214679647695525044552292061204941104332637812962989865200752066377164834810170848841374875006283620809550228351626423059873935488788589993452971795412144450712264092510960898813023268423088337327679298656104419489228869417074874351436627484693660621346139018695100700271001616953802467566621026006550582742582795579493956444188998281947087773467522406193613589825544005136805498913095400844247556433716622446191923072044959015692997861166111297210472051106468200119417010246714361487497141298710710504952510266396092712353462341951604456737377597395929943811199387672880108678721026617891996119820066761078291609684482195785098512834789859409967030221719949178109578646905898941029176750262129953713035367587704399992310923392988024534170318592021481243207144936181289927623821346735439679292834875611537508331778280767043696036369009618134325260128582699819183009488985249759999568182315459729332357002550222091639629657443586139713798524165958142922882613536236665096422758551628353124179469421229717942641326267522236789978414821069871484339863143813138813261170772381378935160886057597659096170127999684935841745114261760886800427169697162028441440856524644244991713442584853307913276072434207400996445907561673131653624433166277104723810102978904151677683065473815302307613304656455573704139544498382842656249079752413466245739461455329990594005090076577360332281155563645072104408224348444165317532892441094939033680760174600993891717818320209849829941828718022478369534283401996125863368624045186413520209011283085487669697622672551349712024548042272969333176808405847540936597176580580334214313561308370963520111632243207251457846217369096076275523355874825563505006266347788583391060148080127383347028577794666089853517365431624643453002106479764087649345205691435712117032136885039186600988447286677479199186582077017931054647760056714225502785991106967450470986656779075282662821693425560218772108230013274303669326913099837332739770715217667100686886305155382161138895960266261563852105374118033951107058431244752285584742689737501284855870927599071766003557445133482033536134847007142757330998827986273166678716751264804999026905866460271651078209118447635640441433928569083539063169737512325017470677491403438260937638223605821645786044117980616574196625011668087407794985554342749005593710533370698005731190853124522725432928420921139812310286974233272542435239865970862820236942631829285553104547342474287593987237131319060061487146661706630124004535427825096712024861420535322087738530984951839248904822855181918862050267349227035121389111228791618008469957255102124293424348579530848657955233832641531097568206806850968500739652344835686153898159838702609056352546172081349079435524093568987600025624006103687904987124713866565168710897895283351335129188004292241278948443796835102797528241015089342502867316790226935437305192164236535709477389154067201827654634779063348855895004258833371779707363406809261786139614219836924220475821378863236722380301892112916523793502455303462056986627071336100676575192232798880735097950245543283531316879436418264821051702464182848586763391012278735486194919340758406212405613140224137140771759542230081670553519479259464657893610166516980471142542915321373254211812608171037068666817214009926019184354981497017295090827213719260881537469715989305421872064478118539399315694802864040501579721694797832116672756186574518124109625938788516495765559725775813940153481558075948183094277372274063930633594158793052213735110693833931917067118888777082276504393756196490547396447392229160506339341897688721303875386593034803068322686958319548684113338741763270101420275142936778750969023334078398848005546757610481866770489444154401147237271470018422532550396178778542860755893977405941423319375703607222919720475958107615975497179831597479807465352460072665949574580274772236071251901951741329235209249674612906848083898458434011811762231316878701528214295971439624638119495458256717466548761722443215712074126791088330401326993082409206315053278652802263010335532986878745649836852203653027196855653162816848965777694476251720886228552274307204038129076382953092405961763531029332125385598016359935959879499912304817751359682768124470139555274062215969625628712806439864935232182395215829150984964855974331979428849290153594526363131078287539103460650005223409379026909535122393245130849174960370274180653393599660613645009709110072763811395927822341085523247148012466484126412453924035783021690491287911654435060606676455677960664398002935308012769209560170280520088350466606968966316407161493289463511840614491623749641221960485257845489065530790558872798603993838310330310104534970883623478194938706781289661892961641309293099057725542813742352612034212535311509281940887228397438815730165220486089679301019583283863765993820018920617315227410452137906107582062831993264181845870857115164621001541794494693122919677430386665205628926405354274861521739805385259805152004784170759534384478852054231557993750091497932158429406449445262709222782037476744599211678753715123657078295032790544489023652807785897974258689892687015368573842880903652513695471510048287340940329860567083207618533974417258775966330277375435064672842943015437171356025569747196624872511257526042507862579884861125391282784377003280625792759434448895086495271486557408385022820053386408247387111430880262209776428567289145439928256022140323910140545604114961597037102931354192475844722439076435321422888755913675034920162897139354087469646571844218553481138922882902752804906074347113636582304211215235110833513710910784740841596823282094823698303836562499786320040530338131076995515292355842456692783910925726396768732053063254904537023840369875884729155345367527028603184006029081770494503550891827065943849043507276165589977864863033554364612716442939925695926743441232424032481565696661425470657069955630162917106601622157683420863753409862957757623970196295674946328822321156299406636672427171798591470681578466965230240896268158571526236955513649597058337644456856893264708764354917690723873324880443820927027666141412628575487076458385897700766428472054957592345552458318334397063837956156792667163334949290573323132927712608862206673404355486973374729028900396824856643086147864045685371245465157020323725545073637412346380163126392359220665724369698095300734361301753746755264753448057235632006008532148785069967817807452220747446101785619570604954186100855906616274964392961515759818818536998031107421529092951666083307017598554353182945761935419594909348427465378352433894521879238142609358297411072873445899846343802822774802483589490581301417092216464109024623507135620897354724645487768541996463223787721943308543633585914881048505630178853019264171824433709501141901771677539034919123180725755763333143824044064305815652850275031792742808703518360424526241695430846907466994559186965626422355838444656665821481026732988366039710293434534161662275291898282722415845046034968366735805837621178466477555765688862727846713103065307311150983362373024536367922934349287651216254186135122427917764445746580264949002149309523434111395801056373492797369591012182020755785000841491800325279228681934949000651958480177752457396156183742101712377263237818517989434414707386521389710363983722443681349585612629394184719182325186076196206324529561815805246084916071789598510415136831029543114970579373712973551902241957234266945795723256381992253729878910811911629429740754489538565739647797819668147455569759597973375342852370642040327216735284272295641524857958398800421434644403673023867138093915859867983752858582547784201478803285995117495612726619320919220959837360576590449771402006769099713861762052915839594988029062747822393859961355739765656132786925278137662998948714448582078167629668806456891344165696152352688947762714617959659219470524069437642008214181465308363951679833617092681081669224942669299834232322014790626665180717312357542745956622673946735700836312548650291659339656363187653550515066440309565489783746447457643962176111815103304471957292517938034555849676867170652570820687630686030107441282855596335958151958455679365373812137994318558218215502890180898400628610091433946740078998532718920789969732883046994940870704413038977501859060942425653267108414988273736502747938027756226649145484466698534631732793934364007041660019789794890913083311887692774885498552220978477004550306061343231943162140833880523182725589565930490773301500578199359166829193272755400604307420777066782911460579941894282116585809993715366106462539505887040478359451218697393405687183575383847528296060275649130747690143399527717359063759466758611477224445476422776802217357004188668398673475816408141547091858744263305996853453056796699420399091631189638057174662968533076556923350106586203598611943885736855349355976303272348701141425460514095579491090283391826244823403292766476753172395627572155062600495108768451640368791620608435250791923667896669655442741805037246574829075889361499464128013921563144289508266047575940600481672162792450217614877966989120039660382431342895068530378751405535546242410437659519696160310404093174442913420250876426819700202403086478417541519993105629797660373489945095072052528346404101425599773298186584335496022716188371076712745888408542663727838016738096698314011281108044215011692783098400326778076834617428276212414624893354761283129818813641514229582871390873432009466888461512948379722144450642874566563546440650289362889540124261623920530942593904976074801365878572299019030890892405868357006853722828495824657381066387684743016961723505274036205725635810404312677803003193038911484401513455238718410416788000967068024148488693262659851598009920698504400918171566887614162737265224190376870675028046679339728463598877552318353226986384864837689641076906440961151846166349494437147695244429489209548894115930355536065511220845027821978672328388187916150774813794328900869556566972963216793940989758413206730932682699368647448716010494497305509681725905172913281527442080001149418158297176384272806622118898776772068863295454069549884978910697430404309067086241096437407427184936720845949304442199580030812601637628149430641116775582447560622924813541713747002136310566200446592086934563879743639228678000235207474421243350577229674028945415347107866874350143896286667596904892989312677246996392660033603038057845021578821721017603695264047264162955854588548731599752395966886460426974763099162058143640151530514340698513433370267329309529081126843626122639643992595665883075433688382618876586418318475997431251329933956130704939575105314254383778044101111092621539550879406354317108332293500214536582351838655617170952058150835913444745478708501387540425595981883234718721000847561917032657956507041460028509894061445856897615496458153927246236193947070143446409013775289482601855893122201648701753113879885436083336173382348873603475570724094701243816313691733219525001695567182485841889376846211448340263489485519320146110808890106166616283366192230261201041600969103340195557912113657133719791379223057822072186237736130080006710666196463594979784065421564765783138087747490932099143904902380607588783597035708356176306478601388896095820817739228883927500504319015093894810179921405926441166254137603355796329064152497437862670020796064528301993349961519165139964337516640191768265494210102897658374966678980946704396832177946429118764906936512593317432626330644119116178026977597089115962288039231858878524576142281644423051746511308954330733471895392470990415364304311003919883690607963593879678630122082214599037326126704478726499991313050772896502055501890103005473556892650934892107988605308246946196266711181898629704128932913377497654101588006424234060430611003876805835895364206339088975306946619535661277055000327980783096218519755771373813108139933082693544488409325077825187442883810211613544087464150653237441976364351614836866634698301859738794780744946995340725664922759300631086744991017548384603981341659830739029102213424398373451589331936848309246326698669162319551087020070179013721225616604193685262012528034192590597502153611098219937468085859189001139815959291526989957255444953938931139513253810980847336354675152015650071385957405581248622567306008646888169804356086249570260667637965088575444378972798355215922604430954653504213787604835993490626703243552234559634674675188468451033469087933219192060296780473145588627574820825154459978559836765490001618840667571357944887047925241177048760863146863834035410747596985127789983842401182257799581761911477888760991221895462521036023315187768921697203404027144011896418524119100279004728371247522582171066116704501789376916629212283845250440212034477211830368031088585660432799781112170355737160350694270533180593139484616809032056035421273006394872067455865541970749162548650690322804993014883520194818012294832323845004456946926068625930976240940610249456560411440946078402021220061721912743971876214076471933817558408637311644955247072023515546199975024361952979966411546200124126881656681968353594465173531064004796746402543427030261811255263249932118204004283757925407132089360504073868351515597721941590248277247524862218556527860114626004030567654543095173327085537605368674263976993534598944024054672253663679869007442413572860215022893509787734435981689291254591929893664711183368436590027718154739444159501692440236558547905028504850540269419802423403984548742572099567294235650689596539534991152908830028708618430366110620090185161328275685273355105908920028700933387226762632133581492035360695770769075065285867332409492939700612698148355641399831670015768584799850705279432130565401526947178164117482993472217358350531060585881456338694541136954204687476756644508180129600767801105200893498797091494627349291559042996849956644264705159109178302603364574645036205174356011493238903489479704829474164789824407892147918505186378356154723152988091389864067774167319459161354835893183507969106412312446816779041691805137816943915553223194234514745957383225119634418302808106867662153838244159287249633656294763797466020110418851375229462009012149221646183463961757949571192002560012470060600080240351696428488770903744637539299274391657912424846587098371076448995707672424983618855663819646776732946621196656419584074634066834008160868552851102594385204810133142243974645400607259016444037252459083467826537273902486661809761130633361909595778841802367060140312111708188178728770314149813856556953961040966903414270436503824086459883119639347231819139160826290023293042664712439796073757850024030764851175749331794379973805248828619086404783583655831183646909888187240199841649676219496320959356288500093323849615259045138682225763127580501727999954151901797702587278391633933911741881368326536075689954643851908847300394111262161033512214302775017505447274882129017364228829495033586260560433051623234071791487565432086269377804829071322520561173586596873338455194947552097123583362079392714797601156346229543495404083365536607880670163887349484801109603943710079663199871337568171247740357978151661800522300487858097143347510779901614391343922028675825607827944391327779853999662100263111795460742538983788781264205884361277457363734897743411566334393794060881363603354323002592184973108965340740284457393692256086335162236625862437773034547522512167120092412677858726143298419998289218065957382581204724942518858372498224488549193353378043583765534142454632369053676873628870608808074867761226134835564050257004087509338479402867897538986538943055507267422318910948824743815381734841036872963772365224069946149305163513408995252600085767369989098236852320408201581530089063473890958606384017256636858643292638528381474396215340689317545410105948699960363400804483973604592005949230261185059599065878825906607536205914361248110625651303224483329637670720261222418976978210027321459952647311294270192282380254214511010273774601442370133861675710890890027899053837801961552781366031479171309592139183585142619520142225903260539940349934264455797487851494596733465231360080234183779316419900032695482068556692720623803314808828490799236366593219793827006821021459387040145140614037363151458329584762285069113502621512810654884234249940354177977729783805192506926240919919987601174454704913359019697620471994729267265206066367400470409817173709664719926698463355989569772665167110747988710319063304065125981223556249694163080449650307230024332900802787998305625936534890089417478981996468148308151609980850673107152343699299804258306712442880252898181284638772480140299442071433426318839253267176639144681154562439056370404941234742579954147725257446736118996259473954522991714801722358854125496731910225344306960753349966756927686985142734359183232153311314644223390850860881693195732774644194488230085519671976590532774155820050758289653594898300630953579461405856005352129969927505133712712244018444780038118147905280101825207204044561809893133722351386767477899494100606807767800627039994101252947743180539314696104295032651312065915707408471818911503124283961085802480805055710079561280455228022520634899738235722673651829125248136918859874616275873099413035626548651017657540646184650156895377367027884078567664597111458666611749075025232747200145261789809382792894827881814602224763087922241618459006099847161220157109806535337877244344424287371245854282301929838041377587190380958868255131489534602838053628951204622232440681513950602532324640312428647845322558074365322038561905202141956043080104398802035899028869915852111239712293589185789743878444318385904589887571156037390686159165100910274481353963900468285090815471194360494354518578518188701717104349142439150912835748756113716181784001763372650000782574316618290942213235485826814618189576715671213951980075160260493939593643232127709990682657917434597343375840611617031607216486009992866351516251402555642284884514098327649541841325999196092313047832163019855286815300624053202145274049164283893325391618413536366819744419552824576152566901944891725239643058357336184912491985942061346393155266647910660201609795737803135199730039815223988847743546926935694343788067969277930949859352559993950880058446256363066185562302786701225921523062035029164803674266570783094775105601585168960042769606664050102637123572360541746696705516895350696063111935821551940347442384104577345245013524138452481312254081490517568940431762405010625681318607600856649141675834246452027690065102579187613194833574366860470671531007039403057866545375673579092180548488072850153527247576391615467072388104899710777062605956785479007711033059103422184714515238850418598864962075468022967450127404214624321272267557668664553362767719354432839488600220719947866687441183001205167854160714719789955364821934187227183934586545266654704629512107839603087974761352228902890546899350646487433071133611112745694556150691217174494828159364359483176662006777973710285507893004024086585848499229674428467554699940806221804217999404595934819855791179733133556642880803920526811293899529481937250207655922410180205330418596490047666531082157621074928052230957966266065647905503568821201790127022439394110342035773650026676661627382707396209972790325338467056154140576752897814619182404385307439277139501399408538998853454978215648209063165965726876453793733069932648311978370821980545946303025017644507454021517740841008559711759104440058661521918503039868811079772034249364212118867197385597681504514332619242362156116306265892866247543886856819699256353527852693219295594244393210123822474330282151873583107515497169166293786903101690929686998149906873842437404667143349211073486895728012965457362528579324125298786404598893210516601006103732723786153374415063455374535836150178957410469054164866469899925686057584928429976929171133375782497324708655007420023481773188254961321213082911971481074694746310036526616635387968440900866344960447357609991553121430508407467695390672322268913091300549435036760207313901896198714496049832228124396382154884440872118981667175233121410031014268211737235594772984467850370314570061854753941033609833483478772607646761700066575078803661722269931977878165754830823473285224973467566227265171198472785425456208789279264682808456230528698402747989568448124767665872303830151943653111389070016426745096824101674551818001593917455516135603084073201757800079263900195018156994054325854820887185765247811221149137254807348329332424867411571541870096191377434771298563481945586886980490257562677147616085981690487885875375494581736932347493926721075047527545690781811443979559826922417628871116546375302945575453486861894773301025874904456425691561045408296450590634271077647909822681714847528276596340193473219401177693608827802049197238025255117966720474815563321950733233187490397999049694374414223379574595991655441190017670470109400519354783357367249317722590454759071873074206421969957934765010579146548505957032027235311669114892590259406423710688916279401591945358096037578280237313796795715229738384854490122911830586159027991718699470771106908884226750545163335073802105525999496084519607678027568766171384385934207143380991018645892740608718178575981776029783533196367650758955259049560780983167804985674904086986465012123878480682553966572975087416954744737864944296829566878377392338994030294290167360562458019517954372890440627598638840676478710500848951124378460326883557208384948131331987591643720456505280344145466942535350960343091330930273433419260749861390897323721325659870277370815773148644634942037384704256996698490954056360043216382504868027319920784360631718393079825169583131078682252239056128300446183329725377513100630277261101761790673623459948403553934976397031139416129040002008423261405146275631041386236579811743216189353504743615014955529737838447918603721973838856301932876535546540687011491288258175581372346272030296025021677393095585903985484216474355706205277386572678553365828312782379396634453269911716227266554683505585195211923916976509807174618633381153706388715188380799602978709746914402829354421215418186557467436364874296525284399064122780629476465420897617706013683411384213489973965925810205829993656872061896284954433856666542756151058148835595737890711356457486318738136638894790617150264342261438381012129460246032346990206505353657590571264209974117275494689047225606386842105799055944576653531010956529901157761894335104146957640511906652420262561988454111807246189451744454360711353932539614261194021826308662337974412211227283138407669744527725843474158493915863221051588746881464746863972453891263697385505315729262946510141414343448438544581761984000934893387031145473674964338009917162742807484815684553048224907875869413383760044944104026352478887523226833925816728595272702280687413480865816272268158248066750792536260560488134537480413561449553685930321915496206540467736760126746335794323236617200947501781149153858074280410481294047580792096348810304357933573579183932555677815010990824876072839329828922373134130929937640793861887938204130843631065370715480745735096416309669269231283979764619302577978217476206374905526156650837885713314006853799342793366247689454480439602182581094180368796133449901562714634486114853273491548103641938672518631457937929098757933332362337871379763459474396861758994031686702834990268531834735188816384580180197841939575279724446675037927360669938727282982920951785009128040269080620943412683391541577849720981562129406097297834797281913871212321321929934599249807885828147608839605999601506105742405826648821223961269452296804308254454088809796183169372934915950185347431088313294952492429687571494858950802632458267866178979914116186178500808266328690232175373671796295133437066092606122447466748326866557223778711954457138195195428342884470038194993279446017547237064780525150874146905001493430785515290285750688050074262132774902451279822319200417768622370384056802387614680941933075950478098509736469551638940384826370401368853323378116725899354311010852154251846307867552898008443568207354702385989088229534296690143239867606983496859421212600691834053650653192560606747733074914041888796998975304721728365495098251613101282885290302907048487374703347967535973175589324442375615906922399677004534416888759084095529908121196219804312381484402742166608916734263979065918129965230098764833660712533035559665455443415633217964063155016050410104957987351682136740212221814355339673955997420769416465443799524432807245350205613368140383281294230366796154809975925981242122003207521654411096601162189452308579016537130634974881022223731378852520693471714209607903995984113889579822106721643816344016873277841439383554615395215140315316706559046457271918875831070649191578149478592337875332145040214687395225335207876793372115646286526262890771981917076114493104815613846184819521290938259434812857121838818856394683741782344571033204628280294738261756077578104277452468290329322700661649210306211297507037717114675984500684915019811925542294426842889026005583679372641856555215653915050495820982665523169023214092696587860224893276165198287623273243938454074560309390999607045538017668141214372549191009954230482886758308982380250383545842680955418561628085587547595667259809710475053669247711786641661311524658321806956080382944780118969615977164791068275265668155928166850025062059805065681306680742992956136874619294484371630807697775097826534306568132676373446592269818293789016998326620775175929203902599183735021345734298436160645273010456084027123610946658583491550685125712313702830760902825623254144704398565318860142927178556329307253307845106108003894854953163262493693518506831543831572294559830672980811297650509509903993996076242909413284478120346336282675252621828179716524588043884847055561715381345388412452051512841214886836156080062874345006154061975139325707404584563087806666807094039819944661545887933182924526719966504316581024389495993431861772095630235886242976352900170931383783315610365651252937572262016787223510263058885907533250228588048000732290585488874214135343245376694429709815163108002548027751124274552336534174650731365697269388721433739066713130583890294245079719199469373735646202936241389749187090008241554415741083140694998366784470881622484573864005318795673537259041284771032810958772400222180154448679115177330166194343891470669789944402906141877620682793730063549290013428113084887191341200292119146608426569238298368565546951797099590155697800807979924035522678204325959240445072261061114636012241803004610898129834716761189995929259345330259407523178353047682271437311002450872838479213759979556439585524069041726259440272793475369061624302557864420331125316674076298536704117664203486717692432230905164603262894979238177561394184460228473918923701371636920301840189294391709962149818987943534934499492915827412802985173343163092127436880557161225301340341448740931726732051329256022209402317645909851394780544658102936643781564263989611048776999617616985146067237015368308008170580038129990441972020440071810974396950190024930394103036660362739593676056689271384425833654786606631836023487486449890916857988485026800349910416906855180994138524980062463821699519073539575055763569984141002479276480015391401938648749925140624388957950793491367862459199551521342099275619725045905521239466611638827586585886181200652643803784918133972931182574483184240049634883378603485092407016885465584691271626339840364958324565956276636319039853086640640079416837598894091255065276503588581239619807501376378142920893756665671989465446782613454964128178516206167328007137580024904115932156548514780143620780144911437037833217548357709476837687786694451545072495266989146652182284495846479108489959803645906779313663707296420431595278911189109405225171964693140972238464750691275246566103989572538701829452099910744140709794541414163862622529549491325468994913534935735174798047962160738034978473490708849643784613680005603192504912112231280685133110228269392860735062541811780130235446571750178452841556284151139408900068009867477590771270507068724495857442967339002454922655324877208450250100690810101444481873417159781475340068948317861425150718321186205159757816012607517961265599451133185488563508718551906388362004758938243783189116518067840115778292125864447154887461551110851948910231832675643072117010203764351183709317026005914377216695427071600358250588833214176978401162318276143788706162988646909552906795403681134985744161699048423388701437375814413401306179296135705012275973544272791839761055973094604774476452123862591970103302162237574821909938905208200971376247239809370276341831822411522291237268007552160332224013610943452097031592428019308463724914953030532942143764405767109230768867394306845528359697131150134867084794043701895159034475652682990494583489605676030212426586638382804205039626445033617135917595006030718552526295735102628965229324826468098908091640167689390973093612036042549320200500112863118886623062534436648072512576218288317657816913153695105408774665731831163074906718411759712029943816339515030781126902215153063305653126143829503014518831762141754481635277917568549189912449792158195440869868742010255577744015122346016891650831176039164086610292240904718631814280279991326307325346654940722933856941074290557046618382235036401954194958680183620617086156812693951972866665557894835645492177640656063477278374005723635245614447629206546362728044004622778739110232754686288700408177870950819735775970624349868634074746189319780263361677106441611681669057808564046220684543918128355284515793368262263351170204527842677827229845515243837306766803737755734309743366196704610686145225540225301867665875597147370470620366774034670763987710553307194195637224818316873268469239906000618309168133564654166480159827072401927331095096910868040506958823154406275108430273713746361172495010265951619475644304468085392123900658610027770079897088564350693512071577443882674961760605264290460639854864597485099557404450495150293487735151332671852143914981132428921395753933592072121247628729298363655228443916299931390323806279381076409007939568385399240852424824767948518955476438594927168113933668923018849253236286183062803656720981269113689368659336570325234167966692384538810198080128475943064596388732056788182630522555779409804764508168331847040894514678220302367550225957289981028765251922722812477039046055259149824884964699732445666500704731111158029911029291110186786544659453286268287502161502629402677173505812300675953060717765199089023281625323208522575506685634520502556949351279171664732466435775430595414208521138437424012833761239532314112864748059432314066757611025001032906381731475897955951655002161255765623541002376503192071177243379989808927180032950791783225187314155142516712053091345146134045224167083139603015412558254100643673494461643344135772013688537765693572753556809220240838635714993104778414743018489720072607471764126629079115262989702272042102026039998008702112280890055173994078030314382115748807967042470258860108305227422789904302682818649678430865661404593813945431873723824227754676800661131096246437941214966923943917564841472732732433023368551303755044631548137586423806988609401598119267079776905920812537712144956074883325553673128790866946219303654003642336539648529084715265882292645720315719057785522374396590663724078362949424770005218735047888212055853639972609578710394333748082778390722686254350821692485394747447659692894925849778965341000598219594679539915333182409289839355216695419323664985149059693436118840443137876027846307499833640519461506511400723056422992898924007589238300594608881034181111677659234920995271843945494415025190926829178674127947925743979162084462701048042555247277458137215216650733017622072476918975552641770205344539662341063954628868227136586283193265114587963742846249518354455604326291697397505464726741413736334030542780615645292140406259758111050594552858768599755517367473150199894618929071087062231947178225936265511666634037693106649513700707422054807302665742699586840765011776549648853740448235828340049632701957788419841058343026850686027913159995500002074436612501650379270127608899481076712700942186553418183118591947666342275183692267820495599506643006959348133831468590871492966829214972496050646933792370442698682817308616491473333012546923857172757614048579150099264516499597548405764401367184809094090490909509421788295855279529705802453308053368763528934484546439723100645673795551422062981522044263977580033287996349891088579748296555098823072119009304395353400316528823484448821638936226297140587848097844827702304681915533204929286706582491365226627027213537566999828831463176387461024218733108704273731581042574533418835436606023360272411463384679293532333520876721303968824021148002413277211067818512639195061304830745731636309442415044612002957920825381195371738806416396043133182790912104782438036799112870175902506539653364740225680994607840253871393094411450477071714275026868728791760230522218303902282172409496659222263855770206907810782029298116154195822839922400334327169336426269435981982509388680252880038884762362891892420935343377820512044416000503582872331574990065345533478976423985718087298110131025975713221660357953228430250314800572366768922989505386835752530872176418945259724364962837033307589214663928288025858122018504479495274129701252718378910365455934399869091219450930392501508005221244258784221493995725818726042821655460516375819339362035462428114768242915092943958584964532858750297867649226648816856003208315348796582283655974757701430814203327629696114140804011847227915573529544863146826163149191993220162511121265056673417091311795585380991764669814080973985069049933998522367361562766233623343051706395533482063239416337388919430617150577959233803651278220758014770817585436781545716679179166109185742249766076224411039199348791599947004019773901827992393444277520229715553819763114358344574290902015303039603822544656500972976632214975201530669226379111613171943428832540119101305617240790437716370172625730293833116168226105727722261571927500633699669280056030910644857008691900115163022696608336406397530786208121234700464517043832175117712336361065784314716452420122966593686316553256970503312326114473756993472075193101500382256104467424817826213229822822590169084939429130826084064349939881235448246778066869402977720649748467565685847253869495824082505861659534412193909287909364764830014513446505238879726388138663597518752438214216748423400278332757026624678622641016649141893814779162431255251525453249218244285858290269084393615373250590640078860377168820353032370620463001832448577735059813523772138634162415799062657407036241185698620194328412065846783959938445464107293075947969534733128557695601955715659836006318205510396250044606485812703827255770619163831963546678623653151778580202546110512632204498403976595513842445208327655399615652963921029202872765177707804173983296390876591056883176709667178365481056215220515966711282834439347091479187263248223658023568696662798429309835309440849921224094542916922225624929266011737354610425368759934932431844880086572224014856530384191770356066590397376526190382366130145489018641978624656018843911527534202305073290383737867104613994351036745490960474672661237732318680307117899219170371921075886489319222028572860042931611514530305422611442342346845853803503768003723269022627062159943915875072620889979182239393825586854409267537452977630510774357935422853368148862951386528789999914451696103765816120291586860551687689369752057185225318193119208465100225520965270544630245150703182678087467109100218866799124082011859561398998499734586718651868774369996335517703369947534099937939975069315068763720261085649292035386808377965623544128902032546784104233912108415286426516285013511464649243474627751225253849292499214617588096538722073550767031948253806866408017122674625935345162303896372117925548810984732037038404358314838345123711265231969532714584680523995927142054049363251425980433636057236609416228980655963198491361040595163934571018704429163407822416479610497539140392543390610222567606699589199218748605370033691198592481349720882317106408352896237514405329634883368823443144954490363456910166017162693883223212711042505456339169519706218114969449473016695466885511043782691624517736927033415501749451604150721205067165754848950867147119586530240281488074339098321156809650623865321354527439427060740931736760267315380734586740336993644775828749272723648158781787290512374521909879200936915067621478753869949921812828246094350285622805387991373470038211738913050102842165512952285421403250573221943395230875102390444466501480633285628794592122830764027641795687093341240593556328742613855753974649066187511834467703836754005672513497367831342209112916730702719422064865788535966617037846516426620085147775310114239499302700526316246141865873133027051928261128259987005012922236965320146390885158299812135543369637387535567670428546474956232528058522662580430580959542329685599479774932625184485922083272381155481151506402792203473016797793870565871480748346779670626826632164699054126598135867184483601860452279017526929329124159805526609025424087841127157870502987253721477115227122391778419017566508228626026384771687129309188737086466281026857176862152421980823493645522866251624218215742994552029098920978103935814628888328882879676512417615789863100366148215193575119415584030905397479178385353936701508760728114596827769145889871874755135574641782162689974501651751990331033539930434046274831089202017555669630995264053368288583971082371681336509688370883573866020344028643205877696584802297392629107553370123648207671544647476017296420574796583206240026235557818948687361907055908846411491526440003667379434290933974349467249145185499948370256717945994834523965044131276277017611151196255623396685787915276101299034074750207426570007257431128635266164404754249126264608903003855607474553161440292793012583518544938475240853693126745014101919216251315995027906208363848720010707012623559357004018662165978740154432250771275679318903336051205718579896610124371936714130090678213115399253967683290505120917269086895326241335764750143572468914644310575428969519302568112188672297211975217708092862004668881976202222138256325251268340733563536097324392406981473991944100368301559766191648332196429146445815097738029787532686740798798679598444648975890889220177012407222169550840489478794579088849928969734711353890365493309903801635712837128663768108691157861748938206239333039620594257189502197526399289529906337702441471265906953061840339770952153289483853302642548559418355766007985201741886599101620532451782093799966680143777383649210389990769189159594587393403518521283227975089331979386061896618389490150997825125153037763758652165118218996049726157130789895603056997444881887531765477589019591993424728984074186576731576996398128729732994365399757416655276754277009367082072815213781899061108060332418590977126319311098267848527259374810608022858585012399779870102663124869233704541525874738553543208423801934950148587607590861857190400038696131185716189980101461040058744781319729059207413955065452744943146537546172709165980393582311875763272850001449299212545498789378200614688824598373620905417386262728261468970407849704417214116946177563181206785767247409404023933200466721989305533756275273913667509784573536495404028282059553124966426439224263660471696723128182048428839431739309311250228042161732767546793855286473906793262003461620660994734349085919280820796594197465318093603753305035633689204541344433258951733841710006643730174928422561085158900745218319417530245413568490173212367896291907526569823168452793973550331239724495693008110712666577470376728842805883780952590970267800870486804502264366829928595469603811574965826211939399236973776050060343042664665014008954238133340096108835177530287852788491583404203970926193838279695657060369866967339279238518175351638865582125812423465156382330043061261311424279634376644215335134723042412365033556284371608207514493699711343051476176366941644703164056839888689289030336712445345922306719086552207536657241039013533664275128983270832029959374017819581407608225531749325634577106303736730129125472615537768937330319576619044489486106357638826060862682056925572558234576335379522079340274237619883228059830542533792636558719835170376914063054001607172418853370959615103678597725617158885087620213004199138130357161899079932929466553733808239637853474374992694396081601357719130866152050750308045866142300480210661887858616933939757326921975211613573379095463367851156053933262439347604647524380758192861104293415453505649386593512028775054032222661722947093925120684400036125201619823570808431930018942920568711129338116400271148529071650922964562022587863575052256631041065819135465573342783120534574912341168856823795098800429352429140911079158270645965931190462238357487917430456559571523260164859432469619697832867842817844340873962038874205766702337528926488992263878477338532169051935165189104578070873087567495810811459436205920398902126178738648185569683897450550800511595425009307190277712343730810981305084848679171096647585658761061702034710568530713546679098562107397911089759020910002683815250841471102428248454273244032448350938637621526403561730395003943068020237858532247752124066216809120925986405385435719673281890215363535062336936717343455955691032317188327186138117895795568033740738133589433494032771683752538124935492869924884722120733088702925397374006263427990806954902798439220922955571193997392877857458474729015863498751557827124227764120530373357049354761117313048153960617998214827346634421378393268514026835889772405824012994896820116278659133388000958111223307889582117876813237511500154566985934847460701668190786765305296184918894171593871899896360967441321586219590114555564037100914715079168882856432308829644688121919942862783869101934782758020664973053291770272996084274503878361072332349687476594526197119751261500513923426400833569855467921656452859056620113109988552105078580175553404889645547531541220008020641180165934938543467346635272672893705309296450699143743416377584318246724979555807627690415131612728853324008786457208160736595859681294366077349320064042095716326614840787266286115147756749508453539811308519093547134406748889903818841985880935063654170791093144703287521299907993241545955881255064064663019480436437429556004546729768058534068742003523783246114499653209197453565818822155149615789545587456138566372259508458892201271392924906050012526640920868963164659010347395124500773579316723146337289558215930457556112651407774122691572852034239798809492261033988594974079322164274884858524236305630402764857684528216803374974712642020460841010152590956876876869997976848947911613166680895845375130478824685370881102378691534981417160654304078597430560818927495359730312975739731447779295073315345940526926019483509952541405368308771246993602258236967278719009672098952239979676268475268641846329239704568996245740909638562883519463309133788758843948920174758870827053265122742296401794771392305526696222681184563147038444440835697613267766063823037338196074126277809420178376679990055575949234429135205661140358543941379046810169937976368818186792209860947553400219827003318067954796512561559318692201318221967796041510766746483213943118039451821053586647137682755529986663892662876421375247981984935842513541117483894157805124120566448790723965734262851086899621508944837238230294215609865495416306175448167849205744843724009334279819205074066514860166512683078838590368262214935305070729595715845823610510504042107829991956522754800115245601564415244584746821503864548363677338922154782363849820483163886240028761908869992026223792112535612648814841001279799833433884775185609206287236430152303352777042300331138737074194695501597365477199330794854393905334264827367772322851097431210731678912472986796039392997343219047051030106084438303849351440419289943344151880058068642777731273819603145098238129821180091522819088261050904020608348235703532239290993694382401104803604923303965210585156772021947508624028392983380833228138571431597784067250363232904566684194510267781661510358816951915363631810415089173917994160571485401942455230516994264836668206098274748879133723484361849979812787677495476163598184197899134127649739213327238368826411379658171714662454681797082515009422478966501453604378623429950463432791209216463435542304429680042767258932177905108481337722172538731253002797431352270812637311764509933338443839014907704766002954056539841151158372903448710453799249026309598457174570798937545523873042179395308492272223019582000372324683255371642425649714842066876070570544657381273796880015948430138075454980165994883667600976661782646987447649690331639762539191534806670948484530907716905738344976618404793303125279280025369617091171173920001901120896998351807616750321567988086928059655187841129147566548778776453874876666705167834681542973193449717469837579962033402359729974541274479143414405433066136509079809411616722248752194011245377284072897918009109571081792200915974309371227532514834423189225468459504871078640152445361142981906371527076146300274922363191541420693579368611410954293225541892578655721292347649015213011528460843785555023489987615731638756599078323659267743577170595812965411620111239768603030549245530741838608057938137802241928542046014863199032488075756722384916669839094045665508869847604070453632104522315058711804255578864594010750226314457823808418152175591116786047519414484797697161979179369620667529750603199341563621408415985363286760348106802875194526081612009981665239509999904294730061557910420868372994441171472845831594546805918951618849518116387199748414893190607003640028544321088846276270963378631069566465044142787061761521111926619244398802345439696944550921127133704701522485249184119338256173083619765062597030691292511987340595216810084357660833139979141586982619689677865861247131655013550171360529003322217921831477317059511921746250879514336897644725183271562099593541148390360878169643823457719533386519741676715475983947769037873173408574517129187062924888678282284477421332352818076920297357739963377079086556110836237156782698656048218448847670260055357884250872756926126223356915447155689680689537041092929194143341536323206359608121094311448601385052271893375236032404211390243131761866157768895399035840843257313480763638337965805893255435025055804540921630532811371379562071732884166992540498334508562239966744707061093325713609808749637380982179022779390957699913987904367069368009772990662406494664221754106880891352167621722134853160835948562462196587495401070688071594015027252481920561774307439766682395038834887703402908554249260064340219008496147401222737919751075293908040258790727369680561813821052400311391734965848197975458373179123069433659928135074262123077465060708731653435873379613917438212293046797383879577526281292504925748111698066569502948955677514225816947289162512677318251616966704059579164812727213798897896086882069426574972059899567577936860744693892768570086688456594930323932098625674452883944726409462959115158744402048609541309131869653460884697792807493629680191390735944573128630753787519012283370304637816110899241851180488845169578684168039040195445520080165504343916415225215508336349304393638642419397128931579263944874835164161648781380115460101263421646764712185888304084604568514775663308706631259048984610935802481738711513453523148218451055137019293993554432562248975940640164910579919756702210143178599489457745656040703877826409344055471834595345366913890663078928073158333621100152091400426471471519415145212486265646238366190341671062113280076531982573431876994006313285505675369817441964854482127860079285071414054329501964957757163765047740201689035521433160195664610751121163255097450428247944478850436159385241139455314516359668826294079327271086592026017328903596232806668139139087373284476364543257477540298118804229429572678280597840376100452397793963014473215306655608417761384232731895622830990902983136822181461675992098011848863626215856407281764103953059973487577007429819127970969859680286099628902025166189066452204672220609016797743334489714284913448500417632087684706908909474790735601864061939231504559343406481852352451415296142448235709360144631156637656242691270539452648984002324518899874077078988886722904757322725659476082908262162711753539546437696402538399698233359030352170560203019144089616587189908212316070888764281618566304805124033762604703580230246995379015384381236408491023967453680387556327492554751273112377355431453778070181317014527332228707701051750481155107959256602560163041326956656566004184926791863317417647855713169862010430170487260660236812427145329305231767522546166628699264232917962146281521211167674484285808971825904807828059401513560548103513956895276184359844423520289929548249703134309088567884817533104719603837315809740360860389175340711130962753743947123976133919416634674678925716738301502104064816510169044903215235384354179074726719575798108587202495657281412565161925215013188515666454595952242791946694849560353203022410541827231365767009316729340124645274932165165203959007304500313957433235563539332900145018128481344550869458823712190383725575172898044426683760451502672198794257915699077288552521074520038023374367973021413141535728410575727647870506281418957670182878157387530816942007572804752003935208500707790020451793958458955795129938496666673956577980274312187697021369302597668621561444414024091761147616620642812522090032423918810098882941991675392598222970165098563446365705351859483535582983229750732869921883582852045664604888539780785056889474029774287004041941674982768117681528462772696066709105049398728437198563458863572092082099048343069665162914737496460245562901282346379637769666862157631668478994230686826359294880840482736140867602046413502456536726872260095552231440948584215233848979141370137812406711329577612183995147539076548145005417994580961110268271251752478905752067598131911779275330807147117679552801724344032313183483249000087918543923064144623638296609203987972925224534728782884235671581205015227555279125433744853290012378830277321920522330618704003333076210981118619854640774383116647677603967438249377358593792639333664610848221151003611044038192565465381284672343016724736391131000507965042109022341890570029726990898125634444037851673562310349675287518218916095207786884836246170328501720573310376929055621363818385608088738449133727685702693071023327327175006834944065560708155143837576889567100204789047735317120637724089152554477010397575797320720114580665316366312454496031655823636915995022371901812150471688206008940941228195794605972319630159258039682730913448610765024355238932295711815998597412585935923902277119226194917073989187674195357646615663361166153536823830690047326237375668634768399517647532584429241367258873380448713016879862433039017839836063818184375084331105672659416021352966492914987588317991773279830666638914653011496548612149203110375590742571343450037507868242057435375629718048655466697317348493092425505563946676778012926941741173532810098560558957804754497761813540525924666888150603364529523637784168135824956041292580284486255769599824602870170859564486640293761388458574972234675985333206575950337475637521442252442972566003106929953313423977281845051080127133912735298066648112086761111181045616154722879616755629103936468450984146003191429306461317880009343663663141662120147021137062540914210142888048586528698757706394340763491762996948133101016875489386914278223848366441237617833030226808842037267759779709267343218676973651125597769718140489050523704223726036300514787955318229371003721360671428108742170953368078400609659280493547550932968934688965518597114090288917665473324850227048986882061305145248758360820833143968659532677519684294235205275495340382561577514305117981810898327907832777557187482508750674511007284386864956209301222124331659725693319891811987022549657993954718670740310381707468835147457083572031300001458009173571367684926952656383469446298773087662317659151431825055113801502942180492132441866594617853501171014643621604862561170292333677346592349409288506174292339159913867506237471444284754794545105909044231851874595244473058364556203266354166557970662769479477131279713489562826248499944215160420389747370549861806946858718666974354595567606798063655684943905076865410862004950048468401010111870889723669836185667653856161116826538687957753356807953134189806026735473031361655969705566696137617804226317388839235458265450478700049586375727024308958462537374802753819540940106851526691464522455583692823004250185508703424315656805488079072709216604838029855475557425166798431976496234695432077807344355152100870274583031178791662250642812849709528480312268658873447499234572548521674784174470796828107431811665205883279925986908621975807919650227228527653308612918688067685015574942040982324281817086258793075915531063715643863646086230537224148917062027230374450891619515711707075902418592314750807297091415750747468935435875514732160743689722176016864806689130136727078766356108778568860713739178076008800097270826059692094015299193361385098716622904942358103685416029878536208533140226064225699260909049245062929919889473849382504057667940475654013949355183210541971597472911361523817835618576956022065998568260797613902277574246731088691112148700283168998196790530757663728589768386574618703526608907529844527717111561215669185002424323538681132292681530128851579755127862431944683168212284752111086786258948628064105608335846598180179318663912944448159820388839901964459584521605039066363475826851327312855222431721915297257197674121130359232108546595880618641810511174762968073479149635573144806193098170116730484375695855969081335659390704347941400931619996377089081641172055567377133228526471459176732904056856105524460261640892726965714594418004572742188266951423185081760875241187322401050072238332073935789844358088297375379262298298276492694330751997430938130979318648054195335701023023572147929754562702410079518400631968255628389470216294959561868572763407135505843507151202927995336464467484271701984092701703482592681615850517149394075287337874959732476458586962622661272232515131898210417460240738331291040640756548292387316935572706089566886762267596812379556915185836782435526472832897138206388119934337030908592485413392029600111174160427840946120878993815050409226925751621036407576645141395034330187233592564319702361838905591072876120301370235020058085279851935877235131189578806034461037701505708220727032602762005038727472988988229029960477488855178508173458382072617360072424009778352779820741719908890650212990072367238636759125247027304529381098513158866004141457088433775620067201563799952654939966469751481678297134134561671807582519229003827743104753555737103515301661454818882859172447878568628389536734770861054020104990216593386538111365694423164272640119023541148903317508622790874095846415277434030970224210370839294007093999623797838170902979403376327312490252672322441947328357743642107058878128453512010403110396856496557982857410183739956447249522656097538992052925457275540720165385402211395951391175355484734754904068290830625678771690323906059476176610979295457322820658219837805418733123478246242518411566281228573480867161466380221932023209500694581193417277528727004501340129206720458335881390757883489056352097028472388436323357826822848017538770216829047876657718887684899474812476880136076136795488205456582258600381890318992846233981059591739793099233831171785482348154748437014238288849320311337632717355552909775507927016464723079493697276383083747716205745280256278415889089154447004360638463667226442889184645167853848586955317593537544274653890044949115941636041124303015376402789660053000112626171420115463910907443495179815153700153759556962565186693189615120785469184247543870106487131697217822355102482194200902346351121053281700309301050239156746550407938027259153694814212047874528212905933485204302220891558978748369935975347383980854472555014220954178404148072003718010495005007366741406163935348622362422361913823899189095110738952874604492542511235143879965246273805453007550663197489743382829888722404910603487584419274155468241247247749019854290871423951396995897262797636771081507547767137602293412350013392925459050243612087691769379349697995730077303009846936180799337924740353371788777978376654756131565111656882826203074625104619431539145826799811695774745841416836231281219138572239726130814314961571295491677495285702249703571589606831164481377948913085559377938724938596437354332498194938460311178884020128383882190995395193154525465586307652706391092034872565658307485902667547815680991043189161305684973270728071332974935820253514707909468299195504078993177153080189531318668777569913281742204685752451539159834592871914591665586025209243902689552301887023228380071640751995662914728889327997687909029310949878500167052601554056198910175779198564746502731416060514685391096443445588479193121770612940698799051590627276305383047195700639743337867669034798256262639755157696606714240080865496658938706045430463000201309158337520142118125110286956235939159245641856448662283488174705931727403194705273389105112845961599713890282316066655002853107219986966878307779629175966435781047444190372336252931707783701704697872595241430558928410269686175438353974580313708608363626003463004645521140747108352062763168763348504515978386699731237371972581223043474387115301769725619323679802096621185514565560609569305822041153155869720492507313444017454168768326358310102077033439253585043835297089150987119642870829901673845781989422030396614014233534652207190145037002703943886485539785044527740577783547044261609615402782495656948741156076048772351214347514899264865963134682044393635325679806482870401134557966957061270174154338420462680190930407137380935393158320296272264719792353767427281657740349046099557969549161063772584446007671997498828576179753060423509325722645136148918577583718151164365166405403587167317543681717584639087246484934286881057314562452557874329107930057436242880667855138257484629619704969885329538135071937097049045853056629082288015389748260875299019909137569571489554315170021898448711595424220285092446263425568566477821472511681280329542361157290074799234646728576505931640489798334475819043007995874054068584337006580412106804025221371589955285087992749565529022606566403079320089464029623575831407926308354846069581219204559836754500073649070323836861159108580961943388839362435705561369541212634133773556164381583592741621306506224979013796383135769725432046330111214318916220773381269863994467104163638413529771281773888530305633609130506788727440925767082751926422887727416557704384514236068638096616805994437446621235501602214268979801263042962348940539001874488335025799716633517619803163912218591883886051610893174099901323917898287841558574515481749032611865403956910501957459407738901803684193927234158894139863642805404874238277022237057882636777751919530416657069480382206864082744381527923058654092849560256334145631180230121948219609907415858259900570251008466248845910771545814125942175447035197740109944513987148007647012481154395153212618036400757580495982570168543496580915385203886424349733423158927508486221023249803990590763046613540088557958895220038092173158324824761920394781792843679293827006865929413680714174061070221232577789105693488219956077440830184099514514439010156809796049786884200915361196996118867061451636310042071874378081337131637699525943028852119105041957145817560457347373936992465373344163027429234407639753761525637967942521774833143673194698841121734682588045467052373461047573574819980225524048406779737014173453026859671103993774232382710918909699519088822974983210828705015089515949506666576543273582020308049222298919424532521667276716602484240559568949731417736592281223292535602912798209263283384557664415132125316849031623064759844475182496056325655226382233108666075936224102754894891724121462046104388924318017476077621642759069816697986809756527325353747698123358943047693390885554300606642622011646542822700508281476707737864506544821210354081782715315191568855747225825374798040034025368243654741008362556662772464376251709804604091630740332610405621145211741701404201965756159910611278188769605463558584980520860809334978916986414204267570227475546682438006070280492026429862730261761571761127902033262457577453919316933759748065774405636868811900107585156813933527852897992840315596180897300069902767184532499222997331747012377672624758917254063125447750582337435723417701469076138601647047169375393980432897299563185419168923084021770881462814795755452636417930427138280353146972071517781194734285337914652245265375250505351827546298709212089671560040930918604499961817979459630408808753147960229091261621421975121436191898369244411094802517299084642699460911979938574987695205741041567433777475697842021033953341278435732640150535453554542382644232687891554830382465650743262063091139116553517177365340713353612471778642053948346466660331798439683553429252502228001327254593172861088104242979837181371705413320611262856989647282098059363724483874776623147106082705585906877033424608942763491613190024283601038989919158627370109331325269713679766512353504852971156685716456093855813780413837574086642925038010776641731465801301482948477876926803310097539410473718430731895388193134708242808370042782544580977132813482741022085871780212740898645624710207568346036576908304221254104316084791912106900178797616238855460172597617632567413565644502149947621166344626505649588325429314782148004633497775663060539043278483023955358161246708439447759809701322655026602838538394119284084581173120357890276240132651852519763948089343850918214794342010644696740927034556534616120935806892882650981380397773064637181701619102373722401838396085520822169436469200437072272668393997586534918695603939932724885547589901960072841697093389291661005611502722598711388198443852529088989233123154240946567582938305086271194208384366052357253433647084689623020502162089773621261706862519942134970256720515994081676441936242798656231102568929293921994629033113976090165719463616897193386722289923028976144068219182232305727915132962226620939905562635873352148820675172672394007455471851342085749732879634639980907325762262143316098021055558871196713593604934554906832014998670611888102369547643887989257177065246139476359821646555212920781267671763113356114436800221654968265314036375691460553173026541044277008953692287777760792024582714985987666044438970065549893568925276728772566924876347761998293503966691977979966268695396463897544432859185368579753487919041933409584473123898480368157684676970854107630711181443043599104867953821305943624670639770395869130347678794971679489596059148611692311825461211232494108534847154283160156883305192279730316637418277381062710269175519529724336844871552782221834136454298634088186990066630626546478443320637772298959469325186741088163921874188887794525981559589001972348113381787475707017450426906399472621221511886230820224173114031650559030713707878149898336702860622284144053812041963974593585129907823938007952470332577156365581434725590292843396415946845227499815977362040780114879065825869583662230881450611610037372691936578813236708552859100179383739363372023138494218258356789401388360859164972617665372403595000737376818221732441054780922969043307540734501526180578429971448359923221137214382390737217266912875545375926421795710659669517042533811331271168258749360972885617260086707512049572747391291790037209682139350365734932298977847373487462614285497825577262483594347539933140291752466310219037871108007729356130904208320769877948049900474213915176762477437237647995572769752042230265646909106445926445902484221530966737939175600671823968882644413393328132950844607169433706005612176658088511642330340684785177489766333623851233475470354525579179130154367473011671673048094606505493141969779007505959379484816665855887299766811331404665193112840046055463474663375668221442509277877328066583664168338684896540921156515190408899529180737737418624588380927378335185917982766638113074460448057844585893120689947359127851987150189630513239022658975061885621895731548400662498181842346385959600627720383833923796641238634511506479253555185934301680107041338016776499241565318124580840123479206792069642430659844991681260005869234756271377669089094674767312172680935186677279890712175250902367576224771487352459753197702269815412482903907576724494810968273475148584713125035191611521159406402190574104113140779508899732016277254036893553583642798336356873938503703720552780921566885395057400290433210051122857029938934239620957342606980440704397893219552225073966058161658334697303113113015299657404985241875997063622592348591238943083846009523417467136567452011083173991627486035924655805837141906069865916097266544065629895839259200692832521395715522427606769312750025387108793082713747492881221308273040047652375222251298138101826230441737873826795678088021313202193108229940846743747786635439944828640798488459845307306552808343640505007349107931928976091780767351312106674364693547501153168417101014200576986739435462223428624560993078389982512618384103882557079718562828312286621270211020456097215568688880664667150133497210371176079142178487963786997185231893806307595591360156112232267381312443851397096178287060282338918700520760294189117718064876721792285824431340987753543512880515400293660976496420073045227899222420172908136841049447954048523766525669109375492915003238131211995375907379312725378323513266037638240476762779997596311696563601627920422058288083580249328269535572001234272116694676815586960195034565175852294576845878517817983160328039921485052231219729717305037475205113125581693036084469889027993222924840057761990369243417868321378519192152239550745641947978816128913404033366454339612715853528524937334106183456401699537465149398734450716401595026948390587860569259876455297327681785565881514577957310425828740484608519528349552047995785888174212699771205929947336216161711152854606782813877963373414927097075313068464280666288924722247799948580092134585432383584820693231153271489179548491446669475805572813122641939496428711822253174754929649767644785137146818269283568131262243899247010826385674422832787466671199809956962550080432076597555760993892240728723002683973638590825628478056428149126668265053970514546154956943796110321303223183984589712478976483047027854128405867812202953543543664072859393328953228949376703295678502040797349884490443455259674392659949864042181470339310743542237361416530328432288957428563080750540119673578858891066801985748996457625532202962796517841518894591970715570912422008507180592003459664537532549520115507707979113635519059713805226412386762969939800109102055027670598426995501998196744899147828595929450489206516867384002704332463271084973552605607845876003566561797817130416654362575110299282312574207588812126319628915501140572730614803308195724220898885182604684447023506106276058420684810107741796331984830822707351703166197672946758201675223433267507638112517825997642149577314411607765338859734299159696562215062785464247625160067429875235419467563927822052896160363777168453927323962505419250937229789204107014727933956710025861878783269011101715573702643478187390338799175616862502116889011717531712529238349536279361129534451860442564658338543985057372509671359834626092637198151072822125780023423804246091270350345079849907921807265646113387675783469324617067099543133229890356064373492532250460092665000795631344160142509674291331014046405778929732657944901635492623671077726675108616353115494022564997445584391405132482959260722571284740652101702306195358692299299090573061498141952107623451018731170896672472843144515282335816088551850252100162082592890366213706006715965929253952116398369701755376616607936493909456254601479647216344209720663148682091391698462296010913115013617609579109211665920299077402049002182709601612980653928680502132301619525287890839749238159823134299316689284731873588392865173024554854729819484371508408500558389859974274804312774515719653045367194653918828192873006125825602669904038622119656648140454734091488369927809269164199070164799391737732221714474136681277387289443370992856249172723299547008755098908654481590258989173189221182699491454913181073423181951998373192202442793577366508446840269935978489151796391139185630006434551316031415856442079493636329110587453389737071667679098207743977170649799526254959228502257446637371119721155229188975938294212319719119728050001076237769437244974895141840559700306598262060062811319023159125520351071199647617163688162117318493141904560420530565913478403004074406209811865272764160122887192653716831909053199249765490881532330547136872780762451172295921829129829289676227242550365895905457681447589353955862535114485657536154900382585154768274929427118976014350425501346497712450077154761601227057664278921623910044634169510313370852143740246592087066383347495397499171572303744436973347754977388234495445402182863278691645882213420352783501742117760551116973845059415211989929844119854687724169183658305962884802553843682787811609927223415647211342168212804869629969423476007871521445089619979334102768862434720792785996441886484734809181141878189052970647550218407424329019202693837229400712101358316131566731774633521660138320557692298659840263045765919838598930722257493323623218528464256722767349405169960282999547136943008915503488031640163033460041224781991071806711742950806616504623938325754881132498197850208410763213350186984973235039395754174285735064546846635071033136225250822952056514578692918256593326437025994673821282076391033234130371709750469600133126456121267233009495488805696492452989633834029474919607250044306818407311672400611718065817431558095122233504377483107450687058521708487613199274141127366546696257824698054366508154142747108902915015521189203730636480692319075918956501315549005010880263851263806682061685757790626671132818086136279932755345735604108323795675147356490200851039196296877738128516416849406433516862832478530080801416046375973213814878069588703288229415110664362310660517864684965127266779162386143853415505621714968863342115911199124244066626785133341141267436968349537532890452997504619829632823969080912393323879001351373611673186145620069721546881711364492300881553462404631036528883273838993018054703877476186866438450588063239954680169720891222324762555158421732791980501582718968762224561920874178765454808164531220174944105896864948062467238181125658096820752873203708850332788100453956036447742951389249399141431239454632429262995251395699080315472046262733166219931833317883883227283909476205245994408820488820116457411764139014192539824379659190341285907286772273291504684960337728765223334000404595597490128647578222899437957711386568899176907072153562236332431276608015040287858020483590202413846179247451794793318675826483157912065794634656750333675555393607814859020651390057175721127254790108247146463876764019482135252882021950880232382438993065585567969042433718301101997406315815170697989459676377697823482786695707548145274325231189219555022739207635517412915316476073958678155688456498537164120662410170880754014414801410853604574373074377204978800128801974944487886065202189828053157383614428769642380958437435568029627664190671424240830424764782701867548175661253654363065159173276224754323990744759081494027471311164934840172735510046601235207417991067838599255301282769932293669855624406618167524818581778259662997742316117243376207264406353883961128694434339186108493210981090898948007704133183645651689186841299012352804191777055277479009048218894883969725560676230606223592560925325644204373411209480856834987032140233752371328672538554541502135533220717011877117612632658811098607136574467255821819990914238733324792472146789600225283494683028993698883595360233616597236634552992942650807051751105341729462938785119370908873228053746179489048818309297896032673984578911244700731013308165097921543750293138020298471975818087512447391006149320869173612357296168020061118016248338673011010861098191635587057417554514300976316652906745122872423175936311785639328803505045286830450290360502170225792063075719706810124540415268423099149143065668550841656272695816028017657745337668449401939569030285728498712821450169008019477039419271910067026603266530279336917985439257577553654256044465451988306707639218979827432955578304643061566906887371494443280762122074220484105058098651312575495830304495549414427462372972454967346548755026835634574847726787446258895146203250125272685620454525874403281019224847952662388444126766884063518239152270254055383336499070471578243360932382952708104029148954108755089753693617757314478346201023641828825731916956463730372714054025976601012761139603210518096478751377412783926257911395032017962344986694489605212923963819214913732888451539809258801764741851876537930982664929847963571018755390075761594161204995563087181996218117510907367849903103675231436187999274074644066803748738605626087208289297210873817093841360922636843039697485771842649247149117739138340990249083881182999912037217067734030762768614189905475731034159704910902526771136367669153963314593336026932014967709278793298726676875276971106002774827560876648842403176911454745393093843871283942900614185311791340960265755540247795970321103302181096341331510196766831620416372318182346673408903184517595261180572747845221560322798143073283914767269375273681631523911064010127956730808991938765003553206645421596007254348727464320421587576360033852247142101191811594733961189488478168478833616154672200092421060495256295942253428128232976639300375705136290584787044784859429993709464927140503335276277458588495581586064422892139896584669249775500425149788269172839729058820065693386782949114380230618645677088370808545226142371038286061604521570976246262611699450099112311909810151063163627219983128123732007175060661432354165691799398126874207256807453386946963796178747559599452800787716731956159206765298134764023118309847144059806942838556244801291035879801121495722221676883047260077217616348497572624014436790917078211112422676127051110372512441584429208383972452486620688638626537613596802253335058182450760712741354108573501797500222687440497490354424430465950946872475354570162857778502951978917927717849660438370710528358136234362605083691272767547962782521523942028325145215950466013587667231432146641646565746940779364752681107308186685381035474676718310679211983654013765926609418976066445996960699664850305540456719426855116077517414109730971232410718848132079742490539233979083761757634256200714843466256173442274004199219721683964654056061393322031719312390660964468540426531133047017060503302274545446288678093959623835902174743791744949273948715356999024166285751556616672385775030621956560837869956424287828276347873818294355814716906561649133826434106698789775698927684902856566441403408902492258651831636302484259461644731274253969072552237320355171996765178118398330588017770719567818935362337500920169637760085424681584776165177424266801097237258336623858019262284359169468726851400435532238439045132975613347051647765894574144191583530218837276018278948187775280040863510003910878155529392407577560370028240020730370909026530576832441413407333699733974813536741416806503878738369734255100362470104559549216846542219979708402666577714593797840708619025910919884666786071927259313541177991690208484307513957489125474025050066040817525576191420280704775125468207691698141233032478817095308046597932241967392395030271164202880176371922030632326042975554929113445507186891257824092464777212459237955248084222229471299104665186279391859258963708846929668537748304636575148994979247715794248562331085591828106814649323518609302385466698053549619554975887021559911283634459906749239471649778559074204119461646552344097277001712272126715892237443161859498607018197089746412687537876717077794175402045899903157593911573487531636770953741076747451604381212608924824260508568162934358590458932455858654399895765891225120366409812172964372567548568833167528820780397855335109434233649601746626834962643064573641911296183237266447882018625891236181554163811890142171553859708252202430074046114569585751078472687715199384472004780075316499702675883506030237732176326464372333191535517317814720919596661361516511093220634183831604367286578116041252734133797309316313606901844599036521609393660159654219726291728346392906478957359705863539466187956774652808119126183226678885599487484921702988189329911733387900566410484391948347839434235675227802353771669541874982603337029443829893138633672395180641914128267934016806467145258198453333838602098557534617419023673277509095381052840299269266271646533951525927050280174002105948025144254777429443775847151649392954884084541718712467613263146793604889928747668337356891473633753442953816323472858357162341500625643120510604253519697865163857644784624677520330538947915453835442187854187533293435150700110534955102188316342347012598757759227039832924721178727282307482829516097569497324431275112031996362353812586576611880981820730179784138615252278476743681508399061778515969360620184478206434932797438885512204021930348646123119366437175878977628127144064352205549727645672212507592793223820893185309888678989608350801258994114628129657669109592305553056577405987809070984832506961855147977668823192216752549609047603981095362983981101181923506194266689693726102611564301479139385897283272231866293557162357126321313912717057729542110870940315597883867361703374100925944825396956743486414323315112436082122198592837434012327278394240359419229069011680060713002511648556579971739043711608859851664582044821606292286972828349951591608379228592000589755206270118002667261379681109374340657224768450078485608105323261391508772954605478310312657149340829969038917957054845304945104109634194455963991325063679801499421687904755158597715772089149642052609794985463204494616731566997435661847473065613652024141323703815525846021561022016708145315630018463443386780818448814139375787869115962366492596397979635709559211728936983611830816786910637953183463800947812441521861621397508771514517453810841142684157806370047609279919598118635075196193742841924470574778894366338725848148673175652992670992533832938488569892993418702959148352933993593100124394865117797379513873082584385908811484606004548999260030572993625925393296173870610493147353512989483013734933851236211032706275092091000017391376277660579406115678873645327148987462946131040750325275750577510616146787198111000246932478068015874081634859361043520680522550245475131558394513888386005082546915463403887072559947653876876136878815113215005722934030242270788900414568103156536488387799270045132904404590838250563564823763481905790067123142537824869711086908188245284379056380104279964206394648373531853291542337008778896249193263745224038766035487467095533057935663011299904431024007883610788341095561648789958081291621585763240405312186247836141536104771161054334495084904397421300469308034471917714253049617348254188741249237272833956742340337991582316163582739953206777765746558396068282367524336669436203538079296731933343785597845001811646997823323210363933258801936883080841738148870572085539797902510772651753315710243317242565090393038761186251483909853115482954586796061016547819965004667362682447237988187125865039708808002247883656097335883939748567680752734887413018982386195978412053306299291486422812643658462921937071286400443240753057406249055037255875679359329792787154956577991584853448327499924876052292864194161555346861309756658675435990259164419679786340561033940499867486535171975413400012642609161098685754307189768707400008770303975092370132056925085221182651875420709500007577156269754506728734482288050510785591605906999636255111652357779166729682377214648089436420798811414940934633279439862900706353437405177175529094127796107092643550909214768873444000890414584040859294045885255798121227914299389492410204472429686951149652117993790943009312663536062741152340631567109792898513287768439605423643065307838184154700512927488122972850572449186536025061958818821128889110508669482336723708143647200609493592058646629362462846678598083476040556525210688247574159055016560808133835619553434189088850744327414534132655455276274986389147618789763751149475024369946450780830160675413928723327975431437621704371942097618941784394481912523303500590480527186338763481233427030206275406121474871373415909850781962655883953874354647733939534378173283345647446337449534318284315273492604406129937269533233931989763659462987621200326979830265736230990504597081193682478769847052504340098561225013334101073026537067671205438326664012520839732131868752840796373909522894894868656340957495035952870196043517540218872132948914013248904311998448774563622776818900907321526485039217602567744975736388561541891276203157477517467195979289480308371309257410817714719950350679332474071545189627715511950859201814597683287595264807067577360212867401833760900398734660046994884618885488397282332295384726120006192264825522104343493320363131328465675240868482944084228744525293569815014556573471127879246267877282337181678359935819651502247904991242426083860595567803927413001411922637521150236952990698952489153447435720885910005782181131078551261246167490088160092172154567689060796646909129946990750333263563130475729843224163124702165930774771667482545027797652527832165606974327297407530260261964932816191666920749317221234434235218094534973182440741558115980898467960601332006649095870032181784484091369512824695309889071673518220683721672749873910343722329166486175255296247861989876937287513276336708766592227160428728782448360767746702057579121646642724677397646684213701932227500748936930645801178076965280266895206478458760332775817026021718643947141225229871274703867027740843288934285012416954383273267853496684526909919837886203872462350777105936377854924128040453112089761438003156245640000142341143037517168348159402220259440182391295949990905098545411242476365807033600058554915708960255247831612540608585862515364104777960736941363216578861921567634711024747459983771061142323576961494852417452253466093753929184721997669773622077815397317977658308683877637349483532113940036957764967987682654897004559313870395394700075183783084988087196363728450923151587581025140345541047261868280749779138252382624666250461773510356777625137755808417555110924615064355716144543160547209075598807024960102646615292227119757583252566705601309934873671508630864527391627050637787671781216508483802879676948769782689738994413851197781789128079230184902727272599793863980390618811470034546802688978813227328507696612968319613366700569294397986080761508784481581805737798711604867468062749021372382943344844858913423278970280285914763192844209430134823344053113343587567688387319121934296947864627607941682945114056087366985887086379542864836226733353824850825162952069039922310353822146437596939536682661787417959149369351668707336212985458532132216003004295177834599262747592338066671711906779415637213727833896305189472096487983051003603698577891248055463131785953503621862167359070707392887111232577927796022235816604684738654146211393824840306560537523832222659339547461278681540785890447696812621578529047723367465006972280860451399339932163305720166457918764591054982717788352796496169366430569593761135035229083318871317690375871124589264320021672754328247333531885757288570696477169298884802206947214907259465700113764837994326121682379668540480310574660361015478802439220874262207231545547475773304225746352975283273650697212553443566331431138255603015089149353689392746557300675611183792328574204831753737961770623331872503436521037452046972164693290215722366865601887043487622661738876649030786026154203100113103834899409407784846883728459394747339957118606785021453210740899155627892654831196961517900550945365269364944990172252044951144425096654255530453127850877239887542024156035275409692949764206936794972212467730404921645736462641896014496062723332216402588442577338874306123251811876062343631787652007355164792848553717206257077312568328700131814065245955109271316289134847169125104770791657307182286745242282238783134894932577534843224262573975914688714783009404774791436424622362514675662007518701874269540580971531203392876068505046548741185450266939222523971128154193606145833006611373437626132477739014688444775029264789124625005049326890032710270555506654169342593041940185863135524630012707140719424080602244600362695913908802021801657038449914966306201183735718690933786611343503908656572627639733618118140498176853287730813542905925486764419420599409270655667553455291497825982931273993037111775965110172420792322210789115005409619431676140716733257077006418871974049240664614463377509774655662372188370808251911958040772965853352281315445868598684103679488718228845209940654527549791253355255727801396964750322784095985758196007480540203051644187780700837665411259267937578545346506634738957702051823477118368033312079270423715474676697084438584032923003974220444289352929603199455892944765362370421418095534360948928282968595834633831043750073842380323607041962112709221889027631165725133049251257696466062737842744005881267419707330273781576975979504450885114110003784562456126876793594720792430318440931393585802767174352145565593767382907891307588211321809450370819651794793956673710199790036358056382865734629726959479112573174544480971645379429224460034885423580613174158019580160971039792737165498532955844835165116763071284854086471965601784538115525476525363947606139256621901493932472814463717164221430927982641231401010693426165997981084395920280456487697263950529658712022178575485192101920822437922994519836672126678868143688438779266421271224284809980437234850588931928694228577095441595633245802501966222319963248699151430483876387750696157682496258311051318391556500827927546975463097447437638341036872345306678068626840668472753408516735866291722265157946340782501348460285208990747636364366389081038889459168723499116373175093175116095474496830390364896685470922281242408311286453129411622858874667013822527424239907458922838557946219055174238023399121929608142436307649396417947186410523827109593936830158423253118783703280672882008246276163895035197583199527040746419840443470482534150207799252885292030676985838677264332877176758047146758841094161777750610281105399033058982101917302971309230574640298872326132493266184408045539797851753334841413403972984818153251442567077873730990376814504136335234252237415812513642673052213434955167948885355646368349171303386304815091403330156709644441167418316633597397417905684662190865911271432067350935051204402869474577904045879191291507880780364210267610412349096947296755856914298167212327678832849416460825602125757915205335594120706236895169690422631905144720211189113135803435233061923527228203704815712408040805028075472964244045256569640784102030831059213901846069262263654815550768950903818126683766298802358832210837812642229686963004757435935327718628844940006488600708568763154672489491283996555776188385141673450965406437314513899635938778200893205046469591556236356451176169847611020937521087024589601863213930548979178553852903670291396346950809410845489073039238891990096349538215432157786739975712106034934185601106977266144629065249705914145599938005727498423413520531462121298953915235963253275312811202167815716658714085292144495469888443192251086632295300531338271547354718498227889016804277824500396727834391698073839563868034761113022136427644730999352023471988606144401540277796204487078746579363313245482065741582069308950801911517118470941907877901431929736136132590489189849190279777393949275461692533469302470969348520847639602507247792529497108206298869395028474956813947876502309155802792019317941277603532631380002654476726949976367961219723257879114384029304072501742841619280852055737217113847724533222269980334310765031775946537168795538020365215962339389336239672484868124616420386916962599124687211435380849636959361394289004761821498569877510394210037192815979801373866762263619617686645477013454758669827576384643665753097212540406719902182608857176438125407791928888366380362319129963331039918021803205352388943205122945905922725048413434768196556278090266600303788156230294811489463609833017790550596013067743938922115609806994700053920907595151373855699564792442199667547995362142000455342717385691428828292745271932691553925038405871403731895945791363348253494942858793015078318859408617487606900458675457596004697074687989490486861734585539475362341082405985538917936711562062593284838653291505674553530345065541143261662096242789262718116373869061098496489693977413846504012045962035590674746827021078835036178248604987002758581209407369212830330171974892572508396828453392659453531576135151212975027129326208650548593160762417539396069224152229492464875315474579817574048007749516417405849247929019920400052707351691988192650427515147382728965293198671192791588232550786706440915261322277187830072035188607375352853783836779411822021928773902934617027839468944630815222653101490764442239055275634661658993944297349888345305054814239432500251566581392085351301143702702912218807352663757878811538029798426209614912709246017659284293695304248911213152209503317369138331637159110179667234425923641364903116182756821155847730307495501200176004833622266615474832213089065325617836239962277691341924164042478953154309532793643141318214632709499598701661404754550132827751390720915742378279160484238417914157065427821729000892159307357758488278789906046843577995083733544000548128764661940109704264405601181805486054733958482423668899174740161904874356230648579703082213890381774745738287200280227762020259442917325550841305173949778271340777474858243188933107858074861220599758553166284561216214450831449918753637521162106381361170750790927089257773484978424596358611216259171638228284064073375182091938901815582875410231747361191303026546801859711577062703072654851237102092252002735770497179272836262666130797478576282599271872666532306384854666526210660294689881887311993709171629384530009386161324958393208406702330805254411018930457040609111059733162176800736204264411472195924771966727820100560931952673030419374514588920860297115064275535073878068976263388933180944344331204689135871036575685408575013154236932511883295660649798303286754353057953384908612616259681270460817065927859230950801237651282577098787273474323893584937695543089896847185774598701392163271169014133831719413855946493813761989467602394309254974980392472249427963073333610278005781557476800113174261946467027723643230056018212233496683257979838714864234605893554436198746346530781712171362267229624832458295621468489828646496903465296087849729347807223864964653792752600308763013964119830628297649747504350289661332366099254920893954288303841637660211534683156154686050300007962466491516861542511131980410391924403305130805973098369958063712490672919897427026700693512906123186518033564491542417442123760590315320661431537028219825824920365579826107838576982951478687769488484659253081490490280692729811563698328010045295716568920432216655400944598618399474911077141035326396198266934767062700098056767763916980966028816731887365438287161976572992261675620457334038663725032780550791608822829899981694857112849100725978906705413268036172593032680049233593402399392366602601418187332596399001035092662114375484925718510767723156732583794794936835370247530048342183443969225868139221618132182867136489355189352307162971042088117563919214779153103842310960231118445233385751489418025781224853221076818914233384671498632991554582209270641372790077197536486441673324594413634409297326081982730147058224799638405636960983202767902860546417697480372766192068026406731700942703365386012073546455473119280144170053568457788198857464101685033028748891851393231729524526521913319281875351641778548822414915157072802186478152986867615897658604567928745209632527188108492417181490599534948807237967035053184278287333666541109625894765475847999951313280342378557463847872891140961828152506191360888693517868897543575481508973163042693467545419357288034544125440434360714339679509490043022821505399339989616483662514340856282078455395553099908282172997083758623217300544496699321674470363978740525677405512545715610779049078519216009982310121481254156522249875840951053796302386064499109036259237129968863612869221160445206671678453184028505751715827737804503169032277696392676844667653676167996527493787235715450350576621369387059150934005762837731808901980112505524106300436430897949022134816007527467209130120145175668468163938430232839556569658638134434843166744114159206545367311163530550744516699888846038059498782963729637547884580665809426260036966720044837206550029904295081606104290058457107249645924036884474377849333465797348864350730393710092396754078378629897752752144958562862304868865069087607099102476306071037040206264473186479564017989329264886823441527565525531598324084201108551145117540997951087387392499621121249215381901621906957910219941236228585239558216254649554915474083568205026703390384541994803909499959674589877997158055443506211821076614045697662686139196680627574836065087382686900101507455024570527418658859648592970229762996882869902939356416740665327313569883068951146820966673749092470324734414763310200565542914391154323360717985736353183828103374927319857903587700339388707142337173302169359615125090200377861693523159088787424794542031073640817767625634859683028735863882591217731636627295843576598711198449185477423663651104886650039703699921433198898073703701653600311097941308854283730825742454397923856393708338553253205773006954535820183399340818803003346771580094345929183883287377559507583574230474519891357377328471539973141849055319734150594132755395737124860302972368403722657198203157318082632637200566496699553569675243783713620791694841271134134293118970817848891908190696621304752150793879364430086930686893645124165159634173880647772534647861506420654076181896273300316796055719164869525998880415440385513898202208009952121920918733070267618366969540526102546708676259190436834105575447522879298094706442477968992072322467652219194696269218738786759287250601772257797828620814148007723141954219647808624785847647607309599891131058306831323037477515936463681265566559769723471792568081525860281993900955240677982683347725084193663277024534136896791113461064847415566339105188542909262148852455121841411574595754384045128565648965366974883567610203606128892585615334936666666862357590489818782746365552520483487397687420857433440954723228730940568048429076270618362441691482217580974256601398410155139490833541282928851933429978773139500980698997947059780135413204638580582035015964638554665744181260870188013923983731491458846783847042647879392752492773033428358305585334886000788546825162256739695555324474638946117957705494827797412660071219551794474482476104197936723887608289087328765791613823804255126363672537216819337016450526049733046426137416290043721099740110425796474483725060185340185127274099279136819241997050434292930187936423595239528897796796938077144961337663193821268639540533229035706668217796688534790061783696616744546461264972714175686946336901218172741727001022134828109240885321827685062752385651721694316233144870821746889387814482144325154663483130743366291719099215104365901951819184633915559021667873737558261904166284617732827416997938585116360279964616096831061740031718053058629748280868333597672544789505483215945029652713469991303331555874482942266958402711859461245903268048921009667839522098621430020646390909826196943063982406506286580497280250758341162804760491390927260140324527261281498993123290551892605000543174585470929251327010602837415220864384742336270380339291176118485146964970532764284681906664213767040248918824788025678078131287176063813200965279409058360795678470903625544180201318235672698234988564777623647164027305382678789285782791064294513584882095757191712149902401829307268348545730309303902615529691521680932335038263839588514505088126076143970322491483011131042784882436190247938315651492250954953578306901332835392336373429716349877883757129006842413267520967515055569456705314165166888117510972849302668969612296705461762078168101564366345279123108672708460100231194642292856723530736771378536102823800679398230237419857858647124820403783075300067855067342149385279005284092783972134612747743365052221266563408811745053077249395762242300517793580014051004052088421831799951985329269011363314485358737629978564310073744609425363811576066642995423029156361021442389491218840642373909608327505576728209129689169957795644139959616938799184735284049900844980271717160830064616753228935883769431429943186979810969292784298629303059366986285117407968854151795805724569304785914693353737463241035330958517321713906749683911519352097546691705316216111254378893314332808963017932516835714996729263815359250904646122473439590962177038867123631525889679924830390036384234927929464737109029612040381470376505929249143192908700960973930556696067602955489586114371175880556011337972950256044976548731807657697744075694607935958276313725436484444271806612660429782189890943618916212811385322402051099152183592373833661468041397056416391368189706344144058957590738115340382671095189481084814278029138050165745760785750905826008786507822257908815592722057618814491661373758404774678353535007296270290961779209244682220630307412575177206556390556766547750344779093253461935476286142798780016055946772520277490180459946279140503384058812439051551477542765536093790568540426755285028694435871021254404311688115906179839563306560802292051066619183327605196280379226077686414507726972675652079966453615654171490686648385047280231921198247550291448298004507667264018485175815606415310201059027009936965792883462622041900866170059952411430506946511108623667127352076270009416049296319214104184835595257752471359703466546237016521051856473402336856932495990688689791518214313697641075188508084740490669251807211831527601629187119887543948180769122414881012189915060014726194066263761047648596552383614053305237258039055878632587178488697627777594981044104244654731955304057732478151306720853861955465561457452876406985098124742976866359195713523069273226358707844039543312504959148650678355426669010264732818935553851777269941352235013728866099229044542599660886415335704509978833017322177041825777035509893623791717739731739235920148290384055576346252523656573322578277345396638505151592668506349095985195090129917685186694064931282038412617369841868811728181613113066576039462999197807993871718954354777067004613733421390737481783737417229102526879563713070900865978002643650427650427225830101914669278585017187738126731901043596698602877077736969884598363327570290602980076149963057565780360610001282386065373384752753294078751877408804849559605209915179900816591723870019837185916133565539878047359868065024595904221268656341145504659016345751593115795026605348289784769939788265010307237961815387651900946821173921126909112998514941890764935142907498734831098845602087041983066124705821019226866173681875677509483625129690359572220187981498657473809286776059858724667434388387895041206067128541556773088267988685000521067551991248461284675188974752540716651650072192879342620804190528378074356335948331863364247519077547919428409386148108869647166156593966647714286868423611093991441449650948681368874322382238165872245064717107608391260839253254755837345727513883462273739110817759282149215755170831552441731386015696472948156280293821675815975654949925333610496366575181890032266142198588196442115907782636533180185396912030097624003622570788089901884588273808997997176271195479864598266917820149277071654873597168075676148951520054660327955090713892749430380263531159526815185728894475627049797804658090687481509275068306177015423654305279113579171563665855620212827992837898706233268358026943085129554478626553037631715034919227992029034338943438338602287536020351513141647501792905887379423078372775954988487705214826482888929059916378937548030594922203345217081493442733990191553081301223287332476023266812497017329499294038635161999995339390075864982400845670084074379402953976757662185396221279068746307099913650412402327141779658191823854113622932229825105860776183450532580454365867374647708739293854392321583358062200223866863760286858332567737167554443330964079744636431899337959962201689677203052608987622497657680917462156684811891441549992801484777381732073153735612297652527696891948610342086025741391912074709208513779730032881461353376940864671618071585251566770740099080074363012314707026344412829155395842604444516707490313978839928661771356352475940379939142584108458566968059616184026465367260461319198050871874038392895661133191893459327146111484179787172332053334374316474063220544244283754428377544752348501841520179614599563932193497787834143418075274218608840761405261879899030266212226265304225153691562576270399380872108850625210185227159776303117828558345678899362936430881127917827796350621620592496151947837477663281947447313411671709516572475630072996709812579132386733531276325549784640732666322516927349209786542019436295211637589721169856979560936247874742231667223891077218475753272363159039644367968755960732278496313175738863243795940649679746764669723753906548283325849816259152858423544033055538774835215082504271859264653519522164452239719695196930941030919443129909190143689958496326964336889957063113835985892866955818204497013359626020349484135959726777280226327603004402100554655237226126970380983093153052783465841404005013887707595329341194755845278594953017518305133498653899620493561878535098630153120790185656184440928178145886237381652097248545237264591000711517559211280275677701708075054897739520411204144014161728234428675429072223480710042457311786018915226509372229955243199654753137426303821666537337228203463830509245468070098561010183244695284896497203728435380513022520704040711879010586875085326939045757089825367039683737067243035513582091999998029086806038936012699213942824001704806276918115155962336869669988377908368779476317491399450830967193510036589381036217140258161439473184613350431029236852512404490946991134355649400940935589983646660569534422429974129147949840294560305636206976121691354961121153509263798588861374531486446763721771387472293078171747378252562092553179935739163637112766552894771165280079822136117370678360777938534817911419162073232687377351042266216584902293498516933534054683262151322976849575622702487285983211180060453488105085912602042612815775376849092441950256535605617800328781985055616366973887737662628469348707222349468665949494158080011459731067547037732048230214535565901039236718454981644598470136166065227994747410381647916952809909395317882149584262981561052899794701265726784627343524083063145939374586173505673908858543664098986194110996160795128076661623850606251100920254685454552424473947068694064312905695705233988608671201328305323702171829819609673526387860133846410325353236580619868171343344754730426421191486053499996898620262002763075703081007449182467657481818125119523026169592307865389013516978446061533666939768787534356926018312322184508208550916821029088181300770060947523936963724159503721796659624151940758315483168387013222400313525244659442191640322597385555005442555902519093541133567310854618415214042601662325814836921171412854979847003632157667645402505193863609205562949705591668914186771402161990699677851079038151169028155658872407349676526775336345571484178925655707440165195837018832581231908464206089557098374241117763287804132916624131885755388097503303607615151364029666116805907308066087547390634700669679186612773190147098065207456910531182422997423619023175989956917703411594700798280386952023257371130329903595872617515409392392086906510126033450039563522682443507738114052740855436447902076305574426884538268101753087344109537051850329780139633422039360298552955489415361417424054598513888100217423928331352000711243881282068523393578332638106286868937109193141785349772342373222195693289590152995918987694490347446141589860889764435356677978409842929680580588780251184196801974428702585725527968853598165376460963192664461325573086397686697084148694841979772083001732321714930323609423834762921257944724260992566439951247716066211953623889835357442777952435480055998973206469492928485598231847881948822232458477132849298195365247889044521652773134607236829158892562918098465425724187395365405482066170060548920751912673411688231218797971311276538006414822874187192977852451120046841511844064539803547069141779049846374804295513623446783943219289932643357283367920293915028923007397692698435403937210131928733801845291306356707584080320015312808938900544505670360860293095990413258934142212422235712848686503754395917958735654534740852921717444784868407299511549617436501868420878500395202190819429758940124815355477383070837934041499585608283528243124079097500717217215377205090162273538421522236745410506527041317957858169939778903116719051344960455746101224288452537276320986821446798936036119905478314218641567428292958579540607786592133957072964685326311976969679386678699835713184561878670830755639426867016203047545190382253127318255669479067658952536412986183662151953020406680918560507378060775352566688675859454236460129756356347319909184412225194655516742379082291125754269230065839299906487179896209392552001634329097438197510451301961210811970519967313027828176731612998003120427246983659867372663746144569475227881768677877003353180830250227766577173650475270295611008925173200153741297505636470459324060348423695935355877668038647885275818597050427123565129803044079117651406048136370050481694605708336022623158438274769875076629646235669158260593459336460315040062226623664046692830782608479967079866720899786978917333190432115956704566665471135541631889680690569985836003262591355315711803611445812711068326759406642869927336978356257500181172080725242629241005555927078466039588731537563574197849475568715090108061453434449693758064490373260426621264359584746750944686379468956927561636628308538216850005599002255816825619882858035648913122008153523519042958071124710341095953010804185940406827478946394067281350922278676632714214747882585920831932643165252125363766666695376617827184349964129195961897441483617431593275605911919358648320606891253160096520320618021036837407023751473605063336346366616478710766814708084700582830652556124172542443293659463027271283838567426024397390501712416736684874695445749935158398957920410269639723024146101905306864698599709711606598887996387239894391902015676021383087985819092599190580856475887373801548474820954070608274084976391260882087940381628742820103367934072604470141306879974085748289018897030081085271545109883540741066565645846193297433527820866963172427903503187375146526680708601958919656911943243942319825783670568062823870614860212304073073585147665423409626381388454554100247715054735425514977783497400139134377215748798666367984005324943957492901143998918429676585061389174845244376988055694488846119830785649788541411579766038569405636069777786109797834859533668289343791609737336209447116892054579045355873376421465941324257700120500816649179411417620402852215573865208952735193553724667552561314300649469438894060899058662500843879589469550190550984745790974599735347242846550451354503651938773936156291424317415147930863848425048574611605817427247901901293027308481651529909548550200869648945961292431035880299791283047843914991009294046702301652079095814976641940762283852491557896776581418349003055195733766587318283898569090334678611211652097984675469124132260493765667403955287895592693286325273231376276143958548235766937660388857329266750605131548988161477783522366202182618193082952300206910754955872659032950458849817105432184493832157185725503073625535996123731053258882967678155401564011201124248284854984873205731693834026633870934629139555143511217071933749356760207351940137190649980616654861967851208772204340434256156312617363263413180974592998334850396604780644334242817338510052157554753288674152025093967924835368023321277451304758959520828256854239877683614337445433096043879058912856405834537266933762770660185165525193108100192287324845700023470059832562195763764896175906609612532979877512019847393356417522220120634687476136728061779414463979320972821643499400932277426251428410266952563597105993532749959534353331310215637127753298405988615201153512031633884761548171491579888742173799352174383658777517475179782764027542824999958714600945434098925227433206812703888615338991092714212779595101330222119981119438063352554584964407297663995885878935937241659862809861661438418174833471073350148830577702481396017731015439221928368274800854295908029106927789817987312802267623273849055051429617596957007122819394110407083422521418809000704896161057043497549524582477646278343656918978809602186586199055662026633277002501822473713648271533496587953770025911812445400232997365399237251441867131429703038119776736767631775322983713159908904713377130402202526807808813055127691490504263393251926600068441826512915875053423853441029952294579553366102862383326757209825887105267258149320627819034804890850724822129687634129240472441874185637314452201150867332293483771077184096832233488409741566612059884862047322085010231856915644081745632912338545030361586970655695041210635553359321733202704094597859816061412167145979765159305469666749338766566539568434359408562205380798080452052122216463742740171698675794448528653178286248148204920236063022855967884670596232487698096880648715123934280926884880872309753559491294160929843449857260485148242827803480429926025610805076688314321104897447211756114634012983382759634984473573348652853454267660127780936429890256402936599484537821442059001144342813047518514613758492346084816206443896768293232005971200696138180566992676978773895342274578438604823367296695190450838902095136545662636043420467198858109080450464541241954526756641222377478847730550491379491459700775367782045842552418867573165101979046532020522812145391956424531294219925940657918392612102823280085006931886498457692345379444278274739842371547869401243292216610549380234967004948609296437912174418603157529418444634174535941716577061034986270503142743001530981081582696099586590473714561622375054794808282208128335063913782476086830803238139922818034728271844589553596738436788331524568803270499731795096327786974643518168460787078297678175417578729624408700169915504586393975750549604520528648714302492316022681931832140397245055285355830277637609425941914918461113918906427079619560817464038560111652259591442213907087177017365091816565633878188830247369140638787061794064173795632649751139335640816605992294164467782494100864579607856139100816167767774050085104921112559229587239616764560934936925996085763789107789581232959892739898510532247847242659233106618427457417392522759806144242968065659302733104938001167163055933517655432236765753922833715434611191589787349076246385361405734392352569507474343309875005138198765702305617091782506377709319446218121903783341279894109420263134953347103866691298019815899921830847613392493996718578615169658916484323683375321530923334839120731465050150974299156904846819446337722764522696957988608838710940891950619839414894538700891872605103847528944749883269328591049245136714415458282469621802242752989729449654813049838855369079010290901804646334154113944830689775660247158843991673966482762937110086933693627336819716977256947886697410615114406171299476314469393932129137572312655513165360629240585084587966527331569665269499978085583885334620046853495337937092850932903386890186423910234293042256584971190179169629372720019933796554657921721216497927140124053872177211086886300148970418687881308742078815812431871940186907318752546105397976823427798974310194850525039291557137366473569764831018901952802026623833527550038521137230182159140407788293024043897998346606162691030564267978231064689341690156903597935278875410841180117374977587067213575668484590521023983031225708095934445160644714325683080254530894441190719110191811691247534837462827245373214391040818827465780424492203016785636369361833081715741411316284275566115755743421763887948567021889391239343981306600058790618325860655039069583463554178475357315441069169367075518455296388953646096120501456915833957638153536129598365521127933249274973320680407083332669226573282591548746318394778137459678740325291578111396088704914298483414400631422849994018278743523166384140432138598933705669452379876605283046759392377444877113907745496325676558185210724884118310868682380231952872825698159291919867304324450649596825154159700281318020117551870732802299349696562098002674726786158063721298377672244525502147754915114348793845299923816483369021899553420759244657278861119955905952006951642230663123156371391578462816848996416357807185616756705505737830805812167782813145778031809261483005427981686484932815222544218397476309046269874714537281896462165918467380750988013066775445998086359710716954884335838582772031109266261875954281380758915872675679534477198581927495739455431223152399840422854017503631149012416314550677778444181805169565821576043391615795896322269504423698480328991684635450557936732113709943899815929386826017844644175376472413428412419132077404662234652062665180229637650586937813115913453819062552007200123264460573412886349724744772513726235952307664465115120498956482853425133557099001746421036937398217715121514275287562323659477124805292624370178899659853662282418569871999090102884411737270813862965450121506840966162425817583899935202406989177261036527741966131854315534921569902787696771898191388994371066416431288953452308049632197866625067682315700141390031253737298274023521055238423524766247956101165262089218281363811839028088486308264179952195957870664476285049518076291768706950041280927688728742529320270838715208076677940643200737832310630620754644466389545627415943465121327144467459158270690033963106544957148436006233015963275681679361296007358426513770048064976502908909416084223604024470164923360488089795202637736406893185624070093677368800509322239878924016403957324724407745702727872734616526875418357407159327840033462343961800772380261294707033176746193216280942317051397636463477081016876314483681527403006553074268229477655477724573856603710743389394782122835993997762676635662477617668413242829369306941185478563509256478060621506268171646965727461842037842827196199279524283077953817990059820953574876349665333074841898091107922409839441182260878303140416314884467783496026012782336503411514644504614385855557565130670562942139482555265797104082932383274421546437852127050071013839796202619979029075050689420776568949783435725290949170977643842471544099445111873447343504560961411247518170885007760041628970886741091007126299858964544309209797437477366915813025999915151408233099973081365291878413060255964169252031229244950500134071793537321467717171913047154602984791781369910296269609538311757317400664499821745181369935962678936256116561745668901975825731065628843980530667543725092711412182796931610351713629496114569941990588689363339673020672344260331735827258155395668960474505337944553071519573116031410487876710647069502449184763821889343151969039981864298573435723163391699657583230181849500688957870360504740397026148950560033010792995195936112846181108451285034610888623595651381269858794624549265938973996054214833088865544237988623997634683639288676271106010047172022480239754408836851106939755927439994044956053892682863358944111262827108421754328609600296273709735646541039903829603105994020993347717585244019994231877947943295372313720330937656283801059744252709525671764714964592247050159270330987043520077378434899375809638354173167352739948024784413642605142640326924943692437812677589187728195924441028062677380154160898736563431743860506789847846425608946172774793132208123404238821802633668970769195310016568132876305548227294506318456648947406078621645676438857444339070269534473646956195541417838096754272399252908149712679693932758317280422409532227962499480580286989379161598507889176903624362225812066184718954192651417627768718160490866605910455241144655042151536138799630939967450097509528202035032728685520337079897326500734610335304077789465995439015466167097499555760779246818963800511007805983378043178659711947106320682068788335167385279048068063331248186211913371405153579660522240575220273012761884057369159936358356732890184456802902432235923944599034843797300940159247938259220855244164175083479504531479104373489691812657604012952637840588971283200071803417778170123614883428101021909757645163976809509497093564203239192368866950835259329351927682928386474947424333451953988796607816026871641092340159515075555455713698997689391387349556851046207546422215512258661421643869060651464276209669777356023183702678184240292131117906894642960122482434535189574019855931392209975975157491570177573805557551999932967395858203554395470399624772917352581184164494780308206002313699699457744234392373117500063978837478609834345710820538182183362488074124065421064289851844469169220336505714135258704944920005373005908561964798939757259445826886765841982296063175268010341715605185378962195394047369561261778775572113390882339918730052833247242754989286307543209910335439350372159440926686794671621716223482159964716292181212962232186516727962483461415296556798614541002285195761391478274995656475913949117334204700383476683523114067652837313314279622282262568246381805460784756313451333173272867780983523168054075858216792841905381518564483313701689703629474831947445700150849671733958580739617378370432389395243081879942055690490066978004673327211323611209029233392098694192836376915221780629451199630111061272453511232877719748522464858681781281973665558539981340680218685719671263323971280626508313103612080056767979978014417389159709986123409803248237745756793018883314523443606398978071810402113790224802734060016294725240460784983094694409692626654525859881746683214134713601901001644642590166897064055204397351322532547771998659031087296289333586782146982928197989585614592283677962724198897980542686497188437263907546184698585433182664715742350458363670232449379621377799840918743431236767735374615580640543065626151863461720302084897866449915937585605543670043837151167439097337479759945398178077571926140391970887527034844425139030063915176856194017787430360311231043214955845213622982531622504306318591709806750795960012033236933310211911732932986406990317361716603140641029672086705434702511582319790755642728932754010672271224571774458460508060856116099064223525266650287498380258161393104781769917690192528315033211510553314634806762534893258165272600108141396086133273062617956354962079683791041464501900706106494101016374906990175639118007464444316367022336010352576715151296384428671587499565463433529551790772663567026961781975442570423892943212290362066760573283475826653559269071216933530715435769694560182756939520540724244406273781643663294278105021167108074106796276554562867672563970557615039728233154189403652268056817792657292295234241618189704444282660162404372823410236625686410257622344720031989062809741554687294893578595387917848859989218390148930216651792624001309738827860126638685347858759871966772384987614118905413844685101322866100793837633164002994961614998237446284703003250440319345001483981791898896440082814131563431660432666336540812041056711604471740251378293684300713984628821642478789988406923005928978762201949174182172302283611063948149859672767340951613342176588539572127442644325038201822134023133339980471159961697549579335017783613173883157554193076940851325767743355859440235916524270659367410785231006383833935528806674472120312444440440756009059245522572745829941748829668021794305912897822584404765894850683479600494187433486999788601615788381795134285865377460121021828195553568596864701944809277318014691749926592402461053088665435788309162508761152008055148034600031047365255053636955077867910332591737680929855270141665563341690706036686772760317163346318278164105230666590495633176453857588169685848710213061271226227916440898302215148684750566052401734456513933804804020267430829305749637658828415249922463581311787772045452246351759865828530867420789877062551814256214269795004617814109518441571709069455494930245486571021509293041698475348138762532434957675623068740672309832365285338864398273341861477344856086865688296872043323880938808000388824776802881752002987088757302640262517910263855505867427754098564296210479947187549117229597882690523431003039373524556957140546108004422976726091511349280846789504627388812668935767142122507143808606227141781300673321195567917662902606674761697699106713180716441604753970932549169145722137486687276582897032789754970374939366754096247114229168443311786746186365966127179501463645329472448578559316139880955183321016102682421545301643447405314870887129132182008865475685478028263875359879773081344753727516784580975656452973921043446449447066435614562623436918021203159150142778037980118853364409683510481083334426903578455915114605399832988656867160275818383400372686021395065652234446137810980606678786859719067206229514119157816550405147117547198177408892916365139522136862213510576334380808492446110011478465251750533857556074293794371044465379036239789169320126623548048997304700019951696094758362152067995296838029522980733172624173868545725417391926233569105315963590426500215476980605578315302488723066705020892363486031045039459036832977591525037813293093000218874408604698441155142271347528366636779040444549604634672279949984860703627031655643976227232016558900446755331936244890548954272760365140973216740905828185113366763564393163919575483399031905255143885249859068809988568337213203525747827303909821140808105723746133602342112684602102490583844986782691393777054725244382400242222941075039781586143939969866885333031074335453875666476200569647608426869753236031550239597716588655334129770097718276669284948626930234002397788162540932548024901647243061581767066429972504946649987241428301679900735678322599120603950854869440866885242738237980745216454996212133859740943956004716372781318173715049834631245399280044228771391793313482412244813271384030780455054907663264255512236748270680576973093306985352256585466650814352932121347819243928400110455240344782874086323165469185871590678632651547863812361935125179932616790146226587574584009570797760083859161323065083407188859558381010726128848473033185073990743964216405926726474581114888711474109295364955912215432047818315717595940240820915105355501443243145249807388128637288947761676331863295228429879376696761039417736600269107991116956074943234075788475171270599753134015450894610291145018752299699174202097138429491922019168354098098968321457559006738093241103156551252330982281553037198148704671714076294600501903918536160853289022367945030463710433375776968442219542818655228168667279557314383022302478109935786384928162871770582521717812533423383466536928578207907621901861214292303412464416715137113031017205622788030116721215113455800319574172604592597391453223148132438821881082044235728987774953503902483479755798850577659752477589000487073717451031159316204630141811632051178330428200709524824549758147224964326920931848281503443674713230940328158169469212035182239392710631366356284597615217775302223329183233958842146356873380909733702937248242674276754614470340571831648919772893790058502733894716145516170272950366331175838171497721902108474245605831150355050505091045993802312409540823301327919007810712560243136783351918195827606339013577872634502252977230182244943534227729085718390539090137772712660197371974717085168310756549894457574206149484268818849791808905611761689234709276388089750247402513572618950836734902795461759912541655000866354967160948213723524161669792898230749719827658447385285329273070698756253685025567359388699273078546231124453408109391141010836101130071044633433671460983853442739796175578043989730583623815813027059132006985492799570383114933890813165003259083891290615394646051683082020599836815056056716147709321918627636184237470132034371817155439636762757512046171402589997603802791862381159274046128066218331451472617247821756644492103721677684620293015432683172302563361330171733408000560279304486884763743823099813254483046947493512875988197727761909749914213671559066834072850791509807909477819489797074761284104727455796115533553112338809460196208167452105101820775552162828297676991730266283234887028091875481489591998064149164487895794612969392727512625803733413752760833758378305194026146369091238851568090972424198591755931073938561232928275210181752483019579442618311996022341671452426015093392863542919841603103995029132884469452508345822679229308064855394029249515160436911743410884264296464162717785059070694364639478161652568649944068809813921253369636064744865962887584089210228361594148614004113088785357328656868941822425856724495146189602310027961088167894510971405490260363917930026841021526190589307129774821839276727568660181549447752086718751334791578871684362976862623789946856797751604644828243792187432385376242268966949817409768123258582675055586126297331306393242634562109534142683968808925207215092915595960550424720989022646869563463814735163774879734528564708873167580564764552302052301949752243516965025646598961017862127804385213912174366603532850229649182627950623476481600791430484559034304425756905046035506778902090427264926064433676945889765075681262477891557990919257342619499602354059698444157674068038243125825662356740719275259693179965629634749930279716168592837108784714354182155236231678704466494333786875824773704617224672575385092280303589390031562161431827880663229024907053701008648351827014591127991952677734392835330782367501336605506847279503705054476798873508413734455688300825068463351760713113867931967703036379698793538233297038598356066401549742849280628477885029578095052576702042910482103042600310293897125945021325962698664699762054068327255881616940160146116991113408431336146534755933916626991630161052630164125436546072399321009925629508313629363318959196335535995696264733072006843521778040353662604338938396273509447582046021065097308077417599145830709935202614450967541300225356921820351865636214033900861717042830439189034407248066373468960603477738321257456100881809690027325681597472606341665401659068780620811649497831624777554272709062387889404711132310987149340791762359964327203026953111970507201175599342458712765063048366966423651322141661447938613519737355969067937395738849370065303760990295279242643386292515720950793634905758759849964243584295012282739317666188540418896323902003065808799522401314632222136049411217068092139058863755245224146710527804085474226123247544362427908516564560364338731976485166021073920039232475455061649584129991601462090545469033362745792132692634742265216880577820775305141217212534426956466223337617386896458166263482994597533114377513500156841215912461137905278715691308468981860046135697565124787880931338708755811709301540727618205395256978455740242716058467834464338536457302027221465644542067552571230061641234539880039675457930173439471142862639350501871900423043885992949707683067233395283962107212089696265231551849281550743873654633632145681093459987825687223675537509741097622734696479099419589422403926162389457057384549825503678964119399647787085424919283170135629727338249755884922828561242615157011592624846667593020343663497902586358219641254286332511957136805170806459374501381745568540559101997922653806508260513658768341843384215375472574483375086953471702029060402195562722920046423148731423848001855480585764571564387073721579713613581761743671120839016370305085012489957224836924545429851648293651767271522857791645593737431064760957969167230569883485673154232678927524729226545600543759241365258209949458962137888244205656942022612965438663907273160248105035386217040181397709622475839311859023553502134799479592703990031708900914718556757511945832592113921484929337228279947602922355457184451900474883929687668661134728245159782228474014012390837520166053258197145446220123195010794031549916365183522472803872425725003974192220447596860168520475921929447679344691616508667175919759866590437180833562545896197492772116244723560030470898832855315250881474878510605225678473484220405857596983759720552838040422645363644787689233481514305947299650943920206556147107393707824189321254110604353987671825941059995019807892425162435694020139331640218372345939328759154619660097739223359090445401963477640127987783567846771935723327904784378303209820611247013846127890190592928928253188241615043093102746477036000964979271969697088615932067717721657675428343926471856506084847174709406879958852021820313651997821484076198189233481640418812375501417974938419313284770321377909962262989070251050883629979694466342028510065043793068679833024909399363755333392100858170282656216640361909552091925462734667250759679128979710905309256792941517471257711394377520755230157189166398656499677256320570876497321499463834709356299443493380378475765857179724833179433904716958786303643729520763216946960782266911720559071696396873392137944250268037225064454955211371367579283955138839851602699145758289231973995063727073630346772076395057536118493492467332735391675147336332602607060615260453578843978946467210755681930315840773812759829930491703333023585122894733706615635109021817888328735517846331271460612750912214671771143435657546057099913662153896051103998677192586236465560378579607545478770735795898504623480828727332882496651622015386631529482152413580950790471880148664726370597174793924423174900527469375507643494524363672293372968328838106020312731132575796953264136520309250503968154245325490405871869941598390993128206037291327723546818642636774679460483004809734512874744994506583401488079382639627677373065920722308787608193091498004212228076705412796748564057912912036881011947619373029673082850609822284093491948207105080254190777882742215716430248366138217524038016260618367054157738911402921828230794974154303929838339026469782490328821156313466752956521125061934825028944645948446840189765758124251898756557868468390321637909210149364364853258104817562607734784048477286863005738355023574569551387926847407852710672198580308646069602930672650364013419729363224490229934286900919302229970250399794590725572393943948519271284963724467415932977624928890687908018320689565422898683755005247422043220179546441402409449456982160559575996176074392428602145814951003529437316590601239343531882434098557124099080209608226846950759916308052262521255163486628118725066893906449591865366466008572037065588470891604887833439967257252787459752858767184662988913036285299870928480343212143102024338883838328547977621887244456658174321965138074122465504590478964879080327429923164644838652364310905910407695903348308849183645208566181563393370662933563003071982482065586129881672402903396417410111167939658618643037011397214851606607156898039112987165344474917518222218252502424807080386721352934443785323145424381927102067653701243088355275511402691894632688034629509073662337993752887249625245508046239130133428716367968858144153661451400710813596621819616074472404345212801333046706609522473100886821697109236636296372144076461093370010798361935961903936105945660186131702069322141067275670020591115973960841624389836429069167138793777586725403262567068915955823276324914982225126997477415383491364567777594523729691682744550032418536079680738448068532426302822785545528216812007635284285180571793672906529180943086960896421407358242917860788701975989658201221914513381834048457445097237196932056356896528161522129454126528376925773120014641412512167470726049464412825497800847781932480376345428351746538610151776887576403147277104169772890713944485309320822254590349165184288370677973468799035362075035050589895069361360531656139128407518562328855495442872207769433659936671115764102852788065669186308368962659186653001410080872094552594779290094822394370807711124809102957750299151270350364042666037992968025139709152964139861107351730511549762545452022287867814903233763194301459682731590531030691189571410766745083432440462905404084954995646171507739037660256629457810651598664592107990344208060876456116337752366511615570300742726981224013728627424514552316842234833439814823441356772093755102405525709020515765540733748608462124919757721970197203419304422048742711935080477593531702806685238009114091417569511550844717165092915328569366782568024183345080297318979296390095859513655506159569655051872120194383756133998649647622073359888402748296968889262409356045972062897581145008613901918010943920859394889946105293943999333186301092651272850173011055626918883027770918114427161965910900658322520618586740950495096821525147885684449888241726457623030420970770876905265440987514013638147417575295225550377529959181151398602448498496887865101576969066633401384392326125540197539007327830684628431922500518969381778487361356164517508537985025894723361685593342742600672571159419661817293186541309413675251298467011817625680421646225335934909741605293251494994332510075058561563651581750072937983071642741720863341911879524178663013845051297577969693567826439337123492705181314726830846738606817687562168500069536138662085622461615860864488549337180659688428224730118823978642065284638855454853177062471246332619074804162783269827969564878715878584536764492582759155044461100495420482510422255804430196040596250053465671763028591258339890459009199379220932552134858538528350649717287579112757749859547269778040389012890016953915720636009678563317763789848567916207359092030965467531313514004355087330167058791303847842202467625872439380260862801908981348207659052139900098317474969751693711248279743904898162813366509074363631298141977890740188591794351872266990829522498840880537320840899029797730842618058817088787713876545670616443943275253568731322703551988965858142084464554441512596765899738470291144048742873687568277087116021103302710800377781944944165630388978091125895736776367197745661168107833915217736361727210342740930180959526316541844170235854754175578819220652345833511667432894463114450239446208511096015780436797855762333778781678280419475863869087427290579718431938271925390500835251436019410521143933988191992371758891925554480333222021848325809603220385089832201041177236534723956662569844226369867669590537398271325381615577589503203091395757135104135428928181147909833107440437609221292457652767681256515891922134530570890826063822919834060505551478016989530176526639382733744721466494656622802189113591150713628671341696266506854281837609315831163909675255675847690391809853932063872859171854630144559652680227554629482126541061939210760923750712405302755041917734539466881584744129840299775239013711459491987045152797122529631808427260401055436950426936191521204202280272105211143779153634915246859334914420423130305971767010496014185005497696915805446613959073585139527839859566229025706392124440373046545244703349158111903294383700187491929320847702049714006306948595431839460749092421125363355782442759976046650064731747508746095774652577657083738187778980961275422047557395357670130820704252610351430331943580270018592078479707477070806554243085651342787332220657846422418587889018799071769362778280087462244192985383705048731091402460182938883708828503386042268089548103644716547201646281564915026115592868755308745525594323024598699955983597220104013260969986394904282302823027219462454475220643505448911069645883662673756214339691291366572902858681761305739173199383277286849399916636017071720206161278523618518530106776761964404355057186520203604721085925831576012022326661008778229649429411726779317038732898591848721115196737762206813306631002855314860095397685712728547339959021511225211982407776885641245267918047391824326118351824984298575785794847541111241010977094468953516909925118020738533794678246437195489528468225255432368879479057495793850611563986146997948332313422705287837102670630870500384612759234806172262225811668799837724953252509930896442709533617661931419684584866529237314239145490477192400326151765561441510448763775355619432866735888217357357789517830833077850811341875884410498929376062015329429921805846739562436739088176079081029839812868443272431102801582187091801503306765528147896006251243180946698851571087987483293569292511107251880990174921281567988417127083264295042877924647709329111875636879892988593791924875127296407433856095706968660908626164242148036067281521591696437215406909067179190962703363762680195756683085422093750647635167001900833962055172625388572812838188429117376193801296636271735963928043638097413553076523435359880579310083855487926315840786724641967607978227577063425390013028391137958888561546104064259776014063257231228804950376066433465120275221437692653317558912368423278717567572359788513395660685483331244201506884392332146332877065549221074694457728191655353078893384228240874250030688958180405163220579593719933775484729439830359193522074888354181229004378131029453054768391991069858959307152385129841866364583102319895123621471869778731297190429036188767531773870108837471928384337962977672042632024679062559579485310472041010200413403480281733325888474287980947904133169895898812099278884542531305344096315851256843440217919630425024066635680820000236056732228142088032102353074387005811008952071524434434746839024201499920330061190628809969580388966353910085076020024441595223975872216803820219335024372742931417512038454178866432634416254767679171618891329265042719536074113524978418122812194548064091925089133275527243133928635681073105338789279012455115578220015648199972625113592255945753262659884593999679299619475583031477257625273254288940016784299657513351121100171998687499435734314787406570150736159977291323715281882646912430710124505471865559504183016824554363182464071239944227916997629481023071596348664965172371523583499117882326986111446519469139120882995367034530807626406398530930234149825394847695949307209327390058356160236037628898849320010808602883198731488248714944682560185844745918837965515037232060040458647073471733464201254911869939537665746361595466934753103450761390846728024338641078498608628188218354725578248043182206132127647329271271683226835101860303915596310750781365619781900087450920725034598764520440651532884750197090860157338314042976538085915011744714479336408925317151594723831545149647597537631777100053984321232004177867263999868108590844741792910729935291479716824132512683134162092006842834878695684539377248204090329848249035560595413148280822909016994570875690340689465810343608273007197291914376138753926609147783997284796446850881341265127985386883953637281062940901835271470020494012141572501438394353562690007001089918637156660726121802993868995537360072887268926149209757240111009910924781979730381965218022007514264869763715191910822137131620766671973287218271095634181902053413874535024694195663353035623140961825886775964244535464129076191486082965102484479396958921196097305804067401724989825992058448215672132068673750715022979911116445226806163089148340768503701598605135479275150245056260225858561134791806696188368436635752834662920202650782569297988932633328640460573385226218072118784577925715003073216235837718716004299383151200819519039237105321713175960842031485769389335535672695864858338102904600559447452080995073690538875337148458744706349688507618756526586525373376818990604965598654785619643413315062761015855736641860060639987249757829969182051416083420727540365324618287878629380753987915953425662995445243409830151356596250940805634085697617691796824166301052074176743443946744403723704947037710432097864811482063783598392245958809603193697115775877794107249977390917862818710452459295115882719569231710335319694550835918581171978933598025412737961897450476590942501402569999394028955428221825489343119009753822284144062354594763458264465972410553127849926652453210805657360356962231021204498800967607441190168875963572768944213023659709461864186213201655476066443681494399649388018864434150491633649698027031844799096047386977828118936340734668906239081641828904506119884722112674412716034168128864400121949918263768014034111952083876903720355852907534899939949406800034568264819648967129322777409556909366470324135757117976517811013887444737365500154415034220366884342057389773535066154791028154257327251977047899748062655019927950621528463142496773845051361674819027278006789133461910063336929678024335527826531673128500124686562114822166851783831922174846466036332662074245341248056343888770222817073355164054089757426356557288155442885980546746184723293369610398319099340399310865331197752206354216388455922839685503391634076271305848142703653022000543991616211897556520924766965310152935873667099175634450977959688280585269339611733501998395786609901387140626777762443847135428331949117360107195961659427199732517789681131913013809045248057853030000958035465691654832074636243352899472500025872132618796341979959023812299061512282347999686415233821688126254506437974449406125586006302996908600482946330430969787576699474205148218708309617470324031859450850853189285340401227167538055638027431492236747077312329822665922167600421383426761471246446168573793219992963725999451197707273745754586281160549709060622277646504003925942692451783653733796665334350929427135197711687485297513355428169486694330239052889612767491038664030870683099599699081902497988106525759039365261406625788584477418306220036064470702425641103399653778378455039070237641038128022059360471553291611944732616427940275286804893251057996310788619920705615025412704292104399317968227479898783752665779073697547073955464846609275119007793226960432181138236655478449959754429139516136219509510035520632046417868300150022121098635223764868968034154623383276773628767566361270087847870603021045666554668379815276467721741722595290254930082570033350972319951829009498728072447607540889949354199764889686962473595493310784238172291112857201284185562488618693122382076806386585716629308482910557728887196818920408437462356519987749090056336351247074294815121169690603696510968957557523841087303042610433114433566800332465282185678256097614070624840706222852865508840281668143622364243113575696981048945959131387667356597090531413216734216404237883337072486989634106549820647536098308300268764249798344331639708896363571182954884608218415510917298574297442998503357503263739621298991914277200633046575442018457984090058777469391008918979516297009989997972428260485755816941321214972594084400424964732734182353091896798411649125768096640838841106897491144747278852534862800022659484373865767245367010192631755061210805123387305360194122254888669326184296570291583356354773867324924437162145824691616556702013487657527164458325726754657098601452299251608468565876141316451688978096906600960490528318974199414075355956522573146352165269337418608219800245241016578468201435531942734262784482681247913667116721383236818467315603216146351266215906911180612780512617900241288411606652487937014210232859751521014154448628482360494815066450869466133057414841295175430636966666775308953034481774183396465414683943235927783574245432005403832864660497343573519349739132959096079561418604790123335367034818152467195762264749937862086631149701070510623587974861808688212640805390110623644116435605769353593454550774968813720202296550059919250296900028328116522108205683787328902360052371269924086635587514028602373712337490950936980174952347865850571798132739863733809365937559009338195318537470193931998747446613783898068665816863979682959073444699444534979502116165052482861336514735343307443099769734114391815040542136146306019497139462378189691588181261837248981736354546143329738937008076416122748418806766098346940897961580218044078863570327389596909017588350303987681606475108336266079235322468417180898333677302659553726972585009858009487435619216543862304356564686755774553610266139127532409698320200308846451254884534077963282275887753560128521222582033098514392238573901341849055500151101445976413403479501580083052733782630281949024419814238211625400224896994940026461446710926907264936276097201051759796225463022748645001444744788188024819873924844790471801952547410114200403243960327419968224313876770708344968851849516486745000828826138596188729129446901035112863359876540070027777385523505718021310642033359265713400229446833171915249236800557001120150744662261590057215771000787754998651859456858044835851515899370647829262292463832359126235868253018144349030940134253508536121508950586139953274596881390033903618948173014113880325030973800638581725086216472322646167506359137119866365414146633119895849766169915350462374461647450304155372581914080311394164548011622548131287105914475079272316076476049430471335127697125481466633323864643190309743525239450864357481128910263658389537935172243224077808238579304634392880898874201087024581411941035487566850830164432948835928139039097632943259824979800062213743585860267941846103704365238299595483724205936468494808074105460264556575526748025987646089990030223548416819639993177611037121707747233119410825059288012324948684775266779340699012922445466357782199753655206965530681579614025192053021097859182447374102706251057681620818384197466361132903388022842510122122368803146121805924103223351980441677828276410159109247940793891163356875646304513937741576431207216481540741665252316060624668558738914345833791401544307909582777781725893283946205978592950322823234745971691804025163221963590687670301690739399036368467380623870259740594051966397786443752276469038251597355651189332567407575502038888119597505946766986843723764992723938211689895518350506979829107062524035360307551397958507114057894517952634490031306273507974457120759085432258621955391123114474509654338792054903624991522494142365258660880188287359845236395767366150672277969960902221378820310890325492084271088987291119152629180653815283557978208746697047780493077587482834760853176005114650300098181723629834429278343407035284180190980289349555457679445180608156777043304057934137385748516698333667482144938017342162767440680089997887092368385396659138690995541087734704039362288596645096629618521796515673127914431485891743738615797674980505799003851405168966812667473440589532734452931686481694936032298218427502487855563098968803379587255892126506197849737054390258913162197063763701202460291817847312131258248908909975298547620061448899753801586282686263110242974625700124682936960380304065946130692179870522311643845870117593422708867013139989423918594250065914068087060036151876914190847029309349754631972041924672481889359521220468548042148453000264510784677138025293982324908601023892602214395533395882974095896339058283922341558498789967582559257406163640303318701586583221082579426586399896860594477526196518013735386341654997887760350581528879711718730301990245200779689294427828305031671155754724873360246273218803470778638019122835162979405914794079841173616518213165326101194470143393769106326002747062981719341295939537653103979752813984243964970786317936859344293331205125106239098775432899099458422256426101510432975488322542930141964737062854670267981260082803420348165218652566981150122736773419019502400165845676067953213205519414325682090215675122325966116156410462652688379806734250673196145625098406255873696421758064404000983781358745229567968855396414457954665159874433439432334122544181566644457111158285574462505146139192931407562839176220752075076349048946876648304716265124552350640481955031490480921494794816790546396779235890818812208610382742639338428828703144650465425279915921421850564409178329855360105161011128756235381863070492995416007921573787552318299910169968294340931865636394771718496215746010410220714881307244773998582094848660378168383769715399118741519105824337089910105483309173737052028063115828826911046382677348054820329012127867145868622392455813093401200312147871967973803422861901068623568764993865488550001365083433899080787628148520757373747474585922130394286337008322151922351109768622254208936521462256187340861549572936890008084561021713610153248586262186615367887336594787756470780998854139701092392656977390436832411522796248811913508310251853582833593362365776801539859080873628187698048924193560514765279526357814930585190696468403366988978676402747819184868115844517348044963163594592643624758636936729232216306751554470777363336345951937359104621832383734937687287225862395885478340556524860960045698141864495696251710698186890337328590000432843557651255527053810054704101002523642107586843518144958622623567633742544744537775407203029608556168876911853368603349867742946684063840986036444040324822339853226456461097233995420847692079050652786558887814620364683516436862817810143974289918844573585606145530749312967153577825749926074671189639686413787106456392108955401409032024381395363877072069343563157102521037208036170780455659923165761723885959605479428665824525669735960850529484864211711049527393612483767558014241211222316667929271094443508464869210838920073358063570732258828753327674512547632033254245260129077718358515470395734963656805695807462691271987232187937552546276484735574756598039133684496845276308247146448297135817094970530786707046499995536506163368766886299529685317092250259459181247008581558671135362677502410879669082987070365476656023965770022036618252212009845677045805186343213200461537095113743829440806999064346907784602031114446024289175725519097590326275477875151818267602859036261427890813886778148177773410649047095853076148927314042656276312689141013762888833296771531375454006210629497425747874767247089471911272769899067763644060486639395978348608357840770570588723217413285865404148295665708955259516589927567690959111638630057487069958624585990850441466787505810940098748447732632671506860142991759967923976341673688640931811076792984472865770387067580976674029173634050822808507274073707469910791385197899154115255913785323930597361787589668083399299679914172018216757661888817222712968154290369699374829955854814206706991469405903012868059379998000228580959054127256932366702730938129585737601671358320237591803242336755582023267814626480237568093735791385749272123802989925552980279044297662495742948420206132481596200272287555105926125045565460509754351835754244656059826917974269682848264236505934423202561505266419475882338475808061668477411938144061750218922994900510316312022069903511310053122571954374991332185963585735229495843602725456039156735638688589490123972556682611821500897291680752241164863412483943767316386487324811253292536201942448129946166424923516157591190819393987611214555624639985535104519295136709907510544392964364529102599352852245967555040883176362184906193647961674232043345359549838430312415828122880208347133819490933279841382852257337409024986422357178095904358612918932341845150015069364754544046328946188620797114813345159652323410243809878848471478155760456770563544353260646247018080997730755245496641647082350995703632808838612489573596785144387802134723046933758076580366673052851375380740840939825947397794046471887266916058980413507152739900995803701363990323217281556583617581759163773567803432559945619810612900144170650228979256433840655681444349304927755851224417239414665767233829073333224920052266540268881044865309193254151215940736792557700718592935732209422159072852736325149582535822173962818180980631369063308119906881981560477650271724303846536464834049526654729619207486013358072542619431776982049201942529604014837718402252886752324183397185599648028158956481390434885511481120721746867246662024809548745138042640935695379263783602324816556917318306111098878196872916541882748238275162005217249851203340961674688233418470184034420843024933833238552437880993911209353060029915505589718504543591057974458460139608524429266139878741932991947216399138864329270286261911538432683442121394653260587636023314452364489156056809429316737813838292002460928850371247722198436475735367297868507102668735165433401297099653417797389058456557098308176381146864096106439705087257062259319235492425826815871884924787398104791561646729891738757377514345239517130793214528569749413443494119940403993479038391892999493479249212834677890742732705172634796680786721480493639744810954082102228582798036032827194522781026018993756819530518682971886902478895115549938962586951677940050404320826745085432928176014144707224514093088210191698940249570351414964793562826252528668303033991607172197036247246816742366785963826442303441091645002960417122005951867484033178305581153015821762615145218089243878487119645589426938984763300658605923351338518614210628306550936125324565983123060377793140698896917622989501078098545757438505681650092938553456452522399130312659843118089560541285539064527149245777235647429090556612227454933946050757540816674763874272724616551797653140818435252381984309268607692538456019875416794266469324805952821160208345354980148311963738421430326445684246627927101926330295808625990997790031349919250533609793514443160987317479246356376027551082782932805126988274955975464245768661844571063446999154315618064012752662894782716484139094704549807184589691097968053811255347747781651419909476146891220854156641019368811829365966368958208685323501751883516270616159491529619699339316839816628398511827461544150189988740509285542290499916335631669763600742639073738001469198569418267958348450268873206556139551918714919305279632815809529322133880362461061916133118940937485042368202064371343835384266647417911977378586107041530109156087560080662575866599485088963168338117579570204046333219851111749696273083469811396331321357607050809570967790891345136402236865104698282901290897227802020839449052243769760501189038104072503595136559484457318857422476043366748376072347606437704923288395139979655564717895013356712761275052751644325695605934706684585703918055728540696641993269113141298663432099560874289631499253222627473468746863214500035254267409406110051598379020109325316997004608894435725375148098934132470977847089530659904133089683951699794831335946787428463855949071860711278873525139741797695381493896121081722638435367584784825315938605511279624311226350723486084509287972662377644636850097641058887064579233007358913568374132411714783243619367993005313574145443194549187883840219860530951653241793321216297218555621501318243099662801687119220962793935418431105366883402853728982859870456216930563528990635417591801130267218363663630415987166386609915756625497950678909105852477146404028271393016815170095492602644292888853703486550190379157703657131567199331192010223283288856391523579007944873506902984129716109870910181539971455088256426910913076307630524441587804711091066607292017007206090324629422433923892455250712553268632665966234021477068372041284000583813522579596844240476268235186210317960889468073933405089019046118071744856434350170650907965353197052972443852494143576382271531007281790874161415036644990253692434277265947582899006725301192412441813078955451006432888868564660586124418940858795777720549220416765806528659928981412357812110046123641150156649283449135570867293025806416560563006884827418580098202881040666293522704476857513340870849975638513674888012746046268338883523348031173085091881289168091789486962220584739606486011189688839929065095046398532557072030014284728568508581029234458762231873214316529565812607129064613783069507562002729757121071310812074721647137580417513285356127646246590792453916633840774120432215382058720581914436514611637486680082516628425370899776395785428602314864676415100572981864246197993596970564414940571173065960811580207544354022218930794238677794677630196491878094117955795888223608899728912606253774864234225972947504738883482369838715106262316313544604298406657389626020237473572235717559852437775355138002391317102446470703558723042616484552308884827857186961417925597853990077220567919632464857818485995222073764274482869194522396553856698507036776011752556727414432748184915521692739217240999523075903391419796910423782737125205146639399959787383213111279878807212159629101268271613868411211946986029997910624784097275524575890378275659759261613760381330970540980195874019812086517850991022499511586290450793236209260341720024029589842827866556282771190955012888852478330103424916507821040807297630605070973882185301190307309859659265056737728367355153972516146155224948243128854364062828280420682954494418206636306338901950339291233687458919029801784303296241801669208042749455447063513723186453823675335046128166187621338910204280491809761024971370275968548852300793871591064874282340981566443733367670439743113340158968963059268795555337301988952664851015574370982337854066998233401749268798790016567646386987928382023876164736983427181471938929043614406904112634972082415958795058392403615428173410935967349480999345500661553249071339919320895515470150094118609940179610441559353494841124092464794641380731511256687494821553643095861013932858075200324664262227769454540517044962882447167611864766273701492487104665986107451664543799311542649924271217129845374558188530326849404279973833899010483609974545086265890609151307360210570696989582426543238057149282487628789652076857827717312049751598646286593294238780123810243046376512445523838278360762723694855960758269081205584206833515313534367769087992704952411958494972110346897509499365181127942664845386990172496992263671773987706701882640659323290897547059153944408880969514154954279265779211686086173670618276871418198944674233858344212255543474052855679660500481262140595395137024973878640814466974751451538926861302928238075714436629852947203953420991863405626465090811391004300972651966506436029217245566809920321171457101573925063060329172948259655304765554216712555553727168809782966190034318856614492096233078936543222086676786105972076799600228783529832602517710413729892796766547121987721388188382785444474387997170694443142101315821622935540927783380437572653653892578232124941563406207057715345048267024268569222001443484893259286078542578884601930023818844837195771997682022226957407965359855626898010090032277030284492650848058754118012944035264754861085266754061463935278684563019033874687703750571181015953778276916000070199931400980395088269868881955592236323581754670044429347133244236610262024004478246823161166947901630666308250409390109744240918613481013611109668558517135236625858449102701823168742938395312285666749018767036921726574529162709861530559118675657378921177722004070407803783968415562446664538439835653591352534211745775540768721630352286620765069997549182364879553440602777049181509944013172244331734795091965722265600380143954653050285048221571158687530605238891249227628374016054691018397235294428101987601796101176955717544184193749270167277904204702035540982881352276089671990915781431427138462935586867406170480643227405387782186772208236936128865700998038904128682435445657621551986445534059829494761701412131486766226961641263541946986540484283437369660507531399771357995536953560744576349004766002101988540598828797703364758358144916445637623299155908721133834156023007783078703071497975365736470228283525081147157482637726285183941267527939059324893440199052774730125826569648929190784341955701347365666677528486682708942408184379311725970540351140140490113479010100650044550855731547331224482867787434916792565606394457019680738419665323726800403707939452092648469244255812683201661401605664270456394190424659254651903428662070291918245250822209478291949190199412215780250614217219871677796336625020401807205951726303871847281590311642562432766475910421059699823539057451933199057926416783926831794286787132787214601618309096619721499797571130138594227398764732297300390530030507787388735449984902015576595075568386575448805101562797877399274011898192132526964974613519713439975488350713038971653236688606281097014504006477558444030247872163545949737973318977688168773947926669825840874281469692752802050745509850076833772899464835411752194564011190227208401652207444140717495673556806632274292594352409394937182134879707629146606657364732869186207562385525178877996902430612368768105320742774422605361742537968481032116842219890700677233432341499414285847262569917073262266656290794465885593279755702151302621721526491114524414761109550369173756373252039551993067893987641147949863480868156572598928910336537383537048496751675968336509145082920761566890559036802235746669058668277472128389637745777363951075675416835165368834643445886824946607834774262513653752965528990728730206924617711620766462787461116551701631145718429897771982804802628038075849705352265334983682621856808139909411956643062358863414720237729447065240744839543606129796072020631693580676000468449981505517902756985270888725548104976997313689832612497800603111787600562080398606219631578421657025659004340392732244184646413758103923182055148260836451823894909767867971259523209404702273192864114931838379405051985855665265525742737592587369293001617005300709097870238549888841562678856203006006154097424371601673818007529291705960734047083157276203902753050601677953844806491967525005183773193022824650293065312488591461651932894761121237052167668464440378576965893304324359300382569229922333590871120301341458624478693544979746105730329776368992806441510941512428646927054787734835753334583757147641494405069109193639421738622929827456624543630543570529479837810735110346858194399279219724807190655774679100535494062049531298947063213315305955531408867529388262877652112921223813690546454112090389205636677563549205560725718751616149832100847866570063327588420577018529034909576767160090373889476146812246011485347753127839565176434652258427007107506403752951109871368109747706964536205912000898625388090025139324722353440107587444333249790358551145563017003223935701330063531333396542856528269070968196181733917811636507108342399303291768898063955018530335601920235692362353351375987418033850535881247914441642003317943012585375698964306562016472328263597938056921984784575336298515215824019806157992117360248129891978823893664534112535563686961116885556137336592155951471451064127575070414039119114863458175044678770848330019574258322907830902219181218503314108546913976726336051793159017775218259539580606277128309516311644399656574497145269244656899097910891342175441307257922836469341308639275998987154160703980719522056704794001133781659480703987860402102030828057017607344868388810727532374123542940074043103727050975720121738527998407815922363424838816786153342591919211897124768114398506493483766615482715227204217126579741693180007245959295565992673999314638108988777256764322850288978893175658200446343206676889878328780558127301377198027069618351799104132212612342934825908282974770405070997659426540571546665787423938682684541486240219471711183056747727156572468212978706010007797828012000524392036838296746406276439018536047563756774939657192851003363751742441092920092679092728266607762437183584848531232726819180516936436378883715030615431278597531916465757032649878413426867192765127237344181025433258364282088528011484596512543239527379833492779421443840643226968596505164405333465434379260864666836881624552639705409618119952170568481477682242209092504551224201433097628923148916163336095590197789569977824495380135267338040194451272742526152569852247581511972039586925507725834272241464305610484676084201230346830066963020117375301826105507634850507012964429249752443879471692755975030820606229125376866630167592245039473905919774036415061777384494791701746044703516736522287187926785837461598978897657241025211432340954971132509467605307227574603946057861187068177216951582785929322800444013410741712984814907195006861095214009396984226924359496430029723576459875352876948676046635842601227081239650490050695822684129067279730569089000749982722792243183676271497922213001012783911759238101390289300739973173385824800397461158011459857421822711198624413401765011276468061814653946237214468162189917595239512006596922845823941183661922166221657443717928644593662934507122165503225306408500328828366287659253153328389732499797619878790730163948641348286729192762608083041079913601984124672632816993814128510597530791134498051276440722747308809712561746709910123221522512845684893501547813109289150432798132090358061875101002874825494277385036095084662568569578674211161351745432611020999698624994742802717356140065065446948981313614832793851113995887374285360859708636112063498753363361053982746949825616117071346289875702358179168429255980385160350205617203912328377704725251052573165437433823004239900888280447633242253356851429827191873294627952346410334383629323531278618492952311413472306658294546280854871959649452437197281351412433005152550092759609797689526935946591683564552590662464750334283779542764178543493712415816503445691836767822137677842181973922984218312608093673413818282866268355441614781271366469962564856212600960351777379447706888556598795729354107649167320581101807244182012974976468026051155550119223898606265772005839372410438265620260604232114712442827698013736109720379356393244601722385861875944973672835166116810924217247827071966161780491092108738797042199449874615366483032692014023708626514446594624521162411033010766594172523309024692371274693925090390419885964438150241642199275193388681819051420649415454577228373122434324140050382457495859622141642243413329213387640851706930019126017533868106711906355900264570729170200280749345274614758639201316510911072489414130259774413763261321158220540384983011227682805811404243643732947383571492605247906784231301078337137524133517856329727775496199551340650116350427201431662036858060218461791424846013735328583293094899987225044745705618032688122583241803021397204939906896699373162637873886778092203766681339368369342530151676001905060112439004366366132616773630689987347406065652625380095076947298299344285193388803964307916582944737450174392636910548414741567441160940389891711151537697806011862821789783435320512992175457174904814758232096564736671226123290525231094131585789273731717017486614788635724016647701884431096272598908644956615736951633694282342023797019308959931507972056832120988197786961285906144551877634644661918456914331065935062484158654016133962114855457681068508995409375201222674149851547043569823175207622098339458796409822315199537350808287728916027953729335478866690954112157827277278486775268999752541256109484345230574953775234564587977374707588012677417595107248363881302667264107734231677859677663283975718593931717793124576846287446102888934214100896215111405443347632017503199210707330494815442816931115631940290131018550138069625656914034529160412536771560893611674312088128582433398898626440008066456648931858698180077255752093381202271225328815330846332757658062777938523631609117667428293938415109387120499480491235531428708680698700441593625402997914435447154880406833710748210986304971466478428242317243374435167712010792257466485426196500433453757558752667014685653641488680259000748021374653783184839383689841722793690729684699968475183881772918421487174328299847099942221244462876835324164499743579036880054580018950156571856587098704858949762008208364522412039893589773754112692912918531077178761021972543888166982356834750055977540672446340368601984072387141965397286604896122037293981066586805901573809236421599087447036874974129272855335819235946930849733014981584953774138562821627255391463989543283687442597559493361550851539099095628153436012336818830222655546055235693817568558870876876678564737368115184889231808591209528141602384400250096040305588612618822166418429979456658538538808922565193966700532062907863238600488672036210321976937920512538908940748377060983554285409545913866204621635395933109760339903814743112854297939173376101047333369495428707785273574381336539592965080817788518262242644915643901677642116838791250551347432583189701528188261097721585413303670984090840443369842834170416544560022012042802491704087943478614424992282628787889769244257366826037906846415702422733306230273043056379736921704233369943338556859982963805141465581315684568856886753791056020210914932398650806659074502218964436702111584412482193819584514654008501698362404443961182437627206506027928065869045127190573101621803287116554313118265877903013426123821526434541169566131875705740504417920793407501615258477556847084984856949794096415011060838337730145356709413859466572558488030017213136921661379980170992229256868595010894848685241001861548355147814002402701236855256267645727693639862612127152531390900355798926930340859351362222323173727436460970813718094655857928626957206647710874364214841823526033195529928200654516837841998152270775795556508091541426862254112295039235903853537330828118672181491019733804168782245580579314701428859773746286371107583388688017816052497031417602750496420423267770345755837753497947056691705340605685173284026888065203189361761552923074869627062360609908550918574833154654639099985588338448527692747025203023468457292325266478628251318971933045344664578238395337089744179786406920483493268852798935645521006078898054202230135286604666789928573231183602198606832970583637004346028452533386470175279826622962715263542628968454927428961578357418222881616898830483311222492713551550272425506903495335655596922198889117548455369637888287140936357180274089468064296361960173383039772073554341288614781041730528235604968570165124612362102806146410344477161925027593295150133294619879873322278788779005910331461694533674314151765254719407529354542584183899423172833176835875253046466244095262954238273660542190013466932598080235661090133848582768823715595952414793525687814997729969124630080780391552491004572020566137573257524051089100580944320077933247846952228389796386672890959121222028385995278337485114582710773241663502696589526691705911561865105544574643078998068967306561326199479148333765589807653274346566365977062820785746149053923684294842641368000597166000662475890196949389290692054583258387873333207156841036155669937937418932636013572995869736338809487000992472435442851606286165265614664310286558118751503844095568581116864167421134667833619055386349963653026702154422618194159861348959283650192333427446396574703574339375833478029152678027621818765474464929915463837552603377733675356053931567495808094867299271379600334318690077076911384103631544958593884633781052643803706346673400145627978876551783294367268107899893347094536671318885881626466063662137476277943489521756313267145578016355830583301033792360249205142113720819187710495857787654156392416652232415532699485704175345277908854594955165536792426646824771840787372083602072595395973963118218461629104685845826736825032255750270911084746772411851576503539089387242531427871459601678577762818679115854670681929857953621381794665586909830728782043233894677801025851363424230795032852688288001591290013009976300228171803497954188376817751413325945838141106519786308961622225033001108074034354747395585699557752786748525753155434506636783864213659409845298141064928937640713451895835676829633621904811562473555061553071324601567994588452413549418127144924135266245078387660618547153694171954800411427958011939616275816940674946120097182828228747843475054465739206737730112893988480717654414019002601569755891333210606120851735447257367130681228744393528707121418970171313622066787766241354492655366411993623159211027629758829473962873424772177612581429089995090006343686234349948945369148561332947893287473598064436618463924136796251993475142394203727766604751795831737277598212762335112963663425685745699422611370153159749983854765595110785525715066172558714709687015493658912302470738263903984301725324779382786742038016518474763232448976416816164870505128341231152115816314632582554485647004852902097024596993532550615187096633874982964532279680808808848707822721658855058455489002489340199656056553554726620619556678846631394136703007916022790202018107222592217228626154869847409791874517155921696730237165599031253597328648738304677788622807199861410513926110348468823051469469237314613345924913604049369111918941739323919943490965777316433313772355803333396868633987939465427444177851882598742880772294417258247621993910604050551603871656385264641158642052286700445597206624235762123210204918728081861298151717475501416599324553445077518000589486442538214422673052048356677801926442147758338548401498003168719152240985651537068026308697907178584278098188845096683103673850326591127650278998904693913686256846521399719051113250510950804851113340162519099726755964967425668344743176440738364765493174475741481325002581751774033383612793383184917186799166608399636370086848032144083693231263255055426780189761134743092639771331008329088122616452838486198905979619820276396088051901597493601869275889395568919524417365433228206935686927781655241704093621088933701131899700624979883336449004193173223451248684836694648459059925284901842708353255624309598924635451415835653279751169790808187570780379747254679424276063138879068960118976279086894864302029098648880310270049045956434347570457714851322634367955282623334507284525571337434315101545118882608290096094503721243434723834318301023223387052041378653779651826854999497787836539473061289798884247968260791253445946891422942020780079982283825611758582238662734209023751255814281882597956141424076769363824507544960415264091921960883789997478852947447568739206388757137866148448555503470906545897172557161673170524856889944177257450363447362571452070644424395953136356912800625243810424936226658968831489735914618254093525779628915761400848302871964307677118785023748390019332699372526323176123797046735043044636546990246164181639057314071129966191709034651556877648735724514750908793991950444590118352561924238187848247545859944879599692710266909964162482565696890070368642016014024549330411394988344404499976962240764631434473564914869775323361252169241390420177409930112649891837267448556963094362962376212743588279606062231149647941273259514118140360970609540559450420851870950249863116134206565896844537014962611055332421722864581836604921633385688262985929600607088410034576735575203748289587144210172538176356048387790350709104360815425978085309463068447807217969650772200317448535097838381728588029542952371590785507383822514561831839823670834868668385717972963495749801428123221821098984637071334421461938265950133561131023144571834335671510388455041321653370415667208390464803978918597961004730105772088320020288202618184018772648547084414964764456402433748052110358426546589455623735310170742715533527272250139536353479822882128900131214086970795990074446012563947405373840477550144099373162652374455019326609759606944955314419354432378724593898516325091222883997181326027449266029645628017573278413801910047790185227029853424725769862169231295649713785107186016722271086684525638267052693150576896403751281984515389510517497826996721755679787748953280279640863398787647602459984408665161815559251554842267025022678170216938714250438522001078015525591423084545225579593815183384936626903874707220935279118011957150869018686789648448747913956453903689984435229989242017752231901288296923155018230846639272072664142554835836843575784796302919531679920137066865113128432304878584472830382915527226506002872654962180365906154742439822046358421625076921973244252500573463810147767939434941601357245493453189217892497179942438259549877275853501549406621333384262787129447178721876321508083746935423603824896474294778684701162061229354896198135075725218626166600387888788784398059511691848558985204632311374198669692818448932019263727012666862654292396762077526890960434006910170787175208636441591726291201431416614687412530655410922771847871696849553194177137598713979589466201968785144279015699491526277838133914718977946793490225722417686648308209521080439487619395872905904489737705374951296248149927633823966780852521187345364809515311207625126630095203764361368492711603654226026695917266737378105794756355599314604876227899291069592080631704570947073646009850065023745975749099517833421593927225550390947226534139377176122851673039665660769137545407723773934852586078280010366819442351015651797668115441674793058556936937041848924808649959568534250655811955282518646146788139072507855603450901097139152383222048276268074879903782086994677968923186807239723707368195777525496406003460154593447003688415774002793748681876357660954721617347279660150581111930245505016645130083170343158833619938198687843459699031104768857483167635057345223707613537298781388514633025548174617807132066937600464025184904422686650767910266674595812513634526148953131122044951808158067318718588438405801955258266513531317821781686081965516229214836281088517621014864540341354625090333905732496133996091845630508046060626714471374165871290028198454104263273845596171789803365386800920478626334410038188111885147468567622421855351400185759261234714133356839405270568938671444529437320925845654424642694953695934653508947556405356360628447034026545801750237887895320818004952594107136203575784186764250396260441970149401558998596075880106706361887745627482221564200245788259300291810266461910843622227587386129313614174970774954083793394115425895875334541615552038856684962366378550237408153072370895496019853593397647695939200579413414516531971917355313237618840577841201426792644344064736071703900290069769368070552448663970911734645711158284179871097483145933257848410576644034844372195550054192319032236345612998658136469437018197926189609646427099040010389037071097923932354160511750419460417927205494685116222825986442816354165340280953753635092668327508365715019428350069630223161790229667167336388974441312167117527278334034637273174436646240202687857711146353817111475359661527557938727218294868224963498795321513052979518556287063700793182428137979049784431519318713822659783402972223346137031413849493720379005508468843051425707491262842177529177693498500380277336701758864262358973064530107282533277308444856542960482248222976218747924896030594629658155126461275050737376887966195417263929680308517986617127866980740986970344672946400537620792238923828996480219503560313925668784878881012859243837230494706942877712330228489700526781981676162431550475967958936186356429006340283656513018511339767430944233152516922237049130243090408304925247623932141861926173816841879835074218364857555526438732126320249788225202457399766892531486458987622728043003565986619282924274250409334373962366364869112858533619232800268177975284915805099439169120999483430980685258627124151203975312496047243110854652844025975263924500911753492802946960493672493054734567635207517853592415946263914862957608387385772097416866315852329971687172193985702336899059963767978363532250063142804890021818290767082855888953973706876106284051068958447556154119788540804286433589326015877838585547071506813830180281969157386555541889578961022992945530464533984219358482581150168967384381817720853228624702207610498501654885100250180330112634131312679970648887482445133321703255342301673008657144893496005232358412758749644418235316872829542176976215759377387836547966985782332606882066434864757851856165504720817407013330587906096406672766922315680473315686510492323215762826608358262884309386052607115126529199882230136158125821710441338630672098787415726142501115671555174010418232314520517854467285442880842794327564099212355748170872974246727010220978386597525090334873382108391949957776185098565336547485590495782639274982436665580609946200369649920865698067435325726721065064598938048362584819897212030974203112918299629397194285772587631135782110401550871055633666358414194796301131598174533784755237096925402474353388503979902115721794379328381031592679304389987142640030860118267951123585307938514015061464539945297606811710365637977564094219985663697779724554085844299692877375272291290692957928446067208487020389001176957567668026372046008782269268737462731261791676258944193537893838265668203528102272655387642360512380510603187385002704788637035971525358262582669636088884348547108973363607875971147737961719938840993742511298865009036316274895126559386555855609628348762251063782257059376975372019420186837097547586906844367069921578738161844550885267122610871122532518669416923439365088654344369288877400076778541881236527492878195797187277286889632805160861499702072233230650417835582219442422213019086999482279343143455024283232442878605429341191590823285013729274027454240918405124007369311646021540680587136838561954857942684728174896945954895823648285302270408249920360218377265604449053738908055178239179121513600487834607594437545508504799228648829385447230472694389017298647858939801584525119506975980020709809414003064753641219913141195813495443381072973932893423889818601121683963996324502707405693387430483428983514534124090201131774515921460275570604543029995746600268269657728775950988828449692379528319371719364067214692297954435816488572594804128282825711262847178147195114449692600800533855967191163535437495781582010538158532977810250251951490241070729677497377898722207289945543943638303666412348516695049585958862584143252155528868844592825006565207245668744081985235928882701640612580175262995815906876257205836848621374955998419204549284713893004281869007871563585410325102910331465858832589659674845903964086721387104768496401950074108335452607671289686307876537053442627041756162585582120432406623004527275891201839885638569723866125231821536386538887910428081514085807587891557043683826385079577863719974595153115825100682515224777972619879918242161354621580193583515278262429116874708084339144390445899644444711271421680891172407350546120035209308376501843001817885211253277146924056343487817336954867714453720806671265868530177405259619084797257875310755287718480018499619023825523507765010892615928241045397793373557512841746386401604342171159113449091540365979530282693523096244201454158769991591930701731530144548484639783286482811012289067095546178921001064561392687328826877351322876339500950077028878866854603591937935489220194861544806179700886408786822637360809880172704714951237289954111636616873681317672240862163141319046711205243724093985374345584588617350121629090676806759160348679894995642413545550715859522458986214105070722073864806839718043871971084716121821462757926915007913880437788828370473667221148873667355415393775611678298999505057315741035660515112952359291019264353934550564659596338798952213938597603431050508845741537771436122400800065232205295883156254410249758365889656751164144573907602100112745597107666283839424188709384540949403776255602402629238796279850328223899764525396252680955044507261038176998431752429837564559244688585198737811612416415632141944489576620723883510680252545665802716708352098275794917413490810153237853277492566112024461225879513609663236110564840250263703263763259175404103911561165069796202658167577946491956451974601653348438808725971189221740393734354026145173752504388873037454204562615668921475875194281148383536431547304963014620992593027766964961261752249075323704228825753141399931068525553188202247758798255816848742246545551334989221137355924847423752538692635819301991022105954359857398178980332664585846888537420205873079581284541878842204743332522712857489112640526570103381338873053403737451171382498422348670281677413452184070252787385673024168989283694189546937817314616296625245842647297310567761293023738389820986729702987581482278105636862418949984276962741924083493966430246478834391013297357187965276386483300556545972673532497600801130425317880664535522519142926800522710282412237968241903814139392051798399222741848432735428482546519332382071738588474478265035778684216569143317830933156977539016414123759403350086293608163991154010552704890078052594158873279532231996863871878882354497321839949650721893598576296698842887725243759601019185972074575713657980351836688172835471296288680095479892059067941415454303590107194264117647555694463270868300134329062283224687744780327907010651276759624666859548560550684187923551504698163996915041416289232382038569761608677136044704950609615489533505888046250678709664840712708733086203829573230444887294652478514231806317487578547798265758983010770345129500640935824250766845935505812352474638126266464760823049840031616774992250943305474717531102011461770174989905084199849452215810475126815615339229117099221638441187013677797497990147332175099565169538224037236794241716220213935262482615047734739098225771940859543381050359901526373009357857757985859277997261242043327236929142052368916994926517031828361301461353957517008272490279673026056031740598330791462553068436235244885445946162974498975771330109275949204746017441334523771153515062187427238416016002859573229927160287471208001633216455480432508646523034313534095888158684666840506479140893436932573346784081081039300322426404735253756757322795597949669710361903612414634466710953681386416534486603651242127092512564999129008487849252321596753902346490565085018883485790304861031766735466071910741131983249870897652270684754500276174214810630829573861442475067944162717360580334019340831088799017220558898940062716947575411866509964081107878265130638967835498286151627086075985393734485234701227033612907199175580276595950311346658132094931575950417321197608096637645700536692177060822942093112332402831418483508194441266846255944232848767994589876775828380994771682673041109756712517280585271882698209174327874990353391771789815816915420948667013373718649625633329696585058742627952081684665499502530188459187245551472575837125584279125684569435621971426442912824496377442381147808642230984295178968619743643209019318487784126334218549775049607134774596043615615836771041632671608502216313844949040764908229232479376198253899655753096625863888120229799749623516468045839428910797632560752923184945094935279525256048629181412221420599312351719302009478600123736912217715724134770502405669954960081716906444480517811575152506578638838387566191641690374606827390730700735903999538468881739165923338051412842527581722502847365358272812189766231212765765218182208358024424162717222508958466953019843770116776550184804883884855636390519208138623296194897824440661233723892264165089065048510519998466730923617905710897009093893102974938949212734178363854137608563986225906681302268597117201748835470554165304826639020459642059986430626958673397816815024810763346142999089884674932363713951486204152174093016673927853666082696429793856075692937871144971285989681461388477829473599668666135080897483865887538707050794853028294097724273316813817363027114846914390971903291930764522664640418337816980343638389548060163998964560477660050780323890313447606993173563475892247774415288176845433245058586082850163659663134385195436839370511617426931858103806803394063985893806744165721821366315897257937215385608034482043143621104062549677439932944093667958234117199667528578895122678528606353899365631798809896047901504131950821259354009998554126099989999522752102954899985112667794237154829409591274560089586122343665282105133069966293771566862657233769090468446221970949268460334260258161078467121810532057251468922243788728703817657161299335497879529977278000991763336094361444017491351672570639718617809022463651782079866982708710039766992147693663540904515130693223511654656885098500337955689526565669466424336665114452261918707716184237707107192109214344352805752939130179966213484308846745002031073614141829327999664479513106738694412825796932389558222073134345987805225222371742586778287448977366365168516428698545255387951087720749092368036434945257770535629298447046833371969961664201054310994637661169301145997826152246267873086876446721639556866474017428447875828167052906361992227994810883111943244509515540564012468869352668249564168003091667885461040950515747756510174325255650364185809604960031056290056571702050336636072956209640220783910614697706578076412946678710838200976905663816210202852221430779574492458483225438730205080307015466422361512303290937594956809280754721801629403844674726194930083326858434907363788640468933399052481676206945745321236475867004102746245029538175800537522671827131810117992883009423925506174861840127142043602458843180477230711930673550980565854942937835666148061440096220128251087103090314799664390797194798975226623203960877039861419138757643713509498748711857862753478233887210166341818503556604307298795753403048509777404142429366262365636810695741054041589352081666817198564728151445138752483913597798179419561066896803617635265166583865453868692107924907193837420421566260884246383344191044348098134614236326339453531330742248353402209006043858400777633032091627506795670630425231254462613930188283690116911498305464709602541443615779494372537163637437200894560159409782037991002866939104445737377610640119611401825766691001294065516753460880069082195667071644229235128418782004184158999238947269462560992121234959690827486563155593168809017494786779417566011228441476529476590146906939705342887889621875738159420563931262199982135758907573972050458336463023367347509938423473068818832388109681716914524817410082099678354425774341332111844799812320152115938359155024061882695241982081473576142068298472157988819613928832808285518188476063834871766674349961818952571329263933312716601589697037358066552824203895349819972069259548411150005924101345022944414371784691264214903133981359350769370515138095379366060722146715177438622044671344396887563679859298795986670314398956021292828715063151313940295626605704951783673145792960960899064045505957371782890186548952258913338160980260223651478168750349694121170931518482977520002148039837119286493647265331056968185953951786841572425082566632027725351664922023383964546618856585957721994648045163572891555046560354006055351685706206887665794326615964778655750867998624365082928863162560016070336830669423059601995531338388913508990141545750378748561829698527685366896052140665792152983465252717072172465565710009270724972426166915531880740735206956293463273285660925989031608429657468166648099168002707646723574705567915956265434035132693311738206525176034076182389697228371091319153496159925295173937957663809756671323014759693664259138715989981111703441176896919335752319092585251470542503626025249666531357417595981427293887005041336476670984119478578051890977652127054586240497352619215876492189684919358723255387758198652811750653079110918476231798451521401524460641109166234895677864218551021591736665636276236187937339620295264459265589558006631466176539839668615636683839086711228099720293485722782625261177851263689563626915476056563129643981981545809574568686742353011537470536988775735538921569657826312372859490585600475301870714313933215037372825539835076501983291227321980124796538918007189209302284888323987368545106974496475409282626642890508345429208192192295257026832120694647521968350570677137094198766164686146493306783492171573244252329794612208572496741297358776670928695746018352731405838855136179399999784510625751899579023571338512306625374922175024690759254327700567684757558123802003742604407608199174382162792651568845318867601745529009828024107203994787040946362038657076513392444797996653376701983483702079570812376072030592936167382577991969264930109340375011335062668129345117658385526609999857764979025722243386305308586131881841526618658311254196439371798629337800760802426346317488329644126048671785579234349547358297060821471796734150872200737216163715463015995103623859110344080976853733474402826873229479491107939204877745364201958474677711700670075414322151740488278782415438082932860965762701536491020239461364481822672756847695524216576894623007145919208498369049229753080248567665332561732371309508392204411828344944187927135217420930328176597326859158043074707206267505795395485413837497585695814023362039636365847297708240592319616358936442035687763761000141776629000559492861080454475760190067685414553971856325337450510020679690896756896562164818931967870673063321055428793166849840133233341154548331785045504802801664770944108358765137148842629211092892424944587601031685805574974102144581239206132095018638978305955708788569556333777768284844020126653478135367608289598369918646164362211879729809227730913824157155982991703673255368287543687189976444428437158228959254094471225108731844203943650729331726848596173354922572791771199456793163387589174984646926559859648360245550826731207737066233559329864893240552961485752509007198002795280062410613777542277346385512897111828594465887530636246847617906036565425155308609908539971191523725937632559216156984640913427963691332720206281522196933024227723014538646533775408590537497461881176208371814109454174456365913528680249630803549240887196991015802278492711525008783799193851226367766582282002042474823384767733652459943502489563602977517103046939754953373375322249231433265250549602703351667608326020980180826350849242172761795779943750788635628707382740489987247066979534358827342821527549452108000109151571301077791255527457917417900021205582366039622392719808080387071967856310035475827713086595325382963522310834231125712401363201200742283599824688062414912083634186822002428456102486312963796822418732299637494259936353543968320135224785505146107191047329335626520676372688631060519154737974014681381026735690678041603669806757495263592648157534929400535664922112673814844255809579722140493547622643924168443187378183185587562433414552956013689981708139385990399702853783299535478572597278061311001863877834769571078710089709065655883709512375930682102829048981864513041965203828802435376707163751227441477120362476261895326422059846480610926947536461676884461226953498848698865572089491836347179923792754383027535723334768043821487027869951831351905691866392143451296788059462752862206065506796152020749419351444928235787838596033365090733910286416114282469146653474912605005388030014914029111094734194536822564749444120225206822908792679442375305760052982444884054454285151784562786520784205677389820227714918309255082848474471835458781083413909187446508237255516969098817492669665263946603613626874601785148144834621821497037744532969226072891464598904909922936027536348305187631732208397900374607010841270186209561220240430058114089987628442145169283753147476862394718776990408070744200163140015039814525873739950701897263847982527575987220717346081642993724986954615581335412876262108391810549245879098927943815610379105903275068648190880399042727348579267518330498861747518150328399832528726109967296383162419111400544004278145359411933225236687975895022641198696336352837002847645386443468546182004559918568323396925604288627681216803080127626410314403137082695979412024760928939727677238916413989725234121698866829725034678402973173073805555367597423223249447875637228123971167582111904122278264208167288559374842459315476818308975166807374943912001670231623363889043109789683685334706311265200155541680508195356226940073926627822138312257714637338713917147848535731187831485643628521664484170476065500931109576017823272342655415779506758103722648449473435352895891246272663517705192205655110163431522422215429415850609462141974396311754199175799492349923765789217686198044682726780801774080519731934819918663364337272099493140667046630158192780748245874979776909682426129866065975189191394416697287175578752155127309474341440246441585273404621714134431154921204620397843920015978870556077169836005086004988468290626928636909558207447576410888384522072611808180797329804137855400947065584964239208518947471491799132288618545961616416389652907742176232451966246274385652184366300961911700448554811643200096477391372526761856182019755709220824588223187373996876742350676023703518527427258494700627314941895670649807873269102467296171656804981066708483005944696202780791406630867290667737459302439497094602354775984063702368241265951956976326610506454986611312886808309299621793196069221346212477362910474518998534609378781119443936624254314468086102898093641135587710412864382736810762865479407334126477432632168083888495739607271579237234969600769999803613889918809253446893621074146885741218369071148913808390222287167444229485071773372869651856718485237607335259030055780249692566544753776745204444359360308758140529904577219978233117930579177876020643654006377046811775554579359150665923468273839859920330692741250000477946766043583630272282498403445990515358506696080166938358769178164723187566882349916467747242696804865984534793667615789776478466486281201552906356657986495860889949573419326651320381753065454716692222856904913520683299392581328293088424317773923272848561704910693230986616748763487660240387817524949742915339058774073677823866521815408614991036144101674478721365755784028645462632515123788086120064504918477994401476722946263760896361743008880089068466425526535914938145026385067220296758478691590132334182882107854064620241862052836216673914496469212463073968717788581249957172112685482466408407747412242052248722002220743908584967624964146411124951293924926491267747504429960790822556758413481443957596677680827422736726849925224815957897037999453969633209885821964818344982782988855849458263189497796372439253639777585866678679983943717005308841902466758321980827953600142139752927508632745251927744388705847889804504292418821117279875383195523494053156367200474278839471060052573528073666374721807667388353366028447484756510716510274700458136633645725851494963864988417424325112408490893646939010185207965799397984399631696979838247650344851300650910247713118047501145115305959547301694745514521926741021014320482138717948627867668425216510827346763913919544175467096209297346023482648153341672249881595057052992997416963877554960305523231193153246830416395080748857486649334960355425396235753200772373857097927982225465120867197298134863163958855178352338925910307284921541683635702538510670920312003921673582585502687173761349738097386766756726438175237979552449515906047976281344589139629668680796564168568290670765956078883002022126499155717643596580604739769056051291649894101331311997127224433585486850129442189860968845591224676536006042895912330756250766668985923867174937805777549677811929249526310547769352492948172210895603848886109505602203574581615280403178139529746243695348744146647821491308290920214320735955467810134845870138711998594504926568023577127362332060179865928804139140134753051940456058933885899942657182991293026824055251460286255370295499452952211400555560385832092233353178650459109819248225158326170488296279873406204514777462238243608517830565518499067324200986164162289968016197176370267016163013899978510548359961410967665672116647703343622657855769775904308026864091041526028067086454219981504770170780151894592813335111666762360082305779167552168714662676944474693137556315847996992290562920808382669757268743713265533163106958378506807821482133645127495541436391135011102246751156203678032846224160699161823866565659485507601637128447846852412068112390591262826079231916311921394352797082041739359127003041843169683625000500407376626245927631972999799464688643527383254761858023641655367460566410340614989127358934080091320526905238253636331201940086946115412551080850617146519396485846289795434436026730909351734014658802656133027333096834540297319824649130292361260794668915708014390127156671122878045433890278091883934955084807078853551032480302032631612644360469470187766604587627873566424784046105748316146675194604762989612414849642795263317838103177234408172767951100415290363225986770508401201450636106238610649564540069939804074084963676132523728195092060906101451966668694997101161047696696756387826729396258633315168743358217576886020220999093056778320432561013261685123318465154720754163161847155453265993124819078598411463754438641205155908909235889248130176582482652187320456252059469552044740579957711603988355676466027589070864296366136137387912519142333668930231959515605042720545081642159467633568500620921554220146641677838031470754227140784914001166119523419051220891180415456582251963497254987068034125160871951386872669950553721957522553528851430239165453896807945669382292702791977578076820715284258638879220304579098891409679047121230373586729954911371636516515088063635131822875796752924206296737080690009474008562841762554864630319937119761035367403171483246824697782648615557013607621484242374802386303966992249920585045790509177983933873905923914858999415617863590510688630318314438077870586999449065963201482139240483463539842325944424601048200048572666617524184405025340473159278638062932314898298179568515749786729564096643446126927328625958025281694568694638984737936921231581355663301419448959001616297616126460008885293777347254287138718018865155299510803146360271518219984848111005469858077737480053221146232593638310817529015601574884825941192418543590039474190111233808807875900126570550740051497211581641372999760979114943230753422835817979043301745796000916077910473821493716883644052469061807591915783253683804498843502532926533421794650729889668869820762570965390260476677440900287068678801520184961151445317848681689396633120656250386237441508278500749638098775690331887102440619698938158862160704126160912593015008598630893120479939770016460479486135052571769291246514976743302075539389277632494737088409736599970520528882910782942677268265984717665162072289191966000520434314201603349592614992040945200261843623794850134384460439583924833317417689219740821723294934672279243464775624415368966506011588882495218187546608078442831272137977057861692577868951547920137676862851612897157560796894014332324015949967351224245725161824891597059858467701057597306006470860498521131676447380900173936377487040223953406158395299679393667605803500260580385692302970894185110139929952590595058063201876570113950572721970834498178929223003237341646350034391540886396358828191183895413165424131504075043171075693555514492274478449602729596977834075537031841918529054861468444302807879830703124620022297648424780226525992411322884860336851234941753057980453957019505901952774162625496429194083910883636860275208033234654029838439043720910984087587917784861993941291019780131438289706805966037045922587554395025082677236481577673051570297106069334971071695924314097283171561407761018122316888712061000927783599850522356417637577856055128979269493714886520534954066541735217820244539031523091886424983042363587048888903341450138333931570871162909935889336578069798730074124356346039914067592044483145942116746222608635364239288497233752257469212841301496785982356720352345085512526393908093682212232193980189916547333903705074872913977030662629413758693864773756983156487015944615238012530418220737772183639891455612032147648790120384428036734537459059553565991793133509695290464201964152432077799088643169363189702254272167105721850473712555750793813324805380660797739770188163397908880514028740243581346722792721713396427813374086821871628958170691612694858812589515365248841474715708903290677104426385083932409366664662579050988822350177707270556326319260574641020140950351998905665572680092637902277390840959358634222986055990593021153479086015952781045460205840546947874496072723845474127858813898879048629664587857997939619227952827583793436503128690280079252323264810490268522152871081543763407911406897953200780273932964133997724792816027065698898291733731686228610337023118610372236213074566698690634354696696272830963447715605883511684000288571071042486447611401524280317777788637251233641796956190392418892668559537841926241355955277020689012012226011088320143075723563981512627367951005001452041856272748196960130415569402096494179689803196053279914587299528773522489688163420781850385698245784878881987864535444153438291002515132195879086698351467835897485203659262886445583795763332207193245742168436918042216540793882881902510323187457565716493171018704175394786328996680774892745885198960858907420480527420172241015590989031852290120384254419371121655708462632268417471750548232865511884189890218755144504434694385593335689988892988756244743955995195089970377548783787055638052378817952856031682948898795835033457924869748510898658614348364376984348759678720569559729455738867459585818171800035846097776345170791054281826799520364707045981956323282626913755536458442355398667817470942357838554465622385223474633807033801116282135558692775471914123073718022157887297746206710881683815455728936802154920977362177609985713230439227995410069251406936443771012050327079870591324208240800902238845856388444717474888498735779962552864721545739848656622892960124151724003308750881326024447253268218610162680593027966714348268161121230351980344172442911482484146136688460478478319455639285700924966541671222266761883953097587351331787087258538163124541865900669758328259514782852064556384775207770694321405835597828852390206674006584369631579065055692915543020798256672345734175016474427509640974044111275686329104739888401494343236819853238425844640037223892576738355993741770234739826691839172846267787537789253505745361150664188127121879226034620106868491347948738187404706883806524949059746566924686629039729432008606609309187840058005115643261945925004508182605850982625156655351773725368340582543591619398883784544412685156375030302152410202491996108674387210050179996729985174537526136286690588408306912926012438267049783762489930136214721130182160264901459297750944074117781737951202815237209382845762296407450625682547704180258375256669190675013033651069734110315096110166243475712945907833816133201937992963987702412659812101773316659135451873699697378817002596547317744923114687117571999254342892706168552943955184264046828011013064356354666200782371937191891342254284852925734490761710822385244477273134434174058379364334586207511850664473054551571585899663963247062751739137425788309925348615703969671436924142480417530377050486775051819190727754541154016602439500224181548377458389574918462132121851519604566288130112215268264049900285551274927210020604203321822496330874827974211357421837186546865101012277531270043748346111649980517781256330686991550849163083091629616195734117374917269461374235584600467563784264580154757107287001287954762890388553812702436637697063331706119682687089073402553590646094979018491068529947565715590749266261770004220243998080587262454707176446476704602535050089045476374628703339161743300265062394001781185412256065699484836875000148083010943028273780617629865667893954668538869924306331975269743480211591034848906972412760072953879424803515065473784107105687687684242605527360364516586740811206562666789103625427710187350839387926464917901986254626204313366200874545943560164149917006046398831941419733118605555756726097645492555828397220357225643026069719507238579888739153966087026783903177803343854697603245200702136551950644935409544685835242351542884940824715574931198620398142007054144549603014165267863087192838096563991321079342115615861951708363550505757282324895212279985188070617225942015511995391891088304544567676095688693951899869626532384294950201919012213903856738755120302658797761826826337729594583235962205663619613219691457473360407841211691961160945955389871528049746406196618877212515406595275148511189278058432605668503527748865828777060476108688582212321789568685190288726625900266249927867228568504186500930305092330056169810555291408432089870460456434121389852816929551624546938382476814693143602372424469044414606103065991296898354116386868629786434299891528159985911661625782278001381179222907318010008507669094645324165657747145517767347133389129297943928565260252209477198857970689548448741631339413713435848500552623485302203342124656850451441657971123741539661690656811304155743268316154289720182868072710746957102514137361283561125404229041075810143384824301507250181172998621913895674942729543285155947149194972682532530840693594586002557639449345475626283893784164764934018289996064527676713943013073219272783628959589682572364392680091694392070485503524577050653662985370270823490929016568539530399321879209710095655276685588942954599592115801644574404110181984412527858601756513861456690865996903547160302488076800357297662785133261854677976573280933903673675020992588270650557868522513213109470376614471253717920414289722240661108335265294922795049097569664243101544154562066186789122994701428950451248139164153117333861714301762391184944437545082581652737132940324371076148463994459920358307291482317752906321787795268065187719722441379470651453266544439157945466879886412347463999165102684976285270883475652467626153200808029910653686593414961056477191887785537167292028492675244701579733976232934070241558044218667876424933207662432068708079955881990822580427787083014833870522638165979348448590399556185294657956060786024651705736292580083452643190681076184260349784737275907816392565877309420359745065262966252130635157894447757425886507506083456653289780494700009768960720868017255174432764627344015681665561835983531680495168282978384143691125684568150754995009416711660789751238854703112668736070006011452725697758105575784462234012800932047824871139167639167420623573378885887858004806006051674900317596383449787016439127761158471936232187835846025417345055401995397920323551090010944088183247851747180548820838580787638747843995638461360663494884429017686043210677799065901406351450523341120645683695339022639971214916139560633665321614712634458128224714698042265111695206873404927531752051673745067369338742977446159045561250789100837945453256059144473915933855410145766442344640797670680542996484139263454111808161170269469083646275954410635421702905733810728357745107793099246198392749990947933036083884658252105695842897759249820520081481720072120125647408371238698987869295861604736609489079154147745287685162944359251698451950580779650490394282563876047471998261381927043526785452935941343628195908872091084566776855606011354002912199736953011367743109734441666221198113372164372898028071376764084920333321939330169901268373012300432678235511888670427620094480309674707095352684203694397660801390663687040330382140558241820675826926223583007636737859285450469357073392724102034475525840854787758160384318774813905536226390217218039794345385636480115126008008686710677628533620344545436714848032174178958322741081054461649569601472679859568581542632004292366157611241494717052029621840836766048552441927638419347516078528580116866753061393934484935822006427446538159001290152688206135835536045498239997224070391197483758457484806188397578681132839372532658235323102702140825524738801207736501937433632375355107951946398921914837783240571646928018155490348996760750552765393943349909044936595283807091924997357316354166753450813282143964014890796873283457100652054349473360104623801491948518430592502783205707842358963215161078308591900002281288985185791244032578196350893570805143424123736338056709191505896087215057431956431704789789537359097996201010072500752021735183321190423212451808728415141738682875001514712973084822224791954809106147745910534911461373363264359640710258677230258438404784770552124189921826693541490602232956298222355074597692673349514760262497811650198050890777404332630320147452490259256808462807067463484069349919509697648045297904244521923238256507403664873225523096278570082612814197007284802988836749547329884980785354153555075642133453165102367949212767804031025161293260824881212221961156260583518585788954003861367213954993430306902661072826951637788453140324851041751891333175660603240329413385428530200181594080772068705236252502274178826685638458847691691537092909677341245602793118029498231660368056576393116961750159931987540923129209506317743068550344130513512994377642901130997662472032011780431467208904456239116683266547355168566246919156381297181870601351755709203455747667160125269717673647138081967861811107063806765220784833189471415320139033615788581719346124084298410195640868048886097355255329678066457886786729408654379599622101619398374510025091013625939610505460028577978774298900775529518857331301751671918078681849740664573050045601066197345560624008218121158258635084701344004789334438734489244510341201245176848960183592984159889918779218893630537931476863214083904755536201178249691515955393875778370276643246527557030204251063653654557394239327133391476435459636365450939122647906770691330611110009801774339068713118694578474804957239034170154831782994807300648810854551086400910864763885007741089023702512199897955034008506681663790540359745230418090115575000063755208362081648867608221666546470847222584859603529005935293218592400746611448028443009332655705212369473080327783804870258473084836995615864326242777174989079309705908989757415941888703804626759486024625242999713903845652988317940190568803784429102965682819515008102077323499875667791428557791709100250125222193540452789199276174906967860230299336242923077880238720008450191135704239833886503025940139180185447159498157399374291711469113139149701536792966915270015980365567155543330735619117394626319216884320025484565286561510705975200158306271974983728403576479935139188066193073453780731566972836048463079103833920332880187051149645394018241961748199292596184110879372747460433825699042233630428041947875215762519085389603470323071527048204122454659218276159303205968573109693589552483616980833892421971876603772064734010192807015007204651795290894127179962662224323157637603429139102273418426182599475494741527051770875337528893979072707082117912622656373040926095123587895168079259176458397671362963536093823364339759451186533543654026091074655543615493194586309622691392592746362054192992648914883731527202352753634992933126835920949370100504677747299239167476152393013323673534560522135396377284048402713763585703533101148151339710034431844448195391921056633988283893581664592192795951480902313960376370031420912804398900146479704578058895009666666459991841911335189192278177017241385460285404711595091502208904926280449909492150848317379540395272694625851100938227774610794498511987766854654936721911803102556840816991888923280262963046219755821380089277634606649753596245339152331637983645926276935544488451510839247332341697889005421901550939051759782736779607504358872917507148595333750990762334465066296488062541535571845837552812379257699205153608082806749283338778861308969790841582422865045983611799694458643366139711733739927813739380378236491414147252471557739660452523691507981474907404094468374380953401180796316997201176840037459778445595321210687077286796545386307200653849484811284415834499402784259675681983259140486242836226947251786884900502310294147496351963764505965067948236416867161245233328213873497660109950832049747225601254951258457239234448379868391578734809555080721171677712542049777198384697157004031801454249513530310935937202047181061189423851899957919774652344456087339954656192002706098880723058668682018333748233789381044450641120306019784674321315334866115136081332379129758649903344687080561074240610411516389374547767285643539771881116086169806959336016961692512721297872961174913853736435556816665614164828709920314451404444812788575241748514288501750906518317149819173932093624815401421623339524816033379766480831366155374880021068781470430105592702263844783267146139939901923059633600495140052092364909922086405991128785680698487362200870681371767563609099536879841523265364454093459430632370990947029334226957375402849826215291925245152598955261658555031758222203333649015300078723647027462952251242050839726224106403997502599355339786292736974797064380138544102810147867291121227673529037493742105644632549362289019727624436912655009906756448702636190328533738434795030615700071016900572189562953884724919976553742918732609911051180898138740394611100460054766448876517785555604408536734238328030404750650546932393928439552393638103347464945670809473975609710573586464814911337670210807364215024908099720669542266560032318980119275238160288202062888667620697809052816222624477649630707055802521207853959567086075316538682106575871021607033197217077281051475189322417812028405159869162517955052585044645677203062865610165650376456226365678829002739289904562705197324299685271968342682777702452339886580773406835907140297818916748098867709457561885329371275349874691374659512591993387111817772343820058919875524364666889974544288634895209162895559460038325727429544803089279285325566390502754314811700435358039287172011205752852830914326148009065449486800293886757111232366109957642250574253300165535545766988706399127566173021716346886962222477430080162422327587359717211082089623144665995003660548515146781462816326978662264839301401690745720195516989267043972933309967070534086765436621829415016789441367806820879025731747894294335851553405880415602220554308494841401669847316715623778526615948271061737967168189675257186019726655708836998535032892787043610886702358539195742261335366838765889445441269574980858238295310250761964712886754569350308887651312209604536811500065694314358635698021961526394644408532450102695348903836396200808387845037162381324692011053927678080831340148366911107581166587256145266862850690677706840768286434902272326498827974326298012917319295359333236638765111669255067904021451340817019747712628260703940166050438499195841144354153122570621848774852091382204121469196606956397528517913709344130770524030583032000477852773498051467512830076929778225457008877107153627922200376616812166124567267319974740333170086863025523571137874729803971622082806321227266076667274678395909709098304883667010327784429096624504253532459495615272386994367085575928551891042329780812968686395068370947455156043359246607926157664721665445348968070657478498928770858180628279661870091846648882140679197848467680558358368884131152998843136497835655321802815019560142392348432161290914589507000250768689621827120252400756177934285158875154602559008808540218989934809398604167151640971291299248545681639392605622547246156968934868052597983829147688229110641158515903153837282804047501055572915699894514546998421132161996258383797796227332699796182723743346360607208704391465896755475466319881396918750730826404397956905771374750924841102430398190276696781418588785606539537086645724914885530817380379238972472818035790756129288233423915388814547610234886343586279030643121628824744634135925390764701652957700842624497702873576396975095498860434789173170208206236004663141469047716047916244481580792325828431701407081424887242169354087216257863582941641742792103221871329355622890605009528790144887238787386578348307534725050465354573214015473167634728258584332020935103884514567058918980053729856511495307232485840687119223026057120917352435627043787540893099615610127949760654121030295947868023377541513835180132686084744027307274421857183500199107737714118142845712504422356992833912189293082132295987086269058870461976853164285125037180591524696264023639166121794321311022118544517211634579518487530912689221163241260297539849956067949131379665772728408709148217486909119714079972672890807159756639280836687041386268620154976075565934362616618338184585732621079836498495167921346548271644314270170993475281862372236190691924373872062221766543392031874720493263778567570503973945794851620112338970667343936501135691067955970589724238925455075210856030434918525179901228964187012598678936996859737346108192157180623229454943430505633658844078026771242782487678148331811242220313474651080946339269379043689936118533114547440145639209774583743694890316651160170165877920514335375985044639547900794077876310375268959200481087063770444708015062996785855552339241656412672342659507744191172786857928554173138164708094520105978697310268698214580096999363403305104480388347774754041448940921294120521242222452445515399742357121853920308831727656789151655912445147999840397325783145752022898573148607105066662853852131528011495185475612516810341038293610662048624739789844374675297006415641313809565076379210574756257247547660891754870836110043608387723412744986150690010439222895479303521101214692721372126351990331285262189237977602536261174990308747325836188405481335361338785772639689615150383606632511668430494159813292316734256512658883078954884209340754231884791774592297663166298417656662357068904275870450715318460742180475031181573464362447544689168760248996590689200167437898490925178336921340410956364204034300429282108250771894119556247953524956505835230877533644863411637030839898243980525399175597659334741510048841238606546083050683134297319423764059759507550647199340341458839559913629442554090469152355938873578088896961149909117880854614441380154019958219096705219309212772852123367836031465845258539719390399526860571673910022677702930164898057579462831714465059697222325595747536120510562334230934656695087996887513352384109744555835607288775177676969258714623712565803275868463098497471988603224771257696426111044796534004789565000237352365690416341020069373428154629058304913050545448854364468070467984717686802269628882687197395943287501783276702325499504414653645395822965970784314858563953973906080808763582574848912152521345360702828140344926097116904591415745467766539955538576543349062423687609497803662691607774779959236750292109830978249023008023914385727170472383587489264511810052229264406114567178905399652310960995826215089122069756851887157521066977962310836673717202339168817188850578651152905089739286513682911024938174925532706410232569816039001312921367307563242569727796606173401316475632489517918358745514379104354503332507066936195716948960259746054794470605782917331110102032571202845493348749463344784009865849992996193606523663079269556498993212573097580308850522537517971389427074579043137023827506953104358803376897252370041443253659473388266064008232726575401365113007902717976638683039037618615738695682229708701661687353707520519746848011571192123139424891561137880088411098763739958254373965565140383318432915476988571345201176769426871745271808222019469075944821503503339966700048039478018053369738150844388123958317210808625662974807166988396194725273146206020474264795672675561813166993055248937087245963106390014913823590146444320076950041348932610101556720678174681369660819054433337257131251529098216399902809334668430253897184674091490477896342298130657504499083078170799675976476711220653498741005129071704520437912016873083604238045973624714002298980848951054590315775649276998511996670897560935230955798164943782100712948582269047119127549325047355003592720886710136749441319484545649129660421233744230759304160870047051495893463058218515796402828124296919672928860569285366429679552934674180270115357011610491535498403243903042576063381511030741889064075046077809825097050822999828372437374049763724932866653543389597554285896692500944531653402909883439709861811040194458822754577479947274882249292216914795115360244886048501798423475305800630838686183137985240339998588061960648664582157882609817629379456621706450012556777849550248313028342816435855911163299612065361406291027436224963748857063121230006579152727653356648641096597076168649699447593239672609149277803600396241521071231579929651999591538414318197813248548505818694619615529595538688807744819098555362263128141373189335358328784530043114113346011145806820070440881188566342739007135352952386849676641453751074106330682256196362951157135842746277927077857703618343252591895595131496204373672025103555942668810792429558364035992113751447667492165964932045453095148598605965722804549960326351436134985069030152983726304727739601668148129986180821875939414612693139672384908494394635523872696987234818859810147960129458786115899513698762882625325672302619672857393576503757455286893536082394951736704220835920672458512385864805699192686401313079099206691030610007670577676002206921500578877780317585069678596192150710259052294701471629151126635437161834409145286318522216256908299126605768821594557814950090580011107890667979747414153396747110028811650688469572189495473569908373494103537651906716778379302876225865635499405249181950477498541977849925743630571088086752567050127749417276446808170053352981841327035469514706187436019914423419245321460021372251724125458867934608529942701434740136853577948413898458482512433932375374742305524427227933769417710706544813112467735398220911288889308887028699416800717063700240743064718853322914204207522298041012408153118249176502414638300595597136704561453346663208947072036655241508433350379168629997869892538923510323174450822399382600483677250295350951288831161527646465796170033454742730416820586086139517166799305013514660212509816812388930976364301798048888907476514139120244521095613751651178533360198861846282154933321578123369328294788173277257446920567570344309784924907172983468168374604351648339981159281943991326229178158674670637461871903350068268569999506907368148191422616848479638447016682857830327083513431330753423940411638234751400396453203093663157472023143603872921886731938585662770478031036765235609149602344109288884812601680834297675836752673085666355162318008329831740999675152119634414063165396903440592916340622935033303522375884975578730945628561875382911239383279667935283499324225997400952145061669821002675438223228359137305680530394825391670509503088196945539702641004403952726273599895997887889353032098158292732703740912123903249820461768268218995025332680745713818341340146462188203564770621648690338557080673120980105524611574903730048201855031438762134186422281931344007841214971345405426658074718981078527500689959768236234725744323644951574905499315529141938183216784987705372256130209140196636579040978909805435997916036632163191990441487425468429346483744743505343541613580530006567209286819571670156100771552177068101180256960497880623804049625775956374613166124612308612760092820872508254029175464430220961891886862460514456964559622797978876666099704751778448060438545824256404921572602355153574894950438743840031823389794459528315085545554698786256977835271196964976170926178439544979630455901204044516001198032529897857412078582323978480989385246901961556085647517939913242666255863699336403251603996842448951798784584423163901938216064782484477192737079414046373471092190440950094604833482717281203267471824973047890511539455961194692424200641233432480673375122273189186067898253744734513615804223843542146956467060155616852543303583652438313068514781331831538086242796165338940774122770655001484943650244786829452187324189287383376502844133481099185628988044424378809846758024351221473053964505433890588884022439165769206958382322514214198290600269807902594460762201648763860556964466399853540291415371214543541882281582942462815234319359776510047319001404171820075162655887795014435126290307752063733182870416295229425377262178894619194955169443542800270223433278462112384375357260106964002586268360390340093072106391036840354647734131373396606945220092561490458914838465582044940169331753601100225421083421271489089076091765646681914257252252039538294280294005549349983245337863623820944658555002576877888991772855499212553626870596462219064982005450759392491972382954708697809297551404853397143932911921052141534115235382604785439538733307301401020779558633434951678174533869208748322459029379699215679001922489830811431931767184561038202174580687577675614650046733174253075397055518943922932381292986002221467756755531397591801675585102078027234860229004376341385434515933433813354358249039350562866523930569660639846127327257942357423573766453312965379108622391810604506104370529777916537900380926113588933888853098515755790939472572346497776019831012550505297185886120206715263854400697741801086284829259562722538820170879722543923437326602427916150618674355739577035200295967094981606057262725337238732953409402773341829430405436897471350052551742280464175980085879625990185053194224071712004927680380952798805210385451300096369238108992937981945806562398967563719564769833188701409374543774334880307882501821712017162295226573228993534241066216490977387199729533645695025187360044456163166247745160425513284698809801668477280114266505871422193826619192424463069431464721766258199941352762677662034388972157045262251631148398753169473317025509117542034740735779909590821322558585179553979318485827675979884479204895886299641056697595746599954794257329063149774093530622007811675356548526394522930390846627789484489648890428230573025135349573473864574451428082980500129894860931597135096886412775797167640569914915859539324131014081534791165879127331663497313410599941038751548603692301049491877362708927977740084399125218367405305017220128072144652885954436305757824842685959022194108369287126306894404826353651967558464118664874272286795613345936391788017535414962277654358152386169043956510384826430868403305679025336018978622357189371338013491445554128680359785503294771499154157383909069894463966987866284609532701451803607669111736151674078740190811608944478426778519576970886833347986707945641521585327301474109830108698131259364737695448411139495903532095520922111981871320761264688984442206866550985420822773164408147056931418733764516322551499323414031866464154317268777432092274263464109767721526089700890960725177150927354561761751751643674851858220677430816299513356536804592325350241698615096984984061506479776580933386735855124367284548253129547741863347147230216290103665844108704643915830792657553231701394345671782484257989217481162138134197741868701706432255753613829421429882968671705507695127226520867457054817471439456381171921933987671368860633048016803665512439027360348989485625012488977393574233058779812264150344216412268253391415665482953156251484608120846833524157707881977783018252208106322745148888407117429329398277650653363772109969885745400219237015185826821906239232983172294665322057389622102102640177425842497474819559828357964402741101805191607482450609657999117154311045544148544639235427663610818770158327119194221514283029833548316131068697900306773822870955116421099133331684735241596345024483775272948605061222362294741187580235714207754151081349457614945822314137114510963562418618688269559806049992750074142566634214251957387303768029822553602540433135399171263558987739101263059838898539427123665217623808598150263989224217022168319617247107201472730989659278505409483116322601027539591813404146716221038796337104970557189917224080973279312662711839396247817531568419438156895716731762368115913632623497142557085895028646306576147934212404280664927485510191068245049209183824134456145758692000978636760671098445228307299904987300333629423025559378530321045499312243462391171482070478203991675538851438007723095991883725634488609298452605781214858763742874354065543660943480804617841760475927116514007275228527243554844344154864832424751536388277292366705310926925937571696437757232125217038593164730355003700459815383090522738013826697931247650163526341460666205195653692868583262352808739792667740955688217795991481454445861824171906336025769207944765113755187124294506707610341486087177228735636693699412873962137928635416006917861234514885740405654442674917683434022039541375550049389007367781210499980375669338747474894675264321893288745701820623843921408664268823553367267270880940194725060083411596946927857269107307702546781224381975190528438783634229510465461277686380834085726143594003707472964606876901069427480442139525779284612721692495449331180446464664558859621752115302743232398218116729778860749177072743330242104441952737912090335821724314464165824441510384605980452072023563645031923775618837188448134026241877286906024816845322681866341975122251355268942125651075941073288244026677548430856748560143711702081626377522775923871238435299417020069994903211877088367510412558101755709899841763150022097665550065005524344591282696388243878294570298831570099598716189677911437661915845077487905945183638846895051939091378903108235428316668051822561265596267774700883465248573039322559025087369490613318603417347878627165193831819389610168397162414678380453073146552705312101737408214351065852730547837902175881994521192295801409064349125371094370500567415525879671140815142768289243579821291131406748820870929016345314121272140519455588682795202103907633380257140449228264268098721542541248202088665526454299364693938816558526872021769660648109275954198858142948257979905554259481164235960934773363055177188184618548793948296721788706659326677708538537862610680640198865352632404113883659038738064164398798316672125695425034875959505756822482967552453739316974455434545685889160908505430755001807561545471463440443022038748195441790379936665885938904752759061420207512102656251895525376790811048296213625050729670045717266903577711574030368064924822849810002272066376326953834934489213566353062872962058227665098662850267366908482548940876870790622828525314925500517543925471383678388886447888104492498774822951690068817459045684610213341736038230400696696333900129233819858941925723715741230091155189228050848345575512600330914432476639004636847119772983826995388448911268871908959170168263860440055462731509514038353988758617465648643041872408275457087173323429437340935460623208126631022863692037234373777699202638973620083886565363268521102876872089375830631350692242143780777339696442094566512637298522406298822557826683094658883976226912013126752278473847046408566395804570252430149442287921855690400926020079111625410684204711647607853858228897321528323575221842513313717307220524148683526042763645037007019711405212354710281338996990205668702898731553758902488057130581350521613162961358123370784714988613994854114098637423991400740101087115532484141764133324848210310309388139118987414581599906758499700824153513475830091282078566378499159618546361374400321891363569010277174778507181402365246027068034503545362046138539295201212379406386491782484701523623728566067604676666142771829820393937493778537519654697496034341369995225859680025364736555155709952984017533956941684783086203576544080966436369893880246253862137695353068798396172188210187429622091063760363406331564521650139808964198705248311156699907463928832199625634949474783390834549336168651880393578148373394749100732628554075013519526895099997605594672978492058208800840216636408240167811456312724715168004121858030274163260007624054574094711365008445372958304655481745496256544433794409653180573632927285300380982047734675932600567330181342141585466266291223408386341962803431219677208930175678372000528300381014893467061389621085429270703651162241229796647999770124414149535878312543824830030909446141444649655966129750061660955827647702116087902219205953011931620116928931216367919939450153113861203396695621654405371414920941933309138546329586020798204703503948014713508945314433112955886836466633537412801783590251534957028254145601157770462055614710834547603661795087818148802257127865251149543435729919429624382092815779789901849457821045510777303036831191986888906475516942503338686200101327798513167075693869924792968845074377396430199329482703539353565509923171492367322887986899538662778064021716834892937340869344664179215478847170234760811506930758251577444371461384190631057124763199479148691071303341256416451261126534086805115222637021163440036726872914217567228561666587274561257453796298854238949277771630024686316565092893157190828047760392008477511487279066569692593329640697564157428830465141481178721022831411467175503565479822005524388000821010534705913703568372884488117925839737842571728665826641913225849937816107911645202907432511881539250010005813846707297428413992301519224550299766278061677464707101319172004612981765605883263174687896628900684777216942526776490477995500272587053863652834610499099407699732652870370256604493940590004909067522456234882187761985944584858870963048692707965221922622516458008412802778670586792200323298746382877488523520043457748957643202913892128382586732457487188835928836644232612074143802870362622462233697417653845949466590100030086324619757122840604544468530723998131734108549789728355362226819464790490168824408855589887116757423387514243005435708951258964539670488930525791295748744309858250054474758815110095512956730003332144018164182433039828134453575406744991166479635786548913684915505624268993176904731601758322457790255829254120693302189110718190235494744543188198146720424958321044911134669375994401216943595898908961666669188537203817420720371008083735616416913274469471007371459928780541967507570635327284947179981753105401532287406576586177043805560449706739353413990394125767281959885592049438976415130810089299297801106257023619054139563986548742837207475822936544071826354714630192975778351163340369623162723321700040890245250195123005217335908082661322079122201209932625580519815722310769336016880656730531838666608773657689664523273943688403922804209923680140599916920674338925712053765925104728672265175630578041774983787176478514089474184563083475003274510639276027261638053597673489092842275885143822625369632638827714618472167290605610276186056460930140676088684312711093108956206283196785915226267728627438414467178871090886985262171245932185368877374408183463381362914040528401855533491029276999442709618621531354285945106391660390526255524123501634524194664593190119362521136555108863888494646825035339010824237179001799665853477327490315786177678708675670901826709834400801706585710878805503148764220274752394434102739207063702884630255881621100537674611557648353101608624842093551748547937160955620242413826959368851121456831199574846399806586982284004770739115660091087534701137500579898267774613432183181161346598319667866553941775763848823927848687195868776209574674060834155038042112661261604785200699217958464715657547440239679711826095901250287313855851984160590350235661548755973595926712128995202075426238839958939934897597920824136781860167104342622986966546778785157871910075712003969165781074102564196844962778039819274523535663270763716070210640832943006742246249067938075424028636239129491900223615175176137435378105246061645812350780775649694830986980408750918762328492711454128876532138466318181313604200856556291066864128004921875430919278825775029890143746273472889347192361363671254248800951219648625941803917951574818045976901072386781532049412145478719612731478305456837515803892099363252462780847712183846676779251661782913918382854983536985767591302251477091761286288309839249597420372410553829306734252522503765131914388441400411524516839520659926400892200202804848357088359008222920762041262958070913643877767528940279560553648132043702861480792970261573419887725190131809843015278443809605815896613557969533694505181801987224531375098984830927697325339321381070797124577498565313901456233537630683038042205130829991580644547098599713930423715962587945578110370274058623923455849081457969955068885183981961156650796749675628542332505951938494042005700739013698196079184997472772439253908222361653377503838080034205418652306690302011232192327325054812908453665019647614298704536772478586138865711032519662721250219496154618938326700751622570635331607765015207619779688973457611085294777721653126770763660701904732858414397600863979394952119948235526953014863294413567668958686094927799603558448590484782074441591578909145191176650274125877742174250466485439373522248313321254863627683533853644320758559647219707114517543124033500484521531916514507276523061440811656704553705549089485739809694004288836629174664657300441167633452127169499998305062496378274046069921032591392153342523859432823586374496308717871909400174259200835284099753716468108861745372723409587691276157903469001031290860249365583062655408171418714313234334388910790388554448974102508550771175045982648898381345334254215443225171994377087123494664075483388921322927749557100348914359188070446411186623119945365891215616483372499152997283847197942690289606786141116967462149293768240931676128322535014699676762271003398939581587631526683861623373343209172777434538648346937719769515565403200545706857452881524754432178431884366312353650377167684822424199759838818051607508465393645864722580643667515820604875653901029169992701746820805287478882563443660719301089089802038245018768122407220444014117221734152868717601462894032498152446607661085011349657573398923931337523513956061782145512364898221923696080675380473788931828696272665679090119568782092556283829076768573547051586398434413511549172081863328289780689681494737160457412317552927955380913250815612486470075965821056663117126690980130340456541617683357466556959881317888005943382861713032834635614735828598557699510022206218857596613266500891939135174511543006811119508056969587004068018967732660970686153992003033234612645353349942677239460879823062718335587474462950877703711118973962654376841135415815078513755842634408509812647426475938545890493535165975106668423362527878441901066444234629472239952226710698353205302675619264180552348848078758326265836973272788038569196223800693594057004902161231694274939684027919709401192072151182710130998297184167367145689699697124559276376364051262536663035578479275333355541033302026747167548476185636310573901595356345133782516677619908773066040572655360347992820771996889336352234210931514502305646348486975495514908250657691159566154911457065385395879619107291841241241721686566243092237667027046258156316881613532439480420183874994138803990837038600115380593732995352591344480018453777954236711155946738217977742300446043871650743306196193804320103130609305542880090563573536226733588715394221431367802254307715080090017846355264136638126756928335201722825994794025869038122726768986538512570774304484240628534978277961574299609977638988713411033948052142041167873273466826633335862218193639022213692984796907600353175703040490109914095749099886617216822314480530351573847050619148268118731577838057454825187671029714800940426321644266375650753344175281557941768679679298968610597303037698568734590442811676464146539421733675770308470759398430110625293353852748345723016092819943364509086536163496703307059082709424831935824998794338045678460990314263492921648046382508133985593370689292073850784462686484726100320879743476548150522424679103756315346159852823552609877396505944114383655665594803308481725087116940715015808491672244696528649518970303736137003659762460699536227976777939874216163573871560916306669871239378842267976603058737737444709149619856860490937683690061052293541915420641748609597085971209407755065121618308390971625616209745278131864288993825970238308116994088065518303733428628451713889771366097131860878869890188743170473749560527673457058288447659888607550880801729163443858703103001127770562648545137433101757506943466507095436843058341168460755571090244061208419655899538097417633307900576789659267184454688549581351273466446794044045277592486438214970883530932107249678384981825902201605989613334866310003563195992752027532655051686547867915083356127740657899975563519816518384168718608737108751701916586314834721270301700332278624695404204632827803108927585953782955572406425884832934091419307907378593737202884531476061489618301552706825882982712902320660581564941174750323400903033192260456570393377529080475512070779061152463224315744180437890123874711457313653367492438720001201515856040152193391583165843040473312019275163666051821526708562649648610486094769999062700920337635811658380812625118977013761074209638078403241358445231937441905118904174278385347723738947050424788223306325319292793600199234045928758329315431610897283271916579223192850300003295556215792459148558047355315722625828208250489807714869309604120811773855610666766598049242853586718932922058305536075544210460291429893117849373626598072283920037318438611611017247119452556293197189548691043962300299265024302397265695329716807869178618729079953345895458123042675453486880226207074257473123970115984218053128407750793890586066156607710893509282607000309436188096662376587673028317299105301629669137512023634655961327234532545673121608036163976057491864903108159299144566039653898928230282421453242638710430598403628746213447502745907044272917355164277204579575950452305517833648045812661967878767413498840357357808813079260748225867320945253681183984037759988751941939127858223097657236143878342579235469156601929586626516120114883171821871161902021245816974227023653238353379367228123523071247630423862250880814838439734577462658536097813689010991919570702487029245612110950204267457537374367026463381811285960626443230399211277390657148576299464050320517014058439447837921394204591137750862362078250577735248508722428537145511720473423154755395580058123721388588162273870390616141222219910991943213215941834306704645514835795035618128504559842134358818956528159735692191717397597622818507906168114459416842379520308728021094159948747532000069317161050897374162319362001391975903966880838875784440109850975386930872680093997064030704759158630615047568833777717088514243807855526931119662345404945544898906419184865469494914603183787164205429640095208577688520545379883877331909099819734667317466598003154496105110772713023934655361055430982281212200590394249235675018734120798660699174129177360058349531743721065935001768333208558822101213091816975071091307256711477920340390479968102675177167600628301811653925428225000919117464584376576980604798542777418962309876008436663421397075882490908088431872453512841374699279420419097757762521116321188626056353471192690860719333123081707321168196505999905504275963011981385170242021066802433093045844490423131693797244812092561219202433687245965354137688186626269555380542740963838056182410299484912351659696404638589655990398852354590747849092492233098992495360329605895919504114290854704881300134680063722096192693679020441732235913299663601925993649786998527563451327702763524845731974134976981340605483195395269136173526109004409216710300104972055398670507961290633946368284157299621068854436250941115700765869039856598944499911400632642729462117999103247436117127125348424762583062992230211353445174497670706507225464110369638950962650143181371719619061130363757775932459746673125130108360882845517895880741502840634416637819301166330119250952182473108009691055867408138880787228757318144872751078021229348320459055208809803259553608601527863853779557568957661998719687560376968120893601263000405767662727496719466923591682493521885108697555657034102182918775042685931767857798938441076767398778617819509011033597745215184249193439704304989621088638930303822260086518615775238706103798195656718238882847238057917634833406692086507354832403392965642556651957232548777698840516984674453137549349699739408569409180606826682522706664563315676705379126249493181416376952149003768464056856945739308674372401653456314314963208813941948947409611035054796147354538291218736822197286769731385565226108336659593108077738114683008078073694787129598496653472240242403024721021333624661042534312100264451971653160435831461419012470730415976149870354627420162519464983078458320377385018768354979336974503280517558443006877245493074357745386406322456077256019355684458552331700342435756396058862339224305002515244991546816797032728303710304184969804931653595984263232004994677784517383160838423268897481620884307775851784193371091381552300907541152240421428296559870402253780624719374912843440521984593304951415722202627263225481553281315755150028468865579201788151684872797750078278694159257045076878459391284518057838189492685864541668880146878600362312166259352144009687730369266910555912449955761955110194809301166327159771918421885461122717933098664501209567422051897458229685934062905797842902154024335771404361781257389822750837153397778352293764678025507714457608571315413449823894104353956150045809591541743830547843078025262045296003932498314039067444526731316415919515390495252042161682790408648179721508522074813170936063977509926049903148319979002602035527563756736060970859977309720901126167851450502668726881564004215450033258368675606632988193494920551600902256963574052296473564094511819746484903234796504883645427532051270585469201265841654839187718547520987690681859609640060010500988911283652220889022263648978568782302736919407057890159287423146886877989244814664554102804764728322882510615691019827382524517331468705660970277053179894234432197537318832328488731512886224855075917314684755231680430697827937351848659784745797434057353653517459668236029710606262591861212311025689006115935567108328315152540725462808465200367513727234810457896529925582339836358562029558684481496782985201479549105984520125372371881967329092858806219608675363897234634499300256343240523493869796984165289716834915198220404711043893202988279183382191611501558559641291778001076192644434702714102928125115203128120710991009356729096145165503285078837809984523458394602603513350525267089252404685947525753096858145330294988531773397964031079897174951053469515089048046862891136653698996405121063160177445274391299189570829340013842716953099550657077245440459268647319992777429396034634370688593221012532317224596430751598094829122074042726885076321279854025712530415185210035364993523415545557659028068353260430064932077053782305051806520058798813956452153074881517201751523123523699552887577913575168025236701693386793510396755623941945964354482614475159223321956491111793429597483114496500069493641342817058401351522511433205576468162204249026547267888778753982994064681835022126460379757058828449476502030365667101312802167569099875711767549486612206848542058397957165401920860004380750931276388257604133045025491380726457395320707414783722789974012566254079658635654914656824270619932622589532220034861970146217914594609264165636007868899195109677462171053538591396017787189287202009006284828694120057058034047269850298272154307293289224287323570845416634271347626601590527820919294188084952624067473694803474708772892068309046027749182891887671066156044017872271383965418089393723777768401668770164955517719556412488447085162702237886608334624127322698831704458681340519966408123461937067985662606155308138715591840350982572822203092824447580688862808423066436908503042460410301657868021966288057307297366285034531194597734205931469885968018290710592563538025234233955297456851665762248376157447334511523225358445296764092615608696218931720974739306982720968611658200297711636994790089600021866196747310217404164327922091263000936444919838189144081284077198954603545543288537270009071128275428756027355758841546468836823657170517011787933036876751428139851946031586801234060358779611537585981141054702251167164612932125297052548810111698599823563618055289017876200403168386409677373726091281562957018298377313525662263446222515242008764753232436711406296615230350469060645070653898178126158481472379498730841100758483089142960405048254112991089677679752757673223246346778814426532521695929641596350027275134356442698835446345367451909121775582067597279850154176071315972401564076116767833134046278855721263067573679366633923886326779729331789475456379066057790987064735482327394358554371711732670022393260035286374516806315973038502781425925935103544812066722471408497101027264832820697288786557586544310182025847651776712073702683939434103093717857047537736710204806833510383835993419612672383603658619420022303137466651880766525796215040979146952139158059709999220495325312682377446659421398029494061397540518671876101089017943110386383902220309503243880342995187194728255717627910462071384992532651103889475920924808768639089416851448857964028973728780248091274387755772752118497879839658743366543269117401029212039919853025761411006232143209724626080838725616104172789477563248022639899458121744320309687268775299029607643050218932726819796004860728912694612273898104651609926359324808004882055395994538049383503245062522168163121350712490574811146234977874738943962878524613055755344295341876249503194666546676022384334553445867716460898654180300326984597268537258426059619688380964961958384179476262587620350969924896231949241122306303698366644345633853159595275737079310112965345464119350079156345514659475424844592618433389830659017872418059252102016547180513898610083529135578865401761591429458255807727689876431303012313480279579030007266534141223318957073574021606089614474349070286376203325107348421274366945194671078296671470820164754011639588485691768220410822451414268033930034728819257881466888903043030226805888117356951194003715534034965905915849571617502433578996958887052762437831380751312278920605079093967168852206650926239149797900686913389969291045508811975819081635751788681498229880079218159913885580617353887760391943148275601272171544598154773608119318204372146897714800612286687571920308605043756510096609783850008898993443776872481096311823656617118548679657564736856029191233552023382257301187640475580297269945158056615931446195128600422240687706613213948090229700878082111928447257539804084199731235649930189677175256621808030378375587329852160225055098706437873774782844450423116354033328479968098514817465539446944241532330832249493581270356845145318336907243316459222357019908430176628107720243068440886951671905366638934694206548184813037765230000689131188897971266513980008557569464268259687872973449994173792761983470757028776685667608633332437873353958215811062940244691703299472194762798893649109213898203186858271172390616484811164548853841785359627071534616704608713268671763474862275492910422436231294465616749604685604856049341851664508262075719911704211092879429617539345578727855370084998083345971010083876737623695199561686490720626483789874543229039099839342819578199765587241934560959133521524126818559738841855002831078056524708685314405716233420634499039615179967115560240450635312979930865550916269270202926086145872485229287971174072887843893569115773558846021205174666118187232094878076051594644462289498501402929417721226812087028171889319477493913486134932622867392275647434060392475923617306054919702883900619427137591054061130588362188561743043012747442451981759126753679354599915275174477530900675912909468856510683968492079760632697377103526496074145941296002610858658945301536877464988978932792023801604985127896049152382700725412573859699262944010621485511628314433993783784506307760008824239459084172891768922924594441835507515244796413240355331891920807830163230348871501375595689152561096276993301639800120845867897430600661789435787800641161574680880874170455027560497464039312401545534431047590301875794261208652358683246099868731831281770145093577792325923823963536661850917508187697546006567083669605559943356927689480776590533378626498658871417471051032319644568344803391121628184496290301172735681816521730733984640973507615430108841657489402898624406015600549670918492087191215713890979640729318653045232240260121874880816878019470375732236840062065468836265589914363277569385536055642338588744434101003800590873808574224928618411873559163278524531859246552453824642552074288085866809180445300923225285837755598275989275253201066384480394189972924637240897813725951493886020526136575226634240895577303562704521650037710501972761862708474170591856061446769132857411874749763100972939434717688705191913058322053394310933605530213598896575716607453455360627732659027107157158089431984187368938047307009355371670762275591084943025019896689022997015936440141471530276518690661925667341517734816988947148648142205627590976632679350939766552349598064278486525287354971025071881479734502700055693563039191172110527764568620485230679260350475425259909234208466601137958376043532145086977590841731296944240278599180711432547097835357195498122256811893595017654317645225360194039102454285935939932497297446257145881764561628127826522600138851746209858580612899133511814841977700021174005948134477348933629439550954741790435731857432506664104532632274169612585294708516765505073689354395096881119865181982503471877882120025792136749007140144526990776230495704753269985428149312761301838257261761191971633589436335732862284021365333309398314349783701078698485479317230640864737498224808519625239021390393998545789929969246366782515817762447709490315571186465962398495524848501316989416908427654916712023685518184769323301295581659218302517602775730386697009678883386580944653297814438020337417810948689791172972300386408607305389726405351614598627279302755769675208189304714629749450536483969776473300629714649225403322371702365507089828171372527669975805009161445829895463365853928989993302306004430536960793077399533225635263722134751362352188478545651604711544040138535672363665113461278994573996206921241173399506575769702980179917379690405813270304419069936998017187191473870591811843021908771164582476504703805006788029192254319263357769700515946993854279488563967931740413862429787311912351214700370732161276506889861349071865316566880702198942156521500197890589189853794797073740606618790454021829441177836835557800392451667655398015697581054236411620049665201882166432170571277939963333964610289500575015147474683629176833854882671978182295358430926559669307828726774207588537633094719978274207143236565654879515022385322363232850695856283944017733581693070636616048706185875452597466902786101886184921027237063531764529508373495298027066193999214385911588856900132148318156378631447004070807793756960278312516416056129880632424131583618254029968329283244361573023945103020042238272084130432190749112088699721073350066809549547027131316115444206764205237274419288000670653001796707756725870941383490560654925294110792431992442770663133535555240026957880946158576218361828431363169751340736333457295226782500031283797569026482316050860255612824962624192920545532298042120289331873211531338030305022824112577709194071023732233312383537110720716315641553358216123729625749071906656491834388775106031236698172571849746805919135239964677535162526907681408495649691298090042613667485131628274452025853270757313793316277471142930633904999141619406307437076712807635494478297052761085183873583593374480338568754430720276508247726571197942210647297573067395305172254019846824391481883269692819377440146660961794298406229756488097268772151410576879688381681853216396375403275916988887694573146108590427339722883921054759098790620654757778068426634690406973301192253229098569129295450265030652973841862626774531335751936974972327517718447655418153131593904402869154797271058274195476904333810388735292041137204903780104963671501675201593292562314448283352669687793346231006785322542097796880858988101326384353685515448730311685615793894192062356279306815608750969691904660809187552941145182427447686961918655237289904457083236663190588740411552361364058157942119725328570668507466249314666980188453316101706981958851121309207639566720330489076987781941725251500060736192970697513156242328086093027552950991022152602090520825723725133927109928044305708815579725913174475291040932340580851882632146138221163217007300794783681446759721810334152993432388333957148803259220404531402676721549579355352722403800767646293379293615583780736854039377103864558896033213920632669419116089921826829329922194552067745931330567074370210643134029133303627715922436842318015738725858259686477714061478952569983437532542931549048413446588442829964646460628552993538423564022528913986795751921730519370734127971839238288601402788786233318220846238961885365826887630068830313167477165082625636041429480844079096238562403406044592066757542060188998788180267299808340398696175182952929565703424891481324109545899471596031177909924794623388798928209076481048684099415454325967794828979106035566749767751678271939342917151702664413617606363926513535017150972247202730048321960054533140147893011937291089460397155793099361012924078937108542839284356687858131119592680494378143665639191364576308834643925996646604861724526260526577521758163784468862755491730514515201204945981779150276555423408153561327580883220981346437604629795993721603537920778180309258455453358396358472035668661308074412517371454919326624180015371450314940309948364070968663109462381778951338248365287833713105984078205559400617429651781655725453440776029888626776828314760112928430947252613451464859104208162497884889270691483225090539885378789035089836492723980667086395058692881924635026564347764592827683020966246385551526206746317744777373436568458983684193550234244807902018638544101460195445654033362882115389390100734411956300221078535733587843215926634851242321782881282833106180768298974873993191732969473911710085009292432860546024724391191341518819495020558760535269258809183823742825733061536991974623693434031842058652343169004986130949103721330777260967473239574360292695613684721535991402349161606286931719172978141879589565647663557889132282313549524374989909224722630164520033263177273464072715129150675222439416065393905622367436576374117242409914209748066390842085442919257939613246046212782366499049395168822082784393395018932851489413264977041131139952955478851755990768534747331361634802643118553529448323728223108792032391339184930336833695188512360179086107768402760233129841669149227748530435006194719780613354930285382756330112281255448043880243554049077364317987496021227468533768712629935879587032851439685726744948792364338129600169520263884962223236013008629435171413177162199496618317356165915307616959146315802597753068724763976626116954022992603803525926254132695434104760606402619969574292032790317521780492383005500732783465402922285484948900886589130866720734651847721035955841277826808663609907532571580078032964843378077152240004832372512714800821642418310825822281685073570740940561477419535307715686008008073343912997281391787144940403569615346518812734054600825358373457228933175965243677540117697650808182585710759192401009781362076888067558119749921765552387383379647024594835552025858395315116635027667749180030384964602770636834062497716369570792711736046888642305862596211253264583173631966381790396163696593506184717687609185386763956132872234183834998260340886303967877238135350172681667777154251299177075293384376313103338951652217929940270733805624621686997411613841528787477004131039729424353084284341109914187662113315827331643495969868687353494137626451011249914522034376056180430871476597786225303724461232690760294263543492926870153363140999169181894088091885624456685641880977059019634549666809040255993178831268248977052126887819870823453457333560493055275517236298571132601631624375277150967369729477236129154624673222740087324856690288733571557805790604662770668017149469582766402884629833267493594000133781246165844005390412040133250663741979928694025846697249806124830295006059624107550772519223817388164139067817601941275406581742673120201104997013994786894000230887206408520692914793037778342968412832634689023939313655675233537216115927599302824561411499813627639884708562450397881749955331827299505560778416166730619537548904987291989269001270404216695302161181094755647367662046999746811049419008754490357155901379484553517310601025501002222924354932716836563886758357014412186049858231318622569043769353663001930358426182206318761798024370312568065138721984021408598277580110624241128100867796621365991935817375178386575227865938823040896182904306887389274438245788138078780755805408639686336275470039131521583733354591374895182576380917372822795726445801071096228467554880949487036704926161606535002866033198394759372699206504848156136646725804885284656734692002087190277206171385119135653892427670929428039017216687236236608714205470624186278691360040053006668528063313236264219614039931683656583461929174655447156882004643631652318259713276911959436183964783147772414210159869199588602001871537115688938433810561327149664615778666065037346039672344443920767181831027801669701855878537748485332745930635815438955160737051498143072794648865468413175719129409661123737714207387812750803763723790269529074986086007653941187007128138533320608014414602755576717744822093294895501899604277580988633223746177819376729963182139365130501536626077273884949435698889493200778448809639788783871691340835357190804344630731371012534182420283723434444693813484096799943863819550476593321577841465781134502036467248755995337833216756396265349657775544651462450828499184044217265234213275856386980342798394948907620248345112450805353902965142034971222188389501320798741676247437775694024822124344867723714426855976808635685275156408969448874124151359376496405857636443306930299806468862114948861218103047417515944437953501035599375996740529815347425358356109609768842625796425368988158314530975494647509137192909837890986452384597738960454954866721347533037084026167418690983455574925201740522669566835059581427358674098100510520240723714332098633434924305924921015612443481292687592107606114657543541050287225362819094824069323969657265043180636871975950481902916713683998388281852014101830353827322631318184377144686805106009150651395586157304754679655871891211234507405066691984022666925796317509412973958271824783035931961949950485484254621968456844849094549165253377073138278204417374274805451837097789666890983220565669335948603872763710925855443791651338995039939139896494188906680620398815529521390566996911612419589573768509068492610998400791992994481614698282265523979477957944751658267312315656466025147790729215222949771637311170460032180140888210879502163087252339852953446304725239133752087661139482277300317585149970651415114114222015811311539225326256678203886112415329590887176256346398109038950168080746437213978233507864302211000664104779777490065379339658653350240222599588810281178515155622908071410763270745928369628530974869792167440808490017322612721062064596988433347810282048928472787504437163695388999021370960078612634235555653148463425721973143422811944308688107381890633678951346933072980400968767402155564221823874406743310101750299189775473844087015040728533591868483449624080959978960937577776594695680270968855428135222588256471260743236405692371215930854403795932853029188039484451181131813851063374535611001999689978084713486571379868329699574204443553747603324342711400309712379354423713843183111425104981471481042652167992855637541024131838892189066551823375259668331506172698609378380266599424556583408865695600630945926809914518388894394941292958145275778172139713795942061408714132958504610239088807561000536453725646768657390970309728087445361211036191691478157205428659377819150983188494356741584493780897702601297519108310526595048266648718593960163963240438712303889745682838134357083587763406926634339663379818256730578388585531929937921630576719955966956043609068448213337078574768371258792153874158920228671737906095161453951963049106987846214641021513150154314689921979039925477984178452739614486102993427402827790276862973145016246193279523476680581994574814973731053984864166537601768351250740503228906312017426066555279602739735920533590618346536524142103050647259272895709612616183644265985573827562917714962316911699236816605095432941832113315493985160226319418203851077447653800910131308102513302664185300662718473962430929735744933798632833246998479037377246147946186177966030626540091715867806838158404912256625266910736181173259067123029280279956046532521929100107241955559918866489817863419756549793629012771003082583202600911820959016656584072398839775024197287805473611175222305730956478373761428994666016925748009757933357164956387861337357774724646070696799453713275822341421162549670053058148335235505040164330738374394101062121565104218152827115375409503773067164885381681234735104525737737252953808570384701387389779538749968702090112667687448824735116193892578074221531388190541309191006188889599324102027153169964940218868684142281508754364640952263899285801167580714660237291520536375454125469432154809928130397165591905556432325446274427200950570191887067321540929184724604596158227081725357511455622841378715632798775357122516909690282731285044510046202812235441923998304152775523576520041592973018405823396990524015361971188113199733701871044094146602938388273424567900808565513284095404380301016752532500003813943670697744942629567691412832952539444348881152465945652670758474551825522266403703944076105548901127009648114091279404813618477194614099650337501647953979034055060567087628427440135204030449426765519177726575693022815041848781900675480947275562505931388525738224682351521639768523816485720884103764561015540487190176036659278489307242174799731586250568118904534166698233549564668891329299142262649154260324596412670192829938071973662943582850804391511945148319692623684988145079481380564554925306986970673753111020421288161573970716065410448392225968428173088115634708287632242617921753822886753772745899090953312841737907194764773284937941644386056521803041915356583701783847182089170861374323455210296450897551429007869576541506041718315347036626037047374522749368401563555137186514059331595528033974367867248090402324290862491945544210484558544397090565040993965345430249947750756108007631782349587814418535883881542392026810663994072166052197364106701389798544290521598782142455221001139420783986162117363506433647278866316643004603064573527586514454799983506726566200598163936652618554364545554214165682767165985159049983833654330741220258503124880612273202657164797368412745826841158034790886049270327887039585879176789524601817835578547458252094825798276696673138592504508049981563720157148414504534956587202153196724242767532421122333931771532270635922822395970134148115302272661469006353628048449260210072454875095225863821668383858358348287041785625193460635812910658058170355132659309676953824388358965488998832144859023938384640186252170491771705072817522300805703351070419477422699639729688867556040258019822911090473688185478928243037336047989459468634542116467989144545346269617144356428456092913930688096671610439947725234695267962170618359604734435241636489565816615966476535678038443174827064302409028222782749913824877594897357420123056239551173402052713895040535730945697959875180931481227612735329531038842679851080411880249832578431674816868560774467918102517368625918784063589192851960029306637235196100069815886324417894567313486329202385640652811349479200334347632951262349955520525856399316894810716621056387723494136451129198249010325216722996814083988128816262719360345429207488635031981284204017665951970604015434369773166170021346121530605539069120796665497261368495812513534154971305969249088951628453382343665566395876282993289359236938723234003612068900988420523327055824087632307587265031051988756422402985812262386672604871976230402353850929804003281318462937025485784187992635030987633201766207732876846975004040705238842865940777267970634507357194759024240980884038782055834146124758172830763090345992551629558860581715895579353107695037344392658816976014266554549561984720613369417705176660508826124318941553256198858243502780339248046613629626823500096544511455092557515511549990042668499091526169180154546474755917075235776960206264380895370117894961266811506797178234744644626837472842908490616761788309448448201144269613289406735215922996160510308615616803083709658136115643124529137400068162426673038610146004958944274426566097570622860180055250626784701366028341009899663976169815370198552446240167996077809716283214392490313763667255668983728723899260174730948053491852929063774736106588223664877851131454716039800127398365322399967912990180708170558126191091288447081012475882407248714478507741780062895806304776993693949624646769096095183300938865606027307986865263276507382627371141327934498851622317999731100876740633927840799410897653743642112988593551557211232990566384535937567785138922172742758401979479291847816766644524162790684710428730877728424951733115963875975038408045425683713664416287300837271108155053489243508254284635808132949036066907454637782413338295637698694759728067142987130334419122623511159667814838397765242230209767657460560707955352207374654113566253253793214724238068357076500620543514122232631739076860201782924500189659410956168006409549476859791418290757282715750476357576083428751687223358387249108654801809488960695007913211983079298013478670952219368918378456404075279891372489162059311325904077803706598481963525387899868268226126249690612651185894253288208132742420887142400643550720363571195117494131218872090370168692327448852868715940224473689406731365883813087595363692158769366181183041098946262216695194330006406206282482525491427481373588878898955484352572367760973931065351520849082331312441337186021883256238489378309063982196621970576596625860577260812767830464645807032280523552040045229443535312505690212816819996578164859622138257857300343314389552260448578461388745051103607199626562750622033352583818033050492792477408029369554565103901058593543707846833929415610709677590640708765890837387387638898151006439850043842378700103799382776201756895178011049540605933838070023607749222153109635434614135874067906566902303708842664066307268896032086860947543304032546654616292243846973869698917881886258859989512540522896723160421285358624172977955213636767926138435653117847736404146843374576842686008513830771236688296886055267877390436572997299313040835422595689876168967688236214429632243106801680287841232876872868322267449525954321703611077097944501099268671665895465234844393204391694530753737159592675115294809634443128056001893651591577168320931014359717355513976690756748931204264043348080395936231719760260637607757662555778939343917113307330832609334961013791344264543146880108439702447065012934762823261840077103062308427550213719548154518589873662198066780225206300186935465184630967398971068382178100960324120854736540146850261045843788317001276603408798419859322713801684205486610226144940936904538661574430418464489663590741605659963495377315617238433071224541467146674274253805575711585200001297487239132341974745441919260678716743016698316277600731262355781231952422827899994070924214336096390172107133076034966550420841975528418794816440304519254675308409971345880234607026951440886602815427191055683043557482426431037037242632868718795553600947374848613888291405422814151353511179262212137085929378155531074907396939504112674226049499390353951408077773197149540392159004124565867542897230713541378826744068394132559650515526719232094892700805690614069980529333295977969157557612910302601958636132347594901011233364106613189392269864635220628095731425509337749434161363213120510443717264467504476966889793350403407940674217216863879203146823849521851108336090435358207719720118971938120853535690852392467496404880913661173617379237900861471008105763043317135174374846179492100265846744452977665144670555828128285088351219952446604940467458262767590567370619770886336847172016952028124199110582293033518978530687198958072886253609501258243118410633955033812039918731374465307971802305901848112017235054743826398732424817428905116681441453421506763371283580695614429813841050074631313461423548730359864209287164699579956123117092284494099586648614592866789678045823093378483462909400297656575585086626612896808679569174753720217810390089188537038777283915730721007590931642794223867427482680683052270365559100977320867679159906770693567753647505597915719164056768991885857913057178470489656508078755207304218531850137503089673162643685659758206781359633980433694276211849262743747513016414223166406901210816349631674977270196452700402824694019180088722109244248817583212212788181377625006655496569100734131636921269734384531553672342001052413947348614344693827558639405557691043565536860309835321561456819735557698174853729449164596322135251471492676750580568295603513739271483357831700538296777149472002571117649024028354901020398244391880128357207703638809089266383973787658628053803524914888383685028988850493659515495182846632734591649499644366336891845127017945782887928434777291297172820951717011047923581365645269139911169596704370771123657898044627864930394169046395498749440920389472346277648293437029627218374965075744804270589083599767349240414698713430987592442274889260000776593938760160698515218320808560480652387938019597990107605837200924821555066061181504858707740121353766098163631913812171112458484895647190534511723397933565038427848827185456510205706044862442462001588379553388140209373587988285025482811610581021282848329417768864493135228228834359289899501693495001103262818167039681721365035671482963855538842957282095695882768341479019138731314005718320314248194703133908689130277323183361996836214060432329277912746395382407807188030446492069050826600100100656815199236647407303061974619268063576664902590234339142105204368966567035485074897972219102407130378233617848971371704616099099989494915605327772813008118644610013493493217187525983615317612136858100228083878149769678487816059181741634226874997074670445204155987811056894579755542463811468092949586314717936158236613791430034416676831426710447690749436518341767412560035580416461983477716554504633686870036057061189153109582815204383387714091660549653020866460451756549254332999819101656795072957981180538941386891595449432333926292395205322485107090988833424106971829141069107510069660510526399517864928665215101395818826103650045220657172623365074477996491545892296961720992865563659315217134794146138459995612190408519418333999825776574140881506339838621890338326621954170862462544189396447689589875716863797037444936704991028250006296718372713497788407906000969000227163283017416026647489571580776462643214436546143639997347424341914333993148438362158266804057518451402380360760962096004253781547857897075472025802541697085890231819091087741784602690364663957120446604209602166869375520811660018913462556424653337635388410347061116350792667719337278964755058509920063836046165359549679455069099125421961754495936237962549721458691730373691624484894387832057320316444388999171565024208231862557074115561170640669465319200699139038462141212501080817461761371692687740653573841253695970013412627867599462595539331656771526085627547678544735190604764958252153870139259098102847366988165590594794110213185458416792514258280388914698958027813750414460084492532383796876977099643487775519244283377390498366687156883841626716921505347268620248352973830537761608121286756300832096367470837082603848679028632783863003429726671050117265423093846504874238510474779944828179057250463408110940755588517836377655242476056083139185758592953598193037658704548627775002595449899156060191579747313276075408050909949590886253388370233910503680378803883704331342171018680842232551299467600412738910579476000956346160818268776993551987868903241094055424391270567128028235842959011170277097939813750135255293528774229238688472728158784901306860536769157174946927059761558610480920061576569483394564644711201644857419896438613470120437621013360511298584969722082465061345958324431491705031922640873689280175617261800059101751637121460260537854780686040987857045106196148191663417150177438902037267071746514257099341564743896724183283724453497244699608487921924804386223554739721825415332551976724780141210067497844099239031534158476462533762553052391508756584065135965014656218817707543805655889995981593313743249353410803991516674908651537809702568542307058987417982645980496449431196718308204554775614965271232137436505590786768431179168599334446132399871803195169504610678026868010133919537460737500763805026350027705641543545493426523260982527501637010271360537445783802883003926060661847028620930479644768583361578834442373655963023050640210058488125440588307965498979359440773313299670532830491334724315757596149910479325864720600999616782892786120305924721799762677382536506799620712957880112484864838410587962008228765432207336509666979436189553516619783585805259508707798598187584635179170410223514408248389213413680020442172910511545519866618765401136948804937709931246924206966310912404532874108668120751392100254850750581025675039829770459227284802965146024222043975882350741698767538491870710966032199246922090581253676131300097832467021200201486129137584883590634043790102190759638607548483302791482379192303831712136418602636503119336247560902149038316540816662410794722901542067613106917946709888743915110569871464948062994585930584346384555714789721956501944809173608595724440297972988402780326133807195651200543965919143348180330599872349157027002154553384990878918634378238176165417852820099037234035750517287165761859290197242437859540542092612585504027156453814754962096346800085500520551302910510524222537969127592611295477127947614633271004810441048149948451457070812735171005523306074516877413310673304628245473786443343162503493261895463088521426692319090918383190880512018168696714569719151716190066542166160754024298670058363993644620670873823551643847591955834513897221424148679420667858661386917231454730632349580659754090808917224029071506470045385186487207120103108700661186717480702157557073452821735626547345348829956682769986985940023037658523883283983461683719478124924353249825085840213828924699590437949978140751564300213119257911941039965423822443297141999618328293353587885571183487408112572616032363264751721246825301389530862977114620725608957037046639109383851720648210812662848485367652252136575838177725702409048389932106979180121026675954078797359476711484686559291477996719538765189335722152769568307172406503246516593638581006471647299024856339601979076512873813977102933598051845004358248964779293621200872598538580660597972022414104676993097118705423494244250058676684406960330227846219216853471412944624769916043104825659674639580373535978998339669676689893284402308578162091584352444598005646975965319939392722122243703570306001061445099012667601404300716288052802598877767180928300111506935757397185421173634827257734842984809350383416165114116496353811879121168459492245130078681885173915994274584419699610861474388058582158684239394113738201267814590746956482544467616755174585090100825042262861248401443138631682870182342351380883915139948903604749693312626897564155028903079438422525626382728723215084778174618845020876642108562185586519073347535603748220451315752542866778251382055817560255100303338403269345282641044986440405877118845414309393244539226859287580869662904028154679216263295509088795326169451016571221801524039599975925260291223683681425078218767268479734892495405857538989554037578277470541824591657394394916623256454792887958635569738463540732301600680236190478886308765333909952047371419253512447657374263790539541543060138796925798885777057892352579940622041876522828928368388610354540137959987074769485171720738599896138571190973873632627097997478557330592330616066292240179869962668223659537310730870379152133351863994005175981409256362588368973354812813885831287163896816742728657374980510007541720937665160252216082270230849966842623934050182729706678314360793677704810978856959667975671716931576622605698190745708517757092730361269976975669512358045952569901513841025967857296738719837357694560625076641535991371720045471442138313352004921646955238305850398162086682145209267771041768568312032172544654613196890800612930270737679442136546560712193857926506481348486195356419965311810946873997879730737700493249530236955312582109927216831417123719615038419122817614650309375002579912333536885099764315072271047469159870067724021650331109495825200134314489282422053044264284528086340419272818793738018295100162220523590602619355560375928473785957981580474116514856345932621657625268105774486456415862705094759056702920279114165579762792130529324494525525928355555484482093137280826544023780427033901424894169695543303921026263633382700725438674831522395913517823911056898865192368544871025919780852881388222143826722351864822327433016231543665075600590490134651113582137698643001325280258806199196209442165354080262456931936468304789850804317156021976841833085919565686094476556666423881579626249950174001156659259911553459647474839688159277363922670029295188764513234240564792886711555109344656890414283045208587621438253338341691172280792799048837124915140560218203750051813784693396078523511045078721257849376860408829377357425193266141154645317084067781082818817084812352215098500873144683511165812803119199814563183080021668297324035998421608975391951441866821971718198246780068928259135342182182244493324494452871261983729974984066534775502739084874965370926209939476135457340459288367477528767921716969059703457063338367308783927912003049035520851619807163655169246693684908120067860040830971781720042919420475877283452631416488656057290383702782972347053855214642902611256722433796572157257534392832905410859985796203100971054355489278010558131313687277436782665747597545588723876099059161677181306807359874542542288989114752411691874868119961210073668184470116590173640235284360449794423221700888297988309929871213260872832222796263907242491129203297183152977219774217251799258230757883691073816482701649436870287853771559721914446955752559677185343736538852970636468106603298752840503815130799630090951020727670027795699201906913120521902694626197015500614140713267487691960743826944213082998532686492905667415537188141585075944035169536055840986953282235838432165780036257246724383692191387374295508355557816693964363575794172041105159807055494840812435285828263594284574121225742707495435748692004786426822777263856967661913031523389227634738361007612214434504945084438943881664031570567402725448195883132742115530317701087061381002429131766330703586262198759364383356621877024198157415230950776804867731356130854646348339159262868018000052384774510554162046012333188748920344294325256359502540463165276386103304918390901848907642082337204239299783505199069608874659784749397355713452218671595059398982921923846269407180341777336080958262514423292099744223318650789266326420959688324979368368655444782181932234402494761233591575376868337041091625795975989163553979599103414246576980699283693527018531086973273123858122087099007431617823256815891448024551814226172367577334348891959623297784061468340379808908441418379395540836885023527512900611956595851294857367931788204215119102312394962165916942560172273153547326372246771907193259548837959773217460441191769409743594868336741928750116247707794065462410364579946362025870420198669885375420543326463165002075360528813821428904600249005919167175455812572747290329436385512637486885805287397218703842590955146470177679962348396273729884491742877337356883179518368893117482582616181973197043750258500753655978268478693128373156471584482074825806498370522997372793918349541760349295478967204226078082281852621976997652869585263816929241026991846890396015422879674815478605025406509598195632651858284867657752190223941547445859339976085506018773999076431745293902335993453185161531906218719707871676972064790414130397564910661088336850785593128122915740632391709768974094080323057129812928424610641181251375856256147607551736732650435379258955009438137858492774681809886383221477284745996907949628914883180676573881291558930433867798260294167601992829977375306067991769796199417590905904510267043714606890588488720754238503555218631012134304912573658450805274404688506833050015942114450685719577519174368892403651320199542402556898140186494726942596962576046840487529891815896476898672655607971167835878779829647964114967810247377784987765771109859520565825409091165414411179326315155360586676740173240510857162613465238000756598877199437912689832300707544770748992497759785749967579507758712455311692050464303391743647661525255957651342497441467373843008287265200457720255793597063232779324707623664430166104456161354021292241695648955502338190510255302284981899070492972771902253621527518782282760233720649834755408389334966296154677414523736409313329913208596682949007956804334425602756339917433421928967731832279482963533703987823114656985808459474795236793510503871382317250868390202959623900360201336466104291166109574895216204687598853750240161178343887709892440989504250795707162981660375750240339552717254631263068189003959459128048708874893620183785769647434886469833447337442859090008669626666750931464143741128358599844047693352246617800844484363722320438629793390786474533607646133240958458988080608911924615908218759250821515309191076098877530369095348588143277192023101644327086573243455739714315302446104002197012753948532105587298582586589940610786540187145809247385523992787139191087492703291731640805261237215622993081895850128601621502344812064435536399839473986280900504501815601666767236467228833163294719691968726546962378130335317870269822624062153539114845092888031596857564962608577117912204397973786185873775381023911956416808206694214203590523002709015708350368037900127743196398783567968569347652064841181926890211720340126083093908510118908164217397755076801004136278265587318911277186378118103985119814786625953173208301867084127851277996560280831330576888057472764322663001340753676922358634562340325705990677794624925561244302354641570987502349010363409625160481530809491542311692216227126557059906068524315296811074069559643995850399782331353930633523145859028939676680485198470434558819559604456169698446768914581236737199766370237420459562488486777579549204088237966850621892003149728006823600570476569818550353520442723058998525166770162347906450468300758598662458619227646970299375416164767284630046236777849155139337372773260111340700599438924636307435179969533647074636284163786126709817806670802576635922273390050977662608488472151826081355062073676458906231997429500689270104304879381377979615224538074230995437790405101344855873580094018972469360393821557712657925022537938825131973733275138039920694514440137298750670612630567353342714680539227237589400471378016767293240306450828086237283274951953795557637698741522512147763655714589838646032897650840500013093754375956244787873077594930888894286278914823762620516214093057886233501546691640649533264742358823999689848848404078280224831639543336867151088485733282093898702174315227291611903144546824517892959754955604292599333082018526268159478783810943230088715726445608734944182503097648000109251771747497149016466733687310335145113038105789865295227817105501863784040445428518153064695122949051932077534149639880937778907705060013922648952356545742937736265110508066766430525968907095378767976418301023584735897775238075457191730025487320234625532669382779425180489356227888725585137856035337904394548970008325031188844027454871070590774877354636210227601130883554728133571434854719817577855053464027546383612349991051249538963473893504113121698203138916416724020447436223494653684020816717539541871379913417579303654570370734851065143946429355149690449902509457931183714642261406287270602464840671962917698954990042165389544028496218530566901290582133107644441957651293957345600865858061746073831715346884745363142708060144919460797825255461444450309143137720312172190907861510189949395941323888047312671380117414705779408166462770822699832217679754913494750537142846959087906035727341834863600016231878468566506345704639985736453809940882409548506318954332674625753792584060656649652196954260941643994470641333311933919654172273874720121943433815232253949462331799312852240425352466791829757922841436308212274877761540138996607524364265861274079700839512223194970585071869705324369659952244046310824592210690158390588661513437605802366860630343705494971308950404355636024885805201164510425250290996569697241995715874919082512152286324110267462042736110812989636153621799888989401285746842334557603746604633291439716418553832472050461697107076530596784114841931924618090867012075972634765363650901495383876532472167923159187826137573886090252564894668330510367280624975913267046128526100057388727206232176699840778560309741669449765834994652531140582735861907766023178030814770040490004931858367946098064114671185390431702099950308212653399281204127809510333514722987390817058012473358019419027492310102393995260456711145216925106201059315954366303586889200989576284072600548286676576801648591663621382210325402493829458566351809042027608111626870224861731240365108948822031175498481614022640330645798867920656917636362662861514813378502626278345365576204238333389760984624425422232231853362288526901585549378279852219221653416626461214337266298545562030863607168663175861254242310625356813498630471398978898381253777553718943952670312811087301713867798401550102781073593549464115301558636997273741137860288800822284040537551635329130207310014966224220504333821954487886304817650739021466163905989408401154719666299482977842773765724744462235770373485913252976621809115302902898297851930441074631779551341959802604303812366733412406072819361731829395130280656471864849189294335899693356356245382459900976497660838331485918137486720615379003022559048308754817812181661271472695733407092036421575631255647431409562106807205788291169137779537659812480781268513829752435880058225446483849572439564525102219297599454339469129574331377572669022288727872742710247083486931006343687149723945160906495988216517550954173247952563807342850459055949739821299275655690009394585818784103469138699211827654620924997609556716413740374441388482865701944485557571679847345687548678786744767976190236655679921072336515716695582527630497797238594300062380167618898780045573257786111278964697128443624002964133557311112093524819938891644651012464696072062439606885742666936345605225190477997608894558836108080134615695795051403300304891320451514675290312161486078064515749519347542282529163705142774880600033112601825788193523340582136716916767010809951807828127565485362717796223339101186352004031348130853307426461304946909303490322701196063393957397372602331650581948171112822145209474702130482566477725767912464432803237091273475696580587434200784965223858490143465627951270733022475825036166962793481257989686229659580004183983163276746397659738424402878266146078686409174936626329912290967519200345261964070759944662479469384835874157334589911847344355076403371224794155789923534399697361585951811726707969422112417611900158845135129350006634653603482698698965491618765593317385132233491929103166207920862393254469610075740528531707950950093210389060775463530654959555954391198539448931128127961247088202252565856877416996505490256025134699023918315313571019787254232312775115341398596491667631634141831089908693880594415009209974094540374143985110671719367726392613870683781419228701715492312848790897103245727473463919672006274868264370111578322182495072028783073101497305708405107416621745632009771394032013374667275376811907251595968913324707794665156407678883180458876560263962818592090895685844276775500237356636564600824668753366631414185855863174603071680036791182135318539146018417460971097624686410494029878328363747401278674156832049212838486639494093487901886740576705884021880407508724966828113744534571271430298176572911881758899565934272670406635205484570895482473567557077842730981272536168843273163450206621064767122092228557040086558082607655258467645445966863582341058203193212056408969946414613703966456298254096481239009820433882580704040669234668850901834751560543041711983124025245038725182990344447946986297456667947117153609860957851569174574402139290818640405796148000136775988819123631657613978199563645991196456190852536561544804515462072608867177889808756095245641667895653780501702604814678207676675515467043094053899494590158740658778403622028749448967801525764035022588391156521151492456598289933710940624311864179236365716942809418068951112960886977157038000934794899370125169296524268822186235069157803585768612659933216284266373660545502225251734514873966295493509125862197390466343077004856357433757667061148999396810286304909675538069942704158447533918062116079481170715854169931910382865840835974327960508275639230159943418604273394869655210203601009752243210749733401486766356958168751739199402680034100882755728281849399738969019604577875235616516806296781496531146821383891322230405347494367985572646612704555431163477065609708153630755594467442749392054819357317804161786331320157361842331163567040340065523256768303129321602834751211281939770575961132456834046756252668954907915399357034049627501421877359473546290488333407397457329953930687578967517732085523792362162570632930939356699259468084582488757564322809280434141460995353201633973514901295684577258959240446868046486934307083750349075028263325458267624916512713059028697276649361570326538919207023213742262707261135846186815047109286842968869626225413928599973266438439306541722697414791173580536436463710918539910402653268554880726573266214198762611484507598595080358559300011441281432916192553197629327279334963102250232994399179993409386943842052137678276910737429545686734719981879233367138791025184460227028574993500767117728459559456211764700574201660918708847659611585561494295208850716976745393730400441321275624486125196412652842137836357774685145202188978164242713962037428676301210263806445690428744654995355931303219387702070460247746553872751038641915908987734014410199615325132318355939069961787336536807717409625658584904634591768964413541285488409973153509086040241786426799313405510600696485954517893762683357400304359316776076766677220520526151983805022241703801512807355644670507921570775445911073903825654758676352836408215634367703513673334343827623779671388993444850697385426758149522373690340259733220909964447460895042961876716781753141274345155373742279496903937816130894534500363198661332996936048076859943010780956496090975469208039875219834309297737782368188885629911313772988108508514571171312450383091043222872213527642414351182488707837561352130991424076552225395609877690198081074202501855467346872929300061779527341360885527433201084833490205252102402609334507570440812988932241592176624771085144797824470356231995752027474690599069400482547353743721865368735894298543529751651573438440916082342467757682930245109452745307469997833455182177409174695403409435497611508768490050961492650784728644806696892218450951418850146193946653787826711122912200120260366397073957391394965864618563903267934795886419306209299816434590917229602749981904425502285138200925074439040066383431212056607059476752705695257687648937184711898273450593513201985176222247630452632100530319031745956191106683547569007047032142982240791354235138682895524948362810301645667790463934277426901945628882169424039209053711135652806442511443240008262822960967176287553973596904643393358330162286468529911603362861835766785182395407766527350202352019643130810994085744363095285376986823198293353875641493995895120943683228214058413786040815922239603228709918714176753048818237084416897995615419027767848769087021235177568840925227024820927490593881426497206747900931573518925793115540597842306158825345290933902833884799990240306859494455268888983852704351281384604304571067280421647690587299116343383805565804371628019742430036845694651932542440091057749335093825186495212596296127769287820177020025339314271968984447799286212427246321514558887367449735126277596611902541459055312366397914868032997421247322846959948930974358687457765683749185967733831802039568572556794487285221966278702932387048284734851821701899058639859071939882397466342889902934909600793230711752865319974859599099449360827162092732807730563327358915627962147282767249433893963400929369471653774175795048352763297307472098373870080821650243213367566490943746003879785065546869680250298863138584556603006242255919787397331003062567095595102468457825601106616106836097371574644031390452915938993156810147225867543786109277836690897913799701079745157619045032002343433620847205067138209057854967969207336956814081946915745166424847028860047002801952161430892897398401015378989776182854592856489913753504398754899661239850114411874651227502999503421975715589652912920689904617861842665883350119159622756701313504714673278622213346112902500722464215196469847321830944117155030399753430650412972452502131854365690376123041509816473236080468063820171385956449333893287611345890944687182150832525856437971913816945675629536377705871238887220735347387427079919286610627422375556256964156444452318231758927955917452107316073497611124176344564976128091125639284870357041568387965331008550798698266697272734872251236916863298587393214010971939266452316177345403099919692003952339011880676319143586023088672933826077703594790756317923457999920051778855624155090128873594763255801297043069398276418125938390246636194278472789847723151040035258292607921725680818744584221748181876598015928201256513827284101853499622031818557261395103555484662841905654519294129800509556563493844738657014652451185451354860807507930074085790062620020144210003349715168671161636017492527177584771805486351691923893508621532603088693789212887063661946105586020305171767083561048987790062849152768136271798328776056390361440987393697064474482911717490479658538892358336816107728547388368466744191367281721840835207295942681775599295044920951994358024407262002891266047321773073431035823047307592754913512956024119810647600171071640852685134642677621866607694462485148498535027985931062927881049463757849101114926497887810156771706432020359469380159040766064723016978953940576122591972949459630759287560218881260148340957681370737106069925714887078732233745466666718068189528571499509421720724181132974676418779863338289655953616935913431300611749248003275099836586378706884762041149741092653252184021545139743146619573347227344282569975634490093368009064403320612411929551362753203796253974993294903342634384305729830161212247657012081732851036174131929634652360100912785429844709959007483213591067464985463078742167905564134266303809257362772057241235971664117578386436726525815417766084822376685921175754213357439522352943236949125915841046620068806495740527957284268784635048987787005468717530851580399561183439713188979083124613195620476762097187570556535198528038367823879505701541741806343743398763115172834527412532109450401339437552728846529982792404522459329973320972727716081312739190700417398164897480619717392243032295300301910273625288252571288655861225753584477989143916972863922752143463533493639799084592657190283381965633010337206078047215088316905863406587492361910917396008355203585326192893236994158643074248240990256057880826133391417424258360628407969809349939314490644645896257334970652130118329486987256524360545978062542794147024123904769471530659567460720194795942043314573236358318885953553603808705064072458376466369543980975908244521012789730431611418905240462707025708330526957728886868249418764863278170507827692842495388256509540818252564954699872418382693364637103142790775100625745918075257778902913616121948302259818281815936675221569261717598969811734842812135448621649545030221544261521615164789427527960749526946894390492307793689713195771405093461436442839737130374126176617854889528709147326109949517822656825476928039743600315238408044408218947296209762336714925670405880057828404332896018274304716089825505059082665652476011433932353125668341327306313570627168686697467314654497347219211605905420689947203925011124908855012128663707382374956751930294279475725309732997863360638770519883686481246657280706048688039660385831147044003303606414701565974014285399096415192336888805226199318195891517956656967763662900076789031816528246817820370581026718336360383247316377059092672069215471172665687295248970282568383937335574327766526113182280433019720411448458347342237102039100844037293251281459203940392123653870804706316665074023573532560747589418540087292631868769675778029894833190898794854105375421693502394419437457661359325848736068960497725762049953782932344824899446040272048868710063923148530353640484539816938742557782369093039722135661367618941450863456796079174327417794274405125950732885491806768357252138210974607597030348843433981140707401463997575696258302737424839793463537417145401846487506002216172743900756965158772088540976257057536664855067956865625639901326819521273325827914735842520127488668563643596736012083434860422045468071419082027079755305585611770568407442187139720273600265556382780250126093635407457716092896482515690898757437199035826894052973998030083923231661951601127865400430354177433723056470809043104186408339107361075638753021812203860775345867297739857909332757597424829826841112272057134014053982549714653117196651592460455188870591877510581887315613183557619081292250439860892527669018118538048525780518132680646970415562580134785552802548446186644891922143309534630514876409466009993475962328706374028334612217365412734351470829384635256243917013336540499131066278959610977750869421113592982176705468878356645179421316866760362849022514515061458876181376830151445188954039355299975446233092335835647650834865562632060149952932169578791919607507425145055513350159522780148997481645906619362595571229805190026077673105151691209040805972393285799451985079418694503943334240782879929718421912447416603022080768650864382826101363847179841115055767678997128168957358458756323139268304522711135449540200164249573143972914727426975230416863212452977734483196950548385962717918370882366178407640268065532484144570622593358200522661680401436360280309251715107627570015699501593181627815174130012900200813909119063951465139435768833744271105343997583971872348821075239640364611580704434342542033406449157066294779794635468756514545945462230455777526960761221754410411850379001406426088738701609433593038536761978342825286548522896561344218991645909837103271143789947689347259729687566905030371290737363690150015016015149418840011299246971909285684078750956189225830789822269601873799941359170654829096228117180808789354028598596495072107238440088377137325478082092434592026946826179661800386224154119319510663388607713992854208899944564051899915326795575955565339694737662550996509319287225304990686285708916047982902855636283667288325469340349606339670412381654550543994289449196246904267301378620868270918497852431868910677740888890452923081864827446983375033390134887086007745759248160578946766446653154225929103283447731143403743704884337899253903602110894578605313101224651653295559105720951082832509014296080807776496097831938347481274718227532466814943449157727631059200905093743469489328107549563134999540817192396253473902127817774825050498766974267305967328599359593985166685893984285258594215876336195751016537031197997857618411255974313698965019835390057369737879752272250626702426108463160666565212130270963089700196806722418230187606694679191143769456251847741894739193551359923947798044636787996960278007287516280782784579404251483761727631390331285825099651027153427845818120738200519467007375971212289327183229281484357841072616914228445025330199473857020202762982274265158969838044727482442483978929432809152170385492676915157108943565673312317844800733113928869663519343674826298071941948433008036799561543740002328856011314394822036305041162919734358635578310474905894192158792498384018936979674746766936356903449510059586386303424024862118432352379438810549568453256744633970067097306688026608072544585105900895662145784738067403493806451329011730253612530241397174772784086927472805241850359090353526188703576652106945741719664726937180943857706800445422753794206239957583651507525790901050802619928513324677280694098029252869451065780675747990496045228828532642440829102358070683045755751482121265690035432125707199530679161006201362945430694472467015822545961946093003809976485711240317124663386507800584938443379934866957671965510711887284995203179910042283322420035630275736607062845974926608162639580070753646502732022431065981139303210212031268797230768889073121405108359799547474843076896520646452246976286181905798402387661595965221278034198425829136523940958948849408383032961919936811743646740791418865966938154865589768434191851165925548674095118563777844532193834138423144560521098794510471001962210019055758847516938732553794432373225623779476109110309889599146188675664485860589194774024929507706985332894721118950990247468667118669258799368434306775823376043670630473465231962487145793919946006353241215175238049013726043813362086310753208495820643787084426807272342118123572752227008554475222198708047700628405847153852263895987366594764860110328413045389620086294869946271054108599321885209744752572868242126152670033071107013866164961126750418182570572079387273036384794027420082466394736703335752180280578146811557028025995480769445026254118599629540296473188609452026261355507358710301232580880244749152712604066343615063728889261818573411026435217035786174443715535703227378504878996969439773335739660307136818531033739273946791805650670889274731318548167311445809550869010618486462486603983333242676704515629682063349631598841545824848197858149689774204882569352175437192958435623441327928074151670817968068144180680183695671617618137000882112473180589264250819062523166966378414681906969093193129081104239578132468858299741702573648355370443521040128076834047707132210576100913952677606397021268811385270957816034166575262918633736454654113490384619179106820887838825358346413760596535593715452950823793152858117792732281142307299768226170369849980844057352529306461313226589715340078518655282925648314760992908453207489519860611246386298075572097377569862288801462302241437226920095768377521493942436154633870890276411541391120638159369834062490802500148236448630210542733748801837260326041387875265456147245116146038945524502066522926151437060864329027007949567353120813523908658769833246078225700030092567095527224656535160685603271220102013798661981191350952855536813743221625690452332158467149779220528903737250947689092889306213677600313083106808989885503043254480636909774169974888436567659131103008803700975187206434057455697360438597386101430702081425010820579259792350644114078654919350415102549365772895504834443655351650272063029813654583866981369707945940591204142427544924839261739668816264718879328217687090015955413696226367533985242676475890151144025676049149159487185138815232538605569654101318096087584867421912721864034036156923979109196155668467317939257588805070963777551381023758575876500606377643685023344691624313535922892852485160100945862809695078572597917842388493848336367925008215044120767797967826839064927855860663491890460765986071623449583671807750042127616152801972728456183658538777213027748162325935101475334332750821359671503594805574992635976781653651039998845487439615437924500651981677786412021535716930835159830185928672192480331631756041501221535399930583494269503194080955890411633000411603104376168528719520785364215117596032051446851493905342553357647519832674277766516827447888741889491904128408088755027392443429468625344844425092736369591344418264345628731958338663323172250148535368212879487680578373578321895087151766188700704993855044453088222066152958414042497258844885019836978968236029949156023123907110072766898065658126371421813228187862931404115037336696972854532936484230561647339310743497895672531869825461724382985568769224155787464017621855756238552237600511927795441415391675106643491062186952984874134108790698625645014858227490141445299253805993115669348581939914362554979970164710863596022239911457335377631481774804082509553151075468210483679343916264443511210271018785454711323418229146031945852713924152552827149142218977721347271145015473831945848090633397802757485331840475263609096032684609354263392909673071972308699456789973468117315265909090546128407456110151394885036675435552513513911193788139517886742547372404477936736178365992708915703735668924128675251215496595000721628819565108571621483790766730045513149237838040213991319558985283386927006166831421875193665545870904691374397294196757849100133768430489364627530525410694755478278196635197814602271278045876857090621263223820125517267347086466038028298037767375349337178225976495226099139479091385945065928542302848778263496629688935791474554282721967678034250419644024641439201313983422029906707484592356299667587977737267880989353484378670692373265602892962663922952517747686537316908193673539074110384697564050557802053923840965044658162534435692234478241311596817726341826880042593238830242883712001128430759379483656868433966863836486046570391901422445456149221427742438041320121351233244810620703059854993212187360484228652450378346310066816014041689423635199422027092758374654852223116027588768477518206355200139364273866724287972011554356486951249033466652852049894301703945945341097208280530446133351608877248923795080189888193419534774828930301024295465709223916917441117650442543641010775449516333672252651152085025874162828230081660147947576478123238852129412370211385039958680280566761552347120032862252011395458265260646100240033991415729512376962735299211488466691381737416129549953265617597512501911533296348444878484828697451601103364371553354293626458227230439225053530109338887801093946084392650595814387657579828322771168640858810009477018972006569138048097155268553599712517861653237556335922777984722353400677497435457099322098740500881106566272525593929489066783355793118261279193265454242829185155717825177031602123356799914270418649057494776182023280218756156955988374766216033314189457966466533210033447207332505744497040092054098281535874003728375952276018314626021770676777210999493021228777259674815887600272840635537267053574968432369209094194844457965013146140519723754167051323591902046279608753698893882402369108325928481011446305350185468852804221362127852174052174598475601049686672849239626038211821939335928699421044031805846653089298170888568234778895268242228951210302116136057954927091682085782982538663049921305781697004751084746721751908567536641267505381643189926770545491844412459674341059953677121911940068047881625409715618300797871569085735983310831196895566790376148326648738831438837744115745694794861750136305032982167387802627515427635641633021992200358905675296797826647607856830896431516959854246694936283819435562462792142299596025586434250984105987216188623913130115190504120579080867908442112863236477976091876450073518561459485277285066730887636404022592034419925840482691029196964028760095445492231353929533352745590583934502031773922152512611837351661860521535474060901952634523572018770879721289577461039477222228826379650945810407645655680324987969473645731205122235043526411425446887644413149577745452256303357125815939817172150204491759870499538767745591135269099078727762152690022939188350173757842872135632644578883147494366392613106807638174483852846000096039234552434136001944978669080084415773848799412757790887411748488156341269683873506931506864706330673209325447462506174978920008349234200287837908657393841138421373198771964918292771850330192898556292512229924999460480612703794444313249308309541092338046833340747340643833228748984869354139617072849001317644689100332021251562736152757396444068047617335464400048300307863812499342414203873949661528020881294633462353698449031326348483020757143369394477216896537065511489509132396302204129518872426555749468991656436012639696345629186674430517087073516820560786030957917220974425028609559895692313055015750935052932560951416980330249240385763619977258541304227447862034687005952641314909604840106048461334042767348063143152847544924152189556574884921834362135012876318307183428616057690685100616010346436821305181467266522931058474319004643556848040491320274577733445018896467340744946412201516426937156272809828923214607264236868006480766160447515550809054383449967479457420085861141159023111247413859432372372018443495421951345340382582053732900076574492785171195947756176124196760821981595105107094519881786607107983487996685273975670498818536700553979418245206649045003038651163366958595051291250154587057673935442106625746150388443230432979930460825326865250816889458080285577993174037451054973619020698075478963428720975396713763356511383226838897854226575218563278926661576000306400458693607516653193169099696044760152763892738415093977545569352036790857924712556301472219415170290870656537179153075314958925349345694736710024146334835096384390633870527373158821048757984450045727677952445523212173438325153939143130278395001611876103045184405536353516946585739253390723139733895596524178752758132615726186346610594079360790217925553211616205548308533339466140686379823539414796670806681504737891055257854906480768254678796421871604898328435728324721390776368302015972945893572318229188530122566651598509183746004218593706193723859303836187974373502005869707881387982936421170979571368211050730842406785261888921667477251090303034628212756596204318631731535125272919408554420339981032527690115739877076423397091245711737282722329858444344115969371003581384003153522702512424510979218994945392811485697994024022419921299823852980473039198139367023570440747265636102689150009745100783785445840045027444049822528970468797214578734467493597057095756722485038537313286176937119266247577946316008668224509169634119232352787430871724302715894896111168687287304912296239931415501171317393212414149162476608662333971144411223342841087317709994008582741201926272772400003149752111676174129146992776169173768550107571249491146106155187679261470450044490897554945097381351875842805670706564020162662991057499167762436379075342557997319720450973508328485252522821703110853166491095325533882077430794409857047405446996969696592990589997179432535268574542736494104522961147079525029792381206981315514547067122704926019778443326998033621778471885904837116848196792383611536125333926944531463048794531612808894435484278994956443106502716172686779488607976846553850523663978587490346379321902092632020028782699225844825662779526007538752308056739730460933565980011497862854191814988217025692447404112340084913815794192305186455678822753833923648287139652966717691886948830709230125903572917173611236788071988472150542578787554885445906937508434969454143236657495451032321295961598506094437332683954761822172973864143245495859759817640394331873435549503949814306764390243446400173823503322145881172563603213521718313132121660754834551615521029535987760428950436945279312360131781712316323107148472764547146872843924067300682700098703673439293887295338433073991897180119350890148441848393202816581527391365919822387441679004338318720096237060196583319549128587170233943306203572586873421598968474309387526281302022167636518972900680306298879554189792778819095027671122853297981232426565467070690318366460652581307085062804812259783530374952709520689579364614303017467976704427844554434407257042785439556472907801189552080992337974401791347615659036638710679522764415075430926369656319857332577239684134891628277596286515224452043997425155895694449622580129161664718154227822289374850884052944581823069138042679880559060459568214548778127622692977283033665905450717927389404670903924378331695009618636151823220013056846764843807113825017133609474566675173988644524390758519944299117639601447175145094189572222224874233733135136470068336691444275094072383577727206100398898253006124315667934058664867063264524879824698343303110060781326044958236897253363568416972540320740368757953440894532281191498575607955517743604818836008097199996831773904466107198580491526135948643779992780224792229148735016342563051073478890554287506911844202744962977785931125342690481489130103105169694142680387201990317427114674424305012858902280214075785410086713583569180612096673230602869994375238971715112021026214859903673044870678698575605121198528457974212766266581398184737280962671134234148279111229975880319421896154342323363417555599004568105632306560236169975576600171450544815429351873401229296800349792488332538766540952025863956907610637229368401048296488643286098385878533455823554053469680832013351150643182950004734515484159499957269667773261181321366142387754127900951309804083903723812366782722331361436197658485339423714257267297820239973966249910678685514638724465908749483021655204954703617034998859778744765068863167433154174901251933412260874512889047733492432475853952216793225180561125372608587518562491342071287427250832426769581051984283996218867202676114851347483884380031224173762360782711765836592638243138360705935041701927207697143861908647706464621673239678850586258194822335713503268677730945890340891552364027604336216637695330702591248429832097590243707458478788154656702515970207167965661720628210151782543957392955979968677299320632909462853610529730872816181369663073657327219663398974759714998136157495959667721333753661100687367571661967587273870910478734664139427759970129954245158903692618363729626906624362060202481440640719114286803132185782665416483658449144556989034467846610910045602851464736462116494166362391588271423528711902309001467328093531595433213923640760130001168204412521684801052226042752772279167690335109750799633294748937470659102353461330244819972481125911525630593200670872515053331572671153151634942347656531020149624538088572053904699761824814150703862014798005776525282586497213209236017135990540227636190762538903404018642591724056882027485953875993647573290815193862417175687020899562461164857547287103811631192603540476795352803835327756684943790052946862037081088280842300038357554652948132541344585921704289214912020475167766736586388837562903438602373082254173237066968785500389112959352199303645012101581763544561878426314895467030894836786951228958097073503798359483579501011187582721938046345953921313526191096852725411688766087972367603343142449892391617422209055388650455547750869356357034498422206877228420900484794108499364755419889755130816889203205598749673281897205893239060223511765796498648202262007009655166063401867705526627066621650527634978996118737497504213747261232854117839663398533588203681623718001779071900529539514653723963486359052527493780034418110422007894555837002750326651332988414370513675183359858589865870337534851840108699393240416440447147836887208312123800413353177383417758167909924996395462865098631891364295277818725584590896299248041588955483411752924760281286103477035067933171491497632041427142207580765219426559189528886864919140339548801249167056821328353398044049468969481638034888189532483910621982520459904342121083018007630043501535263307677125289088170796620555000439660134359967240252595234228845051493901567306072608031058776888918177776735707087060339083257866791806093975283555554057420264630477056956786568844601570717521701506842887932705642501568435000130223663105666948328080878333906659287362183630145977767727147771857168140167385772350584028819284367622385935010116708436631786294772228222256550324710901084274142907539421063492606897212201728669855444061547891447108560391238687546997763203444479720838350129061972824716490995695400674101927773480780046026494257216588076972986653192253919196644763755609238387098663034911033092043533145243935497654605486419291928288712314047788993874792157053985831180002115149865126100966172108478745589446459174686247359323095283391067835040553814159385969927157576340153322752264875631412724534259704190791158146967570069513927455558906714273891952842302545093123988875999087052416610353405680206139757825762095093218692930221427720216945505669528111429396809345324898478142710609880877751916213293966374224620764970969432285104506808063991209223575056411636389017458596298233877903187320546154605855458725353284853021986475888138551013104897553981612646812329016287178931965506496821199636678351738138781434626411618489544664493092373898837241947521400174372159485356468546983488429596645856164775287856558537674216736576042331722658181338109057975065777253437284779838952905433846364565808344306684247559770636463473330120907639984144074494521086935623233164591510425776406337008258356671336196177191341975871971960824615606856966654037246848235056125798802797862427479086270477093837425131328951086956944192947058499261122578122453698360344989472206780539220131044347546508621675576290735048748432740466553191036228935162406967719351988332976785470922104644792958557542934793038203651680282352453812743703691686598664236442253606444512532276581352252480659911064611260512670453624806388886886950338525176442047621060838877739437781198263719060382718433499328723304172840283694020539004341847632519723633421716037862905990252290176052047290668607460833862878988271917871542309325594978981260810098760472548765570394765615099186339488880382913596026061506417855628565764199100471246817518749390485507764731415082676620137009546088628341890133258299767612528829562555788835612437090172422835214815691938464024321890480178050269046303794872353861548912445145667150494460980722687545676516880240401649997319407499419017451093248060721476666891767274182280582536391133781884805925722557789934423000043728740851743040131483074265778183304960620941173805569126588977963362917330731268318089204540124438455385717292241652997829990205773363732616528056954318177009065430318087184371127302488882300097882830024489849801536119559498154819141242504002157812274788186449040584941139675877421731260854517331313585970421321506627953686214180560756103314895635275843125660792028224929112905111448707049024619516652175700554607313047903458040581288313461514534734994250841457972619253869249417786441713690932438751839502404455216720922641503005123663739473532542555324437456740043621975044879632056145231637247291510888741188913359800980909628745128689182515665152128984520949973140192536827319292219527628134114253813695864908341022929781505471148864390238501128293957235408978275485741185423350019753301927047500786266095846799202798480270498285801879864014993156555157618562328670370367610090242437986051772935808324590380148261285755893546419771027428426530653060623242626510213405532911878341455623711762065003176941334345036836315084177757642419273729573926060282119244140611322707514716439448125851558528050264463727174818498629038817251001221280088544552617536171499398168845565406256634532837025311542940904228842403642208575151600301891597947372610078977666383679666428791850950778092922217732476106255619949152255744848974208663581207858374841174621633503626456042761164778852805002228706782928177361026690926907281951387592946887039352533377876448971723451706321514280249478150596327467963572588800986792688374933740603782110549907414842688554720660152620780817546851039437509970555655949950237806180410451016500278429274137102043142489818659595157614160745815315092737368406311973787230905779810566986906184863031316675938441778435859333617806978143031990769666621592912424136193489805674037896365095518571738882279109565304490848381137343250119238871788744786293560973744100178624686420818522764898298562899902724719490667549675601893480983213553178163306798774243856860860335046392881898869241938618146536585550525748814003969551735083735926527607266769469791944412279142488091543388675189316554157785749388799307838689756874049514248010513295394975299152090454787154002054088178047750914055797647756651576234791202761482515653705162883012600967583070591863718608897424247788739661206963377405475801146767910738718647642422954506195696081155182195267066620510575120940379165877065948850744445415074555468030749446854234464262999082586545127316211266224034410156972370246902543398272002891045741543880329824038073486766815263860323514422053456158056747108231098109404767360624814354649339366650826408725616577769351699352483729461932223698717574394853324220402385688071814521926206015296411840033845733013390618551471930661985095511377196687466110328958576839140182745886168304207682736694494956704785300248735610515447215106511356183426963286212709070331923335716316510603584687588628510501750219318966473713552885450678541131202412554863191588729515740954344942618763114221428049742472118524990325393230117607868312167466878387941973806549623120498457839894269115367343205864275543821033278455789940322914166889917291227981747625962622309341364820722683520748475512340420857158989568684764922246490039784338542236982828949321160253043819036898108742436903481366145661124645115878348793328198133543007012207337244330479203233140782793312172873700700395371205891174720433159955059266899665107255443349230007270831765212503034302839173465749763258559846699493753021589463466598262846725666073994252345955985441256744624628513535539138267489971100696211002613903121551717814152360292849362225694647854084162034700069975459832043980220601766182783047507202643406847548701746992221818200191241055731547684615361727040114317614662257382580812436893401291263574912378423067991605195904889242007166252409031877679633955816451099617349616764662243058404180778765941233370899563692191597548083244606546642147815751548931105640814000140223501319740398771877343231209476594633849874850427612757062373413993283072581393563272520949901055929306099914187402659433979503345531088923551287628921361439144662772378525823426362994020539188073044588394639477540676901152310484049759162960877556642796928839976455650037189646358926926801968828025295268973430146156769779853859636275108398772347307398777624579329886457780519476243513427543188390266417323753279988520170067169648616297656744177387603508112779560152315954648539927978921960867592179277766328811244438809777852985469063501422626040516320151933894954935509565218948302180612155885319863480137903207296153560820806760142597032142097194051023320084110438646798931952910190415879625110432863488552318215082126225391768270132281491646287293651648733871616828943534258296851042065196582789127419403250208750687129003604839032115341655301472606783925252091359746737923202301791981756638590187637131681986280610458778582890661828878079789067656491777469480370836712091254564277319768402316391096968726631118858188788671742885667249280539649121373205082804840397305866294530640610001442163650299286451627970953553158585300413142407087306847505987032111841844970186275760370102259219412839743709647347791854556105384431736927256774557863925693024907043014692992235269490165236739258224259889679753099971987531215038749474264621327836296803712825458669141282451549448253299034613616209008043710955846661269081524702278255116996812518402131137530360713818471766885323048571269958333180608605827639812586220020204473873482388883698020272753671415374830016756051254978258240952128704013418918511883279412379127115011394176129406681182106672942210286247415155347730092195259899510539548348754276572030187958455878086888834763436740821186119319732553862602426361004190299676986434063737869732333441009364315558274248746701218544735127037685550131028187171965343265319586322043484617401743410727699304219097638911257625656715878016164787057522437441453577622969687410768945423435235863862308977226596980868703512906857083030955320116887079310889809041335085036224308003282528196117315606113161120864530232081842537823930457921599781070397931686979919003271356774815255473463964896206194983648019372916605263966960339007849361141644740984890194316467011243544188741191167055581632510687413252274195155620309529814358676366924168848972688084954146054218027954393554852758514567402916460799997907901861546257800631447933787890270932433539083481783297767394627359223333504576858188378440762786430103579663845978033709812012044906986407894855819345144936489632092688381365384838253246362443295697612392432233096227567941412489726794770963136440551480675621664060981631533044367154432107934007706546593810181493132084740828684656581864102441123515579858917896553557679992355839140683133974238133731322171433456962487493966337687685439885771706873163374999593548379918045349492423726427677144237988285550447291293035678750777241276508883355174532800755199479417945991231503093633085053165317309317529367905012942169938055002504023491068204919596358430738549461002615706774210330352801404618632836743607340407605698006769199371741597533578251960625028449880026704141720755030407793629033874810246390225269804250807773548453314309122548032009072598659388827234149349804571951597510699061060965027466877261659732949668181502071612227244046781400171502638085730336320394164717893887439436510652664608943219417171829125660999046160853878856914977445065950308706028504246607565056720314253847351160017564128706334204606640265843023812886139182385684326224763464796400150250049802896798057508275225292871926408684588122941168411273091273818966829356682053325914788170390516664864707334784209950484379393066869383446960108528804910180056807927675667708364448271211050228199997597065841719237221037186199269981369503143297457747454333010124126751038808817912054988310420739961054615223455125812303659397606952575123608073451281233083097795009080031871742822267694986295924991899819575037438082071841132512965686029477586983007615716710555324250762308637452531539684947568133516013168223441253202676160291380666445003915180935852833703131619406825509053276981915818808082223211487036537892011435098586721445504523704596528156937360013672239120230562851668755459417536117378768123677960030189040652264577968140417496181052372260195522455533665566564555262967937104479280461655503288121657003470556779547512344596996378338604503956369988809125654161182361674431482099163671472684470724132363385117089456504498793928549861948512604959225040003081772735306162110258421185265190387525829444722505751389259950088592996528284886357194974218486315303498485562311779715330089350136814625484623100127131515651337946567143744127300003984063525163900680297276163038312170637469832134132514033879080352113791021041234094074808988954063882810001996339507049774257120040190679037564688057298786706250598224262251197184748582949995152820248388378277178956979447688568460538894060344348810484443640627110011312594612352534139824678019853657855492630097625970473795308603752860958908830503935541963221102160103136147204239933752244090074319897082547504190248739235312296478580973086610024932242319205690294336973451632516571235692450111564402231834747060794249527229855328412996444492423849145762447974720370112664520247278972961460258247465344868632865453879939545652546815141443982009914301790803721031302779150367516924277978708350997793190905115077969676022532684980425807081450490499014339788859823799955927436547768658355807692886955301363737938056906129544891385338535649342220093718950637368579055749368032987574145311882264055936039169908254990440814348489557466619626020479845532908539522744747390212534280698790709368373301419918133646769129604934926255948789642505252287772432165312461720835267504078053561537445683022773589099994792231533418259935071577095936838829463942757379223604170690613594040523874400492765327457702600508456236481629652629883863485265497099862447382333096450127605170814867853949127453255082217453696508711528478248514009234811013826949167065746753159138787597465883497045471501970195173858587546661192997926590588753412782274414096986272113107865984456438645830372217588355196571495559705502747806260225031640498596302004453996953252937771252992632918565312394992556075618280134969029582841940705157566505427887360825882404981922786723078876630951108497951383925193076932921125800552572591649936597741140891102988824426223993705171491963929646285835365103318710022776389149506531514345769762017146137317485283648620339036439094552950391550114495589058572499598127962638658395120333577332922173351014068103173440068945112374999681087896920620532128562851019560132795714941459881168763631316521510916710112905182227054781647455811875091009914276163357928840070015656367255952671437567627185962336694153080448013459688344040941417893218959954497594585021963536599502343123809947970670981562906786150044770953785850227901362614113799340068761083765630210174481007951733776838989737455960442233923792453109323312725590211988248571017838937902923060174435084934754109419164833715372145369930819419448499525200536142360488357857932882295321438305271322594195906973064397957865587735549327566737795457019452657142338044355374797585176514900709966301972354502922912763423937746409867668183938301397443426963056876694117662249602547425619495044058637922147244891557148660972856179532450222749021714391167892489806105638190064124009964332425772075598030325585038298739835489941949069457493891785802657993060446602397836695086549088524140873278590120318891968485946823400618438784241648988716857443778007835853418948158229736811858619758646902500371595769759355667863735660628364069088905429126613191346607014620633133987892661165243553328023214639908874013938789010582033404863525798102076140945719178291268888930785306584620301465603939590823575448205981642990813546222230885629301718342894505785565273389700815594134218268761814906648068713109718306829343208124801086610129326386117609704465542490641611167985415558238997186909437642216517188963061411280658640758803034095404612661374158756626662309814746949968124796701685303499065880405743357247174965782848099955517118382203513649585625016414444114010884326607906363583697015094549076727020748228609367662888708493698233463409876926956392816150559237626124288478285666973702397442563675354486554051994994319255846761303980338985207637418720446411120071272149164739399715370407469363519936629261141295979137249928717003288398350659264040424617092123320972040869107034593709709442835582449203317065707414774665774486442674549684538990070224772505913156253152796113096885418064530147632905876796829249047313367978857979588310565166707263170178871509848244119725924976152873346966361209003046839784484362611444027463448428387305798907647910691340121848831411853479556094955784776330787109941120060925245442979701264370465782589454268003125747468511466463501648416453194946661202370789356751041580335786740390345659156124161245040002649701772875486928292809392003449505322433258914145957398700690715365581028369933819721709506328638116405138003664606267745313394429591034612128415482683145591967441125989930639662683304186949545001858370693719484532685006581680506229291606630164916735204253906748848032406814613561921754995075253604444518234202648859253458666878466607271877993173378389110358314854318169564915060393735122687821713734858772867618970333835424839215911679753786428133711750498365048601463910241768807793770297903736101399027448348409766964944689503424795690418192325622126819628433071473570973731183230323027820333498440410436564572088293754771527875106893283196290807369174427823180874267258207768078398844786319255537337550664597853728548183611369080280908921053309925430940856898023628807147719316509444699490896979709208314801529777070717614733507387637571505723282751876435972177832213367375565907048786218420645591181485195317063003658538752942880068021422807362296599597273043650563309710396555604451159579705867867285590259452988793250167094058126611925160380520708102095865107216571440834438162626608714683381527166126645760071451398761979446411288541624188439722531770379314826633532632659895924950563191073924643008745644150751417464622890103095358887713702784988697094540666149176036322642335057694659203299554790237363438587302034640457142888926155023313109232153646667781961263352887249679145148416481756134766267231234565456702249669585792892381220760054111950192252484308463073059405621913961565628301735117745787342937671238257600701899988426469209925742555451907017734345126355607108626877990118043941732283947092984231583835921127261992976207471345760452281321720042727047452070157975913333258626124293083825650848200232488913793654684564711924910952540643597726625479205825622432988959902942611880371652898297067796045842513602669783130198667530134665007905761225267954935816362057336040327137105461734011563113367970311337756039335991202873865468515427324742403966036510904839716277816792862368099277835846419553879873372669213641732689567688200344371586016816964531534381192031322981782433050613721679598766226867157201428172314815967044473165240210868067030163624549492886531413001144244469027783717164522405188363256142143519186288938038473017240587141637980556688132476082781874553677671036720588568656839964106227094485291640658943281848495009722232349037939275428004050302196861198742209084241819972825125113319453323937176740443492346140592460293793953064404965166197615433414262586075189838180687361620959473870126881847381316444520754205273045155314944537634185152168752842365593802838392339076477489406736891073228557716225012316814259830173319475424617216775392174318890071762569289597868398449209774269031575813405106513512904416416343522947673391032363733337853088770452321297075291272046392425224470893188165777799845107631518886792368271495500599408970929840047508496732724252187413856165671581635685890695600105810239900088989518770735829269932947837900551531502902790650663856619874547331526314914656013084123657940393297289881235339774427567514268724809566235669177120446652168759480779307836044696587334194884265754177669592034189680214567397650585362694879066402076565964586098341798586195270435742722344658821264604599419074557500463949036720188155722023910383146393054922922376421144462512100576565344192305685272735316634087895163701036373486018514123087969418422891898792558932515017413762553871166705749863187915252133633958524381470264683974169007540133027590331664337362035322481570954060159484331852315967212866233107448432776787479571400582070976439448566393037484308751604349595860077824357393698817736474291220691047385809268960545691059642464295088304736371624135852494320491148945139336826034249527535462712256481479874278034733418501040691442593884304717975447095136162688139278014836148139816478012053007005294220928007236280175676941666292666111739681468587137574408491849808097138175256784553169224819927402896889239960293904059621642407366364507329416116820444115381070195518604707788849221409538422826351339087883088731667834055220710694394903436545546444448685647388519195341032112920326459664712948992030932587031889214626471207029780249049124247609320348392566931547783720398804582966872657350207381434810261429500410443973562696272570146624123991857916260416920728803718906696408037202420522035599143069759539993530101176026562751342760913038320267379688568268917178109093634348515225057206392944862997746926811954834067361921929382683758204477188277893509255061950598606338642977274405333659120939533649327209743758587356477851753805631212199218452448038308565487139472094862466265325049873599235352539617350439623908981537435687787461998852565966363608408142402806588118936249354666080119305089850876863135480173530042464994212052619396166115689402328198411343150700960016937567411809360687901413289668224158144760166093862966506857883253643243403214778465684189431378599546238777418696749519642666336155656651497806023105671134649102680697481252279227530484863127968254636692174133192579852683834802809842045373704738523751688310296177937458569455688095704846660750545300934384569884632190783642785501449735285793749826520268623424464834356232013369772266156259125883479253324983222628495511010214486110554086284662281081932720547248647753090347330881737341697046118885679584412604462500437123985189528629606481715005662089287422604390915374453026599732143155576388844345214671132765523352983244834510487167479824023741367533654913991969759255084701029910530587060470310733078080520957937323088301556204488794403320875580304401776429873718573214957952451995847528274251079845287311924000222027311754852442066584504516645136143693662422435621863106481620597679163000906050606589553104938346615436316838262018806882297524485470719479988734499235300435968419970276628398641835881106570159285779087337490424177219427703589763997165830713022219255357022771931124527216006581213266512260632951789859501625584078715825097731993346443357850081815568322582654810285310520561318275221669659528783248815333168541465941860691648304177470440499288180477938775929451875759152665509268625256242629605354818915213746902565171442675014862072316337380225993490334133475626021181036498408607604101812628534196745247534243680443313755592127640496640585419347374937365156383029848441342216710333653780557798343961500123185435506793566372674356351069573217348965482754959936914103682532643895286443986878523062242187653519473074219286406705607347278331170304586770689106883578439912706127670990463039190777317906595900850853308480746752939399989215314673754095564401345519185970240653583251092114848732861442058242960163104651902696839741515706308867613998845582851484579579466009556736468365604232281114906344576696584247576104872816954444310790909543170333234681545188480932177638063075246945597721111478474530880660478284694997599565513234925688086786203368919597958381622115197901864332982800086965514884706995878732964115102574353683835908784865660300905049981727854667250506497185174051329447899308527508505205357582535781608229240928590359862204280909006878724990904532200139163300380462190381868255555809144950857683825672828860385107246646029263522125651402589355690551369861724446997497969696558550588427543681426101599039870239724541620376214608394423798471641298510342881634067169115481455438733632492008659639224322350721375462237911833040562525506186004674474948129879026425393677267594687664974022269596538482257047920862390993733870168216318995411571481326262564339044423273172345701674059661512118712666980056122245576493281717414350012827439597247576076113500308205855550751204518790679632612146619319022738655801276506236681751098395731331415744911743772454193634455797729291549503720095866140813808780531094330258291232090121313282813643643922598574681150664587512251187557905109009503979224170059211125155138824959987876919605410435731098875679115301572660451589622931361071717741323822862207358964640051447395696199651270763963492319758523261831521798537728450893672348194510333028661551062251074082081728265057727509389090730305666331791773746155612747200618924683630029159652626213389261865787163257412298577729283287350376517218972570713479721267887541518917733331234134914313411177276669918427972453556862354288611226079597232314126321457915210056563549465816422703485948950060863967803531606820810282399680116740029488640502095472787048010372242102789435516140889847772486084635766096705408604471359598242184657394456617053189987987486652509184738680884480749131312632338415205463030412022832341319696175620202324115794735358364570316242404119651830506591879355237236142789476719524784509550457419878597107015044892442362483720874506639530808822992219082431011407821128960127695780411981406299575182979480603873905819657607801645979777446118397832422593756477173931384652464888337873393997926253279279674160736314525272793125847006358092687016865972630313431852610423861661816490314158232457473513833462413847392084452590746059612102990722415947026921367819359549864112385420124467445768738686059718240041598623495844262422982639667363484087964128011989527974950394037225586835301612034121720067156497254609144386301203332633238549061317647751644690388731017188436492734420321088793454805539427867729504706965666070979038176231627947491464353949262953247019212670006834933641130403992186838767972878341202891670314276004251323022069159833551335022625113549280995626918075729913985437862651431803012868997091803773196589677596212254897890124366276037256856827088015875566578678445459208789214043031111665888169610232324972191098593337084931693624218678090734051210065753719082963782005527001435021907739340833685053312087414686526357682163596798757834590523904741086777935128531133306613608318499001751404206976052634435904834715271881994571225724198555695061225448018641292235713223498291901152619680722996604505269293313013650504210024317641221750186341845944146333817096729055856129792604848313184465222604158874433085171654239524169335164057383183924499573329825549402011582111374760518314020040738274881784862545152918857581077916941683706786006746561034895469309711374408840566394610346725580928709112989441266165604911873372453616871287084253187617953521190190728928559510505581215845069642852149652679226420146464719207864870540023892675389116805934247083843166052221698592115250874901630928807780945720207132645080599681788230882748043866129015604697141938290511092154203985516286967626053184475797754827131629472699847586840225534136227398008234389872804772029452478990544061334765390730194466711782871891255120497282179030155797146913605268072689692216998191061353498019574451745096383204243992901433557868066647218346040242319878088984647199352308425592267398713416187984235283920990494410149791510703001688181736959657771138747440552782657227795033995781532052298226263774128965752674745049075875798807023031219619455555626740391611815302117662381597468322725845014208127766552768438136071320948387203187941448383764015821629348981935314746798468411357298328416757974679236293821741509011606261932174300259489234701152524602470965223547393033546521129053753000983466511658933809106365252456689649147060840120334838520219244545690149552740286618615457967010594142748248291565447590480583382792522074749292872277908054861147463748594041264423398542359444592458617475183800272096952967989562634574802907366572286544745281348393076369596240058863089292701998097011290502042263127496660246662934965489195928163972837950021110476268892503215733238305366203034643267440666578771802912707519194629504604776658415650442793435280824550920226683009441623141998708925893971197492981781067567718635680559274584464779798844358447553852616893336059925432043292941240785486024242219747063431883913152074335047307324004192741278281022436293041097535444193342956238391042362783554082450581363114769536646169724412224591552175336163993223844351781247468870426370368675994350275491724022392067494183551911074097888753684483300300371597641486215005631555882970794003478288485326968650526235666181799711747713105795266875063376134872543094897580836566995390719632999792461260159278739212746082935128749385300127354410458461355823097389680333017219684683595145666695094763769232313098403764924360319727415065911918617383562449771774530318871657847254461797689839321936222746426402724114742278060276259905780559286062877493888078314791146095862386315339889395311032830177150518965648082625595397413383869339070030966155092646727410312723959661657180622211108576265361023651944784982793527524265806140794834569261267950889284677184478986997222872516959127424754734996487735147186859347479352666520859019057859222607746340632608389117324523492856925669853167494480708556783336929957714761449484859584622749310202042962903889197420366488450696950791539916066777139707625759479174605562333191064827379915711666472060922497353224196704169236833216305044230529384675029276307239147848163642013864996671623980442662568584044725538023470294265608132572152125310236429658421488803326900543051706450808117815099395695022093935233806126865102852694500797779334441273915627456381339965538807777737163300068009608924054816054292635132116073762469997098905063850031174143385622817335108716791331377625955139834784406381696865226947750326950972506205299340514998434392153326248069327759061900259062748725604274980752453745887730758851271981487668880569867480687692804154524354119851678709731234134063943569553927065717106402398235942039004527424143156320283453143880813598399563698401348722315599612016837132703807453204756455620259199583815699121089147138651649745705524690445907443853984285644193992044920729910984185263903606449640295475657677363652649446935934330993929572544557457377069450666207490966890670146162387906708999159717219612817528394900355031065131043178822575353272289652300479755076669302842629440970162666180639533858218952466378522620737474776977593359614524137420133385114308440274260402808945273618717986344047644197419769794329609576711043475222376797652257887042062011672909657129397350744720982447538977904176134498414969451719377116586815191032383002464451788236349394751180048179501952999027992058036313808368892732536940788574553347267801076009993695141244065018987619319465000988500563047198919114975770473009569115536714633057676132803381602886258182352452315421166692519203486564112241843787287519929990758183696729143740905311335710585843126124372068940119837358622653659119169976873992097444846931981664472953801082337644598470081183879843532905845471735188976631596648526102366132340976986549381461923923463606336858027009731822114894052041249759380232603611830125412226357514910817215299582016116260205083390376250648495158657135254508757125933775349453024534750246689352835868409748169279082969588455388215140476269110248728024112026699898958785482934737280707774727610481339417049934213433595884076020166459494157690909475137897794194538715037190012350966737468536634605408723279289636351111705012549398864146383861950929106846214444674459814567246470753195627971407046129526014121191362635021697309326902984210878933303645179230915997202798343546574765323938300477673548222273403587043773032906252367589669515310242855578522477323581544155639645161605219403397030019793960856592001001906266653079860960252450799529203611574663729802230046850488421283115445497776548856041051907107761351135383011051136782891084499576484844568103082928799149872167122386660576896853664653726212829024131833889146090990289224235038489670812547511887014569500817100354675759129543108826494434440043945029598174768330969379472476922817642363746472828021129739986840442880611435674473367740004394077202649947256058067082294843583771870745459120707561854635624818064849628338156556835972091125836105499482008568114662463472123764293134185514695853740659261254512600116664291060944859388378564280871739245131983116066062664597136389313692403568805852781976159251819429649841367935663507539789363810475528867218080992325308437315640833173494677757496967270276078870005832978075163471879820441827419624607552961261456916216067718741763320523650126582551769748122620027120257831441947691845263607437695429535675762193494533341723584176005211427249148624163743940408508596080812354763745587295515363772245857026459031421343181916903769496527637473701693291464788095654059527627061674456644488847296282067099103383531084801609364377862827921200417300082127564791240645219892188389763227347801525062154587406616258614976900897031995418108653063347110536518835252955998207175550956226906993963962455130453812483582192074602882444639521959972364232344102579907553033482043549927342370016108386742393408913785263454093067140126103828688742001040161751133500462459403665057678905985129212860565423714800757757692225789636693043202781252805981700554878773067434269095757949304729584663548767387597706248602287546718239140591104633074385551798703087010308512751868625079102339086600490229551885817375877500777700980431883851961444554066919936239563996699476517344666318868586369830501376543157030024804303667639100290106546972466351079484227559124434881614720070061199209231094114233191001232663392396571260719270200125123086575427092098294373019665182601898140071318947327057493268560465768713775457201021892684470388367690051650570095275644073399898249161804616607131506262086736387501819056730679976066700684770503071763114735333485078017044470065413441599357260764213859132395244562807846236055867061370366636503663064200297773497010318208871600636100590507673272202967919264011653442251474022482410039858506468382688397143323244303930463939843758258770705913816489466553755293936585903003126749237211581464405794241938044055509154749652616431869955606251643319394507700090708828429376084301058134882041695725262684461358199630199373843993217209928239449332532018469595321551328589139266139344441925098988317890874815483390772436342619008458603893116977815531290914410229405654739573690739085387253153253089220354273957464662943132629669847210606089797223706962343572362108563839940209288326403166679392997311921165913869053710321232616912840979830648712459288215952979877837802039079543823214976045639094681523627805377589484001854174585270928111318839759925364235838357476954064415473668081182878478571121038227466004407165237509183378203362432149696291436964733528829474863207206645868234824970498210416222287977242747859013391386736348789510451238913835959165938931289036148593916454904222223697178315081876996294663173023342982366032302506155671641200177699382011880521951706699666125269400834093484658795221798970661188188896531367782086275406798217734944804186362946808295630601418005057608914680286996380117305099654208466433818206444591456193984376812967147789768120929804833666104557794945044516983566864762482355899600757427639172756265197592389225401514997475207291883340837751074248573407973696143499497387729054453888732702605840811329281620628172621791559292692266394977107999104602801479318806775482593340192088116646661556336445633924491494650521959133431294153255958936926569790518939630360684357431142640318830297323283347610915713731823891042522362240387599855197569000461981291443306859695010627755324672197794443675628999476401383658810878739739057706240464594834591333432008586111700727525554360847567376903212947811411796511226357509639337487699990112283150007319827380595097990152727800114017153539023145262846157775107188650734420848365669503806165921142036754748386368877751192535076606855373959144782845296140889634636027593004572735427324668044334025802142116029736233321537633629053341818941769387355328823395866134456920850644442554680000463945254562497146808137469881786058613853237932530169278178389888937137147480383735314459276972928231500295369060294194629481859030728699579182955776036282467222119668225323499832513151661689378748144738851659799061394342216867221461747983669161634443143527955066634184422264148005815701997363259444927548823490694162206320239039757618559091954750263389849195865152029006072951625663842568519609374643353864202602666745175170731837789334345439515580177069875396041773977604046246922455873227894841771401032810949333382271943692818209138498916736614124456796996108764636484407850599308189130848198071370926508588504600281024446407285706782683846943151261991217585972223120261790082088957368308475110865614499176670249392762965697909878732761961218457454568935160604169256798374671168073725643093273111176752897639313144509163605082559271537037669723191400195868121757450676260852835505240164046332649042133208281295533693779248526428133163696187311100248039958733530534520730900550469654011779077486169810398611717811803421636384064205868509122725909998233675700394488529673634987494492708104053810308724438515962467309575953010342882329099095974708111584369613016865720068269224196293161888917253201062085292183177850040240877362854858476543449280175145868214751984194738680412522695309652902325367051206230703863996754862443336321853110070354745117635503128398460303856593192393970615625224491708293074843855447821962389884803970211362241580377917402865749393370362610504373690174747901325374698355201533258358079935651146495507932729344709100659047669686321509794649760257617329731772548251830113179677155596729976961078747577962658321427187010738009589281479606758989925307633149277673206269035592563404536800664354584235759380415775135220729789134695746623476600416265403804248061527977681506154381815142661085684563730423428748791247444954707097206288325099701745302108301799660063162450575919447577312102751720570253588629480083283564912612959359642160073835948750214583703099707378823878481812890953066841590356608094682971974957763135761505994040748671393281061512865326247835998218738295925912346975167673691018041002765729402614636169067448177154571140187669259677451263902201254374438241903793171915651817762574170407576099798878352515282411011638787926138814147339930439457733787092350767384785838230846776981530824786185530831655136939994062514866372484381631195390864304063104028567544498465528011596329003129392650147405464438303601293967160347660186824758118933136714500425043540601757551726082374758974686118847107125666941378205789976230740426291529841721009349712583541248324631588826083729743511262487320715475607312956055559340281871444452343737767496251922786032266202424029103589926301219260780088048491058343184042708146844753206070009755761469985278335152180656157377826733716056362846346051145135027266393227448596776764251792432222325412310265604040761312022135501975020339531097947889788457802018835278881832512776021854877601546008944185265356221123705303865173284978234969206414749047164826957807465588422171398759196267055820157578027151330978082353862277317532429269440473451354320158793890346449108096022452979589194190626430209820052389832963660520099645219173783861871388595769506214473948158811267269986836664010800365112960685708448608636768034962702136816514093298084246793418983369869954469488004907484596270993761804663599842897991687242918926541051450908926558740156999272059569377166062094123701495815438310747946029228753588757299084052655160492113395866892947328224977558028601218373268803535684098398047069357089820974395043562960684672965041550851097310318087079746196012866869807008093852155028226405982122251079446525112342985911677837179181583739063805168267793150192034489981256059370900238600907822977857595403262318671651898409753602773382426268471154992030328341341368772307503909273063346908587363179104882032112664994221325731640858159576772153506698210774543728162782943243080727396196390800370565802515885409203587857630599828446846536478458542480711569629311987229632501456073732939450380164317277391826204500118851261064014747729682556195162277502737981308720438510326525017540439301400193499945716625482170538247404546413317486145196869304881214467069610306211775116405238743397523969437912797209627189542900522141970173392584011391435918188410418312005577131942359097955348444196512737333675882519693537827540137585731539927733128363930274088667551188351413570008164983332670687761042884570558827836731731519684317269159625488004702139205695625382041684427524512420604986464793745496796269111064290141456711093207905553688974337150563780591074206209703688973889867554550117387705905614698560505178679671514246066417464058498081379811816224384826389926125411000993352881215106659421235177125781429028277757561284117011591274594915897309124116006950413196591381394584612623455392282041202907576922326967556939323825144822255979194661498182491122742647264066144442250690052814883018842712170076609758619865374085533511061298852196226149865202645799352391923729501654935487703877405166165559377892955937173133503460375061596183030033772961112622471983134778107894744882592003195786840589124811237071587961484260225802214588451455602559888717277564109604307861835225432830343639247407658393096803298886002341858876695281454113560674486427574702282364696787539080424758993374156420104415374657926018479871345891522762179853874657469839257068601719592396938539000539067573141840124970512009735366942936432977315237123095537923853114057515373192258088786580679444523295022660233533332976237151140049780682145539638598836132208814086037316367249554203903564319581707469352221197376993619370555923930272611757305856121918656628882820427002897119617311541019257913903689213704790186020127179557730966827339436844172779698452485738774209844631251053783634021915393193918386955903907600604082977575500420049912558973367623457752039163186276048828679376346600388378197732894799627372763963879133681515193280854587647312651440330743550669789895939976649223044934034338706227205317315311412207453904324904541247499463271661674625821982531794198164558762754843933359789015996793619320251321344910669722997453538509011875747618455445721329847987019401684066723073706314201331980982735065039985142767024479524093857381420535777046504571874076647925249054377242640985252070450889299435393348972862029510430156366875051898164137934920426254652355954072733698376378294496778420044132962638478740903488909725247530024711206542758305016346770785187730293139276238195368390184409093540527477068642626754463454538121756429253557421595831939416736978091633772295691946399159560990911927594253322281121129862588569663248903748289097204950859219256853008482753021648560749305396507030725866704720154654625685964788826683923813531006765571296232341825545103870113248646043257182165409546577899208699363116740747226936643341915210912672621478295909369449748766537118628530902133248373216384172564413210237080183675505150904563486599836455515729349228269328325484884318029594921162338539206833771794419969150903541974336764336622610821122030546735912960098265345614310665914261995881102133831260700056062703490909293484853622272117263047063771037588410552647014617133916741248204776945297076274911396274393208434179037916032819666441320227544440652016436839642450672393400180367753531632397693434699079762807241875585276520979789908105473708446287772146121296916446861343948841007716716830374812407207877367031530828645836241719043577944911932700738813054325842906384736788980462721964927902565293360540086473754714071609467727899696559238198339615181327477013300709090050595367177366226326738374636287649523487232975425305211796817277263955331682149694894944172979467347442550237979502994707137522671557237117922503302809879190128860730206340177288993728431550952290438326987901384331304233851808296854514427918141792420341110849774186100831792795809845270023315261508357813750189840232976947429371357712120826981192547482570362196941389837807210424047143195397516719223510399367717450674270504021462053693602684131250989667755356119979460743255461048385560386660661822470889811495650878962425579896146066652675949197889047776848413220628749764281512564554049556200729385490440825889912734371977544753016632991069056760597778122303115799628602397433342994749301738952686042703984144393554368826644464450544781747326581233871206718525015736671249988162279503611097049360273318825465239115524060202181766736158159285414767771293366677653906626349388136136323828862037647915437396050085086914724718618737814908127046632545630120087772950117213779730580271920242423168255243737562074565532199154590460664207831006425040278762478777945780880352350025085906696534029205326974883548320721914231405810637510769663509426613270638413408586985282661577726549480190230587513697822474106298094627243802964834000628944788664786543501595431644754002106758519808185096549722829771381421641859197296675083341002586416182210515540806658633326498911703493555268832688159536400780406594504645880153886018060188438141915175228449383474039569476295985884509193675562205504630537865529326042154176342019125861539818510797047125483019037890401325830280289257293670155905699266658607850088880335078251135829452780220634341129015343379399102108716183124383127394664971486779740629536595717054006364713093532865938368847325163373835511986017835856185746983561054057349459335758861614985819965928315127218795560619135019445598890094110652331689871302467938782660651171672088718845122826183145476937659909137608413607951700354088453677046527543532753780492070880488043098893691409755666812722966703207558281235187592717758790153994586838854658770812457144445441553049131150556377688874078348231135715529591831179443970238776471540349615584480098946513538598057921569143482223075004697466579431029648046501169004936615476770443816761268052748656037201945854871409399655563231999494269310565664645737877192168662109394144085290501201352448557662036051080683678122549176342859157678206861279533443733453122393207449408392006685674668883617739741632149046160825964495443217616266095610093441537848744437169676838282574463655683003288122021391796763734456612306338125259830383921397632341108830816661710172923137499676467257312089896598889116302427547763147058980943230477525414119533475397217047227728791914068805197160027575369147693594848646669161769846135849627735011878138243700738351426377016012112734459756384001228998053365982771887995858516326504427429743026049006706323022266813302304344341490110280608973195758073055962109398719598308168596403572298005670223934877886299744356478744973587869398043891173960996986178017463429160987141880548648732414759301019344720157527056861800157189142558232247729906327224581109481238831198993990361664195731644469227236072955444643583820689103524950884080841325053828109551491812217477677848924010654715255044113908333919745518042610661857327988556585914605224961172820480804967240061667787736522359234575030022386387119796564609357158021745310375402502006373866966346883672131365241574141916490671554597408120400283874725174090988625884979051277661880922454189944536105044604739736034460394154011576955715469895444651788534880694831803468204112158192754166318432558589378881833789392021499466589087695254657166733080752745014873826397154130251262530319010304835236473391360221752511623724683312799201326591636222583486276294297099713662834454772818063757277056815810829724434939430674010052667551380604189045968683532384119869418039874810701137310171101543281442352344571938382435145032739249880498031820366934715757259985929031770164986043911573620160003465412346362087361790345719048688431287761500795411611620365701676759125399532056538083683313895061496224464539187460395290407368391934770606728720988376337655715347856888295978979319071262078829904956579085071352099017917965913768445652515662337798566225520452856350950731874691915139242425880356146902079338929545259203206847946856228022670473094225284425412960564528715266133639320507628318569241585538682348892487619207042193865937121439521464329529525650704521373433965472716785394448975969190806193068000729612693346240785590605835167758643561728556232807512893313422904727628449500108932279596318399004209689535103641004637673555435533920846048797061175472174060309776804089423853817436932492229041437665859199606404162022082920499390561826683437411965833105004167167269927831990211263164727243083924159045999296950521942233150428395506252772136324020409844629734050622896016075241108369351837772467059998709809859257888562898324983641352440828626819294070310437492115606135751116963798295224628070324466828929215983045009344537202251569954501596887352590645144556086386742701397592173695044155152444233920872214191050292383085124184342866194439329936217407302653363832114947720436030171996507604219576433028508278848534733026257576310026506494848937019660304495213032452380396136624023242364154372120530213163082431701522246615480183938698227789427101848996210057393858736341100717117322952725773579680316364930842857589504562966892058369761843019798737958512136048557610881737388129562152046066639315661299472099441331476505338028365655618326690082979245022765423933628142221267124246416327368441565456734070931344936111888352208400727794396005798170702405503085401876062574132167120978485455474892148564695643827550239396910238671243921318215001672689065440514435942554322039124151006828230463485828321078976944690289132532633494615061775267663326188953078547444331173538603805909158546366735740245487691863783083656906449937410634854001913009185325695375002841737104912230628454390305452951630278849179046759720606321461731822027657310660406461786380736419323615838843510325622965180949829864736116940181249527399111056666340790063610132863017080782335205506610854452947807759717827609547504338012291065839231355076218422717029890628333353776680139162653217469185124399795851297113670311921656912219503859762376764375337153010554328590531043386225473350643895677397476232674127794521619329049824035685352060722034944397899114079684129642677514787931509005607247287371501714976581614997916829641895554211373919585219781928299068234398464066372358804207613290122205939687905618584541099073706052378778116834409897915373677281028907493010435148768095843142721783002105046757898526792566011969211008595726366131329064880512274456639712482986606183185482799032296371792352712610047682555568982971342375301048810261816794319609289811810035561666736592785151241652043278947550428807485414118862693049861698113767717732624732245583128177540786934182374779041166477701909515620997092767001569195745953010265438102141905647712948750351033602497567637797794877417986202034649804810771206788477924829634948597252355015992909316712675011194373333539238620700658424047535669747763470283573027735485124677734597550946868857275062305887608563263492264047348726282386109077120440157222055684408375888506324910353306593708114298998805288588978330292996678047287227705947887494249397113498779769016847151248597568286469774902349857815435043019795999792086442738533926429919126225714745388024797307050282241042440986267555170252775413620383361250598136278391999934602150050741399353018745812039818778147017052202199818523872273133096146990652765143170489279082034926215661300331724112786729014121562253650125833318720807405456217091985985053709341327538039815077235653382193689840455064642506804538689089082579721641440691281639730971433188628335763203739610180098094727487466730888176844070697413608303685402047930736050041240082456317978403838515632302754052984851083545566248494803781668539204085474024035694120872864408796975704423550443459574435271618676192573353928808508591517107767248434566488485878841927756546168058450983476358939361657929361320700016551462813096999230686603570083302301774293716708505717393599815491839795867754891316179751785287606132228673153509836767184310322750156387987152931943544746783176298183709649759834394698614622573842057246182961172683157148209279180090779957958121229378877025535566767543447812534714703156466345227741970504841097217209557755563706967878339075364055288100132587113921717606198540193549696714511293891261165436968996958478679474422417885085796327567070932565950773346031857068696146319411338034275423438233910519013737071387861130979458976234558927038408383218242503490058811236708735032160390687932853654017997338989016206743572638418539543208839989629779015378923532165480436033354781054540941039141126822758608036067995035572968784082879358842492810029785938217177450348492072596034736213276249590513046966639876499993879872881587656255498603549289686374360383212366894466136789956123398888163318338796044311352159063023359359452458544893267925755075991025308228141596465191652431525955475558988941848840637847924852947083913512701441799671226937560776306739363106487358864360340691525779630192621448676836381539995570545143322518787326348308723609879427590009927414580406265941643386877791748169181814478102383587233804066861122887365248824352985952732803311268964864669514729686578654242350017671527832889911040114586384826564861861889318066126487770627689247094760297132648577833704981256202701201060387016932166139071314319386073910224066843038786491284449017582601376850306619578093897435575741036638479208270531394364977825739349775490510637349440935558121624301647903338839647942704136793139280731318247557867550526080364843467133833313133988551010838164516900939480600693004413552628651448424627196339016501566286451621506461551716168781609958932017366803998023084042434858788615227977749728255551397707403867415851714227110522855397040409172103557189849187491116286119072671815869229118349462976881479491933915262539473096580666705382796927347396109461092769302103080375324040766205023794737218551351985120242108725777760468580649920599535162305222132172908084029207939073494744200814540690834402618843281776615033715669380028258129314296071611889048742897726464541464433071663111667651558844480579841366884692586976921984319041184922366127562836685120770177849067842331243860679665298967276429536654331175727463066065670625819848661800280580811907999387309915666748910680511723467114264066342117980578851051847669128222775364056050871039467458752462680548196444257125966766367153320460718527367057195146621281647159084884641404964231345896014952234680567359762377739080644472066903045590464448311012695304311302106228371797497281355300797867022324527708530574814686713334990552525309162591786556423288496555078479326992126639495432204307673507509388105669457184175867606808450918130502448807521750332566835676634525083976893970387443930339242518462958144114315662117876763354252011982810735524257564386959225305714567148507601050811235627237454593242660993195566404953883166026612099995795403494333099741402316274568093823594162088038612470847489024485360222360818734024302099164852097338982832463490712308109092736234348918262091186670154223610696668695542575373911356909946690213587936704329826829324324761815462913754468391711721394224127381305471029749185694120389131306818311957579238450213390977201206343773239185339391126654226285457590497760908615267191758584750627495734313800562952179011482585776676518436331023578505191166391560973451964699409188742200962621152543032797346049181928864271093752335867759901744970722205152788706657027124436919539924270579913966480419915550946616529535989672877118881930487408508042603452142677864001887209777549728607010540079376850236150333445743917873979427518263112251160667406148651677079982431613268961008856310853070284014166023544846831289797958073944105869645820128749575666455083782065391870608685344635915756909652538057475500816399262623475052764335191708546175919876616833098818114152074273892995544285049316743137749118598757049816129849153895445869334755319374029340386890970333297348614899685489951146400501278954575921854365751148848147907764803251130473175897239889411149833533161757686859407414971016583125591422047237523755808098144248826471731687200607191919723157443010743815525428976877324612934266169108209373225190878396902867181138940197161467774764075369381093837906805514708433384020479032660237306117894899261693071223723786749681454840317634693009087604181796333094741188047702335889689235310002044147364217148851772626261976755237483809923018699893292297857041458061753465553976663117309170909182924652747938488142824972723604991696416648314691018943989802746585620628507958522016780454905354518110454868992226699852436245280952296371034076183514354302991900908840425074771272408494226268946003859938801604029479688869882375642274708219804355233448145646567645815486456547211783337837838488873245890499571423441668503107355418259417586636642289182014596380613638186229825514256750555356305135556372677174789221241242350328459199468386758744494253305506824498561980442758986295857462498680616871822181489320941890460130022060108305104452000660394180022681156736736798217056903436297446085645171298144650197252567714661506102386074271119265883076714455927184624438197848151245518799400491997845386753987434148269737930514182040530235830147719207742868354735771244246272401305620901883404572017401309602852037565458770515926692273256615660068923869784803164574851079142666842727204409761146813830593471351819927688557815617583567246512271652774376958642831642135998008820062649837813737439193060264558906132735651634711147401946158928328936451839740895402253207232732401559748483969657809438509945845544930411462757515285377371555990259402621779397479584716775740218840672237388028710875044465349344170027712226686596283961711119015055438089276960279273582647268602887764040131999563476220601267605035145675194868346864402292136703322896932379265468511912556115575182891794889090067053888846647075728330501163506726117081577074723976443356593431776669585704272097319354284823388466674619157079590922630944236937282684682271253519917042798521824503236124633573109410873634528469448996576113049148211446140672538436147387885262138647572199038231078987288512497452721799686867297102460467939563675071184161345232523502098503799055205481199372848899316287698705537503315339515214880064286981508658183120723064330059139830781891040094818450156683145401924907801674378983291017579965255015935649851461881055486728292955777292909527131967671244276084037637661246366339927235411578672215102492280180450907544569220317440281031666173748812859855202834365291032415458300766762694411126284746400631417687012184023262679812795795876118056593050477312632332341872863729672941838679429441130730883138580844151336802206016860971445524426453557859371405052493274177320748679903201560006999802625313319885412949436714546904597614451103775711060795497943701291607834024091967062890201941015147314034529374307813460984625616930578265684399337024916421337742047891632349863830115571315606402100882439086369871581588685941256415643021769738402295601568116913826092647004501399873326742191239334951753163833394876306299481876772431955947866498762623007716968368904292588606640986032172037139179898835735715852444984458459260438519592042340537994624852421885036743580926828348878734321575794335976100408792986273855336959100726365034540237690048578950500069886308326392788669515089788157933816895910232503896224038533536011589877481321734603346580405616304614638435467910212950292691501462642917706264202869844091487335508228729609084717584008647611067595586091476503810582787685168706908597544264750487242199071672680977534574903389833717451739318367531458467797656665567177257605211733608534083125641179016420316249386517797584524218838187310052870866307507817499166205042306314540702070695121335466327199020298995059902641171506724636833348205373361079198708482902884978262155472225283744017739479006856705269212202453950957728873511856966501892620233963302736149369271520005100783748550857793419250670777980749462571677427337137360174625566927386714738952407493978941329783676922801230088622253270097095929949740439723007102070808413897216866547259324941429503029117292219560822405730373667253532001432789478632956273703154698703050456688198760118045550082602958275437837188441581540315003995491260037623097811217548123902026643411554634129954300125177450948985416694923641780601653816271446635041556211930616037687760274250130659407196825577735349246383747285563586189267702325231028791137909066279058038101679106041272641364217205153058144994585774440428024055463182356724789299322695003690444641962516618600585257027615385244174531798364914590382898026875894150536385456810347084572134577246169444523201180500381100466846266806194146709389695818693829997505878268144643289144519749006841114636171151413357052218981498818078536518814723728179930761407101010513660882325959051402104663056189265816676277546689316594785311356818556043380383260801695659551639732466718060342057841819260826696778641477408747790487870420937999156833866023623813354407565618622354922091116087429030330354190108022971266613843104577440943305173893682221386643250210729874591961671003369883830809276305114643972662641744248049109229135867366388345479854769726141058731564241654642739837897531081728765133600344557840691229419734009666799420583956537017353329536907978374205166938582087200056288311629521343913099276059031063021112453098734604220247099411981706022593930467046281708595834409302490028859762658215528732831288882243036113596661507256085174059240174606317447016126012221862800436782573452863899060662275604052206748562329982763074661732830305962956791273984291899311781623103465224369722424793301304996511483439192599725726102865723847235174176332514145118201266358021986107758908152562320800611107590990914813524238019789681642065527869056715413561037398614064044086830631985127996896383002547509363200940018765729183195211039667190161983072475425552277507472982892539993570689011806656913358368443660785306283054166698152410247673345938914275979356196413513773793383117184533496293877958036955208460225888180435295415861140838376425166564034993701859816600073221981640481604390056317523237191376115847609080666838521476874674340138142680788403235847046701117912852820161866607658142670076353192021791899697524919378405443379921385037550559286351197514189705456467739554443973329079501313316866505874928388485258589328892867626945398861068824892050449571471156022842685700898726425499139615505192432442476859889313728442827768142215756868670548721468105341203107730825242449998637349341652807861576998057423540048624698228065296545349396844827909849129563647542183836093479960079235827096220425755643336165936786622094309733065577446347929415916486470299321045369824475590580683699178144225877594116516674709881457767603846657885533024594023925716182681312707017603509937713833741988910971009626168154857553452252449766968180255975009691113437117276760909708911053560852278831556920936590416411929320904809745219968907922393993086918563838425277751216988609673870281252166950873207250983280596507088923563129212795277944993123898808393206471354595447438545738032804512226890625003880045614717623754182456281282096055408381066525772819075388901791467483698076443280562884867174603657805901635022176528935688011969855770196797508684439030936159082454103257628538149146178506955481397563627427782540195619636615110992025327468215088267613372903863140537540532064335837264273865609314642503925058365518603932693944831437099146891095626004143771146716617018895305318828956043614888680211876022352926217347494934757072447323959668692857312758119969159932365886522289590790333069031123513555076939166048113737733519187918990157449764241682773195798099577196152077012177112033952415543070223323785237406559746366892398037083529127000308482348892420458942317878630865381719756420714357649013878827823025948652028048399791145629864417763613664537097675978086202941976012944027126078145282435567771244052742335736518276652886553940207648982033046287523293643945193652542587892024602465202705149438500646553783900683464581368091841948192072574106319437530283910926843842519530974615460087979337342075965548352232301189595758534225039352690780408223500724818192842472012240138988593578376616342710628723254991783271799114081661262368029654676656446918441271981132209019045792441375308716135251405108829042184135838559683453655634371823315304081860295278359895085180185970108386570501386829822283271980647715642165430234509200067178399426638578948899946586929936645967499026793354313380205260324485532726857864411212974888617041043421179931986678102869493541354714176910332154158476755437300276552272222711663975905058658891418248450304242355824164131814692134973836513922855488195771747058939270441095286727964304415968033435028331044184705886846978195234311329219838069077687850226635536597433944333382420506064098456837541034166878964354403291995878192344948685682380103549155509296395648347389090418059767366204213782343369620440506190893514384569965407594528426776710421590419242565767029941750593294214965207423359623204242080954957141849653474525404222794340189241592017709527946449810675981290980945237174897940142941464881808595359945527960584489800231228922886688450379035473893014992115879250050595954890972185241113148643129632772226524737269999234194017910534546961946543552911859886464027347393039753485135502978612732548216810062820892193038277947594394367166244089486813702087613264164310568722659262339532503981978210530593079972097175052799178039984361797808419885565475415586456514166897245151841753075538500260953379033077618120441995029108321285977457190563054031104951764028305101469086369347951345998952611999723401453304735141835778203924276638384498207983009079646034120559146879016104911585282283015416419237560226781168209632146623120563485919756754050852112225167540062005284132198829241338923715926652563125920085406936137257838717711035403669068210233506380284186600673781184940439104519820820630335479543595116489800561548512975458445012087619692617919625612615537185640376943022081544155844310941597382269225440333912134186153337985526375293403119779455068802878028328704054953040498578908207147470868378998405264144952471975374890726587533634519481870678331122518627039685286171647366359564286605036322553052440792395686113727004307893579021674178009442933581636100764596548196708380381718373533285762040214832832628476496319298083680420297267190272338467090257598645806759908117311716802732897468248277905819586661128865244646698356450849960267491855214899669162265230849292757970370092858010509227801172036040770940519298437051879204902345085474899700951108295647087986242032006065572625452648237455995765125142677655569868589424915593073606931004221171206924355513097670734852169063987382216806542570264833843824799632717095840148467608157020077256006305627622421889785605300142017342520748860053261632051791052758175356258975527161861600352985643359627120302156778906632211112307342638735203394759912071693556648734842164959692248868338628600950957452899235075321393959426031645676421466840662101198742980703799522227799535053248692175541917923551941179402902233098956418611984593843643806667834960407120187231653195946279944432166472512745471885664312919214106327151015820686989945365306496760370594866776118759932720517737747796992967854870099243404232120500816850386452120933899794631399596059782467317985322622224041591594003128951345654135537060396123122146744854553874384044089883797136460377551083585406527974396124160656361774022422911641268043876809351611323199021782873404097772129378716640614449291482467952132420321710684845064240896518254080625265915847589777212309988982138071090940813941711314370380576879713025162842986530504601597300260768072931133255506316868221019732964717364922088747304493949365246961850372348480473478221946570936994535502846844842602213842738651046807876393969958935096885085930684177228139129736678963576550470619806827958000185618911555669183136780918972672239961193277354128031197782071841875739566641566447596902397512849186735222658905039340863795807936416531162682906950591207026756660402004685797654966907788861402129318530520125898569055578347783918592273319537879297795813164382556187086349839718947165590910386454139379522275912275175263045792115007521612445584770807196801531680726032674308456952627144079843169434064468986097941252260361982380776207645498219685553612903781039718665731032379953377420526154709546531592735336241335221100724317623926609233316043544859718382344866416839034351961369288642980317984993630357957682672146425855524879009072114895020735601298613715441540770450231303316457526225053354847048860011047225363749060320079085510094613395321409656922070160747280686498775971006087831787602593774758895374403574653598739618864866343376520948214715709216780246662746157290605581829614121221852236879313011262679135196349059132100796976541502654522443703777156472904786690232945490695923179319206093924252309695964077134932227698550033330960592210687978871869591803376311689969400235133853255494769570259036159111187409558285111015998463587325403881885221537099611338451610936808791731211230432378158143833050331600279843506557773909671808296044461726985574503415444825275619094230236751245350040388845343792999282594811783788649115449204893032606235168739683793684698147770145496351094051204828595814340046364507950478086703601786429380968609411930313079065967538454094303534220772570531200235893244398452386294815252328923604394867136533293823270229177094302739043804375579004911900239728334023130083765409885489529274864071668307561534962543468749079604441053995648969908809623503985111245099506595947638880776427005470629691019720549213014240838045233647620116553893562117404725179692436588324450042185782682834961824952206341834260799499430099631850318703011095853592767602735964372082895348204312252900673214725722139267485220365730042645736394805416472562919092577580947196990556039291800120976483952208606218214451060120692864262128339429195138352136160568854917558041024096858262014678005923130539246876347320532377014661482760101499292882416181839149005246378440320953966603541181220674598797295020362774809063853517373468178362795600027749707363288930469851758711412054966516983993564331664101556889161127796515955414531248656129246795810594958430625102093361374770971921980796433942929146436603554163318931668017388927098902934888805634314213899854489221492580103148368463545384632644830953490529354879553797629971585968230045355817527349049157679085547721135575209810560499839759401522897776440304485581360626889575880991099969101954790319995342519968433117915683803043245155943092666101284794950768277722203535743747494301109024512277301532721841894822337175557826654710469390066266441987540424425867907955192487577045109263248798884185748976751886462416588027342179088604681049461542055376366886488384170947977640269657442765735610248747073874008490679440076453895638385046951497079412435377711052524220894066690345582796626505110583711006891450288247557917602761380700263467653682118974251866910468590317595782834077291482885957619701181146318921533412241344734447111803687243042138529886329522233092688098725508063822859886416072351517468145502626623315472921004152864946478829714016005417474892567939778987764479952710283308452608164893729550435338134564939201765980597304141300095960340366978152084626531157989021047054364538915780351521235425231658391955654752950561025689628296787067145691332168984022921060170283592521758213526805062377549674929022095801569372988843581159644440874070739656213138130021068857798047057465800353553455143400724655886902579063833362844404116040489388291090337305636258257603541079550844991647989399441537088155802971127532146368093144336377994708804972396405577415779892264351578426902453633452434560148104982501356384554928114330769186739553866254117275794749234800355556883851802823052528503449807372489476752530997235949330507425841713942469719832017377441561924809560226799141049906588908129776955092023818364657941274485285321727244642669293291915919225320407256085241473365357336026026067503211334232203896297107084012551674777520493459477566621597047303551791972523672540745591451821692128868519882770096083942514526014903392634021543778775203077137951406814529180155997573532740986187573649515725855150895523483299596939878960668180929323622535553662462243687054438785137031250072915547048465500516666038546888208742436350180935358817837203518361037783342604305508626772395109178747634587404518551248467842114134191558775973980220967179800536437224853153503327469950222936891218265012866546198599425497891729849349008687648201274241401607201739290288564852112673463523802742004680832657011173525200338526268263048160797936352798561128235308535239356162030190964992279180984348720840674334717597925346181820249573845456927067061399548701835633978107900787854084337261781142519129332641377395459170888227265770139187187025312960204994833321304027572601320607187381370378787356290042929060129853805131324537972303445214549357861848504599754005091350825897875002301321116686034968017126492669493369161874482474373548102785830799392356475456057738749443593842147158231694338677701874792307174144126965116754871502530488355476092829300995184843683913327149994667789958349196194253434378240193830578969476810597983887322703326877232993936423250568957381264737154122994339471667110223151769329001966489318417508091581424897433413086423361805265577124241261220549805016967215799358615587924332039436130486133600917153201001610187054123499840035052036720337150522544660431579733145222506738151733923181975198423706441007088166323135521632637582092327837588230873774468821221223553376317976546198208100699031258017004876818967818387850321558649061595651369468220208027722063411209693232852352180138491262708951218919856556105427022168501871993567190748079062471151418622198320497462269485264385467096115585202155463128902255955675451025101961683972172854616162738111698906863422761811800568463519641805085412343668771498113332072491495987561897949650205346312754180508068584083119189384936283615145939291788895411297297326270758123792808326084707487519300759358359950103473336662444201010251755609424015291951746090028563553107349069083050969586362230965231678247949275644798861817052614073486535632544412371662670448867127171396608575256544835112843098704619702859943681221981937289419897980943724913020691543558794813155458206736776990975944339838522688544965649491204739170808585746282009521973944607909494892792972404149830878127755076230156172211013131623034385720137913389778808627664543696785019606897630388301423087340574077989193341420422630022916593939304257387412313811028553015087316098501492052477090063719316286173302322258163762623092607691012797568551235155856325914528364654877810532399506182906582026266368835184980689569303916876380391615483484281872118110616401143795563493387059109654714727445562878603977438966484668631436281533562157046548539542581259468152500605927186373049514817798788380421811959813200400504685953289562148697188791179430126298773317318951383942484621788034424629701157212908018051700223112376617400570646555950655160864007517851137202302795620705375497678813512590954670504846945314189818969550525124167782782909336043849850624545715415278323123160990519469560969776813185030434391583799968074555719455507963533620873616982155711023291763311447137639120426380763057890316287446853355631240846729090174567210301669449519721488277122445175044872123491306344867853087837441642061450987688319354405863865495284341612641252143355521923441228735286837098368564683874604858394380201088883077920953709574662922219167683579040060468959558641637348344787703709632356529234061817774676671275327217570883650203866279826137719568251842264733226598589513945770232380332484193855552410349809795364440710872988461064425345166659979214930527487044892259212409018037884891993051113595970968151235076859207846935696930919580961319298753393953039211142194455518500539770627925578393386546847996479566457674367750737800678446325069083557635940104292721305769361110235206206066550089949213781728534063859812695970029990055967184884034110437052546555378101060918305681531443789185513916362256268638580248861402153276343111162153874874396300310563136251012341837929498934822884138328479254148848901927194370310920871386807855464219956740850576931921026162615293219928730213245317560787343318380092410460898951131245887041681528694253786071510977615042962487521015009361387281772955651733177285697586707936912397119518847189201488709932068881198020651424447591616041136151960396049890621511706991286308620594972834870784954315654805286069778808737263488438177491065792986669900495573853242886245795270724332553261440017478082770549468686177712008970217055265400298217448581297250402080912068329676520483163553488207718214017964668544718152494340584396781149881998296930847350703334072188024945700395720801715700364836989705528405668111188835835687525879316732280046350928197239939297705354069745562596904942122022440658897827256659021490842560068838934633952586422746430802859314390957092283800380644025797469685552685990018951691754580862031302178407083175301429948088053313988082173016693865776452266184983983238072793561666830714435782616337918254165806388160797735857194062845620399771898729048875634939942134657749256364014838379338859276216965659785744897326085378877242360441428934390775204076461044158106913540426794397463725186280624625277831206067671278627817504120093806038853670844691415927009926801670548732590559383167991208977120990729268408936780076270929290681628742592340969888348803216574817204564178725881816237546067270749818364441996651625314499150744990208500739412072083883853561104997953806588266751390990783833765571407594894026222471062996315842591602391761904862682766941392604436536557390525815163718502443718760079246291091399635423895732895665174041586131843281720571442320338503844018870600680967781049848544283125543501510023850250597431077532250496006637819646894253493598338877568804338488424470741504003853032518648433582895807231587716968392340202829562443851890256004974140360212727554224672421252065639897674051698068182189619898581156289224655924519326210903281647158586872053720670253104364595614658992146392211992171357230466983280829064274309397754844081866986230649483208757479028095951080964208702661843482115365150681056725760048143279517579270998518824082863460041099187773210451942467282579021878999515402191697982789536607554853298509948667826384455227042269034068539630007562107865938804351799028274944240483163751562430980931610233948798080443520336711463367306257463339374541836072032609013073343437481890466123267901068317492937884450188894800492178399669178727513927865383537700325355384035853432774262996757414347956703332679028300458639403544570324226130329176373304784939634782252932118255103339033042278082405694780076757709212641552942692620240643084539485418966028468521153560027596652542064040949904377954940663455789923673699004265861571053840934806314897160301074538959837079784069351010620106694350465913464119042600355181275621197253813045425843917131244904384396565991575274137809969494347323738614360336302638517499052988031439286739176120695201167164010235176933397705964553283966592715095867680807162534329623654486956895166043037284268712734712431878212615699292645623753363503929928458419884368707173104954231040144119273146236839326392949257060377873864740447551645654383553137938797230165650937692895635009382875298271077229370793105033257073305694437876217543203235604726559132572737342338490241020560393562737179783513397517309785309791804990679636115061764091535972644894301347846319962410454468015007314015348354443467438036661548530284843994038526143605848329116358260932201838741760642670171928262132098659638414632791310420492259107931623624657391345113806984085245248943291677909548138277772413709032821108438629027056150788994599594118208323246582760678655612467102710861681497440340697404237589276460870711874170786834478078979311643150317605466733674256915182062319162866250723402311549410996857859362648018975849442291619493712149182704851999008103489937674684485003072640802925154604359189911910655332024879153704009960906039077197827265368204939350495897933384053809986065989584407676342010204827354736805206174307812170620437033107573935763652805446385889808180479009522731752873730908404585293862384737162322249272402315541542299691682995062196377737763784122197394343392772084196651225312236040014021327271902056861311979613012081438166370799041174976331544476305569157972718940405496044600744831992735791778275498511290205198899894473337627873879947912722773768705669000749594763682817113487361827024721903390022212604461958842955682627658640501388864546180396861592455604321686813781051102231328545698964788416679360801961820776458702965861783311987604043986296039573208848906456936728578044642046557738636916869150931978860449913761546478650799988704811375659919832974809584983174457929609441973858179448678993290922651047394361666892348727492474802304604496848486635581140537214413752383969175246483094896544811039137067224799744137260800638121514821375744813656718426124391923122760775585385829607388605895761845953471226281300736959619418177447000108090392958941137859740795603749117278763495377073926550721328704306103040604121393214803956229839400428308714064486797444473831486531472026657966084851454278625904428625486288092958813979150069728134177602481998007252423787620046247236165130994608402392472242442174801960849592495585931226994501249885858174109668454323121115077513740847813345796234132390340796775717504486333362610214281837480759795131568431815309302245302752814995795245699118766885760310139641056062811527582123511336056431046656522836802837648669349892059791669516821812311767930210250649058806830974121512459716483224659922264524934489932382271810511279447996265756625047473134424618406629366736733662999940486563635834620355572108113410302866539411605912577464690531414343142177347379379664498075734358871828409519428833268358772713163274264004164320038868542053194799237654860190374884557483528656181963734159632102018214086520773445676155274007214488556057102905702776367632059054465513068961724615296139691365173950338486001669670536822081004289045672386065519307419278857349914389735775467715499552540426750861505027028102409060107942076089550985674783303810294492963093077945726903481209074092702711914387068684121126848874518066413163708110480153505454080608566637297879924872775097747114180761050530428516033940974358270936326390020804054719117476803893816884128460495288326781640751912033405692548352310143476011707851771034254368186921940008060794009438497142793672593369822862523162442576726594263613422894709467567802852406372714982795124225100343440331648759835119263196610426307094662315932070159983730944450497102588936402008868642674485220629954045375770141544420548499311244709849191751103809355519322350724925094239141111470770244259296553796699448823141392434728192727314807485139104894386222973552434564614640964509840070480710262723136840415418490470967676916086338301541816403160795114823657184255207418302417317661296929890284147320374048645452345157044725636675341378181684340475975865212836563122737427502693836244163747247247231841351147703064611235440474542918123966157196431820379515001363234701481866837411227509913895688631592078994019887818779355754363187497981620669423554712472627220398951853699805597469366853018884117283980176164031558372787620739406724267990514228429604764398574410202307243454980313863469152692510986017325553587926960317246216387952318441167784835135459412293362936575402606877326955323788949209176501393393615374235358592451389341073700083972830925802509843581178896488343007916004766934531385591634251986199800597002832081705023603024078347459663934343775945377436069356903632507841441747469865833360798135528893805864355167826125338904896792321994383468474236306432899156091944443231135009520223256082756947977121711681369963176188530989122592978513351770008433371372072732204706608963664248652039033024902247392796622166583334661153820630697765394287064955273118086484181545929652979253670051367658012687555325980712420124907319715420084743056272099192313112869937479637570938842623785768328803513583273651851945761503644255863907629634251215989018030076430709570392093578575974876537301232930561192650255044379449697993848696199823691610844402247430640965718669294696797935563300581585912331059891456723316465615158484274305009638126187397231198924236804621366676558768296478189945487912762673386566279970032102526698096347010616891433447732851391556121941368448431792099463448760034446283003488624079626145964124961532999212544081115204769548113304781678024585561172283253650043647236834859819195207452973450203808437616585442100638261868802619048221550375430802021983987280161675422383808420088298415262774917427433035645943039309461206152593496445356383483878834209869186243735122075050763765023891026680688795273196080210361531607726970530234699824734679941378689567309852881869431291158397550089667473053125967685895010953997773559104462009277447283147770044356664768438323531231647571929751583113094244507070937270425498417464972996963040884264396753269909970603378102121349339086337577385821408303575233251263362250845795665804028103033381039738998315514822186515208646605567291367133840955147825757554815883336789100701255056077509031606253159634454035652060679941457726511967781855204115642707192728449084226127950779302464689803267312771116561790087755461987492512665780292592863668027904734991843247785154020190721900002901578482683839043757145976744752191539681259199502439698426526292024281257789257304746364590630557121761992832650310217296572690167371554006075899855457887737412219051226144190438033193592024230451475619317201767727767860599617842746767370760850133690879326170354485641371581385233315909175511876745089158394153470928666723183290303079352284459759678954881274497435814734359667805509860687680473490091699077011764613109587123168174948305044932613183885182087352103585190832730936837502484715887933720249842675572629227842881932550858346350878896689236420217494757989470008252154319633987893352133297762548237272030543873602210846198089480185452602833461086602217225267088918615296542190955110947160677042995017929260025857890620222956292934399538076086599534595834518490736455518710124534549469119612874464001236305212617972540460617186083092156912822901690496661938698127848592074832892675580680735215897544062835396611653642304114939688357701947947921994963671954059482453366012669333669828139383573920208470744198356001012147736127506743714567555384404719259673353992114747054012085112790669626438096765398647981007831939328946756685526363173706953077131937662437005307012305467817358495942634431443216565143942740284965582789228784128957595254504210361258553223473050922813513990608202798152417116034072447083999057871830051023590169203069815680295784170137343249929762336591731710482869752673862368076244477123838057589856482019981763471250617811887820005816799285857329530575326100072963091183539329967642854872931313413061688282893855815069957285835546832123863321675596317308298231658356873138280694149408281158575278045587133842229793413147919753330984267149861682420822812322593501254306443696464193754603955027840586715661480068636115864897200457852870868145713068380077214352198304412123328159878379803653748607438348860156847548579380801158494659637777385052512426955274631601552298480822553976435052567881926064842539110908734222834491265021467780589772881063792704220448440391126114058689150210569599811010029765883840502414843625961870869372487063740276770279282912613059497921456500378541397676943718532342305791968821422137415467002934620227764828429351915262474080318152054203276116843862849869451024507169450350654303965102131289004423445924922486998481712301437086023029722299365150569132173742902117604282235585392802669294226374215919512199285290640661705978926629450879933087509204614670677564235075068109180428198821723876952142523566497469401137872907450858287845120379839064679931973700527834931549959451020745593243783958299647711298480260887058377746670595590799789701266395422676259092948006503961607844488050392899045534373906346865586189870469858989003126445079604519707763262679425406407151437430735449121429120623778716861110417839955319930276165650511696012548620244601491287628092827565958715965172629233802167312645962545239809649726068304595750940955785627055787156818949617392115753421790339385697361247942138530217978104276343403218085064263632459281250566172696274450118349844926776564221845098331559930404308002872298570991002344249226160616801359469435994155572947688819598222831264849239986664802236263557028520241201681547688665169705347668717955297957007575385863443872953758205514327269123187150761520951598523929916701813475458783735398415187484096282026551557153280650950071137851311944665608073567077878555513250702893139392473486380527860867419198726285305860397135277584367206158073598609538170053294284487143604773999707073888454592017852388123048304292705661799940520889840506760227473508868846120539037210249446015715003811004839058433303449771578393367526873566902272058257496709114703530545223138130446062678580563285823512440479693659447109847129514515258292944090455992168082920761719035612683971862840840308749542787037885309569180477905742495928959989077824061323557869263235458939539005799056769152976416139459944208045665980622796339401631385925645978395000290946265776207906337511333924780188328015437886644391362403485274826420219996596425191267087413789051702582306575827427080180460835446683970065329543280104540614589447682976561118389379759482020596459578621546813191610534685479531091945321244979315529027305081051778760927416208932623585359895505013578724489888641473053686657844991317270044642772376413523561104769453910515096684442621380399213825506941457579370590487930803658382008240587688184648595689226385775255037577851167954439737671405347125811436883632970200896097317552424379668070726219146867812393220283163145464479349913826581344486972778801885235703927585846804860542556627433335507070747700104971756137142040568898294464922874969742365992746808133304413167800208356550246450600293632275564979293695793969266357448707900685675638880951316693824758245127601718477922302760457409291349057927225155871183444198009705013003836010739550657509501334410727125293295741937531310738749828005995313796899578840036205214108741833692508392328941001110623555142963589015476755050290037059287032155444631095228514805962122123558495394274334222787317270834562714809802467931543700948969290829081055464979502998271124764704603806964544548907230236535896563209556364324556025345641494245110887852387463976438532531832419398714287227751588813343876820313636057514040171358865497646766771578163391640501623655702568332378193479261249097426209287616020079666103132994806414988671309889585162927709958973080370476903839377484334789442783419590001036128519336293925954708511335199392279224893960025701804972271453612622107565861373201666797689703689252656969875742939932426747188619422514243537739811389350634847046835142670192387114261469472661052904315485938148388899940250352223387668644821873135119748871904692729458177263714601143833689357836281471187326434671678636783170696486609434587233541230130645042173730758953184013547918925067561794201324875826726432324148002667716091521219899391376369428421564363159294171470637500235711312565293407486041188925439605389357699158160205686786071451977775249594905695886089464906544738689904996407698383426086895449972767178635975881337537853134028265416066387409735718637115498255398103641946539147281686888486764334365120965540344520827450172129396246561668824273879309423525010259501110112215449230013849252324588635446858096954186630748516209257587938898313026366321810923394309136148962157691062705423308395266112121016537567518169430162065473238628825039897833282872426593753145746438797537690725459773893871027801785947146738913914237685377861975787850781164364142684258837449833230417095261833786738533639358883770460245010307770820066858841295755373320900631768792588217455635252816983222940325931147328931341440952785909512229075660122095418747538454702700952242088912898082940064093670739591199432713057797026848870097134660908086590387584571282422167449149369064225063623717325803695509011615043571944662321463506943214414086070206953498243755883506915391819907947033851883300678035932792369134246459053216915749268123301846345288452700480202766492307261710483630229487795317354991733331565005421342333094326181052773275169602419744181469024820257814603590700183012737970565387917404948295980657357285550643023439742907254542516025559318573495882289656885150144355560865249694625916533767412914610652529085795753012512607308680125082351791838858212971560516223316283558535321372320354362212951207254301352441876260518929221425916042159765060020059267364801020820491762681654112447282702421449574124741319656482862478564603371589386135708590861340030060849507022256122350628470374771295783540125569768969271206993165637549055225235625524402493604266664957819512531094194674046550820467329674850420307150062568761427112577420331572653787613644647222996160441376171259938564907927634871036606963215617724128964504886156463757234683273287603069442258063112459535150368407512317567545988543960753929512202441727083663120697102852995498121651639156908485752915611452265926839392547506199673439321047234129610653357390271581142145664321007469193622459004905990588809276695008394965585000209174769361074366168307582344989023121472893471309954969991225607619853509927775417248476314675004425506451343825355727132785988318282596171897103241192146348909424612176174214767879830313778373143155873056017843155277384283856906375879541285535910811980348888286710609603318595201642619561286117474954330421390713868245407519144861180861428633787618951673486760583826601491956946253003866071514076474585613344107432690298323119171802057342281127178730960911339133019860139913106491003814393836552336775020493933416750773550745000146357860847907087685335671200529854653292696610077633510876052665675942582738761543196150671306862255202275041373276756452308273947383012671353542406532912123592188602891438473327127525513546765350513923698527163258965005467609660500368305506300920781783940713407795765689627511234071241088961339267697423407848356250285014172606540973870206084612158003326388757094987684564297852733909669769681206387049683897754520798941170114368120650897759120482094112840590189291445203969033850982705022578653249251776808642863404657130531915499233097262144497408687187530299895974433429051878513314690730053777852130770058166242613778417530404712018490445647692593209185566813232025683994757364866171382784907655635258672680738019586631590505707030560478319046689982580997305372990619817994156423101349345610104061572938523081512845445794439497918536544893180933288829866452913992873798395005915337309440894878695915505483499621929682754690680516229486160448839818730155507615116617717693619455741107189916833299586878807716364817253665025999685772222658808128721640911400175388180432646781471680055152193457650551595087802177500828959050010788685446039378160644472932323648798442585920524607157112730247399237812841443542784830364299741943919335151963846434251666327886490548931470540445275523798072488639685652165390250180724190626361520241936198492222555033506230128010929252301121616051758223936342766578185540945788668614523046107079681433697003471583034122365334095539042747349862118977269211626851477487353056924670151582802882747276799805346783857593129979556420574902223991382461533615902856107521417076192182029509367381144644365997764538201332591094550314538149747990479956414735166711323530550833057579306110380443524923232372863891030011235491027441240933484619030562931931774729526020997954049547585915044783432728601256255795062816778661167872033839317526927003155862590416303671381108624156111747121963750344627530528696523072316934328145147067730940380440749341742669090955953762058018022406855193196995745279982595750350392514287940294691540688950310228585261592653001549250280341804426311311549025716545409338910814845233607359820981951468546119234860250558279070269084167124850963930809189046995952859103970000928478312265939088177000045628293790112078299986649925161787211458434002239294210227147458225898164964410472592872343526032071058204263874089879967873504568456692168528718409933376207952372812925587868239887908232026427587725728141443303423665244294373551964683955536837507017829288181831881296895677322156360726131052069680876154873859452474967831432391030336721218302650972776960663789776719559881638663073967031402278266376945368994664188928355075152264626459652101271638786920929850529586672835297781868161572997911991278492562443251012485224408270121854337338523100282252721643439402037624268020186213812209854764450743924860011632376222363574286026621329454958634864634630774128473801548209352899391599968765181223352394087413740583543637783198881690620128345568314850113764902206712274455896405956708974973883279779105615767084501483664188684023487911843683792214670380969935085881206252020495017382518330453836805777801750850513351686311544457606836465310635484983005971811744451346757128843109444685381009397667321053509407801944480159823201378870020901981215303680349254986988284656150485397091443522399013534011500482654673080704641118136186296346430435569456036645018534548112122441278796003759254633021519319024994683616667883773664628583257448839498498015997116094800891042996290489862089739546329863943796508649652561484253612046583653236236209675329936463952402710168461304222131211211468001720648188965522638826609102926825404865834033929577821373684871181844716452802321445436554272317966211750777346400740503330624742303387521490941322442304848861501208935579789620685100595300655506582503599332088796840210966113274620440303999047556297884732816296560656440999078453488337808760557558355846622777565551166932832471166881785786869493302174606301626620143037204674712106093375737038192707424950934003475984276944915216372315168885760480953507017688830797655238307449031444448892909015936665167048680985572770257838463038196045321435376836215050765985109345273293519973776210073980054949200069079780859016718128088572304256055944741994286517708785871379811094032301272564095817347419117959398200793699851637112645653417354934425537950122733321753537107380747177007000169670100097572702440770922129525691504732957259968692969957958179205997536643577569110292421950680504244703318890890991601815715107671297738586609709961889388928576414409088945977790672440699242173194970463266063739193726876201372064897748573516561906389017915015445864816209670918046064323727196484983761094645836152244773352464432830998962643039612502101259149589401967153103566252375100040766655942587854529306052848311733444030303457585634547323553780610970457865246876867829924471313214728544080883206988414010732998121914726737658843703794833067851300450269638069173026800952452028022340208505493770547148005482365981313328436058633367358569233841276041945407378422477903112815549092453415855104500702136060944696708896848179007068250998056462212886767612345738893274376324421984514451997154234154372154087021609492749558554162419820520811819945590275857385319112413367807125230802503949449545068006489015725054196808099114631740363069324846307299179654596078720752208303959658927468964483845688839680156571384401700132719950389611130237656827192931286295377322365623400719031033218880252162014347966470592252044071527679550526322157483258382730902949636508209990429607119673386686450049837568032494103810763171560060957593265372282443769275092144809922080192778547381270058558343332579369625081301378573663129248333016846239954962562675486472544902467844714375298754611076856174378577802085874121006640819874427282968628552857270378847724195553766755484330897462807015795212885380334377691052515403751836389373238960797108656024596221383627401227645135200545618951132075455005611538134557103894667485341255869401351759482253219594659103591489310866115010844906141682255909095013883710957946752274831499487742089836055416745743295034438547477917400649100895930372675360936557394053771389583567095889310502316322182889242705546048949096408756862822547181390849107146003001743059551157130574623567037942436715505757376515697550976383231426566420212212782982084976173198988758866848777449987131320328069484349250678270779945635522991864039922768022702082499125329443457362298076741110988607391744666857401784103925061064556271877552467968702023930406615898052487297834187075500823904011154680664249178208973170799413737859418975650660312539151761392767563878064903208561862015180652512741603194672652453985553596817462505895715019949572828079802946155517469489013207673432254421585550470627570119625472542305063938240135686734943138944670251422598168047635875088450830876727042693986170377229813436006470363262102151117220339520219306042466018484577489173486881574485471121200276788186268280040974211808760062855722786804342265399910984762671350449255621222322948333270631076341564610710480203127115148610423967892834931884177173115315062484690992809948560089255793226622568636822113270076388141025466277111116058876112427274864650802983689983112107735075361660417682379599791783570329263702796331495620473230446327487335259917042850450681477433651266471556447898206783932666655554632281329905187283274383712534535442449861791924362615539060058972192790799972316406253408867600135970926163922136512659480454750820673259027898371370289982663599734858983508529040153638024590631031382275948065935710429388599172065006152993143632136786409844760769779957021948116790624494207220136915199991324886972604655162881583888858643479193317824163829058567466579367686483126223491667976409331072767078906661333796994347296110426408977293551019716144806406475746669405230160566349228778181165923972693139416123445749501342504202310361825992348451071147449200519158602688709944861933782983367149916327071904888434416602786300661841485948845843117867899055650987011086981071289566137325746050457623035497822394362800569414461646164140652200300882361482213434850186173269008705339168807274150117276198169628915424806189952297266923927816140599507602176039153953011044344839750428306391129955937966310736422305431962465169498735607704494503539703464024446037589959173066610432493954456176237512643642458601574323784985427861867924852216928584282979493612996223500816054666580093207601818874965732231478358592795788108858594165551125864893361258861504053502033656142718670012507380541165827739653934705846828292386106644832021293999642297927442784324986442541128540839883951952546100368328952451814988441534806663198432560592723941326864378458393256659357675756781027558941211290352520298413023013625970042170990587342722387407980981409716058030582905528652395932415621792543761927525384105225996733361442294926153903728395637330282748917926742547418083644254478240994496368355555769359996488595251585202719875642811674496856152299357155044128171563628725526851069960370840074044248945415863108352303006207136383568942573832988226379429582021552320026305432679484053859789862116902820550119057757995195638893101079047878690446882592913914743233543944860129883803173552355731491718155232467852143520063162722570329543694147628175616782348845240400857114449798920916818410108431272875706619962902270815864106196773479201259234159019521636813014297183351001903606837398209746734080644680031443578667388339410674049195030352417199596397351881540790119343868088089202786961495573722705228722720473612115280602544989097474892651746903295801729882357263025549999561633587992751267330303141334564813647650698912116306241483117505956373512983269594838783151416945639316731207373387913552124552867836731487534519165554614409368528551122220399223545244226902486410363199089289484400101031744301838088696282098054201140576395038977529892455655537386719493181130451901976920397812390945468931208483496978655155752197485932259551697203398075374475149356814878850396810996731324444354737887907322637824302856242721195828883847638956090824209536244266891244828193801198447138857994763850514933935449875485019105317130438212605699594724796103184755412984766806757667657972685115011016513759020032898719244855089731837575729151650225309028088859188800816014800258641672990128636308395326356776804464968708270334641537919970540121392818702392454169860473843696282879793172227187026166737412603604767848497573142067882124066356239176790623477467984093267073525835835092328691295050922870509795198197508788782603518234140906066108655394603194347723787310245031724040480709368073604970652745558792845095255682908823204986601166998511241337723504937343697522570094206238315956841321211361815786566637501226711913973329966827021427537942237740293774010146522952511416248062420550863212964597130169641363565262901501572851949223445753596885082658866050726146821375571311660350437109454466310036303539811723272359252862633591899668068268737396776152530043895852685538807292593543748037357635765878453975559807242320195537489111834759883353315988476328268278399720467594213097823166854394809239285677804374944471827550696805367800284792971817814467497404897226821629891729555746098484257959096012378021063032535131766260627516421437954953706268509832088549840981615925333169937844284556629580358904031235433047553409841804959911756858737817087179384837686665909505916685323071541462163333167871769614109263785530024826756341687043103021285176152867577009138580492957903413484919536368923597220318163910243712853977601031597174056934906485683758771437325677871712455428551576225276923460093570802214907101261293746961173210551510146080057102047387699432636299432611340557368436407105436779951110133372417848400210051077422438706606958421797697040668837392068249690378589298924742167305469917943979277164925524193935206839670819806902286732235096029666516203918153777120412157150169997367752816452813430832857977037366586774699798690451699247831592332206971367318481131056563266902261150226155949912318097363047353272836083778984328356590465005235391152932864153680534293621136547574474532032971774160953799995833506277395432780203079239774649093791468007961043253895637978031218598066269043741643947125264463522350067664447622736327805329195990769390099931895847325610933949705882033148770841271759777943665083896016214221670005753775217990409276779351910067000407281025402164662530771699542654048323061314316721337119090225832676571329737586297703229364073261773209974585001738045369794513977883090773478806950959598915955179762973414751986770855644426100692010632825058255486741478523180351338762869466305399106250309142165431626385821471139681187821632155288318379055903170564634791431692340277040147171977397377155324387230019496027530126116135432382970105128626569479704889306315469262933195985583944215328161991198815823209985380790062689493825465627444161238161503318539272101437451298900959548568483282376929138845811587378932055370802587683599346275949965678163318619073018648724488454779335465677345786887743588207579297325262591726150648787707323703030632089346664120631529151011951534006469391718929571284236976407842471510716898095010504596677606422495375585859431556120808027127547085994159785964361177752252046526240182439919509564066604910412076457984912745269696084373506804981045030502342465231650093205250782387866784464479566822567252886605763806913401788549488768567509336919357747791321487408356013584134554472633994041122343021635050722333421408474610803561101342378769131689509629540148128014370053436593806164236911490694982653980049111636574156695193510862570690307065387630426832546347759605108122191376290700272749360666955981170093393296220841684698122900478895901485938670775049466787920945222754297533889581553862376235396927559443730843809727195298050608201583870070950769250980630189603281018268800614331162650156865367517721936838191149716527882943544048422520703961181707543394254698350537709362401902325483663876444972019208803527764121820520373747909098200092209408087840991372164392912824605959048076133849206896771124575084709481229627583746334764970224170520706146302244718088202384589455037317647056957249056759412026990565248116711032623916808452731160421445066365888243291918184570445653298324744349903860110426580028874906650661640163311770075265902521033351337540300187438016552226667433930316732748342821527180705834333553875421832887822461350698959857743279710673718699212068334227376902909209068338530137068038030769010299771007239141433788008659658227258215778572021478544960464974636088958102058842546764730807657950059092574914079987148760367260820425082805097621811239129182612059834374056698994928231880436248363745433359992734787404221979730075571633642408375960207069016715600598833688404951728011727499296739324643837961401209400428417384187054420761889291064680690528155072683096871087988931425248677603560860767619327004957692590331910766039928722363870529747006342858217716556432505067803046927873223013480631977745204067359149474163272037211599278394856920262088460883714204190242318244099419847499000051222149224207127975047678889110950568704511993589129129881210779264182393828158737508592306440288088846209970862220399676058679254406279844115012836431159672217899905739882401491706733983064460140913344114974217037977944073284024442893674348631177511077327513719579126248979016375636368717096871623507159878823628192793708832943096642530410266949128553484491053808000249738584194749512064169757603482300171836239219201111561764710982328958650309672813834879963973838950145124445993651400034949945378692812954215610774716066939807162876213374234534712884227711748574273590394777277413377169256250611084741574986151477261002849462595302822087070234914873606659490087340829659084517255828275783159659913465265189399902280302803566062305842563161649350547429227993166877575780609389634226153698006803699058336983302599594279306711585402610097980191265514011910288736869855277526594644857266728859557452286191474076791706435179040987378259126208680469163402457163413773751748727275050787207595988864330603377236318102720092275448540800160984790805788098825020656175909006756876866798759037300848037005910867697049656191017964211620368735432631282645135700098546407842194853545936582083814991227936626176174060955836714442359240881960021344414006754910151042836706191484439961516285689683397892247710451025147551067577501453558358026841810684983959070791687007398470830173852030854863067624954979495142670171412832590370809999711327206391159936505028582808328692362353292848600483731964808129104980326702485766665006104634784979456146850601633624775677822867065625421644170761073153400087674448852384743818477606824900696620785629295493585623749948355280634400028626800958488214558824274019514050010378944282298415148651654377677147105806459220960876864300204405412266031817546953637624097433910769741210358261418057153616764936180549260197393802892212736293153112457345984753088540411548590542848275510348140158849370931930349172171213130960540644686459013764517205451225554910341385551819279012008453165650982268162033164814020063227246678352075979392891514460461928442125390014375427773991150788498083551902640949739486041579038422265434002285613091585265181054788018561381256160319649711841793001914504651951260672579729244692265421383016606984676403216493780425387765138951070284256787191998400917258811738961443985769421951495953188410952328097197593283174064485856644661261988664493418051206041712582414826090028765097032293636357648978864548182572194838702350265219013073890918685557137339265983509671896244929808842779462659667637240622706063259375092580445555421122063830172449572648622969453218952025304339676646585837386957106997141889688207100427815191875321920668848033253476789140389074777593397299261374731125974395330437340315216982449307612449286614790097954942573654338707070071044037600206182483662499118374271883986194823548023862066061902108501013691239836559152482636585737346134401930513400209402212685019378577891218315412276526960666471357583977824250849950664860509012744320019667910366108849196865098831427784435759338912135452346143610636654416702437640563228105056212802671793446297624257576942540151745263796385538795601861552745947855971906908576556068426756302729671486005611065040212492584187736101300449488039558731479343667426399907115802948974113172370120360139397329095647712022460380603806691059166907420632591214911376071307072932088650896944681253508786261684869094407217094798878404274049440169927399906470371211512341408073739041976050362568442870296791019749259437036688865318697594456080211609517941769997878375528565117731253665475019945954445924455646617897119132259435517925016419862310838003220111199225651355065066632815779998491910598653847142795261184085165086212952062420575555761740435082039970596298800836565615805015773088001634193343528639207706222962733689698981886384583643131524249239001604074063772286472219819383735754991268453973819867218140726162937789297795945449129942539282455805804624975743753412987628463483760723301886902338866010139733269670356034465887230163903367221491588986790449662989201167723925736681649704295387052142833646938570132870117637487914472649683292598838924928925086983663977598937183648045546097149140954485145420443986096587855268826008219871784623072458942380590447950684245704358186533977533312568976544574416939311137975987029765468535845690871926150999832102033545423625791964216989089435928913199267984938179654275361703751441885964580854605482661279706539011368725204246402109697260150769801101318946523607706996856223205922665193794416508602838484328376838756929627522754195773682571007160416704944532024960802216134923921809301057371563103717845236545145768819440424482319293202598418936854774540749928197471263617476247701006041475529961232482273160661637722728831293367637235100363210539580634390491694817451225192532893901801876587683084578352028710791539923568120125004279346332585826174000013054408361169482220561538973185134245405077833541259115782081449074117491805536114386220981135364354440686845056903332968335893329071535017295320262219309992483062619950961653406041216214202562612760880789402094592456435722596061617025677506402910132039325399449400365658519145639314253698839133678637313437917365649994836172195082842810991347303985594472544628834542983040932653473490047097265462812212021495248125029533251554590780867180570825795475070945243935415029846454460002511784317538015454575905573115139086596728483330399379148227205413525080936998883598754142185203627544166525470625579117372366896910936897133223893840556776372537316240094500649984614667038111477771912420382509942959411521906372543486372326352671851148737923771445500931855861875732068161592300183700937156519831904940549242918294227617217185658497182984508811389590900421964859401048224286299697246154476953648360942101095795165511870903073533901139050284781189923362806406119167703465894920374989090655412679436883094999185821088608524637482286222542773852730498279960184317258789079794630584281914031759584290648492170302871720132533150415406338261969639157135862237609466134065811048773536310983028442055452512483340154745294428393744684017704459301942928194407898135626196112670262839962370130230487564741813909718283944089436477932354199076423707762416793801119682759062414468654396027146967632765945369222262199406869422126926439698914001732668706466411227803239606908550222011347401252531709237908532081011750451396802232354693659572374638913659229082103408427684982786531135597393106085438672778454058453481087483509154102437484978394250305844081719749578264570555022149533533946521154858966509521498168943181628751830361750778649793352823937891137470399672065487488070513762520098054590241632452039292991097724198844591420450837688798027757567759775067413688086135671266840936031193560742077353374652692761492280708576943041096752014351084288511912080306012315489259631663277668249787512360040672184321603157404439427427879778756003102044909545001077713912348417024690339685828428711341830684446853160889688999553506327310103542212079047790846228735427458321459234348867011117111203288729474381220100530494201737243195297581404939858962921688923336521561467201299246638823734380609860020169756908361300107918313149829305041271824112082455216615096159548123408931307775747476045697504455494050164655535112779192885689441643627994106748585997197489860238510410966828099519338368701089214734273249256066062770311147587876146501541127205236941691674140399733531564340733082847090407165314915717859242335690780656941526170614174341195577822016791851532949115141161968538580004160808109577324403970925165493821258483710373686841649749058879063001596127943576589085702980660397644431793096295519915620942073553755607387440261126495933240606055334529822551021512071330696089464250484312815995804168682971910086732859632519310371097963390458941576353668350061048630582704996673264324155292897298397677453603680258251174747111715039370132269345007382999314773939228909641652322849229601136700797544150233734217453095771325415661355773528025531847926334459495229955854277958527246925464484466262389727567656700160523137104856758610292763742107283172088996741939349049096936707700284373687749077477209856783827082811193316059697475644559100867427678974599148432331491483089016625272610801178173413836151257641879617132094835725169878684701496356914934029783344458188928647869648171109331051698831352503126523866756083771274433076833128511303263274854026087728846562233355265007133212994238333509796195588749437429663171645070030822231110574791843256346864482803875322527964499805516243590938287082245784331882107166045167496069105127458854238529946231372276228643129520974530027555292875717394454231151154169786888502148098576123081136653387446117395883092411183096078702146924040251654050968254784616092855972901046725079211261373899700306640603389195762486817624333555316066347210306156812295403221250784569908828624857922315814637293549647522073424239143622732485798381064545684420321143378207861667836459895192788330976983478551012501361617905391820064049347580039586234845890627988715954336539733299964018225996527978546839449076104209709685396670385494286463778318092746807618336206505892019914008456135533174858086564792202702211929623646372445558623762112313373089283921723603010679969823214287235013573971057221353849828894955060801605295797127229590373857072764674303883689841153091655303053894978230175854002052981145255501681000442095733217799588218387113167008484448929512666691132839827595457619681733137117369230025782257862610512352705884124861299974325922564857927304674771729857344710122358854361318339113744394244212782321438811714336881161964341904032860586909177956645642982262285361610257448265612769560565598495283725763738851024913307349306425973552384301025548375317112398642110882718392138904705832709685344377591941463575744664903928052962876547246773249188603261321218904852669262660130686767004069314454542571794638014865471650643528532074151109633566749474170824901743778298321159365545106211953804260196959707028846730489316964342264251111520958347382247681293241104681091884192855793758884747462502658316163658861064351178466545829135116770642640791477712050791040282662069076561937067622867121382496818247570048163443075331830442781480435159618337497901168142633535622415536778031768879584169522389141202898881970631106642539201719346592846020755402533083113137531618326868024627529801963341532916225752339151537039995175159968205145821342892232615075586947099849689544723263777567905335539980285348343532040444258935515415248363307332350159833036001571707211954020500354441064075381091814169934301720706655244467173712953615990273090136922083453716568799004469504470416462196004871265989810963437275773007486612623774853547831553780159671333091000802869736138489726166687859902990181426435607539900197390175716583119856942872653384450911323177503204981906447140825599717825341561950997241430012261664362535110108417227290344093513252577925046851260074909090075474379267441891090544131781705057996131814461965315835971000886577028156447213331274558821610726743404741779851835820328896923648738475633029633466940948890921051129730405779908983634766898484878109347648982151228481592366506878942928044161525138808275601149474988172928325102049640654496036483569517980895143987299366360119054404002808564646651696876762941507547920970921608906099236674874912876175070174378277320888546485876546314733214872467224644128055173391436883748345120388592942748694683362331153351685385052383032544118900170444749370608877139405522872931478633795617861975702409562260256341616595878336589968358101731194004022286633710467546314325628898269807424293910667106159112283206032025719213813967264753365715911055700013889561175419492547304811701903627427512097014675020630552478250912483643778091926199755962769109783660618721165816494835196044657260838498710736829142329622488347684514974752293313794341066854926019033043161728431401068417491388823155682158553234669638199900903161429701562437592685682335610679971029281648696235862662636589827681611041656936541759333411674214219570979256043198334401666112143475769073711046139282887544208223298258453454287316798858596022564559956097300202300138978928399133642361478182771024217802142249259306126522124532041275415388051276092273567249071868142243564332168659795552026698249104518622637898446282290191763568626738805963706064213799844974927510472510498024336049574137169404107832607629908603096488401653178927051930192619168862681206546702353956936331737626747593081450260923986218932239928958414753381642350340488796603393499210686107992524235239950078547962970904684083025476063089465784605429445493884272383308848646825857240812484218172065621964003734916470941331860341611733891138125951354257132614619177630862100773289863326221363775278690664815893011913252578107898013116434499188692525606943322148247101706082847567072453481487757455936804605669547561182366265997788027999084801068012988637682360412181673139683869825636431338114754272174741025970548412182069205262901613805758225243504457242625786252089175040529414961433225297502817185762319057418404912100003706251773913474049641350778001221991079792853673217607751652678832298575125887752184739262986868441640603901375559963476611022225459170325491881684870902627868367578588233645936322924438023245999204080047331221366395689627761817412784651165798137751379936903773220954601961764077291758193767474835252180842231832582564265698684152951465531699793013190916487778353154375874534708070258026384975271812130797031766880192928944040796954220946089225748975259896367827725232723891398213813196399699649986786977675302560557960416069481217506641406043647964962993249816805341455378968362250920448029703170127338747212339409193427507456570534256673596894326028043480289460847961305479418335202294938895933912051226802886758479798708433608348145970158767385291241118191267908988081571309180720913405617141327612057129233223038300940662225587292952553285463755045788410798614736698745494144279092266940500322764726826838272326657999190854852046950358896969492665490749311856066443975667679248750139459850919776869297359902101594328793629215405924640982651391098755722135241795709595780077626235531474897366145526350118442413754063175234438300230689293084015114372901229847023763610369844586223831491094332416037636429207383061925248883265210826975586831806579818952220730092057632484365308910401927755406051560596632401446061494009819751816021676745433797221990902049479248527858732424407969868990301518281167786013407892981636398401798646537506185851280744025720760540180330624882971903369496500488954940471116355857023652665087196682797893583783049352497860242818707224358513159831338422258841338004001925314507380711691140781417317250952586731124728233923014860799579560058982566827998632679019992716823823896519006055167439273031949357404625369162426098190176425036007027192264516728967029454650791043191465289660962972767043972080439189710672952641146772096415114438177989464044209695954816698371644500979810313707779466130631569176721146024402858551812366579332430347518559928030375483544142671396349477141937194501858749872957857088500380431998104525923251952405983948468078762300219127466583672544025857402383266226103359904766262270941506983544873431622114537714652843622942040572614769586320807743122549676307182246508867110628231009105991900934626962106379756104860630757629054065546536921887270952073999461833596616542233269674786088154836196702794812498702874106547687823585592352014691532219671234476522792758254385801995574537126725224735553185066641589529485629667947810443071515488099399625175464210920195311588147750471990954990193809573822901923843665375583584837667704868341362594975766488309371481147184700136460965848463924162901501093236626097400398031921929591426576260586973572044580722383759120528068612168124685587729894261231596828052018687721053868349010677163734730506883739155050729269066389237181988355687554776150572115045747554435347548920683285659784152939869500939195170358813995301234761342273041686719147497612733739898369866613594375113981546829021418030272391168677077233294086246764307295755795818136868407689605578413558500788824746597849754135991475873278741474289557492258339329617097182387595491783638492293952426020448466758217014759948976122520856318069097047402684608206087356246995062651683627435666943336452775890635493503601371364386865320615454549736421331958087797877659508665064903402741552022412400882700111457481032493581291801194841230160736044015584406766063037404100109320175965009765819740772611195241858492053140657255452056394837545814643426001306476477851358710363481816394884110726897862309800353487485080876145142510800748158729437228488809329720271657821454561141971771339924037638711704127946962582353428007440852655734205641309526822375089125330327780593444475208888381782943512085829785230200025276946158826767891543105206427705666441193066673224907149917706460789993202905331729002807083341468789892696411711974486221347902694573240285081613943707134941415810098658297265600146775291630311528816117131377599363184459204083547174807704925872336172162913420231166127650438802087132228964251942831763981128033362843456697238520297466058047874634886442218944534763241717580633800623438402683039976808322884779411161945366765189557257863505473801444226660749427939189601942314201943488527512106439248890410930387222574207558084843478914823146202027425840491010629114427477393769042670374808183085149236774436634023197031099135666470349850183184610532883485632932234515434269139575261209362255810153405111520499377280344352162567807072087048443295375212606687540113655270396352923433120815549486369509573979392380859903569674710063428570871585482068805671769037858108628806297683319126065614184204895751429078843287025742138799386100365128350506299041671146081387122183553330508933072289782046802253065879178915426446882745133912706921139043090814537003072492826787466218326624665324268009303548436321073116183968907662716698460652564121740612845294855771895241813939925819867058459426349415251441922744091029191911508364188589478745556848329025019142762120693956778050206081752381369339759864374766617817421530157528232655057459466015698198515053237904620186529425587147126110613666210137612112048547734922056551030442668478911035738911138197384309474802270293299087955968511071685658012506600576944102575372682401969781587207284756081690516596604458230185196215021560316037840491678077751416307462074237048595661206437845497197401067889760538918728698558341322521600296945122502287643623726576099649350229796776847840671711976811639515895835334219446255709540220062037648830530847678288106923061400097210037410582766943770433896642064870836693683242179987849541341074812433878230368963995652509773314274539301175674737967620788909620996631467260512425782401552713368923595978287951738220031569328768673794980104414575566301956803585294383128965752050132059312542018188862292778602627919810347866067492414229942583795890553665419438011094617895108917141654692741187722957917844280818622114841120915185512759516328280203641803759011615681834125616120973523758611554875100782874483845703136199863421611312417770984937772873485185498106082290033446527244136726134531368054452634790940588105829916262387815171298399694430556994805385913658187269814616913761828723010983699778092723472300132217077204027205483624089280517306268248522014696458990951818378872704356576475659764720225783095476355242871657591940249066365789914581793344878965621455800867469562112077298351449373635871461350526757552820975533958341451206646495682026218424721340628660834515848171595611489239807463615229523176346490496642919358406093294815695336758252662422417152801143453533571906583346894419474291351390634198597683611711326611001895362153008178699496618381595293043123086837418464680609161470783274109453467745287807235307922688376016632436353726495186957293467765497717619685074751297587696152583728171063217249487921483846830377298368031091356533523153830786665692274445231154737327739097000015580049252360661210903600355821857996237345560283981874509016112610163681433328171779070078791987862124450875416788328263406123291043696661715448014477624734941610068170941252478478561562960295581125157382978126752800885223818259468051571476839253519752384121950047862533247503639073857565899074439573179577684612031651129090168965764814029267302723988442579378527187247152778170241832523725665461346814221891719095423572420776709861443390847888910673828238590740775353572309880038664255377587155513259268360292058611857286797353317031314088553346261573389720386929867246901337658467447442586630853420109997201336947059256651259066284919439673078828021637022853586053611777731082957992295849672235391732127164288852680699487930534116791262337535144904411907230452957482046346938010983235764120016650692712895997396893817102738825878812646709852212687549947164653213911720222481197289483196821174932485382164454182903746587897537179106290401075818545885587876902043181393440338505734136777041784792979117531210684480919435804465417110502237161359471335636899067064104561417738828822875786827774324535241879519728155101484066938417930366585032697484155247196213905870048755404800969473822029850243704628875106859274958068150358853858246550637439453938742753197741031917839210937954939768296734442634391753504681307637220240990001785168830163515448032449445313689446725111966023418068210459987072430176584400093353860162420886390182814685134185397026404525430940615446802477552880494570061429689502589607550345396869116497780779834988077696205574506182831561543003824737703067303871102018426532324323765133278622521114706734721939407066340685451230973089061307559624132493011173120108263830453600068898255274716496987662565876367602220400260303324756006515827168631670590132720513358769642875518485968777377041305641175982668064468391661826584031189019411085578904847662563070536358043773570192746299350125408501556740083986373180053499664832733232073166621685799788603642683314082233707380098895076218490628654956792879233324925522201215209494308673522946539522766904891116493543315337760922416818424896022581689088543820138658172058370520558359541636370948369501921665968165287034902548386113875010401713338462374692767339472367429365242432290130304029609669956233267665473447179637512842587462339056710912026276218902891722914606794825514918972258465550466639979478157269374623399262976435636682003978750767898470820777681527704931424080135046425128763201038868422082952112423777509784613546860981280145384772097107285778379093733609764056702363030409466577463571099778707803676748155767130234057224510562979681931390421129372155459369401435639888965390563154519267171724775789927397446295016949760304970370383617306471755695242839347514803511548406496177022935336453736996106751634280657592858615156192116744699810920097992238390606754045729037144724614603991527098293738653852614553737297750551511885990742123119637183392051853979987585013179005276092412183165033267218552882118253226062580878932309483305064014328623464142781676017593691001727922320818980375472145333588770079546706677288176851879243402173360828463701059838226036774856599448586279653215352521218619253467786355825358813453508864805667883319735312641712525358095705483879685423332729446011650996010216261344530269306866871827313854913626023562278414233907066719674266973385887575672135595536744733452641048196465501727533793391965043764299811712891980945916024884501944892615408983015048250778735275325263593830254990727399817516795238000610790191924032313798386623002932428101051473107741882682688149588046315645107424868656974824297124383950809697436729348565353703106700011325330784346956373041136593778097949310570648931398428281196157256220690835071169683189078428766755859925334608142101589369026074891295729557368252247497383659745372118705523077613266763895161659950456401409443875414470667071643043717018052541609318337587383315101165019497830683082533259903811825858036969103097234448646268801738932352686042200184747564574422680693894183153304357197672712087327627373342543163718106645624434490792027426856944070500759127987871439308495957803821351073680791639390635582666801531019889523946562175920680742159213646364728149328289149324343603243959323186106610055104839853395165658761379787568497615565284772548411701127452737538431802273950227864144250355963296311776758983747449295676018206773472433519969585191409398842487620072460454106948015617525958310476422448494816864927252337962038571831179951912988016462655586442694734230724529571406895436159107091272697346575534947388270091029744416769443146140516635064881460214990524666116113131120262213489006769695690730485800977519352298742454046599554125881382572074016893592744683305975210584544600097525073330709350567596623137075812340109462319435651954638134965327980960153846055048702483695461319009552048739550033818343620354460488516371129788677711931041413332351114694566229317721296598211831659972617157301727505287191243101951990384632367356179548076499913771372637489185440836331019955394434260048973415775192467453155240629539528409089015576961476175142444314558473311584574041892233250493025167549538834311310699879852505900761329803673716110269363424546184750945840326697687901306612787493057968338272935580594373380198694643725443715075484275549760258498240815548405880098016184181749473713073052363073723954926971223082694099977100183999529416487236721852513721525471809146259346096343653225894329215196315958015504423785626672254442269300033174491136699912102869710338620149036582933909591880878241276802525724463186102522971861859127033928347017589908649558585680696498291648231566515390504960384229688850336102795269227428107232963034751834300054719136612758758654567608278904594204860567663642295574399556754281320497875430407951245880494943132818287846752090898989113671026049116081853578627736104184999622547689981615545422255081921098398712398184133211755810541426096998697029137863732302883828960251447934410077811359617068857544845083517256905208504444956883256812809273749357887572651564159556647355902175353210647008416305941513244100009065945373428193244015305900980294027828010382246152827461110501816165826001443764725660366827845166922133091643121158892999210994437327726645803907278871302268289923868975642031651662653072388650870551060625763398296972057698522083046255304911159918604563573321037748139088851651751024732043814258477083685876590864661804152833086591319463005670429826941089059289584975285174052915298303502719988460654590332770481117202544877892692578958776400531936587474967328600895759392052841308941357753582769987150831960134604163815110938708157595796695238288061608771088559365019116203247300370482251209861288624528173057207886327452106135229162812089201562840972777481001553887291172438956620595752523386974613368109173499382245938372761032496845539193846002091611006858616122573248833475567594806389363320950866240784911196345724455024175822349694205856013369407079070858709733851436200560325196589442587119599924984437860640089104324891428931800871799165918538501528227176005870083667699266479655343524595235494739052127009536260309519723891332076411994905634594347423026689270399954181370474007535703212764588690753930033595733239820392274653607283132173463093605295681020374228702240155791016958590936853360684563201482888077716680329888722508450429178668078526124282343427496451359326187048470647506410162551125908560079115415909877452041806428733685350190231067557976628717736952363245972930608014626044693399414082024937222114816728072966159716775859719889089528605496039809236902643253629205675432535471672899126119088551624539401210035992711286158447637521220471580043642964500494233917267919748172697383691322532339124019089173575797281252937674759352599293676268780394026068108214584012982929284132339600583537011505742197450388017045715724447799848295529877736132826609156261765216198334584012540726591899755295918603033150140375401755772689740063097391967490980748696743738443517918344156500350158908548266188016155934400030847477745447152715055841243390153823042429882623322033113053606178966542310247546170455114830062355551214024385737402489483826734005185198026925893337004188999408320385790954564686442435473387067653865353320564299212504925604763766407029675331246449761838547893045222952248589625208342270453073172014722651213633867653492814898342068774236213234306823602346156283866194135571326351852766167594827655238178464083868690053516988626047482959688399250053966418156486963931418768355700689154327036924714457071616967255605038187265320217671273181279382882245610458108866613095570710134691352599809006952067701323919164819320482490372505789408529358961259760332945575342888003972299802595519389210083249461366661588803941540897553506094994370607072584140454281494966312442052695507956250504945130008815993156908094782814820103218351671794085021216037909746431807459070183196486866506576996486875533620729301816530204075628222241762109072790460658227501536542449832419316041306128592239765178981343072585600653719333746530214757803289256626685179033846973753359850760320636845654273508324509486654169597180571855752269793688089392942154946282653984632967185277843062750684467750697854246882072536277659489854955807362310574024528142839619171323244683881610488305896732133575759288304813898366554434971051415993956480505256580394814267577842766769107819862000619371328095973337405930286468290551292063837346908531608711617179999113157689112125067514069158332994074542397046900281183384771410417828286662429395909000938582555743688466509597547407066137525735368829424699143989040454210436552324157325264374312448026705927882005322929029200089163466661827061892615893593250766176815083193252540071813657677945308017816433808227169225282851770893593776951530265293315333504003041692283555993666607790359747126266919627692807572381208743819898409569401166078130778544422005684054305772606241143086650885384739905957730580639288009466827880924611959724188098913575743686580414265104742556563079995762764208779280885343106880256572180834912373052369743967867581743130494648542351161393022989584419890460743263750191349501838490060379790634029104726040345087837508027763165633133391575217588628947779560689722707958476983363132037558513109248141726286607018921577916901977779923384244204203489948563329635905022320524822475119488849212517188761964710358873955759752607038000578415535169018820444853423216170071100102960184556732799182869926510916262187157092061755417098371853517797168007093729704296239593266405346430743706733465965314831591442020990820317828368668197334975142348113703709344391446932723572513332172566606316313101128407350752435182723379884087374678761046477296249738906997081650125767977759548087923612135502586326878502750012714508754065207132303656924598642295204578030936605227692637648470559804873357973651032310228959885494392827139004416135935929606488820681644376345694112793196286694766165771180955282260320896551889336593448787059117632877056452451326512816102001706038675000236132894034163148156706258310849735428412647389492465228272312149462236368162813846063066097740059758113741064927941413860476221623532447459948014407529093277921965891252855347232987622598662717947748165579366158938850304462882247210662775480104486117445537118281787123873047096619713002816425049599353952244252233454839738750567906136410747665196334765160148510988117969974106999316361595251753140282550517378934546754520393684480534138935859761450087533448237164721914214540074305070649643330605877828270672139932899657308659602746243613387580557358884615075237940852775194128171632922828830280767099223880264715734695543721981644341799433738064505109210586883443148874961453173194285420567223491137373040509033115299085396591019341942589109522859158653667563902940263804896425802807548826987263278390465214685242857184366692736322038320818727128132723819550767947573055071260551021979454638337810672421110833351331958755234311256289199212063452972700719573897374165051390782627126322224082206229397162553926492923729249593028536086563113061542981146649543274252923113355999253908977889105608721800796976025744332545682202498505602734448187947960112424402270460029342401875152067927654889752489600061984282173486877332090478198351599504130287800199215996475858180638589774778714554522862165665212664449091514268340189607913204821041037048610804690501342689737212717130970593434504210499499063234683093689311375844136324059409255000893805077126396843786222188427720366267214438092472619542723778848264807364610122025716887392097242972275579331772104890133542056342560267548989621038129553019364338123148738652293979952494205084419969776380045653946936727687626665904026694236432127829129585742652753548421582446094795524059196204672595083729868621622051207067065293350494391511064499559200276529049971649024666854375120922039748448612092732687586338583254203961845992904714845570267675144659158966677890428252790955601695939388491128463697053550009142689902145579351120116374308995619297118524845195773767563143352561607321184337323694566946323460197508932809797525049187048458177657005847409896292109741235004424419576045366778678506476680662208616152059819378358272706453914153858136817366880469363948887171515554128091256027145408795525690050655401717829386756857713216143810162886731807709577660522848894265133517659250666929686186479271750282772166445079871935240290832343269762829935060485616654627511303330194897263207022723648323478414489008089489590117395958314941319020243280992986354629908775167620704569225168974350202728635514527670601978839779269292521798446627633415293253621215544292009197955603968147920015726625769511122497892408673877768791784888861147737676204266709775987186633474120985292079890875611756854005786083044787461726727765862666286565029367384530541079780976867377232748102509877511692586624210622968746672814070283830430456067964284282187247102508201165251462633329339017247439336187473970209683987278471708092335636333361427068500140980294843022098767249437202075547053433527358181173474550422539269765202153591234751160784358779776604695948897987976272390571266595399399316195568686242368421631406316449252653666199674515056625313775143300312933452581869318280036963872225683993166815838392881451414213297262451530356355061032119145476982802890681311358508752830528815713378191342455295774953040549883992895483965690233153595577174438564994784792670618968153287872328826434781353514419896057813462883047075556987995741747786317827384192996234992595833396038140655087729624498227377726434497886978201125304799449648166236630490522681093850284671367773229436462087255470102310167067563321410988539276153174611276511566745725580912364153876613252796167124730641052408345613396525019831880129755188987195882479408982826401665144328845630440879551842222432881659017837926084230879069088349396127948366488912853081537242369554004214282653588009127254078010415038843227072269898570473538241298203482822264645379718406188840203200602858810319612310867051111330239390623165221384185148677564754881548664099558441503931462797027733055909831663923845266064808031042337457199259221933415455807537287726966042731894641141784757399978529297727529526293082251553282062328295990575666858560868491017019364030556309904051760361155303278970408001036249161613852189310002663703821121286387791701053343903012722468419071546527288874733161430634179329495115541416245143403223860596638421418405091987544635738476350620905024723397418355096538060448494464443908260971811812223735415521812897082377343722859116676959077927067637340326303305030007613517530958582469961323983909377866177399451820844558542498463879269137835693367410758797810275962660410316661344096684621391979836272301040033288976721044036721556701088805367983644017191424413888082361224419493951087454081915411668136635231463240909273022678134011876167946429749552446424579533280806897464412034979441922527829581034896234163340472614352927625313771450397338311071953281632192679293782082974667954756136235160265169791027928478272784493217786248792281709257051076487018612914266418224331087186543795636026591121102120917462330791286375768734948312258376725119882904122718992786492039084367631453435129976333118554004913165631382352945615472942088954085935488704089310999007193596950297016130838238157463099527028040597781792959562144326916022771396480917613489586590601103474477617152008051756538472092252374920420084930723822186562188630399249601398631422311893877085187732943564850482400647874836960443186339760890589546754494470057861706425702818491677724057365498237490953268203925599348913226126987751595584614047293673105701919566094888158344517151325023757493895463440261348459021698399523837372336755534890760707538337095711160242478152368427156333153727211832467028252853513452211711850634827258460814754885839149832757664480558595846414622607841968330701544071438069609161967798609400129060731753648963980041013890312846211704358358880019660390848176471330239336985841781591421572996933265935929956931878812035514182148248172844048358525167374515318420754157276056839545384958931788655855794250048432440742133896632142670486546725290127367052044463468055729429243810828755300456302456768202605999949056521922527823995947358486414144473765789630158252099702366268045728342186254625320092827456796537906903193465708633071237910026508959548544316318276871285092789934540808268983143585341822618488311501698561410804316120318920115389346229143941671879988187980949875033620226945023098991936015229251821483402759670869737084275032465624401108125199167791240302998219232814789670278142418514740906676135180872414634097542273093229158408758216274082848015183095214825462464633579806217778963705694886521298992832896086331661174533948081981046899517324339770034923879078813323637671438152406234857639054648236911836888285257039452733885026824680535963324143928386732517772782383188173336947556421619974609740428327680732889401430431683125937150900896655627923133993511225413871602158204472080130150339406002802398998574757905324925345013282511248384338375081927942299059007129631540603220937127320758681845729413906039623987134465930941843193319667427908554292038930232676009899450092648920608477720039733379503326791691201306903377700199748622605089353644252710644512220288132071153209841923759973249158173739256092207193712706335528099754239162873458753565384510228604806557538460954746066494371037486768634232886389559055703818288491630675734772087333776936929155146960051957108118005092670911764866394843784743879649419232818169624986988065189198853447132862766152160461551463167380492650051127626658649342624537651345560942318165159903343200453509262084952879676608303322636778259637453914659554564267096265580417305637110130880650977057131640889182117537500881128313808290566924353936355631822415202170814605679944987496845281745051700979834942108397807712124822023292281239514088972390041075380293798785747462060770040785511558442230237004939578858793941235689694633195537883898226813202352595001864316303354656961256714351728142475573925412352077842887737736851470594884411190666836395858316896307114435885151815255501879279373234939534785555342599492318553469075235138292672234453528126258781835404992487365640932403628122586758738723265628156210488285464720250133630622100739503328016149082756569036683847036760293449325888606993147541073371500062483552952013839827096455875021104344449138928229511100475561472011455751903913893993727376483363629634210732551099338683750227365763154321940851583227195374053752439575538437940536077978556105651266504824058552338587211332225506730134944808412041549386899281375308189585508830177321460352123528089011042509124356056199205749243217000037522575928391465281699744854776746833087927841358563212996015416391331978608123154917506574169239897836829532772146199604310422391210389145374094503498165914931275816508861889649595174218563762650079186170470507614818116347864630384825174915664526276985716843577514372245934302554658448243881296430757711185040232708294615266977952135557814848702231175010738205000160928517212661287146201747552648310597858346260866911399087011254703053111921067773787860773281922002838085469657577930504345831028594950253658186909332203837431423149061499489138674925072460729155832430281128616063031241593051707405733723447986384000432210549421954221100976875742232762126707010161772576846224227704092347376182265739597235014400528960780267952398053621171918906664575675487567732022633366189516464597309120713200548994113162935739763776051626581785827798316428257348230148048015275360793147824413138620231596525105987002703792924573288907370599459908612530448607936345832909499445970714099059828341983695573543477830175150498291341204373394497849460057740891711422116990635021128005148797820215033944408995238645029687648130274677248207062273859475173503308891425944120114068198694483964065632412917460390796034532983087042781287611415365416789664830757308909057867116074983794010221433882300392897097636438372975276808047486443156252357036256036266492186414589038872710713317411052903001047998735374871401012241499826443258636246637517050546672806184681092465107719718460192732161523034493961566480113293595561363405932320398296637468680366803134094842089091031438781115455518313894744515713174027601751772589018680576815878111063922258670721867914602581247044633714340506722046330078633427627154383279807084788030940642601137521044250438633431502217406837948666440970539573958638302798806484510955925517884890147769220921750596081338614789073628836109198510762237731894836793922316313711988063512349220149357936767702813714481783930055455189735547104275228382674196775085291594555612248405058129244423234411411298935117418307782985709014016356922870025900185411847043305058122381443020118693830674545329994630779551940730081165776193219118433175039877702538281545768867041289876444489417013284277726024759412506539563963774030589993322216691680376765455591959109432117081240742929373513312228261853943402771570148071055258811930220077220143972132083692812468265167006177031005984247143811451996327422114807802007665913846266300419325698679907705409223968651040437568202066071634683615447555094220054211665465251884704312809887428852069872715156639898122405390825921360572531329661077650223980854401733231204728501494173347755631756806074736632331982343176683621549682992857956894521071678938998153693939991604683057194425244904936599012318423044834201334978438276544949403385316713132345277744577810407584525706567539311794473030560564194723333020899645494073284298332604645868646385215987912840427142469154365228942175366652487192781827990367207467943569347653771908289689983205511856528770457342155421418175874127248500177389624410790304266553053675537560735945935266883073861950458975762463234473140694857938861711475353701688998830990684124049539451387817099092518236663540378459807843587301593273225848447325841416210498600047017323399103082493764271418756743098167766184910689961566145700919822278726426548381360060560317751072545699040437651105431922790728605352065337406894659788516779912321326788225977825676275606502029411711431645004475752471770853838168416712759718674867572087298484334023543167661891423788216240727293281180338345081241864871214099157257598242211995481861673307948912774783773543184289333572191995077064137179921597003097626709916169306322675963360245711942908131591580819062879618544909382492542191642072328551083794269967930772469813240145842392171972461956822380054379524873762768054318034207340050517557385481290506268593584709040000891529548283789168372149438077886105916617418073890389294674912308897943219939162788250237175022068723317691143999546717801057284768928658497842150738470662311834640835096318527918092013330491770325453907954562109193133180289979817661670170161895087104681963143723144492498372216813032705082964578914281253253816267558600541592651367510202444156169814697532068309578594600601901916213098657685556416332915261465072894915113720217703111758093999464633626323568697093306503440415440493019053368548487071598292008787462215498138860428897072716159102085509368020783131174320177853948117982292070056808118890130162889955936265378959648940767185050398780535734242546334290921112637741891734669708511786986356477104611925774393403659072335490138245465555973165618593854130915866535005854750999213191233845695630873964295811197069141057639384160575811398555970171827330155144536125233775974993341599874077686793751367735895287619938589613432170794487063587787077918863718326364350574255198915715787009032603053126708007962196008727372219923400379130786175119732808934588294895230764619107114705674728540582566001081222442115505153386614602620445885446471418498153214925602845252832364271639236681637066678451728701003957297849798178180306316542378034212997074233315472590920191348291942705740885486342014253352216616181180896143466641231509295695202064355166112393929423411760716626587703366366601073966129838211968925512321877568917643660895173347647478413854135678510381029317666952148986557984747030539028873513803699094676294803491859828292261842798765882824480558155148501464129679322013465708930911395205336235968746408658666400172502422488398344691872621287125261057688836422167787225023291743715286385828338942070641568454456807506690771289536752891777465914630136769956609083374618161194514240940209667319010034934094168607437049054303940390286560104614540994722018957675232098524981686293463448521748660163827097358436381770064648330930686411786896031739330096017284630923830175454350365577716407002906442785380970389452947561446476992139937634118944727984128203417521934613896142978478517793476665853509808496681879255493743081333931592670729698604549759661207855246363070785306457936718590509667142546538887687065319292811418415660478454522109972028394468427477572200136962807392575811350268530938811600540517538411307772089959985873217612721403663564289309488448884300833940396558089977707750198620134896781044660049817670960772810980179107859676653530376071027502592876000699323979373103726813037869621694729579556064194108790303483880282470995415888318403274836029738890195461790950402842491594164913533241592635329406758662419754583700123118718384567823666063121081043171295445829176648806322141813965687761350207086030250357415049017246914354328583023528196303512876907026351242514402669407141372439654169337043574445538205802866757001719769260251531571281664991788866225748578700686136845994051111663564809900760721456565277597649117817630586449738574987062017513395036712020238046963709949660758259716496182385276129096224257763328065886853620231675027167440473983689851795306852001040520033937224396656504458762747926422026215581231137599395928616990071407391407307556952426741562764234767328179012064019240896803241962617303625262137929792646976686253096938804096988188748521591747327928889686870791737068129363740514533801801757579931978704826680539866322591515336331144576574765757994891819062698818882274009665852752949690906202131419598082847387872242816183156101448303939141281966957765413317255300988918599138259611917825922493425828990328505287979399893983302715480968007709490702911066163802889966932634773421885690753895440129026614825119814549089301995248794198984576516129139137949817276281840519626173937635635622494763012522566157838667566683565844264355092821137336409092663005135892899927282709196825246471870599612805715297643045357287776998797491248278056893978955665701516610328066593102116351062689455104690027139734335344179659592161218837238126068678388821871422855832751900163312814733564860462278002796629187160524442903048488899289351890833613939285726406018787752021936398199468131664904551982430987734607196417844235724173211516287289271273135820583816624507131254497426518163314763143467785566063967905493627472461524287281811535138980733016257308934346966376501042729670691257523330625929363005972543113621241607809491389742058393247407975831144425107591145072434411342265973626120072446863833965034643215516760315047754966385214792170691912595592068549157255836300255535066090684958497590657659629898895479471010608527610134092324066990202819665689976503458705437487511382999744681214203446197996695451292085648259671843917397940741788752224872438327050396861340963249534322747186654619832740871437737717946075217919619590815488450946344972776711104248216846428993603893363508520445604193944081210975706804702972830431911265260838068364277320765362679983246512558548117846289915394051365086879730882519152434594272092217592594139861464014504245122426225122035906575978513224420689680792039445660420136915469867720617262661907144817595703811954937716811242214608804985501860177819998583118182681051865125730082632806089899030840940993173447589390493644524704492153726938800265697969798764612924899033890730059671339590236445266456341356404142082384636308556899015907342082499779874573600369513676865557415550544603353109924088199106143015588340737115562785823238448779960956820802872584767125873546407415278559208175048438138295705187517542872671535837211157965138072422812127978692625919480386129742093633181109630306956442415244817850179850739690229312659620591617946170464866063507745445545752085679374469999509327034348830201911920721409023919265766615512523402339926593672784431009066452837854786817741656253011766354285010759378314816406207476309464745599987416243055430785058122090848941746729828129215205488739467998989713114651257284378536821649900324495435230387665184219903796279576287719948682764142315150465205217154151420105371003041568682584029291503162144648147351006414851376092737246039461674637437530952746634605360083696034731718031971322574988871557579027870009938327303117493534895519472395662194611925315025069612727782819185230975035045029924712074054632918779794653409850421974085535067708606380871093803392809093229316650961401110833456199939625532505967843913076569807663390431067830601407113353458298245868098356982525463074773319322347739075210820615613450318421417082783614871294952935072559347690816240313006000003480489934411048740828999778310409514655319827183116410765886460441386614217716138447632377504132518770118864739582250255378119288056969717065228774977694401820811118411719221631670360177753978661066483098465573499928629883951098044714222637833661278730881092440922893740958456838731818413401593686049637685031841362203642192880547392253175574372425567769834737493116332553287957126501497241212435255733999131336912897406419149577690571433136350063990896868949828722716465264892218389655609214994956617088303852611454915776378526976118021673702182611097247175590588531608695843381765416243124389282566492558424864511894393485485869746983662250795327720778310252456441829656495625041222411408714567566316576450322596524980582299184393534280504375830185040892789253079007606911273611396904389844391415330348302804448292237632897891762974824863081701392061540217132490300217706931225324461421636409720480750492082754224548587573929873370480403685629223989868340114290394209087408499139469351775445824234248005328169917040655976769577125498636434931730160528882174645359694819807091350848602642124049901247554439375281872210279934380532508782693613347396553664305965235944248982650705449654102712303188118229069920684465773528221335660288287289542599883446978038269760725771564033093812404417259939862428503516023675499685590544883584886389924994569371541807095333404576109114238049470193730677688386364336137370714144538047719131389152543763008375787514404564614503068830718492797798289804400176205699597387410956878788179361216843844694902171399515955912595365181761456020401537870859953137267631725929355305555116027193203501554285919377609261642707223991306607863609182664626006041287076125278205795449794064620055438649075745042437452980440108626781782365206702144347510369938266395501750450068550061218991977593204360494074510727868816735999863632380880241790620436396773641214488106175735073259484829998814703315494034320781339420864470177701873844709674375184411787138531786932638083160346985734484782800858491159555116071279480054231711397237974559456154574083296359699940815774055423040324967099151661267000610013877376913077721323386378686589702444193396924897805644520465285445751378906853336548621060230458449517037955958418310995133418303622861068499183854994969247639165523614649403860867860374899376601535824768954597485077041307107355467233549711038610622620419547714880241744932782655872744513527519248996126872080200029792560327227490463517661709299202252696885463320820151611829588209027200759515338141066697362469846852189551728526874337601265366611807093543994991768593991557309349581737622263798143147434810140795263178613158280526046030880776806133867949705346243136923162477806198384968552784356522493078227151276107076662363255331378549682187856717691794435185469037941093063317345763976809292782347189896057701843105375501194142383775717798025089856667972100967586734832441190543191370117585263237339663818904020031294976586248815716909123891392525721792975856439936466958795084131909814596991752667880469581762909412407345657786905890388277108269161051208094187994217747514404053612651591383861808794000479196184368282740040738209930282029058130588218205558775542465716986511208979331862026113606515486478444376685195633374718236949116510575293876726589994451166433004736305119232944761316563939488970309451166442559244026318427127282382008682169460100587653211913526049002325215975123857429808903714833155276848000015996429348502812542607072334464568481905665385849731419766272138000342427958559276303337513572956674776126470446811071229261853360527317760325654159773232081341998602472365450314262148289465474775767015855339399668732928199390384312436762494223978670421867621249201244375479143646692256146090160645040230647440738704497516338305849531844208256910216921162168342347812962807592469890253443411022977699775992145874684050338195598571501227507554627069509219352733437783426054181601689629693005755584082912395148570141723226298170132289573341660982867073980606859732393944528861608532219438692620353697143971568205197375250661118753702802845853496799638292688159504092839691990413768907696308272967542771530313170900844187400197663253539631097065852821631314407578228413465014888073948931436022527648697885874955669449583572004398408584797066773013978640033524221267720102556170822878783694443530719758406964378444112693693859630845097027912434555629940303406671861870539377377827327540868785328415820693761179756621247140240595163550534469060380745005880689733161897964296285327780335144608260255186993480308925728444283969892460497709728354120074102305366788571482204922290347617563436358072517806464539345177436440895337762486364399078495389626819123838257771258684277353391543430654155416377234054025149472381695030620408089157531019346266318627247803956797136201328789807656527173298222202961962121755872998444101730316710178918223762219464598645502432040702606956999642379940818726915133355454761427014430850563508457518722608566337021643453670398685113125103506510573845728980543302042576713714974216099555849436475762428691001410183549572389843701912113606883073199736231472102707407862908629190285674666891799755694153938184963834328957194625427281802818606813268196052597363380809425318640749190087349671923318024647430646918337999592434223413056561569369451119457769535542284495098120174138345312725365986786665411813394059756271180873384164791455594177437062934502501445813154550880389550972438598231636614823157400676807722339841009517364222505236725097938540051196446429704874169837638429065318797781822641049578373881796904798338410383656042470291000528389101802114903967679290651644636486629911564430638871517601314443769232632720322404478857766538157590619612547945964607290787198934481529830449156061755893635491283919236281094372570333089672199114749638112882720294076710247998575442243755014010236136316168164089979352760766489502984566211356571171272861651155816373924813284412208078782069040293477580028318956232313612597652033596367194556827982283756735591175636793945457013010302602200024790331705777824076985733234775563764261939096961090171018768598048422015666101322065314169030918559942306135201824140240272667308882721287444630276335763138052457120449047722602916520402231272706224705352927429185455903528207965778466496859271212320073944348025215052823879785201565964509133367368727576404365961403983701319463637788026214571131538760542039268559447425311613526520591686144844493180311961580873900961272590366371781121513612103685808031760381632482168328489066733122959514185041017079806278083534050972053449047594698778812526118566746392028707419873333652253702199622562603376821618332858259374533668706321086359483684970897459462350351022330146128483509199766907272264613689701766087711373678572508323261782922057392907643857632566450422543518166243053573127444074591004628411517797523326758973318162354556664716804963054007667709520285760963412929008779625452357924839532747756665233228420597677999690539448661759156934883105593748014759906826409134781268572548654320910888085326405934285479175020851360178839465409875800785153631710071849355444524888934906471838398966098915031909607930212776008231830846330239893704757807028150273356693447454701384565192566406099146593812004251207030534694062676870841234764689925089164833954736390087676178379551527168103784107801187797677313344495105809829419992563832368578125310460091124794171960546570330355594017165883825490080923455425289168647216120664346041393135491439965146727860361205306411678429474317552056606312781995537152515005494148535232134857275041462032716204122514362770220579793938831234897256409360608118138203786816457457927671953786079430809006147601590203892980920175772906974052802566332992388317393323659669638683814982975951273750725942990961169577519219658104349633042906220095041842842189860838818848261352138928400882293839943637322902814967277704015884469076314811246905424063699715391791215141036746536401804215854758866775132377984363471088894584726797284417849617459569547634728938458764124867182588741929820240535457478457617143134170869739813122629803574550930897362063169272007256424684750474223221711646786596245136083373618113473094031389682636177199359745846079967033404719304527135354083926134932210309886344292328044189319560499771399396772074267722121495269243648543714707107912362780244100106713906909084713424241922674639589753063207320096942658489072007433783092423452614127144852679358132057882191833767933438437735640523679637387314447836411337161482497092615716734582263269374819496347708055732209020061455754708822227455629082138894343832136925138808030028149447962834411104549403012756823121917311022884766055639547381172382372975649806295789759090986878648800917247814231121900696726913752007963904248730612505200290424692375057680298761971365151194502172727670932973888367780347834293481632317365485837816332775031180750655959891810822602780256115299592145189658642428481927065828440279072399082161719199601216820120529036185407113124682735954884764668444965370805816771847667008639380481395768883996699566603620258267593569320537527887740072356948251364428017978443917556601854464961754513360344272155813383796425177525875504350807553301956438875146585386752940862555550702265321076782041581406331367184049988016216696684197156031069777344471134865434558664124576911183468777013877994958659418500155356111995933892138389738878843244027447234845885383744975917369827992457073598035846548888187493377250199734675377387209966786244384133982080223061327885188365117972788079465523555065094583669468544532950093642345518749602386486816075388190629629152202606911839142807624848780601555119056637292068776616242774919765731565124176179380957952073415698127542696054953977146341266017204023938207807153883273911967064007468191476390864732425043811425563667448644992287696698394181058878844955372674852737437516545860405133265454617884465386023603264268184220135687833175888986734415800581716076743542821203682044193839373887792221898076049550817911534106891025178271575801422697614707171811936625533942345645635179736137946152302998476370872475606146430318875768272223655840260287568005679061334521335796725301552046861415617827518054930680161678036856675339361734128734334094380936443640493075631830602924894595215421790875703986107920279510106419930264414151835048611167700532546053603367428029942276410167720241728011337297258362951656394489018094903247969207614537256375338367435628781553200487914192893636491134470528476400366019322362977426682916421012684146962792678873859408129608565254202155197121273358636280562353158268088501158068386569750686768609245245668846502815380163797099581145799802990391793767848084839800441036216250825540774666524809008931006315229443480365154706946885534218146293128096059098657572787620415610964658802454539950382907700094455689182469469631865657833624898727273629703410858589857428303935479999708594785461142421196026656127474006393992485383214896948554347423049972933118721441235536988259472969163012907350273898903543569643886493676033471153156036680497552597053933623693608615850683791228085222021436020035173093871983952887882647049644382044374816556735337626210938408172643983228773230768511781039630565570464164968173454247060320192607292745152699279729033253943569684178026578266751546634143057424307602891538332736405704226009821786294606098966265924646196920230068876698232660359198535454444435700246569056817780233595128455311860541914349543340173418734932418859689603340119311266746079481484598177040353695375399843813265411741507645440898287591409877543025980012965725022328410987853892419733077259848721248135742425004687505441782177282911163043922758963295171527695985409531145144957943678144215710373413009906922655906546530181059705869937682161531010479808118001918017906343823691193056310272164908878305001897220866396283385884815236095013546450339957198914625605566625367807594125959848933621041695215580298810140612910334723253114809451672946551251890903099767142407048747324805988211374522281239966807026901781782492739114133293234631535670677620517813213264062420042622399053359337629514762794981598301602267777208980280262313520164207643240034241763031858038399824892229397542860258630341845030770628748388923045921914409219289987489179447773629944590890773988303872472390323333089595378451611055849817201693210722925098984463793719983177048714158908015743161990049794953479219025348125896140519356487335564366328424817331585443969978852659992072197690398308174671763892303708510067008783694426376698209867709685977741233517981886269903762407951359974011380157464523450230395306548522642393062204184282917870384668975844723603914854508979829692329745264831028790587778949088858029407386852140884010124402208375130584267259710197418136880372831108513820060177455958625279791663553565083468793881752495181399698175903417831153998356125584750688873912774141886108951986352124112651581063315751144667319480518645611857668874681548243016877305535400760588855973281203921203012103054929584420656027827402066411547065785708695994331938606603221248143564983082803038207660969596768282836967068049605638784196520123404517955999101271917902856217340327868558169834859663885628223268471535631888724026818263487481575391897638501293809894688965672553198695249659372965080599957751034692926121034787608870888563683878794175393947909341458205582322495664893869179907004189848709226276930829017844676132976747153669636895827344100557159584625877333167282751854848366861767653790694877589243411917391541029119389553058829875409626698430995609931066126739058171214057939588938303410863378086706051788094695951445570007347825824548839103727152773453008380582243234211133284796605638828559590062908428290365311400054098103922820708334605224856703490850513457309348842214808884590308400320340088792430720440199133233374713665554447550183322433366073217858462253835273447530615907384701168139210161794723619198646288498018924695552472829353217789141347160709800093212887202192333130274134075091884707381853303697755577735839167064297231494010153772090482170647674458799921559568822385465705350350147874720351599570803058914245759642149885258679145059241108088972304588587575479300337270230839085192453733850172517298743708527083766356073757657021520051990782160101929115959206408127471047683214835272481137593395197961798494331840556379291917145715757412116644045131705291080390051562368544349668789140772058814196266676273959191986453140006152960402100881259190304058499557490893975456415711515351405403983079134779932666795087312243202624267345429953512205894418855698202974985258356596319628184279064125665443328739451376722264048142709076352091683307465144941367673339677461436427100674547205170145632256747369649542047790675164198726478231051654352655691495288944024606959335871096175523366740667645518211138510836774477015352193521192399711414802752853657483513630638812774838936388572659500592202137197132273728445695015144086803120881550962856627578374415192872852646349498463957087168364980657496443039149576262050279723323793748889979987333578726997477191760605506551703742866481266560250832043689246231592507919472486193939683801136406593620019619108455283429053254198591842286163117854732306799357034964550305017614906205085206958501837108060074465076788446459002303113085640577003793176750177263508107261150251624434861142163228594823859734934991895519831246626353686780599918794137429625803369577669248843981485718472274170494126004509106276081990140635790764890870087322804610650516207261199176691877318310616900050361071486449116440898840446096282758688862540746215703638646237282397702830993635556270822428556368341214051268255425465002802907240995129457791912728683126254050008840705169938642475044790669110216477512770911458162028425484649917197487538747769964674868865236656153528610546829657820392954018146835139926821982676863823367920641051068888836943132272866138739093351816386138464984743161345550535236640007854274306130983742106282561926772213019857834173471160961147227056186527638578194008182500104818244174962177656353334041123425847331175893688741997328307970331572417281380825183402888257516481448595398472601924945138861207893906882592903315324209149462285713322892781838686597508480957687315732243806029903632591756015274718040563188385805956540652817041963687606551324667821636216986221184297861013077109394198542502743639050777292650044648626926363803605336056312811114510216914501587571369948959154677230069727327404134465395209470464473116887363259905783901647516865738528020973151686806616775082420542481540619553807651995747063254126563119065973259897500207508316559335146295625532796919262411231816828290707530679588551840995378827575180769933860385495911164773652518764490109692046385327417429577598687431101931479602460893792494633730972902028038832968832824000914601793129021753431632631405326946603439348433382046742123714098174733148325311839059818665808869717270815843140898585045762062900534229059850042375813340272105800310129203614903769231978259990992279683156369676020942157325355646597476990197978309551917212387166121853688964336668212714403639015897145541841649574112150856629137599626237197347072987540854146170792312548303385611433282112039344115866164862173736935201813823668567890397052486863133894359847992891110575159205216574826784037054380468630697283375179058959429270281068544735901579806464844834054682074493635383686858857813442999874985151051049968315649153565409761163230626026481862964140469827508465668085415122454550504854855882065327716642299447620917829872562389334365597576042447353446370637169971177065650047778476716276910883045641837330572101978183484627925845101727382286340689058894173216656541585490519429362597976055145368011590311583825023637459857738683868518723321357493690828640700739175423451542972397698466538377683801102567119541637029055638502653518580528855812397351681270819067475468419714137580121295636718037776532469953663240221998479224741372046330679577432683312908139698458237545186467952976660730025259209161199353298629802284861692005083074058230582180699697517158174539800474424640758276782064289137828417627561357438777541695779115309236139846215692299257485097867296509668842302577000095913128445643845244287776073126859858203184987655231092327902352550081981194098897010159230538919352292797009995113223133718998734880499522881784137618847372589368229962898924491635287263899676736242650602950328103203292196848912327966402382393805194980519187148754188537708810471547153442514634132680413908541675431739666427697914772875810393739695993534180638196028608301703197524759686209434472157204765586654178172799287087667770205979593123839148830336592100336723580556074706859709837083704399267617142475590627903684574246956953119428267889751897275090821983803692366048520916996818414448813084888806976791550071967115125177565594617207259770404934403428648835067018190086736818769907081202070573052589438022639832323822187912830948187727237560319662148056102901624654319645151579581573871886506124164090922787864548461269772343301164327354466363975260138637003099610481709075883682745747863302100029920921720709505087649378771017427335054138410173072715354253163764946537432018974442737539777746638473352490041579825488401250675499383401715618722067592268280794152920479183162010732006035249686034984582310049666372222149310230867693505387855502383188950860695796239298239341518514060617939540860271502678231029049129321133724395871050429995760070525951783132568133797707105616038126462369898940496963030637436713391109815725331623816492781219181269395996077718371885852216311747749354488488794229753604475069706453257381275620636213078231310038212999438987316965684646519163880785453623465267521260444914129124350195789035566705795422789390467550902907139070071775021296437924571264739596782925003346386201195866537264191425152801399396818323400546139843696222092383360441309536100705945013120107821259874812985541353699386501442461368990762216142837653488097552239381557739341976684044024528427667326755677258296453709277181033097134331096002642899978134271873853198774310382643237231373698743144285157928069301689918546975521847492220045404046861945439068956990104425641868144320569011489026575565623097010327083445777314724380081504063567077706706017443149944260156744567472977762904997197705784843174929073703805779252942903789315403254432569533577395537010169516275014271954994170294540218071660472302253476780806369402394565327337151474002356504077115688450314831381969198893783196361881072756291106852873011440144989637055441277041949861593334328530659204720774323361236529870880963219895527194008519458707660763250627600652177884522679387704498466719127849465582937063950605008977591775588896017036270784891662721637557137005235461185161130992007414404978266788530188488396620301799493748598745841294376078601332590361260446934730049563455531759292044174671002751097864430968412377923797979728153671862844670013689360767602421850161494542612798833497265245493650624395366465122474539034207753870268837167898608516254796477463601122474851569917156080297646547008810683542770056044693820499735455674977996469400376828491904919454611915192331068108601245247480620996493314899586367506037450799953215209919905370540818176404203700738937752891856665270982726406143966613102225021052036340782559303717052775018529996661722476520519125227357522975347034286423862703374291653667044576087062055767931022563285322790833597472948062802233043812661666873555105800778104845005578358367526922464586645559373509224841911936244087198648042577421310978592933884744313229540847151382928160036904104680711528531412377332314166183167500525431522732389039236028250070513310810287031197346645331471060179329721274948673742318332380793563141706114556254339200655509026790074622398849394545442187304965024022857696253518660312178334542297384512381779613812406511760062950815776698299411878770715224625312152067389553390804596297357022273073398572408931654040109181659021621234465960058984507088443997652906264963617966793321064185002361200246913049306182326148745710999355231508184885345761323694803382588082844235147916207426892693569231999595132502099185237028524271654896992481574706934906620693728877960109246906808978450146978371419630989022358271664758071829988571622483047356337018927575395004330879553794307025692558621286799591703386625860090408609000703082452886631903702050866931829444409012263950520098102656575861157687162642305398173706601197906696901910003597322163135661153837050789386428806487757519249119691279121216172843872498684761985594588654826119879067974670815525661057251896094163502146297519691018776095510253321932602925872929356313557168977943985122762959076876406151022880513000004091778826032796944101373427594110542146628969149828190565698367602169672905309183840958546395291226756613602152795627330936601674193093103844121589852471744795174409320987457101854768122056070393969650713319318949685508539863790732784790822362425725093006399371844466278490166781369771648463143776075963780779555313673916613458210012328341296404294656134121374144185970438274352402475423608387001438666010935874000622765711728082528294379039921475523883447660378039298208545091606386597776319494545479503282115210119686815521440356454799583029698121228431930138714203559013036224577496507332823400612091395319767276814785358323133542718764660979117511680313206559189335989084780818322989505286790769698571979460713547019307375708900537933691066910040481587819531608515577456994066857932948220833164785721967225391613942698959766610530247562243516602381281819865401274325213766773510850001460379472353285587498064452895409650072118352213480751213206766721506802304166847210680414040211170737284963315378968196908258107719692558083620767613714503368816460193785022518335218751971587923176546566925780472463487632556133217078064637592359563920613001696068036520876585964039592308791314915711952455616519531055615129588026228646909024759747871628011289074260243549433242831726260789070665842448363637554098845368465990810419514114913810860963268933356713993921134825507542328598968801473213245799857666108586255481051637161077639561286633029229578770043804411735018044028532312233026428796882479357811821102375285089014844305355204692602193977620833124553119090930371426702008318980165869309045473109114609088897908151779487454568140516613606673366719512238502201418261264721358925320827257198434837522457740365471723255663682795645756323450403036953319251448345083176342847639209564162210907687143552605323569697321575036447955647791420103284745152858595550924494697137161911121856350112477891219412334817602259150227373683598431389215671934626568707887023972032443916139254960022427720170798166588540881337040245532448578244078651008358856607011287723209175848232828324846170913937439222602418966003008903860585220971668721680281305947656996915039472785688063133011674492687670346599784431573688060548104998013105981700387601664774071420822655125311597536756683118323299924142292689874056958152801951391016310346067084804950879401786233102912405678764320706719827482353424207522357764122576621416346282800288858186880674914301991397558827255971293465313454437034495600979544818969675579916886775511709123346408462966696413065482243476851924011776119914793241868218761593828775668706361208535266365806670001740540339757955565800532515972933319967243198697701350221916867804891769077967991619388452195928830711818878906442002045730325694671792649889159755523102239293560881628180273150776802136112135082672222383815439021197777593594841011188164048373705820360671934615896994950728643279676945315434624290255893887285940996066786018946565099642711618444306956089136397731951586879626002528389344330220900578153724970044116119929084491682550148505344679171626761266065271143697997229319271129306445736450618215695333417552750516555286762891192208924027625704253034409001280839076651599813515876859541077845758965171293284450787291176500859806178627212573864854133907059787972442159279605321498010873707055348635195022715919187397502442300202539792595952755357705193881815781124652722311633995851454709864701924267347629733784062765316049618589904596067911469929992697603516356340708686663417985818107047516366916047957702800858114307301358204393726845085590573132164976929690116781197994147835234009680209787922071476115075993762130788780848191773764783298259871731874462207567992983394723931134383299805175046196852052675613014825076397479933529649196458414508244522612100311473513220764257264964499037322180765871866825116280270585480701930788143876219651463164223375845786612495677007930881659130007037841124669280785002329354977763826033355214338288899294579708248237863690598098950523259614885307343455709024234903995470157975368714666094651561749327965935877473454875420589952855515482143098092396070122121391956372574134320109664383302885946710794631302768830193356586715715609504679186296724966065140529616927466734162554563176878546178443178581125129799797213458922006448074817931409282989786145476424018842637004720292016955836758352407251672216218607199205156853215863674354506325408710699705310018068791863887240227768909834343111529824676065536496613259750720569867259351922515211090886092884550469744729427055267761462561307175625328555668813414765831797426349810310132390727294880108929502142153743603655533798102102969615633787758764346376865569374165774285584438601049549692006948632524140086397261487490953586046788123433519593409116842380017691778320497538749710841559223098630129595905022896011196204316249623923858598545031612378371267181092399234405626203633282754460354442835715248888088322630459722236524253335971800206086131776549068988005726942055173951298633400661943370049837541128182934176913553689904454290514870812166235640556296184861306885978272024197216742251465101993620334874303603668718861496413744446805970526493999567407915089490767257516911637513731400336903892649653711175340042655596945750085974168341305212593672035799039977669369251858535261695592142350967330903067717921241914919418432162664663527981681673630998474330434058285666274797264749528964618245309275900449989824181760307064857143239188902821501496747340801790031094746821995797646629491717935908580383254360710309230276486170724322678549362880517138945598349737010693362759391166611482622956821143522192392224792485702731708753224031191863522151539537668174797434128149841308245784437448958630964747341106284212554166103361703884403443711129108729159358288957196977324810366726084093943852028287534771979038695367342291102001751501723078607453353373808867672255666479208719748152568857588636029634593271804298998230856311090039875658604004413552333572236779017008828204533904938531494752039492699714423137197802694005878910945562173327250408791291114388606084538427789371508328161801908494990474188688070609587238992248749303998905878410383009556920228988265108875416510827920955988227858935967890037556071448306176948817615863427933991064210074206285315998544986256492613339980089705639736174050423412999594591871887147296974660509919329904988471696080901891492640456558089177555564032581555129122817203778273498243797860812219021208599406099917430443299191187549691557731819522145809733947604223297575145897720273911958343641599126833676090953478034284044826853439576692682046031978138310769341179917152908070569490257294957549979009001323179993613087626012152316097969225819358844916505147011585228942840513053936823406835421951320320181524159847729821908914687004779485970964971681391301029057619860812456287327681868056579855648314262256615117028350979236205779641929648212740336587412926009013925394310180425987300430933580512072682681083039100318042911647342066858104811494009105823352787338691852877427108142731552772352517304469299361623076675274126809431365791604850207368273016420204328479641840448419484354051793167064843558264950873984512019153475178307580641028854570743959575849594481538838803740152601440360283554035731297133611280328129248980158301607507575183466076441756636130439022863552699503647451004690701338358619663716339956436348581404816910935688326849565302079155337392435643274445123563168886361948167780781132638121784355289834748338519034870050129129108341698986126042346127737879409018901695461625666153024951927855928202591894006259484729628500215215764063436338641314889145430365011059226890904481051291709863622975341862164535463185608787490313908038503392300574378876150950427431348065858415128239508473590479050910361055103668379396339771903382395270711129429975323368561578546543541867704373607173266155850209557813533651488920482950495927915237728061369686221638514598915463938745163049483633577915924740376261055218318751325749482178569259282242434219593860942043428399398061289425276082505412792493054800001336854668976924185089093753141509518550204590791876621042849393793800269447816037638463883772700800021483975308312017826273716905326213276952753044347473413623870057211724919229062701493119989157719031767001849225823412899113929105355519793335875379082211429323399661842440503135906267067944509631045175784178621614182603550232736832400076119260729140230475620753977133298235881103726649651232022775453993008095133282226077706675391784665673501133637287802225676950817018568578665085211390235829123208499454646860460920255699098862816402639391114005041651841762328273524410755857052960827982105957832616430305818080735735367916859905770777779182851647754832216558893971791775150008672960369656479520415641495850935553859451782740941479236058856152574251255538701723631690378309893432325812472153857690439641294936834357492318087044737321685332123000068084113283848698885014746669279125675503281832824978805049656227859364710600495598502356678299514086541657111218540753509931351120216530514062212129508653955564931398787215065203031915383736987560977654144119435410525644400513328415530264154402076857717501387959341653869957717184004938978366304227481934927493217913849890837826179176702249528212255298614355922701327156604124364439158360969204606111793318285047358198924279183606041250617191157438392114560525674786855620618086580372874394702926863874146743487276632463609764051479341815509326587178935232069538406481489760869860878536808791130023985891815119425597611760906622891337680043713066134016841138411531971244873536062345882115709849498647899791625764142483380134104731665564954996156593108009800660546891484498445795989836560968600005131889039431168887533209690240042007094936492141726300593673530214201552569965516775788346277709091217297356716971478479115545066117577194611137875524040126592018046687824351834797543831592618929086323379277110023727110728331497597399727855103261970730944074004106202160558923537347221076832640251098552510967270988478999946338813912743482654002582764816443029066821578281084459364245122751141750889978071800897407919242393829323192739943395661425563255953939974502318958358076839727808475274332084841479321661899686496969221730331552410944825372851979345772983681334020229843922533848732249365989852761190328145147242444747077136196077740860930195598867436329657622900560660131381114684063664357350457547032062279493252930187172211279384249289944816190928556800561830238481432528429176353665762910013090093736664849179332636443790042484922661034342087163089525132338179786761234853489948007571405353016778929896650752323684351815707092639481324449481526978048178167985387775117757878407644001048198177327375318608834185049667836052356783740574565335130986437036298379019191855063309408281222572151035681804000205971136601739844320746966048895830960667305218430216719753794601887493658039974457084667249168233819699026260569431539450192019099856646295569785684166531606585525384313945189369609257478787042757922990593913177111858369196379622560534102110377674225906929599536053959863640888064381545213274403011751318044368793855890999167403175578693530507842802387320192027665756094140592424453496808187208586065389947795369169922078528457610326461935734812754226891019464259859747508974947336678809847297801236363366208586038873894379785343887764785309412268725817226556057296112808588635091606756148872429703712784724511073172846523332813520864982731835807697431433757287602592250379837261724169186850515397058233936771161254770162534781471453753093085928869340619913994114900602194979782654588797746881871542150396106226898010378721059904711946455407747368327625758833126314974654764228944211879389078119603652344072262240316344544731472065626507779974973845179282969774077627609879283889562919656919822199904992786029893137797025494153959944196496837552251170914670783897492029461472083612890771387734722651472555319929809819287030064023507839897827018445640287344792318942064640542131472669232955027108021792804989200389687278434051425355030312978440338231121133359616979546061278086313114400721097026327429120851421767743608910464262033807328882168542486283500226584420348879342385611035123696647465138151379030448790695102267778205167714243661665472925346137025096356332158142259282793997889064864282374048860140744064820223923171728142640518642360350080165091982240033506075130845486226951589703223065986276038474948178611898897529730326971893015164476446577945518349056256098995199217742765203088658640903045050821351622008600557509186233430291156561695343249957054701897936888116862589465580521743000251041422773103134098057623173042364618911631563156283890548137949372269090452677177559489767215058043629466805135036808734279273662936772637692688010403686992080552345203873366931731674498991453247532872572382739377907374340292526648055521603015431088133629589066635033965674224900010830668794458104192393604952502568075708935282927350102480940400297556754704849050662040801983054859952322686550286932934773243206655209669777019277123973258302925755124104807574514038618016206561661900520956166429022611085872476664555034584576469178898949769929127269812714216278439317431945868094943542524684582145877924472984641328522488860133323263553728285686388550812749459845527702727114013899529251395138957526001395275456432251331800093654248885773097519040426236679946403856666497031184322860888699264099435579068113195690424191189529213332031271710578346068749110284460734029714253612354666801050805104543864705008034472208026255415029420007936377828010489595213533769981829214256779283882118474368931078278441098245505653857622863214010330217575658106973304930177007851698145638453443672875331461918294375445679307378128146281458507540853869479301400037643653326693943313340733461161144818241974543121815175595322200379642176119694301217105356083138074757491685905636239122989071501514587346326313226696526195685464701434553405328455392619329352590935293929713386821686954215330204353465607187066267752226893746047967840595850341751770913871251529776696491066033282625469524398217664959496454458752503210240890760367058610227107730268639065786516746532093721598710168332744335277284300170951534113544853454832058107275249612643609297112131187630662870064719490546206274140252638150061305512349416363494935955160771788451587986768068838795894561389934117842166122139431708378680108573542337624191285832529839020480211309356605857077392013582118510496285463519346050461711173182033608887762307083596198244150968521093465730626106796531505438173553082196231881374794113649590343433181941130757275100275444736719155335469864136729982953285335373054406191349942710549486709686622961654396670802146696232302035330562805725611463916676508030535801089127352486306558364257527866166820224462404595309715456098927927099140276066200248602076778920505283102711670843559935751227275404917726433142480338489927913352977860288819473167522031009593986462292715946118675569777359133469741011810700802113643411680592688952502720369633846797045669567270436055767005876847311520983963005348023361756244399870101370267402854933991047022220927084946323844805131733775163505402446540886028954565564348349378498149343219301688441884339912547366236196513086877536941253148454371586398712822513145415699978757225214052201910806793237631004387131983171306587414173577171831325738002145397411821338344063554557029980736639993929868912236020632256154729341664236490183204688581079755123639951884220160199959612780681964916547735911592477396358241987042624155694089075430539120814022706811403327784532715812106719916304643647578989988795169325418203077529656324493069643457353519657610299985700751399827934328918214366519252994053581000366805641858779052614879338653836941121398064646141555305084685248444697718336083751400711475318718442142673948952215508914631911474659415307318431093073292152248251636021062305226428240357881812282504874358996232884776726043975355879936597235642930415260364106048876714309958199940717681646352176706533903533350946393492740713645840922219672873531769768655922761201649039945032996154565767708894074565435279350079797454240813581434146308782614769349280353943704137169626857020090062626348564197167057784480280781961740761612508220156237018387119961213983546520600772837601166747706121343133552357310147616814034933354500573463388517673109893833095009172697233878115449583080337977313842818772184661027589500658048898706224232316299941477864102963190727830380777177277530325631721307125761658181347472744185416332366185093973128097333151055259609812515559171871409291990106162965494982590687993758662914258640182135553942737688408472845056183803136514167387316283237664113218288611587303341290779120553335023971216433030907774569376834985366116237119233610475296734871840708732087366518693873946444632809083665161790072509960792192679643136866275843598756524661734892288978589041382374845471791445855689594599129042102325980821882537192847581683766603907534581473399271945831318579403621709835359060593321738790673813132805079954338761927186501761085367821281171246461868190230208444974392002452131916187666596118046750940271517051283451685299851973848175629533123425749319013022921026215275257154483839178831803947851198637789370578621256573588315220270280114252684440069751402414346488260247273126823412535964072495776501693502676003192762578134892229235977422919574704348734831768867310987319069628122792063705959076655831346402724333406986026975221615775313609433509761742166746708863356657371593964326764953692895950829499506633181829332285420459464597798959910658564817967555774373285621254825775052514818311688209081521226941311425412643032714953395771156336626356416053937963968190785096788724340085081187304664557056102736619191485907623194041207493551308262593699587566695799662205280864133985585287127172415464557961734030138473932613187499014996256091274404136414539004406257187068805877727289758531054201602150200146746225153563690382837682866713124715865277778978612928688375259718563182844617970449889451452758735697481468235106503019133195035732772911883820855674233886812219932628713407126577315807979596228488299554136657061733281123948123268039497458067127273928920958889087200755292050923981429801303807646516107840655628184649775973874809988151156658690495988409756733810770262604745339004282115400408074213397180651793231905367371783553936707562942347390697042339759792433786921501581354127466265579182349771129023924976117830679380931145761443551989979413487014955222138843180432227594240080850918193120948855616553796345912873281547508852026822774685955011633232358279298858842986958964137942001305715664614227286618445725509567202508387687534520995104743050715565297631685566493781787208551784846338076279831715818531043752294589437844462298999103152217484092012202524746918396602290072064988137497892980589315550246114187328849102624635001658433319417279665855817731175273983370786718167373996496397080445009015427972321116170985587169930797257630525761503166497651182355891293816722706419388842357875613696922165943957502559150072485319550668983058604455755757051614573034235831301411997496533894680202368860162160902730840517000794086485576182470855390704246615485028396970018655122487613243556771862225217811377134115989331012304016795792989538017379020759587515960087250625667230492603870290204521442691494735597142603868730925659401370593916901202693722081418201164851289925095033806852950660929026821858220792639321237605983783058431152771620098617428875835600637047631045381167914532563738816770056010277685278898629991255797712841463335334200384493125245208086832159605654564076576168758869543521612975881521065801663017878097681735715679181076143038650307909841101536622982721946834489820685765307913930909299435738642929977669887285074117948830205798825414810539695449995097873088179916857763806076587110477593783617918301912522794641172074532214254689673498527370075057556598082573336731796805115381528849743759894875383192230711312045547473267155853526850134250452424497263426403985303930658978769786317758652137012702408196613004100800105298635573016357475763349903706046030545033859052440117559503587254442608543656483978423418469237402856571027253195642295747117851871526193440405381023891530058840479332956740681085076570572809268834523397057531187002888614398211416714618930965689647997670756693786409407885944954948811036648744838013381232767961727475898148854851770260450303090952001015158455285913806329721180169847469140148813645195350137047781835898261666511287912701730326418704801673955693084061664856170611819891525690637138784343942771241416650622830173630207217875361398336113826522881487995829834730906214028588929179983823870471289022741347526037083130777864950770065328044034599777379259481000447347907565025852751796721738090834839385516970325359148509474372735811420529805569284828046855981932044690743575773898265185728126080207012171388837479960902217561921761164780524119889896382632178928268657123636909199645614072274974315737859331136754122034927154975644713628849004421847619886514987737504730419722092969577401525662606036314566844736638194547161751741378190073045620558745735044808696035254538755288353623857432562288684065963273651504745746479225438614924447601706345964170241151415696252675995565947103074251241720148447944896614813632625348630614522575545314465857658222860114334905516091171629903620390708220902069334606975505489429736406228501984568556594415524030597334911844850943715816459061577082634500283257729702668104407588898329090959526523390468233233429562197121597058033696050410969128420575598506602958710679753073064070386562798070470810748727186645628738403690696000294472422981507492172714756729343390273528223281945204093541292201850382119307035292303616748557046737879207976602267845217975702440273385725570299336791072236056222410220309075949637553850349053609720296605652665488865084739330564244708553037556572181858747928383250052645185676450606999152453182243398499441761695235410391862424334130062385783886054520489213881885164949693086676278516315958927372667079180197531616478943183835853931152680012106012228678767831748093281179948570600676399460744162814582735732374553714093262074258829795060077949581228231971428846891720664789655729358022091551832827791793471102339485949595780044487128304396673318360119814826963329657253284356331479994774980673141612893867411992350577730611495152860959001103875415439241992808959208234496285936540047587136334302408670643008967665967590030925444267983199122469553721540997557816968756830503141068231800120069139774335649962146662899668272349611055226721065329146874866651632928054574019266941503422304433919395180592322392440191401533634988312463538582237556526446871609406660745713998139455105884028764604542034952042392187511699439771985004427824591705282490113919491963278774699414657194553770363956801901230812272995306038818684321092878589323372194820550356320063945904635398889725116755120819153810650078425088586254705084715134890730281468469412856292233205602577799161635311691655713897395222148538413207599983846139767099168628423128785746419236972187276756280214013067945570453851672444332166127950049963846885926281205490815718938214540809073930387008453135674195739301122007214206802045337585907654975617384244122033458160236584911349574079038551104881400986641385434212765981593578728887640461927264665125752877228502282060818582689769915474246338304949079770687356087396740957411759470809069061749295669219483929480402849190128663521734464839148933378320733269992671783030908257841749530064728778456720407222443729464469470065538989234087076795789610692425631852501896988544991020175606308531989574775295322011425509324515810369103545717972138874803440511701458295454936990072457360692181897807194443059021894864462951292344362287001938896125037703723700184614507763507997055211470278527319251653930694716419247676397188428173148685247968444872808184838109820807132994711091294543291933664885847283473501313996671793076620122369651829102558030917861011185535543607933843498751333708892629947705665309770968518865092134252743886054181275260603650952885065963953089687939186599671722539178966563552033040092249042020803983087338610178875024089459609782896030854131698737258210219809756114126359379058993206430273725593712008427453467064083808827708464891738943439584658551891084431070848036820388975194410463991836523063777206357306280957211084674295382718960745811637047467043107674079151907779369271491996384565908462900219682489069319391983515092092016332656043028129072261997441437673096247392866838293923421508449852695455070099835885580316097136823989476906127524945383627312123067774504834999127580511463963760920374779328961600281837871554083360339317135552666428077114531668048476784927341019446429171489667802517403628307263573590844851989166120019104305271292039172830061902401741199901752555874376108157000745788869993381614831888108518216806309741327743378177672833306617050473480404095812259755992239276980554976302882114732821704153339878684043419134281521564328314226344828864065571026099626920213159048929865754534025712856025699182865683938743033998226372991673706195182838570380626287825830067254606609001457318585852015600379123469550836519401933986389333859301894810105401243023769879029249900141963999915819346520684067869192011293492951756145120432208588415804353132549331503726984407025277178899180612414348979989252328764731849456937744108294030003600519629733531701619938195862395166044880367622684528581433610634899540037824629068858467465527381590535220903730150193290084483578773683637397175296985571590983215586853816919076937789336836403532221282925256424936697104075969176623907129834643609481800631243078510673663909540915119879797091644940106840209752282310873159066441598709017186908086016594429068973932633205123544571157182744777376427782886095054335180286814366291475294292739435238295570397159032818062956536415437905370841965512043908060736873611611476559459142449849636758219617670266480917431873919778541262955260721860933506271563687768068947187621992000907495561928185316595003718415861052695167918835511665420696454611425909475671160107865352490845708882450580525132945655997425208368798920027748547014403733982755156640835308590335192236663984812002724178708958672593285120003068998456023626878374302495503503005013696396250297682847766502278267001738712020251911154891434480099684841301651088906701396987944802020550972879502410960033396848759209901598878269264019514977520000569549823185099384501104583366472521763785525834877307689036825126435962463441382901485484857586137860503944761636011212463813724012971814320514276329248595502441426396593263648244567315453850634538267686123462901943636801500566657510400379447226163564589660432790234495864562890273975584518992249246178312747612998063142101192244125893731794801523458095510357707559143888407917081309632253488529159817547493566950733132890708024362671221646701356924277214715167691680944376426266860269175545749001945261700926537632167009595238657006090257462483938618136643712609493123681421547945227830679982245343847048237338465628027073015655016336124573591204714686055398868550274814712206611401719659962222739561563220485938641868538059073147831982675771071518238426623229723942717729417572254475412070415441199698078340014294486427916012371104194512952382173483575607945352039904472809278693832006351732077710237176139364641570709753468427044800391608508843223298898281602052599957426664638199455078302233850856065201341729584987360348742660372815252235390892285816350016774320358054003301097469541246114127230988989719623905360605291084470735734871650521456931000040221770074732928464179065556695171699412231234069274406341578743911787748679847675219924879274090043435046860186787299928555395263074618036107442972224289201201404942926264675084923712317115521768473672312715832852217847997339873100878711152316258152265155924732953501813032920273296991384305885376820530830078603120297827948995779402757820686887172611125291013718441594158200836473683224212785931549934304230691323994060251739804716380828680416228602190532622900518146942173903255048216452661377155229040865374604212790792050473175401299714518557771189107295685507842753352381089856079800705079498813931517857671273786232184256968043036062334583792226433089714795950533637527840931148094861419002391551413394687560042336533095828794876590859331065522842508510792332460532816066620520057225804679376662617108343777509146866278712607556295237214803518900293474927119679562762176982388233214453843535003870126339161344276106913251634906779941452344079086234441193543551682904966484846987182012572820005360022000435830822435728253735450544298320026430387463111038044085565354570538957640687780629201881106552317203315975034905895751279138423345620651568363783767251311638320670272298863446309392819004906159123952729880895427587547792304660907022995382067089840616273400071600100887946408750121148921278561030364036636997026500431331822193950648335819312128617089134708219105697350681773587083372595701074396169168990776870721877375121218664361630638133482165472128859077904128359764360209936082422896305777464704904913221994735948950791043634753607962344493873697306351546305740817161383210410005921470526875227122267338441499226152640842490365984350906668174006738911227727526903299607292881267299530409367925986392299018303269475904012931882530719798558663536506291646882044469029351840145244911259823857348343805849339855221272865780743099808674935375664598449348111346987075021859029551056112774479128269571783316852474813529969847255108421949944972552189050912999213374635288691660951154366817965513324082793559741132420578977643860253457114274538432350617576919003885258191138129500533250711220218143391581971518524897801781903456940453714514336093358878800708532484799036190885913890107462454959363150731650368767481351240299060127665244466719237564893895035866541598580529411985075693161783061241768014538813820827421338012712436097797973466371548643463972434720688705172334960958546871291285520162648219483070532019893291864383476381288194711928478878360552888805526597685507182332983340861858072495307937306330168885800827525776453187094436472379859595374690789384487258116797109785735840935483903542160465734496188322079231892787225235382734319354708021620717403588464587039074708393065400748785251060315953361414529598779970093704912797718837755089425356873820753342916435776576155185149701816852804322164882818650032145674465503833008044189144483986373520999946397205644675670831990211586088345214228892456958077136444069328472780008787816435156338539120989763856035826893854050818895788008969409281538712403180686113214837140354851556017606177214311475491367245925285467426555376305153850990145743974200619908602643532728239442252154412355589271881302486450112737769305414825182176685863914389168362488955399873954771376343203336864486917619496583891481433071844586137137956174076571181968063954432796209424521217642677346729686945767828180526479954645931470709632241008096567830963271166588774064542223441181838182285961266314953328509872531677043268413659213788975592686067788936997397728951822406560810142877693408483730021608090211752430602103539295369181176937552131866855720583070481041430992702039900631893684762612794170576737936388561726858095344577027396687299715547278697079750656674896268298047288313691038661243773528275391883838782049183759896734925997770277603466133251237199346150707387492722434503154212455562806993862118391442223308296141754752445425688522087374048127079360383863669023780720803602103726359116914981220058815766357852393879988759517070081806586657014547907278742406450033213585122512463708424562358683627445417930642218460384711872181965692343909748475745628069606387398334326539888919140551265727424158951212839067396963654218812483664116915272811816286386520304659104408984050935593678998842057173635640643132803907228108307966319664654979404402214783634903448584265464339394577823649183268003466783043737856955251917802189519158430917343583402036786077940366039029821910615438466533196703771561873575394655021014940236058457392834293154717006196211791520433369095531387253346659925003932766293568193637053689570372137136332042196624113588968788150326683693529982979881094771243287156473593618399993853604163635743835976330988532306454228944638820887781531342369925135092809033108749025214423519556804689692118182603158382465873222664091601002081345121498551192307856951598261293892616740960694775800119660134606117695779381918341302869931392585856215250524428663484085393397954040069937795720767496586954759744584986008670840490032304426987480547118382744943503850882434357661849115272624843151539900225907889037430840373405402063642397400313239400996185963473125475959711972932533593188699280921238069602246332039907872461022381500618004723764330521706857390996134957931520809027826579289821141103053241423014656229440821806826861418447589522918995690636346465286832963565844387413541904049000069655591725783810919823383377459057882368228512685345515643658384885356814794745133721430280878461538247637583644389559224161497605870150895991366782036906401036027777078115444903571262317840304717655106194457437355179405458795422889950561120139677763939780707895516559268703328242166261465875979828593535285960108209783133514423940768744176993220997952980289742111130119773499686587690210930301552165376456674258859167678179275700417069015237107456126777534507184928285727828661391303842134304303319468383231626449016553494807553938026702000586671870589491013245376204005347651700274895911043405045475888486399891441211601620596745106661511524900950482791720386921337037012694506040053709395117350099685430545996964393928734936120681061751370328839938797587485204525428640792434204831639675870201111396686490711131520022493016511916719611495470901343581698467931778388274960066698585134892349580773531693706691115998395054763300559550193538401121126518513721555732635854857150823860797814372525809603097918446016536809448236123370990975905687329006723219259213084556725633542864366486261809464007118442438064296744711332723927774467268243649574240074113167005558013391332339010398469135883256812878936312829451208797476012077809846677504922045690420794170630571029476176072070530966481833624345401760910058749599611837330572575023415307309321571856461016183054789696590245317050834184237815292044268002746345088469193874294774699479349892784153599686765082579022392801105901091761540494879175964804204790363138420133155204166950811430558342187510961521572039914436458895091488953261798121515105264209417642897726468325917701010199606186000817189007407954448670268888410390691655492821526015396301695490397089342679476925016116403260819661752776476481208731666271085889438002126881370455294122875542681600072405241264151422353717292003133774128590470708359664305424955543989126979232395689491330937796707783945491436709439140765461569596768836625087151660233595933272048671265070292951932246783825556997712282339620759843109865190173460883112471078398505072066138782688522345046895206251472937179408757227880423609807747934132774796039839654974207216465254601031759902032393002331466912464882417584708757731529683128356709976162572241662736996217684226056975101536467766364274491567404675466611780306719704054321466653475110038736945046966479564299642061901636915545796958559507977025274174975074664673128318876005866229677978964362708704123031467497789777355721015703636575568010261921837091751416406464179551840821506881819758069748688938705431189743786560549024195535411741289045816576940887293334035692848608380614597486549211595079798214688969373373256271454542002048217936188703475583967596863741826154713108810833338549612645264081772301604038807282460363569003231415681509271745277762605478950219563175213041314261503974340175630486162403483516003008947751141553312463435667138623079195591025375253570865405413775139786813451639086900652476604442107133270630843978242382664938077206676546971649141016207991306667965079381218692109719381358288557838867518596432051023903112788317380443148053152934154466443398142308492954279386797805833655261936908953258824021771404466417512546741144317911655406741196610775148150984047680799409210487540592516554748245832267540380353964226422115147817703942747741983936628961668285148527533394846770729314634125202917430128632837046480813346145363544500508006500115112601412510295854472503057862052008619653185380478266024773798273745383201380518647847361273136509867479380857358264495348207064478712078100684111788473859353875764449278907951752216151526710661021015196237611792934543657359423867114706980831130654639911095501988847484776325981699773100274890540499939019700338981663142097795828022686643756997811516780853709649927651755473885415280254638914104937260550837737637290806855487081052154574386515912208247150212441526476625821746872220938275396559904324334074139634436157886785134051917789012594457288176191321302879244531345154304804335267807194912502339465624669714316496768531444593212688833354684299206087611243494045864999170655127729560121791949194221456086360193680697018090929684969137169289985338118413225794646939121179686836221924132016148967394318454582050410280448413712401817866227543877662849131138825561064625267211971418865934434125368392025059456644178170688154508941180047633960101991592966107452213365467637900747530806735799557467535809432542156081225080976160486313299170934516160380118255306055593545358932375819709660310684989299202658603727010273362364998278320491900896400698547784622660700317060603671231717968170849911207613352412989600258048451551947909535410879623485165546794854640762228385609994502769374210867365902469020762973642523421898129626486684050099576708342733504824954622567216903364756343505575639240429777712274891432289664100376719559386702841227358485532841999110342533475380923215069700172030164569356003469956610002752162939649120364184606329357008371922335566065611681568692509228904658771313393649311224013684154690143852979275836574953352037863241195812584204578370844569907278890284940966807779500623470432922311987783175965480929208479123642089365192857744606814544689406258759251668379247563828493085282551881879938995297836059601204923126272895936198385081085221140004604168706286857893940530453359397895131866271009445635845599977135177094906422812711587667010901279061751698154820556936376204771147935743411257017822655882675881050949321694096588031871595512417772937955074802438412594512301775625516658455282376305780065411835520080582257314705634870990568590875888738909731784535856780526817956314785885744845485006051599122759857809194323029809137221520784456355657553457222520361251323748914445804722517647169663318403978419367298825768043448533500698786461310943671565218487335557337663712262450960812975388459664674443499678503712500107913597796565556272793981763554648900298539327152597877234563075423686859287027223607614145521345113347951763660162328529299364708672487050716359086739902758904234592967610332193729739684312796056886393279220326708370032901889148396620720829307089031962597054756307767816593889793691707160212386973237586781054432397911937258073390653034833153164417568940496871677651957958152534890822592578722749487349214822298878007158971481649382958105813794924503330846129355216355992838001477046675895474691458290214974733449066513439752014127847335120181930886847994659614544871043981509131880325793255137762601490631926230260797539782693604988377697531831109621909632171399749019458216154425684385190305979729937716461776034811437851061456948348987955200238531540888208483883456334489412408148028929338387551532010433852500498838875737113910656349748398975784561858720039453923435074593013128344208057753105597261726564681282732235857419722244500029116480090262177878490906724609491529126331836441686179669572820670406808038631586289664611953784156975539294214468874339303633249922607406387419917641221794519169995531422792515784432685282139936040969718995604020699904419084602540028782005625483677801860278263651403287908882734073315027613105845489448350915889925210162864203024146108851238912190635969506629193029555014931959150466347594304241231065379217090307843441635000184481301431067929754566964585601988162619908374759316595840816227037717040639504791106027896437572032531724164916332173469964436286971949536254015015529283515721938791565543433424797832730278081673635324274039823957076590182606635339529461793084757701061826227573596527207476719017397288386482591271148347861317075156826052692323218577601452455428848044069819174075691420564831895185314212661628530337459740539395306687543560426344694857375590733168221839018909367045958373586906599592201307116094717972102253409240393206058618066322117742482771909060327995809518216806681089289482754932100754576327941414129813389130378336700791074924715637632267727062394645207960991886472985130620600873715714852923838262781657686331619323323344703287079647841122724281349244613297748805262603262294906504429181147152253493430336393864983248087318998086450900790492410198603702900422109321940596419611424455887730429236281256806562147248383593396837669870506211784215882417530330714529255171377509054975025880162670565705627362343019059213759517692628047409239606147124287548464656265544937587086958335186056760427716105195263319888267120555759020011474532850791082932462021922558831837907980789373162342936344854262782275384516539223756946335121492228774162358217026096212124636619518691986646284206328332353223903628923588597228195612014380683492729923261787010878155595740529395743119039573848815681842372066280390370903722325567743096477194321293155923123654674779489106475051244045936016721207711855330901145691810546513569447809416470304536192550685337911911276029880350655516676723169483496452952760042223990878877575611576610409892766611532617709942192306082315738278316009820777610022823368975989614431834287030869023602398782351917040836423594481966688320851661022675995611202251782595765536918420547345286632767977068399293545669041998103536937136931517942005788655514528020973500153812898019399453808675644257730381889745149521467389861436607838320110504388481808236871264262119565234999675030125557946653351445508129361644863108436496812415159726900413534936262732602926605882238319402495289120381906195417049450214702206634470914249208841649446883291007462633827908763746654150233800985102711887468669978564740826093313770676715326063441756679764677544372348303284091016895222649045159935155124664902604295525305632000858238670254019838469629650776067302293325323461745551736560809308021178316461528777276134557970232090829631347045437089837672445640364051154031711127815051195698200586616118276586352713834969131297331447429368990024309567940143545138284516972938045279815188753421292838829088221505186846207537474962989168855765041494466101096440236891414731310055294959463461098896081552621750004557837802654098794752613132700473617131220524767594888476995803061890793770744716696989909626758433723834616749822195813016002173927130861563888219910409236403763727378664904606900372547657973372257989636000731450238187580095992304748905700447296372302939614140509994576255098831014496888327772919541183994002805892846864472613934346338393002937824106589985791904882998101373362951731785026027874413901721674819974306749593837547276737073139862048780225706034777406609063211669552065543648789776704026947693006834247035328689421117566783242869438714895390628866139383205282828788181145624743255097351559635264048205190894459141452212397519025656190141071013572962079415195885122178373543428194421616020511694124204874205723320026326276462241964412377524653827459336360935822865036831390497474199775113714296114253930520473124214712088660190334904542316506282977480190462876306790420311508551725370247871717312120030781882575560974606054240718971144896990157869975291215857822536169960415011154705028151854153770438382429169802527642975106021318670577648754757455178088093484592604778881988042892565687251785844673072911894005976261727330685195579704564837360902802742156746144287584803960750422918877894353126343911955607723784938123255680163750709558214303256207598740674559445539889026563865322122777760600275550973537840681217860434954821719068504949713227258189272691410132805208396669027074516276266263249171720932348538238333558173729681568426797456831388323392462181430590001761278109926394637531430371399607667208879451661338274448769558324492208313737013246386887460927049740243378678543893148783193298384734313272456941432977030054189862656425555897801730502968440216093927574208512259601969794632844987164975307104789977325836400814309179278703246738439640690791046026518898157135569371336812600899355307663086593014026987204525177486592008970966400522764175717992485061863452121919918391466978246970804997907260299758551839886339676669262417212047176305239976394645316998264401974712908243314123861162468559780603148824751507238484398544467393464244790690956128940785509210656691561530360605276557167048641131465448399022265459480532905139257814964752002748188923323092119344448394775010471977595317638937734771524151967179511807209257679137688515102303664508919821006349493400050655723326567993681541940541583804769209514907200463118317863390573295270639026927587853108283970294007907868324599054005012518015867630670882605974909020745329168274460055113628377691456083420922523017329137371212993167182540622513779558887801086703287482294359418906283116106186713320564391335485479501070823093512880074783485495679646332614765259819488571420661208571917705496608266151377189241876916176674622993742664818041620336727751572497143734046281218528418270088297683583433509067045232927406968514598306795041264299640986996532836467478752708043442309629199073864865083624175367843327443651821143874382290774989777412747983280893606088134055962390646704201129780340688618572504723536405287079511290386336047918545590487901465202352531888490336553127043889860998929721850522491016886840074519673206888327161299344601469681380764912279991549711935423530366352550996974602483771518643391912474715194919930416520231650197891339250261632499104087280338720714584073679640785368891825989975978112680793370148034181363371025124385299143935365302432194491259458714833989309665299008928254031689675864349135209570591139011855842961684834213112095102972726071667333547999168788828442414970692426016719459858167033459788258404934203629881263864964067954787676059816584675640229405093851246443350852325510734626153657909257435163926584227730927747626368551724742964470764864264319593351173165475753784499947087759828168142112858755537277284247385921006072294644184649588711916780085781752408790939991143502531445494601590410347202127194143322184045532844879521518468925535215840150991676134452038660186156629504833815852755326861105821505635585926532590258362748371826432881664170231523314346165181189422645355703294614259053661238950796728305612929944846545807409629773635357838120955388970868624094878199420527055365074981433193613784805992332844785004456849647186006767295109371519532148156751799621656996305518292589664158751574320212797972273778429941137063698252122825337369831532842003611373572560911104427164164263273705611896207086972184346599306269754960994598863764513798538526020481992625330563583261840189237213008761189994027532186130340543941602643160749164831293540969001809929382987629466194422265490873564088070611335505486865399509518678237794407590461777325481820682517586971823772865984063924970987976480132175392514329988749219461812606553770261636628557020228008129930735412210957764884444902081538705850530317050033567527124314829698860339507245156805165829687087887657502255153722775347237866981859308160086835735776035314843642154072200008182512688327589004207370245266762115297238982384209924749010880428245529322511703430260405967994969756579693489443316852886748733474511360508412702772398475492198558742096207758131467361226626750103594869225955749831206817885052122405441282982551128055887705166571481131594187239165757253098327794653485104390754414542047121730138089994060847167874283485988027824303306119789270753875914818529435162865855372564390638846219675445249053421533227048037795651168721659600614863148586334765003537477873643973528402157347016865762851425433232207747274317068039040031385196399020941239296084928717323184398814119508292141417615970252649367452945088364775554168755046466256230809136430823067920687396248150653074165241499997173886617763111908819094929732848270383639783913351322092492988812628413398538319137607753369496070963779543050148301717900219459836512695029060574777465552567521268487750587803520593949744353222442282301326288806543719162848167631404985026877563721922390373282099456227875727618157497709666891241499602653430240504888403890979002971679667408079970133607720968184611270571544548265253224819513025503005070589868589192364952326178985925441752728780716086539692021533086968952860548341732872741427481017499047981106704487914339955875551336995670176603952581298373632178342398900380218124111086837459394472140774375391535701968041529013498468078142212837640652662334776967877496138947640597832359280263529055028309839206181224478407436723049104043829652048096631594099190630054436689494498006188571799824667589625977169588490347068986839879666508864294490486012182339884913918305948376964916486819377146540763519805617918547182864882891284214740122472199901592898126035506973619778539421922948115177506059665078133555864686672112030680260771856121638501110799358642539545598655798184579233500264283246291701401794673774344997955958779200916712592655667814107189574800581413094465871000442277367613301713189329588079654227559191504639133429221448931276272960145463808319003015172311150992893845935885035171455590885328530686195346220605120449577999558547064718459535972650264085251177042186570054283774545892310642725586402434536982484655463423413033011292707849201613896303355413108029308160127754383662935763878351786896507866646855415294337609962568223571326534885106343127029991067633188902106152501306497146154473795561188813996569124724964994911336172055327193951040129017476405327364564888807054570832364182555952051388443083714349646682430201999877263211549915372803251133636375415523139644054485622806310271157974782300076266094513964632787238091887950968140951233105237455334973567680545597649958791268102822675259504331314985388775723379329194595449100229920853663517034659517845648298302109406187612487897134288555740048789375705321192036106940149406434946687701985968607700780498531784526578592044328402474762409560610573669993673990479654428528996348937134538139200425352012882796868988793261157575342555212147314465114165326581071980319455649371172015774002118091685680599178817669013033129296311246602960177613969994363388145231308693894309511218235583056427637832569621378131640131740585747008794621819646928814789690659605954433697379142896067783368643467460398147098784893765846494972901646912941777477220385384870613939524983761228994089240054154927339307175331830047780997839334370476905868027699735542456495341332488383513205231563919448138062504076572860810220158394443833183108079342081342187860479118851420519089693687564344126369715926065122068061271179954771362543537016665097965296643743146531174880882139631060789807913592790839028514381158779769786115509126812702182633888436535232649656060197288267424324059466035411836635651512860269614078336260694160189845189136711468297081840667787859478834559190400250180835282966728626109862795738886637313686769451250193873904784645359084408268806500831198716990424653583453031410086145708474837064303148729446547873197987043040643031689989794623644809214923683348045294553339790653276749285221788201568347593733770643698717766318446045295254966129581183692128597329690779218204087790286992288448686342781479082682605618215041581803827964302213898315155042012733063225072564895324804626115157026592057560835115805661808686659962018135597276128352451037791392755633345855926767785544774337477978008670225231362618173738970568203844703324905210424045586068571240495446036054357465271135942915632333614547609569150389225037117624421541462245853906700144840203180189987903847364285896032327122671829087671134852322365313115404241492783050561557049944015521323915155540164198933050685285064608566294638986770283294509956709214776794118398375054967153376806427386303913337677892031480543827991249829671513872007923104335368109313165492126133673378048180483350776207549035226262336541717610640687330283841533083254775578231607308908730241082141993986939428276473299621209392457560177008642176647948223132506175672004471716019207474462062289825075064338171084382405059596611169003812881595640802393549955603725752205079250055531575289841411286788304358751873043244930180360247946249649660335960764600549684833271808017617532609254791633591140041822581796028141886628384666802780416014688426445733756252715411936363366044296208269818042605861417013755957218069820160530246972686333041060760815711653036901104287397573075400652687559001467227107570593927391770468599835549241816748523217843775756428705049261992263291995338403104511446161570445371437684647185013120243849251185187775104446660736911388494575610111781417638218406336299222848341386195163383068715569719141711179018789296173088623616012673967783759407627606680060836219462650387714461735409887337492162545959162164460187583415388808909163298493606009065495714208864258366228281531122927263559794779013707308346239999505344147920236033615236423634008118911880520504274601075962300219727686750614406127353732895202853426527546784601258916874120271188539374559571490322846797985231100206964137519527634113080713176875777378593769564127411142809969047824796580189770155246652987965183534655133749555954376305020613218520228877918315392431053281555027696310119939975563561173868024468775800378206766542544945511064090567823701136233128025104922102904578284824368321378937075589209963814252343205610368130187884947692729018803977298742869434568274265267738258856444441965161546262112066022609345917919007305031678652825786025442071314919787396140161136777347898345651677804811303941098443679542605063337641454026762134781300063809998947006893186006020232063859488593383165539929255734163032862519907578498988390139524458236882101270532415104985092601338175348176114301849847604111357236214630360765732517065298046874071204527999652831385549740985682050270024042706620975348945088918485545381319350686388293903644660245547969071802282386350299247090580816287202371902341821469820153720047469268736750892940751853758957006172636071426888672806495105921350404317225849927558296602541942882701872288044616095552817419588904080164775147550983150808081002407815534888492133316524019175565433717685064810659123472262856010047809834536447862437416584713731325575235058413965012541276873919215380162062639318180465402555749405582157272271267735230476137684595509222849346318860186182689425679222751560379860321291644027063198521010805941959264083405951884261858137607464864414366299401655334830669223657796243593525951498169884261535918337783470633079518980982549656680291071904060598666290812034682177066414675735766933983273141682740421606184690081972716850665899652310349013385649498318111125561404465822513959280794771340069757005927702421125943412762869054798270885799272593973118545402035534125071005515115001139086678182378484339369515384324863772676737660028806846593066436191320103344197246456279030144878225594341507305041839390902993964806457009931710069688277023420312193393237812184750964691866033472931592431630252700858327681363657976508599306230747624437800515695496580220705325256980096473102286908500630275765683599417501743742252106459797895673800909334796690925037015288854485022403005837206393952651311290343130147374759080861468716898042157729090630283212090540737462064324964555703354296710957937177154721862454800536295466859992580195529253875209517647154731511750094020849365720494981879876297623343309219168984374565821761290859061146786590240802100059609256268039474231837116008198787299980598906397865680939785826659712790121596251685510072107272248198136669327288648204353297661565331323432071012494447455847769755170668257497914095832078446988610255616866700909917793044928565848393843035408180746256108591827080736789570634024766619963814789472081389119382577444907719237448870309958512733842871015417083719337264018721633726656411386749690480958067116323001494516500141352676385554588232648244924698054910309223569674194723646553557342647687267944864422112630382983934683573321215979058729240777777385543152163412635908464136955778062172403927330619899646381708335250656151366108473655152434007083446336524459751500593323765583035827865201812282269351148875765828551023438649303002619131164310061609384092198510498361424160775300789525243423060012079181085393058090119978244100185914862308448273890360171897290485444226432339096508842468859567388193265916051239170051352768617046243418719715204294286391736093100415648309303363872565962462824430761322832711174529042012234288731508460249783552673980654964808095111430218442761414165148882858511906651413294449305161377459060479935677308215899908437061834846420816176132844547787952368457134653906476738388180170200595213720861475903182976695417390695694118399554566885434640567170403525100592694609612314363280129517655036142132040488646683955969880107884728742270028347468597988684655046088456344540239818474247340312159043384589836249409239959419321467272553654836231241617807045735273471192842084426280927109917803681398235661864644492121815100147182487871860925896111725301936284774908583980494503263085797618910066745758346845651449247510166690596986252762727287264118719426135770140997832827794727164421458958195473159324163282792080554152791131149032757773126141321266729677743676023488040724918099830869161753575282638154562227994301746069381510376953084857926006112746434668508617478412886830319436322860773512582666087061070486679112289598569706521336385641623978333855004675322865910585945428483625169211419137851688393017306294131557598954109649385929846200777597135191214105108835891700309019853000495158112938959461369458523723586882724975835019468882143305818995800858799997899945995772757855231698090204362754634753542517982463970684306694853070372059667361471979719150842691432860413386355550120998496228218297147255613104340833200106328050305277209685548667208364966150954572676253885751908802292285692525502960233989670240219398688343539698163319791199548722953372240059808229190278904360402388721891451766956171601308164830264504239169871223645537576875080426780772151052564851773170853092438782242504508914641612442624719075786497643993934898171627194682676248493125723336912464913350820312356243697699779523732324508007412081698943340887587516771994590245699587054100747241197788784597893164379855078941744493496979341977840620392181094315191471870370496598205888619019784369455751480748730818908060779047375196008104624102283608328184457089546945296262637749944300126524176419882211325266236389232753074934408973558243200656043181948320933663018991859276025700666069757971435730557196305676964159267661020038406913609903946025487463075147157352644410285299500563382772493513509993325481532014058467123668372940824327850847961648537106228311903127658017042331885340648452784599704897239190639837920550549571419314881221245098860641616241100088504907327008111635432036995101261336475800284617510758881106035366949993219201864382907446469605715217675054920357679738816518436492952615952120297097109344121603119081774699612155605548782574593993654023908155490576077085197922445038409910667820149415588841625371357513309356030072348810645710262777004907918306591238649160108422048919245372688018909399260731451534195608678072941699071591296933253206533674410998172486981506184596695754090418289746670167911374236137485654233538851585210596439974426727896176830081109942704250806016051881477979361031595899855196328394999227696560491266469040840479283146372619625288376331738582187689565283405991998309635017931191802319466789665812013458817166367664428004729613683688565065217371634919978015719501056867421140319659237204019313236098004622949130387816446587163157621671786785660698206091386554424943246858220331340635831404703145614392537005290559174827460256317796467727307926875413561440786500494626788557854395383816822737951521328968884880428302729504469793047960300846266082859833052692841338884852860190688595461336358575201837976755816242649090608200599600346376330971538146745703548375977908711627446218730571527815358113441520539842008259376663600908523275486014796481444675444910159717811621311069089477149530778587869794158549649364328718672349560255460016672587733996440985500457235918339639405982982746198444272380012403601513891391617404875209089328804070516148307778724656234597457051099399810857322059616142916030096429255323776018576765031118921921420152254232975439789658651273012499272530927157085558788804047368786247398997007042597621846414823256785960111657222833604525816157432480671403766848921274751854662150049011301626889311525902952092509605098403215356982207522430750660800805860660095609925095625715451975363261266209485881380088363844342068215485281257428361435197901885151213059189197032729382713538507142211141340543960490984952195591917990015987864626453118914146179767560904500733688275008635299064603714797707625431425278920488763880686236124290189270400632292113798157281556152501838214508221797660632882402483009841873535960070731004072482033702560321232901803134015985223321382902861386212273028837411899961911420143129579927225614366205527459291624792632775144415118719786264684672831875609702854365825162059971788562590961362680798319155157907032911492192021875851033678347837240271205899552619907055761098725905216720524357349048267828727182414986308824056965517215938435397532035259676957321569231822373309720795897156316077806198397730465804488469679624403085567957729953305863681504973692141826597269570744872177674306683638556077627443302672192167316021668602688764324055092488894745204261162434336757444902918432913758840684304308142786522280092133582920742992924783713895696329831547871329136529873530524935718741791952184430645660473481108907302148941994695176369569790251841201628722659661934542643223585387201660047697677845107675175257337901569213331992753981179977157349816309233504029926576291465681742914035893680099072083456243181285947133831898918737795782143794695496192574978503624033363122967427174409693383652670950302241709949827212355068637451959853487740841269465230424323611333336778375132995876236584029628892894083247056274711597400073548781875121335157906972730390365073958223632931446400986392697058201397595006859046285630125241394472745733786006048039901930894493679221517809910133729223605532410340332242565332472298152028490753362892247721916465170035137260248584406156030668604657098262008375862638027958976239164509716054654936450824426212734932898338575254796234101933981661454626553801241949177012633927018853067243471107731729249584975600530422551681396543542294058946509572257219549492061541959516334086146077621103946466680734014138513564374839580673286154586182400617559341648702077912136060059106576760146073648980443927549451325151436669764492198858913218025742724262601535981083364834986416345420941878451831449793549283639795676337316607001281746383464749546254778771967025406779968075991026832201231723380030353773350712300531835080317464199177557580479248260177661403874224365929239371862248049825338035161436389601550475073248054976228888080376125029237257631283910738684556411590568895231106033533145466715083815387490756412024683349015977854668158856980172582750631173384684813839877409142826170087099073966837443861055496790079600696305253080108472066140766782873521420127181173795790893085639961484012432333228495941227239169676689462023709764344125255136342876139991554505763863591809831217193174486826007361958618680012576464121953820481421632531965131759543010124426674263554813756089435573345336737700840257500309026416104007946339964250226898330777912023914277349956187020079413150807705156013069204926117795544128417198504131450205946649677586195050275843962110568960150771013480846190479875604459372180626408669402949897967191384128858922434728123335649513216410264194580977191762204783334389921336511254823364968786023563103576859804067189416375341273431209719569212652208854436503502142221870070531809862021901687896994445658421114320358235373596298629471013222282830649238141802342686569460126918088337453191765595633481100846613055324773622431064913023580226161853824896939647226622342707933556041529034390635085012152366386107621308483183639888049744952023641600327933246943380399344206095796659017697979865137649136825762317355261474683230481400464227808041096872818776151584117816469312295700648462708999273721611706890052910722546202696125499373434754345510231016942630319618344447241086898966897479609876250118393443515604284859693716600282449187777211977460333342825580842743155038163040610247713178235222183028089476410540622802855748503380251653707088846886044571589871159614289696909054581960485399377826022319774563000110632132338485380059637479177966323233997322899464844836452739371066411197856155746181433351514578947258074266583717919645600957276685175029415408457004855593389138436760492944864219912002295673929804072388214396868184942195459036596586326069308532719423117820874462652101238161546136721919339650508793963235049025175984302273486642141437031007821836067888191492392342427228943456514895003336522710073423384622758316403087108525980892232838585470211362773218309893425311145160791907920256189923674344211351538100192884484685391617714072416679692522764337735580650196310661122823497620462860527973713241385627481918426312794199419143414025886435051851030907257066147984642215253541960083707277737110649253753078672295493515556056346286537139590457796720746327849626874175408785724318915421646779971496161882994436989579985947904616800104650443077431400634416698323321134530769125596162788591002635704613596694496585543126458957846517656850320466730453024467982783718927107886373910890443965978868769814752580174966640304654691951141303999360187802820639142565216657149099453531133674337055208193310625403276281176561003877170245820281769497718985933292460722901738449565280683872074406481907007329197779643876539245732063574372575282528723712537421915673816948820646838942332189044591835696464360345230085594247652697339176087101755593977408065070189847864625875347897668283879861434922422861183318470943711328512007528297952537126742237196142814877171409533290657965117708452871515139341212573863194137073680684663380028864424352788038837769098292510586431335655146288875266808876766255556389501366014017872879546392916199406438901984540679918376758317511997020420974788797702411163576329693068495209801734770007342069980435890116303118717762723083094587349827386135704180525992357461915380057281060113049495884269886462693625371757879312945917436909720944810573091255582152951361680416728009330722989508705562848869495921373189433093855630217020081296490912065944030647056104313732037750770330820272127598367250723718721817819821971240588695637036271454347258394842705090535925412427001342808314484819141489090221186259889961131347271415169977429165822157083976348624344487785883899006007626356726500463326981407447435371043316484284230393439534889709745139769643072665984071682497722559099419103058003436204739213537670674910840589505021992765685720160897441753175092079275573705959159108051066116681221955015796949036322950260981633300427463691615441811616220117056631998000456523907507029773244103248226515623651528324629360856040447890079738365588419388009927201327813100010550515453882694129695328205080709045130573611660368568980703346397518351335209204977225281041561902250493447862333928055140264783227402875547923904321598975101915560914484963440550820146080187186211562245052070670626567008029277947211467846799083454364725372725281715596608199638987443052014030339522200223108872773616435704549161427916018967059192992867587806623258874563301757495731290470859633278330448028124218435600619161359428355782613020989325671984527217365501459500137165970834950229607177928260137152083853786723668952529170055973368781881252224993911862668937874587151274261303145822231312891822732173335487877242585842022680895588228054961789898048191052246357336122503940544438660437277013120615032691928567228786040538502393359520785165179347979631725348804463891605180148358207009833245948306175247324903266082686333286511419231994386870625881525625424082741205969668137084351685558083797111361647085563403758484026881367162572222423893412048561323091660224643524237615942810073877171922434109887733814061757203795830214162152185080712332605832813331474989999236237228527618336730681041384097081154856982440619061700790214857686732560510571310708686960620822586081837467743139107393578112159707698833802245090508972472701113932765716628000390512706629054128563008744095089808725428947265938983357106814382653963406982860254434371051991418660290399905607963959152670090367249018910299488830418104540188877497582738565385049663173698047149520350010467957407869639095617417595431869770927467805784834956230042774753907671961357129692815892892404867986936481973194016697768249221948626454236539672245566461659908620071808842765508474609247727805987353566613626306800503716173813594539225641511987229464540958159734591368665675109562902690312498667717256207511058234913018678973644151201002921916283528697738445956772170671443455347170875544470698923814737167694120047718050747695345606301704538721767191005482797793080096581985596678493746432053400969985635447548574066170745310594519547183669367566203197885105170741622893865651327854490624896422886279115454937082710846706897335382252948397696681921695119966430320865721037338140661385797146916540007354383833158412430171866814745249859754817315070910039080501820200144439972229740757957796813836265554870975069096773547163674636425746241642759673314323516488452621776677688427633874024050066954740095850545062156331338282030465151780610039585381514190849233531778868928412832928362499239512991472060256905723090803787278326628676428170920114142064668715682792308591548706964445237266791374450034671708495013104125944870586708436382783945793865780862952540511804946875100247967111838245693719222079508820760370087826986616070517045353741049521681193218063461067435799480414815451482170232878197754920694770186282708488356063404264204091824280596039216886007663893233437815675127625754189940559228345335115554843913985827856919097905773707296487815829975016446977236922500775221977206735994039053837021878411827031053065070538914305479494259613642905271252057951699818457856962296640826286603735508819439957588935196518375257457008475459026864365316642260049170121564783583626445038830548082982140603059591837579831019469157754304686387375994162288547414727077337080029432422056378597160725832082653581208860546796805540573820424069582914687572767033115880927462817726589692205750874035436907739038906070697168830688190720634387867792351557264596832895906422907905706481808377762131203281034722747201673071849620282807895070959849408615946157319813335079354434897275441442776875526662992916491460882879319363781826534977580564948782816827891119585536494556868535546957474366811938737506916471789223619639052382513776870708592427014133626500991150011276171341817574283927813743597348651000854330043144178941396333534470778619422120616511604655840171445131404864091721665975255266625532586783288465877554302670813289510562851933716706184202939045040272807647730977073085860516691076050004985992768865426560523367730172395769340694613998293529826868376803368102544066720359054916277740997521418893979864473150769687655904515685477608080645151696035298973489917472420025775449789581193009389037022900217242610515329577470296075203429564650621651215678838576004029006905218260172485159106897278104559591345756440834817376240364605176791318783764447149113713843651616002040070656776698130706052679698779282010631524318867617047118217414000949586307707535571558339745024813707154082894923322710926802131872705189112032572844510865663389974693940476905980329082455517298366594328164290114188032926219843941932302050906598061345742274992863407151559342044426557330589502354740125787411243296270092245462415630005801076656179973265303818641866247950425417882096812907121610835256893967339866660308308945355250426218786338611609034116084227265281863030744280386458254677161551555810974881371996987626867353689070483801398714388977961151988999972351196004459197906118670159136898383083697528594354750122507429260948084839719684775023368165298195661270100387640213608370630358963946185144440119523472962651392539064658466961712066403447538201572228535232270980880229681309761935000645669074367526187952625160668457267465217827240702714615477340505000318364550676178295428186183684238352565564773000636475476759572763992765746129060845344013321665174930853486573729533992559032749375501924584704282354680777980213675427598940480888407398348049506015260286761708018681637450002190426863376037071430787722058543385896806340437458973369308707565118438839739529924409180752568773646178871366790010604190907898966268446402917926241006260363381217833502165898026401601028898983498241139848821412502048178370966278015600911117435324317002928197619622505749102598478774643991584294577356616482030799258570897414663855440145644077439943846178123578433263455495372471272823652076857803058642740700074555657912629217305906650403354918897045829857607196958053858783370422006163576098387077248484757391132056478722017229966909840303813583710956968413142813533761707278367611321417908225795789398349948551980599330893702295284057101751746229872443471662373075802424228646852878385988642362303381260214319556852450401840744927308320106316369681228204216870478966261346808730935844957366680057212173083731955164486656134670306547543237884138702762412893339244365823898034131947519659131729404721367326398161511517008345486903758490090596805412928828785050904585175056050613393761529821686009792550210444821301840337139618726651613350749254455630088550188843620068693589262980653155188186108335839578770340364034124747663893717876540609346727715919663490569149374005321797695701761625781166328164643477800450710573392251629119728977166678113377482322582851968363921708373700063750926965294243918474001879023517449263518810530247816867272712846181004310225723982762767599818729194241281812125013611075265009777162903126270697973137325476318245548380139260565602085857120001743054058236233226806378977860864257424530234994715458165948898036224187956703919378767806510151925207267630381292341141348332069086256722872690157864750905502805697317126994642128035154267152873441353957778203490052471498785037938418091660803013003936133267089804055950743181730865453750387824908532978274259355586905459793612059086322463900525290476073288789908122874177781088045185048543508906209809497942532991230512141330528508149150973258540349025945922128775683966127847583773978475822027879732047107262196584789151972772589888559534755713370611405409265546192877694117824564740889478140430805059719237700485534502551700237238326286249367337337957151240297219503747943790955756248864905351078028435064873361229515989458052836251036926395469957174945883128343193294260169737568323292936178281068156757673435385033522649666519336267946366628323552380928769081416995603063746589317251501189876429880665159313410540380516171843486666888254139797182422136520700411082371626584444059098725142862517430179138342412362584121901528563908482845085021008525794745877382512376372481659978874297845383552763123757266532754749965870869013590119293678694697040858286285545924263230455372386705584290197101458451356970957791349379850283025386460887181779803789228504933607966644149896168252564205425284298784591257305816775254842789230689439604169771924846721022616800163534876315351678195241202434717822821836038261370319747883108898823490892614204185752996801411276183933779543592814667375410718499252788838165737609145366882068165144506323129747397383245091806033664943411602504024331601206720507416016475032818980696704746423170818958856565401259443047400772429546346010119761287390513069312288383190635327536270044059396672745051850409605029056776236979300151185722880810145458661388424415534824957385569748824140033700600295153564789089643460385899863968515464306962530322030823406957944113910797229354888998886904049188750962685573281781454866188027933678200700283358398538699721274668818872377820907473571762946091593941721017494343424409514049174521181665120113639494102455768590617933127243042586174302543108829859143531266226755019110600791232899176720592095089823993494596811571962048342566579094217184844958554481770809898880628701424012392404755494397821885362484750273262328180808966975130932935727668551833049126766587280262137397505970949186126622238298711795648823902245417783692357159840537333128676431642877871425881742429805661206560482376022331617155308242585389988593520841334067182789305743754341844871209630141390422078408648640390394933849488299083018794351630159899273548069324703287056257214046887032275919000114828105229905743632016295538953042047299211832759381548216313388573058785583187903833515218848331779017767254751063532549345917741872088799409573392060992113903388099780156438006235417401155723646531574913387924062156552901561730822960841209170189473541825791059922112808136193636838527841292980280018816851400941502090524905801355878218453548262145607038781777460524510150182982758959616070609558284916152504702016897869614151758946947109834356052968936835422025229138862873296970721649672543352353747340348233633194041258816829704272359537513697257668230585766471028613930648029509975642002646036259864951939717233592020897674092021293543069725837744154871412617859618728652696461541438279961565352327044184858012793072476573397701571483325625087790178581929155894459890365657695882912930009313886773702048470588615315256971392660178378860589256605911393866186894381691352405119978432818591024927723980121368064005220904998936878107065782701300040255920281616234440870160087064920036651965752002054143286173756513693383485128035424186098982211261827334670820957402169705562439807353689698736749971728511754844017701505419925524920721189547137908074975737954321647411303928301792480261643391297963717237660302390950989124781987540371462659089512485260418805862723504104757682312590850792325292650382177381104699627823155580391324850628546762165242305322690451360657474114115988632122803619613738980185374771118296808402732071922172523374479808644643025185623733098331588218699514252215463483562378292802771957424734193956172236594713555534933141409744618881727843619228199842940174462528112677473336234783831912083668301016030810745281985962399045749377994665245617203430977989499039028583793786538095522634078199070665643048853881789008619983198129733831987411215439524506323245066086118634418382865553654432564154820956237494706025500867714832670952197002246646733909626108479300789993511643070230749981416182578462474985770658732602475282579790475902314749037851390759519076758824236525724642728346665769740127712212225478065095270155939490299578584496421216167970191303261444648616853277444692376728962928591424167698252990118911851489656636545922068756865853739287373497259336832294262363316590349323628244446891607893555895351384936990863709902780209774843651722487560616702516171667989087582574946222778506273366863216973692169274808367849855091919204665002638701282260645286360650494234517491802797011252122048814771713287840977133640035052883907416233835254904267553302616068802555139499307350620907230643294067999204208377887633988261534186990709233879767260199702580192449869086217766195409238955547078433284778448899957703148454526471559226153564071462816139935610999439072756239840551394710468649284783626202222302937747659050006209299478869930686399669501774242673737783090525192300239923968782915762208840095687703451341490442847378115389358121491463646672096637855320072181662190376307169227580731928349028444766331912180494701361667477838720575778304538282024387701081345436467315952183405688630597192868670670606988003828002848257185565176403075560917801910407334136408130625473289744278081625476606080658604035345485504861400194704507016775195881212246361223463841449370468770893306605181280419073078166362154386987221101474444440183350196957074515140702806281756178021669412346913527530699382540958716885077542865622539320836092462743443951539620138187319588558100645036911942852858829265070681228578336695580160124332192691913422575442244088866349221253694004161935185358852929158150449349156524016091293897624279331307518121167108627770987802779561543006275516171076763662041791804258834719482673304394106418959488847910666208271963182884207945667608494321716288265783290256134778312145798587016577509500926879829505345953010414713729563656372815624331528916858752724426955052533186270138118784620498546580730150251442296573857121539937459570019403333310637005775465443788156391819549864385332878586559142572710590433678887305453006791993787412551624919423247580838796766553402507150421980712712418180079019967239984329606543587166548443624173774888945033131864920078339309136479119198727199464157632524183398428929535020963200588855007603563747719899742073006544279827538039591769950874323152198941657566817465037555447873945797773581699467947490513664752587771556246832454577775753788081159374599201412318477934363941547597129008861985636456959527718830807780545464691629356994546116006474985730681967214449264613649498429307147882664944395317441470979370725528402002182200154775479421897093779886891297974940482583250829570570062926704226496427638388487587962688806604782388006594421897583202812762816334540753526029585912476835763760030864872426940283254325017563881745561430316754172098997874995047283812516990152196300887753554113959104515926658889388519080907735240227260482403370411788229264793073823890696599496745344851744736595938892251762203437753529132376106225365498120438407231369709771260193805484504904034747643864324529539127809685170522126124527239955157150057556410697138327547748165053756603627804937789308578218948343544100371332160518261473830895778377871837349139338722511171475901612030808892008242191013988162338347627067627118175785878725424509873393651344104085616192656061087372886720941820674817467968334996451157520559049333790898478222068751024822228812831635504143312764450069340142338813241697725132396469628035800785095349096648707625844136395136544449162074679814415274597435273063972992958978731026809386935817260255447833985361977616303564960032960961498409348727058733692984696788909235731852031852243975117480435396640691839285109623035400843960067107896969653115428179898205603805588710928831364677951442991650500542411565959687392111498027050922900234772462032865987438276398072686411307925875714154735587879868416631451539632752329989328464741034375251603407316718991667250449509043143219670177493093743917169476199986224511127970194009971725648077607305211623838372293647257513682686241566288441349509348516594570440827090882691923822345089993007484049084472641240537332507001899077664100356254494516915011448076507605902684329390274855099732457260060083664130160602578710293466724932805900993850493500291258388767466069988032262483710559926726061664355569927612168866377347929239238675609062918579610026182437211514754290733763449215368495621604160507117560801040489558812071735634762617688049482906701719089447233204089102067232298408018864263857382088853906674664521936104503133992520362122538293494562215626653998252893994248100752643937624355607415673857883679579440552146847235322310906414647737472814533441323459467366597567313304410784039543554928822538420620321954504649176931334832815858049179632182040043138340078062747347884928096963985206428635852050614635045394250532480039915870733441344488746050842732008072268187924050053547819542324039799537431065969817053262407014970038066591395800346580054022413151743000515575099051407748390002497188796590334583651346293034909209676218975496570411196290564949064610788286699972747658275497733535050346410483096692287402102457279083711391850622392122792591450307267332649867263761435657064770384722331688661436864615574266570847885652838952855167997471901205228739324955511006150866515990307216462155123104627894115798129398639034000284630542576520627351746984666227783018494117945053638309306713647852076663416543480652197077966207846266105502541120253853825656559883380736248043284358267947104183885694675313366339303131561717766470679013160064718827588597656507026705005032615862913373185240295024186899355132723036598700031970597743155404519974425201030503873629351617304607205705228984474775585418393495702718676322333893791088225348377716166606591010606124907834938982492865174985000648670909207439819021881798661748268595510156285411412588106737584711481943449396923181765941514958780962119102505339915705419988397988771543170465856417141882748695068699657962784442910140262702796750214285627887837531735444568391901707744403814531033315131241541464468762572007071038252571411601199724508875025458385174945359323604136861611459206449343759154622500852423372489254044510805353152173626474149012095787873467684804542788485176361831770077960669547983019480475160610118371458735160898286638050968903789281304141614025504627910367371325903050345602515357436887453093734737477406963247883766502142770892885106656996625846642435083492577430143411267850916741975627295091819411639756125802115469760562854575137436857269254494572667080843216153480726965143316889465908776198803224174302508300024296653284024927149918978446043948619677824809763137156195178233485953990823911187031656701982847278390027079983031439051160529189645762394722606064170152121509992302331151054640209862742368485608624658996074922473490231964685097245383819245777287844556085470701535832420841876258456863515826910390632679132337210144699619800725026435981498720420012792723622162105196641638470133106599077167530581076313137716871204418124000951167012191938230350358897176006982630065047306111218290587355739562001955720993167481369151114054813530549124857941195751300048258872243543936925016954705229277592588320013470988872640989928649023296932531589999327976565910936243132714915596770316301565413393961143981257374954686874840876122668358880484229897505894583064434303244979918929930330597838691620327991532675575958071881242047444079071352816140363808254623750130398107427861260178640988361957642763699412141584886566521244071612648041756932184219223056319996372492553671735778866804125284449541078258247004304244462507910561473752540843449411269450769338113877891683025971157649734364995665015155049361507698190754101501500971631893948766128478628500555178443779677034941826446208652054950052986544631224966318995810447379111382946055176888190950625477776953196051983749586368239289251960445625540815918015034424413713425616693244367620589270167871316321254834379184527185443270355598678207020243162293724589754821022201337618887091950719296128920932575359120403892223326011210269634822835405449768914118455661504952867288197863517619902658319710202095752335304392383114462804318477872518762997402537206227301807730323529801560308737541203938411986743211750908754912276690656881001945863729256422020003381504081119840467679044303551643208235545849467331954720980701749684643966228727518977636824274164613933977898355134195227913176690191202652993997187580380942788605854820706497828597220641153637477376970764776884080306810766172710760607744757086873850941994468398984313966676742853943585939216949985426113152160284002767428542216484344992080252313837357319992879442674606836551715280945625873833821356380585979432502229987809431573967414008110537618436159607239346986583819693754222145148622558854762220241924529501279606099289263715692089493602542751939122761463185583170911801332971459593658585917526861550670587160937460681816679350661035543484002574653616670418465213850452763792532587049791863650043150096293113167185901965686370893356794563719344127389780995862203990248543039568606917886171252353966741498742102960595528053644575366607698362496088592571760233250915539193608315430026295414854906829500994998756963182351139491775267104449130208794627840805140493956734428648727742255145467463545749985308317165363882226522084269995209316781148826824995200435892091348783117067719747044943365757152179214363883331703326050609880932836211465549783398363143760370426805463054802943367562387734621965693588546818919118021264209077531575487277992604689985030064462315464759232679263674236454545124725253104443585080405650583853101856197028302036579366710555592001776135909897195341171758814960425205382690669488471105012617827116951415904829021425969455856486684096966113521126707878412249719386515656504487120189058628713397494431765384576491065941486989750611135676271290289954349232479593045085749746554013180791660420878484209436870230517419136776586978565690331043445444727218769938086547392171599574648475346013844008851850557218104871823410589814412231145053378475160379902015122170034541550787053430172991998502793015116193430957509602208494572363149629586309333515920513956789024732833055203395166727763265708544101606519464064989685489862453446810592705452300610338069972102490743919357733136419272478737914914486474531465575697827859376426640903969299261686597035543813939814846929870100163634519781945113701729757514313953587617791593403536030124814905224792913085888813881420401634993315144032295812355412881211022262859573303312331627695786987845400728790608425524424031384488487421022404747956851758602765471007866088427267498677872362310755667296386963390823078720949030941374675090243602980065222846773268381784820266722057251944218141579126183397240966252845502823036978443010687420979466184234026957708970779809321853613298830274392762335429250090706852298361194993555394615705524053792052142410502756942991330155464404150239511303778252460964953858343655997868498499517925302217618505525893172492349928033232022078889254553545461557583146781803935414090713906477014035832314270357274840460150129618026376166728433352202750671762310912983034827332026277604781529765583176931074846994402431864920297477797847806213079859240059565200689265368420731437963917026863110337258362442732724490132296820826198280346331058469330755701812811393179451009628532344619038957731210589007833001211897754206755368576453853844800868541915496869198761476790036664624941409817162354578906366236397015143425527725202737713551404733487822223624044514125677455852882026732488693404061685782102003702257398337350066448819910460070187318270324271447598337632953611486129502096174796995701037135489984682554297180509217580320012904718586731225234616036242049010612328375262596763776474629228998311898581945204383042730041224613846942073805963618157378220789767931600673524797157970763335946274150003971018341754887702067978513830937441844044199451204919505433854453548842575183615950113218652232030519497391288004863658378631707385946429816840934234574828429552602124692010743457671930024885321405244609870864884864544235234225559473072712102197912506818837416276924572712534282679981869108182524649470261510555289416868730315745831847870857267445821134711988413640870520138506803167759021267812498644469812726506918232522017305712948294843036434483753435191806710595503220228972862082938230230495176443496732758759404441708655957712923315127506041475326292389087051477593722184540100762901038299726143631041376338078698530817567260567223936526799866118779154972650902539875949950255311694773286913718570402511360590293799662542123073226561760469068537273121564461826507960535603190067974065549954771842570300336571216454757532453406536643918820802196322941816199202677074048555440076469376562510310851507418630720030312503362460815877268545263256584039028382368963366859424734866411871650267855844225356464522516676394500346602507462817293872566405047769903481150856131351978463445124881508847892788772693463642197946710783877814689059023497118589105549115735117494453574244149445056351581747470591616127946165457872841859244368785921865316944601331962215871772180931301410010575539559527652251046139837194626715868695975873920541999873508654087085420716083771851613328431096542231353284073074141586680305664455427440378574826281149668756407171307862492349632220439026442548153332890572067031791946690004142273328634184800767978292126576514559774492755779266768037140350420048490085022919380934744680639156397203947535437204984276737132583631060325576398036217953331981972265011538031588202416833917155322490996463844227957088321851942216337013046277471761105557877093438778270892097124834419570132606092707825423999305618426157366579089840436357298311092446832609854237775834388855177335146847514204284997242509222999969443927744069793250109783484456946095461715817703781696814790284104418962150210531406303344930143387255630767722959653545287979524453087674453651421242232451662236135897959093688158233941194058387268013415450373246171850015964772308305859146912479898234103251702155923636770473088166020953687283594037933762303369702267747534865720304230986782231970183857479205777555305928178416757010307455442225295626134499340575727987441974134226786283444228500112260798093204766114791081395862529846544435549435785407235842241930883412464553520750038789840592416506889563875694291541134012541896342128624713488957513955032646793046902224972399317913163576862507231037583551364112050785094170556952062559588584037701959718552678073730696510165441967345752142324693010582069111139298757461503296019025755899940457256777671857220692901278741509802530541806248683086822554086077310413101623293188736729689658086740509613575087126426273437476688867591988736587447706512414321140678371047012299644596221521613978288484091134206026776331494634951796063135803118497755393082598979809386437753090259150677957089312211893659780314841810353579791006284158752142141010908783059517871097448726408267660327621686802129572217384170425674905221451062142270182518298823429108764852595073752346780132951640369192671869989292237307000089898556512183595633602665145741819003722507516935405894363175244578946054953355296825729380772917503195242537595248444432552742178214715064228085149897444946959732106480708556179170571184057844594208169423615615144327865473673326429909482131442975522959980995156815456005177249739230824857065519664029490147588217158794317681286401818700461012574374776177472370452069610980621780140167108434121063000700129796672517281912014799596932342313968971930378151170502545514316328331789601974188191043931207879590141792106405117641916666525268440231420367994212621183137243072321067012911201539778249899880843998493817749568817580884037638916238907026266985877173344487909182105266374025861048637789160823535870918645345567007187279109388351575967919993790959687508650946636784163273768767747134630542057888385826135427843930495452796249769608392698362902635754093763685904848861663288851229639176151641455479440374707926954748403359558868648298088635792536287288577471194630206047843049458695160065725999061314285307054983858056664826682104044575069879937254736614655054716589457223719441677536156652454316709862226634887574859086421652878952790112762009611732161681865044456122500112604561850732878559041528246864570556195897571926483287704202206491654327692115283927214029723046151711869733619142363839579177001823874884121863780682304850264747319367961560785410675719944006855706692275518035587818851583781575639028371798034772443940179827693348316102667938200317850855717212726061981861582795030379368673124992717437516286161877583325184128913866576587617881212931083631799349136581389970901787573032900524004656435766500613137572494461740666016596384349543605758785958652914439760574000036167054507340938156730566395408607801881507694386832762782687440956241960957921396458374758271892223486488029562139230711256952748275192319490019513678295631487799393929949311449253854355135448769742788914808540761598168353540819287126078377850853146678129182535109226560635804543913370961956825239544665571924458391293596438806212305555855824975781963450461854568271406495381916247006364454195290058439445214148330863538386666548259337095508722470512116783777908228234433095901627561301662003984725342706802262542790101889053482683389475789326063845696325764338596807346594111447850681478993083955383785311434885569640949718790109911959709300732999171120211062816515828226523995645431968307145563980080734625299830579080165072141887109271524428019586020482554642432678621398895932045216012689147893491329459397845927815769468159626201823915986573486804443712315273013294583725196415083011105486079688173594987340346397138924998957808966788794918350105854166467326670206626314362264274652787977023372574407547903416255879927647258449773378473434464461995590973741698643005481300994179089626218232641729466072351766011222010233532727316324734365795288382570542042921153764058193081316834336826314863474174537709621650308691780311872190177597391700275927386913971228162845434523646504758442679086170206283011551788937371514861791257381746384841111785326985348535943784570057739170544606039986665608710822520364948412522017350203310766247169952089232858154699751560642341868972453184132473760838910361169204481018464742237247667525431606236029722709252251666819077196143542474459680524353028699171745932630966505685947917827242611388720080705581640592356196558544717270428733257999885640602354245333551126677046457389807559066288620353852833877124890182612847813103108185355016741467985134926301653109223730122277936666484931306907562705671934605699982180077124359793298555690154510866473669456498980134577270563991682046125344569612699804873746031559476325938842658374977763951841173943589498523379083770367091726031487427170933863506376806364613444958872281301543120284048121346591938216126429435609482027623065861623100677091844393216040946273959581686252608633635581442546330915961593590222783305473205665954935084262426136120801934977883275543704466668017718088534765662923810597834936878626813829789411090267786903339124175179216215540635331185630677263181215148144315795514441811386797231895929804676698691290008205747359644279189509297171824660419781784984312570714244737717213325872196523309675485581882948114061467968774461977476557690975921163671397211595939713131827821507776718848488846037594352378764329855661986342757664580484767458461250340456337770131171245111042805557845830927225328340899610912199315155020519469615220355860498524404013669274953312454875741852366380376996122957021205463961782857750657557786679073162716559661620893161934777852011177982703709747276703885685804363683580842243619611786110191826063840396541740421967294861631674717041780284787063753225850686042425883004969453891902825109651038063021872525473703760308626460347183744668946159398531869331657396749630828437604657373531394869522835138437389723147150379475537495972639650113232472112624667091442046071606661744054739430477180854182672789970602801591132878590085938893133968786814977626462773863291682377637030147254076224344981136721197878605516369221836295622908524015372457871276261335155794635465724427992340802079836655105684309062282045326566994312354303134043194247025947087990729708583944556572456297050773951453644091211717296253790450784130391872667074712995846663094415490589853125444236148440898591725318351752836798656988962906204544093932558004022149953631888090008503766398740944762154638312749434526279583045639163977848959766183006188785708372620581782079085366549926842941246526488871020222585253484033331369997953301545362571445690891729292055270951622787713221299675063186633871898418779410828711267099051998260031720196317268298562394324845561784263012441005255144921988655145465505990122393784594055817550417456306682965471801592071157786734832808142255130033920080663869409496372257193519831525027981930195333860363824019584283077965295068060127833325068105780033514359949235723194079476971099701332919872308716160814279915098082090528359577405765742602195884510165996039559528521122650516629655429451891891070450318114249606559977433028898230854891872259920673164351769706842663399999369775280979567417496226827421459242837479656971698686637649877939678812521997959540917513976929783862811675068951632036428841120699904212506305257310038092745810061845298731950297560319082986094009843799630576867742339179140762261787035245345600202868329463729336730462268874646067401836511415243467924580183716497250831837831720894648146644465679246507842677163417304680750929291457024337222010707718420674506053885352182672024361650171895980070462774131126593178878395170403490837843579692193069864174311487580777618517890908837697721689378992805668151589916535547202708730481234073966117152500444029993276674816674086672913289830682488965128424810795519170227699504081539017887268699739992978288405336281860412024537860546038702480356036803367717121239624107809958570823108356008964327788780812958834654892490825425194621280549008921369078409784690870440629589599786804827135756265684154717721325648284593528732509176230758083755352975233665609912087363648876882556752920353102458828849473453859258809399897718748292376941908096304499278124897797951652627933905388259198779040471105985746805308758987290691217288492663647651788118786701688178014781640085079641595050222870682485029015333194251840267357168317646783574695467231043078520398377798727251257701116576948832973746062565467260908751099147142919727358914634674600156544079390859090599306764416356887577132579549383743736161472993719058436818872168135289361089565643450211231971210389074832171420091770991272997698144898436078268455270251437927581718746046027610515706001825176433882344240669763489861232592156618105184235425254609275862035047235988821279391292550884074032517427900306085680233731571174012395439733427736116985901012202468058485966393019269567284959194803784282906021679085982871114083951289665959421615692807697535808620160865921601201684561206826384859445590106664771999418520904369068388222231838627638310318294123439855578744710584943199815825279109017097055206311441789909573661777353628049824707544299303227138931088966293104067811296585854314137528048051411509593625689505233792600317253150993403494321361414951422355434874609282738570354867085128769696428641468254647307995023673875829282206776350688046755575400486075050343808624099944641360075909670743319882962254965748993288662607280562031235941237864996612431431988383343164723979663724772877878131364098564977480510685050437513138286173051478181659208828332163342219889769276421187543789404996510273270991231224873464031859582881502090664603730609554909762175270291928658803130222237276447161731416499373526154365266646434588823446912694711308092553649739094006650899872968986728226660742462807965882481597836926782041953451333617244219988911093571367574652977454481632985332961999778715224074873076975309960853518550057646028500653858606904903504036397408224975629288154624421061750487759564699915766981502793364704674633508133148731260385749560521031135726168974978731665129289202796006126965197216726190314284652865903376285656837341380635204142358815679230276073952138843127045719713609025521978607996681698083140195908250348163946972744730335451720118429355785287160436095810903054522138120760305243959131531095816144716787223176452918277806053620056467129125657235835180324981049843893151639976369582939831144937539696789927999456425199758628816003678100573560358178890005240489169032401444564423031161779285998863218759144822158205571562351823803613204811645148556779939435532728055873907037003038479944082572984865600984206677723884077102031153454337213199154044004158464107253707198941024766470522184041093055213597028908710951672642260523996348215958824990829381192329993231108956684778764076764318524707973562754596029226124595771959277575473375453123896617625042754948002899743962333113636248157508862970372648732948669266511012894226044599985538611190235003904750652947685985802358737621316636916706929365216521736860442153028419116441343467301930969517023960479538612350212572012528370358930968534296980691826845040869388067753627313530674753856902729598099865642938860167873127955628596977201071611504351109511885128968792108617549280696974554535726505866005198543863613019533422134387026826564256536057349847331088310585547542046580260785380126910640055712400976686124120942889651030139187658679292735937272766318157626226446097300718101344179124453535028910607591459508763811418108863502500743869303957453917026336958352883233257120314369163196811417497802153568581140573452749506218698764038479816410985535660619452122873673990669918089184448714879574834275565765523133068174976430007659740829551729139520555642954151331009874508989922114259828635187638354941972205432882146396938344115230823837845601241065700794082312001066188431072165236946571818415204154401982757859845071995653296562507962659501837324351307969734901328476750730611465053817197470321732458561751851789357400514215521323292868183143352756793787081443766841396418381188663041347446427323379002330914256687351580160884018354451488828186899500243642421578894919504781648319793963307418260214199539218553203292617542138414240990323473429769555170760344530048661464185659001626181830971161062805064907343287650938988015631807352514465091740789894899343432372614156082611255819550025565765371129020367741408568704068728254000538714632622688375355280031596650660674729733563394977360275284751344581318977157108015551221149774430878362629813749943571029810960799547743645420243548053954664831393368335160746856072811955043580514414996035923933506239571821619205728824513090630961528817505023626823196602416339945006251208981963046270815482685085131599469247262904303671905073200193605645422747074741640841724063750523963309116390869266769829307662858344757962998917477631648779632181820383515721000151188497459351912029128822462138004635557604006036004436910219468734571857486148968358184605509408664490111486960625043896838771756267011758046068128569861059293584106301485301627386128473075245847396865469405878790059850425940377274786097615442743006382353436104312435663251462008516991378887662622971367690159261265694085313415604784094500205268435922682263439764859988476523156498215754521778892296454272722631787190801172293078565489324837015956852204455196329652182973333703146623930840453024753565412088850462274923140171437210874085680165687141375274079189553098015989396748220327936647364532099747985048825988779036451549095350493542514605918681277170405405789844571327816215737744991800594995516807271771515183583239762710217238058921880370235199559097983374067767748705844806522348497433250707206007352618496686531528907798442909939975075295133242294450160319855005988392758111408748736463210525650261020851580453538810745571102066616617349013028640646738581046483932399800225780825691775422338389816403816521668004207660607980719096518124132160941883219010382418693604105716062834433660130889173714814442953461141514642791293226328752423709783683322978107743972883044713679853152435262674390836326626165815942967091283305020752364764378914879517351326455280558746585533879955840781829330003871676241170780983417786323594812946157102179660992051945831494642338604739740849237239736181587139576629341447090981619214858265239537299838815815056030089856110310189162495790220067942869539678320143924328033701602367723388507083870179289995834559344588542915582416834451788592561862392200683774640174086687015692117026888113052552538225440632152817459306805425268691717562456738269317846510925797437183948514702842027046625473441705811601384681653899431949081666936262069865663442003042955994249185388895569873343830831880631618793870627662323698322718836620682085114837722013477772037063636710417872199571228790410853214607410751249334413984828896210806118059445652672474831621278926070998566754540785311828668000235158332933923563709633167186900988224509414360500831171795479666225871634771427444891470848343258557232250006152068685897355174659289962547691989759239760438324442443725820297394193633676618462906558481762042791006648171822167634452710655159322452296016594422692732460593562275060185950655175385680396795913312589321830009041312269838619544124704204086825266274898002236858494553731835943188905112959622066908526852241696365617579360275362338697351149598534504654454100920228119042552770795457061766858923545642504732154786657615194044891894618254121299864301049153081287641555808909061284283469410976656620878531167594672948898862556165712931923011220036349779577580952161341713635897395954917918003773098310100909451087333538874873549989638022006761115195900582602569574708751638121020221724740720429266845678535790859687975458074744498125158950481805961406632170009581533562288452498560874996713370638466939956107744586973256525405092685668585171556382852072165092523441561147465430729592001280839895665326027350781817389624231068028818336433487220409588914310946058629562003324773643979892968252896153497572811180988287431653042433565440048654323014185262027488321389206337023140869067665953538551755810770243674869552298229593541255471746792549926590216926129305563985051785397899960154055237090784537292851494106555459964517513163302676159380219724620953367817501226184402071805862870596597098943737165877767443162625767293546437035110314420351405733113862401356973281794860324993071658827959606387265151052526224688706987416844359037714445268019447053210858244737493002610031624275324383533767511103432379805191037911189526837097890921997716609899617159688710627486427261363089667467694269550248715469058116444903285809534127225477763532969917211661668447552579557081685262440760650720772130728495769807342442058083978518008371448010125785685398746880898298560956259313146134607861916895257313264429442871935271137868494221662992717581399346898825128873685641360650851497232008995408306086297267162389999351780891211828694064741501760613512551203693593678271467227144389800475919018909860864413741525403419130245994819203483545223635693638515479286717818753569197496855205580621181697071792850691402085080275518939013119829880279394200995511796399918943946120210275599139544109080103382760634167058234619829502947690368883925386240705180042036919387637261532276627184719030056908795005886277497527001750209916857857394534288439484006420757742838288731871865272278739499924396473606310746353232288426806694977683310522547715013403572880097805983553741931005533459635173975114115169480237979938790085657497951853652327639638663235930487084759784237189522085454799534917380867423205377247685103687997665731766614299379074633910222974393798812006512796684165813202542638308777549874984423489070418900426034123130137405954242144993379672602424995165468264303571287325382541992789199869043511668687877756729342123818428525024124817254268471844627801873954481041385582158923899195202389453725118179213654574035749657485940544190334590070949861509256578522315581296677341407495085281680991333991354552034467533155460333662536372937418006084611503451018659935744152448475527868415363950854585364507319868875499938758707408643478604413255637363561120948972681105973978140519946022252568619077475194470433394083448945933489535975798716317220516631900326092099762158535314402108276775451087699916562614164438283230214969201585315595397622295114146377207103718493562332714914307328112772371014173046743791458056176326976823424833269273501030445649139008584850023616347448919995320633991366640543177954905243768061893888963485211388817014152268492741902899138907222568611976721121021127365482337339847377647527472152328885367161526556601543170385187090462414130380201574000739927341865138646158072911529986826684500691554023899701711121543646046423562123562388268694937554804195011647342982504346019474433504452736164750353587591830613692321327019758463715333121148871916107496489122215683980389690108193817843716826023961082207089399770406578846275976684458473916262704152904152636367225342223990572834075455957910516005367844770639632218561432970209514566556174103222897682256188834481986301981429353516050259325121798811119576428868094349190624270590093568669158920109908542495820173951929030605242067607292851825780996416083457223319745209210414841917440349867163450554875787746549617867828170989940510339568379077368386250894853990085588408743078213797615755889897292562282400607366072998912389516703637679771343182971696494125908906903752300396038176827002692350631267718656096798981541853965772059760941033676337507252279259934780133815484253689222123445572112848915577778069457426478516518124129403193381737448824727002236595715088593377756267572717162065440342498688993871223990852936573816993837312437635423068520408378604615991571627538756308622420054965514718019791713775904857675690897418970450127207420864072266790662728006959772619929861456629213636712070788134182441696229000702221143356440424976332304360184729648107220503218967889176425168641519195071164805761465547887505735605400598259697744625299513800050231208011164848475481399486353556189404667277276105654226970816443682621241967667814080265654365291276686774854989549811167955948470686218462572783555422238115095464395064572467736476092031003082608360347099737101712454557439553279032046628462313237435480713400328870935450666220379823745502352338446630100987636888612222456907549256369308608937034520469262550468036991852450436280537432424052600113227632296545224959169470283848220792479134201672717775979543516972010960965231893653227546375160031970619461006431263802319578664727663426712740157740452035971714954779038638931044320559685647303401462211550836115678314072867587017625797152771225650472205125674867090795780417109646131171096421277194929470887341497699885065311990294137655172903263264236279368976749115886885112904257544249379742814524099960069450681929495460975600432041257080630345202307675947284455666539478889819765612302123651443247723022954588307461460366534779460662570505659367058312558516998533815403522451467088294954992898560332647043861423562162153545053933591807505921892152401448098954518146458985083252302150362893311925108447185006567068491408895087983363482784452538237801549833892219168520603404358015796398544970032415148676301620151694939532275388800772568455746982225514323102350550860159309175373235043748369842591937843521704696717971410499891864803697206166099684619416131104211501416471039248437422656362081189881183491337072050866824918495940405100472540358592868093770323601667620719349506668214745037025121479812899303245543726953146398312322772633906126945019602615851994169555265840028720804729236128238207380586139168612169361267523935763879732522466588887394377032526848804776802847760311190357222604297673305019013365422689771516830617709934990220923247850064955692462750827139143860716930186899857002072532528213279061087588454779808426146904367926936380196447641873724504404121288980459859508314483821544380818618921204912763985201912916506790204093880214095609100523939004334004135071490827129390056130806975449027196854339917073532606303432245348806864723189122186899065010516840769657799048685211863207015137522092549858850037737192883186859160868048759146539720580664616843839656606311303635559097847931964110784979191000962086236525175434740944549849986417603952860827051732535248402385860908150634664890736784196379516974978978915152257696818429273131710735628864009754446818232191474227168108865779495620963441265293895174341228756252712937409938597957511147530716741605555025263014113973901591160534490117947116971020407267033580994091559143342336265383946934025707256828676314478616512183975118053276320069885648096652507303620992239777696055982917161573532087941578464571812218863387515949710489464741218450798194815584111480995190369789810301923248151652279904002019019223245693925494039252726049874789625994205928614042840274439004607989694624842391837122281866300273630221178118690893575956357162351648934961043957588397314553519075456647750521427335919227102059352737103599613569061394380534007221060321979766607514249943302895702343707402460747316659666808747687555645110424418540403792911786993645648479241955587060073675856854291721682208927702325113527974740912061837596108886064284093121937541590898172532896045237526694511789232020687701403050651268624577442902891538468083331623705032392610902182118278872887431688820359383722816258424448287950846813301888061644286255674821874393556621401443211492109222340450671100310139236566929381724288043873589469183333375921663142937198860597194901463592665968580259619562485746759378905300222979908606978035225916859317588306629442899732931747498456157318040613177053503184814040126669171699130909529196356165885866126437727591146653954131376240037633668124806898818849832881721728313979568274066667685917556087391115912042123080227083579410455072895389512171614482275076604359406204203544625706075723579054254449043164552308358217068409377916089097376116616952672455598500242912711867136684749698579809755005339507487333104535429769029545720584226184481319810610297395875033256367947630973362602890717754615277508995634824873322949291696499318868370061350977332976972651238461828150092945222687833407408806221197259180576710687322093085605486323465172786159604925565639881107765692299539279551595143013550663876075290673154516583733351512605981920237217416088813704528149420032207261874121317112073956089083465845526942475213939351864230829184122009383931567436766895339693385199260168934971540882831508941528258601350016428333195877397781667088643656232222794718111722794347992701953981175060327579364467967603373272592583888590237514123469129384736906784869983300114132206994180672081863367871423480656470800536635858656778511074059138039868269465452794147949239237680205320450446997292627323344963777966991080980221376780625652325240390361838658643081141863885855874964021460272555810086719856353382722529618721112787164934258365812317655030417418049430374697363980436561012568343204112136907157986141987932948131875804674232407414220168191264997875898727986612219413482802844615634121246970965176715201505500580049826486013199290329589688002686482840348787546821114784861346187003186726122345766421040595595765805824633042054411069976115671871071094681942198664536058118727955049126241654424866842056991204572660352515737904944803446232613447078608807122802839976504713151894644150204978327663642089627516136260831240457203042862827737535476320783990974716175416101774943531730897980413655272339253694117087703484532244318123606602721412013414990920077633083307280554588032314791232977582204132059355336274849802535643366254492679570000101979804347305230494068836537034785283812965230246778035265336366961422939543106363229365127493223192849623029231564279272951688179496136071001167547536651506705314939701464556252342373369950851960168052907944999059984819642591331704662832249356431356918213141002031263767961749427428643787242285982132496775037847298157281271302955755947961519562557537855125897887993142435416579555049387600167801036691188325154033002134317358370237332848655089868090065812202812819519389114154746181523845429070953598774701193897138550954984971691214492125035541596912488966220774468675699267089414925622254406750859039441904079297288494303704263019590456756864121162286052701979258973225998104989669852347413987038920332435438622477128575189524362085149790705166247777313423753695483130996317378115583692075689856806232516912210609383762695813939874688204110524245070314795674497014418707763494102264487968657416791008443381002139922050551617748021412075587573049473919674798625822941263313589424852200376149936103765690817854496755857423524762467271019354701600441449517789633364162890720806889038148030560068897001652480701189452594714610426723838988267853363122080156863074001200113199462376741066959241042481873532918080209405166347802523683873871602403602328739149247644777611464703816634639143847463944353060586030160597948128450289683840640020077368337380366766967432486976435485931633171633729226120450367252181380667597699843041490250929151063699323465079166998533688906657688297814856232058226115548960153508605569634542200440686596321253746714353258769817536970875860218386650044770900004209000588549675262394235627897810155079828427693131470897086687806348103688092553485821232305065623319473846632973069402654562019818216598094483988632576595064067350956254130715716541967164532986564558632541502958199211563871355318683194317195183006290891413652242051215309813335562901917474185627136486922421778547458610044704794138269435614591798523189172255923394601893333231666198985110161324817661322312821112399883215408643666923863703877682855323060362694467703861862008375798900413540418145276281954000524707109886504201801819806367597856902547997643815517790378479842491645023686161552255725101088798671065200046965240631002437278486285472451359957225623309452804796212603683540717794022245022157573398618149509013977425639241501446827705954891085999039842218334866288713655340964624865859725182833557463314690769528722598774071198361348829988965882217227701738290113524744235520682934238361007388423054656038421459682863806256236027644453897577954019758872909793511335949325064025776536505793222632415528819923534595381545588608449846584107559384343149744781149249483479894342519474923490996094925221332552672971880832839139401433582658987718657340892805777072883923364151433732030409466682614565753152463005956610263493679371843699858740288446762735153618610213527170855956630349120379648012856275132601712507032428637139950664701002789211693417522174076335475821222559062247826928278018742037803472640203196324928821239273890039013100692636692114231787299181386116532884511595565880508875697523598964064630553774597728991413571165358395973862891536824785568596341478132122562319829596174491450021454437723589780234062277689734418143689776256888608463669886218676093639623817819440806381240537302462984580169910764636871847302917583127454484078456447693601979276545861392664094547515160155305622450563985698548344364930036173124967712461592324990906341029611260971886170444393509386079281083392235495486293792147083316240849205346945150863505914032969945035321395092267629835329782024292387898427426252622150948225069654628266196202463727277326584244736433476454018206618773829514494189502913653012927307676196170844328400617339683059828592125492526801127720827528485665680608979604470329824943961784939353897291944041784905869909688151510979417185027511786709613693665966594965076829863822431077287021107995671193255730378538225867052514912186097934950419997403107075293435413940075293638819106192214530257134660163228179121639100145737754384076799862028035747868627466611597405404558288505530214263069254268393955845070127510920328390442591394439336960558952052971423158788737617248321723135671377127879161854954090044665512689607057008157998492391484712112900627747848494323121831158614434126670083877081894593057081201880166478819548800345428363629408849348543842778170033378580052752777626149536023487249195783167559831765092308179901664072180445106842050502085933522584188965871675293955374076647677291172475083691975136124462196401420021175915847073163482317393513345645618007347782889291521063609525762318338675511600321689285897203603988653269574549679532997025920741652542502976222513812345747245223200886137484901537449647252246227770291439039060718558416166023455905398153397444146633359260158883574115448535568818134506315992377831753495145992649979336679733219679851186759340170684474613673827444357125323373488958673486845410663585250255499945564524042186164514062090162362486301568158839652018340630203196698649062890784408154239127413603345352492097217192550779914751346626323857544965630908699108393417760964189924295326123008135916800847725215151866203884476876607161564528491682267210205496505217108542520808750187391422374108621831506876921051458242925233606301235155599778245910483618383256848449518386674505719705155540305854053841109807483094027534259570558061416332985511354948828557392988803069075779785029309626179486697579967295472245855121591564754986921541826113594197871099984506593491612347801641052943681024684749197737678682272245032927627724482382051506100174493330532327501257102523664483616688918460587528276616974563243726712306995407613333644615818823110903140131403721560451081195540653639881460440726836957773705826709179863196836775122751374668845402185356095568295135513067065504442515275704797659577150626964621795302401821036231943190149692318558424094123903719217248109140341444807618361761061439369364960263840609459152696108272326175471522208190559970494447987615603772353610728706042961923765975872710275147336178038509175569038407387181295259778612456197713904082492649836085812556380097149310830382816183457367262505400559502923084299498202956862450333691727447164171212732774854140952481306461846749251100020902370608313663768734131382186385828655598273417753724227632539104344123057695453748229502397486352874257821960922846598472338928215156366589028888235292556386552132895640863916084330010280664090152128015567258442195048137869103054890036592905705870724450260120209181526329912670066925071839093013648948227122706771321753334702754751179288258309056318430158444325351138727695952657419725067712146009896272035633317398675022652014550428165885364857773882721970838409622133444774734472357505156828185584877597401536492005450610397872926643516241393579603818428256058936164724764993075372212979750471567078816774871613302799842088644566132287574782261723079718744109563014577258546814190135145835708102046340834831001333160054031702610135620700100526175186927210793779539484258098509694268088004074353570312381173037840087947008770792744246839517946411292620899584803715711198781200570029733656989572555181200221393861710974281920260177264461905470662763171011540463201111966850592145721525024070703402863584818817347271954121148623411047841805190641193996312040151322419222112532963185916239056814250633187207954219772741824453158857794209764638258551673633915546018950096130104547849288344056831034867631747444261319958985991406842525964232245123156116290385009490920419067834204574055938792797876422804253337249480356006358913445154978176151564454665596358496530287498845463482628124768347022205329886731527514261398819093552669534466473732476527368783495848707628399249581774127046550643199658577825465157469781173157926362420581399236967839855810008149663097164395274165941502842985741254509895529402044468320916476548654509182987948133249588733210291612477711010103267301769310617042748188640561726301846528439018287265381938398966270861702585921497110004549569523064870110106183312014551024302115949660484759161512221010026303133401712758072391262502658428903960234701317732743818365404126091353738505575289240978691960902391747350645669548225477202923987624407158685859429351389138047813665523456288594534234778263506511705088382931393201488490366777607592889580313046013164311160948227737094394495757069722560284214979913876938841398962167417180737895553321701270843786664553579550432556839125367435936440306921017336556594187922943259090501598879455653406161029799119407458671464508908771393037350074582816522164682856628818749437224937073481054427170263070026592356911472054474775337320813177325929698973448220024868370585215580882317870823074430633712253457427937052515983169466848414328966865153962393093368238391017913628771084011807011847777946032722851186523419337489344533878541821117335106944406383384886462502908176141253381686879966866200041304402652214054884074800300017924266638221346075550569150629850009176610326389788447036533329355088930286557956062327442157205430809353209036032908399871909141374135982778836206216922928755258186619237453620297034240293390008304774428217720087026202922996870154350829818761310745005911626581610687792030291049886126641077979925443637771263387688660483464003340620135222772037205889816028260775036184027301297652626494214518225230151695258742207521539399515117826091619363908907437102088333971812439227351486511189335497638446572067774448818984408443948477437247484416577221010504677254136913762164377562262950930823410661745786447735012413183047934749939898726764951859868894822547309534453358518341467550352331329808726071327954806153818171167867196163016399785266053026272888024654951766426991568701602107130819843227666245247056760748907961515603271032067468680126410860476191275460549585690376856879271977508355299573943523273096290561493221666767286069451529354121084671713816522720988793419179944764902501463334578919764691364465338755877759251280407054360520490563280049670594111326061641909609390716417543660993889012789536855473768183876431479700789444308071781900420250868531985883795955694832696093894886998697377035157333713433180947329149126691628369847036111633655042403479834941337175442869504041898341566942006279857197791310014506276826188711200826794709735573557514727120118842234410553682078500426647664700563505814587078188830382821570308186413578257305683486207547962764062631811894850736848498524268987310446656273471740099126613395190619295629910792852247924677549643849747005126668554436698490258282406050835034424661877832270884759424440042886944266751065533896599105312561864136515372679669100053323604045061344272135721477065247902444444836868819456219264120926824875655183085885460351158057502573706371719686762376910664047556016723612527658491940191645430600889149207923673345355195735308601711174822270980680997012210272226767486867618486695801030141878147758933666465442979751834522395095023878965721575474561231657021109004732126179391541495392617460591720980724931637329453687186480642620084132694519585682291171529103999440490977186752836187535323757325575615677074078311033485933909481303318849632508699749645808213198647489435989992537654848218237140228485722504600703874163116259826069694278152586312027221111944148997510705744199712113681160279320955489722224451934016512473072038772902790098899029747493788667661469990324503622591496371464089280106392058815471558494022316174111344335929414458796214254901361440231567529046369904851412395006298827885522701174990605624649960311227094834779283445829801885636448935547428655231934510145500245715259882844033304691494407094668111748302094104727998264884382120372747080295180170937971483059860201199910953433218675161705287213092617003994689709212661448035167683340758320121719755269263972744614977846509697877580301754457957374189983698018187913624665883892512571887179152107975154278677290068721793095857759132752125735444481636145234006484142399521927491849949026850752193913663642960526654841567144845076039376202740889079407384751708567138750349695128370939394916591162834622134859834758656227991289499308244387304515720600378401740753143711053276681216238839854512828427002471504022303960708229461716339244103725714831060661647401221967907854979203110288008164683670524615427826407046766416895651234050713904397604701647544025582937178159763188033830182089534861422139527594458328066553025204250662486197697056445083584851943244348025592858403508858961449572341573595894951344900195394582229211917674860239342535380767894612322134618828239738058804328311746677948524541992077502612974991619228046550274837299689701911219298604800488325803529311272871127638554535855288390819145635349295068779981552370939835678627908535041727805640652514659768349292568375016805288492110931311778139541179636119749232010499684790315415824666115715452657883032752177072406058883692882709292246650821930144647555926114455711519104490976224572824290116789560291411030060800024095708820360387980813769665124812427127492718055776302730126953757884451375716028512062404733979605962072365477676451238541141756694919084788520195286616406028992718368328615126218445784560656490015142722778527532444891110245217950208529537652626251695110113493097572954198277636450351001407397093272540795203311715647221973472343877838073379016909640886653047026460133656262043435022579573753431099199807610957841898275519133677552150373315271836781078286544277683724670914011292914486116699664437382801199348305552456565007144227783510646532535193165102325904964563293672005330925756029297709347929006850572946857812766124510397555110790143497945455481251885759662108531930457340946163881354093225709659245542976264034215909313805257544893180228905315947811508069106564045576117264255719185160514084068761901805259211705765105013565230214911574526629435127713988679915430550259059944968926450648889559648174167006156070094231954653579109843331047617989820980999746912967180169444250192517195300711619722729969014637965459556428296992817529323038885539731958620727958709682690227463861639582431515888231948174933371293758420396840370512802055743679812272389066463938358323143484565994677105645589426631737862711466475395858907127596654792389325092238084828810538778090640861222532889152416605540446389639710645195546165124679019196315067122054390880034674562098906222261443370378030649306203641338707833613303845595101079451992967970758620737910230295162428356623869372962545270184884977113344216809175688928227541265002868267798774207123692056643148543820738637746019762891011758558506614034371476906384457891009186300575781168213693807308783994476823803296047716675675673772294981486997356273325276296358589147911830762699989271490938637299777703242351570176386965023497633566456482994018432592223691088889020131022035160733413949021365334756349587034944979116366525568170179838446936784142268705708402878120588650758441972205025834314262043035314767635896571776365115543579661466783844137033923773188460120632562590509047588558384057139738656557457741968563625302989982315011543403566617505026966831114162405603147419026551450111109826260026827145375191482327902203880058359095187299544547063188798996305012889904793336809045975948351351283612424201206054779177076880230257288008342569292327936900908041687549324160313802216541536713177786720598772373635642718901780288787674507399688603976980233391571931386786661323094595372867859917512334259756701018427309949888879140567576043679412702771486611746838048917075749568415543127441626273377753560645844661837209553810913194892575659144860272976094860383197211020806258735560830568230138667764767047029511107742609310503541815312787795658963193356769224559231966580909871372227512655085354197933962893575730105489399485623984163802030782978173316651406561591466779611526826915398919037086244918633494931602514085526899170997090459962052240586275696422163638200094514054628930211505861704494305626833545654927170956863041022398016105763949256156409324161027576329613948389509187761592553912428303952003544034592688530225193679652810292305566076894681267646100281276173600730769978770103620239632092276015176268243036330725827257269180286518046374761340291954597468875316583270476408586895482453067085063227565683481967489359627621036072380262477063417089222739508007600698457058673604839568310722607348470028324561252227405309833922462559740313556430885687737407212239553251417299209321533495332651560905073806060294264958536796439164346892066214494390556111900239824254444744637553393506920186157201056542642288964205672767848417276713987293805021067325319634916218595502217804574567550762442771976157103728054649998584306990455550995681591422314939564912857611350748969309274908100010781926907803126826197556055642051885842621733336974837138758641619900138106673623078885674034903076629412093072661726457844320211194626159373288818365606560205659143351168900310024558919143107667906553328486874794728591096360078644473354945023261121038122238762613488916139446086433569524919839901372905465067535758563009507536476168004020056164590334220048930559692986213365864301780631233366004328590569071961000837164810294876077613553064279691647634160457936924805230486363749842695276818039617024544812674519400028747751961048023448840310211525906501248299296056371683606481571061802185736662955294162884191752654978144067392008860388452127598759233516638555205085739041106063801793767087292584726502475727483704800955130268492163514668849108139329920678296614723963786415647807371741248862679597061131887166237055095903492971499363298828999613155901039323289815882050230019085539274281373591620798419997930702461015977385439978894612736396341658577171524709829124105329028685145489822570850133670186452940828205220204489887383456193377250823454517297497688190331764604718194453595154338205021903029554671763367601362313471786876630893421335383386630129393797922666348306694233007585480063721733924840552998911308083489317092846202904924521502644619934777487461786867739473941284867504537270119298835906109394104329728110402310943007188146951044516009483629025067845763192242718378841376185141967005561107755650799431817671088223945705841193456297796579413841175460584237617840189920093211761495957040486344552335282327980802360775628496423192009676714278183243612833930157828945348039400291994223146713169748750771268909065407291259123298255327576971627384432773726710480314548018296885868945361552542160032731577434622891440251549765938621704237933765554104024187317251595440914106310511238432996387617658652771897395165932897888461897557402794677965972702950979045493759836987200315886020889346252862254585358767741210632178390024353804301914982228830199190579504032694482828749640124771026640110470083182987241737351703788315378621230042376636368101215491346605613490789803130621948977017659753361333280835021404081819564097327873197098847465152202076641415389014155024615609915022377477949015520680503371192108036754981833967647140191377938749517895697660382398365767009391189915527686689208504282476789464689359194806653065474733926269827913648536276925310950824399241542401359095037494042097203821375604445276302599726586174749608203007953636153723479367075228211675066590464390879863838507848742284063874419997029050327076016701429404973819091000126329965158155075400356352877917918801086049415071902941671609362401453019632234677755893392315596751690746226429588243240684097062095015628718449570610030694217804351626379533188800245214908969551143289456196241741264019614740881402895650968665721175925453407638571314668681157822686163265779869305355782431843270043244825710905301705856667750818426516746181465491915991448952087890925217032983814678286353648571184938201131424350785398725397511048735242258699732601842978587863708049597996227209564152979594521789775625532414115217086568380538157264344389930862328261615104652131298123195586738430474078168768593228537301790723012702151548429208578212056430477780041593115555494996294564432703431572023022356710816709839477683001136762161897579505361685453575913268056788128244075442636389541742037044302038100352400160614713198017417074714472519827049046978500026328970907881647242814300806618723848987533758245463206985162483702282040331559245591219587447495278588820657859229400739846101773322265587047071133039152614107931610102970226145008450710343493180141351867691690726892983285496403275542189751207697826546057878497706825724305255482953305472467928931258104916751258250235855600054411097681481236624907527585792558309526323826205774339412435902673276195566015907899281580982194390344450653255160932936447763950014055015683638473516359626535100148301849929204165419059246642805096066158452701364669405809051942513109441473338306129794249996481360381154526914707299479211324425604716864457749443235475330111199129539204944735389523956424521790600949342308650056948824138064920487397504621224694875643867006173942636675485207100783812499964821018743194815672638613635109436819545085391725041450391621034241033616455642779548126176443946595794822326350159219132319993348494435115996991734157601623765708129782740381833674536665202374442972619800352769210292967908794535029128256189335771769233791223455385339283141614901145289988479233126816327630487199779688529098578705091050239231945638078026821913887454563968220478222953862688736786813609598434815664084527163005851241918899555828105524731409705121451013680996187328007120256848302419722499141665949282998537279668538977054471761315255086295814701860582360576349476534795008343598060634311700166990974168713135854565122669843639967051523398732643486421654679093162688712970507881701914748616392797128853335603813813288188961424614586966609741037827248784677034844985346921818824971339042373927333535579056525302658485799936986560620627002408000711060585920420947622310823261663008266114960854458464489819691456538172484809348523389871906273635384055308560803864643084289369395210816820489342643377601865156070133559675553576670049349947112663059547136034358283204006869960289136952371244136528629393596007502871236698677932472298040117527038550208017184539899632323579905535000282216229899678605328257298356437968042240228149810697038473940913290206618640060152856710842223849390419055720322216086488971972765053365314913312090838210019930253536071626624235726757201441882182840394062257267249948475033934750332767208201038752310972377399550642874049096787029892279285224461216768617779923083216841553119543478596121609664053947768264213614514693992704437373885041748957597250679514071349826826069401145605145130179153334715209653183967853183767939822167537231571363643784811390578643946815807330406860156946548427761920423065993905168846058539559959258071651500125373704429604446017350061507320318223273325667524897441899513199723420255118215465290827841274804279587289352371848716685876668460733234417055754016042827744998791548346887188540269763887157018996298601080172009477037262471198612965885488953242464996360369674649575170485763442166048200782823170399809727077680226800327217936942070775375738951412030302444843716737472038110399245321663384687141377787011330832570425718442710930447768453752074262227815360880964674170297563638420111999689321878407597311333970896666392933199028270186950118991902040311166842955044602789970264119312416939421171155986333908698082686094619164634673370646086956409353839263156664934133246946976048990249771904529436304417967995287086508377144069832415636046181740543164906845810211059416717644245740143714297930293602698974661357839484801080738752010599282178134627962597885395955383864706464268231031681330318823327593989730142568637620423607245319084622385217065943241750984208834434675542826584276691113402765061145008755357880451226352534855826892619704583719986453781961738376046439947459415977303893435861953515059839005038251467007644876860293494734680048734653363419469567008468194614675943905148271374499838528115197650166542713046247482140671490445712732312145711240340673174960182927065868788238537431884625192506427238037057816448607043106998469228601907597043576468552996878565889819595238432272544525383406176845281688719975698067316364505160466447428421901284212697651476317209454340742807850954344458522544646970846192264999848216714584432386180395680865559396706599866312119514992842247994528155243129002613678322188368697569731819532462611918030869420335154447558457180570704514563098848904065432341810474550879033942754220612644391873534824349028066901388902459045007566444234306000696655265748482556170379165805229901536566520984569831648908104258141868020578620671491199956247212931799438164201363320475058825870271631571085255373907660464685806479735751050652334451715934758418997016413941621744952140429337444271211198270417511092479414153946024832427023965146444471358132348387568307443116960914506727728238617869025528817935506259583311570865512207104235698183609348056658333724875599360474361590042400746517958863050692695069397261493277869316708703122122079133366781957490630740068257926829000332146201363649645903714557103020957263458087287236259323565313814643137766293570083424159872436376779293943758778986605111857761437048418966500241512619769305106485310217066932962079428180933147197622079897939610366074101489814578174975020516183654655969049617353710759908346922396724245128717281919105591129486056341269010794630328496178000892014269656212460297613184762419419669492564865643001745306940964836185724026585291570615380843258371925446048396102932573903964179118151698464840289707764853527638584738209324763378319217581899553888029552712827369656134175993975756883774606610815217084581003720281777485814713032038463128169272791717755894039804557677092549781854188796438092114087071497813540571016684103613043704801102117364592731839706449195366334761801343688151307462891746753143783212588499984615297829194291808734132156051422107968738286405636610433677406310679537497867871499782597168673023603215300878399182948908515703322189804325419866610149916249609530520170600779984955982839696105837128233450845712013638128239323568839137762223832452701955439920129001255093771259675774747430398144809522507058934811221967278475086970571642087828159423270153077803486621737423295568114505450466684423294345352150408431006602633192339260861338136685250059676970478518703263936085902883637072742295217799865820816030632773253952888285084343414337669582742776875695124058396376905575962755439303666485760124991817824127161446825675490976421659904815795885176360434542391649135243277738865519029694432802336159167633388597714178689427225844506415332753096787785595583127643899700635229168003941689792708422356448936109343486621449030922829703502091713551403610722854725805518957727710627189791921480238120404502495644677501366691263745792946690974364619222083741566186795099678371875978894921460170962953107127125553245413081961903425967486142125430429257408627476233422571548138057750958476357317984112704111166048607836850244771597303017132577653478480290194081903806423290285472841946510910676351807724074897838847551864890853909956287359011340429859271351278152732618057585128176530737524711889227008343492819962654633252706305395487766161251666896626896634815029257655172106377992175382043316258599172240701517349940501325877899399799585961952381425364412595719116799212811991873237873737094373186768247978316354161926572860643421707985618254015904860742662762661450856401441623835553659909659619198135164091842159782355664861138893623671837951461156345656629529595584147682733871531650433065718925755971371203890235930649337181014655093040709373577453141522502341487410938480673040705992888136798625958191216027905075788006851557766591412515104600652006432184540357703858322470871668726048888757822011919576153927954187746020785865006853413729790870300403452357519552499976374560030550220811088197505552877505864851715188572879562143780338127509449328876674340650979589133473687441579100245825994040934768087860283071865061863653767356929946259715114556348777563337777616034456390520120958438014672373785208709406286586913200097771421151672809349317792812557055558695212502895907823990547221424174852174143832795718173966547959704899649965813887538284004000046858571758860066366745232893215689150245486481213222238153886324966346575337607206298967436282817361687975635790027723983245021485843411153809251523329154239058586096409195618151985470126374663722421584753952919248833153202776935917167369538058293713191573759070205156533101275844154545919582093887927454456619753969860829015203273669456596101225326967348195024371193473036871925695877633823375222824586815295160625995874380505178232778296904160981601029854954821562193590529919617495669919632850486481482872391644982848788712521447634442688992956208067586493209274940975996558390256059829454533928775674051721431040127080880792307840987731303614029882397409624406779901144678766131906665700831637754567087016353971124922565685315351470484587269930308607687916508077148314306265487174325797838295031035537523503853678896776121092598840145181001653780965970756700438093451733130667786925080227147772567013272156634623866231112588236651563162314977710184036367412951905133550165144651332689025550795478436600934371854629466827583793642666701030223261892576922439515479056543865170493153889816685651659422212964526715237248426849039849787080522503107176585469650812950186969904115311379698498324760509824460556356313426139502221219503581481409974401432090939143001783875139319721485473859033911581664558617543470590213410952077007793687410853021089439229308254148653757519495239056166020498407975767331466070710961140622768674326029437819882393851189380200090155711843564621854870402154545779971032447017250215415972648178029055533625756125308149365326096530132370090775930348967612675470648783236803489525864854134121148843754145298685933582613711322242825931986639082273186656970966777715103527000914100810143577304678501569001760247540588725251406848799477478033524729743537851812477970730292356688279335021007908417270218838142008731518981010177288118695642811805102649476784535404638246114774589257330392760360400057647954319266981803498123402914311477228600861626712950096919538265285210104349411918891576880393284783081472710040073761237613027627482852226944822931883433837742013100031004736155239171399581276553814008093990949870233487047223403783820247177570624861867752595992135412406963352622520521978281334449076450218855614046582498732524115626503371638821459827791595735178528563236654845601210270273059234740901079308833145634105283491438147052467264422563813407116917578151462693738625805313367963203470433183534996510335990617051470702644222459392149990132742660631025160466501213349062651507632963366991727327839119443160679898902199006307583948564896580875924250551628417022540376629078039536551049110359780560001160644946395095552959452754918630016947315598541187352525252373509743963253889598885209894533740678002917838652832586183648551760832038878389652565690251311932817481552653966752995060098689359972739148698437184076731105098228848375410673660766613523423565882684743673198674389452231190245253010437746567390865104734492780702851691060894504309583955468683906015663314903260641375285005851754788340172047306229252403769455282705689773776905458318187372811058903061499336424813347474110536827725657011512338402608349845065405034836690004101324931437117692537945590068917051013643060638781346551923414950826329467330825799427908508333217418389629786445198531568174554180764263863512657836837655206499675794928709201121766272143287205217955389422949080542941007470011962673781383844173748348514122356364955366617488320807513910128018044366634875762443827190340435058015211437026694435198022313445019861821050859495022518503893767480031062387546998012256709867127178847074402476102980997671254145244651309527403050190541972426900697524012964893218832294655526564191199619750514711378507578184458869279247706407775075561287820262050259221742719336036721401760843824264190808859269561006408989111065406006120975095305091942319454522836768222074136425707612511165010866389591982727458532119131458145067860181650646556202768984978770396135022035490748368733791416786030467362556114317633801381641970368740140591649567545331926461185968007373291858405697737585595607479693818075373297805173795636478080217279121568492055797675522362054601607661730448937220600552167290613520994522282994028893524692489709299060631803787045176188458067063326416040318398961955274707950907051608744760986227928007751528275024362367777467043064263456867660797095779567476398200536949016507095777053721603998326297874418435880829339853216397070539859948158977118805942733772002976450310206088329129011511635581044043834333077444328477518694977225478642433471130883070356961885108384405216299021147327181603248927718922320227051276846453408439047188695613690228152500779181128929533382686187765502629139284314116889623668239687336258625967269007565399683134570896874865893950643687608033655040653690583134458699301602113643846004744530797250465179252692223081789099969166642608479052833540207737886908882095872460970328325859418139324160517701844910387835783835154053901631212317862594755023536145618928607645838196929552484144564433579688920896431362218479661356608716541065947083084196598350760182746889374358770890538633128551776471745112568103072680674769109537201193984921723116818792821335917469359869447814064331671667031302740195120885487263398930731751692202196980752740499224321581779715248223955106350654367481084775959968113406834463059118586063074861935358043176084151448054995543568782074446312863457516714229461000923018088874793300598798322156595420647752978296035850742179731734521711334304255754982615551190728859394575518039280456635258992335739279107935763487948390199263439010266000933210494408658632997629524220975944503276236470554833104361478606926811122508355546781592597578471313244996202292002145369924676664001658891986299521124117953433165724675905437558972547272737828197678165521292274073675748254521848244937502211196008485187257460339272338549579108678964394776315154970502198600556629657818935801253163413287723440524482348132741961199191091653003675044363444653801665494537585675713289403770573620391091073424157026200764334222394612886060314692515659963987080975230056941141847649077564447788471264293493816154736034785466144704848629279853221822563859591641838843622083241695327928421250070418408346795663354048641719406480755168231142920653970362417398976682581584499000203538750587206354657753831686389309475243798120859051758612846767385877835452078524674730275878693791924718217027543681461339769338188625611926265108777049513230805861712421987595241381272963710419410586215796588495322236241719963587376103704907069010044186592800885612848089500184530084238510636952808564105359147442453346087324053031894055864568974582868135194528465777675768971541056933406705736622254025017704857549231448720648895654880950010587598614167932828689655476731078683960187354779127473655695528589073765417492687238600171540847480430317819373846475797872564162038056735030448843758841332851456307608075290126052476366161511907427637550080691133280651429442956982528161172772660053450066044701534450244070013845622083846002425256707210261305923439912655418171109456880394870381059188331158576188306300079648334210697616765003857363579123707744769685891094285442176209326091936259296876865224710265871557679354375100895345413093264681477112356986847993707816822540474302749490785624681396208551999663192805296334059171933565721048614808762519770571097005982046462875498304850178660159287426318049380975740936390542656940356964329949244830595001882562318704752530289696886137102361971438511977941260920340872770597982934193974448471002798697884054387941523698668240867280024559600110038236757832752037440868154041306672301737207649597535224533455879580924999362114489276013818559974497173141258319981471005151467869484106862501590837423790444385076865034756290592681654021559514851869406139339018602276233089426425439939579260221391547739184088703010668374245173654745915673081036801330167013239778592726450240290475541458873924389743958914438499760574473512683560375287519331132705441709242037912303758531857861668570004164883835495437238630824970035530490180200857224660623659148121536230926629773653083022665074434586217575832122890508604330718520725171878260398343674354465411270365750845343589532817873743533357712141590928662397845557012892401330316991386645786587012897160450836077190133904181386615438207479166444085498780072197466639469229585788559537731787322155991476652439135732164331864620920753727683773697601659144398091852612701250403190715111189092728674085742877641662388656906918286822972438441088601935531566189115645568513177323995209645604321315575060068968508104248668866001327253468124289153133667557169191486944473351709078068810880372814534366881018299750127483727140213572927466885062790623514146986747110222492740061332939519682816465136753408509145661624112399951943027189480191535975488012973385770821087956626829902462857161125013209015951091091615852131577802632369876591068616349437817674505436391158414372675239446459138774417781163087176329867906316553202891348493633616853765761817348993500082787881996844220300178354450144944053056795315599658158635228965223527225451697757799871868026692093961397713270595674309708465579447285814988294952580588102641725925543876268489422159084463521497981144835701948131466261683334911679131230747429337158461054198008729042797110138438060042039125606797501076834347299709008035246514728694817341925887153924311694720354276342929056729312845921953130071466488312079434246248374368831870903799921278091673584413511869507478088538923589679745338008344194060761442529060875245701310054439280166761617037961430800924232049392857931190293079478575829006193212512125856322176369947393974190531191988004022623180720127901760121882242657647160573600260385366892406183295640064502538649462244570297108083560504321622101211875798140317416476600144048188400868692087151580645199232501034259010953007737400831212460339763173341815613664764211917964611131326669091538882506178425842162418340709371964296023141741274971359365998012477892731459660287786268356909325016677538447089209565645142311671918423304117244333199225039971978923831849732293610511040037038918728261131964662153946368110438350194843235485585765987533237308584419425023423945442447055076654026191163003658873990265677906235611017968684063956597745257747569334825517088007127078300255692056462103029968342404076763611923378688225542027699658582400613184008075340685267821862699722458146065856787328238754263372080011551040589190528779192284824190994100876143069213109423877527539932664110399829009935262250463127973560928458569159994750648511199526669293885932402685451008413028289127407026913185496646380078208574219646205487571780513985133072509233583045573591644824076377955345676650156379314643731766334706177666124050264701257650141722931577224917249241170991215645251986291184322027427411877073584480959204816938933985969501686873625999073302570808894762449396794683155327703097214599839078866311947763856643443966304356975844958611019044846887879955081558839339422030573216045420179851244463589112184841610204164337314834403771832545522373302429250138386955254537688717113140839741309283697753851636065111651490255279967735653819714800614324615936017652752626238076001310519405929899454071021791230848374896128347867932789544676855578053177125911138262451609348487186345362446121906206021067558471222738703259500384278231167173784148398453468652972721432882407332450550249551647858046385700553066101659531265238285669345985334969841564133311137165716890960505651521218553390825046669955319840274255297402962720873121648060198374768956091151126574693713843122165400978274974069012232142884510727183796552903583920231732322146790133089205081775293906431907206276327104149016432812302499064542724561226777925979282701934192508468333591529330646184804445675447937138193470950926935287623478274538454115327936208681240921252761857324386295090752992424427361980907034421505933176493206093628568175441828038010280474947806806013762534593272445955670638400459593713801210342093872102789333045468707157464997412344933888103017581881132538022104595368791939697707657412799540188330143688673951177519380493646668131490666735346292071141948297076648371403893850173680642651359336179029652610208704575809521452299075953960295779123448491332721171974783450448515804087363853510612011511331259269784877003328890899628264645156128179421154868158331204092897785642198796861023522180290351138380682856457123011421476239470183326707498787315134770945049067897428223837258944471918355568304940758525234594803555248112989398256242546670318240351328665301972363539138147434928486547289493263329495788181931011230966710950193155453453559149517543389851449449521348955197849741683264660793495876497774218106622910707500854234986199909877600251970064124494055223583674961599181472181349346072122411187774498928637409621487654387670385863672247497246017872441116210411093769682039660835922347435494667684231436531438268968741548381734633811993805964895755496470888473210721994859786777339458435127698568310926974254856351129174011813514512438533840036698053605748577688720175585139829429197063649309692044378367374719299656680416208546489139923894247644012641198299949527200961047416137788030362254423685268351979769085137346991043962593051896295430231259348448163913929175087319143369994959913565837740898919243207909830727237722834176292875364825105087512050378608872664425577800871370780919448499110423678058732929928285357760639705668541938259952496924051011240168589483777133204561055767780839589767188457951809234003512575806903449224435175055046293160114106071352184091386406944379053240655788362371498565512631849710582645438813832249914716318251144053551610536437137252113973736025774476158952108657806220222852218734493043520079993349689918526694089564680754750826244199432725081033882433849040244264761685211941216716417990520768623704560444730001147688939362703715095751711291488924414243759507010908886420422747720684406243292339871807711991926510901381050224687062295417283197892565700577883295485659467520323116127491966160731543198266020622771666832055024453728924339600675022158535456200981191077308986160176794224351645549073110409036619485325066583445757899230090987133400083262359315011964567112188873208695021189091041748824394122422262436388504938275035956641494950306065446344141467395227177181917064222689482494048581496578639363363440827854986185673797946701828687747240646467520090095923349953735371225349256487198554806866221288399293324101681534141685535973747107694864449342215667035891920382414416196777738715170009765677033504380631563848556409827342037215115461828203604746460277983055154796045952261399092229757907530693036632643661951705433735692997673660415544148035111826088636433621411526460714830814432797395117078830316990713205650084947308765012585279889007521044826971756558420800069854418211653578502724206914435041810435578577710274460689914708704829754244805940306813400045090045751227186051689298649068541514438543628819218655634018503216723460458978041075838824557551184454100779135585699092392238619369977055696581907310486604589551282599899233525852514023663657412167814552194873212339723919648009811678964316514204505740449820217241205084762585989862575978100384869429274034726663850393692590191951513473520949185615544474416247432793623755568093717696876128748338585080952284036808162878043802174798641839433878522059442512095586778128764748384802198135545896920597162682378255425311411131405437345399589452850196672553457176101823343588938081148049921747378293423991527459916986389624660660709419548183648140157935673213176111646698573580076841533764864806181605201278204528793019901783206222552245406060526636453575892406101879788593236234692549365098800043342810312659580203072075190749297447854087584171218573821444252538582791683022243372659298095444037063425021282545786944494669317203896333929002362497198130305629110730097642175935167051879732640156207656070368210849202933207683080256194568757272687552169525170068998961540163774475184024249025066542907598381926218557181020018958659742981387821546057364032345409231325346126712280113565717648671730785992956258054162796503098891592805162901976895911918006258006332969531726048087661072128407794200720433485829683639249849951164462426003847862623609859974626671604922845819724115639847419812736495645982603829702745838973980450140313594883217859288302393315071255358027977464860144404270716661373565090962668235333940781733052884493448143525799652278844717297197156115185505820432347337070666562655040861997892718442747816803269559132754551492504276717798856631757386458601991128010797821256143789533748136514345886005702447962730893454362279869693215430059250118711397737981024428393340548232218935614563544676122241118228516525219247244725101417755363789546847458443355456249104583585677195325041048649034167386719995609303691196169989530646345035160590881095321784494828550133401349781294295236074546005728968197497670151244980838643300363310680753739571624032802139070419790068440725032502566024128909666450032758940823665204149091378130275701397692827181053298206715668944298798237093836101305176412571897233638311327315410006678721089235834979039984703438449556450953583107899047608545544995394476778964735512242769077606385863024039892597404657273470042976184197508848423324166388477665620413058990633163908713255099502084730710590620284683852032525969578933855886516605044166915193848230671157969137692234713001593387932739503951535854589826259146519132728836232166414869335504298734782598873194616370482782970490545255522461638059878012428726337291827490849045998814972394412683737864985542091748530670380272188110021421345225374905325372951122497239002315552746476062618841117418937059652611447241196122249127683628267710523186057853208989066376144908474337365239539091423720402013155384818284677596632919532396897973835592210198406530340133586168038161344190206846891988531393359845172400804713428194736289655237239323837874857545237383703495907761832069040253171101978860386361268382760678460358781670912378137978301896499251343796470945004109170567801480136567219986255360459192172191852234412341520333068285603518722315174055787859458805934724594340588101652334264362469155993641800275902879827797058419614995248754536864287904067275183367347844848762306191517194393868341702590370920650815336693161042922708494580349660563834919427603620629130979966312066942364447124210141299153586847800115077008117351360735113573959998588460632937702671991901851065389611950901992353084861216511805165356547871884308687794762826675677447512441646854588981439644256563632294596474204482818546867670786511014720134902138680241069773772817866096322653031378823747989614397685197069686709942943075491739821985704971328354604703064004254800987422245400300332587107043791755945373097139501535746328350922997399047397751442406035246524276122685158649468364034887033691705029722348520618045909704609724544682820096903595559536786110307303963376408831845292396233932348463595929697736252919533548641807149849648592119192305311199947470121150762456553587722019131511483918144921684020087195420692838311329944528183765740117808035267656393406629465717648945630143465718619399722656859946068916569786315304119990517160523892376622157296560491674760331088658936510550645594289452417532202528872969875170003025991661796772631509124611394273259258843814310059564803225164419047548709253274345487135555117542785752539912244695152015216193973471376159769321409541050005472341832441669951626062061824381321276136726308926981735957671112331571795695519570917440567288560806457766558783814390630433845511413467480527489721575816493721045560816940094997690387425026732207938162078751100802984170354096240526813647293147253314037481936355131803780909354863832904670917874842150868163468444815619981244644239890961905525945659869584426812868991152345220140717476155759225447419667981609310262256947300850218684877575403973956205608792847365443106910625819158728607215589140179985461505356915335675886192683096157410089693729558549738712470986588430909786329202944771418174614114257144760967216285929683572385296287076820076674303208683773208104044453852911023611950795150798068073647422303446727703338195850660687102618487312293573239577948135804121772925581832787071539947295740167617685272080519081224553618250312747954062453957194660720999508940256099824997182885887627895065123591440092752954481921706456030678723828680591929354556448774573859245613038376253143914061070401809800722298204824890678558785066223619612337103730625499668130679508293091045355511072269105681631516247299768546388159522272752968345264056078752282778527425336559019509527581771239297653171105125889117799141667739509599274161901038186331024648347827073021114679388409386153786518451959594116644161786259528222256560672180052195792613072606444180055506745921588888924507402807064026495287156906703927306780098091737574635831226235104970917464103699303632023236158486493177381722982578801295907013566738447632233205763653021771827591484083988904878780176945330510417702186177120856995916141771899541282881642963011729961985044164653721643606501151687844132418335205078758763392070299612264566377680245320425652953232573643563109071058144462458534818457296615935181571304864479720770869353986065372010401904402544291537541174281249380049156928827522430098686802140565907889478207597564459967370353367504195011429684105314189408083290841563072180163193296931681821245511819120036988123303494545831690063507722490304190931237057822801044710207821892072260974168087204997668346500035330520553965689439596624191747852779873943183914465346073976676446724408984962792715114350672993124394097915752947280661679048284115063370197714917685459940262050046805550474852470076387808189278545716289917672299807049804037923880212826570921112355356448016936002764259462387378010844805580526734519635445395473131597885755966453653953305153919975233154965723145758294847142324475880149076238447153651210699134669293629197077413686399653469631914924161105541169684912171795857908858057288442712856163265780832422814170514852439106398475362247219883388407457579415481693723335799440357561794878464194440242150998621846828093790985953819224314475173594208631030493959308629053442033666839791298862570652369488739824160513402182456265945742887194906137262975498077781792429259876648299559954243877009965232612229296643362891910450324347151193504718016826630800659366196283047411337485555141176634244608315042326369359946513471048666476482766241891483683671464488376754052233619436785099149655963556268316868474265344706644334639258418107591375023738924810534707163742218808109268152606480587822530372186844891191022003096728500834118967629097021977803732804892387591344582703704950515096584683812905139783687854855791165680618164920150453403067477606572392466885710682131918208477363772319792331953661603630050257346703390270317242536785145514110577039936510308515668502801041722812777271573245056686298335558155286584018411076747233234663425319253107166016708314019416255137241606002780553979803783287915457993387150639155258092771784508494104928332484714646097483361773763544313113283272977295682761373752063555013657930078150160706407608481876246648123552065987567966136836689989911403455121497207288927649936418043589658590631932201822556417882112141155723454684364670928354441649904119172152901349318658448726094898186628304612340576545217223133554617681811954394743999254878291792552286151532736740094138449131783855671734388788042960524997441901507249944665010983768915055260433734619749695700502055199588216150157383462653198640368974501480055312819417872211505556865470404877919515659542434399601525578335626077149957259890706367011308955905337776270369397155413582159046574302748035902466359620938835760133201253174330905868001290472481767172114590991461199408898328316297373327715556472676127843145858394636887714356365008788316913751874677093974845202198705661627308341599954045238642099904879449187968026779217928979000123860094386718655198325631824806430768840455758303510224389345357847844283949814308621837005906347087921618988354170022867376395944089464624977364001828463027992626810018239317380566908877462184172253707956498015384560185161967976422945953925422205269871230481672897568452669528169134698899632190301306581862749875130086112136491365561407612928473013492996307740695166366748387134615064320120700818874309409042856412605080815947958016751310675682301958818494932859530422552846120938927747700259767257048221129883087123212764202779771495111989404659041791531140775898922682678407545876659179422991630107516565836872129641726431175103564498599033570891460793504204453154588158844684273068453884592606864309219646201110945964745657342023767072091149358086023623577929675725517931087363008842137508554391454478145301146365068550471474768971737119541104480993632878904934511479124384365022434075301081907723184389531222031942617853413742902627414033295027071876260351040469775986769325536658059323423608809350690012407123388589362416064926432426512601320048144471919142686569615351177473560150800595847368430639311423382001812041029013120532086670168919954723033206411729407650956492678455165793599721139738197735883642505873284296668698416638827038930445500578062108401181142635608092320289996568208476769448992355203655758421742330026563015004332920532483805851898417118136744277679092177188979858881162355149613029031460235336114890053194258167065115537404346186112162200662998097336230763612719486366913773826967881788473124713228936736568531050574440160643611344130543299564940345750452851287909632345711260753860930329824966845659552420428867497268621651754573154833714581359496146124370421603761128591994804050922126019886074486029993480154059285389611170808824254508307087905103577762035374157808994005213704189031567563537300262101340495435073211509497400040601485665330594901423064849682565809703661615656898529565832367287753479025820648278554341600927150036155948614688183736535301450286285674236877556717059398371169233732427367050442595166199663993068221939555279917388394609293173224107737874943121419524884801726155732098481093950791686619459052045124613673986604100808185881832738197314070988814896415511834387285631168266575141262781045344779955450739303430780745767333344327521213674601236172857987144145987467203850098306168758726275058392141710776671367521704435309130549104511913778793772924379176986004247470982874816473256241038284387028210057680472140553411289736032502801175118883709608388486972725381091796015773651763288969396943569566151936726723937627794050451349472582291682554208153707480243695922988592848235180380515794130956605348691487429402095915596052750874826629038049092258072732464038721652304451532175514547045212006467048768317462373578898734929968071863615629612325878920592301091471268028763377791403545970725218190368361575470096446995267066541295511945342697230526016349362928901686089077431297118470604813992872081879751096886126603410431954480287693865046300974966192082301993315384734383611075894862258565504608743289067058143152233768692509769236564186381152205581876628374189379804795701482952215761226436690325308360872069552882986189153071378689224614872129528943482704476438282094446121290803728214129701470697224485278652104274102887418950922962887516986260939232191949465303671001618735326417230379496528352763318680524952762760287568234171883464791857929671164388847923748902773416654777861937903642669456969925871809136598407442300133290515931366684344921412735074271205128276673471324613303444125386617711014175038610337075560853845585908299582692171632233519074881254142260791188311027050478437205559094603614557330741236509418785941623185792305500822858354729437554906400321059167461244385597523580371243117856299301136387488634147729980659377851791631094265068188125727052771342320685140101573786131020324547530985327471764701825799272300448868214865948661200205121765189515744766318631195472249345491267292357499489654211173588388158465313869388312469800792204441004558488583781601567006774189845988901652678878543636467936463113822540368979160765193698940855653015605552913026671344370095444529846124041190971109406527464680896565958936956969018577220353859934864741785220316921261670545618614925307434190934523815213986334027161557544478752936719322281635736163103194138612116363379142553972585017720658919300679716079402990572642134666574938118887714015235436110721988402431703774839716113122520155692182229422323678916420095445941632278915041498261680745397830842517255522586350848391985415190912744183417853697068589433683415448697253440173729458915390185398703808711853064286093901336043610635478254571263498897629343237159485227059369521164943579997867075393173722110419490497972793946368234414366310093342738889076058038377174168207968241800784396239648900620244530383648002130082811279075735470226297515579204054198169043033568955217278374187120621390083747490009150821636004279857417762325085770532446407703545464707440503275527590789303235500092086453283362786533388716840846386510828141976384566584655019194691894895797384997178739394700754966233822240557691711007911094997538104560666227450675302374871410929914073945673236385761575244156845432821066966740413870287657055589122383398735028336957612484370184850302263260500200096700450202987275294413787168865613297677104590891172509943279995270612335539978682414381915062912911096051674422523235089257809356883252737889696408934694714000866572805851626698810099865161504395401969261811749179602901538065570674818007484806728957707182057210310621699247368485742012216824353274137319672600882747678960965066692941536404003301059065403139681644966911975282285961942638878785319967866170290334022725911898620779477534064680219165522569895399714981612090428265537606621642029917324703633629638172764328828064713367743450744531008433600854918971757339767404227414429005972658496008661669738880549215267991253874470210962170148668928701165677444885051324551248784303031727814786241595819871451191949350148590439986755855737082182571957038961335420189313419365738276334895308572463183134454106253038533804426219252587483015687622760155297079335657467430048068050841641845133996599096381706827701913189526424270763727553365859878042677686963110516311852978205093799231101638057246828841638375294365793371004637508792561822620952333364734245146425989006992774863727211565293085485888181216487319344677267824481219595767601311368891570110336685400472738396389298896502733884405799545338798276373153703035169718317321915259102777015580332557003005602809325939088719892287159097661692934033583334749687818588469114742912738716637732734472446124569479395109029139150338656417755795877701759179334487962226589511614000402481261036325519202367407236514998878207295372503239740084833801004049521634459742566730699339521552976576425768082128312082772149967463985849797955513282653441843821300291638233762231987188179049883068915400457935738840476438896361548784224785441240501109012224013800654687413514702360379710176243722309918580127535586880586112959461554383925684984299625773690784450549110918033248072862246441867315820919016121892528558608686857688569600594108767260242791925320847878319921231844409857241692987079958214346240065813147797538956950840551306754638607101076739071335519524367691446570399394499672428362907024763873222191432293436741310189770060271128696349164041446418074418964690114604439358861062950613545590916168862909264618172104209350618622857602205473907546577640352057538997240108471116720577531941007420902322692438229386867916202140354843722789767160581740064668603702690892488668647953079041469650365232970998647469306046970156197858727359180178786068396023003881905862256932834993429773049747126376409712995865794002274502567260780606203499624418934724055696843746620308375506367303489739657535031692893808760535498783402541563104711023081415278538829807149608275117029385937049111868629255004020360161272382704912946768966733692312522157785152887953929602583572158807479828159410664437334515270955978283068604942049364975647075803064468651723600946649418951383525248158668700868030579395449609716812806897796247576975932375968189589896908207267083061785982672940474887363478069700647727644608289945729848643872952382900545927221468910124453141029585707738786967747539860421780452811505557321269463649096508098469951929554159973599054426217532448439097057206035007433204852103088548827318022500755542205601511055029730854982095552352428192530617680004271360931641241321688970575035011019651135615405785256513907603215910385917001606201848423022247219623652393565996955645821416997874898926303688273595000121512356528147265402852255645713314410667224789359859599257549653260572669223151245111165326252188148245241454046451707475062711809200761536292239741525313793017873769202773385657957697790070011282513246402833766336489891947795202468223545937608755518755415198134324734581976685897553176748187663650951379004630126534294670578945440055020702147930654859659847610153348182312081954498980766475028413699400401563976943150463698637001051656059879312468649627472358995297115740433438380246409574379639640834986806214667925237580449215844431453289428170012593778209194441376068379505294608391093824076503675602651438764568172065660247928878814656563447843680129408617843588437541378930302405551090772628426359479924522846102016912228319513227108019649663377177636613218423426426263379946947056060608249542465444831562446110167061424262985981437830202675430273954480923039693526481515740554986855949228343858817569403161726723637630767817481344670821610509759142664268687526121809385306843373934655690349209368669739277273240708851513026631027049731003959326049092736608049509844572638628386461001449125535828906421605789972706979957142503968456036139540033848405062389217915066673018275576687437639906764856652658626475833310268601190967647005335367793044562768825632300130262267390167110572622774070751080760809013079357266817982084152453115620210743496613347845510026802865992314197326349624438417677523899465450463739431741423358695026614788768438545527546576017601738644533352946540015465829214302852245997255436418141221779233215888488872774379075487331251975976299390977531154872371813014643487569742861760184834654426527785399603914436086927128581805600717791922506455524166679713938134719729330303418120913123062140540032061495296836427891256949369354373937774689136587137360234236138242693324262056731012503904678426645268931070192288277560725081218593367443028185493929703850686186577618836337652389925734236732496825065751724163020671615700060580499139814044019270319420988538262809812284620300607973499094723356119740337644844659201942017093402816650778232762751307440644982848524379607154979007072204027778993668628257121294420705272796953416145509908489078113189354945659242855479785150552652802013210640127632005142131435422728533460346494580781794659141666609819348950004852395659562335512912864658580613377891507272561400285677097256466909731170610589612207581478493088453785332783966135635861973950934714812822703909104433875519031495612251831772548964609364180108904395875196222107758674460432894560516018615237252657251176058681641664877979762680126372833610200083186476874023491339130724466880979937731650773866203083739191335615961312082172842539673995844733812864981287224004246474559543900784886419003915090812228235423245964675970108146937431024873655112977273532530337782068304458784836053156751144888911056175896408125911270510638459161215653932070640784945463995621859833933264776367792743533245591895498482109454884463457658243385698825572273797273830911076239455552755097319746050190474163076977300674662991787071693997141742323708905416848119610304522585254444089919768283631511761064618645772567162018754953878473444764612418476480243352975186397860505249385260281387620593458981722375807089547428463395074364834645587331593659080277529601949950772303428667903837052274034630036235913648841225336676764145434912893566096314203302961189385555236837395615056126640355798318025586771245237831597243210489360818104550598393041877621258171598810337714169205389631177361048747890780253740192692401854160512320234499751707920369114044661733461341784608239318261949594924528445685192662946305825145773631150467485528316933583699494083973606034001309779879269247033697370396154136454822089804303669789040401741378626813545398239626613422537563693543850565056286064043565050679567992328242788257099013294109462284192684847335697539905779532127866715221651450768160056287053652940210697606815017940465924384729681634859962053038601480069983981341958354034235936856292078893784331899066012057922770834906156279530375687104080704633561764365780925468082403003960873803205476406216417383741763656673002854312470539905819009086219769167874681948112143389172416699105705257005853343514535440541886956708334979586096265525390924689434189194078660380651422313764427586347089529521246100066499036616678074361670774434768643428409432530515113926183922915854170739820907050602709556695867291992788787741085728729612609915040041908079078699115166016276103232233278766997203769549362050963458715884082441175865912432701387308565081516809051754469602759525485670240415570403613642635089260723166762400070795441519514495471101947201248366442582430578093143458037518108439956579738204445441579272363864078208354517519661406781184540637330197868413099808940685054632698080024598238794808913321017369365308863342761363366532348247290392163346334858398636407103130409412116436639114774399734236303493093568323061681858420618744580682400422878881190515378618997334200705202034637684709999491945533936913939140079544203489135575699914187181755180303543669711803085043237627007821336507846396395411092022325873315923981992137317970910488911377639945089957320217215514799625345647263363460559813946926100798014466190611549016915324726747058575349006387473924106793675472512142220193207875976485524659783056740911006565784442407275238981547326553893155180171942893925569614954086240043576865555061858417063156321241098381689627122426436503123333876249778235222636025786601292012438863568618366390558029956264745114980924979024215133823732735258877656130074361995142461287624546779224939172554757980619712163916150707461905617745183815617722646170741413727171325172928446841978153878645280041119930918405495026940873980791272224124882979990548726656847415539008413460677723974521318165652554832935805521253622846838866274903386019359994834933960245937188696355066874831685999113452027999761086054614967521156995737763517785372580323135314308339288886542559364689418731559298991696358615336326378068807757797815068716736358535813638778053873170038689203261942053160894920674983479757684965461234215403849799592105320275114337321040536472913651752159305719359746692885101095497953784843974734734811877528497304130251978602593096860212066786086269104982399269312409389393942249599985045187529241519174782560201884122822658705582167487956590037543698291790542504220958212426496379744671831144119992670483622432404677309107031341956496072978230379537250976858303417555298184793028482117957620763414562422923347460596357260618104881199142670549552799028713716635847467952655256803376714779542805476932549906187328856019105373603775940074151985913273350116931110600842752276889406464163055479689292528337715417375768727162712967172819129382866012998454111690883941583756437333879552080786088249938580233198912398821036652389145120477242220516026625460954006720778391540209616833790996253360955251307376081680920539641447738209685948750364344803488790284436141995423932512054071357482294501163934199183741296590956129224670511603620060388583334670703286915446893993836378362943833807878753824990314910809849011964420830583958286115890824352543539677451706734321285592322427821516495162030764457647740866910629467668727831317592420829032317705475302969000464108471620396261890386234955914694383803517322224658804385646921010899974654652751833223845998120088055981046351050585067918611404455763440266477262564034249657170281855667919560360571509341901484766513996577542169975312081333078866454416005680056639549979741581624377663057868072527429831348502260214051749801044328636054741899479204963961708257746366117427265691718094072466455755358182414393065598551907802496730700178690129752039008343183731335952731811553927686859518240155986784614942622315063183465404749578300683737046391981417940049928694151380274556483534277286909010169403501169572378289946543927814989391382220535287143685124238809676390256460560482725998079941910062418240186346768239854569938526100505198984712726060067790633062206300783016516707395357816558210966509478614788390376707534063373709276566828475265780041207349358306224070323559835711464226518761882874727992610015465038905997045491636577203774858626036240496837162252271440066078962137291253465239382413003893801677802867684528946113682554990852240988562356885898695051571069397230381734887648482088246874176782103140333053212903994500014621329761539593763224605603227102004243487608988538403318601011623263461108676713026008368374442066217047665166473228025779275948668176531920113603801328567321747038973087206284334230860935199796599153697616530998439711815057301328228925665230383978699133788242088570629312244239080799334564568155712271182542186113102760325654655902244897542807364133667045913935881629392081341983352899048673907655191333976866642074028440328013285921483814523069673696973596877481877625671107240869662781462078776748912430063053756195997780416935215113852823083079595758156499293044441083045241680909131112003649183564410663506765293812871901964000271550914889018609538809937677543831949946910040603948991171071788316543977565330978866288856326385988850681197950531184453866518644168894795145405692077664563316304423024760576109421150045449627462181206955020310752673652709026944195545680838252070605557325098279271983618804272246257042009513673740431913399799821569459830850375675648085408810404131985037834423250196504008711186772285422497957953638790847119965250646273258860103311401678473307244338248913760473580509592566456781914988238324239461814737001586902606957837138321118868403758099773613101243477909143180888490893695577240713388617498304264416582808271806079522604504813692022774957973041813832470551062919305886329549588239882856843734381130505181543642307154832937625595306097975860290734114996844687923254638895399005071197120966828187038912262942649878202529338014536872745387330417032882013383319004367298759440969166218154626298076211519725348804709294200942757519907479721413450864211033058245508625494531992201749791995542329223154803189715827021791123538731413021017981830766491226048407434876423999719902633812400665907246442400165719034890035922495666136058728790901772829616722534976947108966298353144462114133619563442225221996725066785380543447480615437826259715233881066902033442690880266628156669311739578780947172898130515920885779064622781805695473835429770695834119418870165438119640900016901368026086527751329122544737961030158773753635219965144861137905096777683090747185504286489914260824659634127593443044785909977816077151532637679275408864976248433701376148358011760626134239528326632633638795377975683704845083881686151026140916148952262373095525183647304087209068335190200178565748137639386484935854678934133422502029046240403077703376115489406754583167072901180676297729785171997545249022158995755981584492699662871211481280115740258697940387209772824744463144001799057637918494847536153028553295796504520332831578212270370021670852344921082791540212197971282688163840777490626122733766429704770181917695597361367408559718672135743293137049001784679473586717384708012391661340219868486931013007083978697568287186791455100167128424907817243322163926774850843983143189981053142858994368672464975504458957609200620851834030972206704776083931427356124331988441780930542457177388430838800333481007470767051710277478892887801595052655686648207743131572315584175332379063410391839840247002485685715210969784611829258699633702436034443320004012954928104084453861111803170795396032129588879095857152976927985160157409750164763274668878685596827446051612286912861411383487896307414020406257433263686625558289346878428401625504735167282480088676407954939281656967141024422616360001928633148882984209744543212069839700653358661996521182049408221027991792904334964354659905367518671446805023567020130438673683094791109402750214679187103862225923101127021833139441685399134412594943340142768552296565558889217845179368047397635157271059023301310435563703729185005763970252418739003250420227976125981690343700099677308697997952714937565000013640102620063228575948188838412956578477730357576599028580734457673816337598219196370653535306919170919814597665180290626212299635074566013954472371702136984555849885650393990541590554714404697113095209167992144762520145311395228578850710295501587168505554702986391616617775610623738463281824746528960586430732325314122493380498427921370899160317258573042115421780057886851251748429587012284767059248385563712205721241690528180905512013453346026921965616407924520457012508677075851067477493372898744196613666344306574151471249046776154813176298291028499501348219614876717084807365024648510478838005665109338693242843344611751759137159790618174636536903768308590468707053748884633513300679809524393594328726681844766139697829843915553276138800004697185569896784374377570614897480669992911072979197381328162685930557479987210885570565199232753766405339952580415397497613480385354223577700648906741463691969752788299614543677755576387500579532975585086345463629247844084734007175598319089352040997446529317659094529302577972078942427157686853640718913818834394276577026111877829841744270067214824179322274577981784613517158856463206633606226842975554626553148372860204313626984565682536570917590102632406298332483498971627551068139289432974956334677931657129129096281020233645386788987392953671260238476318427036229400362988282038740174880108763974584414239714636819667527419240442063880019383178983228555232063341538567134812556579075553580806163242286685427373159709865573777399561365804140195503786152021187495167590109119281515818527620018775545138032569814904906270760449791378584763763246465861058190814319776598169747864174794132427808364986864544528635982089093801110113546159845717029203445678011564813037822328846096070644434913044320739247827516265811920494704348990210116531081835038205298757520805865038701511246033999158400128237437832237473223949544042226696951524612257197761543617636252201371045597937467055236992209277312810119310979057969935656312860071317322170342033767961818760055129665483630296415073876498685712011695375901435179574920115112196148251053408592961969201305254401363953615048520683151074773590183711206182935750082699710307866716966707337947355840072214199725632279494105658721819554568831768409536390574612819738259232885596667880607369377310586768157712830655962246254135731517110669873265651863630310018608821863150286127128607515796675162167442358650111458940977795622227023678077998854196041987110627487685123251895214896293917291301998475125575876754392436662419998916794990285780121738568379463278518556732748193020067358825537052673014970083218771986807427066760043487144238010865997470447396909897127158049307274948175906282191744531663350099086291527982867950877653951549932512101198250214542817575717138711880611181307066648253717002023039461253111515696650972271877399419289921946823016044132492687391036669242808392794135332888717839671771057135836494251294711707708251396097529295612044790140458510511777764392563628531008716723677541738671217737801601576928081570252504956483463658514309345073743840588471120921945577943367977444759584604840155941418084998416167236108655397933599880675495630946593366621603323781103269651259973756985028419454946225700218846250814731497548871264528524860199328311681078850110257381463492987353131751298555588236553834281783662948226361506133743240964042731709309062172196725928278118749025956728190338607220908080025140854529384515522552128582260544036253438904310531018518384884519823697536634947444067889640090988480893159040023298176994811404444842377358715114121931578895183640800993624314777335619091457943826266217198198935264943180112663546445427647603031120744717839444300306190871188122583842966672486809758529097572040872558536600849343817502367028470931816620919028083897023736540099354677157836389426264946062494800757865325869576001762620363459995233549414090058139705837013557690744088913630287401592443196610632317511315536707578605911270329145396959837863911261002470167111302058251283361805159004070168996129761715194456542600176264713789594358810646489330722426120813999573252042718593263425314995901344874482734884355509231203685645354823484131678941304315095959988500710011382185890776213730698668545639365522517518047959339674046727536449125923182815105928927717754456013206187324304304570059795191739331755016688988242479774018661762197259473597275906032378811221563783993531972032597156726732493767940459160418384647191080529088594764949032450333823839650331986463442116213742235908868216551879818977858769477657357528754518168380552827469674906168828457195204472479042077135349804946285320285041183912645543757795019484974222212320678209506576364282432528409509361761698075931170230014438729377324302513629513551775096103238661377043793027429142327597427904950423095883672320737148913880174439023687456280581731854309935073801471597627813013315898989618284160597815021479144245154402236440523219519035680280612739891085821673960099325644028228268303007084124038645702673931375530708445806003693941651385148675695982476551327149380251741408415622784132394380325048132625795088908683324575217166413547844803971623014503016345930800029466000884700100863368453977043544655297232972445681907545755972031967536854294635712285938565422137941671686149101840201419080852828603060593569666829811356158670201741142111607637663565221155698284394399503569095523911824855616172597009319960074521338626062560010610446677636988904103663922287114214341639511882684589311337347561703779158979377668841061097035808127925181638034384614936694496392993480327933282088282840229822824610555895068373262350860501559942115749905977396026903952470210476955756470397548689091560503061300297440799798525860018378877423822335250259333600794080854189555489656703715603537058666799538047674436938404817268399799008100848577049135029580403782823234037564078231438534106514222360112641479784087864485640326360897281763824206674803241279703204525978913125252396409895399177539716406906750975975702773358558415826180419026075050712991674505017130087936917295007791357666739447769798891493442572273790474944896953983599786509139062453121625569785377144296913480529910033349384782592604726160254933325154821455147918892764693034485724432869269656574521039697539223702000476358875382326483461577457327236919960821385875451195473509297475670705225934872566435627870656939997643393167483645197252752358337885328007456408870891526195528163170701953752208320880418597889958722226599971265810358348347176172676213598514277308214211906140516670158364022028842950811438203424003300846129408808022701788612960201252553197369604021635258405588926440086569776196157732645316965109704236979654823800687847382396821986721077329009723012918236745021286062545844893573245577150902064988826839966134996840981550465661909774437266377825309589478340457886819868057937620073462379743959414865621997861156420995028734758966550083518326136567248319511490957227736597199697856003327616664042004955981966691587277452148234206425582551028629835623638430147433655111699501138300867178638809921821102831823464673387102093383274485830748015121823909053717427352233412326101244570637227556473399584307393128482021754281507800271701365939025889203546717281803620678662614115998975980536486739027112112602396933997377725494427958365478570932747523897724387466090312777391834076881166414579411242646817051746044755667922101847101798502353558299150384464542493219316507136421620185737868634406956662302123393555393827642155831329436295379469320939715976026019075054625915136166275967012196142069142418020279322120226644501114933986801185558764530352300161638694422251335557641532009503114534801379175387132868015660166799641455750167553033508966406990212708895721330518168757708966675311394815187448398551895222635090946344112466090316358090547177468667054875587110544024190094801687176003119490036501728445910980990056274940043540172537698014322952900625200090002966155287535810697465543980842710802012936692588021075679823979623211020852943914229529654735088144157737230611916602369839534768731438504998573934230718906499709384186884322104809254258028562600108694205540250121357038079330941341884113895217755735818741338620155000348018814027042935923137306625291115561025857108113441093965749865056613648679231265353801132304746552866512852471015902034927464296472657945936757058314261448967798529895496313414930634308639711967081661814182531114108903691975412646329731800884559362538748159185534369852336898936553940258212221564676469302990881805162227269911517365975080359546922469032484426309912007485422892412714615753195455761668362934423044770366778469109454013690895093989710095085116867509703882084842407012353835926046862713946593222303327870569850441548840022813600276591066874579695000203135250518183040364841773876521796426000907577438233086504322232030563103917222230881697711442796387842474771354572486471392913187673382856140109942646291711798748267449698090895412589920011937208437738478772371060018645093636255400520881254248547883096852081567840358990792368828527748065168604102840009415613939277227895875991569805017550901249673020590337457137653312432268957969841349689043867748227994474839340702648775440570101044506608630838353355372249959386849418134453972593296233660169515437080669970216639871980116694016596204980817048340390105940982742084571950553675075740522540336304894310227505285292381929659315756210598805103260269510309284120822169479611057226827176979196587735629571872979465589184630851248873226118780595957205935490994657810351887265260514511072379178655053971887541092678830072300717166934237339371471232185157496252561615537896740146618631409734828137783344755156206662194334625511844217613046850337150927836812108926310461300922885615627933603414527981419760713130556323365021169140397774781207593561779034656215313580812645972660301811571785798040798309916923845564528024624535210620423278212379280605402117016712125285495271510603252834566587891542225835272550738909045755741173797769030815497290162806153644792135109874758971004451167382136441097986036976009407880472295835369032853160432639367900564257554665519359633814487396714674466091321823904092637234550234422189351276843585969696312792441542046822339778251287575179643640958846873832626082774533798346834700067976657915117615085518253947057974176305273230937557988311861236618629654115086135643715592427102595834033729745116803250517366770156715630991436328759297663457847078827407046397418957023216755179701446475741366291452544872522066775100951851005978120057987170789564178417217707583298142895674645213099063825825939736624261645615655667536561466191174119496438701164756391276807817132711471053074462430874117852991079524907560442010327223853680671843459452941513768678487598674151942269964996806402540868186690521418843551364745136186976351549729073251441676830125414568708657497398466168835194806856177796957763016446693389915161198140917260530639372766215811567729337122069273970734134934958057441160626036728230961526236662716189722772569650587865137990969655713299613437519016263846921801103234891235453547067253122138565633443587400708879866371725721231894921875004934228078392675553798167278603456312835674292703620743036335770554396727113636963922500036213308135916493123257331569471797061664498310472515974448769721061451428473051656801712436861928652764846567186155118460781653852329766038484798496304377282585193548902558491905035754084513067298413447091671309296304838027240376083205368808183713236781113095237123301434161007175882059423310760891177900738795257161017291964631197748998747030854008487852415384323117729933365777874894126628247609215514688811388053243174110936568703005071101502307476852800036459729170504031199174900233813002869087882229952006567729096607464102575247061969987115591578059496435147030747425599418087927812819655009339928453904730457204879030814625203447177736355864211619688216685781884525233980456328663399239715024636768071397969165300124672658208197961635366645452892799566114668672988289273156764730521252992092424119239229626781397891914544444859933066707747791706701035952629142710731171696984224158366108573298152132758997709662199643110677284235567314520692585606829930511194411491296196334757142549222622632366311135489496971761498497351995948687756592118400973919717148495983806521932579196240973222940895888513024034403607171942485027960833284953137253504821284110084196053447471027838414874524334083823170355329638633565110032487760570492040633331144312148282324095424026298870975281086755353623523127933411753163912455834113333349017681937589510657187018331193193136954702429963290015202187385549313786979334179361235030830108160387138695069857162539428324809610588170575729916739362509010125084410098161311191986692625757773739658186483275339757994456439499420218610227430856114936993208477534599383253646661234473961232105540127020331978354361609023637007985642911641933202419881236447159782303110245345691376498690189036793766254531400940827626131636677179299316451922480588864117024637934969942403595650585073975616317446569136049375744957437606969219096188495174516508381663961603449657251323576748673812389094338620075285607465143316772733783085061743015402114421625439347078770934669157623278113412059954657252985485368828088749273794446940002071511003963409433174236188417898650493127915445794893412335392981748084576070075086653771801819224668996672407900979849664677023691014272978066278138304246329140913857005610232440937294373808604690152778668537378133844094137562297264434991358486734513956062394435625077422349442633310964138919601398757045168156482971562458293572907918937700715009201137321093278013505756308940340709533696998423206991715682564647142019334556003756664694532155516628127394967449734419025830043300265735600243137645870992884870519331486833616100262164942572332588878425553062254256472985954532393187754729934088197504095105023450261422636915775608924240364188949108362910778331413378307163306394197686796413005499323991612902109596032450572678468582203872007035431268083607971484245887647160713324685450488402825483885404519581625428931601336640818976197101895366763663116807791157056347434108854992645160506270663751470232508838018136934746553950499515242390076387508621103143467425841240771386785954524628966863968782707907393025377822764919808432213805495389239869877857034252607283222764756619518476607875527263449859270314956381504394500398306304831891445376156939046038742362027742564386396066644938588598706068444948287260206257584300762185036835521677306399957998096067936452884628005791759669397396991977739775121327170453356326884753876971674259498092001820248422945178013835837671935048969171500294172860547167093058586128138826456213419418908050613200235032389253403832478516123591011180212243802232888885961515996267888879773228558993728045408515271326785491597678193581124094084436032497174104744960243958526033296765403408552803340163387263445076964000738074561214818972428717197331225933009792639363712705414927450202876550443761472106481784431426286628936674513009660785841432135985349053397217331963206506526272797134744290520270903425583441038245229452644133659691120730283384001535586750634494410095703200483438673307299816045743749374998278262306568717937363165079492565447989485400950044869540280490667546146792988133120534864264899177778420474126404050152040956519228589030191644674850655608666656305362059771803062990642061727463423150899331663294722720562664284928738396170948521864489483134392689995813927604370865835116605396576944551771907976492076147466964985282435375459029862509022960309882491794008744892463585890213809059044915823381660297572861595804258025546812899060827027870714952772176787841975444432523998724738337025041923368618422647306599762577429626820091261488090985624408521791332620741781145677671177986496153555645167712084762822477303803550222447044013796660275088917533793682537735949846422532676293517599670253899356614497074378905482557495749010367325460153178087208224030382399273795116031794178666838413210339035099048277177167170450232051480163991264852605763089085978842284294918428866866220569039966185902927173047108885311716927711270995965177388173868267240123619713782891653149816689682173509637453238658938088519010954518961167894135615471543449878918198349192642265507434443879823098153478881619211138344820173993426274171849443026589378772434786838563362727027001289125782958868494025648011210608207062312336616471737341835312938199816524105995667423284466875293204091360801002180087676703936378494459787895769647698554885795918600311483787606744658918201419000862001325590168723805252248223661220981015010934883799126955622723462645206337379801007475579220767938776617339971016968494059068244158526942391394478746667078947195074329377804945042520610148270751396931635971143304663387392533173549651284851235259348568632278953745142241984979736277060378498021560205530811639699150246693198678778591216403215365660684437676274023204072520656921402368930871844957944913679381281322930783204787221791803167430421400827900861172338511047600897229523750250811145582455949164432485361284895835452006387036414952603374900177834949776456908235967249197090370486240405089503540442296881912380176111849428591183955645823875084740060772542095859167497798435951587407564940865915067190698885636069066167256728510016698204686963045230832979500534391174553197879431305090470453055387323489251791623203572929702414968256876140508492402662366791447574593042444030207678807237198832525987454738016140962712557540878697010680574365960298471566507333458032341713545379932911152696159376837006830885104684617148726373833001165319868582965117408106970054904756557931915999767692703944358812165912137871875055985981145560729077505574038240797894951984747185883673900316136820934382035747844317318767539620820742127618246002908371869427630904730747331658519002252150459920574764049319664542092375114914217356374285409124048499589357700531709937375500728556388313090733639950336734554948639229351755877190693667700196587635477978490262446548397572605912867825587089500454016402070858980757176396074513897102391334698127084629411907322171871596030111411721196945840820956935654657753604262978019178282893721823619097758462021959684033610067495017907588526245389876437888296424445847545467506311735084694036402319031829641162521322067980158947371317454347879925843844363261155626976608489650398762406193421460206089235513289775285288747636898651053174893847609863941959833699420034124753104229908282159342918100923618644425226803664741813543731880309169656569086608207526786593014215250470524222366934797291723981170371560418773482019761399201352515577986033023674391669552203516777992129550581869130543075800312969326959080000375214074996434025960936154057714340843631760041373982986188764541425962834622562831619491997681188075581455490858213661618048086073267828596964530316943028028750489738870266668842460303614936082174659838782680344716042243057812044188880182214250017894602141341086190452578602911642595112584716543566085018799783074477847945248939248915550946617768447791785441560315667651388883654864882907824833906604454557286886116150749670855503418550056712162714777373925667547892541917101480219218614135861626680472811261342845031795572636899188371375659329049541967006623975203659383398302650324075030478726737097587501049512239347300522619342052097219095051713865900468720478365247720929804783348165517280614450923737481685749175405904133940196318534142030009161260413921710569488369487778815956119071807900246503968981160305027501657926199505224072987582226255701996497961141056006589902697697545494621753442491671572874693635453661525645790014860034621850955668745904855605685560605250749771862421058301804294188849737117929184238565485858992786773579429237424449091575033191017729691844036402633263381052013868322773136533302879346838654631141856546399883039781957879719644267610760464761126635915256261661776945762188486090958201478244823431843304075499708507832580941711777421348967892174882623728317558724302778740133093727543751524259852327263439782384711287138014449214479133649066840853951307142152326635101071686508890460060730980448858475658116987848336999405070432001240449486028349518477411168312933972374837578031643366809833696346770888123222133215942493060025624498423861581762218229568564814595069103487520561178243122812372857968679580812292223062092916402484807639526158868035925485429805969969246856132670351121318926247159613194656659494320939443475858299288782118167995126425265914905593172723791761182893546610149324326566664048335418481808705240060011604593043973137638931162146655143232726233993447085394674609308504942194591025693665266187960819853283523005031333555796600440443790980019375576507764255073862944567861771077504786929708603026994416645463461546088036427493419078922352782533791972128692216358392173623063518377118863718309168101929937307058103844603124812585882131080732729626157830777930440199538708631549343447800804698036765537980692026696669808384458728643264716448244065910585088014819534137349073380253627327472816671756257010930201554058817727417040599103085416889605281628077352423462295577637188102061020386796779113467501290460685117089463914851561152479252764009599044996935361408551099971161264297123752596098982299845069540464383448512059567598280526970903155702891401106658095130338204860131855099783098500234711060569549686936004226576876094816355414872067456374561629038564219272218936929772280872556723806146344173817640679226423144818406832768776552003736786766409832662504656071307378309742337480736380860298773092212736421302163203748094952817139953714363287119862112129730897481210077259659466884843133755301006241303489193597201008908330812071450694801136938443952586469642817321442539651696293897029890294776389624553588204981224944038887806443961376821643752245469540778435899128565467888054791061084226169286270091531792781100793022729528951894425613676071699138693061860872447094557044921911195954827359028060197271954922088409018377394959662789346417170285423242995651696977916810773898329991245113691283441696467710865945739945692362304069277355119083020994132066144432364661374316198672249630859030000561170957756771993301920598811624451447194059665688747610105489103944070096933949351604414436106036298031227733319953337080206738596401752132821503888828773714558282389270327494804686391867535523716365239912320022274350992645194335087072974657771457721656688910181687183261735085176411962477492039936888258180840252360623717193310715725571687407848419323231476001727620146174327420272743674165455220361299275855482410646023608417931582265029107114060339247684890341282776522946083602072584443357498152128689478487676668246750701380113973250699651252898552880807341990301183797925526208728606331086515683051199314257408202181947446347385519845663455773032938095763875482715230133600405261642931041661945923897877415599409879205020849584331360478324528042963875630754473432540393885147306731577081144024846755954623672069867830778142538878044418500433197794109804804104167209865342070068407557948134291040044694445496624875938828425900266403665436910731850681925916092577448951084607113260577258018624996452349861627341101889202475069157569180827165172290611989152822167511151867211446747158829436049352249181567577980787106191176078553366631995109098352727336199964286639141707034798672451753005517016076308483858072039489788257886798112517226846996488258425676920718506797132633537046304027211181851675406168769746565092190996868497660171719202469580137987990944822757016805421076619561718770237967755527250360933276417183499651592003261729129225660491594869477885397368370306932362729526335024147158600190208359034264983823836234492411722045595563477861649361107264141084824707628876253286202639591265013385767249732346168969040760929236339962496744734262437262212426721964512328217297031210875861131399247592698374825464324488590175402575875170890277565784244505188956634101686017682258773121117597070517055477449646135928237458893758113921565308024192013602898010672255255043529103058007403627460450981048047404450343283563516888970321650849638576680904401134886040309145903952539848382027909382115593844503308689591883787886641164852029686437135918629535071540907629670084384682000884472910091270712862426204468699924353601289382186832211744497771009460216515906532711152955923665966638129103472278858013573086033447305655916182408514426804381630173912795475748889338655204511033435422734061117605356194568697072444268730469623424815513095488352268755297039887479075965350992131369879236165556706671355356506298364729741386868787531548919322459798712495705283217545954543381583054753761811172317778945417605018343946846866498369606967561413869850020069442605773636035600811435762589283509592547410215311693213273600192129418951899916929803662336983272950481953849968661349857672632790118692362691984660311383269996270431417901974524802135104604541121612049907331587155518236934130763931437773383456665703885760320988488326437789464881466098348474811259374040072607201886962422792604057794144155002028790218495805430373415042973636738416527534908032795078934071748408348600849452937085563579344338732581598975992674246427512540804942709707864585626342239540716551382711755943507371096166078290505671621301738062794605863201113423006073435393770489015340145098129048718927856999613245990885751340257859986590681789590968838273338557268788827317619978153192388460622575057778463605879705462341121323726211395291283510111767666563873646080472879476271985210484485262490063690856758557929891939224577254461012721838120382444576986934666527174284322792772486343817922785915696848090885185381345444459023518685016544912573801876846590178127059878498082503039738553506983543661850134940637900267306634041397881479516162238376244262461352804376380019688530207468762525514488640502363776287345394124143470300485246146614743609978105440786132145246882052275630650303327466537727629515756638102591625813620730222493368889994461892932942092189636465444146836573753336339898178412763720867199801324887664842885477801546230582240137837821357146013946017671369072210252738851630070511367110711501856963616394618543514460408212231186829390128119644510166171781488770501359453529796424927810849734505622522089381177576822245316396252075877789823223978697269324616970705960605718365499653386574198915024847658036351039154286258333975787412469924355795796119325462144181687134347297507143213207499275259101142600568357655883091017806316452940118327518332313550733053958508207575342692916006771376696590948373906308329241154209073661086814725046322150560077748051665910732821678417825117826711456467874779521705565195538224051961072262605028565807199954318843546839308942945979761441451418446777271360285566102206662015848276319904560259791288337466426526262750414999635859704408885848325647308476312784598063445735718738962969414277498976912803585341519539298405520759355938357075137319544856551572074829420745038543013962204432715591446067616123731080187225013638196546772999201741374013515330131579324220716538195771398988613071415439376580374945390136010121895641588438963918662300556526128931924643641706349105265256034995086968634986105613487447928948591360253934601801976738542443685891064499885380507451535074869634552120850777426078966908581297914535831747892208626179787599273195717754780923170146805359029634876211439160332164978219874841655829917375922096978769439558922269253212848944354513538217787901037991283843179739599969583257197753638227275834642428251716247458676317750118979445560142110179229357975868424030563872193608161226287665860727061693325190971839501530533261271411240805661318985407074476874194978624507239777534570557451015508120661372238746041387796739008225803407433532856554578390035708602536552268932422525226409507075261993913203232453989093600797034096721156981674972952032172317824643654274572690352137797477004068953339916617721220645814711525541611181627664535462895646618086352231893827874307042261167614545261291036067138353779255279120066584599453772096541038733891570932377984011015759998289202393253248492641246287205960300623614101356250870174615882654810955925095773950044183477335023019536020325028185810222805515617662333624206741628750426207270757871116488465700476812976216071453713805015192620970475104237353510756025102202479236894449892708809165764687452670828625083790201394585751567222637752223844976424041760528870389521168104320586691633372095287388238244573209878850375237518074816282818220256700280734571616429894888909429223267831192209705640857984053627818092002887745207188168957306169974151057578452637949819988467602591327464854857624377454745291793956476419249322679442995387366896753260087708775414575662255087923849733079682457305012906083775057020529974405630725286357533530341436159884394764650081595943748239627766943002810049271423462456116308926063412470421115929044569339268717874606435735099281964463864913474690228253187011155685174959400577164907723858806174261339481315284733912475368502806367332269230016727673426100796984482657856280637014551697421736217604720626127506390589870414514244171798828009447725394134659205866248976180337965643507320360833724343443747691264622791816258841288827810068014651233390262849957205837111786883388985210496575667839938051342622676423818565916047029393706337859594691335256949452335049196147410380206749130794833440067646050120195640096513256648725453871507093297391710212799699864143011870395132392093060791076444066632058546036817607133131759559772051002645163183104664614861724690029397194658611279011897212412555096219118541025620991373733986814563296794917476111793198028653802547568167391225416780017528773605331314701060474674157867537913242926530263902102041820301990258878362824830443433132470151422733778724585320896633076834997593079353894216898981652651931718809277318295294791448505315275945551214776998273589156320859440079012514468809371805963927357775263332335134806692872568579285970780765078181494179589374762708559054773794969232958768199648464472540098051517349308405029415969513627440277246026040081234127622207231847531705229775856849650474514080064512284849046066929004089890628056794805893592279907366196392356886363575157032519037453228375907913262703397550074602333469990643643178002715135418418850644151632349189002269789881983748988449281999837171970272827227110042871997458852705964857486386951029722892143308545187929717252297466635937318269257238073687290418694734073160511512483345148808604455925837760534631204055041077966868119376341372511056593597961073374405585551547274412716623326153534691209311583964134965592067050319451684126313357102679160950579780618841705105396064563895352967438298112039372968435801351199169097093989533084772109067522161453879889739302595888100219201123055804513277646958581879825279779302018563047156108401503441810520929204035719957566533465438494395290616828006350163044265553562404745783992351854569709659780216861715693256990362360216943411685738630516039764698769359913688272575303792621486953803825480754756162524083049609515380557657244773540574035051810492681829769552482309074275365771769909012365992402932104353099455342753259252117473780469061613788285945451934310901142253308247659246391821408561476224926846240743940043481370701463047880825637261488309993665789382774424572441617354472714433317376377228474194767886830562014190266751297750012001268980236942066656277458778410402802108251049595996153039208207031912030048571184319633735663191790567752274342266647942649199777040480619874669990099518558928672547847391635812189211096451905018577232283424134180230837973107921107362032114586060477103381430887942760768624045926597618221807880641311767637126083516102109165309155807912130062180272709114908382364945676762087253486626372209716591893087453581961120654495105754770405107626124914903059508065084542651441773719351821571983696709782310466125811041022581469698043884706006953903728284203880747718695728853218549227837290034776525609040074281525706345208493533957685556072935724897167566013894354414143997747752176699245434669013735724234700424635598442298871752613290777789828539366187556567663285567705991620522681335715920611604431584639457237036960034505343369702886617822341951380574482099554345909930205928689477843162375613142481675542746355865712176349069994800130410530487599969437553327050531279357221638180994941507117040817278061946164904635177463327108671249684550093859221159160474639157954096745280836633996044946471306091562414502767759013356661808903150918013764271524060219863700324799458482829348930526796374111874207891193172524663884340059024833430111068918533462280602273046928098465245775389594810514986219690508668331105433088729521756604542368645944928765423472101329307451611927077077335837970497494069891253954712085306030179221970165573949096160337696841776873985899101076056091706911784677560664286192711863999659740820340036010565610590159059299677793524810824589144141497263613354153317056812839670221846674205771842040669788469196599243320162035531237132829402592374592584230650140585140559026633747521633604685530066689615227619954628848753318057733188311506507164497375808911445993166521629237354278510648959532173487236517145085176327905793128310777197081459806600577660183802191766919352999470381056262690506674674532274756060221687952695953706896535695629841189346370542775887375518856983096069821615859936072029167943890210573560846548731218715869347377652845964458369796051233280953043637426581743896632753372228814442091128908720739843736281467319460405384285160370644741101176574029026883794417949771049531870275876933080856319573149219347758323900720730075680784985074591931893848718280798841339320449967867597736365655594292950459492605591015361515930629894753384157742167219147844480828859671526721112104811175872462621167090654369832682344866400223262289288928545171747990864985956648299400169353887178427123929677959594686443906531518045101133105731424590575432760427965508638878224683931684126252594883708220831962666089852188720603970838952174128720561243703538847378359840342840703765466888480055444008763703961159418194728484909288679101581403442820722286325759093336755060781788414501716557401418179584378725811593871612540472700056402953329329356415959211897847013833653977070809026639386303805295812672413229209406062156860136040735099605973807613482312480617090059943008122815283897461485744229966829189454502653923386097758771162700633325702245432977139087003935975490828136314914309979978446242281069086073269524310538784844234839497361328723229650392757349275412320902946208894469685190058734782582243571631786616777053520141341955791400896625075554569702753929884623694249210750401481006831678831326698357694959468512786773820705576465682318612623307242235028659432428115000144780369688878174827366947902790147046614647258000741717268419953982540330267295943947124469432934464420294440878856675548535827699879091091555094625389319371733389072386267916412389631978367554213067701014639985272220584547671818534602192611344587805354592235350457546759049330474760310793304890805153139620706043219464969759781415901690598530592544604390227941250754997973815002342072449525374856523649548649663460833795245135766931930916333801962759344580612514188377260995479074654217782183105345424280232508903729546089569873224622369335730510871399169999600817650984769422813135360189614963831929732580607804281232039327572234698152746340195916980883312762455970527969110140955974506863097366532766638730382770904236630744460830208836823083300171473354007357513669067995431541046797988994139819557690458895779080886864444568799192527353240199705587475254158918604442419749923294105515412771935067080096566500046693895298976353216833976569731136729608864922832092292993583122362975536637204916276603851748855415317819749484272591188265692249190979123872046663997657678821887826252033778183418431777071937941692215609203792302255627149833362231201411501008901521655619431910258883225734606589181564528692696708616748204183300622521271842104535026981662229645026373578967936806726746508145234798324297444824764407787043313558980778728840309216214341440658416479771468741379903146007840329471263585445096439038374510658622823734339871740089432435398385504117561117363927228396723145946147895785351544022354842010423785475864496717304902756259806811035679410269250907374100095300456793529401476172242743577987193599516609003531413014467903679241313247504512824377320992222620936417159028989593477412496390032057744082327091147431867019183026181640905406456631124445068042193407532364546477993712040654856816932253479967689028244594137075090369730412590594397350235711472555585833750739681953430286384528981390106175092902526216087923404334572502183123206844465571931783872507982355314687072020845012421529689243415653755403670528656417276916037655774850990097822851138355885573991843592755573540668954927366619104917719406929198568876270922147682492447154379199625898733598460206772129463737311069938568329963315645356441368448697563450356175467669021983759705729729270171359505138161371632924820697467704222142835282275724375858036982007731069666279316070330527868069053612928382468868710267044217311460451387108600873509933936316584624512266630071277301139318807622469894677037880419573839458463160496241398115594938463868975896065923400200475646347680858471734519236242242147528240715500508231088782837091900526836944773766777085083936014855234022174871226687626146906155343392950126462498829089091773382089377882187475791482911934053998436540396622187012401424256515932485968311738793172463171555610448288509584547746644588632104381222359409710552429150327008861935808421610533647091051555981697584486555484243193358571179709296198045735674030049716220711354131450049631347061848483803901347864863760079386646563681439262849201797004700758143985962485605890993444278256860307865204344865215470630424551383855969565020337602310156246173207430609239858517996984541093569267662222706845624238077479516989175950044459184332419814519179870582106995043325096619747346872345879695762404643957110642262507408115857823359169167802659292602348702047831741116389288077352576740414942215807089509691763635857856650354378003023767669432139853060468509324817440919975975058286970114359545331199990955785049805499369139439225712072457382440273760677574639417416866637040657700846166401168061242514897104795692379175532459556838575824164967478131421987629989581000889204801450826743744679747688244125499758014460159196275839971766542864286454513802854594313377692082675088500396507377156625858133665507862334957014211822188514920217436175493862650753555370758681388635712221745461789173973808377493403648776826808312430113606675327404271351348053661688327773411946456936035992245400092402055305130869950818526557505355165473272978385180603289629019767497131953757085629239562482988472555067681171918968305250388217631300063133997580146971771153056392716622612565959512635996597975399188926572782007656378182056357290459665126163809961867684735878176305889828540770456810538101861038715913650503408912585420813501980264797866878354018287270269456869006885148054685674726130137152000335026501062766197215044984186083784301798729734274206032111119538086338437977958488803194939885017249619318872751815034667941070834637057554253775083411078832411446918942061080589471354563758693825464874721589827782232046263968475471705807828973479219669841362970104222683903464169831735238920440927293327014441522789474577046498666038650285642142554981259229111308965540305333979351334563013899663872638992250760141394469523729242996462921580689650276075352416967856005098016129087409598281537486119911917288914814582568759483519420390594555781390036663304733877504967037907487834437519112150841421183354491642809712001509619337257304935437207413404994319828595955654967756217344758317823310619548221257885379308245323644484800282592839653678221963228770965998839273526157302013576347006869172644244878587084207835562402719337009400675012299609149337367454383547899598657317193471835949910288421368237112499633883675053979987659628869008576039408213683014665756519073406279376297693268905609988783731701012118247134424452334736779882027640875704563631429932063249857863248963385619280184573287110305870156032525176938529864989106521787915469176208108987888790719344219538535471495738176881590490925713989840833116119990575077080244302583836132597894155131862397615704040477227429922814522465446537920760554282126527770506095099787173114486272354253381764905760448107454364897467577617603012950848183324795655404505012952426320469200209859047274744712369419002612444335114190139783229414143524334591492141396387967077582969562989597378670467582014246429782356532833249846382164356385469034865895239319603901195529949509748459025571780536913724569579984142895250544869693102391146121263956869814396283299347977066680661969572137637857710897881869970460250771307932640631455860946355042087413868289544790754065046447141875626904319227022971188145118158119168072471442034064747068636188765791822204360063013811659395374697488232061054701926918540898304401931901707882816245462554228631190792876014193037853556696113367021257377955542065011232650366070473135981593952846140080288695485953950174466293645368107614673556509285816318781192336126823380582573412591561758199808399414124873187358420647343498185601179254211758491594659728395773879222692833934247435846240653433963970239384378864119753480045107924990948948421328175042524148540559859988111423372526077637155877214262161185911112611451086236670382169091302988208250889890579642619069131065461747837740740699176505913755371930952016880531972783256085644627409595673683838026292805032781847671972910274693900829338073335374696126987448255045292968311470115842343214174996548608970465734157039542039020258068246820526282596726344767271776194446281295524763776974276701698863127535029534411165358230692241978138490147811652713556291671283282312968156835739905943554574791042236272018435067991636607323373592806845988496818446393675613000653307544991771576292682946732684019507058564232858214210241291133682526477242997232469054629103154720358061727927717517162043574087017154623309697236160971907574556523349419885071619248380198123500562926469455338945996256690491320911270700341382975801357344149023574484947164349219246259783384554462411512584979082602494314616130324853755906853358557377201201490293333722504599398965675204256875644488235721589357423950609173723692361274090922254146764872848002285111842557487317884884395143949950958227267944002896338328677573864472212527337558504063066467107966201103346865200943189721017752716954965107204497519157557413937120472305984032404592866052186316221217381029851773702134408769795390047114439948171810375190277338733107206521280110923269515927776215633390772244132596106458374511396414690072270863981347449127812759038814808946458057055178918391394596930711336418545223592430278205165345070502196906289339911576564289960349597663430177858606942551814622986301765417347003051463549694466453021450962448533255513304208458338123709022961014340365427579682805312300715501469270547975385064073458127533352757125504431430043168086179076617856080424829498332834241445855255760556163519488812436196187210810383338095750606189040438072963080426037475785741094255529591869509607698554357695080797186786684857985824006371545029473224979547877322053670663889916394860232852461839943177812810782128207482333818413076629345563135866611195384651009404032121614331861587132451588954027764522496611552612993560777485702093979271716113862002937820717822444474158980355172325361937941544631498526632019504500001045997712173441154087426159146855105435265790049567488619707221143171350833992415005535482065598167147943916171598078029888873965474141132131336516462963047866554022786394760646442043233146387683009014853598213460380231182476635526027082170389062969230401935368071787571842798050072695177282783926833865343618337059029763022257077553502527105959600326072880749434589934836578756375067836868026663240010441500564436553126512645323092994172802581171279315219593179602735227200076656914918810759639535792189889493454348968514774072658037434450433298378865361782426157113913706692697480179415511299094669063229699209116958708184231141918553357914584130004280840145255152107314160553740544258626476743634947595790555744992455985083409438987657597479778970704318526716150249266467209606415896599354272864646100555148853135450512193794736623820784683901519303364196180358695303052818410989624810065939363007187092458102700380229355870970063331410800674712565986703438624389103440488007227991310687578846029798728201369359879543150971402055151358567555224865481793270117653922125603037003647907580469010955992599282557995872560005964778652650029229172747393821989148914730337751887839558163802194850279190149964012443210637016646206451380518139998359578467711085700418317436626087678032189956281261788030841893865551600091551862341219088752223972012244260248698086329437631631600303580615336047758779089953286755344373625919716057773871278932827407535690906773839746004815040280078212189656831939496128767634381776765924373591148678998800320272919595220466696032975484468428868714766609271071229221818748244451080578922349809936925431324909953213944780596009122442250363254321035459689561637850228243467281534050361236815382568577522023659865370729265202846948585826791009309526486365539076271703494683403101245611285263578694310425194006117524620995479544593877961998873178271461661209879975614877452607794438639167387201291931241086526069809336688291247341948806154127021233397127554032866610153818191329182753134815186799927559093426003468726586054131498207170879645132139569268240204821104135853602716483357059285735811409922108130528739801080082258473771182044950317377374228551696036056555817053655439515690121738578363436173631361240381049338221868944133574917064120588238799328895531629384237179425504306655602960265299523204539809210672432112308907338740527796949798605946741043399831490118871435322719197646886759025675887097069412880602416289490507013343866129487322622645099448436655987347762446463612424675209392085246208461985287976727384641788709704707479990945694092637879232198098356796643178862745308415806441786914656316506561026530314649129222493174697737527482749778941629229900856635849760733566703005887686792877470224759144620867291054374023819476739562097022049158132845120364737724758423386591017417560920200088400672796433190570381137675488910502942047338162862619108754577394906474641378507493095036732023321280791247047599357388171488952546147328874716174902413742136580047456325968254136091800657333378105432870764151026510621831223485693506330601319669956803583321920585867111775137942577708011163555691930935376024647278309182990475036178158971480725405013304344499384255551731304764209249204663985399767716370220558433979333877532071088945607010435957225382289381865754781661864484736907908618870623115995005232495845651289706936763477869194573438206596580563250873635372230019807124728994673570919039653768246180543872556822999549855492270895040042402140725908293110617990023686011781385366405805695933850173865930405676755063198380587415771987707216145921669112445920358749725477704791523404771662243552320973768327016374968232900476498414424762252819034264959578486902951899112948581129776401681682561543590932865235598431396311830404803152564129023079182221771859366716362347432671219712222260556557726415102375993958841534483886628340301259660507358737662750571937023284400911142871677704245178995927308968734753501592414361335147079317467235122582555208324071596277431552707165544841837135292444234877636038884852282009566418894137047426021406347518249234777353037504070780594871128271887624715035640428651670651244498376799980973176816439143962086490405021603738045300237981732274324839387470161990993786432630583586599740735829984485298376641184028908007990373655373321393730515182017705314038404127789963946761746869985404814459134152607520236300202031439958252953686138349185049815931937332813391620900069438698174757915561649458542962757607007520990146100362193124330477470726041889891859590196501217546557779586225502104440178949111943491200192994329184112393766782526128180608401758854399992501100004566586370153844891797064057762193776184384400310181145822708508703597060780961052772076541085572808184572585825539507276214355118697355620767617759056004155325948134479450148909958128281316203765515630180609845447199751506655413952769780122219740298765316740027730779587436752638767225529966864126183977474060791100032247860735622202447269074319995811701704318480880159846264878710599083291919320474615546134380888479081057776786652618562209988997475536504502595713474352593624830133569150141476886242287390280160638276019292395964411334032077742118967138492886311159021415302561916606203515010523418514022036319032035680357494808892471725809032937271587985541043938892794232826312309529157013985654130599406593563846367974446713739485310557544325203742683893644210551957155862655233472062812900744396773721375323702356208879592807599781707918492973841867832584199087555867298624392039982203663412506724310447571598647440724836635065617841731005905768762842960851839140934457075865735459487750529022543407646907083140682483238456852126541553341887648618354594790925684687422534764995334219237915699915680245980883775875175734385457442846707115782436608414209994932924550261524475709019527808625212467467163966765058938310156036119779913790851848967310313875520086733191588625105233390166109068755647204132379891807246904901238960082056064810179799944431883471514505605170612317544796726459069252006926191527219839038345014537359524525131503609515851222849834127563000964457557204024660910852552526044266806456850719137365385269110341790204734737340031452361589742425626065203339681321042073166540418460731292424528582756026999445221322511389109544695374158401016417739158681153389533781800071706338137567618873721841717050089030074665836770404863538027373732214372169773476504745258444931786188769170786500956164996886558229431178217212036447262165510754017043440588044889258590864247517024146960369434666994905546184462887266786185564225840181015920517758087709401709976994901192757833022575199035507789750451598527361078147676885639652721031088849371821559650062268743095427408713890641108962978729737221417673992635959488340480853107405237990307339351425665303387910911808308088381155865901795892948380835264558143537264646685601529958991057284117794400906685897471122794806946086829945044098176447820688608640796934010959416729743855262965557794280774601304974790173036103541918524043950678835602151423212000180817594816660229072592546333203288749292967767931035627487355482987322164139552303083516478500216257763055296894682497802768835175353072974236759591926026798474479693738052374684898223717497887467443230237519025797664495564346466996182979229250531339114726690480898988857751486621969661266866490817418920641388788859313941349553049089200883326025326608690440354445177489129222587861873809480871631094460028764333418857934455190516771742083070485283033782483541756092505107514035377843639281124747963569172743530628438271578676099715214175736426171454453156244847679276036966713872018693430469842712308750981668970293867928677125460981997145349256962819623086637924232086771556132755595244548421117437746590224254317643395361161963933943521719192667971111135360515432510952238615535109245988518541252003815316939025556806685422730620214588638778399577001796436842797778688239730380145963280572107637645884778171944034499752736580286684546581997415614083029612164857185973606567514640187860720616065303631067197499106678233697261577629014051081770767487010143406962570407380871843632080117201839638215000648772020173121532715111249223946363824325756705048702916976123894148814837186527584989072722980318367820372497646923365088832664462215006105965031521488991990960719814149352348130300879038229008041681718081650333953440695289010356112759164869142158101571645940522419701939313322967721569195439905937632040371121916361311783280476788216035642361630187272142902255997326067235110105906354340801484146339644704847186650445678867656708740774814905559412578621946437209541093239980267729982100089507511396609081078249602658237166588897985620683348691537879253514316464562850255316450571160123892706119217755884439586340733725438268892181974942546171985488855153688444801708582198795186771390995675206146149637266345868646639544953607748988526110564853513378059582506733992154530903681572940926079330955776605474975126819795759985148138165331763938219775566018268477961631121842342143612421184045400329701367676465111340343562320580249522318915968328566491759476050486796365927870593874281776508632843612856479239908654195825275558430654086204032094168709336524322719953497613804939168168469837157937691379643696994757799236464926883316412647495821394679275518526020694687149411679282638178420241560023319340248710785526761728843953284274467192243040813066647822862139673671083931411423082361632214079412542193137808539432457117333869598073560414905725554979754789323746624895268976452895648238042368393629844984846961954149584670912023238814876914085365403212240987679654001894791560552318466159762565563710376914160628072335754762760655083330343195060263932134756660700546956463799009952790502433104862669938050125549328900764067358369408734059387668856778687235188948204653026105452297958984883184441598128604218403761027247301658250811416751001823509424596311053238856604944141763907212590690197131211297620723887745567124084877404854767369317711252096771375144579015022170374012538181472598669074410548940423458442401568795719435631933483428770804884149265470310659147438843783014280611095531837432685265842796460025045285908607702432702771173999982140003709264810833240849266042706829299210251326899991211835626910670125394288140143992251819141337504074258033517459863408972457510049479046465571646783848514497808276205473509372644262709722178594860796610336786732071859098804057765441628962221607886550780935091158763418406537024042828541554097724412992048200970014149715470524514091165271461341360478539906128919987159844030498181545166348641274213521830094347741316223978377544552411955626919194899006599786407749454404547115705638518725781947396014539801581735262285075726812317291949962166050852015537454236643864568553901231046940985477671942410329904471254185489283207481214955034082439249856662122752909518245909014834990506489271414921640034238076249450523348937073736049024142313824984682956392371789750397132107077136813641814357522318764982567755140189821416417270522160537371711453352653051648626040252609622585292325461178387667376287695481163904542211256563017045643993034860423111287183591120584641351779510085951020903323248305386568891594014663673603581412861311889121707776603389759053974513647827443134727183113144458164797203931236563011003620956975873113516229400964883036641723492656171744443397201818684711070712036854675489942228170255464470512479341165760695867223742965524604572060557639846362764154091045365328961378809990341282114289386289776737159348964619702418402058220407576831368704195600302019275232024710538630874912177206790291087620691189156314999455732391751263661860179099216195078949621667288911153772350603443954181548388958411788838518270244442451898489061935624678081163083700525113955676515153536398806738606629145296113007975943258452346980016429681468936962584604007193795982905416093427910282312907925678563041837622328992598435685498821946132837460562724777502410998923877829290321355705063496702806088780624825565549688650478893637451409199583566320259822004353012595947911621025339576716758821486974329323326448182201766354276476334435446532417268209968660633139928108340738611208794738064708997557923742309012068099561755281960331477949136241649187731017775165689169046593368345552881227948531465914135857441471705101567297554819169394721576125889071536009615680348494982978271783888412727059949233022954138989396670952901473477893154155748375211677185035117178282702028374140863251585385098914608538990138435865030837066887895445075287214699181393805274628914857558821099952144455791193928716328687348972551821313432300743015082615517643223937467779425816354727028935324654053352264038041659499832352823746556309935370451722507019636668645962103260068029881036047276347535680485431044755613924570358667037270418043928705791179972078410133224198088921487919106051389299751874739026237958733892629286976888990965805915598951117254600531609690210098186769506490970672564056934424878017638669125897733564564938753109104874017573754302609666068290512582231573399361291156030748421187319537227600455147812140560870436352192533396808220824184447261718479088922666790436320598602046605312843435697746468284328483525436521837620348206793357456614294162371683254811012934845032912493324942312376325353454470711788539215514387327611722949060721290012071419937058979642337706262541980239561582886948015307442574967192472054751001965522194595754993432658316169124346729327590745439089325640266027580767916956155060819078516138235522775897639854180014173465424911371597299833024924169093887014746742320151913571241354470800329904297479271436531611787148459962338982919511052354208090431621129307200861453004992757180412664834215369139799836460793783854410554256651603523761683643262665458308718314220299735694951689396277361165423817407661251072945006211501602897523342505443013008056207472131543863770417522546020884007609150452651369174881244698980013728666555258398918610214248823906650292350533853924315396664615308256548024569342810764972879761292850387440857587046049430544398504072204818071284094112308430817121530525823219385123922785296850813622457707832458871135621385079814247409448814778083977854580817000066959264492378814283042994830400689537373055621138513839255400207555591995064745705292325801703910296543649309189156303998086694295932580772442220599432501408799446286879793274592028632247103334417734491293035011341337959455466407106656107861564936014549669346864113087678530465131548982825353186961015868819171446619971623730150921985203686779920078841084587466137088036306752208600527839213856238560736263050776342611171671354135567932337243067697356345546279131573309797102743720556947520531648572846494693188780967248479008285146039910462683360376021771768356770745701350695552181835786260933143744996017227817290335059847513638072286905571138212045384029026421720425336602996419440873327227432277848393772721600533402094333480434614001446616103698160643988148418238317288875017069344999642137346191229439253574799392874248413144933150128098028297151164370089943240396967570606836192396164432396661106011897004032525281707085827715075650528832960921568706236323254193575370495513991467573495178162955060106375399325981257690054006986747955218033227399842343975584701914670651390281968169871922291833868189217765790069981099206105090957119686191330222315514839185631320292210852435546324019853219767408671386567237260516882684218714881586569597672437959656844101234994641673352008696971804334454420439631887503162973424847822037324476369505820929032807564440876219564923891677387726855031948028659632194310635139581566210586795224885223484769150283411492301359571399063512836519818981817319061774938520349452049680055189902067237584848468739952644797763743035421271977475014188339311532121179380650249129563821318296141935036855353001003974094377133908919957568803109302884282420495099295868961337480399590148240125657148968156792398647357649233733919981795697368259035288971993876277103997139209271594140284033739585248307927004675545141482435381270882598046664139606024227999201809237302299650569076019146829981511759348431348329581615048272070316841987403192957428454437388638080746231163263691832675488944251454989965213198597450020121772736845185016131492489812370491383168038846916771075006739920784813938418552700057065605872503600353291864595180837325597873228490052429871570868046951770406563722693440100845285830753523398794139023753877117699658875876660856133100897640490966107314661342588968616833235274485447135612042432851224678085700314060203207205401106629107809546139617151333430753990617061183367675065408746698194247994102562482438683378243160608618254629785766081343067792798923250530838654378232135151454270481528696195219671199435043591954808420486737731699032159071611432502775852731149081528113916867415647805165781177272563399162311153310411349068715741444153983550051103575383507119850646359571303965643349641090300554475991012201420848131984912999575594383941611402168241255776657309813976130327471878092894371395206580310299987398159446682033008918425759976199858370219020557557857657055089077512143130062932441979425764884864434754096345177026588689938663131160304484347497648073361304902037952108382768585970276058073575533312860464911654069364902858695683380150468043666400176928101115138309057906591747426391377782196498123353151250948704090354623173733343702179197938217149805629528032425560436996057714652916008709236422503574309908975265006167362181132113561672558379420064082155303316584354330229926177104684059246557892829496496949921526379417149879504798374067944903295234487645695289418246834122962541040541750707392638245010351826209241804254770232488680594014556640726097404090088407928046958350566034689658722408609130514145122208468923225137117304536833047996337984339620102278305940655762624373343806218876197703723681864946050698909950572780386281792658489947787558633071521218348410753082313950648413788361381529208584333456134428468470234083049425913283876161210369351695319398153179313812157321325015280095574160513559263360707189550607607593707941134406426935539926048160929955923261358256475431107654310468533825515567654761705076161488447037634513640851276395013415843349272672003035119459405368471269914495127572731956443611730067406449926772081252327013334742272677130097111492598610674701318439761563216758620486565161444159737875176045568759917310526213660329370970627512398044249009554414149539731547452220904452220541179010802733166920464880687032637028784891944590207745932249133616954139483672087228820931038078218930268111834774590068418121663589781934321061615906770984778189083791613304708882917582478774571965352145494419994096463407580425071782509913256087199608876167945229856790879590547919199420939792252794891087785351955533700785797397903564901622006903116754726349858447314753499539199486542526027838256457623099334251363088569656882936080434894026374067010769405350505481765893333578699988503608015423041010259285027672922865298760664260937456668622451349255724343346702734565882105605577871528031144730553513878576591888753209770008782172711953998779186402087264442483032030849688387681131546088567542330456153187741312558872023649151594324056253500729864238945912353705833204616600095318960512287542211102378724403100218534466452348763873230491052669717344761840205496791381501872474042052598888169859960031920801737108922723114839119036438845027057586850595283483547634916698895556656148215721301158004992781640871325317833033550778947678696888136009986139236564382873535672759595261237486650095438808325852950732027281374199397316689869472112693455724006389306933510152345378894945520621663446071842368712134579083759202387952206453551931163501003291536121597405945718280164285388432632277131104502341748310330570029673354861449412712163318335255864726391730189147815584394094489301506617223676502824595222989396595760232863173073826093245697899991293079742029804938990946336349316426093504599366764876420056070719723622459770639356838929392562637444025406825464759484750825997717597558738825325043759124561406371328768103871251286226441307039122538349630672415565686526894930747236268745499441831582325021740518419284505910970760870165104675429262233867996251389958901149276913102151130824382205640074678445978425616886303864507546989931497287261282450990216327855565152638870232688240791687706679599208413089051063700138726206668084710227520378237577771196150871827775517101222214542726042793457838070908099582955767440213326015211070947276349304421438803201862710138637233920651555598449942678843476509562161320244118081693735007800838829260237019345713587324465031464902418048240667475174504018970560793803642875209811290137062390631727399513565112519305573653944951541847174345194684436966057259037382618800894435522399151900219271277656507398470429911619069154267524424806504252735024848183585976027129309633968929194291551449639505446182670489353169386496597342225419549306051292375311245188796490968918211379927468115470071949759029220711114341242488682393164291280393619540112072624963263993917000298091159571754678717830508224253143594102293798086512717076412195973296386887106568507806412296818861628953267351727764952296969216260585851905332051184350483611688300041818882953189419332951852711332815099625262495219170747161186978199901226583638456923660103077997913755947010911580601407643424609774572011661606470354932644066897932395446218843486413312360469698994318639038426840635742197289210582438105512436977552339896577212626536455988057236724743749728494212111822769171302498560476377746057785837231236929534602011118288293680753823132886653033523727334652883051540293339029714831119250129434226468286628374975437886869453516094346766067697325674265732665838424528613955379414220012912362216174114741498662247215524230437385331932000965502439729779538485260584879155385895959654513070394384895285308242985980924191686388800307833208768558326260182614482137789307961578412362898592896240426243923922392048739633007041724498089289755098790617974894386931005552412831395308968844478375580732714233504636933485061547739693666229783955525945944947683838769375530049674647703283387657531181279688432364677375694305557594970401973212301885662793332816846025925369119187174883367895803916648294396946829732024155348866553759321331061251046778913435824248217152530925381687810058502310212228391176359246115497930384778106691570911301751068587060917326760649711580387453116153680819967497037697369907928585263006963927234473525042561101081256653234486171658690013159908729373550556193302851166238133712521751313344143141745418631925062206817697783648793451005061152607459034114403427020511859980790203556412285761907542191930335130460782965554043839023863164318836678251230190391870207640862624447165034633959947748878940923695648307224828971027746655076687930642310586522571974924286212270406321782564365223794654396893564218105511660553045316856935075640540902135251836956831487029223927178852482378413619367200065931632039479617386366715056188088183393026546485561407752730351092946872803451627071613590218114090344802275950523866714489262621596120632342740527381590057292719432453527830519678764342179079898066704229282761407780174997393627095492132938113185221632688079264580994842550082790252266292794658005007260013669044038023331292818385824859811691593504844307030885906011863021745937851869343956140417392303854168042691667953352546004492705514925511383377184841863728301358155137924266436835017296845529025416334278387935807816944706482057994983433541477709299058857389285440943166536506542759385173482462362969821488341176638428563461917378224019027375751918481012743732430990170212560008544174627454308150092006085894370277448985223796569006668241733883932516035652273859725654354776918212395820666468476928114709830003706772068584546718960618500480615572655196202934595715863426988736576127482343093538110912335163498910310342684294861050574293936783734994565599871483852806704398682808053168225937576353297102316117405391007778067617906039104691380136499465572526944167297578415836455324519927282996272608911206334010701369909814201149988325540165393875734605490347700878911677116343168585176702542727796669875598654465526720566210918581220815195373913571807811532078941744263341565295282011513919282045209044558393312675499326896764065602111120772220556454107679285852045626648788725492865268925972506941536839893921621471383062212032494987722654539556285919949452937741047018262590702076201489926245522696634101315209722863903944851871389407332303357900032812560325986755577876335563249982439747185595015110884803184451872947951452005827549009100744062270017639193664645706290067355353958000747370303677624085633387265044756150385328644425635761830159164255901735731091335776681209045192113378306527165196845209027356434366403938528995886622183554125424240253188684028745019156368480748192660339328987469947998233612014702410089534818955415328015363063526604714009008142844034955776349990402060468500306884272834659898765064860529651215916854617133820724148583798561788821655193381614179529712917625589782311014446608535618252048039760349870866404338717603808399574907027688568910276352620179961819150276096252148066519992498495990554452683649618550407093060535006311104198731360421484828887948624767487499751087064076629946748542431595721013276395682697458509820989191127319695340131299094223779232954301825597501739008182660569563547039202633058516920759312054747435395726516516300464633777957019915667134780173837833444147754452055427620482651072144675857678644172322323112844811825187158189206753899369136824512742423595503150390089206653362199885907554648995755438824650926597580184594076663660615429773798250855764674038189653319193776571046884692538288645383989386059458358899170941564397945392624308383560765589237652045210171630601150776694472805419233149244800055093375697836388747641983898373774845896678824239829264056986523185246656238079895520597536894119805241851047892579083837865637284959777649910189365775360621048017681762345041825561895685455768977002326904853167619908056713145491165727537499919226725283337269575347036024778656510650909424954442811017519771501290574940087852552691762553913545516259881355430981002996484914779349481184666363265282821004859931546215578548301257972395076668808390535819234073135937243523939822012516025412476915142958475805534709311046138528532287581235582464186964913170401916559634880828041953446142648975642540474122325666783419060608491859948096674330099972395941413041474609813392766548228577066952329074869778324588965922502342305185957471860683922244308393709365512801672681576222571461805503315113244498601843177993832983351123909257149844513045509739289808630518384253227346282815402568660673116019642901719031692347185512916946967328631582823434467016418781630750869504819652111789635578483459411734773308411824482171923979506894934213742048825486585501678084362787013804644869736139021906223533499595186658947166814326616460866531327194419492332662253609859731941438658138203364812067398981722962835785386541957315139263441427401398974734561439263610742021549458989737476351124915920248671966800379981742816713602517047444869348905838545550084825774085917280297435866064746676728137256130632969345441997951211401451681910998326026168531178599691111794669920026660459379964894198715208552192909477400859473932936540818257814619297445015760104972757389916945678997590905095728411970238656359416790515132786300858409745598193331114618472390864058070093479436274766098951449167887641379517014387263568663662867573923495939310993024885319691038942136639959135262045909984022457757450697526509178128137409726451737827340085051809297947091342795667576210987974248721388559347304196314866037118905545191431982826361736932647124635734606453021315276406053641557912078038744049942151953817029182806638107062676601434028252780529095708093346380412884319257420360294593133868511165623866645346004840359158115071564681260462681949991469852339217258556799704612770580266069606340708680571046360402531529938761278523151888268427478699265505497433290544253776131640831488573313620968703932137528899111839057942899170685998824430017591691967749746101591558868468804112249531260696541946003550082402772024340016697702184824998970351073159293004624077575476070618816053435619192550210834272376298756079052435794535419941249510988827323496620564001649202409090230263566878822246967211337654776197142825227683277240328518099586643992761049119584343235554420793872883611092523165126643441422680582062911413290072096209121561818242385531318002817053955110177260084184035544421690889210777706710919943999711964216305797194909869098417883614526462209330718818272020968700201110196038868551316956774154999424420661567120415497806976323055245546648209870088449124959591630353357839619967608483993556655635540452200859633712634683812052400035372246246204523583435308809572008281817913831788924499185202609276437192040801166007205166908150022074412701417782821085465009470324688893671694158244868094524443245676412331565799181177801085113083192410025789976065061826668003003898591100807635959896780996352712908374294688465608156168058410119183442278899210576978233055266418897869064559127065472031932755306984491962089716625059061919939342501473021081165505088023013890366777997319533100373862249809254771712526211775699016562618340544193615406160543751985876994047400958840476355284045394378890635574201660802849732602590695336096931360519892361211800638560273704879289112893770469617179969124089310735741056976525751411056177754198030675177544338007587569031131256533295743837947292036582475558668048136450503860917879426625572028640854372660380802369132947607867902624637944715544500019770697268252252519586912696603026903363171865691979328016381476341284261399869707202903038781468152359247145377774665676076475031768860534871948035251967244246244019531044013012944906518286930416007890128765871386201332726444606235543460428483430561075985607237764727467476357717940741093534774805985441699692099313713907629586445641449935815838887574671979818604670957387078722405101514127668366553814716060962797964739015559455436325159982996915735034925344366800815768185040112498164446194129098181815286361453741072129263423059261322516848126516527165526642169563329459037977117453909457083124026606913004103776751927081069126653908231470720768475522010811163709856822679404064602846689770574809133484561472313553251616876739647271155851170435757593815028993588223533064211059342080303138836360664819470225220472469850278794225747226898375336837990188824598676959326203259045556785598836606284252018637556596026192955232767217048656389407034146106839959073493120508241716580570665912132754353866335102660882268112660740583050958896467264544175415172688835124646108870026815689951785015619570909630950694221592778415544366692906608848382457145637432875607051920864833902411830192358718926884682994131998523931555543762421287974234570339203103315745669134292325538370590787726382786069615872411752204290572393073043665701160702911409262957645868400317679419562284720654029496809170895501025503170208774687365696896081149198039789490472811186987346981197028559584949015714543845616355662029163790898546105451307404936616408650926824915951998644354796195894098505539018996665525822939124290729506213429412715266286918005258052054048623747101992100298758808707926975554777510525298831218625413238817674307572680524576754600113001229304642021027851676711559594395122928918852283006490979454745548581025629500308732970043917077602395684285778554153916514147331708146399309380178512501181371504065488817890921947310312607619082843371503736470607018945022268341042406154294169346664304396108518422040959493492601089532941965277601170449023077563971113685128124620232136947151821714401601882545706019433032789005912044953739472064301685982632926117766722095461090848169015621800550154204047870289769022846321655421044024611196353274169469252049286782258461011908998685285958566598715941595448331258948938923582596096679467343370800753207428142284674183792874262430707752036125738485387603863229607830022650732133395958751510829802802684621887574370913165032074701574216931590215201008417239569523325073869313229052484572212185692768801311439400680881125749433435678187135992361833517266647761089391559732654942975907939222726124260833893964722352936479076720808978684310113054366798759611449789556433537961914000228238779138734717771576153803201292856819276323081136077425932767631127611947144904314373146396316456607465376786875984321118631038504851568621007944293740210605340340813098961618895291984230246212682491560647636764804948434854082089077150313374214368847353227145585412401048868283820591843865946744015156532712364941903424869708935932787620633963548984284082024790519543812785585472097351034234930796790760358855889830598574725029404184891262856386924831945633085697024620306094416159371835235521542491162103733592752173346979225536008638688649700189501507762434337522696035118983676954336937333755314749342544222794946502364966911057657283424976057308226614791745377572074684369062085056478621332698642666768784200626451851057188684905974697006370947892662793283242165591471301017492252152030038414489252410437210200383682593681817731295205781080168844619725782957407168267615769798959842587493849236672469927181924190206859195327708455254234527584865591248434548528175620514676289764135213821504690387871519775793687630797551604000123919970641498338435746158048265389312701520202238089787041474145641861950728251467387547945664730035171529524353504191156179847206322936310835930301890099443137895153670983558232733345933919842446640902827694483664429493223696565189491091472903478754377366390849755645875891266497154585259048416868900527438168961204501338955481626444374264278613592890705803576310513150220169206670375173112593525072866696622479442252513553266574659313737892353533837299636742421194221007056061286453468785548775070660862829082444980973752467303286386968152399582221289663788683145631628056124264437817428425712007605682396629211066097056271962654241440569472435681585333465745971616299913638346422168197525102133348049264510583551489681015867771681297337858797963101283614664016317317051351276013356006267214734963053526232869565295547868326470607106543240594321781385348686500604998952281178096672365738447853694894233825311193578214094588663231355032037078865768217365500179208030540385794650126242663480180477213118449840964566926448665071246885120068969799296558214246255780101854296205303554695901204339921259392656521671651672511423767495605045550471100208497961761669373855829244287256559431666781408681925478369227918387073856423957216773787004861992323559136112896939908883312026832300271316886530993945893819003445289600779828007178147866101356492504531770672301970926860826500575640934812314515956134706669614873738741593874252704885923990940891892064411793626214521689044321261367709874840559952025080373298007194396620482261653402656588185299376815315446788457711689814716268385309728235002584772869704148797674028671125000328556049744354551370711757936735449586299878343174033938726961535609604642752133941915184105803430729137608753491316581076169226860327622366293494714481426078083948141290443660984548696738556941517089038397817605101765184583295132346808827445687166544555461317233334043575979336107642154875847450887555803363795652483614409174667963474016505144899985291610170592061946729739001664944798262945584266065853053020444634087345894442992642699733121510982606817758296542622677847422472451614394326596519093322575633673263646074440151714677953085283990408816011432877332985433418310884954305464308879997175025237432861731925092316225033732300343287136964872273872954590729594459180650767449424914564751701685738466964597352843089475713835589888483317844191081952833743245604904244565466890301228550527987305521286125811139226176807838032803194933645752222392051420973064008462224436079428215936816547047038798189973091951631559629524189370457824363887950846793330289295497319926486942466785320417936426497802115267087069531604737276795645397685127630956831769523655078815464201400264473000578722068522516737717368286870496000621894761047047432099503874334053210200688004472928207442282932856018326680671422044181069171127429096092239694015319098642343845244210574332632576866536918579500408638112018040933022944136774167821261184233444644416572455491629820748826289783528676923215960222043705241291434636895858621991802434700915350067531594874564903351148625430689494820412976252382270482422664052710603866454333438878685469631133126343066439263532250696338715492882399454524232704835271848647144797752858543798890741035130109759869890980046390155951284675505127834727298340163127710113923287576877322812290702113067737382180156082959486858527350036819714523407191595186047251540620632965059954550192172125693606129295416110251360247957527474978585750081290556166322985754673673371521782049153032458149816662168233070954092905919022133310231609037203212765150097868682313574253102921897672980741795015174699540066903414816431333275489673057660068226260568514207022403587238632394227062418177807982566953335461214451298903861364292102187248431478263360913198652982377194268803380612964979085730308928830059715107211015822106739245258565386180211699069094975503785645397783654815915881336491240672106277331052196850674325202135422269989599683497725912166980853999829092499762189493262682443086148671187005661017888320698532317875040733895729893404560236086310578696008413247206846870315966507719154464778690182805090223419088879668236520519177453060601876600273467787216845831667358401300637939095360681609383840224545326071794422379622715048389294813978143012639335476280252948135799853184680192033358579332280569781410229633336241811735754696902447530588589093340368948124061206328166357674518989862897606092620851797461824741721497050332364832885854383011943331565033706482786765166879521905857952899716210177247379853410001676076317800084860061042437496755415628106519940124185603190125981765732954129697526604797515520641942182420999817806580445550480057306034645519886657261072274311037991665850628399779300792312627166353361576012463974379834076600758408438707263755385973458948301659522485312821085714700378950440500821939623267121216515514071087627287046367456493659566308675917727950686429541994466315687183589244263476394784061960471127318375154566851929312799006361194579969349070627198295982319861959283702197377907585193392696940298593979853751920792201494571466576852075829599273469017060292611839507146521422707446671607492520239154153663213502270189814396006951504876856661103943927723913256876872637502153176278354013787195224554661094147809580598661680251399714352611581199084858515021439392935841905546722809489396182548710446383422655952286606160251015472073137988984067760662226488479656980179917273534500892742594017283652315623524359593676205990130440360799123817007275396476470948592852487257510380907458983830524729755019198185797778161389888950229724819849078662947096767351194980357947203255013073088794082646202150912373393492960872879588907223097536028006172094295879751666770921750496212691760123120024280673192812949578710236229979111818105830073054294868611560943227877239314430439746221641660841300176854564025594942478508806381319630334847236984915147316969864217072311729742683425109745224753915636552405319334136791923959188296478745598529412955862292015082848519827866843523262368303784768484123546324314658644132026286495193758937882580978380266494150489869329771608644504962397985995053826768663493841502788362969179879371549570133651062835047467960609533444947609049390828172157363749805723562836173529150977829562399481843408329049630080050409316490723455624499468685674926120250989916489535372861117056016674948595233854808295032519976705817299928213733102707222893984787123845302631300546778998721698520449500653556417355140753916991786782187294047602009047254277782314753232061432703649991416499353792509548942435733215914938486069195151695168383280193187746745394102410714839510925665612701218878959721742765017666901192121326647298465061634388291096713951717239370493441008184103227962482414107123553151255183513539196265483313063811665338633221527457002023922917999985936390521609129466645905785046796159779188756605718883767985752757041309097803556534214508226759266195536090238217384925875720033599079055544011624868259778778170598809515032044612365985617861428404591068738247928344574842424602600381327836597435361192639296549126767009955472906210083974120157539969648764458556027980704884642420869313528241402256464532921278417803679605373057179659637397643802261556844488784944714802116233070886066871763812359278596223317606551826557050118281229340040586189187219075431902238581087539824630417733325345608298193519789292770918331687400992818445892898935859209330454680148752945201707970619172037603993368571689058754541033913367724419004964765719406708480674794602113239008554473502450839701958346728386860200803090821664665634554327368721231725992682104748097461138794234445128324434042868059905209875795081518533371615792821760672220680301262054685267789097853429331186197222880160045165620539209423015077119922157140303649499334205656067749172242424662015442130067201259620852290291034270559109979218491775712659548035446775778738336633931792761261240318852529614087849954489838285552761346606673681372102730966572395630582174370864486702644331040978335177418065964033215212343287390649513832219043617080604682177161792492899673926947232537566756513729914599138181261334452795044093573740508480142745086834272613703524555917823005109172158347848078155516102076237245262021042963963895814637414785220032130906721458651745070126937276477685452495213228583451986604138503588145267672341628238608866484040598493961380466515975617900103277452848065177760423406478590268987187358241474232755086298303232900575294302179843248966108179969011248118237650731548798529547710313729690770396028567526799691842942361841055968998421599931852447251245816905642757501148688838184158890885505060389363752557714592322774916596847129356510690003542986281072102298567323969425275293151689400139919004903390037486009481346643640106012914382770195724665310171773439345175588579655333031379716918290564025586934548999741205305283631801412535395789638911643438024602593745148335148470328723268188011344022642073230497349152902894585420264458006706751713163815814066135689532947567400431742312287699789158127409762199365874695464960521074900148456201655434394921912748588408607224443058243523133357971494036116325569242038724061007788834043637998488558749045273453714016491069810325196221306274459152223044665985284801461965135362552514447063723816939425358659840844799018022223317658152855748967543731020477305494385699328354381681398470976442405059479032313198136548550210265729398341545522897340757880307732108536347381775147015000290945328988699726029553979075035915940411833612546371639088765258827673507957003124251648346936019763009329836340045826201777818963440287109696412290772931962795770280176785812614689980074592279738512684457345900120154246427839402330183544305219847922070812895264550363471843073111224175389379068639931968533192409177548067577974184612580713619813835763906450895114953073292602275278671854170929224837071689775355699107478108864683772431250262311197140505770847423650002810685246155124796823253049685291903033693730243829817809949858054019130308465061042038158071892750586153057588729154202919387368373259492041879693436392770483766686550887127687656223348863287639816180183928072947534326614287392688123559956781931273994282864923784007690870257010122363706074633236308517039843651955622262325441647608418664705609314049864113121258783868163651248407000995664034068027466149855639802268528981494608409543674816654611916435621783866697945443414058351939926917738542233194612459397563109992075352653388546409664950429834226767775212483828637064654000142298045395858612279645342934581257311834681293370607133615329060039337704823365639211070593423504800964747609038191998978761449291508463587062986625539808617721633046530112097406754054170091658197218159034687646551852605035999030088375524947046731641683796950383194848174287476179965997806066654595079697281809179421017059538025383452515771973109165894590048434490190581444372863496769927661276769713502946122777507798457125263177464920598653460137480823150131253512356148242070292234157894435716965178719689422268653052621945116387224786206405410993504393001719058490883583744835306186182296452259589099658259215446074532651341559728098306914407758101840733611230908203616828677091462175542443567223997589388740825896764983334524960694811469194043542255369470802783053422787020230308534349617685952018885897573141034143485697024122184844841679386145633870078506356371244699617257451438893223857826620109045308936496585574694206289434993342982113063846111247952999277475483524508182811153767610690049901993330165493291967807837024120715184653450007372282199423978179871712229476416315046378915815767942368487320222919139878624263692832936415540361121501650360225670860782788015458298916096286678355158717830379300509375335646252678659824420635164132143426650477272383707425493848996324386152951596034788786691896585237305467392982613111304745807344273228220101703602057522565009471791046842431681188617458164446744044825845525671703353034390245269862637129321113419356842467978878869253308932807298961851260140372945633372079797939418938734652133901672352761766527476371072243589773323864018149067001737641437249801657440790176179456707986895581873789773313488519258483114197034405125704413110235462470440153307277936272390596075640473314726343339176594359129620377931694683036036893720919936331526933739963712327589233130732548929106895909332810262459031806036782146463352670061678034356593740348908836058229504342666698317021078618064928197809148605886280649283430083468483413559759119891419828772512468544269623164750434293327525281467355705476245482421920555911335586057128489707888421549449477335850160936612271844306332235319987621742479778863326618729608949818325639421396654726536639043971482197303120441897192199913623206567232860159179070798365472062729405494838729706494217595273451661102454568785761931427102449100313887755709806324838489361514150412821728388808815183843078109981480408707270091987915886308867727080411235556006963481249661587759899714109698897419507879755333707333945753501270693880397944811391706387787875901946613520973978917366602899689570634538895816491136784930330716123084354943854761160659832013512399325798872221775464788085611487169713265876448277735706069489472925131528925709863597104712799401246626455015522935254410711905819521979368426806943989569478181967070138702163697247819087220218093540764991639518192700704096540328264671002273084968317891712267731443688829876516745642295847389524754401343731624754030656873470766442908984047725643609238915576638294521322659641508874645965416504610872795702354868777766839054002328009916987193807271978046646598146310570773266776380528931194632983324161425906760650196737510540439793338946112587400196793156020013320510184230371824174761333207671894539189386281905625870206454561688095665853942751060739283331232738727162395849366757867456153878860996121822058257507831308994477111117587842209369122801692630069185568518975163159785554846983745369172969536695779019703693301344456842582548534011351352850957076601601284498679681401848757715825225666970334854527421453297135664299481333593021188852602194645635382216542811184209543248056059610727602550343107314036682417465891768366800439696526113474606290404677865527300382560580392051287719418732953906512953430591030508043908869012100290769303820204377774756533994830511730501207534618686738190635501554950938297664751535892516590899203813997728816361482114409905542701249910589307499496888308337534291116716041864451966339065256243281449148558611328604032603640979192972583026617430703900985379890669922732357084405776911328935182266521494511512926047343663285824872977258826098060590160743267552838311632185214109936019344482754509230414641365297846147048076665406294188122723959695572797582587636169339942658586915965655116896243938873296054145672934085376650810906205243785628405928129776642848257000218727939274867273761605885252419763263871060644795729772211171526917313344146423335153095807770356180617909711947268108151176020431271328950761344788310184952169506800007190868133544813736389032177725835816335570218621164021674556435636935629458054150475990592584828037740085401781430068208368839809381176918713238495977569837310881993095653824575623076575072747425331961486922980662105671334492643722793853531196985363544075083386065561581129693676449514882893949008290486788700755942553679833025167595881384548212919336726811839287903912385349276284059014158091500970400430833965468955072543659840878656169380980586128816061495761984763325676927762391104791627643267776741649178953765971477160841517799168242836014951828362280516689628797936395485812932474563241910022427591105634862726737618028427780259119285023801027968231537494710646654652737233429613950152272860153476136188446727658709799161626516080344080611224147114234395034757422296642968635037971779373292416755251214994038772457130843669310182635474053744642233382079218645594492120696382597693692360791676787418827237826072038968764508774553917557110832382346052400237702723060040704911475073406282468979260646118023344181954996282758090875951161880406394897575826961495459992940018676093603872814551189579696622106358824080912722588665432347069336486751745974845823153771538792111421231466316530267131671001736830938192125990324806411536758963219843393366382292841493414845267093331296611899070971995335136733520535751514055793923961525344814887369160297511396243660325527941016880115498029872365225293328387454848679399840775218992601881770147856914134781063780446707372792713229040927949479608022059782162477962862605181550501344653893391569016944385570461594597968344936838520729747393152517751389201334942360998661630762402024845289056597902580249462568614296212400437914478724212389452969578284815030809144611135374303646159223811994730040782756213326687575665310743697428420559373235910762159576332956335468359378586885490992756023156779794516981754445850534414205275275769678710046744504732217135028105489692413379734344243008596962176768828687243659806848259198984242491522257355173429058260652262498513085982054077975170318494210623862433766694634642643535526171619871771222579609043479694336538423874206042270831341149061601242063512945212596428448451200115158570599838018147960627325631359444548259943474229313102771674663784980273087009315854638764108173302264569046956693577542244235769166094781312182619658300868866552876177560678375133794865160499027193218681469466415539010933367987497383220875889213870719367452812226857105297728475109865739814904847564041049764342565587462479556476489009048229909775227600573348735350671247941538981705629232765373751720099814486573639224712376369668145060201891303716038419424045778645929363157347217448416657984435242090218177951064197581676161379668164052073055911727937101674276708393999824465935297929052220024989763901988968067881790729625165921070427439101296596994694103135382223435134326650104150429939515906502661032361368479675252980023189790487370896708406504074070601556668036626722387409079051803887670112482715335565433632308749182350934830047463699747611875488190146204890569195565883632106176160437648298668201970274303128804288578955947215574556478840322050752954487847848608266014774840054776820862481003368197626230337551246397336377743205470558077448273746380511784325685853837755874140078720118338735352007980884097633234536365316524670348468302021869233677596115313860149070233489214350287642002036713966995344922490698072491775410759624888968088145980740721227219243325692399067382579283460207372259662205050598455922306726034266012916119802101509772687840990380642797845815290011825514619466414454444958100156351737928708117281811742638982100027366958231854972691209384563428716775737175517695391779476950331352450835696591826733580540164771816831994418568866468064666917171769798041164327981895365719524780965098434003799876650001555644531588192776517423374874677456546505520751378305866824762622722168226865137591607276731824383151988443933744638326081261924328932334381703639437040374337117263451399366239931430139217772968824414954119956901627905421406381237027035840456350887017346698737475160439348596524088640447176477647543421703450859002015590888858799046897188236971591815716615190967556997366143195583659637524566462847124603671056275287901362159179917469181240275331776921342104129117479349792838709662594473063808306721424688567476175280335224319585374618985431324412009270826665146539840177665728203247515334785953317045390622010848992673822051558899825471069886290051261994339284973391391969217099897171224310224965398915494008902046209682345965227055654353754257285510268135347746203280582061285871965864176349312369566269876116756636836489900629536090938681063613995839418163416930349363482533682943279415223719614209316654731292633868527344128837809603154033904219174828820804692332887331967233627382277070074398322025819278060030778213860452662974801693831189472175549333523993351783850236394568676179390139090965054740654430858318181080751309091180379049233949261650180936457873189899947342600757832092630121207535951901377109494974233312311053387885629899271216979823058460216100048208405353549522166411864703519769746294678186140094311701547103489789276277504193298566341653618341389807345149779315618456808419511293003854254238671019103503016338634556240182583739504303606534219965612540583551513349211483849841784532036380234106606846667149907620487359064985587282248198679729836285334283060516481484893189925413872667257837008661448033100935183786367077823296532920240278943281966744884985835386870575304215945519782822407427971660302619040752629287958963705175349930969121678544423729898975498078971833685291483620492609831030681846822995356751591248060816766256045670784005834138552168294269121685019386466867008945227507717575307206633532424124535134126236713710650754301548190662456967321393786449087940586935829868202297105246901843206698005268972767370833609080939513333589100069063420692810567624022062450193207442789214786342451916753783927876357310890884490817390105998621542972897248477668174735201553806376701594782945671157794352406790835405499081456025859051385242853682872999157752162286108981924551626327374131532295187450842198010939570776118326219681294110873404108369683835825369303264807345077824211659919699997185933099783081173694906385056185688026321848016007368684261979964433921271839484668930547122051020307019410306245655422398492732327157504537373492637501395747715600257307312551327925815722917818637972803294555300184345513461729788371150433085911717769439236195489365909674096591211377821171437810730078289059209148267193304978475915509644712716142062285707544666284572157554598814449301652407291373153780208143809176067293966028814867178578018227685873346526121901407947612543920992310486716031267778268049903985189622597536507136378536340134318295138448958385422972844951398175529814592925874316493237507663186650576019763578410841952372728388345041811100529836328335098200288966357414323355396821882271712949800565284544844626583884379087391787491120454711347809885415860532414810907007759636214809326966152135713982696248060754205134348832526385644070470320220845488972761019096503483396696423854684489518643891779410480149679049928094102306814906743427533551936283845206613984352332282994226306285648133652794955142952714745010624888368930758562241785172310994049790145711832302520514070630401406949093982077454703521565967086415387149335073936422018345078418742325193003175026633278510009451407843736977084829840014393107271774454025197967709527281617777025003084150027715635551587429922570376339255694798105907330963511024434728029343802626798734530161401593449340642281802413194301574061824336275338876051362177924630405636025518484841581487595023880386252906010832275992541110811625549198914764255390123034237857856928390702069766189019008097417801474299060170331868366432929153788028921021234889913837935058567495504093649978476988167204063836652996973802439966220931288390928928878568383478779581338495815868731348707063256763991193358350809828201477025304079931585333324494298157316188970709133480220820075756821731269189304893787514272101675139934317697543993679730291993710208017158647150055597779757564219475593966857777251777624586921025295010133624734732890299718527482535620004324910868806264508604771467386978638837392867510769697655943001788354851362264588104871002479970894523674935756705581041633577166412295499116064885390640758372771964087051194870572561026013902290725668803954986963375398565943478503810554577518023096534347077625432993297034269989865808399927396659215033043328110583898565641191926742771646316511539702806287595595281846938304491959564710666367359297670200686374678425982336771434689690968969377211911917307703220622755450083432398950237414347651823067249914887559428062305598479314651335001203903764006721967394998425354746601458040830279625509738279650631492820125931163419106640573984538805294691680459155183016805572831491464133308021663510227232448065556382423739570384281276304617211850164135819229071168074737529132589317578253275768031397804025567560738777758510347427362115434713346752328377060312841754629862417872765587907256773568577600518700692207919861751319476118870558329864495531449531103725344597722877047269684831333243341013033818004401134131318035313574939801754001379234250175427920026269545979937887309974089782735488033441839008108291732996141308940898365523471698884602453638484108410696684057965539161649421751686102708293579635422349450198304455608323560539406434860940320634680918159356261139282335695005473332964434619052458618489859325681028782420868581622204609191346076046529538506877526608400913476291246149932160346523349886384054325105763616536562027123946200064888218377856140909885043973584702325137016799564658175029100116455841249378970748200687230225565108710849744973504786731612898090800165787563737170545340369477507024245878636590465727682516277764882562627761684833924201950822084921224812642960337055594058846546163763970908106114561114420731555661406061999538796082839068669446234730191261450201726094916211863317691385212791232810333840213900437351476601801421238736576847174312003950260068622131841833413393489921822318629521908620891396161863511154885476638086134213871860507955835988016171678616712805926151820778464794559018437532905352051202681810733228338637906904358976792148391636764194464642127782509300971241716736989554060722366482173482552958914573067451881622305706632915062393851457077267570153829674145038638640485765206058152991273395275744254277164643791614643033708858917991999182850472965383757889897845365806010708093089634602099166300229057042514993801782709292535768211224914197304202239834921312817206236427514734091690355380413132633955550615346632849011849060065519960409554775035149614094540625694388734147309462151782956973242857206930783522884740099802139538990544114287031061889800158405523881046451315030920834812832416407861991791943768506098894629576650031860427515575690138666937705316892887179851143413455825169947488645465574013618925354393036972789975483465183968298848595041479493496135415747598661935133613295999999558266579664617349800093975302579828155669002707267872090147685080947418802170285250216837104321535947017932900513529641550309141723024360971141223580936805158005379770791094405716360606113910820554401230140040842984572750683101713290751886892262227619945412410564775834404447399053697239770962642194881385942883801899116448318975880991255741759264365170209653001812731601564123868408833720511010146073236209719626086509912486158638750144584941186295111156377189924171255435031066903698894412902970358853126494330004837495158591166806405236098012272345905767364683535253437700478954775879501923782905523847031948034639611616799266924757840657765718876583234358946383068151988984194979496493845946216636980754382907966590324338684604426282297151072117206129749859791975995050896100977735992946539666915941083580253416510522853577196585563099811682771522904453799625858222643364356939290689158890417902019055687546420175051502155733829575878838806703487617211795265504379331650530241796646661806414644885597451115543982025848742468809805017656058071754161854637533312066144705038151339250279557887976975058246858361841882524524040852831621019034102877101268417706548681034849690735326267636758417120211508658459828006167780594527102619545033873407258297924033029439164541432617273859713498311759292867438708653574595445504917860063401932023358244692820939274020975826169122609653803194220808099517090303582903029060653479876162940386193665359664430070352848447167488150545514951771688728030152952754338518700448349993935872695910765222757243102876054688298541266983018192497759208419438564430514950239505678857696007688378866895877291005466047044259155037235988288373915422495391392735049012386329534118940155180850763520742416406621679551963802117951017231358967054568131052091099792501203313041739805806200283736405667760676276216022026803866017388313782274543839631874390114302754215742314296177694667077919968163256850067868589257317685531582074121071528954715296935774106665763121218146377606174763723615339692171800544518952991890536580263474240144967302358722474774643323211809008897049439578279878186412256942022680164109866551526894647297527272330443074169586809837801964202770016169908691933419882475432366225255765601110751237569736913186246556823752089003760314865265126157770561011338515711301251257752071317194896081107154205969048069588305286565819491395728124126623902625750676675406390738668716403052137991335734477258706077068001493313566543023482894471355147522036855375089004619199344725430542609742676740502966594939932536763470115267096217791372904425847158060340589201944938343147023473811703748378349085707736158319616915202165150591240130350660754000618516882573131097821909647026035083085440966712060990191537655370901473776470602366614682549258196893284047524723320882497719441965246387192462247530896954056657539260930722373482352480115948356786642156640855955783048902081571910091744073646135677544859982663462206632622550685612556476787603376336175388072013091561906016994300880351807366632429428085476563571090579754957639835911062583661636744986760129448393651553799457207943339359863824263434185009256316914696369556582085318548420714450575498174387641119652161260621695740307390775346371166823967308455773626813831336998612436449633149064711737059914752951108832863706677924640103351332969423140058480289167002476823049207622511038115474092727092227991788548115841906302302067815423693172826070361965093858495289808297002615672931627830292867994832573501886010663234168243057838273794530092508241255517878268502911670488350424401613492530541463998451754507771550682431498912355407465419298537169072266691885258071388014052884378973971478986726756962875949912133137062415778984566702803234850146153799228783054090985742074891259954220828345471522715484069296266364486328497027813295191059964532862199071036441136308607386484746818804130477828121141059323815009703788387411017980691804856524881056525719101595803837470646195156346390305319267698494177214073520877976943692860363106161370850181043055173740936751019893034917428958460340632621008650407907183881989297758820226803517725587017487321698456097378896676871916497348430043266965330258220054911425561188087225780090263060902848335925853079371503147517837576363547152482088987584525477531490928739936120054928436765539530306811455946975894921564921489822405891625097338445068391637112259108826129803907217874671292707755919664038645968352659565748136716204482840485006426809790355959131435080482831287476009926365957638721884709161337660097325282574728759942370538084466894338999128137903269053753649869907301541441350461504755901918271044418514654729276349392746902896057093231648303284185302772634714962705644292273432657775273578356835055456586852837305521951133332307538772730825269546872469733185695389798506392443014669703729804065008936283026761176819532112179479765311176307962105062480803437804188776049380613283040392717611999105994734782218538555886453889799767553296101619344828840585865379772621658973271489603032341323189431199740817628906273883922041479478617114883517386664123479570102236862101427938195240472994670321795648359091557101715415336472575330132905378410240784993694719926045075997106540054307223199935632606076286942854202260516186413548835060834634345599576911673231362606216795627651302067487791832458532807963849121060288169911507954171473795856349082659092999075179442391267209496661276493167599078002091473969568874962596507110277299129436841503228579998830405340950779651468506932092638278614499125504795635298311484461915254448590707910156583486887950597060060934200831578167552212147537578570513638382853847871775187265010664964689923001540370251693974968148405368034715243157553313248240910211181365657582112932511409474756806981745648025117382027830369027286258122199407308770831161245305004179379160332817772691648543750315840968638669264835883263256306998469064434510180494721506865434296184115375123638062625678986057813731596420812885698519834452616481402401279596965422241706673749011802034209666945027292146403329870761310434801820179994465859422138318906666024929006676188417388321761909333638739202981606274810254558662070588526493322665086206933776446088461925419454561218785453676901382333416120624137553990684076695128614232853345952759800073641289104350093590224072887324402928634765572470257599915910134031587210102224359413549070630184512912840065091023714887445418626839285700879715801364586655968589354861346825523390562853140206227189198512191455251024561006180597736068477675317502796473212227224985989194474514542918604977932484180847315531553868773872066831425082771340199898363432517056898872008173973172329104921665536073893095178571226731824591365871750838104845435911050765919839971488091689958521479545912589018260249580133421100906916491000097832494902284458917433251649991024375890827674247231575368981177324203388824955863013593361247517269629782349297673825700135760516487763202331539288565090165908454812789757200090369965677596078649503844983173183753213594344008650497701104585425185654148392734638627601143232186446754719612523397761471819371885039335317683823964221792718515276996905480928471413123101064522380153855549225117333397881214964368479693515781745898796746507189888578179968806317767478205525245387021077260942272121582420125936714839411249907790515185914461160282387549889604974601200646487262632504220945508722676876084362277928025707881070028358229156163196216739924460088887594179412586721512684875378853140052737563842155817733902544847525262123822379032966841169983128954165256138217756348377894550920137645100737745911216596298182976380135178037848171382985422835788942503341233570844132875005513503199657238441938421674379720596714087984446347353486802588534733506113103949605753119697767632210731275671839460386873278003014037280729902653124817912842506564560687270550985522703590386877909858222528338254054934641988853339676112072157132304811271753226067176269630428852459026181949165414889303999737297907847402354988685925557912635921872339661156137508240140453914570609010601936649642045141693867022126146883341855623644739202194775551291407714509295399942372035026359324265506426370850154975018984550846568891434353587327961855904706624890244505725972778622080774990642706434304735007393365996910614091377399015272419429173094902603292860690162174435798661985426456627490090892854893678972861911763552297801743099544015147719375005836775694845912750587219176542132259747761116210426454714737863670089630069618347551241023048630996426216528607693641839513502931447743778442622036893744059296198931704207580963037957297815490230087505839854661236494215872108813558286888523313776382140849211089962449447964510529963862534411643612441414535563767945218855351032012899464711536307668488930571706070929504297233690968786902154066509725617322151601619523061810999707203753895689171969224510082818286500193648448690770163424019977504993964230666560892449430832874612915620030793612696052496386357029840147305811680627793875279751335812008169676563352372541845719893077843390701628235486001325617357017143472891046200362502856055647560640277997086498487767207822352499225572976234697745226136572400757640786036567230024722236190172404471192794891210922605206565600715860380049095773390973493347503435907111100972356268105689548410445543928898628055657511136044909727848555666881770367169083324331616720881125081586263926299413144564461041663162148869040073385957702683201919629781367434049392782006248038664533950279517131052165293962214835406330655536881093603622642907330854046043070451265031034873927186923779781009310693921382449373381151081586686370671250534414314742987008856434309296866667257465498202011966677393052201248662805180484527202500349907486629932781806069309473303280732896139947079383457766158782060411558096547061080815609754032757603399229383092985937014868483234233782268629490511405719458715684717381395032328938626904925977831745882405433869423751086319622221034158104576200737451074623588651000956250942596964644412850343605833093048515103020592447363161429618201378560631438297607057093118459206675530597671923750525418668074192281968427008405706560407666353893994602676740423454167835637784026460939221264115593308212381120160421825632674957824741123065955795923082429674394861284861614241535437071408128005609489878163752778294652255961862924029137805835510113286262109975191737330579410945332978622479136233004360611264408909857515002433321052457699702670768181444790932599047262619322014377789969372355013460262206205598672346961608847139234991316714307057041703071780728398406772567875120740103731731849706680503900348542456012602826751178810660468215307261760074116796659946274752738205019870222118868121607170008567160766792320841716844076858161671113711421438115547856415061250234491241552491559180499745503609256135379108874170564527544653871257231313368144494293998602503098343236675167567382425170563391248878594960671933425384324346793709375937031116856467825440804430337366229863557072329717177324649992190854922061612337295879362048277600765967948207023161259521355078308807514854134369470181287080269092602281971296638429867862468423916990497167022728507904669642278477971061912225448530579448135252879794854474342698299010744848208863055277401367494848613290533536594558097695666545438737242557841320605631230883166074256732382839327709652753736836277782714480241191662087684199387949469570688656805239249876080091643421036861657104479333408883110767971048608078366205172272088513229184511836816577534863962686145340629294883818096995531025119603705730283082468665412078730768309949402991625754949341290217143964564076492640749600759937988689117528250445235529581446851514575823698566873604696206088501651619780142570980007970816434229421805801562958210686213404714099068614288522573830081549855880662770999618138836172506721552489490017952674538061914442500053341721651757315915691154080673441216788548100708304637986696290215105165802662487963473994605989199566658170493063410519812974108554128723864794403915211778905158734278426901876760742998146756036763733484157179414015353787456157047286824262458587822742789739128627631186030097931810850677679594731589905980565208898393428479483768594950018666344456006669335558348885735391346032105097424684548014140300629967035240115155459312422827062329030830022641356619619551379869642129837921452889826037787131306449480081978156769714227599794035683699972488073723456774332113776299494308710322213056456840977993929456187101962714883897691494004576651821675963820900946480988196816983546932047613229017641694622154423936004324821546089361513283839865157796603570017646392603842360899895766289927360073005930289725181756870719330455441647599919858738798901790304689652430320561302957799248141772645721306232253295915496086824854004893222860947607751645436671445740429379295222030009938372143211945485939406331809932535793806587432595833792462645365195509678917233677936619104370850091743254604766622440163915070549808279717857267797105590480514328298095471551431748869546859731436085626575449593677051737547719376115446637111320015604114001454384171118267528396027266254679868351327441139837409308011406248596887183014283417628977381751883432973259059163087375686595288646839120512872983854694791906235298572924873399540259138124446582697610574834639602775301574762456768662914661336465625833947700842634799059770830373013946726395555680922293929634573310740877856807512732147236979964670104395367147952636912749479722150161938252281704172053467609899698075129303923927165514282010854274143234577102499614450527100988405916457703686470109928095339349635613607385715336489721384964579059598076648339429791175990969936389428665016072374255289874901615025139666629750949677037956597420472086022303331289005496596037963521894849465133584489514923409671612417534887111083724297075063570606133287087495659648258608285846951166395771017773882979883887367743211536717027258661435539576454934081797482592701058248526762940463625492686396736311227784171980621515169728901250550591623878807212569291674591374916828308112605017364182269229667309068630511506414670890916744178152820967498107755739037996630100700560450008706845313018030731590090239094980544098265832215615241279188518287383266300679097837316041832345093547184896173614243409695142823817191463489815962743593370170441059185764564437646776976161297019256489475469939574536519087532298955160876357142462150515399843917176257444731068259751726210999684074766130621955674527837225565256347016738396245246337629794496354628441863225210009219865733148673926797251770966062269656093259624167114485772582567593515874737485793450294902185443259015360883954997559785539423993035894422949667605163744986374474320567606924398615768950470859363574435387923657196002083912910161501360377422202868805068158122400920959202490849719990054377320557260112610911582609469631864693831535974660840424792513873844702113428039080654732389153445102154498835906796375643361974984208768405085956589874318106228999684752343941333612234329631560843503269576763410700872063662298491471316451748367741272154591880828792087590174763464567300601923230968555007638751635243428821117147050389385817159024936434857115223791623419939552160469449673682537057902536301729390851423023416293154514790360955112628613108238118071037312751844078329063628518017598530280537001560145954696515227214825447635371448503391813801581150217832623514036035087203927139173833603644590658302280490601007925697476121105327615892313932152021417488251124887122306519800973729551046064914295415326053732401296531000290582226423807161277410045770979794179535892150899377272640522743429228046435378093384541525363340911432507421258832508569316386167027359889937033412778198740123979052743569202741255743229165332197094531392554336670968681909124492803847945717782129659897382724091149694898699612168740541664774496191747304858459549967905296021753718201101682893917139579052963431783956499985996342352793845402127407305814640964066089818241011815947861908970555363424285289393767280308162310907765702099981895978374011885068917238416168025115727084243437236424082025520904117063697347131317582141189769794596548909070169314765953766050051658316286515359424504624876818935152339465987452856586166931274028959471786609520390448553347664481000724180522408482141407096733569992327732365323898748500704447077088554328354249060739609462847397803130016358017070429366048827934750767396491210204053124992079394995792009195338470579983884050033936697636025577850158646091109570377898628965187472546630001208988049715605187221651180573881890712426909199056217333052062809202774223730155628273337950960393146713536790748640684034750502208810804186970498272184127947896288107179708652508858326806392820571168261698394092817582910064039594759715103393174908576693222184450379822969294625283386601912569706653707793881880626055676761119828589356340483607810260049298829392366112762776869471745545835377490935767566621890025530602083332705145675128596709698999011148759731582132782912855423325320900908447947288224465940880278491830432062841798559285729845061483260905629025495505430153237151403654162166145762730854525359864406092812312415626871536489895316346267379578412597062308605097207019695779248866639064372224015124634909113025938566401544903663565807500945982122672345667599485384225291386469655030826958055408488204874852673759721786523960518266406907829735494692344445022760553114789709635337157389047125000123032145158394374375423316971713680885225615968966495593562292739207690822003506715199759271756035135325688899634036018628236216054526128448030686484150314142008666674083266672165043009237834188751805901425190191514652264824573186190504886987133768460355096792240491921530159713320029565964904495970368660981037337411388399391851116843984389031527319304429102380057780350600118336014080033016128067878805238148878603259532519095243322156992956676977965202999512828152695556629156977020239189626495853190409722657657892360270023611708344460008963263641130365506442168194707562374720508677026937420399329087714376581927886166499758682508604463875626176665716608448836657467971150183850831119264243200057248350645461319401247775620729731048082909703716380757770590217736628162689307871509885086950793625813474500492503830959695477801288176000502131571829374306716410071597965172938769984828102358444780813803476191946813163862557105947622334450324754545339322631536538059411544451588500096481550890270873160855557944408941321815689748802939431967570840540055428456649013520329698433313978061061821896398084995651350036196205755622271378981605868818676817232439386469291293475076473783180375192600947488738776508796191721090011808166898598606295402439907656563375279953530133571233241822779370553646503765941696419714330094388240626140970919661151968775829275399434605878627645053388679107171426279358107348783478213773475445140994539718090913676415383279174092554420596738250824429524558260377837851814034034702555567213190204422892115764744521574953630942456062206519113974172879959431702559510131488847148521136387031941230937127137244943413244408947517558896783508807065630841543160660397528138929344091034549608723849212211006592473597689544337781514177063158304916479169555475308044983303413108255250503756289241375394036953844264893377677870244629359565169385084654847202398757309531732990460080437630100626888071069610555023434085789961261382315718036961133663630444091945263104811049113128642454071163864695532605653679915023992973369378882013802457163769283790715793156386682375341401158460440503589335475035354766758674261322862866575946084763336927825955340244539347411189141451377269674501472497121834658659190710656942964802102603301521343187760231797513668489460250721801013525423763307387255538834784171745821944361023176273235650828737975684441847259426386139388960884586147249098625435195649223879122909987373607339414208918431072198367735894492994954031673575501611432267916942493344650716754965077310053076798427034320041209107215626741112525328804447771097826107785218525559409493573491740548356087436324021770265946553213283931366587777777408972946014251037487973915942588966384776509432954643167824420786348037911718207327200959480486161165566142050766778382850360593611148637280299107092109758054761832258249365420501810412795740157187292496828320354810148827794634647937228714635211458641979772742644439976325120245406512072502075091833490172777720480338542073470085770133608164891528340688961902573396195667520941023347816426228109842923942360334248754627928347419767624658427260206101146343891035447352341370851530701674396796964504581761015764119470048443527545362383630084533589237476230885750653690802341310249062017879688305419150574343367737742664863322284836371082988740834574449261826664194742519187245910122013323832634903819046074557177902363163155953419433448498844744761036202521145165322966297900152379890865460094277692188916170764633871445044761800141324950581450098041170686801605634380976637909083278485960455022996502052360667481149249144107637028074691093623966397779067799160180263207272778303520238159727310090335755169390761330858318925315040226560166940320994127706040611096948792634399254156838817379702978641169218654494778859326475149350293285195841365591367656217210102258434627109811233333478728801809162505731366264591820711863696045259289050609828781806943017215166127083657289381085323708780403794509715447185779046760137062846567353198363080415205420395703024782731270489039854946376342654891980737649252986764945220381298119627075896192979081103927975107090537168754194055655965459445715316326815448601284575408489448807041266055830718916227019375645336968461814219739212648565888656807645419940432030677678553258390693176407908831553455251599355116429589310570322365499701688380660184938254727999075602972906810853505762882512098069597780607188736717878868988527752319221442502553282183583953305312927541009469608873144823407453110551598866327334303544206794441453551549500681064469985922458547756689681842843850429999731516628503267707027037247985484875294700474445651274528640697242156658909138807550444534686473231956691559059265465930956901832360689835693810109259821896163309851418458121392054911433412399452530664789412143094452861734709715889928985051024490990978345261436060180570487987425192924959974558100305337121672781653439928712967474889988950231884376467556597983805627277498440846158654028071572050279143930550565725693481839864475162114553397907921078309686295131616890866727104217065323524444793554746981842277566321804915184438867393812276532724522658356008178321011970857057714689702249979963592709687919732491195310606029339722199671437775005167621031739468065079227269125694716963017862468481370032459010429102191708558043067903260685803276101015862138856884649731943786122956495728906295982861183077713799059269503768637461523857858039580575800551751257351460458244348079965456716552024041739928524999944179600996451692212108187815712754159533086563781870316105998599590081443454912385530345017609792331341007280950343936954181603532463471841705162880733332556852960306468130550666385241417853838348815710990146453455451499860272762124109877590348902982173040606338109804047098460029043586902250808374856366175822752194567992731688035033862842819048691794533180090129138615362548756399358809087204479643713340078136362282364564536155821643702734121006887971344657854713100546601205039102487253695602597484620294926253596011251985621508015443233980437999810761209963502395856991630500130538290524798187886772233719295606304221881172987086990733722734597931725553369478845768855583391059517218110976918186455895067466735698252353056770148220539118597537709063203176647834051916963642624623658115579337120909856918284420730977216125752058264354400117608025026524455363248500813828601512389223829919557633348930478327162629500905219639611384858556048386225779282291558576431775060369906411734382232808729776446597063372199969611003807604750058261473938205334030454562437233056888202593110641896942306908754533644141710139754259259208130157166723376555221191905293273709577249006140830821290441014134293992546631950694759111651156134750008594010758687739190868490076598504691773600751392282476057150497935574457312208148174170154506976368691578614851984705947135012903638348718995488094678976474629215839591438369711125815825626990194112537092635062821559212712254137329557353480548927487027064645550014450820659640787605617463497192849367259759277577311946547575280718183465679495154170784512359186297154568023237697138235708865015623925298412543623843175507405885774637697113719481645574155417247886459085809781814236631596424275604456184422328797423289807586380155646934286485400436289219012192077492213847690842459884428280907324048990344145699274065921375323978599855266938822392431776843826465845579187033340082374588394488565876034482875652884781423635409914854293076832614257581411765384839710548795765622525660722548007792098025197561722199114060142121483923151848722170405146730954329235222091728491880799921063167285804909973326433351158971025326693508176016071532292806643557266562546166857261369072906982386484455828305293668975427066621644635860193334723357086633827308905695235712641569230226229310368639694762763814880303119820733184701591622837349281851537505284859437155332878823169909992857552581872695379018580754019191296726008821130956472988609579273238998839620824162866932720626316100709997163848772261637019022974901026411246838000658160024440824290823843214003603255981952545175674912724977604854462738019543420766013390212750441228049151438941687247738698198241877440292081808147676922903107545304810930414394651989568523583720418070798166491443706330741603839748669041149186328101506225052712120370551179089732952194832275126647469421427780002629413678522661012510795787107312680626430689423113554837424087027405938882043340947574186751000460624367595810950691112296160449832046553693839705008991585302982286345025087733762839718284432183008170536317803634372319262134350399894979459395183185942770883405094734321388154493474478926998712043417378389337459430287358726132303529576302192426091240893964037973430843068159394009457533681210316763519052921741886658714960129764854898821147627553504243052512917953778473407079479408089819784945320944777003431874794186959709491690222857204862039204671429789257193121166817474410234020767623049761140106576469241128802011494850145414708142125976524073100516896603095383680227071902445328249219396232716763451207331847862048919866948391432262939368522276823900553067887907542749805299001133180440690048490955867526510619156279418481807710572421034137881798837438715681871283430857139315506230119718181910116100801061759596428921481185148636351393940492082446232700558965531269868188740568553583354687141337048446413652616997200894163845433151999057322534057635398594557035734691926821187499323315367288278441987481758989167945552020548140744059959460980081599236380343749230969764295521581898377161552046682863983844668487912698228634160028357305810773945500041481474281345810281641684214093047497165327173961500775241583256610308885486883500291854609855659044428254434990965619709474469936866580612687250538276872719192923490235185804618337092097703978644173325433811327718310585679485345496468326054270002466253922886389708466895065477211483915293719794192492321558414216856384910576247804054450459968133082112003145479568740525463638077797259309833833433081379814711463530449474578518203284162340229821337163755316099489466741511663720504863097991739336755778971767412408566936697101189476012515254235294268880806771392971298836824736959498486955094620519304088315026065261291052187819992903452986400776960695150612843020933128282823914513033622943026492159760032899486210929998861860987881407045201889873117132456402286509592461057512357232887047625026620442864726656220397647915371010988773253104900424241850555194050520618928715899733719787249235103124900854466584373166296207962370565969421551068966114608398799488248666065028007458837821980351249209830234594270972233458017966529215391607298993478825896374431631692975181482051842028649038125441554415715814071016061519532767794861723958716085817437314483710975832648962927320608871450157356921036063011606418064706360217570883187860257907671675949305081452834939615870314778499910700816334127934698475931031029205078194966758044999302714297002325666483733501999685501919317368000934113338349209433883187045624670552235532053939827775121636227643275233633011694690032215804557463361725835854403152726323055610691749801397292161356494921170389892807134271332434635618353059584197244063384864908922992420575095814245791939318259908541114997115779862249505795251964673902689828118756482388895069933241854556066242290396146966993500302397580168927913418249165883798685494401842751525811386778383205772552982019202024936963278592762495274303236817855398424301291637979773843396936756062415502466855383963149762339307493666684227766685754847614380037335569846780001396365831992752066920989686625921241893709187761575527390607211446154272429805114665038206248324427295020962335104494780361451674567060313667341055348766715114788915917271087412329090802868490285342472813248834878408392836642506348886502593908251510636000715954222334530126483115484972546236139401857494487227925620983345503987532566284943890449608371881763675065804430821497522636997505387040097907447488634087538976515640227982990051515244812074541365234054437366958800511557902945958230853614003085492968096247256000446562850953012491378327343048781389826253996097183653005366189239218750915841384667538107531050855948964198069848274756824795096371211759131691758175016064153549193605917539825864278663035191014398431616177359866147253842161766228010270966531775188778557972214671182977988704648693351409188350455411934614832897279686428949457674411294531766883012483732983884255596926206533012369284060676533330878033013318121885389153590079382987319077496937204350939551683083027495365509565547773068429985121825626578854372081368446058843606051241956225654369095302480329074308142490551056582314450027014218784125634104767027398380191827285550019294545719744136492788771260212039339616037936113046912535368757851149286199861989267925921625086680137496454701456707103871530891928794979201805478428537605691965681335426931239154628889683190205236940974359605048298940951882806495461889612309113106177751671283462469575886017922261919435124713266197964075920783648994408235295282329520500184412306211485215096313281142847061625803607390211747270363471062312887925866971167398371382592720084470953384615010041103618265620520295326639641741205341415604882849446141449092475790124943464144219865417067332148564307713561204254294850887925058185675386904508715654587909512512115371661941914677729628608324450003064693048925589670771010074617389247817817002593928391323038081092964621415836593318624232307781039251004592877262096946081105552626075772269384619531321838679684039768391043467416204471790920289249900376773939148071548015055832475046984103002567211360230868794772164545660150536621106369844114235735323547281255684302122392765452325223743710182724183197128573965078623691744891312594195374520328186837451638195615587427367767809826252656327299994188357077970308852203782514429573351266008589768077204684132325752820678013782003179807550254592026750589504265930407508110612071269238387740677622674562684182016178279035140777605524292863965916433740496274498743314450038749395856493835997284588132705411131177111345843665418481026375901350150014987501764385923066109639232504871807575779410089479659402994212675160864828803916381313237352640328118276575264382216861050081720273249989218701623991188835840827219811290096825551224177280569227589785667240618283564008030957476982003856736146660393104047441132820486115066068816368063000285809508026674272030208814588818570776258637503152403884196465808012446268154603275392687568396966708460806756563012654802237105781762174519137326547879925846051885402020997091531596188034898909978399852094993934175398022201824238340955534139947327646742948096121222035821513204006500676007838352525402733506692328125425429948424580894663544774030035669334261244394208328981095328150482818992974282191945056428976953536037023994410705111294708755530710881787970825032754426555288552265838129691448023896583020233641129702248425216351769638489758250611126485329712242684805880485078154481847316245572829162406951853217309900759161803023965070056438372146112838068793129783000765999729686143360828703276401827877674590135191830406115657713762867114768074629667500948650441759453496109667746283716690638944196720842591320358230557292377307950831558259001868812078507835910924589037021186840576229934386385133272255371457212304974712665583828650608187762576622213316370656321888428774669386607217697380049156675081990481969087167697367216387984279660681310060373377362928232169847449365774840051927988366950769255097307601290244733032637390163433351903763461852561839749480927262557656484891380094631644524240225207401967459866963941804397450713436626595093685962788939014028175847455855625195921762879700255051868180833112574978493899022991709782912678195457326750708538438600555212643234186157014388874248732655557404770286961883985151875973230477833742661453723869309687187617939816732724713723747238080113827047889377269438255271150887080667668977100326338446399196909549723725781919288348230747613455359141231509667410496542962237930010124999617233030251594525022833735035304980319016845574604688312394520518052092962443251549618308307797034866408137604030600194617190726961840499758568555284353230554042485320404222819160057344683825100498009993000219827213792718238227743883159220810722924755366557653571036006885568606324841759029365079980114226548415896146272882262355073352073709522516427066019732288871500188081448540044360145183751984957122542958056617554557795670503564825419900887589582998337748170387870095897157817510116237371461277065257097486297819290778342275562180298628239315464972785984535662696631273550093368612580887622036413109115130150346058645192785981550659355611735219858625268696742071996118122357822865727350231119817765525217765093651526418473308727851232430637143852392229010708873101896698133986940347709706883144876506721077259478944198535111784891169190984308968288820766087461005509151077016345039801341844128686734784270734611982360533912667971812289798764057952769448772487443473947158696492383875017570667684594264299325695396746129802779950127448697105981870626951104149296153003426427747887375672853011330476239239674575141427056588653397206131459951548520571808997110399539171487354420294951397927845431659373082078900886967123939946349234834782712817446001283356961809236025785421527379228706872787657012622274088118967997957807705004310620664147279387082774007950785309296640387659984849830533152147612614214640615426423879835675123938344473658968281107965533256026852733899338369331583221488253316202901483187025587181393121928327559474610633231870223569086965654367838477072362189730564614568019235086034770335379023726379192369463314450601339880992971662399176372679753827784848806376569071593233949084279922288548694452357357418345024799446926492481539270548119375692142848316910400183911571023506520542756777275542304690792474830615237201006353412174046456853855599982812948768285332688873952358501432212910798814433870235304566672345919326636333298915472882941566778379386334347383277946126504187526161063454295295902456866127528358120592879072852044446636034809818824433888089860362656204111304406252492310586524181802768758100739262508260042156154119231736064801701927965742753377449710055810933156998256457092472776807431597580382597150759398677242225687963155056090531339425121233395174956755377170023891148967636952700381196642251909428078772596148808571034965423023289528823063368345060563093653027942330090486090053708508483530047706065094216796600809396206232719748938304023617042332535990883230277072938061373822179400101921568392451478336168474146459855072953613854641250915888436227848793835722466650267189153581261672035566392160193033792357794742786085132729683416151369242585984815554451754901494801981601634670070508757775467655841645803924146321503944539515964058813362348371591609426196344714022670700754202833732089034052195012218388630337996769563084520496384903420528621524293932864731297212430609098213767136367416218169573627351628118564619472629949427857751648297895646072239147456774200036752886527922449832110534605655793091749942478951957762956474720055912648290164629225584932864338333985752119402782656967322210073935789919800273924283309400921013631287186365616709335807809463421936751634644743573505231859271143415643586031534239364384621527623413524850845796057643279255877805482203897538167471020598812172252146209991681113616588454503836083118169689150843635996746660198875395872796396001376282319381258930515080358683787772819690606515814490496748760511611165853474772043876110738168738361669298627999170430590119402351111493109114022795864778447517519522066847053468083163285282905236521443724961238444249783518762618620475756596855678738707866731586000872196574102643561318788543016527214856378210170013413138135987084310013947555301354733753644064785238020386870366675472502175117372672404703173511843259457554753520290893153997672914461270105241147640723495154849378892009264215267648995136258831776735524102568296904878464599935664490943086278802312320228562751357372105468055036279689194355364102442482409721731501809923916244066719731952690618485712991546025605751965544268873531378889410828819520434974779182099301288260340447107587021913114118418819314596948156017843121567419879191245786781245880322775125644070956414161493554814509410756172545332956493483202578723450308647528989618869172043968444154288283662558449818449278011601237018198730046656065031253205451890356019850405285930121254988966910711839778249158653221866400942623571591145465693824607722800420865512088772096669744988562743412636640478349841792383356430076754648557205711733117668005828620240746260218045360961584968328448713883571419840911309912549611698573061753977642661343323606527205612422312882397000687368635893015102217785190369208578944985431434381437176782038156115219573133305128987089209081799453296598288058697945628105068977492454778970925120103280103378842585178849806054976750263383704895812145121230053923086896749162661834508496939982812475285463360563994822002030393163457140193886452777444729450050407460517785883534619429737593985289590634193329177998537311997907472818889601523870586186913770319044694892779266520187512937669018954491814831180297200625984721637924068075655152384805590424627189221656433047203958991483219608459633342356717964160324577053197436669416873057368899802175684610879955742592978676497706859259999952321671974747074561848733348458075502140189283357900836800417417958010787670602152598448873044792305257604028207171445842481020685095372374117585174535784577892085934418900304627451815311968423045928040908605637223279844722166814057511626161055299326227133851333520496812513939482001831424857495517379432123253841534471836784675286691938182857527994786108379376231215198723018028930492135032687248454342206207263717906342282261113488682335637248070441881991918967960843306163986762303169375355037892635935467737142454071230738618184119581929044495956949925962549669646479790037251545810288437744023601598775389145939687011098421824813104895659009510705433564296338600865136635487604781591483166775236676545808565833622455430799654001541365276136156434826063932374823980979079187188553486879165566340597482510609375683592861228490027306538863094861781890618027876954022974162512503996953216515021000563932737192351983425040297432114078493451325321308821527723408532081540239629751005350351053354134202674622783662799147197983439210493047227047600117257443962654534713809299942232597215232263344531293675981446722464038304202542178293932750557260799256526008157725653557500051179032568426508231437763288034826884056477843963849521828548022202763268372066686579650907171264402154208278466566332690009139197269553202634345224030931548934925370209781855823456840237052198470998202656582053698287511519550245202177209252955098350121381828519847147558129341809187773097684195186003601287128149734283492733582863493283106877260623334539250526848410019728148150290913483410137815934849788816568938620571061742120190049173589241409834328790098833218700393455286084789327129033840452660385677289568542599321182909244369136622770346577351240893297122016417592092650548290586771510124714534613113038436351201889479259747973533332841366343252326287865206888092592635631933912294318369695357956435177803842116909327807346822011279342480422853506991554076711103481628496395691271853321742635409383575614355383930671496408841537733934573868659357347113278414577679888699709331686641474727269220372939106268162120538114496461001183539570863517107843499898210536972725269721324023947387700929875022095706277715364509849646024003188698264166834637676428459153391188963470460306234693034411441580648098728886279049013142794711440194539384471112244562448558490389824715048385094177141255702865253823978106013052831396140010333527048780863398604776607694898287728791407892554837220640318358958212109185048843830143510645293388723466901238145602237192276137276808861181688892042284136741758849348175969061153432754708178002574794617233707645621127428964885585169518830759099370371893910117331363441122064955985703703504363057072841107818085934830218163996857003302610879451385913096917535529518950945723287543660787413071055621816642281599879731244419578616380604830683980971737004796806392353018199654987615528847733033470704592198676240247498924667864375429803306616483361276461816143514692039684515258013758067576733210933616276417649951465636805274773222851680529144544087648391279519684518928479590668287293164575209870221586739709633041609234968778032179813009316520344103438943806170592117856543983494024843168553094213727786811783458054533733362896317025190339020456971563357016582657062416518644185056484182324812014349336408787368906877163973168466044869019068177679218909299658924264105624741554494162037044971846914111333149282458862854464212422357968320803094577877380378937323139236548179344230713309717704292371761141841826440899517447601860495741308623486714037606913316878325972105374815215700270358511594831232891954225042342962785373934060524661366379529821981485401225297009156840021137586622892018665366949423270897885488865878210231067556620362795093686065788997732523259698504968044964028235431498347886313243542497674719221942184853521335835228613718944151148236219319863415794395136696750413653386688705203697193943792495976806918792823219141662481624447180570574572995235099703646091699609971704128158921342931740017800146112453424086476460623994331959512058389088139510070839299901426849885883889250347379226086644507355532558342355320057359347560456538871887340802302752278042472904934350986182771057233037716158102921332263132046705147312399580303352642822119891831446871852771271109780827713815313752641175093190376558417115989335694242475907362987789295983243010870785313001170736917661472907384746283986673981739414355028909503593526076908484164595523224972559265079757472674184706584754490806035629977544273335911593251690004122114616466202888176533958331600440342372151457422996567177151158194395185384340140507043740779010002379286419241247886388058270803012810383127408377049045035800316612309045974450388339707420711222064359614921200899742037531162304400131143254760260539038832074822117497640057174374427491534361735253861238567874564960521631659578494887969730719466445261935106568764163319252281255227912616306944022301018110225551143936301078121603615241550464583379610045388573504355664178511267742646915395354938567937175159348790329063098370571514204753186763455362218077797228082257856271858025129293607719270504041272987121011641508755994147511092856105158312015233389847872891630802263691027713783761550909441716106203555867721693582419436268490046992109244944660753472569431962555728176251105037947574708489991757402489183180974190945001802386397761770029806856020650497887284078346008126753071189249786145599152996975766184970254427944767060791575422912478940051834597634548004701582423613312060770442639451339857242411874660746293529450985027875804335417902371665417923831762585972958972489021514246076018119243216334095586374659607527058803621880430043803286740506416762788633456892018171616808972753306777292301505597237965885789542137266999176975283850275535451728466022838175646049759570570760858162163230820432095662617303199984067368543193139678009762434587285422173034650844674272606453786879772547347519227274811546799200497895164106056487794333495856649988806375134310078200439935641956614558820136423644172066192196455874090015725511135660725851151306106824993294285981709573432493210984464824485244667224732507050004727690926376224024213522200603998928653600041903575390171161062531094010995709441765540675799866478334802340003508695182334099887792850440927521696744382505850160674422436640959018124145903270468685080028418555979930928362771816580109147235686041026350372314730039271848545722881659402115688585697237461934535539545338124028161964949076881451911754384461719639925834440969520403826840813791444614264613979118169587488144577529928126258376525020357514455906345235417166392303299038860602998304096186459952356778254544697101666350065736676951961942542254624427642618759394755575475752834856995717029572130716673577048244598553531971078794531600802526882223338314875783873838650436194254782184323761902375484599019959107835090234403260343627224909437502056962253807651807303425367032871582867998170548790789339618237245958405709617597441100850516416367850611729836014336592032280040083768966434920784385271991269005446263165345660906668379052978852779442459605382668329889260800408752051018701554489183258617963591402457364543626143453306890315225891382689987588899248551816906628139357289879687268661160925261607244940507984495671143366443855821223257201237365001631132697573915998427610146859051461481044348569883828145500910404391404078286961503541346153972294798313521659686355221033707723240336479278605092779266778270570045798171856970895141246735392136111251097061719283596763775268802508051998328667052659717604073483830689403697810388179328581422356756619790111578212360798533682229903798373324712423327417053405387154414383972804718455940846771064986574767773474248950290467998166759335744286282408845075307624687851342787562230755025912370100813319011579491715348098769980566821825568911188355807741493547236420714138272725194547235508486056377211232643566255360665319446596412316559864698943429776329818605445360314547078675504399843946394415084517834859962098120133065278856385192310134816157220840587190876368975868666366285346754993963369506267839946875524096966631071478877955005163107818034941220737940144382639634636398233449363742229179940811813612507903914476640607925834632105415747513410285883155785958845656600679200487577913249750221946186782578292784078313833908807224712421864253745891477752260548860739548749777023820361686159741568624244184139116525145257203437902579197924914243110657360135414124157766714215403502496525076558969659434178670269375976970581591295534444150758886194431106190564585923794453621227653128017684367700562166340929802132161450879409411058019752421783994708642711131891377919779571327525887264990994156606334018567375454827833572427569682336460350803545744432986163621513852311137847515617009704516914618466760280979303708275307599696330370942335043145784771721484046855642759646700310562051135311762050277547564084575960593273905011143979289236847135412774608880739191794552021363219209542847772501269933208064036580999875160516533870625387013996076257535925287761048627074478182450191892258939852312216952919414732733969061101630758937714480489289534874551199543501532228138394351110037333110653245218883997129320817067845575147592860940974879140483363343219969912106009996978609303431300489477247563405528698610503497473953906054731128766132055651013816690809314178512088617479028917712392230100898108190230505972850296915419254242895534714419520264085103208255251656188469011248751255572456081455690292172406862884717308840126630291558461526774120373241868345729053886188143487130875988747980072548459758419737242481633279568460793856405791780893264876693908581955361764915013652147701981046330706920648311396473802432204770938279943053306893874212710860701355926271597929851331666029559947201327699333922540273818549127344277430945110138238056393904483355376360850174011682350759089087461296394980656790118089962708917123698546527475578241094828633557767913309758250012176132169303428106876909202640757179678372953977703053335543316824539776542222008210356331401326925515120666918367977502404432807311816657728124278885439629361411756505965833790837380824059981950531109581340144381374820909429669628868357844806254960152290332145821870144734278147872797013304618194308247572158958646466260501522084556200664295868339059226026496224084228942442275689118805521745243341326935238065249093760722015832128099002577974684616289563796809920678908376495036845795717319264207284826980157605213835791048576569892460173007615525544470495113878983707438984177309564949778093643947266586587148670834168719485040719446935581237782823742358082574715370019273306261717577874843197447419523881516723075689313369058416530019147418897012952846134032996194033433463781894433138779835596448991348536342922626420744784158965211629902746731673981495411726818555783645922493425744046374124842716724506131461100626740737614080337618887516819546946385341670674927079728392605394993025549969475307295562055731942301710156630361137955641058234745572664607215451566280891169693244666957484860103185701822694997049285040788916081383936277756861065480870779704295987069537764919287102461090679858500192280364105789602237439829870232578860332916867377906431593550922108567820419881655053465312557162923337809609433242927723159263608612508511924247612635140413686221362436473571796262600098142261627439220890396897493444865694307368903940500257469745328659254795349887308113603933042562915120190982751987888629257832775757445894504802529880821533323435271941333139986964514537903716745215008590705515315619180215988197985401765049548043636827110714947637196657262954008565069614650707623040033151038887595819783625577662809696946121309499017748924556163573475978449999072610176686793091186716329816080104299627048171871174299881217368276938062487504064134901928348194568830762700134815687068768796729474168246862278171777817996147484963526529227793025252133621970261765256695803181247158177258585114605652542027352448932033325575629896487470578557212229492881371572952194733431316432515296896118393877690494623908455929005940782409036520781392269566876591588145847090382171781619258918494182603076539702949143278655741614417888724102785746615661940896100765045250199463048969152247647489828942494859472975070344065897340847302418274818988716699843760876130168667902387762614722502439232163524312765316728668413767663490908162112791561379133994463101531020408746103713421072741628695061612263253327219341982994653500221495567602334435571404486434875250469141057944097738127089356351163128551675536811170421576100250249515717738956120012200638382317415967640924534154492659882705172508971183587273076657966033055074948049334464502998994528840249703609421271390480257940261427460864271476214381830174009678128310069451952794755096541035628760249748534853704745496579587874880511906022138230181435371044054743272530654367837161438165269969437771231494678902097300427865033464074774929978785402537459200937363350930446217692924567626965751349834688059048372755594168730294044679994916757099884314050421843138484280347194898060401400661773507175502657430723778624459217619518275268601768300765590529969236022036983865569914874117349398264827703972664907040210116169463430946614105607566750280403776531996523873997756268791738248728849979835626670405394191527070817137411912339847961965943059117675744718706345583011965400027705036779102230606632844013888010535703777147132147934043959815749027825796751087556080392870909384392525357223043689862496751243985145808967123534471591204043917033522076444311638384665174379188735189200908806263731581937959977067435293109154530250902407819437964136876811139590588375120091941665659122156607255617448649177109632961074626468681420530290845941417889107717117251132421298771261913167615868905883128066780709945108129744831096909575841665735529625417025030504132438129412425473291706505228498512832907589064059907574030875863590820167298755157006293103697262205577537299459007445968803195397372181226530748145068180801552034984042711029068904155860534607655359783813103508548548897307977709058827989089511375695306551625816048886259417124328974263979896298482620563716368976057571738568087932289914600845848974318966185457524334762463112667550541384884371013762843207546231182184273596410405239297694845581881812767799833220367949915516766649824044438759833887215252885930425863886024115304202073425032672988881270003899520263974777306919110181371443003202359144834650631561902082468233700971355525107074816181830771834218803394202492196972498652800122136981631739468233600097065646082109172487101503162209509528448749989705607833964614713355826257970787002629175927738318680134979870719223224929699764409300197227242735335960649552681332075636882724977150104184001967822150089250471161021220679544858872018191368357441616477949299673210131013129248229457831975448067012278740612639218939733934797282965282589220931343594804647291140576321889877937412710065191367855194522714299178456008574689033075991103457680330750659771082826068220267273002329217358171791673721727975201451214206505089774782568582442540121269313797170006489504624874155645677356062826538112355760157159737486908264237763192144740953053843021820120372951820728651624561350840281554263616060454354749411418903834264166815576876596066925923562686933449761299462617812578380301627677375666364243387984973627591532624950758505061257205267978441909020269871274993144322997119679777669453120516692455654695382092447394788962269709831754197327464831231112440735980449022597729702968478397915873154422255347664699100247359922186786341444093216834724822626434820994509857202298660407784461640960161586242081685406423259233136826152095515058222557785367701940862913002348821379658842309573940383988937620047369685936379781342495097441032897581707342638476873442651979755596233158373627818999940968683302526414752668769917041129893349811842419376559165532828871772987898809860660696336706671932700762691758890117675621013914700472821655116798393510430728701906195336583056737351477697636980886287503997600729664505639899390998063825399696923900372517568154565252948825325147033521567780997977117790939376115067197808623165300265059672764038331646187742928889133471101980647497233946228381338434277690247475486798469614877142282153418062224653927531503921250549790987397374386050771869870386863347514078567584494005056089014339457007983225984502289727972310849881884061850052570936875487808504937004591060109392095478590274333108463409551968407850240820260416883054852606407468838591428812941733219326785285249515843617085845418548906259716218794429248438442937351271142617607235082591876271165780116447070715697110242641364401691611735278604117547020301250826889469933685503580225881109676331501960474810470663731843971151897408444112348892135162112888982323757176877287634719693417523278311002551374471209791759029822633446675342717523046656970395882997550097394324828031231647846004361301406181836844500342433366589361376572159938831436788982575624048428979460188179912089120159296579793076688068788440826160733588175345265114101438148710934322912776589461722586337413430623429001696555370285749983863509701102196564674952746514028462633457715032870162032260890647234753430498041033811501058242123160953973504187513577633151174014321421424058183693755304052076090537708682367434068008154623164138776249017362782233191574619788319077823978748047849119121026346225040628139112811804094076809944748050631674778365913664079721790494554810708529540860063785473951501333980175944516335216641003346729388737485557867408719561566019919001094535376551457310884518422466333748699880442843546570933799156654652195559255615809138314084106254604272943607644716273700610178099890731050842769669866648647384362605632060099135383649635424887240344231277812466455616449078740887829966128620729346991328631826650739274782602186293043773185196020743145199676730008223612713525510928569920989792989113378468265282815778160364370162564949175183575741949046279971146262255429768940679885781840435366768375529187223454494385534976297913984208016537675220645107320339356107788672115626505934657556483478135275504871820823539388435337147384903085444390337593511776502060239105814102876005437364981802641137195982459870747478818124418509095450252737297653307771467889402208505093187085377289103812884860499273953980551675404780683214634478826402911391423011047719661830614436325972794240203102674498320829870556746966211038318125104394270439428699344524955883529149490792072730647725991882076646244901799726752121982808785713617775042981973664974431158980331657184849952365375611959619458818249995337637329357146359476815089650358339509838306798214083323274286266754427239426314732201271443343086975554152813010753080671485586801685071785857777153399196457789125288014378459632507294467745854742287722150486829028574517180559393280921614938703396312653581553123682018970845423227376349074720557909875549831453123570471023551427970976446202810018750122376921173713912685533805508515241516237466600491077002141082429769551834009050611271489959256606465467613525100119372605373727872805305984627029450274966842211644292162438274646291076189268359707380015245166694443743916484770593363071974386142361894147693061080715146298051225766980956452198702794389716046840935582233637406669156360399633190557579560274663561234551911788640383435021902193877914271880063541708130373138708797788506577469022716522210204166137666070619847717136791742927451277741352803081313381791888703744851684107356816231342848592221264188008050329048833282453784658711017349300546983040945021142037823583493972786092298392264686375332251488872188456172940507216061126384745269213440811045105356847389681317667701170375637746250547531255297906615885526215577310802910614551638865387751848189554102085403975390103525172633201340567951081388829111165462653818628873715387347932299310250528727972660672246387887258223317035782951254758204588450535238432884813668182096317585815824582981694509509871059536326872980361680396441210791236533927593967451903189481540304462970899395362619075362881831859527773021197889508903986008187040809969720776665838530808004928464983756506749148674587303718458163635016726066338188015119733542308404638012006123280629814783256931839584202664720727011410563843602070294993884198608978171140763147394414295310341554779034770868260164833175154744581675508440840002659142551578075665678481180997376050444365511950446437668700399680948967067960503254472396286375983936142421454611203375560763965796364945039055542095372206629294616569986185428812053309766079289812116688638938212894792194192191105021521877318620573887037591962034538724976883076497037902285786331109970330972771285394585343308098376260772587566187839643291482814694928507852841724323907497254771627587660714550833158282488335517280670406534217753836783907223546241237509252508166346135521432128275621458300041519134902285404272443969698013838753180580302809670300891518188417877166982086841697372323248448444573192339043711073377638371572945194660515946677515222899775950973447214154234608646203741599817150157494237058076788447239256420860553852081632757912722747024196623148561695338204974592266270130376520190849488598670286156722727123076580711187656146468152686170134243850817067277681955443724679587207553826220419730045819554596029092830967197672887422504438301899831415079945144912041351788410766826617358434689452009123036876414403291652588799738895480873432117655321391361377146800880941712655912044037543444894868975336831694810787633064862243055471917364583931044061617226924588732115423570762905076008425124562446740468727752612453614172470379921375447063577348560051420258486034923014344485795138963797802358116911261449975750153329429975092172241987128581806034080474446893561809268793185124621286143555423611201925364862912964271334517832867487007183219086130982021222002360130793583336505149344281176550396274864770498071747011117535916845543092833239474655074337502143989793904936542574342284148652364737364459057791214968682405549980272792082906221889392729957066827489689989693900094880348834165762073726699887086475454284263411242497024987290108662947019229324118645668623772951384923667245224781031390890635914222533323836149057757793164077586820749249576178291659726450095481875589208796897197790117730812774180077724825124587376895413416296629116761664784150766362585107439363406212330604121726446519376259151875597098300729626964089944639840533964254044793723204715520455213328412538352516640610169729915007844036680851274873849574211887761320225650433221513447541212870017995198520603681260854093023253641232165169806499922578862943405613364489049922253830280149377597177720500240400746657124886871084839922626050338008422181645662098545354609153427646124597186517837664844714763406671303660557130994956782489737370487648788922156252085127191733515074864709410592323233049442927307570506189374420450778310170416520852136974075093693040977296084464195808753535628228098598906339662001552187728864396457445978092167885813134966183510350662431013505592783642418398323046435208822546765907544417640846521738329051970614325225198379696341173287446434353264934310416820719345807056366866942198731458608869165696394685548695644048902149262296929360822369819104565865323858953337525600615971531254139493612203979426266421724492374482603718429713148523837618126838919792114823314673889258512422108372304069000914147892018169275379938834508322143892680567192469310937517053387259502099777972371606737919715316013314225875540648092788527780955510853720217335716524668190525895749201126290682700384943885540290354221727886952815662206887053126072885610554318489557404086941491225992468669145552572058612639068144348318138263956437433427616685610486261056745235252199395091038982226365771697942701194692976930150026561368024753650646049539102357049552206987517794735289950850825723162854974722657571243713441929797064372687014504704776386137364721125266362068267796117939250030867702603939010342963334862032536874024577048120066004495658916491510184857418644338983477317023391300101615648335338000566722898624360482849124731272639292127419424616465843617306647597808145135899483272322080521853251136720282193282663357351572335776445287486123598004400325005453488559059236178660893147234722318328924107596789720091829402498297881867167570125477578028686043594752935598284497507320475392133417182292646434025492570861652928964046826843497422526089194502063722860083157108159702915144849931843698233808546599920227731890772485026168076526684875739713558188613254244740691176408619639754554057578835869275107738760422308136416846225538020504786079790484993194203622333210703490468193284145417678858747696108969550329359503986279789598807925521861643606217191356548783806902381700353699245857606537515501493440844627178826170956431761098841406975571704009436127258896864428554701320416237670678323953350071663066696189271130346667129114033692697522890047538761985853631884284922857980801482849529532048413214564974128427434300144276838538308607853482170337846736468405539949143040055230845291663118296854240714419889865843524747790323368089733598805493620740956618747704518450893940597024727509990203643779260224616870265473773058696234251216714408590857189552439846328492539903554872292204459775637299593239265360467468146265485401636834105765826061873282113978874599415747976979249049189417554688252933234984786878937760890438453288309370546962274785891518844670951400399214321530284779846763862912002683757079682261946690686305854467325313211154512788652797398941565809402640574726519124618185036534380092627019205354260835974514573158764229944288028397922412840842223517925955363644797585241961134149201789505996844112180672067513312735074235337043634936529124310736780810893564126582464298181109068457673194134936136282273121764652526295233574140153328066851843913900114436833115944629136384448107306854493131227841364472440864002574991351845788291516300059922955965882988895014523380996830117745209553143638680745555691313589634716986931801677523211506297213892143014601563192004623825939106469402988613117969101881691150635576151199450069655768924332405253044593120063797146035859548745691224645940609904694357292109256845660520024786458330605050702310298322057295293332572307613317915705983377779212385875547034745758296597639932438064738091139891750285575017903176409330578463669299411639421463235444311983219192070195782011474837158254385661486959390477603529262779595591416522900643982208773082857969550683058568365311076550493975691996971098269887564342536747417943052301824822458699179839823583872692310379970125252820672023370412989574989910838627438985774945892839362750625898339929885638359220385302437790458845900156940836617948311472322854148889394571036694145841729890435371360315612998936672477843734759091795442773071699732933319599561205050334745623244780436483320586626012110602057396545005670546621220843813437891342566338629813774238792954173976160692212798865809681188457727678113499189759299676700908008905985486095496595449605509750657902996418651502816358856348766007800449196373618982861275332169610861765640952129490049035941959091669061738715191615195200262222509452285073649838689597830865671822669369682211282648250219772832674126587183771390891233445351128259759486371500646573853229670952233270997455810669285914771672580090627379235161002463380136948137579876341575336783365823341958794114645238125449542657660844353989264786973048756969579521251072165347707547213557942409245754149739228380653380595059878457011647772892938755997874217626099580930578485215687019720899259486845885520486408135242190839203049158531336499981297828363983928496372838806446838178121107349764390610923977159291588343689391384727119414505900410459114951464628316680368756129879357919591520225520568997206143915800123133070206003120260380689980849821096585912023476266323809349039516635741381415701615961159371289007682864055865137976644752100636020602461175879771637677682297073466643670098723544341428910078927473167681884800294417244031180593334188595411670680343143323015565293269396277787213331925991086151194287911367167622647360143335846890076371766487270668983462709479484514323848138479016045577611665653188256642398536724903038044093076607613741628379514575870417362108119831340068728316121012093551138513715488403992782273541462715415971883690559095553197152898266720411076727642338418076054723759814430540158848461381464907697281959268079675473117915556244650777875279086497511090502729848899172748333541961017631407886380747839179667948890154008897639932767817531426387951881752223945316310924093167031876249741501448899618463679097029080036456739963665277715519114378874626904129896569503683165180625237720064836452483147610333916919603390170692486840968091207105745749982941354741823111563481286021910410436308216131353329857881940105034295598717845377915486540396827457495590160921189422652261700180186229396463991560436080375797551421918702830557782329170477735560868442653183038821450233560525151328721916268107140580641840771326307949978042602283865697818276605587157052678633952012178302028390335890485576295193638889185126309863580568812286357254697406143644724855567215444227416959640012119334959622981450759080801183589357778373688159957855357517212155751899073301469271271656443841202213160307102247393886300360848392676921154999740862527688366241910434913952480091052605587966301217990752422673423576228962960086744350461334336150926307279407988985051602048697931447716779917885207626732883958968841339217031822694998235812415575424688453747386242019030296514597888848997476033075021528527333926943977224145068787357451409689023574424440776406534089449801770802983690895506418028275434840386182203837331477319129386102892791519415314054695553882061898041136007762270641110899671632447905600950661582757267884062981506963803328832946914460208493226569553862738682698258304045205857107255374424608492679059758749090134863609786104578998148298941869254237737769747590685841690971277381004636360246326202151267046199303078176403971610281256364678568421999197973135999401198888365238680859364158984372114402397065889067701790498070771126962813642292440288021061569567555530714613265492644027245314078984056695484351167366373109765291819640882476961394403490250117788765595426198473264291287496912277167815242627522520435198083624597609134103884112359873673684882696803272405096370884362743326762302618048685043661887468015299299958230217705332384456674460562394866795675296649092977504035204984554431330353267539776439486644861465714519737080479417376751242958736480567152543560189659498708292046457239892943787635892879584447084268930789959183787715516943633375750136309867280001059365161087426942016913077437446592943060560165834182808678182850262829592377223160057307257793341056895131575977435026991758552730972617347605962095751039495879617330892640194442140635834895840061883603053273349882305627081571245089254882052705063437706083231188870479965536778885402196923487886457642365118498967705082085003378066494704822161862779051032994671719387905891427013033479042941607706046326887169740162356700528590003389180732698546587790431520699652925722629121913326432318216065653944033036359684458906407314087682984024430048093661318823382376065845546961381076914950313571075529755449500627259738103430286113248474075007292654662361512780071412244846216565288643992925369487799614871804119429006862379063683894502764693215885000836546279789473117636332454286201244220325009693734556092108992406151681965575850521317852950086510488092909147197863855468780017674202054837509540285261070965185324492371072157747225158271373513797288353037392410133981391706786941902377807204912009585464243235387264005559938260418003282437295993999983885114489791204529129671631805913391760307693955155116545513847976437411910622810719857649848233516547082491750673719751610033190963030485497954283017745023682337117588612613454770214181669315350388092636153438796733970568084052589648189845266423183064661125204807741262178007122770139501398350930157637622041252840040714236863732090548822704176400567594064557125416094562732264005961720749239951241268970921075950866459750957535551243615294333639465761295452104658432674151677109975044994712405414464970790717465839167669714432351877772201605184291395757904211898751966882683145398393825988685983909322657467080098701544808567180362528926249474168047393857618314279449920591480267487643980594917793034940096963959178468573987688140688519718115126287951317012319716372282732129093118620393449420052727879344475251783428359728765030823219708646161794797547942574023242142194648186891215282648127988322342037066963479692096044905683326276737363233840023920644190819421440780081135545635376591979611157963113672472171882098879582509819596224377491201583274020131233510650104172249119120378806692604915450755773998915991263013303367728998252105227107853008035486966110569893980392249168243545897767162077529488137323293748686746911703257414187158009243094182375012531630604339767732956927878136884742482914806719204900710877193931072529634140903664413177913839070273606348522751037748293878995056472896567259993713551382293769736680535748937228148775934372422687054098690208692882958512866548084851931831332905384114227901598448844650603713854947524169578686627860390289306616055890359092091918960221109119172925709628038847933073624570210892660964880127463105080977798658991832499913306416806173932514163810616691006642488497596714886875930759885200005290243005672248137919919754123041320772480782211041726079557414247809245712987439516448688288652742025305243266541572840820767514581347905248450200808404085729050290923885604098364536202372502940354978693919390524619467893851550116689927600949848318065233138893478385791557265568494015755478716292790128422300016725227228952524650319577185353213009192428873188444631393582491509135178298135914220270659453241750710731652601203780287923144531599032554493054403087291665939164922129399398501993550943287195164226310864535564756390806775200896405949610862479764285464223708393389149593100691954246149137929569181363508112501940626669134776810039873439876773716248993893807455057978750600561235759328933134958644381845480698974744535792850750830163261474498155353430967162041432466258890803683855276490402294430010177361751570394971910335383947948511340283791105510113088771261518371535627038441162298320147802616921955584142491351125552399442129922225129465991392942769692082363978526488704577519629525776650905071629144332019018547454228740214805226024204316287248741092625210312761454632589123000053661957584947689715130698232325376368539531675336716640758998689379118964891003531084687995057468090719516692133757571567454298022056563497675974588003545644220924056718328818645646261878297198535347654616986627878137908135733732093623091126358199038868741881485426090758774528310426480428114867087870675933236504227251120203066021610398998762281913347134353961872127180539187015569323342842466231546034702194259449503411455057437889598581438963173637359878514470297234210825418227770185385657118268008483313947519686315572400463492290757775178531152712517271146129389502896178617023902955010809117778761152975930423089310113027334304440432468564614387229247837453636249967077307759876108571619476351932004342152710508615426861974492699035193943214225166036156601934262984063692031221051260328715105694163480151636961782838706147424317695856115626445510145973613260478961244090747285362481469748300237903147444731635931379220014510899262827343108083028998106203510942527402108934154468034309316512607421212302028654203217345806674017907347768071017565283625566763922382973678973845681458430671981719666182768487511402833447321235233713324162215353010738180197572112432308435005279152553047900304425454768474510061861682300923278133228112716208294740909087061516953953971965807594507925288322558074567374454664385088300513952745455268987767889696582892656156401632793226676146235561955080019997852526173301266524513778923934013160644620475000678762368852175464956158134632851520254243564686466827710540497403355244947927988813413645593915547788550476142443318306038838776268958583088330114991461526217281025736950342181951176829666438719968470272806410163870328834534281892508223830447862390513622900656148796289589966283519218541880378543608453502437928382945786755262814453108556611638972397092119719956820613107340401129357911597709138727188681882739472908515917574760304204842660939147784802301991982799380995284499744369488502985415527802688051498878920699366391437918704744841897801099107074932710077497674279712694556871484418703984502237762102411397821690636280179784684377769288919030000067910576622057113006872191315817991464289886230023830750907545424029624156199809957940995475981807960683870254908495578756121421129278526454189273546824443485022680710199045652074866166262796143327610263539247891648968676344023797250018976447819705993820515294706258602889261929057488063972270339266209783647115240552523011925997695493280142859405795529349377363703499932309536806316449659506540267805817387682447463633113063937049932030313421696011429912238720423181883777139000634599724915043568200306387969490560480137862513404772915165276597993269443755985120597267492486875936697589906755253007881757602667517812731789277175550885241514269396913082447369621268001625081763351309828080146017018342510516075804137560721699741170960928949973113548674749414798236465083682262665275012602629666782041399539444652494606905076898132589061403486503239217877478289161856252389858648648150839296453251928852178619364587494270947554302429166307795646432038130207293809317724173171708093739671874878205978040504180140420212477999885525001839710667299971712701096269243430248182078602587890180217591115751627779636812427815039099598684413186652092264928448560767663936024242172824609397456033227693192398941731086126150288856018902829849243367510619303843321335494094048372216802120517529174089682223384548385916125629001204006482583896026747537264449309329355186395653625461557309820921991072045911883133806236054743510508450529014028237340857112148121522104287445023508880546912558473287113958368512168401611850260766228915732691143059369591254043546995146220574332586022547780451070185251957767844083227823572038010346828068067341678351225970250421214645186934124477982923433141403463446227425825036596028242372625000976930598061429838720905796021532732965021699803957333357885992759220129069758861567241855218465579743593918526964841878431443924412802162338434180489103494033976340994370101849072541911315331442955159099277042647130886655482759280266082302592473629754879520768635313507258435004296110825675766335613545550339407770793337784844859828633113492138256918458007470753180719534876495919021736394425819830940311915855826897768021576368007158272203365955052022575077310244782629937574272741903271349700785527149163907012431064463188602204382023717491941132713387193929408264887715263108246634539140317431900010655096052976683658147199560892790537976611468663609217715514700067303631105713457601752174185244860783469734161286453624822037989304889275564209393655809047763585050981682128504765143621775316027941856293545770004659409288368807672738594102800267669559914177876623018341603182500779400021581802705969157094610740825752468871082951734931495158397048107342715856893244937180154529761031402897198103779949666509755225229676219127657036909111584340461196777531313779087915395333554113433502810196226838001421920266727853255658070088386416114243110131224455882138970165225114594734950984277395540243267255212470585154925102041734494476216657240059537411118694790125526577713941460219061635690406520793575601980676272493678989126979985570413466070194829272114670895485341188913562333384134763402319381749215090911949484212960192415869804516006975245554634459963699095479985725428743853212501810085555521390476169903537910090606823636143796341197726447288526806162173705584009917154308437261215093080549943908620647398261598384177318868816765488347674691597311342903569138937627485395317094102022871975677646033792167906911378484138555089455687583014309631537872868373067860320381967245374137865905630432946508211987734494902329426086139705088313576366653066842052432199864596493202999681011200777855950898139430886317975333690088673973956503697234965466437042177422642845619052594714233973988125072961224492499371574029459405541737789513996194117312662332779437232082512490684488843892008372949611817288087194478857170789129380058372139597228568638332698326724031641686911050693738899524144852459591015290436281602025610071039608896730053908397017077288746113226683070843420411163326745986721940074508793352165710372086027637690780309173594447595061164084423984754025129146165468445316713582903336095154101810207523140780569696817111831241776919149535019519322908896189428037285589315435652226340381951742721049670202497835428319581934419958776349002473844480908920450329553211034708805688775945439189789544613236732086022381477377989152375050354723917090856488623030445246873759708288797881177764045407083304948503291581863893751591289712683752833065446031598546398193665800368490832773868951538781356889932804176820823326933893795776758685189784332432253210856724569228126371263971764228490640666994611663353736154199230751536712972783023341838964151796452551949579283392897855103877130959067704024611944938909603369616287145132168887953022098542406273304747128575713050174975054586073833359832496125033181037267153906112189752897688946019698165914848526543096553840740978939874035792405325588525426181806173283125657645743938338498389197001404042730062192460773024910639500388784647115225364829233422243135114515305802020119745827481498898562058378078865206308732067015954269624255393190350018714424030250381884901651987270518071535666077620389609385990829218704316400302746798037540432481221525036038855640442558089935413857820745100721781510773798992191284106257512804039144178217998094585935201017745432118762470074951874019676245844427980146453114227938413502007440024953160392087881171655447752749587656053220513753077179694309647981708728804274068282073937362077639653506773338835324056060982051799918367481827416218109055810738443778874613209555354546488225513238318987461890935548507768259132930138828122086862124128885142422848477785467218548391245888267459820235623837035042355015797759959559915896789939648729831144069703361423234529294009813287372157386339221424406641501856080023637595601432824468792575846932824344541491050732507817833640669807102410747997198526170535910976865079636094629204061960394479460975898496822397890581037855219860077139027379494718648413765539094552831581714893281548773459034867473167861276697225760227722421367009955696084457181512952150858904425838241922541037043774403776291756536167903810112794549172298491568150988507563512679186133135794236787052972278495025043091272622130911708743577896847666695705364037028810795987774125073442586183788870226011109213867947317310202953453656464129362118924313952288591249413429263793115258205156369654667749023026428701125623952770422021029680879118372591736481262648154605226385846196436491279442266424220835162759710196101875714395682293798648032520809616977357408061535189743645111220022770868381846472788845610366990098520682281921350195475649966281680574685364620508811100735812427237872852219896578679844541915087536060028776384145286128291598944478004123112334352892327521915519198026274932452764935787095060228511062396009528465791057244030845934061109337053371814478994162938394589454781321468759094356700220633290859135182220561678170917228331598383102872425316126274452581366599982842775183684008221459248945204715238205407358481736014143978726875203109833763836947822776172393853134407308182561097886829845322855870285570593945026508961470813100681081556227717334814623296789183627414554630491813033153987393255505353535964907306319983777224675604797982736248954128774772896222963848234171787689347581789995994905721681654443444589658067557084667628477900778653536559553675326331565471357264516839368097477181998276809152680904909841534567289629540677562531728183007746588045180678887581607518667419569930224007694852286778222173592185962836536816269238102618677190896733969781094921771448425487124202121002627658692420636629973775791837962034294397285798972420720607469442506590433637502081328064227895371590307795461268178405814837695700885508218447549420802856795805302221573977034901764131068556165475278909661876378515700366944019060375903970065177996552863557822122846256098373089612438728868095107382155364806893477579465105862353160083378101114549979328844906525410609917565770406173997182321645656666150537333649031624008382472694546339443946495516477627093789713516498528751102736612440886402481760504192793497022782574238507111945604074385018707895108617644778305417260683717538632700558637460045243873256672750050592643281226856724931487514511942446647237006712618173794275184479122174352219243508542940327674232773286179913504294830203702648839383294422328286757482551762961449392244522845932800158680481272478038246694303962996921766401470861787813363686908040041845370203650475949695543041312225340166238229459596883694951100242214582725237983604680601884549045384590729458966884075358065184104087155520294032169928213857269152750709035458879425292048057046569229024640619097243339962798236509169935616053661640873325022307700904908273846850477768508559900004245616837190203338611021536435909890919871740604392132760966027855133642073880795157205501742120628337757177911761044015947642826617498975472181426615465648003546488269713827811552915577084408708687586080140923604632363202801961533503746795533776109158143334208707684882329469248401258909953879129306356050990052941644381237189886619122817944367769416990446235038306882837404193096776620771604752856945661176500405732403420021009463623493895297051374003224898459609795542365028197562870026438469287458500363648468324550214943618862770878444622375438832443706447260289034434245704123511939801957845741532097017958063474606677355114272528295962552655227662276840934361182572059241145650224862260040013605996021256172098804452815686020906381845012523633146839370340683708880522318687064855572755582943205399791349371925511821501294351467039529226883366775880515244611776104067661596526416819218598805357683862424492208338425450024191625625998005824365962619313653064943623938455990824235121138181584922619260490981010335146751519458888694081414790617293733979582777283629657688964063333716288091144451329266162123052805034639688817613574928835638772220409854275427686257527875349562491544659561957229787760418035909269651898592304122301038617726103259673367150939490392732431246359762212551702868365460759745878864974550602484993096127417790014832523691017804892452354591208528401483814612944140215326386610820888634357975019066065630943833110215260687461469938531777633984813954966357742192144677438288171704043802774815144701239976972476822220852301005142413682123608178402577708451960608600391205148770497941592904798173782375906172893818172689379988673063789000822421517497222097395922815753596069286873475163043233001231889551097833990868478593215929709005772266565295180904395532423775560680129126403819989094544594009395585415105540075658418986429372499514805810782532783434960702036244196721145590816152821378073746012972605386444733914363214712400189348074932523511059583612746457706042707863839129435194024230907880067052184270393148404011803539093440804704792952850756824665895080907188629276172181686954808331647728407082160729398490712459660946648511369330857189760641208963491933390610661798163804430898186526139374016974986239021235075128401562448419570345811262604342802432715383210256148970788583356987251226413890791900067703750584478605157016785306260062612123388533014396845443597730028565848380002770749679358310477804343743972124086048130563401958242950496313438488773838834139478440508368716032643700042971942999005604741675576576400603915970521271339275353217166676804284964232923031684058785114214653504511621467838831754909578885018810408153228765124454540789554679171300296586132622058291548199961834467930099904746860479108644364146530547966834179531422040777848586084391593032113165429783002005301423319996760451809805223381386214653670919605072584872272877246666866786715130185443202464923427946550789290144458595975154928344737016624033475453311502421278834196693148491463227627158709494676464160979235474527093527841928168987578889925155513482917609113591859672124652593545223420739891736036578802264317038232160316003625651334238222506188304273970677022839917910906479219563266501895008562395689964064367277105816201273510463021418023961512029972678551076651138402105113245908986850077034813645830960791452150378742360098711777513826404939162260306896999877098216618226872700098598776285193818472361131203323732045503362771422554611426155596609861081918132816488539535100055237217081850101165087509690933823864701765077804539235428301281160927376722364995217334886591388309232446579061729111174287524104541236700072978688568448714444418674621596197083193944434200908801336403990968829982721676974781270415857488989265928455484287608803892833731393466349024854755621433344774295914169012362656073208167009717289228255553524337365569098783923624629378189108394979322741260235817979149727694628458520293721421668841710952467571605540618100990204253499976425042892168117175844840935677942072777855426282115214572360636834592659881164519362148541472247641688515413786578225164074183586473797741665417917894537693894460163853356171279299299086793629578359314147843735897247263434875177495611086602077913906492539643580543354556450642002944978575785421560914238933824271944189698015845558005108479234674537376879314434262214286269037323388862441845899867448920037248709375366857143272638571308502633127810941669391341697297978524600665387770505565394785278291505232729067453699710009171655138495461077786274201362185804017577814202374906090248404822999402665032881054321957852217901147362056887378293867530361177695719424247749463967928396975744737664793297431775035907607015118883190723925849496892115202534514912802685358834119667271972970969013639974949385293944350260619402388923986386539016142041854908646428131185186621611552889886557401857111666701691530156959320789579911066995364793553042355925295276138426977307216612420009315443087198893718103907052583875014566452122341904895358898357186820757501513744341970804899818661473880842177490396121760071180771066886281991923468301912692995171927178162870640413136025805090211901660621721191369242190814853539968338261043700738388619293783478513912844583839876661673481589355508469382443146189176701293860066143626635342428139865399919482468054913644072591956155746193984109451746142825489667781885682250992802418629024121772248183940884196339563937690035978607340189876684020829555069658564803276198844822757963605514866972231650600265768945625117162603280747105904947182192574985339760650489302436710810500801292965739060819248461415624020081566982006795772813094913333052740563363753295617506088595533437855176724966700746940823171274950542379061759923131764178118846565161832753336064659144922745849619862842557644887770480623564006645880292365337705325945209841046072136229565852691598082216304204595843688524549530503806943778210155171182104492127750758122064095761361226312969429239280442077445780944511498413971206852922806086980976876404491707749505389950505411453225367523510160448211372313700240470085652824895641449235690680867103403690417686052410812119604605459038814152138694886231170610767886373603644008902337629816111216347790907019321236449395258366404429961170551142298514344926063094692901849576719707039416217399503786631634371798116145353068588915014555856005964011603478408777912716487672494970920875013380230018775074664333248114985399039642873126767873428786388695276668700834688662006425980075415493208709043400595514627719932739233289657264991449422765459458820451071598974126182584938552569438293283952986902057380610476270741524567304743610504515500389033802039176098909960082456461094797322053417065125215538268243807906480439813941752941846002388076436100082782493234481990606398143133588622278250162134393839871647730710437627615557418015949515838972061919061224636732246484672402085236649498306229373612241892216541424151578251862912086445403225079152449838371777200026400535723073218506573949036815017694779605013638050583875014005396842468094056533573638043279112035627796803120672938364680066895314677961368985867781862237057149231253840168008627813569351838688191157696609145114568994605154080208360865841217545436901526734434134371488665909328148624841372727114756315764403998680531059887648021797688255672667974521727793558748447988207064624151220569531412418682799821452516652865302339798492625564495659778487647447352565411023979145946669786468006072231738384863425720828307534049998708360411977669739975530635054456496224333387430868101192683637525425792885944390184412183472539763331374412979363716190850421994173602675546195749623324182643054716000099620419699452823171623397238669413553869285890654654988918265801295503472235430170791369410423674091605426142714325940355876270370458524508854168194635945088306065184296647099688326754114573168788370406671599684098463251194159891127471890151880983885021387542703087116546622229952575658640134176926573035600164963444495890125771504744272770098860604177956312315305399071207377486484208697287106321339434887246480810443271325627054365930830049803106793500244355426901817043623404699301135202710472714150975987473369860318471943595266812273045686783049836758407218329566040038200729495711707238997994031136322190916499209236292436644792454443428815482774363664367893032510060215095048030953649759402804838468836624800086318890134478411647371488220995752581372967247363756207379599422533764728103789659812873958136645203572694888185861882133408971018247052463901853731005533413988268179881020049876861107357396981539551338538245452291566008432340061301727589744215030993801239332430854263401422818554653472566037237758709024389298158499422747839249971571185500547503349537626024675984295856996955353916199667596091791785118933663660105503814700885697829055698918209601869994846906571416083795306820644293614366824262444349033873231754610327142992072629728314445514802035760082063348403868895250076719902230339807912343733192990018940017722038693520073017276972668948923844895510421754655249898340469970539242927595473397528062017315940015588467121233826275841016650080904213464956285973114120699403114225665712521555891431186916641667489397541234961264937918628989362490375752559093422664385312107095516697988394672264311941588393988289231397596538483174581501088459288190546592710309520405370520239051921801417625179721390229508184539992292902495672814868890145082944844548597921517984312447186142962924722966843603454816984655564006808938124007945884118385053592880480131517065709098973767717574630226596142254380057755839906975819049955422699006501975406797579126677068325610267934012764247610298529417875750292618671771403444654446340972072467161005926805134690809120209967384214315586046709266055174278322809977385539225810320693526147588019765765071493756829378346074290956911131425898694927109429807533575287783117604529026381790336144202086191145628804285891387228334223543155846168035381732637948212170805380795789088662842017359269870415930872979943180472574211214933180007557504725635894082105052675826498064176020759211712511463476997107030268285289203214014074666851396936086370507955020563184014934547501520992231406457332306957047010334630060367266342849635571661415979953608974084250781979037324803613962438720194396182264902683136697476475316327284265490720707985721148354115830605293123049192343531854367151458050409685594207816274140721064927532796542138312222377451872995907957230709602302511256030243481345001078927529587123591295301737449667499206232143929671772899814996993294320758943366239592936929845889040811956618541739982085640032648720697411003913568082711634613027731962701931329675385316096568527414318901763730599033739230473070701134722982097759306430023627478619763765293887730781949450975701422133828956851888343376537928264111342794148236932293457364712146539640347411014999140014592711243305710454110300518403304636548337801415263870508194090965016172915436428514243334644690234978266191375892151324049000382293595786788865712927380175119058429044176498910573052150228033691175176042487418637231825261418933073120308799014922106064735328435828615582190732854121847155462123878266837817081950020316907579785876694498523341053310095645482093442907854014267860595096521737481742300958383310123041333982716722549475480683050888509087674881333508366561411509322791848991949383082715329934903926106424381685293132143158085022982020499061621588768212952647572962630384630560529193412235286679003372134021621230695129279805282027366714039081130502481355422069865613553677500795928425788212942840468132019296696170455796934824061937934527480930353106345382735891197382387838766451287286786983193164959326060228232383221030026237129785326029415199859391057961889159733313846595643445224573033931022946802114163893927885023595245658229399500088420155300459294003445012000717526453374102252234683729088670700181885663308718899725119678825660875841732381753386624529560544089379641016550199448334730016542691905424429886458578234639289455530365787672827311189229475406097552199023676733101572302552350986343802101814633074995016466458835739637820694443212996903424939102777730237477652462510494656367501821967796439575241713836701550753696703320035708477223597833208218011826741217365142345500521327167103115924363613327471406413670862656501725201016540600716323073232117171933189591869147782096494389732566873308027120279758787019674588938162165167302797403905666749848524747604603323494308840218326453630681544413303756563180641459789259824036686518401759520448500097310597554449851301813034520441125033046411259147984170338616423618552076144471693201357050100601551055803867941346235368512324130383295359303447295948156800926145451362045707031424368540016009600376322103938730501892028184086713547395183253986550386092042975946170701094931207129467378213007839715305861245960576182116818984810389249521991980401484502092116888903077290062420093088090814434364019773430663817525863945934196036762348355904699336925121572398385658899912312682568149938559525029681077697664248446294511781612044934299141029871501354827273407394285622281754519137961290322393820725063750164632640699227337974576598417306172992659806314416784293305248644948950048650469122175977467784896162274795732349470813322283686299089806727629278098332496060655462919808735793517113231080269518675189205444927059082326666940492610380570352663395106131342644628914246413365896443595148124956186530106365744473973905646626490106964415945936081187507483547045211028120277404690406025703141707422999780185964529659995833632428727144501764302990340275719947056238149088668623564195730540255370689769099061410898782451404431677592312779959065037268183580071810151327512427744018923870355127063101561043289452187214305230679498460048617629779209098945858081123025034488489477504379611744093599900260958095079949649366477751071284784054065921077930022964467659017582490312928932406357102539704366540966555871233127280268623393976513064840504802327675985234095690087715124136928031484302354065998142088638388092983006310145760845641321907862496570120333221073988969876533577513484322758311429230843685760190972857851292660607819563880021808078724425188056470097984672182896363336469438356559802519535050716946478770419528662868931074911216587999258247007163987778676399725176798791932683251503991459686352367958317736004471381551867787603857712786534292511536839385190148810331684750584655162550276582042763661315215815692620514601711092664577818493524660969259959052598388685560118172954417343781768897786014090433172473100333095716432776532163857252849482228831034388353890277372762295943610413708350352051709123023656997121929084478529427908755990383635898480354488754758355837053769877562136288834621674109272155541612334876595120556107591298937455936304188268943681693239186075295997073816998242689134239268365726373603483739256922761086465951384989786118609994455552455618360377052562534133745574065959083754030238271181344717872734513764391430354777456118069869955891868490843872726192774001166510032568687445596913274477626985378039912615458775837393302572255012794293431316932215772333062782457689301604010121931640761892953585153828338756345128013527823733595423473513068109275509662894846299731278522836668181634269546581578872451085870835899394954633361080120002377011177165076007392239992399329827997386188277456576599284337602243146204329607144530273284496443194833882462128962158669433486164742105689546503939770772189504214678266643358705402813309134747298734112453842728579152439806541261260383501005597512702114917446487482375756904653064992797518468996599426250498271910634470707873255953266152976354158804828122726889309421314029065796201617112031155660299862127060931188383297480678481902722430373542487043107474894722312362831083658791546025988028465776084004067777209504747889341801702501777074485849181823506763381245627871602701937597353981012920291423202698763255842907663910717121581549805280589614234810362197123568213650083174480369978240390431722980894420288342045161112813295133499757987292490057775342429398669809248784268583855426795015483756786283563317495645279680219882169071269166486778744429095307316876554857038186752169712274305264090058465645986100082791887423700709937144603007399915767957982962286470417957030763951362548978825923274963565275492813194713716761279632375831700357700057945493024468224051395725707888173728944228528151852975225783254297810944279818965024074833903239627749467506524314654982719790607570439166898226605078346894241604719357017636499444493299171102709876481510496697231286244327216183715793029067837145445633354459692052934744226352233542372657088569940432767716659963758241274189221678914274588353014453556175274541096765523909448273816256545498359451126614837119386125125775513748267675683001680469462971206078475370622556813144770903542859610212253729059140460713986202956479320664943094037208676311039338970994817523329653148687283354502326030941114126490300786102045432265993129489443088305696995770287890858919653657403500555246724399951146910509418082195075488860995522599621686155884269464855483335531693934137756409894387602248726435786517297541655927141352603600576760734450595456770193566634945127124293928609644273003289985219140171591635412125127835847019668409270109378040878830866208855523984878193344577306320290777729951651618578230976696244695263263599388377469039543874856267161102010094968232309981224909884831478318645947481563778827800965126492082066313617463070812305495880394830447304148967362589902125144502025338859169821948963944458962617106212393662689532626667952014044638553305898578779032593969791478120547525172389973112955380592651286649656726800792088686283613782705488997018323460112127020615653580231574419607280068169819046264994236134677034662105899881449203414706392376424863716218811933569392526973654569252019736025550491068558721754114149103309256140012266063659243681126580930285233545107989926844598102984171891093512943077821972244653220369050927410793698038437946996910922154831376113806043588720535042309180732402196014659337441480274057172954373511497212653879980194634796315473436747762408903039573213041879525061109462189725847440256095546718811042721185395970783862608734554680830872205671934084433521587378891404079490380958223838140617264351749376128422980228587180328369442621614968120256428652946643744733761177133335613846792771058068946830689640179801133556192637372218069740639119031067279661635856397128178706887484596847116724149727687130028088923046054002703917091247400412718487097983508238753777941228381376415997373171331235142462635780572810646505045725751199602792567189628382820781415603301750809255152357485494998121471995088913648185381011275798368112895400663998706133188906978190190942168550540407019046730514495133024396351372299302727826232140372823447335831693507995606357393451217356557232814858870736630047752401052793963817835455449174278954805688806947805585815155165225232474252395917773427947436101905684428622148297466357203483326087514872042239274696345604844099945959919304898568540864250276982608726372042742198202817120452891386882956974538640616455611361000572509596083739916321263062942340362096948079136582778623324818829006512038177038056125849815832307808447387198262828340820000913542028853300095323536600960724504087225486824059377643524516131629276768759331708675263690208699330738920555481819451811285499639308506848360272340434399328103584916334356924799922213891673825615948185318104553233087551843952500639171498483243705905473097215669605755096681043900769161119535008435409651486011217851381570405077084149798380956630089542963178271983981934722125971776490973708120976869039293879783048568978621370650429176917502791863519995247858369360427507515278742365376993542752662235959130391999764044491838220537037469588469414241774648325355100125063197811295153361641112973385965422847230861415724697420419210382736747293678382381114231216106349063656733870791463424164144710463728014158878717307909118669608014169350337375249713754088537025247714203991409694286447569293295946749895098166729346579079435273766530785637654862648647110058568249021732332607490711656326806712772365844330531047854878929791744096108683989153656343916607596059969641613440011485304209045926336716161550452196814643716886599532379731264711371559850260058349279483543785967420682589456120509825593465422915018316147865482431941822524351356992101716167668755046398945343016081750378496926337801848688269437568624677649313313819973294464959015919137733325163378122923269861527475615444692551254652133017090412034249666837962342450409061125724493201725992977418790860250200517014192770090469023801983144453117079135532871300763570905471021498991760360617235489117024257267881098115423495515768815392953290597257316204486225024771810268248903214202358071656168418126608699895896751169990621125343060946978155572862405659774447244991808866682925702330543844145580349457484588340226334520446343612950400116212087799599603794435844140747582095552489053328291008790695045520370115033431843292712342464099172276505719905443448075717103845405309630075818442216394316181312476244824782066173512886836308469223961634732242916069557180870637245953147307767655156174303197682864291051757527740704839507748158700966263809468030944153660938856786584340497711493940236984641422072345832793663009001925020445552086536263439098296642736374934167859150414961171470545515539558706002031242508954353116999414174942634729557794761605356129982472211430093320630230947205171104589974191931876730759734528816750781017719783364558207441994477471505649874484503687774223980124778891524085666035608762351676170012709688258674155705863945378031182002176401764232570562587896190025172329625747253253142260895218363284449575041751467126273827922031031671881475342909766363040801806873685717644018652537420052195222711726980594484423243846859822519132534417065754903924966391138359469470605074970712490974853725456528999242489068812559640799077802764869618997305274432138395663758935015665613257484091859944957757770508004812635824382982325362363118027814736106282165081255814876628877353789710201522201972060038587818752949177342540849432355477429369820032687718952472706537552499713855518189732903990518813901118362827504583354897594776010506470587802857427878348626893116245744768078884154343931193254821811202658683702536941198516146841096690819753858911323777482312448233903253842510406962243660573243531687315703962840850209036992614200012918882654898831569795554262259698237434345768187459569732119580311281492484346512726766461926052120684774274491776443339058720460303245499658246278724393568721102823654021622606883040974899763201345431124957271557515016202190302891698425914238417251740488597994544273010587567150595476916221822027794693418550782499648509513276037331213099893084969189972530790161647914815420284943282580089464957344062526694598426997927275597288090193806156127385221891760356109917031352085280328603217787899127588642409720127154246685017003237966969345498135995368635122892309570328230842532434012761731452292169662284683597034300965739567940539822755196284247740671636735214688228403128029116236788737702683796108168018239141545349212190175466857658239521601897112515018519159473480074353770812116232091597464951144472431264405506003065783061423594775605947079213959543554223633467166675475965807131731416278935870834885777385475664108937992335091713105342586241554867394932026204839368166351258872964508557319134673903760232698304083721470497456129447563408759767869240408863590966616698926648119441651567708677747697450516852785247261490118573574965705305444723781645345206993495063305057774585697106226929858668268079721720204313134232944718309066275993455114981315387834027854880494072637841036423782189456560008761189644925736414893948793327093582590089632928105529595843960403853551993666190809018694243935181103169615193400690132282027748367512521639700883106738613484640802272997934842490255344522946972245418744083299775731462037735673618185129405070844864306246429263018535634740066182334752461251333541383310697459138717621837084658985889884316574495287169193552859838013616295726837783451235446932451671955140734265505472798041218913982466049062254405601848778946297665056556473603645591496593766362031647713717689306027854513418363078522756033380703175754418991648874204449679600262403294063052875885472658283429619642073907505520802593024757068294248781012519293256943550372468788527759255960898884320992887182997165896667646905768846697634730103118523080789184864586500910002107419594286698821011029748760347420747250878755649146321035145250156035399746681852311095915782589641189615440747691472445054397801088594632852346354902303118933329145351536360856252201932374943815799379958464012593325949034416597348582292490113032767721095132392770159521610563182084211233167048252307970043867067753378236282618612852568874322812188516870179653433348206921555311087679388419004203401828706883728721955908334076478553694624999377635725551487673616157314841388880784562885470557027333565619642513616823347162880323373828731735827220539739466502717734529776524483701808159608589619201302090647918990606639513306704201554644513297350239629912918536325855520041350208407069427433550003030749628125137593014304156903154614258747031767373440655608861666841839817415645291779801941127192227087209333342207761424403850101045580313909675715153984235370548981697533251427640532302274122888454698246859603348196491936805954020104494088350807645802458136386040263595891584090579846984423203545868180675044264816845346051751194537594893983197598124582162128014555054617289410752831165340357545471125618308782358164879279206318456322377304307585552890054212720548958494075499509660461565698637387289219317064875030682138835693177111694187228799420667209633531988439528003923214218259274009335158723667333795049331041009522885507346563516302822761292573462102606594189797090346110668213363019211432987722395240328805869905765612687759807850668907404991226280031989576804253674192127649349300767176601195037786198047010041454858636042551612788604035092115146742840111216129333204511256695319496866115005441470881947325053178905171598645857541638417754049324942496947443344712346050276397472047819210144145378766970900845594528316888342119410158287750530401946211232083301977918749619180858310668119650775207981383256495951155252546816168133631541315342378566782189108873007148501363077480749231900965092748625550297311546013188489319858138144536866607348986918109075440961779505867284237245715822925708502256055619161342702085046015831973505817121932358164466443921858797936874458036841814993856209189183036908632411567207761139181225123878924910474165297138094530148321124842040893337403434954443819817790816566863987542820409870810568158188638638711427924765389307613916604774907739855585497195880105478159904536098832669816629698321264163988418333913601198369300643521608647729175909502705923319515599175839837708446894353993438908560305008133858362197989814164941899536932869910019395704385388111659694283911810874369902127784539174638629228474830510268377230413426726752283505146655153882477238085839368092368025508527714744321023275257697813348249314395819161736313136702090030335585214282402497234595179308555050326137042438694409803450908400939968665369116906784374525618485830355809369210128618317246838698371644385697886265945027524546060411681554303699135119338012273358770165536166851612151852808770594251086527509344057129229605610262503850532476964305256341269963670968191982540439337894073114342983420352223917684875390822015229698718812321696638793338914564965883288835374535474572432811615717325115752247715455012850961660279454832726861463484135210554023308032047221206996303833780137533939417329531110144250359395736055147689149397291163765257764503905972742185221205887811266611262599104575860765099316952088164983578560183755273631228268665449805650195062015402319511072481993077069499761629906644530774120143751326356417529550507178569443835060198201237042108587665609920335501001280395895319521018215705925928818240198470778854943419498750793194819752826690813065996553905506746684031563327016918356260923648778467962985830451520885584035727647634902489126348234627037373749696624659359330393324727462722396201709481788047535436457582405644836493898592695048039031953435507565043761308712129423671889957234170697215645645234269144358926874680178986092969061129211983178023242331849489446585618023495386857384002387943250585393241147910382769633851829913448554931962591177419604367297015612912939995641997230720112238705805871720027523077297780868778781208707322763409127475799675498289380929161548969170557244018110047767043597621180160389305592100331630660921312638508001810824593732361102305944782820966811639661354854507823998066315511794394174795726562201654300489878326030947741565952786457444950693762812772564508426778629403341521573163958753014002389071327178640051112551454820663036747930161124876953768402609675560982291323548902413373853685296495641520341103926177657007377824952480880143440063579262212586786283812687999592900781053119964798038596282673509342841656146150671178413747401498260890292442846103633292395318677855203574972357176950169022134533639606247196061647229611697957116116008362240960924266958937734121853563501568626936916490719078130091389889128568728558831446577325209944498948520284233542420096090243669618166556757377617961846472412702565904235595082428554599452620259027689948196228821327204243509061406789992550794915787842368629295064942869739601013715736992357202152024010274926621238725989520380976920353303483523074703839621223090615504370111604527868057232860073727966593142844267224106692701606063234035861186693704662454310506424824408722558917065093982872425095230723641855161020154525873673974261775659473735049858203321170540212189361514187979920820450817417336625718825019998333378203439372895126102965905255121755645267336425062173581823209120411369870490149472328991563364808903109933760076274135046823848056244238553210255990662644047492908918196482661553755617513580144105833030159105926995351363246298024122317358227148267257100688170801985134499150126705540758332094030609559571393713280242704415271947205902694369553474972981711225383446415954782514208102638223058351164650031966517696031103708117184951609777087064465597189204315320639232414535537430898277960973810970641702505458769761922335496072787378556113373020451437944036498207703655746371090359305756746007682275137184555533102318765799750111613776383639002338231787867866874428937437760107082735753015726427783265993773095258216451769072299414476641723997101080484588699798081545231747065206419781806552913180669588805803950219595860600884187222919314380114219533866900034755078207888545105594213808001805656329083908000172181268066096946012258357238153312229798511583534297816184272973288783324716542584292333490263023230822953670221741415293025088692209901762018477480402031762833196780099858483616322995236780305475173024995675201723710108360097593010524447066233114708289917825092606766350100858340146081723905942077303086109052452453701305417344104490276438502637587917886140532279080521661929739595094060360609568793585170283621562634125403412371833084640832399727015448200644472107377338811065819277729678420431202590895259026691468649986071330234696228092528150376466965565705037230797192089765123212285691275935965655815253883286109846630932562811880646125010507211728008364563409284446426897391556518029200800123411247751968199342794288616422566766562876148156048565269163366179293849945005113943866086845035779950198275241555120948778878819358577206073212497851257526731369393684320650881314639111967011466634134911027837867176158815676621720776524864568217511052389887924910512278913603655051300347294277878703780664752140614112484509756251238909096359908837491865801191100939739091263082470951486783028282256225726764093541118995220694881496831546905660963784968804978861066563290308966478944827534097077000516057225715209282486742311064344285767799229401368981402703071042973292516336064664127141042678662504016113166274841706992285312627933433952526848506060047731770462930646533409403361777368042967258058483030102713198471863113319044333076979159007611589962075157550372448644867967049396364822036632313205158363120461716518756274943797704343405527657910563788160725553370336920381236397537939111202083381333446513992223649757283899087363011676479603244580081587675985728739886402647061287553562904025899130591392514344130171965460974992505035487381839748119213586819191902515227135079084309077951930959513133958130868125988182793060801442732138195894862585490203260690841240085722911835644640248783326695650607380447387641847635195000089139537470477819126976111176662325486378873647895141621655527172917687495817684985794477831603538211421183119493862357031440872988856363995298741064945926939204914085759644768118873852779657260359476095468451852668437841713872207458567209372381173462182784856107495633409749481947366768399907489015654591837036124269058605468198444022330526716624061681913641709068072763025321306971068867541820312928040036957598949958128891783185640202713313116470749782060532206016786906963036955342543002315302174149277404672073781276698092245450444746428602383937626859560544625244603816735451659417722575015614819653885145908015123804631944006598662512633578466296855690198284705642892846193608023931138253148773826637326672034848611408855577876908004126751820025676951415896540440626146917654395591886556988597634121863451799110290733828819340406280672000413535736303591717190016469579513513804405407304925441395046699756390059449339794935433727807338492572254894975648328926198368263490365884253146495136570734740229867012376948605798196039358320779814834266503537747379849615267596134571531242215044489765784676226462350165452063696834921421179884675533918294432178751435935426090202621330027938979699100004072742444256639958879193383888174950172448554697412354459017012240317392957561033717538558395312995590078600201324138746640353195006504312176284739610825920424586442762130372361162129210052088650751102918272321431004305567459282408653940534866569152072131424022662424346753231327958778296571013145006108476005516595009730731054276828842220588199561134550332610771436630242243622240254170838848556589440652819120111482719782665022672100789766485617650259905804750761157076318277054033746575045442062376428467658363549501421952092178347445148204983317431961029133206532595832348478710043572450236296867279330079699025641990751218308864316473761138558670536570777117686138079872033730976618888929674672484592405867501222417709699971878269981537671648921275019144519787837698589395406374109558027458123757926341523082409449259505294564194062308763909069736577550519588347767984525482755297941828695726018134995530533671034220904540062694894846927635763660434886977547396532391155849236865110704792359119863844442572607897852803350589116284464643095439125908827872655703590613437509287261060432708295137511225311381189272770758845922346859179382168389069120394042177406220079143056548918343884358796461228171891511201223137514726171025498958665864931333204881721486601325080599000067699775963296032428959758161894073991654611562214339329648444258771713913969097769024389260355507791506670869310330903308985822375298797549257536925478141097966633555767205021720333315171727824238286747073382853410099106256489122499188101506482992047058893107122736792367813546809621105256675956505940809314988775307273890969004191659319798264307916635968695382307124350721191452171811043419509202430469642100712767904387423458349821618143556281026857205820313547118618259979326071583349570344134450380286426208906127289857225187821499500733821979761270036118192780841117245970909119476886717480853502486084709527590494150694891983798499042772859739005844772832060593085924076954443612797638731742252327844917324989178217181941152131953884413165908522461430759339666964761492119409846485725124385385387926985724740198178939747545536118735635536780148292355178641936577296732504984706392689298563676312294711088225217356537113415557459286380440361642581411464806124209758333638954023734283974432955752674936958152416967840229319896009928819857701435220970560955875168244719227919483629738593783478153197920140918423989502225821332156356805108988259347787104448604663395737311607335813476066115447594375837352364933000950656626520984987560518184350311301574410503235860466993882309954466665366201769309022335195692019057384777593684803597281909834971045447250650850632782451455411047409615347817391597783146313198033604924876305895167407641856805348996230538256095830212446780784568520592492289593903546088880462380474594151618081807736722997783724272468290928898099168055274042052788568956734668825227084269074848362017275261446293002596623549376836984917706020767597173027858631995451630521991347914721777693292021738748063641946888742731949853152877927464294462367653107875242491440967337195975379160521242323833174075136390464148381189225142973994876951632918692041515021086725033815954370587985137468850718187376255237268354487267548278884261004826775205668965501917912295926554501582887448355340870740624401886984085678391723578164329202148920947799783515682920416285410635418321340048601742923078620646872505027575507098689852423288813078504101373798509823885630436914572463076162117562325330776411522345757943803266732014248533697514456773179128924591945396082779329720957487027458928770061491268392100311967070607565301254721026068461872727527996382219659371916229943666333297927965323813622558751845496513467608426643754287053314425350394282104363109638128585124668300627999390319439494388997842664414591689311448376630022399870047574578406903880690699506910488992815596263008558065140747458326266274493330248019807118452919678060308127438112093861216512692835542426621330893073291318774950547879219865616344567172812855054956514164631774669254804825361174472714168028289756938172358771436320920109656560308910047972850860702030097823051127895650836265177372239408342902712519437689472046515266375735918558078135896135717043145339023720246446652931712955537356527102961478338631575886516852595200671327659606736728888397698630207318837672012085479803011047360174695929660796565962140781752781250143217726902377907895020272643882792917245429543078515828836876419095347000875029244351928411698267529197826942402147267785116339612353904164447109714235907618633960849804059855738639658646330704409448395653815272290255245655357550706568259171195125415446826554677009840478571688362169786205633842383166990185145178343675506248674346554982194505056955629728179316054617405469359310618283765507665229941579113377917549923712365607566460120823162572914743741811077533718336416744276157452321656585122222233597968543402222300984014365195895819276265991904198098299703577626399396151221950726348950766347748613456035187569343554543370233829105580083372800001032293135213382002324808340587477186258171766352119963277032478047000566173134502950452515754491936361415722694556677431192558910189782139032379834391745926450131073221329715240721406067945156003291788310509046485530505197835689860847394174124869336132077407118769749703403309637928213673057713381881583346846590216889092572809683057431381242812925301439967124816494483422317813990142323841200071329053769040006424211628883997491235695919478608537254604172718184237896661396872436828730688436272376854357476280466251035321312346135355447559592935838198827117044214482925526417239511513255691757255234389176873414603312321635808495776913433356312153137535077144614124062589042429227414923684390917777966080727027729973227964502594986570574481740868619487825640874251037132598412276672574719209766372599408154407085480126484927846172583154825567164623695729712423845290500481345251742323753346225614322171940575445958608691814893666661722794503331815025250587203570438869507107455222926777428015945159673716621144772525745289374202763134668347458084586109301892582471026868637161896663649509200640233833055867062471446427189655028905968543405581468554200629581798137798276935779894616055877979878700796351519286494503987039502770187505927863688804985828660158357042611817342072005223671426939493088609890446330627787793769703258542301685705177865015884975686178311314788587292945391179245923164774826312086815889802069446044711955395681778535032803086540188774470089133740563379227405594255462309993507203154894237271018444429109543256088718494626026632337015083055516529159469197064275921622927534406450636905568324202872888998461850482329957423549435837833740053148462898951577573328529547103747768970595736395518670509536353979855167024742528814794221822495134551363839165102648732576346429929154017690584923101382971055529822811558725683657049318470293126991660358740269364245177459661644606435988673176035195613810671156586252554519959246410475771922320359451507585275399870620926722302143113519117473190669357897826565274146549290925657166322560529927362668496448024916424674312343105768428835371226360606638793659937865254789096277346579513216336392166093143176154193421770194611873431774733760964487602425436394154313023126848070899501162299816773182906671257932486205658625776957375772704415569340685954723621715986516731548981646230439839073655545170161488146585373696241064141630397487041321126555868009096178378801248582798052330412422781259938602115126461539147687554282976778353860263288197567349021245444882217635057610854827147001721642990581591840230810337342948588480424416372937043375068133967843705420148899787276424480411926557973825806087931432080731100047953669616912191781254361756224314287357755108722715432827612602893590667272189901676298605087370874217566363360206729549726122698224855510205910793440772972590947627327776679698087219755171321510291796673458410166821804955021589998272870967951788212899343538330055619293633415103014110372825757909602380965766755369901316123261002803051040757717429629368558716710482749865692361772881289998004932525951685431460883471374182456846520930609834448357908696273941640604804289881160630397204467575938245158818610240258802951372190876786334320578938499500510143958480526071677246403785462732011213039285450393180270943868085823265992642943239766130447181575690768661718328960566659178544506363559616677312913618725789867433211403604403474313174628039071998806842478027992026241506494409806985702344400863604113102922232890029025693690511868799924238336262614140684460013020754391301676253597894015016497360559956831852173934855393998197803364195578860557977746799444936002139866489705580587984293430520210780084853659380364354864959412503644171053988789329562534627240539380049283274998316787241508469037920685603178153659184469716933200552323710982777733151866333915668851560013716980929679493746617156114412971472163525682444023113038584298578741232738095941340634062389053055915967063072650754644857883048759266449677802270718445930807667015560020319200880850655822941929210059832940701445494294443684408826238866132021106939069478567538387736759495055679514844310431444721839537528998903390300459985051125960992954681996327974924254236211896739417389629664275328203414822756997455821335196144568679764717582243440274135175307811923994469759916133782319323930010801992422809529705990718440631596627821171643114124268778277585479809175810328349083036210156138250298530301310952914702903945373763383607400814102676074469417599022167831070696666764557448697440056043038078984066323388185036708729922341175203266080583023768229869277462798906033204731611205382641633241295588826624840727503187839023731581534490522310383616836713090175603529312810486077540993759636653376274557660424777298336630857116724404323114822966492146175901816206999466990964219650503998562989215965023170595641408118176878475009893113247212593376147920179236549624395353958560586295085077525425013808226121899800852268262797817291299267448119783401150337864415382365696990151554285294451173429836551156880202813159191320448887908936209192294239140233458111498321176880841480238854634469772516935723342424428788034473923224645778087751177554906851874117858948550788010167956847624812220176900576646903818132014482614452913357287404889659473753274228126179000381410282892180945091765597926059681949059435492885110555546767033051665835242398664056949041965149231271201765399852872567404735821437150462804712482019655819078203007402753077605122809534007590389257931260707491109709628520655426648646071566925679509083086243057013525048734795117341582913059092810473923127972458903814359327457114522582157621402224786382057214729843545310084032107251292954904371436437526910492670672749759309999398720646623195683859496318131153237921611366271136272566257931385384168068765463209722100411609867061229334408202630092293077026277550960106262402200736817154510218577563849645804656723444345549271274415094648151182680204262614019853952322496547742204023071385842254435911867329213932417788675455126298057131901307460018077756238216759968262171169560807135020761780805053615010304628504722740953075342389439469453911270279742922012023084422354003422435596572526303358300634200597436245457200175124412863462953794538295942638629854442713516257151599173011404614796465214320852301090466606626809368727764808208983002361746725263771317192133612579158400862834944290332088632002850464390969534135996531055060087426843604854570686163245591306070595655842828541547739914098926890624150319889100786898806397505731717823652578581092138397209382845418419142618804825145206538625219821466052520962934695131035127631156192943636204679413175846621493083787417911516275527660018777965647566528853353431486583013775011752140756632771456523417003085216176617561236065495290154892691514046771317581881751800482822174210808617499871423530345088496837664592563658492137548274226521397622537512469408181972612574059666570572600930157017486390187762159419892748675590188293967254894503623274296149525708986128625104322706817159834015776571738638765979997038527211079644211046370462620258469091500092201559454397433758618315224780275149907725768874379419885664021549858387793527162434829981361028842600837407186049211781197617943032537870619491316321743712528463090675397929662868753204739543494608465484252600541307673314456308368030661765449148825567017552587272032895473632421938098405131199701201089079922774347718090011575298458299773733927600187131697576647816948397049095451108160158295193890706606986429051540134694948317481328524946559894868453686063268293610471136612975257083053608636755787455157102622303387371407826924637989766327950953257207280794030052777686479562501296312479834490254145069098321798234875215647345884781997692714207202131169378072241567618104588621115925030072372477968014867609785903373180699995326425136671968670856875640970816525784098915011500212063479286260763574326211918910662773917534271077409616281095784203147072665251159528836831435658913092844061719874767449458868453869156176108976522750421830732950796463241346289042838779327955629206622438866265809091490426401713413322371956775638315004051678171880632413713391453103806241330833814462015772430233903053379065937626585575091575072850048582756993804945711918580489520275171304487087842452190206069606400548965764269427008417674129213481255949129674132408344627689570627693288068126872607039294031993443261476606196037545068340498129957862933138843938754738096638306611700771551746334642327453087324006304276307833063467932448769643880190456514566378927134696976992784138416139043826331212657033778587677168264096155403402074766144355076724750283674928907062562304287222938645466659999690616844735306700951087067565510456076442349327169167537661023653971783831645340666875985004703818113842114870916517630077917920809730381582571982882575273587051503014143041285767295746868269742647180969821737636147919864768827182279027135728709486637574946896800148248112361470982753860096884440973116490911788308746916399655487324010672555227186101835224582153289622271076444763012007403783178694968628160376382996007096566704366484249916959433358285403146168598047578916530211755365756029445260248625715385119285288237574258269534269104577474892283997889333653184187299887227969834274440822135399134967191268681703084362291817984409244234269304576026432982893166423359698505632361049736334787783687324121235899925519268992620876966614747170844108327346159024454775447815693127642972545811877893091655873941735735816025323341303927042286149296007224177270487825102527666542758290927324248968104982206380767752157073058378350093293443535503478789201227063169837967929516830153053985018497157826273056383609588144403086725983787681988971887441124063645413800908982158396196778177383722652664463168565831041791472034500193426440090753743905056407954344971534308921289649682112173455931436833033265454067775899214976292137107446410092825344302179380509208685658883772937117272241226653689346295367013029885350627377607717115340455935203671188552805264799593423794260771639916144316263028796841154191566198720571422665578480443025133821405621339287422479192186529770050787683931775796208516119566618361277963416625610126190148070013527627937732369412249391329560563676082088732044517102527768778799018092228937972439875368338049248945351674030622847824094344496533808407571541381930283175319735778484364920286164967530550993916790017821271934955831790002675822782986427537379842218610653134503565962598468265391543971817717646743575276568635133693098107957391350902436050730517104586472004410628116200579090830749859015860923687350630169824604475541376873734833572075000186149832028528849899807388018511366247897833403559278069452715715433348278588272314149978821407160588532704035811851993808464232617695529224369358452121894240309921736679578828214070110802436714320205300839422921290606212897823779206888409227279501286406085267206519679791617169180678878968163663182627962928206278442393719497150437014221345680028364872641075133556283251830328762022478126515584521989012748106357476686477079474947133140327554727415980374707306394694773141896670324706524320200558098100553934067646475279769801147436393580857943586719672238888680412580628536958337638221953230383672522702344510630464361823372724944449204666858693913133084543144503723624047559514284608854884542643588990839779349529033300149498484588278332816203091986752350084122457193295988360153235053340321741438425616054113386871225557935605577062502120733590025630322436851900001224842216686640203651762387209761657822508533724607649697271257877838711310928131216483346645031599986704469721868040461249182419716498367320174958118761740510771620753331869013303426130065107978713970565883617928383630121900434095194356047657851919455277763214029215971164730227470186851670300713931725605468418321193711625307965634285778368011637960351519322766690695969700708316938990670926073357541551677392820030647536744407984173111828394231309527681578228278042354314258168051341768398283731004458442945644079832225905609330669841845835833612290155894151618640201875716492939419911650324537930593320946049839471443212306675058925628847760014130113903001691853471096313221815155142499300841218532353399439474740020819567460535790967821503301866904330781269173195840115361840861575823594083581503286595832942266889080590681578924351201087482839166251637188544937286774374901071787255299295760717540653527668377276467446429444116332190221931598022503523602065572824522397029743417794032302981627163914445422680474747437066827427255546822477939361673255091529238447321880423412181994972310825857054895839939380779089124103780413455156637963897844132020688145232235221333985874607509710347915581592629402999121794362082642445286499758528854894039454772285989682891477578603038683117348412282195757232404991809946727956368005470543790935811870290152830669995891573841396129953606076511545591202999819449615570457213338071880691019091258051103742310098446842674821035630720626979193799100108149452661959869352432423798949651679318082575459532857532940759061613624917432857013850058630236796910746682808392838775785381497726655355507312920142759190250705284990701243061733568696940514946380709757332672543992702608177158700214918749124019967893681740035695144074678853347966519895155844089123834155737897490493007342928918032247568574968136514711970113242456934163942362451090197772810541548247532009592070541817764813370667390971469190061807028394479276320429315048685269239652205053781801458372199752715055830375044126146655013359207438612139532562140999487723845437855091080532081855791675517851750224363027708920124874314700404246625650677480772961662859336703086252046025768051003417669546011973444295027696362063272437678288215818352082046733242173216558313019904951351528689934534402827636090411083934939567420805672824270624559173490419728698789893258587208716756806934899161027550015390480834874091124595862785469303985144778370738649942760797324707932185272832281432077695893037414466623379951402058693722141793812885156397931204695217283971845759416021660663031444350560969064364790180117167935647391308675265443397140481050785224138528068057655878816991713291333905728868308569408850742258870902805620553793556132188233523403958388954788994988257119612451037193426050937906582874911117035182905423342890428614604783097172382028390371657478740394390671719217696750790606203019329803309981236251590134285958568334354829856404079771567620879194942154751418088335687456651528279906846036429809474895487685318995443622648240587896515511255400171149912527427626127554167127028853212580970008404167543118105061007190467617881707826676264525202569641173731866852565773592690759720743759932102141994885021038772757681240125149180272242680268343632023988755992179441765211193622183715593266796587706565800236774480191919012629676295084998156721876891761277642930469608128407438415180495334530591318045854338167191181337077061532726893414299194304165374214323713808067099179259596765937962514253455863773391892764129289210188487724287677166213848241715389576423135060862790260272844723756415513386598673007680563784800342304655882300004001078380170896174246001011704073189328345225988252736184399557384751253121616502884503416566384901755068875060174989051781985639987460032906955525997368336169161188652353451131537519971192294810547376746877349368951242501579608252574764355846635342124978556033991826741809664370554914993459408802912296031005877468253969919361850826862636673309117472545726958028042569944446149980430666004559505387831477410480775410575136498591813917782143004500032531579875184466337318809530799171175407956455127910302263758659647926421717916393389723054283443150895468175154869460642601853482128297856308341200908371168258717307356605103710907137491544593856570774128217756942931117830326343009818244435702622259748464688984866096744785706198782128388014697510321624727803534391568578831897881212916515083963615471556601934285740599059101479743138281427241230219796104748977184171427676943193196836957696399445046314054805886791402372311616955327976104739445644930136534512810383416899240768256130297746085675629986154854891069156900997708717463570145433337119980880035690012117451231315905245487596265127472028069214929351605756007798212713502339227138738637495013060238104928759825511624794625301628440966492522424283092873475172678454005788497344952158381015626623720482154287377438934559921715541766193508289930756477476785645480247618780054264794310601807616327223043859376619080591039328721309474871876689003114461797106622392054190829742373549434503565321171218517166739132814946312818766084597795038707694292299354220188954184999816199703692287575774412577416105204939797155487761481480083509331605490408218828588638891908867774820026727449679512010705251332718288680068693770835496919029412058157676460695439103578614803234289321614998777764831332166170211121852291372173568480150095613970666350265213763981177418666149057913705594660660555363111015627813626744851247885045619581678136231638204035679707210236998633266431500012214448217443324629837064972116350912756795295182103830116637378016019652115087028292417901703896104320325925230069110898940587680334149363094641729194882088972413602221246991568197632074296857738021494054672128766573165474954166351054520853081096884367471738825097673803889895766213268157652975243067883834784192904445376263414601559333324204488426775783684585158606650508012415096116844956889048328572912024125193461500624468328666266125640842959732043948413737019790772428729272252989978957426601546994294669685254741211995171765161277943532135483725246942694561682678734612429551059880522049069316662749727527656378457885019242388588763625293762438230834236695041067858551120363126517631976901840548667639896460337546977061663466002912810563550972170794920686384778193109006984714340688193748630131111734913698280040837757949875033992414916300592106495605964617665422533114393833745325679538771435703809974881019299129941560721727698008727284469760535700805989085749264216255648399358500833714229850824933793957440221070961172560465511608893397212942052789096256665077510637812723854539050722763712272273924817383992762481039932167413687492217725736080387178769862970665669861359023200247273947618895953309811878659862665605996759631627532143083732507934687431542893379667140297706436306920359078091635649010307492163279115642532279115833829948543496797999618712420660651766786376847592906194515623128476127597533007957439811480909128481755951401601526313831554444325313562311660307981589256626968981787731390655197947434036285860212681009505146660710047027722977846730959852861342133800868937779033312414736704449755809491909728669551130132211500307805375601595249767318836102173043211708516239063810696548698320254084316693806466419251184605116626300039571333237591535244663315950536198285632821335130378068834022435268069302679308936459977332451834650474606381065593722149285629204843730410273504622371203285506092916524116539352788542251497576330252011404525615039489902865313104382879321557608678539404113416884425278534471419748773830573945796472107496707589898544537899088170344882342529051146765429951992425511988994993192106969373028760706159875385954696022166939971589671576830722436485605431080822571066777043259579107278820745437721925126338211851819107875137963257912414620406854788624105287896077228640020216206270192866440258149385327084947074209352070413551944605187392711835776119168492431758932864380040851816153284580367243311791991540482382483625678561116039861629179450966545959810878019705986744096735409932666202499474777650655055077421008187326556055740637971857945804968010379676559241494429831779256467956181906108007313289754410360101424953145881151733350238595733356903895848105999548061792881665827456406928213329741292928090003463890561769069224163809708928092051534742757072200254140535296826713778884710189508861414568943838434166925925351424828186656709546556904694608578300341905972316595029765856357121847595115042436131170813028662639345723012374566301411087271833713018922586565484138413004878997733509642965374877197200834976060532275788249414487333175471051845989331236030109506903982829697767270225286434018212142201700331724272264265839830194549136845693072833369200605057057390778912002353630959134149161766917929527815185220106875939284840295689111277029878826258964657326025913799394685376268064429671393637700152660118304116088114446430660765025590280738588870649028156736711317209645962849943580469032430866539932018304258998966344313938305816457366549247610934183525267396946972193709243520851021370010550321706823981452859069057791240647847055923334122650290988188858228746586348056708551762570831892117159477762840046493120576538558630157616901180730889102407139871861977809997262335938361326063180535411630128989806163575946178031245000720002214299135834057090974840649855330848211143121711222439101403375398692301972469212466702454751085963877563743640931676256780672906991234983437630706959812223834490475208595655203341120242484351042911501048705345491984985969782871418750857867335573051560224885613563630401457725904221570392558172705410779347401800784081144575076056652343671353454082484261257085119688488485546547316354672094012100618267649437614264879830113428889620023427476145550401734966286088465158106347244376544030262810363948678479222835482687740132143650386462433261270847123088409693828249815102513933849183247297178237417075908151810921828214033422441945557511479784474568305036572707070205783717838614383620497698168325426186158126876352865876026462966952711752741135192187079566040851719133574850081486847432904776896653221445303512008019779558977372032396624680868238514213460504994786795160380915815084584647988612858013806712242583726164282002126614485950519368957062153274679492341385450602215024765968469202930151105946793025931347856878680856396278758017435099616533986150221215173214533028498982952253179349243297900033907686068581464967646237006310403795498938166053994985969330429077598561552585348976818710307720765106427954647372928232475125228579541449843790222592200804469642483784909659913701297608108921254943238157230392995350465443077239013283813421772522085145123599104148831036921287633274081447166583818173922646691426131149012159697857959715963658844812474262486901440526757645643443888242007054033470021022498616112211492628155323733637097719572067278565926353890917578752722582371497708977248765800899620396447921282621076719562447871111386822061251604641373731038675063419990027804642702246066699846139189768496067817655641715461890319232179968960857518933411963783560449620649357150582145473269960220304235875470168303042733415433513308370255083093288757959171484982143194226249985677199648428931224105080639842207292102164853612483811707465748711465663447313180054408475956839758310508602296574569571811892640029261482339840291361359770099995944950107791467678950549811547732974771047605209690349004991740009506571546296563656259150357680451895725040871439680335266794991880785010131143591980515750532093298873299405810493300379745531112151817777279344495676693308220832188051570153514494707140976545912793740613540682856646275948055911720496325117014579730192358399976439262964554110019873810378298494746768488767781469953930565793633586224314126367614473764054969889084407272081217844421796215779093613868628558152837377004681364910946023523751206382875756922376518985810196781746574970108522930960933292354774523246394935179487581874134557083357057950870619416360382192455447705770241981143756302266996998157889160329513093771576121098560126240548708816918935780874304096933764791669855864000746585781988117736069279405197601957534819850808590110081391616702215906138153271981300693262451329436165318309959306271936732218838110216675838717780796000886121332408273389413976192270513702772682434778664598152287330203746541277085239416192108488317438247153301841407459623989578136120690663548236169618303721907856112101440801620466583171567387655154114249293113017594893518085193536485605122655746864966404113456558131599065757373490440572009477518421225823627811408963335919585273661267130010542852369924028729074230860509190149794021763495492374250747105786743218199163094518595786168909143817261267732725883102534906292511590676126018348506061794041251889185698835874641920478831883340887166932101200937744719063443246694213406204595879622380723238315197430805250731726948910799318357836141574216467160355719647032853768689507591298263161772598074242317413452877277480331587320534102577673448374154933348824995372544555937709048184282228866530381458253704650717605814874825248027856383208556176402684866944870366824876567782157551704778861525345394688309895720075189411373068215572481517310778604527636799988219203286260490649460967908180756981851666529842571502104304122232438306664446708394905939355482084766954906380131681249657249867497809820827512690461429037570301185103694325551376288669301938145429741275181038036431894056200316269732559366675055589349716595789665350498018157238081508151316728839830210272435613404653201981132600795750823928502099433671367475954304790569706240605824360437251315296676590021481534186314999124818415639445171283175907314640015221877753484924824421907313040448825816826607573069277436202956025838797093404946475460017583697460315884552451079146845404207650128945803883098714156078815829453616329816250046048297995676167713329018750749250970586205756659379339346101530013946452880922222032424489842518031059948661046542572649541739492817894918235474825324588575696736261586504395873495363656183160020587117197497821489508922404369283985996638251220220354630486624591100226467763540589550317251478446356824923578926337808727822118086988092875782509665497581245472031155616672228129663437976618050674745365025159172845022801573678579367958115147100419769384577494712469069186009916846137180516284232655083717570870752044208727879879273071983189892063727695784411301885703095846530312166641937352296191382962692658471586465752679839441150206822117731900501451607892823881338006874201123902259745349771858196105884740007285044935579312071110019316800538382916392492769890824182167744949504039607403861929912347369054140903308085459631958518082604229896806368663842269709327366895362298060433145410079644737709988344655567536193802424563843372533562648836803671780301641396534632507307940163834171338228617530147675589053261022470597793455303851514907626247080475503679953430311149024887401449309100857882389327714999471605286115522222414599971991786570618328519760817313240593852134196619568505573922945010129957029070943554829273012608767229719227805660171894084014867847429971414703358612643123683035894095967911952893814126736326703174493855863588758647542961812869192986339606912156972582875635731023684099268024838538257600226242675153125773957966816655365898195205535311276793446415349397480046518896476292275597994249975178682243359811682471455051101180487920781457035975075960925789194388203665659227977108933673679864517889971347883801025416830377765386671491189968291060105514060112281643773054131075036857236175608092873459255327965735965221506021472504467982049300983811990800156373050869490067379028154568389854269541025133659416357017716878246676838031282624991658655148248119169156003304609207692589899734152742354604983055183271512620874058014187823822345424814173197544342775133382778009242968881278374662509548248517956692293693535799754333603341986432430199508556642496378029174902161753310832496417813810020876513502225779753137470341831471482094236550935365700022631369154091265650425039284509943442748199416856804130031562441109532339854932799671058921226327119950988818020641414484807063355154077621423561786086173789511950964801455965396108951444551790763619060173862095356303344287502671017984093145887882449830176311109168614007738073624792545789777831189079816560871620902891613952332971759989578623436641385569837592626104960033179621355219054894456904395093706319455136263959537398014006179457550658535144824749264775610800110975938182367959754630327844250228878340132165473177884767593598182352307472593816074109894046514988141879639791241108514164116180109117079322783000562989184535383859426699677831566810450307000055851912276368221271253659413421585429193456952349010539953662285122048295963822919712456255985541037753015217007757007202224946468523550219559163668010163078063295375892885975936292305726569828043406214500310493793328100778865502745624377740681175206192562115549235177783898679348465061930991290454914724543097513281144608578521371319135832048402743067880190171314639727029485577637763926121189178609952100941794765375100952008602563240346637305525993166102543225162329765128472075726067090974350399424631377386325059603097419952789666371464994793265173945404413761881294884751589129233998687335495673784576404845380837576988988804814508182417221802474621848077014912570114897995734128103680009756780991389980107080792858338825342437394022522307408592420307819286339973799612242210593717128418761291131903011636263928709285386483812896355995977559282854343583992108736633508932023935678572177986375860118778714226545804007655309737667888185510074547334348045660374002491598192702196754772745591215039394716123780119807544684916512951451393482501590207307245454385899903865304066887806443529411127892995706487912581217035680348663331519463965871948875738821241198020687697653785533241401442967989121970954386191306436332199581284527214581593475909631921269167438652162104916143884339074996778566069216666851046316704164126296660426188762117673231449890197823651152350900023255577710604933191060772065725941168816601467723626495397958180358578066007983271229739930371867649233859448286652662350266990959539872176771512880855527833616294346426577399806772773039226916134961052562242973247155000783265255886044125346224141436090164002161378904301540618263211902215443974201902998659501797008450076836559239349581937205490659919353206714219526736472772997150436919695709589293059915569370511278021374983392032909876905458450499563258198118296999537490639363307981914224541931415561727768186483186834596312691042567582036514110513759147886719876736336837439167172019780018674052424546490030521068337471112760803984248172181674923723041189810280260376978475110747932438209672707101449476717443335370717475073117971665952090592280487603921848349732513588958511360092225259550978327970682016880216613776805514483766088944618400094361060889427673972205180555270302653622499612923034465948577830432574329474784798514028631464502867534840576930259194239346606725725654123951001076104606683444597334146578094065066842721493868989233863400790328358316063107395057038204770662628728436108485143557101637594508228980442348749495353273390574367925005829923755119061256538239618906348887330887411973439441568089151345464024757070078571277938802153754609514589625490925517756226277447767254062633762141012841387446049984534276721446658818033060739005682700018807922980411870261411222883128928361318519857630676675013749245395826823990375443477575189819699341945572729761024055973042237891698321860217985156719446627066711098557654122843785683254401707058981695317384556095042786284499069063155196071766671400193711198500674957936329653056328938644029122838735822161663326047507240525598845747426415689110762890945771613033513092628292683739878813708430633689896045228960138437853149615262997594370057277564880319617520477154228530993722560875218868652711004622103004534153382715064013138893557971784880349913917125487472015092821313924510947394593419927932560697679974157070276957708131960575352010463305855066830462600087581524111645487883771557976810658792361380698703064063841488504415399146198546826246253862013272678648702412340870709232155200203589350827673030872770050405899887779484905814614515630189699049880684256773369435382305570591115965136382935957070261108935967619682638776273371600680229365154914680487746566312372689253569402444997994963917689085656267854265481972097610758326348242509351591695779693744430283767403096120969692883653210294270062897518418913367540347970714221163341113978919330549541383661808912948841184050650993257078459286551449893374667339166882444869827084595666014573321478276036750442963303755689384737656364827016736104980347384390081546876888370639482939186427175527249251021949564981584043537785457269060260846863495963007983106846708569253221577788085386370629593242792498874186118408534542980752184448352642662958195102924136254010547892877392932136265149888531183204832860062850775300891367773432745520529041149690317502978768338649742178222604559946535340870899571008598764345863875218550803005715134160194573112787571664558703393526366487500442182732252915128735653653175207727254573949437246677125607021037417358103382647820619988207261591415170773110698767077437128495259564728650123960874574344973583577772436278425164878797999941531916244946092807048732182072733901529461934502732236524018875221639465791894448057974926231624608499201563604122150960354147804604295672358794422992310636387750885315400547537027257543901809920751365413484843589264801666706888882411270937900233913453643290354799095104376619828544014708282246287422244484234051697984981149356355262806752835819498619866034239650189732786078280389599669512912018049438718304515760989495992036496529000844647765962852546528403621371416175716888958907666142594020845027270920669784998612942945172675296246805282120990981985757955233186511335277172745800927004854724601481618899164287693715309175910777260214202147239261892639574433224145444847186885176563902219762592860899668812724148230428878847618362382234589438144640671251084654081416272603084773925234289873953494328937608367081351434308150223129363767113785452519545226297148982027589062960693158848166569535441516719841039078707730899803857093289016299722093725263626473414982513651682831455009141187853626123693587724404146358978254607941602546633048804140991239835149705323375540103833769839931110410620444074669960376909143367430772268501491739126956650817972275270854527521328827489454923127815684062750076562534868926741736882355409183946048320885758925385211851769628589991334838859537942013344374058657114250339383696761146683563163013050632160510681630038645206290268943591633404468451940070161401821715129597091246629176602507279797183748728417614892811626658600696187134246700006394769578553295213565092960070438909508677128848878008033331215286003460593880509642605104459867150204242391628799885488145954827245743002346486162331170146173588325670523240393401368611149026491458222390530561394623406854411731790883455308818254796822519249496616740555066623653443311135114285038021087375550550084296112597292595293650044744595719269285958716319042259523820831869364755955671524020697895894607957099630629567816591105024689554712847527091995957998204507796461286560319357823808738180773798088375310891587716175755501954925999099411112299324163204014443687772053828569627084910265074411089344930864570699726161256994363689267800791076776894140909858034617953719361729025496144867926039803967148828915202839483107823681458866569640759184426302351229226168380903546487420617416790917939764973809748433244934786160272541936345252345340828724081190752449918584843593847495923326415338526114379305329155011444488313735802082515217470102590096343002136674431341168630514218886406298485854817409870249196194820983626810146476751344228607247094083757991838335835671831289337019792329064792966884695137212644022025468932814996445330047430563878232077505125389034294789825981827129018368633099760831997930970587219140644569909258086190655577224963116784741860910291487082725326434910431017519205879717108945176403782875202952209200883025525621200790466586544195178792794009717448507102952240583778852041968972843157644091052722196067224898019722652409482254017093295504345554569402587051994784515296403851415578096672263431946424719035357275515529083989637215312141038822504520441226560572553033700344016815297734938119481923162187142811788404810287719314158052020981115164970973942110362490166533114975955851706557594671914636155362424109860996133606286962962046196262121356230983506072741821001084554936108044911374987813343771500617451691187531185687036701310628921135650434705635582502302410256816910532967360387458144864050874877474888376782451355851426711204701750632919168856378675191710102299110611447011788728148350011882951427585878193490145910669283447300269231703649728335019354103625557635771580280505292424589322366655050087889424258612388621583442397400958252820291840518833770327173228885809213188250359337074878980952562262072680090668673827973394766870135897397200997255891726261861706224581936531446418174679104944945378272662131039749099915256475574711139972760150633427976509002916464081310502993736710108062859007913332053424278291746138813716871604553520207717153909834741919609429512626437857488994195910395923975907122438766179927481113230621485835717497637204018728096049647736304166779825057389934260683417981935019559709263120026286187299322481755219052915238508767570573374937682255776560640490931494240439542683588873432518321517489922774680814736243026477954308549280084324074955157707189104651986916331114411553218861833543656696855226525323870178135669848786337198374596948123435475366452452188603924433826864491098488854324592365610175133726035341100537521737934861458158302228475528441599779016924547216294739181205668730467862284931664868035365397499729724351437221694833490015710960658664138338498812104371241607179900295461223764676873245539536862540226438346937691482729367729453038789211831593281301478981167873167538384272712687127435400556372387821705493575217500496677266220854564861107152924244666499881516016630679029880498710805276434607099623265500280331885909676672427617527888670684904759046942093564041295508811190454323870222995417914323091474927887733396039206394543790548845439442521876046414459129637829868480103967864271226614049899836998224176310556441285346661958120561603204831939700275642328481109363418458523249042891760053575110824281453976799374014198938438818048375089503880119088099412692268320925810691285345389591770913600038542680436236324531252217202488119446019119449977812833774670506094755112613162244468885179228558790948783071283438995431592695611631016186561868788011885712941994359156699008412756396659079766187696830956884232671553826377627165912110147379032296884582140488035068174430550596178209566854306188595530336467601145038427305918585764337759944768617386183062588338482786485102344442990351315852228463012445361331128737814595787496821449371592438205344340445337470428005188525763291240305055352687964969927748360201387499580457919041028591334746290044228362464670686770307793928826374809833136823759252424101290076334387718128827987677982483702268002717940740854392296339035160409723810002801602512737222178290299826309721750153919048775365965414097683733302407131786678504215787439212729790927015737133527791033461404988395660616527658967797058435376260339863465950103941702907190443482308057394613312612523128899784551533210259069007912129631970841764105324846354854454203475750584920093664990791363929453398766273663070900226932028008900178539773967174028416288419041448765325464434235016128837060407745072737531153563740106998810180851649823822474562873950972506201919841381429816060065768865051962337888441172725579808101424671985276984985772934148750657478082882256910211404995707036284916748477473280045876027823802355880508187943077980995191326342963998100220858184694014736108774934604069370723984324778826538240761006643687782890772326568251839539583836350497676760803130925644723477167605068919414111826623297463970227151138023319496927735994521375460207790055970099298551419303183185924811172088570864639503622073965418237019248186203600945270412553066244161730851929969294385410250326550408783574856424460804562309839979003924836659064898796192890493967184736355208911832864096090106274391380604372303899985518302906582887106570848040651691398817306987000487698336155314027814545333037741391875061903063359005301748371067270646248376793478565326572176459459124691417042014304232518815769783105404201251331767039737568378195699988494116145708799565885066777597268407894964381496601602857651036051591434556488472507367572193438986441621027986414433829207496953296203568709695082752572009304535507237700552090540174198075017216312761230218697779265974053900104465375406808722515372926096638664592699711869483410263207128189976521208474496632726772114906640378262045807961314088260546506371751492707911515671696942117560242875130676986788003786760433379448029801744229293590939842461459974897103931956469612215328929296171521413989744393174791365927874290458157057753742300904328876969734045469408103243288061849718161996453292262931186346980129919422062756334514849981768016681796868883207716795197355052140177223611725492479875427092670542138368771337514179142412913468388472990434584331977264700428699853784277935646611656963190596452810882062922552715038217510411353712059444110835646578562499577206008628039449854173448313487778215812484791538542447140912803438674285771450605023132061365267352374106812105870877810786485387741402385278881323381800931871469481908573237294958456122356306250920080889842807638687632041570006465012678795764339530204654543734133807875706019769742637957847407443492834189313984149618732903148832701872785695487226965382559381039278810105057429607026025707725774325393582764514776552199073784763190795869887878570922141820158566194549318112953142107153842760006682126186979872815446463480388190786517487824794621702737140990923852768598454698760289801761919756158998146699512186684466278425054067283423111273480049703836014291723734908749590279249963721436766047824952794567623534976997058108932485784562731234818849771221821191800259021729666696232216642905007935470152861122507835115216495311798634956021919550059146921844683504186666026522986690128104710265638429346563296770404228098379455616697397815818894250354802892863441147860765829780491847124613509159302304867696830870290658582586868472063303224737600197447138713715874147594794596476990630149503188803688806454840705493919046375269347324244347399863688480630306514834607344431032653442612591422799581542432125860606138846636010201136205004014152044699493935642361722880569682677076591336412094597405585369736410973128071889235103325291142101140316411007090950622669846459361184335371789430408416325046527014949388288186121366237201545860196490226091473698621212079948512049824338867779748438063587954200206807542729262832928171751960879605229151667355539876241817561204509093906982397576198699743321254101516620964194197904402009303382439737630209084888831720519524759321572654641595366627763002939555639158966504375946902583405103884737644202967093998245232269774018246856145309342655406955432794633299859055419569152981184611295328896053607095574854223828653332587615815753286143250344450580233036401410317038213953425441270075969140394333863522920948710051141572932429499766364558701119598116459198033100394141274096080650112567737019906854771735919595393299160494037222077834332682157960015148791568280526054838076370189103502926146958855963030590473470078112320435557448789209158477914338552291409560877888237966195158257674113063929056195876185513082666298678231137881996947693651959498402067644109368868680504621519355231341513517049253858448184910192811078240261857926176384058720188568472462415251952231407375732792840226625096146420076257003970054162692286249655597439366863313009785891191474667090264801073608449168507135924872007066001221674748238611554852373685581672719414346491286179825715637265341011594496113440679980559131117671173270406822200858393376361199952155759203931786489859584170639974565365807487357077258098674840733587338983742870023281734956102976448660487466800908036084431665439951983779742308861909982983021993230963040379353245085507012002214390128825616447221406107684680315586392418494347957573627294778943574018979542587218180823052628332344566256959912324579262666365637879538020286454423090177479495419310377975170766352342937055282311528391905048385553571942491824908888611621628210240537028215030292993919690779128647648883937069568286744759765486982479368399558006187773062269437331962558451516940665671259335222696553302159542126751587074539748173823072905288154183803830077476390981968712058166694966765302070307422208813468879315549389998124918023559083401589452894642788637550330339874969454336107004224717704986206621173129961850958241218503459220802728200643344174347040463643997692364814136268361940370799279112112437081383131689805415654832968172548278315525735022747746995256915869774310573640944478388335144774350283448546505773894394355192633556912157131967179712559751001226300677201641626003842561426007490647055967492850591788103235928168570893820450457207815166373181736808116500331967008876700367266810212101362254397512946463589323244558516252627524504023129962801937675094725136415141278465718722942186730531659997074595612952214853730161506842086681762931426226158521138341473454771886377454995396037734568311689576562984075628677636335433964600132965115817399593209050471600846704320861996959927070136708078946616542871394075400438641437263423865489371858913533040645320756313442195275214389699609729900401153697864753750886416520262270434917248018730336515740981573461140151426939562375043022650700687891385261365908916027150703945166448756843899724316620263809422823884997599223279672723739213402520438919354157055402481338592484579562027692450399965913138880040025378617176616024659649213317992499571238291968243062479670165732322303666670119870946421390471422462678722873578558347848312210251266231765501279936099175807252069059706204270119087444373296125124542847874856241560576430621679642084555819703222235429063471553938947831265780855472769235536399621858966460507845886498777650863314277856801162630733558352204596853369032664481819563472825346664178291321898799380435647468591787819233676252186106212337606449593678031110375939478067343350854110021460805466074351399971585935109218022525278727828402944208979890977615462251338582995982226081272955485977749726501942359137557029448579906608782303621267380613637836571196736958098819561600157158425299353664566058340863257490306710636066318181809680017331942633771416209540508362253903121867587028183987165330726903577092755617302965193560958683332359181204179287348017306934189898676356979571645649656278593887241280483853264616332284816510539904125340751665739909864424867231532991949390681146996837574257478191729081832979251420882929612615312954156152211920186959173479175705684548412308753033815980097088459506767920995356551546941870473602419749339416683598783763385554656537956760037883282564613494542514586284194152146404046440479100680025016278365165524369719882825601683747249175430413253298203319456840386087931332301743061814986085521355469969465567993486793576888963998211551533305926254534542869307019868887040888802422826703958276234830894707309959950372319971169717181905567079423408194362194338668748336985193084298887945911906613094955716508244700024697660456497861848298718940165629653839196415765205372863298252172592387354634306952583430061627307281261395917142359268750828425392331691765411134601995274842223558529403714948680574908167903884529376106886234755015494329090238570490450434176935785590769125216699771933178435033959194036206378460095960646196550585134216432036102638002470145112378337187939167502103773675078303695111398108173942437407759952991354429761384324385860827090398023498300342054560831173960301446149043492919557550875222404914790764551497565702486729870416121171240277749024881872398422689771687827288733519989407765887840955268654834815919037940402054830392566542269908131889346009495900692994646913315283797443779592238036388802820071962664601786374049706941171809329041044884431382263139694759507640822628541472264864413070041955016064683870995879004024658438301891591685980921034964253778776572744913823793146587250432155960588727636349260396783468274997506017889649660390356447590741953665783442274385201711066809574098406497068318483259947412845668511009172072729375227922721905562293435407226982213309102189138854217745700691417333791222179859359001565619893557972193222455367241802594281276245287789379894941620544812664925726980113638353451061020905425812004136526409565447319876005191305444098144732626174570483222203079219513686973384809140893534872706927160151771928572364493547926583883641545888948002381958280941944135586324588415431786671965365523817624805586638140327114946414494171701603019781239528127088780051090388009740227312488441860473047919715508772064926037821715300107862765472294451521192365696147640369005502042192046276752527567023895720733027477371972629478198866902274806712979721600627284713005904879988701595307294952404618033789378168442907569510005729345328725021132979632906182981450316803705989177308429634021236610549648177011424067044142421573317037260267368875171871128414934787064044086293926793423521949031902056103078892921814227928015486220101222316424191068085752153163597913186076353165658795222607598628095057984423796812468987297758848267216444059432595808336255730238731175681652284540882313245652591152169460905294044146502705443086965376589051644107814066533459447128875044726738794551820149808001082966313719649362999159192062414691358980753502455358650184672393702938059763407182182862185441943536882311367199378065159823022790943556555547782344599541531857485085014397954581460744278855243117779467501429316464080633247888749527637841802061434558775360698394065619584879419324037308598549764242126730624111910964155077980257794081024935341259812606001767894359495168066246205469980228373575371694398083932605026787761032125744901500021174195118423831664530358866796717105924630908504201408502068927197014738470384056082239473901964486569041445014183441936632520951764355745273140698525022976823955352843226478847174099534321605364643013744592972942860738159578186343986513507130722671004864032841120992158123804192139483800584060419790904617242497335185880621882862834951134557564283681456755888302283533032650148074240565268265615107758084349211823610300711339529694367666510889658987133461119241458485946469909019423673278765216405046092056867676989519646049313391855948867570907324983980872622477084239453178765134916872234626154668679446925496535099577335443135382577025011736546071933356418388397375147286611289907140438936915310870810755191938714337083439514498180923934502727773765259896449297640460059221474838809402924665882974772795936710564040699362617066809705634445448255728772058013630280717135251291966653909578603791593640406104793290011850044769421348255652243619630675901094612763053214583339467616270150903584020748413481805306796949774532464682259761449654734896118372562568458360434335714784458775422147790388171359409967453338784983254386235130651645946154444805565408246186633669484302103552707593103838891373445013906360862231674901668135973785702803630404630090200815281059550298837181150162557170592405894965652560287181738537630140023609750962878198762582657493390808089167388716816090578382999224052708084168732398304998431017371320847683757133877713033815139139043527169934874306910843021880404972360681269470191135896329567035757786677111780110448630620398305568236140896948476351360295404679760858649689058955132077009209023558412592091126676015536292956652464878725332294208622378673069577394314192325002630914118781233318638591953882569334905606473698166171468857752532872066128716373722256600389666733185912000329348735307499693400043354433671854047807357858145552029863332907875988100990587971515274685339612411016338011652201346170641183933219149116141535728123000080006401191128945583875689250515780910865599385202350765344500405848042707413448036889261689828806008865403149178117032781100290954433770535359498009221045474439209063711978130675089477134229159600966918693904609650905345358293081352860606343825596958636425639488149268796493135470164014666373302815876454698108970485747167068104782278800331931718438536298947427044353514886599349844691077349590307912238788737321475681013985320033415296515932893194933189090175144320238659219880395421673044052660868895866659699079064014844431346627781836486429072961868773979111827987068863516248320668965521278468464394132242024526959299447232607437794722816627522179938474244795831546513842913268258233755488879053594542563407811762896235420141491419249766618946149837108331722566310180267628907166798566457556907870901974703141415227175449511298352895704923624919040185273644836559624429893632096524482507156074789680299044220169223526548054445253130644714205439000989507951170323952605332184938612392277891060738708382722123727525154737736469118140292609598715792556584900844586628560845022209732450070098056720909785894591958654756625458736218848749708427172461703141436314680583925851869497181415807197092940830639952577097178749090920757199846094964707756794338428300948228453039421239259180301830639839689169108929481725378505141848493805570460762188955532324970496856471031344981817207910731394141873703639325173941003140721159894194685090665677137200718841756739884234480391613256436829125826076496047846666037215434687803628885707293379766152186002610480199803938073753571936820945666698383056800971397940254477742299461271477957002287554155075430725486620434841724350406376454960562724680508042185983214345272238448382726751311204447899962305953515302071919623053910051984950296976258993057865630565760877230997525835300592650921749748480833211858751048180698558577222165382659780343308726112988649282491345764242240619865990402763358311910682163885650268477349979894978610206099589300941042641209686151164214042175461953942115696794935140160216701332084193377207731559453471406436097616803109186202708060113156346589595377725237990287797297039313153346907345870055115993755735653978975351640559781484655763590578383440425926065627444026963776673299249717636939514931201285002813965216557768007699941537244044890130180300438892092351311182702702146979384394082272824552881908024719214202178470783924878962055441535317183797550472261777080840577974423090682530804011637084797553302832948030408632296110656027088353561002501440521499452221809407235924540599114032116383870737480480379230312989694042124052873821702580593421250450417669292341241500794559866552916544902521571404694973445513350373377324485381525774961907916372494539500029133286047418388533957867562881423830805467703571179165946975719160291868150038067681981543829640832320344912737496054122553157897106693456604505401171517543531157908676226273933782866759190615637209787831987517365088979233480405918867987659218096955997622766737287292600973805664850510006372218675019523394342837486841086338650838727968772103936473471567876911344483088628462071425843602149343283448585595960342347685726619840494751885403345148226042273505834372557545644913917217590670855525543771880318818255961230891269234844477902267597102686171378994031755548805266680397973478296297216012110148418622831582257144621653266793265393271539014650166696455119329967104258279913701068921044182559219948857502327640865260262447335508305023219623431776004025056088838543022726254052244598747565685855765733810140803970785391041223539932078909403025212647050057269780381557153876753762135247387261573626550083643549009470201217203678944686185388850841778421806797060110378984741576651486382917270316802722783764682818062599240598331466746504004315535932186148166137619789789639760403672143997898280003761830341649523543088690033706712622764528709337032054200777901978045233779384679739810820381075193964510286264053206922793109886666289820568998173194277682518217381052223823529824777350319300230525461907291957243587744301253741517748723685643248030460078873276444343930676501604117302257541568040175461953120395400263850790796874545420106978505798048106093817296427633745591987521380068804700042027356131701028787662843016633852256207565618191666352962937428351195906355550847860377085164537026260786224729876629624741119717233348852181418049272209036758365797929126532982635027456602522721953646328086186575201115072153729302695561107709146558686500875373380899003786295605688007296702183064788345495407361359026069133091992332275238048602568742543102021909943520809294706770112233654476387154159068531172587374648537886944604107775852844590909275446196149888042229833491533459066219746723358091818043569920145211907663010222098546049655776789864234710858383766335311896523140477922515075929673869828712226043058084074333606490269865159037510283819094890157125173467432623856169120383439953131893817025486032325584816688548934750046003902529183032904982880172505261624095651010038139628279674697574093773563761813550597663847414186617051837234617019957227314110864816958535659342973553485129602470974776283376757716656813626931196546308582771865242436056714538066582855137299806119096340375714252544479661115869094234946901676487669978762747767067334648806090975189813711147441767586687112897975347550568532219939295617947997175706018796062800823949567725932563783123864468547753606510785451912790034002164235128839290046936324446560992001984959126282457497839653120644302249642575601933626700039660837837155758300151620870730004565641153827897731619096080056110062735061421784411701169112737519576059614996712978854123940892449953365412751598526717361618577188759342711567943452594649489692767059487209237081289176061712557350418890074633607514815185990523715069402330211460478527212692410671662977409054143652276254348036958161257697434356485192687331287894151443777387456839799516636071229003144295939998534661095255774350148774284856542272693643453641609475035677057553392908901017880739769418150106849193816496417309993992533785791667709015958151862163542223098424377914302824506672099577678424592435383728689438608121061164156369627112022994725061216385526133929474507392076682639970592676652648107499934926072953342969769284012904633615266179014883422403810307437923914475559553759265352018304898460967842825233680204180645690784161220180453904055977141216647917677801688850513466848870562947382956094260080206124247230383776823883931805032926525522492876796858412651979834908250761783201672710032254291963555903071408206747999468515709024332184402411356453138820188330076309398634840588282608532959579919163084681846516383620352002361614471157346536565703555698229258335861122963424617325872640571377985779159358423384878637750823563424052857968954707848694978189526711639451929240034465074884873787195415239380093051540276307491794600135771804573134107977848668935254919773728614526441230660801347654553725746501929135455078022424518358344862196989448035485066440683767475472773324298180987820933339705669388380893411921188288864012241102303428116181792888355183177521728504484975176429572174055548817873096176378340667620646049098975140850193316409515643437364618881813557413573716225455164550569426058036975243407267591726946239271597780842054829749478905835547856101401443411754686138225378859559142448483454791364641682850187814514056355832727214911559915337431486382228776880049601753085929045932477504217264154357733425311037662808633338449488344382478570594749180033917864924323830473393473563367458974406506823240538679723886806681914386301719159444706155785088181206817710261850116879386655404744197979045488416890105965093416034456479098069167548125140341331991197771549893063043909582656062160030605706697952777237594468395959222557929270324257383572960780646780541470620829925333018806386277962547096517284271743352713006315650507358783087158567232437605990119885641061526754099307741905264019687654080066068738043565790562472404427345455686238827174248962920883373279539297397676291874084389341756505051237318219916727641885508567507703015220409055101261463419719919678894758196720553611411805890217703037928421970677482666542091786677423493398669330803805196378596871102525258071208131204904121224183531279965469144217253586001475330351935389535479093680462013511990053413689443160989890306931357169951090146493601280379583274135459220474075411512237026829343333282177428059190147588447700644898125308900905528382845462767165374415620684570768077067840122195848610214906059805599157100601021439924190424874802201894777735980833452986117993622042397840942674079112977635199038180348399803776093672325923790311063487038966523771749964708769648433777696707669817436797292667192472871042661047930369734618384837993347681346603843873998835224622662020865037816183257151856513173267850930488056398170430002617476680664099313431500733395865097982329898767805702986343772546095707277357718135320602854133281606599691924846710315573288292936410346548458431407561125445302814001138959358469828538605244732847400570578019785147596931282271754526785155632484295049656981716936470234969848316622533457215287328457758567533184504222289058656522534841692792868610646786118514419575131683680651006221865485995139018538900275228696602787759758444658298282072931626157915206800287530931755805868967787693434610446486914907043505012329290381528034669083059025781392272631387267576663022633483743392373973427582877126856581386136158871020958775477778248910468582741547288279728751258285662302003669134743933020463532642618393965871820804719790880975461091187167781244513123902400142012496793380956431193154596768755837290298232260205463543966572083834937046108102762482797323130141494135208112125836859047742092274302015355377685972996391093960458403842203847158953151244539346418673863660137337127334258662260633151870789684096306690848761995264883890032901656368374052007256292810316007025030765551909516743322306899541385804173865616214686616341670138981081055856541280355640414000956384504899262587512583538919919497731725225079475289925637520271059563335779760595274749831291203074449626324076428617479645789654950805299074026275447889704828541330126688439039007321748504181027767032734863522460200015295174946171003883753775066038260820357504150375186210025741965763213601319890421603655213407630910064404476692044604205586251257229720677180789835811120345531580912649499788333764081175051248189942798384874803245111221495849466215005966710165180775975308454928034055614879930212695753648175498289354185008862580075080678720098959123062919015193309056991518104743738857264886173037383368108638909416221441879328402235103246701756509045372105839519813955974180251577949394608935269853547324926722879775752489229464967391526389622766626454277915977656980952405352243300120159857929670907334877354970536415386969743154752240607630453434141205825775175867861128913491714240703432579777552983133530629692267379761919335534988621681608391596687509745573417688098121809481730963559029077063385337754600657411899741874084173237212710276706120704413657869585473263302138422924627224112625377948369032814347563153251275833463833703078387846554541770327981911915578527909224756112272603173163812655274783118687426453627566208188770185468585607655470312701942004378502419188006336973811900543786980881564905976801281894884466117265645127839865672033903381812852048222579678448687809834267174944700781579829078074571374169960185472559214767349185006998085593177866468160261749156782880784635053860457576315193244197571416105214960602674944459678793656547161209697905595858343283340366588713127277310260106625035839860686104868298671125719478620615776591324527737880546704409572636794144984885983305993633216076469862912371353542205758707755026881717094506751235753381153426212744176161436493716159772200331149977622807762347372125993249557446157173610134763297280924899196422694713118596222267406526657811176644890865975049349481165408285912316038662766512324052570627310881911911523949909837360746433318377471483750815189102108128418211057656045105274634527569014599013059745205466444361569810734062669006558884041886282612952870866692769382425973772150527277231628032714705169268991362864394554821812863457847819709113460193688934542842507229918838680693099581924978700715137651575709282151865764811118932794865888930680484383046000900940748465634652558516773484017619620071853496286159730201261921365882310348911967541520703467519031765306287987411227761205297973965638053385369535391894707520492142703932327635783557426615659751533567076690009318695470978599840956427218604942371169024743222313297671404486927096996369660123589529175482457950394395958947476732437868328730881632577526838452731294164422779078171538648115229229431050128426640896503627392966033795650583295458731169930981893738586794354307971746405063181489525935690291797362943141309812997236161505555128219267786088713700490530327808801497371469953366824388031147718664950388871299922438554850007630374986684615619853795331203178652460020463853008730585732368823219564398476839981660692293461176778809463492386161989379376020729767649969471406142559540070471440202818101642439047940728568195771417634532805864233209520784160626308728244678250037084488165859056980031146675326212090992730690195845768103962665315943065590274748780154567595621101626611989676777832306661104320278193528014259970944850157898749724022052144350884855471861954145405650595098167764017927935452554234776134974158357250648839502726947500985345880169846904963590451565884597455330873776722964942247548682056191726465578756502280369470111278829860549226089896378275225457765690204742705989186124028821413327179140494833988776905957409603257922968985952147993705623809561800275272561676419900171199186205802635823144010259388954022389503629730974752812975704629125777010202158279000732960332125635766940007572808072337189053499939034951899712894002853867172051250804549170335415719683108267833038895188293080302223753984273128916492481936126408360282168529522297810116771947816122096715725864454117169892745990575255107717781820993746520743647609446719164181809653474867556792505472460721703689086174121565498226575691318108300719487649848047724547791618809260982227419835439922994638351925947562062306672878079798945635057957665396409471120812700627321561512785447307080343847341764800324966208761691997108387710461878182886127160962934094167642350930260419285811650843791848718324311891368746009422912448435238564786330414878628289226307714377452736479457951208983670185204311497848638216027097212907564394472726907905595935708793210105822377934783215619461234363959785595512070895117866083785584163415953357930955752390069976610704051097008165744782498549188016068272059109731064322456859742046488583119688156089553956932535749703001977778533516382058091565005162991260390204280569149073077065528240678662372675724641233402145009299075926315067430548092692665111909703625535922760248609791924781171385865591927592613860758306826245006396646628914742481351922367181912182517337419772189150114717508372485492871685811680421471905087490393064036102172554184044090622264414911067890487544776689950685097542840250731429266575002017990513826909969372253457625562501646424593154401434849215214226345246374295734582176247781155164617384213849926229548365988609440651107632579568716125389151383082468530925853129381782390840132819180282851123372908906914988635064217324704386647459366048758769389515651791797436387363776462106328536941783482445735725933612846389809766982807727841633173308731106497270894287834030594687789531251881595139347666154306041819590634337172304910731637904576687315791151869255889404816279851742069289441957542804599400037125681839328842118846873466407297546346349609031624257050413851009127237996113220759316868347598567202937994814309462375883543602020348114934823681145146144766213304388364454767882099129895588248998639709204752288930854798965169743457098710610415741466801214692669163972948216519233579518961497276141126279912953283801925721610298368024221513345750274239700914550709312230359572790601559585025426388799008302110334888843795037914461379835185289893662252346759010357348949869101300824928660679318668862520780189268645355389416916905027794403496099738989996715107084356808580006234798082262294318496128604316045228973110855508331563092933018291459441961042850129970051971842036985570324191166506189270243926257360976294796641606769497445906669976444040417668247853659958990529177000424415650189259439280873619388373815213701694650817744886328406090105298627069264941753152758491872581246352849062487497163052242907331566735202819309819603373141920152829590264577644139932440209406282664821735939868866912959628458099965193728629131137573905050246442302181205758951842662421208835193607353705957552940763865669737767507390919357290588120429880361556665349506710689623485352959247152543518193265042616248700918435026466572857884320517034258237728259805577732446017239440201198959806051834436846303259131473291819495862254761385514555103538151040000239384962508485594278001441767726107218731603914761188275344595743266780692445914423099571098900196136439551275694422986394862391743993330512924929825640858268370591031789441889874331194079702701162551325510679753373295110283266996905864168519467464741082970874220200455504129203020380151238980078124367632252035407105754460434393282352782480496526959543291876216247816939502737689747504225433349137974650853620538223186688652373489975108059063010562731843539043506709440989633048508143466426494937341461493418131018306281429243718432652610668459980066683306169608733023353838064950546047489486937204796051439419893345800014816534683916868618171655490443927029712564747445383948027522445080793784846050439897070732638783578205060080994334163875106740472111548414692101662484419536368082223763567568550571677104336228891397682080038973027174168105916505381025434036579311951190982786568786274537812489562620520695923825877601985061757578784071827210874116550637204362930646971919763368983235263518107667651528866321463221886819962627009114490377232192425403438880778377067833328949995474505357689722001719039671602619804859422989292994001003652435221625273661245720819144022944181258745241462274581923680467978250358026575619449090842385407987020104944022409327209133497685343292275306047124529297400751952665871721214147675390261871094853294115593410128330946719251885676611853419410129012438968493060044847003351751041875060201301570470533311380123779651693764410127740437491558577333413338508500684732633097522523057448618427693972992862969217082849498116332217580105310423844585225269864884651634534406922749612887864548330267562592506082518200775447684925083290217540417132248518333127567996583707948352931348027220081291602733401607295306189869626073856537787612845856896812668523717966199437546090567797777657683311190235942088057448013415222607500363765566012606348306458257738669710274738807309944709978997348922394658483834107989336058351460284975430793702212388406202202088471342421564262944474861946501818432130561357417829259598166671115483905942795546999475470538690343988894521316233947135122720923270678281762377976199764824435120854714810864046186774153740529480207318357042163264441459185920559066952217468657756320469238511263294698778224580646025578469866382068498789651934118270526094972741593929692969319045518007038628406706336863899638329137949693153602653690325852940132117171662730294044346208374987032468459116701506820781838761801318983517650667912456679114249395061965668294674210240212710929825452389421141937218398363266608011798105988658522799557807535938951953830685818258138416922420622560745476488791265124420888516049808597413667663335314367136744945853996914351025942332973289949931517021001841691389597422509592731730279143698425867755504646693734685019749067557388566282665542997759100225721165666777239149044488369500885473648673182638843260225785509922753888975918547176612022381790833939267897163985430981658087337662651554543401800569316038425553566260242508137883046857310520459421598725353775215483922999286150567837095519681416767156577127454131602736572810505155258117180746689192230397506147675226215938777268060461036562564663538671874067529111941904573439987477262667462299431627303083476790182233559708548695821578321009449736031385194870275089563976639485300001323256357122599708958693388201191716055016854964440175940011466083975617658043721600660797155912605269670853000099956729750680287045162744616831304864280346205536209329608419814342411676738788215054082751362683233985446470853284450288227126585322370204742436036446517393329569684894124165871566765135375825198159204901105256775783853607643486227925183318611723647956108639727224300969883968697062896999198512815803411284720470608282433192498757086184924985094369944490367789942581561988017011345270458317395649644808876986644418325468029398459540960032773820820670608891398807105132677906094619311672741518241449527660749654454905253248058168083240882612086692804574837304644555876557926455911323416192001002831022449456902311546440360438392705372182426377260998615934370527307736974607454430082772174830413064222504663261028008255778259278997008541470067631002954456297090237693346492110612563772431784480407812038302745691426828256740606888239609736981847280741668544725816741293643462955217013008752671998492000243298038374406739196631479812057577376294101703157952432514977657206045093853776084331975406193244870240703712462626237507711796198943016048228590874801192686754401760260382128686171032631293639845890753355854556630030182267058980406883088813391631799140632823133121793697043164572016138479229359432981361901774653432306614103752270284607173077456042241525407883384959364181687991104433245872833752979497876747187003653457487681352296762367324770494483631175059914801272159854382704981299386556937546159845838021153765933892777823882765933270112877531240766732435096218112849780887320964986050691313061260532762541882808440974999169061396212514971052958520431803909206294212770295117774610096318874364701133214458113745359685106073176832395256327312958041209426296531452842159626737636648849807976093812916429132863838395749551754553935810979601785767409054241377204799159655901900701136859139899874194704988547741797283939146247063669732453146923131268301626826044988147373804890289668060110085041681923261894632621082801801683131666303396834854558220001476044234831048555779852502801313066281541774277811008543237518540878289887107468370804089430925766494816787753452343394290966442720937466880422039087912755095958652082303938833741455500386670726282694771862714608736085339555283456491342857290036251560326184987676442187629040226561157021266833571994341796388814662444215059110494256854108344375373641117491553448658879325813133305788735442043103851779295726524699655012803306368324928404867398275454163825642515456804383908080469276564290023913140172109283141812921785339402898224074170532286779290519809874463290437589227169685009749625128135988393623836320893433558262353210193832739776033207071978538642677037463689309606458695386121250955374160550099157694971246357093391451031289938571094688085536890588661209678281775991111841135373977024118153790308979232376222973407420353221253420916255208087448338872227270528084272775440175199625812052629258861579803287936246867211591069965075008341577137946728933166019764032857394244173950585113879311936695185968645413439251028847727705108159925430297217578868409206220126422257957508682029027221545830277885281398601230933595505623056844350745333845969821444292122026485334248987988335934047456836854880435848149529951921525503522696413837760961038522168238154808081164273487134740639258428963314670917520828892754409067916785341215636400320020801784055921838780832818367459224871959783541238612511733617274416133773638822864147971307229299649373258051173902937888315087305904428725199948174083660405688136575750077869359919175164539336441306727987071834838665148379168647886202162127642672314729947803702374534443401058289136619592237616486563130682513480761503551718593374026485962527426027023158744281147972270904892088547010625202860323155873956108321489534895387493797981521284385705501669570864704616814718698199154590891836878488566693687082987713615739390359108247545956951231927383874923739165256495394073988428762448314428693232107789235310824760644680279871540649100454303230093165647489296810095117029669212728750741783666971537995104639740341210747663255900678172359417722086345447621074081651919113363499648166957980890842490844635841391416050142380312888345339893138142317531295681047877479040322683747561170982718701357128294007294024115430150887976270867105112177175624592210820474318759802427626683436839969824024793179394270324617461790842451489314320413969109287330226682053875218060153986332829799168684294458205748477913174729035905689741168625124913290731295351010171457944752582086248353211171400411392103346588204545839007997060068587374069044101642014448420942070813552056313122917794730606251889497746922188499443323639851094347618028435685453812274046424330016543541747968409853169218998144883130740505339634671877419828841266420710869455297578031473359822428201494860768980719394882136085975474444381040189511533854401755728605442860847578725925778282142014677007742619219551367901429988579362205632497886937630967988998661852125429898258159474608286699947491580681545205786749149274696983088934176957561145786477269833991501493761746405601573602376720600836569036224096458796898681544521972116886524670180887442140310657177133984247482780105743540996342530741080136764131626462591876126564764240426233434797201463580755360453841201484883586781800069898871375132646388486346597620405781496829993798354789872183701394702434392720180386452079146758063067475907684626568540937820585456762499154388802209280618985605823713756108806218876584953205414647496060028661092906379426818971632720286703624520859561043978235044196324887504861152688388429682963635441094499832477500461624219509335677715168424970320724159513339518669001112975975522490406104043532128639619070408033052338211037303699979118764611365409686045292806795207096441884522313769944546132719169440058208969424932426105475947574701347346924698049155504843142514644257445635691313817995227608883881420839519808892827542976823195728460828723342120652183579843152948092172552111043222609568187469857877531247828150207296808730111974970916670156591717046397526321892572867198536081320021940757327714002671258852351227261146934060385449162060290995244219472307969792273857613469491308019289877109683019592243227734050250658795905343808766339954551730599200645341552649211718656425179607749301594313396654733545279456001006006957334650236529544624952666957930286702500352833767764960788159347553314437734313076219739870902135890500790908474415107242226397383902745190438075856136390327655117270385796008090825450328172573109469247187233992437090036099420397834746535561034196118311811057521739494717005025816553698741816624627858111492647966108701084574419649668685192012500260793917500379578584070525534504509042135815203786933023157731951563124235845593876694560054188912184800158204120053657538003381428810228581106479198532597260582135366800752035613783156933253887014069918687109642544628407629477073910509225548563400157048043871638517634229564935380171875835945153568498325311955196863115374165663847674120085173980923993804629289981132412526505693089371534339533708234528495069741026181573969704668901053704775443560477143221192828663393739413588996328467287257055160585029300253463185880932440435827977840859742150999660316293732295171344490289288370428918364218717491399223584766898861265257688439286260802759069354250666951989592123965357512748569522934227525454768737539879786836295972039133682575177890177925020678106429316233845427614542022991407709655034137185437961957477053137365440679847129191722514458283814252633557031825018309356660265584831901412318332537045766642190955885355724429775542445565999073884694738053616470924376411524151790854930865137153426710157541526621938247892873853812567994156708874791680056906755309877369072487660260949698516157881552485737018227127278250581170243577349761619563225768013676803289142722960502518313988661513166734743259398957422403360637470685224961742434642938323500998718703600043954740954337244668404206875675567996043315722732097277636274792593848255116857946579617568215707984618837844380053418704627416194502174790536610418795261988462813054267949610740686927391897530162542987810343643235562311639122376920141937432678612319907456205492235940824466453581005532507858121325634349917833285673047894944368565771362025090878730704322805302804027704448328659788767753756704659291129157273766145680063896665515171667158905359999850040773262729692599931398995800152723611410930536660384583473158795093499800974928469285207612746487850137451135125902820983508627244803259157277601416622559549528778928743072078196876476099878014886351218116300744146539434114333466686880475929251214931530117358074786334685200685355812338485737987901070597720243621636009930555655924925461339068458112142661090340572259325737082561913458597266740108062200621740698696211296534606311678107743110943823455194221434736455506759379051700318948830252487808746563314280954626566820051035488511538157172122674956115678075680964489183693553858752579707703133512007186643692848590058406778266163940383474921846700235635186667897730083182389587993527043748152275357304872493279972541683034946496052635812631005733577118931933232253122799421177879323020595188136076482828777477257781549937289748934614063215836337438605376359596106478349639156649112645719973988183438317445223310887108511087779040744884786963738340076431591626537878061051471652193110564778811768692304193108554529922164895414607506148084131290015046757051256740869224539739986923984200771539596990192355899074181974426101195903256422353473272941699950968731895715709261088241534032073062939983765503285038835320617837826312553253559251154537942841640559933907480645698556790450210998229110295063405126376629748030363830656053279463186997026170163444168359470128629975290546123600656314364457448307024587640621370930559818669782498656442390658814177425575037489246774165729153362382685917636659100517756193926433452014367912331253524536909475856157174861133267582421444004471447227131973117043854583994933321888607213980700006714669327772354317510218671299498776807272611272279931540700584682997177965593386493862413129235571919211465966431186742935427317170890881810371595309172244191393210477011256235350005322572670032811520186128954102275290326716591874620540970840472086165406209376249360267850592102203336723502265339258641532176162222082952829809140085780276086300640681108724416123662882578762332907045658309455234903137469741015348083079643521851217449699570924910193198047420627997085559414173203964732929685168227727728635919277148033228158251668233534244405998858919663170507800112588932022611434874075733471704724433485186541989200816871121772922741885808961086403247320099107475499980618513107293279849340542620179971393828657897271174552357458275249203634896605326842455226313077480598769802079626177478604359971556939359869409194805038566513910769622961078523334928334634076267141175244135999500555487886159390522730352830202523282170579144611209670948397436807476872035884730004962289738140025913885947546551290041485695067898959923064720313977026470038845039732556462956297271403451290889358577777882969482509300312779539658898084736794286627323220678246234082809637814680597669754238292862246889616403286915211013260362245127084659827465282402668013811650729311698798217506424599804805490892732504837719327298692830716729719860640860058337878242994066737793003792651757076938522295354253908190663789130429564539446797939571756605476819214559325814479145656249816185771175619194866515517850446998400678029264392224566953530839098396040113790823331208857076775717164971181966178969040737095900950225474883125280733908943505269522743355956137393081500435099155370629635468809795930758046959999256244204357728250449378121916291395851518230384089041654897859659477930121504394026708141281991187150887094701514248128416287100237406278542120877443215163090336903179216820968323685507850312972031715459026658743678726600589500049224937849121763575432557492578011763971825830265817340825871221539802583393846848353743533517367778691287727277848817185803216010494019693771983932226860725714997535136529022782610367697697758049807237309915658727972477423625542998178596138002243642249921020435029042423405413543141908731464405842368161887392512057993040388020621235584694522609559013408029299344027663704663770624833715041404616965628502565133471974291093962046711200355469120330331016063866359856547389134775578542946276015058958289929768357273731903876551402500245681433166193612567828795949364855142160456330812221084357579460938926631707814040313426422533722518011799764749836442046916698940819809012934603251982356512049054024382841763368245321342801523405840235136983731699694513962950648561085808381386355089269308705290289596787047020283622212726902365396213658724631509091940295734360981658652612403284820377436515661865462839948143123859216803215918599004344672121966215803864370553087823036063498811585228154309371527280939547402407046489495590544372777009509206157960493143873769201488547491658412792531007894287065772330955559766446095012424682007163524778859851314716419092657840358566933230599787438946197385405781433082889767350319342713545762273026074639550337402814102760307457734437939608126268100861965008378708847481191351111995021081551935231368692072617782602861483216826615178303609623867166122068907385899882744368482081156543938012228160478806362695879376381421736286114261240653778317922616969003416601020238066024776728275079956289485005807150812726541284528929070313565241580399190583207499182640462302434341684776295604828790348283232989561621278429184511921789588503645146787956464531117222257578974071688062744910735451375192715308946411351441682270062794193877485776878152205045720872604460331364251030611553737929809314201620890413913538844339544677693927258431926630929890482827760478886194612841390078447506450753866496769315764592290327166681220904016410503304493841916440616652065764348199390584974380053537523254743714264058890963195729645209603308210569561212615254787182146747955170015886432740205612027647648188465202500789753775027793641544241576484396600614210056378350449529920100598066929852827315659004204271542934195806821857213773750400940424739471734500045298622726565913743514871374553754974361675911743795976801051650431282094553816143794078979043492151110795888808228795202053785572200106273950761333061435263507866498553736816725499360273857229589448575887429991631354552849784470654424456663954171090457961781065884745876240898088009214807745800540843837615388901997462715920956577037063220235871032204578113144254556914989355756622014070864998539297108836156863880338130443911636432176803717517489173504348493667022293079122962096075797452903314128408013273436648420181347110977704843240555396295701784750367916240136530011533395832576939972414964386606891344419326669490973559848608040879803438854028274003017431142430078930938662708225797864216677488421512364050568625328306737830383044747088990911111495672011903287804718344225031496077878014514426224509917879327460036009495438850220741647413797965386252120591974956130541249293905716101997857738219253182381899381676418699208929564372004624818803981140250865333882673603026989608268493064949515038631617598997998908492673634728966696570754609271306890983420001126194070113199488008914047641163786439005303856197665986404190720552035613454848535733875823045565560037589817839532397882264015404198268994373315712579844826064925624839712267306949419550252413395773011794055464833295116798415062840132906321062360658163768669554048489608702885940406575359279788309861076908081633543991025400381630520408128233178677724121339471189537078307998782175261292671667646811774017240976197859123406487270351598018354666674078253407059107153949940948487061335477829366744217234619097646511199441565867052308589549913909320510143253599320524638526086647832198245875845081023247401657056955499739774353131873006061189998250188655215817326392867697908165499088944436400175808417250740149478177032745814326231518353928156422865496619808508033283958459360105412778267681147406876689437324357834850759637799230632290417122848297633009582296177199553132468476172963796883344455062243732975081239536875083672786660184376331211889985308674292815842174207693939790615001057737925220718171289879278303498257175711052049823424594855397358189445889871113613275422058946937686621754223713663600977008649259423412785587297666464391874763327849849208274915313855620015365368061168875439556854029831970832965311842617002337371997979806008896634028699472115716474885760993854359300491145927621867020928230323278503990839694136240908453542124007715932517298640054508800128444568025703807881244561689505161061290445703444958568118417257746449684439881138177753277653615633712118617381941638334611353805306748672416034675761707265917870390831036552163407390479459591202445826830750110848715848520941072584275004525390485746956709940301469656474996303488365822321434882818790370887796563051035011083004156154963782505123297137234008103098840806040887771079841718552372582371865348786828026476385661420565240702089415364673111543761010954368395948069514833499739137838709741878715882592476319611117954373551452517373927292671105794848189652622509930325564022740111118277095061076178517917363719783214804514006377478073884177753392242650172120384297708999050636132337396830846503288806908664648193785077519941394571931851463254636953181693483063279726997252892308979769339067975039671015066722597613536683292767609115210162688752512186553049700036557421247983433683278295118246499279980658504945832475693042624485919971942236492811420355387323232536446018575089930387331374689594673570099897168505429858720943335453436892714087371449778513354491506006165377956124657820238830448173874287285688546848334528498498768566779572449518401372181657525893815279542381268056761823584428490734184046498605289527676428557756245406641428823465960982211356918237404424211208479671211066888502544277135763497091832288337280820073880506458775665552269670699371503164786066328900172714547557557208750087472345402987616433477613416612456471350013333846335860227165899370692824585959845155094918692196909686012807550055496714369955485329649151438872834223848532002584823333086232401200850348725661039457821710929312277940570920969809217230995195681244274245699289022443132669416867060142808390807496191347361874558112873881750334301522242286686029544737499250463410269548208343279985995243536885005080036508217610285959986528970541318511060122610152769926856304919039940727264284886079659287500923823000064905736332975709798749950987942904030243445438138295916150889016080962933316673239285450205127363614508388386442590133801424633768775006520923830700841609065548656852235216595538419818416292599520372420501280592611986401916116324092528808469574734807965007643992813195784463072788833378747604961804108753506854953997109552954420400978980867286763603803075903690330928808616567516947099581657312968067879597828963029892278748266411281530690493991475990000666637048378752757382890735149685779537900743042255458184064869619473179040243350572345426838983559359316885153160540134952090762295424278098687536138424511932128773802392187100707032313380268583854576085807191082795609088619283775845813298104847103401203851557935665331776538791215183543303815268904690559263718406572027119173386392037153760162410313288509256426157289852175547260273898771885985024355482184311566234416706950314464709868784758048305677884825160773371009914431910895136022037534873752457204172992032770926421634247893851032695269151066400935490777036220946979882933222152537017245275981024140133493068152728050571001324945382300552342561793899321728173651073681569952204115631646874853304319871504971678411785735120258124879932906296117154154478853546829997730872301975986840434881541938783169063254682291672406090749765160919852135196980833964944734286260706401048927430261147831879735001032478341932280204285083011693436736086917226909818733139576054073074250823730751166937005510903890477737679654712883563279123486917901554145462010232121646878059050733077972420841262951047593582316415782961219325377457751968722748993511140107136170613919719188057932205822924193978131210406493890268726169395600784770249503122962543786758238948981231746283678211121509432033540510565456743900508064906788831573101068465201149671743712112765136827312132192960480300393165296005870831726032667389196080814656786369534755289925695800756641722926805256201079680385993617191918321122214551018618053479721502298551976281413883939872489166822199971627041861347979038364415397989476017715062927019622498627331943392354690879062783084462943620550506586733809396386451591686188910897427118678115372232213790159420530238223876864497396576561578241032855947434431010374318787944288695755604911035000901236670272947292127143598074452507713779661118287433085193813912999200985843618124585239968854569774368478832510607459532285961632195843751954703788803968398928440519758486961713253966222857245816257754366257974449548289873068451345013503582287727626137412593612730493362593867535063142677457347405881732778148901983436043384871242415368502763816096960377929593050958122256967303849018279951573057499734905611296404181964969045674895983905204699435176920128478212018586473400986776405362878691009249813454726770320575640711810739715483457716822526045988901298224685496613362663181041057455124086951122449409851878566417356234795106584419321858689809221206919640023054227102670253954092061757419896517217324673527484074699280799384224124301618202008173764896360921053898382633943505215578219223539374012718909058015877826803158770617125657687012467347701201060564759027317260094734241337390129085809402345446514963694495198777887765924520195603022679357983166366032952898114815568211831494710337332679415456860059991941420389470466900823729998900201681885947284354243927578719439803050021023309805486268165357346748248020253626474787446291486037728385968802880741840508703797534168657195759761459561022214387209900725322109975887733589837163278732778594183382058079761959278693201726412460702100652318658834952541398568412520372244153039689090188009858198036049387063945613148744112485348873032713393138078275920775840194083978478466516780342968676440144448831079618398506207064874649484161769454638878073856282203471976166155099172538957929503124766494074127490888278969505933491382883833962973927486046468142005463427616993626180412622394380804471357874870196375030692408559378195459350255995071514410294452656952112484314761273448510708018704843451182590294291240813903932226559348785674308350091050696633106875424090169269861145103930430987427710241970317270856821332418385421690583563527117297377629598474162690267321435953550670024888862190783430537571348121051176351244753449954674538058545036691252920786644875361768390384652507201474587244950410788459480190926381199473184667432273917616879037738598677836094650279545032252443084332086769643880643616106908349445368473563802445962466291638316038870137918730322863599433067847155749432955948911864200324170986360959919901300118004911188744159504625790850193558513217228959059694870924140815557298384746110258283875987194331723434979968227512206568511449196583425467960440382117759497934647076515506112115143325713752085027029457113995624216978314300720630918012319301077381253093579518786901878233883293409720864479666883434725780400266885705378122705158926847131026056455565768668225357606716837020862368307775628340049988857750541734075067789760858385546722941053284924307327491760455858875595416262010051046943017688288382306443667535766192960326322082345285192219065205683352129550401302361574977137682219894446309293831751334512931700059048296877857804067438315028707631525360143648671934566487917997147831572499454934427154822475871427692499879926628412387491770508205750723577225642958886439154996794405593850079591285155820762593106423075611263892255306224192411602951922963107815780114863083773988041882398277329791879976857579979155301674244651999026347101917726569452215277658943834086872379255174278851332892870100593727226886102239713238823327025918393147874643944483351949790181553509743974630962196516754391854474702130567947824024169914118984027307300816048193017156002592262101665171269426094439186617262926418297016345665142046396979455359318813483600991810100060635811590734560176400295776938468036108825475214537942720036619040120231611073136218583779628278704861195072838531386523288487706326322681115976703848847985511522966731638948329383651396186293501382424217611509474561775643471054787854067965256358248247318658949166300875771857835125644659122219054524859986848773507644644583935370024802539636415498320469521872537995521758109233204155559318732286864410334298972538012929871638543870901528847195961647367863402846116253711030652409584695743853185193002147062385557247078275707810295069528777503302901358966225406619354295172682773957832412306414454619360447223063734892917370405480185569002684578549244495908286103435341078502972700228013594982185134849943032704566458734342319687420524033896416810988639226984625457639180989021215227008572498164587425444406398849774174217259175690060656277299264201219623380246044627366154261292207358270072213650749850121068592690018683031834673937216345136722188970478236880721869769075540101216260707856497054418689947015159994161803596394466576602380176634117397955482155902660861637487950534147534827060914569894813223197667821305009328405075294687760920161004435028077611578208563384923852091574353134017108924208565171146925966715079695221043108059669938283736763384923306036735917798443312831663697681014936228742733853432886731526058381253757285601191900837479418923421492820356182522678247709839073813788061171786987510491997383833616853790280433227976552631046992100002637034884105667442088077835166584189758695876585670904017755601146985458668401319437675403759665328635040921158304682217040148277830437914956634174628922730265475508348872340081945108123851857379027064870111172419774356535661485602547004673018241766723167976086248543059461043863945202008217320829347937333466577736213417376075715852566798297394189626969109686869242288278487023130979331173993269335988641006183829193538867466042033409418724966375763102106053735361525759786405297255326206326830297932157935350643764562691448266963010739009534424956244535321304721942412032869970838302610008480684884457453714725248024524791824160801138604451705136265203593035275450690813494285570271767778915487455663262191549727360364894544704445098310619908625542828980926246318956860032136506727532926096552735069851710291926380320985450895858925302677841432572056025605871157482806605784914900634314813928969605954155308465341506565960760153150222071469567363709696203663969899599635055925146540677814663514634112471245008039769047015835030273528128613917781021619330854269984886699849357383053792498612191382203753588314485119056713913752050234012493253345868405099930336453526349523517605858525745961123002315791247139391235692347128294052228047059519167655079333050744754781458853838933959045610665664394933960914955770598356138709821488050722244251807688166708868247135557022445920647880821761718179582943891041084987323794350008740327445012229891933791217907902339295133600845798006514060852710534740303378919063878728321699835155023411032844310506970370629231397543604891965611331864390371194394372887167830477522314130531737183640177774100889958743007271246510409305779029597178302332930870692585318745986877446897829799265634541656192715839120559196960387961122346124210063769601683328562228199972682441128990178759063563626560296331316710309801295036877185756091367964087207753947760699969092989507367676619385102983013358764376312244836518501437433082056463864234667793703685879439959178084796509762533592648646851595475792172058108885972263561814494849615314620976216867224303877528629081644107616396022999104009873857220118800360826460564716306586925232759217409391240902391927633802663714756522697206830040024440657409251754118105936465305298503495344966464736995620725273983581050764738477670655059559392320895587469744224790166791843982579290608335236087643467409137561501328894890373223193750461755345050978876737928215387520294660123764432248906057930458320377052361096773183239173495194414573469294842028951084763136977847086545457379827044503220750571114843595549231306401464231893780656612544039009188355791260414135851448509179553062054775652321253743337974214449103541535472147034923943933568347609310978120799740519598462189254342577742227014321347325138787226684544717251321762763826483942761574126241383409080081518503189485150458315629346821970129233958590405022542866257768251654473633176575984099102200073659614601232394084741053714502439109310770095116256478305858342399761175049157818625834793174890848402103258075071609269151214920921443859152701208480206856143816061166748414773376092399936864516979116832439553710180268755293746245137449761410533225460777547403632907698152189863193708513659238143647540648534400292230950906103614735567540746300428482539358690577905643949373275928270195375130925110561812563387106510640425275833920479749178880266969892471106336630935584061846171414796386786592328520247150545069837118084310019510850953262057372080747531152271441899657680529376601309947221433986506133761255594351141438912730270647082839938806027990428422289889540153773757726936120043696221988136299524794242582438022357147517909183332251640833632005233362567267026292988630545164765623972683891393252351371405678790064150528070445384187108694775513299313959761373968789190690317560431794154411108725972414592164178271884002929722556255041286242900879927784469243610349384206066431379259729357444087997079742970230687603612126726906968287056073785493747452267994807330646497250364064424374401355715468957148751645300956190640903309019729716565039682408934403707876283724066819615550718516819079680330526484942197724080220726280668643266509928377960154224613476736000086176960370597472625550989037310695743979430664132738668793904169494592252000339159296785736713417118556840506497404146361411883706849456453496261152127692374166311700492073733802327462762801915710745692008178532080334194911435856264033555307283819526593922408885909826709979581600671761004395808499859132058218235291517133018524366324056214045388400337914746570641912904536471675104142811043141477225685595042427729751493623123978081343924752016796016493547919022614543708302989335080355684722135163097986144330578784402902800004855024810471322841487998248885747335708417164376392090255071680878952644537407808311042783367952034047312382856325874435967786721892690897011628271521013991238507387920052470534927664430305534266958722628343533101069122306296539982524547616569908881152803917210552793171265575393326576381881959770493349316208689442091054513412024535644083610743323986863333924070502545570834873231903343018432786288010620826213940491035053722594028554515113837725059750501986100556896744879169128532812653999773583341777448737671934572005752714080782691018190652133700002272506448831254476800653210633562074020329974722815892537684605690433582318821890582599810758568885195718987974237129912521935328960423512683485897819814021712492997868263584929233093530558495856173308150635000826561679049959574733051521817381830352809356347158962742064177927963394944600594722013528205009319023217322372335351754271762426824060193287968565341212961188826997518545007200407113028050236567197867910292713802885241435212213365181548304602719593089929667622081449555999722790350096978181930620243366927859128059884078731982520986846975290495303941672855563653816630432147881295505606066998719222590696201206265658058165299248394813003139089159183382598113795556471569532968539503451283807034221367853220613820250193758192550816936241595640629505610138250354036933454698312102350371851101122165487628757944456160922515616698672634552055810648018085281321205359083512569213351714140514794585371031599523195883432321006293124898475767591721147100630335848452723384541794375890331439483227291490292640293968519966271179475161287186630465337260998075554779386862832508024740291680106940084690326245331397693414730500958278936291063533528357375784677033328958886387543181529298324501868241355280706129814058276886375972212056276789534901750230484335858476242378851690037856220124978385123951509322346158155095594129748301032973228338334980542935394026702971456609291391224478612532309237917496679863023669009271791744728663753430220676584273303985955349781593653366564507982772989461801285900302696643856890920711666320817801993323391114148082377892261579208970907516573367786778339598753672058073832757158005291859214993270506196698997683407669524057012115538905358655708154680914585900521910516065588670683943866405906383384392348172133520457782750053200493198368219886418608187276997292729315748757685909085581662826458910332727448407817009830991688511761575316323030460411125821366213824420704685441689182881203358520971478645408372306662590277746053458149841728943176165958461848733262873152466925585337665399445929014599401153858318672966012656234696370612543138483976337703244499449777157315923570784301302929109545275056711118491424342129134986393782040292811971284859923371751575736619889959681879742420225078821767621088260771950828903203033703335439336808854287006941246446296023924524605860453484589688979758121897631470562267030199820892671177795617078316048454015012762843556575472672269514526402503971954156453558265030872197796167402807084881433057890458011384845507166830100736053668127907360506469882550615238647917696169355723092295756601665869860069889506229184564834722143938890934020638151147775520074055377409554534941142666971471471306526052353186185497428630673179303182477165774631782469967698437400710971345558313647668101298509625363764733866391362293259066150534683493780030379249085542983032664546282496886315513860646197702210271286392842356248945456353096059024775067771037521749268925133514078251727755342733335435517049176261681554555170769772004023645772980179999458807523839854689691723981654644287624804125774073595177360575522332243846015405158599306584296593200347543360111019014745476811857603145522895118895673317322333845016806657169322757230253289662431097156613969277553437975672933209920139151208891427090613888429491238451072717278639195298716074928583048516543720532920194387214332487077760038882149815088226733426185250468363535772134393586248852370107325116828255469405892240763401374955464353822827318677824749790501839665731383491047143167026886074297108216429896036049863978905768194617326332156995684552881012754961234038048786415231837261824483317529309185323732744308504817535687839653169077908570674231555807895002111864227879185718104703498209936586631020889033062476694449005798944567164334692321045945084974632468495710962468005475705567837559358156536466537614955762203331126184751791375353983838600093586497812814283608238428192211860851629391343853648200529246189458594853495286359419973747018118061716621303490818347539122522307442064337437926107875378759683597663073722058052968802593707966868568214804944737552455336985901372110728170447965544684319269365901127062515545116118855772830353034321121676719193359602384684850442712170826843674446913596775478694100450961250121204807782287545842815109750304468567440149375501159245747563127327854155149986754422357335988965813830392362374147654218952740020825091889712862707403711218757565381718312547218029804681303236436503301110315055262423543239864706178551814148426553121398169395056273405963122254947822010854659328609663468315588003339645285062295046429044202940292784861533431534550979827906790020026370172190462388455549857022230856049815494958584061825123882670365186521444578584510015053207701843639051548002895049781274611141824780811443144819147844265607864293084011352357802216712643424066144949439393406471311262270736932125700011296213036795828188175303029868850824595738295757662686044729373847600748630277718912684902770266567561712899914936311430524002537026028067975375411143401083218120986895972775276515958394991050286384413144856833986580016017112557355102738482293989064805492249761678632713428783853659185890470781366413046132658004202309368717667329068688682955498727821447530540385828391756543918482901339258508993262613723753571996334341927919285244699392502766394312058995281554871103508988707864873551766643943136440710845685158018388507100248060015928906748419063969078280561720918416478415710045833427354613456644563626584560535453768047958785539876225138090087698566447258934354068799208684802180636132581624080192230728629820313408684081042536960573335233805892484673728564661493494779620637789670186538335355487547769242500465274345571957816513073258556451035091877960193176635262913822294658886281815312286134949545364115989787264149523095391052543233470213420198307156921245084225008645541206527532925647930801717939348435962455827750201837149826489538646596330125917381464314672264705518746634734453138454732679578628849446975555830580568569590782955724289393225511150227831454897577125088682028895736973947256703878660957896440792460581345418725250981182767249258146373017228050530020298115519538352522594773655922180532633466452079274051154045674860663045221474649308429396616498089285272310557121357524346703263131923574084407840631680107213322911746630591902479425258210083184436825594507209770678420827536456457795710464063643887648426204471801389824156845453915217650162951711704423675804816082563385737291051497132586886168388374092942602364186761211155121770950222352057862599578440885251382827467604739221059883824109070215879237533784173485347375132113663197766119344982911760451693538538034964268337857391263291207030996276280021923486799062640341345329386205567557627983305051591452052792388264505929375300867333702227351821208851472914026563873831086564222168327981814778748776911527084531819040745711765300145370693852030748468265988103621093632609041038406661748427411653249800558608633528204067922888629992569337367201833300468672598720882226510464995721720649356949999082488520014561006297290041883214209475751037461918418942351910999990541785505288548829094366772320281588841430627521388455637403551009557523628120116585100086028930992943130290780877727488147754736643579991145162967663359409074635849256221163796128217713043111810447524443370611018690813108445142954079832660917430788920410509443172205125241325687543373396224312453405723127782260000152494896202073786084115384717048511617082216282915657226006281808024926616672134253675414806597871889143185158461738670778830464636115761484771204075390788153593018167450949678638081606683356078608052460624235365910941918087490011067111269412374921266778550021612729860789172038517061287536195826900511443757263373563614363449958115885576230592362290397699117957153119035551531731568519672646077807121027335472848373540269850405179376101439785309436110716910974041760952047420386670668628642063236709585622832784128528713564109408440940545680399275619905672056862790039422473403667177863236375706560486401115471057190322702560768245355980414608196988023130670021852653962577285028133866081168818140002042168087804387914571192525906822763897533265753652573278501335286675186783583487243753090910182239981683238826057847029745231166171026097236530163775082624032277711990352926727390174261521580754100658017742232669443390114016083005919058806444819374817170338018323417283785451659665002835322213161015758538155367878851643163938507465596472237722448180462923857491104925286075945377991777715616698541835262885502253859213478559738796349947626486558863865354299539049940111456590087675861673005003090020115116899174032080166488700502399897501463285821464052957562990907356192307799508621401533901308020414662720052058141051854986707931679905172095554659010816009647724182066161679839726161065820874872534923259741476179492019004755374586152319705119785081279822116626276779856865206169851453456629727581428945010019195365162418651681096571500621217522653749862100670461238359907084247344403375580657676966978620390273516854816223917506093710866231827227745501775127605873908856347714593995869719489294435482219514315587175828360999307873200370015014896118876319089486260850935747904409623906742595499273016630999028297215127176792512105609515026698426551986280478914409472486259573371167959606310297994657355142204151310496961730934936616982664807558859316229606108548453998869282383391536066715124623324809115218733298919255179332050317244716200402523347956849796295856602097318688472898048408190790298854200624578165892476610943307682160113177859158132916402471382239091796823676932622973353410609400859326675459205860927481366651478390730989941800301483140989999745182556678591171693700127609538929140252511223679439266520832960913101791261707974360848341070019147188291082376811450768384985963735647589007188206872992293923030247063662059886820978053682844399475313689397006365973808373903274163112632926920608358345781490968830277440731427297158475944995683016634628240567888308731512989922067004080271158131079447555020370358553686147624313643291847870030428103488688114007797680262580434567110790783957214529299539958205518900920823374451954480904150120977110309171307944628618218735843314225651194667867781928422748295413577328911124222988899242847489239211662068836879028103671709036831825240962821435887169370685411202526036272858627905835996764791373400756271038272259391908299920520755148305593296083868536336559993809757787358082433010171108695496851460623421800464088261760384282630490017287297814071668991839878641310523775465424713343725350511262497273366708366473619121651016463135890841675525993592534957289372008672414406924930217569629374838703453291087735573663888740486727389317977535231661823840846027421616359179387125540765588896728466037186353672605211373323479794717605872089236375648728628511308556478504069487536415178107423210444896115701367939879730553146394573064257369049701973845351343462991365875340497394883537677223718086556807304013424548134501079539127191740867700766861327168380411858305883441352121089335239893757885168739537053100499117082643868111992003574004275595470201082777605378744545404523815582717304963473478541708283060478871884576423309524092229433228765076670681027058110816595023862856225717942275163410341948060212908020878285269620391979714789208342291804161576885967508538220723618900754717480377430833029265493614406831754495999496280880268128198665474067347585441066240071957506349313034466386828766347732858981598523548881700382819673476871698678579335497736487801675123787221258909885103043822525138710611564333067816232419816455533914374968769494210037881515095700980306483898630747117138403364796120145270672148237612255927333607160245861484300456810846154779390542265315573897429625249627962620403590390048227854317194792936297707556775634733139190469627654083025215907625267282450309601933208486416770821823735593436495821682251204972517912542652007124465257212982181230779803771867932606947489658265078705591117552856320015837580203470920017068074224899684343473773642588345355594554457998989954987185689611862618514161199735185300772118039683050464403464291592707920904513514898332773969897467992856837687327241591043406780656898400539340832719588261997219053715087788999953561967471888370537228883829415301506929111089996789723886594284911537383181286781459585049924422566607970638138146854220361055522526406267229503614967129443994841394297296899446417933036471948338962425211407588772639728843298816813075980810143763703362845373720201599040382075891906865292233067597171453726522073765554034948289261202379296972173682818558388686442561101288521261176567323737835216749367936911594634391346327360269550230542052443526401099695546870279214346797862989640801749824107403198752319772512615736965806173208400101170522123184296150979533626054635100603034076255339632429246433740744036198590051471126786415400561440968994914888095832741622666985563140230376382170213385771206594672578464628774821716216154423521512126142556455271976698991507581653142612168210683777611885560808957541263164211061337506831353787257933098775980366878986631249470210386021636430209908076866286574525084651038315696527545144613934973034180779216804859079726814965057640185019264683582345983852738673594309104812148045536524561634306855965951435639136509883300604548325914320194315951176026307625854918294437047854857341800614320361716596069186829033712178741501650822633531512503652121215571392570023671131235897800800531204765702434653671186457170783861365674538882804776215113035801524586286567292929807771487251746869535038163724588587310567125177292358857768028050285134506651340223144931086963918059753267341298138644296023835534417668446785715379001908016143063194855597643114394499310411350093416568389054296868138243841319756377986731808488980448617209490817700920226141389716664090037391256843299393675504013783013701848608855470885940488874109665415078732831051052399717031795637814024981285794388651876161837566944351316992629668276677820209849488559152382078230352404459072050199958080210262535100157776249099668902971305979592121432484568205130367018846993239765309060915075367086108669531463249093678740887155675084214112939811574150009049566363835627780770883165975066446313859227788345056960246999416011589836055090581724109553406357765041583614349440785996659780258146471378647499701031244036653662563639329466987955025664177150603024454550308172871382890449785439558145258668485777274904166369911767743913424250515260322768084102241848291778970692307964459282156011406157111775035284366091656594772277350982030464990377929130091214718677283984945865661560925937587936709029115003696668131526016088084256335877832401468931967550585446348442435714134353254772746672720380010191160803986683153365274088017365245979782171524903269544868572592080297799323649381544557763139813740205263244040803527903979137130747394590652863193499791934560825769614182471485686433916250587145961465472920399124754653070332859295360843683645029365154395944254705190664987069863388210863132216169514960923345071296540111893289712693332377512463561464234993321530443004110993516086244742770512466684858168132991500667555115671819187620668673474549716315835951534225332528617359007987662865943071758071868463986145456059398609567102148460387312891564654057380299229490172845307949902463523681191349289114482247206897331651852586270387220695165760586646935496171026583218573852942759907776033710568270007988985929208365715320061197336858406199512987644765850659942475752290796932855503729271910377628937245698345034892931243791573255078584393559759893575765894428718069221957637654099262817150876433091322344491330032739445365685268850351048370707128082959352080632120030070941131836802858332097930271938025158169269258491171576652646139952748222404936885216399006964409339715530893216008716641513270889721754019506736325385272303486823150513109557972030135622038643867489499456886938732066290467304794337102817795261326049416033072946623865029520923190884807814756004578905662328398960711565237999479190699529855894739188378918596055339378005830145601479011410672108889052675956655653797440087213627106089361058312636205249680546714102194873928310791187333211870700773174222210541761980553103383480983921370379879832538178794109711699153531710079782350771012715745748295249880691573437718947450004323788411998230113442743029497777879584305234778398895414187750865030926214735440270347618336222536185336601510609691840410472726276131098928393532525337195943384700802347663378812903946832923906540818218203299052128725786840298427666822404110383179375091702407403457119699496712800316952561106069229132318336103633644177967120040324971544772541777590586645008759299913551931806548893244529917319168158625521250460618992309230382033262029902890907215887342458231087306919715476657599868017036021706714701197092206621511627632073223218221674690400101776985988746088046672921500399166634480895822693310744680301452616278505307729094290479154335304774359503266977588837233647250400000667638344113000541259533449712004269459510330866335991336488127607479195490905614863936057747153876364351351354614261832060906045389173711359064387455261168708708823956376322974272838115600010644498073542581527526483420418424803078189440289908503202422574919283124259957039764462357342105686637610822731348539123607720350056958238598614215304225466422015825393868717619494064102823690225086909166604270860921134444448450631219027478308964364890730033347942928572772766295887728863136783353358085640404388869999873812326098132687736542820769940614562283636114017994161519448236995529786736536775079105058710690380574213784768192813874697576569780015747841540817058376920490105219205512835932354025127262233841187990573493924104571728031895582824297960074645998169699367845061631438992256005338699102865141414805062897564622942635285833536729397420566301373254321156153990540126372931947049455046720966877478896625100537590157435458852426695791583171652398801360083773847376698395602670314403751084319196192039768798804343749008246426606330568494892917001106517609064244370424735718252682513459135752850238609360037418144930431066994669390251133586966782266453143659656043192017161390168739063345200772642285368985369398147859505173076157947264772232615331178493712895024451149118391813348743676098355976016760379689715498721539291616286843490991992620638297250174582540368385288642315969867616628268854119446307501293384448663315074008315319423768582056484620224260439158325981192481886023240438449054841688689414026453982047269483705949399580221005912862304235058883868076969392631222329120302676055856268103296872759823724031190192951459909549779150752581138761084962461979606261366739445765149854134523343434427632815774674952279079347922069359807323449598645639417793309592060277876542091662430640734841209823051467481247512306663044564723903555577325651769347170863700438982731040837769407810742543506229366472786404671069587291611112504943819233517187730606829029931301900959215618490051291019561171259716511100629499907519987966791035758704067112957959692502513321684277811984304290396533056731486817589214310634929116105252583476421912180168121900985410092335967632039741916155371501547508206471775617899759129520243239601011474964720570425542965163110289382303295912298009739564218652703690902704303370744103698174776176159878678584940274475386114230234146577155546768705847272260447813071448780858518583748534416347591527566482002943031523179486222883653749573758413865644398914209134361410746389802765601281491295274396226151096223128446893517553098636306100199706999456835019268602235727862410088966064760630516547332989533322709341915210200866787406164827100847137571052241360667832938667990580803991479884010580376262781610992366793879204207272134864058150381464683200360263445687136771787258686381284805189279440392648928274511327483666062301845226620382697537782193158768832144021754753234927544265614581221806173466176478435028492121181611212179002297051355844379528376265144235350629318602944453037686216516551326679232483005327783932902482489750222495337975981388432229221399674865739284370019984119445180207791178202016452853473600315205112180660527219132496531586872232300011808902935708603994353408906010317023049295597139525572370088169024090864338274799643907114225251955076272025620977779590158084552864298161954473935948757915764647605984853629806083454074019721519654302206881947244370356244289055749580648975361049255492069423877348833266225528165733242357666659672915357695731303745214048520493510175957828767311052790346517861448442775336926638025690168923292386868854842697840861865457824964216788132226414100632648609798583022500434664093238206797312273429021210450959661037759562637788106239009339730211645153908810710176266540438480781935081993987375078407157181088759678974320515844794427385424787868891278644926308460893088545657152672949958023278647122038643826804345776998969797463609316285329770864880828538815703140245359913017864285922500707019640030240636403778765576478276750346642814835954777517900816665911204001117551890831092034412478754683847235889964524771728820329843362873751365435006827831893961074692528181865576674541984581368871123028253027295684184546257760010675098334291906894635660978967894889846399515711780413752836656310705453543251394814271590800689159922398447015648060733811753166869326866675067836042422656472512290811303487061364368547373917830215508315299188918544369848089897213565857371729633473867879617420911203891935208941347860885824648364876078897265298698255547683361309822792660151362017813239470489158194344046246250416282453655103494365078532594552279151367431290732215313140939105445327201927125523275536372617452194024336146252692282796468389018832728935519388611198432671003965588076470552341752138604874932559039415782475907505584296157573884175207613811817721091604961197267891176045371395861649208426153376845972867079393663575464402169653031093407786909869350433705734572762552405899202089790442520116580678825093153883835755814857732252319883766929693404588972045426555985516599601236756489139926324537196275531331906750004085012478123378208947383185975481030898723641767160535968351565367090422957404616199908418176248259600584121028211876426221393997278124443102610280012218084715820863602576496360067543816642584425369421660250105645985455683909403760909738158788757528149869726933015539076966092404808104112965845510466617628625810469102799567237473396558023553469143547975133152878637961833519656345532859156040773750668985225632536951816100299213907519752604832952040382165096809888889167697061252858901430113033488119138057241136077425030650064597477434534375845771873311365922254154319797506765516948346707354550132619500285985540640654775462966948605655557669349982659342899982835006012261142220499948772911421307781008001665216096854413091777845426118025690579882954038124478453564787343717488319727020450938758760614804436058080902790436986968198497346236880748605202921809264866672721151239718090669295020270765722551922210343885254719791965739677215012559926028399549902755541578568809270505726810345406221659812648226442717509715917147671674589632337028167581710071740697171226794745387872258702657412052208705309738797689101979655482042894164140511702359309294068673957079987345108724260698281425711700131508358236827814795442784760249918547870599669360030932402862762555105280291722804976568504206666307896698309661412795823250937924370903151366919322796255083256252040768947219812402086055869700590893839823813168088646645903725616575965784864056996221902486823147403557848603543380033147890129972911206995651868213137128890439030608817725362512081501511037734604132876421602947665895611558727314525660767826661937414585838975495446131090342741994262732134936120985302516961826029416714505180241165773360451561575683693942547565126901925893610303861577480048695379091565492675166638964060670656123535043550471687128555803951102191616919058447933311191210201639011982452257699973240394099504503409033246060951383142969840163602966294268530541498545117119673149432776317750646829882671986227242046938382052974420640340528179060689505143200859176804428268842034352179334448870784906038655165281027620885142155212403127849154750764843632847147708252196533824447584218293613285089953899312534934661719654107599237265479842827236340146616723514012130310638056708479138207346014784410921035101439771664283523816296591167904925097017620939053000279126516684841508393617177279395218367016022112959180735777996486761146015215013872809368619026528131222254153446298934264741608221677207082722559282278696731132430871974977595454257111474916397409542718070226811861202642841301046788228055507662350309030538883786514934943916053511520187638273465716899617813105734464783679148234541558589030553083011698514953116974921712696103931998679497012240239001595503244123079923910387647467097970195376676370256109007966584753070347560337635343937869319270025370710085365283899743167113460877473829183727462951201612777428384030118927203290306035019857800702923344597767150736190536031719719913473973683115330502797164640831111048054912007207616572177264420572850004039078023237349699793008123328988953969251129662880607072313922213846030775032145393984442079315345938668082080573218112233860074708923907978666534589342558096063975450544667146010661918809453941102286686423913686087948094186529369788119999485061701542087050648674903438425438977638274605234267115782346951738253325904398375486727925555075577876721226923376516208536701969511289609756399639509598405141384221513029637544945175419067140230634844107255112592798723783387084453091399011055941068859375876409700510456602114911152916059954145060044239453951461167177685486002227553382154634106951509696618593087739606420525864483543620478213787313778513365026703966458509258657446381303947771240385501910234790242395819750922215746287048241996420515306048321262724508807243432513467324796839098665178198813822253740310513545215506923479523681169387549103957676211283332137807374779812753158534090188254606489718660691232623000030136879701902772900908622432554499317759616992484951839006285369754688079078115573213082182875335029002980242191864074271070290741821639256616522813697986913030596377805346841189042366373064433028904931157972133181259210308020025520927706635501660663072990013364150283352427686679698510498872410218169921393624417570425939919678895549974866097140600238917796283556217020512072393645164219341045190783192652089452207329304516467218491136941091210634507444724422145606772151623615289121615435340122279120381903102853239344275396194240946187220304216652212244990677151897690468503987964811084007727481560373149786489550274012731946320355871506734046767569980155004498633553403369966348426827744569218877805089956027152857023636066289458866524979386746531893045137399536116333107197919328010215172692499068385011718529015430361496975701684965114549038120799420100011033055001132039944130189302375471152864262087294405094390406977900727942444320814202018565455928100555988076714361035461308406836229182340784060772906455194283645207616141964014264954872445015741250827013585767460002985999526291602236133143281737129153761285998701979632473832192387614759420680983301625768465672981227240227559273267337534368016506017157850641036018122902434330426506451581677888707280921090410262922691877445908562982610742978471264591463435499208477959520325831948893546068227335364748896457516303573241015763609189810390779660809992600436032773129178914289791446171188021438638030811572736558134333174594365931512312898960261095450444541564646632396240353250955618772493009651633835027014595024002424558620769494589032826940380034808201996468382859777588192264083201725514432656934477431584763322756577863377019227281096786068576694797252249427571553613901753759750044311985876450225864448968298390191596927508010851859723136142777818382676891470664201157231172894636706351218951988662103147761766678657902700205386563083659859670897569096658552791512061261510916504269806920311622330936668251637908176114593759093271516752962127043777635702439740621087310992986998833342059783611949862096194940804023134533744690325325545188508246601268820629707864209101585210391922744699068084703354520619376500663814140506216395941981811093519695781580196308363647542870325852917982359225133141733517277503388190908004449925422300177397720087522098207665829743228526993863953599954843092345919118014736176624154972865030352806861890474173249890718009479001282125172218039690373200108594559586374413936998902546685962384591957553027347293569291038701630399820080749380667075007545378913241505360148100866077744471015335747740339402824616855961351341031774430521579726900485505622245895410965354011725127696575508615146907973755043912320372261419238533579453609236461359774612581015435008652177756293948801931734777882793271309437995844657631304127206872154006462460102242313580025015854138932460330666101551857800112085393057913622684534982516631680083616294885403359408601860056554113613447686292886279649794473697989613551348965679257856909375895493733539827148697288399907844621214002985520402927546542289288985911277735534135762985532075519621975243728627818069383670278501035484582364400759169985612430777007709817383011303633296505691163114327420128569617548509698684695201390050975617675801566253757718785639818840942707320492616001442262755937249414429786688744675759754690828787009261244879388618839879231391418142452231301113135091526252284389979003472126904235115721298566417756407701072629400968624427578016893214386441403991304331341003262421087594687729227952499620067367980273360758548489470908294776721684361317799241994509054008281382688606833336201281930804545683456741663374160540682500428890791899322013063869931846717731679960266137361638691568850681001588123582584924092863165048898772843302183690400128917131763294977999194285169847505339392928637554575620639443072267129622939058931678426746237893197018414723236973733526406537915380990661400080179785937008852475734380795050612608807045625005139718456642883711929681328273692934669023355530862578358360740834349985115917902848052395165461331352677980830041199786585623267784474081996234408729058624622306093895875966148128950489007524353735076925733399439635206186074215320819159851174724508369164756747760458460727783323643989067432914706331642035417336359925585747928356962653346793749599296147952398501874562550245600907124970306630513452892650043644476230959887915902637321458448918261554497886217774255839994915483292690595850777724117054237444108609029947074519933263650353667529588854143399833055459924233987416141023222447934446055685440951713098660237677181024179130702019376899917357537309337521618512808066728412224932621138009068099834786043500093591177513664202529948408715477382966194369973563342578905836210582929833868544439587410165086048414359657482790210459429180776762792513041450332657687410430751063177220613674181999616046392805910005647809248077829864495254621978130185577913356355870069086013705266078007946107876949699243220717074633515860440685765728661884310194612144466693743711907669975584097042657222794558918335794181484532783838722917380653899290809231623263950592504992350077858742981888244977677666166880289576285114241078241571449135195550991387936108552389338758284369817529263086076462674521125507439458081680557506122888226500746629403795602433041422736864769161113440103355644538816250177679551932760812041015212726217005023831293091051665626118697913993968136047794026496267202025923677917319182182319116342351336773386027752981029072877749930324356908774552640970796218321302012446541095725803095289182485968185441233086059247796588607861373066536862174519617665742155673527315338886159451090581924433155002755665150872401491209269545713107451167461178646174580908241314425928224997464980263164545827540271165697098898961969796627548159467890759614435877422960687424025344571544520126724729265787092545696699809911543275001084841661334309487273065773389005801956990595932227733627812661163332267371499721740326365434563242161420650984724853896977764381530271610913472048303324422272091316111674646954925965885655749312712903946556320671155336013931662943081925283127877019354987796340490854738092863638834447113138448680470753414595721327581163606496054943720510431060624155141323131741953364452015282029710453413158096124149737003285588007525248898421955890322394529998414130403385405484901475825964161713015908667078690530312028690107240898312757079818756115780693610365276957990610372680375362388192272089790552068349487508663580323554846524912898850051896733124895914862220139611703358925032111157603992315306439902730175955752788190832712278872879015143000738964107595494445239795613034308696192308371632874265866834404442655900872599427916478459678655410593284823771903549092840227068300039905305503816655985861730467207580235033623896275973984060313443172668595520090960506259179123655070813233399720757921671527033374815913272075139524463688936557206496480234135263002137441537169037421430637073603560128316039287412020722281039121717473275397009858476621286271736147189773493972726516594319573936836828283597828593771399106226250316792153299488087366054136911509390892310824224823034443302744074758446483960267917962882490271512526575145988476082241405960871355515211337175741558070015125751520420108147429614739280113183672313294791328026572228339470977344964109899962167022324671224214101365643567312000686204241778219716542478294203626147142914989485221724992187501382147645324530559356144745308444591660283347399024859275601306279700292404916033376991106613551835460861437500248716670576813734228956544166381137863380463998168187768295982893918808283958604978461366205871213923804022831036926640345299172742329820561304600243129813837574198810830536998621395524076686720393718134433453686694198117549117234556365266640454086647536835733736198707883728642199486817795531144820845830001117947061390733147269330558553514393614379024309076369069921363283118925243576654555983533050836753249662589691822229359695970413093409873779127672212322452513519877258438793260788638724081897978025736448581369705521965467848131355731070745910850563989630779787866221348529046712269692687739604646893425709308103866976637738574544606939945586319827212552049127068468586094588408049178024349048638375229897929442667766411350204939181350486770720591637532029990519588586189719617393538639264712973285431972835128195441313283633558743530319760695737295811700564192707148305290183919435325757892334674798809387462482057375713285933336366146103602520536842998294114397949248430392603459931753571372430110460758221660504156568945608234124295274382247392766267467489184849510401756999326687359243671686798014385034484394218866893539718875339966444564797420817327757283399231596241685124219022923012918806025760461885306802496938102405794458370939764632665989041025158062984916689295402877278651605610593246557137726754116946121421287598452026412898937312252396916775573339245988664653546205529580330494995246096906333514318735067170552658749584490971433694657943765870242342485837876655170841062702427321550525115447629637821786239968298394584083270272561036419846706163050389591605495469317204292368985097554434890992451505628038694187169444619296299084623379543826140297564858157699070751368981134493768810810250491776831585931523153862577677433533422758499613057305131435673265219588412990022223714713480709659548032379143987117055889902993396850396327329998714315801166801411685231505912756817492555838772653267134849644505593340948235267901751173900691501270644619183241664853789888259949914907760440957828112030031788500743914615330405662134534367121205940152197890427086740172580872708409456996865345299365924554009103637914702680181650851040887753492971306931451934094139144859341514742366506582387164224962661059934145481295647899138889777081390339217823225856001962959281253610949985199427689195037451019969018014197778374613906222493000371208587694181773636119025118895473637347382213070676530796328210978545692975391592347606142187363038962402635906172659298619121118639717604176221589190100960666578936087522918025852960666889162936870480860806340893257045462910904607231032072522557278473559826851425015113291476378678662446259819919914173087230348796343416615309119034030328696442135568730173933623594939399960329385107006173685162667346341489675006482774889925707173217540401279436132386897762463299682090530042105666739310669542508966202706496379907980781262363859212429586816853503527145772824191560807295305241340534057972205026453564970079837275362583335365074415689543258090711921997459530040927012525565004622186412384534822410497883444174514792793504314188070616029721393089769230577087350351300821764087074745910929677231748711573354425474488871211461440417201305682463414031456481516666348972841454833621878455117568156641047234284617770663227581941723724131746496927896079222416077894292510476566662032177063717175628215967059295348597234791423001504008041224645895165513277515470317906405195661412769073851794656332004684286982801014361598854347125266227460997911189501473753443565544942784153756630577735834176660626695764889384113850668279156688604678794094763323418425007835757411432093037394065037398620407811145010669461389506192301365385123173130510387803010709210831401266542773485687903768934391435399787545821530805486932944073210792693764958691396163289105020664516518843621657379870983353890604689828563216307310489794257638293932084563667909663104915917831728973830869074789449300049748927697823666572513428062235676721320345093447034493193795812559571625421216906940377444089059846890532627122944913469209652175363023493781703120635725275716671206767488136921282355237529783533016449701185678133209210142259133228012698072217930013038189849348567664616509923797493469684197587092149122217810811397732257846936093845818002155801876589605794473823553213182687994281889377227804746862337333425260667173177999858707272653031517402009253117330805246906623096363029523050291731177274087894761363294470199999724975240743794066608528131484189391467641695324936484837991743031674780142821759523115026517038070693779325873007302396075998923517046196551916225311628857418850581527249920272515994230419194020394516114414904460763040081148223605187052754451314996534421277938036463625183599061415637740377645496559355888969137220794128928825870606330266926629415116710395692777738706145285798913493012137829284292254405718190349058146223767151955616385699922851763540882374038192531742893476827725047743763954664208821990767129914594245304464889927270767565021331981914723044224521538355854176558960353712275056571067924404260462709892120244299237895107303646290894590842495831283268049455839773047034058534585450750537126801430156188350980049878635443358180717097494304634015479093414992184212346699801921179136643899838223714843155743465342999164003528158597141620597419188106989959259127025434734560797281567948043792586324989587169116308313312239526817662766450122646974570210025233772095496998660394537468212027420914580577089060039023219066748786894840907787403685239403799301727023674173763454476254111323298759458837615983916738362360085786528202045648508389472130537036324310061327858940929057635682332062509919091710617090597832932000933332115095214151617864076471208339534448039226615842813421447628401949285176174019805333939583606058832312192602266152219884605803518969054085702519816248002909930732459744671537922702750415328571763174562515871199124964495390597454190029373411805739484327639112405426924677894447058421694468889726815903063496424388797697896223859876892500894387321753272133089997935036327377484081788461856005511481919448673798614100733976841962049974189305298147746179286672587459169036166668646083885058252007811788795774664164050487794454413010440299168457917118958935409333901239050839475858151041970894533934902827815820332101039402464598108955267484071518616521659827933841412577249634877324449344329945295905005210074102527660740114977799911089307917664141243973284641294930407445629773826822613849011854260026386194234720904410079036099069466254259893488845775205002577814384899711282542145269390686759172728922850259325232442610086429749529166693545923920187844959451235998077628124979759450748874807915238746000925539934190998110181402896505392120149439609198247853158495396643677595508858052834488363028524112545824866668387820682324730125838938512439232408821711754486856731807199107343706659210972255222683734910105227300049502331621708003517805375285855781209721652335272595176881467476882042362679175062321182576201862978711868776135663490845176073637314799048041231803909515843995684294221696587708196983839800152924849883729174283072261772186015706547442565726770234221831531750279666386458633287930522218427549383241268471926765137009776277566275041381197286103994310313482491176035105027080043127952884242502577138622716527697594323969963850992526271715083516629049639272848041163663516864905046224477735356315537763826432513825736064924216179162164935799061514925144333007640267416800719864010258158043823331024776359058869317003494994008110498353976187729183622410125878727024403593238347102224057235274446026677531660106196907854810125330026293098498756389741537275507843614444750430736894323406709681559861054434845867744124081185274471343161046803320204433964610242889831514689767062157609868276753483335747173438790821177183272931885718909782413076341928559791009732665565603199231259413995838324733222832191032459643824163407809189457283299523356470171796353174391534468657267295638674022563901648264441994983595577862914073455284234280538668857540651672334344868759332136218355853874289858740227285942991313991152870775743786258810108448313121249653258636629154102525424642439897519548320906741913532106096536420497801051474906496019683720089403860547334513894092592183753629806419793377484930379175739482514936032299610059075675430080359209891511839839672618241721844625840770413289853083220228426152190298766894259683729186955021573859385004678016808077497906216780537514247845889532264154683400259909470778075196640026524822333267869205229978474731143205390085313131182185943651206921408561368430312200442633270422282945450586194411728688661223814679076290230325128798134294525168429576831979434749154879749806963809441085060705473973975866344133782593808676728805542597610210367572202442195229449701279799548526188882192953803757033305919089694260400701156278676638845845290902214477499998190459358184483975101815032637783140975003545840051895191470728710126133804832941581977443569787019051927412851609662690112424313445599291554426339400941879127606910841065877118027615270944960774828613166968190694416665366967348229342930933052698013288933658528951958991930679125284879880070501369747018258078716154062780402946849262369354611856805276860316994379780016663900023304959727781417409517037075154342539059822714770617596012534813097899454758671353929108443927475493801954198669591240926771245403467771581037703384255899953123348599121785489053885810202348839275010629493475938532599763435600565155513498841156817568770756660997236714562291183036375535645405645540457251280659060727735012785860393025198262017940306869695087461711654163248829153269732439518853085789870233797196979942307251873865699151299885070780028654972818385964406605177564844108023370415111110020215209567803127279036652216767321586540421247718961279241642382141076393937107910132066545188373226372171180900152304008589738215885958557233523300211327092007919095676222579708640226876526084321112084850111048964655118934539772877275996831751872277862680015586459480278493289937534600482643172036872586933172991459936373500419570616377723654996130835167950618857997447068760717393841178953749686870545206948569830554547174236986455111493286715226076446762420970456560667132650307236861673313056467915924589506096679790819981958129612166579302855322113473763213195298418647967011691346469020943664969861604116564778869589439812826092414708256359822189877072623069379924519132446700952568236880350553433196521968947870163128425688906289812634268147813407572756607416545867953659645003606526121978896744825753469287724622936293578332477229730615858108363507706860824804885822533371968996039491811361407168834504833334409005265518563359831861013550799169314903640301877176713086305438034465564655309198866251648034160570585732794504913109619232104386004149346992709155731454655103433537560122786618405222595742144634679519951122678406615197375122774025284854587094699949328179548724692374881909424844960615082967973272582497508698957902603558536419884224276710867464733087701619586338558323466576765172571225195382801079352258687347446931431886696488694302404285219342072399977683303306727810083150160930091192597041120669601308858777753035652546201925345750769820022407015331037169510362151908114679228229420135236882765145305023778692648935968166320772856242993226232950025994487594392191849732549336779938138245100514541862477121256616215147368847816969611282031131595747379019755038155752769246633496443863089510669098382523334757066506509584216440582680210528275707845209604420944154717322544565243689615442346847121141180707483591812855476135919418481900141557018031994953664497952567073812618832129379490268256873863561629650902291848687782035562128793888007706357529621201101116091015915752507074741219212503283926578843776080445519362447507039062763556890714573784508969506732595205093319809376334480842543389381029775805776756372677786546421419744111520735099778510605682411001133676767228347541344389144382611727915416277543922963442886941371272604327919363928543859429633953090946510141345166503267640086412110600539594158058544335318725298060091727208946219788263972303115937191289223036009436413652269541445039890834278404271274446903719595208199398444005945046125263738324165160388075323206320396752350712771557253988904912166459184583554604918560656526147234117996885997781742369466590840027725808219116118387255382764148170477766962566711782750957134106608596938591094557847309475529906585731067897587572752494778388911944527114364486642684607332810904403982120295756011809980142589073857448589875435988964934105902097438892104087233468069140812167013116853848053528847352735882471076356156733765150327753779037651907088126212495763006936025326197537278125858049279829167146678692971029337154080695394458891262484447722354139257340703198378555149561313009653359569739542242529995588249097809680746952162707036358698269742984543682856001895856407012237980444562144668158848022611783048954974030398285831975197336206860747976719947524691485871234043599832975617359737290219360487657154794506597823045359509727774887641306226807058187751677520580984049437854588207821642231868666004577569572200700312171684180628048563287559647979131488242997584453318371989429028036029088620040150639573990222291942621688614046753419199732668976631543232832448616922257001347500675611315545221975238577791636519527576907151197258834752501331460447265084271102913013353445308050233868889691949516783160224152383406847110558508880374585486325026911752633485032168791366974585775900933930965285186507519931970702632110556086748152904557847540672198764725172291452159438286576205778863362205002456494117437242053950262761892047284858618417061436028190891625365383138156261068658195750693157859505515790347648712306714344305867729929885536649720883291149883547180544202769040088940374792065344251313272750651876029116634456986999423283005260591752419404960696707762334753055184572860419107974747216030662311549241467972564266059279800383422339991948247713541204647410092639705793006124426094911736289778184490860755585683707465074414190807204077392323158879761595496530429742365792707755023058085059271229005475601431217549792263885187713108444830772938512179323767156767172076959529239718801713437955810493780336631629596740180865871661515400661208957462539048954350441389384064681137910872048319826990438798271721052833922539289076751645707353059198845416864525543962688112007943457850020768831956200248654167256881784462478315660027936258760294466095894902920298181071910549772594735559514108327550012791824530957613237137006117466680003930166938643804214908084795476751908445795605628645420285679390618186347055167677644636947866769356181971382460120413754567360652253977381568928886141055385142913886660894892512213311685670947185657572334961524640416029396355596373180045295953613528074680254761432969431130598174152091308251884950034304983117036818958645274328892763618215318630185640093210998816740531544732222204186228159711321108274520028028784975831029738379637963868139176884982443302026567312947072710748162153298664072511226183361789478599351788108503447307863886011824720544294246849454622392602191529085416559086678769663961098660740782144016305268782639109432445365022312291613125133007174463862012653184059587072960231562950899388400938321196142108645247174349125953491502836387531019350773010754030067263525713354381037679370099715249434683385880455288712556731513499755266545561141896761891125596894868129547340725280663290333855608988455610722694410120745855518247763819105261076386701328040538466985247225965345197458925579351489391610916840200824833236252962627977347386582743926084919004251605299236740457283478845069885148957193148008216362171014079273651046350763843560251333627384703909044851086437699159759888000801355646440639460564794449890136874561658416727993346942453692042245976936492155291352702542240023618312106382852389213621346041504688661857917243257358775131431664589538344750176923578573720032071696106815633088797244464126563886147944386579260971121903831171854204287873101514430208034790394577458721273119264761980611497302429766034998867285602095159626144507991576421245693020953216743895863229109327222421576326893930286812138233347647390505224304689108633813822211099696328347304833326230282114070013125225167412249788412087259688079909293927444867242718530560839930494524945092252463173304981329025364445064097397144809003757815822813951087005837957806536531775022298095061096256593050625373307339075325224355029265506624445873189213181486596250793917232439588900886360997499179985654586825769461576125012741592588625581359812091681436800711317919572735785841465155658170929795481581473064492060158245451911707564788322370766296690054078788379330372351416204259436795257901695152896917536308124508684588437350317413226154281899701194675845579330163128901501374740394288250645571671930486843925419244539923750549602449863053634883298315321772411475081983481365190193834240700815619406620665902806311167596709614170778081173366277222010504946430048963007168677135570586522609291675788939652788255421728353654206195852035484292523347183177136679031354111084454665717959965051580663662135317136579294827037098316505876356049472901430851640886681876101194059803481171322033922351666632674134137626786975323875394909006430218401670388369354311358200140935422080005521333421246184440626414677086039303810476186407723582420664588672463951601147640887549162630182490856191778403408415654831304328494078528951600032450035645832663595947409654196846824888887709582078244385671076774810158947091013880468682127394952643539680990535382152949612251972336887123985718080372939071298353726986445355747173568065712668644159211209864170857811729244761977727521341026654540927741775524972072127043480070834023779941958852605691566333174730979874724242631435957113821271337622393841606848275862884729225902660420239054380475678394220006041143776361611990989550782787028528147251384916068435386550800524018534260815432073331797851479948559268265913841065735260703771197806624758165202699969895153145762814344698723145555306566737154932681041594955166928392874775300277977820920526054409595852694734632257858582019800638153807880642680186144247567287078094774892466997236151265106253666957729984020439897536027272359988221406496129411559644170312110879975932651844794825825892852607395340260710457281998942299117794557597891187783067233156517104309898691087637332724781324461442303939480889386957809305235618578754503071447156052528261009341626983344894587192389457103840807836987944357541702963818867559976657356981674447004942551340303290094443874750288261172193624865635824597519193756709590866316378314522636609270574674321205400138635776337593909118229787359012587384192679093585987309448986229065425602450419243737240629369804195803974134359444840420439886090352493049295158027739210452898601832133971368460712651594352674538396104055270055746658500787916467034696618938177068532942986892448231017776239297854909839180521267328284246503652412702827656289209255493553975173828868590757065440978476515475995823468937860765584518946814666563111132826787843651987212417409059482922908843310195796930878338099337184812125666987400639477966897946625582214059564101940369434193411571349141575305235739533696053373121151537942090627454780116452685263838961515978375070532196348781332456005264071784293990309443211079350543426834729092044483020680142477604876369182329592317000584881618791102250545054625470377647441075297044086345490966264005420752768321654261239585313578437172903668812145156702607185645804055165324619926804416044174867839816983076922191290796938637748690081134370331672099170144943059526989049443696432601296714493273906745403296533673271851479396319554838500982255228570808727031402579907238528927924791813956560987372533497911592179190377114594909941959983013369480866054823960711543257921988718238946692968846266190118241142251769475708031391521711533849522583371981291415613967560166654559850202596652459400058696958742377175448530220173944651300244059111196188446775322415459978341069383013076061418607255460565843597994847287958660046521994329507587656693262940278136833156571237645144200210239661353443726640890790635947621839243793259504650291080605001326831430379053100537819899131223481165638999853123059027639551089493298329967251864119593300764787553845136338927129431464459609841774007535273901438817894541537001419471121852415082537988574356211570675893539694454736018601771252611404707016406723691923048787979392270110946913277747882642065388324237059757671026092431424616252470807473232043233367222902103211860847519959736340179337875789343208041277575112673273428968998829434411901522854004844733822385226411841542333471849671107889000321141239468316086042074798562171594334703943801848897792942825882036616973395009286786401660926272902717293531205986819508949864912663049937726104014468549951015348957772276313943601735610149839321024197312309860425630350946911545396886656372260752565069898857971864845755689375365741568892563445813937695904004928561077057681253153312702006894725744000211025899441177934481932052153508538148801617932255572156619081495612025771001153047567214051534625113474529688310420943427266532627543002249574985461069103577442819866932749630806955852475888140748418725412904631714708411007543906837082249355582653290911464735633032778289557797978690183698714033292913263531702029204031488026153575278595476641758119831288850369266034311639177558667690504325668748946028515469947321139189893780380058324453321731680409071873650144415202186988111391540404360021541574425289755604638772341825365416137294838798041670985698995241444733861542148792194311175824872121730416246375580224825984082557434331720505635947832816002522310191734590084565326867527638142192995000451098964861209075486007661053414218068155206609964228086266277919040866631892356197008421227750497669959144291671321092208095080183412023924241209743044933789967909568924311595424407839962788047823107626817259338444346037110711958536773454207490304728575400354484845121446619377123999060450833069252330891026502165997988993330350442812512604241715246292026880360713829690169255291916876733660816226953342817053886612581941531359214110878899304096064284191426370145528778133159245267706218183356446278751324688216074095269041988052329095880385567835656312660859495702661363825427145295558862245202305681290232020059454746816580918395030785796435165056116136271683662884256052686969535987401938119604117494969404374965518901459167786499725749073728818048938260364515456994701347701228753832687980752341345787982644253907301814023669465706365644825296946939774275964379494392912883840449912081371235207607636719469793838931830352857686481214206837028262943037034986427958126343033032288356429730798360580677442187771176474122858535367427349398648991160346369190998882258759741937070782306831551470780707208893048605662620918979744024186723025972108788222347009858512123794195548764044876091707266471053503282894322181767968058282481735068801395868627449750279170086566077733759110074901637459210654367646808708480015844068337510523784620100541197543043615036873054130299260961518604110304382874977330358097182686378005464914331761656724336344595520612840996665360028437095596302602590434373296994671164334604652285968409015840593502293332468778773892775327965374203015186127145740275351568733290480972343977656314701748251791922402709552792813683941341134488485993799483251423937649007060812727642324551113157881785268832573366398349262160384908652271632174061065831918438616603531729197439158305906035437666337680693654943957051059159420846962370485110210694123454555378895741632767420143577223154849618764150783005655499768257067862360781198718904257259245195402977196379588410157026861594697631519181897650550003235290833562916175599427663673744686828527319438680693818033009771755178864154758483174180380521520018322138383688408616759392072445512023785250804383916081942281231335797308712401086050500768403601480927612891828071754355559692819763494343365769354334945297200159282531929091728933866975410590135266538583851845241051121745751191174110129731897672799670495823320969166027525446120287999502530091223762754871679997179975185906798542879128131670914692456005373691763953148649832299622370153770123257421409982833968359492811620089221301418109253537968028584198695926167843547319810315446415357241753049503039236261128215996446780937044358880486499018711963976135861887259176026836228821182642522265071122144365574461853210569058085271382128036339334393707024141343688786814950189704844844472844499427069997763762966287891904616101455144500373048898755034734105106328835099454397943883258410254199936377911761919144060534210771854698905030619592159860612977546295554192309907532449643614334271264107819041642247883529125655629215304815999024568512622377297162368951244638388497322211711528923208392612478626221356339138433930438344676458148306760094028948311500331813563804303993316580980500239680919803087088053850390254605779302884493260394503645538388364870183614991778323574613213865512533397932843213961906967509117536367757314179366773919469900434577603528026627405491294098750361068992983102141676951508144447383582169787397954701379139773122521246920550486579447190342328778163977894100479163547674381447561506868254631278807954388590668509490155860810108012119254428656291761957468898103497135817063418844558582876035901504172702077834018982163993748316964865897065185707714756950051225077245449825382765320142470614396326662799174228796026727630130445693245996136201354428678380737705866057186759212418410312653990674240243857067514813616493696229120905196932016774550327743204500679733615542435701129559845406859960304869252889342023967330271010925816719542547398732548434129067559562096008792988330375241627208458068199805584463667161287050038729637375034364921955804144624061729652009307281780153644304489521540498194472806842082201106072616038479141608412378134660417574676386896954068079611668436097286956047525424575713156571827050253035549316959926374123925333967354177214424688833883285103115797051243156507046186084536699806521907054382953930449320274204503185179483262054296391952236932202645914855611728213608106308946813010888010152931500058941467452316686190029481951029647541419872121161835601486749875775243163046287202545817740822785819343844233095370846297450571118112703980961364425234910963496253986908700012545170417609161396814716938785911360990298818557119852604579287576903691286624143704652353677422393354268125324611348663102868632702641534702665122363901090059861506684862981643941438732083499173772708225988661366947412007419518226015415366277119579196418296582109093169489615521517596732538655633189919477185654321912582549281180680004902302980292472630200261298041764441493334670100717825523940530839686854660731036219005065331061855673735173828132514749967073337246576704253784466843654446099015568203058178441953852471050894613571241729568858156260515595658889056857145634722232543237759536168124698147956468367007059449891347500447634582067609708262566321374184368692787843949207248729024663114340192841521985998747385953805980116532738316749322338415469477382030641930551164250978664847733641419743704719561068281654231522630105032280984155003955877836209150825313124923174719760043475298083335648002894880045729314895769704823026305746829882830247960397031128725036656958889591053204292565708351836483421775409176016599549594855196226254515587402200626047424188963725351407908198383610930174117971977146926901742143933683491293875915307983737733260598302127215924929863705096152837309450900706386823330328652337652496129930230913674529723116455666118093232245011340579654208550129366682576348225501108972829391940537054848093580600303665577989592473472141857507123448031633551139492674060304057126020700768614615673165270420907139645585140320579344351504024192297397890995063203265951991367246549000921017751647194664603630983126039458379615898448913044549729730046331188646255759131151254983140260635376898423671348394952275879631232542330067853547756257066078388446686207409842842859713569276486021989561665942586804531512452223463328974727088875182522928189696408274467261985805648926170764474230666216974117641231721054593445074514131467474292821966437271613611650940093625425405549032905201549428313233022694076733803806093223231968513237245845045712017201377729086301714905648790748601062896870894257263374150188043321686954680782678512375307519733808573719431754692979587426061603626392791058134879488251961144415516554415181754390353830191771298439671907715484590137350636613236882317370772063375894541300941788929583289752173753790320919849850124702281779321524117154488998222674219615036783539879389001678678674150023679103681136279620939973192980387078908858481028398435182712904610610132963372441818036325859612012864125139319680860306177105781782537864494196329786794359946737451651559508413147431566173765444429902170094443158031562060961083337692365366860823426058661996483685441260733063200003607813593876875440072209644213749364910511014378560473483727855207769851538100450389859518214681723138842440160672772732913685871134788263454020575039562056883897190410732155960783000245122693983456322436006343374964536458852668000384641747787023916285392026531505347269155628389493441315535904721685317683828951530148689490882630468781783012240422080417699994210290467255275264955203857268256835122220168886822171087311464462776423183114954818003124069410689809990468891835125055947589925791176370554306435850839267774861360740454159811730504944912797105451570088735080968718889306063502508394545677764416974239298908926072846743758871229645395179406963434479253315357589047143169673471402433978159851795409225366135514210792798503372307698058777391926753647587295689049596587283804112392619052755337444384765910317093067339720059436835011122360106137820243139525494060218307456440878237508009516595692981839541127634209069528194048388959626920640745641751921683741932672548738824962476964032830899908494062176902474891056221134571469813831407380041851061381621263840417645109111906720997710588855549433849207581194495018332405595241506974822412746957090064011567754427789181699704985905725398475554704720797788933394113595177770518002662983337197650619643897751659212380540106595173889880304167252171249114144025816886026550012744131182703911776867617010671297758509271653307183516602350439338275745294877244199721183916622555156360335910784852430591586626176078766210984655179183085960503382551934162859119802986998924658631871177371956876821643631721653613344061719350826569724958141000626902697592641217300051994161219761694639638031039542267690281425329695250425342195684546583001312962574706465691280662397606503674511549558514776934774879147196498448843806760541777504728086117490189745308805888134490156647283399039605903049606793224258175618998139743994583237902050187385962912981104205672373119455975481037957145900772251610291628894256089409304042503860186118819873050528830218362352286356245651802515859607976931383029776520879320827093922578662308030769690455518154924865632440811909150225205321980254225345540032809844297760987801476348653025127233908973712526749027342962361874380979599514928171426405856414069102226135488686558797064101852832666910296827804303423026878393413177768843881363396011255453282664128347117838102816947114261821408515942814685351094502604794391179797001464190894155160292835199257445308842987478677793189700195897573760734025072513611881594575002385213154139359221477566808165014239985967783458023353361220284835695081915200109961084648860174286717709294733392472852372729666914210315575378838231402659472457448964439566417048717603651180419076435520526948468275878441643132045913749667872496196758341492629578640458931047705304230371064616828642133223540130383465385346536776237017767249321550210820263589694069727223681322304797113957784021879144018538746776550802205018354562382227218477002985324777197278385606685690112569704591366832402844000822734604475534591428919116932485975258246658520920152024941125351942461177707267682874974110257638228814387169229908305124453729682776616526974018605088101610731475610672534283752341195584203156038356516583322555879418124625967270352619137711965876619658347526970576308727796915048254424358952199941978280450719182893455080063545187324707194707483370252700842156369198148930346838687187122058019505932114482603955475812250785439999322260644946180285047292272841120220397538344663803726321721808069570937517844290145593326538945055075184519786428693689000542349130941133674282351547596989270771018122349026187412605050215813370712288805882471201048127937438782701136308702257640470540402400338064603577513472459827716639376041351168469471196207617888234221532379854042418978577809603040476158393072809289007443469512650655198498452031753002808805649103533228352426291536818165063707887015160171533335777629143976486824016792087119879675509804655742292203522199680017010590773330883644377374768247506672978362243840884400825137945101716320364773164170475379608723858582821055640870470066029731725842326937632196921068263297641885381737027474290095142469815746560760942104930656121504030637908204672126349730135818577864792905581791515543315283541242180891456928132682965688962841995577444865822529536844422413147192432645086395837368227707100512979113114367909834396041584727049233348904947798534757694882185560739581748508185175019616889716401301879715038581642952179847561716771473511424681558370941962726113531981073036704900658654298241311536219462895370650565756058674496881777633995631484078464784602410039663527853445655503568794328023718646391584270866649347308726147162317165278617210828993184385927211784918537793849458370296524589355337021486696454640398699506856036503496800026965734440963510259702927181653197364823257543014159299493273306496422670606978689914392583697507334236275919152756668394552247434894621100263288641121008833684123590704534802543770559103522940931560512517655556922457014666801886228275871892096535600902402401917358928587813667001597515668580014881061181532478620314601047649376024276209106604797443472951953329347276746988392119267193157111682811459097227680575890569387436031075514448257241706236956664127246213446145405546198133686024656727899408695465679897430169576742759904915868045695997651075637953788335013219490769403108063598845422051801607066881868610593345022491669739386389208301034876469693814156015899083909699319599211740140418244027711949328158426244239737352611659823304161929987496550720598220499241488878540436060031866039020131775020537241393170488234464358577356841863241927370489292895119878581777638969552240577135819419128162100959010626851405703244376190138303663652106648617526635198663153448337266198963566459749928839637631620800143913739178578639910191306038837338099824078300230518398007373434940088364650106336830895546006887681511779456132803063273961531315434414614077073225802554524213400675913265506177121482212623079715975825187316088834068822651741884710243391187049687522002489758645739364015157983473000674267755054189447251735534732546483707139546199788422292973931057434583696342896046195672214050308886018161253844946175059428713187114615137358047739998809336198003032127452636846399127211182807733284259068403615483150281425307532028178671118119113194299652996398580707853695576016077797883916729735782163444150130214149081416961248222814235325562934312234860450697276635565879107522212099300902014220966907555378523405657034834006186619623094722356796965651065396177494773683965424979707608869632346831317400410201635984221881501617668615644785274943462270115050234699704270300162416262929910001901040868169391172554366101942274229816790332989170812858714200577687038826994351893032430413164901027010705145483321252985168841349484013095631659378664675305039562165193443004127736077774233420782831157535167007417658158347373896692463665285448115885472835751362481717624658020491599068369830107173951737388532482504966560096204109522794513794672446744839692690453518104066914021563021916691573602179496978168890201592049307664212120172040133632618640283533360462460422765401076513929990103303743216907999533996156269212365784547956882936788025706019536528163352863142405596351522882222917161765751010595803128623667073017552031857152623703356012110865085213849278846987903788889070712029968487545141211034925522944737259985671951966750873135394568937333045410285025188874481675324506741176706042072172895894898555231741990263137510667758290757171601685951657396171907337296311456612473406474838682600405533591793620022479320107853880078203859629146196772458338768110938589371259455634339958970121445281368178052481523472218102482370201779197898828571292166522100604590245588890053544136361085732471416464567477027247616802292583185199124035636693598557989068701571701392969165004646769232171693164848479892991808631688737984270836275111594935437525491944773903998027971417966485884473067679638486075811964149899971859673557284954712633037212840353799107269470314231828181259415825974400623123210963043403464400933987738712192227945745147584940446866076470518549869088466599820697160230222333525458621039769404557703225363705454549813992734138173421471435259686466160327864235423377526286466917361906276830778349966285273956539484751360142800038053409739650262822049702651817558631002494192543332500694320195765588323836593287569340995809169645614958584560469395124651240983482509187664569505499269301345488279431283676490166212879067929882652728751831817496601532364930797657464905273395863519741418266949934130034781978115644073253836174314934231659489788266567677175541110944837784751806760115076481353949755686248657080291630555672928467505369628372438553465639986872916469142395942206492803565029428914217597849415998035409486928903471890299252331462069066709057965849023900589666013576916941174698010354616101276755172273508261678739541409991223912076744595807096456341871565259473784004984985156035962985580384347658639285267493936645046124880743619276011792359783506002071266197191541578125995967091252402948311244824413884295118855792327696025858112050019298467640483446821310444453713741035716857889025791485073417357337037734710854235137157433301143761885469851121082767085334735197163668015210233699912187009583788027934778668082821607907868547662732300753852504678719000777623226758360217348880050950019522559461251995014458884068918796344328918557733625635132801083375787061382087196209471820359812208988919758380023464896951214108397884379056451769606756267195181110099829427572952634030637865418003452427770699823621294065224223947348829050953127708892076341477642166491022947212040175637534658451786338514230451269743559228867591487823822885861099434691843878785669236216788582325710362793971600180362400413696001878285295386671759883774387756465155883750229596887473113226790345679922801600549943805336446983761233541013385106866772424763148790790484375714206194536767008068542687057032532152428611860938833983114105526449846265923341820180903008092286195532950083097209735166487168060531167108197563018801848719884963943040483629345986531889448599047917489789805580457914630337111921619401014704689782751662781750403684691311901923536757835357504787510389480486040043660770107568065324628886175860676683083395778560696098088399205134788153773525089845825054197834782248178945850044849727384551712644953087573843725046115069556693861931516093681179827648608173014310122766634183633869341160985517978788275880874120656258540415969823764146757991620907126675267497301786891998790681048526981711578040200695251539350290818086206713016474379557788226375597494097908070354161954666764355037351446323498203761379376450901945881673978947333528560443062235513275038395611969865685032307052437489758675328379585423833562207974128382477439080284733109594884468844485370785337276647471154537554279264304928844365393096435345101606396219464945196001340955971818579882326911822427481856476587809532162229155695977340181120377109320135044827592364264138255477743739036841975086410314128443971866342743876801391606666009703496752890661060562937833928214223717225055830694220300532583537100626659604021241139272978149730708221466709732006147035273145540985455365556996091249490615168356055420709357721575941334131196022499903802846831476932236507998518087802310034638648207530652181453590057634532625223700846173449214017268216519261059416024275539307467296780715984367840809264870888081937851851812049849413890488423002178252822073342392864141056617445990852023907246171585341039196214375025853961082074570306275101126987544462882447153874113327125519493923609930713886449268587960269748658835837947562656729850159213214846659142380324230770733718658439586916132814851941020534038696085229619254769422323100885733848692223190287846417162879058820924643090308422473565480687092028854209555187455796382022243835665126053652998121398383618689745551625384269738025193750553447987584003111592195738709107761600163203093409824847212764239682403575315513823953212440688828283931059853848536341844579725832428949676948690318802276905837425702436832745721283233253734569179134989581000247896621138851490009568970050349567818673376009989827007359776034204489065495899271776336710086795100084699329800699663802890124559276430881534392718537763832493215844296291584002252352597491437642805076182262344128611459803016998469063833601541471227862076835620231580827667705308373553899223261813814204409421350787984867886784243529817196987158864393239913877084802961510115058144343498655241399000163456157689681125554568138371835937145294981775840907315072789576605230822017512805903729845775163818355492206106428794320558878024655406795670429598265343594437527599832406560951110330746135069963926491449402925627563936498809691819347582883264869367651841850077795868678247189240947962747115253627006242079911420813056940443141078079091356551669506089100582868981746365467963057820584900867112077091866506857188157008586275279248701124732048498998609178690325377165665554001431470316398143329943858258309185854511764545595347326031123500952953432460581088307822090283465177767938914153148745617988190597694225018598652496549358218110897287906635841683742641350728450407896271538002394995395609533561914652219855597652389568695472191391976561788222199040535821574390040362709530612264177227520164847135550826664517200300089135666198358555464773523045901495674729923336157529248117112754142031594965965198788327936347730417286142842771006293509907558915458476133783875642457760936405463571820915881556024589805709512367778251887646682003356279576291839066389663184907804088082132181172793590476192360094418132229858364528118886553181429937472416896482725938112954466124802739036875016119597206704202453675282652098880595109285186082952065508359446512944177217040108500702508081854520519543157306514108541743190208974111303013157622946967928408551354048109351490805662849975145530629809592798396920643483817843335412377212569832277529648609847569996879455854550612540667986375843704098463973111997376163325296487213489803549479901238866820326617797883065944266237939331947329440769391684494336691000707949377834603009462382878969639271610275196970434524774235033943287320945230704598490901182240113184946081662965705582058985372687365004825091554397326738578836878845813187452969791243306048091399690024016918897141479057694194972160712425367937492794819540351372114995708306067533420740817267902131768445250736267178131688862890856118018768568148362652746675418424052016200121733428832656243478973057943709017552705088330904344079672310694073721270918278071341869953274614210411852821979758960341438794968124953307702239440242736950543584254105903953900850070855995394572917541890556014333707304738195395973185032705906609306824147714427217824379317833155013374768141487621894309250585553702659879837692167236219662694754169379691836415919578943678679939312065119654900107253097065498219662591113366140339439998855427388680242757899734977430128685625370416747529644828382899274285205426789750779023038161103141196529752229303194778865207794187290631599992536283507102296108724049443043052881726501250651749148137930441919288787886310520558576499689852114992565754803096903679793084697976565020459234381490607670618439075473645725189070272023401657567616165278675432653342179496988200112234401061958381893941704228958276840043994655147331153716893161697562730946444439199953973227361691967219205065763217551362147818952244132899511513832016499289704175466802674692990788290150466457452062804655019004723996506072078916510229178934547677257123927906652186155473097606650580600992150634399854033403808526922724419601854081931481989251060931184264538594408439607658887961659585378532438534002563231872917160003127147117815197721367287752662428817182052947230653569067041082852633798216379051721855279373756399591242129793398959217407043510791855829391152357999511820578647672334542433775696315182336499408383114534360018857850113433612921066164356205076104423648776558459131986293223344908785221231509373135487559425945946261743597963427375873763380294156910595042591370849363156190453565342323719588880182562696214477247001919984626677851210366893859327738727230642431013817275136575027919965455622770537013177431383713910375843658122552463041557953220534159803652466226648068190248010329738701068917658696280480420020476732666813931105146301204220893742617313076266544324460732224245154391681803254345411418583544421543218935844861632819946769080973268670286206463364511158047598673017922422837317021971863847496925809515204187111702845531954987368158443380584785261688282988875090385513627885511540875073286229842692693568274877315976924300096661135308589498486101414575072957252197881087932762751178649206989820087556996169326031414522133691898439443767017040043422475304159977694487173419615087719753613838489066034479429117318248334216552835068849869563018321192427459115012538327065780925619469851404073360225625193710102300673123010702185187154185835506393194339888671652981322337946646417299969398254050942844907279377255663402044629916270897270546549450816218346171706270072851770003762201408477536256336272394138073909824199615081800889412726799780294911080461262618813233419180929334206941928395998046609252973797604638101232727347006586848090003231913757489575578090598157191727357751009986762662630844209159652020541480867574780008564474498493079254324693636405883575732592680966586703575432596040616410141870124618745838362888713837488176693847112034753739791053448294041526436161145903330234716352460615739439670519759751515395644433521634434640197047962124609416102958682497925226159073758675058894394620588849064730392315501741524439247866621035203287335513939019312768181428183562500736805918713936865579387385792755694686252492814253575056407766437674347024743700090445672563486261112724806626382694705740431592326634616827732779216652494808564168110714170325774453003123545129046066006432446125253443768280112584498979413870442811510968589274960982032512505102704635270453535420388537597966695651206549243909381043741164093306761193763143958741803502791713925196526346497214918329731008696014869555637223037457954817315709334264431032212200098259144806977487849520342099596036332690610937648624878937471337460872459532145507882222325189635742077378981495953306120627256557884426606814673985941407053861281699229332636775550731332611859821446163827901974819333222274868653654289863141860480339394774925845707478481015447822475929515738191739924163420229583490982726579900670000107283348506495187406739325953548733045678834923432786592111898318428018828816139517116035077134695312800679686612060272681382311397826128637992882253762562022845122129107452612154068270223674355133977692636354283472012711989903070490170296865089392915314168170159030833278440780727917517430444095842603648929229626382756135622666918496197247901514273436489226635209705590726501852423422596615328810540007639914351153783134347131413524890475671170563526990344606864097989503963837039837305639652912048450780336638291604551078721575705408854732369459816477725412444410263208673808240177514972084738272861592924975894999387876429909827831036359326140457523924580842624895971246759624820986359703138676088205586571623766233033547001149790918015254545493170414705684679079957260047716152455223325332581489632857117754611359238332102208301155775740722791461403316865767006313903869323480235911903701664818208386114765005455466106956509190604291584813003112152623596691812366004945566374180180083224112101621087909148674188202226170856329162479842019837993184043600710216155057862012681030591492848492165814690579012037461412811290193699714338892365763852650770218978485213952813780923914020334400162586599048639302035207944067680724452384075781736339313585712945920946263934478579708680703913040568538307912780679111432115205072770320282464716275646719196701219324929203121669073409949991034641498947535496411846934687941540444285146990256678606741835993329250157881911720808268753569776249101572534398947801422472608278907917926555737887443141971087023774334311846802650136867073356680775330212015408433692091653016192548467338408142208021406326098343672254719678263344720655454773190023067855582238817437634950576945104764490218888510856094996708356005126006275888938236997267173620597961369627363499513298306610513162586884046660741902177806170546355494392616335389511685339929525187488061303936249009540978250202143694474725102953368530156500964219160933013974820500896217924137668734741625592017804730479820385833636982462481594674419346558484239343141321422650831049339831277163935938516434114585209182520058925113876849590528188186766209005771398376668736528895226585432615629527971051677589424058523964897489464803710152028296056229851808929909252516102907574880634595660116964353452345884285174534862539870372736776948552062507666510766675222835083228709786249315014385158873463952742870006420388667002138012342511313859733975785072936043007040013541851172829549472541477510816788005811751211197331002025467953509354018344726704674747814446334152289126253917429930565713282988886954038217046891803207594260807392198713987597493495832275377677983202873952218268440210764993691334375989236260444338080728381594355579515819142072144778230576776446402847664308916906212858615175557202052729011954688482203766904451791594205318833345948915883291945239295878367544533726537158776475294308671952502194228659295277975425417727575175155305047546439228104350546422229858073178504943804834307256706752395036693291480956126079967106819620946378566110591248462948216824541513070976124199979427202940745861604851973587250358094163065822715109155011807768390736300400838152551411920812841718478879078914568906464658239293152709542140613334013795168069974571870924928008601136538373502464458188772780644895724761376647996060020227247007527303681061238371253757958064948981655889493995173755484768022291025554166402647859311082695793538096468638293592567452258140702802705352854353075691308630940218974509473384884223648933578838171233085971242153364210654131758177252236956265569941517691513472047924810067907997497740052970063868224668372588078463640757855417428462835616050767408229110496324785691756126810415450158283255119286155648493301075741577861840476265050690550229120415553188552771199720572587675738043069554998685388748179665063037207797725904190641751773459630209514995214313416921059373133463952090262261304061189691419182049892372199543906169209694413554799989942777271406349099046760272546959601479626824135779390817967937337752303121578589221598818167336316123703090113934835323232585866446162809699134231326258273447262768907087798125987676174958543159951732341990231147918943021821409959389277531704108526973760384647752429358410201728827200100884289369781913585582945040153757569171100977758341352696166645240313851980342705580791760233180237502776192361687108371240653457153036946442491650608608425322179809157376352016668261568602031632412403146796484472959676696130993106035270890188277976763316439719286781589467985591336573896839975133082230943920654118960789294977334761886015471931243027987260849511117178038647063146394383580070360633337075709636064708195293235098382859491388660780289635684478412937385382503226865853541946998216627900684244680033293409288890579518439767139924565632802859058063279601532276419515410603580567106722983200605951653775267924756545443112281540930438768006951761744572098961706976116692251357511978113374743235805016279664559600678032648533408139209273493609641587794555673655061908779308429951232094497469432623336051574177505560866739058192327435047233272727308572819777380456391361505610307006061960990292195791676158040167430779632798634128576985077282911817488845220995001850945557659373629682510792585462992310936602764132624195714874235278116725348974108442672345819885505479496341194389462765092558296729118080362342668086080640746940033848041595296749227201103565472092986695629461606719716277375913344785447454106924579945342038021123997657476634074573468151200097641321260343032620567796390564647362901142261940361301786029720288209952693218569732018510522516484741784842211781043110673785397034661601367328220668028945840061796319336812467726003421691091892965468003610010733187252736017274432594961322092416594394247082897116509324327021604796507296240068314592654390979840468282894309607868858220421984866751081298328407356847765088825443865580339893420065800096572235669247128749849293800659134476863415190220907379150089482391205347816098291299627581270700746322584527566775470724012815077008682967933042947220714715970504431071731385702823715737942096430778513556796257339850690500035790057646875927537104499821500305812446325186773752420585240236282655575575600860462752727166722566449811063445281089276821540563287462437552041866248475576296040170962662425144271314276758864327377298305137024971790846948270969736280975917501257171287548433380089010934332285578797067414271797144845161444003135116813849723052973659501148722925345870691524296545015876815507444554687483650774061697242910593996675961192432601912566417792543212793676491296897049260309832739320011009077946544092520513906263876728096531068577903043095386425453245143280858836570830615628955765875534139834098342178589170158715730741958713091428687612944912706312237050269751686058980912361316429852490702020123768145678158192826320451158403266820069391758685091932766365623188890232981659377852642918778139407790358600057631397847646329162045279288699485451496500501462692028625929140377176691095368379807732535879634925556496808935119337018219388421735757601410546285662928764032839005405245987336451304969884432073969012253273794034291144829301473502698353538906050570833291825268177797109651122728602748916288425795773403818829188684158605780497557319545364106618058300744767107607599413929887830862129323961503773866595978064736206070352259615079648905358773897491688054462315929791486884700956352313704005805787168966870539982664109629713313748080877778575882143115757833681999938730147122999804143288808227415728471990800934707982983379344891046733689423621747062959956340980803963461682089456130162731402523986477805429635723640728306835969575531214567122724327127462152331334382721900109211817925754917904121042607999434923065403571098691685938434767406261065065218230515816479615062278464651392167767377364873994062308031366482400708710502913173130269714569652105012833502912590864409673719252920582415677331368556791158095418104440572247793890712367023028361069582143670042291909828700330227505914350478444905353468299789568792156325094639248245117735080430092084464172443085687131483583660420025301089376224476640180839897029548538906519550645607940871515827574387515267507164544185859414950406252784641765891955494243329205307115806069193877818377038088401410741430284997799954715742504604433509094332389369241472773826188441596522036335328431526729229901211416316415918914499428842333217048891424060449680740970459498668093607119284108027163087253010359718508181458259466808037120124304240227928375007993227480216859198666366900719272484171976763299472284696834225659839367410459394795912424102240006314382823695764400912471002603390670010007069602682976154270231325027952899390335230108613485154355213067964929363228763750100926214706084828354645217359749356717266823984037379581969322613352947649615426407286160708332374761907544876992587119641073317138102114445554650773384624732667736677938307386242146037443347769431482423122314867809830713246078647098896976712341288836313535056400234374159121277390768896670181495279770973102938453871027796615553143753307665846547545627531296734451864714126353803974016551941071920161490817719149552054067122153132274820540475584258014545942411474711997412495667357770707271764318184387063049599426428749246480180737516266226018688785482283341867787001902908813562692738736247894496899578474350473036640728664222863773468262104351176084677292583877748296463267090167910673259400916484864233689540776651903292060329390266096460437693769613769939344687416537303464723680022886327288372243728731817900089973804441937872284938224603907507507295814363062919580652473141662885630883586604446147030949528180036889323988699080396731139325022715940288513714541394231793290084310519733193302583436858766501971898529795967313824572129299398415008222746284863292818503126098574926205284029630586726853806416532911473755538219794615500324224201900150066326106331864664025506427070572084621513493533923058490566448367245860751496689910268786060262297450380343831515245309929736552734043857488209805966130857591550122973385761756252651551139787544096302668836001731097237744336698797085169579064679859700026712992980325223400490058060353049736759713790317406344088209392508693458536132398655225366499706001942867886622387563567313511079281919283679127306790720661520591494975160462566814579214489127873296399786390321394118380724709140528909339345597458684823609704020194157897610881887681760700411913733856796788634093984199594224467810712398530367126156788785771894018381969472559409496624976183272285813598159817921992490211706349128879656770641277319710535366681820780900434303701778559733408964838505188460825584009263788624121744309498904530667719537840797189748157569138858854076465698336369910598483526248295406092816779850218407004713660152213489305472910875169883136776899370053628662353331400460576074894083574268910116537404971252837046927446243110393279550598352344261069221469074352571998295508737383794117375142631592914097904660704686636554589349892833135805205199860720358838808868117942332898860883022578294412442204167754916913350359245179492285945827749854670613999626502528796780859990794291595987658494856401730021446059271920505348061476133130775398540785959850154180984035968681593891196894995942827942358321850734062601456097362628697080919947791977694667030135366257731363842195074192272367479449043793380877755759745839438137737855131094425030147599147671577705544078865541682768781959251610191177549704289461550763989706290500604595738480775360608996848670668134804088494187126619232939216073534671454645368304398997408551977015837168822198846363158418535379505779728597350685401264890869618204493211799045914477002780220876312038311883263738894085802348081339259126850048036275133083129536538399454060271368578040010773539469480696610659886421841537162092224781593148206590754104007864419968193337442173096248775157822574763196659082527812279984239899347732208059725916281441516550149245756310410621166722188927631659767438202886697918987247227277755154749314571050424921824072449847976989747202180987342820057195594952590782829084638580376744362450159107099854585828001888685019956033585891342174395522497658161252205606589362853335163434017302987904250524728282417527158975760319885078384907770203690922019203427421241097182215031922194870602799714858433262459721191697900981877755600960815465834842570931078739077986878444809628360707116225350329916054946406817960714147833911616968197159455270560970770671728840466092989925567079433966859215340661401405267098082365570019753424413796297594135999178033206532339523692308030354229166501899077556064965569832878571802657807360344593100876877936997002403368647292099367112931558024639384983872406564503069008896905408933770440866235409918971359399457703546320017160489678624350366138797875556513385644432439089139153716981545234110442230166968252110906048404522196215205941619002288685685816266525372166139715433791789468873820061284313312944558712356631171590023885481484398301243146128520031699139881794263566503704193855991946668631749782631038877896933393284358689504833053732031939016268278762407287344251826332751517478557955883443772026775858438246585483353431680409388293109680189027088427265521475135100234499537827046355588814384987264508032345995291650782803447468688270167286247241137179083117642241534890589453631751075180547291072155221840815929853087308083359890103577750894366069056724244599386937883138795161035731387471751660287593174174741378525098217636529027122701936623811121354048117393092256857729917327457352133470987463757941824396212414159266801606228498275923548519054883507796234521357267644467996886406664490842596906908388659942800083015557527035833218843254304757878394840998910214771587758017102881974532442492710363471714324286626210590122402614964206798750417821881773068885809685386122998434413730974034302936914684283848189840307984835068795241252897392717935463403294069486737915979022365239165841760362899850667221359146066585139862431374850255974195087784768558883627119221007634468590327197858001419887914368228249974326885874251454832827053670648360960684657645849023478303978141396048044932555338874547097968224662256309580127513748829179455972477827857905974487661458464905561205907392364485254646722609203136844614147753665769513446262054550348446982142032193477330409612062505370112061313812633592957208725300331235990762444053646696880895164914757871284674209328001805083239115051303467357072696689733394197112679749190567886080968470862188706902657649649310326500198011866322476139591740795298387084685018656159130725652820379199426142359977782769374461607647686699784704850468446523580851448103828717665739216861305560178195078236055730518467797928451673807119479346780039394487485093720778934358188261239366727853509140004523333040210337518498064386199823795773121804441073834343082696475828896880878217051949508623756106450968914548887448095171430252831846190912510026376980974809782088245821410779802048297825961575656409044772142706582893320556502572220306773045799246775426953459022064355762426318751090133068830807954786415638667775450082979614107556649127023282503834424840632782796710700785160237514236547847888143940328822842243502779456003454178095841016730942665477248267771436010408153076067648721584870785781620905718320612665686470428585652381538493296267358965220720543581570518654065884628969608230439166398022821495469164792293546207735455949223309184253551047680255523177912992875321498681969832067631210531007842230142834402504789305725016328202681201565312636477930084121424625139649253857505391062593197266690334560410197588687983282413984647711965391217713431702846089029273622710839108472904468681373405341442834742449747748408216547828238632524569841856761976553338634396332649849487889864298837641151486822666198213839567786047182507900540776583826380849633431957548712308172329538113161423107228465032045249030201665971942438579005220988307815819224681089240480148471150558746347670743344524256141218868430544664662741045752787558391219691420582415022768754541833340873386508643551503271187680237919475359348765854790732748582462869631590381182692376954388471848765311016379883257436485253090226472418059850738690233744314197720995132997195927905977920496750714764937552327261027489844447706238827868779374082711091273639074523031944951135613378052969011130630690761015882929676523634454373684502545878124675872881129634120680391854299994132367308351456308373756857270799972245664962511639939640385337591385080196952201582052867411149798696656287086245457542856385703398360846744991833598854099469938623214152604407507853265873437191815282040474340707161282574969935898527279687806194508647810265663153516627686647402982156411373544122586068228502882245939696540055927341563797682271983407855746627845709677050973285232989168780828554073318706029719561871859488331262001947310020228853762129281763446719958508999393300494776698921830263162596007610354566946358640007757077902173797500054989213318621885689650736347895188109556345463106628607794170414444474886082234263115990425631159985257866622266704668930190942061010761131629439311465243794107381150732573005410400955228602421875564813961771165500589204504891750615761741535236694431061860387198787117562041592657069919299763840700921335028946115698887448859488827979939124359366696408878707443818488827168648323568575892490154286455540829683150093773050108684986222393667805673647641035306186095021381644773908625744311562722814732222762718854304819290830234112090140169068855981665917711729836099947221886093431837343232277625273370576543517093041649272880104068093497796755824128694154344281216180856474511975909553310970149112430075022043344974790137993344052220352571030019588332148767368355445144964141137724996238523672032221796925890549167516953058430264147683352176768274895990027644680023598002386698284684165620599294504969262989781825355488202568452237081387625427922803289766720952216535143841624637299800811971817302644714598487012216658845959465180771535576581720913729308753662195155526927361971073857100788593918032244218423466297623925028130143595896944487100405908368435544858338225278816062291522330900503034204193676000206260344134524801499303688402128156604440014940444422219723125970230548307921645418702797714128051358890998855791979690568049095068293195171160429501369218042184567300689796638935684264485206547980157804627000316519141715988573413950765199196212881470428000546636270057486401826905275954223154350978248954262396807501120417765525241042625502344006459877312453844338156256668754334594008428916585978697841660066036116300091131972812045750044395523358804331286262639746304944200815419874101469377130649689755613420552488661054306009460940613040489551927514742324501552309568873361902115735343458295609169796584851488675997051634955983269682930057359146569997517651539353747527171316590056941649052096769661542439054555253788577450689656467317997536164162125599648852286717388410596228246613711260798477489163536990538559969004744658125196268841236124228751944218158909558642176300630952988344298133034991304743106402684077572047950003474429002458587551233541593959029318091677641132348006920059399718417654891712915380308157543103369582308496910760274851343481127519280097640456191459419765813785320764996061754596142123359429611693508165008646613096975650214095069512761523012141380416838025252029250690621285829241636208273310843969056986041364857213232672733632545666212055076205727232317678812323288731449651155708565911734134624187277547129671190055699279360890519734273534372820240938564009199933052426821969309728480539081772069298996391680968673959898148113701869885233609210644949544767351124899122357787653105567693378529801796910953732385415998764107486055740858047404370260907609028781810697861914103763696060738985610073142863081713128944708486579570045887162929542781543738010963397377420702485884668249169751290625183461960705624880646756887333010172248008618524709090026178349783519605055618144424497352241660557047066631677476874042307849290715363323351741960246170857797563972957150747762830630969545732930351838300762638590278092923263225197959045122907675070067242124354339269867845996466552350131799268955147199943340016920813462953530148965822071499606519822092188810415231100699604786999820325264981358858848382885240382620699224021718716676355860744315355455567602177039249319027371700380195953595729256425504758097605199250109609375947805604552560163934906501859602674114752945328795026003960229649130590567830771579941404186515719815824609681843178450864841824989556471820237290818210550277263608171942376104297454865110918825376336234050738963951827175612246073426198105829953084948003169509490630024155573913209686712270794701526683715865547418601826254454418925217116069771847206508052327922525102553173967621479345381814160557546703113669963752983245537919795024924348917291497618299749333698561022499022859448359394613862036729034313093124786286505414011802138060118827164676289501767299937155810492303291959845875203833543647139594250953989772967910112113084507185498543431655195975179609086972067034469754352789122752227770020827441032186705957070345014181609462566501980233023278571223570299272695609407460205402438031384555168878545553755700548046531754437852720207463902043511041957274300641444915429733352518225463783491493501194221398977441556804137217422322128498750462450021980179469878957458751466467914903478636677077384559143412651327376219501040731688671992966585311565017016056130441373386322332654923381497083412221919018171769612918800724217076625324164940651048246197926727222229318655385961484309155625290742307510249708247079365467883543344809548241348227301727200981268503460876180219207337253767167099514356707083614788511041146290412726154511474947953794225416081828611893898834490950117641804166569635588037804641916913668863314397453925540943031534595308462845336684363541065125946256521456070831837289278479203437699595947319323222496616833136089227476142565517752793925884079119440281461715474107234907349094822164798956461859251377967042979613725247227697457902281940426714057735272824242162831191475340599552454693896754845009063985590754910897118906317350544734667604072344290841991232437402832894086176062394883608716866093092087818898379880512606597184802202160789345118724750150527246042321244346224577355686771272924517982381447625933877021665389756193417937663284418198763555940809986126398920213891624221201175222941616561055143695030914406506825473563722482900039921291791058868539032125565110778742282067044029807109607061006112216414110253474661016844141183325935448302993035048260377955040136021004863956382834322917947403514153310239579536936051742649304341653859720642740835719938443468397485997100714226924453830922996095549570768674173615224686829151996475954763583684245148738736647513565861682727534983882046798843505017672841478891198516617942595464915813283278055778513493144128232808075174895887793548682810684881847625788564942120847368555253791700255463146840731118234596570009860462922931243096073436381605356385028977811490177122043841135250237556765095399825412288622480342318064195180484124659302242920521801862715952112583060608156627011928840708023960102734330453580589001650659262065118558794236642588489390918335487234277486198507846862269493501466919970354362667170306384789893269860546524708671228566661949588190967015648561357788011439943019328394433423223933159868661079955832496627410535068871735603417430983764355748720608634785190962462619751284879451189423037047486452194936977352685561822067085735952131546404232179614655534766937567082417198761162872701308012530966766806572336281896592504406434843414719645629203021483756326280602472472728244943511674150826024912002029462623705090658046723329303328269613625242743324992414456636192281721280245174228485655656226249671759844225414045424784484972073640795204661664656951738448234652419069088479787474626366655407961980296018441998159812401059800077841702054173120744371588170311394167803242150092595014758713935697834257524190272129705069314125801755410480475499888319334556009159566926156159885752258596928983774686816149190406157796790603779648602019089386043672200724687802284432886609114756193476866305431718907361713755673892871308809493454041549268129268032171819601887194540995162500642074799932332958435437057177148302678334356864667566962790713403641881836067808652572570251690982041186797675222302741952658986939202073521273619866996337861751888527773405355661128895373591767880695300576425011663004349128810148885103807740078774246244046768723667852870297289957932769005646189857836587970998934230395503916883421404677305112568044121165448677365368520109855971324450826041880443362115300972000179975238442816825412453272974137419024702117058538015246376265797032113431136042571545109648578543683965187493772350292099796356252836116052290540357478643673735865424041753002711825617552623390832248289412005811423237490177806000506873172667576760519937780749539650505666540437773253084132494832154881114231005967122095811266149312469253469937029022979187051348107754437308895456507972925409851897039288956907030016754924706130421903945641620326907255752345922257298855772644094407269136549749090764806232498241158675787164189204602002694286848560533359023877372255488864489701215009989036880814064662114381754272091369463258566466885617826109154670945133801674585651227045129593365332876908747769142709052360637393903666732012879226373550190956863496183559411924218933043947184914186992843466038724169640583920161827720705096113486042148836240363000212496297785037033587188755461114468919095405944454652172228915912267737048502698554126237160477716042991006988567445599616080000296450468998677012175615284481636572759334262202485578483863595128865778628642692437870167654169537208401300944824313609841498385109735470043707725797983694871626233506620166770026219631356390622614806548782448467229646519683566110092590256881402151962239239726147792661765476767313155626588293128158020751951595836315065915995571525230512127773500783757017602627988180004377942030238619137281309917150295626060498549739801645087151140120186910425713467602710923462737555484794353052879324521923677865223396408952949753086400436069446000170966579361049491390766792197920606423486651372326761145015519693113280357025094241561360818830577574746609829896497580143037366379734759475170574043374024647493435652921939423795189098482922948161613636883339856147460492342936092434544935449299488298446705259241361405382738997751564868872547300922991677871641925007323067072305387186476935588208167850199639642216619891031103978902491796427761352413622584545788669835619087219827038025850559245731988168572797850373673850667354899833943085373163320074159005577728750517762260933072690015612850228976988187175159601942538131808971747306578016304469401167314608368814990219463266513834611134393627218662745736874158266763483460862156032385482207572548971425531294160704473032117548505945795442222065931363021597022022067653000254583799062680152049336084984352183702732059301018360205412499503339035710752162249510467043395725334766226523455538512361597173813121999313931778398717116210357931467422158698271739562305764787322786419445521763642475754723380223626793376019096281276565065333562899112613460255441164579761608426423911802759956104378250353857197564287650175049453572122611312764064696434068056278296135519496397282452174039180858555335817626692532800825105772873498280706935603588930011753385900060798073852411265822574500814028867524811303876888189703650480233002396126517326758470613233040420707270384830584765766856385581585018059491560514124529857496757688035640613648204711163815601881823558967927422496458149244987184056419894183611346085733066703806389682192843147889520043969295927580124779512457984938326266696429429076331179867153096975678735970958311638853749994677285506285127115455438819410417753128829034872190559321065427159258251586735125959356035880388476336552041865370186153685657418189434927446522598622055382172694264728417007554577976132644085446161680330015791175349504458506897393355766405138716063164780823011156821142404720596044416380579335889671348204615819599469119243721815791608375770983595734204418806246059294767822096813161261291657687688166864060497859411418787745562420147535883129074883711656623566632373862433918768083403797220020762170530662278719582798821282464397544881691806142048126449190164351727467803319327148642440923685760241914633572047167710251233956764423713831980333904154017505313979775666270510051637958406146320090205570204348569168605006279742542577106591389051460711292167992394103020539149827339464726092745366722640110147861399019995223230646794565407594380122858147132338798547121186411142008494245244584912634051730109689348552420947532716336956264895969233847911533486553831374269941680804925669607290491706786976278709496132348799806706797538004931369994158121024946442215957970040218036143416468733944914875612217130464297156067594998649215111958629250614116503735205531310229610275411879641262376956064729872341050025078838208249471242700537378555102478788574293987118161213632679635486794074053198338467546959548830361120574979646119462701265379581874480803442462870585418792815646133068110429945361000297027655363306979825995928936087010216396473466319851132575623386581871444797407998977993137505881960654629937602685674239014465910462257104094527570444061951937262707651066548615020444415591977514186220231302562957081706776834021436576488799029995006319975467990918092188960993938903004396284411673478951273386770539725366429817787344058783020885722098571829865839770786861909805458243377130770273441704753334003343980378401003912430864644335069216067595619049087752301673414442585824513108394690751451213814326019218994437032006959379833299562440616016695584591452349997095271599201084398648209989115543377691639694356986960034917480701397554433582300440222094273780016595564624091217317552663183233214530048560118934125721592643097243869946549936843382991750350710296389656674753888223813551604210051505981322330110682671077434895168273199084776257943062569171771580436883892332949036525994703703176292640729292879497377560502051067635930296374560197749405444585828746303405682164037614408618600258419030170831509104181814480489296128662721450361222640477805462854577992112037333897470192683822724392126906900043468529484921572544895247389349623857369822093843112767234111508451952816359044256523253632139530400138054725563556503870524294981090998099824559301273524265859083302648151429576690643483772660465773261576487885742522699991020022042108138783385612483462195225415578328005838930644901539238053203774594421712767262697607496602130199895104935564940656984211002017324772014996233180168683746163015556221904489143842027694426078772378623958181068297525067603583866554260620488340093646492892024941333429253201176747462354386814700280228592874842257802896273380683006880905888394836589797268414571638896489710897435181988777086238468041770316889753304960946614486773219512647965619302466746079506873282950538871688241256638153635649825527984696009522307566725715636280702789384539968905493800251854561525319458853691883831217407894163571988773035332108970066959890591463428438055786272965535500885603623318226038863467712347883394940036351512209372485277215390722661761409489614332848654192201346909454063634019669051816866884040758641551895926921691866972537406040713740587684018808203376662603736434122615002535935733880870612404560774305854019339288973155127580769665849529055604370502177448122529496597763075730969219744017510592655800421354369203335421876166637504477736816632710604889542681564808127570868747083008763268412366278556342011653597626448845409350069036105542494885133466897209161385920018031557078884740340315319012211557101897352824159956684293163114510870832538651898692670224238869801646502276521107332916618820872019366869329574570614422742688211927041971862352379520658429111984939571314533429348406504289248821953492066306764627547843031432759851178217587669942125683570053925368844330459725967239927559136042723815847537023468163299494394497973284180067065832934029190026522074744687794157204828919106657956579543449563025052009071006977127389674514327887499505731081995999657212513805527441349745740147509729061662609148647587556635602700841234475776429276030017359273103897338264420410418011245339009503969357331842539341824709962766530033455071628094911724894041577958322074920352869038524686494588018469727379011519854409463333750744929173109572569314956599163541867341728792813235549687224444701294744648391429882942362207292918958057977071023758207827049459432402697016825843548864757143273498878976329178803057918957947073655794764512267563602421238518886781651641637849373457386128873407519364064355934465453329792287218591086250042326788063686328692364861059556175509697507410042080431739983536132549468968326862878227881369616067186269409992298625992483876686422996174056396522434370729163408476661235774870000262836333808500785233225418451603194053071719752654593915767131383982293727552001568126736370823945279395732033375495564027645745536268310166470007446476747144774369627926576747233962100307603534172555071356882052965457657309983460605026994292199508347652902184573456537554236979400990585096186550607683553084883896769826750500681467715010570832055056650198573088171791388901391190534644135864984049555380374876697472328653571942333861694291748371722689757995921857128079270383973603044815592199116494956909118392993269043116718513621932934238713816142383510664244171114621548318475430750816032394578006964804494682788253064604636764731187588132275657887447648051933892131636936720270543483403894102021039888535267632985115134684852645642260882565216631864928180707365859891884246059478039304973648652909430608703546514183260298838251427358781490382061048720440392229941892093155312454988880105294386157666371243186527498355857850590312126492008034356164783818738277835503063407980383213314989915925435883418927610749774641784395428424662530244966260956809746578015589780033388990513026979717282986809360305216115955534852938604662696146764089152827089324585036783107440338480779862671411263706213456881939906905127848772247421876675837249811435996063277420719726831938352978273321101656325102814134901771948785191122250155828030212612316826999651159359113898954187330807183578601584593419024489705348915627597035360557340730843579276618469581387290773454001572223522549350565865755160443922973903388414101281762712821503377516577432807501997163276351515409942392450378724440768083679314264369550243474485722780716816956550941844619955882053365401605200517108115822401914642869184152215427838315646314929965059990073407081467287547773659277949121459037849971777233301739928558425147524857848308528250326521681175973012726133312725408313895855358048341368481671962546322059187366454097817518997906997612753301481736556990926317500108266403967905808789656648037471039969744392982821229055995637683483121215220788987209035004088260745478023829998977332750943716385024503050820744399266199089697487399289436680371915567595391623394789928654349995759120972433677060620047457766771583765970910124956792617217514574976487535663485671541335769925797046183998506679316999053274035633048796952218767755258873933849977097522556887892096496882533586819040136018540515745131502060437392481825598465081265176305376471750387441437357871573696107959514006220159161618839165221782628465508948938793145857963856133992408568110009675848995167316813039177759302255978761976317609985315307369129190746969154427997561927664156760976421558628178913316306285731824404829803868684958878209712698335807804441817869129435760593856771601425318051330853373757546760600511443359723976197913534314697209331919257339001651591634509490281781104918498599978629463633634089394877443786701033235019577423636334670825996817758592613898709527461584449377379432384950511271669525536286757267324843250675601402802009874239447069926841095844114239212788520341705623284243305968780777337736448189725446749112615436170471708854615770692373083735032745345951931999954370766126196005822833598736121206910962875191819752554118512648351658809147947125096116756791320952232697108446055131394968613690738471481748171639679199698646795590943056461270938229847728785918929893315875926739920958512465571975833973534156917219447553418696965536290348242057103230263146235687108917143396059823037447511000202977826891511514753917699626349402177856518427698464489914275992764097128184008131452626419840554717264027282608600220439938099553444680203734495568750439259884005202245976073080023230969959737715738395650762781925122159270713689489308793674778864914686748634511891363309742369433352003325325078478010512173897575825092397944335957109261738337715631760370837285612525299744521875594208350202917741061169023308604289703335968959166074219533491184025051105821341341760875569630866049323562748419034812249938502004704571096497363490041095886548344271728573087216587014762611661198979785501440453742500467580580464111096470090759233614117040862994441998116603512128624459708344043008352002805142973257413972727716877866017591879031408324178361910900720099068509863305399747594231061190555016550279580134318027123620046553310487006025181678739973119958812918903664778738604810116148932957169918548767640820577572884681916189736999440533684541907118278397357294727072974634365930719203907625064274927234690994609503993895228840698232746490602441035939755816350865332178722976256566791868910766315419920890838730742474675238256216235663699861734657078970684184133874847913127893996798454866676356714669607504021987931789108523729719170102959047292538789287547405049604606893751749138580709091044712803024601616150537920619405415395676950528604162418946218265235638905429812508236879479193200276986110989329446431661976872482586827925802639163107648688017083244451828799022244571383509030413736865944472235057576486452208819186158453883648162483880626673057794732639275809261632696534661131669844048668301284622013655413037553793878219541945434979698586439748368306076520928497142242431721119480699914493495958077122569754670723724540172084467292504749568833099207880059492047421410856525844327409926593604374661925660030277593537470426175657173408080934432091704456944359781775976361957239513915362389359163173581186036004886374346293114167829104457242889460976432423264808222913102734393249269761629369121992695405217937496961793661322726825698146186735326944266853706670883794781216518435495404339580420999939430242858620416789931994006880183294788183600605768688431555026260618813249833249385294384314048327607835497794421170792834874572284219687205105368822879556495181313499427697700026627261248735139466131481879421136834042654031105209891043528338489748290431415169023641555932344112945045534574258623204890984956944381382012506257258982019034597799464608569600668481423049128373674419234624206610195179848923860002619455376264600140660828891963517467741980470208273612397562874493796289418294050826550373680122465347400808278046193933032118807125897394152921487567106771737350140357546039806588363291729475936465086586541452341638656484759166196160620171539592861225130784867999789004013651663404048589551389707994754349099727975544465037012828674981233627508763929546043855419371378928379709981011591641278506340095337515756218168019174031390188693793373344299808439899180051396449692920940537245287338926161702320471305645846736691120181970712593797005792759540013145822437439747458341995800854158255357595505607925221402882529384976635414857471329075080185485679241479714886027673113139271376111315310009409710116901530791845327205652966707606034065794152752742119929560978211158713635391996769223633333118587037945237564995027912197907214254071621759135980898354811094109326356785550562302558183063422636541225277155497356243682346900288921305186151262271794691838988544021020412782905592542961888578741752226293636010093635766447123954366120223684932408471451298268512773770330388421980599827497027064017273815701839879176958249615896305085077246932059933224315892190205273364002860639866333591337761166028583720819915847307154618348006196322764593996078173482508385862768247621647640280665903919240033553316357046086739591027146162211779852217485462965819596099927365005946406185273129005079908167063125486873168843062730609635319430345172824227300007106519179533348154585753219165106891678169779374172543833360491580574473643435254726481180122829456834283094873604138931547258857831574358995813726163312588039298942505933969581046314702365269991807512891206042323576994379322794610203369711095101681547937625341361256495926114725982172419538038730889207026620602894880772264085691672985555950914980630364768948547748167919599988301321778955626062636597589638401101631001535047061310373954879935196387126471878554477757197322505722890335194706256685165287055358140227559220592952008000347828279014223151879616609132127411428664125945636741166926551943933272793119081985148574563898406950212434550717348931661160955678912725059490240032881859091837123545446346547406343159486217487041440800516187139795667349845514236641850348710216168662979005226252491582425144461208409613941812565849131441876461428310264444880993828763229370148663525650035497339664077895898249821665022130549802181426428250824260432635576675313380204457914645722031057945564673249690667554243296212380022166216391564208448102687716065400519804047424127550237300436346238858986212229000130357882380611026991113376471473802977148466636940935241207721778376436573415836453430757538270483865270743849506911203250837947875765715222905792848167907498015669064138428282814481863061397979258292750542801520335911759999816505642453817139240276256413081201106722830769600155665479812348338754380671333937233132062230693932736944882874454154746276601278185299150539295678872068376352431390746769708750582808512351520763368202763309531870232887107659038249025689828699339702327518214580278244204165854242916802295570693349781398080728917858371516063240426380594787927985942796928582144734850254027546980866688029946566073920629104329004948829568926128549293682350252085758097136328664049726927253063007024931974611698545608247766231868170586566820592812300867112792331548916451411220253765445785159332847056534959104789277751091190344565322402952390203301467163563728834506728019913139471389432529028332913959295044733615748964908485612494645957008412558140903771462204697312071686775235316650430006956796759891447162819352315603411214552760484661233883697457124937245376158530217923388081284307651848333250368115411878616380143902880157628863985989810961917046579131461032497453294281043954386831594060957516535969365086441591909849938690185589415691608714515886438694264045395439737758824027757948440387379776617331247502240536183773876106467688176773633766595978612288106718909612086962734344219128807027391424322218246211440677576155832519448815471494869134454451951285584532479218416192561949311730480229247211727662035693131997476936739315071474355471294201789982789046735226325698224117676242405251517418628698279896047256925803434514388612430979146015397092044784900858658962044554706520877866965798881312479450289174407979342646842698328361539178456550363892135348180967079924296617492831721452884596741079382137312887460906826887521298367787450591612548670481625104728200367183847174104357547307577911321056516491410679438819840487779481973917609492853083363212417069975537936657659370547132495105179410500994428744200240467938955386355345697014217875230261736960621391980034271045327312150553659453144575719602108080988862627427192850924529021112456743052521229474959407894825035139260170466953947641890498828459519553681696500727852183749150749259603408475923361309505575836779821094996589334708259236150083125112318762608833082941126855964588507057017891722686250843368792444691428678960827183153486625844099161434575879717551379681119574045444975279228188234478273342430070012444385124473192225712992440698255512765838273821696732213152615120541539782649087344324868843538420724466876057543736982760769322594833622589806040416753522443865123593620271637691488039860861930750765353520624731745608067366657056916937251714585991949619767807814366194274021223642651760472555440537387857685509122359360092000530789350912701831432363061786977806873526909592021859086807894758940559970532155266945303859486624602582974548903911832681212352964698387105381012170353178519125961343964202128819197160605071383218004876622794137982078321143002799851074358469423182997966451236007271894714094884810905264809976505099602373254509323430795206165592436104744142867529561147244338055403751191029273487757571815130401937761680134994899389510234598251145756092619814733484044258695447029823115594527354395375548946345883884923407956178032314313766178662261623556800430665022877671332745909746564108816360842660128481714836069057038641133634067222550674586310700686323260241340729619141771345526202168318905792193940939989218382144463462743795547099427488357465188717909945699560907952349677456396055769740226029140187790790634087102783979299336047238460350405940196603105737844005970273599596610581428136039879564978062010515799171357417617820342979285036224633928122595872322887023775668177655377781385850479841555953533141058850483691428398315615649418818918039642704893428778786131316656947627807137368622670670883413064443082963035395377123561589816784149794542655015263166231913414800374379876030277110357149817454356946471647004559600651659495531639036858572398025889436056317808143056919341363239133021891049376413345108727228987088807623619112581513551715731518811507326996811451412725455457202696942539877884626121727897616256387549179515341162575738384990107315050525907271072620794587585027481844237146561037441122436604453896913997005452815925302106086451677901324823168582525214060737374858259569458652986704912753945626050204710895835108873983741227101463318535666819804173812453073125922405055784369949180527918867320193043213059367263084897958082472729557089186345138326770247095007813480420734773647408079088724189985821091846338421895042735027608068405806690017126076525680907286872692646981876016377241460229750599845977193981206362940359225307107064539344802353758278590220570705297869257523961348088585950554262498035189166891122009761622183248003536230313561167510966851230766717040023268587985971535323049051143035037361898168177578388498462064858245829002765777724570336476442878047384118822750396718036482946575317388852039668478825308988577988594914254074331474108192321849032937154991047362171999699044006821170601091107431618398806969042480815443706241291482258031095759942160301729017175117858877671207855183889701517318961986910784180542563947785643539697547744921285273222744808304227075748093447244049258783895620634820319277295704285800531909856145221713481091074168409398848472695980119606998736002492695847679438252516725467714952715182069196615670809016523148358261887695237969410184116419370667436263074689202723768849525472537384795162241701871067650302872286893734541863260841098624204120816619313496123637596025290624175465963030351052511281677775335859408145793015331787727114074715723976291600802222816457233420306148781755034463157678278738486151608895618633154829563422764641522909476510556654618132908710977996431666402304016203183191736329757136254641039440096330121535159358757983652048173277071064454214722321208365367127980517846904254512090136818806580229352260338669639001073131359716120387472651928084896196758547433439285381105426579991716331113717744879224525710517844010639696028502266122580318853972793909569999895444038353420571853150696493031728644766556826601086922722411015229976520983007443862845260245003009317683838116880967612518750246556730809528820159593747516750603520414628867938110252750109044962379126790901251469202825604422055176378413710409782949687740103618706801270609934923726502798317707557525615162538596412938276788833802067818241700262108407417949265617691183307289720374783314083135851558576739822204904598958937874060658919206783628964159985513334865101941555210494413783516587574478815182287696061502452224837615393881548477081682926243361448389573702429818933121644747655989993196300649712762407725924055099650319468571234885958438384170091920227855558347570097889508105623202493776914111147219503458408660510165443271136410293247172022113633993447473417092274706788475296425065238146848933480013380893456864740125708453704616354598933070969938217019788501656293377062157381014508042797932053260916579967818269820272515421873302622624935564602464713377123073844396879096220479618404902039370273688461250644472952492512319241053011642932473477618814522286470180332482987496786094206848785113119118787805704626553382256519824034088854665345068376745443041061343167820614249983000324861897395255794946746873222787889362038972874306083918462459299739382709606765961021623928687963431686468771151882275786960180078583176822758299682035741310037174275341353848393817065856330450090824980635791012367339585046093595949102912647080703705460935957139979817312482545291869470191821309021584288219827280168478808859138066923108125869914800546694544823722986558839275912583904302326762515792085938031994592860658547116529441000818552955899981953076460173040520927219113784341915721069720998952563277399960454114882181776879189692672021028504158798019906455510493295729871614690628450949059978070206146081887388572235414141950982668922135597234519085197926210008364095246115989594991158298902929546841644711396973488779604933527343816619310734050499917268323460175409174017497805527608379797210419689598075094804892524860215657019276403121361908626387131147599240006254832234264342901407056439426076472369115599075219438023370699161891945054313576857810453136316274156664500070917127300968764733309057866907174808910055752595191585299138113892445049509372098139384953729562079979158807809661650158708026296227238667199503629162384821965059459128939091890766143224177324010772554309606343086677938935552910586894604129728199677587380097876266457674380604987053642678307544903172434131376242237900603770369438792855900537392444965157823293498079929905185884999412370448309179461512231033971500588796360410247454321822490532781938845689112259566829366011375215943256669679061876632471078850988624007531352639335324783373089794835599577527928000645599534481408855138194865020130430860321593525573466739382307100650741360382471072060276887155760828057639429491124903251435775287287354153001873381583528277454604458730125862573004892564798828549392731689758918969195691988058259803712545582865940951416506343254235899463215863912124356915686384758789856301651656787649805166207888005132758360906622310345940073494662116063279479869168074168110600497830929916543925307402115917260370957762429484658998536975431469038138649597995478953620932342088674995913915168559250409197721523595130098785080589524576603014009795314148753822655299129514039878944336980518652255929599928474281560655619842212315564200904637331736734133503471517967704927173370420089210856589904208932261306935868053884741641922457460064205446764379548608580564168634045011409397016898037299444651526862736323804773199089188136864296053630547928991116660904174338651670889771083099721048504033221641299058603939618911008529907977346482795478192075360810834676262962726462722848897156062398064771675853896677103585933473446301421115371228449509599718855672989658654964858760581152394539898800597540306633617904910696913566564786349088227212096629332311229660849406632393682278225916116169228345795039477192450606706930224147900439820976422525970229704661714582254706223475981185459004230931179625605166917144430912407737414392773699230400311306724714195784112742032699030178058772493924054079958549034647831279006352535617587890922555418012584367569963458890657356545316693768924743006337019501242940622474988924494358180591262386443665422931651114738619849703104216220515633191133658011952460110760138727357478090476871838457608482666814942576717892550810175611338933084804103389649192885128553071571204039990880513532722139874931193427028221067998540081753070574418965560480722654399619361646257750857686177799668157698991990189859343402202416419958857453792123111007557021056153698299268722672604683594604820799514399206574099478440878835387264168989703388068679975133619546780480766133236529627940277637898548393199554716625192042137786759197274404503399437425338538422266424342594875163165330100118768550486969299206563647900516949403465955592635014750962569111131261204126744640648184516269283807563966262375678772401804401799785028851033954390986665553860871477969974275962466097085627683952964802525315909898215123497111071869801839529142668315917879750656240072232971048195839672390143309142163513265925788993713353070122073599658774474540183236605532626322805847458900310887984679942551562834942427977659778945537564748236425774567877645027579475265166798748925181630601301173922336397511844333542311695613143759684237324135702710138932067179042878376821423273653792091091829869309109908784914509451820259135739829574351639296666839241194037010752730521358328894690495292768145116460119340216805928737710170173214892539112569233765962389457062916238585890723422450237632292461632582438194035996024388863414224489191659030551260091922392198436893671965534255246150663221118170394950206653608300506740591247167965333994440476356958842721490304170563995548036743804776642615872375917855823863731438235614707072803550101444337580707973235894538715495137354279173787641354500831418508344675259415330658399532005634607077180321480029762797163732631245246699357967820064171667679494997047509631192441373353493866606892240421529616919915517622540200101501689376154322405143714131874268393427619892150425126203390106119235596105977037621474292374698571211799883284270407945959816607831791918843192723305199428572463956527421824737381028272231639433371733208758417725434722728302518121210133691100352402431595491098764504517013205105135886807089915092687368861464022009855947918325695052820431388447746908091433052261593920761839381202376733405780715129428639006786011252380973128245205063798221534287498812596720138089012633027419208240867105145206445003608026616925103178892302082265299441007286552725343222414979090165231412330809773378723584135558570342320462175045915092794040471674880782371222180179789423415611726027481012315146072669136244103953630884951869997989346529558948543178836378837650777894977591375258805814243510352262020011785449526786477274035202071272598364340845022228821795391784522684714251558748584507785774067396442469417002623591014116900966817117206435817778548558949734984847560520041548157208547560633591946050952782685506367348474353221445876515255501966352139549456613869787862113734233905307825324550914926025614168663278694493546063597861784665392864830023136992584251593840049782092706630889483019191833164412449367912992263828921707744430643133287321434212347916449600806353714718469867053235905886418599848741312455088595814010420393115545068681079621874581672272855770225215145943347580539797383170688721931242888616890004599427530209669411721850722753462174544629036368483285126313841095703229091323806772936630665553482810610176962311248260656544858347875018294742311305576769549224893287311717786911865188018525562108441376649673650012303427306602597621857562574297861446266660229569875700932319438841098872850678766652688160921606888912573013816673708125038369636922148986943138301150363763494085223720312071103877839832690083876565088058070619395183087044094187717803910697202323678732958294240577667880868485757551891681750664530707934243580346962709778556243474153574046943942490907696764587580558800004446895112586745593759343411844408477582873742628106262269276520326319015717250962693556318914652839378673715821372739912130944655822018051345400924307899410507243295053735209685076614642240327972690860037623006628036196649433556768680999971802152177427347750133705001738130061885326328002019238530688687436378718851671964758782791321529489097625574151224512229314299245593051353629072623267846223038103584068072489671173274656044168953225959183433992952465373458606559636613981293996546519849892166715393566855203380413634645938794890413722924912478764746877854091987853100239279991952019944252011443560791314242135728276598954478435824670547000236280299147960830349601693255896571560738703398366327024991001546575840114270814911330708185423925517464587370012860604683893327686611993417290589879034894080763023873929114622171153528488267472389930394059211302464163072085328778498581459830677839401467422456108896004424074903714275479820055117927224164668978737931336260987417052682282527727393227088690486515303598552574137947665867991222341497805945765079855708821194253450683285343650371655544397406205141048640392366599404370670666612609211428585754293814221237733963610989126257527656110806858415441715913106684970983843724287869045990497569780821446700574711254213099008262899174640497692565368947775436754771865439941376308607928953491500204394701017424766514179103883541800247018612506571622377380408686076979730980885522182129274201534714469083820291358928223513353551424956817234809556734978708825995440666770499938094216539642707429781602459195629067521340126344309421897504567383006457890624300102234363422044061842445455204046647866937427882352081544632035387500161133751785145201851128251872430050378761944050943490166587153569289104465461611605449611447399312584366040752310129155281382357444060858042744312463134346452516748828387496908237205764904464090558234605463937045146226973511104709296548530331806064675177651474057096031604640224865262451665865813654419629557910816157935074875967453156106723395235469131618104167844427325812251340598349860073930354724769018997064414553441316437666076837923329086676109352862070257512558849376002972005276884336343193817155933709840129173330821516346196230547691049289063982820241028435731360084687346074951156991213472258739504514305934935871145198334721995247070648209083411774322822851706654833090346355577207086305422995911111055612939193819898901792482171781259043023391605534638255605993926374267090639935262485566982093524477273828413359192334421188284544685516482549530810215824412921048139496506304150864946823324942604490443253390334545370663937611271508369707704036800438876854468558015902963530061191067969727621177559926044776152747285086240541603030920881561687105470043844298434963399658697018818918556459072636861422689575199254182185398133304355221127546015288832226244641919624878428275500654975602362898374012980262946567288242196796816185229903949065889101533975873001062872603724920629977542722911991909734843159742343324225798388767796015144871030597405283568289762844794239184389410887045870054540000448752203368902500848232304490409159011879292610147313428413985363663506983780112229146133696974813537524916203986095656906945520058458119638620627890504370531433491058013353505690649488638028688706233838397356969307051557959423468588614875760425025792702336530188404181170180445824939877198684449548663985760832298131880362347793631579579265278436963120002621427613940803569989801702006297942406001904398127103505534774099676950109702445858670848737895373620108447260707323263951127786064523431918342734414092855157127633313361811376037643943771474901002988999292933722512622478462311019826569950382237757829802736527496332131539270145469041061001892797792658171714120545244902305193056366115891728119370736963124939858769655316141773076051146501876635168942433608704334280360696581848898013886644148553989471915097821207135883354465834254789068634810928802984478737224563308443285147244206276917310455893329531396814339974846088684096718616557611933440542249755832493375945024492669006237652963731102086586462818127163880720234164643319040057132247813261954420464627072850471904309862021395262709010360549043742811343125968287094009202653912418050661366841608500038353667566385988987670594030106176201321331476206734402302990612424326507472717645770822438846708804455410293366602485227822911295582048119784812643914971521402332060811126687655844305913173078229997069717063508811570645781515193613469373503794940679980483543507545378397892999149365750451429886681286118090437763858502429054056147373282834369767176387126301280175440570345050463882507611429892340389790755130187963032079637933389804333463810726154756422014338513584771164199885477081171960109601605809017357819750871868961158845771036233966001516603050296827276199071819037265929130951336571000919741175674515648608944980970029223160996262579866137730499318889946069604739546228454330475669270986566468276377046303696209479164407220144075717549243665293210900992069516942423718331980160308813353864889218090910947554798464645287818168204564309709996414308691563038068852092423908372971354383022914928808026704207092072158358192458467288084543034315970670702827039503255148627475566574557472700088851919378532486347554205588860822160160975442801343802637849380819681661718738836070733770579679655119873475130245499020043287118824236313973782872264004794118869905866051975677231219326526559719746689683283766732702767364137639460704235204613194123600797403449630514384998044027823853406053272240468225342492949613051077868095058478291541644219441606133325035614540807052412516500768489631017912712129205904741355972621491391065586015604959485155298658085954103322775215077575144150223015964476071807770744007296817946913074450154094743073679262394554205687747030218695721113756838490163784917596723674600902637875925694757207714391623119172325361782557674262982085128756513166837586048009766162459042135710484980030133735008882641111511519879052299711546742569879970398447825721251600778824067257332780963392713873665888510453443010548540976325613392659999149985054302502395109170767069248167636960851342025690037027728211901839874947789756899673520612229088647265955043284269536380590160712381863260404317461945492512884014545427348933292495552232852233984538500936084999826620637563721139956168673619058811088122387641028956628153535613873125371052185543474482032031125666378478887971467633448343130464474422381188134451396719908187369321958714407408978623091130407423262622415403955640848489445530518518479623442450575077250956020708716291350177410905951485631050509093997247355961244255195017712851763804969186701705876504313436068659196271764828999068571695923172429121126265662496205061187106476437267553496542656941097169743610700808944280389854790848892915969300621614750514224626830614539813758925913468864360527487163427171015316713604264086249542576257842312368157633968522609467541775527753810443380906407748775941306124872256511428863085625224097855121736635566769428183841645220649707599936974413070691116352659479233885080991463427411685582727259012195910106317074808774937377696807917114045374407213704453098349768795051602074150781590968008655245186690911134876773564787739176925235429527518162587496361274638263270406056252586406379142130677506731525318030892618665407191081801680489201862322399884007151949143828555358081591352106737864792718728852385365339436623139276871737873121706732064588249916447790636833623138542834128513538425447845424017805490561195656838413475093894144394875698020262608089657942703603833015446366713583897634327551020687755956069014425906913095737627149225379963764818373428588858570072809441719245445636885030348856591372786241625965846180306335343151282870904067789874470169231853381231882021617337870208449441614881666794819106103370626805955426981393514566944009239590189930062090808068628956448500311690527791988037862725827691629982638914303810372180135634500617303700628038440260532019749923213318226605860800588466444325329664423086402546628142094096287707812159509961107003336719037204358268246826569353474421388172110636926439295699099758576090927906849432302993586003629891740845778271253189400090240950171800977424972860745209099113454703103081591396210238683850826987055969839754423092144834665933430677052324545806462606305386666570532822196590923011607840864842797765682212844354433306578176102329937326524827655048643637199893325427505180741525741441674881932361488221581285804847833475882608393292232476916050977402900337683664786340554088848440796487662907714988693011165168946111201392354284887077288691166842780554751861729706415775976204104459863015656710799340163570040574327859902934515122706463128632746956989736936085136010922672840175480233970973513541036505259083807703087341270733006101857795508357560882751579342301201703014035873679816099112839173803485912056824290982103278735780065243675513556031654864676564853366094356594638951628294185383049695660929853895913477330858376222232600478101257288797064783848177817430186465207755928507770894155919667131083631809983689310180025584416960289243114570370767784911117022561780691262398227012464374658592032548938881419325478669020026139623682603363546631661633811931863670247717096182019529845766863971832579864566059257504694920818071318841994030272870384930528970668627648637226290524181044620859245854137243638132278636406585719796774373913070853008736213752520485475960080984975719246561941114543157927055303900910279543734537212206206135119896883507907453423187741547279382120491329544557457793581781422400931158448780350730647083505243048983141396534685942107897196590403511157304696591514812699930824890937455526657245863057346936175775618441118864712453939690543122246829014935446160588128562331797121097537286703867655231129802007026211044174136211742262317113052440803562259135310850795198384633695172684117487157745379422252229700210636828321817783200155541819242185725059891076108295099538574368967562938378324152529865456136512033964562986394419379505412085449162836226743431837605979744312437850873194791205183720639750694537655881787678200746445534512258227560644617791092795891238155618097013195931077584492518284936543210802646474695095238383758771151825527823071461518618181706437301753020780669803790395836618265499648565346454799407169277083957143141718658079183525939199438707963721973873800463417129857416049354299838776001032742829742744635485111878424889263423372057980553375034768689889936537461377259123952126148695938783844494062447991397878232381084557386436614695069896544777392436403193487916774887819885147246232309533406647111928155121370108927719689706191829085793319905691523171124457634273149965803608074646702581405321660647520132819209057747279054077093368785729422761775261953413879188057765862934557898063975263182760085327610431033971541078045145285497040952429458868641587969791620852651781045389791548761635315627778795710946557066727630460878037258439221293428479983987573396058660974974296710025743036003957047465912743761019568399770792806066887487438178178411277728520207784225976622955188898764057476617205038884046551221363426943789517641738695011297235627314874369092238455779838141579777107349798310678522135017429175253051763235661229034373309538305972560773967180691509464394546884081040399860836810286834896112303202617557396404464071906850306849316441115262077449182625763358476740220960035928116402445565742252946567746932947821466765968545907008571045020619118884876765273203051737464717128064223251660859791898655158001371062579426466541855081293677952662544571340631155230711659819470991028118588637193225607459720684265581190681342336216994685396581972355722737784234211776981404618896376699058749736648924999104870606700244856353820993585872994341665314060193950374274760987128394412288228646861504538850216974997562099019660520218236313162521331574314996454359183006351837487796412085971807218953852736929844318957551781708543904611094941606489685650423267716396988167214985602059503683667661500656971915444128093981453816226894401096343323153878761679977872117700231805005104203294318432435292246691357629998272897016214729619797326482020330640877067566374412352504815064866553225502331478071866121962479718607078140833906720061833587223992086350389463181499340214524506782552145085381417729147528675063420842432283043872087307725102321187908131356886080104385776110577918839933606289894386603077990935899332176108977239251500291356578658507803291139320589263831418708072335348292805146048020228633793547606843605107506810965078772601753130526314782835052301151496490140542152225751954115396964086436680748716395687810594287260595364523427482003653317361582157061446558874415516649222278461363008378258561792229384472911282437113204848952373833721159517243413648541336493943882135076337377362823400656824273612453837498155062700847645771964251806850590138920407983521551262261059716946244603890043506535085239334295396193932348700657814426438220991462268329765389392220859606832934656528813286878366528851271917908955098245537917695496172640855675041331656317873525108403704187503420487801779849486424971700231589529396389168028051984254670853379306813336621629763936580271333738166332551022047857704526332607140510749651502075783598804096936428751149322205500228353658732356976208471032106374623462464809657665233727673739326832274999706015477175558204642656811147297353326193425367653988615022388842993672733948874558870461268619478985998142052110685385319230265391895075134130160051774305375866929748136318924846556299715695902231251076461560144927259512564269016950529721253379369909491959216571913637716932410743770099101497172769712459381767803887019976967626140845108885465691770219102559335448695790775213663174012158572325871781146457851841689104831102114002747656870282004989752405544674089366401720477545233799771545238124434191894702725560987076787394919735313594151517005593680637106294913024662445966088358359712799939142176158726834027988770467092408686744398144348420735968362314135017675966225109877167988903960429845220943784123382918629023617559713316446841792429367541354512109068199781280663976243028448637781227391639506157170212692523738002564761587353953405954218933998683619333396128376038965192363739123388208509941935796031365665014929365744291598306622811379763374794171464034021534683073502211860014438659824156163811136209581121378080953875769823410986843081052567671019937858113404485074666691929081060988635602735941408514705127227253084170490341643797635285262578736252008383767187770206427941365806652735620073019260216322647427166115101228554064404643842059764633270851150200491381401740996938775562488876476139673505293930884552157321591472586791073130439402028673201232632556220590407844031861186982401969938773365762625099216388750915047524953889195851145911547427273898840485503644897843310515649891900224570501459923364388020809849606258495128011864400132692942973471725418872708416782996387574169846230447290744507719126166501128332278187363180940727856878037281414631943355240622077134530871671391382970389788547713229443606130074961346939648106045680514918146753929075260558609781087520709521647018872036225728845910772726181459115401626304236369437639718465107043472201860394527066228648836545112470282089792493329506785718064405225326327287732734616687456022473164986213786827159509239204934623144671249626959812909582225922630184758521245616621725706404576528164288314703149679247820250878280178595248525188858920317015174029672636665220341105490524989911896342493931958902972211479438254866926298476697278266646217450604267479438673978739237180452444645648107867246546721385484490857714789223446824529242959375600297496243035897904625803018066715286957008592454886742437501256405035246985009706459742776838154101581677177378720621974175413626722067424790695649957646025667710952265407964515289059900844839855215782522443479431830940869735906383479797785633192356359757494441737721772224370157856213633653722634745848903987791891785118963225341123066102323016734467813133677934307583958094728009042454691151918335147619327794703344633385796502850974168563525094942194872485362231192113406409828034142251348011443199071229369904886881013598279188869457985445476237877344192301300736169348067823611094315594289856817592570530232337084972266421341899549504603902935848275884293261111732263150401813721924782091237700475852989502850208768682991618024836813575464171668388300602478499628252355659689434235506726727560739972296682487302285408450021149289232547944581987124459699463932515514616947584063691699289550996674021672159204970045123076390551929233791666797995780393404181348359615311045580833288914891832961991393708080880659395381635302883325882081258445420823759654399012480097796291814083418302646232827543308611597529632901407903470948015705464899526775296296639305073789994094247578163018457165855763015412310977713980400292952935312070216262794268935124492539547121008101739595961260339996284997168979163817251309730900008625052319093445819244021064377263726851408441216567281609470034494420943028982010706492363433416402569341656724313808816824337384136182591335651805971558402246741898180379696953085751586721206313644100793363337110694388217726478008221422845065668759753710838913860646337818371261847971027979707928650535749621830308877212722157115469429703535048284319866911703276751021862340599298273241215883163363484691765189676918913461042606627047360740423358354437730018882592075462802396646264325883573094997469135256361684802971927247996282521055634512243705007227188612064357464533104481050674483403042458475821547480730032371265954811695259061438253058824621043712675217521596154416339751478806057669365090950547952861379939189633944914244985481895282799025172076336981399486546120004922220661525809525949421248559807198975982541783343938387381573211191225934980562957901477813818247523766210499314886107862430754534080233924351309219926048109486977344154504760826636950604831451071932713014091343511824227546229510190799889062261034588093947362591219655258033945621585287781605756216044345687825353231892637055390922010411985110663672699543170093324690395332785592880988908691012017877417932668370044565829107169987267479450750084503461039305728268808435984122514729005355199542103517733901365660749468957776766396131278416455711893666058303913019836917900894081970296052375997401109221626123972012737788047770650537539220962599563176918080804070907403086427137344175821569590906579744266096973609809472242195937870899997501336749763546694480959460523632774495569201760910680149006136806221049077434013031148625399949567075850399730488128744278425681545672527410048998982085593625714321942631613143184179307910705981112855299848506092797121711925426809326546649533694628584232688750592617078032499732424444664664501598226330395007555735417643380067919575797155955078168067692191883914121052148708412119268004157079514194496901937983412843961688342679640395257692051006161922642958471325080571509935295765657261918542765816848469717628053732797121152989406532957183723085102537010519219097529149581709129628712418956889983889667902532195615240936565241580087937241162844034489853578858807006571038583295725567997113850343655547835974951932145643342417139878218692585589330258343992931704352022552884253883111691479974665186853339030479767094270328280500426683604416088131477365556835544128096767754967561942744609874309969306354171193314031396661798031263564003766233709888737268157220670211274327071121023644409171199561321014808826433014494270790294068383710335260935502665524268564250945501064448482503894582616155916394552045110379144969093609492306624096775025230156184146120696152427245668037217534904751437536300010301226196695469688694250879987936411732985310489455128496279478467624820490034227436526683770300368216868865081271560507708187859358406506600582955330662003694842413553804463990340124610712463489977144919352245281541360333587864783094207243839311967013871206856987510838781207033142543114524863177955716464908652806151531068291942920365718581384709195486247071845492326794750246193249156988331088963458853574061342074758172760198079320967929158095785284522410517285903856537285159272623676418099238418192479157178520553906125641903925819994418742430911472629227835569302857334132089846726650021131466310228607518720603994636724136642320328391363408742516666212464009138762701669215799230504394023619141355292855452742320507907567736538634577456617204342963936620127089774815564838772913979096598934455404381690055174850641727413245736316612230120565533121609305187658504624814077348307315447437388842677819277059465964662545335650242680238577256016163682643281946404429809249104598379061501952075586374029486407613281905362011538289526353404068560611752594395498339206924283274918915965971128232513480125184901757750009506003416997347578930763862999067830148213181805986415747640027676487250002583194884597540363979921410159286724513349521573128006339019482898913020145009859541360749411642292217363837822707266581736107462276652116882248957903543194645725337942364310444801126034471049128660860300178527191906558707358480923000683739683096380366079375974612708825224812599354364633059715693966505689464139898019364871101818966450799591671389547901936687008988461004706457318957949240015906877683874862268796451322684944392227388750966280628195734836677579934361911096451384912431094551639013689527018619722295202082110592561700687799658803319969111114903162892210046619004599991105108732097714335356561361495286914672747230104031144214090814688836729368609660425805608352352654874527803170232379833307121812481814833150271301920926306980191281155715097164956566970448983074402029035755760151021411656451665493970377148778545795222032642584533827459930132320041075981389833897933681145363495750887988589879132363657150295249806371181742149103873215314476732327898755124581422001220737316237338879999813774694487091084792233424039898046743195685332541803786910127888183825815300697216541965236825543611554720351073801357623940373107405436568843616991390334192720741792723683210631761078234283345768253572105840568606103930438482805369078087936620200025278435141267700673228472020769036133688575810767590320344486018217701335031613779827992251455782197269553037487300618240007861712260250050352354857781129417474337251017652715143454057839220710032327489621242865896757973855161109072284139751947805636495472755832273958582179402630377051508030315576288578388687428926950416794191999256865914273216578414516945003640763748850790001514101628440417352949604303805840056942935296192516187682852759238489325627637168190888017316342438123546492634396988057000476104173555139153080259507551335759843421914367630906652803740946648168525909295114630743835719403981404004405577949563413521284630947492263345948026251782630117336278972178791966966876635380638358029453659602606657161532884400215739789549139697207363918702037697983467736229039876767704446802087260687269777476051935812481563408816694710083843195514699420711869753138509258878571713267458636860408611272568119448457640821433756379939175103084672580052879492259965352752617325553931905197690474106395264773235747064128920903962579540104971354369593249604948804345845387488779931384702528190549593799896404216004097686533088979998874172453427511892654451443229421770072399910045279405146873643050625184815058899856461505997373229133850226859362943754803642031654795714904015830263738571224164618227629083321177027957668075670559817795369505398104533115178993448171406993709385955290235120649668575343489599411595213558448827438462771334903815622023924086538991771295499854794944900024548044611455885844799230269440705065757802201286271654301603061669799264051470890658172853919408338271225303131217478380919712479501100556110045946393153777118902264354644471232198937293293555605525042401649950670638598440801566693778463053147609591368459795754868018728011114222965351179900207991351795179165666651893067641248707273043328987224191669838932117635529555780863176779002960665325082610815363270712950693070223738293183887131467030299693908986158142883176594873779404869706000979641684064098651860964762763665277189485318860925964724936700601376174091207567282877607040796270864100873567159513018729321622866940328626010620917139120135875170356005715183066958195101305788442954292972259228305715762166212755317545496103896703842149890987788995390297853167848691366514154138766286840511012785115988412100323943120002982566261513430010802830619545612748116933951292683439759459398680205254934750524886017432168750507487434749900692258382132285562988398100751782654873571128037441737307930579249572131794276761135104353810896992401540015017918807791368085260980040369767778288174354479259442227019823254215157519744739891507533752503147140870265861069726404491398211113597789753184924839677335373628411339598856446282877194942791679529757234722743427109186209383989331602141547800018769092777826745499258199893521430908135813073829021142446458682417898284437311102298529256705504193096146997710151603059865340073892285734692676533380541898570827740613220106373976739428599550021697784482634565486806301340537023271080608687282847319013049954963928162642353043891772687326837915020974569083245531274696608516267523712911830964619995526550924358885966382931166476259644830923947340451510807641671143074516055878551949180970305634545390915871542372408306843370629269303379729519579257832520611812029980278573129805821889592513656927050080359840023919437537394523512465038149472228759289786139847213510594497302924803480007177750909495098996775852889905492654427835196286397852584529357336179987594155936593075368908316603528628479400222190645831870285142915544832445918373549465473198765251717018604548522813373162728315621468203040058581349545345567216788309200108658653160993609644228358992075498500138838419987467415233806575410489341649230468165600743648578471698174865569408775529295714882805731600467114236251198806454017445737732696958354516714688692445035465358606905874075066571423730965179395392825628604748163045497586601301695056775792227400747505900356234103167097912062472736972502231863248400124232267848694469902212628088391568613612297270652767581795175490765427871569627116086857398148516934043432076018998149077391611390102091005301609744591160343547266024967567614345019823012658058118960154762514901920204963052542435002430369361786186240353441671900623711222199194478221335466848528642831941578945515483709438957355001338648834707054918822141404960566679671552239251434708953127718278352143198751944678747523245373658960052048913927517553200605651746845693108603921078454651742801778062479818409795109590619679010422550612387534330001720789444865936283065053680495419604112900849502705208080280638005799154929649973131975533191452020376148617410490888133534578054672810257516012744159754136378408813556211737531321461939295780346165404978478604262631902512096872969704189353368949907811701461451791441579685589903292769879826382089876574870769280769722955840232763874967899390217129044929756366474993169924462371242544875587054155964306754521196038431513550567761543375238067500407744859280749322538027472926202513978463769195608001555694877097453641622849558680991541058142407008286266026853907052155657169597850001331817162025911244074284827379533861045734503207486257668903347112197372980799110023783966499221539410646344873698387516583816737716464439633462350459741171400921588635975566148786247271490050210003959407982018188541740459439340205459794987715371474859187812481807906532668115230917611714330278162265379378554214854363785357590114841882241599046396388315523381149817537217453498347880575997931553528133439771663321136304449549107171460871184948368337316905238341149933752057205745576196256848139363603309839978353080791946373345973790004094308775518854987846441984379216639962010679138350466549533549476978416539259980272395020450030806316503751326424605661759843506778471534464531300833154479042141534247935310355447666129060122209065090721595012554330644880994878059850034381691214406154641301582111052080594619216985118503784359086194171575498025421421392907715963269144071482437908407629562889761096425269029774533354163224851984215165632792049944192040758213836188397799335680000970579834399511128001489893334132806374867386533204661702950436555575341576327983770789960754625490119206722714529900177090874260341207446896284132397771843818812453402932943391582784963638103042518821086247127192699442250538391989247444736912764151356748340860645646682293194183680814012855447225608541351524014684982225138631143794612145405830659757517263028368768971801307016487003998443387505837184289009093419315281762092437299980712225526536136242319908469283046830081983921530830571086652664016007125058982172754840427101704533712155054828448610774212027734885337944406269515353310651040972015731778619742076864836541832716996148390579431162221574342011790474303435085264817498082660405419591183124805966581706067291531668885591111124035737104726210189715039320450111940082580536600183950113585596113582386184314887916905804515676279838372082979280932294962623680682558485659002050747671563400194882149210221413126262895741433652656514013683405334779063121649900910364798215246235441948194504977774463782552199944202852193276321546317001643742203394512920577497902474223505431804829215383675484399838494214492394545458261184537083622047683083829465832111787438859181012365858273026815013570062299720277577337040168561079700679072375081992149172954908929161675206160776463995080136772327354168162322779320531149783535527354261103385699011644110154560982090748408911175317862860951100873896612506056947495153857692024705433575351423862970316961462554968094454127019077463093554849642011694263755455659618053968775174332927269605938088780618461785191948694338508672979735292755431446728442609710047904351789321830473281769799671762285302009629035915570588941014358392655517777465817563290658019452564597170179489410172047376589616117406872596618582356983804149202476894615363895070894725003571587964155432837334802201098949964346519158286179451275380249643928894283940522159572411242476604341202823001974410383183757717627983583019597470777860749828113019064249271778511262205135145273478639914546087504167528800268531703797415635068585779649889647833746975041870268593609392180915215625773574697995261258409764087662317232764063824654794724476947896841247084726131349436155681337109814071757960066243564187920499942370212855196040100483464281493960533127289582992815482614656708746596309623077792156171375179954558793865872427864485806083216586432904719816971668762082795791897685782796193482524610055042403183761838284143665361101982551370716148555419527565004656584087071603462073811769351857362211629628863902788123085874048925517362662111892293066721323435593507343525068833744533448727622222084443628704855087787905044161197315496437504485322022134738097267307733561242817072749368368522186435153320980121018651616917098641716210167998136358488909495133245997163263937537003565852734278366900180862359206244778836191331195769803721665426386672318151054770780132185992424922768856352232036400964933537439993192327455492150223586708463101181286107047109119981383535965547913186277434458948364447754765532091120379009807403165997718250407739467556866235148037321844662677274004919409482861048386974355161011126236460052275952091929980067480098951593814031373638783719767618728837240216773313544030971813031093441649282110154228373586958782512557776900661029015993846480759335473806441429649290891166599078029402477879393914020043354779329091498141483333676581546323310011353185526739043370854465398423789172202220122151969552746503425012439547998677701831583107628498854855901181402795300831045090118096052994356998562259050539826123354263319892965730470843253598901566006689415575625389947185845794705881828344253437442362475497130117114427500544783454972184034098206869364160377700642267928554311915732517482721480532522480863734624618162354739527124525740024786360234932454856924493880031167174206710534378980637739175295918167037851681497064313034857647927131395306880729766644075386016788243101404245435677362221030530573290880072816107618570314593944564825262312742836626688669486939179064559312696273209428078287654172613159043958703899392579030049049807905071116372131442476912564736424571189121631892728752677724223361982520278265559979808664589904025481405063216823497865541847563016683139593669982234959225407820519960695988729585413611776453755869665053998180928798744506260830092292086044484011256792558457261645990933302492652004763845814539808485219815537884498562907060527564494394304185221229373127749086294478239069702179398623922899360858108176153055719466533072055229895014081770018210270868820922964620433316542782142032102252759021269814319994132047866298523549475902536487218044150782507482764756038704283723691322351404987209225359995414104809668287177866228041955769463779126912659040892074500047647415947723539202386803383860594666987772045494807553025062820983705119019796633126526471472621941052847326018788889558559523077601872407941212154689078184091472967831029644009733509153142313556981644493291733916972481076957664387847700081802905166882520732757484469056019786675519726161353208175836294848648794599725410869631076714369426774897819527028972443855918646423814189732699004231038052389379633972243446831837052098430832979831704509393699578384485185505113959742296059552262191586392357981794453593203173326477055777811136320583395574720274588836675782522446883093573006049518302394165103646727942267333462332237072032546260003506408391858585274401422660667654191089644600216752874366289262631865393974254874605829282791203443971192132766049880606946147980545678045958265325248844386368462732961858090376165396056301798133156059030304676801357342916731810514260533884678487286208186853953044661256292528491123490882009271208350108956542967961502982777955664763681991059795872588586098731335744627386491145563675131236567672410133351052238401643147885512788402880940813056477317906747314677060695799365665056423704822715193063672186784081841632428298560633234574061391410646424134312635987319003798538133449498714504133925357572345161292499141433996313390705367812470100280249211622625766021861837569166323031064881762404841418064712478050547111607372813711608519590023379465740356788133625527884756271414754364538578145990274918436391809806471304921823474267282242887707251184079667827463461983229570982926722103685829653239737705691458493507294558926546162801920656796039112811898745296874793299814658423408960060796427641987824990165284092282884114975034073349472168398113975153262125281729212809835476315227870536553343984212014638899538705360440882673467502258516275104468093100248264483952721954698681169459392650358094431264729041714881673534281506016296459157572643798288632051305521145122567027227091059804745923940741246894538511428505235632360816322627174377523792931885490962696280229067097840984957029242766167051749350279892631493102267772120176411777907812986567024489595553462384176265707211938618992795610165925752655749624710671872547167637253336488612949097359591531999737554002086660278885177406015636049735552197989187975779310053187579119091107171491843591004048816442540657328506919535728137217456778989563944951526343656078880849405593449655321363950682563568171146529316797898267267715418546133895955749402012633686816272346819685113718932983193790202426433793933254836582175734817069865337888980193119556520444657332240572410623852017326284784541982317080414888216832122444152308982093496187860457698355820921306966005380493727338470329492467084123800583148368476184362400726880421933036836590918304530935660620655324659863511307446428139945405068502134895551212695245556004575974641210514989179449416046671595585807496379301998165936652194727007699812367507318801241896183114740716369911236321583612302543411359674465410980333620641205642806152349207231442728663334421817006515903343663550681438885141221312783073602764839578504031998790571354167917407788549475036837386908675034633782774932450764228863183191913797422220961377423473741459864486085115834863777344659736645620413181322184455763411700273361314919403504175864752957391458998184380186321764719982329205540759063181727958354149891112138793649282624400008214541424480450851060742110352020541573473014606044221310174841977176873159675839763196497347163982924645980905031313390096292933144483677249691351270096102768141951071007927998712189823348399253700945999922873648041116338592324705125317304058596113157197518926610455645904472378961707908559084831245454592752751922795212016162316520988297542361037453800541011774368845915796770675369981072851951096094406023384141405283753660053709525089744915287254240604195014766761322456944843569185721024613972249008194011676606662151975854696198066293704865971991960755603081399933416113693217258376349485126593198734082850039739746689325457577415328960658995555677330377875530374272672626522045085026896321217108076468403887902353536126833377840122115243514532854279815124908816692571124847273980176865014367650150759733491940210626649107290458592710153211503137921481083712748848404767674079144210076130795130504335806062791541754322752691423256945808964196114122422609767225771665732955134900459266634835458084170376484607707211775051955376855322179400867937932279046907807413208294517388182899886331360283079369449179274390309762067324068326531383670817576208845868518186225339792449833980691561115606582499318028407037874314816340832767953541945594915860458974620838840882962686440994376629327666825582198781631625136416811255347584197939285040662382492998516484780209740157225949779658044052496555339708210199314283797544740110157333459058986751401392460315175088285253320049167613143521088541925151212680718012827668185233022041054421538654329898996956435383200885218776853207377387272432580167523273074159610883496029924256209045319829029437686757226083735680763234593536084624237745802759330518911730311607951988667418350179568084947986943550847811326928119078376290332040043036570061320762527532641380529343494632669361873868911524841746321269752065323404593182131824141018070127275984423153598064090733126348895159570172577692157965474491975418025911768322146179035526016541789705560346239134732506375566999074952390946198618958762406038245668180507556506617429268397650987186031200888907238546210584265404051500548041428537785374233186585707215343734875520810972034786621928539740815709812695535643245338152287501125949606376410917724261319041824555295091731181122886224513482411467059646946404155294772861279010595055145959506001760515600399306273958809685558928026991830158067270236529763935771341266668049362914337377040367045857049441668601553814441696706970227493325312400956778129797219944096313868239192100623506977252489723239626792860412890352621616853042607396460841143613980726248341116971416009816351572688618567146671771943262082487113467942903295911861849834608093333050258161535611979112488056424411224414687596919609348701349763384325826044056448036089469254805519799034893508195395321278073090876137126985669872956969678492243140308277702773878413257564840041767522077266945417659761715366023948504552177676983576402199716341441051866374406178608558883807055959200624646471759075996288344418350745102141171811524822735855716256334858731298441511514897299950634264040487686081631314085101924245312812144069170923243310457544820140788891994634523251957964483646210525460661408812410667222097929660132290769860881210174730827152252466555166182715693074321522656775947405003726390011783990185961329676305380982874907132935324644065541017316215757950932181108830426825245529431782227700695058555131149233023804361883076764629539092677749564234208958230300477101640965955654374169034972668376159255184814406397397802049241242011577131265958650924238960261636241691492801244027383945779186818232348909211752879018508603053840027332678320209166549392121255085815154390761433109949898205498694067101346470674651652701072716641453566183731282867472703180930144429397018817937767912877163586536206702790563506655204342313087243658538948651841072340799116582428963476649171054184350961153218138264716306681522955150621735450768070893094565523550908714752261219786172240851702406684666512921976892464962012615755984919380286862089563520399682686011704484694290169080265846997365667637212120120585194723429762978555517111994492247697175384482422128376660378182469802272031515642218134698877222243231805998479778925961403742314910794872402250189325882850894088142544641298767671311310694949538912229791452461889654073215953102871918459221354576048045048324948542958612413060964932493802157002173886165535775178417145034372554725002837864490872149736915816727812079396778361667870856033313162600046699695135145362322419455362157941316085612972790397489075030401425339127982449053010380610956958974371880600815551574518692774102375368911363106352708885676736029193327927999183818944807345057233341553631299331932639572199636142246106879309854941200000949114763918470878520109326779468951357434222637888389119638032569236418978949215500726034444407707413994163794491579888318159461879158735683392856705808312308391743423401338655729974923844217390187226366510590221698129188655629452840326161290488304988098154343976953416753966448926305054380745726680406131483566744389464259330613049394911364627221966592593163408430131135600196257710508055798105873720807785616392394116024766490923291576895800896660312183120514076072540257617523876981990066708715237286594658280989845537139888635537753730831651795429183467270786260141001721323898955908308772060571123431795278127063537167576104184758811373508320703885420714585603282556022692587971718569290244726926780909493891693575849427114815312718764114777391359657727826061976664866430845828898184136277693414455223892045515824775185433041525444866185984491447087022116842592160240630089157540794616983518412160894242404178854708373526078291912176130076509246701542135659310738319414725360392793207290305683935816634272779328580072919336705701712486745258451147875839493954323990092580237618923162580704502286407357387796894174730031235740208262791509821015167304421215532892420834920805224300576569207866696658405791974660949413061507503169010854929300451149654841381876764102937641438312777476418146526041582941504628642800240376480686968011590283387826992038086708770952717213383431779168336351884517674953322757517828592341746961237856390926700447446750219468471206765248383746365783416809970515033039500432795967066253680064894973764428753283096427548995237590578074688175149483503046278595592047945726482882413008539554571522082528896357647573943224599046315053641004667033738474099334335695709348095390639473141688609114429024239254672637444264991154377158361280993593394825197619576065641338958442016801890157552691913144313384402254226408806821371411081510038382141642172460200590504962173015222882087991113505369364476069661570734243335516407786153199938998135500385259912015868335653788556745556411109055975721376412346637993642007008824048692468089800440295266937416062268518682663834795132829051047701612442155176595244683557447911515500393517145760450671077861377390572053208128640584342034809857974360319621030092450858110286956373989613340261623815813776022603714334372839109575529729144266390289799270409381979580716262163479082259572384553407303986395546936814422500406544118333569894247634946550544170874968317436174563557364831409974067312460828345985635643742017213813761631443596375429379930937667003362288874948802500887396845035397284130936715622524399578801282872399775969975037373565664788391453523105115136295040779034914081144361110124901055904394759322168200028704824253687002487344218270798001141214700791545280952073735858192248684802923881140240086322613051154622011027694115768594472887144607188849333098040831681296199720417863315451049669603585963205144205117968818769922495731505367400536925892881521799969993049426408670886629833096796205459613289366997378862518656320946704721594917982187796159566483821495607425629975340886982786118543193744143583139227727718233262546603709681506828947356736448873565489859994217932607476125853278387495798931588370085908854318875512417717327972893564617202551978586131519187081525136780997078052225247976340533696479070934220082786196637596009430726208785702230278182836387720914908648821682372642637357099202648790980222405780505123344234678464014144653394783301427859564257976146434098237699152738137215990647692055675803293833015042595202252562820709250350560683819096111945103153622392998730377945539836486785717261489301490955254793118262930815152741647360178764256034260832257122668745223453146224172308509067575928699783981906960117704278267481014935754147425048569784500278053425861871491064006618067896518896096713259642425132961602405567137886697004593928676846831475417202627967301198476556053086083503240156916514137492674872182636787658431681898726883396400824834232974501779738483564974254358229563752587761522721059918079284692950184859390808090374128150829750064288214527467838843013057526293431661404169631692088768597442752814759755575231604212415246711592470611905721550695752530566551791152260157877488623544810978277857546329049515853573845865183513967113034993365969827873596154061271883628553531245845336912052459446003635441891793114274440100589891850165030407144421508096698989434073216419152830466293827645483354628647211594290733419655583653177159213029625379577394410011047440284299901279757283465418636702273114277235618459438681359250794441459861462011531169011101620673098984754561473701515678004951409197478593675367314222424520747403155054496747223007289111749592209403389109501987584825808123840534019498927910757970609244142178695692255162162799800443729199837506794692841148703942576229093888303533454988221106753354492393113769427794164605988179827225656729793380281231866705304526599871801874131736016128722386365522962068129571675275940830277871965334365675377845639744463432365180962579331000241991818309868812794427920733396131238274044667272229573140441331837744818606392306748723676635747870523686740067688851768877956147085139596166695954812606432182847589205998617567741902479482886283282097145099179540477907895450077303246268155378431709171128787884918360714638262059257062675834795090014242576098336342865450412629088964645279306103896869934836318494301077961959850885887504253681746752350762401401236560503577146282665453878790905725548953364936943884475275571142704632048778662890530491551551793427004356272134763474183204276763702473947959037538320905546885432752422699836381411957470106502452001699234513504436772482001987413045303197115967200307608650564772058631071942706287065629916960754910038711219471482023042642187561416814687063132971281078231557592703492585250803745566769925029948361315168325653869943047704745454911467198856316897875119953730252445934287769344956248800149766487799179645562275010305001226335750034100363061429711517969801674183934053862194379983612238122025147719909114456514935260718950065951910225332527185507272789781143130048225917855653400140752018324450621928361167301958294605176784648325139004162697448680089457442414694824013172743500200118682105965121568589176105998918973601302907686895641486600108537669934039691310086113508730198133885692607870155622488228025415204382664200341649284974530615574690725425124442278648373088166592820434760487830786065377295148474791752531122122016750664862322761586598936867746462879760018434115683021784029776409197263538150275442505758613020991340991620437118525225237199571574927413963527632101343607976856968034534120285129637370923845772593054298171712675688300875702684331282344928245326324163673881469422642110077606472862336136325638220028937324484942725453589844791283468250122126854507094420241048562000903611201875637301039945932216819351016945072334043746133964236026978187312059709244548698891353187675896358084036531255853838373185664068858935351559726235953622514073050901480927070778845163603309952593058631819693211906555769347248940236367872616696058666771727961911028216961582448601600307811337868325134789346046849158435177333626095138329763096482446195852613069358508000056756736127562592552735159724566326818274705873593727465552954267203344361446462462980309059678833989104323029652316407493394452411509356280979908912515780013001510242395474926522670003513198004486750920875462264909633711069563815279461114222932740760767203833136706743856662850119173095970308037223378889250557445624189455770152945342252683343467436538697441111327608445386769772816076268811494450253722189805652823172350826574259180545502566724921867973747750549379477011425949294375087574227185582893513207573642164032408683143175065882183066859700048949971519179161511801794190988917713665975093540497780419610610306356492411313725643959343809674563057833102896884424179197511940862508336646083058182747331032344058039966684183864934065037240860159865020073196867733943270715610309341809584042981730478103466667253795331036212812399309028491601092926097757926306501946405468172217003585543009562876296994677987681047956910908999187431009315321991770429373774517747111395381099007439624607478981179549132365568397063041807438321380202801370858230467863304607004400363863708308491909425221895561101578632757320107732131838131398824447043754405022262791411515944883586684328821237474639877089102185087730882643391594387720144349761368940966073831005552100067438575561128490273343226024066819917907712658966874961623932544920842706594889812657070400647068861023614297758947201644076284415421880692802289223728069102491806115867812546632553138965723546518001193186006710942007217940314406725744246202702405938395159757547763172692500236073596602295403036430749196818568793803309573141045632837724726477565665338934530179900561952785314575711563384120121142187394046652021109307423869603911073238990504303471669287790513374235447445320869023227948929568378703611453332751306172451910159439322707790196862301101588072580573181652883236093049150325154786665262828607166936673679088270420111517650847520486638634945707255282936518707592689882051526287124088591620679036639180478485369827868969456795982397395172816939811569241294700598233661734949054197661796134979679768361558911024106401303994876378014691941286518385157308374660165238925430895626099105564958788204184110186892273327677631553834979213595777274552215977186547615830692410280188087226382352692577538837372344729542166487397667698191430077474807469195200471130322946632461624114843625617682572058533368382444944238647760650124890036746274418793472042453768033641033394021116977014038809535390548692288195844608408945825336562517478459535104786999915932060464183050305952113362601075492733169347497288514782756009896334134030076713337883579858901020031546578675402339273726821759915099555229943740859846223921850415340050575220717542404361657114098258832913046367328211784981433420322547668792882159304054624053146083043713477351248884587518039072861925834165305475344128952101745536429305886307172246192244177993584027929668261881262147327448144012050579701009748167486949855699340016434987046052196987269683172250459901759924726060265896624084433372376486198337650605533347229409752707480258444545194377307700557943087664479661451533637661309188397257949463797171277923246985534534534582010408401742703773874829676333937666878041633945278461420994102095398974236030025504516463093713170047307566586097818426039637506742918833979255451470035403133802236675530510470136071539475559657749461222906918070319504628308404157434573745286380047241155841427339719201128058589934266783590405033930111350689340620450559241860177710297017467249775314167762652772802351682859423383537167125870346209763925139919085925066911044805494227575837197174192048634131762158452859504302264414747503847939894361790204072014576894835046061765878896803711627954504451824162540964051927711051444832041002971383790758405579090234959176942532419943828664473850250800778887049720543806921926587175703538571403324926124041357131606008811026860088642514111344553921619309244690976354512753663341418829002999929527347056519068844294002140422439525072607221423720260518736722795632878665194353423743467006639105396442713574077370635831725409456459080504599673422861105083428806378670868958324798427642090984716275799488696304061371960368339171527409282207950205340957062977357617493247350350573145548227216614120839333020525775474844467108183826770243101240520198407349295416168843458540504703284701058600173384197929097947517954118035550403408483445502044209345430027882239906749089863250309460859892659465222369033489695124100585356003387133751692432454700105157698798755949292664176604852476663406546727287710560920531887870303025199197099024129531310183254297971246453235542421542178500334951504478563343328732042672526590823617377079024578771002637433257833205210567681937564760113232335643078594829251130216823000071614168101999444958381786363508629447671262680342783107986160747166328699748237804070529362196056380273649888418539710978571509071900943312197521119462087394690646217455634360091091794053503912730044814354754111310058702136136900327710469273171164588349106194878813593020172321919804130531596854944093071322302980698644765053215773401106927965769902616776234509807583032309552361569709986176691700746381616057734807537026647002004472920368531113409959783774763753070562371252062152857493074531836904900503099645459432426221043493656107505683465969017379367802177267840337504497415219318369614068794126950045146783723947441036666793290574134454038566575867157120576540896150578340107796619911263709371498095896032686526249389458671160646239849471363137451472980338374646672166428211136107239234022609553676594136215765067979902517032188433928012118736717995657866423381791966797949145229599424332653121306418105926730121149125717235363308985365384526292567403654771236459114310473383233062463175829624459898028500892826186189519899439777312370189078514449071376078288495888515995560821023496933130500013174111174924955107344728659017176709185002586337419124043734030207131435634130901691381725172200078135733912013647656533567514485525261730598358876262494445215059054700562741264721226700191534749238352605963599063683601281282808812241005368013924455939033294303928712593628989240692851097086907672214853097456471283196227611232234574125920167184215680668921112280320490096605167637000013856024934188131967375030636910391702469028218365329269206409568168028719462086601059651387575301080242712399537301233939855556885727719942372553019735340054219143171854274701083956437412953663703608694287427826851723876987516576642296594627075671491524381763799300163317056803451555627291644340599715860349777258798852396356911367990132432742813524844080601315241817908589915085729974882783697687672429040807325112761173560909889682486914286012065517903637502372051640997123342369684457686038129614482295293348269981018992243257503812946460336278839787979377127742680413859515144348095843008275773822368674440642965619062269397273672236095229526089178365295852611484505707422522124879596716777050058874512618234911090444500944593332365305300367496320765367973941570895442397581644882513438486306635864366152867800794342280621037241755248640383142666519094665767100781042141653231067621999630385183134248302813528674253848519523225915145211125863245841576033619265024202835484934355364800965758490505884706280246275630180780435149229005924431897180335024002822849860297248515227701979068915088925232217471399727620068132778247748630098307778925396081703854663797506450883124137147455046863440868174891201477749476279872180252521314144966840286784710840839826447045793248010374297568321654555391015622498870219320254292153812170265938148073999274916543383672130853025281834776506657968226865603425059174884265012813413349807472305463442356195941752497463449387331966321060299231668422634183902673670293301611399172172139820549637786421738696917938296714771406114026007996399711631746396142639363875694367224110373095724675572496470844109611061148427307987232332502794257760386694713478610823425427954014456535438521334238297344123486711680878297583028245222339794406101348191337804548762879629005964505941408128825015070063132079515240370301026947545072548603992448148757358361095825692324504951179070316253253153847128354688395959348758544261540650813721257171594090747430310818411702340488067279519418940011772441066264918007231633856501111783330052630382854486125486680953189165248423190884375379177036898414425075645498369400675286512274718243462097996905646239271465535404393917176017602010266514550822313174167435851791445388148746312422380853685522355362683402631449938211759845530114382625205184507965576770634483036821373967735896311853070497852535543660508314774885932376028260006331784371267686685855700824472237045042438319624316029156281942509103718507515767607498365013237572925796127167940976993219086682955034211808006732534811721842669313914664321887037771310501940394731271547214149783152747866060990235345818486418251216849556192463157098442864105227819840389218422213059337515478971618544989204420648300148392065433621976470902206900246269811343765760940869809618272000511604232487898813110717332567685459876151691286287883250235782037093044215294857265395816956114917504442640304011672538260567690679610872476811615595289244191585730021710084751489366637059287421552552864751441748284989501810032970017450570708563128107995397208279989747190842635081968273712621118997506230165428678040353329674225816817047663977965931428082967567179097854769721467471974986393847843741394975811219148293199712335175655693762648051906464957755089630217385279324419189349948464463253602593079234923898794713117501747300501867027940775347115246937901050680102748203320365720194801395580330641937206982349238726959846429998060956180533642322381926731472276360521550729773894941952018257736731217401064589302528676334817914686216379816204048106107539604790045130078419183597497974710847589691964176008723978672208175545783640555286766333198747707551463303250536981220043576934745030687196514949351003595821884720672710279279605484689449375047915041638098807968753840532377534104545555502990156424518882061521662399910427969962633317610651090955770593230271981146847430913574217151924342204388055683839251081917352788607191380428579151410765250529604748283525108682203884890510769567063601892060393678604803046167137142687049224414508944652757856824294356305495955017974283839660674970892031244705694141219379723566769449451408067998922799552483449093287611869711673272803057588052691766938386091008627308963626023145362843495895856084085060320894531218305800822873436259841186207302218279067866529881880693581881753530194570213023012524418964564791702156606310620549703529420282736264354018013612527902724678568734324541879729739976229813766961951791229027349082931278837601341718325973544858098479553342958721816130764716023393106575733522989520065354743865473926613140325842791332827782497313556936974879826760821490046178992145487286997847130956271171665343323027519401103505828505599040713820708387543406215504058855775255535887800813209691055845679785498551870695178451985630038385015287864983014718052349874537282094302350467904417416280052689588776124029793232497256379238676514182783549720504924262569071287603770063557028950298030921907724632299068477433774236814021295894894413704685210717564019256617606063675927631796198709412071071023486239297080491059418403609602760339909372222964042114430684027147013232960567225256284081737622020273298387201491700945339406648514726845170235271628450067578012961864502444751843120921401851822282243770191382364226012875262321404580131875090919762690454081330720733727227512733040198462414894765785614814079245562818383082137120851865224380019650220319952011007991776232717701587063655615883047337443114099857912969472398955779405214516785798203050026456467805435741152310100788025417488928061409658157201573648073499570645554559995969120061171531427943799609406381413153927674650149668767947132582257063020255909997649171427454736579077840158615839520909777363885839498544976181252160335941033986052277593782580125482741402076486942754635315733569848404623113080657653769780057530006408044520106503776787629160119044813989803743823127416954703737896550609343147099055954996882658002039729945154467324523139537491104066253466569139727474761591619099419423642555186340796472220106699638950353890290399331953537362134386078487283381985936636723395333706417576400147166906401367984723195531438636145406717854768267492554211882537230398518331859203933471789752447537955279243596609994994760054425970461361910882129081357928350593000901625394525852136784044866420531273725977103976523704100298494311564015878286500955212442423946448247754081747467513748202965983879833467550608113590776154168199934039602731089908352838984411155017846831299062110159143077866165870019980994039808452348434444309963877035183891637785302294664384795008886552269277051260714887248749335204636593579529680487061848374154709131730679693151752657568837106839009251066963920112721384104011607195501754746760232106446109981801840439540167060954289861150737796617500745053807559870791758676939509731622327339469806566244725416747584031538693985691439933959511443605874225340007763842068324946803543592326211147502039181836080604439498557200368322113319164642270822313304139595371263449814853119858663720991986697291240640808148427479286060054489726135255834659701397429583279853383976586455101493209530464589648796002450274354227375364583570606114447912992057043564558081419210146853913796220423452788355799179692914353707709918033100600395976971497662458863820279513011408807765606969152292480198678652807904901346864942224150695485440880299591449995084790486910553742214925413669013083774874777860620557416838222959827584128979680075377658056607219682919769464919830118673437328640805288922947891578776661103348465843733909130936393196505870341424978601223904612846350522638753190745086961763595191996356273351845618487135412869098009254376530793896855760442002934668617983514729756453042875392997217461908601786013532541223203262048854892950116308922920985472081726210916602807327112291747410640787077325858108227724198741994109082657018533436008247023015462372028393480940575336385715315117680040007461765175614094302899758602527598572219720419617329942115051798577513741131584407078422418797054395281082854660514301290466500412101090088827325370245456283554983595586777258131460498637555244426706411829337320742895023025747368613161733511502810407152289339062896094532946311727478060683719115122596548007772667814894827817829453245152982484199347647092748950522630745712539091090584718632712463045753711782895792819744874044742684499380833078677299770397407227900553432943060209926650452334116572612431226084148800240878360883596713556240191659039040019432586677092232145822927824004642141236597686489491095910953990466061998986503170064964968879769945306242941521950715748615495808218794328454245379836325266457045847652318167434867902518579389701087680965814526106738309658809471606655123770324201621417498362871281728255416434120260873510780450132544684216825158357892752814550596483765361594582680722911146327343647667866198922910353682389829730081287514674366081739789311125675461184378877257021791836574489205517559766453436394201465112246799885935320003552071460804270238403451901229449954795991183130861399439222986988778019787541471682097715523974421040497213042833998766055425315403971227684912777687321946675406523817768638568603583553567520304559326316306962338342509403082481951593112926309931264194511824249003408279798705297028474463905008025002176629805638978223877691310446175715594885713429363822437266511504837113410957433783516609275593656494549602872793958385405483544453023155383682550742782619843130912899882165279117000224692803980800789743286693010670766231809541489408818456951420425964632696300564694303906014556726080699050120857720729046961789571174300603976850392517871946979147325822676911797664160442305351208067418239954392616131805105104047522324179243202581117549054978180596349349765075575285407039246149233858166813977091032539733516705652522048189184181998513963122767394565712087324505316465822367019470466620748597236804571214809837365476659292657024033029786066273892118914713295344986128117670266059666190815144231902028866430904829515923857409192729549217307615295742087221949049636455846566047774688933220661064490910308422895749550765703032942754455096098303078328113147155392188492381204172775890381738970106888397995509540284425676309459446997260646415145808523222016127121701822471697749417998012321817170068456565514276713830131125686943924695570229067489245435503508152434529681633838982929264683334428544132119012355098626449958936045953639734193119790746332775645386080301274017554610674351294231335837561049124886993374326405899142826545663250207854546497892264985854549499621970240692416016562160440958114942158267410705779782196985586399323642223561304680621332815415531920335280978504965228582494120930977394366556069324717504518177286780906907563818237146847911374226863557838073550693914559884848029326211276011357042512537155962291618854902418291278514813367182370248374175764025309131630541588783836336504823210963171668141773992058977511655092325354531422142544671077405137519440624794177459012037320130679809700779344120797581423101221286568562232709669463428245973320248408572159750723122232946122615383557049918889062772525342748250244966794705151425169185668031429459287735257394266446812484581678720329443111008850040475116215932406019936509356172923540722106857031960339485005076230846360310692436818322971849261950793823178979011324705324551333035464578127700466740397955786372714700587032366047274991979343607059342106768131556021540628438181921208875382235452551515721796265938659800964307988502924470498569553573854574247649916902600369958902162057101967100918675353389831185970953738101931131690835394015117374832785551440171274259131743446900839735243302831513543647635453383344562595637497484812731393446139134393513422232179048850929785444944737237556465250895430032328793481548050276265771613781929419255804960564991884652075436856886527991818403477292711989291010769508266491677906677195342078416820308778693063840999539603101476477098792484522474558295652902185681664320501341189475064796860797189118288962452423088466120360162082091882565962004128113515162156236633559908590068711878657342969379780764691590677949422586928840731744229339562828359060143343383516546644256580471816468528978807904725399285182944967805564887710225215231450325769251515087729403081328864055991178580763133038500179495111904691521755249093981637507264980365875938639186327539898842934543514112887266254824888859561224793160510876913241330408859156110772424948662390190618682921869470224751782883499101997426630197535964808253124342079783369700056574279244132503124830451183846411484472896582988506774464435882499118017856212360153135419064177855610072179431247423996866391243246442035818745100434526197805427560612647347985073150971950474074268338220243019574398403685477028195800901671379578101849873646114065106113944146330180093651639837604349378841295427746117348131263803311497467591513425912498532085250718953469272042784381916932690889478586889581610908654531682537518180312971260048742930831949350258572669767469936854485463049210366242037098090679262040747237901021858119368687574421632579794206097831266247241071245383500116895910387578491890588471565028079345570599664051158233363811337959471609332260954403208411408938921354496392042801569154716013465994261698795986360605144688863843332385999674326562898846189447449084034600817882472117172328308049197197735758930400791100593324007313345504683431547564724206433880805167853893978103262738924516659707168847651272445538155368120843660052834890401606262657459751877045834908654182311975462062743689344812900598599563778916750169588800379836276179204170059521597109085213076797959668037570963118038313152877662255345437518450529045175990347905064482574131351656155167644548322622156365305141407536575079697838562237997049752215900539419136268660147811139151158122345567818114684265784414697727249435154019539156691055415692863555014961320847975438891071399962479671692651710053823499417441691298047981606344873272498410223757359205813254652694982480943885930276828067046346195876003749044730678743334961763231895656781922385554252602331522310622853570910050312682628297648501426681759952731879680969103509300881482649314457037281170067689076068809843191905641941701292359483481599271679175856440015344958837674681228378341595986376994399510892325755478203109110962195318904927999400687990749003291419117535479911827826768203563558347233201020717838419275333927819181779019262529591321574211619254118186165160887168895720171026798743396216456956958738143874730212650082142304419622232746937709079601869635163408859238176238688510269131300272000745884620359739277022852245304313581883060148996089601792099006396331348145909427965721443509563772074045029052537070755408606412934589763095912358884510579488335466233690156216453160603723757740202233104837660835279350637817723125298088338067474524010018949464937155239625077340808450865846157194440191314778157263204426173638020233205737589105991205096905277947124533927075033394426974460259535304417398565885986206021856664775352713171935414436341771459744717302726295786887893280933109877025636854213056612587909271791563729347325830572575963644480699947499272819559396617521321045997500986884213674521552711782271444626516931481885041336321650155970872951246094221987355282239436522940530541956960019994579271601271551862986490136379670376194950933382559847815910439791872921958328839111324015265336606935299108258371987771224746954696445742175369570550654063219147181198193005738041378123219324749736981182035144256255307397552566855163456195468694519820345476642902588770977467922596631028696906048502349873895319088061133144339166465172495439058467906920477126358029808796925445625488839169080011766469839484848554498825048678067932486028738110965640499205683446029290641582411329299449344019299150494072411064528798170187732029308987903451675767121184116512824158682677263876809856268863949150915177424413847835743701208715481942549106068583011845010284769435379228517712963999711126832331305219524607877102212691012002111295947070915059633691001187573299372894620999340545935653617532359255486706859379100901152053420298193757384516800953673242396215471273929823033897366741608222871581279988539823320877156165937291419695602201714909765240448039035209391167096434630184169820080658564997814742541350965761496570505428974901271032731810460108515867848788112049164422076661879428106708438519983901167535960197026873988650457931870669862472182789252101621113524659058269202083814103063440776316670669879825180620298836458893347038595379896473309025446626223149882898986727314097184688913547970537302665729562343135832588603115335822961743200506004712710697391939335113282729630899561917268007775218554406695558007865864110567130148719784842706288342209636328928390334490127293810147034150715001913873099971125085788786964194055521582637756370639507311914559493549790919374213151664634643306845084484153967154811741385363624441356892468326145859519849864901697357770354257993268122064809291456419885007903782301306981951574191912468055275221026230359503271810469557569256932020531020431436139655801062671115049208875606557472886140686857840780114333310507083841270330451603369515767796560403737612834614788353108982313711829642979029658470973646463042841070122655918056015362670190057891167629493032094304909145592024315909806074112353568702240641553409818626065858536379728433843739883623395574430913800547764826428744191304238549924031428124467267701386857313239695474248485765799761809796458449730753317214851540115089504428218097221357536244794450178284850653693603570062051049847545505012586567224470787066620701853097144692920785277213567965073724608362869165448681913295297129205618413555162464894588864673603710326652887104284847002063042262192211474688046107210594950385798788666444278135038672675531978930616719482188979981084416884215900744046973517250587511584557471637579215643190257515164683132273113856189856015126689381544367593323100572675756504896390196323740432948545359530628892921623890120813542568612950039975030799533241199475159663307893557427710623910490438268508946010758592938109078224457383333553589639483638134586844522255302458606100058372461861360505693200908325598058868778140836392449550500224907797814812929241187029599482922357013439946741223519155057989251515011598903511690781852264179979162365947918497639551853211659801572367868097716412991248615940144663155793891379702391917836876365962108591642478511162154507682021996613443090432004219173364750555966593299513200060925237189497520493120223675959488685107973156059239788205554904949059928599855285145952717799561970961129637687310274486546572433674519966061827036657513859004907675068308885355891022187052367743014055559363551528656484765631833028538342581233680469579198387089684286754447920449952214199839998869715350210559910831267388040744662314363211304992074997300173098321625965981967080177133576098751135613281940938523397425046752897914992411655660452389040786275378204587269767094084557255738541816281148532327659850257648312943298193022603616493564512500102586706212408505316511361876413101770415114111894397272326993503158450229336695900499610944223808111176803134950567675127545104669827114655220749543500502657913179475507985637204156723887361622086938834331461262656796751141382865599111956194103093952543361707263582775494514737772318166077901755482964764878020231122595855621948892903685296049243527046786112445509685775016939326055310897869403836299510128762054428138161035403774555450263319865132129538767189167276785122508464151605729474494910956887006573404032657798055828195184034154764134742228809333828446712568060279153806029726842891116287525207626802938889819396731080294733816462463305240704654595914247923960453494034458622039602119860723753673235905170335536472926596607852568578310746674227821514861001159949634366591138797905155313249615338913313066464248497794415439408508669913431073782618500955740652765132346895266658040912239287630849820307389052720273878105169907305635967319465697528118447429745473317829124336471246004323610532932257099352591370488681989847450031561270884591051257836332563049698422924627768987543666673886596239918368745939163542561129739911440677958656249812722412601490871045137053680418156942579055992820779974266884227530878648041688876783049512812547042000134446304822422379450612223348814500023497082749015103469152621527582502285772966197322785902930657064044676332834863921705121714605167701320770089299491277436513863538587702095041442474420364779371900458879238845304457841175436178458220688588508735322608475296417286740332601478460964433899570670527603494631898790870518722837593510193347588029404987668208452977356275504699225367398674160350894947056118956978664350829288002580514074380502848725119133047172529841499142575280486328745620508949128439098694393173442633011075661410399230414260157035494273172828296024160164911884531628418450065156061871604818185976303929746139143709458195168961438314978013197400766398189918577598930356342501323828837697621049731413927242678742739973717233685486277453645641899742249468974363971859160518259804784130190400303794640296682387079379034847043964451167322830631196996312634009707286374493283608437651790357042623594421431219074935590694417426671933329287494375022537034947512950146027200613713678125236467217476911782166021592054263604029091273298359666662418930460953738547799061131853870234893230129249223174862370551538380390246809166764692261000555432596193194736449470321252923375081324894086401820862845288318781771424961837128872286019112726923279761085454889361664972408056621775455713787602981708067991513819296211789175825205780880834798513735735467912353260353641449791260011415507733101593011965997432272970734169466220555232761655441374521890030744549953028542686599045786114231386153716538163784030882117992901429009481263410281007917659451048287325059378743468974968651448816671539145472179634208725225418305403047124756519535875097290803136766477269581129333073400710805505689843547835057323565950876978625237246038328934141725408186683950913741582311553949207934136731433135454231387618053981642061158720819073102295714277053369502239366642443095113111515810620699299626243090524834429065571400753761271174051773211186073693427052618724256451729150496535145947893846670974020136231753036864725163226026369712475303914281614400063659644021496970909220038272222352482455721859673705567176889794497800445858860857514087850544589333142902146475927926997955873837820505466607134594034955329699289043737834657523939374589714773849086401851393536921695873233496104256449199780207817528835464439974184780552950273780071229774537341990844370270755160098640550118561094210188518529975293577673355721557259688070141012019068006529219554524881074874645614901369057957274456804522608094297533130191909599619184370443046065633851489517128578559202304086109567028213570503893827827385394717371441662089473183779133214939122321946609080082529908079873768770602372241848699644240772279816850315159586642167765325896348487280008391466381230470185233848509359807657853671715032722542809045099706295853727144785694487531052216461579210147559098646351680217088882523195801698968214192632275830293513404787940742067098406871371230968982234045541740479637938520148152182738827720932408061985867051118477055142673091946323575465903668854755010470774546998500408692518781704873052970881986056512011303054280494017721793510692377175452280688339768955655638474526877738655441222721229845365323220259006664728360447070353777414092954995608162126972012700338952542204554851297235243583470692516335709346074246305052798930640121621034043974347785353192406693096518597593311647539307647042567734162880270549313520995872615481139924769756743986691676818261480425538749751188154823343037791993972168289673543143697106832806711273104763088318847971310342507345479931437868368721992049631604024156615691342225394078739065456781506676191671670428879822290041631499040778734469611278803231453248715936233623785992616924963488561161116104801940978071169192881733448507907448813078267287639057256514633245919768123109430251912746174083259532562948370383643108262875130846658874967252095599015912066833752778382192915105415468074167524518365036231529928199037391578829673135139669863064245052026354164497374810901778071591070046504532164556790749261237721179841320742831685010131127072075694687253572231422205328435425080046300584338156722411278185033019151177836717329787566593490201128366760255647692880335802472710691542905521452753664616811656329568879078931460066514723578182572068662240345112482087288993452341944216539836609608840031059183093349334226178678800483883997709600343483852573915161009814349837130139949587682734010773673234121237874328527767414609057656703830917154399044843427591695804178729238945668170813649670740411909379156028249345199158830689066485824312955316559682771250140513477202227750592170882029344860360991488184035170566127700802599557897279364929342570551253703627711854038908880744022080023532983344807309980692732683192067038131339385849268970770723882023952169400091554757918083079106001740986365147093370928816959293206117766689099591775146968732111617109077967249772103892303951533496406942113228685268552294404277539763271772332516277299929362323120524523379518155346433175097614434446532020750820367894048868599202476393773312615760742179788318122157490663893989437083401505452308899423926826141908053049026891612104714323435710681574368775171193881337864042349023574832496978434132513022403093512828065403973369841280853202170106153961818072383005842327944998517695849471139141325028255782344032082957624768554591778628252545902935994966847681941686378490108294010015443600713901486115540403417599728458366386558656184456993010963032176729244285269736113053036153155364284866355761593032191664284870487841354929092318372025748971078938578594389463470771444554263815575952222017421383074703888626763564505481824238655422423903214680515601360939287450814493582469175833122390433120751158878555262969013770234245346332438237642885302176210043115459663728645792014494065547962103470380272633857291543191462016594849938802701869425860120278338385798017227026102952922970493982603396729660018463751009857086033079960912970950347726301523251903578237347814501815201349336599622886132220184519909625168831902463859183813195032716711779946624352268705871932620417780875329760727105941967312249750196069167592178972763514809126455720962808764961193331179134543797076940172258020593538398772448432086767439169536348092623609490114365567579815109841488066772457904064287050724317514767473911498770472281620809789055888680237026244543734922239118230017448305002009545899368497262747610974239233120085306261174649261802717819585834836948555471382934028472585039405919904938811182775982690955711510224641964052220932712996005260758601680022857548344595032135080822846821492030078060627754401132006882077340175735589503806163784535765193362659879314047679200282079891461825087643249470224078297626374140570804483508785200882050842174486252393331284710942069155706558572337300813595071596843313349707748165172184151015103708725842629417333348747521232806255522493771513556986299864784351661912672270112106892515204233854292419241353802411720351067599925657114951682716710821968727830720607109515419684575556796852769039037793105200340947817682909887903897788453375176330486880080037128038451594433950490706548996857770691957201788005021957761423281843565212107706912896474848540683749742205534881841461202711405781073618467085426164799723652082116493171282351792869643396281548264872282739236209886157142618781684690953536582222980580136703987481629424837791599997045942389243312858455584691025860928787261046875118356159446765397012370000303170128780637378663439545687706395870672631334282636724515984187602338696005251267298985839968393125853495533208297343710426808772269587493241694845951523003941721535529540763041483197798201184699935830564414589310705692030694049591828186374270525039787773040407361627370761884920871746595079499304419527250870482473438321593273168929465825094950771288973174961608787249221663701329358750512107496905229466618256407270771925287586312666694366754541895935592438246667673768517893712587792265496318681062961678892169074701680155398802573469592618064130711957461370799354421825692014677682957246900333088331842104201019244063742723382488277737193929132615647915858317833755408102229756742874535070059280646868497177142174674413141114363250731978717793112816535871968893383210740018071648532298455721862970096833344759037241818464101008100839838173387962588006197261404955505009865340298341188939422980082264375421170556376219397314601557590645824154621421301173162255970718957727254181788643676607375684376286471630397496507049946983670881792485063489572985082962974050218654817417686150697340682300904439778831955572018928366370545779734000302058744076568642157063733551459696729599039485613354324239096838205049592466051021778525254100616706766166378269548174507577552725009419594194278423627352636018189067943914620095314048352997307534733382101559314043994691053373653367812927785107170833076928723313214526162733600179144069773523573331263347599116150100244960268658985071042266005925302300228750948926951188112835469694036079107502112576561616661424580516138636694224540485614729136053486875544836699076486114121375015988125174207148702649112877510499188081459990227325185788265787017997121724481582661105112468651990351688065267837827605827171174367200283781934644101398423483607419393068650703920207071587124280658690351187186652356077914530793515368427462566885229049062864557960346591747437147110337282935135304648592811910243862653112249707762726591222259961489666980583721076448159485307937282197243412436111454527210150532408725832768901024315939070526976537726375489476158096477179109830188116075549871827839246618714751593554998494816270529246485585535013251670380969343884640278306399436825873591821540007094122588610748653853621781752538139662848195993552599651224188975980208100554596257778416345431025901743339912336655865852875269336420987628027966437071344868295406784962555179703433325711269250225039408531188213021146648049521469864842807262681845131547944707418662082267610185086708479078103668586019963102857357276871699851727007996170064862995920630023689072170344861527052050741436204686594875374742770478753433280181851015651089471644452304149792229177297376752783538239866492952100907573786156393447041725021667249510264587922724634514494841343024860260777924822421848906900783206033239357266398296620280486197138297766574651397871590257169764512129932316896763822264232523086686705275597022482661919458935450985001373522886208509617190830255698648466442719501767089807339757002991991961021987438732034389064505684920699731069065009171356217788844179155143907213379652358679130425331535970931812256088252347680879859659858738916211935410402138037025887143181655083522245558530324204603850142888305859100803954127934456415032736477305027207642073824774382625990500704710340754622788121620938708029573267722803165212752083874267663096016130045210208763343644197629086576837502562733584123409639451590649758054159042779647425449880744611922696875759194166686302718564843551573356982286398695951792465819266367674808685891380322553069023888264740037227864113294175044492846757746096516235467265844193390756804927586233190466546230291882009213260107803703313228286741822519516208310774201275704045565873003516191358440462105379871312326737155052082331758545919697412839723877370006336802501451441609688426678410458403306430062761326003307607027738749729185827093031902235574029372092799710910147707945249838015815298975726472759946092980060837864486905860492789936280287879190289944787589028147994231237788277226011067589363911699382784248439853349860105176033783770625659580571309711366132531923357174596978178766782920119550708292883050646103242177853775137593485673766979563987682394806155416850423088012085684730302920439203791397909537071776226749343814978730128202080800429201488420276847864774727424019396471467783258568798694913639738122042046424550867639642729447775921983777589797728165611816581985591599565909180018379197126546672793918288272130270725557618391193039005821910036752625753125437948102843269900286345378401163129792565337313025630247886880843070537097944720469305940230144762438054519488170232553265955460550789956467017562026308731603703095271403219540654519451686426536574593762111517959732549005325290478058475146329931913026051315799955503828347544888478581231431288987279912173039383655349139705556726985529644966010114098628197176996617617499781751534574272975298493151473031997414671037334017877401794552707225565716854579275441203129191079374551324103322191529157787832453878099381535583322808087164589399820291116130899136195818116688394286821988386424524622358978858871605648135746736468724817177612586493239882622692647538306796984969193072660771009798176077485373825472351257371756448437266854821944079534576794707473051556810565858672548163624357096997145870382128870997484586397612160437482993123510358976784516536644120851697245474941419515576036561654731252749341544170051749314329871337197410078571099218057866951766444529364482204988507305256802672431433917824358674970412648336212865378598352995915176463064280105249240165138040747334994197290624857699325969676594182061145464657628441981430923865307205461500327694811998329855075190852025741452370171054576585147437551910888223701160187713068662247146467395204587377594409428796889056756266077073803226452495698627441717182818469670857351485858874013980059242324035351577359009154813055373213525038012889763332569290371374269480176810477307054099683134303045607588947307041915997587777669114846865098309423572762875099692160468219179886206025333675748156207156768337473648940907041101650814360131834580021779256246764249470242120871236070396791917833541913055888424680423768552174690209409117162594434820315643463317177404579517901247146599187597813737090989171345788543044667504555945354970790531368296414206117607189542437578968953844902667666710645154583985902604352898840036659467651314788234787985294641157176741608867388935917692293319689809399486795831180817161270293836422341696930489373109646432043425304031654430534958165793025480779841038857258151339359121561804264126011030985668629719224894325471893559982261582389236044933896593891238340860929014329740517338117223697544427269173015907864609948618554999258693593385139597725739133211641372457350826570426206564988101392299257042618788974836426021681573465673077750290927541300205598289072357212077841115616962066324429453789876820913343810579610777441435578070206161480506820587742009871748921666935130116390813332219545133011896201189220671741250817957166629842450615000108444453437731748903187999061313152101306201796040435760033851330207981213489118266897752709928694342973266932618549486026953056349769867309694473967803117242937578536685775845293033739267705526146212383324602304410696657556403362592619536515500672485308214455696699869533396370981959035553534030933581970571557958316698596065371106119766050726962824676607439081528554116219226947739151202609739517913418309634307180071410549389854223891135435597099662889377810724000102047154275721454835085588317895099522171065764941476214040071285596060523486369187035528007229612189773715169880964807579899433988669344883467596838989319452045684141319091783406284813298870606118058990280243712765636684715556195161076344942595774147128160969145181199870559800071881681147951763505489470278551306769412663636591434096850927996227487665940860047433110524244299725912959428677416250584826701094175416710106324183010413973708968042640130298253408657707377762895503659632553186804788935253284924216850541894888121559947082837384117053355562145148985899788524784385064520821976620417369977649037079383888999840531045981271100101713345444871833935548662008866590313304829002341053079578303261933742910140978796276019058355766930221137925696007236426302759837987676368200175218697358103682258901163146859549815892503575424754000596595023295804468676275439868713143098586314421928823727109753718980610219154605275277911348628607058517537091377462054879921504215946673058117004675320204356817535859336326557301648591187717535063450639229925249412341551386645770540014287560577884565850272902235553865855962903096915354187006207702868262477905691135266466268350065058929629122020664864979625294073994836321230809424530537666143430076436146364742819987202777437142549588966839412945044580657246114363287419677241621591418528832655438436221691256394526356467087336543067089553062493734680021401419088277845738393039088873484869516187152254948349554642559783022367998817978489664240523797403453823374442378543236080359681155049026832989262872136356841082638907711402465166416964004374921499802605867641186856791326680035613028344676260568169236291713430103438487316996857351582453193364006719076853861764643491157986217800696516828583214785775436715279124018011590613493556131374410219394056615757510984773029483904236690205351720032809241253353376801775452561829301312898596951411875132639963647869835329752110801539848110318922542159231338434844609313600722559920016704964108983859378263631482604081561397688281426323642076661296043260226203331359021148104333908683499166942634715367132566375899222538469749725228428042407794991250517248038021241295050469713217526758245726777480291190554219900484552383368028317879326528415680518223092071573589147169601221345019050356730209644185882236209252019035871920646674068360541772774365193703851783093726957004844174447443042997080425092381193806767708526649526268870695220088140951054779287517630915141316711694068768893128970253427749302254942283300515673451916414072001562636605291417121078235316708989020126797767849225184081372796202408980123768402696872088436227329898470560909820644311061164020937334849055519476678407239630691889441751090418311748856746725631583704348905285081099635192782649348751523420239604537295168706323725037158749610629194857050496588516673448349261171113469667715218743905086558031728035530016042358077067742337518378033643633218953294699104246728535990098842039563689754544037767193450602802550685036874526866681312252299443304552666446587561704101507874003546709482471122484846253492492615215680296010037244426206432514656218598881202426138160857827489498065947365091464956772463087281461587710534168279325960116055470655525361448232901952604521302832020981822375851857217063375482753985416706946898104042395487609269012880917695181651831450364928050504350066053516462472188983627776215613324968427360146836573713141268834500292146613607890378955864415075850479283850133218709045656329911243631123378307563267787286817329378292259911438049840179766874345806302214210573676982666555721320939820438832469522930814384605290173213665340387116515141928666587619476563257202737940418094297044611372480587089963692542903349691572437694925871036762260620307263196410221194507083903494203686057558044123019361202358157333433963167836199287974387003238805887092635419078243010463678503851235821571596985472943509187157514513149746608912069625181535126269025131389296101312426686130128740259883050011658768165527630070933217958550793858065000522528196203526593023272002278741183981257218830420398219729388505774372158472628099058181332561062320998090418929546336772261293962503787572748008634065506400202532654065426439150265758636869903010382801445385397470523874668565753709296384996264697549429058743102562309874709573208984523806948530401852916223985136777861100186367057226264341208251594101774552259435556325319676399390796517840396823215737321302962637204288189820627599011419186372655122086019507376206673797792474176284205312434049876120473610899347772707183951050367538578719789166006875052332055588207867921326898176424016269046550950981607502681999766229663371566167369822452587745780141674052997756884421711666494990538219137421392712162509608615008789991725869145833794147210355615582495373780310019917694666211313439292738656902040556922234281397760953550517321511819859511250368323610594686548227587605358311189601588183913721558542189214147400455377409628637486043428204824363253898853755821187240301201597205034624272262584927684809575180115734743492865602583224281945807660086771978409660613364255189273036770374393655704455502661188252389924920945532899563198866926097086772246885012631769117326214352949613023459169404804643465515205991620911362689985648369827864667171949594301586949766507781106293330146660235491972441110737533283368803626974551750218817538757333816998904760718072832743129739034525477144453250842983772010971920208203049584606757870615391351778081044402374261746807381890080229548888199322624116314488267013907247440413560522914219258391690716749028832158720646357555826807128184064968741527664085828566304013326807467842461534792873919409089638822420836277529924430401722053852805714562091232974535499461781991578412493975893900480258416898529339691900304226646717631160128031187114205766015202431298833268659715928211556756586558003797639535718853309370975954828803153904749373888192739873478116789623750462467488924173108836562464633495990034151204825959189597248612488793796583841150193928791565171166745809787963619115428407953576288542661438359122971563608857716108161417627292655384261906489912032177434464706601896281672029953627595468374701083393346119258830321118120617832951952581005641651557781847774062959584871994994609353595461342815571266164324305440747139677719887398896234105635531983786249726640620609347123872218402468545338283449067421545597703620192501643759838369063912704494450593793211915593947190128306699761311450211517288427307044263398804974754831229831473455657535781404187831273358479072144421369977372715583465269593237348982470956846572858719306068440053736243777426529259919468033598648426882364066740522484908940464478899735787641570801932046231476368434787117888177988053409553530358952601482533620614168487352440837942694196530782411695503802365470882717866855842326894887956076739748940563457772658811169273734505860701811098078406886924593628246329092857961884002067801677728647221589312901784599597651472463461556388064213663759492191788949979801151214238449222768140908475140297733364356588120529566211296015648929000248155277626437369132724911423549483491557454410972047460832210735486595310267056894266810570832896426360902706418205651921210600098199294349326368146937846791722945546524476550751008962935353938693063139400067342772633192771810962517077710042073263555786611547324794504121906608709595726354121114753324167599295773195528160848706986944599968751015134939047666482173413053695546092736074025064197506450307599467636457801647767596143351520049315336506320887366369791150974284696093619663675990018491803187905896353600653649038573536706544363894911889482818530039173580593762263976881913384236437807663977454982316033224751280290964122605785021553868371279919731229558849635397163662557487168022997031375726599255971093862714215100924886029333730611672711731521394197532841518072478315422909327924814345311634868706079681875789578511959300745013192100219329237109660502508987643515049500049047971524908899375476180154706240846022998262691596303150547452819390778363999376567310037525019387256163607277876445149492760316447719256216163087052412062762979304888694661421557070261514261179672963869994188826936906288187041722913285271777562964279531644072872340742964175890856842273581213129908766198791061192272781330362886188690215656634352077330278402364718593742709711526444850201907276299392646695086691536351756094872998770025913737604170218990779776355532826549010593574934906571052407141473188691205117341242411502366945508428401063621918557626282253732974935496764400386880757803277508424495271815169231383684622627864308639792777126280792177801623077441695713247537934315370314154366421615767035756744057716287064543560198573059245739677213673153635102791772909724107648606084511099787942082508529360611960216578278441231253654160382657344108911948453687543456569742335446413023534100393697736635566510083367144416473789351166824287240170476765547542025240365787668638969083272511903798383828282536257981631061024309136384331707090091264340357439152916393540932887158072593261973136553531067548497757636555157200116372912039975456569994997215775312818524104758245178982406030497042453592583094138167611876651473964820420867421578372721049048566104175345977348479301446737831648019923934854778352876746209899269652996519184485163709461194361603630525601336106687752662860632223259978364518802803216751167013634556974385510051534400467909299389733221506684402974914000931593985880805062720004831886849397541631901320772885090194126980526340881280342365230018443022686223844120795789934157124518129269352148964914273373595217824258467119456927170800510419138636681696179968414315930673683141207248684075703412324672011425534140530666045677917175025877248936262017398398556895023918925374514707240912229631049993255184897954586154136140434933218044255520287526872197126973384851689698308841893464017295233112227278089734886689934269110982487973316525768717315157469213340367763333311711509984978041397062858172831769664656357187369703066352891069686542211697317235987921698196439851676385493574607085373849710537476230332766880411405147700795663203695536789169408064126686493072889246160689663123568039722171749396667978896640672694177711629401874222576795133345821825225395759605752478698126867964503243047246755730373041095522765876856638811361787426735512375090081318111742628620422094407284803941659940683970721791252775891643128049512153857512511979338892190848485852657191239967737064708616189733544735851343122116304452610838276950440608522975590513374442951723572202101158560692056507146865029925195964913891977352224927511121468492921610205281929921473088101882029596567469456743526634626997240204726404563105546925324554236540368360079592008583738421073100453680916175177337486143031833999267292958581650258386369093875004582585278686439455968342877739299936274247360354587848255126301456935649775813135165485271273681115372935771573201565491884578514337164371087140474840515348678944864673919842704945134414195971145611072974601517317808913993731088660907340066062292206369317566644358098160257692665513921275047109340206187550270044848678580828203614055740388675140865224148889552929435066947885007448934808986902244640622986622035674575906913605516904255186884064280379554112444453755829570564329384189738421240650373366143275201218920459694754262078509385542616631971871216379757845722980937009054185794200915620369567394599266452276151481058572251498408299577593520581842429337646282251149107612002470079340806392126004619221344000616809797807826986765315855464971870327905503133210816122421903146121121862374306175518013803905951930764901979801820808214556425869465846943481480982440938652814629112730454269210596077259987346035666272382783702649712124555267096593532934016292109931470223327084134503409782941006191582381943937436229215771128656804128903693175831954788215864108553618991164633637321661763682226027543514668092364926433130843875833394056130828157634879116355554295078418729809629414443178711484192812968210086063462640096188356566014690346921701944957199466834230574932781041972522400867117757880144426709067375890067853937638075170131487806410442745464468023589677154189090187324661921765804851157046837106638778361197402298872730106664711567636113090407416195215075261170749304986213668658978050872422803649070655897658154531048307474851981037305068231099125209137178546306988483443593642170305478459861928645236754063287342054448056657957901134175677842575712154137233300379068134808852954151850429383163823939759402374112887448007771807147591382007552099095827907098301909416997953116392908142716192498390478543671289297099796986792575617203504592687070952666351809403380915045502894730072115830969539319173754064703206852490857244380021239894429903344409341262881695508575066930626559209652426960533107474835925886774687958276272072601998901419052846558358161304097472682059449388566552591151503760822352102428594118014641333237269396371840066643869429404316983739858779044171185105358178784945147808257269706862572738086113996668715223063520955854897502408495174077860200767201240077625598550536873271471729420041392665855534472329867881308348706975665042485441076772835930763621179485828178753812571377587259245403930724331965341346635711305190628069188063433200446858214585201450206619328007837866332680928051117973092935586890001933072284674787176427503675561000305080289006032944134021937275880149104610076737568517861772576376153460534182467445106881984361654722424450457577526252496802793606156347966952180344763804336677306440003304386501345694929792885572529533365550093286700631596777009395862026489608204866108098096621583181885490066912839292227933320640389044310987469319451044656687649431501026474696869667837310617690205056712955801161652299909493977133582026851207667893892267556993411204253973957747658650561738278344627224538656816865640146539472174719590916626329073566986288380484482689832684157245650982606018292144415365509411495168288124789161347656973814361134562514827218840584110824320486104925900760884619336419543388542371217101719219115038842150300334328265883460603179772197132339515915831526842320049537695762555847326150276214306970122843776818055740486884759058372323351855518346996181762459630613576351846058982626699708874137113300263697381388069049243119299681441701975612618190369170103871103002830392673401144810549261621397437020908514085750307296872445200294515854959357876160085922137997594450857867269179101274803308756706127459565429905077854725871019530758749621213719872905208895129465395596014832993972221394376318908262576889799872208304767901737934137211572380105009850416118710856792572211091724718882743582471036996218327841323720094349069376230841168263189533655714049867728378738839129485980331677085398141046720084962944110442094294232735817837837427688147151127066451685573715465093292617142824174763993574221644642483927243741518210738192019378829931993375898487261304306336439968973979304274026003105740416494813328699514420082656173589598990654960256863401983266601063528358141510474796954973387321696169313608235351248513763815919518411837599920708982188437530606177410952879433325033983130441879001071036987125112365528710883918905096903942331399807612928215979546331077296909555019991710285179402623821593047833282116252599287350065949104674831568464869641229125460432996817712292024038744717116975375474666148858857842323031536155569609159605781869307882457460387261396582487710579765818387368667484560093785767249420209282403279508768335230372370820783067548700521234179989419513404468594741877069378961874404886380365825983879549766896748949300517695715300388094120214008182390067220652331027154354634789402557337685546310260572799833011435191695067659120362829748232560513314009102619614850732512044565947024110320423717192410984727518375162735730770144389789048814255162373943532901927653486509781628792788215589262699678595788343970264302010455430431826549788246346951506902295064790085129765017194941962764646357877241431138931478525276359399140415214782224940624424918317560659960002865441700173512542449260384061469888345831918684316046644044943557117914749927652342034424097331088072330278252520205500781039833887710798427969616109183525303382018605276672138578855241112161900567332280569419061916297684263361950373319948895172382870772396712067416017543513790683779421358713481457795167442065469881131914031281853601212754552295428036597223593282759499131284332303075326304599533700666316524861056246832122742613670548402226672098876337121698549452930907861952593504350776855315485331773670109734282029058384792862469028362363507141516980029813591569597304035569372878954096721776731995408070169375199633430550138492822832888253677249616342169287004390825160447630993806061379542300076949001010678458029272413754563283863695656114377666406749778183690966375624544071952172543085808912567288342481051881352647135903265153053408197084718114141341870024250522122195880443796272958158990576963341025804912310432237997205523261219160232155424009019567416450561402839460772621617918680373166959591042303349271324638049493944563291111055724226346374276215911800203976701229111467027210636893320752072498127979605814879559713599461305921871282738738901071564220629124472487252725444156419469135516748391758719394719500415201764012411267524583118750608132310156749155307708851153465156455729025597288605291762428630495828113831469317206091506847300122335589918118209946565329228360204262942926516534819959302052243405067435162513920574362712639668680697643773142901087096205451522693667150725544500927338958758356241402797276679649346396809285198357194483400016070199284318861249793050964754541771142933470492571037318106160461097931112942066111611232387226714695458269759921353515990633023982497699611295152595258333013738532835547517472249193529770702983723054496047818053307901437458328038189672430425954044616504802063588214908871630649104758166870973162221249578144167586045379654560397527686967839033039450555215769395142650618851332589625668717743030656363695260967121703656475415138607591569600862606697079691411123506510406826341621840347186406983925726240023480284273348193790882816475780358445294466232211162597346744019473735199826042521600696474493335676700766769485626810255755109090260703698554956623356557497789016173941979740660735161301518276926570541008309055094109128185132537633473338039744062431788906942991437232305524501292573809138715777463249240217801136170977894314918474374906188365538285723630917982609618986309740131495489786439861352854851252749624844537594851216402626160453931474514069206753325157470820323127723159948859101044318533521085606213644916654254342529070449478553052606952606779335102922645646877464224889054440235240330401736667935084995156717473788460930345306044140407868021094331612143711422467067132405806009050609176116933429458746920543691791549645849847732989870230213212530000024786721548285815313147473219100127218034188486913104053240411114045541784359096136547953999952384439143972656056847152197151834355366149768797043503038578957477094130967415929858550869914148123292917886798794508503904094120019813290072616769200142469294068680374329367890602274432272416691857436406994906167554928686649023777752169676224515481526377225125544190893490531659840461205643238308694256929455367211939812216655989445478184385415580364196641823527011667689436490490193198397625476757338697728489765796264225968682690300298724593822456868605275129579853671164346764202329691683995522121658461577118222411336889878179172958683000639630601137003383609635448054137208848218733061614967824819468619813926262674393691232869413632120151084679314374297673726224348810188052794912174427253376236900080017364139411873130773031402612889989074495413706425306526145303388205749919540408377093935600287701738333546469436659269895334394866251395839028057527442405885981705033077493626591369237330987792177816148314490594302349852514474708804022004235177466987497210288244962937380937975537851258572133470913444673497403562058972788739829232512009720195806243230481276357108665265002320884819864019422841880916011026412671472407175036213086003155533699694164264925378371723869813029579541650252433998964829763803276148435154777772045989136726762795996147489454401528020768361358899707958252600837781890480796564041771711469579074070114623800099278906085522264502631831201221234342861744463908479134564796020069153596934142079674181076127684705578570265839783882624748348298319883671570622429624202302131404412315346362175412335488966604421264029356582362396602258644682159907829117249020822118674077859146797329833940224098672242852496383998125637454126735605308844705374349079021435541515012646631414655170840681706094053007116050038537936161896183916884789939933879168427398480834983619974404931973258656484285324879014528397133611411471532748914627319167258100062452636065989358945527583991031986990247867833195637675097486794465249295566509484107065141753656018158114989096214319300945785715183046262240107575533144046477559419854044541727493842344523918713312747222309768370205447361561674842247360163359633958691739992603015772069050176173762472066368730559563476407760856429328027333182357631194589873748533109020012329142902537692375073589768610271180148541363894800269809966416413851043541920390754613197384565850808184505822010188603723503578069422814218834002110525612613788266410796302302246531795952005475176703327601065510953453189850706667406983454027127679067970011857839730876319203322881096137619593503937477711472943782134920704177276975678245571190991885761484159237085955692058477574769933436263520582684963698608208355043999421339183152678758937714297881462804344253228900974156238136588482747455384400468590420419247093181904105365603089932116066822422560523674198749098703803449067350667164400194897562047409656040354968220447357694230140754588359871833366508758702825671733637444943187250383204189179465184304949018832588508056476022960337979204140418037690431402771240230600576861607631573518624195205880875091849446105353542591186334563329139178049903856441995078464843580011989383555163295423546970144953670193177476513623635953038951735111074495608079139690256439649795213804104408225867700118137387034178808198242182519117571061881370620651024329804045016053478468095630636617195018385218545159149995779737069560413972118578353168757315717284337391559169185502104216263794486074758145503745644367118712398819649684679625315533479896838436888872525089277710183425696810436074434199041244197003382849793478915855464728336657039209654263035184806722070923083177121707782782139444820604020018022824261528105798283419944935269709256094272023655671976988651662232852125137306001573320474063759916388380316526564217842849011770582185319274277524061555900934485370641578923217756327111291394321631257638328362763430999043894266743997713741548436203827186741037091843137854176137988291899347549215642815213974028932314363526736536902618239259678316085878348616033146783149195254438823459645599493982829351479669069237448964913685127848701939948619205890428585300748985635110864410766417699274173556758559450881479066508985078364011900458072044238267862746526645332304969705793299990507696183910400356107960879300421081699469731459180421722929523164693211011017964969887772189463386103240825152321057370253327827834941201244839503641750825705768554125572297702549065840589118553017183249821787800468228544249772074776638531565181945142600251828146892239202192785789766233734701585706306035831352307247446224784962731211610195980638667387707234440165203636196695170427829743975305696460790596084668100123935946187176841641310043717713066688005678699473070720473735400727512100397277054910523316090539523640116862464276283004092721708448614647449011172426778394412523766483790977798339807868183580380228102752592798638654729766533129724726991026872076857093809472759112329562490859656538524705144599292974346890875813938873579286402893233351928253916909982661183083257027238971416565581452942861166212454411853473000602590366772377887523600574369192244860587126782926137254770135118884694467944463950456985159156060072595318034843013793702552215046902941197571684195301165829101426080322812937393595417748385662514424835899626239772674085182657928305882458925425335832462118430472669737556674963370660491957385761172369699843100591474061073680788505422745127886035133333643405173769147892518248680755408527363392076468519164745165757517108678860883381758141453305135173951824736786035685072714970080439068834946173670558410200021840113808186981423230745264766071189008593178000926474260756378402131844259529589699302282725180075451499454854969589688585687914968696331356498271286356279116986804173442041089394540278739900247233702179536136020147859177528559167091018789654909166382482930424435746345933959902481824435592362039233382077420792642676760405228070509060851149775520489224718731113284117295567432545724393652035824897990340330381641453259579485919998362172224229044729027327262764091630550913564967152550870888853468090762373031006078608147879225442784439841500899062010142504977883301807429528690218050032928186766191762560071443797707146010341258417373338875855439014964333544460999051758459890306345558968778225524788954104742684438294241497497496666453874912747929830494040934291727804321565515403630165341180789856141609921823074961722516664484965087812428429890908643412337182481570652558449032684263426973672025181730826634043225471455846727964077055449411338706065935345201942264112445142214386399231191908744239449490514970541695885209861470876230876106619277139474522856284526667685989320424374086141282233807919876042580338251165112058368132664875812011479893488376978584536137283776391426512996660420740194216013496495359040088138425252737623668027590570746873163433068381681572000078762066159856868562831903278663651620516184525518404902892686400038916076767468189311560715224766998647185438742146466587173540313377707755107426085373270542587580128795772139778926646971134774257993966526374685745146114316045758362330138081689857106524068000088355093399515752737886674805420365160912722809368890534945336929448368903947920320072391310003818520498028298093027421420132491681493371090205942947600229833385111611457174723652915931901123602982232415791846607143760926233022523427217441017272276983905317337771664810801924938169672703915092248846406008205732989634979297186745925259423698662068353717890648902317653118395490992642160367866176523189985910602475505981752733563114213820191381206692804593870936072006999050539087860153992170664871340406226374922855034857180797440596266102185216780357336370497011168009320083985400599254973393263581710720691504379821488094064206257045615753753786367998376710457695791905505018854976600587697247964297250915664452536842878224498480673967362353125216298026809354625716731964163821436676399917160027117787973537851024128550528849410495795129994981236133414194335327044772525726032998949250903249258969508130385319417117794972210415197792001450989933311192109023671700372867069491139192151868595371663573293704247861552962740510894420193810528763585816607817880867046111667109703840813607123417414788611866026626878856461622096238069935494539894297202702274517373897459669181898115340509571529515592884969428005239682521207989901158826749172133969249375580793017933090495455798303989184425400718052112832918230563035541598098676197606484187975903346256534504855269518415884075777425389671126035496507894214808996431098751509357356484898984909522783412604022212651090787285486234710421274976345867505386863940285375971406587338788693702410266234802426743265377241563883361359237132503147379980930734635645973175183284834026204901844295428349275801967926395421303655821710751645736821701047522410864958628646383253634610696003639148427123343630941653011719702093866034704903172160401442424314472907339824951964627236309740040002729381716685155916292476113108474283026577381541885718489880713917174044294485316333222093811656087454953936011116633442933065345037679341157689112727775570963653409725356568351988109826694432203093368020566173445957098845786770563107254259860659182752042409308170053547102986249425731866902301020634406652399541279257956902802213913657484963802944769920331371584366580589113746450987034257742791735756069158525302685365586713719871534231563353801752219207353495013632429342320794972640219839343081158392557583955511196462099433059739483899606707192011685997633555141296752894672380171918107921593411742536074271098965956596405343998913256758115215209438310568832883738902251502890311921972242225967704201656356167063251503803246121510360117576118741960997185756458006574190808970102663485434644929836961957917726940636696414841844656680208816693325881590400748113941695322576464094556625328282515678754118185585571577673993026107757728842065379097033807963934501943560340483149719276257653757779353151745130776768724823999778156234377221482798956372288790945744472754959131414048334045017358678960140197272530945119606621317382622944538590706525058647725571625539854321595107758840070662101530255858670601608718104638459045716005120886710315742600950684734982487907699608287712262215101030386247986004887666767287935748532310532142041856120439758541245386392219567972315599989451627742815350350251075457103844429774667165288769293759486153027770158936235951971904218883624027657082027622626797316679700796803294076367683191368173840975402303136822170549037480073174763310053288612463597749144348440638840005938972967376194896928405580221162603440343536328317517334073379025983196975849055900568772526661145233689526427185459187227691624460414647096173190583762339581070221025819510863067904549353486383301785598845792820269188146635110903245787426772066126940848816654688662754653079709997847518767228919204296934913527666754796536274179956008757116628076231462414520112905162432756508309594842538037291952744782960879720634438360467588003392876959404209337497960291532926202761878906695121548455759944238365170564905448314208702507485315767722689566587675201753542223592261757216331274376904669638150898672392964887027124572404009577659555320207218417619030289564883671703950999706632273807675405304528970885150837322888243891234040822256849913235527811692335519693972414913271939337465111206855219189040683179454999372911367771152564834808282721936269562085338001858371710849333747810636901698726319071220367447533832690896616711833969059240320782100485037279028678385570948061667399114613685237454149720927127883013550836041361396869253466963775574738382190629087277024875981666531731274142046049315783529858737042839833182420853500796508797276962171114289159790338104121597347843073027458113791889108948488638138026172793909890939847656478999840552419615680756625048073184582915828039724384424422999831639620601540766386682639992174418938677645797661225113775141750073580820997401233909312956677756006255889471070358356395888230344014512447785846953629597354034740239397656043245704195622855679745764742599298782841160820950135479877416170857163786549183195438448327143293512032406031989487395404436007378009627435533815970583277902750194130644497131629788531592725155446309805432255207483176054762252171073259082156870536958518422294233736747663341241579915543073103002426705948905540539981394516585007792685129939949802114225905842420811635373487533288328927890665236591331242285938862619131771275348342755002057903430638871096771468221214899229947957915000188265452699273288500886249557092093924957081114876042602120105849798770413535952367207774962828925638458532117623461819734685212819012026999589286381763818591190940672016267017486846411847055993528939745304603526236072189898127941612229533678955811144441015807873227237873267883230068017315145923203736974753112073157557227237313379159644827861484723474758622455528728114640942741032483590243248266913419973616284757454792704728815398280389028115775675190760780204661607843835789821032036439445213834696683411021454147926764121349150282640035768952432093455355042742876986005191921614575365393630531025453994828989577157041041626292988844752067084227235587270545995236577229225422427425566580019753442700138092196872465929278537774820025916006095380182576778446361542657713624145086980920941755367721436843382249090520557766619983936339101966544116930623928842462910996576594139343792570202804297987848406188910892083698008318069347889776776462373623701998150172336415584915276318546314342141381049954570516711669165687138117831898851069251498678188703693171700548204655709390100848376911108697432271961110672381886403783534107240944368686548162841833956056358761845274179186780668050924828328152124975714994663608552233725804575557035155047635968685454943307031504492015100928933016778039639319085094169558361499341866416078820709875081976877295216870208686680454072475224338991376571933703129502667364754786567170317593076697947136343811458798036731336577175041525613149307630245271536878265639455476621093961591304359811766595260661115171559963358480169967016653185604733587504386080113995302921183137217020061131359676983819884429298199254588072012724357701541468704070667840441961681364797206643244116049509359135250788823488639534039334679531964249541830551925641803412040720032418123236251496847366204262477942059192423934525514512155437401334105365902504725479726578173261664642602584951614324180326175064317504649879210376559696239501640987596938581449981432840292813400527312289229151703488914544214805417443698742885062281927922633297625739176611799841161051003604105001232286849526920931762446436592892180225844417908634906090977038783068708229286498878790753547034598730612604756413017611781128330645734332271162877805904417092221291383043625462640057043386169915754256069035718112658870541947803042324103722864937141095470811053364141906844410003458168801028708954109531283970094449142420472847438815690864223434403737556175042736885665413868909188609086026639947625702615641234268594506069135112641554887704582444358398258465016304479753430624117308369933558007277295606674340263600214030889459852138370678426799485158464002186159818529815883910299000699508472228995011147322479546360655375343602299992233545119832025754030221985309354666873851299483829052119971553467343810611444320412339550796226896221472340338989041572428915111712686899255744071494960000790338323361478667209676414694035888973079053271026448517876530417091289724987928899223850020174466432388191086022328576286195978516755077808448904130958458531534230182421915301513197831666280005931706379788291238288043007497586987383078458593352464147629649018359282305283131364373821625954434985313660633474002114894876508416750924361006635546290804969079876771827490888364052981575359521539095741889312214440605824333794165284885589690605241513186019483266906827180591845911105577553977091818870288201837716162966432460437068308085576476114227711048720108974856860813142457593896566499180672294227494986813450500931168231558818962549492724342275686090745216887498332300976410338470310958308047096614436965938975249933048843517229417201029081507732599554267515105583117498674946530724681707672403031998548651858079411469556260600178507477809225732268247523724524942560694593354114776197298145270162926705716767732907262552245098684764602830013953956136259263656979700650399374990447129349846802406350180765678463883288083501229596015719483661350757234999058532591790928496806351583515301686416316534850768409312124502502851849265368641494712418284571471618937332985058304779404883298573354620056902503064116693374963808259336683885986641485946952676324860963663731964700810176568305400789543130616877519516780916994265943039937895721423461563941336901708012996223946772872609304757161831586814584150967733969289926411451384521174701779661816399628478597863010450760740613770516318131818929859927861764429882836877902174066145915743637106286737390203359430585054687290184077478855968388838334716303357513767303665017676734235264772310716520850779358069471558432079613128203840888725871508526480739122926200287645084210477920955782823999485232932878213950168127060616313265957009564961230069849347951109326394863303132797186962662413821257777061593285566761717931625459113862050829857917111955024261527725065929426651295777861924573115533328257973800759814087255446192539402523579410393528615961643287722311746905074542401556431328146739948014799079640434523589176926802798816547068110996855693863492004520590823340175639887575440692674186315280886957500695711707258627624952829164321758180049964688552599443409964854609143605060541903782213005237993736038751832090329136449671940613787675209865482956582219098622095892338071122578675102775360596497631602857567086776832936969317169063679496695462680602674874886192831746665310285273661898226952764331887922781888639980294465056820043583101318287502353164027728374266217247119644311304602789163024386962727372398696526487810901932849300443627870864626445961238407463923638767526532019426808976440983624088572242314583166128386866630691848733031012884452961859962630152829554426168192754460610326134388851387281222230817279778583099069557917857522100651683196911207958337018600883498955864563929547451542604929077779851835314011512470217744833868200926707122762679078381895929548631850203373712598427323914278699624862242453287579101550323129150445545363916287343950215649917736238323445674300227101334927822762339278855275105610930984478027575067266312168494267005994793263515826983122995290746265518166456294084647944849064205937920766333096543023957404263720167022517536824996569840124336715323434911517410765962381649623123875470601456123272591851906148310158796816247687307189798694692083955713144771353134562742210314982299971556606644667273113775306291209289840611146844322890366979072007282387597845580007168532386503623249779519556339660219911683746983793269215538642656387439547545982967712867542460967648160590827338345100083966714651578647736179130767693341476205461589315869252538057604974748222858086562366289105757738022480493963018539926000093019728392158693977076872258810302119182231725840422005856501967885904177404080070099184378657383859128277681450332401184956087619475450919941722337892468867237378414544871012640325352288691295697967350224387667223266654857288010321959290556602605977784951919798353646964964406934993421678072483745354569052983773182734247872041951997743307353243654811107481142429772850590162985023551775809780497970056914724067903646708905906420661039018360697285238026523133678990756041467563062126217238767130455919577656376668059526957395715729698099947500966994463236983077100216962088482096586731973598840386017817893265069431430538046024998562622358577034704409001250405019024456463138787138897137828738241693600129902638301883062977149718042687253595294251324786131137556398398182534160193637686121463299224605341090883955875858867857477887859786471317023086229984396210288977883101396783247819247579268124814474329713648285174903784713721537191023831867204700930132644997742627623830620690864888373085938849800779853064863684320462895826007304224367074006226859813710998469309293356901736728645782820725886442842510899801906120823459355431551614305709736501115217979580207708505728880240628203957735679635643338671878663050915229155843002974319676324838813142053267174879117331657704007886531054539520774240115309554601819275556737556786899209008737952884464296503513224919056712219226452892048019059922212140315373121320525019358676708289011484397955425870312551171258749645122355844488233738846097901438866710880659593108834907183044515330067532599649969201586416585940881784172107569200141047338896760792910513806077707276894863013579804316164218093191065446425590043713483963985339245441087314071353332938031246076130617025748493382690851595969288727714061192842534939559082168424225651785993128381917771262834916065923297888481134171855632304586654537783507336890882777448803237835660700966398377873592031898494731141872580265568030893777948378754299018225243225828777328542366527760940905919628685074457328893861713514268265920954223746212399631584100946001229917114426751005823866468807474445245790687872104371981580120804556834713043924801796883958132139142837844819674431699500510842917243903235661984362999254981127377278895782076749320394374019628677746545379222111062056293246980580959561862030473664298955099545985460274762816057949546063744516390251110865268833478416535187963791414770428569075636621073720241381768130786722305294569270362327962753330290824476186690490052099846377545045069939023897761568459130285216624914238067171022547980115804290744230807204712986787275507479422149034815209669913687000337723569115011465977735216024047290822136315285085949851849315242544417411883115924483903219696985907997400827496741711900304973727304442139595315121154343671435308039977872762212487565664816644266457858680505283304493560533760558308919234542711578457946261028563779395880520460212575249110679620869642606193528100298066444924834481449992662749797099749058796860206291228977100794755501421359653747771956423657396563177093063554845851297495116089621029286256800057482223683070391025393820072269215903594803964619350002307531541261967420492984663480011272539020060480970374176668016400925440662955919556978493947447919687422149524567949972455103772036861752055827179461817865184511122810934290231282663459560702341351880728442621043197880650219113240461831498191643185732844909847554909352417210792517812232322224157998307193204470642946698551181404376290558622251741968428229928076393599122072267413069827142170717916951804931772931201576610808954796155449403334185840090086106835754808384801286050178637127034247647731059557885703793837882711508120431571016710279931487427642578465911641996247127499526007919381821434374505742410255009586019896181560505568256218287890099215168250457584684581995994748171426534096613506014265777015056113110061479767830948474624957633943028750632460430713960766681490784285644268670884430152652890456069940582514913483971035728967668588440378511012829594498457966540613069242332885462307679951551299092484997680513237466179024847152158356175616605198411166430496664032176063932559580437891585413691869264793520436672307998768421628209122762368095149176298349189218726731878179976951547119178513454084887914139215707654874951240241047174949305023711707026253109688475058566210293127889559484179485772301960096420472259426863909041802882768081183927474786576007972793699713868404378716342171016119653424229251887677865428443420208592199506031577915301338634105451637358662054555265235098567457477743426044407960168711941409688133735812005211995750598890937770613626700015046206355159670969166848302518731639910626301903437886256462597163167551238148877216662616877675914113251703196775908921946116208086378288573744487371566298486225274514367524956458714860425786713909208743703363214261294653130776419355007522065977285637883639597930233168219816953403783530694757302581702508062245813537652714482924336096947118866672755424463250151999301159312028299874544061725191545904678032214833582138793599587882097911061592617638641642484168412134220020050764910623267143003944286149888216285628883115330054269175886055837731796645155448285920187555349252029969897852766874510515980022831974508514057493273129139266942382586380685132886956260147707668448624301947163963741295574952044873947973670159885273158901800944422556789215758343579120311044578938366754430190064823862222944785902555404086292768308868800676483148211031303349592376926087546558505105758263924490243117738318014442700791495599108276144090861851904968804778451702789501429326219780895720522004671646807977884120445216574378816237318249683720150054298906177255012936350482971078987493388578885445045565487033234314191344806832854536035442844151778965533075968037626832944995320335747918498038181970752389716627023966602167131733696709847965270071199581824434162227411281083254948383887347849668525558951609458050465009166145023288144855656818109845340722844855971593343983504325548308113968302949828566807141567533155798555459522123780824584167455786137632676452315645582385353841227498527780577427467727627998002433347341378383967005748169193131767532700087913516607255747279186781709472839694438499461509566337749086316222371008244020887362848477115994785386085955287216492154572210883796946863465814144230995828220250174595413473212657636029096936959969621041533645146677454539545915132776216819466672109013221019073667146568965351674449504557021528472655927847407533081787961393537235934502760962409110542656074631095493000342200084453289347489031035000027345542533684083394620683544584378031452496311876060626457854384740859705892783008301906837491580702099332960764289076517522198560369974286080943530548259842239449325266635862178385298808172649167758085192955687743800588109942017268237725795234943777482621406753972723154413570735847289207280508243228545432282364280306319743422752000421327063135353837669285675516356368644493217902304433954736267659149242747405463483662689941405862309874214138939830969727773927874604502341163380948089381986398942534941840523124033604607282505244071370637214041709364023559288109914496432570553925845213542282390860400805750216890330841331687419469378956827687843474220015695263029819676959478824450900777611898566411039619464365349250467659766638807837748204928396853731154287694235280296878403891052040826563317902134831197437196612987647360545586601404416083196734499569283317754032635928862193956303324671143873292136551749311939253855376692625198319065894845753517868029348128163096138540947093670162253705163301692631072597072088415167263959464175835674366887497481155040246166637829223291434521318015138658140705311102757459981001781014184200123361724218050889512727762083883894591153467411146898456676282802648190724774583803262325340490911808388742216404601607357654989277286471870402740297888060356357033108185540564093788050763907790598005288385588518273993135501900595137120887381215200981982074956578964584582147499459616151554533610906128624463174616228166730657762175497753403270565101364275702487107639421265543622917597593765850388040768497880321346399377298396852819139000569821490646720193615316379027339075654495119754280385278254660376430462505895314201968187190986670255330180808246701913117798297330209209383411905481101815055327169531812188763684901930918363741377666117715710369239815354111720628406129777250058818245563544867665529125890536582538153095334238217153586768629564149093897624932992850075014913424157610786664674951256802476661853561721359936052575008818350669507494989128945009504724686051188259862894201776228352082911930046931845542756317225360336005592885321599722737039060434491031390743828488337457916575604552766685484058487461973236966851728717535356678441095797420804633647836812850712079101469176342794691506300600915071141888391504801955559437420694440709154485036461491338351079748689181999467311747352081438764027871226390580328607946193792694768170993515211991509677459587627897951617057679455241161114097571816512233350691281015959792016166533621630313187135637439921618566397236291407784587121897244194640534328893480393086958963463888841137677524256799847799456373998005182120320036484898616668077176662279145198232107289739094193480103838256298387057984813602801068125359533748615138093758906686975893830795548082910998378546808684435575681711434529080939426699027946887794847329024919002803960930090096605445815154406071674183809940558962402343652076309904815533470365962641076901260632024588317815721175513202060838285741358912295661732362464959641112604455209056727138485941148810796787358750211005118525065359604090880064170216248216252354482379043899826222724487803981430656001636477871811611838347693642617028213615002817957149217393112683375873648678130911131674879775772344775952988785149880307856871230145883760815812663873645347774265444659491612194578428967146523339394560405420283270767811370691211505316323808208736592892073157990760867547754054283963950521744619747755775812512356303479362165652935538204842972941419193625150339402292276557540323928290743695614918909225601145235372849691146082096300804794821934954430359507240767612719346477842108806973163112702174352265346231248393663665914943807574183947044526462951254817642305466716569596760140690722257129440188161822076828376240445943752632861347539601495161736274401704888220340299097252876006647973829659496070755986580558543279220259665557072780691356275254058525263610772750762774313214860751768216190307224233515074423050471687777966423757030232133572052706078899424035416049549991296242001811833062852649739150770679816465613229030034883960978705110873172343433307619555832572731473895341351242520913069732102981818101905865074901168606683004090718059695719868079630261870958290834441412896474838174561824202429671393749882269074148430083620083819832701104594855866041358785993847731443428748422565641303421991376733785393426476012158361804592567184295000216713568468754896772734314755221510083764645714490594792909127577973642931921580776730251981897104790195117236497808852914454246197653953569514136075013559328421988989822270084133355013956741866268726884916910210692415419686567043850296806194977227218340935519983629685743766264044232725043185114347694855128435340461304461223206136565381866204135055323328982612319308632893895380757347886509801723710458422804212413986284710886256077346573033614804067214851960721010697131345697175574457665517872705553670265598600051866732470579569741439332147984964582489339544559791947487669197358362875615456383448444954296193353077637915128815287382321527237637141138079836222029498746088853824903520978319246714326043736705498762541495308180728075300827882350298232045584041567016050290935113680220049909444835097396080703134956688201041164131213629935581355641665041116204609784291727405693912954092272119570091152449289987520640642800339356439775420744969053532291890664720084290151930196077329118290666390006100542295156772603239802543473199400892442959022301826155379288354160893042040820969735518686120239957541396266234129526973588410534875173554289443411960047011317897603025979597636640282577312772007894124577151113432159844155212635116668940185126833363633587759646501628870408331085235725931034714975471068733243953400841294116711433548934748004290650457439785549961690067341728703773738271144310911445780221747139703418976968197210117583201275080014408714125697968617027972900636914075177264089337679315018990838577174705932091222423177704021499880009423242449945225029250923123489234301930935688188144007548444037391888167572325691944056788684743522928522574031405526837628255987610968519445109018448227438873587790037228635762982520999988023210869769653197211166347901451973279669769462789037910327448249522107360446464652071140249673128472620429465141049406332614693122084276900822051655012812908344777631083899513462886885924942836609899316198102612910115095178581098131101071098609160989681223135066091247265749501874104925815566756669786988152545461331403421520296512353018909189830780761865762533127492349462161418928515670580841646876087034903204184362514276989710851065622296687365178703765962444567171674551523150646722296958484613471326481485762837721360646056479987595309094266529768094931537671713122444311667827413021726750036461621157151878864492771755169588110025254512718258883333706091146518535122207431478685195188810396810275465426398680882871701411985129460164847255254679275298667818136361469097907059996278865004632446219775923257005871575821504786993828470684101390791276170399132482758249194796925824250136942374000737846247044415922291505655830401860703852148766850774482575507755920858468681194020804570450458700610811280652039140596376563536687238593076456551783400947658776718056409540832001342539864384178992759840517285469525701720285988724493156792604869740515610949413603823319599831425182260445341336985655025372256084384435295928055778608088029990813168546731789448956484907173354366084969845004599058649492862537522880870423608553190981010730917836924865672258374591756079416764580622490672416174707363704507240511590724137747157935342569478856080069382607499198888087737003884217413773748777161301760822970331638927889488200356130475252071088453143663487552554855672014156808156305127863970149127108720611971503979852036118761144124110038253419688166572472531985065398801817124165134959906804692843438845684938141995150574499395330272965374518349875361307765519115610964277185714294640856988125911023702871233473559094522292250760003992701942666901717795754303279264240977746943958454290212134772140172315591618583390342681708989477371722354991696713439154060446310006467311019428377683202209114607548751970954088442428877937824123037944192886288279066781017383850286898393683971495985670197581769814703476066475436478488983800131039990528503387279508255538805100099218815893774647866603785863846739018290985895798846304240167471755323451615971578912975598009444825041906909186482711994362353705170103099109237807247376910213899862951778432504325496757474672018875744812429115250792825877868044552187626105597214435461939977033943032704826393872049134965179757397574034754353857389325139985899691040613678028265832632826070218840054071217122746020647335561664386788221573941529613777998524751091475725081963748021105775446217031225955543051271754335065565923704613685510705987032039063386568532626602299520530775685802627317323947107879254894886619374154402394425440400029674743855604327930001379708715043957512770236080029769172512993202765560664454775583940531299966968133897403892511429982237524531846500518299283659076761826470180275859447840102567987586042181042079152121136414571614428543977362174294872969478169016103934116822229151317987288138986094295140822942307966712561091705409868887055218402795308584884599417498507037913131954653580191862489260924540300111747045723387286739583636372394965538735743541610319774141560222574573313692426182118865719848874840008828271971113414939216798665777467976744717375865337989619238733707087181452430679809873981161712061012276532439594990434041972928720383596727840051021364044071761631750342996529234494652930523764835783355945288031819433465058496772103612757837938971676492071500318007057479513376085144183512392123955351329806407109657358051653004734577789186723587855125701490867031531372168868905814263030201490513670394071641541319679127745897049406743457028568681349782336023828310575466732773328024387302448019351906000968270905088929608092224345547169823653761681050158745301178815718344613494624243808791094432531655410716177026134886301229725955568701047129593572609293633145810108021526076250723138694111203648412399274301823073372256795032234175779398678182927393429470658931980659699370673636521846461775164175100970148259769158609718100039930255326860496532271111948590706503413257779122284917513308894144579112635353754957283637982964154965346104700473689240395327181798224667339263843374109980059995160480156009078749064075420830674587508141035763748208500973512568173028919362599284177912078848234804133919953009665033473524556540546426828674086877163091286472540795311252797175531507507625367356369562519302484208984834226166016706920199416226596272465329375627697678481212946089285131232012699296711133818611821744467012669644475378815771299097343272859681374246677442096538264711600108046778280383883220249926296715701008747132527117835300275965249684691145989111004757178284802502492713959937088550706563026481392194193641057193608210730296748364810727780800356147164374429185550896275406902318695650788661655466763332571807018321189574890715368081818836268941934285338059036427786004285054287361483657275472393091529364982056966288491125876297618521708002459604689788184581954432825270137022828743054131091301839746386159300346820354979280966972545298625350631265954152465853751516983714006225450582166522501669899862051163105444899090530989910646954853863208929162048258918875568191353494090474890575323630731805326827942670540546019981018684704157301278067804986799743600363103439882109454173010085289513443152216750323306223200036989483086647341122814835799641158667411054567754056807646027349091566538821254626015343444290978609862972405245995014636771465241909348071299842112009458108827840284095086329420119482359939065343117464469990741581609704690675016640661170796208041012152901629958740561928362859586396601371873837391096146545014516606183679953720778827195330660453949314789990267596854776038770119550492167503227870982063622274387886410543571474917093882515712486125760391470259278519159074762768165633803404107485995554708205266775027741908511246307107170058945434167636718348580239820840616693283892293681433980731551422805389806902226489248186772409041650291467805090486609021853871225076429659382055555386795964811567864279051902059674062982832522013019716550300263323868352914819018619785267578719101288719451846354376745508708021122078493395071661227155441047617629738409814113423864446256763515810085990750193043717124494145940346087905786600880308132619910874903699420245698527937943269442057423074552169915115889913909063761956222096933679080230091574116814972781735806669615485146404845364962900772733014984300978366277499775264705095498042962242074870466824350855385990963390790233127105994450172184429316516339751596863541704372182704913476253176800895043868967144166140644871490618616856091882958913401848236123165429404947112459362387275919436942317082611010659997206381507513721803907711400682405913238714606788089993475878183783593206497536472902546452799405476717929673141980407355618613697788031484406884253595613390756734104216796191480097819571809784059832731935032379038723983878462992919954626632102105230781984949190903341912630448952242204311657461622095974423183120079415273997277498300040894814975837541755099681115782224829615558258090829026527821689474157739587350269214217974802306871385950038342501538648662342577146836766103350977131643763775599042328113710299127025128743611245741926708645023215418220536802046815913967253929431690707640672949385579974041993321518080731301518905371514235005871109655197237749196037319773312305595605254978521177551260918840931359243922942231335614209789003963061489343992547589833074015691123745598681782020873740075389579475138307856793874039870880458889840713003954028154297256472134194846906768274247334940410337235261691455118102751721528198530390559055481523486729170448949704259474167753958195953183404424176712776007200779140772387204813549424649189484133500717574634902794169241763174715108429786802256716509170332044978059085133713846105367082768498140852988716380346781167596699336216405002159202982334480168895313840752979555379539526701476252473939327363863501753649733574287255396617821510066134176861873327033429444590177341739701460675718949275216079679046589778826975780457147020278905296916490567351228368104052292051014434336584132700499062218010473468497739290789566365165471991511160454413967713499865538983706058920671763113535157092196055061366730870485167739207616128599637362502608424063738496449766467124206147997480552074145335318491610741156439568308638200026348855817380684848487025144591718790544745231121261025077965477977947479067397705330683035032126200802429326140839649249586681481566735980779226006301677360851701937840401182144422289439076078426699457889220192386035647196348473497840113036715651254631142060482534448430755555608205075169062974602264425089904153311743456831694696485560509639176593331305641810680882479429502907394693812412601524745981877220640947372973776782551302252326399210335471218497331118861909983973905688829094258204602936451745605352077918736106003262129107647708481665958717400812769437853589771750707244744378401377878204891020082252376400586896807312771931539756000807762254878372765248715308434230908173298571392476433176053491999042256992376950211211004842741306409347581312799356115192491109431517512701553793057305076928104075865870625425500556079221188541706382505560030790428514034232303525822174118105338454019134232339322937159658512305765467279767446343840585031566868995859820571016352910223065734348886736035775729230902277054373341533325379743381685786715282410633393704121238347884317100568696738494453184813910834892979420302641601271437983119963877505619570950298640967160734712440642290450930476766476036716097959454373304043139476439056536405163143618102036788004975016712677844165319647463686974921441503412935960101459457909755230693157439484187024887628644559767982626999038570815096669246883996610685136157030819285954889947523283558529079895386617461263434045034615590846885107181716796242554522497108097330491590285145101611557148747869872484269674218738179967086721602393540000415934013612105452245623530940217217777195913442798315206326910905353779102396032171583824292748214994457009125788035594495740124704151691244810260280113149312113960587371475779708442181632772011064561558190174609431444567885738876112427470114073648224717839708886855133962137123403118696287925525535264058433895943795705794447103784062867528828320068356263311126769881386279686906702194449564870088853721603864529855571105618698677179452241654825373036911368962285730652899458436361427273315620674521242803462028907603309596834173766275426257142726613446233537338464604084244164035160378145088775652394288747226485601781577485698960101108345553734164003690949695279314304103014525526754758493575440403457734641123847209763606026682562515711304511439619974653372383264469520311425557558785076694022399791206144957180023438401526587975117914595076619283572367604008022812296514810137181936221171450124715011051392209871858411189493894767340914307551509597834734878967581398054718640588462538761088315844851050587152936825861793301276733565328456479714357507709869727402925651711081536261465405414957638320543785340158048294339033476839892442783939822829292302440820123120924586835298595510912361090844043577567564411312666908527334693058544972955169652035439012926905631320172092719496287947541759081246871292658458665870737785503721284283752928689457968191802653327186974631737443997561038046239607171649371160716775823053824813951958096105610253620801901523432453567695637539888956938053149953986968149738379451924551359734459046236910584094179723521297505740922672111568169800023715349783863382625456246194197047067086197997959268452896904228829777436073336755081254673499851744662293706554201239722031090681924701407142927217720317929567188254932035537183554915765329130746414339824007582893410968740838028290704418272748883145194978852156264834043027324229257803482893521713611554332183059451230208141725259651759773443006144192765454114120218627797910616615013503902299690858531425832468142658587484560931282262988104743717623287311375479739676265690740101295834530311005710617695499693109240710128567320286631236382006747851171790367087109728122201481361330657991675403486879919278596286137932955292316668960875253429983565614698711510623965654780425323485133792441315047750526776328001557456136996976174773414895692678589580452506518492264057712281629428481870587559332632142062643284859023071422457046005463658876257145284200245207791873010796994077740914017962779891996726223234129826600367376868368059722457748799940830142314525362299781474384447344568634392205479576207499903350502094375542944421865789284897934637742978929062934029559513690973414677063016759561984346599210135251135993379993386430573025721972644420395404314540907895882170744841615690498722000363093530855369368055138485844048930621974063476101515909872721838751536559804329659591400315820366270975270940625638224577830468414729909174104023359268022113956197122515562170314397226254252983068069150965260913556434820177705707048015428006548625685568920427561443650424411031237853637872562727071756977353196460490088906902543028921101833008002334903167243991305076038560170353474861791374961878462687090027452759532576081500764695422725257314257111214144868087067818245792913332842104733955680014962042773963349186227784033246718349954006089765708559603753813292636241473934259827917927852397014095285169005193158762070088158595246463648628173411895214817919211314926444328470792603013263130733242058959030021383977883609703036964416099473313911529211414836170537250563899992503000568161131869716947086213191436714782245914989137213461780025688610085838562785471987466961197147102156399064909846436463992871731277513316146069349784339149534778697348849415472007697295073041888719159958296390824043336453778277506286785830302905758382259077592365625266258967317441132932401423563569381041811049773413440735812941222837102348066580676847207001169574102920553400599613040739156258166837068883450240950428955277953155000767315899526471701569819619546399315586500617105159368336984774616562560283727328947309314331271180260593848174920505545606234389150013738552372978309721867449246010609226375140867542614521803243110250798897188684927314747984241321052285953700580820292827376405073344061248730988493422683753406137223474407798872871663356204437558123814202984786579306333404529634721649577103053268965267517941929671331194924494931518498548727332959610487288463283613465508726453910794961485462054565680140602585050568926697017209524511615993843034488180850813675487730079466757122979680398908688366292376340660452566835797798526965763081591314803158975886007341871363121374276242032857804191964789920988236899615764504057843410191126585394377067749949269916396865176180986426492088346834175509337195435521173996512512677434082677744204371994352354293903152427371941663334605630074265481198179781253281697101577282640973191118429968683477871331150482284854115063540810046880379630004881943800011885212665014020459458614188619429767415814305548792707569433976006868209729026373689893092480599338378168900692636937273054011865683275600192619560265939930146116281593302146661463657714444876169385179006034790466011061073341038702061553281588611574596330646991217560150528099096728177723295920855798732287937254941297897022082311598226620435443711965659238351698288230115543533668255297332455961274682951471908363055718826920119626948446604288168802633698551879047103689988184788612665997004703425509400274985216831955202705691963211651026430823717582040902515036111273709483553806732517807237788496284055860537518706889384467406614913451945920611595234931402366505244703114377804581328178123938451425369160486634365046776207439255245197347605166693558014779506060058670229833414411021019933812387675568974291249247002921761309107221145135800450561844241462845738617039341078868272119654278141600189656223066188752598572189222826930676578045435977212007772988611246329589858620076277170819338234260153096808107155609615016177657669763499705918866144718512492945749900648801526214735369210024496400736276007448702914622136580470944053190310937280116359926086263883567715314485587883697729311998043498838153724639956683200928010196094815698813877426898542945360897552342958899459273172155902789528205916941659946759480281479547710951271168653546255988456085268236894300546363798972248642938913223779970679623903307165251580315975425874546832279575525738949278306402064704379947074197325174377447930662135911159928831077095547987472770868238608002519480520759437549920838609742453995649763488562920759457582228414643111501375985331038323821331131882129301376783515397343923295103859942919925954376642322465942222743844886337236823690633563613243743052516281630186915474574289864246333371095962214455062259274135402749682606631243214375743003317538147742385238337860714197319808231687088177680670180272258205094923648689618943575444140130926755857334264726365255531936688232154905980046261821953931562489546200010908098159503526174655918688925529875498314739853399400328323304118943953774149819302457387418677013422440852375348829801931661695411775552627543923278011028508702901215464730937392817044301471291153068517690655294327768346987311068346772421177738991190220521653349554545170902110491450268338842561010309491896713881730177100961584153996213764934319919032473973018276092394936530028857519647444886726183382482436062555884923806959524869353770203786915881045915289684045011398334831269075528151319776378630838370746112977926579465977647224245284478934557453401775860884957319600802840968697432979691814713216032668105190893990825705331156778858695315654750401068553143418692800316350986853307688061457511439290608065824724651048786849441468869398318390025454926080295736206044023910751874200450923255670923167598684006867994275951123138535530214626394648643943821883844750688877327698782477128487673260951997111457249593366458946992490032746287028839651567665747664035494757262830363151608629809073992547071455514200132946879360265610221891911218916160275086060585289137430832354192143338791556860357266957550109391223193212447073639444213184437691470335072888650251098816767629753844014303173029394459202771852380294019689177500613395159324028520606703957665548787913702347669281997596872969801668008173268367887909839891734025856251645722777515117506111339372776612699310649785372121079879353570602956892037402057066543443948276729100211253370406978332939232682346585321104483897881591048538383184892759354759716159810028348605854887684912596006942734423385013304727542310101656934746492034489177258348345279830270165821950504344602760120056288052986351189945820889588667864117350234115901771368305121221884568368732282910390944456988821288168350578305923578421877190101109281089922092792269058410236931332589540150494682012962976757337209391188988578025505526206191909066670755126081691791658022121518631689906421995185800171122094664663429967066910267671061406246069710324957226744249546117329571041967824422273155499021234217882737141430861679085009154667410708283707710204993291120187460573425674954693398748305785576810646299201815472088390040622212535971301141495056548157092690394528732928591311873211837397237255755399943332725321716082572810178991300127116632935517377202423355183088525277489404911420760180050060753656267641415374676053424368335168039967336887737490420020766033376898336476952092070708460410811257473308762921376067459101980348865449356768040943075472240646299383708334632202550469064588283638578372633776492043826314523426549689733987447317649849921184718392992864928555182044030625827257217592091238386893187345731056753496279722495989380296325191975247392390659148322319121142577278490373938548609014722223884953709159369738388554176337096975452063494560106979832500073923522633438038644598873617227573326461143303615056393061243503301665533984811752729093188605924043032733895103828902766545497778204940011959915938271268159805561836910731871773328744184265166300760608119686891529320850954991221741128627269022580478399545486214042423633661752385062176174415056243023752188547893222366903898267302749639466702530324435535172244834825291994450813988593282113855188609695422021263421352599477098473860661586107212543321168453008135961424830612872906476179818958188814643635413452073278639614331715966101309189682530501356191869442708364867994215487642682996213863495348537550957453782615141723654125306642635108171412965486667085598780551598536876781529163145173091818741468848031020651639484487218913794635134618174983229269653740764755157360453414642458657256345535947782818497617698173155896299063927132497259793020331976004351276926976897377252204895912173848457779651833366574254873520080565666539675086494694602166430116258473234836661167499290268875080819470499145096518319270065852299467484537514953735271910110223687036393206004548259018823222413321148902837429495758052155566966879572589000435231213174970816471930501008671426688110891514196650066862707071849505880435708561060206990011156643095306295118330501806015999511477290216004197386648753461832550065580463222049244240269725392446876699228347306045492563531771803782810648776494142269784714551921156028159454911565652417737170204669322601060900351617488983347618400188673482086587386361503576939544980850360657525467640909166518730380388205501398349241357689087287503764255073603988448719062393121245684866128453289353302249563604418826538453683243745667278983503482812269624796518707777244902776844747134849224589430806598949681709568849783240517590552054594076762653323796749422385242333382202363522187985918435326020003332878050909024772302353957359464851725624876852304518870946404028489201849533827196301961380843876967904207132807172437324863520885933103401593778523138718103456263744757605760466433258339389603528954549077334311019045302552493437072438544278144892679094904304050029475418951729635903257012933989205816655572429003114130959649568057290292079981175919556292953126689791234233724112806838413004725605784951077250315346155100041942417439483866729271141017839669170004457180019524874148265550896332813200572014601274211985861918484714032612668889614469281613170547628864591752916898265320070989873769223585175310168189171271267953308407860461520162089649014387767952460356582930093149304418838033313444572001216710625571069326409448147473732700664058532674157062837328759255280441107459775939311259081206030395545492696999973796726226432006016756444791538972736765188470182655163153068111138230593128444894388315402785477817899515097474752291223491503514222743913338657056462220385427495691449987592293911568514545012828685981759998504413293567636466208762544818210066281032022077904502565590926521855735588763986377292892060689788157036784932835646413586119803688431290375967239798123221627725598582152232098066284182665720178027236435809271584175890346046115411041000880197672567923887226381828568699886299829804616993045663880009730646599124968684917314333366910281700619050092363203106444998741892126703551282240317887782466526250451673915384521813021508898294847456150065868518615048884057235701184145585258129627921386172009338983546294588519377539152753562064403709666712274468714963544389888241458394203164068706448620227621827345376274479162017186949709445001622928947991849335077208514894338961159039660789126484126940846152238597480181180091238539103114998452847774791549135069361996675720087640450834764130538783744610547171729264128446762547196538668183216806066192888312192689254934191693816023232114119220860052592961559790119512800309042856695681832884961393124463948685124061964796396177900151196397207467741170227934839541618300716105346343995040134520273685264957687595587387907423951968053986629278162501148500260181823906142071234181789601650954851141286902305585266034577967335237882943878510990019401826075302292317120364354743954571837622845329969504898781058272756498897710470891188593974211733792547228923050569985988390148976160875446762926585799680364740520458900104074641971772617762362453824742599666492999341329599780788612197981508076987017475238802657058456203901067251267261473695265630932683139174617506650745968961675041996889034099580614165041065728437286212620828459025222969953947123866097125263276008011058040403881897735435887701232096133576722964811562864264104079586280822082952331326672977060610596140200471028117891486861011244974258333331175819166786637167295892716912880564473639862598116905107497706428964596843089532844414013888442077412408091415422518585475458243188046874100922385119877789513752732588273097771132596570334103674843238017372191989861424565348835474236641921492861174915999056611977816869463891889151835851767769499331874579204727634363038619442081503335866657136018143308558505130503668383798632276145038115627091918355399596606515082992639157329372044687508425524715036350228536997728481931516640665266071729454297969523537396429090678017413654331003582285274674479508942734026150701405792390726581714533436105984255702738705017126120245743569724532993944021178078677403814602490902443531546393032620138498600511511019161392201358771255998239329711815805977675061049018273560447669831011537646434393638927323609339036394085069803577827032795377828260348770362929972175744122264737190101862206305163372416479162992317402691974339646820340878247546810539660931203054539331679307349861533712283807667725136035964223310349100058938554321843637794403577755407197766328594108939875851063473520583533986504878224065074890539836818035540799922577137170210865219448611460207986852385874284438696528106956066110636380315866237222437490672876538917913827577537449651794118998975491952247487159365263880752994624368795522069856183305475339035887155559723606365170074750113302288822585971000353200626641579336292035017794410014547497063171203581723068118095263785649813613533653689002143944534753753841249906583949703288521365203243306585672978745767179171755307379929500959543568147896956603233739238772387095246241714741273437472234878710742752451499554791854082162566305732751223322263832415307879814092178160930701567168289737432602266709287511347057337911004910574017838196251586556247792791967176137331283112292026289593650598375600670193343877727454964736479670304448704828617199203891217086726206560898143055139405517119972970876768003198772671648876134937568578938328469813331029165304320109002047500580732229890453681606742912403024045736985975662211863332842819301288397020358601155904492193910939861025735631326382316781040270510642504245295199515155777717082285532420116485704947751639067667052884236265456059860756814781133960519128519484193290548953146164070431056656939015367553276026362063629512122705847357356871391445959226629543399961594989215113611792483629588914268032570165134132449909938826276416086731654492721509015033289988808423047593361520941573233750812116174988714760920229617997769153326096462445433326379420662403991994711127196416687673759232213099107882080981701042240810621749637268671826436980887173703367677832212765813655822570634612374456434065319428488218705024933940602456571517718047427650784633742902921038467284641123521749928716539845173247294848084154715462454550196049816448277421022796738402919886331422353246130335288776823023120764086174046612745228051386298272260721188086047764557323566168921497508195074849867236723426387690432957711248881062418235576895920977748827641807398174235711861807634944949682185594192777523535635578057811426079402919146257215938274454857536435462401262281335823958929768028805483281995799233839943080029075531893024773673334660523356495971455201821928915297353270366103294404494065382100251515806996934708732902528451659687357507817818986550568720294165126945538939522170157525476331632987966955616310676079319894276351446393599574692108730945098333824943104205327750358014368321047967526553784422071132550475519045081993930662761262346956869200537781107442525270693729806953555497550617821984132953770448452810378032068471040928589390635542665233172044969206721024849898110305551214479141565378443793747614626991649771132218284383254798343541088355405871312278201994184334149066333593681551564585513066916763450556657370015527456831971752975034713942149090762595369067478648943427684019599691919052645278625443388966995347428635522516080326520452638631636309753691150955837937074340178612534471102412040096514629664845950968334015749340432811563711184843693129017300849918711030876372289832349732114940286675162637702634062299497536095063410117254648057322134007348713085298253236935843626918408689317395891299451372900403866854489905789299613497706539154013656531047442258931316440573940980378947481778114177064791011097717034997872894643032092519772171471986921895887979589929088298048042261806166268091329388771031965913259468814647126831534804748111676762956617258413962338290361685296606397236859013425800826383193596801067397928142518029677030387542039920999272071210847809618925267628070076617081808663597497428102226480333915450335272161433693133432406396824406192117524149173212607381934036395766445170457085175679016352563665146972648132882053567382724946972901854694392403594022706310064621262287083081045949204359137830062445314728775922422731921844982564023846477198361390579210774330545804329434212163431471739108019132899713674330338951830534512947332717341800930106991331412670700801639784290554436034113356786358540060440033079066282159757467367195778779994252367159838093474692292656210220111897194847139635025336308676625802896328613232209424434389488995860898667405147777568788638072959452120569901139878524024649076558354482331135607586609070135201130936884830283062857492717539101928488284506904507574064829487109748226720937060636506134791857462380325373776422575373170643178034446072309993420581580960969125074562767099874383354241183975010402809153314728482957932422872208251643380370323488604755555735335046347773338285167496102537582091227272076624915451961216042253961830042744517463152584436139014444480867218088287201713801443697810918949585289941803266313540949911068893227764914381094221353571318699738026416820414336602376396938726755102803340274861628294680770020679608116051066606646056281774939112878600218097235232762881357462632564771836816283041017647653317144830659729840226932342459701602343694039199905106400841698217129355055189878483137104564284816921672050735445681218921274613008290601378478977250872270510051253848748084260527829038415427407866248500497161178290849604271339055263068814195217995105413063633656473849028621824691992688778369565022941186946547698447429525454144653899541460175148750505146237392429935096951108373795881317106778008432083616112998303278650472373169900958332990350473430966492175724941319255621504586416273476669244460257632712425265633221425807890017647788923760337306870686651171113683875998469797930107767633027354968980548531368699998138822776118045907054068475584953041554429856747602957289088604389210820620478892496490918958831009491586884652088170190249649164358022753254246790464512782776972966836266959814794220289569833837737410863173016839378724071591756220013913325499915339441842955498040392439817193528562718184770000657625621331878481342939055064215851396369011799255735777330077980438368242404883231289697814131487665957390777795636609180508767494689860047469125813106300782515071978309275291381499735431957672903804887699901448506241200224581390030236063781940542730266804827050468270695359463159982115287255240758483865738108355560002184761863672575820169866265290386855886908460276676734441680843225975230074570950958286802138653198501484153963297379865402526197846391730221308109279720905827676978560946178145328619893873484004225962317328085449309340741140605236851406150472840495395692408144014015748152106000894749838284652733234128961007782458236716950158090593777275491199017031023560804615957296515004421594782557260550175285735550921585429421026015594136674102250072897279530501105735140066361348184318709937215372080480842979559456584254753275167395095291076335656416398639547130223132499807002083595301582031929367195939069087699436633513577555080850844640567050168225831829714649237666261467050858706360363216601961376114833395843628405743397073814943043510780649086647125812027081605921316667389334606219595133949922192572833306942758772184860436860337755361136481008904632385867857479033191451970348998774860834633779959340923638375404604431873095036191851370908434168726963801392320126311034598436555734041992657760309059627043480366169672737816252070799441914486642146993640132563463462538183925663516251447174400031129724735164918023546914053964598624963261890057111853729786887901927994044915450034524861335689163080983470121398801767854767507142454745250892973022486269860541774654366193433138876067995120438505814768877002620349823044517270841036235473718771487711123457585357477835951135947718321099796589755596714435955563882567340452719472621742966863487151602487141773111909483996981253296344052849360806059068647091224026131961554310735186164322776485558930830313391426272427908587757480941261049093329829709878050813652826993220929221092783919193694024733294586712353661006146519389477031461230562978944640421220019076246854995760619325844713397102156888849023266183106138686257656746105842443199756094458044050193281129701268378285648336617477626225465875154740770316601996744100805652999713353142413628749561808723840699435427847689176478315294911621616916972428956730274892730356839827458948765260974636771530135991739352799808801001436495082892384768115466853216459667387690506019664262748085844019227477359995023957327956921846750784544528126302834272405788099019087087119933872818773894565749818186534448649331163829798931384870664696785246079265150692464996174085530915960750675055361302174090382540183697975551617964909398509387314747518475131516666191567286187454107938442337450502595087804112755769077685894415146451901261744743690127885066473992812165778434747474880137489909171319891819014344871545823007835715877428479740288760678086965209110264562656034863452301337224436358952190821007591487920073793706780633511429746618349955085495110966353512170802512123867335558532926720249545326577685292182313794148193649180565340958706610516818666762495366939905390839238051472394336916020593545050078639892238936385163899718450069278035685636874964397173924100199161721787971055731925042524409205951592616268331017699713657639881038258732794694770073364271488259266309076005079853580814262475708248476147913200213994553001798171312158523549163887118004185966977568312247028402687617811734839519028269635746856871431307031999226391007675081114726909886967346611093229597258036170669625310526469945307845678359458244351078815596317813598222352298594994438335854876117508504766863560421863512247671687485397851582439611524410479298481338604158360824960841244702884942337627149856371093392974933933481815731933372629886229911163042610601342490382389430114506233157702685243101936836329997883932723346558955949975408533107071179571495726510442329886341621597811024380695427583785996031544160385133890035644043004145764390660039969125489643962360716502928068083511194918085396550844391893882139999808628060893200920331048906108610440050688242815986281484394198506238498959751725004637183395734024038451518716170197197583444415155153114047359260932591097763228145098185096112717064143233964820914310124998700107194334077712155869218834523099440708249682123325836714634689149993599397139960947019862485697127479271922374093239780207703176774921552215714870526895904606753599816372310993346404883198907911139664120428837471838682841351046962369711369101211992425346194652515010775749989873583094279553702955519236938255803513550692870653759115327324200122825976506847749560328613448697223947721414725910639293184014771153956511517688693838568112655539256739733995941375915155174664422097854087880577854085477397078122112986092551879155836360768235661848696241381202896484133035284391203778346021685704817318687351591880069707001991836346427291593295900001176655992451425814968386012455054380171174132767457471609888314095316283909363164125149551104826912566609667070990437144350695443221332109839103110808735741488959477801708941164010735206424200308997888152931397448671957061064281369157244882863025114740742546442830973599345456931830289065102423139165019270984919401686200926445850918914004738909229899187887933637549701286502891890168670273593151691175197173428579191495318280686752992684089862666200557115536783351366548800487032437167548383899816941930581560952137836099712789924491855982676660251171509856603741794266488169402569525410162056174821768367134732320502168787784922035555007452719336564851211402827282156343410220970203872570220079636881861114963396494693533478259810293231667491875695833942222653625566379868717186506400796877499764250808861546456918563639560111690345791604477979499441583835235412357898484069141177530959051218261922855104987053187071096600398078256438078903234384432992463512770088836546177011284860662754211397102951897455238367588390003309914353921752805572438935058841256958755110427262723577947882779013167348558562305818580241034435806781688618066350428958876677293292494239541960819742819558797328799808567034878718441297493498707725549936123073041938487614275757841520815978150136376675046597154096746961203872861751639283023298979361147245685753196351310207582730370980090667203323635309076420505851450701732258841209876137996070768807315100954757221513665063061391943603239889999093696678305000395707746562276758002412100425263504124101386703548061364363464378784619141946371997232903415015053267904922466376461761961117236519025343691776840484944366461684776616641079368156066559293012223911733127055406666402283054887048686005999380427125444648985960104226983397671287773664696150738575762006745403588304250285298142073498462809020126886303411827416057326415218725091717205416210779946541384521538365901720099971817877680053526744347340890771180422758034632364201974808521895524474385187614022219165644853809118702072570095265030826833617360448048283181577819290906983557254598344844885651782001215273058379931214376179410699264001971227385080841257153203793409452512169391903314545437572576706869514317786499663471681716179611166279390321838260146259193060307702325303506292678484754478675825753763322750018947741019982259210871473400772135899205716015919366223231411934080394834201965939525758982159416318480285403196424648588858427712304531520338627943065802620232948316863854525276176880327805749981256421960392902321380258719326821545512410745269963745864966260965359712623113546584523928611276937667501893415197677236256141801411462109604516925104553827748418743442024320710071172566774041845972035804125254739999068573576502146847775251428869894047263010379641053661512757658253532994476766985786056840804597536983472007033670080019010860711917839857910594562774908134865096887631837999864731717058066252045886842759670776955832007846527860452862133941292077573936582209977835589975181236685301856829169300935325218669987157994876106513718293047928888065457180027822086339826311638195679566669395235221169294118088215920435752479386426684159309800981443961512660981630412927497438614753167128539983098032059146450537036313853717951597439345039359832908395668226268625674855181464615403806325739181644724332026269855313880840226120799743232898034996942270376779563480943251950821820048226895680668205767791535616412698278233117597769592551052438586640559046139649956029263163060156312357514232555560183697563182051671233941902818237475753178683810096541838759082956479221955285094007574741949379338516258166894824004390764063114148934779355835856939211425608263323839048767946618317249305642763131956289059241055117096089209811175348089564751419842854416165900720829487923146845454535985685982960249839247029599702127646863204048770857083252729563754644543567786724497823344604169505664354564068332677759506787659900158774728063617588707326224728674035900755275960790227755937990283382287931081469419532871726386378619754886263583808975525783439710221954636470766678898147360943363399541575899389466252438552029587740084526313982870341709415090164947749520177117416986113799921734463840702462059956897386348026844236610035135006974308835328182737180480568508910025006516941699010305404574503226635595355036795117981425254359774801586288315939192609123540877179683121853810595223554188191626663365653088628395767525888550429465924485696747379947283886218803525754439210441557655035401466262090134512149112606179217785753009748274088229919847842409490952727446141341306109060680774123330542140532869524139659571379770716696494136588102447120868209137063330657735669732459516288647876970837006987924419093417645277250512904888486387532332228750040690562049870748264996096673460087713521950208812220222902974605873570926992165737502116804068053809149595851376978320380716592713769371176944594256624812529878625780191434718308767714129129251974187341620282540920094228558512145257277243459809303298437599606945994086378116757506846892796743837059138038793273152375055361666842201627847434147629004406037521469544005639639877552383978984510209244240143523925980669905993177241174120835723261719710327149002723664480138084857833334787869590692384051588326752427854905091307254773988725131879644119743760892773025234490460054888583129215891621469810143253583114246157621377878925268159738825763617416290647975750468754524193113356243138520789569236551101406426523532642184868097081243484625868025280212188565958899088149262003531881083451696102076943934219218560371194144883121008945668194461645319992179387028716496143025532286688653663918755031740172086155680548932770140940318917741753740185557489684440383744096392697138894063716682127117892625554304832720501692361444804478512306506026741488928533698464834530291238246901172625166894828674300445465365101558604231927469207815201332100748296521204800559556115817991893718029272996290041628687706912684154409708494496282544115757999303890552886123618330579620575658686154626686710647296510527289196772991738378175001172064233004105086050736104129343519208390680979473710916824195122892401611413661243091643057436518918662934012734749318104186358170344102123280576373347175499458724069174784975252575675481930328727210200682556576919523240986229208447934010905084700598146323756065711607931729202953194438939027395198736829564799843290712588793588496520981420957115914132924960878943503790511928598997223573532165666253957121544583447134833994599481530752244700048464443607492428875246832452981151113756724143732936685701491092153425214236678975892957409925690015959180979065483986298192645762599341452745857940233184361966811939955174323094120015743222015047076059561351990362796082768770372599784698433600732384626599786109559649463647314833944461209004126745260342782001047821194474544649765046223876648922927018966454051065904401795787872951628978283609800247127776636003113479231892573967647045915338067833682263981854957870519277850461244875391544507010139237031077100072856378315428034924768552427488142796750004451191231244775215365950692863245748245365872578567995226378118849673360821926667599914190083442876683787086883284485698381723580021072544719515706151257849098234721339947847154381769045956211620590796426353036445000604381855925872830348123096880704122977613622810001678204265109174117769602599889626071125023751735911899094352929801951922428593638640186423030985133761408135013016086616185805723398904377865399573288103989718194373574142739544440195370502649970590864129319794500862804319529297445129482611756696120403116895292477207240803485578630962796699294768997032575550217163036033484418622392587909352506859082223568763147076172306084181821668414318065454421211054637614088980060188963439933544372243248609320614537207039161883804049734084436788721417262252919878204643953315544259598616853047232863867707612338465002780373319550587929732807018386173747165553933129128705141745561548940715761355756495855204915994564063570404243624623478408030832772872580318187976818151186466384985743645484102105358424810837534225945323921574834865376524894046215799382760720569452992099498774355000641771898341813694733807582953794055159479029129471720355705950990873774756186608667133149506445575314376878366421090914455210441737751166634271455851077121188519624035416770795218629254272430614405458450798653621430609135055100131320974201048802964472223792105304464130254469700661106889330979777371883723510042960043040164115211780926865236265533751406459165702331512399206619525193175769596870317818973767795945212743263144155705428103343138424088406154142128423105930836125977376124178259879999840362463333168801160406468219293240226800962893415271227591375952281969636482024567846016916025942102627418033023603512278731074040053703206089727081184406989268265228573060426701025004445170052833239714581852198646895758828611372060191931623902678891488838510117236416264081312689232711362206630467079047945203973605603540380948121685275612098778328223934790064337765007491769699867106193811249671792385721636402370212351611004078207611810081122855874924294673850114108832194080514841225222847282131929156846934824847477879972230490689672175739560382641263772982626578811751685973888275661934248308270025666119264994682773436550482879617419535484065983617134667167198800601543185108582650287375786171654901349940998389213872959497483863343226367772489502986910816362410176279636138845976857579951970206345306491582257749210903807862401429748156263022730275907400765758894410478752183652917234545322339520697004482908145142676086972118456790367316079215049522862507459594736023745888497413458893010834361844425345701687876197108544855723975321927662717159344220911448858102816863645526052554755817071595318918236960139692179699738927615023891381656832229286025112568728886355468609607781419850546440382698301124629265773962306074993692126724929676741097224061180749955738047438995531470425983850833367525116569435966832357050366909841360122234195044101625766679126888611060816372504927748576468814699842811638738602261229327272782294294643851013844104448146606199342285065215936533725889735507770335021935987186644804396832313053348917386570690834357007038839619282963308756140229614289940570675419170456467632204550201184037101648940294409216804082148511115145956957227726699047621609224421070805041907960489885460105807392320631638481353675076766279649191655746289498071567307670131212167919414683341109321754202307387172208653802700395619794082701873796828560863770532328676024912542578283013843947558802382183199272602858310151712321923445003962736855274652755718029683213254181304566083204527656416366999922426315179172996671223960457146859399728730581432503647348372107357228628413370045078148739379682762273274085201278636641880422127417181118873976426595010897544136220989483860933742054698995974198874991627123999078085988151241168820839925701404859825407662976464235015100404377752188559559028634518251078823032557486326092226751380039601125649807098501625721582208343450525147175795738796051229580755294211751003694317194766127544718892484295581728582220453277169459969111764860763457628374166464225686655394661814704306474184398742473530422011190399466117556631267089551040239823730377382962164277725610093991416611536376362684840742516815884021241779840090194831293216895791837685222985844564715397979023623032268625994363765171873195871703191030000512385804609723190899184474293963762605168476309051743447838949485984778143919703151604497518042300494366434315961122405144191533518601138879721569075929730985841621139757049514656226030673160867504181032266591499674313865375428750134580446579703250193832773902010389991805394024704335619256147593016401857926538238027942066864210893102159445244684019076018752146976790912426543953933073316354648508704666056603236770555106134115659694276266852081958165452465645058602757642197515336445883493491669394272943318891152933269672703774817735258698867638516877986247850812307317812588396856034241215828036073033708313968661812774483524932035078835571247257578989838437110278597432999201226408052518245592219508483618308860816404961724637191309463765366623903299723104661010300887225125028807291935909739673648712158968412676900831739977600225402521682988570124218796326926287858735005234692055269503414902556653670845236438551220285014600828909978276150096698552021549314615421991603599192895045979476317681941774958817362790367261409347369525703975995265716598359543825494269599277163366782352014630811676054917788267173209169057871382833159306788908926450810457240055813879393856093250861665745617124203215326845118343878865575414526260411532048607655660724312702197455003616804681473170947560747338799310311479424250214660554549506067360475912465365759681432860163767523932156723287668791006398891022058818092723681773014115332028024598324926502626812033288320599221384341172925520789548747643865594054541540849831696221736934265047540368910570052840423493210566988722391108032295612262474778605974773920228226149422596396718206339747770902321861895413429859055806526187491676148847072723224418474108927916164627693526433071162576563186072671637028908470663163108651510080610310167254790408174710639206601327764601656799199635896242425989600769423611918226663945285227776427310135342189009196967592968733908270897656745736403802927740292570943325587037427072863182759899228151359366434862386313748865245564323947990758183156749648563548019260763273730064367735067897271111811653200261943453332485165816284905950825334387814285092903132199784963434965465513496013188297391716197596504345685862917950903797193979393939035386494186999074609167766484701039157983178790981383211858274291788041015274384447265084111989328028650702337577947737808176034685904209448875010795571873348503605029020055626691038227511956541848320475094989419488270367970580652241902824278515955955190804473198499020188196629116421725392908572687294967600662364757525603170077027523080541355714545742651864161268174641832750364793540054395122309587516640457945591468810373343463152077700985644907417196184343753892976117377430420042602440832870820414737058198564878900702759593880474390544273451404025438440801166532459681646519839496063297483800440646847642909098211740251836184628212641855194765996516236382540345634623118189704355836197550404889141425373430705043583732062241623844982780740619913973058649452625306243245026908462953317332061085378290148733286291591649817248383604932413194188525274606349878067765199422417384741646305178097075231883116912998609920893958451518135813870351201964661744584695807712681915382225503398209514831991926798422382573008492425879415447611817273323356049826333762611018127995043032343551687183700490101743127414627216672043805606840633423406834044710050626460448947571791076433973613101048772399844855391878159781762776829990695453498315858994198885318350268321529715977203208865129079432075927409266523167078107185692218820720613240441185081299556005820130624945114304307736110152829257457353707507077525743487885499259874417718572121418107335586518099077476103624714203779007267359803120905205866814387326877282279694091196542180167987595729401169656743084415606129530897781286046209177824090362951721820317409979101296506928555673621263770877365745495457479042427375528530252217357485076060668788003451909734733100498548079913213248203493102423963459583130772680871121746886923028727448079173183143186784980998418761712200422577787409285120628559039771727223937842481741869498729674086449248375612206375890362809005305186486458573351482336769112395480841737002051913727967789361791141057568155929143682497073119200217755544951191977982505197306001710161209745764578036614729804558446404312865859396344597253840994039013853611267067863877398278984126361461224015540230065213636911946113386471722332366523245371298777678675377549107612883915716994147344761833026678446538734940004003666946456912658345926649149661045863887515955969089870828046180447491249346836884321107656258905413602217864508596862602982377040051520612742043848285718667299856119990107520574648861899665902719108639444196702378220150788017828104070928573637222917934836209380822250980005401103774698243363216349264474067464657293919835493200677557641203317353036829365872215334145460817055533183940265552379340814258446522961031063626993255608290594958583011702309437731282181096371016944617653523374230326936449602001100504259246911369131629553406610742191367873395708519130035719113450530640238793508320810294537277612961427492814555234032308869273309156679543138426275649957501557601824424901468383226804467185083840208610209882260870868146432674404169461505948281809750026801166886547714696643465578658432789972028899815821029072399832465693011789465674908359133096353047886292144741924301175872112166527359962804230506299539399464652377498988395795796488747271262710405809578267347591501320253767086187218701139737333971441166569133731095442360949779458186819142038312186268355514343927366710750790665359003080452948774835815565366913333900836777235967118065362939920476480727003290794599115404801485156480721367120655654928987704264222104655540142456374891704706153698664659090849221676210013981861244753763553485099057211215198495574572493119718384792626545274091581400026686400051464700202386633933558802127851778200121621560904877037897488319475164031956147470144694303113324103205694099771197560930364278939024376483710133891581967018623751915778086568943352221960803784786689564804830421632413427247598521282626429380282725296605533575177756291620072387884207928332169999908047164028135030500226311681415402774812714312853891017288792181123697772461783518788069699220948428150826816582520464319041207970901156117899295981056777886280527573238084480953319804144764508836292255647976528182847776823715732225662766422661713825978609704891986352807917890712805219178278040387311030277145447014972955350722198930695212069818901551393311896868750226848881643978995181539980805864703696399685611688597965864820248192204814822269315442345681418203529028670311954929375629884458628673392289176802123988435323673721887502927662267047893989035310679741660773524606264997139163309390793843367055208842405595523055327412062917674374487028214245171069229489188917804737086928565357140604116573556812846820311942799414441626462345462173093799508970041368041563875472736952449945592241944659831700283855015836041381437726355701481684409886774573834403473887680544088146893084861819062363960644125835466092044870459076031757184112138721235605711094765932726985903389411959827285027668989807038852843136090907025260282407541030143007674905314142137409520537157428470741792285562162309052928496463078999061379500723992225041799900578429805285377072065260050858792653298530487695580649019584585751346039505624903678043778124055168204922825946410837957130941912486551847905780543422352836540055736992352753371742649333659771198132111774971964070000352477947006733109560160128916811785019324191760261013700440727351068912725708791876925680908094395136786829278827338156021671868008745895394485506596771531029898216409676276590080514770021966937763112496192934082853926360310030007616443799030799794359844167890008435486583861207751647048251692813258832503296455798858602793268799082421166363450755897721320206746581021113134746881518327901819811505320363690967501249762318458138113497072052035142129438955156945364540169802160421074917304261466461646211598026316945495023958067598985078493443263583784510380716381355327759724889415948746419767795983347390047099464766993829551771110959032742136891737901694737744193007707115975526405390299088355985695991829838841202324578315330046629927068355764088210338804652824571413175248633903076574632350940865304505694173588204476230620474992912006875881869038601320754829266918280964788469669774772827880576797035034615886565054672651942977343764823536785207810429906447159528781488856152566415034679153793134448609835986991202238489395022632731568486509098955988496767125983856587783912996740470477204532439444051943361052879114160439087871970329917613685093476343262970673702256800155213757432503696433561147833837421120156213548227662540550582721858141179808661004934468805792050214995957106092983019830230623951216327145308381591689732848068423995277980419555876232553154928941727947816898355422940108599865847606102917364548484706193512928057243446136272765924018759801567844418634043153426782161741698179945429439608021052898036715680668598143329986772305771488683272657246871580918249753989848368607568167813962542746202633875879337726092420041087327502778738009410674940836746487229576798581906431220942647958781029089638376857052578837251375636841026237092236329363094045367539159509313662360084339769745221879567185809398548382409881419785240435367339318555938553618111265300619745133956719216983600631525332642563102369842231593932070888572360145905355777062867821562290823775670747034243125161320298194414570386848499572338078788621606146509270969963569195334906620497094100205892549775073158255657369858880680478535164787189426421910602727328027920826296470335530247296589151800879707996612699389544469951347639311552584440433426399455571368686253272891594801085294403314164191406715533759113775179002811654942009633509113285561820067712725932410494250394971628815534550753009552026176044150739436192387297232596432972680172747366826369942333318487957034831936144251817648401547945503941007703599819699010739833655107390270365186123881727017293588416120862454293269052960403606601661729989043144877339055820909565651835133249925610338442091687849582652835431949230380220437506533080335097766472289548247091552740709793967257452654809750298268712427030811087368796748875666243011688627223689574000660445230371944754986459584806436453165916733258831603332355186654089161891061879196140721154162065943842406595133357247638063175608332567991525057009718184917439780009183992916071858809259399038633442752941233868356826669100256009011009343412255268391790716483788142300228458512814843513718435337607410080153702071603602533983959765744950227945709693027623255753260346273732722739784260898590428789471818931742889046923802130789462053173877905664955096618563041279778472225328077325731155892688194813832390569257747313263522450080449204537801668759061146488019028300799941331672031768822546573548960980477621279163983066547619499972769132371721224145783240714735278941363880689218693247945964353885714084199126897415612236465501160164329099651194815688799215389705848147320697663033674095980559081536565119500304505603608504626083987128494867672081498806459736714246514895062536198439243405274556409746245623316811502070288513937097070951393994479808912964426335197086687469995057247875600716835052088406779391839672018687948863926815850819331393980723296618119203043924252566471947892468541810732289916855756052667397433530960282757505591123769998566149621034378322713417488574783345204345943407308366945323400589475603411789997843477206122156066156669945811991513925791105063321693865155802043369374924547123095361885000346805265978361524350564825153802501047966127072365223492417516359287521091677175563466454359961574753550066126744945931536462646012912422110554842638892263151519154592149602363895363208474367770532585136122194301920064796361403420476939476002490441556800222433342612133855594870277369296602857939457785871182871008620781259827466069365163689090832374531844159668591372562239811330861674036085808906669320946843944095998048849720466825916150928576937372977132597677495630886025433749311852506076269082868546800470935922037277578689753197612898281976074835216444212858005103636992341405411500334942569341077663469563639108044660568438149457383205530956374892282470055562043497528065546432703446548547614425474737511622305641862385406618788866436107082279554348480878681940220604493969906610126592416626856047694458048342529807764724812833280867895269391236572011786398443094178158109974420090964533735218684768322422041809005143331705662784039106082452797254335456706646487312396734266466601842313285154200237181332002791128561141861106781288552620526150217624538776907922369378205471549705688102061788718872176759312521206212495411161883554724369915900053966672602162944917357420799479753423073771231431074423958758948064067016990908815630189597019087865183273032515876670104236992757226919725360095499974079005943600696565845528156540267294126958769291871676769267368216654048017726251792085799462714049338770695500513611855172754855993759773873476051124542670105718607720711272607044918414920227457248734212214069500065196140981068982403474045000758419705112108248969279286806731913441340480368516176906004583116804045248662970886850869509436448755960020807604405879636674848814802464466359097107852339530860235037366977288447914253017727875641071830021610222780500072330399894635189896983921096522304695183353268643427455143430623971390604503320769553590870455077393155077316292628433991446334645632593932678341433220123758361399579124606660006390628984646944470589899975897428604587320024376765384723620462326257492630474826208952152093271685469787092903486885121060583629674689761168958848410216585819029729636696575543361973351012727081770396125110824321001418016848926023945213692583601557637669610289409017247461904594269850354991442104505505522571929195907935326023514820034921722214133436422597836816301290576603059337081645840134304493133090802653066253068721986928869410094370093109497756982232834240287854344116693957362215215139265317118433569221851257992227632977337807290340698161795375015474379134172549614319019134532754918383972231171275911827553691086239806890340804029667674949799449705823605257849615964850959863378698548524008213650506302122243297236651241338671859609122723719821914019698373625150807855158261188065531291172168908384238680220744599996930231307049139457169312991840170097809638583316710511934250993444672150370421327243377085316747901696499479858581322613704721131161615124913329897587213860252694745010358578174119285826861599512764702903984348596764292900024405194984920672171002392317920317849806708196366367436567111656552271779157923116237764009158116269253001226706116504914286992627557565760510433240115770445353673433157445090592665317517152794974170839396757131915282683670023869013211035957706958693698005414162143227002602519391807221090941478782348624116313730554478203551626826597056480201176858418593416390256118941443009077764036461410550562365886929506114448088398593210463032498998005410035457732500638593019689906791325951937297316035579993974281630258881033457944801182762231852148672865376315764908846441910533663411238995906187188108663593804713712017178514794095471217118840310638804832562486463096335739886573577753375365327064079179246765111450355798234501516323046203074914033231301043676757693243260532030445231312161526104741079881863426643538463635042405171311723240450497980513638735624207602072745954440514081840161344690957889432545207721254979580702984761142038776744027293600825204660974376296356746451275331746796740268374916361706515618234723415501029246450367811485866151543425518306887801620620714595860957061170304428402537773172319419834345510655595766183257319636927493420352873829061856049217529642008578146840104383552644217385354682154309990702368825555038613316643887124973071407557420489114359419206350177752935650368017961901862365769812341326799257406332824057443924701063218679939138193249168283597430619013549972896433641541802895459338088413209382360022883020643663327882048528335968789604870147231469207763396389481963510129365722625190815100710420198077759303510410793394460543104696766958642726131237387376185047495395526635001548273382412955042249580546563927228390606205883271808203595128240090045066042097820760123052960183375249950576274513552102895957207058821082345875683411615956597456126091447099924001051609685925419014138864806808946952302868421156099072480006997950537946509104578976243423110146249854960170316909269437209070652493598546772011773727050141440714823898193154074600550962023713786069378032116209990195768900565863055298617810492769289002863799201800463858196689453349929726642083909511025152331685449401487162336640178127714075016806909926221311181417252093918685742025339643027514230574856431665036072007894856820986862446132426753671702977963159237445776356439242920556441959113644358959451374437594615411037435399657723405366731048039017975639011329570517532139566363149611579417377999561834227419229823238025545435182676593801883998841561661257837715305825385660043777453108577247788505472426540654963315065509829379121406681211053132950922949784714979894569487711203512476716195479912717092647114274821746551179860429647098498952571709144289986936029339141325964080294928348236891340496952981792523274496631813241810757773546894007193513755808930764630753484778008077716255051837514699539663445638780790185755012870969842539047571657794000267041123597450695961140993287766166616187076531757916261649814352353833908810843758099757262967913261863045428469618010645795184976806935974394212152166393444376004937393863326590644161544463113985926091697150434314381533148734802390273806613547748505816302525831856710338438121252942529403478832712036290055029362395477210918549076735372323008621257213442440199834155150407306906409819980488478677376988492338445105107192835051729573100543940168287059185685447715695659443954631022295426388609298388932307266006039028893360223154760226121531003336333089812173968801252044578111676422288565797435825653465520805739411435561417338284124533750758089002535356666024709528102479587683035995589696284213825215727630892017712417581753519480298736352970892185455721615636996703096870933712836948267883384516486595653544149431508629099389927293160577826505504124499302647907422984310467801058325533710104426297285128318434884906216758346293000238607029280082031308734190155805235330129566025039294633533957965411967378729808484383031177446092080581098498321083354320841657181023958828544156722529141610263101857730495508553679925793776104948309893077288856987673483449659284569900687699502763577687085312373831604314650713195635439180638928864121081391488557081245124646224159653027097460816583201183211466961239980983476664794778135704084664617139222443412626673598697105492128489259462394702471787388109340366762382406222141575418270314782348374241212453649869401335620368763143445580555625078211619462689401114545128246427314713585243623357128930446088159078346190925111008370038470843617529163839898664579417416299630340613548254841839668543302272947545558924267228379699714958443808224224082366734884820017676672807257621044862809656570861676894340898006621686962760677721170001311336636916913503581270744926654935070523840923786249795739478318731299932065600803945884803089027221912242494471799444687296859017791213864499004219731436323171985512117751509673162626690165629446860897135703297063340972490157090634341596180738871805363453312128020683425355291540900883388052099092335672442620632488390325677077620222466912663162983786557109064497725169950738963201221825054689841792718648561200637003527389856735270806395697708963335788024594667287011363840070084456088565129604953324986394353504768771493122432191318659609442220484172370836281090273803052666498708015575512873859586231186774812935120969722496520184604236258446318162463087701201357270499089564665055840714498458516390335874694275835247981448390631957854735840104282170362609201972362240899821585870689904000754239664179871830560139280155112015583945141485548674962449305049280245942631025472066814538211098768979752302428399187213025961712038885718943840562550291144556141182444686338793352490765128047005975522483902299597402011511219523926463952238394958058398723411283694464009868471463724154251849310865447597903706580785908669077653692574131968364214487389213157676003299064548431846030878066776461242851549520304648559842404886138722311863289440085090370850736473341560358139290835867204678123575386557962423174735767324147846686457047401132303407123386116401342713978302420193640042536205388345039338905653182685650429740153359848562207288265478202621107217862248601881929411128924551837239700358498577089994386285983552543713784533636426288801868835270492106993947604197112915995114552424058981581965937572254107005766936046185839242359276314225951845686750237322456759603748145980189059776804961108121557590869797529323655099898841350177299819355959496842082104980825880834626000301069753192457610942243545012743437450716899429371051211867219158404840981137613229383291975068640280332781132956704970786338640784319153843021909385956068083241483715581568396259195752636987682273623642112324224896492710005922760781512988742094327101054528754237919236458141586885270258539392773112881712222735731562030849721676704670485307724199477238761496724823938637012603340510706534351181996153969084881029317200199646104461733242881215898916605408445877896096139992987318145731906873820764002753228381749755775592678018999930324189197177442824876333371216623202640916494766028177080156786423894111586685688011981495665950938557538711931258012318331160904251337963889300181051120230609103115932800391665106596080767631535830633598168446758348368428189739330105432765964456879051204808519252927308750830541641304851455707320835349510791441745502561463789444867511925382945384987442566063009448204906006043257369083991279423162114362893530160793399699285905168959821567984270956994288007040196455935857805781170446270737314695931386171959888426118952101467375590156891042642524888399289654466242355523436099987771718835175111146187892216929041784423286448402900027603765571884992537531725230533159071086569479248253787708584558074251478492123226035068825499194369492921282063720009133225901352191495003906628808909871009907895566029216355866448914737736845790644354997327201769905144173809202464154251530692942162338918149240288444285075133944618027876529887816132041969401090287846987847564886990892385920492334645885733389419436477279790909091341772813629643754333303574358037043004482021853081784300319286239657593440061897292752608355897630109606533654132112990566340097215229555739822487460483554884431764499153750960005820072107786457142251215394626597569963464074005225840437735097097154397607646622430962279753298671868708074168956629252770769587977626889991284254162396709432639243485645087458694551096061020808093206545007776338214007467026963687750919643501412037857203092347231100992494370393708320499872811738017937322696774555707610282072406162854894631001797085842714184074337678706974476646377102713540919354306063411410649460108786883251109040138397053741978965801529642069217995960191132988004244552650915019726515994686867018078855865835421574808298727633353831708545660233858917647563662237147133768884794577573021995720201785301758256062151550826710559614330202270405324866041787748737191450386187741879029717676299197872483392666609282886580753874991214383746087025220310279773472533617580666326910194637424216156353984783827332876488878125565321544666386341984419739115816542616601648324963349826475285291926733083591592278210833506478038406112918603722814599848983097830581315034395520982081412746537722077613539195025889517091431176868064693542522839128326771480091959584028402368930393239154736799547287888812407307184938195577182240723063201686895206544687640630281399775064706104029034493767269179235292427362274168135045762598028536249138734928797991413187835109671539198659905559673220750521143852640279108966051780036483219570873111734115074991951338058103487950908974038098134851886097967115466403104564753347648560982718352641659526329916615396917786638111655511506175989071820500108844706127653290478365082654702041966987982878908836721331342529742280578836209612354653732433326073002815230860991270082155324082964944585656189121546636064355924780033064855471032610947059556207643266326637531140344464326492944561636346839282417426902475741477266699099786152980849026129435374640024984355126495178203251980996781902013822894574444812142044598426623741019888384208559543921910712970916170867856069655407665121032838110302159754220210961699455274520424353276071544801260659019540558023600224515165858235876641992848340377715370150477116094694836691277061795393942533072065015374844974108512854499685363701751850402909237997561589169025675457869520210827083768909878031896676354069706522187807673375193827014035929120510677506516382687122383912677799676888447789171562216762517247863993871283272108717428711344223702086945146298267711986933158617250095596090964104434921560356976896482459215836562525442799782192665692258120581558033492574793567165795499249424960075298063665812196468140973063333008896088816171159441442174507966589578385739707734977979676859709637821916818890183924920193973246570612043028240032328253943671851689174621493565330501072957930002676318557182606386183373401489594071076864201009438153907676359596756792302629504428522366999704605344294967109958935965681374568886109346147962388433882905985202641033311154846495961001344839569907670157970306933453309257979699079956926819304031119233929078801655791184970657666194862042461136637741365427441378245925218480531623946684625222197315054390197679879976209868646694999699674859278888713455497024497632989239751826774992870067279637566910007345273590320407363787181834995320532534578782021846118449101949814309947860044118243820984419736745490859804419000445718956494551075868576778851271505159990977502858494923514022235612698478745368855581251361023429751537303006818557469117273493285048628656427798721674742199083490979012218608843680997050711517137158570611085985890691513372586470221398741093393977039361247158553540610923763484523682835568252784820627228898320717723694093061333542121175991333662834314243992599593665960696107351417156638455237746317740792397742795716583300930700235386248983078128801072691025938930287376968857676425868706282990214366570709821133770328847681317014920704154248595065657442353807632171598703937460552314894194027577604400582486759193354203360843838606910672064175890259208307075477701903357196067720805071307232445374910181889113606164581037016292033804070494515314903925813579469815234279384990228125512002266567024403041514222966116576424501309877699788221537625936190866613817707732533241033795885615795411358121619160621500432576563478281261182918719627827115564824177588715466073884883715591032517270628425623810191323641379268430399492941925346651979105848211054848755508027810626878869187867659830347901602706764505452480155586939335957254498129699556696570027380813328004774722730135529143360492095531171989835062927033676879604641375159891719178616961118114432716145157707128417714331307404031375985085640225570452992262269171448034461368132527820780607964609828619518877013281746291583242484956516301012467854305294768475181157291941884161414939078932344677918615704122369371708036506060196602474860928129996622486469557508262693932098593742792680961181635374773037403270812161333494545423971909066718896488706300023367985826039895083930351844535031566651451092026159851296059513865691253796598826856829131097402235327069437577219443928434328384400271441206137763084923866101003259022845293803372613403398547408492649209182572601629622279147156083390159577515092047168599545290078291676570399882487588333585534231169569072241318644950250434788029714393677948176966364297033150854882031356954998921863304877412260624944364980590866346672083127268416825853723672550824594355257996961360147437582726637107505581115087314981543898742324930380981621861295108536121558140446088748220850767396127468046128057397053532360916283332914904096222498525738291885166559477068030256278689859786732629972535317627148615591619758136429547270993465900438312271038762230741357586388182975145863290248896849705458160297767111526540813620295698364644714724472948191408545056883771086292749321969150314696179430691327973499152153017571728254458633862404374018549675488064419671035822590685931339251460752597444582707200684515757413751881698388004308086304698587895736972649914847896547404547991046820842160023890595495725232622873348764188582383632538269105311302102786605890305811568432706973232733114030307043495993163659085418622196278936737763311713635030647817053612423415822035766587069512051953992779571551916253091580536094896390824154174644042642070357303348190261115945282641459509861214818834804967277146762580163895036535461067276236132604872698278328458925344458824649745216175549345226991903936459536460979954081640163632797120395694163028348322155865237364538924282966783191590269249494951477149810532557566371080419526000034363810866439781280230120355733306198188098102425270937341812229875057217454306719691906497016583466764326052297304485491155647894940470849058959212867207814957491218297298653681571212913236552752178068897062910768191779049036145154845794669488922965043437977793344016352886276291507711430348323667738425119187763348255554586050424934240360757621845608204900151033364836590191955090419694672925274887179190536607425041610429904298051376954787925857954509111523717828595530060026239943793034831013773550473807463067322029108370776975737708860148065149606606307953588112704217959788656646042057262940083470346775335909785248879167661576454128023181180524945171929586702629090833429783193471324360399578563320095184401685143440414478078688316898854025261042838813054957935721275778364112330324241318167343360063280256492662747796846785868358805663719321472379876689190241597477292748806196760333416876851422294748134136434391467723927345985134886398769204559833834545257787118951051268260605483563687031656838459655237387057627448131068728124358325001764245364511608924863091002226978227904855866382222464442425431433474314475581668959135189698631797370525227677187979734561597623346841364319890869155069062193627248480645586898159179172749708545760524257489862913057444896151340058657282652829531564341197650903429959271880081193251312026869800574872035285743510642385330834296852045864174699653512246081486032387371910600859765028965880439674020548413525342453021351856295488092092107616211344645917367978950992712348261422396527781567326188811878213123328017762177735132599212465009861594796703273738310539259182213755406881532279678647582093295363003659320629345347859649490736342230196130430687343978882303762760424078898120782804213676825724687064491365844222818056816067010426145453362946207435239136405023953914397747072953918408366384733000214326448560693529952468336892324760861221582135165275202005218250739128554197505589329159753550577869342228321268613626742212668409577887730845928511445946586198483954300621104317447001041222664438336813116660813489782472735895188742910865484500833863656759569254401024556038358997933284267633981998623260601179986760274802063290822418045436945016057405971895862216399794950436863644525755218709614993260945537166913397015072978287736115634550908449995028225714042300090684002332901824976401362825894254118143156070364844664665831168139963380005430261915463146573424552342204483296057278595589111828631275382215315484294351143551582197866584478528569455469261655361394700879002324146370275987655308345032768682565209557236384903396129165081192518046605751706439160361286459779404664653292667634749918078674031108811228438817523473243679156609314887385293691083064738876670024812803839377982210316079951743798863767711431251774152472292870298246783006381361750590352331465578787287374711862695278632840482041306646229719777543373374974971404712597744069418512086444906761529361254971804854698370721684369954336426027943279523712995294977463413394590745150793200938208933665023247322841107649845501979911133159254712156059623459757940297683278381624405074871346429704802530883961114046369695971226815337766370385220667937786964435380974761436878274902356426093091769518571920938768193966847980507838274072753564027198804953457161250980945549216993584499078484874785267592871339533981272317924991409696943531868587835197811471680529098409558606279494727903948671398022570408092256488633941152564395271776421464048512663705941309912603734280166543909916737479851879067372943836254212254555013028504888261633329804736287958427379937138496629280977509039537953219665786803404587218057926828961938810013455591430495921607577107281695546958522317244334913635898135092773973267415126220097965821572409167972597256229332490232088881162227766222234753242210120807747407610325330452275526786161840264970901104780825690792934820063963762224299313200063568991624390303769374492235109901781922181747495859187501404415432832848090811112700781535359831893079629976127088083255977832169574142785448698102331073914405814048192693891943159062169454002680886321779818258772240566862097098928491196580340734377937607088821594004519427683325682548807218804804007679623598247486892291788186921724005217289070787274216861928013351918557488342495957507820557033966685781569467748829789440670029625454048516340913510823945330345086527227853296713523154197974714887418800007041025820589493551357873393745040753359725255286185063222066927818728270908764800428784124793573204307947601862170108628455330887271452482564874075947291929551169377848748045049462635070552797149608503765234700705951017235641325777881984591872661172003696685745460220840542221476542028057555669547683637360968898450118397856731469991648880633890907159790984014256006272057360977010821493159798037396962982491086439003864514445014331566838704638393901107980369441395157303514472586612200850221335787867294608078867096909325926547344055822598851385314807450774840540732384224219644734025819265925350391230876590545911200737830967209700481702938331191430848654057561127789499421118424998434527240178827211741862839502069717459409239482976535382810459910091151853824743651629065750753862205682889476265848696436082848520967030839857389987630917309419060629496281241236756635040152107311283739047895530185668759037355328410710378683615149954310989534235768126957219675159707771143331030894086590262689894080370895197267060537889417800590242256600722779228350670331189378294427426945500522730045766228958733936780938610002427999733811640737443229171113982632973193933945671105275657555918864214483077220128428681167454708005892200605635623995141942178485424489483186944903195024463106249456653179965261985489255157599139203157572195820922417973848898127176895627635813450510137820356974229441782494737030977711619538061815214579371766388964319664601258700673003479832488409556858797959078998117423880107821641425156383916119482376793253085865138593042219921334860238225806091983409858871218763453762778344290752220938406520136707779968152924855486741427255253528247172366699056149362132605790510436355087174724834113748965187575165306581462212181303066315301320960430942409519725455207451907812793755358515494270939694135033662973544988973396777683697567524301168672292353459038604521975329630803488304440030941912868256428197935808766070543271856766393463348996586434260453133284315547916521011517752168939742605165030766900796038516240290433568520232532610286752196207009167593327857148856893406170743017312594656025049641184681875103154539763283726461867439684510045447125132023945688687766597880861767004936846640699892310694785783011037237268257360504620068958998729294375156128354298530492721558190106027964953640077334912254925442387740729673223166499572115611961551881304903934717574040024876322414554686770036030316434307272805333104442802879968532321305858994488968293067540266883436925864038477072247695079771053941588392808154053058880459597550490911909285265911001308963575707080419199137640038751052693482090942501460108420564818693875718247694978821970186530176732077339861277647415502956287248882359663806415839454624070268121818763087935788766568407747923821471105182828571982166469199936630123288527792767909807984765834383931893956722400977958394609223690064672735139241319262234620388515916577633880196569809275758868563240661943494026023429753857536652481176096815254415140452498510335611324696482255032132925977035927747618885798499369845293083345238802546077550572826597849882460752539617070212044325741343823663787510407994167823497481886451030601189402704739937964707804814007255409459595345101672426833228911574002088735004271030682173212965410955872301769184482218918637043060712379182075051139867249995295583465750813022331501546921009760420632596792972447818072967704396091887664579475762264610645617793164748866382323059220015910169579211637432048642698982311528140399525338411540636912363102121995227347044684079078905173876093979124548823282381197145691238419136632737089445351697509835447146714036939156657547867709412245367484353987236065157917658813494974733509428104961493554942474620720875647296999972261902143748279579059056083756950325851249698042756252748361196646500275970601975099606074238449152315547804655951700676138160357626896969259888568931520945123051126556363654663839261461272991240680268771588957889316160599569710500954200356063163151139688076868169655760071184888749198706278834052029502140270171978694078263316439017147132548152875658964505600829559664754900910383532317330767125370131249060714386903037212693101727865706038649781210104773703088619611976978085834176849053579923155651862431383431022674567684736308774387127077822992157921886143521000541565376835719268770377424092269842037775861084813435802807900150630950823050610048548263800805173192885922790282818669835673990275361675881304349147481509960829957683473527281219270491033207459002400946438497212329282454241538840241579706792303989314847936236002883783900123799168385572867695771164617508922438460055832387150949988766664660946832726040726878287373945048096247868344635932437160069222679970012849894897890005049582477481978419321334712040777199916783431954087488652931864766514714264978484603475737254941487924985100296540753080458143659101107364378929942979145303286316622763143038521313883590724038609092495803188089136240714458758399830383560754423682769808716250086661505819831824998301833897974851671001851683564643502169242146823652185977752152666542920005990946934641518220623851752537751857545849643286047881218303684251508167902676572314322013637451691001166997694142290887436189821381849855571694764825134004591579316897712820148758941429488850669324507872712451974472988535503997724982672629240233831864807207250139107127400146862608168260897698259497623455505544422547994910686204305825274176981330605714560945167139361420795045227633159138889565198663381587630873551225991639126415105182577154672386275653296493881982508571062406811037797113942796322298174578123874446096224428452015279564367267331355113211770502079355989084731257019495093037842263696151735273094101584221000541252497206282279573131284963238643047577457199783227405561839249577043427382319599235711334251365994914882913333928740073350907124951645502068855079724636039604632635685804151109123131712739032521344523563091095010769524133945487046815655770038232792931244221774161505031577001322724093627969678840258222492002116763908862415167494239554873708702491001595143024795993390717230411698147009578058784150021338324652117263656191113426696929261900713586810334040885085999423562195914062007547153091415507976185326323462038841366518873411874387551462819095436723307353718197104910692604548250015243547440394560667805255441322942948974183842881907389483655076616666371361277335977894638992577247645135891215487063467033667354082743824622380398098388439029613691306516494647278175353493232012218327392971802157176881694121575795268009723025655964727926468751095967433076753959463816355097496956871766173199791210670392520698758240104778487356244985557333204708499021743102808919234200545207160938685220980504645675184284844228453121050762298765779740288747256482368348506924315796102225991973305505649072713145721429388157049530875523452811830227320493753286278912252752223519052886183253603568536289660049656121168513574743032819237106537717904709214097719915338115796893469882060257989010789461452607091651277733593788339137592519670675006905510527768928462813954228232255153024303921486918362419293908654037280084353417303213966155273619837078623140795457332907897108536645574726042586575178593028507126572420839368484368370018958491963070622116760268321464882650072236542904504723834383605859880882224514300548469561838415022879499423195107669543752127199169216400770543028867245028782850647273988694918812479348468114874828671891990884701453431111147864344587995112696468118707489778104070434465327518892228671656974810328577080019468406633787745241247745294163377546248736772870185659799857255014518681943244202592722967678817668055504642251556075564916171489324789053645036956409487865259552469995124627269015982834578352522903049005711031952292743898785886169641568154589226202414910467762328767822344907749689597715544912395755850832381131221949630939457372484286440044077168864566441122999939557785343622797655451928276079428585378580878160077357156099247418097656005012950863923877178621988579337765673436294127164280636882458409948673736760553432008576399946711990654378806937629724434705395272494793456633816846321193076820213927000391976488643707114309014061067634522235963451578786533540696250141597709871357431191162679381491699563942216897265224847975237641488395383793574346512874273283372550717798618698701021551000589353519984830150073719877098564930309129255281864844829258743515868429895984819146699592040063597495028429369368873198978763167993079301136941005699261446790833304515047268064384006292961149121860997173380046902763904103283128696409045370356288569459374425530074667322223200386322138134733908829415734808501641257044794266958230792333202745227571465364684642078990172405074959930217024218273217701345091647886730052349270781451036434033783955768390898223572288286106876102751945439794981662328670514755612253430339546442258606039953531242225113055364987194790896789622645090276339926278954392270167166945071325589439788020786943442120341651366828857816055495172815115308301317480075266011116862514091870006994733016242510587874760987641227214245538445165933982194879679771351473969955003954888998435273287985089810415521087723330079962107387995119881021607723306201184617282177678461164899205199153605295616751391173172945395654239294110423349059103787415102726693105886827944191226825457407628818849438313851264231282241383427049766256366880174564300822353611962720777550796262619466532106872540728804146917023114528140840317596852330355722691458718773792444266326562498888797087327580989007847969943743932292883124322137063301956004223735658766810788920410386069060812270698116726308297368107955588684106854110370191649879054302219406484694170073619750240304565757819671649443045776591407603021952210547204917307655830686738051385907298563450602329910780970062864513135872987387948882291654208640452903704071825656311904944723064431026081081073404757066612729038320523624290205621259487338590722495514430468968098200264512474709717008619786187970181716895092155592283481803582053814926230370490395629784079975961303853578411132421845212383784104882181044656498296993061274114238470638302388921415991690297519832763572097772925473891868188963326690229683140101981312608529030492012661413327591028702357239313532976920123326012831110107078997652063841890366143637309598080928641774260861065126138074414383495952042904809799868501457148491851043241895603878897685762334471035732196128015051715577239774166711962634331314196293606488587011190442853876821981158554581137197696076722906133984449892780164572394287021366042695345025141604128371114770695701834991154170233044090836423780621421894552319687835492950486673140172361855270497458197959568205947950073679840276439370250289986413182003193336194655535667009745512292975139900956471277850499115761223324271055234379149987586682629276256253390757430908970596641072485400407190429559459300454770131574183980816544784552072955073487883729253034554711771391370830550006320486540749635666295691145008445555934197775181732007808956560972532303020045797290682894817904262970292347486595479713885917811401263758547548911961316352142581712197897525576228422960448022684859629055991319632517932755742037067027635375366308783202793522714858084292339011656671501278665656590837679385242134882358148971479558605852360496533473548305502237768806955557844010481215153033329618613229465813033336537478184398676343026830143249521407843137679201683503529439112281771249631898556980820018195774999795472359396268138861848245542423058479231453995762020843515080991239233842729386939891089562426784561554317389129254801681500127592687377350314582399281008229569328158183999518858742802306100557963853613395196392155516413775023530053464733557299818537284557535750487419937050264284975576662920551621760894557946564829587643997127268101954715221407891032064881601645647823084660147291412389612952583532560402430110011496332779262465316166511549996040483586559805301027394560280484168080928766422193031394190772494232251994770840033560771059380462042257780879075361757261849555532021601286408553520520710295144130447754062292533097806288177489766646649648229556897396055237029211704422979252528458734833401109377051998160538764024817778432204762470594116607242304128074249917790070537374596973995312950420821432816296021375250555533175188420274065362084298642581264759714466388812450367209458336985422071741806749995054176388808859340424563258728032917517420545787131100415769560794010947830701425894538573100354237305460714244525011454041867380618796241877108093078285155096876689430154588832223725100560716363667602403201651875816787095150003557614436667237333331683340046236405386669771440656208546330992643211335285146957219682298779087860159707544669215571843091155705396394313541785540607630624964227890091815612814190096320104956625184002583893225195605802198445712312789939529099307458053163838573286567892216865901228332168019240464318394917548999385982555826307224147978504067634102789293461531595984421512734321339612194377620166412637832348714906649332049803694471409137927418569090569013434441948027660747633717346012324198265281618858112734748641070083944732898906087975095388526058911791727052392694077002104545167507800698611464486187644274485724148865506195472485333893060639160659103051807008881811319806524044025133480287355585491919184456744501543476018780426517972645906914116217487567128563133488681453011526197334920771936980181268931278285363520241282623860322675903216319571582127160595985641724574810913676880252709252252432102532273916895793309914448307356813456453420159044305832376077693074437215433151913289045740201816515043477358890359213789650771764539992212104071265503196376028177176582636353498018209082730742595393153228362508593728597494891866154744943064476215628721098524806435570593396406873607180744473953813282653972608922553331471616579245407801719854025678359209411790943326805087487750722680176708282394493389466327543188516084295354182162004834145640371662553139141619850670253866446483264450080748717677953034046961776741430595607485723626749066225461448670602141758270127118646512191249620193364504230603951648778208860264499973088003486920040432307550514246395222421358682494751047727895794511874347249591953234440754306926697447140073254893645927941607403132864414524044697867939770897853416277205812284587167631926799933601388254386911552227383184084059199482084983252994090722096844386177147574314571724157449394887022063750049946316522843116024000522951460933046069921869947979118993606732601855925086088705688814117356658142502181230837888973694100337293112989862847778613776552257278040272797768065531980396837049773319973982805088462248339145844004536152944653509213707083152036452290351039809525719170957362345624485755217187102448243166603036556315871784282157543288672349348717840623142747567103381229353728571642307228253322911197636683242289946481333992584942808478748595930097718670837869619372948979591612429021400585756807616948211674448854797460547859687534975626003842626522638464650623564343302041773394577090111282749193594515588088236261633425994421808197764551462105338783410359080234808532140329203271562820875831447784615571216108957919211943353448134640542654653768661244316220693047436350164851783677608953398752470738655327338044890671429043385601268426652987039751027841803775472663177939300890287515867348089861031862585716837616097422364240417373037367277604649733758182414299118115671672977338816030464796344215924431725931316154270305896540480223789730620112311956777473773752044328297937780168417727887977286597309217308803554595411805433898397305025615537433801579393645460599339947983809975767905552662426455547848673083295478255829323119747505446625918208857004573496087526775032125487545914979731902085387707407562929650593209117791828800428812417471725703204558039658397086564007448425080307350733375671008352413272630978168577092657804088272466977265579822513563403107060963037964004975593977917736862195248210777841606523848317691038573053073031784362675239158378933840410820390485602737485296859722695595490588236183369957593766966580749129958269348376873827814315718083138258576246716258472595128664479872614990256607773390148511040417488828218929461250751017425769610668985943604433539233635073450978316816269919868482451918205803118600848359397306427188475028702087773798553690564967785938977487494914970250487168721140910627692618254393669929597879733137737184891122359152956176189891405885113289338528346029456760642650822226818112155986912331697737141858542716305360743373977430579524078502394039805189298369380610027939254821124290978317963382409418886099230632790228291300754772576709309118342627376847502664238323820959732283445085335355640455008634668609874811940252320526534466166380332705616570118321858201362171896246650201344570903663262591344276772836434604119554695214927665605015871270942962354114932925467008900431967249516678760143170704902942672671780131839747575673918891769186807238917420235400122560023714740892381455429116802923562874043607325999368745607161226229338842944492418648657209974456720988445969637802165007863514324288936714544750354408527657705301599726998109462562165948859365831305105437343688359511102692162090656718964401443296702408990942114280275373035093363443833113464581638619088912162123291484031569180302748398580850759344557861647419148840632003755330994357100873098204094021699799448397842682076792240395540210210383441030776886709441306250567520455352579888665135254238692718817773067509547613468441512479620065179037304393117316490084236249821270437847482172716783136378015009679708059131165235032928684302027467246982069876430828835207500282927963248508331595910586411325076346539048150030239821634540340647811415825906117336223712458295564990223243453209277516256382271681695427200141468892045300394708853018475020605101946357490620018083063614885241401591505197070411911729967119719587889092823012280373993525460035580512614254302898395262300725831157762863370109244831198867012100148096924524835011583484082011363676808290369385627802661887018519027299480499068045619037148868136346443058792435109572541555015497784566145512807113989030272601972976750992773275913166819850455928648827902501243185229685898161571220297017744064667222709563995331413062878661920975854306389112748203350076370324956916726391198418736361700196105161720162471843248102937036764721213226762408893953504232010459370250162772675167517216452059216097852788152189834148890259705139272507392187991511109328747271443165277513057381683228964744396395995686024187782304101420425016976137773602189031411101104431212334458824356545589100407373921987813100454844776534380465438303705028189814993131229667152011347464194528740236303250761652482200855136329294567772671050764001406055224147301728257369717566429676250183394124610737264559894504574623208432130131791995113564103695110757867060257668909152444428050645993596742700657451025326463850900694181350066724451924359110819236705428548251905741154804505505508362733080655947255671888493060074985384063549795325117628837201181817863041130273050969446051575605168180312209854079346128412050860895505567330399112397876192282206370935528942223807060853658890610501576402718232306241281270316658485237016620111763011473560126644324904408124053922931294975522217982440048752105776728403102731740549257496307495840981792778188721180700708863752728204329544588289579388877333066222694715865787964279193237518015608512817369334405309341462148098829720354899770380174263474483928336772799686237786994890256495861392109468001329532574631283769544988798565893226374313114441224696989047837297751110438374370809044622323475332510143017154779134929678861315968439385961515739821168860495507155600776307731362060315969710803244660046937904457323114284949974710370527904096349410805874245567243691719178487823011970533259055751857042845094073168081973214239944423751721955524276266247772574200280856503043409285519055993945103833644921622648499892477732941373478737994863734905852355463478753327082548768576839608300087017168633522156817947864718329061293257660610198199063950243382617951344002557212831762921644258305535159816763611938763168697020006169325728132055586637171783966789167915895287890081827759072008547831828252370247081299543737400749517373688829007287506962100942069211222763567773752308599856491642958968654313609393120357090143170146014178233850509729915761771170216503754664311584869232021758859844160469801323958353420714773975122647980846964869765581117433836202125740915547752032152046506366018907277207957752062975683166786196757813689510303242157176667056051762303024007750077433262128639884843160252279490278381814112022114423798075131553735900358268888198084357904414434574555319967979646151463455719392994864424486769869105162777372410907411198597498403440295526803636012141389417115266638048858314227841865752562884142127648195550126078216516849924953481983242914008595812597505216468860341785401449392725969911783281886009873522224022352585203114464821056327013108326102888230148187430401554688652791728150292228585244461657300295548769431655162724279119118352131481833847509785013797347430137071608892679017451508605986374210465491376842512046908909725762240522726687019026268992340332525323863535104191348859467914076049392091393386198418412103864084414354023137613806877214925770919215714197024633346732063943671264485173641559122878007570639139658543547728896701051247515678318812665942851191686624621728273480064788006117009139580808610897034100911877740778080186366574167228298684840758183864843258861449670043808179617983996611114978065850616735693092308900053543139679708669827431336481495255068701973149416030004643865319516309142523185125860404273822592217324053989091091302559074600386370749674619837966660225418724169430343790988234333023767106710563454438369477259836338390627856797087856334961894657793759992807594168283521780508803672408859522999878757336093446463533308203783368312236328928439184991340831031626114111327151502573539975646103382629905728664858922868166376820848036760303098639140205348738722522956681432500129423644020995736084017442749763516117115277549648869116292265278428526289553184825016566791526551485060426735037035832981718033374402712758770839390127774547378931730573356770128334923960936531964440978354767272147322288888067573472029560085934534110313675662413325767020824546390816084620770253010791296129785745211635698922946511007304993220914357577364069577146079838576031278402418094418574181617900713701919239470277946691644486874220107274787679963476778237061979001228306824098510394346729075884178483857581631835802246780736064085444969302476371194567597874715791713043193314052872304066230612589628978016973541136091031622702832987089720242223229084798580540205185226097636143754891975242092117931434675365694548355059207498048099158260340785784217020472329746104782584896161317384693372326060414698658108894122344224778705663678709150154081669976780757158562102746084860814764858583918776086785860258340512764857196660721130578053597763569868495397700996219787168262154497191890854120870332874195417077402233914169964031595420107338713827012819794809966508719178761572750699022336880053646640876470262324976359351311297096486671964611797281913113284263637094121357589757686098035103167383180154348750029429465572511376520412505143406766152834143781982089997732617955291592789551720491804924418091009175563823421492398555923304731248983518304713167010162813655142115673884387652482239068247821361298463188283413072658092950793100937144138118492139396175627833176913659219323901584835947581433700612197756427779582694036662419959356770190807160420121304257097789602783500697653867007478105290351699608403557926869615200262123509304066897834669537632449441056558976349115478313833154770738853575692529630151788844780863920159201091870319511226069655665132280286432268775941682689555226668782584202596737175282897582625099079485553840638729268705480034059200591542108250317937615774862290557055890997980204005332025952544800343324845216884027793798515841057574530332929364208350942121889354911862108933340657591236585467109398857008006027911428614847249425384637328045305661367940749625138034422269151150602420944443105685747882026240236553314547647867113637749862899282017798029648208476147696822461323294947734658181750035569985229966554825462348155611992998252836229377272136615986411904104210647376344681343013115103890070885964428055569583437267234094399657890325911528815350760800363597918733764750690844615948401681251528527766888361520847104369546565534279835264541806642724595491500489493887294091873451327406182703593608011068318573514796017062315095402431647267755348078131110259394921227761417334907577644794666320608876997824589639135886306110340134478888022422890142166407006080713176705961502291272002703590835205462492592119623864173411216587307594610512837868369472149280332442130927871389494130804479291283431128667272016044311517249568380437661079305023818811730974616880843070400328719253511370643527811257306992198160015687458245879648186252834502378187294054597323149303441685266522521850869860305732327510673088152450859808423086318852728072101634503558977559178707280702428209042211452220265282625544399443866928806173730820374563960180767144635105575595603518446337286137444407264913616488128937596964449953667699064116093860954264408893322568945780786278063565924096823493863346080740967710150284584787206879207242300684145219709133380901872186184862671858167830238874294250736319653743076015345239687003281156190848077190426750592478040683414405102032289553892870220398047916131302519403118383710000066612042688294221315779640907575157927490935155363741899054285358230097848851859722095342713790050108047951032870173691807790096449292756036316773818677725239118009951690561933842149779697239281395735047133801589610863154506713166887504236392352240570831418967811870961324764837195468500798380031695227538349550147863782532028524120868751400368777491540647624467432597021716856185918619865081671992479700313066257759117208640623292956989779987032603163881425937451608455165535749673520994472292426336521461584168987092411880327757676990143890624406607976753841258453230867293782221865697678035947672317926800594029600055306785121849519311694784944627186854346277188398780641061045036291528436374897711061839701135573309046340617604540934368394422823160644353620323236078794793339097764772918786075792741745808952918696315556575043406906309681539348867548587870575904528491087756617369649946959895383312774532546439407640389070873793228562569130237847180247680672435474602327327085805996262917390366423858148708247095422733517114064971716681778389719537341443968797957561763562933416020180617216648005050569703095310521260459357560209684823150386394747236849291584982284295605335793623495125898537170656816806064373424795735853871181742935937031181965872440846907899872827429848573842523653922999530411195229859874950586773344134990409009650070410208715474337803754213075536543555377820223763148649228384026755740389694384850361000856863116669554836199453448002806571139092424410441119696799434616131395975625799040676264924437114029245363795593026389348066379490863451264557034643386172598568616597368892025172280126449707812200050270087470377005598733320795660952778158610534043081891903520943681954807861170979178941950197321428893236903716233548643632608797787500019766895626924466673128180352961117254549379299709415133103715140958227820928229094912740726260211894527615819828706841365456428653329391177583539240351731739054968841586333373576974637244686636025955846177917067591971481142552366497956960125116360562352983217194837378669574791492346410171585047319310275376665261572634834229911688343686333454429847416334921802831036042827461627357121734701162924931672542506608860134728926396284995072669196007007580408523130448319865397332379571592662188071676544718970274861345691222301117293421001112541429379700986900029756991922562362011093116552000902775799922853957955993327555034755847129864866638410252910715036653798234916564814385273256780336320513792701137234077458000972957316552952031892084674609638300720477435814200538590178126557915074566055995597897415312754292852481254164911308656334239830078223775160829829117114154781907280677089462747723930981165946014054990014472520916253127317846980139903517421016132247094753258536189216607152214450615637932956471729355747098399669361629603931521378447498938253053100801642906144918799904906547051275521070652733583753671186898604451301467596295730792217492562549347240214739190636941624465898052634546306734305595889409080641626575911110475440575372855302293326410247976770667529076924303664686829789439157232053824902027342409682529444111778408947156650089999987717148763542949328853086831844515785186604031180676320083033000450696920367000505398599146656929447947287430198395186828325858696610097132027774160359874930003324895613884782258415825620853817129209937912765650596248498866901026642630950927855501063688490660932841297922572830598082673994897261597909764478891301820733634266420503577625874336633690115707669631437140075946566451412958942746536524496823922889232745643055947798330581166068289497718418324137962309153181742118095541926929482229917216306303488004422064185078362925984933602464836842704787871411114725372706144141197384641154383652837266123166575393196553261929568887472355463660001498983889379012892218030646887588658288896911930971251144599267023889075592002872915277265242563946905112409849503805106428240465828916403823611560916153657656727983629079217923964054374034701364226318760136290925021321662853857004740229781802122754205555316284482220483238371653398609908614439245767038749239197240694171582134104299227690930404741674112023782391360845207396619850571152662585836246335798542519641213370917895011076774442397786105636394076814702585792286780287903808286427266663910845453081464708383105342103181460145781803923216471895038031983643481105265646782449558581749818246040631558401851937507941674953110517270002246674780893299284463286606774291517479442374162527738688569680457913434174283754002767232559317795443635855354497057122758797046730370607907982504355478026331875498800685721303332803157141404076298174926629906512308183195387623039948124433824134128296005771422740566386948320632000903530257359135828938383956879068471020553302908984353394000715991087943311520830190320337688819246578481960956505965393112161453305903806713687727251359795066263450342442939333003972425563764650624924080626128461236931610214301048797664397235936313327175739194533643795764154056374106577626959992963877771077600718045289660602103039842947546080597602687391501630420883188998216890166918738740844909807026876769273405602716523889391826824489348712917387008102137886129478998764147139727434821208872408179270796399410123782814767871808970696301704018467842636034699213405166037784357000168879373561591773550598350939654112736869791182567582394850508907204773062224744467391445276235839607472542856371702676967634744642029583320838855749010212544361776057262080478715150126418410035182243846686045555890494726472427997097170177048640499388612944902856157841781611204792068873731242150173198104171858682388699072093546491811502628918942803837827055734963185700872961879703796861434510579211791122714143169370902600985002104084108892511286112544163358222667075900664314732400068913336879029626534535084518815621726124052411173926075362473939687628837612948127811039825663390367439291491554275496639872103189283742923627753063663065700755527095408434268968569062217676184114777209029216326632399583517236302884251346181525896901653548077728065840634138423932500894734392386546480085325183953103718625277372441145622201592204290111734798722159517218120434175336769794001427076034444063646728880085576530290364400536512852261469753309018847618621898767213961502902260980721174089955829897201459332732902367410658165826482857587155982407782710517000783559644442758307172796427101810723515455583801202829527616455791676653331210150263184980630692062324592463202205990325684276089526715200629068890824511198583224602192599484886740041927142580890711142550102471908791727517514934157196242187485459484395290077153835701330121652654350658674049339804838515524822660195901420794428865053937302449646062335094051497736449214779075700224856049520947996594600407249498893629075763000953141669393519483708394074490477828256623896022907442110628504643437898450176723732469001682408293449862366856759441964859517116958477166520598439427924258325247186227875611732971245482334208234361319548653993918782338977803511038198796896943203430852778154608272929498312554733828102677160966018737102502106605157388437806915754908405251787755104726172616135955451405058172730493306674231843666349460650908409406778778633980479884108903432311466558237250009369909856786976039742530937438678124983284634261882362065665194487647595174995342928713763768875926717866759227092144376806002679645690714856853903700556025727996597948697860761865746271727707402933514305866542834300266601914488849118025714621209802428113752631928867826218992265749828350974430296424336479954725799370983920474187758281374887222616886956588722064124371293956856252755007859946748476108170402075098299457682684657081749265192769619423763651818022421487488937515258282826732518719018149331222165732905641985868024375887290142144739527157098844167409221119174871132654762903049247857772072317136734191162985784650956368972810012103361239250845817137031559518022659777172455481782189740874166822692682354840665836613521679011198186137050714952704046800477219216465174770406742022183170673735757296403137598632019949880943705444148346448753502398694930303025758339778269132844971186210381288549068331961174777407851648018181829769017501900621344044235793190627825401981919069816896780870635097206597509557588606932583663611256780549705835708261557615674069689007992797476656475630580948230821933383059431017469781123529044022216219402295079596656565889968629534524862093627832360825803513351970141542157836181349935797140812696807397227890635877011596747995248157126251570648657863455209605443287440475632899772031015944028076248021273704998083488909034961832076754329281261261183474278411974536216613971279065848074209443722757750154435137263206424948081849037738405302768716516831270475972340091241422492508516276437214116600444138249641853402832955393742501783729030784170017404981094047103501841033293898699875893530791475954173480444608975321336883928500044812398553102838816362086190467508976954094713654274459958800234388439254281991760983763438777646508612061169563196351746348532577931794553422180848440291181532349386431736294201135093424370800522278333278926287654486658444146599179550866289595832222301134545733636997345444126297520402404211197354079601622205371658265891193824803376259695550718024231389001879179973669607371543584857581073989351241235969317700474074385751243841296677613777971684164323032616541355782143019800575273451742524983839809739090660595336311915354448145330022065369816646815236751431990711825681520760486900550759826524283324547076739093247410103224129066878313586071543130486903470658432987346545315653950797427643285567232736302487731067832086670710621394403922173825549868603397286215972735563489586789314406986029207342145734030645706770642676350798057269664084671621129188523025786243014933258722851667892733631344185401096512329668289348247972777913935138777401337245210595898607131904936724481456313094631111014493601360191402102850141930960390314173135318086532879503726847531749332409216167942376581348543651181651117187542587409360172318719689831130412975082262667855773689198058063010422925744240847670441676757783384920255123035707563006044879752797472460114262104374277444997647799043173763854489007102071152367622765926200578724099740732306723980378137968821983851814267508447196902890115774249971035669683267942414139541519750368516623919727582992626684889788744339134138032362784084763645533321076563808239873105314620675577303427327583682091387225011050493808902797160443260793544505012708161332408941602807632058125002302758949491985611024544785647850439013112879822715341477067031165129519469595792183408442010745945249569304490562728157040982516580349741300067106359004602462990550729227638632402023462607671695260389576633869566569043342694675988694190153135413237945739164395502283225748757456242545839470031525779259382240265494052188510975857578463279103696318877919721995853171619814111389622616786268876007554707348557544937775194296882556991699911888173623154820393593308714820365766732806622247214424675541381079368964181698564961482571313514152917852567341464703096198750295494924544026578212102674242144964445701006443947296101929636079050026909058219133666643863243730154629112763744146524770594991057653607695012487228893669085179782103253611969422618345559010713008492085377364754259764872893094487605812422154112163436569861093710421106716950388298814922401411486128865989367053773321532634769292101101476674860345225069924012560730160771783957592362225388014927414002449225526186237807697490903971892183361455019302541357464041790821131574650469610444530894983287375121167216211864311447216441893404903751147317436175616553443882843369455226868670565101761763494181219599419586766696460197469811437723612925271716415756088574280154474363715241595646828781426544046645246497242020864953792218313555606389593684248462405560021392988295463288783759117866105003478658503455660115817545915352544448370974206936248559929434744043045746672640219041210882853215145245116905849638378162190373722472017184575432617710366441063646697390667049070606902425104297610825395916024443702193677838634593028713501663718640072870236131273557041305250815703018140313494863784703097514375322705317908684775378041784781748635620097902377993558803827739843423490476833436740904316476773011186120453504047337606777853206398684591672782251608018144453746871875252517364256331928393600270359632721101587727166155170764125108614932020765997594842177270291795007408861452444862431355861440802693631680561120352018357243906706000261738329544695447357941862409387927995145790446526682733033786008113300618067194411920874123361477568059823044768635163829679108790817245720789957971210748554749345062522587801420068489399839560741919795534106139055786900588309520770052164344873618899010932978220758843581348859650341919655475692497268082223019284280679772520012686433631197292199323071887070924840624579309471389683123324806900826268407109478759992478260255832725526466517843872468742797140566049296512798324092878615904052172260248574697001139492850539977529206279600700770613259663896895799703194135928084550858219786539463343472277568864481294555572610377214361491148489136973357368188128882700094063283653985204118336194146765212331158416922954835418752511251408270586765724591425588409226091058601208138206114065037583845141852930784453723316333812924898232803077682376748294974982753853713756851878680484258494439312402289483401532007740589177631399696742827830469967675651747140817226190279799649976497849655639863617769315244428590408458927416092704490654350914973000931073861958650105963275734082466639806102225864372056254180720273181315342309421766415872219344739267536953772609780596316092269170988332530986822616996861289508682208086256395382972072081374025537647235697411651508333123239406850418169373990371189913856646783316942823253836747500579550883402049323977607926482768030060735185158115182870564716395301172254266834272101273177846891868924522723739959463957070600015156843460292710724582322993022940973592095375848850853060670068172273292236448049880600698058995957695730432390473042875447075337999450483474708656685429011941162349839094885934318879906394723737179730012596167376688093748335400882257441310334360409685853573051054453714505443862165595268096758783222864408189168419914382181229987224583094879645153620840130583832946462986628470031649235441408599593564927022726472165195688076515508056824155510570903978418352980685422895385595009946180651989717918633869408357835702594144903557176618067989583569738501671481152597089417434707791071362831623456262268130656395753519018627437093222586981751459959926514239225086785671327119269576809526521231981023350137931331135318499944022267760890951949385325977487895414682360960042558949327619064372128310225148337722397489420399980372778251561563139805636970765480605007455995636702883729663726353637675425066705979420132212894285702283311285896218713156355439268164901704962954030459694718657113533482766817096722878045575280705102800625997729621884004060723692217691409582975639271337942925125919550905440423055748903137678672423528263739429383908932998094398931856960252517916599639572257790434009627297617153237093987619986465054165714389588094603298713651882706279946283543381075750238246193703543051738069197526230574215946657414741854304721621228032232455456844503712028380704132226915630609613963253963870503623764517676936994218385896050151392589703807609046850537181459831445682090088944933811794358014895599496244536997862637928208228753517963600608049471057006691467409758779288935994380991871426070305234248450339697679872117263255974782759718760590123008345072006050034001991807528344958621092025942059387505435374967092146570953391546120003548295545741275764288511651776029082824559882926080756041025977555368083886015484145467558878985095312466200636829707383765813693545482474188538493909336619321450211568670472560242633672548221801740351356445523413037362050168178403907749814060323642618497222079149446211010598734918093299652205067829452112270041013316048397345527432232861825399079967388940276771327494574968822473094344583414854591278182754362049515666598638522473861010503584087552443006654838235382238555781216563496277391920801204793887132300076116870398786049936861564674369605199583669579448872146368601224076881178753752406077842328435632261075480363510367001801961057840113614711271995671621690042036905078520269069366682558482120349265717075286613227379420113031870360943228628789086476428258195707254216701186215891945472591534804590730359177386653016953372032987255143314971783386683238504881818729049826777739584249346029151272899614590762595750376231889595624759939101080549838130012211252964045645200627588172046270093688570164069662499586278827381212960045705750000785932248752934619501212023563854163683421390772475818873675927378694688554939813710240190886487075820526877669545779758877332883354243889927575523862815915088952382236313512920098010279664954647386838887202717019540865435872946725426891157360127872941429038801350478110888724893677418899629060318611913442694207706253780790276323379717683006182500594561767805376155703002834963874991913194912357451954936720821459825716174618615596063462458375576524757631917323491703953308139633755439335965922129531249882403023377046591946374490316919802539712582610255400660924067572105014517708628460169493343201767341971965422540420357374995722866917830250501502678553744088284097318761319813818240770179473941565842459002124517142020738985860766526282257432481213800535427299274674623702678187119983853407060504146613717494336142270283727976365281968563175204074755523008848088990800386648856829961514247306999638541956420156945346090922611617487411681230585058863709565508644772195084949058058719086326763607211461667600000187778692721794183290359495526022618803841273971609181612203825660245703270114963661647959317440726158353890801973789877637709960518509972368126573625326451772166859169468955502289397924770690330522375044858749232190408047053776997433523661345650994704167989445985198874518410543066132256456006028450788008033880891015692453918210744029914657903863675612953015877579171315436525159113610494472744267628126763265938389807586188216873090283892430833494063889765568837008096371619370310689451289955069567566174872236694275827281661797179307741803292837238376673864595467236269481407077682886704663931109076744701665901991160923636285276083060918777655109358429055879450699219925078470269388273463665255801273363149923249968015168801353207737399195834663775184083199115782348511617134514627359890784441115003736246012038118974356011474562198028721290060354511227345393534537234562073777871377099335019399041339278411906121620755998392151264912085327366251521128574990349255551214309735455348955778923670394335314539862888259529567396997276375013747996149662078851653066186841424728993912653039440264199711490149432811469467224530103343064597258194405293911632395165968144831795408318747541690587380970434170390320051033156239559554742519171580882788676746668909327151352592426944060286190560604734762714947361876963566897891741834183652506425674711695458308418208330241106946824394334396596338432728889876998978417634131916386579300519236402563837565928675494233654775586744296879387934621468195290011487890716671653954155685915316335193495573782359368136100360290789961354794736090499636804713280160388335825766137195193098846575001382718128383077798640791471842004865547032055865281937702616859882201981624681966985307993479144739867110983869979607767929867278214642178269939397493081421775631306784726772352864105328761986785510990322411304324195676647798267203585414464210701903037261757298844604459337381713385556524366376254682187726785083811431505547985814800774814816428708697685404257958006217668399801454884125386707710734761235034861926529855457776206721237273653695183538533176806041849083955167668886713174141598679789236928446279327681991728539632237634705837781046891732043427878671898223765277299828568870516603466670961415804038576620961428653586055046018871656196715569075936872603682709908796333777241826354237136406176434420978839379703703783652642388385960320881950877094396391841416279986544845049387831235966594211442604266812492244348405964891274684272559434340334338999811943909907825835701258729796760058171170214360334160766480553766034452540352369375138320619150802105449304055617246176192541260425629314384190202363588843781480770023630835471319577643628001988146996973785310919278140365866007391887190212389104826616856687628520350305032863996551526651572674218729155931084805011685844406939952758937521710801427216419466366160740532225293765274313169216184349195977666136766717987142625356175994611535264187257768436689102642517702612448985046244184211659964535792435541137956420977710626494279052196558619663722798088268698713053375740114364557092733757081713179537577463748546842481830752785183364530715320149175935232984506492968052918165659422721360806550892160959438267762812380608225539328804846072263164561545575639054856513875905839919604162042231658220367271430538948758920547334308503418499710478497154559739249113336802484568442540396649783616728183800603508360832780973308695391981713746121601372801184750413247406315361269012754311184019898355359007879907603241487338605147634393590594328967715777505923295298164092393543676551097383544114405001278956384722389091387427761772038311540283892263740657171866538996067968104017272578932797179635269874469420168221362923758899154388105317993777632056403833959504107928514374546825535389552362280807649825353708424120541682400763005579472984369479285386267831604163546854319064266775967902844188868308795375058013629662322023197647137506063694194554843413163059691013934035151807222545467406397420829601486828302917384124021576443651444990364927569218074458589207074014962466087299898762113558543914755299485809750197609023073255570943352225102105731734661097766524187329298298115110097932973446843090964555928465285424579517282328966315859489068164939678305703439747914321023187285731272428724336889050265484151481937417796036848633480453513623389715868804567602893177213353055465353692672924739101171138610309654850270693500924217650323348479411153022055030639563354887035503720460322406479303582563860938547788521036023348260171474222133677947776350575298449684271888253121826125627913887481668685475595436616649305532671250826195283899565107047329808353500120360611859959140202313805209028328399692713782698574252801127035822615285342270820654581303762853250645186118427644830481324242336615492786733076558451390200145486551689831793640224594629861239796341792572010594736144424800407411137728756039357010440826388604727269113553094998946583914478488296095486946560743149686943688231061226147211507799129020999282386058837210872865789300781280277970694385580967194511412401416235640674505890186858905664544469709203578221621310749113435659861661217461292688877536928257678952817109273188935541224169985111395160910958531613987021773063149521637537589025377559994076851218656407238140910665626565702784423525667847313048079440844140998864791377221007676825126831429366564485672516520075604009343723982393840895814114407487392057776128254297652335929469512857371390501969159961359530957577489618457016838588949708582513052725881275355945290412765155560568563640336127631009420816368967729827276731461377248721106040521602753159209138140225980549706778781250283886039636406977504225239950236784999101328055900775857635867197604769489339953622837898465420824875998173996352444065283887326985397115064688914464984007326511853685497268507529016815824538394228924288105836489279027131993236989123285517289901207677080477775569226576433925096864626445786539367556434681389942194328843950870459627055402240381397734392747357019145948053940276575346906133669927734659370715941272558600119772111412378354576911588825781826553055132894274110028380836266723476339562324130689662112364647603020950802923777524051499499324285051094149547777098236025254572642987230218763633291785558140701042817560284077467073066295459665887274907541978643201690107556582084446534839524915480706223554660785346529021429106183736546107787187830546469708800650785847054383637502618409338808413517123400459384302642004955974139844157629388412062740464476989740955221089180294426958877095261727671761927937868418075376612008890477389793377016983645726142526316043596772803881945043647645215740147274873834809599059267606084261964698960248509715332353121823244485089513767634090990736217738029431721468075020900693562563392994068269028861364896473143628155223984465649472814413800790078318140079469881226747326581550411017664874556902135578674656564534570773214693230842462947448260966523272295544161091104357896595890290477909919968775070884123049124993095242367713555446062188395558655296138301223064093470988376031983770678405519401524840246704362187826023125760984163811002545644566964501819733129580719617939068462893239261493049462342755018320371439310728203115668020788644200309711555861358450290635566956954580773437416462086618093977801742373731505063521185505244415085090206987944978568347639353494024452092524110958749998984825586408910146193447497590711907873272787113696615533531565870620102975215945623441478104523925716843471623603088453002835313529348079949159580692283030337519560676651831458762141642490281325014029349487138265081451438850203733366333628468116916597895539681242023902079580589851577233665666414237365901136803689090267007748227164983837189608338639578446014911506996703408255763434747466923987419900657554105729672005084442941724842389121214269167823413499740443972346957545830318951242316409731043157131579535901218385287199749049646296068425034694564532845710361494713828862005473793835431811015387398719382018666541461136313913116744281086121375867037783627709494992092317851606310775089927121413779182541302811023911837361801571109738125428543895418962134009941369637278307866867960837126153861313625449032922003421337118021629290676966846121508129723242210321603738732587817106942366998061503244687812764267710908385922798065485016396978013460541968618435913548117773105582088684530049863192974847203298965722415979433491085290935483220740994566611613696823662949882715033749001640110147264870630886610247237483213907931649935618659532111570185146656070529232387244916049184168046037250009200988878403948958310195373902619101590445072356873141946381237384135661580393702175960132524386834027451854627727194318432507667130455611772814013851784584052333024922258771613228693998940117227381572061941101345298486622495736188101285436343386549754639054572501998327674337604869602234303682701873605473543791838644791639156035700647686960741573185396015639095468674362296553019618573807898415075574133024882891143945947810256767311291323138093117596367449184717057605220809851126859409477842119611977088796326287748204439577501230381054425596750737563423039864142845862785280388502444709546359712851691252734412734359742615832466074190049721849465650093051019635574768723783386055151651735848151517625686202718633295676102812348442801412599637938049717389732292564245979803747407899557697902362618767938004805751721655176946716502983026295090135825169028349058615116713492418077738856210433493478850072210700924888169626852488705956156255041172641056994758835873822324988744148943128945090206289980095702247584793978278142537535947486041412536871877369832372787281612281593139750444368708477275472597778583250014953118410591027623720883396572742746357038319972051869323395289388075819201504041899516864078779460305131731889848927012006966515706174755118831329079467135101754229603580052004827723479760113173071123244154261011549525081264724135613443927656237825662371199323758294578582669616206562544839512015012258245080991671810678369813309288541716345432972281296817085654104217301821779961732043393199139455645620474189946872518152713548172255300288058625385956978570828511056334430926363395722427572528752772444671551440813555484517165085001758372007673077112954018323570775363499605578070270215123104088606688448577060860899023622278614202524511836986454392910387854342148396943242133477012286995968744898244563596383162468977398478184277295661481762591497651985207351401515824409521660609354572046527637864969619230914012076322233392506542396303524565866972438270655986053704600189440465273875825381895532358555462680451966256335861978495546503187873743387784978947641562421066893909936209650398154751704069179085699539396582252311012389345339047966594054393773608106230174192006550447222018454906733658723696665493011493664269278595924408723092565494006823329479451951519397404464065891242637452300007649129768529364793900024944653208968817434215744920571875121434386815049843892338395452792918584971610455398895864285827377699548526313793272198942088967921350737834775007248208280938066022536570796663064852946133546290268404190042692459294492034402293264343371330269862703387700098360876418807459922303795414662189907858782299365616790221273940048268416152014049465049948005238050987027553358075495030637943143324338619249617846811660072999527507555185999273665975216168117118159073933171188285171117453420510119015460886309924308860681511653111791952827580741853998552868586053333750564689110885309705634882588625966193849685974620960244904066411311954966385375811894553885026015793571988124589246037711679108078385723698176753899762925376055040848026204243857545580232292026065339809291132599896890764369783284351961110447533601346828349299231467056903480420064073276145826735315117130340209099771794026832305171584717454754140657289209334208976015248844850845404050637300709762960589452861432395558024414758445595655725213967793838725413090345158154997011211006374652433472833098024837177774797661945200494124277696055556556894577071214332274867082788081707370600746039746360882766463791733065125138048546277989927509612242828600654282759141644671796039700027396670274970900077739843592734988456915623069212484119121825978206677077459410031236367418344721006677455871053163041003712042189612897780929835082600753974936325109922237793865561776914788711968770439728055967449982898950651899982744788534821167407563974588226823285575920691677529502046317495098545022383085315511181483861529898051576280102817582458938116205209483207343279885736072292430968860913006927283290926156641045569701989929496640890861182441739302161635988880752375451424457182954097454779729188838421520670392210626585028461310796327034483350482391483016251093924985158558443698841301013331254208034522319893539183281562360482022588826507697936014850429656992679988625240914965258320930189828866539618981466317371926964522623493643442851624845399152050009070765792565621889824232603767767165282032449676262268982025243292554357567271481325671711202372433982085929765923198256649797119190007810875584787664843362789632315991154206662663745262719398037581876422632867037164282872028700569660846679593179242336247603819959491903454589498341992996069048201406247156271456940172914853343167144144551586172222714213916893289708751034514453156143242264504956357959030177937396925277973261230489596232119811715328974270380622628460796973777875948640904391677229651848860520815896272208907679088134828110450901565506763395312928031426471013866151232863994554000694606797847146804247384693082715332759410082939683749041098789509166251959254079859370322434809343696683034929800365607415252402102899433579337813439449224257529252628527156830307096359357941185141273866160116066380010625533743320320377746595636980770962874076613116114404629960783415933100338236013485470641309904556133798725608279655787597494048332936199674208535852366673409077361218996298520320269706202804228894758745352791061087138828904733329432433539484159160582178178459735227214784732662310947846020009014394341268727683573510426697995359220854663042915463876305990064522185191763148154920752547844845779007231207459432420283698920645252373038453488854898967193723032865471950481008853134387208986918947131101961206568962796630914360731766458608262627343812412347063656879303988597511342669836112844217078426758321008821470281002734694079226496689456971578080665876984012761439227920310372098500532700211969750180040573229121173385312387596075537671869203003489294084475432702322644214282928235785172908042336151939981134427923742839133392020658831642608467227740191687806450107875251863470374272381541798438292982306766185556403187764289025893488311817678466791716083838357151348972720584920548957378389064021727754772668290490896999303357542975239194832101963263502351528593964637823689473886731889991449674142993734181215845521915246236831401151093373193987829657188329464518993490063455912316333140803407907914177319948864022972360094276478769186002203814451191675530466392744844476212011825726286467050021284205878776588410702652938326516604275240883025458081090940842857583833579028436119083966938762050917337299646874934366194923907138856165957470797700811910992293718112573345548422797155909545374305337115596434065196136113149754823282880740606828416192067046652785656619928646437743389809511295178241394470506391451836836320207929643306762182757138510774810498541722186475954290060323087365505096570689376163043916378350461434788270983803661975800895865895754287726102703025422606463451369562455904641290776271907543741731511856357842014564165074999021492925317494834761800249069681612811190325517734238693181983666142300060185951109048453547064565149487815833921393937814194000638066261442108398564683823993155549356747587920718720171611740682218452159944459960818373690739485604813800522093451629396560660234675553474488290557014175320462595261911998760315093376371468703682454095581231994001935768161494770977629730069001878643110384068444944314465158651005393601432472734332937070378749302507197271449993341015445253162922836429975725725189648758319582023539969413344409661934798684127317341166134961732204361557772967053834579041974406658056595909121324922758323677943765444235562320221029742391401557059678521004119402191769598252498070956706871501944040144231726508780511318561708120251088732109258732357846087300786092197387770400600728893135725324478969457853693853357769433577414259575017356352517421146099923258359299015551840378710225207771200391324466812054801435253914651138128860488489578879712901318608790584154810961777678509162917095253607226754760761194324884243574767710590082411194752480209027114384591191164549441832720379082517019795948045789530639170358981222301792490618055316745110910505600127306407233558223409899792172873068301151764559666497638843850991564028037991631460546157701739256471980895706446428141288276691050102867711739989578420748253880372432554505884777549004397729589195277441434928002432482369936900516381285880260601962579772631503942972655757183805396220854434835441049602381838121452589368236262773218930072390994445209997216000918891158596153083419891964014914890476567882807759376305421107567457456003699663886792720591697861382709081511602619004305722050250342509848082035865501416237728682742167618806383712945270838159271833417608928671102835008670567931423813921366915191311074358905845345225042339031455999111338129429387221195754030216200542521789281155854080426178765367329661762070863391920764079251202769020953030402127415072445370221820021491607489755566392139845357149079687944447394956808739221989634483416439137057371842461136498129321358484973910374926391555190591557796418274971288302771228146210412300594095508013100758243661747390537509690003450083858172333624488820654479336065962920210513384547276463616110229904582301308632297108337743356835125726254478149782963403655656544358094260596770406479034769966725970861715836922142203300194532632286994818481962010202558400310652955855033873389122563773425579989727993656895803841584491390752111086466227468394136382553762340067686064235982256305541325039290630850351590541239421851174363442685754435167677904707243669441285151316503306230666887236344898301123408357885368542456486118130634089153299623335804388704518327203114670881138079177215554991794234013150398861508799297484976992041705562188608661726033092898263894162115331973867394753425643985906816502916620189140699863741688651387432941936424073829415027409965457353424422135767673357156629216231825664267396328458694825779503131827252541643214479182325504078505409587648038623050842199316728192072355211323954152762905762075550717462451311261444763309090983011480351595500824481367771105047092544381737276662583116691670191489610232033213097637782125876908379695122447844234784659031439601580587173149609455714966462263120898717171405563251361239842722374462796547334880679962153890854823134239817029599309393372633957316070310960803197093845128695866732310330956322773111902797929558055868951022089083343678823645704304922431684369812820321149924082189039774161428692195661711300991774586183989580114980936684903899176090321908729236791058039157518711565072542517323376551966957159220706659450846387599247654866946102475429544259461774584275657685147213996392059378004258936075755778870564714283065962719524417710479480572525805826835679599026291201149311954383280415870396602944250751465701570360031365450329023697631586646374964748533432772827028284542248711427731032795651768048747317992688981920155567575602683546691147365485243395156340958504957350905717244425118319581150287778545167527329334174410599891394669958290910251330496324888911471778674867274324352070619793490404105480310436972084041095435102461972594245764623964457374003927455600963018045179226896391515783598260126347606499836390532476101600542120211153305325847661534108068515953628466573825859573359746705845515515374220786869857987164777947315070421595415285998413767793390895809317447223914102934803301315019935689035847144380918070746532588266268088653708829237187843694435888979215086330899644031958444340407762771044320080818463587022625829900866049069730880970570464437016226241853909561700836484924632336372722289297157682274629623718777821688588627244938457673719346956067391997885094631929778309385376406549861509406430181661090508453776793520570876618496797046237596166365802092743772289072657595262792074137679267711269478000191989553172152037138000415687013083543665744521787388621646051294555888300572201790894557032055031001155574145650325136410282702876984137275728053874632459301664607364051341327698480575018100385440061093444549363377275938139639806239807058562933972623907794687621896390146328570842208544745388827130683169675891220813255248850680029205531308938937928628174085414516741729903147725520320158364127938147949996202292584390418353801635317532107059103282845093923226871421937833288517047288285288548953769035145124249285499330209274780976444979235384150891021057313338156735191799689766687175755621899718813150893395687727439577646465100363942081823231525830565836378044400248024198963993226398740424510999774110736694887021267986901637983935052292647488791649313655803858873491205718516222727772277334077160757113328980900830100881045951699511610329861418585625266655389249498646311320476142354434845527146766653275010919173344929712667845614774495362648686689792845149096286898909251555771908106890429927012627008790832451709010791094808077976293886742347187201230497805469627086517629665503741210682496534199198345981629085745803968096568102526841453671034936774957143912641419962136419488179116146564318017436398956779174096049359617128243003426828358780936518294207268621708102903499345892153917112027039284676990189915409586532244612374124061931711298064500377596144000763650328478302925733115961770078758641566567194603114636500349836239637055900256938150893155162087508857634591372530598125530014405919778321576374217053467011369341528872937925221424673705701899850277041411725100988684062276545894570453267641061646174081981494337789494678869526978611797344562561412527118697861572645521887181540709298988788612727337548141649859841794083538541881943469270494406600896339472906532908514761001882584064618134469585187014991736083961265176541075764788995232698442365640645857735666250633591943468153941205292349113701058767847991963374817535207945117737400889229498370820850684793845463196539766142779868008224466411026674002549794926395339390360728530204600159225830189431631264151772861835037622678402994959775324703218304348313689446183641111247326100277198698719381059602304691203389414355817164347045215417342199227400173172254022634448729053179249015642028585207329255414809659506309620858690787782361743869142765052869747276083118444524239142686839879334733788938415231191447044198960832802984444935890753233935341923665116901348507755633310262748277340523827082287221503815069176719483563796646049599140674128102802157968705550394376696637809178829361771264848365795433305924316398346741759086140965497794146137899347114968443685686967283913818286266842473717882286138487947586465678446245119415461361646459709763788540236429891199172444720940578248856934054713070831485200133516776293537862429597948568874629597128245900416071076747488043741288713839163717136540972299028024576025836091014504101034219003043152064059480908680456218385635082022351724877417817762080481773396155264453285301141266732937734364064268493833407762617211738811379004863538454311134558020833173226088540427092661584234201839301488035104063055506890286065074601651016734868284017219742214320314030118755491296347108388320865264428356748557163655013296724106780611612060752030181940612250199007868813557607473684249380525126267914952939187702494116356447055935116093404542250815190747049861566429579813854789342915437455822822640910287623651997161691131097998690590479174047290480829604917159974511596562446402575042595739827335187747310752718446916988331018794296210425340318284069433389060271172394666134305952221554902738620184301229710091734773821275302705267656379957003160540434240770754234995036181573188732794972848312154017502929268237393121172506883514643080426728664313795087048844288392633073607296120605871131584362356575577191768850145299915635591393125727476871142565656580408528530623669847520812094542277976928936253762305483843488723164016266350122556650619020245901407011484418835371729603384377693314964950596647166219002450332123190123684625455886545801062957524204212129705778297658597400853559679206074739462572168214423582314399727241501833167226495584006005255101916735430915274832999330641890194712183504660525143508156696112412518863113920339226827382762297830144134056147567790621413292476432242562066013304527462199967827730063125640738246449524179905472974907990843246750831177745880327809494869895240642504778599998265880273259284467149174399714130178588701459253751469916373349785236920085422471936329390565604158266496135448394554335536909636842171355857087671957354750976606376247840865843494374452126009281928175948734556384288802001823787023225064284435959989358541632177504163521120887950893843831216586879811974434376057826070558129181003669867087901102665151263599967303924319034480226135394436273378735014285165090519500057864927873834574136279175662912515490478046819575306296448995762079283560947423625069528824915331446484323017952062466045829969319744741692139875505756673161258898491884829585169979091295333833243366303789656341642558976777035505641435382106760812217975290585061369329501427587976949812822725060725517275452596126136744165882588215018583475123617742153871925149718079651434368704086363726777196045648571630179815809387167531805339341932451741208885860901947081252991773928174555395026364813993092811746105958160653333324328421075779491736131070918145166710324729349112982340932865192576211281669337959984953958220807583414966979524017079545906227729176114710416823662334556942355194886964770415291946455079548914939197666147531564389435072287175652434661280720614107260748290383785768346512218222101952504408117260129702753216298679101747331354556092702764822228273262226204668133008457935101549680247100812466103743123296683150864075249297911045179845169653442323224529175112084008500671288140653085499336254074478145038043254834016821700345009290565706740399436188497908821449230549187624226722075462290603991107454822583602676957859218768287949466441300672957232634964462797592478224056249388063278585016678863124364447138727897860772474879320048268537101665331083996037340721820715862653741185010572923043994548688889954006094459210712453411012522408116515050314909213636896330188591767760295720671881901249285902158607238215297941507997937212479535532828707951363927710709070920179108602043557301316503084868635676172451637842618257182940612888968872949743450456759558746804806367710005563250747631116187029947677587517524986324791637489148724082116591446643722918786377240286756921306277232293011632589505514879388155463947967479405186117990180650651462067256774327018723365129758333369001603621665316988021738429246039922638122493371585401364298735906871238346522569953282487009331374516486692960384866242664320629623797974610728652341647128407718739564626398791865099993678861363310180903833300911740264646386136960749144222103730207143486815066623500687212697284837179995912602914727224609055403421261572789527715162777039867680179323784629137050455686814451282543333405786356167892098899839174287058791442247015095128978125738605890139915274898079544245615880153998497365713992346594993890396845512477704779431085805215884309012269668606215321767625696481535323566708295806400055769232309520190725260862842008958361380187725159157744825989203714061576211627653280860366434127675428988524481296780789091411574607497950906570575090734212790287586685723337968034536366920209193111046107255848024321361752980524453995551286692950259882008717410763353003239890662350638023551178981265142761143804570810597683523015524159993948282787901713966260426174234550912617107109719871140704771373652096318144212517783684018452884356362170662458008192925702141021088386641807463396993749742132571391771175771956992694674325059930696358709668167752170295286378644233824084463789612917207275467894159859095460517145438926945400124222793544207088395838510270065063292681961539423482778533657689745109433022860873055627585852469312963064285923239429655436208739275711887420187122805339828239427792334317662880587253605123835867420437177931257229081234532929970061127484217213240697578178309642873653484482656803246491439521003336385620700022810085542433242538045585239875741871161582835289872971491456162835457062095242042242217284707675592248621371779303195846673165114912881648365030082992905134813708148726001975701266707209142271240161949261700256219267068207679008501017797392662407431710068488932807448805551233055790478891006016170289234315538922103645543191199997742829959716423523517399624167709287603833594912526170689266759649511780286595498473301933486584305103053831424848140491586165125538533821237795538259916032709473260514744853358501453050009318835723462312876463689331794605525361947161928035477278716934956263789952806507462640633371319732172318980171744087330179031349897946194320358002564511427856425297960388558572979423374446057178986237913122590737366031700080004977921367261435903564901014635632975699483925922704454748071293203979382065712615163119814125638889054991914517547407968506916670121533406716020741411893581428898970632638861565510785794547505615317470227778959317252507377917171087911081991347291793803900309112310444723725790346897454529946328733466626349887041670201977431440361580379710701423161134504121135831540763696021904083541761728479181526398418277570740027500068459794415891232811444190663565956035267016193367500123233439144638641611218786425577570838761968946698937284837765101825966120187872417490331153635384447257510369496902638937125573601260175522371158975555177915771851799150535906609525751778435771305463481791768198513203829022512785227189892506050608322266969570547322203028163678481737925046378906669211525620103249762132485123552617454908173915996385110008106861701845119496871437395356841721888174542301060873755985755147903450377977481758564417754359677761512834643930492497817275370656665977320749935759433532448497644358284965187223562869487049909167280630284417559615755948268554425173863616697081626259654074244428947529096708692576711735529984034414022242314302777770621322093856551653265767706879466188442673802078948235846446390822625262023710400391605100560631058005305972066091231345215984457636796776670516222769216748206311411097846479973107697469222611363809131092712125199664003517303130988124468087142082438837419236965804410717412298064111586286698812832927317446118378936445635043525235405391221321996515434873122115852873218282422228183317019684032374022990703044255058348582474031393903991246621106601408143301876314892958485890984497157019523139020047868965801539561865471665316828422327111145876839033380054595747942348412863522246314405711773576366077627821853888914750886778004949223256908829585149753547173921343112322227698640345312797609799846778074926361362593221377931713938726178175662306839552675707816146683990287547914159541680462360910609953818332799148255865274034198761982466634169944080149921843444282867542918499753640132269739020679209744427215496757802664178119985787060975881268074921394961559800765358316381170245541874239718036136116222615570911523255646622687858457753542663212913457245452246596114063239027852653551032850513320423114868375736792318107126447566676301942085587966915260652298006430483783915279449709018424357298994628900636096428300994575260462685624020352716183302969643366225015004143281095856774576514023620528289639395722890082318628609512218526792298334774863784127519575184705774519652246525810320953213322892441117834960849524044145174200278618382771715822732753861630186073857349464041747030632492748730800389252796644565800508445140133433852992130784712330028431261471720668122946341193146860774695116849915651964231741154471424524986897766327966243513822519265793400379357002707243439293458854493714582937790511427847001587834224217846979747897940607529769353392372500174734864767673389579491680664596946165787937621599668347575283014945064103272457967576680693299567703292865786084015009042509468163557305715363670897285144411214386163885957291443373134259687132111585289006627298194678443299549994671821642803392550533275003687640789582542273804125863308107864934446409369744042359776813283499842967214395537500479956553390669556675298876605198243741971873090901818010510175901202757105083887146131637250101921963490205594414352577699187751158583871295038568244877192618417432152568598604728942557119499654399268542478070397147709023831074866971300479909996559849663320181776817125995474043098827263522481202033181365458706693766083883653961982226615693937206573463814441434674108025914290892775599048549376704793057286811752571435087184454228224911474103963194213637233492606085774084542156739178457315889595424683405834424140493362883047140297956551733574150619181978817889746959119063636981344412727428744604663894847768807219279959790594833976581571024995464757053969767003648150036478085722655082318421126875720162470915699744787835730458902366276891699812306637139285770626914789296142918112186372223770399243025511784163694662673707990051518237722575318508225681123017290768845866972524675660963977102091001185837195492511858965235932792186719925617183974317208663721537849185805986998198497600115406631770315256926960844995726520187484802353535339684150812141135085229639565041880329624008427858915885989785322949572617378303597044541755657197455930230296365114563800342958772632241652529645630811751305713901447441349510338333747880154038030319746798809129369842217223660932344956659024600928624566664995363467425272370767838130849447917204162389372434056615651307933018760762137423688388473759795658929661871938509385188067398500514959491345754714078719352182482122756004103734731583360610883128538784926113234627069015593611651093495005519688064986685987008141481909462949530939255043952344885879934827756877390579287520196864921603865367936913427360897434713283373251953900296902317170237836894433175278577721243445491885338173632677189552854513319212315371285415477297401996726816855053462976861397734206062877919433163586090290456578003298083317595403943204205529521939154166795402006883746244140756045647994052033169911654051084931078772929541800884205381014113214456849699857905225112801391125055875461397395829414076291018590723660918914332823793397080987742500360569077302303769836081011260328925181844348447352552470924933388371576141981586889209845938262084054938062458202875122549987916260538284751060778171150981238092481433092549785857839979060589124187133848729325095623625401727332795218367945240476042805120751918000282911231496344096585406929679094403277342334076867962212678867358979355288483552429498160979934151602570222353211420779028570421461691448283412467655638746433392574944173402229200047946345066543393888466274334597495269668198414944853392502307894455352833585036083497425015322725619193482845290614270576613131544848423134629400577161582167031918267571696316359988250703496209907612035369469678672176800287790742899521135076898351575145642490677209049367884388113064894016474503703384463029255948705920013859536836407892075087871721351136374757797963869786139917027406845480907381505311606823469267036153067418956425493007968594372920499432037148880637522094136891513210922167787905417002689253491991185382442788038684463671145226637011310485765341093711004232301712213530655745009066805268158468164925411288862277358185303637066068962433634319892868131927697131717772587686878724345160889909222373779598052472128561565666732366876851853957539166671042050745913680202810519407709542762912761542861680805390090213646531800943055531341877684436264194808936791454936662549753957090640208214555203414579682448541291177112456037718475681648670838151238259442248350358780534550872296901331493501331482780233999201563739051741341680897531310241637542746223196086317040584382802007418970771126900707734385591620625584314206457293197374141463154210249205521951993899687582609859608402952846966888032928144678838926023235750356307756493956429643413747400075281194644353453994948380812168793099242005289980880860034944883352403898355817925833407136946961101422173519911994329170868970139220814964028251915367131441752237300550714694274507414940079560334143928856763467468148064253917939119022853024187683445777372612137440933872753129525446100989245123971074643245888537035867191832528188239082940818999287588343607222416994285425848240150894000740283354380241563509461437311164060950220088194557953277998438083217889665670597958486552611281673793116378578761989848353823582227686369539433668579255915539732389376432695772821390243192636435457113040831227896919181846747970019365197971642342679392090597349983771288555043143549685041194754638223997112631380880361850994419388150851042369086585799374383375171031852936554131172633309727093912505307422505348923313344334612467772784909884339509306967754994518278204884282698027544039193256627302213814237860246543159796178029788932058764102301548208490684649412520867706246712670933090183471476195797384632614587939208127811487945226862316368360799286040607643229678753713946733255357068833067563240460042361740892585079511379978696719812091094075815604831327589803680307645778742514078916986504450091624070784432732064611574072261569477692340116079920872901896037052788624271635433309749861071169819427507680884352723703228749193925269540694249102035152611798133716337504099646155444431425077718928967037850294070423137357087055347408552981546064831805775631976493573433424214248967999938673339919687231947574244831332804430325793865913094984777805155331787262172171685387091038691813592557220084993156918160988191455986685014828931194210590249607933992249373019688703554008589608409754655094093882591476765406675696650323722404543844764582038612883123576360409327268671114493716167982023305486766070171294692655755348781922614241815435030855220589837522532191729141665980882228217921654268189104357425335688582242649280527062801273647404957508678794536690322222919997056245046867039167409295683502637284719344920041943239836747711629042367772949824570275054928191068790858567487344072700241331623097455014305140195971167718446587569216386081918154175522388067629900951580116237506900692886391842025511135530442111600837456730868633032350407881549416882461141702457279013466200072512610030599177674591367855663309140634571630180033036228285284136817569620199629683470649714081737817766615788259638231930440905244922959298706137287281536250854725638004657146285667411627137508291602799397316641103256768037331797813610248691381701809354796909719930478294011616049977801770488497133148007339632041829514249796854226361516235385970442816217452354784987730516731986847243524849256337191446129138729524645555365751466941305414420882471938789876487427013027599867449241318248862284567279893768975851392952058097302891221530119817528132018562358832754531550051449368994568691410193830144898924293493042472378219818297094125543839003921658169113759754876315429747559000293767374099647987484675683188115916156761344343146769903152907986821235360271669011221109271085016085747210436328746891353950560777037206446787535107468749541751884409606541801304657682112876245476189485160850547546923453387754515001620769274625055695706491110489428457113150354826829779454080256551871267775053633153319864229660779958682990605744440054490848949263243491907224735629999744080182761149889645017738432788429116344350861161468999172998518749900881338044829160612367677870477410130893138964396321357512076332339422425141635728300135734004080881071824610554208017571000777730286631878027894614189958088685569362932308312994713663722772203459951985652904787798422264343513296109823326289527691133940842995706455810470385470291385523476971374415376201694908800695082053277417769209450348889580678173218159629222240277059494299291227672591692295876749715952584380550794726080456682577301155498582775335622449946110421279205870752263277535218419207854891027324051216581706263445291778941861725312320671535820463078313594269621485070177906840115594400589520643616935582671706869966424592011548898367505678645725320796139080065532982219392373517648405438834599274444171521754784234010532936961454766787318933290688043866416661872439252419566612771188954791200233167840170725612503614451986465174306675007435129945277759359607630075586889509483698589113130187823745578805116815737127604992172330915232989112504394257699747072398535237987914310645874985073262925922724606204611409525161310559793002876586687936921740286333079570182004144952300351926198727836464326381993279508917345921040929635810010356425676758305166773044527704588984198880791908782984026197400788175095899854039247404079775012450938684461752466953853790800259704882215712531948311921915885915823089708684911240458915136402691917549272987420102614222369610132655368441032531296099051037507058036440813042931681044354345551553923924606976780031939805627320266337310453409568284279524271214015636865297774985781599575299922832655342036177803171925493837889909048208484444147717740093995454118257523697910350025905147923872916710160333628632723871420350266093802665370853775849922685945435884713038918369044066347388665304217662626178192467226360456048766304671065063372263874433188851400363082614672554261348387635409600444419147627563059240280278620719456821126949268283807446310313968337324787230285657100067188615885585710107430915588502807212338932454606995303883539173922315580885457494388113490226993216218869423579190300960629669856846969611796264054820808731027010649909405332160456775689651480030368758658018550675417059072071320672709058016373659446753638606091198349835143013223151784101928032210774837427926523738873223138101002370978389008102541012184086781401911154434792188854963497450631275039229569571151580562965740111762111030556166386905097996609895908936389753168097886714338881716523817698506349043151935268561061032790400537061529374910655306246459677527910970019211999022633459721700514495332606402525399781861081105810248671341227765189172347395980821004220991911525732342115525797971286693243932892334450975187588064863415415215320834028729140031777909863549895242061212516422002561688580096470564820900324813124079157668661942038747666990787419772310027349129543903044645596590737417295297335038258648563518675881474207855013000006658840027271401309646401293499130385472101576550242305491039539303487377756900064684019013013655652028902955193895536853894301957702478625438201862091260015529162136457657782118487874960820499055707604640490025307750353131546660385733905797834093084110747678977713165210912301793527646068189896516069132447873577928869795302406619294485984974877072436937602455018405418251132265749722876690343448771506855244531603673696110426938041623595014589629083684169271669054245035160147356852478980815678853663745558922462075178102836049778250925344099373702734049326656411486266980930949147125890118042737850949916347951401833643710811135812439251814640014301110783262380241749607020573896086579610759993075475461054939842771076815953467403524282821972102520428548610692073141841546707852684372481192760971343426515125226411986972034877157404822115812927464297924840023662691745298607790218463643529819747316061049706390151068549438771268570904289949193936580786940767760032317645640543444262459214736571319510452560187976103198477559317281543506008943283221425411639374173807948943909042400948934379164722397412544187098757602223183143671045323234763757099014145825299261245793571347735378917646215464900386692992068414653404783840142508052523507065372015536064374885325337472137419723321316346146912819774764155599135489956064081480602756227812032628090593344966740158569842425024094892904033135723058211857753481188020725260877623387699863693124798619978379002286226221450026648814238234950891635146489359579177427292213036885394671827579786591797008856464612972691336271917833741228561498655180686681218518497170131664537449209347620649934302819235401232592185978770654428976400200056277241085450944838121494580283437152406838177083041516300869529255847376348504299750844209075715835286600707774752040380789675278727578328567280954402180845984724129659519989839619592111058651557727653437305703799591958214070388383241072895781271970990013873246207940002622698450360171624399756456635232414287138152425379611248375881367471283323544268353144408365326690062748461142700096461704104410916135588869619458380483017968587776809404559443917254023835745145463618140624316377292008082836780830995854431624943883274379049815152123539563554899826613862304990679445033027266716585412194332959285180920865424514442345439413531469292015131608953567689504487188345847261339428855676102855264721280869781593625180646557323357188105914581410694978814152345279782812691865740151547504856024948551627588155269866418828976009683421698606098776650562473471649814873052157783696543130793410969579033021620659332816535600562576851423449913839009262758205463247089476132406004829844155698872546571590640858050586842527467549956884739188465928324145874134166787359982722978239752770589851985263637861306463551117835858382654192908306166143489003382777437059653568821297866878417742072368896488276710040069804173421967224044357610751211550051758581319585578911803916768358107072893249983876590808857960496297252145098150923649533954808028344799048020419270136960891208123674719537858448806999176953448200809177014567442778790820219831423454733297259069204843000150514024388563304625458000743436831599405542562500588607917101137953187409048404408215689163172277409550804713449383938301981883128332499864777507236400203499822092774229504256274362711807928736408692773396815489880952052147740473547440173298273683861680646839458853733092220988068234833750143360997615628156018832952854165082381909516725485814863173460048585640904394878309515551811515111993453762175760635253321737827850206871785124493765685579158534870127910663117610403977486192257786399815356467865427110055725177690014861505862627415111059222058291224561974909479152368431476373873144022921992434142855606646745997808962860946352233532113334720250844851268980656282318517674850296890419491761173490546662635348185292400906647648671617098448578804386060920992002168420843438198110740666566478496040335404824319081998350162051854684897996698892781691951758863548819203972743852088944378708527076182220757025884606175375064895161358625716793735353781788551028874128798838632741393965665384022001870742695949541471727776756260081892111749767278194243870525426277305644890021435499153793991414349631873659294915229693278433343965511755930852310777378947133340705227168747831849631108570464764279622422279581083418237939935714449841153946836060372835367830035498421348565462353522991141111887389949313658099216730239335073496307998058110605999293693095790722585756488134242850247670347406444153086445295538345213624551160358045096917641630410282515184210369546086018428383398061084700731385114541630845082099950236625459559606734804680639897562281514650377710342315857429321383629922997806741839517365504632857507615646480249408582291892120958148214785431082904622609072648017830031810166899308989761835030493869959027727965206169781812383257843878847702431118245846822043685276277394330211974327960090660676648462740137971061895568447636024409933494622597503935615438549330709776694983997826477559640414862009854754378587773900309220615063384272770359640632666162662276633533508909720845690385957547101502900567796284726274456026871344530734760293625050308554179748589730028021560464240316209819188450743782095529065451750598491646534941019448384247919133081552024366502404449994287802296136661204390878425234677186840442702336191357581083622992757862661669162132309064020338870873794596469768878687960230193579670702375246549060817255577517118411507052466749093531358915893898323506410145891418033443183281925429795083739363965154169716766765708545721680529294168665481145503057042538776702432797920972010719753668272554564838842553802918825139330780702515991582581646988123121880835769185089424277386514656304867061192846568000697536916012801861759961127574064432338260914221053825840740059958959513696104475647189876451166168464668055808437591776869958936418157840947932629837653330878688679765808065842791198198698138289567366483578210197354174323625546479771171517456057115296214697528870040373724112658561570165489267462497872270267308884149639004530757719108204145807184363940476621759831833240912502258448446326378832347798475685993316026891231926839947328968943172166832087950455031003752838321603770384642989321753560139627131274190857550542375506280152722930734871876113064547905075558512432737758890997119491632459124424415622493110119819331469394052649046967884910152051011558003536579903964466618735760406590355376317087116624790420534243687960924896856401797121201109469189167243929796059798157949850091366466065737711064069331727608013275846599907984425256184373922013776644074687957299849323686834056064866373628722791636994949396156643050716260897464705850520062950978955746397502630224512362072919167264012581613022405772928342881672306210315418097893331997431051727400778033553752065307132932720585683583887587082316065221309544128839284803682827693927726883841330052328017335819246270484711489206599137434825044401041790070167678667156426071697186446860842717919228368504935118041339353983325381434362644994573419194210969263139292771469607645354541895814929353198793946674100256606303195839630574534053596437391647366075925275898981523906080917868406090417713048626761642924792694095323786224234519043267288416886652937041278068383887963010293613335529957133435811003231408993946510727950729787369710575869139485762672337310812428273996608371430478891378247256383645437114398145348590491762834022506845227360285487467716846391149158791846837872795840946113281074679098575399364303807742994481133338991177982116084370020287131047352160370213935827720131229143649360071872323088571139288729628902758058850477709180623379924316081407341826704149013790198763394027981167052963304921182079926536923695681347149625915611799059792949472355394483130862281304437945069665650726015817723892417227614546586728153915252364529586434361194416149135732584676953743881545765897241084042969868519414238609494103272622984765857358200240594640505806399933891534640054125875192645315624418888249941974718976727055562460410538828309006542203615074760158323653702894796626796182923113816845580539591649314831198462505398536233852124515682245491775219256492738596923637773054316066555416706884877564215427426999850570559144954760818300557662106351461486808187034224235101461320518766768216771857530733358352476909211822306120620014246659734211827726172646484345150687002596540235988531993582903890014833247471342460188539930445462490606561591194187633136855993002665763751197561104574537352918345025907757340176036612974684146974559946884146923889923650306871410760223508050166502066533658109100081144650172163110351398282998527754480753549442867892531489665359271317848369225296959293997739385622078338322179247968467529918660604422336888559116011381220841766711253627768438502997631295222233314254277140513372329144401847144459606238130850841030495484471451596718484288296299527193259648712780068420581841130136621644421319567585478978787798697851308183133066045486247131320664669250439007031816057079041203702297989963859271349084975585135881709114770547519510192170392759075482425520644231997907188415605200641954848320000164056911014722890605189474781351806229948629823064617115072679473060434585731745223157907647484118939790174339292727888796966779957684885482770038122129330104008640377228986013532669522884162798738357714063594506038749372998074327193530296591897601096780898285478664629133133515215616749761181458965375346612026300476057446362422708748974718154120369174795704427314951062142392201475488686617326502737955244593230848849300683626859962428668572060275061687214352444728087336347343554725716308243357211681914348069383394676290241039384994192360613541156023645607615937922106041111959123267587862384929553524589758700678035681629697851142414210059586438622264154960785647733063912526539629970294463057930832735274706552154384114182067887006869087023855228313559099720858992347682428415924398330159085698753466392329991637307565499435652687229698401473159513951301006890318398016509651897862564865724714701548515798718712411885985699557109801657896138245606444895846970931371407730474893758341624162397219953048509785920987548955545168170223743370899890207794913937705689978639485332655941038847229933857902920360959355355980860093344379175562816659158678763916867552509599190373069095370805740313967912974312052444187961984185200838035217200792907687822456927748364742433457149772239483304624482579285740242818889410927065572291091488033940005855160736012900040051573841783478225286944923718355099137666172987263898735931546535933146807616468492704506205021070644621762067119083051261550609241814241030708464028043158368517132683915999909221896448619941078497037629294807834466341601906655739071393887137087676186788128166112402971218817513158195997266007316204749672014236210546591409266202128889429011525234535862440647109850651091005677575050185619028673354398583809965243370416060291209646768346645096704062557754783245474475240655858027736990415691517856485094207182604584919899722519341971689532606312993756704951857360182266465401952480130254347101231256484141229893219170153223452958019727768833190691229283205449791295226702528570186349216838323416674783701106978088139396135809553385847776786706474141245027859208257830318874386840295347568772445521515415835067888402740127947597819836070315868525549653907469107798186014497788718578936682973562121045641964966453928100791382742305893321903244636231556659481852586819401009626562721026294117503451451136806845592240009188785719165165891289302955089133622834838348196001251951678604112934043633014699643208403062672014678019116897536635249406511076650986576544910136957552940673165742212267286590894013979092176725098467166251503990319065305394630503839288133621434873744080456885903048988652891589564096533082236888377980005402778911461319851009084441965203312724356171034125994796197579198765726386106944800665358721362780947846978732997102299360896648651470388906109832526340341603009107352792522189090837759460016654537839474438782840672972524426825629403892369275860789922564809188763561926892663027412835444252500813006496229972985092455481894405559230042410489829827636305372093356003037636010509399409847412161488676246879111904693113795540686219298656950610888285952036447832718026370908712966616727871280573916638660969118386203113114151806706422608795163650721365832151046285432405463115666931365535223434876872096619522052010830187862343799400742437309647948290128343501782280651309709614890503162164600659214549837248746817097842682120635481707648309294081912428987018475098534927220671041771603942849926192276442798133937556386649328291537464914634016994195384521652343396703680599377373965317526362749906796626662715280191017863900108210562804470527324972084524397372258458675043160960775282844279605148986457497111933507179723476405481427179185399669243392384982408057231590841496411400307731767587565628616574340432114165124942212228609199769558891168621789775076992594365312271780473004673606998876897377341961070152675136313285018226939923594899419743262843380295254367959867785900529819863517550774618173152207837419137830406229133804516694779159925000986475709011973890642745257700624405053353934084095658758193715903882330813122619068337615919321486763160623721368766121408865619069734698166497753912398294345822146231141730721477243154115796472690781632499478703914186072928637469445431280881014164664147812334508309984202561662466743350639138627790105873388971266559232244465140934494442075553397362998605657396741652812312478099625701265239357963088711714906335935080616886788097466718491794767325330810225727064695956611618057850768761992918246590003949134448685010611097580940758051541726475110605671931737148600036946935047348141634388871676001374521472910718007547285952402413731175276566332784717531312458513726381442267422869042744193813199684840567097616061084398855245146934818997362064023992536922099396797175330339953005703877370352763334825571981744344579952180960211551920010570293266196153396862112025689326182752608051151460896137747191251243175488252665354284287687233705954419274296625417226928571193245653628921829751382917743857845055178508342413361727434725003918464147561599458842534881015402835007159149496997962881865903928152156228819059823858523780661896445271957520162052578296546289354612013985407760050769289169396787054739939420074789318693339203764362246782201254027285036470547124426337030216728804347410895693584638032856561732842695537562139062097963445986523595850819719120552639509156076199797201803148729114690479123824003949827256273708057306110111740766013804895926446329222456582788250449279669462584205035730532936437479726191613985042904994237315465606623513079869975103027545454855996722454665245652054342469469053496080676325598902302440584634112246920968304195222690811064424358569376622585113709020543280637044172499921452833224542205665520665295351164487649896818019615186437792764664959324480862322928848726278302477207682478602070453511185953808275322130186381135694092654470620998935084139816167262963419322153316075507025821666801406532865979780993865394719739006341691611969504271433853055359264715912595808815642663636093216254601614164284481938131022355846715340852530075363000760791375160740664275770023886892454419359277089449239068950602422134684205777686503685102158710470902467271197218484708599894342453736931051348411069561098844612188442570074337700904352760893703215023089920170630427956868500107808880007014750890431445952459391135827928284558665342984562160660117829901559313742843017002642384145304738946401324848474953239248387578165183642220428657558980342341967404157984324669275801138739119773210991901048317312406414519678536790142008030676654755680497453785610918816264432741135834639713794294750656957455557677810095138957214012121749039148401159127582607383512811717636772546436606352928561876630161440991422804698214063810604153977897675641984608781673043668714987813935412471931060943333134400603485422561532470353290923374138154567138522631123863870407768615211966307602871283644639811106667911297008705998558134020538799276732307860640130169930666997060272946296385076823772103425373059151352427393830241831553309729200095952806464037675248831580850532327398940119961754496895178238221693240863911311179772828914845196775361501074806761057477652481184593279053036562082994405828287096255830602622123298505071402409158552368379128107027702099577882311781383360799835602883713184249216669275191465780823256355283229186605689004312886205734671144977429670137446261038344282392430763545894397456967041251849940553276453400919092186402120767875530346330675264820861674717706440370857913454442443834822483447830540555377829626186832746206986571385573402170503166146906973100396677266904597352157342926377050882681241078763075213793186636506075377053793179790956036477026895377240096757824620073278902103228052026075731427103698265216293852801842663152899590589822136272830150334888466214267022813351216424836698469118698722397345959975630832628032194309742344976826870590030411291604704240590033609014356703392559099335718988443014775729929640212446500948099868368293013607995574801447704330239537942646571307834982680511700964831851745679985237848310233329785445913364276923566128194151676117593247537323869904612464892124848932302683803283896676191125981703424871814751679348087437681487963229292796753856613885738128560212453059640627858751554628609961150667516712601944701892267665600573296251675983968707712397762313424422047992292108972873596021732640456050086771797632418101620660247079929181663088098616092118787220569963723235602051014143341629054283833433613315583300711108881281908780824547013532023680392322260171467367272310648383647835186630945113120259649522872184160113148297310391677940927189832486953866891242088168969386024862912834341062008926204192128877650059395378965603225974464578664366393320453055025696834738553972181240681499470031889431892322712763069679290508357684135010339871503279449917621395628671078525860488177161813860856839227142063650383772044755384197475445488740163564262843376164072552553017413906678712683677980307701978623034129353177150815928337731842253110819920465151373339378164336817048897951201844442599633331773116854079717582584741997039142429447171714559868254778024956936489968443067141251411366173526497356032692946257335065113552966887547819920265148934482638306219948903591946817116901683043545828586496178428199021811988320137644501968775621516557254135287415391507591328873064844628904223428427819446934933907805483235648673234031003601151734930970930909097794769366139466282080857609297687658285302913039266816089382824315814675698992385882706036595718672488348518076921328932946902606680700770210880088577886007238443441681007234862190424116425653844526095936081494854094269194277102497456603288545484124185863478720732961191948518270679369122171968322958355752137177140185190217404060473172136127912651409159307588601704493537684962026953499116924810378519724832479138541362126422326634265498451368143911639308449628873873757527191722687292653579103360370901834961060511395638149585705560083848306275305973644617993369119685567287035335418811672951955922306174933332020484413249855118769824277932149918833042139923907958711433661707529652586051704818622213895170733122699626387167299565919728270859560563154566129998077452181910238408026002061889449135157744348334995844799887422131327516456533049338014549452548533831410935880131502123919299370970503424160364880812092505810347251338098051945530272383340944213412220605497783927931034853290862089395966633246382863763522756453387478689867203310272468500914251291856498439472340609102512290161060515344603285970022740323665221732231029057829596650084282540295071780741286842407496322266904994761360119236647828135004030265878303002778516547091974113347998401958730775854365959974124992726009636354982417968708388143646588434671739985711814191283731800445129422761386817747855429297273453856307817548868272499306139861082540762146550786493899928728660586569110188231000901830140382063127780061235186920002871166761588400370616136813392048195449191866092569442977412504882862006398557989016440660173039708410378975189225335227961260596572305042547912522623005273411891185917682714793391275908573848915915047254725216732705232152164301001064422302700658600437477447111962006953478102439413552749491382669162115774743027794253253984902398666429311766383768554439208430230635368741099852566179273488057481045211392450108668407975482946386425854879069134501710233020062607582053662155893080752062800756559547061116041356415634924923762974697883217806679417765529965646095156437624809286552912470061134761601042643270703097076185931445339400349553678257387124170326570036807327564815477156570346692552483441172751839576923605895956104006024423177174659768431034004628209742927053706229992353413026636196317791071315671958012645981097372989818941773747434471474497187559939804783146509766996684524081333148925866367064715681572245810214095501875730810431095762147359514082259034389429646591540608544215931708893599499144491828241796698563725006535732982281882544356270804625271818726091173652868861981861290560551969673175525151807302055816025652339066090849764853458909704532092609510545904190321308610160234501709544887041631694257426027899882678392037122997031641573886048042902528411663966122685807822631926056968208417307895531545277833566217788491325770183002797844134325397548197208782170912880634162696428219302175266326445486212590192114848206074640763380638083993008401416910270000144396876459206715592181733907149457306384528228554725178773393771143328085466040041497310241094848259422502901354083444013377729419792139716715183457425057370644899382726778613580668982451302578673729953551488705275568767991770052332164102620674547935855532576136760700776227336417844760175663952268484621703617419422669444572822281648291892493491651404272843683137362527098402489206709637940437201025996248603266046666768913017498222501918052478681166144558034756165315427279001196138303413800395687320450526987131305896068110465259249379308784283485045830955845001667913687456040392132872471123334377162269669539460209285054528342506738737550464853625506895588367989810643607736517873414844040703724666672297663214581353253274906061810450902394290930064722726679154437273267531275517494254743253691261269181896477770816908333647757783777582012082241810024221097404623122542271640940809933089735263592130016584586252426802385031817258503173430746007260056328567471385710268102414856989075030175842596633390003397077844794837664574979589016069637715741787525541127952022130919775324114591852178094727659031817727740944668317778295903166674016694610452215164072989015649665051354286319744424006796810639412976395185585847353951202253452234201589073190948182363672516167370428314389000416966787855040465343739127559146073467383212442125294845453887916225380180262046115739089262077183226809204966611431156348766074910293248901437317228048999345421671685547221071299046531453798593504076500641564248078312953171254690023243662242907792149357933391728254203113299403338585632575663646631423651155445501522584979732002585538184590108563121575016143152950499462012916064894567297774860270214266935863731900892789835857766429817075451997451592925120262342647462736435938322465357998626109527050698402937134384346268558380250648604836344649414673339904942282489897881598211103942203351175992025859278589590785278040597401600329263803163089146523909032694901260979175921189795480220008172863933153514375305152262481903971357396238743052790139058113110847071070222187032875873445855103935889394198885467078148645032753029034110514977112605598394766877500861433677583726701886612010725084301939108055037598181955407183863894623120077114038803181071366183486823324599071265997708165606794795081424721524453693511379048366804459290804071899039434941278503383157856254283848685145818680079327509599962672358826876971851663781053903791025660116899301967884059760224508661304300755917092276018465471612857585352506867855051649770328304101473443779307301327237595993209350150472926732701027189546608665371873651783505931596256626544268839385688964072373044597751974526151353874912797799706960929335230074087789172837320254912345131366362978564812880037991332429227094486997361613276442262778879661533801934949717331728093486881887482458326706348085047355587692245968520917984209157475623838745688827493467526757870745624466035577522048393049492467458124628994886790395332815609916166991038532460081996821338233046829975724147024846793215823120683527976424256971252557884596724047548427347066756865636417254003685473377711059681534186346031441795902403174306978238540663952933348481604185256034114933739627206596447632784957144923865683521101423339803415573399291652076385431078916856074941203521933798209459809447728710062459862166461919985694572379583266108397255065416138132491233092570908298968825267512307016691636117159541244482626046715051118710855967469461092767650578299729042581437895782543463749299892615911526954046064748171144805292992261782077509558998432703549572323820582582641069620558736589435274655266920870448089844664932702174557686776296416700754903054418605612137615288705590226620709718171582264937175389006878495062371997023824850992001706594787647796236921235066003586231373512277470509079918246172957128927416242764767318151147855218357535958300940103065800312797971119469457581280674064909314908720299766681991661328523215088407555092231265499441435928880844895805655416345347137974077248383820709420465575858623444098248324280788118055159511100158404820728765809260065383322490136160644579684519535217136196967493748629139624040473061123853287806141786602871473175742776123389243527136086147651881748121619450629398972793440039794505855400036736627859291452317039591853471488118216216847316512244393760737935854895082125188824725023290719477224309962279590650552998751676941214285902323021430918778429451334607295420588660601454552831237530219439223609239316327527710248407319189550923987982668284618933126462196175471619656879726346493897533042699738171389736133509816781002459903008392147919274196971175293055147549438269748379470111687960385423652195131142117119996305761724885149205373916270354103623490597048364643771093468963156161365515738878786757509761169629998689296457727069876634358510297213206666256538890929268423812644088018253695047902415877166605181705361738003987710869940877154599126087650697258822968574460650178243838179172316587165623548720432308578099916395778854035628803273862170196931362781133396406938665210057591989616298950609108045234308591850377083056551975802854895353359284967471455333222088466552011154520079067472970908116494007105435258875056349501577068523573729041089396956711272256951459643141434717106055335190725942406632858338498691658522730695142161938778431151200707980043202053426292838461653751329357556071378080771081302494215319224609631808467836945774435631711945908830344337861713337644580780530246714346102633115438247309056998162542395387193365095813833292616717854833871088521597258811158029587990960397268732599950762795281252504739522573003622839304926252079454238821124851475103601937650108687342029408267118503473681490439990083686660006076849782108566566096042359000662139967979885588469430064925889480358687070555146301003133791086844112797805191151349207552091663427591225590996579409372772398585488513338411523033622537862762757874488064005357967340138164723202898362160489157925556513949542243020633092597579269430151444845232597768869620961105546344812582917563550236653434548166994635771556555811915712389681050047912222048976448744067216894711333493634857735307741497904932307887862830717538262042748932840086574050960288567480167592483685134245526399275156765184324288813109609556119794175538493681463536312077928001752465607937153022964748155625704200056782135718634266921366612425826606682245934658896303520964508355959282250736391182524982405877899453961944490809086426364332953599770774077361609452577542620142019653653682622174491414949956773633525768395175659909769859822785185362338245352079286315918206242793080833526313532164118568000386831694044621218767772372413842091213858576018521431733503728157021549725681187142503648409054062149060247033063818468002304545463359315758503442822906848879654803491812765735841035574268927629456583743545688918512035444781186972647912265316004343354273587769365802156730973608613555281103663363812535128356760881852461876662252425112382657580977499065761136096948839015868114156214812951794229490790049579420555206913988281470505299328640025508241904467613762193584705908371728656131982415813806834090915460223625681311921723293674411511826423118870869097674174871575363458644161314436533281277168759706792860559762662017872076423439237076359665658625652975528459061268413415115584346991444168057807108797277998209215132869377055683530736814769725437167671175004116140197072032651822428482229553780872800634355765157467457632702223733577382337867431021656217955135421439478693131920275504308435468159980793796251338191849912679950580091136954073302693273443225871130069416895333773795018030062183930371346932114075788227176749141947683977000636411117930177403747308753464222357475548329623080796759919907745815633578217951803359205527749138529506437036953833050492252636552098442455529613294537383314132670304706816010335609313156493758672861583138976916974816413448378456457737704264424052166274507503923785064008208327701626512631372393059549085618941069295958840397502421220112959371896010171343060510442077505105512219002077847196290498480177109819204538924489355071915374262474660710189037138937950381424434942112905419715261439392960719938543342480953857494931709224738399549663005571908025485835819920000897655536695585891967596920829319058575016553436035501093346287261049854459379945579518255942358637951770634710213726612306866346717771667416345249734940616492408868467022749433446722170969046603156366125061882315870730456005932708226755444081838740874815971042064360951464461117577698879654318602171772048717815728970021349779203723016275113194335977729746523296487026167665629393847635099121114217522754380096446517197224675066895321548311925184768755516052409615626842739443393419049115009786667749496263455094673677818461354531491579901950239482773784107413258124907653543869284885075835871710953243015696942750399421283786515564017468668506412725225208451790426878645367472433757480435125352058608956897201842352779100317291674705933945047220364015888563246128720425685427231356323504255460412393745073601598545488651508234761150242449284609855842385619046499179990862679823379729524728387560933228943689014063856595672549899283882331485355532991829102864162432556963007225548142990624785009205867541496178478726615760592418459412616781349483331209282709038560135854955010853854268886616850959311701015312369607934962218786345267855526792371685774369495261093693615318454711354661291642957565906801196100604439625386831236941348466876846070633183712317007092931065210842699469910937194998838444655509178869789938437229486720731490481783111803287150134227813532113933299659334637820443457655237315906714465680821905868730679518959679090108010075383085270544250509587774155581751336328763169186841349106235831010543467576082270716361623716243852260706939373289770021310177813220425784677715763351425489250633855381528342749108213794503740045276429852722632917488051322796458346922201391659132828537548345493823403747976837854672450904237062704394485015892966722879833964962752040175282066245314163811881638526547628656123268551719868355690903983826369113193615134143288779055209409700343480792013356108744685389492120844054115216670340023167121386478462219812013020958773785851859654682752096139304590268176257539007241130384195796785559046914376737468165105581122548648504228141975300184694086601409134102675437568846165703632011487279654486216932430898747131798028487205249090702074356618594944057342680177924292133910997280180006105652803637582595499232330151887340537315898783667955161486877797606616206950272173129476355210175072678038851696297913538337824586544737735570342601649426712467710173535814793184793602651068808684686350819873253801935751087520738662325715026535298687565085953313306842915904808042859086683138048918709837514866460265112940350161662887596105007395574477287795134472727450370499700684400440873284645795428289782920521912791048649798174372387192396531375889699357696425398916237139993326917545856158668381975908695097036199944023013705901383748047298781445243462678122939923348801233750095477508227664679715159188547508608360721195943823785350977898342162594681091236667711676627422005329874816235859197268662952182362021399497294099252082106122013067017230546904458241831453700032952805266783006572841692096851298908490299014892144237115529362959892769390905697834508181991431874524594643901924511371815145041387847002290040178539634465676573955091140782124469970087403861751077306937379852448796634604333180120944510862685839834368664895899435656835343876424082265893843814314143955441687139076491609024481103894041386069358007050873586396296812002980848828496631980552630907454997163122739432240824667862974658279212182443370374475265745522117849854741556186229665553685793390697079445857455709712032376494286010559234282042346475149757925801792833765097064648195022357536948057639024069403467950246757543715465215861052295533422023216814522213150016208608361558925485203948797603813769551404788999736539459510898830700045672037364871055909358395565095854652788841959354527334412015529454981188160418160096909604005449657539497614528600752229285933708959754955692220986926683661542759734171218104482179471525873479907914715733356916738393538334432918287941113544182141910119949865348568460304869602425393490158969528463758846009702544755644083864007344120666207340207317310071320475892084119821739253794190319269611919316443326572138631287154773735870695322027312648210709216380161725632313453555712176443944341778577735224299164149524755732721343465790486290552901284995698963882742137329839382438545474781391660998739789947628127333013190177999914177823569252500139888309523755535066745987489725192680037619646182542723650633107221415752032706823954899536397987648593552908601757204415326427202290658809144160267027951536268769413196005610035059879133529962958559482484369065145696618982185738369633064708685381024864592766781464522610045629820445261621920377315779298467674798499716674509077304165932437006747207840124438857360195553143001898159552878653308817887595238280282555003816880911059829229163761849558904382054974332985719140008263243002613728014920646579521598814905280020292257655403403465485744743377999355216501865834776951696742939014876304188967152804075239317156441473879884564652618973786472544756542108956858146996072245666071410083592315146553284767683224242818862585614950987762155247473129950346616461655731950463609460984210442127177731416732619111842031202851455567325942515243986619281343265338115950462808552270615636758421353743280646212103914472412694970970366754262307657478805288995116129445154264912950675385107097355427739436932005395911258358162562085804760138505746198665546606447405808314540681097072285655299277673030084807932787154840809005703477879353075575685806136575296248616763255057922197291007086695129199550132720419601504885112518885819642381597664459420380906423430711720187355569143090259553693319376773787793146556982993381262093968426444946822639763573877947523715468871222810007902151099041426213959742256069905421346301038368962832928913694097193183969183906293346049307901892989970007163352348176129099304554624014130921903014862504984253928489411164410068595884139424232271936903862161971559805823661242430628533248704191621444033783607210024170085278690458159216614159134353614786120198151910414784241839285355075844456766364919197410508992457498126780851913272460716922488087329255679685064157596336478256742378586527730532858922254530869051557878561905690271677053287488296968282448906778790003778223019151458253394917161881876612498509037608894148182516034281886013604098363228347838555094438787861859865738554953089246016153351286936249596949175865841107512983579847450495869562862350241448946123502330614758469725286817448930485198368716555477154534613035287988313992367118518999424466885981336303739838431345221509552996851842381551407916385513647585497778381578832642247337130390800807866848373714181803563227246859602694858229438412946784223463559635998889100722718386379646919281933175167802886657360221459820073632106715932070075336887119775681244610534471417099969261760800448987338137568843697920194337131269477738351999929146169871991466088755619296238660546792994320556873920799714590447938090302305211592140929870478898727746141897282570585396846047680596653342977543959008540906971295235068001130732424998178477473426681391215127105667178426925845164618129442059702328835946066240998631134577775624363180913822268019760984021929609650563141742170297730057794823446576626264313610768319976576335962978887288816820756701461638226263649364692256396167211271910588072973480238965745996685941666160120188194142024537529945151993605440203335786505685551641457876475132209259420488357735795654442845267257457899132251791391303780592091417778358292387155806238664217735258495581145370767420162313456613481214633394133364184579223130829844947221209092905495939520975268135747015592601475059490879068836233547957700476531914037980059559338892381423994836598693344343575909284875958864322109290449290880650166324017827401324644215149844079402419035463538881459470828666290652154391811607225772158784948222380276469489189644738810648578535639651603391733032785219497308232556166461077460283955866647182114411793441959741573636096550406037242169013293588149330934766074896253953580671151637370425966546207176117173955859965876971624315144590968674668581936281930871035684294405987371740857124910512941141017913508407552948814568563178793567883849770037271558447496141600595812383993825744318277140164157954298793590021775015524955939471219367327589485219040183572593978659803466083078854104499247915063613871233249792122909538110757103555722327929539803869555293668070763739692146726628658722143591849742157025397705467563665557705493843310944597059364341878605056819109905159439249529652923278831380099073796531119802163660333012882392808188637064856693476672033317318260114091995077032460476798291969223106029072973117484320040008933037127519742599862656857340891833147857307436011010775863139364857047921080509301942714723380593346578945283901719035194331987668753952963006145557399408927096539289399427558901835446758469075960377044782136862457704369501080426094040742155684745040559082353518947153042855293894206912168368867827059313820114790479266051982808835126855218130225542526672284412174325299110501047833090517231792361634406782026741110982409638912200417163951944808208520217404300498188075909170167775822449776944050942594144291016890443352074484636199039008964202709037466259379866709987852133690712318532396539613385080571988557391622781176497786910789605558314889065011045040701022426681394514924102380843644861843100256101360004476757899389526418711485725570909380350214700130576028289221354878093044775069884693177023092374152510137174478897295038101673766886552629569391864712847337886574529863336997670088208569122316714912720531240823186121095073777760655467811224364212257745027692154404176219391952617832448105765042170668075715058514761479078856688585315031412311469500308039235424753590937329869154190361120367238876275930148746501973844733218932590067920659796525602222196149115198465985626615748348748916544273616908556157776071945057835305317761264401283566947743217094666910442772556584668219049321513150072901435118677558064959879921808042075251500315014623470654819093855113612470958479577742587524233340269147725613925652147064454522155413175702551287794049073171246644367750690509770726119026627721050820610194795616559749182116923989731969271683895917784509232139194955054251682274266169955874181171928540827762802229336906195435272188577253049999676024939652127985635245075224541386016824715878877849328441486056864560253201074532697106554152744756700123717022413867292418562024141527912250364891420412547451239211803080443282890084873186260188447020921996931490604772611753252452547344937002624287529018056789559098588222600435429734168458034207704759975761842018912141169915988706672209915139919468756080818236856903855603405729066780072017176801314854728000976635566543491946354243733718179536100305902383596415748091079223071977415180458597265579612432470994951857408150916151418156345944635475532208740345712443700716255526157839664979174276600084003400597839093953471984357187789133607255695086384189136739652826061035048851150781874268319923985162844020736814104744419206159195581843130996792680796150914880359316929119799492000742444080815588611654595043221643990737621601661954754436571981716363681963480460005601768403657285143309703344443721618173852052616616073113181361382083107681729285227902213137862630550022419311347423447187963482244736837165025497516557169581063474023873119225392839039017165062820913362070999479134070649943006832077981470078325968012934867374084158185881505626915195461294067658755145599247080698913093242701383742835468396686906558078187022895211141390992821178954517816138689955873957327408639620888517872805793666492073380857396245295725942775871271221913666132180414973935441773196832262243311696813157887847941243784388499472586187299827264828137037125462972541930200927413517971196923843603109376422968508765908644443871502965408950299292699486861453266554186428510266438655441767871214573649874396464527997912420793403953408418432417414571457782237441444764004628219346697254169518407739220823312430159996732798458795872578918978026271277886479440339244573155088317050134294973410943855713238577715467662869983781868212676825425564628621839718077585535165142045178109298868992254768609475160159595435559877418641729335129313002995878547179746302403293109076218081720932725932673428587255901665284849067896395117484129474393843306333498013697044857712404089492178306961371105619788706166374880145504532171619738851204574277593428223236068974660683771328564945713720841422643897698615932264572882552049191888247007255609877560379580105606598595393886005238468525259319659663829904053053000099334601379183951043849881268812697448023103288686071128477465204882017063289868129061240367941087240415706907300188894974409545282143397210065928185207602859683478395827373340103029870375870526113740881242890895068827010965494472225940360841944179133119308872464443189711980765827858083124632853578960973899287953756418188314137975190972381655186897544474163988554984009013477885129102187426930130143225029722212008594514269843138539279408133109068955916268323845696940623521142947366324740476176488044884070859499519019376453686206412561836589346384358710176618795309715274261495388797644293076076336422943197396765244398932122375132049171864944642441883088757673111024004405408538492707837235481153242469244834396866910464883328491342648068102886310671924853789913972158760377450375478434953009097606231050588929329627552025319675349990833911890550394733955530857755062546409401243068962150174577481139351312429686559108174220229790297590336178339753402581659588714423543576936205634246007807651853627138382775510724553471054359068132245835838063659736356493418255187239909432917170209815077191698998215591458531987242402250028756609415798381643512764705417410874928946308668493381574641310966566952992858843649103701504613897689080961010049793847546123820547511708141381810172749182961203981880644189993548564385371766737195263260675542021661283832680356458680723449806628091038893416578142504173445405242546592215261184597082226081101109313815577650009840169677112465236722518312442007418694673655433099305781184076242405972862528775885777995613735050908047805697622981065768625681619076232469246942494850020977723723790919740761872203958959857070382107568524864296228759716264014520413872761740204637024777606033963768777994917243066211883365340081834619246536521136746622254742232292388632557473186737202870764465805426188562833630725463989027620081187951421657346076312556920677001307755635008391149086288111710139530303729244627065303171328425009392180455623495174712830776694076697569620278128801857170374815221696718250564874727240766016805290775483072289787580052931743915595969712419706144402489403699814556392224324770120740187934732411948673498366488258050549499542577470191055628893038870349699767456124291172737045122601876437807516558646458678581675502080704313532217348937670482515821109822145466021729684243304649899828824156539335185539221584596886844493635821031056304562959567095596182363813728525285358737428144089983407939562411840726516599295420532972481817568709624367117144594328510745488868025291453729835822012655923178496949203756061903544108345176087817913641223590383771981151171960591905208094912990444072160351791572248328027422255664241275266312536644067163680415171917790068395091164467367065421096108598557894787131075359991884659493261163141076411380511488300819416480709043171211964131193239599647565884576757672813560609791209089996954663227875989469201007634361430531067441461339074782132936033519165645670042834560838231088833865307472395252351129472388014116363742051970753282587028170681151167439876764267491094404073718096985604186824788562224071261046307450934193477304825836543378489278132472235883949558772526202048339029954839667445570912996750992523339333688637962850941621940724522451521816938155735657420772231514777896006158205769742679253189418249348132285841753158650687085007367808925875192257164558939605743074143698010085491499645867972197219996223858503395492330388979547179307491699007701729493224620514690888129790730913770320759116402231445349824308303115763894429284832657828393170602283993342694383570920970370319049000392677247114553766811294418748216737449704758512550857029505707798624936265275688370583855196229118052005117718273870930042539806341270427333315993612343932753376166041347692526199459554856765158100356891924000574476785664267072643849134176466712131379275706978330659326642756423052809938828156271319797162677305756331695608985460947601478042534202682891279473793007597893020528410297088197381463981821099735434519998891623073369638788981425916762361347292332810491258691239312954788890299626474903572545053719513313232920905983254683984130518168763624948375948798817532157013074511597637230760257191610167823306949227822288404154453017506067968325854233872574359699462455023514478067396242161354912137238451365885469755965588484365544029424397377307325248976519257573642852636655785100686269494427053760641452915299024608841408114150122952479765010659046375805748209855892390374121125983638064398910537757940478318855163323231940610968416358642959285231073494396699930221702118771994895859780149710903105976544303231793790226405537104665942853583984567307554113426869164198125608417074493817303357553404297439450571553530028853625535623724436275298837240035352436533400696316604957908194132258648695611360497950976386591896754002576697179330254807561641693294199052096615365263332562793416759008103506871517270016307118653700980720016103259988048318703855156356031082492795524207319035077235360324002317072851961330217247382187900813953766091542417548667119883517566717667499862949566927189502053773197101496873482197350233322282425226608818941319781986808233481655284765728594317842257265812548758381101649874776254953651851327884652101579149874573787355647389347801168286505268102001090547703444926292435253367000698037025600013596855451896483330924565792362832511000711892329029550369846347875097403541485859686345459200273367284412456127963662017946234494805251512490973285896789746848693384231124945819020787339662439049272435705444577860470363273354000668739577010281702456797567516456082529558241808613747913707160706579788410541827051479942214093236197779509405582306935783107596377290993195519659175740287753205601624151649625267582633776590151220083010626491035917750765749708193807728280355601663370139778058542422644209899487314850089111443696534217838868659704507865773227072969019882366071559390734117599994298558861771897154309990623922457388074487905502643830243068023332193603749933387434845416307955640777154911519583119815788818520116485152861430208861963054847014363931242076941644960298568843610264424328931460304807573896232982923755143837703558018825064897843551949148998058617939640672632318689420929876242781194439746809689121279066778835254548733013293237785356300426934160750474319986396115076559915650168952452594545051902857906218892067298235375874795408694682367489342125425825199167382889793415773177413552351310068908687083354635930917496147393110115961909158961559217754772271041374862820075392131400176218668991373018235981391399292351255482052677058660488849556897183962287289171749032685428608676104076020937732882073163256175923317604765791793315000762786696187575318409888943890479913081723349891296303649751370177502193290546702078742392856488155492501960467537757922617229429601340953817819366721123971339396764523264481202556252120344763620358536915616743836916460016540523995187641573592972867197592736466663403202785320087620867598683165790081079632492526826642417331650165329890550756700198848387760784369689504843218255968174131393302346944481941822911501413450435710887996312544675077337683714238668228435422958383124883246211065009672566324099658519270169046940716271614609584516365646920782415274107481649813005054019454580443303650864715430020819578682598128050745523443509892549469090117695750443298581687887609058878230420605796064758505200093199591743059046039827992332248325951332451967782390813298007190191871214489559662078937431369614406174692865383551520477455343433158174367484811193896542835521458576277457243005476003038180045199666610369576034019793236968082075881616806973701996907829725760918212256634838460835839906162123945303447992967039606498292927700460267457866546494477960590565121944855082155134143258719647335585447919312425708041785106242045202118072792350685597666198947135053139952205276642935961970747457966556657276032904250849924842198265381026367558046533452590802710305988839319441245073235342634831976011705918969055680057453688016087713448178072537673292832204158168302543169869946807900173490285123233561227745643202154471685830773371185970510918753923642620764237759304836422879468905108442591372830972142064631938556047501698733673589293734650867457580343902292719576609748061734908383776911500804632768982055529206290169753597686590969487635644687827367262149099129687609467123027831386829635549778076653028049601598463604853848247270132729351148208163053150131024293865716913844696759953446173818793032133239515631784656631042373736467189374401943582457540305227189129674595663067539187729053675839693288667773525471783209387645488503109170061776513656295369778373241753478608070648524329384755446893213303664731877464168345249080486398400729735381815448867563174827043202321126039166712208942221384388873209680255309605761697473257295076167122257895004376216830897271660644655470664167888389670440263345384120972545952875135924520427659726244025812684982779197441315909683922155747876365941232422873084923758095631929798788756770372740690862668704827334905699478440768134807489316820657119211570431892826757033304537430752686657584731371895568525464744741134189230153478459473325501271264434037128346738157709825303910137173975272556489825736001443944560965417655361805918355304099021667548051160418694144469423781886305053866573360706007562321288736930462158531402089870294587655698658932018148599966941500600198912189637568054818324558896471247540391453455710123325556713474250944060407495931897844023503834907972375969701771123914116284439125892961325399065239994480618743230672743688925645361502135298486635422205779363017948488124295995088126502564990383352004765293093519943410707235273748411697243522333165201805852272044620551468430693161390405561435543022231564915512015938650088297117950173911618523345762030907668576453789328171932470577872613699588418444294450164651491213816291408621229190708425536209388230585191138257038939522082984230306687394970643532533332899395983235879885552831710035826688839068618880594085621161251245857375319345733658517915196102949686359876007227416504787299716491823034317588998749130488304656565407938037052316776617347185372181565615702747432258488539319004569085606892706728876582953303817709173594773987500589155997139006737303850849408053085699577139974232552903950297737419537374210732964030555831106442657777558545042490668177533718434785212052814830979482600940277535602545440778526348447718512556131613973923304334985209415498384398789016012308668033786403582358744956252707810396099183360675924499269874126726744182897686866326079692488894713823432054145770732726344879624010684263528917746685240140300876895443740073247116563471338742685782630115308159683014169684072171755007559063396888133055018350446912919685446098598378743391932253743248957648238272517069613727397238257094219807946557379208452300522497891854571983953605367301379250879233975813699450206721535908723594985805529841408005404224632956037830925652835626871177402393049837923325923804228006199057525982879295420297737915500253529064056057041859006338809290794056339238338395812170606208460480089268179076267880385443472316876957748955922043467687312572368203118924948226536030167528674597674908705301516871284091098295588055595685102301880698250164873019844047179276290094558192955481607706822709581098866331305591095559247602016022138514227294511393979971773240472550237488047078032884213972118008589770524572886575135156743463982757316348727577951555623104670414672846940589390936831990727857078452723317340487842540485604602175651260033273036490425033324313024389493177542088322435322958582275883900854316500376077838786443470656364443270368354042934382702669639403203760438847858027587478236355250680904001507657115252032532474153398436944155287685838372098871991975735005427961816330189149276033278454229872833932063107664838649601880272955783135969498164009541783972159868350168098554829935492025279452374922831985789109938556954778837900240520181424968426027900171258948153706077817225183818989954455218972630230169439009963145895451207722584640129768747319637931249963508224512412461506713352080479776051848914201092586174215292733500403939030669692503175039187311863718336749724931493102895398026217960900073114101037021596724731668422413803913619379125923926997300628635592007940288537515933942117326102006283016119885075965243923483301822807546530359610131691814641449288531612576436589623108214006783822737727147560327676234141615512596922489670262686611109635291072351065880664590875878165649310063066721011811790596106554716438655014583991595964018269563655759445893429336642504631741811963238968902845777538379294992685620507023782988621910720675589329792766221168796022829851598838118227360745554536528373557167497350314815098455717055511527842221901791232297803285558023704796390460378341947629601958498713213691714005945912004378927597631128183785149605432080853596491828661851753060648165685934975375977753772080925310738778591747638511855654826705753538378425056756209780337745109335199740842823391646628985346206110961992556070803359465444675683667698295317541611380354766773176809258324725064065718264922631070098312452407820648624848842679751732529078868148194332975457052419945531514933776440033613214092808483634436449777753639239596805392199988842752227308699360636082707188302408752124119255015217684592627761789589209140040874177145101358066782064339176460936519351639643664910824903361956889332760186673983814557935815047323516025232920543412934015855501295644870108466169126056508801785089589077439723349137415336587145196403126203465537072016308190633321337495673588250522398886094984605299167420186274488626837311667495350851301574582252277571884821702486737596917521606526859290445881761840654173193762620375435365581960261865698219763477249766797707854355803760177730840067755006175835810102750004768521377274474950955879652641099210589903133066941745256607873703253214638536812006248633689152995377142036963114230648147437713920292082760470447965135944352305759423932651689817093507628144898153536336740361335713160666420071346120481700952151298314316675167949890161640443900633405940348541189985248880813549583016752165246623825988603287352208047887180265317766261434580640577173536085557318902950155189530735930257402368653273687202392111686838301659854007886813826874689613829276383502108741735670189417457794937066577671619583361244763222248692463714226416500278158745710128348160347202644809187535022321953507909085476457599339316046596052652731230256110946016805594930087266607821288512139238741627469806541174381281609022125042601103792084568587764124048672290821645686108773449929047590665320412633288840256720860998007901256731513144663904401855096682340088899375577489919826200781836008655306377778289330574893836234049166162852710003147757046165907531603774036176755504249095604373556719840708770788180758106044391475917633438099836829994527269768310734985490343357712431350276755427357243256045993118224703172241085250338918056542249320639377833157122317493171949672205486962883563133528184874794430861763436903817801601652110337818385718182552605308456748383454243255357626469163576180925471038089647675607917222202806369537291514864136518983124421485350011071777487125048384252291476649880362415164378100999820828275080365460117282972942711839602762000004928786121722007077356946658292723312204934279117114669897595879816540231193554293828708348729155934400368617339840259570833353029312747946950024493449801653281867209640618668558082708834742362814423029146279951475285862633789721882597391908232311740290853317469065306110793050785490000738580060035505672553470538441158905675536408055049173315327609393976491652433695939168762162321809622320803027803124789214283368558238520517872227017442864620839728365662043986684598917229849025420720192641332362452539300166654327272694729515248278181070214323054937837912696059948995034941524670652746848917460697346313008357878553610580061331013425463464333467825861402991214875870263408433595958167397418451250185314841604610830439439631568580318397133708508040309166729402611145753612350799533669823809317462958039366591823694915660907889813489979624403395737408946897254701872198157527645183497410127883478138305787839564837611216646731874880821199196983005846967601216190891385304860763033301223552384746892837877818027628386887520141443271724515203582940185997584953277185869649220949991173733996761817483569468430281468873478354686755208513232690730914486973002197130245544276611154325024325122305546346897238228983793390869165622381937246073445686996664255190184359830541460519447797256801659656986786705422294432591251390790638216070592090068990774854233255666236012887221232461919417859338885330524941263493473656163041554313734318801237717261389482537930579216999721305596597263724916682968664620594538202169889850599100072388915326702666328512255325099640522217228064253165473292434620287889417036673405569373356283799213339140136825806657019625502540342424157585897681916194831879596975199914912634910445704232143226264457081935530110674592831017895770966073777776946807903848569319799294755397669217896476025877985185456394899587920591250943642164049545377083685930781651664720056453413194489044473007490675862143708509123270933079498526473456517430360185506337478961730381893995133471120088799534333509571042633788237536922974806285955435987386240224111447558425733217946491945854283324588798290989448251249772358070240093925391150820114959111052088210645339415496865153601234715905710317739786535505854570928640106419475003656719636687697207107992456344898934676923999827157132837684275923566350670217842538470363868458045430066211754605960497862052741479040337357202253863511567019252753039556083591933499752671237227942920305061383220242283749697808598468650445127003688203155315455334076080875042973498031602402232196603798881175421779089661346686181926034273999575014892473521281273527286224354478103161348703158205307415747369771191448961442652766273893020381268905738143494800104287611959291542255787997552460759376261136179823617141167422106008415574211271118539341561916476556721350749273784014556138539731167729902741745551134077481710091066916703472890922920116963185070849183038232608451937293348154553618707724353374906715385497231565142488835272448719770618785063761552617292950905525170452983209538063372211822822049873429993289168921428282559096420006441866758791989198076714549463120622836405216503008101715140102776510690787869051868980342994421154042221229244136591443851425105833031571288000030420773081599727747934330206556142798611911002456948459118675977372307113342472323555228405680394091467757338272985301069574487174305505846361901717833778702233937636604930595042451125385170072975397989530894381705938565516553569428945780780487820475243032539505468860121685828223149743155167052568031317494243580465378578180963356562172613780810751326983437642543053113886365384944995631103429287579749949167404276614449792901948578497344437472088041447965907144485624963911210094425006943899130220840045732012215403931942090675222030341423416519770766939354462493046077906429215614259166099954050202383349989361146926035013481044417112935700341777183069720854823525440760806142962560149032684895062824475177961514044180249500307695280339419561506389055032324881824182215436226525979341339306656626419210232508634947186200702131173177169786298201825919992388020584200175254497660677293917297296780065341410317800109372977145979821800428950882561193648894064436119698856658302844499172488249956936797999419810943284952936569386186537479666063518121389020823479299189120362480861117151313693094319688397281860370647332231049153695888418836974403718009922325769256920249992399737118615085032590719559772450152770992433439171904679625656653657411436901371807741705101815879189012014789415686806102355837613429629177860739475361569371591017034249417159785735776783373630400907220444987467726891658740517556249927437865712034799435404531132666295357844561128643141408050104309342981626873525089392355529581769989798149347209795840917276492753552056490526276733185349145806761378448429356561531024887000671106240698536154611125510832230619792311378642920979808290443536820942658313752356075809532948260561149460315822427758214647431870513633991253046518713819557746489169234319330290521769287497185877019012930902185939469110176939806029346244259570241949559959800748163642065829117800917810837763475820757292695892835150355619903539001253474129232585187117162205650733589680012847311031049687428445166412390200178715295520491600870315144157577541099034800621489372207495002015754912293452242105853587842069446785957256872076356344471813081904832285340844614031626407934819497114127746776922999322189965941195325135450190012649267729807777213522340862853435980026858602083232774354136178852300824437932016084694728544214007276546910600722119981403724212940336260949932426141783872925338054424945901498005257404405634598078223564492720357917434932262340464514154833428234931089289630500545714096890538876717753496457141084338307556346426892993191177807831005366117761141279648530244519541151500810837668530219761003750815646319423019513289323562271016271908145954926409331903981850278353550144122431891244266303123950638862122066300942947704550512586898670382975564837389113200992502648629839024575954124269774845611167888927998705455579526038010897190522703620272725702043711763565280212928694956453584231555372364582755108873071575704682718848124202807475544399139361324928223137891505088278186857344129479626017983187867085410945553912661286988364860910036918390225421419387058017975473355808446226350458923074230978782143786579719851072599743996916963479065147511845111037355237813694729076051363194917626620954941745770715628841185019645320262944213734774996254094865850774591903017397165173105879717133458386088333263079863518649118032473124648454956978580485188091110223485209450500773199555368843468290616458015235423208934750292211220761791074526735474586381478125813768593057724619987595911218245525707298111091138624235577056736353052868254005279052546878521952970155321469853276103686084565826992603347869511811771794758458500961924066118451753073659052197257509867441984506238918022410332808387824855230405250650588555480047935464055058624080191836491525904911521415316834717428160623352763407303164990877877238514690492884282371833360620836739038582190693251889110545523990752153975823596478496785480744036496690804801073058706091710042888459767997986791171782806546950007378769787770488611581122600718152193481506573947090400632287183311651155569559040387283656903340394727699261704752523701163350899889909308429343067229790232765859892198164261752185370770712024202828058476201715869953117050088127839511332743678447830648106000662544970071374925738035455134467627257699253475146217479597802766739583628614782641092398828402022609497685482382137552033548481557744245717101694552402259202220273817108709870899438551134813704426900053061793327588255217497155121727559682425739128050240586095640126292321424242555274771873234012428001132065893808083454798838764708455847990074273966981788826326502552281154851912311702302003449340838657170043160898711947700847341894467343036991762481957403167900219292880633129687075874120787371413933585019675875196207571132133296902215553839842159072027238487231960769692319758679994786802771474379422614569895403547672085806868052425523689705382347191196499666213844683006261118614204358413573378452971672734910243546253907229228143452727722762606267068350017353922129498911568200493394093487122066544793254619382704451508633529104507159791108576156135681952598409760376729620326052833189763506482772516617705104931693281743921404906153375973860203480041698840749343141102733814325906230783038718572695701524939833456329557725559023564667806559950439935230268062998106548084406390878529784167021067978062855524189648965711801605874661311439795272555457516967312264866407346938990374762924524358693833262384513991434151622981393786679880208493878657225669230830812013500396920747746189308238224705749808999707974720634546167360718155674751692245561881332684177165760022772907022617217719593460864786720988388878983396544062169190325216808796237913468592404973303652318278894045295128073764696560883920750844380341892944702192112937495456951067428892911737472215835118495262642252076558524920238341955615015674768448206192853570860742551898152470022729872677340934498705997954282611973436585421275772893593321586948201869930558034366204588910403377483806750753064611845316890057229710413573648803282094393049843441722631074136273740504490743643959941776046519715472585253919967199551531175505822454195657897058138636435090977232945541777495168536273271725943094088982000316704596365281806640290141963267480301233774579180680274344521091334209600510116298038312131248426078416587599634191088043805652271611842263143475837998714543426939528327085020834281134135332514951302662665414917691123583762787070867621067431861134710696893664888771823548755806028449699023559530601259297831263464772638323057922607056903675214225402898603182298167011527300798033924363450912893675005709624001306324405285636827393309460000351766505915142271332375601657629559714452267731076078401527004450407392835001834048077827744854374632413153780696729906674215305935840436091634779616288370776047385498613981351592941025893006334142143593311579833564447372010312972758645751047740741247856699249909389702034816394686729598841072059212709502286937595992032401401389041101188984707775561607637033767019725062077843259075193576276344631711376139255552095784359823843481429207672450495135984825367293700703131659366638461210540894765890267500462940564411819986056153849691459990286567358871782519946503869625509719812033616676369903228098287516960680856461800787230859407234357670532118402269928024644216450430564795221826353370300624834263664953870841653275042088484686040133879476174402210888004205393070261455616516820861938704776310090894051082473603671569629266978745461994382824809665467348519685180731578835761508337329134872979424338196969082098366433426940469846800471251107520781355029580803278704128920698248886486029770912143905653245891769125124725282975328966239270001188972541434719793990794897488482112218954687695947488178391841640144140084185746234091822444705230646641577760815966889974221120902292300816949817712329061049209278828299844944753085514497350322466556709792025098738616008241376655109860117581573244275451901373451609443377651021382155433296319356521255455522534823441788865473342622204095188593056612026235010812604042324950010388598853344183833251990737484209839265847594802385716957370148351429783834670598639247396894297561037827040684370580818229960908529056950993000653295562036118769222941885534141727445138491306559656286595777734666677710074588221676465945722864899654844198874903535395150865515923797246997064366550551802031897072085918395422400955471447204382639120803674461805690297210322385914625532059953902920433784867505856845534129483091135510066961786836675765299327470040668320457391215676446011467696060796214148934500391988982405425231313519484949559644805587219158321506629089372532619689548504847454622517637797845902834376521320274982910042003179238975279243210007479069582402003154724407399970320308031211474872203577175629978420234245385175026220792216016397544766726504400551391764694824787352597725626739154442799478236202214000750119524410960681909154012715436054795963981731717592711130111952673057489480903069003942205582652322918335757439109748562924102329463658706417747543246327627682207471088243984367742448940822649563265326766289142363364861992229243603404236229997429764526829475084194422844029357451320558973537007062701194002363234546613598381292562373680806088752623356564504776640018809274130981653537264253723558533412480256841223373848567943883231559991103243650456800779016695114708591889855749950198862323192499342821923768143668298650653605463186965399317256721438813990057961785681315508081241953227179390564258243836488548854639397588510820934466376824066572755547783916376585135759117463743240686607763054775036122298567684778434250541011158757352241641890601424071539608700316777228873050503103191603667028910154949147411047585419138131635033908760015362788579948484414658880508615194762857323976061528000347959507686376429408126388909735977336188113510133459952581495289674045357580346794416775195365689924816528049369494225251599521534156611371140808264955637212378296309284477402575696399636491260668752160695566725150083525570336644359130465997734220896269348490504847814623591611020115413040466009734727200597548751708396537283281058832051136185157215824175808624545934376406888917886863362445977165739741821696790118960230919257413844404775961875445013962516936541408432604615909329925812363035990139744559475543144855860779283598792989808370726622533808762095125793862320345071970130491192607386103185625282713915981483172991316746061633059123658051217577999797923163622712678843681944420318643586243687700485737290945350787973607610949996794690267820379625716702665266350271431911256574355902471650869891883455311734410632737904707411474132513654588964800699006364118550701348621925469544735759310699885117266367064885233457091883632024399334311457428344308223353112365584288443679190937513803642926429195990749368102461985410533155352988152770102708107789219645152533151761459717270430199862704672774706709124148276131232104373196220697649589807229305613696516409870806572279433819730390791991585686847272589410894832984584870315175146060672415826020054623995311105255518033800102652204153275279046520703773837524738548831956118141274593796004629169446869208442309956774709531234832006929051659067727269524061826146882270846209322849213243556160744672874180525574849382424199474237425828137904715464703605550693860623290164086047642989760877489711733194265412841888974822142217142751014857848223163661819320454175914391582386408915060099035041727570812912096345015388351848360642459677866599513525808960950352847108659567032723985855349872357683993796099176439779853251095018069934956256340296637894636033414859040343507178361677744648328507205353094155943401267160754626032353128779473793628211500503871890763543498446257369540280061791180128757620353800003984972924812726777569122156145267017591695275048012378189681472109739631173385815431261964353047822803841081021541669746189304821825749067695226701383074105009078713941176277706625481731694402818403758210589304107297435722647158464299506178313389833919424844194466151946275967028000109980452164207402992902326670927105477984555114834308097715833790665501678554139955462534562522261260404106534198001355605968848920282442275354482974226971207996287609806631006161816676217625112216982459594596276873751359058710075405326605794714064640677710956290450057616622009963832497117551796820675612027738627899750801461560418932678491827892273986673224177008002844822875287045074577786674089373923393814277420889466213907478178207195890963150064497577469071577228597929334068908334369912804493353928267134278907002085939058249656923413703493245191549677181525149745336159680167331326792720507275165078385876250246288620019152346933940653690641641219146763424084317191572083531279524834199268801410491695375033864133504176414224355640137805517920970328904186738010926207818898309805693168617002974337475867823353337286158379907983617098703402311259734650840759538661232835379923299251924548517674894729788242474594999937084249436447991691812208946483799183567318902717489187830786488390586873252929885981016075189958969278528177581864341664588186682734765474903501999268880995634288735433526383344761114365333928092932782067069717176557105933777481572175342291578471158619907925868153511002070366778463959065002954625028110274484057657727800870907657882398868429909923844702040679644466326841390133799653562021534927984528392779933222691363584602276787108046312475647504415966024651123583204211197353351470691950546542882471776861165525363756681287845531754111505734615883718814687866802729913113825323988199888677958514527930699406677391657311795239434780453889285320406682001385194998782286776164612436713859234476274512589227715078700583421228472153295085106838923999594805682271767341154702795923713115226284312279372824760032066049779536584906859734468190845247334175161873134595931166654288096356982767411310075325919787271791695824582239930928111916464795067513839770875370222124416051705504451296178727957831661609193964601358186800154287257932993702035505229188451511612730169706837806710080090507674547328375717995866459958448542310410243944411171285629802986079396981293285740838634350555837133084539281994469674947140666991046008645454981375035845547306768330647795429817568573037450135510325811071551906873210620948594922356387708027325950930663862483921174769754099629444783374031276946158289490020374403504699883014143290545446010620343928286505278196935347952863646567145937534563885545207608751626132741275061163654321281740767205673762206640248948794032676685728323002063282808867194045645806962102195500192995954536163147623607199286262957010873733517138049402290664772852460865318583899173259788128485615422058077609407662485481972960889561672156030130218290473734465616106310057556486831208014957630397906685810451131450433501455390233149448116972445440207719270812398941314408877279401945954418427286490460670194775559480123347312323972790520734200471674920465194607747342680566223831397969077043368172721764455978831123198168044094110455041760224545591385710883113623796776051104038316965599007950225624914848294738175722308861471031092164098135098620038854947646488710164494057110849840299564675149450853584669744555660084248304317007122614362378734085537674256369807722100856441637415958964034104452061407111035257950926817123386615328104183898398264721434055028940840160002603092546116719338549156933523410146322171319972041009005442789897759480533358785474302228824490127436226398868754555683338071207100701070686456760476527096913147590579846938520603994437873698801611740319969034114415406169989467150891158812383741032301560923728914017483880816383885437289116866932211511252310437752898736420377081219004508845228787816430901500055901605031474424524893540465964008005502690598185271050466037905757871928329764548539248147576716852051759492917046577869365739496263705064756655874173932538310819402698530396181939181599941630158298536445370125342895113308547737017419716899284727402583977140451683790080879204196316799560327655362818795130412030192321500690981389396647417662256311746946377991213878422777358832264288868362914507777683096433104251698981920651334164296723603171813677516405805356930357379992849111712656786785868434571180130621096850581896660863009736965511263519846760996449682723556435695726390281945824490797221180449680112976901247754974253504494930468852363956537711982927237403911343426839590018848476935799429917292492483643597151511496441752178047616743549232735614467863133092054760752658219261157035014008035308102940167881922041200583653704384318301930677281344552496397515363464076964135709671566002091451630007399954919114561197513059271308152001162052459919144050615749238501899264951572961042075918659461205078030060155528703597552346352049489103730504671735742087911450909992473710463411116745883564431499296310086281540072491249127150532940629205338562012088818967880601719746409778812225639567247608869631734211992251199954821272230812362823280716799535543570516761444054498982459466177340436908751510206303380645602337076308918853114644168727747716173482673854901455330725460592536724541892159464075229279994392039023073710800782077110931864701964108801300004856473181627174807660613260453023921772248600930949503318878491261290989112963532751771138444531383232568626741274231940869344996463214410865849098776466602267532820912580106467841813393794679852534457439817031416770263337549790953292212113204810818429338079748094835009557704503730398100999360953765582475599473703987433720721736877742267197289560005067926780709010310705953790998851809297885276197205229719650381556858690084454018319710522125917594845295904859892391414787594297887397465816806434986265914783226888402162756013950351658783224940329322984866471702322973849490141635147497430649042138445587841037183689299363401228800373376213890796160910982939825896660567532402732777972281539253601988095975261829678915734740402347232425812298452459286430189009149999991354252200315286732493575436226749021550834495900447997814453683964853769102816457461012516814932146085621928184585728775144531428212990178100778157999405489824160330492661870845023929852489958737837490474438067111546009092422567201877339196321418945790719724321480498209304161391167643776674214272956688223333909897900960275819626301140107239992759579727679474562739179908521072283562632813753425384832256019560200646529221463090278723690851982698174704395936550830537985494586561775134050502936805197956923694361744907777679345455761251398000249478172775729071123019675881863321686648503458829938737005642161946272834859462559269690972776377651717594591584182100857182304488968107065889123022191935615864769165887517006078912867523672032965200045700089450839964810220935319025040828692614801261904745594207909218320246897658995076209668200308320784415707022418194326196867036454379945701739955669767568670196742534495368172904857056272624194895608115506843617087750004816087247287931454204454261119366767524780947417833184791121599789716926051972552928204566301370223138230333811221209267612369313491931352469491326591978379746243388618867646226942161933513859490083026312336739814504951233095837861392595824968786866946204151870889263059830319190650202905699137666663167741018216238137269218424832236224307442296864686283009079118968751398978946370501400624758286494504580400124976892985131648199813174837630676346641186378714574067860695442627512578469078757350483448501513883059706596144653541070347867112384856190517728716829258391368750443750578090506513385658959642881137911590288944810444205948960665186399895085169478127731458956318624193480966099564493664265765100993485068480695810915723396715913215354284797759675422363377847761467239447370156877109257503449419588481349063928960040551669780337680772291106242624795539476697136549556404214761897927781246005456275753116267020476136670172482043524092248615047567636243141734594032406325817744884987292490033178471581257481687347913188731800067000205223266179720431236702906123676441057016910835502550856839816269957811549330731251533303154887718804947686615026039652420438758091028567227476520627069141242718489303473497481584551016173958724278282971592211525773808036705743677709611981363675482864687907523961480335747521864563765374949601519812256768995090603023412282716205143648754777710359553699030640023451947113748423101897961321452267830776852974100883876496711327557474513808382810252517746777298540995261174267961744616436112437519892038409412149781393111482317660395976784178179739993506143876051080938882360725206570073656012681100782863551058079860758586599749517796617351382198755100862426255307566492462478386643776619296371727026380001864700313536813872053556751103694179834939079151517570280428038815394260749331426707390219741935365442794420364713947891290182582890066145915987665766568573645404973997882661504230126875056358173616275106224963619046267629440488186271590337510273247878371673184291513744738182974382008884002977324047313730745577455698904673772963733436129892218304367227553160986942220259566131426363455547955254603083860628754560250549029344509605283038669359549838373208902303142441663402464882600814938368214644589699938901021027360152359121818426188121878839657167552302056119030812575318131446971484801011695390743812097982597501052290329741416409880480045583080525403539942484931180425543674979291367258873212245311091555064047731753351721466995583688354822386463736863707957782077829899477442115263826503239956869645530197184399445068459077515611160337420529922325129609563470778759019271569304695721470539573564845478343992701729167441181571669651867525941940135316981248939040785668720144385746213060171015634083374826586837549551437033398880661221947551227672106140397822572081613871687779310577090420331795730268056391654660832857259024647906486611399318519519418339653489690417385684978772667230687574445123823623490971342926369290375084029382700092663601779438707238448501602198173204180134058593691258387728461826474297320883277088261804822080793337654753947046349454803025445682460352506623461161717936549360039988131268848601669598604385852650752991876753791460678240743242579802565708782652615489227069744649304110395042891117007494171965045320346063791284345612537182969410483366816993497492415795449295940688429355859996268004866663040214511050267663750151648967295000600845858312774068107292775233902555825329927069249096384366557062808902053494209055219989655333738416122903708299811344968247527817354592135020109326117198379831248436580975140501009106445552765958202489451509815989100636824937072212534166806453950046289903550228825365703042519838515817257234284033068605573129592988235353422697880654707537470829571843791148931203882782792057730190388672268900719000533844560284857930519228815103293092779263886005773445236095340323056206039566313658521614331673897764536998776196100596961830441050113347580117207282598424322687469770687622714044806329617231078154205479725603743914568828863851821119935265250957967034203488849014495025449277011933788697443950205124838516603311351149604222923284629518861424168330613930192572914550156656144043235464775367408267714759203309520199018183868480035177098781127620344281619509252535134994512233524753650794394541572094982799293826655303250271099188904428363256802478392827677097000929224857231139272316930344841107760807790133624901479712874785646809886698837815012752325855546081266116535754223301116838089077587266636758852468241638177237945458862607300551633236456438495211970028578036987974493639684879285900608902393155928308958887302590502888112017234000110661021680097037846934579075801923433165745752760887767060285602227941180235740239029125830958235538393836721160685707778523112781330046832482244992360460245758465827033580239840917282006869974820200688644700571009407123476758744759895692102145347028028613539452913379681173835358879450756762116631720868272167444818472497064118617505360512740036211273179912768943323359902937291846242946748620038361357336077326508252293300296359022741968242283665112698059396752336611990359285965522395463791936270475213469946521758212836259525770213222875654972441199769948216399535029632274402567451110004649139388402372576715531623587522541856944741223588803714138782741511145724624709640493316233004827886293566030603723823029180713597269645236673156936177885727830013722461842747903028073218552871256106901981516916389612207945220763748993597050167671150099573398345161622035295269592195842470440657046507225490349317087173177726652479032768617987863390288965953783783216395843896948605097667284827688601698970115970288950773067696948121011567868364439329259721395087041468614110230661797996541475934947435856924791990501249099627704879128113826134204725160468807115743658078907795920927141115714116079522126013092126397269505119611422148504424401560134363295931216526510640003672887140750333124664597773602101065969198514499104776950925856107713760563214237111112620220695599067830817168448922118609734777860765039762611746340944212737980017443245615755297436865826962773524502490795905377891313233534656451775810629096564766447707172151715234671122765596225056386821048970995457983706238572288615159059148949197182754085631112154016604646895876587957941930594423161640288823508382638667219216099145508818868970423249618016328540219333255976708057416858022494741860922942384809792283978586001184522251393522446787721413871866025680390342039741450428156583447041043010917763570027037785058305847955478642964718949558931794670089927269769025411521917683697322524761276994931471740705292781309057457488220478580533168561862512146087627239544389388275582552924941186674130525423644776483197977277926399544412263428141436193279949338840581757942744611582299120421024669507294746100232400530217071539677973231379626664845058306312520101565324852051795998839990045530382880244987778361877315860566904328805112887733821381397428663377855807635400937345513888562112733010063095948133692216312891053786486459327391669562285969274225967710519788284844245517691052139043172098678821960264514767913184285066452281072181532022471721682986949037755950432226518114311592869322446669618737870889294776784174158797891892511121830832543322040062183514753311048297038502899758882097501218189989749802146826816794630451075638108293762990173411635444839472835912519290627690397212503669700413262724465571717541483331797068040766638481211492703568454753007460454329567290891157687125285107988594179400060123107336111969577992497782763495698742037563736219765923687433122882946830041407771359391149286141576496726022155220915108329675887774831129967547115340567072565964618069542696907534125710364236974252438044298328823608765335872283456612713230269662065498597069043416966590887746746240330109873891281052778106892980157177812381975601885443965846252934443430851817796102812404506638719656019036517581264709153910122898674076809270430407977149253759473082660950754012117188587337132313366574254418148042527365799252378055872697746029694269576394663762601151637435603718558432144402052320968945386034374780943514780814223167421178244431057008397292900738949549193532711658939352808132528417103203202900828926774668311922036541317351439865947098813364155302121536999154746126282720754542253532368695362661308767292432499348590608871830856236180153651418567013663193735401944543712907269783162126660091326957068316099909065756168886290831393660063450310378521359276571748713919475583295658549693714381832151633542357633248876432643338626971243019484615068015443853630759178384588193007414975459366963692774116988165773768125668424233862968104130799838090701780229468180489827522419921295880638764325800428081083361004946402828938673190505160187711026223315840150546661583526385189249573583164066930906610045009332323959893398458571973780625005248714297883794362133536071718790685291301742507898191775525824471203173397730923142231291936582304816386524787710975123702951144575933838213952343145704639012068910288698965501377980516694732608091109646958093937950184956841133776372972484724017658712947395374978471967332147162431589911229346813039965695798565238376692958346133335961896634883400103507408294981174848653698831303402883691182772629121102455105784034650943477402093220374676265370150853485485741191980945879978967015015679574254585242101916237028406674551453814039253123314423923107040613822220584867015948000464268269592826321194604013450994448242336468984771365687747168729001176739133355155664691060059992326559137397594168813076347791443058652067547955980433657486437638467275906573593900683316809379798096335258976009775221048505283483933180724991720091237063890120408237310227149629235786653175865182839345348723693501831427411225870729149792259908926917611564128662416622948841595417121428694121104517768322881595016155517677344611026407478265923259056705195813229633327097853245354511509380604240061550258729702128743461607509361943241539101402316780435752458209974141514025878351993594746027561880953921086039583730924381072173306346286295635285948826988103090341555490162975279026715268640111861008035130690249767756097868754674964331181932825924083743772118472902325212766772318955902322836124192118921406760734954022923146859727564230673578654360863892861586137838988573568393333265266373058757205688005647601091510136072208592836919402777072769976848286068942833728824632310141402604035196091493387386107006168449518890597121732079097690356464567987811914507002346387160151757738251024030510028766923954186270486530440437087503583656701513659921727658471919452924950237008102050064357396814454768871433226735786381055355091601779306157934912810602749895396455874040013562543227640369218100712779948508338358595360552932438140341579183008713620970502462809588463623913033701350131702461077041230106506720686792509395454549600620322050650600287480540525599839516272714131369886131037873299026301566313375782309472587712761068043483785485869858340113363924069301963709997226821072030886101566873634376534789979938676191487337802148842556605349988983659265911165316872535194613206981749011497781776608829558890171541399858327248966363378662711132882865546932147160164074411539539521383163673460467016507936282293970973100133352990461925585909384063616462235161037755157803670433162999759607147374419862849731471255682989104798385465904033941732454349072049585052323668927464476189835020633634943615777787828359487165733654039844288901491503432157656958208475054529971844401671870634086166437571491351523303600703130530909662802229060698073888149209360846955195312553565592928023262829411936010983309295139238442634527043383705434413882785706563015652308318233134340446116708080232383173386092760495048500913183073481226452161911802368766719058353902109748297129162185007822978413397504005059398414948791981911266119667978561029346045258655416770200699855940429762773673569554450409384393774559593228502506446096658324958219442396432632536205684366087087602336172490126365510650726828301744702141900090633853045607374467999149949331222827185657812449698383814281143783087396414560694699184684430239337002309584907578886613982709013688257931564261272107732940629105749957910782313691532156596136490253965447230330468312825843279429372269773333569242732216028497852182240119794178855235469017428909825128298389656355754914749396509569875458438710268682934371376804940935695960594212971208524311418423044652170749624748902288500736516211906976438941648548357860562499522972893309914802515645730021707850290678572629856695775130269877354809037261741931184427223357823562934243663602647529458888503579414103728850950068310448678666669969373714030119132317422138416813725592597752159323426227686893795035275487409781515052946816393123991029774532863640645346519337706724486569860185755493543316546737544383050201472373092651248458680456019142126145191316480550496646206231521552458100698568951207131387008990393810158764516260057435865980681603183522038085281240683549669535673523398697420360720910730449276427297497449549818195226519768009577327902305838263656249345390055936432954790826169783893909378229157602000865351362068546532692160838518151876473509572255460037421500676098962211195472165583377808293801450087382431496622425933260818500202900676626952279849367682884517480275164396085462559638821886611516714344017792967779351071805552780012372309982876871582016302071937515340061102771332978740601876655016464157566834186598381487691431683733698392119535015011033729563418736081234938286923337111053502337669528297544266373646964416014272061907308556115047587948320027538002577797269246167639354251486475164418543470846622861134146796608257799455627829063944031700922904485650257987818175409009021107354537187281743815860555048112131643709652514566321718330484699593161987841770047699748676424883353503839732720055095759893183662549350698430383332493363054329897979571068733199942839391889592533164776039857188117645449946378487685280773016836099647671202121563611994563283389246503868610174284687911334962026936460790380452687615215173670134461104657069888224606168242709994304898047883084413970065146901572052495560313602914397475249732948020323316553459280494429823778129528873819035026234462016754143579368715494982310217963734335729960513567094915006549114802263809488633670271579886501481893974910800802405173656562425106327807463815101787899020186141702526765099169073677950698003981716657679467885093744288359564920377038093002083341373922852171191696017254716596765441221857623334789816992000586892020519326738353583769331320780398793542413596630779709592463826117901201416407906724141851878614358948779823611316840322738074982775291626361569610194746559149176295696966081250591121591601755807602485301836342910377537800868053587351799278156155322626829082399000343885177493960676033258370340320059654229851291412948296152221065365842763413269346913769599952919556690450603163949294055076175517303914098374373708753985420061986849169630527100953876456833022938230304460780737764186999915936083815910605585760897746240233553642644999541897901635915536155553583265698403864552544597407702067251169963194659047607025763420212408775159117748327586526775795280117546569819678141889015989099788002663780859751020353505483705653580537592242202382847679935298306426703059575835355057351100833333832736971954690222409959257258797514081157722705609074784616989824622818103894526313517314008254974838272114648451077724516457735710740420871969764665854099790869674701701340284573491855494517172443842168194539012725919687062120787461280146525641546888400608289758931806269675695073962788864484200103936670785218719154133145376159995216504858026421438892846496286059185200338064747321890442312953303906049931550067497631801194433592827632288627444272342942708399279770302797695039384307376101022057212001377572748066798172316051872360351513094467184732203313447675861770436661066174666642261836072175298853885536101711435974847578831425708102634719022259044741769830336128104524451041694050726046645881537753167049936082257548749509380966196074768230252803915327314919313632140870721241772651371554590414749880226421116701444842253015759998120797404747868413318776366889911441924822708804452614077397089425174856873417789921982632120040793459731362211319412649922168574776304103299522832097536875188874738911028388233006045421061086745954618307930715126667496355402009297196478050429734298261370999149387574537639026298512838608697013979010398836129834842477727942241620147043414475651219580372403740215446792555281563944792057295899109414565883762105764480949790341349634092910045918106803982268281532875896840892541835717164472881161533740223750271675967733806743906862268927497694673035072229256824029004530590053712935263957941824157068694314540893272138282741157983613179824163453075425889323115865175568837914810734736473520093780474356667069233581519666749923237248136558196563352169538245849942295284148316848773005023851526096898076638375588494832542379598269073301477616903381851332616301120105497860189472162301065467592867577215202441754508529153150286519649291130499078816637941628734169393541072436028656075673740465492893181594393920992990908526509290718630575227983769485530178467378373143129844956951523617816460459739564960688931972899967203955102143026048881495549075209032043909300288262907051511053191643446716780295132172818003940206505582300470077148951958800377885906720564958254340941972366658801243943417587415577626856624849617354595235901740868027991525867016380602290988069289364329457246677404587648720456522861134966825565767636318032626001040238368499698819458724230951248503137070387249952931173097441577735799125536289631897009580022463917216873724074232561532710973772759474449918903399962588462882689323276564625027411940745495570053290306677761968272373030166316095309032025260657507207151441409639266344211496770068292971285297737630930841145380239762979679536845214252225753942978048545511430186881062362258306924592792148270278906368618052986869891459517775153156258131565394489213560846617536344627300596829467540613232780486769930749698018160331718760842058385600955976611602976332711941803112983413936185282314348700601181104422762574709637917830883065179941074165730293536361102279787413230488977036967435197860770449951066638305586269330534805500086235449554432374296140016316216148620329493026846710817049492336467739496648369080135856996163147236642821262885409984988263331387816166253578340808896112681426543166940931745180405373767335569002706473079546490257888025035038587754228026165856557009501567492818759946419421493516052185363807882605415093889244704723906300188558760043774788090323741779593548147167632424373415039456764195043735058153956403453581826525917536906690769508605210860603319394382687743467871163087493557299966309213471153393814565634027404295020926716586257190117756261479330107601707985700228359899074860864358386900272305515987519391587778255115983970560617696946383945970130121557553224713179091813463673297382877550702767769811198320281753221669148941266368011419716044751090616287294698077748274247551240153697550461517398074189976046406748858630894527532499591059672251944718041673170028357548235713254673902144268400460562664492683016360833119763928712984616845706039900361434155724211400069203742474778361797794503505270753902909919636646682916462692836465599869458270786808625775456170856722579413231921431762099575728273179084449260854206264799405647511014178599325304810966878758983110864475509398736313644198968150057957280523889982338381102620275136128611851910898263587783537458950481776341162186475902476074293016215343602396647469932860009997942392582520975546076374662399095266816423450400783356022939151049704408533033735725346139831491558237243788298810956293913233689266662457260539987159166049269869160787514026840508600435850433744569399776272390721073055245739146941683390137532446609808409669832794534674995058489897062505712775386594260480358334871285135123129986208259118723988338387709500104465251153800013265672874433150589076867787277283572990871384771925326602956552602809730422171988615199092854921456167949345179423212620166017037187831545410822961329178300265105501857094123549248395670787944181385762964862007050637889578199220890743926586675692899770508190935200908546813506312873549831327803263327071043565516820284235383115005729404197926483814284991716829384291331095052919767974532872340419170425634818201749604135548285978658852376693195222295857857468798812362707152054131612872529226526650828316446435055062263017818794084797859314638566259455983105256583627482986313174453745940928702058053732559703662877886591241267397744530525888581045809295092710014935362767432274456509710690087546418582695865265070030661588488145426616750261865619475368559983368201259601637071130854377350717871005682129394938697806175712826180800543947282195225544800766731192234682232812800631594038690462325361278161973120746931469078006929653901673763837196023284627002918478221414107877161375413768904908888987626620365333781257081441865186240809506953602548506465793482959267234514699117287529970983025714574339673516903768182009085712022758698100957454605179519235690275391611704767725444505082290479603327304835987693280466519396929343341804832893276755458309825788017743167930698917428417570340074129311356132521797890564689714508912001691452591664918493890456193186444637889794295018651003352360197713078151360212240382325573052418104894450218365462383214587983450201212873392894717141174720906667952959223170216217073511172206977904181548414169891093354415293925536801246644416250158434815429804031058072332701386115570457926710380038844673949014665378640741827282845103076817878596815387843874341639781999524507283931555560201404196976442571899733410806356113365122874797185580554574302515654125261569082454705585848731025577405820155092903925398650351494284541909226716341459793536535299344390645303899194994810254332504691419360607490572940042338483874548885862213689804329615008670504678697294788062264587682924452150262464042442058197386884743728687788773803670730852526182357395858973567743716309852848225362217417748828598170307071986595071348776940176168388635784676145953613750037747794346896744282805395495916727146812491099811886779988111851658588851328851765726244314873937296624310272718414716114792645440962974006237577400364205358344607750687866428681630990290117883448176009961754813785635031111199730419888346003977218130705644662756039594249152646952510184077090504967639588403028332918846120084751522159661876670059010837169856688886481199553131989135213086731714982069177674954235637923992622418853214227206002598790880840878136281009136048861723013156816596861011725762561825452350772801995443268200497635900461721501583192517325629686799461211264454705100914720741163024837413836078874854687648820204361311282404852698450295336437002949769103092317198532151667695657820603632903700029317139027163250326261524547636005319618960180872383438494257509370840144623322742424004569181553179458530730533753288975057171826238249181720578516921035692586866652151031173539444079517085292737433947681294794983536309306911100830296624838351683130423544514037496839738011262577027854961071131642217931422633619812540276635971514056321085661399922169982438374830735391114447209629907175370458953199254537662586318232448645152267644423630693883544654102245496748228737710692878860110461419068759232660121592409363391917959166073446983977890588838553634088860198558747061144181607681593757602750341938221460434634756738348626671489577210766057844731888683398639275263090849833863754005736569012971918023211635553162982734983090178741155726479612526376572308336798231532834066518833326181763200976019667368434230520413824325545779628553584323017586127816309866888554117713393187661542516907475252257920400036892996856133179981089483518815137568050901891174522526734783093099261212007343344210355262329019003495316829463668357868485875516707707172345187620686871911439947503107115615933526964826953996041624444533221112341787016584525809045837366997307574955141197497834533893579053717245225423711242762616616474374155004415880980419165953346103763812717695726397368804423246555424655050160044269971867845517973875122766811735397932586768307770217516209014208713467524021448814814020257707080279674432657815435020460949797956564948891222758519770606760346622341607050037143445272466591406811633698990953779905414104529465844606214874582802066884941308114174155304123795354407002268668167846545604152588339762025173327810048074681059025608393626445321464657738436392969213658508901933492433772253872023688803653415863319979176080284146324185901793457195376994061654272733387079271356373718489326389359138109695847049457562757727272012749440840344595503562632150881904634232858789226717750137162913582985836373469005368692099389018693361910724659584954039635653960816425065142731130109017265253394035396154519751935053008413311269128277460423520033693908282059258379767593924947477522452643481401091177318609642416681021330441200351319531089370103130160569898534694673142755650101190120675120086544013440224112201100593849954651364669475554713169140181095748494850365119076500605835637584879404266290008759720985094008571320176158925770355587871862402690130919928074787075930225385555731544754389267020581651778063741257458419685034157312024252607940589420982352784065582902740292542290266503029353585704763165398804368609765225666744143874365548883139292379600251494688402414614311964925578608237267302898148933301785610935560694713104616942428446846770059204808898055281091707579741742490309514892139980731590447704503700959867876151539864860190941584918384310930281100628994153697020231772948509612475546608137852398752841174611163551795786150760935577817982080765576833007601670361266027406363319533456459566257002725674053962525103046467311532507009915688226479571646499697320994561072795293850652214128226925722727344165592118605915013491584626122567704223596051613377974792658369147543966051116125393754108592356980476154157203144397487881160536081574217419378924086158318585169085498341050247160492048462658628430089920999291633351422560246178109951028757551430143017053134626446479503208207835548067213989600560618169021920986417421450206290684497698975090034614364079682261800178648065534849737262170526355593848804344743961068459187255528505692149500163812253460279513510546284184993624597266460193201552781833453375544337797449643476914880198895676947848328396304174241929721689613141053894656450047164659477742195280807591157955078563865152124169517519336189621236840239814743841928043453758493603307399084383639678895749105226034764613492213011994803835352879424683604407084167224052116027667240584372675264391687497989456615037362922963043833533773045446585291390751291968869449842093025927154622938889271637461945925161406660638873581217068434310791618172058994700970990222549270186222223272138619895352722403783176442037389399845517288841727920672393643451681776927346904268214861106765719255661385719038038924080334821989128591319746198272989447977952949291617343325385901805469987325824515327025978579391189397976568885759636163018551925538612570588452233185530816409823649453662125564770896479736932231537909841148111494111636136056753795762632052729568314699466736506146348072537063743025876944696337554639716104185719921066205877579866173881213882534547011666048627797976718888395576735652368789397587375323189687074323537021090897701057886106628543295036905124415914084705183228673059656002615616142004835469709057544563134244862722255704029727882739329657073464921135396626120235146787874153604101040941215081295217409577642374459401622605723720573181734198970079798717726860123537494918601651917965023420399063117632179623537359754527283385022609696777373602064446795455342082549142387512314884414025179128055642391011495999655550991589066447164831219275457621897588334268650205462979995132697780065994012561632973624132252030232669691690479997779362001021923882480307732436808828337598880519682514515903935892211120304352897126774812253528069276804952389186670386282722912624208392044540760088059775357099918822998046132313563233560055840518698915782280810287019960183249112702635900884274685243453683371276690570262371281235896284940244913034923090231468476375136675106870144239754098950484084418565196669296717475092965998468423124959794419148028875796352497810148086394226744144233513250397222421579197417579028809906433792533353922883708553038602315946980743694493373592526932191352812050973712884231886086484158513193829115966207992696641238749200182696671678998938868663706319179218910730634692224609819546404710948888651222064842052226240863354358001462877332895593959525078200146284382028266782492503653352654524816357617698759712311882334014613879878834638111512951641410006494373069727264993058399611637571598734669187561439670735876884035841364099280568715559949249597932385458115712998454132061453994517255664144782103058099307082671092508249129332738512680676038203601836991875929957171592174785765829212410068803189424855846144086757801192182921841950364449899569415616137687469340780431652509383056938923861340511185588689303924383337676953400448183846173146863259796485647767892092086187839276348254496967744883712926824885213042243999041071448005916822982348141989990923739274850004073049657763525581773399764681961718641113754261789052931349937459981206610097413316114487354481748643847480664426708536208064984297435603696634631849112519285972998541740686672235849878265219512778884346631568119314000128700827188099204671942990505535678696746710047921580325328476352383492190963245967994990758793809252064132319768642419205010775008768651470610469230360459919561976117208724401772917474986097353260497080757248914652206476927022847203366461358936526716894118707129582240463322373800518945707570217608122345022399735861237063941229956399511068691837014241982724774942459019233742071489845902298467029962299987723892964583818531528237290117167106654823754866926053368053458457527237208745735127947644493691556534891869304086126239851018089147559972927378512055474749186777707902062955897765582989247913433179033215237347267781771984502231706878151275672013013801659654995865402238833538983485278209816801376205678869471635747802607637340263808646658134846201835918614625590278285914928944923144799182653293467953458626817030290509851500010229622361714009180508659682785988595837885221022773642326087933881924239979458627036291450809241806671258700073432042138526252396472097979967515065849878371907606505675839134191468230527452364933093833952067562595269179333314214291973773369440942556129903865793057776455333240648153159694967625622284717207252587337006898722098876098734698619873523836605542858405412570233661391049167199908321791617274564321364123084907147392713266420111038521096378711953562578125569617553893896577523091170426666021847383513888409253943154599699637892808131686732112371270065890895855641164454384650058739160688898382070228939260144179594320191789447526219105057385282998787228867907779648310164207257302410576792519737975829303628741624025311530387121361414224321724253050672784924214483559807277417621520892973587475432682365367116192829555937467089759354530536651598782730824531955239568698437629541240934627903565460586149955310464196301691159562261592721637270430950045486562601721285193468600662934332005665689916310102872030745745544365558567501187822836525479559572585907973131502215851758265329738711245405620333814915857905460808355251551429868427784962206021711203017554164865373529578573790225728364999082222516829412946921937685062505534715017349896537537983246670494633923504416364271617836581957741488289311826786086037390171865930363316267411041782198984411540664954113191248007607861216097625054475982984794355108992778776022425027498153490574708181549267315549745097336899843437646851882179194035088279370732696444348273851899267586918743022307262737035503286325025090730578544412058008941713420720392165142629443420149525493997351159091064616837124844076697990677156724530104546894850810138373028785505301746144222930942486463036491116588050825662092192157696202869786676551001478031041001337814997658369448535458988845368732973766641391652605212342146307477248727377426410121560223132341932256080426467947200163870091039483351872206688352291589439496963130792826360821832332690759562441909766985591546496216625845680832781229313235903568851927736338282176090079098828732037266183684793488044013197716262898086305117067823625219118269333064889868490353943982442472362916995811511174693454021198669836161902230202029668365096864920095181661959291040426117817956485254747300945936247078352570920295787975155440299261970738896883146759212611816576467117080272606595276380509554914614765395285372500237734647586279547191731960496699883833907812629227659761908643070842158288705201500107577213423956002995598283255025543554206113300198484878670091415237972199609364087618306753020866916192520878137286593452295708791339532434678289164616202220136145989437184079428329723911416049502924398830918260411438812191808177850916691488126759940339043028496093839114554327534664228661799390478408776038559804018980936806463440000357889704680902003722458240344438971730660014591082628973407031433166824776610557828540047873550432129310674166312237315459360165404818616782025833936782476528701280279189140168582216049834644255544127312227199921830236954471389069654185531070427126254060529903683142164935196946535517485915732010716072339035756984910438517875691428795492482603935692914341723900693860972277166805456592881394717857224438456093428101064123673002019112085126255570708116248323715099943577700414625668540638300682544038507485687551153751673703262682885067181546683013043286997247307363817184009033122978766619495093100809850001353789301526080857152776678722583455393601393904675266668150115122184324985012805335717956694872178617616803949564800240551277547080515112339489949429333488683736813466947389463371592734825286781683586778591306938694763326114835044558745949275146224261575681566562487908106819405758214701112572843385592158219723540485684632640680881307575628639993582955272186676429445237696326987972785241181074695127144633548046745404948206666507827599115146209777068884420789847046411657904647750248187394821760263471940118465501207310472243442343016198753615597423545012708202927098123463806477610198571321076135664284610178806700536679526307962595361825550023014917612731552468096859714052000806991944520484113477068713638358350140393439473498215963132342218981691883686717572983822252736479297095555856906455423356401668757098831201251623330609009138417699474247387501205635830827762107739007089465629111468056162471329945185204807485527053590471491446301679301886405249423186097439678020101828308668090866950194735931702388818984040953970833380715909492690831929416886812404790966984114942639924805608042796306495518223748842722461718388669263624641840503605772401176845983604803857083011154846044621728899804903378558030252788970082280675428820219364106391204774746861307512235845433879054134323350450636659992892780235068810147715724695855811227248657145817316535661109411006727206063907176210120665356840349019373455638432207275251828016223845155162908389688230935509546874518966245502609012344180168880719202941547677519860680186094301056199620933500230545676286304266552266676075183441048651787762735961079468803981904424739870411562954676336530046099825881255557559315611231120671209318710322155065454312797103429670335865625297796739490513296847183926473826879703284746965346187201729862595714505553322667147154874287321994132847292262802145534436903473466562436826621656718819208300793245848244852502660711351292874732037782578976873550724760216472609509633845733321055483727593276019645827066322200895242672550614648442729412301280148550791375169713061301222969219869042311378694924776112282860333118072991877122601016289886203577283238071385405591221036701474129374773207405460690922977471098835099338259277985619989454195204260622750947481339980081129455310157509783372582103420871938321254813573393494193984279131432944017550473045121061615223594679582777121040906341590323678347599503677201828895652495515023575202534808946829439553031831170152620792470095161827956514252446887205279713100707992874348890928427491275997446159011203092124668326958442814288964680311529243116631060339060261417969190739346406160877079823323703867349347336432453126745726570131703586882649978457927993941378628519052603513925767473998409490522097380960887190792258032819014442291963096258207002871485464354838637093013067575973494981762284605594204048839049129116124937929832817253295040674000637055220119679562639689121242667773913168083819352559814586796503013266399715833409355443513155896709985652759343212921325190193964278080230897153171521532869070867666519945451314414460028574437503003775375771978194783201346638262203900637719415249725190860089863249296962106225521236151113232243014338071210591720553939368765497034719210003352026875560469367052033758214903270588775692755909322054255056708128354642930426195003824650833033460692964017549989934672207945399422334448499584246875790174066960563302503354964336111875327740989597930221794575945938444544355959364836325046336531350994415382835773506053768126484776356978927255143001738791529935960952752465984160678222232893933408142776963975504160646115429058965534235058232869519633440409998989696114054154484294309485066817701122093181278209661042099404099745725171070631485972956578049451479018463830234332226245934084309827895587355957025769061316041282139639912918700049096877297721323755105817622501028340550086749988178461097548791275951078310677124127075702895599289867070229240497584551424483279339658376978845990363042563504230382543556172446938321235441665706881540933784856647438871637144355350971076317658646809200660367528661301538090711525388395523261627692257949491102265024343099838203265419775248834663169426427590098068344228489024443956961933785899773989437006305179429952619417835912982721274236052073578051522952468415048228610424834097667392174290887018687604224423112737576736548652989651429079655736324249925592168466537731290956637772486594518349787936393917080366365596871473623195997214153306314029698303005469971174144784567167641078812493862183879760640736777778727979792025689664454874776516993845389127541639111931719806545446001449435137041695205200488914815931378226708813013389651407743380357383788262909776187905577343580566549716263045199582144445840248351021000122272019556863039930447798162832152898008058879050133962779855259877620427821526632886735256432620169718385734995126326687402008744026929315434701811915058268797484812447489788191788961759508433281981861477699693485562817361768966726016147274255220424204643244837124497553848991814315585673449130494900284114503109582901702840105657065887064144499928102109185146451342888419666217544429911658998658633248464779406399515913739314626312151790003481801154996326552637173124611590139950159292191152608686308691296985425577675653101203333733963489925082570761477992364458773552999551087350937513187668624552008338776588510127184577472875555004724692783631278389591462671345255615444345981242145317635848862258856496396216235678705064465959984239992740332649670993872557175664959647349346157531579228726097422372544575119072321367106232129663994992214757901727585389202387422885904090620248439071816630111720846139088545946593135255893198147030716407587763293011519246107343185432833385723324715149954676647066952077845284908887387397357244404493580503271503831080206988433198657769663044858906009158136170450983858960785774103823746470810219869394006937851073053158549810703675185943873083488949866596720956819311505071687547842522966832468328671518321531419905767843576985173395420237188974557421555366485748448072182776915715667913774678611967504171885393412377243401403991363363585436948437658502814362203207394405136088296432978601813891540901122857590858497982879437671307290821148044893468460412446212707488288655018968888946025957492398157736921275395988296376489283685410281027203023959439840949281521652819857971630806462780256050370655343280340417105233701497051845837029351339419908185466637815610691973814591388366409625236166290132069001219555315136651303369715027426914121137206919894593755754986294349972909842835845633094009832151398285373505446762325415531158181911446612246331864163269765988511016209256583987032312914415687982785316814468400849486792083044843843165484546913264447406921670670635095560568518738328733377468329970964283353866716162602505608776110050510834321211751899167679204171178569565318282882556873703872977982526779342865963406409087814932443562183460562823177190196946273105930228150547031098408157892755018385563400000658041740544482805773058533414136696317387127656858314432063913943585676250573579821830405326448086234290780867555597673016548731037691289257722500449588344289960252950396868978665888530477094824045319980969809187876755669731582856984282667513086838896089423042790530868331232506950968370749218144229028533555296041632310905177303070250026361759606493042533362689485736584914755820161459007332776784703135935126616457974522125855294537845519693019173251617765764288421895693195333187730047744601461384160573191509437763299721230946298541987334841777384705988592623535164528233793594573015082810140348893714439072172154549729381169682436725382413492742575252470498110293414042776420854106522041882030748452395953033001790238130610935985472499581083323718108756890409446376519677995330356817354490914030972637651358073874803826229339334564281522358916110882029458643611491900762343937566418084508608291343382528428449908625619373084751550330938906839266311216922894928345603462469983491356515863365056424704506717038688434747337053037568426343199743612974585831859114932411705970264609199971368030619337520813233031532239609005437752931957310741953429481421904412692883494466514989913479108403881514986827588105070890735908746372629389671868361974554555826794354298937939822998362158069811020890860578480187157621030449845538855666198163789012335401454056413625690663920021238618181859766551654207367220748991112871052165693119548858653677837435687961196050042525332120299111741667243590782103727107230790400457369465139570185447442250535446377358558759118591512412110995308476815242264882399985997010520603292782228832041555363635162350399439153519782525972875224157024704519102288861860122399136643258714303802676735214364640461456079130578934689579003781077231301206850575920340275400621337336950782995335242753472547503622387423766570300328911141903985194230827453909644765409992009628828966384177610827748963449806938356700258651325507873414427365967687886879494437617807994266511440747254068501745428425121156955388568872134582925630973079451358483316476206094765755289606417874535926703079231112619670333411910272886134604097134400839289360261462941162768846336712378752097414323370480745887477271787762476151805066305419360272187640273425659289710108380953688170672576447023211879075145105535171163059345366075978076751542410554202911068359064546586276422183523379788125014062404839327787107500617399101999743355701278295705266771766051823456920467895889750255371598893615214335179157486793353662186460838640094817200993757456376597093561982885570940064669330007095582279065530391153403843523024844523288592476902342165465735596453630115898988600592769045992969427561431191957157944099031717232252820262128350161083386501278574185843963611644226447771075489404553097640761197703871536581479443927579636696688516343723575356260029773872787591425311261735210322728655629814576836060773638045009534795289293768615387386670475550897170114390398984018525225523644269234138252245070928382220555584096896719086251049108866003523504252379071855907270163082773867092077200301132048294023596954082005721619519694290517718586030475664468018117078631596058481395226991826479322889914710069455851405221455574766648997784841012050021348220140823177797534245026758618319715334485314667782936733197731112834831932411093519350262191646153700119402173707756196495539905319953023914678828517271178130806983556960437942071616484688234353057454824559049683739121784523372903816776187578470139099183423800683207803532824071807456071476577675597517659226743602462746512136939516776487698737898807080419508156271089771192125740516223899824746141226290715689379314987668120103935338423166691873608597139182714802595488177489028880574466442184672527099328887164524804098824205808116772574724784304809732654737986897630905909366274321246452941623929415711634436961771634940289801911428617056146824714376079232277215441150157630510954568961406770262319849095451987916173376085880943891395038312887395681778031018249384715896615242588775867728028307809065595245081968601350245201639507369810209335588561937342284531595022546262400303101351056694490773761558246808791667094008810055326259153610859203285819434905408067294634655766426297981064512584883377979207494075491353265072590751442562602510935077898027879596564754134706009334995107473109365564110215948190817189074149720527972469282282639396130749010025497950941150718862580847067198255691875909767007599745698134938951540539571359163329947945567336964070071376319851885760557335241425552892416147028921666753019052234607951599577540180767076199205022986460963723669753281138467140892711684000022545962939435415175245389551065290282722341517775148967740162867951889887955635770521855228094455142997369408914716366428926217348025766301775707931473436986124350346116321898509309242302682110599900043329689115840023550639285906809009778534565631471281106130429747488851840724691564241779536704775800543825770411911218466636174473612692377813111186686418313680918209534885502710887786870734097821474492018597800216783713857348615058165268825220077868450687201380982475051904573492164040952973797638932651600683760042589495229727252066923500334092850194431965186975651661479101850728339554653351850647866502008021074326023443093418990848045767183395519335303959308586393518106309057551757755274007730457743486994958477951178391073365530077895976382401197905960960747997217019652346114340400033167100053330951233174700386764725832554008555040725235915209281548132981933759343670774675780420466029505868652492954586012626655587829112751049954314065509478632839326300477449319036274852477563752783740298218447420542654878206810348982377978020208980649671402915442724739179091586166757177748328597108262981351110923230552586641572130964698462398557213498019640215382307857858185014995877327492648001343031766083464662049044344868723735955762712962443276629912097175102765197039376982855865127992411969777676618195790654511206684116167761067410979960761037885267756824436566771252107995181198711604986242371299768374896629368672942633278702442359908487754656651817400940547053913060521659561721572922501592661550827443162112784017272506893448533673186539576485415965716215916670822108424727266714869439265232909889878037835529464302984454722003644002249920436354362738774804779714767114371012600832843235611294840425137647197269474573430195040649228145593463964949442777095556039979455388783284411457620751927447951209065077845487598185555513460882351984638381272262971212767852766531842861264375592364130849192394246987236868230551006307914276972621459596387287712382713255168453090729010545786423486300179688629026318286841540310822826093207201969380312051923878639257069912066557082098369886349535241603640744529552300027343925686683393655045306976377662383639684841910353562580674596942154043022789183630733794456156166127158656600806367606949542745454995572565314653748856661265881326551050012544795400788998061635125297375589381972054224705187406906248053932745723692953258608461625773793994333736711275362722167199809997747956240868417545315880984849637392248474970383635671632652847315559939495329960387861081795551751360030419419683273286933162964477868563979047846777604345998597837800623479928415881715968395755355882962184377154902476414353706218561067124353201533704841910988811767715051297490480730898126219734738161887717535177002891970138102452672642336021010641193892132340975293687972009081823852103416323376672675052190711988652646543148948552580102529828046951510426996499146917348532808713458850712763519029158408639857034461264808341147044991496591280028369565651866334753013463952224975109781562080599000406218784827492492777651854773507898028635268190280082509462869277412465235003508360561672663233395443997137100982456754484386648345130835305289456676226862845255796125500842135500218803146216378603330792118803374751606919564873271246844271843696145776102310696957007239360252300219463403140659591527060983283315391391012640748210012671573323719689006272435305481375994814153299446028315116757748521927721897191619373825916029834138459160097648364447999243898079821831701341363021317553950688931460762955686110629440812721414767924158587005333573846751656980209015508549465015391078137749384736471851546814974204154673607420654224608867355217168539485498433919760934381020928714530943369793147372330834688888359174061577464024282142274814806997128494694242238405978458130543183598947423543767721564049904160580350934759137575784987410126012173972133549331204811635671178688476103026843273170545274051770543124785262858045805795725618250464147782566949031062654724764022215446133447272526363309480908858598720384088926639580182526836909514545614606063517184368371259173651029601143268482261625484281102658998514145435181781665777771166849932552140390204409641705512091209151307902928616079445647401204842389481245633521916919318044472738470810642625387358404922034747653536821797680686415439609042589966001765241922970159431484146796809537064061548580817025217742434892682375656081147738133253837646013622943680465909219750410202566919655308048910674659941836921085881915021245184585518101888633833781906146533068328384665672957685141595282882233226756090847406118231768242004922031858189168809482081526560838168000314587772942980470940514473493533528734910766216039949986969988955871093040518841825191888411671655594971849795446915361084597122877728868336340956134684081291367785712167052744597826142496517921516224781468978391160197851449704712697992593597204532539875003088780275670266301564426076284750410731324129201890851485512408919580537200198813705823634885719923117620030215214024427364613343462367861788136955539058667632164027027959880745792349993276807143896838866968946697632309559328423814516573351210526400980605666332600058886220965530482285197150960711763107105318237846791184440848693572446065042177323094334573760869601926712337401873385262148249398803740033637193634447371830323158507482453991819156857611834347716583002464660491946609381410614437116259853220304482471222472272935257806339208498537133805124021453876702733457885802613510073024058443568845391600223394999115060094291356158534682324744733721751615701503013984645371103205363547791337698063358688422054814167549038745799698450165475500520013832339183513694523267364660861239567222026448437368917475712676469442819049977237935021435835179796681409477827952810150353585617899120940932824320055421431093382823715569228980214231410715289841756958926850281181673393547268639872828328809298929603843192092820112554312472558029011192646099458273890758966451779707977810665394306484656284709409900659238536835346301314008193016471425987324769102388234911508053483072907194449685300042621987808244195865293091738151897748661223362450560717838595970946835467262440708925215976630761347668864849628182145144815614576703797926381822398083305459022092110559103228390731254328607850419273143587775984098938506175976767026622587653173557172403576497684023805602549406657802444751217858397515074641317448290347461660569821488884220034900983227366342125724017402174600167194855662232587658583519047257596671382356274853086551978802315112979293049561968043179179528962226742487577692456321989028303716909646725404732282354799684995637221395209814633871240161038943717142024595794236276741410627040790182824132991730858197902293682652801770895276541682076202991007355458212121613313378653305955423822532891985098316661152763768653800719473417943215686703324908739548238330779819379623215243364994153626639351150284603772248756446197709213587435255742123930481903074681255694971939720712129870504121016415941907372578991012974295331011776116123721754924440037940054415909813994926462968752387452564021083994474840354118655369475475523539830595234755419618929749686760667413354547204098395392870012836356697658854885487103034040281967514527994305433865929172420694648502717912136634121914904665254409141058418063356515992852914084703326485132748402243057987053163652692547394654819653459733129940912293891975857833985027128034441510267349007572033686631502723057284307176937567857035433395656622290281535988339877503053108044685071477022938449065211188097523090952967686921070735814839305482020750801684892006355168772957069650213163144925558457112457076340319795611390137526662474164449085084877336021304945985592783272303887402557608045644824642546870535668617003300059967977024516399251922864177092228708577944131247629534017885901469053601006872365295553725706477518889593506976569615441605415972906675617701900002609621992321186455149876634398506007747927355271234964659040458729322506215783224402378548915963556372804053399270396504724206404008832134999773708332781015650013543727502652381973501575287158562577799210807403118480655841948285386183893622551948214937415285090400839224080170028940864996305250907449510726207323107556935274855588840747889651861925210454367890222440884835664481117459435457986256625132761043452360994800749577348154367897247109853331856094907620079619962287747720528615550241591574449961680448497427423674404515974645614283537115538436524266984334990396252043253483254941388979463240281791716983150130961350874919874589866214167760626021918969066402091578337375653191048715670803871205039334220156434857425826397097846435181401011209375499226126667212535177359947473257674859950491730624292866254121907207766985270147794160052968863052934854994186500761110328387114141688642798445485660646465737759909421844402442685307073366371371860256355835173331094156690616311123924744430236095057219733291395915054336500860088371690829919498794815072961427851340151790394893401269428945886709430416153548174461535074219633937406851015368198733242255058643066049732087717774633566473032588449563030723611286038288257007831307171590443112763460689949683804200610601165971226944188082891065460086829064089937901806735668116243043609690066476791021734591972856065712746278308448186581578390473691767138681639417477593305940061180371433948160210644951181599735467726624000851420172386546007866166786452426871317882406897732716751741921952696674588085699009174892642797031563364175146798860556379111074536971476315503253148171959495024678685704389735702217307866170402960739027154568598961285044299521272014129282748597315005261295359355014239758393379633554243807759454945237824777912331615683235495154526716577914084413185169727141217100966146776515069240287771714448553232327464894525527147760181387852862031696337312853931852510832804202190753176644156382158634708108413671622347299081796874624614645042936451970118608671365581798479421855156286024852561956297170222635270702175620389920891082069482848505969642999639561058624607890673906162813577266302568418272844553688058674481717109909353309549886165645988560398415522654755207632760980679849689707107687444266824527736591711302998349616869528101250372757333350682232570618976173190020853138696890945893014195879583217256402809990689918138439412086822417121630432079710539395741711145766777887395731192349400870539123177015666930456439797605759326252115368012233397950751056835508653170820127175380408038692155264226049215869117014222503426152659559254751730094298144365294533047639091271105097881100993398898302917905818243881193066421793835967052506051426355182308276407562080868100981126865365058345442051719297867140219547864632345779059083050631980676387980111553134904168750296733244580197210772773690748849969291973212167247857780989816063887505484134915538036311728518310019246412138019642772273837838872035436140762597902253437470525081906015382869280394362007335676631146990894714671725951888979612914215510740978957600991591345146497312772633060098412534787406520910657986007696686652241194651462906971263227974887569131945457604558360345942970865824648331143581057098813472915885787136631791015129292264410951661473467082078159294718115499516435442055624649969504109911317775197074553772824275308915217105294800674462739055819396311657247712187888438899411278117324302598357395138148753717851955894413214306712408716923706979271632949019724759088431965070529747039041721957991406855896985100936842763489063712481265644142439613178751108071340782928981882864974029509486923814162419425652766773790284555691820373107600394861306590152671243249269526834055323027677250232490492824675246072797935635986587048897121550155966291256370335174674665032421489806314691035044467386923641231087505960206506872831269191817137100344255660714902221656246719956504894192844468275326414537654269722887306465254374418993896505419032746848236050068990544715832722148290614064007368792196441901380909876947548617079392510919396997053742982157345350064707813423800791332855956069119946364454559236175278490205392118712776047622586619547321104823555124521407126837757395394075246420661163974940059898105495921908013111863831427786814271056903747571136489947566465177032936067063378094656760793965716363617806055591381875592019398944787104416397788321668474322488215357571173837111731491579998903506113646191142933517762101417634331093682888663445419544345589617882223739059486046317110174152045276395068146565405305187921965460207261774901133528379726972407197094572090379974858760252698615955855671003793749196152710007361258463546199216809106938307856472967772203197983153382200248966294343886553207274030285140170498722860530568942861336826851737814281033657641185559120861859294078015803729749766028369318250930472764540910874359002720304760167266054279115634448630378827239800998415176754764926551477993107101827256774156438007916872931570584163072097529507554759242469046227331671343841065219023673861173482387094235823504775662645207387226692555105016737021218079124883692094644320406954438352297833055555905293342899729820946190066790137362988757689958720150636262703767881051384253674269614824351985200114668891731405557827363903289016796653161051609318268091035808104136735802198648203603927918453522511450564873717147076036511115128281514708749608400651546167723860266995266780473139766891397737070669129332969721678344552935968797293839294483287727470388452262047615251750897850963965697552739734961717302179668863552656295175912061269984087410990735682691848641813079837679189164525644964460684441051568261151349506458327439007638430516203420292933885684889537860773994296135387204159592269164556097410516514051597171142093095228190437083620813580306677638159530844510574583160165694916299611427161376292231044844407252138231075000830582690540616219327370944095795431450611537347420467926578174234887128039139972552702284066945599818583373352354569943641657326219941114743716431951618481216217034752836548688195771834187919728002716505869793077586265892357204507537932043985626437283658527971357716393243032537954915449041423378252532081668234596561786459042153169556727937284607683399588412014502216172515842273429143906009270896036878174978141876059032426790105098989283829216531143885853155685755225468398309971638879261395666397650407231550171474796361593944577940121485933282313937637433718874407674419000369402107554101654811524761329276367494325289478356837430681078448130929866224458896513480511229520472522791402237513106764979481927706351629054418075674548048079570178196469382039452071838796118820310054575187858326356166469538573075675098113072928338214379783613036382029576755480941915198758370125823224984276170119308785366293587536360708984855836181526964668629338955249444886239655306077784359129865982620282945008018346505675999714330642958693143895710113263853461392962833535730074742418251467209465123188269198000854420502801519971169046849896210896448623671956368829956712169293329224715302066449463213577954593860327555719858801001511618925766078717081536428772830895329827154316798173929906926109475853565853857588639648457191334751088879804829271895368630592411034457138175193732291123721296543250661664699879969682946903009969097321436599096865586214127485846701966661487869671401297506315969775033727878093403867979297464172960760815767073235849437563794682686324211246079524157339727958544838418697792675385541320448614326076048091300328822311521783963352414833813214680322672038728432212054558031296663589191731250608864145463294791727519552326701496344830610888962276556257227533256285704374447768870502049732438946118527679422540227591804331548845228294265949896099551540270693296020485691769452636000085899731234726284223909619730453493079338296912793285253935178186615390433217510223720216863677014413830511057873199192393934244384876556292296810935671843231026871689145263912517104933922853359736368825666490699616871795639875233090256254203309247008465352585391022624521434450250358961086171409326827699741056124324929808871464420355657067256719568842400097811821023066323503508410020367809545789931702402459918240544611997649612570667284240118107339859346091715980405894300734854835542123006453205931009539434555270550733072354990100341201530520225362314483256810941494102624166736605885144800703568618422733591037360198065590263546140854861878220429937303475301463072406939930831933460149598803260655896927584672987715922315626187837890536578594781242770753968340583276656242494125404038816256213283029998439285837261245330612835105270070914153498845117264883690247922818222183319442830359105183850996175817250644294598424595630769600078747394233445755104720240876740924090687683442476583516475809988120497036512462474390838352469377915488446216282823750429726473367820767377073187634438928777113526826050113832920742657533749809766604944397433046637019457614773889647548109369561424664693283712459070985499286848944003613028385094289802546303279535096757394597435726603661032929350974028799866128270310185439759171764343080056156675850991390062349803239604605054677039009743537899708572392356495543255187600672958664283562074191557435943767643754914170255437122174494370637605770267032487502463308669104460383302650548054185972027090097553995525631172362110600395988979202034444865116369340440497827994612126549584749927018672032471991003011260222742451737769736427149258474647003286007472803550476090135891652888206267326448628219776646688099095707621635322320057267227336590397260992140151699101668654192133837618304667412969267340691385911729077200440813285102898226602433685722007113920257626878343817734389220949922575943112337962941039399529612766892274949088370306592757953480625891180992576567760760013352498456300346315613417450153200225691367449040226033433410681256708113804063620437366403768623206879290286351582658702707167115612120946206049113345482341825617914489115438528498938044988565843150147854922529999149640332581027405265380022033869683185058366563580052766171304406810256439079331615055693290713853012106246446975068853348969561222040668883151633262178210524003604203961721628611098509037899593155974999532930751592755356110292393059165820706803712404174020378080552369312553194221633508828243805129329632849920588820889973010267026103153800543002945232632863243774497779484299925514517197335790718701451738619191788209196592484138131954825420151657511525474985015205364313808054957178969050680616569525992225378020361123937550321854282942640475883048217056418075775165715610222840765229287852293706458550996016619262962659217928324392954682046936610423878203221036456153322047869528988688420237899979225163116087075512324620893793126771881313410783459937666517664836457645819433536154153797263686755974381850210226571552204442385178718220452993955009655234775810231869157883648113751157245510385025458419678906732408600278530665347547748375385105443163202880269741602405700760567158105111234239209925554738561529656915735209041845614687524069467264907492909306352908216176913700930203823193942170835695091698737800343729424094717499130775006424256641476795239092866945531993279730294092302183816218864590482053324394317822711672447122398167879463393571914762841630040775612805863049537370278314905789489850203210736037370257242394387143775597453904313686412084360158471036773039589542159311741328229796625929820461030811008174617727258328612800129957659588985505453236481840179604898240540647197725180969019434354825715138551891883979429090330060967759596944626094798324835102322949529363184432043003588018862178985499223324250404390432616905860855727694374345212674142441604248251868012187900463871816561234969833335520289665082064050946984640541408888069274947673815430146504615733282807654465854632092747795321288244403213097079431479692765694312507917565513708840264655867700450358672259352156277573816715672281937370566095460207488609495160901786010248319036020515804238568727341558523688062213575736346241967841061428662305760146081291929771176743442776166435724545391921302094726069147442057254705128668489389499482662867872666698138824314680862698024726774278740709279980314157958267981780068575930859042122398758761238070078578485616961031225076611360993393283858487788650948647520354425602520632958115692896741086581144826388119087337348517718825345875088650251341681488167914074005151991611886478357403444611281555676752734122767851729761866398564977801835775861604297325587084592955819527444926663803355921935081703053709102802624726837052043392276103167592853244364764309949824954901223875732103524048548879160320716646553160638451699744890373468859450482662073178184229524624950136894867629644709989988194413329196811056898490704280685117251134954173581634572682543676964693603294398927408848450073221617525754598912317403045665764493414882132731853578030533149247975234080900663957258804185921532647619331130345839593409813975941658108190320203750986729472360119153302884560822470503996494262011137703330606415415800549195926319231062606062145410035183800289453294737374829193745768385332099000962677281388179585000279863618398051391352774331261651667708595585748772784375810487231745526849696125979855671225906847400720076592292336969229498050922367335937210901474937493424321935333500721355096369373349165832077996431178362792413686460755998217963271014418501211921200442234530002163632787424052178022888978008468426681953829011204197641552124767247780743922129602590997861007527360126699396595915612292154904980446695376363099677185826495374215011066226332328658631955187640933967073086203481994418834471451939818748766497281754553787293505428729958076024266724600926894393756827442454243064304031529145165399370013888661002097857363765845777472638846432473448204720255630561253394956199709979157167335896120874904336188841818758298218663392838873717407554083040306226689221618497762646838363441230037932215984936474796778183673875671106102683358430559821922567217536642827791553191929555387768061915072611685375374263936683831805726613410738517552035722288294513392573202828515299882549413405006445183382119945513286125630056984264670439905313135289507370749807752307865842895880181177595866038590574890436936511362383102840746518770674970117098730558599523584193430852605623862665395581368413704657979291855363007900717459736151845183076101040107154747361437174407081179830644356436586644282606989218569653635107232271512812681701494408879747824040867492749223091953548968307614312770859299982326627821326379235037964359081081556178833533337946205632540344955217327555643363837160737056239375542286076991032762539658799269438798493651880765834998927951137449732825921623578611471286085311687552828883728783194205083699299434875723231384011141908387736630961528646246866124481230718365605367064926516749814046404680621080817862780386040731340300245833553265811207829478050297561587605360863886440908059231552073755074646387670498790553305670920704842848608231051875026600445537281366266184865406762781014457497867023512290642600084102041967965767735895667052097152906915864842956202001202303858112858038296591852567543144820242454771193474984380810736400817661388475986840501750649393630256187469182280891028451997427827796643771839916606247422442315449416685998274248023199385016572708682232318683010952144280795997376679968249419727801407928998550876665683635606402744843787775311829218385915199536050385290420099992954117703736579264080488164895811506926649120529374808839352659784092021769098728216363851293026390006046193649692491125931002208580945515813785527657874133728741256925307291512340813840318526665391420791102787224949056921304394084007312987648745403211472520037751418232205387331202043673182188411341367121318888654935357158418105600560692579203924791889339680058683338407510326456861292718479175073673667994092458098597954284192842693760097501436369060210704763628454704334904896912807061566260646964271700799113882819284241110727154338550383143168071702696592939994970130305137470455137820736207015892239156429259461256280487065009350211412945845617837857127111981098536744349832517896343927992105149992629158093522910847267093385324796648135273907170552401960283145863111301046318186251955205078562428489421068745929940693159499280848892986859599714589170477450150042253885736038525286271972924652278676999787641602639696727988903200702890924320266058300810074919112036504764013674613138596902832562142893520766551441781852439322326069519615451361656337458670268427823503617506120099478619319238574069728459795291093557061927838210053130554734147348103342449938960076988911016567917652218352560424219432298383908297196033594936863620550478187505630070948315405069761982942822954873731748023222834419191084753074764224298251375619147039129770028298089216089319791024564415444342575473544042036346715715855814973966727051459744617873354370889217063100405634808514681095740463244347526578699077813318127770460004027832120011090877895196476084134837923684188249281267438567423066711887932323714626737517113285178837545836353786701513210337770810069720501256064976924918269954135011708191270645849782306551638964576928777497093830617324991285648877809298005439832779445173309972618649637631420809165652710194685325359694190596366572372411049560588274753104164980931771462269387122247662745845573643191387830902798984279562163002224674322621901654181003978845811507774578510463021493071589106904717151729553972052782048131881880942979241173553814401514598042870176504986004863846579408729360315400497702045059945088312947921797693042859092735002573379725733677406113218681216730356226947306703412396993433171013566891996842499686135189769462870033438912560458901671920488312639655382340831603052556447276238706541391560208124325267606364011691175070957153204390277583865604140018824040126231435295411445096221489921916333573461127353430733665002118181625164594663856181323644350100471140487111102478458756629991874548461238893393371965221566335246402222275487762922884557078612668111117592435204178860179403371763083236011750496618273117838079527251496840108902937946234786230291980037288218686350029809811927266098668241747970378397005490964806192201855357664830662553172145839213159762910234717495833231987033378710105766504522017053552910209976015522081659795125553858855543147070504149523833530875080491882442548469764984355996939474763669557675673247006679564623199063123649088022341124790127097326147799645144371949492365814247880342799944359742718261659132527971161908630756190693968297405457651748360975944004410249218920444441579129593925918876879388510076002118084499389261767518688479002010544231259437955326720209416184254762370457896139907811567460998845653096111233364537641386464154863166777761029920611552896464547463005889998801704086059750692118826132123581889324873051691440081133243835888305727571198239395536153043455251028839974271423951436203874036183981325041757158360680909862954929828585680740276299077160436659945101128615763429506624521274964808242037487344803482813689919281930097756827268616488390970109738792530364562796107493060910443594720922885559648654475705716743653403991326134866993811014870770245244493666362921381111121936876751947683946529471400525333458148172826471222604179128885703840054730987544803740288965281138945521928671793321281794917460000886731408121649550247974416812298407273760004183489614373288052782476705575943570211293930149389363606119578272729270663148378676859710454825245628233388930167838415168441371571056757456866435397005448082787844001592249617294216331598505647193237426732062379372913992424173795704677615453938495647475156007643346941338988789565188933814691710448873138577244027678018809453900662102675864394985155930679113854128882646985670206519468973026574026005799336630514694922045147175060578808837663779073083961541095701944065276813768015324740845173072656683258191351008493720107903170299346880951229086011773639886500977251110786307013137528290800738230067642707914192326337760384424013626098870019291039209764545150960794992126498694808469951136665441159772285856918181757537531896744187425859276838814311116391586230066253231204811558117214010921491001958512137121729727892001744927191931046602926962751911471290161600715952912350035699314947960429503597664474163083574984773770582906553720861364505450011075318478946356099332697520680152780719235824447896655323211643462069307430347200950101035447264966210437785959531107101198761983972279511951917830114961748300563797081949551392487100250857621417866335334030103469685210179455138962084156096662305580236978261924976677134536935192469065271365744615628293495043033316502640957283301416249751071331572342671955598372017596175429627139833699456931298927317912781296347744507657340833689206162671246413278860947626913415017190702616296359661017133872309240674663090774745351895188144210099837829878709188544308368968736811515319775474895272372611579825093557721422877162715469146690268809104547329347253330866133072755388570703944437738540169041947646840652692065867723921198747293555962576152958813593963131198700300750507436915174721883790407800521140272135456432793155067915820015888998602052708708347488709643692248198384993584910789241087117075876202823943075316915718664850675208566594740053792646753728985148632546270950101738032793469774432664379409791385382229907075864406426573543436443683663668173959493507926873440298892335381815184212516943438708578943147059119462003413657933387680519090696827746390828615388244875623178632163694232855035141761217136901506669181844233848588956277108070568229237370923051591251849379060891456512377951266944735409052725450746125771533014721701323487041006732177048557405940335791885452091824818952404379245351466081852889109943126855141563263680076376868892110558176549134656538440398769288920932909227837204009070582763763979690090471711721988734433156788911256642613601582699417129569331674485786410484773257088450638605291059043085017152563978511473789208836781653364527660926549548486849512965752898963235178636300580435623197792186786084268819819220837403777959777650586713670583414426443974299486023443183264154221085901195117419781518881291851085520999358236003267588430209427270441007580061022116315705900608670832111107014037257103129925082632114510088862942539869536376400809639016505775574751617297843359504285380803608223968879635898876324295486050985207135285741572238091072496039907375982282563527657054018607493315901449953135147447354592715609722362554304628485856965044246106197506271582293856757800933822067005710271092457490664202454829142551434120428638387172859847442070620333103665067804127951607857722490999518579275270000379401063716570617844860605713752025944065828611517031682343100219118612310002995896562701685808063660439160897364496701395609820510665107331157431937866666507125791419215827186932739540578337609251728213995657421648707765166925128633497845018194235267045821390053819575968542959956159440660191936698079722428051894303528035751158136836222024839017583014372953467694269341079482053111500101216633334449532399352319776878955112881130101362883753692316810111042822718179946475210498793174627631346450278372046025945328123110477319419494164996055374511391134852343739977331110251705992296149070057278051313012334061787085981860645056372257846364397173989995730357168367811809251143366317578699448335242914057527128248808579553224527358593074672320276050037670073112642711875464325206879475515700219268042844755909997691176530949261368408096881702945148779787930963557118207162233158539159404249495375821680954042696345071615553493535934133943066507889941053507465770554103395490793007696340625041754010141897814713344493753635223048813163274920349838957703532929540316916861137970374159959934787295319807703581668223337287935851081493028380868176091216297870570057275149697671698361614236017599227074254859824905481920873064073849398069215500610670662783066617779775984004305999389386670679692567292077704694324900315360733093981174747334010389302684988918099292632559985624115426908876665229078291516537964136638219307317716977336697065669945844421199495157032816193541816541748830532843277256491972220376283237891151087124321865042461792305350892156706784297105133296197087108451479409727274329809572314977016312660670628832688789041864168867763886066542362038451237189580115082284240301372989285966573043562727549952479499182457337633911559479825702581298330851392371978839334878647423475312099434073445972959496886978650748156067661009959355766209924762993524084326875504304012167340900356447070807833686080681160799580621434060095605883408721324139155236438560087966900100279737967788251682239841919313336332831535321403199533645849929057713673681582625559136245024107714010074917036591913239021007133199798090195047707483848021422662438447823436717559709090666895179097876364028940813412434434775963654866323510474031302178116400993307741766734352044605171130881471609085850873551114812555636824969704873408345520073076706469646065243778076649788793053848833634324268258067797142344904509975324955577816706494569813393414390669512728120942258915175052435417125621749489302927661320031087504159867109482877071788263571070157057041712861205476311080677950998389201992699648606848817902153991316474929995936475237623342611162409297625078617966478870606878370920085390511479762863434256277831101993745581833757924510102765284355240335922455963641936414699843036398888284222412414811342427378133891589948310809111297912336827109506795532820146476235311267120347282057960665548182185787512348709804809569723230001385646173208001892218968951188155634585977566055245372625659356073240962939503444533492263539075357842061439230256320897352096236973399218272025229813805916866669966006472749644329393915830889156742133037169073035213625773070169590769328903815053351419814270466902711417705754277680604425286817992696349032432799731146689161998043871396395996049794944941670363616380240364347788118230031658829434567887565367863644340622832165033028632728116773987887190919503476749685992803250943606470082958003103269820308079191650217891386890899982866014963159317234733424196074540497077490979637455178425769205607825782016201344165758187324633868845887143915578712339429565176197112295185476345627771360263306790752489564143762286380241760079178169439406252378251982618573946534188915669865746434415739847844144140860040881960256880006967778243593675891732244593896332781081532432758455613424715896124111943538635888749594046485211924406752548903671799902236929427672793694590539042906479962945867851466361211883022820759527026237046746671438351736658253175777784618558199221793117424534864751813563328069501153803713768845833659223583462441534916963396521269704106196143748004762711314066952123446931271243380506231843446831750942592703168343781554380636168273420250592843468837652046822562191558470907210806045819673888361795358456900931748354000614584137970073707256474827875088161153172890047494520819109734931925795263910168681811388703803325440891539714440295300043296306365258790519624300095330681968831900164139018018395150263550277217377854052627388843450914606027123865038628198798297309234383583926014464568850627859655442667279309494689749819647197216026021263390837867125782203001767196952257361731587412313780020499745208707460154021212218441801072850798549179340422242283476119523297969300964300456256022082823252699057114045555102254704553879894327992691905123757272925964933120415347821213632703617653944770587232629554142012901177573585413432735476493621137217894907710860750348832207695319380235916828303031269582991170114742163975468067696135492158781411169772401778901891581975659706279915743011684238225012450293628779490112779178932310976142265529788930065704186388467393902290159815515697673697462789950546789777789914475597968418262313600472250968417235009662779583192953242537860939352595019494071493802944529158632834898669093601852920090618868357939355087623788993886197349093833350728652977606283013526387649908611174876386809139470232517611160987895276131720371008783797713508720456461950874172919665526103215115091971366028428318096976186237444748672897239905329196366150970119527651019945238236336261072702879842233810532783608450406613159485545753665561498582822035021749209759445261643757963342065456401025150269010207632410580879105513636054821499306712274707443284896345407158347793227561133960611729485739345806351537847075290800655932070729750631693364642895353044519534608666884457847007048039735922778608998777302985349556782147835963196165095638052961002504118439825035556296736492876590291241234564884442006462143751922296301370697745328971474606345590133229363905369360997289474265203268173991682537416400204748383672527500501925588269414492695907989456121569487526149075359396513891581550827127251392083294211289228528701071579527450827453802704717649402988207985433754752879679980891502907097464142538880270989901776356964456202362189380196222919758214850975839913785314885625042316114708178408955195612312799353113021526514647141981842955929322119091641028973060915694202513394514536388853653602940400660967826639810768945464263042628899776752387730595248126151973454320453889851452722811837528786035879182681501057684319614974779795552613002595200319221636125091012051052426313019616537505400411846625717444326968917248363869416924529167392545130543685030008493657980519007261923743225739552712772336972762789275491849140796352771554917541524979396872266591108866969156724315592997262765159361363372520598299836518338973930516603482037913970168382619178812445278895692200083333148169786431497439661681559619844082819904215721813354503484203141590863377122209022926380185134796612219682937117071633113949217584933095682374370117759188987190201081295446634674235838993136592699448198761441657311109824051227262209847319715553145927305023659060885777962140873460676199392229759388738786088216012398969714950409738924702181222940077644196619236778088334192164219915178268698059883112281607068860173825678759693609003652776380181377454543322423881109300533158902121147693934279492030171906075135247133020318507688196045393105388733148951285992494371205621695138958926626801003191672986469298562043050757493038480398605807256117595966849953587247039413654102647098131261569095659727821450606728944289846661816278813368006518654784496401662493461182076605257812173932241959867562160888803621387586084729747880855001352268703349477961768614816028501202440057588478819854014082049932396111913116247908304896297791800159679260931396618120500355253589351440943545945547709763604762726098195866267020181961518603798614856148010069424482047801549853200182025813364501162856422794457790232789432191760804735209233449469992232754877984608989234120548659819612450971650416272409477486113358212217303519156353972004919717299727775136028630024680963120281582182253740346007973775093182813656248361188924586871340015083459772794598637961482670711724478724804195996419056733241184940163060732446177099295019673876335160816678490571644943232475605182255437901460157175135071714620919218148137253192188743791030281079497119910017082215790023616299615265972328082293556839112934562981960970379515960311647313658770262464034678887915208865431028992123586241305598895075077623949517698439909520257648951890788552230440989945977536606057094552135260504564347245849689084746745173114680576513815700891674108810194031145174087358901648280489565178994170739133436643848862594444079957370846148307349020956937515362940716016916354972470997434341649648928656735703365499939197301135005557340559244437656626809662486995590936028418371546969437219476584407908496672527820119067486699334435382505822857424503572430550033110266780294505076204215720961892786964130633669293811451051848730966258855571568307703623062295830185846030784181324783324783300524989808662520051490531438199285472193269983119158769361771017331431477751481143489232416846818010243349407983665274582085298422267895966012205466890076594396263134768825784721262036351024451216025497903353510665849497954530789858334146534001443797767588954829455738319419176830564314721706564557812148527314856894220445139637420061798659055125565800736150564475402487132763919830726071215538209734734875559538270486999753605101226953890555656829498547865471805055500595143809393929321033103778932721320424838989316021340877922872289810297172255156580023991720020905444004948854264003623618652342533111102949408673025916859519105577259277871704416066108088136245078240455592986363098087591718368011756558941508635934163462973771709775804798109625658255512010263389990416341905518167182506854370129138514525552227242261276151915803605891115181878152751016258178811767590466612294144615330113547113510433618797170338262321083991325166568201663642012423768297464280268563627225524408956804359126181589722090718997041517738408914113189520550184019475378423455669572788533532473153326548534527579503765236852214706942741580961861945110558229935214315013351600322333158301265944132308654949028035959550113129521221278219417133319796943242314690257223702726645926785998020613787660076235686119248196786493180413040425883755694251337502083610445178077855535583927197878184351047446091114258313134971724251532042533227894949151136366322746405557449770534097475923279412306496873407540688284754458283495509837318970048968617403614640665390096781418691510711404156928156067372495677105496516989859332960131212009925863113193755822945884209137505974002177119908654473694164737230733834848150213264299159464585085341235349066870627093440499776033758164442157878679350883846446034368041884428280915738083861735846329563414909890382992852899703184464655944312927171464892658363141029819070371540905704755649644432156384699026767447591788107472504058710005604265509700375714155846000678828699755688064028178531792268115605949135504339570400427302112162920372937816078549708340916036570931706051998137665621920010174001466344164719504485975018208360256948111770874382360124395612560598950556224343558320154454451106640102436504972144505934654151828184488132102533860042232241062198339451024435867664713013813184084538060436140583726942014607546046611812669279740140194931664188080347462915537235642423500654564538061996378790199415967822900391419161841045200345863631283955466964836325301162223559582309114576921050593114906785145736267345036546816973051751836688640184081976722429101456896833132544102820442911197042468765915110507885128125888620123942836976187341787506291133364713082325704840061582697863982478502815925082816310880480257549154270416750630512387398263898009750825485368797319422515697110999258264774927608103512218982679412822825675262748450714639489579266144915512950503174920058952277002369304327224638711395951022232464895814746559388326010391310893664664599402436439661487438455692167226805304619083536516303997513205371304393864134616023608805644470508875811466996829994531341408124133914400976264755857970523481151379464162952503405507470356523140113208837127188415271516775552825066577763967381062629933861565694808410758761375325531709305814622580635401175621709306707077366763594669980427089762853061544364151566996970749364698433340166916496986556017732048796788860103394137999818321454066513008906999883909916077477913587655302066060743297543106568247639859368550035957986083974669752756968208684762565438819923171330043481810922015635881464092507389404204611938869891976199852708805354501409512797702605260604218951457936361397776197462322559618021288401699047920381531170521021813602416735955211418971249809118857839424662414278940919875975217119890222842021449010987700902680664494695535583381931946556121763834696205876113059226527796716011031261818312721733380664085286263070033616259974110879550016898846053920212114233861688282000218563448729302666912970051273247443617501972161478152114009554222543799883680615316775689488193610520942727576859768770421748597221585612166960515105026965025656977510568413190136440465152929803865893938144760575709472832050767016612091750933709157813381999605140084664500461592788291959043921586728142785293188047821709115759597677228121731778435792639798995191064357321982226131266614183011308681152487167773203993557814830737894180127636821903898938832148748151231500971338935270406276468463366020539719615282811717385230724316846943968138317479747296156721745847390771613516988400590846662187787536828490781466066974433680597823748152009024566257604365379242321466280402824654932427310050975593473283711337170486518532553517121223378293215679970987875559507607823143063162815920606588102108271254028822082792750920414374562768047888747070727117810209386861510560953834544446068120253333527500065791459599999555187263951601936923044334151052002223971636269412178064593238556920215646431861746657996771776269634207935657608575461160449738736354882688724216337221553945678415748443887954387185579237271935485896594390048962858619162698062407340426082143736544807309459118865077260157349902769535082825447883998550257819739500756145926262949338253339807343841399200761259724102258849751862130033344293112453591745714346404427072222249823370558648179007765458661418923519413514734653448027928691486087771141036091883386001769520013821457895435538468368266297173097199319350647887095585754920418891068211831228460331236574059983295633002584998963153141165572759596331101616852049950251309057856873242953660421268471905000318183131450996653607055936440594680895603267876668426626724250770277994373672545635824526114027368267365833983498041111485581424511382977723682491231352184948748823700129739019274995590479214919085038615393286861383343688514113397295338332995517676078793560083571311884472043158954716700311705791992917886608111514329077770060488009614068003843767636382330742872404064250454239743622688529323883347287338386767916709346648325375335490390310292464999475919047580990504305487940393588384172731708006916129824459695856706282996991736752905013824631905048944371311062722080117701184494087116820146573929469505777778065189034174345112829919604430589199164407879186264786118684913558609922915281433453337380572961561655334712760605019783413470214529842991928906062749106371059287055935145668859696497653701814384565468298961845389212356806867157946820067399026611572739675903298012406850739168777519746348441809160088263240099133106376083187871307382633003551233353752568641117214897730153733375716656329279976698443355641787447781167119450284137216607834996369171875843936664919482566913800902854540611354313620337620796811203251727043462130386065156959758308079261053454489670069899494312598571845280685132219004927699768879767454966937087528460352885124307874636457754088976398985484990784081139892414837133402244025218846352775427345088004662183093836920077930997575972570598489336763010590558892665340865601266765784694878622239940779255681874849405144385306048350678555556961247799826758662610065966811519159644681726387545986080324645353510093609120065971875349061158671126317007882002362356810699258635676648806089533335520891512369111046684197037014365284192944386230790677477759205994787939884854552857425696141877136882573206937608103156441923585699761783213978622883556463267072833034940496892244546673155796665212143068669170030481073819051053262432377078244133790366896045802832382408568027062001186515078363790892610429322571200195700833600019586036478053772365644657809408951177820385911175828334996108376521087809990598923446707800049581610753855670990584164178086868922268567599172967899308343062707525544785526270044822615676794323931342310496007582913234187314118485183960956463602484512162265919786112776582083177871383268288224178585002882649763355413403129264912960411075621637976432563560685670001422296523051059929927234486212563610553078058863666230002770517150078843654383421489849180605603511903382638557592693210055044000622264578916882227218721722709868428572036494719657725538102103370944740192216052985614397546374877681206969555554566557195381206104291732594964220475742426156152678091438178138296327241514095824930093935445898731487532169817700092804468609158423886005669639423419868447223706037458118680643715145840599784109233998870658183335227464835729216404877414879224400447462270586435443475230377041763273139382088284400939968673683379921808000639582864297102530754518296568975409712516107460103366746934192619011068482998923645265409930699687200262754620414533815316118662748087982466988566095854212216175276235805540531749311283660857126337213707953226094372215333494625098405161809381933292791340616383640237258396595414024530877611099173146753084629966893575639831117736980513719375274995230923058178856050246210173116630573294540845074846323502302631146866526809266450007545387604731298582752665438628092589017003980944346118427581945613212824480135499516298732805918347094513833262742915409081478136046185279984654033680643917239239833810013011390155006796932716568914973533732853468640853615193172168889503074445437476602446207914942204010017610782601499543473986183500493951406267236568289020978015153860862586170184052482027343565903114112461926983935266017199564182802088821172108100870889359155348834313827975510245109330067134508955529498814636059741704395436805413083765684124153448764113914706882435072475918799524713089911889906517813941769470534227460298999259789446797794486906337242554246068415655887353017433657644358413246315867551916061313897040397618236940563064081073070836866594766208900315574437837444771374183159095294393783150797376468647736924045820524458478747471772938315778284229965563852815561997564030153778516200515543347769154137478264018443323094801071767527238044612183481144374430123554503729826803192739667680699583602156808039205894233235569819491108950803192189050331324047091287057802643608238969955111416582453953629297474144020134362264393778664060006807339107667934666899969137228571464994794314396443278296497811818919760045040978141505717684902409428246634264108247294555696311030481793973861602818484902172417637917563917091805507894160925367020087906865974487755254598125520060551283555403112567297303596365282669364841276354063389080611315590465757605523387557942053646431327523170833764192321873419028391447314174389885522998710972326051535342283785122545434000481307948524640634372903928709777417437935876377891658900241339234851529773819144206939590668332330408010468657102185225149874551815170189920469722002058616212412743523209057819901625187093690063462849576402293636268179185497840407779632595703902496555853057418765458831298607538239043757578252263685508217021330711146866623762600148353177492823908585410916010513153856611928051155506727803684420424681207537921749572535311238581730334127438655801392024911357145989349354760467933353397217332767309292190472799206168417709385605164568788978335021864157981586330741863571321195508059895703756175278290816707146628329772835964441252295806256556894702550882583975921392726422333584879478135374235823930265717927809659294106354328803066333070576649865266950034157332673346073841425398564716085689109152257331818894080054132841687325792377307561517959226826154348373465116660003912257026386697959836235349710750926424584818556845071970351591706267299584411134341541554090021334865145811792523365204724786652595585394118626692855543646410218229164733994433929867988929209289164803695148398997652176314311272040482882740544349007917730756289218404724238456310108076813503870846557865081806977911294748088177050275647154911270421883490085487366680259589427603515167667142167768822754921921964616226235930475809527601519778651186081600957006978265937599920280485292664308833188295777844161967222454776311918857451391998864715736755827880752706103800152827693319490215720608446278082365126999596547324717535079194959840518135205756636503650570659203449948672111248314045662531720257886569343907122480968479083423513038670870556571671487579441652003341916865954025396560736661226211514714648645047085508688569028205725885767286505102907738502345515860776275481537937257984801061902119324120099801871614651679947179517432639495818519505284004440943485270202549386757180249803824071532697256230157807626223055962989906568453727752583681190605540075923648585634241414996112512347446280193661901405467809170830038816190276573694845281686522968172993529986100141632301800769952054515470553008068358607640520972107622033395323745821778361791679697874265591645792609727270063486463576269143538733972226035905390727033258357805941934026058316349473225164198483473322189398313394146571840885877935125307400512889015053514187057642522470057716874013797157002671614926342884421551269507289521041691231909706186916069770874534811669389720052188228644427538500448203769410224587035193373824201615875632694327888799839067338880266414490496169860183533904392433150471350031612274646116243715123396269307819012508448474577697023519642627200626519542532784952186578031079895540452215100604345107099766715203959111143023993839572298809834414437796657612026225725895571771011503909823882847524661345594981815172840456604276596447462109943021108232908051111648880708160198948480013379063851798930468436336915411845491384899009514223815773757291909146811869695437973064288228942037238541148619726919771477756177134559713471603860350572742350419511142993505722230146728456741578339051158975037171543841628057894832569237790454852305208587344144742536658679796319600438312322317426089253470678066045790220877027885534529650499802565404398989518391658523504326034820729557629199925087052010252752153085043792613253464230667002095533375175152686027169602644257526178052849470004526960622843805174581217781559277684463571050442090459766435554641137037761785482253292981356783100605095526585745718704600398803918095300950810319854281046099613472145197860932477579892050247931885437063321982578587814182426661034265770719947115831151043905521055728547731007860353042087831771797129305434037361419949648047254887347421101157650338206328976383728879411992464475024910410714263498615305291238476206106221055054292265691192013559759763716212609270637998215719269478694102287453651890228888075758977429626293924875057739597571033260891107796459845848553154239162866032012021718027450773942084812082174541814224779780301580702568895032540272092153146503647065855428093599870814718785961859493341445350164018212103101354479948560081217536535073089099298252248872867414543946035659521765648211087098469472552148292221309320143883412926267424940396631165865677667912518117822776762284931224365328371104223388155814848004857826032370628349894399073028381983879056107321340143093752916058854095096276635666798578703649512795643477729672249126493826539577734693587859870844501539501676084112062987076962860630534720573132405316682970155910299215494480395614131352905739429988090870379956166522623265879274189966119870455121782619745605988428719244549606788026060882461976813505478324593321650100338973880617324268608248367413707787312838227198477858764319397006001863023069213409810572035632463857742166163430762766504355330192373581394859580974446247326751683864394991521902616230313001826255976213308648695624545894949364285112496152967191169486641078167467583627350986903139331063714689244627830293210607271898146186285734981543808904188591730614504899297132289670762511748205606742570287299981965865826110638873135460734402078997301774933366552915482430283136580111766420820512862771349378172561221475706078310118206633738495576869181850235905426162371293022044081368170053881680884761183671857907498672059686594004089928914713407418809614412798997440175899345335222870551823071581368085800781548908169093952192207627054122929131238287402886799250947415715630753028748453876869047212733427371006766371033849194220361604468538584413608333003032129481198774903681761567601265018757314495255341499996964736087217697879742204907878680587905842835369651152475319887123933293583679063784879011576980471909564931957420731034494562858779265065539968163172880309889937553128585919634611166379575279710731557910694762107139841049800897534950346085883687861761799705015550786021189052239678380010410290746362686140069322748384456682995545352726378883231668849668369668023440289028463500497834643461170095188949863975790021774027456314015758349182001516374416359769761725991106489136721267657790150941857608510073966535974080841064436016294376232878227345014973061341795006958394546950537170612251242217407653062916304196790830877007264123903522419977382370558252797601960039375178074177008260130911078845300257756905274013468847649880779984212629101962140496661638646429848286997078995319757253517438031708781491602262227091454004412868856897345619457507022561561772033190434706930833375339655874666853979937134915712020949502942733258990842696910820006589957953201618567437349918916627160111636171578973366948214057488531809343476863241568451304906017443475069667665041969922769983649193299324661601728234021935072988239209917207880898435197146503706295175158088536971696490783151823176750311870759508563976377923023383908491817851322077848050619469289229500776559952460256430448554582360559645655965049716943014991657113433118664306751816333952198455586741779470879286415686081723632881337242120376781265285982902040451859824223763404011093088137623025775355418101314559002519203161910838324375142691346997592724581672564101963281613679602826431216531321219933873672521717977111253201378554718913148680085571277788147572165751361655328115839536322750697527377694698761930448797915299368696845643301870057683733752696983560254565627458666024108281839849650221517384775095968740498636417845834081359850932831951153594729950631578197746705557186433682494503290219420260496831360935968898945295837209169826996239443039117533640909244693767431299509440650313924841123695277879086520566334358528148989542679007496513945884070314602901488023621524831788037150513596073194937808219572309634216348812862648564067428898586491830320125935483433641976772926766315597012054046675271126268605570118751578283966700694788810874347576843596985061296293157472268326657144971238004388926470213045120947971821128647257372549200292889161404176009554777359330011392536299774729956740123891694359445355341723711444856889788260966684168671349497085096048840461587865666109239532934119764272496348735546647528854364413609674575373792350817058432563563867326112391088570483775000988224039907873021667415281616142026908470041601383165181570560716976777106339594552340493821842940341279457781450254159014880194637456094930264835072146301758593405017638535251574112232940055354566952973428199345277399871849483470213762531257766643223823680549667905205158352032983816107282569773459394337053786740873556708561443309424884310369560867807958686112435919092813829888555323696146419420653053094805142518227475352441098154074363897400095422603206630562682564104039582676288156253582758310057614490008671871767934551688702891014922014776609565945635387242235666285449816366406198435510511068932437312587651437814906301688022301027207940244672454196517848016008499285516093640360904706991212295428046138995581859577043926685665330670922566149291508844338897334135313959127382571198250972841279309463405870528990372083643145362153795934055086523159101894281218166157692411778138239898139117984164002170096925453315706038716715569091840444239790032693169220365763906584609192624064740201084322455579752103237841613365303855252874098433665020180111458804778059643482939935285669536588692822961795690758057665108509231845442461362462798381636558407631158389735997812596655846669608621914535816156081874819138511387519615102971291282530202219519717519847469342575673980693870417907857582430430871785701345504002023473905747575326627801476818552015869021392258886086166465984335624504558709303865324233259073776446454600842813994148391092986942603836067278394225491751868494434441887705127174741936871978986510606566863642941133538588443884438497391106384062542991195016639602516017149404238882630239470739033272305098683637889927426667176500535604018345787754331478095233007653063478778561096597409326407993453754758966138907306969672561598672203114594091141758598238136320833158103127258511556399555573310194962988525061552514089400008461465855103946292303842464255753713679704202480580950000525344385804768828939188497881443958177144597265947016242978795749322295797704499247419064073561959576911016334942653029403290083232219182823690982770519360255645318236695734000353770885509882103767373066401115638293621664535183690229591710832946814485162347166079190675036912704303083309868131037674331248231671656260351703314096978189989217430931577472173732453237712040525252284547007138301347221853777936298677338963533056552194059160213743381176123682271890960003556724782999043009540925655339362455183508012743303641064447649841724884174851115791423438144834513993022430087104744715017261045389390711963145453761129437865085464020584296484703219549836117145545660091993100360099258054455635550703963808309977534774751702243409100715248762336475911826953321729297564606835880351171829310331955988150909570335292899952764195696033718062843389261796637294718867914262414757094381132781556382291324140953179861617014910490689842448108210278506483930905379126528304380277410233485767826266312686691102224843781790564034917225101894329017794400977782780111617619176698679085191170098912632820706053150430357091446323230035144292502733152689066599082861721224500698284796624955601346992001319453483461571976766926450310983288250895155768507312744972057782905647540467209251996942226016750688781211046688090462143914537022832704863496983320613753776774085590745202747879245477618755415160692156180604494606916258064586181514535682625376080439714866507702418779093939535560934637381158863541363881459296625244655494518282648720638110393730049580005227106496401746127850422469123080638347526987235276306577645587435595316489740002538602204656912335429344195168114028986967623958631182257760878402315853318338791694630680044056953024153732117802682340395188400034202655238581779378582387841381707718536244729854210070425255151234906208747591956277735171117345766574375870391186674124300737169102961713032063684961675548632973080859792673893557563121687615733330513324957403361362741364299658070577546243093688437412657840074613814434672037828764883461439864032867132543727293340114286639772183774206355529418015179855226702223500662256214295328912631786140023742057134881409621739198400274083704710315551317009149303138493555174678667470946887426073585002035008568372398135496895668039284623118924530847521579793096536531632188645706536166930632196415854597656917227996698590150926481762460592229832826693180710600306303612639607729953707061147042644733863706442567666797718870488593764455933700165054062840385133347833614427055047597147687521605577805475359123068951039632327192859138903166652651200354107789677587232928328760742322344275068002087520633137583243107654673543735884739377415084411608379366451342567572552142394390053258589280156922175358590141267999236637504419516303212640051143696384549656348505385221429536175313954946287324664840250160698220499658660657443310745516463145713485464816761277341866366548629843844306602370029833631020331299673356092799655880553058822142467694373008150848238266576374517987615965431605961506988030065220898863585680580705824813464308483859461216244664182916863018273207129927008437163595561844101986542022678636374342822045453932943022724520273034222930349220593306838761864871214859899863828029014406077854434553656179113086051050618293892362807350689879410540020841393598074518515815469373179062747008187640347046333990510621454091384619828232338297929665975304504229869030552569058680540130442271439671207108727576959417548928974328497678317507643444524541062760366189962173035875173113471022515707021086563447957760099310180731520372562448180240228851175493681093466165195264374958488000667830221860568025161778052021290828018704488360733650820874386982424217206142001613688103999283824102716067590615485509157599667542922133240278381797297980906509690227219087800433084947405443855512078689111520352327462988824393538938744317392280630268513851828607728954254652842899450261308146438706983689698568074098450377022043248072139165799199555211925786714901373189197223594989115881177982625069039798163997277813112590931779303704896462699651575760942771175386435995454950270206567401458922621773455072150733149765973559937719056162681198738841098884596618527624061418917870018776685836786423055203727171672573788843049490352478463953480156605630905427422711084466411399819014613188635038465025238132903762596261709261135694391265741132702300688935442690635049756047654888094641178779210301391811814272277491122553015702607345268030728257766466578572336415650199760015199801273783648595450638367093211615751373705838876258451064496998856791840869845973686355719984140402207001849701942824692447311086907049610410518110842775773687372783523384032123979654784073103711975145014453517000863731106755798355568316561399197112615483589503906986408543864741724841590099280569769863859860297369422157755037943764396733956017779656676341941767071940035577850717356524731406578995059560774353455295945231624667152643678247653572966434899206121155761285987968885144956755864690079453418990514295389807938166173235273637422679296421991949274438535318395915019662384927795581235392999538034297460427906613117549401029518645512703254946195542310961878353973705812352196205707795828446113248400137246524797694736329350295517856698646242762525064728066113781983156746034403036412710633717801820703422792749953442164908653399801787414734043427332093382539616408571106808060450982890086861500823688857221057851719003502871206232929139230340912303817226590342978400845627544435136768498504273373337439966962200686367314590169012927886132199746788831535998963342911502667533651237951685276220144302444266896056963461485221765622988085678613748526655531148189498246308735840822520573131540087017535583840241055841837472089169400384272612609558704168191561727296293462834298135260173733517563170312452981354223886276487052011288190716628993505956933649071306095805569551737902317371398460322152748723493015987048105541855777762561731637857592482577788556342958419973790965042465361018948024910084530301534502867728431209076310410011754963944204964765187733150428802120135491437453456507825380234136261567954505725003514424012038604122451800738771157048973088732405967718126912927428305462444295817757673541184703428432123436032876568081655915055677802885858153935405671736721608673432612261600554451280755567457654805767313496388491620484391453447459075739921031731281747421464905092290262445215072348103051619274213163726637937049747196421900601381805991486093750960472700080090191801301195278378452285935783913291756794387310962029641396552239596630071161700498699344244991236720092091947692056394680471190917935107268105991436796673880047296504834283255487749203503041679715142603386783271930323890842182322308578168111360057756516504743345934788813652670584009551945453796498858453481097866026719455325693978459908477151216651641930380272461981560816180234801063602402962851786708006949403384113375587998763600503934374354187544467083578313822005757115307500969763027443199248337498170625455794855801507557828577263836286285963858011640142095996153225489555329901257410135708686899603618414696987550056563115115382654568274435020097319871604936677744983828926437278943971645732305697756000119902128059247919750440293820459607851339804319035069295343718238881363780980403003615738944916716410569684557064322692810453859227627468744301527891094494250250443792845541335436187691672314142060419531564248995293081375777264033160375997143232293777749649093007049376455867138124987348213842655376432042147626255702848675283184420045299495209496036074580137464405616724745645683450037018578085390856375582988343371640456032735964141954592184172960679683280529174776390438911324650726139976739555544248684481097614743735045239447574285254656042807751804151430427357777961651947413535755279128671539442904654468501276598939003730639551271173205872308729552101244199779598391946916562418181146379678089026388912746667153256613845211230801808800312056317697617941148541467631381704758720702220095687052027059023285929970847572226281733682857911837049195394316892254274018886890442333230604510239331516299362363724846522641705652715553889702691807494076944589188469895837061328572508746774400286507675155529246860991150704125222346952736072172398986447885155257145279019165619664044913577801857234645696763671151621880525812705435327240854246786739906111297086001420993661990981666151576276667496324982618900799701427318530338452369066242391762891712572658812701369117386280618796522924492463402222081702193880334198364521613692026677487642438256336837034655483795044753066041786514074365827818377413847173569310549902831239036729829435334498991059388118038579511162461191877167886917619303190226718572473122422047225451357768504059945665866512431148982685737669179913043333685874988062945552950711310774243251526364343476980960865995932238088945698483988674300977069413861214367457655480405593484215713136581590432565255308984909528495018297614710278693655879988220226425530325027830531189264001530425252228789039160275250746112596868943636673439999826522517234595522450191826399183934682255196939950167272671099750510626635527902878592803050785599502123505374073510455678114695260585168871050441732393851464508703321641246854192180882105956145565336412658935881089551827578023750024596559254241948196000449054355145031603461524479666368011450772123408165735092841572873978290836357331213847433367526290680431383046699734770921950467130427327446542442950600122679217772994732000478441621663765680597823635010048993637046927459473952893708747403235729152260244403294488826403925344191474146471685533063052083446963836952386340703691164390038190359175687210587955021529012552578121464391065852912323354762519921018876845976780365833944710849961825449701686796110086736982038185636346016785464698430388759821245276910727169644119073008071928478323194346640064800173846146370937051326414741794798387017748506738178187937306954300164140227030858720210837176632707795818760888223449429599644701187131751833928840088604372020617434658561577122653769473808670162620206281177277856252657543184015419250717381680402370582225913917337286259560677698239905215305328438799950537077940036484011165166722387111141095441878868227923379433474344858075670306410143386620934985472865988832778801635150991229983068766206490292820378288348743128764572189976205347262036614189294799698839988036981894119362337714219112875383713449237588419642008232611856934948450235426744189380220551551022587910260189010188865141134817154643221548193214591197444191529006583985042454158353068569870729287644095315181999192339987434167969575486272337496353193123068214912687312518593019641560046825129411389074758160688752691362667956699304129154336389100215792937692803979583445832439917178751204076606586636733677134838781092515357024036515391692230557930753194228495748484853709230271035525457508107895585800628397604626784804497002056104475885222699340500832647529452421083198767211749360690014240903637366453211862056864061882701672449278835438871765551853506880471782491044921493490158807052226577545839951527154266824560157368264660215806706752142812049934342602900005494222017771133295185049976896038505609721001311329948789926068553751534537489807786223164379957784490526947173623896510740733548122314128501821634284151198411162612910570935570849245601132116390165614696893069277483305914376919712031474685639678384906263927382103591236838552001915523878716407513202415917768802601540228633166996818807406964791705785813912855889282302772483477558041596154845388921458382395322867658365676029373908061432808820111165973980015844409472929034476652638347786103177090430630150153416347197468632209686852110567362116737507463288819276446184688866160837868923700861007135042817768946711710921907473848960101444485516583379044641430297808061809240556254619818723091171209594854455835222735887287054779415061416597705436291170831701572246658974058000195326020196812958527744462228566813331758299692750067906388935593339986900668398221937634615421336391316410784599619609612503248710322793766386690245450030566269496555099842386027837310590384737230234616911035350219040855490084509659436602645300180826399541627131419516936944514919066375324078212484997917473157345976095425111328801655233426721346626532144599793928022818690050546526980500118058635206656144075519280750900009963606318482204097588051792063322839088865465330020864364958582397672195134875136579851934921569169470604894928219731106467435645390197305313609201954205210393384029305295632223323139425245700355300116208648325231850576490265523348456805484490824498188412859618264479332982115188661630913864128849353691564915381625625259635401903433834039141151159534445538121099809967865867896597630377771803774590370009576211363407528279013827997591135015778242829815222270721343638756407016938050800075880862161407576942865578287576747470337690771814374034634769042329233567441000121053111476902377026692393899665324353309340487291522995313302815455479300487133948120268048817488848634832933843844333468757078580492352201862029419477971893392110154212217872261487941495972708865285285646897769174161399019922166235568776615349178135091554035353804834345644735318689976477284234594554213544374248741137744475663057320797412447822635966967478747659626566648091658679278353997923546497447484105590813304264598213724217996600359958879514776226061214141290254821210315749259203015790530700891381192656991598086176398646467634118788229411118876549950440874809354071249842667505128153113855741130208922649711712866502800648147258759085101766564745268917272714288344634925014928116276276204732252379794287567881501738808427114942123426716048054787450912404134495013726033740637201201528675834268737484869043230454300435998418486783308906130402791700778801927996880618578886601615186544586050958624930236160197605292792502406315873906522568025348873715802200707318174474398432345420985364418187691850026225456184006663792285862168298324715672540739636560655785476987095747570169452984971648492426060266304728234509767776850840865666695728377119943135619597169973017544814808686412855185334398318528183832729005633428852484045461464842585100143502297925882985346924452713957783855515207291515675996542902345572347572220394814651571505958679217205090510894849849814936942509541254361197962005211662743263903441757037802861264132333900585665699334902966350978293209057395999651966328798798028882800464480201017165311574934081794560401894412990370475252519768497525861595188649015529160642700578235604825905668825186029359003024182964599097918627348179982475854491950767972431716112033815974401407573096199105611222310964093883321481653243233203040955464369325792798766168148852804299545996812240745621967347800718517463546077930031051599010900629836069006159014055888394776337244769264413104262629935509242671397843224168341476043197015902085847829403699174257561645144867982395122264014610574599822104374373062393866825693814122877890800230221434780966051295211789946178485500470469757050946500580390217785423993596740917961230839991977275972891962755195787832843719909658914764248616353619992521074549280967523251382893470891638216520754860625188136293197120512850435103141111983710593960155853142497007158844314251762563777925887209819469247089052537922980671848684052682710029824374416000678048013327974443465565619028153969298704393088388134524546838321798731396537633642359652143709647323035970737280539051705117516441432039491476563905154672345321684462494164270142640659175241928302734462971268654581746782600634875921288263830672967775073817161548880227553862959941220240977704919337188416220045795360492315586820305690880331544966263255029363011244908136208094476490115424310151874688938019320276787476809891776908328301086192099340570569740950263919592668580532476479373681203893010411785648309037710465108306551476298188077697879949174683711476434082472269693007687621333642466627103619795081177974506569395026442402567486525127040953237178291380426028282203150816473748160921352870987254523699399755621195417993027729978523687068431782246351563343798172972839565480609954874174230877230677307285347242385413574787136843204058628211906594608557801146479529460042403915977210539069693209217772415144393326592835503317464328158849319989464928024028069516561118205251468138943416772658417379794151072852548873288140589220490352147401782453261375739251862278573385496171040751829348521115502129806317918396033345577230252197980671801240091849509171424976423821641517532951736893587614923227851254334421771104902288451643763245582535372166325367502626425107630349752561360347966402319705963308161972828500267160716766518103053629718495780778638467523939216753786053811169265859141136519512085559426140231978113444853015694864119563771077170513350381345261383226460096162023937487541722142527401033471087091118202949752848262431565004000503893687059153037921331804199668001825356046334879345227153895011280067861992008064029100038724859689544606426976068862337413233287823944660642804507692146264165767883749916395833962396060839942758045601364081120959815542555765521157854472973026371876453905531722693349449666279598327864557635033955248519961113435360453887541850507790886728875295022547607518368784549628012561148138002046143936405694766644747885535754503826826905728265265962837137411708386130800739418643022769661986091182007180323687976172665983573268234499265967943597703039767536676639178026816729495171569020741123786071980561611032521306307055543284465533602591359479535343402267634710663157429342221481755967008053685787146164266304790962780912166691512881969895589704522596046337241291496726397753526952219179808729169232045531920526669528046961849944278293318734252479913819819168254972335207977761503895490421211451446956362308600912100867093532652626669750171755723887695698069393188786870300113955613802732074240889516018997160970227393957871983717933778373879020782295226285166579854129480739478169149810140231296338135311621095376779896731569779460600946587828232882653837652159267430320426160635646021584442995950262985560572730591366661083182475844949864074822195820337401988610130478095067213287532377066983393607565294514993689761819197746620923109095376886993850475184633022933801608013049214041469758818817292372273703570431925629959243311333387058674778462401991207422863572500084424991457637703119460187800992496755554588274777394394755298081762866325368186508846911037926182552313199138203400273441156462013130098048840030231140756143979638313864976637566779369636047018410165729653090183712173575222944143423176127481461071947909659061851350003303430242835473788665120772307997700769351837846602885718089931760720139446800933760099718614124557354382121945465458828034142744425568635174307809736630558313070719224865172237038793095519112970376109590392747808304565372272747642317846837314346055228778717064707983286212165925061594776197007110446301174375931898079606865201999543466251845896923243116205969797825870004565575532701509783025715467677824284563899591724002535277064504423226572713942236791358759201989891500650535698345016673236904167668091284924457672479787862765807823380113689515104345800724838384960330628479683568304429936110634770603134304470895887881523196637604554924471874614173113910551875077977986847863994482561737282963501329687165724769363809832720932777544217035820963773646457238259391100120514548592690065779212563879496539985876878251964098514401661071772402619327107536295172720742713989097801617753039529642432636316613643474149928578244074847832193270885278076107133878081690878390115411902269465249648380921907341165033516090370373520189119917984157328029938842924829904890702507527701648107416673277730316379924491237935732080198771399941323384097659052764735356782481753689229527002008038314123124935718774904667793661228942666121308640816432119070893134735820801283399330489250376604630775075969725368113105938814442700604762770553958196623642485534379656299213564947658385475576765046636374429539096744250241437866425772312185962168125356365198416098186157114766861941817935810011946172963047045406950074732627059250155135645697063523741615687742674751032377998369015166736822757395055160114593523369530919295307939778657360403292303783847607805658181162090082708722200801900112193838629664848910794903803537049651771314156214024952972948499056834884041683314736097808162612248781287280747115439339705116515214842291250709898418834222776912858957266539956102456058717378694834717629498445253964900451404424797705565841861802093047637686414159834081904891537895509356460986125846982430977774749710049047862772091008837155495188135451202783527096811645494749342025474718182342383099632188999716510588134415914457830959208088112177250322324692930502132688364636933870153141248468553000924399039479893303037668322117765838074982368725973327441694407930481345230641791393094534084938664486014010156422784157708251884958147474075259299517334963011072294261010314882489394435610898227561489382586315123283883483469256094076025677514669816839075616571153893785428208511498964213683074740748815045737134226349047276186917189630893396429886679907848555970746254995424625101772170486155752454319222390765715754506634420272925424857250719703573341219083558820366773134507095114298351913120556680172764117768203689334081167204144368136129098568202924474622295682349937011090762741839937426268629632278981323295492277299011960367308010152924044785660224453261181929578000180210548782790070522510570717043842064157640261169077765255700209154311471798086350018455674984818684921736901193457635209938127932943809403098941999275650648738285021374833450457124801907303112679762238545814797127141648580781533873274567550217309554244137996005958226088527750001179007179318629525387829091448915573195666350357481678794040348367780542127105143096770332930461371441501883275594760439460567720580125872251188625238494180636987631028185726628979338989512290864614047419891144114112026107777151138848122175906933508890786339204241775411304331195563515228197647195833850836598987691313495134844168971937202049769948333359630588629033600379916200199341835480768035728397570750272196013299777283335020501494049158032351944646025992706798136361290852375854747038751836614165786556866508653974811318277245897994231397673779773098954287242592554267995531138721340464328185747566640821154664895568457767583875535974454247948539897878029130574480537809527929137550459789887079994627113693359289971598860883900240258453754301576618377120658256064220644361698726771383743783665236650004742479706988457041253010823942593685560759635591020973120921084859597727208979100602046896847217255694898001594040352273219330781402504832521233432444182039187714412431972642751793726625271994737648481268977276194458892057695064108561928489360593267431401013448041295790467432766426776124089022330193464685864945020920101593970847785498460908268882193995433728004825521075519787955990880287814973572468434347654398769523327522258271948982343139870116299177989837085730345203115381406055165898636310283736799405880274061434001463853570892901903134790142543400603917068904611216471646887143678015809552728675925995112714716621387766962400588495584871778152591652221637667907244274006410002805526927000331830098190039867813412817532358958042007805236786205494544903370762301964695924421044303937366171511284161902130386519120811837669291490046560401233180855366190305203286791266570037991833395035178989747708501554896537618623997306037944146122000585822626014193140684385130222472157275123009582844379844320180301694983416381211249752791188453333626235878240887470940841431993793500540860341267674321571115760618564070421178751510926518144450455679789161847768057635570194953796320187272798219938198280611102689259650271134074376221416969292569242576793021781641711909381322389014397132965527390237044326606413956968733483840591008587629409302822783938758211557189307353053552915188382576076606738646130679258901848566194252764883809006195458053418597614692235581501948064335545982889575431485816747233962621880895423817403451124942373330513944364861603391035878271973862212058476891482728236469455860200348568580318475856123844660454550576560832707487454850537181527380312729133028897236971353727809444410731730353761339568111425955060270249731292508724978132446608025067750618234917416594653548045308443207092054229247019419093596692937340075581490499821572790037101510591562200093953482963207508552075859277068031017592971283691393785064859176684146979897678702817222584789849257634202173466672872714534973108025251851306067247810533160353054059762791039380100546499322153483932153193575761071600050376244068586799014143422502021203951631956095869524143716440324856333306077924460456094505184209651855898001341545103389867184620860400485419717542165593055604045611212140686789653156502757154583765595138644780066524426150380577735053728278699537326474616789050504827008971395451462091078477431631614874633911663646007969242374732375915370796532255454192272489235100388332898803663380255805018632602655519328202896214524582484033620902012840331233681249563230749790292373199922798624959902070419124076161204718427709717550507565874370538281855422179186377363936647138816662088225564926587945855430523515233090755591955342586607523158001405596769858427309890250597464181314111113750762716178070729689568371426383496508111509986443406675301232415369665791401543839771142905636665809665138479114144802463433546806438591841621814845732943196275782095459328539713353155027172528256463638536047380663132428050412077948685985232877084164538934539184953718823107684228262608720440507442152415652830180130008159846668525194009409363874785470133097738078709967364157520034206751109526470815714111743776558880535072413157052502321693938082005106959240137273999660327524733028088507619840166948213186768923749632750485341654472684819077740589551072290492560530498137116564592538949628469862313458326315113698817198432380176922069538356201105842450448883855272254948733839683998672430371229340983431123006804009316515381640694776844270961302838590029263871108421742684381188867636642428301525149199594620865415515082835092957637511683000316917924927603898810001853612709234414664994703200077137503390518373724692163957505960715146513309827636575758412029902013164029288965871002543421023125751521108656635667644734252210588498230965838572762057391441325702195251519767596390084885397842307369582568715600947550821195178084160202711796577674626950901411449381515400832843265976038652882480500806117813754486185350693309943175160039515690644114195864548313384490313568093603633640191583260973007866354308805248304730085111611806284055821829937509453657570996350400594395642454869340901572576597485051416395471546385969186681243736698904993744620189196962274644287054401524416661120623513941789098383534626410785474685271532689820364532059754012581769070164430292518315296325338783058640265676282114918416701695913277106949864958336175889521580400348788517182034206758093427314132867470275632187446533867035211606489163826242138418545539978217826284580358438461886866015681886540230174212317686489658669326839812934084494989251828977815837890291254755648533330530231906861486896727023767418194510594050493308757383627138286666682796100189464814770062347703597872507697275376449767768049211686063628254742958721129788533151417886035688479760859249265886956033558517385568137845398363612739006415682229167358914982053224734547027209928299700931950472855344745625639127735087869997420946888255608517007509441732792877942202836578289853958433400208573218816032680810482589793232864908430800023272438128311806800349279043460919259650234205639436144495314298134359516404237989269852176958108536982710932419994407773977826194074793591740126933651768986982600310063276268530541395898296590869491026821657973111213966561798844609069851409040860944654741933235188010470913045048171522171735480332882176779115591797945270515794548617084473738246753510825004032691711803218700964432372832520179800701047375387261468745419102816892503524866333194736041788045423976242366131381573090659421293226503998884227305997234456673820722205278730572406325382789419632477523800328343867159532620332874269295572553980642023162882354238704065726931759530315078367485493880659498965406770450023300275100670211011325041511489978775843323066159353113717274966630819878175020248926483039320674363325652373357271607427212045151016565047915946290553486284932378893436026259779449180529047729575269612561537049462045297094725660699048017701103214399155447223939076601628704647667644693550313372585407631684412368445167464934044146718409739791674421023190130696781064311969460212406299860487366573761131115715805376278604075275051829306446364494002061735478679574567853164555659565584412909232366976923990877707932248698285490191293043507215410195198684179125428646957716683031741500151311919528907383561136307433462788235344049889702996698045750707257339387508890757421413116299892954028356129267292219538938156290462710331992580076549527575728637849643007507896903056503921496009869824772826002279270526913947039855752193812655933441669458634524285405502086529851381372248129492910919321596467089169466049207208102381071645384698917804618247068191672989244433617978764132765968153748698141679145867319953659609036980373469217380060217455717778253718729137030690395701691129764721089367298867832196110571424557025872765835463392578992158036318106802284496880013461785523616520338829125079038446645734081562585440659477624227369821072499333404187278027035170600467800076972770193676126424389533987650358967968106758997706489304006793436552433163456722393938595663449335944523149834592324097864904843534543629725923219705815593783260436849515295724708374258379761433435433804366402075331196733781734596441501968976392368895557282792986223879937189240164822293414854602942526389220315901912593456395326356529023306602538547666262843531545699782190781125763377623431725849338813486042586091772300212650906359776171174325543973839287747889203300696738916854263287515236874281129520384612447285392879900304735430782871376213954458571187371834420853062984778769006779896438020007732119705106575278777083197357299826915932874085372898515823913158529250973204661534566350459562487916873030895941027311183138251278388373674430197414001150884740634974824208346818762516622409814640114807440338099558774130806137730847153346471787584972018007645943214456332171603030877413010210730733958733368859447611608531876796833052353991436560627851167026284812077462264898660066423215344053105620488428289325046206799143246695395529424272510444066155240739508535277651550340518957706665428657131562451853078871535264094921083055219663348520254206772744413676552467557212645589602527170140188230669916930501109786007488642402583032652403054870691412220544388234668927711692714468791972439503319741928598469979239010451449885264909707261700780657031546923141843049721868775834876610143870158914802207273715862426297508292561029905027786891617091341195332494035355001871962101611682083999961198258551666318634976801968513636310589454019802002978717838919059107902674013447709684612011954316237100017244676518421176212520991192972128686326722690895497807990705887265939897946479822860248690599863991366416072718646054248981184682158454807458291572716514826915048582151212123071682775503629946907829405085854011005671742937570329278753351901931574405496932111219155668677799598607996282709784321141608533667976857481637665793000320269311303675123125025219478371204237600610254037553485343414396699860024425886385968088771005350396554846862755335885106460199892991643022548634817780333148483154327582775011926035187581734079370096208882896071391431425856317468694130782005239587428748410860262918506758230625416720728578954219720824044987614630007566542343587738731305790368972053792276674106881738309429898357764732709757471488949213834761519009571282701134465781497149847214314944682967564177622115803735696775423352359551140270284639501858713571419144030875023889925718432255902383619629594808590739195215367070041370396009753446429408854494820699135624106203592492267543000703359064731456970063879629776872401319397876261160950405464275778813034217700647290625422162027863623142157105381766537068155188123326371776476253983982376406001864576682232265497024284715460745814171844951996202261401248819165984456681092323366891296075295362999857032151059656784455341270474331439418517697920330887140838797748552920628172999781258387982616882015017657188879671280403341383732986543678065896822556579410105526520372957954729499767402372809644360809799478575212873070437340648422275337034981887794756020035953216836154187494276626500156620771965594405747319485261448554381453747766235925731856573736139554642295298087944285810339661104554000321518433569197280126156615395235605575509062840469512756415600947778239591204614390129112928942167415322236963071169535242505937324999347653325627508215002694893430785733621182232363362125483132696129113240574417996221759769433894281328014844157081343737506854004713732720200829673660162618442752183285547919198388432208750891318817061008038667709124549602250038583379794885911972814171860679158718844363868456826530432943674644048046782684008403350674328034022232310718315501069561255661105329713716838675158381309890010183857202014559660285720965676878153379548553433871317177666554921350544973164637155348992066684810572624420513170721871896697652102098308485395707722528137294035786325805922219258237354563268281989252369004126977829574089895928278356928800498700622247221515504471256400889139510635187562730364999170579441668818984022536183867482207123035717733101815183135631316964134991056265679026327982364550289578836926097841341902059623330433086639706590099686539921030174194498489095807583841613476315569881209789602709076671344830355199155541750485026387766615528926702314380423011567057479736075135514034513918628185942646455058632211648644596620128495943347569564849286240575442319029216294441215735948952737089938740285883160159310571336461575484756403524090917358654235362098153239364190068055491867495193316605122083639246440598106677127614534377549694206855424729388504544287697857148540545525758329264391798263453099487117463038402073649628808156906838621298531915709154247264391324317565070228699723265403507026632190231088319492252844667971812447230664281248009507752999399320949770355165345506873741375009730048622041501933599607295261986715331872363574060666858073128013556180721295467179933431492891998463227896790862561134773268096454616217404901927792511476571341073168960870882577116527061266506191586237437239708583592512184718086169246666897653855787181635736213073046393099545260043727577859855340701588574446141341322542188932676948499079274884056065448923326797584664023015415135286707384269502215147025569249791588877608359807346536599696783209349753678082332737826475322981246272284972824765844124882802379643228968024762563462415220286553924348369294048705676355974771268956662868307336010502981801362705249016711613547617703965406935088001718405697003745320831463922213621679593378727210813026409068115150833380884616858275546888111592321343768889045561586506601079456861268814173809097891497192907156956435610392197651925894609788384290244187220705296642671666560761014010797592560544235612778152997041348627759929767456680863263225932052546054301990187071164345822197859545214924449724134126745542785826228824928464262623386023735564501465285822587563397136169698985258444722751132609645940198245499917570352664060690309569466647078882335976780140751607937619763378011537757217050092430217209872837027380021641779746979563912734292051483861366074214421384280719594385217844504908919826440892031155273971742131707281174720578487834873143028955164754343382094201149702055012102036238405116682343631086317118135857278155795280305959660025746215519719677613020178735966303249900553523882437449831329921216651439081457202896618793141554241722970741318255481602852030810180110929253659994917239871143336981339360444126523626808223508863682504379148816900391825819109328059405289812954698208202049459184914683482386134806408461756469352366496318623245229719927844951705723138438985233056036685247938753886478668964605202268812898358940823044559277668896735410350118198881037298917160223882795330158451764338000060303683916249187601783278254721016054160074080489215255544847304128756251614253314013775864028805576108796831496756281671768326573667181043444726954189471564917099987843581542983215763366964561635285681472640578786882914540072017776128519997393006901849515188495620467291252447541015418900470258082565990058364492199477026179942424483920602113848418396246781596147999098246793668543685782247264708870581417172084960339210395266013475661364880503393122880433321028668712513521160536559492339474159786108391758552527119329915928658073145679094876055108841534299844750327628612176752432974136424056707518584877340456562538253717657513814943474277792456606069189065457613409494119052710823553437467815143396219946721216474031818965011284925919031712225260000460519836759610057880165911441852762880814237446191483832574964112894033630534830838700097745441901951809887570640033656262339765978661220509625894557588696703492894876445085779009422861647769658987768624471511322146838946951894563095060968414781398964408931922727678551825875021191416430110895757889200692086690771401335992385758808254278230933837450509859587491127917109568886756597198775973187707558699187629406914042863235143119716191165282804954307864264529008261248367052344322694375215539781662109614859536627613645658268708086559644463091343242102893561350463876890039300375766806603161807001342834704618123300074263811065764410136165133604568361156331847511273714032842882235695815875702203695046879497421897396214931528357161916205863649150173011641290471722845697325304399330782125211004117090877451250363780250831373047159001916125427358088382943034987632389094679311206856021908825396650655959956403142367189961822385625798715586020961303684444933742494301389615508137010898155890599084886576789412923601478886636490427555986168638401734938701521587925030602008830509825322395799594971310646665487997421231738512913621455876841369716893289160612030085006810138790926288648817631267685970091795989015912922253971281867266446647921931271446745983409567850578525245747689456402686077252264334906078012703924372404342403584101240208206048980987327711448484662870284918688454190971869271082561494054257565432935851527616208214064671169856986979749287296106130249216493070092031175223962668095164209819914423236434461957357710927809064164024600276714705966927796928972368725384234257529640891216449916121431082868080702193222063538443561790073893533628033876956377340441605051095339853337714092548813672474928078532633128645588068885907477543292958743232626864862542271909511400285968666827581847755472058353838846063920536391519637051912029952867241799692442877063213314628542482897571692531808279973875488726064331678128963719869903476942387943108156073957159779158930560841218298065091432420217146030933772462104918480485210163578480579340547990061686304714239958140659749670622574290562211442329477823342718336032300530423538458164476772805428614303214786409636523779561589699232008560414842407812203990319944384032041547138103484100889547186850784368271731307253360338228844293119112752576054712807317120356293352789156481687993761008602637834262824316876737632403091250965659707102893167825188350673922627877182774815035663164357534567104544277785539753604720465190108825753324271064923255247655843956363119028235258334894249823775284602442536767274815669599704951770805139654467760290629207270806033915175860457012055209813721643835328359180361206517810971937858297020774718659020954209461216572179368353622363618027799622973138842057525442984574119849743736581243080186216521860856180121743392661955980882130035553372830711212717659079298408547155185981258129880058837489444438365260885107605573876547062886742440826264428678325153811900446521495352275838505797308393370714355443821545004450908752618855011708012927686195101177537160353233100718182177823357606233405754293525102161661563923531516437456736468990375259648229412248229471511007730814080022839204073904549782127271095843322360575784310330821231013367014457445229095141208704961121787741745136799748956904660996999560842130628518766144378711206294279881921326663173391398444021532019002710807863310833730759957141483535830305901302793182643641307046837680135080943836270628569399983508346764413244611121824644158097172358120980490096801079368588397664137886439800558542732140141057504360032346728413681772983192846269505014568047296036456745851688395806680788948370614206298115770887462571505014059697314440186479600157652587803573939007124934083332761107426562293242979958098007761778739630309918459662837382857550755234288717785359591791274333891069015710531539383393875098181093486750061185023457354230656541068464316984597365271264416247828123311858845428100455786534731111631486497732740069251194290516941290937255386895132832436172235091876627546531463078200643211573167402856712822089360074754666875304731288274422456435483254926541621104336431713628691214926266544488299356295379187154197130273048634105868959951848979385205996395844050522074586833465849331603423665006693486695546380346975256600518788662195067456501778897075724280669845625721178535272349262367858065028508878539933820297728093329839951915630626011743937211352731510332441318757266990423180218315973979525958673562450145851797974160355226354452408803035206227092783494981091252878961409359700024846811347367071964345807204027686920987831346221065240094625220784667367447401982706993634243452366411206940606687412670023288190952346313971803653965945526999999817139809981364373471776657763559050673474276026813931483476571061466624791097586250458027495531036802727249440687295858138696292509542955030951869965411085045765006377586749031915598942257386827505008748308838556665296909415068174072976493053732226194105164907838455926171346568091946190840461625568994635613753220221781451718955131390322767176842632656958937062458073800851089955994738666177871400471444132517891408025356009073113963854242088445976874043251392801739881827474195219761414270163405958315030505625326471073731380569583343201032022651752600269798972242177092593626991934825819164747767109144823411700128125191268501775577410746184246433219236380414866197764280495612594707363888529129691823948020480777817919808923522458935607995887801300526855059032879058955687136750839464323962755092581795221299739785203901831197602009130826431070508440689249003341274185308375430632775722848753962630879272669482169999469676618024159961298281572103642781312188195109699010171216302435115415338738666380287687180845467780573470873413558766795040122318281402420517721282211758440522281586010793881684076574605624059137131113067782394694757713921801366840694670927717346486483116949919335110400180203464201657483685433043306362413220303782298372754211666438784078549322705949904693488429349269804179079687757264809916305402292997232718604791538569964559899616658683343569031197596585063604422280027494410662056214792672257950819134634698025534888384860819771874623789732638510342361751501316581433901653007641946744461858198334227842737806132530361057610474475237491529695679913544412924718867597299856587246991703476745460937035277978843573580778599041997202379550987872399642751384531316755866989283862522087767198568873800323955293113163033785125625568009780364490820480416389929126187687654146648466324448754291607499476406964767112495206416763135403383519310498694156539454481643392040233001409852822490057447313004281205269887513531385693590186163228208460818304785066304922821374904150925275849216402776926462530448776686429332670016362562173957322110111134592798758701445814354701071062854520432962531372558790298872787174037932565440698391134341059875208162246870252314395186395209482846882244289977423584445574674447050174172407863834801482668181881786297500435568030512121172207130602849967011904117257785681395294306969184642666594704082040156607417223501481972498779442469756370876601389917567844588626651514565856351278967617411399990494325502938497421736050577616173139596968204212224323735138047672583267147464015767477513959453027407958820051426347706028481933959899255051344280213758259704279579910884756983618172254054192174097690575012756828153877265305138004172957747679198665032056214936587306283246971052013719362116650050533987911567635412310896620691862134292737446670878480662393774267415468497953267362621867074616437088181561974957343094244174168357323748770334265379137404897048616698410548392310982168546821549151796043967401293560124458183654238342340326866402029827342093169992898770272442392532119408501980465034099634006738368275387626544742208110287858007980225071074380272296308297940397041868212400865337216984064128823036956573278673108013816325989215518477839154885572059978141769713765833066710546772751413632059337585638713374880494166856372629333100302878769859627349028893751498631925363262625953019142170936488596837998102613675815582424379870143242402047661575240064414633398642471555558290462363375828423444759380800807170452814925089679332628694024911149054443215704211854937015356074847815883854796813972284985730265906147246375834484567189654952197086762955819078589464133162517991019091933964379001022938158841968910504985168219712245611648599714718678597590925417880241755678380649428554981237873305897780514080732043324652591150032377838570953585493507780478711535451602570488467851522277780747363933449659473217717348181558862451836657710767366437154485944446565661244118784987753301183122153512707802990082168918648485780335365491282971319125157656995786580894816463644025713810777381773603847706268753309213245771808858805399052063052823926216404166061562107327237007860553394712364430357116293520650543871714482657443204259275806301487856455045917020445336467009460630068788749671202334968142944975410300039034440202860746893206543663850260952953200442099994898256565684097536038134299612858325135967332253853609001489048780516009149581134303945692588107614993087517810050412816276339714878521216749897006093083263459931536117274812933630768717332551242703557676320446426907626833317550315368714264652514187856595838023878169372643079699024404835248232988745265371251733352100065711720452861152005122345563258188737108931769148494276499559182739617592821889853124713152574240403916871204268030598214629188074590090469116199069954607611021655693717089849829488711225229745591175652798822219808945343361477326110423345978864584970108210020231031940482113183665390799868922223389434690245606465839202532489836494660782300647721445707396312634591774251354426129702328376761112222135864020003958923491786334743497273183267377000172073687191857582955642894695403339730355584447057138409776346008883059424398742991047600366727294679899140576539108083127489364965426830807980978168109195265263131348637270051914443733179703498708495999881910850687811897288792203856416506968153030612133300130693146153793540244311507778625698008870847961817046478384058504498353862353538762042451789127628992239251039370719016082841680053090192339383512152699092262321369736359691366782474691841867931421127522364029867823947367891059456835824210047449527126897610679093774532465957149217906690333076899273163612366815719190034597355028303489873414032847458034445611893734468616968427585995867172559618944085726705587127175630209028656924714596638873313926829790123026963091248334396685245948503075754871176388835780232494217348194604261123074740214218242692415362525140508642419505748516062026183408132508318393117381718245871974066682542345028391774888695319033727911359571745130433381165632266006957958128369859555961272888046018287139478998758638397033564948853900414108478237368650451583175628453387641125369137649203745118025951556135508899157508473061839134649036951202629822033638786267486396938833970208401963034670927245884580649081384515708054853409351811457784595472378366244549829409018763718818094152023558063128402175398440544551021105846076196596537354750533040123020429094473858665910757370585522627057418237547936997118437662774600389112710484136261046508304218341841043379053781473830479510970925138717296897676053710046977877796324790767053996079636590065386264560511809831246448687201585609350738667483961089064598386166282556313676201107328299585980167111174777706212220839389191423222341125050623451783514632459463643351851979846899905816894874714110583437315393422659655595877016848183370175261125406778300074168048563123617923633022431213244388406472049646339326976025834878173740647267384798488266655504125479646509209048962513329898519433694717876042542220186782660074267934353387493903803840988415715965722752819274691838403413149784993593940829847893014350257720222596196716704034055588212487213125779695896507210392825945122136939605006055954308923072069139478447485065438150754018739113208634507981527367904076849050980000172174077165229803711814101745985658892428901038553074651898901995648412567111294324009680371050173622087074658619832413717567432360402309943439153641090631676452540351367606424941879709311094785888492541329220506767608401854510010414203662373212242007941949644912010954028499752770271216222898149788177358289564093725286987462758395471018792380180400767467268946835472132876304585988747664467307721708328146043805108015169160387338733028800066846576432578606601223716184208773532445562037593386245212856584469935201720538843869586738869271042598213784687335386925245586012967354429487910457111282469042179215294994507622913037242832592714298048179082201061000095845704039582253264321510389898801272335865813095705319970745621948181766267923144003820448744539743433115248208966140038166556236092109237780582668207344486552913421240700111265207941870822986712984074354574753823762519999019512313312391900579395252627610126960885571854216355286401161368038988415290583322525238992096290057909462901649044534329600410936348998662971888798009061417566097752292521921537709352984287715915328169945669843830522410681835762612362226956267874174036018676879878009814424361811996796427347914906826983303567200230170258769103053772320263102566943254507895055924185864137942306838335549213373828173260437500826749588279766093877869335949427664999062622880938819407803783908030984995559045237596138867788638561320009945782192078635870631141722893132628659135604331048386048986726941124341993778258883198295469678882177382198939124264214450502850011995453467454487306766836344851154147711510911672829757232155731167258981378990033940170481831275062256613745247864084518042115971935510068213892723062203305181181413391009031044692583082565427905690657838702501327900359643439693708996417068114273553973249940849587661218223265907086601684213655437950332587652839481290516397314359173584223910488478725811482806217958023986649284487187131259876404935386265678997249270205791053253160853011862549392059801276557302669603193617594715743395535020572704484708497041536897595825268620927710905173894016858615406045903237385097126247359651182593773273910241306969133708545971837447457763828936627943229269951115913016240648910027094605027112075355249269328524890234913046548028589217391962989870180515803067624688209302027020344495600526569082704029817336965616005435443913802136106567159582218071868789555080720826085203090772776265025638542024520451097024903896268547636764835366284831421947971943466796406730575241023727317477926664323640477194769670995740834101769924263712095695366354533264378249598777268197551900828595471103231877248206008895758568170156521631692361886201903822996121555443151255881682447904204504620208725703125450048921879887155577921933040289281068857172853235610701357389629390016334097822846828131250184584629575849760128458501080310426966183758417868644970277749313402140054989358832760898666892526766616674043312821040895053187399482291827677983823867178202619864490969687181951588255685482590154522293207449129816250027747536860860909915593781135936206231802226045172276771145651316886893399836265823712639313076077154922223644372333347502286298474844178921354211997605302575205826231692868091804648415442980528829704652803376606559484334037798026684692624323438790776488315667419084588774001110229218960539400955545667283682179994349192524790396037312924220554213447319364318250845341451647434309072881343057283132006143455563707929340994982034044309660463968205487828596049427614418805311617091757271209715669533851895221813402119020461430063122413603626734581741679856497592522628551702229947757421969705594070976061131261378015458232182120407709164015805663651909274599706551428857063637332803947254123111424577601240788116288005728740875911959086730393147423000698345888541417593700300640511999360116321491327970812293361084726025660171939737872108216594753820530406566182133646354006619551831783258246522699304321533115508387516308501750479507695180509814471380905581541487628467417307655711701348228448690416047539421600758756645714973858751554429099491578087069136089344062878232044030401606849162632858779837994419748514461146793410253292320234930751834546686811767817575171751900014231621845300246468212086880919188784843929793167182378768169261103430596693182463957210316871675254157383025438803677696982210636977278060949365791336744615407995463733421488328646976185519747859536583294509106235414027819063755892482199107387997460124651023643586637038437055228852156785351252321507951194374875870411024512965765185457115337255215112047177145929617006236393966954659655271517582970951347651689187991391823710873493645577294462358625031052872117597873208252159307346179717139993713863470054186563173284596205915463822995020832182237549640321553151397296801518070133827136581524289016934992689831095019067868241898073249270613122425770206315187515815196481045184669233699003227436967506843972976008641382933562380703098479192717376840932665900381225952251345802722652005047368799107123570591221777496684029437042950520310124580632738011996441731052100703490697554407082867990200363114498622343805103195414039115780766985777398425914441741368299751165133000881269812320098098227964313386556231253204852078677574779495035125287420410136545431024499291198433149834278811257719871715998605894279629140813576008134585642871808569854296965894417349217097148610276108691296175885691372503233393397103303718755913044708802863257266323970576562546091536596430620058761667047701450635304278456774368307991323899952210063680580850753264843994987644703406994088886533113730391792847925906548711605890034450963618078218520429468567641495587565353287111891918429851968588015199358044943932819085016298645037758561504743489400351136925130280357687585729626535067157804318561658167200193686121596346806368764379077631468954979093587061058122492855331701794711431817347103256219142762874639170857461035037364696619401312876152992378777133663818911026495061818475122655201436193778092633749781109481454393556199072532854147913284661539828784503907035472852077172847498921884565602092206010101293742873281639892930455417113455304504403313962022639613893447344398065206896575953190776271393407141260353841144689188062737900937924668849026748407238362984610192958039483726026461990516556161209947560315279694963701960414935477673377906881032350192115331082559962776901456735054843726858953895807388702714278068617895968126241341519705152921495737526281975302114789606641769236332154364004406446642170864687117979516216843349252808953385822986279663053461671097874401864404669668562785311262774637800987642936823095082977409595010223371472234183211052648875342571192087915950321516137211834196314787205658008608174928524164177296597209808365117081250182082963130020598935287496315217936534742672647099798245205738543639004421309027484046526579557639624860233830588778177999560612693136277696358549581229640514069376901182344908212836025627931420633150868724179088499332020047908048891109866834003070432292833651008510044166792496139441403016638296867890481484554748235476498216527196736718493413191010008544949172839316949590445544597261953682821515971889065680941391805633586029966439593162149419940491690665448704474404139628848582555852188254686304889623735053544810479625829502231137833637956139269966804229837453396265962770590242307660300080133411628071420917593807714063609172555106865022804282263179542512791956776844595707516046468019722203591596477534196383709947488967873373190774462636133080807500255712980754985297546094298445946997203611568509310700144450788071581585320559539700176360333261017336854016089645302207694374385427706236031446466061411984457216350915558158891796686645317613280221243663098289472011713849480857336933215208177522501179303585818706488336110691048182687884731215583186230140872858892872523386710408944408810981815199403867743390652005368346185223375139406379769002123415861706031504524594101739053261418401510385600166500644978107258273202384539147979395331250011893920221237708078944353554192509117013450414046206181040222309560553887896207580988348054719733012662144157676582911090570723271078621402189201676505235462313590356178009687363201019702009457448688184532352793290923419146749156279977359672070322662380983893837008655143245691234982313459582301772160290508768091423360486678368370860353067717701604443868258382814117108799576210824800909391247936636098432842114992283940627268629848528467432203957383539543911481035870138231229863774121627821305991031553821761658497193909852755028728611697959713388294197159309156804122961816876835148423897706375664613301106864044846094706367974606967152295435269571259610031254878278596625981025537989761228422772349913460408495032578233323937614420738210023879337615987946512574588500629062017944357299729894348688557094572809533253165709329324628337701635759483924869322067778015301721714055605386876657281258085537711824975882850031682750419796863304347091305761771765431222944898068685400417787562047628342261337752636350480951112381797306057615478159583887962147887283068655337124048452040581774710639592978833662382231356491634555243703740562297356299869986784160431327633787432497022799078455978207359074106588614967361247623722647749709432120276515420981777620217539751962617181112128840307562038561666542451952274070203921925153134330511588351677260154115536190515737151942749838867679667346720547402026021043395630163802354645208221163343239181889880847434952331546443276301682915548398791100823586210979442449378650492868509990660657446522132457070793123483423912366460728774475662025144785444582810083882876480044289671204531365350335592412060538094171490347108781944735228277438954640094507221092922863543108461243176162032477345156105981389662949095077796096537256482326270601832568942183561667459322087070394284541936672300788939953758201604942818392881676487603253344968949143731728792327142823085450888915837341894115109632990012367677236959913386663529649314945655979618330802641530113202156654193533475602526097935015085843104490973088161592716459874418205699166780828077597811595037627521342197041600562248503762844735076379861777676093482863789999551294581436530813255611765079505496243562107424070467863485396370177010713568843742288894011198127977474738297042002321295681491534237826419518785347825002805883451035279556357607673179071981661272643935486678087537302316792247691749635458586408121396238883080579200095886876281039784015139444439106899030736062343883004511690699020421771975456594854277511010021285170007053335275025330989990832604539789219306331924798709032649300797781443676855009693575937048975464713583873329125020309571242568544358825982474254499935732277865204261279938908979977414387828815144619732438937649273292410889626123227617142631652730032426569833430761052345652225075682562556797715603805155181683954172536748315970846714677364557776179765783339551410940895438809612062420805169390142666628830800432306420441284048192018696943524219116526501082323065602237927481471766859166676060144378212559780591447990475699591125478006572921328816746364884063038667774666620400554444142874881189183888235157872011707660234857624520117219187696631632985531580690110656711624573238888307140605281893846904135015553474351053887109601404823074938326276317600470766464154731566917833954755781441897918106880878950121528054485311373652179524057772792117631336413257194873260697847272430483805158521753516604952087514457169339848561354739891725659414132780627628190206567861377283928195857490824629104037189370366521703693624635482787261096952659003740337022261282810331910119826363424215115168683905144913912581809685843999196048177507432952348391553685694926591559065807205423400929811090861894907770477899845617397956377281017536381188192351394856851631047199466721681995957426255980634394556029645213098328032117095441737980620105753578101616533008960298261236408168583106643662586364190399897382785376883507151690291639808629411725625248704422036206556970034917103646849883777755083357311940773366736575324393244640160433420122585456451037943634155746757018735583489361814222163017094998008745536326532256701124453231563551809991365342783778591793263439919323223625262857856454589189008612378249522363419401673317925486243978542821693579568174042315126687903236966041630685135738688425828979046428696581138507299519482978899758744468295192079418002936137028754842029010879934094798632871462146518765807629044436190790368702585732156841403557384888030913844855024508487967495369025487689589288208576460442811484622841245726596024593245870447730711310248283990759628590835874354697240261863310874660917173237921340730509036355925472773203031171565528262970493179486705604168618574691541184424041585267288630520529480431272395449497413545793564919777421902040131145806225197392159262420322993545961129246675931247710835184558810260870379642426926519760049818820809907465264847313842469654646384147724994878519370036267286141761225925306857120832361839031973841633165619592247078825870111991937323791984582660261035169693172332172616763295882598722469224703193349968751205386447838615750261438481021799082414314431934520403287882406542698995083590903679588776498838797628282248561213003979110925248098584951080680697816803531076190738910017493628066301644829384361333976442033856942845492737401183344876907852390778127067698505857470897001650884710742827679547174613598807684842192324424384720292808551886002903845591704610439204067883785345976705887064756736054539013163926839349845280550328805232400072681186401157619653391316303447535755329659986705570747756782938970933123629674832485666599725168202851588107812091542591610688649203095015161129414806125347240452449872186982929502945367387581214938214890196315864689770240422862233775280884881919552727996560451307191413474549539463814020902733775475705636299584615758721936141208353831424527362536386305782154708589680343839265751298548388264960853149141246355460420920399374983142240574511567796856391901672067810680020442745407182462989787009954990865813799822692797629149965164279580199231969497667224463948068393234428608918072837639439243531199498477312915286382616580208419692777868898544378455914950733939641691916981456234194497547368139818986113835712035285767288923855421671911810920864284521550142613306953326303527266023001882393175664895583879040770529847458142996597017369168613582011410637976470851964642520726932078004197252166371979550199627362865850017817694390526324485146589304394926061533519759536332646082589258167247431456276812434148246379936866554549295217137873218300700998439248485115335255161682902555086473606566872432757302874043196951952694646094490349627706692010542015197794352310222260549625618976609792168351363618851681696229738506261143915168921920977410467744992309834598853104205448601468660545988498399146300174075108840351743826724971658339044258379424774959193865033949322580479153290391342487408929623051705891524263644685236377680697578565176304007355256082746389737342919677474128856495483220588298760867298505396403485544759731247082670912209600619862860228207531695517359269846452912472109439322385371643185148521346223737569922960559858706854679654400854557209885939351461530956634605740054616715061494973723729577611907544882726265300910137311362695511589082312840562349246685588790731820776614602150960405803649342880302074001322990867042678448801946587723401818745196602019873960676305962905187515460594825944793695322271543503042143414332918393292800035464923827253394399040278870782855947887228675626393430061542711420000566400028122956246902723093681966532732311038158739937670397285142170054705100362351077149643245951146198135324434307337306013044302507883652525510692776097872857034653818340942302416225537174197154879081469093275049411686170658255438802441454480807861765297085345940155341608250863409988648638145293601710055076726309721004129728373529952844110767810762451861296164581596645312285555601976892282923154822148830968132408163108004041546209320035263670476848868461755769407426287482795707213865825429076167125561330051845754417002165802091272779453635985403568905975984119552510701570488279530660121790565125915253033781523182310763874238787879542931000793653585576919571842705494322237010074617064940105123761094984386539488298546645012949675887696804107563471067292954626449307494890657005467656656217446803869818435951597989998274044449932479304285983730558257430149443841878799314270256638930859686733131364910561738728026822475924112474120910405579976786343629602667178927551319889662611855228494216628710228155848153022161120540718758000674099889278539297861967159320523348829189950985077885301551214494097921525191759530771597485163035539903940913411096553402868937510251548354492911807243657528861056519815499890802632389567028078545786876189530541347006312936496107656046094519143041026920334456188868117447311037629198979841693949431143609171521700756061860056702902430704292133116137345369786625111532820744912257845600833825350824183706012679318561302747116117455662678958151079544366683893471386700638442684285823587358082269259672386190241391536724797573727239932182769649310238938148440083746436889840636472726644899388459348075048791215467932672462992854328791367424079898499076835106352421979993306650221676528815627419563794460183259399753834556686055548508170276196314121053149213898570842038923425558807533736504760742421663569765176175766545395028186063557732123729418461726262310995519508301360292342062511123556694736404542371098743638265023350819332552989913810237863496748339967164651723868506375248435901865765049195306402577873361382695791347103452944009179036855603039844436971756471961582225872862339478277305816553866351157444852020344669027531864686503136490973411098807255395625127364580655571973445881422383756263319531701909614425190261520604594758863658243166552833758340109438222347897977056017634216427695430639212240547212387206195485491432003707987347983820883903435506272622065342029990368157886886521330575242045558689570736774143469644654237364844696031566449011611030707863070092063520920648552653432022498580247238867024123221302850532793339985620981220947750527702258561436504007907339854981892885742905678019345096345351779610453337288694032823335265940839079084915415854588122011423163389899615489611488214344679363019351225569813797505752425040176863269658838743875196344815974976727193045522038124288486261568640771096833112481974234516203662174237425866636212013407318044548357765774192160550880069273492221825940324613170107576695371081820391460278306727983903706086711096507379948616154791959567872750102033526128209781712927307622550670647875955362963719727681572478929765623149792626849043333331751801361750389753989258256650075974155474186509299335931446352661245454752032308289848591017828556476049016731461827560815359653121878210403433412857368823490581384097780130891618300091596743784666178090208341432228633295331719347300424219203177065980409280894513694830855638809781088826627171084306048719157038576906641895502248565394611139365854786966158965482186505025997963897229031595664985005484746280786554655894733290523870419132052616575188930902562758875480514856905056295062807430564228609168643026073377785885665532230954403884151062201784521706815372924028024947666026015387610437731284015783916487248758770464605078108000780547615831671895149394180086507458281759172098513660174491783357677325705712380606036637026152470172269819055138307144005408369867663306659687813583670813157834609845623881112984482949394791600296588330772430201573913215952988742027654777322532817766504694007747804087105010416220297542097909284095098559560453795426780070253903078484214208508014140716726277433004859080872536764735134375151405535241523092015576132097607775519519495773964173577987272424041333226682608072477389507684553577078052409212986627016759692845973799573751954228319690047835564574843380191665256565770922335721751656802086879553632561539499751162674896073743182070429153962407979865057477638374329988725815124980236732075069114830187889685348260769819732144906716356160113879777656849724869614513202363899710734549951545560307797401974594014088990575920360655950246894099987047219709575573278276976715368983781316822843597081125842590519123605195584232042403969049247216832558970034172767951239384652600634495311374922324972187352055947629326203849177998385855472266461340590391455080622284204469205604292902081313623596409852208691268860278651089594020239069706970293489741986603659808796380428552480809044486889642963209672233971228365027241643413643019980378736742259283532815112068857366299024673250479702233356455811450806721635567711148340279687390624490917569142911800127859255803104216286455277080480035384112441833551124591158677582129671927471163017386693275529727735660648777841586125589020108518975737945767019107930014574840579498608343124883373338077599870660854133368174707322624242537813989855127281433725878472996710991395039494182862300372685403205299373687795826001758417975128899118693973147915684051598258070621559214630893769692423697619306298349821011806422636478006043392536438779505625345599504014055571890960433803299200465390195377588911227730270147915306778932405419031192384268191297401431913790070815815612933499191450660034898479391228648607339688436811977225838044668716907517774824030657198785151409363287859706168590213833791441011980861195336472400545060391807027584100241134498142529506597216523691678278451088824912243119564755777081853802229227581659210160692950237705691005753742962382668237145047910927185133145389132977717800514764950025339467422340225864790811379842085972587185161717977118655095838366110892550902853369442170671567740941866871994320037486384320664783765251701959745778259201495226341716178497502946737918139129526784592085735692115677044472999782537794644482856421219302957742115291801140291861776085995244539579270101550183027646691857189751620268169876578754587342714267659477170770069506426281358721656407358429437581455187444245637278934233572773446369052487313373926880621856031851957370961598469596381195180482328512862668857588450999841443585633221099504307326789833560531974694307095070418167931298239600740598920470537852261298240908065002753832636740428411669945082972566352257723956466900636249400428178014887052695208689117695217218866818665877254058274716207194109053982126983638080369742074302894082685396907605114955416155675232892550513161978817822920950447464952485351407720530038840419242993618234692253841898304579679840644357378074204351342615620102693672425299682357151887049627866848234569279132576630001619113574545723444473266434024471576408425982367482498139841030251811601805442816370909967415130907254249842431971449025461047118467023917076723706455926213354833899042741752202943251761384261467420572965581635931259706658944645758640105369240426931221131881918360294222156493426043769896636207194911862593134661042902450752587637599577774973272608368031686466394959058894512125327537202561579397276457696025006959858619299761610915021465545228460872672638753406366511628738165585417818680499746327219886498695908701762487602980829417774039390076156057880865651152792595331196824570720879354132699550908523287294891373908383483206333783424160485843895081275887566203974155829643864187174332977161354996177807882176460587883223581043938287707460878620841508361962510459940916313668810917405367030095416750041239594169356388635000659703968025819140868732675699995390333917040715198110429645189725057608461112425702853795954931255721724394627713560198768051957536537285473532425572628714580005987785905498384162378652859873637044138357085189711299610558203826100390263636555740082467093301008123873260332358303690090423248237341153881694576076282369009070245095757925106437300341935853970535224492922077359585996983226224161891378251861114472807411175981412364811295864877235281706491835508452301199851431668006209234205490970274894617979940021881911938925736467354509121725804712781237641641077794591531147755439876663689849936937714659313055932964800288724810941463005253997077801838115400872005753457493735411575112727178789020003750059924124749478270484321957705211645605125503300365594918194529791843717641157421378151496073848652743641038884863978948230185038132062673097896455872481327419709405079927663084649985426473923138443919488939875805842579607780880683321902640139521708698928233392603165949620907328071934851566440324231269080077307447341485949431593099889005337274638968260207291593263171007944809336078358101989391643665405507972319085351253999636510702327884292490310607405114913580135091319742863861053587006433140538677906559245361812584963492399336142696347840740366630412071354188723217220462689091045476670445720677369579678220207198185874012738945776204311893312803818517715110341652469212827016823087874766348951924994740736899844756535706140023629052461182360722306329831895994818165166639806824926937275764094015731203407114370734242852802243920689303360027471166875109062168171400890561528147092513227386228140380265203933464611972207407048415772563329219224442256610519867801675863737357844628108727425309046993707511796980322515354260818206181146243411425288971781094693856323742438973985925839747239512820197360702978843662668883615739043836028461801887530083714152208133094958311106896046029421829607628023769803104579564069089652797050356536992605057552724878554038443606340416719267212987948557608124949726247145833211870994689905015404570247942539922482527634920619480834923519288033149608093649605548836618201577923019386972017233606103010226745498987292904373505147933932926612104401180387709791574372992953001588135627640518659747654818572995557297389719825703278416559436442370890337162356162458796646940436886861179157924077402346004615275167230042388543354102681542483633281978892989679486395640295170551502725351530352037744517162168895993717762837724051516741099570251593531293061323152796181886341571173297717337490906643056412198601618139993040473296669281980118863808819675925594573679188661662169545447615272243661527778439289382790012926248248559169172956336475511824351017066040858514148032068572118843601761544516079516040969631486141441719839425485892048887082655176946089112399836834526895596343343461191865018448082084757618961191343713745713662133579840640244641797846864369484582303873114317780090737002744853456056894158163881033867331163823675585371705855059369660928621996006457588643129187139702867498521424539888974717189475895655555783874889748029723842146134928482199604910064204763994383565389921422357253834146708401941434598104508241850779547910974207032004569924905402145772756162389861899616139621934533007524401941424401123197364063264848989946054155241880494838316823149275873968188944426176690484685209246042614555214953874940525967749558464503248138273722650753734930841830798027466719587742534872942182815281736638195772692485282494056418582893208638213374693767808558828793773330543343938169596163849236074875688264761119332577677852327100458225606959727368078205306737314169858666147751842923140936196499253870478206914216466558005629669152734837404010983068746304324449690097212116820034453413147962638468902284089666147629664305465609693529109433035876167552731461047231369475166199941220788216659200307348206374699630509170018790952278065952620807294738400296547987560252648717769623002511718962684407791397606932884388671280797674469048859090182690649248847490969448794647438962531972567898579651556243749321553326491418489405803144065475043640182116853206478510880297114987372411237900013870192841176208032347629720521249672312900773578749435737095707929372591493893223270673784586245435381779272669155198333199970837373941418744178618753978336274074991378169851383790203665791242865258639406206857360938675290778627928092145943065151077771158647839016395905515906843614200668017107622211599408319666397231027972458599053414704794286701611262623576145299955321310100743422968987773979339745777009430113575659639003244890803757427292981764296116517542718595033697775299220590130134995618244809878697862141349718145605477928914113189282041886297645291091284753070288871873689652942745939086124024920513232221252203394204378572319547536803590941917573582102653245941946776673565385768864739159909886725908185580649927629673387549379406539294186790628034566274667005019781782940612257443929392270781849110641597078164388564470355996347814536485479472188338510713425591325027066520216072644502294857505764313485372557958359071934230746144087651928612529625715713991220965921138447830236153614891525858731687019959483881598416623963372583120739965284250641148408183032482746011122291934441410457917796701224236258931145140050352729818076311730009468194973402636167617434105839637549923428044009830483243254995727360622592653200128366722314904936502464801441668761941592899992021338300826925189215533911283384715210620896110355724902720345378735799121702646673981556089417399227553032203856424451985716473082019801865970694170519428438175475015727386890337939610561354812622900656040341416604711066525630217789710284131509352681498152541470701527969087266406376565729407386185112397112936968457407614412349038957165838548043157335065838256889071759599327820785672774087303831213107568566861793479763170510169535686332373806215341674605423773162975595003381700004651202058635224258069530088992851534576904508230340482140679632282381761190124326262648815270778586807176522039657165901990679722176524485469904945683164943841655386485929913588095945498117382475779907475027800666716751546886528028750034777838176955532964650916635955284805202379095214412044974527828091309404215538780844534049419935847588191403148896491238669860733427741197519575356129096552625363619368837106957008064997870895553351549239521340545381408355123770946369641015062533747774619963880178611526825586001817587046863193706584006981151947203789243345507462474743118515418427775744672579630960336986785302031540674683232429908442335697086726011559773965412687580642143275789312864582914921616835662149204575064109768284843107541619922839691536037617020927767510664489092105405886931092371293771045824823977808734594491802611062598372998024042428361106761548264951159412937380802920583901885130232444848799986304916956851639530809073084482413537012622405419647051520208962820009119092802000670456863887955726697654546096857009614706524939503436969439054787228897025500377362816692773361368631427910527073238945912234004378019726572164457536655260614766033787670669791895376971560919703995403017777371423016032095900730314373447652476739188497910146075837808431888289981303597788787039144114047568027567222522389577345059333007779785074828774492018445439310374947616201704311050232704334947849211674043111966382324649687903104920654973457199431901306611222871695486700620155014763032315943169929589410468192009409328480334922971133002231464074909102903346863309282098910069681143185590925607961594451819447963112006990695924180342846431517964343489869152425163523855046522249747998371836353566248210880953065906428572422074072759172022928902119036162394844249958681782011879317344275767716999463293017479868631048361227882427616749326455453956435492366734493882394103778362370838790008509501462044299580112255340388835437937972031013346856691725466810208181653515848049619994670758281040541508005950744573550053837854820345507648433988552201683630098888448758919510160573076902232162659317760460725484931462168582428869700997093890239978782325237797559194678334572186694197499200499437692188537185268622636458356637159586459099996145931336197128447797064580224141433263001743993465262900043273315012645072110770447110615510924404337078959826916221427052960088802203629491062700445641139270326676069319638510015587598637791133356578165663107588342443420063741842641070562649371552553728989717600752269864398977673558258551849263002158491635346311550153310789751387622218751268770418372505799368031595349939549335677039053272148396448735262994213849023646428698721697357489076824748254175115023399230708289300069227921060130007122451544618665179810488001354195559268682851070872177535755637867388667204750506908569137248572497886528649075857023801968770849238946333895541414683186647762585944568665732097050265993099567071104565983839499353681361960922438773799726341649297766325426033512419075727637248649462241847127774761437443943344055405265112529107840161512098424498162551229723234325277432406408344551791962356748460542639495889197624952091879800172819171677340808989486278171065613470651573867160975851383873765179798971378052561438621163786400851438822449122173759010675860337874099182332370393428430029228871715608684599410709417667937337920334368696652719075033286937601598900350386873220059464191029525674797648290612968632154146560929469599445517256583129809790347827038608150642612872429972117419513312301914274624521271552728838340309552681503427707155540967351614917323717213187997190300853136074655004457254819652595965534389271373354488259664969729318586887325259431127753277254518722874990124091287455435404116654906876300558565459702419120952407802123104500847364462160517715090009790378813656281412225483326401526330174594238856022357589370473433739411781727519516352963443208349177098826155887221905958597104031496159106056150296424130322245466533318029821433906898529401209192690438273696294096691113967534369701355661235467720052868041625608712709981930756975182658521185529522842309104774971862968976038091722744870918937750014484560914041216438612587442555037781642600007797493835027182524146229629548220657663390133384164002632772001308482785113611281256829459537258687052827547450152571872021011465576616566766838378361335217171660865857308709888721230583974654087644322163313039439358025333120042591382110297835831617048359029196783671325598307532216829712013976767963136920651746271277473770295259600248128291810608009275061419698988158353156495068224358229167894967507831637851483408665311606576707602100837298312444450065456840252574744309531893815157632005864711434662344687935779183493183766555168513027652211137492441713268028534190390786376980308220750606282765228705704463889860326198207044027662196398970795774167966935203305647803648606012070728973442876945233145303766165991826934350313137695620961839882479736612061476909492708942078267375055581408623141983550321355515774503022858497032627466932932220301679307823652362327322349670615966129444312168744538338572468597466650542218628339052883397841955169576016710918904912915950875259973112644160982579739047973437526298615134835737071883161553021685816970820458749024421913815498373041526993024653750905988666334736951764141012967783176133290848550097961052290429648192996234190632206667670583192746324683761229580513771940973276837809376919563939590742288139634000530475274981086160497923919873478563233790671460929574155981449815857879416375845714608487814945603656794184762927082048545949955057909877300281889715575239881917125902081943008771227709972722400096218560645650547133264471135453536041164983592632713047082365661746664554128366506457223633002656784878616724619116420530751759017156879019157563534878747825976507933866591192949213199012259002600062487796002506781514527032615582101054842657661714025363759086333040649430122787892221069534343953260348723655735055404179377436518990927563472159454656136386864984570669554914525156962899162608895367322956433571914025317747902334196191775375564590773619136392929736150200458487089045704995190253786352674917085632423660910142105592640377695802728127467039745152138145891709990890867056362150022305473971255171922225486211464197406104070022079273372180744562703251569576240886384176108835541966728161026248415723491112801315499318589307228882392828881386917791471012130022008907723439731026294629628213291642988042512860138073535625584980644020388774321568026519558814920936125583452935784815837930723611289079614985614622474466503434399300965156147389067628036961236176351819205659333233029099460319704473711971657000561425808420053719539129169620216442102442670844613766454700569223928379521735457479345109362526502797340400675849711509988317487718795208647791537600022651608869900721554710990273116777319324037586508961022576889481321889754709514817399811753613539375201267180762372315872416945879290943188137113390435683236513188336688560123094894578178032490732039778488127969208418606644626657178525687571515667946198956977569681778730689058742708259152188212527749215427815213974554494619903784508748656079281682824150629062751014380743594019655423847505068007202037750020721812668246888003964982412548130644716004017525455535584049607344973593658775365072020468597164642383982804886509660401763251375744257134485295420503653553122222666579622286754727019271892373921200908122643029838914686886237653087514192112291822471404628969374376413375521725317546468247765574197952192690616111374622520767553947153352871263924394279060206357103226355123517085197359160980573975835207329915006976949382243068286795170573906721041546565481076321730725259111800180437286266849206273792116626994635699747286090712376747241056014577469099753856133578887148028259570339337789663304360319011512813933309450647807063261771019200201842218332268640851375371966290674877584138160842687892466871072117112626614709329266091306148417288931818090685171405404816156969785047449923324469117952671496279452420988586810991731267948587135455000671887336480997155038167541208134118280475422177226156074172827026015675333711690740608732893063921372383046478512865088515438662518174910693487513792045373770874479248687381889451864374784660523210067063047203024696551978678618831096442136566787224341301834748485129979015245013856362662529558249464659294516466841631244823284529118052039461390513022141652736779068810863176534059105288773700586283538572518519816678397657173673469385673968761241235911288884939783011655281386471905534059327130278976554440407966809669104898514135012523109636219028640731883093161321801438642835417657655669989235962437914015098899670499171671538271485577617273696372354361094508240556380406483982760455763437988067227222864535018720803596617182245742427149695148994268164767221791003159370570294116595857784465602952371141829891254555378330511956117010779627057811084331550406455963830470980031456367114063441191509621526015509538343416887890263560617869158999077750041627164281734196435720153265230007459174574617582244859313962102953846915704176307967875311386021829878065064737467143605710797787983984814656273855754267284951708977152918348451813854075316987927661995445266973472121357438086316837128227333100253224053102620031239578616149355502490205155503661654820658386610602963086637289612662211181919384206045448694030456400874173566346439718645730038876572419656713435327917518882073655966396354932163319813608222625978511057426082649397425640241869266797667610619227020477627215597151903026998328468123893953684557419804874686845299978401627524944566689486671699890019576762306736017642627258533383122874166544170560987401714777661494610345318680290889283895150443632513592496811233408942757932037494252723655548826565476883761361925329346041640961817369642663062648299231631027179019058844802807066735400672134686001289571619725309818572018619251257495043133671807156017647886138404811898809487119038434324886865747846030412459303788333554569058192836846741654683562080776350308667075446415600610104773819423557647853209241103457012248239366867173694935409204295713438186262059407927967174575476107467406593888616404213467497141272520788032266483099351628248661159728618450952974210931097283205928268179445539536244944245824416707327516363245751968270302128032097351897385327163266645108228923148598886362936388183281912127747066381154551495551442277219875098984310181802789125872228479293853298460544145884414487452506870467993772816417678079464155720591639360757099637533478180953998369686740821321805926690702003401893428056107027665985941499653761623250809981556046110108056781956725402595422512236209544127162162557504947276891357952012860662277595918270827551871786604266420526168056417912351706462056053431666765745840625848594677229216956999031296814959323906240149179996682821724041070293855071186881915400338070856993525913089798777521494432474750145092870115007909326147531481807260619899466104480784896270854913917924891998815340809678097740839165856216701638894725510859179640553675469188263964187464646088809036516226036034146372079952250310126680293988098619283242321336557456372905918452194626848936082082126466018314339940583425547146036281543727586948464051605013937432388335556601523908479925385846377037738031833374224572930594919143912451783001374994347450413760851523256797411470119633274508821642209936071134850074355226253810927837312497388596674732975614513746881913325541479657164552234754620243317618767809416566716810850873455288945252918657275252707611021340451893434834749695171440564710678821815624077533105381311707285367118828200136748267320712385502687881917660139065677798058329515351217349306506685168638862633505745702748270699154807183168358075121510561704260157347197384194546107554928929598450781926067119319813079307460224709640645372271010230752045994455848418815326295867796014378168669136757173318530992062234754240386374683882743829359447310926063642116769999292245491591247938932652268769761223553132045095080344322862173604214346850269691134727160061985442854879140802754955005163605836211138326833276867977090689545446130687038487996680047182666148037843783799027562181851115564717262926588077648357145039236606937318877458565347167453007920089187759644793178916337708750132993796803090334817359429542766080639526444018172728183480165939597819822759220384987268442299419418166869667160922820182198983478460751677627172362263960414673619533594675576717590159061786667624026470275117132651104794312810542262595952940958000278273683902139060071654470767928439508420630984297236347003670157804703782678985420561472362513241134082802606012019859467769417923362855566212047920031299359803877948661646343001711139967183802643044677082547843946673709459236584954836650465994403687926695661204184532171944553719848035269641288997522879168252658277640844329028608516218001195282188046177716189621649456364052130075990609965192736328589631774813768508004711373337882715541549437759672057749857285024429586060178093560074590682519910141762223958692238045642475152461746811917237991506508364114431438940251227560314516815319314285865036446792145238037027266386291790776558324142747854102829786070186043565206092442667210028523013277215088338474993858262559737312178625319040325137634214168044466565162389508871733821442281518201200597801018591743832496106723839549858325825863255730796052845216802777476051844024591342817033841703955912255721039242776021849001140866000023594438040018462316417412920856485231026455322828847450517698255194411254325945807102767287084712396476845491201131469246317130486894182386260536814545635011477486664407534269846139378492921667210197921581192823766960628986764289983587722853386425335408950207517061078666063574367957460063305668210694233853331244432363419736065091912067397332075037467558651496225384219407871960684670920698913641939185382355604671684972393847342742989793875304134074563444775116203339696623547714102750070375913411323426378878407400964864166754647791939152007397565462595891581153028750656208170333764772843620929172405016553978236188398979783153116835425999101894875792503116305922617730012456891090596251206166006208562095246571930739108805208282846368558792316116259924684497199364167448084178633921013704356526687659425367262107748141486832728491861913952325338691887719656097268757116990112952866873351180267447911077229723654704177028891859357567145010776656701458703243347256936005354335549454734735767338871908263878429712593057505110350870285927449543233509702109060488033236598156809644498569762487306351283308276087192285964112099734795656070331521521748261174209255546801411353496259081785325383919903913571166523089951755617625292406411711555987646585107295915389882531578364613084764833834362642609892287340407772682905198604889027484489063781284271848464552433359642370384493721399672941719254832624273164691009272398214513710553253484081190005887918849166203469818036372995302030452536641367740721938958775970447710214479281624036218675169302801568673168631303207608570631128452288821230863311687617623241523274017685659945543923044050959236186489445458260637766325317007958502058237578928157296198176002907911835332125073466018864163884543443319116098708736392875509477571953358822306537929490285797693891010661137298271584846348493539299677690255529537036505491241548314755731212540457698366565924876930239394731002938917956032185969943569465915620837413517926124116704472260838172040645848716060215096440563526935186473095187706815561383035041951393462241852049589972354801536119938180486222131803753039173988978063883898785175686187370843027442718942019841924553285864512686428282375538096177094325844412771362847246824142340670538346191618315416377330647867918095882662778114042334782640012670503143969454091215493644876078006296554444411530110286487678919825942943613689616131613613634632932518922091736423019906212406781899401672582652685478173911845374150444584262925521655219007096160917859268356208931663927635012460104715340576877165431921994020937474141129350282773703169849125604302454948329431402987204705060895500211751565482910933851223358725623940781220714138758267006821048332964681011588366953719078740255240736421882578696321428672307614483323690096775460193525271448336669946167281523134513156490069295970892275413629764876633369048374399870819241800574270376195824028278137558384596040603524871337981728147085455699539718142958640023385650628585714018772532178715624469971273447238054062216034670522076984799260556766050664377472828984246336349587606380019530740576888211717268805412460807169162763940283876790907846490676559414851891333795694282384578669347780648893302834732709522823863667621072476359668067011063702744999368897143920018127238583612393307042346147005125517066480365545678454700376223566916426864817932076730383517433955875325106656645023013273987387766043649526876555739676283259001945981057218942056228618374927246040366733256642352380506139033166856405360896692677148640539415169018840301631955259035599835945457172056711918561411658247239378064739416483601600510476828594596017237108500005584530231386781971727660678578005499643762139941743539053060777926285765870879915642017380745967336063956718451404223166510416738957050488121065860447214828853348624539168531377166760635788918840745410718547920444922319966895711421773678030525025478957678812752207352094693095920946099264096005498902225227124760392147570164415743681039513396045085159889590987057266792106255965354010674372863019878749505117066363248232313992134469319298507551692196665696293127239618621619812215260390574455094102193094948904709622563907102405877998937119225063455648917771631931814975055230377746183426666798785616038077578943598397445667435645331303995048877951017197535679391290389209604460308028426337686269901545266551256733853136137415476362679426292109487747209918631662263354766546733269525397486696392723640128914328267226059299833140560586446206425225215763807308985970177497275282424426579960895960632670498880165033586295524232378361631500910797803830338749860728339240247105987753721549516461575108148582674398624272806230565727752947454338259351130990204844983712531230789104745594344494666986061870009879130408044102962995937933244164809596736860162908457269541110723396246106744964991409342807334134210286089872102506404490729041679019881842371876485113975380979582057907384298321652325612590589199389276333978307558967764310434367181848170487616916855632948881832164821078429444845103891745418356937371806962556042643746389746212111572251730653181025299032641604124881524690758383427165891865971104119170475258454854177248138538828419211675559984720496326014215996235831777252096793422089198578804553573822307495834178054913696311914896587350909649535678802871897749883845081589684272241779585033956555355984434247643845449813111656137362739248578034128566801057289740968630915378864181079274741612077253741459470315697742637752903579840659820369685844859717330292533689435188063978755432257725138487446302430150867906051875453776918693182333880271960538342753560949544675498204038405834969372406281990410758807781364841724862088683158212471593067088245002936335690355887060624395993790057124421455132931967582412013126951583646022638002899869048425749187138206829282002661479320557321629197946282040678207717107336820527246275326006308198364188247807528732795963895379187209995800632086117588937702515639954015155413429157276981567728262087367385264656760660415139238782610231177205751276094917287737427746345009031471999271950252417392773046713182647284000215785701987596278363112987914667864375830247244488632917680937991100867364372523121030368606291941211361978469564199922923701675005621397158866137807017101620205828536871489121565185679651222257495246996805515405679817848955866065786840581499650411102503851947595178664740536844755471284401518987602668730552596327997770371685176212071508397122860564007273116196136571832300431467873045784553645424981712282912609340641287494426837054518373532398593449044433415802545006112431809742320018028185694874597155502505655372168373179161960606821194973993284553628648708813965357190245345168055086446446711755000630696406142286044171001368826565501387705700597949546521749495115941488676488401926119631431672133749161176351089064379535835979024027182942333231239197582248064033012168723331845469633322961132752463106287890455179513352327103221899451190221728011398935882582648431476371602203436103432374792333702158147267184647450765853506331936004041395090713563126629689950709151526615339310650693941814920736525001978071735289997636170288102569178798535973692279816094988861969363029863023337640735136031414455510788395677183614755145778541648314102208508724087677273792404416707299855495062477119005677625700897771847691938239890775708791041420127356931384995617943475112576233264918611354435619489968127632344231568110617471841649683878871063231036392931962216839296611174628944599316315349290968317174943106737224584991590105568670965537690360179094502804825011346830853585013716202448189228869854194582237176279125552019830244030905244085353074035484615448770754069681168349767319790458276273492505998696704827909539662856413276534170947580020548226520199070108756786884565014704199555083712691228525212137279090932349590054035343862910542261682849917308538136086274525152380850237119762637290748772692716559813105136685014662116332235023036238171589413401089626833982323206391496776976021158319423807068047836515944492345543432163816292583210203949043135629612844279917536535535462667517273462145769953229824454623821690137412318129027884835263754814007319758115753768241066351789993004598169093719432570199214890020929869251532187722115862574582630571167120100130538885018558682202488780593531617946225914304948676501268370168930555475697192149056962467553014397541639563110720649741298720743234124746469720150672609743368498835449126345808194175664219714956124391587655564452834135845597622837435283488744479404478530097851483029910602398549388176761726942055796254338142099276065916876890283028298290607565359187011061272800022971011142726382650954093743641472673817181444361848881022601900979500742139684393023431156191470523138982718819144459085329216312871473248793468836083078074255474312282980358880930407445080267598763163765180398455356088872750300882617227958825073941708534656607684087025803282720717466311792903638161526546692286093588602860544116904631224449914570314696393132716515020554000279610166851783201635377127182195369238374082594401516574590744977316946092059116872891677936696219310872494820062722736849892265596336191541209147775246617013146182089928799768811483714157697254177597946086825471714426656268016741715668872749413677394558575751499163174560725869407517135514565052210046146623572844443390515019721668410274559630465041680079693948795130093900719639466513369827860105449935535267826458277326182604863759811155041423492077653267843279571860407449145758018086359894497605299517244072534213505687613050738874036337493209815261430528401971338848776407258597115490966254263028737552956700174022029327096005250248263181226479657506744142218344082289567565058126696684264380865280456659420804948173547377347775845240286574051465652387639791483632687339093715061102465390182304576249711103107732883477342242660220832140853248792577510351418295979075998321446355678779499495340702399854402865822389623949266014127288543203380301010751491131598510477804728088870681139394719729961572089753587854976238130760640817532404546871457904629398232631551527588070645772114643008547988117381811621272812372807193748517889176243173790637466782536926900588388418879377395173196972504300892677915912075006252072299842133736698388821740949306518934562939155822938885623289800210822886573599294496051312760078372111272090513758884079210289981172606080173680527840465728997017752913012347158035972841726791423577536755728815789865633743763146030491007228778379353040217772829561193060478654080082530585674012955392023218419876251604923015600651916180042488003990716137743186929378316659515938585141171282832078087809260344144317469194419329845772575104066509223867637908065198232180003123947795938018249454104368567806127443582171668629975167254986764343327018694188133215442241895868577010211795660039037227065609160573857691816979263379936879998517128635146213331420607162792391867079695478261634247416829101230148115744496170484140617349676131153886969871287335357103359363251673990167912766065669982054559971844979071036835983324804463729153175899344079107785420990232284773073411479859011874901419737512190029406647998916042482082888992413631914785148148201092116509895445265260086630674880036853076888899149087686698377709668507293091295423577323963809373241996481191184332824429005792335326642323375276109604914013521151127148785951214681813514136377378784262113044160576723928998539663195574030694232308513062519485215496180702671609835966889154085046890346117588276562701122564288806487893338421708291121846425250493714609925713695152561556685009961099294197533340453485821746163827769336841072296191098281999122510502592473988684691606634943160100749433657372722692819450313790030623111585205095123877862800288790695879915357781823536948810307045678966674851997368578181136678460593461582447891055492597887579680388453396285268139056975906262823885521764574597201404849113230440616196707835446169491314051986125590219176240034662847332329427249759360466131666749494263598756854101007504754589983130196169222967460849284169904745439458621498695743687952534581433116759303585487692945149463155897392966502988895860939236194821982109372469033858037895152007506775401889264163549445003818692562109962463139537345275889174958297391193396719895586901924540691610012318277645823274230475688448008850184851478263947662266093481549143910163785404519399709570325453421836828257817600972261416495125216514732158585112451430047123337442047993550972447296815168314070891114665834217539559587793547936099626522482341129940272513393039888064414721790775441107019318017065183697849525949570271932348563757557360841040555280983792194195066826967610111263572949290657313081419730134075787043275335684162347312328536758491615175481903033290077379899092492649012438892405960608971298870951295000287255227217703203831802099487324181523208857957655894866257291014270230183945551243980049598951621789949519493654850948988846340356914628013102538428246020985908052049403591997883406627277234377523618959659380278214576770093096443385090399871026356937236307928211638993521590379612005420230861729146204205561408862262094289053490447574516168766571106948451633346605617373432254338873765318968084744509940035920214902718858084282898713408995971242582743730931203020476586046673687110924422036557581901111868666402191101453261535547848895311701393945528079677818818119896412249415721579644376064442767384353003712216988334806277588081173062278409130990114265273325140822933754875009055330432042639158087473721382444162293794487430330071336223770368703232141324331068766087308424945612002966331636842556157379909806598199329903180247954271928347657079438716849229367715764362562668723593813292102608615482435987031526553829995964919761408076643131071446144167463928084982589348122660904819193954434587228985190640127603752787289576184127721562338013004761805709042257257005296275266549255086193950632483553405408884144601314456128283168809597880763157160030610323149211257285806786585704126438129998663551509807688665655293282071431522232068368902814181074113096915798131623312730279519875713353477974697254336807158491235942836665725740269205504330839945059311168168163443659400537485269186469072897230103116232938287731481695848830419338102941993770174612187737700585245298243821742868837419968393618983289648664315545980011970297087431530027565993399917438545873126556933452253437949907943631721937935888062982378888050356360739433743875031728006782653983290364343131843148159968148223856087925220809080229539455117916645218076444563721559599118025819183605543916600727691421845260688981540517015668403088841106855366321011440821184329756732221836054050083722722994168743914567079830658354581714711811470384276709447502582245908928975905695385587435149765677688493069270414715547585232658845038572284436443223717851105463095770133405304382840434180448315940108723525802651623827277944484587264178996022599021955057739298614621308841466847048875331416499170152506367208347805647592743010205303700136556073197610896788858876192839621006371814465533056292911259129283650271556977395534195817900485396987039645448284129424232650675215842952318887475747920626155492342020827871112322947706330812547896169723800948533405902465236592883383880084064677663465778025153513337407310497699278825079689825527239673378053313379899578169159011963185711073698759969577075452816082617969607060702079674758637203328428203562405254530581488005859595513769507379153669167615031292716494198193867687101217255091869140101569827467701574355100438830346463743518218252441453761400376998072880183519447585237973382529208837786537344344213920414464822864544999744543634390378255490806676792283575374243428378863859153525660851865299237360226063629422665718930715412435614210138459059373283012839977461664837602927574974701931624445547956346198088109056310356138751697105696160677399907204518392708855497124858245640242193910258907649100490479767563350731748886173096209379799702145667149100846200155529067165324795598642311029176984117158535311933181403599361723995195653988119770285220564970566075431364036227768581315229479506142391756080296006492081985676319672018392785246489709673111006265931793284493440048472994309927499094556297224977209293165268997441548814063665230956956855721679655622837519743966941967431933254172227461854779118630249001335806428073848546908065734432537904077144886421269331209704194827473955792461436479613751578144333682442947607241747439264932434494462577947329246407991618127805765501237162353689059832332406597131602457055115032667060242435499720449073823181308860296974209820971226415162812694531595368067868700897865635143828287275985317915816828329660555414001704655407605543311823706346960471336436349900062222121229752770944173684681509038518727329300567222563940018724218614179276040650332979191892345876892616634418288825675094636808155413617524827183225937421215977068162749080786793400424443107842440112955212842587151272029100048805359346326254536042626366684902162141721875928776063103845839879807010860084560055833110411100647042107410764479330698038795213293327246679630086600005753618768853085082115526191384802354192512592692737028132196058617665846570883487021131979747791386612189982213568105275661812949323175463859988848174916101866484963947311828361611116762899144101410263046544800404698599084131351575451594105467251158718338278459012800136953168580072544690183768030062275843461925787703207956969624083707174877626893167839993086926745130535347604581048097949077357042838877911969733366794952406093315261279608131307951524434692483027103654309633406043280580950737210511053957222173454550059025466186929412337956428207969990612014164972490458896652784872624816913957874091001047371498349333609032579837666844433533204840894591603664198525511724776925445217512639175317563356992636210984544601518510891647967084823116481372612959463431405579474424144507605273375448831293984554874913767575485876040739528696848301346247452687284444309103754559008669956386231597405471053203717353790712862642699964290887067277548309343549681332917023160658575445874775642517816785100012728856450277876116356657167266636120975905069267587029859296383488406347440379360612753618579139995350574758417183479031084011796843609303954772469712566221954841783110572236548429355639964253528140077708772060870504859569357543815761409390302336634193654809508785332192597992895650131442058471687202332202142283898453882366395504962547342354684365268551047814491986033623704466895379857779043821713853340247594112635287278363018902442053597222435131671713608154528198998295953009138446795735973170551142737020708394032273853066326934133893915309349846751459105202813435715940236718183468422517325967426623419628678089839024378047318666592744809890208899223429602548432141100344918108156217858643937468174611724303533166012148456594687991252415956995781820529938911427900707132558575549224634410582706510814901987143010905977579429825225894090725852535533586954208858527534720001085600980794132026679544657548619540570554940866608721353831795890616128373992662283998125844606938500624137074448101560917638687951179874465533920898682714495980512705779723122569104761161885502474929020764570427265659268091101147550309312635015242344173875813182829236406398435277513528408664638352605524678363176914434222518746685711445228677275305822905887828164911925433637815932739617268218954484352029902269060652627184102129173642927511882055443892497946161060086292290705690058169815514261460799614260688704446820382698572651097043932576634829523228007959447884095162950753843856095605422298210055844662249455750653257620321015360439392674801690449527263731070658567989040850380986458523979057940448046375331495030825502061188117582915748436634582285236994643704488319644610821599202765971090545219142218626170284698864969787330197206629630773646453403363868506533958151646315362148249713256736133070943804397476274860194388011320175492768828091425489239172218259165506991361498108260530095006139718028456418895455277923603300901288379454564036379103454058486770525315854739390917641822500027411437378649154523355587363632823192622808385251304195509508389512933653793587946903506209367724828357641044952034535307967209372652719719818627499523546633358654186609587053856895275486402380558372567665331003626753927811837543984368792765339658515365084354073692598615456730142540571567122852005272858262384943575596112664374482547055839240284396941344139288261679332502496232290752100083522676164920023635750593555049977914441159313511253223801651358518177238583326096527474249130961391752209361883487953918685582796752666575473698724394466673080375176321960859602119300113007632546427741910626977092837782157567829444376653950239037939870701519580803147655879610933499200225765414368240553647680149858886776994529665155251696654966772793899109826451929844572024095656386269437054708587006101240509400174460793606273448980513347823470851811013385031939686786151734971096066139817387549677859428685683843776544648606393382572434815831005239431157225666213616017594527861307990385444782323898365920775031987635179499074900852640239540692909183479562878189409882270816872804004322960973009571340458655314031312023818687926677968173813440618881685240145987402442458638116007896472040982709325838725600991246386972551497537973139551419759658358502838552658292413455916535833836685423797542540522892512238798866944456095652240332094872093918591304663873911262284024235882277223558717265755651747194898590441639081130836383023810730202930540062776413793934302612803598409295646953464828263683721781726357998850206485530760793589349487732596262536908514755613976930773949427861862180544143186592496014037579734950008717597705939635423842749539687235983804390182818181673231332155718657935250871083681692695033509755536773421392119294058886331747558918331800396254927435222826549244255280776082030684982573387610352387041497114331994222054858802092579052610829455794965768502014674860668749815535575428746518693724648248064537064321823947817910956384895754830066554238483896072420320553455088021969466756081529225883534176878182720363451734123116841918780052169262183719019923305904052180826440889259884764752773025102318934377244029875744637621101510879299408409911832349987203717456950162749502211615440674613349452665344511379766565691559268229364776792183856909588551275297451297558104898790509887975407668384581746637908808207378912703332670801806713299792691119162613497594044229757693599963065519785239146873185102351999647390910958319643172518756491130589811995984001207585622730045418187684459628988117012629389558700352566032042686469344771045197089351411671103531645407142689166020397713168983653278504624820236529829685904143348201953411410285906724448300629062823942405235875772172515026449919897576249588381028635304898878092421359577250571391427405499469423157866980293542192218633541837354176566954134757336994439670924680571528996879426962798932525064182272596188365680301841313413639417735618615768379417870489992696555430634562149519305213356999594995918107358577446720645641079872837339199294830528333147590303993713899951164678760868487061573536967012862162963372892721510201305067101158426116944402615387740642356996162950527914673606687394963065766984176079791258418887245019890427077538081739919547538106495066083101746209321597832530412931667124350374192375973940570881510037161592419807351785721774439913444227572273267231874274733974358003508457524536834164068876260040836467025582168182318099460596393132264517649337988956261682248519748313660914856974103949028728863591564215589068391413196879711578896165285741856097222173099711224241424863987675391734797759745437413078531426599015653539690624083479678447467079287671636821583486574700769000602663331355055114998276762684225924689665927880492600902122561186602288987724495127560525046167116078185707125601603394865341990157222229431964607982894570893880889551879914701288297671580037394277837229642678086338242691994775695683803132838431836914387012433584101953259858074996383454362728782923020324125409521649825700899383101805796292201409678553377306112485058163290817496759150761354737778508439951640852542592808205213739963536426034919148529064183466012800204326466128724077334408781240050673405282571529075373295531133253334557249728302746197700271278184817461602169699567453647176318371739459831615287587146532821020452628283291997514893955885492980430683775849102073834886635753547701748376898053699360155425688505434595812773900049214245869046464826985503577672377940476178372625154318925043257642737424052171165438821927529191012017684339561498377168332922691118504931134473152116969641956391512718515087011051044976892219388877232824203024880715524665511454375170049518196917325018302684356644757862950775928515473610831379647127521442385365042070175120494692188240052444540638835400191594812259645655964978809540133961044150850671994081039822280485877709911316293846481106369832265686027030206195541984352107185583516569128033478354536482383430552864637422037245719020149893006331298875587051339395453478536600714332462634190870370038231669884233453133549452962768872788475025824815828161382390885151856170701822767731128522982491356648691149293876008791986334709498088378860173774039857971770386812240013959376562036820935994688242146725064721821789618965781222915017865576450797418698621692123171756122517521634109017391709467854528519243423233852637176195151259825582330292053261486240393958805029544463809570396063158168582300570130903402164385373618640426159316588525056282830954467526724930556202670569309325176491127024692999266361475127350912924806911411492855751654448223873205874421817406014848127493125729598014603832598919859343488886600569061035701561858630833951392607715833148673107454144212494061807204572035273707577304521557966023682510985415903714128775654940538708023100681543896037961707000768991309690438855158096460966169619793921249059796954774241757959077993518360987580278838231443811458549406123626872026351493210263904279978731866827346396800816440366792373440049817269388497951154638539283434637494463274964450330965133677887387101895667755789731259590255379727530784133994561814815730055550161554426038561018190012874934898545072526824866573495919546601108112162192509117679908436330401003373747365734367324965301611156928459912427203958977948912132802800267107167025656479056743451716995718068077920282539186214946539988194528900413934474251068327965035484072326101648914215993683702311679257408531394196992596812758388142888542716101988977527982628624127626910803142527668626875365391130357736302735486194841229766762263602202082624821786432508152788312574117188457986269203878324191222930561581644067043550797059317769782706497399113848938158117363627263429177494874269879593690360652980137571499145664537976994621342635334597604406673442523614013542360944399039059852351746589970713677154371701444112043658678087827018556036937140903034615821837838725642589859259199551666551607264594073235224394693847978570321915928198564194473778821065306651803382290175996420951203195219006925188293232306196562940352340499572962920288936321770971169065822110762316598526884899838384777807964710403221210607296590846021459892085663082503235019176650795438301613102972054274452876278989028485841542136006478804781655357832616901384124612106849387504084729460190371068989134378739753503083514579812554550783134105785784804485690569728010345959963506816772749485799523279594757954462023592463473100978211809889730344321280655927208337526126664982637746007598052812790834370100411767488503773160913768083327242298185005195637819758541073812346941261354337044477687328142967991150578984966576239349185687925328308860595677623498518404844570684998097374621890803967801879201755083935448303043043128065310054262323852191479488061024602050484161943220731154478389076648578806460433226231930975359125934295612742815943750233499888798619320949213633209752050793072737369406500838018651336512076168690549910766215853619613956923104552168849481675952780021325460901274379536606430497052841970944655675167724526177614001948375763270130242314191773466135606356612837386177212502520666337961420106370391873543469111997974135273394379302831595430261398685491430120922956984750476382515355845616268903391662849390243489342200546070355441847877368777182824387609219706517146235915162224890887547174969817175514062968117184188119158678670194114466492376540406987221117139432899698045652637220202281259308344321926888689510161138924788423970008170210133927520110910509017770669643571404775849607916369578946789621732075666076457827056540342880179459269515107093005678520148831864304285626777480792666241809651413084806684522460422171659397217434891250352603887535097389343824229716980262886524063416016542951149712024130010787490415257823735006716523459069186389588028026733826412060168339488976084486767480673143658554839752178694080474815937968705247041958765554752391840447407711850095389062621289909971876324757697776078511623738386493289070133687814042829890588029625775540165804165504992098554549836989590390969280865281913318249393533978496732570490100763029988233640549648379622336907647518142972346715269209548870724780676436199574357955911199585935501370915497987279620187509370508307672322516459561110782403116577142699034261417340077152712000662134117976682778516424521655630325678685845749213110166270519150499214303141413149419882369906338512760469717438524568737342831009501677512714682012571960466657778800486838081380779711099603266415927468828966880825436566462299643537554666278486176321604675505884888311987181299989053420791784761450987813315075585410066878871619755986594477606017412783331884608171931704618990835399237708526025923970900092202414381865982184584467315087610222831400877813559877153371289740224358879844523630940731488803843073869740186126941463643577754773521287172733858797003220542671218755453885692495230479904163652013347502524800520036485506856085651347733629087847882217097030500117183240021916358750967339676505089447568133464686756236793285227981872517548086933914214939429308580752266350675637937299321443372163210765010776815719823697639823628431506318157544108096938282258525322236205149129831194788525956874760291070980051707267783953747684244898884629772623959759987280407741751108215729860639217356484981290259531526014406257330579148426208013599889986069074764260424630443194064644718891463428265385978579033550004314060700164204462146289988851039150369946096407962063760513713849045252434213603720582998851349179732243426463576437846092130145465314998985634929581459969658873058310582863546299775223504765988614837139146108244883028824362105369943711936099689979966385438866145447202857215416554530390967827513773915294966643262357029589774341398028883403415348392400483583794250240649983097316779943912192913295747075377980248463406635774904249673329212797824997547288298322302132793320226206223580412965843957948744812471983245572219265428859405229285676099038246898135533337453623200933076123688796317206534967336679521477791215338992260987440672256470547671902846546223964583251814451228279393028626085590999416394463388555984078611582368130884873725425855161580201359665467009241082433103298261928922745288298724449180371177241855067657005377226662860239499721075957577251919075500885880619782137943319645741871332706058643644630056159170089397294800768476685202430570919781348441344988321464271800423951217600485621462559173976761502189351463160573963219438880280233127914284954856869771617297480338346042808658086419027572510489360569243770178617404554287227707758760146524123670981332087259017573578472273435004820472980868833614518775261402683778793600292025075811850360060871613944838967644850797072792913533995005830153416930322029909743392710737033869563932420424869552752125449619509489382872240415185430453522446996865674582195048546110691550727114588231011420309017253556431408534537963573099892827255655690378519361044372469180965385354289845759088690521615042079794979040587505329617352680494613465409482203115071344319409396852299035605119638954546526083612010858399128501514599675517722052849356001395762639523047866021362607620196346892695818633776360407164047874491670048876657122371404015065427800595443973495246137598711384805480830355298559412364104733509055172231957594209953886613405099656428570339161045688366054227325023264555834173428158710503648101599790368779062502024092645060648405227938257675241306120200705779328397729702308705725239043625509107235510491060140863352692269338095969510675437265365932835814662448108845287128008397146560859582897968800021013518919741233672151020425057079120486157365901032943266521958208476957820229490666732583907273611303471574540075235955949727767572381984044756818485930210560163204611168596181774967730738421417437761171829408791634604673022997279564611354608959050550005637395823482113774175520495414902664184462962533092627073286649679765775467687875332105721984201040212175186792544759111589107984249850548224989442458663273204436632433470954692113896063044257410134940545052822220276036912165081013021055913082501338271752138113640715212797021779471014548902787042581087735085689889041124663604481530814129764128523109761668351412627101429036519369070538795859999131472212916866235353589106663818072108781771547688083541883822507100804289306895106076856092344193554272160976240123555433054161318327214830898382656950670181613742131893536096520749531009923392385847534634000209146558790658997942773983952498037620278162768605752039024446515300854906065058194505514681184268722276050709104709781412730163285050891127464071066715892743089681219004404960003549900222878987689240964504031772112631856212239957049250439691645010399925899397446263600406275878664747857666928796177098609312369984955984849211834265183226590587218198581697339795632380374876366232813313029117989744589033047982481053620752128785786189822064739767846465844366196552798195909734859762316904565445505499406772055746590648414107054767167535580151739650276224797186861483475514403972282366120807717882976420425913715246485000573826336360427640724122373572389188280125518474132162665351400610918069014290325411122053031346534651863291727528298917284054236365630163937347136954457595079864338268749058872083911194833805768887493649248178332495500295116702424491679275870324138744056676058664598032136511191546510548355871475717501295783150310022493195986400440948891781576406382923151496059228838267939504514522739519874691338068977308397977875656604450610844791150922901587116317212412778529562410303598654712063772052377054553369822251504874609008544615396782993838693139765934359646261357746900318468615179041296344195320574512055120389459360671763912772209629499145742760328587512931978791987668744983783213086370296468307248652138421676542409970697566877030227736511879082937311123800588365585867344308785011920069513205770468650502275125067436086023623828992644525530962022516169879550582635586342751548966117096623391487267223199130131742915542558271592885161630665483094338011556884284952143526027615112753314949294527490379031603660073037468446805069473371053365532580438491320746443128776614997923282680950238270251964516741287117709258818983664128083776479905316934591546959446338276873965858746459163225392240140923054712831414237486469773938919479223644642882675384677493389761006861566049552098834585057841106067897939626794518961111858594800301964251450513978933989148125598114119521527527676464103645750957910176371168010454100743382848732571678338828068824321545496846646752042986367485397384164430602557627834234071173088793367973061884821491302270781692965028755666634542984866216471610949566484297037369382093014830298680188826569740166885079622116398351569408361592152151912314181865461976923915667856343400939470304106581767202301825564798719075865967079320150725109775798936985930305739596359269189517171028825105031442487978127926285792577252215786026972988510233357159063283228998060705659318613826833275041631618837050049793564668990852154094158551677880203112041281931318194089928943465011409745988665649747952093040817783859613526977770780897374500455045998398462261506071750803346698649498095402740005934731191865019417642820524541004435013133154416215049444717748898983780007930675968679169410132410675156735871180759314445847563047297537306263411584559338327589684639060989533003518816339700506125115940217188030211741135506174631249631901121747762514078007860945849561692001318088765895213248577257694110026526530366608766116380908666583430346687031140089734353508116219880603447999403489327383227630607708332953752167944613047186441129245626991902784215837197171986290393774160335166881509193007608423495926547546276925091847794953221419164602893290223581000725410744593516151216226811027209946360448437212737923208058406581128382081270776331755242329291448134439286139992236211995516767700382461695050052255152292735010286069110902249646139449511732166377675297930848760518237361613054335026674798346775642351144076379457696348631799714019065649704704992075994432748895681255188253454248573365150104696479851483934358465728884633077666505391611781184308272540685592903156480274360180199586257258967312920633422533911638591446633658394991786398380979507793252775829896931922770308409658025857364444738329954906747517520263844568474721313921611461330566397769528450412670036951052841751841403933855106298255416570444897687067998251506091047897959862892228195918295471323707388506628396694694023715387432612384665166632378678353609217568251767981971910963528183542671327441946091082074736558542124026339848949883530217391297402655056180985287785409612635446751334953912598714694445120975451994406519340147276269909577475568006383258530538809477599847937573649155030053661972913239536701145686489863449921718692210284411944908635114616631986221749962325208083444595780068535037213269411588823890662086930135122008970124841471017837167516174792145742154108527854892299426586915000958566649221769296805718286158154455592335147769458095500211849841466552182074534437628318627111890107724968040026478555269710168183776171718550473081379639774379086495366398144257315757176598728098854135852269837320732142707251187951034884466134563742550927172288289503490542068086846657196603530638917881251127093316857326980714774221183508032652843315879101867334591781149519697941707071395507662110778034150110939998433262446102794442447082852981550410393944404619707366729296859251482515637061557476017717160885654511063080031247314778379497290008710812961553272865352452833128797613674063949980990867253691890454948138403224880172116624262489268896112214191073256490777212214338491064744162465935899880997454214395367163306806358917288635159095996783086335371818002691709712997485836954307394003827185261042663139834389164824176319931657989875275181176219648836838301277044364431643467847377688989978754227959016883236457746067486412154456191891324389612197686286250230583879915737846934621319670333157801651917890454498794645650900340929535872069819625841884172888924611874604683718160502615422309598531274492367153070819960750623404651652663445267808378114092597753735915863367106364637377633064315623901623295481652151179575853529785495156396970580959740919400842305761825866341509212954539371602268731722795029518524842697175047295749504487358075059609784006814694317449556933202693374027170281801993741213730412966001331535936294723194458003877269730984320286639946382919862312209090200428775383128023409979447944008319665341059528453925614435893122532755965257592579190113054368206547564594459431444876946669344210112806466324657069930889032204961124992288263549736914573908399246740795590814744277268651951989403788908630226526641645776079609577307529479422518708972288627203250169136303382116542314624683761466776990329032414557593810004640203856839249550490823500553796437194458660905481113513675803049312020387450005595449785665870173312882279193408998791712420671157156912484721239459093275674212269581663127347671145992347780252389144484781962972414901910161078164856738382638615054947810622007684892562163168510176522230204477158749778344451500805815537779543768177082346994648848791009667447113720524801351578917355036457940942331963095016444378337700881494480382052955168288774678217191606139714823129999371905525940591428893922686333550579324079478767774374751710957909221185883803874396388647179208807708114953324731214417937564158022495730852059919066704615271249021812546325845529589443929597101433363118651233286024429194814915430540141886539099264707744339004273600520570518791372629855683365502008374131059045423503654722370654041582963380513501593406255899967937622370160250618550536628683867958020223034810440439953517759351438903668670421675181083327514025676693909730904471198173727782343433180014094188940539206863753835329592533012180474805309031049617297437261597655539234709694162291276599327342417619561502936683471892899884624016379935767904000306312905003120825746578541988529825108141140425631956988996543726953637806864146752604452215542026887947070604382636912814310186483972420016377725257602491720379328667354295234618243595143377977568396208231139300920919003451791162990197180618737769469379379093869112340363714432807840066750786882609449966339543802905074034631685763661147524511444755357061236930028090903312726769348637527771800069600910048009216170109353801586715255219945440926934105417536323287917954028626838962075332732920267959750183833925442820040032601742817004675453552157683181234720296163362066987278946693657787323584464407248085311546544530370091194803157840943059088594840928233680105829440859397275669619837565359135671890586016824264556867214152089510101925736391017687005243916299109378061176714435020114023770292225632116865503626344967940156386091870555160663402404998655090140006245333304264939715404940714583535219903751278468969735992948577360642881893202457552408141874070047478788641965670244697176640674389740510521604621692926917436495676500383516769452456776252132514924230168841963274296652908893558573436959457175753479068543774915966258088824725350919395331929101656297625469857730626516953273322392302270990755868175853252887176157496903431603787797016055947705609863517767209251350326570768481181020883679666265899537790270338535853585680973378068903196339523313027294320977384397425527208163454273559155646846278297369296744236278053475097699694300297375012022829849850561438289186803882097352642759961190607324565362588850746474849930683328795227309681534387757968368270269917736057984199753897933530027140646962497806202861375349828583640497849087856233722457418522049541386323669562430403458844391347297899247141064398470058804363894943362360974134599319189903756547276554050704975389533412877255226557358624710425643685278275449694307342772448433243007511474976779665638094097803042077306619428348802850741524069839743849223089968077016998484355016207958904345824433526869771143291567718153374028941065156466453795062195181428661016452460707505820773072001088943705287634519097465671143326235440852149453235775594161386803436849977184892095625003910873601089470916758754951378631574396848317462056713807185542179633361213823058049685204990548052998246868546095703230675522128872294959809497948069201927866951282431968343274966102570186393291081654550255240304288113005560835024553221703741459666780060960044818491907235237798614680483580627511076630117505905361647006877130701045208567595558842118154880035174475780961877275789541748371517714171023829357337441727020343794419998407171488699711559112786121860160192384422538533706718963001502285732563285630319252437997630737487844327833803407566889445854176509951535122134267137028067143690772179998866159476106246643898815889873411626943622052476491084955362145968092891455532784414272865308970527355969247563178770720709717067086552901114025570096302340294495172452402986710754123661968900129711862642424795643004900569537927439165190341303861421288953743520716262422825586699333123129174067914547206186571450147918829831261887984465069393636018479919449085702095125599315589219198654036332606113910045166399564180203844193707185162422549672957342978150567055090128089426406652605411476458092845579101046602015766096784516636560506725480663258124226720148627817326607944362659176296880654127833952768156406209750347140085799420626579086892998467073364346529085466075636855690865913595910780934775582004485779464083947890598581513683211014438630851372523238813757779728396646932437664796612909047206943555143878496756990739491415163625832724735464893995744296922372343606915827805104050162465349972967959633127414828470099947597885027489914171885797385828609029027948824031455855539199210535535733299403298621416887403218257010082336889550470607487764798327984776528892779195873501535424766817674649974367175202489480730666870977905690067046188769167947324016240863036776151666665257622882967975227174857670049456065694588050229305499626554012141206808754895663037092989258151049207372531658225330807042894956502587205082271462555398707905752107279573766784797859131469995848247674106512430108664676305625280777283686733998802897898879779612632320463543125315555138698803563540585292609895795672259475100726541400397806787592371704845965911172939973753438737485896326676488045565953734596995870941306303588001290932093388101426390783070043222256385035194164688384299025756979879371667671062372140421516593427868490822121489310606782518501233998633682147795038226227657022698822140500446190402612599884032370249423606755070759231550517375955369399962489623931779978530935676429605809935003654541433525404753475403054807071334617166512129039956233733747370805107214260640683695514111091423792416353221228438719934509650668644085844266746474571456603653983615902753628231795409270920559739611068235408064999264664144148623658879443529366915020388802852543949299228626091116680044013007737424037574265531694630630538614941410504388114976068631302965678165082764010609676947546511490360753393703519730267337786278695736421177256328531312777513209217842187271344957545573960268050282948297315176731634613744067702816696262938355032061087521088787591235321038816753064909208854070416404586120026740890479328563475572649697660307368898735764072611823250272276401516089785758104647342441752099062261592922658535031265396460031851893489129987486604028774560641415008648992761465228404917467764289306309882204543762861638894378374208466362723077891628669067491103127077449419261336541473131789898942210016307210082139889189857670819429349170038035056538504905108382460422227862114263312825009355761443711294625120093551146078301644052891544667274631747129856951852335266821215199768574094738699441700825025536691657448874556486022178374384438209187875397375038485871022771139967145342062611488170599256648392775581577965625262761198102685882562791875087798174219701066663887768701564173556605082612643218742669060801963370069935381253037851931764433885784933852346694358129484236124486430418429899573932473589292465241335660644501372787793289415153019221700088433589702841858669837254172039308655226564120183134360840940430074280969542146590559155915224980238303085371482591159765289487212759328526550902614040617533857061607063558950446101807534934846134848013486438812359684614079225916654231508802687302365961460733325346628209620335797015704659813726230352265391387147240671494925951222371443400823076853321789341775760164628426518311466324550996602448844620205707209492416963985682386712186624982721019340571655932833501047187658421962018982102007316685241023276700563604440832410757678311590412672495939253396865232175620040668339097735712567549223847908532716064691728740312554069653186646692252891983484873732986095389391151199562188711086106992060463817146412986220479964359974440365495673589823620906214777067231380523756109391982913236498670878123914576036940341335428588758934273731060758889694386713930288125755181128500545447942199261402350927167508413978494843610834319458049217420176625413088498627120298658572263516525893165160530967467895971157593433414780499164992995516992078369013903340680639505897467282086653017187803933813090621917459257648915524346195551338944206406806065132976606471833936130167768892626597195768858251375631954381758118752865473727967411073055852755972535006563800982175512281655633235170436911652779922062860605429391469375360997466927170696970442490431192754305854127587178084870652316559935062645330539876451822684851752990498635502361574773601983222950691878030387545357674145665818411347426830738050515988933325671221502966179032125997610985898026730371906278589022746819872103758118080133975038442991086531399712230873365248712668907566853754899905746678037492599018535512723233538656597768297722846369487558389259463774141770958213150397452863577707716224861135584941485467281729229900869792303576405777188475805059110755516900153212351229645546609839464037487793690508778199777342999356095638222374649767695718959533548381587858232490986159420391449778775421053614665548358223839183252790713957077345838094222641057361644469578651156039969335353301962856071611663484009314967282974527445359592972704118804054491284106646431127784218790187807438632905479625864775959083383635951036640827306875690719981633181556051178421916398994897605063618845265005949419664717069699805986786995700322279064284794974870309736136800274916576309662157403235342361586474345112899707935839521789009563084045396806439985430543598734827326196438354044199731823561902727116181291430028378589493726132194974264020682851839149619998503208433462608077771873669903585507349279927211906983280770710536595729636584801901644132564845522003051851085483362929576995166989636907714086261813734784585065129202982845295152729712965754945474482618326171882124640940437926519140659518212568309110150023843211831022359065219163623621171738853213538549014760058471485868610496173948230171751121002533014710783562836233679548699292170891318506574529051531736105286447097760023222919379965709869247843578164952881513706346903992419534919061700952205581857406362645935048645099762528546214808295958812705824766834041411459335533839255204494770021131111524545117348638436558535262730336719982692996475075779113600995737318514059967292937807259365199564481344577159004887897742909832544818060933862697528483149327695279788203828573256396457965307275235300677042096945074881174029666046543646414129471731115906520750875790543977471415770096905978678208016822709048267126349298890599819872751160759044173858602282627536933438057213588886280212338041251616704871980938750098047976369305944581268834701093992165154154099664767608002003963708051551931075628560385094448092157025828522861394974368814703384207040060919924242259520858523386989759474370724424890407450774052498320256416710705202987528323612843406896856017024787616924669769452171473159424567560287170113232905691263966157460409560827521062453224971317368555718125923433244910693093388378043371646021098494612240473966331291532191751765187271505514925871178688489363239658857466601219260872953504715605752570797423028274041494820381465685407178207854267454101848696130790373021583149982843039527181390234289054277539653834231542201799011210213656479106203612707995652128362065364695096221659406593480171244421504985919046894549904787551815756954451106554131148758839632550502306259755353825745035892822503066245402305862605886509099788982678604405319860135183048106882965307048329656772256143174232032239770797069481675100863681775267638289772950622643194621798035000869109823152903192965906795217544544888604646964668044290612836006427183682638244529761350225407553024835933768037895990995754679237695095117617350631748049800501585096099156624659794188453694586415550407649669568322170485056982410893023023544042273035752085327722139703288099908164445490162022434721676860992386772305720172748453195029319780033104993396705462806417909264073921863349111242609383936870959666462235307110853258233689597197277892882752536498019084006532178728875603086574867112536270513281480049949310800003942226830889809192249686855970223478490636976017050720883453976277366083882303112159699614187320071231842755932167366463123439032370446653536587126832167335799538637142960682649495093751505206588127326703750678244201711982898512449826404074581918771815148526426808347160802101227358196467361296985266961919344748203638114003902695219050999826767762912005854734733857793526008077215838817242029354146686545436182020733713442551735630989235710424854577032982530533469887265200262385958796429139321630932325940809078895758855995926847140042097078765060389628211782190089230320197659742639003741868700342939893106541866864147206848266345527043386667317209915198007113634334554921755104650964833762132512466301613383562987958180443166595261633437137575087945813353420040390882304973061114638426981352514718211747786951651587777081525696995588515186572751747334966956095698157583843176235002195078100166592969570991817615250657789981240386801906506793800134090087351540285829390970179117369310863019378647965529396626018761096115434481602938795976223167786757503373528392079582804318638915430518255030552466113031127049242905686929729453103461079416889669599149927106024712289752611174140502723471132302967095591245508819840076324329041513354715002441229922191977445392190115400381249431185883394172195324146728249734044199616358263363975839401115010960012005444085361781669779131831398013807771451522010418509185923299048088665492468829314690757845850841304995466971521450090254089020144218919958513765601117436767308662963061741804407167589989688549111446178960734489308942398587543337721436234084066493708708272206910577487403770051534633829915623872893113237473343041168844197824957979367372535802608642338409053218206130759359304321690277490844522536229662349459241106194988672891095212390018442148611717987096056306389687852637828963593414564691379631207956727973691716160658288843626914000005478252809133393018103722416224941810660961802407377321172798994144928407154809620513099441930953373546652585323190163494641421568631621918051422688944844943084977821155525787133810304503765201878941694195983503106801299028343144940552239568228194916324782504568572338519438503352078007462950465798941595204771159968797154341528076658729052117679987308222744652937147095673746904675154386777438967689553468455895010850440182046375538065201874021301419957213190073836260572856486772077561333320893085557571679084579048422088686081959310718309663948851683558489925339618091199087902757131203390050752777416156424526166144201037621984102334905053405245533455948622015185340823078472358653851505078055034599038684142485874123296552809075975284883205552407725299431997961953563499969019717789571045686974742958310340972539533784897625374573809193285152284136621322694376098724891140447714040846690847392971442314772899764086847772732038461553956212415397900672983369496032386359769214813403684897723424668883786087726191505612971228322517399798716718551599869257189897432983385719669798720044829424994354443150677325258047489808771728750904714486830388035149591372022420291989914111544269502955774493683305569742642294763244277560450599398687619584171654373436216490255452313924808467579498622523177079785402713794752682303192628274363565100584589363596807955813996139054211693961826541638782721564325745163584796767425209444620182211355395174363179671365496738676867437447629473522481235110120679988403040363617609236637060905394927681885987860836356007759134684616304593124975951977348626632641724709428091299026378700590198788955807490051033678489411753420530074206307711574805467075776941830512663914019386525645173348306368097668025697997089266649251040591107428383060396157320778454991871402338401350854149259853138102158811987491313610271958102968574028278902986159819102884450973450747887627171966611099112300475390826092942860333940963964076466051597869912118411901147051417521922030063454696058287663739773801572902392919009049079666147619644226694548654184930188509611027434929048278733265238857261788647944259895081726500320994908646262807207644252846592977493792610755762885487434650519047327327754841558405985174334533150183695340689918694885487590896928679836442529520134822537740462585933592617133254909851126629672234128996267434036069526240326177986616936665974400401741479018933711013694348201933035637787035674826373954880942592530881080339617100164482794065658495939871838621397919127471840505196027531165841766322096665758151152716104289680720470765890584414306884346111778913775039044293352075604995011560321246043898181430154153659762098087751934146566035552063326523877535972949187743652893832453722479108080435482028152072086908682320455988801094673086109011523762179895226853650540826185233063539229946120996288464320281874864158974200867017115466601709611310967039926270892321661635842950550920485784295327846652521597352646009605836737947977054965811270806017409822775042394343466319617252362891736188550619096068579663820884053288698436550274985441147541622384828673053727200452417290817038450950114433503863292425551443268534872894758225104699986161508203713880210094266457512784465498354709530319081033105358569102382370761908895539791412401403967978506510109249903221333428350330902500272872876080465449630452452879235830081294267029623416375921183566357191437410726314960607972129580474780897146978012147364550331697192817669045399673824203162909876768515459863930589857298919134784891249792483078849535169127423130070485523522489569798654383248716799787588810053550193567849757447263702777151288456748816585335763421983848554042936192910403168908392257742003078377381196681660654319494294038350217284791769034331128750510468509595421403848746348173534405934231992127097073028941623530757364283438412641785037070963120016110914610377901568184908671916550425040448085730369031680785270378129364120600286859494219552018134950145797205399349278897122891924171699116106664322697905532457977501778828704287599906215484483318312223646906795343592966200107290387204514109991001065570620810208480375266212680976174478897975019130000889265956952406050688778543796841539154916284248821627906781018496420442355690049483607662727344249990639068657194965328424067787607033113179569898406956951432358571061523633759632649301757780434264495540748238674293393609432943239136332697430563130837831484122893747051403015329184815381681118700737630796476627184581084602665517109686967515414680584524159151036073924413746039486271904799752601819333651344238371633388697960216141663617253387557881855735228633256795096226695005537473484368265662784031892164098663319374108193042780942903843970698051247686627818971560793276355156395606253238508332645928828827621053012185480386847881924320608126371050292511707984594232018960580250838617317803047162834773160745087914098164078587710871501116778323437759430766951319025071043903049265993205491003655996348667918592917937746440337172501320899607997400059013835320479345009959516789882392127064232125907676998672702070599905550604820375519130438812345842525953875225489123258511062118145629232955291699830940124355014835106816809875753694588934571773320192194050441777528981572504853872571670500951111520429553695712420941045084471343775711018912324368315701887180063052326865948611358162061330367529018198103551962680713447505852336882486737189580494785983076554803167893540590205470742677603640250585157241448624887323299239555692770457902713761507488552408782592696397053148510437577410425449465158806706950319804821624468803873335815517918932350651978700867765199136211164453435529163440929162118928391827630849189419511973759216941580912937798923957874150612534074561729476541779633888008189446534666996294249922546486248110700577859482710780353721884647340031926876378758722830752564658549718087020454727832319817041223032113291457215356484512196231729469783402319989967474574035573369516218093445891337367708409655045802800051586826438774492371403260157197835555799797438125955624133650977411609451236573869461927657856117686934539536914399906889165863444105049145867983342403751404955995508369123754043814953760161465264754911050785839988008305736109992239612761521734885321486903915393384338309140220438910670725375905517439388942660003383809025255916294159164012065021990849561846370043260858729599706059313455050345638224357858380812563942062068483193726050980975797550805692029419695909073236973931477489632851181930715532757502633910580546938778461360219686488890536332176861615714024190560672095056511698811643776118222272510565372599370255877715687165423518929164254526734815416418327290525696929720360489137148498237929197351444364988608119591791050070941728766458415029740821203179671971615042484473114613401499154428688237550481056748212550962127546905244371982859113415909271912776590768120522999717700586178791456978760271905156650478684078113767924940097480707082958111096429356432207465983147397734058821812470300065078758023702480731469507489861268235344657596880245256001253312159114610446332822253522066487593245316168112424393231015758991763595970639176075493292063187489221611502043976147918635001579858248679709056730509807961052419308660071542328102648676606774154042676330896898485408114416816615702827483238464721886174619380594536260473496552926645997011714527466085915633950559842586596105051036399944468305012185427582717589454063834566607047852035016756040877806454651674980658833166222463117935016402392671000592334212702785242288107877952001138102962035038312069604225187932600802746467295702284309703978559513424841884082115397190312336302395343939708577859336909782112221975122722026917402525477404242753959240329691327078599493630594075803771560293307710732260019358083415119871624866405797171512749619651015208740345773876161434927287820684548861176724293486029788945249481794432309475382774539604940743648694640784088732990152533944230473942258144523885047517844657806721688651386337651463408729390121461830501509808942300107149780784449703936313317896060309549914536414195632654579505718792758348846276445946687228426280424263643354899555643437818636185927122806430118010400665926618077141935382213691811311950021364875955278044403508746578001254337348078190854019348886788017434309072629317732453107088615705136992725088286438366623060374947927925761535407242322782642262289360824193749123137588095886640973019617265615545975381514870355064468372866858317692907555163241781644050253379479019589262498487562788515194540700508922935950349296299073649643816329621902947855450024899730422769310022898014088334689910454001160987258629016912066274623394437928780623962605255974612910787221126697524032021816553914000163314600593502536195724896685384168636379072933159767818968683295382829687329393721176445179605774848915232473717563042103733196318072231925717110852543204989680701941816732563091582963974644853866009094767248434165374016558488399478385672036135814776489198082412037416809333341791039947814172619124717599369503695697864128939569832285592555246271907071459907071799153079245473617585757439667950666829418911911307648609524353646974372435748646156947031384527483663327994066378864497114900962493683382025006365600747504684846445376830443604655927539595485547180552131147573777137731919157866821676676389052482819590811555324518438534416959070911020280471711239183961874596729404498511637686758517295488735199527013035041857029014653806711434576769565955260570409861206493416233348851931492854251624406286594885513977708130276948226711145227801901418129487504757597167162819786773235836825434652025261234778410547982702372322133611547769974064614426756211305345246058360814032808444252594171618646072286582783763592012593069401124073591599196036305423625169341437143936573843730318542390547827789074585933462726170273677216052953159658151822532651970614004656765271519345763406004396725697364943309382889959237514314885517899455495775600542914607210679123969368896060282274686074554728739922701881972960980241032683761987305575318849698618191694789262994539674269952916557317423655164278967679677191266339867582644161846606242339627766774594230735663323261851469925537427584891441144307072617084181962253920489843720115564785964787777899638140164012480113420005602335436270413866828417794979537683700064759938669144596891662235953716597098855562226848164887631268003878214938755444637611632325362023807461668267322558789856104325623463479011250227356047676450572615944472130487138988741507370556082680280020826308837802697025822880265017756857319687165317619043560427229043761113781881404737896539249207584051470114007507925372553696449966905955451171089951494930047949644232557967635923824355326946363255689771186535975699861843777463151749807028385998016752759668342147185010422189424779560217234059951092522606561746685955379828417166736560528613280934020369434539114640198457351198355979970696673766014307792291478222888152608861558165570181548685350589230196269290662868627838462028268275372425243186898809097663830462427535344936079756475881275340226499709118957363378843087326285824422479747949749191769126709129506951596111430796609958004537324927772147017355982069612513656842460999372285135857230681437202844756466838386657643661415816772907462895109873031408868810471618411505394118701690749392639100599072403594763374048098253498792257087830927741115284748687670959084425019572384194874395358716954416193738258869035087669417158622426152485873259561791849284683157217095917074007403548373033537680943591528409654368875431155643928685342557193084638887656925124395436925625709715480422422440791390827601631430708084905837050098479289733768533838529060443445725779945248632697977472589256836926449403029517963452363560853185958508577248515303445090123288301730816906855618768047229119531289727531648429981773751511167757670455425241583754867507703992403424202755320466153379324880362696817244122201687187340121292162924571495301208901608317923624875852459833458650728264735118315592885795977656014224055996489773648615770273079390599053265782271713504470530176276736255343168005788351571162742592837737318188156880114610946365182754856557262381643350750310283869975141926199208659341106435923801263937874679215881527216478221176322862249632912702506979403752369397274030133251735709445482249127936189653933086533212518514744712270433108298371313497743361704921350955575826152824549291559721254757804153078586985933837070266353809414946966343017858163980044235552077117307827110945712781663357955897225416530711393838979218264749978869917208806624117773910373232595473629127585098836719146404365969279403844217748228856049668534916813053316971696375044087285913089323073634321257760246634600429555770363952300101386261618321397969892429279921024925598669353692980876773734641940000891065896677220478153342939218157000293025053269362574474136144578745075340207247798977744395156243522131947167575526802702068192098671306838655357509777977649446965675309859625626640673186240166886950670010471443458330748943348905211311618697035641337573544118306618801306902997474877712046307773480948260102880223539609036476333009517158938877290178612361458197508735044838187139220934287692229808679880348823858666841727326053761354581560966022836164879121760563486916538456251665927266338701329409355639530876056670871629824870080116290702724618495470947862189798141620246490275086097701761436942185197863531037213508352870327593334014219729251880090129148108130950769966508049868945723874404027910550522057365902924357127373558395968839235080370784486720091051850780803286987771915738651459681639680676707060738213230201545046629304790235124463737040623872835735214753049562495184575233896936859160197934730738110711628579228284821203016789402379590610953477491571564542664977864295888957046041647994525290860830714651461904013909419849298507378034626133014948400685374803384934214162030355922845108792583059260765825607114039014971077659358856404482425196279939384332051993583687570306196184442001705026817316329425298850895730591713902167454201844443967982081834656307810240395657918126456485417447806641747635227145730148447704663105458043819857562236888705943287505663114221126444163073179346386869384277971320359924864878491085578508248923895654843463613298005600078121249652905861911539894469839503974030412596509097075620710960729240420886161599193778384204188548932122279674844052744232345908800483947731447042819462968036641902791989612078948244865152108943489450532599307617346872665170105523839607675467281387420821396112805799485563758712775686521176531670411005861183423764774975076386922247442683599879015088823605576383054184314020207178722191275378226467562727638463038290863275128872581858075920131891498996564743630814728989441179539490219702148571036433296423873722595174363980386301512322923868747169871479485630294695775801741858878528933021437085681458290454353277232527571262020519974257985801358405812598482524144913666694654813897940032221657619746606111727499742998144634150045647578989399503809103390452999195422916124155240018098614306788449275862187204415656483286486147728911839269388111535986102390299691418861355573713087727349906136020598663370166478633215594576340148044543700696061425268067341782860488410511856714971927175447469712455432410053717747626343763086351497792259024309880794094275340836566155347105350071811020214708191609332517907560235863610333248066012105242917267620124364214357988107179868201438871526782187449429656595812526249983271091782161705820337276002691215076125680019318674712759823058199693984321275008113119906345201631145503957667395239508404482443946219503101120575014263487496190574128602692671280272497057143307442916767746651369526416774421127791714275558369714639966026027693541645204791781819419309095208858634199053826007342054765458886394381318862688056138070293384883922538248654958355609169000478034827459542447270819952550016586410496665127313086400373309600785336717178208549273549287331895875815344567722756692803089941371982486492017534798092199948239575667544353245591881641240422222201716850066692536163036090312939850011139615922760576624966528278007507533892171436846333950636828956224660570567081834608409191102346680445145367345837540832335414796387121674706465250439212086213695137260261275812733459293233800841856847595061737746366300782311542803438146570037886150139328417011314436775782830296722132139247359361560466234427080617521675952136849433339655699738261006476971211318912302103369890686115237279069783878125174830914864670449727891200243832263451720524914783409293950568810635732135419810999552150470021299658627675248623358903696734666725670005762176898175715803186477588731200366290993053930484676896243137010150588529090019841798363867002259669923480578014621168826651622155130201811587386238036801987120593229132463995932622467227820679819983796146808443485266789622448590494393471781033920046927763093079999805315071577895305557278262337677115909076732207718606324633511477875118001435632819382917833518352192646196324829143611949495882392289826876972618537064178839832897563334379498225816667291547014424860952938081468840359079614118812212255601078114490766188298271530864550265620547563921453160641230460734240295976468956926031444398698455889469947673257751259160686108940480153375229692712400839474401979902363353994023508415186396041749288634895812927493711598752154798030179858144140830436237421804564093260171803854512692968150866436583453665436825934722204144584062354776013630646586423848009804681238652186474469517559864576439333782532336795398054439865393113590954960725352648497109977372090243362011589038304567401438720340536167816076997678247014754933114749271547391160533817957521196112336798539167447503534990112887403672647729446540419469428048877753019810862440868194573700877190797391659256299354265918438098568067453210042882680017144654317228123732882455617386762430163511269215037908484848249598563258838744218682528549185594823180414675256541537304865764665238749309810320486521485936612129513285814472979697211706098341978191591424534095616744738324196774896451995232018082787277794490146967528719927571593019120626574071341080369463349076783424294577865540783993623024220379242911379518446283929484639393427236847844698600841936167482674543003598486294968755096268146959913613515757342478608130384860483982649220793747100020082177332735503353315061948289032734563472218827378550993448827712299112273761473622055243751769001583477153796788430272145399588123961817382980516472795910371699914665567825474078798382417561588971718867450329836197031521365692097977422315518950273998797969466912418659968456392540721588495388510486562833038572414430000166243943595436522187300399215359975673998820161646325125910308919039832297196025750163178671839030891287878005619044538141059138376370447300222076757587704674882601093948728207075906798742409805640842210584101080545840422610981394120753125520675017029538239192623975046426540219775823508287014883711470926815249501869726939133532243436777165078587317098779594847775940272671938819593684638988504235239396015912416160309203210449177114135619413858256861923793861651825639532243439984260146414620567784680517549065589509317477354801110544783460123871932571450853383049928014054270838084751684889025321819100545764814493770122923103688437406887999337225683830664834644033331640642773630107430449994058628641644311285401026162701738141827315282146537875870753725947367495028325631028677655801984896743987302353770912986473794590131630904519502783016534333323994581904939573182750174694329872603906372136826972839187457103568435537796553821018866079445998141820482043334906535445574930443110031036088862293207027209088184014699750231983006050616968254139572249801119358446364145260603377299246170408918082559055665838248346026266504917951562773572357330849087546588173769741966627779423427588033795107036486455726280990963350923521460960645440312483954871433903582503996318867971201078722965653405253640503516136998407991370002511776874774042320373205371562391715090628533171679644915925467207321016450439626719948651029559589068562669748919435679081694162035221183361344351939623424043996297841362235638544853868849292069607481173622524828498722060160296139837539018789454615256354171344126424940732629974282504545558718110269157263485138752183687567221631003163440445359908392302486458639188449602443029137239642633106192088956004342424559556474007881870424256423902377321977247796465435698102736992334808368599984242865508149223141434865031048117936509438063489452554105665675384408357000256625672170253629432562789860589978186982048083475684828239020555425369333786144836326365103573592273528831236257754409527742941510092381508888957193843837060229862970588375291687863391635904757356512646280144953063716655932178137064750303564198074054806732288756065635931858230651855716955559912149144850782915917794070047003413161222137964075758872874228360590225298189005858425741999997535093964011340902731783052011073572678616681419964127796634802797350059732747912973949527586851608988694050477516321989907681458470244721514540170358305933949910102503781094933612981987112800327327851485346267718115221056271359113198878254154391880462912245339458438461334267156876070912213540400847012952296710371104024912408402825417032081016527014524491841944930664980480860883844945614873024630390353010911168329598133906507607355422006036485322292509364090404808135547499296361606728784971142951839591495628768202597319312133344688753510149704710416740863109604362306404029632370045913864584262884831481678564276636198048642921665775165940069935839343746239055235061323391412036370895606115340734642870984734127390203746368540481034584907707303466681779549351589030667086953492919602142095380733881893152574373654990796035012282861570377167837922227011879008217332249486370984760361694192948955091916187474089840796703055375812911532288129066345891537375609606044093187124298854539357337546391279247925996635187373837483601952195274812506112036482987972381490776455766995878456240761150181170731872313739081636137698802499228448660806666465056436774400536566676321357371246857805748440632767402623289329111121841044225536096763165986350373452556898065467186372473142244119391950059981618915268295594107858948839530631526145392170401991879124270159793939481546722880580502861967498197377447662349780985646153843723510518251383612910135798728560263758280749388682370527751649969218612397036366484464573630647988586863041724470738767184115267835022368293319519691723436055600412826206076595452326763125964310530791081005927104134446316161308022234493368041406409998180330665337006102719910762745830243824836142557994487090197712066539758017413832999868909066154348773438246103256131835905299596260544819175566795263295609911645954196693313696813072685444109171312811490736360697217641883048137019060062814191359264665504277492776757871817312519905432916909176906803508219973130026732417429200520058755728003932017534390099416949929855472628042778322418912002904509081049876741655181347417420677970598241138339962837035655255916547991521186058492467883353233738316540983604674256775395490240015801664256085107880320240420996731713327510039928385264627124904076149557822818234045839508523646322887400202290162079797927744478394366763336927739856434938314641311952438636491216252851377615265667278581538416037132105013947476126320400495190698891772402578302801050117737485490394342213081690100661265056963146643440822591425168494085943156625145210084332675301444083799442883071660053582878818238586897741459495879074009544149348454600507713463995446670222229657554689707545308900406722223527839666653456223346549349136219054095795583691581024141741031561426634194215976151920685824583981236056720638306478840159727095837616261439902034106861601806071131887510424231046851196044347398262986474098512589103493956911147250812800863583158648487773186207347338412354750819562105803342377207811263972398164916596481549845613050615496254878099197411177869371094904718429402956311249775229763662487086697192995196439228057771703568264933669982132392305153107686681534421327087895575982892360955823819854890284054402629641103455084686828672141950730338314390902177789312576081042485765573100878272820534050724893896921155091880587817751110056566367217999413912859676076372744067296095140035110457249591118296900662181655295451931413583969795346289632891542488941952534629718826268694374883286509372076738468274544197794196578409775918235867527127861230821172856877992017841703432920228629029872162183128140496122199164026704749404428764108566321455268761990782171167096457103382460065487639749900058820999362707720002543767928396562762569407746507559279935072371127774728664929236789050003766490873042271210909426254548414707442941048013689045747940994081801563140883120869484176392568078477834652558551490087951089069445728546433134149310725418636674519706893533599158916487377155430262261631774379568570744509638770042745356819359217093726425510964311943653327703058523224372834166628670620266681878163221592855050599213022484067206663077035689606581036009976809907339374233270215438957455551577265373102175300282541927881207555632250292681651832640370341398836478395855353376137116925430920938481517029556308138119189545844945158505677774076257789831107063243079984571304884232998163108640966325290646431454586797324137629354789467023150591390413043086305758818539860879592516096515548552939258145284517634964091169934575468708326579003910316017568963004653461542301496591132608126652201520529711598224836163457388065685151738023901159969524711000048298911023005470826079779787783301189933777977221742829114882656848656608716994985937565825181330831731752625002619686351974305917612514307316037288050375893564065968480444732316260693583291137204951524551358019680626227433167281511125924894601377101187676899610229889087771036635534510623969073253981384722989694908398143724137068872276583716677395884702188202044004385300981906672651730409486703703836304194620983806743529541817683273495065402100808962094141586446798791414197571104437424295458161926199126970261992813865347971899352475842617582793593114450031205584987676811302238045250153196538120909512424427871819668305870065208562937553948797716667273549409196603697847633485425385116573549813172431823954940136431676672554602700180562909166910769365918239558049773436441107307785319932500478996291187122590715895591596165004141914769367106743309962040345939572202022912857726036346704071929434321512096483099100075297713218748937272783478267200124938110487508757916787052872151293870306437286230464297224049993033405897868062530010590389116768435642787975524709540577494643859455599599885454485016583110523705692937155850440812894808039724107789758176562270193816275499942334901011969629274244466589707742891196256814428391017980777710588683510808871029185757213081451782486214900530395143285027250766178724307533526288514691663537456592561610506938121944182636307570883330556357097079608220331217647434875976459301101505213518133360054714382863986118513582608585725959116659413875570155677031719970852236984874445066452988867976957762264819846342468997240572674890878199418022680919922116593277401445585174638509562285593973132561669634542123147818583608422387487863001601250404155898192005987859437132942640207861806273444686382538693472667417830807868780687711274479476963639077444313707762822286371402160516610115208331075244566147649501507203148115743505716631869452120424778383569461760886019784757818476177923345659620861684812827207099612614390464592790865615419514349671851322988636856085827770188923651985317956994563256918214963492757830131595335122525254371577199743452151690383830609670966906611874057569144969098819084325648944406889325566183006371273504452506780253155032541008703099495395658419796091774992231905628025665383802206620863976131218830666691212802712609522104530063827628501331715840255864948214034199428474557552638530270233567866520607920765292615459530244685327493091357064049536048626312900532827532114459581848047128588024118133498404189369694437932487769435358595125777759874336452698616370079571555043110307241970611448591109836912838737430495157549951806264169288054656526884301809206997662831555131479899762149893698180768926521809182073076618194877766450979400568811853000642163793984091179221218856168676907511617204839293651131485597796410051237277274277140371910501901181073929437003074346237054569140570064428982042744444867670803871649914557474492636834634284849054511896554996375640392323572189542649502656512581452691598454904225667880066789377502536823353874350063204310744725121090029117445402958117717806527572768315468819774957655876936089976070716462952930556302356575556406533872387507622340538616680388515171120852567143227782686900633525079536203879766746367676282580776289107926302448401834458001507093542719026308875346026109966626891978281573921708158175692466396327272783221965622571244084956072483112262712489275581855175558593981852124489242968020490195839529878723494331459328811117503765754937532771137877881818939367108944868425978241527763942698520066082904244247583627585005256144492149324477751617000927159038085311152454826674956917922744736139148437025801103724968427537558653927212012056092214432199774322244236341463855168943502659475433950478167863107046303248550759193056005495907152834800695273741949664108468440724406940504346248871999671206436823669095503067362893148929991066412906708504063413699127840222287979776347011801760776522165250204881216449736809498252118941583798444696417540022234466739465305921771031406960581450245943255763422594662188109246164832937459204034857427018129543629817602139111384398321825990468552088860107067603788562192376312079950927279662090995621983478555145341679337491246200727665823602361714690557014033162094937936552386213179618316188299817113155954866324461515328539001686999670613902619658938779364876234820070202335557632700102850281439528724575641274046568829372580712651845210551335193984156070500646091103776864023307066493545286915287504855581826135571790542781650593702776422754133415049885736109902152259056593162768694122193697444837602508653447767025613420997382140744545099637115550061309669444776358041369687639836058639091565808968662731984944343058206216940330301841014495115271468103403332890224468468397954462397681306398011704698562684046406384642088619593930021172734760881940124629832687999871688910814986760766880470365942209029075346418076253593742132077561994435351654904105652163917213759690986601378152763138216131593418659545394875308232969731235214505848785842458376776606982361729120821953046216256736541052848584057187164446178418976919376460536457971364555456730676324717310144672276236737273992275087269293281033542032118004290607351668520978508698397825000601619727316911553902874394705831232658940483007097562850511042612488464659814094976893615263564917938696105661375749352772377436557560039334527679087886055783743968980310893619944048097806603914812874408880578855563373174548784274036036701917389224339476731597523622772501083734111478157961099940534825750209261055982397346963715930579110359519122992504758263553504502265796729686217895802397355516251486489554869617366411409365383093014647748975002114743179830930572197462026728472002210220714091567454119230645670437148507517574607553849376637724636032926080143958815205619791363757550237789528938104692986299601926851713079125751501265983036601591688465016100615201021937850407272585777072754819671426987915720724177683306186303027293991580907080349874432406202612643336948430485065926049304632000212645197259450690606172316658506988316726010792759712329814908680892447592411197786722004010747634151656246415359917110263495895748648272509041043067073218342502883980500861636294321984151585395015525995015668454856661394349520828450915739106039261316216922139165040557405493553944090825336541287177120244900943074295643132402172804921022391528744943240780841668249871281826072377510320757875068383907176952235712024164447633179264401142089690693512912181986801071945263391650718532311974986833999804964465731784623466254005031409536878012823615869646506427025266260249997419169454069099216249656315882052415599225111965281797729482291226096627390549386087292908171214752189672912558415913165379545911561545319931326802722032511429620144383957608663169189290204839694184459908480834831495069827002129176813304451526441127669849234211905333131374256523142723346733719902417492733430970778227357928664190828626442830615283261225763125069339300312588523199252397638007327129936341716579220071947816301513423817050564043352706280667538394341825545367527105051526989535119639420250191111696465455914089091078187463362233329806830876215694366007416919319564464271406678447072969607818889605274296977130704090686590035526253319268222908806560463662054561964639314210505713621504509651742368487883498166748185100116085271422435159056900975788477098378844196130572481955295781053033002120347829574569484109559422856081953149586444974380550916817596297261905684483135725367969862432810833836226009189277910846772734575774053725765685184300340243215826836373527768923998259618419860053527535797989492536400886741568792176349200893315137677510172981583306594602492375911245936549349097425419205997762988688901035946402437922637976575383759837520461700067689521882884426345801886878010506392134901860220014055404793946796529517423824943387756708768038739056937778599360548914152756211939364850374138083182803327346907716720880193898765004830483291671668535680182261723666207661119818277316100552508757176985194691577759138207745209060986558341717666061384424760289766861990156255070927737061371610337981013043977394680127715326198329350612578103694659143283357746046976944803245592577665395314792276310015619285015704115700393555948384610128930738320314354061243432760982282729700216186805525113436356555717239645624703578093848336769318700215030333029575240577845967068203920976776373073218497318874994839596642894021211209589210041156868545024600686115477317975960124067222940315184041117991468016086316775323523309064604804875293360478952751591316375639665794993920805015426807225168322689096118693803907736260199756736978354876953130375483718868394175999103587539495189122119411120092103853333168790687091497407665160525813890117821321912996950025545102235461391056679698884479166956153002795887678922146204514936404478159404518482689684379949957214998935109204473732854495467806379571185185587390659761279985320211039053517703842187559497095105682056734035524389140188558362071845698701817905761413885968901184383397372888055095515491543060100011069779680100400888727983803842406148440654092342970399899989442659507403110622893742130591066144892915844754698775762302426152947284942086320838087678353550019143293395095324001490920411332257336912247740750152773980331859925439084534534745474240457124707577566230608248295287803461599688419945865949730031525824723849869973018003866789270362107036719859818015469911942307270190308403872503125329755092386359666343332046217578275161897300413582683177771608519508143452519034494955735373602794277713525522188319521247791967963643649981727937552539267459025914397390167603459655564811377119659454174202973958700929254238547370716005775305649124304537250064211043294846333879332344471687453485391493745797805382806317418405784078521032752166645690591550020398182082255788557776839974577911318395396704472857300724792372562172259849095171859413776815280105343100781921712375208329308844499059805208179628803086671467869994673257601061273661484700389169223421805378831319900277253115398305468946763079363614073115751868226584450856088397713161951549740676874989318599564443627489276479436933504166982666761470735356686950385732412704425367264493263389994202147839770048029021034182861797298203489168491375037562045149584432798780776255471393221526780256850036184657229488103709091939406532684939296064409749573910622892707929135790088240971289961165694184676996121552602965021530409209629997350745526511814725150443329451949231842523045736705688326940333787924259903232271958913757247472327388942620648424187927203382334710986087271100063199169304926484639976234028873399192771396968108119591389074593225237909227577517848909424776502387524262145803188218098561973656494413438639161499994967385780102461790514572659009577684337949655381109436562893918106915624530551280541688117169596033126233249164139116500479639288901520666091203883175416727556455934449964772831001904703666088191924633747898592264126976744364575679567506806185466415249627541442667132845443386055468249102986248464048607421017659409873863547826885651374106035060572163665273687886811061925792115447323944168613564574526825097921313020485386008471299976080879601705365764060880621653339025653708171828538404502324345853585041665731287669603732367818904008093681851922025590973530896841020473430609909779757976124311191772085125083161218920703164845346959878016552441808097562817700790544557669363882502666063688939722552330836787419538035146611350248517008316565020940699219857068239801385968713491844253588018339545092887971244000951116358018596816417175454474294514009625188689955274798579742851046518870596250918689683005940061793900702336272975533118339571582692268412014647820908273108806832382684222741215982586373793162588291407547672045451390002451349904583285529871493184922118678736476406074803011079791329278042684624066393588455613570905366395919135439403173251577468375366808391851273851600963147414555194730780696759035660709034035246968691006273761954522078554059887273185007110575812126005194354608107714821254452869504513177940458419792596533615536182195938837663752093984287270638773896394206955160062396959120050037690137962597083321528632924700599013304590828683730430317344577776375090214384077802096027594213121238178992675668653087129895931498037203508800152588237786367570760134616076169960657754225058613005626408060545816764590909608419253048011598040485307382672709255474789275905952959126043629512448029129352319141114120213384043765638913750887833292892687063496480455172203898830866309985172552615845901608234476138514117916012274607980932965885835213216715963458807599974205775945044891213301986454375795674334955638486439385142331168987492048470527566785014386253108378264873180635786615601357455879479067062876612654647646227226266214789557963996235045989015263098493032445457436077651129864018913835811139599397172515812569813672144656367260244531960677085395368150909970887276651122653107205007546895477515295849740411607633804154842169887251784621513732828358628835975001539818887206356206086296906086108324434171649120083176366439253013988162415882744211536710108909634528950353909182686688409821965874361886105457098948991480245669433036390751359112036288764157995986772450168732644125455571108985115899674382032467068772086762213640501116604560733783913626872607957441487610168055115939652737021370332210462816312055505411107231649016134504448542983116633965190284837898756318979517248848404447276948822844719825657675938160603558695820227394677278849555920946150556739419312016172908510425348957814382881131551178834480346345144184235402513485691509616643375474812584452874254378035914806411090404758231053671695272482828799000914583169941175566365711326770690373329172071988567793999875921185753564225506040076030497899083404904589120219014849722267431327214734674756758228119559554197070829255647134267312552270408320645643418231867343272247645244173218261993778093340663776094742098696353531189502878411478178893765706797087418346020486009549136971493928856863520338380007315208303257631911877207034221430604901389410678073821213708801850225382374951540752802656716976553909286295252811316896034169540845926077610078012710890508230404430769313322760176757780405023656736929152854166386646446227860159837910321870491700082081562932492849047219399282897960984834995367651763942020933354015684254060166226117868845877344129910107462387125369663380496809439145392081530289667204341125223728398308102443225286179174640130943488545175015557051756234420016214859505134751826552261659553006466590029695497292910820465052831212971045307408005841747292600175188063031277088616553159057094167866976800119789649296445407694280675010626216912645278861026270222726196478470682253055658389169725947899254881809669509873317310360518416578000246306657014721034110594754579048586723760334248050723744260423012624432935711194899926098305822605550833968968842016160951975457066331494692742558111413062491121649474468103416999624224879231174267093038818885890797492253039503825885649164886869628713502534392606623628578045600794590029377772612910478690190063689816214125839669988160145001455691678771971376810051111032303074766642389873266194267376385250672725790880369950062398698299759005420638640789368577996783284864940896018804771201829385681117145193337558750183524362251939999462888721447304528080181644601540408746772800914695303144791838565184955045174885296041088940213628757196842998370113232968067623508301783788786932913870543586617564092895928046191555913215860900414004757920507114361139465911790457548845861652450845606078418052419754166755873215748522814760620081844430034329921567517611754116060471867728143274096509100834076720158488649148372244856375705997722110285841506095116771344969606230141599365337834715831209318998122336900982299585987480185474042955236972723235162298677202359087387499713430807526086609588064322418502141401851890110231286434382986275344374977528185070181248696156712911659311858915249940031432085759435414063320907692811640425257247372780369547599916805589443508192996244676092952955515253203960748708422609969691307419739575497802544340594504844504634418084377346478376995161806835860133483106891454346661222564425364197458280970966758644335764902176569681515448157350033591910120986206565990147319674115621223056279060858627701698152528012991879014808231102243034367553636842742791561220910434921977470244065532211705330385828293352848172994239979257090890503588474364920935871936276791254587172074363288731604257282579880035985761826208579636125609377205593862153091340081187787677329952490937352654949310860831378399960869754102087435570985709635078937338254119023459001946532057326082757133936878428843581820922934196437374479073256004617626468309186327121510814433033688997692821084678754229500613432266976028198024603981389643676391466948610633895797500443460000454383530098644331824786276996628765403983175196682757895130924595804718095948178076097256783804240191688691968465070565302619709070929339634313402961385049388359086669638330126362031893591238504870985631389122093615130997980365440808371208697398155372696400709458115166642909918621056224555548161609623506697742249248809497503176377621065131311875409275683700624577272765208017613954549936588663466564854151730813199274401829991709834775259901403783619430148347240249390848559127763885654376266179949790460561410165747253973286745234704237961863425550276718923142292335918144957780676436589113438720289593217441458230627250914068200002175365007907058107100815874081194732087154737634736594013251349216706449229596402679786805661335848542808115056229183699549398647787277175210459493020092796692351944693192733292256853717983742111683645448408360940031271424153861599993291902162760236082120630355798360756490231744212584993596604295978084424866401549214430658908669019294371928187533235482731901901180592984999041220618951178882409349871614370257630473093390872839379110685043617247277582521965033463482987978081191108557802222237960710525986553363074653566228750318577136404160662591924186405236379031772699391579185397078176117014559928278146486393862709691796077696846449064971703299983587436838669639713976895932987590426480014058681166962145772275022840366316692915341132649958903011504249778632446645824573873467183705626294077770295862586373744761768625955439902543183360943233336183039963027628136166779216410616702583918198563229524568452541854863219806067440282447047863528823894709684246684387646516139073267711421631370301705915757910637377707873667262819513683383682688285568185585634154341327995520158354291292640447146839509455018479596958953909491418426823281700129812730091666853103659021845890061369506785967211152921446625098746115279783721624277420392581370541838173058390129006041458338058688643425100295982555534489449717303983798514698050830659045624794183880529223139512355503718104538787966494508965631985767396619671320013751440986053609506901315088721876505190252957327440276861072948104055540050165832689209841702771846969931525763983786894548005011761774593521435750086587039098229378547190007362874007714569631887895556597923332874930210557495150286213186171374779227430194331492000785003824988220582689414515444941928528922711350441623163114339223512226493699087840488113485421266680244927541523195663968351279178907952497553651148118954604587871467912988903880595749021050260752166727637120996560696374562194671722178742438271154023013679142730332069083369566075631444479314839440522417029242243570662956342782195886020680129777386225580590849434845269908608559951031438412639755340228577122497388617532332746283440683866489837860606966704884763951482140015181266470513873557851623658372755259771104591200674400804128139325600893494248557571976808480673778382790504117792543210226419446960806327512768687564183144056561691315864257438604848830383788072447621321410960846451511640732874153969295445883553459637600224612578507404434812232411934431090604145231844921351105274458642663815382400757271268300315231307964148283821161929350159697436024970193684497251786505707703847710031358507681380338545104538822879179646459700418826076663580770342817123657180566634500880819965046930846119260851435302398370060219695937390352312039645047552210513224796687464383226915955687807491651713946194394702931408329663605925834051719568194224366399903789740785048312960361945198060779039812187451161975249240078442374996267054543077429672249890835592650893789548649993624133997686911918442744331439265704373230095559152574714996751828042561262167705001884065181597422497265434244886950636163963849436139562999020609608359642901471249658573749457736626389740374248807322005163190525594599887542428465025836568869204474753380113168724031073363972510603742087954648381580384402773201857149676511411432282184274894703842392065289274642434098017810356988661231046529598295965838393163573528961591730235736825956587090255959697910856086833486391615288654746035754715817840715588506822052077118964657097893726342884914730630342375300458851422470438806647957351424691715489391085418694409255237645776982338183380715952053163789536247853821342344893365709262979005366662102621831684801099322950840239763315106408968202690953665385875803479333118514376181607791760931417499990261329938545360338880705537254718987549384857923349378044064232503231366670457910815214430557684547710202322826213948290096675706142229768783959026774024312084962949401624792352676273301796955059689479997291848781753327730625642685188244497891762732758510087765773014596515263593920025585559898766908990084289543191300043662792123090691160487590125971392717508699795342487380556467425243670275106339446996010123709739679242297066036256424306268248421897980829125169697854858464437846991107215594016277317144268141281078932525935959769089968941517514556435365136059187501636154725276560459086800438097936369016438598920816712807076111566945124195489267423610092407910059106502915690740173850996694039896461052835880751616315857531087428628695889498462949010845439056555680266801378199569338471607667604141551440209185218046262978781906229108245640711203062725318615703178615526532348890452624368214050033528614138153980834139763076720235695539733875837425577433722170483484360993819558354354749381135559977341532990203348438101386994949097224159924478657001688941547585674869256942102906762747416269138917755849613934894691740185028395908808395751318466998757899201425497189863403377488559284045760203181649666292766441337410211668721050296972372459520654032340518887498339527633717293015713141854408176184418641724436370813936453275030392959078833326069350448168254865150493638194295967398217932284089998642077978018201589777240362694874197261546626704831003868829890843692352186594739010487142925819040961137279628899659307910999340199443987373129826262908202099419480508452155747950695689037888625425327975961160292519009706189792713202596842399830828339849104017484444942936322243196229090830265970972300004347079250518882362998380515343378737805968113976668676375841562223788818762174487052571766243759098027926923012016464363583951090655193562953803572464642903091384584922800191234911555126331546762444028691167733835475056088553027367441363082585956993408643130128133723745817975524504190533018091972065519645964490683287581435728870821777409850331875438820711573741338530494922800260194618945067758296358924566559745883116964078027166844486665612466111422959794798836236224272830165871956474607462973622152891196444597435968145315098919485989334268832868341145385562281827888446270524237790775564544741664075065387125150368998264771936332607866306312657293168199850148603088609302930075396148336153103827844098797519589435167943754754431619546239659801117543174253059521524045377671541457207593496803873607230284961973987969163399422958809298314833257501493572882332488989780023625317133877769010530036162312690627083709329321340018514563840705792077824237860011051920678476805916921601998835213332003943679846392605181553187458871782459750147246911308815229590060978394430466858567328539840878543176434463144721221514488111359968449852790624466781176483198882977913078998136428207834705077513586852561840875324657249702730273883580769029514008138776771120402289779780074550359911060451456378477884668541346967605485282656693521769737461255242336357695837173328302729710762261798139484455380029895284409102416585772537409705657756779108337782481001703848757741310995139090520123212581159725698773957600790205313604210523184057986471118209043630484267415536341396054211946459002917713261695649682976683695573566077634726888169008265984299809616728645398812462482318355564696868485040943647675892190852887101158680862351317678702393982405277368084317616027081137817306004813265465642561514328244550021597872367686352560476866607726269616944097683808569065610701160631073396956854034907002089755822716512921203535394591541356807735347717422112067037437643938674361949864649309195353011233965932495533368001462754274295964110118437564265531472735470423440592566099596425394653095449894586740655669144704604270997641248191099631631686502106384990250361909056745425666677185679384113036141599472904434288307153151246604229649563879247157656206547054734092796007989909404729747814913110342527620580964821057852922099756927247072578585655423863794477618211706291381784597629553458006938863738952894084466580097136105495793631591181450907437920166542214362583797040751210478742305387777975310991267070491269498630658957465204387547284570004312001000845539903720052468797640123966070223785158517650578507695808254113542385503326037122955000441405544143002066490804187118754384416700214319506336719579181855438265865040750302376328313211868318032170887333893611064981207958189581231143794655468360614640453803778043355600026521448680407779055872293220978084442908448232290268390350355837832994689767062415043094706437635740936365678141180249433669225424721644614054752603689498501099927087682252942417231386357399157020736807619302574464595968163476825131737988936883459647086711252721125329443181744009776729369550070030676064347202326083643203247082247416339468189397861152142103268017728602725336775506953361177403237876525017904048990976126977887758653362428246982050280247226740759595415854044927089802208397796734320940685094183667293083851711072119038831722631391639367187849933156501669195260232872743308597511592397134709092487425545835835240526070578871088073343057618607314345902061240257616164791894891886962555010219283408278389736706805422830573568446375097321394279668394981590564417476184834679287172201382074528672438486206150883905695668377395556916727250715035554504294215776346197266429801266292885046971295919473321139670017323913751840577817600283583850489152017856261469827565376163032771142489843388891782010364447631592055835930244765230288148916379985251334473380425496368101097768242516364475529642994021683678405949873968303324810062682910089305881072564335853471494129440267055253504714896228291846000340414430752461888085355458268880712336569679539082751351935636132418632455860941105518330630575105913185881522200276574317391390795343271613239597013219049090340076476160057403555956860395612342740537966745448405918151958110094249428497619023049010187354835023851457404224008002434396455728508383489994671521533377653730627913565316653171591343298007176953152119140402323768341561492675653723958464191251468679269507713007065628087615154296512931848569675020079692787857988413545499558975816376012875239668754606117290790983908784560125819400671511583640300774371714691239078855100549932936951621130590577838982241667745631457054992925550313391455836612471677592889626035896699878888319114413682441448580474957972421896997345445957053581154030845900677068084864446654265305325310753444830156941441170042747547493767239641551898366114284348874464345119788300996579519818723052424141166124435930546891137603691230177981620554704848801239780580700301517234645464625153485312602900769982045244272841707729332034474429159886857572963228548327974346169509209725224815099482544501582422796260014531805462067222136254822450555396697712682042470457926423847270664598245435990157844697581903411548434555551614779788234923938355484318774424889206656799437582844025655351519961078327740170286564858563976810041379953328394610774905457042034631111730424946313945548334356623686202598923148378569929414245197006655720364550046719321940233383050793558929141419977515907089788913367513390765679908541657350323074574779823480800008516970466277685451110444425106919749535387154287554023554319726200316585130477131854172186049526867668691133556726979908298666372578805098493406577490253314203244311891396524534202983523023202075968926561615762611524560141887675741851961495113107470046844641138525129408575194562197299554843369475877654473034355636721824491255018127758981176348599587769462765080331144727343367052823902448588087371039351568006929952630049309367267354061310824488108865104976276344671555421487785695617487871595616619432528316030636802585961581923857838901899174697092361076512686895592198225960817066147348185079237940264957082356332497011232929059381561348876164956403361435128544659760623703980729591726992911171582401739535688915827435171167315949868508657172592511435961549268874081295620656160202872602692412665586174918029695590535351697011179690203008262530622591884672912208942385568824468190247607525494366305558937809275582191276070678823148482613068547749674206638148489932114231208863148568238042025086433674047463523412163021932534125540584449364900071577790251805029934358288137745599952891623688930438670142643453085697220822900272768585562812396182085666511594399819185446938029025102488734092068189669765507549626799267454435804763904723834891764830489632241671528219036368168603875551729630194005452555320701047168533354213474058254194153582763055290224433159605386567711385790665724219214869943161703991404664688492541246330030981165187799045341771560864597188963971050316910596190897436393155407294000534446412739436921273371464057042710301914164848174965331367725492729993944271391386977104408023270307712723975314572254822906982470855746649086458284562115800040327327996801950600488265588837623907493353725637155543214210976214012171488720555672386944122908288226170771500476077647567812492544634771351429878411119228381874546172002185327459398384856374200776824971557624370762142784387825600972832187016560636664699114209201519562214272696816048800005894739114170208814395922701208304912954023943553334808327059053504581369645374891675578630505187777303728329957239254057892584403722910318207441945342479355655790272016853558252200351530814554013282704801691966483132633310377732766949803190668653151325841202674276718552108335375083489968697460237769291592305075216538701196847111244798918800076691101953821203365284859411266256224980586557078706861545447624047998213447112295413122062819660701744217867902949757355462919833203601909233372239391985524291575999661334247425479236996224613170870068649421141885611485873635015825494033173202257563823412504077528326919107505966515828924727410328995130445719541187547362287836933884999071337743908363040319769740600078910250398608468787210461425123880718260942693287408001405294591961766263799512192899732103595789344951000089863028401202961001673610961767030527231987373694690471392278531576709498877509285054559484563874261106556066438969803995922170968192670417790495311017351235868808295312915411498089693243821174028785101698044956859017054514804823220217494348700685734333776035811959992676713657437536453373827501523115273425853219100683504948633904495276970119294382815430446918192853276500391480916644243579337517823462780157208895148126084679791681353280813001641261107510893554873796633125421241210607443143203736447484459437714734336118675568845190040996044097091886827526943066485607716039564711526528725212628048056789678589251699894952482663602520165709189066180925887270864178129627930581389727024405653141542461631011916957334877980909599320698072631137363155900033706277526530935102685063960361800124590525290197474213704915058223546505490136330535004254291009537523670509269607098744077088815868793252291250985745024417496200523157735480414900643886526413477067824774607433477716535003827012049378138375549797031527551317656988051738128751087795557118094423147224164854627933498636847314774352704474028212183039438067290783966774033424209755152196490307442876841709386112594583184412480969453676687722420167008232841014826798109377261128165272236364275014119506438884855443990669050165927547012404084790785084650992516816190924786267158106963205839450373212006732009658805455866063477154363140590865330175966902928893592292091530006030129960794202176487286801722705267761465168771178779961903574659833197652424649508577114883688402815137719013418537988476207653780194006727665822831292401403870194886974468915445861148058982468497054163598615584804451443510410863346024448133393628315121181007018420127816834362253864514359500948920959674700604330888799441167161113074735239753703471039521914906892930566212230414340714607895596865442722294334850203978141891249033184655495881053397595269305558920277234997528616100523133581824650942551237122921189410496156856439694155358425808798633572392523754195584808647427702214975424791513206845548541901065621470971955287749248415885990656839868633780405186327268069154540228536135011125320245277886332237011315123294758586640912918792616537595384701363628888450040176307621432191662433112046706423756431558482379369703707356567760388755008635511420461773798079716619797492090792896398609364172996645842735381705445101174936068450130704101964075689312958230153213857242739337371442243668045740476200076807307605037243678185211689667266509564685847001906291975382182903430071260419270081252987038834949145756804678433348972710212491019282050276709223868410383999349609822989715405116329686031378268470605066924478636079844499141007983176709403302802518507570722736625532437554478617396448396152498233625769304329056374302680805717650631549414934103903782912425615400617548384988000160603140495065704013464706527251412092802469709137179850017790872364900442067680317018204784137965965526976510490467637614066753691250036310202272250416107481651734986183614880868535260924549154426322285746050638588061333961470094142451667840816819251188263451641121073796681580541399328991036509429007654148662773023744886095422165933208090566675809788451881273163115019238055364642193519914950423706513976035740040157989616061907248086608988918780167613982130445286446963772897544343670646908409222143847189953796587402199083102650914160475886847485380551968442332029765143999001413979916867094022059689206223410851589049532131271854853900954683994674639600070836636344384879351835115407300139756716337983859356580613950255625452755507340667335582717590685353751000048160142526830574027840054630236337340804306078006951759995490873976661746867499722276068798386194759861647086818869858526162616947033186424260939291645105521048859441788057857319534469573900744340186963344131948326766734611956972118204667836137772097668803934985465808167761966643522739804541225770842852255277645945899198316969807743951729103410097027126997693878915418533270171669739643440819034470056355487340287456691850815998075901824958881168023375595555363994549988421467992691296042618118129142766123999355840617152127212994450306651844664301708838986538198369288731737683636555337988672973946894769871083579788326582159358364843754576271333128638999139571050872204775633812787778823768988197109714503142329421885207555809148080785339640377714882658375419936807318310303862217834242867970265552290006651561309940498769252150984068705501891020258147176218049975440571523479879833757397401431238862684290646338181575601246382159582169815604878796624579363509109659150951339031179656887178148764395710023580372247208417168114173187550808303375249006358712732705231741485068147058405673286872382616706926358648443327661313204968753620773630366079503862066258271066201484058566442353984908515470403845513637135989527302182503639867769771489832894809978167860731330149492150801394543522855505674356062719415245622121909445145970950063651303387820138317087262080814858806739028703395540140487709938394328897155294828727425830733125705944214284287109596844630091402009003543529593198637342859205986069517525995155907122413270219774768949200230323399774914959722389199796399240937770541253348550072527064999916798027508455529886029629361128931830843410115306096935324185481851649980179089683433633306667128447742577760844646597392796603319774741508768101271124222363736917173174648095130256882182088611194500729684199938797467418581086668633310556049768161609047997042710044540256015455806090816770100990929782355609971148460258510503382602971547199779690869160976690555157589987166517587555551163804878836213928693724657776564078438698246826338835708773501189215317523506794306518079453567034768267980144203347177405348418325594113956982929640469218591835906385580852184995352084772098028741808385666740716218333231338618677241427425983952467406610461829026882177796979048942243927939991320475868118107563322948464145020861562894410194366067471442989784197627556876201047196622736411037879010838540885480062356910784770141994920081072404982911163755099453311129793964563284242890434857052012868203617004224482027992411750468190533138574654106722849065827734248443733863116365833524398106805179814637553854122278001028530159369437647028706996216456662628192587566179018098358869960896017660293291959854562002963895524730247752608220004808374319749156442131235927470906872421390487976825932811486701281176437599474679493871847334128654311717717059439693834177729099318012997497233871635834781793167037120874489644582577020161603871729015861802959092121643861713707887973777933270177370556638791894155962320776897771770934999768074941812639585523954914752272542905759646046561873350618858045155550084851622565843268705166127472884766242806401158201698159051007686018214602924314958046237136392298381559266808492914008021202127638105000178239382646367405698074853471151004011372314299990284221008709370520052118218096841728111269247292215615375487105794222698526205931710020285072015325224581854596425533146108179999302603142896686438533210339075621373539225300749221877377879993863564961228672931232052047606804927195304031704831512074135385525114879435389446774126797740118453812653007222743318007415647903596059852547473561029967123389008905686942336861668442520369630691818994664323363334594918012919002787980270165686374100507983147831038853741776480878826451888662030758833267458473061716906782212214848472695021298419427613056031386605735884326483878942247897707200449177334393019580412154525201523928761967815366191100344620208112803295033441651661433774530709639336133900059576845931934665864899313638495695198172440779275976488227438697597416838369791896056075952609812993448950382677699171405599081900679899182441834568529925704069859044551536251125935816783233498435640412512352926663952926984821617404950494056713476344993306755743511220139103379438777272821824408556348097514056869758012253209555452910543441236192097564241620549433447705945265824883637403585559996585908358199076632907634161600310393590290163938960367870026371244330215795046703382926517494209311935509882587219579410866403206241117240318948088294735779207201598844906127701910101727492226431905156788207564179450588282522060795714399805536469283751563624361656522477821673986082977089548492175467599816116243450794303396623888450712166751342615186221940228549900498466560625726202438660570221161778664988119192305198645208095303926340171658928229000475841567199479060882983960632134198606416173725715919758071064436698076201978052921217609513227353990992428043062569481986124012430894809637778385173961750198225176331776508495820646064858221374548436528308709216715965854301406979628418024666315170191001835532548530939254595416533357768789693834212785118236042776357445491091543125129081376867101864401064505668754824258266912747828475002225584374217229984825703511018135225460585431958796307715341253296789148716362991336495000715805660966372579859535970165267296157818075909016936550826428319819581360021932765756019015385983585598503811163091039482521743930211095151808107141498144123745941213802505736285137695494742569813570243577380630211614738121219380796375088860262825621198940027086537880169830990978150815922775220313855116563751144630548556634787012119274497452073646696739019419516443914858601135115991722039152884912633679838347188583633501362311117298653906132344371529735550927712139361772142301908891809532040543417723353262179379282465559618033717894631074201842647008782712009819858953495358302455362374950947843576243671585446417520795779396812871710080138530015039992472252995601501461151932402263435568737500858485945785821138952371775937160493879209117230780175532914544222898044504801031567508852019361273119466959724903404213531345653992879065230316155262164178213860637154744622737803263016808595047623082738661254805552418636925161710050287448198140144422843742099405414160754764484755626183841497876905294931449234327752564981576237052894268398296583366461706434362812813245148469369277958141529193143878536342753384880696138000499494022822278802316774173055111051067576222344958735022517132676215168101814865678128913313498353731292102764093237940931006272165032096059891414455636084713848858325424048238580184146216690191005963963713215844546222165975493562423766462170399060220187571770482216831941723932754768395647063558324266815615830093400729432277424829555844121339471566246759037613998325004172248429502908056912820609182792452986223987759984501503301889932329728403458450386730689430112939905049471180314205402650212060362670264335655429903998992830987573831181158070236198806095050300100318709826267558600071977139310140524828773136620295831637407788059595906579422089071048018599277986013219063278127581882170462085668383961538202440770184025705718687430799848889726346044318652462500956817150907774813099957940244543041427480728512402681427677315387139142402680892288467006089521691240007857853305058328765879975114715234184426811259019316275235076823416581752475059187571054604527535168775175807095064325204939627177680724393973790767253746853565033531029324876390484945986596695931292537643246326188322500041094478709019642331865517487464147793055481293850922138579902544548405347959196425475797254281881001822642987261037306232840035191998705200231571676240478893929530557538367626987508802912041316129677206867330944137466305651042340517531540111520284493358172468743721102226784650806063096392557199666488117939472233730320692647050859803938363766927327071586147200295749947966795290100530585671916081402362992032964423446669932323701309592457514839680152720973274783150247192228111711242168199289066677962167642197977788948721334632778687764691723909460245786933644404445643581323382122623046327913040801323559207356849979918398442738678523911913897611541919917349909785413090273677787792606876200323989802893479446405456623832446616952231586845664422828033104060958824952708155220356656974455628620415192324749470198174631691066426088076540830430566344284431562675632048062625456826651681238033903168649021048763137849477351642456179530864029776413176930538347909013935705228782454931569370085652741064327231467437559633755157155980212820173459648925907369612169479887284430833761978830006721989523996744206099120429718760012094890902327478916381951841120634006711774686154161775427769114035153672202362212790867956148393041868568386315859713589584426702212101090572231910641184284885997487693105217108101170457563038460775215850450538182711970111423594914345787700353409467792780404135967140521691955454387510575241411128630276472370457476718847860637018709475759127069796331853735899195646179951046797392368108633678447738773247597432165200034075823181252181783964981242285474998383430447996105595296771520729963266930277197066354882920200377607274627174294880246919783384391803209265184515192372818870562132171319346382135981683470697786217511507616253540676826115492250741982306930685537192914454490547324993325023723470321708779104177965037465036234763628634982208350142637300398172829966541375228850999712261350180993874705509039567805123083770329170862908169114084276504282991376049746325541905218501742542167445312592229049907517396106728456892279004302300446525978305653167438014036768751111688590832128590965953322717835114411568527060893616413702258091284945783892155835010144588066318826022317647901200672074590346514792773501619524084935408283523829778673962647405198945118578112002684983933435291634151449864830416157837995060661963702038483807579691881152283491636944783296321047139960028922509797384100276513047460992451941733926949413430965317241122575644671994901327289699694183713764157956083380798608427574534537601156010605215673496995833877945969647388773928989915827101046450317619761477810199410448339440171319415970107814150345505943795920116101295046387904136959573674260098064230234500964824769562821864702448569792194008416623566681943692926039417273318162898971368540458813060860808500967092833288289945880121519958276727354357041942071538302091644431920877222035483866963717759206173728678942072298878312711918251758940536360185583629815371829218370732633169094015947134848744390263533970371823545007854948605642691990554538130586515546185936897047078949817346332556998012368598298301697925631394619929398146769286401804903313875116311831734839955943286566951109326813817510977314018323234995354499119100316151733716272244153657063898950763943453426847643188714553361271094175044551612365418298762876510049188002544556744170230803278190875331132395894416373801945482351162448636058676651400641918069085160439030123078116048886921515685590928580673592343449633298110333822711707789206352529421022160735199301846640746241692073487360597170850603715718721946229738998114299777141721967434836772755281721509474694214751240324601360998272082647733343972204720048512390556995733797338011832777056918954759184726523690700283626800264367771516032770922056187799043879465721069900137443145864153680138190431122582866472364513094155159459208626311136824482463410182858369455794487178907341251784652025354482398870951997043671758974353397728934485614790079604667918993372904528595799333216449237105255890050214711555543532012808589384784778443295778548756188741411474966342767328724394241587906998119997060456791858153989373198326630387305507581243441905519291197122598797980526133014000796576103942704100565203448068018293101854969690836639235142453120351923322866858004788093503479335575805181702166035499780123686317524870686637399910002897369690479373135645932048234155604816065248419613833142334626700172557127096154436857277599207216064292677634048652156732919983995388130292987357837790609740354960713529494129818465593908016233829406998430162821761734248949318162116626378460057242762440044735389547769381397489373603562550449084963014468731386014269669643560249266063873686236136708321054182405764682477085938462885456603181668195197143050606087081798258102405279398875124095707681631799470281274754524712614848830219105560080453994639009335349073515257037954140526420499937194283718637965936914293140902834297297683178875309315435178290773253204607643761457692705949157814877968745167572904582973817867166558660503215691154588670336722806344773883801714293019650378028673176656970329723151561911942608712541389275427973934738923033619245616758865519265400319605193824181289745430336572907436053781960817453258541206808070593644599422035818645800095926004238165288218763872271336509353995593425496603945550632919678595970943719767503083576086965774604238044024437447772277339169246096790760632442629791423508643033528001422611238927465871833862388558138922333584459059060555262354793843180326804959298042682381383685823420892724360339957726864490325987297141072672924623610672087136422019570843606281447385251479308160256738267815007283902937852629768278466611080493388918664268032547340958894739172650314532428944224859027650756549748138068338390653818462958562147690441630328426487536225594366848130267856318702093995513774762864125335563728473978152481061023664248090967780555023196976117126487926597697891611599407330935849471635849718086751570997545687767524140140119463618835507954064639706684474541172840319934622586127508104113387199374137874148513355025327669542473635108609790126845261515759062037903211245392067860558659122505048407404086180319686942107488731789384386499562354372009057135549242109645396899111300392385502118600241542950293218140359775871187381320941943782048011362851715959020228135437826421544967122993181847030991534778728111602708180280284039637489069598721989249787498754649490252148610928068040028567054860746951316494466263157575413648340187522714398620595275762148795559896155794354563351296790919423545330458538345214156930265892397786497235258950071056613079963547783100411616913739974079200211829976651402969578267425249456793715117407635215024681771361558619257751518944764304902878115568696543642929988117327816116425153380326695667618475542345727927156594533596152892168299904294200406167413761381278564344866128889711795358390693724325801501635461586283878890412576995017184440965897773492484600683131268325385391735871414639299570240351486557179527879843949698338599415263190381227868670448172334824985888969195793086488370026502823982164389057949523466206627219919570232930648149671167673831479531855923903554893409076864641406843146656402441058662594363828808319183291934122595351202388125488883969514566262419496354774208302196533301759470011152461366530898184854093810119639143802091986093967606598167578887772287836569938024179847662231946296097720546001652421971264765487772577479213820262915385687211675768550241384882310162041080513759026392736109299384022107515494916721085555756748096395169933344309513469740484180429021116587165792340141179486357068579865081602941006613280448096410925799617003043166364549247425452007122245712806749510028601065550851479139739945241821297632124550197016730380933291638954002605846123422928106588642851415305320727795447303100211138740577590375353875419640301375636029491635292996202809443569178675680482111704224907987052404120987402899904702584360456490083172244096066306828339800728765955709798969293508564868554368419022114721952311285494327004879476419985417447467565776143891902427979755940139448854857212362157399338468050828738434967967310841442995584746425591701204587797279585828976009188903416251030778326804591272360226028861175720716206123511322952041751700931563942180192174267902484536941645106506088614161676980402075239684570373614989096452595162430341089709196027982427739901185514147755433512142455245567982571751039461170721601054252624997358976118952575069122187817696304356430575964153717722358594456415821838638936632917483753588263305091701038752184965406514673752762481560041497378207693096617661367080161460653989842524584278297587672882051344520793747304198606747615330727620269660478726291360579579993521860859577146497076286893004032701885900152591189401328558591519184948013187528087827161682011069315586710178242728420529601524052517627585361907736590808539988435978169232745671834220938219900806410789900166614413236948193422227531937585413271410381741968844743192810957486572698642798483314086398494026409106430608988215984611557091041091140284959031082881624855666780552177986533331476539971677169297218522222123682095317587793389923660364270237146856436055939935743808027400169080227839850887151007579333357636851415984769395048242862336555844949353035946389753464681687254729678964050203784588624073414711845815104378511333966539782416186001896044628209745025279547156854663646152977838790618628226421134202560049942050239255227423807708962672717619253120120422621445201920736502298474530619200749543466326554995038845342432799941218354966696581657082830244612455474447165206602566711112423936150084252837786817673693348421302996197533447324622472485106124523034919057846214210647708006561860243763818802168360647056035075881461709006206357775803417061963367488420050708288713051572341092149933251062421187868560146096377580339418008205850328185360526209612317490033857487392330412129727870575803166939433140893128023923272946565560331351879247482478551172116109359174302429471071687216608684736522106231461909563385306483169317027423047195807437425711723819147549397151817770077499858809523118836499588018817309065736665707211337329720112746835876699593386255179538376511005868899834949012715552923197949855082711739025073591876543922084739561044783278457145459550854515980358709329200470548196698919980167205037098103273503886765901154365420083117828956023088513465528636517416005825726513214605864964156682920158314909267511137267190100268644679373199294644488231889120769410769017198656663817479569689855460132605205846115109390372763487592110363455096033175121079804027386373567929600193266630305706561543460009841879802552151564996676434396593214352697004373527043205279740868039387506778229283266910976299601845594141829085637929029858324724986255096416447858947044816653357008442059741683219722030165038455974361792489494007588740862518919062165586805178723754925969065500958092038654787357182559723347295207134364897198916341106101074671832761465846636040904015439642369851280633221219198672196204445052521423124509201747030235874337115963953233877519839151714186763604618235436137765020893256014396861067538861825813070182428429343469050712548505067244438724760147603560704664726111267507513113112600864378219711673827168380790453663625708779982239659909491064783605471480317832634327843769430847101937944875346974231631390648150680010568484900633231448234899707286864728750025805806934657190157917726797566866263461690892603549553263140000286828845104588891563138998558949657254613523778475527192855787958839402767701137679700336633993047005281234837967641969003028632205181639410636580717061787676596404090307199165295886454476551780551489419729994881978152300275038521635020783987757080233815735121047339331447587200081819516720242819931714488509334034692575966414144934284064151239390062285468846348356977851474119269713658410866183199184546898543975186987160291044330695797069294509598131606368421306203966805209582550896116362087563214598762026228844768076940124083635120699191426901078756264235694768647127701148765912906657433062485148235014029723848879537551593185897977380950367052628254167808368591505615519125869252684039792042636037998719041338787977920485864755902049826415810402012461259335742586994693883274493073361714056807915738083900477501545575428852928751760857286007236794830464767514192769199639970626728698678666918419973722323123741362353126744252403393819272335024705335101589207546485211225635295682563626227656252904918779652525839928925126907013869429112423662654659428710034432038263669842299858813867144217220960286175335852486063356113864413449595486082477882544375320026159804619243007196096847736834004992389003830676648094948441684862702156580346540628336486589381148440520789910639269054712529167121723781945211704348089174870331711518870155831298472163868650418034650420573323027201847694604049694582382667428574497795261693000533026134082860420525504983647652845316430895370797425394003010549111720127623720447404257718335595405717627007639909236621606981461635994251942127919411457759672419424488598278093285080575739081447928674012511695815307004005827688063748569510425796594484296447295789364995038213391954049130334573501777929208781668751275594229496329905603814527541298786503663202062609465369051263039002197612458061625022696752586439633757259656881914080059161490865658040276866429923046891092657987779177630165312206252533152458954860940337460034253302311863248603600739426103968990014047485513892359448097909277770900774893985048983540984609964369414685371317760789785450988886705126018488557849164488381188645941524493904225291853694780204145448171377733566536744553464711934002459919326463767723501976727184033455503445251153739196424318593542940599703639690202914685656683066966029773972746569286318432061414528303990705295035861837626376346922176783597933597163156167694085829421017664316091213429557996198946272276819838977507045971159598027341471857547989388785381613882686478323921854091724014374749849325624819530718393309882262534936015133196301467733181830901312675886727786537461180090567869407394197207052480023902403470062937791772884791647630068578111308859736620353441703844204496506777570464339650962307475643178957607624611197173078540983722161819661486492189726005262976025573480626755144860119250552879083302084431135616231773060521907085747724707295901286090486199436244377979852537421365211615260126110693242241456230839481874993337173934114654927828728079312154065826219310969116845232004043418100879552223358178555306792102961536012601132846116658723405651421967951929322840945908551583018143139105895322660905032692464245507228141769580419633783487429006581962240951437968450187823251718330558572435244881151419540698524671661414876650147593417749363880885034203451248888061481927633189168973855247724701990153652626723015298337655417232539136405786902047468917513297532142993733516873678548854328996856675329263314788005218298896493902328416881220195730831203671781515782946082402148742172847252483213302256144026358867532614482684403569090376995223416694502041407744955869611193838573779077877684164878433080118228690308450564791962368373607226327932946021269506426286473947249688754906456979276925386310210150858917281385023094646191896854617328753500999262227274514988969665627051007823955771112316143936152929828268054322638341139075323526621483863375277457900143479432720600456399195728574225783875922990406099735505155754570037010145819474672373638275662707237298384353638966185748334153264995684384398834499920327483863072467346998706312050196140343253186068721308217238687439698651782612974377462997527775344466747578632235081916991651600689528601631063337676493580622586660617949611516048372950078199136502547385658144762099651820263939495068978685117134357629736431263385039457357243546377625516891523135987648406634030377243905027876904595414678665417200100058766505630357896422616129660816020236668947210595341114517897991068720953787715846855536416117042239796322938463181203906384334975586627451645092011035906685119746162270331500018014499842307532754509998272264288678985485073235638868947868091601186148348209537980076043454129599595089956380873884587356667095586207433960934471210229927560979599368229853497402411261671019546412739338469215788515355921210515088673675724310408712165368817558182097092662679686577931563860712262986081071376020349294832889580872921471286929180377293755775047346242121751190515538697226230719751408820561784464773326248750313413805957518073049709414562298042628139939797825511179074933822032914608820102880129919188301474359292227963854638257886188937339234623834708334271138575409000028720203479822979754848054332540933278815014766895505709932699842803815931370056109192393853781917209308671852974787339868148371199550250240436490662849681280182841650999389315235532193781528481527193208789635513759859039834577745298737643032952794724649977824359567608883351278215819754304452044761663883837076516757474720353253733521667598497925023518752303430275537170554697696546627468896122188176716609646492578567188510550581086068036105392047489629502491177104527653834357558769382376250012253593483092877818700566847802766953999412084963528861466189322235487346083303046232200598757081776434196838112513918611997381196044978160019668051856987615790483022645326287941683911008776747411496297464091746173289492775893780290625770846794145773664322791570883995789428848278663105797135146542322130398723552935120221362487171664733684114505992214937057195177711532366893481718444984880587231943659434956024476312632841120452251735049513894130975161064017491092592348074183830382477306757132390241872413517705763446822372305396584911672624105288588344104393534768398760680637436920243352574969541705961114589962661229443210856518478872443518572960952723948981453269118817480606153834259246701165460084939527232928603506136124130169276754249939577295702619501733415202359168677476653057708497561621045540599942779725097149081447774406207379229922238668889378214890362609479855876439737400698871846377180771563400764710951598909468515827758295632167062865210751557003329763921571166934698886560627732875355853192064743309554095714265316869844106695741492412886728577780704688209340294828863990566246228365620801321271967779080233827679914982484709604094113048102167180301223054249051001911166116182873816427979734841165946489288761850402555905771494617635347280789959479304062194254637695406144123613503093357713976970590351711593470425087205878121707687210549888766012685315579659785234708373748216563427449872026908089351795689791367767966623282306086218843018311751392196007254383959890565321408718580456913207451040593080214922729424555783332879118170506676116227447798249173734489109377416599624157163071830870240332567687907948606245427980575155898558758425913925821924063632147503442622326044019426583772686277969261896548294168608241108333591138248298611681893158266006745247042074802813577289985949503860447859420245455319543110564026557292203684207538519265825788152851015002326744221639959240275792038480098513037735098938122334607086083171474096239556665999091094829639815741440715952000757637913040538898175329806415721824466941209930926354663032301268838317308531426094870453607042409471267885887865980895642211130019469242523668540279221624694085501051505748491544485550809923472822185460967096946096021833962761022438754624346471493735605266819024567761843884430515847391749112149277016999245901713931066741809242777380766612243299618106175208866973104128723113129977072179021498262982290980106418645547468162160275420783033760258505824143263601253390631304021109809378194462767384967442233806488710853956752510324922925628169625088367359053815784011311597498125329563988517783503874177690052731269324323487242871634739179732442958748945386521564789722595266617818201630836581964140812090163757517527946698443596754703987623327127726564759317825925101125418150951716427530430835398521337936729150665858625278111162839168688212776356718919540582703042037822621450069691624427649563374889138350335499567568392354081622942402226861229046222083879644369517816396957762214219012834515593525296082057203095934316483196749462089911253131554573106561896261841310915079602114022373332196850365101176088521075933007605520472191714079324436102108661835876325938397260117481879807173315569426698073682348820006131633991141103405947626293088685929592941937861510421639858199903875572912391173817106785144948543799142423623636150468117782177675477424208164361503794448794520538119352546231462942545076663899344962133344911671926282034308492601203946473962796767793693118138345639092761296645183098556412397666589889481204807526472688514069775729111196000947552446844239942060217214986248476874549699217684069644550957574715058947058299821245194246221436511347496119753096387883411225825836860819290799704592256977438351447164618755793228325313676595168246173483544510672144546888353944029214197723731920044049426305034098410381139494318969235046807158885229843759204320819390037854245177333686210010362465868558036970847363040015791489587142372089770234778773178296247140873403380850749126950375229362166781934560340025172134028560631645787222941559508732593243481152436762699423913268418879080038848161384013769354056516963597603490367199373692333065043155904675669305910694058656606656282977396988633355914526301423766407893255733964553232606210450050922843028935511248573523123856937548945818619590812625696902566881958874819725632075635290928626511471630963865505664956070847638947033039780036240361409818532355741054614472010888452680491209072962997038855970653476632096013390527254884113238545344800365453816852982694433699765598866930684892933264958879464886204589967733004298225439717664247449619083210682856406112082018998144305227548669780069762693492290248055032739878004481629223100289285447392486811256431777393851140647739077572697185542094430252792187432892812921358564644978780916183095590376516399002276192180114337647468116205599884171698400679526615876539670398677495493080807155978542824815495983349533695355267473437697910284902548004425367675540687306170421480276055487022350456769472726330561970058319801667624360477651430414784599528177532691302418126737733268828119194498993088307182522013696796866091519927220421656010410497437026537059924578811849405057345960575800733106566801090034038179340115206646833025700828598367704538753014338846780066749248807151711825685778738900867138220262848068403425016212512886208344141334672495335164393734849492209952991897375661954985902964657636395726984827803981425008400595942719275034805877040127416969195649367673689381847497634524522590111779849794415428670491127155509528067011647413867948148760459888908767449933891052860639526034088513459967603457378148795614486559594511474787132623392956955747112944266092023946729488715161994196030027465366502473933899251602975803084273372854315385079010011500829987012497736011051804525114840836754714833903880844774366627758423576478106623638512859625484802652203144799962631487500571317673310472570642116584868531895469388608294453342990882412373444888524386369543087702990720192686328911507934022846985164565206231621064075147902007093116859142653663588983613258312142969895817517522112317002660049184106780095862730004771896002280391446932254818086078277607751970700159371732960160674313905089252408418891619522682275554950071148298223103898707231202598661079656552092457873608978263616417166776927501416352135670035776447134042907935393341618145027478493444341616454352335272834298064202511536148321364299812600446645369957231854581954431743906601068505182940452354095103544462630003432303476373561550633831418345119298215698881613459847593725455623729926788863003662301789118629372212395300860148618233572628203190915909164591073797650944083842996599631207843268578098610505946317464859122980557704914266188641886489813346580508615837831325840309844850869042846957031468952148793167911867128310759394407887602910498822298709819100950681196266282174572032545106906808149519508504171728883946281517171913827356668216633811963535140763762948921658564371614119889035425161102394151321545176809787936147137096650001592914926753770711502143333972274690286747618344496706097849384980624851930096002820045570597013256090476041171240733324456402092101842582809613333909197027349826872704648642575943976439869925040736762284829270908582869446584998726580304833689965092311618701253070076328488319716260961888708282466252588097020588949029484680014564637626560990754206585549900315059782269084601655553545898705956335947210580600946360436971594740768281596911235883582679446126631900181478656194980362092832888214912662513551503635763112725233760517212155871018778627612169449640517776582228018800311064347757764405381103387241366626395611279002873936100937238559324184901042610050348099059995617856606276832403932518551811681061880762134548252484750676319425676113363074012818256860892055703688331593797456458734674201606068823218965145204199696411019447049372239847828317856767757022535655135484761076700304355247021228888822599026154721433688219708106490025007445463112638987343547170457159411775957075777206262941208996810639273090825712924639630932249167167567365479067197339099298314432467005177234642549791714110327633946371321993152684870305371631489423902506923851981503026287999593662189566186875699651514730435973728012412991359012695153055050942815866815749804204004352835636882013212812631107721774920610827155012397942277293393975362282003384223190530940734645815186017943924708165844096019746574062681573613889317615077204205583867171807942020170493032414985029509462204447935146217576515480416457869903507272758998597667484414609734815327706169649478519074357863176304568722037350919989857795285163617718311639950615745088742193063693527642012258761433414168487038928714682198146992697923700737947592196692826191754999320331682608621430208884586165423203810742941841253606783443005122785210221912967836389894795503400554499250892207074538119106105118995581822263567694680708934035412632251937064202648785412042745042994115960209666462771996251391337542667864551247958046344160268917939438247083460518432515926945788656435928347594700086636112636097242053420306454618572849801354110956371827710572968924047673060596615870180879449652233091261848117766908201449680131891825046708735260750124321588210228626257919005537019845166708480429123726105540023561996331428725675687546982599821465263115234483512132504018395440476231471822571984745577485749781091389038525458140693593901055363567449058115875951190162415468663826519449427990077761676087513643480630723888317870969257366063347978670858516401680582898454447778096957104711995101192118678295401814215847414261210335541342846837375224231156969280365124117148212154945587164198077157613029912231394493065804822860978487122684136570467676077509940023524238356357943460954462459204905639253354398735239773068909033322379238787910500007138907884015007281498199313015297231008669972421798355745556547521270661114625946375376210344392686028250078129102481916879304777408044153156412821497292664038780637403414613767581462999341375700995734621940197379957904392608251091964774733354698847845049222383488573942013018665658562104867588040515420575517489421554696053438859183034848447615704176240213528180750821688643035503058664017216944694028178533076221780359027153468816764641028550074282898746021534008653960968408653821928924772588012945551696207778951550573762725784517863538267077580902929146304669159227401655425507910227656009493032520094009903234557168523150310891830813768285723694341982828771154358996071177713546268791025421812579456115993849749670141986867679393926694539642348956236538393789905095203964670638049942297738743561387960780028849658147213824367520002153908026113203123908847343530746865987573118736637979160853028617547697387327510792059228704796627730189619669735862539160358181391852944988424155648196236507525609002792171438624578761565658990391929484704061621061631430347318653889350102547882710875724429542824690034884253495636635501276483504585656657790130096666066356474533887966761717685743285080034807940313041702540127886473663236908493798276768011670451039815239555621632484673307448158835672164531218186341119471580082591904851125232390082722690223042815789654426513603174607188456584002107482627333587640832727953113710239821557033806274120064552859133557328165516431794723699985140233941798069337863412227941852567384638177129488425760898854535373451907081433064305325508096696314528743007460763417388752210180622674193707819788667768655444124627169411093519518919403316310300067081183813509564628924756947252918180803830402138192909059865888862333363345583366819801348554305104914025526919716633731919774128048586536706053068857920942827484987694410948833038766338946648059064776922649733526327186407140286817722392956080561072717842200083806322615100575942674159880022474372282911670493906422389258134623582797944184706402171589192963523369205473801978846225467804699672696614501444207691323906263119730651970875111030869370484974461114082900747279671563497089518016887083307094845830194134588005310121661772404950870671251180557187520283929952562575250991800253916888075326741383894888949242059880510085005102264570863858073174720881960253278048303056643175181538183534290628635486445451754170203894975904494834198171153488200315888794293476319111681807272372691712007344726986957564690217416945469128592466089609299685206309187388750523955688759393022792178471596956463748916881635358685719570300680853709365613063888240591711391232301988527588776475163088465489823412568934101894344252012523753710735770194121281586366743659954970953713915542946004975354389712286610186677314254171860591168471209959582863609845581633516819855162647568038298783921662462359186377967224963093122424064259515797546225790814744655826065366676462993966669137018046537826853301750181620764641639788484520561036860342842565454425463825588889690167968125719826664149004058524455307065420629997659249209434692736330521869316266409438453369409364013672749471074031544576396039518321433661155618413518207027957134071037015776083191887781241879001384797040068428176121503380046855415094898303543757523039997058880271111739097648543731547109658052315435707499399250339812958606352015539865245060671122069504971176487647733045274297775688010057579533841200792818228056998460106074784971306525183990159678525073762438511078713396972034439395480332700431625567038748172777109160022290053759201872042975286916858816841590801922189176054687380550844409654986897971470868063925290508460163164158112647598566577092003201950191089629196449305889697493456131175080909941319025319878498316567487037553161370687520774329512172256637284731038015045237709643776407803757511962939580318135684075551844316671711450094718102559488688807344107665113234407797117838675325740201289099380479774618052517236832905910217608151376371180576051645177088686933756086064625229494423770123734033464439137729215674336339237397779020060312317714106978525434804218568489558753870250678837259445535586186514392317659831551496350282364890282458958168168306833336279036980170184433070591001847470202020918657315235793895735831774678080439026997600881452353519947092319889064014612027152337309152685492984565683724659100445892007509074133166378394775023959787904801734823133793985882043087734527833835059178519250157038455757125783321926807109623683914455794356898308886313212667809313919216517441680869332822767282427624857896924787410004352677814744728943202735718724899357660542258672904076210958533181518854147548928506735305339488302529956560076350949356693316248818605284421386843565005041199408623634072784238039218891370344491513450003391981671598122698260263867576024879551584270630293017090565474535960421050568298355188579006922236615827665856835736706495906253596075096646602848324401091155007996226509827133838299304050702397912698117060740139547348072057717246871018549890103906285402819280359643558156877987554702049866866325585730569636797975567604391068698489271743115863877945590774540958076341863540272870872011451671207286531641210439233819423639081893440962223977387481937213538327630063988054242771112573180254533751434082988740163227203070377129567534991328010669867419581151183225784229569918300418941842526671408866346348350641313743741065611629436110626724564423709720114892355150952870623064624979014018583096646518194704114821999522395104468295519881074877381368485593712919344268697028980227095469694169131891106408432646924448237443175057302105698135475271114312530352175264876402642970326673305583271588164793096533299608063361705110378847264696792114922456745563196123264737961331860961801538983553730415639621715984811598766245988782654473310665667800003412262018882031137667302615614649080377663680519388423513054981043979412026149793095154699262057494983370245512047021748877282840488582883721898434560044432512202003858509662210668682264849730694092897985033947602417848273993789865758119124245587159614376931655124568750493844541672146808989553873355105808703664480060113293622761387392394430671096261607971537423522479204464899681428020730768445857710791193420147752154406880454700743957177694631802829419568272265035807225178017796074851741412996924675287779582277656290478189462872813591339672256866267116541764403236591123555241392010427922194568485645707756728947244060667221205268408943832577335341276395758058277610077110444427031602382555076858387834614105793744620036576313196088134976629565934166566954708077744385393916042265553323550191359461807019181099348181001879306446791021614660113215319120997412737400435355033420497829884130724335252018951359308618785246968316304353769370694689279215545000681143300984282411647329413872586181420810704088762353552285541279934644166719876761526013910920271107667997596854173204653730445009257453148754339458935369938793248402612957330425116673161675875187653626827431288829444569243810655495915154416423481839338847642422282987862603745146913359666280805679286791750190231617611217285086763972867616246332125923915083499940148636234067974154888929672848751930357940244839485585481601242734982921449121238772999911676790872079057915696019325894306154879423482943999575490435566274444278755013797193603875662892418823077873986559830565233903508153447040188618861585181723821065727396082778454117163538568050995929967452857737961364882472703535965468573501229497899714514194213610057884246370455733905892316686023475677637794424569696918644751291595538756094182355690093535878803208319634255134877347451318905626641300604920116758410928730523973462401552396762294302594086413462789467230384443081170947407773160366390498040884756685137139540617364528836615359530946784544688842986857027261887110429771850583608091589913536962390986375194511475483076700868310081879626388762914829881070715286460589886845100434064807203058703926762834643037374181478236787532259405646315262108574393553138892547317156441457657222378973858997763672209852491908001516398059393529912924795618993432938200715987543709877507425930325845516934463232594253568945393150649892061662568068960383547078883498165039862541748666743103767405928262312731717193683265112591901373358528525272519450013387649467109154102508240558303028812217084612253204964311782534136879238744399898659081838398226423734524721048865541761517562430011281589950817093794290598993202481655387816355933627782318224200209294241041513916875034813889932643540401068311275880352331878459782911283520244145588889487025662768808589531000204939024526594759849510895742907341414351797520800465112204199166849480807828644500469994631983998267659086416986170790166615268478038044163945352816567562676946146603650278633520427996062559184915511012312956615141565370106641171043984148778524041522521814192444035717232252301981695856963999930557692310846198312336554813611120804781242872708747782773180841129067200922530387445774589881079726076170345213835430484015176783218111633243676004259744520481428716862079419593397494242866229832434983376006202766898640890930505916718582405428651841631526068017098978002284060199082712103658229040475351653282646531709179023000692065320411057298351811004966876973056136116579226584337123915335762215629984577536835614407602487460460122921987672784828581471928146357796789511454208792993618619511677918953416330762767926161754393211639324229083218009400172551882132373346187923902676496699895990291821377982435934682235344428544787429317389831490725930008931440880127770330010813034564010492629054937185966940579289991248378592278126976769303102466316579953734405444865486183966824930168658443532260708152326978022100248064800460495393687506788423607642701687600950016592373715713629228043765474334366883697850535803895354300030555560313700450785710517770152421551643202740483208581920071077510006097283582916012275233579838682643842034069501208673382013469742271922323148041140899182358491981343981547927513083183122334071161372821918572008312778278034902640101969468571721547780874819052692180069407474289534296898284610089677865432205799297797027337658100106495985014539144039355780570760225516839677488359022088003412277276098328881108812696771718472724281846999818438877541296982906521968388862873688009837911646006517851878755050017049029533116602598165372561023900941433036833628806989336874009206821476921850958370722650603524712037642169409593555476786375275178583319111262989959491995597997514391593737735014443421488789920704171726684056900373596951115322286462758952413834018897168005908950130614402879360754673278359524108611522265143304432846591005828061413400871674734457355362670511610394415166296400043086203677749222234026145234985480918114561351622888783566848604591427417108732556778000845129437548496400648860587148741057782669205822528256350905165833878469822322418701187789172861370520651578967265824778601422964001393569817255089120632255376070907543177187436852064935642214720050763496742398270186044077422778880605193937566528314351074327550234904141246723087214067729742070709750542940920001043250425970938217650941661926639578195012187131920825008343949063946866616641801350157309745873376584221618496076415287986623865191735043942872461372518201146980002710848379158688317063680185958052143725650846820235982944165762494456447378037748273395309602221701696794086750869200973521057425521847661615962925138818343531150300094123348072137493736746229076194116919207411210064625287834139806341746776905391432132468776014520087068395988364423382631540096369160658472556730072591786345793149786735772637530189332936249673726574830310067875113423331327641655004273612907163865305232724165848636814977512892776483800038929540036314509981594977199233496856748273042511547208283043733668678066777720697440192121395427710096558861911774818245608316304164657990767332331009568531522915488469706867792448009628957041694425252576142505319923319019808638582753905852205047195419418001361027740376455773995777234075597619632012638830036291686199940781810785078150692912458724818810468092954526480845987910659874165095356102918316784663662641789219517546315597713296984477651342453409126145672589068547707254449155686701718934640296357486620344383783967025024424687406856348173702928330219840963207715640521418399450655647874730985633099188963429104132146433933429845141866193464349668045440995974023806425353054641430800079806102833880621888502281077304169595354161134659840533740624070697969501950826091480981918362977993267656125985946229030684876746330818776439615470174727439221617281019499792124778879527041311886928078624310907537954077075811338340519661561568553197254077480352232263792980206470710182764775847228134435377287375496604269264749257122960649129553840331136447395049098382422812468750256515864042775115151016205474598865213250958173586190494684143104314744992320831464084926807105150461746652387839192857571856441844497895335726543038395651743459315582263977262436911081764201335002644209123896512324458127144847733615660400086137080810259212238478564857521281072217433155979327292663415556832515716635224556591739375728403721651565624840339862964904319561470994401471290448754515627814120369470878192335832999836182193504405410640770766585380200044304412904135884940664031993469807391627122606371324551351784349397753564426380735796760158247203310742324481954879071757254224579722079457898147808830662944839008348826288569991127072977135327085332186657584996718063054206441701595597442160089446119992959354524217324415225063692876560446597465960779835115940114991365872867335913857975839371291399704287487588124911252650997854509522367823299921578518067112172648858027132309111113682013202236644569395568339811644454334212779804346565378613732756324521023282988860897052486772115400124894174560058787444150434366679361659638609780526549924794216963852149148043232722081925793524379900015225193635150062729164761531284388627992484176174997204992549683765417801425017127409842819282004398808460974346227921421745344687669611607664404324184698163740683546377313257154789656800260185896890489414369512309325751477300836101118416230955355132401252029490101958623234212627312752989832035656865041681011658901090179999822695756803516755668459681241834074805222147196849538996128693529933653666949465488272185013118445366798334677001338474110025094781988414400558540177083981785195609156548347653308913178157777984734731765322427363680631727315132896050468833873429381722953347005795603291276395729547981489083172832908944513361347046719339921528516924392314742232155018508750325993757330496137110821490170496027871873214758117203081712795008155006244517721718374327304653125030542913335692543864584413221712029637137885084601716093185166469421952575380203634809661989381203681556431264231817701146541806689850718659174387436463774538815005727662021568454600964452115939111086923504384200532789827592326771829490216799018293975571166387379999742728301107692656601725089577714755505901774441770713551361709089601327635474432130531361848007913446066507422220682373902210107490210236314914270816310124886016319812746588125130915126783296149465214771068851482608695263488066862679924068110302889720778360553389616880669049024892300341269649323619359397670474409524145698955290856005552585706699614618956834268808550880505186636252593532708428028982914424021536202186724470925458495912012727492629846193917693544853840508552582269017021807254961935542427472607959482304135549297625884606455365905098766045537969622182574163484603904398222750045624221186864831307800720166142466704896918895770057035240852594399332780904277010727530102114975572577690828228467739962648336815352261615824921152833319719170124221078088040865957075913613389974487011885180207046086064337153032863357954580833407391680071836527450738673299442919501150356121816795965752527894297457584304025435234507711574352604471399861159710656104022240580753850160422261498693938747992653261217909514608494429097225404967020015586723135995497218136529574312159029973378334247570573195848208979183496831959003531976975786186643645630043189191631764147672983323952455962675552510808387459625366815870968186596125155331656121393450664837106670258198163183730662042784645653179319986208327862033855570231499420573096631227520753336447984500377164628182521918001006493974869684610143038196916158577111675162964174358097667189661620132101336056471932711312146051407772114974578805176419471365743427129985378715689936931307065089158746254952334665872610058944198918768631169263057238093708547653085359997756158831239728566258847810300026547641233497782008904650625932840301343162616829483869172193774687440875878522321021890270662719424739156723508991062591500384048466356171437293347688533830184742569005923578317596670866474513185870587266266563196869814180925662328659741621779642859794354177791063155821789822687900902794296216733218099999185445374133153277879633179346498171620923161355090995099818699378802135684483813370715444609177386465507993152080855617421732958474424539549684414494331182923029588242441401061617642276294711571469274677168299275897085948017076166531463589002569462287657935418955156111662533666396149924585845208639699985209768569583812153258385797020952046072163614830017816157341168723896758890234445105075163704468024001135750434679267881507803059272882445450100462385545954712626121002893915657068362905651437254720067801956240215266875064893640396219801523289107162869466115603778568940902696577087383977077598534591442095073340014329773830704279994175285426422845934777012105217686736999311960914048443871919290156397490079011385683746467254975975438149234642086850436216872306309516181077657622309471530542247916947774764665051846193183801437401292493946910485494172102967802920768847489136207791147406086402377688350286247674878114057681880076357712236277490847599178347185239083318668185147920645614253628771971040106648572863959151960503234047780543859196883943724906474315626841552221163594271657537374692817307792436150147728318086697972935999816425655528569565018932039161725863169699281314120159773146940929763730218107644656277636353698453576998128654384333560537658497794619791971034879748786600704615990810158505960373060115100574005638621372382162677084257174910705253518874928454577549617679529443158881600040548556813715531044374175412861614917707719888487906858089006104911279655231880511136687140534324128834579388593753288119525772304945531103250116922930940039668470176727029962118931491414554674407607857148427974410420123111071643071177233839515614156636451938687707455266296243540364020497814671706778731039017668796597140295996228545545425670749999509085253091043489997129609398490371324713902959311770354050081109954293304213076017097392872596372416393223941525841937459880877235380056701747048638640678901643465346130296951652034392147689693819617627614248033303271285109024595945171169595866978072809920252763778581659219364883769416587355896078867916697508078328321673358749761515275076054834071096137347590473846031449694906396538052929485016079363989504281460559113211429608422683504314897769653308754819508043060435614363013114350202702885106720811185059652877863071280910114930073673835928250526471469746068774054317215700607911184597926412828881541696637061494433469730965309729464731138186912066721855958478844765807543238554812694425818812095387466866894873804424798450012503329185570798351020994347361905877130305718356546401775612924396520568010677204831081444206049374333959740707816228320662666218137048427554895562148223965010223076017884303219095107479527613711246767439497848961832668608616590728902171783809922396629388302594727413038976021095883018918407672341977655665162046389015821129064066383707716377186341976348908678133725636837963967431497514271427544937660551366973154970492953513637148542958876665561383502577247982015034409192833432813077599538497954598745748498004525760946191120681328340664753291645196904753786726699848338623673250956101283557800078625360747500841618325430030134810018719594439941119748199824454357753295351555809782855006290106303492198179485088759553557087565600140870964400682663196612884905165496747052912124153045456585678187562851059893755019336593614939616104501611425125953346409147085953854036881115921278335393343370801248808948469002921313009852633611711060920048559003496145564681614718137588339597049250372266616670995792026975220874052353260199418662582986149826802676639491250208289495675950585597696952813564097177457452096161713329316002825854520803105914923803060234491616195649177748988175248131215599490994039260306397359553312005913648312819852312599040315205433364712510545521606552966523070198768051742461279445834421729818861038079537778711078911745229137920657951155677502549559877329194851288821242274117202617338970584168161095320226881994084189910707188386494088342173259652039272932544364649451405943379252397733178271202332869829988491816717468689707392505313348198151790949586830909022381848118283872214733689943997907241903554055592784995842880995861604498567358178122105291932127898039316621070495221621534352912052429122179494954281126015560449689252013232455919507743682189070214098543388623026390782092961449221107250056452675902547856607626271466318521024409439322185755441919889286781987276366235342010557013966718591350073815204593051140743157922509115312158135483435371745990307770995931910679635053061836427580797397306770102637637367886983284859932099057181850302802778283337522566078820927827663884422371679071815929724586899521699309336670306569445376136635746284003663902751705337919229380759108308490349784474931821269553757721753895756858155426534475189135063707987503592629551127442826070670487823400480552042342347957465294042828742568176176398332151716299381764053783698962209136913835871586994650358817420194747383340339820677237404057842939584524119063512272606927969003572557415310101799492452050276815386746563245582727725106839460160050608268549030213958655865678747643327905300110067868427432108590413171367811098136395397489406183422985863793106344860371438848091465144958124073089845053859803853562168683099331367856363494625966463059509582378867147329336376480134206666302031223119543142942818486166712545796939162960725487574482516006774547979798216859724396673213393047718301743762864301444414085161020567930428679068481357604405496106103973755360553297449303727873720726634872366013624898709153407043531535343123153714591214410934770461045189935600389736699218909389471281726998697938938973529592061098680448020946831777122667787463713345127096529763465038374165717387960129656529437317730412670985144147498171639250231345185667408035366653509369078218524091455532230960681262724610659564669048208363143554581396694699912116930943075347673388082948273022733209985874691807768389005757654024340080622151998165988561420666984566373151719605744671838741384938707561887417376022688274858002444331314290778617398971392165007171685035299872265206363063909159985279157495126439741845630389310357552644973701727160490761390123550927953880230637142323703895410095955388905989278707719424999348386795792464559358775082703563778644811416327758603781774367989600461978365962648915334660752689891046026740908790364026699436535245257956627615052280251310668220783500159607138942208052594473046481686261791516413592551900908066288210358073554660174548663134330892788256567549616804496561568155230595837873511115103320777205547492852291237931747464879520335459777370603124416423995507626274066905039378663522469441025522092054471892207490478664991759842209017509412127064760188328002619867535727376882337517325185326028872615358679489109967269461984564166718608918022725381312329161393703379584711063603498895691675514975407139942357698613303695341913681531417841163238200884197418535746153746995306927357020192049949404076628847710396593339287144501935357526818313412412969075705379015919379663134092088337339469221083847070511824076255306879671145300212155518941282031697777232802998612344141563685668382465459085009064358775762908852017666170777458559351851764988192216769464356731874004647043363129526803827269171117953037706269600514187385483213740695811692230930726239193118931106148958558674509263389636708823756240624753195310193238414221349161923706989091621120026262563942704803345859109962199812132823325534770940520854154955992360613020444642770171282501515247876510509253681460286336951902528659246448374998781565982379372814797422570772889908782561014056938761957474145693678116613194429920436282366252372876321543759616967049165764083886764114971227215809480632965060185955579126330404321419226133367778040286305838392331978464709921480314311193262095829801971828133787713915611461674341616398428214662876870442500693288022113980579616722118804660371658037981734729390949250765435936703056356822669285581861868590871480059030643172019092599840049847096396380364066958276179751031041593289390281754519887885436033103403107097694359439855531150196782321611093510118203614794629406172337312833385955249321221969678799882364044794471381408145169392465179039832901486556930648185106302719706981610220675835059327459250133977019488762955812138230259146152167417139672386770495565153756964692273644609204377468428519346195461667187898771750468540241104589691774115795321672803523832099295075316848170473927568582511450018872348359800036224597555472786259625768866930376300161212372147326985048872346112615762200586594214692612825054546592115469113336071760520475929493228736832933071905675888342896040732124927324915723144763022501243013637398413376771421300273935972973304202458923754857546093291720588958444260329540963795913097582239192330370758873910674656926671995191417296234935176382000307676377378077751612778902001315094991003638976285693802403159579666903534828930566646563034517262170364774611481128768981323283249990380974666550259444537957951720017889085461132794854892319432138530695372390393694314673958226939228597300702024965842109794939555398124026778246685158683055859985804191723923492005368401095877592973530868640797656235472281124115064998219297777634879164468966507103579908251707651741934816394408102310098918620863644482294669027713115474559867768226705387993934049063751886170054116778368322221698598793400689965202000113814097106096730754066142427999038030769394152474653435259511022546351691187836891601714373705124466910653712307722743894160921560584168551672533329797141675259250879411136256634225535879337269835834720235828529013744031375880348856543303085677160293911918674300578814506469804486153170431057925794257939948716218116943964343370135187001010184618642167146649491704925886466462324325468068991837430933018738567908643424754788465980305785492093549922965785623562583227129179314801625109871282448552466149148414105660199745610777904520764598934236600637550379595519232688484271922490655738101806058527740672518698002619493516839183918123540458283994333729979514202997459137143036409727023797122612924648964090916309504192801960960867582231944327958980478715331670254541113152839409769244795763107626980499865826196701479658266529706581675196235614237418856409102604521245747001529346868493277257749727409842815343676422053820712132772875091843800368397756156852652157684405341188857390787267306447840635809628591313567744809512239129110346724369590921757652561797682091308014494770757965493602538903175691296479375546526981049403593811093451158519030805246459266030019061729796018044281556925685518646881546282020429055706082885877809597529194038111025563170492454053338802867123014813931628637578455769307825375538122081825468745090614888650277664251848569082313079426487332936685710428205927838883178085218333760220878794818623478133922620587668306183734417988262157038077014748283713510714882048301390673227145471654804873077278948792278468877558119207687533247091223238850144366194230246289990666047959300088071123301691182897444571506360159333146784862039993225673342211017549957558751829840910567546499986798303965755973910627212036428004510860621215454075903017977852838637576597560559318415020340920635683663754663342869546101933472076553811837913352903016316597263339132599116519085531308089914458609653819029951938750575145151795202436374802541770953340715962537313011706283655351797651311950800883166515440628307117593822446538219629390149174109811885826644194821907296169942284924813947500406107753955513789183232548714976407361371452959601355976088574986673576006894677328333462960273524474680133779952669600202376601693581301131918812783754915635245012484332661043869066632621426805061049441403909415581527339731977377328913337608171379517164867089119507315289969211633135755329741754500656143628770362751866025547280123092088413225691907195193512885938096985177406854511649853372916281554541123823986041876737583573894055255647909482271587394366792538646819906019023945963869114031260488537997606868797164807548875502294263884127342690820088010328170080398492750377861387673619983433888005354998338091519485980683275989208411772670161077066998183059045569656027047179212334427045170567337656771538814637926021739490264868476630240350686524343079394702281683655610358727531484390551481430914873970395700122151329688599855090066988967999641909220484827204098189730766225998504319259436390970353937410732667461532069903272565738469495148894029531631331494162008377993480539226112342295115936546207104395015919679441692655505536746465281783309947953749766628374984883652214546619745467575585524080617643014519377581119296638202798826846434458732383417068982394681405477467030706940640933705641325984830467748064938915540463398152566181471559386476750133578958333912521157683040664090696899169097003174576061463407450208472616998906293388654225378473923066888327225440356856180933559329436770043785303297582509256601383241495466842193971435506323895937810906270146277300437921635176643033343820743416519197596278381781714407338474986406398692051647630613592789882951271371558397344689712254036387440988501792751624547660484415999501953232561987234344266352416218588258374233412174263192482407384909179965937778615972305158721503779391850986772272312738888674673039990321275534362838936951610996269772851269875477290066912397528859675128147348106235896704098435552581211553917475108907141248010672930063346403399005145568296739541701596921186569748151004533608167646415155401865844468574799662998591791169082589366167103689284866734528306130941999950150243333107462231055279345493080351437724651115679234408151833869418681295327887033226241319209044405642761036647000478600213225250213965626273106307875935444368830180995919935177525548696856838733922477177001617145269571655300609411125981507773391720518982522821970625028828160253236268035331324249561134415173349505825299184753618089074624315170358217502816238265960936759629502439366273752752728523914533238070080871196249841331947462780330100939280819674668636095922213774548826383753375529346429901118411233525117583434373726615501412776669322492339563916526276943780913495207174474529681717705522041722980056199808608926185732563780572877316844031449368611765796640754734099390614210283092266031641923802470707883241006292022194143778537391908609642576308502888838260693003887937294987008641187808824898497184816828296679132433930673491086430775249263546236958914404377837450954610485251252986529121694013328353195289625105851030018902092608668837080039228784098660021822928603489740292199514085801375041524188638875392073803253018943219403310763706739559176820285372704522704389347559351143628492674557588061421652386396106132729091512117300462268979012950662785878287297505896398221088357172235651673597968442584068451792452163352228328440083959664865870015633793955515476975430116967413337955157602997080952384126541040446580138324700772557294805306393212428287500615700573933249556477470264614863579773021924033381817991661392680382958066680544988030596448306328225795064103636360004727634553550393525630289296929834210035699295510609383009969876628306741022362547591186047841156778462780524041030316906713480750353957775851053759242736627722701662615366966845677351094538220890484639310726624665972833804750625451372770127100523707344010489016253053273493260395582691465512704398654507038031443978826876780823907092430045638267810675135896854145393312074258549293075306279319461740568323173541494300983642548394147791101165696666578471495725742304850418364222557492786003488076135813150880758580984423354773015358717686343152337189654177747304906733131212280821721002646268554017320811892759214306233214559780725865719859238644595827627157612949365421300047829833325184458020164766880801754463026550175293307666552363336566087024914300763679963730528666187370619382047746895505496250356817108668256869135554394012441012762979411853391809510132545709381498474491573106734049720717593435605817888392441542073286757664855774358140853906635587530668120321078445824164388052069337591618762155722026986990459282717297217105387866418636087729788319032704063749668001095314937421382773420626711093253400271609560277533993633830078679801945377027005087718730005781388011214985715902783790000269948609592506443723367126862193260713467653192110742337675458580869308626447914356586906878017041624558169085861705615901287864583208519715451711632155444354559658296349380358758371480829047324250900064912309111769220273538792056171363788423945426435528496054933855973158641670560171476632652059057978831644763429591534422320795188728058813410422895241638513630164805615310570910996889327611253841134935958775020420826722420900488732545259027138295491566573525891025564318859360876639869747765447776215638366623469721977474842535842445076940475923281881640945224709606533955584460211188041301708802369191625402118659616990340740618890447817909544746123613248245283271970902141403854489391203387161225599213934846911863067209296199018930990711737792863370806343187738619550171461821973422228127845636414094800219263810283063185786428663165622315597111319712875021586728187758295053438518549085815837534737586091373715839141389084340108595919846759054432374768238618500312565975022326336623416214645748596306822492549599670624834833639467245053460311394087583013162685093984886960108149821654516894600430511495892690574292606565349157480866806957660140809992640045485241618466164316284561381099380927972480251454494973069069943954870856079551798289251015528675777666366641725599536238124025846535389945384451467531457902385332528029056139478733035871736344169968920183543967540535071639330919092978118868605852512810252352332809676134136243225108949603173493623752093257438513510550598876111584515316080746113883677710002343287931243072386519343534227445534679430016274184503990513252653599133417856637815264961592120659198543715987026610173515375279563648400824694377363968562248902526542223305777061612922875423024113603522671124532707003869248766507990302898884903109970339753142946644943747187598999019015984707230190599314853408386991357157898767457342259609745830856549384345812614211498322780194506510218074924269235422333890402499241222759076374959093199436769445734388212692632692217830471857589064516829798089851145573173919850360383658521323066975273811980179613367206728568972910211989655113096040018248797890526623773779887440958741113438209606112785220862067556297477916454207186399259213307477223780397514720863786278520069102267308774669208556509497005308796690938265735961718185027923668925180683822947354171636021225455493847451084351331935370514200135684992117341199077345544092754316266956379252665710471900147584565933551606541686418551196690262543015117573753719313283090063319049369694615196539840198770432741932573210436210014782577532258695526595638242415102807368987512499426576282322162766535396309670233024703777274995665796020310389139180913288881040009410113863135346992867243698315957714817526507243073254080123259825452685053489692533017676501753540051414211090302718924118707553140593494074729980176781753307631560728506717256932128088121729360838567168460200418129376917334657724756934859282564583363273404442537659758997994675943729761988287928881681037355669648631514916894129751602602019778585889626010452015583727008380581775349350622703400291810457688892986279278223921200744888208621954351034251656073737195326769874435647688709899536351311272775228541497738142959804380673982563782529122090388467854485460323392643971846900220032031976342705072221229017463806236983503536883890865192336972399703485511549311460604146999738325221581497618915053406230580990452863333810858532026656611484924960538612042744510945054228838847316504347882263368354518037375697928773643347540358648449386331206940820604565892568969750271122448317968894182273059124557702087341203102041870509500914139948123397265926445613039529481490186915187260576531421075331194520714369495808618066146876392070717648820423531216138144310535042123437108589373469008171520889646020136214181238176688500522610386108727705065458242300857723183762601879816913070128964962599705739745085914201172467473259930522080595839322605144819216217144664712303185664794001365063581479114555357407632054621570136219169345465668554542469639234165115980849893519443277631961841496520361452499872675191592763170001822002946684625156188438724795597424573893956477461921973699638620798024861186441605367971225962763995995886561857797106130604538096833107811114681028950130679964419940170309381060178943226843148118015559968107312127002774676630677539578554210266301371418196041915117082803243385271957849919426165334625010020310309636577708747254025309987621920631224849714212320391107286026976037783318644421928325388513248021413972510994277217494840829193343870145587856079965000204824144317186280022319861176028910878834528121426913272312319839666388298690477793024826788543132537360137892662337043223372898351471110973350517430930318326231750225959217830926270093177619198849863073926428091305421762384191934299032767608296089360867724571645747335164342237717096090716206157222952542726149044093786249477050009891352958231212833723425886093439521890817939597875895993250632224406594520581488446825708671559328095887248535416155927846948031427384605551113808775836737012852422102592278591320420447950756427860021673786971394954972139142392482044266877650474777193064097509919762086019394245960879972609530329271389764321449644710443085688038185624655519534763878115005638941314385636182288314007315773575131972439684905603793540492888250210011590122778804624985205694763594388947851586428048182759084935085226067358919231355117572530744858547925691448547203999113909650990104774102395730133127596763521253874581279817295363317909013281199235606124318173095154287397221598915549838925131250163583087273558444459108717336816251443724873782992279430483319209646188452092525792038481482912278439761548974846645945668787323573957248861335729874654633947528275938428703813410877894530541880240758599018302738302675610669315117772240352772345145877680688177848268764566196144428530395198963358427157008665967607953254035026412213349662531105208045462243478068360031518423207420150088961472304964848780642818920355345108753919274968834813844383189721399601426780070429942646141332952194335256667369945364737968324472990186377472950415363853300470099201962086854856228351931639505512522725592307240668753503472430408179465327977969076814362134743621156227985473859675329340228514643775971852346339203927702152967433701389655118324022481233956775576212101883029111662709581499959297359861432948214006720469272492238171427008701811129337846337386431515582262166803400992405390077031647569411328752733430338988169874045640755268726252628116766077762156681626787328801566109279781538151389272539859852018012930485817359786026590984610480668444986689403986037346476014189158040309059622693331501234969541256155962963552399572471620390390724714450136187016261687060346057378242207536340510192740522831475335445465619418537757638154988142264511865278675408508168687152120767835753336329872617810484267832988875586056958747676579101934110491632302281821312652030984531351865630306205861376936811943113941331188802969987665379956719309607347676222687117330736026091856903840930438904374298161533850133651319748097687963164403725048029541034590425716627720680567737965241228405825419087075933609099605853238171847767131020964708871377402132887251624830959574520141270037624946418017518751364498982973986287724289829281235851151992814191504346161732315318154723219787229704604492326736635521348304490647772788291525966596686350335428854188402936239555330435164145148499637801537985209560325371799323019380979358884342649341719363480950301790566286659043231340539853240633417805351767894172939528793535587414785622346085541084166630304617083452661626551043254186105653746849242578396911014878238222509914474983715723214568814910807255562475914144243131780780282385648012522018977769148857849685954278171246922760630852119152126379778442878508975792657981496643191185177244742810160929921403679557907698605046023285053257552168358604595448631784295851302599834326346094526325009749784102620854594585860610783632995480903171497613749761696667364202567248852216226371114433951481665443360336335959727664284679611937247625988028655943085731840012130136967522256008663742901778867539473765712861438541844562306674552321006763872537720401149442739134500533359780802285308993494614513541052281257404846540793400813839383241350301861300020444471846146499941524135579911194156412339791517294876863917585485631730854978624349740060946572964341758331961512077070319993820233605899839033033787650200013822509869362772419245864355067826379981006023379179724392314219303185801615983946853254109549299085738980146031847553880874084701525008355118347571953768637442504631472586355653240809935436871421238013608908241504880765330951844991186240393768487609925356568598892975950228121760554198426582163442793904774307324689029636527177413112318787423188052213896544222888904448029182884889287767292651931750447882813077048626065376657786510397857034198986735658565746577351762896271542720492921080898999155058593919246148317885299573814205683761140041778635754140637103012139493831018094746707626003754835732481234616789773076971324708240093639447800844693738413023789630626683498117215784461891354739157117106665318334878073822730460273320547739336291192373670427776512177429214091606748292799047149724986377230321598956419514227524927959742708544473210842776850797454352732022919570231893267201649450879747349843389738481565853075599669314004278537712919774693419905817922896470332669200757317767817312206044242621221211510229095748385787035249542490716190389476560370766348787025613361209999048132863431260341481807934120046329942581857095652053661385963383655720249554542649536769460858651398222443044664008353210222100248871817095842311346499344646376217328324367744488246073199143457057832120952003951577323233279995005902714549296445949811709359368190601494803437722760650028003406317970897252496336200470508361228486663141766451102365168321821262090544248964085409185077928567818965248800755232735405348384928831616127168094105163828692662131928800422279744196219333191413284895659441770254546664890272281005365382161913473787773559130457910082086501864905162836699861736777239672517358046174788181096542571974440220019548592054581971566844000652189608161578729279950567260816843202628998146083360254994296520661161043190618726723089123687321271910840554154971354153455180861166759699642900379656463779017096247932527556097245896584876701631419439225734727452034966990293197396041355627114614416887498567200388271358540668943746453949962959004351953639106689326951084631095075297362271134654364003386603554810145741940911608454198670355396369568388838789500473841758723724195417766279010985515642761534052828918799968375456643095471783433050537669206457203175787210154918476169569219029997599526543131091145765626554856088002391137135782819413291945813758328127926727153869375266044178321843522952411219326816235890412145821161320831883998496585575382627595346683264593691110275375917635020969214702616581405442284804873265808923503161451623557675382306371906120864520056167693917129362487169970500505785960610775928267331238530932319252835392377888139921291371027388453856670151443402898443977378697847246897664401991504220461925618127176083908196482111505781125993563070293851572187085481684453788325671945351361018558727894258390225907802347236881893565336844149801067500458794728686124187620907949973678086116618142603243463975220841290848521442230003016723457964420814266804685608680427343410011405112477088733216561480733755745156994182562146574721232116796137834407409799952512271346630629126451682726165648148649554775270931537738107573597572304995586623973468381779913934227216806347624971916800072924410466430638736456872988012221952134603000008754023664756450285622258692991326220423046681385775676798626202161964788970880460229530780775099607358524145962378417197478317743390340390450617776156272124121222605769416941629089509592609348544132581671768508813045480362597599800110669922372693096234785696732157380341761132148994529897240446317898498223048802542836201878270346689004805105387585348609226165074010333958373548208009058226810445555948668734677438470901993459208472287860253075621589253308841489602125397459349041645742780341693905844967198383049963577901756283804702543372412405529417257208318244415560444928032281287096553394305944317120060607935493015171075674844281882979486312154902998421741169061023856146747363569850766053546373990566934666901404330778414605096396047159395462990586790244094229697932196331367384135485784338729250524960443380424141260579950492545117208777601485033506009633493192810440739263949318467969606974971720830732493673791254364075305024757116085382863309172562226875061962355099934352648129772193015763640628571677708049631609706311789419431880415103908716458661485502483370105238998280234660697104048599448551086299195346203534176303710790753695760425443955240226501341830622344894468170458660111889997755493092555662788500141922415346831263601746605680885681975804008943074646269961250553400552514206861924616154252276548796791062200540566587354456683042824591508687092011146154525901259360728665576519845802227078777966927439073467062833017863648789211127762281552819633045654969002186117982973683054299946267529723762290368700987016849084359345698341258174816426591341795298674631677080528937981519157010990640200328128287737753695729756279378786421392077995257268354803311348299340112433333510709178589982572946831636905532463390497997860634816471510854785714763140711375881588771805835355816939876753636110425400264348444765866057678069828983800700669852974774608835892490632502216027650280753176520960046041476417578488590054948004280760628885434630463341875760853014530052440703278393534362907911973688830022402915765783154509210419301637916858929893095509988713406143232007230069081719620101747730399366955433477693228778611085119005087966443144469443908403812335530186354669987653397238279184731624080014903278170478569678560648318574749568841323478056043111826720896661133197009573258257925266570837177939739350224283894075814257216526367924319172558798517419183331271681408856214887284236306759838180684998471527303152358522489877794352585628420777714095437867574539850305163211582536588703353251755032810595268946201462962356906649895730296697394748250245183228317814653230653043663113770620780288395308387382007215914884416775692434087740389342322124509350702846624440838732908250534654667666334000570661618186547422941334497745826056321017071727920000991109569489217950078214782616183219377305374974876167429580668930758633874893014492726320394549221419318403421206007948535324527448938248918440745035386266031715491598167558917857699051874157653425546453597739365684046068521574206464396944518981731154204257915270107533685190082737128993339761078471585987619681721436003610017682591183016073823071942549082986364505995027694253941145301406737796398788832327188488668281415802448600845377935306990496807401440710448389949579593174961469820671737376321791960678734254378006986289246693047277015561188630750901031604420223649478755160795643046785646305165768286602829096115667990706049858414596770089449963325382965853865843930804606032691788167850348062515307893834169441988361934600191929306834952456272310404819954293607011558831368051646680406038159268077348546412009538444446033154057932009238524610339457440571492873024764311664037977803246212304671395740201528844228229219677378549415498991186483601346604160277051143640281198941586693378699737462660563599541510883409732396747448887317370717613592081837481066359972112301335436017948244580665063678521772645398895144386746680281508339781710765241631842521383640789555831521790086593831176385662834255716395804894989427082356797235735654737041433018941712546057149475928225163021704761901815819811931934251548426555834067855171460146272118338227364054040610957286115671041871161214159737073101920990429593249860431131879135904160617236292341756765871474351844388193836927257228924937264680348309851272691022890528331581126011376903005467758638759580249171495203475420791935051873513744554365548437703686859748113708593641052636052260285962235718381042156606198262778023420874308756051644538021958139208780347006226078120870953703553074127283976570195611827669273496821439496749000522352388563298115532779511161759214583313533783476044431595690832433577535021601272620459687616032073344584676497430926469973527261852575712936998866153358974475275503245915347421300970468566225605867353041613762459875927090222164431464749024848676516202590847087282477162417642109223922932240654167755539699422238953112650572385442974077652917199227366256357116533967891248553863810977539172556248635325335384233141673672615886824238417388023713062719290583447382790006684073112461897378164701112038823080054241568408021110363045604552673317073816514733185199491951596684163587636626540422883550481830050540800194004184211345317639089210474850965843060199369806914345347265900465684792304764903900463043625425593142973633280425736953147329530650390877225484836286140010654911964378179713614117690616997119357704312433747040361150726096005446044365038586019377329533775921525822525816315396973664176069686517243750124406524477181097769972804295858109440478422498321591257492686292674399437953492931158220520066078007206599159341937823459173363635087101914844444802650478385651507293169567543163645117233709285352825848528437300731614649674113248640554671187992667899520133055393048715315406733375288847428887257028923431123675812943532880551240910463483430164618631965387089393644171380600041549747858984590669575996364647074291751181349065198854272877998746745589581405744820184081665834310360837508431500902759521277614184447949761360418204272861816599423296714175615186054189206637226152924999674233220021481871123546011119425953175655309121336371117392497111139268216575350410298983747931556914437191526931991918066703540248155623493160668442622036614900211459271888014320444302188754965932556483711992407254208659815270827383195103347226111569593513092889064623297263640160181619325999972004402131482261205121828306670194948083178449602802456947931493308267970961093046601477952109764399909171258718385918797540092533584359331122009680362261718548583878957264969632786936569009644563946291065379053396602620133556867691140593799890038088848615506619898456618505041110801350465598204913806342847002785449379981438757928188981868132612660602778824610233997127469428803734759557698506482880733135618673905832385970822663519021182995705409147492659044737598094719288637847994132794868618778418939400301541221451523678798370268011243951258734345267441034680618056210777144327659536767275672993075527273165701894868231359028801626394675086335338248816185699220784153311777634851830181009728140297765371437753003629150545295970237050260953248977768946968211807004363231674837659352528804351808857142425095482833368702124102512802897509746953481628320792426705323259081262482983643024281538683490393713315592297089716759287455752646934699988386227668333630478319268471031397108364128000365414176256777010423642093553900175244040311941503151757069815598138661308661837827699144513474427845910835344554412514054825068461456642989188980264678034192009737270600949895217470282180477745812971273985535093211149295465182867797432191207465289814870260089711780616837891643434510277176631384686557475294681019661038879896031699099677907437845758437009226639472000725286302908808274761643020378599961776065267859001414440553267634307718760724114940244808908869093981654459630427351232954838397340924842754823296883680521114480244210841847870528178921614945013107430636937011603226443355917754341357742704706423324378647406720952100708616579447033954273332260494888248596473733378865483692746843735741730291994666633037320253138435086942846224972558060398865932484360919984154608395679808930411329901725818308140335772004021330941298552886823313507573874128035038875473435991109246072777574410362284177509165662784820282125511500290236189099083395702638215150896743538041694292753066150249947032988324191766051362617145492679029418157488789147187991219133105260424793278401947170983230543813020621885834092803394413123778265690608049215301843128495840806040846550317993284187186502982374129836670339617788821087950146988611462809255924305139576937055305845612022878209601046190371836756787533197517919606177541286096935925547641200315563889973176500195645018838735085232751962088039138094063530522128172838415469056447276268945577991193114408482618285090779439990736330400524345464160794304763969583173705926659295752364136430322875140262313445787059613147686478015943809495010487769035929561535277974212427650280680858820000888292730513493733683574402237993646701076967912750437994976951664967046093190917166988131109687962965814752769035094097080066591994083166454455352685194913941043787853125971614292968938341426476005960840655274704455642482079897512160928937136202070235224586870421379295984890337094078123849589395248713750321481130390698345487575364006734984798824202081741107385214423537224162829969350070437762108585268884925040041268616339682925900192574539185401899690884186356603239686423541244055438922134967396087080316535472394159105625150557278674097261387228115642168938001536902697359117633726376254510658832478183095574081915073482790111383302502080404846215036070139052500278345451175685160139460936337825170536711902331908985863732947667661040390770606958039459973944391539330280864808111336363895572173256038303259831726869215984883940029682402264899495808847549419235257593487697577037793403058744438755906286236114831615197175978813422390807444705388292594441949143685347468787713156833562729327100791414149243720688701753067514960907901919096364931996277411130658542303146949989165609377019483892207642624911675497236824791246669896900347983100145037187205970476135761524458595508373097085581974717922421707580445883630785637556965714980410067087862627080230778606313856056556207816876364600387093278562178578598692863438364435232261513450367228125207270365458584413571896968055733488094160202216623140230629982337604007621197663842250201466095330285307985280509495955467291407897199771024026267445721372222441479406965923078405990825037688702875340964707809208821422117289836790177560810292189994166065972004842566452729520161863500332612497996760127840101994853602430282001813875535101500773138245898454111665522214712371356932559390024957978363918245827691260215595260190660368601067291763473770684558324407540931999326712512025574960996600499360304220789274878063046824865490292731214082308802750023363630263557320179237546797774052511050518598471694588273689346739946626422906156498557452056522210965814560428321243905637169314672418530045976911811656644868804381914010352087678567893228026337489727089120689749335965349270533601682131226824625645683983273124917085124977275403491781662817348686245315804969874303636528516585172074324177439304113935099768011150268822192551909777257016057731004814903854859762219184101011769838500077568613807037014950532418136777895379163487980608225886111161178026105280889304381512206673554754590986122575646706466231762002138172188739586150819362336112195797055468900672954971735419544765306280598257521658542704457515213678799646785408643833527964849337522480328686388656825978128592256965458547510525821738652648221813060535956062179258758310100344303802407599631578916311033768626225504519506233568049607558671921383673724813104707073552130121691168209533863645957410285480998532892514863139160241355845128324283607864124739878355214605937611037787694926348756292882871522822991504307571897622654273197829149811835379704664071251811293373651983548056391254818246654033893000526283158938404047505125906879101569069686415470814671870206560383280822469780366562639828609606156037453378568166187527422411607110667803350855769171106521350586480337098496265405738172642731783745447349540983562037400851649786374687375980175933671697220083473909611403288553743088852236412269956471254541121215236037032601443121790828965245666676134864638265916321494828821568546994255822635344016527566859903052559126636816949845173030906593109992142139868816997831730481374637395799922218631526587264180599908916139043559498073079108236093868668155854612952421449722058106446481396161832729022332888659764245304014943714802539999899741726720303821258462199009860459821918666867119957062838150423100612546279231482660443703656359778268962907788602160432468498039901811654923433557937868235363340176535981647824556375628685401555728799090420026471314428123695179855557135555489119255062738470588720751933611709821448749578340482483178736364300600015880219031755258607152857603572749847354248277025369121843223692102675121318587161896148640951181107402953055822975183553342862759435511425687921799785102370913085048257036075961876837118654084439609265542888789281564000647986950205995134649271073594275755606751960583079492180844964277406121893666133506144193466892050467152848449842780649536801377776617296056691422122718841567718875147561229892188915940058326148241006770708926504411151210746667086433024244742394894380958244746226705278985084051206465496269028654440782194131813793082951660854517074064951851275112299649845783164983100381365562984708986101153586547521507765556720416504787955389464322221754805584964867981302870199739960541807195286460113636593500585291372604752766412419626023557379454034636273970000224261326544580512673627182562277624974609781318710774628591464725539707887387116982578360894181440511340406844002764369589048589850747479522315503994646032471866571497075782861808662082667557193519185856644984295828118720982172365188653569102160123389319696763188587527404647265325342887575706091943996661168483880785814517415650956542707951279673020697815312142281201956533781967999514128951477772441376399513577021716047577686528644573282944702012372239542765620216818366591084636708943345399268241909348528216912126170084611620186348482043703284800342649163662774951238070363504995276757660413032360444423606371242549440024394543226658128176983790751071862387582919202743593558709245452036929812039468016322537006600917289807699670132441441158966049501492699559509955226621017631545868059606014649747852004801879189906097617650912337653700618678304976544886552688794071873126889787954097021875767797673105971119144124761705414776363230625024485075835716151528491685855697568854398580875448915166104497875937739630473414011273563408939419069413370069638183113103336863090490400982424494567961030707160581117440209038928937449960426774237331754286889296140956958384223956838684843108864360626944523678452229373300704261553085268000502279865690507484474559674238791731553063665391088611886213253409570356055589171672837669066419858285416027581061224932509828816541013757617918698369677068858967211013488017553782504901083106627132433872720566791392914242610156987002847006152418109625019737114835411127687303517824984162926844332203554763139912456699630894025733824785345328846047070728913711612333389788546255980442894435251113756208694404665107992845383806740444209198238396694037690431103014507448786916215009233821242372485778474041779089776742492874649677514296266532605156538915848074391200990496050539837591769668182915992457215692422052334484429840805920371065544830754637492532194214696719001426807566605623992441102090530604849301031364022566822430079557829176959727389108826774388663149685350201793929080256106331148984122566881564933830556787980720264514125433460271770153860101216192165660845836702833736515728224029989112376990758798961058152712039142894678047325774663667811477853215657047487157388040115796734658052294083758885359623096809987983044446689948026921503202332878534413069080769655707268002047503235650038911495503804169275153708197126448924783080487138023002797688367590532825559006735256589782727850333986986374789202721616311844960605353580626204418274087135384917285209388580124396410728897273919960810911768338527013003947895932303334436921606624856133119455978297569836952601070246142878573857402383934505311444414630118643474440742990708852014203078217627420190887068550909191150492868995576645902074036292832508719261503801020502691025884236568707439599502992204555303427837558413746351271066243785163140983647808957602945261959035055678066873832357271613259980152706828469568590929111422337191950178224695097628967269177615932435961969637203860940239231101962283197040583919663282309594255554352391447750990198959450782439995905531229112567010472002380083817353852920128078902781836464374838654849370235832079894186163679396272082210770119448735343569043125870403055960614127599257566819137491520387275073335201219832974087425298226132167788118267481229073916631699957585888677284968005955120537143193074581907831522556764141900629950545092135986782945540397513645551782734954813429623274252659407328102391385026939559370966239208650421930613775584983308877444145592221292163056814937705610960600427104551799926402924041174838790560635740602716914574852897203225096766870736986903613427178701285830388078431844033394667192347018825611691715799741713043765830090969684785260099929281968263985194765425108827098818937224123326234339726715444405496432976190411324694781744438880988820849952636396603702748709931870831488989437833549013019892388961800400489068331709815996299096801733455894647893110364257415983981505823418998868312399099781412615930481395591767101384310637872733900774816176884552304731329793518635550911899246546880705235793315358218354289426959336843064021052776811735414467143828098865127416475634402785551187299219268998430285312171593264741658081580663859557022595704761143676724695315828654764534769154940478711705736626938384570342722266439891074184749630320834386076225560066055642388115572164348226331613373156575568808803925655929653181356903168911392810761218573959096521285614616319694466392864465832752190315988270145572967439269194144235005049437565148660190488555378400073175693616468642950425833846121441560646519895155459261245938349220239541949293121486239321708813548143389537540930047454607091371242812930136562679141527706698410293935263155499379685972735336027400251288238817704400083020291935517748513487115737543811020844542451560595475486551746753590372498597549617703310493190979324746122263691295278757133536104368731480095776433502655921597315235753825536679721617287878988290659705386551261829971411246428321001924022893835965502743435383673929064551118421375692828549542172757676147498301474088271755866575827500790969546079776634654071123266829423406054612424905533927942586117029306092977346680695197865365454467107973403062206095116492880056061320291861780201218360572365937188270977699163433495143368277876051213812911960293252736154144157346589065831950211845217662387404216383156958833698123830317824801045573637357348245539084559264791825442021427184719190798198625830823253060211836640931511271661634944909945398244551658942318770198262106214828488748257564423425191886662695326913268115561618878174419643100333554833415243595239697490437413396407418672768852319419130837667676237153096398455317667330809331013061355612358523422052958732103543392247933398698142146755713527462800894929386604793986524251505170705598579555589345997217761156258311523430977286253718662046683950173480455138490661869069933762980216116933948250927351206207216581409791979867542068096820394263332318448326635088300201893472834897953848812736255740249162022475959922394399462378649410280126952493808338276085411646028046028915225954080727959460855095545935696865699926575061187763816727624513988285874128512955188589768881627812909074420653101781975965234684135624295281465200302018518348243515468909910215281361716475685105086231579243683047639009464275067896349863348000886876258675629129335008316219133501379131244483645252125523758645909912666861066978660036743721855059809161703586271303909515947402400266001045673701786529102538024734224102057013248311956434068767475984294707050559648918774961351968696393637715948556512715352903537902340293558842208179080329052900969875043571846718306958318926703779832208253747267624781965536383074172522373866244314027620294435549875477371754667212449102012862552733020818897197620997481081551380293273768485995801287150113749970493349919833516782253693187061330097788613013695769049876457650284039995926427158526876743573580826710801141700072725524343410554667955158498807510379980812414033384047110698305915935738612241791953905104574053043346426216367133507299155808642664315405422648012346117225958018325435006885369938397102786109321982040570171270435976377596146216941645491086027429977546337993903725960513185423754749576681171212255237491258425698056960105247497515495104632125872040033329681445909880953493661476854717077841116865214573581748501167428614817481244614440433706470153111031362642227570946526361083726267770622291875314903028239831139666572576770092617472129580281469721860512146405269947682629208713679812185662170907883511775833967998021921481361055918001156543605365552533125714384334245767736838279143904904642372264240665808934969083328443819985295233000835013448318349909956199618619231314500950488756316794914405762078926278494578105462520024856556732091169744656357367710348798665526973386179298691909438211703458779031879117864508770642775298879952531057059268892803964621279890944867326519114656818132154284289836698710097397864513627555390343489526815721706198081635824285110675526806163128242186956689280851349150509664172604360025873369525682800620038672184990935755587151007604504416678636753710465132984823851373261094542182460254955532623796872753029599575691784753720510036742714736763629826665647410236080998143772839750126817902526939326362494798047206213894273876420590047089587735859092490383015013535266030832020182837422539155395501423633837150735940282871214634019964193546383960532764434158631593551815243359742505121967732010186133600594504255127826467531703621456985913096443675556449296468609871376858473287286694778305650628270845940779492853080555363797206031381248480822919368749157686105523497410881406916766199359817770465540769513055234259133139758474131092067592878916094530786555423282129344648152746005488063617987161169637393632130210414646695392880533436868571302408065591908398090095297593693527182237066707951180262187667255063727242897792293752418042120385370028414459351480450289606113512728144837442400275547159956502816117548884644083293646127638147859504730754420861362182511557566660639480534438780219359050547804549359549911090556924227684728947457112730803481079448244971496251652083430750379545840876687081810206197676037839561656675948512549131486195715699799475299641410031524148535226894218810948814265056106410630949848977742012879419381389709090681012214180030436353793589902431654815016901582190307486774510222331710025098100056363739398300467181627556584671118765181358375458247401674937427074139827762181609044282468310747556228721886893552986664303654747238426570714883297347510429091857631009297416699751196747063965801296112723956956508859988013081395531225590367802915828028902912388329390471986182857768189383923410511112280467553541103762682727114292673709030935892180266532764972329459971048474766398234236463086725652363619267571321219671761565443323081328946628263670459805253312787564897600548791496218029010287089228418441471165095761071338695861480330363693215790767118768606764984284092500744915848935484450797667557985084054468565986937511825525523891230609875878505797554827921556087633693528281147106634824985924995068941070725575514063923334450172898491757100658566113639448471441011595939688412983805152541089732060500750749176187459590195326529245404839663406622233658635737885351745759387551885898227821441022070439603844610100880774951033302180554643542380633497541562690714982772468176118367785670616063103614527597692334600612107444559538305971042766544140938978382096876999101720627603674733676991946729039459726002964047260490484619591670600435788986730958805541641281863570892479536333828819575114519599689297993060389395294691479106500561963790282068676193718532405999355417897266819713519696414808229495898410049205725325189739670231409532748424168974642504351922462149505883012929318224234371083080585814863121928152388155586142722097541391145004927421813590877570273722251229522360304025409635976079816030307032263396786666455440607530999197403020116128616538209352910204880953202476582934088318791705160440225997556589130944139957266471961175153211866696959567913510651629652137011385183911056739682648304122188320383216796472360867598986397173291783910834536358585160678613007007876723906775821545203350337341478193056654116203888212954205193102976010997618273739408859164501134592436496235557380685774533194176654176660714929882083549665777538815381878979278890858034011542003989404121562310917316490507484758415711453941562993376377910189267045748880110596384643942416881171755023939780942723284779908885629875647028358186934289589841526208366211094946271114715375227102661503321255834666254471854251361512732757599076709174330019892503212686958474162148162662497864878578772218359996038822593824087353961160003007802463015091842824772030379007592169031979894493105038945542097499800720908700599376883643214059910762130894643330079580127763506239355618807388585031848846215405751155925031680202437268701334656346190643933566883486664518815925639884234533826770677055315622152415026327458465518544178333941767339214222593757495990662043043321946890311140573085082336065394831210624148257121354958678147943063757247973855517644401394954549516854672559100784076304492943776040802853621758061759858309207190271529335709464354559979544701528852580022276027968045538329915109693131251751220178486845215727051486154714759908465895367175959514458337089799681489136985095881789077853228118082037352733489463066855265984743213696949751578458598824002608962370083956736666991295162305914910190371383395099077095260577894275617603997947433657898160303549726262396540625995485384938606020262818688167103469338601350378764463449751191382249259790850136594729510005946502399348719875157317056089900791872305674792481425931012654920045891823564564475603008299936013721518590246460674558610386627802075289195291005994664095039427069224410661217071680761136333193219157260989131235468133732063228022552770326758753231848001702950651686231888574677384380982555608895893760040434467614436693904500397102825856393151755349225655491462177519969591270607140325773410698288903540893321158644003402784159851150964267422099015944839566748783475386345462366999157647824798912765404679975967908576242496766229452347766311334582337817363860936410257426510379249450254476713781071866832946012898117225837381057913811161422824852683368132827601248417262973633793576503541863785813501136569779954937038092624023760034760255601865788974080637888016875775230264277654097272816432398923547471157562425470950272297950065698383368802210470585988112692864224521215389882849843046453021212311698071090002409875108800130367761170453868193033248756400897996961486824959403098651670907139495694929427169127482592598217107259425960138097807489652971815842496419250233789924683414073120042597154249248721922530291733158647904745790261340960463750246927686239610306365846871467095730836202429602446730219345297319298862142551732368419190529070435183791161131535106694079476734361967867536808125414719847636617872586181594501143483012643121930144562846351714559025292990742621839176109462590344645364255477382155004764389632734084735429690724790658762583778574468621437203471439379091937411796256440474943509114322718691648942795151710451794540064065692927486842934121571251697257852886903312429101906349141091647972499029764312364259785349381031181659974806330236086284132631013554799659902647926798892843815975067765011766086278355059018661536042473418143091815884565501756161328647604198141438622083576337892495568813763086109526130596992255708900725128993399094201992112239160608101686419458112622672684301146825368437362706816694860240856679057210318169709928124570954876152265358204487753451787273131343204624417884251802777493000031788995326582428341323653385543480966494778811521672110499788215203413224951769279537817776612306796684601642268899050900769019495359254517323014422946267388443156874556894903231267315870513952224105430264083246224665229222867053332561601715355266563941287344183144419303553819235305090844066202561291070910109270977315775774528568719913532560855361986220988860141208505154020864445141847307012084089329925764613118482329187229187317441977249491974810917815145234471690865725389319869479705320564718537660153498883263851470048991582870368370404492629640080095447629852946156413823654099292710172160302308257630062218506782130286526129003656779934861784991936273617676085736506473228120981102013757714163713620266506096017412912279805868762221973062353880381901838947616889895270563821643054659591521744217920922801032955067474062856161293669200838503417889982236361243551075230641214486039449092965275974259223871308285266564371931489545771445365313221522122272395530814781072675207829144233611520129496388717328741806897586446216881498309949086563699861029771445184518543708902232760211993075716440407339339498925108115264814470124217689225276412668341366491954995863203246278426168135776810984505899312808692268639717800695929046378360213915884337806774026191871367927647388751776756388012842327873293285402726927494574937430075965439529986135501944478627064297134405933129243946966373638920183527436272979998818777504372833416167768842936663612069972306596144819983538395383838298447629975714748779744498027265361871851066159451965696232349614952108348579918576423137501572564126223114853464199859511148267005671139433938514988667887493568134789050492992788639532256471834165435235888644706807963894259547419890332777664222052919742272013093541412886072507548724692681642937719164627678021850310325784267223765443619337910061471704805224633410939005803482426875352644007830585495666594952976635907815393937921196467532053536298044863823395834921074058100727819256513771749664870585657092577188590244417776386192193174523059151798593204908542679218489566828517875527996797180462655079912247514136829605254027902932439095421232435134720013289876554225988493660746353067585256142869673379968115419740627336525739938783852876809830375207410351318249333258928711859079556582665703909832895699263017086219757252008481458031430346520579042319858938847787122441074455387381961164473711210292141804844640834536333982194091810758860158449823773380778133000131897386133341231041073334693873929406244880225288918193251055381648289204513470621130207720296782538271205386820586455249196509068596521206703748135926725668883230628969892443303461929756072708096916946434357610641389173690068067260571814286924945927554006918747862191840821144601981871930397011520776876194093365023797665226728379215929733082189584095494091975213373874926708256506259161740556326482269446802108041122025292656471187007059437441434752485632174940555664422278680992786321198062414773515381919927547253843354150307788770665590703374262104317771269351783072939189305325766708939388714650376299279724858171320119731330199020841133159917750063276021134273644849997785978582234524687070963708507622704868693767418775363292008075007666289285954753711200729821205563399624672322510994395894319088511005634005432712834794219366787097807204833628860580494882346491152633434882581574685423968992523167710192251868602591456849975294360222612859841717074998508745247040085037793083378116098681815244536783398697161426658019826815333317554743162454028878199878013685663548491907940175287457150967468734061036345929904021840469619783849796335128198553531594588805506896168274429669517728924761226862786645701288078713367541210407292135735938994107548647080299593160454700950534763279835087162241720681422836070741401403238502859986543606342016733153424758186830065894071329889937359189844132603576251757995570458763735824547467880193127133587384157442417337457330852563477170063366030505078220668542124255864675805712162679022545705551773193175999106666046056291139779328108048782838173767954468924958382553474678195583242256846021218778190319320402037156695563136446589214671022146766087971524686528927476691451448025188880612702167451615776556138799156769790855415582653461600771144435497221067002924644949629583775273741002335387665521437906128361836641828808762756187153092460135097284566708683373544949414162687802454080975261996454176141852873515491952401155619913519017637071850103059512632978893511933411458840036282262408376422166021990761626517271825780974976569918974929177732628396428568317127091890045504959647211450461197420733542389554637608208783155234517451380751435080196843939110896709445137839898971885104000754012630824474402365709619377989009117293050766734185656270956495666027364395847586387564856089404260906327360312267195186627262192847296755596014057627194923071993893653644665110176897467539223593720414286599030200779599111367605850462376366408081298519256867429593736941581500942976640690377851505057888095154431154663690694501002414070809802092970239552616675053312896436217661023586946172130653611552900587042085346028108117692458597346401968852775384823148823989192444911644276885082534599420835571463862133778558196055749884897126808498825917460011181703550526847799750813986747187546459203035882435734453193471366151830136922815332740294012825835139050152631573169472525989369945808333931180182287746291249241756623428074485272806125344433266460380429025762938539721088082805293814898294902843613189160725665916886689475008456423262962074882411889270586924224395757622037248158368305499035065610357311846813582579835345295072838112256828935953480232165747853610936730774497505242262375829208958329349031223340672492850511678100495850493167893869483176582284454121734260797429237323176259173369057391997807219320782259376816606107488747257343915510904298722975763520071246989308428982595725877371762689754787684212056160156349056400479811131498027749749361293887785367034957129463074275261997372602238078161433566003744487007824113023401825592792822643600267539113422281032466958452324412314398472538515816097468312877953331509719782299064804622209950727294571119286404979322939173164556771147645636406904462855786924618609136907996639231481734380791668337204145020059081335449862877701480705667995493818906992592632899423107203705112284408357349357333724546640607290450641425390611368250141229876236052033376931887688181110665742845164142284210958318042483094661916204576750718499618765114316909105597231912949972130357853886961408069771938800699360121125548929076132133786219034373272040484263448483679045883366299379869938241084931936194195364843773518233910098216128259172829301181010024620081496615918205197399089324388481624771021073932774829778650242380871524867427097759756794890880327401819481219992774193398316112244658449054778777663871188801768805864110364246342814678162828575943439999199514008393679706909831948768328351596225437862464633338577756654416274869222930101102831903276446627754949769515028442640378190813879957650144316704054825786275250673558736105004024108704132789879517933664706283761698533966680276985886414825541078156865940804478546470507390070008734374824576302439312710794818668533059442902898089996745213068266917908050352335280825552284041313024395815191602907022986884859018647422598843521512218951712967327103860102458420218678986484086898315486092343999436389916837664405713716123110632693659960616971972038820749024935803976397533511086673109414443080341498234535695954869761241276626781147615735942277414908488256119760947474601902259942096900814763220019139772932115633722749126198645881279696045998662203078460713083729898794036507468051072505520266745761695857400362883141436994020589468886374534954238566212084431499633950040726918143293952819633398050704132466989012231121943538097819134915158208932608518084761549679569136193777928888631009922078430759201041881579974613801092428138819586551083979403287627215329868383982677213928723205345451925252047441145496308693906621005738966036207540333937530483874170297264484108146025028294376101896597465925524404239300562854430237260690782406242592392181037047318426026673773273809537437602173866272746197053642193239860028815362007599911093346103376912875913295229394338346874604732883626873878280835807374022026536010855316242582356831124267884232305673046073863332746818792759150118908096207213032024130213466688811558802267563293156992095323070448097285186408937158816164245247425340958627806407752500902526954354534430161222304366902780383722120253618026626999436451952733152482485366813632327431198331949395096941152843922741074121859949515089051639557659060486341125394262658520607737389452866970200590311668181091177481181544471028637562657471258515977529844485017394754055593315351243396390062969160499349667918893866445882222793238978026988733258560884370695773090567719427142100963636460401926367595763265260031366066992459082783217373988915539372918666744131956194111058095016118921808364413077487445323037435618882596932432210484400528723829417022576379105285151992585609653742740871935172238475602914995058628709962844016500783879790207597763501896973391011381479039662181820488618470808959730175376466998941217478107475352788226105729488133360938036591048388983798548201314000047668670737680043109634408478572505597352076343822321770395629749235341467624356157238224948769601627326105737099449804629744363305797944257199900081523227014421710385142079184142202152095928557666399764279264865716433082709641862970325320506094041894741593954983719865140964480677030066475563125752144270614875518357704077616816579122374790622475311036445689559338863836323189083835301587206194790097500044246763189428966640282865268042899354209097608709502616801596978437694004020453616883899301668882966503104193858480656897706457127168769430203250826973035339848512698447609616176167193975660760692867261072515916770685810325852323063683206479953919004463229732358970169524916820034000151459536190100482864232967422222203077334084416432079374806137694504575151847865603335726768656534060813177730887126390639086049995963349429328481376865497957799485490510498674021219180879098308224771954260440103024679145123290383227974943542880890687292435437644010946218137917433604963766378764293076681491023643664027538732855054291552503713063390420874970475328798513598749900676590759390034809039381715514643364393868439148539745263320829305318364801979258351910301984967612621336387418767010701250491277649098096692530407240299890750981563868197072545481852059456671895553405845489075084376109873909567811650156437264337153423452367272000587277571650581241116745513944659010422397035201050316935516569855232752781445192943827713274579853838236145528193486312019037468655791481696623051417656031610936816232460772419473447576205274412527751498235425183733989875024628401545753946170272057913085061821379813156356991021508349815610933848794682638716398391293328402036849059345257582989646240317693193409105378353567361869702905068098126954067451452124677832211883259592749360714374795954103734069535077243455253733886514326127925153522031742233869967196847038260898830229712655706641722505382596901365433084401078122213383247905630965879171141361911112754742590131216639442955856793702824623202164854396954750822634620070564984690294806560507001756956677437490665848809399078280053538408029396873490614594023753935494065718224063795430413746555210480047438923932454161918549893252582128688661943143311005509007611344161344065919793472425932313387103515922043985797254334202617076774033778373915511076601633056537107784085151247827384433256133665849336295116774952819594029835121334258790828245945699513012197053891501537396512667775359248654469725623350461096596591273655596256699194191260635821471359534041825821828110230462601032430160647845372910048286763906477384448567695711637861108047231541403506142120091898246284658271075228094462647022757346157222044603154341480487583426044525799016272289516631530246083497344445265662417623949022952872636572795026979389116221224055656564946040758694247852814953846127608107554099163587130128425655955684019421672666174672011589475789490979193747311519031273356460340231769294888222356518204734003068110164336835100586578137236780930266272935831718316129820539154231885426438149529259308037615991973735217216193431131868309568347611902876402394883755061907007274706118926034592206706203319414799645824722563680653621978492490434283328142286208828200918126928252484557754194975049398233174511266698405156195604139755344735560683543336532709581462568422859454349236361621288757492322979520755252711093994794186892943957308430214992477396183248584215844877158334889766168789994994445460980292654942815067640177134198932986113889477662770123887120444343811169281636129988059341309950218902665335384446083308225417625457182567033733078216949603883727524755293730326757707300925327156260163179018542435119848652509833919249189467559786017273670763328626364032001874637118501176566147832271764415978541885447526415748924273045837550872384660522082162059408281548611983045157301101012336563967567290430864525091787281088577511703984124294215715195426290141287983982518175454382729783841395744334082303980241715104305475829157189372391924126215412572640081107707638089615455244951908064088811016734514019090262073727378959611046836085691346338885886555592509355058856279051689558574142575838687284512438159200397226016701993587311494407653092299578222287838530329096396913934586212939943406042320995597202712310963164321607204829677592666428513488786571650773027232901564251443858540971215131619627721475990932462552735646781271017101973288746189514565552607292566605258568031208053104285615774359603540937749776654447734870659208207996759677317832545743844769875309210174085558345900470473701320070745982245632321105556748053639199588077007121559505114019212610458562906205268180414675103657748203649423424016241690433162056571149435069565759163392144150991787373949584026436116032070074441974016986129575668040683415664822453619921645329106085974181846166919126842142858937562912144747529421582092797352317230921002776603715618025059552195167457496460196038212597862066328788375106233305422406629007706932162661571231100654706912080301888821013668448568345229840248883124455976396686501379910210601040160215719996532699423783474688019952912455237286468965364491334793463138242159286193589861985936032330565090529468669340096166075866520181272523927087014141427961066646599776493140025883924246869985033572964807635278241223631558447887900793904161039559341510783652065719208340416447664195611314617138345934489468596163137255404795448377580185041201886327778883940862607269510118468308617609129281233798001650576650381298716126973393110162788290529349058221365007368310198028163577697119129041485502762337510461495218609726482853566247296426131107307250065447185109316946752573065469042804006072863731975302951899430077683561736855103991602477621251734668252132487525686174461104271090358674415271210354599240501004673845894987825860836853449811358000157769262350485979105391494196977951549230805731385817805250625963580084683403209697954486378766228836798022747481759966791017270243779248843490676958916375977284620246341914022797980290872732906967107279367700047196036288895264558279882455396835375841818905158191959416308886087283163873937973902812776191048274156110212541655622644182172095427428225023069205387015499744171574468458456291147926178176264519961847054029682995753621791660180585334726997259355317022749463162213825396341947655471298954163489263438998534438900148740310920929031592109996588342564944503055551407661632304767706935350979895446039149017418102751551861830453883794382884225762261200344186977491507387787898154804200469282030246503938011598927906047062375014551959542624891502253142697222386598768405776842162125381879934343949172980828324421890270527471645922454879999903356307328179758773903215438563078430521431999137480588374841950166664448045553936766374113809498212733348160500900411264622267809295107010876326799295837865630277173034713205982955089891969429511584311606246480477370444514524710421013057371577245176416353055741792794686476173153819933395179344725894424070011138015833505872514457376300419932368946751947368480946311577040018562207653039138656168269126658158310948438570340443313866995461332756779374483378296835019532528246839835153244227471114351765787084659678034114743506333527150894251220228499505509567704085205924102590176738522993083447077810875846505646915868954641193269626819068535006269995688353395966821210469892788513612149357741343010559395999653848684325723340583609868395201089196554938927265819766904466575925344624719305687450290669124419664727116169184241063293965743872465505209789825486775596300819203561473681347577439962894856928768165939090384404734377844805729243993391556399031869733501553222786652606155809164569337029665627937377435840062360313976380311430381588481470148348361628202010957805529451828615899327585523820778570671942181111382357103005984801203795861866067484631574053312491840304811825979111231610430783089958290498717205720954058312736595440546301215566788269902403693085791160182054060861125497038128200332840636458791135150680869999529250358948001692106166505544941336965786172379949963913712604258084031377629751140763505804968069949954523035064866906708508072253029469229365461525734582856751470484133932086319578622205635010937048707994173472957686984646997266021472512606913989819390890051227848477808877582825465796273993260648814792116511231448813141386903915263769354554828182053817130268605394499165695411286207625140270711812691705953227400307692270578654690689392367737104531709119370923220368641436483044206996770557546289315485840510639543076633118711595552118353853720616525241575506152409909717749175662743330278843485260680339801255737984032137519918359734114440973027430250203449739158724909148929556661323798580914753345503179358643417374293606326844117046100321088729815447726917231312168888874037092093170255834483536011057461841278045873393105551147405679049861073613142196835166463143765198366870441320140860750818911209360917196435571147279112044374259853486823872195277791835084205403350890777102933179416573486611941867408297569288360089093542416321926091121118511890284800110690597545488572573183369843965796932206004914513055982914722075381581460013348509846204014584918186245845675247515898758560661437275259023556879026597996423365590370826419397867117834242196367475466726335695605594811544638571761728312467866418088392916829325675816939660765851402971645186327164129428276909110367172275429409507982858642192607312739434826745337052476995433540503462247659645458071655900462413469271669106531559968170026832234764367595726396364743681426837139428104735820562677608219653269516198900400743275378192413025727927030083388139642407997379326304479935039898771541816513483450895704197831486010498845959713642959199521697578597050816229756111194305105963649895715096331727337895505063683708749836326424934665510340802493408042453717423319965370375429095024576435663207383910901756247222818765396696326684135635009684846753700884171952150397243237222028048366906134003747785379593533247130488130041420590084455755850509688869352383438491061493443572588576401792849210377378667142753998021243158614383114889288434559072379765359663448277971408703755971265815200826922180656442983355846178383648587353867538838553649047531918329976284461632198534566356528268948089747205258845351881962024533972654658096003039666005879663918721639515009405937250186815863504354039238716601497597340732094734107759777764555380432137561099972012525920173411086151337402578135725133498465438842666155587325040202584557233232037835710389941001731554914145454982856343096367860421464075455636396792050678076005025098235453923492136317490134607987093253072452843608246511495568993966045275518164060965026369853430109511313694571819540874110322019158939249976160511431755907314900322300389091367477872270661589005217943585869005681177153038167036272454342175124932634778787793797147603999839315461858711059554885734626540210782007464330766552510958844802338213823690160840502667224065146462849209398909733549403965259110454066276813525065541281646443880592949200077657116281270309825938631537035115803033260904083670766873153722617269462288526839152479964286142782511125606450907794974985522723634987986250852184640646117809383798519735059147454543024846169280540610601750653691139513870173337123174938066019948713259692960236305634964285875618961804431972863172033949964096844578794652383400931785660003461727541012860619038450431358703610594863247921387502074540009167484600710883879853618739419449988135887982422176305165498720865344408520535148377544706813783596387443410282535265369611735332379085344933271129197475189463611564761387323880795850237769966010559679993384353868151196130484945518030640247481270719056360263549547727516851490493177416404774173280418522137998424305188463753275273143797694567084616002092380465190664251186029446367291221788032661031283887024259141559659106387359550019972091483603202398522474790116682332075874924274635498396422405179516251476490918129370957965999917932912036105298939773936031533186086840662382592022529502489152640347863039700481215323545219390066817094204670448078126346336421104923478841231422249486627062976872628102028074590879293552535670603348187993689286942628916580929064363349879817390187059064315892127294399698106257555141238666038783100841078720835430581175170864708264697178026746726812778603336439439653705117620237729626607160299426531151985020815077210964014658841469198305362710628623778746226411317274608970675884738219155942182334876561184380014710914708503848717797077284502108220884339829106492969527195125276408560902235513167339459433427260671255208095433641263066932234890503112184663345419979373007625918536031005307922248542995270035661431057012858700823526789766821227373810045887806110546628774191594516964613437369241332795319447326114500219093054235460708911940164202232074911048329666599553208990243967998236044098088207729071632115603629127256314612555994306025780648466119650992940846744783195209527733549230094316091549411361093989405144878478315344131790544578588702055619362453996213092269139121468707936632199176173282780653748400608084137813484766256351062270838277784124534345744317090756395877574083061435097774230154712117746234246985873750273645562209135398355314127025107707955315875563717315299671985394758755536219017724705275023976238610923195214435787255424366627676037589528050354780983910752239408787847230154908007057305554707309500137921503929538780650164863979752321364876928607647253730394124049467907991814502307128851496866601147959857063788496209014891053322935207672187020895628082080167574803386916013299130643442894249287669694756143584208427842659504056430947876382569514436322277705946302732179838223933048803176139945749355175165838647618318627014014418338919172934227017158268839916581307369011322149998076020768744797237432807536979200104663090092475214410676887568181270754375090492006333348131658502097514706791659744885681335706482751935987264946152691597797867598360897024314882925760927964765972711772440129878728627097099706859827070446404484082332890594397479175032990836332210644687328783046743808026710151663340051611468541079154951045871225909897179643223332859346405388509745995321183584812940001347503597295128736215742884448992443169526021159564217280298014181132359000024953076045935024695367088897366116714410654016925445318079411275671028501656316890887472974069732167301132805052458596907923901249256408904953309230451837582232582083927651391672733483245125619741212751948789836854220476929794082837560259578447932025854657126112485266078818994911983133358973224492326606033601635341124771369084247990814236739595818764189650278158462857825094292160472256404696552526363165480857526206674114839045262957820689650303919275576128135768334145152594250001955111614268305109314894638301494306766793514093638818667968412210764410053905761758138491814826347667914142433013504341867273237272562672686290221768546146890375534904647653599370914321694672264548602715577579091037179409379664437853176245687865062659918036182033827935570511172889607031620698964999141357601867709553725521917104711670428644522148352661712489023341102860534436965741802759451136900520018778332604202003686707400997831084903863626539355018156737922514882444141596432544224661821696831798988082762244919874073590819314842821811674817729337432796977021627703793091766760130301601027938070832386027742156470357958457197297943809048627000180496841591802472211529091984781461103333643569513357583282273094237999115462124441213713788823435722131614928370611086235374267676418922990280214040518446112169697120913976601839830053535074459438058949949090847874159992207255605396875337228777810858285955484329331090868704928120270498482827487868750862396310534708694861261032675334818604120337692937863245927818498550593911286311963559262558544951486728977468173543210143092041198605095431559463228836480807832435877363561960676685532895233087251309071718824257686561428778219330849300742315710970284331311125365494716001737960909075891394430331799592127379320747590581057855632103039054634261949209231726307857185131301886615583805175835751582919774327734869972618970013990336228484578264779465503214418095976869154858775467933750814371592177118710851899745846087906291793815609103821653077282391250443481973871021233624448140254490020208878559881673361514561670728502512285072712943227582876802182570327733540058059262333905746149723752257709318450386192026278662077359686467719385344725187960895044466277190359064903376198613624801360318703031565024398323119751323701514610887823692779158976344424602050182499778695294165158069704929294497095019774152490572206828004118904778412607869930922185211967365181807774216668042729320229921159728848286188104694859109574253348002572545227010256525137430329600555607125058419854972368707508387934977576251222350667308424677331448453227657395616054015617079602738486506151052305881483360473406960555582268624407033134147545802558147897508731710903239512032820329214937107870179276541421774658186892876504556495145722612201109455303175298574003150416805719523766210912043267362982122068697989525148212086963802861233205667270425062869303857848137167072178275360780338525658218469991934802640090620263235377352293338260463164628520966351098922210485895559861140234526189419053602033859427167825697127648938204071396502163836356055658162470707599274931781144766595864966476567229144422050939559189902844675564706387330715360854749067986688536240111596231335953261277954630998310112180794883735312984322107133173295297983546668887141138381383283812887883945536782188745269841090074530397310405403325624604160269119740059261574885349151695551322770379530661412094373145175245463744729908432470222103215733031580524486009932907960425349858674022116707277776344106500246194606114067151927155488565871560696274822195763206355506187447268242059543293283179409299553003904528073085076111227817701745034710562816310745170015310253397865489641074077089595374543516359593727155249294454934329656097181356147607831175753657981790034797110696741024800122680970854096672531870308213976881395930351796780002503360660649529290454925560186222010904494335807920382007757748295215002823087376790338352401499108457130621347287085835590118558229351441638816074415233183835438879447315416977426575566725271306520740279259060566353330948993183183937967411397383189619435512621179823756882785715288237816511244242392982170234741425862807938686558304418473275819072139395745268487685173247786366116158162924225244312756533486972873239733790948443559769478077197036018682950422573595036507949890395879894216404493812040040460935915520058800418199337383001321809243534340170285837874982433052044363821958799534170393792980803626330664619456269515341041855663026219872008333789646497101119830257904272640485658399340183147370009859520119394249075844725898793318975092835476012811849321272240380680937467685143207305002974667604199495466222007264561888151398092082197990182893980684770556599131453666088683492323988440321795492507442552916332091993682689605872334439852887686118700272748691971706646021440965944156772886539638079519995878272508254766761843303453321488298964971944901921451560216121308442590052091689520646801585767685419379273611159525290595372763360430179844675518285945138679879796716250792230993843125379734424228584343641991144547389197421178666531705760808713186423075244228875501353243569498836919164826576252594111896662528873183440526814746457761497723863441423530226115714502092736428616419641752392178653034353255668993800840789794263993488490571799812186679031176462633588507042425883085995196329485212053863558775439554077146476758178299740254525974176479289174731668986922348306506456849227274093557575248560926423408249786677544355403228072262101625043635991652547776465860058947721954242883859509722045494316880193686376942855548574410629108073424117518254088669400862145673363111078878842883978445628362968769979303424230625175362341290562600209593913696799484566626468591186293240493298508713119848624652198907134330949665264844170698699117649045710869751168584261081068866395946157839863256686575766067120434212693348665016011053936540587351304255478580914620049236638261019489170560106673994045143483004856092453400221759161536723177556687191252766604094766467665632996862516871943616438839195490546392342240447024498159607974599574587384057297102258358331961627416015251344093309078389888769116698881677149455215440361338037860188753315180222963075283151202115039168385341123742355298573131801287672769975947944329441148897561258171129297425745745713212995044076924561910520036287640043195623799277172545375333803919704087451223855794427060150335592487877598217144286618141521476607225262512267838085950270171021750606798732668962643608599979559744598288275277000369245959409641221704567518807073451033702766064311048745592279552609374114975663951471936617116225890902533313052397001518043148074497661660867981554388652770602227397831058371218474944682787992240668748401783208870161665817346273230296593138702952958597391266031570627019065709865739196676370879674101085523796966849634313560484939330154113555976822828634632879348305711970236451110945430831106462093744069073511803218722414583099297270522288351963644578780903912223264620624545059210902398352276000377625018777316185799732532537208658238271253350243429376595631907344969339533081463276361785089216340927858943443782770430252094871190992716983736021048192119500335001387017816692703151758589105308886127499293138096165228691681452575126458295979824213417166837335720452870604766466954695776277294089578967357100146183450320561827432365872405476600150675865729288767111531425161218186481347791615032252736111420303512410498514188931709350603116428483337893098117690132156630735514559970887512867075774516216564360345802144415054970733257846451018532007848400048523170462311851441201832056119423164396297680462831810602501689664684037732571842157943098073824066470688760444505576044246592259811075081009712309221710550599017336542447623810417123835245944520501190987111163110348154003675452160980448696960170339056650804385498726057003755075834293917342115312814399238362321588930043089861974845858711101197482507003115640449595088751155930490578731833050159238596432724090161150569420477551642077395016092148377082424726047337369076187628978654016622430016683105836515296459463789931916459895054194304736477950467395136963063150236962094867973643671816909748398001552779113772903133961729506497715887486511146174847304053732456559190209772815642216208926778683479298867966821589030942284709859604505017847438779366813009676131375380312301426724188415555181722462888828014391105931371570472838837615952201034944247236973861736209570560456341202216994424380231559754461765856826605759760218207691171551652252441623432550993054491982963248706271344777835906115373566665418969335336162460949082826392408798284811115338323496504103182934864069482061607412386134712232921903651528676075456353729038665611171188790084139363792144337352513590434397082769086717266360621131528306434205929846919867573516368163293061586427160514452899081811983271466182379144769822758558961972067658240624312180780881013411885645159879928168025995645405990210314442173756609619316549310137935133787781028054606805347783334983813122944560464550318072376741323295770096661218120353229646812764011944235093902281378675055246867537915529485357402210697069330367176205358201917792886379935333106157251888680853605016546386481901346325355455482366029551697461195552283619278088294028767297737601302804596985915102116433393281116538818996783590185315942516354541611552696496314874605758100703123393536925059279405850116384434147849632596674768048788659837883848803147108771355860949810893522808389414805639882271452744488007794655419209755266280880461050760653625780000535660857143202608512831478140096920611998025660171516127556969452291832405331307734941838442489607083300905746011407537855097105512188530218177834106038764658078330402848579189293439195003248044404444398613113348892061260245509459834750118736741048587920346488653707804562338197236615019492420706518648946543480640253624809432614490377488687762954316280109874096253888931155085995155867934790094697308249242143166718324676114704285287284579976718108524980088878471164379334969296788348878661405639325996575577635665937409694304673509914990939504467108994024475812151112447524622858684595111179148259601977651107088630542307736070775121736679728824857987889222362894428548753327207133094198192008321864548423888921674926200096702750587978065238829359056934655592165695295345941528164398223332359906713237366932057347878136923548982141291338415710957119967108716681351088858874323262733307702312314169545037193093397758056045244223916948111653639365444762594640870770022347973859512296891066527398037425300497071510493212598199416362769307184441190918224638632663779173383554704675079443782636678429365919344905929782261408193032940238729018062155878609309667242679196365499836080539450482119318205519821896748569387899720938423666622419781154724203635815138783621501782469578771143751586394280131363145114064999703941980338434731358147241975218722225835945744221276144241483400216157417812358165966123523621311514796588354665615929277006132314154670607026538258949642390930155735588037791894951300271294225405369331204248377142603102613879283062577676796041173458957397626420331637498208081919257180320040174226503387447672581096208016613493394357575586851161437046262674392881212100308544240404133600148610729336121052320050116356004715132929423748059312825834656012007738163111559779420811333485639646457835863992892312426303860938690723190103176807586408610563090474117355717287832268488964271694878865442404243635746581774363666285766036033557413667716831314147929414560205989895552799598844697122056174334689357966839192861929247439930172099646559565578278326287116460631713953306691798991109572254288645755198623476289470860957404713650320317287316085349741134885369053847306053183459985936071496674700324221424726378160483560481336567494272083642875101334833100924309037364661346548644931955705342641276622013495893473552197079401379021408429133521705248172918822614345914367386086090161768720920146126307218276356173951483183277721002430226984907655689953796826596055820781786430021145966567559939152325306513139831210955312398977549871180312428491790675498690579257743245058368276475465699833517824364029574995629632510507563573807546314582373284227422282349757785553192142452903965610863529281351123985339606277606735334993281562340368063706853895614282816150745549850095971891691595433459979477461145907080795446913121355360578358860842257284143586416076534496188170413557080011553217810200738171879994798548741373212423183151128833948584159704084277724823057215581782355768051269478995498887321706186301396521924531376557731657308164946145265007812856853266457637541098344248097756459353547967389777664390123103270457525621842364383705146220204860604328282026310691737495064224869632122939428739816459084190367208545069306660910707923280232657534591741092093936964617877143906376762007561830975514958216160712448384158369568273979233565391660444883484646397909246617780218601817055855305317886874514623478624972128861594653304064279368007997194053375539113797623748871690404467880225285418572456601022062923804880787845843327515309888288910017751136188907715808018894371353046466337200051035033760819361169059642783366372102553822671727602657121625446579815008050531178387017839303019044884998768469324759858414031622184675079269232941316710937073329209163381609463554895353450315106255561405316227586538563154641392820249309156131327567562951679642559152988630018778219510595828354318758337737465163328071504680497883442199644522396824691118211035427894027189449550566393810889750525587024551536351080766633857158600958297882412920955940905293874590077692996932319338317134444232441457570681275791774864810664253026856041518036593085386741867544276948063393591673054295381268026333021138404032713254901726230626657197795010860481447237415952344828301195803301566686954402881431834823598607889063440635802046320519293929096880228638148483393276037917072005078974758923874715774084672998819556984843689616617405871511153517091268649219072981564612382764452974844459468127942505724155717115084720871307798703533336244796534832663340656074115350490078641618366795951254469645998154960295168544026853802707372001238006578875167605500806344724035110217256154430711935633757009985520418977288129968300345555097011570500121936576515539732970299610499998511073637797493858451880729713724963576793862726933958953040352591992742730629599252562573153042815675770423539518290349660117607656473508488065493823080955866553621137465972706200748758945117222929206322364770727557335999660341279767994188810851410046650454327597835897694042169285511315960042111792430967027799076594889553064686515228054622350089209934481720586460109063451075285875154767796506929567038777889539424016244888604155302840715939170955427055258921430620832108265883937821510221523406531446251986139654424777584006674450753861152225493252118651510179983449400559350881080697251130536043127708171632319991813943088123484159804413823589962134440261046258344896306236975701414922464085289839484936431657433837907584739889545508241293074959129656016132336314330784673338310796112767482281177853468961479791831212973664769379968797336848756165095619603620488867953436357261961681723520414413266033392874158524486470622303107467869644078995672433118547008973520691399088481849698394666809986818580058005213152485647030036472736318956304045784160523511193628371315778093806458019991465643265465320877557548460317793147886563338524589970405082198980339675260986928853293797906180984790957484930231513195284968415773888199255171889537209506427980744687956995787904959526396129018188155181361595128328348910321164502761890119017886615207170502617291335378315636977844352960283261649365570570335051139202863241922787076282056117590418248047527728190786058198449698215170847370882361771398293969968285717457812827554119111693054050385204600371956041143756105661102882785757217272929473392846734880131637896516939771055870003434802159296010233022000411765061773303027184517271045493732342655139919510162889468152922198580777982774774472318448668706550177508839239023726063338659742335830426771210572825901343297248156576574473665800283930329487076661927518651977733884682023692560986347966807582606716121647703291978074623075531831080282155683749189781447914021036273960765725151409863475995276709418296819212269835558170598712850470194845846505222648768713335704842153540383462418333311563584364030871972562411308711637984516699542703244351806959258148641808060260988241162481537987121275855062674546370555299560521184298060923640764873116198361270088898026276243166491778952403168134182687021901252845307675902452148604236025637389929858599951017462781186508468121186907476843139612634600540687935270168401532470437857450918245483499382648924472581436305968182027864340617827256810044265336575957984909228351681667382528711039672994906968812846897046619412520278498304852399311190595436454287899092337421882462744594224765045586596371524411615112040371604793156283728879213829731843823436225025811652845593708619454814964994288086716620545502528275624475644796237637195207648006902909859380577563393019169587717577428637005004956065726039446788494709569681248751679827980694005554336540730962263369769166023872536676807092667500041857130815816132422329423016386193967245546428138433699715523207346561002880754216229089092684784643547896871521988050956099860659496871281717284011451517597835759720102772980312999517437136127276660500853338185913239255860201114502171106661840059456826852380503917705299439705959889290263418465829471749181147617257915082888550100146320432739426477219616865850053765544775399396519997881963213669645928284271962621302758940988000483980626625672429452307349357598803165743208651994762246187847557663375682067842973596872883187975668403366632590769401146816429123399228744435674372574933746512968142560454646053439759114434913761443178364735592514073655106929942005853954074263990094414849528130696789466534566453902178976006341767846565819456354713139325829258326087701410898732395339817506137571606179881322547317509027844839841567924913009889728354338270751835972187648419708877287748105719365512433502866100446918974415326645689313760188892746268214684927154124805535797429364528539028294528075613219653903118722096224633677885087059234159661283487155830468953140865714709618811506421680580064113098246697510627762606968423009025866433948568737610728098166286662575417635108384906560194932556294795748955810404527070010148383945558589376968889299035714396280350198283184723837355894510445850350201914137809253024944883391553563142699948348582231851789072675528369179110969304370929885017723193675144111349089875858156641872699564764265407080040865257580496303673730052187861013573414809797774932235417911469213862380562103321230019756206405721194708945212286053044502721914583918393053909426594369716808326633728922160762857583150500886793865915355501482497626092134097801798033961687063261593374401154488216479243080774746330757083353433814645866661951117076325580946356136688213847515290178043116337907955842377086284015252862141553296110562579926641237169484213534880866474845237026992539115293029096472914236391922723840945606208828600446855890909541416707252078044803069912092230457457401213543533076082331329073098965808544189717454806133777899130069544800638093235607014235151431846257376053009112224526251925542967115219489665461025237287741305614812961217089118206461300722831110759004950311864537841774910566816158149581372978241979484304958677965153134898310992562645127026459005349696604111403982554406604805649131525718681886551947550814496308576138138412404877130019943637983611153837518446914494471411889335030457634935049273334260447370731932493318216005254846490050980193678433706981419002090589331582975676479950763283998799866415704772258411847354237982922192935549895942931268338109928676161927852528995557836073688120312929301779804635965680011433097478004813950842654179718474241472002072561949788104779562763871488944584661089848525396094136785769802892900761766225171000358784683846427576307150190496331185892643031618550637091008171998863757987904962381169392204476089174115352654484663563852297041507162305144521874516561658523912332681480474327616196935417088193400958122599865804075471322332684524557983945410022528700552541222221135752410391953600292591498910697910674493556937458244983791490237002427057975592265530149983499128465540186808810161362758243558520087120697094781293882577516508929313999422746894170381017988278474370197852053235082827218289932701686881851886366130710056218016042019719719477617315062216649109980956002885444509398480402631756546314759897899749039524076790949871953167994619243922459126009331336503458305473487073023973000499505116624680859411047407684541875928517326883253710215653571966880628054127156008798506196568686726521408731744387552242294027273709758699384240176297214855545704160792008902888365822059538258039114131257071933092286960016428074639134749316224907222164394213998477578412456007501608874727821676062727564785289825171629737801352331901314770382085925421238749173741283025043946183253595491079057968081618269213721418684965800445113796924859481855788486513061104491202374950630681398331033756534927430211191155077029251834750503313012716483008055258368961370193676661073137132583083513453453372722485321091582734452226574538987980909942696722508218931857075700747790463438820343759309751246320019349894227851724366498753786528417678060927580944502972778683010946223557513177909853606056187585874748385148784982094405527011783211722043481471849273932633653744891393956965510933744399024777109227530874888603863615065588646639255410333770277900362693547138753021182288237681757666424619078630836412140869887148075536745019700411199066817430909089020369952346896705458259489101533028986138262402995420464456742607384789015553712553397617937848653534592401870762458737126678752506846571187544629969565887315806217847352062902085688633891031847910480075527637108898929156769078126564222836948036783876755074756346644592060925788247833782323893471072920961978204363855800115345013981213542651282545290178985803682300032585574776690399738156215098460423437372386962299867672774749126962501781566830633476384042951426137466565067713558401884806757026958845891079903791141636003482046973672381618418480082058240834951088032340790110341057522478132719322681237129723421641401266097678591882344232898990387749400830995238385010994922608248941988339839391735844137150113757712786876155454515183655658606249450841334072745324331995771467075428851191037697645112337452363565783901733160842289278252424989304748619936965568507083420860782539483962760308241180890717793414757472466949336570479341547629796354730616899123006049878881654929071069132591905361102633874662501105431349017152149645470159660827249869165509037922391407022780363585045451419261898962113907938381668351076109602995294763065202286707020664140051442831553347973032110220980572861377385692060510717518528817125155785406144829809232133579692401415118685965626258835348577238573636803998239372797922436349408486594899017602514313533986956197745263554311470577653232851903566320577036287985336248637648703619574042836964328342017653525607313552024611391675030815886373124155835047971827587705920932193624540542941520532460928162530559568868324118643077232001242379237102560613053334316802535436917746848787491184502299350159839485452088520015653685582108125160231304084341259919570003226715532577751822751340239667556027419986835165184610571356564022255596032573642450669544194762671056309841380922156670800605744411921876435985450962251657110298187820009452767329750126426980145552768161247404254418234144538316852949718326526973937594176820778005857748748665150757184257677323613484897534798410747331447905513948475927704355030498311663731606569501573644298414475821461856898306777604212316081261819509813485752339834673082594555250864491811200683476157928369225619509167111261132942482039628287071124735353326703883732749892035970429713354230312215020605343941190748494596512682789851447261868024722348648061602349666579367922984092867304080873842889467568576074863616038818645742940194101083428717122581647685320160553279258491615971807878108043237915610184144140291640660373956503967938857180545944983234792405167723618314473925354019076107148467300834278841254007557611771308330651075433575694604583768642702737243794460525576480452317701063368236952852855568295157857228636692108935459186967181697377905386091213658237589467829803407681623311195359180726648766541618620313271587587131766257259253461310125790273175375615196808965038693384243671141866941127494753917797666929704666398162742289963375256570461084390480023943421180582863527099489218652943022898614982429729277383149686422788579410230286436032342211803428315413693694726078651923843740791492399405131483637204010668320840490449157632908298986082840914800372352678713500680514499975781161936649946580984619572761952783814537769390306378023712573224159623509812516549682357129601469395341202077362323605022328133030730388387969799691242532062369674206657242047365433107960794216781432139633621655907475921250147206245673407523182897270738139091627159094942030233197575352572390532670381499597873306012157963392491363084764971575356921585565835660130232976034326856184165537581583934310708477136501846612544219442725726495054859887322540258276781049872328264388526661160165727632201173036908156849413211246611587972395080090118857261626031977683505628133212095168143713988675470494894644279349091618839163662870847466830316442873012757610269348102457370446540988993003274017446421238621423223942804880482449539122659532918589855647269495272602130615933116400400231110005233865085226289504715243234174965341179458344308848585581563100767482262941670093347902481197987657719067839328740571971233564257846094240001014682174322769948453800921197511487150436065779776873770263100164255508628246636867643691351819860009369832978295442839965793492068088913292700798468614467385449165117275002320301053210443687594794611711925595359827997618660278356471472169211230278118218285303434699813813103028768009029156399773886268483986714935291093626443866956547566203750998491423964590863964804911618790878352340559411927672308859134783325452001390015691082393353662395675037700998793363016054698326349223250085003134060509643611942176699176667748995715026139377974943156331595487621454039316720486171887879503442079211346225415602821612278642389545891983906719974408312753208250933378618668904420213669230997729849276560409090231504873411830237354848814136748952744323645361788097948126052982341611820723096191984708566798526499830039772614413175481089409789826771917148974785089085777984552584706250930534245509559324515289734302010410554950791864850685232744431639795075767133041187697507639709848763448591432455115396247806748892353509383357249075109947387429077725280583335787379216496653922966706723243010918544884235329176530330783079935064059298316456169781042843916792201102856316283264720341435572311344235357208075005383160074925533725913501157817091044250767899904096936264622205974457453376378426563172400998386464871801709619048577408510090828274246373392708744809890759660723968955674130242649301667700599531956109558881801512671301527720635176141558374722691365569171009146454955692301682450201860894505940406092081803101705183248650183107028689451008186154067541938186008929515473837351143431851001836185624545093569746376505117618685822126117231566654533790744194450839188877885165291290826926170217398330759637212161446715625119542824562034418061893968823577867728646756239090579682126681290052512839100841268515803635837521175275426636399418885083126782076801662711106135551245572498514872616957517698275181049624342132289938840620967132329838764017618415170145617067332306866172232386819156856996213260360845108364649339119330061467114238017858521469985241404075849815034351044151932301295847189933350940163128642237275244177807665011932457225889491920920069162974782911351825981966563564522831389987248175434952910684737442725932220586658591229543457864388452658613516386142133255850630862661624690431031937070321608218352756793643207858304619070472166286615641336409639098553376297084580231067064739323808007821345947933160826895433286676334159539545769494598690092376727413259307404135172506265289372067495086428078192895986005144698505600674667142204773790368528106309164737144123862408148664203986395955961120631259672269924832877945968778735699485233022931179863126415951748395475495216921345415978893471337665951064223777678960581378352209702008346476207418965081347164719883980257548654175693302347830422440251091262188695486318075740228742538413667131364889275028117714981043730659338713189661787156873058582976419784834147926645568539770573867119082393336723128516511067883878253757344994709124604322991628472773499751275523882407298762506598826983125965726902577135648351800679656605047780844199915897350694963059861674018105739389236563869770768096800215230175391986215480008381207628005762118132929204549395540266933991882690945613959573099324614471656361717054261984827374520209079133263038867009175259199077021292158663083604390623470207136059208050017850652557537094237102555978018051081558653890674722694250392560687476651925255724759948373683201686148337643759604616377877369154775791844687198863134818158078804196115100674771310038757238801900564532528260127042185766799103499524600557039952997264046013358901855033905794479563111734473216496112108309949409421795494765966851628319769985987991791891807254135710146162043437689182259712340803979714767252758673731392025678436631835907542310206136992124982004518253662874937750635999914897772117028824078762979546311406637715791878002289877987276166283257407907867181968532279380606164563833613205537574075041211285498648317120462276122826058988558949601116093381363278541908410297325853605574150524766216593582110269235748535805974353283468685378802787487002463666213109247026311642283500363817899480416265413613586023670845170889827986795634015325461119562217962712881747188614386994187644274231502289330935872119192095106250174809659084173762321613154168709284105924756200900610078043986427704379898721271076847096806422852704361940797530012418412955159404612309573625292185730671408967542564132629013948204730351432498042028677539830543036249798109208737511130524968368389404499178533540071662476536021086433911692347663800478719321772505488103337424686953524531211938065513768331037332099850089060725982991679744488883859869064936369420250679877001496868220719741698160473603912263486712718755884625105139200820823150214042039003396986516374513025053123552529945305645024498156529286746842419415472632227329633442030459790758356367459995918193631095298711252485709833268170184129308431374955987478900979025639267658610152000915760127647519985127845022625350866202130153071315939343271391485190658797299531193481156608808672074384672176056841493329040302541556058193537017439795705537466367227870986730677448204195041840658289946013357912478966310875258815456921121259455996170697461068669222269621809578853501898002405236074921445040001241135362515249502654519475575755734963615671365365354996013437335018423701189434605847196239615637677716709447880138779644823601995987310632585096146822226313617239346998169925558723571533558527776151441620560132975653445221530726792963790264929196303575416361600759880111682294876858312488516702433580775839548812038132652224079751728550900118438072973053110489258940533374008924648212031004426994092219893825284575864055270390264990366988512569735144265390621909779032252646278654990028834967040494661964139903617374458141793795721247126078830651012895358442744728264144907341178129442580095331980380695243859743447901607392652040323014820784068848576705394463562127716902252262869699005892391659167190172097695307941914850973030030411694887952164130916720170345932039605724813910085234131207163644132179777609747258628972686163517997798430982562514312694400680009375518960472107355155293434161566673678330483229910975805400866692411949583829404804997128555180909644715258830166859834936809842287797647424807272844126831382656096780103913810309756928852423704357738405809466925795140162498697895220637255888706502260815352193262325362050169023681378457580606429929179788670026502207637533801338009935366004989492431336761600114635346415570192179858938397591156780199504962648759552814686499988703756771817391116897222832624322544847615608541420820383500775995696556513162914271457192749389375225444714172001777473738133285969850980687229918609089335174786284978554439403995088051184271562573035215823620604425602999127300115772550344277480146517092112283599228613311327002457814358716902994513733007629006040280039874174772554940731238383462626781829079562835716353209601054012014986698304992914321940398064770050335943545102254123029021207708240528690710624109278249814986014808450620575563232406214787086281678543794287623654330024016343726328021619113925426371822573672894026704092685146182003282657592746840427235785434608742785822309106083446030862375506163100675089163972617597436385604481330378604313627179581462669387939083803469326959710554114034596124649719285691773784374583871865356369433298267977154350622793603414309656913461326040337323657149761716276195714981405988747875125744056293640339004977342426616345573466738027641218032022513054360096806288382866494013136767855469733827844953613211438234023828109883961323396290198150920468575401701155626581811537067633711897615940913478165234660256022768290856190075243230249503461442761291984995559752128657068195145773220840296668311040459891003422403866359563395429939701935758865511009009378395986317284731046476712274129540194991302372463855258192915888932737306055968530147522908603962380444688548779746372779805025326489758705457738116709843402957326393044743355198085409566131111821848868208188589176882321991520874070574265538578947203863551365174920656052046898514899345616569906139049074700050593606154254109794338495799649858866912770417227470721904123785874633168387631253537928630781766714009474553746808481402992376066258971082374613830905994476660573241669961875445141846008761575850306299616840865526224140517290741382400309055854361644162660418317441106345450633755071231248634481161659682591251504636792138213881391279437793566111450109048364874141083832600039345858012415962362658821488902298438431582888045035639797631197895786612512663693349540465172152182879383733371348239506507157641277989784347631590003160194752716692060326239851229195435150015674010513557110198745897991279896555992122527507274022714730088967190835588916554056465590847166754375560341814365718693090310667217062884629523186199678077195285930211343058098538481219362485101699853949429842504540761387347667809533206026839917435690741915607260562050019725377475380356310090960169837046413408621626497385678270851485669235180065468165827855792957031822435538233261250525571477765553078242218715599375749623293484469487969688995391427904758638572549491365613573668273344306036555938555317496412080591950521939007971490753930713850109349395266076308313593730374480679246979168430071003303826243902910019657789038936299334428633203914318131792269600305037242639896753459277230513078797546463057599923339851361159167750798685012442606443368493166029795888762445699620847181156291834848327652627842256825543761068173439043025098874931787307610755719316246502375492087091544444399674149486699059626347655735251366109041889268291951364760873490661156484658320898605151571836825601477245976721190755100781154484253962852416573268348371111438195056680544059434789997357343333787095835393485709891756929670442502531469463200077329312695255489133749437753710651890210807101721912892028652987140804673107784398176639355225410448905436318321702394239542254105509511953648255933515300143176110971148798182269806141592221839138531865718631346833998522470878730935292396573354050142134367477686132536894986150509269538545524631710686103051041794785840834490947291657977012580044715031176382923742344518565097943408353330771438629815611367157698291392599456172022643390535910762821147259301443252387794132816407731208063044168486682613805414638801016013585466790192882727084533322104314977096578023058777615036611332763341822333513075065631199342770601223471084066183008818321059050289500228087620149528124358700425800812286421909994006685096141297567366076861692205512178578904302550063638395513501221216695748954867068944268660674084572020195855331354138060574713608849686421453537195215882854107764444702876978487816960530035502489608815603904509962472353427004499382276529655151103263302081128121609754340485279046184443329896201893234123146431028882646797547933900805212305092059473630525196870361515590886262994895256334073398800648266062942956621474064117243801635533929869722233329735465881552960230166163406926454634805014292242235589192499548123082978109338731456266985732900852059406850749718135708048994948980377519307810501583743957375674827182370823162196084318407424037210236557585835087807267671339074215489414500494194660105910037717753638938722726715874498631329315302509372112419811295544144593813991935046187273006910356625027364168975641021508953058224670429422322066111591409706216098843507307716698023154842517703825950605798624109168804248041731692671450890001700875713973376679139226454809653416796976998185091344783932300932394769408569164443277777987439321056515376151465269011978195796322251767558923006174862100564786969469394456080105621457700669043649016890297422493674301460998167875763189840056175667388398017327620315484842542274615992964000458864413134074007778792140060013631833843520696837068157911131292805649376984535547524547217790106781564898670516594344566681577787650792712207253432339200869895755502550394734832664309827854122031937064712449030876565843976181926567919648778212949440950861828056911243370025390638235164119785744100488344688683336932217546878759081696792826979872762947912008272424667835335352228698481239144130588839821681964744577198859618555004735162193753480396868839751920803901642804267910439499046353916944654471651118901410652737465834885681130605242797880190389300912786541395681350851642700520847953479475084214819744428079103222995534299456738623287017510059570932720523982538986244931524381009699421833885574921411621998896736720760817390023146721943573336620533649658165975790814646717145988640949002038913973818147308245827514682575204037086011875889755536281639543792845574566934150445823393115885945487822077037527221046555380717503754540309940346181597534809892919854058728847366340584602343099674480791356065532551850352077340790802552246646862366917953946004535405265444958052653938286202114734122320699750607775155532827466148302573127123204424358499102376695250598231451109140777527253372572679389760537374319599779421617461680330774985757393768164212683088513524712106597040623277973501653766145622643825531123565031675424866919568739629171167610954942437263078473848274213350961274356253834393820780427442505244189594876169413207162226203125362214392593899794898198662227297873356722927232975938818113736041609273471457168178718271419698908685617712228604916769800490429210950488611844607484453502914013476321978993828934133980470580987180877670465255849237003882839169605506465723970252604755036524409649482400662542987230021562684696842157299412622445124659328999072497902492756111400871882385835846451921889905739354020025477901842549576023778681775220183133954153063196927567566678437215416582284189705009972908150007265557580500422671628246367345003145254697996570298818455703901105353522992225829503435525833986859666615842832527641312402553903863652299160640691867514404635986236279663624912862642447358581490657696556596861576648746031072512251470000490411036025594533854089863037517366584705038285209345650564464403530978117789424680482209330826303177205952010079857562229651787225016565940556088787129910092807495291278214209764720663407599311511293896057053260898478998387170249758118328311866436905090477714744865975076170657247234352130089369208890967804752020197140713940273942322532796627763046664149839066003107569392886700573472855201695798834497365684735766236123568562638564142349300686990371287612340424747424558943209159841185190495554550551513578000370640913897553345655798977877069159711246703446439459222284441393230542022485948492144380768681973536726085184613103449070936262742946612241712632002402895738068929272863699318646785360940664709053992787276761409306250454474801014223031319688954478864276643405893878075921368144684524483792511368397839421610040241598653687723022843002821166719085181206901314135040336168606702108511088730333561614340802267982783113434115344294344590214194198175235935813434640796417339027238129788036578323230482674715901529233049778427604891214961758748563208533131070090373784005074648510674855665535528631225046164739447199848118024219522367022280484211202119241801929832604521929427027533572613189849291132392638914286448614568658123563856304979288093103485089059423194443224745951011765861543369822904665781241012875195574685015329234609413469554524990589312489578443400261829809086455885738453579006911767931453228069772884504197834102425974084440056116049130336747560573264125811970058470946381475880553214236292783424407318298497860140806068205576776245890633626324785209661529317755916920858164531684153221913942474207383479283685257747114351220102006723204823164230035989338707942130289520868188851745146969935229097027128792221393391598724902395786092801947035932010844073346461335112580201248421249522465176631840287298301111510014095633737532786707771196104198010088442727360609165925781317518172024924177351168875874790118508165308842252523587773275034119754503658681552007969586481981195836573714209454881548843649344171004074105441868299069450335885976176364729033134363730923692447089944682553875533617832950668906811204086632229915353768367586308293294331215743311496204833205804210563118622270806351231363237424502832903680847976025957378260885685911390562937676252424960442629948545043122993416434042026546410448336301082942897171548892623288411446485514729205849464761334647797897203628938811226117798551654194471152764647766203242480456913097798262896411031551706155999486051465741024898702671263954969738030222141164148892097611109509908037825523603274488245126147114971153042344057249493128188049682233854795248034868743738390014549705499122887835287360601647324584601665292974230846242713254242415034270349018725270771626878994070648000668712880767124803729002043063606632141385761185190381085758094118649674902479565071310919150490853045659889021696866911430550205634676843505822514407652032530251855210172143750854116365351368355578511069754090287381242273623565136409909202358688908894466234544991034479957147079993278376625769976189752197872479463146052828145625190361385774318887029030682170499726096707402815242973362530409856020990297206768573830365067415324898835408342715123138286827537658450330635260938362666395727730834179884019778829627932607709768624187930486836602928854503358668156663742591805443140026731898566835216854849895841317430831771476276481294759795266030787988937047879488455783579628516298446672337824482894213420666656678587395892818525927533002052589205812907916736763995125324589382655323448371069946540954711329069128448365753613710229895197040398458112887734960056555884039332425060045830798155698831252566194037359817480237432712949291944538384145731177901466011946885160955763607764270473783354199685334727327416594946202914603274398945707789961292790698943185239581230491235812849167068294656290126928083377820876478404700074458057964025763592320389521920322411278858076398868600230044644202355186483753903844009323316029333956452920190457086908959337984582586390285053257794774136156752197776438902671573501616153371934419639576192336942587772631938220422479024168795837946204782170351519896351586407323001948983612581011889568167966300806481798135428675527004124888216258382754933845480350650145177439708541365358574057100529467031149102583353846176515265867862045055184241450562389840487783060889808019655641920600256959310210789727284629258512308962983811150431330242547882474968643867568635429311189478732872649944417893931594088966628904205953530324129193007897090863083567454212257478346119533334522011175981293059632208378501659531813881569801730359987276232062089389567838174604710059448707041734796515353518749762971124920727087318745725089062226447731085404408097313235450752005656829512538917321910993666841113189523596636399305768001998164848396630254124089774354137365540435707547540564279555589570846402313884785180500650698398800554406976069013923925899918943005924422997786514149278972544710504147157825551059599182669517507828085744167032460655941766644493980478934990948929060088314597663398241367894079835830347282405504327424429648886348952230590695606395747708197826904850805991488430929072709761574884148991450725234675556976903545276412058774072889035629430377160004960486404838515457272073366230597784584921796661628304216463273467137432378769522244688378543886859002223643812577499893820335614720011203174099747478085546025009143933428283150485941291505288532541907293682514006631980936124216087607389743676264224915048237587503708681238426339005837429558968039566715173903934187991005060040104551170432531985161185709531292384909743160424477881680069800674700607051503445345721608729328528526313157586739318998173502635874026608222700076354797509338737856531202662529571629260834283337311772596133903711124478623306365174854692891000769672771451948468703550509777648209233509205224912379947272866451886822000155048765511992264664831707437717810804350328280900796653316870791413429090644494390686433137919563418286221028227325071542912785344124848774525566449005253913652701772791397639757119228261586965391545014592783496160470826251640894667181674785732226266398594156812004330959394427133858336382905247368538251163835850677800193792512873318605559901702192163016489229004094131016265662720648743655061404812583975705531632558899896864630465729866942094658279895906981348004429280678758070998499649449967294156413987122794601735795280858843326354593345031848929999436600676396220362449555876438150469484577594978661632363232302508981565307861930650917884833849061095078235501121363281975281855516442727352702842803849230945502559626338944515156521800004048530542776564690746003694478931901339337542055205758764649039426088429402875886790657957186428153383514257991421591149754723331229293939678931738761089040436394399625417691844889281373351930166359509709538081488372676166713102362521908142279967727821684933446412138487818831376002627330898416074489417946405487536178958559927544518484895751940350409911966031056064961371995439004818740532438933087295027192422428211936415877416057474344509769976922288832932122056686860909066645351950846222846794788052271899711251379968378142333787096428126020752094210315882431279990137937750760735622742999691520981746196421748241185872453419247780667527435703315589047052582166073717319464787972357579256314708071587623298168715425585977748081716457311066378692335333275249239629964078896652829297735578949661634115003283640502378358014845435867966070913818479615541451914704613714326338742822699562295196998805016706623009459856382832767420230701479664387760968073438022696646666341560549117451886702604645067861810541240892607129270760204008257752424079674490545654580183924978802576245041947634770469886524705323638109626809115641198527287766940897532894881768141665309209847902430256158531143819999337457175345886802576110229380146303954612501925988942380118211053248821387049714185503866631730233588082307141940094038489841195163861949693300593483229542726210250683856069264390391328355959860463345798623595838190593348715898166871044751647906873978680214322591666252026294515620889026649560795260018055705964054904407866645008947378133195165278440219563251811043483750159806933850205998395674744470960456095368823508982348961975073870644231474066774432801739215442379597907687598677073679561322337485732360329012547328952727680920255966181693689949328266027298307794714351090232960355121060094059366654633867697903445274374469109641421599566088860174713269475866403171763337908350516003808872429749115079286694479727269552865177290507652825147774645131538953934782787889956600301716138518262568093697352469256121023751963539330950998608297069071166337393078390996152285180469896374878330380233656024269434206413943445260423746790586274850970202339055095469120961121802355763685135155487174550698348687100982720240214645052374415955650933219581308602478584272030820610133768687470933970393518032260699995249123625014667823955175238583265878770247476283576764446223104070546130266417609033980202917570219910741619853808898575611213071354400988416090991691377101623474961056601009389086158419761770610636801700901197043623878475377187876553648888741703763247522172957285615699466294808516110623236102864111198518971017414605844869275630441280525330426886214928121624841372168403345064584779190586414667925524090245344309468664178311182763284350443178660882328755420114377222610784235685790111541272509942161741964227793655895993473380652629624489358201097603715499702519532992175170999393035139928462325931420824256694568192891197538712147704993019921787299431701520719278470861420994527507244094547824226013666752248713975425099251686969192436589099904911544310634115181068699723525145918598000037500621309496178439809774094816196263526658459216025680239272699833527863070468987867863144326601913940523465840751884234700480451882399177290715968812613384662513574630320580847979749363396593082975852522703894992098886158195173130916607757205684808458386273990929740195759036221504718713009316980534083076878437473086328014510516802842782209177058647936305182900565286469281378735634088920045339394705515369866753625308809034042642534059365503492075040316714598660284793071795752638755409102732142615870133074823911226795225854514601585608647523638778798516270865902889427890394930998138403358725583323636430387799763582581193323143046573865153840855295065283976021335037715718802895104342704405424856094648779637172074583659888488133043272696308103353225921272283003199848398488757272539903047142784087320510996739995870748175626864378713574781808147437402697094894976633966016607850858889680930285533281509511298212674129592848808781319696537107080817074363037594686768624556051161508258652768412077218956164698437102134845245822618101927504795715362982408817160454408123893783683797932932099975503289858414863136202216074413584320239282404752565033971234285028630150846155785844350619232003328172163086435164204171342250080549930780564982367957320351470862649589454974178286813462256743727736713985219637415814930897775599254265487641570439017970875703835448633781190909149605351616468191773903453245846226581101662773236609010310850443164192727339808257018084235557574234346568477758570791721327249860552586883711026665309967822860508948653895093909693857483246725219603564744746052641103261456612988416941756057408179476387191508620708950706493782184811953750168229250109340001513956675847575784668410127044341487321672621138087584671210424208471346735828582022181273276698266393623600110652506771447743198541095809646359527713005263724407087984130162172301141614845318978975435181194280322903769165781665534700141294857499016181041745208873730906911725215431236914710868740463024864506308227517881960541890379220161521934735368800287226399119618539566812015352170901395620358300522615957842372293146524574448402115080080273012533921659599243650385606385543832416864479175102878211185224801073158295787791861905179432001530721193792690594747024266610431069410046742343812751784869817153993389193744743850700198465991725299715830447094764452811953782049671245762484318302057265575057381023780930978213166109026222927538301321147248529531975274360605894943838878407566623066162545553626743262365526248845465382387342081571358971726047380666686809862731571119312688332108833328438967405658023740463244577113134756257620770890185458286542064136718653953024273284291305204232818780456336789057705290918897256183906124416758165841759929520489192126914221070294853621283661766506544069158508280844764072509757488477076615539980925107274692895710528458517972815859047298469652682392424400612345629514874466433653412897197913388538164551879702568527352038004830247607321593862742893440925692222117891630699883789724137648890444171803547263088816631841696848798329794122377213663886568555555040566330161980669909970037102419823491009448579655674179142957643104894791916774592209306742229555978561978456033971299274011146323856300481099338454788261319703178185563879110724703788517086759836130865823417189125817143610889480163743208937970207923438179363119867877163465187710993586541238887237542790849538017078213722131040047925096774564644334430534235388011287568567959196131587225078810362070185120079347314574810113604231188364231250904664686792062044428836976868968276189804610324227897463877894928041338860396149638673640998228376295458221577548559048404007041606590295676717150638853464400102432817385627447885994813138388226862379358607877360663178445086025428041211000460668902339688684110134328645164408426786202403725569714920370545075446395532479289820244203016275767366352177468015966182420375646021960168120107782003727765573105076429155209927506386536053362953193914445291543284785809178865040021580473489723433607674991273987505278356417135548053864759250673546969855176962556340205097165130471320635463307759247312410825244836156622670564573375063510787625567672314464179737235891490831850014875999178132334063290388034832370759625378584355426360310523987507200608958926311896882060377568167400804819117112567856844280552166855597711949234457970180246321603046073491875506430756374011080437404211618761328299683801977126301597708319572442368134397269471607909125008900114568183863666554063949711163104278773166663383937387677811402749610829009387773522985331236182584762270531694488866564999940531325274713344525165545367467254288400703619315337520996359306202757481978948889081933913722220804416885820522342451323457699327220423559433325418623225481912104067776714286169989370819384927798498068966035767099109982434271613523722235144797545772691643424010050969411388848328211314259838907135863586154420674877996086368985936696547257567477186641565310783098645649518201435227596018192963498502662757990635897755141329503418310135943583889785238699997879009128767033935312613468815393998426134567261812212050947699322365010218127324523325914562526083978181833050403249497222388398222186881289665173169993554708112889945566822466676254564154532876711186853911955363592964219546094262533356884324252481650588276216805992440641527073067829041982404770729578352251577193224511564553851280476504220795183813991834023325932996935520998583833501479646467286740566608012525238422209643681663901472143353867779578326212157292980606447987325406206809332444198369993106904219635281049878260205209536106026790678029268032791573154771192128796850016391657052884056143081669355547797709380019454890786368719646433365346740918861027614629661508277488665083458208476402142944066058408794312402420375361309538450024100597562398151138179090900672346162576691178206303056607855325827740421473170522608596890062891017612916311467704913461684986580841223922843356737893870808264108155408117712378594384702019364283459073806887805510497522382354646827020451299330144748421625409100655339982775060316275839735099281054558410810402295736119774568168700196967361983519819452377678985984272045612906888394057690880418262480293469788573266990143750192209316852734981069154027273976827608169016701746607764479279976248178815664004655334952561789407668680895661139342445352425160014649437928861900548129737984475455785281918751001595824801905151348162840068059138103340548104471656763492736721621017686474820904843584329136526280770537496369211167440880126872705029540638200688485427502089365439181253482176871880524957906701099792635198199064156413295836870113374664649649416639209737876543569894195108090464985547221435325444886932217573386743394950785072908559417314306162196220447457833860344422427375348773490458040002445556437370429908066997449141800403091783736455833405114405388851029562355016911852146430508972654156676652317661646465885326104809604466475428434256338111504639295500346150084436076540924093595887139864887299787273974976925992565124294171910719807235272076549755084913476166019653298048237764126580358068189860657473555499336975952851690461848041305336831540980454434347905135141815138730896325538955085374509901219056323986922783143930122597407201700707101089879825587255262892528531758965893900900347481339122992224461053880151887896192340063404511640386462565419041229724872480211242758907802511041117955868743293055464638929940035746475609127466258707080808947715121115559264874482933989547731987945716536130629574418866189677443993729199632338889879643091290840343788682533347746661835138741049218381341838372397526787507844803232856890093520119423678073232173245124437397463984742601584478835964743512385459309499619874388825284653938316230237548591782595891564408993235695237004920421227272807860823620675319765779572541647979324877743600390345389491900405844600113230479368687349688291802652226293736619958820591671859155362352186659190018286983629293561514178862436565561570941353205171772480669896300183112466992106615992686490862895117597922704498385459251055113443931129062653513178968575803405751248740838740772867019462866136016828504501282616654729686615444436457033682682496429208427473789916048827798724915895413878642718664353657135518499603670349914469265848947063491325087036244331149442627877727956731427746155647853467038208129307477621628529788344140656700001565241139975299029862415118401177788293560551018881063430675212708603767116497812131633658273112907132835766234207057586622669768858825582700514200692861002201536725273716514880698610504916763313253641475933396103887305528589540761375290273309048442935363567600538194138196281562225702818979539556401390450863160247286521055029555653051931636281070814023798925186519945760297446158348107704074972222871193054804223232031170725863198917132375965069842109924916804556109205575792079337776956607931294111938901336386075635495133103127319549555153991109877177261149209303668873214538167522437985649827619418701435232593180358237953451553570684243508763925692972088584612450460980146101694538873027461768545499244554451411935329855930588097521483200322544551243877836664269478239074423481925722498853656932163344144173104697330837628646395729452508103231608155946266736766417828792321076446066079040434957230599122545094727861067483796291486992209518907184026408738078799996623430510390051486784349350542275534901368291326595467211535524857509905158139323074305152297773840799314149896956675610682004860778382142419222358851018363171402067671491377798147586458492166847021060780261620206466834143089740239809476402140207771389987460118550504492652516275041927421597903739780537621550166164907136767874466221486948318842545323966900016733293869305692352782287240431609116149414659712767577273555219359509925494439955224743568741794764506602152546264007376082744776712591380066971215278122014805289435859119751785656282659262886061689623235734440670217476375630901614906129207413846460373764265783863759709032759524921097363402413183455790260964297749955759408213280525800824542627848977126209672097323485187067733763417955940468947516132951161344256933390408514372801357782068521715730524388219326537732065661244457842100868976730414977543368378221136663924929023117086152736609347529203483850666224936722689477480094290315652282865295922485369582389511394926563733318345735734775712747239974155920392358807216099468256934799910630246342618723746055839390674177415827350757398834128468908243773400788492656311984386724648817209867960027890392039668297679088274073923442861465703118166224105602799094466391828037639425907640143589290738064457485438127481660227381757820392898918801253332108594254278270416358914580025592352730188175198888882967904088437192355935129717503203398772150912704577118013624168432522973626336807702775987090564534441162521507298723055522378776870873575524986730988016576418868279602514374897395676063014179639272760708921160088203202781618861214958643175827098510492013287920692493813106668617916703942116164708219136415451939107016887118225895633935810694867484375837369414752959316254736544746592158948669264842462614026844141762361763986690572698812014967106662165195144710589496316604300187361951833418839605437911450128850473259511098370844144012834075528393081217794390535464514729895545349238555773494945207714927589736155959185127815999804236154694885231228152677320962252466483138390019403442836226014490252960767871224362446368314147449315097057653142933968782913675689363399361282623350733666169758217890043262615838158186945535823303998969064993627572395579206729333606941396905780586097891226602181716420468921923334228573269686726074806822077497413837040126689978346113666436639305858633298943540646031939536909058661345365582620873596980028643408570237358589594028365254364729215331846060294700374205798206021662391249412550632936575868951330254460769475121164098528201395753336207861878077812280648339659950087506197034223170624533766783747809887836224371590861077298423700610005093760798684844047409940649491940362276122878110258104583590631434540868335740512681754535646717203012575966534709789077884980214356534317961636094487597519406644784859927624014699415034940666790312471986335860292039048504505496712331200263109068958494581777128301283686370813025694061998672309228635945751855014064743603409079692385138564279920697020237636120630021846346054018785703352057990957607854593449068937440155885473601764913703929976770681367884655808844389641943695559735090724814840383416027444771780384407062645984272092576195889595149225133195210304075755343386577467238308178754687409311952020126426732350852261526931570536606624430785554978549853544088899379090907870112773094838923777570269587186398297429814696870867761372571798387716048509044552685949622591336584135409935228975127672411759939926633503565114675305069791049770161179356863576722133011696769265185235937440147260796027197564158998469639328938959690040227200092402251496594453174847201073326581811363989706024729343239549598043155980449263257529370892749819938359830617970332489078977412641921627822116552931770904460704411098011939491942441288358425296227946387991591836505479291736172233402202642867679758389673026586082591902067369009582011670135006975074188344991831043586227901235817561194560158474836346540663070097255162605035578862034555924392454249253578999751106797671618449396874262725550735297180315472933107599237264509959423333775047137846224985652582089168713600208800261260789348729912182120631273733832964162408418610982415739797910582804891439090660345767848793191278460727422493369198911013095029697406627573833299686299348170578633133617814290260324622140182777635063170068314577297391987088234977644018916997791705342016875564637903411058029400011254177362532406337562252560031277618501180446950523118307058090624048431204322620137747258209358639177888985557876334315490649834782879492078694100638960205994257208999261519362324542054483222151921572296026432763181051749590203383769221633368187367302200840255632725523574942077939118093539419453645877274110984537860149735838000267215049831046331159897793936725967197444872328393332911346117394645079696863383639739142213057728126636745110616944780311342910237480924131299099094415386936854658787309128772996631941478008339946693417625318200221015090836897925322804903705757913124105749837043320685895141411407825344840449066240833068550623492504022027622582536750035877142995780039350766371166527836827462366271840268614960527698843708149050613451653518668974071989542083660898244351705401045162471783203097663957655087502658265509957956692111639022399614165928571251868701324519497315192289288749048383115081464328984978796348187877027515000190298566110152377408857434976480866156585362444220030558230364123386976046439044480548617590362995983730163061140595028068669878821538111021995726752092247080653140373484024185748148024227560786367555652222271490470475016105016072028740545962423064252840514355794527153215483214835183915227735858701632556195075963462282909683517179455948259865516718007348123767402008128946563877622209449491829677627290285268553873474573826044325711379760008692014173450388497108658973604884280944588554598466717201786506929292396075771287410065582526405111681257475685192557047634430908835507158701419107168274238581186680188579690351663291449210868374437865977020428512035810889187147627129370914997594372995180439264529098671407258283426870446741890400422440517009109585999010429510648860842157107558552521800068043665885673606440460333326817275388283333521755880280232776084033773090522439112004225445059594700827552278947709332752922592930283612743161807932284765812673163021637156423800944338602731592777230923188795335768694569583455702725186714936606477788027428435357046863709421482519920993636031295302113763922473996915440726603500664597802859010670199449629560619618521343056448906417508645963664028163903241019104643412449034904121234148490087784064333988707327822924712430891862031099384575634005429239981063842963336050331355872232458859721092042622734771129381262566631544260419790569257748837206911853178468163261533599803944396736926499428952501794124156383598757472720849648048227503046284187689387471612840493551080177720823588702886524181427668568095020242060246799260248887766091176618646374398954590490881129713446450128650073900145910068990193038019124520282703706541061634153892810114784073110113119326036450640554081481902264225010033682827330562510488175313997216735438200118861816888082369861212702888314950046750140767708868971851123904994087626511700944687523291696964861620627093379747477343090431764940392078506552596898273323796738606058426556038272143517690614771252984784310216392020182489327118541292465917032259777539492735579802870670168068732802343463244816942052004674973678523680751766859129881204818835919466709617428021029895887507871645115491939432491747397265114101609496262572771353578026629348676363508053157779604022375440894578753532154512210162362117177026960137113184816963740533107452386191709558600662882535505356438814968684209222238282713597103035044558781726783075824590161055082075407723557992343644896722624547071596650657130840628878857147955064736744607539334327826627613981400733264644664120970989275534645097871799532731265092704236508724298632354246210020672632281312677587505146279850283675456089302327974665354778806129130162090558580247011957491396112218554227902353917024250275765929955455060623491640438580459767985017115268198900622935340215379951043455488246134764671387737579446641231438396178783338846100715289343019546634755724302697624958460196200371720608151855415972792525638361424448054459992707948845785792378975348627869394070799273321085768591575439644189342126191443075675458264242143360888357884451270779515844573638316488682029439303826433780105853432256947803318111516725213560935145316985577639109430817266846728009101275922081412304157268181663129369193471888423142558478133012393795629888575991195676305966195249834649312509587585146110059407221988820733547407781909622994409617630676041110322733635600666800459479437184487922933216148318958170587625512293642313644643469965758485854291628851844039220369581199692756575669586992066975760077569337857853119561538999937066016950344531745230212386697152057646007241581670368333522569482114104092175344292348747772966185019411757567030758359399455867408987851588955742011007398196648932026886957503190173614762194016975207991957672915803920017752525376099425298660678877844376738786720541753912648324205300669765978410555185960848350194760787853449114823472792587346382902813058946372686716614762235680857531626679535157850058256284608890998694756037664720442700263826891186788058058047122204437025909040364560393628235560030127431188965257261949922288617007580561689546238673934928039265928468040137773170277703506256592754001539480600874039827492049937727228830345774859386259638391032034448645988221262507444558715508504434566729409124103833907268613341625774944679785965270875146481258810511369018262087266078721481020966289562081142512608279390315564038083831618937319899485947981102492613020088674400901055089099533588202226418370764693515928002003271296739325417052853137694103572735296025703899542101773915315092096396885119264467846936494218171118381232130881952890126331640815838670627317456128275388966414727848852005165384895989592978012588126755355487338331051454013215475025737670723377085460585167899285011137869792370123232585645913157550301575036582157686375131589620941920477994666293932950152637206228296801582906248824923807880066070306299715432582948500968981173794505324865354811656908727560156177694223063915503032265985251216467523873075332827638248559464411774969498400971089650301908351069960608039491113247403569468140448129593844447766238012551423611926438461487956695309312744618744788285685137976975520064409213629712938100492841102921124623354222573801190695643804504140892475048093348325792269366430289723833956568199582675177824177404367556318160330584378406251769334861427858575857619300514092895648794477758234266156524643416675224342346014369653040495197531515630576943914897105159703650818337070119108375166795581898941981266270532001808191739935643665594595611309771640000841855370165449991196213779750010890208102512537734181194600789044233033315371625135330765798827723038089523045373756082912836102514596437629066738759788923249188853647982799192861955285912898437751315303715702102758529728171831776161836493239528391041933132855733330571582524007592203490661028343236582742690668427969112618635257696966058129420784970610489215643016759721769698589179424442499172817734657244198485998144454651987668274410043450552745817109625464261761891439445866448239618010313396434856880431564652338563309510369631028661668664188046634595893267057506646180517105128862891462675483842906248681263868314584851023978766338878331115828179615289326160501996797072940423961686196331666732772872609069808800612215052285225148805750754228770838296501114414928746169332954320472177209177254473772688538257887182467634259623531316639720975785890704231977416197710746014790540487976037384062588264069781149213751142367343109574562040009773362860601104743224468841939572396054224143514776718428657940552613233308860359085310678065380595988264201078282957836789587797513581356762662651022668013250086153346209242260379996417705308530280836158782930437943658478954542897486972845578629142212271089382117610118507990791321052169833941258042850693522981122177835748023984249352388804410217270217036803348666674799203792612969386163085286587798986007034299433346268558997168014454151771242479061810348870305186898064285017588742830971606171943933044880010860910105533984344328823758826797635411351541541838555213594959985627999332091991260416910662808174191607931463773413761738780021138380800696945482520168170453520428213805108297622042824161290940230089606234502136583737075605235714350152362873438955391509868941116276626463767386703881577729779125462238038109642798082719827439014741028559506014588110703166033371395722158130404652435538042591234039191431281520042406335784948881240103950600865469449043372568428500647774361100627922890539467867192871724035115699328951613445723402675771986503553832535704142153161332469317011622686471152436926308934448961299483041548552027781026876221648186414657307338234407006783006990615440725365420656682806037209849642718656264068720887799992608163929722593138323889569287631503376230259425712042167182145934950578261704853304063896897961562510448133234600161892265258136206388880026454439383901404341918065470260076415813267276573780664659011258981961918287094282731770507308532145515238721020770290901957624454721055656131377771288219179906710012389361085813914464046882356365689742507302703593563414618173595227103939700346183057657674213712316927963542249555106825672013701098377597681270678336925790102018734292940216439225687761388190680170810760198402986670283713045519260544946526867824124566766596899476663068595163127091010142076018183372682987796352002215695005828803924937664226407100492510729493084719115245446160474621695054682314503495271634776910686839604665733945506935791944929937468107654978614697178294107676736966720277365568790498076105160545882163257779376191847248282619937085679123364645799362579738719085476859703280923596496400084197271643090604292451417872306562529540463828813194223472766255614931560596036334367945179059112655404585524818583902643799731709528980738000634342933664790151386507756586589690188461925683104852121572995439735608545628605063464448080019695108466027171088635998044097778079851513999205173299552043236481787120093453514019415581278443917954021991536732791466467218763755476739312037160972017355973612761570164228710900115801309271737603785609099491978484004583477266866848206277724921340194612501743246672162331115205299540402116404743412377335831025945704513373737862605100263254749306450122500624703900073505522422784867796463554900442404588107969979170064692659840499579741954685331843142548909988837415652725260150356057815630868166723348378087287318980434211652544240252276647729203299344939590975112307528917807892347210233782196804225002999778901282516531387510536638513566262105066509188213009956598537449917237232194360067037249474301423199581275734742519314866295902664264741980424914483734089453020179490763503915945236648511946129658777626277957529250945446181794233603899923831645474576627138616250551927174736920073591517008288975590491654931575807186693212925375897500609673203657799881271976603639510008962603108348261650668148373105081410580579593884543061332974877326649681101104189419755864544943644974679977700329826172187344766658639653748141023964127070178711795512230340540774917289693202265165049310214087982211905084599775438456224875189807382558947359808572027798045524721126466176847460670370032792481680636716881977762987286324706205070254052483083759063513732082636953772439590992005174201758830769981758088859371902289447651375630985152270875251291756176642254174968523878000260709966696787418897165947761570899835046806606567676226083351773715197963614615360653423167456117319833100935657330019679094805376661563225646596547072322531439753613734865502189135926193449064100866334538536328820172672674227154357281264456007489956318894223075647883136744000690714947756223867928764668680572313668477799453331240163295978492946799366171877594388111551117083544343138240975662581808415746470944188337498814527522797395144453887191765946473317434389740707347068486135370095966370388496904137870480740502805113252676296975470763808068805379362518811289286139717070554551018012823346300316871046808065674423741361905217963759192344876956759127368524527863381053794257999308005028685177004885289818724196813116387441578625442086387436828324872014294526465407726236574655412732343503030528172231952005037342393991713138341035047313194240917879250584307386687315430307675351896330553975446501681713005290155133391991115054092395404544958126063841305281448643815598737611176837709733747168750119517603816951608919477246860804055599803727626013650195830818415152048285122313460198476494040550532342658395886166495351204136801884826710683783167144078448842009934817437167948702913087594388686157098583029533785935854246684424103757005389677752591034454500734897007878930531538263023927694033617001865551996645710347538315658796166913596002583708485265868238604035067137197680769978171096280489890047572911610251371291722825109952172473234855920866099138484288863027110161510572618112842597573382439519371115215291251034524371483113337482300928618955935837699296181711836605244107678544099417911939382856375187927765109030019608637688687556063814252558158307584731791555803296763290972613645927087618020868259837507807905122555236354473368580862502447827474208963926162583372305597860316365998803676546590453684022276707529513442231929243244825749165293523969581488393715488011597536640712877082933470413365569155028138182891701780715119173735516679877409204081650418192785257661462726494096299381383698244447922588220983336605591499789623112770680147600469406718475567065944845992382812385378053595257253972648315114561382878822770074666526316462966796364684011222809515702312055675897254212336288780807140407363478625703497936508449816169864255616240238261461875775441235428570372864908562498142908733297641112748786319352103951695909667827118290729546134885292723294682274520876744468173968383196165061777597733144723542992385666079514194210513475535876438064694348873289994310648787851842203158804626152701716691307780526037454205467761247846052377362893229691546954602671596319797359471810794374388517611889271405993471766189957870171348756769842703462987622873733682431306167032001018354791646003599024069694759592620553399672528160216170112787532503044815601043734711243624039845882991949294023789028550783741001485765415753135657422344613054019458078290703421844496370923005897086919591277541119938331870729585411037593907664465852337867212816858723734112704769038763101082538979447377904408094804984543038925551149951231750309191999986322159272847997131055321212369687697224927539823459440437163560348494352878442952539850265782863472850334484645899893566300159148457910319462729983766638182144623798953018392401293137599392898109501137889781585598302197624450285639965796020102829497189823886831575471883631481648899130465299238811839487474878313409689828156270997698227826797348614311950111462431642755815739436175977910915649312085441313076207932523222833654909909356828417438706319999707238101648782643308142289686112186551426161122665105992765258797564766730299839285105234759567743355060370880441093608447365161621678274326696906981006982391467865971073200169004641958231343719775952420348276634949839344803508996632634102094028006559128225251480326720932795499120324657980430711693590890062395960254238344444715316303604650997961319544363021716167603119041767893269267395809359317906323346651120867086356762802214553235117730171082973156797250228110000208314040029149528335183542084021464514756386538553327843639389093140751654177269872942524116993650614727740967933933008541264184884626045913300249155288476212279720589746651743841274775329822517174036152179310729157284157065497665070538021610138473932167549249753331460282146092240575935194502129301063442064973238266684135021981861075484732934609077898038697930201160743785879504310875774146284050809484100697001388357076818660603725532843924208445901873184573923799857689275954754016370182338292915086197369415789676000899189898853571747461100655448590080791139182577560666690890175667572729269855560437940461249527740784940722552123021056034754822457173796968064196437868269207011376053821893374835311926874723819841118775018343663957273549129430838684947558350387417937988437825334432382767891299893063517316070501718159793813447722494481787255666361927791472823222761727709402287112452495129652873877162105681009743046755129667389613408292968304613151825856651147244644075996198128679457304269345022336737903884643702725333929357836652733212692707256341943366792449707784116644113377424432972651241354217843235244906060232555073530760374080004791638014269257969996431738123553866448416291570989913909422179428509614264032208383017241356972683265595630402821384645420709801407960308690666093589287841150927539656275156530896806354669647496868595891242249184512542382220579115502561160316615206531115942658231638905553882386285773131021552793380878929203373578968163452565685214227719248413364819810236406675404260822722145240478182145840065696134470680806172775823591805452792319215086649628844179869417655172290407354715851717579027097248203863815811210094088623578155055298846489143600357303203605916384294451576897905590291159402476528483273837725931417230234331582357495269856955074710874009688978551876985272228469762484627917195168298901854690823667768677198447115534714956932620788235245890219840114343820826029120860898122686350524770073195747705107357636109323994345263977095118174130232799492876876238420660065947512463498128100253576044055940971881365931710325424541046234456099192341930757212893766564059686484641003110287107986903276412839514857390643964279442474532268903272147711144812849526683122604195263411447020007086851299948600585138349271147385316076773569211983227084166211975459387688262196881418310620187027212999436702378247935502197512004541770154696548267923669374120589840119722743341018303637147121486126110108136683405876737528599972617775315785603382856884546982499946593269591795111006893801761076976190142624467618058791330557348169923517146244148280817564470889731429063782293687688000142647041953994833895938030332642605858146055265783984541024698504534729902452134675358868221427903312428532103100092512990696688824268450292108423078380616730313947013415675842635132872239435219282595593795494514634140999820104453690034227517034243773142034500883441993753554645450025118706644418539950362000423614583700651074045834491971780892333149026437536348408760926879847223964978912410574930857844848897232685373269862093194042453694197297225429244251171453570372363812205964977483483856756084032133123413880974617506743859586222263491977663373301640492608696110642721479775539210946423190161928303916168456023512153039243863113573548654585632686985366258817344002094207104439160592402834588177156917711132793103667620854975490256353881460186580267609266686140650509600283400907410543333578451433825753701076446625037821005111126321496476560712769386569679147593042952850035971684394058561427276954636471303054185176672388685532350987244491062120424496279690780508532777103032379858463137827484146661811699883431488258956756358504050202473486168128643347118357896484770603340060732259837379262667284265053420543233899206945008341565186588727643652926251565898456077098807438835502112645131511961994945898098178731090471941055738058542969346416980387708929577359423041024264888674202981483241726967542608738896734338371441147525865693400256427485235226847491197061273611033063524305350392205517093620075600743723487324370585763051436733354811112612888754967192352317843301810929203011542952783714320959762256331853464332317132752269870701322622288948576181280015088002131291897613117583802454910543241460390371031332964404059317707574609915326387921714925691757048821571670650149298411145097816298348958499813744716549749319762558426492973916454773571739446962732721528141031916240312203464408317412884926563421735914003650605194310894257789212636629179029350541013633359475998874933492286234952476437472425701330558040446958964062768101880190892247611990008778332704948458838518451068459579941552027763431664709189289957567208925986881585844710536286547549683224579347511680631580914287506144134098554671522328197638904201312584858728960113887176839564822888180213218264741834207500319223709664117334018579040586025736441224710707883911811005617823571738911876100681669221218131306971987342559287303462200865833549203701275762960136246810098454072579848762091393819253398479739096388412204392046795636485018860351581591987631995935209724311465015461180164724865004974915880802379450503239543034468788540101636819995435076888919087778730467448058899259935522966900954920011115083691943075157923602916617845417231108623773405175911275031301217227445893585470492884752011651541707362626607721650059768171064531698742799135741407701938399757479483005195708539008172437053051852992324157005690405710750023027616582646478582859411654037801533469762397049234001460040251839288923156080932119696691544141363474335239651118178270241284801004551638385773415899821462118472826273027012656783088342436415558503960880718914912525167410715563348718937909521744719523587347059376610680761598709125064431870030270770949821258766532636765102550450977830845425425787776281615358967652666491376573050962764852164603169871811910881461670849568380345691357922097814269687540912271539554638263630068070155482648949594854875888128478468342001823920231097277793425421462605833583555793422493201123218789396097464795228778155358934651625447930030626696850974116992975940848223839830555836651605954296206634700704772399477855935346101065809464980669997593879211119091334277761487847371818820622739284481452184038789290762432047200600725939960203510147893504005491326431087582195023575314851605329852962388024226152661544814170060661704065068414534403293840564951371458910298172076545910020099363205384504357352117737323319732646369568626958248222129930430683057014617051530162271843277865300788207893840624482254376141778355362705366855386222356093895332245772933878056170967114076724724554703349345935923857472174923490623905438186768452901084932609190120333905855641978052417151873276986514433007787865832758006062298807330678940220468864173163948025664835785179898550076991987304404265725149330234842554219803864832180405140271326529207216053049373135590263743169875741811884479464247829167348951591798624234540026027330130410457772260665765773478415099261707131096399611526604516903675031985954525155869894039304433540392637493656003981466623404191154799064953185041407732563350451177001334576747328534089576977094574055203047219178239585675368129889427324720928463953662799495105145386888234827299629389946893960494757293280636619818362176319878532477139862199970305263304460984816878370647031602804543843101396116190773190960034836491824443790505921777763987609804608105731556928237834906973067689781512647943080936891766583502054697951606499103302073831158496156682919697320818762980681371882116364951573583066872371361365309066483433585306848886116734932842508672409598088212078785255150523947054881489148323179890531845740017393817148408887549978046096314801372383890776376709289862689394295622223369172504293179483788076474553493249221705258525476594339170872710856395666890494208081145853669152917723917189597530559813250212862605287833521317315766325399911734687450670534631425285564439610672251747027571086745464617552156061628057027650702780263955213873338947298876100593950735436509811711491081476537753999535067944174292629827867028291957183789764872145669879462511313454107312044571565467846110712246645358578545908060052434785475619043998869987415189159999959688598228540358617417822693293914063883164675834332312513304147722162531944503885107217081575635592318246744367774043695854696742410255317091780196574417964744409527351784378070968746014117329034641209185187061847805238890101419528599743564830700155715721533808693786990858445235241440839245915643432948424779453016179094445210930015282871368611026664823833507343513157674546310539332558096725384520571861424189523652911434949647311277360441020802509741866865167909907433798865930965729279780674956503384435802415796066647986102640047997783344286870662167385037556662166246580628903174513474281690437791534513328092868571302163122985981514532918791602736492223921300760394031462575887115556249471032118636834732489875685103096650708224744266117536970107295974287099363674692554500903893874399548020886121323335138993938113396064804669682722089699715162128052948014994021582365188013462955132866606929163208811136815728990826176170178939276587082533653525961414469756469156908215199138910005696178960822404088316351936513475907683657062894148507611844503581699135548512368574860445911915984165917214339667021457473011228139348192533454415002562137796179738778496787195275631750822638778443806839454925147413214456510045264294284541668087122361736365400209634147650491873677556009215597746374993580835508649358036834439998321684022961735180626558498676107273311031404183929874589332295939663824818894237114882594499351386433857033752949596024669819605171475253040683916448140576303963762434792460640991500000879545081754492456175230057512342071466752193740187130041258774317120494930711454664996066805813125012391783384037724735926549951206585039123996724844335923480752504663443953964146710650322775223114648654761201023622439978048684490915352094636374689206908657860788863080162441303915270684190683511743394921186869626977853970319848203472799159540817035091417469639982990744024346774198406220113962340824413600767744722349093776698889598061268424264594457321121931092256071820956768400943138862719351424512961511041189368152093805408481317897011348889191205185474096511569148640063405218578663392212801823402607658627853832683655565653612167714201932653057434638739008087718129739757051859536266208380959965973330176115938597694504517779614960053517361183384668740376671566183115860777969736752196127800978681614818516702453402335153538938451994679883302226030703862841460857995266186678461351859137550094689719306042504629253745608989578351530024686100199268717947935830144114881133642701848978246132248829613694725596864211643187148281408137691182902889036129778092740508415453515485964415987086035151689049610662413659996738753633078354702470811448404503059979206934392935975542766377328351894847638672318329169062594811176664304265032904516179842025836155839100446249289284201944650422602194105164884804996852770957190334304320658455207302847726424911904289941719715788700948316199968512171418241783891144608270369035515880681639076437102521010654006330322292524636982761789661220829764324356477691125483772852420906575535103673986803946543751168329488470027013102410648551048366498919215829161968721522958346352326092206333321984214021059963643308056280845762458876889469640577311061519915551335763363461734052681397498062512220465209095977101882639634400246978735466961526241552752092160994092605773105141629370053415424894293870454727172698307619200457484476765115747398886457105302252452762478198672995009215680736163437978793522732850617321715331151626194915165414416362392334962747947217662790214206316005852005396412089455040638216889136748364047222941979643131434924643799098537866343781749389057938988229297164196546220350737133360804678496077063151192853432445079378601133623293347189765138766055200630542885958148848425805798205613374374604657469463014479130238735318091360674975802915183233046605586712165549491770364450885489500183735859790584650793939519827783620026110140370486330196359447761451496070787599968794062441874055935943348528296336823315426975336826950788013273950520659926879291644502773779858955697422165570076053873592870267488360855719269488589089337999853006023015689818751291193901460629985883477110330003807801824432552380624932421556009270265750546271662427268195068162640246450177029790661271485144325549256091268679697351825911979440554993828957314109679924384007116867682500939928153406126204870358337754386696191759711601166388861784169302660859672679036044200084364725037555368594950587217908548504778298564012613432118403125809511062116910450733741396330223187358248171707577243030510256872597265358889911107485464581334039608950566199025109631265023858165202686703857390828753410214406633680078640394228442729182722690278322174567026456378366594134097975640752684083842504475453077628121660800713758427820322946920914333684455849359335662110791412036680221116761699641369068261483734714770748900395059186997544775541521705178797329263298801829721207820193546077928680675475131880655023338807036294235014551172989713541467312097390847281799625728166611045700592912058958997855777893306283176301326084887268777724964807523684026891626244421187165382011413815888856915270143618445950115385563355047325590750152794819154216683721076408777976585709419214066282617422133813995775755613453194362588278159172123395081668333400666185505747070602418825168032581961507366264284406210782018904689920508844614987483254719191716058531453610668018475136769807846186981439571318651341527887510818161059130327449260815283632701485859102473344007494764033914268967583274096268235364820202613640894853234399400592506235192849840178105696729290090801056866111308672587360341220085331361180233260228903464840057448968059940448510745661622151890147669184526761697761970247743170823215921155267252983279926919362496995603508131822493921538636418647690311829940125415669495065056629487300197909619396892319310630060670917938746344460100605352560752902520334883602927679589876210719279562578077234816002270681689624168404852400987639307993085209379533980219282926298604556733445994827191793759495620535673180383014400995268955404765893085869880104111756099834067548287234439082173495441970851597639587780891012180861947461480937896578063640159157290493296029095148396594379023937758162975188870389731143230732800510690383352590016885561091528067389916903535015989064891188868556307232871472461111891129672152294132991086816335832671332752984598021315327269078633037779575738055054366080571141521362364141177389376495329065653033722374444982079952039929330192760754528911967497504842968405484599328033948415457689623653893990896321139924217648552447344833196357879510988504254895329226188695571580467638506086709518469719997393941092808019272870682846644234120463852453027723166749246460091639591644165672346735822304051637644169883553961063398563069660406453765091462277602656222578950358553790662558359323475578581214347501621234089230698928597483353522559581634675455276052760504353222960349135743307717843497201524431295357435645706339766718226047354668768980031842525712237160454347877405891558478082358263258441674805093264273615662835522958446135744523177296096087605272513905639455987891318380664991785889628026396598744365389113675512099569011387704134402994997346457684143077414670175907368284459002220450370273717512068215968348573345093504093681065409807762684100661528649922319245676794171897865322476507494723937248115119282192154855000987848883597735431586350483341219592924021428768430792427162829263731557205185209696542266548962491874270443361755003435490302203718513006256553571340061842876132812545373736257718814142474138725571848097381681398607774269189492047354441611276297492322993026969132448949219877963354549181188681949588626649435749401270506001004365544649316649949715470449373525918101447856120854500537552901939006201886968166830388669210793014143452367383690892559616315674951448223810781948213886160676928883275216681788940938812307375617047505212316162739017795140430614754187429751367934807142467451769431722818377845478849553785499270971670083405946908712985576775286479776138930780456032014226991131083518911149219195271745120228619832093539273338484164264995096850273405777545269575694485410870663735286637679162172490549940910041172409495397290553880029980405860377243592886405802929876418332563460811790715090283042491535370147626986082667963185393235703780067800836499608772869529512147382069404136170336581363976742361714669213987912301381157019866914744919615307744419085033449569217072122462674982135627608756162303705711695832505863027545501099438182568465445960227169574304773139144679041898912953078345232459824952794433776753343127365772011499680560039261144402817153566666840298024653839221623696918123032268740002493504894582011385537524980241131728314176954110679965956268327704294875534728960787622948341389974937517276830623771375058403854646784925818867417906528342540164973064162192375931458372973951084458604639333357767889213994569480155663527143352356181627985813082238977365710383405034158356942720111625396166212767218542183800911810069255367237104116022740837588828141713987040244720325351255069301564319028141253678800479542311174559336342661400370371471346902524256037043178793459956331593936442384983614846988390263486157354529516938478410641697677218520965300667556303449263227425565821358529056294515225641136257493562726751554747725165776086641680037086122586087548208735832122250105052852567482078862559151679484090188894462675637193648078569125517003574013837078777119805973667753310342137042150015530891923766253033751065659041371582649309507098820802766365734323184553282997861067566802642606413777990227557888464747624974574267476170870243941509939900303641043403302255384275667775946167862553262016241288753699526483888937169623080375384692715606226674614690845138917340673738412512305278618102641068199873891269479170242243901815518747530623583186957031874004706386681997408684035172651516755338517955950516321658857190624231080956649733322500668149699553509283344693518615383060561662820346749614310888521758556159210704117682865550316761269426045732210817957948247480682902859724917638583350630249295310867813044786342136877868303524315035752143577589237218406777841272674322866655520959637907461307164828391115889584422089943481669169719198801715653067331357409650475457093627363069454119167411340801032288296364940915116224162771499245629283705745046457373231326595361826650002580236569498106870779249522877255700032955992769371853835269984070207092819095140419989891146676754400664256775752555727141802192869249382231674719647135478638104415047407439353151489924836471298927537200982398496057691250759056687101846768415542285763978510332740361563541977875773807628792771077289019542937839399804548007082105808330099660739774319796739274740805435454240531910351288624962787173092999705216910135729726734802409405859650550460960564688939607792925758033347789481796284079127335449469449408228978334104625179673558499661004681211948775079146091339196045779029944331673898733775476680832382578548561849281116669956494580929062633193595889508341268102884423694395481390455518834029113958088795817700042309531144900202984559818967385421812824020564552578326317488951707790672118435623838510586779979607086253324314101155134479694401072558095882166181825586941598573070324606846903126266959135978146845873875876169672875411433845861527094656038159471744067324276462003060892435191181671392187128256783226051476253319447870527998170212590221696545009011587562117265436572537106655449705132917523448403430443455242080336824812015969097505535307366347147915180482433139253910350755726160580639687536356376317496117998325875173452777675828419376243940568976019806771926275289871405934771970923009418395180778699963409889692970000584363449191594080102746799550704918837323223757096454474825361601682159985742804463888590512303626513788253335049365587169195680888309617908950753773445090844091360336452217856365921319001548854081586269790506827514391529156133933315718544073261419584962700539690128610965412965888708132616561799463562362466598619178503464489655757267051838409032024031825401299347402433511515043985233883588671968020168897928715411628002182152772953157716229286571564107224899771870549230922166980381798615584264487792392619175379884517478011534780555455549546998587018015694310870774301024616556755618481979374701096076700611231378170865082774518754102916777481366559643408568438899052849398252853504839858839110832477151481407448054093199515422317273724901020265945497754072224351485476614603106551152287614322958824821373970769918315337684909007239806504683865834381317257325829004817894883838458546431920267486254317076707354954103299625355601636816764182173830549541401367912482326958742829172759005935759345469611942662834776981362769873663441579040535698383488325472089593873866476253373993445114380310223313168220098160518392080710153591562745975843797326539461280964353373715435213294715461314494566503197222550131931584962342566278365617221247821774701406175615731968724233226713587784507356677704007132131606789684710518906739724855776287930166445010892468149158093719732305109907208097258794669018318189476779250080156886431129155374204393054719621159632009818965016327766440730623447573594589094069152175021032162097784147639809375041651816032279961480726802530535411584954767927888085171342143738948602782720625192641522051036418426956054759714528211624087402683885644494378129132739375593369721423713330450060498031460283358824621068545701853809135172813019035715573882711902925494011115750252898888683519892693198958681994214842758387187745074017226537541181917218642285134562061860254757997137239680456926083549063705541472678453546733668266161887118982391588871985414942426969375973970845755671001815464371474524850190897299672416118918076091495850316248576580703757278839118233912202494121279278642935050443185852797337785959931402897024782136928322543088594874526814490091112424921944020917818204548879087353916664277109170178420018205504759630097009434232280072326435470950661729812470565000240610136650365088990654104863381925784986336422953463758782350067536809136230823099836551690677367150631592091407690385396715694959980628010942180919120460597405003278904666224955978439848104515162719357563027462556021944316832910112362553800811760121690913195136855066474792204474517819070062633079677304785526004422559653540264403584447255121297892825260807581309263302259405932797914371155180854783446696186849532284894152880274353579589608431811394929043462817910873662816693225191130770316224985111379154387979516363556544236518977600245591711686718626772891322553489531562666076842647090335915431394580547522954830136777233640974923538557484862176909161964496265599618668113846216036589852761340017821710920439460126709016414122870235287619195516312354541117158120810165326867086851986604596826240113412508756730909555157960124468202745648799041260356419875577658176561627240026860357555112673246239141767189919697707862722573427411708500340273183972400547439642567204035189974752618730955086701183057812702136645759969645667172890001256989174477167292918253490322935981937013278215373379592334248794167213969086576417380547410209890069104000628241365586907490755893788105808722514909483203740128556783758566370800065617051989608291684827234227732796886255939262498527833578555911860055607852144671303744865172240308762391538185876196722116351034414247749512040261019114779524670860626976265901673586112666353352663406905993014316062589165190977208004074679082214186374120730275293168932750691652144962524361575170525219173223236181060272071289095139526187641493674162469202546855439088142397617868340849618077422426055109395235825012478254230349775664973222681929603112972265103168299152931958484370350834191611921511651157265419863775684460442103883727430164683281393790574438170820758829894724893977996415191529822738940166392030638343264455555874415941539663034598703878298726076669061781518895960933501652575123961894927822316134428312920214193424369899906710729005696893168188733509613532494534886000412877222777004770525421386119440057829370699193841203875719762688524142508306336809235870467783558880832774418088724725254235698306304491986485835408756624608341715458820055633355587546952391623984435296429598380873583444277009908364694395742674763849733834883156611500197966689291747965383722494334676905855178253312873714788113926997744894968170324681340351305506570446732582029177820623380695131046259803042735134620100406563343258587492227216514763063156693835368116154212663822543417173998808056882909111009776991652598287430218675446384285968524390013998465005404442099712859699259499726457163849964323055168748453660772363402266201628721158239789216662912799277786680037312384727076595304036079210019755140380162617309992611863247565200320675301933028750711788881112193127433972272741789201895660345209037513261684770528859514518907106089655579440439354251358767908053971140230232488036760072527650310682470825303930886567857921222316326745873112372261433500888753593345484628940872910919310547520090034582744435744600819068391210364892740275699288869242610170285709089554962571717838206359378809232638783229855314585169702300016308991861266849310694456468159956820834844500110422405500002739039099890750449335382429062835473864680816467477665041370712114520832678046942527864857157377578874652186848675466337267636396530468439561617546265880942311508464357265390509903917492376576056737703750184228395422602775112973869445634783400727660576343070747026970803041990089327931066653598233868518387533796633361635198909929302411820128283612589648029946695204916223011626388914466486755932065655017922974532962890289098609961116171046619482589562544132393433410497172377278550448780336705712012650499493524163064107964637895775109845106685392467756052547490460200549957623115025908103324007694390785978850035047458102379009630068255931034071920119983183421966682237485689705974753983705644830971047664524570938198560017037894170216736677063273690231196614035768401141803196919668626777793709705244536640869924634418452384907098326842781625388377247560861906152984429086471675089355153580427307692034699867041943325257690691507913089483650340084519127388515855160140581498559953133985373162943827407370846629537227769755836861169834010569057303862220740675129605183347894402628942292575809969260233897473305502101051335045990678850208399944628568017464310161820916238065568558083852654270258387069456298795795282515012519917359997862757830313925950904881243332950222901588661200665655312623381152059453668756327919272462975329990205421469133937247031017806533579717260971455143948680227892039944949713201787770900510641121327837709011213687798339858147788071190341230827809562061096646570332189709194055886460633650188139148152289935475148791447940871941911443400022585257519915921108138260176248336935388654608001414690559577807012234826008887977545723235090683012400404551978090992320248974692616703789267418167444882980181149200159752505153501156160716467363559108756063782066389183773530287223344115259273638488620829493943464089289550988273427333430897659246957573734655605223751298166444181989644299949698613762778975155556513309341747645129505011605649109483745330703793437200264620213783530936198047122231752525571350767767267867914872191959531345202747797455865993331791513094040606015541929863665454272673716943742948898073775184192393691801320036666560007885172257773488156489406384261666424875874909664205803916861225374247225492760377107244196916470669794137411260495153241425812790173556811788827540453797161797650420137767063724288567887284200416975504624333759500931138665774678957474726395115689453031879078723888902299678141870107658563598666457887685544303937207795482748192304030478383985213868371438375559740998109940261402464868774116749112403731005941575037537962768137573120644018812297260433210381356248211130490730629593833422860561200832568031724276826691646622890743242413499709638510784456627189368842036485674813048355960538002805631468195346198155960703217907543914261295589468174404464488768957183979275015240246850997364577527230019534496313769112311721959216691640770985414684658995269670348240724868969434528280031085407571512050388287928197275295230761785757621778645400554361136369911236829855356927368927732959168211478043011539392424371188665643088903854220960184600515360771288009802074216667199036799727292860369387631419038045835715815929382149002787329052324039674557268335358488832033083646436246030565789115066597246350953429889387082467604883411179652435324458518086545509370201109835536361036705783998449988590379283357919657315205607980449577039257694340716911016525984375592366447393447021589404425250162803200540992221502009753149509604589903068298621656806562403737923155882068522860426424913593739810798317106949347391315732480961972848688486114423918979433442959427413832157120313069812656470506064767626360004711042725375856654501068789618433016617485094578806129999556883091642888212069610285188260233024821726184047854890182911360116584269584020364711522181408304515583877721774574612074094617261380194286038150775531227634381660548825550936025343880849735832377633766160860011080432103870367104025662299604964141721853461811431768675420065843318694101315093079823935014673276432455601161107039021285015137434525275708418045215225539246525621244343259030471217330947124062937636681847668035528745716882948753036195216908801386509584778256402126774734260234342008532156176435498392781511059176228293333725750288019962360207846196789836664765941577756766997550727283573136162534643369820941064584394829793868960471405000521270025843351988897338933538286768513708741017779629287282879067487458425021050788953622512631701482343604013470558287911113400380770657381641556236698178907999161818645644287051865089705540913961098740782031516469574344208912975756923138679100016477639659948617625537007846979133918377039165346970471424146762597566918182733272367118695566260629042054847258304684259303707824839859315492867012065874507557449065556501947050918982238753307297111829420146868468816348259897232701916235912915773379224002975367154033732433371108343279583502494111470769485819339303644171246098894343268692509917362815742733738145089029209880356025790290184683161840763109838243741324028935598174718868224032950147150253083655248170623036677128607699201338424778274135572241646949770781234542409941029054844621514221378885176119673555768755239552245232403874654890788336751025117279507129620745441308085795665651841916880678839468175486435287975577625974547089737390709175905637159095024218301167850024303874594935765433567039700307409055608315906679003548296911721990774924929153053030017080146922811494957753358098533999289219022365279396209246435494584443829780670924533810073587714926556234883969394150331997821854095072477699336244773754245079730606720348496068503604279251695109440311991229479393710184657469969967511218354575688883823441904695402180906158854567126313233224066111193706834284687724913592782372235755282060717818930844241133326404387023703524804745187147605771504823008121591571648463267529865380221108423204614575281760261889457918901467155767290444241065409943283073587080961401367095147818263252383823412315813495290747846417956336895718750546332391976727437546768311398592075353463464184016468555239739690240024748584569820768024727988192912160998871944910223069391383516479377521109418824778593340477507209914425937344690445975863839414275976698820788815254741274518102785674913317535768748271124130677173908746827329017589665243735648806435829073931838479479262293658848747998346039034923361636002313984679812506270654622586581666250086628868179954520627452702612008778156721534994739288656141850631820432430268419770492271514197068346512643381032317456320152744140210631373226020484150924276085067325441163265635827708369093909102649967006651416942887328318243729641286893075187444226534866073595546707447759264448341849735270492529466288329643660069019667947483314307902291986633284602415903539388956522215582472295853412111690611733386979729448959236148899825997797692675569395509924541485114425529895931982184768969780390079256747958040518800712275740545250064750425985025072903281210967354752681746392321524380811790341977114068734574656794279899070032985117397859568967716313344259127728931236366387083475751936991978001390948517544776808238719676187223375124088742634527615573554184633936358778641222429782036484573521280766104648270400205953908888752304945974702891422334857913712091936674902144069632974727376407409646251609491999665508699945252598953580068517003326373318964807771533078279582022484712346948635631844724264504984027951289485441640685599644943791208537302935775686242707801875435862678729246123162026162932973191115098913522599109963335250979300498244332600283502452822872291423613668143452752489734628387828468322033534226970447871128258900763166466083267322507315312290111188763996034477167278927178907895593900992395671522241397031582633519272125132445011612466012568506262160875915603634209314965028577765918619643762380269949357232428806519592806448774080090476374901725323516324150670946516469148383814867418258782932181827478648135782677390774076339954359025657329397667553223556898207358395553174478911292868803767629797808513738744326533023406120859714172262186162456408742442710454219482467301408498570642304768648549159279362202764860720851777846379401964321274916382416479835752439122793281170624235264092014604256551356191826986473883081799796502096595514695534425049570879731128045294268072838712381899916402881103871545989942311308587679287683482648936085843537464041509045468571245583482249024950646820263618948166808774973461374928136838180289409624020995276773297692324092183038235322250926595874129403684080077438579525220583957657918452959604518029324676627408446860299735648432244184103734513004103272703621553642586368579787163240821063838954901187992846751355140500979410435993165376478138023724709526115437803458614523564961189829543993274593444175239109030212307886770337074321712119123468465022047756187966281589243516483229574813514160170825056051198040461561420161734725253024171523735053232829164820474037036295850428833778648632353191761968629326950646521511018387989969078327322378937481627482090960011405435855821870412119351174040199964884035890405835560506819067562690826016608410135171104496989933930843969680953797741387292549604455007228821846516759038160928096019234610688754161257905783851640127449078606659810374416111597087179433606903063425672670874343666203467999117920792427578274836726039495912922492924746148792441014810501164203309916362359188767488937902979256059495578725481268571044330614748977523230418774329664623733324884505593461772517060042738194137019851549952666810659822982250202078643809144351868961349931485497626288436314037260398969651307311381790056290370530846254561189474466643440987104887955277333413917983658197230496044255916558419497146145807142981073491138068366305811912424252593203539768709467844815813383240921773224565486248709184945702292247577068016356763665492249856004494467251848216480467766607144825997524367042332551045772072681215546167714946220659714793813979433742923578099099568092240660546168531035673033580447791151169342307204920446040761919215702405224714824344817487793000550652458397834056504780447160073701162531794112660576335685862443602609478669505147876979611714401895936276288195343481221500887376400443376875862145341820754338232923983135332356083358328356614151915080782117127061394927551527708743546291503439169874644549084638641693368129802328940890492612240417314184534598849100973906895007735089226668770893954142421168062582271508184078331799261831723928598941280562405738956878183829001094345169846499983203516258630039307868442344924091629636624798307644657005323897967294775683161847613522146072919651722510690797195288061879581176369370834449188826698086852759603050141188520259067456130919479436748226246442337766092343524744064871230067453866162325554780441378424810000241228369661781223437487852342959494515247826116359007367230669987711819409583200054757989881680546259345812433169539388977385250895743926265089323516369358145676031391193101321935250336562516755502973537634904551881000928975572582701244802756059270776120341530295229301122690858225413506664336557091113898216934375173210404668599334039949973711727881323719826405114680412066338729667158651649791072250753931794835257675536601208749189672411794985273344402913843766808548862857624119129223768243240839213242896626108551274590737758294822994364482750990908075954208514526302105630465837280813870812322271517841603150334163459400218270072224905665892143560995212859396847103527921644615933782756879433022791639327209722451952992478716365515474892607614663938411961630482843019359371952032807798311478598297756273081081883507527250069519487794955782999132908010335537173991546745649015998046839271208113220314507487362089254055409565648753896825302453510532211454272344181474472467198735173364852253419674953751612588301614405578772330121341201120363697492589492089820900406794400994015154565279622415491697369501240038814455824815162719840713810452489840857440736058697277548668968811142340043251409513645260818059014318416826762952307852651642124733940020529091568354688663936318940176445674995718902997435118051543662775858591925694813890741232231789799203890942291397404861488853099492260717760974124917097276874019301969035946971332004234306406914635658248002303346723872888966242417415583389174889403326382731622290865682003969197849540946604470420887047225946166008126104152903538497345350704676404709136178363355058630983418751706735524466785553297582295944378193070855672377011716733328211240306268619832147324814860169246719514679789226100750607424631601775378664427234536317052502255037339786003450603274115686147089882084862806335028863615731079537589783002094584717537880380487433644540391441899718889432187553733212196130290521517718051057796483156244425309828362840219722864926577344765676428565874501345135637408740388842271836062399845724039355338734065499465006789558307173666237239005489181622688091073310208934910388389064959613479040026678928226344839669291153240821964824904335276652451969149570888953775098997004883596133933537549198359690525922466983076900923581388821321018942784989624244387287315989420912725749227958984948942642893293629329302223996750626151192867505568936282677565835164288196357445896029082999121346282324474321541948577921896732959605202744014471482527939214922400726789603959545477237802564656640297683324491981373975932069880791697449499235775329888591031963982457896779985958453372886136563989651455346855510970073935239837993735549379823617976944070363361013939504352954373429420710683255838968943463198093317243763934019312636683908025589513552462148593936223732151455189952047889898696274378674497107146218424809818614027889650539360213721481423357986888106529001398459526302644385635037301916126426028707256468954868315340571387520269433316130561358245693408273198904387025959895173683322221407108551122487517404259645024347153951505530833680464179230714714278880147295695325325309235114969710956062644199636455290849215347128948715883637814141953018882581828716322863868713692200264640042038538584626396875414263091124289391898888544067835066852137986477186602189514146305130876925627445277971966459638502068224515430043277236620720389250089765029380037866575827464793513826107551890484528137940731774954781332355972274642435711071320540365829116452691916956928626380102845279537763428258417658475752101624087296073355815854217271309052712230352504627797823486453092845696324204751550726510470227418290933185886864459833229071266676344716761906960881007299571846767919299416295599239299644372236637878045746749422007149837489884976286617709011940421349294782821301147082141323283285187458394529513032369693384154391305594558483875233646461507070751997030275916826433481807413991944398147662172566417215175760273651459003532369374442373304386980425261919417023995392489914966962663776490600506506498857789262226185920677901150977560648646800720675546583466041909010398679140510581438074248626047085456962377870491144704947118687481900263304945518659562379486300510097079242109453462512367663876143219355204975573119104786881042468703688002157265126188813925976643605070803272618686665663776577028163413756161945554725918015170733972018745373103098996213531004651278710870315887747754120929032823229260201989563952238687107188630440162094224691780118858467870664092873986547706614760039226527288358295595226293908273209229179719306972015483314161203854602420780140322422048047749972219249108395263199025070295820115559395419947678911911625617456901172071128690110096403366365091869011415796208944486251819185776332425962517306246962845600352972083639242457290170726910615478721874491069389950321910249063424846096768382048399825435123583164557186140908415168467377267622770126935340527623107839180821195073064839318344276881308892973792766153776532989682293564758842156960689475471907885338878524158096150287956746490545094710067710264395739431764056869872875475939894155247028165371200775444350329601344505608686019060953059545478356048851891678316363384405250229713338243389939535704718394954393045999459803596525741970567469036638818471502611999239356055378089104572783199807111919468602337383537545158770821658498452291192196675440364835477023636508253593397849467164644152933046068911416491887189119424663961221714510274308429191468506298479108964412991867190916800479938117634761802450828133821203619816141851965633999053413900228353318005023146176851256616767293865975720933730804250485885334559574287870948978502246550106452891678504449285999318232939083342682303500067363744700461989424205329881465935568749138062212310191077740994294366941878266358911870416882692580309411352846463693508633573783089958012349879283036431487496305497293061361948315040887501718821703800671228862992298234339855862826027410057848711032539875519818369942221038202057257181424504112007642235512795294866669771778714447332847658456126072247588769457384001518338285878971643463406842766945938523328218553934960829788916442899206390277413607814651716759888264565543968543861372453241678648733537324631572241517283999686961798050264973269267975647428252944972240444686256272418729080362864238486355548078730795027173812056462285108849156299452719501862087897405065009735621782326854885923174661683809790747033941324382629451604859195475935339395424735273194899708209037928384842581416479320307146694133000737578184857597862939236487240262994192800488158408281785239339242953475040168694482833189879983932090590633392732698767880490701058177076803289903432352970301765100726481095392995902083140357560342191023156811340295581586641257865467405820067718410182881408321632996028900034229946215586067416233096784876613486411481725124082373777871909004271196819183648739591344215059724621420476861203546458022000527896010832806144138967428863855940422211501564752100961184308228120083966666446624357647146166848793902594924308655896783138691127852667280673179513091694196542123723452095971656760878533497016282384749469210925289508292702675699118258685537454422120748084201508483780708613988224429334185201439523264967382728217942624499180472396051298636825571348724104867486215222023089275913138537798587100265911450220566972857397483444699798392308806268746627190215870434132429315757796825644157808619818166736518373993405695858134773403732165148026991102343026603496704284851739062802722148399260042561368819788907782886412135233585116125037226957974490488984488019763183326120142387218621835625210000307799826617979906672573330726718503285385152049195976009685190459470936632552143090442544738043927678188334540448948650255725992963070365253158599110870284419231169564476710603269828780627431876958110170490849804172182246526044369220729270608709821264741739832905565007644913620564655734705155497089973983494764143321358623616336658091822205135934849557725565866686739776066883759793901434635218282910019528204307915991825842325367212832493484757472202692682130468396512974552579895507878619431567693018072112334503357809684198407086752264878074481554691160881302748480007541729167153265010162104617999048886905987247599142148496008521513138555300294888772379136875665420167607007434809214806524082879634600860051122809585045989439445719540658068071886427217826771054733152959739162947902019032179180771732811679793050101554888611916080745232532469914299638427523808485378487667663015414646402604996466442875652300610890922716600202658016789139880610809395493319082227371982757329455822597662170348198627224565982510826446030772269068304370672174884686799742710137792352603162694956806705414650527135938665788193135394120849257207179895944586728571953938657230008499620917553917932136148476117278289801705540083061702625820653058733603462218934074966067503451290484729065316982799345982874943673175962468611129342268880669303639340949112386326725201159996519127528749848413351438055668424539984640259439747024592077584277262459844692500737647170590453797458896031721288926843734266217773177982394399221113032189833072614001142079204395418667736019220957429411073232830112631135960860026855717440760952689267465387694387583777344368531618449535709311072044306139960880070736208466929983628847804787311356412792162238517895294126537292480920104685458605519356519963170026840595468356490571096107396335735303515022828678310378054119115643537682145369028058849584502481441008197505120644785699013077734315746542655617886459603280341789264085782100446053116795445237590519887119943655440506039163422312781181086860158066408231090664298889257951083911216513690046910902275525721190221274768543800341624039800928495650609937926590878320122404230174812095258234241065429350341759348381977037352041586768306089269985390424812288841525062363046108298265546863783706067702825162914720843057118032297731617894263186689328269685901534789648977085816467464524674004467629921588416680340124247482390705392594173335622756165337258747907479914110591690651957039835702364512864339464573478842819768072096640545398733993902206504530852354433193468344654445551218792355087844632298416335135783033650730994081091497532698806144462174381607176260880649606979405271209110531579793446648326989715715316687404841776381172194131756273239404769844087482681541936868692373299432351052292121497803535966920479387247329407554334284440672245839060007869547995681788261642551847124966175979953650726594395466654782263233063049266313727210377529002522005255832543581769288424660930157903616467857754515164952185652352797271320204917635825456440824312735951556233164098506019373134996296839165856603524697571942512236162361053975318926101089804469891967798335621801082722550206140168935890075441843672143332070113747367714707692893843849835676805262529470833530959556824137723816007205384987959253775213442106248907626807676108429694750179819291572889497366583403744793040417581625871104814391080536330873551753369386750033723923413119791957631499130755815450854722753232896193387470629781860429632209146515324782637101442296804706869342291181641022422469827152996462109263754174941259340751525689961760563642898047127579361876477829387098688743417197538582350778781703749416803211945539438975467873175973390278717714590809592289299827116830731522811081103851504570166855596542715535353034825979745079486340839723810325802404868445934205591644800452060290308978015972699212642724447952958467591152960957206370504307028416323863711262869220429554034267072711539015836279481237987995456696273847547304943438814755664027156434699666891832431116356608532827316414599765856873406769483708151180435348544371416417399872815674082586408539153468883909141066060675637259451546392255497189031061725791925213963273441990922429192527293552875260661317033602667115346551526988159251103217428269688251575197652577909830190448243546233997463036179522583049606587673313264582103245495327789152099168787172741469245806124994770687763791266767234667303074393470933184451316599720802439171734944614299117045975228644852179959074911018308850061195823536188625731340827437153716796233775361443900543122509409705157862418644973826743898874201237278708010106735567479791046638531333712978991562782789225740348506561822443174498404015868198700240695623472423085403785710964059365056551325788547171371289973802611591836274543181438864617855564731942240316064120679829549511221535180424446067778698527419711455795912196230988586553317359928518282696876496872019573062121657953186123774495795982801846927673132001226056116602808777731478749245820164135033044757448171872178644775578915992827162812675876029818506429306560237775670602880474860173620251062885853018089201117835732343361670813917333004948444846310477162768419131554204598660287645286832237729302619742423892739606520755498447356078113059788301090810575580815189392210886999155374994915341819627688518544763903721652843692012694693137689982097587932205776217067848534871826710385712015331427783055269163592992329645636760815659075874442462332358009937893289203429566192253379778641133297547975081329551142991024925324649128386620963138714564847406071823826839033214050029478448063647273882750037739659390693342811202663109565762115824287936831176037377682560471542843141657482414307352683987590668644547516565093651888509772168074767922688953487036033579530570722292125431933171670788024605685763520959158107647705518955692639111795655879473503511971225406513660124266140999180811790948665864385099282361039785332775860525639834976658375741001878708926677476293627033457722074038693802991595647544188313686028684352011574228815721499013718115957408877457282136474445737325964991881622809847765989557617338344401093663828072938620827833053862475134250980815562444771195380075060317121784157816891557488763745336669801006263017580815814319725517218903611874584963687084838441724590750714503281818273556609328305288411848227862898808809008567035513452882762758831218363514559391349213763444935831138415112008107399093035752578403601771726643732988380929816831143822447783579844219876783205362901399954807184433628012523994930841316906612752396123069067175811077725840781583525101646925387492090078054745369515152189762635937108347542710594967045152704509339421319519183460039038200763744526886907013807757828092321513620570008106014678983842067038823533710088507534127514764700197204760810594007873327879321879583310297292675746983080336483359700002826769588153652081836791369930631833852687149634374392034620177901202457465683124288440751389387174319215605034750511601942878839296020422673909078205278663502914813006192458309642476403922187282030774332926527014408077471913546887505535089228482500887333894785164324718241111015210768014712468354335318872779009869104954617766758645596287243820995553249271742222204745877712692276568501396419390858712562394931302755755260151182401550952429368376667726234244627529294671102487643096900816370545512977166631153794563231104359572816162653903429070037074603013836647486789221855039279326486684910803099784335323395636009234095672904120638152102564662035106476372725746615237467804969074339875803711089179525237547510398934789666200392937600849339444393407881225016009383739057578025750401757773411695524656639720610479822976450278684038322589176496933929270127145568381194996921035890716785049068230961096616399731024000629221202578388109586337876409856566557243946998576282793024998577229514510040320877812750624287346453342231108460413396634007743360777847617610186477820397915308181342599863005329231277897323377831986186091856065812997588931655319719760225641194055410976625711939352999356611477816137493893973404513150877150451299677944139875421804846433925201505787000621055907768675606809715430161272393366412168861402866217890034844479959404812123404682806791959191233995877206157042938251265807368720870955862707224083797960277467502683808506357774505677175452017175456155651034917079071183582389284963990276126797422378274711760596898203026686083254313496044809466272710740627235909379915237606044433664783104694441710186552405773744041596945397896409666464948829231608205519722665587656500639467355157290665333656366722286988651049271230695301848702880838204865210674097982528299471332354882281621408534966645862993938597884164667407360923951760715305784549659961420868259455355097033414695819879278128210957456553040869435613879211390392881856769504538006416423102290775704543227426314425594675816233784282596161185237684453431636015477546431200200460885272488834939420518198188709374608260551099522753117527515494411637772248932813697064050340793031049082429930595652428055289737889031560715426853022908128238904314443241973373111312583176053482712855727869499719133348401553229546594387232508118512265568826273602543643680689445977429828576337033952390800916341931042724341826989271078744653791574712118553677117928395932511137498829214982740838627089259805757743507231915942917028699684555228107022885602462198449685000273715748089857441559609454636193699166381017307508937907644778354327099184307546286979972173018306124578623577027791371483504269107677245041829262416888403128304424744894458302228462708822907573056633430161216243628909527016839214535343012386009616711623659586530541019591617308072958423985807423401002694258146230221081521069149445885692896463618091814752979187700957354175037339807103698781227505476335985768611916176476191296612174347418725022706320884561710778862794566066024748557377106466530077252234458735360385843085087541876303279729097366661214279051570368697180896947535207655716347146323671578210215424439666251631482088336830344441703570459715623038839876480036940721012367003552436233592787844125158723373096347515628107828187608149331004026905051091084775301684903616022360312839606679556174389863013874725532978084054249880635311731504265115184459235820730393479691850900106296799663138041950635489742243526499587979037405854348788768261624663110199278444385766194431612913554041492079482632492822409381909849477240630694127194864162651519346362782576310690055340697467528064269641768903128280164391757180295403312984144513983610199663337519126754129079959192782001936114644955043705428499034549124993742358085208211074880942919306191832978866753012314476755298844495091523889537871295987886141781833996886395390059629625110457783236338605075408012463287048018963677088287163031716511648499613882937857210447839552594634722432400759427812593760051378630001170089824744772609605763087736389390054542567143918117155870365037290095145461012257178324405381717313928901430408969718332610052645765649496158905126298216664396619490966339887398778249951097222666143254722230791707263904287715016312540707483325448535922221238027316228126742159621699830947489247014876744126835911362474800698814593509024471933635047684206197956086989272235930489607051756590625482364970189737122532911252547145606116359236187248662427005463853908556386095032971439687694714896102657291064498202946118891575705823910128977961551985805962898774527796068459990330819002384225828277271358471855886572594791978863580157203548868047843838400423848554304183550952655559253289908538114962324118976704001077799753447719533986921728116753858644526310485227074965508613880079668628730553312869481389077777469380252256578225614009283514281522743172963677354108852046797941990984822847468602362567862689562128480046564053406740486469473734801504348934561089217843723356308322670961446672352032776401638834727634076551754718802555653462536922473012278287702889804882937960650346226943917114424743875648219508342498366103850462077122499413463250919137842065237785028896600554635799753084237014415652944905599695248604033513099314548327528152270293095818787027999794841937923843113069673516199458493311234540390557509653769011466965317873245744784217336084888879412699224762138541633412028412163431167438730306603453555138840792726554617543531844979251717093832043337287189919218705304379482008186085843093398448608613887444741508181847787178030540608840094376694344717849625793063678853809419480619445027009958747608709426695078154879138509561504631363019163170158834033265721548756940752909488704412324574248887573692314029478098097778997717095878767626622380196805011627609314358998566916283896540967372738728727963732458069404212634990478898901460275663319862185846868637347515078407558586885189246525513208756511626941146982135545908647129977379841084641193518588487529789081338492195808780205439978730221702351590673519985764318743796118315357031316976306665792339036655673834426651276480242308282465136161140627222684020578616012557333235517037462260833699668625725809904746273773679052165201111341465292524666098733072016420241541385379852149917674118762325052874204634998216168173653794910886704211103850141373544907504894135324692780233057721289497601431938164157671675630758569691607169131022883241933291351338648115633554421333718369715912503578557282530240146745916276726412016924483979333916259100514123774017512742564731647669108727140584602613800859640011625272351181746974244048870179940019370735395864314726467925560688424960132062879235444589183642164457426633596798957241306078966771085964881437473368334274657456251553073257047688816969411284447389877554181659150792936185427563020378950708373769864039873533022988342938784054274986820908717708718584997187562722849962618967759316656488113109090271084246032292511223311966320262885392078540035508937543065236024342453128199269924882515283842114803061759796701684704047555145416953969471749746421050511942037681806253017550579767799334396661830029162614647386332392075211744280984517562529026836302897679862357062071691562740795263058365604130081100412171324916446506984045292521427082043819816784063779084298021871169434294086517909778643554198892773123674560532345541746514548984168122522329253374348579944458439805954173766663049531615267019514197135090627982517014389037397280347194442986774580189668531816326421007530155669712317782064475290698387554046493860794089806702158760891694025731181792081479209738915427883892928144983205926438742862156977812835116903745025761033311718317038721927559869810727651912270071854667901763310992396059973760083617958341073229280351296794477283912903682157441155539761753806584230234845854109357912058729425728989608523725507572386807735339245321393612611277094970030017768631509375762303161487083374382536805014840207299493043558759458444699343767462922541686437533013694421263804377934401529707825308861917890278069141750438959498782123622618149331152265182390462079616371029429485831283206699317498839353697812518038842247012465882145791259984770897389764931730203314652894864606169499107040831978764766489481072053962587579027262417249789671252050619501448839230756670150607959622205826703287266944028998838869368401436647502385585116162501692233204074031898720455334056374471963934389905236405686913920542893487406043700160027115852611095086039091844903565636103470766801036213317848676701133955997074404179285760885985009867160530521086407930915560250261418632779115573648808473003541343604154907820076732402470713286139584668332039137261070250356237764401613035370658794472153775067657347314228122990615190141957502743473256534197945597284877377032721233508379292160460791816532047861050566825750543317776682226557876467458333018391726744223189355075643299038680114511266090065310161320082736417796349278038047421379758554144314978180712514394444004268701333875594975683579728150951293120361501834839307380575573661033894832927393928523030802665309863425125848835285102303601370945678739969831605809408261906821106869259910173430952574822566894035512103340745902143431350517003058234208730371548892114960250435252435104719676677167068700124700092142215248227873725957472806942558685405894603831348173880120751550870756945730517259845698850709617236692734711572512567946851354331716239027263847160265312945578131648548308920724000063268550896779080112275975208275983848484576601355749779962971159825330873831755024646624671427081017299701922016371265383857532005479983927176829435506036680715273202216043442694476845637940026157999033632586304146648267460064097099240814483813919008416058179577390260071458954103792213926687481299053963405898755204511531583310587723902971908692782161084847857580200761483048529087025611091048005929728114123123716033903905860594795536129878811402873909763483223299624951878038150724771960916402269173198942294436214778141159736378365228026967351754320914232473711571482657571460686319336657289627206920556638330856598709987135705780112349803308050133619945566157930898038143593328491398961936065504549547123301343123807820012322872064526545343084565627651577327062909267079959890708899057071839660946835129626448853941857894651483350175655079186907636904232383495545941066508187689129710138918678959473439934414347376979015557881024804737220428169140613951845362145502082672513889665027670180879918433537091315232054436156286578353221617007337223622881178740601175448572028887598867603482017654708397022644923577124853428065737706746486129210446185269815577449894564005839620028673427654920366421755275785349937198519425746769227562992416628561173109352663578321026386060392501214403840768342065117837316067670170823767565116075649338204881418001192914796497862951056559534132438507030479427592516866090397567993680242463354918803854996100894821253864065946239702544367145411082072995893285483998245153845466358115708276825603681296352192293102496302541164878388988662376903351305501657357861608034512174099778072860866447446882822487052085640227126574846390593054637829520561830056660404983508064220212003070234344329432181473195108209146090400391513106866078917997255502121111257007054323981389584193452691911365478354957856129712470859172888097023244471054155282274259173077164049349913861865642782391315380799464828800842849949834319896776261511733131947236440837074899505377060400971960444897873122333265046801232546078086489396231587967294467587576341147104734590849563374479904976696526141602149189305325900229596491710519194735975542112433338225082693376033343131663852768626236540866541047014196222813225228754386909903483556698067263116430077472536865103242874675936937277173117346634651443056888379193736625303139696116378300402516101971390970712877430069465959583861243448845875929776075663419141336438422259172475890446120229559766820500794412095374855327531242263665834480271503473909317197296814403278506941693923133484652144828369433946456958578874305834204405303121916900195199287664524239734861512053522702295972013655719237957046769666405901148351740090296795554016760551381134647727572037016545347557089244496004225470277959151263440982175872736916943838384691750956508258501174414892144276542261009912427523307035910947240910244647954660009475533726300313355529693466977907247348126495936907053964476233247313953533369250876355956971868066185730835474192215322976328154609634097464498072059910254293500552639489424796010626372013240498197660922326259952978687696003601455512819737238133592263028247248547061747572332479234545511596274267525461987815671184228893125975595555235238501331491730014420044392280273735992600774711704927894823641236586079883945939876925441120725569056190851392285695672788333749142072298019360954522432468920432343304243481178907409125413361813936924709931138839746661873170782278413839281970119961139626207041022904032878555706656898306678571228543177226998607239629107091646031595744214043635549387645964024070905657872448997211699288304207486653426635280462725441594176574398719698686075342417631919899085913185866653683330829768012238841229227043305497876336038784849843160157015472573067606045304542424326190881145561569152873901424428135664809136964799751380784701435811157763179622909545719584970482718089053096718699720324163972300283137506812354063064821507763132752339165378338737310100452732975367293841213584602924533708726261337565713665711474611056808960515606916465302473815314828795416307944677318672478739583736052698240808503703077267522034484725916572797979690747025094672449974080061626432255202547240869613667003497692400441712044476813593143808141533605597270132839239344796714312208568589931362303271906117582931033667706297295773799717613300488708317716947973723728958491828160583210902093272204948633241624070569844575432926071522402022064960057127481688305741629940247774817500332119870446012034031981400547734290253984369611003216468294804514480522350659641317852709233190865854298262434627441354287857028879498580193395691313767089734366590500069162725565622646965105136055698320750801627106457156028927457919410065674420758698354980394025427467438496787741317934640591964132675573135284396679163516062142497052666294967466583602644782335616045639946897084005906435884129069073585834149026967651324354231434789073112052682785857273870646791598524089847207434393013171161400752211921587761345974084841075414043487196361326300572504385455150635599090053644608718524122077054801898683246638964065089614853773946126515499073159823426508229901078295455653567468529116911881830463207112520437261186825842265460265066217300400531649102078012476177000775832898992695252418390153845835908294500076377896940264168206382162333473849300233017531642577176536687281644898494562943420612391970297790649321105156661487537572738537063452421917108637622057781801537016027910071903881077020399640348793118159546089298636644486811833194667917126978310341233486360191968866288018198976375987804396798632129662411851823925220213207005210240839562562193919808906201133229814713428230262274463539435649842890833410729334625816798241395058560054295892786071118278220965593862119262503370568913810599201713742116282009510985505434370683846304166695646379116553083244187162863352459008031598439250562681369150826786200489419323583517709331162418313475362683836933353832088019117611039758078278679091809030134963681782549931967316822624954099510904676638337811130396157973269042928942127590742487522793964008732991277709978032630803669567709168184835389219468862185013857622397151502009172821650281547395396922730601209715417412141215938591734121607801789081400935725437313005370583897041476924829015272281536207192154888401063213755308756542900593131394098394155884848016237546158698026553652400467177031808292273450278638466500920545657557691715445409246073439349177394705289370731480151518329646756555058981660028176068995635682177911332585384826304459947070323631103073251982719948992741939786495078927469173030737331830839600894250339414225939994831407417816034025190018870884565117160165409866924679590407491223381267951208301242966563187189079122324342099458902895562051192346112602184682719422597046423842508037623695143870831682109585888960448783140178459912027652427908983763371010279617481530038817200149232123477320178092455698073292178370201969363262252900265953533136001355745183750677364158557790381956789184771642639408439969128527669334425783817118144621722034970346190678969464442078144009552709683577550224166038307716712846128777885654571619886876354315931053109483966174818920503422273759464037414600498382512461694434951647208217039879100041044719856915599912252591163820927307237970502418213139211674161672889302280029170091120967640906355088358285323420964644266349626796678991952279440749562036774200192328695480797517424046241860703379364533788423356932370809086927198275493813208798699007255440864821730385771169550994628891919141433094695596243088913565301203246287971743662462520322470696473821262167334724034210299558607064249181583064697227907680899986316610063640162187490607201977912200812748210926589753190413351533854989851148079437794803140806660995743335150518299054936377368181563097127361075519191305480338031521061296667534961265736726984289515687201257695139154815072895258444296710644680743906422734379807386269728478530872866646262326415297469424505642942601151763502830373199889663489704504593622958916916337844794785764596438506130465909582296614828653471045311088715986783888984183795135316719395816560434995011137259996921949539837952823461134796275899541089886277193934057742638092285998477815709819593302602727700195580192488922174993897772255927221908354453411914853566974419733898864462173321509086773612507916322077154942624245070508125011829452181066323823456442383949685050526762926499712891568489571512211370015176856887253259535964857477312325277809437738140938382281536436916003178797562476565560976462693878530474649868605495470208153342849415363100166981760531204459701463288965510906108578231680638101731302293498717998868295381152332879794028898358464218610394511548989386859123994995694291624038907642035201005815740183934867703684576334721420214310405833261092488470774367030093973117272445034575188785876842902916508784945711563702859324574260499502350311254082478643771413623732236184510012341091904421420383555993306177967075550658494853406207782489960440829968708773436819548931768455041876245860037539623524486693850786748256173770407067578580892617175799832389006413345616821971335142841754935271611663074435402132460174478859139289398257644014282924057420080776035897150195135829225206142946003680359902915706617623352159972833447454458262843954063541763293174029279573348167114425722724602217414743712589437610590505484732872609218075307245274526337109738750432253801044673873261454504531661796973149370434281006081010722295407721040125783108516488354491451540727126883696530780192303408456861053460303320738233214120377675707624950386993827304075470813756742107688913944696505939357129544654956524127702383441174780335578257665769066889512436408221625926320084735170878181792750683848203917228954151677994918308959915176640259382194295175196321941883474355297083552019607023335183102086649990471385283260367767780056925477650417542880401424136859091313623854878514340416700517464367438254121535915057874090850105406423990448600840815353727248617602133271507322656067781698887210792125349230515008905309951730362281893575098577683568148483681605224994604545067665871222718192918399763766380227775037303643346397850206649134994848386875240423063415587145652024363631248916146862950995598993961927681383731204921274783588075941741852120292334890670413663909917549966367761917120990623374123940850641850155736940387138396489485991978871150775247916042602563800258253902639580763045537225963867315378294629007217258567552825870780487711447981031599934563657175071378969994045639912460540566412189259512755339576468647466464080283888633967624070888350804415514298420460456644552607324135413243736320921076897459985486746884612615814271130703288651740845513921910301630343005432192811446242338601338689870469803315183425724507345712298131414100433493142266061900496419917628429639162836829062916973032824129910690126258830598894986060741075424484936078748518041111830447508239575167887971273646029441114644627527786416133887402956049175355987959265493877509655797142527904323832434549126726794072040257306560994678231270810003877154824523995438186920814203045817958344634904468797714432487691147465099386637445884934662321522596768078408408660664930632020278592158330590796974813405959547262916117902833043807127910406979954039304308230925017537050935111336430220535654649586777301766782113838405927410397516278772065813265443726755536703972623823100041346823750532688837275115495784803799066622965654858718878127307412189321747816619197786834260315806784047669876565032957295498621312340731947380373618262193078915955395731405343537886010128965079308060885811717579232218320119140786299896912356035690512514242357210417453129418478637285735440985275217934077752262421463348421590635464006072528648944750358385788795570362814375116234042502569023084782910924722760152626468406341415761134445089620763802929248688814563174323956127379772332746260271826502105322514961228249874302678407355210062878883883498616225658288848429262191242393672750243708455848837240651513448483246926857761944572405184480975796072754060897950588777471529774128190035346420498596586009593183172321762537992331674600563125866706505171853152461480827993793786324313999003370301651596863673849126853837074818817575198052189470931054362582859142100816882092498517615247759359257173666437300507762809022242455386109063627943187595917934387137758612359200592050005603292419371452962159458942976586408423911771945874455819241103305720070249865930505346460233666482833874334028302057087681211090583555003744338320351263337031948757068111362726995618293291918786241668964522926932289330744978255833319295393503482642859734177401580755743821157296917436307461514451994652166503309718885018889783796709869634258073639449219269094993033357052507040549479864350397708371250368450896878562854450436774390679734523916851147964246261501539132883411892380941307029463379523995342771869412504068848550147650133234066043957429279055461004361153055198239384030107805889395653681680439459454910091254178730084811335504295186408706820038648980174901564002932343969222676569639957248778000438055114301965280115136528034044089342596153302746740107484508519359134545077339788281480874133439320637837750956596164123614702209386732931002736469284268461631911711922814810353405314297188727126210326636567060177179397040774375716361209514534760004824229615178294781929354092389992687859901112883778148125822022731436373532585316998093203255660326383592744177441765867625837977400516633601778672891715772905461450499065706511817017994455086184728571519820626748045175385690787802689817301102939667414893709467924139477902257673249203635140916113229848929525389549543511748533899496042271466302688072072091182698456230789687876368920358409014726642508031707631724124168299427336480139044308219816926391153413714502668041218189501736039126113280990190930722976199177755455881208437749047672609996171649337107842151390407345796026285889588908445490995441481909368227593219469599167119098555350945618545624670512288801985422167624290784339268629582341660556566193096830193912607078371950798101910882543200500934908373205913371031385318200701528105810511345445496406801022248833042072648836379738518361394193215251955067027897395060885159795230290295104930666135333000099313840599492860191949127102125277727893765058960395338848957329533850872486897441737273268955599579479065903056478292316192674702519778074234998936950600518877315398816365170407870195305058990408145844771392392897153094611557933240948905057055537374550383686419408494062008067477515921386779504508817011583819625500364432324489605426298020638770932450144146753999127581299002629927260156946394338472351353441360971786701032989955455417394643221256111489518718426017640844952979416607254866192506544493816712824594214286315416853909628525877119006672765203381708863230033663413305290046205284973945457268651099889953389425029000111568465621996527455765290880279328358909407232455374605576218414819950742286189388907134651186532616226381805122619486380967838368213809503989602875226425449672226042189843977934992341782026795639699270547906576376929404015331415890071116082529562564354432542011799585396214968368804367537508376580729870891507796764662589231417612154110215855885835986808886432089869900585881466389418487474490907970631043907305187450178667467403800834894792661973470123519988628121449481216800536808710540886603015058939200139995813807366181832371885300659751738677215919583541870764054604531903731027249459429134141981539118481121299074755594812652895743551734488000226369247379979099612653303356769426509487098786598246867611357479496896002800383766381929643136236727224177322023693332312598852732893402607135195703637254617997547786469976235884083700028848714532859604164415354952252292173332783921414172426878500791766867884841807742298445390936435648325148815374256894677141410928185655615893873314198449168112478099625858104083049039500338244097265786675680593437687496057473116654990493823760491711260216138971929531542197338479874344638653089454101666737173498562871287983602274832574142892027243676116560030860481342004908008274559908790129714154366645523843064144600157989915144191034801009301344451194657426097196490637375091958742526158838515872593293636225311643234039594395296146930232150368025563278854171881874222569253784985754941867325674126202475633480143053656713637754334123300386238518043188978718266578734380659379747848744001410351432890648379142589106108592152317017170164605935270584233928921774070997068834583397627137615847348470197309093764520593526057276031492001724183598130802645818425628238721782444205311143145017598969232991439467960102905951743578882992744613727162500383410330179900079997255775414860105937131900322454008081752305689687150802099488497985838148098664657499745602348955184208003535199687899740970263665183799906306239770529745914965931930193217481243655055384928081365747167693619293898976267803600975336527473287767383207433240897959974180721530920661563464781787112693021149974464003341359760240879043034358539582006391271427991410336832120496593801529613681870874315162895441470500637726744529259969748709157272882833267796511643876315271423830616745201946061568916237065347115861995032518764609623150050084361378760356681711688091541701562816937207728419091260933846472130502248278825364585514330731578176616525833099111736413586061073932139529076252180530843020124917873580789792941095123737479880157202570560178351774167848038910513604434193284018484511355950903897964637651494269925103191957126600027773979992737177053191253730703677416844674630667395697128672904233644893406793110400078947714302797376014388573632360944644923199838947095990882415401741570421823391952519325788342680485502359834237896752558337518137772694868012934030582879038849135994679666775231450827896090261241683896800846429111269494406141518930452455059734768248168514105382253768630916414414007991879917416605743373975076569471462322600597063038976320217223983209231312761143825877378008898246260827101140048961711965010997577982140613624610101813320281623060451161023940582822172617098800188224654072261911254915391977790904423108848921494263044937396322397515553456548331290065233816233933557144611802965799008437472935543860912483580435680382669113830317730324807247704582315588017474074610457880523401901271560672120791600628078887005376111828040152709699501484593527918471588121362994410997375980960847887799478267987771536389163579559014858841998371659735295417813442998449163107939347353638786186938732611665676056456942223597825380325078643895965516018000709892676033074870361381856644901701371017634365754327572934497819347454348114909726365329637726042876857305429288091913965202921134114844731265531975439442008511569243313493584980674053899671394695628355648528047205769865468042268830201755652691846279608610244743603952587041103575461134525147679419667383429309246298196033803650210429590297372559668264510133636192321648991022697298630433763160047950019089053552607109110254987488011589955340136054001427426601457723518481481220410099946621158567193166078370701880998811224068308382390446981344328198252552524452148843954857469488045962784110421686489349309721369618052211219647938875525857093035029694881671830279538961711542584070919549767910671092666321892260885661220681397283025472610366767522276195524844863763784551163780762284060444405289464515649613496871591455683204853462293745298498255621493621342827502985858407432928885572002637141935828880400662698906069502971547402567850509242290454865638061456996661665295686844803959140450112804489773246601738732340567256899707466490940317355666704045849576706900503148923227112123796632300828814494433953496808197397824177987949522741547866667306650893144429121015547976863395531666232238380886262811727832056785522120773668980212339252278662441826334731542502683058597614428647162402120108142865079964883657346058617653328831648416664720400111481573280913150751803434178430731840497384426179387216751062170497358436914406761658333386087120018715207668836392334670130627580473690345020520280786450892122168054943216497383883646983570197001351711334579610212134158051222232818602333329141200577994135288104332406222716927426079596901644347791360725620203225874970880268351664960633239201215945235579787429701342689656025056834937321979129114122221541845424937243852542747173320353912825774242245899428735083347103725216104088755635049463017028923772186549505284349116548278407976750413056879931274605463692776896506562102160759184728547290229177097471305210425101365694029871495720304414873958103783640092874416417249534401668462064314475501771261378469841920435992359520139714247155699422510060245437056772152570223080043045356721471751814131727938152777015411825340493342421359397874558912736850246758237064227582885841380423481233988485614482746002685690320615838250202879399223439029707775148043734599413414607310345481568923207198563987282853308769477996018174730322288928616692819347574635697987363805304261061620647926544847451596516238192358483819544150344651337034389643166788583056261213849567394386632311727867351147533413619277405959294668883531130118432765888265892108348962728968813031364788457404732732873455142636348016562176626818428792675248836389849568674432879032738404458583014625470561843348913321497450847378077815199367114346697166490500159568872513260306833431158722851801667216700739935630603752819674683984192142160118072977127130803342856247504501714565652375387777612180265962620118569669246898419911984309462041226710673946626507090084701571377783384831310077974389479191626120617547106501808945441672730164255307604867470980140497371164595892494781495745223255217648616585524500064312158712767709470501566173186192361965932918911701503981843325739591686732289213840423839572457516413785499249561048632305796080420720408889911406025701517942102798886700868874693383781134822741967778292585988015230362223198009266785776118909241578792030387645302655595235609948835546130109797558968783064292261819765217091722724058527708831033395228989940168681463766738624512791487890155396757171579182911410031482608823586346439856000506205822975046592258414287827875767679135346859597068660028808937432837768505874989402698055300838461945060055774159274921882993358619482152010296219329589424358508120358920598737375166298355407659539308783793736385242984621502549749786173341703841232417431727618575743850275967230326329648243650273774435760533731132883471075184908493055148380462706534355083541315012838577606083406786445908562147832387373793775366376339119616202209901577663015927286313329696983891319346660584450661687176322720925893596277413484940580702283210841420893768548619127662474473524166038519668999762431569173365396043734813773248996385378381531176289317706993825603055949411068365746214381545522635819411964581776038416426493595806610273454462580685966629368964944000269028877448699584482323083238339157776750952007898129296697814340921519685948758687434912157627526312939554755370474724467582661059851166898189936894842709836388516372221416881535315241233898669576243998984934029847033435128243506257487797826344339198177326426397693520001362666409877984368256394580854324904123364359191541947144139139617963202942911441283462700155386184190993886391708532944477825525405784323359368120731625834413170095376480287308229859402115606132579190770431019068932793178405304852236273342050939398211541925803354566587083047714677997887083788641652617613526456567025840852988027133676498526218036054044567541960610852978211067293824376526441578549570565910472701946854733424442637465432960228375809881549078247042133684478656283313877982426748875623605077705959443955984757220461971403005982289171057269604917407440940157087140043935377600218071645668392874420797682742819488745570985580060051662121475935418465031149585175611332441390287639609602359814627691670650300297244001341856168349628825287954411665912007382141495630028703263567358773123318891603897393862087059370863748361996131461236018000947404390118602928938248721260139787074338003251753401786949075662017064408175582832904235350737453173929894120936210870907252792522251275135594367891947140318178192329996898839109120734544715145907015609285451140260842559643155407267681297791112505457548985797789805572656235489362055690580318181009417537427345249364130469915319964774811960426050779175066567971778160198023825491586607322269480455496091343248546592054045349135787829174848471049986612818301525663079738399699534241044096064606251376546150323526601220273658083829643305635905810359952164523781452625933415908600175457974163744397454712384187880475146970845062124705822205931280762061745415899629564370671476269324816676962947904457771464059486096608807090008001749530137917598654295168449162852511349920680348726485197265636253839300869623597694456239089140682562693395535397394050220172710768995600537906055353673963301651670599578114102382049000491525270320218030749653558905065081542182986967036956394776073035514493014935410488174310488521460522091743475729834220106276890069712031668320273831711850450739035545941842058662784888463508091985901574424871765557114654579462687145659827451739797024624074434978549919459087169237957227796337343673894451292193274306782335277909529339029101704435088787186271972031525103081113127375921890347118974627313764204838332628349180487526342192613947412617547297923028761022701433312023169815699611622435208866618414798937764506323207811564919199797989764929940707377244828961149302079825993574645809476417688729739555291565110456912987766990365842616430976005169276390158048965856769321277703882880029376615385748600904705670017880337798648010553253627896184085380754295343817380940638376399039879885086823537782920242229565465123786706773876157123875104185223423005151087385640725560431381360590987635067697936068807571741222064961052545233490080413665211055425435892043363823173993533660390658927591005953758538800468808183691020045109988643706535401367719572816624766034163870737032858441243787902406683570704020116228189234202176092301393288394687344577528415633442292295276506107043672831761331012831480036901054183642876917323868484223025616770603853044071445960457005879501957573248194846998554333014570307617149768304468960109039252419786100235519078103615095787297800850046693156702731897846489167349593338019068378912397709314053658892224829934351810426331872957226031719006378794805732975553717046213328972398034792758265498394262902410237358332397893046605834636946774622880298587125242410441774846943208046816852107895983060165970420345307439218197104822415608918328092341434531594771561670499354321021652684952166093008373801196477286594968864719684144271934311928320589945105695353043895700602674700090602950772704897933834387798433479925294889847367306945128645074262255279947957056480477366095287315455980413711995410483436530989872252485645109143251041351473132598106391888513574995099041276917799241563202350844023091680403754729119190129780345404631504398709921464252676605138345262115200753345656912589167343600274383470755669927315197416578743910793104608550689779685928961909987189325772095226041952773406759455888506477405884992290250635767058486310709509616744446596359793181052497958985840976769785336845745209391563600045439314965792665749327766401757787866509040479459191099333907979039368539161941727353362179953303793654119726257716484641209700949294023769611827278519804671191549794213322974336637812378059246638036667390601376547529280657100458040597764821037856316410028006472674646333896410525588646139997269592991584769855196000362147421730579066580313793517380206673454826972050818649775400216922632387264615017329639666479377722191010183245003655074681456331811836674540959337422887192125685847635676911319405460670476116703495064750702140602513894325804482428324334619979701209704921926855618331345291627362656380100297861863981062021032136391556038293495945908742401868164824379364674147393836702031568947145816068894191298604568810744342323762798965963812390628779359179071246978718859076543884768316395027142023761494116600671423304143608297974381897203751013346938395488831947180212451817018907239936604292457420004605722877744176258158899032518354268827077729692573329834386138685434183687236680307079577458116231724733743219714035122428763316914676193590685077574905771915460777692031087596927398883308875922973278307201857028160827606496838153538585883556281551511022575979929923821076327662242734926081051758749891166163191403943077110919580494403588398423015389161595727187626749722779447983104427891933742777137665946942980587565267083442873845332812156628829016572493378792578018303084550403023366756547294759804300939183831894671934062074492944536406210905029362576677309084399508372714492851006855801873931323006194357533325201764205440810689418580878696862986936900045472516842775260709884959750783863719638120099258250164257495995126483631092651936020710557275535822807345471603173520077071313961350500507669765098194836347313957737825420666908347761315119869254677689114055386249139820588110407759564374157639470015741529969052106398270445836894782058283704456942351869516256109347642479669014423921222180367133066874920441483049700220745728836994333707907843159803428511843717791779416820896080086355420186444758208924564446344819333672409928051062515752894489457114884529557454068266700697251282699476806062635654913502768822791012708108469599547035139126859842681936393059811500452240212428676146906761616414989630198290591639946786180636646300139351748681569156193919211533154970299039069343504647440882722577515244794802444069599411446548775664977538291767253381856590689275584493915858930715963854346882182415045340343439336667315495995460822879718877428919669513586301488311875197991052332195532864924440305437357743061184598739470733377503404005420075903635635030156446672774613023487226757065133668370088982196723885813430815366663972478076969076394413136759310819204152980178784228368172813537832869078814784385854126605298076634707331140472317032324806698204931938131503820795960138685535319245341534151249554548832405006836832724295955183991348419040821120128345916934475080173479464249138330105465924337003322402735619211863293438153057397420459749860368088369612196728835457013315158326339652654818036669351535857068128396031599907977829883165014249502509004348761446438944430916228738103505811171541475961331790199676512583734504151414971329602324881896091149940382849634496995326741691122063157527733327336918793108394058038452644969397686873901606347235313126431484243044454484985413187444359340276739605914399699530663189866525371869099574109810902347741118520494592394895081457538777510693727153951606192675563175125378214348388793226984437368095080886015293489595820494326706341644498634841692290520009450758667987913967126887254490811346399889532857488406046041384535509770508935495767691050611100438983862880119043330166026406941903135158050749275918704394706372295805882242689955566207141425704105898054303523103757799909428472996906824497047430398700625838400787725169105489312619988448650513621324488359009674830572601269191487021477645033029450187495343461280241273647769729854611192585519565278298216196075139040466475835293305480176200734881520930265853033278884982065189603372957014200464773578788984894475946288827181096390855880965661937414983771389407286608917679442215329804182777863675481347875759249219265850922830625525500845166251065537490108295585184513262302032893926691099872081528365288607310956515565070136501742629829132002421167308789860944899701144779923977393538309938762500202981114562847496174537289662776000075201676309551962174372409061828884205021339578979456964969460179840017116909431982540521460432289026705305427004468448455462328842302898768161412008415886315395248924705811231153072678838309559124122754644094210818815243070227332640121549321375204972764983796866799713120461919429323397768483077642034317681901037577467296725812569267893696566693112138146894438065709930213986481565706856609191281431035434265396248006547307049095441211280362779903813141865658289485590153640939746282777773225281561490302979123782570518713346902148544028677989734616014893379851070971690417519724159552555225193445709145668534751836162996613006332911163798293512304891519601163657050276691655004481094202058156831844711035242113114572354533284996676012911653479342127739874759758612613673964291324959316337423932273492929151370475968109255442630700046563724012124390548342481496752392060251504462770920727622080472728321997341256179362357812453308552459535156405367791457025011653936172716220206930312368120191365961676078724089642569481550687649481558939673536153065217940942859317414105100347360291888743701480776761010131601082953476234212996069679939788640977356923417287286326724671467174467354150151585474706389420845842580209628488951300162985833324352857670731690829339735775025445162768353169926259517006169372374660009134535202395217170049599849262959172336951610605398745742614695387522885966111742683272099158111153330397916954673155834307248592704734179481359242624247760073275657033852290784413432493730895203590242993737551864769116743518200679199819220715520034870607586393270346686193872472649341837649963366301304305316751728680646243220101519175787891340960108210601282944577401721282100860879854677359952380457039241349156996272793372621780950803073838296476170316117020799647265898153698850820995692320004387034558790272207928814977192223856357920922481558169789758368549957393939218020639332586415491937521405970569609919509432776082590383719068657108893666644364777603188130675723048457266053095322654995321689477683813139849104568056709473375562026828124249631099230415155581618044404426594648741586040150472458663975815081845161883127791798200351239100819701437363220911384025584271840923468230427463670382701710055573285237369310694536007827209347374839554696019320011942643198796195997568408755377155349972487609523653148135319509183656326012854315007398830744587216674486946123570566529826812313476766223792372487695092163765845911348174391790687358547783876586361998336069014420958845940236256240367255651770306563596057083887115190776013916419260891360618894242778677286854434551297362912705901236322288164093317708494161266993842306644359333790998036368719722358019268119860555715367063558185459008033414635970593740088349664413896424108533748665173080349503063849143924643571201108681098859629492320117394368569540499849644656650349710660614927227631895553490609005135757737337217859455130245641634464275657957486735397786154411482792933765001966027809421813721296083961150222215029942523730140435213019200309103359090751758600683930149925583959597245902697276938563114868657334405875172412160867743100789527292999913841713927240373669730873708339676247460630158417874259287437170421813332577418737209290809385865944314125899326054309998607914999311463993269285416144801421330652212004585761939909864403418192418749416277754379196066125335359696945547576259527144471841930556426244101210197784585264108071143908002755857779955887562808547542572986284813207223560022886080762096513997946853378122780831962626802651573536160897825818574745886392638728251104903695939993068291792027279994488508768370492874917059148544875334887080715256630709652307358382103854684008478824239520324546838175890176923181342543460103889803942014753652100382222075176276933901493006742975360851366316349463032706870845909370610234079922158563945147101912568547254310493726214178717466581036787480491252094266450470469824759080844637786373120482763731454954653045140059745482030103485873919803503293494134517532841574935172491947665058817107145081295801844102453716716254108902411554588874695858308516601517188166333038303383104639775153902446557487161828764259792294979040444524345541588992514891660849276942175140970056135034112784716324064279231940043750629287352791347056517164926796855995888090659406746063046462609081152760374650311632176539135901772971408450602693064294862372737478026844648387980164166918216969894008605822442780514350020968741241412737019564209499651197053255834795804892125283070199571748718221702559164133150602981737924635695541092585131734211672728415527228650730075776957263972373712804256680873750483688634265534300791969344990339184763491152876377452277646527676881297550681265857717002112189700029405509185582221121441552516440195881022131840452205608498227467056008852458408588164942325603079362482777167512316693356054496171809842905513647621255623889806584851412587170423460781711156031323411205270115481266072970331412177506925430931184715223228576135148931588858334734231271357237945497020415572977039436557550796704702592771470655791798093558448927476482958438969950905162162757103321601145404280525876493898106429284504383440590679099506474558901315224296087150534496128543355412887141384671019167372439391157315955860573357577232335522529930213072615842935257694073386464925377011997226713990380555479620081909273561929597240875852802628742099696564465032803413384805813481784096845648744727927992154187069532851705401922103743754164682965425427825158767220285116429691557987827944359007265404694722995829705966651817011722323836027925633876021335433471124213371973630798278595178062489964856544111730035838903371035753055818039452131790144380084692287113835903783029892524000253020877373840965531409600161718040472313966745294498691016251787615334067811337042846718700041156978118471981998138744785374307330854015622013757212216771942091663666551192695284679267960956903993184898718223470898087480819365245824308630939713482182111087688002648556756671705077922148605732015998952486709105762641282004088658189450670596483275607148008105297585848857062647394794122488094509526911472021026614558136474001963145170568695374242540370871708421238433074696080246111603884275586957057830064169311242621574699199870951702785020077332443167261320680034361237263245954340097452665928467324766094509116934629554141883027972513357555899964144840711847378729020020283433583366352843938414857850370325008702787120365370076575361608947887607097036141630187056195876589543228795416746112565927064172135933241060469109484985976233091561220612836375091584220721297248474102812778360517268268572965964458331347489004896071548857436224065255819663988474751853696471946471737783750370356362631363270473957579359480979042264335026200129487718118877525505823124264844386390692123051611029348026754792017290701506402294700624046349258355270788322938361873498359466127106718220649797297858963071231963803913842982600609735368210391522661506029262749119690893441483200360528530867283068556937730604824394763264663249325442315004377533272107591734562485851456835937688052322807875167892331910708242185843689294167396363704069146816167363340993166744636831727053501964896978753989153298911953222087910283645329973799255912198973156969296634223366290819934898363635595325269416885489106830576854137863067691676340453917164565065848416012379086342691013693621638640039328355735111881532176778248712938437638749986554158601221652996575069005859919315907520693998740389387090797444591189567804481859641479850000854645162703467670081291335205947823336494511947289018372491544281751137186660771288367510766290092349153866552968111600862557304413239621863391693809302903021440631871858891791908268593200889610571492312676693711345064535249291002759650648098811312677877192241943588104487563113902333307521189950383205880622808224421088357467336572844642925287301831064794394214209456727173317296723175738225999511667088135475216195623311777356250163931521346610627417298002416055330478254297551887916391223134735089468136719787413313908448369432538238277389359879477870008613133826088985338925476797716080532095243349316856993646649710766162202047912245520412175307072095024131378580388772102501745069872928668932494732451843130126365059801421727104861166830152757639825828607316557127371598392719443349733403876714723729188653396772791979602193399349603857009214241255329098187245325424064902327929882892255034547268612847077633775385585420309381070014785734093898133737675031210735590925000441534667958101646074100337227924543168515265357464867558117154239133086716627876951731918400659003028479221387331343572290381706687856389405390214279834610218683991118076765549487728251554171065421156076436774054948578659491254484165735965219221515716358907892034865060140636191276344339324669203677260207714033509331572942568420684967566507621853599272344947081347800787167465460999501053203510375649109334043203434364473134345687751479247099759753685215176809279950513999921362126052716256291185200844213897752988918146944738547546723775667177284052913342790978358807032276581719734331670490299169864901464950639949862492235562530134223041380984457850287618398363016437571038240683258545369240828619027718734479630612159199393636995620459304274258170530383571449102256953739974917446810196366756077788504735744885872922655958387125203469292788376113778538679223977488577827143656259583145589337409525348303052924391192250492931647743229418824582920856982905083769297224667552155927418524352130859104211121489573371463684395299304557545005475758247550681198232160268670263293805206449196029628176340249949681793433980630660102982351811068833173972546431187191338673581997639042168052294787279613462796078597573564564351350260557796246615683194461906886518748103175996756296644729054825805708588488171375562045616049272654710167875080190259031357028197776875868876254854839035670927008511518629631015176707972564344854717060110129617722512658076841721826727856280084814724656580239656703789115941874271456412577989242164161804154803834704423376459921067158310478521581488464745733877849853401838493972388652457942249779757628782552298398729866649161608966086229606116195838085179278016041295041292428434035199616284328055834699890735779399415754803167470616780530270589243824222632864047582925207455720070627393180727562877395072353518641493254562329531417940116438573956691747258076808363049177612317565708456135922993328047209295511302264166458159684792132745239462459933611133188435490510067787611004573784510750462715374840053019151994961633670469222058595097733933073031653520207665479236356501800946454057607955149390602456893935601180398676828426032372574630816600530585276282261494664670474910136047042306140593560961629703607562521938241150472293231342079674236633140760943592757617723880181075454968232255971527743515087190057210326867027745234242762749028089884437705573558532768785511577639179559435811154136139092839445906354676865622102369497902041198487539224510923397707176756552100829103515328758685381583341672199487810294611345373302182595890798583822099234747136016396579821959010160756074161926574831178852467375633808690845998331771943095980065871457577515159179748314927273051235359266545856176679525846662464076211939995481625390147721996101117617510947342807733151401542775778038764695168239974475227449087071626481735341956277894006749300465567384145304461212401322063898488577574014001594385765678909793192600816054739150014649559727367106295338117519613089942284552757799917102841778834568379632129365400876046753103555267911104816761824816484131881757260193200975467015327878488864889065942330469617661191700907987368388923665657430427552230104773670753081326587332772487928442616785121043725173055537191531983553936248253640288084380337239590829505727193764816809548128058171187944042847644694035285762251359003798906617351825506833781668569558369660776611663156975250652041380773806756780593244890151593816938049812359939372758127147748099083497839500544460891724454813146308124784992492611728432538095284710067169471903472778302569214593750992987470527366547232134981873586124293390094884920508487300657629808273882171964928631561404898347735149344064021990116642205911514184612108876456765964258192290880128530401064007067914244090424258849348730126915695077935596289938765722295507800026168100179789532558889977240256125826746989176383004922852547776803241651098101082530605601881098450853068937220008786000691840979389580603894865499755434955415012799025049011656321199813754472489532468759898353208161185894786370616387452284358165065755555412358859050205218067204346362517278617388193203099273698868264795923680812334946195765945881464368814515331257611853780578282693078550509665764399664644144619525640394853355769052057506084609739305737396350326064074619778101276874358788256743628579263235527091265270918346470234507569535481611160759911140020413963598020822168912777393212919521518832112648806352081327084687819646243401544239924136039551462160885222032156377611769371473636511747389315326213850004884665143084687708980062766813489804270787910488229486912909083205074356932700519064201727586419615982952449031172515407411463602950576333172427304088249927559141321191542800620291866928551662462801255639330272531940219516877759264352559541936678756194499953008920094029767714523193338935031320645928658394315074228464187735845074505509715998262484623014675946951649834956483755093608611512526684301799893147391344522402038326262352470279363390491142424670910580874582365641361173283125841425108596069636157700996950526062401738022778007767466042910348953422785649202780575420581055463899608528779613986819834553159807152128289437082730786993630001174818065211252567256714636902266997093872111134115181879192217676903178003229088192469070377936914132529015310933438305067856278297035314717582301713593039392125063632908828188698460017170840061846891011496618711166728138219842520838930511201398789588272864175130329439439518795132712962943488452333075346508583448258409025860271807653880708394728999675271031584118970588789683823012574236605381118145389568575515464702252476631513310142303999077178826060470679116613793274475850110482475909321264784700779207284131986954376765340198046317930237459492818613291550765637305450272524861771482430722397289359485621928906882269197208626692691636781482064080288902300113619141946420206478338223261081528094196737864518621399929968006565111647300390389449564775803264777852650938650744427920257380905828501082871279009252861866015923132659831912466004453667602796527361094716448213270150982105842925318366203035243781718001489389778297669851507201202473192261421192753707213818378952865130573893601655769257858420799035520206332850284457976672200399873942000658387852773029768619454873979196333216154440419880564278603935214547976779197029670228757688944964818098456542866113571303101145420118010965580568257119300680038024323380809888634892560169559409410999976709780449711382816743741876018591997665728295683217125830988080529034687927044819839172550144377727315786233832930021945265019602688152899351608430773662597965991138106480612823911923792251831252367289863089421684690428344573940595205342707881334408987388110182776875085604937687240450514710666321010429047306244458093041552479114228044150167596687106029506005181365733888142112079491390982824709924418165984813735524531704063045091424160486469286173939954024358853951898113708701003365539294068395873867959136743558513567628783073616762845802081427321774846875842379519142776199260648615336982328788960624605685481681716928433434722193696307815126966112466052240602108891606511782907726956104601497542996574663785055535774883711907624689704591626884231011780980450184286909593981197950189255470766817500294926926525125919603540990497089009932722336258387245091064017820526470885836869044184490780583755205771948296685895188014509278473107382467777976309348711663353668572097824496386444701993757470192242095477241847978443240326755823576289424523932960078817202182414119319766336308809843708165979296818437969645637478999111406591338252933449153862982879915581088534611411879074610701067547401847624601796806839385835950233842955508617400531160792675229383992454008005051651754357055487886677764159711647378041825817597070085076527625577216457172276219239567473935401561682667203481185089562338693388821825864271784059731446103566642620764856067876307223708502676408865409792215524354095075063037179798166554244132680928571468676058850457243967880060638158720581308154096266082009905923672525085397476770693785036465659524740304850784088675087504890327236636657748770194421442120272693014158145181209674508270005679804777676936685210969613067278365318047546707544439568595454782960617287792196766023733766786574034699158007760234534286797324411933601528019032265486825736217826904942519710099418173379691962481490593161768156247479240390766484356143119362682981586414238327219130928794367756946740216329851463451138561729180933165954001809753418692503049583465996409858305895961585771469703297736162905961112664103084038570061479654964366878487493916891827887008648277955432449537355665118649245292945382318918690127856723482227411256242341938685009674614913371363267799153582122822971504237673401253672727283584333764562830526979372710031125857590181215409449808826817083392665478194113036088601160711173959182417989468920093542410490930817017182282558266381542209382016084239118232902955318236687157733296247099559165789995662285655392285751260920314442153402975406726380201476667703925287768256576188691546337903360487099674859047226297774977492050891254675989708506528485829519220620357026069260058552216755934375196246885996001988960704921872308482078310908954200177028612875853858722792081136039797373977227078947572487704739186117003007213858052419020005418776778198942911269154602742229218824402386154113902669242365612935751383393444287655967866909838353859802002290787807882137165040829598254359811459578883790263061437995172606275855711549257406214501361476181121993103422625706472791876539539227847987899325172988977005368912033674238536260440533536414313854742384173642813681685623168195823640152036902446072407136334157837635462356919831034679484006664731278007211437833010506482675776814405862420036825046014604786457438294203473504851323246468282096427510898560226638722255752725402499790215325775462380865915935381671016382428363766302505650029261042966074290634823023979073587143028162111969896269612864823138220251638701504738549347479458832119715681279560629824267895427652054939834891012875633535214717977170736193431728061433437646871275133078250209186867323257218825700279047090450034965624636711613994117510689225768579583100757243968827207306135250516828454181885940660010634473776800183477417292445002577055075536632369064406637282254671618311359729023876831872866712117450320725105472671702485300586572289819856142480915953453997520772612970682897315963294674483422691432148998880190447220433462926336050431680002468334486365413046527963694101052263052245450691960047451209138193631096035878034296016142861754822866891379422945397668586555051215723578308096716799940935917899577997041747415789636515006785982051349960972881786766380803975473854935697260125947391900768310791145149871925872073663714002161778609000727661172877781771227435005698129416214349466953661257736691934760999329253116582872711025062881709386593735512553352649922409838779854819899405958461888517242006060492508250341117516211735744400236134216518726898349990342530753126295141423585683428692495326481752231722053514539293523690575731458736064080642840144694880669572671094982157551750227992230313849021160661530936350033773589042864801855184055591173806015919781966661393140876807267683165154237251532006806257984873603877292841747653414864129592278323786903234828636103979115905127533728385459332397653411674021242403077845439537814141184584525892268326422832924936238755036719625777409733463965126643705727370141970449364248220938585023886394628292777555214329191413953314729032582976902264196981152467357100716095337720715328120587467126423059295174091904845057355071648060118090357220968315310585381547290671542155404639480659224100326455822945266516003592318392639681533916533696142964446259988758106110797812476841530106501316859166286976696694319574889110872390707179592224156789677017074911452287538409631744636875192680535508265391144201267976160286719955117624184436717327545131592300209508364077428904085755918477630476538838737895789155704666213263244382823720345071611829681928637006359423822387128693862144174849440627443154525235560888857848677422989490508692729240783075846819099218813699324815629069879472426920417481309891520287547945515640168797436390677682572933294963692166245095569723786152050215309498111602604191053769204890452261880411565921633832950305851246893529508713056247970766141649146602586291056892994985089110040305853595697032100701600356469328770205196591189598692048611316285977103316104701764175071137817854169052578644592547386210059610057306995678982438385430113021664931172492389472482786492399514911232791891538401267175942921159805156233946283834454488523485538792539220991154703496809948322229712632094867921999755723023182088861147915337395749454970556261413111176934173671470680362362640587315310277431937918842389339767108002444157295809419471382562280449825846196539175573380500116025608982062289283416392177018861815734502517598129275442029252549758219818451645358476476094329762807278497675229582388788160625919462498952503443733205368610294359412347368241441295312043604573323761627613065473213886758519658006258129253999046615983808682635344056983349841078229337637571046358756996252507580004075608916486222141637071653298848772010334998457126885852123996615052599578411937198021016316007052827564921765116586741633718973082898101399973655497630695877282069213900377332397051785703776757555446776888978528001218905502373014931903369067767796268528882541984286383467364494753176969485148793533844454929696945714214430071694080941631064043681638679281719730734365531169390575991735848668369636952689587323924332800149449025528915483849842689586293455046221639135112363293850024516704291623477213427842430694110155358159010761388332799097138423730106958497091411493216752282381744938589470610015145077985562472159653322581200626035559232102509733420545165821979483676347593601067687379680675641960980444882493630317804184763535258443367886232101918901346909732206980793542900336607829757784486499644677951728342093370782546546324708990441336649875851886089221633446156745156889109022566474708288150352420889495560696462988197014517358013189109610250887565397479802919750364795512458490176432499559233532505273154685192311532013449085345013669917630590337994804811297341117835718510412047866832570680993507465947397445340325530705531333493912776268945688027444643608704369710168036212605345913675100773605344938180467118169370419846814312556478894581346068741509273211796770976042251849851962200360777639671006854551146019798424424397127551294437389312574248286314358642877440327942305118272653697762587601778034940028354435202113989854137764022094547136374865047645376363494414336789097582371081680277576642640703419797057403364243594427824638994094144878163931736694914557140091775974022780951428136152435870196253060218779486232584335316224423050840969960028691974555857802210669501736094841013741487882289083531722437038920077216444256542823273855503679350192966202630946610845347145676397931959084486705738097940419404539006342599648966951148449183454142400302555094011670494052695634221281196745206380980489377362989978399431170217923473964959419400706369795069512469186557826560440230223778396252135391990813774062053567990184849688945216217286698041798425441944031242472755435925181019391033752619063489408897792814011282535719281351839817178916056515874320881675829142754870451805338245666947271768322740160146990966818367238576467269120761655166535499161140353000515682561434285935083834710036620264950829751060808492819700945247217651845362091734386614497943034748327391445765339406960844422446434457506036940042857443014222720281060158268570101776386795639423093281602278448252033841434536644973906497316181070151101556430199680800207260672651873430589155291959445634221912416470065720179511604668136558747016335534599787014397561407070945772355920345007728037862927366257039269532984252858612030396130644564256794950914440697517375328792320765733372227183645733301689581146809652531927710447416313274531325647634283829200155331186264419564217607908789312492982757818027304130088988638616116043392247186214237862684173953319167726454381223295863659291855004970591863829157780840211954456954606342480360970418927451760620678318171625180944231370329182464364457277859484305292907783067799854749631762310800195692020290263687628705078231508230408045238666802510971081899552565621076660459732574586572812371127602934975383747388908482131146869860225082723025718039158715185454777935358767411406990078211695145251916454655982475410715049789331527195600785515365897957433165448753177956936689057609304388998024461636733014604151750983228166575555875251181712493363786835267270973396478478792835616707518595952405392406708202140495730858055151676811355801191146836536941919040300346470733464412017373132194346666939151311804606104346094076131485355929613123428532653430643987071991049928353613795753401199796716144151865793537541080033491015802343299231085597989706391236539566640809074121775344319919755198996488672474541687914432972694764309151815208519429684771075567861538110162644726345404273151931330210854853779765149269930697507259930776077060847753514668618018559651358857066345278409145681394161615273067508363163484522616627163431430407127950985981075634276139085747409833206044337686239623128189740730515076926348723359034788145781349846226672910151286883369210252031322310424780630393872062305126043218961263051027340184610097251107085421502466560462379207080237543615124897001295546930839596044552084599597138165582784976889037070178319546495279344956493736861373749861655077427160232783311824112422562789580073358292118960776906873116148165071192151404474730992227706682281259931473730844013964268300880009065508272461455837999513927790073446927049689563966636175270847581271484989295846300085475225090860459243036045972941308155658272233908028051495505143276264169461675349360266218099797577618817743958979890143653916326113515421432777707621531369252234875485613836892807324644255244063286977878286743606563414766376970724621294183378280048085899175561792674282109575324921280264215976774708564250889492414400781310603891540619640829615507666214740464020819955720263000188693873581883163005602187203573720435968490889582379161551443309514748064808579720464408550566165828687515639196169000954168946118413027078125993337791277176050813631422094402679271206666282265347095030722616530268548077338431853446424933684923493311953911782911378296732601051584570674719545323985380534459094663199352759855363802057130672343104816981884485249795291438614718565868559867263833658727970034805968632885807837794463387270811884815390308947813807386883819701231502069424792854696580868767843975951988004628149166274415312182699155009111148456292352438833675734765275545823460682914394223660033770029781159385663981959584385123122980149604911380128897104715153244983640942732439189762972707478561329051229053170701289387233710002227218973675249345393091353616484683226793815861660879786830876549146654923842403924886102986633768465563887012150657235141134681127015934959414704367195411932596771165377293536072605682070115086155728726212869922656066549693732627391310023373125758724399027141503418863127063127250295562552300664820281740594420324729694657497112604469267144254447895903009976913715541738906422544330301328460705561437651363903519397177121158459709369334189191069328002480727447573295877449719122968594459773110114012512693266117024412957002933965836540677856494761740436588798962590727854454604313026555335780524283829195358385807271836911199794637243942403407911300108582507475077761445718276051807030350663489651950564044222916259399597271010703419089257402331638541715558883354753255487139315050242534047225962920677506550649006968326852885700404080289213002430372344371074470904409005828626438120668567245486138727204613442979632909672658600179704363596594582372992143436693301726244323880187020013818704846113321543644830552442547374055777273397329715513851274598081141397641404647594102721524099551258533505843421834745973844922030172228987733904536196576624769381429403381493282857981306526825601327370030893258077182831986084494777823994737630798796149899245752594645749394120138414278863268672270519644955898947802950526242606513028916496325436038774269784620587923098732621849820460984779442169820737162779329568398659102859041756767211945798318115552572415778023292438563969570708938566592234501199470326396016036842797970875920537795485691804875844374346572717709774508157029060688107241152436054601258449790081671551152187458020052352432122794872427617228657371968914101855870259355704660989767964530997189802620943615036474865526252277409524930798552718337192460367497438979430834076653264157286395294734049060845814376899882618691185037750649545006792817826437238705378716534216671543274578923877266282832923279549723737587862619458374926912249625534994429648211435894602814616587522110688312531924452596942156780518561016783600086513182247634171602830289970378497616147286740592095453634789231650926113449444292003844718101693315764572757606027789010104840573211695310508090065917359061651394460464120268982254568289743644579547524920322776970219107897627360423969847184282848957983171617160322046844653862736486337737451381331522495994832359327330804758630084655567463133121317274999186299505158192451968012170852499514709702946296690900051602717232367470848258555900906542587931578191607127976949607830221931052206121090361050943121400098919382462235796960619693438117421409706053082780330063549930765425288306811672989384224143127668466622673944050479806277827762786552607641178800356946934172347323752082479789823159096619590018618624561206741124866767270992352549367946438091388014489801611629097012188107860226736584501788422158175714172951516532792720542671681714951113591300081950963769301857307096187870404846429625385858553551958861495965625487409979389266505592273233003732251119579317650433350915186801343279980159727345052757454322514784071813789962944269403792140878863077841265235243979231238036048295017761058918312099522078631435211516137360984362139628626581554053271352651723494290549312659554382305689707260643272464688812540919648580656454803755289227901465801570248892831675682809497981396965987151007767522822845602127138011170748725515323806976904381185057808214960926755331401549606586828584652995619890071054810467036008022609838174367880728739157454781043821765880326720043896890694255909839998913111059470693626526242668606835711741243157494028736920407252014525157906676789038812156195504367602321413200038324269708621642296196560726462453619270657541792747805196375772679252228717788042412278047505396656297078569978266135956191866138796572744906730447782136755850254892969661772673796626655174462611760520838942588662823865555010413150924779611782116340180460491934561049460028313729395007703528011183486475415280257730455887099847812634312099802402555242968433145645624826024671717198628468973826602834248760309477201648636284671534900120538443660765490024141307226428303136710566645236108460315431801640450746676428775963663077915836898020470889791794315040029433181414803963328227624957860585484132317776544099549130673867632969442317892248921303614627532488118860204681013847976346097599330174062441440669166049832196298134055590431417452413822861192341257424086356755218258779122058973822112039995032404502358940470260673971543983986039581879381021332965786828576416724722751264326846041792120614784024653567135343106335696985908197748328582560370223919114286671466078912329286352496962364148004889494574289761363849193032645536417657615945411236854220581816611351354712425123191148720695576617428770947988399672486869008217601033092576707119285441475907107941778676661468970192170663730506456145411052922564671112318146044171541597690681433861651033167030661239465177491255901789408554348626845651708174110624477300490074345445874872102236492242600601697063522798227831465211123118135877088645291580792329571897596477224613426475840423898611812229975188293449855952239007327507006905255013594806414774207654443337832647781095862438350777411284897996285235207337156620560332256448199979555628941051813431039977781075936859436316722193173548927988772028514105794425845492008592466515733992259770385126405020606005395867744705350366872602377401480377462077210818809105685837314354086482238720006566189806376342923633884952432491100236224627545465957176098083801483262118027821370446548249752766700818868616103962306578097771607215295239322911996644046875324919601064459076761416501940043170906657773602816912684023269236427178999427633642888460493984677177507634446916474841556040120819475754401357287291313915858622958939999147241194495239247157417036532959803176393589223655657433862876659026541259240862360879857060648194948594739144061582589819165557435367973009266468740419035591329815936741171441831215814408540370418789313391660061030189666641589128055563768314542846577879520467897175273556702955449249229096785328178299608652451937791450128627789045297270224026281465847054911580868255787082840912533245908468393048276321355677740804565535846902648274383677583215428403581511704924412557150068946493929723265410959230826399455293417099532464809266002510375320320628235200820412506107664002605386139959732974985855094196059800496787448056428613148128584721936456132439398486648514573526936126389714583866460298060657544670755583134038228493136055555722255973728725630933135854251425230214425118437858133849198067094011758534356034368508083496906882905187003838265796732034798991007719449261850276016016144248906212149127182035941793546513640567794355223871047216474324879968979369762566711057195810081276640332429128797345060724870521417407587225060349920406950081826316770441560233634556552099526886265735107818204490825836524146211106309066759494727784914244196884622254117448791637256084026615600574921691348680602676573051977855597370511088874701562000874940460803610432421907260548625184363233455514210706256136346413567297942951389384126614804662181220803102923914579585037986022007877170305793799288811055383901886264881389198859054544426421180404149976874655970624685783125053153433491555236254462631230143318707127704266524749697290904274942575816213798360969078894128541685147586911743755647148352746888107549451195332741127000655177549776891328859805586194475741173321616319770889435799961424680389392685665265939834450708943100561687822041026941579332020005868358468575431531187048477104333241027453184427554511985225342202758444615655925407837524074948349747906243956387492610791855712756796481276895993263006976066136811670458937884789531084211089559430606931703120911324857753679413054807751910877232079985855001808059013570088517642266904993568515315530015398912090319436450574908282541818491175299401775371141530936263059383405562929166009796528636486697092612933726378895971440245216332925563585575586936343328538967349149628838960522061038251306461899224708729186367050342215959038786979112969580288109510763427457586018583688087553292606847547539390103575556421270498480189761832644659760769233115432574290850743148351117589112408262076416117501071593987759616855175349306794272838644225538018542257977541815826576349288662964004192568204588157732721187558028096708398775867404062333272934138612370323260583523242161680508423999925121204638000160758367116584174341165474378932155497638019860753959859530271421210181964424150349513352806471155659630306123801219714261000039238958093566138154753058438445725348695606708447839920611865535563849068531516973067313892815901573866399710002675202742979947080360190834248772959413842046898778905646970080534853957989563319891244032807917683195630335983474185182213358465427249794913394594954742322915136153844197238049890089556133318015332230126347554407661541262901783866566142877260324275163644827681042896057121535465265820167436703130936993861350960991414204602315810063734490487564265826415580764459750049824630909457839685889766520262972005179614649675029593409421796383340737526214321779581152831861425096030655387458654809537414257916871183476778023075297099871751087464999173538610972964409896920452560622584418135059897488669946389845714790419244608723853592914157650973928257827848920739654619538712794552790884567049906418644796226263585250454972344334813154513178785459168207801077879661363459124953703825107498001999164568500446724500116238487771831849059052445409923905971342444221408213435518166011280384354300498355236061121559038840493350063898651318564043388880372717172098368274385656881938797197661972038976629011386253540124582827041112153412322243032831909906503757372216866050720322732377691606411148287428926515245426076842424063990944554923685646546292437308415967470201173677931771870627615789528814701724815873159312015885041023923476249992747244353255097535983692125659999310963493606658097188920540294929927602757822613752814939395657409655406435186324131615830530646117556312131852955009580212465553111914577358118718294773664272778024594773032677895528117283167841601823499121306809844287219589416592852590583768936365285763388101334313487697394181260572860414283454033865216939541513850395668175756850254042566277168380801107836925791177865542269255187587608842071199563792349048064748255544194467763459749505642277442044959423715670908590992258369635353632786495729287929190521417207361322375265125267666651772788291374335437213146819475868958827883526494495531577416875615299746251045871925676857195329083177826417637443804790405791388270867534689500271271356724837099517008332001211705168037941511645311766428588676195221625081585475117991219799084173030219774486367963330919458994467104740413047163255380818043313650198399942462927350143185984594067770158172848426960710980774005726849808265610260810900740251601720220296734232812861483370082791000415632036188510699131734558053616296731251120063095446884671019305194290921222945857142351187255985708588495825485918136278322229921644636062941249898079827685736500813316541260887992379879021494207754825003275234901982387517757683504309062333652711347477789644003259350086922237674064496991002417918559936341574026138375439469108621560332955575412987259990241463222267403616566878078978937128402326837196082275597800052469456107698080533057098716247794935469515726626982750117497740678789236580423645720645591823265574819003684930624215684318262870556818482227604162424463884554446701905176829364046131485049650873514938383983493253821845540778428310477207616836767903082900384308368276972642572728884287533743822279901919983969133241040829367858547151025182295263993649831038771102803167998957240522154743823502258405800379573488530056850466992618554563641421768495175808868263441085471975359310117560558991038853644196213547817868634622169429251384555825118277502810213201797848353293641692727436256854392036700084987352765755234864089763821610634173643808377913725862708954746566586346756902811249545919965835535031998001148117356332845107155503085670167167173631148760036448473917720137927176773979217827952915205436090418210898747397110261280575035322770860926204300333383585683942875575633743001703745341482124315758269189900778001300158172987591416297977782323049360756879399732882978111836814728962156766644924023631016034117214359540779683155879253156532603525563771582631044903795336092886070512713245932016823342157246594491126208628739115170127440985146384151494699843834232121871915440679909146351752738921198652520216446635821058260469436821403283124638183434300421374902565872455036955406473008403870431693422008708867690929213623158241095094239306155580915018975309961532789234852104728394555837879219749639912808342727933338792949489558460240789209215928792935045662979470645346400218724117946936036755617978010497819102355429284367260521925174648260445492089933681597859039058053086277490730203946596857385304327188561078309086816010276041916472669883376301429692320846029081618942572729400214956771687866321122777333832968733064365576075604125055492587666119837321861547131357664734826979052590426944092867364588390034085851833489216199780738259145479578146316577153581579007838371397564203317212162843362590011530838473407391318632509290851700456374486294820364022380482669235562257876583831769536232823508633860486153421554253384649384988141489257073272920902098177964782996181330505169981449357045408009112427212633607952576847054728072193010277779618727189700455158685703688475165704376386683730560297022978524858420590490396750730237574316682962205254498965660296222078023132506192740008919194749611049562767042547592329800541556219598609825480892926471892154533007568377489725444494874540997918892148124289748650678493116409433665201415359795458262663868572172303445214414120682501031183932783559291408354248603555462339132980632360931028812276160186940797473581885415111943116227011145183345037555785885711012378317341691085036642424669991844543319396183287810725238194028898001788163536343657290872780168719851755474313001485175013758375755303215015169283170553697255430023351716491773860525131832408640689844763606275086982178493967222215755849752367222344553515718189705363201133855285773678238925612853682390327163709058181999208533184341124793183700401425602032232605156355125001820877734540476308424389043965038068714276062279527943029536527355253804798108546811962459610954979862815178944268023851201855936125649125249250196236247170415666440641311055030449359245074321317561300152060459610512104722099409129781853369939451149430608801048058887313437820774528369320976309139786611285454287497450374500516843610733005872071892965300676246865271932562390998479648811146836181609685289012716978100541679748897215701763389031032650928038384372459484885370969497724885769270188086387657866746987890680975435299406696878836638555221622585896682440526845495100700193130422878886103554874315572620276173432555675428651947079599370161804167047053687073037278949157642044911921060275903099480192974872165870355310849674153646393252177568813567759938340061299715567715025709175200348228633480405447948114206893087144138904368898270524293644771773518009852093429623606197451919009637592177309946366261507446430647326436854900117544338315341737306383527627147456212819304822413149768828124147826874680928170539854033225785330796745384461650248839973875883045834651562272404026429274638848696264434251696879016706186969907225418487477733678168745173772140911847647236724936324159207962303666446944229846779681820227430242477686447669015803673427860721131337670162168393460858235491492435489606395266185589555552190084284372253428245643444674348426932295878072861240084180966114704212718132747311489319724426101517450965362628653345802390201117814598105942621834323820255313681794301122579543791315595017598999202773826525687240662655308002543439047288332598911225564335036201455199313775174851748890131897801865903117520453394618376546701733973957682620910551837070790343261732899798103227455790734041008551842360242037703160273537009603860123246480010691588653760440114523709545828901611409624981777880587272478537542129058744735216115597172275617925666719741011956159329087167719128285484425775265468449357026819966146248768980841507628076788947972482535668524156020911002505643221352569527130135337581895957297205461336538599034635199862311615901315273147987733239753614029434821949061144561745657939145538759487594054653692072721184114651925278427817049512966180968641741512450881523987289777981291673462585804278414478821791561189645974323152976742188851844329735345547365719288677217969549299447407134266768286187633339962425679848798449346966523828703585774024223728707991054417363102406270099283614191994608489463224358601134975717060624358109794227652064667697463587069797187187187265668322375650366573635963752177541758835289682283176729991635292871439576737057876974845688201871503428578817926388986816010978681133282437915705350621903261695318210899302693115430944304249362882632411216447828580393903507135302161730422612288258248915711715381853379333802404998493442261031278128529850747328895621202469888477701887226200497513535838624324067575712351123920366719920454541768824588955805061441135365589454707329606731765265823849016348406448817600232284775161274480009489058678459145606998464251228524462530915587576356882841216967837315886541168843924566336215822428228710281560080112453891670038432521721685856708096700146529580066977438786743177447456058002215377980355872840015072992306438954605186744637038551210949778434472693934243718978501517450252173746771367725532087731411738334917936412261891411126629976867408082866291954454597677274925501644012943556407165960066786105014607636518855583476203575796216811730164893193585213490124428045507992751688313520741925623996404318828875686884594676186757843086931609056586272485837944517991338913253704922374490438403684455848411745314645893894012423161944637735719639887970808031364333690945736999440900661276271223319381890600275043153810411519454417759910283854361456160966307616769463190128392927091677190719149179449598786325359965129478275437957949445668888583831969752279085010283056679644170963715079002276455963222695949492463527994383766483810631383596930950251338370845565390024043292577012362876270997215299882017324509729969652320940166387363460662347105477209481958467462361046258839187883540774684518025967873817809456296466642247048850468698494097772215768999957886016084201931406537966175144868687307024009365092042632078240935680576123934779122525344305898294299779324332511343114806032721772517185604665234667113185359775223145182761370159750807682248117390588292220322313020452199139657286139343848076286700438357863823566677660310525906043510828157780871955566139902167005180225818436733696351706652729518560080051846587869961385723102640553802823032798654336184892908404231963870843255575275429143064570569335344641320842847814394125328672854312952760599037472693784139154995245317444873918268691867462919412953888875819477006354983555513848822109735182611072251826615083417817037803769482008098697422863171971780395695244343477474651078810152412106719118353893698590928905883726157333639412339056675610003858907473807885011757255900372621002429766667493985637471003886936902426593120853040033830049112788649165548303239112702432729404266402132760707625797387463046895907135056065117236231400958855370379454351454092101939143550912805686214366800385452322855912034837246578630160455464449127155775225716331964574311883896660322141079709198484568867448479070698488475431300716126556662362667328694626863339676931130013792536911146877803928954124541574215446789566141412044616747869787548091247822763193323994882416851144466021192907831324414955022531998108823291098763543185070785482028379020138441571423179488710339894413710553007539645626453304535734143504389506869794296917032220887512437100851743843722123212743086415912077928832429298458925081668599875051514716785781746556630934670964077379615959736683071739791958136973924348830336613417926374182173470244957319286883955575820521987125906628062677126060754229563870985374479776375575801453167250850064465962830225396811018969119756830436501099228734126353324127546429173244577919489419112506156194744364768356878411001434054718634734082093335907303621524362663810045544697599776887461763849272223097533059553253324169766844927804608191560309737439885017627897505735703792231989274122870529792788611952193848547964739693938018148502604006734669002066725897041303365633647140466600250749512084889040900249350553566652588551612695271582919975822360159642763721528037308341938675062616863546758278388722697021483951661295690482438440251230075390627540425208259987213328724618969387106005592493738339638265927723657980776791252826641798776642139306120039674816511347694929370301070307055088523489632792336114024422165945740783142661610501070707830782604561911590883008196518666231951343759353560493239988159308034101072257443261084051203308901733360916241963116239169698928851562772429749392756406964513056134471410948301434256917823592920908358409104573921630680052234674467936804865881898883859647824350654482123289923221385950297416772316174637414902149959705606818025858071621441562703734015725868348924471691394518495200952023513428269750505623848499018144942069553653487326726005402462700291186206333936666994014947668653542850472026891302428545642487330535395160516458012643787741194435079667633648776013847491037629128334381772085368536533644673575028360436030307820183565447547534190835164197977271545080170899763745740541980251576643309878070273796111650520626529373633529348058545884368804504400018474987900464438925950353935554539270899623550231530654752878871626207306278092267219763149540401093967671842158943349791166290250004795061839909064508084449174942298325887050006324904475393115891397942919936103673054744883534931788944125187670069057875761503644182685164141038279712971980450842053790100153390268564797173063342120250519249453031519629089409779848375131333066165308779065993674543990310343907516095885395445004927804359362743431496056904091844896353075212960626579221619000139692764217006043061774206052933497948753873263145502876445487968961076558101167766051564049218568754996570164793699832055562487136979946516494340341997605622308143859016786882786044534283844825733457474046617979479629037902288778627267797955863780307711921923031004278670271931768335172337538838863360352031579786435272683646386146345790498531416610633853192713864947144638259322956108196866691200661967859058948363048201953081862022166234403773043969401954572398804457114264413770746752641274279854955109247879998372532542914141604365765736016856329233408345901116527440809293934447317817031663126664285296722365471717598518813961515905130628119840687035579332842303514159147830046814945982478778926182443239872644669617385134470813296098571478393669226313156462097280331874376272252526750942006348108145749763712807861842477554156247099551165793513542428271921652399151824267718207231935283585826304826199809004328544284889175907633456870818364709478204730550283940259632125066027444076523823305702471633346498873776457927350705291683974631354494336011828850745238815555343207831613633363606642445058865041954095678751943721340762951023882542869656273136011003776475467473402536479178599417463695241972984243900486030950303424026103702067196715472963441693431765886551727735649351672524608760267229707713449115270776436257072681520846549889389772235425704880496573296857624582440230990189873669006277731833159417746730243337039212067489514644323333056450514353817219823665391951606691213174910294951587013466116265691295161787238360972446702265149733003285865067361377320142592738612432857717022497224066838990190160928430116165249995048450680655561786769828082415001472006401852203900290759331360430724325794445729941526879101705933793208057326182513635134266159674536035904473587770846631656066840921197753798104329545738408134218814962048165848781982542105688141702061670327700990334614264439293414789894572756663607632227162553248339204025000364906996640182580799220603591243043107119751484898628046426790602862611929933815524565421921333567276080136565218778812330246400129353856645679784643213967747937216949024179128693565817463116908499150385736438646729221505076700431135247494479449433754498826985482119236457017881353584991084658817434345473446908033875195815500656363618447022941057280771403621389945695508141940337278348411224901826739471632037634528093640624543829056493909281501048996182536361608631856304247316937450615279368009915283889396670515046008121836814156875035837113970735486029015466995996877932326973570428912862856983481952027377967607092640434278254828325447888451487281718581651760046937720525220890097439613450558888779201103219521787561936418779293013826192101364009071239770238663166790663245113522004633254253427612009812294558196545664782938261528261838064329363171451714282189326427044496155081877880333656138946009314918839013366632011437373419928815443785081841639335973713090564850950914712865943966650582181217244768699261386260726225593810735811027449805483065888882762628174060964242374072937758610048913944665322522301824353824776113017099154232840094658262738836540966049026653014495494519198438881968272753144958313024201338882119032902320660350094782048944550236215780254007467927975343970085243946665886153352990911225103899293168364380505283696347002665467407989967216595822135363802882574939662131615032725439872514517280772511953108566495769873680273073180547265648546782278325646673787032646663562377569241372800923497689863888533209345784828887062900379011936281169714994560524125916265895523838821697235397380546685563122327577743880250618503977143689655668786724595917911340255002536319125858108569712845472232071267944726559503788603381914288985671121484981343761566615652363286401441300092339422315925533839362428140961822198505759589351379421272692910156702751428757931353633668459916977425955835702423337187160633279733098385721296740854224668798411574371202812921267432409335323217208409061457995159982762753902593421919432546401382857653223713164419768519634987920642874553478828705346293543262489276152459606515415594377589715219989921460407977009050270704526904154784382940246427029437633838642707080428466795439250372264753094258606576740593915945302735710972651200260474546560989384893830968951445217992819497373075510895367967734201524753885857580210996578420511009551221934461180140336851463006694267827822735061612852162634425017501897971196407445182519541442983100006672505926287819209029166499700529318296209968804794636509550384441332356773911007196839762049700543807039016102307555663284381335441327674894200579632590245544155815720655501299811077274398341003711338219237581565264108685288157659325561512162875526496219845774746816169139726221924257445494691084875823924514205223915272579502283109004827882997514654798295879237551352022118010950430659976517858212104588178199168475288679167284345315993587434714284965069413804474265699154368572807649611857319966081635036244806149716393031564583116449447942287378923171057342131047296746394326489453655284511732528004143094973891988664646500064160307872389637106223170645506752745773048910620257782264545789981182455992690595101555147368212102183214600130223512326817314825702102998896944245296573595669909164830791656138279663228562157161442795658274989026049370180697788112650734924438459051282050307242565896348342847809253088867419617501744398075012628635664649470210992371118167621068022463648074285553772698969076421680179334093345851698912798454782857618521097650568324940245527644847125718859211023119432948690951080432076347193512338545635752645742785102023490903200188183646354414072333822935892775654805680051822726275543884167548133044823288212246135215230266689365434706964425606789530685399625728379258936920725607439688404720229901082040245655176781278635931650695615712430188996977003002099672080689354254427315658828347532348556672254219602278573130620465753849329418666820864165983605574482406979312278269601187205018927751164801551007795135936202892884346130364558203682910911455604299508198132529062039130149251281951917787636786392232132279609848027603150320489615313704209104361323809497668427835865008435660788635368884398833451559497443248101803705367689962469692626945163744485559974063871897519429084989523743665904937327097507460539661067838262275137525665011505783127375380163355809517685594622087696803886284543550694066704994308565383207989043720268190283204474095804820905599589189954335788611587306249112219611822886440954703987411425318975210900017962719834906424849103072382409488984585574184526485418023761865184341334081774556759830663238908680715320918264688201541319945623520578381915953241196968133859334451377023390630104752565311003371105499754326085555826788451867156403191712752038928851562315263661366120586972063489272384527167007956782375263943681330732305785594017595607465228897621826860495854500846989908981020182211374117115289619715917283083378792717469493721834006671988270694151156054841642272455621082957882525479572768833058620906764762929224922334336606223218381965662722412884760817468055392982668431670003917989912926842104893406253421268420309724418182486468745614025575296890812766706006717011200985472418079781200415066978453602249840537020851774164200927489040914621940475537843760693827212874537369598618404449340572326241129594357732816508648627444426628860936731922153099678389768138693246120209895054327910312732718025475269375592187104820715733003633086957135158471794797439145614079569023488293324922368018315377966246758960393646247232867209792576009721088732504166344533621412904154319008243685617011492928964104372836421083426871334672137490146207278049310959529600716830021174156673541015958334094606685482910058706646398935380539111483472803318269922059779471585528968204803658416979200938961160466437865411713092800437202944313120302606095637150792021122835519986617365922261548145084692581622531870546317069173387831178319029529480256735777092754725698209391147114343371143197023833620838762421539332223544227377344996536927049196908195759753721963392030124312437958344920465540107517005402022391924449832501798340554312106607180365684705683746335936314718366807632741653148372602681758418483631386578873076180895128078940149171170411881545474408685445558623198041009227799238384359468107964766273522631888763060572986987857248007983960363201171041002787813347497021809001591974423724747665333648714569524016844406233059596652321858747945663556053825714924696692650390350868439696872314572873296442403141329416458192890108109341960366796318071855054737768996973653087022871092868949318417149078954180615535584540622060135764447338872724948909582787149323664262057621182950737739401283733890229472696551654077453887273565925953484549732398949754314529168020027029479891449302174319242034733619203264310158589100965880654727302250779341485706050970474959209969582013703635660849977582620863000861421548482816106148315842565955979606123105798132258364785754353470023138730023153754318033486657072498933155098027533378040687694625921055581606373184220882050501322720757082289061125302776443171785285234154844267376658114275484532775231636609497864796934399361034693402218204484480229342308125758766452721924600201807603673943781863645967813776108176484837653508126612722492788871619771146309415479743517118172738824195960386098492731435375982611706880814089370914534298196275993437375781688463967995329206666504224736521989839961062988794297445059968499619103503882419801512511172122669211242878383721900619129890470005004705999999789329085118549510032435200857077476014802005468882230962687832463176660904829732268367072732348687221886386723111607160785253791702394662114707992436025144574897893234501657174925227442664132689822541831763469236068402135016326326160523487197547572667729067623820316778340952221650450194576427102383962396411170432194763006535025404236825086078631199839336226365355297380100252825675622088189463817674522064610434666725915245658928223285933922880059910712378565300204874417267769775957780074196149588336407845113742406177789605732505715936118450073262378325003588083044750610588747478181059122169127738229775711208045012159858580851808869976039754062073872692672460928512544941478319133225965020280185631589229548372679400803775441064758167201077551430367115457743473472219434589801086675779083385071022726010999264875609407049381389911427245988172337162155781488683361870004525776674526245171318690974128319324433828650156441016924541737906650268992687796168919233802567376320260080696606634431667920483439751432229612213353804713766220519140116281345698162167009019522617873287327791884081423946880328676996205653696180089566195204310263256149274679825715512506091533318577086883298436887657563357596954644951867362473785580136869985480269874896402613073085497505471442605432836918209145440218629394923074354742905019491097074722027678121691219795255879890226060744688241118602964769328719405066228278760190584342787951354730330166550688653245474599887995345429414255154037950030675052713849060144981460924286069642188445306917676997655153305414722330716672908867878389238175985639052500800238364015764814776193428450063105034751596595713494009274597218385492177424615925861811889612021290769466141311683055600597960036181563577512844884264096759928538331634508800533293230901313597737557225888430477798801733108397230878987891770738438990403499448426074050965811920169321376653151114909004355732611625288207251059904152204280431511571969994393135042010408898033151997662168091246027848991777190206160678630916955186989529769865604010481608957545768769532644087945002139132848434153297127894178682865094013849354965478086081409868035333322703652667049793406902824177649323502948778960831710596585242182489010797813655648701760956044644167119580984763703011106779248992677386401933934204714325743087158603115746415810291087309738539953820762761939089183058766972668038868236801075258100256148894776522778522415043571906841779184897637524605911258191864329973994032426490907392004641620780548500042337913598118917832232330473408948167447177896071889865808869101615930855292300019500099879549582347708217023057139594827756237655566713198518187407583880430224261453629748091392487316805585742796480457807658223555330035627382311263078575901581627231724490135981398153863486251923853764151848027953707805360610797320697970162168266929484784982301538594569848856579190860876655347027711821136873326415711819157914388537464967408131267962437876912797848284641711384602399024235022282587648084543641067632611451139590963887711810553969306579503872145905042656009326308477164439228623714504240717405603525052248310140614924992226462418080834722956284056206307316206492840865548385401174495920245191526890231205603564161737609783814791463929154473575096543409870313950008252392740826210168906483729752609314012704779914927563106324470011791901342126955081380246500984417626820586509515857249827359518806056199489940571241544253983051858290178755555941459548022859181092912832504121783696969705626636500349537306400599102343181184398796488001922930687150072491216193846910381962373534548454362857599935453951580394883937937730966224076170338708695598908853689628514585197784596982450126297484156911901069104167306656690804849167173520662723720178736209570087501322533587435070442150401189177624142555244373582121384922726494098601468710116730519654016831126051776846833051089007238176790526145390194656059538126382220679954322919835320514710980319226637476622866736392351928186245069323816397017385930557859755267531463120187862261365480993053838500491568747760074660562120833275623429605630453216038712126020825540379093558183979320365333567175944189070473358342755208900047840914237419517512638117950486153592902244797564036684396478904133915269390684575871979567391499330013518083571126063151231256000817250584144605907132944005353319506572260790854444034327239371281400697086935554320605337691204198651023126300146094272625930680201694136273498515644522300205020596484731064816233745304486400052655815546895683681025717499305980567897455990783689836543143568312161666046632677360681999804335206750641554765556521115431576811612861912393751293712033346287350528220954614622055671415856697232122956641074549890586965332411865688314703940543666233456738185809483836868788470403343506603699568889904442716208364594667675582268439949059331344774198058476127843596944169813380732435093258135762553955915377760509394389735148209049202867795983453814239984006498033878828863869128549207711154588712423212785755572362096347286382980594580785163520762746450919686248170266344939744027320882590465387066905829159186059551503765270442154692109526986835163074418074404074750235706112475425973457879339939242448726992281457041943409864799163933668168917875972904683688411038259225117695186454198526627929043071447325519802183128882335565426062731721811958266465700854109130238271058719096957359090990731332959088539916580304584970622687606198117925896583316535327282140327917085084296432365145664634478072476462288441266058374671065744015845257153733263824590784520858420774619602170290215959740476311056251499234338598107965251918067216519945214124799620425674136618113542257616256837761326923155305420982534819459058569918949133451699179246108797712496105325709454679483533298022337842385860859373148548960698362595411281273906484885677337663184075542377195984599381817499851152029951307105354325595595471567420485368994711767594701625341132273664781715532520444021282794298784742028758703757973255478720189020043385313552961743104300513639564616260939675390844802807287367284244065974575939364133996931232448314269522022301547396942917322473148479731000409749061904037291448751472286754431764804074844149237103817487110272423517685484572266404397425123986916898599877002605056873750554058139594526166755281683324350102993260356455148239192316599976781517336804601117511882019100392646233088895332947229923342727391176886969056789876109520389222835678430070366781610011185666277911008769549092437478458282720720554710441770715479853208993171974266990205050521387893675376986594915215154986542772442089963649039609746775041286042675626767300423357521866873750395184988973431620366422400083084957235465871078006043228064632928862124108790461124491321244091220686511960045923542777741640079304492175174199898565316273978514414856905903616619980086908786630490255884250233497846744149831246490004661981467241338268283835026675821281224303952830832577205829355468821999823046826319955708329789815831986336229006691755175955416829500628240870403619349303382664852540204152472228752236204679814684938267768022336177011741332060469691250228835827378916814405622441952341631160339093725462463910453746133128415002295695561668944907250940933035554399314126091841265027491224805197963701739226481385157636626305226699803612058784705455286842991850980298960749254761665934843077271357418128709786048527818138974335892702763686747914692393824866376797893211915184184576210226515778157791161526298205823262073307112627508706982402389373345070636934346576451165353977430825787049817823646701190049007002628497187640827008746460627292392842865868914269525456218283711880372396218344839170529099820570379117143339623273494259112587892747786525900641662617078613980162126384460003494138172012850572810056793906918075823175812324258874000464985957138180939070045662873206168966252953935752768515871484166284887055132189189634760270831508499778073300879913715095533410883371255901708668931544387527859399963288482825597047816702583269405958597421227611673948765407668378159115730917908120012914529907617838754313374141472216953781133683632692820687105139540336695281781276184004545348650155041661310081602264592693260630578902094789202588218512010942618695128340369905255766543764408818318918232369588994827667485321771310907940605759934329772272714534076627730722287130245826037813043841302891251412603650952349741563328377820885905643593939065094702600974822858259008059593889411567872381203611345870859825194851399769412514688379528132405838281902096120195840419811179444511485348722916235180540039002475004847246985711106849325211180332564270410715777409363333861444381141246132325667047375382144341180940072421658922107503846327418960437849701614155175898904266869952596583165177965144610161546781196298168437349318302484184796038487033662318860717322544193332680276784576008923309559383901926600243919510968544116102094495245081157696631546280871941043394099292424393116491031278061039133783200109096412486512843749698876937995861995281097552554464765625654508124345616510629484665315818890830212057322905162154804558565280832682000676176672708767685039538953621871398616820814870629257714524042907782529303964587113661504673798770124961678364170203043172548311727364356104972859432202875700149212561557186124177503323328119019294206617197702966488740417836712505066727836947624958125106402986783484670642156441968997175736901499875965114355922369333269666629970074960674167325114444917347593902963380055379653669339015072805517210351119632237263260224078184122150671485930996664134291856225528431279335845455348220521610397776521577673903521909387593976710013224415190632478751330259151518208195305375853288009908141038114558604071847646733636348379453409897376947351766349399745775749066525624474959082278475159486351994785371671535538924817900571547101856928024165110453040436501070672248287113563902454076916232342661041861435491901294268894114766397745668786630876973117563736242177200498978550677424462699813764345544907732287414757425261430972461886068653186080216295653250516773037698425807923402246532121488403121870623642017536877153154409567560010160328695800619431897799179907444238443802101871588931084040126707514627920074565056721349053601131213873111563158678356388439628470854340909418910637844884448138271431422230367251862481875076646087340137152385604462218479311112848728011777352744803242939381016067165960491852988020425925390010791297221374067678958481862064510109429091423055970886866577913645652613326462741751708747701667017349156618803544489312975773598815086125298086138346949660344442809820251699937063393793591897837065375271196440661669085787317539736965116648881174773934457346318531806565167295647270673719291800790628024675658307235687841229385674026508574826645896357618640016969158539870493287225216944934093794397303844168261775796707013101301697138329772523842419349823628422477465532092298380113561622527374294929925389788053986323675758844361311092122052975610990835543138177942585287581640711309944515847575933204147824332623403500389053463168614724823708436700450684776730722000903889131670122914109395901759735624049353469209296355255030745761709649198971998151141174630483584543164858167672743326919525557193557856349161482540736836225836663617370415082576876048619109197481134063449207595842001952015234589674600156238138357292180450069035155542005735073234854673731574536075606783782052143957190578478590369093053354920537145612011271191168176458027417254097787568000437739073278102059299725793755972092171514933957205007642046201161279397066589490798053345423096697594805994474010099444252390560744925938094094417773638525222072933797231091751176148556376528714386989155851889282520673533659471118746451830561906338708570031532553036354887460870786729854920780805556302260826185669102161214021931461284605563778763408089112773113283068471853339354564332164854860062214849936042907774355978324062768340730190361695377524606683232842167997516929039019147915653508268654487584050119067356297397484549778951275365748375057335232453150981963016391716040086954169347000501118058352702859566413322677361212592007069065481897443822713825858449306431036215704121720612185452320834472607026821098827223689182342540166685479020913395357389964618070420677865964379013773271247948382591740504179119934622050353544603066224575710429757798842046701328029838894926911254275554959034778276223064839260213896101484377835703198183613345972640506810791473285898445857481997465657253552034935954129847282434815498713757267114941706563086942944096322523706400252090364766345640406356231766790627774712538735561195935917250729267707480952418762744765353925166332400460696952297806468031436312755921240993675430426578617755830581955680276693977885988247015444622563822951212628993924727926243862658480981850109190639167233461577623055069642608796291507514178315950171049832654762703947819746279300649055596397926414690384855857261276712904942916274250315041400791053560030468676239634527815217371394231973121935369791425577257736443900598263215871522927246465256196619168886406059835201531992830039801255806858393022381190956889786795685129528122696109404003505797980905176201155132575220496625437730627041258155916540726296452439096216068222539587707635709014945004523537399811336780345666189081927676894446211448957329679885936038765827943056467295015284866497124363985602448443998905517715420648732862814113961176546622973551389972496389685070960771329270521039986747233657957242043775880202067807308901044266940510792546049541996425173935220379281610416322378171224673730473008721652515074602593144543752357089535686451923139211029801965520457943500533644482446068760709411112461170241891708678184527116668466960589579839603588465593070482149997329242726282834683018334769889946489111464162920512336229318209429420228453338584662998525866424803921219652026299813382925786559758279559967891186271975605220189183940670565690842897437388762547382070878530132911368418779455219924028927620648381853196502831694307506086941505478273383113107877345399351151530831279521223084317137259680804723207980888661478338438003880954228740042190197397225111051403958413228160117456407037900634669722773838973089612114115444502595452019683888398365728959319025312629637279330559073631268176113389202335551312355617495017677579125994205072936985109426078127536576063608309166049366630989608651248574370411199187255441832908023579634005705154125610221130949587952835483877381524234154234658398730016526419110030657244437866768684101223595309599432724747665200329244500761779441350799859170957380231057477642876042651323971290717447906440077116836808390359942195708762665685400650584437735785031482027332796863320411954572339036371934749539405012688027094894874633842404719316504371172104990732487528404135405327370603899508843612143498099441005061714803350276976893461030727840074336544874943464356971087506953609078050994118803393056923571353269946543564220730585963071561253726675710383584671973548443274361565221848676872556188946739996795364996385385379337523735795875224796263296981386634521908102764592069750765972737864145616163883386989229064469034325875724363927627403401881573311245539962986011015663776224934552924883604571279668640747359606945922862295652460207694585750675749411888512554596591078992166366595068980808083584393876583312700841106270490959626087890907149449688113035588668575807402335005795379991718068910207919851346933231475642327746464419055110804845381563764105506494458114636366364047979589478126863758508657434147918675771291804140417471140428815953258843093585068547232534066612711918841975596816903117160480043138067682495627731205907520142922450969520053123261708908224620547650781239324852246082709646217869262024584554593923061536959928977101274449142775096490843750130421842836605648582073428062224683760727545762899647017225087886256683865635513135006760199211936187243707185999374656293079947808971704452900358137994813998460965585672101709547679618707634565360655661168012793898474234856145817856051700915607190608570304259743593601884097485937002174178190101955599976276556021066957754984435545399979413886114056323492465286146520756417240922628369488989335843035666549497142037634850973371325766154532466064492767565355711249008987967238032640019675091371998779454723156882018125434602754859259476759293252047808702726369942314966825069648054823340334168810238006406569462193503293302795354130315469599916332260710956857907615314453271302603327326123426143896611602662712695321596328055055950802604297903550272438946773435357315848405784640386190801107809447527750389723981895003279487440883449713916228566454888104708238996496031099827755755031239792668860648408691506425872374391412763018255848761513758353960112442185462405540898970719287165276116097283313665262502434371858192781921539405428555336173153821974752582189839558100040858750252526345950140863466961907214038205842605815621276214558744186013013358282338581252624542942883765642180625092387892108357335962250375640659168445630866804257940781465054475497952739986876789612832398995851121626694245085543802590981946322057794790630112281499227938940354842891309538433129828297930157052880563559957436510642425884426537412623065537648479717698297044712773722645261925484024035407795423231419838325676794149233066956341018692099411254765081046541521199465402320944585652983769275569184871109026167659637914411739493731690536116242410709651864630743961224985808286086314844722530748851071820591064959985557379158794106581120949391535265001627929545587188212612161015412626948170144885702831318682164762498589006637742698253255867419970127281118828339986804759208167255001069285576264198590963405494613929767575026797151802769312093286122766158870030495386254620242401028575712143365178341030490237571507199024764415400796684613803272281692286973835141133475969561258389360756363400502931934908618682227856348004157141689119542555779999905568861685547886216358336217727029932884391634017767093797919669958349019658970288554121030346334729847998996973294453694985077308082303956817235570021253209657567316473702757409110658214850292962082535064896351431595255163767746026677753126044279894933239413700020975111881656233880164798649163347467709229962549633520433195584888489309756963350930252215393766621654050103989707891843517804130289892621579186682355117289436042476578108143218169347117942592849804038438362365567574055356307333293482961002349936740471786335053638234987850080836838256294880741813460218603154515528066701762406531767521519240753012036054894685309868544597192553336303833300326293805913471970244373870651095041399700662656713624808571595895403090819172346568397465082190466523772891506004388254242828365975492900449005142773277584819962611162315550387530090920815973217405453326085874019468265857286039766814020669013547374914638471202367144832863553911396577018465485972002521357831253639133698089405853995533746553257845809285562256987485514661374363078570194688898819058611347443642247883948964774009431584738650864872336035582505455165211309352820364298043702418935865712759911862212245696727169381794261036201486995793382448674145023786853395175868453188684130883786210183867861197424591453435785659199984619260644814324789944981774437645450601355850139765871663482588786212962190513253699885541550860878968717967520857902888159989421287112017055434145215571096940535349433619734172669650072270247932008290738834508443478808154703975615052635010351407789991797633339656453308444384136367211934624076367385744959535259067402146942957938236191297665322423238530994818319477013155489133724198252076961526667330191225426884721814335482926434195944873336972764716636561050928407400914688749321961565704519029513678207407812857238367439524872540743303106718429072857758333628332134787899216678228273425267335403583140384741622689208901574143957283054644123107835457146895748774710922833104384820512962210400273511486528452898110905174657637177123310902371212803302951538473722132804636338889585629297621990832274474488344801611393741947208084056606156843103119589945264714055051741974001446112533129094650476274265953757063181296489112389004935445558423304803807846339042945274296428646477326544291067622581324921541025723858282908024900951980788566164902779898350503290526442158866672839516196657051405476658326273088332772387003809348091680959474664248692446821634155248752901589676384501797876675211089979834800510710553738113631264505154531922268671901088342981430868274944982525249689987093292139162331312520352003354707017875838174021076721014783338153461017938671365552994099055454956197432354594539009871667101868821185321189605687427898949628605589050110752384589726862638689687731879446763482830300421834546350188766025183574123240430054129685977593125204825425607845398824142248856953551022251096873193000438262927427128302398453372466552200162348327548505317775474798782022368641009847590031353717857424540732241589606105080636553523103830604479547249449052340480245038032527145452791152049723765537512428287283983752147817603597351927391057789851357786936414048774997036845610842309209005869300611952754146892005499505525364721879402420221502776528169643994012194864632404796949588842721127962704348830805322804605046880115860736629595844215167451005891320892483027287079292038790359996111475757323597214854641068132008693007343048136571614506079658406135259070428745591471474086573879969928492963771543524329536929307428556299212811804905356205476591040656097092718057974169044924498006359955084045088670490117839739952149315529403532866724446890777870978930475472929188436908140443574497749349296440225956818194844629548377075902446168907619087299976519039051197020273426843813240936345566446653608053976731641768427988994088029450114155797709733868277877545371368046037273233242021572009482558485998162368265065124917656555478004057124785343256030396328664041346045894265902552523801502456871403109167397369003938416716228267097920273142915660018951155431759099159457755562810965995813526646894080711070429588059785076301012520919161131458279573840173991399540311439135998249085039230774263258416804677789813083645883635582889008676813282157350210568136915854068054492388281679108774869744238914015074178708235563032737162386126291675560992419280251773839073327285625845245367474694698541816844057793760895364799558889358157434005064154809693478808078423586399865075502080693380292667687930538414662122937970425096971302693561583973527875676867141644618253006752080468372116058457742699512192269243639567526921567958303785628408249887148754033539684113064477152375717740367568579964926269437616321729321840782511630756519465421725201765849163604041815759572772278523447696824649573614408710593390704578608277830893863143203031988533856692032461629876400924075396761406309583010954444617245698398503201958588302186898337492288984801778432001605593544452075895080948601993221329357508524904878345614941823516544294595184684775328550093979327528207079221667749444755455965666448677806034902446104285167887510845303531361287717925596177905129712532902545125211606413200069844706295509781231952553496857465055856508455634152081212606521864563667106793636973490006066659201779305749711474388751175291432479420184521599056979261100616662874143911864242178337175642353836648515896756598562293644987915599318983567000181912391819059825810831887221289954272505706012541324571826992212746862917857992327199321909427928881075270789956198279236983063455858646488066588461341638409041154330519459102309103538648693107150592717071454675052503054143859243576180451981439762189866813368210791759705074966358051162085707771453338656527315796746529746115654296647591432621884328491390917437520214147757470218057304830777270648920754650915230411105956851734214086453658862421205433200471368933685640851596451175428777001081833461519066027556664262740271526247889480270659904768477214655339871619975716554450635857047478958303994140984018980541302382264483337564690200061231331358884298444009160829384876176308967183289157602602852812020091528979465030424286299018907074431461262146012516258662052405991844401813974512566183189098846181105089681932028168695254204659252323382813305267642210834411196983819829210489342640334751694042301401385663034677685905282339741893581368253020727436534373417118121581427928290729600408170293517432454366125740150169722746656295025361002495248285259181898142232451602280109851331646906725470315693409425479647761177547788526028669995424397352752409834524623219721351962523699463095771688429151386234030420473242137695907966245845047445593604057693283587834816447547567192120249696480265957735226965528056736235674904564160900700536425075536480046380818887580752057601902495559989863704271994933791296204877158632058041185006257639137735763963878558743956434275429180009759823624709297223093768264730257118699527920080694197858983569884544177322978673649373214166832437736565464586183327170174025094833284304798909859896831444120725469561345585829020394779576440739763012307912429326919221340557318777833579904904570731654032253328368493887378590553202627951728798942598213128998090559072388073185305197665997278434263452943399592192491171466915950010407819851863258200807877599185322794166795477549726342366035217282370163886928646651488983153644269071699269431596220512149836417966010924371916987160508936708525027655076862818349446750163105758826625839773340715225104703447612535782836420193945826892270400914771531448283737279480002292350614510906810253324995753345524250192795847348938532313322758577468786532201193236219127712031222095358158259331430227087709223704757734503522178535539344110370131464598139092421309757840999874957734289975338322409791258145415762185125181119052671835605425091369125037351190336411594513283103317809227129563673497772802337665043257079298556736415128773633274533524049564721014725728506937675940226390644358745253727527117020447208425784814770653761988649646624086189753162318393209071623710502051637580708410412611627622983085569891763651031642056076954643917359043261816937173360642085897827731286834772409755391287639380493449478002583732783355634846298608127051374465309867947833309011793347773862982212669625162765810599236328378492909529465940239088290051274463582169856950458052768397240087362606548661577632341261321561864400006845228240905359480598236437390262372217400830060017075940643302816430118401376316728104206023982166934409239109991090892991346584712686073403637692585989332435094706690670516242876161563701046681112417451109055104468593827259789146798162787251610530846563958032030031166270716091810242551066488665877975887488307744955972445471999714624903706274530280013886367934081698185516999482019011300077299952865919079287625085091477637538807800600367649034197393555907262639953169687528410274557367583769755620754393002661970934387400173373055364047077586004725592551652069754830878656142492814598527807745122600831123242074102083619331878550319591345992326528583641155257301870007019632560493654692955547374867641969133473817638468559747559917318453968399560446033273504194421826328870554867062750589896950918281782876470684963898684268395543876395784859339934121402193418681286422617518666339391984344473933423184827627287516642664914694463717320952255095526845580112221772944043084943393797790168057035447530700300479166729196313342472078766931086484905978313370042436494019072135526231333382668298330056997611730446892054299605871545265774498394133689655016568748853552254592607765890025263697649167044914231828022893002007522876782283627451674225994110396242976592914765238729001413805977015535255421492838292144310603871943089173242154984378792893986015700333189621784670995721628252246596214140489176549232245468535262977098657083959960386713873674605933311866481412173487074725374721957001299686266794516462992791009150941245802933801053969936453171050725222632781159942187217582708808606074138329592128924167831728318631331964198070234509766755132099659211173302640901050698629776439416454958788122844776312074040415292142891989674916614253940498964502240103185177529139677936686971830136375456520342018877008592003331767913950566995181735200133115743040707176570055268866271776228730576229142818323828812572059509388189192080289620803013636012384235364640142693436030515280753129043767223966307139600899024342522902738799468095405751701196255257377151536151854588059353375315509297893434841338719335857328423243383090752759822794969356812972948162392662177544952818287170531945030844533144281766280287922315173604864341623427143338347159658575509336601647832700828629453292277666874846289379536409879503455404195085025852141964199763714476612753275825247757411184104299411165253396268391644196847865727020156537111211375096770715615628788273886966684357294210831571150708703557691937314368244914904777126229097404769621594734845492119871792262356984322824056847178490917802087244423520146781925770365624190009224177356644699224505008290763834752939117135434717220636991113592049626822896975086583250770691799907599286080995790106238415180029673012830026093603301666344277732469234841589038346548112005337756526447631432012907462185325055620074884886782573534769718241070321119283870837282952139368221509918442635202141542969266272794500697272763752289350669061542689322973810658029045516672360452065651281455888662905346060094919637850061292231486201039176263029675595237659913635095467226874304858479180604574086180309673161499989302076942745534273239445027308423016263572987658055685026798970518026008195419743520337383066136799142541558355235515459653526024448981316508872708065658500045457648567712034528534092427520766629336963060780690602826948434297810849032640136511321179482648495266723763584861773154318379696917401678858942218346501738638830992393041268915211648143782278697190860462126784675923010548966066093955640986869363231016306098236827755998316493681165777743057568808623938349446314581893280237788856914987744918096914418251036992887692728744072205268794779534460772547653168177832667298669193637990223364121117420868847480982093175775604623608328527106425537146016352154574881350282130692779338441425303758478070061784085367148568921848498553885380141349288926394872989397061874557445033739090868114753191309619608090301010264170315450672788308161323026140538050850070803489650274266913067552939940539793127742827800773901275062639613838250734900642796882379485766705103786776764737406745384618085252538370797173194466055111009669686909713617837506309055896747310869847062733196287959552354432712728325709779360017189156591188480410104363487845049498844415659244195829950856976689575008777023998744437059923801650138737559631818772265144920668949161640978737179916082961669872591075237752931847213354421713403099794471066424962900562200505266396445017116256057649884030090411537526043136154594004411235384398778043660199498839194788747161888722131742342147475966396799377722831267996064439797428473683165978473299574372302944226358247850891466213609192272471820712450966046628601579484928213942484323541568871657042912456027883305603900025737163784044463151140741448023571171013989109967370026855724731433474524922831047435632390046813036347532570490826311331624615459923359754845941175854071960150162202939053556194979416027532233215193069189302187619575416323783791171647386796786326707837645364851941253186183164125324704925170814624988737783176397213590250048321639416875364626777193015780829253702082328826030632429873549484973853531917323599940328171344862119316267220686855530497326612427636055090082045807098363309338914852801196595845721248398496921091191142865804212493143245927323542884399600376693337185217085533406509010356728660394056782995934931736542836527877200314649255722061134457304684126834603007591153178348622084792530986337456603231045412503752351562618091479828379736935793053811189926342212064114030856162112969969101555654998908307110815721898503480380544390897433829220005200928101378117421717477608762188425752400928157992588792039792995734272185694925746916003477067773826866128817692095188754899903303129886445086237395420917212692163118223479973432111062022392891831562047404038149161735222763789098756524106343522363955183910343936457084265444019120935274981144636628343423397073472488627278228189186683200603548050668557954348836819626838592652194273878637851301131066878223095598654230091519299959717749760940454315725204081518374445362570678433017191917198194529164529300232932429606638733326528875882678950585525852591688222160504499771581626194756739681224218582131611544834487807332350277074863217131981770132985540074732862859141484160566693595807931675573854044022370691063809654904787216321952133223025018104795434388482260301678808817917658098321731260777167239944141971847367776572708900842355705017361799648575317166442674436356212670330036414615258646115845459294559015783642952638231879375681962266787153455984024892131110289964750070332275040082676327668120090711321102334050939891641060167025772022702005560178226280782792459144794541527221250951570243477450354511584234858584577402199615148278897801171765585822819494292470240420351300299592071237009307938674244812069200487412692101921001023787662789677755495694767045814753028977592379934980817945635463416503331227405130551952792200349922084462186083996153972674918763481612544602346641684422966292906962872090997712833649835502178536445209573707991294819820226791814521285739995905920126459760449693474884978670002079564188451883978242626419032412848182609911232360934409549726594093066421115802603544711828398718307461845318605455483643564436027990536638198604610780699626410618503030701488527329886058864684998923795854003095404760253755891683425072255545702271139219658455638685484331674425693821172128706996635792982421199149678386986758063040487463079060796707352490599045150705014165469711832678123739190652695214939918218189957599707647958975453962570743942620237686324197287373954988212986424796039114262752000890426417332136398150612461437491241711151922982780857612708284491838497524052731598656613820408031358136389738140116937049679742413353339953245774903643151103672325753081857139342345805342966863177626455397295071137432347238929588411214205360420044878164041301749044551744443423421240637573650220435263713340866389698748290541251644929989932478281113018554849047392997066824588022496193777038039425581464593461224829772918614223294160942416919552398776648880548752167312511868570654914742732812029278806868492430967958516193255825760777483124756596608213382786225280499670463142322084761472597820898157177609679678349679326700233265827077327546666411469157611024589035152260658186245885270981669992993527659864069806970058275028022834879781502230067034427199877920617975810344231780989042525969031256146966197071483891255040637320814512662138486980592864721029896191942460239922460884025978492562297318752272035106886024599871845882427990874444642333334198976022550521906621779137229088652090519162981978836307826956628515502023573795322375609706559248371883291116577920963061622395916834211717377765541720401551217109342773917595736619543431127447453287237603317959980643453225808679596261852403124632674751202358244861910999694420303016228833870186528688855445914451728554708105317030020981221296910294026935265170544169987590985535279550821753678530868643768317539033878826593729800508047456856540044163158005941770644026326898780769949417371465756825464489143384915549683704506598230192999313472185256849750108089480956473022832930559003041096485029759731216750390686931519923204192794923772775355289695059348489067069366267392054444541730078971906216529448426529088834376282830429540782596268164940903396582931714768765057246515990049448221985135523790084323205108604023479137413542113410835298498391733027780587133975957115735032906960605908446774863311245878052943921625021956100130198399981558592927018383593378596407304712104254385697203283865981607472302864385452898811005601654606347819179897988672997241455903734098733781905207256487216451945123422124049952298392222560900836140410165325349336471032698153960079326844639869372999839342878620734334620113375008382066859007935023070315057927135029200782169457920290691074068746436425488448842506838390632020497433123778742313975959022063724329587542366408561457900121901027923389958419887467989753679981678764885186937941743986688956256257903975636985373651217671995118345335274965119603052198030896503571668340681224909733169778623306183137060775201015218369868465821738873468716601257463792842352927218447985070275341546326585980297139197610762675304758431592701819790422924235241277404152482930970957356477053026965597925466702861296910144788808410078940393436306542148631231670153023816638893235411646097255191250934826765498983918856460970982263941966474925257352492162368243197855197891730953616444369320165754056306932409949694848482202181927801879241669747671340863184834163805650536571434622160535585409100127784587902287548488104441609535246699373179624480863545429341157778773005639044955121073127100644651564799828897795719434244276441319922890160343301824651573756455306460022968123993049667855958228205879062778035170823855616097796170159090721512893365964192271264982024168289439564219982913369537228136778419034101093500223186366100729918294261576373088144569697147700178941737276505693027363398236053442468978821946919665214438261594011437922254076915095091491875435818286670579965251180227499835408245033959719768414350946738233017743522985172304113688251020664041842002155340718457908508305062423879195650558428052920212901921248860526679002889798692750890971143650974090624255272702365653104943093274386145241798796365591213481663649522810686355163297145330102605242308046559430087642503179036033244224933001992135964372755586890807825838288524642732788747032223734930527507112459888150031224191174904420854921539425132560982109006850070628736208980175332502727873423244835491438248464016221442554308811381741373590759496516816754341398913068242270135167670806861319682581168867065651220574340889161528839932916728981673137397968128366195838060176326747561782666074084101110889323029843546308580114971185347379619572594867365026452239030860532669572084262845503424574429020057871891451431011670768699342749842499069617357976841804404490958986387706919857449939204956917560591948031145147272764965190897273413668882514319433796856415466050151624732171476579359066821393679446248439383676234625771979238375611425908095001937291149098189678556389371695190472520844605190766252307853117510544215717820467874536473978374086027412380803242881785968322349743072244009581057313141875057512592337378111417357721611368936585918858070633167273028292565599823095410256087083506105979822994773639902790860338165574944649461736032629654313396823908393555490693265749610858798956633649762541762335443039268218562959966994929587596324822079528519767350472575743189766655239666866805188194128312798408100622062635218722122801754111365713773627481074151638709434004185483522784265603405776561233331824764023271632984421100055155533373497128705767886942075712448966125358372454916454060364204554914404809888933268632643910612016630935542569881242238366780295722957781493055236350217273937747875723551165656597217560850485623796196726166681653724961421022505925643733172904676846156311929678397832316781911645744054069373711295589965454576835126995529679806667477919506596268072817692468129787179844040545740870761407621583827928632798879557452634390828211692160413282193171543914371297590870962153516065359359288406626740035593883889959289613709799362434085900103915568388514243138178297925162426627396825373563646963958265174231375130308994293153629694040641024371948770349205491397622742501023844466222065076510070318969541576528545700882159881589560996609696224392993088222174233772442926760234143911876376473203120828473725229280946545127558715278086802947971862848883419382469783362401035004464604290361050455217028432652907291378631832120920549233988719690734355950783447940428551691103788347964598399271867269955086910449643263314469287024288073789483946960697469335514009347163210724979982625888450998662586999104069032270508127421645848498778384789635603617829727783671752215091038879729347369643314723796511816381231182380274712802667900520019917727458951884340393528305432327425501232517378417066273891950332787711448578519193311707393265219958509828245726295707701957148407856257544258188105150341993317388828538506777553162970156805303067541101755210013957901191213102441525553868447708566351776886984859191509881013351911391785677106609877445380954556128686967025487387227811085231794044700755605384151670527860908900909731549671066652604795231609410928487276753345362310218817368812244892246018312445644892794788819061823328737548396420828382559059268169429142114354445686281265445935550194191339264589031489971222003985782549513434033345128442308950156664384149703872329935283622559610913117039640231152003320181057696270658855652561390062891693246069234790365811623241902318456709644487299160008718919106416915148399298476939988767572387308292724044623333477694058268132774704234862073119851666401531830095726518843215920524006585522042815199382626373177155858922730488671382198976286318257778641009890693705325726622066793466581287666502678757373634761585878776239675546464218942679955945152897537737530807956901273592266921411415180881899409647189268850962738267424883629208228865539522650966038438020738398786637534901390749887502483720372813028559016350134844377555306538690151146721863075495492580283777475775938828483088047133264037997444239842250386693229085865876711811863864755708343118461028890543510990437998392993463153467924889609305282205377917593768557461592888318367862195485756430706187952395136895874993893996672046030742346680128720076762358014873027735737478802850482559038899330621249582946697580231209697455013324967944644388429953312373392161844435375935007315935031337861731826426615887844857242030370692295823676500504601571127990961006586049852847791131306659649617493992316533465933565981105279763401159006481828919158999667457820691454305274710739562613318758828856041461840293132510747887908127266047118183873835148785304639040174162915532368708262936557560395533340986580122711061337078345985993565051218555518460103686052982660013292770455918849726549248951235651551129881524047326988629925890126965326690039879067114863394956372330451288168841417772888204287232092808220544002694850497599336271384733645065333754071160659294258388310503999432147695112473944157475626024311280865212358037307532838187208991048163854745257240900325326299032766695846597649646816273005053332232948117146617026000145994829446194639149322986065509245220213216628570440432441451687192396330438346914776375169540332320101686515379243677090696954211160316038903194452091376183069606822990383267693745670174721644577985402964450027555065623679522810781382603742037139809785702081785442795892912123530175310135477837981569728824133785159032451626849420576494480578109702542325113853495114968737023840614344169381422019963103445139170022574587870698657423498461119677126884169363397877800592613783405228801785194362308946906152007722464453613339961254259066860494482709684415937257498690710768527524934352942359625970824252358520783033549510132944387114003229001032789522613397529519873757899037269991689142764340687031742358949698062127162611865971218421951934124147417237654399041689437281068500764313985528548235393182927290721852981907426448494261454361138609423300611797852146244918065071194700697701074237032568557627653045675308920719165104142022373335441128737045890791675515985339936971317214735811298373336139782942431381780988837353501196758237422748901462561470505943028476371056548031257065464274909902421162322899814217176313514453540034110222579343091932722007364701098034303400050539837173488445797982725170383259000704555035161239725792301732444133580727570824598373607688914438820421691043705439493582490839098706473171903943038209762412131837939474706730364767207777845821180557441932895046782309941154336421413400133248688112489752622613612584755378390335491798402293470674367029838394081162698089257025832203290679451805424138716288593991060325711278507375142438579537694320675764936214295009776930254083703976247376578540815122327149810391137414914377783835947143930475811311685177613349795861979615146059417805875302147418671448540104339731767290828323716191715321935241442717585193870949509670628960292328166176628710597623532807276019125947075587424442016835837583151610073088936366875655296753461799640517002312207380865840974038068929638455608383846185091390924623548212848745722090586331502287885628829220742657264916952858955454821498387806667124337325779033005674877260315124524913868379511217541802010896162643311535923968302368246536539899333495017633503421619160358831481159259992581314044207746006984171095031064845799501318374050279202302401020466381410212273092433055781584409080721004374795690087650917346048075261856903736954248750852564986136141699164094225317889151496292411692436488935656071523581028691014994178716196958993272967422717756662880187727717531076430073182265613087246724699437791666464469541588788509578759626300661343479566672608037729661820388239052401376185215778691897935546909474183335685648233986912279185836368065381043986106095663093278744730542380588538494579777246822594396252720657696855392810836745319736406295180800673974873834804006417542730894085743036352535518513538685784871619790020770478697101892897271910571710129965204144046605307609248612055376704446394958529635097836344978589729058109149643355128765451705368958065503277353100908065316927333244831783654713609994720537330043826653531085267357379907943644053251949354345417888146886712665830796294385452665951349980559360403840893616643979669249760700038079136818925731246573404469695694251045640509131774370118161371480089426608163432897539376798434864220778319422311335203049327049724966616048734818538993298510223270741352766705842865382295333151944559980782880926993704189059692898332293914691774017686072315430028008680171377622930591698899174337963695077618320429763359152029905649304443288085679037472253537238736734868594075429817430942371188697420388057915106238212367030018741750365172453867795474641209715918590684509206860536020315574636818702581448596534922090566398665804018767289195089914521085489373365547036388094721527045700671558545921728719190266407138886198788872464463861212645322844960809164539606685622632368947250620235016148412405918542407037350807169280863885805332697515331297926079641964963674896766005243009984421756136722798746036705806627819533527953819594184553678886120954799159779653943804437272394472337123424764049573094764139800001191069389373862464910389605179208165907162253543364083525071371769057351793851585927368591753776022740096901373612081595404690050760135430004213944632670210513506558295313946035560897397356480349032233507503334179709060647608270263840045380699381601650197844075095500389819081246267853707350768191928804463864320009991176480292865707198870210481508150953770894617733430844057830236442819101005318107387244000336952953492236955411022004586126380985753627198366483521660270147878645309575371241163847168396830904088179564023943009896322448402461126573190099102359750025547672241150973600055065154177371172492815412315010006222856338736149203063245574814738763720728782290877554535078464263470946883845954742952833665991941620131694037380238388273502228823152921443096595135399676147291508649437655196157809792849070900039706792973606220937547727931244376643778385224861765543422493791375573452855566299034110491092665476537817977029310135225433657469062403704784129430060785699224674054892817850918269948129247778756916519778724797196129232918863824851928410080955163737822623672738317231559966999393070447744600554892758917104272727674957010595984662938881362067731158217771422418173128273205440429670466690498992566828795488984781075525489275474901346921108912412709641018484345381791351493700848086858195802064947482996872477659728209235017116449981459343553423618430030356249486680222732421789939494126103505275216764532142914734180218905172941966684502764232431553085325292076973739465353306551463403598955259942805942645865409333247177352625474840585499424335993157904375882837326587419961563629565084948637082365492484072993914429989962281226718582503633002410411959908522799214458700640359999530289792985724223650915113200093963474107240645231346988781300280120747971780066889162251710797737607671755371443294366843557758559099454085041189544844203522576187211671965481736780562245094578029201880664858105459931539069857885434306371819689284847726038471810058534345049329451418670445065706717550242286340404510693609269335609244235362116560809697641494364159765498913394654419450482975294769505387862369244294266436953513355411980699134718390656462806771938449943746279103662993870991641335623911568236658586094984986832467545644288604807003000516156881429444222028811891234142165132355176744505150203445889539277975352253517408892612902156643285692913322544096773787053270688458746273485145624743565335876889403420321449894147128074986124869264725103827683283260410908450406638089744862312479575549666784161510640722133899247554639770668365405894086942952534825566087789524096001089081274693321758092765377527748434864607857178716437342056183823408627580705664868361156440457986104948622617776891539300602404358739629058876753110841410744404767034420522654504870246820703973416338789880236323907596123607169939788801013593921277084747551398999719870398604472911695048775383093048517938491935195847364517121456457170375837710700381017321036926827846121823028191352266820273854719092066164034564710770487518185841740700794185451911040637834448401332894101811160225309376133116687490454110562837814336221921034375385205872562812469380559764940885724066747801949583801432340643905685035082104222487070601216032608167742850047995806756042644903110870283525764343289618216290824753614538273863631378084386165600640755441397101537038061109248725567384332446546892217546023817879600683596268084042430829207704974958341028136593722256587044782987887177648462732867011705187383673905549544950169933728317818973360259970556315298983645225551022522564778388486049682879328838478845039489112403466756105244558215585026898697166145757765891676943411248424426627476797573431606341888313887320271040588402787941335337229988617626648109206429971207619092385667689398084161677384455075682215087134475359022780010405954667952127427439423750805960302989769373805736158615307048061623193429762223274821869245185889929007557720416228026908639648382710213697589557871037255702033784675898112660214811488228031071641369099749758959701514822145449105410044773724448083630481793669574882704650873658253256737814612985789961516581385686118797108431857019404311504097633530882438574571153733964454185442209869246152671364333174930304583207636604476927742311659764212145668189794880188939842587667151523846293596623475637273454344875798363647696115208215835622768064281673424587414772738782416431728388341620076736801740901995935184386166672445171256717801021265575368808293121079540421052445411523456257693781907079794918236378428163353282380387500680990795927417986211268850492481323275030570075270008294270447919463037573345905327878530927874469867370717183848834167102934420839992390480909042128483758706211260730575837763000069833632993089010555830233796981283560733182583154684399539487252059912983343684912208257983858472474204225831888033795262020536949398309711409717024103693911150821735034907729551563148138383308736904699417838608642267464694746423854590243119744381853761254888225717689388738001376927167870263111579126386178502495459854143108236531893747030111556237848842031250735226675825952836639471694959134008490953260572320163031288108106054897357519349234866921519393853122687512965530855421036737223108283248607733802551050265095902872810920277957744940849322442484414205486505163034251985499624855997640233081617587074846602335175465842521237957147478603897237105457757629506220538891699763974116028154998409966177993976226807572125096491075205782539703404026249888561572048962022477989839239846971319621465840449948570608760106878856690727101266887131581594250737181947093650900010387906186936050050188038017154850369868243781455201096611919651938986704953677590026698989722047059412841773773741035664169030853461819258548068440042055270319446412905232383017137645028482499828418133704749835045729419703970362094642467163536336038928075860971762230475246237882851184894097101784346806821359369111393004487860831724041118885815259849276648150157724568328602174907295507077972961530765106358524840689312489334922567756368933036536776349374528187284232763394804326955649710313170091975479894456439061367120544139454020432382295861592352784675729606869649824248684353350414526659318896408853799142384800474349790096508556847457839550291342535382123672420419036255679269473115166704424491595297487145623111263356333920676700074655934218014363444054497695531766205854263411888559746221634457911971659575097043750343599641857087864453686809617960195444652980219151955865318884739025877370948941821808314639829165791572670959605999298886581238804379387157812674410075514372515363184855113447026669332291446100057379744000288998815983041452662803915248255272106837863254433599360442775639264939034900729442488036456744741180903220980350813739468878387280526401838765236605250781708888178146280730310614287620162438763864822191763169688126050232335169851726058446056324787245805736319487336284234312092903071331911437657236954045059555412649075800163734587153384395521526719604585581033146943687028812246117517769432337321310021418243733046836334852467033988815637296116369457825250403093666034611582078383652107382147981070772388694298793201853700170004890785481319066619796808845104806900457791788801285214315145246478974464852306869461572301689437179680934856894076990855566619675095556227602484760760100412665292972768639746542285656488477276180640140315198081926306566925737440624325429812833304716425561595648888396600827635144093919563639382171443104438876964106323168502819733526033913108704094917724605690091292497953597488660412063245879608143793114742290714343388555598489401888636195097939235192663861063751630468483457247361324621729394387423108241761318387907784902386854322485211741522849245223745595255554614702767281804973025552970073510259158394424171151233385708318130844616771735423329514538693118638529208975738056782013301636066883134389799035498349731579382014012513057087297620687813809520786730778494978897569127052190591925491079220018529552354566357734657108346871059270644513429021978587734038397623685381009863541229449752762480575527901197767878814610006199372938917941115335666876623309529445083403056257655484330948065390835914991426516717533295597875599929223985685216019441570889942010285232455690819246961165819831994212295097835287577252162679370186344585790351976844845473864969064834376800961287036728583362380424924541468465163038104397351808017080158525868984797224926983466982085610823553295823598331332852272736586394641114231071708984478031311791326429009686033984743255415310297814293867913282376704910954502734239689045480558232523850001839963803756472655950679214676510605030837229280497609268984265623200279277499451495567521563082416283569639678698475802978473014288862366489182549343759994000265062608541321703487140068985172759646794391960521754430898820456675485061919710301537444945021861730588262224925345815422557190278642891934447856638997028610784783382488002795445610418435043461782811577816196151801425505136491304816069530047327133697318196997663247957534992742142538262378160647541984243653729669439553188263735185427643169547029170943238425247505118058095094240115208637022592343555038473832530077938086920168653153808668226497433149101598749473542945132055884425661591156987862023427245989788354473415608267221983346058281556578476360120458514388896318482558405934497539265354496868776597219972537113873514542385312368648287662455262286432595857399182524604321712794742604055826399493273296838076548245248363231283971778016829356612991029467739095055933665059141763135043537883495861852251368368662331603357755074357865686307020134445994418732160766103941981372502724982750962766969527055008675920614194741429479243787242798646944279458393244230379569265302297427661543482230985911574126725105388301170956199711994794625326698655827213834725721752629725366970968892355411936233259432373443044191815407337988409457883299092217406411480826907646697898501543103889813579558564684973123079758044783962609889096935943849233768936847913077439698245098335321426601735692669184138083791119700272129742656311734979753349399288390428219657427257349643850674578018469067296919651045619634633031505309776165859317179635102140061053672584878878972902909360251974151336778088685992147532478665960433304091307174789988502708246599877026355084296473941560288509167602979491902150142409519842341442833215766100284954104133451364145463664717444667452713868362424853116001340768373928607770585723692522688754082186872872853390144580835672119328795652410310818102327582098483167399153973830452621025078977915895633455567230700180700936002227802121760760792443267661009412496809759441182474790699987309579241126203299483611861744764202656732740859752771574001000121790856802087239484426687411224019305036900925280741029964497896108351833038068891140519590826095869627473010103679493707208218217446288556728434127655822133525387701441819001741176241347135383300395345907547464296196125801670144555834108238907670556771263171681586887839863875225574018951578002867379090398876313993713670504184296916816375948064485179139534900026095619106143508639742550258655088026420612696993903407630546124967036575536607281586227232371055560975542442293207633936536449973226239758007984218814766843414004340752702592303942274927629231012767498037204481454993648138032939982850181568216560109340563164575577305412540978745455498580040915749493801376151713830241531768442506321889587507450822422482342852581215559782441970568054642443600120840904981334138191844193989545119945622910008493665452188416861937396991742061712318664261713870306831580798865556926869745309113234077268034332968111411284558242006530810300262640843211252378966859475069120159902242906264220409691515210259993645740768969422707227103507050507622706836782180975322869146492448190122220574946685806317578088664460263534382689253226615025129791461399212290468908431237914209904024542487222627671523454495306060684725620558455521203543557354409095091596713249740465637711193114639208610039187700487830094381729283889695720235325907970392554441491506474855381733757142855394505598878556927330474240018753767106286846306228379478725475468843926791196633552689907334253306173273642064609346528086525419465730410892121939443912873265327409784930824973289495096011930154018828741389734945465740764692728668500745343502446440384562173976508874038581486903516910409931936835853202382717760390344117888639156223131821310264337478989906540052741775700441939648083860975036281224986522172677970337482386748741508254960324540275673715951585240026948908956269086942859865412413838268593898787862793145058528565752499425283557081665893873351188629301623727690141623842391182143482675296526774608830946628683107351706167998353812731142177803173762961771241029832126781717684709654693226524998379872983917253170067878299260864093804775850387993719859006679191747847140174639255691241773748574478787877341461862182363990011232620531011936448360322918408217729884912073499973893683549252039891178656742555422393615329913401436835144646326153044513928643078237102280000474898603802153020004721533100507721475439122506701527250493204984490490976283690099567958793561570436471532099347024734362724899538369470874503756031835633839088899888909485610062301850014212526011330028813964686550448194895830056604004937485960601654818541774075566171798616360854221420993783648191475055537933767687338433962634355976276986263821739058143811165237168595440406246643677037529523852947493200375823702725169477130831970658439758784951672560302599444422602462323084694287575681974487076798851854734548529435968924743007165404251891396400111819804009693940217295578951840447597014937212189451407448615477275108146272179340514460167959514015354348726033824161774610798705999447370303567534626929717175362545482828629107242341302374452247851544676510009148488518789584600723458672082451910913619421013701715311341235477656007605098143631014509726379207217411182722556728689884633713997317612911247999157466596731803611316958243861273522680151359700937806849135716628897073354010523236538876092782226900434110832241858489097758092260396817208443299803904123177875468502248477912261151146686011882339591381903786956633347672646544880076896283516035390357505898439029814591303027977566759012319141599754672454056887338567420839444889202934172835377303721181384392333676099287120647828343806821872981827444371387395391296374736388826146727161065461058875650514273405665611692320602036815165389568782137350244508408623514327926580649326540035500253359685599818737788342312738377499891255148365325503317088118464062614565439944699342021459304353730657607930559062480554217623762020797136322766660797401115897350320439908894356294460811864174248911534274805280800786241906681140332288202704806022136300518577974296471184813277708405691645147576779103412917584715031701545033011874932882403192813728827872337499929609103003121108665094805248384027729754655578196947007622945462169231470553182623803331333444550646395396418320705988023218856275561279701282310387747448544484022016208689694563364053114330355054449691530416683353538823636194760605992199319888405305435712495863185560956542888994120998459337670550623595360863975208767120812055272267713272580022277941133286124055138369854538218530743457728436210027320072553444113700812980975981161725306689890548217647892995087188255559428603513531497374198773991163496875799247000609220993185408732808329045538438285162465975430751143106740404917088236801607058305808402222577691637296486505196710265565571019136996593087030805058240618037324801532155955933724650517467227192719018736244937225919374454097110682108156847873609287162861591789388972863249822306698149178862061068071144339142254834841672721128988500813776429141684801147594911419423446813333993175617913316516418737602144850905556119719563325262664855921239170404413138462136490612539261914527268498075777550135748589809495931797065340694310659529279470861641424698554448971609806856754744892975015099316748349037399519980929981703381752288842991326558571382285532940034008232760630215601246387738899306605929206079696930590481656085715272865565292986923332365839619444627450567037163400516695480623166017925172533122542504199658658870780467372465759077074824768515096762943428047024339703913931437031026763500003689409980982521538843351394076915361779074509351365561728885870834934032050215179949031505489049975018771734879357041521588769217369655107461644367768555440409974014054938212862862981632015921180588027049200373627899049487956858831965363912507699766339678291394584222778554636507175331946775502697509930417316651983072455950320744183186098130660115005423987448828780449136251018094719506071475025820363721163245769991296247488788854828189367748511874092166149380803394109023906605295041092922923022290749719488644046619344211853330277005524499746867377027652984601020608949616106493666351355558103500279382167264586648678069556868621215065475142319791600035051273539408836644868943942997588576175732083857152406464133845534292381988633996120962971790989992344934849057311996046357288608666384361126972849722551407993798616735753635755282882202349238661768223690430657475870092885133357205647129378379219106548389355785657411720759937858211689407099984355239952200219153977403689221680751816458232823666792833375152904376245885891501741489395802946373181664442480776483874262618636199122590834973499420479044559925137852636007639924212650509761226445917988049613104288504608094541266895176302269234320677301538085869006399581897422645603769347836187042681240142817237714347846349428587312760244118225065585012515163371684092689043313436033413648954810360510546418689046268587559540640334717968303325038907125938638052331176936844221417926316626530024705409990922170271597346552877401389163763531283893601272382403909133004557427919508992896204662361624711801342214612341824660924103086147358034112579485536657692695403378582255365315676368174699685971099109543443417141054829880546027400036823202653917972597839293098605161214179335146084223696057874023826419836506934820325642783495296233339401151143882390222012317611373770758149744434559946484647472936152190503723277366337519977962113575037975365462744111014201614132188034770770392102485873320481213040892508808459522629048822047712542707229348884735651271034844324742472605183272167792212999527048042207443645910013385539360163727220856868817921025499487801579947178713523943049483991580536303837754879396205902218188984689523049810121579932961526848889014214611326903682770252292075479465795167526658961703015453541260448705206296477642725934357471984943166995278215393311591206611710624989318255388254625488164169800876457107978089993228928855665657255273604326892761355024937941737993462374092304129170187125910011495879483923930578921089439421348151550210838571270946644800231880526942858551602006879415577162453752456625571821158761363600246998674218328935831767392664466723549692071606148538317507877339056156852652433773613513426784676381404235617245602374632621200221155441226947531413490614224571092732334012536986816839164418133266617329850051230896834913960640333095209217865719746031393230285149774289746151868157914442217316931001791377881016553819527622077252717063028848409591213055731119804080906786138906151247012070819844748363679224670310892268240820110450597303497348545815666963388172079833745882989090571433556130263508350984538840311853766249793190127150685497168143687055024301734293597095174701831979518411397291607538644086737353219963861022267324070091689410593675799875961519942128177923837294803485802867474607527261048631627392360999552998739654154480900097805133995755781840372543898975747003324858775653360045144258866873135870572733036773642228646263851164732609495234683861977511030212058743254088804178995338945901845964187018513532060139857341770369076973520808057535705187794848539192231581012181641982033670927432435716825602363327274245048742274764118466490180187632408702340106977898469899061394098868645233227026456325835010457306297466929791938462514695780033505018691203715830033867620847619410936960257767504578755734390271199371398392307467610087747846875465644136052530950829321304410257611258587390380304453858352507848186037865793977252506038872339080117650422215849118004056164709940890903308305317705931432086309225970800945027836461960485695329611342325020005747807894898784643544959967913273382336601364138427713836216289570507284460519452400789548144460051211443943150504187534728418755197677062102443332370436036415329954675905660400470514910915306998770651903846226231236742124916445975055473405188015510590885371210730101672172353658097817606146420115467500819849422687500476537455294120601768048725273424483359799097912086637139668383898653877589031215035656471703957338016242769601895688691528492087736681149551469273111325917610733642819228061171814244066622462058349925943041655330188213821058784413117272279922737759289230216768052857730907188875532748300195309284449421565388994282634714880571652902996884919492532029807789158284309279385059353664274991181182592350900765392383236053804333985446341148099577384137888018126252700108260989638398067837864955753393749511598024526346957670508948377067716097037496911960482679010438364561143360823486670610529306534417518337647793801265689376635494658905428309459016178915924574112789784468305425998571506369632263274995356759109974137164674122550600513821757832244049800819520434212618273634010508147787956798435378811206023475389516526309804399748722920411373661549138182512460208971570218480512912522322816124671918104840359504912549914200317339359130699541706330497089699376691313577696102910972706422294883289461769848703031356827556731954741934698317613740000086844366151277363619003198831001451525390424936631132440725294218898810802679965173209943385122908677686469575031695425834571677633786260020656587444256717067556494850886039278600360372839979708428146084626511035749524299740481714613019770259848616500397195740294604831705250399040225303886958022306117213464004726156395815834284758397592796733261568954099567819051119442212124880038640174703592780799503254304435660899483773740674844710406658193754852600698805571321290455672589671911791954887386272886515574993846308084178558122097225399382043061673400276773089740044874278598713764234068699671968569987736143510018641427951055609668708318749218676472788085842429759033628279293076081959883113613349597485239971596860461046957887919229711145503671751494628307213320343581921087178699945783315556573062310812765050904321365894872032673564539401000592496124213438791443677368594922145083378373330470477419571753126618340308450969932419731930569056067497924692656447776403869403454172121547784965085771078726386416909615980573750076711711494968259329109356542137629369519154999740777120788630114941102464188343869010475541300847307711538903087076470659328553811054722924776073785578123048554814584211258836768245710098065995124355824300174254710653024759957809826220748055092402553466657894078732025616304664015114450612717345613724171830996450133379045382230325158347120764359235340176701445919087477226774142216861481587473410195653350505541281223856864797334476224102162918177545021961476433185690851092642622835333949425566755566510734035031338076946992230228083146172943001626284760709086271007315612515261713795926553803331518164908092935653843163754921912794019569825502590682469572034419895112973810004095850151408673141280017991175189212003088428040253304634104308819101644540853477036118323813658080551306401643707660112719491174273157266239126616548758033114519080875708596267950562370791307326630953177459587110780969870799294693954046586828363898553148812406737659065876135201498143117218604614903889746026732352276963505976003346335424642773239994516028345863074054651851952238357729035748234004736611599381360660899717405314712559349733082953262220880920373806099234667150146614067562811005554901861941138260226410848004480647855675221901455302395025327654332038957313361459439010029769976884115880074443637577101624528385061742233257468035635793258381926960792398937816706863272093803862221022763083084357569024111901982089002051490397430409702013112170038934328617831726382745105688162902631329462939562398745461982845136618690792176094426914105851466827421802277925930952713471919435284647290040757045451807585644197600291652157212717708030462875447092672320596757615457913425682122994356743821947967450654125367645904954633112748052384216961315215290547040319321427692644232936197524612189215058996212127769500441540591760334347318688645517159151775146880741521823233928846518739928942303641132846299746849524890285434523564736379585300957848711377974303808913036813740664554215785231852066662890233807199058055725418030758690789246600328360032645685577197667288644087414550654455538391009768883304710834601379962883731074882843243484835623131845102033262894848862443801816846115844741025372234929099829316273205250559664941036502746951875493167915652065900384587673183131522552521922463177768649060523690564577646663909739986148402899674272547672976408934203385070164188104952025819881480208637682385115914069506893949883979445461074671989299079561204626790945250555030253311624570432677075523464681466821328541414930860572318817184681813322624412173710088713215765763933368478437649424435943694215814693530606023780912284209342630733219013119329034180130294698741801639284936804881693481871039242746839193280133347168369131658706628630584597704237595440865334282762135695082914773875188311542914616729017078146404408138599339956013453863781133116786245528358037600512730171809252511122869473352589622786134479077282871677359091770748648938853450988112811544413646099776568382786299941266820178339822175768172236833750355660731803555879871502791575175336365592952106811983724065054712464555973443217458940993605293855899757908916491599186372073918098889696168356134517123342455918732644958693638485873590131591694067977459893442169896953799008066352444551067472605455948288029624227550592188296953758127403990253797186921000912918499317446645753665723254528421095687302428240868479701116321105796228623866846220352253830249802486073393418883513937003628047881309753946933594942782116057781798771574559532260005994895536389968899990842891722885243694180289064150690570564743884533747355148343967674508064464997819682646372389976527509883962293872301960973563770666729064887998454988345769687043506247177435677258666207473695174835250419168851928581013347339858377753392046211080890274349992926205045281229777346267206495608011444094488924054110253551273447571663880890353861443542880247971681702004652983945547275843889989753266645774251006044319677845862309267525759178952733352931646343162169012000221672447606779885664367909256935561186455165855449429949242682002081189961592209971787624654586969590878289036445654004002371376511777372151072902800276678550557329250580349318079432113797867885342781590092730269717968454077156487841842359388509130176232501489305979543462831451545164738818210053161526571317444183662109190125192018993036037399394456187958275234178542254205127792492895454044456699370959008226468237789156210498846293028201981303427693947299032236658550662472502858288269898538957348099363882067840315751319250767257818922197236812764981739161918707199930215948834484447069639387802686111234779690645125611511535737465599679803459672969610203354837605533457540714871723256321795113935767613768111879607399238207224504354344275379040827638719728693267818603209174363334563244805139921325426140242741390856112965378267696021242515207504115412568596993531612401547758881713770663867640274901770640166276073339459631386737472534991730406711670040030058109212650517478374428084850667032340199627312217725309266891474088000786427422193233750449315486670900482895921252002128242604117693412867213591745474969246493977856078953107873552064619377817927288203620384824567811197074812633325316203883357148699951370767814909782528479468522006625338926290302038163395497585856234915299605732969113191115344305715059178084055488839405869832611177328281474876007902489871238784059135767424879640152285896192579290064422639627926632363123091093674277436940676742158215387376850454558915053809527780599424906087444330409603276760814975783653766200413323625369805523031594154859740791484632225398341294913614722281695481132404446889771037439835277294353670532597547894878817450679457182662490593325195172922795675837100700841964256863955790655133548661147515425907754891207989730019835334826567096671651848185268070116559301914766632231220415912601343667401981629909031610857543612811283858126206592135953158056829973076255547346160500336879424914133846819593614559269980288698864825833684846296111049597150424378241128605553682567015290164150800761724232933316055385779925926307461102631613984500151931525183184792912322685252820317567258593940668455938905966736929601245739098073318614889081931840316590959390043087543953035393526399169624986121202361025773690068943034600599570951200215459468938209426766258534467377402641317550033692257488553273320208123868845169354731065040423730751984552160983033636348951088248187722128530100788255916067756065354899975765954922581320251474758864784599051526011895942816771685518955972646446004801484938197035780178652741163724127852010999712174993446907937150376589808938199456357789740466476181784657198183513173014370652874659961972666926161435157574682022416396680322378528270204209799931928640479013563033753467273637359320767019893767533503841892103642995935943153239545697734036560392222229626980612480539591508085457632660666076204922089146457650334100222097115556771007479357445696045407754375586877586683532319218011704855410199008111397117074831896552663345077837084554774454217711731767879812343747606334833655499297481004580589997679217083725762090042454538876469624499959103362389913007489520642707866912694498057991886140765697284604537361514282723543371422624782852184241718029849336287937931159733410694104494985466138303260353392834826388809156756884799266438564247173247347913279520396441493261117077582708658687020060167272913942904829657952716273995952656383903920425981050442561369716573648427931041743969177441816375534761574676998020444512665971943347367640810528773379774538216939111091076854577216712051135515960285928871433892074835503172150350810987278370978884549717229123702717313539791873517656352461116394582048637850463731840719661188005148181772817266078506160832588347701097666108401062217023970247048065840751368120640622400163320217623805421568023808340108632053887334354593166183178081714896297954650338092822659714160741816190467808418333321076982468988682870462321212752849509826260160054298980154480578813838939641675178912200271713902901415073822071532762028698855184175914549070218746626548110266923490526301796611973039166142997392328314811962780562405172782319762163664576083704881815457023255467689956865367661619735525151783874457210725627303631547364852860211904790420059292470724071486900453777473879803594741665672585200975001499898663817451400523821415638232158398976851601234459293628411745483718799828966168339767653801122661111223555930533251097089738455649548529912358831105515037153662493381465951436345748993411484463318006196612680468157183081527415454811091815912095740435790119965329331385895820177072807502577441927654904184672273385332345055789958131189393339539323958158828066148646807176646363258866600069679016756268090966404218948635828383744791638188305204762697719326686602774976954074636744269869733825285810277352619850005148790009030857147239741672828070598430172285985593613515300011551672147950440965072563561579215827300205386852793222115159646279046722659837669906118980064044097931167095605304569833677834915732519658055843468642537233511921262957093758955893129195234835477613143567117175859382820566096662779353977532327845564144957138581409637222172917656127895109730231460185565765940695551183888355835339981039737073031937538925550294547317771897434290497829826412010893025819170815808657237081037070494493006517074787263281315750111445031332507521858836867175690631436460603185222767708598711985028227950158985202841681487708683182099564806296225134765150521307685118343876786292760513530437709166047353161813333587239641250390159728976294018004106796121052570606493006105663481070168067370785533118114080645800378860402749764838115014966554266355816199312922507400739863928927677829429270259472808503393226290018800008607592451135277041021824640651163081766748380528821524509322113931662647704715213961813752445468970539085239429612380708695089312192756633059219911895918269615594092616154537748856758578345689145935220661047442838201675993911395445581316916620566260599611976866990745992466593438300817239402716722170344185178796519070940123640238452127639067380432787358390190962136557463100229155310338604178142299119019091576832552539109025511703217463960059907736401003334096608072884564740301679519035808047833497275779426599047668251804033727558905684613905811160038918355087529287288189976409408889533044480737191901325571169016529560430745270722213799073602752869819239916507609717813007509524382088761043055110878149377266800530134981421180137005707650011907895354849082389354940110783430806193152496964145252492991092505964072259795598881779014460691335216636774803997628441702994723550451528954522298158741076644326795725449952079096720804444283163916781306704808602908110419518847307789546837820625919470534716217294898003055201861445319803593906548586926045135918862324685131485269959858321385924526328201129206902648915046578070851727851892620487418804449860711257894526865801570536073637898685966124160240207339494548125097504067656747098225145896014615665894364152773026023104449214730963716563146169787183747110034036253112180208917373159121461021415229695478626843675191877342898742417059939990530744720795346781178085867036503309663077124104167124660444791783864322684484178962651117867761801024934162661425321362973826384378403762954839384758221515613682497438373327800086579128476133206497213784553182233175879486035969503190906664646239502740621771528629001479187648852414603984721131620450115398092899129182821449651891799347121802004128238858361954329044018554554498586250805381500922522335005807041215792185886955299333725308671132398095310491812299294801746899731196391103609297165653408733777934522086431619992171119795633344812180846046366821849467298956755764394300263447780227903618951543014853666790027211968765498847733647713335111036177703540052166581473510489018741745653879776456260413150422361170170052654650564822237686496625589044490187986680716695859393237330043761111491066614361294341268571826253349123014649047126055905617651448539923415653476400107131769712727953716612765717148565142639844694426112824247267940100369377155176797726411078894973462544181335379541279168875247370286610066470403964766354952760143229534115489001404841026232029875581142484926967837707672302724539823448431373197823038095584477041153113475539282054302789547729940773932331624879713908464789741552095634775760044804919269507239266731372934270319407431583417148358258877523652860221359951919160022507393824018161550788109686820171829611883576890042776194169597374775316188328092736152545986130975816277416741252553323872602927171264271462147325364565427342819962445278663684776922778801810414255008136653620675434762262576258933273552819772819055356920128886457016077143045955260606633174350493398826220983769412975901606094518456738909368640003620295013881921013429211344689816451009560184715564129236654300255310165607446306221173373388111934328108371325481847831808198563724725256741154241678989199600512452257232242030778966259554187703593485078565645413946265781661669404821923312542075459009422677216704630115601150625870861805420430474837863528412301063695721357808190169128700459962710700989716530182392813685227494067998533690148456930009930854088116820412489185080224918962633640967929266719324690092060554117559323691027288212996530338985977555120367269652813753972170237142695404313587518617224489824502274841459173454040666495654501178077567309021453655102985746108919482297813304035301357493576689045704845519391480222452339416429830419489679624736998280836608013208384192878521381981735105018925886170844472260921818948083869675764499089235075697799420794738577029772741590165203389394789325536799523008039201638129566891422133934499082345857551185292852215677755046275842817930246136314859892689756550929083427561988236027771937571971745918769512315996493623946604281192519919257361205217872659167995304220446003927810140618424660810457899452573434836904535425804669154965334844183312352730722869350658730982875787552671721701845070437043537428617064481564873536280409944488702349602193242949022753398331245017678671280616996366437308218217346319740484550416546115653590724628583441545384536102983951340547877092494408495681821710330832169119073051837369123275653118665084220613932855302837348075894338711347114864647050369481516063065474223061512104934695520073913003305472811203136575615009359364177526521683504234156211663831054186750584879465121744499529614517486442749348148094410685178975107391221780679951657556153365953420866155883816513703755733549785057356059870302232053566458404437607088355812756946593441647893510025574420594273505092433451666872335262885373067056941081470972801862330177537322537159011423071613529046118836326534338701375297520519800191927190077148449131051073161286416408266988994369540447591088322449357231344368013635824635073875013629628992234433420030485972237187192401084628937396501622410594404352562266502612932672571799356376561454764112778454766359420949515104613307756653385174623361850448255543110606693482545655529881578715787888516999427621879374850237813785028340417882894600454265605799785926171459795960319881525588171858020465175553330535735972568287440977732165978585399941865434118796147246883120166216755266786705337993968579363749002082485555849963287360166153766202621317694859026519516410444840966416387227976170474882737603114498416825130513851858305889553869081966505789578593251852513098127627323382216766459483845775915050528908055086517575727155693961409724385306985691785331208163817951897045197662237417919366819121391293530291889150432544079572910215295801006387131656865908063554515652965704945565471054349808528914061166414935466835609176066767202956109469441710960494738605883807835177568316181150649189172363793646453531720764485237290055661109363114674643175311049496715043108159043865415366414937331290269989848231466241013089951580081792664488255251847668882327146562848593263806158003284530849632215082314132136390172162782217512125294813590277133525740306988458033156594301958945048040355265573782487931403221938686923677976500868824443593827910924157895227339013567474732972461876093070699179116951910278599879765054567263439722028404604443580233083803048506718638879030279975882645782660903236995453623198668129598370279554104917244390663363574276109859209340032175473648074182559093654170095835793266280166170040492208083160260038482863923901622945773701972110684148176205947981937440343212124918413021243916109168479596460537295823541738356239864426595737164856066592787358599696860180633509093671606474800559689633736010400216081408072415788137629480973158477479196811256669825083114664078170877424825616908782226526689170013897591720395745321632202425093748388775563903543949260713545179546530225356416009363787718037525989438034351495063756255747400522228415651068393018045975071212075563932448447845075129652151731983594077165721810592914938330328006029783480838196669243650027253370450214990731125804298106077711770212068203544509115202901103941603970023770527307762683730872976192477383328916787403797147504303199132001473933102028094262470938940587120240989480792770100317154917236154250191083852189885264799683380769832339863632588702843829768369088920146419616246868863999046908759504076315510784417177891142580769790993169307301712193173181217759350230746722169508283529793951961791091562606569367777185598192410041437929525940223770747444761482373960167265344653696140327587894287482187726480421690363920992417034684092706258852951949146130128492122542572080761613405687018694303302247125811769232820908341701578853022491672011871847313475640124152781987791782309754636220146785371710981026748518510917658226240493584375758537376771761777769205209659504069006824153100300144825502918734975848261129089769409947322083276399890020132960020668586995399196221169551557481709613342816381110511253769923032265173442632971390044981882267488916390449423737870010554729614833922656216152155634318461227585521156522574748604470930132086952014523638643458284185503932560686035040746586208392969221012585570261049924383574899757616530491905969832241406686882394854642813885266418021592508054409250688619452093125183989375030744690102930137810474487476845966804014480847642056471084670250384416837029857037849886046902739862070112072182358871011970189375760350607959443903408894833457430914809056345367891626625113263333188072408366107533202350062067055184921933183349884403991544499278973842226694488317178645214620135304099260461673638929934884605906368196619636634032668047245275830407423657840324015822459492231762800093316710843770911217454228208978322774288610601232164032619764548713496853082706609959598480190952573231911836560694173860952135783251468269309396758261687410671012435635194623229323487417774821569487818623184908798493115749537966217441932673180061237335972825921141905916023600053780649321954929189343684644533667501371940709911495180774664268946067699652738332048452735664838102320911979798941112911102053746801672156749939770587823451040160855525631276401576335353663033623558699160471712344431407375656946261781413067964682728603925016994271849788575827844253768572439825280865897078983486359946808306722525431511983314569969683681137223462733855087118809678425455680322972452619153274790292466472492926142098549243348517689511782504755802086259688922700487185357317211875857546424108492583199259640681074183714445716211917083089290554430734685277303306602394455366698274073300203355466326210165114971914045486541949602677717868472373979227253285913735720809564775747511566450144683309760405467439998429865177466449865006704371356162978627576362560577259587545197574376592356379069167924776608387453383276241652623739587794292071820377314384560544755936041172645400008111657087337885086909052305607950859481625568590223018280008818004481653535894930436431919442135384740907301369049120347638636411573910366151437646645058657127467499337868972235612371913791079072978644767916532764030765150828652172286257138661097113164835092399693784051661220784332923468759200783686635187103464921998311740139499573821194734669557804152659341846411171162777061581113771010204342966217667472894983875918514995369555647172285337752838470208566309031414098622603519513111513865688206662575605077367289096798972390456519986870157428759301728291649267696870349291755055904150970393451219925285563334339643168802966641315685219360577831832773356326551557374599170651519322426955480847188101242472676512329062549729372052673723644524455765197365682981190125763277365982690236737554489838730180367329655562992010640498689393879486420502995557933654282189266828880127716247925898779978731357563403575529360766068556868915445740693433766063471944896083601105710981785440169940491261505162708384799826622391332382072503654678949365985087200775354952647260635543800182056221978445690749383852135737078430395084036947015972478989102972527584136148067334070952293338153660228365432438192554576832662953194719725641184101769074897013622645060210194465875938905976551102451575859157665065372394762476898021675308072556820878096711547613408777777381594724972233109610691848369003103433650996943275057493335711268003862607018661680188342637554954801747218540983509445588788853541332114972256708166041191004101479178402752882125478188101756380930373855052638789923794689297279878216276997348323945706960316630799260733156083902856214054055386903032561403095182690070011336096394850140695491136134588954657110071413686543102640047429673662590332995648419054291556250429314164895232691249089551563600612240438831903956805219741913493063102239036689247125193699352235209785523264370992348645847703470424748301296398217061808328491348530637754864291276343561426462715958730749361768789852138600228102508209611173240579563312579054716528879078455722468542813887336428085756196184504720283178069637493454041269021192195374572058139170779118910062900512665684485850798259797216162973059795379035698626795177597577345010878566484466561805750830430743213536050157778284492143247352024710764131561640136831548086816842173770805390363695660698273493816964452402802971970005973759813611606961878445956394087762667495107921252850132239134627539161983085490469406586462225026727506848521921620645102122667255848850720083398716278687113266096098221924129485057288074377795315016680532787930395206905819325350243426046814740710607588612827605632382099290128786548415881727572993002903319349704666451911192253265231578180943121289700133062787102230281891712413836203574850836895802213598859018411440546807725482185998424845231130328639350728235100626292743333827431131468610583483576876596331369345505347069421691752123507163870407606881621924021505848935897637237654156410325003193033958744123654798570550741327480159543710648442874905650892325654120815127182675119505107153299424653792251635638893052663383116925551723921863187442457526528237673639121374182822480605719524828292827842823996505529133849336401444902743113107551168400042048332857954309688042458589641457183997935095864145454327667916021090227963450512847055718394038906027252087227407176900585957922694770510974476947481736609637362538777626754720423428884008072796981316190889510292463916911578543472269732007895017871351210631019737284264037220658193352387584910907338468332642341005421661006141472026820537761832408512617988572738112145758063897523114004237193173906750277261984459806508718038323708905132365366294002277338653892518511836146500138457388428540183050531311949438248163996003210761882161291566805165642106383811897241736755934758178755190772305669590744794030836010323520745843028730010893229250774788659028168225906386074449426988781289675286198054651796015868444289911742420700655793112134067428615039014544524540965056372687542273254535139068208055918530628181848099471982948363577038356311280990907417982256224272185110928277540540315483860617442580034975612612332154330555577396011547930546807197488714147424689361687668022742371195519757838534974799582093175197169093630478741402780453724421284403460680965273184881541960442248702548715910269032610142299068766928132352339380805294934315746507594039335671638045189892283159659418903780709105638454880368615759278782869014578291530680884608556349925331450703769978842448016630487219597185839099133735640776360179012248481657179355367201054838661119904578999326426062772172236580474172705867413806803251658111131466522216095654901945555844538558601311516873864650937832490781919051720189032776007070354226072783051589842479679041738582369648426382496235044593920445551700410775924272516704219448878805043715142005609675526844548792761065530738962667701077333556401155185669149776320898595455377836001602001505871380187707815991583998744829042617315608824652606723902486212782262666935587882186057860236533440329393750002366006468996786752151178153258245251273887605736870780325564264498893091385511075317216318077195507453199141112525528323502017234875101940954569168880923446610658749809521424331256829502452329943100297523115001163454976209207912948285703158354132929434990286492932643634833670768749284147061270621539618606054489435535541708714657100675890857219131504793121762053323373593032872247096411990949442814137666786113907942745397044676040957156800512953138616775234025162056557621293797232862657498682804749541551950040425359414531905440374819769915156365396225650721497609449692888263994313921619342023948612529210569579732696444734157375211189562071440929676622339331658636248340275749733803129091784887802624330408073076528489535324604371519613228844924555879733120075324333194956807517292232377353209943272474089615249892445303089866341727039702729815958486391258415970380673818792026247685609523943466937758837750953275529236949218683481507446501827178932919215569948824006835103445904417104132011031095073309079628836378816246629179544930584051299643356561201532345636520297607666429819412035604245176197964686803501576208110680793602684499860966395488312667869221790125736058569674131942693739334972374725048886323070387314125342458689520422140933980060007023844264293577681736829709927555785408314954279807986234565598692211046190649889756766536990924274899076560512778288360384467472718137298466758656950901937262643029588301626042432899329165997938127013145637415950228925794233563399844367953358391568079080871172360920426430808252738553792060857776794857352968505480427283385056995058940368033808389318121057680567288560682543507211556593892243495333060201610008506783886049353557676137364874680942468016366196162235739813524239561718579122681528981434183962968883213421876065748786172687017562365006977626186704964520163377852975345836441493969720799940574923469960925640043404021349722359881425756728623835216348594321916026684568798817173879211997547671947877825995363817812595825394859367825082521031670384745905516327115896229323126603680919702381589891575406104258095600526851565399237000965020702749368026372487755783692869123410079796731184555426926604311526300499030505865710073316688074048992110048491225183792900718037456068440857916427942230660890748146269132693939022967535776064928835397270215666621848607721361331294327524682395221282496732446909302794743339087941213059608603971040914974374818376662492675086748280387601461015038584503859357174857636151046912363824364897831140251317387083858527531075800498295999322694753279390555399754337200066670141634272691665859449060923244037791822557710416420919332551797238811836597010242523423065295680012069033254396326930912707197101435806442114954978684588017236335853715987443638266574782816373887459460897742636943645614849370662820606304845003219809379880099506926096177275914367321747158944786987278459159972243658438174322820267313697472767724277208964003685959540472298382040564850277376191488773297361148117464021521521188056499957458821237566349069365330188660202396707474404890696844794920062450505116901721091345145628429806718126592439713288050380662366742661307766711605143224075099948104931986490625416871553717384927154025905746217957938312654134190427956705869138973639224564767578620866666096909103322544373479599482033612672913965413118080836488030754177782520461940515085394027571516439621745705095303493456970198112824084475759137182888599956608719702693325693064519345350421537447072527825536679496703857836982150086025508845834098552291596537362192810924155854945168893499280961283047569965895400358076569733136678171826828599287358499510793147111214083971339960002649511340877402941218763232025239253438335911150247981541565720539340371439299830487185642409711791623871947938668726885008049875838345853890659185502346477640988945768428698913737197695287372707387848100371473122123865461687863170778691014388350054119686929826790501712144624977525275898390057437580021542547829396096968426659208574582785811753533718337983139415037407294374467517235530309293027700656336040813679058815344752405228786210819653809081045993163697657889095492586449864401553892933476599020833964956511972606754658534806164096494566898760192676839033970017026489648795664988633016257206856252312860821412699759662893491972779628993651732371495822651907231849697830708161409819435809616271508760919715775485473883332016946772245802803537012588487181399966978671024207519475268895266847861222261907076335406324419512196140915206361987827154432195588814870891788089971539349783976454683820556111003239141936619269535488778352441700462404796272481565848671331207226500730460401190039903020099997980684825017929720533573268661547648380092982693809652487632843341561909470041690203133749454267348671293995654380447686964219150140896377606594385019802424839981958871184877759354350870063738004532177118945524807116387041987075670590306540210767705402156773019773014212612690280025061446209141654252577593167888206932087567753045829210518965384383142241088950201524224831603212368969738623441416051175305084896620332879548255174649110608208616987796114691074993164243698571515379740625056054871341613116886939094571149865566466162940953421725700591877654034481681306749234166156192400937636622626531534244916247900390615467137150000281033883727641937502655100579939907278533223197429948342049090094106880203566029779310042494862613202411820980855550598016388343876513722020262231861475384381535089499628773384355498199504291352920382222241969527463568997052201828293491428777218123649294934426276071768467880915768830859893936208497292648309562788952559907611212173643933706621355242537783989082934839519539153413085649645166971462686065146922504764355156001417076997829661399058437056840176906210199497537561351661962538467657162720045952109361890465625024779614378678794248919830645420852634327797974735712144610276963616689932705827243530904238477910712083013176394129631417838340828433833692857979593728275612998299543598837255307919355608717741035920464767453972494839295689504292505944317766475963665383866591881472542066408173259293587745714952643255562818150337441119831695424613527683788720753195555518386775566534447942636009431357447982296854067502046060743038907282279343039179421258832473439856869105815534403936532241779077110005350214461783380581036744682270543251910991824180696479174740279445156997028955790049630290630045366989544886790964631808164344148827732186906328209226786561727906934291089189095733232524130818504502268707984083156246836691132915409999676639432488101985195993270510620093718612130102879882572312886889568099716201712086701006629051581710678493850507281877770847234487452181824281596827219612469460973592960484276901964504757407357965702225812312318017923500733355800379171404266710605662716389828195938309001863987159461633202160157724632741984942520599796563506920571774940815439760988372804967242153663482085605336472881614829339340320750677640374702588496143129501238369693648577183914588089741875299044599311514318614040490902230373424985119726145086959820623832046746097993277553570578930346860776972904477053292769642879438025793691384124299661317968191459697307860105511112136053019449497104763985871447367479808163896827338763528390941743740114448383861727222603996776734866313194150901453117026905376061801760052070637349363615482103739516773826597845559782537405622516494720304155811704345181009845030163869606506339204204912181530797539575086229648847083925353288610515710163643663444390793293504211442835753924834109719370213347577437490239356509443160576267036440165172008265594147496158467454164444156710493231239502064325292254641246015847465715194221912492509514823754976222458896206767567060998934429485608088305300546439388603118536474178926134571991456608154375416401695728198107827588420997921584308311841826186845706017026084068258165728579616313982626425497363866110506696869513126360849903045609908454437203871657394050503565331617492237490040424895834196176618529541709616945434393021049641835999180508914736408891886423025023286060867116904247705533292837542627280922499437448721909756190997046469923623070313572994840152130063793855741771308140850912593338566021195185226061334635164372426154705342436128827395819622598189081930117780251723620294034232026919576447356871748791213594618579327098557029090084696143012377066569426846541635616443727325872424789231843830161904812842753462276629773277145171483720590790990078380330881739143064808505877176926776931072589309843792089135619753479238586913504419478672057924286011710759027064428781366314763859749631320308339387296937538185411705922777719973948022134292438079185770366683866690662044775053822360043862889111294059815984226628146859625648693729362319357707308455933029961566563729288094631944698511098451419339940721673630043807183678967155023108060568677564143093893551131315858931557533308229372339947962564774795216411658690040562805466402398167469925909722241566660147307187612332087061336028051193227036049383429339053106190559393448152526220159173290281492423116502436631275563833978394045603099466081297280369298361090275004486286295882334213132545812035218805653578697698533939871302737530147703061685334673848509657435522367294804061063521713295027313957584853545782908008960849623477768655472865239228761287640245565080615585838634738702348196665181499657463650431029750852078168694900036060729585570982140311230950075314179029254180033347890585590764076050355174180619901089559550195327629816198156274748185026524887597339634856274187368751628885394177895760728958447030080459403699199723799510707744721162011752806390152365483053136403784332826613638691118552865742590853891939899611949161993521116082047452241643903430473581328883217734845300179502401640040861674084655065225357051932398833178152807197321408464536801886919927939794641984308701870290960666008679009345878385155402060156853819341224802464471211040305416674450168335490893948173723740822106175509131581177659549734214858809014161618764725941002046906304111930553609164983194630477990973599724096800858370199076699299875763705765264739042655304918936608950020494298939641392342631106557878088606201504250192069606919252525958567634018623519853467723745020400137144030217094028890339965053927729537290697541076250867090141393759685380051586943555242875304078273312121953972571012399506348159974021955584432259647687703968211506768423670262111200122865252270519163032848409814740021781291039856609601639914114200928590627158687993384624370051257845882960069800406347840094799444711697404825530415412106198483075832541964114292480417199357433693615650710851100577172486452442040352562845350799670412724122757908956048292889810643182891918359788079107328846459346647988650205118395172577028852088811286659497997763623934877333671946887309337995069562175525420582136297901935501661822467410316229518197149476257866240655483498962186013523028006612305512904939423610655305028796713381265540497559077973342274384040474992678281219438509093381018677192450121262929940731843650440853243040963616055102829094478420762736106964662973329777867238866655856293112496141739410115460448942748750117916515486243176405049940491558247075820008441555230040485824309822361646787014836282164589596018892841505710213779736859996307709260596277437659600793532226327861119592182272846445368201305342991394983517352936663823615351205704024733551211290235282084509554072084728752306084659994392046802931576406385460527645386202758228109552084302124779522687192496644874480081419223350458279863769806681450346599053583060335563588000597517283627259811449126062147991758257824785661779041390438149625220030208407286775535590489228924483176086466337252615386455943333132203308486079881740053298512371912517316875021874035548260351979047079600760445365087627086263457062006093430855840495816432314272025972695654087094354495357143422210788755616410752235370050153708402618948746534235225997348224372876338279060089293599686562027742963188502529506345174109574406201463994334109752419904130625965629695934582823064408566152036551975739966940020278235453853044194850136977342198371090293347982471123154513271854027926305968300549854002640426450063008493469224965339638785169173165769397925275141592191061283506468095701551119284977902292302428212600820354499192753871109104412339759226634499586757322862884722503830440824311122607731708503355977712790126785551014650541005594814697039310752923613370083213117797824650485710337332505977948881287226007838755334287592958887688339700280866855065789980994758381029751799340614568185375676250218264123753623670846422797355512191619003295197800418744096746137191191563660932070938221691704712119881996515960359825883054618131457673173459895226685585069691526544037363648048481001035340882533705110262972094117008804640200110512417314691265914143122238865200676434838780928476718577320555664641312057085668702930230472033166664930639399639302487628334947064178725715202395070394814207810389029118947052330465322450837516858513459250289494823580328480037357788001674883233202722225063970676936262026709931164804844648099409561250910288798080075141667472675700148195361970831637210193961843298170811156481860743031592012278067228409561322462489733390908118140110496627381857272812723130118298414245841139249688458022300909797418845715802201759481006027333112723252973680881183401645715554442121817554576594087314141221403373837766446066308764487542663174251093952323294861241153799133023350942842430402672517583547431366939934397470450349585888706790093005134884022476781824985821724255784217571018247764420551755145635457503661923133511097759644454754735733925987300087555553470436779742709960652324389466609560941389538963166718678363013553963196601417897984600360979420311799022692085595893477504743358527025699179102296400600088215856835914652995340491836016473275299055617794673968849805012427780942205823353811086003114310870620060237148675850794956761797098479473761407411750266563940664204641830449578354937277407965979585524871403720188138057707936365744540097463193249122549175983416399965230665016873720781756677790256602193233682090413019908701823693593973111108704441334462915393136459857613294917599560909338467737329148911851260344457045208556555936300298045752690240489695406550441088870997818530423644268341275228713741269520681337389136863463324113435031246630412203101592823940088784752731588957021315628008171348983247121369122191430823150082893938473530853422964455180235451817164537813411384233127672290093962785241947502162429838201958260103750378516354248964042609645506996181789710348495276619993260329880422502179078273848555353098562640840357862113414549592638813978911780783134939966330534961911510013062917726409110727916812661034533396397816274298404398893915783849014757858481951978056016542476945759379638388847057314754820784977760512416508433922496252658959010088614650013469447624564331202785584567369905279081908685375180859574419293818542020838523194415426132031546274781174638359334259488320527715853961814446746789482835517528717465591196457985177400691265552084438564245766839641603535989071239072016172069698169823495722685128144049458732433615990527963836904894436145911018577317524466777888844587233751669482356398717495439961217497225951879023903989520107051035145687195537028238259990084817290893598242392723119834487791064552738966053870727440943578656592316164418068444008554861405585067180801888453418641429195995127492855717312633242621161026508948634692593623944272492910985575761667301817140098015083905352392508836884467385416295136609481180911357147057020830720156599417445918040226345532812845726458940927380639408616136365316457077668295008523489951629189864606221391794275480379247114183212908866504460623376807810416506246862048894891923289528269266221782901936369830369865021257096305181222403295494558297746625802590942103636879971404902564510868511010266131652415593853962120772341436990880320480236465618813987379966288328677515459857141212233443426773614526661232697078697705422801037657864661659406095188387530179922393835076147243804445452194207594660542874908657976431419134948792039532802462793301384110396743588197892001656259218593536108569125039701283009685971635181806922627059227157671982863703340455379966848344503545608911810445686739091823585243372033985077548608420659794243649793097901102221702221713918630304722402103730777248876794118690254887591944724558191112936332201073939470996167342970156499633551632531948240700004419906552135873654100087308526049166618766488825194675984189186602314988214420956968432902966678454264651878513530018345388160980666665563841167561229795468563445130717436094904688232914147825877228201169736193674832315965549291900043485793018089187325935460006398867640299088155541014484968506370373974755451652268223692885974784134527699468797312852859777306643315407787218934662964057230033067775727961981280257816594785315366490552558990250353168491994018677739762315193880070069884467617396818704474904572072097092313867984261719164658578872817445278333012104130519230293529221457487356349133927755144874116546316477274738566030320548254351540295006509724673247177350168331360210579688445810393647917606323521658922975577350758485761486019896997459322282865738231596622188588433413545098576741063724136080986928152468710574033770213758544717275708060974033848605559165822696207381557998500037794841301182363779398846152406979874334706550158298003323471863681230183475519326214408244751685917117894956373186059153543343637640998870527158518610533640306041977476895344999328205417750058724004526552857055893883571506261883530544535828605835800498447268281169109088497484777254256203362733829976649233029624340648460677783444912517874291141068717517720355752256062568045282634164429042313293922799095153218271070754039325609092428838205805252038556546675932903361684019060433479453862662992218550521790690793437486763519250704241702652619935057404078877642240418237390048466473207183461093271391528230870329555414111678830184834569932180369625306513038085126728732705194747349516497797187353387868782913854189994354092120003419403506395339993834806970579499696020469568937179862547300507351840876618981986460810631410585619855863838699497016980895543878212332034043011283206455945867785411478235156102600293280108270744592359176683719256128194394459540045400406656542728291428875438568966283287076448180681342202957145065673496533653535919695073404843018818285538059510750208476753560270708321427703482267866738494378100731914461494574166589936586177257873148162409340457507778321497562465507167421062019272832861687051083901825399879490521993315603293292368521513344592194067395499512015199192680581243494364852911440188834340571985875852619199926445501610524911959867631115250174784349217808043571332410936997665218194728707912682193734390078440451114688976524039734621473189458144035101728548809723119696229313682686370500019444578963436409194866129209784333497629430340559688613326888408428311010270533860334300867932058656267790894321667093512316517256083367235046372503185740466765013739886195918881475682547700527097327403491599001014927968981542889049989980830195242362875432148153113817556755798342650452298014931334216050922352715179215465678890223344952652795361253298787651109731825574596945588838149755685612133612544552276155501379914655102522200032805765631342042257540918303436273115740880442934090537612269790104363365845066624653504547249444809988884488034619240666106591610847516776942211918056869981467843559784395951907677102844284691873861646262471021675648960005760194579975795091813310382611065106351164257635677758502168339125098151125016331469362320792527371093917502787010889939866364756834098340561057649103103886167380908421345768304528546434774712342574944181428044086079295162782528048797898388725269753791425918066813209000524183125762518853742625497171511780862356924949713446963331424389034098909834735654008714311105512100507904191494256410205473714115331103340652843133388840048784317495368578059355325627943252970553074083849865117015197509025947785786638916590121530363800358456330985707643539555181500326427069293908318618725199527587784631459763903122198831923589615276027967653217309215673375661084006406589174320074494495721660485821034680666737759579732357380813745197199442552163669457397922994569284935897592878878165427138949469682969471168990442261298264824530508002301260579920468678184772364315118142540208985318877858475848471966801802487227084653336451695223426535542976729531646439867706400295671873452169141827111031038455094632803360189706626064363568645289864935888527807386928632231772367305394980739491586952071424559303111105307438550144690121396318966310818949458653040842229301498453694423643885775082243237126658732433000899646049495217199277843333008048982969784433198273592052850783210914924332184249738822698134125589206240696021303986497246789420214778672531646361615601712887384640684470555241976483710497007164288131267965952774791038918367013804890584173285511971400035461091792901617581298134769382962913379804723282888966937307712561873264670821305356030945870861790889781049729952544740048972865798868908066362143688832046028977279039637018134208163538628048214756668180290098445554437438174719735640702215721721848202206538645060039951342224124507144104760263172659208481338597039899425336318567131316397957658758562321257071734069871245934321757677014964832993392762888664471639658915026160657226184888247542447218403677184316059259359545535774833952487031737496671030528760159816345926095868517308507302109124213794750550654508827308638839285726704187447392195195122199499246297168262856050712706915126685286867726826720391182649560972567641079129915190691042516300409560275893449165629508033449801832295799547016567726745257484554684213867960654202972383565465185852628392070983144520156053057152318476820681473010269877025806634035656051875708378215975633890080493101497643624666115888213519736820409855227798466249849286297032133284195501545314054117627809957471813403506336525332948410146704288092515464650804622266967099551562553007148868879369530651963510415819386621389950344383497995052478682058503332470859093609090176281688729235141396061852991986431201187587107356883354952859071755590498620403379899536699173040860355513096403113071946437320577614472257871444452150828190174342339950908355007063551931260155100883882634405449535776513198344254787834798108635247857628170032338347421671529618297411845470311466114062908243807411960892221354583751025853080011891298414415450925230074205778558028515617928994560573365065494829854366365542126127433497921806624407730528659586070941061731474444530207551731724589807757514844223750964633021103132791592301203508724838621837217563253956340352641389906164185164179454449843955407677464548772306901144196187854735462708510885069658874397300931556494642885372136895232145931980183410216856945497677888820677180810638700890478080613509056346386952595507519331643309425565377031093599534247798409284197046162496308497784242790184198137101075950622314841698754660698654361134974126623492986751126816314952946095816756296995915779370772035339866881711220748453107877526417247164621803214078132870528094779602264256754560539868452177565156994385239100220987824380890839932943015592255533657202730724917963215772158462766440531860276288061733463905601690049661268652120376399812265716570963682166755402263898904288740234159549651037874553623063475905588137321384040820240580431938535075216162539094294171056599914366170725284154006765742382646464972140697345599453848441110631833508293143294214671500055594575477755552718280961149865293029666479669592292773918345977058640527971027006205652962520934387992660687328594077564018828386803874936076579221054883912433227429047950693094101264429128493671331812132724868159361186241459844157566741091513044346854700323905115709688058871858036714230243059969734438198567975597572870364552345443991051474672429619552260167627320638479179868275630884370982447823422203796712578104102286354251099669772571259180488828995531256935883304223606207685173505341790971216285804797892952201670910230363137028381195590102908908206487967556856189925886649800893384563953246997708708595476770177802148842791918649519772257104364091023404599110465449723909492654478939420154973521109730987351253165516467603026981567301833320867890489499614651312206334442638175554376707698075175725772452640865798357875215068811885874799564505725969239668529689417008042596213216975076688551006486237253011333366384427544372578900842534473439150858129979727287128018958665810732765554447687628120261019960096795550485149234018659501022328070109748830869975180146139352167567623027750303647341270159874481000590785914217197479970273974119796069071734968785467187874450184007442690325564669392752322235078484840367156515840216176302067990384955606959347450229296251302337260396321972583395376732870373845248192149280932940822001207323391000409811603583908976235853114082852079570780469480336787817899325826427687938000628372032747837030032822111496306705968632246513359233968973735590100460294824917517670205848711813488550121553045016470477345722178736101263055218498275211256335459702946525228842458220038884666037010794246963478520566110908680403605611589984935317596097025486873379232089744940885450193914977620557213384309751628851590648906151499315665763429535809249781653523871581059834125370159376371801107646115787826957960624758506301351597353662940983925662355571204930454621953448572285745789513431353519530317007496260408754731204609091093263404270496276449254556989795967608787643988883978572087057702077561991592329421511536109632867728658950919357259328623722147741620240372708179835344139134834804662240791757182806670851772970060570883169291914647594611484173975740161710416930979741309925566831693125580246214514468138834336405990968647719023470965641618524661576303782128441627647067543277453942408809979855576788918391844022359107171137711459183736200234676275352211728500427430612937324790997097108764665936179576611856505687119611484680622198520673766076112276934636514664872769288265549847070934589123425141236116206776164706493392042954349108777589257209754455474535360598381303385005164346756914663834138319825667155516503832875382041364631897782308577292517836744751991223915840047191339447437646385076699552313151557386172432921091912480961157144545206455224393865402103712908656183464916984005047170805566755850669119986550106126291340573428459490711277159905339434289361363694900236644265798360356085265260670692753003190349390010907059499071342567520840569915950709270500108839777759885924320510879045725646292637494469525563081114987776244862479739671635194573280968080137900409797177502384350776906902138642782905347495659565673261475966210160721276575818802868417036180275629725749549988273127546429519342185506862623837933209620963947385378832595535058291049599446022462296332935753437254521561395123210358210612012758980292963228060465178424204955563882299171390327854580854856058304208796623328642652620138978275820772521624785538412603211028274217857496774973906284353890000676497117675739928657539297726104788739918174878715957930269878651067605160639244806899475279298851319745058794050380986691392117745947752869584425750028596002823630108019620052328124694669804947362881834609584649491661502229789181892478530917223653208385033991306145938132948720560196629948530796645999826212084399732173271597995023411962419157347000110856582164056017510539871775498394527421850484339669960554434508890523341566296537495216293644796365066323684195345506713569911913417498192687264089025361462123003584402273997485436722703897816688848435595805449431671003895911782285914606012574082184102184901669531826022424976984159555492710080042808909800716125434456877528200117379562304261794610440483367780497908463810749492162530232525237447013907067342425792545282229332591955589781422020566240124962343338270935349513214914447322343794645468048147307970173458706281621477323104409244419137276762046631071519179476691891481132491091330422492599023099255391850019547643577238472725197304003584813052943944392896199098341930992481084831207031149117321933525576395601310650972446401665131323065288726775353578162057637122662561384048387880250418614033659425814016547377853835616978761132193555134319533614337562598742479156738039281508062200753446281532285218321842105373558462367487344666323444447368225382533910522542191526227582129651618873389169518436531417589171968089818107896430674450914383259788739974057358287915103883160748701521075853939899890531062750383262128426376556124788342490165363403130598801709503746064274362237432071580334786643445590430760871109390108939477953750770929201763393887810951499554860072901228282467860634591744381346636686808351439087691558087825693742125841761992237428543334236111960616536197449524161379217661964926954899964956492897281952341381413671753198015630311010208121856669196556137510220288052517720291490268960517265808613598625809314690911230232683395782707422396314330165125210354800892366564836317436116876758268582169839267085004480120884007769496012147740039597280874170299379045525559736157819598464224551177746975964688138246310241065071033014337887122268571206800461933295235262940159244787067414810454525115486738250603622996616161457296417058212129505212203796612348580936482794883397929784168011712635472571453293505804428102862173663732381367159872113429911683625722698496015015620929691737726114501707797986995824556923231379461132982900268062095284278058998512288168354987310515956650587185218949194185441617394106782206196083836958191203474154558140414699306742642093518162581059116483181321599701355945459837217466314374401583389435824212037227819931577014601491006660968065129823989143670997613915051306781550709437268966874055235519785080419969588139532387897079149217124407305933720444663498639941193217585765406662582805116403950002151406020209386332554143749562192381760363440852801810746895626833065662150521576430658276641940535982753600926891141782155925916923261555479010609488435276178066053394024985007937678762130819813808061778587970685200874174813916922471502684175523244151697429589222642891715597473168027436454316372584660162438916063480428307236711633097066797173460259114434725213593764178384559386775329258645651212884052688402877098400237996239727083007618447459050252301804132407863892361437701951984598306136094492852344140336273340630285365540291301262957397205233444048982200269521235952870963265862830030260856121729229433878015984898903549267587879673994908072826941311941139336349091825685389218644500370345522025803471997901581271367631311140145071286519475645398888281392091254750291544851811172416296161063958743837802678758678303739364019162329958501579675559400366389519465233534214909179802622690807481755417387723766775837484214683596845739018168530930741127037221967265295214980237815163232963718756049090627345011522996451054608752717380886927287345711492095045587194102713687717062988473098137351905409106151098249668040617295050632826363478051161303662585829818860198825050172675252703148393337704602182467169576523911006169166382001517538579429340725546850909196679427471363599215586115093925903278473413973675761503330103384471014695433731737209452653392788134328724424471696372123964304576300501778199585027754974593134346918835854600179226332698140884060688907784025153508110997663244734123197190889776048366250604521604594413703718862325117859877159325409935559507849488408496780044103601314200651706513985269953064924452601435250705414224468341986815081983429386533326518512994320580499346394888708544641233941898613876108540865689784797394470791207790732712189403420563008013644682999087059131590315493796320997697668278176967646288496274123559370776354542480139632962505319851742716237312821156452032619019680060924513727683311868109873587295837436368344680615018965563527229016018721125194389455806891530928571827741361696338004783147339549148892371435690681652023200415410392419514640386602950093902601850296259551889540610057759843334875276052073709380397449408924229060097623500533081736755272807665909215122641334149569285005789751533372546162526195374562636413944710062881169712833229770356450952918882123527351051763594404265678833076451437517627316059809790847597649571872398647537240268887215031026229111944901882879560044854033899309807860137711469877450732645465657682356826161941741487132541997203575623175542137482113489932841264632185737375204159295343341813629098403261433746167163632447816102031546633412296779908870629279551906726866018805414348469651175554440245271842285469546934985088899472696486771384174081858758477225304259326278599109544021903821270730313984634124769504948844664043699665340188942584061644408466345289255032532224914819407436566478478304741123156721987288522239740033446180487815151031501701591197483578191088997672917703099329644805920773751798001024737803753035823856869230509282068958739006829945621939621835113032096962070166663025841023784810792297638482506108154616272850721598298028225408110909385255148778818164929939106311008375140240327002879000681196408611108218408162738067469512615523403328936657123406157503860429407718299814250709737039852806144791012177416476844894187795627463871686329250027833604478779043155183152296570659025702647481872343600769255094737810428004713507491978286883309271545833290028759394570165331517441382956389739729097687668077762798111835630774831202405160250580434548588965642000267040277245143746400045808568741173959326643439870049981083415385051394809004516305912374116428326992268744848489446258882291965900450965774927893081014531928810440042073973395991526198650444701660469941377581651644524476530067512686305649085074452131837996528513121787851190720394055913608689812650831857489996044830255189320539631688005215850143530545462786605859163768342098460304752776449137529898078756358608728465013209347084012461550149916520657421341162371239720728711999173027838426168301901978159377122527471032226264821898616655869968956466924705718882410311465420128983902514085772805308907794758883731980371350227101832105915883758952175834996664694835754796057066941565658786997671294257330138849244795702149869746717161161315926150892073381456466471957647016369528232264582361890017505290603301139647740311960492538311282391320277705370965077617010467096484812741998061361121287854112863136213466154535014919765079540753346296159299120811439833320359039423596671783986308914067053475397211523007175783987115797543434145977565419670414410651321672791958818439335534558954081027679255653871720296946626271700073477249169325386000893398337221593830287154269874964361776343672516900849960910889779840236325281080825849702897610170822910787142127094350414695467625251863834555465766608947763398280186691137699395933996646891259931469266970779610561555103312123661013070766767585043649216854806844789926508495087974819487368194190200615737864199081416652002788421753169986761883489853955102442817966189814545885943077958597568318359700818460507409254198899780752747789811726098786231909863929410177546577529809008180787006640031151183686471507913676197900711684177113464352957008654252474906639149151339723241579425010772224116324830829565319753125523445946018573601578798304689873384421370691899209567428990533806207020625098691216280699524929762103133473448941331646639556650976115090002618972945314704263285827563651526983419116286356275695262005732355964842294084986908714677001782581380503169468491146350372455196820829524923326182273523791708825516839827660795874557350093018534419332085290660385191349549361973164216949849610664693523642111150569265065051909910749726303914752733360175800799810389218602225657571553125736849104925471676192789006310179236246668409331881638517781606964442703321953140438446591905654133621893113262118061335303765625016084560152490782423741295498047964210078157136485648641615585290556121442544521915628321908078115536508269300227771953799160340810115799242629492775862433818082296916954580932276924537991773275888744816688478887343851692529487502458253035317453495982174381899673136017077231736792560398432969965872859274401070456096390831618732279471416323301233979012490196013978478843958502648258881719488525150730122314164219475987132437081310171217695087408373893800893797433047262435531947192325879919339103444864209255322237672965162968309258825998608512330916568285766049629066322237651929538529929360261537216234847999486344890358990162602725962977999373201143322607175492596408855980643055853553788406003708104193090630078065809366725048576541860268475404033804477847726054161792535980198564433783866994961731416647336329102431876898687473433470486371543715078433114437238860333109662487225854498851861042162901730600488733541604962670244272949034663052028103143078282787648879967883255861521776300088282586904271786984468711231534780747044139371714165075201175201997555448359042772027020701199437005738781117524643960739112696147157111921646945421801673712533241809788905760415323043275182834931342522195918899123155258863772627936512782197115925103718208128852403846263222381313241806658656897278256060163410736270241837771295736153726834277501922535615639481484586300894161725154499641718714235160351857083661163528049979063429257846186080724208693907426831373387487874913061368702734485303471273868646964690575274330012281303474763579675888548101378130149784175335765633679638320588161874448243492384286714755963896055967911957764394916414968391948221325995993544879540954826941625182445798222679608332552923397835063466445808632517929320489558857191737454772164815234263881339246065009213313032121402297741508171418414446040641262366121697697931249899501771249883772107832422890441724144083970281501173733046857017809830695956333635261403601493825890489508953730508424761677095271972592113314150695783020720534291112228288593128022402321064997177271105578470296927037228593680503412522217765438044911891696121185831480211965008880452521879038400263725549351841307530359854322495800909776490101645787907250130208114214332014147354754118734917673971657839779718598517321789050720550927641828009708920409536186964246906368839578106231946669357192430342044634354522115912747466870132721460687298553423561504656924067997351298767382703890965832618670147727824979212263362542185399056152693294291918635271301158687920121554071031717877418351572241282272557702837103269001765222100705016569678419086338239733211254544942791625799904863060208173211836154886063212789227527819898428663659598758729967367444610038449566790061928718981386958253711325417173314687272384396911588923087830308443817985691237001855276052225942356089880572925052004079410935110652622155721906936752041292540429942791898862843930626249736196154983370148303147448380419951014370626342311020027543252070895618221282574460028609917199860133393770908030050611822939987687340596519957326593240797427825500891127624467546176322432267054547736546711330532616615272237828294456035437048938087400582583943862527323628967006591328173741194884861689681498385108902447226044113863679924475934695058226678703265151649476685909892131088786192543619378368322932487854269503404063310190424722889215000507579100517999006314279646120472719256756917413463240852185309444532985482947200580982243938308258885496994929019768649700126223666208763143704731143537719455252069085308841805137719273823926660390455386894194011980567756517664762876514008668087429470441051459226922711685036292902302998484148687044626131811590873542402239073305450119832135089047636857868738863344856400273663888581964577215537970288591195810351439945883761160502660602209913759978982233657837068701142234260723934534735956144399230180307275699079975113762747751237561776962662636040998464541760665463104250191384654216975535712284788387389186247980227011265183038155692765202652585073053309382909593928004607055276031229144107468561407690771457468751956517911812971550849072570325486324689277950080502068989924025418298540088750801279605342482285378840241939296079927210600486218747882536963325666109315306280369504207017029119530497729329512662809730282540925683791239371264038372229845495711852344453139813002275026977535807794030857658781310545819890305274245846013032383451632885632584493534102140417598641774190299405352869413599343055945915118244943703197092364132150892534605872397299893824223225509164285930705902986745910442812959183084806220676573588949815193319283303708225480116839084725204421487135512166353486225831319160589557034167604758151373460838996275880622893022469455320795888885046774073650645147504934325762336566806900271513724435922657423014859261443707716983184370594473177923501564071108592801663270283034772407522619590765218039998773939408024335951545975755922655992132231692128342626760528915231240097959030251529356032223081336582026181200424770927835444988707179117096799466723625172749241174434925093781357396641056228956874570594200750742669356326608684948467284546319072588606341954666131314022598638727630031429620805173714558310800789897705058896844545796587036974266527890123545918054911518248585554252344575689043022727747673857311894435257459520921024617947571448318860843358483227161449173554497479052867787223764825270705439930446206465621451272470286568942887924850008445784392489296434341647188466437935936309545960011594942643314975874350844826275318717032403274246327072867335130243305125384148464988392139247349129964076273827916990404799646816447906352494156902581980971292855973851258274787059511497830809635259255544138632927240314380175422705692587900105535299194134622209852205592718948931843003794654783279568049898462762837976834027831269845737652076149838116052925750422933518650157890423931183623550051877378329068729785727860128015609074855424966071126807693647290602038440315154095412224761502484859062802255500913501428744752310553832077915771799205471703733641700647717885853477911759078046885692378434721088337840788989446561241823629469242043410789263300242614504999945370837967691461910291076859915551616770934400043679561592638399366782574896045554113040321356077842282167639929468819134481941024803919265358544291997602036813662575886862127572927593954900188861744051726014358417884922883360534418870000000239550550326555431830676333752651368463923024061128658515785255082446240691747929059221974187849917172651061916535406457566317712817837517616497298233521537446453587573222842878986199514846315464875169068108940991488148547602702404170912803780921474324625156254073832255098518298410132290448784090914411283695288259717062487843500988246261683825682290183706460768919024136816791456423431366151336051287561689287735545374939391122433266386943312281897210419861317837593399443086033527264178973194843147419622678413778550851426232201850033674184237647450828823402502881844229314735232253687284776207311916037606208003137123028486346797692494638436031498882371392134172411114406306002168814264185614420218635907363749532734179588156973635080574630166245574435686399740160339535669387334451829994041800479581261204631572519083198521145743480696051376638659549532575677917576537291776558179413516200255979052420450400174985214345252180657960931801344463567495134037049322313077502458558970847813391359585417268924025997285420206449378289088839551608712907091193526889711787320665393596859234771463837615809404850290424435680699856872738569901575636032112645465174693485747157469204858343155561305194411302095919866365848648884853942432313117695753055892076487709944952776623093739880939208848660139284509466283284034761537221106820620074200921396789174875904266708592179934959535713266454507907633140200167541985544933275880744557387524627489652209872123135967535487824616286363292274719335973437948153049686495857146006892045060363376796049707006063644014980646740602858044121058423045994305893831433093099207164957025056653871181614592038878077395057945649361423222437110075563793671229895342564731029554913229260283045689971740804076656816082550968926443817579666150229320185180457171175424917337261433617961261396574849071185858716110898844653924366803637763316182571517033697548260539752941208149205904473745523365548090093293895179645055679454375128973551138949459676615658043220620822514752794530295699610908230825086220259746623693121247641439742806784067910716566783549719440993830162813045987901855876718351765118412727510377347679376059428712315127591602418932640489123672504337059815326147298632065108631711795560197138449415486669486925630807454448166195473824961480078442383497350630979611583383218876248840481555510181990486965890591181238544923388650253353751406878598487542533131048979467848035718862642134131568282852454210465066876063130985197622718792828514752915328010215358931115623147686708013822698542800777629137030895077157781049384695131587030546220679458597406707178591517615565976553377809260992260163278811460546890366882259254201928269739578571247474137564455793260706879690130409327711592441086054759626569435634389195865398122898551404864650825006759851247108686199789708336023634056907910596641900438804787377231689488435586046874176279452546073455647305690379425272527362758307104610266275720986488618478711039306523346086589470666997360828873975445897570469197492982931215357558560115193599342449064373458773396340582707620871736064810866108471583409730491422732506528777574974662602732232857391861335790020904740556021583102200161612298784984825391283406549715100187017123659201260211151632337916328690799144022719042265027062263651082553872800358436679016750483281586493341929238069628050405341904761575363657069798864415495387131382930936721494242052823511231810970936877432551029028381952017460832196021390833818449132165371244819177718937834593993317316281804740494251600509836361697680042942654520706621780867173570053161368198092225679999750662059297995078963632879262824779765713804042829211528006944323496542881853195170834075262096407126308547607009324717839225883053786840207155067829258248856230506049356662765348057085944901639435588728792236815498761416855283656689326827632173442398381351161663177423355592857136874993366146326975732429681250088462747584440017914042596899403126182908669820645526935944284876601574462799534619526108131359308126414035096328871484592633915523103897469709602754498035797899293178706122167558967434759400822426619221651577455849321892230985388988559694606529872889147729544504846249545403042134138451323990162368780531689474612402397566831805550350789605729552923185181283406136097460784948376682938567644665558158483073291525985825380627476264480934741099127148116791770407167701391417925859289798956970413408104916857629115829127566190803684537483523361139157802806484915220298948871945393573943985117361040198174319604091460554204793098841091544527484674237003282661593032447703587913071217821488885774237561688879092261597819251058940488328273418463895660706376712811041694259684857266614791209200912779097127007159117942630506439080006239713745094420800294638307372770907569472205477743593416417750833514402533337766559900901964349490813567752260550020874430931277164481789045289295435497202956994735075598850703008127681936014317027154607047217093873711881700164084877076226407535981555411335318470436405333574980473018996141836950425191553449076740753929686633987869707116357870859353305185934534711575936182669927119332585605626161190656520392516701743181360863451469788568610046479340006325075487234474805324831921332432473580869343665546175262304953768572321552355205144232331821492568860939424709600003427004630962794677372891863831191690641581938587732790689855999909766831765542647956742160615155243176996186513540240561171146934897347526680921902762212387961069465051465025337317380494665260564613558554815430956816936528091027923336565226783912999036038987338333467684473617917237995250321049035806789957843184136897389042788656904097637640321320476179238096765232468461439983852924441098927576158548354550218154104876687876843171490936543200946111367797239437298796336788871934019852749911991869965180159210425598277756203616295927114187338152594245027716784445090588614168337637553319986558921075816377095804867629647469947534311782962750288679984353699807132999145570553037643213027739466680332611997691988470234187848368300017253330425830572953178463129963687163206603682441059718472471930383377508546695635696594422082787756955554189579819722336404566274403309321945746355709415259178174246194187323256013598853960948217693265836996483822117472672280827800660343510529055525861473513571352746804726517437866045374767101675974820467774458914416165422992483956719866031979627881940143030163225788727633724656927693403681745213715718048179252495307743600974882494561963747558171604529423779791730945775910721776982304793736313255938628740037292591493222882572528553314793034690999977462586119636037094997271460066457531064957686535460780601894350981745024497429022542776375187248104627394876004838507511991419417690332555657312535594254262033471081184506377050764244259529320936275305836600667145469990811779733985582877469662366397002407806264457423508579465410597163684369109757779812368573482233029126811635761954613356073303165163980173592357008673950321680307399928240458792230595654759178714866320014385441284259929245900685986160731070947634855237222992289458848828682548333556882475991374132074002506698476990051404314002243619901582539552270065812013272269982381653449121929439685386528007723990598638590344492562260213126676033088399855580056339227235140635041243046155008520025749236662083466013880820070902805694501205068850544024560042486170166265777437161998394950489045928524380458669869522611315139175841764353314328214471747713878148058522159114486294838813116846882892475729100298559705290088827880770738177310745969307304773617921762824187307801168289656694998305787762961274420676033037196470308169730952088773424379564958853921258440102014982427496420235762204922048298714296558928562019572567867886315518654444345475973936637461321658481954929516973926510471037502991073318470887201633320770217088366211198702131750790270464810838266493997783261140715117211248288648241293222788307463011175591099721241161985877817052415763864212707539709142174643005897369548892885043390658078612371931782806478956973166391857990033269110861014843577355161962631688815295213635602098401753554084884160349616862614064810700392788473075529262944848634728252275777161163908910943046419859272124067878267324932675453081354723773050102532239495230717845336110705824650988095971062406810418140579128044197173928755007196413199560202427968749614275241302474354251338175384475378283920111288588943052538796129290298445112434779854547353281079939463059564225335790117567696152609376123394136958267809006062318530866532465406783315154398268542693312692098478729242674249819776641733825014986806826433117401007798695907769052021533041280539231168652424453280333449643315320078102948189126798109563610838101009736888710671787672465995955492774314802562187640782772582288470356993850656452842419002225289136250211984023350360928196963596738099029146347200624979662469597868102496231427010067384100431771038762542174382449509656769255313311078583985157623984742780265351151570639517287532351540598039605183895541822191988238412112923938331580809925034976430212055378188674174221661053911013555033439898376767281121170311294889030747323564924333664476322859490181526529805273879397533943980011269416714158509901769605155251656419057271278466255988613279231789376319439339165913635974786036895424761862142871739606493126146554322625031636027077595943228625629475154591414674023138533419304752013688911124244625642997496765494256323429157646620245317280315441306624254586954120542108093460215092744048996554515644501836905327379596673544562177050520194244851395605868749822285718001938985668363102811975598971207272582799974070796481325256882133656338000248044970045538961111695578739976836925754501999178126266811607084136692437311065233383696422121901742531734341711511066236131811295601535260444093250122552567257155252737478570117996097210444195910817726826456038207512566166142214278017683921335641227068225373589067751244694143710999991657984648149400489461007219984107787421475289795714855655098140425145177678079589503145691692998012648994432437231432806185633217088868862019721100350878820639238022472882384918155794655906376321239573559920697755274484789982799858827300139409343729985766307901492751851428244651335869078953748278295634330029878712351790327355043391737376260162250355543567240199972415882767147675261387135140936327395879117710754463603602387674764183141364185763665583975659540842945776253012045498205817327907339152324856937843280733631801015605188425928092667672294949898617620903549835390154103256608102438687826346590915151753928785449396647166824201161100783385224327478070738766202847879496998198331753958361354674258229834595676112837307125219706925558656339608651449135653737208453388230681376694802506732435560282525324120106680674221763068582927482214579453050261412335523655758086265873383810072448508586530899786716308330266181426653277841284794750814051415046691079494548358281246682650878072779407171378794520509446956026148512182096689298484059275830986577766056435241441297443865835994661900852393697364760514090993474958535776506362412786984349258485185838984746653455048466637033111678770474316865041865894099506678739528239281652773758071276085102243039423481738997560048426359572888627813895114197979118300391454439084093844884028456448212063966908150064837504801710690969341457166541999308252985120615741599576088247753262608087786073221829966779119479644221443133983158558106840881230204676582704253559850269824790612050738108849235685482961435052846733624156907460823088555929758174518890205666788966345153674454879533785275526385047120660587239686817486777692146099540538949008709999657734697873152203018804337166228694411327015720543407318720507504449025367164388890328930854312717640288825519166976750729217442780850022798394135436949885014379448534012127307283317358686080308646190032157924209018640308532740631500723011014136827234320426316825202059669448928475673994466618674071439986446454255647881450659183993570321744129382056566391868141370960530269085396103958707432373856022134421695050429571069226161867184071932328522762393893043984545013037684094431281145042340009770377111259931299562670041534922606744508431307976429821813072328261287590472433200442049758325635090219968466035011300754199675501419211838691367738946732872014509776606688309032249434793356210726689587375846638170542855829860191755764604308043780619335009351049768316551140537464187380938526994802693248356942981097242743213751313669611284518141488447175173472581282286926866407151471312308158530298232362503899051286464028315734797506079142570591589982643973896740019874838692667102851413693200399381542051328291976601481102792265876257452583099247391246022230710132257744135462417242467775780348850746459224150777795226834948447295208405817454006619193641958570763386179741461968786778905962492236591372154060665528192503398931227870888023968780801055636542984779331363584302282252068766704796999012284794813141119277009308012533229567344137247654893843730227124701261019594201757437359569428939772921189017692717467730496581225489438749644891724673748321344728856382943713522085786637439074207887694294776817157458422960272358837220012956256507597399510502629867606322130391964033523925512139903014492814912371556483192449940755554545885711164421899235881832991081550668950193244357780885241455832852587065394414287747819342034106386889270821056140410956881612200534234589285796732347222659137384552451307351838627735181696112362961215809702499129740655292446435653149288396945787454913345930714326133023732337394008385213881915391519036776321578781955002662696284406472936267815193554088935673390228421364550130928703020210432664118559364876836459595205383862403937020246377165994822057096145764231228950699790215841686543782320803112492777762429484836731663737230573513894828140291143965806296372988438519880652326349090400973796549170137660953284058854663138506384990422739031305325990424454647474462318517493587409881726780504203654416539251891696432897348929504362850823797247173090535256152927205013690076475802146387690127544456045399376176495145601729972495305250027778457478355730778436620748626258098065723256672923341122928767138416899218184761942803586067688243253849041242767625584159689767151777438461462686829056830709214165374458257714148604715867159979170352781672958496226655216366593912704437366848574532691541675333489181852012822593139760746374125469086893601448882751764263612727651540391371403002754953754092952412909389366750418879013141486792133324830580310396526483432995359104704040346993189608266850231727715638851952608471543268803575187987468171800056302616252942976822104171957682735082757743627566767435074081661432548536426934466984193882480047309954401914422578538154924743624703354560774746909568326488211794339205826631686478445140888852457277587187822450139833873817081527643931603054783306366959926371554147498441835870955045662765621443790867544640822616071153125008373045883155256367907591710384652104367579083702258126803894594871100852630478129640660120602764708805026766896729529197780656186304534917105153658360673822406368536235247053821171306868921647261058849285758564222936513625476023983072571603357009636098000039360154556982607600325224742173281295198155982503990252155313819007975501515165830504674233539280689010951513931141059261223015378161683356168031555378824240841269016338788300765431308387443523392123512503279629430334330031795058330345900306752713808937897993169452708802457559919557597128247304626631791062354497043692251687529415304837621076379860540323959600071614239920387851378824133136433426501866488516586171989307130968224388353711383153056037816496979176869356637168999700204625711701389562001084178518435538529009844699755418855297579462076559297362568093188358554338501181235604331424077885024237791172003369535395319521990362918188959155554136203246286324200489801534817189761036228108622233310940244217577199439222096789482592116295880005267693167084590321541553459159416030951831419660850669803347102788429714544802919363774857217658443174254751713612130306787330405605026814549689636846640630835155511741008686122858638783589016000132475761053262568522620399555404309449390388134740810497358168714805801007555860197389739684146668599015474932505844041522039767406501779226085440928902800428811539978050141914850142959581456702839716055309153276116168270231012148702052882536704112935512388711941422925880218554965240009604746071290240747412492422094551867852321322245966021140339636272561158469783895607106148859630829716832587280925120054192459846146580049008944205694559348990463581950120756418271088155019365501899358527414559639823688916429641969108017674136631853441678582782571377666041467817190175252170500530114522413583405848403060732288609715670084215986595149904382384956625577754597926864276785765717246668841743123399633628702896544660244836468046384499269149644835041892648509698020026187066489235379538629699532999269717164283578622121901663437348899182271571010074842001683330092280485425573148373828279671120349648660956092178000184459048096155273455726765382164392574484355942858168259466661629676980455610280383963284526990774485618505000814849188728885414910052558882687736132717186081324402259430500863520191838746668555039240738920671254616819288308641617288549963474947496412238472254001770259126029058872906410237367184566704813141879407284636713118433180084586736667930557469614071847950482482542594673255292680185085599570255575342017667617344716237178309220159634750889435513694531376308368923979743819608712287437418112874996693410692097052290604385639486472469842064976014876966210172960303630727722731950461928106517373232967501660397302300268572627416486927602253831263642962327994901388393772205753408703326244328015801360411505391543581266285364417990763289506065266991145740431940269153169111622957615935041336576959381914023178430555211777245065189538730397864541806007517478167350254314483498703757481567158347000455023931243118501358456306253108082955553501787703978473582287230392912374836673055561817230420328827816789157070060844397970685756717900789992364729336633858296680488248346922068502671772769589613013570238699764351669979076037738378498144124385729573163258871129578701893240354170329866596860629270302568618623741976465325399097963935187865078694587770426750310423855453292827017105474136975598644869949724236946392733765194533838815812246065209793220820452691134893609509923682322808661154826107486515765007890677454488019960358903148066956308048175603864740161181978591784439786570273715022701495215121528083166636456778993858172470502465414344142362837548427559540040676197068784846811941412144429633947167165031625540960689257122193135164263672528691968809589993423409812100312527159695612605888166758182669424464010112529378733367190430119881892057676514392568492217893716019458519102145479430515547439582087255136878306756226198704917026781646919010852478449954602053905265389943625506254027414914928673187932343238235480052600842931034098915564077383002584536075963042657774459055853162926767527477168373868737732868033346081335829047855814247034275119098227337857906093960408590286342021248570313968787165206474005373644392262203395515173671627094460318866644785933254503374563672252514616184048169824394588668908245008210341748665792499334696221890715304008403222579965564687100241422014889282744076814212166366437128630878052797241020440693710819982476215847328790704909260430669942098296908428091321439759327834368691074430533993324941330142851948443726783517386521582010554286995938008264743242934906029533386221188809767335275387410541910427621952050699444599083442337353301957055527670785625428826534016132911994961617716165222184648364549243647936202593723407263080002955676400204046686849676532504618365584834064260349344032861347373637458502063642788711205939181072944336534275350800924205937363970742356254008615590774551758439126456001356353523154749471764123238916364215545650058130983734808937465432742487406888152301250138396115560323361382284525790553084199151945422578329461366412377551808138283694471447354836352886569210060463895942616131414478966793889488167183654986296848079132142324517985531831891450243129199695649439234980728591953784409162731262485089433755457859759354663256224826456265344895482404097365749851008314376948237308622625696729477276173929225405638423585516161355903578374851371963567855350270353373184233503120927799232437047086889279727551739839142617547957403079792832449793069329070653077827733841720476752884561726640400892148350961570394035287261909871253390509750638439786610639858275868638578544687123854042143312760245153204122199307478125927910359137166406649117338829910029979252249890446670426063762774539901155396116963161460881181856175913465533694653843049104026075420994304777978655628088303771011676272624088076521876223656280625841075563591862158517405094205386495220276034277362333450266023714490083984495012634705242985798178781849676113068437280925556124253873588187000894633721766239613271657282020577011635027711496150485674412665525562999990274949848805468065683546197875933655323066934404558221723003536942775677059348081510491338140625246651084248108398081580415963776179824461220037115225899383688578535545469191455192317526135545179322663819275295913975025801829200800846271414965099467457469828828019319833211157656710602792115278264142282401649270487253028747114459179985955558165036990992717851369452390778091395552711715605046266491522532396105322573595582153489837587916477302185176834216273115049791225933047872258374865198153654132218943896880777900198108493580604518339574841414681234554928305171500074689054097941147848737699521416528695581954521559503191584768754699196257058121441178885866429585981070231666806878131643898233299007380583600607555378178794345134937903433896905507320038846334843733895639724837320510992719043456748035012134328124490062785196740828880764413991618271864441585511451485391203135091600483684868655121643088732808818961089008744529077244059055766097042318188696655884577993928861585074553115476726643187022541331010958065242758152035820571731453947925566376005453909698610645841401265103138859577646936235630495386798891671596986315138434840064699919790606530999503959368964943077085057357633786694380118127661372269125996095750341497645320464418342370277283560008088976876208484558042367843477775317241093386377260838964887594624980225192000035938413790239813032893062018330091356023294737074049152929569447416901197401978501743766884262568323667306960571140651266487101127551287429033239521281314303564501371131710390064254886053596801810262412818054488705969593077421143339980654888172596770720635227817153619111404815580836605335198717711188901068571211366113580241617660568168789508988384636465485279290853314679888975837276862549669608509241627698668381536606626245818185094169896648591803958715952125085174696984829351374273372243861248518321206312667512670002390650600595828348325087908710400275394537697884521920815184757993388974883423476713730180478964759175385472468320921178805410194759631701398300407076351158265478075889914094906954332652144434748453260331209745367877394767393614990304175162310297724570164083781668383631799349264674394827835681225115884206295360194900871809645284390285369510956974291272778410709424153862347398084457944704427724160151118951884549407951914695476117744114421097841473923035511119644616396940678221617601316669808000229933039024090568387943733190365925455349191937365699278036647920303408934392595857265271477128028540176733465050279204367081771700778269710898921864890161096213263803076811569154184276562291407849782446424486285501583135275286189500601223574034733954424562876348313803903356453438331032992106064382273887946502173520558351281303813237937578948850775203590155492927712167056434519005901986576610910659098643128009566891472215546796806518069114506957323053970556998014431069047337138765017114277754269258731146525435066405545749912593494373028394399743423728159882604942978294654424485113132580110309693820065400756542905933415856856050583095126029181413448941383441252075418132497081563339258465508734462469150795243523090501559582503325349060735778027115815203483559509996680541956528990998549524254592998440595299305106181892805241229005062279063645276359488131775093313276057816171801517916519640117933496756617445372952485323685054275529694561460055064611859705029608903762219515760791854663573776641982611951620139988121470714146165809604947849324650994987161560177731455393170442794573465565658940988820338951657387116016643560646907407581142599308897971446555762746532079697648186606038736385969695929099871252037799851758425742178517172037410316193027590763812239468624351640816569282729952858251689381274411792203170830231672036633162813098029007786898050754053084496862117510257515970189682751051243622381113847820399244630303221826053102692038121354014153362339079976505674148320633108450779147982587940893303154369446445038464937746312505345234841653497477020019422404489241193102921529469072592992050507606927607568371842167144681412172599082553033730719510607502979101092125160965344278506640395947578205599597466130116395610412912556113320315959481010388716250571588717321800487988512925453989719190186290740989313476054926108349924604195875253441921594356363232212611093270061389700619033344032129103187005873928535775874746903383802290927642556161264165486231229770425770133314570054395996556247739079500418782087207501250669299522508449575118864024405746524943046957512966914767143193653101723878040619116207389409036510367684194986204143520439681474411826931331482692650297432801286848934847900014371832699843864776372426679859628855384686128428218496574183771855512188580341212877116167200881704225265905177326952946273683673825399294979765322968486196941644082019745025047275046212872594869371283718602196794101484473236116525568115363916724559136446750748677149826115491716987525340913297586661898148347299223302885270560352872976412853064334900798546980428661822561096249020125716320775731386268385332060938363344273825991295755096657874676670328920795019022607433414739619045834264831890212515000456366599610265007113421424822737419262215002095961950154662962470922513337542231458104179636382433088024489619794282257886912975248631540995323528663301264223104263336727706807105179738145518128541616269886920311211687261039054226365516628661787247549256887141716319413891356390488888989818638551447546565394360095482165177552385863239088073100247100829194477087427806328203257716900534849234056241401571685892558864952169042809582247034293697308748154217748657463501906232816369768346089095512235482210107768881416307106041685617585484149145579652032506979724232166450699920728175857875575389839716709856456593046085358996361002521093668386669469925819598146401704689506085794196208392047296395029406126162664191830527893994672711394561558431446429567941796170506058890725978511652739798960961391019712381844943583416662375865903428500999183221792868125223860915256457121236492605939738239644924606233402830406847818193415192857514326084552997177741438209855827208763753361970107397473679786540489218294811204408519816915556114295646662631185675941230543643332813154590446608674530328505069192748324230813565310231026283791715679011705889765574980620349238659026292590308105626402936418904666871303378334458624927193481422610162407917380537888541925508744818791635861503954709481223625130236884212936049339869258490236331483367166536718466295697102364422410849200335282363068590995746093206707657093354821130153223840227378714065993537274759184170576897138138572485013625545260702036909627572530316164206176060281640773460701919026547365229977543461035032707813916924722622328251340871610740799452108876505978200925354070259245177986565593016196209313654564488969855951401303689111567288971404271781066506186438113181224568685448200123815202620921685137520681970845198258512561745073901107261064785567499088496634490841947570152777851969993250966058193188396100074460882491013567487430465756390177323705169675907267707008264470226451638609650156520767158804453555552800176358889796297112349216634589045125550009205739760652571829648780256248044371135817470470835986575836631756181422124822458838865616054376906581138538989599202319358413556489059709454041587877860856091463396147077058406939179829731128518532311668319146904098951056330665460607441405999389924523694652833402993887333600459120096270474083643946367126694971669588863772336629774441329030193424798683756805995107083501538679877860992283742565594387175569832420738844294104026402264565335837793827089973981694346000384851250198709074787551586554687370893919979523619562271901822330325634894501492966723780841891564891992905871333270025621244917790536223852167768926831963920854041756186257253342990165823904208496903822533199714239979340833575048009725704648267513730118030870851289743423678140796256133883462262240577609059472098262821483406069149049308675072504645270196706981801978399272805526761543910486204368526138262908950692212700790950143189403610792511570503182352815890187252693601466164718422454906158473774379511472883990099712336500677497320871614279324986699980879589427312491649682414315731404673311663149012596064184964967481337152190614551309993052619784708804993479608153245785085262185820612198917517322979002290211705724744253682530624320535795884252571478269999483116428838243648113578648648339972258538222179343848648220454798534117565702989085896213564344033132447473022151322331268466896617997345295298598001482220942670466480848269702070047434564599890524328573177923247043192038900450809406997370901093897745650916516493110796374745815464573725915393257402986620277184793661977085394088762319054555091829179172322200403635405913195978225161474654795351930294184896055854736432716217970963571756218107344032266901866206439065104439038300819411726983432238813974673930016182526350447537196995737119820293556720051743446717860304034305462529024491077346738821993169021785100662168331241436855032954084099846846269158379608693917542770812263705246526652877650386008618457833598655685417010376620480249253324769138211122807289599171033293157283350853519370246418535574222065580882768769851545524264938536584666735142145080179091326209167218845184545423520597021065809149439732761884288964629984185407214709242087366139334977546800007867068727324352916720043079507640233760811945954973795957218979564901993401364217783849183096715697111461849623897718776866242393835406235694154204508373798833793743017982180495763710400578903583481979085764419539278775175600563831445156210323221352326924609980386141854098861279659530567900669834903424048168935305760872612533049263982764818935134208680449541982653057610936693150890212411850039669781070925169564779753908799518745853993309458753754633649887511986303324903245781640206327230467200188383902604917744912506633741912762707104099862059376183599636929835571364123796866552398981184913324650433484420919274104649596537394871482449912649988328753027591012573221124160797738803629237866064815161078127967378217848127936818128128872411560406851331226964123852894483204022428742556880143015639647543090159337142953013867681384600490475899323977887936293297881428757917549872707029268220161197815383399554356014277135994750662606659151252367989976573140620919622605805561320113812872933621832376440202967114352251402574689473611367063454733500919448169326393711607891789624103370361305306262361955041636408279808576374212655562104498373371913963286862552584454576921873931987229503361859166348802913980132421641703262727206675790015290486199515192109799535407766707477002975029316976750125009898316889507991025842077527166842210849808376107954934716323582181473896098301730345835279089972867652691730472902282453004391163310825051958207250914502362310845401266291506013091837588885482915410689762689772354577301770207226403782418082718561419731648936116396044901531545949995736074446795623199185007209818527740538175420104789298223910098760764065343079548562779773646773250453850706281818812420336541185578441595465486389218658730940723649949684834527324741847531968310856580704203806100704872842326323062401914944122846099171108406463934573856279482719070674749331404802794262251624066095322450386668331581967421395059156898138465885057014457807668646502770539278808284272768979533893034934041353656443225538357455972445479088895271717732360502797119950581561671940786419706553271610180595730969461692983136379915952620822280231560056412622974526377898416104976140441430957084396679590000807859001690697190415888182074329437449437773693300114811909364239510279424031650083494672727186537708995821745671180852187393264726512891239560173243302910594926794658203443772766303309911938482519229757792079315284717920617175152626999129467018355377458770364668470225835760133651133127127395522583541432205454001992692787147416057819342854003533534900775482972954540690376668526857587999216828846676706773481429516055266956813452508958449016895486692696697637863110521053729770090811482513546093258268454748951423137509174178062131029930295011707343484837109024499935469697959911740014458032265565399733052292030972651402464756168335504929923321943927327996642259994114616896860537149725811769997000851190841834939184997598439167661035412590379908435005512858092473077196838245466720265618683411694984647383668884130200794040789182147256135902993892228237670503344304133301135085260153887805667333753622359981610110776985938451588979041024173510516457707064987961829835197209444244805028844987926509314054247589402059826862710024889121343854834766178508330410514758617476430779604069039966555253121621542939770435586877354827466917602833113113763919720498938428468646231083567693638978186118068500596430428810216645480031332687544756479597123886615983713069917169449737768420458485530090777752144131871363749201248412198168780335638233611709591037594300503433936003881288518436937017958347717699286642624307259054634662457390971855963799339893298718727773829106258378295084748194452167580149976104982162751220359777254129268840730473020767814732853402883206854455777519305081901745257870635030919026423123341456450714129898072784977474991366836669798829026117716907406063992180494195054401092352875874459872907245331645644815323418220134963706542233509225354096872980056493544337400110267805799219540667707161487381387620148749259097574506354350744256978630514408907123427980402774889167586539377860471748950444026849761373759671133979431095639610824317350741298157741586400435595211914501790484283503485854345955438830132676887752104553746239054230817249108495105468477829575426752836209185589715861497812007518562775873311098900782060336057223791287308842934176429693909593732717451646799266564831033229834277435995696853960323555206887792820712323283104192829689680075864281001198035896732470120129830740338549070403798512854728019187486352230999747530661106473426554860457987230668931519942282669543465457390312144050825264785546676589577799754421834977802234694374599988491330795283302547479626155355360545284692648948092140638056302207678937583213571291250438373967155804774163315406113542362415466835482814781727354743667340188836805778218999348345974089731664973768423341767704391901746090209893575540667837228328582445567283365817867444806458725746704718663212548616507142198192982212582993469083866355323107530427347185802887386955099883743502169902441754860826050799252569060185273800126169943018077006441857520279517329203331209155827756824154458476714681176159225703893910671380114254401433201360127009495435334379028546932739294353638053309318059757500449518599427880827929170765842997672569923204845134249879413189219801769721263913219262711534850336754864644657898265094810310066457075129138280711269687549249640530164997886453054317076647363691664417062220702409812576005284463038836463128508874278608034321800828244562433393121634431515356999444817326522949741077736245332007731203156001260571907905782218268382438144135967414690100971622634019313725950739425029387568625073405274728865431663153879741100162310303090901668749175578554293049638545674124855780531215851319211145464086701252223440727316530367097634744959870670332760407699112988508869063987824170625857915091123680076701307772599077286115941207363284883811020208600638737966783913428020064013638913744671573791491164990799693724692977883497953795698542901421524387449071913380723658840325096842842039645589057814179317257405084917139257567086803962432631424929444006738950028993179925908676818929027380197537121498991807513544436229226151664481231369354030516768202696561698470994707885779596807982112335892681106383879044485367901953064933376931173690069256759402726032970205711689759756558444292344277165859334793560781645581153436965161891458915196170017998085447857218062943506043823998031617335556779458663986052073234527770659858126700056072055842163520582855559875949212762918501815106944084204348436235863334913627794234351201967558671049779145321395953602271662070285976343634669586681896781725678114102493404709095067328045210383407570650268408834402457380011295397826643855236604275634549719898922124710559321015012618952325717660017256724248455626361246836457397451837518229324423877501252698558021891292124013049515580454546430615483285673216641785121806651879984685542785583403519438148989105023753340621018918885583212172683797722423344380509067176550350433744091674633848430962383534430946393025119358584621537167600173219262111566315795566693387314818248633415764929399730445973110926885448061553961391643841568739774164001064404635009788494784425823296125908673298546300345328219063393197424277324197089077177080385682466682799097529550894339348537285701832655031247344344699689373543091201563197155588386238305625624503697477767720032620723773148128911908179020640812783915788625207393705122726075184327773606890572911313001133256543373001182745489304548776722370585647133924414575713060700650429514421464135766297507041903549551082704584767220107062184111369582401714148475235505022312189801175964350447655178078533400690551433590496309799736825558158298820461111018916383397619173420553518310994017926938794541279861075282983717303325800707622680265576541197145414200728332907655019834692828788750192402954220073524569669634932808332708582519922287078269829396353103100355445571862305348828000183317198235272634875633717502686864429142587886076532492975249251996141385990207548931351701765196315218085905038567033021313801728664072525147656491233680356807966241693428834894394584449113995719295635680820812458778966059011638211294837497893325806265958548121555832627517884672267508107058972326710990920402631090382851499698245511525406227932827727352313846360235466349636239058913519455676357947162677429066934676327682383548177649818900174539468650705043861338331480624586268473383922009845422797443884167297172055270394353358657260375780846712761112782438188239832585880412061803937373298286835324523627506309851500692251045237794649271728214686961394967943697792904253311603427940325576567676484737258340607655185731039314288695645442777258319397331589587079373868919682315788961603047020111117332417143891232447451362060992111889127944875765874299711501986300847923392737287314289912430143324257410727636145145010385828455616865395023377758840221100398905581711121848812301187786284675016437473298648882186436040834692230664150323315949131323485388397924692503784300591236732155774571881444379907657656541370431163288367926914248051643659880907972785648989053649579795376478662251386382166021687891283177281550540550443239911831594327155520666143136936106569670109915881589671950265581898323928607082107810325704437556499003941984807288329005569667551578566658781764298733139437978594277119464376102409684297873292032200071789558604754839896904003725365657657606275666476081321937067128501047378744070688313699060009969519414453925487629961305069531482332159650533773860277638082683988451602002588223188974792329567019584617039565298595310692993190189200873301716460461615713374115140144993220444420197173203923230633221734984432887414270427390723147555736101967259819511846759397595601125214546700696750545806470680652602365739235981080648235848993334808774905805985010722149787685875777088303127997489658698474806685758511948406565938457393196531399077579129853611909933479529507666036462925928321722224557003844930984062201640700234414524666220122488844941374445652544867936266554033484042352448795133989479912280558044962272947578123398510613070976660783343216722821634006503298728820200866489253515574821877431554615126477776701387817375588022963188877168041080494142999333243498737294753236140928314009944714175759205234706424156153114071746209516848539019152307781496284157383050680907732489169351965893857535384234138063785581216896336531909424302906141014579477245550584064046272545239162941039241282084511296253512405111783534599053644485287212406151796887762498238820977154337528891852460484954674928293437682303222348866015042412380885590971663244148156416557392302471738836701780634010358484642174543658977052734568975283338082056555874942874197043238228259206328450812801308034167285637515751428914487243512832640770875982065245318783063291326185149519532319870781407360183069314744311275623692880870614179739065186974241821724682453803888500663751231028016878654234144819491954498139655035952551329654180816567470924479813994946148879281651218272193480924067597059046511513865103805659596077347432407516411426418799107734045362389451970745378809218324137181518949939853061180887919711362152350223476388147068267835875961452856507997088206221793692631812671440016058235336796003676673681227853175806345473488078861918508418900208653773051255614983962347925076502285567033559744478849661851885710218830454107941434979827851360587144036747252249528069209653078074845105239867166882116167352144363751117434300478886593878330189526083708028131054027836368858310152831980369298081845157197275135009921867522294785544569896701644282967109363649134296980354017273640922294103688172347833203280177379054085200066385618166687420137268862869174922555277625266667498882217101335680584899340913330153909717585051645083394221286701201704930534797463846905096378237348153006946901909904822454828094278481463011052351852180407855429202453119237253773049093966948548136638933651696874002219409297646404801334240076765685689857891828025222583400246299548667551627611399497604066688172006940074909709280973786523475227930737050363406183436835589461382412728171495030565380979386678298996531530119889886814086964595355303397057037726814326004769472038402785229800590374908389065752346967338518423544465650771382342136846412505462272805282160794074900697820739466135264823708567842264529845747294427159297084173542917946869173979161513069692951343151501915930972358575899350157302054648395811767957369383253672889822787705776156094256174191784532718388501191175224968637986025975928508611721991161281109755581761323213984500561750668025200085247299439991486772758330340615403638184464910534594191378585917310735580458849625399151701894116752247885505593590384489025737878614528273443756115315592536471547741066263846650787427555016473381496068829447348826402488548646001885910979922489958905608748314949043447567183131303188672431720626355755673546382320957855046160093260193575080078469639493246747617133872452209673359089074795642374183574559781295279027075415867902876582969939064489142355900749572946952805363223973232323612899602465821048126377796954078319015146107079278257198210152791882097292290062801599639102565442919736473855654370496053388274658247696686134618103504162451439404448944447655521246118966863300089107194578596099661445248643426975790219732574029322822193727843244718163909741602417390031991165501893653859213093730703877121789520290968971873122047809395887410320453071020556675206916757652840085825896233079261188340512396005403244417470049132008936863829273402928145983770159149725947478204239215234387308166278212771506239612114087336382954679069748920294636897034674349799332888477429664285722608299357994996200138669369064434183213144752180699817913624649827553271148438778116613688832195248832074929834715777488620220518189085331194345521153315075834994049321316889068874826216808331464802212359304756346547135450591767882340383886214939541003530095921785927353182756860363939687413302709626831946260287811525269156332563528918610030830310615642290560583916078031184928210142192595152791826152459557092401766222530670799782227938926289159167801898966697535721818104584202228615234063858529874658097590970945289155616193106087565895703426854733362001057356691759210218884298130211637141040334480620013567399874767256555872305000748406337381730031828956023115837062572730475889416711962017925327733743570848114433006517096951706599569849874441574647756930263201694100191765107298447385199515669575902225323931911983913924979320161697213042982738305277716665452142824896374352863845993521386915636024186152714846758142591930040609085094612744799730536659605904148837785135145736562152953026114951878511646384259711794791013527861581345614469186252629421407096185044925621042279495331674747317431993006509681855166945674394034532153656940434512501862412698128199675206538393181165373575443384905888406085721900840144069526540189929577804187210875165397689510773708283571006135968283204419628306935001733173324304294450068709305314167565097294639446434670949146184297200637302975510865451064619984933526538006852042008596278447332481588305667505149179767586731062875514552428686592395452716326616624372285995058661329791881761027277453828249848845452313261340684375917054839861335245207966493863473726732598589085130961240477387715659653891151496114221644134770061367793341507659232403707683103909538807988098868720636872053985784623326282295834231088674503974712155756360931329604899779655113617407697347208939395355689052473847223630849463360703856713248793215989520001165268731482520558940585867018986321153271708852755575673897133367400750885726743878027361809288968713968077035425630264656995762696967454342186417559384151567879817314994435420289785073786686266097186703077136640577841448128331069361536149167186065881893517656256764619420110366953587140272137415542285958483335417091727822497093568930108367249803574030161369233037131159068132732804610511800195187589868942806972896545095328801892205190147945561784451269358233996557831283088635137384677100028839801262969920282632702193956246146322306241284295244034920994162812739131062395170581571925885641234828343390418698893720470844670060527910263264723245230677457393768873551594000040445036184476147288614914734236205222534231316986745339319577769703017395639237195023346157249993499900363843512076508040910384597163648109405243196298601610224529587019768187708213159114882724800028940846553642603613375341032967603231785031107337336752291082093780025110666663276322667978917133824621745875599417867752900988692504207153372881740242562981842469368234679912215321314340738315018792405327317783873672791332807259049042184690358609301762984250162205787688631276124462158931112552245624326198835081516080011064312159513837639532122918115834775362487566497786545846562959895673820832729498955609070182911343945135747295208438237750335109013586306829120064375467326608491801727074982231071588272001508408056060244334267869719206139998888117085245465813245304479595944468393091534643678791882135412879628505414366044570269025578278399932730407627391274040786761512386686595029705699466263841576444319836944851896375049283337268479187257516914930875997086348537462330933497653896292576532395025468090442364896642341084307134464203829809396361965154348861819819417243408077906022257312279934894976886958171231986015688752498284255869107080975619556421188418040326409030115872406651333535686741287014444775613026232103846625794448590147497317077447122178716016867021527207943015491331841828203998470998546649826906277794528352811935476443742020115373736549860141819655004022784579294249852559196344184275091262669749866575972702200016254591936862340364024511536674301718938219909918233544769237990588404438178838978468175631034948885490224342820968688488330210655807000771337733866501910796109336257806183132789558300138906486736288044321008766940588786624462209442542138780838127873494971376040783294862115987355181586956228383930102140927897356169647160014897806372667507935339344340568025494081983622707960613098591333452201930837837121956484648566100293088742392033215395069767784560825298639656680492995693224639269211744900971311216660238187952935837832819800017104827141886102599771737093855084885012704795291323365146983873273243982252330632426697056592610159400390415074179602506358557008220505773278671442494827102076917730356010204508125170666591236294632122323701790804725111629210364976057622254478712572488419836127888123328962973950839220956911188226625610192093037730302656954692327099783888236009420356372704305067694592256618560210873105053506459157551233859814152379181789453860750850188658435941309149596237698540922801728255267079918105016814633460455311365918813176496718139170056846687511983478074876039634414324538051207611487412222687517534701317805009620208991505682915276812029690242977651027628548521859359451118107606019344079616987188621995070728556508271541636458385126672418253556975976421456892418764849571635952890478238353419100105348594963588014777720111848159406106389978443881916310226520296627962674762409818052765426103093932699491283573293609118232802571470321099254972820864843136830208980329458763791940587964883647201098153149384063308515282662073021725470829036825294261792158817366092041688402959970751827273255049506809159361864939445893480100957054669723411936999498846006468957064256852803828647356088600498338486217883113320840877191210024008223592563178904735251224497245034348456119295856458753963726780847668708972536433424470490807108483427529902390711164067835104822169000081971442174088658439188537567004054479040263864406454239658844799744295051063985164945003264424822319720040165476349901085501548489423635054029168100960257526306944728753553798589613024512028645842280775282355787909238544265576126636216827789047123156711975668676837663764522839181798214624313076009713748416029733555268310076969542660385347174205071934514291033373984403984927326876401902161127356524878340427830442944457902560909092220706433042555331407987362961134184382678424145268599144817392247675213796196701594158274511357089432671594263609014634642965387618558190054296329024049241566389136312544253714940545076832456184943562910833500739557399824836461221697019851615632945036408584718207653207004372356828944197665955186422561512365445474368311887395143713631440468742354417396837074378392647612167453857673151033892894914839527870368050751060953401026874194920412343167956231108877526191016792892428772214330129509901549835743456220814551161055283409271956122629777596637857461149073651330855666166344582290614323615323404675091283175736803647650266594225221048526881055001661876443348464528614439136058507372562095655558036018444035383577049549100120585400399410200190583613508235598735196555282934277806774513234221685379183742561469526306569481943886210763956720266344341477854172280632661852717119022189809812154462563949738584082706338933801354455355657694120709729475728275032192006653778909257904557234960181750592520065232383573810860726296282196311859976516041165253903255011956581392523310205770187834418089521788195235464692181151568671907386182017022498133749200660453785178359747030413401040990015968033893355721453639355469491615119160869730523243384516261182833158157863627799471990913273196262361767793451315735736216539444981476904357507548155856963180047419022725101223026257536300267181480636319268027065534824814755318068502495755353798896979904157607046117936744706562021206755277420738723422208897986848525041245590152172713102889073762020339512183515270267562007961435253075656950606707774312194989811103972823510711051669172650619871594914211842718608574586309147012114661349877776592870767577227970325297304942751587646001719563848991561366331639304872540770969885117244546585699332631226912232304706482209387294064073249115206194349865072605896994939270461040704293566110592345301417415209029423691880749893319670542476798650209140000735000570521504598788715558964197994767081507765026995146873091896563619922233424508334780778692543486293624203380056752406290629358032421947644881974991378262911894798807766703649979546864893491669759023784273241886553302880153851100336922625975781898348654423817603248048374467679425338660984621521881203303984570362907766892268940324448807978962746552961053765972709029453488630507870695599069574149577511478272184662333716289929455934638020540968394702963787760049576309282870829217873593245598242158922615676274381504104775889369109471647051376369134812885393463595808830451225310386911095446480498283221261908429646355221019432535519684740535545538958313711474437200333137249049753306783400668862044919501181058596046582589175152049652441166338117008957401560183943063223993594199456503130770571185431926000961516702943056597228828136826790425891378457291877266439716717441452330275110736641988698679019478036088146242604481569058049814583578498139682304495167947185057288356156637686692155573801749846429623761603435364666646919054108928747986929155224085528657110613028684521557925394105851983644833530509511906696876988684137955780742783764880988684340512320339663757563172964228314683186659144159168301640242310163334772052273202460641796940265946739796620328258984472081111907382024960781352562770830612833266612277343471945270094909220110429899489760823217184396776971871435086141157570137498648640490808766513710286425645414921440110962986403409423303313158290398202828062820620644361895917618416164830314908875122322206763789664865901538784370511687010417285235277905177981571136109051639971276491926478708589187846128110889809204442437370435940435429711764415655790321013083987309224137702379183061602818407673328160115296862516156042844486468945410915982367760374318952048517014814585633018421557066743719322370373026315848358863583511804281947554158388854701536993667236978756084881919602200267803554283708908373291763422910487361839785543144883956602064069107208643570980845068506088267354810249655287447693310996841679112614703971529163656475973243827049004297500295728180805920313536438704586650334858480142010007966820574720454690920273467824766868903325948087608923328451197559742011371910487894130677019101336288162080463822437330115447174266298320573646033898538498884471871481055244841881627384989156336737441399923368910797821840829465135536192420797504328223713076291441859699636286020370713260242333707777259661463884983026470739407885877845791940996316686401537229443228790859393197171333195774252482677298685162104707935830112016937045718884250592326061683531296376850127332922212228921403381015015979714601181587919287569024545124349097801447489952441605222258181857173236342208393978810980232440242949869466042109688037551825992083567126308323620264358581739510652253966420230666444226171165198648790560988166397339587063358681455245263259085271649446776490711122025068168388577213542761056577068699674298118045862604335166807638349272226820647828159175265343863013098793886210895825589640483185582267973533296550964166417658411977692400716195110798825453302032277989057508097563400495970723610265533173871099158496579660979272073125877190902392993944811350742940275323024032561460897247132909320037976510769373781992851025794275305030654334811502723529362164354163410556188376968215301448155372450183229249914324315330876342369557306143695191728168585157024447002863975015146422148152932278604297660335039879250214145560323967542833161751341055885417379181803521352312645784405772828644714519764129512593584424356373391255202007719543591137277056626406529795083082353341822573317093203340743238158350741589481645724392818651062436708924216930251290182966481531686731948062742667134912500810264222533115977252011075877504780030137523984110093873922024234787335874495379626246833491349883653328652346874447045027992393331779932050573350047425770155874046686193499174557758355644208588601667160863574427295839696393488171107731447176561403181324891297422214789783857702081931037090713376218955407102875022762874290811799277765960567126508975696403675241493372165595260093587669118242139190052506901555610570181234476862640513482316187626816031276858676386054159279235411867328567359557366366257836686576122680512474353203021068771800376312559002166280897045541014641415396609462494712859614631041713474495786424205472186328420551997824231455099059970517297279779399510692133115122076387123140291386087858825079066134174666584309374799883690133531827254449995633280675277243222989347064750949649761117875022379147508808058598878089968571833863443019969991056515738538018074999098929486051068489860297674568642605461628720832461996605290115624943977109375407637085311511602918845033402248609042259480239182017103802358765970809274187953128917117276891643785238927553516304170459524531760377443180146882656556367464359483627498582409082800185934800713833483983364397014920239331760070647847910591306528453402370188898112748434470774617707524199477765165167186733439974591984577071293967000945157357920655922466194111140603503683720540626984361226685152180671338168849703464299844384379745488732877304242823230643552734906371659983627143120870049193190576116152687100872322335513979771071514670217025190310395764353783637740099385652967119531655621092019807444658588840776790122580386019442400058738375544727238682728643871658338839503245832361884538489767838672975392011008251346618032729595656465468598896689654557194544112526157667198636242800602655157388773034203438517480086524838774919271886740252077546389604270037055691746768399928851752918976970066979274406119783637514612882394738388856525622410925308837240373076511154372404909355971817350080108726764597009608226221297568260207195777765250367502583469443312883091918337138294720506311873246199389858069824125538855949380419023950570590216676258497946914265836732640064440471375577557968524224425773142695601382066980792812357488743035506213639404088822604479136544324277441712691911479389137571893463999728761277983679556230769709982722452906429267438108811307191421218371837198285046139625150406260434084553906357626089597732607856082462726458406632506170180580493498097039307075307615004006362090366283165358888064315871018644661877092974737392495177721279185926412410428615941415053369152115805203270283091320312765080643948623278416289238213518282574456409261989863825301385642842202388102257278669690769830410013971525720664259877624473761642217465138535556750261870839818931309960313069517800389373010570451438111134710543813228657914084687389037195866189585801255944368979300912575752198760511535767049077320133407051474925924694532843648931330738667445151599331948027758149286121263798965874246699510466342613132587521265251673894090096916252533906756117436041037615401031326796215855669939670157745500505655403272038532345835226229772362324265396735341586806753091897536845627045930900926319421538678341885288411165430284160731888697995449912772602527244095594254878016094178172946812699090656126187776499340177640962318240488382531934310531738445423630689456738280655720034251270616970910275003099127469542260406656287570309773094075306245076945694398016714971415345556896684989001205850087745427795920640495097414821932488309751859707038244457183934596820997073789786481026380441244698002955402200144311600679280040044208458569665107772774498122719852241379977089227476797355491436634353433356536023715735448984135145682844861883660729975279445536601458511820478057000284082168403082024000019747083179968383023481515656909769950103668142273944837950223421880703827372071611065649845750363409299380015146507023383333410038705473263668291120566771185310444024127543564703385156914895797220701600065390310165682763239638534826515595856030704137876641521601598524627862530067912210389869841272070713512619219122056085184892064188201921869399792481157107344973652750913082337376680590590339631578681965426974847954788244528057538955584282158172056915283697499708226870620466296171206305772670049731882475921635582529239738217937619026532690366592557584707947244656975360462702962510269059922625888770450162800927776604473382040528272284175642719204877882557098879388655350229547156247526201630364136919833863781849649451354269079480997058805737426857252214342381069600784787129309074932248301908424469407241442084667353969751220374462957100228641955654608748787775795801956282330623673192323863546046011311576162685476339458967997135735477408696179996306597637952790005620496261328504245546631695425030336530493014505445207141301435515284913502671746801582443189949415301692828401868235315328232357086474687988851442122142254541155219482647296813582684574286031673538575389126324657302283889164266012341461165767924998043794710589636770178250874921614727490100928987136184756192117313202377038931275056255415528246841882779021280249990058423590146632327206703033194398895703543662522851037779219070473233640110522986905600391679820109877194786772153747561239946969684729501161283079213450708212035148693536605996503567931073728499408057826006440160960450520738385137355882753272770153903201946872541414068071874117746666677769743237021415515532032432790405568979810479127243725986184180488155197178670516057201397052670477772201594794078694231426495919663708546607738176110265606603720811247726568923729225187604650947687567151053143732280339912885292605387452836550943585700257747834317588309121315167452138460274339154590539343535110999886398374588529242017070542995491702382202836484818745561765491339373598194827245634931714214325036547644390714061890048322108241628354723051955987960106037202375437272918320002558168701598523068559486223886023162460536627489895439103303594280318631938393312857148879134262394849833316353799292140275935185466878451547269782457067505812294297243067356967001955239843978778164934262724922408502511973120217653370779985585207002498345676892776806824205858406984262233584854861773377328049622144088422148636292141928713294875708709757755087390879744292331388507662609879238658207013641114181212263487316410282171764713501231707582594833925413603809303563948694861073865951074324934046348344332085574473061754576239439283285743782813026152794153380005500421548455682716071310455114560742524026097705581041400863339545642408305734762734981362691496617990982605128255149014765660241427778688046921172718511997561332334912617240178328049341334901546702338492830484080216440819369003313214365910501759951815185244297147376816406152361444358525408537392095722967260555112424904960943500495882959951989380829286395450232591722463606768576875072853836099717906155949669440008018121588938551153064155045095177224324064866000930968332843202634714262829327803005323968752687393680666606056936141763686970354526260762530338106538536371484682250909801522602500500311942003047310850904321374748092293548698818764893616940423795444398261416122071206483503973280212631689360448159760900458395656732331300304009664871555635042598630597344948011746755092073642324049620596618815254198114461407955396751126923386061910073610964773219564873732602266609889299162771089299770713075891466134076043673311757492330424438105727747112759085494606960016041598693506657678959793593686281279246997777225930101915654310444054314551503684978423696070026785987520608877444500825674002880175870241166053416636397119090792975082811181316064421408506066577003925772367046202128290701291521514102257390599699056894085029401762205078923020204286294968395097772609468427198469058310323167226107749161144360587109408546948818444457521748168379191801579337615108106391408584426969599931484883717828358421212692769416788388926233549101254434641315954741099277259857775018798554893424929530667622345931193026098943744954512549488383220629733332820606768581014018431370562319889592812288927198672158686340979863964378272500064017036998352784362029547915695116061832235417385136117945297077473129054793978539805397908520570527034381725644901778029998901065711453885374941938892807374303902817608074306788246963126205350278216891174465207111449653816335173857275889743635384870196090691000398189598359118222518272757812581654200128285271978888484203198057081202919009056811716045323064114254720224037964029613098726893907090445689714669957667030593219125266395377530466301070264825109182244538115289446294687279803152400888741340427076654993468457291279557611807510342786090397896461211762362443480591427951671053149491181812931954952396437769386850563599467994778353060530953082338633457663400398741014483722538912087084485673042938079609267032211748762334072830084952481847783307031897757378869473537249319020354760037407763289326337727819267594470059878923751178465265887760073137697903495303796665619344389710718173998616371685198109084898090552876205807033168172097959608233447050374250349434298716993644463509634113893684601974704402080803502339489746995130035847877964854714213757702363373919106823547677216093963171197721077858448180104842083785291409351823621171700660972335230829428807979775639613423192986931431830050069856509143323584226552490432866154771703999901339734925204460074433704903836209118970984735541935449094088354726545443487584279356536850227779315458335148693416626138955953555536164174611803384461995185352441177780563166982796100351453203459771671377083091331618048895699097628330324891408444426579677232053645131415103719694560533018293780561731503612749809553670016206983411226211431089681208180372703799507375181559190126214861519087684646809550284703684518681507411390252284613052833755732965025944473193772739352230313142553499511345131459063504663175440272715089750179050946743323514732642968479826587007966694831610945414524628280687340924028087700831114132705785239193971445427403523266818045652669842826197367995721195616743606505459476798379155430043558629456555985796429115311646468466996595888779851263163813962380205450183968476673343730637268180254110075090648379210508084585616118972323508630732832715957476716657972964294250830895240768977112364463857549184568870857297754464614097539722552974154581413416422930088160856370120123526609930481092284176397486335388215846013435338363086025222383854072517262769911977987610812082777663161857697862263705483291767296401823438528259702458173431419624470987493853467221066307696290853039893765380589146600368292693858577819600932156090913316682282924260168466383310229767419975997702522810581935970633750408709757772472067663769227518678986723165585668600180063434345468558418951864730498614347694997766580698483036977584183279918553380240023350140355676899867301783881407119306861866265586133846779674332925623936702852459355642982214046829670189544563028784822713711081438100792954220347715278242661510729331103435384817000677476285655449846610632489198146283124853644161946329584911035760537699060541828185747473170805040694631510143295304839168900336081122076460245681949016229612633858005332885633209687510862466154628508149422730806065709700265611291133810875968707827419789249955937374745267730743753001462551242219575751878946626147731829312991679090309559380760020041314534848546115866508739489198526320745386220886778556922281976717509166503427118484483015603772887506336218594943033041559168763836574568288090987624122307959125314544274162830371329744906097887223033150973042940076330919547974682901878232359751609772835942073529889977276551090476213186854639040453124834964451453295678881148951605869125078632394966118988560928540798560171724878293258835174318813723971251510116837866257522462708579181460244553918673551784054212084575261955665168272381301107599953975272282583368089924350295924589365497323881113002240779142352561795875435600454190616949543068256167421731840788212698632984301403093838776307419579851811958065850905212079908123385449854286899967113777729806866700646030946083545691404365463873233119403946102307911089756140720322374460573366592202782322641555804827192042080981251485182253608332124879407056677208217528038797332448873378348584011413072235754527446733532914972376858413183674892161597783099153482483550462710446979022495825301126761941939461287262809821433921176776951806333451615134522133225661557825581952471397811414665478561496528956719059679192807959663935568537703433048717327863901932822978861180892761957054651337893913874318021106393028452202336884586227955480647491017831566565364244834512130227047432458881352720913617782663754243889954446095084811055545309014933569465418270566936540131687731531272923472903153523218890556283129400263489769269416359925572693843193896291946608786771251433525579194775885844441785827255696627272207719005551837122271878047756158325758505783638477789159013394043413629165750711639603548639525751809317418012342871475229323638311439587023319208365335954090804118250113539030422304760635893075971884075190675630994027583056624381380228710494032200130199430608314269194393270683787575589337988477273399020622907500650588120462911390654639601818730688264810956029893999748324135996277539000823430088775793687692084210456755079498943018008887934255413195344332263488627018448881978070271554812195042950470985464138194147204727696930363702432830730769223461934923888021553695345884867859063830703001998624317972157207418060008878238110188077686951018081903997087517261123853592975228741986101516580015246993076994779788574692895587976060381519288451936919954665873206765605654383568604555792852076582514759856240395961553663146588690864650695300540536807961937336851236417162820977501590703123034214943758187433225519591719193620462029663397322940298352902614435279179582321328814065877319122704403455406527564978805430507519513577148158354274080968768999891970647464400040833939167869935792458902057015290253367905334013113305269633090412882643212152242956990364735976562320004712923331937113984643486982903376752145000478149576435953215920147423878834799390577500589174726418424897300080219780533387825913820828194626108000162870779127568369557260763872593208022120426590916348595864209640617773466145400435700401515969465088006675110490597211903520028027874617697482688683181664828944571444213954441702351264841008212724992863514931755370394897775557021644468750602582344599934603602069907585717381375511905958756976515495263722500161773238326962524627052544222996305902651753914801682529722376070962531257948240429243713028160507832735628568711463133491871781446022940483432463542832610703353175600686120051078538741508407750654067548486241512436253742543756352402861526199399950543468729994250471940755095112741240581910812134779910648457607422010314138973801168387008956671631952717869242715203215415850286655560354493547108712357056413072466463419043386453364062221997280012326885465957643985952262408922854688870623218034414508488643080764948881797435435636607416155491291997122700034645229168105259548982547552663353148595064611539267048607252433480826591493777269551112138121122674481246724491904585134197012736239090320546690128403749685263348563329495064075838457707262124134427474515743659734495417688696516219577644880702013873773421228977854026685096714325082195851057021778397593289007898716581972054999224307317240536173349933779189778039976196188419321231684258493373271891850925986411085712622894469021174482340202962297197532629521390066308971611919104790286658109728829268247745405306831211714452939182062681319489356432242161708682902231560066663399210782141427298497678256196607262576819788955687998888976968415584970548551256355412297895228608111289245074900481200521950362394095360468979933187946908891154948385323922604613257462880999396771746177214789299914358067994971233731326294091490802284558517063181819764641453162792722625647789549242814203445227309016304536052553979491743999312744425612537949347994784524880170070807493084008107942616035420139832696506489806321005014360730209676110333768497049836062765427737388350805932830373929355065465600883901478062308616323861495947950937777993172873954579875822992907474886000418111085814405937965834075862994157271030538913326527046859071345346990198063029353726919081599466468516098685957726118728454122420042413418995071490284855582159604810077432145243687678687645278496069486331021185660034221395851091422777800632853612825379104734613911742364630723450716715429978367561814038903146252010687797823556193557396187295800228333888795465293783481192740669352301739640801356693666546813017320279430087156240643543100102435308675055222213465883932098917637148641521111694882136973178739070019899492600033876336245467610967600519924791383402476731416645995911209362447635664887438292380882021492912423838772119385026057493223099575292061332801700310875623513211584299523723569768217553764685223849841273150786875209001805912725713705758902665308767082227059012853767341690297624842949223098849128321160360091098458333027743623220545015548710896399051771414612800708961778300182161932586440819459715268816335814556907868864991502221260785311847878825733305373701191317156127719263211416160820852741308641367242909247887036877728876588097474098281761141268283616963094208461331549108782128261330550061024148991622722759803637079557397247599390091529281711243707352983804119810379043457284016087507600628733739371491247540992730462077787310819539317372586542534326542962247108890275480177901850066152768051423419827335667045944103585531481541597948617375022222225118362766275630902689205873376273387590642499220618065663905321408726289144824643484781788695058062682945468307788584544301916147164078260056277244314657524449275736271807731827284819060594604605637822856302027975893172303177511841583884052752702477351899835487765706065250435850533998964763218342461246795145797775793833945030630165244776289077154345158091642781984007101332077712880601227222509366734406273717860677053996553765819224875242937059633892867625110382783253909624209346702009222555349841550919434189315396500400031761877040017285638248765729057634253741369961472829315951565730122208780845362402713354930788002902215872326938421696885333001966979237481586300449472141992513827209110645274326685113508831701981769355797909894917791227162039000807916366294654120055363965077294657911573234767397132493865014684729029015253828922821403195970852620195516973298288419232840752755816748814024429139000399701058314142743099108429529114718599949333228686384819006750279822304946210438550775177106872583229969605484349309543607671620390568252789102466059721326756068087801801178141029039053892597776768366602288125808774900389418969744497539705707893633089574762683334099599539194740115499948941619265506476508178636444016008736155272052160498872491897131109923362393212118763336356392557212123902865975699419578112838603841081595153720569078636926605455665019850403447219300743671000753192641405253190046183835980969911811103607901263263932777761958118849402145236665525854724471551523466782393197675481616038354704685284039702302578714464984838617081158204317457484368617055331583341415625325275330397535788719874820678209343230945961747854673702608314697542633928165283747895356903644072959412184626864952235462917446470836743380185149907652259549364616320458793898777175112177333508327142223328032496633841871303646830437965071785982881574958094423530019740669573761962647068248435865495848865954629099109302488658125792691718737250375201178638944859092135484861277690339188110382068067610369534222588927735757988265111730414772015169235097204696146823140376607596590861138502938478814041578256912612826776623969870846255866554341588966422231310047202823416585061386304682931536937495688969237096674839401327395692265442534041289112489910049450153819782415158459075070628610715922192071002273591472006273181796761706741866470829052920066329356704682734028006173530034641740121990530928637948581672479834235368955337800163037131203604524452173829890537279016844939399192308835479188396042692250731902621034628013409200268251220241530123084943363181582166684587077755179525342083322884807434970521655859202224449282264033334874899961434962151514785484873713075153828226225630621270075958084392507249536475009215902767180205159305858121652797426725589922102089772194464257061230314929932854529897408244504760689311603264084710561622617025748879767569396535617779683340140099676319881848786111672753723973627882018696856904101032171510503689884965509972693327777422525642804121421626314092429429150017610278572493176420335895611093563402126693194562995197559390506220614543350962133457635391690012295271420275005265129186674191147174295201721411328165273321185340158414722703175513474451718207236632199869840294738038947997198417548254239633832335345372374634689867136476135883838831378450209774957169387371152876268467594727254865431804041567409769577874192966302311982300161853752196205948836768624614597528834581229252286673789875372993135917657150154930527675848326062914650727719524670841551812881262068133073666196760730585888072222097561089381656287898047270661090416938592040890502357494192249056155367949160265230711886918030951061016983063152361686634811266210790889710628602968477497979661302686124630762275943950377800800348075348566078909966328474975772508997907211980001609126318006158496597045935134102084262979165830846620739560206895624162867429449037959079215024989631451294204915223691656699331512885968612527475450501762438572809573825098469794839591087348518791189789033915754172926350994641774475893487629422870974087481839547556488491585989073955936979101343050896850699643971375681050790765300225422993719108844196999035225407308052708746148265194662356474403361645251725819880419802905881151217082556771163731881748700777970966672365709935991664501998040322131685396437237762462135010108615126955110934393903930002353594571941992864792602901593151800837661653850711105151379398936830578388820940111826424390092270323481963820550659607948661252708402447118924021654822290254451938932015455944314127470902996629892789193392838326074544393498783449598811345874459938387354529398674539683336676613384643362030488083653785376292089049864424236960476367375660638758272723673581824899656800561528176022805087761056706661557392712641688888049974881139589492421427868732090626893710408924424177359836600607812480686840600366621443138053989340998123143433349393374339501107270355477650444077486185439105035849904952120148078846806435083837790235816910804937375863545719478680325273704787799331799770271143656546302734005576345645877893306116012721624122021663345970471928171042960237062053767517289390284601814598212504033713379749213085998212260573949110451708889259025067067768097264191772000309373339230686829259914808056151334777590254115738607814588402650842456881590813947587982253459826392105904162283954254345955512664725228656167785340128139471693065423455828343994774366581776930291989541067166191227425741992041428866314661998041283725032217035685370191206583997687366929748061661357616169680383207532706376209439635084404936949705762811091796188480928908298736316864087780586994760947408397795119811088905876539669869947038813718546361942985156362480602001699373087471164265298229393246505492242842872136228292975572674492389213521726595254681701851947734583798428164254902309736992898382194997775003556647852455214898905582423505149997772224129559031396909610274292956902516190922251916038463113491364806838388825533779003991705573591535150662189410247202688973018050558102423781317185714738837879446918585488913253710462365756127176273010314645206957057308851106704361494649132965508811108308114488698767571439833309171263331936993194277787217686664870418890672002230227090123450643688540848970757956438755965354669265603201728201800346605349032407263870068286176959187584470285969189623335061929925844865277089092019826578467721911413173529997542809610616513607795306099316883588062759402207866751134734587248269920084108377636174400975787260897306335084358511556426576408926461450342996035601877797022693692321371158419737509072692598677573198570772826564915264307525491476373186375028746314048355267635216372751747614398838116735309961903066134668280742925801796751306591034211047735191911834001686214010549205074399901707850269159672757981167939633719084118387087336091890012681171640922725150313455023795352871654780890119958075419430751545116378617150380631566126824403988671022463809512203451483090008841747747208108900373438934060934679941642179059501798400639641399151572904628387031029447168830848444311184809784330909556412557221684342594790715133400207641272210008557118905895804217782422524643765524490029941195948289373515698113640489150178546999071543910226423928176173152673457531798678510606028387336206216698112867240355540412890443652619473810580065084407036108827658952939056607154864051719291889658804178415184963835397396671860387348379979315985143047867727418520233334191035104453139729437310591503908780499321377621674513651755361344627425166946281511308318568261282818628185777939399000825136210670333951911457716682395658519439213728059224714022359225849013748445694402947846243878700012437072347584218952148081757798457948753166777513194339939732720211548910092017766622965538421988377252914214031480785056948240042676808458174029124699699407747532577449397614791748632103154400381344523328692834692947513851593519131638279163152279339870286845139903303945032585073142424010226847396002394016735683397396422523218156624457212442289667122439526924928325389838675478225397010745560989427891395141292145611137733978886007110262637013314249022238148712717536242458628589744981218450483641091458881112516269295217989554804704658356601930641337941217162455842839666944425403308125581431141362706823360974532875693855452586052754962517752499265354884010186696881578662831949721230312766879483592274422754638645922325775107831843340979844474123008528452247804252418533474700690637330420279919748944578246440885118325437125856020646278988272094261108469228939054167583143971691793237405016127755890051830598249137376372173959165303852323306351015255414301497327436744566392147547855612221839366565112867240877079633831082300123741689717343534842150758743416780659391008850991988962307389732706392409385106041446046607638562450659930430611495275999654724519144540326462983950191386798385671972463857930892501655578041329257880107321396633252047313614290193980748858667112352010929835527329652612780547728844783427967050541419106539313531013560612239639462973125765064416916903710483200969572102439055595337430138764282023072851718211987351404473532215633749501263407075860606733637259676402614204017164148175530456038825422008126585432853527025616481267559102004715577608117231390671584684171930448105043449265095429622251523447231046083509827136869501088927771159630689147906596571644258635847331480202359959891737013936927614708739868239160462603936705938128652761160416295597751447199338651081464764772425607778724588508678921125550126367007046410092765987190080011369357948796523017104607937941943189989556379990862029312528727169980353233513548251868764107554668636122521090155415820888628337938835150800224277375481040963245023425166019079184573720735345208030878602900219944000429146538435093373712087757740170638165822103548353125851104092228612966296906124441708337773434471561060041434051800991648580887407351242579911826229965566320253810852952189333171854244208312474022866165044073444680457090919122258615454681200354093497026906474306092711778269852233108158093531291415435832447987716481184869394832659160948121038396595758303845864258814146891788956057715698380790208142392471791476510535870381271819242657463556028297869038199794253860942765023005967570783209785889330201149335517274684919272519046752788499366729413454938367061009587632400968626109913151147489772657062929482050159434254875588024715907791202016444399115648994922088563649638630032195506174175911278446973550488144181915394082879684207838088523241739741536366265469955688271423916406438296467669297824447888192774265372240711343042061763520926989575708836175598740799525500480483243030369914543150802980695304035186794393762090484834856847185531475388367855046852762046192897964421571092287689474017407262493226153453426058163309962569152096476123925444034187484781819029585722044219259525530322557146449982045251577251696255957788406911517712305895259271309974651589125887567750164436817298758288886006255742583671775559827372760325616180561676657861068907387072960985442010525349803413126342426260383019542732058740461236710653053706452851981927323333009896788441260477768020407494932307434372782886518738986052569325269761000094473779863035179889881288796680417424890685368056348409549677314486574686059508381996801452130849234397709168593172255712723733879943874080327482723284656433058852579946956942155602238925534704263370176142311204790528365822641726972798051228508642864735585383851677609955784992372296909339729869095469663479625803099339418853144565395283301343496943137035951085871242160365388215230083891957267094521895401270214419596328366161704085151363759184837405151274453846748306586011327236553394187716330923003039201295011257682595594274207843007942313735413406462263349850044953989206285211680644389429632861447012234121683755201750688499326594871299747909035570393105113028222150104808392631951529006762254500620196454828275768526673896242028568579930971551058543815426177915363732874214380416089438368259533857003246554281742081950863893252465297318309023450261611267446190406129350089365510611309898779470278996873510990908136003185009499628987591779871899882260785942902601609776737012566075965059165469199111317839857812604304697033295249217385286807807558012578376521610759622535828960258335410933611233373827695131431552071152353248099514550272524608122795705035122000114399983508852349600422142048769171558076530591962777840240010186460142423012183731548598255429619884197351187053306311719104658868910269684113933612191719843015035731821197159151999218839705005518015806879261925960113440356946013731049691767025779587988695701976139045733035252748747412870717574262403333928915558164445940495315296520009876861204935973030568025609742997580594086328005707272414313924153363173735884755590039826448456801244035310513809226378262591899987668595652307608500119799112511440141321314218995915497811769158597146498412281888116023546686707242477394326007269278379512743152189381291379931467791909751026941728451126052487402538965625481764178733103689556320455675318678168691142045294545351762289766486020999127811983358838726183439805896221806773361081724204008978956266547677250860450386427646598897818412590422111585665490048526996745567549944653252266097707565772758984808324585904716395228184934788879051390540157331326865416798089026115105196132323271134331214688302926394762085814254280922034301359244271099914062027625830879770000571403264039291000421453406762534799417871658982928271188034465466482044888801365218385545821398698219574993073768067860615793071844598103257105069586193229121213263137722852834595901463513189766732561918747393682558069977362807582657535941282734594034705298921462643245033083296465150478499215473850030817198788721919961802792527831743416782338740779271237894746824327615652407703528462429701794599060969649301383279632376873348713208638534907482085366891741159024807559540246324034439508200456011716464471169701356865641739457011686420050121214351835507546669209042270570801395571453909222734482627597986757398080341199679514072183428466117263574646305972316448035167020794018169597822416065971163421819796065652691987403013903670071306136756126167032897994300318166873161473159338357529539798999526005582447023277600092606202056624382732609870682126551428455409080760665762293207605896982271881488714019031276987978132561077054562795211216458205195983529728287223458539456662057056372139991721386636373196248481952041991289128072122664570857113575110879668014623472915217080105842059684014411177798408832904659312813178187277450726628412053038410601263839410456211830077121929272971180269466367164177929113816721304494217172757940177620897021564749939315450972462078129032901373838140928264346978711751121321373452742882512549416304121616461074540617033044993016471391451212927717973373126627580027026723771679477050727244320888071142449854816525234632462340094410478071363195097012418236086715680760831998948305743040283034553519737016040290182121328394999156145283126741863676166173708388334175343070537621060229677230366033978558607228451081858341354146490436327250447661088304360908667263168374254243160823173120363941470458306744911263323868153197760632830063392217766256467784446277371411971465482886010968027161613352015057809369457191084204827086158843466087079866154534155429960303328854021676549585320708815161567201598585563032451780549949488484066254948770021957812077227729824358391907002007524519369211440256021377355430509459906699125168696796467314169063149549779238235376386235543860382379362374652832085518098879124208107944987365827580155327930015813479817658694824082532194499906215036783873026452683802965625911956525886881426018965703121289960532579719006629707930432969510523637495811204985313748288859810807390655026671132878367553392686125945188413472307638078466378719536815683652341691180096211564792857547760566455907544786268833895182773838923196583362540890188654612978984506700863792906357631638067415345045647284525590872981066159106438400039896267646503731204898931632506635378787931373456020523633701170739698950764658144568927121174787531579237361232592436023678057658625171599018634672986154399065867347988571940111257918513492286204796030523118552575813046105166043102536342090068780580016046279400088204139378133168090876232721444458231325447550721055390489132422585916014669812139198486453772607207881991767268359108073849695663773057087716208225741492297032835316103731743816078121020104450993069803399583795518062742816447133868923577957049588801400408458385087073750378463092054781122241424734420991830787410581223563484743364007447830972229261064671748719708630142101844134669358859533484192677938504208276046957033757277874896558603873943646934477975592722208468938223268791004095961356369581038128471224748489705402628558419291595787799044929600006324072518288166404487460603021622136928329815842986597520578498083670219642157657643952588228779212764210943439136336558347415156648001311612546220887049161865373451086089800755793275149410390501109239131835226249332979574842166092067264885326421217264660938203601721171600637691156537712720544563029332667537894406317395098880543499893984965278109980953801648264903489324365374544669535837696382395837648277400676912251233388856102625425726424481254488169962430321200568623458129387881301604976617709694600184729711007599137117239793984412966530141583305941538341615542545821561506381945601305392733367152091156278813107265558575557447268638298999958986120782905749938513897529898238374374082662140664892438455140575281653754953590826186739083267866404142446962310297820707221483751961090139390320443602743827352529070249951792491389580726884904163692161395037738620272106744970339746868353748614735006943082883754064874810427085044576504073103752228414485549377231019017887457620851117559557880259464813890822939858070240306092420140887563730004218404232392903455324866844080490638633750030358847840544535671936001179128624439345123905002154360948915174809917987902910435486129116028854215969189205755138152437961498726906978032712500396969633776715487387177570258488330715881060351562187669809989122339359292644036822948614926228432239936541319517281689035463925143387222908107750625299233798018051232267281766275388725069600966478684815335740358696919647521010631671968982339530707892433282140045900298323799828327737468245163807471429396084686642597795878100431660851769791326990497696952721917072163664631932595661635570778485169659581269340290861949229684336812765620327232047797726159448881024790158148718427402100839684456843051519179933729263523984979971003795447132269636401992987963098811744203832738274099327503220676868118598726558991902895766136208324801658983031177828597257738190628353387204826790604209852954492678346187317100559439485183855273392271765031885541379397774555777751195823834324481334802154348076258924949687411377889248974251519266616543648558283765511924609924648066441924527634940265732180234613394662415193691223113147024372997460971802544507015481601237147407860499721756432601133760741803919146974741846878554950492672910151204163085201016831720336893235630378556708116641589486674290471061770409008888900884670449760269975035223639722694611205781637542259180545982400382333982775178941413703322737513944462339686999768547317723255246827968435701959451323719652148120560822503751107209333338044235042483647329036045176531554848097544456741418850490211809975840892425549051931884632128337979642198652501537080236739138884645649223608407118511363259844761235518125577556655931485223208665936728346698593442914432864775482339441588852274376477037198778247818559838694532334071132276864715554651011003118116727560750822380995448399524317759495319992809466021311311965432570824370885891901472235609873014727696974096274027614120732581316103972887317937998851518627305352790827318923820427197235967383232762380428542840641253587011955411723099651407232510876365896055420862575858484860144578105752589421566359663558905396502696967985933652065911867602788095418316007807630046029821129435146630701539338136068055151155643729395952229452431453736058168067192472514448045284285048040267148040799463139615291419191614707700060896169512522521141733074606670116045754721135169169273856038584006942443582391054681716683279107041440589774582343063598658589694207897000580185633502277463542499564411443302593683167461812807250151647603576133910211449554367008374379238673964376238111476806136000089649603817087750413274575564342274214524862729392676799415821834995931199321594366327937374917435460494005420741235525744914152182862493317427238792906259112817079597904528266541583732925241242451619016561604236897843144087613165673044387525573769703314048914276136632941972646599115016699256292499747522365456269208503529079975185471090219840177546516071371864296212596605960083545174882436217389281293487575027678884813576565937633188691273614292108897259681168665912375823291394078452031915599055011139868251197664683961825704799846560752567394819153623972099287625218130497897063689242863920125642587483830376669629835332761174897779846942707557137210485601725868336319446945118420773539955745687245179177683161273364070119873022160444840507750271412175299854975045312800343315731986471233124623304339111552526489896268461081420600161314860110711228714902618061277887817285158360872666518909685916228486536507959136966401255298642228054287340325608996112179070981520842396051575660598617188016605392893528704337748446363743072544119736759634921158068188281031122776510970791702304198709106481454280057995291257004500984862313718320766455121367490907474279001503733872963978340390140203237968053557273981311848939732850525069662659422801669137342902098998717017467868729614956221253182923628649252938443103244028877871437320877135474554251552110410647923782300173889714478950495107708078121234492431727623344753573106624330078349894730294906508403942645170476693984568698333617217548509376767639680731627985449133630680082856200418606642284411209759506739764642686575570254072935003495406509270827378243498865654331606889849340350192728908051374859067221524237281332063038121275044541991949910783580894331499091368181609271300965950859017482197275725125441672333184062198747256100941703927726818338223400896483399617621301734857454775817284326327613573099242888668030136344075889862965062233812266924218137224815368707571942223569729966207993909291855513781904644286132175694561767007715547327253743529015961799562435070495494930398798951570644734444140833036967630798163972040589876816281510282684322922742049739301426089987353122154095232878240501987307837210238687762443826975546857948432137381923732444078665082574270382024642588657114431180410756027611388651728903107724650230709674383759066631118238721460630694857483373966603465382540870217653734962695393502302265663463011033913784573018608806224876567796207377739747111927977465663085473043029703344972600303128217476761168997381289613077670200518026575603759083586120190766970684161523929250996401283073331420766676070221008706636684644802400031869547979444168105744115361986339902551715893685958092774525300216660913162607530491237199791512528548168188075466823432320417254361698843801394533819377932808357688529265167305788781744867104136933330058069988716279553064733705675286096038677034157000841166510255949312160986253394369150464207994875827100457363797402437080446726540488750302533920538572966354924395900581810991672195907112884689889308098604034064138868324129658430182779024455970498281510976362294371010198489130117731720029419584457556797008617099593831775205067864350826716891898112996948438296912344628353785630575537781141111732221960847197935929145191654554279729786756198151660314124290773236862134284173589870731512707837125498657742967682616917368397180553250110702558908437747180647324872031936917508238136778511356430192374618524676426879235816952673402663461241150818935698441655119049464735831716400881029406007632738581383997316613692042250863259767673282736070635613710501752527392021176146512811094750687492507616210759699845442659610776549141975389723884417892635169268353781404020230174097770966969983652447926097515450868550709422345107082032146467597137763444696730545710979523465200093812690435222634595226609822621039877866972979033410858180722232622131280601262161935724486278733473652668548345671400222415219078979924672833026902860251911885405791452905744251033631340418513603837291848987542573367030335434889598623389980345989115852698081452883140761942495653783832592385827265802204590772010795295951577180368537844848206592494976368869737491349164363332372274081991362846461478731028729323565498571867121307678368066514034953357977484540548771450749631360186705466708058799415897358185806140012279960711405043149102488068292530324228452261133678588061718491485061368093885642625201213801713707253963081629292290190172887895504795036169461855409427059036197442327768329500645181315820557631051326837673530410027982916101157338897956705707420202270191471255439281709952242325333626745838604594073169793432675474959317214661810374462731079299108804839747845213030886467073250272866591895175652572235000825454213377536728501209728825522109583383352688547174706374403602400653354399111845604538824742633900414613051297199748385587643823927564892542434690411120194248105139339540550302390246382644933986995079555119097374007740976269893103504784346984578135335582721610381561736079495545179652823525830626844161204481518029378419550478987092943757919538982276920379226241151689492682826462518141038866124554006835282399544439470824210513872267104170335462418645830190026729611130091619560051864388406021798781775306557206466399310187247631063148223380999923762176382640777707607303093744021754313107648594447613396577834890351923327089614076705484804946326952912230486888373612582706352093649974572370514526420607252288464701907529691707463515758888540782401815983006656742327148620562948384738669544827425725981877067133917375863307834517427416812384094943420404117962820976768199760434941905891660303632197289845692379608660531237236564526158625314774132127324504810290671094690171835014857160129622609832058617842447103340737198792850228316190475927752472941325348835966241718917179597221886656020338790840722998012853746840691481821101235066409194736635648239204537853496986969109196796538812021458684511445862911692975907689168984546118430774707682501142099004626012399784582913973258154421309561143653961046233610446899050441796365087404691615193227054022628793802332362662491101402204950389312501705155482530394999923434736067328624765938383928946664246489443794110452948280167120336212875282139627893839803840141164966636553291439732605077315481723177538778667417948404371609050776862573990764089733307285690099896358732363444320297560096507732234173127883551658261773445892011640639232685374647912010938940080862939398585025638368481981442036887754874173196905313283623710268465854947837818557314153023700767269362561942140283820284959295738182358610322993856147507994243431026879956952865396581315272356270089072186338635845631529026853823307924370799095794415317540020696782292317427110802211576913743466196543811525574850594654667704470936459732173337430392449354932944251145463356234706132524138380710514157126109017006465816343928499405066823339615100760640808247609278764577108821842728667429757042465725772566753539185343081314810951240572290606172204938728548023242332376408114993636060180098679844334521444815350986585221231207877295196390303052424257161155127310374285895015226785026495422233444111620317647624219262490489068133704116062695306225578438116615364339649710283493041236811673720911106784438937538933093225995329855159472844545371946537546515828476605074923038602142157378892695878205662581267497893198860786210039834724965805743310289048990325517353140419659758378830887291416397806193139737319117248480086766621917309649654312936693316678968709068934020983895539721800995273606400627008162665991624399780832817414185138835811323111727785446119608275636867656098929934370266028817179912695135953421316294508317296644964835509966616495940469813566086024011709161427949900732998726578068935084378166591244631856841456279537558453959804803010185854435523340944362313821516151646513996826980696325454415712191452705703192939605327267617476785498750045731352341278052926098710432108163622156125167563987190355432711840416817857911802459274651710419338036313237030809888227017387760403012488224292212313384100852551715704804345930463010219470996332359055869838692829311880576174181486615522075262925623538310209364625232732360580579259238372508916058765935095981953898119249062071417187558045334473129644032062547969397061177432396943720260672138421587060722739658564621849845881034900147592389156541937691637871293968213786426452151877244823087912696946950348852371193858529520241476634408914181996215488707693858818141764018047036118532837637108194926331522949690070235541521487218107908140793345617273411771735482772351154593062776749944073438059904452155451462859746005174854984132337794353339965769226982484664969276125890078797740785019268443084199997662987989959602384795549853412789578760653307532292373563854848087604694969512510830888802664641356812955339529089371597798371855286749219070257358436303632144486598059632588959740521747809625288293574403250430671609958330886127296317317909067775525530051356008742307845849570997692750904890757674732068885065702452995156374265061177330416226685741384902948490519591900384188298750755120319291951927981800581913949280282967720310974649625218691848886896953001505983393908363551139020207015869996491226127926946523098516570183640754694905352791777646698529676724616975316886176325897361448624444687970654505719733565698949329954052517685136895996702103592301374047709278144611507230234666605527772674218032319488681541298356077094900857853537492757336135517478814047128838175738073089848011765416677625912137495042753438364716978343110177626355211490589061299549377465082920757763934743426572478614687990322194096968013493544949415258674059684123450240171364357035890586181770434157366277447035116559531481295672811723920628958991444351726440828912168352204905046408051228043667892363013564829572874335304907360227303829940293744236687229075531843407357734101477777259085182133385560002782962195962563955791722491101299735371985055939745123293372011982840536251115873301418734935363377572539123706829371347327500597223714368775620242071056955009623388489039602114164276779336064603576157858167317635882209975248264117663995851840363448614556761128148910404518274639061595916564840845784207283405697342654893638114973208062447295253622385455189975474770560052850714280798679139170456131230863508820023004838121099557901911831673582800362064961730318882506916109128037154585126341575059044624599118454379866405612554018704381301719735585853014575643067690985934651115920082655230249918014024868108517354291497055882074204212706673204533550814411074565588919120784181194256909596105118330898903775661331967426697852626472389133325511996998540976547561144504811285016236352102351964894147776967328411553365347193948261279398921629269263976646778963747443677995582875503967991894167549575679454294744646502883332916686048984661493831245995144050508983451148026052912230982152737608095427378491240758439518817835107823459621824482717356681154579753805549948278931416395604119429358163106188183635103555755053548439253811929530798220165986283581711517981381872466617831478981309525865142615751055190504610447624950349227694546384131110984274313065974482544580874831943025217845309106610554792101817176802466613059429253856025782861460277853979217680994221538558297516299110087607491591609204493301625230136495976577832223491251936281134305845774500068071701345471006699195458542713248796554643699370387057739883434915686439378851586720561263015761662997493927342517151455149231658892098521705400782745387309556011937220026977178832208559757783003403206518941097339821716424852374503585868710262192900499468931529376402609001030963437354887309112706956647716394587121416085212111341421341626170619770112002401291512560118677752465754207667303254545211912537810835098684200105243630007472094649905546810231949726288979735395688698522266079077679285536863245475549344032258907196666640314597803931366741194812662301323407071355312196265093895895541037319391500297336205293234987652671747820955917468724831097443223569618481530207269995159503568930319307064089443333109441403297350062819896371553502309660877054568116999277851121668501487205243788759574498192884033536728264138388321326827048985632640716878482559588410638152694003089877835906483801398568367969056988419963311083413492157946290022612284782369065586783077205338755519653840621675631418553094770608339269177590256449226044952835225721709357676521597090222104473277174596756594147195815968568672349141684097967483867093678628240822172243334300919020519218426296051744744497400943967924375746068826204129279150149346589508295148881629418615920041614468501262527010909869868563617746457933664634249250214970498319985508740943679069174461429413953345159644085285515299490187553891875785564933322308657813446762065260330032443815443251165383563891853878693903757741891299375155511867145950473931625467088819881295800695453671079735759165318650408153365557980541894683070515374814649454839747306719077630882192794326296868285960630968083683684639130436280675400256602117200752771088394738010219039975475473679519265163857861267082205428496155802625980723043895278071559534318031185812021314000211766099856061055436038179026659297808944935903324715361752612865002293788323280075751445518075529575175907400540275819229747262761431762774662714326226034369279404888986093096522984144240413356476592529927603080706616365072538402572243593694903559635863247948944943913334619220296466042975853996387611773322552257652741020402013884366493493208732354842053395830759327794534376305100172035428017814668960392806782236966670900787905690892480225485679872438290048600915657412194274548879016094934425958560991155847293360909447698526629991019970310649560423394986369989126220486845526652709640247134255858534339020532224029243898009967646085466837265067174504608520973231576593141722619738297113856431203174328765867459600238377209676384033520405938619845844800160317384890784949919215811614258363747880438418759585147353162562688864530552220059595983417120449014236049063215113080353990972908795891016595862616045365734083991157260670797760974647157497898918410412732924767711043281105316927143975592071108009894289699701211447986747374167831551209197844601893462856707045665806076489366051306057182297991547170951154700356625314316176832043708396328021798037999967449876828686869808216651931116261291686402086326519202026588625893933435527407565629154068316197990439094425769356001442027647157280116800451323767823994027413502555004853076123997883169178223078307343474393738717008540470524502490221428344801764771424920147573689275538763561769500928010478477086338123944677975127632826988309844674750554117106849777177724139136486943832584564029832348229750185055177099867858574698239369267719221148488222571968018732443961134066181398559006801769218710803094153969323554858084866117707344124438627499892477661690688777599193334187399392840458272269512858161667526975349417229542495342964573862191120326366035877876805197432672200543884427722782631891784954775437080478013993340686075509409312523091282675978906399555402005967528709114228469684618832103972481682832470187691266875131628662474644505424354026784042988322693226233704184495368246708183439137884439421918280130869633226315308369793528944395891804069795691280975064164931311834140445542091880347845745949616031760955121493697380472367256732116962674430175048200585391125995835975336107614985566647484863881678509642654209435182478542568148706224096039583164678728134765879963482366027177931305220064187107079027567469105367210438382631836491134127331046201446080084541644529889975437173558749635274030669609265713283496899459562241686946609557108068076339922803635242371591986436976335175096538551472169468590396774392297942472190308836013842975570493388154774967316693606187458091985318939326164809995677481022981018695668028575538591784166190986043213253660192229698031662961017478022583870676771482116263322117782030144395315592107066089595211896419011250944161197869638075165297811536894858429901295985012691301129760210066379576110124192470690142221437134680824801387757545485550527200742127123224825231835920933575090619350690991261656337888162493486651720477530933117935933308550918541695444926251792321341706548442229933086474923885065903657761510635747118276580257716307796215172510600759652903947493472020856963499538037270346014052278423803362900492597302991398997455103226747443606566558705681268278040690018927095974081927584221709060141330073930690188476340403199827661853625648683632334133851802259128054265327276169445530047005144816848714929385977609870910933992815346501096960195045230727571759505206564244911460481476478087287224907917124364727468546194211326681852033922810760475301278028281043818387100967220444621638191565174782041856362420923538106479270376727891938597142419878324919668314107775142208041092487822449064332447895432067159883957765402222291259448062455175989550609489490380433856771809765062033049489626248416624528126064155648220785488880798087207452991382273351960584140781390268340440146256177512091969142130065601487762086204961744723420188915593219420670357614281048601514778397162364095552490644372581542021089788639172558290509087512746773549000398835369759308137878169669846008662918663464658642583053559190128335116318005286313079360846794279966501146437554966463386483724709144133903605277483360906195225713823815531943930390170346655829456033240963963180304652084387295105974705650180873456505948330506565450520165927141817066525317788826696977891690429159200821577008067413888507132200790118014689982336952950221965978134369246821425471512480224139987452434733500650833752537444332057886783831964192886470879399994095533379929070919462158060971126765220479043985163873052659359289638637936798786794289056908687245943638584666843205490516752663016548299332561728090024819086151053887597866976150242974477516587293708483794511958672448779176604789249848270165653805877148635380818112969323987474015208028474184965199448208259742549379292671835190288510559330395855189066783330172092810885678049015526841060470765212081746605965155374965644818117447976964437555925871505039389170719673467353060568059558380223069046549073361280906086965716345182582907936487105817028455197964278164797736449988813834104843936971002115973001181943946154582709956888216956742969437677627171547147183463707249886972061925726071937356326457727075550603862020841277919534324316077526538901213649114491041600973364263330534425391438994670035400225752039340653812618250381620569909474199117427967434532017693089345222624172390456609496099186703465101016053466681577891707857358725334154471099158601274440432583625042096226489404156254669680538066672343734148254378133654138657033033211135219297242327381829225082249800026679543677903018982495134899562674183723683611095586445210524565087813006580407031517252266686049751291071392300738479310859612731001185019636526668670625352872565527914437393938819083190471033535247421371687906703114329323476732319417109749331391259486327624989478822981647584647713196182293070315559015816281577039135110163025595333717254959788223605216765573579318512529073388948420760326357944111390786047591688567093630573632664007481960548002209546980780799399465702247847637699900559519378088111489928880362144633055724337872916367691508565536017044570385076756139848393403464970506173458465526676858611376090289129749283950029128298012581347643611605387359105625676246300787964339203849959043410763208785778570248369191705783236657451024979419300015487454801867065858963880441041390457180654733932454668830427397693120234251422594521582776027362837743483326557111631199757445036881278262515190826064171288348319493115165946598676658961951988471232399482567492876838571314956747639406670823147906172530493457114664420368302790183706841000215253872163488097274665608222852449115668522164120966097472847689139920167991646077620757282952243166459232620769582303271174944826482726858057650017416272397099008612118561283742928861423481566850029099561017940318917432707158146052611501821763918093030680442398741432563198972261251333168778044550375932226986433419355465387608885449638308077268915229225168730777402075746803545384972509226067683963979739036409691151666491869207787496823278324033967165808534935564773932705160630870311132294123862013792625775065770708519626450794181061538953926643245581498855151714255473073096163994500595282459282910470643863637177944345364824653045754699127366238494234536471367747096378903853072021404850108130275550921508966172456388509276323410989250193010861603402896987245014695882321761977424856290212183815085549915038038730398181332034526175000378772359135099293694614638975454655612210154357753961010018589378113683471630406994634895245128012643811374390662894382440676119403962067555644698025087643830995075348417586477148956551983778523709628593394284661696663154270799120175419843021923070568280724557709521295542611453939793437360374838735772677907583738895934720964954035245891254139771331556386985389883845238646789469643149825625512881966053219779173021498780686300311700401010936395692639987049287017651772242028020597296189232820349547034069165041387289044864557821740101400349608895203725331504997746288979681794513288940821121798327815147876600881829594648847665628636523230135045901159318206368900790384849597277020683307205337586057233503805175022772796492739579712752490084047842971843024397542866989174989223627616185549583679928115234623344815429752965549905660399160544398807386512094745064666528365749546748730670849226569946132892311730897336251319888176947518775366974425356914546260046260109490105963618746240197365659445223952869605663775802841350676481682817286601881676855943638476798485567634206234649134674460401665470161979710771029588023493712408712642264661693386322440434134181891145617470556771229040981663478501964571193202650966579198159637552507813739227366506755683628224408065326072418747806745497971996246527677053455215398972471049585660989313716542441433395885376248433286585501071988599432053053950996414169390669349120786522600267734350166535329886395785463135373792894845947197229770924320430553502583315197957300174112254192802322475321476179624923457650237099552587708718963354624254914049898448454988766961248552759029565244075303048415414960722454262811748834355678878384199172919326230659521386383743381179223237758075368455693208370467397308373069998537080029789006307032253562279266412476429042115449674668473175747227653948327609556644830836434635048339321150609855715388514113136568669868664475382191126259047510750736326376298143238207039353980017022098676989923831771711999553216323154277934686636753049077692727818816154968221152353116264905982208697643525670924522757017521519548780360372002621663474765756991491196242575019065811757968886222960757498032672442228704364215904902008234817206936360244745057860587260052465761813041512083701398963798158291170800498134278027808203049475615461970977381292070361521899394352338356661839305009960671787259884935555770870500639669891121949077790326094830221008598634642837908096667626995303872994055139918362889446488714589432846241447953742923405575826516697393498242782957163498901541847423084197207983747791235477946087486734630377534017660318306523810047505123470117852381574227612189193824725370992561038919917333403489070278826938580068446510353326244079683926440132370325957684077209439285992248478879292225320538343139671863038301432357624661861295552474501118489330368969119961428280183025322997388875847070427410202914706098103256786337938890727146601270636993156193466422119787869280076450591886152992512703227328797937793132206896611195383540193201103593909425736127020894169577332566243948492832945506938927512498806081114316532760103881240002550696158398850569649216574026966364891126383331311557342469454886264566993413473855618598911431427577564893566283029176014978122046813112522073020756682217496015189431611746843184435315027882500710729337689878712334595559252336064125229613146779093510551825665202876219000095691517723473318293560555337890921942102393820647610368160210258181783469435516525391752735971400258834099851842211035566152775626584155065593469308760981572216849753059461821014211162872985771170118519011282500670377969960652381206148450984224483777979449689795549025299562970805579896641593280538651023473236920440376409848319144235278492470665889720266527914272327685067043663832105351969610047494928376826976790351680586973865241847597573276271254270570018680881865260464505836564303997377634632092171702477992796273292278353436405184704993593411445688911481727047778944534581483519866896273231077617931265526053572045398191253839227501406981717694680044258412314690062500265376524474603946739912638713350252119740928793640124331506178961549646098299925594896145940926976751536870657645274527250611434034968002240597257384856717661290616022218266450263602304806506552586833991081446968872926421762512738341595100611005575677394314116438847349366906004425014638998582447031407285467717511990642635461766471132527005793967252197405617104927278875845394306962310450293295478286536335257808099318866461928164698312153761071490327634790030903959347037837001780196748995940040868753212745665967804422027411696980379419491427630732951010385839351239191958508966242027911191118942542741049461482425345235402403220908353117742041650145683886182909077926195812042866987146797486950165220171094080865883905110462244586416006335179926536212394110016642190811969233932650257602156678794046683467658034916571176144391642854576490933135708394312692730119379504939293514616859898175812185436639259398347838401374605929372763536313448052178357317275371473711004849226068983901886435431420210226827257259393472038528246010074722913667894104627125469512833644635971780011253063391526451512498725309993575473531126658520159467444565849997957865041819238923136697676233789203471053246000682448514343996220645676243843445120121538601904272161686969094945496497001786380902182342130214546051281882943813996090175901523409304653556291862378139831521540607474700946372335466046124581978055629221505781197254087650170140933341010160226890447174811387431395195597759112006995114839685792362513394496646829453763458277810861621264072891150352899062263393687372799175886859983378672321037981924447444319021537269279812852740290484055516624417124465383901858757498408490190138465202493377610758686347395758038356014176976223876165474505836921607177628823698680520873837014928697558317551057409818194902146398734037147555032889752759162519989666015057399677409192343567217482588641304105719089587074538603708466574956014908873713332478736753444077164670984606325816231139510934535744751967721518121095538368464997381544860103645101212055722620232879234681446448363392912920037661801665818534257470784602105537590698844396096422869060780754545369812350783915810274149821942480964636057574758852140935523800439324672051103194546305567468657576102649793933634433662282947018833074958106122140852607138194445294376146332229724818843140189711177558709179365584749194155082229960646437799214930756409667212972705605405257935910454041760556568498573383029698004529215324239580321094437842512740747560852859506761216293923976424375830650868549611095623471133787619685555013639118519733513577549822233229923213053946540842169518091705233649892557069821999616324510400545591664925118405993333807721047049437530482166015213809568837070338983443455880096353614802439038520775695818228422423053395471716014596568217305524627796892655913617803516292840327591113981118191182270981541539462885683101147269015716817075672743940604668680515253840605720043214539335852859498818073561266320075806239030593983442159270661377611242678964099571444778665145802694460555064855269040133740771245027433264586680277556271623623762665047492566205374133641818216729699790099873657819865723531232899780638871839025073544379005939323130286968695110672267898887461962776207756867784321866058555286712785090668201399620657072180856453530595418893893643301684710364142177304424386156082063167973894230609551690576020257142196406532620891904641897033141786930064660989635399359564048620564480330448682072463079668655111292389000776648442424770879639266103892198550051693846960017434243504154318331356479583586873582085131184382388653997924554598140516702202260703043988486930472512546882653673545288194991261832059739413670464835712775109144772761916009498901219645331284860908860476790980368582741738718899998785140392055656419784165855585082306126545020552295035869239055196751331083854126697418563244779973438097688524982246923051561565735955781049215222248953895037995250203786385437453986133360772773265627347413947785424349875307982601119653228747080087271314064183699239834800623017291567149327809445156598277262784439900731582663768312559793148019742018155890322721386870414425112622055797656309160011574213134704914350997976438492503523689149579541760627020927810148939261759450459636907621431487938945358703459865399841505379870091879076101820046660948063889530667790758846068814219966741480239043629074397201066956616934740994293238591722925401057714435248618876672019592534781694639843103223167753929129954511403813250069065865070536973411533087813615492372604648157538480251358816434490094991873456441420249180502393427323041015018527617799115604359829321332286865007255969871401423662982286404808148233683161437918559256784656167714993766470946341312545688911634218743429064628406867150378586958272086117843726775929567524812721790533386881155682454810305268203805710638881058388861638635634879288489308382555782111456208412148988232029365321771821468358823137085238901759775950684826952249680845714004237548712901274715384189373101912717353842573991621909000614010841779551416152694888471309597745852431465739095384034146542483942297836663918512262759720528734837678674890002731728268167139927996329068380716709940611717439286307867000742286607295297648799918669107235263389411832069573128706473492513429491641210537745952872503407412799798822966588000651648856272148434260632046537476905362136381082236974249589956299812929064854993474541436050476934096576645053535463306365065099197929138752031670289209379703682031174063097678769424702259013060114298164852755779810348078982317433891633264397172741197572859544599284819812169571942130220222825533195381096623317145308455903736111346419191355239701714099757110274247251692246986414708363583059091191168215411975549366873363723715327429470308449208304421738026024043692933244394566904867580408089080685028716920846531330255778987906009539314428189733784870837552270444988650774013846065223792800899125653053831094179347259712620791358149577042734586466442617470022612661298688763255402358213416882205959479382601702661269438901001701818931982207381059964327013417043516482608772658192865431140651453477874130299728501984182406331870786425687589854493699618037087879019165169751879835740453115230316717281512829268751126023233657982393763280003930380587603924358562144897568096168010271247863672313591861756751356985889737812176500716163597416077798248722435790223167579017708587167556903258314551879219508433079476530818268974320197311457104884900549305629588341025118237426736370342045040613437924142994290214342365609165184303823887460017059080580909228639272052913397450910403141271644262885487689997189698865875750852812677227888531811376931315694740181276708890606568990511464810442394412372515411188975867992127008369953219895130190038473119856248668172030410572613106438256541314342822305416345909428083555132021402481746161662044514526470542517085651672546157442118371307360840350529189609838346570655291940839152925226744892020787843942994651503445926485364395127628611089433737396387001377271085168938916875335873935204220369172253321864030036130389384588934477361949546699992751427415988506495204744576658738893674626276303408410026495766523418219191763591226430113166900725399294939597109996710958528246587084456932873098477280513999613557444514056955890595252871680680794143474006377053492864579590560274009251894410370438606381300456859629935636740039037248505647850224175614444388711004141968811679970161085992557246617906378381504853933392914664737524789850624678962908174882552837944986849573463537221447958776193933938112018714872295823578249416782130906132895933657670713047998449550613492216519450157750144707822783558685227454576609136225639172734478572925081540768302298069055007647962363139979191646140603148961204454724610332895240320908462672590056176951802326930639454502476329135445338499442990498517049885079860090104063951475026371325360302667303729654887460690640937172350778749416527428715492284983472907122918794240925633578702144698266187321669869545344435227328019033189766153010061608367177148365455901070725260441102503004925999775708026301046997903318478999911449344159696693281178895549201662869125211780219485092170265035131374521713730152524111862872689582239891877480870535145994629112230888639043944867081251305020385838820499813068360422476952624898459825547687058957505272889291510346291026732569737994034182841422122571199501578188284170086942044292120563857543995916822873818894589522012175944485650607237050439114671317950623460263780341219942818123659044927424951115202551706891810477562920825403209209294869561939705798434374411933585647896357440863516809990352574437207677034262220970024573865956476706110669930467673577440408597844934163003443157630929995595034361747995823519299519020459002962140785105251538938599227662679666156710436269846130428617663067084671561715870872218174241993867753474271411766648969738596463464945184312677322133618499532637764816387671294253699297360775561970087801407910806644146557268024061454412036989287058339955451991946845383730072937195379328835027572916671411777907177377352724258868754406215143942604046655622924977649571591924812868288236816613264667246836032538139369635989092875795158959749055106737696073677994370487552126194834175105336840100476773444904821395782562647981749943283183510566512475043525123233600916698683281904788918491573396386906709413501524094722098195702222089248399982962633061808361459907225292996015607345019569022723118819372147954616159756844371317450030745745007964340348846737611855499420848907602585510805455078237175947677685253218457352718566522901010259706164996288057017704179682511963636265242662117453416620763033760878569048142126012464873808584153947061033149946767612891979160593469713643550309339008942036648975638118556002378425179151375648198414680075524801515562158658612515023162400745667064093439509256412869611605947357720648173153612220237558400319909733871257782852164608203463784509927698885649024251392340291779410635692000536375270632108759390409458930684042279997001562667393944499083798507569110094882117176546254499205301963154092686368988655682937670222406818851252280391664395137947274522618120900115097769349137882729064616662116705087403008600032622694904801043499056451508663248227700002871981899305715510029270616612001176809187541134126725973065098712421136138162016128712892341758078190208851141933495457215161740030885823063873171633207190720578670390581415866201944147978666192792604431611068528657653165445840391001453016627148969677024817347184290532027236363031075964437254042941883367210149309543692616194846332303083350834415712893274287828717227019964216600917539280368723288198441058075245924973427375793821358014182232335745382839735304338646185212566413988505398777461470418924252719554426597025465725870137644783952601103555513357183800231068678125681929893325170463463475583710354241077989972811422222900224411031295108619597492255738678218722995893380815979796594738665092276536246015882938397271704611237012032424877463441997573420614625441633452338925540729147087224786181299152199933992289224438307425146323218821122275516885884295391426885986836759667960201630408939037930689319044585509529050450870781782812902869222990867661512194687075746466479110722107232249685228485635600436034655723443567708003660786880044223270457724058190457077608762176925599188045573683297817484881890407196234107888630896360891967424972768386895488105137423198990789225712154394394067760247827306565319823303786691643501508757268796604098225839258264487102776792907705082978725995105047076232109194357852319890587413710315211177751325796568207635146223153422833329682768071400090510392339840769276972667718570692690285018803686973437918579737683478735919448257719317389969734095628449987400868040196609113966989467789494827447262817077197255852518142043937460298498148080684170941048436023583673451434546733656109386279693930352657454656996488239187428085352721906501513578428496798790034028614900077350638234059581741931510012939162607340603506817473836897756547160434058981682580468078558992805622510270023923502784263123953485550681835774871130542969649699054098921149691632451663724171452916981837062912271468629345153735516933193518886696358991688445358256854480152959775515801892272126092627118836008134872646317031939633939816027300631893286162655564779807722701214192079259861524689428028335955614524303559974971348979015900210500129922412661584452701313533135402889595926201600934665188814257137997638329630527736408682812863358605266635492176174311080243711022014470287560313554975288871666911259896024836696795106539403002967405020966724724613483775975098522134782704359090280551917255479203517464198189642399645949521312024695617393840825449658421148362171520461961938280358711408049096864890013361605754567162111284536052918065902322713006140555419953198138881677801718754029551109364553669769282588848513598093659263736437605993727516681518762428640299284415940772760660569296224313666329764325405398558260085794159767945568664612766997959982772337574300385374981647204939407856833099111443157088861448376876675841927166505354369008547735933824662612819070022094934204537778973984630317816891526076002545498307691051206249326344514525844990808104506997114078877216410804153282696844275427146388154404290122623542989776214579245875088940029649325184174541646871645413651593308756163163684199662050586964873477872021648661092800778132577861199570552498526075281980599138232774685753393270420846719269760755328824784753490860225467160933344525060993746343268881629104286508241072012784554885450926624994312194262990708017401759902949241959234542879922519361220893943184525719242234573643896728130864789856943679421567589178283322089777842871996188582122378307891228732159397843547821833482081302041318764472167609600224396246920465744143188779345922543889338779918594156759113091282421727609770555894097720445157900507021600525329837503971432921633125573125499464577546486276958911097546439156108640939896397214286784090838817612785420286670140371262431698490454760461779400801480930020339893788032140898798930440752315159440576524653883916044682790955637022010738754975109233355911542948251131934819140323623003319496585379459759022529551000632340419482885637883997793831143645162936961236711270645075943200730643080965044965751920863917128613064418142833264134843376505120814459634544497936496746108014118453085930464416626939843091390764318659809704556096156628162911163518843499428786453418267869795800598697632337508387626108018273939908797876069550411978202501996918196000095661993263238991344197247333306920514687620336934480938318968881698626528130585674186660084439043641757098733794194030524096887469312996400120791401594815580475018349043572807731431193787079740773586636850752097440237616929057546543839665666755741894979692668528207324562534900072322669459534263629842066578053867352204443089640710397923294589925631316011518759780929641894606653913375758882248119205094108399110726403888284198131947852252571272217884152380407138801868568588190316173995873321124079176045853821423067916597337640287206220056863188802038887973206800804244960290082816036230141161410210605742943455633791885550035485165880284412932299220602966862621075423242193780186709927363638443297642721849025600504089782126412610902228098791985319040941144321039177775173815732725264857904673470149564130189745931464970645681406778361778520014814081334991260301335230199182631908787281628333883574206866992855043550646398770926069357894451419117505194557223492790001962686729629023322346748922355165221782250769986579421727203258403663167066820030840854848050744540519164009635830782557516536349475816486085385651292174169078417839926091794576328642883347243491630041476036048008185819962011736485023468248587720136761329511658237518792561120790469405625480700550743462295432405345980698202411244346796172712558646526867520302683114381738623827165319976684485078433494358293694291396042158732244378906939422627632074659516376114444701566191401457322520882246605472240063169029471642840893151821861040489034378984425855626049978700421217188321601779703589405620441689930896483208705021763490744742534808537335026551742115296779506415022313652087794907285124898212567648250726216559503873180548329468498967958531515856579013789050155734223978012683829129732965175690052208727964739935033834566596841759041602949198194649664372893254079302455112344285199798808904031435494706756842944960212773692278531896677034345177806086797442843524336275709119427186061525679814152726618844940933572744425662844247860276843596189253176118241030716710667689155178350756584366355068694916308031895790473555427344537001441468438193498773390531286605146778152898128455044087612452226459781054031808759083816312246519244466551624000182991472694715446614518676448836313999189151738746515292005586025614426936267148742288958121502264582203236975081685134652069525309372757891225883201102672541384167599890776324036952874903582820296393670455734818604246498452404116281801926268880946342661733761623183189886335695514987958661546523447767675990668506046937547340714773098256709224129381485792361936031696554399382413835283129348517131134231941935705166128286269291074388384676751151540995852555790162190661201151073662388392013487936038035011095688703236883050113452751072666472881135540176903455619124739419341897387951199556692502241269849688723932388769163361519506950826686606377981968170636497526181477804255961986589213266887668088772472667881401607017683339780735082707866631938818281415477099096915705045779887630385816929304523423020293904904471263589723640831344863080375269733571625038678117196488426308866976067304343363912219974087859246783657961556890227461575219083113407343234703718893428396609453144045242773746273919702032323211354700390290432103384815372225784452001175898252783160109887403966695035499688520895433328247977723111652285984101252913910948667201803771734118129968746136082690999203329366829180168693826172087067287767386577746454268090097240146003667345421101788971574028071854255904458496005617721447586786498912862629542962057472647072682369058583169084315846658295674736203632417615433663602322739518850431862885469144773837449293109479340178066635952148281103153264077897469474080167337798376351772180456882807645667995169844246445326133578984951207859400805967336671830977360664524079908324620861638758525341491635900507038832194433661309102583494959008881363904791740223082654473330130874232599345040361410343439323943553166518674093464854891305944687225852212035177527408713937466945775079306034881075016275547221818369188769260784378099620660761072436414366213731782203172880507059661581926490312748794191090291263214198512141922818275474841556747614277558047346907477743309830021639485125003068836398616729582477162684071508097908891886144282003684145599861130143887371443735833230713169626663962061638262523960712345247787871957101844310230839026995674615516599135450701604274251894018282855658161218537745820445182282236322977421721065610385056174617123670400545971777384984665785305751346120009545900874939390161136831588962155761166051195502217353586639384797936348303812121942717477841458737135556310698595354405810139243877126624824413745960297854468060728977286520942854974241072089065803353458764053868403504180593982832201697358759696850538175234904706481823878120778875399456332492675205409291186894236080654795546012834347924857936249032450942459559876429972402597629448811739732955618771715279052447137206127084777728418164007491303818016237167665258387147439647407270920566432493679469744202902294990993343751448959413199585056406715177108793609483361362460458618259836566824059334028142754648299007730213982040529042135619439932655351579381091671086731474318507480748179451513667868344494048087313458652817776393560018987189997960604012065862731075775668757539420272092504217674621734814443211173794466735210569416458420556689616359711212813316516280043320262451187742041759099280525486363939926498715528952467506482538440809754891945159452683967960840011073425011291586909068100818703536435592700448952805741063115147559029660580338542947036861483087239250840425650102429887884425476509868344667156649876571761818703333543381410078188162510284290082635869528643941646643819130156848719649607199142491129367346833476521540913615716649543924332584016932426004489060234470033142486459566572462100182394438908957801790930024998392109168841303051310889182163611735611355397111593320833591824875585328208988222789456655353790571216647977420347343803748107176853183282362789961330398757727322148421935314694201221052607694625352879344699279394408422491809166093238199362382360155418441501118244510052203054816731820172946007889626332509595179212889555145461055120370802263260304721017883360003373339676079261351219156638816310787023591195244909276664383878407823890187555773914603132492818904983505179468818346551399271704006998851485549255357252274791683387943135711712909203469797406083414011605483291004100013898335001829211498562088843366676882093728416948804838889615230240653234158539992227643095089546947969003868018488742569697363483382305826226677477252739154544632754159637232705080755222694941963650919255823601241802674948497671233011687230512231354013062172104801281483591331068403027214333432005175915610827630749907211512247088245899206764752514794975634090894435966109665772941062046453386994052394950068724513213579962815816423313781162053297647859231967737064905278502588839808603401076646011551454542862559181273426090925574827787657122886937394259054305593715624074713628496992496908201230516466630811725825231406092764851486436731311337847562731822657689217136739574440731267582361129952298081327246182323099819505596739120855108526780916854125057971798857527831744324833408908728928624293495037983874801657593704509485049687613572785773196611349033518633335990099988445870308110121008186489389241325524358430184074815396733382004129025843046807242397458102071405839067746106829305243002797985288835827735827257556705227805649048668389373963265003143129265495340701627580666982585825893729584508577769269501587498863376991862309532329494951213287985041479082542471447592491346976964862181757892090147486176572327269148427297051350204235712469611392406975576447516083582512297101267166545981566878199311806057500101794696841058579705378674523680582040017605444823357988214173321866101547936813627520319364791537036670605264500694524914870620647394555753699972096466732201210245156139871196494392872504840384433307614448060373253483003408993021714413413163890875844947716016631161301343070592200418724927576902146085438325353989033998745243130030780653864518363549081874164104419656130309187476744564312353264608438364497242550069818266006456115835131925201525924398629459824592420399572100531396943292164040869427091281512570496776124149879626000949044114474020923766685094058752839575204646186046991986835979982550334923581769064886667359039721003186142990977472356440931846869549061823123039687940099052345115004445923524823564705857923971459891237959142650130848726581988551119464071927343338837818708174419965849409911683195861274947369333750604345950440625757097489436083111789456523142533875728785305156874015076755311817439887262837654060698035071003856326453278774271864169124629000488888777187840089383288593359796167712117545037998467658839922497776537432053978188510777532702063078057678070748409405183089004334920336748204905159967001999812905106839493119377557904888187664996403483197551717911886257996199262867819681060512775330837605362312732908855112642946933951038682831533871259917843310361051117469823055432176594532559323436767532422929755659463953419709200348178605063508260499219840673168447307045878847265966406160399684700117432440661541208381575796775397435115961386093685805711067923668595623419610619814774050323074258263631183679139664609932428652135906917398140536908736707265742446667360767504742976876521871675784795136864030709186807064831580879071146572804079263606316850279205160354042129532769717123674171320698437472601248855605421615223838168357682950854949263699646250556602738493193788927661932787993607458785527183391551626102955966101878107697565677087524718953432284018998072782808829458557934519669054813144633343880315252173951426376430233572648154721621758308295479543974790739443405616211083950798273231181160335983603038571603228324276872415148310081607814136917273106884752263216124339564379961165013877771318225288328751350316522688349055241640443608561287866194346752512654017287959059163441740025098327507788633701584468005683126206694297167627032522376114491281044392105186073373709566592910179367417219767682938037947159181081826549242537543565953107717136743681724428051765343731449799323320336184417764165295126123304223628018616123735590678211669177068417582329365227782967654954329140768380802690782831199513546598509913746261584851815356151726584792529655956153400130185836419084256520763104489263879516582967026184858690431563786426738046051669262968869039288266527818920312134460292497747382621524089363222774338919493339616086756719424926448071904337272597453960467057760422718636999983612883010652600916638402561265007552616476239878566668200221231770738189395569472011355762366551025404496905197554829682395906793027505952013690857556966035265782430250408138513745347497106759296094699664695113227034505570513598035735736866705586283471310701974150134840066088746558966436244039188413103639887465089117825729987930280063890667344893954110694364079023371602110351375080946033559910447886777786373039437565052018723554943340112408257645003274083086739598755337348569135621261091596437013530872666031306660970746551908799397701692401344768998711550255259964195934950855692589024321237970536012952413711060593762342632248764979078795426371114452278660818787443273176303369474925084537338139397370699212502309418834863998467661580407337172674372537473029256914716363152636842088893426921864758814098037908304839855463223416688275773463394487787609914293007170376765703905831791686831899194381123102111243957691238829844447940104966474669188606983180599359606551285386708511268878692074825399377024846247333790679816860389019181895627857524045010575897346490564613151681790885180967347306376825488294721755891027686279838232484655418877680223265064556684695695785376167577842381149054724766915707365942292466166864719624976851933780839124899683215035196510461517528769238155473339926366652114549135796421711618192932002265349483730590485280978677106502122520151833446925215865299330427095712385987834790226743051736672123690265244361387810124124619005748567347137504384492116177004428760474441645310733266784107925224118078358314168399350837900218969080764861181357356135708120006165909927677752535001147450567780587568801415063972334695126889959947861435198945520687037535750099525847374204633492156562392034733960899936451313971469919197018376299941932550058852968353295658568826083365322957102485289582544607979636023688127554434144619548739540456018079351143616275208554509385639081468156582195919254131437453106188162202961867019353444883300441304788615502466029241778314323380652758623708441275855719272017488471749420611742718890234656652331544058683775234141652405540733051558521482371489191605243791781139554679621835730157456366765368182136059407248383387439308405980055528203748798122723544841580821239274559703244526288663284586878411014045863828956822891035416252963439202641388042089922802885533755252434101600770513341963699441774727560169510247850975591684121436023549628108709793136173049569613747326821527282973301727559363438044085450122066328442801764746946213155072238861327405856103132636336608808487504381983012248902909932798090854641632842310664427786215045782476245043917065424153480262164079649221129705408674587185597059541673898613706702541982897626680737709494742881286713512295909424250573429661618825955447022065639459719652807596425601873384241963652401802009713639557407471521972580925628166058184468429667900240604092783344636883962469026586039889439311396985108819203580245384994005159345978635535182101864031767129623475989953084501038121934614570667614585954701815921963463502874031555806391916699799571025321187491399831902926784139868444433046207096468833482087827055584815095743524549546651497477707771364641081881243933695738839414185801963944793153452495306493993475478778541097376001144014543850027264891212656709716847732424813078340374959834529174314410998038723926305355113915218083824753334201193638515539358562104598834544645358274164315876451391416221017578260608040470960619945040585460649537284376482207870680014567340584815641501471743716146292907265442457734326057631079785429970619952357249424073335129242676394578638181183034508989928733786478221636371479559612627247101580467071097157877972410485840710347778555278346058465452317083354632334184532596210821557156925342734500418077164650396496929804107198449707712989517457233574902949584607010074799323222080396944960434752840517990593420937131273240601214286659517466900251238718864988383478013482558348473284328387445829850189232990069140106804993122857216721834158297601624094943675930953879073475770687804449364502643602173104747348209747222219857528985132021884383831748045773250409692058293973967960183138591913333719385460625177654809531661271199163654305357914060513501937575842939715085871712663822288043672990558270875375811553561249320754597524203379461553545886433962618995813697310437932784002203978138263243787440163522596292040130231556192771542012080613701501364180360378484641471124554139220529159707575138366907284427792106382282498819211812097447242893309955182561238366697033590128016820624384984793803107281032202505170597719736057115022905737222347319999963116343332516150651428768670242761754569050706791187635170692237439606127595249087364069963899300032641301076129825392298710861645958398287633586186623463457661547905176110498653871218868428822659430520638599861156341875276862380599849493195597685060018422094347348852978849781071846845774633980629457806427305253939927300865858294734683446051640400316339017694074251130707150010300940662621343069292770244614511831535414324156728982388216287799592764762531946354574446387565798567298285627539810076461975176226448458345248529931924012252985067971271165202781509314996249924140603878637471825408999896850914648336701195251679294359126790791183803798056842552427651154117615328186740394026408955117545119325968189834040716332684362696837482552017065612414426018824188439222924156752152162424770654169134845692941113668323398127942134506585811020905169280927811229726048298085024734241210526727769625755848112789625430545539725363565030551220112200795249726629446578969328193865561377862732124644265819149047452037139842323054985849633663480221144339590569825713952733145323807844413851015676799835061067249013257395829633387239948655912778444140087560447806703930349938100075453101331425949933933653005693149298300695565731775493971504936194348179738797498560731328361622770571460382378221390735913419763314640414760885940432688107319131752102235982029403862685862108394059494497617507144670008330608395417762839263588441775551935180563282556422860872653564694730772402399457429517746106488007584481364702035608555639202463557264452187322774567041589548476423954357457989061704775931551665153391126302700356711987698198018393248188262097115244761936870294392023784767534491190475613309663543374397373933868227854623515604637368226671132081083237669017322721001254700004006139645769496077306412033932803224071501784781639979410679307727000503104722973046159942577221638989678795726052626310609823375826008840164288069405138820222915881225104102156955813099070902098046749685886568532623765136226192628881333295662350940077805706863737702079269469291317781396169956761038651861336211416439403306916893056541536818342863967650165137436391672947074971844280884409240443995616427893516170741362248333361417020225937012915459375920830881457880423412049106333924364774790459770318526437784367255985850869544466241389057062272765369512954818123297339110895302494275176061969486210951304987951269718388276043390392352915580079655622319211267266558024321215265148826511227297839407914849912963199312136199185898653050627965265122197269787797528556701221479004414959038839763791415822098778247380893367012323377310232324947724648366110027160777732437755862479911199190213328077105563368928586313828445113050568102867362954728122593865001488492060810774488074588106840198627871730064487928477371233093002620732079639674439989321945671369952125499145514096002953562250489509114170392571830296875482203952325234250517387235384296291670901649525793249893283759215933808793502555594907551161053478161768276259885460553858373619753246820372942553347161097580528822073792701183436489537431254301403247908118897541518018056305601257571515879992301262705468412985085622107913471824388856290841364662898354316234099389688417409668974997908963691281219678163368506298392147078418214132959483272523624967018353086542562538482702501972499263003004193032529006344054754779813632239773815399990274917902711532642314360446817471374780643300430638524330498471489805458634407269461882964727908855011698498414192067781923083653673170418696786186195095715015021212851897850364691364456233309585952440565060100946428823706771706438797682265615493401561390899161660061882585659287403636398382138544372204031092776243160000811029396074062051839743423129502521495917785079535791269559294326773734284237909052148920187844216271024395376756430378949493437495127049694869943910967059928200433631662655472707882523780562239265600037353912254838832374429061778857090954811328044971066861414903690818822356236749558798185551477391548953722067341509873525505301218536017073023838449963579719393395470023683635965834764423739728158237646116281968222398464573462671077493075615321130336481970263993289933207297123032793682440885384189249057948693028827322210469967178201338640993678342475323585923897789906848945569072530624907725469967837601919717012247089135212689545566918054774317666731586906017579274323057297548523130663475079570180781089632719680803706484188187769813886096492604617976519119965773510543957617753736102573640525508442846491705767475432296130109561989732203431080807126231620097645958809486117237011062241339823167957774587826394196475296947701312746508784602653862024125085194327256139786939910434859892284874930859242201406485819386889456153051374741335742969745660988756816060966967920958354143628496343600995767774024241954182727304053761331683946362366694351631270673006566508538087258452862244805171012922739617786300045841777701509539015423031481615768329287695768008141486680701442580121827037027515212617487894238466131962159300029857114138875312983076534043148561947163612422712460324328868760165970493979699279412255198403481490024081857647038255041093966941500585194402788009530931127129164083867616201473913741121966214452034473165538702659333128659540354199138242647166103446169781724015114592721260629289142754783174210786911725460968363680934396178507978041770789434176925457150178385027611000249789822658123123304224260106919215896784937328046002954749404901430734287507584508682674296815052786200122422748759134666167852705113102636355380421758027037088506420914771488202029705575235837737817108501604214971223194480973656475551093778269228223323102582863993878957207528027701593023235462542703762661723300677560242719534408315534527611981953397382373059302121113174959040074178379214434689893141165079661319614909043968520492995796641912667701268945908159535445101608042232273549823737337574545861482208591045212379475083949437818777826120826108099366107436972768804138693002209899286949088025808420632183934546278688868450888657178642935198820463793084086445464575738562138916464779112659410296725881674914675547724726307201831684287919195775204258996183469328931674243192818419059520242683673621836621667763826555607852377750400666838128437579856955183361726298357488227313022961149952655670028320043866218306469818326246591753297456458071572646707556829480384039701300609612193386375282256016586291803798533881891086374735138519813292614613092232834081557984625073686651049858168397980100628511000886683378113970688486720418917239929928939903908921193884284595369269988547752446551506350096561242882957220397866268259540791056568136903501808536926387382606644344958032328887127747094199455154339102215953006547360969508788271983528421316436629138753873912672204314044194957107028896122340095283192556653472401695844601297484618042304154631158685666166849017621142910476609152930100418094818069147319965549494924643600067164416996225642436245309834770143011573304644117879178495477846223033794115176697685978738830586335317170075226775179320177153145307373419774445248342384386138794154057940100096183450646721808955131254328804619772780153981743724652581366949474380082129819637784449254802243930852055737817292282593586223747578432571464128916338618654701977238454076048308209128237453015032286533637832649700065197987082659673586090644615301637998921449458334188076861586508188051400880744308864200922966162584696049686748601346666008311547574720688327142242542596521912823316731247767190360285645326413947205445666970845087226557509524930774604831164197323919690318130466366753239618038962876897521908591032442476005299743236413495418160128521963648475884147006664568583446283101661296414090169837858019482285322574570811102022991656358043960673814989426739321198108837333761595436176591239697457323123571365672389663084038736121850035173329903481783710026844667660323488149244758790354666697707398936906761627049077037610080452048915087174723727055192695949695762516573605019263534170079235768285290363403302894133008556780541096220538371724186575996789019377653275665648893881424393610282986865746433550855095115778213763887689131988155555050255903023213413409743830254504829308946916151836261130574003257701667629596117608838728182885986685334002350092561592111534361357964444492514975866817147333998617434647250979803525897085291956549900689024957490111648508753774896174645974805517068043978442540486833800739437712109751522727734509712073896038497615316743932103178127616830560610943142097107478196762834485152401274195357917554544642366238751499937629483198940513017159696847234950066627727102736517211849165405483716340274936126779500737713022249526509747629690134464580074864792044411143484355712016944387264551511145459005870255359069573585877281744698538626718253348416405280582661893876617876880594077709516283106527490744909310354166403591042197670589362727403374740086387289776480119164556441063838506179454717321926528980805601943111864651831832830549955582897528712422420590915750985535919990826769816702311676034183696587418629936538511393204108376964906838911728967987286634569779009847835337623938008130819556050171398105040054670591883399474422031109901781597360540593380003067215487021028394865120438544377087374451771826742982216848153386023729180266566871598242966977801294146648055886470403286821527975558908613841932334468531512220364465601708411339599953186396882860234920957809462183093990909283086289623535318365565165133343245502185133301562709288322824829004403824123013881617285938832727221247863283595696227358123744456581447367415143038926736972250190532130299304784349483348008423668374691672089533236539982463054947972945418508447683822664171795274298173987615383052837750970972911752090854865551162550530834107974178085205691006048505497147938631498136136845317809859539836355204875316109705156273772536386622793166526947136483674475044289580873770392216430404425335433996053587843684468467447723026435814759174205727154773916832149029317101407600340406971942895804422896102413793760343018398956126661304188377766018175547947236726882258818024392475593096876006282578719227152972151977086237344210390745879711846123390872178290237948927693087560074668923844406765959539154729982034565649446882261540464876939051138112255582816437905580756061006603879608425460798194832624201710115614537449865685174392043735403622402416183082316441088106977023459469562669519915862385453288367944616664258434057500873880596163171810540248142845539748998865567913326011310953334750333114686956577103864081181886480076005039336007060807740225744557407476017268757158860429860308034814524278173074221267610967219109445115292526792095522630661938498795475323373473575605230472667729767930909064244081166339308331507833060096629910713353733300483332019930097304167769617917962854713121788707927460705456451773456127924260563077677394551983682808111976790405410732898203114922334319971317778907922291221233784166774238226477119521482843357115639952131063557471750436936477537104065285770988401136078870196323628571558015308421972912794952979337148691305226938930056327211770041935797389029116617678296232322457267287543190915909929058181409298263535188845618120468127756221675230922289554850473964592297322066362932340520339357865872429370613284538429896027053100273702356836908519705692576949803063120359809181784439571617146455703194579547378017915093010417297367483284567276181778172935497021386249612259390303684854954380431800334296410110274098488614155592535095512660465180946738473808159004122876411288353391556655826192257480610790102131066241269051896938634387319564842103841725790743588070045413239643108949368967488881864074485411805004795336644853135139759634965293393637296722299647736866665083747011873313370583595040260700317738281724076229769617382058699690681079276223332001978901286691348948048646196096356259783862090301137176652753754836143665095753252236734432227938418700049217182973685920235815379738706906013907825350943814626243040902369435089871011076420975322436347806236062216926779645060872859259092969244125466124049114252913718687336823333792838131795350783733832151030359581106841073382258710651156555176056873970320724163632086797929146555006705602516538330050672735124932899188931051044137619608454387241828817764233820905896189037664367102987178058337130588218365367416426182427918033568540254585153561837327359492070398596875326806134557766064742169462846946131880040621129941221765931360647497417549742452791779345083325939004735281884619118589461634460958300812011015600083172620431326936556341544419889215282719326861363367297673106759276918314574220701264018268101819633453637803683825158009806965778729966646713002071463760608501177532743289730957959424831468047269714518278893797467795874878080268030121247930167043729229558934117480373711729146900812504730226249082338785079543300132077866250356326813697089098529336556763675827620408882467740100065438891641917222922228750783724756912080732229526522360596899122077161345328955376482841845721274961287334637779586706002981449162809782448579392246887553601525665274469994755194164297172021513588800691522629842547477550038329496024817196857473264094555583924643549286416194645732335319021335391464105546525442932313025023826106218407640318134496096665936887106601630946535798322977777342030096906142607174411729445806027009419929565379578300142644505722547245682855979449759797001759278479593891185391509689821832933932253614286552868416924994830960241154743378675377792913236543726183661606923391070080618005056611898904791307906733384843818382346829030377500101530223762781360267349946725758730323626002503552641457139896989053270687786628149345811727712514185193094486520462858105597383418469429194660033094573534383669108247499110097779128883674951928109179218659258242859188760985341405505646233033886450728075487467508364955856708328733581879056508275553385158019992576474990165372659089240907605199998607985566828087164858030744097019617501565743473506269557682386108625475686362337416770804625272679015582718012574795641259577513055973736673441935773400427170425649411566237930231851030847694914429052679857122749294309636130843913210955826285126052355120955931090221832292423946728948020387449656033611197238951953098346694031498071779434507063497811711218704714368922667744274053855740590377643212126419590900889754203456847676960015193589564967277855703767572769066845936198686819839286588382470499965206433739347138829664580176240918874386725998483591385364893998522036056064613171594544065077119518850014979810821485939980516126917091880287918916529982696950166206900229299420217234615373207832250850533348433220000332339555604345137506492364629619243110424424525471206489861624589963244708990812282247704528833236133409766527151758347757110693244806282226861691949233591143844271894103872183383710776305745783673908284172269922065950501203073984129941050290867109974750075555598570181252601649910293027686539188390327688082203937311481971775547701792502432754045464864737914500170007961381638423257170164173884171359858769241452483383625211422009986453631129985312670487140956041276503814831139948864536156757413856818393841270856153293466531989458520141569193874049380136411692491854810360947767674917584332788544168912127657897074551905566351442585999768579671232079727871976571858702141321742213404687259381207584332758576706899122959122205655968595321787605418366979407802654805427577517675377104103429571933530572189216046630061079627480914357922747781393592237201285230582139871576308361602427839506639640235870642603894714416432063697147511257231896762290145194109196455047246136497349617062673396370344902994033160845521708929711722055782290252399289612890217234323315341309525455269721675815451700659694866046734129845526484476719797243762546344907294624977160351802369769379691807595194950185649771062753453313712544863890106252238512214623821005513751306587663832006000252954850303518898139945323630821857411088686280374550123891884291089453883186747316700394730502538083615571234292911015086832642800391848999492005665323588909019651249820137331650171141371362189454752640267415798804549587258698761742161609184610550600972318311573580975872546789982211645679187524129619340355919395559604747740122133337805199883216730040020478553017377796276113370291112409729137530425176651421178297493713064302449295939949253259359708138793672506758330458814736897818256235223044394148142991273852679963142337556580645097220078690211886861005669198957574688643940542487584644018911245288242220574389430942428012058789010898061205670188594753543520428049304377593240159002822645571426523079664911516676993444038809421603778813963499491757817066418559932878033500835449267296170156271001088665532836701691680722086706782740692633406757809846495500497330646261823571092428212240811532590822359656063388171929446895164828838525020260625835131380253002506989055516776068391333082374111608857115461376808484942035226085568416377796825111407099315717512122286175007546379772738710666740503412254361653625407077556099486910624629601787245354549589917568954628145320955792113922982241927764746893613496846088432185605638637256781654386000979196226633893884292404475804852387107342912777460116167382261813450806233983266126177234990212402948222229361402711976904422278400471282887931027318950906299953617354879195734720087899907144083615818738379322840716495367381825499429424583008961855739687490893157319635335962331153102979037391911028202562094245673666848774938957320618595708896574512884907762669543861334460498129553392494740442307373759607012024125836436822905567981639786774020694473328800276182254368302532688383671449723189246761820806189130924438279691231299438721279899780842521325744887981789858333593765070067694643539586743796132300518047550395118985008303717887257946796792358272005133870884716459668638745448029831142500624263037858506002698976305608881492174157661657951974124486989953612540324945091437402305425960086720819801331093192527471727311500430608046674952639209914605600431674513937724279601510255200624491762534994336538942239941006512710417885384915198204941618144865651116078711686942876823260157841826383755909439683190992278466142116328565420223169241669420083963024575623247030559017084766059272033301618945843779803733627783197975796346101386430839280535428704123350690555977575651451323252587669133257924918748602906032134964558602321238028021245174448388093587015227922035292188507073584233093446278705827943002292253400117194221761498364711609084493187734311590485509511527424791276019910105627794663426000385261871928417939376330181234731727624141600705031258900186729865760567922935106120270970484111959543475934563770719483428220650721424772714817696379162496711111267844136664347131174461104524248748488593785250738164814361641156295596212380812856801072800532247861414741305858930763354339090639610051729850575659213987995928738461952144315543726895774696494455809935078054031833713282693833961191003279414401856348171732842743269080586738296151424459206160944842629036948612768602282086024000334224379920900689219402797290177942916275036251834673627412295034965206120462468417885078896625426163936891425346804145602565612290399355694622702820535916895367625390081256863954490982044565833940423346573494753911904029500223607797791176155312715844793727089226947554802807209935138807988553194101008839449483658766207362002733754749657003143533777366513987081841084317739986113394100341544796702784870733853439090311701135567470797240055868333003011491754765764376586433290722020039787171439383833513142841377656324981885198345360500621972426650505936623934834071034024550719500492283045403499955842655223809550593228821180851059949036083166940691765338830904246108238799783503891386174981578513926231738315652990072665679721756503413096878817196339350343059531718064100943073898382928446899084104916761541887567316311261292234629663392079733259804529315288582287422470610041659406907872972263595682061974102110503505260285837095522153672586011738562262178234028976776408268377639080828575016434003584084927857167429216015000635542127516904914439834980762316396386662832149373695742511895326317577932673168644701673090016033851622761215911543146420503723787517251942413726317429457468623076805131609581389189534722601792277056795376521731994324323236080167934723928574506979574366173803459661993223344786020481556832031019817352233568265538813125393596034056255836006120203974145591586442676471988409858092318793436745459252724255830998376967280497855822300484701854292668136435810559589575419452347815153589734705162895280468455709297026416998874974509032734944720083690638797950958187634428269788678167463454173276187834767956326121460718929524990838601899767765125643305359975189453666281819291937387976481866437240449803133733814491482116559230359459238961811412796708233589778407224583172626678459164815167373565013596463959227812492389191676691378239323345696948495552162676530673705504305274496742207405034758845912081686118310637766697740917294730522130369046767452227463723710557778511806930415868193295967295135920362856502809013258241458105713147098217053448543199880622903538810351048816925228129067523570317677624786242855103186928592827097484342186089697355340952421208852030621062618158702141052642313418501682982662073765835505222948178755913591255109239928071424395172298513581090840461925821552440479482317302037453293865836925156465288677008045867173844856526542174945858252818864261647309588929869092229888031819564112262176124763438609912356972043852367301552118725533130858932502667833427234511980042612700669107186634025566769435293481664747063862489078781132849003009438586062172642483160872784131346257783970923494315592932068247821279982417906294234029949712016133999332243429518750751542824530566173061295546996324419302691181254593606490456337448838298581040017312904799901926404812256192584362496364258751507970624213396295876478356186180247248163907773958821117754671716831777238750047988958285829440524830558420945587125911713753605629238141579139024399667024342629336646083410646616675603616876965452866287835384014536434021376780847677916862841564402661970676627996782081316839882880604896580612601810259023856210893719702798973959171726551492643191634880085121767995651231817261228750122453323227492465081641448077735855182877217010746120933574082042176639486659528772280322143088086529508248312829712956615345088451422437702079327075061687367121431916110069121739531710083748171642001323561292515261712955712846981060900385498009133945649871027069442332454797932552048539332789299481384788070814163211186795582319320740781536697141271661093588961848641165032443597473448748772167712791827112631593384776839061417655899717973808946478555928894741492887354586369316684825530528365656750546214264155609253722269018221595479362865183081146403748171917019123742461555703047807879769700831160262811984401093705895322617646393368109399394397426148104622675108785962690742945491019515476701604984491932787637943423499355480283826208494263100426733420507530571998281814877101481498267063674852483076229445620238093758090825662639474881049580394745731292635506380195098528124838178571590536373958862151130056928080936888364299805676593636316342701304022523110685006874904229310036796363937077655752382569614270996532648615648594745241602417567621686298708351591791905792550471845438621051183221104988494863351808309387197637369569151561695715956359924370504833653916817169702465694284876383587335725355894695974655322085145082514999982687127169783049662203848254068004315944620889125145389685080253539424142981556124438389657085417205603276964826260224528075735513306347331294354624998404290090912010412719093908652807535339783117560492725527063583908062202025346336472990253602400768832890314559455825768214450092832582157373094408416558782332632612289329603139461723059269617589554660579248146162727717532222742642962710074797521853189596594622683708593561329545620611018693440692450120825798515003150025555340925071548865912244077923128618403772458014943540421374014506064966705684046682022367888091470822916886819902359395559851056602179191359840271634310270398428876291543813144162348014513378163360657742889730768353825188877185152638830175145403495028491583638047584259917536585851855791377085765238035414247348380240821671770135057350658358329286269757166890370691467019596684886141168719493077710655909978017836872866378390118735990900065580106885011479605782991026762093287004469391198645309913299191230315700643521304520602644378871790203290138948069194020993117234532543243702452081646206595420276879684788076813179231345381742297826871803800190454548172334064725589340223113036930837841172866801888548727506401850434852243361089918525755621209925279385707220154462244532855092710948307542261010435001573719539921702756927433976761181515725579536423961749060979135038830532851261735491352182465624216164000350921619793273915642745838543627177763201358804144404322951851638403855018290274130931364665413769066612069519053015107401085029189306568051369219327478935906855296907995927310487170254866126801398894190635880545783473966611093402351279320433121078528406358621574119088468903793069164916819269066966218563675653020495312182016927893350765744043671224185085371762122768668220981731499585008713565452760768290473148619695226866706429203286812395690904412687376433327658222139183556256220794687706436012890366145494218040694529865970222621974794889375558111065231181528356652449272509891929990840553051947210573208179399038165285120966778318169259210885096444564343676475136980066160639892462510192412115976073719724133548363032272390382690848362682394127900527862539021898868798769308975103365351926630310483422175038378085471381515052244713330182881002194387548191079124723011004716227641524146015002423332819284357700384656037757694400918799034879346693718298151828790167863073625818384300970583115903698717505340741749447263183535817284349685891861388026871853256115646948824149906375001280925501336614396737457621636916565343935877133821226563521413055300356223058777084217969025284713093837855950302427188614000206524809264908681801485712669601267489435059267279108245324768341503857160389098441797035316931922176755329866606553447971292147402731619037056416345541749486282453594797553359519914961587633305973521713044719408949822431630282200282594952783749553487355008919229143258972590853105961758868287215615503489207103718553894088536122179465983944278626434252177176201903993706027108186472446114361287428694598136444713479366082159127290940816573121065513947428361380602631987712196038744479695666008417541516797165624284006350886112667289507610538841175634937397703492544887121153823138522309909709835787964608800899616624203311621391038265862768805920131771816261144188979903993005178989264287857942851595065894315940694700414615319130135518216647800098724513232046421484415714486217399794607956070049326527431770488596607736134338028223466839727769951395278644043079810978103107062530242902375130982625659400799206916599273705941096269332033340813162703349657644711060969123564722129012062311147192169456599754197103317669458919768256889919418064813175802371904738216777712342727287403507077360919484118973326795396891532117978943020851559683554507879334742769061118387700122132403629405584366608805909597305161504792272396629619369575656031641721919495246605055793595999190241663227612861687577863852746128079566069171476886931622902766563775946141625361304820360341517760800791050649370191115961417021793476233901472296452081033759768856399211102927771347751209811746423989757079734267731314401935559906047627401637941703854397537282679753665710162388902683308904784129182609621862953636410028166452604041645994990291347954937579472026941337324088641769487898780317924233140272706448790531157301986858797252934276259921045333950304518346618121389336868313397847784864217171674192895139662021988389061625665639914032956869605354630596103059890308442712946046120663496568407232283130167854815599092993123901548374639558256943199886375624350458571450898173250968424304981322289047419597650229213546653661927440855122268599844539278002670803306046030645481315454930415690972424857130291740667453511932370074859401766054237261873687304514393671991100092876035066755133093230110190153043705921574392570175292769196956081106864880343106820727619199353726332309022285131730911973843856534373314868792546471560779005641167749156614290260435787843361651406168368598992604598724173502845255181513467772250190746665785003553424697963945239864061815606317714727452490775251507317491874888772212633131881516914761928118145633619362719182228423460393029237536975305235678402606138049094766301811835557101546875122081475720042724653970310845895411517252991689216378116811758376100803429291723916235275581805353967439721225953586590059177874840463722489515250242486407208373458459133834736470598231814607378112914446625347724523482588288811919188116705787832751902958133463548626605427206086453450583333490140768231312305514406892473188635266053766311437154613864723158210435750517602812559145174623287010864600379788132556901010613281279456873470542421989234347677936974332888514635436426109116918655240611296336236715231899768724374346673378586125065758050853231721033285673546720541356534543241888455756012641097267874473651680626105741585040353030551536236308021710849099108812678899294068176794399958247285787366135831211805915400415150590074656250481249053176053132231488665855442964014328840300639266934758767949142579755522188901948445046777538797669453744849526696165160634520634020746522321364809385069827415145010686139259058073177184215837238146985829586963393391351157861199046535062704489292689000734018731594241530474172814366530788401287648404554824351244224322596367001352236804036582131531484191430151119784843795939529488944876863284934570748048452895137901836175549547160926267576165695271916924668378442970612599174518877885851160148453473242071434327482793771896788256025566512633390433511111488910379253398024300928826196913349525921021064815089655821931131980978401822876380250141987920967723695749207296756594893329736539549623641284460626127386495841763467174329806211315352840852751493112551979804822480324356705804527994668000517818075419248357314692306091470420752732144588866291260369880306175305362271160050305482435700320809687022528490371078835981078283602151873423589693146667609562261814668121635745602143595424916872116383512635331157394124789229271438152040551143140697319292345907503745771814272587495235934350181077683471393029291623068128022688218654209017027450382368828374508232893296440004585256618858564909293312477913815475170709064602158844978821951364131176282473701666514753106600110592328972679846259448032003909762185545949478149589419613166125858807750997379632328595015287783046787273870929503626755154744480920408624648734440309635938949002868167658676931822273960726402391290550924300996725299941243281939269840529960556530797888778754075068873507719995495915701309840011720592518660170545493204857980901018127423525671947010454519654754019109012608940965762515186524685464445827853400121120209368820630516024817171844083335140686760638575906717327811155123334898238941498662219716528140648355130577842688870640898353933607972872258262512300058996401987256491090677850032043198623380715979276651953331858582448998096524319713293225637177567104376298605168210865276572168901389715483788791230214847796830769046089020077251068432151409835311641794951238634204142093146903874874736061451481802820275262818856754543626926033072786307061741254700824767965760232984534950697953193604499931638244538520682265490030452314041281024176272127981361356086179695311875759261978924276004317648736577348934497484066594437427314167032850959556968387411054575197239548115834802905679429487474688196858055848317307406371693995826029262478833572749422697345133225353422194643998600656126703082494343199585717144584933419032108468775212049491089190724664190504220923293385748671915106857537229578726003107872164274433954757633462666862111507186232357392295416277673477727063757696286362676800896687283310697209843868344414991478567327261852048945718354465179346077526472063815110337949408892745696799370271146728049585529008411204315274313777730393346061795268341417420188803883236076399163801849469868407359253644904396281677938559917010962174326010583969049794254952298714015750791246230728901808090327338551598891853152031656043667465103691424332913164886909325467125253041903490475145883312978375965801201944345963296899674341662304616659850670122733400013428002391682591908707632076031781314078565222013407914572253725539463156482893301433485074468209021927771728373509504766531476537218648711382402877498158839941987241999066789931366112745650255135005397689897365299816767810660603195280392083287141695486314532162041131727547114598255846773654641438749174308090711985601067792377780740447802137625321153779703803853124178570801359567378107360039548967292339455481137614149063911030118736108864711728320733397775127707720022165679641155010103555339105189086454731315422947621563263090893242405976394942379604356606669825282887751073314247017441738783114421471079194620980550514275643585268601647345514448243424082446136585296237249042329813984736759782537200686978632654169384137160854124357218649493202966488712763744092530302517885443563683108020243585323317086042609077979124780311968277196866167834603723902618862376134049156966814292131595182737078549917984365185054263597752388837250175382896202481026855656371550703170900684106006206433986859083669795573117475852221331187783409431364819486060370145707778888135361360453885734345775869330002948527612464599774366590215200683086543951208420061241565757066692665642626288125131119346002806035623435062690853352248441763496555601927838524047088416262019633546055503668413829910099298643903774677629766397639654189719668498038199801201408221966122845861046623051827029342154813209290881285188244554641075864292303302435551227918506255429656657654789746484158151036929268020461037488232204042944747437647410081600713414179938887113743609660414032491398131331658411741301989953473980960275673825871327407624628034591015938796101871753718540184439029116268584435413879936394504011090428772788016863951253051705271949082094973587756617528739255531586891209198421516622591254467160805430884989521079911354883773585090670013856396361827016449087174982811717317467562218315001177144269225859743156561325910977712377359215104766770037925081786565241183493492802803589295773616615996434619077684775056360981101203473187713949733348622801024672089219803506023804306045543756396744426737320986969266136455131074396778139007934513385076865841819574696525720180130250460408960759158360634223633108822560561793884135545937926658275283234756640168253376964973149215122426848474690421466888243262151810290217702706905457064334267949333414744619835943208113090850592919176418850970774084370857641844128897542067225003819431052016514080184032702606643348692172256695626353520147299907762246851230487568087876969512173248001893598805705706105555617812322102772418875410991504671212489052955893565490261526749114565493293632357987323666248787989952720871524655833263808936098133654091056037764970873713056206238779599919299401065515388023646789314831774438137371940140632726773553742555937978179871456210276065861165824593369424610728894667467102811725525705986962068568794545219512716463399329081047190842325102645883668716663775876788459035220930028407337851753127916530463008897962385356559932032842410225820140945244616809817040614751849346989530827568918577770724940605287688542684948404408222739683340305414647930797449419757612526880087991239912747816983655115881666067295099264538122056601346044374382836881601745352173155121231999875275003872924021687519184380066854058658806438738086238022052588642805379965079912598951320253489029929803164814596062255009058338477078026623399889350013966039585163347380656735819274248135730547883812892773101794101255623023179774500081881439443336362266990506091704187646254212896082544738303412655498062673529811003120540415134692951513292292389443096024785553148426341604934850507226687845403566479072518054796198670328573661469645761282921571029901438337477599097059094874766755096372048603942083772986301067117745374298533500270324011659188173055403186551628035483324705722020585688636888312798695123285547020308595316878552947066877881696222818984364409946328381088660917785651108907440870871766360728484632829127136708454179700961150965787714331342163146219847044063489362243534382088134467347099045396974948865591152216643056594384869334589381801723576391555049909615006912211463370878799309528872697701322402912281025798405125120531823839447790828850498303976868475728547931788238566310941412756358900252416200374019545960571854575093489384973587521072762513122209938906181571003055224445015683692815773696921844013519606868863040888316405395584967549783919734315662474066278656272241377443343151261430664769383370357627778516882926022831365533704289522876932481832308716575021297446922885927714553938245364247252452340603915697882481343705446144873909118496477575685662020493664931395579398875615421440876474041587476103986293953238333800654019237166846697411237203653918160138509251005252325130532669052771138042750413480735162549940604124912037516318689187023788379031557146325475495860604087036179147613092189545377422364091135986174534401751062368275148365334759843796112428386071089083102439712343460835803340119915425326813823595873117772853433311052436683860319268154289001813432444788921136887629987083056206306677810479914152118994359795742946717378658420784938603889189821790092516456307075771750156342152803188040461413273339607850091543585762942741877469257098225974393912104796080129025101259333435510665920022595676557842947673580513979007714130051874719185515539287412263760570237182880277387328009254649240684512670011591542692608612605104433406186340651167924754458191034371994750288847115132885321586848021461767957162358941648913003043922131120511502356317542350892245016305003853921975928110637270462745032839776146142018844873078410501589666046482139114885674485620652440987825094017511078550381402277332073949061621063973938420019738294716241961996793692319027597345808041194044856193679042542262062048817538215535590382153931529500343286008000080189731190795074602401623015582174613872230949508657817730721422794601365753368126446960972930955213932177205642520728115084320003469046072291723476481852315860552910795107595955407109420184717549508523729381614047198608292204233295179606242847290089599974714778820447829632055335144242508480020087167217071806196653331856508747162241000499653602161974411420298802542367596565037050063311132830094426341024343101709050408504867142242723732194081556312613099795685050700580128872942064986031286352507505810093454991287527938724266340756515906851427620660985789099277636660241411274275505901259562193350168059865947957044635386237250692753915002848407114833200578748372552443114254717337147883074251114628655430567563558817183963915476716089398174703050815032339566471466843611677642352547216056944553348161077916634009671337386484084123516817573690074585644033145639160650246986669569452876825115956966914554588919036669771052943006704086763533912405252890885850003990142064143042209157855970591279321183794204421725683482510456440542101938537565688286436055021421001585412280482140299537920351622572144597237354791720963576891528193028774256728495647015922217276162698027604276634848087820686442251127005025417318718240783817221735360653057870588194960144711938537891525271614120717651556887350905873961285714341758483950484465561819772911972327474961670911930364287847413613026254252006741138852641663694408203459326408383896350625756164470613643156290876852982202646591905315819585970369277704647210925471351004603992076306400973588082541741096820086000050322002110576471006296623412725020064628961150126620005068084367843646789688445829159631549383794400809130586002886226800700186586249335474517958030884302598367354950922387329734289485913379274421408244084196604967254536934081455145314526038318367312855507962991945138710322146601766224587065497136164024511707139878372953914511098046054282038322092124720940331452721461446102658018268135693608630908436060422204411450377433200979192178946422599055620453492027915575737997191392208880255393513930082661230111697684698627991627849487265222073582781046111651433293356905080294827312871264253188980647637269969983931887952060631854675682981109380369729207414714493901865929338121882826914722749145747503868525746299345821013593918560946218473610403256884386768433316240277892075080384737505990315681898938375925838645010933766089194011822796153737616621235052888404177808001335762333355125828226703430874476320530182871618550223247963894208498170144493277736208386699381275109919065973889294778479589478442832416055957029987582133923224656694896913370247622880670895247559454676790777295281225213150357326778968151882039640197590452171875469440682246206188590647660686756367763351079925312104926804734187372587540588118909890625451624149628421797031467447826379270809730212320628367592160970767767483938987176746696665431255097932171933739265133248007591425807308266604349078049556446932010712194781261921248930108037948229727555850486251311304303349783486791536231624192468126118715294105974462938692005081177923810612586273088201528449506935767153080770546764440183626148653043346787244816533165082933712372996053234022621327801308733084027910953226423755758138179724236722544591159491935383437773798452269008024032908902162058077901427608607215286213568375089649832717896098166078909546903520111057036035205542036863999194152764117230354695692392345280771616744008858741516199275837404744617854972436787208040688360868564359097455158094686461583104896670257309816776849072913191197533869193299219799200585498101215236348945223925987754038119504851884961767187818713997694359874493497444281179393333820599430366474609419384737119181547356716674614284515736728441546209908505901043805788234567024750051624956416936757862278859962728430435444885890881637487519542015637796475544205855085128075747033548789460149062507662846735597419310675625036300546637275241274035804512973782400001987741559834710223114858838368155093997144307315130933283780508914964020227051817971714614764509308109811622215099775932126516335204501660259707343137952301427131002421779709317247751901301503588117444788231431507532117641999793612030411257956675635244324724679060245144136395589207439498213207419333213489468181318815490313174949003545531415654016241952488707525631049206881859332461767760316578070178504160717999779188125947468540776206310798298895067918004333856241015118404732537903572857771389506729662102996074995884266729804766894121229793378382277381146594855117113858895979256982528845465295687714112770921789498750483179802662966771349518680669469571692556671113347000816669509507717846373461369251263818060079325136210523477291364974465139054382478651779783531346960419575786642349444648901420576601846829606994718625513770657629492496295390398476916308541744844096767046582126721646783945306126315334936013498141345184045528703635854659030223963320436543512624137877813935755985534372689053300486686103418284659057992259300156784991061881154359071433884535278220169763384481705618932243231257054847545648420905147660877233836530314604254050653802955933866057632182024307846905354551537458228056277336884771714518372737755870264549047356673290814980968992062006131934533598067323260792449020964745401530994704939568142319677170042106715206710027837638091293851278665671199253064718346880642476221952644839740111405837487750176489290970537096222401744812999816704908221468978328642798264132403060367114957126014231920246789685366525651573454299661974629390455437687305445780484489067390221222741693296043329856988627069131435002503156991090517116786990385096521324908043678763415845382958729314666722397822461872314186782396505266252408597292404271185085762528952960411808404897939997757953185609998382625749056314488024950573373332879061371006805794998999528966025019540881041700398525141464109622594896517474220643724201783210026863770133076356122395170849564940061662443485530309058197131691383520361058722576416393513773816652851523013516377383246001129043946465037674641256706999905823282845839447821040496735133881590423146586880713445810017457903706626792771370168653746899369159926040595223595458214887458095070763980792283861056107804498084733438410943165650423482237860585220525780613986244896185126627675455305390428310560001012125920073252802887489976818902925553369314945340453276061908342846085502838683719263278694998527527174543299570307464451197009927006298310902239363386979426600087107245292372661212194523380119688498559074962820489754699544540505527342297293929798428657733155379693519507219601480931984357152249459272228818489490428004990040394411930119998652213217798738490915249351067732284772142106559270236343183060374165749323693035629497095072177188122485858632779030756110578087844504595600398652488464328446299974553060496147771980418977351210731678363077441430926090559917661589238167853032690607448802737588068206359199490266758816720749293043342084994481138328360858033266456190274789666982988937572765230113708388121568506553372486230184176716742685754488184738274217514269542983995174511440632154082328310524740164868116251368239919513296912457210902586410968963821916968103524065721016983342846841444436918196180810426892302044754933187291447466468608814198490976272298810153935349829066666181517890001563121152314782085661639745559758579861938769656313219089201611242917569265840923306904552595121799051165654048315410286286115172920695641649479400469908447520409284422392430484172369587694276902312767339700662549470590278924753528971382528508693325158126283305439569229321470217289061738558901423282529992653108044229258346265104686515185771585547234929871573966059984018549483755933716310887407288627288407193043629875919509834767339649234796540214200277178006136151675016522143535786742510813797174244684208590648747025783213937566058748215199770268393723795034493062069089260654175277736139954566106150340878056633283877178001715293669807790526426160201898948356253269197633746841677431053203015223891359941642477064451053417464678253580156201148345003992144762904147284933907645117175114366717339637891776332672965267267800291079334417916332967280443016873868381725807880743315536410419943161869396058751922600871139622171127563662044800713047316845964627132544836866802381085268860953085145893203113405024595063568998095792065981355576403957242182171124162125800860213912517886371902443289235563777670960808678143678523940466589660184834261589390965474659265298940658935081139526180424162529945213325995331978409796785568935348418376512320636043834205503475253349814358736143648835521033738040997613735999873153564297761740481732380881290315693775293853873192721941621409571130893232372969671722099257624798877819713524207341431604051441356573616558705333872343473874073287706130528204816409445422668985566186083693438617106746028154760825336645959463074285838145043148576652566417483987641416562842290553387839303798857246162599088329455952609928442458005006396591570942623041443337366285436468602920522150963794773415056317551451976848689048521015830817693490360491488233606340231211752002823438963346967692535294090806612360866254297359387036244370560564183479579011863823526403890670394716702796789736577858244976950150085387364852839014858936544439266089571939223392597135427453649335522075820218272368587837410498096086103126816137914339588275204119580509627718306717257263635865042524161681368517522409929178681948557977262896968938000285747232281234811085212530050304286729779262266829508573219517886436008440174413488015560654488134090643987040852310774852279105610624248855455292935116634575471983593736414976652496354444467143621772862629328069169940817951350862354835172579466276187194984198941386417614348949356496999193280562107768151823991941176414517353583468305048494820248661287453382505264944591022678999253249175550617375863898105527417688287444704175707987162675031318125403276747957833918190278277469744552137977405672656768231964571901757566748089104750532818714375988046062987896295091945705315603974658127775794657507858761890690741154330606648523244137401204492031976486507706002169089436743754604108253320065815383151766251957410488955990554323398864189783647096511516129779899989654084614360581616000158344031323457686659409429773283031518905071391879353695398121801391045087174894425216261174557232553882622543632179953515624274707716461670816013808811953639815579665192715295088164919774133718637138032990087713238603987416037666206416284064885758810148720355234018820065090452430728074646885041216805436766022881935392547921356077167953919617343447951938814101711790883901563109708437035118923936317107890447374604580060885724085155175947456168724644480018850863376089180317408209822298409681413440850832201641094696015222377203353739303507761997764983983322446609734985218892027841985416576295291921576951798018748218842333220419621901253573468019578780437793594675035185956787324919666267857756362212728203972426641244156043864679863891898995536895290378519784237440940966769067588218977123057364692168928155287887613332307778395798385304148965812822116930594380008801338252909932457159750177644909327568536680413449123289441449338162921462324633683545469143987779644743389465064742543365677088646121012580377675015663071285188086672989369271375327193556711734327511526907596930812012308769525476331970955525158845015380961597932916434416164164804392332626338421395650672664937921137605109431293838222746606886817488149044585951939175878538479965262588798077553773967546905219053726250648716240441475201222455879786791140971939140222741237952086983079773096350417140695086065994917214386765841819703124499711687548155422826169646393155084854756549108283384741880686681336722589350632928786834626813843704110532274691699906137254288014192080906906743645431081950568646057850061084705082683284393198998970499320128061850307438508389675920788016641163959010085119254474367106941369259910599625562389744588868265004920424026593715671478770656906693754193557500830155695235560574755637096565175114534180931692631560445584644089863117225174693034046954138965888761284491528163255384356334424857076831966071152081118576787351136658407070700371180391538305590778179019650425262685464625500877684464027118591654493047897909962411593198757728958190685323623487830611875262123197202306243763006426519969587374597670066310075338937948931047724207121679151908573799553140657726501247222558989109496816197781501945384104108680567522685722170567435247039132375747848700584487666127166069452141274273747151293987267271660247632347362564114937464722241726562333556081919751001714568540733934269358863493485481376487102491320212672147375924779240182515665236067842110041469930324060292155920630407058250933394093530257132769179543388834014165490425655052668285113452821608702970500317180192898810884614457314975103906662603555313980244473144535550474063684423676178461096521146517549981683145885744183613930745380919853372555143970737618961586223518228496459155159137488175321411667427592644302409018379450859401149922950049488189806527452561637236643758160731438917569078546959344429444176482087274426383241564218831642972691045607613743482675606693011360378735664425672689627076639833875048816122536285079499097796216611540397754708090335916088503170582805115051859533414856208850905218617103900402990073655113440149195477351098507930918280289122665178184988206119855396831358507659756386162803926951235188121263529777595235766777195834097410811984746791387779363678221185329107946459226264815070247196037245467347528187438031490877786964164574000188239117715002117350052237142001266829334451686247835563725533511457249673785175204915215011800520164018583664870653214692109993956747316081172417836986070581484669533969104685275783501161212611939168111469233396625929893485767387547445302082242659800259885155635081381394761457730074267627166966035741701000724743710808911457165025330709182699844699575696104157354822199942041389167768849753853899616750794060105953054278318533570020007037806590530750464881345852304794247609813558511363308050843672147308966747542493939417881313497790753252636685583193977994024148649559019890853959624618935685382783011509290181418876222390734311522209335179259660415833789744780184001033606964804362000924593771654044298203473058613106431359784357894119011385634985965611145093254834215602399330993361067963072339149511340476767911569235006679538168805759262018791791443142139534591386581615973589067265226119012012239298034059428872245905409962863792873304323534827231232108444623266868104415533529758496663037942807716677734326227427885671457887679881141933414045385138017764325070595715880271958202315975565484410960424459973618040125218128286218966982074881710277471712537721944888073503713890272607607491256056405650947607303059867409866174480337635109098170758540416728910459417967740590061098433469107543658509838862150457878678240033222117220108377568891196898968107626046778208285164728365481755558481984349367684393428313520212618325466182742066766503431599587873065445226040931398964565840411550332882740264608325470313882501745805192209776725078769465760256977497652216870399922978304440450631088319511056555757515022478891342246120671729754396555716304750320859932377238401205508751679480057295815468612041132370613243406580130285686863193572555748706999086660473687677208155490121063151077592785257538498782227618428296415091732602060219452898716697779667050268659059424361204394358478559949704732453259715873623278491408599979039004114435170879803556893656099511669860250484621122818947501079258568142289708835129002494997708391964689987601477652753687359969081004477075563177361574006444840325212011919038343442511507721253930467198230535364401303081668951097947657230843151821475374204197915947991093636951539912025173040693858074072911514386584300975670456608622792892472526438245015982392623367471031824581414934589338974693066931683323934265427290476974023759232972897272481688995188721356776573759127102308218449116824634265414649750371093335580059577220286113168970198450387749877396684710603119021225165807108654027166273624968545816837421619977267870791308459129813550337354376383721019984222867525023758660480105079243528555722753768514901656923028880452292973753901244756121699061835192210117370398590312559241654266511185289361582493205561109896729629258369218450215319472817333907472158422262983047761418315148359652725344009395999900369413006134972688556280238511156068924735862260938330263630773836915409030783649384330623414824801463765135937110520030057872149326781817639638695072276656985446282989593325836595315978909190039755952128703867344838897707224306649835208006606114620710010837098040561143089519381000829720439915294911052570484362990801538630780352815957302218401847567161590228631543400827695345066238457974466671480153747075814266591777894875535572661847520818673924892477163501752241316398264542008481449146435231333879847835294731346803804313801200431158836681904226073630549256753234484439311691758416564618462776382686639995143012901369510765034454739256089481317240498738589691292153659230142007239220914505647698829373880250636446296894470608000088093931596248116890727736444213540387778273032601020421208606447434295943999607923483981231250026208372629034159873487275218673625042947124955040752067254660885299402515010052823671214573856937427822374723993811833631242432641973106031666925820670656783757449346569179309854780876051711084547589789783114896907372493162958221320789229209304948886523312172108550049791625586917686551761214325396383256484976148306495650892358928725578989060708244982386197579843046078519467855214933157213197932682111536742607701621462487827342250064932842102262236690210554891271427585145193784680971311233851497259542115073785582322893448677560184545209894847098200716020006128100357193286039258670738056156741396371000870406479983681601321222304452675663179378339867258827703981493832426193044916968626495226833864516489478110958035072044769239588489839315729350432156338475820164620160320881737960273943503457950483382739118990838878977644014958580312939078139327040729830330891784339631260079588868799417143762459492862377071186427718818456670825338770579910925375046974221423718549846585598171546982395040062487570430354204658560457626839186700806586337436175167710577249497386269556262741958760150095104458740177011151183871070550531800473725089676000393464246608791891425612960226810796120830617398953237265745563690361990546102315253754389555963616743182007139661051799912957594692192091805730508393231509856975088657553434942679422281509670727255410135407665315855680226298965250170298624288247574228284836802239949318124549099336714815500557101799901780844128701879035617893601860661088881095528564608305705098146409131655246790569433651628602409031864277218155727317555491972004543335207097091125631027055068107262040543899729648333342079923153311657718192156088389783108326892815372045496246446657174760833341857138357586468879649293285456078984883397620118843055673855010418441156269600130262799428456569243122454274691044729425216862312003427962291161280917979099007611331323649362479370857402921892845266933450520348608445074190261363151936899908565853383176527499580574487095146928287968876300510761912737991784586854544739093775200968360922063496409091985168354635044226693332557979850387214884474029809741269756851647171718288715749469541323818657664756877080905383153368939107266806701122702446901772081244802628194070004235010535545349411972446658011354379610825906790205760182574225092742445409438899647068664108655893431672321319387282046318787367278928689834100944705676771435135687167444333677746628407236028115165143820381263518177788441312392677751445607688880016215695393177173829866663088682106325200935210859209532517236246783955810030425185305847127409369679800167544654706758061827179961789433080652615944334042407393378557066255226377489975129289189830373698937830161067503447128870701001900774533161789425844420886035046475401457475705558121132240310158908846301809030610143726141818235232090429392777337283385377676322636491066799715025796107070424770334452931423852836869299119397385794074136755599530141193464017878898905447341019897423669967514126563211578850968870994776573454570789627899662533819856886081940062869670550363077705839674823966766867504499032129760009437068788832836267776273149735523044400635941348916857365717533254195910935260628851196907355232643444910977158418679843027247456567150476839016511797935685351385768788008546599418127600293611433117771551419975301636933476935374928379914631386400797396881455582372950921629545969807917711475086702459064761673874541032686094823969346287591546476233637934412405188263095186998379970047378238030823923854339603742477811160673371863405177785709751511906455072821603225423526076954123939812344718218752165622477370805062729255312012855882095430380694304995108478211040090064754561527791074200942720616621631864520241807869930205012459644780236518237438377893640266105295778143704907566064671222315911543347561362367695856029108284994873424060072498583136251946370532828096553880925465323440872363764750616286241673907867572915343330221774272285061556646746961363375792990572581522529059537029341247078385270819729024032613128796264791448078997967465912148609140870926893034010215895905476399488230751704013865543477635520537584972286580242179006476995154409617129540105365375329417152769994254429615775290337136313252108180692258862170744701929350030007823141806160631611538423839967841436449073361880116394349099063978785841816852477570929617107376811200739559848078782719024443978290208778267810532821209258586636074895889330376251114180614632684086781378259977647277447406061842333419502327281378586107722425222509077684070013276078424224528043614301289015536321553588878454958342901094255058977325106629562742544743962825790558699669163334488456997945485217959697418644941546008626155776567753077285094398377019737137881561489374606995629415618120649157616765335665554319064170888901804932865639750656703282962686572387462704338956769668621004394183746248673533236630614075697908295710317314428816436310669836338085602077023729501864569293720810611048687583854521655456232869642974052324082708569055852813217502332088585254024995695426712035289171788869690549393598272152659321307588266403209109563682292813918129298628007854107713921009444026696159381421644797827639301348005464286992155605507493958468352607364414003989701088153215044696876819904145467921432445969879872767792749605939797597018557790684701888646947888317824424546544943796090127275173343376299184726148917632610052397665469612368280766644892033037540956620630460905615410234925376682514307725054205825654016615720043761023020009379221306421993748780569267569693370362922471059976612909704408798814359632094455038150069599197730576124784246241274408818525706511564768864069986140514112759824850403609966136818145744638324616777795633720943800045206653484220250556135085888763482971143417667730147913083195097644508496176078904346266926819951085169913299637886358254080308422496114243737242236249465819224417338449211774664866121086453074089138398183792864118750820109275427250000254338612106719560554278706224014355691839502257529560431448639494698233380588854362723564824106622173402946995402091194807583972147504495307716114010060489646812085021600580164102635396456841414820681967377007302929743820769180453148258761865631234402822409144546769281844188887810291859610033337838548950280547396518218009932351653988591549617264930426035327604095080545574430816337129398758023689569686809856461481809530823064346326323814588526778976976923740547117115824506792194454263235271949320972029418116373497485511243151916450849855988728571867872129470582538287436722796186015376251974971691847401137207710059657111829596378418449462908991782044362959973215212281847779416565510939997737532159716451849506646603521373952517776856235214890788781918427348237879724425366717337547202369865919725945026201521396250739337042328738111899152712052895435405974777007693864433295976661307290962427919956987164940937632691082818567505834022513753147549044600610813728484717814098845319701831712246707792123376464271595942589608038770717304520515093361959325759111258025247971406466916213884422163695832217958071413868629774204576809909190841583611711883208159246793566968615304284360597597901283680419444947598727626225699982494284485586429365782702894419523921649505582159134180111191666560171683730553262394156896773156722001639763824542348160688596940797332908911254097810922531098218110892067322058844646226037476624398223223421216231961375491910754994947851953154062071242362095775248035558297126269181998780658979028637762516985215093236427630487285734970741007757678487619717899861957767048235033194744656334897799387510636836385961560104225115741569211476000575233159297198022980116188255728381312503099023792043705591147363699801156923237281553900906875772671421357292997927728260484874651132429701467891484489865758860878098849126713458199586859685619531284611056555352972859068062965561730887022890495091460178999700319727254697858323100542671573310022456033336950658192266035722935336425464810493000994959921127637473941798932581386177799893045517150473176960488065565451101665955014102728292969919943980278720425608786719267565267621775608765492106418735560678167857350642142491201877624617654607973737470539097179894414337873602400563836230143299949907051451669952832861166892306477949077321152052767630843447882838617864700017921184623824144486432412609765184049051469493645905260465343390566510430661469873415749728175930554559912467147168001532580263155813019302162979067421429692420165066703030362098733528448397609601624908427334051185013250213249749045674704725373236579044729957439973764343034690194385382695451864359326718399727861013142077496659672098812801644976159024599693000140262610558526021926389828636719959785350024600246501598850108212832261814400802835787404562784675353729434869051800279012933118296607951119712723342807823426417662589151295667643264852911854459304719810766810778107119574772048047600519616183136402861170962151049646530127545375881843305108387224828381192936128044389468679688870572895427758336493264524428425269405122497974037013490773342587721036684207175088419481297572271556893643836428237586236081686582916238864811738374895694567059430559844180272641160002077787994700145679462439677515309415865841772407769771396192982808289181140593506865303586339173599338979234002507183971115389565443689540567380275889509625037830198931538317168146680590166579192043633215588084662594498119758331204090295288917863216673184267504548878653829529837379536696629177833580994165476689441601718245791988636830960276228360932701590390256098693675943156503907648777757287390890762877843190717902141961837943550932724622603544718356676741576671546312313298791343189287886274836432088702474463155777644313401276288959537386578840309825369290726139558050720785564609455017739149410878427402501677503643610795822762544267023067031162301245059700127870808432264630636275546579535615732000081539566449309403627145007386965879097453667657034842334359949593055898645625265515188317566116515405882314688732310554296130594924920942553090723294736395106490127305213436987914021401685008629021762837229592171741961730574563053232704295369039288595162167117525845922701249113471655828469913585173871273378541232328940779242453716051143541270941324023297789556847011673309191806083571249856889230808234986972455536289915173073531162703157146002806250673533103646351943082571497425602332205380511705292310499732534593945945070687276282890965131832192867658521836089391764607657560762184463039041783329488531522568128746688920168340269961167774174657231162243912614338290527556033589136560408917527411275218736281535884556368448054921947570198068707794111481153656093296844837676891360935359664947762160777301364294441671234786386002236671465059571865588463481272646052499338200224981006270206543888544150394698357853528941884274322766683562826492190698701664397902024657010169226719511144850921873163800574071325210179982806726789302180766703687387814924491633168512695190246812063825038555994747196982756743360564464687175874239836290629693318426720550804960130386441924758890816366377265230897152160441067710555254328956684720818046414761442548793841661561670207815195162977396927357186963939050499625246619141815028980314804849738297628103932330894937547278250870980327238797883288350108839510239127078648442686913560991356549056533878371317403903809651466312474648666954940245473454880832748170785402458929329289068206720867952713177500685966428443731899944460822131482695533846338551078039790476407302180943722206182360049531587336157380375316521295811547344475679167302948438556505458807984414206933930642570213243153910216730869591950829303867001200503867995182347425279385510950971449650950433989506801350133024920146489251297005102648926973141896603198973819928093499841649750570959347489872465597304317649998272379517376897692153165475766323144199086774569813930968468384769562145276741899792786402698338156612506113846323893927809367087305994874138066231126051568518149348992320719456294678677475466482181779433350255464484560938599374545566942995057823920573495675521052853823286033873080804295470534507411525752986951022353715027456952223746173431230775037721056015342329769022998838265436816846371267069222925063934181691827526302860894753914605494609131337402902321924982295872447361181431276442847576692887367647730788256732219309608646213120226692656323946128109166695836446023049835450388589875722709632693413900354589970613640042196129238352107804332206309144394557461769335526557397621444713770999521142925595974816671657629639340269611283303463936967572241381379849632340016428621015925098027199187291353920283346469567061439736415764403686546908984891156713487847607157806354809274266961094182926356547848613385561202540536037500492406679949931905159357004252017932456060235701302781493463254315602969347782311138153683920830812882688743168520229418312823314524299932048969810242195215618213688667670996413548169522958158251739857799999658166306179751610526104880016526348074010522339778243731227664476139237284153371649467136274663609344444137243677847778707100059663461706006074022696220920532287678772305893084408222720665307383652640201737527799854426999445458630998926213091507957408221492233461920093529895740487689925552503413908898781439509057552708843707797038737567714093874791871992353246610642828717651049939227215774339805862881657462815137159811015540977590896836972205434335578911110821355977912535663085428165356051329178947286379837229888556715275091708312014888663249921122897053354518113113990099497701378699281747657526415650797237667217738267858791836548371385301863242770186980048237374041157049698879272412593823895329529634505718150772598197780384477413660084103465840994990543428805539614043917923710401185668626078200267166071414652176041111548494186719729821754424670092287247088380090789382460872903218763915547891399399151460322783736404709002058743281680266576498312584678888094487038241614781458089948233024248623054266502603158881806259060841974253891866341639872026339547568569339842476776727947016480804255324275782567313194514182953389125301389508436476138797568404842436118946984986579826840872299726054482132812954590213166658911685603131842707438219774767193824066282996025238906450200782291414885311393921333686570674006800310919446179707879724437488846990598816761136849024704140178327040614174186869027826323534827904901376284529264032068921602166762316486062936396625342332094466363340998113875082406162348119448394699460464313763655752146552097782908205314839188874486598182508943802784266459853550625974741004928580261059503390067129589894051936254863745963216778257416509418336234710456474355303561820070285212016774472554827991608329884457301169698071711096966918238605526196734593538121583545815928069860617983867362058691387798258736599788276936473074237481281392511667144627366433202670137642426755317013049175018196285392905344527725001290885624793873744388243328481220720576110361697893544762654201604403813078852768455632898714639641020270918808721145533365477582630787648178296849853495359568505281623805651344736752188013800959142069623630072063110369926677360702606027429364221930388554340937863798747983904623573206637796105371607991030095378218618812079992587290718877684820008552311006858181347812057073919922547626979100156916805448628367894339188437759317946593966255364552385711838254881293445391486704849137155308980353057528966187165520013858346027987373374233466152370691552928354608887138902110089323229839299469919996364121996718110245816824134826329172760521251304519540757956708123563324376557388380968476221894565720969743829874764288822750200755679786201292412082926538527444231512978191659971181153980686247886684704403562233802338684517865151413009429360925774970563952980385246228369402265251192201660387789060028281456993444016485596312575720261447917241617102780531469775314597685373538056501576563883479223345763880909842835767559883333024678140341543639414577249058755222558982338138319689012951139138352173758028914037433062841761707279950632236138804986372748377643777818005015324082325522993250473527274300034216204120375595118247576174874346096314251365919810103819684921674066653500458921972347103795925002367179875634589972091359841071694109062707242863368306447470658396583139207099593033739434412756274278065884635736403932963677270068234092236617492672323274345131349695704212272390973890588566554051122002849546358418075991067628052738516141059607225902379265940767028667891176356645260254784035841103512545123248739892922882824038549885393261667835450468779188627128518391431782566963153367299774931864354843500587196724811140934226134446409119932142520229349506557350964994801281868743421261711968233762989504340364457172012413824440889266532751246898428168514326923649921051254205889601933205760407984189834488210317231045047490294254747958134693588425591903020082641093115853052139457524802074288300296933280522623465831985330581415498002068579272731963504156183930780429182986218807120124952696352191919594818706809283243677145941573044490487416257887713450080503663772299686494440522988594551497684357136492633513351015659130960764224023468411978117527141513252519444404734646810538604196681424780106175977357551753689600875895693352321501809451685923504968698787313901717431113439464528419843024940015076303744829425441307414800964031327508171579543786394437657883443169032891061610105121199289788996542225220024905540866846391647163641725517364187008451768010664074288455361779421336724108108722818027188554050448847477444987728596275295201776449323029115078140745991705809077037043892462946684732193285851820812877697110050782642897585303740500928260584585336528615515595050782565147426806793392100299444264566067484680623900012166178346209060688247973850058644821445453471226172926065463612834307397807434098519638922963169337681428804454278750929925049532378155887169362006127779069315263032645115236230686529436919648924792071799339425616998497801989449805451726653275694444817230067880707689476931952562092826703431702432415983228185056775855071493387531583320593048359379065146558241685934392653374682902020252373272211644545263400526945062613071126155271747271628965181293639250931808149802193684672722390502517923166185174478995004109832912664472779927421392427856794132896211846394610751913399655841616042772464183894163530498182587448633468595289485228318523245034711133042182831666181190418048511188381810200577274245705721645350047120606799741257588762934546157423929119947632656678725965041563343511445249270647077394139844978506941574014171535899802492089762587150142991158641834472112255237975187306091007276574954037779040224745990417623264346246485771373830563206196082459704591789357104259077895066667444418470801183066598667173505998273269439334190927383223020174856307523454064467636669436618579329489389360140669464951620127703335516579330665108169206191823182006116006393363402941712178106767277515877867657249283251540546265805284693889019236892523412533123114830563557051880476918179648698085006157368887305834620408205661634500110860538477524045349617196803386987296040685476645161242750705941200991926036396994108823477780209532794823571620620348741677744401829948847478418657799977563502652222994236161474109997012572518198313614670445793851683327806766464130456126326727246294891670497856757757641243219166967852332033441250292723396981558573434219551073566900462693540998635625374042299345760728043612734375335628068074157093948153337202378897175064964003026318947163740859765045509007849685692039902645659308177826696727105716499738773400294631781951693501937333573149030627889072694033447544288149174742240709337783769419934640947180942644825924403634825787506070115305841706750076079892482450637823485928447578581567299719024738936036237327037732638276452971689554875793773333019276089950313685581929662562065147473207942944783729147832114119630571659549366099900177659318521912605939404019845900598980026829729824698207565012197630609331281105611503745314179281829242809257795999713439141906954538640575650656661399920724883475797410946016918798833800649902065787304376664342435934687081074282581126694656298752786835002945627066630959782299679649542566447331843315749185062653336796793369113157984624953986922177997310137229382712961543173772393678327648875048737606110091993689953696204823994030071373254212061200872285122857760847066271018901864707096245736083140917796265268433916994276321630759404490332279587524279042053210225557237470008916184830998805032571220019513675790239749898965407280387564476267010263370710123615666960816850399737975984412973946474339274449241959065512029993104061594527682492827752945679705703103641585132161746888095867319432948876517830529440252747817344510048618001527137996426249632887759676376047873090446763822101814564312740863320191229115693911883645453425191563314168696695945014307026948126037789331530685412016399859520811623217253507290324738581299926572156277765414454170288023740557511259857562019691362907694723790490293519608821606308969219297201443918688527448485967686484358423026690312929739954156703498991596473952145142786707605005702814209589703771346485012339521223867471907635182910156359899995307631385514104368113990380474865653265418152917107761784569951183839465189462667755778718104065968437226654626391728235027268525545120459880119697763772051817331733985458877041340335802529696391614885753618216753904585611868069615062335483316213590207219618319037672548290444340662961731507287527008427096098694716876805835327447119016351233713401581067439846633513835504386211250364625537078654019306363136703641047539709068663434252890035355896024029987326094916847856140825499046402419640458445094215166529303390485256486907325059251482095099740801599013319345814585215064681268758104871000348758493963240485239960744478748029719641295822845474467102270086418672596216361085295400013554413016292044384713536293225156672671495732890412280001659330645040807913330604886275941400241498663669962492065882171885290384765009392697223339044538320847033718003877445531388236941919878343037785990650823018681549632197625099597692962044327366637233741582681569045697652204666159981206064469153667758579567845287295853005854232863202366759107920290695239047377503577867634121812584725870013713584952030329415615822975767847198567986789951862077393598458952467515634495521864607098984197797075741453275973200463224666004752193151513926859458473645262772596536641264308388741370307215163886097664852349818802472941245895672581067628581370746827540493478040197562442841955097892025827884116241069022797607737211589057345824543601850909487714744126901817324841242191498209506719573379061698385301306655501456941336457804476791132123618756099974698421280247846536533386729032148188931532085442424493164278917389880288286354620407360606763329334781373917894763409281470690873972469113968489298599947067744525818603771692288589689273007095096025091452472233337837403687376006462839653308265882533325858068273586083572540304143929444529309799897564563097637047761150331215665171388877882165515971189021825345351951342777330187621964061443264377403310234828691277167029219203400354330598227542951932988062025669329949834971501693145401642824003018128238889334061849637060133373993891805088405582094447538291035344064996532228160417720746467118246669733871107502637702035704741818002869380260882750629035540000001488989498022555158360452346821897845474370006278704333788603558650895316058652263431358627669881475105202616131621301642739303975660081712701543941523973361312976081370143528089583149684151459805560565884806102187735159292010088448230110353321913403309260734575530942257878068705790109048644666302254308536158231982042662992909619801287964487132169520447903757350014482389173668638852687337454922455443735351193129389064424999070330861899910272159374659585208125600041115856484773709256882118746785195332348961390055672453891225024130326388142949399587492762241723528045454521219079661944976911475495446633201164778714199345796462909883067301907885883392382726667816880108564931388152106525768020072869091023591131461987770673179598269480052737696374480453895492411042240319970247440397685547214170483239076349926334530243094331949941432354424912010097653221510272998123921567476681086002845202885593912825309088388790884522180521925658740921211475851003131966798835709186831529082628103409481593967714532535834831552553105520109205428442050764784710185506932517360933835016314138731388610485314335469877804898477024658519186644519219908483865811468240764224862153763605487164009076815104874230525786533436220993569942381658518058956396604905965975951301688338816887254619712766069740175753038630414399314813357435321892195589451739180745025748781390263196898763338031211705658370864466874112803814346578845875806217904852290968882275497772975989583909394395754625426317293643697434442848054294935798057865656715660439878294739865114836375952186806685574250421208020529841116161833335074658006283635946254306663587311730381524950978673843752739708904576036577445276624306846401487462880751386551064821834554585803236776242989922162744677088187769565636895170273277220248040589565088485676436395948345346125783395675380060881331033370922508060770678556636538510253684409476325784300239565492414707856535976454109358888192813973010166990588079309718669235694907048320669449499032399970381994585541905932805114943585425380928202220981232790275437553391642900611969928255744174570698985386056292051880537012343921232170360892804277269669516091247449627093269344890824280281988961403706183315125817157328161275892864501883593564371961184248442133774429275399751600398327882423702703325888470882245126985050649956327431473474325098510528827339318435603956767733910761214004631281825182816523365315200842466268445898857973709385154243532839384640790879130648365270564968226008353744996460573286013987828408274134677867350071081370637492514368400523950177749585277415451412313271802805934905381361047346002131115895901976979337256232977314609829308317698338879833668704668777527697641023530169269868333748233646595401591168900548085347023147463356292586506311157894453972710978545164128080921341614444381906560406503145175668897678676183343278943604557632317094520327431372454766836697221587112052325480857631789541821479903563567046100527114498487384616832956018632675737404669564425861948622001886456525321640502340860895571870016994048721329228870399149929498015389831982854655094876182398335566632660549319953157237659556610451837396938448891025110378113793286826585891101758678278466340557107150805713563103731768121039858471710985881031261749480314624043625121775196141625098863488977104264531208715617042764859994896569761273095614819567000096645531579299008331378583046495429057049256299264741489664092439635364762124082531251284394039683866923581992085423757329713380059011292389067486738987110013637021477805695769770843966571447920878785439695910563930445434205089485011680762297737236903615351251921943924070434509559424703649243788827245909688028077392870460028549759666964359378766639518550516241590205385062372717971558552961076842615766052614821351195420491900583471753280679606517325246219859618065270629324143639234750862076537726096946507344592267989349100749274732409808917687137848949779495480016200369841194251719463192440669344650072893642043330004570792565001143693000492261133479209670447379347421193627127441344184569859348220095206587358567231872541791448878049834817986390793731781337308218333898481721346181877997982668632588375804407312709345487692902524205071995073381591273274147520472325500174780948694191765238770731028020419638413744562305000253159664035591699051405045818756815815030795572140256094746159214558694266070747777939823118325146097436432302450704566111374279697903612401501460796156893926370528880098469178209740162744616351017383930122483525230163009136742500438115273521370116607748886297990091256329593460504740386058225153212065450706654831811702229139173856186714090645650807312722726066680774256327731460336920943599458927545943053037975818718164984195899279923108269509515872949464658998296113465710894285422957388537786183257066148753557846983571514198916970695972351078942737719303396095158696919968051600329385573723617425973002761838209310919768980588339260204469436879907756481906489484137284603975705326705754431126266601963689657992037745743228374157017480696113398247876297272559628297347806535644147637750574880193428189485397131887465179605088943868605974964391856446867054390573042608423187377458435653608931335210827212742207599852002382025783353938233639891164817457104176361678560483529563316370134360674715511802226015890976344663253218600265678220572689972325466966386060239797628789136216500623329361508229654926433817304656917146025815339808177380528209393564076961143340696573921217913634768139880232995906192186794570414826370510746901474686905906141861527252645768105955373286306285312626770638544360937375405563358125185436700301563950654651071920746188737699533289451617946579543230465872910786892640009002846623997099845426237857759541796748498199912079245842670907550393167877736353981363211289706174893588713970402342376314304084057051011408959812158363280493548306182060670257477525511493235769358636183005039888955901946659197587743096881106039899827674081042051777795120419551566236044962691403236526198419300777226615961062469710749526722453546419886659529130799439167143843558834691916810897172199799986823097365239900712443521195103853416749050753253210717103382457962555507146856574185054583844282665843078787543780377727715373503620873068023681452929459873883199953294008089113147682567561040903496721824612824390410896996660942372443473218106440603695389823704100656756006878998263197722305102194826189159512422169650371268313911474209905633429720706914825405460943096047795393054312749095360231052612539207365067151990583407244906841183033780037893088083454335579203730460996113941843757075636400084631000733001854845762380527857151217864755501555152424097467493111297227772580206702345171753996435733503332454819615574876262183975478869213850925173016510679187922813999566823591735894899350471892140994820246771166838496735758321969777050104129084854107044440428095524373469885104125487631480735526182578503608798949632237952049734507902748717115018220967242690950512045006463458971141172421415321844424443094086210790965931987832264620377176686731612214600193615548952311978052851323086832641302240052832323343040577132706208647159880846487699131037415847153245754194787372927560430471525409734729604683120771254355364394403425400661244231499246816731270280705874399694382959822359012120889536496745241875628181395543588431526976812566976446285235032601455348159287087433686714106170930391802793913747533216318072460278471127593042339732134867733475232018917094098094063522212617629956810980308280403839159351577035481293122374615633481213837416113875974552410461521755631400044382165828126611252493165082540289700811952430768013231206063268549621658243928029339879333073034864625556053042191834442713446507137951627240030405613720694600952969828513456034080141557680207957303057920847233714695581227888088975510606155577265626407322180391469576707448527574110397424455912023777672381700824349678252784936439927265336236422624063992141981791258325764191216375990668331267240431323232804232520539099233095145833098705647982391059323729006156502581174992634669160252856453506561498296073146443585866919802964069648806590499157559983230459673781868702906596353467395207040119465343760894322477806526068147322374693660753976313721898883048159613470809097652734154398077826002074360257854980117993600804178574439058675484045972068374798181458916075876885219155428530252559152623763809797396202030061375560201855934348287907708556067259880061015520651938924738647041404578598917692912603255907929513164882130851384187750256475099322282236226683990263839041383305747443394916621969849872602462595394518731149864990113999377148217899165248557476255718313630559360254148817492074043435612540991374771943788216263887434006939357651230125414490972219682246942007612730899993484932416841235864508832928357779063298478276569960544672770253112268518776440798636302294818285334081427524890258277677590713111636555070704963767919157415386843688378878458074014365968249773191097234008987020164622890657862441965549922894666599010225829390463664522035041940583697591684592614493371440702815596067315361411829537943427135360362840009550800238289248022840455454044450736382334351383259531742344596692634138537454150856360567347056448888244828104395483551044181422512647073184704368985955639061284630387286061002943248149406599027822745773014811835937563634153311760252233054139483600885544942497345574155520683125820407118534080303809845318220903828269668111891277648574251198397893404801168196319010606772630009492290482220718557838506347893356202836012327336310475967096671019892150305404969293993981430839192593366083459518931866757911240733263242637973766941301217870508567487843883244530723110273635627097963258466223201555746441162694610346481719252285014997248904101172485519363644580457646826379465005689288452406126098341149591576695091225676626081472691326245620340332617688154635206264738203562737531001914433574690384934752151836130169755932308973845905699455926873269917552385803616718834976782770770094406202559167784166093123565754389284238263689114891258987283763974243727067215560478292860947468769138587652522496879826064743817143433737594985779415378118835314460169254119066841592646490743563242895842365836680143058710800545710099250332513452712459505145604545210289752182565325451647150904816777197879493785651225305485726055095252920470348571808217621509858779542130595453071060941792331710595957387727776756181435417461295488359129540522370292686005182422605538997297269914121362470561204867438317491451127302062657738290797176667632834873861965223357078698753013202555898989284272074015419423412896179164496131721718229598572356180943244193499316867641922447731470489201157213041331593494428499770123578947935391610126530748605690432151933846758144071208418154167088487015495910933487564610665360477732936976510539654776099520779292610605737266805459398490948094671671518127886388585914519633787908601848160271041107217934467931496263048549091292518739996083742754781734756516748440802261929635236637656295519351707066252459443293958411761971438425762586829029164512028130468706026563598539021178603276362759287738108523612622470463014831029414226688565353439650577669218743389172752921489605564461959623677583745459055903195846489913295688726826092048704279382489011052940886671175898987960979304187345028271336816238222715416071957372971966130071172143673554811288303359123898719123570647226747898484073411075747140764262111025475032569747757765115318300339469007606606221025496354138270456428737910153171474885266198900184422532951215670602365497512613070415774363569292942096473595640920717646460094019272256563969463980494847713234333474595653156123122787854574871735060445633267043534271744149183362994676794995675039428843260097252360719783711044770846103911277972794308498316358066282783547525028216292363752555703523956890028586825154053413751291763329662177756107279056637473402362756193399071754370394248069921976168412293169269105966276792332775307270273016286775131178412307109270349205454535324052461981391848324277165130812852015056142461251651410968900243005986042180433133372333391471664024647166973006385640360409476201189027987043929327713719823786220538547670720315323105382597832019618703726104635611688876019043413167511993076090938230969528148904204425045627004774178565078662322348829301292866885925704081855810176913408357304776271199082172419736427095176685132487967599967002769222393878548680673658384265682634711531813665387908345554085970398036261876927475105746369355621204314878172712047712709217760265243132996807909808867064813189979237898995398857158125391050308574860386177154819115073453457529261032642245600709259755611637106199160765963259298132518207907046310907234535826943084794408619883100191749758874245833708744266034775090277425132673839617176701647281523318472597426351758077701718144368023152076110517137804223576544059393244760288190547266540664090010111235807711976141132408837391325295692395281857858891895625811869286145060415735193845193154274278971982699304611215436879749804196826343711343096786335710511164729397781907190903170508302252000081721615696748327625786718617924157873956752014608673159893255736160432107961412979560826944033565535432528051222940916984007779459606692595803933776271306849395236571618265539681434079953627914613835372127781447879522703687333353408260482153142833768032405078740184622013948051079340345368655520199252919145010480949012668228060907979070300183456938672691301311474303610572648818735311165514909271501186783331239851188898204594360571126349388165798168222535901141712229595070939939824651668098739340928334416192321041077621179356585825416577993546637770813087353405113324434416717441688935100662282239251166398628914781005760192128341497066496480492782055997181838142714888603019982339703248524705690257722856111453564894424311479638340622927883325624326941401803187971232011059942305751464247198170790399497209320203987973737634311284265063488659082224839474718532754849437768430545223487227677031060746305147436184034928885802115871953411646791475734155048197640527854035046633551902573189205133776201106489640969863395865857969192206497968879377494240644899890430970124925550902805013609307319206438270908548320555682181322616665301272254094584068571962840616083516542965990767104644146902169267620456577196940701654434307218987817909168466802488116696135364292052908344489196145338486796118414334362467919947147182293629963276134051243754376963195834850365388220229998615795623237514568618549830574634954703889853419029938723723008525268650989528409321157834425343141086136926292835271932116953563541481577515959029190269602176460506724287388942071692228394856056163973660787986990583532932776999737011019617745309505993815975834252564215842334226535179510617911431384584337849644649379998598071723499998642318996877547486690992434181160804198331141681170832733623557502492444294513624795629858017759021996922722417498685405220932387338065488748920278436652983284829948591441746718170040502503308461306461276592770604811052218781886240275049450823407142673044051703056271002059024341277982947916474636282351360244908359777778771029176849517118198100667021925648690651768573063294626358275068614596831371453913323388139314177020553004622684819432842828185737057034813030736821768560962854771671027303386833310336624628896848867886847934333526796539984879737854345123901105435917203198327730367340355517427672287086242266322610642157459941949157905560016833016080925970447790430302837443308175064548109932609045419478058199673394244481987758943523336029852353492952405906673759122488843764892668535409929563236154523062662816453428418621864512757181781416007012849124992864822285701567085099048317840221441108291445621948716383856419630145227841542021387865186763763244454499137979274038496613854724952452677131404328481968518110110703352825931201403297443763627231470762838464045327891310638823467883782034610736953186023252370748135060878789127025820043350151404094350501855242977077137634608915433113377332925027825884523280420597896506856021196762682583492572215317764827108589753646406834925842101214297831289730539322342893318607519559215772830081819808416247501078060252221525314754327236249192525350417501874984675565119589331095600537492636892232951210255553688420746296835622693816529737472232606766517481769337760883123701987800739671920480686319546007595906573009505297280581679291313617348539090404104675356688921555046596286536180159258248124259960578670253432732383232928350706991787506482554698102925034454473983078697787055560376498611541280331481038095591115360243134198713733019543850853505239375535721218538149837708838816525274814789294059342868695771105503114691659234854817855946287681902185736360055850485085358306947356096310980862046430858764265138349872521258338600285749134559116160501968527245013446116908269093537638732840985130084611671973197896741689827213021784287627342934825408026304101646355330576977703082712669043379271652511895470939204517891450769133425200275791328119944647666636576471804218527310024962092528816924054966531644280206716652462073250108967342344879396121367056306458573734612272476546433691863113746868592406712444619226216384600654974619369094559949946627407123911850783507088967732393415391636689044520264238794322159616882567958200127580368583821269784237557741321620065179867088062181613727280395986107948810989280667604977141598557306264193999191001173793554925876185302330344610455086120329226683381403780363154519505328173118035478221037451289297806447796085224623427718351838743614500368558727304688158869781330400847983517132598662018571296656178413580495412601946997192161005493820463512833973695069875212188480692840338859701483527975291352446512107449856947763984164829832706601531672337391800294620217897220380254198855487067623486530683917607732073651980601593879287096409229969043418096136065430522332437638992082867779714375955740370370718524280661382423653238883577810630450180611116876345792318721166849875635836927956759501204528264650813939734588151084467904244446725959108021450960255519975731178734376413186973408056888562736801939719019752695678008449006692609479449524662726536930539670374533353496675977311486911771691096825889923941464426822953825116477554500809342828406568162208485189185701351764963945821018525636636019465894948024342278856524329833332497222682250747610282877564355274117300144427226082406934655374895031082631732906525253350731535491756885206220621835865158852305183837449226821953663530098976051820439747284287326423638578515465380776576820140446957143061795589916136507656969090913926279761043744617627549871024297371959879777870483620937182736458210144108364800959085411414973843002484652231405504823643726775898732565137009688350514051917051848908311391097547637177628414518136225837007261278508794163326916282320658006502726608909145175925829346101694975030858431979398647579581662908472916485643081689943041231460206651331598440961050136551382758735096559502559868506046451935409904798369465825470232727278343747525028817307251357804918458386827051297088472106732772235822098375984787163525180244892518400053901250561190106221118906455836409861882242454310610060697675080842965638055137143892556874046877944116578457017129124015649127271690070509111282614623118637998369385082397337061515594373616098610973866394258718297991445582478259731019748826595748024822496569223862143383644939569527762951949475725252448432159565291189873994677335602709890584007897474755130567451031916599585335029934516796181810176896642709974209717136770029533768999594415240161036035616405717520627013074261252177005671080174028962381017326962618192065860884977597330611728911115865543505367104777541829123710493236203930493754075229738303744973385567477413925946982995212552443277549927512888211412477675789064725752604546482946895726061114113965978200394193543092371554610774076469589856227552253105133122134734787685875260285527588114500419633703609875027091393457268719502609327531826261630638531523039047247901542422458367860619584155532821168634594460210179504429819051259224259044395848593667155764131773599283750900659179792848312948394216565601150768916283903275806686498745692878076606395326211457364219823738650999381215681896067647529150856720083752343573136350926949860616615445669792012105097283182685066456395120687797658643881402255669314014453889237352681328997824855039145537664667676215185110949694937760788221404394914967515705659943986670392643478550307823348454071939613207766900612473186500028604492479020136417531042565307989503967117173869806204938270932797871766627699124482800097617440081171518277876728822426030703631577720275308758152723552837481203067761398102198198793793116389704314441179216178288819658519613837860530651095165831046754950768537919816558856595894176650942443848593267569004743380410725581290331840853477991072955910080983407079928495424384172962925318094795369108499141300795071088367226913100965931368342226306152310842013072353684307662522919331257761925717872326908118313233269961734053526860773994801802023994143611110062241519940824551982269211762345830713758891079088156243460039339592619404622216565896242411116328059680192416471686819776702497080319877924871372931630157307729109171962167395035121798441942967000704908655312153566802451273676042904838304864847135803524308793013578174357123443534835680429096179350172688375648336224822304499492685368532073082934120082672797729301349964812382325293885733683980415077173086711296253570009230347406399428175691192491893202580404731757227817211048023037283877578561899616936751520434018489774617029695241331318012345210743489923594191985376001294096859969727486498205262954986895399515657021922661175975938958929864090560296246145578335172978621867987274531718236173726285352241420671780520003627527258333770551056872567463842929887176439521011269192415235202728432057372662033783909595214969896316845665674759691666031999444600346926446857717888004037681094772443143144519659188331255422678669033813856247525174106369619689272451510384189417542223165927124350636167587455050384447940933585359281223141300753589187200461758135266409931976855144997951059335925808020439656747356152663810695034005388407837378781955938825953411406832683104510218088326053099444434924205689718673907207254359182728059202267587316666054982845785964433078949268640664428903491935733628695550830804900498854337637531586554603822442630788482959100179868697649859102653567088710658421425019818821320855722961555007875418049743240062084305259989120834455132035823189151116855868733952137170282739824501055265068148728223222510519055758416655819901791663578439286833953419424178401820640582223045006891246110090206517211124914413133549363333803419564667935642978868444441596853557640642576538459425987227688635569679472472954730011787380707822317332725488604299507515363297351102710622500998768295092941417480781810460171917615409441880372903033563562086127330382535267630814024621309954726869986659909742037401262166444356143898467465985107980897143295692557233924966360781355414332636192918856917292519737819641940653160067671958767195971554845486835336822125074670276063842189147996079157064655893131649602963099332566829256183227575891474653340148215548861626251035835393049077627492844535945720557567203781094331366862841051303930921111070606399115636211560902604027857050327372962206774466152574232107547649197009103788132189743699000734942264661804891309011571177092275617838771918429127903602089067676175979770423981971923200389969199603588442688075338916395993780317783060993919861897039140322949165985171494654615074697117829495527436224749481755211185393000309475717267897670731463700988041557208756057004281293008631394845522170392235693288826078234900904144233437529034112082791491242959290327777755446134046447668881157154127781846815308502518050225378034819751773049131702131808952185208025407422023542700155600696692040427321676209319779234857700313378142727263663716344752336601986220463097328052277588641925969437527723959538334060892441951847636284429362852215481050034734234312810072183731912593345265543331277994976276345029082298831070576652910538003314896851329912885984174500783381882396231549744580267132290067000950579655904591880600328570724988766735552348851679250739132165831068859118420835120383945615060391278606718195218011212303771742970836215932860417035324170743532308337846124160516260040860569788487000236162946232202725783402874141229341417034904498917967502922865951784496074880754089330991071432064888267217196120646660434382152738166149465537884041372106414440440709947231337476886583609320032493394072208571513323159126462760553262760847461174297114179545868326738428662570960720063189859399342271274677675570881805036643118822492841772486734425195080414576736949062972550873817932407761614592254207732239896368798893788158990412151769092228323567996690927999023017652334153657863450028709061683910209291809074073237223895579824598146835001833085074718025220698626528916158187098356498934968151300566084711284638567828095363056089236761543602835354538431647866101229184154389985632733129240635753144613499471259057054237772643018515183038829493022028296523967176618184423602504292340674878771657012712342813753644130415260103460629999551818348193705519842862099406200622439589755083134017787230720876939530588874448876002361806281462401317398825511970991977963763455523635448538476026701652854552219696829518483822455255940788803709774553969817169616899768419478819496958980420863127401734658744685460958656201304686399228103492932052422013195410984363110600840624860148557379955209209755556524165804704764784269379920909694385087047238389679855996803563473384793227375306607446986049705596679341937916477477797027160938062160404521648117577024950815171119313664682820306467450900515922573983742573182884097849652902395919467639870302776380966470132617537447322150543804805636636718087595850315501595338028799153366089460643465166057203629170780826134122728299730215575291622690640122533829687348296791231962763239532338163919574340190997866446797915916891335230633864614744250544078736104453206452436873165142356780550963473747624742898927458109518427818867290248300916563736908700697978752197475162670425945013095189784265693354499878457721324829576963842906296989225426525009032444164837686012585196788208168082378622694532634391588184540184498037430318809769982835823247202755620494434055001825989377541843789594106329973371883441445520747447151693240993973123167413260650032855588532984862670406435212981503925625188871793043389670486624271720185555537701325736917523534751277461336561892023957399123310154739430381923897844565393864359956921604384884651890586783834642750207280406627026723721964387968547200811372526042460542808031492547269555407379836587807572568706853324868843808882441763763662925195570529004830961961214601498159729360572688088968262521142980577004677248188283301494134714803178257175975454822197617533799570494400049988344999527333006051716155435191555554843234301110974102277914410118035274738414478139821002440372517878383778486690120080006261719176986152203921803690140271707979451164625798690293520987237891861240287397190250726701708190989340953706655131262496421967930789289034864918854125610639770762882080099895965397394353368915381747208470051060436363384427480322003994282034834256048955885067503511348785601348133825590402870111300730109975682704675779645615008976747653896946026734657809011654268152855407640650549088488958011154941426435045020708242261772365516698605208830534492888384782453486505593165899384203206387047374305754004814107195021069019431298200130357788033154118731674606395605381306902391496634178644461268530668204678685024117889761524605684360841771716362966066619772880503044550375159325279440098926782819896176690593634777584643630183215521466867331023653954273709635479711266496191439109688831518242580285133287567490233624734858357158282258062081851287312421767605707174725685726938337150744225736464798567266403432733522229895947555987360477805500742253440819342847166193381214420511293297511872855996131532521235743054836782707307308193926533203961131090569091529505806287275157222672436433166404186361620567207199690472666703388936016248347125538280864505612382584200131640676366416665137475376355935310092860385149412808135698470177200541112419854400299123261873488769948522740741407623468160855371275227479485391923363288248064744356362316355448694589792820372555287395456088803762862882773488516695533249286055781099837855292026432551398687756046071513008540538022428804497553826402382771052535665272075841897054405400504789384608606473842005527804594084667242785690323832403977395691450805494784954569720460420287093667227288141630029349821648854225974721252619944401915533931867215883955318124656507142490831439663037510284965158105952901608985522321175265067031704518304401695737844026127172867247912157913240788821836786710336420247672277636438929246355388416434542132041889925451254970050558032882678009634568737764280556539990958918100096789764066374074849757645378922909789823897327748853042244956840809168951958153696125288136495028369412349646832604575741812546994758159027658246455831610205839699445026212844385260439681478516969662205387580416433022379217259511460349974827001935900362514583690901717434233684840160453602714144459284066752523510710383302314993686511776954557974402544440325414185167212017543350490982932641717916305933689646815829629824767138391596087049031582531789613959633912577854328988507884756683432822975665728457394153603849168496777330902955586703956784857626981574506122169150554143555621544386002147768584148273872863903834502179143447472390105711876743838057038605598213187663745597507562744777711959804262864677448476348788966586905268866715141178043643553578969556551507206546760199846846495950322456303199449100519100116067103448948995807634455211153605293682148918990905904765811187405561808264357847078025149108260684749453612853722653444570238805941213751851168768066526315757927854007867368840125373201798532665194114232526696529146609578890151351526956329702918256784737208083101708767457457635185854949918690837090748981550806687758011463754278572791705900506319271424669397741119576981311316568624557333737544228076589643695599519765555066229637633857355105965709400772956197122214406382825992859954696460165751720133139234230511490919272694503119885358317263976244849169732889367335602821047225066433769342421033796660861215999830071667460526543155812777529168778061194621849265165821636285151043212032758559547737508131951757740484186436424675180266031348706894716131239486554594459417013679929460004858605481259197661922804075732349683951833175533079217324385960239865763827677357786032806626115818725555568256782430304485743715908164983365628933487798900237102684920346924849767360021118344899405068098797065260595619821741973177810081805912034404563663988757205109268415149860814541959294814835718620030413419376112452462304068857293791064787608893694630925749756673409568859599143020428095127402336649301305194385566851660299315739422359830482287494364913795050980760709180527369263119198699628464250287483041609551571788809203439312305726732701220426545913794693360361616770640552028875455099003375535767415048671548678897692185242942848264229236894754717538550686882389493687545186038254400718352442135776929034258624867060442415265791810652668317944570544283864154482362831537560837216062366976457963255460510999610994629897070028362576056224452288716010571349553210721679466031187275729100144692236439295736889500076764514817621398342961954653619833613357929089117207731052849227599755297087278383765894432247731203774863354608673439545367010990750080154804746520743622205037170910074564425357596805492605640844545779837779467543853311894731153541143507800525335468618148470869116526570707458964517020977517333158113387832776077435576485423716388737290319360012557247057758041725136202822127632879596453186829571660295088837232985247556395860961251666056674875565690195333486958279574309992113195060497329356072124974219460307858479071932645518342922419036397093620466828787938622779707114487239491565982210155098241525157775428153063494266287683044846797895024571813580343934786155174620386336740305888900123910277960835026102033875559023761003909380460508564411528406914507530607418248425186056886220279761360367156005686656303164656595185363199831211400319123316593263973298071456004988948699269343981269153952014106127054050042968707545913101320255025236149829548276954218039187642094695731040922162611600234215552350410789148893501515702312894640091708227161745258254654362137160573719503491340460821781357916349309666829039942718653198666386260448083465473065624425820892720396184432816217644839629337704992055640463735234802971934131593906177171524596351500609941475642313400145287783568999553320359917011710538821313204193193979869536756422008323521471217016487359193187715960262938332027809335025528850092099487886201476304897646315613883026540937645208928286444896186354206847614477109085362777528787249540462430295151278226999539310161392024468666274630087691049156349254504393556613713029316686780224540989774189450113629440362891694032466707625163354138645060283210046572991876082385941379674532403465359949548216923970615235330033672758567257064678769533067033288371441716903167946980104885546932403369151911128787075439654183385860110369864791281051956356078798652502146579020812963827286127095470840592008881944447472579402483267474076403397157895899557676155885000813390723107740906810677456209608752094925659711819835335555901009311032397483082670274714749680825511932455570267872986471140199391641443583680680422054165224984105354844380150081182629335935535097153819186249489659074759063605244821558864059854407004535307052820467698168709560336060166327603872314883479938290914446879302704036359695839143281526485937649848150136477363359787862383901010499844896909479913984255760665318074338897733883710233502808223998173033362602984126813009310802930114202094393054767727518780407501542905045552812966103102300694555296615312167726113851399314556083584629082583100341237109446928940888259877682233953772499033593825435858840913598054406465431141496028458374667833474570836636126656796220413234304375652132278576410006046589240141162163612596038110649922727483010521145819197920547803791352782299211159084460760880721869974953541884139377253949389171728857128534323620524177397032619777578347040099492708027418942667301546252718045720443510736924205760548013325367621712936972095862059809984248526869608780441815125966038996271377725082752106121398516237118473163538597487975604769987656134084904808253925836197158887837612002922773955099525327577523299330140873430196649277366732174525762468987089659106853562410822858512924894968413908817338689335398742261522158046405256644858557248269341082398894658974327038483711936958879707997660449605236920673833997775013517802949950240443288135666664481505163637113462259513161483282981168633919749470988820217850831080345640749264682018255218084400580525145164289482837168698548043299663314316391036109922691641209030654024919142128495079596107396818478809153751530007047118024002542557130420126427652500100895163435045398312836242191188721559343566750224560135207505536570808017935613174788805495409251441858674499045707732478866131410939340545153775112361176753688902668545875677033938256614947069714544638880304943637405960856895646076179677811158702728479903343856311518347220749491136165459562941809901708542771813288574861221573244535212632378912675284171274800399570911935984443885028192423151422987237739781777909484348142794815611762692424913415860792200896396504837513219913912814434620243502614192787144100189447353698953287581699193524345968266326468894464150530096959982217759022879384861163993230146927056751236871370819251341031420359740851236925021463629099976461122272406995670990452121123135178409496718985271282220784362409490013506648522185405087113978828155441604406921367536955974976739674331005466168911828157148386176203507285481791270308015617414799120963349098485098912618099517328220658707313711604361365086527258762793898199283524680653954220544224626309792858488588236308153396267523493443627672723602511078786822054842253164456135797432480087810497701859422517009998842588505722490778223408306010967801452718334024938547182912106732397873060892334527431953055502295344911631143522452802071001583995709047238018297031115513813361379355698762957990521619105022404237010141494825008886497383408789263851724095641237767623635125660190463685033548744966798225055809337123569388890091017587821507976634961215561104226776893006306491376217363893471957878013985661738741805940667945076038264442655493052552178345977910315040993799131017839986276063111824783076499272614689660067125652033663586092638853939962920536336978225404804726884859156574686667485547610454406092290963588550641143980091668475008276589789921659689440870616928407493118971054801754368371278514259928680878907395582937086564765702396371276779842531912216561726257248460879032357124844796420220096193272622656515893590257372064881172159605492452586657454554513806905712463224671961058342722792286277692357679541679289408857580681611720068853268488231565472098835898383777706444187747117155849013659528425286072792600550109887811064711440115112853141835794432717669830654957723418872529247953117265009819982973932978030272967106309606456290097143299248652407829134321128097381869871639465357728017667057851725182361946457834915238780960896077054406540312400964757094413711167371781495138762898620460262498719847823714837713738304616641207841000354759669930330452145307332702010212548213271105874068151798896125345879168246835447989373907997286377797922750982499965600072771639618572563485582187469658697267854696505471471060697649618621204596675448622036927506384923818672325935967058735265434935334377749244623069280363027866368412333861798850315084930723212453831282118650621261210125127122862266153321708199193892226079546139581956553637645560905204120863299319562380830610597081756891565123426266847559375966862134053598568498810985241806378154767487780824839702064386488500275293952931359027058100265667127049561281463251169470814764014865627045344298625377970384099679648975432350961525099934182903236909372542764961024726764356127592867321079865085550400261690177168946423934843003818292971670173626631485823543183475798308288785517021750657652726139627894988880906792469230450814376805635666368047231295577442596228095750670333326604564367575250497604386563185131267566464176364783321225337639928202639570126333697495485008056551999682488975843622625623732674414078203320896213888846925514957838058593429361552449144817988899807758430069700111668192173728221005933650123765014432284700662529774110105787883871303052648147326103354167043517928306496283854968986582415746202256798467174360052642853899052430827083991578629824901979977365895198053930491637936256032956680180943298013424546503599716436607465358819490305536354367984963495274332691567054290535912935284639825428406087934217041726476659486601749593631335328062805292433849178271154793604389257012795574504409892025957265073089646988284238596287524587719502051890799862346480059387862116206600712184040737822542606467091148491528957407645047872649872057299730120467842421759567184742631913344227969617402201790297810875103276331848910342156352539869753426207715652537882335877258525661309199538835550594647059794896226983142529301663540972087382165590325668359117244014687884905362576033021179272323054843433949009293256002776218904872112164173943192030620658919017433853218430976059553610382946756554383666953290680480396864314489259279129391582476837841734476654650163870870633347706466815353544132326013275866581123089127456454330089251957455356413132702130822265513225905783181926563919089295259202879492174180106237356988519687601769325697048675665178693452914735413131724865222515664817837794763341026352927619966232250289052837053419854550433194324459997958534867843841915587457027833910012323344674153399331097769763964149597288442875350636939061122438977731507425346117587993972017413179806399689783911919078301110761282610327900635021173068249256979158492414918584153531158505575384744360036450007480189088506784128928789063306241786166640036041612675508833043564121548226166092577849013360832946011217394923626311861714372919868641208027472286238662060474684152669761229380824292810982668013088449039272276498756439872455037446763493246985908990876666293664436973546982922374497800166021803778788462845374465172823082563512734919171315482182319957224020345582306150436127519282476486121559135637726110134766923299040007199434445051465278949597567626443971594152871706200837923200789844282401637102273660861613820385020590141412764256741827822201093524692247942384350938925902785392206549797530942272758860197767713519657065618835776228477498483137399607424762101713901134423290306470239850707575640334587821929191072402781285397382271375827986380270771433244043160931726059012967499455729147667779105885459246198747916166483190836789648457893043662783223683764182181033185532814474579167289478367026284347780753949751634466495651382290750397387927944394803718252512708514742179151274504255923177528923764842867698814525638573970400402380940091135477017656359498505720213794047387482501766408611078806546635646553150577590799959551180271622491604550732637872602957761075530504977253229506067862038936401547874609599197942006921598852055270497646168101845123122356760047054144785830846908323948998662974622638271497971709813815142165435986117604679595257070564613304680523225359466364017101703712078535414501285101626994883204713612950658418465999685814269921258749474046620410886833584402750690268677349940827914255627789447701824265588796827227195060917799388487181992431527345324528180413855052800921948623235604782826887218439999373649372887530594422581732508677648997983369500757066573328832859105467254542065909499579877324564428837498979919913876881404589416268169985548472430002039284074117613521056850211933809754983797086558950238069401010185413556365484193663252070760210728291899097500436218336587044891308183740447527621234813555435040287909930783548267392679938631034976424392958257488090583267357599290907916737826967040232098733903168404332279913723399949884905235758032301453216904000581858913956520850203788834603710183412130929961391542109656817897942069323140692343419350307991678087333430193843199338680523328125747673398581991543821126235379937109637602869256207088499631054098409629751956433136854210761982118214573746107023840054276550471021231304567671899819251670618766241808852485921907141051643274236600974932838109342082725517910872323620691240156316524238803977153482504764808875467506309425034382910012823915119794758569635382987728784752984441794321807280241604136784039541229636429799000345916185102302214222822997021551634415605532588490439341947422946274359044670392943861583649166386810865405414955355735077536173912669964727388507121637398498099429041894075113969801116376882803776282351414554516422741257566533064328901827425969438324689792228084561288294322994753461196800697446794208999938994898173916932675716941451176804836538088999243284536442989122319969548051436980236340515458645634921187323621553314668849593837906461145738329296721800706574593975789152438121825706009573910580615044483466946228015003651749249222809827664142269361734627954303042148289327953531969794503495444012920849144574547653563262961865817673193724011312928478238665897526531658022296022623337180324946228263021963211449492353596071337015501325889041282751772463181945193722671521904587436566238039875033734634930223085676217912120849833043121243666825930601265767615860714432730860935588634351098911772869621547047533703557810530137339935775097448168605314079907915833492443345175475188179914625911423954171083157958618961481419016337731237994065262066026416411555533823844920785327202947507186205812388084618898237202868384131666687711619414742160836460882519599981055760626903353425299867071942696503775962221919467899503357886400555424640494392830823689744121515387123292611922494752652525713409925868590333523945517001648744734436865397084644783227718324708548811226802693648482606355075961855496928051246990450644380238383437958806246297536520965015744677401010032659428301065055957878547717586224961001259856789279033902329594463865021281539796230762352356926758574563290745078837256293810332046496554029994604585554308854275812319651476724203342746170493349907014593488562848029384786645880854247038539354878781544928065259901491003475688500958569647761957098497656234381674363157146227134966972577696933406545961398491925056499672980568982269066771463493486757330340342884547839347068841303254529826761796564185561394305887546876347533891645999257240611071019610123262167714957389672962127938988441435402120602213140081154919555607395071387332357081008925118526665570887661311862697305517326452513560554432279826427992817894564922548957099803644632511947309374773390955241424336602389417864255362431439063042522202244546322810748289174937355007635760041547041647559490202811511123839506172599906466892936820012041229452596000900191733973831706099956629415906166418936285540287068066664953204027287080537260123223961245708862500433618463965734296608695507318854334265418246929545220595302256578356604491804611046388735164317027069009734856975174422410171000526957262238031895564910044396908147102371306500851812251291706473079881308927250792854541310030010469328406944970844794778147038674031208085728902842724162328242968518455192115390330555437792424715577817976173648895157816202123918297872344586691256131978638200644397839878035046115099198909296608411450990597712687675998654545143824799212556312037106720493948371714924940572131686855120038315829606695310856903009477668514887771639038302252617962455028919049934434952842404276748214039251510263741815072063971030553422841299242442456429117906548415938053613774237618181908822032721651881550854546142768518846587518807431367496435060516744933309157536467553165208812332515067879170105891923758447272785854250100180326443689328250376857098487233790614390829719180940709271563482019394101066821630151759268802972925973425308655040640159259819483910365772868806491590448010116043391207445349773167558397977836553707486276984507407620061872935130124816924500493633303414657368118224389556420528187691028060129471803363102184402608330794663869947075512482106466710222154378723177417152356433126188385666710644446194552303648808850402356288236627469860613463554457204682096764241805123372042789616707273714246876188377582400852145161163226330755828802479908386985926501609788707846668268276446337233174871602122784845330055463384857289240919118298942483607884677465385042077567706744771751593460795469057795728534103256221529398022612940664248779169420287712630348038354729407774596648197384070013182056950565416488376416592696201197417630487756154527555913973839973729372805471990823889212786777920084025819661210674287440285706985469913094736336766270136375113939945132744604824695728669929818496046111161472526803426473456309990129961091069015381681199723707843916941755483161519143524341061865218715187965155024793672142882680516388462938502699960083984997372583616473474405995148820587216793538905900901410497285903886786564613890426862640685697290534104831048325731185023437277718416178919729712186726912414808773803974778072874060334460217179953161914773224240187605071625023400886569920346804010109779342553857701419457625810281304360308565085383833877708538508213249161071350595792766026885550331432368451395017913789915951860705046509659030316695149786872846187333608770763902602166453304787884708958936179764680303988467725076537477925758845462909175542591999631937155863184091151534036204891067781042045356926726703545305483379571567343877471013711597443041778218592283923632769002781476042251456342717711407378409595167975969927504752022596113517256304570270411573739947429617997388670989335909001704921605721309068675682232688335348660181148223800639219936888391098640124166306072994740071466968820929538600412181395634277008188039743275749794692788148714958252451610440916752248517719263378320322289162436080222078184993584221527022913102423111711959221965144025377412598341525899374171277025167776073389539482829971799183774256962062204226529878094591670100474653258205152335520330745155254020093354335025124882801049116321299759496950496298855546526765269978993663022852383050800636698694402551534377661939568631781367053771913400434551927291412435457713452909739777943121401515386009491717986616068920030581139414471817299901104717698809490245512951944207274073689778059747344500448210664404461862812665813467578547902697304488015755303075500896882427152693539823006946611320363517381176155550106812708403455651282365514090491967949102435778958902634111507940536192445049824170929737229507343873844762933888229667771273264325632537015136808205387688215436550610737974725824769571291909362821168600535855987249627091134673036965637679953292902442973379932951041141762158353529394262694409616533185091223699329215001093391751896879774686310476264598514968700037469137342625286248480737175183414305549370894575883872629549146743864279394786271177869418272141633174445605527313255858697982724395449343185543391641085729419267866141630461749770635478095160966955342432163239558301546149982368794588656883111057533922382096317287559827232410064530636549774741761299603830639401030905583503413083206043644368643333280400251075500588897168752180912102718986418283810385576566705625287621996365331604848801388672161640151885013370731953905904992976901552238936953569819695695695993101403805314492544167125973575773881788082207945947168218808303497300360501486559017214232743108837379780137219322367590381187194525674816467677384890492211457022169925610607822973473358938191096692746639663419339741873420037141211155985950168670979047266721773569300802358660416877574520724441782079273212566974900400652856540418134260773734128138785848249625218151995796747570707472553389379646601757678039226967970568524009046820568914371354960273841143260799813702610863661779544893931695943955247878088162667059789754598180261060239553177608800513419372241797314058241172734245961211573105525475882150670023073292002960064895015775129291165567633178096076408065219560471591257744865372895688947201025483951522242673026287017813147977260659022966530014440349833594199182639690561366172788197876892377466032771331672786144885259323651406429641725169181754152984265478375065729865400713021177438330059453258879854088620405679470499701523189577077520559410067406757532866626634701060657977011823720402963999394231416704830972019882756758528412832808064380903717125533609931031095598435463356630882037474382161526549009434586956100394894198545305066003651774340218989275110455980972432762745611180306991608370029919380749868581081787495155667194764791016410557110304555030869218988649991121046857274987891373991937880228477249932867028083919080193603697734632334635226350306449022683559603078628596023274367611034198062713906523225615097464412041874217016570804159472393706614467461362937432823806691383700705512058509383138048945286222659632141788432582419433713761220486501102028221460788811493018774721136183678960200354310715023605554362524556490755646494446883813839402710061975190275337005116188527545958814790067676067205068227581733937887691202589786903500236383584574529641494719288473753489733393753369544426505936918257082460832366412735914753275920866432652647843071624595810767253640155962158636047039610687231612166570214904427026649835116830378449362397986592976708559892979588627827622819996350414117914152863607040016674637341191735788294519102954028297737904231187841029805265596033987109884682736441102562195955645495459728125770299029536368332556278741547677285027525120639919412191063973698042030136395464207368542201167676445999327356863967421588392318697966449149578750733853914293856544293762026291035426405644284238116804205251668105634120001976667939308652393233139136880064828396924537675386145613325839152012954461402726110523441836769089686070113752236227655796861315023320945139517076296308361725714875721945222111467526867483723425265923470210050559438049994915018113465249193260002121809836808645720295505985745414108749464229863410522476481693685854639631285120008663780147292614246756111947980859198800000325977941079667335967846469715563641758385398651790825811699373830030140918847557615076268177027333930947730627622317667961596992130344638045540813907822485586000229721849604816388005899240135107468297786615003580543371858253622320641334674617823469263456344172710652865212913900139806719801671253011500070763818762242859828426091681530149493529217160013609142774314656826257946203541691856728215833376224291007653935273465862535428397266973887912738611797112400925279244208587536551126118533458740627637516714840861303494160275452611978339879346297765533124967133727432593944982854215741505996344856034244717872250234335931834571173137571521425154600346493166995500052068005140023615240764082343348443548018090457212162248503982608187816874372388086949419134214240987542240046020610138733081921369508469305373434801034948963864072253563656108551812879187163787089194438601111266225588807740793347981641294619149143778765277050887011420674729939390744266218768886038357190948079372164668687987584627745741479566547227882164290332301255053549875748500889441018582640106139030111341978808202200711511122831265620102046964761795593120754898867539286087880542077754033544942864639866932582742815739118804695109408834631049855390600471238775544747708522324522500564233966122458316870385476894969312704410216560373232854651366976579067508597201384300479692315329117496385352178784383754019385498865457025401337538817866277994259089931678211955801399773071086504499606116089149663682504336843129538007267686707113399281645121690059972205627924544673136641844974220250935039967227576882095824338653937603730025925475878126243066383264938888330041939722818758273706456318794954693975334712938674076658654349917197312130535834981040574149420376087437093297016394995559133505092473559454157284249790333614518411287839714347712098361946679664952890178890568453008296971622562768895905538084935661704706886020334647215757483379245673109818407435007215693355723454970636881608952025607234936008354259631785795756237635495796249343636754555146919791223822772541993499953064099327796646517556010042066587904468485461311696621047116768100408785952440491150530094355403107075133305782869763529792404066409470671306020667860705064033050153844180008861719773870993345945723488286235713521920398125852055686162797768880798911996567645837326630066219237345723969344770478350025438049009078239074606956763931751571133901478582167169957745746076164506986534978996861561575461219172152775805729286397414219970520473339824424478206708632579451391708060979248683732870456588737455097484462698392772324655815522489119947888511364093216463769292716437117064454467283709737042681490185644776248884771842729950315842899762975269477795733302432911807586061481063903265888821765815846418986435329205523790025300699393250440970838071816776990504874689710672429974728950326266236685585086908617121902203878346312906348446366979983137465311639630149964075917630035439108482840176675339139842227751157897183298410346960317524130460616192152077707815694123523010733534913683274524583790959303230147933900477302195579836187126600602016386003237113441150655499287405355323180953804113627659751930507621381841884322648661909491221174826758469527721213891696164450733113446437663607153055705623335539199822690708669391295132091897321353528062986965453060713061098117997114448375383922992539276746908733985320383438227947712812343443307078986273862681944832712867447627236315074709205553639166153902690603169887605909748370327455536073526911475088477239791578855225366232630558361411836514756337987609476177576967567809468227830260092059731082839384904841416674427928123030410195173544344639073959487311850088787731331914541692896900484571841790594131218588724509776988048316983079129654759199800440939203423291086233113712813037091040845027462435362409860904712032293983761924546395186633532158886672043518190879298019577578844525590301835617545464421025496225885369291898845698467054853495671844442929671035531829737310745203823766763645297910454327196191769274676081018066450492345014749169036856258811628098077158219152759871216655173250893032116071885396353207988880663636147096968159591391125138313886920825743313634279152224893974507640573410404577354675109219106193444142567749795717482977777754270861126201951129996457032022499592811726679605030311007208531232354636083344801785047286653845188518897947130872515712115299275742339649091073731605497127496480568394571811116915856149745920471708825754523372623175049344759128223671056573983611045010933969055266114465312581477729560639701602691254502481097952036842130877868429641208541548000673281320093020784245790251748397822836232224101239100784609802135531489328066026700383738072080215852154046910252102800352022127572771338275729949916345460978253010001872740259672104532243556919504912885761772396108150493508651904426022807438518503472098387698166466042418208808704133099038457507598253064588475449607644958393961530799809357483655705104729231251650142442712573312223164098635029170516182963412850719022554260956646296148837569383632176712937486165420449730150782063220732368911721842567466516473480712375121895075589138908014257802050833841996808807255479256497883184870002056423405726962472968133844384243687964366680236888542841346231907596881741759275505212322207262499547582586799796613398838994489995293442240801002382246912567850736109755956654155719853759160653272935054274950784853721028548207795549180694372417626728826930839870916632984702450350069754245993172113899233377282188334026304748761247654172993800566305192295618277361157006219317856213689808846635405348714291883065513923588786955324358550063325986667023203116690671261204359495194433227686827689326046290463068928491362834903449999793374783625761112032701029566189424650577288350394158927348852259707584950657440903670236065844373917703371423849325235088090405234091516207852386253757272584825716293494226988799889445254938772127834281201376616937593425102810829735558587789211732813555910541527846619992753266150629255427033865274139778194913991570356330640791268749422847038076457140451270067468560818810177507115208378934699598867063606687104231112526391991651506744248078292309034865006274036413627362811329391753813779873502339185734466505459898665705340920833765062471120594435633146738960429039921756640805166189524357273136811057309998834760702632987901836372512542564988592671828616132818622070457945960592128490137447384650979331629626834946545714941892519013197622958548615334285879352158203112461519381206038081392545609766389936992069219576351373135711511336241123391136893733267603994597503650994361264841455830863140257745467189010676831761044634571544784192373819350925871731119433083940538480453108875315328622876540247965977352781762386165691560836147666494798248319924993566706600993691528727411581366829703587692182124497450566186550027985518061614018252028043696995220455188865255409154970974514671542480912017885662319673242386453362354518948532414434354576876066826756815476285997425904862188981477746024463452453190545838852867659643793976249181598387287849280828210634970765532902865350302975536073066498729097251173024123457574093562848413580506965392625673992576487133423228367754388334435748626498772536015047082495190975368402321519793448056921693942418542211958047515069698671415106651710210048295348287270889595445665984382249981926284551427647015982761200974180224993476352425300261114436594847294006643111111168456601081403329549732361559493496061944541969801271313337081520751059149933390967077843237507384757846335640037436944611699670590322908182107659902560708148536906963599551719410295856051353498999531461810417875146051154415404558481661211407652115413070468935528902039252832216580970165560424135112854991889049699715036372211719751111173254959572046858992471388313121034194411740445544046444910420178524115845705221657497605521366670089887125839455212379071933461013855290581436445361708046099732583696154300276508078746484239892716968569746359561585992175191540211184127041184078663625822265129795582577224764029197059032851380628934984122632712431859416911932584101455329568991186938720577785916408004064037581225818341806310974852377680291000008861790060357284756686162188224995837399192450613495085222544963033329340361587719595989176774258936918589542148785922209430693327694982884901952077477797331696735954089085625532885485037060701946808929019126027463162583409325756561856752327569126492262406468865631654823957714587032397252776337965142154320520342097421396077192781779771517540696900992384214861531798776414170546421043795965924383222593895182563337504431699053625528458340389865069790018684124700525872794197891024988290379809936662430723393909204314340987541613871041288060175462932695914034384803330567341940315519568099228053807089869306032739273302326169252382803988970270872950689030756531827594685332263549664886365381858740850553882634772168055301464302355626402725117437018705583453578225552294656711296272225326722094794510791446330814123022771384523669596051758140038158688881097495335175225316762526152061461316968805575771356750152832218518892350300872981811795038477543157894377024274442250892667602293545623420736140510820030136440680914705863340253571330726488165436626552598978703609598016370293369220441869671841944592594639649453820684497437479659070538470984054168043225074715101524297449458187032694511720447450769062951034210637310345416656322327423649808087613649384738238278836608992199443765318123486244145062113569101552182442505270287122477542161687210586111814907586006897716927654558934935061750408834979898249950224799891758206163603231956794518439771269385419605236240638105982610374262459337498148732411097994132443182587231699925018419428626033259942496511355112480046854171140024688032806920190193869454849188465800253395612461980784134730960469472637130039327922659683709207658129470630779897162179005130905354057121429900555513586352290223161686387049192957746357445903106999848566061203245326465233017844935646264503262724553207125223337222894466411039349772534032607875942824923745268934602549767556574324165880730121690673330414396694495291367436754973633976434169989749149318462608089611613265112033464657460154490934094500098172260170286696809247894147186410447440191841930075738071035792134757675170263702571016501614412701773790923311371175112219652383556107516278291010057682822324689860461704062566365747067362813406465533122791821076362192302141899969484343745937808874871420794721468623091019225603565911876927086292166621111646906740308767952541337321556502016588358954762834501548361999948462350595688556985105225856576097431976960751968770604068808037578287403902136502230199299657091702270523878479277043977539175723549225103290255202886129324908049311944780784956800206639771804155347849434221978127677390499742924826680300799850411019349792810386941166813063141123663860595729082886347544631255602936826991971585544882607538745367716452913718996765388539760089557786733658911320797725910646613474247576078613085027452121107474329943335860998084500688506469741488781150626421202111300865658125570747882590723335654037015613167500178050614249450984080848001164652295345759632732284451310534498597935313513080322907025569993008192099356936484955492066291978111660575301109903691851319002865593906669753443826926292381745782732567710309129293219239427185775968225751815278728858932201205340592458347865616338026550010901081778182534885787422870429346174827015906801102093670785911266195632499110765588887014779116152111183471919193291560896507850108584946487735033398894594278144462423065022213927238536004522234099094551722903547467088085454266500845194752323951282298308304267076711406696455804571439049357298008736318518909314736383007439372015655435644982385846489370029315130859716753573699100749090549453798972282230403660067371569225648136219124298669081130155522239426529839552735860721280437524952595826542922222356286662962072866194764220271501946310487941054367556997574300414768719068223205528470114417507288738315489833793077016296095547943837791067951938988171614405301935960577562318440443919035593713345831065961555396816820676153460615158745838972284045311581787466315127560695558019798282919148661630546771106000482467312880588209330028177877421636140066528693314237791387882665893245388503487948386508025187208854563416417586526968990286025358352519250391542572384269999638674485019295896696539788128306697176021316913733919532506060598701351440394567172479091704149340431267158210930051654611044465780084458307424346021911946115719284658027218474789893740140853673883642557479364650334698782056205723171782322313665974582938779100449397205014306210428020491927020241554350471416698528187162290398772832450371590422805315256841599008255557118671737323595076364457930851740136072868322759453714919983614354474464842033917957814836086899080952065210496360724957374771912182242307366254551272426692012372481472092203007015048339407463892912901524626513221532955235457210776624769369705511233740499770892564510481642436519502778459756564206949993050070791973625153385193727117855688431606413808363377915045368267947793945490651446566468515606757507949443946678925699587971744389674179883082889309837935074929018538734111287541230965631869804133432372496718620141837751689141475403497104352870291433152517993556796828490014453106400494011449256463841868930722155423562997874668419815336201728759117856029551296842465651333269611266137879952545128854275149025056023065006307254519040207878176005050084315833584655584448597026068295954489980014973704121054161842588734698748840427455920885200986180344136426342845834190975168497277871260762988990948495416383197918819162794568924209385368036737342082313172367581775706193477991623246758755794629479294649271638481160869879109530983540021962294256246477323628747296944085722897899180916850383373377191887553353264477478288697065060835897587940049585269012407460646996793579399425048780008892738477437612077144188058181087984181338041702058738259305718728100108376499903560303247889560593524959082460358219754734790669694561549472659611315396039869927874440491276577061695521531122018993283350689427094533091894133799145277305376060021216801483084692906911649896986539483753485730008744775765428896862838278408334377302591042085635719682889362699022283439669548403530302845431956080696701213886707807941282887746903668147314504761651130748614636398960172364962793238372444804193969590963045543591735678115536972098078353618712361461626238409251672011688013028887711569721355363315291041695532138919234843736919786933910352019191092017921724118726375600891149117746019437586907114926377974726925091274143764206441692645540320699274372378327582421717801709919385981011293071604818265902682362624975517216344947648534324066149443381413370478719634049669108296615455766267714214087163559253211246741999067090389168013100925174381761484201465185887261099042333384486667002751980370345955548485774214929331969625459444084688722110596660096804951127075302021760140395886620753109262776337411338642498336705328168118905893686040076716040781061253008120312831964724263610378823094960022713539762981470769246087631933936429618956695146528125598545909174881746386977556425904431583608876049425288456501638380529119655092493090005017127839774444477737668060246102864334668676333295885414739209971672562034156898037425457556746485288260006169547616252464377252047483545274696653804137935057246990352111212586054096064303322590097557611708466082406175147566274931931507089872331715218998518226834316839626823764785341662436961214381924626997200537982160741418498708600006530062200966371079103863463786621284490983040528216262323988755967638774105940953756255570890395377206795562509915341458415598729678267696281838012014805935132888611571975953034494314168849944567140762518854396884103538176886429985491873610024418536982118292977761534031848909332547905279698755031801639918709335621513733143073130771413943366645882865921000511799735315096840381772449155789135670964186516350937285060154077158141795706551741326168003933596037343887728948899437562917837176286878566113706724273193131805162419001971437117516159145718581334049721837974559886379605490375520419400688794947664626445609295251176715646905061331865281877530732201955635522420542848917675696934419689128662133796443505203145887089858352448294753330688643890479352939504894813706447219791846945350443012410638088457201267124390736186562038163809520904583945263635538234603148879546268038974587504880605790961912311109178403019547338776044446372239275721262887290950732966968517324619982718800895420863663256908248089472333346416433026122353380575575222168611074542008725134171215127833723892476627152702652400013057136734558324879017387523944359314658270787298388686237768251958462777165338159468185338331307668944406817440615570067300348332986687951092870293788118132489725997058164976191216992691996900093920900404917838115393656608570630107199128774415660089611234674956824360887632246785657092894743588555054295421662555520751278425542893324936280718485688248763686454109463874404700956134366809183466503971961988266348470255037432535408546372196048544429639094748699387533992530756930236159494672382462126096146383690454846133879830331967460266612098080193127653295003152946267791714357550727088327472109638286583390261229576633258973963565015396957317562843692953063566434869895142307508800336302415241374269966999991977924632646277802857083725016309916114770178904231269710384895015804035200558247508067628918413699089724814869939538794026697174579512444525684964491537977360170571396586594110539217539746001927755763050728619600640067370117067351986596566141369788772417078152651937521211810326987042552755484004472772006642955526001880984533187422592670814182584569362978838315603384722430639333953610932055448644953078012586860506487022179804286903735796751351283357944548129827486072184040148018546876874105817352525876544254408462028477872835929073868605118300654738581374125156428772314627125135109543577356574611897806018129511646480986133860067508371119075088543314239326324898045328582612502443020637937074765353159085082726177224864018267696730202373988723966972267602990411834675086388383189465088986984239134046971363867879936989485472971597699158378374549822676035106578442617190363974269345024910317346052081734383424970349583355507178469299512200446573073805303697101589006660276410564305487032483160506606798685756344589971057846790714818162456825448927609538495961014542372261703129864403076080240898660157741281806368165376387824991001418709433397084514764219500130407329058406442702706330187513120854133882834004817182480970241024962640423098552922745896667416466800382846670657398690636221601336138051606304604294445586275450371192295511708361645008233233384715787835743195735490416557396993469892103766648461407189536817223031814088691419074112096486645118668111837126587157749995017151240426706510571291336675110529483142025754700701178875295923010956260455973781513795442064395157798569127057441648478084919436811617661499777701605389029455810374561925003896264924769073045450249167558501812764674125354740082996887263602251728992677819995049246255458417448615299463868589231029927841797773066877962325276917823281298541798283883796669320692517412487055234484635030895703599525001914563242242519039679964991348049418475103632044452445665965960581036983529617673077604226806612412614919453573487530045323687657426467075689869490535325945730889241472442606893395637992132109261632546106285278737082740828311651027758651657053699398274798584573213868480664603566222111765258785199733433437276963272110857757362483526096400558284963938800940778121598782523214151632620271511934508407706291749599606310885600109014645868499797610927410411807720077566138355463989583583462518753918937148548307959473620578432577250486642073092904571048380649405134249175653204518136561788097366809679742022929136862781357215753965589471175153594892700524427963857558190389836213330895781650427188692676239844943321530508971354834297812295795993309665146858745054378460590347939062189462376292193889589005741183005683262900335361148248485340116571541186051351330106500695103954706704202644745216971540467398981031086252404842857629477101643491622830238030752771397119144112720718799262205736960689367433953735567881860078433457452638139959609100391862801614583093122833685440977351232986279152279476727601847778365656137511181901955041700945166471627543475716586112148582024557026133571044761932583197897628925548787271278114383860730272068941687022218021640084989885368450053576697175446268091360232426360967740759380657711023142069569936445104311728677169780048916465571956976063046059838656652803719421802251027098631788982045469144331967631209342671113607185551178721928546519871947141378481724306207907161136003662393356984994850947344338783259428683459117845474535451630948549951635222364095953025986671509076903722923948972608822239131939462779726265313987316612313505989236524073499047007375198967496637103431498180656167788927948073417259036867431948265846059688490814145031451478703328759840326062226319739526537449942072067737638915996425663507446171050114582316460687840492779456926632339785889296002373534228536744255170324188821914971092052256809654402554366325124377473834716280777204135984174111362460438540836483275545384327423023557210813801800005310440124402952876264865860637005237576724758913817034357425297116591196669342639352028368026956451988475606509902995018296702790939475620260983188966609399041270194686027268434615825102705914187958173153612279373757347002607420538652959141427686410950479807747799097305665649278166506599667804377315038720511201632156637109710207712304099293633358170992669288149942466569861885045682664403013332891169643790371699226272475725856506577773680475913186615353537622622480653714926362011737625296392921325020087016750443112076571657969433453402831126834480364550685116259353084928748785880566608986213541027443696762648981175908214890478937017928914316624188478772208684951392215471553243737468116047128079605762785096985439391270841574534337167436916424699672435611489537073808709850733150146453000769933699490810735114777454448164574108481001763034163903523245976223318204293103516158073910747408152431234961481694575873380849987475085984021115665681777518885901560901372159400248548291285439696485391991443110023107185284863541503229264600645135400556630872883864643528632169977788738084075339121025945705108653262805630027302197022538759136517202136386502119784691792433760019376247362602804018155752212752801718117147049507938207016105809248411324846653063317665500738767072310046226376465887908982411227878764462866724785000456697007623582148110756821683979717084927678520649814071973050798319730159010004910119809204615042755990286695483425583082746504532064240080087322360909444684845370164069681859804181643588013598037188149992357140980857137129581107749327223844178157612795288901065964009847686117508553517893755867999751168971829156071070522019140700389914630554254936726415807336806382667403227689937570563259303698359968418677987693582638639986475355859526469062615410074160260756038104160109422110924390978252226697333637221349480639651583392214997229989741005718449995971584900601462461627338613227682160491675768416067403643435117336788503324196267662783542836070027932688786333219372431622796296143072217960444615598163732227930521035007111124518358866580289157809857968420420442051824844533459989618281286477568592827645708303380634234921703135494687649225122743751068555152275739738695247152683344420841827485548010314587184785667246765108539314894924136921145279245362645186228725096036992699303171380354986883928132411637734362292412270216621942038018403034316165629834569379524288480047431949342446441433558208406410875855286658428444180197035324283784638504169138799754117941987087851297063551383480732856521206145964876583091567176443199860301948314246659958051449876893345299574600086655531446500499594586807568765601679880057783005284336659289391030235973433721698897330591699879588128889474796074934170884442150033815875378095390043180360604610127310263829914938270235761964523805199680852206350282072961005351437165291356614758930048447742252495690380997579709665993041224438554146129150757025835302662377712068731041613165987746471499627901694580300189717006374404483353051450417727343060946501994610155530364189163215012691468296559501780009833851158099895063831296845679510913702751015709450281324077301699028476853128083837234305013916599139258459106771026960579900499654496611443050249283228325744059996494266602548696337068968756969005764884048765642671362182556148954226789263045320795570493444835578506139995366837219467261921575718766217643442946159841709986026919700673891245783441620683428834181809893641042381945722860952160723219273056391639137689489485377524957134697979421026726910772477611514753207424273125444374247574811240926242096582834684544266735242668300755683074034501813322070947457987023993022670930116345033437319840631583418351864477667414333683004030499427421467439345190862705096466100624038947571894271068107431804127004566230411232290030487024872295697276301681021529564231303514386459862545069486803275285115441760454468827913605832752125574322944807380519739391784038785003408056430374377814413047332846841437429643281326850245954436566909945141610256923181116353527355139249135385202598486862444560370677146805145543094691268369731014903362872708360156462571149487605510045846671853680027603478383141709611554690721655775688242504539547643955203727199849500619351731617819288932125721656560220119093940450823707562519445100552380977560456806094798993228113505820235942587303434873866012261859420378432139504315924433451423095558979440180993532513264268738587641198825451958993618240548535751973943196453352380865861142696574764843159953639538183429751043248799273893376621083098026212069293823046417151755348510791834136210687174586020712932728611748328643136889903248143140322118709629846476727631676372072309979050929360262824999789534671761405332075659731930110502344507242985776599478402097114256929892650212450091114762153928045807693709451388486765372178027740659535205872516402357018637926561772045162853206230926225351518028896504903059645516813966195897758832742003482841399707991605239110230640202315470714448252089587742896955284597893388847407316453403179206082627471983603926998128894287721568918314052773045369912171071128619060770770094704128404683170399170088460936262231699102214294090577689724722093933782156190167785102622476336054489119010004878138267535244804069919533406471936379520529548801070980617513352119281540389511587462153933549366140205831683268308803874895748282219715427625038759538592465601385095960939783334892240172189803000099845520270141421853303235763728893641143066271460254625850170029113960850243384623912808807562297258285297551259042663278392468433646782302994523894159282975488525826912440457544097661926516521662826159012176023210947661604694019553592867605036197583801721837853135633761772907836569149939130849542564764501638689263422005702677176156113115791487720348236249731698189581005505669426800045422796888795447311373114248102860263993893446989381774029220142481793808378955267048293184899360387111908435809967706373058196380825676759816621314185085305693919029187629425596324519845309872446841842809953498229826792600801468785889135243519315852359333340612073721767119653704804885254970142121454647827457089052936057416341121190970216891638561282446492172789817305186195396854710212368017975443688214062801015848783232452929328495644442045746972044482489659600391483928553890040702602215000971477504381812691425876999950032337286737222293383005996884069996322484199345489995625572939758175915033249389618084747195122244484962091804479776203495493471440755194775963900108279856654270359458599499233282827117180501613016872839722235007166802268601974375496231320234355052393500462366996859143283682076394589317019438302675626411305214862794056103477998510009528349490404731599129465475327218755850205805551559065588527612178450291409425600319266884045237929780535171791790383608043240652897922513969869824468974895146096067974324373450621220807356575870079318411296602547053897677817083101509858855611724061060495845928968659133439530500623205437210974961191554590652580796185537428417783515102595357273954242366334329281202307947813614944584453242856419591388848307076616868426903105035292427143560283108384182908886650664733967203576217585726458416264205726501375096263059498395602879968266292413165838745268522920703747810704979918705588586818312969270633212612596324573121192312050879259247875941099216509864085403521115698452272354446325655513885888626274785932720112380517948888280900003481008506557355531154354263390326163222445360768794093655099703720693250206159600043276697054737015770368197162810849588038857100989236975608592444548071779144029967191940397339697106463786347420251029001483279299370152561587782215066531346474887644892509092970097240616199064793944770285446915865566831359179563397515782309811259986658657646056274943315550149812826348075387730598865252816910344823078615139745510449485791698243307282369959462616502549552215247139812399352866566978751236536690213669692432730732218309761946967491986281731692256787850406242656218154883607575325939414815651028241932305903145799987560434703671230062620350997637254561399926783701958966751865659883958947609091508729398115823221010033468863661443829524842280895795385265475696986359507953224452059677855030898812748293973515187201276716184493356542849864780585184919274331972084521036130583962764029893189381200027293291908084387446444876761586117685738718823508917421818732324981967807559560044124948480100919197917896898968810883919427941328557990397050827274984374465591874671201541242679183724524833366355864585039820184374344766753173304530055068504577461698045591648061190071796306443034481001579746173462573076920525797972122096804667522389796457369566317383678218567452741962542245467954936153603044630960390579120800259434454411036161948386469641152236096050340123854306638447065894973069544167713271901841346034009208941456082572407164757946089579841104330833826087303381990725220380642909210411731834376444356259083237370962450698484753663116925708040670447174044844752570291959442246754122067338087401613737860436462920859446817154138810725947484867946397000748475422177921930987630011516842715423888829445226030937765914309552406077247370043041776836053821545607632970116263839697661214934122034299886616408494864544616555150743680868417374023984430421574782922319203316143744824653686303178727903796806468213140566528814022114360769883319768604269619475307622411353759014273138228582720840399279470409407670907986690814798499932014414385671905184824656193248996168385481333294051621655770407633301877571800730668667091580268156563268356786028364056263779503421152007276753363948779636931058093111934641808552934119079703680820954903389843859703976256435125272575902074223901925257443911175529122741214039690891014463138803827709519843101207165999913011276982831336224361322280840002868002044920345956063780111375800740809561719957122772823249719650586388640957805718963520611907373500085570889778074245252199654066538460028205654191469568437551902198008194110114531483142082645512464032463016597557087132289502783498728820867069817422580037396271220958901794427514718560922662851490875993853698453128725517491955802260868544651959648234413781760886537320070957959689842571630811910617031500079911485635069233894515187345581848322301519314431601129616040653355937339945255479835208785655128359109409387284854100215921016036047095364778703667755260894966109282217672763736565230145357672697012430384021595678987712963068670535802341665624443281161652912649650629496017536312572919619232555956203872918720253669842487010255951851362206925343839887686235137212492560584709218623831858159415900987911621706548263945571388308463275923927750879650291919022323760833042534254024845202785751783766624578645385030653785336731475185598271359452314284390518166139787653248951894844522802309957677626999603192406341252169020995207291808644826703084412430083694225800454914243144818641921972661636974834988301192795955850906085817303638636472450498732870109524322563082660440410613526834375279388245623490621831535080584581079096011463501784386765714829888144413787202827996464905442846826970355743365603702658500330126100942449902040716837436915593856624683405458536991284031422824584311793954304808220070816926552212754880990875814745668750953024789884602723556028510295853216041070961565972111407037296158068441202408955615641299579443613979876579906255456426400306699595856802583743620219152869988095472973023167910045437773887550740025444260417077049927022400804146230299119155550245069740159534934047858244593589879546464405538241406985291674994409765514346126709068025453742328788414063470710400251430640567674621397944034185875768635717119671771897703063758900289191904320459268138364378753726096087328724621389973231639470011141541213176901326471791630021898751628730400025222667500891269712063912328485667769452517500226234678096918248642222496561733076058886265271498407881756464176796779348314133165399625774064420105613327976140621878758239063445169114743848082410008855927834286404002278736672153160690738857736824794824526955162371675799570140661357639191343088124421175758581402629071238341106254951832338092630319855272493688312056280400244851854969728872316867836081192579250714248288663320702193323316449814934387380157822784041291911121503645735751444000615136364764277069367461230436382325351484302585674256258985855305295513074790673475620882722448907374285446699488860919219242121636959753583612686041042104396506316761868304799915605480794169101580570617091005893535012773631833536810746543787995981574069831980972003406021457825864431667994042856710569420917687710393352005247590289184747838136457999967789599661316671574185708111616863229894737870673171106546617931061623297906001214397869344308041378559909883840386978714760015749288020165535573155774515198081889589211515960116232786108624841519421305141188637498786817692271663252204133509818596106884950217731422083806490640330759807171667112780510694946419099785152317174130343885893499785881988672346129224644641797855471711113414696546496864717105373219515676472334742378650255354998200141928344663234101199533711035562261302404621984505945865736697847967889056170963083030831758441850513129795246584468874318431264736971918659682613969373254222943969966721528887489280218194122116050126514378286208051547156835687785084946038501588673596136732014617692688989901052988056116209195724685612789416569464834037268782463748448061652153408005866585878456108635776458788369084755063254768220169016398674680890200769014955460106439396450961349318230311977157685178278186968686391512861294922872254707784840773601701720120240318793915371779002238534276116296442398266931665845337516623579548970454371493864312603057603796583210314653183301690760402042366791577512640478126659965897691474611411081320357658168867303085260672750220464105707868220455354911370386991040785158717115130214647219801985925583562514922741329229635108552157491103041298042038700438742041856121197154268375944764590257482779170602394452544561319290619425191064963291086867808766262928323255534451471957086239871468780320109800527582716956365127175377922294733604387625873871816767177031187837688928848291964538851586931397102930619907070759528861474986805182786265029614138573365134082235817359363984098014320427686913381470152543486806702759818005330039060729072795696452960096153709574523396612596014227059763358991042784748363061518170652768165381253824630369694504895875389594131179139410975712745419065996079901130824507439025895891023521728204661718647837186494901237680445007361778271396469157461478178583849553500033311074646298828939715552906655920918290808923510553188387022360155931234320677733517702477932497412270710408893063522656987911780953130565046720852629121479575834004219435119070781245527750390029020989606764239887528259354381181147394141846899206366010562839824972846198569852047979917181756502460191759634778169017592334261744806692170776925734456346948251532886272620472642244456329300131493831445096689566684339910290109781402126053141105258170659835103606203097917159996871822847906242968735708805146086085303508398270506154298940456194348742030572129877467269653766914468472590591833580270086698107914535948830111350297136521982704225068543295521414560061831567920879204264646777713035856792914255183081392367136481436487199417483333200902005199331552397266971774002038914742645415214802875315785610941346042509929821297307164110337813199441481279164468295306730596850145393063555234699251764344306954756828215886974958136564960489036893838494624530735037599197440408568642746594472499704855493400832543637764122633126232925890535164210625605632297922240745211660343975746805133521971336820945878334233355332628832219310604226503119898521817385833220408607628035073967986371050489922649226474148990251905910147052184078734233464692280453701251073000658747891821116949732086648420545259132904477173138179418821292657357071214259627450541954798272708636799230536963104134971732022038938064824718243920594432180869658881245880849435359223765839010136572994510347035507893959190672148971526668117556744931016317108333354814820111595879872792531681164655496839251272573973507349579300751248432900385547503580025035677522941145014875927520402344749231001941598766799509689150205085977105326231290779856375824657444894414224116882396888138411301583527898776942017618175972536876555652445766820693122621707367698755365379731656976960951199858431352343823879349084408523382183008401662621559840161103328842504725860962525348122154273319210813715382081777764517495502908213339508881462915567461920214643387560690613045292242666236300900604032367088016114014857843105548025874835232527577047498288037151696966276952789026363069607112804222137091122800783885213605618197884683302008720081226829266945200671117590910903044492184000835186106758316773429841202752701723170494132357809794929410672028544352522461063732352150086918107703664749940671755580200379079048592058313434865667195211144963743128749228103044237983095258455633675467722648845160772423546770583519687383960229188891816157290591622938103854262323297510801991956410216934610077017112580491283823707523806715031455277426896337864716852328405178987377616444959356020902444843742055745662786732783800103871589985431011680517783895349764746690033170336814001581056393740285769096548687124497353773324934400010984854726762829556350688924353612684055241585902262745328360349204111509733591947463331197322988695197134856506087242532273988781967026008740239774658258026190954526619780722415515784576437601383080995182092133027274349152380904437537633861667685556442626182332794931080822707649179130502007308908585995181182249695208031484905711389049138857163126080811311470350390705630638258948246022027475492693250797520113851011306632324738032442647227549272337583385479625998736396994021239380395270267278367293387484906112126793428201825940069707696713103293949840301581524255193538957524030347507538738475293835426655403988370565022662519203677118892651922474616490380189195666824707972465048403307725877802305277298765488949622497873531288228471841394978081831003975717042899638868731078178082157564492786754595553787794500005705432991145416721866706859170887250331071699778003417856684604959725465755018748611521627007679269383315485660187641880747998987404053642004294553682374840982392571722189216118445261588458941093606833258651698582754194485880788545339141449160107137386246971086751688377865365873526415770196034484295573854630504242736118093509538340393297507699953468665099492024796710136784203336426624799958274718404978867596011157793249614964475203797703184446564580750877860061699933188275852237360732333536382738138958200543964856868831028953149192860341097985235899507688320020945428835646990280248378844108881691155798791607739945660884211664258079071135687052202023036784409700310011666062033914448628013749007305905006322301133704306857714143256121588582861352090146736921621034451217750956897458710776075928289791228804942680566181383897532239297889133590641343051415036059669274080041369083166322749702274523570131067150008292517221189175254615894824076044742016937728950318438374770820933520330167630625322881848057416731939806139186094955935257479334721702293526772162924012401395211784953275972606957424378725012036218195813039835686172475495273616688600999003591232498688151518237285330437875840907696167811771442858585259381519672035032647125691938427938598124146130800646505193493247954199268054823485638493014620901180305944655445139823984020462172895898329131902726711212152685076187016772030369648092167177755527563451079632639591168436548076121634757290005659675995442714493846516083127591132811367406974053845076158731770393149585010925274149393391546699743046025738049504132729389559286558903505054370077077032639697256686582913910359990858691558866287413366553907130763463391738352502162071087527782792541390955748209076484213987605322146903906515905630329262345869677912264136237650384703471146149797755909105820023691200387126000804919075924902907387416355573824488067164069337832612553304076758564924043329975821004069864371013715530252264748622191715091558880538365985466327097762872943202057173976639293508328823151164071190812784184022664851324426788948296611789855481124887980977003197685686304650875687540769183249762431185460366379403034041652441684735603446904774975099632048206458461628751267588012476711090769635150617338783318807385560818685888576619222550847063233912347495428940389976784800940460661983073046521540378236032651630163401592700932948980627912305634419588773171428891702234715189423914879386384654938486691334699961876921132802572235081116244865983806669521660686271254521803462618755498013510809667904959285392515039194743384841479663671435187525232871604209852880664006837300242969530823377663863886320723834894788963992970690106102649489473852359151729438544660170336497412720790720660311008322460110915067182240952640743760271198529538665777127832013252601773947578987096712163860761924497590229800624020934604521452533742958188613948808292159593361344333636626721799730953157894571370124027285013104103064002651384584277183675431563746990597084227027363980237716936332813266968819800720277290709498480637739846331975626706058391346826948062067888091126057700536923578785395206808181512563962810940670225093267976202455515968252096868818108201167217681684130034458645716405623605537814199414088298847512227784263372876205012540933509187835103302629509295095966286603860729961223667861819391280127489827121612674098222600825970346748040879813203934259798882290713516563237058665127830232516921319368825082225967937933974223828396220899811627054244952529819320409650806003438889016359671681358080827048255105220271912168291910991651331262196811830925822378312454775671621360136918003482017090838657446409587688262484762163667717781497161030874145170384977278175887271649549595817519043231200110378402624451533119144869075971197107308521374759671675753233459837745665860055576319036088769457748091369912098973716991852400882936665080209614335616115131694839502463123474991071250862913287843133819975366807907749328966358552419817852442068284533257453433270408639290213907511232068328907802080524052838597051249087875127936171119201660063946163314047944505866593327771162408872458715836001389887180050868525807420485527806390262847136172362278767273807269801938941740673054789752463328907961115651111743458615427755089442982420226280120434038437770769576150094277326726620836615710079449163276061001646394976274613310738304731851857158159009304673239438320897329997157730023532555443867140960733167418945470196253456431795640128706869679544050077252996331643785560878304011385634118153972669383090596856999084380376619100783779127785593639683075229608632312469383141394230151148259482846401820495868416263509532055004417121964833939539769969670843958018646019428183347438030895910394417877063634504468992074635806128746394547159140923637937859677920797484019324072465139171130438508443710777061934444242869961982821821157598010774164564660345058813851706498834192165341812753042033866675553303773179210084594737168624390750267063177318566032769756604427755258097760780529836891656204715898684476545767403879795425034467310127218901462281729717998816845303044269297084119961641486411551202447486212955611655038188853121265677943129127427184055539389033082833318316798443350493866693567062441143275732352007665348827989392155353353187707827593026852858918927040626170945011517967301795840240833830535913272353636357108809976620649079267327060446861011691354440029144987995814558211000654306505581058665179216928150335483344015300281684026168406716837220458971237682069832213978321781974140942515520380409377716916761662818269543440545414208503154586106408157149017352358997278906462877341863957335697426799824115211542208511303854956589446595648986344550763971794342962232563082832832426075519096033145245314154478622884606693453568018021754602892250793337555954742297032344504077522451021130870548304405558863508187746357596815474943273291195955480874910065961191466687091675397464608632308381662888997387457214048635395262377834534271579075632282921948274287620213784715927974796740533847474924571109334114762123114133936911294962823590068884617717808372546186667941137598667152853040994136032439446716106732174397317319267565435957631749324966691752555415735621328501893696832030029875188189397315134483058375535958128865089978427821866376892263503050173928624412371207993581073533663777136194037585382949562291781636123662410055829396205545107712770926352982844991944607533683076498644395366079740652891957838179886321752561800566711823566068443130970119600537519954267687316904057904749804670273681637421957824583070687327521593688937652123035442572452588360294792894267986521623805817727921789730461376263070926025823349514861904952670421737919650956201528709116678866060382023543661591661774182984651552255162335071558101441105330125171236558000023345669417699436349542581268943691432272999889086672222718484353174584445611660770506382396922199799441378228507104447859992246618030801710116672093390111575332661329527873131085028129566364962166781959266379172486990958680392052785480972427928330121212029545666406571297662924637558010010065302699936249961650076344309823829450218402173397109266899932996044285916989201475629281010392276298996075519346104076639141696548424730874481541235480128488902975119760789114027232089771029231960375157185452255829072659440850540424279732291810874691462621724495432447241927279916750449584706225747823422399461741697682252832358382917204408071952825978441324535354883212309458883712617501759038969247719398604406759260697876815490390947854759589653904534934391637174177857238533785475704912549747696968427321532370905475132779741580541708068632987778247053574238314313416476905753065177406666205221163880763167355720816670183228872054675406213349505998137300444239538914992140804276186619007846257577635630775319174763854932368487050721802939351695141826778295260657022823872463621883917156277652049944172922302072079412637926418034059508837152170831249059899331692806172220596841715174965606106026316667031676198089972383042657912725545682238401468636316798024669891163553993883621613324854913317238184359584832799203151323901810344833574304815073665059438583565538983929050535896466328193599652089167072112306240260259008319675522988893034772796452988825316274863481690257669662555866409096755673817366670309436144997059574365210596798416768004748736771007607999022237151168124630008342272691508585205429325733590335699826017948204438356386552791409348217757515985304692953097518962992172488334149461010603498011273031972845398829304073359598989644877696461926656892301495735328991532499713830834836571364164480810866805241361144713928021737070323376503337237343430906397505438426534912151426098207518980474459081170768294489300148609671103242626324666603719965387578877508929577437073356533120051537013737182789890320227971806716547669998370387361697502287562898085016709844829325477047308626576097114058748400286926371935853467979924459456220767091773202028544194829294448689956983386728952451482934051090468853106714157016883788831080137607978592860210442298483878782196237697386259428164269155039913421643695556043861413515784924758861359255021057050297190734907099635141305964664705159407213700776941474835594904094813019255733552475727428710643651416130940241482340702371172533719818075168625546295615675705750570262824657017146464317458810858091012055450476464745012192075213220979970105587065591217070316942752643804983893279767104540587036598867726351535436218923436604017734064857364629655038200004130582439660569525302277751977299021926015804502693755197866205925960132271604345902083891387396777238584777749102506805495021878963995581944097887957499990795253223056582753170311624408064829856113412353690826686673729062202859166017009567887835808063882652186458533802655975422624844210394334927164974603130750958856487215358716570088020984305340845011327306653257307507947906752652572633868957103859007329501233548417003436139329908159673515443253673873966185833710236848735648192269308867853813125534638095481267761916360977837763689270704583511393132775098545384159308832358255649566412583736969524876618957232867870050737699778572822154258860527190754001111040471669194511460361177653491670956132244898697729957397120676956944248289444261546945151287354878514417798888923302456130188465454045175153597116995057966557241706303546670610447301203959748099267257977128940083449789185972872784012341422268499790411177120048346691120272264507211284457960087810559228494271150229796643328130312388590499514161911797797633124576607662389539591932954786108488201760729543719727562786018081203244366337591471329919579206727333680325029904026376599274170584432378689564102474732150069897029014464448334590379715498981553038224677899374012559698995577153833805080490516115976764810771431786869218786900576225649959366890875845956125054246105906482978708770733216202163876386672196156937905940204201220174115748864275720988382847576264630895961966734485269150701500859958110219429876492081494309022642639166235982280150484530075610252824623086101414679844126269673979083314455069044862153518615680308515434064315922696181353128175456651045474720270960141307580646583847461565775060896815503560384233629397643912428174321067374253200032751489400161048439638896321880127804030561974036377146382145087577976471018148504088338632484178934704761316743383351605681463309917493441324633072283533549185796192282753902536716524653386515093285695411687478650946345622697017438386774944880851106784496076497149516360153058772718529217760576679573339177403530406536058888180394724650962003452635409283062611194142670991299864759099733694477412920770753124965848090311134736700651970141448586007683596199352102819095967556269511247243388836578926675527218369557942631045907733285028596635927747989935196331783725830481891475438175344907997251175493327738537544147096661984955322875363731834510291468729675656956059921303714903983662944205966507370431147390445506580311905809097412925742418210455170632254348084763152454671178656893618631704689990676489370346949095013198899178553136590309653532941564455144482057547592406168590467963286708024479272914839180431042282838381536208592133277951536897193281855144604835069373019957960572847899493069099789457452355802825744055129145088753071918953121103151625837131031839022323100672117436109554271588187627832669974246977723269198679770285061322721543778352934702518627883928381362162152614836016348957634290267097250022549919473979290012928445836201352840333147261172171516872730029035438525964249494504080629269993264033331499059418521938647068062274512139260169111219283700371034748494146571077900717865555378642831310970840245847034920493928572757715476804593197778925830027298972590124135337805013214549976976057082088911379492273290346746414072097001401417791466565204770735207545455283884583032755693727134094556414728963756594330063157671167323962425205805587037582158857253219885487137407269808843013369882067138341150389918338046571967354880310879035007549517673814060545873004013341308000190305054166376436313103815810653551385451968237885961111199101341649128899241125363396895382828412293551684101948947815870129240886247356924082907162033946038750065204687909890425403570210800699553078042602540924127434407043539726577783636037836537813013341395695660142823831243347992284097189613489392764421309469536857463946266405094564470102431716208162694428428659081317501705336948075723755087530305120073427637516652028730520819137035158061190114981385899036846910211170636818146451486797754489930978354935082071261319076220858501353563363380152969188884242504059406085546615662800762454425363642403647794875149947300263191812284773498396712912048104424288838724279517791397501386438895717376300950085602070087736440270892218146916564731516251268165101666113401438016729626769243499251893893544969994495995527134054433164369641861492829496286291622393592709446905549564984458820311112386027008146901746830038295743321880064159327993109255793035399450677222494275547259056386576674745396636756934946874818527541002702303888693038408586917526481230368033356781927130249223167402272132851547442805177104535633397178113462355365638003379968239074301004979621621146436399714933709219664088898684220757371123530713884113549438218064974061431016398496215099751806116359330137108855414575556187309669650820858390211841418055856870739935868316227901801642664232528396830534792636382507368154120573079859532640300473113635490893341812021996897386266244495992936274731162547144339778079659836447756833735307125252327116213100040509217289032340850736531344206007960112854862291493085850259846751442367202807579382056864557498412277993715505390419911861381789343590294659205371532396443854748592248279223602078668643127360566198900042395619877931574450619547379771220630666520533191386644775016315691570309145898726405044466925461821663978618474386369717830690572147785138614268248923073371486335675002815063947002772755610365540969586302372982790493345273790591109004946849950804003400427349958992038805426432199953043777460167089361643196977121472867842989275249920873850783351632108227414754351616203905581872247029019907711148138425810947524922532638082850830647886494007726714887495386341421005713896518518694867429106378771613826882370394537827805238865918811356828982787548799841274558079534280768648609802239100412001568559183550967900861676465621767846250921638522332530969754991567499743780394810693731289896124905159819638529981290459207195863199680230615107766428712816749334758860835706897670940361549519995620747319743260520493945640718759179144711316592363853007666800978675535756778331040815927285026379463560423555001831875947775159925467922082653631933026501731401871897238696589651467822482969361843444715595560660804289157619929550446482798337118041711145196466728072889391196869198731708312669258042653440599753458943964428432328918895148437399928717360387927585599822381753500684830573527485934354909692017105396599029318861597319572403548104471834160721091424247572080630421594996309219799092111074973811626023070141915219429998216388049274679373872580487826635312479657369296515357488409769496121481291194629012516756671409359487140109300980675054161857534669176682469998682863199978957445876181910746227242126838397544600242337589165342846264539596556980113635852392748129881753650459030751268430958705828740393700153907873119163622270929650748712112801852078649761868181368469204706561377950899442713817745828964871390167157988186511746851324270048941947743601257444480900811623413475006944142138397711372701716856704307540054473599945598936483150188536928161021595343522126546226120167578660335211330804160006316283886229690430986328622456427539031914676184375195374779788538167580527870593293161411706116726673486675927240528160316205819028370467111818453752822146882473031810654223767425759182818648142530992780959411093300114361898598388036349952817521882079578168769406662470322759641431240168933712772147996085160431911485385060000430792506646604029988817704757743754606151144542392122678227499470557397831105260482929485424031623989591081798416151798873743051848187088026408670834429101704057666516161638552875167054730179849716271335076533149538863291129339033256614409705676005954425975669493740184874721225435533263573983569086558857391671325057047039861427495758513300378053031378643030135729201159283030709307148623368441429780513823433288402241934249591715091875862177463545715513518244270947392003505796441711806546112606918756029513153022897019407628889370120390263326243133091570905478243504851512830619260491858630255226631635379876728408242812233475540226894200939165732794185647407598207129846654321534054882808922319093920101890889056110802814190757506808895568401883122399740025558865219021667511660969780268650188729793458436031654996219382958220499473488531542208968918935089875814127014920924650992614264041972843339587943493193930177880725958500419940286641184013426386765276429963674356066454656937848713306804542928653373953371579767266846440770849385568662367123286606976471026548889182078222386294645023512342721205118943586856898239862655450146632368287183019427486062936050436373745422142759139346891332103621652723706505233802818982565174558437364474159485819503092202169182199097205210159735719465957834957379746933225203460189320708260571063962231952443076033854604829319441035267319607813625781725618211741771762138677194618103679104939169906624506270607800582413989519717222680622307265266756124730327585308923435136308122623960937082625031822213305775713588040509936496092880728919377536008247589599079906415785397658802156998186039962985336419951654277257473649786727952683579386619590692616271045421547684276013622228397844081949378939522844328270298295860380921561421131642905930579709986752426110728187980347777122008720832800607493645807288763628227033838003043741403504533681357134002217328356724154982568426055316558969045522818977636276530624632512523770874579784649902946828251051604479946416002303114949146971577246326940178231846228212983358553867536944705750814033039133193411422361202901578920066574814255360668733269311076267720854167378340647913935349241999085940807344067847225535880830310331968379169459488865207635882932730468682394928452061549213377329512782336645841719193325054775707854662470951621397792114326883480933467608213920743247147269011636530387354035359967644012293284206372513720158181222849012490581671623209000442247118952854139922701870681184864377775563775621203702705565952520942891325005980607095217853098012940668812128990079944857791112722903516848855643961466514068124821931204212863559173933879451862551583799882000585122509123422473575949775904819740507906916344950563353952518747000323086782312463862741461737883616977978335021242168961257940067590922223709166824703914339588017904097630631530361497359953139390571799604579595352619785049558370240118724279021249438111835156400934661912878850317333551906332031292160810405066091994589150407444206862521110176045749694659491347169201939598168281143971097557530035802594199597406368385117221851668344310372145148807867174321458205898630475136179973402030716718109667657015386797332669422539632147462899136845090302496100812594246558420376341916433630726333339224588631998683993795628248870199019713242164956998320656176419282075842021303720964534622918469699501491515932875847914858210186234898926419525716470491646595684596708285405457725737913565534050045049937683737796220756445182034441367417790857966267254609416266153592893689927646170276472270123408416002785894554836987625619571149212225560278417759228808412118150900848422137292994757791005747477987364005082396593724163138501600519817300584965467567729896915755216404876825724062810145939763688248154464512391192028682459661342921480101532509119106893017652992654425461109358849514572948775831868202573147688806133163102798782105192909462209939390804187303479348850867638269568896572018784313433731834117349944907195638148044148218810811183573937688805836039701451438172076653674401266781180347667571925796896532820572408265919250932444508909719731288646520428160519901155196867988577724236673745075329225020862592624277033578135665841093850159681015240724129577512072002808419298910962844426155642404749512225901429664703808046990201141056208931812146561943089926146615161440450095686707284515610527407285192541726938868649673565051473104693871821618078658484317874583341756890367042276618179306811566629430668530912931282590104417556511088554129846706573781463383968989590062340097001504568024588021060929210626180006778927056467915492711283586946916515832927630851884986095125910781319555798029389357394394927194919190218816094896214542394264301989879828425568452359873576236055046213055311656881139883268718362216994633559677198488041354049591338830381724001884316372304349323627957547245725110765182709384729030707092390155145203511305447340038284990558013917978068571356903083756794037447679791433339108905035034065947747300738353002608445587357424337376801190768526851052145443651538344069730644796305376007261745976017878891726016468272841005473131042145152643606254237642031037046914853753627859783376045261871518519229749097813694772556582711291187538644179402081997795544124134123465625420193054644669246741269629783776087695752174628192777711614785188850213615978712061057912888351193426578200724719387256795779310978347797077086839786196968748675819657252398922054633332854827770475426919562501969358899760236486828204221753487150199746556822045740218579773293375996004213930597588133007670376206778904589802960077076262360259322805396771649890075467382865897791689355682190110417213039338416350382068087392666495984948012348797715936499491848853280919682056478435418542150206336327514200981128150462973485020676417007474267978277610002932733953449157830024960534594991509591641865403549565789329515782892538731171040023388044302730965476776658545552009650062664354147469686743337495056307901524701661541785583706241134537047292910745614818392335188739395196780114978866301669089568857499577240632354896881466938386238462781414760393468665667388951035978622819330840100517876180055643187853213118397228104300837750107708446300839265197361209259926499988415373734384907522459714884407232675934573193699115108145689997078565477148363599821046869781245273833401123417377479197071708749704509884280245211505003619616905666927685342211081015362842838218203937335224749313299935677721913999805231181137285485891826453274637420540898821691380272225277405977555664423379126195818549513424546572271711187410087008018020510523196899121541866122193782214409787271789475019829765618456833556019824711719158116870710344927670768621764162175690270456916521687103572843670618405310352147757109255345251972992266597579520419457255625077319522505235522363857956168282898972402345949509438299758948682870233003051230500466325997617352853977373383254467888191562435163201455950182073170155243883702594391670977774725130831567677682463937395263196541591253597608385240501099199906963248498616233701700500592562176519725499791763562037332445584528471536750197595876612697171053842200125124147490119144151682110399709083959717165544993761635088103525249134906269567786889201471235067981435840677816653568026290349492306860184348420332856591611212172526957464592932624072632807785288059833094562395068087667658964308103388643348089853898680722214642128540351740514753085551945885867989961562214515330335252394188040141188826448208825358586558845185976400914640463999471217043092622613363161256788306806658964908749526313681940794814028523407496683431692221868446943104604014119936309008520544683658850728116759396538104985360516582733031204087285915541238750323993420939396730341455294422758623000037654158731691320668231491885315568845570741836328422660794218058278395131733022365463371416440021813292401811117406515472598243356942669083173512477046189709873866581431932661148547147539409453758454025876557370338276343455810750942532807038648277414130831443920196580207076867856051406505829299772366682504358661095874348602058547730384431130561610526643266864905135132007279284824053458885073634417172525761787608987155320482621827414279349957045817014560187769125621116089640146105877561701670219554120543683996811717655594218504838961983848596511477072201225480382935759253281941902464990133862172389455266328600700943115851747714413786676431212403166130943246674048385985373529777711844405458996398550872804963115281719823285012704750107150654997814289303767026843139563608564020029156445156716097374077430136629568484500375938113196760236422596421446853648008294616859918551758107482434858922916490675052095181970284242928095877662776196357189259703391769227759862335209933026958599378196185860029614459697189083323939927637107159184978334812920203874961230996267237870966275523555144186800721942913878121602667622845343553502101280748504406151824297811584371004059614743707611290089941581937148439869600246982498049574256398446970121758354604317855160762587598410651929106583063461149890551781464839465362619057151060588591461210496140863711266518876147325633292630471559425033303402009429551037215062689117137977492174703146431518179761200579498697992397942154551458582756346562900782718783020420734355896152556836583574091074754584240664910891850411453354084444214570670833027236163051038205561974559404012171498114274476150701014662639414999438965536920353314320957203264903449912203582072661750901469987268079295532725513277820416302634188874112805698120499817824342254430502778377007501975360445339567078223884843324115917876774330614883331108979308636864626042444402144659083929984667267815447305622374759000407068271146075422262367785019074279942098466727025523491330331608976821774702306483382290734177309372299270547309721732778670842018352407676474525263008914711742059749988003820170106327341570062098939467222048209084692275443472641621527445490233755014168898299095613129087947860265161405513946270095979253580296115584372317648395180106622325423741034419029594178757021437433124447621264656761621498926622791355330876861975605847784403975839992556758302907559658839062558822234209539292370899431949632219284382354447219186279727528390293394114870747459578552587491444996447979375036780103697929587780453195743696482077772192318400510256407288722785103243715481659158274817237641191136814553032616211557023508558969144298631436914748873066785474977045619679545929703295165898184341859549487775033255973469816900402155584863122741038581436366971710992228776831366415806011150303988826961715564034874811691790141208960617035754902805901607384889734805279887784436902480045603154443339743785118375637409194880924627701202327184807872439978342156839373234341413623735551659187711321296767004477938648173445076781808588707678593287539357274576788571274360346863344583710306527426853659536874243402876057751648609996684139423657402000410719025950073445904931452929187480489488624464569316927111484242768639509167407098173415094656004973694610300574536820254612715985091639222681091063420926892316251478015012035196497487107653160675970667866773009630762793029063070847056921356621417135245707129148749736722580547247389515265732856594217007714936466141580979036422351226706837182004349342253355709589372639652853124968868255415599571086716464043362193540655016761015381141500038476518895585918267408646303463297883434841497915660048024042151900193491916737469370918466904578099155915191732123611846631178896991134507676140852828820584804110262591050399896221160357660460266076293846306276530232439624120532292763630783292300080946288141428184109586523424392964237417689395357450653640580161189689885022851391543747616413301082562471639043240134961439078583006009143309427565113450567736435432648368048686297973713472755769437208631662640150683598463306831515202009362544945453691245746010237204859547354967722004465151132610377666158374147192320611957410910761132799747610231182256433187085143887587360230087583645713994066202539583647600075944963261092829451220422612465147993810680550228993437028278590016730429959201459099516647167031457906648638374842374771224343624399549909386506283530931843715267006315481513930355367490034832316426512513523211085497518355555400926033642062885722370028809861340069553842694297477537516484005527054048611731163520558479035497506178468939166897656688099289819118630262197527498541650971829853800804010921940465396001787829249702875110162766086967726315604200562245638473217824130037469943224857319482706254992638511922484837954098283500031328338400957615561511972492699838492933311925588178600366549888905631835136091092866486340723661751334188001742600185025180580943958796194162131690144293859905813494460884835481471648816140249597529639861303121185752982903925770085751661536740430594145227336999803888466640012854739173678530335411136817409457401232810074063623780471192135127452160665805429739338694282932531584759022911591839605215650499744881129068174428463680755335476306148543409851897831287804460245213022276593768088377843065777946697965959559612123491341833071216011180020111270518758986514516220499068727936188247928491684218002429992312181684782174786895938930077379094242217288479514145323635050284793529056505594475251096530713691781531385394785932768488362133502583693546986555540550601843974848987969439438121498093939134793901870576569891274493649909864235318218572364243316149495673466427694418291159768112024181323713634785560216390918456623545444783119899782776801774197160599510770952733409373404469805397045226149153622856202947024766307095009888663487744047230308153914639403929386568679194074786578081665543738068142347073676529544490263408623022171121976697187450059791992785010598202309826412557382572880516445086640384716555694344808965155930731276369934710195315435784128103420318240259722065658973991470428857498815337354483492428443201620560939223546077608905661099945100760457732420295447143774627740487977514130262118461928600996628450686445051409105765822453436646368552046821989882658632112090490756217575607237700584482964532510361469155268322265580647716168034776367638109531095509312598671520164563647405793580668522496638919556155123016744675033972739559298795341951685355572275244187328556865579416484159708780147637592396597392729148631134443670151152327735955884975003768477453862520020715584633491864549310131917012400706927924795568341637342182061493174241639570309863675941605896884178025382064840673587674240531956019203494245517122497712619220546903990213880889188577830208582828170967354843118018917352604165944792113146969917355515541719447077544830450941177228789837009046383238319074808841009776182404319868818077978871167706060492050811126962258873726677262569164618341306504884065129830726348376738968130395303094208616551263953960301325679110364139698350295898726803798229332863738215835868727712129910979868526841986405209929457429132717841763141448819728153785759354771361528547087608721875531386980171420527079638951165897729170402546934923415751190750412225893955598535881012078944835176640234479532282576129976576793394843503942885335086396887413661197190575507867754904878472026837907338536306302020031295971517755535256484931201782906817344151369857081426417987641739573784070558888770803363343778718282516234335651451711943279296187678073035431624689593717144598894879687660978604256148969578637815895786306134990639657244632977095858981938218731501690934530415272723088363078616555799444332164859246317922899789563500672239431073226235174711626671661211345701997869798387155574624377422031065459181555688844512760071617591486088373498537965378820788016942685661214297059125842283488191700427319071281956324074422337929190195663875874355982178801026804887503546369330628490736932853196101508349567368517518662512960879059778718116105420893030462712193326000396782994657770190336743670192034414659343992387462799672581821158518005343436798849921484318834588700532024449716849420902978143081333128559192877557271621950151398008655541639842782445188904149065730048081782464709893332221718734412660919979204160669512278094349348210846394898901951769380750139091322876378468444337417824504089676567645618622088887590533021477070163715721763035631941802638225265940782359445483706343653208269753695556552480444555014129960233076413093971092500099233163241931847898068548931025230663464474502357881515667396187565515854292539426894372393420110194500001525280816822674859763561090387370873056828109215921196093781050400548386914358308756439406047984859207444838525594054453354486246620191453264451739822806298421995777602671861672445549208523498140874203792503293965500627367204874619952788105390830095685114039281387466285830780325516389095001542736235339754235822112549476235700475866484320608134750635197463003895778290634228585823935958912696191315388731441292545485077069658968522417080499806195521050800311268818530926407101913238389859272909739729345063735315455863998172674162364926069798109360850039822517681711050724398358984792261375936442979667017436483608932970644690640563672168919037279766605113002317652712432378710886311619167289023224259130685666780351840333572785338118169903268647302811920493526026345606675575263955482221378995565655719484885360566492777709293453153102057064784106513493244252681379357402886523745010087036316332249293806182889864336600257367368084822399627110904084654563768825741044728698624261885845208060785903794249247351211856517808276526819971381067004253126334204688541702598692607444053169889125061225903914074812483837662814877446779170110793742192304053056580494762278271721757250726098593021583140769036238122814500240103633790884801514606873026312684563289434379639364407119570089095561594383055148438597283591267149640014696269133759176805134602127334121766624560186602463940043904552562723093189920359433150690511415919179718631399279712768132941770235668956715708604236702286740608764225313443102169670371723094100265580709411527948683455045450605011700674437736270996720829673133209204762442979002942822400988709268040406258836466021204644959356308126725606636028451382568708326398861965306878071298248654301558874561519593333156702528940693318503056438600117313874299808295214587943658168339834981496196843245512369865836470158416521958517699955364421441289869979166400863860104470121187838918075517408817659281750275195209715882769527754079685277273360858933901148806631907399866487702180944985451417385499511161009090254460178325886018865745979452828246346736875154656182941187463419776185686052990019791156680322880126637650175789043472262567551867695681864189373068152027801619684762867026618359612696873864581482250824307717935299082730497512408286324859693079516267533994346582932019914773179380861878188024894593905833308163467229404509124331439180007478055108680289668820280474845164412277701322285735964285708620674999311831306308660469016991466617513387183908142383472731767294937132956137288453524891585894289706747121026499780215807442303590609164717716012152151501897842029275879168637548733045734257225381521213963658185976801388557827512433807755958706761293649057355917538115855527107739538776499524965861438217711093413844799984403316981851446669993526276675597704779384030308772803035541896857091000431252615345943582836556219474802723363289945479802727223422493793043865903130232327195126978949099891640818008524217371357783248793794620786155307923595902153934565738158506884841584512548417059298227296758104135330267974538792061391613779163804843339991462200466078360145802301125751950524955478727507242663378887830349319828436793620654113873387626956314644453375121102398531332111625360270926484213525726931192336093233218915919859333822189264533782542331068237859448003257936137695573109135615703305710678979783851998467202656837923076198863181661132575508416876420693154710451936764117671722533580932965989307236849359960162592172028753020692962586389740484292780359794163051505723843106924149105379105044480547877144834107017041561154257834259492669676164635529818993034532959296361958837134078369634516708106074621651005281390542066245471389334627423037736915242171135598524164878927644400549929948224923967423723838748204400555777384848232725932210840332754952834704172174573000019291807238879867146085615928836562195806895771280204814739353149904655996596683196264972358830394644317679182633874486883932784028031558268983769092780831167395039093969315427637894447200891704518782047917552358652849082120316430412950350208583983259923998698119888303017637203584968623835420512725498981606443145328953322951471228584289746356736131661982469259255817326332651681243149310763607946508043038614872518635871461942241752973527883290787277754375827047956729551437477253179991157315708911114258357611871592862544851935021833314519307559232204488407796741970842511308365620857355666928018962979834639301077772678168737448856350871308842303275680967876789413306852733678278144825084378672554213546121618394349180517546279354440489772057346607479252283137692388082942696869777699022121532823994916207513953350416143401354860523373429852054300407963831237923836721254766372871705585956755150921637715159938797385169234331133561847490072583958445293320323929376158556749535142657966618905956735692547264127579646175737605926967176298912649465038009057198171400457754988134690660513227883281660709174571569558080075880006167696517772854405086048575189855249695081933444972914136743783671586502122763392140548094111825140362875427178768278477887590810001462224199441191356618294817945117327911448706290382754530521734262920286299399808654909070920900191957734343589387789782292593156735699545247097379299882322385187328648841863036419240770232020260018397694930002333153281630471855852422235212634411491718567025251849469886216969618423288882945759839588889619532087580994951596354469894797055071002698734956910571038619174608906409202561202939732974434315796009963894256075307564553593934947571326317137843283419984468876192810870013054985700631122289772683477610747938786434104564274666803921238059580920943716251603088160143661399081812046018899230960964785132730063388294889343144700564606931103877639147384100630722890223035800540154358915165497013878880488293201349812529566328908112225246673789983837477745871595617126966303579111000000592644234746241908843966779710188570134244438881383333067895260449762926063190800355053017021597288391278701970061547741073486238011181810658004135738842070267736999833866346709614968852419795796370077212111490945412862522093590618984233065395567807879147014537026714429880491268072803391013356091435458913230220109653196248397321433046675597784648306756375829955154902878853780974600393649152168224487973314323809107396069263444585143193579363895483034162599041964813560232669413329876680419947704073623763905164869152604950203359522019180203536165525358342769707280976918117874891485288580122308070132414032626146342011637602097697581948229124204819240170777735413184221496147091462048170725324807130371241864340657066016168801154993842231807490785432791371272705034590514177366657291998129785520881549996932888243526904108504977433129605159292046124791720123845156970325044203019657503186866193230592607398344669666256972334108540354624001932344155051234369854685534756719822220617603559053155569423712351221395672583035685469207480243330060120404517497887382687532984522318528686619735043346907080870291472772312433595889099471181524067962119712724859404572698923935643232372475764221192463330833254081512267526040219613189827947726216003662410697383598098941026032192048194456851289427381232815819286292423820806963668686893611351849109017686345094254452101485583153496889233172825639662878793233271448726672181250365254674028346731801666846661073608147901460446729502658781909834501186554162374195228710629483243137015141863461396911551302375976615657159132257589269877355761131736621390731445054478223054542184531680654679449542420714559144072569490954619835914575800860157235533058440443133418031549756834542799212800565300498692125672542621795264474268534294693418494908876582513803417253650915239183717160750270462531312537605865116751120060163770476406173554981962078581714113108494673923601312794324154315877091322924677271399420629895436930443975710342394698114089026067411069694397498853002722060316881875792893822535111535318997496768150696809873235620128980016241776974864625686288424592748925577136100872579557884918927058563024044669009504209558201786645149646941979739307244044477349346613244216947562824243231248751817793773342560352525828562268541532955790427317649425264779385361882035770451091619037482979616556619475495461818420891702134079842403107425605318755923443714578037179126001214671225684957996357625028253296330491423202310463257246616529137114253516661755310845280610918068833332374225233206766908366171969239322316742025242981827491730439442288622424257494997165191997778831461556172338128783748811488417057981640236730250443529376982343531090891052735216186041145080217662797825351226852144176114627124664968547525399197350050541833708306409293144679284130890547283653914307503932727784686165143540317015307109945746758305102229965860381236806807871034609772231931039232912151295112143758921882030690752007529380784911905983963915812166389705298847920795566725305501001769837582646331803652825203625516613945243944861939954511351764945306562945856812687679508856194408037450073164974628402941709472298983102671066118825130361400691609331839215318933452142209619629604960549309115291459117438124097605912673361944162647106151596864135717245958758962021834609208399734569682429521242522089863885327022497632732582287508032605994277877541827154597574065530029754136667015552331517954434453076172205400128356577345136539932338997193052257211183779486777715779043471472010390615813384952444999165435828582853925202398948381964748063254693129581032739435486567599599978660940540511833088108463658239002487034489189295989103138158020258752863907881769480225464570399822144334916211821093783159208390564233012080195420212676886945182064040602213668418176464573363302027462987031797337089458770662423409949917303242087485569397903879218809708237756397401962544035385045812748589565412706190379454325923954656993411006449702717801101366437358059046786548858072170234404726668963456183215002488433081037998440124446261114410624511698411855654482797173710241832115141334570981683334933220815722583344143374954162740430685054239753034114665832189876348626371886773206420048498527599166772377169760645900010074278099882261709035898157461132148667715563023622557095499570539362625358055365689206708655084669557888234711530759751407695164445460252430609030614118598656138551131187095373337701558527527771920768467537955688257809748676000338861817939636168674691341693282915473212734539224135858808016768582661026768400633629440174040599188665579407961580481279813990021461692834146374038920411253488704090549165045731351808728145444435858306258448771748622500598921875679772567146471302389788604598976185171341754445919353121332942304770279059087186475681074974864972167903045436961787229138790252289321024088490073024028903044085883552921967636836612879804810202457482056446324252926085012016346274997522727298385809967239914081948776745808890802906515872115256332595210556288459774997061055188988963952706869351588225177332556393655638020155819786878000544977578380257198873694207791974426195141578313047187456371787420617082747532692466286304368253732153936951858535965250925016055993799838294577947142808900779613861946410960153279663794161172221118955444714639698012753491807396582268160662711103911986317916993644692185246751087156506894931970308676741030792678988190253192193211928153102468278955460162933260449803421969101005461363503271275107060903042523686208989328104147675929776351568497072205113550617196676392986046154642575775629750494066973823596512795251575686074549355450778198926827869235815221006374095914096909553209885002453719023203437176154610005028286014333343073308279309934629443193512801708306979244117024572983785182727453013187192599578882260499989601458195549235977774020006529301753417004035618442062680310970440216514678751273745029115867797726637311678518593968104217686795691030081058137980048809477469477138204006962558087253674661017291999464583642822313251122931262334046865053243237347580171591347947001533297704023800200317758960776857578422424495431386538846862777839038028651902106354065461442028267089257549607098727808447459783400988070391376040319609859165413638331321971266206114355901917909665297188225116456913022113736819885921707968755335620504592093926589700623154722533179936810871463392948588085269295478009573803449751720884145340282946249959193427876761440748751052089340051279385131447814828300159525570682040068230835089774594126462356050892760631198016060776381506955518123669138738590059288903500810898025387851679131248697660941342359183363906702631318619487569650531316514353603971514905410777754491403011231682312837801587661724217759465843978514572942810989832366175358995542733459895798681663709818573973957633476008466939091272045705720732786411545017490311415862744948256983510587789676126437007543017540716351270107591782481255945399899591375994983225633122412711400802689202706457254411678078663932711169706825763634502356730619207572643227683308134683905067122507275683490802650772892087450175135949601102340320750922858772383174412100897129315841350559183652074951971621156005296422243574638770742552772294633975052280786007817263843911243592189792570990963469179290360625842262212714823974498455514696447965665134636489922613294151390242109791381671242095917240408125262132324152745714447067831324411252126151753357142620723620950247150276950044431944829559633983360778931951870037420486274873913143887101730261554228994073347810988536554726492572567280635344871376146455366466171116064602632567268182943011267261743368624900844821885111846596744449713807126000367828356862290927698234165929910721221121794893499221628870154198103253601619278819422840008614355628304678972516936292056079423032767102834554431589952493026156875304172964970726052235212144572108286846841595638081011980001139932790089052754070755217299484099363203405718669154569564842756355058813544784931381305565740908897037954833928293483189093881813341637503371468476799475655030585460128266214323642738741038449321417748536501472319636262204879296519529344448708152324495354512907919776200716813996238237089366884049085434191996989762597206458807987784464984630491764899520139481196934147282285784452429591044272472953028313839730140441794026435021287683598601867702605499744465778652577503226077248511948824258050621910733358245764419441611478698402965144327982531977929264219988391834271399244026257536320253056302778555329084157326072260152893572848544664553009153405785460535854127789691146034482626726405309947561414832254717035301146650223088552046671676775356154155690786587232895430681660709152246110023188766867758457750898099360235010499496038018157069296386110167550502166336732574777274759794699742637323956404964129871486400160310041735194338496939814763853646697169260500452498838008521208659937236691913113106320823260459761692575574947118469606723339814182340934780886258048636233207276664349385444623552371682115616551806703770717413995033653052647732429546491063645743169832065641301932683008489033867234417737224013063637213628229840168235341990236297557617748814876788804555879309864968181712035033289126134611934660858982954319365708894997344380583214611374267948056399497496971620614687310211775405080013817233256087221417556209555874809312330901713963903165586870037623148290907188367152106560479996749076859994330828322888599070274306112765395161754160910269690261178911937532912722476566769408426745705743254301674942375329724752834354088819754449106328291592681763570714569156788308907597419795344641195578107530152703094419156997943268416455757647818059331038903435473034006661193092580868517387953394454078118454263145030643835287504341419207154741921708916993229092294496521608581150317561725108047925893492393986633097260934924472204467959162588326826094833576420468124760686748790845199016195275447865566595438438163725025378295406328411417985467664888275608725180689117996702006102658232108008979027305934027906050247086596137135374980187357981299711209208922406157480795834874303056944064225314402879807312881520092510537843614874362160162904333399157160517812952657760291569616580128803786663171254655665996508301499255924520794808482140208102103887639688189537299301232222187496293135192336710656158576870165547870361247201928292165916442662037061074520593824722470148766362075943044054439496119567080901827451169784983870951003080197506668762204115475221023205106554047043223547348238335766566422847740515302399927002740513914113265337291642908497704987038549128828578422176763709308589511188555990396850090520764122026091558720250868050109350418478683685253215120336480312145807923890030050848267891003106689103001278282789456663435406815904687697211055201667790531633180061804584953717991000978924556689609243251862445814067062466582364046309615787142223061127700921949610702928347716350260058944865293103801110014788824646076920448841616665606777254712769607997306677281074895150845838225917672915215266256723787759167956154362947103060346959007918478710971925417213911259769940217306381796599041043852493197040810124461958338642302304782605138950234217600919340696349890963518571227352948070399668945183134718614344255835254744446162644944927032351912607126192180917102943893044722090365915315120374798968933582940217556412839857065567742878332551478285140021270527168386278150758288281285006643966986804296379212902255262897354449162438535729643100793233707879719126240640646738059404824298173980104494186679003226656636866968924684129053597722304720739102342472068483415821317049263813521846290418884414322518952875533043199730081957729069750225282770613424685082218355084216561183437662586117678972022329109363813645686850951211555516568701272782092857566095805953941746325247243306705057386254754938700436339575661247387074950853832887707028737770365396865466066967659948383579253416078966335251563504023128589294260828859579481206358039913957747221212318642438568398535508654585775658040790990539639359470022240692108543491086770295339650015580203544587505042431201050531908236639073816933376231667990480838767622732325856698638738713440854153729017064166666405437851360620299211637284205865594579558022020020941486252061632744741940396600525316336592851509990293550654675842797159662953356865655531186852447605858641265769126184707455085699647869106098575895495451125003540432347581453929873490665790164423368193298368989640603067028996949269978647380819221903540211804780475349682267603157010171640848762886172234293433722469846197804616137652276089455360858633678933450959158750843262057385559996263939039019573228657993818287376279004546742092126240353919152985155208561121883186221192967114130115307401879867209002607277442788295025310622884775185422633405376525274327743159398430531673450357629646813844128613746245550439237338245079636703828613972790996896226159864678762343440592947541552062568153234949904875514784490091229815640413483617762556266594634996265806674045319019802102469738048269229959468671914598703722416669769456808356407839559983103164369082578448954880107549511471427879718337536174886529231012165427762799363594478537758901820796313741593112664513724571291235792843794743988594338241608782218100026093458081576696195008099840893644714374205696737478761346660629649135774394617909500838098400594077554812263424992627023971663156486818541547511486645543600138525525036681762777243246625277995837388983256147745482921865137307547955073574947116392782800413620330702783527228236547892613786627736049133265667991996222619375920595519756135596166610275647552107386413965038463289258319448914584355371648263517881265605391251989150138684205026796789083500162970844351275933990832672311945298955195132035932328920687895289640553323139725075883945052402928276880225383670886836187447105535481928143630744745026624585440473757108097331558726807688527526338402876614902046844659166666461469121885471765447409840122656758367792816836520044527927305873664585905198598996096095726688456001847679785905563340201623984828780437640649614265067428817620034597403906714381055859565304780162909296209858377477964166628847575189423877786675309461358318021234167836612177003348852740960755809941411467257306389332841519201086237560420383421288095003807867954017371138374188090844275007399232826767915541823017394484616966868481811809979753548760760940400513106598113724790338577800572050888163811514238668529450058166615727125765846389165445015623411905221965463352067761894313637071030312840497922277057775607484081863785251526211334900908326768711929641209024347885220926044799560562643012480449628196369105574979819133183114591131024343536636228003731685870308176145337599799885881773087399513435553749962902275132977714532657352510853500181839215870237572349857461126828567908306655468359818705030151280857326732039828308104819911650443097116090141139169569756425808298507746067155969261092107223412276065632379693639030395791523286304982010620611456708143376769851786053208851709175751635299031836320725285321774676143166386369658972227472428523126959997896321824338648282993827593769342474310393262969098109112036894654861452809953033962511182236622242470518929598993207641113211199950658116284630534983049014969856533826940601445239309819964418467500851928491867357321389722551610806916627857221665259138327055722906651662923462870430767693336743982813068213265393290224033906232780334559684327087978878366094720370131830154474660163655276138359983311787811210176240642751976384584267435683544756480833626454588786385786413849666239010582959574442284517198066551452038574738884069826969355620003219079748849219909449149068714357207933353508734273973392610265359242095746322344576891087993139065747949224895119302785713755961584656790765969041760276293473634770644564327201843039262970897709563444301061328394306799014232635674497104290446260249151701533124308811318768099892356195936677985703735769226736021001337704529269163598637007758607204564339166201524065508695936925895089873927094408700059929001256534021495848207330423070059835952765658058641418750443359835857432641584536572489887474346814724415858390367459622478290072136603579644378142785177793905192333984755790188339412294507220879098431360868147741296817724697564037388926798500589343190225254318912472185735213057624934398989419093726399913904116813887521822450961460720587360850030593131146845526006852474534236777142378554705454678411599572862110545606039450938021051521688075555937930349024625236654721423713034889904214250952984596066863916998438959376631201869875823441777741944413477543215548123048907659438601050935974928702012092978522433008835127232848968348768863760720165962740690716855558103129174950584657409142556191750426803603800525420349433633740018341266165575998049160008018343370696625908433827486392246284688469437063532934867511004674040783125186473133605113825103286576637123993469935437255578974480063325881731670044887900085000544199324460071321777738912315693026244658505245236588403643369932791721535292665819177669007634488043065640418751218358528606655765139838857480172344281044662619214962952646204597728924894477530152879754846001767952487285056587402899565569905283038813775779642275899943416294089335217058601231625732941602400895342989772773543770053995036299708028403834242499853782585168602614272853799982896314475219429746092854655840035421719445767146979282284765884604599935172961947727309365558772007520350135159688452634278907777144800522173816067428454027841440164503444952864615974988419996684194693234081196549706612346610815375107747159884820659315741959593931615861196588435773166062587056444956753385515662761817184543186303908108314747522717219884451514911844622587973611662473724415737817050039438907656396312259874357130816391122636627327716115060772457456559864615686126142484155581328572293056102060756685748882422731453723874027690745047314929173174647132262605304935029401565507886433516464778831987892017021216223044149612562878552327918102352587445891617013408411506791445183091241523501452158744200119736792566603656212264941539883562792359747613198267068803294646618889210323593426961053062870059020539488144806125050053221568497134125276745677853615320507049932703273696745133598949741566497194681495626142273889988847435399953472146388417186631763238647264574571363403714333491985589036994845738182840530458111458507344742967221676714121106869615834441007838826324844822968669586228914303599855910223057478558202944807799712685058875392380862348938613677273714506607893851600682932175141927884385585953587533713048641772371653704333119666322267436665882129934326065399213603545276226781506704899812101494433244520936587129158647445927123329053089136390794530865859563184372070570886583695357556161400910469988328818142992123458778522884228163095716493059846218497673914526180693413468162614823157119846241262689611835947069792979443195214653479512612571429933168670078805435032162107110007780969292216291986043240434055661916282348486739246389961507847628283880802935600514026450529369642136579290931711601376334695761785229234065308177416487718032346680440138082726132024604418663776716455242608972168729311821234670622870735435812899699851144860788973216528703273296852697171103460438674558762660277816373535053886800140265851192878985586268990004141830851688231709772855380605466747985277570776019249320297600133641697746897250171817102311125992199774057463896194003124197274398145235862633221124912195648974512395076172221236097180585755101678714456543795488875158887607512867708896320819941347705781919216634131766247928553452706347468969815155348286443900515416709790983263647515993521617353039725861735977104781942046027206387403201462264300078182737070112716971637364972000066687658738479769892571023740511379344520017852286526318206957048202356483943046356480715442903593131855169654460574662835073367242484508827608510486389555985517784920626103068781922988668709586861864216790163214481470874624759341234088839416618484440678724455764334201945562848540985179760795277900355148204989985170519237210075952066557188758921581963928400991879156626882432419739539487380385580311597722528461603586385706090256302516186990793841983005967977607603811307745433612724948274942096758148444162666760145971425083495087900167319212316028713069662514707418964944594028033036965616369009368612771061921486919855476981897243152611593248900171885388705567429879572368038392081277214830894543568119326749050922558487584773827117868906141246516777974661128178342054405144567921440667844160344515798674924412375391520213607689250575585573383034481342157728845717363166183146930860304755083176968032205557898087491614260434038927851529519115206064366870621568037506088840228840611385932227780995255514303299234626430478265838495959953108703757559986030426149314882236303103240883056950201122421270979030296780580626155960130388996139775502715699300014662311301671295504810765010531450704604513990142653816680535104762338256895421998226705550122640479116640268799006024370504504039370354055697658991810431362030736656735669957566498886502973658074561206101884951545750742633190922448553753181675147003482608734206332678978163914384793839755438524231026177810365115245182413051363642915497530413279261788951975795360601006730960148749475194553150825538467534064254321600668151934477673508865854366709220101575669319548197412173362419040866338469001265751686113340779311850790203913741456303040904326234512455263083672156315276694915792835538543413156277509275344030946966506837552891611078090147237384574235079293277658093182612174066720721524979113531060529818641837473429071332120115620855815402201985980376448975159906334444003682204043413611753034217977791137560030684721665199829626235420858865201295397763453923561215375727407543076259185285272451681436139910398378104633292235496806163656344029863104566066705583572929498056471272702339083408464415434937826384589231617998100617914969396639067883716108167847432081919927289153360964705582613562340590381010443134607374567395340155352904184266762321385089153738847842142967830375040089148339938256115905329960068218761435650647522176708650068398707830100686011815594999974427342617727476361655347122774726622858272454621860695604071130194887567597002975878313523426214207761157259973160841078194114155032018992215759373375156304048676809700448031340576803612948906530454773222303696255713564430026000252106152657796585608117190246142580055154372188594902921704614881618851394774523638277538991050161053662977976683436875544570170021520591877698843101011208665502103738879506859673142100666149430250172825730606351546726119362211604045134706806997689896761370329860053489617049369259130412189457102343130025999590077252620786841246640266821255264751422811948807501489617969544857314410649385812990997832995784430628523664111859056020986374833477775837920783025950923480139590337387037672305562746932279125002121021991944389862035966368059812670869775732009893681637004020574429170850974843595080340114789895748165101314520024313020969420077940799943385460958146918604224400053139590345250090304797022390935772742315969330678218555929815176708427838893911279345546219322720605081081061320400463445696647362249316657129151243670402519979906164985927100382602906826310426529455382742063094407835331960566266296947367597764853461501447289717695404156336515883704643078751100311972810772179892543295783775194990449193172362672081775969306796916956630453048550037094657768409530399006243178406495223553012531642328562216341224195954252890819082187422555975710171723196884814538118826959001983448102040674163033569514962396503806382707170995332416340185530282773305414147885386458435212859214507625278144612148930293582924437331222895618380654182042667166629196632701540181578057528630528369175756345722350767696227941832839297349826072094434471676773760799590315534134292345855017004281502904481693023064720429674806996740411973781440803467777135325101033126923113505234583984262758126930455933393158025203367453793347126872222095724575960564646221084912148138796705605390482379551622433955178331821149149601948012987349912654031206178262486859686565432219282196057932159650020405234317643472850063273065553360595822294350036775510701829495344404573976918471232620548570544717036601822883307375968693251119668034528110506744997440660213773956806944827541614957181527576124094243486387379882765389582064895153989064888593171606386970703190585837291601448990026509233281435277686498563847475075405513344210577032614835507307574922855434175120598558881056979237236711199129513247132066018235104999720519085001995448510215164009901163681787326575446286620112035049146809051118979699810794992646229866243676031083392596702722003822449014253949184532829347096650174949791175880037249259555551200480731426225150132945654822334729669420855632310618217938884191529300942200642300299567100672274603483304234944218854861439029639223256102015995168999617609411748610176201551231764779456309196071812073825658157866475701712871783005225463028046523382670428635590515161840495741641879066911012119616428719082532941919694532021132040733780515410604303760958326685956616024067741884633690941449024032969201673961039775292550586771444767520933268543164012474846944558240207592214466318916624333670649480406263894824941088853102404171232309929285768229242924477455834650032977146764935775427169259808036476945443818624738697282795731404251827815216729297436327824966733817368428201393320173388828889916602189203218213322793287033033842731654114358152177311274835186723026837006376759465100878432882523898691308399542510931753825755521926463842423740401249136891592555948679462283320054326411214219729850385478251498940477052199443526690840817619363495513371367139203092496975672102500924333444737748599927621830311175451224423353147255357113264661055694697142777469232972365764799709182788482084900536436854781721380196798953873077597241537651656270800133383512055365672088352207182285709026324065283525001359096047776893349519446378126071385443650216886724017377592490001396364157794322399138626565682557809717129156648891517899293108618428778239414918953384436956782475183932283967907335040939919117717734952414918861922966868730920615414241548174815301245480808378850608864879493865416032039124395721375908371579965966114318936965346797762784928899447107193724078100531118760829282285487788477086418471162565181893579673286429181236036965773539065106780004051200282815159258042230740304448737977437620025768833270836536232935879307368319944888533905164205771571123778430477849920506450012797986916777304140595981504010058814407897745268400327501083944524508344173725034600661955803000471689411068642469091138073878015283624139059057802121721043690584372594026774351097603867811172564080658713153644072785717640514791191341088725390489163534069345193277535213829763024709115876167301201394268413798325231261547049199203533656843515198892534954185831398769689031093623541188869288239503416349658824364227755680584469658888514588638924260233880358312075936776458024778570183774810508231925237966363530971924056752463316881985812835656986534442955799977933715094356121563236702282390826071293289776183446810876871079853405629165121745002646124635219707452886415780815228059288147543604799189341154281205125146691147207149006674881847400707767434599414690854812925257588154685786752268525790053325415194707941854750941521964519847794643747451895680777393792702015498915628966397064007025334696723586673048005785087526065923287893024884900390663082908420048161210430945894225712964155254424928739540291352620246146641406463136476748308639506905559851985355260164387877666778962236169481164096468849003740429905630459483485332826713746291588345361622129201182798118153787257850721124573847132737354059487543578392357820157230963387064924338496254955951617198516488342083529839304959580150929399168034678681105575125296697841632611275260060435410397489304084178314113601220968368635950524179800623496710026093143943455695694889237075526456175855194653881538821346485277844596905325809417890815884918410728906918841261173038682654703342659323373373807536470288159887281010963704326223595687382282558603026650905600389897942602911036442475797378762148664675789481532810217594786598164039860660581333253063493915371994476367686548875810586421428074557331627870020961957559013901699749869983479648408779769395499787905390948034844209582367364802282311223998204970349773176015606857380970532219918726297892086911225437052801199678641374375826183806234122824465372778836886924005542117289141197971760219762721297431804047889160949263698905278707484371765451479579499366420481485179122869962960222126784317532122841351458814253752842921027645516125436241475342791530436689965489873165772247104088096858323919800169152872787930444704466054985752827944226276759366145572558737149288903247388834039214587911707595059112409963014290873330746880972010143322466447560278867930759610489641502541810809863477834728338814554475396622746291887309056756039775632392696046351284118882214635939366216675694917485848962961226522171542590548665610003254229426102849964180527689383421244539214477750532339737112439081965338610393085635468608721696992920951565249486875857083452152138617441576575871124502473767988191671866543193991832305919604355779061305046021519630837757640990977040793664264356605406704274284123151878540029720415725527524316263743355179224518345097815838680085947137367842987748557016977393366463489901290497917997653108619107072760886717449619754847922948257401292621477959631531615192288784012762687653237492657304130722157626067470660749743647732429294716909973496456971143583209664329845164431919685634236848054937039269723513421448058505521172211869197657297203357804411159315234859959509812222070133462449010745930608351301417047180257226561332716757258728622654680455134705592508249322578694173401463991652124893911334464874808479423199762984901357395325574183363423106379173914969857484653861285940521499653257835288713131852938370428244166815234701007927360310443536178522312978728863893512495374432251717673352410907747226456722325277431308117555480790671124975133105564238082294327466574759244518894637092226685272036086932840175467856756467654195890215539630135890668535056498822770688650983834421229493897726155555661301012857725805807692023454801964389582985175895430007347074864577288066481819459793712792605935715409718852657185545738549113055020262682070705245378056260785759683530784448124467718972215446102034213307624702546977304428257555034548205555496243997231727720535425176544865342937528050485737451828783383392409374477834588534410155314718187748569639982515685639101512466370668374736405996903056616764158300199147103882519277027834880329650699296224386647903657502850837139419852703134728071983325548468216749038359089436914638245547399617071852175464853827729838411262019493535081759419664276199726417023465394193511004794685175428278807119596694997325175970160613648975849400878424263785197512860357230263430413271216098734627512144330504341019965573763084747219421058893914177500378827483054616870096081127986300371527317490472672691817731444867314402827197631846810159469067345810117759482946837293772449389348282166406384910759491548238455412047174188968931266596122408063577577530007503369223396870280316189563186190175769783156584340158991107028916150457520256858232893006288771523957416329398153087986510052473769401741744518454080047076205180981285139879136067612649691719825096562730902533940359702654991353633159070297409282244830709753443962458371347713280338202518961511767127814219942194084917200825345360060388535515832127144664840490554303539987734126389565258951116536217591031084197147724760312801793721452847930275407236068754587989121652195489876222821878386423298271249372823202759944741380319170289505375800701650304445248999835755502706334438445162696207468785901317358769551181951985183744516964218843612598678945610810822714048705329197736648617149893546917888986365762259688844888855190294688963021081246450568922309812744630895207358806296961037943896655018691189812482496990242950523419025868605592315832807633092649774281931522376660656954277745884897646079818791358544067749385213402045479365280750967394032282041833171874006959392546733849120488186010314927257698472527349490191937690735842869109965152186010842916550296239990472772679847051815981546479817332160840791067278213517629569140026160159468200625297239523390174359821890138708362237572511785154951927270608615496004744822678276741002372953925623407630303430632656436370016319014429085276763173274424971423931257822391031770346301171904277043391974863983600542374374586006047528668874627972082277181434803459495942655990539077711543679072731265427340264878694697078797265475272950550405533432753477413609737137393527571254698514397009224413079642879135336422041184968754485375392819802558973237319013348837862862495554675292159058009496498210408781528972351791576726452997121721673872557196284062539310385292777013760610008802431881599395173812605199056045399648506798282761430237190300295145871484938843470264776198689039290033053393551482832371848203867174240075632305257700030393225778205056930860315711521912963552133462170174243314202416837245744465192820211544890989385705345743673796821247422217376349728298625277392581926301348721250517529623857487243202447285652641340740501146804840289213724662165550888322737671684483598128623943098168483517948661434302039736697645233405423998068953582970603367150987507600369176616335960839572915528278115909466556097467515944308332730401344426452100256598359526669887096347711416693476786091967036084914930285299094162242151680574658970895787481241404124390377171910522438111042162983441596030093172809371717068245163529759941254794442280641432836815709067122424389639692469799338572356834364210954203933850055803934318157435480195630249650952775614501475816910891631260149029780350710855435986759805210841512008078453295672824445619289204567944769752602789783035696464284273691674857364778719894531322686113075531820689289109334392496107801685298650191578808798737603559400939544207144666805279394839799380710155710614571856280375794823059217772208389984843423190432687233237871219609983011229078530220767275661709241338234703635244747970071673395200223392800635084211399075540212559576978451612097540193729069480972842050566851250428530288837685801363867021395378183006925658345120452436541930663741417798294964430884436768235442858870128399677502130396235097427788834757032772130834221737378855245402917511040229455013501441233122683290663398407556397497946746681646882286803728515357746854500172805863314228448096974467178580871746932092919144684663015954879163499075342329453854677292789683201995767957791509624057155280997049089824019037310982575702173170608090579622857957422688887380940221656849665527082334049628234603523788791074619673382164376230333678352371375205836506092829276610571945908823375807804941940155172536352266965856187673387059784523145594713140216086522924120738894869020782496203273322214131232303864084597694449783681900278821820552154236027216333602930102298953506959761085527004514021883932672950135106522966208802659154640955039138638637977209824245355724326929084777610422749596191680514031993384139181964129704597891011215781880211799730385795773418158286847932806641951261526690965866840051111078387718242063017334431123544085485330046385306189242234224834346272790633705012229754814199967074013055613084685303828902925596582969866665725442108773792851934986729225070948711147037773741559134845481120927304203182118225796292776931195899489239733256340217481071608848443495450684297363084888058329970429435337836726686380731754996085464163966839374334363546261079756811999912901082935742375100484596649961112188540691893481163950078034744894078818555778285155338736350034629336685577796473792201936942120184297861523168269794895818838888783178692064451632578129272079355930457542297730459780030729591781349050786157962564018724116101599305976517662130204053019933811130547460895683699829803818778259132988589908610965583908234974412927780193552229492137265890839178604893367553717163716899596155741335486772372894062487356623459760004788430466490119985515190054850521574179504680388616545235404337469700879951987076330160761927176197299453321474780578159855016825461055209484449261459588467306701048008905556997526044894885628572648866921560898544285581435441349253628361426703585942623771334679720772417152870164991526355911929900779250442218126420615862392000374510301587664602633819190206523482593783385197594299070047552974577848866866970123753154454299321936821924585680116451181321734549070475985123830370739838004802188863789184399706325895723312117562001049488640791356901490756517479855444165182653053362626257684704121696245494405656887360791994694251665958175985394397479896035073498530400102023011764121590030576284632755014316343357538996619025688255988690248861348044662697298726482842411975224478173348833361279370800506484143381449002105654863083862979373856489732010636788724908659714012656131123778879345681617324279735106366878652719477605258294964438615456646241067541290839439291174562407822287143333806131652772530324419035813128933359333341514649446009239550806310201739069751981222315068550859344097406626919242115400315191797163733239382883120879444001437958717968934649727982615898519883798398843584619384012210311978500197792052094188222408152541101855794748416871252902647208935475268778718001655307789846497687047007219938265405932423464439533743668124242234129056461836843552758434496004214648005797569509850925376248203243993392327841396949228988844133629327441066307804880902336021433136742054687452933101163696592502606827278378568131782990838318526686791336380781900284427498027724735340210417041462816929844911824447442854648109665221028394756289092603114117300464390743763823125722542061202851001468297334972207178462484761301178251434978872220439544158253557224444125844477053311065070255213529676699412241979483362525656395447356261514611491715749455997110281991348346022811546646379504062482362680001352485151573221395976560551560519757858530795911617130977677902982656655288572135839784004087218923457265549381766205292276914745416880320697357760448647745690497033864727266452871262407910888809909559957081640784249199476593029782469256704975205000700122446671412894551142468406496414256890454998646604151268037169559845552613191075354622149807771023599726581072880336651767940716688531659048344970980505330207118773436251951556215065778015638532631545736466535916126436709156928817059936405263159055133564965687751679322949152409699751047551544697096149884263348299727020223874882250762637598080321121783145497284087194374508197478262622572229186338323226915858640098926394578764416760944644666521649909889004558029990828082674454190537486126390125124549800898811874309918234937794271608304996342881503270497011499182271994306317385080984566136973188453124553824258492547372409132055758415460049354543252602668439926956231735539401055786868727788666741085446297739638868494804686025639787383989789483516294101087569567047858884858419420823535865220854083742640689129697014430040810888669641318348367033866308951100086428807615191834029972285375806980526045493726178696157783523147557613848436575346673806743774238655783073836025694768027948501018540010739426023923200833870124494583404006295477352466862641558375245960849310682831170359796442059563115502713537882081808840430804439533355356691134617272600160600273977346206664810305286765833728395435379782409325290253192276955104810313013149822657761415282902262400928172167094372886400431275034180938508396902618445611776547337098999406782315039337599700530250320805002890298220965755109719923791277353448738145681841395793270533204960497759584320939003563896765634565127196706302715682810349313770891072357812027402435753745216108637754743387241035977477778084080636141398752663425020587848125021070816948435773732291285318422396469529214742013162985756734884459157851897499971489044497767355532588455658922532742946286645355024084751405028542534889723337555543088391084639256749662821994017225824634787796653480533826862835693743973126527113782120951916753910526087972078123741349686762189662670933091384429378434062377259514911480204782160810482967783674510892191292868171186700151957055452608715932033047527663521123687542524278017610269442056156278322375480977783007180761446772394517460612289845059960250761563781079652174992613296439878827800475741575904108249394550825618432925517681702798473283669877487891067447476597132837244199914886652151360077846075513148863005104752095637824309590902437720704452114927994222303793186320396962498127162757204051794358327695591481792754888467787998323742116031325879688461539523037215988160412646071503467060408230821387752436441109399941214082565816226335133622732506608433793330377082873569516418291164569888093099428267962589144007472819730359907397014311047098900116423519794701963406248476766997312835113977647880610804947688590268582406521009048881478039536168837914012343200777083251927722813889266779075770400690067655362232959615485320002842218509271611959732687338262341396789520413073072820448728062333572793490469164206758655488899160162552145886068750429617171252039462470880081473561898755767795964969742853019213449048419697909754057447415776026026662658465713579540842306580943873579555279398176888585105206658204659082645358436458267727266498296482479180011965508837710512844969659603615673992225572687238613056738053223576116815078545596943290572716445956933918877734120682668987102450396282813125485377273033041268526030596149588875352433436441278475368192209991163409062938726231772548760600736468740480114878174359000313241592716005102540669942071214608681975483302457081615523180666229460988350808225666434205938031722008375469966367302661652475388440436254560616137725931950372836170728234330800835331120626302871979297350192540472365654749075463215910478016791308370994355052406507422388455509443833825375372872738340219419792884955933821521748240481909231028824845356497223658427853582462794047718667743228671975645530458149070934554297101240231408627413928959225983193216892662665526872606485024803040259074795434063268827382319113852261923685858763064823581143917497356667918970398984495124102494867816909789967587424017717971484518299959002998719737843862111438302702425977296543684727736651921670182839376222157347690289668342139216828594013197369220557037340774724038636982596289810961081534876307160378010753446586493106830897096571954716540501653379365663519600048034441073846293417234517545826717471237273758729498127805211143475686109304598545727583115489316510605057514037952863162807427885160602815862706702027211417985414905989661574879723109767869853589731424958603795563153622764181212914130087327136420693715963299723464350193575204589647161586058041040915781860218617504775792605202672389809658417290804315327710496597891202507362329500470009292496624188146425074415925461431733553741043198725215658654277781580405049785601617354291599687530615724919796386140905939437081123677083053616822941131772725590350655252229313136989874391525321317408835671654199953263488025600873228950955859760088121462593754452115341718773567514279178105818710703272099087469516642110122132227723346312102482165298623668308992424946900359412703208518567937471403595297637200981354495087731326564349408122049746185629367829613056965579603914100534719402007777021764621182370114589074373756710453854759396775701298876112123994983805707922565053686806628654654117380237732877032571540670126564282133331942335227610674523190262308308378966050634526107874910294009901108166808376592991597065465234375373788877413020919214740490476206461643615214460124749622429777820467486053310965461832283671275395065441228462146500008049407846004539004508392579395747739452674107791270843372023326529136751851256100250822283963012692945418166133057685471402067554725007225356679846553431335986730271689607241546182932598650559543313890219146575395160174072918871193476119344770032519466134198681171803579094346330293123462573706277165434238360202995248935507175712687094034236770206936220954258753625088560845724854812474952141825608207263595360874050991830592997513674653834858975165753566827116161617620973403601797030516706701471475094378037158685002975341888449015548879769213999280001588728408669099345730157692195726798816210415649123666814514966732851781109319698637100242629868260103634798430859368574745897499533043494727965723003720327519413630095942627521489758515962736455784105410360591478428132899073727096871690774474455062607665743579455848442943928437523514971505165052048210573082036553788965137855927825744587160979964282808335507166634587284771256079034295504924752974199103871344359003883612978251735093958928972714835646439619505701913080802900522324738859226325525001112030477029963335250393134753161069762165738137756396677428737849890538373197075568261124330671824426214794808295899823267714206339905840039474323494722329326074592033959605734078182251913425991844617230978682947129004542975050305811026416810664103532370434460589740188207364483745662959656201014755627689571143404337347735721945403784675694066115423134020375728016798723542938992006455155703191112354116235527419022845078741415213604794173809117832873337549772265223635586126987346938550569643001675170105236263285713114718661317447839612636617500310380786943050199358410935008174194127649481698292447993116093713260135369863318261400003530856426152396057988336279309254919805506607303588109130859220784213945965030952710623934259412700188431621462311948088615743241715262911254107529961359028255616564693775795214819264973073781127075450545048192463516872377901801739265105030377190715348402726776313994365676214111507719464826263281891210158887699549191861508795552167390458382610816307911004316946030845542863353915497476566274929434582178519406125417560769366312848212969370147629755529168337293162690040262213810821186836045218517154488904115489953544049647613458905087009842392123240147575970888903147929000645173879020308003520977583269960485792494402164850844461017679286542872874464910177798037811574217185290424391408534545305848461548367993186418544745837165406869093363770220658098552721141133583511736137661631178032078607991053100147465773247689161745354821618332693410056176346812951932697532858451268910290365934763439920491673361927570942968382162053094582909657215683658301845143920252553645824277306481107287665471331880201315565194856094066339986171726563354816808808756348064324499779077247461747303307766038164986354028446274953281654954687320138930187584628766609145872922742562472936914028201498872025029804488963421926315725962189118058901168613843304821378607596464029208011742655896833696162616853089702442859528571990878039251803745404131436171151509423365676826647301384621044300017057939539443197609438701372846559391215323307632687778732880967680494318290095232904619864297177156477487449276903739874925257627741622104282795219861546273053948047386587140967981457340970429583733788303304908584382722040570953980815478237918661449821525677742369920698861622576947729517877978614607173872508838723086825638259213618738683244813530925138546945757772092200128379102846000261582910613109979945230418366794627591678675478264328849435858883668230134079460812424297883385390842130373886623686845605242532890344888438476740593082896138149161275828841173844482490005314510693099362096989434091454978108404001445149328040420740452819007725474046926596077431075684377545187016415983525854930820503491031622727253274075775230541660555727322220154270097989744095233748871972161550256526689161253058065334633809470194850668069889540196580000042615382571605624763484878316821888890722972311784236929508540951494766213420035401122853192019323868529194674774280114570964265414507546706156803964241698149494574865639029275600873070210207853251103959366022931747108836111601125666463245066567318366017027802507008773964416016882562524725474667651677208170231562923504565358427058894862270483401843185442060138643282208215653229415714757061516915533065610956773315921168183729587606119845933939120401327526061380394022561971344233069759304607877158110473174660277981287351593579217055950276693276675939846460183116717594312100745897924813541018390626611111750064501469039382746489094478619417806355002322354391192100832353553745056877029078995949602957945411460215970797031818546926328002773390823362608231395202411346615890711086111357839312208986902337839208394974851404974214943281802258485285666750407798390222496810002613198318112943933511133219420391670045180236632685590507957919870387567119337458540205650791703234037646269906690530412079478243359926300573617164859081929095018781013906486173191809143727330057317695649214227093675835505715450350633284756128841414963050198628109653528014634115468732875955574117151687885318643785378301164979467255679681816134674248916538272827860508390217807897401952969470208384609891447421161545258258133274249210447133082256958541306403468313931000764367608876443274385234191732424474190117641402121053371437986182897961379141700274713344868525384186391258619020621402033723376021687761674278182269520742804292670787968903811139356674924276557215996017125993424026987358759004794806041782969114761307879026332841310422618860583830223721494981116719619943206494903857759363843496688509428622009002608505238264584330412603544964632772582613430708566704595152909916662362261162085676800315447742026345138940994106407256174303839724259286601628917321811707458757176580291844053537063508830810939110569309964378111826146318194070636063538078979183859220884277644867000394016681161947544533002468577213018891149261373192385083015373793428871364343842801048620305173917277703201957784886900658379226531082777991378402337103430424075184960991325278394185024932091481194450402609568700049205930377765649827324902314435186325371691840480023975810897292643621645878200741228274748300872661865572337878186725404095026211643501015907418672378535156663563114369913053177553235867821407588178966096955287343069552057536156908133980522931619867824437461850378814301752512897031958460765565692878161497516813208888134149365901287160317047784024391299403946394974422911969883596123694221604880662434539608148806424461362737413119112840065014239632400717198047857516926658925400252271852696896831378745445284357755889375008889990226664968363309040160675660619068946315915453006622349814525753243545666187691193938488495340406319098095432008857189879236800167718223639497916237143047568226454280535334088978953149278858646793963499320031510718322652122667266410807665111183269082679229744268689797179319017248648960944673786129929201428405545099373860203517039880525279186400972302535971816307517879682039031053513182730298142064235335928364645926507067769048584865934254322394692684308151470327346775897441307407568951929117481250001566014312234301340732040593310598789355145718490009725146579738622382272954492287164737229333078299915822762353643236563606492896755725345819059792342272817606618166703915225810987936946442046691290611935210700487844328213225660165880825812369858364015004810490415092481724864058855360501192406027903716607218044585498004577515434097670736466523539435893261452028198148990433538599094957072040568115028973930385517913134619939208562113695580724782201147612912915977031451984956223448764742068623892204338044624496571707748456010987520330587044563948475573517391385262992769884269594394753984290330302020078570922442245844218586235435510428043153274731433202245562884725265283873752680508050717355000969061290303989768862201414254969887425514542348805362234886709860509575813910921354259175422567329168306149970689169830530411501121375108882106591059045150969493387426542795545793590035054270821065425628190712407395672142514009631335823554204192331362159799616160297090411860891490308509066086659000256760193154968928634651347895973636974923161206103580823387489018162310041229052486848587881800986043977643057030736075190592554943080716634829400679032842493428835302689751184963994172996857774984621693730199200476420723115411773229227377140778535670527154140059088338135339216607316411687715704972246232909798363974110970863425233183677382782620008758012750685232371720064896149338556820449600800056574215514668833513370618170023027443416631558567815221083490061228793081103955279262326579252073352903865257373695186402190564795076891844363657581153502734490505839791200986238183298698570087729875776751702583026116207679590919954527874381163967607344848072931004646487610694531791571083644357835217084833039192009014865865312570152462438651841987965306311768000846028416708522689077454634291984435829126636195178133190914141658775306803555700214541408770192048981995293714300786248221365157663249285213952104775193614860627416823063079157363801089738236386595493792149778877860260596323750088509256856095907756550095335771875292265149949493140330218493952387893591482273109614830618934586596797026648094663313365926815686192451489783258844904645604406120651954692595672827833061187265239516029026476720095057001044200956609672738768713007769302492646458576875298421147000866755066924504581958949820044554694959410235610390767422529485474309155709078184434622148006156647679075401667870099235141851961421709120290376273287845216667926497781589994070892534749338356134571937262719228106862944299412929062824971746024653872041667803086471067076034711099584299270716444109670484033107369768977259203157365506482042537530015799012648357339951880640451930412431249984539890785736048043057070263590985030401234287311804852714015781912017258569093166984878166803395253682694898201089965227041366924138201169003212102070279190821662070492487973369242604356556292412726739080270521590598643361647404557697038714273207214402665385378852494751136084461710143369985268280073714362695068148074094790781033198911235539719004806127756420713961415757626291963462334078364215455362492045303021632940937397793056233215020419819758406299900595482616261971808343512816577434607364174652358244082927376782585202441031987933627723525242146111920543904277733351140583270804178397258371433870782053683316834322329687961804724335321032160820756356107581862094111130404311066303080235106281220728963991970652879238373936200314217416984865466894151346878729990693955189354085894929781846570367274466819306404363134543106851769171371223457483615884110785856107360410741108737068894875706196205244757677154317586789920310060760581427464750438438123668274336757838853940159588902837177833822575490447524332673181185468809613384370989109593282778440828740458711437205578163578322476032776280339859899263445900070830679504369243695955332154040866555262361316740255084713155735018549402392503835247942508873046533775344719735198130148776546504122007078746683343925678912076922699348976336823994342881368136609665385366059645497661671593088164812908437185490594227238731773024285314147727634764572854333035982495512474714449826435036278017278620880738188435233838627978287545737758183661409441734914822212533124710330261363962637694467892439926432188015491937233597513493513910268467876795943904796061916919316530763097787559375479958862014118913781752445609866147842273651018356116572573515535507627610971446074900465687025791602474560885750712312255087171587137304343755722725506978095720491944893600436058914987599938128894025059118497977740518562261292020673592909579791520671897192301845108821654750068425150029277731198169725964934874666874913692739109280790824638412517946188490925533130223604970445312315952325969794176668446632583031697016913176892456543808044034740673267480804061341068271056881871115086876985635806346366480087794601010454343195666825690618193053374403921232533667755200613043566880797153976648649033632089150225640138370379071386122928801780647637371138546562900959097651860151337677909301269856557723113513881010465928195799440382164930033448497933156973115910524155028014856397992110107577249845567141342120318147744880594194857979268662693747026823907110580116647214301568100824121169531231704120228719607805907073013071108372464776322975388119923022184120411690072383316068524671657054345180620525955944714143752836994907013783905702433551852796277921848279136941661518398753080521021016218457398756205221632371989848104482546333314359322787924445827415510057048496272204361251485766335964074326991018599650005909208514317150552705575919251696354857804124750877534616415125075841205218429811324132606039225602376750465136245927096977051072181412751060440326497325927286686956291656298175270555521937449110772294051138245434487567584668717183244249899920437056168414141079972246523000890798235651811699445513812194113465606738918129654056125128699769718517682177896402829137684076697816925231113843681439348249053076201323215285832925278557560488466920357127588421384211405079494927533427326840797531264030898442046774030972150592188846674096250919529274106251195585776579785059478078312426303356053732114672729219402206315983745652639581524849507236138663563655000087758518528061756401407005194581767557509843249674884345970052804061877856487295588681887586824740362656427429197224053471056107454018462650986450252371380199411726570236116184039909881831796039203681117085497130230839717791251041408776513853932325042229415011640853194061234242478901016278986416197392494847984108247114624103021901055078486802141293365474379546195013190635323448959555905723561707769873167201753816149208792414799639812483382324984658134811981419723907294021597385386771670577952595010120667021206935175165347161639353147456419765588571377250272648576626142946676550820096001208565939450817239873330087353836803579547320468747794250094860723400118890991462620792272752559289120211759346708640958427132507219511859746169106504422274457196212377132815350451507956309810117470528964302183713579867511489265944727738879098105330094705655391904178489126462069946347498492398444074631833164397354660112596544941694082367046592676603907087409344099394869969626704369250650689634235540107359333205394226672294147828327148072226836143158185856942733691931210496365893141706750450345436833393552364116527825348144587706167476610521067548338906215683047065951737303580854517784137808065222192688898301230828783873803169317795138451911494401866069170102253356132634031541151245708203351740789968285944705777175925254036411654303921457608987721650895331358021054421911420067687050189117029214643183461817357486645846095287148226614673104994381035565474075683643244629227697403442616018437054708653666816298056801893756246040110258237042299519095941126643146314355833793578489696020920524609674595827168760107412154661140345918695300354826906924870054832819002314629725849862608556312673438354349031808444324895322538002244311411080361709117431473059655715793396467135576529163182700878002857064516957357396501933459225435386582233506999151131003211101430154938571737558696161185366483514371785033553564421412174007090877910037069187648500276517603247066084538133800006273196938801786943085758080156212645758088459152919841161049670038281590356247776577992682604078675642098431703310223846431560868954831865575488836866507610212850978830227309677835060332278620905596809913053331946330822628754909233304905153934407625447416684097931671848339734226785766631934240620967041329369614030009426616830699662052219187596580612754015174925255925953448751365588907931110736193809818534866207871674553599525812469634270286198605552183621270094964945142526440269279183499844375097634932074178401153902616626468810289883607094905613675351584714097233732136153514359748486643821441913499032903540282655933050883827196198991773150660965504559413235438846075994248699454435018729345172238069521425870542187578458268170099891890053038971112061326831138646427617223529312673072666724334763030115709153709950863497881536516215237207370916095367327969398542107742047166588576512000932769275326032428305205617564086227973972111028637714401937505057791783056702399846607972208265864409966669058145065828245848967895148782575715211341221223798619342805428654148966174043614508319296455885497710759212974128349865888633069295897072210640996247276001332631018670925777538694654303022482987668258320395708174127098249944379112261435515834833400723564587107294906101743400847145165479615229939310810306902433507634590826703135552766991961595970950291723957257234753171402270171879370900346401173881650547334627916355200367798275244822802187325884377046179073502455916914842048976682531220668098537293667100873947405504938498861964817524313635601036166867460915584337131364163840944173662640117987623544121959279490005235608723330708326405754133476541099327533948930968954917642842042961573630833523599928446183207205493077419924959102379228823691961259671181056457861099655152096156202571630099110020487088819775180657876955878279117622829416903372753532473386719801923858382559711021631674523923841852111011217948071000832182878714170895889277748825298189261146378248004805091219723955510721782464797576684781510349550138103153914577730639559653965119063045387949752178020947356236121828023398491887959737021567785098414707174731419108461609930973460355391901303860450318874676013453982527901312109794908854202252443653779695905029129973634026730209059826141776842160335545124586812206883558609796442195026903872442946437806512889847858420488506526533075622127588235677801099304005987227609102493990056951782188840068540611606419803386031825835257538771541841040476787100121333015200683783098730504813072168292709397966467225278426963536971852513470261506035427433445351452856195649079874697109530724990650835280285359359214158268499481925319668678064015347658575987968551955291170233429731960764583728757782323527362297444272562370389211274236619194030280711397726648877516088443519765441056772747914635999023461652832943444883065679614385602395787636063336370160596584366389762986710643999784200441830023039248544424130545583880546489655976954598801753436936254337281009647256543755830214596286088318397541732407943075139757770356219867481698004899419820582307562210190544675486624680761144093480116386296128099600010710332065827498424004268267414250300713086063959173645873115605458120039665324211175380255830645134002183902774558196899883546597192583388923596456160838202126112142913621921003057490919122795609959333106365038243425095848387195395649734278498096879182700391793989415854637291723447915089027140758675490784779727352724090488277258955686441747475255827189327121179677855233504812749683072216679354328425050321996355511031362636816261674708992280034014804054912686721271039645105984033689899091302647069208620160143688166165839922027238240335584617390713939053789737997711385943499057145171638865225777476768845737947431586389527802626185666166356845042453041964638656183472293771572038285344660581890353981951256084781871846846263097157143265344513437838380360929027343191879892721553908784360454852810059093380267818103235397592851620035019982307302964182653963130095383614060857313509801645516606313057507042232885259232567811192244477766503719197790741605912314189237044311174540157784193390739609027845309525512892647473341689090273051397171489654149644076812845555080905951510981184474378248321296269680520496862436218607204892465248303819442059196565431074107070328542257722966923459583264840425920788516259727610078003990859076915158787106372082638993091644167225721016147035725046328286953096627533385262560438335846184842669907620089786515629364393254472653192598369236547294418433375904291901783019992315970632839612323968169543759892162752903109689852827404535864501456931394889801260042760971787432436713851110961250081463540096361703736687700575437707516926905917402369822327370173893351056474457774928043337899117066797497722749750258793533510708569819868156151965398347378866772908822583667069749357872595839637971746789430076513957140652778857638116870105823364090458721059074719140473771894414836664077781828354319500569755014920417370509387404740966205752575543947646223174690935641235702016608184114475634111336102820125560548011042056552374280341300929093779945239267679659566860603651253826482223402768192436410208584872901129992341930032946855801126387312760479348267235142924250174732648533008132602047320015667850994578195998084947410151174600999201677576694265753739905444218880963342943004385117119415173015641340536113723993254522129269895795320428342052768178891372148449911710061580407358745525732982909303893981082248367365648695384279679930699666123135692351320198786111090787766640898204625062084777429346101243024845752295833102160835115368424628070444108845352632484799060854096990672985922770584339153169685129874289808683439976000964204749567006236255259197742691543514010704467448758479032046140326582026944140646492319954570600010012526017663843511446483324520253642593504538843387176999016005992526906865015898347151066543550094026648595395385560338199422767572902087607362722006670066320482632509025001550193696889255925421936699916611824634929094563233620093685000378062712969548753895502060136659929175040218176656520967345272860574623587708929401803619393724931051956982187603321492519793360129964342288153874585617947736042372642775687166322044465009927402561882280034370795249760486061742567326009440068585277370277608808758595051307833791281181685804617444969006600730942420312253281442229061607292654424874504252629461331288805688566775285489565239538427907221034721221319823035810975935550101863293521491561209075049370437351812145711767590678038533908092078510726711674077340766003128111449378932331234031817198079173548542542876582181496214834665654435159420879155253623782726216917387179250306988301441277484036062412807453689768536943134609677719228858453901073789403582252201321347429258617008454234619969171886981382371643155607168685329979598446840099129311012908547621699238192030518071279400569226912526796260525676716539779113418842563983601134325512779863695351019024923729997159616261203838189261574081697757951542820780268854051601415471627732348310548681719781567733774908157301000258029756937901530091635573081562598679027195775613583227775823595336107510887892955755157771351660465596957626617811154955414343533135282396450799278417579432928600810940081578204878202335052791995785723181796212449912159365938596551830848310346107993129936284244715836041986243281018469461023069490022168106795431874540120627035553427718232761358806433801102825443004035258139592953676746114737448371568857530143420884315744472155897376579509217262009330250135143289881025147617750434572785250336041910634210381869145109933757307824674995417987574315293261170346161384306639671453712221740969836989766786902947614282275270420708330667856170873512523354512176470865601613488845221520181988942309922293440592704113916342802585576773637873006004958707246470099692502842046145245337699244010124599697462522226559979765945898119645512897627273105408574354911529037495351533954372341643463760404983338730005552142260040064573333419991438207840930012052968096553459177982672859865788040001491552367272500558155434293250478181846953514144015355816084266665166096351529222376041052392228444262808464015483339766684129720302580425930887382705342667817543645026245351602872477836517675731017828344734320882234242514676369479317807376568661275323730156088573568093670271185697990478213590753724216664296131438273018151117384659901506274258803780235601625774713697225947212160375757112915402579317305644727787016053759941810651400315668361422070918953679395330011313715797323961774085030017227569684103400363434624275554782613864859389552818929241559857602639466153911573932991167290252560463487934367701202375548421119192786377583892852505998543871303422090528322084359081684496443014146687964334475436749228650001969013534820349068571611530315919429966503642279024789136450868660200487111312229591797424870028969164132407146408235367422921183539203646979726667977807409321584112992942167990281405038788444983850606434748779580097555746997905788811879979123219284963806127198309423451314176232762781957967223971566250056540896412517669891317837290588721157642704137291989469763375223501569494419319709309181535326261260428197110051268096192072835957222128334293437223793910726084451817257692011774353529422351564909521448114507007226451746237186334090259316953564773694103802732805571717262477935094109021046394875063789592358311660899667242807253798801513901756768869446207967173076988107380011225706236863776138167373473132253615369943282084562893221923683080325772775056542332224872035619284741156573480576838661208038920650022988190607206297980821370049224398169187199595998344610852960296187138555256091246064691416856461777385024657874126011173074012193930801773850889940595611298853854755292656975438925683382444953369670657260393459791823808177283725573633155407152758278391980206428119233322432170729320684232423341011064723161442013630985348812735054624945288075737432311871515070308091856501101718363602604202042853209950665410785846942736559390153222239778782167745135620118124335696470859204909259041889630769550976252776014993397850069311392259022609959109136241537012377811205856334126851614759499890790052039623984282024698583338651729909010259634820678070068468183779377423103313744260603295822737107882815540089040911990901762858473677403974965958257297732015536751337067977823070482674263168936917876438152035749256305944226915601572377435104036209423319935378384960070945834520077917948127391006012346264119517160773496651052145802971026127762008492592807699083945586104701233975667554442086797838626525217819981268324675959242125501090244506372009924024893116360553562200675945853781172994503421261999949812092473676980611685498475105938203508733027800988916995531551600352011131027678700522529171938129220547703999447098805812610896320064374317219388231133597842117195695597748009099366484442300784071422842583611924408877960867609617225637962113828723605842160128185557151943267957110655478841395533697441154071209664142313626885152541688499149321061132555112802740343889248884845315975542363203479666744979584830967478522690064369485857862442219559107666585637827050204131216757821620350136495303451723303806132497689086858633612563004827391863788776764097163234615813114041107212200312740821138596399275852411326297396125318035512014494711911753090420860015336554700663931892261845460636825698488297536943882311866459301809985585346466858945497627705980671365175236569950782039175195706626495113678782291198003855437026914908646309517505266859493754481653305706341147940114397310567679147611307504165636716985120944152846367996333672153419063347834727412746525368973097086010031683607995682577095941021095096717867636829669187297548051222918900466838569425512902109983289214599684303041183060128192248350414204212502196586615078646937876520563264865807236602659266122202560997187795092332893187061716678931599656097881861593771834691007967675402480881174176354895301291018916626945834208964084763644476208016237054964758213099357382212022958254697091203220043440619059913630519337406465921624791928256390625055109228332007578709508596444424123080171591755129182919861473576698043605318119709199352212662750173488845636035606687801351408923191925508214612333650309663735024295989702751915401594441316620277782611156804809961606947951782922531176404678939868703293080890167061303638458782457215789068808935040487026848521306307071176402147749755129301849406142810370382307634086059527502531709629248418885345371162737134128609451941441203045219247779991482224923027437528294456285309561796907653919284078559678345624003747748961236912127161416796973082807954999332982843368913174986553479399796769663509132376042905957953774605693700502716871357864815090378954823028402426887358730082996287160241256945400568935085697224776715511730933460039035837530170611174776734274208707069302105871462270733887708532771711270882998436246761237312749404635315217084855589810750987400707794363712167275210276770872159426640480878620051553180265156106208419609141547457719577026439532544076099226607963709745042882195334441974948091109479986379954406001760145313881220531138850488884817406240739424597184263148621442030007176201746884660615884935352127386899673803184866642729391801650517755672815905686433800492045146229824017930616622553587762721350587051607217013832285531363463619897887566361235305546337619844481494789900327647163626406979406706223371175684316270202896850449101159363519163892129647039626806993168622459896861791680110176937104696126475638979036040583520060040123966060469029499636187618694594357780073183872921685633951010742417922727072167551090662182664688730983200544544512325572227887102735598186479606917759504241552266230948761998202820289588869959301789120816128281391617065577869713732765896437166088416945183695675797927708612204719809179382062491387426859773659100380641006985768699897268495537051803172298356213013122781661591402111307475478376925449570302824240900692691516036438925039075892137616992546275847274567570546814276695802700688335207501455900944757940226625519064723534367737216016763229469221764922737558737252883059869480464698890607327200153507076993974866536954000420923762125779586775865606419103652590796493586925939484068678833152214670571496059654076251301354616505703957656767140265021239835928929190038781906059668197056381104838919581871337459067575679316248186843788044167382685039928875266451101733967316997394554964603489748779016827253208721691470643304381977866297407376959346772260522863135064312604904876592743067572955324349457726421813687919236428670016225309527436980790091367313848791001132628719909331031338621556924585841844368325661787038023780325530850462087542052183361450924564098384392736152315331764631227207929248312964001204222307557535092943802556240666654433691071722831895105582832800683695988905356145689599068424959706793693980694397125328300517697432006171492985378715577742657160470020419805540071833187629866549541542177806176792163229205460530474576266896077328116554431851270434911236688056402377828622320322894735688248597874372342621832457728934223829858045036928782840510995156423058356608003748726605893248396677398051390669502339900707692026841603889340342294988052595878824184813171891513253832547483788528587951763952534070808237910985414833299595519496477672473874964337188684344421700596284655424674797407637823926791387181525944746305609104356681106046686703425744879507573667937296619725692281278976391437510191363604653860870411199523678888020267727443863428101078130564228645461613020007696217481143091180872171176158237758541193758182466483640476008624159687171636356237773035910726955350807637611015932910015094929671735123914816523566424835977032132966651693241652699944978172867168717003829744520717922818962279150039757063409825213901859616206245273020246220674018419861666336802897140951336556108816513594310141531851361973997198993396630035278896253308410219803930154965699578420479341667646143357333685919851106864065778678042734925678564411215904644548982612494677785335191686184773691563246002710494796027830641393067348006433321834540221696101555820375044304843117907731489387655991104254843705463366725005967316979209338887361634817294795194461162816339078410134534691389734425713033152186962645643698934855574248051449564363801874684066978929005722358488778198464243383046147980648761412590407656815814901837774837912088799054325091244967038405029168601511728621888390567068651714544424802382955925824555252130935021717407127631298179717662762085994388623415152250029360919861264112380767399870530914931861585667357935693236716741616111235051421156931210203329579801767837372817355222613008722070140970989172916984183600587714170669969042303575128154464519229540211248191360088042628418249068017843832674139579453344799922843075851846756676151217600480672237484394368050895594270788264421570425472277552564276970485782298974105903590973001636049584553249559629965162536995726480191913846675993312602701967220101866238766327796110879404553561570419861681532982613816765121966691270378434906685312246060686992551947961886760132370665864178600144472382063630862688283467225863274438846369694461306122851800166279447046225759012062807209963291146640560496684321245916382986949297262393182302235704127023528841741175500237656234472112559610459170135480227123986618691398044191089830609351795191997876808760119316931754008419323608445768842678811569690541986358460926427328955591255992363399135646014633000267956687148270867583300401288441743459470571531134499860287714030703193433966674160720063107928145718938026006838359461071576639048216660378561113677282907924777960528065223032333854341164813780972346257262319220420748385243707869457706050371421777458627483782903270776069790329532363023392884750148805566677745675804535686356572052321925088650316142937676926522922660325982254637517931652258646885518877684192380801912906546937874646935203639817830112096200229920656190539250493644955268372381566163093992088381007905667466192170776769436110213323580742977193438601383360149704769682836764439061546567049627668220630175008901191606855163610372213721176832206926666664163837563759825612605963977247200026282098328974988136171389099575937709345713944573661420996037841309414847490256998708726803667790335658410673174574589611544572554223970577292053552860134511445086170373344996964403340215254589683910574912169587668179032856997843273402570676841578551915646775755967408963530537889680245873929013511237346653809944253044733380438867264571812919239808771363793864192312219650013072569338802205899805258337160579537242424345359887657911780612271181535557845082462658436405750849099325209119143418222490122298370664686028696014022994936388406401598125098666305403826101351131215744457099735386106246128071229568982115308758332877309399234062657829650497751582181201516446079237228132649744957130308132681963791442680245110148428405014650144501471884426171939099164834162560865213948468330832280723949765507570629400651495645720517574304613149415316045659208234066015762708869464613253394954213420988474873108958826532003107202092717057674651160373205336462670472633575854770654358522589093444207128013289060619597634888322203577818556879953047474894011115405348535033401269066541670646798874160567750048139245100728835372969091049262348178558585325141295435504077607393266304927855192807701511375173564315102082921372646744824226009954235767260749827089424621594413876325240682880486791672149220238128567921178579255558536352662323770541995686588098601224970516823143290933479529568284859403119043130393613668647640075801120433706342812546784224919226314416622309963098537322404581594843641915529222814320089219965414437192605199168698182710943358600365447982112378450387157912338660484737355513631660647634275839783655603596011525543458215683453944266283769567356227543847454416811125454902202008341151263805383265126927488995984116481158256346998052519731191781885538808773603530062230161167341147786346518882309521977639218371531291971207607508946497494475968212651441832435664885341937971541040918098673710466822681253584449727548516388309393504913168548631177785950608960732553814969698726210604268764163183025263835479603706517429730439701277302761626124149397448039587486422724585636497543407916879706170177662182844493749373596808101881282660565057677857044355877190876634864186623692248761608939837346655001545527719010766578048584030428812174422693573037128670815652678739354946009802216862355839847169462498490694601855223263328855005377628986247856787070449143740256286067009012200201921611255442835960285751992349106874821862051826497654092808381304058744530783043899121795808531046716497092842732326903072955261634982005185519454489241021056103172142022610943169427310426337742066947100519927525576594634368548908266764816545571642313750119564324719747978875225760673530452471887658351036382895318161973498670849808157031877005014962484080031538557913295907390710002139554294896111755081190211299306615414388870074716094295278247161145289324691365326315997588905538396274340398968802240778372860960808524522548228665933424675669371392414370830950564630807342421654071631392918157756158446240543830307091946616626468484074095882431161345534823363804333545312432083022800407869149084845318624438037109052461235974003209738451961346926973304407473426004222310946360010146406526972471544561411571681572068298996838410953242523708317437728303551801317993907146523247267085586950254012593763922637203715762111243995170470971636871411856400912716186599447475388672549023131572653712500933965445355511685121883984775505864654604612723472973254984626419379867913650257615134972639036882784232650582536960196868771263695880831982727738323630305254104240067820778723379008247859365382002385850696455293837593551601949491298605633199762011340471260620985067857019332583632944258309720329022019185941179739152770345678741716890551022259885055138028187018347640869809500064434536458401330881262702094379926845209240159785199681912634633854877378490855957217118483485242556527220811358903556931246147806634162991961490910108793808476221164794095496633124188710762959398100119154293651469088202978843365135497986252868146579935834374336045635916021130882258857606790968694518359233466688479683621414103463690947146519770138231434810373985420466004931676443414096621344228602432289415604408006431143615037765372509239957370953644479448976026030732308298369987938436283745056587614701387253127999319611431621337886854197746628394232656231390289899344527537744478557787681680124013183641520479862746774146981366551418178155742084741109589171675981615021600676685384319482394425907813086099451535683408424820384130757467361095877399527509099817646744627712292875931490292868607905382563802844114865346372091572522532194148927802606631014294796595566833796567509410909575106047079866727422512697028188820013631729923155531423915547582188399812170590608453718125228702910885477838541683290770827560100189919924894325824337870087042354630871449669278984098292800355231983256101668174011458664186982278087555273600697431286547062250444735528293248239147443595431292169715136923932526392263329257172140088000801758324626102305138786764315780145656943444153507011835468861822395940352563539119464756380436177628362238871589024914371008229639970656499924605070416043541294716042789209708696111913413130827373825743825653746983550024490700064145139370727620814555745869795272785323273744713864098631283564805725526045054238715286298245770263672050637952839000446935123847886013326188662345819332153262373204059631397144061479988597907234931451419689968088799613648249300130208328167085962196963005211259519593817708438796646447293223688159300099666441831050909126082718779226808131254529939560862902499051851126260297151627740277093395740670742268518577807477227772555866604500702905647620026934675280136567896674000664723894548256124435760558950413643492626722150790953770979268169066432869254675177411636207070886097225467837309116003220637209624405382087688127319750282571435323166903660462988681648112174985997790303302589701013996542880106402571999792667544539342648804251007421321080920415475774835432644769792027293506462395137376842292370851204560680992727686883761524108894640321744070445114824684057332993556480797181184970720298108013693337261613292647000994184445951335908871536737853487159768485590398479978460678375896061905657125156721354738795433100814677228893123333164234501886612181607099741249981596698042913239560811285712432502047577410822682832083215281923513806476221388137064885582429409350637499472178369235243681038825271472866493123780297002334980502705152775585438291043521082648525527820045554586234442978620412303324452217611304883137083161127709052498423819327408052582079209037888470049606624015809987767238845572434639037884903199081880511265326056763797096883992897992155345508236558567124526741826875328879167692202502695480667315304443663313837536990851193776458382982387387536826656531183758638560803945472433729390133038303421105942066094439794266458836248597927342314191769654283200081304930311311728795263877232410273906436206589682369000741961677691687622831603895887599078005074947746374891758845793539438633940220607944297848507783267994569831257632063586136966093289066905178974730795049672526090898774020538605234766231459736028300872157651396477227426695528218727813709425968840739231057106628442458207013519947027650688697763019351534782835410931311693317842202414925068915941812287177415101825424904186892002860669115247968731450890026650351916210229177704199586897784208736005697238407214421639791103011501072817769816900570692439549533775032690102326007493523466173470904410765583726635045989332304027526308456664283509887082892094334574463609277403170832883853451303095014419954920046473130441938897541188628620790782031064264919824088418719251857866502977761626805484396798156406250937325210050838887147274328100168825244133256989669419824131264148093577041371321052525368966912076915458365213740880453491288002718718463802370913422015420526188139595282665003227782251639490666616725898974689406010677786161329943162004612920073606998704882634146040425196496462701733857428511385026955428570162559173234805603501259062941892113388144056979033450359795708688675960820139982540769063622488238888489797465371477524725652835111359704697042805906350832930855062924800620169937693617413826030932031530059073931989280637641821106938703944472659513009745198484472411572285292668349333001648507525225055082010763170697339622418992745145985276512986650832916797081077995545632974379117516591513280480077694609939604501237170150068710824332646742762024458804928933083696461315493077960585594720546319768973870009085814827280816822034906469714216743642544463514422836311055886761360592941240945795697307986559137884360179172350194198492264516009358292758587208512272674160832866392786415045007717893554805600472078987182746244596227101114379795442025319178218673962812503559317562771916667740847929418410541761502773476628580989075551124320127573223952602155587931692734918865410491442268381806402292699598814840210766094159969394383337155250680731767731653908457708930345235645491812256480273066092432588500109634556299059384512286488069307072022481222511442756170211531444259028320386868678206462849141906633870513850584483564241721349815058559725920980214387432734503614417918109320360824052770888617483215202087315413286308312797744893237237848560779059065929643581569271864382472817766045614246677206947673284603695961849120183503211512485421774696449929536085160268204574750045555882323117309201010102584325165369145575495988581106911225594932229880860239216472948115962424048434966701262277887580889378621793913101029513212533158280423832082307868068356360279899967498490885161027421748101536508611620948432440486999369355486944297294399831021969073157627045744856916234225877691868282277998072484351411545786723328572591461247586924123426509921728450232473645241142372034140010874590940176852593127925048566776439395943891081760158986341654464852193392734701807666770550926930722434945800121461338426756282516877221550297277392765041237223867786926584969387236670829610683918839116861394896904639265878963340671466222858328123309487009863461495001153097091703481969809410753016265524720468195900163664228298091151416543739596044467237497850502451351150275530833742257972942704431995259758474431181873980649172121346166322065954702036099955105798081789558309583659433418296826899063531606451118567930529813803390766582132978959293346590766986328688153071630786471812854151072455812315642333304208182782299646022216676160521188027758364692221373815397364952285478121129293713340822230820189988203923661929525243974800309487442766104356526238664319094010187773355331044559380155304767501776516575644646492369890744811253721812669890510196802663072196716978382830675729651653603848697192799543079448332413147955325627715660993077991289496216126876973699433837166030291448778133512247470019939956737107056399746063302719002474150379762834364927623667099250683780481954322373053844907406669533724675668085368033302891673176106878291081666489043920390203694748215797399711548071140913042733163315559986572443298538240211369552938367155147778379360102553736940096887448798015358825991445247589360134422438227273451246747572180524005664062889448156189384372098184976848451683571497978837282913667601456544688716501953043324634173867627253793500705434302650065573096336436837424790792166958053651695155411254949021488126311864523254192615683952732421574991794803871120844358413640588987342736513435883841914982963300930161120403306140886955014782675293233024020584900061324717136124727404191321497276305925122842642398881359053024081454971346400988530941257054636413233085435744885110735430647833744689965210266415303185176930638108239998111516810136033639120757030307781517516041039951461345580877848521993471269933681783420791634974355504458749489288549913692194814667053787406104522297028215734359146262605419536792623730721313088020734914322305954519168848294661048737099044266884000512084117122063198463002629640079069662031921093093594461582114060366238367816246452989756519678843974222974042259295677546192547211470545223281328128117951796542599199321209195385440686173803429309633032859080258714898407153995540610611624956207628042211747402830935210106638723780326731789480509408765786265930760445237501728943131121919360542387889053642201829195710419741987082009803461679870276895781971682125393678639745625079232304188092580923724145340394360517978394977758480364291778035288935973743756307233629379724430698794073459856566925470770874697270284748152549562820619854290707464576376898280382993661709512919829368594709183297172529694540434940010897059434897555214270837025273311119065991265820523309229614371297044933931394122588813710224858286341952795098069900351700427113338406755140786506114358002842408212322483709290262118378540965108427678720293417622774875570649612383173342926163863864258876993841512640566376594311182330339477239426190964195043433113828586901879193715281590108229693911476434324370836898532417220797933540619656807927086374815548142886920197672510793034566810275880118244419708299613024333828817641958803382065649787478910887797703215443396864542135698996888631840768945118799628236388314062512896987702529857523740014947327916010527035722891041082400886382154702838568761378845119512144726911418619610258041472595997045233810334094282905840548477417598025959497120216315080786708902016871179484314739806083108511087565130117444661487109671712869013785429218686496213705089926652080044819394079594747999430454934671247027068181516055967809761839117403942469973014684834893008516442037920056035017617357510951886508693874709629307377988589280712812591810148608627187364156866478225619866012320874207663280996097042179585918882746806424809324031467223728837285128894335346652115229863599496039271087394880471447898362859193942457586645458389513605807403073678970716526752606884654481946955329605469328246043233935675768192057735013913595912997141309652390213926643307301797792113238867950836326824055952867480669010968364756107278304078339208752004325373189248413550260485230199438545036325156639279961126347735886515867612855172967928463315893181464081140922696295486434041924024034705755612298457872631614261603673713532912855093275491204230385533698965654974673349180552560822733918914555254342622841247369335181995878728809021333137127339364792910717266278496631612644231453141504214613663876079875926611717958630783378624818082185313361294521734328316170528319134951580145322707837229609532588499372683802452339733570309502356642356042572625913181661140217169216213602141200425935479244015292887614215663696812080894033591374637560102744940581917523992401272192821367377702847972710698902628110013339960884674626992926031098706705410158547969467212416435743878667142012390834661335346454994950693276665820132383520852497607761218821218962944704920798862418230544078722899463451461852519443349508938924296934591424496934163572909083992039508225710629890893341070762845849631452379138413162216330143073571576604448576124268950358322580473936821132830339829967719204443756136018059634940615924123385167309565406346472323927448019468040155914491503747625220500076209999379007673356671041884692836330084420032624480230203535465179189402289430199920064906681654034454539039034454897545007880514618498779360339427920276338558589927091984937900654048114419138536937386488652110563985542578398945800438142318988047394872439145834668073796948905771742664670051089815197377566719616502453442837344823857906479476591879687053682808662998298192601060218775963699445460009445733138207408371292328929268045904148495738050475288635932399049764142253961603489721901050735433883222316954729335324622800016526197758013556295126949476697851081074611107565758145434694236360870474873311125140165061985076763344341274208971307410654696217358341026642027154833189594962367911106749776217119051702866530892393053412395538084764643430633071386584823262223449300069171583264527929331072245223911146895560592696478097112663032175230929316719713793408073389919648740211976196806863375782445852855742377431370374512677333985114543149905082102491898989946761336361409627081123708050680618868531417560272776817287791238651729323208711935166192267176131950256576264384099387621594702739720995097740041399715765773283405942857342415989579122101664149533793070619916887408721686015941504224707407137088115398124358529557302650107672875463476308374929970482582449975928565594442685996577580151078476465832528983704166556183657712746779459152381496152325332775054422567173858205584598096838121670641975415751328327165379942956071909678183488064283526652326973134614970999056978093313718803652084294617794135233869938211178142278208844570915048725633838117389525838916046102496381023208196256943843902889860111892079027682526385222267836026366376433392732804792619713917192455729170539598085985888097709068462150848995210985221223745530015534598287222813022169296454082043000378332599626862659385583974896621425107182668734512263429826304731607964926420692680412449889374859301347288768008336117566866576822751580226834977041398327769968285952690747420275387500680265224998511307889736590460031666773838541527757258905773071602186230371228425104388191992808742220169643752409068549638091905152365930397953883465590853823219672692170422654435715767647438958057579928550858393519137769630655809622742470863969367539946215502161492460999881903002439529903188073403700898053539406142526424639472629263939037017043560242760190423175908941377151611734004969370395579548886077156051324208533252496196057379941730251338800291028535803240004270041648155863708868695721406772248950291737122250996739324198361442604460656863804711712768090518041793749882750528128287897342732813240753251981634558197945566063267425588686586082813907913603585745564584059338150042990549217192404347224349249909781545753150075554211372941676892749443237246101110608656478213966676273409108686764737491545550606849884028704585462765717622252538003897983043555206676204666919681603402196299910446277867909835299681675683856782110503803006173621851472081481497058855437772836919951551476570198737284270708025357117879542167514314173651107819725751133448714081929331761165865314815346814854660481593196684989343671569768095725942086010972430743400758839698035874251508708904288482547843071017283207357412803219174038804731099112702448164352860641482691545592050746845518916509959288113261443330690763806989031977416661910338875158401162596062954501154921739590209492251286222234456709478965734039995866572806401080883938802349627462213130647629241743573152677218515306442995911855815701657045002630691915703787203472967152693103146986263426710283782565741197198156537686867113123467408276930453810870339912777578053274566629126241158087509799431394410624980156592225792764580538629009558067108130258884691300352528787116403902374167284366814102717286551144572080753579632562312224351294114744989586749777363368882296420326183458968979494867099699558830523962092286078288902359262392348337645364026184066861199558908923260665626374372271563013837075742128552590072459349527268963846390699231286560817678214181434325566783512237379459458815214514006617132424544465932189995494347258922370388283152216840417829149411391096290043917475525018045361091719859100309733040712739891678695415846426745676527626255782243232689310396590492698192125711503662809538418052594494287592841452724916517205966792887396861572849802556824311371799410367823825997663879450889411265648398079969490461879208213287469802551163565825285000012344171504238060286884533438389421272632436614513603029389503011269040887270660606247218074564165915759530492290680726871653639710658274186339211471064912102212720731048449589509958063051090317839844633382410606942242475969965504668243167996189515119438819061633375685425744984347950630674679590777542638535772345827908294069585512732205830521469624534911091073336397050603231292766870012171258181964378644410112334887596973260043686914678143435986548045509502943099654666533490188136542314917792327647762758336430988797604578280895508009817164205480336092528796392415087803214973650015750262757340104610482851253846130254308600848120030669500916537516670063051473278786634104522675643672969307650654844891235996210629819360014479505459065201236207118381387731038974334156815119061777982896054666051510084701508363239860432755805727536347499445336163885480743567575166299796874772933799706951070542205553526260416958722843561878665477767649086387059493369694612904319468210482490652540597285467584972419676411772357746576481582286191550190988106546449776786240556628916956697726836738502105949012905040286186475978952301374885170559978403669249362650065972966000216202147740033277454241182670155459400901016867296203857282007814216324534671749869620571129957475189259840137775484661959725296762924166489254381434855522060707927467317384250962700854253500957764876873722271994034747421454139447891181836804695664542564993224484325097251905658232890897950466788639348555621883706412265093043182810577015370036655991427355402486769291537222004003781701956752614744584264635607720367788120509634983102782830149086381679258039831441401104338882596813118959744396698399394941670055291937908498447552680006795284015784168790506302435364494624812377585022394523494531542329290829849998811051207446267013883764283852002367197136452609575396790014206348716080421897046884615573570420287253183888986185870967477567969060517725569690354481837166352226886087691355411689731211335137218850012568132483322539143055340736193425936762077220044392902661140212469639773143164674566222980254630539111113815563708799294537667848488988820455836281217095145853674739899840967928143354286419479745724762026674997153242043024786247672932621370502578380524502748863687066844972567971760117539864041162103933963607143101431818016841321065467690933372682222909014953725121103282812529562184414032549923551881977850353364809222106862081450641760841664320776872109562773880290718786577116687187376773668182156297890645632403222069481478673638138986648435151423541398588354318320536701539946862778203686189316505927755874739914685382242196653144736490601691374593730001297646414275928518483588583116890272244308625415839892913762031725666758049689884141515460595803518691391857563329325073150521012285274797343445381128245550104074628700198763665155698559923607787944822227642576699118118285699429734084392058143783176840325117377990473134043200977516302049750635153269528236328003484656543470933878295444662096830034718349007393143368024468216465231749159059923685631799891109598658231885972940828334200459666553525230815566797794264945541438733952504734197772632817328041987869039039545011344113711758110406477406868414158713352538918047316939790885009098642919780241953046582552576102907848482833128450387128081596561737573325611504721900064930907689616596414221794531330185502332534949543572714974468227340589133843916865349642493196601743378950294020623485899321064968935976018537112241120769532802264185913298642620537716127416180810626094389481607911549311168114024521925463597523340484739021689580857228237769201881482611553107861934286318460333681163231652095030470909829662145205038780762031032089101373997709739979191357074459633785527612307875480003842134353350621198769098857650452474398290659963941095332795847459540261458751246386119060973849880804296563672319597686501262768143282427058984736425142562717541430200212797411655866954564523412171902321406236068957567494422292436376759872961962343978301287459249230964995067871332919580808542756413233551645774816956899790302112921665569851098979006484704148182349224512524405650929646617485021434835789509692954605675994261016938021042636572254639624476877409674933293528116939190844307219110676717427537475471413769915084715403128958402437161242517619242553409369795959673714873931035434299647905642643317521518885657639802877281766084154900495474596083956905116116729359714618287913974524937776209900796798672449199244955163360924894891606637117624526602367577648673427051417504985937369336839952258338956275719771001581916655037886415170293693522731437141364173497910451397331461364468690566593254917056829904888398299009397535495614088576446893055552294738804697924316080056788279909283550434809722845877388381585929049814737900657387981671788172130231098318137885624508809502089694361516021993908080895849659680317685971181720971957534535356449774432479005070561116178379081217783021849088368518660348678701198333751787423547910980789883337473813443541716746520420555260279772021697572549059998772092651386808180670969009721607127226804400093048735512017522329888404291332914440502600471267086125741615801498892515467883860294563848707006186281349967048787730543571451255249279867974950355683526040253900696603340552352349992938758971199948905467457853580993881926546884500804861344144708426087174311243656395473221907531697169056126442151207528158678678942740930483467648268179693829399721758879938759982877025550133834905835384150376261084540766700051979968620105236620058511747604763859991602392054795239273256438590228463175925259044569418719804726917728107062298241591758590828614936001910426971884695257933093238484413007699872347125718686134964221545209930395748767040052386539598034178703961129763100590766792804484266319522854169469532165461354281322781867719659234306380490124893909555660033520808591056067144994486065440388864867025231077613097104365283061196357888839628272400289810422217302006888799402427115799776022937172201706270081198511831976435776645709254455639682330089470708009790211082591533763566501336383606233035580350490449045967836973794199214515482779829312929679065287070972869235407439842362564329267283215213198615447741530635381636562491846918705318683646946944341241544669239503821536839861028813239912390821327751950814315728503469847141481848057544088861772893210322295327787028518435125883479690614199249011262205791748885329214870392410122710682642769637375311820915387949426678421500995152940909529808028375199088038503878247109779068124451352113380092557937170944402788820940383499918671200735758480672609713013662190934547730897365249005977865979778575597153386615552033311080798431597262694128200230190614208947786419939283267977432964819353761812021617179129193468572075688809648086582772547936015773467854089246327003213218777303542895200108333579545782363298680151286907914213198603729358140977843751640029754471850392619211796402190436719167642896842915108825608849265789597883076359110828064535476457289335078764779763518167875930979133696227445566835200978149347886606169674496983149632322439385440683456541029034806543782088768708999071507588671019954346055312081804916249808760210444872644499358419333825990530643215610205442812044889913574997331679258679932057843026725106584218198198653915786438859463052507379788772172238646953016745248192161157396402688202791026092706513379199366832091887691596939898060383496675101246618769424857983327970048596059928932841939551149786818365016308311090390478081955378849201424595193354304047987338382969288040736676822499176119065865149875947995338266201999565344020487972984701223550546420428833326607696971758352680665827691437727431446721547757328273356596862594843800312396816396332601315553660148389616953229160141759685189424546246792169719165866206259935462022861947108223827916686903922198891360872665130787845320003084353819147821237242874525334798245194297164318342457051902613215777495987265894081434199288243866436553471459166092104274528218293083333717540399142809319600129883621747179673256050241461827448046913204107486054394319359651267577034164262998381110746870499001095383475933329901021750388067939635188974255855041987348793578443697055976531925982896280121412357676635081180664592617325276205718214293011472443958003273681794084388296077779633602818711623065628321504424072298520285866105912942939804646858092594966287116480252834193407518861013634694222990729084829295935395996442762157686019717380649391453423926269223403339078862723287887970370451990989108286828061110535499717538711689450802950700725201340013487183170615265164476269383463286708733194251468974755400981521271351543258551073893456194780785797577848395922169827803375518056431239079331964856133489918861466886929800373927573086444996139231628975754678129255794037433279509619852760838639767161955519877851467568323802204208305618495804442151612176343790124466924268413871555860849216122482237234310427446643382626371702659286002612921528862328019183438003794667970132544372071803374536739138631189999668409577984473058607771231479055418609385571250750812039274751031702475992794865293512199435690261507594680756027647043231616715009207556876851607445581077137818722314708126149797289981490458350598543563667440698054569372361534419585272608198446818780757313359637969217342572986040880393300874910199532149848860938881968034134783271588115394190543717310866681887531942254032598995536160419050322066090893589536611576449681877650199685784113244363634603555280917767975619961906664068020880941605820115392488056797330016226581764729455816314196554987424808160348021928084214472944942081781985740454820231889707736746902352141177759567771241006533606170011423851236309592457763408985592176346333249471412153709346678411540739042776404862220111132480753202906103482655567409825302356256666208834982914948983514435746318408690955858693958696529455514219836803863542899662971291261254530219422521733153466897443863481231441242345538523296774259575276205204056866656994614052401292476818034292497632588536847891017085670311232833515996070786519808935923120146733498651619301258250946482925795655416888311865941601913637715023188759294325118578827152185112737311478379649581479637201220100059660998284901474779335575403090583233263644118610035143260637836990902305916927234630281550526833282835590369894759966937155240716529801628286120020610773937529682985456631293596174018326069831563495021615970612973670875285054525067283975100639262878305566841999195435021070832062393674254585610610983928476131004347741326250069182805384006155689025472046141808337175418058085125603234027810660070349046535809649650731722791992975117291151244851108809804020246539586282436535776574300888910293292413264438638138344375821930496740828978993537114639861792829251691317387689713964566350470271929886099056871811772340795265100008972344537401035146822741425248583876484689751208153954954476617380883026048507689782468946103326995630639310633736684109231245101136537980105544453707348595092316735213798298562551789738698042863063678730232579862677268983018421721577562868770944860633362883031789334857265738262408505434157319529043070330000221685102635434176421059991365850070391160465062605936058519548350515643257980802034999771787522569586333328130424376210615153798112318983537339083942944595343387332627281576219912270761215639033187094472712445838284580534150251770533793960530902805623961441155417088263155447673226540049375045440523853463332249390229314112008896283850284852018849038295059610000281271519713373113094971093613827706231871186246573594299962045529293573456677807747418523406233733392928049168534372404499750994093687623262462178162959578834277345789487249909182293663722958681552536822912632356373482159523319005234998002511924251290969242464432437027935198290680648632023202120152294597253197172779470259191542933625688394872698881038432571046304538953364199742537675465055338913527137124818284875158428809856172777467295281299145949511165388883954213154121272610209703422499504699493819509359868661136471293232757751335156188754120999622290958061168758166448508694405260035855662576673215612475748284287990802443145846841668852623383505445407626114256290357036848511656173424485383905042152944282336398501500855138473899507995917649805734783923767302728350024798756707090985641731918760474107975740662678394786972365781666596808396444923297136506983536757512048073064735205870730919996869297933806146486885338188514511590562366701946210414039663765551803700475474321489467662939654127446264574150436357826021993531462972810101634353477241491737833550754328389541046552756232949488990292343218595678735022367342739995921617924481354306605059900124715610379760817980641168934139689141841261820006291154932037938813615418196173088627999560241006015772317511936247375625755885003948651483410851466053456301426861435467818370614543028802683360385003710327672553377651079259313411442152160089438983163312753676881906490892385647692814368870810761367233749816149528820900658949829226853131290842699792419375014846516571686217172889795749183902768516647006098466515231197950635949890437409706133560235148794781091667751093808103766003066284461747613326213962300225080868203726711248877171881371592690350861366891819069623874317395908096331797628151735110630597121514141242638370363965390616602393628228195087326152155440196798867198518069953915961689789959166653673697060941185324149605711361045821189855086116639751499426326086097320814588528761926961660125967539319854102062078587661104487417570263937438771382166798206771028153226970965607183458619400670710907581805895221207574985200424640659973322372609739286837631740907653316021656654316257758510431892827063430581963571042242569279289440133290847755801925823907870444713972648058008944416371809925648391314199596552670037255897107986324580279319692748935640146204443357568366545135926120817089982651770855134298659813865587861843407283729492089679471662203857418977895542400079564140120969691544580420650504852606628116442531706581315968757165702426634155383809661285431377389742173879766924408492420180249731828021152445861528199241616947625954132428473497193326751251393416990867554885507567613611017274136011357149650914817262984419993231401561124240995810766824741660692392239858209820505186672182541755059332201704066621346668888554301780744538737525383055595099258547316435070827794024431100970489260945143611212009406763294634301681218954311419625625500947026332313679461572584547888155447339058623877038920081611171822208203619402668083718480499656087104893207135515186522327159446367046053059851407036411662490999325819778724072868397949191475888572959558498967140210310353760139151820902278645672548088164034668259911461204641275167299815644787575518547234916364016320685765569064935153498545791107212394753577795985704668328461092097081052275678355496564070445588934047185645193221660546668298468121435987400360598483351657344317449560633395143109822132769753973755018284833498976416920663502458868835901126663572420376967422656036473027625969705802319379757132826214956437826641940400536110274686319356906154110385224785184839248770996827537515687878689879663066938400784082707256713335696503515118711223391613802729589126830065237222186508557185495345796004844333296539636630110811402019653906144211171641529239731788468276206182929271859252521487210926556275428538706238948940790971270018819194316867827804964878561266294254740607355965997716913836329329418777410706381436388967396179282113024000581961284976879232329149605792750013057089629711235929967842270806975216120611508441495581038714725026826066313313268600358203908838065272010258603836319882943805258060695027653336614030736560840178553689378120904894314551443748197305468121590466958119777537351845778522266638732273476420280122146646607835956160235284979076188671337239321786908800653354977164018979473308438516494927640464100625723037044662241048620065311122822981984587043970141495630642630089580177481017196870150329395124003324457981344726479262416544063747582757527670751173217320080098080144873539117701234707563827707430704403642519067138807434649520420228428560958674288082426959535712450711569144808151296915830915440136050114985668334698810749440642364292603640205154430457201149378287916994149309362226300126162465445713609544882063664559230390393764949334749822543485965729598748084465200103215630742808947974119765892067700497216227832742006415569017010222008591582997451042452131543888867200526151543201021979193161049534747101996018008612023873149206563111195849677328621243196125527822823105996166718752194884687279587052342998205955564746227636986971389800526342536625281104681300811436988154907805644292699807960842747790499807357115133728095871027664800121480037800042839556797515557133777413974316853549103315211902140097579675293891075691166120092059795860043408405210849139953539472353080056918141951164227047465353076067972929205691518025535929073872991812340006773297270838124275508141908425797217370910256937387145558274204120304285805583984433172051372998610589647515663514321458071089298803351397379881245174748738120375572632806660658520746793227143447116960714268222387365069748849749826907565364537848873039710050369584211560341371766653279096311700293360659464134617945271783153009269200804252530400366252539876414973005217539885835824917899432932761578813894179477200477184005874265563267612552438713665211540780832937186720204395043615634182944944754154794311719415232721282405106589407984055199702856578813348788784199411069164130831963561616970125250357660105396241517777052325941511382328150643395505564986640884159456106895883929678867874801181149987673798462548309016648670376275155699921271876252589727087166033396791036423891373577142804787377639957676710281303948484015022755985524606286517221735823264643210678426828197214318339276406818778642420640766973262750588779871201532888790249983560780817669734715461878659084149839973434060996301296065569943978245613633547754256974056008812996814779191239416232029172831653188182474389169134744836146567159302854418270192645003897840093076814030622205093223311090497349102693830437511991165886280699197235392053639579678504008499319590262231714640934378123302315712905157367688266695244964511083762588745855627509900931126732830533443093717311056119678774434681417406203712460814594220692263155935144880278929439289194819433045802713219467902751753069787570055783541466281383428471387918468812778462555687328379344277594378746285545018314547723046173141403064682023123213851225175572304641394333333676650087618911933928177849458605240856542254199322834170875462070365203232069114442641300085410690439914831732737352638188608316685314602817937087381316248601806987089632406548451579001445280343357247706795956031959703367122933421927567749870153845088233567768867753493070265825858882454579319805040276493901855161308014773059283605426758227311023787966733124935402777947524105202286860155801040960523262978442092431272601787854395583640192483018881104864818245743642318890231550038386731978393697710591238269992036324835375182704369997934845196498458375287442115255982223969353719601781576055278788746907090469246425107888616970877204026219316392053253339392028421073089773236431084624570610799204360312634875790304346714325530062862546801678720095498780532925303647695795939570230021388605784187390015000031669123282814453115476350581621218514235816607315087195627959286552533384093502434654291952322015522911530763504996296920667550414129405050773700120208333490835336908151922143262101881965721532549276993241846364910666096678878956094554022657862083102278169258903946129406406313955548789868567624595307913474146553526740506450475552972330089314276746486340692250397181287766616845132970255912758931850340352657031823520664937522739939009007616207518022686410381204045615053990589382791350205131429407777998082152488794153581268454921220336703444711697346552644654716443074877663283797808280514960202864976160596746863575961302391319225524972611038286277747249603604342866460087734635078619056385866896028647826400457632803622184737577490463914736637025875859201639592565406082462837225712693576459078974213986606623177233697627432193810340172009463849812620639434803489697162417303624580433579879631623120547199012486617303688127722345975620526084818471037459320403081781914612704911266074646697452341397995761195381146393027334582964641982130303415108892578832568854995629367562339329920556884583653473595279446403242002670531701235283639824206591582357997808661779857140098983402995706121358244493698091295812571811983329558795830207620660433741905981400905056623305037475771849157069298149569113558526610424911707016217717792449992058078835933816361571433491708115981888711332235128485609466318169543008922851126911828524191511160992576563501037964975756815228404451949720013688628332795025394564021991708774526874043448100861824655072779935383447148947732048296727016988713466324327049320909689853081097934152516428928796417752544614184770479470983847963423461377646671302425240149637570512519361019330275303465364180473914365394316552674322464967488885152250135092993282413541924083732357190982955046886535802986500685854852283468661447367388260181918529852934387824494870587890474253344917781857877111806174966298350316231344100659875753116247314579473610226823048624957302089552787952681671562801926188215876084010504119819759334350058283367539038521711022224140374596002326109429097007367106834501183255467397652318709285012563994064605346299676849218650512790428412344483714259358989039275885190556474481598440615554404017935504104085411343903228472219019191834828241452184849605046442534509503386420290562448820182427940458784791150174208547544285681719003180227507064296916112928363874274197838287522243829691237238158825779042978103578922055254569684036887632528250596514251943700947939608799734353616694813445375217469963481200250606273717238597758473086786217003636468894469173631880532321496803865298800445944165389553044214516593608784528439375379627323486105245959947869374172076726781001749623658611056778039524389038913407983438093647369155421794055160899804720883651048804613326575947726343692047823138703979920012207651206288131884756425481705897459066044724839144923350853989398261923986653637927576238923667604595210863491471526985609737337438412253474064853962281630799072551496306236920047607815840114091720388565906324847625930115197042070257537143407435525856353730290024699476812722180207897056822678668243292477523004027482575295822722624842774154150837310200690531718787439584266831212042452824560742152906512366667168828197626041565863559580441568817684303926870700927435246466877993204803227916360979958024984996606951852641060639344352396211733577607107803203598482855099214196572504877765443059810659326055487155444325927180776834517157198013522315721246796443878403269110164089445815162537313370018543775797350716137246030976222038099938000698745530262695679052133692536976431826053863476003658898604219739010170494667466223753561538363410942658316168473346605524669814703423512501678698757635202935720561687819017545597017882889892400345463226358871021640801286056449180068777738413329460573671496420003050370945235376604169810079617191492141658026286828682545138778152258508942211761653383733053823287760220253499390026395217005818981212915443621462539574988976701204369871528612483878188980311862043042894985326437644433725857016627631615531097125636899622084060508333071540923569166864688791616044975946243663761884491014441089546603408160716505815670359894527568029953180926562183545187160664385575462697519416949178284475963688057190520286744414938288045957156088571841813093830497285446557591426594492075898333158619369920461237040945043002019201203373901502698823696440422893394834445833485353741241028746114670909557842034819749079655435804119637781366342222005815309499277122361465673725951105803880238957215822440400765708341150808874469308409081250047178701681668503001519640548042407113249933060956770357198173893425277656613348884133635794404036017867846142906214627164270647471158531479568786133955256121572556403838882728461404176088926085193740115533912988476207070141914844993818245656715356766924096516660005157164051124857363308098338285045541407054224938368537982339217650152678913015248505006335002588033967384022517099358978368724051562191769314891881117238992889773144322832269546660121274928785932258070292000153055041958097442221915796409144233081732565612039105487738737213118322782298884631821466646865745087153864435649999587966564862639526141247483606941944048424276096846591574342280769517962997465935887751210415763236076438513294978274131670186822533425781310202952283202276565267563721447041400028730710484861559789492317068194782560155068777530197546378980019133702198257069633346808371549982077814694031116376196952715023740237913116738353817521145106397886263211526624002755070314190007812041039691176863686842359518199643573870813113950332665992973975697923550758510387389719437116423879837880825827972309512909312115237423644385267370556511758869592565116318766612881639110276405839076201690284413264487680088319199413466069567184922421447011555784409979432620273689168772406389717681827398556641058728063799271203087849469369199195503039261383726317545451956756773219126025228738111375932661837014952776049856933340007556319945892232740884465487250206910233573942364656862451387489858550013193957210877718457308073534554311952485003297002577776729193457418542147565921172692668956491913332608905153724996259883526993918030600506640730701915551579592927058104793265069219871531299530876806245832978912010042893073701124436228661958646627709183522296936988515446780731800362595261863968687027740104871084131883056569710935835604577786853258565093143985988939775439706220881229062867851338033270936322522694222699780957566058513330917923246514085324123189859820649497943261355737890274280329450697842399645026851742996830708911480144188514713492741556353601005649795356285542116826714683894359867346170258675117987969126737423821125699284057822656815901284384891477443858258502994494747519190650878790099608102023852217153945632752142423299138866150769452549764988935772921601928729665382089375532384862221983110217123926748736070296862686380462009073773371017269656332453114234638257781453922060038575932970093377404313134306867911643291002222279132931522263296153164068624465565206526673421060623811407555030904787099421026419157239748234027583083161575817953069710363123094275753377850177953741229932805116415845978476568916672202966121484810637220015800009260895202578962512644731033312692630922065000236241481348516094213171118686136796255100339985002035977421529761008897040876571048456549103810759066819453991817452934840683491628229972271761056610404048990448773309447325332391216432200411616978667014154008646866718248600376813238812359983866478555990133296796190786131954996779756289964110206277068375628857953879641395942939613843902211315997219385376654085927417154618439621427732048154364077958329839281521698245412621321900910248824687038258205302047491419782847468415320602447565460500116247843176124197249540070557863601264447647338963887637023582006921983474835119158430259969974409760245272814366577653213975135662353349692280316675165845940651365688583002055526610562747484665824312792147431701855062186060423121170491921603436138672704524176982884827077119832455656242845448996384090743022433245523520589471305995783257095744036271281587886301189928063372392358101699136896430874346673719545982145506663715238674853610212347595085207390495858223628107370644943199773735174071931371028194493027778100952371614392440341497289308914473193642726074317948904002893818372522215377365745228290840179202364128712552282743303700623735727685789601646688178436613672500151701198290030484835084687816076934908199566038262824929405695192611637590203678772843712238282552096317959589319298735707643370267529002360283984341497477054542463877485202887660292314781200990631465497580211779492353221195877196963303990925199356151212143260110167717882469827554816291005452113092000453197745675319852234545711368037180009020955274492912649095345049484838395551987545147733552027963801017889121570275372814450451345700353988663035992509505703746853830886942776181829816095695763686311782146813992876121146467400235194248976423796955139203664214446977157517467086788026980993717302826775548753725922666584071656374518849818450492426812571660320538154238799318076995547265095632156364500070392226815763896304386210492948166336413717396372133347958242777525682465413099774759546674023564566095361088865513356320378021669324223370861075892362657930388900789866585032264904838603519810584803841823999589736925974968780874579592477897897805277090077396796064161306209982940652125364233287647312616608308444388759829881463836986698019079017302504940220524851811986381215246331357363246006566488167773487042058844453045811634800377315492061235076494175988659709226937166278726578487115535963523320225687038636443767354642742943557256180015828239686374961419045185009112473423932769802436866664044161214842909419892517153990881139910395450020289274458240537606264853772804752422492429005249165216034001668810610663402185619501202756151359519687946651878716484606048315115746113639405762719328876222420638717159417735836970476038208815179055946433643799200799401426717273386145848903126648422271533945046912405400417061640884222489366649327438147926185195762304366050413151838669631243969749567315136764414985619789813513756611040032781767870468560887468460713958908148557567441041895200781247781906931968925397600219583255546873678238766355757952145559804089130481363503322068655753870723984519677572215776940697849769864630965127311095517830140867954969042846071414002893619596105358084925315774592638760227401540283440637111405037561799925325239325420828275865514914175341756809560710129957965606682344194550061760392398633870603869956729731344427835057006395845475123223372473340095660356237096542854693778032972215160283732426256776570463166217067048030736717802064719033426832120467970767722304308506636662142299819063229833387973235573905232683463896847975762462223185875136870174566739030288703342905701819880274949194470795516009022099182449686046394130224348772434119558953618873107683021785717029533754149839738426033341820805666659197571569821222076098575306517493598621986018429229156601711225517139879323775789983853386927585407929941024406929405845761576931248316683672548986567501836945592526864437924959520188226153620558359176461983709732278162830545814548583018016996239938240915424684667645537989283591665004372826975232992584657331139029960330623205307244840938563748282413748954912074345856385360438412324531635902195185224482054039990205113128317430138170842993662322595900139248278199090106124747000497102092598863919302936376470409769410628810659646226801515385773446201129163555974330914397756141287301499655363415914349162212107406786870059934750150013219432534393448008324873416748230989013707387807927298544420393398655979060006240099853694510375163147462337668886477058508627839757974824668112650449883468720288989809929110785560232099989053142526617068289310060315107593449778910767391035415810091257870797094168386483305349245760935260791229505931846763482405649848232886323628368506763029316375716163281877778264245911467957926353087353722422364814118144822055724046706342961917075318640162548405906297516522434163137247709680439149239009774086776615483528757977267216962477593174743234778487802693450860265354621223210892275466631724496270958771259971235760603976865264302807142825584074225607529958872555608227479320213699557452362297051519163710208949359118747446907956778367271471665711235940833491141836305587285381658384426926710625556772698691808113567996227314009253813681858624231897828035803667800494759367883010711718537248965100324166809961371589923232258916933620987873002789220182419493114401008814063331271992064869640357262818774327571276827026092831502902571509255574211027863019719228306107221072855762232339191475621056348861407853735146762260194497799456136322329934374452297646989925395072844268340050254121536496121546439305432442712235919948713355243260655451288355771400512353298883972273272022522495389947142848501492691875970539385168688067509460570596244768579733002677569335339972519642487669971522132332637322896104577722051712351731603413603122331648060355161628142192320063107232842751841969073098928882582008525934630113632248915013559748760850421581057853101449128713267958371061769286965443281307449803015687620089074996614094653688595409182183239948014224990800987209701270696721335730506501739860693178743699071516768791129254148907053608268603798608623318149845883474656963720150255205716189074529570005033744097820740017479305030699738104232609902522939759554511135388391877415061157354535030721251362726230402828831677461611945595857913150095093549572828781185597156664965941202893893385704130743285790720216375576942299850308137540432886142062655042572058515587635656956920310786856430456571184350792918880752881426360745453054680157703019447169368094278992635237693417100035054583514327554901731630233572445218273477390729719196019109665879725387196289652859937099703268817395061420527480880098302162980249544641407384027035054668883040432857538790972709132171900190850913874838645146043239892816258818613325529493742154816486840250706481389164461324791609799596823695187214267256728691473807711465610878967328054736522961569693780848274739786003163496374260491433093735838890631564960009185779255499990794394664118983203055647363972833279931990282176822025772340985186922059373553792646879206658693193626711762528408112482463991223957138184514044617313723586890982340415193543497533513034719467252312494288906384215352575091040851896549160165436917014818880641790128804691545239983179918769282096479992033393264425827071246387025394879282010051209694620429223101931497906227216191415280875943217213057059014731753277238302752369527713062768137269679899962063529996215438447384686273995747205015703374141009500946285770811683092760834028659651070378254240279613345040324200148344948800111776857752170678431948608611204265858621157635028862695731217145903430513761710160546114078073401712092516259079512668418707444079199122305620892927190494871448145991471582135254376204092689749541775228699308792344074298294484450042465321584693371755020385718744010355942043036794681086109476480919446265409990327730308060724365030269048408554742062922217656831831063738651279990235324106922427974568743484425985183056940493998755407783340325668193656199873828763173000408618065575083877290420643808814774142650848969691760145604498873244059255406218002875737022006562434735365002313725286705197014867186840817723265670007238888008817909836859503411023317631038796270714857553030531477343157684030051819550928701481122530011051283813632548194034344188989762069798403488556444564615738969654368222320235373705112068450577515087889599527079340618186268619397417735846837818660290771698250335059285393378108570765741638671492201748976302812391080777167789523296791162773619728360572894086998341562188768169820882969476435457247659426375653249236568602337470957858682916089666710740101962208752902961581720415424578051294159512507362591147195529229366794136166372618997804695634722077695849764857659454986027781973844881096547772817026206228514179954505709979885494583375029180320574805748243324928223633897324127857408655157920759768139728420923101233588907828086285659045284207858416807028422240718214868604036465010695567886633021855848748592063347306379497159684263394945598207402390012857704431506467351873511799692542396034492102363255889072597089313389898287083161883567910861141075064008881858417615961243162377560245389188244830386144764613146105351207991815970666583061334550493659536492046421562364079211004558200744807855939767257529904569818845983308218808968060940551310152728010814690834216825481134220288489222129719821796801065720332157078121285602327009600063859326299308797422240922625122190783199239247635082140534091200062606694237187380787301027273605139419356026026611847285506433152403369338768203043312081589951853196125663520559324573806345664157160077225701722679916368028617530512688449367789349101376366403764410416489992413405685284354148472789539054330047363181464899830747896895407415772021837541480575859515177945449043238050566570870642189612239555832680158752937627038695321043930698508972089579441239244995286287996725038173974955528112097502679815808523689855363451569774162849393747603242762180644091124889780796816360911712775263741381263060893649053007825950944160381778579814532891114219543846595408924326049209633131214021863980328384339255453619232145488537087482612688061821039492352274684195836572505756139606554034748790230924117548155349219533892189083572002676253873820094700497627502341422415440089993329045423125962354168297952171922331007152879735570145495112170285966364918255893487727179097100880505665463618171263160247062245596403811455106742528855669138011624830983025274447560790223743065511732362592023793406553829361470614009690856082597746676848836567183125820624670772370954046267009378135801106573748071464913906179822403555883333110610297851906656536326588645787219882489790228223744873080837618401092751158583626575763642643739178419513705330677133460924822735802365781450900699333906141048243289876240901846419239540316305036041981862490053013752713254542807642357226512147951448372408627600923783490667959163240127798861119405878011389918696933507013175747721309711542958691784097775569470368614857861894296125760895850766747338747764858881133354792550608332008050999203791854494177988145555949235626833419169588046166391866289113472759370278764278831294269903660076837254778787076353284023277115111408293347240630956267263766825149276519996264021085142717674483799299990142421182620511425426039752594999345000148662723266052653023182147505247888321807760574281884672060295153221994056020943573665660553774414405940406353576357701348604837909572020234858211522769554926164368079594877315155845379414847709805593971019693821277152044380974113913460058917422275898369219394785547951436027442720845785073066449295500649817014936722646996714582872002085475404923453135439282149706750158773382616316769237313956646552777141470026841908569893855255810970280273251065161067237345825718857411533505263632787354855899140916653592577170490686175934502106697338625490427636716639911150216470286458467257843267155353651379477043201110364338974436926558378541977308071380001973366527553320720879459915675611634792009021937722355757580163187324723898054629402093383434000438318463486797815460378499373024153262221786822474807369260638629689943144800457520118919233811145823278368478919549282316160211023208561771298838837695899074132435083855840743430335201451504928125597837195751045627083178336733833195089280955360151147595627803431047869220075671730344258158688112192475053034557324310042572351225764462246025670832524573637353606910389577259322932466064002269071695471510050435896843996372963746533156426112247613483796880480096898634524082578848805932716810939419877278931605454535638829787903838770463690134811520360372857453726497772837136315220190066558248534535424644438702929973421700788159470385778862969780967464866534659926345579934355080135767299609462335679439603290721816491243311811154991132041938885571794198980433264330059176187325333460973220254090306816460729863194017297640479700583395594043839028716566028119427080559000201406728960156460063291966574339328522385675749820934161032835048860165032464315236525292351649475728786027070190922468936065562456583027119923518048223399630771503954769149606831970215261849235976385642099055084669729209592075862348981735284026367550744513162672043035178137194435374701434793406391408662426931062297575536227812029714554019752217324293433670974589006592276216739493549291774902486874328719133235269330275364725917466379567276474969590823263985765877627411081152643435275735715795617660913356554117633169009241000888626214377639411212540591550683513538133608638538853572030771002016736763164784633009470226788595277701368044679725738082720175464749109840374146624587132600086016966610979204619453584899493139814268660892450460106153224428263507714075616493804173368257539622622040785820737647675117588306305506220012704105899706073138166878185362895551243500470792474846857873223804601367005667000154028191218719527302321804088217974156286783510885872161604028352795816839586203973610828715272396530430284243006159247746247011646935384863979033300972860784269832008376319441104762268173233548181227733839662437211021114820685960732596026227629232423013314899236877669110189802244364352983773466550330635005383591611364785706333520078910050180969344414611420358396078845763182187580978176786805999235681583945761768934910002111029923957224786923195070293148191765357004603986571143852320569253308376792385185976653400306924044124385285316703624021976865574003070031651803159021334911961180263652418069236019181272238972312517407625134184351458680734492393144597936016150581053228102102647188262085890851577993620009679060711236287681686202411228067399768858890943435276674372495716226186777661191900719308970592729239236220483621325732199892525809443819592131506618044956449361526209843938470758769618615588358954058685488083249525360663767975219539288176598112011560287560698301554574221550585147389888901800595359457640049648738046217392675822628094838293277911259013590562488014078862946972211846799853835954921814802719097765725000519228030417007057283873215179488707692104169024631286151367420080627271128856433605504987574149273121168310247213304828309324385951297589952348091751881321096440120405728077466322014476073518835696340678092958045362979235882422715047451913092886655376816972845449352938253469203084804264412986451794009889942623459168107431756886313756274897192956274709219052810342720239627233373512969124627636999772942080220598713332749807034927221910015498259640210287487083731310456797603844233546018124270940738686366835873980845935200670168281367546832636747336738939844955572353313670140512153455978159616086356324942663523069022472729613464489182546594104755522428094935093021660714234213005549056942732126605981278302186483198037400646775034598968352413193335137441624218666611455099206163345955929202639010156556210951177223338372956601633727796464735836530933546254761453189320993232997416219639065925825910329512165390638040985598862028180772772472346726877591031770882447609463364273172058619281374047894740191533344255432985282535203518326441923382932617429098634488035632159515080617580999036968484956615327533406685147452754614580792203592118248018534685197515068004559562477013397870515133488416623374302290260228390478452531277659215456825457711645044676888247507357685911668384836628337225987966824556300430935751910408465318103235252438086616942708166492248543760284532953423517869698466356754413980664430349310604838883634763798856685866130564865093547958823888057631183319486138574218258163591037350694401513707635365371787021304566740116930848726994238885560482736357285265348201466123012392520990989458359016762802172099153964252773948014742311235562375086534966361595369625056811468523777754776107069541703491704098425941917546980166274811825340816726143945956892838084746822229508333443236944330037326558923895516151122901567089676561874129997443822561554764923608084717779996087215844458525930292176535464044108750521536430723477489207718404529233259172981129866448038174430870460819601998064321852930507341018626126630279167398542535168618875679335053621328100924986843222718098609477112197811313575472355239283613512616782617469668115123631988235452490266267439070885445486444893843765795211241316507246941799117335364738703444576894038792192326402001675073653719934584789224622676125826729860190248162990361499164493501930668098569650834160490013259265120125401592574438524899566759542289385824409688348481359346658146928705302855285784294022978217110734068536528766983010927503254231496295550366560772660348188049173432102393970216403117431886603469885227537787630259959943404731089926274083361522160637659639904452635284320375133553784247374986893012363494252834357969894481677094905043721076846602479362439813742842069877065240367141363986672517806770367110446581006841477434403683629174790099490190422004558906368280595889615986889270242712010832734531270963003022918501443712859901353299616202419788140599804304492510671480900891246772715913223276518653722406525266599468425290656518730213609250687862827829821525262008481115504539683798105373409758159319428529371203930996736919505857238689190963919756793539528824425300787787865444425143279624343236613852628627177472573132182552298565991141435530650485648655167294656725778186293905793482229570946066652475700008390735926003733845700466338217262523472038411736272630390624114189987138433835411241050040933645183526674845371074663162999931580594375309584214603253975720101651620890757189685017844059690274181993012484256291081389099352265637986911860361986633539032875011974035618592635368587786367462391993765770611957365578167365431633646850360497216657927631169992236230402554309628715127525174659226060979577791641663189807908331857387812062155206190363383227794359714009085062429468568785436576551162418535239877954161417328840824875630037425422970325882273630368564158771248305445259082170158739132403027131152491317916530453058535528732293801863165504458151974528120744401667160920192215454907976677438024578669390681510556726765380430231737642852379204930267629425322775509023272754205288965582218634427625170073591228300975181520768372458941031458852070508420867050339704413932637859256185085100773831110577498924078586944523052376800378085974460010952403404227290022944815074606059994577706378851489357678240219339796301746341305534833059224894718232939189257772905569556030356865839597982322532132017696272665116176798003603732599683414153230509304012229628327750112656144644491299196312723713088077847310738996755214943325204058927391762032522416747812887662155173857949079713329790827622544437882434727222800912379212874599107482407597975390947170325015156575534009598088338122781734104812950114766515373905771891813995233831684853873561460403313581556074159500362703848931324655034514672865485059601776565964769872599017426804044115844338973282062671460143860364230904853410940048686640297187379906397920338122948611355565441111930305475847988363038892645025108335027869490797149950791744121296879003665027428737330895587917343067618103046085200310687809767217288024004275076720217151728414574610252409901966765667800623478093924362431677615699410589240409386007750463029065680269173070619269860530835318561951050685088752923156302162981485258115284481286443401616715014915904454262965877268265006986219651210357128810124309855013296364434338514791129574328963958809852490719495024350459732865436499079104699090813729400050391253204133769729322136915949624772314778988535542265946650432386655976456498567226526770313874769468325255558198462957443603027333755447380093863492730348877528274767030738919514649883606997348502521114838822809356894788722261429978107319978954240091647954014476696136380304712054186948762812429341172489875878236637212696998822423195703241277865406957815393829311902881708229931460510125278981969602892689935940257856801341364644388872426104131729509722366307660744185052102435641475828227046019502848515235309323509059288403275271920265791791196274064104128435245749159127973465653769555394729416191187127194590082321170776911617201230409130515044084683606632080937691854511792274526855770281441347668224005852425950286365099610170024180484597065610915005600061296972401123622261476511175161584220634029743756498635323494761367623283552418635115456616714667232165799119396044042481301612451122073658375668744548786305155541788541130303417093615502261540625877129259820614025011726683349358318145098650691851102633133014868938269387267004151047345106837974905437783849742769380035487021007387847919949246574503762715782200908697482210280199966833403425905552528047249978129316665019462833309045626450338044734090029598240939449650624637520163759991570271859404040916137463020900826968880236380887803047703319982933252775563703218534410157150530284597910354387122145877447250374384824555696137814905043366464881579745580370291550170915270394838133992343392607738627804109092682249589923792154164013139893644307154858501188735122930803738868273355361437251010964458348568827105453939344110809338572206118841055497727589986125948494557306877467885698358539058246434796865466891847435254393515932554190852363155986768740476680885872938972269837625698090700828389866189897220020992280077257319543168622091309655980136892291243915901092325187791811388790060733917008719118295178662297693922999780250427294798143499877006419824562363940632951809821200295289914604047455366121729819965724362355511180650340471761720961680127047369360141299787935625329798933483513724847102490886786283513995981126636790888253540214276377825565738687512667880988561037672235379871760626175653529873439941051772605726140964602915247358486276078027661835125175865081503561079035704295853273912081881778443264511700992805420747659599363835600108610291519208481096374226596028389398255704570087456155657670873307858344222140110320194053426331156364337710922758401628477175670298718998920235532022120531605580617763148634754439838906570041134269231496329634880849185736383344426977689429757158920080056662356533568495979406312213382486875583280007457161548083430270250120285896335957851578026174312764177627183432414375980389699257851497185016880706961386323269079929119549671110350795318387569789264817703819385961478516530796322856506070625566846487080263700721751562285191676031947083577988055276979747580444017241013142091384277350182971744433807971822617541040037054214452270661266358643191073403747504323706472546860048438902981842515051593302330887327224452426876365919776690369791552820653446909964014569445482660640676697549436702685060424646629321548562709488909604894609711196038696580802267743703802272524846745037763623543839716880937290105008505637813402036973173529132348020277447840431210384944448434813991833312195001971261038483367177485728597747159653703239885974800864768540707512129721113464605550776460064232184984785405596816445318708243790498817422065493319781510310354437169653008384113577772074743394213563447108701291695431136257201930951543121947179071754515515437820817551186217296155969102625450541158013527819155382697172015239013558817209957932105357562623224988288112380040804600643020554543318051196223743748121065806454369772956020568737354279245268763032004982650983830306413890885049885519968280536302326832143871932496362615526031181630069510883419390340829576978153889510008536499197832881095497931205015296357921007290058254693548511920684963469878532106069856543215311171060598057743327363058939609949008738829236171843348654629318201503654858915805096169402227215378323046017559261425294102572493183224066040260679250483621228770079720404461189543078586340535969200978368357030820436360698579520523862299829904650668679234420864120709632013639108908072495681221308893236873770606571627969252037493653620488151784294132118333349623929968270519611373473565352968004009241051336847813673841435307832553193136663828311375770653672687173416401613721949541361309745002201471834165084431120959830117663595138510361584427349345580319253711946669036938096279824022920934757633688917873236465737499028475023003847482851692815053649200004376926283045632971097428828135506408234468619209195526454866448818744482079042997996082725120876226596510884228579795625222666595273031112696247920623239936063321137724788319928601272066948864098309812377478525557481815662917189013712696042750388756255272916387419816213559173350217922964493704612577149403243448056849023379915532491170134512875552502539369317885385249190479816842503281828548751141790190767052952763227298244418365756504562790949676448083683132674723489768546546751935128318035447746759748414643706796835779292861157503765299983287734117566533072553210687045948156235657376240462501270452543729206633735128187433060997055449308122100464894948862593893643518167347504425652834588925307684672356294658815098205734356327312686770808546899642035125540782704063525893233596143971170043902391772172508724097212554196472752239899674787917306498277528827086954509048066004718627805909662311191369221548200429049708882620208750801317279624406938624881189192813085655927645848167815553615484459043162876814745189092648167429399046145021138412496228420265412969612894860762723812745121704959411631788793875894545702170135469289964669968756562948896442595730130101065326584584100889646449981513654595404785871904854070213124332004344840845282321329123565831787844638067732666801130387801904936714009704082263081367529492036576860357410487520251489259375894220091551537790300205482484553549672934404001904044204776011243498719213856027562000292734657317978845476252905287545638299026256982337006962405754003199616034617080814390337117807603725819306717983280880980515783148447076697892650259587141593018457896732470562708098296483494259212887906405347581225447337914655668300060017034401894216901515598438594222383400488395921953810807984489483441469536195580439495983933677071595108932163633082592070887756703673719032226546548006123105136245535268140759824533593313994185939241585058606103791480357408636248019638739847524229691223595096731796174128443311934912211451244974429470676809770462365475912852938878247370491810329439796780618057257610568083106980405208482300691574409107130519220800674011647556842262352529140451094594301102311861732017382742850792353102950810481742643976629542345165777178065445191357310335106274193000453181524310954187645853582502130510797235287315920056559516879615816073989126934718276463937355339746676053486588922443668542395927232157936124212964781943975670535743149450252778094014265379510761258400410452778502122039380796104102958637578720989584896923267678321209221828184609144475267370894401875812826963459302396014744117167569396453926662596690721426488311131297305313466224234193333287035650110945915608210613243770615796392573966084290961598343205518341955413200185537277202867384765854120891664159825128710659606249710996005034996738822539374983691641170288312629365275820978661722565059908299471254024979570817245673756281014059728397644847199233429317273449671218163329012230376376097723273177980267192223129746262341631477435455295971690692400228896742863228830300434080263334761377638098488487498315504126935315290402131064046823718313294104372781329086668801015642727053487678688938173307368536267965989638512351659446002478479219367788073371948371195039356921216864152120231530787176298753250338356366666803715297121442510589237380368673401686980263622412781708211058296319484473855510456208110119581000095213197565635104200601836439362777633467528398013127293500947601873496728613214499913890000714196434140032125895013830244842850504836567541563216570141136340060366429805202372657199049090905653412015210557505608278280058344363332606358163262610126166384954739160695701012653578874705640278076076648219175686479259369043518912059201950246424238955979300904870659978876087519320991134629358612550336751372306441480359670222661467413635118356366031246270833387999136830860755433984268796829751640269490909634141134314880462682762274248857364675865425469733319500558504770838214623358059257814840837624238123468698992560854125670046626110914474966781395781038943520743547181562591041645466047545099844141515568978060711643187239961662560016838423899675314361846583753517333741371835348861611798330667398628409471160062299518938966127002632941564292854174148587760766007519715529143480817509523991031748246113125527753683660210628606358349405731671316664939990129099336979695931167924799562978213972425948787685450783086464373552532362983824127856957866341969019026694746511418462094460811933872776322545648919295112895784252750328942097551578998675397563190636521599366684703797181867316288859567101721157135893571046514398520190180588699720748840184876320111640130548450812080369195720714600364536969679559950867808795162961327030888495287527506606761056339583659542572348182424794381165986291766155286136958070590652206362863222577829826130385565546534687191592108516583478781432161466532129822563130124325598813890445300259216517579410289913891773080359961388887907177908772118996637125824493399946657080388014319341498533480152464970796055341367282660568946897198222842680759284042959030033277064856140112935529738720857143323535324942475094267719608945602044312088779327660607965601982957800229121886747776861379408262064046842296712434753050599310503522899306575943733276937386415324908464825435349022573059104819238551132026839010819129727318647917326684784124408761001022273418831889696023191584372546371303508588666754853726522659684051739468750695704716900161913127794504443825976208119058919749138639853186499986359003363091704485250332523730411213627100679088795190901206412424951178120831105305680861783902528483554541253525520315213488985236122516299483401467244030685479557877801474487929389577005421012722781161530983326539304169871223594104573784473633808446267157616894351670281849390920108940544692281549385453767421167307662408249688733643493007239074838509710662273617202601960127917465213432337340141593071561566265383214732361099125688870523958557125226716883180751693419676276655451372415481438430108400235665111278931099842056280221401111630969387794637335153177870452089372748456534851375564487672565283900746340680337569000905470637084497917441951637632057899407692283973376547171127341165211604519295547547447039012760964940311150194334058310113219409706238055806124100871888315333084695879849626080314696804966562475592779942706833811460018104755135984169955449403681359808989942053378662511801209357670512345072523923239793961684185511373307691628503327020994785801042624776761839475711801937589094526861251108004202404729187224152319412850615355609521963658054136883201709331975985429868176167329842882196764871157138295830679111737922639990982571675751001104538800695854143060916892660342934289970346769436816728716010193284672773277569565469332759751703069411227781352222528156216914300965983746940570586883732598096552178550450774797860191492485035871443107019867729967837349932709537703271011162308832415318243732584286580079860154741443019008601300946247462336925945724415936184575296133811908982000259149238837268566057051226218683341779349848566821995608706389319314321039605065370121503646195720216005538985986732582339560823020844326481903891096240299592472576601163725636845617753538147486261987928720734752797546749104755221067446666589868580217088662268724706886044432100759957169770586773967480668103221728331979958712367132727480145758739433604085305034466671718880649183415671475519730067568229495688534964993237980496566723308455479190045616156031142819385929915849205964996872402445502351516485377077663210858547017940325350746311860311392574262005000537623030266699667239668827600775991657712601406136625406120855296364365741867883271152622147063141213287221276800651368079022833246967342592102214966339202690226721460994225219194957755642237673801457254959947619934695633475954292895651519149949142566811363740334255574318644507764017196963995187299153453974974134036930689611175633476281254828757171945697223098329092236093607263385066921873974329694237234876917932183316408172393753126037671650285024247645292492993205628473841157413023061265179036118537991507119499488667215496813425443111761370706518425857788443777533081528559763001421552256955784367838410421720901259603190112963041724943144267219696019625889404152413927464714020121403593360025086298365590261979831363074419396324781123877185822721034278323401523644632824882065361843971569957037057641070899722535881284845121644855769281016872406913386852343770571758392125824042063419339891697221414013211614443504413603206597997469449614712264066535660561527557191454467640534402795120296395199654555847787176776889116946745284879446399208374948858898275874585544359638767722673274081742084875519060912285085313643165153500624416544071162652232529455451504988826823473437740893667695911509125734894365704620572556952805608353953481497638386767796638323854162721771197281588870683888296374449509095214640676509848536027746022095653341289217764980956286311118574619716936860435888477789852837287677462655680391231783184975568764026825574705534307602214276123806248423201425212651770768054680954481506073021869837656893821535772445895839988512276644131105591600142409154489201275632649723105212121101721087109282408845582598327765352701885920628179974600610239790907034095840669216794073451924875734021817537870668874645978240375004684732590151449604479626379861893547149506294195867404007524240894722982015154730832833313919829196916638760619151711152421028454416381831718208479540716651027996610901574769820891829054745131819280740955260007337297104932643147555860408834153031201427541011164764848674512292964624624460928467155265986497086675472098668855246639787085653655626050778182746226421227697997499228485055600267505801814830393869594059993374950627992811552299289805948056340480073646493477516488355162638902239491532057875239039747053280755815055873660829252799945353129637676342306870661661507323475542867783785543621809189261109820901412364614411948233516762951705871556161821761353174145119180530818040702226569802282482009670274583943037039200728755708827893619402902653342179827679399704405474716511845844519951596775637448951600734329286168420223890390759044875643994981073989590965713069083234443543225353255563671964433637906206665704190459319241646533338177592825687634572680917127117782897754574757108121990940971494077757559975385039697162445982933249075978770422614846525319198962434738068837112737908336035380663106006283430504724302540155719339178647219229560330079586001631918989355119747849147177196542379443910250715943569310973187428689257838859622706777631961729917374381684230690662060996025158472976534671657386432925172491354259890730688802611649132447505133616448334130804974055035491149260067010907563266218640203593334513844721266831859152473799760156017478598956010708937290037058299346494899957573681684209236823146719493359703919855257245302100275210003122094279580735634125376610209428466881809620599686548832599800020897411098456274835523237722248650857190724631249513547014514459278079829422498007497783096472274026997746998485797592462313738083956671666140367773558833069383326738023689381890825435487989127052204303951246947407784013379177998800739593238162871358518907769142250866123750927250395460493860854464648223032214536837703738301359920191250686390530582708869512259205965151776184025454969845818815688686875877793883804208652713078898575738674351839537402856201126437016691864960872017367853142490436286383007196077774171070592357377193766902683429008262617338898510649377135407775590079216264610013704881254082884653690369100149668486884361711256326700146706376377907534118350130835128759576747044222192677573369973964776571272500900766988965842422932061181222515516622197276221409869158231902246979865380925558467028298536626306695125905208110985763886685131117997623498750292758822138068835119663991900185680429472990498588001215452208507506726506315918604647616656736331801346100072941600017728922432529704153835661576696842253360852602958676933158103903050202364003953536753005508492438881514759075968260563587160557577494314784490987160620163315099428845053454389608177831587706348197172387952487568762583856441868901048207000277667451583578551207411696166664870600872595299758305765655731008622537450593149350249431525296705352346641424232354464313540561324610465374937295258596322032335893444522197900951781720200881568904133029098563463020196814838102730930897761493005390077267735102088301227207671836192392686364415183857595510848777031354032518068979499261266288037929431332377843244346925259178947518480279388343924461391788973128270866035771909728200072363486972744771423916813282588967171652512554594343573778944742360412852935274334358718709828252862020901586678821098464412099917477120736968658425615011387346186682498433608573048233291869904368140323193731166509428126561656299393848789191204498137460327727747427669557472392229604427462225360501884644030494106565111578248216201600822021125234159339486258454191401295615452424081374463813827645072918937501289050692128630464223625984578128534755011307740286840425331080324047474918455829596845882958668621280488307088484801687461489066178799050773598080778974369429345959387198539546473769291072598360086620293052372848089725148529000617905809839482972349882421803098536534187511876634333081411630810611912813113076558605412172641303833230971965513709471191124443156890478786782871181788905890806024298966011044575880912867404597204017526501779661365702537696298854934787575969014100564689552775125301114304516747132580140216144767187151659536463899090461300227579677021507860427853992477161460374278445590705284493135607910694554726672143342484722719442212833952078105058190466248648305333486077263327154442307786303230848260583253132238724092004845764906376189404058374280170578892151868556302122934605377860602681827223577287102450357271184913801949542947357805209659351798811451922474890121339103887439405188805545097836977332550660597010830471045391533548002720076564258420665922033017650352589956000970335454695226224504826536219616441356422579332193427775146713866878754628937216878920330221925158760435440869657830152901187857035681167708921225001077673658208635469171952307245205818801561151602588602599563247359729805817357371298108287993018413136550538705318877324026917719297321576370894551627518672085554478898900631773198751723025543753812586137205115921796395250337182644677798093047156302911729608618666897526227641579927542534047389175269811545585202739787064094077004816398804880628508320799759135177223487985641434349886265147838108713249911333336230002678255862695171958799705024046363016703808857934351019759572780675978172027847498963454966552040465622939730684529332178624807345661530203050084892913927433632039856739310520527351646424405969816251237283319667774133433408852721148890896447274052104533490833994485276608472712561610522451864785182667287674872892937165943248973517041721184315789550304710829165726234265660300582643518189789481079005076866215899956344343228860600794969282202111496453234198337163826311965080464598235482450632095150682136220896826868830169485960894994149768387639494598741823768431060982583814509892032396392759767761955914753691736136794691530184560030402661406574430864356280038204172153606635818088992940572240187467433061173781323065760523643864681631349006933363079040373960115105011177583312695139851481439932156988820583475791044409687936205538246191492825448837040988048239075249180877475374219047065789045988047659105938217229582369634096444359748054756170120190882575955675765699787851706387273787097702965198553247069671474589207324906699718162065109801037440288259912305485679970692367513323557459310492737778561341980064707733847374881866461584004481782525196299586974458942658720720031923172423516091931398429972633420366650581074515480911035843602589650680144758756583452135590177022535922322605524878086573415008664343923111935373991124788977397133506249561121638654941355309190670120944049910390867294083088820439707541926361089481103834961896201441316155375794539113289466633877411112918770760552890756094855677043720524493533262054998263623070482896258313626280458712891081807741066137436131694652961836522023203331553283437521037797971563110364896246730417245141946265674752912759722435739770624349960336359082648940717421675130865328310264014311061654457591974697962840007472370395906158128818362096479578876742169429204908459004997212579931731346964226624427686597301447965586917714365034489093724005381411745136322984257392144300221473009217772182184744407779754968063014331301152043578476004629115974078595747542689008470127601832532608419031140844665382020737418028177808940513141236633735752610736613867733658985338396977754322577283499768720501368630096510189999591257146253146877992603886723025868393943115519670093269535786003061005185522086019481236542425091697758075232832721441141251304863094709115906622631761995204866464803514104803860365065237539369677003897170287011123044980710365332580593646648664850697194482273648912588416015925670249721901025987993848747233722792820208403493318215404894799110005628860541996126393715333912345428898106192512447210905993892727346891173863446883254550795595237814820406970703926245546347071099327755251744137387626097967080326321347607391285519650650207286266187806531236350962823785681471053655007512274994259663982525522507638377943015491275976454638804725427851487532397714376477635663319574535815953493804648336779240764539529596824014731925822494916855702518427729275715640084002396015877547575622245926512726532093783490493451539976594448644138592620494697956435457448119826937635152037315981160844442429352800862416752155796964313279672269101598378805041094829923162643976671855807609620868938152484413941079176611479282480196126323480588933866093317287760902128480840010909807782688202159944776152563142191120750828731213951517045706159036576639978361308460670436399531754030019696573644286735178535954538336040909360212243170351868189720454239817950414876179816172070882017661233926254619594026433411612158594465716202859726184178500748469700698271622505512379801581695708303291076020438722016018805291570476620255869685116137396944483432217863941710228693420921027505990070058980338750742445245982356921085438802429423081408085919143250175804997974504687746471190233619886438467259517504795145133511240832252348390788829380533908428403790095237003774849709883152543160630169622063293400733339201650306450785543152356572155467922355247355302214261500742708025882103206875696030095114690258748793836334829126724172982307894952020487274216241494418469559896175940860739695089684438462451445170226966694643533911452283644891484402639984101328762912648426600297745696196409926565735154308680333886285328368866428022698525689373378530709434840814301719152936831714168353129431181452521633361878157708914013637981374278281207245809928168772974382003123203285183535941044441068491922151506723055109207943097129806437193657742800508223755751328904800799288410106981612348459679732980832546884425777753458754408587201246167894798232385131157893403900095484096649950348214332292510704242426042644531640359800981893735106991034472896741880607736194759875935482686925971535585094037270852881475371129527539756783323205303481435678273153248362800128633110587685416459958461261565318707966927538613150047857673701279432478686461809880581199864832495778252929518206141811157040426317488220897965368719714846358291730458969679972959899112685037722592015467320458074907453167406313209503345912911799111236167758264856341297170562089026897018054211460703043234469012474019296584494301398712784324353400032956180666626333758175713720683033608783780790001906403449660751003549816585127328162631402502799663582239215014359068129123472197976730613773932534353956803099842178907224020781504508262707044420474628771375960048337656850383280338947131222376857841409119177175560052204657467741580697460846490689378625411823294401535178982321707496036750815697372460452390971558405653103650328359991913246570029402881104398504804826895717485719007915325515857827241218573183649634629121609432186454386462261886307665085610091022347223934372036778459549691136223177326073987284199464312610751855136428422370799575694846667733985258359475576521565394887181296355649856053875100223944067357845958351899248266013095032517673894759316124062352960755072149989279029748093667172274972255546910775141196755727845451886133817473073579090179199797764720663469687870184889607531362322304633705838794477934776080011835824248558040120109335342814686548668948037585180057838850182163917785648652363936799606830635619753797950360634666489080095584482590497630030013434705255784715596690716102335256973682461786579476320705571383898822665193774484829957683093188312982530432141788169931042280282721294699561896382637889017532072320033972736075006541921729922808086905714772459705897319291934323751873705011131675342125192689220734747378951339144020922455801243400274579919944715093674321205985698436975075832242348305640752999858628664017724175138540997068395995922407977667393998509205339589859016232760642084234080076204107460978785281889428853503144588202925708258491699386459526868049700789218436626043733443841351444994439948807462777402134433861640808406967769589159289934124313871504653757556689941058271988883319091561574595398095100382720247922408836796207777467299812380624595452439723303985063424530229913818242051846818538657449922982512127739136088527455510415359293603267432367974072740666929777958922976447397086740891171622374823553771087984671258834273566518639242607714038153207078568431425636144650801634258554394582031949220842159913076515916149311971699579240461246094423491925191394522972716205564918312379213407713383431521239782349040167975969419004333932088626159249979626331225296194540122103883970872842606029428064816447572487958427831125254997105727161126979235231060834379750003721600530256916101626794544984292059036895967567116419247670926697685227568828412720035883744361784303296429723256885263641981747240761670974874467422835660403192950463403045155870947499416424935440545611404105173829907825413992601536673838613845129462940516998787429714552128662519447930182765674822819393188899883843600909904962906473329823406065722579551906578871588305914649820861154211785619084979713419092934293639928569834077730902017578443991404719851141885840120318178654049957252439781136436084588035600256998302263530794418139761218049037323034351018287098247963310394272289718784794457291800116431560498582057774464573870103894654802478608100701624302365023540853775152677983422422403500481364434326374924628766208804050582574639282418047454732221276789499435026444771978986776917510649469765041330157393554478233387225775188626485460424860951570266818717417116238613424462532688015419678375679740032180627455096292518118376993449577319415149952589245819527981619306596962197682079563664151150361534551421398172630849446402990700877579489588900112912380169549771922378047164494901037563141002211314376719628136836618690267699708082464502313058039317220646654106112629497756791270255775534890539802240524827631301514444906216476404838428985123165320574053205096306767887834671662862304224593502956120878244484456078203433745979357851559438684447217862901136508238483865913291065519755808031809529376448053554940472319763785649929209548600835847490418804191161591615651684945748637675895485751916147326355739993965393197084986595049507591983483377441594243233141035109864657061401223171304146850256936382600763482557204006144801509032224031828365166805249517219211477957762931184631592763311071463166884767933398788124648839466943732561872362581972964879640824129336031232829467247799559825577462456344209727462283013061958214660540133054322550621717448441603133184383273923125281225424471998975327153293112059385363553161545839461948597172801256926570251202039899821010932998896425159188647192312679749522347815756653234037084019215522008332056660082217431062719484997282850676297918202540125959060246001032168173099029193578658145716124923056378075691700352420327047088680252721565276591220998360641624983233703518665251233553332003147101248567272851934419134021443197761088251938131419019688101855635653604001541612634697973909553300274868223853586721474280300909113929582233204366125006416565883015793629998596969103089105409747220321365573716267820060765417863642495256045751558517171936458124468668795107677684465415667134250170738042223823964109284065039939325480909984809495182254033276065137313828835965668158526706552092203768789015181773648180522114351388853588621971335061775559917342336122055073108485231827935544213147344058030075368324411392603303386196692236488858816588797442796189312519969969630213759290912230020060608670394898894072084204819486959645709433584063000684408131622002137072269896523312375490356207663950427464996465202403428110120914201341874640795793323360226859226616333693059003929759535079723186108387971769572422254120466072401651538205431219151042976637624269111866573457818771977898847478667002573718900732868702584090607074070041840717781584197240790773781345397103482989311864577693847627993795017462470687736161452482062330861693291233257752889899219518732228544330537728443073779563678508855772604420207885106345120231401467295809657798230032206864247255434625310237424932724194513079107195040545705071335633046579607183356939010907702025151873024412221852118831750393351370036485473134219721911383960125978617845513642927547181607433959561205117278439264192395208360346279258904902354745214088295061787778833400496034775071699782091263039294675954168739962646540203371909550210523720015139714112677919277708475947687756017237783625668608968052245390932378908675471005237215782512566610118298437234636098831141540489675145807730130990521568984817003810521823283017684121134799309684426843374925376536083038922690112325742238958080169167550970325679832947495616368668772321263057469591580409215851893941269770894381707493631706545428557836443305273340396295358003736427031203689998001271685835609879487568757088350514105061353332982583197353784640320049883736323220409172235943776722991623995830216934366547330111437453931105908957337062222275448359949190173910392253961932617358356765630675922421372388797638226432266233970342095989643341076576831117966031406710294918383955250789351547897014927246850076940377211277331921806421279192357376547853875408497192242559841844573166122324007620586603292450929343564854383776225925352473522405171173864834568441819924362222108771149670856464875824193216064689745544760668192919446175242443506021118211874273510632950457039939059856047080042380079412817680229959126646894973115410499828315018027466067645793063195580460221453229945878761083723518475261004550395411954594144512280329776980758094259041889110562895494550001329891110830310619505178481191221280299380801564280171046476545052258090660409746698919560887904661697095234736781791101199331365762820827025639358322776203493182327176457686854150658960722667849256989920615481428445537188822480513433643972545561064322949905006697433980448438473121756731965056191853115019635541328313410922152604010952437056373108821680148787860049433370383571919086857417220390126277174582893014351299034147383314373195573043982059590936465144784068756592734540915096369409489662856192346474810261829905592801887437185305482379592661159101784172913723376235758679473962689017624489545824999777259799759963413036418611377563312806341119532431273688696414824519340277827436633474080561114612223229650198173059995212663372101121345572167224076415375605872658039005047110202850761853010939125638681344856355519170306732436399753976768003207809410396650702786425729471863873091375696587888989120991083225920890066648682854626533014531498656736456625727237012861681986145773485043092392623731320730450353380119188462230624555265917415739207445736173445258208800795378155527310427785328886511460851542741143310206967412876102376892784965558377422620243631595944060382268299714430771655533393191603796439257836391657809730550563495327518434275383537894253802098053097109503404225788054358152176793791236475835279438016489087065419823809830686755980864801308772407274518559056778999588149875483200664099800828515226536402072047329339255136005283471286415895270292606956932637261895658680369366260677285247521219988861802305263986756296583084030105824375254578709587881095864973868336824023970043164698385895476464049994404725013395602128441902639606851121037514598422237940546055281352766172862255527476936267888941726800087878638410824006030835288900873275762917251532366772286398425530732364703378588350208507782458113608944051439565326064822523477155577483884632592559701875759987574525714521028055645001696992170163920943627820997060510841884530793449445010873419795159152966832577472588362423572780415770806374439126815621399894622657756310469803059817004303089139480353368147209940818650443511660932756655443669992740971655476849734963602923279743125616090540499952853259982597726283768875728990040436195860886091319938697281723019003851105969756492865658399043191596635129078904292366636687829665580698450983434510398993959243219478769144165681815661046064395393512961982883848259961332305663142962823077119125549822507858819322895219778745201876421016594863429133528043951025221889539574675526093183303366762390645614662931291712342862345463351278353687853111180861728241253744365153082138566290468541199902424358025852179376631242053617150521734819811098670438125578139619169758788638156476849613158770291789211603185998818972169872503663139961010988214626898205910011984839298866413049233316202492812954008200439628393892898282780940234408226167566700867667642078740444636914334088754816495799302004896000880129853531241584179427458024321982331421401117526176500210242253771398148937016237326079642423662351881209519221749151038600571053757611131318842243390002173383417361208738008747411654019291803615466880617602154212157584368280486074220576597321966175630801881499152353482751837373918680710691286657408912747838176197598465748457533018199323119594946351446655636030548897165574748006824700153530141416545344974021100707807060573421908879610999360234191183354685586963439215620419892842835784378096246626649880516510289901779550141569522714753103756385469361460588959355454975293461260428674605120110848977260464667123784277457331809556424355610571862431131952626282355263711093161234706599923075158553829687173607098365399085482999102182748160841913166299417256540233656675762529977194105720928127274960629894030581992090596052543187914329830466003379259772190252293386491134701164874133941628839119177840715537934570534317926883858473386514499762110460219666689379705207968964778066699870735719842953989901496057615378325626097966343484408599238721025524349730052787765958389007011433749555991666419529285476652827230178379549447638257068909684264851408583805095369597307294971209819904346347914597696717111703280288471174178887844942901688627556996027754917210860792551516300867990829687146791631440545254786311568862153322529281354713711335663607886818514272643592061289238224801035559412321605016706822612409989986723992287346471262132869333991367290605857808241032431574460135840644244603261872651580272826807185050718528678843993596032693695791845218279453857787100885461177780726656204788396823117910793204817463183503659809255178193846781285072931844534016078324311017884801061296706539768151837996645418981760914001193901730657837513732631836539140395177061694677098162366032003023620382249161370369775623892306520200208430337699758446906247552280844565597046771581874885252193881471309604866943201722475739623095377994362037692617330764728209750212004632018854948622897825925928336110766281397912671957080317739971492126608234080659280102490171242906538750706866223759814193122774056773774294994089404504911788532028198337400599972713406243335257373867620422760373707623225766526813726543443412065542613958382202663640340372527308009632530629930102658806332083087664947025173086776381195339399302129315425765856806686381169633580509339974613121299621100547537986356800873322680390353000437161801970870751597047752921628418894732958817443358362885449167027866214189416301176972256686979631276096740167124579739876046648406947161529114356686157097119520609044652205825409222912872009618426257720618092692263570342879250492748411154787874350845443487649204947021580125680403232932187105527568567832054149321437969692752015272054057553218508018501982620201800716235148807228659341418295245871632994876320201878968274947085828279933917713764159133441531084803759966708799697211712927320960735325059407046491733852841425535652395015314338358540846481679250901314025642782272861518697433387887467686826881216069282875988329429369802396642467417033907605962781555472871526097536558329106752756578748828717371739518005682920286433939614714905885637193683332673775091618849620885828467139138473077867362029691823748601717832897267605939806880003950971859061330501403144914982845537401947601585159781304870886439258659088055353747422273695097312893407400258981817178084334468428668418840196765364370544656211337575846929627366164376879263632326484164140693106144205824249627377336986847402899300716036509947163210524945442486990557017691220237217669335809773532544342950750826531581683065488431142654719506377983183361651593781237419442105022755990799656228942372142764875510167614933821484465699070267514877956128302977826497019098749716992104153519056568658006034766547496538543682083609537173046162335565617373552132081752984970273809875761480297183065289408284490421185051287477062171359805555306350593810763905620828805667723077723393428170071183387634756635458541892827679746408051221298942647149387382923837921937587332040121280701086709913772005945064459376174501721223207960282122209967206332275633002212135950122128953582028892628048413178847344961850646434778630518504002551899744099102256132452536521711493973614676024539502022730270185193377337742653774920654057723026806838593106095238071482865019371967406234544104778967675427526821047878982546565851224156487195459131629168039786131700724080629419862116761139695619765875706021454076134541943356515612103920143141544408979533026056288239225347745659037547183323846581294026340273294616092326304932819667777054152688259496296101765509263020310310884807121935263473606986611492169537342899477442446819780435710317349856988944278337189261326902115486396028346875780113289490452023772654008458122235859999627649526879572425452389488451504298244551031878689293799809771408955867508638134231164759574417106086951559936606984751828317254467727969752340942060472582420265663080270250711626587669591290467618892270445250956121856412438877510859383497078751653781481014666536727505437544727609548123048797586433572857935038476958596600726340010848231083914432420371772875298287816312364919246572108547592717817982810962062207437695637560201182271582425756613038760422777491075423432708433487423983904476116188649254096256744817970385168525587577594741873421894446192390978794571412056922676983728691380915223823249581076051319271885265319896409546680068146862695035743468077744691112616039737425850141201316463486044554332387121935384266561331802520164365989247161736994457123422238564208568953627565438735755001944616938078432245194054761718627871444327230843122136049846199661962729934463952245135469128358965302106403913950539023101922372607286556238485488008717496495414955385564473562565424934777625876174878484358710641727285480095906515564145504533557972824113061702783991875472079802315608646459813896886638776106933660958143780550141492031103458733874929828642017715314503225219455689106682989769830653142959476369076175995120222545360203979720007660586565599776201996349585619601797836610286429965405031788983142464366744749601598236128910882107751433941648011515600806742314669553832334216218011989747274691642849701767499241616074154459673712046898221135285793486568951239517587671506430409606259642489386099177899742084292269211316885928228098544394478056609100043544016414929110273551885837962413218017500373369176078767982529073150100443832210090488310371442444428796628602700387080724933870007899392204158198232900584189554805376179880928614092127663201922718481113697779054329256792202234445303031081299658690679011359259615282867457399446263189327520844273705137673562959103090427187235813637828707110284726804245346436550251082825774952812751587659725818100795662316423498413808117444347284698669805679162159090533879256224533408176697728445507666450351167010430979940544626817191047141804944552384358577363013400264552617560384659174240018370682739528573000489273262814719691781407216037641982073404278415248965528738574261821409987861539402305728564826697769473383831650697305567048671938868066337200318463033490604013031033210054787300979038217087860082805243913050189924389941013332299127321026790188686144707202646971891528899154235101426971267665913248891535241767304085739776880787714684326872501223082395793822081325710998380883741927287911192356843363597865496822284946408598197609374855796107694887982880304098496108757338725832308894750899029059470596472565758243859465580608461841737572859700359695189359731626747353159226838383917526819040964833326480433864176156926773932184239040337496324763007034228618211587807244270140343903806257763916213096568030664916829579533896619017379001733874323341981834505003592666413769988271911054170682571904898706783154025987238052486978673002196498435458009607516757618607237659663051086307939756070261322278329023073058934707816401456910849853832197803956924052853562385895910388211467038690655119559592745181451035484312370329411103762647681838249946480232418862709043225884958843041911740662954748547138189458762326048708840238654333894044394871438089501989912151119207709117890146581811565556395344131495644977661709754736208563986087984095519256927573264935570562977259088012270083762511395159456208841341486423111427949906048940867938804164452919628568386377207261581451596479303890841452537538421954804311907686012454449052479278210892015968642641745534536491238589025337029715983756414959990793640022436452890967867586211074405841558288818628699337073236642074102353781713461108201924865652448543890470293250344994226309298225062862516211959825295675304107092003021577066170416775461911287402792626197358997798746159096357269517504763898396452476042889941055754825362918285458486939673865271348828414709979520822597597476881802092796339101001778705264845698538613930531922011872486738710794901543111544832628852717778193953188916063723703552168557321356303469118876753441363660902699055267659076559364645846368033216588758195473880684521405308577758064644835686099773750138397012957484356600925465566558771860025719507682384337990795910717712116272867196527703608605092674728340786831483575747874030648655514291175130107606646411314240923961750829541901549549881908774340335740402538433983436064843087286241548198148499934807681846702573132627755714663297569788562514569078118186168071970037668806283466871521435060795183472421612894922067692489469413151419377976955090996306209024924444447652551074825300206366627218059093130264372824670175345962872268029165508324762129014066495563410533026129868544384138060827948886582296764267783432339994656077726801030382813666435386091370303524799402722524980368810957526477955404829986666256295779189983536833614717430281223247919361665477048428874470833037316379957831795236601621369277863989192243745842045084610206458510636976161468956115516596401803303308650875462951215940247304530390265520620782359095781512086300502714973206462754606873920590614387568857642654455943633488991855428558632876045565432468628139087288603431221387676319588502754265620407785610218508933028280218777587208039481214253786646010036485818714868723127552957655449946453808110596410703736732653081351522827343525091646579292457526038940990358842519012475159584572389720642296954266365464249872192681760794244389635832903700894211124788473182321391629952377832592688999044471586345223604838327157498907053307989308409909119977645058463872912432973636313117678882548990423200587640785032467104128787389320641016832488838353847310254047712844271554899213124167911729499589124043173131192062929864931891717112640380028956096209535040541859131111758071752798749854506877278527015211153176740503153599701196025543913027321967774758339710290294917747539872667506177716613407635622664877275755921097293537672476201062691705171380116310412345424428302620100536981654046476068593408562803140024632950584468523157855552271416320315804022770653761922211313287856047798711460187755307390585213337867644363428897091028685596521926237436465070880537978758406570090106501683772643631529278377313032210281391359647817368558231005932466221822936766293170610520553517686658428843119332599529375509290477553829638009383383337660331511922113691951960610469419321264013808481509459878970333233120561714892288152428907695625171684331355669285642804375850174996808863845734147751340113992632370246903400274634716024645328552647434188897264466941662088586203699102712633565370380350484804694244510539822050973786904917044922352780578892250579731353081667204131852588611488153402896081129130174846858742318769857250981483590536906124009623610744934432805832997384156641051362695060455009406932518558811387743927655143005870624362449756045338138702474481405660289659550736540267888901640763686044491163155009866760690709274313438690078132070224707777051582267500999844748595545730617406306625067543238992004012447478681011011967687618969498431011698634605896305466752299447332509661953869076980425088409272387870532569380487827551087521034690490063007338100419132069951017782382184345780488093724538978220131586584722230412706320462002458689554944911730669622805827818943104673998192698549164865950961520486929355372017922323440409558586605575166179430323029215695842611280539245088608045557702194267027256800480898155836033193018692733444873568374031190061855790576807999262703802812365346687262199266540707545640468068451815012503807851090366131334968604541077172943343805889347341274843733145408168565725014129031065416505378771454209644562755578998003484328661761733614163093140262852315240609880323347655839091648232238772879253550485671633327695932855614364339442822728377896122552768904343374360930112973468480532133928272260716823568878215224434227727987872595532078072655537933439142424307540132563843094385723806589928182642401110876743514269400710612167769914058756414038180133305906576373339390060632276993629706043520708426358547389594638992631435203791787851494518845168490467980745210743870979002044719433316773199506952216042525770516966060530019031409497771226854770436315954753056612373476674336229510067888177207377742638296874360186053260449060562562228933570873116582520017249566817496312572207499648982676022401114023064472984474250319955018828506747985432139957727276821309893065400403198551367342628593623629161045756549622486140542757266319976488633154187019157555763260796180035047515152387161233861814698668582490270077510484496496013030192564807516516123143317974005135100535255595880745281522893996662646107537466443349888697833182649657382058822654259163871872198317525662399171347226869094738585893045730136144570691721064768572848846473689358048594940770753317814712262478851734652518555196348290918881980060761921157976598427826241776541973397275579875649499885087846048533315879827144018637405844678586162097604907907117860690117174805845053566499753036534626601800255888445187157746986025702654063533705223242491674182372057166640263478672351687265451606095883302136414978219192738903025629701653287056540075932011303808007853573550737541375652663479853919878282961920187423404781067281813011852952965127023236338315328558501486068712159202403865695582636301044530520147060270860106274746627125443363539753493691656589094707235150052982505982873110561188892845639523362243573805296224788554373242751534139048669302161236109517434251649521937911736674992132162455024282651746202111535337937401037990340933814137980768866115115094091716728503676209588199063762009030164470055654351796011992488426534611840111702858196182218956906932242425951196333596199772629924031188491865478657409262375793779110040646396675171451468404420198136963946470396645413591991793949797658040416165246863068377866756606332794472047006304931471570087303980661052453769221527727658681515797101051105481706589519603599486690410750878140100570161163221812251984485684663788636502678254957831549097306630106452263549356261163008177246462204469685305642843870778673932137354606644425172152703636649539620352331924065771863193123704878712648644679063497134522026745586924156728030241817085726074615785732833968157430062300891182409137182826358450671599465038042904031675647045120337328478761434392025046233284946428352486064755555007557813191465833402124785813498576218969533071873928851657826034844687066411088353377421343974379361270250395261097298343552820455510355732600719383114616160486921473456187542263081855945683823513917787842356671104458651279147171608695873258305303691632206067624229866754459750126874019393203011284550099672580312376211471245530691843292534752532311565488809128437861788677580479849452409214053886237364121005795574734934606964149280264290547599635206384538202086336115564272771143021334629485157026581566454927008963544382385971723899680793874824329800146519863825769734810080986665857626412122460571337497666338029569103447157902780747696024784559434270790283213684964147121178914690208477686463681259800942849138199793307549230911248015394227983830516327717383667595808971877979666703632166172143362120568934101470006643313543918894426769733865532284447324050517209323086168254247016534778092614033321388025286428443326181696826068741790638044294911215385376046758796193697817922322300610862599591446856269721483362330987643608660840908719094750567872128009877860244379092746344340004833876870418293158657745291144721706271864096537440921675142937993848708577322373153162115758490758243446820654525806240398994265200422993040895046654315565875677144109834582101584058853764187589782096307047877670290697623865843098712246069877651929602831410920384975140268288795090565498993660418396029919648825487135832121341991488172336201375842074679987145762808518987979730293612392704212073262362975242021782166607685305975410088768097190597675004528385634556505206908964059845248491383129747102603674451166554337382184577277429638760586917157891512391032722522286701363743514188063559842930632893975266747958576445063886157614392204861959989875300046518944688254250610865276332685715368361609331831452147973563562885455245719643416428427306570750404246560782164261971353655991128015825826359560004214198603478263189723835097810690943259171325724454129713538560190569815672796527434046619283562994274301461945018299472025992121375128839914173778604294257958891745015190621571876341028597987705594620926095927261749623851361036355523791287841571919643438018802022356379086075729544568709183719141101288564287798884490292880847102044911679893210247234615096767467879756338817614118395993006047534346529892420689852822660724721917957638919781633662412660606862279257749603080449316862387073323301581536582528780565924914178215714691101342642911568774381663429064960047101839976935035802138923652104769147615616709722823495312285768739030703809904131783904489666745683883755311164819590432297198287078525724158404312906549409721353829378546844792539765545844358220108387594878114633141706804172838470126175396208289696115848381401483168341888296752472854235770746812352678938494300074417783155986211735849683519108999225487162500127799707892118560958442505095527975114113578756750318473834301535514484196653549245420918711974216716006460344637464873759260131644215955910448475796265093373552872383090130369039775792710732595763623226503371059347515966213112649045531588539009849429323306021380107248414592207470871091494895474820352707012248461769077985453050628121214035366012452634713438133417941044614666940278912469377334234645098158410115597543846191234649100467261041527340372705422542996655416361287241341293655828194389150516434475905950307147005180341271925248341399738075580060421582294728250579142398265692626754184347340604150130492065416466528770307551526886488607050072972160876031334498919984108882655621035816891120051287226457030571243136555782434361755856375910954414663795312422849600529506419897058104742352394671256764456177126283117706717390615668062279428554873991377618615307025468040554388174547959244309175486535945603451807073147547420502719068281378700347410305544564366800178548177380894445924801205628125641595923047707399472560252942244459984413528723700074051629791491919131261672963021420393463811335945374777111243848820760988212499609645104450321788968095428894803923805813279469506748450570649789219265948629035943691635998954954192500349559697143752645549972279699400359443417923103080754724778722511866810108637159182622635795992186646336915428348900068356692223815516324958759838449763883944641094862082123454525148685914482201531956440107087963895506103483791739977697202238581815996344433465787646283969153284961086280865568680594444698369927920256600725569669029889009236182488195987534778118076565507582706903396119291130810974126570389003356946409527738585983301763435223177640276773575633754838539506082021072009329845906609065463511802592265963574375330619082350741795745180441403816293949236555689730663156291381581342430038519311611286234719847596334235838843114263259226412556827878918252231520207082181503935355683550537221291288787681473505954389707250055187463690673348163054680523168645738134389077779327287278109313309113717550087905300205477547175706576092877946718264512944482972328957031390928051607505295341588295772525892361532737595616747977383903223115144418568499044826715056750876393381504370381516831476231401130429970946946702478250746256777828258138564027052470889150174760773490695438304528347480581909016937184051579389636706014436077271116237972937651111052066320888129626326956964589178793508706635944871644369933162969675879985568134836764961853667754433688982921217441580293842797983875372681405800399677221181716762009380647056191164413867726471341951559373122631413790350795796323649431489817891039458906151647970074990565900765172650777650517519761784149885583720997350326750183536481324084633800027940010568673725812657199955251647251315279632829378774352473317746488294219482365091590404246595097620008493698341670325634243992577356520261476907650877628742122146561255384831522662247319393926868687449577695061665096674677859193126322685461613440571984401994903479842079607536492318391915363134436872190650126198968372354425423817337202656385463233315961013034362628107032809769238029366621534475210599586466951278583779192168192248452020218487623393358117918029149125949485897600252747218282812046170673817664407958204951668992749223672379612554954782948240272454912489341903992600060575279327468116663136219515686246714713290387536297677234387731561415114199630548825756674914691143870960213816063958925108279936675303622262388206730001019129490163032339440390412947921628357590419755837487154331849060320059839157430425111102603104080187349127741219301485135266001811703498422957116721546195665945309987525814225552813165121140581306014762019617191378537833232099770291072185636448716852684697219944235773281161299665625113995361884179482526609938149232213110543952499579723345782513797506172282956884680531926483371506702375515711921793536506839055649627727468245092908485764607770273270594688591639266825590843511247073462701779551254162643013088093261216071407694867555199936447028068100163905675934701025727810749821144225258389398475966076894078276968245058507049417107438665358953599086741173466112935052637006456812484233335325687439452689152255367526386941723383483135223886585913797367009216401379861576917116968945470816196138350721936772592731998504646520025493236012085598605462463708184955462461900354386797482226286688778747632505226249528968652694814206988174296150740795251006781402212383894577123213719453090429379550060470879006419566538536138063321100817559909189629632902638215295294916827676100360500601983292709575812617153818990420479913930352598770843077581825565760398216324460591600687734580491005931073307664637322085028099204075839404151403383499875706471545153816618681420411013341211639644512843219074580671743848733469434658876635917384473153296541106544527470510622652393577829530292498216010600006430695290487998506315571384294869785459027437366532341802986886280901721412634207912877232567091398388325508255851617443090067607631099711074576891445246052123249114309010469588114118783981222696918522441200907857230445868850206580662679493517941390306616452055488910034379941418276492757628270142227587519007662025140753423517899211135471710882706188217422851588884284660950741906774255681830719142916214438096197653815063204392436120043031113427253757510242027271145702809759135121389151639160873019239279214603783235430786859187888766349879671569504790595264569503039083951373019384208275726312456597516294250605006841375034898122993096038279720458621270382892879094194971962751473980138189937718636685611301291490271361521731323280986895284590506968249860071854021690288134940305007405356453500632744109077782107111505971699760619061486489847668236312481042903545435953323421888034552485807326582411870004654009364381566030887876269400083495801838392018864114784174421120718516568328832878061893613030208527100301015342553064965190594151771629649892604294354792396041049134199124510543938495701653932471928251437131865200651004605111436684061450506074574390304360233604491208209286684256522375288264036767287255528871764213820808306654149162314546283523544703166358138362836148531148862264304415318001628232818690918875507950350148831310426510494135664902611708720102260779800487051249917123465275848436888774344127853998758787006196042239239271370094720170577522472519305776995863726687141888074900877686661169445851145151763560225110920995411222606999613174079682913837471308407383533079889774036392606041646750455150007392518664488643198825947229980188629905296493739390516441496563521738738599200583053588856547714489369983519551577500616058026766862029902974720660000754513251991781001831142260760896730624717873643291605908507653775087556629900675180178152976716318563740975270922563566689814544511509312595001215219182907021589177066420880957059472440371787534596945519679098593743568386423686345180042081842501594430253163796422950649088108085763743246293439417962395655312901856196539278706652038547310190526299344289777697281279138147658219381436653843761717555059350927569080271457452452344158034534757994143478492078649630565281148117036154185270551643594162699300295757633390344645547058729194995275029000780052626791752442571882615692008607572615281394230390215495747013966630812518253582619215707338345818097953182989072080731157588116791644039896854286655682730754279828011276108783887469696333913070446503512199467875878599750505737253280271626957617091130181526721262487085136253244860958480794069895035928148532821354946767805311608959160813814585637466686257015696129945275791470053926672638442877166065296735767426189265198255109184715944650182978098327396531727434178068823905905961433917470684761651406241751696261091084322600409323037861277992925716398566269447885748944776341760280083614908534046243178693710248273868605745462504345760968294072236908310527900685526241863842105293026127824939205558058899831735072749962576402384781186689102176261341891773842417054453259716671635788287320820299300288643855206583863454669718394805506973334647532095036004669074997633463175174390215707245874354054216608517454193482792502195455303635182185133847633015127713223435973015033995241485042108921211744542918204319670012751329157096631842919230814613483805714816873802353772510926676428772581159923393409873030402303384135212269120226990997649630467781210936345217532429246042288392623165190773593064041830962260963420465796911349011358031214593469234973172182928628135475820332000470348566724844896961137774034932393434065944843121878870789998880519452856138034628170316136300075575163499159741794979716960281684390562565283058487841318076732595957476260080342604960096044650552634089035667712307321594163533895559377049487039315870679373091725102164405095493399959279637959290817669792504984983284480903569624551450793019106595721709287828124058857682566768809201906020314448577852835047039951240594048162448897072332196811345157888777932675365876767507972700986046479804760035915427060399038474010020373017638931721103716342871281592942822244899126340738620795613080697253044136363793645941917325429150346643578573796853622427886677418569109376039546448731925345185708064798051136441472773315274656156046263591562011804079856896696530710071487717043048571382207008896000268767483414490045772387078103026315693269153952522863480073305899119163027240731353386868466708789175336753307318546914954570216569768987232883946174823009156791121719478521243744521102560639895819569219596076174830724334366669504932162597964412463356842093868621756437160673398868828084419168589715049577391902150066833624717901924502728800359869553915118383154180129225641559723338167615974358713972148881198764289302080166304320228280861324354178495104594907116999535959178732314533154453447626640091057721340764363825135082791263084049135164198411944082617008118326067843425437547430036297854251795103147822078558796477139440374721344587736010036924060064150757293036942734547612306035354218991055426917502084986081370826349126191858529018441510865485448812240737064639588003134261379316934101771277424643304903680595387948321637848580905087131856794305988406155449501918690289747193390681475701019789487340913659011834006008660079814842244994105932268373476984475303691688124513001351997998240805180951794851487712407566839202267253762758479262681359624954723224359813887587000477436340658176868402005419303787171497127583311387508944501838449243506343162065337649749234860942142765893826551994989652609899133242242342087879862757206096183107577270776433523028880882107745036866489900052827200169334570785068625234635062770107359005051220070285488833490270975118613398364550704007410037432257819870601537805783887475870947652804534609477958761815476865445762758864310538801463536548233120644267926364659672187783808137379898536333493473844733377037779398060686471108915757262315359390696589006818808412802095193175206220520227003485494718211158896448981557973321812668785108679166716890628092281126198138461556995697468131750678128763188818373341503453774437422456840167834650299037146837285526356178340898292636261647809291031063426101923645465125399164225801571817624956653244809026441844898536491283548069396373041322100422421296100513618675059840809068108706795887485760874932339115279379080530063460038289782994873539891620554947051965303020251490943750460283154067873584796395181102273438939978697615736576934273276362086384242481859751587748918248159074618374494153861603592729690065465807939648754325789105745479788603358938989090058047542036575836774406207119588897665579390208086718711349033004795884217023400866503052022578812365175401098837352607232572634939745210291308241272135430408246324759285850260916759288668125734374279963632797906409097755434538770504903298620655319986694662060681983226852759602968813137827304109738183643388257104335627896481146731105984355679735402069689502823038689063186537818071317060230929438226266128836499722669477402315751771868063720204631739574434023029600849744440646946135240451398404391878045456616415266016337290455894885044757637993283610414196920282613108552572375307939259667452191666998624844043159449366535189699000882421962294479131313583765524866813376282149108727164574389078662372410601041437281768999915201838127583902988181194292453726584801220011400997055152269982015446501158509541535877607781583283372266213428517491742318111725234778612023168545674825710684920714062639829082883023254102055894912047256422577941349409572069373241981295446053309698872186115569866128597742901535045291478082847547649725826572108564992916005643623788468737067241825979424114711397498103187445087238704608582709523865063432201780476776868616294820503250343219488325569826346384448700741303529325317580030484672466343553892694832974926120976865713678770389882862977215034903695878910662428761177550902434862120652899861368641896451865386109223944735353016557286847904532737850753579508836444230545254851657163353283243665593016965207198950554814461472635308708529287748399077637244250449413110633261309911750670669287128343014858457312020071125849685144841177656644599218237568835408999733114463659385473556243847247381967521420059531266541612689954669652060722983220176389818887465615821230897474952005306324572156186209332958406069307826667281741615234716673213044460903582617995411608706906259016904639986718088370855444381560120499248878008141883315389228817491748447590905223212408765927659817338862608005346391990573732761676088717539755938649338315910677203577863455280878707031907689249037647199239429610331426976369447969343630469302075074935073566995953311168497075988824569390445220130413439792674482024263208762489626638382783591229485105156692567448657902452316637060223547849385162005908281456804631643518061764309170692023743037238594947417393870636144891482301351995446350800438926753807313911847957903865040317388700554329558373474112901583006842259955195200669124965475398552319026738970328313481497239242340501746109782825648944798953578130076922769038329011744452571172923247361114908728383804810713233508111708168025071358274068042747719855919355487010843245456914076707511346095604431552278299356927829846078522239497635962920651791801353948360194772493542643421125761223473949103992037971801769164644863059376811919557095855287454950837503690719753607658925290483013735183941314133290173276300972650380962044548810660823359342427511566324345643364683252063890901904554980174378921638199806309217842629807281756649807691433356874342649708530523962967934618050019172695171652893963269680250308496684780128968590002803040996972056264527343917233616666262381550734940125066488212937068210035028417481246506720488470846098805519246621348615209074811337842388761160230829005041340712816481848895500378973564090808698619356468837567108206365472832137352690247439050242495101036691248691818717878900317406922218734301245748135700550110441609560468013460353900317318774884736085986013847440532914490547768386407071930559099836196546585351782461702833114169684155546937436871987161090609611047308039427931908806548791737843823501672273244520908354947236975879178883276856184769957367085549255362881651700580766684695270112449478540924183956512574751113563294324575377083537159270654562452444705820420376371786742559238859772561524913103012251018504967198271294777303714205754503274194915500810669821509664830175859447046242237821896278884662620314426018034664934553279252392066023259755246483659918227445486781905715285811980158311663314902878228014445165327421025076283103861565657027574046088653249834665763701800184930720225421187830157745870397385405090580407265326245088392261376258032948492230482715927475671724590182400078696533954008026317145657103435817950594937760445139241958432450863387285420566163576950994563971342194811311974200244854730641245548827425907558089543753687834606299958156083725661471459254715697724735332753474614662319240736158875511265934444287092201135835348158974154304181268925788716600472783941712698193167544460607259694025672175108336512488866792035993452145918332535941215641761614619043637672991337927246745871740344543175019806266170964435905027406401973717147808400209778176693659474764921531500912909550664206448582261771170528407617303491794664967748272241558491973506196737339322331516694762971269634698397609535762580164855022269400896576493839638538530959852097797680998522929767644711351583612893493879238591172005631341444653279676838117108866291389466571980241328507564277464857204120328826904813072990627681139638379504763524652557541465967542380291490863848310235037490481786305047391200022060436092595513359868481726233037281775110030088119770202660486364029454447938281378340517139922568922660229031274857144210613732612401346462469804225811517390630240536081181766508243603711505604693137890475771802144792553176724993017931423313607783447960083141712360532333068178070141327791813192660355535276000614053717799931723981281851770083927878163401928153270811498776166659468837688626345193054713099612139378615881185117009573695067087868467469752745256182745626935308034764456720662511549960374521708387163447705966110952815951172668658182155727036023350374120754744764643873784957868620468523759191589975704058468619617101342299897835821887778892821510893822050311984374905750598283877552988905351712572871392468675381187729824697732553409039589104571613116780330367329833170017427139152134013231468204066676889527756622242205932598426913659443579216904676961221679500414919237552138506481741688307672114413985435127747142103098487112604607058771009600645213480422039639501530257595134178511324643990544975989651804092289743283223833508129220235401630125434170781505637511461723574455784855208033791666111356719443680321698543164248103832486060764541480867289047311608957713404517214019091643979661121046840335790213094594194709738001849085363552661935512825759493326402116109654172385001178053857139994452999845105165684619490051624626170057304650871397216441054681679825837362891405760671300921616723320768136384100284657227535997796626134232419277151945347303454078894476149074906003135618544953185855232479129429420490284859080930782260463814807353763561850933598646638811388271813724897600026435276655535245874725299472081121747623223094066522803292648045431584859211488313094751778778938000499934486649146069477656289883800945333428380028823891770772795256974013560798882336223850460667973825823579759438498797679866358573086057603346861438472701854688835843038890281530793216420823396634923933060696632547530401124352606132153988925562789203575204294634568147056190523010746054873722580098420360006844090989824673906457009502476922014427105161603723883058042310756186655026870000192789771029096883197156335775759180475549152627977134112671374593315230938913424824393763906016152914491500258975640295994355465341427278851806850094058698884125324194737545944750229472853071509795064078339478041783374463733368389241144410274452734908704822194054200941554440585122818152290152799329281283460577931192918020015919171973000725706164787400051433120899456899182799147784158783960198935797106218331693266417589976436258085967271870960723600477343157009944931063636688694392148971941526050940240812638385548093244550525786766593156994494041603584194263599211836757827299804469730100707845399224192563948856530580227946170861177646040814179286232421786558782586398076173349653870948852955579248875067197122814725727768492828023544495846411141311914480413363554866452624252424573403207631024139468587471480803711849080842553602895862017416847419646496197479767527931172298598085335565371612200064152351906969758321305261593790488408325252456426764268481171518039954558829111007739242277056808033503200993716712758091404563484177244848152476524222305130662229705980055415618381325127246432182508080946395677639408693678715204741955545054319915330686512607293280458629721463480684452928388899288499445417493483613358600442753668601693985052640729687534242375021417498520304150854901966862064992164150628476874589075612103896630166552827995921075781652353254247108434024064906862895404339731026130576070495993303185184701187123837657621720558585041695336410695065755151469323526231490358888666558539297823092080793365483802143176252799049071853488275240713936743333648711084289956809713626996832756448619521863776315334907704409826023472333481819069465795335463569005689990401251228666049948259982902109286259134053956484259560754167703926076490875932009715713434926079087672572382514657622635133750498805918577586550836347392253340910236896081320630015136953127225379708370151185451859112883630144541006881925034343613537641888882277332752521882910884225170130125147731872944946564049667884027675528613316243303679551800961288337070834825665668918226044809238675473172073923833803482422132307144796243638244838978938801041681383751553242082400454633634946453383481799585721700334906548637538938044847008767906572288578514923464533731364693262605658903589474089002834485133877077186249000692261488631804082085238435671561410887077449356151326869990197214740153052296148822978158315698379645363025689611241103658612857635463951986412248647085351258558737923368070667125061921878890475329481361422811867619749036450936899023088153498834767157603494717717136887177942288396158863924286981762396806438131795484181509810028139127738069163935528717026419557179383188469788324090055289836910380098546823070857599309499538338933899262645715480398443950891166948048043487278288593800210479511594352544215667591589429083306279605058538054861755076995876160392047609146096508033686169287364828910661350584032589580350402735156313448203802105869702472276458520073192210173252583176313979998748819199775079395539066893316950976130924370022314710397668115434198278685435485076341926704096177328926064878980106625459294005322841120122417250870848777674259124206294914060616027440949984672991445274053790167714179497721597624706964434038166530634199201455558039171149570943719528939090186018868658741387698876358934474336449830893921632585840799560015893317063187325281691607126584154097142551196523325794317455421564258883906996147177001199277976812876850915223242224921328750718281806736073053765060510839394579172543176608907634416291952972180380932687920713419334727734721903940420447445689123899878252772509763052195989508833874141869118788199616937093840825055857251895164248285687057455207279264967409078364524562375273818117116139352219558988216425920329286241826948321382060152361883468468721092683806098933736890687161092857605392048384797249594253176720181717530148717576242552703146103624762514130117340430107998497114149565140112519229266257883458348949559274676676296842440439903032944460894113696454001975818083334781112550221546656007627507321687601192810036211709185913725630609846458224124485004899096936256697336868804918296482342741391294986185136209884278603329720625681794697126785397603572641134384996085309204102272256569260745936944880298147063624096949838384947825894387781763940839176909490421284600148111215830518724165902420986133762647980781697575793833148544649581033961785047280597878889761153583618948893561367680456476583913486658725105500920467693520788912965703783414165710845851823074494090120772783293439998764940613223251786239055349320744367825673951709333596569827657082375464098917412502358372027638944827105309127782152390227551695349994530582398037862972285344268481979926852205381174415482667264805346180540861534971027879615190034179790012137289589478667666187834137942191713887664386650918670746825056052462843574495018980828146290794908074785216651432890882890115520357367743075001636371119612776617734104318820901979490539622057426575639473963756293665547559621598583559121664307264482002365554574910431898317168357602955213046544865444743051968194485322478735238295386553749016847059829311084328163900280871868549282001691029180316236306727314072705457306868662425472310314458513114304181917594808192890830249046012545277125919280086770919635628498848998738468034211098854479539651575982653736320434096977740818629756507789844608416527121422490973339147189662608615217500471085429961019206427946275919862667077435073443691774923371486804005356534365920641393596974215129693538842218671312933161089594729611960095592150299787500438776489938644884664094579764131744071315056880832500920636255509054790183610069835600580155187514283252274581262556958727240242887827635135587497791247291210701816267328401301113814716678641194384477695743784993868988796747364055318284349523766835303504145481342812194936654842011379540181622652912941062779076392732372845047761501292479143414242893367242127294028203837193956734072435006080152962487952359721209686261261700418488324152824982604913870533716674877608328794886496660914458870912228680385429631917308880823559821672516238857505614450309544742687626391612387122909527381142940568880865619375685102124956828979823823281979323813959619429121775729907169283106350605858823843006225820456762685499500149432840248825262747359621883159594476738453944345101890609906798984100504028382620900478793330682475961408126947549809423819631877725526646122172000770100832318866877986417593855932373515461660253703057521224057717606412825203094243474109511539190696182014615852231584384707742800966174241113768950450935927435117316564351038397772892171022494048805881087508240043493822007425368253647042815726900517088680599347641277819483692253072647927767104569739370313541721496878751944967838545348517105097334763329104414174787624435984557552979061174219354246544649879737590318013845081413306914627176201441205984329723368886027982255662846319438458472407907519667559546314406815689231052065265838020763946813926527050629900058935281372848213116488082720970753328522132030905500546849631635510372834022285272368802435380304943013197417307721107081565688163808864084613101408082097914218366551728811553237294765549224365702401553701802491150517932290773384714615969059803621414237673657083681410342751150647874714763663873067729855694099775018979633719173608945109855981031932525718450134354526826328779289690584214140955156196517573177557307146221998586167617397574602479026021303670145498557537949136080601445047312012470941847113497734212290131135367039296894728754960718509371315171117765836325955625801415491793749918725263168988968156346276713173635236679106030785957496310304750991546289239678106147435496063608234608258224199102256925302792326254052092645962876502048042909563703799162138465572043870438326762053235410832438336671827437014225063406571154551271323303700936566545892093901708762412794882053472188637993181081928368813085568938678961358211369228103872343802155600366848563915055581801253324390334268864010278465495209996883296273422275923448947687742688722715022841483465553222846253086963978702261445077961826565274897494741986819373252171156379090081712668651965588797587679118342325690464808154120721380333549098678451137585495785382827577594596643386354228603386697393154493239446411746293627057677833826856849141712104990881258742595329776001698142023442183710272280146212776706576891456307735054588555785522652811032638513129949057180868549148684352637659843141676549125374198831203069776367273659764105738528774715027308220077569826181828920802241127680404710865596777331884739229012679095590023881072968717385789255372800515479038202922362460347677132653426235157574088433078306869183732607882041839642206610643276854800735231724177330148329420250929478322358498993715645810477788962172284344536945888523150457113649341626945901852409875975060465540355261991352994775677299979430754171034060666950413128843630865974514137618058208309392216044072462778191836529848603037659746581717653500171424916992378593424158380880178375010347592631851507894773509556380407168707742298126850718569036727641285963167809274714654912118971785142840146998616282079031497373428125452966940342150728241793688838156010761013639845998995076394104033263690869102781125824381661770284887690227912035406637915155144668554646384623723795022408440249865413133732993137198922120285556405466284739169889312609713842948011329676304695661836811142026789360574286732747747377453046386613815651005886826456484582018211110966317215390000237511252445711467071034860198263297269920789691263849961039276669656206944443762898366038499851509731991392221622067853698655788507606506408422320566046604124386385170783269550401447572827653532405395911657589721164675073514876063880068403625408689469507300723074842464597483954456040160226718102072615043929325004286253052390260845243430875241585678680197845502033661017402846587107539868651121047840402667078262852604191003899426290224872512796448708681340886660640160951517329068579259713706730381114223134914621777013459427577855537388213057902581941150566146116755303796180372966948564252422011796762994218782830210069546306627724135873512350617379892915167858985046121209618663161202396677601018277427194655560153394283763842672588956649890073261835810975648961632713571668345191760556908184264864937166619406038176090184028991892566783406579199721769132367461465363436665619123182055751180717193825558969392962052134404102176494254722194357403342923927998711306086444085567412876596856984017026853991362772267885857520259759129663670361605469410245040602565832089493184024487713699076370326644220329343625587343663134836529179633297015365610098776104657111309584977310869805460473839001189674856522289619674234839830962401450552193744084272556713911702401090552980874582263894917524382369346313664281860081563770196379878133159298111744186679304731793032140671423128489638276698751806719778627155733809486055976274446603546913806221363529728772921578238863849975346065258740257703857749893393722099937917775242205915955341842978753143911547296290144161783197540236934685813050375693408598991512471386321854752786113217979110868027867655334974034421621288848985069516562849462767736589043532169059966601999063184911651367604239079821921596467729615359893850000097702890141456097304851850520865139820302259405290415526360384416825525022778419983590558352470486481416210548710375852202974754077198254027115838539955976321643917973977607570933965256302343840947031864947491955745151170268530360690957731841725587572026719538383128014252152648556108853521209715518918130022584636399682902612969416343973654280464835177858179749124261653598484237262309986755265161432462995214522550569391684972968058397372440798377447514383249502871686404874018282117245147834236936350112316996835357098192900487551590090729559832002067393498222875676814863758680623815757995175219919451182909785110828818448229588968461418454822503961437750305644438168153180743153307089318298847267563918975443625858360071455377570728420584273533727429235154330269302828767999465435566609054724203753304598982383907548933951169887917837710486327723768787786137515251009302077932489587908856861188342469132410415514226919769629466244988340841436052250314514947055517985935740373887626826395927078269383747283410013222510300422577366114263145881208947054740807453297446415141114549460087228210346258790782400395093005635561351462375223540301995540108463727786461857428864848812620982099825198986155620597095391657407999073627888539516444238932079901646480511140960950788886011733930452680530643817454273748260034861867919642107383312857966733695722189023501422457221150803194707030464344926561253562543376922763768842736376813467904247362099694655998238385554071418766428738672666298520108459122979555036988895839747729281367909413804193034849856700678738328666841870864443686095825994805934716378408216788612809687795526799141385719794350426356865742704017454460940937023780033263893887087800574083840806662772379619139001652329141640380385490939285572520749338640478845228696179596618183878274122800838444837108234797927331543938222344998303957042984830735001925627802987391350567990739541657734761944962434068927345869301313207152728778216896474140664887642567865474763070038622103515588402384044359167898219535412989922494847933256799095642953347316374682514016545608486794998510395951353002550317293670514658290086979881819273184159396241934256573751218198036578018491564129901700040090577637732813568157594115092555962465937310365733865039687672246078341524961455014094512919020149877295649993547448966097705830779989386303947711995514823570702936914680599957780170613608432909950584298628047953222473675972392339168897540152701575091171185776088580106636300114591111871787083096017610400632325824341850761094435875728251321313070037189707899649616018509702715515565664897690955323325049495234521059503478821883839864598848457176022369306026265042805436555127554977858744145626467636940144297616986705126164771779300994371437920134049802920182265167486074625036402709595603319123182822743150385800269330684250126630692333362977266606922423890572916004051796598785069989239731895469744970919343583394367536797788356902909934735117689569517624234735436367617733042106092407418274619801919968315478276217869906797305382318046798117880382613179094882334192258799329356395666801600572183317916046246257536061996283934771628588641947927336227100633833117027837461454489953855442823793936833733141436777513033387722466797485210949484348435891767949835017712442182406982640234927252826980122129557291117611306172116592089384697802267831397585885865868209973358345882517109026248171966658165551637949083636968053261592473430301077287521638478150321512661398542969610402851260560179015010032130891602509222643473812565534544208390971236787774319815348132921055560872590991787659453619423471826098153031126720676173287520409655064050106833441506590105980609652314453206175187655779255630245718208731523133679666306626704955929110442111600411892384583014977562490169049005771235941374845924714287509801107311735718095329220082734375375025312415383471792942555013525117981964895166936989922961982516543964486929567542105292150827340371872545032069179783520422250407452904763559416638504482307796995819124107486614890436636644164688195863424938958556469372965785887343041840716157656564900249563102624691853878988471168301285063022646887496547979442718505180467911241993319178659336977344600888402831847804779160492494345435064139803666576486884547425755656598906192908208755894917347509177171923988740964597715736931391938578634711326705132244057570335168421664624707994850671178396864852697667387310316115571993640113142484060304412260039634211844367025165326587427385758265714636427869650183687180937459179356171904350961221788360021972185564299757562947933928297352438034578893692907653855132627501675937234032533165101313345694144393017587360906048518903696762177314373986354836315502251300749077060936263950394047500135107757837155746938653031276235118828835191239774900382739753613077145883649592232836109929837668702954670216656146770793076122089211845136725704307965626309600961804616861933103768373687567865263910092835576350204613492530075119571414746692121972876490954556722608311329204448711092952386707283540005701224467662091012718581235590223318267579045510221452150663069785776989904627312246056344385645014667861813369308698491944757513844571743609300910469726130096461535650454532547630777516128219076945611126369088292539910250669269887699513830383256427832471663758008137100010223057512281341817787238063870893351069411357640056225932977113984170531239184217899226740161888019699367852473687856521142858712123025255367669557868864286323106556288590830588377463747447539385226618340532258137736058565434146689638319981719521393492828763141492823786262532324596922942545427696517074370728523955528269993720495176768369299368861726033624517897899417844760105573611337161633908425129654931662073901858078920870144340226354184274776714973341377319989178434215270085206044639878780576792063607956880413610675218254976800793607697554759531326761488653318136380061424512125085875984991064684979392539107840385459104281882087975138476254483416754788680393162286564649170575070102320870192942559349047905632078162227471734918382936059518659788516876342907714405418644121296054117181973097640830899885920072417454621458703571768985206204276230821555947435775377518924227457866327688630281592662566234550127531955353960295670135904158971599506361875650638508390580655158747164988472087541442483694270043656785622982808267753972144400791715849775741527206114012964227041346864384096086693936496306047206293799681042447734261420348288412632550423000952775045509916032557196670967605672713439061098488221874496951285489865408493930972888547544866933980554413814145922528322160414501340246219913449840683302599174248575640739565894491341022410719767891636438327329202165501987731402094196696085401765696898157504898140659856498167992657665494914490416549724731094248587669484432203153858563780471999634275054720753782299794846989823085955177147913451259661831641806087100981244035980656976639193596674017449210586524278414531071486895992888842208922945349941297227969339389651339060678247897608544143317848050137172781967926925173595116254084589156777633160635866163389830144955956576844281989423338340596669256208457876968517933949153548778517300450157047413632429250621442572809652425469916745894601184498215355348214121731968706028991317362831120511734308229410526775593279196116259809492416063802553508022413467551913025859272988313246756541689565075861675003102969452048525470011881148733896360323731737883462888459017446512478205135702121073530754945617066426548408082065023854808031519792073288711029282212384285546574510245284581291477021347652496739509221166934347944683392795458505546690039471789134513433973840031591867235338837908400897402189394427856112924069431420145052181973090274346610389906733590601730192766859144866610633315119189260997206505860409250553388391843207267760996867133138680476712409976066556253466526475884065858438017299756494374834417151546549943287960723507014355613437615648251188102015383699256495390060220077405149606934562416967137694353889759147451922683851622111187923418300693755951042356177357412752913347409317426110973501357373737035367308705477581109629051811876771336677232215372842474091457801398000258842581402090695462414164459383388524667913897474406907747452006091028633983561467931689982318071066277536687072133466643566108491275423572146896828335069890987619959575638386905069856400130312492572595110888387806579529293026398723471369816601363473211124982156151040074195437603683635348521102514842366914367742447882912973125954807625613585404772316669363761259675910066763755510829975821626989061660812535846701278071841942378396440955304768225091487182774428353786320567774541611629612882711065836645186232504033211437513923836526428509138350980459145377627762792901184019765002062446309116289180321335815238459622533450318048443259321858368324581115511877654406889948468473051696644115399729216146842818044656325038765962321895235444850433658435295607225522838572977378037406123785511684067517115710503176576258883303469016109291454598440755362676714999657078541034068006603239305790855235950397796723735535695434663529024378165829993543630891014547981490753765797137545779490099389989888169986761940501920691371724058579615852989012788433132203430028633618873143272553167102872248811552369605051789158818924014808394131422521009658929378752170414537128700839561782042802246326012220196748377535720850717319804520019292817948709855846450344351343979854498935367493904611279640024492054622309522916663367301915725130050720190586944073546504812326211195030378535666948944741017783025988374850967189804956028955666004810407918890318555774507888764649859177382024631079058951907696866527191471519979861292375115614387551436888302874959437896331931627357978757748108715204306475539030161838294876930580944586871344772422885463222825794285983700516884971040170043038850882681234238935660935118586133436432482610941296484603254497247566770789061204967595241621585223159288008627290077765844933107196899172346609087588812613663218896652884595658499159381183536436913245218126975212459087855462165344865997779667922958266460296059735197230710003138418679818337545616878276511971705666655371496935247702761809185827880884518407768014591624770646581607077798538616949065930470777986834818795730440234046042124745282802734487103669630106142347348730583851690168130983209648651926714252455648626442705737158712377617876292238312628920701110668702609172891385641140247717854778313062707709473546934536830784514271847025891416530399722917761184277311582363187602471237084905179594903435645394713403503096837034863275954114258083783991000088262906086389542380836673984794074337556643365310033766207833692405156289991820433842726999119622577918323553726126630596748403211442952549537871751506354629924530601273916980818127985938343829370225742777181685095316690436272696714105427590791242791630987584986523801155801573293114301497546989651577511258889450187046976165222168493783721799857146500459961237655406624427458318423967516807822180538080349822140611585453001478512057586099076887333070240695291954894837539665965144129776264393021240023425376429112242283448707118400187280926801455535446273908457223386985307104677040907236171657291500725977394387498581788885356615151226330318421011859344391243739798804555879618409478659961465725781078893788976054530977190454313665243756309510945510083125201991014348339789477366377443007747804996069775044771978804597212264833433681224189629229912633176548386469817358718482458368723999847621615171351551990834459213172981965336624395546424821024316007470803291950118986224652307589381627835065987934854128482473284898259573877577597271660553227977845847943345784740154034237482955812392256494785090285391122538216759070524299459476713152949638335945582057482869704443509853063383196839966712672516406307629900809606758859704960930394021960485159298417526106030023192236854061456558419067606571710138744641706303973255800081053418415617411276909897098970419767541575678335570486773608974487386527202357395125729949772275840156953513274563287897257108866468759574903218346396354947427916139235922494925682912045522521171848944603932210549242528737201027427741033516555093428859530915791941783956878177239603092120044303449490996113934152169357641990013529314010676228395808802919420880710123294160343892796574148014884148333717727441071409171458546353732137648674237508942903399624215110691896447879830060072419126073208505272124111613401456281363938197835501177170725415552605765698199752995458511832876789669560162870247562262039061310322700952879740501210598403640630671438835902477043993906295231874014108662046702749589782677133096193475372501226982160548738463709664103206240242348136621243156310958711396730229977486973062473535201467594057044279053091619997092795735120677073521350726420011561824482476451420334061611640763260333891146127885636137127103267889122799684123888591110624821772492513340058545982929214194538038230108024158545374714884952496467026597411953316312542786059217168164272073851923008982464154435673652640650938078539008125943666533378800588635310219244642227080546163420377281202600339404370509452178273026721864486661446216718532095328306845352968087350452705087169555861250024062210221640463705976069214508688494527631098913345675329819972516160198579085639022833723713549797865931894643121924393429094863231543290302774567188941313781690476505980231853157634908843395897797298752012643602731099170184960588166714712292631631138422114543151646853363355803110758427243315819472473591150314319680177373967102995677608590885695734734633218981648076844205711777284898903579791814579375496958205312825440444640438739658856263440957685340452564577959755116272270411167610525219521276600875546725818301346742415005546678622773025073279100490606858542339837249308256734938282001306682783919088702654546170677578538039888613570847259233249225322750503968714180740250258311118532298247397391514050296042900459169250237889118320082467338232473211203594121841381521023635933501566866355222784562043748270466974349958348287838047274829937243091430726220602110864933306164884438759060549783372730422557819701252983040848836102530531363755224385806043011158115281525209749701970894929554471055582873675639870736662663529561425860802818987776315277448287501338761953870033569774244463714695817387048639451855848224865393830951000968363369307861486944156349511460658725891581240952804316406819867257591322104875350879136976329877840667174558142444109951249154937539981733959598123359114543110998035077068618420970250105692900417921403170096935204075799954937609051939768171943805899688047671284046104012929588197042174344456628158840911125410681892626668171849756777479203428519437667920499271787900583396797107473534698141289570697608658176475026634629091219592945382640182076470241658411852393509354640720842737486820237234819148031353341944602443830486788091501677167528410847292122309073589564765912126738646400857759476466801208176167088353087633372353217161920252449600506803697968616828812674606281501302247685259717348715935870636160318151625084092603926649317069874164585887310010998649054759090832509198606014389461147574008697640690756202953743862528417315769424564879118929490628924908016641116300303446815127669377594694062199020246498513485016184901119280754826783039586470485083284889038827351266373859985390464112013648546751087587777174525438769859983547276304000274222531579688356232296687931572679479722249269228843212134457623606454725993076593110957650876719179826300532993623378261336032839754811140161414371336850658993496216967577564265568241338789782009034545421963001884448702094747070945143608899101362732283950605149371685267817781621771363076738376728420221557737255291687776547793355518569206400441338985718124948473340050438637982213407296835763856545469388843995678278731681560718290999981051358404623758948107608646721190162066968440833752994342850410681062655633338466889801858042424854647794970107865870027484737416982065724366487689977149173270389860125227812534325838838775662170052393481863031365447883273823530118338619879484048419793625912481060321542395485492392516618220358224303420723804854172469515268585391883594138545390082190105059788352469238655796174279914714251677218193330483139414282781626078047202234587048755459233120835795051692442014919898610419065422405993519882263214239617067686096268090804406550753584724185403407292923643706516264876556235792084274438683592403866830094596377670986600094302841861091241793999775773667894663866194573296179729551940656503827744694029640090394652324864051263446464959448864170246798096446675014252359283947059673649934476481366913627398911902254302635874620136430669541379679411066867817354813454669686532974789256309292594243943662679064911105133139021580207874539653442686075868677705036471511114165302519985065293616646586349007098298284513489002427101829901208114698590239782199038861442134490354217078718990649933048225183605374022032584764097718184187716458597700108260567732510871723157574062701709303577448102313247449048975942930662578289733735983672688763291087609273763961832858259412190830771072436629967170318194345958954202418327988680595000229047269864404131406774313128763453357226770927962589288811917974243831232308148579335935849291506877556320656634567907121336075802484680156054093420484192435235786127389475760503401479401903960959564319528410734215700688348931409800682903216401226711618507583643519980377636327411435088176748665545880077522465177207900338291982901696330773536381268136225278286802661048774208467166293617041308395590530688902232416816789630682653391321613084321002592518807036595917714160123344550408925329491581491132847979807713865188234338332363609415067861955612800565629110701201263019660008119378948325098723366335560043494793257879457576805375103581198112952466512816635259796490989237647523473340240309080582389841068482978256159063449596604157078290599465703754431544053250836250671806520618337970674202880232038961580743791292343281327650193001309471914474366561487026739977142605577006687638332200715796925796439414777983731756728173343176430692920984074192227649526072037282757882058301161378063300232270451464375682793213931461760111166329437794304993302344132037510538688292276267483045172334766463529475782313391246536486894334275656522589908080452913162633774819588456031423933837439983448747998345695470380064660312444836292427083556405082346751220401210626350959165984371314659703878797925500810686363218966297788911778934070000886574251415376031462935423693196954312443159521079955341981702406707673095003693302719993795391772025684079389688968281644943592730065681376776625974373039875579843738582728616275930780648054851285556883742537345479100570481167434295488398060743128383352260054452031682517693498750623588898475534074014308798948894422196214922948282011479555103284347655953456023094187885548939265937194117948017556956559222170730893935066736321082112292646988230581315720587097059573658865507030169755223789289542708620040669106207551485873719512907589039554670904452086543235259650247320862458443476150151743823484273355295985994457217958819435169062823680808299889315065617922185593935657005319437296519635037811987947281897051644076453557694546865860939011350559682677875215932570299412045279680277075906039668817503488960028666793187418120502819483478802455996089875443790548509155815851860694031712063100362240250043423249949567802492298905832970272173026128122179966490814924374588543747587615105431210655288181577997283428615430771512959697093149954924809334024599655340177913768919142182161608011626489115337188585306030158222349786822971452024688192481159953477476964707811209005038973630560011433721165213566989787163678932832077603820036530992669270285786183140567894492475976138523090037890095283725091637192490807502099866901227017761833251744311111437986932246422515145539044605471924106177532140090719412687625335650125203256572123001500901325816451787567153976570979431985316635341767152669520299786061692872440355691321086104701119435036870231875948594006813681672801790607803158356540929810530759514043873320227885340074984662408159741993821323845777062251072165129263065665807895460556778575868009807351124278627313323466619730537041464517665969434751046998874576586129639440743685895260134556585577716600908284032172351873802272002760931114717629631400410063419133435885508002503595550762276009286704817580036108845399020129878500238183161451804529035097281247587244149260027483189825776718111956681124231795128825183338963584165250491621042515369028419506241926806204381775258977317040989206213346869397332729093945344284523041504798294070220486274615778062658025483593318110809817512627048876500516757521311736260365068955678208036965786372181599361126785800934744819764434428417290017354048486021489172535765494436981468858841843503146666592973343531246376387193526622639891546368337179789621695414454267017558649077235372984883433114640503779627179777693537980230794842926043621397869972010593809002798172043711289239123390495860984865732789515989812976200825396017605769286111065178875425736241896216537305294348685477775743400396262895908387631286574266520947715973697093081796974003349862830193157509066044739009014886269441505906507843492509743542585933307358274141229487031440793492633191431853518394930863780447157719012504762086925351406036963847437943899256238324978732182298121047220977744237617086067951377652111882247945825162915208389079935243421373690226944422114141684837942089728679129877250468532108641927420428185171250868485788272768940358285679897178910842196385233121927072872549527713569764824409211002813508307244986260116861889891698615055287730941257764242479544408031335731274450199924559077624031443756649685384408902091825409753468332265913299794543062161177930036622384626827502955453375091195900824644433750043646392100523792424085661867824219069442821998294522221878532104991708675900192086882221020449270797339491821479636258024852282191657457560186926689372856245738521425153357205164072529359205610956898187827783426674591521744835610413417080846633435566368925438014155704831858986045084154062683439554200027076928108904371404626620742463709353142404864093919784834102618629857982053069853902770450997185806132823978956325250015633777705713163597237243532877263535363682982778316895851106024036668160297167638969253907132613430588077873939404018931923324174980359467630673632066610083217279235318936493646117436051263327145885204925333783079150893239178373992562011592252340687811379017076914243690880978977523441777582721064752317128689647537913612623736422283099604831096753579976619816747494611651558807159886931589900637308108982668265318879490308486264304911121473191267387303673322576094997729525702073874445079663936232748862954885942103724556481185178991257736230278652022413508714054564063392688222907331470260468883536215631672234499288025075015876283650892304106014065090732754262568868924957653854178702175465246528055944366184356661158055525075996939163770891424911231875880782937911711470792328476894932414528169011045607371605387111680457241414448484586364530351787203353252449447770763883141881419375861843493059653171454479119406375367029517927071445631227709141081630511895186541439499126727143284998816221427374568517256340344210434443666127967557810328547932614006936554636494297449442347944551527686302440597631999840798019015435550443848760948836804008367868725162549712828443674563152848768936774201780687720563920578783822183980372823592149602016223171822147294546476556066166284223037937905175172896097478530667645379795280824183400996733871475194129180949494014215977713551335448232387484303751784876538906538691585009378369802746291499388920773598673674874679915342511825299458602011825559354174631024448780283719142105364520523618899057193534902180235263273952867812042030683814963516660336972515799648917843399852444864926661225569382211280383742991516045091265327658954339642859530927771740178490771099955219798155469246253175557860659530936689799682472694486704700226274356087814364711773652646872245847125731157654933067533644081166364928605989826529603628189178677475488500404675566691384657165291687770148575910406969053763154209384265837364907911960822152967833019087275876953254869310334814813145838032020481679545640092138305032769814696401860511800235635404029308325585286114965081251088815245644690010114489981945377408322973777969682529322051616055157593021784438655129194440494161136440996546669622375026535009818968331513540793857358220353247986233741044108313590049824764538707907656257736857379944765929272034400424879298687555160773065707277852349880246484654102570678359796967828468524410237165526158862163398088809647464990636035865153183882253669114111498698522236101268911968933739704681641753321007681195586403871900313213032284745628021589586321868610375303729992728100029639523012975086940312332422257580419517690733774377247087465240985689735442440705385425013084499182120460997895959636126766998264762058187720760328418201133737779377985543441100734206931295414454283150965362421179934036375020342986214841037223824793498971787415061208266868712610980793137134036471471634298351970684256968471815250000653819505701083637696249995377298677339006244449145152507028091942334081890831830671179813440641891870621464014681257881317677322916946974215461360612980064628706563880343137500188818524038009808487188096415593225279261585542625148338793229602535153449525487019925857084701382563245432451392699521528376439168867055995927643788315802594999914583204016949312108773327137898449654710986737640973145088721016759521281461694441722380144815208026958368301565935677138312624416309833702057309120101242394828757451050232348568694078253043009607716179687756034696666415155956193902967197076703401997163342149242051707858839992981083471898644887784217011141450981179886465642334697085962385579417157632838356297644248855283068677882628537418750426145648514271333285237892883019028794417833249940441564065490169348642057873261736293203163547988873688384213429969609431046844067621439759374237541199995339329765340198173674247573155431947627792637026789172394268261888265771953494227692916588678780061634999943647864373991756760638667840178700540422751206154006281641848143840113066763631973437961971274336356837896209172754411246933016240981159897098906545101506292588900626048799828691824786351572015003598941342415861588555363317517954167470345234427702043388705751332440317384866832017682296662510159239958732392731572738007017114697009897364609985631755044527050476371991924419049370966476986360809369071677842297730214470649460505827188349841703337890285760471393442996677234454893708627303220516672243301850895403661720650719572043111767817567827482225438791012425256928006619798396115083804567631841005139680751324672833495077658972458055261272542851009700125338231178662364498772202084586140050720863787153432254679392273555120972562296696731981955248804418550902349381665381308438701152515570421238257894882023169565127046392824527584370947478926604120327343474647846657710792491537362016518190734516795712581278846942850598616150699519288232750799842784347918886320017533778061869550473437217631954198555073693477056902449000518131994511124815865444735807308058576296024613095202750447985696295792308166163047667413729284765551829156744343524927876046555747263386631345210354480721450004132273324575870317688767166367668684165697775702129196176743152486676150984409131784102167993518939437526576767629365884416665548207140641694696515452819622773534343829898273675723923510283997421522659768153823155825920344832987523049220227352688701065142286578689089597950122966728880328714433576785068323034977799807174348642034040170436434668874840216039567038235327989530519462689772426479660625190205187504520635934184725939620103864209549376228476896929379251301026892512935986854107665380165085899413596502656505478382165510225908800769116629328417738564933624527131677482498210290411651593673516751860457472327148198329352620534471686304401532635552148657784736301129232074563664278175703912698276124317828897961250503489113515776946440270691772210558392272841070917227959799687164889156467819692726636792711511007302937685105386305935224027574436573512371188355870730175583704965932764742009474935841276202708980699246526817396975812563486359833471262974364362997382407138306859436805232483168267617961819225782905010567628245037659182171200348787623882563919233752317346179187673655143710588624520061212944650229997172912258784934272905537096601799965411354500330507786551327008931699451593418515366380467101059413461563100451109189099419942934865950119242226560830307509915671300233765274054421562244408909822892790628924420195141129629044675619479161407449398266954149748319748876271918858765180731857195570181458970490235821329560573697008486925776575033889144184133920474398238056040247299375918867359217250292919312035718484250675945985635198242558679963270321383246644397587798085941851765190039542825479061393574293706054188999132570432924614518604910876254129070471445149358887972086086514488154117814197006296742095963078356977189152552688716550001502959636722849788756424786689693547221330867191769604176410345121802413221708955701364464916186709245757607028060407634528704356003192894257677142098186818063922420103631080667095584409351785997199089891707420198637612976868286945891366132145797835017326226369401769708594200406055087790812066825133124117471546026379774625333229814084941328928737214123832158494513398759419772808287198637689181373853673967211649610962764935615197848564560047393406142506459532043627364325319837715680606076352753349700019038491071265467286999894033767494535392140356102570359809818372386060501642017727133641100577180869803635813639472095627002761455197646791278834432423807632394592840921511402633839287534591434062363368694887969455463688050764800941193253036018847206473877006236249202778166713758760241049292060821712107251924437581352123401431305086798857911632663039389309705610723544108651395085380178696644393190276657301448020370729970327947675009612912025104397739896103676730179999105588101271350468322360851838349286952205982721728767766292785775847422629120293721349146915853814486079182773685172814022990877150669694611246232110929711919508381105138989748463856750615965601416938269308841371531158003932298094027624350899114293306367128518314527215031121890160640961070684432771841357017681050880716720577768896738061999825722074877845656794978437738082203601930453572162471361819267244716369880534385893020451536781744026785219393977627989477729965949815354269362234585891254208807920783782129234248705591551681496502137630779040543353577639636592555866679316249325538467529848355834643742762963671964023727953273916799256447231252750299227542877580442911529055104533159917529801281554175678971948356056237636891888420791959398594599990784930283928871491620654551561930780075131050519684112246141099132456832440714626822388276200793825329111898876956060725340269072692387109969674088296655425806576784175416020602274472326231533252363617117691389867631167073645378897840806614974356660231533677881621341645819828091163707336438797444761401640583744680063252393755783497042516570676670204986756911431747556459775958751779816426705178645974167193537167985518864211911459024587398808643807354669466662453632537870915894667044504633219319854037430057960716076129914099926721270673756123718594083011745353319049609865985634327628151548996356573770179786267774506189417059860332434238111480842579394413703157697411786323624434682335385242713170002316635966666388147730949150794346883200374395458991277153874572786261663201305061439525499014288112273973924977894679565415686442966815850112289127763010674895170856150037520009408354993652636743019639940353074998709346497132058372420692780108768367661622210963053513402652597069671791343399805521075217606834400283125178199396940778758939449585977922648002482241808542216120053137443095665256512117173544728669314028176440848326442731049031882179794865008716457811478471299124009996132819820699565205879177044556588467429245426617174602206182259004633471468877843202875617475926439115581048662474162603510928779559005129287698622855282242820668181276703738518925557517208014968604003956477107286946475063815888146094974410495358120789203082093984625856103165237624512161710170532745481351955249848925762778584130536996134697015702633207700440935389522679126198951907826469626215001327112769211009748860794587298096247632759571330740121136861755010180234805661029565789463964242283454089466979814242361639859918482733914284802415115380828198576450936138414574352541297793573698956556441293332003561567327085089550343186568315196740847274575026799089034935396406739303491088250104117032592604413282750921573184135922808823541381003537106976732927747986435181046616768974842634076119148602010449025988373725283795680287834005724002808051650450295101942015425187092415310223963759877451481311688012353925404775992105739571616462705217278593591684930593799713728190394403090331436885929400555419965520600315000158499427011618251523522044124917277102148489869272442129600577042290289877830255517644447528969287325404361581345308438309522974299011182477892627706018428090210432143862793050197896691066128738602252427344407469119747047957439535344011647122190842275039578736813045859451482754194740605990977352532076003876257219570734373669652662700961385628544961081566051415633609797770782669523798027829187454734912635531201770848218249759331595953185844675825119609575387680643301149272665301089761997259193166078972714474618542165757244035576495450772257653306127510469164538877380390635253624573949472449657082555481416396801789191009822398167524693132291463369080807615165455830755492942075434369816238827280079036944977947073170370502440162760500390704430449530953955294166728134776025583309726989705296053590307848578968847495213099478651795218897703220329170232049551743944547224397867236536870983272563600660370663932894995091928608248259568750717125880759436578786188696790535621034846585148154354961395305700032953207521154549014351929863705848908569637673276419794776736352809964917340406849935702938459201285565537424712756935448843342031247609421676691781166601882275377198912931198178811249609273294617249747586369578397967148441123084033869326305632076473739982870119116429450376378564225738120395108874744191788454680190673709576123629137160026410363987435307822215453635945041438097915665083915232720592808030896663614799159713298635915032896820081519053113368987536557559626222603371066877755755341138961277238525305291148868674868156543121908747606937543435897405625928612680002327182227666135772234835673455178783469575902197241735588082893757678105713774304132290331546181341387316627072190143678923899885584349242263261670146619120455539048012796431081589162533792841196726270237178043866908608180270550813529355782407168614596422357798537266386326438148246045251597968573807666747968561627481961435464831307220123377488061590503437862337222349297293511181909917391360839597176956788104457872222718859872852453208686890338550692909198520032936448511091703853463147320535358806907953924506317842932083380936313652366393346432622783700171256189204219526974851371441505602995253372039825016532781988737313922493523530331536704315250065260141670005742537426893406541312379307304638417340988913101777289196392398185180678530252268113080159130080111240099973970032698077050925484474888201819705585491183625903366117393477512360266308516542042980471907260516475556629334663977536956543547343079191782173362220831058293237116773007110339780575567290608025902282667471603209994071609032095143251633043189004834824512930453540617318336630163817635049152950317595089315045129870470901133003408659277540659770833355014862774456721398080170737926955451622178054172887848981984837286298118523653327624610499049801187277494245644044881355766259977945004254927194773432888596414426431653149742205578586798685644290291209235721088218963878604859500206043149292233652387485308792088983381634616800670453881330801290053672135649297938516604037930754569689290434519076984452404218930551484635290932172546150922684335253218793841726221088906413369204896062129675960566431684779936935947044339661957734320063565623205519759926912273249979435830413241890006688217338938932269580907800040663590863706940826438843656841524395373683330330744841870595321075743921903180880766283066843332295183070770541816308639144596492458758899234589115954828241783788283060504205706138216968788067663910453105411133578248846192764839851647946377479291381421856408555423763767645172271428108670525258486716907442523572506324586639937688487743339189524864426693715658425973053189783441880378036182881215614650110250361525221207017075345032323987196660629640526608248026266337770769854729155075827609308998998500865006798708823017664502681590854858369703907027177340978807069482341545959679075847955770538391458718807732718063572726699307072025479421700744435130413819546869657763003580094255886081149744948113888585448555595305022000342794576670175827303781731428091559520250432918532940973841157622900359909362530636431466847279649155768855808844207194812145121572186197144442209650257694823811337372117274243103012456074374596358356754885056151962760161797364393098248603838851234526414176621602676139022631128465176094379892074040692376007877918609605797550420020211690991406087839680812857240467397844888359799336075764504736896363705401846747153800753236504469967519115415101747504855027469531987802771019778004439100307358897389281667881938788695108876693373299013657970565719227797832716958267657457901656127886703397185809698020000304651658981336234984415630020017062774048189294356647291848149114377504399710423808695733834569996301828330654984953980600343311756358298132065774139544890355632860388493860814315255526826851545793860810549292898736062232425836461509744630283619364617077780180520882575533738295922484014486871046256708785931592119836657917735994458806725024462702616939603181746425395863137926044064483608089534038302586289021114057521068650346935722511309018537330033377828547669472539977679190186800205836836924967088721641858094566327611084174969568977632720545492442408871783879242832161381732070519641974197244570112306945866357354386390166390418241046512417645062948443492375454821672322350768236225399276656079175907241489584410352543245652547409625553927741557554771655571860067822941245766646664287821258285964033081388169129085462866049264830764224672449638077267566885542694433032867962350419924185861540776505246660300517711869713291068938692513648639108084589923964048651599356635241205877880292218080962829939192041138019614144037118251948853294473515011437767283242475674460956300236087463934525652057159987768437230989136555336498064139747116032641184253951331430775492256890468035778192790915063095830216386757916698793411780535811876214526021339745151915518627341289349091703944276655059166570265614601714546756419229903622362658388571113128606281076958009081057199925109450216221190900227760709341720338852231956327517603287697269967112579959906128549104093457380526234222384101524546549624823029131867238258472087383268797945197212017918897713450837011002346275325360219565019178512922616616711969135052834140275426323980934338479818219321743545524113829029591216646636129642783493605641128627431931613239157412352545967199507272495188093874274257947512806257557301123947740322711538477458206768461999905425686288522699057747820178767871337518125879391990488768591824463359021967597310599929691909780174981496212229019571275792509846726772120575526763450326572117911453047931209187119320593107026952074119432764992993381707431104398777349211090995804694245824867819387820045289491873373574552876409761011359070692530978827032892425381486467363101055092181367571039887155660149205708739919275247188929062480974017775074454260710128474694141589171701088782553053291084310122685051282659679031223111436649847123236288271170004788432583493339667221812090806058375385955213990721228244309618503830062596979142363707143329633934482466570744089357730678212489477060742639823720785430494547242481256772418019562638178398505143501068486553966147923248705287241723249935856938172570762350538950537582071745001526656332567637175308360110080661502965847254028910295960228770750154653089428782621249808422102781708905497503952410299302542069382813489712202971689929776082308541568978460976718586184583883817905966756169573434159069572108160018855594131424726644584051523213941132595134939738603405884969924515546033040410409600428201267871956457985533880722073722295115056526677774223447708867579672453590738538201752980564417695763397199543430621504092543283624845818649219718512544431235948167947287877187797207881874392007172493491079253585328257563756238612802687737616828808365892608091099474986439394236878788616024168847417095264800656838180416656043596347771719481900651261379617979867027955536568750647946425982347939492015158613281715574805529940525854180065741165435534894507413362316070076905031476131499281402347081200473773396051512274413562354460276702365808888840410991172214342198323602190926004147569582513026159758669643357614294764109088327755391385601297438630200854851396186868689476129028959513543864769648460425520393805633966636135620732226566326517106487349369112726634525704201511692453592269207655028758990641561545450555600909626510114568351086554384424918576895583427621944413435278250453505927610502392566640493715961188146435033763158567679514597010179920161418976742067562981994769509382024790389387130034389741949962392682149078347988609671192646785861963778653257107386631346586363443172939009158309606312484661659476800812539489714090311936915368706087784235586444336203275589777908847685900750097770200626257085753673237016405531631576686380044565848947653559885707929724445820839582607008021159531069186757775332678812505568850942398410354619697969265208217553837549134832640660704797581817407141689209135288651491196649991958404951516764762842705258347610157696265857902531462541542991889528564812188736389305308182933766035677884053129925748448439803198705276908824049697274108550922344303996442957572337216806661531829081334345917655285896455156910241169858075724595918718373185513972666203054831907832344980411247155103303924517590221349366601018955341771622644462828353524871500277718361763058884936971188587566449650631976751013167614157884338329483345916545356612311510376445399763669516844607126334132161267288225975428325774425643888131822214048912736721444916548476198440760340042947984129863528538387117192181182169586839098338232238816820840385263085756619700487291930067797951008237089955064949533001175314624414235106452061777017684748138774183012158376698003804174969207898475537649264104494022926951569169700334079033820119922373206007998191633514562220762642920407518949477059627297231084751132065674871058303142976800938084720595513988075490891103218567782823034008086385395087713846574879187869738944339824051415255187911502283989251985285118935122689684751053223749152669919935173749977031653889631669328831216115560069821543756651253868392836560247024056515923993154920619602981403267550257565605739140422140379235346238349777925244441403712336771388517411149921292667850189356525082256419907849363514192325301763264857236131319124582465818010168567383595716429223132628169278006347194999452854572153913740284998568835996060617663447260621703324917521838906701484137386190921426052430465617230920708027524980380084434019834015915973891667737133444365877838303170106052142921144706391960394444414099729776705471381158284703592692285558293170978964997378385089962859565992203575507761025644608096040957146301417637428173577658836903980842336051006148475093083456962521909499843066131885159868108726901433541887033931786560718445727063069147531937206682847656071426562925685355112794002794591874234780504380081697399273277168211634161672156627100426783355466904152498980048711225745585504727263159958840522900844919198888765554362324635681075661858037949045815719369485875688317154495327290278034513392630898837416778626556917482652770332264669560272729984232101644871539574942355853894967674843740267497753650084723652959944946532534733845543328727786236228546401434182270028507324751491760569080512949176249514691130374567626098291214875782279239988312303037097374004171313398266171695193182253047181282286917211575972575317465178649679333031254296938400705770037692235837356889030814786300336775860307035064852389433119716773495858479064697870809792868714427744312149396276219934990228849361385277133272077619344730326993754239495854291464032585008020713608694730876811575056101885280225796756576246609716317883006600931492940030763622754910033197875632080749650529810090287539443861815928638334653948251056148456553607535515448707579309385887920718387075005938695325841762694110948138444553800767033282106658947292001364552698190550171596583759753558556121705336927113663739398310275779831626469228128923463806568191849330719538463109749252866618270628475869413296194082273403665291381256048186501279447077936389331925305251880035384465966856859120897822815840436487625522111578285592196899998898434211463412101146580546597740620326145609979359191516956497492856883549797023656345609454192214073882397055125705554122974389425742119250411230094362554237755647693738211922505067154045095711541487359691133672279735037291899875166947724342567333965786996903019722181505327696774737275604629503014903683546814284289710842224515676364153721936555016942051607710411407720508906318060284792922320733130654608920383673962851153778641595698524465450176193621433181810633593668797484526648566206110721887325923379727424076255281261934087581070248483294328693317011575912134041881409974664301908962301382941674881877279924902254325522648575082825474605764870578437892337644892171110972241782782691774263427137818506914970739478316767036943897125204643442082863680885502411602512370849265462357982076665647023762529839693676487835132153035852792383804797702941744753218759812578003981875737762126388369524159920898856888938493402834670147665837416853750946392511538757100695242801227816828478514042333469527837254909514849964289871854334428475609254651044092244317957050815191698712847351687742709573052841675442049703155226375624874932134290824778177846157419765219769866534645466444558139282675666211088790874354297423055561859201587695138504505789066935976626413727808233181220503892098084419612812545556869643063383306652054649103158764123443984323804322662671221634666904137185533497940759057782097906327980419881258746161270706461922789455048886925382247455561575596216735367239963545435090420742748518856297782220267434156657351300487147773812240293569071846097282781480139687033388048336033240438610099615261791914155878828251887644864980330325312189131861156366480452340427936326196895109642532765815181402437130306412706948430206279857258775326951634093748274390694692063206604324802614053544381968255502342356799434040878741968005003289365729229655564574017568272879545427996440368836834785719174121100900225693127885747086247695529499145934485484463472185199205576283748379398439223674174402774707849517266846483724559848489312326522073654465731261919612619424854629407761804038428476414035411366604216190733787836507965169860696882236223569133423972904316794814923955804098527864781474876947715691251363646511515987430263072484316852692823732045307263143227042451375377254602527244263039924215140312457440783593179420629911394075680037464786494566787095770166588324160232851341949652283068236827302044597364620709859749981530675562644869051835907700092880805267029606340196567702889345866124689900009212926373038281763306651650214904606078544789692846157508218680045582796427434175551318803629060805961737797058045113927482369814001639553412069388579578518420592613154255898115307119569481376907084033948693493818323018617238596292265219219500190596427672091880311281376033100351569944209846975499479056050737179951788362516603098916335448107059554098381629158365449767340562587723795598086378754386321440058588769116200602408864368811641907674017749395839159884875960364145593056824123858319590443430904957830736522280058197272467573495848696543675875126380801721691461052227228787469803483536683232134089299550937486599808767508857594650379576568597571241809998493798297521006099477204845138936240136658053422119908406742236690535786168050773439316850504863663138091047541289856443782143459098428344634453835538771244815066362922124442809404817717251889652936563784966940514986977014212321006149138901281600229449258163182697726882261065901432488743680691525999184643902399561011692166311785655928192457325589470747785597377024495437342230243536413214842676159689413055516062138874709197171829512270219612265644087683714530879052142543189883414153275032701275610275509871884962064372280626140577164285160184060387250812061664864364314153649502340181220283848802661510120818388821002847638512092673752074965981654520596819797068535331853821140755347872028300666083308493359731718381330099539901097605555483690687997908223760884048988408669718499615509677922344752430642891700095271626190327368720627408612618739329143388269755366358736486645633244844654330118315182142419346568510012486551129999752620412386175009314035094605025134279669359029936854964196441728388152433565893825472343942558649422891539019476339803338021540058477802717847655883447168799894015079817224961568695466754340442700325122320340961637004118340352442842509902775816212851884161880915028472836419675810252899762049836918383310117278266214958625227480494233598673343252187825274113878995174425014736937510366849144413724796785133880430345447202892354486351793541046292933054095711564826970524736560660161047336736636176877222626122791581827458646295500459496798877462257090981156658912020873580015817553615260771247885257387558765346708090507940565641699981652771852711090228507747376979230163461549848352037996302296597060312591129213953940572356204695129529401713827191327538063510945391323096159859058971901471008326087341580754340100963426278860447158011337573794035835431272757462120680048572633765342030647518868254335949612346246290291684145324551744864865828309608337046057094871798410210362686193223236272955953091901251692783100789485561122096736402263489468708552152692202978009296540510560614976407703040809251154973765868845148417531992744453190087520148422300599788058844929846185823021021189338044108100137867580335060427298284617455851105196686305323487367663197269761269722905075841426785992674134514670757841751108743482708150092919191221681018159252109135007032646646520741757926196743455339852776403762167819355989771891348847627648760571173462452953246470774997915550060159704830682594879068444626417227259475882442313866936581143496919820886199068815478600282679073235343212339800776804065346116369840767947184740741724799981531645770610345265828985262677549343693477927875929490073973538320531176373723395852277953706512875431491246145691820841729736199004058063841084941658979756644822159131585875127190391669238931757832596419287150151957322767160029127965018922992198348586013732369882184826326330048957472373712477482790770223461702329092074417525618482366302423579328097192600037785977860422192016783774593125150204860255892789158974542257735456654821030331177111378649518757980783196630172121094991818550241081003992139505079845990792796336791879132276995476911540343116204341575436234852330481055664873490530402827452645286322221499854379935425529933551872189386338922558430337484426328122196974302323808491793857708855509415735833307451854571479482527945013377175490470645891567115278209605348181104519435562296941875648108694976207803175610849498405748938086006828381492860686926203783275247445245769513077451043884954132194805116713925855448445054703207889898864620736558206392004902348699116839062595095487581124312016980685938805994200936065261736149377283993414363331124282097725591824883161809572643220903871233545273225748313996402124778811768646295071900284176476973523936896808025221274932867202674069682490415301641457805418369486862619707104876681350867624795085892346149427680096583924036082842093190528806495483245671531306021334432795362837055726484126283590263083056190813896005147975920153236551767585487885030087646507224549052469233685977083179053099366506435221861198322674834562940582467121107327695134591587108582904459904338079094354040802198287043958507267801855897923606925784603444268863515844300535430366345714688595952239005874239970952100773970000234325238001708313541351164583902263393199264529468459886285273205952458229205718588838249318826705087937372355742752996556820217636759737508051651300956734105696376864055210147468315569361167061544253794530951676658679953850422309727557373441790606677917481196719056975168437399740203709439053825238696452164159992994295253780364794100371311787090222412972128888397878011896162768826177765096531393217011499171905579039492514634688551632867604342289993280338001273553892825554226629904330282926954453026769552038356971946755612688257419238159474702891485195600275194635305120280692996710982921923308621144707182850487868161917065732520437271105842051787302998255401253308871337541446737525833354550404222394101047421355658045229189045041941470664364689073571266020412958021595013322020797571069465994850864024741340040585652399926485733498915013006118822836383427981697675207299027289985683590213787174780937554116553394174901776145273680956955182212374799088356236858511933579158997402342920100764230915123944081005131726525636192428716492324447531298500604831383403157930733943633766647341784986190566402353231524187411717048096963696712753499024887466197716932144964426871067349535403755594503984844162294589447490030341812860895790757350799546166788864896281351170704061434330123755501327650928208595927672330901484963388714496634576565300821034868366623839262021520903407409582852125619655220960156614550607024863128000691205317971222086511781604641194320269764459030635984332326246206357275511701578550686264150770761011474188054773824151705687104797291771128584442343081836547679641894014133521286346489267281649052181721155189267457229219430680906646353781863537511430125517133533880232055895774267541805876040733352376955736762478846803028007149673287996504427331087691605576955853086538272874465432054203669829427009843684013430992300643075338396603954905706161992668583424262117988361410606003092715760925445240886977974470681607765970465975036250373900772109214795461024826576741866303164448211450692919311775797044026643284180496857751706492654963392695520871359403641581447784379671560594788804086747298385241495224640218596916059624715047402774636592188952988018885256551611879098030524713360257240877465555515784500363843302202605696572870896070692022015799637882885689727134576125148862569459402110424350672020828164763206544220688812299906197893373841924626586628831848977489075020152958408528358008413319452190234163323654457437906708660857654590507198911405226528549295831726458241574144136990670065675544724187786641598447854426277194065507065083747829687457111177586530681922509283491558646682856706973628817233525259091383047768388022506296445350204448121337906164757027862410741709809981934690163639467235377700671818163143709259689215764235200747185022719064515792247178707127850012575111934981621987225857948865551212929500468409262618452513362432424654966658734377175597800574884978212917629021909758113897780025484443738405505373138434753099497562802780081171499238339665370200656364952953117256859568147107242323375043884844660924574267015681807945543355562895587562694566965774782063853676626674913002317816851226390054273486739278033634203269891125401367658456108104886947998024189234147682441049452467329939045188360919632556232106742163434146382200571297595911492912079095590388685440795452619135261798630421477896695021624929592540457726857903546104821643057385562060143610048101789002276946909045757230440094187041362238886405218501596550167448499317648493920936994836068814684444648046384340083194953318761036231268678551926244371673179967610675474359655615868205263090868261151931889822594453695891144987972885415129133478639026640551615112790596047708485946756755156460506591714571451491184925784123190994247363172413827754559255464231249632342570703665903896963549593775611487941210994350969493837094965045599244542701435004104632845462865364846830043014499195590529805127256375562375575016582156719251717751733231429819465132750053809501702530432969527968124154249047020925628996529677169435219605328866821281826876611477451579497253153141538483150783656605556855761516911219289730194090435588226127171038626605900783571932838018938195712217706469379528289165931995994749397906842079687804744745868699048164069427583552166686940870889659793257136659207403707784710557697067482275595027382307448457667020090241947926509984897616969213969660443634126088032533946430220539343651923137603117566459129680642535131609795265098799229577266700455028474757412802641563765579241821527044317780714514017270030160439605947419200818465315816587817111423125778656430581007260498965203813415308009395703797934056117340130445600883818615111461010417763525869465828288918347169445520431843709840294889237370742510292211577783189294049404195854034994088604285413388505547957358335282677703424307069989305630510084984121962660292469479850482482375831209493957793539783909412082063519542761503354330030820360945697174778049955366525973292968163254009108909435855731468900795815272872882999545240948234892703312039712208230024446091592289750203790329476816254683455732702408381799655013400142101262280308977479417892360926303913722762310143786983053088047487024044625553978346476722951763297316145734702846996818646438374222485396015761013236545805180881372848597183800952135725564500221516616221717858313438186289527650052898361656820567060466608421431885962522887278433048006757160392554348724430246484960446463177308386737250296747481745785107984999756141855438624244525443831355029130244112854771285402723810402145925294475462622774229767091038536415404085521649015118936143142900261822019764778355279272433529974693530945905792377051326196668174805522190433411999958061997603889547281643905630143968002066436797132519466673496733868413926431907008530968079768273705684790850963455312638212021249376763070020619655889147991141533616403580147459992065841173601572315744013933685816076182631117059879237660889882568350031396683008761763318353366220544635448317089201077955757630629666588740998069915240182156913337321577770974957757294490823421172572184823963548496986131964522713060496914636104941671982997920810691341811973508502102810174363453061391146902367940669195793496507510453060367661245511535437477221403620122335909390430870108359489677490239401100135504940951158337067793253489811462094061972245498219164391055356833203971187563789377752891872484393887261461428045091531664927798995648402788428384420828725329673130163170670127383712229415366670456246370230297029197441573851557422141148932895664808103375996135810319809786436544638664891603225101211463818325211400543596458007996694349234418993946467920024653020761971265256355424064120237093723768257224493317092620267662700047868972474232111257493685454878280716895127296863674723969724213039342651407664892708553743044274802712437030693395274009630358262038763644313086951538978222026220244703307472710065520527998739538912801552230450238145877776124937113482763150183508233504771740085675076399824896291994738488664931353638372626917902504429262324480231299045958186696913217444827456978848941941121392604287602190468102524489515840065433202234440314650243124208128440333347803681990555790668621965917039879520809381409050166623193305890725307332510054239894110440933106466976634203320479405840363801068262500686757631500958403906470021620747130251187559987474560900722740646026059927933246056115281881200558179950696462962372512874586510336089398757211307643403053952790516879865186687075441061944025443292175258634136317581828910331796652006161667130285045509061301045697635726254646694631246737221141448660592145214318692601286623917547969460402973923528705911859281377420822226030050572059606789949443734606929290993185084860875005753591234139134355398294557351470274807876223900312191459880136631911596865680303830578788022138341518855969857304034338661640585883780353518628559258642506735850384422196925482195812838715152189169190450140460073366934234735891676961881609182865052799521249567367181263157298331240238636395284538072203619204078412969546819739012716727307428918846580574726159896091932244026465653855255419980204030494941386540139090423293606823801152719287072742161337659652520898419297881176614206429032603883876547490756974946711102388517318409165208586470494144663711791207533116480498037839234307630783069716921649743215281689861511549989258617993074890792373415109266917189093585015511010722782592672435809021179565843131143922618700243613712724714579738910405328951101386581242529879813371200319610688493728906555630753612160675397989523859188203763953495363052823555210454602353489140442643421912465529890799325833870895615710375220742520604443090621423106510199678620702299340514871500298276280438382390780603552462469715553160378484167120990883472372610088531038854949456691614401264849339963327725193561761662764789665416584370566688904489368099624523612609879771051491863922765342544959093785102321856162489972500179552145826907973946135930004665342491186321422080368898160980754227433548801939188778221419203451118227471103945232612181012642248255410771488346986715945859906924877489336023702330976052183705450173373818487853598901694746200818329667046974604336473661710998054220094679784100391387222755138800565901574525464133270347314315077356534268207768901005721326060378389358747556961371567394804432189185458128272524100490376733872578664334955924488865579898487435301720672467488668943262985582420564441103928797535695261970326456584468686094039442066422041553705324217574097784722126009821728432042559843303837245660632684437091003789764145402941515579750853292018142381102991994938123937622727339959091289986485278846521877173730956411040394199790114898112572773723447988277275057614083219905277120562028536482566535702254706173573221172497636227757137826272746263429094212708143937884499906770235503553202552240613365147918458610500040452407508648939873795890330103652364205599160681159130690133752916319953217856293542451571917643634235138444430698940440632828693116865969848280705114379205084020111155567207008782450172125723666089489894498152558293663526735448062894532472321704592145749101497787870749909655024465861254472080373962922099348187303801922069511506254858715330084089817621713983643301283690343970309927004526251956395274512389939653664615494903087735813446785832412756972011221835250346429363409342139208370900750791198138188354528478350074168183512592921388090011484586433290921652280879872409677091755628200885878156112387566351216210775752033741406505622873093617894374857505192291108286398465124405429145527974635050998665280680533251306480767193666018275692300463327584822374633381404789092183072678418069378088198494304936918010614204549719760901786599704473145441301443403613035290662854841777211273039328143465685018402845175540049904036781661992459861431395703875471646412857729972657615990615804339840327612792212100298011789787471837441215735519250561728381799813332054050069211161478969341931213694658727005630442947206026263396757532985723823445619121190118668122032804489417241482738940363414571245752958966589416847063212752901741735882074174068036416278855240755390935496100799757607442631692019614657277805031146225136547155273789985808940989975431656169953237921398319789989965878607901795242278280599017246356772845787921058129292658108485803913761715682163021573259623449310174026196303479775878983562811395144819725360520095018995097251315664740908286639464045013730432517704242664595297171953488281516804742250169872813062834193468583464063920630910851174822691246723151401742146498007627703885970922953889569636044375244978404031502138146633500923806820905195342340180177984754903587686116381016503023313027049686228598068265944082336466688776866349351656556469639378913173055174115896492981384021670847923690821845606055551754032299854912361235339011618957548076634646811089291909878802088749002813320050345381967909700506430159636665980813961491902068991140606931034697351582898577333102276400952832639230873574915453079690708340349574895888508159961945627037016384369756107883618055063011495463238831702491419541610992474640565737072442861959160119039896214393119667117826092767999577871638765360572441791823704997964032670214075196159688791628944057883330187347926673134880468081090948697557761324933313371880182182006197782691630422445261901775689190408290426442466024070090670268862108260566985933738315438983679241948499776804843405917758641222297023641643542238315524587683889142029999705367469507096105424015887108822242273322427664977158512205494305866093697234223964287696647843742699689481119187806055898839156831832286896386941880523052434974590144923301088623808410334540451086387834955392222686808328388135222084010921623286799189349427242701105238166310657869994325291730613264544701925956432160891925062751743938130973528713301558586560555848355099467250861817941118774706449137613170068716640417506363368581842737361851661539087568697776437684527847571453911374232122411549504290956520517851085971987162735806546229724521922941756721738767812086629139347613931825709295386954292264084290034494208557313819407358816706302356249412081686649700207677433011483826287716635433718095574893320807485974100222323732921510309682258183013371182232007481284656969125654257764874243509923818412605254418808977423010399263052516719204951800003732702796317559308935161970849140722217716071790397857292018774854212110375502633921976683418251202899164727540682934462312877296963763036933027892842708880718545035093562314522179412049164934673568806344581887831064461673421533436991854429179471398257844455787174459037886897182516768115197063791563096519906217339512427505867773331847176139159076681482388570281235237838468472489173839824963193346059519885382618621182303345706107414135957934344495268652584247789700852967982784919159848397248037664162954508614895246324954511441502134886224065484728058308024458283095969027864485599911796384184665772044458584468946281909044735690854280044253838387957654816738292354309685047863617099228052403260967635711218580834931365967466213751833494717085683764814153160230654419582459216155762292401176548661814090596956488449925043007670204375065828979162964654672186489693186172749829709344992995888146252708445495039068182038216587106058464168969057357163966853958347132195804126706957460220905356108216326482826454169055846143503568381177808250684351570013845381506929582096140661946629176343409503359172050181054099335414108791284932360902827814480968390118200195271641300017627848279718401051259082928788549079138956303999363034851718061785077874343668329751416735645848153229606927032449120755870947213875583111076129126408240619042127995241117436988757108166241848517720526018236381742373758885932531045356682298963340522627456401170326765515848000760087965241805791264508227737691876142041866111115979670639951259622558302825893485728404015905504276981807098500890091193108967631162884603920664141815091999478015289254682620979329441840866777833085551595353268869672392676007291413052194670783406837372080402226815497936267490830891096925880884323718992525158871651227353824964804270522237818481245373533237957047213443075126712003219117760803921511918124818028322019627930404944856112484184082666685170085816865547029490980987231027578421754768579791312167906561073778428104030646914166212330159458529332155510560875468568656615717528285392746759511241289329361296380701369712150340772065718283364223926079565387232831688175767673206407653771533248540943377415643714939724535392440435142489037865029137771575088897892462938311162525126367157269228189361296037772896218321611254615977860734819779716080971766591175984562078503296310924850670875092930956683895438981546912950886031195531456868746189746568517648914708795172377470832986287408722583396548080564999502522762772787942019505058045963565255907637034740953919163648373723318612575451828515404037644493689132492505571323284258223838654654462849698205611535790166023736256770135670165486811885369963691778965264689008773951613103308858952209266297232314408458783796257754155658347538460385949061821028097701418084380849029663439862413078153741651117802351082701745247901915091787417937834493547523882155685301380741184225421468202089512225924067508961070130009589632296991263752913950018448012891932477455801365474407955375347253649147013457954587406702091322451696561313123932367986024780115442055610592787736190082695856119557426140353450041005120298246067701362667175424623691757748274301172341587255721983127882968703344818192068734884594924849886164504092223737503916073224976241280350304268346609648522702212242792819602526473346716096502769813619507515092241372898505190471109905971599381692834300680703429181682428102677752681181922229834123605674693494818213498526307728794351455492753220656159478611135311356257508877009493939499804821185045720818626796814313376497781638325246749368890669390184888153008403319542156234954505508854978573854752916402107096124125535146536069871589677533735062976015095019012784615164063620820263568928161174865045472839233249661141256543407877562780624006691459532947612198209140806181735410321733083564420961839011476057253674751334939805937131954470371610190898743175419999900402998919366681014776784469913207011031275769822240513161939563613960156481567776205512903394665080642436616371009919439255367525366857245335352140493924652476375708036115048799961411780408548194050059216192407544718971176586079507090197900690453656862267182155559460900594355220451034612620427966970365565498276756372777959604848415765384533015904725255853882853221074491781655418288450028852885066179383230679496518518970046267229196560250227840898893661111770913615177856312163387781506227135902925354382633093247155958384647979468083676956879042971207592801505742986549537616719371784972988424156984109427448081480156523866721189458783864486408332769825189324932649330681947064592776596356515006499641912679855641379818232279586553425016596468696368689733318039561377734941961106338459591826026765558216581516193266317697518139342402233532171224105789716960276352555627326410726319013615695584343616132855682406353646297162271397915928557722330406563697177426001653735053267923833569288442166001031943230846941574148243100529702035067561742637556734700485846162613732094602339563986132373413780907277903261417391296713927785189205886472801607103443861268977008404433538356923053674847705708597389965591527756187355584790691074255146354518861982599348129449065217377253312338627193702606440935103428180281958787385151863955191353571647537016605534097072683240546167180290911236861656341729217959903716321627868655939546456425025769191357507311170176751052988970332098972240344080830698151899835036950188287756525823644774946075481429814455731662906285959018755781633904327469305808899275061540048565313793566504723106049791968724214782102669750847288460908019426686550522244030924892264364255758224747022483449240810013726784402495107541957160929811920707736598142869833129502733518392664102382618812990133150731096605582996515706179553570651621634165832932856671110036622454622559164946911407198703858255693226814139361506897536892277827420376242268491623844985278192384305467695998003888301613679317879780861274213187563366515030877510493521420857321908514240042095216640600709984178179844650177823880679003722347356289053334442646767177522215999350125039968178820655336024637522571986851904797102725776971952983360413144318951519613958380201173035575317148167000953931154838201823350158311173877345427439626893448521185920376853644264681599684671099050670099248614741475858998227339761456584250888729083551292758292334959684852970274292431226398483284132185192517917159192912170165015085909010902872065397317955649609188997543249225562476499836083701618741083153651113936743609619142026503621686026882301060461442314996038871618858091782748549678040111302264619480258844276148894418849851216959133607518805942412136109944391331305914679893095304281032548548126060477886953975504746419987527092958026938572060874508831697377604863406273980151249892249008524790794259558461368618188319965220097645285544178626507576037293648249832533880531489022933115867369059009053102675271051850811125262872494823734528973663046519211445363158806351269918220765675108698007291446877563365473439618990301885565758074742428609803556504963390472343608772082386791302874754305118188158415890066205065491817005149716236714770905924304187187347876549948504312699508332812795062513033740997726180013289409844801675632073431133735645150363791668041802865964454354407180602790712488299977479128680836899511581865034832997350640878544636638504052972599468034809478622510570384864049621155880193732818574136776182675194892736658502025731342964528280158335880056177258560163377653967136405731953274696712961153920800626036084806237614007072271871397907407888656042896674321438458242278744543059194533538410826799056952965958761851251837126850195821961151697889506526836200778220546195363916991477096564223456514813773415610028033170774868682838477280764099113732246767624262551027218146950529513428250586601972896825304296697115584645926261365158244244358749885756976470354822121818990425594326910755565168440348602644449200960939883919992099216575154801470184303232740973662499358153056859833408768422927791981771854454385700698115615349598848800763950549317844135698232617370445242986526471701256109653518561391456238777944378420088184420759284442582006246580602287170678360966843940615104150728120727948624189392642154489771239611872187231099445998869021014253300223750867331260138824299985843639707578080648464658966415790096543386140632867502650650571511001478646420997237314832445933563551475753014686612676155649434922331372304345506799123610350204968017551880629727144602123133643607382358378527580363201135962575757860665081062631399723958434460579362983765560671727062770174891818239728685664084166261940308555873750053045959381106252615480027289460704286192752585439626761793131129023575241539168820413713184537357676783895687180699098279113809715260279550481036730388362825502908067633798784413013717741683683621877099781118588847108887072249091338156820379990774826752213241353625344183882276878271731658686776929315538379431847078967103549346614452336328131353408305350534891409001446685846447050135174296619223356649458059821224844792867704908617864792521281473044206342192927374034423561205264585815384057121394592551453786291717877329589628184910269267207412358020875073990286173316554232712561380043632057425289370059947537029393302749401248894821527883507384201144417305942774138873286965296657589093222839066219133496736677516358802704806825577194755337194540760934747129402324704532570632053402402867640776136825343907124940693026047834294013526493390228816778375375391717852776992317831208124091005072282324285743099521944127604767194616243576923423464265073199789793106588399221027889590118482731155162920049536348320506109694355365706162100050012979041647891295434776209807238057551370681318622197510552642301844321370582616264939954110676656041453751392559848877391845143880295519253788986439219613701221283291276175036202252758325652151554899441313092816517939283502155206197436870647329442739550237572764808665777990229217116908526628531548789983713169450797835690367090989951285333607158539365668293041811562752509402809803522563565174962445733199961044609098715353925742871809422955881537282844556017969649012640115887167134469245643833544053889035886843070894411280704298366776587140608275098696659526853459844251624694291771263863593625399517172007962553945880502571589700423130722189987907606888172870541297804522019084282703035379906008872435191766429119144559083082968017026246917242846939629173540182381172703948765893235530019618998418883841365005261500790746146407601581581665064250774470020343980278582200742329349329610177515109421460975954011482920870601584603745370661266153952770602088660497674483130401261613879198823723911417185480658121786440514274575471035651808330383206775087922131190785109223900725586603042266159296203280626308506946538471631599279989178491770916886907193099009147099442839194492462638203532958154519280237352600692770388346898125133154577965872353925650437121233646086872585281500548758526998293217597481886104550112932381713516533288853881028739001083822703381805198060022504729537783998681299460487136415175081481930138743875534110574129281778858929886894806654314400047218872098341634693567969722030918463480437901980349937843227868594511464966652546511549507755325885806784268552445212785251626045894313344395171322817042458122630721095153362398591824150787159968201242075957398051495189924393945416724870592261365568551843471031339055899194170290470885967020128773286872765605456706637083682223454989807466657023343405293190451876708216793274899156458484430841434521375090216441857245347173995472141786560994277800503475793902402516197592580991782725388143836615219381191859004913216820479359076789591219900037782865343716236756366715530689692739917219956329229627864289887812492431935402439013847392529367183438007652153136150605210994795803906920645826290298104150523168376762990633309927216848798301396243749406285187633724049280422724874234361700265019970071595296729316532875344060297463267591828136749843448380719528252810000099489409095929873762280704333564579929333320797735988362745619732001664924957574873638154644085914123197922956236978868808241468631805042225409829984915094042319728814920604773809405487503293561560234103601759949204793694293424384951855128248568548842332208638837402036852482199439595210443225077460051645788433456407040121512172584861717149567982361366691191842725377443248195145427912105077650259737009960919984509910784106857239982424180592537141143906168339258166470624711315523021699635142794687567209910213220370958975990646034373102347880011416410591329991388133124251450383636515132575524216037957909872787195506962398464927265464616885879177236043649767875845025388630977101959443931083072615263398023517569538232655947649538813957269530312316008630640822078104422155509945027897700282838723137063460904795543644723110587960732133990541369304223404950823822592882549205875014020300175260627356867498975935086535827007955068911413326490508815577472655615002294450956002050197558084259019259570778256951658603603170514401610016293440190926261689315493675067212185270884249575489575224557587678502582304920516603427760388905562325478834694809996016028667536166869663285252101312314750404478152616296561964398198133527992649397405770528661963393579216902142616103943689697040207109879711571225554658879215369696012502037178343403922659702443800371966585186856690855808442056584833286688312531373825534077754194561028271378791346530863772553849737562605419785504686969855597951693802402128965278667868692091994733959625897430355977490166052927548445168298699173372653814862010744311795594756072710237587123889522394115013109193978766337306386908943504769388413457933941454245502349670167280119217690674799217219849747718365625542692044297104119497612673003933620161234330997676709828874878491342528461135051777248529783909494966158530074829694855718939002795175730340424876100551799164213945252651212324043014282916039792954425683499489145473016676420036444456711881118891287514237718194990397552598955235425835972460800405306924401495612765486294492933204137400749135465701284302570185849870529481735602979561874501247004459996826427448732428329568123892575920086401482373836440604653241087525553178986253540742506871384592635410650724960614221571929565780633228930678594536988850619675098710992726672514556173707118876907823706982035780646024360567168341597022772743878623071843400803014172286676380394124714978358016264250714729962854638625836782962575256043212543140395610704588674387464367698474787162859582973289513124080974373140597179183651480850658857882007229581862521008434552400379020398359943905131718202849382981353834758636747654679606842079834430377516257690092506025092822804712170825654395551364587739839096603026081837458197793491148151949038351929971945389549316374341987078491977090581907037685066318432912063893955168136178064517411821220573162180918839858284562299516664075452318795605146825253118666229215064345997951995616944891954372587250540387385281063124207335300259438973382896980577611779017380039305209710204568734209328803805291147401039932774335988505489517128503843482184333928182696271497115927370755133482502070408805799746412209293403557685093751358565804992799586748785081442665605751856146549549525412641903267086350970343375067706032082742018755255234038684790253856120269292106392679745018828799820160561038336894290884321786565291828863436425539640333312069619652762828794485930520835447137069872480085300032127654689971785228599876510447157180607934569210935905618731950928994401797126608890560309237292323918712244872625184421792533403355064715910417977580739204236932619871799605372435046320126194168251114484886435452517949152667807982069094182088132549677611266425895701167235146845790006766929254481636644991046363598834437898901341901365703703342890209156518712749678326010636223536373234912572856232231520618660519369453277933195173329477181585840076103461558887960072806387858327492307597010021673616518409747071395200842275923135833759980989486295683496582772291224010886817724570067416874731110001807712288423362456018373503690785631399264266490804231315974439654512617719019898548118213932130434731077088913348795080696826411879673437843927972121317899193969170063642749663168299722325010558826479006901875267422590894245500676085289071871942313055277339486591751723187360537199708550795462741491941209209130215026234466900666421670725988833048669357247057590062061336924357260263246247936504979446750084562970352272012176785950095797187216928347636997134093030095303121153883885386690169490720278056359672440709476851324968969122522653821002260307179151242640495154286467093896010896568436976644451933189921786360890325895318420210890648444302193255243261666170413187028173973194853954018010143204280768803265086029315574930950300995906724855972033584432716748347245314432013701132149065509711026078113252004353935844217731309228300644169423945881616274240568336062547312456691433696020217718479947531107517956791492115635955099194911946763910767188470460751676342176620791491709544559198569411908291986482435933038849880417626660291011023219439514288276950063324982086865801209125103545429187852296077813503611295665999813889206901362976807964388658681866784534177127630164677294406835400644980673463371290527877808932785842630434617956511988330511940886543774911638864416119869017496860419220682592296717510338540906544993398276389908870188607583609961134640172233782781020270386456437328479532934964949663145374410882620823222975498064039732388065020880879073629017373047010028030168857135993607613197647498202302840956163279877144798554721259900572178768062091935937071849620696199870941195481762628183561377490984630469327443145023163950957395512436862837724727101197652674154915961394311017150211240155299433410875547059163223236313158815554142372600869691005557680718469774658301631059816530492500341433563221579584444368325060217911094845934676068588654013559284299735041963578685728628607134813204074541484696408516804757091077707908247972975473625434833568524574358200292071105104325096457193387333701627568586226220673321445718470945267142209419887310199761797167160065939878977390298964219904244854337507712140981288281472420160701533979173754195515203532350638005591520881121064117163356448200658290200848004263293447210057632714802297392977875059680010070384260555261431692032989145860086041720772535217791786807381756564283199391817526341096092415481349522955065763980126499489803856442887256357468627795377388860148824386835721565615428829762704218339683551937879811548123916474241224024856406579560511399387158195009588741100702191381946254172250739324973885790215400568590040754618781645924966223983267682842828425608487541085804023838883988950589403051493035308626198597791590604594572107232932536283658875551809350433623589111046605032512839471588012448782221872212295919910477395591071809101851383931292832101296791016744844339986924606862571334342291786073036109685493960417700715787148230205927842523980814159606302722235675250015497724338558152736207764816525807162862908947965770183375700143206980107182981469076424796418385863189717890270934241258154686429988782658505332744172133569143869204219947441624551535175264163680387591126090258253810404051980614314621728394675800541946986483663583911005188864562774560453411727302491824327313551807955805328711414243970702633834391026942050723780303407329386407096130421446436508168741399686405356297736667363728372283925526508059435989626044006170685485882101949502124567538900165401235932027015682776477982377667808294141092788409164180202116545246421697569135692505075607789241411860256509224326830997231679619599961084907877721852000342401284950985906046422539517121118683534894851647100503958048229085801734050321424348974997283631487268457651014371899772019389701244757651489457469782117385901577633576607747221018570126559340681925456982286590303610523297954615195771438382410990690145567025246598692739763102933713269070929236519471284296169231979750768506197084735616854785705680257502911021010606068922570475992219051724672900631105634640310930677628069600842624627907431134305340293478435612108591133198042636372476105646874209651846028283890290243861073623689708058169652298324055395531470781673890797818389626643135362362476727703683590526507100549978429501969746636778327985864028117605858142177109735073917535822823415842943094892386561803299305580154803993433606606750421642662060822931699250398287932784581024845659847922111151208147946300537707450270862220542860979981666580513451895263088025497895083906457304857056410162358498268355584947046036772263416014497125064856533733417715528138678277540018518621638207951087873916022006658076341544043474759148463911263690925952232913756673141451689947689447219495888073439729379471386316804344828109790673766903846600526803962824335350028074072470342727785273976514618108999394564542709195439830429085681294926763688873139013054736437150788436872515045789655289163077319656055517871579060160091618382401336144305225020236898232053976425386833749644356248847409497713757372971301628199237901294923606359917218889265003619424609476992223766193178374212186034939195977614754183525420566101857772455705097287736543295109754641718006174164408473558545427350335531995025217261523462842814095023018353351046756492906572466760767039406147150330868935576158235108990893456561057755732362023312458922865637659945318309545516780939114767028148104745140588060145068618692743307490434648996259957682279327245480565617794192502892848602737850716746447393516695094090249841099609967846955887517743920178988202946757758535273561445302329254090194138615448688674996835782478951909390338352786291691688182756815230838488031893241997900201293998306073874497308520128431227494364725839811515903333042480251782142269306733258729990634673197345571960059773388175363629601034317701783039715480051361758663481335161480070452423454322450616135133231507912798951957009605411653190422355101253384225174610213309784108472601109513897977613250758896791290049783988437909949025579956426831770182852269738036311753598141573167336902227530815700784876085552359719822269559716432471486392297189188223725479439472181905764638296866258019690433038823444315374048095753762955511435494296112052121707530974580750941934828019724843051400475433929594599481587304371415005505209118957982941594262990963591668293946410792786707775391243432336489801317669489307415401913981395142441509253255989317711252569965941425240653979232840341457138828023225673748887145630047287506119116062173725701533813209380913059919043527768956548661845628452572896169563378899845651763727772674142161411268337686572502329387070079643215275020881040297356937486535628119828731826718014354235176719828686735873865758817158876252458664698942866371766559759336883632243628972830812640983639330751140014693307698980168772328105229856015187546756437958899614252597801626282872455939607951904974176398599490709795887029294833853410263700317032921615176618904786613583015264242367973072024753903685949344144151407610689910375938446471230283501813436013710804072350053323430356591670471144330599434817195013853615898927095227304915356200775569600452002488408892796882791945456338647208433277506207399521679932898269427115140800567634496207535993742912187520462949898197833263057169305446055725273626734600612942239455195795007770088917652043113646017845145376322139260154555183996828098793194601108944159220791548534229345804882232322451193712628275460379700865149875219709906948247690823360061687195574326387573590782720462497928308920089422181599168690093124087855826806072881341167109177822957445543886855404898300837271026408581753537478831433988558429933100113969420446702203875375051142705061080543672927945783973545937077786580115985340827506624426062677286644323516775366678802767818014741283691524633081284804509713785220298448447365049745065116126018277612727517848724468536945390606722642299399962292645844948232465404640293797134326163840868223467752870736416305782133807782884976271803938833016942292059063789291408295347208042701762881186701380457098262017492007397738259024786472469620852203017083124108196604467534733753590150417860576306324105930598639351619261331409894364679202770665142508844439540785736970247496167235901697325357756385223671508571671455356595042052727278607857073038337870340631546730327735424273504076802412353541008181026902553178288226941856819383195506823338996274950056384506805198843328495737672569600358123929281696670007153219841291127325474089242718624984731178964877313739258512750749275175007769568062054365537920703778237443073047322231057306015757906906289223355677094461834973324805811951541933531606587870392465916152948074453688257154841257620472411590290758252326933122906466561020617312959634029623312096200031271412529244179756307539355330279637507764586175904735047290080350169544754818382339708016778519753741199399564970625042440442092217200551764098829255198125270573834944367107903537645513172306183196023054465055608790656864713989249897021513712824462893198157188989491937044682688348370003679826248898288594015392662261182136066165326505566385441847851478833619355721552749809825504889696474834272456756374912995087190922666243277050021349529082206514232515933428582276252118761415326373156934545211242582890134722109084000446010441912561990506621578579446951370293243862362911079090057886374434293344705124340841962816523355748844221714435540837459666555318281217291495041663869371311476460982456085717573476362660274552882292186387822750242903442892567440592991438260857293648800404331198411854546940319203981645166356026164540380902789527274730660839523289351721339029696806517141183220026992163316359399143585958069393593526121429015852131040494506493155961929968569975154870804323425890753343234861433576541240610842189684543669479231071040223986884105259610905959811686475560334542116809204405245295190209556288192606919489694057494843977757838591838720341920106078450463219229708829761970468387277277598314413528504703212770880468485705205436128848749825635990355746881202150964730086201134017711466461835385621866649518254121161609976561960742721560395395349273268216327852413509433617981068715853140329874750353474983439696334245992637368651585617668601452414760837839558697067565999822315104830563430395233489622895313060556723169918929994166866413440267725460251684068571461753635601661409986678921081369966151880315889670994284330667120153937953456095813159250955497272673989523767837807855407688185554019978903112152722609951764017438727916524983442349887764564220204942488892631033534357457063484547798646111063418651200910777824747089494445847866752352072959013159880053468655076309353421460552213777360370544337242647912611275270802791641536766833871949395430164753501047633976777803945903349343973715191753921142656081411485043922483248446189243872716148795117120260464257438020494497836753363773494321608392764455155913775820152710008404168869890194035560986828900193381711188803986193393538672487480397870197674982350960262943093198989763324937118091018374122556129614962038250314598428617631051917755474687459752398699512148540183765712743915886048101313320832201772834084066634860935876513024284311049274734931266044023105380228804468890603074618075331617732799134016437100289648520138296790542104915576305107602397698638102514469732708239471892545998958688180525097844276432751643893646222474472182365403117641002767866029484121328259750110618256129856406690473492344343306859375741921686873809387105560455539061933783212631371794109188185020175544293070877910380706489109218386100661370984209624691958339366161218495366930388309328780088982666967468350683716575115019478169019279598995589412962687531194375069075246509141249778757750897316236960389532313485471274852888713647928322713517252081543175077760751811659861554260177386895377935164532835551189347713949084030433534347673772252249524976502946744382429866617103888766087893896758662833705752557800331728982750972496683342396860435706457340448111074339946451631175712019911391257790447772755569054754340556424141103194098054996233106979210950565951867464028391286695541804968553310554836225530424521065846279373530560773589333730951677149147507186980637596881793212923434945840437347783592333669391770616959834924211678070868741273717651014927631696781857455264913481267190289861723696616851463013699187636150315635306385477239541504565289499634284788131823562280786751510370005927033748146427393038985304080479842969974876293521852377019696762308209493459154977207834623599983162157741566176910894196262705857462686728229547625551699040025792795026406834732248835528817436928992456788762347754048292464998379127088310642258967330098218158297763689660167020814807303352318296201938185016186499349431037214654525809692797987211512694073508756225260401890772749482677597334703872826768376728692311943876069620616396161156432789696776406206349050858152704174788979102594460747070169684435448611106206423194425655069642015480188068073238418681125388805366097977626845789998536090050547952177667735190463209185593544946642812617811482344641142929082754992302384196633089973862242629002732817334657879509688362903833296156272369459609661968043320600746138046650686720804319556662805908437188767921489451727527718888693591052848593538904983273804004082478487900817240861281988825172339476815846191490773965545849897759611879881948616356012088710532332194226020800587603155381548255661296113355426172583011512572363394517531929983652879413876542437752255970628227587280238464036918397274857559843825083914314057917826052576239628173348364123539117936305725068338968402548513546229784923031744740006329279362802339795555990363729289968159849927218364117507829893403942713606315287149483829356694633745590265744642262634032097832091512918217123043084472129218739387698226715979834791030560531173256642851634430503570731309882149714799893907430031313861510598490818665477034125334882844571792833699440813143457864897087207403656631873092745933638132257058022963306663441594002647959636540344566276382004114425836705054456311250385390894255322568429731880697501617887595966127695667570695907371717542518925037865424001722107636001584662576136387862697659828877885841719484896878124198276739411818083448466428489519100390447252769845899290111488421306171197257947582354100245653147035246572674186318361632136287506343532179495911782047989299322084089796810161757529589648268906606413230496514935710205641359881160316112691074276904144216524795393109132400727063582237506942881753174916905748008588119950557834172647353361486844779838477886794050790846685209349759483657192032302143823043057908558660088671162989724049342393847270534963978211836340422682965509409846175190768285554657279351535760731398974966909784096089459786395610048689295879450653934482303087378318073284226694361463043016183612844193894945998484380664557926862532189772146486200668731150466990035039064848035270114895628330633718641627075422648084343396313032806009945193250308258995636989258878912654338868572876394082838567541591632789303494433883973005132000328655428075336622124928659483969311790358311686663720664199642473935478332955285286726937492037251807841415244692363043253722089369554499297416818354762861931480111466015340481125118229863320159238213894556666289263642063000119677579555940480214403807895638890701781419480829308455335889520749393119834920860406693059379872610725180544144802377761716844000937865870436900779413093769969081618623107990392838185658590566496902233004201118131667134373188307384009736871393338718386861636645155349089012848184970985874946001028730442524752544221771916517508918932971030969240623408083261223059634586124592070172434951737148366156184642372002755932639648754281864493166282391991856401471436913568548142942553186873214098549900400123535539726597739407413288132493219073917746273015663601494385726209730972181919508414877332813329008192745685397519986890060121599087365005278136519472289173997700747556909047820367481819376693428164873094502782533171504153121733640933539486851367964890672854944048904434519388462134812899819816494383440060274222097697876839141710722272074371139618834855162173537274939761282487962246807890935478907119217510700363994382036285206483903029459959232363657081097160808690970729027027419630413972128352495142923426525595769964791073488230275816862087757781650726232453031458594784273482754592090800148173587522855225412965133844246014727901812569759750700753928646446258108053789191541849025513939330084011063761191681308847022517374487152811153668909941145407198743227098379228599636078412699362262924482307331028471005728558288370074820521729431747705822039660837789523328648619801809107748904545873764599724954803923495513901163164016688274242321849349612706329948275522139832508544433827168590896062892661926645312391986739048091895893554009013048625336454636372271726864675394582521750417928712482637371990021978807211569471519810547846746877181368655311096009274771332328315152555796712421180785496566858482257822632530823324723294211405280629918022039327392708596856389192862834659841930130244698858306773832554844605678996754385754588670779297256494892766937421591771217701153379288905906586218898588593078949643747477965483843971038164883279457259085577042317427045974762140253907760632728726442982216714426681235491736188426186721271909202111952217799822471935661363768915410389202157404634395879460180060227371880736238376959431569940592748852454680003395001610866928501515833708400476769841529821303782065108782336982119312656696409521835482107125338720773513694036615334128082258780178572326302705081573006324523196273207325035901190580616899898186335826475919012461955644831274900404698876275554064452937372015421080759606787974137520781582569657974445253432304163384025133269450743799358475252200787627928353368526097189345053949035198857509129339356441260031525048749291176832394627371846902776912301542973295588891133484093945358835511198515987041075223749429050426368716473549391110993015675443737720334651837879087479219232491037361122280326025902940374123610747987740058626375194287790673084201804620428763965334736448576004331675227199725632425508128146145623659618731088363548616423667439271230908040904675383850089717704891942539086255026638080733977550323612174398237300542554267284784852792594344367428994393449633876590865810326893398406509245393526299535800560217252937100591419653729731114748026928762762511075540675420119354031125611672116139407942444639450772717036820505756374019043727227726430178455149604979854419917361192299034712106550198848351708609148112245970831768337483215453828471913833236000510099485420933520387363279067348505562923428246663619450427132096086210305787988045606711130416501652143110371527950038495574971113354223111076792074463849913914400945864334674781254820465667379278815249332200502096145866245854893402730946068526770425468946261956274859800429670164306308441116278764769711488258177854306847196552335492933662949305569955929546990622609030508902512128740529802008858600371964501709986138987055301497871501632233023744257821638843136736263127017894444625619353510450448871495894549155668747779245532727233163510781595489810820622442241198370421365466202019953740015471526413497156304824993083357286026955311080414055554518814527919356347104518217003653829619555478107413893542043990621356662239653878331902810680581461682160663572509302852510440790882117592657507858983025637803807831370197949466309476055680246002774285486406649748329132927755964564374499565755275297078490563317322901559652088540957701707357438314839251435817427153745690734206195896518573424102957932599174141370035583324476002818310250116972256121978606485706532645058062118871156125593144849720586120788564336879232850412669269371427365840713444696553784358011585612223841262430651921755757116879867720644765075963307182748789245815853004801945274488173961937433228898231314770025450499767379142939503086243339539759926497795761686574529081325410484514056440202382696641152332626754060932325055629557595111462771979607737449457347455136293147264249190764317835559653239873357237925742787237744071096211541510166642099177917466915953147997092408200615417233924952178727989808765606754140333711707957761089318317957871474578160384478813372796469306853501533656433093709077273075626675418144354463921159109800813180911285182257486617832259989802293115703559643423175404067776376700879198891135682913325887708146678627698000115987205599641262397288750168093257214713799927885855426911388731151999947071393168514443592344379724206200550483874664472361648482251204087579887852216169984240650511130125282411435826922844529404653334452197895170584327824088852071727220542374786341914991494038590747451818435283569495971362310646431694616931956116554226760859000661096998536138860900989190373532712398911652459073442553478209054196300202864153186850373853519412860204290274372019408421501783210081578239574489362724898013047310350698706568412740634534572110237613713981866807224024419186601327500963471631366471241694136202183607122531676143056284685265966573026274473082748646587946299793747984932494863923224483447232203642758539257425483232255048673743373354100778231030692036713068431197411017830755577033079559537284968213076364468089664955179927428260547562480161972178798864878879448327524271091603060590483806540972342596489905839576252258862839994457631767549493120597183536290779228406690789592010736282181709540696117891766603875159188911370505328243938666738217983837047152591593482459148965714734754823950927180301866295587064355581658100658850307675859949168681741085474713390932022649696712562013669841151252262356638427328950505685967369974372143390812477370766965418329592707067345341607438607473244714941384598162050470091936588761725613561597146090096473391913083379006850696527255010055393678414345575674844586331454552830423119306049373833675903748197335183705460902907295216729337311706243206354273120313618664009187987722677098976980997660154109643720593980243633484447608043733209452003134777654752258931585981544075632340335081466784704975943804627651279681087578862949128480639305384672501561442766976601989149432424481090186241264921770234584690841988252641077797441692546369242066373463724751309010883058666166403170305019827796013352507235117594184092284258329228957588953598116176516420726189801656135069761576289204298162104053447310060312185671004283289322761459383975398330079599917710069414436911617243735096125454570525564314475333695481027835040440099387836710091376840862045170598564115448185185081678892066677481204746042960352220767634633861384732731729849083833901774116444631272481968145963001226308032137604837920935857832101467881570464747991338634048493755821840740108331442192306301851264773421172875162354526763104301571800774469013790004083378159674653901525250903918412406258337446808247284426292668389644649627824512500824824725162174795585769101224447229160663389379065629776611359485982563642426956574407095195358864536779417550946874705420858001326359207205027967640884135788467945718344200250662046149569481002628788907520499190640695187877390267949281980701220329182566905515529579576752707583878247707918534631096525406128042242075093461710751351568933593470723420223851913363632070989332068802099459194284020990327076804990768112704062243678127180377424235774741932363200409198801290423910775148303312000759550449366435565179178574573973609784351990151392114292988730394195779285830263640234411428927680796887575882189281862370629171865184589687633615031572549772778973176087636529205886347939949517687476062079399645146073835027205987662502746641502793182505926719468763199070950233219153041358646585218307520219261895947424339961853838203570320195102384738597562233100577184120865868142758994761029657746748694920744635894200524581603499129062050907524676916770313865391761415445863686973595911690084481830454970153973302462833593420198091503168826746361432284557233479803087483317152122349376571100459351004524872304355327175329549943457312808468669060378445387376252376259178596891331526285570995615210076979371777563692198056585599408562354249830136966054173950311082713929653464245525129807846390371305362941233662668932322928633497207882149599239819413013466345794650336476904318900436958183918603628395326504628975144489721520205587670043459552753331365567184533831505246702026998866060492667429049685708914806138257945321067879424752458644083964801862335618942079174873078826627414436588155427558625426720036739235510056866373338579987304851106841795178538250776363832355928836524332296081136864925369302730283024892493962587576038680095656343765947498212587001267738133513097052956993789697553940873188164546612726911228557518179847432926823377405577422601482655292981771858521879968692391576357777857411702830147899689759354765406248584294224953979972868220880412987713627650994265741275344822495596654460763939310269070394663135898698705904628286710804637147995441525839695490833977734289815656292237156971311062381657623250228338795168072414683099098314565368501435360556907877698629999219320043606227724129892261841564380382231187277858846289179547987532327298680863182529818522413380154677438016949113319161336521577403594079438366298235822020906544060150662584869367963646486127413261496320969738740376541827508627187001635606918657244297726831124464880311542087540471144772835027739001252152307265204335412555638805472977749635720084627240026765666567001669284273527600216835516790115757315696603243271636758573222074742639557100948229003454519519882263163315378755946486399009258623355327399195243594151726014880118128273771584479742030862935281929897784494231376288097278403626710603140668247971738695983568972982479746317624578458563173449117903971401746838491122340863790158455435042919851415051707349874487170635124934266794374506480578285716535010358953920410449370972106145574427047084035898270049210240451424693589641832189021032911138072356349104544324921143081999056954218660191227379485817418413907417152247520927232324644078198173562386465347224640964501282149650905430124272337420806960315500325691395648862063682555482312372066236938515543678164252134060730706504770575812400132655265927571337066058817066162385942048854972390866115124346844579960518980436755348398659290042549501926568539800290518300739508115242339225766178631889358787745430134882736592446171683873845788238250120725908644263276690723906374155752476102985501991458818635193307509851086418571923441969848278426642855379395573216408068370760225445022738288260450989851751412940532535470317360140199582438551232571089619750964634598823070790591052093568745684482760035703298618291480231913202899167461201660873360568733223436442402430989456135674619757884883659001069377985691318465018296676398872642265193624078519805278321078437735105368498497762615209809299640137064593766345549985739340298841397128108410626162506864442380750972148716157077841513969918071899514474124465100766458943536885297663918419710817026393366391104543541027776850433839679521379834283285284612699528804470603035650231436286524060639617581468621765047506663252035554239061891353830417855967296549903664550732297122392233229344857057174930062510270021333726867197510149282086102425724358522544218256834159090592367666496247600905497437329003306770905164147316393780706301731739337081904880051430037879959517090174254372316137020200490958005542018057187596392118871071941712698482994362386381392279676693999432943560271936537228074639338766208484321508950883712845669263821948316266150069697811748030263629673949518598401639766793663438219166186632263817322866245157593545448979887255428619854138456458541288826728347040643486638950577074876130395873310977804611102923468754648820451587607426835369041227705437681956286794068283805430694346616949906027103718771934324743893639439689978441264178453087329440590657251725765925247354522831125578965232744684597229823058185119391499312937689802601357116316581160116719761934379982746067343314902700790981112282429855662118808540804660320114489071696598479377944122745616590212347185644928655056123834884773307286849306437842297095989790531757148973440848827049248376461203666622332614535826196256567948972989471315223726861614796887668416306949541015514914306231559104472206606241850501067100700968348285973874586830426490291852967091545571371205521755823977551352160122654622632803097806013500658780976866003864934480112114645909822276410109658071732920491468167255043409673688802621563808001548308417012306944988873328724687380589718498814123751830499147344981142435227354571861882349933714504109404608458561738326967772063626312817936121438156168453672473710462133919709910549155463701296797118113318511840084809977282908346379016351551363543203155249949617261055143197982286071518443237139253711493311779715738188921480129449772189485920109765073551117890639134939091879828558753256945841495296937675300197786757088121715839836678199222273160261645553087599180027488886993150527387809428409058542463526148144114063655470723756083384514997245280132707245715008723176792799378306343879482404158731528940131674145716974679796045624981958320725797576666971375447645938285004184792105134042048179485055326464829912471758167108422539538925679258363538332706567325373075435920253546274609772136572059755308145096630845380467121104692400777748890619472398164587793879500611238754204084841454890493596613265166600459376841638382898231032849213110640838125792934454886322955085140116747775943837961633474669076446987780421583156415698920736956988968770488633323266991175962282304119495691285267263797344501852946056660623512911887995893580234837416247790766530483483468195503035349708645601844600793596354518182956064283999351281723469824388850190721865279433372302797148212988629636704610230973979581222624672265385853017172208292410471205754716059647544738611410895110602010017521299878548536202584898219255446129546158108256693013163404918877603731668091581488914409086493991716654975999186994720560905476310419189244722975203348541550983837139298823632735057514595454914317498079962725480461549589140570004106117020665186637117476454242158255084926819064629010665613338974382426533757681432565423615853903474551197128718336248582064458737575722473891550807959048712386819944173887946835566625328424009134012361634591729730314917560897274340297665627064274842340743641462595290131943655933897324909222047484361010723678825250854602557080712391838890832153079532426941654784074213137261375465510953974956108348473049967929697254283769971135459352983016990022684883741118163644632831848311713434975240517126114659386147380990369895437388401690831000911023083042061787580333483775418294116322664540073716060194595854763644957943103128912604286273178100514409740734051625751774952499996359053127815510737306434380155934468980567827511801966740842639733275281571069014582651921416333127464961427532311064189256504817181175917410878633908532453871058318275519389345530155077758996363725740095255955489696306893165168988265393971878045081955998079480049587252086958616342743179862514359269827429175610160575038959989658616150173060659016262448863456625711737257100766674881993324683491396430464429034160705938770876135039523933011727526327819001314107284280729490929628648081455913976843382353184758325724094447541632309780188962142033619533998147638237813752000527524408206508523134877495146259041672320173541346853673793080302077632198399121059113972788135185675850054360141979084536717651309565713034144110272411821309059004835409512137143493812090993908775696444955271924071919220012238866183239616403727472625804126892493709267540303196861760146615536681766909780921361003764172261434958644871516173050268036729400369520488957681013765630646920478222113903067939046112835815586097039544701394634666487959460187160437096813763558775709709244928025499646911903303824730832441010402221237386257826063440636744784415435024587606059449925378018430901472478698527932144318672068208829824055786793674384967277317579740187664879032917702725809401219148740496234178657002096640339033925331867769087066064471380397983078945845961896778474013994925213391064723712507016334300966402836383952743869761523364223851347924044939018462034637193365756355397543814882494763450080522829489660748471011465644107490668049263191037436829583161566247891143996044155490952938730642641563947357968901109349981810729230261653705066306650867776325904661120362959563998202227698780847019751002927485310347574188316987783057511330041246047589156303644387508581589711188697468144662313030337542908911581573720555490861285330580742744446866041818237427438131079617174366769716848707000193602632207296886751230390225060041252928927088582053137061365152532313373768937005215725131794796988653462571776302203752646358118478076822453116332018801036904595788170234856866129318828853973093803352300904828449851720442198132802338060968356328073737239811720182473424352737890427579417569434546019098501185683811495331948539610667459670391919762885719919664261214274862814391276022183969877770008871858942555653837559612900437140879168493931869069384441790997342249341694957886385849607798775867643402588622951969997647036884077625162260482284168045236623923984430777015395351292460856269821795098346474889326762951816085110456353277346319259607945040348484752441289230967517684013353631127085356577120431206268609219136108867987475590413734571800544615377732746028629173316324097620757614559641905325185920814190249740094734290382764608339660781070892636477946449813966773539139305783021331395374318596859950868270752153028568981948902349226296944720098314236321995592857117863533087528262608448678732735889401590570355578270301892710770536771921622786673500177238335611602871393895834184132015277567100826551144795712186119743122238495719228189680445511629607215632640048475450356596141947170169245960132756780457686142481906722579323841803731728096891076212343389556990450339303347035697231607130268074736324249232401775220015270497666223117833240192691818805055051219477995695727678926971984087273863809715585271963476283671437722079247081268964631865773961867272178513245551284550841525076581187075455147281269883698020192656789491949552765525637721919146036169491608158108412010803207675787135959065862183985388538609461197217635295498912356734819873531170559780419598208060532866901311219518511639462337560425746736668791759458716371092438844697482767672453106778691440880515037829448219747449350336279002149189588531639856732486270674916028952630917063228540285790269239347566232128956736489944851368433010082872810623704908032992169098873906949839156765728445270964007290920273872078390337798415419713359386611913159790746627236526833192790176309346137851643451593203473132968728045164079960280713091711331406238121970343758229078311934314224097591812403654739121020829968981017568421365546470688711422435020510167092423075637920446206772111431066159534559461926050948699680817779402363965162440064522251083665274034649469150125046603759817629496693847504437817273424860482207443969174459047708160677155234544024981309129754416676416841856978079256674193262834060034002227989707941086650303129059000228603743699105400653352121080952585238033377744525274845920510240415524429721113760403849099824622295918755755024641614108967342616521057064881628523992149659927519013181432052346151343347631440034723914280532515011656291028671392097744156396637642095026284234242740993761045206704920908727017584892540995317804840479421826005130988471862255698218412101071214277669349378429413429459899543339029250830812235023337117297115614087651407327801868011037523091122810964371834184060868182398534486632648020737648610140677133657300672582995566159961203688758691192550219966996199085044783054106275871870640175020664000675246753809613121784556521676093348649956977740482736152681243096396977214194171270135352014378205495320129497726322925393135360471508276120138247700760302500459564084375790183421884842566301269496578366440558780751407615479096954662546355373853259910323840709447375060693262840108983890090432034842279494563721212659017862036471431844225196511638481689062472550198503231051426841368917271863729640803681984419942579352605005831718222288035175987652825300906420341394793304114199316373544456702425642014876808672467890090003737190033190681180096789296722987580642567444892740034799767282080353605197547298729830486861794794517137959211262054649280584771322527040501968322341260656448255509851881151732420095528590437533632717349255511833331989153284092183047999239894492788022538953453098753308300910865247902994832242173515378223047574512453668849494510348572180881094393816370542016397324819077302963715061574174963073449469257968195473398865852004973184814263698272081843373408062401715802366425530493297938851582399159304779980402700258693120560169067289567453849487563942833962872057322314143203384433111885146139857288159277137453681129157361492470762677542143594450400388369568747621805561734110465027338451023864454725035206502062175517460890464400370908901223925351000642479195273836520877712238954637025181247853197509309983505467087994817642167021238158752482469119230932443352024394093341639456041922298129079298645304961223389646839680959786795398998131344759825510448864702146344837047343084759430217870950885142594109732096871287066226995354122391801939164554340628599518495681295795170858218349609053121428891082517030699079266216200169070235079658986635513562303160699860612066563329694978412181351176453141541376838380620448883377947287876914189359620691640421337571650894956863346370537864862408179863639205328925646563265016504742965571102695229711319459696878780498356006458616665921990729265930069109122680684311961229478483624154292159386120313856361092856191402766672604120754586805234907299177266321168150183805234617653510259416381080594079315138142893229220305287025844070112481624494277027980187989961084947262533520428355122053472455251285852987388440327811143538623048742197058714043438603919437501449713329149924573571328866353717768022684289246458654108674067696931916318859026388279550127492536473080592486648157492175490013510923007677021311021478228208844466394034740634641418822082731506695016070441186918192952563534413330483690300918947664196028538452511994521752761956980078395139176317137381212968481079944033868138882552602827042051801052111236824862025350102495208970034677097264989765852860684953150698374813244152941222201270241021999615228695811605986324315219272917465299256417010751140150399422044448027336903610782622417191405444383254972420946887213472736604461963747107178422738733792364573804456558630378799986444939649727128695462448000138942844087990703191252733481437652417023202869385493940011289980780525951176884775982700345667414598055420798297048297745968050252910419212028426058225725161691957432405657168804032017977684074667344185990576369474750053451534171725196712696282497235686330441698870778781463142710978961374909183602270102433564526021876914327492972378335383955042621593705337722402554424765516451767984680051240630572892784352120190398442879811208688125948828076240243622749660965378734532345830227818266225540907954241334884868555501379170223733269254481542098476947598612841569862546522273592866225809368644728461018150254233625593777541268411026675291436474645395801836349465344651591051303295480178014589583727601878439397455682794842947087962894177318728286013324656616005874490047277394944035712342052900393932374710656362036666172089460819427396407551888668659799000520257028169576548833360896441343519710787231529440460115036275506828942678515086571787317085624486628794668501049988248848976472432576287785838524186160506921266857083532307274096046963374095584824942449409881782706737924036974832702381240379981431718273666421842583175931132173986266780904376471938799356741590402605211194106042621764571087508189994202480056325048010306951446612638769913730125079547767146296929636252727803258514031050120942417809973492754896440089873846784006824403333172189751106282779640632265091543768538344096128816441641432548482853216383469015313200232176841863707310999757610369044840014815512260493706869601264525404081268075320903485085708336610161461132342010244868102935882703077446373232924142088933112359127958322297128353724155053947569748208789284799757663386645753078584685618965606938233198244698991809716041684901867553054703728352108014156081208875560090782218681459770419112514855374933062475889791459402864365234007669154095163882131433529364311942178888534155882339420584926874883576616251139910254850869694988047583052984726210188171015480771748356547496380073167116313641571039406345208505264171129773845987337160913885891965419067947004566789048469266509804217644395146515622243573343745938411898543054837186850098213682733319801209317236607740506883038345168054931907194846651734194325334677941668198297399563449853582870930063971494900901041084258480317700006427999804463486362067906213844924492658811896388417497943909699488278329417274332700061823505215109694448377332465915033078348458436219809972703694563110592065741532012590880414671062786164347826439576903490641648108716923247284565285086109640546098150941426019800869780717316554892659926617551464122113668542296830681594081068375873829500118264852956520068756100759960109231718388908080715049660831927361930557247029788813568933413914953990048955577886819689942151343470550776385820357659065323762418369631270228560742674492301427517999195441437647685367965332237434298447819375012698581893457039524171516022942761710352932842032090494314652700584855131195781807894575317834452330693225435382560936049268523653442851920596621484220318431619360152894896059050319851704362729234301578950378207123628790481709917510785482712915236942369025280238425818335311138029451587579293682573102469091237762370379122077354393183349539788380198197626662705093352045020596443985776373438894639496099322300935438652184233089684354034111812181874316796828759198987627678701048885244985586217480522871647577910126017163625548666640438686726084677564149064242557177191921356895386421366433886430034216083817335830079358504682284175441268177670288072047331319810096725925417737912933275372804057656766687208148640369126850088698943008464085041760492458547978240216282067515437801813794765244130766006342608526635104615890815770054928519840420769718836976966313837751581825809612452433234353484395834018220610838759082685746753399768250523443808002259104846769320878155179808666108233188276903522832646398681884394174529079702961574577163912100950481723897744238590957573789233167565743587148989138031773640594789326503761920098854970931258812864112657885991254864452060159401321461456349519083424065030328713346387724533723874071406774054791027481541345102111061720457665225616936080311603660154374320361891000555735812122814694682773790692963770795939679390355641847851314918219918683260817373540985454621608999780547057309558430308605626029713441861505920480433324401428649995161436445572411280174507478445749104291973600022264175436956098374123727210046354078621344309888290471166124654140935776064973737005124959923269396705412295236277008214893356119779162259595175503775878059150720085173252466626335893669589028736807139846948623264009943939815476145807108778313403877566873373891055795692073367175822545710780445715729838741018586253409351970299001394217707427827241364234484657529284719496554056791135310475251982678127149697253592771951243771077642579145871547234203661135541206301523878308427115412002662703798634677709059593072754969456293980084895721452334001288958529078497689219274528188989213097498261189711563644195022059237667383762399967427636995018479002552213586414920072431041282452462717101998339184974275216722175798935368463834633665033173991966922266199944395729943325451531556366796715453260237800870837867367071620432694792738372097740121199930889303782574864620910541022235899183269124996236606074469591107190253287909293826551295415989135365423819971664735569044083308262612877607303118357193237326825773326361788916584707879907487966993624509806267812323559548112560765100345608138252274237828551276777491652990970598569280480090655812916433923080613108616870261220135765050829688147177768893425586203566618119987927948051717258257573969957375804689777484811443500754132196385500374601921473115868460283355433569440639191071299684193666176426918952419873403949280076024258909166023389066177740648362638569741206496381610977715479584782784536013204208535934304690876267415892302190266851881621572996462711224083642000013521633150994022356664259222277042756812146322089453470450545000042185331769959340419445592449492510598155367058256591635901220235503664948996663346167540790776623197946330840484243548538906861828407264617307196472323823584262158906036009783304147741932142626328509742780553514169069713691133375174479937349195465335399007927108919439086808863226450618033166212371349658261386782693723632208197301422093970413753473146008773053200662310922778382314557594419691408751353714703308504852706526124389135027885308452930046623457006648242676601973614487080280217436161091842820337623636435612882468546049697893950695770366988833155763638869089645076810806017663640074595548747428278346968877620033120109960572216976584924414977927782255309391878529673969551051108281324711006956047850130902111701110996553987789973202641650871328862766627575289676501015115413905186143568227471373515139797087809117699340206401243417127015822093106114359711926118461546578198943161819325553280867110513351055892304602876287248256719943363605096216206645502306782233011769669865620599422740974186145027649004608541254567592358199840341472570410475039851539978498321265560220737995647610282690159786084954402719041326623819008691107442146577324319386435370443968799750104625433852383872668393959516790731972682835307308744313894275650328181848100896823637022465410608366301753393964615463362557716218180448801926835774365349029002410089683301414659321456633250253959464309796248262988351080664070018382245086685554363522730824129387296548951785710876020026808090674070214179816120550447528371952141106299164868764282019279634336753817619124187173128053920887606055844953251742318257756930061991447488099890257976031640458657889698463034368914076440955240201760837309775013914808017604160660992858200779540986629993154578022763535622771352722564938333306703251246571374889417131010920045807091135030945235160069315904467702078150104661952479258453208007391952970850679244393106328082617018077642011055757567513487867811703496569126730810517636677894300989351058200132133639358517636661793304355832520400672584077364452241385833480045762104291185986612482806427815414612583108589310821546549795438854855975777060871711952024417290199050088996518226770385640629574934270288299684385493798214627128558359211947347416032279823365934941781310294032884287197592816725005368203044962527064983890297532374834606881964017191447503941767342315301621416119553971584980930030261955190095066703992693830866857862045362259462766898900313073667542236983882051897630416124517695017488898164952106808527082221424275810797261856040966521855414214588868283439960045151530090413241325303509595587178338041514501991814210404696856568780276718775767891997780460694036546268845825070085380154267503153350880466934738605436749135691313368421615236296803943523900182985196381677804788641129207619892527431080212863156274588511683517253759251697942410442493718277899714693895548748206073480178503660183368343184397724875253143269228811566757858772207984031650244382241942255600665810017289679238352094140918597412130503314857203364501791205861394563870584694713400161189356587281721025947066204946410177275480273774247466071373386132567959397377315967068521053494229857614217728030873329921684259320710068549188721566336983488062300565769956289428721038574908422952882973984232814790358381558499838888928708165978980409951371600201737733221470138125255318351644801105078220528433738441229171587788790407109208838624824641739505379909129205765249434476311739805991856297965102349704217337963523177104470651309126841829621243761488294932953993450541133165736168552122982655768698090968725471454055894404833059385280424601585014097124922165055651434001353099055435300989571034678225888971281987333499090137711511902597893238885668905384612465952479218054329361272630454508228223502152604501389023828936251083836644425710856745726675968941865348354450774913616892819145436728999208190084278951685902310144036765999587131719718976315149467827766561532984753318029609727027391269540076588659921177630646551299760764217916425838183289069403054192323717898462406925678288487317144473843997952237658623922107181923322719551276758599845280938341994225641090463542620984025848604042643994271623829861248075647157615017619972966966228115374117746985363321669225191972131051137454482783967649947239206685800843304743254135116811072548425126424975581482359305854021603960663427477355859150255527886335453137361367124979320616469937624323398015386493711843651381343907636401784927312194815923979754058465116450463010737472814965608369240743211090579676539744471573352869703930624036377128638870654500908233263795239686312103343218331619609713695286508610109906417852359625584855666240255175455870949702837531187080623660625221119334374522009662391271691368167146181101965278871671882013448003450412887407050927947227376582341057197183196040916962286239041146576749802622820426099442237837877823422424543590737069095268141004421151082280257134970106904873274349520389909628656219007019000689139714343820204762996984941414800692589851512930694541849877499298669513292206768126042051021489427877831530414750260423184323528783190748889376846512792290066302600696076305009599218127145639749633305335349240566945169031461921909322028212644558764054005051236464240410650929553915653579239644610866952171787658554511749721364207282017626922403164695862103443088494077000668422645426799186750927676794394272020974014095632890515368618360725739166674349223367351751831174590136568849864592736684245382640663611792007636197632244952532966789183386512761370327531374008465544431755600884207287491513506477036537139594714818924742453245123252545378836825045660286022502746920682176350130198031009228709442281539545559110862792727385334812387390944491206185769287686973909713813975966201473471625022384953839063675702316619537102135370836090746800947075158968058014746811838342760929428053307317661294927039748189259301128344153851652797293856058574492420411343903694963484097262354214360722877907267444897225197208126471117934446455395588146555896394525996071866255367493792959501825745671724455839736762976627288500080294437282865123147187905506843383295119912342211239612524321494643919046708219869048615530518719614871287852835393766732025235836179880268471707542270234382009947954581935104263896438812805515765204378274780702503493473599826157634090998272651221644766560898337686038879423192217284968992734936241270851026741529230915041202737856671506172941187153210839190811255971570001270399527001621799272840645929776013715951013004847408486726983654354485042424800724190488851148550296270962144232500136391239734332332123124514695402486838773409726623758748241970593469275983042012245646472968798348822241853128568050349171195680272974899607961199687943034277674544378073963228041096441789464710712939730090466237508925943900839869572301343281183307636412382594533945464748487939698005370501408630478018346731315157109222963691293408566769422027721038928205268639309796609829307573804521351611268906449872350973558064005788241079370262771395040786331346431901505879448917009455286693214130098447698487586846543164764514698449361988750060223654975645858359065421641662459965264809197165644430012934554029515605233533075986021048867656716844754941289814227456856399402691206026897892433554923825816272136661990146572272884031375702263189169438353231209732538131202689864768610407669371275597623351928560972623296889495877294448238592848457339579527675462617498433506032205437957492168258242148543313695797024516239940924504992761038196025339872720129242395446111695468176129955382272235682955941572347893398234142681244616028745464395367398261365122347019783199055997852622221144280803105242150964905023919904382032179778025549743197079712204326419733843157419670672322691669347565844072348680350370870755859187843327708209163723254034648619985404158778006538316783894906082321401829396302111110626736982097142616512593717104479487689905636183652216135976361024497439265064710512094384243690194355062252901528134573367992484314116208685175267749595170957070001793673065467298099184894834858561229718177844444645180930113734275548518410218076065359259003332317454444081565759502661297906639610563725813563340059678763191978707651940492529888266887867718048632113730161704857415280152415539821752737159802278128449628053595083884794943007412291875766841274314533157447129818840549814822197622082565359281213925159454324380677812503074877647768948591542227855645253324381074860655574980023331950612136250972086279383416594375397899103509252370393634006292943738922312002761530311647551498451784824082871964664421814744184042157898037292565724657149178768232377082988551015437209486604007909357730160058537095583656458926161278127674020348749876349639495513256365550012068484123368333538936816171669655743884065714548515389462574301927171861146204534926049128714903271083299307825055564261328018085232092626394284788986938250873975016606834795421457228390659614363377646266746329885551762448101699808124151828088027197276816625891819684700966286909688575537005103230135288166353621728174883499813331644776865616327723324623317030052110488531268878504637459701949028990159947236458867535517083789658261597373451692648359710669608802025914364356282554666116072556331232352889169516800496690959978928212290414045497543194710611394829012233072925012635738522542020638747402931640849883524361467417406655037438499656542018540723149808419194329173828753549242459157045181337999631763756489431766137946901692559861166316852397202521375201019022395271225953085468531905007424289534360613404850978278446320649508731806078322242614528497282892841293325893684065083677513528017591115162393050195009947647732910841339102690675708487140179212364024047434401700624843214372486255137248962019848437622859569938686706150426849431574250693201188854453628690581245387983194684138190790285898470833938225616961820050434378587239661699621377564306685655508216339233670301331465507750196480329367232350975214220347808528865612279096390381893450301449775492617471317658368627333470839420139582426434087247161392913647131748801829097252405621544290342617890061694962579642834012491165284851147242042564627269446529012434570560013953640378283577935392430376930640661256413444574342193860119314663986932322403001981098608721570123711421065133438137385025022603874721261953187970942747218533192753323011488038032581450510425119263250027175059360823952297823315548425286941883891530790174900181282117007735497207250490121531838218561600447414731832065606176694334869803719994338862926408594910642875958474235475782952775858943641966310465509170023342556496921154485916153328591842508957615605199248515773447361606386473525278165709565672896010524679819279022409596374161842356730541776833942501719082150063079865858511827463211241900014754492049667964446161424827316747814712202694018589426442517046076087148780869720568368025199836549100768541960424099033599931354299535069482334614953310362852475684473661258759198125705785131723655367750595684218156788191306214753939246252649896085410328034620383021409004443089313372892022782556579866853432465797953023957046721494903728395173853046424134455440516696135436643019427639138181553298091729205195273106485740756058069220059786686217987615859666219260945071373686041475602151074740280010458529243556781438324899612351035378520612467235664286701778053168827285954245501501551202574459841426446508892381512591896603530743969293652403664337935687968818940169815722838910744317495718119097517345207862471106411038174985149575001550669290859789413244796384191928970945512458225855232224522604598793472719892582538316400342848950164600073138806250538806519753448211846407072574868415803706175246327291251232758882518899023543025130175799378995683736746913177877069201271519243636121368895774618801493984275962378476583679401879147899140522339723507043577752913892548241699476746022523046046692031910175103272223533029745446290505872186009426463487306503707847573595405160902908332191077982132322205102072606533853818852613313311012357298209285098882125097904048766377222104489834163140334106307892923453295598526175787301532691686650848717617062994955369516033080754447227680062421369416155297702842922106907400763691624182987641583213717811753287202840295847885875343562326882569865904434849457321380728820390893250901441525658081788465688477990142121356455480595382341268174276008454589130245348394270396333184869984186165062582318777629232199583412541509349798063211262426188366331426921675543169242621902457265068546900902733674081560568190669090622377283532746855406669755441901068224546132644256216171107635622363165855797364237084214361754485459864218030245190771731502772944470224590010016754719937876020775076414640915095182947471596524707500519631824089535119309273918054536302802167254295376121097048014821784329709783186959359779259075085360773640326685044551233580039718386675868562273686047358790499438953922933995727778665280678077709722491171688000424001162851014502104397331577002828323965101664488657713492384279538523681213344515267304938448595964168474641007189028400936029012285753698369598611011921196954893805129830190725069933755788593881486397785720138067510430348810261425528427113431873007858978237243445570162493397333303688101869439449645709125732154546385976088559760786222785750015354201593609593838834887894773565558869697321774886692356891135470881029429012877977988856103109053641518321134265982647910891311922214749170307486246671987422325449996030241935925119562734391471245133524839521865957112370258164592089223024539045788737650114314323810139957845907238671236915030234475774279153919983852108851353521049999404590998015383032693556178113491148681076782206762845497495578372553682297807742878093876544885571400749721915188018748154480791256121668579864816862969481118877682539349372042420724031357118090725324079088849472730656289297326473833837870732480474451524705215230973461805222658609686322225611270336785781274625072750820115851703600687393412249227885090162600202228488704651267361040753877077411526073066922751878893580603278281464249812612107549062814729397652471685245115027483444785209504869414214203917562669072771216627056920234930479367867312101662969190970763735939463404796612038496329278996912318152678373620654685746532281070608692098510767007275899953782518211142797399057325670861471006549389391997393039340302863963919659922916196295134802587885312986680624168480568652136312938877370114406347534627739259554747692780157084109181564713554939753956243114581368021801446194788860446244149333602890120283894471220993399908778206221272106857463142675564484228108721737885741317875434951346426158906866499448762148195535977208186001276560271898757218967003314725735205468871549292202519965843287274170222012010741984921849167380987135111531899359447478055715061688020028506491091066550075727655190212323201054638720455476442404932159888964819736402138564665312540159260721078838507811628166232345014051468231912669686058072989824275021501037063365866980131212054898534932168772634512569955864875029079675170062101729720325378064125453838300458789361992225259695433387463458093691684103640965875653700084211600692271034336669452940785418224341683969601043471175208653812901260192022517962309398737111702525662130813233176913794138528489741599059868514564201400905598127698127681978815486255755441345015503036315796069383860204948990554459422034133959291177811497298329384523559158503688279170724406878846931638423469469460073398148367368419360224196528752968788916015140251783224451488375235090569238405777985163954570547569664069997186177541680359217154562942871467817053008851495182360548513429612206265562507045069713119576166426903491855472824355908787424134492422057976413898753116666972294360493696301202371273364856526478470356136584450439325779124398375102933369695262187479445221650609376305852075227615357203117059457441073474435381681044860507556542673895309589425250855543836520158332980269023539231113891860590142166291879768592445829047229319911294960377964555840198456407763666649492843853278964579448574527596937500546829045420497243121954028766321555727553461201972022959111652739336930363422321845154463211479184814921699863112621186788283844673421371796765858174685468232357073010246096731269810771226835370600181271244679818258303238353436487636945359190858085671712842233337521907037769689791070635773037668513420485821241135006704675805460704936866543349355622946838297859289885738086938369484792421817070131397940951830922400501902022518967823441085019654155410468717328074038367150359457052022510967678360365157955252952102351692920104144529740534875992956364617754479352340806689556692307791384383066968429614477495440263624073360892605180808959465689360156801251070993950476769547412625913403933554353963786610945866975550860835388265705812201957081184632398889209461665959151150542520397303848434798239223489732537389694477891885735278309178582297421687258720226666708424162061595912574812976916140073255168001940288995679380189022393472759424122840803269703907986054536785607686441612147030479587464968699779454688768119683206878200131062788506442470527360758792523511960814577746257174785060345222148824705799947773500301747697089915951454899345502801663099030373679773639743371703302082378401209496508719527148371088362920931908324628105828950848559031761321617852571873733266581666197250290309224754776324764006846868229604961375625639492031068140782700382029187257790519898881650081299287761634040917591025242826898427716785595437120113866957129222030490134522031045525346349148986287200508956042857589505917822168593576982667859146091372878173297424238906001785270839617329064279266338679723209147740006108010287357236169941633373172596422166511437327154335127195258361387074777424737714583101841639391997684527442177541194684688394727779936592501270129030299076209759754428122990430050111025305139613394756275427920183289851668813350788355930032579864935786396672459993455258940287903301898473170168976355598618946369505692748484199720158379125713215570398139661554345267421270789165303257590764996305920011708577069503924317037616469018625565422321128627583684743485577506969074910632052709258799029034125385363581998218451913676408963863389095952217866527228715825198787083673569061858612565781656250642942583416160914196751558114287980449412875117893650356043155484018100710837587290995872467578258562602128588313593082969301055798525457467376264162328740268951957741601481563552946258201143724063636469607748131798965551004290718519782551061803530183628120079632390009391415980852620721132724648803291545065489178502127570535398768822983905798976908820486381928947686627074463909545344169049491365043789524910734188204480983173895017329216106986415903305985176156084676594331920602254554688036336978157405716523857186580188766161986270018082771713096219215761297504667213920680916057412226507252285272447089186365852449141132398042306333897454689368345894164976803238565569873530210732404218706306409433796821586087527619366265786498321677605414031795169461250666116668954643331834065860892063986290906129088203728274147850749891174742114244974209920377169182005116310778499261069904210696202623751926230763129357861709324267745743334937787185656042996540450997808868869427257805268463130278129137881063270317496232062268267157508189515791141822744365828216178281964692785503362393505297630654337913677910181805203085977164853058906898123911296055006243643809353531539878352887257685420889832894337929342660875554633434344891259738602133899680101432024068831915692469956861077674082343894560338563668018380231768451985894765530601648649543825404015787458169243367789665820239471679812943652623670884915385394033586345528059749287255627899063821223836206522311101856524922363120739462785089591049952175411099370293571903153930454773829882132150689077254144899125414935398719978573265980274544791125026087758466918030675425159035553053542206978865865066025491105281845001526289325443915113381056983389208394720369138543285619189569740682147388649414923883310898583887838170300695901261357148875649713609793133392227499201104443900521093781129661652972040263917884996018449557248547854758059932841070571932009443119406162935742792448478903868189472310228670073883626900798854628946825787548642708937013398044129233777137254717042151775238475285751941891483037931931198303173968619211997927545319743147522111503554024974621013948019362603232764209974098876927730968778804939103349311180647607928555875397002884998030341891773354734345186772885830969155030123709931059035285853863972724950083866901333111760891850785285396124768078570653849045083774315572343540155852376078778988114936310835936301312332968538552817202988891058192096620315043454875743122744662197249298391849081504479396581415452119439955118464894220539942698538654962740243340759576202557886793131415526760585144269234812444321004082914768528797260344618871282323072313355717334934818425029418085268684854456776078680746441850269527926288838351807947471257233109048131696048373166940242143807312479160804488505143134678884982766528708909230608692354751554438775058073250718658970355427133106573428484491138111179108280900493064612785334688954413030793299207374184532266346464237030133928241107775551228628564380468276382476761924609696048324302456515475345518165234194306301797418529704999639646226079221525044785112418207904498888060195646454349916765651462127316747731204834551202286048172886422192125713447821740410034527349067077478187569661121175076002793812606536205974342234754143561912040218688558382075898366621251127493080943874390874326952584087985072763866951601004852461031531803746274107695212931894081198949966812021561179951788088024013575762375778202213660236296140932924654181889958161530079264148224477569857408497556353809785303025555420880006853932180576861578003077604174400124474402995263021527706896124949352488761067491622370748432851373330235728090390906965851868325971689751450745242277392268913513064644130751213416863500669361392438714932761755051465975311283614670586973244308808352884548614854090085503576071991134668814883104457257091181596450331223277138181130017825598386851990294592507899965478325708620844715356987004189138639560793357786099124215152577380134268394821374784554103210939545199459927256246845852169819758198753312306605087651472091286363120943195536369474500103475078404355373389013827081947612839095170141205605513306257917317134590755271952390105249366484684718456130391738531448780788015674480445894084662126657202487371847250307154487510295791162582524358046808571535369967480245653369647099710529056581537952579792245134751147520672395396824822320387498172365950936519157087323949119985739464209018926578496942528994092042214220913786234173485281677788205368995710108455424773894438247090326836638715265617779533097773529754887006624754914945241975870180913441621954685266637568784135639178068157123906562046526023773269500511466737792479040904107530293117662224870022491766700507843836217712299756790847765968255965076990604646792621779047490714605230297281421502016044320014496888307042959142418082663129456182227449385128914199597897203119593827492794014957369139853859535499696730075830056575233905804675151594684086756674790904776829013777140361804074937414459140719052098272391200669620941167022998180096783981561456534627715770093345150519039479594862696778047544376140019156469497262664431077131443670962713185198303605739074543008839080638868517997741867874339671685501703575790546883504330759796297520482646408441608343848471157094137631473847411881453097202154156539446951844401917320914267977336793506944204151526724428961999609613591353623413978273211819118729013794473432397823557420453264050059270272614319743328913819432811329651168152758697101069462056216077824044394613469863765227430950272354432592099214340491719515477804407547158781109347246591537243689951386645634218978860849002438049430198390972397010011533772701521641115653869341602771907386477203674188859702333651008471643629315569642227465019287928777104515797712274362215685359067018081395201044003653675850105585954671234234660395303121572909523064001636172940110754896319306889375935484452972271194548305010300413346773216798819051532067979148745774331872855843157515307886877863317117983894216567181120424295921293326821824157947661423039053213172486427855639108998096296684068629018355009154397658676974451275094009119859476427934014538989644089087149774622755780438862403858482033693154424239661622883670635605997064766831186055447563771660102386103146128540341173209751519964665989090899726344025440546766585849284941704739815864127370563821973791867539210491682724991127376318035681779803913960102432420586160042322968624130478080426335739749964958214811538371832086753168753395613841008631973440746078777225897056377175234941663718656511767856969453605377904250850827178228747473517061325081085209483879258568841504013463265583073177297494952039359760566501316450197392576761001189660302903295883967214597251278474178273746507735614817297323560944356122725071766126386438482532084049250655893737806329620420519448364769416464895386456419325460217476988692327338149628950949280074903008096504835568644231729327268957510407608916152521988907953123879769225789182861679954509801454213881008410734069374498495954444115582467731296055345088872189663348223293290430888023980566439426135936787850851925690616368222212171214009365826711441626293151678835121944134209414351513140214568775321655856338999734663654427019899343852989006164283109280489698472873618883911593361511664091769079430752519987165037883809359294171346006216660395708031912594644682192057435837613602514430954554789288870608342787980110275245831877200231752665611813111294221829637810830220131992356458062277737653487301757915983435159266279820008790069551535562843463952403024004997398894877667110853830830400815591153259094710299557426846954734143970509501349258683500489374476510403003897135384416609701156343093153164457947568257024686484735544571283884460427020458812373493669976176865547095147297446970391498494718365555175522658761586168902094718866452674869959939546423115969449828568311746575506395045296607811689156618312755027080067691644394483655317541202789311459356131677910416415373292155418744785339083545772402547542795963186280731122553881650943655501488982995694647489697315046192029040925154979893361073259265339181020414195009397535794088659264023890200989942932474652725246510072859862937938602154489796159462473769153172965215555576744238644552195924744152615800627676150502058689303134653039946706800962375266716630168345030782307902521362490103553815425495232618529397556603825115185190211207885892801299964643214117739489678352095904732187888660910602971806151323023724626258500268394968726958930343504467637915729454037004528095343134412634395933921382987289930344315877590642129796493699531840927414838398931330958203624550466943167412921009069895244094582682139729101110714059899963574200881200775274810121724199663386998210915906157961205817974885514191565918877727697091267398737462690624763538312407987679079859063170037212652251178540928473238156015060550795809746507558511936268439778311609089412267578911430992166051617550616089612813114569788187667016971353127073081937700486385159521414497986916860359613655359353366344111991591129219968461315006315945690694828110126719787843800262431765673576254341438909743507276572244795442779224498031319466276202862705181958405965764977597175481881160678072588915169722469869221364295825367210192601800515473732076988738548649873106993865642615366126624872309056180588097107975418576031171188108983130737222864349526556022142486603282599029729327038018633552855541814530104555374662083944045297162297790611708049332034212486548217181805851193587287030797277717824721266348514157171299524983312987864974441522146967457574432828655177289969900109426925847572688367723711226711821358828122520687977129810420198696489614809104202069822116044720082685324651235583541086746223458613163720940449052285630433673125524627598539436412520106662588317844833695567636703459738812629861384799329376027698996267212293715353564233138529886648594856494277986625303984025369963787967669438269112489608915848222420938297830567360130739562932047967115573556350067003007164101421066005574502323634544703805202071635524811647508389475936751443993156301609326790603827661749507127524243370830789162434142829793318510011130667952110389050403915991413966139920941280154994289011907690468161589213018059684650328072785875173128360667595351654801026169493072828291816798962827455448688122884367974621464583000852354253279190069587579732416753680272028866149151423718648645265951519088492744118612102095977312127904885649485586529938670877111092455758144156029284657180348723408424266463085006812274736070355646770202992224301622687170824020295035959560885031017419341636656758572018659685653161372709666375030678720956875902326678900578803882069301279062645017278684908970219674515992561636401042642532814379389601784566291632166756746564088115490644368018076602296913529505619370146826368647057494335097955057942805695844570959451074647702932901670396898120238313542577491215594375119445607087206003859088216456023459421662984511340724989813264008522350854685303267615125431534938665119947775946398690058694881270551601701040624971726329763891483103780863582335133882543916365456801434702251909201021885124879336011522557564272915400706277280442656026197078678925099769803020469489207457190689074504599186549475984936713002152094687340310529818709134046373281205642581890546871588670025584586395377066798006309742144059368539694955117276797304827529422379591697706845755504857682505907855550929148079250452963451385514203526799879170769249013118396382269787458157417389544607939372593709976725382620085951700880043996117780090853416834715742009899027224260334416441597100426119636854043446486044258802391157723569996638770588372359895769315779714533203824754652682359939284354324860364939903194594023807463112012661636638639677375436461170750830748754145523724197342760022857652643788814707933595077748422909341661612496506746830605128577591140365064752407438915498289892660612520461138355948031535659288619664867820772378328463403071671552327854717026114464837395721268798354903585683663754027305219817395460336535611598601303689183589555575836418946167154054975981362319863721579649181718289162173995227104766132805688862612957895080827425481591572799982672836612601838119558877165803628046212018937866494966649912273410021346183736300681047832238809266174545651114112222769792367093268010957275860538972838579227379173057434878252626271517626828084853508893078557268049457409918714035846521171729488983441184562771927512880957787846825564982590998123723994747690546692501990207371794553806045211843535381015021365825932206666390725870885577641575247930880378949125736295524719747982087564011639133520691156571192803782136212003701575052674676149856490594677797265520522627788990259708072699022096243827741759613692343106649367976932345051979899888985126804947420293491292839689396654525215420857748586643784867768002607877923150364509733367976758634880189532869687252626323662824509832363028834116108074035015266965496491867640546286377837626515062028321442724985882075919892618623456159004990794694617444508127810207335200733972836798959631285316726914310016447135663288417210580575422772957320504150023866940859311107728788096231201030065308046285980400965404402777672682107427033396543246448333578286620381419341995207736148931037917059939587160724718900091845229696502103031693293693514563021120104134039017906122627692960732183538462593314339637955055275628381861185365655129832964660412007042040619500649166982983225538832622651824487047333515334348399767584938533755412895817153030560528402727201292479770049499057304550567824886285197727703984823778728118723485171010226552844052911579780897833035640546851095963626050707851140546764712558119708503195807472816580196637481200362607599282445102577238682301721682564537568862523314713756933232090990617943393142015725446042859361062046885011808623808447069367928527744765407208218181091427138615039327519323409073478091722477566675309399023687873243155752615281200676642750744275841902851586875577833369238269015674273364077922689028264768227845428803065158787137954330589675913735723558012726996344160642094334214768787561961248124123796308450555679908455936947320151885177777227202501872055242622075171114571415983217513643532703015983009998058367819787342122505294553685476833346798789269938087221241853066666540410504713853128527463492406898075005298525160355762628142532768294882954522946672316903995366993263192076475380131181259172131055338515100592682325966840089587368057423557785673789371741900187078902145628122784807413891446333533399024749957733448552201841936994871072065656788260284114019600669393750728835530244186642173409077048517492521224052548366294533450791587220182526159071647829261605188904384549260776536351461905425350469010184085206942362241160060406338726621702668773126518028223399179237369895293073517161066507669491988282198725987550903366920771906004029406634864593685986798775788728784379616210074724651573733194803031125450574356572388720832800090293147268622261821210870855636619929751009501907109425918458338965266386563057461237141986371636685400424010339611560659017010890159581935403255509812903685282851420105835527544483205987740936251111238097783690277935580186306993190562517083088370577393639378976660604413257682554757088361339092121248795549342781310155820176148511045547788944296931275467739383737360043555413165079608550811202538010885197160449014444644104350516679460889345574114175138153100688454123675943533087060790460564941173143160819299818742585937682381291971251206182318937840962459687856569241155374748913758167877269848507572392121437404226671265966993221465130501513433645199098982134932648257628318160735082064759596279542799403179430719041444168245881607455624783341956035706690601859001284821400851268942523798325557911301918717316946574828587510016140786258051036883704232409775056459843297730321071294904313646752814181627038451976034719368366211270557211209259627648170819112997346996251707504859389571100993330909848622939130217495385063404714710305601483638768541795767009594087613344755782238471983388808852529451544467384087227430464889068442206631201996971697117352141110970718408303340390207503366260938362046663148021033255228810903304658445410674619990369130055292340420579844740223147848810717187004879328539112029182250826373220954143383252870650211799503309399858835017924608891327879990335191326283859676890836363295230282904475582983707199748552798511309943892537422743725979224572958872166307728735722539592705516151520558427048177001023595947652467093319188135949158797862331514704489334814547032587298399319157805825256130670316826056498086269470036525708131989392693183114760074759075654236708214996637636447291524969554167598197762678174915483362931533380541835022491315646154519109359074847939263746567148654496396055752738981974673462290475109367316835591840028687125800723083143549762380003461634918969241128861515124927336907864030923138532031717262924974169602148354601879320351212172775750618211259542206765511638118028159195049034758576301387226067866268024190667808603237094170162625205000582384174656452430751214028849808324545107734220299452699052560254381897969418210085561333510629449559184413822451623106771792890043535051437503546385106658607006587232518498497449681174036947297971503861457864900754302912633951113830843167711405889736601661837792106530437537496929786047282984345149625375247011668937528149943468900473088346063559716382426162338158185157157326448734172460331862839717676034357768385754503819328831492195466376471287474045255344929534736667482783759025639396121629564267332733711896320461070412803206191812792730580914786482277687159230921798714697898306384400128112646527770501352142194251269329128103954908217596169309519969470307500068181333477084987457442835637227708406599569776682782934807594700325035743729555545994376795129178146463694960360823493629750639499997721202435464805366770062700148053204349262043137126701225913111943333720715464720326774871990099552427529493687660986277332728470673084102473612937300033155411396116235973112919386129246514294197644408905583402657390287476104539202165732416485173725319668125690150464296209072618808376536644311417589045076135459135391103346455335904660411914077537042881443088887923943765617959650882640644467148798287360022808944043191925884856611707180703204794255018182829733465261829943172507927833382021731623624117748097922833787771386352511913120533916936483522661959201566490958802770945992547337500997130111562858426479043503686075345403658265375712966604613555829012413423386897360611859314726661317404591751351153062392674367890644953853060870333783823435147445048636385717795087508361386054947042612648741526045191004758746733041431554364055218220738180072513122218215614679055229876600784942950884152987717062765792845345436482089640592126246967087482680664395915330143711650074041599532229511084206648099237889919777215829173854823147740036973602191157157649207990460614118507949518495399859901528858132278049696479666893352462060911234570907265915298006055716723361880109080424943915639526313504653547114222985303042321932714898559186771715743538515374371793982493343245410185938090649327201494104308296794144190137018774911641988853472058860655079179463998033337623742325587665760664324911267696716817931404535829400545872154413574353002514351688394565996404867129065186567682461381010191405191201772750203049046942256048714929551763260428334815892348285289223302355436340225912265084536365609812286026033853770645213712843290122599419530891780054396827571528316256062042554182464238725822290606719971286313853442410709708689857664891821533456700312180242538001261588392745784611130223951943519005111891685780836939493256150125369213180802187899304021904838040567944315525657146195096064247206608350919434249525800687805248303871068822483581962898218343929495570096687751260589125342390398746197000966456983531956233871411263302856305770804540967197907373308400655810969501196256480884114861652546526863198474033538303094178606510411568193440574677578683051888538742506233818017574402062517842699146781477545473457323339390555374411911749808039921353425018055449158897749055183210449812357636225782380433828614356996489467244053859532815354389679583130477463829190250185090769390258737115718433948232821260643848611560352723540546004361145470282416197557426684191803243615903501129252128804663087621321618584357394014223460851002326411153217974528949045818124119444920769818243254566050493681988234314879731069681253109665889707131702923528686062188347921146536405009560636139837646738836672475443746411538371546691688135801009961753087664894916091601929766576297337468050887708213735181851344867657853696385236393906359927927206584090476227965166056006842698558560776961584776952269871482906651125196290851216174301014753588952448530087800441839816770905696615496020405988979677949701982752250557048912451461431447683575910751943591910547309942735887760734824744942442940392139216302078547134095218749869421431883605878728657826797801970660683208231167673293206178058528368949955444523196003060110162684619239529965580657575033294556450493902672640857659954679871630530019802630771175534113876315529937856304290339106905742087592047641015507568370176237599227596223573574619731154879611367191212273398405569652646800933853118638262904474226882509517123800932313894971525461351821181577226106337647439801454694157310840763490435469021104397942693512720882035275013166565838099237172190881282075881958593656795561591635964318021027288937881762877167085439818722850005972281004982957802811474231662763605172316815499606739006710916538551756708245901433638740200760380476632554158339667390723612540580109345844801436378614036520507843459800094278443538868891918623606405897776200356934334334016683147948421260297339387851710212074547336461977328489264639325448776839887948257623160023359046884186784451193196855010512070162992225749997396264899170069143387500076830598761173662144041880646179657915310265455494330606569375253665137551091725820025451818076388675946345331900489212716381508065176852726836505300305645114925138325236772040297928920020683177227230647564928094755999403974490938048645701088014614739465957209173828324145355756055114940807529123535220185906091302275393161704941717848116684855356144880681603470883283011761587480818208142601144250864128278122527349229507209262026050928608020263133037336302811294270390640183854667652697345838402218940090004403860087522861290649329884030262645445444760896586522724117817081765953780333917049352501195879736770206090741212579088759857852277212584302271154587241941465366616382812121000707729603224502046437415840801691635774891804706402545607965432086314606529547531891168309520143270166082632098458384637158708768981037495394714469289154832864379992712265815802644942132843300123530763495436523774119499028264159337582657813158459391052497165905913749216903944681784377959496410426652192770734070661141122304719858172362599144827759637173986647622658038646004621299963766668813157908019964620338969412932428620594281978836756013040226882010047269102587754454647142087137293561990597241146892385824394094898277160698806111961410288034604168611122414032708932482442855058504008879208118563136149455724145153072272250233228148985452312472087159459736957234498635043867278993453066911870946182308143671199795540794997839182877339410089548596249945074587216669294680846107938031706760014196330203983055156462814993936300745664292564151090643479473984682374510224395509433524096179606626014516051302965526235030514405099417862046018362939967636216810140786289549809044047239768816489152834933539702372932770474819205315390780335380025648357785413162378928671537542918700099625533918891245163889095093015587110238614019757443852265894926915836043737099753568162327905194104883413627186515152058525420933517374535526509148256041732777212325820261038131187737374692983651810502099618665235475861346165430198330636833696382466871390458051432693702078150867929136608627486001209626903576147631795720941156821945752883953749683363208685039365239460777400788963242592109518345488138336295753934268212491881650307234076580786145858369879032111695440777612382081001472660905921282680863197395778404604134669608514496005102894099262160169990185381546070479549996429114108513421531417633619165979818976397100504914012526659029042752044976622259167778961834175717717906203212310211492918908220662865685426012962136309132938571004054403027775059071861403771443560311694940270975724146879612247140601785061532880820818643694045335543669142989160170966903550057268138737010555981183009144813336511434512826593629705740737161762635462627222062407966004592457596234775438707597414590159056904084095135282849116525541465175280639273038696148407537839064774070214724447986426324960682302948131398524466985523287688485490571120778325227090236191586471359699630310375010588581426790398230697831100567502983350403416210877719572530476516381440263278309125313227842685169668258185737373791360064135114473234552053439131442762019218110174830982705967528647442281765555743741466050742520114956991238433452482121770892044657620091928620427028351280301028752976588041210410619203394647199268072746324341982042926735112137899108477708681055512844973215787430732181668577976662560435453814020798976578910778929500332216727804110159608222867151695127543791211165707268326248407913919335196277935692974621685240953800602047252874590241828292822521506298342205413051297484833121873461255200015732966682081451501196343562607885830608792852896711707677616386076148840900413895120915104480407107954913165247673326975729141415841640592263931234573128043836143407907407441029334859839637320483259462562480941118843812956339825386390478056698237576523070885911430622230156881221872993515853731680103891035508388780309090371394635638437950993520143245265310265526153960900739509968530815690510074580887918558503313540242064349689402662297327826386953988847579046218093654399917977723629035852100206292219515809820978303976144714160178235574892589765633435931098063681563517539028658522256446919970826201090946720034751286174756681546503616729992405017753301074816951362633009784012633514006539082364792021159409661169680626699359955847478392272564315928571356166418796872143383463537629110753794099683241224161665519719113423040859949914955942402651129916304271250509585965729862180894983139412770331468800600699245494151566121436379502279015792989083225590980687879080273313231700206590232822876199520335413336194839004016831162645329258953031112905230526814509332245890168192232597277482487946477026842660047628709447260731998377795512712707554127648835941233297516005952009076513705406350920668971783963004325149571086276497901153828227502941787671163276241497954108415187052005018072188160345168368564266352478485009743738606764976862236721332918939574063798422640381074309994095695849365421535039849327753268110300618316815898668741063919074320112937881299017442777262043114137148100770392671649692519091061745590265634144975864229631374242435679161611357159234693693190776115334248114683089369793967090467334457742403583231021310029148038446273445116882417572008324844576054684975216417139479392004675110536168423576749662734337030018714567470970305648757806141054603890000649685802355771670626136152566971627039682180856298563626481303790837408764660403251225249927479301549062797920862820937733261172652530417161555802631972494288284735167333018158432616594028032841221633139756155802452246388382817107296078468136297666987115998275966053305125144001248946722177037053367134261967184956213533270449469084421052501097197509946422086823561436656703247600075315192835933076426760890205500073749457258486511840630954310893217129016838917760101836782568989886118228578435723396122056762289009491817904032536402758270984706778955018535957643659481383617822672848610708967184706519446156926395588159576056810764066832489888705751398763552637122849064208423293904528909478589270330348319335806109204844430594119182395420693044230907200588668641237878755286812948027079753525905202703653755565762385241960381940249838830211635737103802121543173324649896253875971519344002580182897166473297874717677048041880889226374393650755100721193577931012930103583061463789114865003890911366032976248323890434052276867431219502666671548919866223596596299683451857557270434647437578429890358526712442488043873941660171692980674242518326877902510397432562415683659759769461016391027882563922727227542339757227592124771248355797737230674140765593875137105240134050962265159461680439278800492627416830362220723675429937418281927638375456678562863149880800374995331323927677469939829421895372409444925200343487392495204148949373682341068421827105867075744550786493462721858307514783108154129779023615459948791153641922901343562773616199041475709013701800631630906257367617423165131658950284126377844841352987412058544233077409621352613995588228708385158794895535022537948522852637816080129825387404268216119574220387232102297956669205206705989495123102199878126222682570481180694091258294242136456500542490167129426948347329440908818029440025580330917247777859647917600781059740175136397691225134255081144316749634209730227336188199237781006100106909422828288772362582640034500771809382217550077862683059757312578394205060651881526564377497155687982323511667548839543824827942775427723545760496936790921530091378494420924198725563003548630751407905794589752602934665932371475113822490293093497101463476707413739673420565381175612145045619742217645476923066322043034858372842736579979832128609128725542545900875317139449394697659094345879890301707479596265537918826907527873704725145532557664447898098933169486128669793327189432861020508027458200036670338884305340074688832791414583711502279539805848582436557177879099974895641361309726574328049371554322120999773391866798207319174383542587334194423299572555076510556468611888214382048783213428691553311968459827638308476376399048468577409107787222528676567512025117239372283520355809299803898976641715983218365427336789343450313013003527322192228725244272911318381280357301011777266167006364380475122048933513052232592006353619061898095291792234255230202159639552304430514171703265314305564773746556526420440841751278581578847195003126216576541565004856306195437444300578931397385690019005007919207678438644227392321169220556087373567668885806531049666955584425388742922176090925562844032794882234548062606859426680121373419239365663841032150015488830235333472372030432123670178533077666322143200992860776883221156516235249203903152219110431630078182228861861127141444252719743965521762925966588823750997864716807578014535113679753676694477380610468126218169117594176910039866536432842014787413389857117624107411142279808756494968763295196058088907883189598855511949224739931935579317443584335401136560756272167231321275826202604075847138499915613266632740328480001732294633625812893901401915428894512619499346454360045968865165798659253473376710010374176843188505974492225391955718546201481989983021912861929011030969461364259947526227437839438859161600701740232147573141889709770217807944605134822927606598855064188710994141490233722210475045011338155943262522437338464435718739154478496049584035127078390741439771015520868210250128430108371338050079926568827312869392439571509161755976427627921885019311843639216272749008986024596940764662264395035415534009112047579130783648983458394267341484773049933158526883265215606988682436690571474498580932900074259769472374639843464153212604030828417067519803687178116878478843331597853552317456130716215981200109111254669377228835021991833693403106666131475227780907304565123381310898322020262292004529240271289948629947197305646433722342779653333096911912522052107923975834296242807821341654586140247971945998400108470019167273424631434961795353991412819061213663027864698804631122031638741048206485327164229645030903004762277964035749937203548054774653118488135485992776449184740389632943024564390897522346291293538068492305648184435769687772807150056502035700372639699952247507083157811059830422350254527766039232230628207902806742269920948732721877796966949947268644842735016332726954225569738453305790746043555599327968271912300336311299519753922531557785259191797530583829607043085496236897286473458939205892371184851753502565398697481904368799642869585942324801440609568332279085124500053517072483006812957918460924543462630137464642259273222905266180759468866874316386100459637458301082370245263257146749209887143904203427545682690422166686318192910889778306322605088464101938756151199483540731847493673058562282284646211940127772217337585279893293836550605919757872392015291710338454336427159386241591049166573576679964624591136248089281787344047592285229186347613142966383188689207830076133881514218303645324361494020953625793221268218879378032833776429829634162861456345542417244126746302567330479587232326323829234157212291758731234912768010505771520439236284500924845892899437924984910312806805149896479993281357027824813409780354793670774813733040065396304070291752958652791174303371931851297781875243372327435123713310941340793480127622246517132013031250977237842837181776292834563787494703922948496897686822144556619548876669708283083836523172857013886162389952147399005278458708983241525548376003603732799197993061848194444006030926388651019008469045216390150094335543251517408956702578897570379762269648528693139347158234769944015835561791794359520833575466064180715262605043714555868810619969374824940846889607443512726082853335751048477352262956991905439800393267781510577024185283677927150986538430266002850947016416907663204630909226072710188250540395640286997069598757828556955852614999163289231889437372596212653623770858838400022476033170092562545425605213092483397121129576646667874882452008871163666196805832784819009451767072587583606255913635816523739325555383579257866758110145596715881220219219636510177494404978729593523806165582780745690053234816523824692904359765433866702015166637153777313947287929032406340657215677991292368032582985205548079987957808692840887121992097182305180203901355000843939459619382902891719975635364874250123440287457262772924656999980727624650810138700750747639010406718665519639328822790988059066170615862548290003045679639807068514652906197404916290398631634771691077385762892123371059977929726124316620838617543657705723176076499465204347763996055660887829445313384970510564911848309507911606056094580206535648870397626475214407877802902412537169098278962478114969821206109045340123925565767006034671421415236003015827967091548170228255726989155143573854013025283094133346243635879897300983096035173872012986819246760861374510647871577510994586802179736426145426189466509771485801155280417880922752715836197454305233341958731221029676557542557863559311836271633375738244335788610515619729345133841670525329023750604363030140201999035072565287788434337083922503492438122157998469088048909696991730214057726713909198893085000184777570104925785039399652243204477467223984424824421818254021502729852016617952762971955029826779667249657422429973562068328727478538745227103574605555463454963188846547097926694965943158040235929923843198881674508367919504589994478999885365671820388175794048242297783439811432848668706000837983347960245061610626118778899938055224313111519125317766661705259978234517758960225173212218215423910135859378517596677306125915781106739052646737568222138538414435832398683463329611273332495846538966514421372890974172903829172353989581514135462207803058925472429289316646832231827520741259955528702904491296372496972658161769701818082908155416462969124632686201201448534813800237115666228766758818562045678523658067265597953378996679111548471394873863635292840279796833695992637558891583001219125776828254767323537639023921165261933952014598763101792213245078886691138821785706705929761295127855282088557933472062395891028083013821178163539702350572960967364784710680362870423926413218564159286992772512811089481687976835951322224875544898954464590168837314192320946183056194815929598053350256109770569458143050914221507182304744804934703419522083605960596144042670286654746552698950958885464422402167699799194277895647936252964986576714965607334723592066266603714979102275587496599613588893327504132717725144441343045764247328227690900903455506883289556983440751465642861516760544539894918390526982724466824492743810937964856595553982654876078150609524310220475876147871418363643113128595825567041083026989097040701714097545267694770841381496609745777652921698189931469532940616527773942979101572661008087302603338865991258297581236887785430601129035159424012836200259208542666610969832105678358233869588043988061046776262157814490717558946955037508173827325060176366617938469741610965914574004568020266691845202104696500868365209477313668311467448839245866343671561684598345414907247751191486437202108270909593165128181932012198627061732813796308509334597029047352253266828144573540437417164033609416748017270325383978402908895304895119844593410811917124134534322718665903739053390090567704388959914010312736110874296625942706899910590439368030913604895042362739400774727410551279006250935200415200709542525327547801077076763885175846651647266749258859638883531455952856980108743168925988441817813679937483120108585287675837300638408886721719160448485972949379175380981167236635357067432646128525756693163135691382970386479446752978528075020693776076301805546811051474670009828841305945652738133545981624400574854228154529862750604833444849837113546789143646496415565436526567499717743049786994178828731577694315103875768376255481768791359046135300478620961881705217610061505653644085667488453003273864698226661470291927361586383356269073324171313131763573043706836993976936421655813573068355581814621862261183575647928278550478370945530560000880592361946440429008670784346017327578499323074953914381848330385484096959530761477239488113644511659962339635544521491973708889739408184385040192901891346704166379822859889976984224973713821526928344903104761112783072321107203377132897156656063346841518989512240463618590986389459581149112393687793003234530587019516512749843271366425305489760752636467721335098111333512527813140161364635314682252301985432666137789796441549807808024022493010382452122123288561774317223027555301147624311829341219352285902893565931871991538334730550932444681895058469863005418494552552099986163204925627444516167386962499337702707904535332743437472132311696402156164368366696120076453724145236618281854813787716363195867965841825282256894016355986093339318284914292374287720369803033689641735216121767023333076065456019511671350658070830315067225076433662367035782844492828692626641564925175759392251758617565821089919478898062090523986272562783576648187123300581540831763122832463052520190141181291055116358304412744414864100092982013170727934947855430107221415138537294835226353395272036931352376302750223705193022347150858818988776580822679366793400812178861464353148192782923676303085194423867512931173845632253738626744843916609398957906610681873304055695019629624121772801250191007866583860885173652476853446184068431545627452086366304950146533189432617012478466495699341325339033374496320278827667229125994300681386793043117016093219168175944222304001111734277941028027385561973864777817935303407162549563881312648806896823838888390040105226154699217119684927885549350568085661691975480124389411782321386827347027753336281374446775088589192904054842082755982280683171067780364203665903142373947852273109019384531794768003638607720013942094601653473870849534932004678397599541844731307072147113285861790906101693070950887884959813214174264900181028550847426887683220994660057739398662421236476472273027325163153059769439871059792530695839061458416037006861639872861580480762565373483097011737861972698236156322443722071963791575918587675422822800810998736899454784985349389823044720724590890615305409819629712563213256012443256669727115509948255687909965293848740594666459159548626582554222393118145916130555648698751672662815165582816036121043583086074468831894146988290387203466497138905994390613927395025641566589765273299199240164802378286228377668423762387174269378851216566884823866214803841304578237530192290836804781700222318911271721209059917650867997429666706804829063742910549255093559223683874136159692406291570253578816848713554829873243639774120649377787739318717293435764441718261886443152188794689847747189547367717290886342721142127376391036006936178596366001201896781803265330929646442517825763802600058896335657051740328538842752627701781458685094994057106372579271663398376496147402744275222744629165840956820942705816882649310552092583292054609419778539967243315805469631960692752508205614663990210101534925884382838835553782219767032418993845326445370824219973761501702592312591432800625284272521129661985209186499990126511229951328003616767088522492527143437495850882171144948804403501559819616270128481727225447942129136112428907157408439645368800076323308771631478549006951172791703323253246785488522141780373484590016424010173140079458789258417383465707346698395766688659760706324543261681519469721100999994757775407304825159389551859202521927597701342803045474424826066848992143833810925549873335630024974495386479636006371531635594424581075500337120939707193622418291317568144022641287979866652325739390420349175353000985145865130722067710461783125349241946651021144485601129472190551924500055471430290614352982854694543508824596675821494221598795809568488632283914845486964882531319612098792644464336071622760099797240483161690466007456567160296604864024863864083328877683602553366699496194833132344977397792527242096036996164416351544934309365311241385514128999450268077588663796081267197156023063592114839570035775178801550886647484250227921775474995335364258474188657258414778080804804425067892684738349202048005200149220380474435783939954665979537102009424879548712706245873412930041435674380444285752203499870942206614384224643854624167182897264417877062503617831936064062640470687614447668597783305396873395603033070282584113025283694689836949758866941323325814366381866272099132974086981974623647310528361040192853286779187185175255686024950378368302188797325559554156762240960311168763744903068470667970818068696475201089081876340354494392412342921471846923470643380576945872494020567649902503638721298734820783824733904493732260771189525286356535692799668217502401436459530921862519135967939450957153201674738967811309344926723936340174910821740543703160787571099224576399430635570975430312833768628336831974467866681044036838951295209994505523496817312525209919165011033595419296345915913088207529076087264459262151153712079742002463214897727362548794850579112770375971257692386437209421280619831292135937087851905300750873538258189284932445756158592848065522724683911098534894661327039409337781889232500938238954968214945834508113963875469276275789398824415866680627773204274388641490111196046870215877195513636450090421941684707430250279861081676012735592865225609451363677692719276671697570811631389179152269584141902976875450954876596141570314340071618168542225277702344638482872825962083625876435052772042003892022488747313319214465489135455383026705642534155636142724658695792397105473899135990903742346998025618134451854843884359022251131041497490272758556523628493381208381265313546523108471530558652809425689640841941998964769559088760252694899640801774046436304644667658319018432029357172326640628483793341059376735142934188472664983653684211332669045651110167013927886763484338403325456132095969966570524352630405526992695541956349350505064370992136035785026001054101352339798820118953025749235514591749070660076635280151644017184218183871728915666792708205875494579722006210847603873736972922448486590170620104319723228752120441463458592080455367415312559607646582040730961289180901910742926138355502850405134269705398596844621121335174322172268751325539638924654122912114112495236931441996706325127379729437127435997250776329263523322229428049504315409099627493119080669012449020655207940774823231779463444359156943903849462045846884588720076534415327312739999426524409993747506215396495414659143887324042273952741117671023324532384511657297264159994900496448822690563529441581816648958876905389643899566897749506240532968537339648377284802352106024207610180976953083937162317275607730359453752419324732678891600690982119344845226914833676352322600931379139185245288708118447832299237432076107778747845831101785120638103481750017381384949220865212934440254870053211798112272505615723969620174228662897498431542088716076840047205555272050641800699718859309821274701237775312246917734885892374430068368955486413422035322335317314390774056397196883623865887389320162734928329376671199420527420198205864883495662048671516299787506754570174385859254094849271725534732599744286323818737555066624482142813086522202484611571736241698145559185861270595093079407562742994529299292146242613215838309105645462740420819268624815228858912223043437122056678929788455445960295597905003726342254826875992490129473796784110882532022397638744056418316853451110785795026543622272640042298357124772771980249928122881638715775092285199025194521747523418654774277006520011081421693177564955193781489235207796120418755835261214242049138368578792477856205719372846284153307377731897191016786536243583612246719916343375438800856352902127649892788905421548508502690528839130592186373666875453486793096013281867316916359869105857152056824692570592899495337133753354396019237348101755029271897125841049211065700570914698902101153001834011918399892449787031105609692026997339852984773524381765241149920933796348507068191206855250174912751181832623869947513058305683479870939609214818271899858584204446200674163371310909893123441421455692267881753771860157916468246560838782553822545747280912404676094824867480747792602450864516727168099456613584287985750553531270689318376376921395936296395444310426139015317793797272556483731573465747306754664462059492810652617116026166501323180857989199330631184794230508631315636070740881704621157212220129463065582879621838755569009150715673560523205685488248618805842647219472899581350759904537014120976637809966803237015675508364343922402945197201459355074100952591011270069119416125965592085274443017095083484959282083894634604851216036254087481441398148117658367204872531603786216019060042157199348615336198975668779751959127621646006523064195619949461296922036661268815341927708272034275599022997420553843030287763044852791536470873700727155001026892932911025251564443373911944689218258777224419033228785579968120131373242446104530986856305164419615727734183674016614914063568808881396152524537756487226473536956481708105783827127780835743942496924083444447551551835290075591615639937195171261297211657537116615072807797434602282789448719518718877652895206980381347468448303811056881122264540434474967976338263014259361326048664075185483924345647675719061745758440381966623979247096397777488098963579096430307264444673503896226410603541970658682098743887438964694876948962289064585972615825322251528999061250272149971989171545717236876230334633566536812626635838258499549477970683665858029365175166783208903284837967298322997530312896659920806386316911049445921209241885597149702485497841852615719011566115432940297986720235652024271476938626742203091124525838952073713442411222590355531449837678162112501933714801975352288664406164616368839946335357879337846746861163716669405103660468969527630273868579835935047298615358947902319849106503616863861241672472648016010220986923406989968765094434493135244886414435852979044823937804592345789476947303297194774667634257560005798770211823463939179118139179157154643159044513710766315432742773292467052234543293079380774102699229258206164054364133790259201810834430651917061110615010702225779713493224505179702532847407240897222566629207192705413365224080866190481125051617761347061657814576484523563198828414922413918826271360032330463358032211255807621314310903928289532332334731219486146370771112364760796006974380334124605432529703982311029172613754842033145143061564911549553051744428393939591995939437343097165738394995195469235742198742689942592577619791290717099179527834482973974271854209729087908440672288133415455076970269317834687947101371932667334624950202768493692531067561345327313620220567257845774599586681854044737993991437984051109364307544716475452308031192899697121019417799390622803441620934774370804720074439486655132690147133516853331102918634722130837101937392331084337303047644132639362402551457889626380075124372065936798778034945934145670950458623942844268001506793479244145067984488612361961931165224408503986967162546063426089281574857784660751456844033071398536876446999437613116962161148256359558339575493693192021668089420042588810653296082612080475993919889112217861037792807541570806677292535771753930140835253627213065941633257069355110273986475480961286411781030576379011884210080124900889962801956161728792266206284813774337216659115833686552882720462372661462586643180277235878970145404016459590948914732459600723683523622493957179538089732979301913351900103512674686479851262459430997538618758497069796434087121499496363992001807457984457464233994355898500360286213692670524383955403799931975989991144540781754646831697372962794748107728321500391403608299459967979327487459095770819129619338013923700568610146704835106468716987930436028852700464946324919203703835355949662698442302052453106815529711814962673147734894606570623622649317270019772170696284516920755134919484209897195023814930137388532055894211061883165314019478493212868654532736254923327202944734450358648256553361232408230242263910988999984851220754909500459687666983312729564337574396233420321577684793198395179794283562319187684670211653729785743498295713329949168298969635643851165924301122349864084764652577019447363342751484050140384165313912304383605210785206508651433757581195508041854859826794712839883909163263455781913014634398522363922159861246712821499275469598394203208876252310926448317927171683497186385362242286841507921595675554881976809001137833724352622178712615508816480225515927673485047387644459456369224017658314039872817228248589332563632163335185550366605035000762563958219930186005750179796335566296869653090082246442616905029044359942362194796906747370742272601444321638830987819912466661853261667836297212000214687757533694441653544784520178405165367519222770729958321902369038608395561181038193074442005197008196992295694963915381741046309481158672008083225115173365916809652074418417542982673895731296093814755383237941191687169853894855574307585956430554940830375635665646182407409665218895488081751514193662269650732515333106478767634540423052774162599588295005878245702100916358178099225668542601385089288305869425138036518184702218026965281007233804861079616255446785436563869692212885062549246373134897355505204809697595972563176454486714464722524813304110924409965329111568865074330667029631285640618544748791316125521954845181130979709456714613513322211844856813562086125561213083455312428209405085468247045764488995074053200904794541737845513952803246736717211058024048030205950534221578132111378191367184459462141224545349431438841158371149011523432617143591630194963661648621928283592268318364381549686066427443828760724705064869202832044306490085881617681864190728442434386140998289604241231934099569092667973486954986093556668699950219984313394599467452161723611938459568245233091594419767767361358195945719382497633652451686403337372333744772197745339092799166599344663385026504784453456780615680440991914990633546532990289652377311015954628718048005291998181247781721650898990772234789774670720870332174124194693290884000526604978192203781519038182608122110524549478863642347905532621762794872019373913154411895030334615821430126788466675719481684273907684703302212347481130239476264668182924965314977218818173307953632793670269381185652867744793502474753273293070721094259118668124509814234845028061179940140953783286559791460906289969284559427475377288600765808017159220746870550753808639215440270416737250578169351801996442822516602894537153756512657210446582957429504208046708402402640567563165829225875969335437478422928331164624976705813075099195220565344274757847211862043240664016283999945039448704513340963470149028138743051086082186049195455566519482491230594499788295941020098999545739729198272894157926727897784849924295536743438050350048104515932675456354544856736509297696265544345931862911761184382043616504414576344792405878275535657149797039414579099454827106534432834382443511601612217103154752608799496734651188037529668346592999484387232759828751422766721431548716818246944654329487259798843811596801225862813854364171162607099738257868500466668653262894987530543344175685461616013537927987894338066622411043755694190468653791736817676605767714876398131276913556064723920482414758958279576344057562192753591265345601515042975225202643929671702226562307236676708800336085001951268710822210497001301097620853846441065029623553518495191107718333925356020268577903651472599834007727401575206993931784024519706557471811748509478922400506351065428042603966130691085287792141807182391291601414441601305063952214213553156030746197184272287193514878176150805503049523836115801859883907303037661462490153036837891255689095463309415992075984379196489498897230547455916627088017881157124398058351039206007810386417531067219601587533014622821648180504348911259722911844053206027266326809340125618273628408256949522477932454320527248327378903356040987449422906582593534940273146035254089365836332140116917700419789969618236763045740938884643180559342398149885683250242482650781197833812672778837080924519139462129649007036923774978903134111546646117042263994235049419310081494161081715271878525194740051108164440597793643143045661872876521099068703697222617611975733278499481451923045375804260449544345193401585852412638654537322154662428531150811101206964085778305665439890857770677182397073976740371881297075767267243641496583590235741725446294078546548134093906691528598824787885217458428799598407487667418838518006462507825641078985766079931888241294574836042084325312600100576928611851608808318363599893935226019139806449905004464464567740606736360924740764685731379480552357425782545058571684164993424827299994115272816133177745990955941655101428865130455935744402481105089360511064252753548409734810542250606614543333892553346226400114260660012957683840330712943306250049011275928285175401115076968268016618741778223428313140270321832431534757780729044158337316599152417473379530413865868298160761958568907447681837226426387662415083345509696551396610216666223960752554748109379926931024459862383259999990897075117245342475843350849063612392840631107213519616441668132262396714124130505240837697483835209743109846137072366775332648457265721202942722139832932978511073060180329809262269068952931201838556126155221586742382839232628517434834244863080451070904825495412061713865588469022653571246540285861954194182653627217994451293934533344559151072501013146623684451989855082218653583691948272784641253754284504503076720485555644478062397489438550872552704116860405557356832420370062430533789485022355066730832133647578606790840071582489989798077591543103860266046400164889308932646232766945502539929180291007559566531994285984055494863312064759130844788391439610215565467581942883482872305231736709831218008495202840851457169147390368515133486187690673952007667197152406771835602968372123709912826828019472866044225324052352665602181589146963560770692114597132700779926508325294843423594895820042528369927464642606620298443860577550957698961097806916201809225991954707001197482094255560450883417475191741719747724153675514833081682569780158219900471955169567717575519770687392478708562676110592300758710772233392976406739445938942833519915590078638412620049850688747872343616502324449108830517690474447031963134442019302061030783188863736358867960359121423943336271234868131681068532311150700312183873149996747094525796942587560910784192438812109156779994969496279536263389109196517877212891109956845859378665413324211246003738553783137114147658391270166188446279577935153897665684231701705724437463801785167266135553075678551517715608728046565727539529070550766045952090568011594294265261691244377339290788419690060420503488192726782407416876348010243096129612175238087603270947822998003655224479842579462104355750460045406907766452331332811149290684432811798298983927223250170506868131313410768147289773388672325047030559610600687110466751923434783314308215430152100060176061310329872648490137868495874846677499035255244283884873491471198021329847949447244025251194767329560219832309215980515446389432123658105253965761333181385895627069689919394450647862812801242061836845846207301625058366730628931220696102713747090480808915449281325466784946397683523404785308630600889029425383702414880424713294869211363846990434428539947770147966168062284289192219803218404830905283406305893786244545632372188565535327495928144798513827640631531491131723311868444662729061958090066534191810926901508562763973306458423533902725913651578223611170715468327806702903589125975600679499033614209124603084111344755138292274946622394108683091068150540194574641916589193323654104642540412354945473335075568591513327361817714338322755279685938632033473118520992558228757985425174432956834997659899951880082704608358056529542833933035802492080800211948496624769277903939130948131692172209670059820639047577481893872338913223786492745525535695644826132242754124102056087744229649982987013530227809779446671652719961017525465815645044888862402978906402257934475299630528764521669574719612499357087828179386991874636131153469706251371739048552556095795161918779557577854555655159759588827080785758551504211665412340987743965119940037726706957298255787185875669910093927988233555820353246467388510316286819073625772063560466921457480075678731411269046120335730077349536442941776404709692831955896362596189961629607367922162464064062261595695160390326906910309174336174503668441494765938520572569456939655004353443578351220767580146054887282710660414748596870282816726524431846340750997929974010201602700405223463444278839223355973545143598215103758443342008456276732208298410393184437755717116494691453409779589801997136966037283260920815683322307327005299091061403702537772907111438842811289166771947879140291568617101527528203924759652639256557453363416644763629930683860414025389223920394167281014485969609758920225993419671775762128308465491824092246950082809875226071836114551509645997095691773387661958820677083611240817809701877322741232088977357173128273074065822743400991659342734154822585062447804047479251196104299905611077487677702608553223619525356529292527925014418383805325908302652120319029399547665682860615189791321249043744784468775823238493283938023065034991704132186903654877837997988375296686291515697004617922606397519496452682866494545498148059852234926485103808997088070567426537861867566692020615740532799027741786855248280917534524969828871729683928014832091853825216568060844533568402013447527956796085416306391118474733003330214170490788565660528845210191887669262452887484579732133378453632252797434757316327258926930318792070688381506957708229156920961607149141056974378020872522685074877824407431186616049786966811254826659531202086974801704737310249961643315934023062826784162900290808535270184720684430339501695229470176168048871058489100158657773105414379361811236409416432863451641942779404472374543271006079642895690525318644580785811267996807889541399727180644455563661572631431346870695023039352235054834738932510101396820390814139586909193104156993677610068299622397094485123825145584782844455353641965720007749144894178218928929370801757277490643222020267912820007273408415280329800683406252809451772379890774621386738564161144231885793693654041408999309696202647045458750427756680206529153282959678804168519361734095250381995883201714175046156790582089000163419655936408688019486885736516606600507135684501477833044679028848574581965773020058564708586807748148749435496659015129418299781311548746068859304009140114686165800823396269939016995090385798570378970452657554892010237027101175646062551367374636145296796166709907321956790647330397052309591595090532731123643929444799399694482751557267676473937824335288154807122827130449376694888524045089086064507819991656192556629078139551137930784686152983669869775214826916209070282028741037651986426905513983664544925620138384274093250616722137080599739087367275096111845663274222627389777038897881162782155488061259527634309032912447624734050257830422625495439660351869518222743979229529073021458983978658728006187352835942785045911831239975772076496281856349476045849400475838313604017687457834067711935732988039481550092492968021286487068351879032014901353858499590099811047346270030037849126815634870271493276251918458071731554423246800458357710251900987765210614657109025023312731708930472717418536609732203066020316165244565693187835621203173363410886686153562793473632098800194751811713434050681572276203249766008103854142668158420491743347456465516329418063136609624293988939289967759050479790587613515817778561881573227113873256751407158611147947498164406482577197021402356577930140424560752775253394658752531435982908906410200604272894038640641042790717911814632323416973579582980155573212854765476200866821192607411466952125096453287299148084749211060218692630643815366481295184191078360524082503467331961167736825199633029614420701263322508973182861531217611426645592115803768084428270069434959977695957778981234532325267699698753260899947890954967305429695538491705587116748739483320892819216767294273821775474701626871128440855560614977670918524404123997001357032374582105681921346347888497918473532003481764936899230187722135608450564635976201714910795057487912424143407648316082820349149434881258514074903115859820062938722042460917661384559398876521916401771516676631979596409813148350020916252175832157299587721045257750192744928183250302880293503572562102351558143089286656121512004881691060416085769232177207676868560164797511066056069839080854065488331774167915169369758758576902422859791390678191373701180307577203144817864684701975629007331904293734849168205404798551329543881829278488935254651794772499888371843592086011273542699036487975828878603558968895117851862927158717916372448011661029026892988276758510190737572495344922879968736647578336430183089423991259954327427499012471296972078579945859704145810892095894325426596642574860418320910992771299359331382861052097447653545070748880482097957940506599575771691921780612972109180073447567180057223145468531685883636545879505769293707271213302266469414168570531164971520052930181997415076682497128978804198912637767167871017083827512536435425311582460023852786777726538541369766913413637794923719099311435692058523628078314000506934676046399674347953256945720319641335461106299787592451192414982772648807984798946009496038057719061057286839627134665509447747851076588151202576940710825935548901084142258555351978202742404545479829749955447026285366912165595910909497253037849764627313840080378695556728318813628375612667873792220570242647461697127877715262199959357934434319280799385986364344550153367186669642419788271908263931351578975967015776059293223176161481294309887914664506151479939941179063131130599808761405769484725124521999923219051088441080815050315977458397478195391269594968504474405362300860931133723282803480151377215744065797415964131485585154262878424400134071908857294168679822904663066973456883629793473692822012902074099711552925226682960506772609113023639896064101225312327011983665718976392055867127700876416340154404523383474531343490572049970649418101907397606263062518959546358425991571453145121721184239701554293927550681124303706161789471945362965861540966739602043491709440506595902392863917287157151549828562198111325804592276303741172828530024828146753616337939126472648599026593489065092251061327969398689057477388754634396921728209231437567205583137026862438615459632936960211326780434799224669916574019448168115043554782592323463637385975180966838276189096757141311015185930898598393055961275866938095611502613909291922383404771309652211143674827543464498502611673592605588956259170566797201862849411060312202760292352063609613772569135705762166476371689701506585648703861285163000367789981414517328642925052092993128167297440977717067006828602001764828197974044166930534611148582550639417776848941188584431502834388408945191879153311088879996652104193315888467877547863058799971508736866103342822725946664306261649443938896867369799005611449748218587553256758108862328411203261374185482574912971564539969711358890212388854026482812966711941666941679443435740818348024252937872808681527703553994755931295226906306487365314378051841524462704013190236348204419873330505183580576749395921440565108979413263382188495374704141801525509684784899615588351741112407323469167361419297902446606463979074928397924057182941762146545944730456814777445371992984350714072829019138673185669388952929551914690998887573100853149902687474069849861484814484355309109430245575339065119813816357871652204465823776557757395196400475104675499819150398023012606264726672888226064549127986012328990280182228079352985618778194380433644852520485161988562458601209138528905516161267559333247383146349788607565422729407639047363403581209436165171389204654668484257583686691550004323418091186833767246029693159483494620328890030767685714939582895981339738896299665571460515729993032911939130490535679863836669656646241883520241303280643143640870410294263392297999277772481271964910118502201480599829796072875229856325714474619134402524352655350756785864734176766310779479690960201507325149354752898445555659143154571183681276694379366693826087029783914957111043113758661511132687120298781121323049841062890889656796626378314505830702164313180962392316308478159453093368496863919552239456083721203207951725242400080243118650879215812100143953088979375273549344810186369851423532030392408366425097414658540922233529764636718981230029016590265597732855746454318458422883879710801481190127284504135213606312825030100988120059109748861069717168339629531067445066309107803336774093081712502603935058407891075875633523299609536432649496976941548926116999170373570130878978978313771231928735259069487325058678345475188967156551765432038624024130574575429229752189937902712341948353855979994801399177361808198007236850794228464025724879986936874628646627466829660466869622136744725260617152376623283997621223697240152232026475753000028355034241033675470200858598837663114253959400522086668006811337306103351598916632322562567851506656169263500055822116580870806632300024140582319551419075649779788244629431403220286869505820536562957184166516089159909216466059640939598680020579772258438410930825624182232881015113772001045655962916983632813036484116407071344984892563953339292755769164367723018637969265634958520837431087820019137788013160024060362408632457346037998245898438625048941934897562114976304833867114374277209765904797076908812330819389766206322414822678527457061313945610718968550848815215526044126968200028642053725845912553105919570515583477357977321143078058461107376171746378161911375305968230972814091000376627403369999087702283953776926939466287848116705583379188981599579626567650802623422126140252702399148455292290004186549798706777047881643101744964056550102540951537270843035558982399886857179357160850500666180613459494587443164890483574381597681205422219169174743841502419182325561170515533135464444118312289492003140708058786265170610548825039905111701219606642961427108898896799436482648918191611432662445080677162486422867686623793766203385795031498606715695240143027695454502285344832966241554868937288311689778932894662361241917425523141216508332447905567034781242494180253865964417753784062120373276074210926812550643742255778134244429622191909663385847705665500053737499644852490790771903082561350586948228101112103059917693325377394738804359429107703422050138562295918268836818108865570661823800785036013869104812304135389999561199499669358007918787323011430225434071475318122954618042025958404417511061113497426014516819364673322718862868960331832918351553005982464876846672250854577505233615998191346255374378022975023878682851910836237372022921434601554200630689735794924501932295960464778433230064711177677509675444949112533724717458871797054380581325338779521519029407692077968777535055559692689115455933709895832978440309998864487327379161527161428778885504891106250096317796215069657776831913363541480076293966692511504494194377948346121084487563184739416417972577221770025492125397704453930270195810891699240059647627993906190427883969455048199948414721214927316700761623703287068903809447845670462886394364696419790250321852828885768498941832573831357194450313352881894454212809485362194352724995081319019319729726516382515535929587851736969112605177320839277569123219970783413074956185675903442702580910152680365624221981677123955846029446024663884684382635378880373241402580078672668318148298568589767634919794538648190621027028631089209935099154224666629942972849096890840904256448915989723106230292623139013988422030923880292617054733637182977416444270001180165761703053107936873919551268422692710631233187637898041291985649059433675299701174664030093902714922726012549398673533578683002580084077025534893132333237695276134626788427226464173203033388816562770365117685197525234611171228083158521738347671248208843395778999526755904524099641293168694647919412440218410626376275052423386077482174925602990901756761683069973532241808095088978580839867840934075611661914484582494284893316914568039801075207903006428674937214831294517487486872086560850081134980004185082338274760952457964913838365605396645601946941083881083617083620767570381758592579007520139265253477775784333163695994462555830759161392579874312873653761382110964822972094499046574988360024561060285449577185796534425981266667030862824899393729569804146757573696758097391738892445834319892719683380547084456867615434440004371533811286149033156771630226247403858875460852468374313438361487767076836332605818066300295859616923986427424159339734350218210319566961307531682514468299633329837899242311320149346109136822824660277687976026072725193125309643098359020236432127865555266923408243420306368325276019227932959263941929033419623717201574320781703426220908714784966223443793808107125990483583358567242589287411695787106733211264105445248970982681835739001046201528106040687164752257086698981233502968652570650820465631970538973672879034367909369777386519562826422957433709238578307161928562857559979773647310822770211843027064773829283476242954559514029499489077925074197391095694273121983794261147288616182112542436174230728434132743186398285099252740063935497549643227483943709928476532221966469759316153780791421115762269668568930627126497858353817235936125757409035792026304062498509195595724829370013357525930741374513064409608141118294773234936826916867987482119243768627061130656874757248310877161622312833006606743750795350518365374968962789999703580552429798181435648499496908278564003352477151770385620139765810518544178913572920380868078261685281586006131202603058063836096414540465048384313347613258438689887179362005804476470717575168656488990378072919284848739250343554251221150822529626200198358039115809228489672051631806422974505796286007724030805204227892206884722342163881299106865669741615934008814541868029383631021896238463233240013610566375072849977513652110578333857418017192257972808333073276703348681657043720966595493467005367327701383844695789573989571498620627489153721428807893441181984929012673552799439634531876082454334788252589641576528185114828604722789632353962634214147563912856649582189843697802072421811677615530622170044082152615363316582777447485667533787284788981852732348877152501679105573551442542576931929710507219657610319930230740337990020070653922019583847395351579525040949312543793101613118595198135016260089663265879473566337289017475375275332333214335352780841011587006972212629476556224241988681880110844852319220218735208687666812545736478157486063942806543963606613986156038734054410545921159313657751978766329435585464653118294853513340072031214192377409925729894302312080581740260092722544740897314178146724707581608102731937166815413610142034253119828158139047413000692445802272316934218906793408078849452607501364823269753815307246773985308860655657570809245160462679603664336893359407755952888214062657899678495649011728314110314623747229550568365485566614544442556088040704118182588093908153042758983995477146934733261881594696999005307490958098644176142730759316303846417059784286885991179166893152943636250933891491767842030774321622605354103850223057134800900620020164357439235895765432202042888882434161585855344928998896214414516021463804811164238065176118438304679723491796757859557415937772503197125136095858045363324755620127024834616745170189757203736645329684691722095116788973153182149262962534639251873225470234256199491427186959287038364225856562679008176496443089940257729962447476785556794745196991649256676358508370229618356126320155233528288049308638995552131610763024762528374969849279668062400967900642251887832611630162973845172778805630452391287660468869048917968432188935418155837922002574092975458387324567049596186589304826696031261649598336341904370076192291826962095764535532922472024778303868736485644596364166950613915425101606404081897695358204402816977976584346115887928122156248155702264908188583521611319960471541093049920030512221074166143593385372049538033893197632703247842100636153687249087320459400652533600415108385223396188664632107595810912764539142247715355408377119418070705210307940578845121815448994748058499688112100086212839990985541590664939240967555355673488946547884346046074606417779092644356549688068874587605612812166352679030646589528681599967497622503098864568394775333908551953510888310258575666879421689967549702641794982521935505245296802993121385860984174505397442020134842066569800930927441905748855772681497889811367916076688752545043487486054329454338999949541343494068499653652986245919851853119360259845714104636355064191773704524570212949958827640964625606766425030414745375110251008972416297990156461127971823704696354121937164414618334485031288189450771989561945825633996130653062474522955753204575399090086767008751625259313114770121667350836577460089558747989098382745191621004397891566864648800885329626850705030493056969013260890476400456384961065114851968308805550112136033298543848738405986286935182690580073515358177708787486130853132849048962421745309713707988413898954541672265832424654823885489950395550612480717492837867361741011237073272108448418719067028053182980513283612695584825706099015966174033097442432386069294024110269525453951699717264196883821033155547776108310438516085215351988514807451893542916209729467255958082701529321866822727343142130923168938168436740405727869096496862840955954373673254469881312383423282550006870414928420326799855912062505231673615608883795368134213536310988746074443354634166570742676959746418861006519784244131315566696787849181156892885691361269111337026031810170860477398810774124242931077108002051526202940160937475360197969046712304354595542098609443267856074821994773772354667360182310602780915253525937904025363962376942705763344691326468547617875834778592251846838715563771990889711373822706459503274559841836840444345429587176114577265429220043458579651796613811087640096784258841346617311271174859039388613018350616650469493663616274229382204492112142031066011857964069168275112186777770662413075928243106952291322268645426741321425177973527824012036057544891982119840477874331647708878355220382046838939672043814165055105045347993073301853505886911729762339920190886985615741423779456369862011656641396799352112902563304199986350766705385400558080682085623860025236507518296142894732552928831490340458950524368406941376943814889889471640439376353726129374621261805898058640486881848775943694993148106418434410472118828029937869274729669972748764550618611899753212269001205744090251914478312314356053289413296907193628732742948043872339140686866040566781642592443672306408331085389980489977602581204018558762748638074415164062393583383212533556183023550517549247716999278597610316510656758155755307882082557387882046616018430588077760779227607083799994069963829880881556753187993138195619046588828212832714370643340517739803247097355489893903119878936525377192612785989752737248034196704304903818098519390142573720500689489943548469231892045651923622410702414296307603683477283589561845389626871761092193586218367240800711158679276624423286275769758185847530094159583689666760773634485686515743694887777013927043727509989148299677542845701407281937082330235866093030414399609837287556679514917532250825511946977733894750341825451057492998524046376611439704175396005111730979886826922209772347752503015578677185712555743368539593226617504078028713834740392783566913403640273051579297381626917270607839885989162899789937442747745097829707463725403689536659819354046242762222277791210732015600906117594879297900289709712273310303137480260233379441537591636218037109859199496092413920855874644989547287715697027019357454438383847728794463414032549247959649937953478565919010880984085696750810779580069701230830771205226409406213058327111890553495486790125284424854386449641655322268456036117744240317568049836286305663382777301999629451965814814158049819514368143280565504728584133184253447388890838281445134143881431790980426882355852969605758472252582044357699034681219392654096468891862879254062669341404293425469732362855084099976699474857390588925606686949928622802394879373403661296787588705527962705334270554137087843147319416487867741158886217727124435252313963987410947528386479203221251684227405314128944849909274781308280715849916533717653318877974799072133824146303656493136200411793755970268282001896702884269541721092188010663050020911912317794902924070534168828845177635351959055198417616476195130012971488069883636952812317265445433637036684015444626425462168715719436993242724951202367158510375682659580253121116131814030618320175315087652046760537965264822014516492197173481518846862931646427158964606892151221815064414612756167884932852555379689147954369132960415348641612044532271938718006486174887859604795360539611968225155575169228716660839592530011025693276071151321514095904999891818223282768580553912190132730806105372696622384954708518841533399529833144337344504405043219013224873472465208104447378316030257131981078851169607437494035437859610070568104417574303255462018440987512564736421929351888104911194305294393547218081252817940384113884340408924762434012820531638243439129744299328301637898163177457600401725863576758176511367664128293768759521759389384069246382584384604114257213701739114061065896825939677217196838198727240030622607764221926210830820034082869654736769757095969843861957285354785427337907746020677918949773898316381432020624876489548221484502653121567481145980767351379048709570221474707793821345958212815650735509099977843927117561120555606337822000313925853518278548041398613791013785231399106806156017075519444494475114124814534205319353446635032418693868085042599601743406790343905604453966838088772042681261811303943695110647040502067359250053803505912135550342778697031445172262952811428305752126105874050100777268784486781952488019512135207532616112321456916676068237470459297373194734113617124192738573174020375494614869459923400276245578219920185474156218930138178454510839870337761175214807343833340250263704407991409278583576558410741685819327116281030181026296331837441672988124061323954614846201782014462413685112315439653445624796695064440522687567066088604337486934716299295870651085906420380165909654884795896536471750122717179446323285460711359915086979873675226064338331723580069419218678160065129999927870603356105069947093969876064244766709973147406820371815174638806438566790465489486757400867105201997837481745841160184442762840842616443253471410144600133315104100549760919174739041097202332977784240604916181115699778102250369345639419415098481743728427241577742384867991885821236977182158210484975154947834482562138193018176346582656381912586794633877121697374719488952253099055652804453796907101757167400519903233364131377333429606668019585582939957695422471114477778199783094457953025198780785373031838539288267493629686953196218033039767114156194770453890390473899515495697259641897959422388548425305482908106782513691503366464679288669478761648045664514474740671312227785677941042551354036054633974099165565325991797901613285203505666656144880138472292370266215046953898209454947877600714120447249017650540168058115032472168358255194188812212506061403177295524482930319289396269037302493716138177019897980245761617821772233953772377756500643409808170210176472056837921507457932159758699843464454324404756823011082554294349826728514014452032004042936276861089303009594421198469185867640685300211059316824178596810476690568570940383079813750086291805655845343770760754209794195366230211904932354240297769652038633891423486845838179118025548674951018265122866972338064763955667834950647666921855855729451497481363749187694845116102586250527774266577487427583044280330883796082944926673605545477360952244772773751144238260085215020512043005450569872346009314842749815315287542117034168001539475293544893409210717390752346466546500450172316689278365052353762881439036304201164705119404045425760647016196177719317529477573595266134797168438847460394361862026721933231380119079373094392150972807105036823062703493783092037519594860684413275426343068899054526849390361918576586343591145425099287488819972233305521847094036498292773854842228227924163312845775674382988188066372684147252391150350197470067331685760940998436545926886760317293723207033536301837401030950321340096127531948787088468592627846173978825659870458762615811651227462998762189918669636386938871491386589825500617388291392580285886813255311565649412986370997131331195798498271462715528938107653637397034807888444053144076189871092385612475998849700992464372045006047264594260633286293348841712360091923676346025932076267772423092967206609331551493772954998452104212411740048908124354483544339408024597732444450664333099253345710291456510659233996130512487287766203921610000464217839643130224353512236450520658696121893082215442966292319675953022853614578400148776201010326419980626139942241959037704403777280704583221713103826126352337883267629876077487526390078451273378087597745640791899066439151156032786074349977517812312333269969923751558991714069699199752173580354721929421081760897335969333024234826939393010169774839949198346339413911825959124019308804863254949692103658657983968855149289996538511604342874475295105197256343269680445554831880808919901269817112917075778831665361425298270780723552056788708045292828826658844134845744672040648332059017014042185328848384999321973142258831116307485616711399624351338541315348577534170873083460473109697831810961823419832224436770029267123647531581302872614703390433785863293505684406156185855742506847297405833885926023714952665376164497102229982519714564612937718543011588368346480093380504939076791748316912470166742187503111380793734518964983891251456687058367564515130825335802417810886755061433430768831958746541225505514759229703390824045710266768821378481900315466933259329078400490422621643054858919813229973023800317421841080428556589899170765015401011206250944024087131637442219161945723064436448080862544345062661033245927018252161081809187057427503806206920853488021260533710794173405139450863809023735180188934809525561503002973610021314685087225748493013969043897226499314165292708711478791615226318958399821803669124612434669234217614469677177506193808074977322794675258330671662449865393948684595947980559956131281294308251569322164018435186123308865908696706591261838625525545786812934991844255196446988589843855866949572834224758996567939083773856857308097600338384893342517420654096994122983232674222208321124462278750197235596397122202435326095878850997570093749549241147010022488228910389211498206009859188467398976590755935062294325449775631362174257771989161364086018460737218524444875702262663881644888350475313004160618577653744190356112319344429761446530371916977301673708229420823147733084125449174447564765698842898265085717851384383343940967428314750590150211730758035726937366339054351166206104468088503063020196962746526657504223609753281992012185179970032207666460054553417551700592038303736485551602629020559496150470693111422022190454155256594470048633932506770887237755672164010395404499073835012492780944012809633749466180635018969030715741881502494650686075014858800647239361850856689101477930644000312934768125288501947607151470451986163302355461480958287117468120623140110854714936560487511242329414135757126976517485745871193062096487669751713916102907955244106686159425043110412776030312283751458517095131266460559102632164482653189518812610520044811455783202102471963790739667878797028072482704142043673599376858200021626892131117586348891442464261130432165365631382170090160340030706742250696900017994877743057479413636816786563414310563626370334745864689823487303435951963951115291297426853390061030927807546849270726002117449646825794309097300178556151690205594530672745466762138566351948809852377930209269186574259366637043350582460811055829368318649658614331126035485100072027818748422913971879343179946184585964788196015887583102899527797199925874184558150605415579352179055429716881642769904523004251579663063118299486978383418447540689999693735800437491465871934353584294242154582498027840719646980363547079130404751368473350333726019306061762519892719448561628757661434839441921219310089007267469999837702661884329700524170265636812201121698911367386531335864152270299752319532748514256819667802415610962960371834010261167826933371170658992132933887730518102485190815333151447962865152913014724936363495956119139877859904568761430753735872241786152659038955835078379118825717624133090781241462380983137470393428183957915661320946813496432316343829936144420437022005009994599077020088386011919062872097598233990889704086931638165490170042779883648986700908342302764982119101417237674118968566436722495380819929181624082221054674450399119659692555361015967505478595049374555296550129978526576470820834632356121234781011616605707079097443316138496261768353137898042262203788458561431448689149996038263706194232625865290514346509430666321974274451425563867308273375817128553074432281670707537395144769021220181317778350464657953230935880143308312503319277583030657945318923601226649076284206181302039661390109039965638234294437500102473883925818761250731177169943867352276072972461385692519218030520049074251732278137645378669488159244018656848027601733664617156306688846633156051518596996008453932985753452182396484775143600086820504061188455767939755087574876423154959633658240759542074886703713096035559981019680886482237122169234347798252016724359697255230837309964654529232944120941659112055019909411177173996423163885479462082290974841337552395442245320821521514956215999666439654877632911022381468707928137871982415429663858447020204310819319688694540778573927176515640567893215237833039328648697087581999718553088711367669518856757343746262607405243450080725213588665794479700992683490308488161101462049998241731756691760956776928433344328519803709354752055911173480499151145649410269949363141331523180981261093750399257759921843176077460060294772284284634185744554301554494139873150988346321832929662608573392868345810255544840477928104015920724295721853609029958644283705807008924160344473070688756010552424884103909547329268496119871988117635896334982590562384315266767668039554350328900230926619312626589643057709991496982955360519249825857791016538956875846556835140210348597013673439453472394525990489741514315750328226262522672314399973116827204933232766633890765074072131435025677192161371093358221446194171258982756235755397362378584647321433845260280852239841394591958712472734738129618841260116529183859706045736274584885652820503915872544627001286856775853127425374976914914527001113533121538080861950768340588496263940613250266564516052348572821553428767032756059575639943026098882076659784918962204273418503932651567293215993190336576452029091253459652664055904212517787903151795195183832460097617268996583160990079193183143186862536358520510417662101403741799669789438995268998085289277429903190714797071714038578265903893827078383178942210247980317347102780864588641806564619015347643539946836161164501993350053421222023308730913978338849382912322252756088757309202762559826328366154254273240149188607865358442296416522447673468910953724795469215306377990268869018400011155244247361912930464458537864486010062438870445554983802818521581829729081213604301456101653920380332403072355312519693578417916941270973112050345445323621456643014257708231626879439104934184911264549213918356480269350384555059013034915045771760601548853668503037797129827689686786906729293053065726698073614611046557965956017669947515964214061180317691771101214866985222437193258185359962546067065909010957865734666409390421036719966780697192350658843913018063119600635833962703680007563415189808627544015752514415882435213543911423112176584231840624828001872644819663160366094633450027364583319878406690542075236294888860995586047986925771692710563240264672708434821343100027701894578483882471866690128473670804423980330129690105577222646390419528060407098318580107254463114869895090929857898724311193778651290607958288673902257858189057108074066124134758158730896975255128019997915927096960327565497562145506057965737011111964330497980329899092370794075168481905990869877081591755694755042047626306147241498270754142166460827651730285153942836413651482244590999249085326586096742293067610115283695227444547734005007538473141584803538360478513121932903060559758030583890929245735220084330392352309589686998080671387612307158626916674095547411436469481314941326836385774247332480281079241276994308652266495180010295710309262825957025909585562901978192243135334722562847709596023062406403810751507334786024727311317777403261361644477936157423080077052139974676930642192929386664449224499929587800936967543833679697750780089343101376558643660245688657824940375039239417656675757424885141705052904039754168765907690631031476670985634495715835309826466197060751499601978219434902702211885467639296496668040418586626693777985913763346423610207942245709583036324797339715261598827673425027211930560125353323960401763085660351932251423781160365714763008498485913822566150194334697232838431022258403555839737749689395697048859366458585796568683193586438870616608974799983869635406745463439523157775136695414395597823219620420229646586444452211408667355408729356121101649995185329527833340825320158243373136258174293148659949342880888505496836929570567781176656995840491572527091353855739722808380664704504732920217940667931224767107863487034121674166461193734458918206943399558400133922064574969060066378456502147096258134596189823654171203008061092774472979780108882533613779479031775874003134274387858047371290844193550378610688841215438394383426744447086700737299559499563658097958537900104493370465505609889521496552409736577572050744222665998272814098479986996377766296181725108781641350939861240226824979924203593366509571452412229194424742325308026704731545093866297263834783544188475472856221152312279213474676226047014466190600880032821763275831929549256803122284808695344326221849063409294795100059145874659909326109210400833384087639563875444589165366889147882648869377948056856881650667651177747153955301660139459699724757883918487986615830607805388418099621324058101341291742669819019563267557460829387322911755780831230415808975220952543492744530436548114251457968379858778563289218238483537010657816796043066302453577138962062917946938169184335562929733288678192294963071282004368724566023367000851014218117499528981305301967587742696481195375881676568261474268340463963775618455707113077792509183183621216341003885842363465549462537305366989983702762693429358743325260502912322916851217891585369126447417272247995379506817560071446370917261855776885689824028981966075812656324589757205542681581827104537843058282391239325136651886273796475984869371629029490688394984566217419619080244073027735113175285215355549542913860049428539043448910286977642202168114575231813850813301050187163689004440397360967762417617246001764106351854621006556243828666922083171010230764469753636221412575198335190356356496857450434519192678352047156544134182848160984600358425520891501843287903744904667165354336019760403486423274486476785739647712469487395556436524715820115023146631538827163999222023992155229773505204233029126970164246964700570228023752561259680810716871804529499954456033713670655762597704888947979471922722292314878347594255794437498287741368126971886857905176703814492613086602123774315541200338821280553522245905697454142857604142287218852143899664671658708436741726098342209530458668532964454253530860189634288209380264679033164218830461278727801047403086594585306815659452219394694869164897077318381386728103726457972087494193443430458497959966675089591722771174963534828589316764656828114231455628585150136680961515019969034963228636322384055385566554127498168957691189338107610067660019892711296747853071188859939777384906293214327722933002748702792721966243117009593215967972962273494312984609856191126671732967506506843196534961563738022405457445464614475895535188379012007146766614370473171184407132716592111671583138792560929423964211896892386667684658378519671582818358466273848021164613592561952534915525825549418293265798537925002054123077706927487286476445535591687837322991589514255353915984463969727359814404558309305344110500080086540937373524848035962338605821067081548146936721563502056122109894644169996519213738565071832189907223776091193107947045178613219156406050057304435106276490583248700975014395433908693309135664107146209217216766725078983357394178532970278944754486055327452183980168864481661929146358945979060280207738927209691863089024469313472533373482093011558931372235144421940806870593643221462652960888454166758881796324382097996575371429006316263112794096425134472524475360440673904505923608932023601773528582984295117924059579606160631445693007445895518038730211260241420605563353066646429824033451838347091239070970047844643500527921630136032756004693088678293308482036111526486383460002900175897837240541263801207569388702884670707537685310843740153905997218762685238718494639739904696465239630532503428359663934745303405709051249144268679680606117433115207057016852361189368744245572790083453160861837754646639587085593580174878916875705021315684532263894191377332321089016056940128992776148414365472257560252693182254476077314735268945562178095588493084172647441185757856266186089167644374116538260350245496677047937137699728495328165622333525864824287743544791738848550327383673023467695726151291762908168102127151516844427055217381724891215700726769028246393414473178996957973659961778804627068821157911216054678959812140254987090946253737616557703402682684825857864921244204309409818058910587678902528394359995393722787394863222379245158388766221096080867269416480736735327517969993707976249798155428199475287140796263095285179410607443553010806032063582119716276323323406577840874331270694788550724098692833718205055839760245564767464528662145920467860292006291358703375852334424555798325489113596494295468218243018877003846374681222567044196791694288429225245382754566282501143766328707000568453975273103014334655851132735257735973253317513376606453023661756718520164868112022156842384407951650404008005445952865684191535470377191491301049773269723288271526965729548184095438288724227464870474574282546667321206106378643844033226964723305330743098835762183541873765158660179322865778311682756920554959269449786583575124117041152189038445254429812630568386200708129279440392145564337947704031738060459822489656710953420741950181478923118290091363428444498607600077718265166955500420955647328233849636062285464100712230084807667571217541082271450006570364706537129870285128899482095691696749838838526676946724837537556359248749261808666472755038637182752033724844951135200108517162161591360441302363396154244209112981737007529707609594947907625266857803763581431773273686508547380968426454788687136867418645251183945933332988283692089979401618096060365861492900919235283396392532714433970760180822709449148872014755322541023679275687439923565972237269801997186173240077721088674681053928164141472271493436260924488833926098733483136843682780614459991841346272650912739802842687797248212281568662276992197858759384849082870633228918242520415958124747925780850372170059762018295182537643327100025251586434992513545983345024819378419468790129254123375375424489831099705319618852917051730813041992581008478202979613299253869453931484647435039081166528956917382851292079092084093022897280050240053916625743736662666456833702568428910628527776787127364540173224954365601182899208452235054998688947602630013283917128789354238338042393434416598712396400330192066929559298380234542804587688034146657063338426860623829613948922234312918071440149497358860458801140149453017576147386185768521906283673866437303091768747887739166128241207027021989167288251321098255833128901890964631781610521123290680345994117212834338068963091422448419380704423469133535545037339508844977840957212932790501348612587267431309487328345822922884892981852813777431887196058514206858025007669182027242197729371836442630627021646644093914734525374638144412350929254146255130220100033868222888528961530449192010676756946944651961242175671706231029356358599065173447160092396177462885975889618088800111242719421906779075684326916069651331535131831130804391992838315424107308174891085088954891353333657743619495898354311723924779728988596380786675053638237640608827281077023043905218470789011744825491145458803117098195090584546001173459738625854075553239143995308574776648933601620351276471874304214054465058024060891924721819309872486219648987161916759515827461439612979419780422664127932996496691364627092986420609842849068885857562108593430035707509000201279087810108525921900723407967428392180753418698525464944409619949278021660486205337327963951861973137452675339767572281526556175872550918215972942993122210987168887538800215013503259430588474014842753946696709663544231747640498106063888959116355829141121673229104769593642217005853897812860408964144936520648980758033452370506553826891206034284519609054170838114073918845426685512117413501148149246211645841939362108972026349184943277061117168443300354823013130329395190550217835939845711364681173414774962954405916979033527648919892079413900804188730130822234250846619565208632969978956624719952331276162305466555059599961581387261603762119190147456994428033341747196943788084839505762882203552287419262979790821697566108880177246720088433597360113972613322982978837813705155830668865707812917746355956602423746195031453755839013649718975580284743299502714797173665360467475448011977015178728208807636433974299335396329057148064787489338798879963274306281099369114939819838966297379294833315910589593625272771668786044963501392045219371964714886641447921431472624484689234382653478173268055506466614563063677928047974430042864381134523393850751972865914215473686022117490355469175336533547338685196937142042931225335109652722022803052329379573719719570384245695262163984894833273310666708577460495581076965339816364947784981502255692922631583628494344678814808727053543486367094512856213451069820025637387849049536806438538245674718787107009677133775865228034020206105747935672409465064619714005028976123909536171517451513970293388289681486386573633230474997249292954350181058418055412722298994802062135792014539384774708170834044320209260147848610621652511448762164424060416272122624439732029859983509414805001536852652426678667742695443785670238622003117491793786771431878836940795361373786479610934263959234152575006096984009574043027575531889811482939418929332963924560479550442550524620577153565844302257645099336755965206660806485286552240989802526917681114255214201269504541526234994837899198278356670713979073801173003613171120383245509077718735778174415577674522935755197802609705803700564527460751906506018694153570123318916967472411955130118532093664457533943201436423116973994733501942162080183040128323830065128280944627321798931335687609952283588567453282400560072943328774836581055360426098497037680845642780969761984429972190372217791511089641531669942004276068549986106075008858255487340332571561945102089731494269810369569902143979491074974523927160683013561864354678856752474958385278295485761518834007578614266461553729940815882951041302649635258468657171864190570909622976792821284982093347868279639882649907503435313729636509992842436474539321886469919584969524371510773016093837170199656700473485856040044224353282449544612303863293052668553540783434257046792812539697072992963138395942556722460870137312931134905757329578451104567798165395236343044734757002228280130482112330473940392369128973735150962023075018743348059985036209051665597043303570745353709915692175449916956434801444811275674130344723861872577890293852624036560794372838077705369539194425053303653489469107159582282365183369635611059092385972564766122447343873148540847199273501873048596496004324667216421678024983676769502604209540518718912034490653174962523818351274483687593683798991829341518648993987509793792808314017454896976928479091041707956280372111989226460992820735708510171799783574274607191214558002843129194436176559206615249073515974071476865369435873293597081120980645461054928667894003604076194783517490588190257208738623007196349263258310633744331706672167384227270824631035379673631535263533444015732921180856006673574060072697098994113749036370532937449528776342339646964560746990036427868068968366414427512374310152698677376046479282236946733795772247787042535172215343469852607971443304332901203780016108882088403107660271097913723899084583550488755151006718707063646325033233384643483743370286345330709853406746224999343467176207561921622605057752546341197068931336082804837273972046626227640341301267199122029615500148288704990934779686952003054271892852379545202970999788869725340450437449015660841819636200426482701916389116131173161544862885778143060041602255323366698594194706581775238902912525299980002108281073137786415463236919205833270112378032276565616574444049927746516328519599423520939136473336183461756363345345212286639940131752510885799317199273422476101184473990511147734430664460567834393317127582337087038733685775863616481133153636326584985643647456739309331741406216384835168612985958790110023866300989551700076232217249172398671120424228279379967875853456846512710999421471217287890774284413605979995803004229967926736546465117918209542732717478240166214052977920159704147082710750289404901890863580395292377559474756795809893793920479702451495810403551723374272642776181855878571113473338561982988034490467338767469834273025964929131572246633948633416935443977592498443517129699738660259774822913458069650814521445443905975311096963821502760459754279968287270922108484882979561949018520693886353176859696606589448058278185620332716242010237667308376845008597605188348656276113253099110736220153261889407154744946336577124687294469232619871857775989712922097910117357970614619706620477638573997675735293114420265186976666785213440222332152734000497696567675962518684970626850323931566393207659386843593333586998275460657617286921689834638190557648146314065247719124587769299747848987436659689003134979654782401138823309489647105645299515982054768566272450617688293893924551393803913101250064044677732721239377827028722769998658046356048345528617884174971299358258733788100296823384597866776987785992925356879997513197010669976030221804945183597290579316105056628541726832630076956872226704753078942738014951036215815719028380151958662226678255217092932733505092956280839245089921934752460815518048638573176867880600365896999268500465220026967881848938472841301280121250701610427817299753899343527410806819969807910785360497632484715545563952065391983547613263945091936156076066871054270010158292199190108066960203930244866659971630508652250157624360971939393511518161717313109192570357600271021566302219979012026477383878440657861645894422603187218358907546137387815971040161535620132225426158753303573249766707455972012655744122730880470787047038792638620280050461148325207580065035756164187252655023359467751836546111264678587116185874402774323996346716863284750695612914809300368029641273416823643415252289087613316655740725392488647196951684185805893084338912268052699098529836600314944977145278245682319038702841381678833186759928916197005849634411522403981943042517119177494526252849360871586388426386001645674075060558500079592357432183106349913423269083149041068764075537521474194232017957118684007425905278341767617584683978950422647661158262152414801692348247410482334290512882053030765243715613166166939422191621341687959957716361362454161338179602243196058530411149627086464150826226126588925266735150582845894612624464146009536824044900177417636618680478290220910210866362439093736064028589076652896072132129205255274042807642313117350079648709199739980822801379046264433746007627593262178801996754870100005944944389971923287611394571179135436903773971782131836110504924021854053105657442437345603310557155628255447720985652398285728954592357989568694419628931115243220373981703947619015645043184972607264958682725027281923813139067600932283543378539934011257793355855695809297149330206691404372444834894820240463223891563502805178990429327467596211091779843303950103249067890621046992673535801351696840684954400190620279267390342254215895931603617375009242509433329129549152493304445818218780205664018218088412020912760576385321342865470392300004171521004118947191051385258196369121962182027969370831816522137423778708944719539186163597320538759878365231319749447343744967270932565223928818866836106678382285785127223666512712267826416284787884556596444744792712819458047617931367955490895039015604211849110721675616199545792710388796606969339659710122041731049169454646351179473528543197580212714852256386426228777697746329612006980361201115627325419045504828471704558521587763561736528196684284645688644292593932924333092801776405279234151758834291525631295878118979105580584607493539628900804415052754858862968737528166855934538376358473728410211223271749956023405640210120195667541050091036177654823624304860905803833871152212793812423486349632298240019812585334900192058065173140485021371241858902943285263785451516898994861093253283741747326027503374247250739064086124452750533025904024779159675497337399344161499523047561822753010306367502712985033563696548614666917745994878342283978091215021566438534002612832911267828549688211890463038840822513823781160392923257366707174139109665296160129178164881108556854207089799571331674856388959885060689736891830261923128150100246757300432268758415382427260043289306104462422644439745719595158469217558998153320369603645481855032516413620667557984744312774001114807235850373863435295996324981010125875849501729972068748348285016905896622133518230501089052228127935730916921362013423196802046027104815812743694104239001691098588921988040828758607927419473852972487032952535072963898211046570956656774523232891751648036861980962680857724444965009547940776292905545343594545410150695341565624580657515199314165831004963352261135294952388520804099271408806609078820560826937489795862350733271234705399571864324998095927441071341270076523748564395398910101581862061711766702942044399042111479946138910121911869117384640058008212933250532035452207847035849908761894842088825948724380158992186928275701542482045905053225440634366183380751499316892801057854010398756981639132426697506587518239112966687695649763789175722848326037329953354194722707771973892772871378957687365535801960856876374959080102929581954708334575085897637650430154035970964740726654035220762498315265544213492080380515240129021621892308587080051537829694254077672111354885043759614766205109175470256967652467926262863683067046576153121833739414249634468241565184500804388442475899236805037378318776587756243076679657169855203947196645368756563530889229511727216774071509515245118147490435081134888339624095908375585239119319528477294257444800746472808734266472918462851142118058269123556676232173957777174807317129203907296891919165305067583964060280189071300126603349158197361418182199858663706527002571605014826027126660328334239183428500395254012620655555881204609190546589383143066697560057580415710256304462462220726834405675182957330965995423424790756245732215804252542191379555947708918177345380809135051696865002137756680916171939252237893340912075666071364359162364082589343158648938299634592874741268881868889215117115538932092800077781480644155222998896711917660452614287513591408616319465839096175407398653766402448323948765487690525671658161811866512513103964871673823194745705765422535479471930415984652872591600797896047897096990982378165765052498500790898427817447674980780122981348070043456266271016745451106414486837383920009039493981166055892607392619477418432777145211088336713414133501285456922187797131102327302314931118012679184942825319538262459117044084319680953057725360303394677312807984798217980518189468307329009798450463222951557006066157220651583299157885353939151453153755695441999189718777716644707532859215537806830697632338926326797633845349916983563154471961011107462365952930217593084326140456498655136694172166395486865771024037767765444531639623127139364381042412633904839482826970750967329374874756747600274974143790362908174596012293797543926904384452072828802430002234162194791396791872786848436274213033833156111267264680785850829583286318269824648354488393740445181114093867010846269111270655866788085195670719731776253941693387792041387772882997721484496306772374582182885677878702427979360277373473162089618234727151529799233936039889138076736168255652109268397529954583423631266930630395569599383542300871250875753875056021387184365708927768267686302704627855023169009600898903194465107316334699270750054578308403673338392235672445696258378023658388601447517023735913565458544748495618081136317780134553898488506211510131366978479542658739986717648051003853915353114237868293546027995726920649134120848053743530887559049800103586050361406011451336413900209613092325236956093835643870508906976614623119149916241724059089071209102438491845480525641390798227526490368299723902600518754597874746055488490575025182928056815749863874128211944373858874471358049014802174768216318192014064707269865805704035563151295497967154061327584086974117997474328038481379797280760888143745978487041510328451895160428191827499871431766736843362520190162210461958427581098096297019831007659792394802791840736224421365670513114021168482215276626408201214909379227332395417587129686225497036937130070745167425629415229393824789029612219798864271555579790981914258716697555917479855382387389570340682355180258587946160647971139709298415329742255016048146980061413800371094488817265647319335545574502945873973706374381923699743289293663140891644247346860361678523693583288979099564279993357799059116615549892491318415036990671438311448160471101012152763695356184420245483730413764648211282884665172499405385468817244569542640246611440626899180946188044813420191371455531044210298933552791908333940428628817768946778530703412171152228839701044062604193363134814850648455189763283408536992499989277914710679793278647178757532757936205879566364313656282707501452458634073469527005407523941089657034427995794034504818706335539388532810024646909038559093720517445953071444381259390726182477733499258657489880650103743816202615985184868031338359123560710126331164250237419721153398245973441772580669947687282639253028203455331383299948107680277881839083337314380395742442392167879239904125064323694833287522148698574498019012948381113010245687215737933194269115138781541169899356596244351836320231299697480702331527092112007889457273132239422451382989518004664948108207748952394393572978018137698350787131381170140225491637667111374540251466066013997317344783566434810403137330739299194818894888495868583330520601418486801719462415707177278376875446414375163144667562172082410011435030555957807295404061194450103154451392662203647115117928553230844272517271225507570491072340171319650696419302419112058877560122409744629025042716039494398587793342374363612268569306593071466502038524848170493266449258319950565920182265848471678861934522114727584112921900519842370585219469845434162318771408214305297091871083793305507099562109110467511801767404515241492069461062118056801285058820852603910182533068421720655102337890903866035853276758416553192235214469650713164083673436081172365865928189155197668668812682176777727727209162743938128788021639808665711622595859720702932729979846000257814515854271577542274908785016305211293518090485542361918246653641497043798669111411145982343403392955939047413901938609846140047911573242493430269684046769806103129363174473372459349297600226628039972204885284409921715163513022152523073751042976695272572579885764472501744121998976884226647552609231949664198540487638907684585201291219683646104385135490049542629162698389618188387304282041805844360326697960095333521029168460960903939525025296390325378849885795274270030058852859110401639644926143709465212963420919252692929070863390776574791821947868760435827768169627256363272722942845642270256049731459455135576062120323213472193474716929095981513546760356967620606921675481362864599564087521013712018145590530469645609847252446996223644794488438006630381158898972259636731541411083481010289397675251476662928300875711445643380431147138065041027806652825277255468042135081459026387818704581484357339576538466518929114766335689127072208265129477249021162258089701541708838800863962643832584474440328706055469604829701847624477833088001836352065058879021604739412973726578995799140509156526322388022158000843397940190151755577889204924422133860974627565703412156262931253847514831135346960167832553270152797938678645185553943337881860597032844341263777863224916000991837041814713088755579865044905236790962265531167497153122054166604075079066710825802932024108366514349727267789299149203105648426976436377913192355674220935192213539418185534564305945592932400131553698623313084642218385961970459844841115239360113615314305525688556479706561221473968640546437974404897857113919547875369243896683773432728982172303945993669124611636834606163878590848427482545906498848301751362629036098084035579158548532706037265303572739648028953270001705750975807775122043700805661779876022676486339718359404847248174324474370322558132843592197969861479477359407998611207029346683468335341158517798864118995163539774294749092023499903526273307135148241531694811577551635518530252656243850602944859103630776314093838820639105794438124471649382912368370171419684497316110709626223637113801580196998343349932637241220420925106439632509489001988046848649343030050739928655716806038678877686099765819795011362404527465981319097245432074188589505693231125141786937811014628194220057491720984344741812908917765692861640257570596948433117936162825744538497140010715329383570025499826493490801549812767810808508076627560054368772556613612161831255305154803678838952670101554543739472738209836964592491756486378996638557662323144858285870104351917557371534870137013150138392282464088601785479818057951133050778416149914537230504483585573699568332494378837118993329488324644948973230257468453379659802675661605564899226345343420587768846806678966653993547908768426717469457679938666810210491107821448047709367619933835544010775516718068221509399672609884601589224926259586237801394247260450699871157986206869519255142990382429307503498245377308249646235545513903401806546738159900809809188059989785190893882279970071787958892213952220423288021047138034647787043532215121581091276496893675828136488886482133755276553231463488868122205477250508185751271643008746398995216540647881836456319944744759517058272585792480483918064090122315871395127443316896429044242725209088157407723206063232603726953421893336344751641472500606673616090547601470072790900878395610178039413876726086794344142902207731013884869049311930452231916056325508259764667616599743929305112170429968179606700957378507646508212723736441946299428173693518155188065695350872746999336430560305184839821630122501492494103307943992037659487601028123992296309912976497803570948257528482918196987614943230553207079213825078525850917574370683565729125653128158846626535914092655040525189028288531282391418620686729927020456835365155980598917095674251448473801543766763376078194538997787600726990617303841649817863763715016025619421613614851921056995042021890140710518784354296894191495400907997518694246490159574963385913616169779003995848315112571099031150356956445010671553549149799520185363793971139965017929743960253801639801533881221205848360840487561735801754465217559937530497893344122953979466182660027971042446755309022267766038726018250323824706493202325826739999690992797129260209503732109580813166961826275113495464904431884416433334649368161026764032429054863169997661811020292039618169758106644834331182678891325184252157151130627678288441427533790899135371654420845823048809350808211596739446882789876356361912431900698344098737247866460306576696361058959156043745562788457733333982572231763797827939326206073743646896268380332237045979663207842867293213661577833497970088784645249728868966907442184765411398351938346132969812482237926506869359934111941915796481588737659271329765641809542009257312245871594793795962076128226566009479716391817909753627624552970017154673655418203117350092622831517345963733695080632053678785813464858612217733381933943256218154838249882738127031489762441387987425156516976302564254459586275033567168621675743177257536115783927076034165498262077489451618055599319563077488945101585344523520366872785067790381516952394824144046189243535585583433426955867048738480535609882549547086171425276774009191023418067668122103836201887595232709768666194354996588649722574962592468820730862307160612340031773133991921165183843265371467156982849501534336427922810187845951955826370774848178909929687348823417511619810172361369306905671046964374425111724434717236683749580886679298035889632590766672409841805712042217803994617082496172948190815480720973777283902693864998988179301149424761222911977238104418637829238816252365526050011914030595168506068901954348251603829699554313134926459369361698805429827639045519117849936689628842082669865522545485069376805935252079221989062401844152063008284394976812185565262816249783356303787578712743841677053099687442734438193862784028542599702962797598687080754563631469391561156170608769541724496004353329399174882823280417201809576592720746512161813280490276018310488908196770853732247148273552160907849461640128746922942850715769507920776799189842985150326257543065441874660926041105539132238959379413151116035849307198113268509991861048326223555164865547032651857778263817197131305267994725026421442856952350929667766314107806990663163478135230974532724889688963648025745195279075837843788081592551703999706468875795064925835869415787507503729938746710333337224994520214586766985098625513807351685533641273783401680738391181158541029505080569605663791626744196882875684681367583059837188854250641468803695128167677573135215034957878242101292378099241474515979513263318749837319391911120571560871584539442997904300522905848810660449484950047291447626214072867388848293836669186448817702177922959916875451990253601872291116997802549792132575310337222768061760671619049844360612931532437606195543894186021151144561343994771125485890774009708895100353373947457207604401272607488778118298660219659742181796170179262372119531580791779252120821025547987355999113194768045006338644026477931321989912549628760282564517532037031535445162434471366150675332208514247369379705456285520490651759506990048822213861795154601830655339519637782251578463990440435618224819789929922399857942958236887601837921123066942065106872615234620915605018872725154077474111560461054091472106385532700884387068815140003141738507720442618232784372481110211284109039416091849067137999021829331319690787254489691204094721483323382028339711213366421991809600038609036165072608881222571506659740544351350177336840992624789387801381126571988323919058049247950063201050619458797389176939093974081710158342517025439994995336917942997190047635280969351829149635746131187675600702557557752100007013156988890051802575251534859396981084654425166686818255437827488158176825509637423092885716397498458173165291733393388975577687419249839110927899622254403148232461502218295974606472010628304615840299165007018136485044607050847927658238789672794755272813169863721384958633873315755614519758293763477129142500622740766967872452149604936540951271730729424775105820392699459650055620800060805761607788267512296959586641384254902992288696984839763164029404881818541914049764116838926330349533848795668245174341317361263330908677712781201479151722695302144743655681379632387390922367686794879971700910873640886724890712121801477251041775182653201046229501485858974426395123481742545817342227588657525396570698509648415802213552795282322266103433051588975996691415173806381048549995025500945510944192558146796492737458482513613681913049718796127089935027394740285318607827074368159104980576167549977131130977743939262388148413496005083779081369215750531633595546671026206519233621105671017509736778080791257978391759912208197509886755089535279646979341511602830656081678799450714714660587609616088016664969449256407960035224570483810847629489262124448143726691849226552907752235673928403497318347779580275427598571224053032602697240709747077283862035102570052012346508959128104363959672435529028356159145898770692280771046466463427126506822325605915534058694571436570836741550200769081899242593971313127525945198313283872508226298404135480517902892902691015750663465330559204098772951492021928991752099728731639681115312365031920992419906317748321241064279067190021779710950050682818239563330643482308093453026072293422015750589366493440590035339726501438688184034206535652978026386310577626934795687894151547814961072368457914875555955659765197241050051328248386099933619155191834009450080950212628564334125339486718426719688991166474151624825596130568978274787363134058366645886291987544846381243614686614938668076286459147834963483890618491608321437586817425710537871719537332775731058640438518034150105028751278459934762723176430803841319896590280515221975741409694074679890322572765852478119037901342781423760622295884213364535517674706516658459664525672379066943650118385287097257634874780556398341132880715874394945958317615329988198831444766397121131484905505884032868058389672023362035734563166579541533981810848068647766004554466044484697460892888584739188399801444839290257188193828671567336353004607596747537701042392020180769353548046557444521887157786017173596814098458708218527957373963761990448764220754112350349822777632297447311282014750379150405891979301274485224918030075684380665911337851192383805398253788273867792791635735777936052032334494134972373256209661420257940616858161109907856578331610684189239024102974179848145105003463970155126169551870828965209250627663152740806044922773709468816462198579307732183563641809188673804773836124760708794383774229098887385203174945993411142244504258189396981823414724788772567017830678716603212403812165217512742302387568201115917635030115290003809515543028637837085658421807838241763595010462111523071973021487568570864366322353048000311216253726603441973942186913012903617053828716972504598189273616228676517284577479764483990762053894156287742187211555060867804869253745876017448455697160693031083945167127731255957126067901955393140758930167517050195667791055045583791192529967535846247857457824754914627287182302301311310191025392812455456098928766359044379831597481613294477139181009891535235265031639392073623296118777548354411250489925321319427535384366761047805173464315238837881367699746243032804454123230561522593990646914763841980426632456973041851772970189072973296242095121400955186115224336042527218159413453923495511648125224074740387537947407852228841980270069478278083712192808313081217436538164597959857946736463235399041010913272570878426209658554696852286198116420583020223427830222578229828500067915395840600929503798364382784436829660815391306150932496761421809559180916579328018626560192310949864643834669737184638700956699510620814486481196838429516172457800076981941958859530700822352052945896890285642434916904519341677682638196550018911065773077416992048654663759800489624863730212571876527877573169302475562985009225985078592994105081111256432951015719320740721846518758791112282909112735258458018586708710427613238787502949314725498271065288881273074538248808025476662637541517449969142465207334892910588284867989167497339745855101464084370518400887818440160627112886329475144217481086352943166492391351849187199936083618938475393334304103534279732848798349057514485593996580116348086210805043777014787589226513190312720407617628377320702079023940032101728134905406670330028011739857347846684766718876859636650826353336705418387184616603703870753336668974547007538051487182765889688655163836559680534393319754262866686724239330842845917502531369261398899218283784187180704963029851689184268879531847493455956876978603377510578148269602206576091913801132517064584575615875259429071203842849285170623121716168743929541196803525436890829776991776128328917108907968120953696084989737403144421087724500620829122296646316064989765404943018624936298963392977726989994218896619273400076091450104218012180292012308504287774093704503230695425510222929174028327326619502447138501757981112235578355264678170415760929614468615067742445393738418480246154770463139893478225432224920875309597720314235550430850929348531429283537966407367084310525713608331144112927032283250408714858267782045778954599973357923212553449746943521600336645104054516747991025679816793780622960242028201763378931357097952767722306786901383642824084052241494934100870839592407801770428573630967352331053246543815964334354803905843398328424410342261229473244973568885728051455908654023815548439343245640637614770540141892762590903087424293045227471416524689468250059963670100976168406098907580835811419729801308227600303143267919300363598983719924315090146581343337508958937713209953678367418473854574876645651420929954974897006455721521608225872725817121002759857952779915171850332655197971779759118360634707103844601789085600503221655296746804908643260345451196151270003686622180964296320967701084682489514630983084684119719708896631694896220266352781925891273356328755712698787651888783439898367901037749270557630293359948043354801602930814977718670143328417297185256896166594335364046972511951076940238240652946843696695817130879203693776776474399708814561205892553685205576114462325868837779891199183783349317055712847739217671667001968162198990019489964777877041869446195749495122949909592208522166535054427312878508057532238039799950024175792290294993509737568618927383006739569283354558072749775725626459935016738923042025047713980442204248665483466036980527175867364525949764471072149682754972631761612265989904590038079784258890081644923905476939366577164842715162378401409892899119553478243199980789699623463623749007557916303698312145567892409088129779111274065026661767514101464848727637671621813790980969605557458507980104393488394315987017510585719083863816210700889451094577450442165264573183752983160995220998432307243687557474721066971134218224106058983135311259963791328828276148183067772395515518445864416979900071999168178880852283843776714542385482388545257187805290037008972603885131865007220215116263018192740732019813878634927971352832493495931061947373791065911849698422809944766584352429222381478019537757733450041743983468854376773020279425988022592565315533022692290805079574926624323576878141942320466186837008692214942923581896830877943611499579357056061913123737822719088295826343115995089129280724456308235061435304503281754939789238473931254041342952898351606207712881186441821549715780248626940386136414390564581346126092293349494124248657033162155940363633769406900832206048388830864905845702562663037395387722110938073539448072163958688581693910158194574185164978947696370956007274587298510572785559925340493707930385861775355573100679139298295197950969657896828838982299879396115490205666453522580933973417319095529842304647123749154695953077856876665414663242165963189883028137112011542497422119281752056463133708165233830431175729903818510000326873182361407451528981997713338917775926201112576926729889992260534489332647352682911825991541013765030328540442161314792933651247618684535288283728603934613730606998397415820038958394427075952539003732502863739439384595793587457237278420836188144412382644490899185108585138422680391214532817913750820934205922663423993714877336273323620099631042549985302749118985512401430596854881092621448633622901545963146327671527924532472317094978984114981562695157433767960227513950267448007531880221869473414871206395882781066610764855684193973022317062616705107583370977855941548066257216285036527430614483577158980789197993389535905376774311248162679275191208029989839303989163479016121010306408694081695652595148842109119377289731144268270574038090602143129730247993183623071033496290561832201746002854389438167918435336572358064273109885055084762096759250297673208756087507424543219428468955354000353453195381634410403959936671594346316521351249395220714063452929059073463259113341172389563328476451405996914450526591410493692002558970296844956314032288122106758895958388973133841932628423522346153541020845343966003510455104824381013932586148861287338811876403081894530862842791026240203609986424407329032916986459810099463246778423379539703972024779301780670542315877016841683017971055675312891016406535358541605572250031516724737002312951206998956779397867442491118421578448583675499361639449479280122763223111400614825050829711832680305422163915247386907048195420785681505762658612909225473152493432995392638564573757414162706854577093089795579222403222587071989260863741509854778585863971531751203393542890156912014232898253541120511676185621147175459975945052290994257543102898124095698437008325331431234048919972310267628600347357482543964606735127783062805988002423806984451263188489310196492818598972887713505307313352009750589265386579007570157188604388193890599813263861668701730724541110738078130845027194158027058397367549504873952389878884981314920378225497874357688445070719874136183901371479732734479857674097514390241560233431017284854644614887513774303916823134744663923230715030967441376683541030774342852732409163196248220466643107527812090591554231977208309881230147784990989026832578812945441278250054829900604745060001566705896940054637413674339378522033685121941446965399266769542319278960997965894959008028270710785587658147529022349008030959190405153788314740797068880193397626846055101446440310536545867717813255785479372803702643526888708232212733613444853408011886958998681581765096203903939718808446645130947442620545958849249461752553453335142395138958863791936769843266253916448869784065776637169284987328429538626783768944910476327612965872963902865305884484046364025852636317127493480569087115398778396018635073796354353839732171571463260768221680153835371764620118071316338247525904674546471992265956197205115570909825128597437269558838800040746570526311129974956857925407485769123144117980279159217321910306249488132463205871836016603725510734302693395028067267101272286881009195712625610069016212025954574230596395271144750586526440658042465236780559423881448380308983877675961466794633025993587128800754799140777878928640852681712532211631893156187358064021215779951185156794891937549224983563632261577161132484710453354941926458302130536807269395129588371794334778569736816097181796794355227293089882760857026478797941894109157181469236340604111054849470116661876165142167374572308398682741648248882553953850768630931519508884242277617331028724140169902044454644951958843975311781662298821359888019798252083916224355505589025201476093032696894676801906287057205024691671264135022583118322111085124316957809767566054297253874201472085635286674798489226752634555404146344931774113969476230955337183873776296377591424407166073482894079866544958768322280878924412384332121572561011202535553212190343157125135300206649416591807753581329411902613235390448588982591497394984016741176997404196859473283000215825028071322555830943926585565511115248763834965507113656361336437407069917498966331362635999397838021187374550682775160539380715728224012991800352581139820833578071581350432095191363535169010604347100062618484105026937397382914611674729887174760386453372526667511556617007999092916835084373921918178233669503665751339713483392057702079079567130374092971403728259476738145829487375480775317624944333541798249411576058882522212917600945753446643784681485598403491533645894466084144315239767599031522661860629268306129804856006458799424720214861305701911669212143901290792453799196446105774501606069353123629143632485671147808019350889758063169527626574286068552630997769207360588385751256437715644182989064384461859861793486482461561515669880876556115723264035774788867853248400356003233434941824061481391947858238616011088847913105079067877854946857706474173446602887561584382539271316142016946780945863713461770159817076208493646917461404927957286213856629985765339735508411859050885160879534259658948933806888713742665956858433895742938029043750002016741359353308416100837260186737358506141052966806886444290640377289797793845149103427742259738085299563558472967701717813117804282242380626221462485669188812764994053083430687417315594488435897969562237749418319769205185272398014500714930717197536076266649558459542134567116505213151682235290423335363087454490420200041628684887757485164804243225416356962483562116012508324768415607428099188539580722035275797095383898871551970406388435624560074321363843941369804253727638495327977462418643757525532088358926055428927074782719015071935446494915411442151864614607959906182732954468766995406758010379615466543153060878367854547453463053690902865604694993726909942466537949520249463901372102964571479036898512897293802932256100185541530584950602222645127199699920144540354057354534222918091256793920541365432094964061778791552012303492631355325333688476604853039276724119406898547059259322111604865466009798250889431231579434333439565094066432409756013146713509095838231797901564467875551167530120279126503363934839950412653104283047560331856250197697887054738376063270468122883984840676048726981892449722789814351601748553827613467119849546415740864462367631928968711191226969164471660875372778755980083675909490654760411301223185324741971696382148353428073651961929800846066782995232635664257497346480994851895199720251361810644334102634755221541260292502240006139038934642864227847602346615594970229650165465678543375674531513541458455620560945230661414410134366162054329256865190428455940806142411264896037297119860975830995581306650922375571829521485140570927140542662244531650173879306879471214512224645746876783373676804431303980866019210219801547628365467694338141491380816549676190368073968550177110866749315242876072018831792100468664155036669251813593483247738749178743670032019291525142017887712773694082034228330845345300031547326500601706693822754018583263893856764511132492645033941825346429280105983009903243163620206970818503952117395133213395890446758014582181793849216061137729962963574304927307713333877076111108964749801740136889465849075271511009999327576843740905449140812538730176085596455312995802327786494055186151264612726501923925317442994482150045467789459218105530632593696636569970821424873533892649615474820848047547115569900332672862408380969976024134176378695865063208011216506131559769599699416365547900264163164676906871305305720459403497404930255066948165647319829418561649374356374628898101306972677781724657508275232547756030137228747667918675616271561856545432868748872102354451205138207488612659195546961097321059959755954051596221812219330213088677227597227925754040951269584859315601417883931782548106889338401196610841312186318585977153030386849107240972814796442322637255754793008738647932259317852085593303661615629808461741820700191841337000103371782670475499821920601760013921881639363033543736483868929892470844818832600375256858406499870897481478436806777345726014019791147498520609181053126211919660900002486466686906450858561570462260908346654133502792651627981848899533889922380921957924491609689992319828083754038875490788947258732604585019004818161045429637112471783401439476450993196506436868265701758829904271103144933774053479636037353987109742635752038138449968700077111472581152140682335196579108106094670075849786249328774326442763963035274051010652133287286905498360283778639125131589381585757845258325940006660744008745628008772897347907217268918801147556333703109025020906096117273702420792756370173189903713186505165536090737112492723159213274161496727804997032998023800651879352240890631759853543452677706677785881019142792871813485845788770404890359827432671412149135776608582990281570829732985113463218301536334816442555225455059158724503365742294209020881341737648047503534491599914554463957266997226724772824060934909535710431369647360741739386971227458378829624067923295806611564125254229920730820056803021421148439424780639507017513421834781183464487716692660215307554063488502555375411057853252604482743877613513469379450392411638009768441908882681100173809233368134414016827784561124419722493815786634726191239324228300706567370274787500917003997828099545979372691784347312508832603427094411273894279792581522479033546763280350150963959533746972909669938784802505571031320163603837268992070953984750655042595132771759526052857739840420446426258182726686241016645206023298568076681427488305883984811095342714926842388075943094177945483713132168006250706820346986078444682195000046759754753076167726754665776087287711172654282119736212126889906933579969093916245966394444797875521327977058543434022816614658737794054762316752500238649547828475840964982623109367137882027380594833200744310753419664549573456441890579292723342881722588021350901502684826120920397166084350597515023198480952157991273215467641043578106885492004629485911451620808056780000031920461968679506750208386355730170862358048815623343426018231596627121458575932420014973734415928597832855438014723924207852398355832434990517359509397423779774875465014485208008479748115483286041575882970987139948679784339762653220534429068885537229001135288591045267816701526853401423656527054635730379877233407052049187113601243126119733223501448366457606420968781684396262737762571260919960939952415474475963122113128931548514079976020808932295528363043136823894786029711108557388912935139787665193107322409122755245352566110675361729258805098719776438157321031012944278741729284680154079041738842187642869447805405859137864374208513908312155253362325986006830966125490419483392904731483027432919179989975216733243000272629068501602422503586326215204791325700116774806492597694676013243106472663724666848890336113328129547085204172033405655763502208049994513922402849589778403654861733960918718751866899946940667748466537097639314842564620032123439640054268152195887747699275103591296054121380816512366592472337878701686814448369733498830994005513054100581393249840614160290658521545987011326020738785864287549386991134354550055165976141087417254000512757098097393666605745670450996615129270386643483872615652299250379951117934571328483542823914499029531064534042903762351370986139329890805359050499269245974274905230743936433103441323997526252817153043033055070856901607811625003504351803624801621012264867987132508033389077659688301582565154078591371899593318525356991055770827939490610425853721703604281225671202382798764841070467988850684226140943346244985789237233683489629594577493770265819616367688390181785773798283034950101993502733986036163705250640915712551928440665633835133164311150324080895766347205887898658596492532246181946852922787233526598542305337271047378562388267874003012998281096871884493247477481745705926803151446652265006077463930858933481584144568749626611702110524671412303681577742138160503322998268938428595672999866430103447133923333299743285732219267624767527405586023137338721192886929158211590563597703694297550798407220693119772103831366899469961235069354230410455775217812034754956828290600386863865270803980968668558714350025926933541404861675335399992139821574792718426510193111104953172606599401696779344226325310867912171369818598276340665747156347951117947316553701103608547947690328176987169666910879069011650872484306728633534024258456959200912120953167219578335749797539598639380521456074570416959221010015491769227601851054167005188280852882635777383796430072913464398097614880707730712714614527082093423231544224142506003479092053128828256744772101494065149750413784801545028306255396218245537176509748250724534367816117862553709246689600574048923704365332249823323538049766539062988366896609632211678641919301682379047891308792593519519635578559485062293657017631012376189902487133312907709427941131188495880959025752832177484390454766417521990406513472387068524636112152409845861190816784605357236084309730339565474825844523216097209687042808477944875028885223918797281447619015390182379779244902246920920210304311145816349680452010171411377210471691907507219171627270797416189907510959056036954555076152899087220340220734995080516638237817253251981415624333363553925467408341122187952801945075523841898580280452544058742229693167900118978636931809791678520903114379762478914852337598340983469727212433840087042995560662610394018609400612477936801618282239665613957817017316261070687915134677701470065888759451848550762190785507251748146991154111362944655215204114620967327624603932623435465122736199132591560753815779080270767362835952310445373244218963156457081349300229627697658750157250222722176953874700506263734177638267487634439950575535696735064430735716768709910045096997845216571425267777080030904537263902166899420765345938582780060709016089073102657408840950854517219682366493203108671592731170569403954413699376868199186742522320205403175624409314697349454815574431637142203843642907386138793128765273570760963027266907194818246911875584088170913455613503252898030612096903941047893296846713893730426316613318353574616232438364890410851927651811323996883678454740092798927621764619623210262013442835646279162761855609413789233598276191335297186018598490287720642303487517976498419102765825361180100418556981483204998739943318065572313104346548391177819275159282718440288504881785682819545413918833678302021495072204772136817560969528278143628195624003817956958764949486483662050835077856808935179049561324047201980971476489321880016071918501438364344276318927526700387378637665189427109270750776843643435982992003563851411039627932933857955381160471077249933614813466465103326251508347725053224296322963946769256730629465879542006074855069711360448193264096909242964323173238646476199378777658145762267473365585290892837345248172238116500655366453069281972560955966212306839558331300324770801622912832430580741606939229522035303062463928314486983852654389006453941265066369806788484176368014405680500537667094705429127867608135483321831880818324245845620405238531793513087757547388173901547386763128058549424394763586766385397207551582115003866890069271724379757902037667527778039561858199581704297078243593035616800168727163586941360931212860494229373513523908392988727644719835594348581364383375098976562330866509699765330634292128777632649614254211227077661866812646035178381754165443368085182127235317587234985507154192290986348755184522536386315510742998850633763624232286820691690307643797537381407828756148875871560243082812537255399540207462443393314801757240919035122619102564687475857925966754652434782501375225783659710005248602816352796418954307046094189998835890827516825482073332799921064404713933387243392542306406962280661434214115457270496893587361854019596349746098158559093070751824069117057844417743818427819874402619909238114971122548818298951985784158134320774926757829645292713650870282005483295791919755625979127942007240993413083679628183158525148077656882438637617608832001864996852308400465954805227029966748392438245099195649327598335457692775536072029109299876708096919580653706848340474910369771107836681555304246765281072711124049521033778130793709837909518093137403862997235139159143269693606270844609215516583992709609549907839675738695680872078940064810821498544938961036155332781690796683450540391304860218754532164568553308076956100708534477216060428373958479071911481414504187181467933534715589114191014322475699581612739201865963802553860318706375947188800240819989963434788714852516825944413679755829848567689135604910260054730335422378870270400724078788094834908470907687458959021429094448842487927083836472873264788747550563341286130914706036840101682163684332126734540110317565895066393125060840508383559292277127431725059256322708617073894740342499863241885159774912129141892970447306832444495073408572716526074178567746401018939622509147644230977678959707288091413126810499176671689543789919380912291701571842265254138087001753354572302374437750440183021124109718265123483883516151838302787562608938686157675164255630718227832951166787183037707394244415662303222422199685991196035979217601362058722108654264149482196836167547091071255659670959524479649558841049944432524143796483046221480719774591238066027818920996813583867939958215595387298321383384491686337958972282991471277746596355243762001652498093398589455162149638432517471278001617404335099864231624365729020375616355069128102215838037703333794836129435706914270567259317238136708146487027732843141482754593141318388798026624859844853280851155690219486214936511029495800388016781130829072827158109674542603858875234696513121991766184068827058058528143038492774257667392879274356933462584352876258441989918885949494703709239929650573622279959885868728356629369873377719451385177054516144534118287209232385198280868342699037727275918515713201585607745222504479742034987855463313973841062908554688192292312303294312081242850005187560521308409907385506020201907218433771101703905568059597259646858546992333014690723939390803570990748433052532485087608508472749365797456083951033403137221781332141408444267253413667024209534672965988696711837949373780657468088323192087401561655597325646340670416701441515223295074059491344480820983713654194076719354828110457657315658099801304714447199086350846766870638006655323238421702886356831796474054335195261646762342126222801914704811852824497502612906195811107302550127499709965336758162681455741075233059518965164931737495534115601623448924863582334759800566921431655512438766726867913002435768996094287549896047107570342801444038963092555446481956878155644252990892957947891827678941126519101572858857477419232462585919638003863460371815226321359703550761422244019233386998018390556144301206219913947098610020396692863780706349983947816079037579226708022193165794566048057103212028216388457298300804033028979728405099913315830783024411676077544001677186427324957442262257407684700591045871322276010968337947958837169404616871572734905457331307604569898973936448254962300380223916188844834133306760906860437156074833458063665205373314652457775123277703580301471557015513197375906848220326003822086008558531321630067638246747559837148866125635946962795668135243336128450028762917806345698293795865096641469441708247783841997260740173060509484296875568383763648993755134024606851428383111596416718355862178529018639849880562614341384946165562001897730223449688486562226795646161922781701465040818479316969077761025046592406146565386723519819657818704725600684958853723390871372761292190258886794620150184691394896414787150402374011107770495145639814303517025375271631647491436543586959212489630404106090405505811998659127141354899535735654751126772395258810913798806088087918103020237764188812779131556250897821354999567914270611602218909859578483794499483611063145000166722756218536036141110168208887048967624565123884926305327979707329256733489865398725751229296399454368308511094022792883891796143334616828805073506739152306319779742565444075098220980772857776838753863245352178523770683418938681228078345383806937043574540237896010469671454144269980440113728130722089553941883274527830407122564846936458091793115551828353651583083686889055914784512211159123328338576262098272189517620403243391582677353444165541236667813838859010662884440768828055313048665781175032813294615094787006526977452002682884786165769417596020925090122436546801699960643111652408719267792344618734356738240462199608524090820105132024620829966412371544176051881486918754021929877915191327602324292429183438590149172444112123385386735988710515550480507937912220906108411381865731681407869696822841467105457628984530126645220342661034504188697092072973968316339650767377399354765127447632282558448875397505954895747346326903445573365487200247561132278295026904568609663549387476266284571494419519471661036421966295689244103484710859745484257742247801540183529953079017148799659445623930210947240751576557488616946220604014345612009997279111621786302085559553138438982379362221872163746276177295752850589527375724792248729057091261614458112991921396194298281811649369633880138771832676243496954632038272550497947089524161790471980230433598294965354352487373681200938268133292306096751138956539022708142418261406547551740492755775182355827434505967198486919250302167167459050431599794720212479697440988411403647508083666806731921045944466637410901780986575711986002838655166793551083637255556158587289281896440893620972809276089218904418713723637703097788256322027495464068646244521181102642653664368669158760905206198149246937237970811787118487677076375113079355991316642942127672699451195547002814316233817309867035965335388217097772552129976675477719928501577822019643513773038918244983557547794924258852826817316595112812903961237520709335070446981476051786996026228708475905009255605618060180535232953746402830509700115805331593007200275626096619485013800668630764168308465431465517633762803242115342260719106938837496242614136021355898888544575046428811731289452521019131450660573158891094635946000861699729772835096402570705908313216812562897263376130046923416481133980277633504829984186732115004449257502411818498248620068678426711018360098910280503457359510515593705207188974017144030085584177409940534140226147915057683531556482053631791628631250013713142583958123100214416875566665592760803826653410235650939859600695437799391697127778951009282910805706612906124510808113438850673828138889245901631203605357179575006077375265635378235803870722686526791095659258343490516958443972614228667165558210674057941047110625875386348862869765257617011802806373622691565218965799456315147918120978193780424569877665613267512445470200862545071274993142590955334853429198731495231429185581901853457196016124804755941850716741309001805020160338489994509369772793538629954263206309354862487111666604301132445584994828007119292014919032046338357503176909295484587884647844817047256888646663049059329087003149621467293625018014032179662097568899352199733010813898740224531051844661965475112943468256346843688136070175549484231013558161811496700530483643163625226617659896524434446633330550523802681172364273696798639042544522018125030510895205221807634989114626894535941693806055032046648337087767479932270052480461811717643338820588048569007772294585753371958949052287532171928975016579551827901461624924203407198737069164432496496777085923517209288863030045804959255716596643512088427299448942996956262257055943387747536908255687235396422797060640494644312649137629397337717901061815768306209798663550757438283581313016943686902127521287554765521174554837253019283932097953750947942810411894359200701703966073040412761113006820698986225650911396561380221000176300480738144710265868528626465443376322632539054763313499060238151527514210277350842650792024424573802452062830747256317786434059904133899973672960378890063265331241943843811161344652761420914175090066507622286207744201498620845989854725871940462446246598974393131736120863063619689558668341457448082106832089945917365404682389747142198657479468675225927481368032032566569694829137385212174823910975977195883591450003539381360542071480587232853585488116417011143790656689937533467980422960987253944286709691129487063920581564716298682054760880029156615956863019538840718499081764282134575310598126357993713889814567024245334418362065063120214584058385559784065487825474639343410111682416725999795738192641840340579561637115787061473561880568834543766765840093028878695176291399340647620185657398585438278865756241677936877179252043042963023530841399469274559225577287952432731240318944749721177915914004412673349653307268652220068868914118769716247326375172115259541392060487136039030208154243268462390743651086632948412942161847202348464684063187953110193818963583138528688522121045134760700576635652847816825077588306227648718107437972211529241873112383964103274681458531852903901783804945364146405979651150019412820070990335823564314619214129902317387913898751269846391521367533872292834395194336645756919468874835519521519395382379386001549723678256837213332423549096231783278647774291107202211406580667827093225515439628928444822081805838804253743955435292857588101644049429109397136556795386560900093515184553099900792894493899580141063173457074101960578422776231106447109252189138162272783433094084023205784724514070621833666325849372052717494941929388555823509300017118161667423127763452997865199564359743132549146350703474011620216968717572921862770701561586220620237948753253489448227691719553686951804016817312666554844791451071549180238525711334546232440925802485155527049193265252027596959723214346304510199024584306894389384873685004764799565556149837152921049761367987595066898061776000886562861388915640218053209509760850502903448738885383864014252243875584325142848238639758228910355183859856677737565187018381935727284565875902335860069299677381322367540832142351461691037879103886241203675803588113093077416664894321527631722172553917929447876720126901970585737438926043380194625294330017809548601192898222416110937083859324290359779874689265395068785873759032507657993885671903214844418159274168948393852879388286749399448400586843275513917878040293349458596749745312302599113190382944193738504681088551486766628351184335427027766648042371353202741459131227168817460158216762941872045646335138537311829866161522428764081879785986836127178004716967806085013040244736667200910731679119400940284916027096188681692435909614053019921818717729954285185341615876624020424559673419084645181534773880553985669225490035578450343212159432314329897242004799164928838031094891823667351161515185809143419055416231384624820334590802754562933972859768670803151698716667367741042943055320390320751569036656882659481639759886541642243335133508109228198461430938186827560572737311469876406221659938846135482249031715382042644239419610742403573827650041177864606837766542143744810723073350881917736593967096953765038706798651486250020117535541337378643285529793717755094354094249960832900633696207231339867681305553513496901952329295512554665299100366665187383403758469637078848450131258398466383150518707670730879198234888960760878393198276194792141903086424818035119438386408517997411463797556331479563373834553978067860211621616775863390898914438014567190180045230469955158655876969476460906030694275569570946639317705714918801056194158443926236473198280078732577726081974129308502615830984300235961324976579950362084282998401147095237034780620276699852756414730059786496456140195953638002820050531148434213913207087814890998630551942088094029929050040171275835521357451728756921928345430191767753492604447008535912021236960504593152490021475027457345483084073037973882695286732161523229900836783506030617463355672196134080832849443447628035205670309205836225571454777197138362990128015974440919282937315784778322570195740630443484423540103127863282368825223729641582022339264229000570697031529403204558552679573371820341819158950408899031031079097978747288897119181809646916072423484531294218702677189630329359636016431314509235664077629274474632267514366560655809900862039408641207250983051676309028888808849180186854362242113365044389353686004041535216912854403975460142333972841846195876216293457654348115906399836469486598277412688356008255172618634711252049742102649146886103511686935482232465065746102618422278455590274919725432882721695319869674937814012653229914714996544542638481827508061037470686940145783538063371647611380957878191584256023533631870545638356167508024729565883837338231831234960069233827616300030947080221731677213357204147031329649584023744915681231651120890400110288956913669086021450378612952816635558000779403332272673259125311807543973852624510559726327559418599316852150591749122625773107909364261714197505612217987131290620750564178423794895645178821746823579151921511377115619968371021529740284064416836263965304673905528403002286985311623272053278428826654139789110728956248411870998634016749951472769863635443999148663561908634875761230885735724867279158028527325104487738134518265804473964128502939424013860234319206807787692342909027440859346176299369624521020885029359249136971850230010433293408730676738305480421090967571649815700957177689890638022301782911220755303802761820127515197002535460219561358171659525212681031785442156858173528852700934049471965513086099908888898344573014660802425880208154071139701023290073372701083365449644399473203579564250941668582423178382986855458825890734205123584440645172388921745124145126253308386443155784824939279778433346086431878200258569220558812646110026515109262645087151560544728427355819803808279092410326959074704385765300175082967258873844936097628521799741715964318289210651216743852902874091438603534411642312768626193085583754746061124565348570742025459407793074836592823246248613713475472649724099980362096382560413593397535623622616547521385762827257426273764457729977769650296130403975250548859441201106095357942478809455186212641578248525602453727311814947671161312711093088057011623345235874718847278830863939817872085979332690081117915422851985185209716851512152583971216621800047266826915514044050976536668913805819477602540595706737682992616026537227424681846924299080509189009085615160450470634632057061397936085017299319433862143939916109434924771181333442902214474169112846811688101765409124697171010055713415374629986699680644129078674071746499353649223030133030380889485559761167372997643131162892077196993560611945293043779143344573533077972308711210070083687870192779000056369934767185137169670587940668639427407348778535492462019492152501509114203270686259426537049816640842402125087845355605815033314592746069346056430408123396174664842402192935173483152006476465062563223693427276275913842626167653145439051839046657625787212083520689987243704466920598114723591072972770557970603123911373553506390369347517022760903025041539802800134052286314226633655529222100069638053732987374853040621176441884110247435359890760205351382788776916607085467414975104550732404650877196499455610138778284084369027777765284026264752528570621022476116774140002639019089256698062647435670310583343067236933686531064381094593525956120587602786881470637555665554525977814411744742075917807808046650418059409731206060329893181774443846369496026923041724500195367667864163488211140931606068794065350797889082441385292752094602474456227783404257032200441034096964775288925067954037707045057252287615343626233096684453742577120789981933954160931367882581098453076694415865037752341118302347160518784850021132656634034417345667348562127993224369020159789469877215400120883525356057771209020874154576006099977163728421252073373256803690110587586006016102019219496429986611477283589461231162488288186312554943640156733847338738915214428222726014334764853858482730409808372453834761556125898836607408744172379429814358726730191944850311662098074095489802619514883958368753466234328106672233228810148975801266454196507985368035126937826425144322989500501434724274001881277993461802487215143747064882544200797472103628563384430207842419968208938727309357961914331654596152078635638269938231731724002233295297760480149006932118632070310664915091216605611390353361726215767346612594314677595143083644911854724347626534319390777113570195859837572230941193831595966712808986286658056569289341902746425779646277023783190168925125282727547993639195007486367682170682022100869786466150447416929359296437167406407790457050745090539248034978772989022995220814342175703542951937364910615984736669483938676273171681368798031520251888644492295948912530795649646464705782983254734145346882346858985480539851596925066704893384104988088300465340263052662836188083926664017419415169896577546268226806228204203576405247800322801049130423165934959658693714956244925458679721618058448540836326363223232837856206211787539906146297408887958942733326115150592975102633731185878838899673127307841409942070453144954805540292304232558487866781662916653390997787890769131928725790391985304611460446731979480356658960358060931905604295206814422102180012317863992982906543573930714297718461177093105837621906203739549158513881877608092615910871602311317150644758262555051635779555116483170275361626729426018497430945822877928476782854319951993398614519462292904500479458364538952124816424043232592992241799669338621218344436832601027653835358135397838301496079088560200364892013321379530425523251796589905600144616004032747307791163901155167222921557155236630669435990995043466153676919218889073275787164462365816730663230039460880410358673355561339438957094709200805895419832200714615668391569097702130140616304254585981922247102304982884415834611123948488802345561656254001747635534199526730763172028256440181385420346265625575285863378936087783257957212347572664263912019573538922598865406242352776153484889732853030766246716604015734004663606168456026925088991235120644562094378313270747962790369708111475775318777054531162873567986573042947755359566453464785223955225116306050974342822083731740378405412726530916122567326493584951475617459838334676316743716067892817047966016680471164578919056508650307521816808865040672938374872735799199677762955602583077155802008629818567110843014695709457777256823805415798677750264231113709668869156164415130223377521002990402241973245389083360553715467350596340831939310693566692451047563278562943276750958745541987332625064918510082878088420912770064836866775170905650792785148819234909479032989412914620132883352042941713088326532047521607590676331224121346549659841997676444534411921848526162614665326276388676081390084731369265250664178639470344992005458781880765395176855824838143973157562037855076163616037411533523952473465050817509747197634475447936050602744602330049444989322523852789999434066906198750440642089878653957139684737690769889387397706474514402238907659988169834326371084606192433932587304394880467808698058021006171675602865483424179974007668759657077336402272577498023753276449020940264548100277050155906141732826346012391269413205968300129351757374551666576054331956361114227696554453024412206012106786076330151762051623741558715095177616367429028584856826533346455563466231053199312451664570326943491601094044172471605740975655121005146083931771671037162287844946120843667149814935793039849908621429556888002563814757297649069779733479547566660025631013045259660570420652316324807331019845639264901362865225389672050274175290117062341507916609433313104343579428991610940210605978877062059020279389371649175119818420303700707300782692628703833829813124619724436114984967707889801322084057871623545871763266073918029323508686989146341945848395806420225527867666054960191895935618506314942075081157377914079132679777407163805091659497693206791305786696062864940430973566258173508973575167711215870632671841896668699574123253553425290813702018549643217485067966600961023405335009943961709011302882416687976473532188225033738433489728699794703396053204802671559942809769190657138403142786432240081094561411474547599028096069728614781104862701267469188523464143935167677670662299534933382792527724401697968200634777210650870532681017521340329681811130873174971085458603908852082672809135460549033178076704683973446726636740612956508803999785119215771698034902804976606734774148272896976716011875439347393209146331005143963094363871485506963799647704084601516604913346985318915654924515129588906808645147860373914384637671578452725480776593952475172470468593741787919665886638459297558213929501846995503971192458128717620041913967400680390606933334981356877751088950969452181718968101961433272127120635410830636507888187249164059150950770271783411966079256491710101215816917386044174575610443760771713126364015628911909351432567605828306209980520345720621116535660838633686480577849515851882454472931188764690533054768287499205300049056923083947727466148902964951410293760098845747973004441706604100319029188459537704450844615536998522496910754361326133695825706985909672365906860369756137126083841088743001233117542673144319732287893328948696521013307539213321563010670985788338132969567660842243812408994605774857208240302412832065618647353415971032544876646609338410790241302486233482718190961223641794867667265921988736520767395247091929429409218689402612678086774524383595944097027176231788964545667571627282388936087692962770637546411910571907684660270735541617138504423519643188055969740069878402273946668128047255568116209948402122133198135510936386316574621555935061878552888321448197019053338248454929923171970854205590917622619401645088633257239002577543157701277142952277032685347266175951318500844281520957566317449563637450604889144105975251908727158487223702886611619243690990420522636087990470727928891791060735194536639196133537712212267269537939446958759743927654206715178020901227173166543732384427937222783793562240449795962562835856059926632329296190538752131592523609927113574592303749924498435966727043877538398395926488358984981420995938497066639131019897661848449581383320700867302341791950922368182956085031484960734863048019376553044168335382586287031286763990333997413264969977123022543487371964536163805694003219882152651479467604651500469650891029055245757698416194697134732046297866753006070903989312478825292053914548982105570243011064676423637005581416391120537115768326947180882263769678151704492756438428104181216219861032756724016864327709023798535706448648560296226404011885593165681126293770403759764341521793074426794051113503995925134056494087667027238591817114679084893705380038069117375114146017306618569974320330318766475359904612069623257243207814405498445501690821876275188177946295881693400353881787453301773758995124576093812693798695503589120077539635329646935424073844588691405075235799668541686395980717060267966982539433203770376716066380700687991113646135782556442442624012253025229551162188475616825716393580182034465757447191654428052774218595834851803036215820674418363871865638408523606070301520882679546188333725279118926680333994080667445555373207952444219726947913141159104920387780634508624046039714885629065906436934686545583031672160255726754595998052516131899450091820653051785806866878369755570318598415118940431465468417566881871495484309789377577114192070416879966493830598646404093042662469869299615186528627533257397862494089449150765976463783859386601925445464633726323396998249351982443868598101743480702681714531086682840272164137778363259994260330581857902167103234301807553467450848951632727751111122350012755248515481983955703357793209938746238319374785268852964564868353745852558092743869731411853281799978270616471496096742062535443913037449441612850694738924854224965345425447949899413192690256988362135920556624540730466533301775179057948301893804451481457544169343854160391700722454582804588011587520408627208636034970110073954841147001245521064987104658747453254002327315893725343955800835842942883815843973648911719790124313275486875217711728153363974723356432557318554429803887304634930573083757851176332348309413598430689824964365493951414447676540554066620977540313295596115259720036700913697734892197487611566382549807210480605533390206285024508588663591268595962399888196840455577932440297433318792431998444308673822840596390805169116685071355844577695466615955658344189186570001071783264466429853660482038430029244073084785092172986263104057490599085901466908020268056283723391350374437004647542976060415991598265347700019987938028746297739880046271893294772541242664556362321568697682173999222808226095369609684649067355577690876563672187770320734018077679925760879541732639489893019701337910942180329943839748624240399073289403346780086661445386708730585867952456429085202101310410114632379303022809067204659459820113464377813280579293236658142601070586861077122111173826695207269013801687982484918907887336605685547815723439291200920062047619203128617752402048059782633560188703150159554455431848853915013154284340762594964846446819463343668036653203586693274691904081640474482715501877663470156176658753516233562141271496534661637715357544199369576285621986646874609531392000609930627154958240421752554555449080867090380451293603243217212959624955518485801735743017370618677173328592379084159456369131720482715349898497460519960061895349730173318497968502007214619744614463994806834413106418403450298443285528529821007535716949795917645663928843236259164857064587466207533731598194265290479119170196221569002403422304155132763729883866992990974881685659699452298396680002279467093107462353037362215470876019167356975293822637561449185819184169412614665793475193115328676557288180910501581413837545842399082664279960402741115984922251729244966679484858095592555019070011536383723145967175119914110323734522000493969059674175572279735501017254273889660894980347371832295898087968631542187758693505759234576302878641108791467367364898427603573730842528845522624336447473637884928206327193664439639485888189029022582148539617022007775266027519460229255742826610724491499468099707629124641763830297633831081891295933531018208155127805229879318764532504787112529500369279146118293708809383603289371884755670991584763282865862151212938488065454352187113992006097692299574688597302309666497171338123051051806889415441955482921162197279091546188424920376785070225577565360918271598133489816968181135074401193793342290938832463667499234234035839182449500440595206375251001775039226152974724260755954732683066098941277716692160397896921335432814784496957093814119254697135812125252511097055995038861483616869602941938619849135338075618417287774974302443812463277075170150031043757928276871509166109523611720047283309936439946638030102461768904046407734584608579186753890527896129999519005266640435458631277641720042575781140525351638902009489778767753639155578452147826526690750017899876004940871110645250494327625330783979215652142492459760595282632027830358295791840151667157842848427775750739053463822598886497749892416427584484999851677899671490066386105417964428896272689241195056397989827057872620775308279484645368295653290026179610771314997561155446776623353292260363368620348161295907231914863014130039202585677465964746120033395087346447466398924276871243883052942737996202219146449379867544002164279757721458009351144713894300737895829380010212436407010532353538537566871677011475401786940731461897084395554578983484247310341383379228757713117619943014710017835434243296717057400871145845583280831353167327479442794899463618257739024769723942337011883906706459933760202118287869676228615343910419044409712958237215847577750985609062775988514072525020952822911934137893530094675944668292370239048654847392791926528042096334774028356211740424651123833171367594866158285272968766013558155902803741110188187341627169709292100541208433980466175252537553514624409807694045729798144120751127971327620826214016702755934103521254576110169756135875180977223082054203062499225084919510872918975427776566263580968837996420866507755881441957332363071623336329251929369702119806844274875644765536798352979279692630667342241295972903684705301885972370610179216331978228629157011594318913388350302653739763590874666417003407858622852756207471645781449535810549489370199436885090395579871278506000296043065507887861993435168428167253191675103008372636752953976121549093899156175144527684302267991980290070067205849871534036927540301461309568593998788236758678443310270150860162556185412665725484650691175354583734170947678929506907134744126796410053257874097961396425314915019659898416379993376732954071744918443337011431821788591704875159739740247753171493123756540171492544753446554057760457185675241162524297723571998332377268494224979364188740765406371966688633556954338769890906092204236785185161968964623021665896620086046229147270527263156891671009259152216568620822592772913551540031803451274358888730337054107738272742840500802375538188652372488556881941384007294757914609994750401497981082870978024405141641137763771858728981008846631062773937070373492811900192052773651458174067997548954790106432796049858009658985335801573558628984436559303916916090107739677141854987100432676014379325824799556411744127404567053975699494082636885465409698928220954504749683862734086207817603655630539429175446192429103582351189562789481654588219790973538353540307052267404412645720446054373716135604016348303789847373127130818337396424143872069039756491312935132939846118235176541993705510232942919346329452743313149977023521000248961568714212620280330730845254964638522701206631828839428610947647092990496899836610266527736118091993202443459773033852102317652128650873722296254266633533555410569420779862420764433569008472146925335557976217603903154252777860023526427436964737336747715787192488156760219727294351714759519264379331398387053893774661112495393516553491358147308668288488574350146909488951935181439397067890789125957691313666613575839752624089850940106324210443172186229420875508282143642899863898554063431255356772651228324684358805461329482003539317898505242577792489213731908164290083608913065319878810638823159487714716609960049697529536673641954920242232194331936701458186847296952989251894812820195423727351322957893409948571891120855638017677556076876621816357106104407930357569149402505473129588774176429343434144124493724551628820726452360497847731510053141880022977782155805943380657580160944447342766902872737741153576443634185222982142043422901255883986761836595453101983593711408652004392787588112156832831171438613625072358898778611454451537934662958848736188348057983230788431667426465722330088547950588169074512058480412335644656613457115006174077756114998179718783110103965190924493029659329875037381535284292187286613341566974480911594488501135668062898035542209371258436844406737170184379099409906521657710754174485189249634138396034313987498650184224995305631466800321653879302227485880868098459277001938483400864883032766813983745601966237676171113371175028914979606108625619067759575567316255594661221033316032959272382424358245284344043338562453608652500779644261797263599418571644651932940736268881767594408883167423406721510753659019944852210086493256414962100646888272887463224889008551368701596908283753789890870011277414323984454070038059602826494522974133190619706656741603593642112111511522772135236827506068931726897073221079746232732926651613050489388215566510554919228860097128843375610911327312200491859956729391850177116420434641452354075120097753662612444741848333377202159632586725128127959994913580423849605644011873154046419889133695843111676781303148586805994672487366469946490230200122833391407741477064176474070075492169760978608832214681951321869953043043843999684843759822676689986549339636054505690749527309948533184131592116911707797363105622254336414823664350159170659671001549891980836178430284808062956058631249709355194311413772193588274755962310435245870296962544342236636217003616715563089643190879972192159337076248124319391175037924517420335226635388457373164094175358631087344191620448704342711858849720986414279498262086952809792657646464122083581793859697536594448172099411743504617156116846492307173276763391798027841390688269046843294130735631057842421700195666116431306507827248442486684941882121841222053579175070616618510494793761912629893360490620976848631459755134817609487022811290134713560770836898320281585510685800079038179810201737503915404667109340763816330372320398218511806907584175479949854301125115371038954438631526500105037723847276254190144115899703806746736428118929438524392339129656382623282929153415411097836630141288776906329268858467498159018095942175138440732194943822454096137653502501318051375964701178145883279617707575572885182336510808652853085437384313616832475130569483872534448455925295353688835412026878831940822252832498855588258267034156077734919572453442863789724489157243580792410250717371976579507689353913784742785893323670722628531825698617627172681310760178124861055940272650343020927294938993193271999576278082968201472368032390245348981186061625066489913560501099449082931353680422495375556907468980614681390043028255696625170135551233774350890430909785644851035854938335461251464705226029303365113348855577264128706450475956359356969999668099219794278044928962444442878236186601440829169035086083782721250535035666563425878562073590542885725398319888014045122167337241357062082456590988288708829393779755844882508876233774163705218469441021269651190260791161220903302134998780021512612883626428077784403572666330892414352857129826289384547010804045434065500056437805118927716704558427764007950820854449665919345312322195170716978145477877251029069731004777053415519961007585026901785984136048168534418834262500705933877361143903696413883424121002196533822500953897556161841299498623799926196616612156458008495921386497463719752017739466450999781708199615939692853371921954820331438971395657495407037682664424438877253677805612319085216650565123412886301573083572050656528130194783738107655959471417701769025000503663866581704534398035205416783310873064854089789289624624492765321726502792608584444206508661615081798217698389356027485386822617835735386596666978323828561446477714773818287462564362352203907133498338467694981699409537576567864702744833606825989975309019631364946498225780495837265107767544648697078889355818488967439747199451436620573919544403762977875874121076506935744929210192353966272330994452053856018929492125402218257183889499134989267478254326536793637084215696305582792807356369181068054104863729134006246070834137232272968230090920080155310024547152429259277965660371345151905033812363105103846216609310912705078259152961493606358900156516116930578468561419434980373757304308700588059248854440511169063661105145635447727301628569635328459622567267684965457200342445446539829471356092258289607944036178669917664922667534299161298267927695181408357944890710912853201431315742206262547195408847284764166232162026061581564367083922203172175372329006324543524646557516009807863576613890923354828564483472753643684800175442394455814254963242262013936449223398695441905729296513934502428166676395089580836556024812689015816550424881903960964456506999906640887085645930022014027124428474238691531588095610893580529030115253975976572026069546986110348084346255219528527962729475143545315816137182525077463430949684929444988929050265168473371968399934649656230450107060178167307356906873088213099774657806307975720654415786356719064028722818782134919250816016627288627186825338575350487408523170295387334360821714412469777659089682923874326784741119011825400675308764093367896367272599698238297496333983449897517093360378499908749588949497204189865689234149874682923476302014836488011199253685972169855200115901450988516568193247393984307834514920149640464194698401925816241199569011442415866764752453290585132708478033359023140071944819007515882953212814731097230154600984763911073713944152808023831191964406009383769891496655724444995163542923775795187223577272858423357912287898610559688078188571085354003535249437170943690280903870245221686786174974003287202441540036953702259467817014799295637293130899187641536612499559482616352085406067044814210799059913701932019038641995350920389396585058668665107521003020943923363454488495789287597860324867945629948472378492706699271523555641182256957952948968211213533621530810211913957702227529165139248099592817549854397838125968422281493741346830998775272688174350823162574314892741805102784261807607553590839845837030317188669317383580366825845256430619221598475226258609314324604886913432145578654573962903712044105406968499602176676966525405322868916644773799909207037726017063619945156319583684764922845410207382770512702010018685596190675609521744138561463003051151417840331570708409550996161699569481529392165400018242064870436794504347226753551703528731716537652454929285669125543648262287792903083466044459638764628674572336668657800824150845673751314394015524187305358615924085152603714518267657278496216903545765900452708135372484314633042952856454519415337003137662293821408327879290372021750061252862483141800272644571378306222509787900772008582727288794320983717679979445634574411999719996786098385432660030497457846615581236227237009050909351379419468945542724908457606100270400536511799161517369402521582556916915690049580505368328078799360693031809046171796522227616484346135311984532910699296247016641127350480469082033811607288087784310528089936414663713775586628127726359978923897189314740700924741474362238937611117964857819415390305792076550510474703302369250640718872229278423934560660724244365447481248698367900826892518740444654633095949831776567138116560780684272099882846505003711906253590897269014920896945049504042862115815921333193770128380331384516692282673600784282759592785284932265621654690715009240269079260206244882256511222828234180333244059865676866371754167503801094443762481614531298997162287950718089698840408193453000972373744540533089469097329533039824430291061513919086285963299584724315567225158306224395412544779822059698705897904713090502727691611499359202882180031612571432776441765608095856475211520215875346638936367663196428885670500283083826784587695610474730741887855501136165079958843522446586045426326114720137559174652290146438496382030947221768638981587494017843115858913723122964530551921844820014016727507446387724382870316418463429901953379434812179977306369482410725080186378501576144556426082644025187530665903321449572791193166277845825351437522736922431828336111039697422218400566814792504334641318521455165617101655383231587128618694755670545361299194529254424229880120962124457021605162297244970519796332014835990691703335684769624721474490415555402237000286163629926851637061278711790885441306202396022458490150273714351963176801756864951903557501762054092399259608279011625279833763243286060879920932778649307130272481178241783903248785876906606220521426975020087366987448438261553837915072312784377623784588491022421922473872855795705808164242737805424706959453564898040335496523434281378266488393607844972635275050949871710618313776851907154372848652277018665790831077050537040746419247852901040335651540599410057658318019992521402105811945883726968816469595552946471099110071212544674914746726526126886544036703709698472673250299886047206830309674057427760722299574173570969994024553475770561439544861059685951088613636032434415222019855035671028837443099310329983962718662750947636264731248894205202565702991493421696311582847338757928892312693930468751824053426021360952675777960362841121158439887870724083961328116411463845723360820522107532244087239177937969598591104577161689815944305911645379722474979993653643210714521344728287629204842545560752436058646465343011253612435429461430366642171449473663703105440260030025234722610448002631856194602792496486088087599098654167477507630796527434510414988145943766931964022792184653466907371758582353007639377053135095038171861981852667121370532071659279500090766685336827468714136207263705576745147937327916521691686964628228919491520150086338162733257125878288040037375578949352099402148881188969312907063138369806246815069351709611574396039314775224372495426536259138414615884402090765017380230031502612173717764420002870822527876271325962842794240667923278336888771543345028009040870033691303573996040733144833921417017558036570510643323110494002863117299663529661887521998295351762238310104744273063793441841135177487594184191153220178333806409468843898960244212187426420781276834444208589651510760228527420677422608096606422546153947008992956964549583377689129645149772917657373653472783892829650410330459904604244231174956908084434379060767765879498466357655431266849085293648464229323628087963819724220543717881871685114661237419035599537915151332070393112592474340880348904701092805183817186057578237918213510702696530488835030504329940437165636487888493676434189473117493815813737362677640446938285769455425654030876523077321368251038720949991651433897837064716283592956995241425238759965526244204566070434282768500208820646149343316877426386579012168952537173297014778779967605417319859592898196228543893430186029104013369635169662348255023905788393874582933868507308423991966146237424381444847943614518885230166969150543983758488715063075569953290812618921785501955518320765351321518316508943681002086339036585259275551225513353002513538676389756693987404583097885000023089563284639337422214697795401900289093758120411594822995944396876833126168907633778304568791463313301174627448074771686904973269526393210688438147598681922088126254360483719565034556002780861081187439846896695202381704516555950697296886421940912148701761951721183043282037780633482875395337373288763236468860309500020920986458341734958328880977041835956814279560340902565288644201716622051703122173002934060305895505763052241652055454021740188151521349187252379451330646597727567904499661299664375144334277790496873343682370650732578282749715315496633987880967695084395663230908507684676210253077268633146973125721927293661376504982218033086171938158521607405523605704221165589497983107787751105335144765620664370098218395287987040827860964660813461110763529259718639774679009420352640721651691464789655247218576210235505241151959552459042690563721610107531537604768740060340145823676842521479020666670652076568145966996566793942158884988953806373507445905515442328201855141902132648756256543595119847748598277324016950443434567218650496102447856636789695508682238067004813790376039546708539715788580605665283857477317247279656015988450156365389996945860411916326836431650725369357867723205195643585885095341825893515471505261160969613079379174853384842776257696169275537634111250614171705594465847238188147633992406783699960647547971316192576292543779987178852565726828270429547248534442306452095688267012094147178861123902899107726205189480696655529816841157535452157271999025951682765616752500506787402403117730558530215968655711999587776874301915064254057041045366633339520348889990989549064521668731624654721427786963046623459904258584029742124772419921739156801665009802072259032741160697081885585464678137797273823300573102354404346350887925082496383371842789923666291869409581535983172503387014299756848519889833144469677544049370338854377103355674384140232927680215504920705148481387990480258658605896230563342104459185778361061976356952530589002873421011746335353629213611281504106717984694285850438399987644432206950184022258088531601452541776997113821700827940616601575094288599496921572454076867445748553248312044557272221661192412477063998265186889322744980274645238348560534985261511505002657667568273275852607475555725738932549793285873759893609802239856787067661924771162312820481118365878529793055463147873002328157902769771997292787911105904774384108684732446983069517949343437866180710747542886121650576155068060431272748198548834431320010892206314677929610914106444574547275289847657428961137042352334279959815284022646839517921020146797706173042989210761482306366477682077292246033624576584729738452439883195239402758885946663173814089878931713816565824186426346370851758890107088114403123761823947391306335224494806598932559884947769601791056898270369060999834518210791781227010708019642284495272256215768412899819789856549865886981123765855913145703736331518591770434443830932322141210342991749721172964565288518742479259145165624464740548276354527360407263016338817876795267280235411056891346776270821616512608533441665404266378042118473739062353620947667010276272562604543756003852397715921649810299666937192189981858135720023859701197134107870705585953481750331801786757822426933923388510503272105447173639865365342813944999013395717102684930659863167482498775906690487132366226361508323558492928606797380921703645350157309182053103926924061317569388724728423102161725951541323141823166835248741590401663765170830925849938538280607859468902002155842447904481887273345143084900431928935811665948492067676989483652637842766495903487874378883518024328145347179904734025211869514991370739853158884615827636319297833613721417002471595426813551536041164893341408048489630837949192408252606009666522236166040657995533373707957690811070945802748994126307820450924678539094741083132633264690962719602606929319091950479675753011277595799447928590218599069669101821231963090529737327811372488864255621734377319795962916203817769652709065820751096188106954705449965047627852518231797558130538825069645595107916428258431820383908211508881295131042316382133494856181513094196955801382307725183752932284592155325028600113341976427402748374377312563578800539122090011414891407817794256790372147713028518942268834304846644153555454248005906677975442610268427385616264037362798445887676175988010845110263026569670925711316697360495702749986976491261399251943595679045547677335152339444409370527318962708981571623108820068931802579299983467169059058588687505447986428790986850133122822816608632145621285028465509277292224350693558914703191890454952595600681291274916628282681904727635903081895953792938356789275528929901781621483705764526258960695626411794775500516725942255254374472495706497216851831921901913143663884509321399451595506281156172354721337803026972370594422836229013227783261709981021687548898319340077459569397452540529029618186565931926963437945490303278077523846990001959954466058116943999014969685153801442050422972054623983325434803536439668765631031125700901940041919717890037852095737567840438967996329628630164209436994561792124346572778956914989342357279007668007580714644367969121431862052259350103112979159033171623213726979994271804102289180330187391891444573055939275623067943071198461471104087555477588471918481681984079471733655994285801226878472203204908852897428246675465135666988830162646301241707104033410175462532087129804974672467516991965748447587306804805134925960182179663957016129043478386832720671325487185639805603690725474373739962313164628476678674634108530133803142441142677898566796514776626921550687876657359714857320290731206974329323002439369546332701815509008238069009832307827041282350709729228206651204954278170379204586467478315100882104747612291796217571532917918437035165188882585982335010350468320649767598619103916851034276189336837876279726031761675440022165324539923982326400547900229822427182606873822061119126713118351993553754347726491391809544316567742532884428684021465419837827577678451766546153376830193516313585830003348536388200626387571562287727194016357318316181793943763253095953333312191656715557065223502610676222120608484409508689891466784000265115272378245755307867465721489657208454069970656075247888550569798960822204451610436686883470389086333699216891709017569807309954677442216739476411435161913915739894453406895981085454707733658995541891833172687029627403291188556560122319261623542560905092157687439122207817643150559639816963525821325282108190714436551264323745621776442212981604057396504847696715200683021474003990319696794140886704811949386548401837586638276654561617323864381768737256587528693746196629990414306769382600098767838740652504277321830313585961485185049938022821244092604631193975257478831484095600547417115466324606027443137563441391119185435886762515035564990330722706337545964698786815737343491200268490631872427121570161544777880876090799493259965824328697957886890505649028168318421357869524870863290162837010034255939071842890168438363147659998889249149354749590066832465636026589771458792918596048454717170289202520102077434901011988067117550824643521313272903368221037603657775626682221876125192273132195954105874773746714530798511978227957948652784733666489771631119494610626835940166893796665601242868540314117242211392919682684093658111101981346363577863387004937394545798861385119268415235882683222673265518011354244110408345332785312502521697866548572513737422874845678517799008336019967811876045443620767452227848431581741501964945494158373422015275486511107884840304131416226080378125284594296557572914760712450012793930212621930452396949403486976099158680744532200145225031931595545692465520185091918319508204697368024246943984648725091793122238183647941639762681392808277301923575454476903233134327761692381186285489275383235705080013325312247451997777808603082280582382526631827688750441176090149370617066464536731065018692602182235109210459115727523419359704192280680752427297489862382806310061597988000046617844012819573499136456156983530718327948975778692975464719099156413386567447313243910703042498075745134251264392020559664823151302744589831275228537503801261389871951459346635863383817240399811796073083127384991498544130575351794147947293070145079004110517151205038201895910560236263412182349509025088576705876771690980304022526864173157952177841533398720831410765913987738696591013316291281335928998942590707940383696779573008770088830069571667760028595112982899956004910109334258683631069351668850481759746745214505720707148114142045355738576893769919283132140493800015206109399001164127794668038170119831380678951617117705689905260893391969326960722964391292194912143020963149895264544597472932005717336034230208448283427840430316146793273496724571057803756908671866154391344404202162445822635507692022247690591887428651804414217866461067448893531033871538980939740368943956797384724472954063177982198017296757609697724973385638423347281251593194031143277127044903916486729682338696537875753542072105649462797822977648192181618115690911419820029625180271930306245152656980369976652149426869869562133603143169266390793041017005271788210728536855589123530013792511075725708244346841048175227321637245602236015903198445910378479492754936413619070774326000412116805928668197895965478650208130723238428825653010835357236807792081497428491726190661856116616431534683648221268271906299066392695998670424493056411762434062293781348195521855058194022231273476330561478048356747564547230973450088066526521205766332157020421741249042208151211331368830628765337399479599412068032122169114681863549982650316622756173322743596912653333257074992801650041896379649224347970672752572242421342962658728904115232879635775590225494887695857494782121415706399885089155691553759458789036502065834695112513046970811341105402512432554779530596968193343159829136265173868030800528972429477808024945486930027160500502790335574746339001718213672912283613639159819991236156252269649115157961790733755255475847506647300263077983632820771696685761487161759635252543785916076834046308666921092686062232760334350969138446806651633758387399554105592612608523459842132067689180653480829531104144071312954020739608839061460343207079287482324937342062960994692387027024249835247192603942550966393402879207361189670183613525625884822422488166963278081091502912686030465777006392853825649877937229320374003492363901077929383814032349815066670834347437677610187938399932027079062032070141458351730545693763430275806882315771348416910201633015956501010488173538915682183922564490580950050568235164318763834009771528407011535131263934348410161880301727555538266873175860179086149199952185012723953456002912900236906535981067989955898841952652401855135662331123303510437573704931756147084629899085156790229622903089375718670970783372912260831281573475865984337527154168223431940686778987460984767520324819661355131620356909723436399890203218029732031260405793837723733809161469140471450628281190262790107445149397464261730451903047139316354722824677027221270852720748244541678168490619256865371223412841330984168828980937989187801799339833694787385547480107087352005435810762085218701086146560431111477954371099942080500299939142913979444687409172456117463615075219115584651014756761350098785262634328441297164435132916634004450634969807935706480972351506688791071906652077670202513416404922894017482933911045185177703062677482435916169923097274692669409558010515589766496797300205853558865548127021178968457312406194941799856378994262848705776783201061242736089807443880192834274171384262307194001340954035735074799140656327801806104116168243666421279604420323509852941110185368906671442330667910417487560180700946305234568195614399137428502585849294214710047271354683752490574566340893223143395914957943009077121603176355429082922687387484016832484724764826444624879526421605415974512157711481974590335533291808614377088243774531208740722530975961064334608341386341585801082365075546843474050256837730625687608991239220537844616660959861821397498351327337854672975744498547204132332314834123400343810060456725026324227016456674405024983359910877746725761559463662414431771008702156182947248678116757990102897437443301540810551030980663397593016040879858155869739107217992175806827358397573234048945443750446543355032447888873414648521483780477311735358912144322086829159124549921594117680696689791611445606354431977418494448527964713233448010552353703886786221902199958076592199036188633095270893784918295446306361364020255222835911550414398530063862309247624678395620885015726007505465429868964785880602216860476290229282795649914262513109929485699762266384324489962466829232124542619358421228338955092050167815935134879185330601052778592165744715819863795590597293577549980395029130585562702250264773748354349201258669884225795743438712005525781131781198551668380932729057030578419431815951220816522249269810390402338461120714701152879092053474644446647443048084052552606071647178091190663887269340634790525569025504550440057475723735320150593772348231769726474313124379963360830480622149190682780912579130289970021506534650457245884350026477898556460842681445067024045167755790636724053289496081005184552698551822783818908136336429525175882515615636271593978278934843870460238906361615103217707450162752701452336948480763075944775111620414791990340648706511126627816395335172652318903932678667637173876954282366999959148368230397345587158741758030424454189064226145207864632385034313867619288185031337285840432073150134016645877828994537785476058768760617388762445304357255157889808574641424688432237062566041346306590599101981404270081346349674533112487927056701150882020438082189985076259065671977858733671759770021688439531539725615688396329234710000259925183966552322996610981821860615105889313967014694848907836882341218417812220474576344949782936048398257489433046003549276759404755781049627521357009437117005493758871522384460147535515435888036478348042824804414206407186461033128597873975036718071895927513341835659883747382175588748358843499073393184057929409547792174115254964528789503113570298153934580392815364762616169726815568073685930043604460354525079651371088015112559186023368662935986269900141643559330159130082564545576663678566091409691201030376711457121934074375391555056863635201227695175633605613968369334643999404586303239869208658316903131838372440969784519169453103406584240086958324899476442843952215593775211346554059920024295968485113317611416891373582681020037185825565277091891639158385850341190346434497600572692589006620792864269165108560743547598053667017928714344545675303613727712294147648363538008928421796750156786596588684961384348591673862328019698570807414965965591037422377194964585059882254685486806361983687704661041313908936628494979274738381689062983042608097037344831830310164073939967135647998491837419108123237677874564578010549205189335982737497133426775166942216406966348927754535044271454338422807518756728149657905806021232403806691105399478793304380748055025253874417449371219107986644157981108895583112983137897016359295256539008150429445678963193942479304731691094149321756805119709080091260425173498079169274134146749362044823126127956882921372301731050693916358943616862881557944801046506606343417343466474447888519364307740493429841626766972921484765357830681325743190190225654367073886844591263570162657252004463457756848073792317171249767056094057497862416099249421236715832374374237934705846639681234567447699441808046797625391497745626670637248828458252907529281970504143983976306698227335907228760608824179995631960827770109116801692440434664077935068194772352194990396029753283661568649112804292241732284542496827102408850645450763295303371481985523100707857748116598455097717039848481717351072894059975679239479573094661527491994134254303243856849316751255128249630721040636607708348962369133712652271654764777112579691269536971038862164579240975465570784485288431856567500538622184608393627669497548801254566849440886971507413815921015961955779682836160316876684628729450182876649319141860074938904112499384462492294539013425098410692548937637799725392458921800335860689429013813732911862449432312572775813691593472574919574271116436072089616495098715060282000539278907182400057695325875883993996696438203933060122267173490946717713258432799565744359984355169418092344421719298985932282369692301012838056010545609436362386438970840817485089817686615927185672419761850879848607747905224592643424116201548279814661827245564181154671819279290741043286439759192268332460849963967805716293657441819317325242810319880274216376403101105336720293838837104461271616405396487167572000121101787557486373167042530239153798774900282951158545783671443985218941309708859486979292946202846576211106247571525214690781325210746894238234216536778816450442815029612242906754921458141898100913996090751011464191317499157723754434863204663939125765595223034730002777531717807179436724176379623771878610154450393468298451889493026391895783605592076464837570292655582972118874927368618677831828401205503470770527509964919639175871673479346233427753732389862908294655819024295573494131561073236746532783933869903025637795472342049781515294839498975067592961116306800879058550844346764992880025631070056083342636438913632490995448406451565616434117834131311648108478931998160928721831703554717627242570933630171924992803793558243556956726248892051612882675747064775976393044226023065008238661445854088619207642329150723960578607690907177260818793652924623907263962436591838101467977630495282320389392075514404005074485218405098644552099084836934626977863164075754608435147509784509851847210870771009900573760361546808408632144148682515272457373693596921738103440277388771396623305128939581558236500627785876253535217959862473136567786357537797283024973285935936982360158478981716935268756874924007596383265167908003131699653706761249366287965464224850399348413042640640862042277152267181743207200996948434077440607207058541587134489043106865166542087989310139549577835680692228021997686755255535336241965300705162294595452667910338579532227767358214912054470250117760971256962235564843659210066939878582185390215966918189749525498416854723653187838874605206385423760658061278959664153296683320440675178052018147304938982013161631319866454796258541838775799147422586085912941430407080144017007575008117609423910679927512232572684111145791257588389111356827867790411269132621291801240156736888649527712259882426699005440489955935384808159125171484666477341264975123860178597531318715499461254476992028277948562891784239435100677724364759085644153981956102231259952153792536802602612879456535080424604810937609189452816275147510190740378716523307765240630988232364504591692087595978723692909006251413432143534469871321795915736351170353923778600155758177809280743475131300638051273231123413515472321328028484140473378490665778386630487957672210542898565666678511876742525721024541389967103369406214751392098739801753049863015647149518517575132704504703055987999814896261097794155847854351190896575693167621666604126839312556269897663228713967614907288033473328276253562124460286430537828086568863044097144446845449604439934998682021714575925531128575170453398788702457916455066726554714405140727464996463280145039695259727645760873575946398253157142970650637728094725232782171012300252878538459027912525178892053228946191504202229420790975319625190111992314201962631950450976787076727147783532814082728720786571951268543457372083261366910238364804779052625051508226669197724543042323199772856081275734652357241412574058314774785107676680538615441776800371060849764760383994068831324975766945362921163147109873679863511013723213893657561829061390932532833862558881746215460567637896843503365158100172949496521880008888949696775209237307770839513836157128668273684368663236059997448062246175010789789378859629313651450909964162962508228563290881464394401448505090029005872545997540311020444933807084347084720487962572091574449009003327203188301944412843445787637793515355209676151103759633484403098005065747117395908219492068929182217342657613665646526373195014435724850330831007518218778358260159569634022606713829426140460146798702400482183299433566839175285611215608200331124800932309919778911636783245649205086302615518054181170065679130989427735473042088195945142735798164749483200074261535820438765777122672117956600026392918867426770073385955756287976004357977155367893433984220479571871992435764462520576052332692430417358216356507355031020144336745606713456421919054361987550990054185807196212730636733294577449826858553657850722886056448156948641702368451609551751248027897803562396038318540353147325138548317782957808584413186758981027259294625376842447655171868799413996912535194041970671590876159225290630702188440412411683942069508485266667357251539293797962221272881190762389716265383543823054056828631323345841648142888519076690338339722961964342237784816717755081507752551710646045948400105152126207647373282545177214402879005712830445591436367718771067723236648656053359144663828811253128427206829785165690019192250976441904986587957199192465441608632777858457656241752448952404887401207822432299828676869754668335486186572574580396733909930815781829726929896530892378982416476385672234180388986560983906741194255297067499248463959069406203615665969078513523912519973035267647603507126738152279629616557447876177636547238404080555687309509820474580161853075073017820474146776515813290456999061635585750276763544764665771460355246250168424740024004840463267485428952875926988650238816446217029622125043790279005629450345341928194118066714529518509365021724181598541729540347134559551845046344371468003369079158552360446852552296793803678853792708669857987669331309242488602439338200782161223429971164885464451185105160695822889452199360073107743923919577263509662532624694732872110627841731980578074735305735179027068267100404922657180729928974094076181546450330198621416323994811550153290979246430167271087153986388426399587704771210826943187643567223845541421789412450643185501372382389154777782522558677108609169387658613997584869518390344308422056294976271126360113513584314029777568424002281477225760439024639296506553108356116759842978617907053505947733955905772409432799247215715903153885412448165976833571022850623255982892763650946602299803435066322642551579175474544331225077328913745551063555207815398810096291143967646064310518683285222216447896339363999450360863479296075155021531870485973356865749851273036993678904550154133332233217156110526214427608409669938305545074385527105810859170129363251822980065558468671595887290325627262558977820865893221043480227548084345186881402123317215918231758719938169104024856429595729765285967762951564991229480107939332947293617932778698629317684827706885138680713224546668786086281647834006419019714154088081408266358687071978283704751062899343106042139975137722625525005231811488552698107119582540335331244212255039470766487977365741443038110537950893767034883997279012899519847989228899615586373060730330335248473692597128863035281893321874971895070896919725993756123303361352504940033987681371767652653609999062935579500009903103430234986793203643277520375300475353049295809473393870987670000726055395896887769536268312550325375909711949961196402848070476339671874280197490966800305081767357588740857132923192167244118072306932839446486782671678178428011862255619405206297839649648836282801558897709564541346894683297802283870648629155460951888284574871670453101808441355827944589225157044761433178779491267924539396921706768336646099005211396964111665467576770627867521606470019755617025264241192679587061766767638264105571176795849396629308160955298409027044165237568260665925789851724563442953397463117553296116694581686522706835153032298484818945534788518768490034842570722815072103513375007632546971312767481776768907280280864366673738430067801351474193419316787459218351872186828818750256817698434842411079205791567396878836129075874121534769941379561898091309147193050520906547107393523707654423466840775976354310179709657895433513287689041569280727963061436799695235551836566856829670667411580380465125912784223858060786035404409315131864689094619730559008541162060372487020146793280906166072170232872735706853549035702793900464289427897771532708648050498498878465844003224326717983104636011222560169614518305698033486666843497277917854306631592925914209134842301192935258662646525246623132463076457091042927777011439009032799381099765782165634265016604967390116806097774189098507429422559009877653392235912643660288683178671884974472163455349525685618602515892711667362049505162605057808364485057211051285306211559531434265906377164771373483383825630062424674345968806458831354055718751729204375815885566269254508178233503818105416492475152516473604705733593761014014779860915752348181383270232203190704706339009589158847387066458408866479214665013208356035504378196244188742117892127164336309780790165037865758563612695631659811088567339765399097392365908184717081592773774080712218041310485599671149168782716107396981479038789731477851127995341720198773922879983946217547083061741594205558901834154441634178875924935455879154343764324603246059656389688524620892934859945856231715912062886167876770426772712181087031513868971223583481899418227072513745297798751833783175425414873993464574031143819477729433276440283611040519468152217897794466775292465444945314456827830842060361387788254979670635887690884093783456982817685225543886907429561131215048274586575793402830878579991915982510409433215201369205623160174219754411262732037289274896286117579583639622324965266189116592018578111450460376654375190129693347819797682103238317068939881889055572898868952318027897736763775141101959588343052300711398595134622721279130477433469777986027673774885249814655630520846846752841087236273719391652697009832402449005151951120988135768389812742323470142773479988495029251441444274530553561313106724295309345766919573972551148111873144920342002443035793252755705202878231780342778252341954654731905006067807815744887584628162738960173916570709511548341308247529487095245154683504327300236929050378395858189028246446683807844410698729490203204748484317297691169967368962045809758275083912431232304221673445677474080933223288971064410668295320633648407354086550279203233281936425442376701749081753219484395323036691753550979746251316839105986318342771362891235271643018049815341351995274105949707006298853223586243200735143366473999282714993453872778687684440354766976424152696375483782504318617832053243958106835660086016609823731462261269737645181858899764689209197323648404995453308651506236651927275212212047490138264835545719785819401846603503313211460710765723340939474832435887324041793241544268962888939094101367861349122886304654308861178065552388867120198630728255820811656192499638840646420952450276935728591994828376942158643988022705322004623920212920358328325110136540379041803031413462828400607798720045189914651638166536608298488542424196820655289790703562036631707605031286390858005497280342343338300542003330469248452567886889180035050076888604047016378801930433543700916440387751828944644876562880122766645647316170307677300266996248312517649686455690436628853933762444698932916991593339831653123609776872994407201361633639450049403802817951052545750041235383408106566249504092740516613550380491023226235631912824869980738879543088680936286347207906855653269103193923520228005273243440290318624565157581325898981890107333323196307144188481722605903783379213941618158061566657429408631030045540893437137465594315135037994621224804940997987758185373712852035881486705342434599552098232858165911498718784231942673427933065780600318696565323069122177693183485857940150152517895179131814370071944823128628125076574397000907545580754446920067801941784159705699737393132102878071727578620577489693161158170455272478548591708254977975323173333599000661147251248927100596612300583863825403241278504145619556808790038171117072744136014870880759075502653557281934827501252747931617781419320374393155172392469920134377798219452193240200238718396186710802099103262713972619556573210736641910511642908914073871124110067050961103121926750564664269374859795251750214922044147072632543603185456789709425107680636248753149387501219360736064756034135212666843189621373790931446956257493902395861042609967494787133283564614069564919369057166682283233277353384832051223009313143335441494963154837806360076627688142627842825136926706616860270298175200106665022578822460290446429298213834366984802212197954397879607566257715339729698368490625852365722663345895002741622799792182668636900713084491157138216530128363525304793793563442609092715046395645515487664484078428910213601451112335830622652228616818590557799029806142597660460604189971680041105257686983897658369176642768783244022077528405174443677024691613279553335063241612500613413190664293676812590155464655483921228136478748629338026723262316982979284733084542791730398713000227124751266545354504474242780368735425291506177355132810449023666949178295418154734964562533050428751296149641025390204613128557133753782610753291924306480325301814681581485624720439841472079427944874387956015863703525070005423204296963389916950547295269878994923176963794696285414426949534683509577310404818699907908505777569749515708964021233958314406282587584603296217657091147786250696644585594655399393429512015467695903743653850341809499228911545848183888305837326974207709953477993450835349502060335934204187937722629357294610680064295337877171824828549726147388591974959109443383834257448519226591006034141247503109507298154823682968540585219256888275860616871046924649703318010439883675393149532822851849924222185583272582191459557651897937495417035153840705722592309314785112951053198718381938107388127568156870443603576902711786085213322443937251654535056223058431092595889507664139769594979992808022769119719484594292748618991140921662960114065379736048138130196323927582779937088776961394268795574440867715909286880436417284678484663656572349238676243307035319117800583781657662396730822660241182042466369328709129927489927869272391299727946833978125882963826366636010205863048055641867692416874462794697250020692653562343806339369392695066193595451143226534310609689670854746854503856533624701185463479550542521537043417246583565299345015626986033312012212337479947246275790036326680087493288136676908049326434914780668728448996749628896066733299387099477196149382116114052284118898222444255431759844427355111233873559902423561916633763577675824875798305938358034056478354542794105041584136479167486146046483255829663878963502719497717972847877843687409282198915461192906539790128795543861681561204949039933522979086711385310473280072481996088216808739627565683385029523344057478456448821485764428937014346445528465322052760033147214298340357761121774656552241527882825415423229669436490873599937670689917119778106124901754424722433279374249354508523850573187432860931593858029992952198889510095686035969232866893108073066249842720462880279855143224717403749175434141275174882214193269189173477155691888417376950508372528442303473932812035928162637060539828174590857044887926532593297266630750818791616742896988511108710470600063964076190653389009682357450292245187148977307230734640586712100797177186906961820044615953629289536735989347484919510246922602051588313134613751346414692017644353022258802318140930123625744291743617543080648093212886859519888446851756167874841453906160978978994677690217439207124166086547287549257290188575766963598655146873852772629586589737125408291120679406533784665403117768326504228756301484271047097374027970615081489972660716942950751269857163795976843439688069954956294499949293682588919411375057768395726118589132494336049891450936480449457181722895292766439194349504503600539887165914404924602932983338992293540397200530514756346003769890842008629413595317345205245278297576939323114401309151865294861049093345937564203507593232661578863548020318899402997880040121667225682010032363283222901616222406053136772877045933721030824012832136758747774923297889676826463545093350475001008223255599619175107483955895903364808973211902688916986014855031488375876533604145113028348492133349190099657821023693106927008131891911585884510968134908540051462294059211301716958183543723196116146637394885391740081998197449950183885014346051070142211078780441621522330247582607062089750754994931355114251451275717080447370614728890281791838038144618457356055434791311598228579603864472357638651456318671374634569488840450016517289039957050197442925824295704719965052034788298465428754171022760970542407630076096244084640931212059455652298500180669282759215471307777074230313208235064810617208495347393704980163736697631754421689445429251701092978463589630687016864659746458340049424559235511292553974770021582932752877423174629457441389597559581804059633420999536589328260295890237118048691726592250245036286727302336719003209380557994328020088197992731157668464167455236405257638450403959202618040819953284829803026837006445588108378599658432997470118616521035128737115220781668132283883951511640301631142030111509204486109269342932842427432877967401090929263295467471849820208196678846159649758386278531261638868127703943327081318851142395963800361448164120113297574017924079359253271957457262856121411975961290654982879173234624808725430280789103551169784486505195761777040981955579167503552666746208209045398097472714876326655932159797684513176079637393063437143496914919377507817945267721154126945318428221777703539793966473515178525397065428538379029128064833940463717218524724157518651196083430036022364241754950560541121654968401306927736123511664664846420382383817694115788970343201317653246585156323246168504609448800543058432901277986942445730148832025885022116385624258884990867097696686136039554307383352921932222401806182263622531064299848496499479585714086941712268918423706733877313670164650968967667953783025758673134238547589362421783645858155871418033390702570106769320315905718992822773062186781785499260906003107299771731166486718731869844982764962458173446013086203081829759367931817218552442211176667655736726062285024378259116782539079014197031754994043368130366992792386512577978667376215918899652348014662444580473450128240764851023460405140115507033863442371397718748839800246321445410101414793234652239699672079454726482003880580833986733723465430600836463728649576896451583838954182184865408618801550615882706782703881798417566229731718295670932438183899947086841396192345037621916461180450085517883203593404833977149502118029668199297682756922261566612996186521611132603583052031333743134232754312507728789136840300858484990839968206538398198203235529132773325036240281748238159752707726179860299777196419907977298557280026641977768800719521056614326094352500413916226707301177402570751967002729391880765883214481771410272917748817663017819270036459963990905603275780760182663783546806573592945598462959636455733959302926178892744364891984115173659669916878950682192764549002666714033680864893090508578398728603761366470124100917725916268193507514031247325013051772451520639752297994950614244903832667930129506858560262960099077243371734675738001945320949601125683762699057057990180196990072024798359091339826099104494243500904320585213270194173716428159073259343409383154096342255615166073787991502777393147982109713988330274699246071818693026547912712520084641333869636128265975445583823703051359031694614541764072081690085709302415253380245894213067738506780221819854521826646067372103609671173133337181570169126715905215152118044721229935062668379558484303505963015961444002695710998744360544890294339242973969380496487931316474242953104861159384176039877835868026170765741822408648549766423294662667108062519311379459453267579555024966681224803185039665713130828050320298033258302898131934565130589972271475463945660855375654933107518207314367015000718878597386853838697841280492312644726280099681645675175300078284060477774061052206668395482794404373531438656143010392867726075758796057670111797723657572168465294460755977117183218555400922236391900539344655839445136594234877668566684660307163294970652547894809066743819141864308509786707479169587155662636563768242339648695412269006181090161042869049943787188625119668678745752720561472102011026438975399068730730641867031983762957351842102342909504441070388647088706314376406459900804829937688842028796665386616590250946729591418539226631188879708681925828294732949240885600067297013015854554931628331697881769844564556991264355739192130518667750324062484349009831210585641536390650039936146759966653432567010470203548137662768153567182431988664670578437854180094417898627021632281129064874494737641407686515735095314260221311155154482093008517662332058284869960865433522703458541522337018397951325706310667673100603917489619508813504679412629498002462678887567648400081959360826861284849339237238839619996616705220891829048634464776106710887316292190903126609461411217254964243951941898271924291345649292929506391394099564333369912996979705646463672236116607572618742157894804094194835516549614301423103547644406779491911234124426353433424170864167873448637016801815374414583895208656775007955993122958017347582349225462826737328669539642231256500578869484482781582744098848267337512940969313627406832393354227149864998677309122521760182317355655625444334069641704356361792980483849891011604820605564548382963308503314001006528790265716555211042159702123636150313614649949757177183533265411161959827476909584987558463521677290341655417602450087262846555446845347851931526795743887188780543530247876743682416630171988825930877465893879851342414571946105048874555067977731979570370624355425387587900009005002031471079289422567252892873923458553402631310803784960204104230497966769823727469583698494879816063347124501997309825961956984692245213355745631648827405936052109483874501718424603639459929286217636676235504650758938587543158931636587398534717067296735866558658005685693437315794408432473654967486384681656160341058443650434111193891139669531988666703946105670159661338748114542055926147526903834259477792660845424561281664919391703777199344780645339940761303640073043879268113304659504808009054529017959177004796905262747000518473699224176156409050907864349700872621920878724200360768404512011462197406694902455462674410049280310651153069685099144043232933591219606191331079838055707932525361987278755512842240062094722458099568038398448199949640990128582024271301921115991598683018736145959848805139802481801478725899361359876599543766707481840697455941963696731737380216847473018981150721069309405926104244866806063050417885948237074675928800537726081463604607466038821116782910565124062519117806787312098766962116671138226402720493860111788208631939431867434513544715630724168635379042996695901673496226634624868131711222321756915569225708731444617273736826343721168671433962898595062166971402015582051535838966089032699721780481437737534629096894856713728874406457817291737566099280029479058356617784369139932523765371324836604919356011676259853523468599769619286937615798389668702841695205986250729443089172926659807197203678198905642586561825467481674415362062880544915196843610226939554098491812953511106467855949605930305800975066872758497228748676751867238400563062575201654186770287058787314232219604462436486944189019025597039494019196602187860364587206940496175787478492842536160121408337083874025354015679198478070448648740052564463133925725775576102576214459876839968683372773391643398906151343200621183741683981003324603705672412044784787088259647725260821811861973986728222041925426307718806578385309137062928866063883558691174211122926716563564122329956892567562291118819233620579521144347075250828855435821460203338324444363988864740607384696227577438065030341584476554880384907679197828507015374483070505378281574941339633435032957440419069615774462280094664920046770689872841413151766206291191595787858178358129607826657055935840876056150554047631047755445830795718876226032176583574251059789197566526332083276603825083443282333465943994823528709463811589944762420260460384875340254957172083296738706034485531934958147390576965943048318827484408885723640899359840909063510832395442885569328219809729150251707742623764719139718382273341878849817669290983597683005073163505129973977177496360146172524539910036832912783783520718241825096676959963596143048283182414819365796039042853346267316901867039909138807470367558640405912242128705179984961878527052209891079501090483573744704934586021368708276042333147766843702032900996288674820295390324584752780075767537553161075798940054339480268000790544736815738221595818929794075005275587697631937462804628649000143977575402794437643369637395579095396293817410181960293803547423046670935629824244494215921383886375882579296894414466861130386150797104809608312747966092007104356331050306774761280712580825709619445559137158829555306608302007180115742829447799073443089754877022606521218306109062714228956968962505979740203975714651215040827168032659779184554642980761404463745612451631251786084931835115125828368300617225376205937953185088319717280125940683588992565594368702677743824203895431114261886093450110431169939517052249846076298881378628358723913397688115047202804150565264407105276831905091893658693165812087405475533275551542038913691857736872577003310573119668664496168987943101413143305218022296273675929785475031228893100510411671397005273307688707357635324414459474456237248171847424217497333163112303365084930426025395077855903973887165556633012433865256580050619606595166620221529408421119480907299042917314783970614478027804059710176624827187747179648278365568913419655734043558684968427320606424188715347292501944791432823004145959264291548913628282304933781817829627269346198369264765952169934835603610152799437655699534661104076583906694195539617347397383650728870036275636618214656789025885442128504409981789366276446209521675921539320998655799964399663790734413152233075181140332952290249279297670131843020686201992328104902130061282254080903121748024607193544522445992427916491560480337854845747394656843462072689898456912396138902343273191459441074210135985022607608378626744793759190680812375318388610916874886092352347850117543944685201503798269236765413519085946655123695960429252756266645947358585845969302746788874795469192105390774034775654682245785886310683645250302925549497213537515172506839616490879363405953805918770221611114201318993735312384706813885417403977110403586120102604936418787215762445184494785548127679564998531401475595721387185669537897362522575031444386402582019668715147800825130106029166379417429286793550693516947519360514742508319015159000509788526349222965710046806357119546400367830511233311095963639832863108757910602244304185451719712047341942330806693046361853850840150722403386648065677595673927051926155161526131983900024647503989671065591148400517255828908540596765565526158763463884759584932185993818048033267294780594561727487005842556277771973805975955341764039610949656052942873846000739082017425683437139012159075450781525286849471782646143700004575332919718082691664763753744250956269721997680451646357475002121580635192346340651170984887132209564406210500692884020822498429982579885920730653245007411352992521743639890215988861776299892641748523460353503009365097571152004407925319291500119809494382528730322196642447663181186764133953719837490162158825905151819638953926460428999384555428814909832257232563178230537710419309065212375103619595987447397550052167177960408288674799061188189189056722239931417215941969155028475189997407594806055775606602170827590839133555698603452451926819919816667285987057575546732466189080368599868639089694943367221930871698384535608907960288357821916862204808071123704907534993732722905967285030215020501891520341979281687762056631334769831232127795725850232020726893890392600250215568311422379461264967463459489806851370908294367989187573297604262875102393792641664886500396343981474628944339419108960346310644586011225840812233506273880955592102322011252609145481166962089875407592422689004711917396257037348296967067003856980766380029957764369167228227684425027943326042634445596239619410386415805305697177344913374088833613167073833112773675876538682638127069165225943699220342551690328375620879693230995077424312735404013331412572995603452544407707623789550576601718753843595611099786360661052847185116034308782653255167313212433580920685066662791594047518309994738944888324298067257985316212192767582503780142883543445656068291316458560390536787714603042265001688906018579206834982036349697567061665097130957457443271688542123760693842712843244162036694853339618151195588527111459627364188934667897242767189343545100098697156443079649557535560448866605651333843978477779989908752982528055305808113717792899240430874861473160967747332705439620605526541785711745935956709583018434643132767757081464316153541115544948511097792080683347953070169250051202694725066994015036324259074411097724783348842739048944383201828774877491857274680974689972624939662117099770014194876503197929982471648858145616573358236116796002635662434123331115260104465211102789651733697967325811103288246495237459611942986299946149599831396854235607421108667666142903565717338069071577525197961328668226822267289407733966006584085269050785424332914680093684484166339632554748911350403227197873682278663017967008520620437816052773879340381048877809827822934565123964991841894170008996254251702351785620606481267679021611495601389757077153891721444604569179027018754568312031648046175058652805907752517183052126128853525862686989439189691300532281747778187890736906505265430515570674195707432671844932051300249066344265936645677842140039007546688002156494293803029702392576183661236864430569196403271992023363621944088402949044548152068417907779849874869505775618840446281543612302564472808674627567352771776988153244602875133987907917543375584181969012035950836497538406266526935180747823263213385211840396932333232535256419248035121289852903289864325455062725373670466959142024454375572684677561679129010237764993654101116485143747314928092187317885738458633839390603900404293385572201601294464009949185888643593823673464505327291273347974992522044397823844598814090389916195666150610593336590926558644755794867506823704665901555594073501898744444957401197973973477522956932055418100110492041518000833720759906680076772056121509881082643506060225037997219467525160085453543685411912756134838564676397857169730185097132247617005961749061307197183331450338225815037398728740208784554619585628419609374868134636676643172493684811349990954356728504667407147227671175777035601796517277307909072417019044394255323616288210706948423975615894070618966874977131804463261675093464535199132456711112410603074118771477654272438838763255697479596416347382922727779948070760541492104961732294209452452262559734394691972375605614101038441848598160865265006394163790214807401663476165862010776081732521666254562706299135278984884232393474038750184321864480448810794225344057606817829183918326474246030050312272136497351032527414367568190291424377037282708767586530535213929441782005510540958522555523404579470428528017530339095203576405516260939124427706785948010303577326475982610453303074897234472703486722268132085366053667998942444515025735496518688880918117325421032350284444666391521592351710788151833665293989339203952367338465722927956765106233931108645884055946051688693068935979752402221329782363572727109761873038846028258050633325357625047446505941027580240266336771049271882619992721131907219354878732751735348988209272992843777887059663150293096648506449549842672507851484630085472642357598800535616083612018622257292837998686442038989308427923721860374412759053299830299513106141234185629517136724654873190372677183387624174727596219738792226555711849691000532548883003239109222479583080708845430465521430374683101663152858716983774378235852714781823224275386429257577587505780921454374935884866467885432682963771709058430292207621172387492560303045071577053245363404691915985560453451365897538659577845550316027459309844310362939714162751931302001481865074938631623788701379119088964195867748359112440638304718139457801745606867100353583477944126978871246619034938475289293666514473017464417960035793299629096350021316597180192896329084496885287151690085706970570862845522517728509017620082417464239046886816489317693236877132029650035591009534488296239877936055023929685153643667081176637187603620202277038472825420869823812585724559322512694519714142426005363868319276245100757187247234970925769140473933952947559285175454717802487668008917838182513011993117344942244330207691548440422368945294476844567226445479795248175696970169412115581430169631724370637209841237358809011975338770873134177573901799522696604986063890986138978072380688361054736065643045125120578730307549843040662691165478856887723267127798715687855906312088367415116339259469431135755370595917017317250435264328827064070699033102724138348200888148880920322553763619721768128409267919387292584781547525643479196394188203469300316954180123555813281677969983389842575691637179316639341450653615031461287883857786619024691005307960473751765548056258507136460060684957711385635043736317288856447372085038395850582145876159689247610151787782045626545471832557647058388553295142417437413402851514069145273284839401680075682496044520309392463770624947119102777658127533246170264384869024214836883300771881135190407320844216448658626441038275419598382661999214525128191344101112551489116006097105444535821276097260149566476607516841721300855989234245758188098455099897776370166199405295568715243567390129318810440090910873157709006594055291574779069753760565337664486606588164156552998948621104150943617973834041684519819012769252114253156533894628316369630749544342344819330880539092240200948491241431307461880668386087696685135959135452717267019410526324234998941641475705204214545140414746400772061662547594637443904681032941268514760468009415898295749939018394417253386579786305440693106216010181587320821834293756941812160492776777054103670385793329950105771368306402086417293171245085508297606426766687938986024678062622861305412222792224612106606155417597377116704034711308778114405673667731643733069406453144254625703163339939934139539613254262336011709972914270480332808021865022903080745917554624507761189715154500093908089040762506632595023988722845014743672282910792861653634195337018839721712341702069349907815587808708318647180684766030738094829223306355383034853809646409408760121261065010443729494452837804751907739648570671176452702850161684716687299485753844994635062994287617590386229169617729140900677328554606299187102836442899752968894529321829143010863404761576389657375384463670196450721949007108601137917811464344363813236418743715462506522302526227899321327933830589645391995119242547553937116581726930225512173868821814339055233151590480341130862525078492960465833174758442771184630069079165772022798381130641672960505421136423050591439884014252916693289296198013515875951626864847609532788567820203495984435484855688929643951872889339753477040742904117772579793212411971594203661662432690799917764367609058952412444331522972050382527306251328957579825169666725485180197249906855692420072627464372562362874733366436505424169384578210238136988953419101754542157540578492924141430747154624620201133652302520947868118410254930153129067937922264797362262580112723342768242376767880160489648563586423589582466182399624248133668753253514038441140999730724775803054871243063519307710151696579959191105498302131060440715146612594957978984084961707435572777999847414392130504555998443863432808824258605411762254817402410493465179897424380373628445858624332488650060899110809555430305800476727676584803025820479551306989291248604016131140133878865971245633532340686946625444509869667601297120923012008965112918352763625173184065011826416875599597734823593460486667625314712348627362920475982656741250092153730195585674300399629498543591197820151233022788725791235559761618730952018136540317767491684791558864684100991477120419335966519405124755562490612853405600689058212160696252768936902099127185420687029502068591045521129346732915870659509644070415134120506236896316028190244215417031151423324008025319937913569252016488315002849428478981156904844207443175040994290145765938436762787598685628012041988867338086440815242929347949426857133295266690426730181835298716612328593264285942327413572214657057984164086929336362791873825005829478602726348746161035175839311327800080915961953344891108152752843652494536864072011901123269096090151652462599905774774219402120128266264686210790689367878504454581985482784739127928420523499514559726099503611514749479665712753959909671771813701739320071530961623880539153027701635125490437503953052170000964852278336291522205525989966487888407353641859136704902151076284392152950335334158735956707222788669708232817334374579437568083001967104212683402678189819617709576049751089050387780851631366088437704598317969816121973959548284656479466692890406847884964938425058497198117628602833580210622433850253153960940516799118422145146467138222304009585286467412799603055641017338830409157546844650640429649957082265230935755024367346493360570831613680135176018597982980998757861662752477248611151219541466849759278542776201778388474188894127710141429407145739990099821894525901421454894505978784515842640743957213365259670762600730035590414371104308488995596307861299588151666185754489052645436701619762087689294254347314922100948008523000844256707719389566829525796348877593601507112749705317127755809349696953023204835796662742192059691874623584128770588463651607210969254793611488714330252932322984575663970067937542678416266796926580628369566455484917324375862970394161870043448533258693936221247218854309297352520961876943124585722459190246091473053649304366516009998465248147557869449058121552394927840585671769761468521239272806984747649813119570147721665450053546935160875145853010162882804531082332279138983244240763181150098668831786885020377054565912091454888200007166963959538604241977555166977211465778778897656696476281898445594333629528777156503056250462658325248708809694099346210001626494138932658455751620335608747991806592844629005719554866098433757705758633977467535116900650729589738905305732024581042714496351327365479221133811822283662777368825923942729647162245356137853968161862335460703260410475233082043014032880887950571552851500789324475062849958134903328765664428003818156302025771099958530283494452621307967281915613304926406332348204521158426552163751544494294145371837843122375318568165085598663373945603975243877164945929068145570883942536355168743306286746353036313276084559285340398709298294352068185130202994941471856321122388873286918399429514735706958634686948229677126594655512430794462519667728197270177185957607445105476697703733313719367169399975879831986848641905495270047988717751965558006796502963112248288456586253132451134050774594069069616877870780135255385540367009531147082709138500447127617172379016320932331920932284891891779273851136081361784508071447302426881453847255682442449968266822167076573862054576675739651689958738580279935538221260806156876130033695334019015479495866184946003021013544038096125171903610813395206014549279509675006373288960965653262602496421733802618706082853950643046836096326141958931694638117948871393248397460008207015575896886967191214004108167865681194700558485560075471889589513949425488020839107251478605106953222803102874181184603777990327562154978731348343015354118853114201603911591417348652398384078316377425612185743088346812480475805928516451111876085110196284798436521231269319449961032579246436052898458362253105342979074168689871626564799886045352039014678481679019521361144729677882330163125672267545695895793706533499722011531615938382846028378419421203052151036104347555224824055188585839649826769063583394973164401817967692985125966104723951514614085270944658253343791146528510740909349755123653303653419512909829479544997771068997486636288304340372103047689952958252622555290779024470330535253350190504247607230437627115084684361901123314720428364048202406969855413640758089854907147452139041324009326079988462188179683031401137795996931752367553361877340070004907337785169026835919229787126799373461590489940809216039856571731310743570995829297544596638863360518643901307095583628747760843468759037844273276418447164193570081525196225963168032002135406333967551064266070131379495086328460692851786658650025625940423876522272891982926602561404365816567956806993139015267992604674531916596924937430560789276959053992489539850132243897284681865453466507670733456962079904102561926958062542113914358554972760361037998939539044366129107068318984099439330357109632000549901068672833857313320857346195446722916934046853644468526988373484694605496588094493780779344075184712377813548680234707168352058470235957987898126771109454383495704996804771193026510348632223992702280893022548736321595818087500086412289076835006924022549405562992708389105713467735932187147422043087135354946079185126293681754410229209196900130374053969566672789978861615490292557879854177000759315196654607693024920805169357469435203619803959614767097752040702123592467906693198625295711829379665108310634073508413822664166441754634006559770346096186874413268585548317844982684019590259864319163339391637182747819881093640514255911413051935488163186630921951508850999215355057207370803833993949487241519407294403670363757673704371181990682530167240151340247125972284079367483105011325950842791871859139734529115994901085667902238553290654882717552026387781694077466387104504156702232090883213593367486550320364182543444319710813840436696654916481974668089548852045214724462325720076351605854467657925139484208361958017910806540334094494721187958532378888120377488143453339248055147088491216605178886212032375685131992954707046791039588375255229662536129222068023127982336291065483130887198369759905176054297791320367102358237738644630890959784892912786499597474686229995477425822634681181428887243254898474776129334295064524774577869788140406383141771435027644157745894520153831863500919434114053256636087815135881103905181382283718833927423738341883822909613782117132174610379413920376673944650217173988574090082624889581389341171280170801828827670124625668377190180415084973102683844147086885407248516652792864676518464462359781951323927834587090857456286345814132412379455436808541762487541863328167640633486189678485733108655265699280065101392339652613469713188199935652363381397560864655465303203682278569308994542155877839045852363305440812337342494653987310920200075176010352790471462703283545953343492952907274067037585528528304903535168621728656356835181270586493065042594237640295038634368171953284275846126634140710404184946817354165343537559219793307917620729038510903686931223880372025200236949057720593217171847048476341141291693730045193364159608947017020200435126269258058297611409127520054936591420772474416462647936656697383640404153275436618121160422763278333757656341126088480342626720053319579513320198660345485488598606453651021541425651819002320747715714379800842546362757119195419279889951494043071546090214459255916441809501669615365923767432899818174284296597791155478120570711323241136462735823883051135462285378569780817371422032526630164057794295876816941384850082434076985364197902625250107626550500659666765944043947648850327631116345066547817818708207168267171086799913372284114624359196752997727719123971413927992149573210151764823010879805728295830703507926570566145717729099851317476028555685090226417604950510776798088376589757950584088359625178386018272837126128532309521793594576518147126271371626684993323350325910431151555726228667999821827116444420121810485262120174171832870133667943930367711012038685794691110979860338933995704761151752768288634006042386988229370696929653439457868460216659850681602608918795594030701681085602602606820867690932803533387867845523409624377472586672966915205180683002082559528759660903031803129929086665215582660114731192854380456792236933367190142226715597593175579875567362218333893818092818924650041619342262896127424626890906540167473432765396230599813847922504337004307627978546919872196251783944399910331205117160058828469905760993780882986867452309081882497671279938868055577702688300661817726025194186880168155158309668433517522928397465620590478258675615771661837319551555492183883488507989423709597979313160802402418173921129224935884233047177764829410609281936945591143768986385115073327581400627790700658919133825602874568297682344111247766528212010501768719975681281681066013319665106722139316213257741662235218799879007098331772560918314060187668345270511894882330506151734636792539029238201708596389236451500746269562384089845315087617359903387623403082256929004666570311751617229053200664292758241131569555310449304348418163526555036314202837714386338518754136466603859723663471012235687713359672436151320839153173903869270400721503414074315514505796478854381057813186539683901404551402671542308675173075157150790249588618984328647464499361562595061335098744668728515285193219187878434652228530665886512331836080312939369616725210623670350072670832096212709087870523921825038441500292515093543599389742926761775401655174821355752409022715658119660686691157017266002116640451547773943818508023073071090445557444722070361042416925661069612220357562456696094427714454123516372182696602993813566553715585838560528680515168817963432007351798126078241825515053550963002072256401770226934995183329432336676738034919434169937407437113143976960206449383177054423116375238776203366212600370326472485915678500545867821564731056660442197236083284971710012131700547663063763442187409229979809715964671807042594601561973767379519259434959291052205440428838694234984311174043044376373040592478831394838271038138272189213421260184456148776077669300146385697251145003895794464046237103601691862319683134364826498462588953002471347271698939638110612347585956635609900890331232394430053149784278338055842551881199546899050610326474298577282993907502414791783388139122958487469461337434282612542745437532751074022662123087490092492268977031103142437442532866175175028340780471358873151501045319939683739101365669871831586607204352994860193423880359313554508200521061632382293457584713588491101899747984540453183930799210733426172028557776986749477301280397392642637072022354111077412471570710738374160292995143736201245045511146975225747319584087756939744594049454751020719392991420114435236580431594470179083777598300899769825198843759205027190089438283981393641160099322785452030535281267050376747110971983143460572830978705848951309195861725189885898694142102309438280109697730569642385045072659495255151630054193247563406033923936768076148236933495243504817073446504814710374850061226642948627919796297264960088764902901382045438059359265054827360059189237843588695874696761833838789560467890897294505046793161416120498670424424121108593194086795040274451339279479354099682010153155390935574006998490751705701614178005940413284811259970621641179324065611765769010955147509028038458815925043144388509557387742646364177275487864974586454763553203980732954061340748141258444864721848163224684775197586249707730195161511723929494512767087254844977403261080815529402562722176814550396232954027664428187115132016460362845357134584747836583127887601114480147204110401807797184381088617499086376226646648939572734562557368098056337835121893108082112857004895002127432359648908776482402757057173554982863664576543114150612776786071100124959173352891297739777404631324440614661352091645390158538301448310332373407520762148769750370113609266894690484220888200271314153335832643173962761163283576323370463909155414401813558882689651009729690028978936721625318628004050258453323453795156486263792715401621076804703182486171911750619426857229039945176681391973284775381353175480655651813037140496185994445163312760455421540548701944682524573225833955829608506898606501183616488570342878667197850995172097774868503527668689781199520669826898458719644319756506450718300128628921790408966936410109192627401536727164546418800137419123162033054203931716671238820884154196354058046662195777751380562988814806925159958137824488436986042832330784321127560762669636368173125049209453889718064655686384968874564356373372447845640013340050095958577209814934319099173380172592364455467463077865327869212571266769772393406612890441987121894853697019441839810415099007126750372880774713251601157494120539859857469627335451803970534540457810577922810426338687770152274210752072757965727136053303529962817659747890610833465025973654819389316814909226787231937361723244988137827058846817290959667267671646810086101151856371729917488127126328047936695038417540308450321844005946250158513127470517102248134955681521110529617255181755983396951598129583541011171743638122293308691754042919296851291790118317500784346679671808526420628893630156911955534118907730765174186993171530218782788767316105785778220617300520457906432827495187800953781773933707765606270966755430565076423212392334018211515626932430354691882575486277958094167442343800017346953594920792593114694284785151619314510269695852185726611305961293842506500290312036696730151890543250223959535759042309505923349818790283175868218255081978053124592064037283467666810586247459418426017867712578501446603280279448844212704663126188419220454219864558348941432304689653932889854558265244240798627291842820057578342602168256685787866946316959485592336940301453752911439935978001806157639913839344190348676186810207095335375350010707165561319145547317398230804330913751369464947884207623268239441118631304633669524841127608953100049231687289625875893907838227233353663651812234841335833774079181982869232558363501773705512909860953075527635990260955331483984544848971710357627015737329803520546503743420530366233699267678279224354528177672929623128362402306639853998632499616354566698138142633779601786612364121814266180536899210206958310344347822833005056835640728450180545903777099727568631405067593191101303538646679094012139914495808228010160922609788292676265582662290428640293744232403066351557342472042249803849658576114132239521808467632202175381927699637303815504664942636921074548272440617704098667894939293771317819002042470525510317694310785882631229467157939429066976716637116961671508073084490877144678826271143399568077997420324401181117052672706213272544718591216234227013022910852535463923922980276198249642008841388588461039120489211155237779454539919268719899903987188101718789652203909893549103306691593568731483055279113381823211173471162317866873935507818258859226124115282330561095055131158923370489020174517796735038180230883094066896191686057043312486560435519024699130436648375859094301072682833681148606308261634152242047443478306067743349694755105688645740911957332794692381617277933126410898312155344647246261588305614064084498507535678448276267454764415024310574652857828779026902792436331827596935206947686196089460492644777878138065056285392834077744862851191854818628773077011454651346854103687749628082112725267666734895392791646334218483777622304166639746992958721474486303054276523732928718590113282433677349463464889012543585766700996593857257578759671011600453193012033628354726473000982976732390667908286634981899296435916748205595435508894935367007962344434031067638193381534745288370806717222774421364657541789445673380534429474871366165407453122683484195063184863473089863563246863697554181062058355378600581287114950722062270153642825380355972328524276820285145868774271752613043493969507009736713292923821369447528645597908452664689395098038105324556699012481208300404463773899733609275643356686730346446109323239314431694292611909570771832226925882631403064325483889650839681737295639144062221315546981469419046399153870382037006598948817836392749496645577964806286328987210522077794602091651772534280140549933535823671814322111169210765295040557938677535948892732249684063619731344806922037337984507627365374608953686735882197826188821249798776379564916317815984510836736693245478172004031461153037036382861863310880603478476047938620069576326111734702543479883515397844718428567470387591855024469255346995407771865849647711874979449155100208634144700789946864745079186308729795702573608612679135480656897780148584116267364640964284830762157729633340581926184445131738146477393972049501445677489781424547085048738531974970706087787499502051313622644096952047442277839013526444832475610096879560898066620553435482993742503167245004050739412944439672896160170034130142678757878693810819218632482533505811196689476829704656223854387148641987835135200155775475524087660631454310019653820366674735454765449928529625761380479655445735628288973219338550860081134039912916979544579788469177746486517981393707844765328407071813306532959153049838279655470456540779145153426903128090199464977235305532360290256115888516371023124005558196980104427857421973030026159262101517893180675903951952038087191538990797075618259429908915247393256208738559666681967954525966149142016353850092529282175784935157440822052194232893908568409831677068773685348576625992761848002913815253872243037509035136015492501671161675819086502001694379366418350275897116295496293809926674639016801753320451960858436871703871356065557343870302796352026664240142291328833539848025258313820100104467064085010975765085581136907940871457018530281090823771548023155022547979838533518979327887041244764058022110585255382969037015625754084999316799155788077320555462071431586925344848708176506079754518521337616731300361978916403008105138829991622413283102542653095422882419362119420207983364933905863491075273132639808984127555541934323986379282928941227497610359223652078375774046578473894975917857486125320437986498295506171628800531052371399179650545764912691098694081002625362743011782673075179079536509498325789930845691455441609306029235324169246477568231819519482564890531237289525634420500230470296261324997146590583186846018290791368778102688882355095322452058749157213833292952791462950493273785672489415333150680034380303337895006087026181210619936934247162513024380747767732995740282534226074051374801849250477682646695023295697447002219766957771796948924484667839043099721626216056056870008307382060157381837296972063837274649879485301161111580673026338442626148013745069562844106360696622138388725147764477280576738494096412998041153044380892188808044435776311930609606963238741683142076616916895035481454305592840969457080090470002250526100503490665458163239029696015187573343744704124681932018738079356157767873052187230392171646008806941156367888089611539328976002592406200414242143118930416618929846597517075227764369112371019250962035095088215931225642845168303137109012710166743420132460494618839746003819113328596367255797166505093916586643007278948209587534091489973781630476211285520396058540306633677970607807053046467384828461241084345969018238431458873634952756311469845000270421934592922901167192581299949526160054148900684375516377070398787401039616253784566005067828243526666272226209705743172200549021711597449857976141831082659562246219383806740703278950567446966351476848552767215276372138993147447860959707355428091755231680143776738555714669620395968007066444283819745559005830436764645108508157949701260320951764157353592138779236972226190784761168111118913429793741647654933274709814645885208047511844911641857176432351619630842951440869511421938299467664745768170474824139567024948990850932326956607466174786179823123245406371546065071648021045452304090459761031601111891262224457533720932617109553382048677946023764523648155061733240073063409086094303398258564795139198714805241814062033856076139316788609642620834003134089343159827030682202983771829679957938888044524641102025137083206840773143078861913738638160797926305557431625186468046108368667427091732541282492003974710018532515425905965309481032491406616930889518906540263432697766627837216349396613050875665673624317991780429438138020308050690134567522048366026136636482662484597163082414843919619947539233255651536957769084882436868239226003154663658124749692317255534033436983905931001095408772880727202711531669627077062590800313514081538011524463053591545081390438489699692345205560504709338147042259045501109458549279387526850601806237386149320203049327111724229970329547927863175945074519690933765520586762988539097778455477747666931589783606733366907245273074785704396084279400945621168942798178499212188121259975573746423557796310536852799763522116966631426390470044729080782509061830998914769124516777315442500263001042265492924280477890110486803927867834738605708189649212339203273543760784977372915444355010058153105415077220128962054978789164004687296939672133552564972825762609007195205024647014712971406479547120009824967095694784224085141220489717924766925068996044496166756852895403536828942970940037159747857011511622908595985188030344683796912012074813915540928661446654921643240446768172366830913055000080160039505769971612995858039054298152680860731237402960127116084214993294948475671258453281950702051656903186094133397091275176757200568578248025668336201381904146403191774466245213273220983748668030269527012231924539990171838515035909905488578465683193243854957261582916468050515928136354411696414692636385015624092414094286758607749823805089977773378539931045301647072027957329854134948713749499924572835774066652023961362239167897208800577353071498836677472456579238969723349347673715777335474585745623001552702998033824668755924030212866281184409748850202068086458867089779094642285739869275235693246352695207088918795948258904747840764745830929223503331724044202534369903495939131671927525054571769443966526540992778149332790002052535179029392563476054498079291760360180352293885155109917840072741633652743056133168009633980482950053565502781259821458617042219514203869265176369401810062375166797816833442670097012664564775616745677210599582265252079757727031429723529925009797786490993459762681366722588761156177864632768627539297455654544971630830123657204715200368773842628687338913256650497539070580354282702260965265186972407788081353093661782810186824544224290817034871608863613280496078999129632074161150193128441935416530738048587663632617095290553274781856574138793741221407871124296535551458624227346576142703229019854836829624317549407404388576839602719365113407878391728268616679645963642717618294264737130690149207711952964619538436892157717650862382486124988534898910441148532266831644464328798891617513517219554593060410718421417864633360178999405958575438785665627964571213615864226426952067276607750492309393625151569292279040448851277782747360242890754336214604999629056332420830563853310132037185704620370910116802996639456710307403892221108434634025266737823000535397686546037944239280641918659892736033577922986064796233680608088919238261848481019336105687654602610493983261748393198209011062041738082081655659202020083089488448355527288318678242206692915097585298552617836629117307523922348797199101180476084079530620133732942536230783936880433486755585778509457217889186235731645357720149613210082724804784545944593204863395998582102236773011769498753296450966699936043296927869383597083298666419812856999494510360165546755614823809969125433919281969802654948037430422730729083011377987572654894127073856400863106586845059000277359841966015939564254997185179420346193169750930446174377226078561685492716492280669628786614401480902808115900171152632945480296726607176517415727160393479783678890479313604538664771786919213210320192427603579949757992419404523368128551219497931771497651397822844861675743070774882616963264053305796809144741491336946382035022763505984868872361545937142553443276807307743428257112315967513126263808363424964293725609176868402046762768250592669193688693471241452016507002912931085912335634975119704705550584823242607502011178458971881623049228956581121366316131146389702948537962740313842935792134344625332939167921322680415867475524263720710852794042966515975415688994635307305396236458529606896697481663868766083212601929303632222671870533896402480858519555526772609292473675272228895266585277133587228546988358446285483876048811055953019030942264185667314843433799733635137010483562179741184093978037265445580349125135493367244904849692471494367241396490770256689729466279896732717411593036986095697429609480868239806440216330590652347088147435633031920463894939941568919271731980453165396589474755656137304207012063818893050500375838995346998758943629286855632739837048298293105896416666247225772621894767329436984719143837084874109319917614381663186238259277469646524358342953945057766408349580445323343764749045388906837059001852226054293207040358808637732209082187668087963166696575436792413214307780899712826370403857014321548829235267496970060868286428885684589523009775600696054447315649665611530762566336646401504279429577629754594902690016899400440720508474796143331014492433425241443530814953943494903992524552537994591191622540423438925641486756895771555166125320249749203638559246344859051247845743799187092894669423355103018185716604045851095127446876542880259853531007220934328867853918174985841632593260691402330378830167751330692276220409265539204286993813229383082968974348926663237710023983733853766741318427937768664807345597260405238459280407907954584463168164165734957776403928158184042361985400163016081883040089114760944717582761360133614066066826030623368286515347156613355031073177710763483748220817093293027712805772836200978577976807715280478082800224268995697831852006781679221564908554600196865793442797976805018879267037531804410451801824374414373160184242456097245689115306052021268660135835398754486864676864008075053781575042007068025062373239417990157998781491584086248143969896031319242396774625012844570601585520712848383482761681955532568484965433744002638389246195697404360904945834316842888164411835481543264323939510752573618440498044938658558005444465757075736511386062292441707218618470908536143562135832338532215139662308821473601408598160861017169710075627599254103718687206168911105712282355112323581637091476138466178563335394427805052596229796054875302539510320046607648740521561468239800170450966638094929243726399819112353708131516436806206758571851086304461823903464179381752475779725173216464652757738450210232322974147040603867843164755369330662490432345703685936052269078643054730554964967587296695238203921338447590595598081861105017096428270725010748105204005196615283679580218031177050768697999231614133599978138020960231160621621232104297509416241256827205158269400667941015028827413798645524631927859820326590466072487937468454111520677360413819941861999345817632250844725568461262733163353812083160214416008904731495551926183664057743270978930814605155433126568400203655483585187783606292164583752760252423645717002700906701446725130868309501283705333380386947847150061457855979718258370990778880164159878770413168526015079115106477949434018876942743030128754196213692408514292740321942292883447650324549859354660931293979191488070217363027939627239674150862982488914567563999677585347391803467964155593019614099230627761441432380261336528044137825722058498076783206451958291170785569654660277607111466220654758062150444928413305509245112540859724582153597132725100024575206440656947388594359587582480581605330799480612831647506811154380234789425060275249661596694941749899026268164129116066573723718973811037185261337981495598370450281635762698034284239359640139458709630704433835773345499322877829584777295757794501624822286875857022986204206977792372287548028977929595317855904760297807958357018347003893999120494262758363358965189805553276738296087382984256959911908865909121105189325780554861696735859333473664700789404248093290854299266829950726631920761470508827488623873171433197490206620592520253475767214578201856802972844824074673912014486340859390042429374992038474212062513724775087217278121532018440660008157910480844419486690388166195830087596928956749513882196520840896348138906381526217641250079395110215123779699621628625634887915963490855868235466855756903487119192175183375897943250497414278061738515812981828339697862321155292217512120664764700887527351664020030408644504220560191907852599860102411323777245468578576892128178130353550639256308729949441373009735330934023569298327196459283738482415031275081567021527211467850106054683232552165485920854366079836110135317008066743720370780588341060535332761178821507002525861716955825090784939637919192859370508341032302243266583395935676586832877802379986781346130666650147133830614372803595455343846661707464316660065144505810997842457182060442963625139021411596334670207912479175318703447204723255194753135611980381019558177940279081808084656564253804375309328192801346439365832527949350342911305502987415888018130874663906542695799500302276542117434019074879404409767848350728243465395059091144184419986404743834694142679754106308990515552698821085085034456202729857460926893547224817984418896237943574426748081496586433964566278884738112064014080029178411279164824492480608917867397687231616746041597189519301505666984710773656210017667880646384292823811654183053669024372274376423703660868060821012562520534955942558386057856674007206033181330614447786264297417802000912503262391737051811222987029818670307793509596495836503168968629167107552389106508422868853693696738936380784476948260118109086483401742019876512130493548789464228397111912131903990094948843788338593312654668375906685711430733429193621887090013567113381875387766961615136237901901652170960009266579923468979222316598705406153105078664485532668044426918639768577543837721633345501559880238725019345560867233382699185268156763629505805296490963297878807189205438824761911777953963990847559284024358375164564921371454234938565165734549588659496932554628633437138123990910699221668891208002438942956524506919159838731670857921409881119403039880585531043808394651033676160969329636028119557571617841301335219708006129160473220109567448834305849488489594242385294156452904583672517609866983803415359375087161276510693262568276923396823821802674596987344205618288581063798283798748526165062469788452260871446745324198069152843217330388107069942797695999675393824513698961999439437207466076178291069868767913081762078031561479256902144919754644152064014495095462701353077977306236988535637401539018935873427831328499741063391127271678074801402559851448121817899660542027855060400010367828676484289776492929952653157857572154843586948858791608417405965354284549255512480210675599583660471535510832107113228862507060934088044843710792503722065611357134580041038713496960930716473225512034964162813569472838717565021144503940770640843633608043800561958390878397173999267115994232499607774011253036025278537927817682790985237965788525706379891185380560303626579776933762803352438362408425392675223549083412051690889657822437533691439859074732833056295481831233704549255056479931699260468987566465258182227288790380766104791743073636962343811942918085173981384389064542460555281026446769002515026759083268142195369649104934048454391782616212521852475263300118528118278768063054144031296021351024170085599646961375829979686821586336985177213820424490359989052834310762170484239958788410253991431711978714971487965705796389402445660319798467885181521663494469301531297798214789450931760148768355907477337573146047212451681129376317107381008322003376405599174966886152016169159802773847152740583831900511627400831226924284958185445840351846645400022392199779289045485608562801937644562539874911539500685789000137236286072892231651658194440973271068117068660233771389689837261439554086664836746324603037302484591635580086341884706276341411872377760804797079317935744858715272430073706646681354386872807335891786131035112689332020764050898527776347497200847841024547165795144848173107976941693438493743002662216172951191289463520997893255410949109079306520576929519810885191716069813428770483167691294047031000215810147410454242274637693925919643611174192966527581415929395362040773500046789263256481751268844475956252279092998631243130230463876492606627832321868077643183312012249366500335202405159288175152361119110806860280336195496268516203464167801254132927308025195914061402924062168196013178277741313017838276202794146396973575873033023095369269805415982298041586097710370025433005766910765954810737518182876625006104536094139210420629966296268063392893487339080086489741287877924927316284362128383787230592323503404228069818027616414479031539539591165017376735651491965044119582351112214109166646477418636456500010249441030214181206887184873059098346222252868294275383249776173278611182502230706109858374329031148515388772546805609729791005834823557961136009783201094707277271124560877635632147979015507919174287361214333743200189489227786044486445131949891358877786727994371641955678670960365836008638506941203581459970217473141981579617311458812562426661839436424310639972378692959274609612245720718823924279372705127324694205337079978982534596918688210396228077817322506615523557560989609459502845084930499828786389612955448051661822224943759811575060042347585137527510149115313725866991245473836273852934379169161094210643860629956925847458004027788982814864076320384073802545262945520285936374636791168144250791153514831208910400484998573174052117779140093507402273475925376467687313964822923992872831763338586848763304255119426817451276470718490882865351666448025319441701688845322140014956018860532133694897669580301776093106768057160452866895061683967532516726312964066487396181010709872317579631698350275536298804359637318608653767423081784047440084467818626357535539741160391101695170209334961521396665003097947414797814821786742923706439084962082281619727789053904050225759586438082309578293644097585963538612478493336810235908384455247285453193156186133941981173838077279461441178802290884758625931149451752243383816783133933799938065905627730668912894756343569536380930598442299390545356571020025060388477586119885014231085779250713892940902547891314908827303837186800160388093630262026595969415527939264970925047414429103503567579292533929804411754665606082826527634807978438488508515129588573455458807541502579134281011955532749298712232915633882385413187151742283282232903186976349000982214992038555030940130191208884977793613135326982532466788597409474978782581763385734566316708026673391959908558158655741112235449031841192979082809720887341830657811637993930503088908878052653995761278190040368490285990867954200687863804543007321822279793433535950774531543813585770788896616207689218463478711806766957041545364050865425470612955646117838224356609367696128429724423505751656675241178367268902145961910080926061707147325370723339890364591229862220133021176987928479563256513118144960861501533066934779303827869403629155749204851949360188445544921598630180792154689882734425739010027418783948068349636337486365576414344493896549128500148894780885093695534935015786194102139156577241801886974451164192410462396733155777386523474095714155006837022176838393898444642222966006530820406564876214978206086207982325710601317135167308966161023525742337423729812269640297358954892095597859468115371082599614488965020128402014126442108879085648418884735140793177156431052579706924505033314322225173119681594168186779762835384059459971360806264707782621868311719491219792880787234480482180968307690847436161900853023315638790819653302144306538606097256268892249507416187369266037534561168907231820346563913024684017871029404778750412959780976344459764505063848328815075489917154996371186004435164981015441431222910640766213788921357655371172730544520782968606326614018085267627534497729807874596508613453202117333344069270793239152484142761425871707135549490579787147632896039064291178620408625903577015667932292121992697762232946640348242703806301122448334421576067056117280826725528001717097249945697704215204892273079644350989253008438973727669289096211416888158643994168577023353221722078054669743043977634706521505866208632501909154529940275870422984307123298776613331380453972606077624466483719958886717913476430730329906674468938637110041736727974223961693988983205511041018107996966465451173612296038818228758840222396811260217996218649666089211016451666040421796395111946100806002080032037489316190382339129148055796117310116255893838288344364392400780030067275149062840685192314256735281670635049043391083838194559234487617299290450390790901253482751058976021220691930688546392673769371251546332839145376028400502456570446893073867261042209551827075804913319023592119480680709879777179928350554529240237767015298784834288678891083352181331453956019709703362259593889452623538632782018774537992974647195536646537584194540858617647184926282968541914407238274289408857094471344849559890525904549367072371195049254838901375686546155429345963329017198221688827930602821513302307937683957541406191532155545266757722231569490936839094372603757247923564550732393251788006545868397239396727267558204188129567723224130098768041906682375175603232563422128618982789612083726272513493399902277058866512366998831426315697675467260031709037670750097781344694951288749840456099417395915903825790734268179506440758312787704098797645488697624611020904261494349411021310315881842378816298813192101776945000556886870922602938453987569522085302029322135256548870577916459034522379594055616439342674240229177193800479704831122275463285734609554096560796155588380964855191449604043927269929048553814417918279319295247149965540555943217635935215198171962637600139569303089160628785256319225208108071762309022153171686868647123364112034557162453150344955866051888032870249500267065543273675108462226333521556631793629998533938945585563801039404745284771147364340743916019833997903136420014824826932676171259159700981119247641701031304458994788981046346571853719645327662515693482383318826033656520753100080800956848068778577957540744346275423654945097935704787704233036360682429762470212317626473165360591553929630324279778822963171962898445541933059153533414861487287981086136132742640182908085557600303747415746219369301294175130231051742077374810520147266010891793087608548266384004199834492599793483696629852980681267242158990096440725168257475249693251296402185868945305903617573306088576694059859327771470618702724521584794775482411333622205727846661354993447856214165790276261503092907123347452314725173125442876703294281190713359696653842156879730494117924796379256036122247886772500589006818801846325233460486006325833923616286259908436979817349995284876377080080768964416893217632845009127262467168500194550328724514873742241579384118174522563578523045031063787498131962832202647811697709910516194097056932537064400187106995412118812777182880918115083910079839458613472226217599577278148084908046691222536457635750406596909889990665704234171446760954815574258295228789868850881011464949937526028366451285581484533644096052569534065409483763647493934076174782885453017342245007426082470928106916399300764195219145805120688152813874116022186379933455015810501525617857657649832256230950649571424852901732006371104541404057352980157953880405044737804112601916360392590138651952953323541617585319624156224688386480722264711519955412962365802323270440340322253555035699491415439849891986265725446054466486557196330119880071190521870301501436197671871379988532175861515757296448914058650091425649426440046685246069562814636034317954106824669976998021443147965316203299224662933089659332864221750510701319376245795490667544996425794158931216502428780122286799688680413169545606036538171751932433063169325439781843788532521001686589451999452122348149593468210026603175417637818792725794665905563711854269871183264846343482366657486171673496695754985799555024425110271991444747141315319637821777177252049005098103116662183054200875695778286623142269338837565963100974609647368215769143918375832447687211243243395428829326446864245506309307493860979266313908197732038351269362785223252377778553502421381851477464690496564536345833770635640735171584732629953679960389054890995739845909737528984262857876629395348196394149225849380514186798549931128238397121035241629698551699544027460326602190734328872580646031624275785222174688907648577468963540967145994590676632422900307351192350602268031467924746397304013872331930004970413886519255609717566617018577977435934940266439197185897461548752141483513222591109727478959583195481520137465682186351524199388540209139594732980899566906252197641560647738300418095433501060631948987071298821325597839721533369217366883616179395865296854881286879502372506369941174024227657920971535833012435903014780684976230099855962603472015180544878800595940322402183761025436199935678027738513647554870371588173132227504026837329268146141503053902537415995162290565164845656636964811600329313754872940128614650685038636181858319343653338161659653230412540594458911854845296159014951457438072896136330814290084074702630418822874539526786718960407508036720726457082611664678609663271633887442247025986187009539200213677733819701628238659160954439780682804078693377479358385931661122899297073004984616113553971746779836777787465745271496378370390168175013341081853106509280612138555394697626645073446575450641528705399649687206045521164538018468544884082314269343447766043031202573286050756524831697709032989197468047429449766623549629178085511594379729297790690188137829115138156180317735580110613543420368258682980218258070711731590192752759603668376539388864767285699618913312088622728417125102841460812350330661618822033415976816486284497080989001237752760888821731751367612142465795000526889554660603889256038483439447453425989151607721233960649036742653878192867075376744832000719217181967016379227896401828834489250649039119742037387279499500675462629044179176435777657062770162531484247321755521958871635621081456333167884644479162128875743692153696099173708578544526814258530696095204515850665614370551647047382527847598790896291358838904888766879745148723299962084107716705133986478145980178790105357574471044291212559625627312425020821893916070256602391044657654929140221691251774778134356042160460091052145301931796880409415133807419663999715100725025267801141321270132319456536993989966659987457599369233846121666259451043868068398479703970469584696620233849594251116250238151464926607878524468032722422212710703987499924492748994978762767128296902571556045932190510234098255750478744937170105703131309212977532775101374065455303655792829734762193535772714502300790449035031173859224818249290415378114999504063397441890411625059414876497977777950975464835089707972304912331265375721885501755396029777809780782604641585025706618171210241236491365315955528272829759282577730077292320207137691470085983986927240437730892882988484373104392596496701431365821468070218510112197666177830295869858648996843263814417114648236221431956838383125462637768964673146957530568156782189380693452227287913857850403511691839538319165418550534324759906191172534735483302652072426330181809278302866410222988110854827449119922964550417591430084648269240064341414424457047877837691172609579304131598025521917256022741010616166731722771433491336770053914492260082781706374759401948941078633674926297445021739254410655348396682443735938753192243370791875157432579787718193825990099448946232205038339129607828689549306159536432940719142964954995374640889582898298389829330161943432656945986166554238039063039557290621210336692417541297002548531919078297385412049824153158440273734113618522285703486062683662294478734073925700689325824401372859826705712310645974726736239806850215105560891263708796935037568140758960303610585415014801713820698307922014407129599618753627487087380055482721133543113286577022317996304405013716417587534908769715594624217867025578896467006252447294615038105584258521424966003161750918700598260919222139282446997137784698493296472569426152158518198159336338203101507690676379001197033212438116294152613802903910771468418647234938342559357363786752618066903767949273136106966611694204433616824713664504343047946859685204365285040679474460723606467145479703297959844848333070600503592688193082351078222563558656555695186021641675983662914736503554333870450465176933391242644631596062632477537241741202268010888454431495376088448499088038014457993362181608661342689974475667266107202591242623424784039502093109278197994241913368523560034214409393982594316211523675395815118554446124439108112487855502610902647951762789250047596172676182065969560260783872137766824068674346678322246688447581372765835772762308220487387917789525152829601598064266902354481949379575164019252418681124078069236312275874791713780115478354814485827086090814948328122375718341545795091442722482984861953039139402443530293798208596188396201396677439398916751557072697902521826158478158787657101860505455207285301020543485283073499322383568200795249458500634810334835336553500437755162032277411138007810883578086183249616971890984283579603176434529955685814894958746386888195071511584528052966998171162660937924565709932584847197785393610413453426517576193521202226392015526146516741423543919045960883889426957395050746334639819343497470104301216485056953157026083245512287461316856771049944558461106227015305415438543100116936314328749619688044239676149771011930406737238675941355612918783444028334676290955416737252294068735547882206804008434731140949903627073279371780357939350454792477747202915440818203339179792347666996301328189391298189524080933000872408122523799882706032452105338548634297582442446265424237593250938042121734946309113850140012246338482993274115913783314066556921915009392756129200709542080463489527618761017962196809357539558549664235550209844236649914045454908729296970746681834060410215372701945988357880520178333522531026854455257412832702248882783610851584026508261955762992155799919967192785389023219797899204129154710060872476802748041410311339566085375734379610288771099215927963995423105982986067061636768159355359487321700134470538695286655733711300844556316867392085309385574500387147857624208140714172587231079242825447096212075463126989502916786997901305136422035963839727487409151273998295460070910183278017504524018724675236033313236702238143132126474386822390545152386596178692157254737286001790849439745879622175192706269634304696439842739628178597445738756440565239650857488040828235292079645642884215408294813246138385888451224439959953810730078099770238465644269473813178174139926495395046130990274513708309137847329726939109047037497774222157893975642392600663132129753599968277504853761994851977097088555021753108641072535181889033816002837265047184171537129862002764470992967682423114445981604353128103572604139995807904520617853522782072679162893528170071712083912758449140367576235128471362695839256957911789558591291778544682177409926975012953734458856879270590301809590233212833041626539245509703855128571289536040122078519659391895544063413297072793089558146543524270445364808855001701513390316596634058295234835242688087906749668528430546382870545525426868447268394877565031177068487008775053597384780956648742899121782020135841456422988949143979800582470772779121534923262519577725600101782360270343813013992350222292891387743656379993990755860790531605240002713169543948195444616265569355084356575495429721658112836677019892299922286853584250788462983478033385847285591487024455428254728699505891651110450422708560476950245027630792167047879231123274226460461328659104676561900349205089639157760890739718255402586275876607579449503329621114732626052976000174436314604258769072390478145609620281130244288246223259740255611748988209165130924243812801549548010899872875833703261044056591296478827716647730481086686586539765536937915884441373553888414341758686331582923060934086170343575233347956150819654328500307857468076147504015843779450538808157746626290294446589165414782411192277573569529505168352108651256425161734671897287699309807628665557682732528842757046614662964221783686682818828071083876214945042125080790730465890566051951672373490087027100461251883369494771616883443224153273497754895300736720124891327090559664018869313715933397154403431714430665942821373625195791167507549609405920311395440333652769966537032066058395101555492010552806584036919936115875147146430576437288793136748902720798539971918430108013198901915157441300759628182481219900086137348880430523987213830517103972793206907563565754773800263441183665535712328914867444831296096579834041298488837202027587208491194139359291167856392511385545662678434488736620846243981839450909671648536711754149137944994913347375812175007085158240159683491934867250680916569470471384312203842779701837705056057472930026594892345573882884810142072242211685102210122191735053298808432541583321476748651023548611670880699523520031995191143181826813754039784579913442880043010323673962770297377062613125646101807069241245412430543186410973917980624686339953282045149610971700125377884244784105869647919191209598140434716560652774015361831942583256808613856975139805535609135606211613548109441453976277314498669942457711295406235910930047853319085766533863516124828907091925983642529475753277243912542162505977172588676947907534123043266088940961400275084115624234998602713411058304835220719030704430267912978748782408600805162846026972026917280608533478987497801359563483515226292958546358179107167869451019555708333922195946039881494965127797929058199077639606069889113993704214537097351729803459393635309914668111970095762026328327300280372260557404280735281356337744543210553209377670081581329416302736396477669637722959485655958485579352934909407058865299065899359797343382811623441344515689669260616685886287462500635639444473658968075919956112349558124575413586587893052983529908801172625585459849782279270871464216311009450045671153912509183702101209142855445371455914655734647435829053909985258253450507813796346574304799273872734418950872101946094722875599944772965003314624687273830928122375714442418616583702577286892049606306621802358302182038473121794939401607085183172514693657671688414824419587206725802847607257123587631101540290349891511271961952507267006155004970134115102129358141082026499833795757415054719158615899844820224594006343031890233029661503475590759457899148715837861581872888702348727669142803645518754118907641343380907673596945208474390875125423978407226075703913622823424086758519282997230653865854463313804985336077461120099083197823030645749875707012397381730412767584180721210978076258990565555867701489018204980103264176847316008244595776145352267058360795456481398789506060554394391727664141736203227565606122799303070035973299036770568128550239803646748588517484649616556168322462297357738762817961120439223191586324360238215604897408983142869904232073265733526350946942685096550831606565013422644011006021427446625021453886704228815533172773524182592587260987871360371687027664081882393465924430287493847279975416602194197330438772931554930142094303772002085723170546004848783709450551224209729738766070758272667099389373421891009046577806913859193369010100440093729825144052850448336439372547482944320331197169354140771116202847878812489924995634149110657558347953249704330979897341143771954293326900149290114697610546683010427389222989608198642642135485767894780998511567930831162750139152061618701969971353707573430888186324663179247156745181737717971626087191908719632154331994459424192877908115157126734566210538973269751492702037826219222960140202463876817801821791662687074120419849284835768862173305299059853777212862149803378303577114900475726310217646100623115398282023103628331151480052117196842266628589964236778081046221623753846933080663124695341787742790212827124575206043773384099285156418095675533492815105360727861460252431229769001823756975429898452163054978595428449073784274183803871795543077992248394307031810121100534054453039366004692732956509576882031127037278750099358060957489811314877845184985634858145512209562006461198052508519775356716758300686889424212724895043783500794829362528781220201669206202940118622420311327843002710797611293883686591264098866839342226273238380492759166143617502239716261561511675172224554497036649326343161215601767209011268578510047286454067355021167684298917778991167818352365735744945962622954386251216723440531971055330123272772041207525121058279019291255467268876134527431634465283486279362138879836831560768438921211211249530386764548299377250520534195181976660443894398687149069964017213205251773761899236486248762139657316909351106017964059138064116666309742833037361593309422621836409540802607361755879723216716269314216685092720997085861457144822474286702727541104684096139100369691332569497252348131113471504150595625477510199084937607283455238719925166567015966313785318602133672275405463097495926986331933534548201641985502482057166776866373213851443759046067335935374524512937272649198412540415600533131351243593832179795335261693760923830691386602766718067488939150903877159578039110452006235734754946833042492960522823171301480971934941649629223122050195244990843488413674576680819816328991212528812624832930905370535425035828323717247365816348760217282203709400685496031957535822435250318115350602252070715675252154499128472560747956598380040353812584551547870214920809598822115165916877615899737200865430335790141694340724525904606947304175127581766938824724522990945932888022942714105572374236931236896288696613556652714053924705610832511046445882057018049689022360885620165480214219496293715250604110220917837436749178081041426493703850434138947904167318894319286468105997036077083589711729101989522504358835796276700261317260079143036468581629402888187676643338371250343138730125626101014063837045637192989446716993279714886478805984809867600166796979453528466169638698182914992684069376701009568295096302580884663338186086485991124654091925078587601818355534322782944423945112465165294478254252350331641405907626677107214611186053060718460751691775672213904475510667980772999614048120763484951993900498727277705090765435059524017896924990969358549599535002967693007531776366510533822954966474257372698831154599767912148116225236025492834820866391080844336469036032459266040871220779367743892163784417504335933733112590170738244273481391007902166091097637784008841922302882100495202017384353683457099901712171856461812580831351925558148815402279322240690573001802165491720619203823614739765747593558919407663211515603077959634908517963788567503527130939203738057402175789502279566407422933537865526055295385271195902501913115999472135167958961328239533944070273428121226021385344027485349693983459749140235185084447843379205300095707473273379774911501618401058355175930373134965995831282395501177204656249987767701890021713109825902294807912259692695795199492138362154685801991643567617719882602050025868676171227593814199968235525945755341344958273350430196262728013868750299511675375672356927575203846056684394187535685472397453730107350018449965646556836656813481994863933558090829090836266853855406023921009381320523740716132665822895943694253694428990981304971324811504251055100512885741281382247474862301251836687205928321728777574359772424349687328745591780068546203220348981549022026819625372218484659729697682543219820329706243789854952907369863539687590405808962773490285719667663511165319604580682241799725629805970314649629499990446212562846818429650821753527831346387767780161027763465153208892431835605890930843288670675021950254819945850174562171763250178248101148878374739652262469625406921220123188921611285785641905844444322920145651484356187682839277730078958166608228015269783878253870549538472225851032188770898203487642268687388144910229641536177187632522253730523199663597575075752086424991656651565626451167128018102498131767784075927641193821801807185169496620496706077239284935497800392554002928365239062276428579342662668984758237244313505805069221069155837312759760790480341442571343165314784748566881963211306158451472227900867983196048983695283392348339348129538513436782233023070423244309511654612611375416436196205179092425492290290082592621237573962273632110438190619469404549527107638939046180618066792913836867321134930725147789190291998966091439466395824033854060304888767466467423496940806006750809835672236419399022722625614541149020224970037362809359562455590757717241965170887414741155694666734156221572373937840846286049583684120817963341500290409242703732622396563687958559189591215633098921077385997516862024421072509120138657686124822321640432194587458889380578298621539913493715446696175696496091713328682487422780676140668112802527955531733367771769171509318117373298630931222582385706885514704372414477279880501230753294261896375885533696699024854376371463178143914431808070600647796248381159937785510373113245338097506305109360770393425151474650970880982926233245833779095647833857545286079656818299870601653588262908598350512639404147757838082122255998124216818888473998792636078102488051454433636586595222092847627342866893466195430153233848325576482351539455728454941332765559377385914525143114768559439329051899883519032778700535514844737912493506701823447182830709547835693426257664630707319424916916381464182428498482642474814860541793758034888395310761496650173006559824681306080151413412667210892701930482234836385797764241740874319170384615734885182096252953297930418531274945637553945119334513628954007618944343428331718411512116278074271933551235501892132872529020918744842966244768695816153764563387183440172604375755375072821405562534193354286121928500400992278409901940618969342063082805797161747710896087764600413784477940165606774830749610166910037161338482896801580818873679149233522914936222369108083295355822810153372215613772544390903125810995051421100428810455196782794866979397256416900382887354891484602165051578911907621375008777374015825598437513899045825161096779164253580214076019943931191318306149486075645680050151176750047848210908228116128868687233592173878316297670553588645526408914622869333500343261981393349747741118147449655198394301308508222510942703577569735164711838170623442808231814217602101873576357411819533376953519421934421961726169895405517076893899146038476901071783431514030620451887657200283549848879495382096928334053838022938515036543399469232114860035470599759030652716801247236171948598926269671392686902118660931252319869924511070886767662568165294958390326367846256784305088811771413862181464354199733181686370984933552824960504366080766010345840782052670324973585549699317908841473138431708899508341607543200786670501332886333064162445354349453651496699829563095320679498168902764518146861344161553394924411229410431501783832583260098241816061508794058176453615849376123974696312575532060095902700820326051184935589218586211501046734376867238960764210563194371442280355145261908293538297298345414116876094760052936996004054764485057270112322359696729537843258647587630787008446173605196196196562840968184578535554839966399514241126900984735556966310402497173607227863467499866610482274239509852460449607368157498974302184603846616097747802140670741482619195706360941791078973289505012725517840796695266173349396341738319720776261176250447897961576538235405068461243281428087049789516778638720892233244238111185603492878360736275491692468380850509912465401894373820849194668187784668464467943289199071916084767295442247106413529231257972160196561690928134406286379439170041532029789317396659848301345144004531386147130301758187634771222952348016143948389213575800381784695675914031475070421587126735046296267423579333014235614495514474355824101049553238097849733210904339077224163583499317219790244127092271830556432290271079792241112624892268979863569343422542799353338531668624657829061663751824471149130311528894485775532616239273599213288821812906759400063318750638354660156433336606488521412102978792778306336836497920750078358029229289095755967456604027869637153780000448415412035378268803862083625825780836845118563628750770106338154291298566441172540473779390933247387155666522633996044081188145702460502191775825770474835765117496115352313255975580884020061601365417641427883993963700434311109965371196594729903983815505359849808673943772375189275457111259327327101182459328002167768068538945083489180665076278083846541962859421770079396999044915986766507934346285909069184415249690286566088068009363417487614385796965738982990920976033978494482075850315040199431251831334259724973588217292736212012847546618040690352911909921461910087647944668698356090565530188754429981191130191514363315801840524611737826412784783497101062761156547363023560519651267925823923642127119640099003937535983367112680491014984639733869069327167201505343015719287585829796658711451510380224878713154108926616207006976990880900829382392765091060440029767248537407987992887923187814748635671144261719569843469758835533448296259872315808504097745070689211356716899463902899199539675432175852124414191174501428292924021847782769179679071300314398231323084559065705082901446284682422333945591954733783755097021062356809249715702722009193190284189932471702401114947311074147494664525089620536429506327580838179753414626319376289440580748389197135280389007031277973460133852244957805062779557715001092784859685674355118091148606443516355625223558810965732946504072891102095252923893996627233218439894966471091452017170166721102988056863930663339691497249649918439892996938530562972435495367598874625502633776755971732489230754854141060914358107785693396445593745883703325439709260136576305540996938494608802197256393951461314864137697093455995561530842536398924708441157011954291965349695908365551899748029407999571924729930868469057495427603683256667449416553398881666068892907502934495843945451050291712943739141790992178573576938245350866485584502837401441743091676276875643314509984468546214880335931553644806850907421249262811495601007729300475061286702835327699180115942303200986302206683388648674550660598999321798000280488690005360932394410366491913609190372476620558430265974075335050751523234907829521581601067577644076611060109741838707728377191404602252962001480259294057341847322219481035679346518632631040950004663542230252791341815496353519833040071613730894253729775656978011160273346278106648889240951049697075873652624087916243739351236491197962577500458097782824892933615232753143566365837812281458135596583814843768045198175770656334691052740980530934099922979090802187993754343149598996291699175696536244887207138168891300428322941310005103793049816571302440901083187109676837579265491129453772955134855307597083692948307437864075961589515606880373906405911283102659803051770771914411208392147039491380543483128800526428848435466487902793165489326638393052171983920599472568387723970434952571359763600219033891494172241962782545057670712933121149269027754841641203890535985019321511360069371532390776575000436342994279549785251574752639192089798174638044916155275789077405114547563123322230092324614289341626656408084489217188058665192225770980450591076990155543261964509322269221903752825735188270035895164876416038966562712645132499289826612532387514906274600389495018480984390917425034149124114839523194513008490965207095596549357845386857490422088000056288680395579987152298990418310243333737223776452253619308073533401149314562782258929683128071327253094600180214376260797723184155350041557698859415168280667636377022797547755827781542666704879144932386756371924191195069995488616564548186655226676877389094166700506293078084252504966900359980841281460874619535388558196907157311710425194019866851950081931214705528686035804452411656013810444459827428573517276126893984476355993123516547082779980632614283564364958913174098948564215560243885357551070565142679467714130554782793510272841459636485728116475824645343812418070372668560106087577982994377913555813750336565376150043178928268482189676963535831431455244034599144715241696293508888930968877758717542114901201967137201502415215134254118044988300704645676002764540417684726401043990790756945201239426229345021729414647453733961735109267358913401616261078163375551237373854085465730737561023492720603735910652644864775858683829616039927913773522383547926808075118545335009464817142504840252505452082289132950798012466169943546910902446550662402588367590391211083202224035067522721353589656757591875152542983125457058986714682014430918991376785262991126238165697632402067995587718934753792731081926394360868328678595154693214621008258940467881417869454578734453979601756249553134026591200772803861305125200967934125109654719299532443133545324560813721598923726042145215715875847552913275524364372598273449131821246606572147578206067824260559719234316790482960934408445874287199135375935041071060818369731803906247991993335913454894231606163464037408119850388455347121856658337297430954513608171681214138958066176481721123793373761481966273810339631403226703543664436513681924080267888969916561667776361206333026955496127971311064876835058488404288292040336833479494786553291618891000070833721617236438656866972742903420195386317954148539171660661970727165415754791953251471344999924153233090784237963287238988941108962408625799038102811167623375783788938829075947528075582629066063531260288387666864815525942710631627183476505560013591410737147145721538367558793631933509078000838173205733774127308748876224222090728418417195440883502970332901792224336307094059438971448967975191661739297522091764582061576993063583274033514445302489334104656331636573893940414351221100514556525627282897451701997755960131782772986476046287719691579495654530720865088161433076337330717013997754688242051907746109921342748472682662271005644074229496395815486473490926805344803656019723306249644640016638804180059651134029653068379474324035839842436371571720202854643068796912397002925164146867360028515265974058883841497649956961292835027290462063931835558021349938660961415605437214395600409248975961477555030958319427723499929082606736373329548154035800765104815139291839094800155893554989832285911200928441786131360766046189064216105131933861132745008511143793790884664030872543251252337897277621999923349355159351419634289944242722009987754602252375102833343000190375433425547004267405166456802963218209011567362391129514532122629281124221213241669316821182916193797642685129053091079229017031036143346531682454853063112739344627262611261254045150557531157322511624148247974764893607595286356021164139945746047843326899096429939537810391453211404544139506099154407094909631384287067761310965441984091856803504349346880122435315375298053769278441473226116484418888786882847910849457702157309824478085103926296510158253970732776052930718270466580978336231247615622159955857773513351018174192095873548802415624762978713396618567889503723243931220932790967049192783935800128878923152679684625055527134384297430567111408644343555329447814465802352457248591360970320998830896358332506393149585424447622148381235162337245256168399807147053096437823271582349463909434755676147259251499391316949869841560385253353645406351205621361869660014379636652876432157268333372352376788751721923295964903550653515234241564771094396624202077299963642712557491361245404347065702455935831639895390496466141368578433051492312156605995213273151016572251507629937401505182769684399177188438578076028241856702040253886653285309781916629435584228256496419089368408882640652819130091915108325345597612559106469396633572436709752240418987287808237371891512707817043814251531615945386199666827079931633170437633242782178184311846529299672450662689538448677515089163367587004589718666092893975899051356451102938906607767453993062811245861574363812710608627684882311673562396178106127877648112826520062740915811904620106249616559337774565131437549356936492881249081047466926506457960635918240104989087880037873407547303909854039340031337185192497187279600913773784737952825787679843153524942690539803575051384537302933540795756637056529646592098471846108478726525961565212914126752634361441520778800923331029235891087586463632998484681684042909331512978385291056229333211783677977079519943725663479404545670397505525326330969624162372319794115965392929732539302022016915688752578606280307487138600408772809359722526247729076747444523542894803621601281465124943372134042836466031069297090338348731775921321873575822917447132860899125279156178621021886981715298871738212822024658611028094091953855665776847681956452267516000856200846284383007412600855847656667956943949285304770113192006880070009053662011083638327330035527606549850437028759900065825270133587834092496135003196133106928313007010967235121255144658831739079107499489689581200868704582150493207160524691719448073336034029059386862809551219991506173873899384246891937931260118632243515439801198956130722110332478490149694385131827838243996438014562274904945285751819073731902339211871268344426270457793707057122126611790081460888175720836843778181849682288994701100606748709835302295514574138232672160314785201457883493345104262679623576145992650740968702911061103838807105903600465105778934074656689131402201150150924463146380033700383067471854033036601301512617520910133097461330875885141789014470839974798365522539259194664724963808560294485447917385664039399559027254928251686199148269930170995162357134047244667991262449195194921301086728747974318077386000974754873013714788706574354071991732066564122114015081389463858434423132388760762471482099419863135804630195868058461502084653485601784332410415055419961467582913304003913900807332007746951911063050117260862633980862818656647465884577611346141828469357272011639314933314700481772358546250367182259374249138223653547065478414812591482369924653578273882717638109662708713717059374048085705416588384164388226160184518782275059356831969013533056607993704146779444841212123695787098886877382966489251349618413593394206012091882758536195879576817739466113644374926275812294190857440182429837506758708122030228980249907949836393657097416287799373678491403980351208950634195565285716150000591165553351303933306855927227093498956314312710929483919351809395038219593598674990530722926692321672543765267032713691669478069038035083840738135552938976950711127740950025318738611175410724215516426294359530996109769282966141360384733541437813429625958920201410983663630375268398802134975673804655431152384402447589800594778945631893936742400428123313306624499122572007612466141787100722636654472608435378277194159778833127223128589436141450419721245809813928738515158636437475616056878058583222022229144377031364283167090854462640701644010476830527079935637377965399856270413140499273936376639102939882421756885170398580715966071294644982794059170433558390541937413308889876012080729127643537060643924820676099384136157766511911523023642918419692282815227572047604573978260365507582061594474217367163048230421574954657960492770304896251004403895024871269967218014382838684365165689077759453009737285125954497246737755156445681434427965973031389872323472272367608565939731936618438075122657728828750356002859875520271135902697693181523314419909671517191194344315626079751686785443683222402781386397057545136584802027525955995568760304532871267858909596675780862498648389705265598086499316551684073000843996746757271342718493248956788767982738617316788762203369378540843429967060807469970904817913388898215102466256727766124241999244407893871362748003354272187886265599655879321599233276581290536690710010008075535128017178412001541224716569625922467248473520852476147864233337919118912374395637635234217746713975829454592155288012797851267790149733878025728482551753338890191316778544488445032790359490182488826236662970573063527277694971256006127723206190504844588814352059164320822334878453821477702740513455779278919060855833648433091337799659708878349723093821160092712522417574677096377633935417826467631264415627719697419076999655725272167166769656403914813537437330901470135931428394841036019235940414278053218952049318904844373207006187178364717480179013363023986727225372267288789797151401876039833816045420175915767964004222120057946879929717806537007343187209985581482261422818063428203164307789537000873078282523628003679296597692901494221264255720545061030080279235999743490258210291412923516030167738820231802264363286928023185121840384365090632946645120718746575242923136946543922320083247977544075221808586943025836126433925278457413146735632705465154852579109431424631473949309110650866563680030102669352137023083368805128952992752181645732087231363885004215730211426082348117113198390671400763117943790758922553185610745657192952448794217606368243098658239369907605287602847801654191324177690590001992841178956890279660126512922842331290493651696537086184748419991853299625448172784471851055603905519162833776227970250005284888943414424982720688274103610123469899397496770168507940273260617230980233762847706905637391327410989494070363262061942771233920844085167692788212563536226579447477927976208773978529162988019602338174331796451764074503663520232190127072870935456853299521550655104032863818257252778187747650292644919851072914155353739736352374861309914243027268817530392066465711542199898508848991510489822798238185240244233506254903219105698235140689188610142126328855736833973171633491978580289300459472086970057020655995974186779996487395527224015659125351529788388295287306562009928576667839228455720366149579772233574894846977251250572071979860609156822493622111450031389510128065328761725579672861993024701728517208583185661249823461256283977350695544336534145319580054651766213153538539303983322052374105912482829419954579054525368650594481969107023950268867924748826920004256078320797892778459290514140882616009094306950165125018851194728786455248358547075520995624528863134452361642328022176273500622603837446076122723220855795355758938522463253291965537306100192595839779388458768944453174440954541600336445730383440069648899701384282084827490934720026964289069246587495724164146781401085992801842897541963560866299756134516932008368407022736640824018729934756696759530864157064398266068233423523400572793328720107962353519923036266728896521177972718532385706204938378192299865516608052926119819452640235654038616067253628935538902927547050112281464538051260602401668733375789831893539233940474487831590985160639007006218889855409939114205135127903026379131648791782128140812323193315698520751492002221831490616264888981583596331662430139572474638171033372565486918948197991068213254076438213119042507954897582161046045521308086920554146593402413496553151979003467214877158457438382256179482111581110705075608472204445854975592367833896363620890023979664730705875459375160862710456259267783855705996340416003712428196076606239365961119261283487807768110964409239504338279249873892715266387693368954437733325232886009111552847632394009741425993777633414531386863876440481627873252669600364021834745141991472345574474973848891648974818013684647627615793455357606529140001172333250854228680707074832238112607890854768294698972549765658661178914569852995853678053873307142603523561528624465530134272971244534514666548967044164895311911232403475913179994837910946422391342227869255384415637387169673268683796038093336654030237180588089972183464775123120218279680946547849143954685689034114036825138539687983174487743964632139930148763423947928357560212865845072732595446724483498992811002274760662958222432501135400057872720501541823762313927040045725883789264880154269506376850059836582498054994992415714634214773881987396418069285675010490601841528501882565642689164720935057523067169043360183325219161334124822050304239797859837555974671886280794772333889808306994566896676233927306039181342396979386871961244231513135246748406791514288423939170041433879894872402925708487824598072969290362765076535558249776404527561026774435150803221528873969097711223700776237651448788610878869868682032941837958822647933480894741208604134239414971411439341091274695143015862320477516999520587591242053041697368159973775226998906355311167055764517944323716629425890294249706146154543455907524151912258426607396427786831312256777471797324669240154517147011906510164691106040908237408415022837357157636401814989137457016130229118835178278191794117504497012083220770417530533255431610094444540638592128424334420565164909873651797896006735866777244259123691146667762530387974940107299679517934533863454016276981931060384200612844081607430798825388552334007374925576017809572205076306578608805313923048566545438196152566535017687583866294146985119791702651939799543342335059260749338537954041925746879395549515136083569065385598245973237479584080385198262300128054517555307073843853682572860489286448094960745680852753681888107969573221843930073738442652070786671817427061578704753075886139787263258358401067692898570924043278410826635961183828837853160335130376455763125317030086986555536491411951036141502628115943587878203440385058002885188727890207958285563004397822638700665451365641917310047525194596914847643922846136175119702319403545263443196797722797789331369165637543083655471656982949935017475810007156123141684833075477539744693999401492579543328232358910503225540254163995414278087948528971407692124736481116723202938429289412961947980968586514127056506975544434374776810357014534100591254901785637382340114148313358181241022174031556594864773282273266105610940458215197979625738520037911149870401671448690871259094787843650193725910532626489867490555041829759239322412447530161831917571566896711581903670248167733369623395936459440391398924365650254933082478284297042898438310013111279998430882794188468688086341636223390609380598649372823302588012255926328520178981655283759350257180485682670620388047588512613309115813247089407753395352208323988569839811707592159959140209639268532298680893894845517864567358362912866926347432608925816928548682472830077335349613594905786171992921378463988639313345449093451172542309024078876347429486266465761068862505610608614558671319270828527714147079208618140227278016029558642021577870372977631831664565968722694111054446474468006154464053961074941855391958614541640331659122624741055429761051181655287890056638830739637798413083450290823577989370748905072964290827070369053942996090871737350745233791468400752444634487140319465064723294906289802096156762123471868595316073315598829103055357079812251495342299466874118384325703314934133569148568287523043644401481592440331367340711195685224914206005026978551249593968125143098082625336370034200488647589298847102270798095984617004490557460471893547961199818757801698495252880476201094864948691299171944201796488989284230963084617178975553113607348529120125431703559255761120628985829069044688270348166111524449685118853678525707976578584604063656752439363107265228007798801041772970444041998134225228359677733202582282993057018609480771742098191240918867918683542088430839757166374560442927236793812324889785181741820905729995445902692682442927292603568355322089398979966721524021364304225433477702113186549211470141952258545297158494879982429983102303804496063496224051592530918178352854815830929803820112757284292244585578717503485381911850582446702321906696551338113246375275439843887109528317125204395518989143649575843624492325141667064518442833227430366306304035489533518402224072817736223159871797572473289339541181522414218442506625397892967759055115680712338805683798279097448073911552533057172000751652357632041458563842602120978030374305097700609015286646537858082579988616109535445249601122798808537996836107568485290904616924466103322354031580340558839432209603522652237200132068764144844459088001028009512440415011118565032253528535873172820141419679410779554375486722202166266342234066986524795680768041809297298858332776733696962236144255465308867778451833784501366865521059117590335905481111420046251801386188664295726244788572472561048483563785272334663836884607849614135020939661168031834679540574547083591642286401631449241522429659044796064629944014355792779767685845619835463520135028364561679287060264584026429129115361376063800702008028683090877720002586142485014867759998701915690139998049330941411902489817163949409879118217418674218026323571560779265830386037991212064036907367630279067177678114518546902501432470973250256659388904776176913559487943241150090569930882274000198894082605959652572423817846144326772044687816696408017339968928541179435386694123938270317570697244675439156896197330309825818323279693765398196458998417283829485793749570933324987080988236014955778923242112618722613754743155431056598938427262272526297568291880140805639384964222115503627760493504541544997576273307078689095406102750724361837602443839920993470259578588081001770345931731900943026088982607467524515607290310149961658322957129717142034315760722019863416814455598180802946085238552652181333452192293952488415135731952679184037731978208673008076938379025858851155272542227604776398093654037476292515008616573848127247078644395396370509572047341387717207339169763390113452818780055335791389304039689207814908198337053870152904558534237661414988615352576756314684178407099002934963149918358073303844922980810450926771336256074500713206476444178882689600006883385246548171857624009299942896805261668214615446915505042123889335396128189653833368478817976374201214663448150369994346481069101025210571063034972483903456391743408121568535762146519863791030178227793713500059858664677364518348426407512053336009591037256260349861054686244765752711644772702227302310241408982425211270959890400922450777821060592952589778677689685403661453166490019248920279662337833107336934146633521419029355536741757636993890667531471564677710888649577650613778936339130421116396034558034552810607083749420787964227093901678976617559848724947188089763507925953774710694405158851091111849534752929969592992990262601416190411627518250280382111760544643113373045944877552771263476872945495769051818786964092465935412893027141686348129906137973403411335498100660122922795884954122764725474266910423382312324373601555627865711614000660373761439810170551471275469700751046316285256843699003140258093557163804757380387902725636784105710935539589555383572508002492550053978521014742554339500805814045252940831038672590113134340554832416318629927017596276177017343135714378662498736237199248068534506436483880987026316261627993671729418015352388757961710984895139678622211008936265520441344109671763359498034696506753192345071399466259288674553082381517451208331124419967877121433434352739230460181534349100321161741840659476819268391434620296030698406852518331835189273310416937221807689987754872240918273553780325678073259823574402937401614227200080803679976911579789047033271060803589635295155870193435045193237207369495001938025523825784812663845690159382233119989533833349625243227469759169047984589607707645248457253095185687936237121739004408426541599963424964613654080713938539889958971553163773396013340280791019451143532483623645650190538142464113533434273849083595218698186787429416738302469526661061062749696578592929866602366499383641744621545085161089898636867062247053203039883222284506290758227124199152371586225855371197627934743342204751186029628597048537638710103254328173860639857818324618027573416371527076872636925497936153361738640779009395891663384604409607827310017739193719161024100612625281812245199075591849327359719719793231846704437172880989537629006125243293376134400656762945182569709889848234403828437243383932573083183572084864194194540092325166340420790385395333952214852342240367674968408583258981794484923237104934673606475776131669052908208840640550238289043542800601551252776811031233672956405657940217987393180828794598561185117910421934482537305699518311983347370898100374680321781784697717388135180357234853579813174428533935242131534717058022139290370243844472883880944225345325285708639704654745393255222778081600775215069597901159105769802116661387804032163437805078799442843943261034671851656070760636631412759291561656294859716083320224224662457935240331495112389465135724969464148395692120366885927897989772644255115525690206359006724197543907249896743872637228530603317856246615491268855084146071366822744958351177195219367983581652111319006477918344270137839672949871680063151218103508778231195759574804322255489234237337751569704462082743514712758079261628341628512063804718906482818361111563907466182823454189773855374981341712121141549163363499167267114628816853025949945408806573966224367430443877651321084277208115402238985325383269832737799898127002672522198396098656935487721339228405848395430835349862048940262697940283728822320912279043976454931931666192354992346600915880097778121654091884877368273192624564509137538277036228997191151216821824093134225304770445019341367759616374412701719611837952505865276121536249475805299084245138121042477673738291263315670549319921497172642554320447483132813232347427532914327045051341681362717873428387722226480740178902328450876405605772632695055423729263738011068100452789260405158759226633975751842165836037021698186872943265453991692346028327821485821725252484956327203871877175865319879139968054476360692742817656230552500440477527050382090519216107610105712864085731552362819515585934599743116663785526307048597009766740299284686562326170667588239279188705921707946298740854776198922290326186408441388450301949991534705935291948031979083245002126216299305986475762732738294724633705070963259717847206988654559357674133632298549460927456289611458409188033945482449482689128645133181092623238280043572892270969293834091005869001647133455535220923742470241287674847541212293404424756725119461144134279108393806178558231170287909132690795116387848113637925994976476805842950874854069300710902305359728465516580246284537666645648134595818054143533782999710817643747795884945660580510299826754370233905896970904086300534281139672628450089859838753943739549239265786153901348079271910816720062170247745029673870232323477254047860032130441552585135940456707681271601171683509852188675500595553444807790332338435848790602352283335774757812603828516584115536141298588817837802710288420016014885678061899753154088286384874674412322200657019165174471760208547936882849581263510936635089376272192446128506845182045860014258895459645079638445146569608763525082030617957190649719221725816557406248960642765744847930617043593313312525202079092372326073526042117930374620479178142783168853872256700618703486584578891758856704005011475225365763020909316144251008479213192455686368316409027472929092008200714758235309861213345258831681288834409731196056367249344736543594234305964160500624607617761982438124853414004783144859290415658746567904788330918298838989173221047958142649799967466533699235221324480664322247622901782901472110721841150592180077071947826733569807594812202492924305979787793021095892709935661179301410845376488105869406131591771744612078174130183760913372212284866237471428680706052069711600283449115086626570242374184038971649882009433132072079655320920012536098096355518479841204490495340750925414199451731025790450588137044217716098780148511053212654145275541761131600377328968855449437350460013422461548731390260921026157514779929538180391866903623538958833972710620671651189444965814584836863156805770217865706909700171692147961442043040063379083239269452030010712115115790167605749773955446225179799427257391617412701268678368233070553590634788963318833003427680433606669032044078010843996715966237950599862741517593680339978787170423258028895254202250271620085924481782443815605983260238564479042430036861886127126643083158298140546330075404610142119016018855189637191010179900544870175169209561662333606142495737208282404981559589104296700462679899315113163757418033381062151180324565075268675842793783719124093013557484870243005575480625939402559775963504980800840479127419097638592787213417814751901140954979394431762554986043137883968305961601325098493135798627595119309643458989552879120935535274288890123483483846578320714805566389168806461367068310940772141155754478777803462389774114325814863776898475832481290968012479832206951906951123983090231769464013689727283212300019287778769986939500896380970105939550484257368427889556985487270825680230060659739098412547570790415617333260156909837217240169296679674369983714995209844380587908637973741458350827411575757218266032710231160626559807671695040180943276581957092227952641356421078036532045367009181398458468094092595853991878456622292320557997286293808458434013390549263620531018959257438318146399271491429542676038386666132149758709857430760984042727133659906581472492083982265091293583046693677752164232681152145338330536573569733038851755763990462928997991143321446339445926246739356726524793243330449222398904392084934519387308190461066493229143412180125624473363797158868063760922626649773208782354185672957301302761705661082149455293144527740332780882889548453457754494466335718519390951598919824395514405467591177955298595460434124142227978012896243677135822125161249595191027162680152936493473289688506038429861040554790961007184719155308180190154837034780321401389620563165099206456475479304415187915246634164801921240443309569871458680092293240626720265866410348373844533152967106451671197958869571589127783964572857152266609605388366064044700845310000404666553226683399015632635516013229378512194519898164737280881323169921359440983514298225617657402293280014092615715815023990996016092942028943660606717038780250809743865689791876027731296745919652079045961387137845612047316158842760712514552746315998960814536700162842294761598842483742532595982465785519050069439348279558943114594703766918195069869942411277852983068274917690255463629720909636760168127335550730131796325407851333951621252304564690372440579159398058928581661972496815339074602012258488788007179795563239914199144131080584446475485717707777958987504858100618664658134969520891716832656853007043341115985127581377642785193180264487335714959488567589521524807939817760600541198102022774458573969774170130719918590394207211239848195070113634742103035875075343877754860276112601499564893180362076481011307456470969794628708111865468851955160022265810496919268482028377067457206809060017853672057197695769671030827379077015676034135117765458546163759406634442247116491185508851586750724779631748524510304375310522147274550205892187869060546221452680139858968367004849807403009409267740293260994763580580629726911211049345643913641993415149406308008263417687467571696311209496811364860581976129773720225449645252637918765660364471617951398327585825150560787771777622238814629281535331341149593400025945755468392451390370353600751673189109778465250409812853525890823688997382820103994373007507872622120645970812590222762034887812072377010406876585993080832286166277425146623087396805999573102508954525464167231746427063979084796386330157004359561988704464155781320092130298307985429697157201690991516539500439435284491450111126576165601326089992138246741941858093255484259727022293862745595447119838609828383612110798937943150574609491134660822587322285396818472298666122871036916230550667326620426020033193360764951481833386061882339156145954488453474418922583700642965942307926925398264812333292581369830876899221278756391639165905809115993052153989614315166567128392247542244998482863470140338551873340683231807326610847203219088840014121920290333260700907297626268549780735606847870643688080334080720513169258147226585924984127859912900089430148474635583399325261060082655111450337509804719559932876903819651383444074536580079247861725916999957624025097766833188330508159780251075691340285521373162519071612527842104798296285756234700747656207668052570508771064214062493086752437996838872571260458052245698581296529204513259088004748680968630313510535119969128790028055915158910144181250020861950681514525066382038218483529085182879638147152633160955436976587268372321023081814688192912392108569913711646495708533535838403352499052182204830595258132667858207297777686294787979007299980678360956383481905941921517709207860716525064219109732586473314777385485418471214679966144426711240971735516640758076662820969823448028030017658160067482162090023014891586990459084368069557956159972592581994048071476734465637425578843741425967928633978363238164301789087374596384949185918846995023608339742249695765985399633277693449000397972640500709199283782094842344224408438779774680241409005524353567353257852802324258303685657681698850349813839012242845726300144972278907471726830134725393700936293025212678145888393829569880414683478179316554881848078085606940027823651494333350603716833572245560324816043039824804197442078966552988731505515265071540972937517316282872094092671289439168669884369860603235182212815297839535844742382457358028153946600660595817229689156822677803951202285859054163804085936678821112309215841521190407854772633055716928468797218148344441660569299500460911437243206925452633720405461441125500706284531480352878895476325255638267447924886433469434435002900706407822443408358230811487473000784351228960190882979154043342734118267440148100340891534324931203879458315900625096641483762794994023578279809025041220080867377620428926438064236478099022376307317400433384656112548418877375391347453320082315128040813000020470753523262646178671061109016194924480693388823244697382517319044388325818468677851766464247675167189406570549286786563724323559376925579089793406917908495641465872943544974515130275420424562390654824819968846181926890925206114378578533786481798614406635410124747243611241981353364903539563605560008898169638556174597549089396662275979913136935681831329395807932124455234337781644776408625484943950800083772113856241808602220923739474783085729959639703263358878959551210815967940759337350719699879535991051669674659214078447960300462034345057092251575172260989320372731479820385832924636874435973102727061080163142358856602668481097384487310681091161223591233503192605278650042039462844479651652433334421032107463442424406589632433425495710245313111396425286939080257641413782958671549288398304498343046862973753527659576393958435372551565755268483442141567087681472178713122867412197604731341255205073922378502816649833322560354872600999944982762139195513918517665653670206654116100238110886203389617767705061412144013939430420184790591013002842390444695179125078257168385427003126113814611657547079394632578079536998813642894782338863252935874787755652898172690476116309463885580564722816834820108039156385860103478826241820576339494163032526891185992212894371162893952893773644764553214026032405590099302239622348954963812675888532979904477146666603183178705871612994623902307827605925627494366825109679480202924087344082966323499770163355700906138877599725560249981816474562094236893219885342649994253420727774526322394670579065634456668361712651970228444275252519753294065243576241951292628980145954102233255621921139106883669369297514945541665645881785595502803271736737999288806854737838573810276353922606249017996501532051347973332598354066929289354097796290134957424305120356213688435798039378376760412244373916401594844440853922426767993895407725446598167731988089503204142029855414256330051558319662191523749803546189596864084636354687268791829619513913210115060355089336841357010235448239725860605060053246117253644248977279662144759235753111779007385536312506134889257267288872060263417315878361695482757135048211209592822855161324381388417832523999517710127325087260834207296784948681979192853793905353006744429460053659384247865968467752255620417815953570221662658223635806257670049974004713346232401037177361854506654724868471385284146529724640414363631681149634457813069597069617416806897516435855586630466919273284075391608474891334580434315824512044214351688797441338866312371841935574272675934129618699986637418047193411300474505846425604293175589692331671665318957755074363762315830088810735407632306052794438862365837121186400957933009986362561719494234804824649632395617417956652898903626042622863729967806520613588984079587013013707816671635282615755917096787806652915914769887090367739118295157622020279246005316357175624275547143171895735852629741547702976416559698899326489277997459826273282322544517603736272741801799155184708269157885524756036002745550041126280844586778648292405019467752995428059005181712958282029780201310608492287633044709355116724375425550626297988514948066193570690386729243192180173752568516604383164546650983887813230873459737049647342649900567601216559622270056265644649883509477706921901873811331501270189722480308434549952281762048702659818457322881394867808676181850355158865411659494444448942379864278900307256736870247439518882256095264129350666885511866481714538996642273044331385267650276609961693986603165967119783923975372887184211709699413057087819655573017009414490895479560192917190126183634646981218235332863426112079472135820108153380349030967298066281869371955573703318658215750125506318516114158238523260347197635783427320811647707852071769164525146795937725545549743671042635566135853159820997812202353759934247102132088562673271943300051100225985607708957201874534347732198715314069768380650184921896960552254881631532765569540395141396764849391174866212237042833118886616194777844987414468779150332783483187636703156932778601091051495241499855892357237099312477680117589210159145585429413753803889004734245344528044294797487632251450566605197021068575507017486638860580730515574859035985953363460999384340497596416306929880807722146336039949164000942434693601373151846554092085878075954743549391546486315283991208363346387829841500023773543313053752878140633568793284997722831858525987031933895619579190171819787700664378693550328869014443684876578817200263941595589565777597664036071722909398095878632792567149465844459382359005725223829198309406867124825302140741300714181942696197806622230764225583150406961653429946721077703397054253317464533478681252519465623347509415010710470701817556755649136727920485208455188228345363381086235559372611977034973318835651398098092461615186497233006206800555540764312093895197927638415201167071660263874002009356904368793563725779585692209579247657068593176661657359469824551738153953725065644699282028430193851847591319698363236695527332095721157985495044328194735013009196561928553856835466638280299160749968005442789253680860784881913530311094675149023841821139879750072670038183387216293491389238563351701684085918871979028043740927263715535234148587007292464146053193463131495449776790961847341865136633403038348792738593387825127143754582998496692966346309798856845985911824736758017886034244103110089227035350530042965838672470996556803832482506081279553448966433833707760944294283867552474603698657705300705111879588905649259734280724312158645489495849898854595917704701407983838360807695924035727460966402109579988990536269066817142689308097383106805645047526156399398580575642495298682317866253295846377258414839762471446434049314329366627552923867079885708196618160603431829054644527529349044632248543594459400810044616813119280038616196785099513007504186701577029134301415513296976081668815803626153826549390297394788291065005834936231076997946220629777945920981089218827986368927222075409703024498301889311393264994181753559171096412504066382974327418512751149616020995263862676490119197803112565964247639341902783290987824874345218526859416087265191697313962772619743201789567687237193603813003242248922600136455431090379441730634929523230051287337405263250613093313510891930148789291387597365675924382166319588286097051475569105447608187920498261239525045941408052769469658582472232100734835428658010484117266998535365585777132864175941214888444174783531984083599050415599919726243020394731604179328640345738108870215771280271457022580593933318495288693462517341201465717005493070122361779491262160695571772616749065000847433665152065955753317931539356313873773327417321030103017388832206857230974305950027606019307211748582193912854003437411777589433305221116662607162678190702915253906243946353794101665556728373225363739469087651775636485829018413266169783245444417458006173857432824633376478013362512594581073151812220179298908352291777847994986633550604422560878306814979927115655856970255800489850357796516751723847744890884613504369431856915636999273448414342313822475973153206885403926736526598345850270865073473086848085017816045450959780696827411483806592104869309003599350800098565706214872689184899969969641451746649378168489956455124676149278320652917877618121857175461305582883072330401832071412957268800376996919739974503492504103854331584706436363811529910245916629386844013867108431367951610308447425995089378766725346700276537791089202853437629013936693053994579127396597165567585717472130741772165522223468765768535627886833466719375693576026664367024204710948425268973246387697338357000488822825540373235829171435607145615854625212549438517128932747620142772794611497827048784504538870924629211263582824807943627111277707260093892922776670763556370350663082350695489324577737530445518527985285033840852336373001810724794359223538198987615668006696113360313206318258377359071612481594730150430027753327546013701551025798446567962285789029346330796118342717260894950660728358936304711824768662966165593073773956874000982563506168530477218917514607853966620956595333071655763738161830540345867719860555279838369536873662929903604948555902808920566766217741359674572587516944582860433570349270038304692409885113748751637791180304024215882010222088990458490802821435071081716454094290349069433471418715369375509498651468305616086997621237416454611415747634208148218489330145119678270673398607088152789411588590998484813142224268743282760697106830899422126225098366010795034058384984376501850595182833574246122603343943685240656924269669831150695295660433390990003030774703475550226977029172877249779780675942438748416860626952038974959070988188346021715442974313695227109982984787364084779775436178026319382694836608432166651482098730087337345060028391752455414476398977790435448175211507022119108844712693754532406640529138155561672498743789400747319086761601735868861392278997966758378892345084966400500773843275890135994883742864879427437998370325974556992912999759764747516552942672375417019970536130325182494634329423838725209385094194472988447487827807656137196507106733920482304235396664356321359097841321260418930581907835306868176685597721644771148473799848388193525819674521322694503843519319828932886841917662424446031891061224192370912398799641877598169023009642084223832160990968106769308909160519288214875131848593214131269251250015121019955072616770336013477296778618948576538092643833979161855053605998923762938037883773197033983710257850127461482164506644324357556004602556759704165439332898326393330788253080979309880523206313598155138338604625107025231969011107012324168788219505385042624353669781588065863729422398472555867929657553831088501739117931843888840702552029847820198794604690952855913249536789056134591091773052469069390250633720234665702565447779464560083674333176630224249851373565139290671130414290347721797022026805385239029224468421823895919699644333705900769716613869029399691036023151384934340071689336708325385752165471060610105021621080657974068961260682438297702262041327639686278575233001973166939200044523130324246100862905346150105139893718826148453146544994071599551836360552694262817597416751981915558953018727652190067884211780634436373034678484371109782384936789438915008837812953733853055046101258402991065506457367693873583685325289644299195369614966543150231204081222674205592188449394713729843006758696939666579880692462623371627153694121683623593602970767567227372302955707915655248682308310655321606131432091057128337317164707544717426168422761369589519732973103411857779686302982525696032613840058817647375376590608173956061073140055256974633252114229731772526068159722410862392098232219211202709289488590807603743599705762443194628044973607341858844874530609980365682961929770315513649420910065049179583840696573610884232642972641126787736090073820102927547658467822992320462729273096727528217803670988591511115164329859090020060795488587575551021140292371328315711479486149083699854982230670431540638809594258467042578270676884634277081691869212610457567522971585168345452716340785077636895267249429091281515229286255140531868425584101869459027957496786350079275480277290529840913941440412647281524283425730098818467405804933551952325009686883059691044528454093586654069328615897856056998874355584705268826245271159775340672131593212333830395914609671026186574621156948541908502442210401674675547468255338309999376145186982517514684054600914954366739043576842869033486320026154704214356116576821370728162560679246621268458507016141438642162776294733236175042306195881870801519519978012148333923771709847971604974516297122953183281735657014767761918196055536901161248878403119919594358460711061053981662037263007079619392795251955919882290387871339953589895777142556781379125824186116540126871532282321257405837823578122685556374966730742929671998572448528924259121000141854896659646321401820630197828600068128709165841693029590877737899589374066303044523983420537497255544687545041703754688477098307465385627371866277778330854384776970165631877041728266858704299670049233372267148912140310366370907175611728634213111823641174044391045129301979178032746690753464339574584221377894792574196968976808357220521480027592985181218850218559488061953567858823660318673416796443727708806485951928248554095818536642692889970780244318556710681250839713082623575104366375475207039973813924852733600456785511494219275956468268391195416080506958352246990228060378629900386991707444705706219431731876084185179327362700694748944510875295589489279129239749710973673390226033658717076881434716123279194326349588987595770794039370263856597336728858985403618834597187180077575998602737871586848282837002644872692607790412282229654692328142964306409472667717704796531367413963275482081098759988640108864109112808549851461564381274302454046280996174107326522428988053997742499344201738722374690576496686046603695771158654515521969514338487237942084821758382290292406491987175290646804859193227941003291248374317863945937563903767835656941316328391166685119278890633045553075259027346226269373928886486438025302979761222930993508503928625725934477497945077220024746581912763074565715851925546305397838983892675654315970203660905920262721973436735030046987676159754471293570063132012011484583822694674711667660919865590031717230853262454481250888716265700101050441764450493345292453328900747371748309277329727167725910380416892130876688539856765476699497638429611046835737786885951666550080799707875805941873455008129853126365984455336706257040467432277137817732338016907196754936893962699888124756053787686324743139129078096433241518890819790452202852474213794401647601889416462607248991899091232542932657754699221432404636638925904242425998392323890711006804018666943301219341797827444797521054080407222383190283285142400710432902533311709156355755516066560471914541941497163371729172259743972351770800233581508009881682889060944113689774619344202067332342516656832514707911114588493238653430544444557087889035028445427352619465071992618762745790912938672182424833306980801030336275768083764355522709073331410629307952645079608555720729826070929959297179934382802347106682706198559108316725485450492474967763354576696079464929902444352820221998644309863837713420390310852313541962656136452638765301083211349877988771488093244517662540702575586352370373927019977461263288464728153981916850746536335220741576483345324824973921886513008493348440610203911917827151777965567623028842766842912054346955368256264496511681838299772554623933152466356617422870749013907042999300030253540878815116215194898171970271308830999370277708447472974439537962224558804573166951463294180896416867466268984983261678582755522013536685777561365046734109293967885694360518936345174228058497348802156319836604793595597770367780047901825538917058143288068973674735387120460079787487709269964276044286344205339321495078329654715584890367004799094333136320369847594181861988891502084276428377566387185245730670857908183046654593140173863258440036211524040579873484727680193635128387730804034419916891842481401598129414076594453215210912196472414857673775675149840139790504233988254181159665234188274805502895362778140105656145718488738781761075619468259670148920518806892591985898011927771123781955544221584160820071334125684255530416340127873474779021170306048524485622441684672332861198209843999097922482328408686531453324947023627338496387883562627714668954453801899173594898346214161467083221710290918715585222614003055945516392499037040116438976237173568171907935619409952147186958972186319118415031575414734365649030032510414121244081075911973798376933842836026984814906251572916291441045237019877064695410471184676202044970931993593409111180856724289423657199829655231127990725219451774426545359789852562690943579964584192619571262190246999217890762105515463796661999620620524212583138168777851331869953564681575467356254344828372730360632673592261003724137048622209672741823703383029255921381471145744311002334817872830559122963701964158190042562350006607863374962068708310257220750353316810983918624911501879259495882006194056051884447721383914206950513198241992150177955436140256323196003322531341178327014125202439841260251224772610069291722203686359785251231325192691953744523390848029024887160683711501997903935451231712530020873960764458969140781912564802790032175381266357368294519518332639384273807152338235197208680528534758942483318574221858388384482262540262717536615055717638711705262284331247002586914215438947787689300342345066565619565873659379841740395832627161303193592158893419284641889462704497261572055145881618978155633179764695259260929661894871781115745242680256917566051949696858462386464321359158134942923720501541381688401975377937540011697112691634959648121155743103649180817828468069061231029266195613788888726548359426196439154610215812069548355835912348182912294886005609864722900531360770999423949117159903738548558765691525324544121987912992843898015577911579131335071951350112666685887480336423654918437976143098436316465090980396182293657301862272428882494506865768590889281927414633198626452880122743877491208822249308053987912248743322041531177042413646760803234994437985029122770568501223230853446293462713027356856168032036913766015311908099870225120610142673777044091231778630861180538217730275272307280437336368383789002883242780299295465165530211825302893539210920488854894217273245728232440049210909781082018081219134736965832384743859055040064452454117516177917402058995945971939553545751567743952680626697984391518958682157205060109903730287791890151302874069408647235661881255779900638179656092268156058984986312734372279134638365100467509704385626077013279773072409790781821795943250430663037541106301317282211265031769345911231867173844930783978626491757373797521162567745307222060813313033094455417213136260599042957806382873166550668560023988959588388821441505569703022843163022600946928629302187751880929021085132246594501871295173205255798727676931803003799731693438507723589838087231404559869950524248894966296753317163909079440652393417653172774984734660591682967895210574429751586089858817714329950637414861635465958675655626804208679645170959639773848647560872413266548537599295179884484704211441013549649744291178914379603936569997968959247674651162278064416362943558212024870198791199338955169293126318849339830702114255659337375229764885606856558371191889586752625220577742663352100891724244535202188497563025227383027977627618980084774107445343225118874953108247359004428875955430410578879260672851144347458364607966359486781971129649359445185606659641914066144372311820136988364105597017532452985974735080036077346006319784548865110579752468168433354018999395321554529777835979882405562179526342488596265977112423944235662079677119468226830773945354512616359966365511681073305911476276927316102338839324143968482203515287735143265744763169508811791592111383336001328707640462571556572782563007086826942502300500467134130080057431377914765145909069829007382811559794812656806046176076347037603732734295718950229459026263160438458822993942711342114574265776142500701584198349444266187825080420418011172875958430906762049463627235437102628439780871281664672185054434586216743241249749009081693860570322586539254463607247365939022618269427982706376592994892861400751066186723414370874968336828634120777677425640119819499261721591215342440132116188345289811897058352836320060254156899901555843191709035734138610982392995952743211653823227493710489145608955581587923425588106533889957857317817640751430755706906429359827983836019259996831667466698230197323913376368275087569839070178956847959140588150035577011966005036716119147949911083290552893042626310532893574484891112356872254443651370508010870007772706031509859580461018146016762742394699508137004458861648095459194061174348582723248601276465424295244387520482120455255718091655462468511671213698741785337261221723787966670989869385503140914405714702250223578041395870717711419820628806247331966882135791078795167189869585319469963811307359325037204474379838255009857678477709951311767926081054396298766836646153478507825011845159904902745368319815262848771881103254968168372892043009575757869664902177792060457446268230575563493603933877211341730275920363966387332838420006114691314313594498420963904471509907964236216156967874195346627215545166365288214611985798379559523040672814036207787402088572162407232708744481169075127501181217164036196835353859159678741833140998893634736612121098925263439812388532507164418095439536336827192138621427708321120266843734670964450056483895124398244754849831726502038900024299973562949096861453664040262245542425761617369711389171611707332939407946310846630652215133161753744940688641930285860501346079640109358371290515885526266284819347349794323550052310053278124978114320125646126659058015753811143729025254585891964263842921747568279868616282491796203123908121022561090243724048200411957836597375083939165184913534669030273399909543684350410603479326387397082794927041047800996067298810746680196817647661109499447025401193415066818031235950698338720025084915573725931175055828968993074252918866029715679587247571966763953430264374161958463101290610356414989838990402008852949453915278552963817381788818219070910888021063731363784711918825996162417557865460190704047363494238365561329350323120780046159590503335595612179428085710484026494004629881752196915226629549356287552362382545115482176512553537843357927181989519220291718617220108711565448349137245274054320524359555431421549982980657792669798970904320396916879510859561708496897399522134519791573748701348154710023494717398836536392476965722305668017217645319192759306761244467270991878441941853601682641152168634376816152187291187222633607607423996433015228183673494480249199027146488863411053108015678392619792908326028329608209115032578583875955249448680436399578877304159251847449421408144480109940795075483163719063603050301544872498543146334064256052333829279146952360951352507020316831950890517952377660449059549660855516161362900365526564758784629721070334394369359580704881088585619510434080622478188929412336121106816167916285312577424329083017941298216266907362928009681047877933081732848510389146192509821337171893897812603406438794070499536570124261803610384527905814243790615110566273809749812424918843058473714127780308330067297533270021163153249891491907724473336309021181231795909629438435549642743200720997482986994885837238551615266595831260830509859867541606992499982390330076406208208499329111506966403693066064340357481228700422696108031991039198584650064423760025603750057806241881065452949580516941298742180258326489539446960525301846128943409332662795445627970687372110605209485744033788617683236106299562843776888324474643012764792823553642613339069628513910499202007949442051865881877413676626558786716319833194249999733300472562148930612063713968514251364476745853290544893315315783303988252754271501706442836418549010439584972541680237810996668394908682951559764426795905467079075364685924250628081378724860354283311647068536719281125602657812410764513787330450069986748847038576424107572969387983593164572292895249236344349167962762720765192981037874245651604076807676333978871446191131630655961495515550174030632167494669888854721163682818226573324223619356577032815074646133432628647103623492922034930432468592164946615242330856288490242991557530268847024298206047425478704840214131854541946894941153888740225912927944515915406579515679007562151348882582895341874238296575110504069847986166801904052005588857034362322369145782763739650931656703581102565044200698336530753058565403095828590509140580908020397694616080919164846130685780790460352021199453998287388333867903447626629671862850968817096859328454643640304278673524359251235834479511625186109992525912552649976206967697169861420848127350279867565886100732550126454643732474218661878211862243853951323348269132366707459309695802016748838339399272285075473440420025731017145130136170526322065687294917570473047802292510664210853644090946953093537375078749168727200336449031538944103249114125063177571297579664870412908153757746998143298189109613114664552942132813905585696820329041410541424261243077141410741834581979245137495454615003311680826908534015266592103792682106374046880910029027510034234352121701040102565535288837347801578339899590712518371068252609721151410669012089633753369256942967977646557032238890369185001116114352399572417102001783343759718295588689269278697127469367863209943942477190244470882555874862594952147685589455809318953312429109176629438500730207057594682107228019633464474566392454977573761684505642059717297341217760796166170348605053208008532400368451266949001793452514506355942859169997217073142310745900296060980872390930161545233393914365791193983991579760904047560609232729622630997531062492471530896523422009705951572039402794723334804013957761644863805031749040317478316739561481627210949075367474525819485285767807642248493901086029066601271805235208285069837080009310336488672142620398470864769876257767790995803957026626576531724003694694372703555720442869255643695174360042880953826178009970045723504734848722570588161144711645171709396453831484144828377125669074822151794162955604100588466264344433172443117067550558547200538048255452593230813485942606490991900654100345483896878150642671052217412668777331421660908039953631671550730926151235189683621068708782422489248000419768375848874884196614973981662702649285014979926865224094984162204492390076296867335127753386334435989175696677808803624663612100866000172445818265760192918311333835133455833429286783127186953272921732588257139476987681142317585823397232082945319806550155098212142670182419415636035481078939553883818231562322212586757273551529946108065548763337889989590190773772705669955731844939008454857510440613504778411230787284990958848416804531893863509442112974634520338657018779449262610540619762816717891667541497569009669004884812277522878701029703688644782924537693134370809157605398208699635483193056871441219225641077853630105721415218990884139142477200321235656508417018274764417305686090260709867449788301189028671644297611761923682977350632251250143001788980216348477420615978706005874818007867842812071383081761639181155563456800499969023772987399312453511299625795239598286714347781380071305266930985667661519324098193041368014357460787809629409227252846772996332424676030987593196797146753540674936126728896085214461873215004395269345106020171618906336786234897954829990604945359819964052812416050177261852368006181328984781701616872441606614978836807947831501586410903418415662365961210103714876459298769545624497392358143762835858564184078544243773415117468509883615997601262539580965866177683130538587101656444857480076360560526696290351454806954929540401340605704711656740243954615559076911540322453561610520942112462181587437659926655365439469378441406750383589414219287780245627374760505704925311806459028512644222136961951177419112689555324128752906717631964612072021101303265462246816807265719806739863136903806454318579002726405257066107244711031301028464711782916791660718512733163876840579646504921952258800812081906935043249794961109916377038978821809387005845783518390198749001098308240618143727973008400523131888873811122248440293093534286624099727179929575740612985716734608032254183082361968128387884031211904613920397804044207971335760192208158198726994640332003119458061705724882688218202884028951033637991458963727466265527022936996339055337848375517977729016962348110714014031038651771300906524482152789799885263043068913083880061630481471230372140331175852064649545503730612354871577731844332513120955653222551145657323608928981170565321428506720847497332913520860925154604290620653906567972396860716721049866083523718691484416372590277836874373985688545589403588842487520623287380377522353783047420051207748470209650709813717838705247165702829350240632759934471827854519207376629580204791997783193219011990939889660640894158353024009113907251563247331228385092535878749169656579471440254586714268223708734191677516403281231178756013070522141438538630194205412764564497559856951499233980430506729827415846519963005016598463120927380825230187020120374606645828850722942771213644429160982487001733260816915374562502906007423175935027890657225268225691849158054183356463621492463947138026862784971224656081704442905587715414969325780682929992815836510521827851497091131984140028225765474439107695795048453944462374889382458404671478886800639706346733428679794901367528868870919414313762747862511474975304010583796093296940337712271808784009906499238821587803176898737140151304059008551478069102324448029409175835313706932524031932902110153967170240600865817193546674955119212077698065896992107917348141596219956362789492291652158176958728396207696876262338533460092156166293620119346001690943397432779585746079283086560304478901549381254326813663733905654230470675440817660904519949720031611334747030113904929830021360733117489972963594064376970324622575489047658656758237126451856902850472820860028653159305003917189521868153886849212932547353842564745551892024079145826319807967776018731533369631756822918945463925499922699531584344173317536653260423228440732847311345109410707808672803335985213274352146328933030697024507268706610620422736996026863138290690283032009599656349981359680531420919005637780979191260899173372395535953068489699282300217880730746837243662443788768606278181273181685416177861298772755072022463925418586677565783579097239748893723435966080929985040072462617406486001727126760377022269801774826418661591310682142951296754350906639466144574177213549555432750258164992223838509121550501229301956180693070021850833816644707770517681441671142377886352349960277249761421779247929918602846688021084312375970842911177127910595610829205842021794640912955001703408070925018949706936995894129099116718888556255047770674537390569705417076348743685045965745039510777596069948500879778672325557568907776106542046158283093954917631369462963938587100303174798415328023859957892310387978758196143607504191284262178874274955269285396815687430229191168610845937321996766689870223050660904621808531012888482830661644899898445692611992424468841116341396279004820807860128753821210172743480213618881119196574488210006388449730312653434767475348732741984517093908248687498871501359102100913639746281908831217749315475715655507574672476352762415974117198547353636626178445447252196627673045802926530496156040184935504942124936734020274652039564628126457294509027278749402113611032186906422090173640568821634403561397272547670157015751277837354195413609407264490937441543665740140788024128776974079056024454728690263156963292570937571901964963382671066674912903201673907368822832361812915441622529105222858699739865042138469843257737480430714329269982633573939364871819648535230953698682704310987278211850186316917228333564240761810218846999034485486504641108113651522690096206205505939532767235782528931133364152215513291723123513982977561565495555080217044036713952044373266537762469743072686115708334220323655018831048227817512890310330511611200014026584476088415146091419108035438691216054208390243259842873336634190913699323942896466613473950594779927742470062539550440342114600833810350729583958608985049345451906118503242255952042946926776534206309807118141276846600184874131834281088492428564922072764631527968982448050743462046015774706912955198955405195723048886398980423068681596787134790880186171847152243029342466893355816145959015824784044257266750198023864327483351795846675974307784102382492209586778800490646376795947687481979180305886006693055604885119330349519738366198096644183183743648188316715337146695953122675521407692242497696190751920629455776316149682158606224581717255143216720212308963228029071558664163440666861044607394031834587125896578172466419018032127659798712178634802493509468095692257244556678605656673071679119920769347084968056626234049579709157943623617011730864636672893436807602272170241552450506513454204104753244237945568796961447870954829744278845017156264378579913667230811031808441340295444470813993664495910526255129273328455040495773374185324662222721681403328037172172027728211372032447177125797158502285758083270236470934868384270877946002381497655246900549038022529497307981161458403153477784299562276200968450945352919618972879971888757270704732552591889987153354512103198090457056330910547758829112915786610692142768034816689960217505885690751872707352989495987680539027374309113715103791140143932801356054233758655171882862620392816401840715516901687703796197706081101178345144748422086637193609424689055601396238355826285522941214337524656874557345906833418306160420992655929320738517465679885737095861643828708181306498439832429815761846089792978846945006895240685295021682680356179654468772082647100466934982534165148549470745330295662286223780088721659148679796139283215178823347206026323644159703900750207092168724516198120538828139892789852279059671165625712114968650766277602097968663007909158127630002492261384890145999273426684251508368895158873670708396653167180809271233800768306591835167817071896236939225674853520480039645864434367382052902071619917855017480770834861176969723775736458556749214136787517575600654347580949487216323758904971533793418397150168563221530914932086215477016390354239283026314535428343226184221829855883084180083289679081437333706687092939982669509575960068843066307979990314452994803790877081186726843854206745790610586231976416275466683363233532982560132116962936855327751820485754798048028450563728736766603446366206991955202597073799058161942306252257353425321244947151495761670088545781468253402358066128634448833961927775991556184993389534282126272418165208176752558334228658007401751874993235280213178083503274550611517820839853342699470405878614753086567362802641768688297361496067819809540363650667746552773714699016407330114663222662761765027277721465756675057552458647669550023219975761194443797036552292413775514637879442303010426241724550953068141058108084864729822881234755029278824563870915692320169580383477561903390861472436761412222779888479323907820881752554083340443744055525149973428077845858292201379058743214523960547572098596392562218882024169461314994551460787141019295787172276747542033586304606563104396502238490537181523212523191646701385995282258703185796026231046183652093907488027502734808320757277895845929078499773015914884094964493634318656992058628244219101665680178013253085336865223176546653979288102620843255104649572358835369706635810411238180940772729299395154364048582515672627604435984116168209872709463779478925951436356236824705492387161499378607379132556242696621726458470173271165553885547303867862183293339603494667129908084185036242359856247388978407833035002758623737361278243272927118243370522967618834625780747740991477409652969547097458209594138121347074366370905206096107136263518402798088350683380014521804545156751099791078869745857082903360560690689832286390383830953805097485236911248258234826205118192886534488334612380938347491651887511563550635437486077743311444655442965675043127534410724783012818451334224655285023138540854658851108959110678474292087710863895131785624670457480799939848944312294627355869731913014164017058786921132440035332134929031328715317498462076073488570231058042531460304787645792361725151370304305709497071809295458635562095066907581244318290735286871433093993275362210270683119094023972578141160891749921417219489999183085361955386819599127853780156812219513596692336771946363191606965235379588750726980870840355984239437160973429015628680288393149237157518252512838327464648839968123116092349329291308907482684298352423976529305279310890456061014424256549535790889617171144043064882692260828296499259325965628419089091469219983437810577161190607375057841789173231058960364888072735405310768053575696926611745558474495447873959079887970940586412116240672412782878481266299815513518860732208151044508364794646082336506299378229873331227178880110149342903350786282128423856752194247132176527913056497245178668371044814880997164684049262705335663240368521212542194569530069312406761038406917408234334814305348873823421012349463061981307787393086266002992805253558149327560616485073178488527451230927962705637498098228196158083429056698629715984024329611093655669174408135439819558040072441870662286488538801362318923194309579300248082943931848404856341260643185873006627094003394800605972782185579823384603477693055454101612258501891187445405713013761393271102586439331038927175243302042924626294159128090363084901106991125195453950921912897667700986726022514889918907376119841265906588396982520675104128891250457338358466029659700425449201891102202040556644347948833802673832506800197127588819037992379115535547241785632503909022131086976362125456637512106984066438399388968423306576495934471959117261996697008598717031333635482825297675409860384292662086067061631134555256349260885930348105068022916839495176327374017324896981893306030449905908521439284670367318276430666601763144357646942448357778958280824344544115512509515441048512430190100725651565269115156180819163874283768272982414317766725538453664650096986708238596297946717916478277414875665075631871703787894326738773634430414129206154774452614770476073319539045023981865150784765535265129804584181603301571538109566852642422668591543103442263987153845080355922345065111375312331157650612988722153468550300005225790389702314805805603500634453317736768172703335546641390305771404425622688183333278740885692918921143700828585056099526298034062534031902670827689465297825214257682188847093963104387149332409877629906887584809989489087104728597662255306929852945151482912987366064605880542039436610439682648560653634002236605731356083335446391740861540077641425599206529011256948384612893869261266622694417761037033135291808020700161731422912306771272328686193963459099633670474642540904559595923707934078757422147939408146144590657018841355607285657768682234426010333127173750439075625894570350762914856688101661053882243883850742848841556477330488188860161731667228600655815665552703785143933626226579839744534864174747245344966421772594693116927206734620946780628600493696738662045755570845068176714865832683797509273806003497761168024979014557335801607420958166111863787875912860339064097270218878222160219068112918359926717646702565420137548457292241031107859313641498224725569692295717736913406076800887590123981666160808200654031918543705028898840969381681835119774570972370182301350712564607165081598962685148240194203710349506063109615812462302356240036665384492503116839379950544622083219946795514081495697389020023343855379551801467135808492410299044265783693805178724125290572221350309974319926216748126898010741695569362697705376202681897885995331572940361981695308284005711426222973384155834603413595032274761360887568376013831917246859118107826886849068353693248024219968763646477129879780546923038017880557602300733341829036835015522535948240132208742633046250093440245309736991085007638373869427678953827757251639003382989542572584361712166503086743804195118796820799102495786145535471641342807904379074024017633097827617883036680311049086765336693998670829781060726383793473046914381895017060480134682052630809085626117489726019176288305792950233397788469977379699229793245150225944107880596194264522863557967324574697167175705317779695155226583543612774887845387577361621173997898024180452239806348953323807156046063547122954521962832594937657280490845871030281791677065553395979784836524637676652129077535494560721435630312564099971022706619455231411730661071877872195757410958068464591647089225608022344372392937723567457928364284574962805401582147643135901928754952292993015675959780934889533200532841367764332349190128102135982498965623136808678775657769959046020466233437055504011506271236975649670950994581688046713809127438213619674068152307980020773973855466874744968048039187353511697993569575541534612312701950977797529603279431451599211368944898099570495848437505196434343795902579130584783393211960813489964598673718022562267023332898767104203083706543271221452869735888502399906580324929988180770464389194891328561657777586050020325362631035557564062431628630008372387911184554285852586505083476628597193482497778377485271357123190146589118367475626570420268068254337556309214147841820056565944369837961782740981156808948583081960473895416008260310909490951478485967237477659644994017137560340719032525111063570801680117897438656832073127780942502908245723340308660126176565630864161406095419487420841301910379965025814984531068345639424880444952035054881021454008485492137232132751785108519431262869509697228735959895122891269668662948135755822982103404298168348921719826923727902968554971855865320120324728743004412569930636183072935847412717729775401610697921442023384774015802717145683759716974567676528612057386083008587225241244754811805796579311270278593946898716103444374566304249495031892975019651853227044952250868382895636926500482181949205114448211541517906930911402083631161612663836628173875493242116173722811486957292204781044813304773572057729483259788246073878213021604383404364679999035515687542341883620778088520387138749234994200327980840468772314841980264489600392697811609103218250010553332799136003365173020090712552910941634625046498333799528196726086044159904298557729506443241141234988810780029220494597623796211535998142621138575494695120993684356404902463321799752628174083514174335095891914207987055295781537272312470563491337326413609101003467975194487462087542338506498535993984900662124841832518179985983327652769668510961286385626778887535083790462080021946588129202582538615197339871163420713079240026908828872745319146442429329786064891114291868231586112559482556433229679452671587948759947835898373356193040411874900299602070275418279352455449244495458469274533936341268525649190096946891651182478934797962056856843339077426028822092104264112036458574552616274702288263674660093017173373857399639331604277706896711263084467375082771451367379259906394229675013607416355325605103426969458753222812826907179809693498149967230160512379716114695783506306422123779654619605076191325511735489305429965580074455592287703835970003085448732777990421948634028789176252951068370263849809218457979380952486219584618279536486374367388431275115647402169931430591802119104605381915516017956004024537910537960502030878491761721499412891969743230130531162959258895556118158119928190413780545015978810945207007231148546840557361503521184971792190042448656829520211324970480690050421693095583186770243678080099142604664494856090082039644490774576001405033182044496101720281117008145110087899947382379485632069696372591261252860219185959027259437955133152738869457840109041199514169210886184611708862944183174418784278101025132927394400559213781400397363534673310250367064037350613283309566448888753559154771903131383105908481134080024333492434187085571605653515934939296589074965122444671909469985218664695855876189793609826878113887200129815336542267722067857010959088623352821601169227670768306505414116625940039360065863135665674878043023628964579631646715793943285682023197257963254467260394247401621238060532851740817869691266713179429784438991094820999257811764156726660614810738579799919396993144343347612627007498989744905739294916042814392998341611594250866444538963890499904182554909469634826823807998361012182817725531665513948130480932663943263412498141257300849684966683908507231736466495305146176059564473991999013184095712216137543049517193120343246345484118188142721594319181320752322188685453919486840124492545939343661317716976493875128387513774600618351885904920917458141504450843931029521619067142880166558147650054410024422682896778727629231877926327408627705174444963388049962452955415528565251119912046952951434437708591880370938168144987968913896464667149410284238711075161676932109620338047655351635269545442861523958635145686020608864555905774223388486353889350513471110442996106693039547274989202879432609535312129010300795497905933328939938875972947978470873890910577992390067412573246857983380387663619597003670828487401455707875275720509492569128436220585625128179731465416329234823079807447534310790810335992994654769737175381652026750959717304236538395313262900572399998171003158554551586193527454997825215383430383314735611343274192308087924063995973144677861947383156833477194677596322564814401062714316366438415079676968252515205722663494944230462507700774122116381225542109930459013225961360008438407111726024975883689523978813274608741027272979527122535338477126542287965157214228852223359598470071637748121393065003182083768075555261698862595507994381375692201870303381025041124080948670819042613369473581298444240485246233732993970015696324689434059598847137158987089540455066091541180384702954664453731195966292659259218174117540637684755107357573182795817577429006968166234654292044478117960526664775063501244946351379844622128798405762699807413081460450116996515341913125660284363272333896163346809646398121922821250494385429273686564872356195818967997308731309246704554540823667346386125944565364976656423436590409023848763690100285607912109228965330704836288662730588439207571557709171280978642306396090273604322975597630888655774277363491153041265409587545669215324438131301165441111738042949662425843238679780556380909280430683910188120880009137036370263275153065344632190270589745601901896955841572062131640222062631978520396481055367559683715210149577581173509975899828326290963974717226334806561732318892542217348137337860043025725657854809840975974670917054519557305065986473666681202089015257766510902952107446323705103106478277127463914709532306585674786551642761949132206835222196952596069891908455579569126729854615717133883998789095423408652746970263933557586187097860958008300953808101111689533099274572351229737947367839426772719907752180626700625465464676437554463722360311272968244147457581181025342899372124308939165389338416014795267811740622363371795927570067043002331290723187843508696921449346158925707964229178050438764485302083053951576345771507220841110933420613583587088531494672290011928581274002352219468351729063781044841072717075867898569348132235304986795276611116820236705251347990651301233443861230595113066640100616287737310734973180899434752695538402934843923058931164680684181594198212572179520322263133546097546578314016093883549468653425415473258731488905517704406260092702314400384326322036211017143347341766290777502166103421750341471877899657356119315916491367669529218643770663697699425345755895716117904467664423670179760409176720213448986869554133357244523142803107512111964653011723598140472657981772990358516507464549005335257285088091881409595768420921446437757711170888936463482861363926734364789857952240718564259965050284074339821437880260862841989141536826577447536469600065700840113443630725371859901570629031455232789154875190186299011891118294127759268052164145438615404670692162837707781299366513513503229063058827592777236854546255647676512986280833010735349573167033109446133228057930756562890362090541502006840953354578936873459258063127900341754884059562966902931553427498663186848470487340825841842982832245123943653175101782688893295781955411379970331559590649598477909222149236943242152456944050495367927619813677213745573077650541971668388170214413982850749538052444988881387187986698832449995971182418660155137619630184774875641501588972741168798340325609043936724499918604567628693329368929913655773703810588749538449523491711259674975463037324287026633404925494150244525620340469206569455958175864355875150113900603499827983754062597699311111086904451324265417878406120019301776642301094962801345997324860372040437454309801337339269074050136439985971633421489023694951577555328023743037172154373280611452832846710958563617974179458654511731861813900754474717787910810418867991971177262902978567684287610896919358210112600103658615067794362686537793205378211280534924020986789848626039326156248618881383645127378305406628822714118131839639024509735653543355467724649744425419895226558555011905415793890461126912668319882308953217879091299189391561877568860454256359960673378892851713798346487889536881692970376280635168274853248385734185547483096472381722480638034053804766053632487662378360773046375651686504866265364685013811174531104733242840560120398672080440432276600018454512966030133346906285375725267430318491492572703187504777490358655394219366860577613111635146683760828127366347287874087078353475507826712771120767929150878123300486836993745176232185045539559526451915683031195099983522634968687316930440507938151738080751867095944237650908729457898408716559968291730080996461698656208881209497368910339526101732855912778572857805313078141506377552534977644498033667057501420902530582055447696263136120850914000857211926174856778950281473612051624493515783003938198624446075540495268692020039820855181311902324106908098318414755639559963185810594469557211677863785601601677565004689838692425723043525314555513511414503202614529194065441005887524957141109082643865100301532844592450088333736837521818328612965839090178404740191823990022224019392549787348196484895617799658187679553642889152092210734449532860212294219343970429522439397947055320475790625247413049013910909771333088256609383013685584575611892619422660957177409550119468317453984990819810996720799483615364918169333757303113761662908588714251463203480627297133266132983442301751426629025780037125242430438654122185108155967166869796368847981643677661029596413392973089307315579547458043938421557783100653353636067677596681944560773877607318156964817905745031914938912366654209350003705582198812130286332302615997566037060079612253911083597113944398533158008589405131540238069249593459837001374342271227287083148445650590854517218744743029568353880940330947198053061234455360742225347357545128706359337699314117167705550196815583861029187959544716709663421319794975139343413174825681151594928842061926821414000381608517232356204061587100458484739826799160916743472030460838583265311082675825071707659959202505494384401969057796101878976504746534918745948908401414731454465643518934820016267472136426592402719516759315129903043966078261354672066390891929858392479384749895471185607225324238987535268981567754181000843737005835211463728411597210957632273941940714586308330761421361114833042603695506207471987249363518167202879011348804647081298182733554857931102526815379658101464415899424878291168904412120957298796572622448515827572298155557411518114753102449412024576602568804587621649394134625655627414621676993567494710982181893492013788312667425662521269609679769529941447299116576097277726355728691037234358812789484941158765295868609318605162240891628942006147115174929739221630501865124928375405606410947284355011386615634729784588965802686393913828881208036590867875767827454612148467669113367007331614063019306315777638937952396989450974428602999444450243968871522083086056918073404091936666373042075172397717488780590626278233533376664961557854540032748705099092853219849137353971463390508133392945750747606092935360259465699187897634873685058506711681283638841900185663172186100787540825200913350222312756221073257261632895535433019696182183600681943409535878112254199152061788502042313488657277924012334086893645430037066479031687950586085018867181065062385641680306370540879440565264667494545227385689822163439105701335641321467126429092705788517037988611608628943728752445300895950973000237751264053182732528049059631721946894986191078165351938680993824236639688368199526783018582447027800694963500492128572338099408784123210925833094411607407031938845260331455016191138839157064246064058411702497113641020664357823616098218766432010427277768713914474083626630744299855612686798114730422552546126138942666002336705689707185083550766434033405929503579552431429309256830072398632796153400408639150659319783250576847287044730478100258577098430655614181483957622547836075451798821350401763290959010588226158102149896403788575090773232162140687797522858642768133646346078898165699407433521222568130063242306040492570071484895577225741934788971323009714897392449673101417386228293767527212582060415249078212583669052000528268014144259721860868863954972947782929197146226660465026138720364677263941153476166481436349787404000299128532593538300078537888156500578304371757125286854092967610613738208369482247999983110156794031152631083219695071153394729390010279883291522608082820275175126131838835993452452864894788362039298568960051854300203932065087392319971191851963838095762058044616622279393177231574151245215477736108811576855845478165862171042506496972842474451852109661716634091568763910364968618757296160107559423156092561807428598081841028605088457045079924366840276259831261681809447304432092328709330524912764638510613054889211444399160201193033486939464633681523699874029847324597389574521799574344115469148517521677076856240961340499953898122389485108731877214134914831221108013765243142265465925938913404435254562418154036754945901027447880478162500534467266448241356899032564793060632189050174739885676369784557565255980911031792070937838460267803517885436205223859461117433790408965017077216283195830508804178284152235250371780319893216910050857203675795124567126735732490873334807472292826785345691381616961109388049786554323239427978833214940341679370325852859015378613480846891549691441171961327921468682977763561727633230215301780065439693800323472295470861901261759721676144483021190654266607160163037449987605986034870703491959960260321872186025623106786663361857101307195600004032668905549860783385525283077696682763764381543797637470078744525313492285895111227766706785191055686838385658539958294213793391807766886072330346205576533008335351276326346271642574365748913373093814856533579085211783913787792153560378234060252111431318135397255485342442782997070606423245057528536179943151210471950804279101703337472843411967439852172592914412785685695507717865872132730432149544743911843974577950693539960268514934559444291263784540868131928917876600546869580112231424927066422311750683342014954214739059227776179656601052179507395025473961310697368426573227050967114695011426591012257755220512310471873047796975698470504512759364140701419497163417659951572213398857469098956633666664610719762293796307052335232570588338830192270016045072300610632543638314680897275729695065273628500218438091458049461767287056014324810672282265122496853091171971487231629788662843113925794575730841857752986955702928080348860508671462766103298656139622416498046397628289806528660748309541741893961874517231769019187246271270048787777459282175068140588754172215617119431364622626747870397785301899228864538623695476436834686023248101960130332533505271514860527569292411892451114224943395821555402111685024573170940384052381141574520577606496007070828139104802300436723859444995355516436736982561709017236150677969489501130019235434731071993285396398897552270572350016366605293635129036334577944215681688883920656287576062270479058412001536892253021769274862136279776329156083640220124126392118766504998855129132334795700899534623735310959224815207776092775629319152005460929243695665109641608048015091082364977312264626841900080026908985232809033082947191147236511485400062307124512764346240926877043435324094694226933758384714466131191278907696342375453561619483652754127260166588310470522310891830361441211119065631747217886103476137256981233683666164058561534787524545590326970712038451506707246309797765573180470358576272808789941351810916388740405173943538033671093243623204494534505814212244668836675498968044116200181185923550455162422403685119079427559368892921879724564611486224077366997496903177727477521218824718240109166945611359211034184493411617231364327426657096911026858407434691402899789062289314859317079201439743217473084624347263773278985491420660708607663362909084946726559690912519262230681505705037593878960522059502792929592084210618836848132511777038901775851368017989297519033893433657715931247309051359842953846066897071979767977336344357229297313792322548284114574846838928712451523634278364798287267403166331979028233287698625192880033061317253536664531186652009206732334010493611543176636647922199127361494817891749746320708577217730858065981286680457178220527444190962191061886778249886248654545145308455095187857182923079942320543747950225188720930948888631814580914542309957282382069623169374425515060466178121394998376512788359356887242872719630237463794198125841452854568645998044938826819746097284388027960127615804580454547285282763293028941643150029580940354464371234274223236064482239407227357180032589940252395171996755161716322965267101989750279405063198534321063883779504409602600707828323058160398944572861579197010786077041505912520943755935073259477390710903198073723680162058051424618352063457013883058384767692428933368358138408478522376988009628041638042264848308127049643468443435017596660176855214937485319232084987746644360210810362351907107158732765266783648796089028783788484527087783584941377656276036036328326572971504161003017710059451008640852433098459462115701613233927339105320865588150644408676555207645287731484549246272508729570526702148358172039799108235565451555627599560633680355200425501088787736321495427753823278481544494621982162168089481419305900477432927620025299364801082617067584727248733688625926697171329668249734602397473474950656823694433741325732663705474275006835817708053313694152259967937027527999467021866111919886393424108550136720817624646713954697240148433253647253920031177710413828716452642562473391737435351037091675564791996974512757537798417543394137977592990239737385859139926391497182385797121123638473173212416966766100737318297235955732417507748653726085875059694266910011797614847332067791557712511135371152294828199360892178529943219797395393348250261484904058451461864381572676872330924768938355114920425851507601368118500295954569219906530713958258603392647844222346218113782326501230370273084160363420449704412650412546111675554947917803902180702349393111996501654435934995290136002592767233808662378961871580965922059440106154394702926663796754169217809528712348123858200659844577146547726227334220483953143937914290291512528421704741285736313279905234835569727994755506039783833328956215127800022658042144649787675690217861584385216071365408076077005054833896414544412313088621421202501388264564367530763430257110758983683590878681105565947425356089197912877089693910527613717956624617708782865144516793128222075550551756518216931502005428157131825792546083524291025322477591375980804142645875864572466833674272534894015301847704735328278646123638591667229706190498775457647710066786737444205027969274541449510610184831974644615850826846142179054109754426610605066666071432144742289140427592299684443064230823468761979357532144064212779179888846859647117794734985999924679176154287684304423840932162483575192491714287467132207554368555592502069753981458413491136010055262502915585088952911828691942743523606571514310204361842920136989997118868891642472793604766228745541904496382474646827878152803534531463771647620031316162636396759783013707193892211922534967467051513059903374747559479333795050707970846562728383502252520325301444802310447956280902577422758010167887368950857684195907555141878175382679845809516276749037065513706177621977114891459979920011340818894386177874856051283083093962934793823006717336543758631359049502853915911754605884948709890938851676850826819964186742184450187382095241580444168850754105579553459029215328895627885984972055607064137535370967542040316074044360257586516197318066537999401527912361920913493137718814003463299496254012999461212517039810329571124339007050989658112330888157234148939028103309415690846334461821144400937365907271241492009001696029854767404141329585544767957712663994059410761814574073623875804327154544949853181185748162298495366739440181271642995305120069932177549420233878945632165104116688269984343366368273985766028009991694925206792327435287523296105149895927911439162128583654946677025499615614241707417066604817381764639888728218383453707053034629928748319916046966656403049139111053560587162824807096947216305843691614617686977937870808778048265712371610637772783305163067014220535209983145787651054143195474793641267729403898324485798181548872241887704931795402859816820604975326015264812090248322995737230682021062520835782651993170602331070331907531048868805213681990398355541843359459277615621450006897116140579009771727507027390857914509335635518241851423373828447888174257788731388583146058183351616521765619067321851805236919569485808001145218228929338390678196427600942334170531622021476134228247606315701014572125768508595380299803825770462748550108756488009377689243381425657522879276204934203911440372609585393533881405991248643478108857307199703865107752987003608280465877233978158808817927452893965379474749460548688996847551228368699533613365725904977899519692768359133257660363516234260124148980012799023053984538073860593422886786284959293800730201482434310933356673936926928934552790742408890494818925314705314010505528437131472054104522380128432994511264036908870644803421023346890693519856127815899344624422782035803933657137957521308046628701275715692132171098308131934532304875241183720815611826417834877177644497324253218167535159824830800785171984319704944148219585611333755840041418340684509363765560967203112714709478953501967522893641020391285819328841367469367373225181981729592645131639991747787152156771693889169284029368168599746224517079057026176600435878413657309584359704293497819753931581960004481644883053421897953312729226759744857748169215115950399187098884098774868874783607676124461761610954607916376932996565197060837164003038496991937836701202411397448537813437832711985452857020850223963893340861402152180078879060607698852329216850068548491580674592578704955956134900041262101540773580425033628538372915135037167192060253253140764522333974317034321115477075430539046933398547403883166555483669834692234566809091300362609926266081785946825557044438804141560487056347299920506841867932790869672568173228188577940177244936984045873182466937293896480185634393427495805620555138334466916822958627989048547804586946864961755883534946380781824260163886448651463494659728448439778650866962578604454740121713144361830252850795476709637680807029948363906738059632222570892338972984031573939207775836927723365106377351020318307354805724276546531573748168590541220562592662594860234589671054634147237949585527517778062814072240481267099729432982477015920164889706708573662315524913112088832921808400542034339646911104982645540796647698036922193923326833957908241393778545832036604752713423827181012589822863627350315244177308800785497406829641935457936094701124647576719056134311486993937464711170725167410729509471296307315375781228880433568096949170752131524676927356163135418397466209543096919914519036733464423411165499937561756200069227699888394410543003756470170488252518818229972840193022717919309781989619637815765179508385838058738711119052059727745515228172203153213901700530842270822717078961451368912153815012303933913653725267529981826159170379099955109376304400738954337274810249075241257141781323804485387597600262900903501915738448880215394990129341484185793604460091603956655458521926336821770779382683680113940100660965858063230901770466755928566081623799254539757791124158152942668963790986160219692936789842319489296746770951086890019383763977231504649724714378253847403867186772706345211084754337646135477154023979520671646968537087121379880875001138456423391750517044549981944689091029134366317041927776876982921517332915678899016672917704856029268768655904067526134884790543327721926268018293624410187980898051458261535334395556186747133849516318542513256324389819001495196486259981400895324378963081512007767416653793671093255185994684921472337202118806138842707435699134551582202906800716717831485664601723574449922279892809230471670689278746684124320325972874425103112070120692365652156301209540236243837360911272572253126559656576791468701062468718329738236372412284280383440689072491727790655451050522485089160678048600060961060748521376600845971234171792225668509189884299113007997255857601920159916515806249766635106742495187009737916663976807352726240712219127216889790455420547591263979140677613645775535138597368711999436789482781391748823720254482176335543894020871846940635760453847584283056240786598099867532017005731396029717473648052914837229666482181815809837777351425686856317140489022104612157093822279062813967846748030177239694765135903691157442266987270668411547914974392897895340735834123558014363785807281307044432853521048416045790632871177387727163692162910254815864227527425983977001722081322575747311756347639804737879876442909866570320189057236674380023413890665814295929022232744156343968587846919722624035831843205826558868169978668411639245212340608730123948280584566545662938010017810421556873104970045983682771362910777410116389076110001990233857467361082412642349963906195974541486540708377657278132768969018145474876451218928666334861674038045075787066291158983072756443431245551250971519217415746002780064519326276275528232067050943669549552500589375411172549062635309265557727168022830001973875422930583392775516586460320387156432977192928033085102254177071606574890124458757968952029248515898204624861162974199377067696998411174478990124237790994981616998912068039142514326003836985039057030552580044374279927177768593129887733671405917842544348729482587164075301061419993534736483722729242962715295178522447050200212780709425570141264075337754996873144825453665897777279653553721938586049846953422774883689685162702322247721032747742383226301329510064550223543701928603729183045436305090460294527969691266140719167252634833983130661842411387333683307089078859465342234583237333310937824686342582196444751507710321178033926279461676455699746541514744725250776353521234459461870530640212885093506244859931434814972791609003181059490489800832040554529892328319075700659038287158169210229379028930463206381896771500718808406250517522494907142368658035043506848023740436221484992924905082989875095850469962587559993905016587185397424913136632182577780833237892863745091309038043086658531650495728455822736665932456671599609086153460343170128587527985672729037515393043268709262263755987709477420290359581815720198968182309188700369931296443609607393421315554488672523598295069111025056890140035448538457274071608045129100400227356661594992842576389749540300558975479535515712481804637966436211889531024017773728098249865952979708177297977193300865324708959598530183401675884528304102830551296382871454502937749282475816271359151427201485960740660372194853073385195161365730857395316312022724467972535289204953361411680367699027185994331764834925873763647253464413987582183560274711654727966199178793970640311762587907854876526785171523734843617527830192771835175892912841943286818350926121728204543986231330619198207063155513268976165082247755788028600454181665132923204932030955311416677734104256425022130385376722686434875981376233285382490224543514029492709179101376479664086539490135016541979146901333760130714012961705484527961438274357625530955461353035935327529567348307409247624447529073545411749268589815174132996237321379183748373253823837595987489548663285102656614989544121248909339670913354611811762775671460687428925337185438086326304405712914304352280894532414507595338339053289989786095242079080226665427480583466700774919320971156933048407362463156047712699445243795367922909360454506540224244249491725396280908149229709608756195753247526119214606699218131605861551001133864742866023373167575700557259024714306416014390907138422970573585917460064044499660182362409731885578743053444485509075708246023441190667925370106739563688057875195864817285807854388451446866469237821419054860010869546704382515909120584981961664295992252753239357303232173287528936685299748827297937866105988589154032830506632023409595403143922217265118357709715468423430097894391740098675468310326294420624944653376041139978367085812907276751141421599626914650896924798149060403026394626810064901283915452505237970250277486472585175874563758186762580767337444726468222287058858059922397960250854541760168849277361496323299404922429440420644651781269818786779093524175490454658517291509471225454146347581998382309751343987467985299730871452641591693893309088666987943514492927137872798288856329988611429757803141420254163706985112637987135553949708417511080634353466094000928943061019238960311150327576180766825830013441717784835428526863659944901441458365988181021322645456119094269088303785418590231041006318047915145960637236456661303114256607589852248462308156559514802525579296856237256663528392823722751947326338403025077470037588464887422475599099885535698514994779342651244906347340134428555942684684342683390219947308164887098766474465192723115485511644411041720600513725499894340229269793685254227405730895132544151997381759945458604263165092064381986924537464478045944106282051969747463034263348409490897601017085961176687272686235009568055112171577402926106085155911359744897847450595107055082067070472966636270202206534981269735140799872408454490034657513182223455543579602146829342066553441540010568556549355471276955634609854612897666242045155290266902985617441951313035921099369111794081058116046659139747310916581450649309094067775587179189979844854515259125398065484139914233377787939266245237847925253547704770500792605453163249268289337526969320367538543140338335350825617381265193724391821655834661309917938574642619855885120474237187515684969499490348432871958333747663283535946679330003082326863605994200169229509934737868316078964115425049349284512402426195216643301535357611434391856610500244882538090236618214983119025504608965174606889918469704154144877023067788602500188013568512822351751021049264455041753400333120751770219730526546427568236854361078147119772857092867704121962911847351259029485644709360091217061653013645164501441094040851042640290818467346594335716387522951570263126472420960706501519316714572484724987148306497515207318130541195809103928618997948097546174809225128238402033788861166419128240549556975370045316064934109454209544224810448210793927680706222581031540613980003586509702900831342075265345471213140099741555830583801747417940311885195292372973226522726145508682858854094885979248150976287539242844503232563209222699453202385527791533131540986021332905971764819667009251485489553870204407251534743720440920643263395790731604587998533226109672832669270653387713926036172127891180189952603026514310706432130982504458348929036886961680529774482960706757324474814618468708696582661605522362874979442698597514573248277125925966892838172815559280941935076769039436752684105708778476967672281362740445607872355621651700325326302300981315400366046747043729287379381628503989752961207414211720279547952277659171577189635583997877614604684100727024327608052763192858556064164830799080200848988145588254289725756135932520692529788876339438816538857420838315206308291867444076870676883006663712363443760180395235208431977042594932706907053022273916639110243562836254649794654994054373539152572169325798413222135702337400601672884732078617243510456654068945144381643007644567533059044346778050745057903306622838915061192689805291257220285769955535643984296980325043413131501432400860552502925090481778884367711536432610569322417739886556460876198537496284130225063663906321074375583994522831242635292948087765067885403003234675100954803900215972815893271839655576831499776251823014207759933243619735723262595483955794241844940901991241922145590010317344540171081763396364020433842029488425660692934103086966071063664512020881571310271081438393659797341501301984904805787445587503762090003736811846170595902642079816804429392054841818823259015909763573788612478617144324685530818921414588970147563104792056049605174366892017889971569605266298290279538848585480703739571059794195098896585373444460489517946586406027020706782556795986371027902709526692167870211555679075739355758457239229036250650058982992564955369869866856280750582163906734902852416039765692298916248073088480411827563466160091341295907862140060146557374830586690230223499219191723458759599443243675687735328964056476114481026966083807105713918247919679448161843871258934777241676449989216629411868258522782722982356511804735758323844767445011472334101793183025030102200218081924673209773620735313667403663385923863562734248255620142269852820293793379018355424064594235883917373296512883544585704710724754367083070770080261845862273075869369956701928354655589648505581331239290815581929275058223367268395125297520781703986807502162982433415904497678659400352624962217045833999393355732088635518048718059073721796102133869398990954512349328260116508695006605876694391983980695382467712898657505752411332621259635630096939997017566524081145947905403741630380690837638295742919869849714695772308165364309486451751137186616695726724403926754685915009873346315795172013597165290979390571994108088848613883556492381305717308910109430441561998735472266335252042319209402641970658112720040562184590519934813142650628461173079090036845092631759955744474667011811778106834956870233580546220113139736373935523323734695325716325437024814719298890915461347379750423635744826025741176215799255588501580124694737475253731121380773092610890312483226231709647500898540260189577761529886625431729097532310636157109282510195259326013912450191982493161005555590594984685083364354579164503695001996093661304657955393644243595216846284259400510316163561941520962136426651119730414123889076954201289732627362457854771689367576099025697534830214293051105231299554704392991723742206249483515322285882526048438876765306127285392747702381817694964856031327320565164840306527047793907113026102918398980412369834332064663960935687252431416047385467696674837092210920362889432300916324910726927913841246062230071432830087833497727234258449833926618580729227051043543121068297871716281390795495106731997569911583245571715857218898398574252308456803223583808552597569847806202664642900099162879001764905966219173825232882423772521606968522746816671593870553991792584496888042683777813753326327662272061203847991702785940461331597023924406920466896674648367047433523699396816568758807600602581496568836353188728898342266523536843369800244953854652738653368903901323066596643019637753256020548288420062532684593316941783243657352324254034934980258601065898729295622407401234524663089689734218450253826430762759240815495001948745784907501784451523464286904189949221634501709899391496969100934816835064316692099480754172581260971653610409144524239705290523398114371504461978849565179954279681892045439042036532854084083366296082018480577351235758219224345825172300797572644887655550971765380630850191486249700853144538695174753240820270230642605246875297189045535925834098662462385783113113490049174852332956976754284841567268754082669923767592514317714548832526657283895313572651512740235586137882972391916295272134428406607139229610815352505935475666008714857494773592618772511537155774322850887124610454220622120641134997043305082062073819130737387806855558494056497100611224170097208267710959170546797335485231389795699277638300667780720853381887840546361749423714674090771128780515946334599146127329810015228155731730468667023333316381398313077763212160002403264900271936088446239424152206250572373833667950188728529810113375928282864657500768936611704922243387239313976302158921372596976626647714619957970812745436859028738006464501548693111237720471149252138030875465790880204983287659684508827345180971165033066848909080325146730590112592788887308084278648669695936898231442467425762899184711271970190726126650097499817417342192082515297110818104460241755585154472527560290042403272240354233168950500606376517272333208383811847135483682903422112556368306459646495401205564053049969133168002934444841993099671580857499625019689312587221441576237138706427862123043511135681158240837778622286552806318118707684117777155647337876759079330653406890484508520942068680371334383671880964448914509313559278874022782344648252165351846569894178077925611070684474635988693947051419046323798938404311479333707103966055696765197570580714763256965227706310985719439390127876480068691043499498709143705862992710771530080668585304313480690891696931448270144366935191661132244945698916185210777438766017477508904580025290940605695875607405900595965619185066264103827092644391953861827900398127641625954558541982371240977325812458352586245452414171336928171781405578318413182019119737845458329175964791216343860862387533104256396295944030806646924002262202243120441552923590744805169695749494201762329346251410347368007955050344459270369194013379025744465415196967601883335095220193874822900005137965497119493260356822747253715321385936520265253789216620029210688562505021475331308286058341015060612395120630297582727449714171805967725040106051038337723586905034108678243871648485076573708564435789338481269515364365356160149653757605691183145911864091070166771572243458759505221181574913371770276886991798887530372716569134810455856958797069181580781376676006831327792883709655530252522639486623328806583772371163544588338078318993295863369295517597360222773184573702251326720761039825970183891749053744934673006637542256372967518684920275675953825643499405873240327483039499545438143512387650446638050533311652415220455371619375022015281882383264336075472831273895990790517563885112605225383598359406917038324050506044641311591893545386389189617830879578932338391733925860333432236503638200695292041030854849609396154840340454353465458751712841503037149462275512539971612730961624034206527762191296297040740557271509940887038032949253669022922752864948120971216786077349542688359261061092313632146401865494059646199993332768362321435542313169507877039048846015437731379300487866150999929053015730970892131503407685483226269024505914348036832918947773095461721593938017271779941754196715632692563500107260800039329144581890324844899816650111435842582903140609108668050799038563836032740998291730609030457960710446939724854181402136549645583677618170889458933721730266613746520857972325912411041960418735358038081261296699604410478599092691909505406271657081895186011166608058862999070468813901231513593729689536464598091061940214993197472216200612459076067358994797766160044184249017859738430274931348923344055133204833275023990742737279018489591965879081667398578342455845959864141823537100810842692339074226921563852128271313969989444297343563350141695565402436705973916767941955367411668954880482024118560458329778659582972953186363579844418780537069196224169998335013257055737134565055861623599331689013755374574585624157270615713260609793588266640141227951365672645178233991180856392590560695109077303486448371145690091714684953260841390590770606149159427577511575354164145793687040968196775291264886404498029191938582549501354670063069454085718922900204943906983174194909607753504578009632430339436909034955495770389942022089175896665546445531835519342109079755350877406591709037473947986924248776886543314488864497187472126345513023965053136979166719118996304165013453483851352845390239871082895716236016189050050997071892238231513397179423502958407384567779411270500662946830123667526823753078199616857848087639770229735742752930870490052238341740215096754644757008408831233615644822877183605152369778619809882970449116842639978930540316613595564705874986797898922966677602926448351257550497077770869905822913756900535916223448523836605529629271993451481030095025380849237444229725081221532992091510968656290190466682623616103100632530948864607294736603321961779434976521608746501991852246813640823994337143127849819722858544869412695621995703434403467289799508758712624033054346067326523591032860699459367285865693044933591961801999535571954599151892449560410112400747339602482230702905836816073172075073915164077532844990074707215174168024932913155580271580501790056848566613795491006107482235500987812614957139557332725631316761429929550272679446240111870805417119060364646986195599789243131386508999205746523254185065519240676351551665026658332340357662453199050325064711711977337129228570863881462143476244322263453611316583797712234532382494106790380356483661823474083087228897341942674078967359327854745022706374157261400950757203130907070290729601644996558438572073432671562262439240949396986017506635081335773100424187116449396311570389913782556079332974128741745772452579251753044980539653988334442105340509866039629409228219728294886153257597985035961026701944476045082759516573817203845714156136639650647614646813019717602142799139461790582246725179964711001132960891875058325255865919409089830783272306269854591874407254105153634449813072669907818721530616642565197491111989739331416555496308674671882035757796251136948122032775476857353831219923208338611873527520198540513539027956798265377413039863331005437694322871969687515062446681468355447610106441099381376512851492834594245543809844552449831873319265260250446182838938181440658223016369766667616575205292011346198221202254411829672109834175800084091660677358637053971500231615266018420258687822303463753305249378419818938815738578484421734616339141884460951318291636834050677644771640318888042926371429932466833885676272680237687226802538856644801617260058139942179747032933095451271175893042501436715922781490088858807993603437710327117397903289846859057629548833769976995645438475406287444201735159565259421193805092571745640698822045184846898500615530328685771581914899576759221188165777627041759871488758479125868067662935684295759302114987631259073313770260525247846921528569181228185549928007108960887381649023533343644621303041752876706185029498112256053134763131694348319632717190345348390393091902139103376633642637345315861934906677864395272368985096864687474760497905872963266295296433909420041217464410946005700462336774513203664583730958086782939608404897237907424484320123522798469365263224834396327265053870042956583887750745312898400872011373591468594438967223784971210348174065871105733450009165864428247933601536744975599911803958095216179440132468053810036581758554082471533612214276060477225432214361356637979083352764116268535407753810952136421194540511117184333227638361058713201582793761129130692941628368084394052474735856201031178810675097074180616150735275539898599644517965903653242134145900754350871595173103329244009880485243147218305999878407140457924882195817805601776363200678955050571231418090284704487013094772964026792562194958051003648316003719441475404744943375259729298996121628898043640572839040323411502359252383413815639946095314629940655645691869265821957679598785450342422912846017145905191420712823740791621509939345708599340970539145666902201099482503621169042797559614272317524299348091535898086860162828631414534857706873487929830987176990303389702365138697514963042540204386139708119568656754391031598625862146272897151706031144727895216993229421279113354055677963768314876292859998274323978715667779034516398530392954055007116257371555010559842688745916902344914835720965755083766992738658787116731322244486956693796751692135140828030544605858165074442792697761543782868072080811921995912087210756895991611228927399470724233816264109645853754571346081954983078812767193044902535116411092840318586310979651792025496437342849375258179468924956555380292443333408207264355490592687983427048353453920482078182251312863259111454437666975295796071612106086990560007574358361621986806543161231999342429693378122822286688221386367333522202884091121819474606909085567167327319292804802612616112002984706281646058232569151570420641711466912812749221387061714440386916715552740709068539688914333195758294427824771258434667272913004883674277480099767971648779970532605796928808721683661845616868934811575769120774215522181756626318404778134884844698117677661713920766467899708506870447960023261219480530034053444522862335333826896902818728080254174346052986499718260682280250265089671487958397648145773201540553574452537837778665208380530769842561164471679161874449269894652181201450128471101726385134380917255593168817299703172809956171263145360236723782239018401174007928701696871671482929185623114799336243120959659815591012622992671014542290971569523858116361673806727892596207312523508761012046236398524083113343182013625105974341812252785296942880454447167061050843919091787277025842494882419150226839813428588367524977145902719520140833384129371862934933863226037288398713430596374713278415976577813332662228422387182438925230182351893392972921129049317646316715104830318925968974456386793868688133229224196238218568204366017642212987729967125334507023649914681692911764159397557656923644786792233487074716192371466449935460066656365859242320730442343909586938645569024495847999302080860689961022382457421277698385853393269053478510955568275082010438577731590076335986386337991896060590236764710156791298744389354896757884043750524760135233389022871481731634841531947515091782384392988723435096978143193386903088091864297625878635992507306617418620993471358215818577015360276505936816981962717774438308266349110722360100052144602192519876509393497213038011608878297231235286920998634736320931893084266004198176101630909436560447639982819353848533048196709835395425397170888131959381357591527525884628356253377977373903479090905061031559933774486845173209794521675577699140122359876218250683841115087295859100203770773302400899397465521899386185408011142406620459212814505958014304873970330278382108510023801463991193896844257275042626011203264028409000142827144959740101753357323204194211346553332560351383699905892957893542236640900099238415445405580446942704240283917696959786090896780824687921514952313659956239180035815450967177022566545736003780991317480487755486984229319088323449682925443792725491789485166810493859211692435597170444868631471738653586116189226951032420129296109285873377096787078017601592661638694259796920513468655698500344142204143744013988059156614478357294743427933748298320214825327607644728039251749363957864728386910721990510781169161856088841209602591793145291513185757035803299318563906904384773669738655165351336526568698888631538829684460773317866885710022111027764196803176986875151822768553203717826034834469153539460497285572457353660897971660159320969246967694463967305293219593152981588679821742900669168447790554985601127452289665351763499570031842642512850642781593009336596044751704998508815223811645323341097632169885120260302372882584493834894792977514293977966126616093051035013088221591206250001833785181611470508950800481219790173851166058624192837624129504773070006201328265582832600560705168488780781016545890813471450412907336218410985429762178043763596270722823988901590123482619252780711122213178743006299139739945861580378176621228424670939090170571765528105901103427328702727526733876852972754619875996414347425526848523295458651045206657387460500008367852594383444363562322138158794906694354343376049086707315155934664326769953858533622125175076498301693971759110586765975376303563944853272323565892812698433333092356426568452459795876248724244635194186212753289333583557284221086476530119456449036469874268143088889989966249127006735973127691282752439331904519853725667526610203946977272480980825062594048232917246563484472280354033906200443346397449750467105125458009243527726708360531406277641912026347382240832060968362465691064958861379438557954850740889676163651964953804268364693474528897120689626925943997610043299231310182494426795894909566227615350902992214925884362440078253042004828912385713588849823201504843245953139043123332632819191541701694096015686796916408858526406986350066380951446783545468734980101536348871677687281230502422838005905290984771085593959226724793312212850690734652142868003663116878197286379983927354841869027875167682653754380980522652820703448390085290324048551033035834358787473189821736047916303623169513186553810362088429799981603553576728984447123981787831169675308415823906380086190311815578810320499411503563043414056935354281167407746969614666563521308913177104550274718962099826969545490996871476233057191231389767733915908511500056100832073437296322830986352983906749888215166894587071353811046808409789586907038959336743137830345063174713035282605590635224539478843378308999954220301584544914514699961925180830221715160495181289499228133429594830311135806151859458004807650248969819053928562383010165029352322597216295707655765454563895165555718700934683474774727497508780351450279541413909690814800050082168614127810067281711191201227848562368526938724539871818004426309977164786502808478850058101337950540240961173011504487680147834320952322000471027383876167690729570738561663149511730475770091213111732855764984785036494041554866765520783187194856959136174107263012079917776697540219749814708419970943939258336396747349010203191812877466412591558065582639658917365111058814796674915427916969499477834189717492646159977625735181573640229701826157342149159806792102639175466735713926343320464331503515033002234150410720939226916293958622218246478084387806141893938074629288501454916573840439901355695362284234546774907947207880140259070318106417667085046186460476178031862115699314604251380339741173668470690016654094050307657446517605676313867087275517086416797760850052895001574196606706618336521039359085195359419856597382138036427598867206542765163723794172683885395021622428149021039650369604201550551051053764504541154563764888570572040184796629425068031484111412339246708664780035753169730692267715685678388837066850281285983440649388589956692714698818152803950643983504681755883954634428423960018913878331134078869538111717175162144926082755604864733460005385932451931027581040311862064370489668689539083774958299334047321308763488516114199933205258785456208769010122238743644493742188391205451189085900089179689775601239315982215067764747254990795743803141556634390079185169903275345006749560673777675970648490019950883480787949847601751984918502530370881993217231739960902688890456641449564280910429620309706633394742879115644639070271941225287034285644781115393879629454689999984098778029888922363512683403055514052591645172575063980187404018885376660214285370602380258714646935794580794076455919414578029206839161790867764963683059505876472195286894998615316896408210055559609309665716946613511749090035264485838138180054515697438960394977388082481763275552522213882714954210030560518065017323788540038745562227388232145252819301041494900274879295582293093290451257322986716267404876862785850261091108390400216573275040036142671719580799656738673129708202541414743492984800091253041067964596051592317528896289311017701096154241473756848855149472255293521627694217392610779173880376885614246363228809543549363556084514976360953346006100056732356318315215843430854008250077739797898509687917109072170982959075901391347883524510166528502661456598195954673671526272185437996496174119643857776009011431703891867070951618055198380976113890595284724612382979915173991464764422983297569839084743041889538120239808445016635179206194280544222335477414812038903622942235286718957969396615170635784104035945807152638458043230275966161671809832531039154144325819568988727818144460358032206597347469734555864122947295911611238662723232766378156552211032710697970350464729528865794772417263210532727283250410753058995801245112625010616631281839080622328684642363107262756215160133451376195308922752498932256596231175355151144916955553563462230409673920464643876666384786616368733451779374776228974926366541844798285904194565840589456748575773883569212014736117981170136506152823622209611107815660390577821183128271786138728482772389664182084527124220133043699920820876514445326396483937136104757906180794718318754879092993722007923832420749452195209932340751733083989297469028695456991114608578257005194838252214804580869898823797286270130990509366884662847826343737386543922434239055889551492363068999468096435109795944474047944874028772441089347281452649025200976312076629347018873905730989030085087065001336110343171327033220588803200347781858331264624902399447024101035979300560064508944878486999393481721478296569841204773561476735654447014296422543555415354178376117905280272355517102981470696135051343365307862010435013612229076131961333424091847841276779047415937002370901864774774321829993923150125264269419222064428894724109975664500119074010596728985714040086786880896348385974964410194215810916348453208257189842197993444514185256900733429267110176304694191351815041120564869962520460193837087130756745794992274902563803383676247670851191659923828027164984818138537845438408039370525202825880149960152622330377369209713885904612900484947727011772394273225381542388085981625680538477283240599728591376685592460779758983892925345350292941278605334395474413592675335851320561124022528565106122449808622605023698951814703894391450340500419942846110159849247207434641770070853385780488843066339914731584742868219539111604459169667432488369244951251546858456375924079237583487560738347725521644381507077966294400696041515629069352663780996895327493933623476565070348779046923218087990026971508651135974889003584610326494018368369104089716971436138096787224502312935392091266221124681950576112858573556733021896751154836094136398889090725058003020657718744959350105211202398002610352860778473967292849425473953618815441582912500709657965493446856115245625010732514014537511327286219469525169346406513148951968771241322584692874493513353039209161399362896748502506014230549447273872959124058470600402955348258897983818462150866459201820904144190204640969648583881549365155358816540550037280335089147862105129511323829998928371553497580556032272723069660140434323708120731120347955219810966497942748663746206529110633802697608260480424630563528493164433625950991824125585127181513337929003100597835386034253154648123369033754121300362109703954803876977179415709226428314163654474154872560579081033762667483743824479707075435800951373560556493110667763720098260640372912557734168218668262324553717956412665545981056436539759254501580198989899235586747463394314051097351565043595464445023255639907114776038936618257422431753708203475473120453950086033183850724041539858192512662209426523168013322530913737357539189255288267636238580096396889667697631335859305316324993711498389869865161517770324224969695188540689133982073599457920244782503894540591068346479408052068372560614590421433965057787288218295239685512936934678838209332265994241922543356918870636172397338203114367705978158080458238881187540883154390862919782736324752949782803497465435377256110311594019029690309661873883012447151354376419264706361545200326620561821888528812761324641606883560684495973162196655985056069460230300747164220766045911237451120549172896357087833883274381604544508083793302486394147639391162447793419433128530830709044604975193087439104276014644867903360974933491475432631172471810232161058746614260191472519329355131375237531198554299513839647974495375877440276420240134351112967177640904891971528153815292482075377976077668598613785309005869212446130085074713522068428130289252354067595502955574718279604654894599584870075058738728311623358850145185141100580867832999099459084262397144598158897940486506646518563281160863734056484598324319024500895067201567367042590310409137348920385832581116660558505675417938103974037515678934293145276745283674757330998741393537938060136761358102450878949385492467820950853425172732340648170664903794403875811380296637673131132073149834363108632724890536254522520283211784135148693449174295984707027277758296371473455868659329377651404949223990010379211243233129199575245375452362514132434140325824566647648617396442220203131429588219122730576704866853354065484135848105474789482786919193868562935159126371633028611540662099608521511100087658698916987063346840454438219689415964251045247762690415049802737443053742757945414735526385423490249347338476052165875596467150298043832428223547095281359426671233916660684537608334562711537294998640083087153228570149962208146863522356828921909422720261493793481374098154176519949616268932907466565206474568330513779225136846183024061205142643522012725018010010515559960043692189352199050338387340189360079323581138354727034112058352320895850882019538740122334820623295287372493792408961206356992414293422917820588037369642262648854545617390837403300753526029112061767608611475483544517738598067990406646830387874816674936121792169018541097198921178794859554545458751991558090290857702139295315257715701218708365731099497647550012506205408230137261997690571514574754050661093352267270358036561096176892420238586995284546070701449871770149522206809979010158005612807809669798212705161948670702457958174720515836601069841305773251452668857323573852934438525030249665872664514735527863276568326663773326087080318186221260203031001246773562422919150340703322666584077333362174979727174586096406709419493698897634309200418590256094629646510205074401584846425649702655445653541580434044104426319689926513691620739926037054228243073654719681515563152238076780837861645242245733654728619763376829810744379171380665215616559963673301864701877920313469104974732070283711908628019756749562193746931445979417119117019574270016766810854806807556964520288843767056055692870736008563754620034560677726140142859689998545744487186505622621146510761853222466269585069222492959338506983251466243654726126457027473616623064151995324278133269036499542500510374489145564696586689541370853739375677292065926471667496230462382487797892397441901641215766326364417702406219676724794670459314993757781316474728482238507108428215056565405404802196319732672010998373179222453245449731605964292024346057297764901246590128362294653558858782271864864525361087744920690421318881020773319182242279669830303883656774507072687392849494394116385598101314696028953428025730393635321100616026561440938863296589842782454196610759569562155637483203928001162496482864920867858184207613124622833913070399497219261590907443988858096795970257463592229750600390604940261671235342303463785741480796690899674439486015642031905195268016432374527596082033491029310843916411909926613201835428330995693029466156589480573702704548544749931547058147117912003961841769087692295089899811759723009296099969334160534545437843138715049667513563269450937500664946240995041715446720989815823285756686513840457380032168222851571088972056910299444149218263771898149288610216598579303345684906563444628596104605250338145456473184340676925953824580396804304693810572155394946557779812029164580174485028307857180558606635355173297108420170167824127584288146657819583279787326394522231700918846169459274787463837732427198034020690137988925150490796237301878910101487812803795988334145280983761859363779623556473423662305488867041090881410923206700419824028783684639185341376045837131457299444674712279450547030998873310710502822866662599342586761195025335518054518404520697930577446622327151960603135864294097719639993740771553195308626163301575658245939382359065478576289016128315290108413355831321024196546497104372517242328982378424690251838301462367502138451701922910005417024820845810955041858441247259033682850299798795181944333626361175484968493480450843825298345245104299628168481154327060391080794800722081520470757886930281767604578734312768813830084471830496785575125536040523463188642998867238680653507503630645097434591955445933900653376032586714961228490690805217542746919666434613365505127792304709129899226034275824604850503131522131664980871554781045504529821196865999013162447741316533474319952733530858887095231091432582371670209758267055164119566326126598936236260166993993574208813219919636557785962882005571634051944383855055418014336365739288647830165587274842881469453697213091488822816911118196597938115516299999155708404078765743296189764320981559347416488373276572417262845471103130240226030577389701937645943385159337353493695866066553496283838810476623898024424356103381548805633937184344510560171714686015571420830515213502319615613896461547421734397077277404107456946061823169645894871375344282644466584066406029703459046096229761716707363341912516766934193934035773352341693810172864383723766041012879571730008071130215400492589908027126453295107793225189389369679781710570937398402927293966408183661545252568542172213410171173954342417169704635822910806514320904453035004129726020590801168046946498188581951033687385349240240896331968772619692701168142525140341576672131585167276424204715756602590858882274199172439784887975974017409544153109046644811096820675236677699598526292807991366182018303498722000254443771874355178515838999035909627533538263173574424468435402454415075856988928293662717490681686396293368696010132509695202036333296589741331725039223286155342029400546937922919261313563049227980005311065044585478214468948095066514780855922224566640313559481242693650407915157778430546735675834563979689941973350199688119629915522103911811342797485422772976660369598035208376668441340846176810849083367920267908281252447585539835713861695022171553523802115146555743834136585997414277837475568885922019624015921642108163345112710727072873217219318132750413844747981798566026261455602614144121786431713796793189605931977982623904635223212077760411146633816929773993658315129995510456288033509135699247426378545372826248576163326469485875785523944924415151165690291889126254996607340402724724480631544314270900936547961067581098486390456205839178437773068215780813060585642195885109392459327251890802637785632982532673543830430758901544437565160869933620967906283191650245868258230385145704563009844141558814484240880588990535124645204450582951396496952217166371306612666801470937812227190317692761756172959027200322824747417118578997832531098362562255690096407910063626342309190591140029486509566368065396659330914247553089765939496166956084194830948620875547711861713693955405536299953233153442245466077162420579292967155454455395338759534195116208851444126792745124585093500892280094299738362899445863190217158908546335276733471656019764441116638150934856448968400397097949935021591804770878426389811023561188314635993819422461799863238294347801565168136066301176017032751983191341446519001343687530601600788178303419693821159267347797688141167525466198565789504700557807598359571437280162337999726574825304312737045512093598132256464113784497821277841249292250589778249589149839905986164655776950908324951626931317684927477216403098457114273070358707667940430273283193968789700648160346957299583578369680603335906322433412776778505394110949286440872968203814299492032098031219821208889141382743120640183597653822141579681943457177109318649235517626292300534553703389416454227647907238150908704280130068128187828808731853313790641773790919967436445113311490654684262179381761663777337333724366538651664686901432114098831385626482840115923644868801706734111154919036556054741897978674946811417671285064680476711123236899205176321181585134602384696438143923150514098697326443433272062689117711080056886621345403666618506907962168236004293108053432626079108006138822845708163942611135638443764473196934468140554745528212702250769785437487096925560656152832299653672194281412228044318781322569761084245713776295688015227986505849780913591362503682897210484834828572573212753574700664061307922202686596444051482977406697974499411657800000165683315066444526650229299222075543498848957304476665517324214472326647764366921503051415417882486595113154393349114449408201791975883668966407984703486049337514821197089601337467914452019806684634371070007735010169910348762054059362544778876901276811541911834149621439205265901337034809588870326494877880570507578329806199788727682636405220128391419396877473511389231890081420084084719313862827804966940570176813095607168999108078393562600132675692239585531498186490160249789152049070704478304225197537373763955533892832075509264160630078267297107451447606424455159488102680895709272902340370231172067213565765931902098962034958167718707282703504079630092299812365856595333727818493585145214329232978414887177610969447638243277445687103934517073449654323090417947621874576098318516493412518406404302004783280576777125253558296428116134190250088844206652016504145629475753837488409076364000833747828479479110897695229780415508600449408985013040186318700493409565590610743839772546533257223230503281866843873336232542460912961048453995478589337333724611483166834540843831326054452495240821641705343530767996241587760496903552327786518737693695149342222272188723718889002986502970237391067539564494963846853674389358644131017748023549902025371122906933654638467260388725507369119965272999175304709705068275200327992966087502319456377987217216174123463048738470986957883442771369774818915605167389575439724137184602678051297680059150414856754435368214335924209729649912278455750161166102868729139548814980816320057742215405542842463720173801882358962728968957166598439871748809597234048854513357707137202565945813924205990855119125862910423110232906043962347311533381009424974707933357469565666705241220045151813337497562580929424886910705978321813646515044919064422337545898519295653241783002594151372912575314962945245619662178445929039956057538927283896382736259378731131567489241798151889103162324423701776204715343012433458330867663890644108592179772935509000977044706649989324014003455473188460922676095900131779866436528010043728407485220855493555356067518878606694751441340534144567238936729867547802937346189106299023246805232151709630734051408253951917685787596597882583719251034091789401923835651896821340636884687348166313020909124217313467798930289894710451489513514069274005705524316327198495895309854948544669569105913741065333823899803645626903072019485403874721858838285530591806031423626708837011324212135808111923241496789191245540407433142521044189977172780312925847015327563783830650250397152211192444252941397409219569981994696705031023504885283999401979109149267073506146170603533648160086366053956325806525680076895205562708869228576558780612331937277487001619124081636284503019119564618057069017712913215683999990159644090936790331892565153064455739009483308033019074703697935116558469719497732354134499197029331501245924930272611246307893109725456961403097342950455305802190575108366184863536250012993721864919932264090205948243561839375652302942083454153536142186432999971449526182524256556256640796282702263438311035335795884275590817138261104220886084809051651716609504788843637915177395611215607999330191253129860308721018821624188768139597588110218695719236190202231976451538587680093880872393317859296126104246583523569537512612815697548932246635851609759616077356500517454127979064855820450655286422926625807380492511065206168911328707470233879378726824566532843903830302472732102285079331002724158060010066512554932987574179768729698849422311128385336520269284186043215037645559508552437709387886524869995417718194629573597794003641674608609374515084228310369719525787527651728096579438546470870445325676396448816990749992838600525477216940902303974976991402625968761493151818443307324708330928117644565759789978289021336622017876458615895762481782751017304975624914969888410360380785098263453962083001603736085748173268774636392736489554709629019335031769885964461083952345938650793205790114781506787584165598994313709626155249952601522706904712749837496886260384437500799199216691426645007178279233420725311444242129992188817232997594281372834624500587112278564669036600442609742994666945689465867255653552308509091922076364597541385891416319188100959186261429596436758788180355084181414763700114904318613309522019231649298465455546452650423455826720043197274884925571933591008055030861353918861158154786629405106783971673818210392245061074506194493436901525444409817153949481556511973560321769109228042100572246794041658971548798621474405851911775984232524730163802157189862532701960801984353580590628478243790465692139799950159771625811010331024615329039760339791824346509311300799587556616537429812897189142761704223372977471295834156671372245154764667270407444014597712389392488775102985420019718087887032214068213924757337683881929668054251986650901413203799699666668024977227697470773094613431344740289442088956092375688836238588384480953117773307854954866926203852834523636656810364300856445627173265243650559199344178579875819537312849618475842910256558477062647152263434625664838725479004679259765692262093870396842976239691027091126687319693112230602691857335569359246269764854280241581923702387208146293197055216027300152108575555578316701516872203548701773070999517613481555008224283464284642118131164713145345540972979199652396881134446079920352792840996710794662992421629141699978806464613408588758178441102178804342285990003651442804169297709136641576515672959844920837827122482870115217296732778859324132919292168215028502108716702014009424199809403617381382019330475443014330148920829691729126197999543776935587632376434198195960572495376562794755144437171810138978161711574735909371527259145954836323334421925511652766309321787937797342036706907418555907927522403605026532237774624817572109976953598766204054834663735019532255968755197233278668833174484099507982507146279072889045104135355886928596427303920457416515028214596906752577730793165987951149821909844210866157185451750468211963446445579919804561937387077404114130133630644184763736827552673917675769103236944475267423506068697375599855115808235579049648396810958067788861735655555225556608882263693694515450388204134707744177706600139596104864831670329173351548395107468181210610305154886046065933638330664084399517740688633283886595073321440155723254716223752463889990152953292881929014959275928562626741373308731683678672997876059036564027537472160862161707070542252350356945298619145763522316119023868827109397454876626415723039074352827950930726984773508191810060780994531829029654153119760470007929334021559770730614363017629253843468391574675318794881587205256965619486845712023387119095201338532412424770888198078619612749348214877855965130000489114984461332420271509683377703537520827524026715214518469715585459805437833911305703257399141454061956397641225932121040883646272843982933708217013982695158617768167232819966833361275443116875485819475123892393351976994898810724475585299891764246989506048076793027722041612196455833394424461314671409349864948896585715884781236136043938625213843063501143708664996049318660467165247345888576109914756562569224847773909549804846428846787772426637789962894528066649128308382265859007460172496235259771779066473648117936929921194181709328365298351498315226431685934855592500322537156887028731482056158889639555440791749378463314781700344719711933600065304483498246592841909645869616358003853888663289752399942544271920789159597131453564372293177564568555585428774391650046128005514344156140756659180136190314316692366906428666135152484923703964935312602138731933042288533100042407346331411388716472227059179692564918676503329226836120521897677196165158857050002797700104471592232750767348890699967521975585198881664185637603999429204173962744654100373056758207772497921930758230973130960828864551547204661286402877581878747365782316540140126281653767642435861866724514381121166541891908639035767854331246676286521773034784884078792534141324914917176501337719554279626092862228453081471853538244100822728399501693670351548632653295619943702399108947048655247155940092959376539990824772456274913791880790851476958915761031228277215073058989509848552472466862843493929810303618638047943128672867556597627606607992335644402475200750829906385566802791219415338260785570351323383788599824034862086029948633416134931081810791637789065945901585711224748107615872892913181601530607648364464914052157367498023921427802617527468723885582347520189024822229810902502524752244215238381997449034083259228657373233316080651336614005127150046851762706605183365354418936447401559855927889928311299250247451185730446616105408469271817707956510651798336553332244737885138073582914986728171344050950902413558292968779427868124383342823581798891425616481200642313720324326230017372313097303887137051352908996166603455920832947652384533960015620147040061713590677651812486234258933228408385494205020921761396753966020053241630780712981454663159488550117829055606862214317627016169669633835234022836371491215756903045580331695322353687036450412980588469871478695658258752300740605173379219434209236578577438484950018471184118833960114461379116070618672175900587717584333890226971106102801425757765266268231721181260247506599325848060466515275275384964593914880254256167723246580691113705879258147499174481170183942111728798408984724494795917370194307106977189998781564704973252688942364271060040209874170872944892842047388809760913878144064055058910668763493561355258936522314773035683073242828480901081311735376868682991696636093880445426053531807200699550028962519907774374539645678920260928887621249422729789073635024818725632017059798281123227372509176326669932781672780429847554321812946646872842850419302310029739456277973516605145912635129481434448569548836140010825945792312730695912593674693752871141895455497951862175566155382419429937807109649838648901729709043669122621654362527379841647552050089786222441275103348606882960765208717143905158493525737747164370674252520788760927200579611225679341197471456937031975234551064038971602358729351935144726100564973512518653425851725450479481113214868069666016201750704694384142964711748327587065105824713784995938561848693195491663192124675427367395432010523572554083598834126633244671883766350894878128889619020185586357419470623313396571835078052887620675811478310016614532725765879603340595456945888228715073814434328508629564696651565086924146249884534896513014643085734591521915301795702363600924632632106701261260170616863082393080634963733889432183131337667739891677883437787403940996278465601753895891505181135870330605818072548833830098313217295360064063865071635398734337468363579153461679214081341947704988253242555002405649259796168767076538220435984662754147329856295433196016076929309700457208683932301250374742143889448546357879513629192541263194262785545893581533632762437501540397466991892203212808878877956000586109997138763152176694172787004601779991191920170388622522493063660533808968253725292640591044494191243699632717858450512878072396170613756320572679543504448610210613779602182422891623022922201182779794102249311687142544347991071472492867033427389532182680511273798398996775934535847649930961701513583567333387838463138346385099730639429306178660724398042746545841309464726973888056519473534196661311476332435163988255966746179396101602599227986447147879782883492905743701793279622709206490865594202557006847315770916696698236637232590245656039363955996825306062790751305996578559008302749071275880912160942378745900438522934761491796075680468184869712372492323443517982029855796608958059552621598053266945682522963033806936623178306629848038212176941268297295954149251766539824884230985164386780007723275558032923043609567904519609633505934240234433992775995129990077254497094950513646279865819765571208846510054082824675072843837820163993179061328463965049566096569055449243909324702224086854514444446477152129122374789442284236443720518621726386547165198307021156178261337839014329497464428033190818171272265288556126566473174144667806136223436818142086431241186140031761161147719244904292868895871021028516281445956718196423408645011766363186516589332432053705361164369478192711412606448956651327718155214680876890593557054880326125411219476089267057667879047267752091699823968806591202566027648516032132634187666656250061666989415250875815159340470554448773920700864080224580007127060794398832875386231609480075556497438698099424427110711863523649865542384321741481530099605633354455251767269144070751310823779219873364546413930794779307239990658500522937345851672825526293934904451879488412587521231334329959363390043592603389171554678763446176426001381193551348336345408534314635326737279862611508566116206461040119156626985853791961877045063268996068152438041117772494938828330868252080596160885810398061553891932640379021840542780655368072013216421313593595278141253707559064160523565522443187657894534754198826732775189909569102762129812059892627219418159227436729664174427100442326766175131691013930838135244751744295474179526143782086771029939886462171179976154578925103393898767199406729312728141283354140773555622487360632076408610446399630000561023590807586496179220893962713869802349266776512006190653169832206608168464415999928986919574161639251425308417705557761426727280265385068304269401809277586272394076028907726145834332956816774786149499079192382839782867851776747917794837562819495883511367591971033426642737099522339283428868014477926428973352936610800903941916351623614187075162152535894650832967783899771305642303748535446844367961042901655075593997327353596402399243833999268529175040844147082258298360956584543082590154603773624181204070751742895859134523107234363320946188621030524097829534064856551200162290917842999714109594990595988443935274172268178382762600437248462478765335797891866868471652953960845482455027422061929922486655796011442333015630803640015654441430306066955839633237343415570418530458267794592266288892490601177794773944536967454858828407598903343217728551315435866633114301936486905452674940827914595703506077685186333087726392785618004414175347056835390761016794873032782097647729762404868939978820271400729745905780594851395697034873659352907277008437022000710796386100827147612086698186694828561997648741133630048170754340142837003210317263430432536629035814261469973439968905073016500548099741810633450437032548227596849772470336082331684130663450610747093858076620611301435051709191639026479525906239703356229623675893836510224708639105541144848859301824051411580937411975660461006870658528675345363776268117444942132634613643179399438679135614549763359581758667675042428889121681262146422907368187672456890911054967579821631585135923213833447971220683759490821177419138773743729355589978118568736653136258588943179213481533923021760077177672777673627832036451963047435300467176754480934057356922618629513460795129401378829609609038850478272346113813213536356076420500379381209522519120922345051821835912585208160231546282680244432727613905736940351563006397957155879592876416928481226683936771100827178183163765532372744568134258607556672020614306738103920297282188995610054393939977421875113901639218121801660322935277887083105549875796566792429083653310155730738578382820544306427178770942332577656081135010955999800945451841207057810759027067816521288197229148467828087595841412446749059657323626809898443018500691219759464707310451485991578052261309264025615802065654518437239928564082092660577751473963818373271657805030843308408277057854829997805144596324943469051913719554823739190369830963402029327136584997421058967263401179411145408397578355049542804166267273895301765363880844772155952006922465242111856107260613787798206922857123308796262531707238359816408214470967029732077416673245686489155958087110200756403039450268777193988669471253974756944620022928153479436413171561083960195227334638918972164901611137632489268144711180478096396313207954075285054563999985908047786874286237684023719644933637695389292381743667804798354148072176334953847534808684998549384269705067192225019168048346613449715487324699040194299778327942888610099147472570435492503606793654313532584350731362630837704497190856682212494543421678130258970492345503396034492207514190027469726646610514998162533380984770851213473837225304804390996631111654871828435153888529928941442233192756135785533363378333552615968092481982664627356985244135123026408103791686285474984089666615068955993003738675090455965216377850090137074017614770874938615480283800316465130467551304915410745459156739597393653656819775563971333320923928843921283675819143630840783433996180254870782739879380106827522477118677269315009638833470904009303313413488194671488325021190106438662488013492269363666132525562337627028324169856897312290432509894582274989800209751674391756769589999414509706736310345291530529231801450441408632455927408836045710365320920875299850676597619308226196374335295160132805013525032535240477174136280280211376264809364909272641581253298707186579685209649144068023371321220128371477138811873527978645544113255064817586156258032113702880238813903522532934414747316426764505992948048205124553533682285206672266806027540301185431396558093303113079525444632399348868283007848981562668481659778489911700456471846706595819292090499219731447180358017637170831930117774880485474106321146187152409989915049710293551965523894716183298893498959430415192608905047891813448329641945951530769687214330101656197118872381060351845692285749151482929455234959026284736033230412365506106202741525512399943889304706596139342388694059172384541730114779927800975816426584924115634268213834510513346890037540773896530115184903375914205345723545722025814790146647406531441301416072144084800971155532734093002376870499982259399321154381085661319539124479913347766868097131539183310849950589262484121001559246406296785311147875699862810207292905113597021356813351598681390441531139614619534089197690114095323514732670510759446471312361007016607732611197226813985636537621450551274510653660592429987251844647848486676422277169659462265307934038840840721009833431882316505326181966774413566173538782105978781121400439518330087409530713689829133779167492196359274074015730931599205888637687708283300914550023572012986221011453775716863349622512986886982408450386913748034111445318678172063240236889266439011013096079169960807759239279898671813685259180049474484672447814005089134500345286106615917328386264074421262756556543459279966038841870379335314233771377764443808324633691039497553979312989636141698352837638796304585074599244497372796786239896148213110615263167130467043276315762424712017764703641415418643503845508197665436773098459800944105872240090356723306905737821979802910458246462835243811505045856936930759615761072675289299729484871574920651441122713292005343135854657732488277962036201931086803070436684170870637920109840146423289768770660267268986148093734907310873401809457359948921482471394112419347889316929248442661848771885984058159774738238673945784257600826595803882055145069718529602946736710254011104984686872411778924329568318659098878057581545933198046328185362369500748640475328468749207314711065691437514356527892454007742226501423728221580377816807528777720832747278693844698087863768677363986466726465125961489930978972052855331443894922899510829870192832353168445939375642097506975724441332195842364568979697741261528549219652557905050234482854513474555851420362961491934581520117874399291128859029497096201363954660689399869237301830720892697745502731604643647722527769922213763591877904790394373223555515899917581866452334115661024886646247524482558967670335949834027204933321010454925365133637647831682477175983647873184434535362564112450352237831326446722984524841036897284981474534046201044248365631606066418174027548550272648712514567546245452526811494740180337193024204457819808122967402781069782780783959672092886496358462714023550588607120245943908345086539664358040682650497240676277560433370194740293146695061737233816682428500296989017492620210232434778410954406100000105091846613824681952878101373075253955283931590778299386277884849562515862868373462535023084064171667503586633614281472690086128374611394944420653164903990572614326201698625895322656887931219429979067040790276971695386745184220625388624954146843773839451103392703157686853119154649749532807780488381696246244585144775673025952504518458684599058789767772840424147345891837077718652755865325665105831249062580796028851048601816453801601813545058351372454786043405742227637377897723678649465935980272097356759567984507220443233617443541377903740797077215157615388603865098965009339011097084128405489262660372780592046777667959405173080702213347005920680456132527295997174898217190471149246641553856835863365438241727904780255530265753160388205007235823595176066222669132136552975181353772761866634241723923060720673657276981496027226970264704084095456327040677827741956311079108187477171175104930929818180524423082491738440740720382161403892594233836538122790271735359454587971382891829834730974607359473084089462748920505534785065821089819485425863959684326610601334365009069085575228606256699992723306969210778887991582924641829744802842486314762151382327626021783909846185731300932183643545169341610668098990611780910222535819248342361129546188294290623567447941835091197327781841932084056725121874432255199675428970026385011341534118163471090536665347274890023067060505625098524463162294596983050039646541103825628206947797992141822704706017813394519637373790520264855196907382719093859283552328355813393877235404748685168273455639898915782807989109939634140470764857546949572295430917930521744250081487143846072985485618133411821997748196529935484966624817451434908524062220880000512275756346373088530273939926377587729098779991883346796397922480800704153747051133235380090106324915821079497421690841107809400819230823331018522056169010990435770274225133377592303786774498351516206714227787793428035781122059684053159372593928512425361791268891274680603032493839737433838995790608121996468764652036039676044670272913791084996922585950508839866456180127322080385967370310374064254203984139359565491948708180531687719696777673664474195398153974407307236816905911666160352296363229308793977819491142733179706295132703481938200631337756910462194016564248142426846375930368432385469414057001322976481167249814899232940012323276993286767783828105796348010646151583450056009890121413121567849118373953557814150379725970585240692376109969329866272194344666238330845722003697977465307262645836127012344462359804472102211165104542852224681651005669347980913999358798697281758468533788174063407946270290852380440744283629334084746618893180102388054928670352386723861328838235047066049425761185368995944406432024607695883335422239643161488885290633823925992450974840226465862505122454253908360095530569825535202087010363768930841777117584163527843716136155645173423543306850198689539315078384631782913936551951169672616752769410360065445441478298074825048970070832389978054112236343108890842321087659217529695971287896866452241603160100157038520066764492155590018115768942472221247279324402225947814392447349160748999052301487252226447358384045123255031874653814614453040078488624095224102103463413319681345192732901462535914904804035152112509036903332287173385352578219647443169299716172841140202047758919467706700197438758109144015978571399799343029739421066821809754748374989913957237243092241653350251257084883133915733588948878795171840349729560285969218135713303964497894134855968091786337541877183743571846431107815450882195442209966972076127039363243154021877308994511451752998057898734165600268217620829879293070939959659793987194529020840321985586257605945984742932170438443755384696195173757343465199790281806982841524851496936177965370459983173387890575031645161138112037642764140275451429536184012000072265021897218385959168661809812269929348903950131237490663469028847074593350438121422030658569691689913358843113424320183085921145824385068919862719544011819066225611089310133682708102588019410209227676600827116027720819618476130352370966214392087724485334354361422042735283745524853302846475692936315436108804907704918808290631492462278911670228150362057727562126122690931376768046012612458890421296430393712622822756670731526664672705887048615706662411072481236222446187990642049458158483796250053300102746505642370682257426290931788434244316330424100807110815062638540303032822732827666720843237985642050672366769186707861191453950126191940003413652382079558476202110416625741048482406626795701406293635597044721385984669091356853339240448298599024028708508172048831089217638574346288012558886280201093369565383402705654136236005191609197599860021315595743359207447226165315327319508746258227894233207899003554122668903680109637557687578880462167209546049855455779051866422710773203408023620569056896704329958486662126607637337919835774050392070011726825331139287210324498133067248653623667008655331799767142329880129677161463909857252995459140798985548643075501660496038522431135529666570912933201112433196400403928077801609938169910606647567333254764876912625399515908103529854297364065387693026831382650559285624199951907926000023360920198085599884380614168309322038918297920777875466289332203682818883769716784565265609713425720338314198378927544723609991624425665021641638486061937375596976494157532773005716879772799795486503150868644888136496627295968263527745873709615949397135014277991997028484365880107963047698061717749884793360666962852887195071436368617453817699659687770576352568313064767018435435160640450432160361832647516579595948345787953683382824097030674075100642384615237490230206210798070925639080720265686704593966220779721200806217566261914319748638464495761630944241059902238008559899555344373793777293392316760261744099343777884082099653881196672859265480657660747532417464607385501288170334230783085091392068701184929318440183075680975440925988292759664528454276318232724187722413351359444995813926136196315758466566518517727487632853530300355345604199761147361564517598913722065833374299153792027327370065707120854180688032901422418609121221293219685126536624321685539143641603359627471002876143541158897917755107792661032400106036790353920661803987665939021981183311819005516763636721840436993118508557294886811284775155549547806242881118847986740630045929129212707478754278957028272679681285398985208932997662080975217110982858581825366602641280406090940429172062693118253014640405529552275072327636179290835559759676897460227273732992589230375696456180135806709602682269825110613993956308225059683125819883264123207713617763026653942941029868967056682505204709286632710371136159794733391467146442167442260071066147104090722636449375988607765753914647319839045874166435271437612473268221019033151914132758804124297308092562049901979715080521448834024944930300490294468335219189101231945726575982946779048693748861762662238553109627897601485932830748106479209543737751753835957649429794637902533647370124578682576052255921658870318847614700971008530732292232711666661480043863307979933180189754726252479853974300887852420551798984590980821725368806194499346702906923976359513648091171261972516230205367799650061956251779510700151709756405915761022273271182867790167779261688841177681315557840260859071948357372584651565248612376653568793132688563262957311313580742468234494705393873264478701008489388597969710595054133529118102108692133149086445954987147326808082368937324008447489396230130000805004425909106040105377604827856906016397214397945161638226426895691085787486377661636216053736507462737977075403052299886044676635461262085274627572166994816084720899518328788349418786220438654062662182453569748912950913329604157385271604025939927518095625114977056423985526149813123098935811756000932779426468153726511324450766544324022603614442486940168684779340910589843832596390914826812140271147388763637605047482655267916972903433537278478053806315570699729241924388774554855378411055696047438140632430131349724264128078414767943948518320590515539457175253471676960229725652269620839265657217585657757046323044926905227235912157448918359415056473286756111667933209924773712889920425571361817325237854307969908614939866390359178619433816871573378235741576100690429429972144588540994115567503498628538823467628471729842557154788831674825172149866641730571410756268507269465050441382735663625792902825492518161469890180231671210477828259048971720158434455832359358604608828510590236986593926144703922064688582813902324553385999319610489128052750488796310850412057433805335807712389283142762465079529274527998924501157763885602568992231226630106115544998268723923061961097697188424566126870886273204031607758781178744373310326197416766813206547111271352435374149261442876391691551457278092889226256481921482451709599418956379357055642150372614636000553340881941342592551210809535110174663935125939757536032271193135140786401606937405674325665220382954436064068213782955475019579598387528473802460074171797900141213032424142525139742336616349410988404964055405246075984843930974859302465592693574169133219011111490270716261133205068080703236215239047001264759547899699390019770982414323382299118625708593569523719410456673758747094225187778186515057382138391352495604318945447918631293112322182514613200843309473309234617762509862918095489285069395935973806167237636093722041996344828796170653112242113161144405184085653876185395322682500292040095492907105863067289853371770529310482203638182344971375968778010366784443991502018203588993636025891607118379924290671318460398871675987059322106843622876295431086243610967013119839904155000459812877078893027904372729353340274143399378351186045795451904248932468545509826355492956079268749507902140019872994355385841146531212822628296961552994945546522511610467973650877363848255912577712135434821291532029713395400230721768082164277779838438985950603743676489545787664278438337339661920830037272574903909104597113721078538593402550490018491635766343394675329854807031151419765463410881683494018988978730700754209563384582391554693306274119606217682474714782113822595446924708737489958052728086225963745561767489042249194428752937712313964110132534966154235628188445133527631620492888556820297549231495299159574709767610320744423831338279346304777052395534298197268559034383697805601097526719707582220384193046962914419029887541156030745806951589639044023645624803360211259308104087088746918577853525296999640816996239493903503452496433210900356089822764489089661354251153980183411825768454328455811416304603800352606367999440924420264135136757739517104755757729322750574972177487394430979047646687492607743947708153830021232441001916528111155882496690924257235302266224746875386335322853060858693944896047843885863734053426384570788996416847695438089403274277433254327695403765646529630342046447482799277855333022657964911416110646424259088800992851738259723836673892826384919563101000008601256958129812090637416189808681939445346685551583983543243454325108088476702417079972495865912819979508375944732224771535610377512347941317648364481379045838372098449686669753812665384371264701895351655069796233009042811266733972446230219128111563961863975198717109485014604247877330966361658142502376283276095779160442483022585927518049975808901364255965739813303262514234463785431849852569313731535603443426302068470742854275585378417628026708641284001963128624758079349027657937525578581087452656380951943255205830502220930241678021169241296315394712992032704215206338382692562129144766324510892167999705247244810402277845743240145965132499740992604093698124177489399050786205423221079835528489540485286645624881866324049016554349030124316711456069973259413917883125500487402233930971589811486557854789338533411515058510709282924598763491375944051741905283859999688384059601477315100012680844452003581369893548078105172197818703686475147014423722696361130768134042365912185559292154435219722144528218760822304985472791232047626099673341437810902661754908998425325694641367632216518881259621197472441013372325417245070773369360228427255349043344289621303855898792461236845009340980918331028585642941481565930466104193634456030469920365189748894367482296288515951577255219429348906287436739531776122448598107436301565402839180795119407184545122842270866292449764845670066094172524124605683699371811559538774619472815728435817401514339046489402598528890944291149584951901522647924721078832275167212199536658645795522360059957601672951661756577342451906747143086157021779724301590987492319934795777081417089399404684868227220768791422227524269593915458963853604517756799867232165919258219310252443973624374705049595061589616105972633233594792573498279258479244785267321849076768319526447320608842640311690727043955116736359529390006688426054157156265791563254535068487650420162250990060704114408324252978841864647751469801614224446536703021848494539148253632595015327324759497866707311557336942659833190122230586743275933556604784692403082712394113727998066432186938512972651220215990325622760784550963711254321711237412770559071914888811774459716801495704979328887648765163204116203190334012815365978441962872898055239623815126250774055512994153262051425397406875346123556922572879797128608169148924799007573314977122789488250598773604075173096238217024484970830222474565716053809712712536980314046566494133035134296952308711467111554188488053261928945281420465093315753144187659302354366003757042403648653368257244961641443752048998839635890580783611693327271272653057269955256374388326982288800645067296236927581019883580886025191216015092448544884826649277069497099620287518879232108504695326127727323428204138047044635551597591463755294289512292130006931677544389091242637963857555669564559316989292039441364024141432059712124523960631091284198081835585657222413882757336739952720669739229049319099093828293645471157478929650901349834740792877886604505985680841514574900161839442786427936581128532856752365135042943388956953070874938070928431787583845583710924001722936624138760239384539198281629881812378251270192554166218099657720336057513652685546191164333462579632609430560183703022914746851411481096404366864712180704197318625905474091498406083345117804550649045191867474537693902176794726703108001968780863655952395218460695524896785766748677818576165199441526559348928609153684872232293797871158096067638154344036197882129964962580254580669667077000554338638545368669409197645414928356335984000788943790922300779515595507132039873207054066299009009189701888661263636135532306121220546125319804553688691176308219065619228701657558868697327781825363239135622713099964571996576336882083076825425011849425369757717830208335871057499278732971158127622987398230960167122594354899152176941442921218701836696012423986116450369970657196747554727042504098331612997029767562987310069939627749579402946657413293913444836054810287031292795476409147333183793591763748298649084761511042969618928092361512527954101673381379284629514613415357353473627690638782186675716094120733258774068799254599116063477022184805566821705511265788467653646971910525490956077623897364957954915335585884969383687420174047785045507311607386448839197044062710152596955081109508276512383685468926448349385932788341990769194552070830174896675772607336639755789264182847627979500438581204285009827457715032120649955530561750662836528489529893830858354030099517776391337370011883001806000424000200059830370499093378017778333287721429400674705998570117641195002026314981784710983063183221376953575563531867568338042064630315717290372978015075675736717842211318400147977382237876446324607501353614276126717553213952270332691613440344759975255381078504992644894890857750218210664298673835660439380787667302522126033612331058157210935444348776020140075613827753792069860830696132842631858243355179994073904151361185061476302704195358014871842666812664174385066960502325174586242361079574098187120088690379497679801547281223369996327666876392376661103101531695601231510416577372371035900904104537392143434792281070805101735046637689953483203274264178849980129145768100075664906791037312885047455316004020191234651890423974730497654187790147985487347213963606730558929756862161976699897874104739002837649832928372122881763473417154060323356452457291133544641205899340185534634542882470615346795433983531743925443351271138302017264391494950558927684036030688807838310990336770102465679007774085721236161633043274466201216201398387267983891105577629546231233716413831535890148136756468523326448010968599050953304344816740922784341238184784264535567241470262946870863767739040430163943311940230740118054738002423044129247643997039329622608161997458202567070760482507676073341138740950759446552485812275365346440991463643102900369732634541208093735692736689632053026167011719999935469904868230012113838269995228443589464518432871561587819738594338323579517351899047200008446238895457991750606913477686788052258425024147109213186436191724629150822281634311205884189569622993238343165352886936199249055409280355727643658209851896392124077841818300079420009086095223127029257144008251715880234720042277392008878354224183448897298961067057825470838676525717725394639857527020006201749502048113861307770079192674696274929404335547109695975792056314637027999734749599931413881575611980459699888910145828353017284275317463954749720130549550653308968450695636509434973667972289593457239510989986508073899841734552430025218767845115094918155641628060614412263893192049240093228307003841326149253304330276087945073452741015293370514098178280565075952203231742386674954094028979617058240755784207581780657531648439676961783185783898143345735696946756166427354490691182406917949243943201613327911910091486108276315130816732204788607279151540843264507555682095376580682477539825766976510541011428799071046128063999043900800111267182411120496652439031326784138419111263337046631429082987307724830883805060276328097768526163532311836696661667327012878333660619469140787534328268202294520210254508401471307121525059903524591052344589419926886051789160007202973743805711047611991988559659467428266114650856470698757288397986282805464818751041082307652621581914241118315806679030596774280821224776881708483585601478310450130086881120030442766315762632700192322005160394796996650617144239341578948475334484264544721626132883088572836819575036662137885265101698698798344610168825659403957272672482383895131482244237934790296384073669576052317742203362506807488997708162215078966284005104663677963053810874101978927459310718832735428572133186933192836093204696727162167410233988920415033085328441216079458424161985299605012673890152386654736264981740979741231087916282383141929521437398760398622045121006340460494191621071191569977793205163432364801495872325903760412086828809660210828947366125365191074616668981897913846817281289375022951734047384560507880808342417338248445010416701531479226471868120385352822471265462138278148462396125655131324953909790202476030160208291075320848613196465448002398207514016343728836861377910575623216912261512151792908374064696761643236407660519535592369972450759771051186934385534011676696790558462454191446871216137801754314616274346360121752713466987044591402169815853415320153620655781240683136208189954600313742665393927355001147862302766490888284385167748445531433774918250985844826256094254598870521830186789633357563228585463032848658904578201113381104216685379188559859290374916901539530836903192520392186569347197317209800477189800372728503819780158961609268777971589257874538885509016815439196782464660825561761075620526280006484080699016061252916124424504287895016442891610342880705718038605091180702361112803994688082861540082104599495603006618398714959349864139204634454009736598190030466908992564285911045252867401764166054784463661126872561317124890540487223295691896359439364376253971441847122751343240153873089599090243833836217613379105466506184482931729062987764956494976795293479479599512318039292855519454064913838531413557211014850090510679307546268317829484416999880066709891887876730586401519498313293637282724746701023424999904953845838581921731265583423033096429217248212795516222211126233758014899933620300224451617803673593412400096317733112369920167010367232601762236297962017337839829480874957567046694060083665808727993980236766872411310755083859504243400781493870699092450188043226575470453289790010187072694829246681410372417705320697361531477585924055971641701880560232559864089912649389578573494294997850333728314864578643679795140505302856260851587294775590058970171538205935102882874710671921176031353370200231742262336324305653414083969269809057932444038990650788777324510246952000983753160764547961412608596674615867272542612038099725029451122771006311600314216243025947226286217721123810142867225447999135786649739856789419060135528529468927075588595173744084334772406943517086675419935622110245454764163489404786843300116169474240706221205847101350399655598018948163646204697162217322646337930411643882731782317027652592684562119168121878086168166050644059680756216613914887238213159520539231805482620206022326126298369408365980723356340052074409074919266443023946394250399235384197916456346714891900207832910058560308537480709373981528007159776440148266756880109202375874525069412462351679843877099315966051255835088353413845711067404617457340253645561858686142379874240536021465547267491921200321470241670743644678567994645885666792676548647044028161103209287622784495433528005175702581855794173979473203411540883669276591048776006455420855552045578863920091645816845950685747531666796066247007500520637050654038632487077164215994265815207375271304708389078269470318667740958667918780451821776276899427996977438299152635040724420855569255929519934672204636299620397406762046880596870757126245687945343933358898473126408831049387704871807830675356795345239738123597016284048497020611713160213581948069263460102764767601257160847674165505890742121666238214202723494094520666534869844088870679205348636694035463000850771036417785570277662574651028819760960111966449348052908801434451807230309227091014210342115841105030653897047800365308989765301957868031877017519864990360073319074648100926910786075920201602085452347422356245655151019926249053519502779533288764132740885299571260597136508992214969918689501963191042084997238681381776312269787913311369211223755616612638292642960672390453813812225695209086759259137581732528230318015731337061840225616669812568973714625910788930724531430471673408098591106963140557546133002276617077958101769346739808737967435805842656363354896969147441300171360231097433694919381571885552044186659147891194254928226971460596213413358134260611359982625304033514930733730559979152545675749782980639077469244305591943430440330158899312714038830489902671205704497067169588522187857579543311125155607800168871883242152306966169038524220871670845195970095094032226461360977450119524548756828789840833217765965782018996968640373295338294578601739451191243974460868479735004726677236507942880675958667272229144620496927699881706151931086686573064436016657717363401089161487174508702033413781386559396260700843115484342455215851598259456417456974639003313187975964151302870623718837080289093158441591210063471054851421566830754957020138499852126345675414445794551613567715514553612960115816344065352919747206717774334701582577627808654936450013822686169895215565911254116750174141160291419536312761189965986795072902940798319606721328580395728181579045605966860430651613654952708709624357062431547616306429166952534279800846039807880960540823615250018409368944117108601900039608038321787426586588841074632477451194195757561684187650446406337573443625758916569002154511451451544506315001073432303826288121918443082983657512334319752787199753890440580263637105560588281210425846615055688736107234806939473150306263027960318521908371642323912042612910631263881510973794529231056612939631737834399212977749010925582244459618140245065789463517299509718341247356943528877948852852172787080210504473192901605926008006398306583323364053469632512326243358229405116418764326786889899047414094326127448973573117391664499411482463491619437731908430590284378791790306030521798597903399313498518320422252727218390721172075736293076532774218927590683643883626737212730579095960167862211096229663338215422841258688853713324612130388210930179260444974126554381574847857128535029940155778800212176720494732686720556962428331716869994640160003889180875289580677547793819823286023313102103452375374147703106452796291393557234941655168071464318467178549168881073834874276819118102049920082456656980160518923709459260740357672414765223628848122288109488768564991486149720282381333664930655034529270046486975761040624512470154213130806998038932819420320877618440654127654925971043321508103512186592489215022404882012512528075679267398013145465029669124569791431095734272878964273142419424981190456043704393597947988447390061749347531618024403026794706329257505023736233342107720702063103147257490379434862843473536055445790848421296726965350237174957909756206562611089210270541086516838271375327380446600016801663095814865042363900796140613303531983670781767058088851708282457684037251372815033055172169442144943017941292132864638039995150547312953457400636234416263472442954289585351944213877706651722918746178586199005320395633330324661456692282172940728945216070968161061245408990451511385896270605377240532944449906400675324575383027150406181306084101305389993099466716314291842905794110532208472399707411299616850259292286117489764229768565886893612863605331752619488729539798027813000355871479061165030467515268337924784166073775219139134644947305536861550191543303161954159878786491577472920298685081849826861443198502165580961689596003098451663940511131194086338149772879008461271421411008703414440637203947795112313613673960810426596034218314307996731365497731983335015421225584583179148164323957376297520143262840410601339409557552523351359702716389313248070440586450166154589681195821219811861138709885767993357404858031503852993927948701398192823412671375585196767893887900140184283681463408578454603648499650243733309625538151954480911841582398758939899826807081633172345033232727604875023411317157196405434655517315629546551182419843215498453092963239170614722307821220504252561127035031241571899500021674877775275052238619324033496724863012140706145618432703339068241736101819916250728610668418325111031765580992751199855146809778918804406444911558641890168647614754124575665955609643799991559579226628098140215923615640779011440001254034292452344065137855973016620917844527147492760733963215338480483769921122520870486237809071212437459286593912628428987903234612571795545484346953524847104519916958285532141108504025783945986438159471687074054643065364566355441739978356420764811178632399695821358648362397659424749705470188848685538584934314959721444130760828412766002239715297532250221167650257238197668495782431136987750235965760062311774944628512663580265379290640596286824882726805296739471085455474539622504402578200862624626924250099366764706749883442203294697621783691429483426349374680997690130458408007601488207933501515369032815725598955807214988159228678995207669094366092716365757463223628893443062542278201091354130996635714095433360710048441232180579595229832300131422382759699570481844626016257679478448938493316830678712150389264189071444808738786071541903754975902659184732087971995037247507911682042344506217941419832272877573596101626323951908456968483204750310841912053660918130200519386311157232186285545514889976841008124153440721908632524050799869204209223940833824512886505845823485237197365176114733274264201400153528235888782214087805561552197247746335139900255951848877337832523224927052815528728361882698558121543499457168689415354985319610752201304739703189790095410147977860005213806626835568979446863856832569546644328855159682845448711320068918962020065122308919128037070676844293352468646264286258091035947409172947356783414464657217595129086118134943015349231505912720418067653791535127385928778789569338452359006253803344747605234024522311036674742460303566705442789672444565578398995257460528378392924637756891208158224636755318168823511852229341244757294769779328357825352535936600551462851344509859980390291352497469574025979021021945706488430520210299566048782946587524589163963079191759187380716695570397537467273398374396417013066247262702376955609957023465562355044490467271990646938829541796192849955490721552546625096388807527136003902969537293624835888742122567666335841276982942041834659668752267419979401234405914235654766969191414568419603939877571675198396223132772351463348736383228419804923408271265774575757010771200363492558978089923095387556520178077497355636950516010484090124111274992572596056718676148643945044996167521762107310499968044582411638148294228831967263622867959568704772285826586395138988615725585130692299388855676701451569857159065098892028455122193423155690384201199168661816305521868814394575302102067948688497363705450678964816043316519797352245609010207496217918749240905918510089573202528781306628435220759220685613101560809289582967617813300126814771133687794334571342495722957847183183802558850875198383548986949649404086036588246486032324711096979090920866368398315911992534432550986762260072524867465973501958998456617831995579270266271267320844863051207487505042177659536535510126256744932831176727700780661089750876582200363098399212266630677276315343269972476457647854188073404035687503535323947240890019091966394872174649183830505411784091228480114340114877638070374007550587028733379150862135619311149600196687292897045777259021958918856356601297398024714581472661631286289836601873815101345026573760196399862875607289636969070553338002737294305327751682222562542429509607591548860960323677552962423912936184078692504009901170214356832652006547054375020480552804936398291807856399323887478431605531503802976887312852129469543931147800482802415281713024460449071209763768330341864076287334163658917909534434021773831769024281351487946734258241993973969584227242779527964902251828585633641428697002782339314199688272396537920006000355924065382475192972279630406552007924163875786331664635815412403587931022453344131873211791710548891255220731343596546836650422704762198175101319661247263559758711068457803412698569056887547759693709795334409948933561361046068070717478312150349602291675446908369061002541996180427193479882803312078831205864042863939092576743818002331839945076884399398430503488561414122583431914705346830089927610252780358343372595435188540492168749557570090012500331771796745056597505097558896692150466883338129235922630562599276839361587787751982949043378137984196913369978443375682302183788518258466458109143330610759862501036988956966417567035382242797956060983117193995388104736482366323667677520013295644219657129693081169071249351786965125334478063830780309617592360824284812204719515560852358291871168393059036239977054177092013131065441760606843226652208914149560009644859578320629182394991535307813345547717212315556313290976678689713912044316038849805164954672913842804317002796436688464973049328257959460699102193997664860620202365981149282061709557567666604064343598843999376997592553221302751569583002775713957650053735759905127858506370663226193560423142805298920091499286070890423610265812240059433954661422309159472804970760925851057855629977728998449870175146791267654992878601991795901228518737796222511221999807109526071909202772304139671996012586492953715125981729666144252274458774687930694725631829415553425360712241759839134241417989760571036216479812020502804329484845306029195722869745643040378148676813870957213304064457333547287613497651783548471200291806564726113748302753735092990793389709445737311441116084793893628086055637373587025622646198912229635457378004731360613961475623370364062907116250516449689313525156979014570156087088125566879365177746123940782107460745532530260394213701895502371813909274549710353278862311374281018663370407188450223185210193796396715864792154018829015821785204303052684632086906580656967672996001999509230872440476403196442677043066458241628137943665536203762753223138320308156223814571946571417848295298722091895756495258441738058340073928096163601873746972726479075370036298268200786811673662128632970750537491377743807502919347906710801553114782017610222831276955411110364849745642543205479321403376641089418404041076453666043539503459399279331957827561677791844854313046006688283355507610931470143897936457221501020205929664499696529513363758440173597923606380411421787338062803391902380238922028739898785149941168990480966804247874101309414683042100246565660837586643675724747721730084763827304631213639894151031507275513320619548906627189753030988065445958488808776611868102439811128986716189840557314353466429128717705985341151270258500553251411123811246041791314098282496420515270349799824703852625862181953080328778446119031492274344179195455595818948131054364639424764236070686057103008910993866297601421208720193604971777313276067023090951963290659289518444172962906792190406691547243574157753042772774703980917896810453162899446408264130425534796379934873419071784329340246217562663830786782824388898052081155061964343156522912262631637331162328331777777644150608814577993366536253466417214715851646145735823393815929990838441283466051455672514308814052558007251862981816292215581756503244321174405380377326407618974105488969553876335804659729561010995283602243423180167051631235772674582742844023552307263317877328837221765447712720988726143302694307002233682285993907825596301342984009512391185029788309942621058874579231330542197934677184396196330850351099184920360118457498924929680495215830609048733226842870606959657276760432883579097353096778725648999573734612909381544422316180479529293802113046327195803492882305048073282933865462484525009997835981001067630801166688727548279905416538669476542751676681915628133122839033281281110176293075828685629411495038289528124770297227869671237878593087405463533930209858458835577224371494211781621519067760426639914585611573143895172069893980285122018198703601504665961873013243843033912910069925974546166135639185937615096049727717575055280290615397409863716169134212277321557448897039967337049577942957781548877798633189059832047789810510566653285115540521173769238928066294071013288435437115297133686417905459865069811337929408411825521752937304800425473085735016629581974074236653706141035471251134906060974245791635484577361702024559873644156127867390264671553542854367972421180775373317270403773781778647650867720112174652190612217306668391652310981874543716590926287000469497255103230824260012525449322799448562714314058720647350182494878177599231112099843841796918431357687856069715312499590735538766580550814981507634526740862401931431925215941680753225729999814551981505709411218983584554552944616729336798756863909373221227136836592687495767350160086014544546102603547769868411479157791768540039037937514509711997558950954462912658140920543674568698416171894536289126961690302914852182530310597601617690200323801934441778267558598051371084236963126538036121378088847771562514739198779119920297558136123815004256923758547317475183904604449659249351952063926857660178029865460369363032185238493375962095731348935845313457995558476914443621260154137593729665212127530349900553130079113167382469317850985576608239017688427295026685729810679593810971783355383556030069228544938368968002461333056143489414129439101959888237686173023068698038374623732957924671924035902491941346725248063443574443202725432260743725314105360131541560240171060258894860638337774255990125664352354873506032751194428493495755827770385360498645102081874338005416124499161009149615777503776113045740697126027418550627462842438224423019890093266853192661904016119098615494028336836741970272497437020515211008892676773635940183732195740029491375450790968491277905124547008271593459889677151893233174110867128546929862302632861249489904719734938303316508696142871543481008273193401725114039173635053065036278182742428016307088784968523329897963051876023538537362553348226145587259332085447145109489554790597730123960197412596033411147404429397382192944942368437683311598787648201325853268864481110551340236618640144114115012816233573043875243755272608279398064133128735328394967728075269466615714119912386875120097599017943662591937074827461477950823124278711544988075225310203699830089207406059482341700433671259135565736103506610375103122228269730293547948449498998912643563338525787562984363021548417676308964246431826566241541182365808040728015207125213554977738132073194295331785838844896971919566902044605534271136677098407191538373831091532372960944490610637811545669814607648831777358729209718296468725633333852891412951553421760212407056964728914001175204927607182258391610588889761535470365474412257549735347455784827120042063155668491831016015295028600615679628725454213327076230284319456326367202087247611661456295032040074120328951306250851830185022043880071372702452781106243560258778561980699726394469577281624733001507065075561002121405436322316892609685250477820912754958989194281366931318142909115861169759283403354842492084743055099001292913764808640765696284322810428810900149356088122849606669216429472374179446371970628610581888000364746558702129967201177434717048323031837096526223080414803259645890001954190279865571872885774193884042686592158497889176703860611041977159805773805605404909820949780861149749455811716336203377875629525925356290587760797434984338522914050169999294365416829529872212629638068359346262396768972354804673778207290758697037874896340856947226697544828974244093303047744212797704726852528729463988958313553559597633567962133621962334195743846390321746066205336379002115819087417238894541485907680244087305426934286071058678452744737071837866842196133930329266318185594878437580782757204061902395539924000598353903219579783057881603704874048338287871829210488568027033499259768617433192589492038700148385102581008194337449444529445056392770021250670936862137569798303052828884764006924673651285800287269038007720591393070193712677548628122360100035303393756904240819354417107513699377248680274919433939677174440749387400588850899865181035142945986347300944982957029100726334651575508672924117300736739602380352812429515144899147954886997467577105391190463909353018397827579658774387722708836550857814375821103241580016708154007015015017073418639657959640312262466659987774459605897147261513875937391480061069549306021600306958661296729436452483192641438763767177819649656334004764942453399570324894316395487731931220989268138154339297094159430911941193292198803508662185025393773255601657519229986366881705581573230080966280715552837047650632934905407261667156446266390475556584542779526028566461717249605226306851416297423035580938708527704858175586565995428332006195626716126029557138086565545622254286969237055695369128491907873094027131402543659530862941201692250001604274202432256374416367897542222533066325067985697091615360672241679923321228183441570583307765777110711803869239297333606787475645322816762872505587355067113884921643796728810349559606965260460212206198795156296256810671778157836977659147323906339394220612936976814411191153211303965772142476380839475073158180255510431845699819951772874146892989409127731948141885640645103589308939451398199586674279611252642165762995331141498277970536650660443076237164996656575699470707595389207464305513422866235740638081736884423729820063770266938193596062432003605754605546304945312092067429178303451034240942667001392404288429832391213450554477774244889526609618687745505279364471222926230398759085179498315588623634426095428308413450467323561502090784392749457817340599620032967513281423520176532905514421892107452884103903650286969665642428805245787834294723255635176677489721154833253623771684154006462135429768568804515643596901304532933354314378228823046259362391850572695464352621596682654626056768505971209460655631980750147034985478175688370372048862032753389447258531038268283404528004229237019382611861689143916248659810098757081188326893704915516694813066007314194647940379857732708206178390819035308659371140553496653471072471939339574895943676714639729799868145027571868878680285712195717287220711249945560763405866358032743964992013518569280942861469974107968769924893954963568847708584248263714154071931717770067497854091318955097239376546294885824243065259220093691786754769581196922878230671546178265216976153296647274312990990389797661667083083280414020652257251927236567151493914027867859647531103328282397925241793730913389663358526714821021689391080406298607727157929889227523278900524354225788787052701757979742117482539124562638343182062996392421743546772027433787111316714888684491981649546162898203197475145050509915802291813566289545931898238387130667748606132193365281456333860080561252564963691851842880594033350389788602460408479954352935110856962360719241282039577474623103730820842632244346873348218571269487506138325608155358603454996647493914253671708861830299790088789826444369047102419294799665649871464329101169255952242805263054237296383332786305458695768079900763790213479733138112537132509761269678901908347205259633363051242029085291121191533375475781849663435712203969543177958908483328357476025855023031159894046356387510459913403913062039930011312338567585406755707214330290311565032731175315810833641197802936231623816834618862161172711422116657213387092983092143380975340394709339693152669764752797755666224966692293935393257982020645538824171873541407006456790838184599519198308090955957398610478584872299240218081306972610785155503026985866024444790850557132018931510786624345723189993617163473276252670271563299478519182474406828505873452766507124262517001371225212166655152974903164730406144683793145391452718439227507595343789596656365546113292829428526338939873289986370222520550148916177220460457000230887785861805619213586310761894890864393444931883323967504873326998272520605906850042946182924215561771488263250039805502060874681474107799132550107884371777232417434985537631548024800658456945628406877226336130793234265593297493229924279047275404465253666367364676241352870232134778336382476527928928440330685004699668120453078491721418176012997973244557014436853868974727617678241693158408687619564731435671421916189887906266806512948707268202587196208718442388686874955966668898284199810785200113261706091113001067197776569219114405578799056875450032097775817550235399114499366788849702046218472326120109485121513271202232324796442826683630447179124839808750236919956537007563358917742795442076245328644833634368679591468481761323972037617570959140181684117405516758847797292743768615484137384601322593721098816263242773652777393039962157993101524634584358104001728785541669131680174106393060238237207107244923082049702060590749865300325812620098382748025001417050653569814286408615131210582776057061567505723909946653522975249303779353358820588107618054774388618905111627679976494882999773289865251484162803330150321682645145479720730631535003877986035447039369588512069738513918517052581371934994453907905226444514658180645455543681534778481745654424412890784912471673027923245320966523580957811249806354651290600807557456813447839647069302177759160121289827192398362609909398122675494551092031924377621986863688082925525703392687447661534029009824071175129574600358948169749746109457449864351354024043565628207049656605894252704309305942083610915121657520636424061989423240716570278103973756552520445330095679935376247633508882998759144036987174049606721293815778902153170039925379675736259037597047574172638084208801693239500379562121899656578951367678707678192788587186428217678773847954174658085270348766665863789133153844702571231394808862351567291075743480261509243533062502884026085218736037379365289865690157915939016409697880932261623860692512881529990598663952215756546006586765652220170067837775828228636847492119508304251652029070518207707124858535360031240452468194352094226624092098800758019148676127251142578017271500438560227814102044064709940423009125394166525932224844324816878910001526987499881130913641912281716059310798740603298550572825780627437597216010215609275787333987161699655914455609492603865760195637646365289948159984885486398802812069270799743810081427578347514078407645415997286818416083634644380696026526798671047105343876511196636021937396022963590202849869460964405537594676556521718608772687001257951605013262601757014443955409121645363537063051709504929424961799854109622570865068716302930108401111921324829757958168661579037880058875566572946785662743663663619060769700852774807468808751991276214860629218775424679868907856091613741964077149635609540678149350266756247667504242807431503424849121059627403651342069417068232515362419281662493848686236252513832885043760181964922957414773956789834934405666547045991205087016408409259076878184450912372172715120871102830266294001442622853700404465950206035788288964187759065232133287299425908501572187771507599971461725799035439676087169036318507354066986904636603647108319343566195836117916564618195200204644921372529626424162590015464486157196459060692720805658973275450423001036242827428566936708259068013173931756356858141815604066322476555769563228993959628136238683936656639358888026139678788722519113567462938767127203033178616636152669702391651123506967505857458701287797753339043483197307130929925709458309220273348507073579287693006334481204676951840289234225007385244350416010935723524934798075752902777317952223123205337933580247598352124137254694673971177807230759546858560486708222322398322575849396039854661172750864672094860438488579875340615126844992888069405600472983939816346597092808760595043234901750856300815742832394507568541684946950173689174155099527990195821568653942165842604987537290351899843904207554117004954910783744312309237937109398048352749968767364070721909574957799702147676650624887906373379707467977130567128904267946110247484341648833844827915775134237056809872405950262513311406745413199289250077230021875946345455997996085761379620083717583904643606692279629031358743927858275410794931641989780848925382816894490519806799942926877803479154248464057705026429891667095459743931057954526596770675275321508455291670778910145498788962714412030369982446497437762784107057729351417016398635726349013200014164700428983932159341132748455453500435018030840113514628871784454126171518272934338411254217249148344086380652901960131572856786369232854793051916454458647231085428887109865781686203739253722988856813595338125412668365759445508565129438467248559835702642326634298393374938185780184817544252724247830808622738556537578939980159234207718590315025775673129174103195295005337615492376073141915433182528009324942444741118954732712041417135872157140589601639253703014169862825918802182526947160686673981262655949105171589524997895380385473914319513975908209354978701878169740206716758438613811508255394870940552094209551182855058209839818427564650429128469933460949589806462209129063000010901414111335723500660019201999481976791381328198704656323926874254157651664314683181636516087973926520583207650824013480779922487230614721852828432495858751286474987165025242378350356801602041295442559894618991794237247677846647623392118797800756369609550634523601485664989203182853696331883105744956144016794147198467414958823079995259715056374532060165614523629206655647242527723544329785999018642420313199693293512148004081155858769121935607225121423646051578851526934197249848386678688056263746442850724934221548024963378036661668416807386498440179439240824739518734278032615791603708953352850902651295243193840582741289533036216587168558252031707842395494889962988030989161252552442112706755899605533873826495722649964127759754599554776323905133199631296886933231514057555431665909354125739963785345016330000500060891525361832945229667658847892252604773216161513102681595649219233618097531743418430859651012440501252501946478295230604343992426022495306074777393457610559608962469556722428364801100101576986353167829393301292512865236588163263613195157779704674678446620633130550441688900557327876575636719311157630328377690361297864240214002631641580564405813286483361933457548283840311828152505716018700622259193716869872676595082038824697583550943731708118868027141972440808687745740101621867875216295597634838481468848328025400273236222422220921099308459843164612987145044725870347458811110069120034324510381996163316113038058733171831125766260868295972069687580302489228718054089828525132132316802878097846566680628549592765530715715627653046966371757041604268040008836095300038705609046720426974197898712902243645908347182896037940582053527684257240588022299807108105087921995909511553208281421363241572794312680715742121268630234330890672590795312611101584399349345917685119365762456466284855191548687945074962661033805823636355860663604162039741639383404118653534751932604104352756736216960890104286811283427259752381301589245153014509118268767306869318099469813991449823244754334169349977952590597648546150620824049552126314050987555123505705015490664379814273077114960930931438817912772573032392302700127889899745954254524381089289417868784569685678623387931509089162862402906398657799893438356765204041411954666657216720467621291647190571761836817651185423151920684163654465363156448855529324339726970075239545282585583473147541120726684487794516618819927292128416819987029424341789515720270522196948253624602624271659759937514712432783526056675368867515895258457572439024859916595710588820682027848586375104162380556229560018645989288473095399563866045938011686865110358246566943397808482405575828195260619847749228566488539801042526888653445648622282679403184265693400577400980937146128639497173275735303146143463046144173129573486216822254422684120827739744088557996452894980682722750031717512775548761676894014668603518020919798735917204918384792859388498698134787608115978483523079719088221674936535933515533220785524559739042423672524777748336597793819427180116837874642438890842713165125878713195778056422913325365488018537932236048475455951053957798751946836911461869867886595507560226512200343708189979839520357642132587465029964111151153799693594028210291880974671791474080540049219662721295057195272130857194720468149404156212838545231365205887117509263456607345341913976982706911772364078742428983899125161893530571911362682990993048559424388918786273357559817073297582348201115740495115369197403108239272895234247455881539426391925073612549156279109431695238070372279090904491829784895862476360208346032296807757737783149616934827038884604192758369866606862389876569663807947313627287619093249353808185720899920173806864299939458800896282946199361172109190971288494310449289659944233614569538177517076785665915276707724969866304429147588727674783487943066536828262229091483280471452691480088391114792506306967028557074786086512066318585981774802755431258420813338274938229323178650356659405414833358770249205327301179475494275605728115622512822825661606333130667238626541239572159770181945192740767772045281024431074775621233774046494986812308912149657581379537870447290993321309197224179305218754237534729806007673665667305048184354024080751040737371019132730246816670513287937520512205917578923498183872592720080270375851251780804052382844463114988791159589147397512626601922818165643008853914873976623465369487019025785966338775063235531385768291636813353610675875500231635910588511592286393309001413278472950862466476275435140047099062834288997870150857903622926906868993587995344050780577602741743503510898160286324475773789474074031176651173084569188299130789704545074788506452229842918174863158119559053420976223062067252797055570577265622209254194501142633021683069139086517612441704602785959160677545732539995117117045276610341525169462122174844963793469954307171788575216997472085466215947612358193396140860605857503969782643360056727359084680888987195954262547999199078323949797698248204706580968096179099177946976428841610670239904431442822065947731166813080745906343813888529706350102094692282849874049060072680114315686279013170721447837866029090537010904080765119456200249153639803157417399295776400653402776351414746199770340962999313916990792570382987102617543318470751809340657732853813956014683558641143669113399659117924949392345833649564633510857905149211052377821075211176578957569358765986761638219348290783261610355900083893231845134007911922456373800799184416559385237900690750677645782812475682159014331780626479902550504748564613690071380243155495382681597276426544725340337246893286939841285656856258935496061887851804436566287835534681272147454610764461894056918691811608952077013409316191939042562413508386352474869522420065090803084653225345092732359256383589768078139501755551398971606774279196777050398129107648015321113342116246851524021829593665236827336541665344913957741213015944900526407346678138479519537506911234237423220300405394778791627343676845587490542051454932992367061557014368305342922075699556924837417753375344998417606260359467819533516471267780610561718443487959464735127976626308580937653810797228689184086430494578471970361224499575310666935997882148701818975581658490482031890435162008958531957529097296644191923645841680638581812830382830252284407788476917806864318824389287407863055285044787040940362981115546647244784826242804908670021492884355068358240060932847536743048388283392364683778798688424663546782974705049288973973438306869603839330991601715515447574353397890342549147488848283123979216521990237884454409234583998160620442928703908390004658571633700211443617289971725399333523077433265671961190217249063718290752444589966910768195582769118737794932011932309575580388612082381098506069298907927318967634223615591211755753832351376297268279900833997861629526212810417388801274586931035436948457255732316176665359576413269683315213559005242949258496059600035385613971460528565492141865527000243829306961692032251906984384786274314145611776200756985584219796344784601938674505306660457228958918180896642150604865388666644051576933606613170138163532918257433984672641017924901195016564114768505445796346034592886778208733841626723866079199226711488174570140544942356526689290962871997713619946240720323878795060702978183110588929303247530867930254453085332922286245942383647882304867515219392544287709233998396626566858881952846510528976869888316476962825915186296586787862895032579443640871847184395790071987177084565853030271742584389362781152068582730125677334972104996897662900288487862747100333765557333006897247294584458970817488924261690885433080797189986617808381227865537014537005773433744443858133889877846974130883203310920048177403549182589105611711195530231509468265172594933230673398928133153272819962115293983725489888966135570118352631003555817106202023343076708479158600421278674151898507119631508012664715124134704943820236029267888219382054726807796243991189032346645460740350354124604887378895617301107290919421446505290185594145631314545184145568157061146409413655625792632511452866813259844855331286780129262481137267301276520376222117766737652974268963088639940064365821274528908051132659158878802453951810148012027428233562828608208927865460301780808739674992693829713466508554445282505089708757641727036784722711394466577226453726517620882460727547700401729843573871198140376768686032428337434636183533058813295238924911181587602090323194311957454409804504901803173439309258409031446561221017866962184644121879360103859711793099739169517304933023315867203163403947298648995236823969315520334843541810706017378217456789516848057698784903821661617844191304445158728166299374344431389566406792009219194403657658198588934043322980625320448794174530928815418215910994664272304732081965082748956331579107709833199876293255369714426955713804320758069366179492485950204952026852829393140170307489304584207408850580132973655762824114419997039306712518063830037997785696771168617374082107853158649836533441056527954152469348576322607716893575216715809071821417626180168678867483587327842258647717726479787768571437991533236586370746307596179050966394833979516512481316583679661637795734877588900658549561723437358793840660748045712068965012962101819552179945256043353457904379731500042480942009572025853612560570816544259573990355509709153116990823873473851813632710804096993644248553062744298922533797953886655164450458947532542325797684703623402072594533141016173170734734692072671438243505804571094093816847678773877969159071334653624622320036431287596137207914651055468695892285319980245407277203376043609487896579843918204704310783187326747951988133185356731011290535819170587756178561980172064671301831937589496041199454850688887706835894185858137258501161771578935782986295118502047099778233074039981701693897649081344408896594788853933309779492622959525424593547019135200340227580949381100198778534131034593542093721015425358130216942623032042101659210562253228412524587323358673295158076964788085786864594073621702506747016819173042428401191443349282340280422292820143748604246784413545049250436438313608146908052268907560273778418419320019707920672825958712857856775989489145342794251969283670131926573707058648241320299229409288353952838512528887905220701767138738680951366428725348262481311121997835137278720859641916429486111733534662928427151843599439081692610781162734175751946782229494624355683724644545376595249759527014171233026402487217314945608993915484871628074203855168845934922104493886822055778112835647828467700503103734385161866301002610592740379041553909838226477494935608109815771220127787412801018760893021869842482642159083825576878382355200234226336461583057053261828129006642084846226202176043529200992529675593901350692057827368670214880331485734225283927336689579115127943483389027016839169181689422137794182318542030177949326891360991759321520579924870168580660270219846915414404380691097220515508040199188000368812832315039903603374096933818668559439740259235992566665922617629334997963284641988119893715256763661757497852764332634824179135713941198788066281415640475063064438890448210119579893475522094346317632748422349028993009382376879787038055298230065345391941153372453310525377688075700362350403429772542251001638727062028269906691608262920511863852466963554642144497943809649064774625919607928885475060050865168279845968504847276505941046860984668753655171091281807700836999104689690664787039890882732388961564996770326698495836059287093685269761460170508709308587714513340995982786963501235728076441649430890401908467954997177053466307750566976259069829638173315968852270827249566540940517209793873163677524405341387941931340936981474985449405693962852012848370551630955797631872835501896213144608308731314496336210913051031809911295438648167125130109013565471400202954165096139301096425322293563728787623991036246448678377875140962251510753338844806753836258051768266254386327576318449920004853301614755613037600181016034052040989713966599294994460039574595928671203490328547609978809120649196198178841954971698137859210197889629620139614796659106046272666230139027248483686705515630921223986916489559919797603687486138278495997901169131099530900872447868709704104721567436740972880711594147908943599422170637436849285680407954589248567993399539049568137132053488279744714624426678413013306294604631885550679369395562190318627965181564528648563592638053832505457433496725714572161129275143083942960223899222353957581270842480490144367171691248643022071098381470922022062956927276466674733561489219565707045202296417988373482223082020479632016221407085732369771528206707824700697984351417862483214954580001514952680962158544372057008967380222257948780793249820947591137487930464987645291361869617032156850322630651468412493912099398899725545350624100618028929275636412245802429357565244824111044713110942211317186179657189567509499338914331524039853583812466446584322612079834355870622545595427504751074022449964752186377952548022629258112476090999545355747317741287389788984522373916988747471202733194531879581958766491843374734530390131387481017402183769889269722970696639479601824041280755577477396843699077881895033501948381803536001415246650069284680000922362394118564829061030510180876750706357957085366446416908216331110699578945595658520841355647695926918634043565715970142466384321157620831544221233176272240799401116478722514467134428962460190869677486169728176329088370117671274670010736272506261226359419935075878250232648206766538132231381363172477801490775151483554696883144616743610473169654379145211927126066958015317953028406437043255162069295371464795585416915432137259302783640176887838645149325348809072918041715959520493708864406230398918360546495789465232529288141187328161120824551916228875412670693527722517400555353994195308964194742510845835204431685231775385092785279910204259605699090763881591142706403573174456877382861592462314282487116887310118440969358967646990118208886133122841471710694884098275172334787617867736401845520006223076402245541883006377450611748487650357943536841326814032840309005301111092630735236168479981818772714232346506271093572591567298302383048956128320067669745829295536112864777270441995737716740638808609078303728561094872374185100475347209906134860073574558907223520250493660685910096564538423951791143342493053238165355262026249903510658055164242552707119753869196958540997385612048633691004800126943242668010558339037988886045422719863502651122383414005938930561483420078436902679866263618334192266119806748568508088901926649826797993381812011798303680328996659040290980425958117708962899742162478468236237266880001227020381212960004947885215481380037346964061091390241715810014655454019844909601534123014126441481699679890376044028361757830600548761519760412928747290571250970603469597662370026035119920127619166286226673062643109522252055276294125733087801488804644998058897338044647168953331387035086090014188715385459260320022146547659890050379889609649138203513129363499035666138730495923293172732687472610821090024776183826051928531258848683559246906762524615680219557349201846304056069585058746326635153845039003779755560714350834134578187559897606870445847736774545473118588176677574869246749914330649502710875261620829516863462907265531108165241962409592013102432463917881954776147189228651562333342430919590511203273386430452094973628051281084666410643203277032890385285893871006002563528401220135651732255840088403982193064973949366235571858019349304396015656853565237515713127087079276213411405355020264580308358858075161639177468333984457702934764516533645117260290546824917450843725212912679451235314968664074934983442448530438473165247897679738682633341323943517483443579351855938334288890396838821885894724502946206982186860834761898939317328328345263573923234921291084529156705967087936981132369481040212701033718979721390812515961862926472809448637204685331267533341317427818767953057840563127989880585168328814936245769040297542552674494897776020084979417876444163676033715020455659168638273222451615841837365332652735354625284460647069483100960158004303320924049806764206267066056963950767473917987573883364035503131469548925914328139336782912596559493655613931564861385780284173044842121334031557847938195407446245135881216396010321445958389604492203398141533713795885016530974881726726004087037120881563080066368657075539560043631421400805349856235990476019194705215551463612449754509699452244710507891037154580450033371418966969164279993108117655288879968339431874480722771709686180434251169553013020058481078515100381973062316366844510479161372982577841949706554898922323781085277825231133138983097121187481853057589969377739764975498164419032044475399622028186464052525253281830296046354945352681143960985246894394010045556914310325463393241397680034283923914698333254466772764463498900709471050222877503979762678351284377362663760368940988703574390113605684534309975093651237851307286919360259059228047883722724222046209839589584834661239372812529826489187436894537768219454404412732039460314126617125394470412997008906663167481315318327306058046769769369145144857734514019333023560392833509986800720512488696580983745145076889905708213067423542929162100143725763100241942650217886671032827213958670194173990523884860631813416137732093876330829524152168810217536900708228860935096764913931261677636751406454332672052139533557622823760561976262722679849874260365699120665727392502787333512018394823905747638822887522417115925688390650502717575199230595523715378457780759455347419937933071111955846512655766034823662587608104678227744466399044092822729219835306231771713575251851745426753618867360648057719316843499666835317561768436929116433505593581371419151946012381197624131028167972820709092710255341197926580813401537823581438067305299868321703206986813435776670739583469632890632319305689345395534083987584765183714072426406425887872409549298658182843647210600155860091134582275717089759882609236372632839781314667488611824534958538015549199309580233834228335649114849053105115351775742633502862247392138570180401347336348526802998203412304771599463922577729391866700675752564146237169615439018244124016263266068669074585605894345425034888013058189848427560574399408147138787487090395123538040381382752849015484534012202161536955096569858241001490704391055811437051230010793038486830120834718612398098812250643928080519218396507085809444078842913268684748487504368214386490068055991809916573657548512730072463514072227487705731182406894935664832480660873542454225614216246410947427097575427299381732680640127847840965599209722272458286414286728933300840713733687338487140316503389690040099735156691292662878284995747061711135206666927911745570213158498018611170421050430706706035312007243867513989398750059433270795667594315253656598460291494729592890303002155412381851073026920620056732406809444349737783493629563966010773368633033150603982238369221222589290770540961471367154642820715001175150784962242740215509422698349360731121975301592225599019987726370625568967840071511891125926404688176252290902812992412731768638637469331188009871327765116883191082709248765635708342338907596365650459590930815465855195668887479009781667762161048500095140889091374950796731782291818706287650031632059322014120673913760234213210024528759929738304089717931068673478457992783802552753391257661339181458666177653324107310155175407567371194581979390556967265741965538152458186095893480242983906531745630581056647804806368702941348955290129786457172602938751553472007119601427048386713020032569809112747657634212473476013182929129256235924628190839713891423296544418915010906542665251385912508829360287650961687790457871611079637702187489875291991397739129342928648406498102806880982500279613931868579932791557920485459057221880029491946829416729850424823719316980603986461408570505153115485828196211409187104609166204787935751334111966584082853141861566659240312336908919468174804532554787447485455202688208835411890353078636622853777165303480162056234900135107502016707775265059667940535416930168529810783187060662414065620493556566796984435479432779095893786308806318454549738982057540350634936362221117855070804473665950875627209353192312086943949911561342070984447541315376923415452372866459683222270209350641393067140354490865700259265427963136672197005598787580068970550347691582213355368224556836192105510344304236689951059577131161205130815198772943317068903886035122015292399508826379644916257449006498921771684555249681369300045963635594778881559763468144164489794327264933596433992411944826240588565974688176880513793823702404683559298065701294395638606916790934428989977870536521178785865509756043600955684147704488479019102454226358098900735435648217243635852552854727923542361969417287967764975763021761258893935237935059459448358739423754477877245522840670681024277214407531589342266758531954089539524375261606629141980630291867438814929533362806714708304080429339813623330302016413326453443385140122813120291732656862715624922001316942485348043473288424645541152030057128195105421935819421468729767718679802477205935408945145950514979544400889029327956602148896715920717541418661446659119054805355441337011784471592331924039500276050650804496555303090386538327035269745022586415295777081122731796726424305062463999144008916695560454817270937021347301525796049550507979279091992431588081362246825196127289643294192061070724480655593026669006190302843451920607372686803375111712499007012736468962965994038684795790923114876504055061710764744905017839721974109911753735223711114482647800928693659529703381074759003684286170811897139566826687017413886986792607565077211981561653025429604187606674653885890979171644555508654514681322094223362408583543900074428303130387141669127893991917406453779775821227366759647907075351481254549206335363562296899791857928747612294229267185448531321095545786846473658248688623712500820202494198712218384353782649965630243567998384271812490051590850830614525736127151661186333223553994271576365098069527336961934837364670377286325963447167158284575786804393700932866000138357631624016470205077491800625642308827552115300515100594547089052514312042887300525429394851173764907629739486328971914816354248534341347074014110891566756584846389702988286684356863630565787724062530198133260420516373574655542048912248604699781496076690641068287004834128302528093212747112796355092819106300777979982673026999383032250500691610602375263594730798753899371211792104273183335242805490314508935900412060215037515947695984027004854459884965418981336450926445391506066382852662908202671713533547521574197987184054492940365387763080571680717222592166574105709551271349028306384967865852859858115580183297693498986401917426013253384398047131322766929265060723090910436174097000197719637509992301765720674786558711125570364385457161210529997723512573401701569777054163380524698063179057789673371526201591856787762908381929423598239029122961883423888445685416574225352491007341896333661527586450298615334920585087705343077486654014328558183828411297970898221855186853399281172319176227000199311119731423780039372477165786621846617452420641779266213717643255802823521422979662354116384663298103668891745230424773370658045527115436913737954065139483254786284059084722043800266945854438838568765693068666517967779879058979225381937674098025454834786460941677117895798549856472655745915775119815348973433916459350008528486179905042634305210946636747370681299032968239806724749348164236062388948431318625031231009699711110805726007508119641141870514649107958071191548340500922024351629124304945042970592849550570054836015235696455463427503544102874672399100302799043586472010041746365619304120549604820795905988695519350994205198635965040754111220315030190477686209357718456973593569721016904835458182613842076356811575947329736120721596380231216982926727635361320477379073303732860614555385448764757207259568962523057433022964800864812676532879935850889610121154143022484908247644770530814989696008367270451039354032282109991294170067194291820521429227547003150054307510241977303084255059989874795174223645040705128540818947819128563961165879722833971483717092084555155493290582293399843774593446000832237846245485947073955688991630641185515103672795844968500534107579186988041726385623999975710460221238245789707019475308760456684356093724116265275038816441583757778329838797675401448233970195226112708385175241320755115165962001086291576961040395316079996268524597990762222687285122266511556650094155466430488235556762407329657302258767499769326315270483623858692413334690580961973583324034861697782308855100830939321718714703923480134961167198538782441047336471975874900258143222108147303401086323865773199197095144554831897094772042112011144841532676312175096712758289212289215401080114341113040035209918108682068558066336350147224437372944473293320347081916445323386278074026252704243709172704508854582249291413337454292948552749043106340112669125001919458460446840868750651681313496701665774906622542574816437258843146258960500694977371443659743875490300554949848803156370065010791171813145668048240429215958322163184960868327601365491573266970129952602580544690363352282101318863443589318788473070587495569905933428183104138710208530359853192967347897145826703419036324870298083037089910571940355363410676370435819376745309585911411358389450987636110455388383022159638610965551791600813277772707362973416101344161107769698027763517471202488273577428911635515380034431903404525342860474286254320801079437616288277474521710119266567132146964488241036566771000558053044867679074309121172521628945372792291348994114092275561912775193863598392222674402033390385149162094969197628932018303492493001035340409699682133092734798306990020676747923843574838816194159510400216652198201011405873300312420001408862442024554472642247179525885546003941492835986115539995564604137526081337888276348688562113332450989039084565894450213893672285737032473532117762840186972831451149857950203845949540743060385020877789363415827832733273683276232726974229363208929456812573031632989968099426170056844233214263670714886489397854883104376192501572487668958257207320123917013250973805183779984195002680846363116419320304119147556197841577885761465105085158983490975415957881155005565708898704683286435319650332654408356672622723699649432311721885231673260610395809898410481112880280004271822754679129700705266778270145407829362687203210703235803839395752516919587620798479886188276898916773052398688440606208626729980739928606788155276711857847053117165652504076035312680744470971270245421031983899109644627157693698088478986314332798663179310716383255715865687493439661562647080667458558764716750768253500835140045074912662854626112914649883034745405182289289140255155884248896824477319244219947348246123204789398113652948034032587317295526946371173137115691913356233138439654194677826705183800377678406853028709703416083883648144645557898563861105613448920359937960838135196372659999754165898099990705546791121365743685700641986123201118942368765327603753396094535172677852827455084963911383930040416743451998096645680211983388428422886346953965985701758906739866629497841852682362418331118784229337638207638942936941744822592276153776963578108776791756504229547502221609297732842214979772526668289820511507092136208165310879652356882372824268884810751285156793087922471224922654193940639455862537065325550931185854211011953564708099858802087855663097897989788914035772657958063324175418401270370649991847767113176335945031514381686042749175495846328659847072140674062264272582106487977915236480639068848003055297894066827400224759116859258490517078178743792830227068588336648408170062502858043003839176835459846803305527133865664484333394048263243636664908251841022180207626164268538368064418672934877287425663682101978946445914104424297625800954035872113160660571444060121590477008612369229088848284142769117745902608603182630758223838212817609105419162922170837174835335714171121528249912375549002519400621401592339100838249172139394192583518527825135327120645600498509560830406883227357505081667902923159084193844107477375336632818835371193469927502886621253275904172006185213022917168971117389915600104913503994043622182213968757980013982662357538037690439663060976532998692972979713990304371031564403920099506520216620541465109981927242767275816107286320364293360588148727599876477449554067078886490089224418123414800190784354696560930817135366909205142813293844995121204976007774975394364508711331977733827421085483351589723806018398403122093301525505126120880361066165035376057816926882685596736002696594561183874300741660248076703026411679193468091209395143501545625730889625267950439849838809076290607796463393770071447008268122655140267749175535649176510461656702084869754200346771161420381937890413610198894942500538949186974261048512130592628800813895065110092763845219525159821909739025317350760507990773293631634410657510363272695731897227200948680350936999555844975679360781853379967002436698403098697030310352164494812790717978776935545544036405688196267688849074047014202831694614432232343956878311644314235285994836625296772445574781205985207638251026465357581494296192959410646529975492920850141973476357512011799290267861882158580511314494558580352816431633200143412151929105922325202029578041619008389850151815601718255226693599632244035628925082017287010951637449878988964870873144202010327158829367822159773725400758405756618213779956010267198790789679477914092246058670916285987236387844804013306572232268844715165218024504960559780787782309713569816369935891546136897133351186138657419827497252067540186827512035330568011953607503593299214587281389511082217688561331633156666774847651720607890493098984823078796253272501988010294531759452852680988081259351572446507913339093289106555530803970029831890628807962813397557978038724358695750838353561725505780446058926444294139054448203708816167467093750367157148171722152665359298384634371706557143424817253071780157571113231579948310577285765204718836020149663505524593864108978123354513450411828674536711962764056750709661187827526314812387701462938151505287138136801207843332672627823789565660454024254426658100150634350661084687413526657117516758044798742966000421881855277416765485405339555431897293014183752389827385027494287915721734941958332867100045288805500865874128856015226437027467342425830132189934397781461031243290047902969503580079353975374761245341216225196361762731576612906110609333526101961967452588243932416915243153391045439127286222184095645751628696605948593913622344552752968493227916172742427818381691604819881726779049937438403521878612138078338521187518399135074528559175290473631690417774155562457180723821250957364129401586406539172038622407270616225295560748389758534168490320071396956368163905202643647583190926494943679983513695321669636815635089121928664061987170868623541473935566996817925417884156764776454904665977180721910032639128809367144131617737723397339841029576330735100428918873752221269230042348643569320043453779321127278447506773029078854877049217177133912983775847542878611281120884173438887904121602437631190844546587287477566005384773710985985844831859609964387080092328012901204559585325225154542168563599426782282202605899056171120709992850854436546881395084164074204468906687730468237545974423488226662158335443802061474523442924656340271548708917541501485071112572972344438786583173766267734390841701159624024993013464079797896189426036208134238384104789534428212384119479724404970513763561839254969199222251222459061526996868089272994823928284204395005390640120010716570892303063412435366574264847697380462041601644375546447501600070071197501521571751293595826627052451705989922070043509429234200161272231019339934237757706774162291389712998865849119748374632519003993354437937984477162525147251594354023039676522615985645785989040713048655688812915637465815250220082006696933747441518534070215357188365913764692936081954491866137795419948625944051639855684892120511959315437232723366809688526720849149091528267631597448641569957775484433643547612274897434153656423083441038520496109018036357652037594262032773099555753900086867746119851014410096843185899164352155094709746900259015346474100404056006771753447612825944124744930049269674249669107892894979575423483237067593375271247363018357806882401209225765450663813272739920192663386969707486909676231917175365848417414183791442706252633521174169558613441352773526866769668252429341286136648461349903981531882495477835499796997644239819075968313490178495368514117158599760715253439783522348275547875582832514574384234042710635299409304683907712153784708568000229084421326349265373197425290584026166798286960566644087256918411065753408096972494454651354533648237656584377894497721373438230672748300962936106984559728792356511731901009621844238865562709403326196551595824823429590928586367554189686872569005057165101054600612998821360394722472135218937330744758852249463665629073201017787687882780599228821566874500535714186395835511058141880248378891631924779766149822684130036970482349788967705878593397634683878665020457640688536279650295032390339732469663697067041932411356942969854268977860763280315851177227642458173398854038819576389145988122288899250309438168353045943981334031424952069733612709636213209488360691916083245834298794033819439841639986291662180304674996566422382217499032667228616800424766156505243405334214739101543385570443164115937460540215782832467968676396624340710066501502396785884013018819067322949306750657786294713870767645753998563160726768435380208089307151663383716018883891694722810794329473502269393767612290333455215438988715302071008950534301256101835051288689435670776759880276279178258135651560263117791897339141338667456309061499540412684695459033891862312542254195193468185672687665894901277568759092721844934443240989413018135103895605541333772180445015263475597724675859175788329506355354388180565862138410000795768821038920629683051267335445974285690449057787002587326925284761295903191186379002098193896236764072408047980216087219230994942127078338917495149616673304839553449142666719845816779270026067516712269907413596865204128699864510202064214922277890713829185269130113222481544649994966493477307692161850613952731384066702107044445477357257679575237005001949747485993184604155558404196639066077989279940740001369890907629112879401612667929746562395545308533576998171165629988518404884933266432262048257779520946740877952805368579584493184990905737468314679172457297827826790946384169955347666632368640947473841238523456369051734116015581969789830285684056779365984506134526069505898067557868823611345841351033532778644215165875589950311600916067114961774781611757479294579143124159938370201589315299922692667571936045566595464676134929657791406779892307498858953336050643988756718940419563333097429408565616743551763255909111862930805547683554683139882930299266980672748327877951346640857248336339629922311748056817587107434275266270257332075512986751730489967041215344675168125734402985708689052801503564356945111246812458512432105806034597532921768518650198952601322393964972551568924731890185260779929895573503653749517093947993829685735969560501735061416936487313775680024846180232246800161156082918875280252703309150359211989317947216229235074382904386776019441541002486022514808786452442463893755511137961885808141505559202246124941276671617122172546132868723895943865219099398026702605920166734810811856080312032795028244432546388045866096089170546497344326954202214314960007687229250025975743901788955682639077875272917145566864967202056700337063630231037477033274542663407759833569358086347190795155001487689104999521882615510970434225047646184649284105306671267564946045451297062394606440711790459730575099379725633469499381744112891857244667792866027342917625156425486917738988545082001950901239266648091945678734681338024082256342061251306822699894811270479832240568502772799083147691581801433507757502541859839487796986584627397427408169059461782964713002855507245044693210970459998549616037622233199258219721072939878562511174877427594449338621686252746766960253936381840228993701837539817271545427762274663558535585720555825643325681151796181761111226519919073324755491535938920794233649542336550982013891758632068636789278631076120676877645835590479725617838268784055343095226948483225307209072962373975909909066452621806052083199943161835525339114612396615708069805978969029804365215083069251480197491592178959204671057716721359221109777470275952803199741886700291052833991883024793127068998366822993387906821461851926845153935089386456951756598046658896774953703114754275360548886162924039603821755355008490937048735503952649133334852228024676639615591171842978411146945386135496604722701791581143475639835772992638923509362782989864563517953301322157684513040115875520696798021520036733271060418787538788789668151682367230137500735825219711273542787001629564803702700421632986174218628619754375487770652926170839420389276792193372072182147242770551418203194049389976730617919473720247206743152022644167736388980849399891228323841443266098840976968802012702548704305535616638162152386694685142450473461084855875837933186515028797683023684627902755224000950811767475374857623276269717896682817492264466582043011783551281239219183804218569530843052602475491203702412804962763731633633209737162932428334355090078986470635283241615231383957860613491612464234985092898198991989558546100459753336692411569269615834654032695739759000280140195998502730460876779351446846821831391187535766210260271619169885547074015708310877660210620176521297801191584307745006693846620925515958516147102945375198756453448487157640338467829732002190645711801691231202019003534578719594707160425354516747427821066268142764751204475603773847054649056739062525830962048371162841274101215850133953172376031369231818454350423632602280016248420567828459156245177513030009806875063474615905773131494735252501421202528534788319712192353120313755386063311681818736017108262549851393793140246780129468939498292920194469177424378491580553406827307421930163703335690915823487692108686786935786641448450131326441584138604831424759800155377292045112979064825511277591935012971649036358423133614793446217961347869221077769404771726856389461916964099664273710319986350275210686253898161648228799216473399612891027227599930673324912352298646900450726579001947588425159605219674022311106183277346438254489510025588850078063751444514937044893778768979846787981826888836379637797558363136755205740479049131156093141185080396232166843627047387726047021849264342629802384319776293937647697103171874109134694051505316496848179328731324565724651604346602617967501450354303298964131168773004298195376701937905268542154846965935078688779053511554980562434090281878329542941946029465032986229978683507281034440215436484038489006564029492695371136992781367709688661483163496629564065587125491673319630383348451237835238609018934369466308821999720130173175596885389822480424007141632693500179919243499184242157870329178982118311446120000258692771060542039044251054691357024041886187066482303126575877724968773389906208054011068474715915430161228256208392822798952973441142083054213143887368896549636533776001678311982661997518883239105328791770656643685509419577730811027416240116963813823578887645475882836993905840174321865522370600180185267803977704520918963759166210511740698114439294411994448959852729665332877561113665855548983649976521566537259454907191608400783690787722121699051598103131360343360856454395946825567229778248611416852899890928489276644615506764104728930223573554425005472389963462034115371431383273964205659911844222370013789347429698664375646155848732403453319358161446953424841630933022275752292382860627211952692039304222627867927821163217330890776418561826727797032911767961343555056303878977297531161345330021959400730280299390911217617442256849333990282756506895713786518055467373740284805524727521509140484144193979625288848459382269955985890838827267237289008139197651450058587193367179670480469859286898401131759877314678199408370839865186536063488786207004668515137001173266463878442273220587013620272598791089957190537727996359420644222648356501384493183313355952202326394574664866085426659746003985414506803664256135338087286639560025151085935810384802290122885931624702184262735846848934714123799083082944663179126688570740033015357702676342413950996436131781148314710561205134037133107606139709751939236808472048843546176843094855517359377703567082084536174297534696325531443032401155177767340186923057461402915830405704779843564872471570984829984289151295310599426193365516596106160009676211516764957170706267920606597042511130614887721753746193473627707588899688786827648822498534598577963275230212355456297161301159918707341628223562349478435270121666375886881220712791758079106650723036784796379004986419372786660927540477285387685171591352591107675933341442092345049803277366975920627055590804964455642182523435052026521832747145175342835602282470909085656674400918346940238183064698476062618160934114610284693366135354802405846905294579560271249715956703602350441593577625481727412744957048712016827939242470583812714252977480176354638720962748965395069345868654561199891940491706289502354319094171358238976371086058459370824868555448127492845371671230760542191482789356645482912950229215594178704237450043495022988891441038805250559070639567732394639537747989057058053337967714171191313457475718142636202636130379694266824314587181191828308895547706030050281289009570384411843664843173894593421924965483508613149222023069659358387644789890816314057197948297514903538446618948233541765843312554573507098743040594104148882232036254624648442266412634005152471517405219448348247535657733596756842567319128877037785871241696640909966269917938520571773449251048275239731573385085100719312276769702788963163990402118320633681051184336585462902456812222189903005080742127983496953290307400181497736267217039577214034568956474374178275978358850141293034634619546685529598209001080661499079770815873099527003096295276923269487551782188773302310647706210543589885918241326264771050873374553288955734381405072270712580306082757714367142602628019933124770037668930976731824623199998844636372992732145580926316408011731535314413006666614099613615941840833016073555844059069548600198126583148872829516918063760031234316943329825853738476042281726785394898537028208081907560223316561624971402191327693667757318598787769238223557450913189456895938376016022161222946958567085756257025203637066565972420841506488571290319186939574981131900516937644642252335069810504680720720340755935355172789758934082867019702345759041873700473205379700211789590573243143780850801257906306171272197022046761921865241531879983115227327314727420804288193984101744291356379108192388835352368949109661098576645450249132102217616954891356569480367572092045976585600483652948436454802136557512093502339742087803600264021525211026923412465729984217959647198206154895929804261817005721872140609858791311779497792276400157749806022690354907551745493729814049595104462991406158270239588494057219613174789114344132499613866708504966128705375882903454701512381828849003935792462480221426770157403596551978341425448110514054067657467583177794257110102368126640950545589740335053991348331466007591731286500303871533428958540619077095402696230509680254804932565764463223111921530224130508165290285307348806200810622843249420686471132951535905309350988726684059300984883480912187298614862112049448113954601750380784548080645690655207045922916267242689803718659770034860805932462222883961287783497766013891501860933981033956110623813922236309645932745390461293158389943275701599874138598619386542937254758996099208691962068248925184432845084177187701822290573910370209880540666555250024275534106613881316687254991338131402200159315262090491713295295026966464656114884128994560965103879287268895355421506675909490697849647634191557391066603440998064578294308339848963273371725683744901600507579757653573851832300566021720646531925970671057112614393091377905660970606800648795628615969336755797588964857473089931517211501643682881283961687145466265323864315308294541327872557711911814444826303932895167405114032648035581419234943523316667174801332163165902541813872705814837362050468858185451186446785777933967890126479889857743433829522077281698828371491881187167985552608898285023779893547021648190662721816320593946988170119755088576167977964218778060632216117757837773897119159037290754223479597691177195689104327833866712330185383505576390681716755661556843485110733274805056263799968690837579882553036311185134184238630012321061142511892453764011977175718671202647526668793187918365902904549260337822283378107970146968134688740006188531982206476638343966024345310242675250890706276683098358063751018007816300828471850168831786224284293423248029759760398974305117687071081378194005881581845172981827869666341661188676237675155944661855992458306133869251804967447592734405256643393309391701086674954653965064955781262267315728105399773952039781243281808989307875614166865778521058597722660707826640419746783530906931181510907422802481640824183301061835986937751359856813780767919501829257115202567397287836508165570469793456188708013888582427076077346989062811856139258690368291588497652598276982550690025902733594833296825093210824887433311191531922333238372872917496409388698452244466372340645486606749255671582866625209771770031660065109477701988550407785266417879189194369182072811738569357701334869724798486689882597652461097161896936232445984151876933282838768790399880110793650844656325078866282735879779504818817943298065666644220602118021783492004572973167007084290766299963489018208617637488510179370924575324799872530500842542132891607162703414937871641730058697378237530837636740599526820736209790165611132308192123444593532633605022171628394044482192615414938423146651247984767603786552995598317520281645071653350705800157071081232468317531697468510349715877023546016047614498672838137370471032599943225489433433899968872188558236791348038202792134190612279590616098941544916076254277755418643885119492160785243845371522996707403862933580753336481026132123580782544342358164021727951637826647867188142489759807399005424071219300770496840738677844459771518871850352921107647521520189375842356625183590267729874116735557390151948469291226354552553339319064846628507173548077499352673598722790389437616964318050282647300778467716160290264533503379112294784053332747629304742440761619449356629232520078663238213326696224852762433271483610329043755901173667636284668729674209055904591262237091061810429395563191819750182986437236301495441132873943356943022226511320921823591482223912868619056947056343851301769598315380852118098279390447103818948337071871809016693638196971840405255546040269167652689749052151478016867469250470504854817687573007345630910986266186876260523386760046533099042328647809963811437807650346954690108508085217384586289551625274469874911404908783605866925965646763265215295324226583850043877262918151601426970271045091194305636305269148526213257702233901994752001160078289273465620253237612117170364701547504037717157534113882536252085451874898901894957755736663623917550442401004285875153671363647408404132317458683455072082372112545008178034927749290841896194399550359413552439069695423598323727748950897746885917771225945580007511756695186923951754819771268983255969075775860558468980633943099017521397303245007098420866957127724275738178132792125297206277162669728924946904418686312811927476441488583902250207819583332654058668235736262921854017873915929894167396264285035389211308033783177981571446942354583475138824692129992765057045765516797820007162094451010299082623955659901986598298416317698023830341144423706801332490741134754997034810131778218531724645147695825046595703903171785274824722013000530643483655415096847563040383619214118385034350956201657507931212028433666961400426550260568957996591078870972587857418573810918930596928083596562675982084325207062713321361424307766660241555389607710613940845312034512420987662656443031085439194970440193055337577834950269748932231693675589362950265877402057748646703642636770696214657307444585969065929029470857232913545788957878971233938956422264531701113033814136457875151869585736144975477653924983131231302454551447770401940840878903411451092764184002247673567423042972515967328597835389467030285537587719330046204523932444701092147923005003312622396338294471708027739251034610250254539691510741257048221872308647063386852076817092593049724949536360762820376625138043171954590592732336312191919888663438895697340489626462081247366446404207997594510356893502805414848498718730830910264064044591117455615916925648827787808779658360392938742474613576755899935446884100188660635257837038725855401141061974271674093938200782276210603526800300557245339861216692198916765240789465577269075762284464349490982180165871912962097483784037582880278584670519481488174653252063136764585194859385958570980118786079841573876051967252470349104913405460364210792785243655604882467343263830726002967769413228338216437676564926821208135447486565307553127617789302891896716463250952842243679881592045281046102777838737992343104663532433795421884922295603433257695158884757733537250745551186106166659024130647602963497558286204100768589567331793266921168341803460112811747545959666805481135537303910698027348723186700188295528078670087163170893832297012457806535713099358033482538523836046020251668920639766042176724074164838285967084227338713190773586287875415600182427412631377923445084006257650283655847408503264234035710044246985508704075564561246157376229022559526466758707760497524011791356989979849721369366131286894917453546316221121855391588972831467461985403931129690598164454682200761115783426230959167792609413797059552285125426174030279815665848352166508992667446493838270772403052447688423999771395200989926030252101574204190665152424346662642072682057322976293460060576751577069728169227947098019941445119834501857217540934131070611398059525161932737415170771366978791236981478502679556009952500246823821059763163529436475180124000730414440545937570695660951611138145613578099797437519530867718835223265852258559520804713735969380535065807235827047964851551151535491298413239535631311010296444758844932515047052909323614099759891018647804978994024292599052228421116753183709601386440088077909612879744376223311989029787344347586120552139636669272524050965171830501635885878657615604242369458023961579415193275373105420464679323859882465474443565728166735383695829844172962891040070126900059893671384143557736403052388682387888408474086581796419124051392980378433842416094732534775608643359368941009309492508883971016841706518021075860436802188761416837798986115315876796127635790069796489548950793488674022043607805210372273941891530347400950350390465775667656260004126765939982387831335311362092367842727493999924795979370322838678526170462695446798090568079143216409229059525576900755144866851711553479239036016532375928142169865671096886495300578370688277041480781572033974128769928929384190080536897744983952680828555983644250047922389746081169961571890372910463898298297858508530439770755651594544860217035118898503144283186272894329604016207837817905295022206874339564208695593130877268837805240241099345738864062786097792872547585629884039140218928732307461936229409373997870053146164819164209675779575485427895445247934854472340692597106096686120318167617274010740981702924126988897318893640352964054973790425267598801830451244527157299565162134502142110636117666777069463575782169685006747332081556224777309459459362610788736174997632128624884246621259621923321475059854467389420593684688126097323105431014193774104708467030239089149517699698103583271084012567032552864877424132499285351047188062845289791472883761760565378679207976710651926506033099044108925142201721914240135856321487568632466747202813802847671669053075913652260309402598549547991116904465096480714774014524294685211053936861117619120506486276018368401047178673560713773093716120660027367230686273352081489294724934289553952009252648028046531950561928632892644203113112487201736265648700154641592491559603709382872867695619533025537148602195822838221755359781814389859688641158698849031704173560511060340943936989603886627048199475026327271821988830064559339884087880227869186973388791529257134919892036034744296440284359456719981662773687024585609988747737913784769944772356333443901282298489044598951077478551982565529502044120440707772039782713523226695296286888674384367252139010719008576554477171469655240833695530416279409138202550561107645679452979837480604129702934185783723180090794052609484800848207146489420727142285827616632625854092465839906553987589374462695298244244952810623467113326643195859859323622808959775222453678300505527317806650947627318258987138617636721045370478373756612777802906650266355899362346145437313157159502714356092337317050256728674901150271344000594143035453484249120881131298444741063585178299354635339259304342803072665956078601948301317290020342770001701879492464610652531193537986531448679905708140749963550401640722698648876333076052180878957789355061400194878371081758849281251448755933357914225319521650018210720172168603331618026290724926637814392555933019353650426917034690616710135529892312932277376830298201056321688775605635136721585874179924350167106010085466283421411509828050707321698206638724213425467403669385416957765719751324559378450310928301223327922672662771972803708711212137898906542002375614582520780045431723314508064633902766798758946975435456527960272190595934497604244156903603103712376067331247763121808205612750246536115151877686340363415571657054095009229679352252604578796191073066476309409839427603457671952254143851652830606156729833506114743413496748314795857750194870638093304201518555222240120297376653847013486130040530905212155610996214285440643461244703155084643189304304827586935266391478133923784320914422862415588182248773117282958154844179190968219954826553567463004866927091550820679726594414418285511248102904320863913536555967164401242094975735834111235893340679582627028024857261681017895262968781235645748834248317864177421559098400512781540729626038861042201578161606321267360006600775585258481933852062325499932640337194418586689826818107648197932039095039882638701184091803444106526157625917018229085944091056877502625326795879745477020088899630733550051674444976170239766998887589480451879641010455351451671512044132765372726787890270242451603281081070305360886629869765222582152871262900314766977867945725451580879388613750070315842152716144276149726350750924800326124947220909085777368873001723330528929909292208960099671991921681202193735616404466935484509841173181910203503025537593247929376123214787666846265956024167529836239368269890950618145246457724509586467863010542119047223636616713554946516361530688921264536684838209495661394748828861464026621763592674566491017288215250778260408526027527001163773177435645503596259162466070405105798437024550809180832683844250737001085340095078967876789264949432004063381671303611264797416483355574644455560132439717677556775916915028544851262503445864928310811318991244894372403217926000923335639280224200779073535223579497866931954312726615634907347757953929038868605170505706439659680188749215359514682407142460740538684364033680408275554332206039573223908579041105663006590510536795250797866860792517088654790319063455384200466191750727170980208366813844231852091097540910345709027440383419288490308046015872774011777756534623048004280398286858767830260335174451827294287124724308453267818510085747237609507841584887950730605507657905986872007598100746013645269097000464258265154358214705375996574215541940824093502164147833391842002318101124416709762567121337473178052597120323910564487268348851762015374190351063907537496107287179597122763238499523939026872740118647743464142072512200772392486929285892581101921044782504746901368511651992260742342174831407387185054127463602229062340638896439047009959402493795003165119410600226539649687780606494684295325709896565819085556468917181181499477943265026087486695002691390884909588424562501285506438277400656413649051863797530850635935751322281186737617587561764478059591494769004248071813950267512996702819606386939633706886129200251624403805604348425739960152178180167791418653436370748110591336075463610522557618989664091820695245992953592112050190298922447728140408188020192088584355263108851090286238749961824362157962229265490606400859233126936591262970240387719393443811462246742244553497241131412023961543427470919299889367248086743765404541243534393123901739440798621002314974255524121973693908489718284668020687183373915249292607984105917271110863833365864586449784873313395748651877988205049863058013014134892762762512343899170212095243885701052715192335912162413852978150498079515420733978541860078684229378940981108422387965695817859237548104547558187870750206676875928213723966056017854201335795588133886794160026492691635071388010429868392996744707506616633301363584165135176834546910182415062995169584276345834317616879435177967605386082841872581210821144017591255357031709207449270941458274523665856318629873925962399974751431756506861329158887405450331215467975826105180099757102846083082837816272224793149849010003290173408714383721752425002141797970274932699474078803232753188578538091026070357369762462986541905126736951986210032452538674014396085130737794665659384180444593942623196840736978595684375611033103052230959498345355945799539669373659391526685671827558758304899733027226404704693125679353619301676148396449136878899885314411076157914117716947836136929741283864748699776876720482255489778905773701347149938923833166215748166105705190955059165080786314988864625185339898693797069223341821804667975032306929506826664274691640545187706495099865611034348667624831246510593567771595704403302835978070110066125384777005117289343102268366622453956446322395579770241979034453783851323311403790747489160761518089009117964069596448463997109296435854997636817733256390953263718767356406003285970689528213072728850045300737457454730903924569616140636824019714540523445573608911132513436915123038891903698783395441682286589815482869939637971105931425370234290217683389587395204154442312176763649618776374674389576695761954897214241676641094821511778358519503651371979633019275342802009388494977829462020424787617283627301247378014680008152411527277171740512365708247061511938443496797398196070139793804122078535587022474697467612784030799795599741541256573310830824891232024530567282266937053557186206985794054300911894593321511928286573955851588344483857919942999370214564305707208079017129932350213343610750191279570931971402213632955168207552557071193239764615655577731121637518585514887813387337340165588209106902284122803198587472317772485129986591503757054016034935316963055161393311355731144115041014446282224767977017991720088304362300204074659137012497272490776174179033626390102514241181499166884393518070523255526119409518456236749372503100695628230988419667705775201245457549124879977606398878612198483756291385485665639599959047157325606049254204920185937035432177111690456658522872824203614539377635768048663806318608036163194201841466061176716917284615577413128532359910447700059102892485283467678933020620872691066681453194425030060119073256017166566826044672998629971938449182195087175258819008401415011357361494647917546686483187771095566676245670398980195231795797996823856237048228797871352878000992912166490757742987850110216737738392363615939630039042583021671726667041573107657717077780695713395860784812388687974792380616835444883730892772756261196125175666882003003810754081393889726799319947170379942899462053708636403188756138614146010961491401605070144821493412928751233482295156919858167241952156462381052529276518964796272991265084350678468470918017595894035809090396794769571272974359871096314873628135577210014556483733340566213288040541699623102107651974450642315251541014066083906158789717086249143149839658686149433380282948000773346470197964971728353100716531648439065259226020294601045535391112368551750715685535091155596959114234647761412169457023824896836976980783767532416999630543109423135834738325224439168580749146764233570383430164020818209359157253543956183574755392511012322968483817811735206516737555852585888622902948292826104826158808973055712295164718429391435044269726463071200105998388858406737459647286686168683741456549572424198913288890389688613534962609264377951123231115125758241199543780778817508549689309518896817159150496604575177019028550321590929030823726330001326389872228681479650351855566316466629747869936417398384794653258142513767198211607534841373938916356078158994668517247179064096717820120282024099305258893463300447575905436551937937044025107150846553332816899736047762878452939121612418047354506835873161754916298988992232992371806467309894685494757667065028776630723249759083814227347077899889160988982867390489841376947610567457694636358038838911043463711826300487725087908727307410670528866326873037550869142757924256472849638697312595971266393876997701291843117271934253057842646899410291949365941258234169462540517332083018079032870418386043122419800068452329902945784904549184094378728980084436317108316366172389681514457185977425911111958615499637520494550443831278822551406639206769762307646892005945870062561187319907638279286546477062517464625029749558169635159589962196541724417347257207551717274441303115251636742653818181845989033201799319364279907568886938522540743527470658211106246097264444243621947458642078742901683686426805097500243895424549287816517433638331317272254674887627090692697828391715914583664852080289370487174610131545808780645586390806074955762848858603342250392052586965334959539620979488798418048750436471711366665258944546417727600509789307541304946946963579272322101889355032011316928564942988614609481151997302883993435606301929874314509441651390832596223645732475792938343563123853481524428541937600927064379193881659440280068127556857385606988301724259984676437338747702675048282398365993776320244762156247211898792807576916348722191746120385949869491359637212833838873315465777582920617100555609931496997197751231787079060483937001884967690958862107181308078689426950319128482846745663870274061782278305423351976163915999003529225484347818453484214373304583008875647508904303715531324190191239153367432090225789892662037216412567531841990007980179528890102511745552316006272305100618489093380902145761679263940284678788878815971443929980238917826189441344923115395925817028707785103771408121028199414259059395227216389819434582886817407600483485367051022724728967441512574250163806319650710903227023088978341457352948647426250419469730150407831284226594831489756957952136504019384707673644174794574894998109315172098199295101833068501692111495129696376739672512053283116480455824040742869606360870097993144021781363753818071214683457198610167197438035146046260808874667106412848585363286231731460118866097502821251666418917293375076749592165562048707634224319933387554958574669774981821271327769018090035784810986339222229990839240645306537858095603579709128179316424294697039922181310414834980692157605751160740948255037481958339781441387164264198385331546422806541968625978421873847281663187482309318013055916793952172196061789134685540292988893544786486104138296766583124141008903784333307042224460795532743044250807231526035344571003857652560022940630081998638428202243134579232066422494604360007467875616668294778375300481766021469138668262793799054558108230314128264892663712781713117083247780845772972989284672486708816433827917061297144293814985625836658669236841778532500653576632128274940945004878415723520773899520675897185641154587534704811791783261197248889051706434099189573745869401004610092095203470987569767766713064213156115213714100878087220245117721824445850449215647150443112227714812819281400076501649582026031171681381089769976035704239127730385392335109326354859318733923756983006711720955942252074715814498912647722042671360222520898482246982765078153689355829860126574500410983951758518051064202825647409063169980104052188674963603419010683890357027839727912021373110525873244293200256923158393791240220576625149623099161653791438620156946382126930540224440896590743811429151325761122961857440110259764935873940255576223295561378368075597392678044239734019150792778839322682635870361120777147022896266000050889961126901798250601241858308929006953714871255014051864289799862184574794966920180967737468488323950551459914394488717898518507204656114050430597448343480963363742913740621088378200073745925136085766012193451092655707964685253053923249042703735236595457829206763648062409325208299928367934277544048392262902813235211392727060422641293510239401315434368402836308108502656866132991395690685943730634535943258269790962103809760177044448030706520156262254114632825389127629125395696124018373706793369723225218628244340045587494247906581001390895322211641133402899615171636612231926113872901929649428447424192286128386180502212708839245613746030088178002289782044879356503144042566656608661910397468715434459666518936583209210061985287456225103940447169542593671929264164598303119473347065582044856716548673786434775013923904450568182784367226743857159281011715048004165686394208330786325878512014243206084681183307015031791482079206426733857632907769243633855962213972243206331743893926234605650084280559910647074535323844088959529321756509800778315430035741748898951353851666754567777813057266952570992555832499789344591417454446992340591186813367844050742084017717827463119165596931291889464806088844864296332456893875122145812490785708832615182134381052960104095835778344937571658893483200396463426142353420383557471357447394924836711440648655256977800630698982736790783549648387294852933237110367515571421508469393528682776099033952695549254925091799329202989886151185389214847062965751044424720815001098889180814731127693364286145857500630930602950495550155278972699937538185857892830226245284017467133359509861727906033059921585170335807164907884387555316831522242309506478015740076407878192392669678515421230255340084292836439286488034713252300190622144827377779128739140914591746499217018410251475163709693801498417749748850704786676021646007458731569578085483760735828726137180734482336662826636674494374763504043206525449297514825864060599826182406749762917838738362270987507029692616230756302250884044546332355745085253352697050532102610285196212267113753289701285716540351467358900543821636897358124593387690544348092257910131124817457707853916362853684624910621264008229968254152722526132832499761352827780414863045922123244246681338835337511840949553819781577889612576766469956926162665752090669725056089955672480886426596251973651754927922322613594767058033500842816906302175693227664924085941553989578365561630796804911805828201780773502765525128459507302976166599411374815894225347719535687695105152355034267542258589132007110303875782914534113264224505455938049605790395529422295397830274905796673730236308798733008820149064248279740282160495654980335549967881518577843453360553240088580205059016166300568373198287293948379976982733442179973637935774707103631264856365197986183392655757790904561498400708375362992832646995428829380551843312512141979194554783782497559223612348139846751952457964398396681923232249744400503745412347490838239419994817772387719416159638498954880448078248203891514048992262642727588941668353234064085256998296704730471776024834177335285105196782509892597315187563930189228392072652790905119323811707321574876534529904184703415445012212916620249566410185953249297732732142597295661116734956301889873601183225771509861123414459100672761441973061239735076317766005813270680443099277426460056852192825203145774255079679923872904577410624185266678706902314847169684987728418264694853110381463689695166731796098408425200274659130276307279210766952514541790338802662642486766793104356800868077381169513281319693602004513442049836336400320711403371841442450818683966626906680801456323432420052332641657704881348421419700036017795850340188624291663270191030862909518727939634872695094843620013308061381473018393899380445981313385657477180258802476702066505486228607649778427081375700444497870500906064991988209070078584215433208335942997988874169681261601821747193578967499570848809995275714805427349748662961668924612039054423582423126455227255175291160799618520366156198845455973921602300939761101228855172264564107066129948579473231551239533386611108329244157388686876635404771563884738295192474700055796498428920328638709098125661829106116360537163790904119544320794469765674823561166214297449505651386170063101226687343739841466734032539678163599318964828694381550082006213291949415839787413152456280869968021354376679939832193811120223837065566473831747641419047163670649601085280307238947589739829118370928342695312047070665069831335057719564406639168735190031797116604231628701103645982923912185799490095591698487188087788353193677243664852564488263069499015397421800111819291949907241788373471272424023889214565628729848242075808600009297641328303437134370225402815556483249593951355066828954902036460619114445498153836581355828900597346165002829252313379418487134011345002989969958648382762100854434488747348145222603013132083880066422164041679818803990272105009716997595082377960743109061159341247978623016021025021518969831422975808587297397913193344089720903123629017580167163395872909904539656527242913842295971400510618908087524190424018771477091643342120709231843296147781875420804921538650503248398858161784464022112392227458083132699139916719641078800451859917906745807936921782989606263892840370010389788087961403262127917602548685886796958483418725245834382103542880523674735337892843401873462498397181810085841956997538050025698695039815234897573401819864482106416404631144429816056501261418408681873735724469193869795227286843441406792938585385177379713321031992340713358889512747257186643968596537484884942610973234569251536375043391843533894224165044240960841198955847504747099217602646913515179752658164222103781641492286633488772328009758131476030973538242083048169493559735597069610139988810782100590156129030183128334048089210799384560671779691391245006691744807588597275848618869839005757803846614045273587811145398586560942165343817362871351936336810186151774725306521993040119393304741515171283793477975730946200642119346161877554159480504913102395580451699513340531381370004028827623549300013886536201930674229782256189778460991302095968145612646583741141615621182317113377084662789264037117734113608351665719288813016658651586159535715485400674557034699306026247033704297858100613075939360944030233339366178983551237604234603466095464969384389222581520903777289894323049239198118191715017479747906256714626991567964032387370604882362502099770935450060224705542697405675630751234097411964842518774380404675276021655778224120997625565579071631187366652488419533926091968245294887201226418120555440378785713549270269930885853120743092198575173661954967302772492895795383359988075892596133759111529652919843541150061867278418703674433649881550810289400224069863104565620631666537529736374412436261096970209173578526797444885768090788928060319564805468575627231559012367047487551650941861998333394719369327342512161499150799977683982611634414333049524200181695597202138017835695993259041067054054810060246985183688834468933739180171029693700800093996160327032040646043436653900299503411513283264545505763317992610323239041066592393738303260731523313877645235433415618262987618996234212476322095557488603819457849269933922630082283012749357081244088379911106066073945082596419973011437621015524191425130151833100421529111682895208662760653149481238591145818463648725418355243502558041979449498557231337276073895289413903613889431813583726125092198397092832692997458252260694976210065027226357795464959545904310806809818976382884355228966452675418514614989430190147388496158977069673665166944164816915620320817071859329621464474772089113702058403485580465002843995087563482275538143454651292672853516747074071475015312857037237231469430001017125750562952066457079666656269687751820645070400255749341434704704448449444827589064709293061824758004506818092635449638986886711769150958397858073299194039855683063665919688243947499922434916309029434212948673206506384995255620397505481268902872713612993398890412472915471513562089151884437014632059438281902077908814554823433540323677907105992942606552077842904705369214751533725483268814056862906759255184615280240054593932652690941614944810327255971455575222063060870430780998289918885739992038149402246360550087727687647304078230195925329778470807929297172749094664068911992981859707176544298144485766025039743010131179647890271932841805724924679940020744122013701839779081925139734804045372585722501764707802652077852871205688080796292043358630369016875136589600410655589755585550229012280774112678683686164451106839639795470521072766467428052596815277424811433979609687382541520531178216561933470603525713980185166059082443001366970507365964249436728247206554300413492535566036780537636895806671380472836047915906931080652088804368433573425203969924734758446322479419572924014161852178888525440100073844403125207154038116035954609662358872552278525120480593243347335799099751711731149612512712397047245943041780570225528744487958297511935724269188927344724268240836685796409535397639596022676153379387544059934806075601063081069636351781954540314254990770647756945965789935475532212341458161002031339199565251048689994003848450915757333257250686322766304295622035836422196104383341623259348861131300126487787443219399696268664352575912855632697010776015116406222425207993148886862024517816829749484958801655554827645865020754419773522511122903465854016554809629851274213937342089495573517044383847319712164084579349163964001666153649826763122713279261974487310611747070684527331927943924938094778321951750457719395952615153767878712963984132761008949956968096711533093900681636035353825591009343428900260348744406581946388859080069986090303151593943172568609066416434283543223859564094571171343471101199044768049512594691464470309932190347543673113936089979310900318020544371876614945000083200504998930858194693141818271825844368363635613416379929509870904942226812842460785448064044919330255946074875189517697077072132613020671138951596835390938142620137981126292623746184223184806665701450085406665574639530866546193871681022958059065901268845955126255340157519949120971796703069679994526062959025316293177035688042101962766606980696224147297649602765763449933199340273181012561791998550948781651521048356084588355231586467855041554462878450383137761916273295083134977640301895594318127774381754525576297098571739199383625668184200366781869514992567985656548712422298953060494742252280602560552231860264272024048700354398703632515458109454015846043520307522431306111461305739085221319006989713866155190652463046393961120311214574376884038049320243450405870775258531520369342154419398531851710292634848175688542129350227169222731112200551331088629445600817873903523832256525058795363346777309671100721661694452508577780186687154973177746549408682486362374062200776529646234233631935185611312757714085185855195620389486755698764190656003816209954201294626998475683212867470312291461171742854765576711630557002217280859560617094272739634394769078899598092133389472875434747650934381586728091876130193440617664748646284568710944717952584739127404017393502138505818932039232819761300705315559919636194424519851419685520946523427555561849898762645825610157287756083618539578521716105503702359150699519481387306278756658624366542466479251226349793603185132902385654755696748688126349492624475227693197268138222895741900232208388740054131859874397390164509230312262394458282846312479347482695306029477182447940194365743743865001960780172589572264493718937294042605161949021082929753708583813709914728420608518890520440241892524736801333711921081211103607861604138148074498537183554795245767381527085561139534428711133370341491824811801823718866022882341102174013320333423925659031256230632088738673758929960910970091265691680506642802812051453520081002532038709973688332029331836699145826687425848932210986684720066328852248360593601054154428567943837288632915151533261646630640248169396942409314238063224644555946916548642441329978956133540017616270621658631569763601439940340027127747306250900030330696327520405713168955725402087466344893488956863395469010359704117721242889325165188527032416556949879482877055354635810985451449229235360830810212050437406496654634124989666405143037934830460058927232696152900535011360865646972386607373903641788528698181381564179823411128233974180876945369103743748740300900874693188333276830689706790679235708978923673297646265858255969776525363758932769837588482856854280338699603048754499832006762332536403967092721407358218401949893965273219525166368830057992751758714970591792422483074577164024139510846527880630418833092925469501936364221540344914035060286108176249292795595761516419590422775388938384325749589181297049820980024363675040527466357515019625431254641646545161384540340666083898269747534124990353500271374103187656898295724688413251876293446118486858469026041072269145999141814985338377958444469088117751104120705347021944914779544944623624800688567848921046577511679329558243526455396082139328777609174741534188628339220978533978521953864401580521643224897848218776230608311798150117160324926728230451853485703419275601216678141221056558030150614874793160027880617677477874842607447683810508823740401397255775303439884441240565825935250837408352498913013751443484100019147295608710790421158185132970606066020454831365990486868733254964626015590451650771498170444305142782722665404304631164603925433500719082056425158545010374946977757028040223711944175103923234912760288986747703439034376491881404444311301966418190643699357860975902083024446538762968925314929540447053813358329101629984310461222701810999753675991709860337434590764109863862620177805403936830849593668677766878876510026342873126864523719031201747565360203157656337515634606438542058058321170808550563244447021321645921969334006513586102288344455501606958853015017536416906688394430953637613057591486731277483272573917574660864068495106699278797217230193853367916278006619203416011953292666664887642748325864704025480242470829151776992291874457257043906300508454339835552988072772866393320910200223980572316164977952072089984753797791577211805858561764284845630264857251256127489473410709459227623926395497921984079885134324930183287535074284146399623108489948753201877212126883813140780311018998706841597932006173573177031253844348479254017971533548064314352169569472726222182538592476592168545849766787237085065470043103631006511316185185667422114576034346638493677465561593554956748233627220516721727883739825953170316296783948664305705476056195535680258346552104285763694798057779109423749450430556533678730154627943108958536134679865521949818937344088038367791738041537255430571040138072843843196045303109791705448798544175879974322324590262953343365061961658948622813111783300176662876851219182971803077079608480697318773606750503969372183399616655996235493244837097715603285398612782105532129832382902942832572642556983299450127716354998304703391408107067688838399119633749451039812932266424136240104614308917196008345995684142628941415226651693144102078584931476622277180268857343719052650422906323866490299110744318378527157388550508291337348999476677979266168158971853636045365598343072834262520126880524518767954411845080903113965909980429201922225248550087691265097822008216813233044899299772934534141503059226502943814581992717433352742423152437773008401907427422994615256133063837024477472156787999265043672989811891591304667825365161430062047747860218738589402224694555349695233486130075635599048247749458352900529346986978256680893167722166336428389121148996964539573165349916193431918867745779562795294462814183134730252604357369950958547250803907247290861619892036295236551557733189225894010902835375294028688952531416893752417448257505368392337414676350907332177937482104933507712671322982433866388916901993036785151751634477087468214708447283480324431720937032816625480931019157637700075876585243792149560171521828388147983393078497432821961398512088219865614458844382293931739214290596846451439702536693138380111600822840898024596483534033829645177098819249677348785471733150456884209897527241934399871429677827888654165501789886375051704936808172317356158222467255910265752159185581895559687815017372314090182422257165482303640032459898008822385041525415493499757407941836816883021052266254076072694270202083060572750276621346764403815261445187755934531965521429466532696322060526800159735016910189892286307659421626506578371785508530773380671395686903581648354583705526693776894599054904625283697300263629370113436791950254317347410436635458726728813100997598801032380648250537980476442865368360552742783631500121335732242259191945094520290693944037435102177793134141441875831546874753045236797976484948148704981748203207163926233790478677865776876590513211433205520263606205311977236549888120552110793413870044842167009116336404785713650100789752549124128431803442175976376828745514228647963277408355470931175083541479840761256226985594657739037730850523716739712103847578736114888134397842961304429021089286347482205386472549983139147680220480528418275464746255485498784606802438325779535600884117514980933343107440062351247985585739660419973950947944647608744624648316359404370732345500159928761704878809713974441590434633579221802544557588539986414446631320541489408559445063291037077195859975180980644981239741656519366361633510005711344053834945389926445912435207740109135923379675709127436020110966965866659978537748412362509358132302285617548080487962621309192315927764119038207602460059126751780901888658371926533091118048017973523719007130531384477680445148645384325967332111977534532935233436357829694890263702717598440351923803276756825954382547482404138919307761872231754638877350044570042840071292335384062362160469873202801351928605225770783931021008218515474284457060003584931324484844701001167481046501453015128011236860586636134464084483809445662761732536197415180455714669509103612060863952188832128482574363241646705440553480552860195331692950761087343378348576619564972334384234005400469949950004731545167087019159670758532530218573867688404890454348373095111899910402826238229010921558596010278339028453523213637888658567141489592758239222148911320994931225218492410853298784733396161580772692018543588338627452808871266321552171936112121605182540532564347746428925850265772047029089404142485823586624458580623592873768110610709051496354646608277597290032257009035883941585246382450498075122329453714672610756573955674701999466556522237597410575598778626271278895585818545292115513285417863909649714011542394985594506513731447682513713456595340271613960819303333461310219689565198241267136444036820621380039184155729443178190644429271302011123483127025857077238459237389068250346633856225246431397490440078236821563889574554066784291521557457086087355855514585795519274236911138552866917017621357202270612930813340178114855502411600389031401678298873436203286507197072910144662247114982317833714882074301034334369998797831866947919577843894696943553460138987691207104273832994657952029605013442517293813190452920834925238412897978113046167019381950850809727278594440450822568454665553291384635932339818030936164947206134180342034398778703989483554045051641485833874878181447340898815448502329842520459631104783657991487188823353644451463639823126550445590105155171323745594795499096969999979756045315826161795310564520062954075146380150186998897568167560497571596656829648067127071616434073804292626775762803269163762053678272848834351135920210264420387415973379315098359768784922955420994824570211614400249258751615035906334176809434556776506991984388598717781499144289475821824246971603758263130414048725314970339384192906457961634582216073130103648897135771176411690949616004215885799239600761832466139187924788703649658671789254005699741382728980759871732151312442476640253724874093755956135020467037575480657939941294672859022958665222898152009157138435086223317075374553903486477427838981255492374316628489344769390140450419207592968085263271418351238795679337491230275668358153218966844417172775338306601642452813259006538186697063544711852357208152768352709419472289049263740538492653560242638763035119826178295986025655930949022613387732856870555110455578243977961561224067116404962430660324554749521100861545961340250116696909878529675699167268250254709921128140091664094373714834229811754001117589351909299707207265757280166959043613836763575652675364896457380063102542480389296748173873571255818845895684254499521182625597503030516136468438705425589940541792948070685999995588823809778743277910783180054337860245217815487710039235231806669036082569150303845883944054942839562467662107985538120827063334733845384978520672243833359423799503274162627086527023337474770623559124107437190895643911688945529769064669414871130627079193157886566399981493398331678247225222497614416459364857016829148932938893109472505828427043752744585716124370809129323490511293612447980841406644566530304836074359378356716966869385628133685469219172645504844771614790107104994468958685859939591493048563200726788215720340013623507162144836445154744281643584712600159748592837487303330775199683061313418817026639571515084219263371729115432147290002940539888741180754803142469899122313136874168217209371385311957719742316221868311411046267644306338131684461381173114650850508375240918693375806903389680921147172372038485704417837456326936645865031177283415705861805957202142527565630681135560936195689752347006700135251726236160231022740146621999232353405119382785344425321356021989108840555833433183532965645941538723423971586556789484254749674218359591325159147797200790950663781427349481156184519628904215038260716643226093613734308864316603579479945008146693242490412294405811023164194369840256053710288550146302519860896068310543380779593718560732406187520678779540675008317119639414320219822962014435303997586061098830320327656218270459929583974167783055194333791735392824822450244416808795613263334554555446510031428397473321520721062357015251771869401075551401977581209915085725387800006527333432837071025399912594391946829632299739146186666967116566112344873108708292535948647170240920613345168262336551620607180681423649235511370385957509585990642714050998563908512707350528006383747766490496181268938371666222790455454665185034514413027342684305845508747767119168568967029789106448737918503692522526687755941688113555613300540109809472790172832302771656309816551562049341240455350465643708720380581765538672619137633184514594667547666006278020138636718975871211631419004304086018227477069901317727538245601661601342906236786016972865651044537552609337070349840768704189518915903232047426391226428301705889632799794509578725777747252223528158291599373280710993007124649476597430290143006334861532019647227043540002927636631100791014209411041436072036402356299213282239361242981243367472259737732374152698606465978429190675768528003753308442924984966332643202566125317259176375615212284830160775899295631705372357357763241698731533713945773472342935459349451434365068391988477252495828260402463602479442282722717958975759188029536554775714670633270143148653019558859988747401056662897819528579256043150735193765098807381863996592258648682413833267612786113616739572467930211898506815036694035082985382776376308756281976906356637781402520384149957455714877177434223391161909736132960623541001283758117202474728529150979723085530742090596948777198737207676124798611330060721833227319807072032640494282863534076226258060931039743581978118868484767975125783487532166809877687317386801735548338851185722682521536675506278731533151773200807830636475734800801622148188256228955668255353339934794541912389514569648179867019981851269965838197894979609745695210637983806750782435203327606910018545917749911095549368352856715048586853362596747929025733166298503625693642809439548800788354887124237345431204082077877831054396557686607640313688728008042148785639410321609694384909508019944256505050947950942164122666609660792892450861360992531820738291586812388641824343163838305537606511798123831944951613499470969585762315244207794872032371102524134625262494738159799764890561696013382655916114823400447228527429710854476337142723965167407008529192129929176286255306525478038749040950497234182807142996141226250193916565743279683250541071856573528863148945314925206013112802068941712953216297265725148347815392929928936324068273095347900890960548391197097416442013996482813079606269975184061148231299836910040961862634687202491769994008402596984409817799310995068752219353024410018985305292796440596985998725711247079091656149990773173867520601351846299544280662936269091045710587917155935458849518652735628632037457664966322034961048417889538006214770165271367167529618507444938283243568464453354095283461688207688803716342927508694614088040255829663431207885708163688006158386162352595243478195879537002288922302375470366924835650397067673722277323147369660107005344437549225286620227065963818783635212182242160007437582446963504517857770216692591680544706449642956158146320357666963090858296507838747433184779952362939866163630550942886223046570899528661400880108993659523445089428615816761578611257326845281889602553371387230076660680779032008824616843979084640610369699765814294622617512377354434739605081472615184650061037326226044441617582352466174310177999340594685595473342809835020001081661827337441013222939935044028017311795107578478469198541622595389382663375999097475758192171548274231541535394033711755092755416119270300070672923055063738818270376484033000479293955605005202410553406728876183734798098663901919850782399237441530411496205736801981267413939659904664557646144017343214620211035331663949979405498757421807113332183997444898353995190921313242937274671427081243906990244529058695860141586401496614146420859716957583330906371534257265264294791394276946688671930735507534025136745846487064687440195757355100673180471961941312760680106832482655897840512455613908294773780781539500690068686374387745460763702309879922078641217314217678589831703574797561347579407469867478260041695019755441812050993070627884207212917051746171512056442925450385753018724592322092240032920893963711688409599512712018360730285185068463771789195482708517849373338433809142264021492866893860198545441921768186350992149971002388531959317808603048244878094549297531773659058156213538907225361744188289821674557569061624969079183365647482424915552494495088849139903128757751796968111863324537484590107205973465383509379951949924241701365743885340793151371791938139178035752006107399041040531482950044953577815017470116781232385920101058261224540183381232982544706834200502777638405978656283658816431917212352389346370444733363675175236473123690443516427987494803638778389143917975048601091885647281650836853275238517888708442939662741330618850345415253599651888838506880973533092509370483562896548794817562920261755939068032488949526401125748168503358880917122012844045511003002537577824267677655918794903259929711864485219895927471123165146161717671216911440650758445376194824369949270687056337194942297064335516689881638761495708778050848937554583912257860000885233594927132069136126238956971746609611089896826251818083580357686666132530045094442605670770207311433386958378996723565413615499652509275289496344493269012712466565793724551277793144723106136129687488087672688327296985271176108923764820171922161473414973069686185724804908752677182811335939166826429506461123860008149675278397458623401507821874065461146636436274739876725691801930351472041421748091392131919714142650272208803413219792055943582325496752412619349948893565944261639663238164916054916552353961149171035547613800517733577326687913867019654430515831968252500020247180875136711800782606381342487894153816114492782806631672608564027629189347993559848475898640422077268386782529295468973884786831393138977902250958024047263807540636029381959009258236792979646575451892527345001523277221383651492807802690108201305687348999075097855723755437941076580818993799770041765302491791561564456096103957793864018764318893411499994491110467608945659974389771775763336471748379845838786404246553758080597894134241628571194360022767991163518849600295713438842315795266891678687164536473537189247822818248604143914121132861254204411133759920596622523969730715348710089988491761115381766171942456060872242906614628093481778706046747050534618161390343573817054622652475191481489973589619410940930994238529739401275974052790561776399818874138355429608243688865346827569096012643808370211623602318110430770241030387970416367686143152122624266467646444130572188454397037107553244281394678625089012678089344581542370102064995593537306649664912201045992565343630079301361048240979195545618063740706228767658552994233565739348607227723782835196598282759462012386591492874709924792215534126534354314152272851190223652959632419071903948262912437266959419868558459209454252474444801411724053329514987487717256050063017046979681922128859766805205016507709638321829377021892420501021319549989408951823622737532418390670786962800763409375986656607781896091048167877706857369497063679386341899103956661220950606196012996846891701195251019425846452212270401364558991985974145223911701246387594746545097234467289951292776490946217376519564956177467736596150221220732858227583135850782095699130245577597360725269819150911786271053574949208225696838982011745194729164286777360501458619453692926141464797278075152463125449760165657256706875312811535168169688969887746474611433595219232716548584627662108111723477541099290745739217059701707646001969000541529605410835591631268668534344122501089708505844784759399452620488216517010481134860560512284083955808339269319406854370824762035500509650004050201506397090491857388153216773600806154845659689010089641189825493840760131993892037006815535138176335388136728636447555189784866021129450618482813740983224583443119651012483799778791580854615669499241055783416155440261797546891269081105500285584189957511949908831523676297701464833155510449478796122554142275604153602986340834990028721643158520516323797792545117323110245672311275467435393115260121467796130529339507821381306434701231264892049962590743765738273463404587473675095257396199348683860215149730007106392273833390060439129570596839249678202385918709045070324979718292432739754396730256617870943480240770756666228103251662673459888687596101471990818690968751960928094988812084997288511489842266382674423831252296403291723954383887828050423725411988859101095169203068493395578290881540932905416760200673521192677446268663928298756931007469144048705740112195604616056792160002181166578470669922543337839414926195254077637173152004665148236954088434001821001275640687160741344848732724167163995201618782648843451126580829903019569792799788206948040156013384429286957641464716992300402544818048750154441358160313990226540720214228361800701205678524368073267811570973364997783704954382754777496407055770162049573217001988370674397412987793558918912749781277937954920400798504056231649172543468007088057312367899622362598049257663667299843947437820486085074923088186276556347742788455849861209278576248391966571551012128238161669634371278098393524661760340801068410670677059943884390015527341662902874229513301138638452470427097589547841272047644971822524371446073685615269520740064194366176216855018144332180517335955400677961348694668991702437317064517215925164470413490554209165557360617788886320644612563205053039954264499787528177790046553920809900660571479620470855292780769193838235353674695059874483876420429692552207076875895600756946269054213755375696151387807343047830799363681380398267601185711908762111886900440353186142253712265137708576576690932604500049318946405161266701299391840516323800028822839698313820780606779478371260712618918369767536001643408432052855856811954716745176124568468703971400062213883244284422291527982829427468873754431150061892785807854427282846366055881596562058452363006907948378940374165217226290733600384225067184508578442250416398621532038213138299843121605298725974027855125863111043137235372588871802920602510365227498295858385817385466064154212118339659056048167204926242922930308925879160209044032828519841246742050498384200022686812501452751906520511248611697915849551587231204600023150034796230484158665084275408960200943396041312291211267214412198122625475545515531963158650415299691323782904748854968820046302324884330198423565875451805348333907164785685343258652273015737173029595553073111693877171525077536514209504163364115305070484562242730512794955871470841115119679905896346068020471607814256804645084850767095777333572200531517632376733012449252674924761234922594122481480909643121105503907691165382585525854550326318233432905697174653744282421911575268692984465458828418439734974132233985582759342510821788831161902165658659733636307893991469881462908733088960561782082811143620340483978111094244651096742696493626043099651064672184043192944485759159009799908466918400692509177487346944773979144246834187312002065901774780891860311332680324771232573241775169153154003997671943274145438547465079717525325991944278645779523619723267929531200559618113026596126112121782849988794514785281613823906955286157716475428050157171622026157822219025271801141268850171657081533850981438322072732361272062572513350574757339651339032348018326932231598287440878776587985130333823050280261557198291271626510245749757348129211757382812591392901007794597276694055472980876166504507584358649050441725142815061453299254123988950299840857995161666127945089685817387254505150848434881126671370282260352308243559211651112092401716957723014372540434553224683749907103674556569316776235656695627107496261274651219332072098303736408982944190083231789850799234326614606617953181850623192227009192744960771273975895969100377473089370828696395476154508293553111375584482991205487189870013343753286928390271270749222867262191018905831134621094128298654930103521094893480768789098674259733466103968607548217862442014445254419940484332700192303254814306544561080917917173150859623304597476388705917571489692627675782330401109143676099532503622041003798969838927052286697176033317814285093303721016889001104739701351090117749992905909081509454377459647361089455548621046933717276803828594599396366725489015449075048496817850275849510586566967278994312186648395859311768742720597888808526238343652858582849838446382564711546810956407451330423925997641105794561046443450094314142607536747371381502543853263833887606569883981748424928692888026084454381966718629192970777369865040910550906312982940228754055169003379523179580401446007496313644021605868038229944807496721598925519950453064205153788007492974416412162417887769223022991574910491592976905615638434031211365311942379594571424646760540968305573313423138408508528558819663694509127332988681322143566296286387793332016622841398397538894968364809561139614030393849777114623575852273348790296168043050967144477307314556334865247335096783794708748236713078887901955672976189788543544619899591732794819187325955846144746197219642784090545339086684803395351336269051943148186975217674069666160350099721754429322585717705884074853167014583845790631483665780805739853680319534940399058315051337884808964796124725630938971529698166598343558822988912537195848277738127115692951893115995929124410022865737883871408646750575989518656251000397599538790603896565889943186889542689069429370682360802281127013793111916020433243801392781478932333333797250149450025611668789367392985587148861285172606292695930785643428804054629724579787840116594567690795856391473091328229257885107586864854673472621577420680979664099068425417475965585461775842844985743872157814350536869716188683432731509484837570362538759473050029178017400385070654802840843445812486861461903561153471629616608099341961809458816072717365818205769293842726104285172721552272056002384316754997406662219480315495333213385837911900279989485144436875862144084793042867576478410284821903664813686899614461493208267408513195273325249616224439425275487624838544844380298123109013801524356175082041792840707423089155642161329812369355856088754037355329442465491153330779051867595901806541355397860421879613840290779463213903760861747949469166325472257804570149403420051948416426997419272152177836711634536149212366430223010151383345555267133878066805107924739642506939844119566524493501011333044802974140933625609141248422351168554467163102323378345359581489402231431326244620826451179278862007750586884134989713277589170266763453078373444529305807727552807859837226506012882228828756654293657953957136979270745509232592544349915306612521328033925827335975628444578131452493856976607054150221251961942202600703142560627474593443959506541383973633949749547141162897661145828137648525334826219152495232749393358689691803983242581260109736774936853648322836592188099429487305799480166985950944422374127132761599339098854390890004588041569785327800111077215061515507604525166446740370723074585592378679524941662253621151103469912550715030722624800617810377849674954447495224434349009171764496503407759072281031516021397019878008792997580895195397679754527162932127130529150793914088199361913358221353546586833703137448462066018551315161602752901575001858415443196689383138270776450885634565425961226092801581821137082841992338005288156250058492315493877954100358917956665139420298545156983781927379283219170743624129211610903517682073027142703003439045875144483890234794893545825617067822953736267345309561337939441041888943660381106451591843126871540264988452166251332068408498257717894026568679467493866920759206985023165380020382880189546035208476694854605547982001593229170225001687825602909379277827994005067562619599306796770271090698953379282117874293312444201981601649619146567059747922942974260249571337411671354382943925606436690489569891114478717516838400504436360211550648033685348848772916665953054638475214812575224677602380802417989841333994592583688901151069930639242973741943711978845572229999712138350785663619952151061603444189755995600452327710220845262793862048847382197809368750512064536387692074249659312156011693833984384019376037947545913200954214196528577027213951378735794149442203220630812127067003023779301781543507484757542960232052607633938245909256906144584287286101451774458601094422497346339938019542867054037671134084401035194284522208250991578486277846899594601921977303257059439243993298570500716235821232945984535083772584652734081561013770192250940188327572934388032390290171828442136311983398472513104773456505911021114869712580832334702686260608456532875000954273865260750296676691232455515805342381368680087927139305738663802048324603776601834534334314206037302769316555750355998890289492547261285943290992385950322163016848075319289431039393437646669545182373748306122035656943273749363528593262539777727153508242039764631555690529063286337982019739251480456492018895271746279370116968769636341605851541998627320117385702961716601167357579636674323580894408008802565207163671705595998399959678221019222872904487167442689158704710447194728653019015528889517066887933411407525984752489727391650000606276354647381728533530605026643972123229791333290500842868206244734372900228075816958351295351942920949220714841317030537315868009751315107675577564046322735071388107921508999737268813310427655280985821253749317914455445451020851502666273535095347539861904724812895080096039175788300064809984372180673152584385600681136157965711302042590492982705231456954599375973666459840683951968245454491127841422005264249195585432263739724670110599180518843352865460612121780210023505953029447577183819799180383821010213955041719442145875663263455229195693482982808695614083407553585908764496262396156189572643678251294269702618999879923402088514881602986460077034228598766086309183602252030108029714750863131934951580604163452064292336844523810774195429577670765699502998543977192405332247148447289843134820891251021656350319259848895251056850001777873695957443623114081882631308677033712686578169135562072906246124199603166591763278913478025242039515364020838935919482660031060188003943389057426745373025987080555960697378451445413372159332311665608271163233979246370505279417038822333843183724265087820865847013718283560605254535664293350569964553239071274247114262671369259455687121854896005726242101634981643507464265826684195836211275419077936033320534923841149064095802992132744593170114381738761105754042491061327523759282705380351684492526801683891358351326121211677403724398503969927181672047338922987252829917991405165007044799456517565300342317014163700439772183356119501134171051267496446373678073110114527474376597714306830319428266379288273755909334622260771785637117047043777383305474546565868231751311842959950927619999046156243235532432861003282613975401801457635603368597021054665603389151233133196434402208721663114715215036413903150932684484395958315602943791486014750432730597275119454603736236849335136950173642984572455367100797993767885715472698405768640423434727091880541416478612108062236453072532345976805323230469777864714019625314702051401032223595834238608348217921920815669467790756908709010148780521357831010559353933913131489815570730797496912098004128212749213322208979208354941722575649349051903755974146740543373377798765900031387087127799264616688023527021392638496941250937124252030942268645645097713701871894940157489807722892231283547922613319159457514066937611724358558856357271610066980091546898322983601691393287779494893617300368764680626266363707936299934596372774050433959871437009215297008377622099368945439176261809991400463980835805326304214953327693471258636971594012782387319369679685217038588750958811879173371814793958800220027815892999390409806273231091403061730380658219134976367204043404999893779657593380283902820102852476826212067182779685213180287918943638982589081724288758675149213878672938690164828697923243677005382273468494057521639615379627801629858806617946835066370031774595301366604538096303320697947970671717042471879186020548726462287180757146275250965180631540811105692208072667847019733104591125297927522599727342825281348730218811509341644046399433807874261271988484728324017092513977206399529231220009104055749069070712024200318699202095420156091114936480059398242393238793960757015895828458278315313116111846755391934950570015320905897687316882004529494120651712976529074883969046333407528909834711875467583234149826301098882535712404560471084816104875576880032291152789559508936630329588646772601660750821763742940042679411150063095306912498755965884137340225044933707474219089027412971041208416431909842688063135193379550086464713683008929419699067330433282307959116548817290018252389526729287226286206199370530887385170916957572015075591506293087542837900010210893573901349735886658564738525272377186597612526868789834613078650937665692174090003015096676146198846655356568181576727238022108694711781889467767616200300410430432882138183577923627350139347094316462800481978702750626997972984045812831522352335681287868334571878780207514174041851952212874606745952773628411854262348954992569798860749546337908118024259228420100741184445923962137620181663120111286383917139185442813125309926365229037220984615959316292307980351592523775064472508203375687690517295037307081426973925345410763997639837737983662974864338556365934839648891941325623752448302639686731138727448724057420020103593657150936615439374281968064381790688362744928827839433508643611112163614667136352433142354127729546191985751632290264288819735423075961079090152352914580154789957090996692684562131288968421521149836128988901738386923159540034026029931860535750243454306404283367253862065246758158116118708110993404261013872303806907576462964465831829934387215876032580319015276833085378070151202089990758069149338817695181724562605549993517398169237165476021650017990758870885448561815648969400875436092090980888854634532786727995315289459982974237347614895736667794914049620274653680633804958641482229953405602836647193855832548816580187662184836234737448783618339223299106400854807493860813483287678885759553882938027183023030363410657769039415231375371867753274599333305901204619334420972185449334009628258616411398718101413567632656504165660962107663712930241049844076954587282609033974559538319610702841311436729592809018248406782774958803508950422854444117185295749824152883687910246138414203117275027003602594866773041473305357076842872275311973959635882252091874938489834206056208409233681444012852920574569037509808903028786352436382472321230347916411653836357531123649685860351547253548877946702180179211869791616706469839707736946775160589252483114670509845148874342783898033837117736856604412159610294510721653596597267571642147230147143446455635267624223909525327600225984724372500064150400675028813658575125222956027479642639862610024487627557752508323834663859650549295043777228099914700799304149886406707409142933049715883274659235186691660728518875887450947848060242341656896948378860027857950584608311799606508145718123763470997945940495005423531343391871822936448955482947407007712895449469625078241529918513698660614143819861626316300046118515787667994204119360509474557483884146005693812824263649929284877558364854938006779496304912565984305422477288324010432169623129455544789204014022845051103727146857183359336462596894722723150740464426063784635964087360252956848323565561392274646546590964869250142028061140339630259484586080587492595841881566984899977369084285697868012884022106449737535329073992762902155931669921713625640515032822864035151251065057294482493594365798546228395799623793651715712593624338765994160711641707076499631882665071262488527352669863992909799105726831488671582538043100633794870337363861823797262604273879734724480168796663206814250034549033082833338115372378776294186657695213942539372251090614527383822316940182727048510503138879251710374382259922249972602683493702525326068788213329827096326643054237100323354117761040324387858891769658454510651789834758936213395109009512290660180438140446726271954057228006974641301539061046775599610283467998650868020369606740229664484136212471457664898816553998452795732190158055203643902125040818100160336621779327937167076054420064079216791184476032519385810516427504974422418363815925155983092097582494020244350601508152245279523006667949302256506093689049162104741920828415493363645352562392933113613438923464784679171781187715388902333089012966386055903075803362887044032801420002704723172712908480869830388487468855974633474524990640133306138153093543692052533999284893467247129942790596859188813104199506297883802128075721028323134929300724965522126670109414014791803115979123148355554017091635508148360264419876444697577667335750774187315052158859058867004786658410916341560417511354350138453289162755905057713024502781614970622449124147135984730679088900396561950994036832325418914985560262746875901746134144221596850752320326392067581087323374223929592586382738028295104333009671100998108501956728139003713026829570725354199069874146718301998664992179417988320829834230540567040508772034014593315439593398200580047314721011364714299836034192064453628578376789859893944416595002525965119893345652407615472955818218976919303297654405720118638737821975836903487371023899432143312032091648679610180721079594012063455424270149422935275700203823640269585413575584595830387423844147999386923277975468293086785244427674190537492167628744507075701691596621419903855494009881362505949139064039184831622624586209093067957008313849389465247374337757352284716933109907392233429847478430207442356247754817365621376528238530557635105361082665415393504766203289370485898612109986398394725279355894875834475485813913928279869402003281373842100382849423940010533714767898541318555916696290658320199276643682274195851587709444279385926277641616274174050592674924207135137290480516523094792764728340611752599225541758553868978973172782273557951329158376806542732874839831881264903159378434667337796911953158638544455443707074366567815863913196289631176372309097088312535515202710039723012130328154348129477106110211263611345979356765396037020963451041449384667716903305227907825468799806733990079329379022787742208902286962603962316628573083104711820917372855772845766094023813637695038357263155073590620281848184036553357726280954859988742548660928635410262496083574311513352713271940350969621058804787591183027044895457403424239988447865274926470276590781866450127478869181382713980675751261948061893486948197156220937662415079018165620073250876417476132131143276497894649511106275604137008215484510315230469724968295280098148899340669821006108347795618288797027752500485763775386960525473952885677808877472916529028633668863078257373069516536293060499391772503373192042873319759041308270422597728746806270074876971888256425878398208084637521874423227377129680872115260458182738828963045460419943842101821858187087941201798906417237334354921005514632403519886024293750845424940997861367729952240359278926720719866750583851257628189897997706129994900148411199589292075710709497140652128069980261291763367708754577790774777092869140215687318404758792176049436633806002152215705937881493645410463685932603656331201237446009114767745755772100025459768526602483739951228290527299646801180024720258975546795163317472719619170019647501829322798424485787614768050948644649869583209103451912200987202560588203471712203401316503391307236014237774097667813957262994659829759523398817981210421880138498864211459997847548480633103620425460510341866254007910552849583447758752974204295366732318573249229443646154974500189401353316172300824940391962500124080662002580508642140282694808016779213797420481414440508118819523899609307145052910053581001953125667430052918275641545613780492877187747429170627061273877962858253732217022982353892001555731687006835553030195886235535169568746086979243315879031995703961158454978803602025101394158706931449699746781316561033693967421997076570231617148253118674370987619969853945954032132568503170513297702113635654065820646541820641451389508712355141525908427138975608203892823281330626108414940547273234038323440614438641168692766200728841620019196395104749261558360694087057634902893816683002527898026114846347408192209884457279360979197543331090711117479284219550614842635995016265203318433970942487154584697069153601574086586817224728772313666829742651349915888052564698151950348896516705081025920217420436254616346290033675129858777070681168960411072425774937131768101390543577266573399026154569076501949509233860385084313490669753851029436883094510776035648973339957368150235495780033135122799832842602086848603267092225078025333111071795037579778973633650874611832830448102638230386301038392865282673952940143790942212087468874053633526265972417729677026848938849639571813700023528977679296862378450777276156447235543798436958655591771715938899747317038864017663912884799731719307926738974226279890306433660651509112022554945274084695282764426064086324943162666323704188787274102252380501418987746354640717103109897442842290021385657680782324132241935517491038719411295988702490367685886252954406394249367628077197499777382652436379899893340384954975239082377974913282316255066802443743142388885128429601686619962632441295014722482255841069427923512064903998421872947617177045635803482926719768820824969743611379754064967312378379082743467187834209120822992824955936685028140776333932431037548425871830811664855356042971169492237692647271870202621017444373413184747373986815711564785396414752054554785020868759360484848985789768960900421473574985529181963345005090105145063641190187879032066488021701025590350387249564361786271888269289019101376554500418923305558656781717215840080788371287749042242508983675135204382813052382383912086764026509951543273495786441832627696510692397655731647292721382308845285377000033991541444769375724900645243152005754016860599028980106112839758616677732043124608517184630350169674953328495667715491113327975027240832211896683459895398598319990468415717232705504069551894403747282910184206851535527676178550765367527058407325006185487821412819764535705479041063443295964704868611711557816217153977640350833987814048829667018945751561900027535744089385776002917891882962047219616719306364911201455256952685041069415925665644078664989739682415542577624619470336612792526621015840775178283735055232047688461781993501121823935279092986218775261325565192130987318638146822596625694929992861799637453522089958172706962636695856765164047305576380419043200165017072886684810632463899009711903586773354614977629211525754513293616664563934954705484616850646492172376003412475458374779370846679316405195634228541477214312578346114480596928073420675298417907389456889978513951217287014014997393671746050967304886756920788251783999237637887117858936102572544486864700192712545513877808266423898413493878511316176944085221174339660437124376514190560676078007038511009352181240272468956083641797457491532244017242766269326683357601150838672970519936078775175482917989125932815141363036010973203540027021822984817809625239463976151524466525318019321645127049139541749448339434723988408103399721201545028422440433791554871155116466355161587460377347778450630569025901731039058478200654786624859358605233862822841288211923761741685270186339813288903996109357296759171662035504153182870351684553531958888174798061412891878484363320955522739939985965108930717243976711840478370743619815355833461248789651268966567430703168205295706403058613402258637755961930599252195146204880366529110689974403208775520115804590929754785328094182227094228791029424413865789517088332278888626652869424500571389856903475935174342914482144063118223470425036674783887498095247433169633396553249050029865639743901172954547481869166610392440931350542683058186933199807366307929975558529225650738305067886713746394014417797650976757338972073303382174629763483814146893553594365454884229047001150265690034467556904020597972425655697052124692084514026276442159916537924041401079976755605688874791322859022203430779359177102746975562299836162379463886774516597716982719230299650165986702387715522691546147985715401322460867580834460856473008318672242974222206810312355285898043026752496855646164755530100524980306699490919485317466618411042051790189353244401972620248218414806414474115519958381135092175965930156541951044689776511081747355738722354764840413720764845874253643503882917747094015124652003913102513949427104987084343667394458972007680132954426964828654280341528336355781133715900483255171258375050494953679952684748822506439016156023736585276174550706822578282263900619906572737482257979511662985999502673331880287836076548551826706920091605953018487575704502083915800591886898882710638300777899354729388062636520728630450878499175970991873018918346121414260047250763956197430149238452627119406021362994944757255669570606810751172436695873351452408916531528467777667390115484997082560443909374437915830479012340642910299656763611225263224255336853735699141480700313605130801631237055369192305548248508886793702646144851898391441783698722228525565864383222381945362623831479024736821326373940783393446256402373491961107550573095831012107729321266918540316231546919753562826574826976415056310072691984159881239250735225953544776087252791593390028732711409634360004634589303976841696681516980489034803769725687433033098851673450515047696738808363445833242321330267608776289261822176737317452545597373988214994076315126477531084537002761447798139122996815832412819010489447987203251699028711982713404098986392526425032919662047077251013822061573851670380894786768196742876498644264763315953414858452902597756707994704416192734894566230178775555142305158267817975888330325426027742204944861787079093912163164884041260305646123517763460907090742114718137458532769930833852278212376261269889719281973522345000288000081491751833759454027276274808036859258162319204313050831083894766237144889605260055197497869262497199575858618665140516676179218787771101945105676699510096467488827882594847832083119238749428537902721303463705977238773273532020989642961669349186390944819649543500625121448749945622489301627646473490132608389001750473162899909536078062415013366536351436577612848782672961840523329492265428548899753673827997998974677066926372423603349772483702380441979726068624568620696683317119255054656853199386207301656479382351733360091148712741330153358675134904483961007968365722953805505478512071235327363605922791112122378203904052819966268244339988033569727027396458208755621015738677081101761951896340055523160843473498237866681221307507762983422631342617884040786241731661980587013389873816698310596418035543447560831577606554984846160840882022051166824697781324376111801474074659049973262756882391365632853498273315333099592689550456704655470386030041466869308400257188083498657729930580632887640251548055603440822315874514688351286634365920349258742194932289738251400429262915986437580680056124742574216032537701938105753332779499363983823518335815078740763209528735872105673143260248155085530633656059225613628510503960259595471485182729505777108773693223087381149260277966605715727585750832954448529627760578580039288237069866861974932409667312653417415740888118040695475017895904221887456110903872426544325299864379116476160970523567686228640038351439817516553878401055493792598557256938104537791732287410059823588214161330923790167696618036099627650046070501487604888423820488735776921315091260399247863851625425094832247897172449210135968323593852821425863989588759439904973491139097933592876680961051032313405707917588799243092795034248921558025200983872017131711593488730996495187867747858901167525582371668953253185648628071588847380352138544843901611338929199405692473709530791532710157170448784696076570826925142204201317710561445195053299658160182821695243298958096835443394465959660819883685793859902548126621896408308355479196568534494384004433987709809835608917233084598991307153027972423391743943004068634217050486469375411178658576812772490538817629393983091482853945784130933988792650992069299633545948193552951732479576443134364585926209799100762523193235909742771977802967484373498205318435451172433143446658428610058759608690496307591944798163021542617148776491389861776377589709032871246279059631543251392815171909236684266978740711303300787376507444679270808346535955754196436621706634114380287894425728788574082347401172886405359857419644922108345283096537070169067728133750286402487258933776586606661417121779990367428965136685208796261946231776255066739870541179766724718740414743790425819983265438728660881338626741187991264992923073817928089587355702898811425708867387901276473009586194154418023300257255615777377147888492400098686686103509183131242458770851140955012487751359213214000986402775189359559213986446007520077982412633505860718189862698244333868155600297478604144955199972453192205350178256955740421021332654489839056568327894024341999444964855876854887363793743271474259808368851805835172164694816974804113848449064885742785903490696606027839717861261997454999623119553902755719708557718751432646458418626843826963151920593653741337396068814513379041051624836764307243867676916889583938908601239439203767604849278667087691669786556590200755828462097434408261189887168481729625405549933969659255107978674229631727022813519271321501143507798146522395776002979789688412526715256906547821094023575842716829352188778440031862165094308924999312374449164007402164417059939900365972895299702607376853475954419850702497222211858169508439352343470326556086536881498036129930586319646266363033875934634058652023136430784383151126410004514524883368887920772719380144985912471432853020670976552092491552186245786571585070881701652867038608159133934470520865523484340678158985068271426925135979363207313318309515121604948555470787866801505961112679290085642119609213982613020826227811672259850119448812220077082050062318171469886411110069528807465966779184272914848227978792091302354295161114525484465802775292936522336968642375627768008246537375616436155364709732421661779326994025646343163735461716149148192023654125745667950690118460078672289201958043668925418226677416647987574996735529113108859899179742520308971984458114054407026356946530764856699614453136625848640311185726686496271456517324379280625511890835852694924613114764155071857301537006198927258770966937834512277371076128087639621113924468407105330293979114247902951976683112172529893396590373526059437167866897188918269870437773379545404498419737286095050832349683872897289001527451871374740751268308820492855638115914596899755950047574875804962503783055626395234612130931824942615683976643027375671655261024281230963234544706962809616923575487341623183512287853647638281666337224671756544974571663162012017381114137862923101528897244879916494919764190925372309882105934678126225658334663067263704327776564432352902024665777654095176406219437653404030064403436577662812594170293707950161681691606690863869236825460675859312614150775682788555779996938677069752029964471128658682084989749478205916452672381131441183260935970359378683641631364806762351826878892432398549939017168294174431942844378483797907917353554430556917430889561829099603773467923048181346524426112748691917587851120707916591959619058764859953689104532021736546246730383042010697147217401963590564498155535952434654495750156149939581587459902927066422603728231792545199919912684706993157085221560000372821385182920275326316154826525150798734756842697285503768756990235740997779949843800372909800860678292727130001779684591012049038973115444433670339650905143219559655684488112155535097613039252449341217180622106121648699177238384598332709781637235715398567021563010562678081072457643037220806346062867140625604838242494222048212995852715996682906846047119699595695759807633901160883101198170503778822104399392079386301509456288836565543471578414081270787742782761064458576165335025096711422021530694345151686218857543052420403955264755111639189496168526977161919912667247560094307306122737578370424341532419188233827028784339163104797562649762990152044809937233301062241706846383354491559277582627015186164922759201342137181012059484543379568919937722011928026344184223150484989930060433870586454140661984598215136414814372528321574064571600379347220803862403605592412850096244475609709586291660038385885109368065725687748011183338288999760328229792343991533092988123659041315095611878634553142036559445818465898065319043254055988112260268856187316091259361050156057601768016845457914848441559876274417372902801061678306258623058689683862158347696958571030325979795055171278033108278294956877742239309274243583360917630028105466621682787599012798035383847873591538808470415023781830689247819734322504896770712655473403897738280728504352033127340675011939163973844593138829681657037160595535994389481682199133642214145236854380141191420653022260478745271365254136440826900471849368610434600274467717214193987088013741060748643940515748815717661316488576629750173637604323796684633229850779799425681695641043565876097480433702424996754740780503642312008136684231721715418178241083605078768007652860304091194368292733961130882280950606876773220726081120967354695379407527985469287609584710261859525140671118530102096921067318087464496003436630471332365090977297055397948492493520987482799506236293279556316123261036166339399992137260434589351640055383727700417897965754541101902171930656235443454770746891411623130698000419942359272232895222611700472202269794994126072450029237865076190108828785245513936875979446972984235109011012755151753615158139287111370234411351651261615621882909509813109176397643146023366035484837268564886945385654213588309943830563154450779288163271433027516283655246178556301333163190202485972985577660002823273109306808910555108316594161105951806189179615154396420430656182269045857378188105879082185686996697756092358145591275036965442083338654686723498908611745737130978323751124715191794639897959330737905480082346486054671207756256561354087749852789307917019447941350499921023956112371622065083206330453927306025847084155613058505398465986978134172649325806841613953227291661106697534884868637403015541719896685115927248866770905241369472518343942661333640459159542475664771560662709499712062200372921466197818341868088051560065738740084258092329060139986113847653987547074583624308513091341091773167091502577307870046935089969605879734473697801892643827675814362051850950713173348598274726134197294050701791806580104816467094471338155856742499265812396084516606033364944784963995489434787890972423795756428042064557277181299918080588026632980671119710530461862367723461625030486630318580425448385733815982966533768157356799704554986950629940367814916520360766835579632071043125000759961718993444453451562247699308211333962348569912659896747979102629351412673094464449420065165576373693301591595522478244945109431079480292344800353562180585935423899799565244243930777334262734355768501360642598213331978006880897267199968473960230588190803114796464967623741477425529132070239242927823324401892790077663515187981839879374462157892851386150604360508290485314909188757238017479603592990775464536928895001383174512273484400436628715143148643880444872864352750503446496355336015638849304209381168789888020491615951885716391215377235085931675654996595209562810747137468754439621191665953555181809511128893411148801845539955649160924472873271970022842553625944213138346975642862459416965881376365667957766445724901463802212911106560065512755001893285543011930591910548951063036642316622813336834968911655994582150744556198638887043484673121295414535966577770497472713349722074939946247177420591183510362447746012555228564787360070347953774291782660979860657328511668852552512715515234245164830028055291124595915648515856189025698713954751847518078980671374638122239997380799395484081596636490847224376517836714769363508007486681596063130819338581803635838151597539533780509976313538129817686871185784765343515893472000949354449107603106639292431819318600240435586713925485001950849072522696457359538633777349126050799059552799705488212826021165064945019369505518380234076215944018970743117255372266647706978630645305269192602491980359525251456289545852598591955807976324249460567509027839719298361282808340418567548993886517264271028829058302934700549934079607112301801955375830358104994084850291504951303646764975198884561277974662074322207948494427202977703914933944934077450970838698588110570866522046495178433440145035370443499933681291004805403656023836936468578156741122168473887299706400479196825439119536286746945937991310265612999671397766830328768583538150828912001022426110187986095757281394360764620194549356232564923154186106383319406104385065554546067869998986227852908267550346142855709028947071105818341754568717213857460240586582155396323842812323176187459037474177613164941889631572528856861215248806524327555080408346694862454959137784119648742977372062658189408780621009882532629973602996438180274385983502948144968656054301840517791088246272424293414112279879348216378509190727392701707274623533415074963632426862695089427750236495991336273729648468309121161745297809379484331148516310905549431382818881174003116370968481833980634119636211529117892272622522350720484805511743399514393888088245163903039775135886087440080567454960100928253190574444046908281275092122616935647846758235464571302829237409909780256708050339566619791730623577668105123941300437214049882431697955552077171882574661325548573342949524011967642874491384436103773191609014853783291606897500989850928793709274754347066132229394071761270340807487655386014623094936217103446513674247281115635330359719320247530811917607678936478116906921224678564552177402695392174614995723249276884986298622000871429510558607735045977510293477768450689401618358973494657158517520519008199862702813290391668475884272811824532314481499983517744025707592906179257243682801638038568484069490189733608664032172933957152102020927867992148919059306351190982180404235393100051859885136460737703266456262941419764320587388301257037479566141917945112833937087080758648421108498291854603409052512502888184413753813258722877235509354688063268079568531051740551564513004893981416126966636168682108147418630677159953219460746033516319697123889472640453995761653373575003372044679047852195363691536535340307941700419487402765664219876425224105837686187955236542481352951905838105627612651027234861276153270901133660177565912324712601575312690876873422347689239123333240373129302049778435959630702181728769284315587136467305097578247336456148976082272576541077952231961593031364879895554720364056761127382355534201464096432557853164579808258009719222797031170151354162231478454341711817651022056150407025616516743601611891166573404952562580572760878532131159720160622283684865150058462476189489972576213486611452152626130809828820694214295012512018058226686969569135340805514060584520543351446670394897164662181022280238553306066206166191897146495040731087003731184310039304305348699607527691887327492024314221655305662564747650225418211998581287542969004083415830413609391480068990321550883378096610143272107502622253740840583953801781777782087978161424603682760151398458314417747193838318382214609068207254985925870951829756204583941829609032278408984760115139357084445982485478978655419790472243923492175002261844866638921209916961806955939406449252495528280399920438233637593139091364095473581061087655227808474239857037843924157059202058902579512715988159333555694010707901219728238064537724124318721037599190255245477919201013291491216096585949566357928399359209157559982943896221725083072051204969640112340477581240060179490676581868610498558358580659556359929788239404857132398059805268225377606673181657938981918153693370747442061928410189668345544010276126223230121567243235355275954628067119649920303337772428254487198152285787430885084805682605523145728942158863321762779313079886836257654450365947742329058496217961630581748364158760614655378631893257030617213282926810189392522213695254075877699743695843284802592205585859739531287485746147689588469675573942700569391704221600874660278841104813561740216228654211799252453361569918605966837144133891094943346622768366316489593376340736690063156989167704201673507260983101028833128757847941973902927478558133151690893429007683621113094169636143799235119785648085098031587895046147929966554144170031702886335984758691884798745225963762230891304035486804284308847332214551712081154563043117844577115270300624018530155029098209649853729812317984758873156028621365905305066061845640029218569714729964381317426727215946644102211902752695532171845114675802459138100371572722687699935303757811574790418363600606457534627795156349639449567750695598929224614932269805728748785727137919466652401902182712093773784742573599094877287519518620760785742689268854499069040507736144446559412115665011670445882618196763332364147261428995683394434102657170797410121055082728966251913100402876455715088173101661418670397879025183739761553901466913872641759646358646681227336375022327489826313006383853722556023446053219042322895761253438291875920056656934182890649957853884647355912492517181404313284627043536829165213473273247321013817472398238816809385613561854063105105798336696386268515742564794380321681800311295290698337966950799756072271352703833149868219753408597881012863421064216838432076463029334651204636631697544815746309374371582109177311165642208300817458968115556011724998681996526913149234877163576250905823130469570548936452398306018635923863761911868741343972569095935050812005746118645945273871505144918111857701719517332796287143252239536259254699776651940964182283823328470594465304384895794701263138639669754875531034868601175194932898216100868872385606604408764041493338408387456523963504124355540638141836839130001668793684370298424631936047946469625045434861762086239834299071381538497503468813698306221334131435019342012641544561006994899872263966119721332322709337392629652229185564850999109016468487980849862681667370053922701978231783337242938812778553606346080059851978065122686342671702070704001515891853106444128764921239601021282532214305588322514161410414512719442636904124937126716160674094473589299682975969645988121711820273184668860116228797139001945406131640650319110915639874235625722550498455350717125720568215468971632033491007272302339251643370622596648323384037983435353084341092080127649996847985290869162377447430131475399746738451396631680503123089370796251776563552114304023379169705965634112223608351613766598924311065823358315503803551070547106168266037840171184150227625144559867161061342375958683941614422199530482905261436063144188839514942243376441137868448156236461894695495258748433025732249501362832158318319224094621506122589972547225209355501986523160085656094365361995371896558781261052939340418140200532892933347232436737221545807533953706406095769905462501419649961607089418334135092773190949273868714626317888484176597967190090422344105104297013671382716635268984412626811767229731118546399076359455082891751111722623611541563914754967939224976448102021137415393403494170549256630846955317226074310079895628360827775555023561087901916552626687991948439443584098071588756315326380536348073823962732897818200687052874811324681955958506604223376001597347201355204227851264878218992145166677321215433457449026365044870909146614322802934121487447701132142781541331757524504732211101257784570900626023290672914744098763067507168481691183116742810924447945100188984758601956266415676109649193455346297895231147014194696476863323563097962447527908431383388217956123764256564342576124585469558493320972786070165499101500330391164964007463319743697673348761252367404236639498417283941965651620159110069862680781621359860858821101532762656218420354997400149630410259385349136208629474644860867420061027222966771922779610869564879866769078034545344763249277815566484186249541962783300949864881576373750334365922813615911513496223556161664820783762065901828987550457912223159634639859960589792573439870677918281010966548909945612521800721079896661374339610008203304655568670736463137526484807349878952511670136832828455896755877824293777021694128157691748987095810602315671688294740948203385292966975952547740180447349513327166443426471419022616671872896242180313943901905745464905135086596839935787260805512641380700618592335830071716758424387505227682127813048924459793419692360911748733584203521856362583103200733273014229842163679465733553560470959431659274418761035280889541573912269064642309258423151184897536368373935204647000104096132633565033200622762829943139127420858044581223999962395173838798294013576579021954389847350891192591496176806102529783050962867284335547672599628321769355174485871331847576320542512568134950782320883653166009599231838831275122095677724683792669716472862301725243820140958818579521340808888227396425294731530894878164816153562480123908453677150071399607078684509033951775461987873472633235693730786912976229986739737225439241988937771363477468674776404555855053747725319342457591968518080488052031262245802919760805686862319376054964133430490883762859778370792790769376698922189121063146696147978975932009288479290544511936357819338988078124331326288564368541798548391168536569269892397945336217686005913714536878220100642587221338213608061252105219030969257051934496443445786202246442640039516052615633265557721757055861628966084750210209351196225226158653691437975028372834314041580638302512440993946009373614928479021105649096468459694185437653326915977891576191796754566473480277530245937766877689443371471468126065775583667400159093685226531220022230405345642219211289384538426688229036203212931015399994557961872518663765564296385171288043129081528254168865054974837059648911018069872031050864616591068622484691488696363837157977475549442071843930454856477100041505500514288198842605430856454291384380677599553628162477708644780512195661264138079887693248455796153591212931456257552618150809498649229801430549148243889153201827272507860925022126452504850608110978061412877123034576145989947860135078830046068946077999728407201775294231695657475520169816400409863980578407422363396145581789626401328131863100929411181032504159858183717977566700503337373959402603202294717806690306144360993301986907863702965403194355496077080855872768409858376527459044371999389464570390352290484363270780143869921440035750194538571924402273216138767593989519173800887751475586447925407119255672719703517559093850939967921798610819349897170068809875747826859457237291771247550269087816185921587519206036705978645202952051369100603860485964433124713732270430631809106552131394107946553751714718248461234570115437230516888232208462582342427935527056993444711356944299749776067975229193858850936896875147223464558914032006963984020636665020846945162527407108674142266688352235041956757716529356217793157152886379772142341458158289062941205302612752739458730821983205136426290075149080367510810173625509958213202275374450876859061808735145854533470257741770468824121395633433220636577593403276669413752084848312478588598167015775755319262491749147198828674498438386206516847075503267303486559022018882466015188293360318133348612035052395726130227720363992527835927182007686262789847140081625051576342680792895051816024176583980352771150866194546053766086757985314389553597744502197182798631386357868421511973954614090463547806919938874651915520263067142905643347625753902520285635648200599796462459959858741946623081862095603155563245383604045601357883929968884784229306665942365834414705757587075165181753924892731227067850325980978425505145575227401093994792577025811695739849494861904150751438075246630124579843528047814919381405032298929693770433192120885690945901280225482954670031266057866800772721366297485986251741388909660692191303292051875833420613120028094732061535526299189765236669254512365537069656662480860508613627740075033325044590689838933656193555527580249019576291510120092193067203179869658974822353286006201346815465531373600588135895071592535171124984130249777303298322879439261372334882052146696946752354184111903121320119004694564443631280772525283924515567572535231735080145815991045899491918871446197698237000305551156330928651078342255855185934943403938801793675053135467810826448961762546115967903027371323023584552975812555119335344448527012007504552751162482693130837563875861777308797233656187297228910822390072616008813875643174063174970897484820652610336929452071690774345633787033722755743944707678931763604797287910367983910887679646510144000803631814479619879208168187276468561313220566898684715946559374688910850165056160487868332826622357752257197149636029922230355360355687324036869013923496175173608348637389857689299133172727965680551120857762351723257620159682435238416127307341466139425399638242047825079350044423897410630583979452250714547788119610166614126653590342457160214000713625446405737488198080597065530646323689927425400784611615419035948378805117636641734171810937488084084925172118753093959931671284498979439637287563346324396878788867233221031093864523920495963760846446189171087960161389094251935746912524404775114651676948994526563188663123606310573996540834467759963432035171856448873013396569675345141968512924221464317261173994662900333106742830437998546834018013965934038054699581008575158832226983978163698494638848193010785043530989928721710450813673646224242731077202911448102601199884448189926528590280017302447807782877468339979469578787440570457463770682172039665058167880409757144112799767538147101190497392632715593794599457638686768290890130067153481029849575214037658073701849060941241977804607797683099309376729066003522197811471796363408585641459248585382501526344827543946482873848075265400595588814014537082340509309366980825645888415641671215528273172425756994017240655691232505683236214294912459663635985232059155157810161210981486049444452443290623457615624608778448577810161243537481560489909143092575744147641103325191808639637973576958734727897416749179812257268376520549100267290490358112889595784543466303848353668738717648360745910554025618847586279083936659760733314284957408894584418592342418189307596093837602764713759326341551376578507529513164586726580036698674519027275692617798151163709563100906908511878154282451831607741545369331782967340610588029177552000493371955195639508376281500181402671551353673535355858766800876448346824685688272912958963322909719585652722868900391458552349416416445887000505630296524443275003738862753504959997512070580470157714549164513354548392147390798412335369801589039573027482304343255534620370566478355038035334511533593345225049592881030618231682523761966618522035068361170196113505035134021174750893614478766496285362117431552502225295010418989035300844536164670918250575389141151920321069008408986497753606342774545197411483518966841096147183555514394381722522049814371284990249666686923387365266290920775043379834493124334458837124413586369995880144801955050967314664898842249772673818491824587577639614674029597486362625890073513147598268182386673460250676804265508058975723666640887463730551148665458091095051870616122323957945599539082964154192395311876385831600828297203158329922985000086439203173560728890481672100914391878248641380622653438420645013617472391245958087054286795821974034033818593386781387136811110378786568898760514347450375858140004147156219839309977908473567558714108845108429931526850670880647373678124033993389221705619603104974784418817572219262504209624879539383097346866437487903838400271697916733740963547920577723256000893416157459445251802857616060483407410963075645290682306760688859752915645705181453053689344403047587630773905426567584248156197953484130107724022946187603288005036867128702824454819905872127562010720545233842338293639225812616335776023878103266803465500530954450237914712220053238611556124700199612483645204114737437814914282642912379830640623683216882170009845536060130704410213711865461355044681956530648383682506627434653251093646100016172437172246102927300898471721103667316032031652666415692347986833344826678199049409606614174216493455043377251518887741198035952876659403024848771986182103241754581454039443712966368048089887720831286356609138606052688750127599648027497969129337186703563241050731726812750307684918865146314778906698639672091801496896693511671656206583078654180128192767810361320084721187148558397030605410754519723372542632943329482940134220443506071769080040927635663394026113564660266153051085550779387710433380764239209721622373012390181465648823820932337235617891415709940360950481446855810085456792172201253497206456640474437493001697639178757507920966523041761064410148078856250281357829546819820200816816193890967082792446074277495848342452557029837190715258525051876634008872491183309561224096431217844891873876985811882621883835741782416447438532772795521121887991905087285421210789501270385230859839390994831970605819575698023750079587082344573282567255629807538354993884615256599974583990074143905811976760505054074696105259164291053457653482209246274741126192682467514285625417199209186322971447403729032803795671583710966824843522472168036357549793607088604184070922119223549396944087325637057311537116718709889142273264699680337080438337730894489286408594149946620236669862605451061817486073540890229958376055192910161360483148608695659865650077324407102728775545803627667465782825465639323208832379826692028007515787325578796748298086656530212508240018186967319029505466365552166269372969667705635143427118708471922124225673782298888322244988300775965386118836893854371419715318853769779906346691277482850500578742721104305089604503034354101785584452653281394018768296210845524458738271095123499171949868079758106531374474848324959335540771874439752887685071763513607331558249713411157736711465528102301384204380200299904709893197654113118744237201136377194264000729610639774887245573451915362259401939978107572351185894966278530036794974190188185779334256087763650875315075978205085765561688316954309147460869685682744215456473203407409937694439559874237943605933628505550798237673204063358634735897061150501816862700993903218714958816381632027866365350332549580004582844976279066537577678170513334850903574252739021523300661567306839414936227515560442095305419123854307583148047658365237744264666284715654453851071369200624182367121252246304086052481368490463361182987629257212013966594299691463928048383327731416709437282177936076272034303003879562225004234464831823486273640264824966380093898040153268368576659634708884079264937258123318602171766256324325684497281466254651677744457443911877693107697483767561829285833002713991334363812302057806378495943727601849704640441944724053825616492594558159245150021191623463571784732149807697672098792466796388278122073500023139409072037962732547794410821180061395851603236120705720866610825362532172950683414482171395558659965522805603387970837371167656351760472165059066004307812213902593544276413237733513590078294589241371903392754335884281308962819398665906879771181959670131570282203004171187432797579049748184567987413978571910945936413312401044553943243466727327463490238793457727385882958986933019824969269557516450223023726488686078132916841161511795919708960703579029200511449058048818027379827708960000094987364687194720818173826945226797310180623524486142985187365254211482174350406147795229562676449738915927532577762175149780648777471575073648749737105416137998279795967547817332577611786517732483367540189644661497936954320464099559214600514304722713251702102376579071206918090052214533107755362833799902284565797023629422338350969425023670914856903547720427601948692984325433820049280918742950444623952640607784558689747146679610137688449978727715432071436084328351911602553116382214285306750325998951697991579941975993544986969975522430131356667853814835961811401163345111886027825826998429854387965348485202524703892850509409450251304622737456546387030597310804061819971575927730578135488773931627127240656411573039585074796454927513004579090572506294375677233502830184994682590791861740317904032691923134217261763482273944559430207369912813208121246021699352081444585134026008345845657495178711162499446125262239418449073892902074827398220372401464498335332336076960917786646940367963991324802555947144956511364948841221163287942078944088975347610795857428054375552133262645599286835812566043407105923679931470585139424495103488467203353449895144872807628211465019773054996577607490282809664318942696273271365476413636830524387660622686930701519178853582630141643006914500557838248958151229429486816368387889036984362347846608086607800529834889333096457359066151742648453895950548541203967979428806138732533053130074516685151549060015454985663211530760121791649796561420333744958103686418392853111881430585700030054705411682330682739917918569138080585504908546105464649451060817943164347930305755868830069374713374437028516823201675452213199500052102772631240925211920475011947694436679813260281473799271710746524130437741441964762028230336627792262945215971859784385083978839570431046773899639472756996383115561653342441624520768829768651578306833083402527038251051943823264809246877707543109641628374851726056240074090839091880252891432112575894671562423976229789474835117898518482420516529645331127806537480453980850170736714501219572215507749735369962056173258428377198172971118161325927586023072043228922429473499156780110994993538437036438081478603669651801577474106939951086783574030288127956909639315909341163285823683020259320058712223743611055004789077546707581509853787702695815384573115548012881893814092777524483040638616734679417632119093484770634345858768066989145690041551015508490629690962555811756763069514425013547488728195166754432337671496937427939946816400272098308578537812315149421139586887462884966904422477658014231800444915064083782350862499514095900600808972837630759105576666965660745709743588424599059676273338872173081772214547465756758600689021486402669516647516484981919206056402331142213811399362526283566433425978741880044052074655984655998524724309280515201489883399141951875851137082687843594634450499757723258064471609061882299243685005714237203319472981199790186295235190673326178867639508118615078472520847617995938304205599961116403217176576104326594246396166869612602915443799832041231917816519441253187819083332809826971585474497830390035486211199440988989228104014874933967469213208003331192863510457686258112805206919932585732019672382091726933346800450729767336034845651660837018213914762071318253805247982834993377867000070357294270166285997041402087186124246999165788256735634553536737009698455137924904374123101224971802376353213080220623101275853335581840556519380851715463232701987591292257703996395739233768345997395372598856902923679739173299856161112782569274546587345987542754764610204302787786447237455694879583920692015655160967356680035919214984875219902266319092014866926930987244028691870519625794108721838963857432478998862094804966597209685290766206995050369263392905165884595016769733514703805615295802299658647024052448618022960557932093163543857079067690921611161073713202120546308946218252422041266090105451616798077019938355122306968988089845111829584706915704112327067756023509489245450014993609742364640887588916430161594683436926970941268951417445206085776914866485660618579136146872876327993979286437716549963458460421279871452054910021596398447909288905641507666378857981874420786536121866812081819765658226420007256680954811806740375278268972959619029570868074281034436302693650351530525915676104617883744113780459604675707685479849239321093189662966577051468688296732741306604867770928676401975469301970927912552409949313331327994949707096301475654961312051309158350729924600088164715507571905105494467124852541814254214059716197260757415419191623746751730654283403223427812957120239380679681637162108169076776398005099638557793961933658876862815285102078855051043115654844905553014269220583867493302556012608722674335571898832817188482774357722840493630196263435762940163741878267414790284653085134704093506676650410448130480296081023881204978655254704687511733439075959336419073759079068843745097602557837674535065919288727834049967028450825354647408495451441401049208634220569710076229432446301566720937041556643198601137496583600875994767287096414355828630924780764010759371782204009191638784759941952246153895282669791288108476561531896051944643885963728337845613094948828781760201446991185027599951174992569983753920066648752130688789258094360393156004187870027698281888838671922294556488442460030906324641548585579394167052689534836226124401871213568215670607846674768156821923747013163706819134052056423542135700634265813354244059836077269264811213963505750920960563614387364207566903089693469655841988370112676697324345026775211244554274623019756598355918669530459849394293600918924269882807128547468678145238352146228429810467240864651551340185758220419232691702125472145018933651349457081426427131164796102346833927784003021862500492160554117991896837850744372881754985589995041144996127332163590040862007868493296252055565806072848261338443655943244606028153663430979909491867848045028433328471132850019725475590983200108085290106092834135119775671838850659662687026978827295650536210058255115683123857766891379956643565755903408593108075530866069489192961934222874403381212340876501733197132164587977561523127203843651263018290351647690398732818781797582823830666787928631085985808507168245489181666417437588371156138243213206558857174476431452003679553397382662249425549771493471494773914396607695587369804806657031460860543513127524740065326033110282938969007040709704664951400967069996402175988887616929750586277475280499058836345718104403113630484100013899937172570021095548240973496737839616949869438562406226792226768805649049442984065907056357492561774797028633171194554647756369517260975652248646652302700937320533068690749892079994998009588230486564229671534401445990931858959053241203433311956870627888116033713125582378300322527560599796585947977870474787415299302724155870579109638587356265582225333808567721629216988586112282374934053548809052605446818755793165218186597404929092107518355600508297952307921309491950817019644973516321266050182645954857776277435162466859123669025216210596530996205944889586400766573315341310356874223196986987626738086857100909295391583140576872252507724575047065290952078542474116462350749977646362545425157424417507397272028512653664438552908134185225973667118064594048829073416738754481217890319112762065312660025678833163891454462196839698129432649475205039422858106980716874554818363193228162637180220796351852362503557766073917505196306414502544365634036132746186026399631642978750240972141954119411800758455755779330544404064006885896444926252367110400152717135294063125709560357850211925350425339340491367683991739686222379267583069674340550113216200613438671086335104426222714140136609660156517992963020017983166980910793111001769446283662880320846764578431367508602604726208004968806919019521564140031175181182693862035222879702199307213171604232357758543437418840229040264335725091566390293418443193122792021318199935109461273778027620124942761134220906449310443537214283099998375473946796524536431588360865218919494827429388333802831723620173279549761321881095807621720398531855662670877531567744618887238629110668551108865164562917419997147375955254264657079338227627216955319282333094122122959714558318599538104060923885928092046569459513141441317547676655294779486244054674764572527219329423889505223965708888088520318486943978777976849844263212332320445537813530354734786018630399381915224100341362451797181277474136337122328570488283298889987622122956444883264450492420430721190727242592080539872075510174114234173586847435212349250752004279905535329160705679140855454438373307014840022244331476208804823933625067320745026726084962953546758369727988119592598879700766911545326823601801512487757674344491141010282766606350996019011944686900904150888647212681237913211936953349692814767462740276479895684946205427509388997701822120218370856793175375473421227067493266132162356016061251235200634155720272693964891903170183876033705550210120135244735708026838290051635337909813979252241928988916916352951411200216364365337132337513504489347939484074988156325462202498054951389489181830074787093579893653879950569476498676113341306996417490623920472626724654418881199530626039533582810895060607625298268458516896188593132364886102349811942434154436213748099415991527882124292291273486736195662470827197085711582053891532337655413886166626223671562217509041484574027887048832581254258134674185707110547461792841435771679096960529439230513703899836251725446471230989910277166984200197287248216829434976166164655830511992280106863497373935228925241663523073495876014931238989044014238943192086683886013818327062442130154310187801555568768715298403973298750938714037893878620927021076304982091946759378233278566810892376636893512877301734580053452826788490889200020876260993844881950391962257844743452971109584794018106826614617843013225859371810161243042288350964673977712798800300815545477774892777198555451080329191901434539386069786469775265493951448812054611908121603786074926562753898548441656652248207285015160708317751756486659102252452556608377471309210594826674579735232198845504223173790587335106662485199098786211696581424502702058821262692597014222470272573297136499730955157087778417605090663250284190609620350527870549614044139174949224952269412944028283956123258599621388546311234299879621564301678415997227491495918270731663946916293974718726776823163327767310271723508375933879034996400315522380892157513722263142240577891779579753152273009386310179458409045687132777140503091081727353263476969387007232873060226328259150866409205416740256299681169256641318591296555732890679926894205328098181121069609651586001531401030271101191423766350352839800612846921741749423527859952597134845025152537653870883376360034031722435791667410755661925923509739303823568219536071403893376216223123375397319296504699800367834431893692137587984531123608164920183408897260678587310129455529454589684251681352223820070454593678881734090359967945083618177328993931788734661058195074155176910388063056434845209578122407132439479242386982505433275430197912934483298631388283624726834662724111111317732947844678230920601252095536831457883869289304168731504463015167573455638587571648823434972092798944025831658210152655184466901352770234690509933222457360246299694162907227943528659239597455087600061575489962319307936781581126048182834277930698885325232179451054554094876013571751452856519803754810673562818274733648737319765354299827941860907282936814853814776094885298318612654122047243783149530038597982340114258049940394911543744276238205082823556703434951431822813160273762625940994079189243718129994758392025077561443840481018992915319240994709556086128301143608025554061938016105404134813167906822275232521096882359168233328637722981333868598731741582795121203715959705489043182970399730576259726507971819107069652710435401376893741381046540261139580594044883013117681413136608275830338023065580065277433132301375866046166900925461436121416258067906759158904803904489071624689931869109689774305120994102258003297984308630788264868533979438102225445827096155719067338672443060352785122278770397956763425131964318058643850471851210736531494922349010385661745583330656410668393741849142622577125251198365227240484207093200385102815894709573243367234888102754006541658374985669043414031846914853918114494799057000216040870685225965399378047635072314077415768778570392981277812373647568467247630496995717103605787331190482538195745947821008732272911967262303354993260375228268251180341357576783833859505631884774363825103035874138769715751626114733387583765355295379031021391099476020040883863473041263210213293051310804157726802805820346162717790645856143005034751042792249000356794096021690232844332717696732066321058901491241207222427964647453550587941305511234020394601424020075564263476787039802879675123004365210277741034421456799484568617824545060555245894312867109011695661841858335057129076104432629313258193030436492033616586691246932423932232721303309883135573685340917182294755402739637111808579636022081701714458612400012584200994575497264158968956166634623460740808640498332430188966331782231644543785301674939772466916290379992351812434290313664895276680324039350134360829502221618159019238364669420130253872153514304866292915845781656394971563801544318818460840130508842871252950071207989943514521325846812724368100407918635925654861588503249576476738507082683407495270018974363219511458723569183537603061359391199296846633806536625548288161781633831403745885901559050306152666805616811115233699760193942108694687891307357133213951261521679122660925828512343911592513229036721302294566111042839430671077470135821378729749050911460203889866162534595375406355565259568979457723204890188362817600233444599287507214323274492680223911339642068760059574231210355294459937234043280697611725808295940344947416470714946960401204496625473657173189101571852251714134028718474116527215310675913519690165771466640395522366977746625681176824420071932037667569412797897203576039891336620277202087290872138957656364487018464444401849634244638681507421753093382570043534733429318296217348522407260154254134088748099719535179655925376255179388073828937911989410543740434484915175948889503273944607079392124845713943946371104938670366373281957863745408127139853198187385595853933539457766087676609998699169805698013215056160470589984181155200659805882836907919865621151991922035033766034355557935648244886906649469010360807771568153974640405165821539984158191132786689174323877632085373716939621225826770016433438130669404254689334908231326605557745686878964181522379804419686202640285264401793571928833357036305977818795433315307712193741090906969446988671975768506529570493149335375552049114308371793401035309068685075710284598874190587786977144117191176028209353978374956344597263978402019871726053303877918199440875326603983583024815751177089284367226955307211597060000912418805213871574183426606657420571581021622954204064626927885672290818991542151602972439632899484273682821608870249047858518446602734864267035692728576052855398013313876675419632022294172987619121915581414812535979596807765960822062984735902899063241945968179320996123890304599419570169919852495297162403666016779515241064023516751595169583680822205726126220968714210995258388472770856158091356453595214294023991947593575855896801195145529374441041270246995687080887035940069268500535511387868013704825848272966622752214979050873217385288857272364198841304461099869998292515482834015243991620532166775896237590424682941198315439081706854180470095694663784067825074251901723940158425946118471636472289288581382187651285862404510834946367413106978834380065546960268312220339188774260121756656699848713834419616913829048131889605112050758947473336200983882688694330313082151380487707458476484469578056594933012894466013165154545271741054032002986576501851800155577964853868152040595309727246982018999070195283091007503741852955088201684179474370367492425197640852040138099174823148443175330749952441160062814623898266344606841551269162720923384445808359864282423084605889774882154053564381731146245058700075178920883652273384988762112436750876216195460912961806848545907171955372710735191550771337260587196274290562347590843072525522922715237543522145163066009299871091985708270529009307225744473915420919196222748471272239543147769364598062841169069154043957485519636441589115419822975775369261143675775676843315665430512884075499597322115525872401623529853754055721854023041882480354567929202528386026207275239053719758036334378708362781306223688889544782077782396698122807555976727988204601460870703297387008897588255133735492290711409421352611109339408407549248865793927117841496057085352542985644296153898313939249069660094245777533873582054525253320177100347006223299788360188171699501131782789784790600920133064131314625498171704501825415041555643496948214653551119268145352442699151430134727280642886181907139991880160783725051966365595041057987654791694654917205112052663924738415326606571477038298053874388541322113471229839707922591571692440399583517321586399134172724799407987305643373780098901879805565135641379532589416246730805273133924937018263397133523852077921781265033752674743794334715449738568179910616228258883382230765257545733459532376438050482326854884830454519168436986054077846332356212288565493179427686626885005926653080262411339024915122499840799591350627679306013167406111955054538714312334580479625286998713417548001791764494680753559850955665026351691694061208828705605938087052890797537280625828032842921808190878585468086622479598973049426835899771780521925635546308045225737963339457184518717872421220081693331628928088869815842741758642893033074879176232343959253730216580134564692074510236086561305423459103516558090103742467376664692321559826806099458137997588381645572070311739360453568164649010126574901564599684448352940313955780212048062182309787142738105803059086180552827517101696045497808889880875408848410136859552120454095480960005049431175419324291614257314453574590112011273640089766343085327650419997081130083655891813373487875746492327354240847050284079353725892628112540396093190356320816056622218876919400849125866068388984677666777961063108160139045844224231721849782842358757352703709400590012954939827352885249974581435085754999479106858387463771370872278696778260733903208468202950131000820930741352467655297016171668670775575559303707179988702007923997738422652918859550130554621256647361935868717640352879499935318521736346734130067062730425945852851152719549453674576454271114799751023468887685828953676704165424698160398358224412796414311345976853968021041935125639600455053169298968740166030054061646891440322433805397203889175864675877996072966879598052218212562539004433861782196990511095776190540928532297236262469806157554521242326821522180067639167205371738028661787198639673217568522121156573271350962719411949357452870376958526995406390578333270596662993510141076628943635901499291382153110190553590265773797760037951188945732235593952968214777453000533518617691064203009651378155416850555054223260530776722931085346088294529013596222810030742284270109356004555743652838361602035575940940013006755881828372682321574430008087037690545843788780886956591776121425462266867955007471666423776309594597276304748428460569237424056934557278582760011530674084459231268834731600502928225832394822236399833823209923825440473366206863743264494835082564663541500269078105846320530911897942276720502838740028408769175566606099985708959039379018337648903790849706613875075031702060078277516015897551244799814412845206986211476772046733598637773186440584093098216930471773097056505081696695119742379422074376377284773992649855267372437227615411222832612780798656576243192836012807319203595260734294683410001202592483526560122765843079960000549167322639207286438933590604213455915133007800225627903889929256387298087658310175941796588619156325136405996889820845709374784234469996759767069884406112482903237504417862821725384921062851305355536165427430693813272387594251493421040934584380631115155811092763128595523681458302759707585334787070866702682089255773620481871161422849299028604401166091543545751883195886809528754365709780938560562228061382973258637799785475623095955469122420403980176486229338213357183597751241340598822463748140980685892794114412472192777760006197997401940699419088138940342358962222809359210329142254971663243377414366848826654796037366137661951401460849449553260951344935352640477505396086882382648789801567946273292476338488495836404823098720499442514284756745056049089685495477686509017236723846647850255032590826611102040199001729724217625441339861536341830728585403711257570217297909320720828154960490475975565200851191808732468572214128189494716268089433030601847584706041807072294427914750217528794489033638892651281369805344051986888667136358188302549999858587355400557305403184431294598855546450379627320914750010675142163845199616239230826210984944815014043361773368405903859374284005336611327428188091255105615520639815155317686721034928058543805903535807451604075504013189584630542905456902110598146405765329150010457318355683503952770762752010531623300554517062404160615226574632900833496139921404233872573198059645469629669863261986784860554154296826449778146900397994972943463981463463414059600442243499031218596343398048064618791797764379381882760696596694551615834897162857191335084407075399173066303376341496062600850304019451429129845612768691679063767850803614470275997829101943348123899408180941605734055127692735991069700879757217969153648274460050932018123911795916442612889099418660898616482151440282376572277464419823360270386964890311635258619261122368888792281640271426746375135193609108389397611116870530337408717597238327932348414286822717543505048061105550956790646560138495960824356048287045978194733194024738864040261253867386543573810372400692586900297046367355333171276374755341323289453370614559102687762575164417625246831760656922189504123033520855218486236905638611133290865399024791631243436635484726918039261268238062126365678725344757612941547782580545180171204868601091806162364573252942076958366806762393023376054293998541562950436814020673850730910532687206896301217669851084809643102644016890059994553648338860232497907360087512883783526988598252473373686150723887631446428009536640623218846407492475766153281631282240728158646032187624976001480206832160841902603966696324691810572507189208474857810634305585005661197919088068743658153257749158504798416678903163199211718589027335530436386801461043161560383405540114600653812193114820586820410491296177282411002607832397385970941295174541827530947353059050298443684024271710300765753541425511934873666047047178561743178300572688977368980022616044758469595392250842806115660723507211304363958981007152604229555480452798611374854258478858977726091823641011763410589188387775376951962728441187272502539984533388419950042010343318306947735685651633118686348233443916653145359023586199658394707556164997435061073090862058431893363052362933479680416810620573457179525191961839489421501967673888538722755202497781619518220672840983223459052613023927371191328388423893974743108703453479177191461080730995969446382332672094949074661978888431889410513610788104748330055859752473375008590099198637657226306280275996354729417838741791676084806027623644706374071605591330258983916240042630965014784593854034521768211465196635404286739064658585786357356513199439408758000816201461194034223975624479291209183467385488022534319139593884817160771694161895537450646095894749159849948054384980593373714082576137856958114252802367533072830876627261150414239632951459376748568304622630741911559260517023556211490953384481330975457013399509913610964306849844572529688727791660690519476192227306594306758092663446840356393421583197565150067782042129006296736055166476227292813673559299731893189741652000485704090914120219944709239769173318005636751774084386973388836773162252387136495802922836680534750355102844678175111095714082773932103977274999460413256592038069000662993268966631669121533140690271310082782618803984948004802388767089601222526558856248102321864641584750894037002433886355768496886178867511837218443780902553740377948224912928155662494637320073856311927947733597364867293191707019164261290878963930546621593730110096265333560694034521261804361264096071085864519604334273196379685589701941479723139153608461025967843301811089473627336276226196587065650856437498733769245167730617163685723128067888462059066004890146644843042036610482878585959429887600996584716940044989794153182252346798453312664507460269136741943298496298968890797968876598301076210233640343343209216039167278166653541943522670439506265196324772671679043122072244318717407501401096121733556532569712656798157744430048673260865714270878754769791064739916182235120499766951270201906002289005711154820193588044575017275714134783528846838689660318235852267182657074594431814416415222146080754455017437468073365170304766424118002870942582202659541098756237680238221460516524684089563435130316540046854677454536419453937272512539143368571392747459358268118121512370464270133248684826888756994192224531058208315640832657365098330371530856712126898944167019606378958850834051959508153528447901455582348120513142491662964562697217484198584975255345529495503112929619884337189585111918144962154029427544446780766777025537457237193678287352737518603236242122974624758639327959499509716912113425203284108074633232977490875486544817719373262772039221804936518351780223327424436639911530188363237973006036173888251247074897819030019588718759628795011093151797880298178842287364799262579482076798192038907085601840051861105152998630452834496818635537308581674939130501401176232037908104539738613648392830196315491694700013119030867703522612603982733623397589716868546225988611759454737808893671921881002131261966693868336393552854168243103034851666634147790693513367863207843081244240605200224476356610755010888045464855211759006754847895069996908853643103316693599689625952955588835500405353238255756342329262257104632972242977022743117319273603361103499428365527655983436448115966056639565044993144092365939280959994516891397501814474218270029736897519474711585603651289173842430998865596303287884540047775048332002606737409870429456077306113826191041137920242744217081739784343137851116760470975713046800821989097230752628403765819474717934597005669659976202902153366611630116162228553911059361591655926105890878082107404256948757144728899798349061997636383562266981531081565620555671098345499713417303509324692784558553195836284571086224498192054059430268537510839092414954325210000135953160951321657825062260925066865812117836685029198276742785091475059493012865303224977398041848803921434732765541383689620095627269914272845412380367252758969675982215529605733782941726129023936731826332074644166433567613504841908933794261284409375354137117219992574325065588405277059211189014978025379947578872308714069235941577379242251907565558891646170594796687196989583482545706692656650934294145554352429480070511814761018105023386423465993447602267481716802230840239040688578123950491125877125859013884267360140573132653343741805356881663077681256592185885058245156313825936584813843049008652101760563253197038946436472045027162276558460686791306863645874306778139156057207639628427424900091021814198344301570228906395867257506219256977175482075676367953008571849584688898676311044051353620381162268801097146873211606283486015374878140690914986030658784318323467440386157466198957461684701436855740552349563323882517172302366165826942619938574688522997429777253466178060520929230254491014248730751262419369180053996628478686663491241620812218466501711422414797196375869021953028433343872960770751115488875408343196653360274858043186670605560382419834618598476645588422446576952520090253248446797083491274974991566263616119542222616796058402190740763836546484581124460442245368208268867790704026517679912020720429849065820758680383257905102841442800148853545775032666713134352638392608884488651354315852654176728257305775546161111588124988528120916869223377218293564267382367585975390162674705657171560856192292464315583931257420945210399229400222625583927673608639762759232719910068529462554471745068419684123338084370663807144323617879595790070359646713142174577223331035367399916582383459171867060255840334707345672047457232178378244387127277539637392724254344620323008634662595016347120980067643464130829509648081575945384874924691223154176070530634629303095720079989702991573892088909498884576071621563704567483243534413489966720039826769698827663775932679530824071905638879101737402534980993868143500462740653926027135265848378996039430673063365232448964747827429553349397599665526725916896710559147679851146853140584655143599912498375449644434445939866500643125840001018552558710704952781986186526558956452365205895939187105828074141019073470168289229337689001015191940461681167826405513491112471998958226951303975234042877032998918573680462938339616972031235392934757137709820984959567550130848501366094566823341456759438939608096518400115566871167307461462506208275083962123145338551029610477088050213988342541691207385717964558250265006001420509048328271604525732036851771732189380197591091204924847518140834776278751487190120183562682632775580422700686799666994183756825326890931286830199264016726602104948000259638662441723093462580348888684172156141596953173404147865716983507599195549497134330029123375150065460662064438820151839485969111268662049383592199315022951782080025316330164187619064221838232879550261348810597967329384675442805572704183954794993742737357060717158108036262811443187066229730649179621576852729894430056058786669762236018864744796993177839064566384767893389669486620375857983199746971455658591676858340203280550217767131148214617246207891416921539606550515900706742129216286211774735848891892411659754386422659672254218709504159978033043987119179933532976849011528375821107693854310783551725135186349477151021256647717495955480975760574138487956714348882500812812386523391666081054975225596964923074600924956640227275550135715393493637872623549685839589319958584683763058831607090701802972997583148803426694640742717370217606359738811537506168174759208727495286917640247998762161171218682009031735430825279891811828674835808672608255723546464152322003227248688820706824662051206360481838015721842599288329197078153431760769714028348912159660392609176329663088543778880663559320313566190111658311488039224198988789497072964553105883766118522631319262644757239231052207963630740399127437992186018041261011433150607942512990860207689174926134837465370858801752623273404500592228391383245472067400272430143603281188460104351905629270617857613043350780519069041170636962235953661609207633998969660436482554935150044817350037125009962426730140495395166045750994559430727234956183904361439969407367958095624571728650122509547597924080031653772919823615519154112686750878556990809631312678111629336270783431565807380839180372530591190176693888589300874432262918329319184085752328999740227812805205379805077625939627398813271430948472083854576215801508005594755706563470804347134598502738997112570083077663892845613257882584994123504156744563294837465849141531208910288098886298690683321031559372097540393607250956798367424284010472344985952712913227477343957756865502258201437883971725957241832669552722812864860282324025706666010916929452119205770015919490796191325784790794362528290752085734291610244084785219336317383799840158731969649352650744313562334472815443069829776501433492468482042250470558203089257950458596199939963250402264604795445980293979153808693385284521915910709881813997285700174313569869545909605814268334433079102107825004222576593673131010619011928848895711367420382674056616061137555970827684578379117157380732076058986743439648399261274840109165253975960502769578361668515154038371993917391233898667633199127375490119148938198323697366034854874743641984605666745379805506701236542505856291550928971264401808641538669848869792186732722953555182990543712001189235913724150471573845641427723926253058181390039359859713210474140013969145983895710071379399626562527754739902688373039742193644612433494163265315892068359500174459072819861037918379651132364068023176323667179707686866326081889580539231590857636155472691622405210686233537092882614365703777842200382467386389974389382271064217692401521254957330821669448492774861925160202022691447691750926000487138036058694381150425329717238862310767966264707642928819352143405714423494768852976518373906942789135174191871765858288146121015328329814963082684404550569146399489225834626910125365534870192337155485862826780386314501681946566875553792943736177117815085628506542840187385864188084247406740497038471508203765918400494171569779965761231076823961779353815737533934663452901873693500910646578085146615223552780826969850486226688581836471557872635031567888697811872854453881996477010066161607512943345917069781448065875224183652452058415130827381966657915359180933856342074597167839045378978518483670160725098240742674937649860727594716276279275180555387266500015556032778941871285231844225933491059085109459884129374515770973820062984644889917752707136045920468681612292722559068660951296992982033653609240533245723357233206621120396803553598871161073026629399485574442350265419609621673388815912759877072874989603547266761294447370585850953432383568521556348219622406011366764141096401986460281464701854578905423115849778200920681915649891008560518168032336293233053750533677539190578165950383540465346539083145972880276647202867538348656345132536321094821316330064726278621031086435440381431276678270960729189659945091329268408856974677422005658187709422246804423737107016104489098627168736225198322367572015753381805437976180660191214330686854115686243195999411450258182314814847987674916878319726821744803372760336230780390765724219616967291583417099050820570733733617184680136423048341420992240985234087515262247218031230566179962356165202321049700222663990615500122660518303028753821287244663848449738126927655749852817253232325092312025012216424524068285892175008229826261223627994701808997866560048331180550132582376526232953409166325227522113622974388131748288250143739220900071699068317348088847464757339824571045306624248063167673431634869351032605717147374911285961461860396084086287857411643970178382249275212262843476381820489837531333037778656685973156496373970743643210357781158109015707469983807895986648124798773313485663550190591016009195977147814200999704178086116767900246205084445059800116503514286800787441624080924070253254577125491285292148925450165818303030100330071283722052110963306467881532636246737566248055873808206023718417015675975964472257721800213922381962705041020230103003627393839238210926177199568894465279559336362616681559060553043393248787034878637822803690352112448196606932700428290402748341400252412527631923661837800074069984292663405777838802255342453838308463869367580800141309321854367558381972208921511500953035833535865216805462058046204205287592499373688625162978483752598312299912776500183822859970629696814026278297229152467138711514223771669138500831448554087179101154774597092069662520579719150261066811672447088948232201699642649339073366503777563512266904937795711510055521421764529578492172039722029810184113753205156569839760665190200023494480522891760103510747666214755637850898802935783436016075696847630419657148870479658775948020186943102435629802922173616457206152591802196278278875164838799824233848561477178553615465131850160631609040635404932040023806605692109224599517825562345085657225024726670841774986053191556221575340241631189743116779691913771301476256138968130257873865474668963043210063632038249493316966877688590463059908191538884762969968383209064543371844855338292542686517792197858322678074228479197874173280736266182566721949861713736283902181774837292337562471563814759468068213804015226932924734907290306657795550287928003645089175216120745485749768480893459598218563257385707533004503819638459791122840518368244527740455250264170294920107539756955256829570379277266857899236361452429092634396563990566233845853433657415464659004969437351317083586141366676798380605241461377411002612448948076877597439875471345777910272490183796530482266902106056221577465755126517331973918226786655820745232796712280449066672535847168478721755175952046224140664805912034906285692946327772721932216962922430293533816402666158795237888897304883713633768298107745544538620709922411770289077107473865519174322550762607336500202058737248500264647932885192857708083440686165841359911506268603070714578723879548251546071467926252984611815254034450288533320208488294872529721233315847343848198477370085451621063115577915129601555251230392586783797784434951682479775146755601427868801689940774265159960511597217074864525537892372819847925779291922387545474259201024112595851894163084748319019267565354655057137717168432854179948106208892322417373506754086055440926806335647334206349663578244290521405202445525152096028904458998510007880871434003660254300391028659673005737995223431789590579492111537124217112295339647939896552745356441228812446749777078518388124958201972815422399415803711076934236043364862580826809886197740385610573731751826603170599913926546549826801893916781832137063315400968839224254446295707455963843033071180438408512678259996604164615797794314077294871538852123058977462295286372966858271890923052485656959053647422186393103525492136269287966583702527747813374973838127066655413192122746335303379345706022669075678828972166747552269063339845211677321484401834047421960191975396015548338453497148554072323851456354027217101456855279335780859089958799019695429262793306573348624899020708745177711253415670192210917729494535374122787528501960325088584824433148800395258105935199767343398824280319912704974229645917119132333496589287368422781592261937534945674150219245657336290248440129291053944047362403025480739702984305622566979003080278036778497851542147285050450065694735560725258162223261532952732539551698209235006066303386700785055180233404774091712265055008133510699713813207500365373211741609624610296664086703955162542721295741021773259599402120169559683777682392575417585046248619783368303192905498893057586637160694209143878108495559500243403062380204229098271606890429700445458778197311991401881924282910494170724332943375939752818733462358988804329743007113087814307566836139361921567703541505680538118802521337869841139833310863684230973053572593891171827732392109441668770417179311059865672847583893806596716984748406601782115083697276090919456871399809283591050996129587122570626801905534282577169150963329634058723015491403131566938177375984163931983672603898660552786601134268472417927776677441134716613200860008303181135774414895437520328356632566160239100035283780528223069560795180387777850411806647519057814530617852674158610529066946154426247760553929232886068605439898065327242639972218261253446705414739850375661813057514375465181875963551988432095451231127912092812583407051525543460965857307364616091011519416738010248504550785047821645705341192501191223742577573583631714324159798129452889417649472909479108605534691850646267123370637561520344664563626585433316602349875778413616661958373835691970608016588288139054645350177131541818847197892753870838420100519649548207808590608072719974517884810240554338196891614704220693560324753244190906149930078564802704939720477766604588189644441886411412908826831645086980122849188337858267110587476588318187795322515183219488689529419445533467938641915905653630100865516799433399162274086371582772793253860058773579061190009345707257357641357891176466810674494793547199575807709663267431844268526963035276185833842709808731334936185260131317634814560504327984667582061638803258789365592586502985475466755742037153441671391522584172301480189155486870119989869552495159361196957579081027103957986513178912648023217281918416652246329084562733016716699486799670616785309265243552521070399895552163045006810205685271315584814318277775045291202116183101916880284732134957238548730765566626939195182728871678473907476947187694267930064192745445190575213048161829042206929345709160298415757031843899402713780023537083615853752100994273999319592278391513270103785909004217992371352024879551684421859430755595768546749798401444906600622658423096129916981315009952290950351449915848911660896122633900584577598624022118698606060869122348787783065140177754008818171556356954679775576847968594985344842841061311970095015387235525676867588637144865640625619919751529428688213223559623869183322968966743012383277200392654497172560834052649755473545068472882204384358198819402204059051716182297928822030809258817511327374402629212373434313138867600562220941239806670726097488087393274981663781725763839772918355266191702420481818957796499385209972388897699140403337268170029754112589939969868501958202288175315675448067690013055503688565426810369135831039552280134200118283673719482616726544516550044660058920386731950985634895759605764599354825879478177381702800286660550622365090757078072753734358467497350014479346852128580308427355860305096052530239838452269950884333186200214384104407944250485485366398585850671232382904441134916585654766417941702680513359364697961247418240148504210103346152022750721368652530285274921625618302032223029525052598006158009113728558557656066829166935773814853203307436550212319012079191875843983214253985601464623135156269044443224885706681751759720851602687927134884301356155851747790026620503592000672297417584102169786788507618702460816271400450940834872365563446718218469857897285183146025854478794874523786936668124702343002975759689597032869912362238084280737695720957336310035227438989472379822759548536970964470171306805411122098768851555159754177219907930483960265509066570085731602277475757361831589090384020473431059401387423956784566043215674231300331237647228269392003225285249564724914795744223529388901184795275171346710016384910066440356314948436479952216057741749645913043428785723245966746039118863126496201865442044560574775807408941013301420124292906340818364295765676908387774961437132955062575884729117849386673408035778429725413925009898009204571516935330448557052081882085027583410843315302843957278370495745429827179549230293594020042242723371350785401626157171868755756903658632829299263821627949796831064038263903170387408000500889190552358856083811735321149678341561506290007655442545163423065338980671761887477955349814143158082484633225280148661265785831237113303318163817103519018266305055920174683487999157416173427113356100640703521262374018464400392116364953314693275884958018396732254466349489614527316315445665202697096972289247660755446861798293147674866368719252365810942474768044264455225818625548429247371180993475759227692771396930173435834480620203488637212305485743241865021375183156142180091938802161739879181427989509810345629826966583424423722243581705412809162932833652608730130674779831730152696265163331811241878095807995691803220045277430998220494695233725188492535185886183074103112146873595354520768471643702394477628513675879278174040355127734009441068743247425147233722990515302041289662303047701809442669944864145110231872270258832437403338883285186432755864345491568359180598769848542474338767374811061323148710581875796259436251400518599057083890072680343175298066475283950982265243764259013274478137649804233938046297538216218927220116072436437854977709932373361969955104068826104330762399376820914427267527435193026934601029523283957079836437681669467648828505554715896168392229363441857179709960317510426675789812382242511697299289968854608986671453941343902342930359560548615052513113721783953803435568510791214152997060565304055780925315628364154160192027663038371516324817674657829687343199926959951157878303558888973275807948847407557517975699310793590633775289376782945629386419491657506413643232622075695595645216936968746348183889357068927189505756191447765673169186579462798785228205231020227803979333046793680069969644501096894210623463177933215343472831007527344773120114052872989321685513327801112520025911702922174046685794283953857042591341048911680186387365918867581956071079272660422073062083378478070199633312912882132322316305035767768801103202698972603474066005152041712733692373316125419032100705746658246317080433820030296301343319293233254507236100758310893152194114818551492620620074837572014168196901527428387528029767957683506865117836034553766395102681388963376807592922437426928602696325213631153745355492208461563122576104340057310343254441698860865610779233452408391923206437771682544563182318211571399686095386812190639552368338502488799595698474782596075250412328718289109008006857112518094730247972240063915428508214556791292653831938733273688808035339603973911096981867330299512068743667014801287803295056195707765512772632502475473666178357891900318948097334249946227897740992096471948205860333297403841154974709072640432381266340359754234515176421924635548946958399646083051406017129199996097723769712826977803311872573299308640867667059650690223562413642022336147795479141922687183159748511584050780249667938867971306900258560162018903549950559820883053217478947707814053177292802841538300037272490580669436769041675864816158198684612394798491395850191332440793654836852383875545241875674245696201621591911768283045807493652375040257934858318200752098727515277221888276978158407038437938295935996917311497124088322291907045775220553078146254121014381915608594343260686953644654301466191422868053740859290172979152611384977068331434868822339931951979782325052400861322516058132117325016144573451019281567273464345268681850640512522171664510248280946032447444058218408562118068111443436437657257493919691931000028397507500570860638607305252925028749749117139909766128861911292199635273520009636316943942695077915877080651043987294275321968974199832716517862799289790512953069882231310423841959974417878346560981611437909969709761385388303532375894506770579253516955154188415280371142282063120676337937657562048137525128649580850518234135791435734873187579928434081975845547654426780369811098611742855752510751823052998336186104705407058665691124256983576498943447170432141383310357632520698015599089308726053364159119369922743510437874942529142824577105721800365813899997466327558685546652490436486717976110804801989039975121417200962764082332179966431493601640651758259202368998697935273974435678126073959957014236099598831586694950418814893048434360418933448579929676455544113977370543325649196806526618018945175212089740928492647710853240337237068166364428921579511069053229585747206760475691445371555017993342102291372688979940165012853196388337851058892390979517758717080801856851890335466087824277423384057213087284401030862286760835298824486068066048123087804215908029744348375558161432737177497541012883233328633704912176371567832761767611354812225248352774410070879767917850064986356648535742586021718844547405848719373318321338910313584991314133198015049808982386682576459987574959527711996120027816083699680187871047050512332019185301815337787959887161386230575434644046873671509517304622747753106608774803301243056849622838787527453949734913677726954372426188509740540141324624043075010870218821901871207389742747309259014605095521478067767850797099268640653810976208393730870090912073280076971288505278266249183734135456338805801833906311413121659972492347342010022303984849814360764178583501052465409985297270600894750007539557275417200327049339738416288606814439880049077489222168712528044707153254645633017056822897870521613941684396042583574659718380070561147890023515368368673286331990599057690541222054770463127529579646327929307518308681374261374059878647649979710511290878326208459329571415019588740910631013071177377991152178642422760013729243875112117926801658562684792686895270129240547918574530107337751358374777207304196097182336568866265645889564922857769125997316299772602214299016082380407291857678017554027263931612828411907212196841390966401995232431634876419735250906278797679958524605330003407919123592938700111307219826505919240010653750768998777707235061600568555754286595883402302081590508571576138923243624930837981973797165972968065658019787847387518733588706189146574579277983297632150987936589381496268832408061536682137713984543737033927751180413134708192936914252366394682664738848747620442985721597540624612177425343891241786184914249543749662401871752205527210237589708423027576914714619900703912442762554636868739894397256170917025651693998782545517392238937998730896835942635239018083768206269414858513188564863933300354493397222667959713880328411944541596123922907194076663734987686839836725763698104063280772493018994963289784040529756665395373697349455098666131064300574964210571464348289015396725927810314403008383734001302195444727002606668344832979307087483298886425309612510664014450897095142659604631627884825234136400438105865015055545243111501964606662843519964300499517022460012789456657807252633532965808959343902525372308955697891021098935033276615489826876149954572372439493584924482114444891798188308673288639976106162048599683890554219197351960593991950881064123994329108031647282047172900400308415859838768803167822506818540520854232238821959576619301714982686610286650946372444244711163309420355235392966023520076412167285015839355763628892075092871755769271972285502738200588729886818278862572547804126715905871810770365141831135956965181970129093833326014701592248880321724589634541630934044066121246867544407760471578308176333807486108407672606479927251165143614628945604731834846246333785137601636606265894285889340050402856704727443314975045750696382400638365963913674744131293797211549468584852529226193784127647303489783149085156368976090360414869559717085806389333091813286708114129978413535642894350499083736905558005382124008415330476048913666760526271757011855483045291602473314733488062111375742738498539354757293177325261652596551605454087575673042667353375038722432316536260711029821356185931349513024499935948192079098961866922866714837710829913217390633132434864249379195201155809264224826857954561823044843888257720202394296035831408503607874877155786331125475358105645057477653973030553801130453382054136400625259791979812888174005191081184547675652236030996684759220590639117246959810593829980459274861369665603096121163199676139196560726000654909790524184965683011612861720055612195281644136845870617380324435256615803323763912095831228237955994509462514979053455991765182701549537315579479412868998242495543225199147048697983344076921602230439183304588934532434899830296681635235185268524094470301026010604980101996224513135764043977609522820827478850947911472917000922302854419871862217278610501684083721320358129597893756643060087477769866292333418953851829869503020421553132845407970074491910742475737135694866668252628983813845356735026585671926871635271045641080057662255219848257578033687743738009996522959987056602128269889243504549458260854510032194239380027781448137727273363093348168931283315465076848347630302687361225463955628711165289556142361214645093062329509854320633239436185725873379328085275130140693877527825232392028583065614976320747323161242949292098670175297959998852602474796817247742372289050782667545154422107584557690545883207889015415365207326289884722033410762000861795934898571693435193517208079183541176871735395996750145349570904730083363164710572200623916540832663445459611177060299176767375294429444022363003221435597524103407922982702764110196751270240086301644335318137941668160573491731114844718045292679150395635058445869470867423552186753976464949966778024137864540886757413419878842046339661071589921895550498243419131871352379464224924237583892281755552301048035160604688965278288701861892107941768609353353816912310171579733052946396514866819576319866662461736143756271387025832645995695426314231988757888143921404855235014892262518802089739927421362739270514690197815661270547413802032729183822093137226647029522945645612358264258781339903861127095683742115818385412019482372926100631708557094635687824090116016878347636121299164253363567380562739634844050116651872640845681806286252989976122619271443845225143553438619495830075062004990630107748294414037515767470751421114224961204131863675665521805761085723971860969105161403138864043192892708502930284650838039818583135822153343013028675249258419371517743091176995837149974666353657815850739995676912673067814998421455713911234373923210506692067485976960234886742657727521378233303102164084357664938008235587279642875798660860661925355125559596226716205901800510944021428071630196349767337972390373192249760021931690485517792812725216749262872573536318448647466874054906859348142268143655517115855563718529415880065494300038039918593641477998086451289965789716887014570475696567482210787689007139188619004957286250536971572511528057884585556225594483788526552260218425683141544432164191026515206256308109277194246875986083642930718969755772547712536125150336062029919683708430788578203653975402808532421867035044242047970850192343454632331314266693038254536487290728883872551040915003260136567580454141007434713065704109048068592256496729106328785627240133212106149345953728668605484337945211626393714072605003102398164719445861564623791652287143989113205417724672899959500098105264325359992531264975859048848974139231019090915425669520022777890385715785757072285541093168370798945481540209260987760252523684298307965009819413157938579082330581567112491450185188101744843851091659721062866881699372263014680735988355999832976602936880606465197646840375782438884161458787312169205460139020021396002349098824354611742691027973110123102534440019356425722865790418459220345311625344258643877250668051128739121993542569474890176462302959845119990593733037468610372128993963373738098160642780989010887946699855975977682728614760185563080686154332594493054308984136604193973583936399320171703064357339895720332076115366788579049466598338862018734575286749011320167191752069572700793862633888949254968316037678776719113476148397480726612102427993024018604295040507375089379797338416606948813123482765434658889461648472578292417627140085523235046570778978034648810713123664939424056898670254519475726067968327910404636457652440272479389918233268216511636368457767128105880931504866472965501907659644766366528981332708729820437967062264353065932166699052147922714118012345495451769936115281014276239562877466595205983333291999142843176010727389323559670574975566831025630429064259671405710552197571694362679849022173644057892145248266992848632328461386398865369046125581668859092965508044961698366940386760784214441375025117073697686111547720709650084571675204240824047234494832127473324848759954657227414216058852478461136264742826319724866706358380073814131416027967346750732773238460322954190865548000937015913182630417012915243943039773159399465680418179360981202090726329009319331139409735416390146044712126051670930616137929876839777394018845233910089931546024080443880001440063826671668048737514015587647939117538354562257445534983625234690717327759443836142392472135777005241196487159851978506167039739507653259957504745121463343445355507752049034269545602077882056718230359690838627478635857017237058722997249595691417089110266895169876962912997271106960605672245809653524820247565375164211799517952819731131140840363710469558428859457232637964808123215492540730915515721984213520470672194584307227728796133191860770903189831206768988242347141383362211129858671779671758695445664412449821736465870295132032888539838925510644451721087475848203269501899804889966727970539892485272546587575873111522940426387619505802608881276437814934126315423611362517439830709706042305090553106630748010074740033138827321799572800388577427303841064713942392487584103717598166511458680093586591049157198625106715355656821240415927624687128334941993331421560242884435384664710851090279246185566273683344335105237481728754147049565375106749025144550497884590780528348598056417728452054048298536185639837105563965311657121376847386404721173152101104351241824745214214008926994013184099092257092691234606156623989010541373470554017826475077336796352081331658368060205085026474272028565693948902052587541067850688993743890335103018032316222206078839211485404107874474035204041315655594302929923180594570617853226034454505122097190863144501047571352487164572282975341610409287558924216201934264408622356491470292401158479217025220715743286833722733267428409777054310725690893346354933509876338307316140643096245466207621321706342176184254750851129384617445895698980241753788617286096460101530651336029641559024745657826599510097927249152828056022050591235636142829037538988351029828386132849749210540675076364261966656082080928135748924535481587867833195366887959580652308273650692834054782916473530133441217106439245554669760215623482043834060316207572667487709846993899869605473979474710188039027513337971075199746112167665533771170552447173456399954297795675540994815925800043160995770839114253586187961483808873063463947234331715955784830372501004201268908103442622846772679872606681045380999025622542885939955698018209963324395482618264628295785138422055966153160142401337590625089323723182998041138142248181589576969551503509967218392134659081332879628313838767006113289220973405889837439841498697553173076706425051038139274373734614259664220532229264593377368464482383880337369546505359759720521703931209394502513965240283816748072500488721642089094114666221021408188145149550538935082708470718523526539416554795942308913358301425707784965187383902594923661678898647638835683129280838044772950877030673641553833397045751543174584110703818557194576362389515817523795078976369827883680044310973399945584907987864563139044152940922683364787220323924811858601907117938749973471932801627609228189505039445260611745057763625428774337729174456124008239700532781902773788690895691175282264837276765739887980376459238266928619808152485962828806151807709053210611047980526788413713915967154742327252930443710979737202703435231244134238822134040609533961729827570579569912140086332155495773832307494731990019237274397237966636061756628111697629915320823480974809024822765257629838179036700448202624263213190672980401519795871471154070987994001754998139415683174851722926710501587169332680328117766945823460850674058312843434249458126831519136849674556705265245433327607538172443562786885041985988458267006246504771817968528101057133963358895398455270435655732434856619138090535648459882638061784216813718341856998025409930243668533734208792785871989524390927354418014028396760117961747156672781722437936615810362684928486063145965981516962466881529302491904957714369069878886694816399144265162253749003051540208697716401627915249404220049234766653166906327624424437108936932329721069165863083586504315350429158726904828642533968977405267303564560518313568889662244351608769104101358958983239145378833352923870080314872393584317012227776099530909835733457760869009704865664795681005967886230913785932048045674358338599769477847138230448828219119627544485593782384952934947543358011995560678861101260390886474397420178631783826785177093933687786065539160621783350887080455506956649333529199041506782037419151613223278428912063646755019824961803958648338012913057800543053755368032832105441835511433798839703688640247131992338448059238787546030439535409135539468684815577357874010959622071067812972783687613364976296731463594083036101835868719831408950826920493745786176265816115012857060894566322481849911396498203362221152997609432157915535706012225996882293964221558423490237430640699902301996101655443859863431523985147729831672691262198329569653643419092878518245224902310633704502367887332358452110045243464319065012268389338426583048452911400767868430263360471902289179585771274088243215706834154987900375947022226887872441215882726500708508755932526125306125308675017728889057690092408512256495784003684228871631958805531780171895223942344382984803297128140095749265850519868569738860556029328651978990162740302828231192039933528879535096667021458985015785409629240275637425879561913238567290353098693527830798208322854058255941870899383764751644773292335512143696980911527930636270497429696423513082069058274535936870611018122603883846382451861971721761536173930595954174937042941079220415961618504447673020909728272150856792500771897257464803375811872897979608488963191283398265497542717031094200793547696259307844917458077804645915322325762377080461433209037924019448349097269817914450233698739453531878659307837108364151732780400052705051295012054743915456058976573117504121944182746144046544328054917899901888817272375203816766187344920855431364253247633631323517306356382985506054585067303645775365650328013431862377267276125633015105592957841432539241198815781975654873840574683492117151929694890507913266696980081282536164757870240480201160882899916139805906545358444254545008413931211498566717722429561452489389064146858951412652445893548967894658625853784143824243802933810344666089636181686903423059682000991746072172883556980522509265531668729133209260352828827282042795558563421788118257007953950869775622222908318725811409488749358824558426605536530396547481185168312102168533206883120453295465807327924638368074826775609333371997662447920380002641475467535418956825314060743450736095991461355579455714149495422623868520882201743003612943863879625470942302926630962201962695265028115127651617173403700052774366787169997927382688084159419492146961539473343811444418626550185558882406096610993554321826017084401132053605982239444834602378065789403864614634226603874926859393644141858793865595558444002055277282786670275019908443990203637110386908488099511512362647504043753807811839146222429179627005079374012859197449168090138398134334091850954677428827340187584685525658981745552279725582262458489045933282051979751739376431016988453303619070789356700612837576863262263189616540380782520507058120141734985866458370933723265599345598847151029420165525727985085396928925143964120329144680899726463439860921186711968807999153479599130060132388123302864490214620760623648505828445037537757399021110197363371720225912715094612463288170419444184772338726357847968363678084408286481292813246725635399543704652563199714731711233013756674320935711820298653167063266090167260587647641898740360885800338482388085668035076410918761781769022290797748733432277179645352434679594479214924086099876949406188811768285071151009511795158167588448559769181768017627144718692749595447794378090137060000339819770796482223422362107327259071904141305751651235182792020350174871449032213853565521303367448156275444245444418017564394451153512948427953753417328467994451494079700909622607837758929113378201525428037596030930727182432114877701068495928604507552844905285275626820751537178824477660140759319377874608152632695403027207432615767543039829037106975627942258483790883619334013226480389480266198106790079531916567127146732062206970584965980901601649978223097396405285917491508094506585493050363971202993599004139426749045029858040388233545513716959673704006543120870611489920596904023588215205751355180245547924116224343640447857190571024394038465765841427979579046921111196127674446006766194556550568344765196721897614879853266182263580187058412774189842770961426388287294067950258277410550613787904579238148703362968365819892409182980349195413596072178023217644805362215380910239985038812686043582789056219642040718339369084992106987715784053635108207412345098803595034624411210212930407030549753567535943895914584383904505170980149227391633320165765758965351202419240608072364081615942816934748424655375948609629603168983103512598521205328132903469738256731709794461690301675155858261997838241218383548143451861968247458468760206924195358783114296694906919212509168742216460653784420539980916554824944783721169858504319941876195152121378794418172724411979708183585535026778030800646974207020596681710453922022175558362471196974475521114158002538585491866161239534973707456208411177016846260138000734678894604804236065171588576559484015020185058337171391586208146026597776712900417747342789942303120307367045018850933602324557906954806916884116980661896933297468171916297875976024550956337404773015090634356458456999064268250509898405332936534842054430397981163187223338375407293216849727846736969579922076885418577842709076305255307996764364525205819710535123944501512314495560245512172141075402337422548326959019074780777018511171494364778671943089212183097862333552384671731873551207759982914687187002764268508345909425975473637428578018555169431276816919210169745926808241749331972981293624612345559413661487338692152746572046601236185240447690000496080497139479107249974984044536226666366286032178810539856055466411271305863316421790525264512988297531392429896704233193297950071434751663336461309822205635290939885995163125364509145240321751009692629318274395195687014444447826633996405649517917600362159321427720192000227656209103962979120259691484819378806319771788699533394332287397481876919776528936444331624602747714610512232329450016693074202740224103935015433333822587303118447105502242258041027553458743017017223566987763973954229135063569852996709736893566582926427074830772287410722356635809412232681147012176043203280736936946384996061113800194640691154279122988162436863082448443359651846711586629481004949186472766243983468433885257648541409352078627412169250350024642691854416772136652378669619494359983479306521535852850550277218160425674188828608923458805118905635072498917137843557149364305040554194286326482680855709398322452366692376850566228249971900282421587146881682821960359778683345535693215190996297049662790126114445144949787435335571939891145442731613545922808430909327684609820421736320320457528153116191084148663273938441827480989661571818847128053203316858268462031235554278057968433343875476852971317247454168545759371557985705457277447817801722627475204103462542311266467427958056422555708383532202344665943861884367430101678393081728966194020249642488890891215842491660121678655895860474806190649970211554356068286703189453778699246559017819319658910296743350495978971748773262904489569246256433931526133245219647185407598296231375937871916356268917175113790370109851265677463553997956243070605140020899776055445180557485984198236178343749552879511914603059076081341619429732995123657220937039693774231915766868334250030230212597003571883312648565279507285057074569518555210631438871478193933227049280740741655296934400503262134017454960931846750282772870215715863025383590115384877955078808373756080402718387449491696586582430186977822954267994367427201921172316177630722467279677745081570131088162432260473081170733800823449163048236701125240057361509482782869047970710152137468242417508701714194926558362672569504908715817012131545297821804678507125560730620588969280490846312248580364812671963963728475614120206214103853869299440694593273669879253448446599505925886996866857353620464667417224941085962263032745670163577899388015340231381943882217223010417132901854866481936767141373453056609170334667133185270854777844780581696386349759505491111975563140917257614865889028186007068394961543678750676708240985889261870061286000287833718220591182603591072424909426444813883773942164899083243283990442772027585677090697773340878661319695502888645921726562184704652530963763012415075425981315445259786895028813360119625397762067309952696567972217775559994871566124606968580115633047045806140860388256328799500485260653357389775854513538865362469974017537799556715645393324369849326440176451437209074220502317716102591841372087882218998088227424339611364230974415904211455844761967832711939890911754095152715618993147102958980664599481390714879169779385393747395343191715925007398456287896438594341495661747416778376751630909145376469109506322046582592579529788751167036754262498799995871121977943261751939631080031026843805554424410179417669074045212333204098525199429950801359730075439807534026881027049612838417609781177479664377327598955985885966853229556511930060839299892851939784260806108766603631698925868754844422073763276044658114362642082988311196341638407634716921477551717646602699486821019811320499593663930877408716183287383012483691625727511126200951581642431313923428484572889395307208285155142517273331542034200153996777257716690287238416555257041888153427484052338690997682911864995742544088655853237115605641861501893484598602140471004513757504397323121646366596404550629041154221939280841634818077622090848222948388105206107197435660816586426474445345384839652005704749802028829917011177590491883805644947264705178014762576671932128903283848630095221016885812354090914289245889171465962394737031464025854017817875742493561252162887301369750484427946126966209342682728599486745777343836007857241455552138842693179505032093063647284121903086263409212807970829751336397257435301101966867450067714302635574430343970212051537800985609970898591936231121939927935170467899767976434776143298063775412312178647071090251559197477286026705084434149797629596981719523007825114344259569688447507094684532986720239849493814685545411717472017826130269590315319641172542940776802858635373393209318557120139699549427011133457520320638146993316191687013654915487713729985735276061222509024177259463476095292478537208759617658791787356323929512865283350328205702203299443211981944939831644262062818450680294274351888174725701609901772679689048943705317519793036580483967862047602024834544161561758321318059936357136930255377971684037340013708551190033072734162088753571707242278480650940022009514372260041288057802000064741776671540860845086882015887920599533320881589762257665124471031124005276537983717350498389237356135422657923037486209241717401327672095946257402093316136404296058083452644935431734984884184216658148120518082040145751096906197756222805279569330953547908771079301982769089104366775408101410292043753131222338635835106503772705143184766085913693897244339273884808056207994845530091093818793085924928182115024173979808463263781423206371973200953122250470585139387993640111228002091327169527087864331540006087996455744482104409292138873890179768729860109519925903877677213683180955788021364627006049901767204074106971327414410116086381110812863887564619590290587007510390109249993630513997802108095665560331271395595603446656830431395830477226259339120530786095711769911922211759361693575054465048957839842344570246971617808307718929679638320330077592644833083105540280796277928809604860671325298850111428978253415773796631636008501987294645713934982765584678715135222201626712321824850319957168257149290901560583582678303634767083345461550700935055927505633807612906790077476379886968637949653134590498179240682418966052965141378838620498185778265438474754062867415789513013288595079596674197953338549186353102593048412665709745482934246724907364341711130068029343642361941365146753905430687822476043851088955628046287472935636094985206505991389426986086054648309464983115741797768070186302903669167536107549161153501972496584403121588292690961802133341492547027390296672412912007029010662079418208546562837512635018486672818101538550611662586737519011900237284876691049722823390102615097664219905747055318295917953134328621955787366369764438188073387760395909491361973799699477343567821204327169030812870463850070347423010670313903035122784934866234172866236762088759272741490896898596627032038204552486837515795868706160972083016536676748508610688172052474888768929663788551063521413380531278706241553163410531107176915158588917563274613180625041546649642589940586242550337930251921213889232139581250530136550435668953148004707275638453905359451769901960721051130215240516744764042229562794005587857180241189461731814296381531992362768838380300593507556045485960733957513776963485254437834184172055690377946449970571974704448596706321519457203308718151781108004142608898132880135192729831991613429424473651631321507479793128158419256195413062964791329247301069335747012604336899751030328677163250038318479147255303012027219717955061596014041020407306281149423527015137099991966927732629182299000072394201446148876447870585503860515988994062188389232748620241741515507355757083837917753490854832758219288535103664111839539453299894179512205114321972925273881158536556054980245506886049768426466209216894252030211625615041436143552054726103308314001996980070857028079290702532911857405987752238821722421477054766552575726902840543625062994887767107000995213264533108016812317985661421492109754181908261914076371392538160924436574608134443059774456514400496221779678151115487744212071178610486727772927110035761023053741082081921137884537978796250243568981176973911102790403223081446279483406951165338397180564841820780288315329322281436508328723455089415110623313253348835123570346796583750931806566047993873675442433290276774973513189712014213896801388821329851047617867963677908188377585769257051822730155522245708024087328017616324848835337554394991273459477005151644228984406341156725227540927270891971000287331819137112302773980590485627965148139762477917306016259319169281438993865418289997508731739926743609732031189687778873914196097275145028518520715061922988542970882365014486522775937603462845511654497941987666405202797550922458468301219485710957834575767079447385592452242734257495964291747713303731642983809776104483251901623410153739074921720618518781926055385288463786758600297028268270924392681122319444509099164990609838923390344178475094297008071256586773818564228527708772236345790579637770568943134281873061581142535578875299612061228338756122757336876255304023055079855258223408534601689225001752211214697687561396709270807047386812748142514422628672623178338465703116408276853869462958092337285413382888975506805082038884914164212065892690033138704523588874682237066993685392523655495216405813999995069457661357926721501601605987803081396430911336458303493453948402467722780962479358332575270289127072126312617496050862253265490970218814264174533698712046405306782401104467205174868632116162507663621264189843261795772080058891594959284085756415888937684181254132873497847218695406435713270291099322008014610624572184872645295846882985970476109483086789295460950111613457053954825274415619660905199654198681414472865436861900352416314730392994007597728990667872804375558119600004072107806498073477934000892451735596478722388062828532731396683551780303781035639584050406518547972658859244000031251766388373629333059355597650685599663343610280201018798804363059697647701247539081105643366462608418634506774476621288149686904748646669682793655876525503557724840357401229893111024014513568319970860089203347789602804123369216054856137210287279560242901832564547573372835355000552559781926273522643521802281675333037006667238281955528371621103143046841085905137350577444838036012168298165864706667173785823284595705342055856186842300710104731937299164920726049062683866715811397695219727875274622456248225056153561113314667257223357656162603504265673498981586825029182547747856891125437842690072841174430784909048729988897994636807698683162776395766240871820651194897019134474645577487808047392270841806228437990472161246461962382670901298093245400662531087161426855630829646712015308041607295839282168163508316921232234569037030360271703713370991484362706909005974546018222911582178842291208961761494367647951129095680481358866502423578320193714392945078469510919873755988185664793626646425028868044729951832340688603647551191258894139161708606323372641575752110797638172836641397404275514610256829381572514045481343917913483667988328879641907456453825516330866378941933117756890605378561009788657740904701401187790631446031613802894601804655458567171458309654885989261185679276096854774786568000471957829393888764193441599812366843542463092221265376986094121813761099379441581347766106880057245268670604901580989677362699674292518173037558812979361283383338640354002055658985439141181154248793908737026134048172390455307608301047399034751045623896193495816781998138145205583043098514977684393414727938643466902777718735244836527486749896145500999957538916684181158292000850058184426158889236272872335127756986329812517722766181553607851151239087241931167606647037781748085107332722195279006756701909145083432270681375112115274378647831516908554362695955108448702927624081244621217626405807073239135683122328176540125265202633014970664381113652843368908012402694585291194093301764661200295393473866087670998707484315607525412455003868949668614848852163149636794354531612471942672900899842540018163334090210239496849504867487046316701180152582824189865283218246843510294769205722380973750220036227994742717247223680271900394757735383989826655169908765929533973881633652263136267322001107234974219270132780953702949204541639877196695015410493314343736453340575287854341318133447712341624022896919586887873668516372482152739162339061465075945704971681983236118530810764705145326775430588608224434756058828093084968629719526480033449631045680490715221640366614798233427672742994810524721835845487235163434841779104486977690684732210747064774602181876676907641932805326333548485383606547118425059900041077308092246007840961467114521712240841108771411648785607219731278694315661452897037846907850360000778074350294144618463104866633459666996066477744658937217065703119016882655842011366800502938947039488230504457773303627573806041539869478194750619404027335555978947667240801397007515504351477529744600058014371581127399582777848078829910900995213753663113535963079365537905495183161763301733650631649266704340525682477071814229869429649904179533264741866680237004621719668879963770118616663736106365054109640948643602337857965814763203212426176562518663432440211214936600606889482009098674094770120835426886816927281649357943379736679387489939045645343452959103706552448619301878950072544670588716536655145083137875060953644140578139382877689694539812686258310625909657750739061082356461095985841548606738766832405491224438029350088187152298528847540333253234409406981773739679174704404239320784484969007541094698244783267429219422209595406179897650331940608245257079543700655642738954891797563671137833514504186423790157788090630424641817027788923517013828330605653831705275118527859092093036776262101630225699114115727781054785448397375034041369836455023639536128394366548651468672556426532877724739591217132222738405796913975864437933306407873076049226873576928750546258938655993792526837361349138509676063007924578164682589561544908997441503476580795781379749211119412798804184069424505867609341758939433346737796604518539587230198703485420256564348765439976218182551021910949186842304341712022669430986722133320613183573517580361270418641320022868042363231614011098200628086761621529997515619275869994971099148152851212992941469135844794961842354159056820439231523793491881271159549771053409168416501035876602391665364212940538527056017698066119444883901410766161526117609248566211552668319344248294100315129676685637328732036835735444841917154395216523515853541432921187755910774831996496275196162761372095218348440326281728222619028570872841182579843179063452028937747581593689146308588422881376913373168241799402429949953687036135341978133369206074195654926079709358833310807986554912316950293095050589213182870498391269842474187405306636864681447635066043359039864234098423810547037953094587555564665280264869504513994166864652116599527032583447482308827469677705379228940061457073740579884421822869585933457255352355650895966566114094172176636140439344526367777135538590126890518451823542255739169199086658820777684966203947724231506033885526143388043402529191484912468446503833901274899030006505652295693993775345684379794965824123036793131698164942362601977568362357286741535139590739352553352532486555326922908673517759159406965326868502066803122460589058326810764881974842382168850330642834922822159032641610974391046176507660941113376650815189189802074676981885123104082774348657380886079806380763763583497248791175795032130831497977191847820478475124165169887719654715078954542866369535580764004247421047333788305282416930588946998726301125250165498008988738928808451521476544204863223014792360915967915890587757583461478618477155892397368736708798926801945703300920925613689953601000716004536303880398922948007828385693295105595659018923407361485798112290166110225397504865800923757768039889406324810608226588523022685589902866305186885706133252100378866746550659312383061398843866569754376707000181118653126759520413989706265237624747775773414868969563693323478101838873331689854677505939972029550176046534048672186690981942657985744694710412879141443605861685302470497665820851951503829819932739417312874813260334082828228784373587739051639361063545672735032956293067048952539907250968471285075808608771709396581895307733669474244166807900092916618316002000613357786032100032441579098763150124064905253326272370476982420402962841924601303611486934206677105119650215559947440009526922617668601244116523448781713494538619340771582366494371677588988979956052519671407964021447448447734719946468520253561889452953681935413302250728875543924957170245526509185086255493180013593393638806595838711501696278070152491314794924278449292229163735940093954845848040554609727911185806020241529134571130733397114324915327559424968599405967411071432081042480280213363277690649967806736186805567583845378460030800101212047360166306506438876015569287654846137243735869467871104146038376201784023548130870059623467374549213699698579542155286780117262281915323218055415348587932399525368488782109975877434343428772471062495135230856423622463078521225451707127268131286139675727506525248653162434132427070855679636289247539291913331720877100066089826012285820971751336819550958080114511742534165989660253645007796121484579255848730540000271312301581784136158030646995528962712590548652895013481528980315089545004766011256443753868527508067815492944581010421388414572533225776133162120843889686741624178564453438981799110752727704222238497961768162040190578301835967760111393778368515452268459938513153811919321557613783326088066199591418512707290058638546249837356611695883395479905064614324664556441191747813389800074830205008610064713124739810810963831843333317654213519941699335672585548389272888967403261831102815747849320940994046495042224476191458236694589549225510647542688255226641218006905159765182334121503428098666128873902639766586815879660413981113495311334092508435277349980868109132513198621587167721904748530807616805840957737685755578128852433890477245141388794502800545390444009898956558067682256077901127766323366019962063543289868986964135840827391405048126217902670909983396957860378045652190324549483387804937351079176783018798292873559122766598729425325660524920937748984509630507445483477680433450583210940657274382465979423902267294531109317948360387972732554743687977006592947448075210325620671866081635158487515514788661300595494809774093352621971858515391854556543960302090678900054386244858974054871239411499305372128207586481949556221855850845962933134081142809996203919405237970330670323586944030235276700405162960007589590189806445894920524145246188380345767977612945722261350134332078111903770782255885555068617997280916846196486577765383167813758228117433544107427740530949875946091634218521785889272831764547903345241699852496102246678314211677722250901481522347099288818745149822897044538436007206889716647751264531636135995286446702931845160589015323066250266060830687158667411266069865952191754160747732475553413832990306148479098387087402784151124217855148627323058654358476231656467799845025164028968519522830997782806039889166233597508838956423045077515130288207159476306106260977863843919944419160135640939418275718980630570817195415767006282726784440611220090429806980744908471045648650143403567778731216621491339547603922240165745037022820516362584898514499183655611664310965096037563868687796044458967815514792501015679596322623587834274668465648325775040930702764466926125872732778180841490309138375128461733108159089044463410666565171929490953110551141245682775595672151293034622301276469892612318667743886843213077975573484849019794644465024776090141601971757812490888598715155847692394075860285002618035297572178856836157121579877105159118706088624537856583030661733735496988617801884719537805310506737307705901409160112026813592133220514915915666935619830769056702355511428249504192357486515594616656549293624513278775731850113052549790320773013992536358537654657492784845490363640576468766728005165042976782511193655247165806586109555475073165129281771814656744870046105088727834235841187748909937572530086845534004744424331387797082454072926729041495889031242860490770363519032980556671246190114358510273512589860190057688904780737317016256055017858657821368498753841654946234455507288811229078462571331205137094450498832124623988325083990033959838303938302260234276879465373543304897192614366174278732059745264422969397869695783069371972020957580019168838689810633618152506732749333532278592922691417171804297633092767313083197116562304133801724561568349827605662757409843884150540323540644124039249632499915047041984425250326870268979902842396376210791741248206827285234995107597469156174375133309408812077124425969051862895242622866617062839295371986145060127374379175905169841314398395485983310742521899318828791014633389071843919653664291283362365059856577106989421148165189415154980952512207992057052348104243805740838221947355810444982486031377715899987129443482893374600575705890587114510646798959691905267109110910692186407223145086144487842748534456623972757526012393254162627860755785473218074498250098757973630065126389746609754431035063789556891250148286845472473053178457783781444452869319680935928454391197998452411711829464004188212574118545218042686699079799272858526140637394290144197719086457357651411322086348954562881529691812924524320675595117722436040870173646132675434638896968059514437566143784696352450107204979392362459985426289499041084101814092283291045519643474984697713946342776700205631830710955933051206492027073269064502483064307152973362679075541829516397278909732008113072136729630256888960452953991851932534705156572218374882207512620305941244117963365490606047167328234989729690507261586178847147114112388888112985954385437534941007168027177116849160074700229560034007938045996787182815995646348129113499548817282821411979182227488466976771086387515430874776206907897684132917038247974499522483689769944776733568022666197370529071086601004888358173052127117805538645836376700435177883404239711864355195216773684891775769438046941542811293744969191946542315833207210725075944573360965908783492153670317078296766502212414052163341299986483584945256736113373224945877495121571358765644315306388423669131379434765088437506157674265832302168268455562121424939164519127320048020823245105640881569037936782752602448801269212966193219930205737082137985919886908749205091986669157239687401346726438726122891803606916852410659183275549916773481820256827346042565485129273744034731075958511527282180855578546991967296603272952604649826832770249508547372562120669941315482304747235562194950691891185701728496161733154249884996172937221246891167569958082653696277817743098194356037717852294113758787977076997887389770866327500997178395405637685475480722529746961845953002613815109711621410858422181526829899940434726208318799869376361981588033755829271158368330378126733178433331165963260871551649588890884349656758883156170936902985541056625712302580287582375532309962198961037647514765788399213131458566500028221231823444506293467131532525655129896842053754441360007961920944572638107896794210756543855372962274258894090712514469657317455096268317831422491756257121237896931733613357289108296729325215345344973485303429361529072699401671499552338645117327254062138484792242380231900079059354018861485377175695506976295482126547173463869062842844135190282321858752117155391036752871950413089498696897913527955590194980450619793840655585680767035948363248785588527237562316807871906252077411568669338801197002163369307594260886504404726184267650986220246179205383955177317043643528737902159141428866459495538524555798760625595605941922922082748065907397958377917582161874320859789209710968353896867755948217730364881542442148291565366905078159255264049931040042884625670995448843953494623722569481045555594103525574003378228542161950993911911828832910674020130396988474159888692750217974903235240349678702062253183228275814839574355610755677498788849627013525292142334571992750440370947678738333031697878975214808484809175157358733340107666537423870154679769322966074715379936605898784968240185016600234093735404641800743007235583296860751632932826797959486972266837810584378423223066976919367730939817547085793708050023571333342754300154116089520266810426753670306884837935249035061345240031213970010633630775251667078893430398914713077694457513957933470223843311674522872972578948722068576374738302864765872486775596128667537803662387837347957245958081599570157008938924011266339661873510869371010545798544190433587920186253341992592339851421815714552902047423300048995988403706267750367196402193142792328822605107877517947220082538414714299169244959713834818784559762536239980502845818304782753489793125603680346321645983546896497667446784910904313265073641973736403074609012698950954221743218242096173119017759288458212303190417574421982333919971579643282144883057997465417009407274512816325422616108075099215564216523024205147478008822024535476592022503447269794398971860711995456645233201031511247362801067192953604613649882060520380866544107960483857285199071496940833739172996101551038858448004602027130077624822332426813135245617045568322050239397768059557308072578511476896792404797832976657118491657667576400007899210222839990098311876439526125979792213138848017117453142089779408107274434368051999343327287359725588246710634172163870784007699873040321860252986287385731512308976291087086111487329647253918704964552265432550433904086594209013639473480149829970388514177711003323238563356575212825184766396889643502678528534894012569094282947997991824241014088048271058652361484384569786795729195956918677884926266410033425391293155043245121935563794862310365445970733932133948687648361689697933451605021127200151291071742392996934541321452888176170446796823188215564673715154521543504184933797777612169374940587963127879091693688936008776703170487993544475565976224397222483385550835357127396982189937251645603294611907860960066755350175412641348904606950466608307775071101159718842243831283460455852183612255756304914073518683750234285041049211625102618059033093653620572784205956352823479144750241279359772061285052232573448344075008774319282741269332260386932842973295443647347649135649184214467521142609168418349780393073496703729738904211850807703612154659069504308951176552507285507425480827665477472148655862771669737570088622279607003376680360280950937129614199461476308750627985758243393867443704365140785409844161909521185025454338378169153714937333967106206546781965776658281652953608125851428766870824870785158747029720680651743142790805001206230612251766220740487821307182977625014331125570064267606658246230319166410580931148685286578359595103543750556045206767083474121406886198738134716599214134670715430810635933953443156034125114389597954119331161476775254982908440829742532622950368140965469432676804620403966332356597228068099779228660818741603002976980578841407588444585947460112930387596423390240269804178006056059481363995503021932109673105188442322870069750502180042053787631491972759380887072871766786751023734344493459838859440286744940086126517413065083987824079280914288348464370625837501164546820216982646286514977773635167122090539833962012737791619226497745903157591022310030686916269308447837558343165939561303875331027842104952540101634856795747980941791717283792684522524716080733559041866939172046210838057753426298789203004138446633876759549424698089929223316169241510042725131618044859114994815539740529160678773680847481372205527203275221399891662181209544712175858467708496655636066668679554847729040874582777262445963694043448401305602352878664837196628989134445220521277087546967793622572574718322181263696335555401003020587762519962662490692921104980722263838435824717066014702697103522018793964729569748230834297742765131691445447892091196025729948804903945462626534285437816850824298240295945223538730652513450529562017653397161373158187784621449995268737668497395088927917190276191280790184383286387354335295299992821486178374882924110029696516063507327790439915126975457970143504797821708366446015541807122637054207948684842387462590972288996345099760413456239241623786340011296536494254499964445529859861204286108405892025838252342294356663351068394565606639251900034610249946434399031531351845305409407691186360391327005244810363725046833179757058922961634685477184222055742305224998967001757620003359323434001559653659179571585614931847500145219398128319769967519393291313750501640235848321389747339461278491850335455616411502654414108687788193494167982388850828954139598710417981675448592432998564451329419922487211589272744893686029912261415281461501650344537729525982314958694674344745936682898026121805512485646238279518398961539654954135656955643992256543253723902145844274464648368080318959829396517358886676508274338416568155776351461082824306685683242551153863576812764110480393192438945121306102172927258675169405165357640348486829163162988578500284029303487194934889765880051330722834611461410910217010370091196455097939506752463155055734803625842120944139954639486697763206660851978282111252132606476801170675008542425718330013770019536117556969642930429824519543067288734325603970694880756136290175882937078102358504996655585450328518795924436536422587535832053478893567551507164316449194966316047169005172765286780035203938773604969534473409327430751134642053817989371704603947438876938646472710578878760836192835908673070048683892239164073596633717908051893851334263422453351623675715962563983235187676096038062264298545507298844882891683035284330066949220211458021654561955482171153899815271322590105568510163870893688964125783709978205220901161310022148688017652749648088421717128908475340360897673486882581218947846965555150711439886699628135717381036744412566863062534914567264764469919131304627607448009778274396578199251605729945169246962834413381949458018767171236763961825513857241689216585915747887933719884003152194841403193394708527128834917928561757689952065595565033180012724606125796023353088880873549558991137574596728370588069033498866820444950028569769053569140617866848728986316526534301210359905903434345408154660741268051390637870520638250116772996177731193852277826946655844192413860996264187681725613142491373627783399246298461596467946657172933286714348237387563695016320860670843322992858512718801545062475324572946028675853317429315219079321760209867645080651878937438822438112680050418371878275051352241274781132886444459896425122092701422296725819773903845050518473539809560767047359118423052841267157631533887460211179140448232166486230234227445518682389224484991820638925064590123685651936224153525750572594433191424387210953961821605379621583758480878707627431536448978634785072402331285690406532427810344333053943369756196469902229224950656073451096163118520229399149649768219986183728246995967968710810444913685508552537545531209327935546115652698720773643872543971890146300164817230196454609904420355184774476417067440847915314232888200424921481450630913779372319635644608592086632385951886976112897184047619709704520804596527595088890848977726128992129771892226515085730188044955344598459384897409369280232776160526440378670322092621415524713828161137194033509505378502201872650237214089542797715073419885340401400292942358121092367358176186038122498419144042317990209320923355945947340092852131395469602159166441661143470298224760510939030272079471180492431063114160139256904339014134774337674298862480805878521934956538857929348840322773533119454847390598420933538377107149034007186901422127542305981668631239594438448785149293756164455313347460406242246237020932745025134725181604901489452676226179451711350174199140728408830722936548068793387277184595384827750650123244442857811965678903086589832784661775813433094367169765063111857996790638880946401697138056522338675451449792292494444538298634133140464478400236233159761774489786102179056829157042826207201259569585597015367605005940236894081476104500014776173134718694283001374370640736805224556119573666371240582473752087866251469455469246536866748288710231116281264982883158850795116286887557401547246668370601589224071146346135195369038249141839750262739581763834307865022314428406852756956851063177267288867001772873851451332855444905619268330793366107672490991917740726616412825537856213600630710532177420192819663581847837701954791076520551486915507671902625533848200666235280705800985941991359002514172245736632700217547619167069660175940650663829193108249436690478840418211969914537458501210739337365277256791903715962674251893090756284410348310678103933781415010656417868284861411974950443257322937302546172914365594744982260976125349258925862598828459704767338247039978011451675565445814497086697442919366555683851663881767932322306404416049510410005964688126468086030259692091992144611501241161255737497877899182320961448981866750340724664262460168048208927790127618039007240152391209386166063749734020913037703197783256469580495583572255221077483374334503392308865778112771118782336105280859889548728246595693174942583148779992988762919369882949934948732430432693638295474138710373613661781775819249870577874526482355242732761842330622377613983042906099833284033334206929097938077940758046152620249305981969659624681151573990116068070439325910037009562067760940951746709816897462639728017848493352051480264013063976883464195570591978881589326226502948708779138996410117883114930381418638115094960271905830013997550366987498080251633556214688838721777994883488667397765439315749639702852080199000162842263692881582960041930577203769223486797311693631954898735338423292249455749790329611250996956031459139580307233672398033485588829531964157782604098761304998276879343551992392774356489418859940126453356120927135956081092498665088510197261319575962036070640826741422278831931964865251199137669280008714043441401245608110414993728437697972849888309934978309291634346042195345347110271722243331279382253175905091211061021026644560070082088510663813917090380228095332164653387925052054362470639421226543090139422545135130516141022612138868994097693593930754208211764581129639466690686911782675949346376779854912878892613804208417069315450832640521860351173487738930898810398859815745007988241055772636344659126978408264922986500465841721518230012062991458462610042106818061566806093883882926495675166042104978767943300435082091121315094992890443025626512876191646534369877628105151568540515368678887735126064371186059077568400121735543023719179323022834087723981373848672442679088899151153445818613010342887377274596578578849729917643214582506563925749966431313403493960449300047627147084063421507716416271091995950995631750245662671757396378401123694814721166063228144804703524765170129691702412962802921429347551412786650128946530884598872093174705820956136158484092450868308006154724408480852474286354982368811279718665767316399227661347214289535613784286866891331037311961022244711654178377962554318801927818136649407367968113946534188523840114709818707267357315536377099175550877155281786928863569156058464789659703238706831435374872616638314682752925469681595449725326071166223488057973246815718205269960354664526122776823001809226537382651282842998874909558135568274333719816854927498851635889997764347074873404164496148037975423767008239930553487726350239173741418910105649288191419442589723880998740672390246855282325369224847190211320619530329342582691280477821618579401214342369288788101328447504290079123384669567533208823249664773183193145121587347836699009372023213640418207285139334262171132027608740933854426109814311109837042930143280519632145801342078203179338498071085364315432382584276971762244972278288853169307648904288210064413102173087929890736841473034636673692857705762945696636540257530303765217343515471169969052879009544065248853314931327185892899006576040584099412624503267849993387525280013806301961326669239827125824264461922185352795344533087637024469043547260085487047304229693832778412266552190238911647892157384548925625014007892961576151089622385430188523143488379459270851877671324860233351982045392486333625048026356028956172884855554134336033486044450084290249768114642488747181150588845508518431324629404005879549157788741038446705481293999932197745849219638047018782896502878506712994840916362684295408486058773809391224110617896267938971008518076379230177264120226337830358720883086831012290384311529091526331255935894652896963698050374746331888724548756435680051649473900012858552917417189663784581173770811405237576620375520819451419497998696662237167302645921753524276539238910729977904426605540348604315997451117840294701048744581621037449651126038445382369972684103252998660596286231225943767704185127317515013831812409916563359386775133517648884977797029907948355108172764825026546584167871861649895287229893291269605668863178533544730708169675095822245382395136894452856996321143802931685076387690181350813509075825492366362268308956039054038723313626528592091576596136455789775304745914429768274439021139444421086937383663686126770086239285727963903980118683562040026351937053652765736476431576393338785709969742749370755964953188458698533276077182737252759783278084340299325814075409294853371738470208876233376750184238705294413714858238969956472146183357773954050753127214028844867069538568622360259695567954719643121544789293114851142074015418773736194236367915393476241698185724829002411425750657629963506202190120092598586303200913787696189777797759700637110112667216322887862433189782455732033442442953743742980209826955500298728995856251926912266921189033668470997232107216292680070101684609710500735446266576764329754483024809718930657582595949215857088485476655111198086606761242504794262903853442257273330340895488854214054499121550136921443754067173013088335569654034212366835054587955962732285177905690117449187726657718811517659468814852485587061567502913475799720309461768404744288362302307056129573065503024533435886123288007953129949720905962519738771669778279784299985405060520643404507640599857030126079129020073635011705408881702825442164559086028212821679671527776367583076862220473671123517141283895885329020214963647899786884462561696299554363143061623341222969571760605024135589818307803106942233245795033520428499429933582059681401538144412193292965999009329619673634723074712011229150735668302513612581833307922265558617248592552589639698622561913620209761231191452616345460491820877565535175007509752869669320164244630650798255890326812498752660737116335568709059648153088656689122355083172919401699697258281518012269668456525539026932119045524843846379045851756008897623684093269762622812566626015359913100146092945626441040075914145015443884872609147898345959621165270685711584452727337542594666957603727677134379634263956201337856829279411423728719639959435305661729276916171432983689918087498484196217583389364921099219606097697430281382632200493334410386803810918439408658034269430461046138155629746616796201273058732441766434671479742696272927370290468126425719157831963389828661102069151719119546243612178009107842099013703923092405443194118311025272047211011219678514665280713526613625654802276482887423981739724938640310795733743755598724935825985995889293689219459957012160987875735643275764356801509746416910329842457247850457160177240253540726905494024364595924553544647266584144621345474816032575565922717308580772786706715573543846109546761066113793075382242878186813907331216716767653838808818651935849416985200265556028263135336280632788895250005215656160755088566507232805410311590270476511029525967595113820142083927859186235117356326560620657396353449971979554640229782915669779059020827512448757422159028857446364987116654103973405963807284277881990975859066250569505011412560602795397797292645308511041619462002504749222983121167552589922912139341892431308311629879690878641960008645211119536392271542857640464340659115671208824921048444206484213777616264227173475505836915506694704418925519304828887220955272926294041662741508212074020077354293725174073390820366497436894432767082669882781919532761729956918647899895402478936639565620095342741047823433348094880723647325526504048798246765055305457616019108204174038303152699215016728487850641660704109082048728034924732299329595518107668243448369794190280850494959608148520147527679688998909774204357498398739082538881038519406936570704838428738352257788669613599619531267885163167260435337636866502095669571984561421542491522772886779780952759387129916682566113248118293487201477419460945950361162508562424962544944166948501555214897989351711765772238459231339644476787607619217723180571898009315580454450173899812887808414440758634992387996418409057611935232526356996556899027710094828732610297922618791595655942902387731345703467996445404332786879609422851636920200236904909042862915977539856329048730847161877163062940007970137023037276947422872087306970376855129941491946842262852078207871309001101944593924257386759404594236012299628577095217385054138249030752011294774331281267674692997702866028622556404251076173100822417618538908964306476755773301994116650894113077813541661133697813969133249444957400530894407484475968034568847932941506190098335169773847115858409495558472844306099735403206674439974622409843059312902758594730099295088229504536362368062322296457516577986783193940466358845478121860475615349259165353617505052306338990008881533734090523561720923543237259110613542370691881155182686579790498279622630472671145262918052867291523163862615199983783387001300059862383982763187563744779831991480950559961268874842257697840477159512400677808137081396363767305643150673928538761376762739158652511962625380188289382710567426665724996371816565315978149342249270598398648381840922327651667017980352567137735121582516341758231951935723352758696287862183677728761307677630274193668697219292761832742579330998355524314760823492542486009387865750728595230566644477830995799692264825159989101968385386061385791285727732658650048469290313251079992861960297660455108999734635357012331298058242541552237635601447359828604671725234969462368280749851503190411292743191592954461508311857311858184760431077135398292997893673746639952612274957938750673047631942873764925701915854030118537142121341027040018226697399128802168511181251804801926854946301375276098404194054076344736006700612814945524693340862040811291710588934876256480235764948412688845851907607471487722897939707299528679138525786281589572691687461630900064843782677823998402833939171603382019453771240516188479982746251922134957540536991736665783765517928184921173622915130274358377755670339541467072623000919014099263432215541256528630745553908366885906762436906077714781814715367355703089361451554343031350225736031588525429443746635606618336761433764951374981850210888229286103234187377087031322181382075061395773470236679988599873561388655922914471910022102723324107885694761290128815745665062097829274497044722214941807053934866886424675288323588712870326801589397179992560213442068398296497283497805721470772736317846818451735028362419002358796479034132621995006989127218939965392797781836433437188872181986232288774391495869172306442431019588310418553604438410883325280851325592086167639073724706569417684577804663503155029305615253191154916368553964825216869830604996183804163609671351367221161000200210019186540702281391198621521188030071827066318682916959861084214007977165127993591456617005492928697148946413036623914374560113765092068820435216007122443902892109835042400970023069706265573940142339747896270039688279384997201061327520093091279389128659154329236704803735862740914433428818081573375775955217683541866917763622807135480511708900431349566622840964195189681605789752304824901016802153200806124414638323696715170023277564088917778274768805557208119434821069910207300536034754810444875631497065127760892934429407965979328196899068299374471185121555538271728957313690756994938824992647539373930484734683271370410825808936251120730053708689475111526407047231466048455065361390970537553928560419921846578344212835485486558498022167717264440590370941088826445600351358260800503648881509463546891871510937278400141721325541499294217073057537332293161307519626121337259779037904831185225159511475695642842858036322952885157498459620079015200786889535871255378348872292224466915949372765458047635865862606128397835533999931294482570989153123201887512471018236581571811673455335380614569146101362173443244844958224533832547846484679625904051921026402346321034568638349521610550889419234282178312256318141695306755640558842993500698794396782726341573888515079097826359125101386244369935881039286513780650219144019274072603182991146333391719602621256027556099700426407211169698173008437261869068690648245475345167739920816618497133754885935121016461852138400647813450431858583976996390413763931937217222422550696997405639563925006918236818069171608515392796870616248729210802269968792433619011160037989574435524158011118895057438327226694483777871000533900717303115235777770091027698561151288939797085567890539238514351118542157502423134777225070184217342096817284730270212783321490200082640033085793508400869452446866720746181461841067088973327285157296694051084797103304823315639986933531963304760296520293352562990856187584188067153583364330788910682756941241355039768007555985638399350416741551618219244599696102891009001766006372613144714537757527330947230973528886666276520488967595661893897681522190450946832071888790661228079960720960225432873533533205696987672150374387467395376402661654988339150882567225673331373321332189595890749593014883792923233806201018715959076854758150756808026414999420191936510876375182733412175456687371235248748225621205183642697742066422442641217868938785946357927587164210340965713777988692667861268710564730971421470947587977853874895997259064417028876506187907087004238416338935499333352466960586246402523057182660557926110902909645821804117365789907873787397780808736644635997050873240522532998247555201047733744711169950123282660346035562798937771596968542027305731481482056422293374340917214071497731036242872901951092012463406731045536956040318130635683094387389615037408260331529590863133379864968102169662464861525654403751241610994281040881692019215669010339068830875095032911735613137284658031381600970790149589477279233267152076165777084431368434387376710526338978084834984698247981417700133095124827399078303658646780436876090315471044396010577313164172174184624963009849466902158025605956047121272919960539111959241083342159336888411759656943480240110038929993548073832986162009745591540551254961780077460795795099591059205366718180498585018264326439465488978941684691960045060776001626231389993985849427382222911317472192356880620648509298249857197501461151836180089543802559677189052887023392984572735001498948783321943400455400521906841289453579363088070960379923034875343512170913898108416109963918351880997611884691584495923556371292594882182570749847524793112101795583931403021580308352534800140902160325439929083531393400654696131113928844950480425622442350830900626882294945271200141790966066909651260687077969649484612759416718133990325345071037132990723296796162009746911722567295986551343491122640027965219774653936676422520791205027757515596278991698427335255462976432553411140801760185350090169517985255110424780181145292899152128165952968730773934209825686275173196995061953081375269267919200797785745932350310655081455365376001959277278351887225195799632654089151317827709646371925944156492266764919287102666494830951559859123745514693468010559277710482974534401798619911746442469609317019781617113562662440547005484814676219250597807188661088392233863546484987736913839571174340338207376280750191867553789668028612647693269468557438999686564787123646135773297023274736792311146763228569457030873700379179224199599341423195868051197203130523603582919711151392901218406134291224346073546662663732330209022920537598439144978359593339088295479187588099912121022424482501810052579593406499099577132207803260853605374815493657962928454191954837148827980578998018287844007273616388553677060532268089371365728514501432160168428989588730199775966552861912522724523010277464133286450740441534816758992763945306605502486692623892831087049872897584073784606145938687328094225857484976939440903085121230118217779039400256635850674411475867600464047011203532830988468933393651583593312246407652467678876046988564639545461262306534945148156671923857123461798174868015986723863967208676979432697514900778583433473367026117380516028450617353246334318217552864200148021785178156943185791433756770142968787298996388391384730511736026650201681072260280155598344987640643696354063623902416415898867874567699718885291943696577882641162350761841094264564693669998401372563986582566533507410568050264266434768405830188289849480641841869024738472894650318655245489003378771594232559880259285907702540603661029502141422604363623127167412787461418632459792038414111855594924101615887641199679231857087859046974679963675094067345609343103171704943722512611958151073440672815282221927402468374930192166614078515029291498695217412189920909686585777120309249761201973583437083898391435566256367364465198676817442024584703746528515909336386426576773201183645896779124926102174106234450935573670246351821568373948275868976138635588505103490340900418447576236172969668000537761090795501020091353097883992394036870385874450129986611705777972954631231770506730716286562606694390585897837351889329113633017213258899689330539478227736756144587768563437447873296101296564487564565523799418343843657550166948619640413346718613801858504207285313222335663188411669917793663924688007450975799363812471200513135571304322980215801075080440772960089532578029199070216381013793256965529090674147044698569327291010051054918000486266146036718472405471256807627694333019919064128369110425085131143982460196651543431123496581361516562929601289190461142990382261449146806152982851445552029084656851490342166519703806562409534686889456712345386583139647198523278570284113021000583071513514427839333307383898517558275144596036152376154509072139233421834769307742191226644460528703719523342308227785995671473484213068439929038301285846121668545660207611987748509513590198471940912807180366086813095814220833929178285821753008588797092927981421521274856183463848822821875044667989484515213732062092834210967005508960029867966904190029960829766762974197714014292820416239456238879591107570763284763111658830260838570015104047635080340756447731437266103100284930377816916164856161774861337988355275895960410120301905348934332388573754575766685540772531897567487892142335265654022469108348605776406136168122864655580340132809306909356336816457755347688642375804332283907852577314714009721480660706644893172418998005632470360812864380151884738287171564045893445511352098370091491223823516517886986188246903754030887960569625959487342559948516418146353644396045524084896527480439945124578759264343792838049262378698394579753981329061418663729574006429773185396567759820805147182702159876330965960976186059759899076950518998526416344402836812707936502108372660530273132339870925398235094368887898315666981554138083076715607979159627855259618174707471921952470753941607708373386763325433212712234936209828530665097151116151066337299331149489027018351676570109838336483056697235409089013488948232853413824159450920328201111211783558392668272911961155830227311693789975293311358877398475414688267938047054436004058930289628474183930883088357859981802216904566783985755114460790449285544567717161040660506091590912808364112964219759495143198798636575698753996015700004766460289690936775586429581569748846474749188569380628746384288979494892470940267830148265010396345596041740932449241295212534710410774051940828658657955307351082576650434614985034719553999949273673963576432790373217480091205446817306093318137564060586735195960603123619430793363328956044411226280738088302338574038482902691685625207294691188370671329378841574267782701786268605194142594486319472423336123000325948116705934895553707407373466685750369154850611854738113452226605753309259088741434544432025077999889663003385738144993068083927748741389388606299299189848114800140372588029058234086733085779212569329277076579696163947479372930854467364607368231718118585596892487796368922413694527483150586430874303194892265616853795783617885068708288255999427832883666726545156521089361503671663677085897552845090218454045638299847359918160828660789048390550716985833850478891903086857480869416814605234508241145692295789425772220268772974185430122882899149945019842351780952961756899771503405135874438437239486549265039083551324827445588465107938070328627195188481958562104837701743192353614176446874775865702084757825707535811315092981149197804327992391867916267487040105277925134163324113251118966811628152337293866677177191007606216901003329605819244153708589609554422161375296272437817668780405779149233704211021413596517184838240049051580849824315847876671453032724882397912007557954322899711959773233375489647448636167087631515992934002683291792245280053781847948919483466860141553327696024774739313241541240593956401303004447456379856229473378626124550300951483865279393870309925852925442720185495781910548853756246286452477266413367235415604467505245588458361377131630969736777925833629517310753985574675801868631741970681439309642274622528895043734032928970660288888095218146135509803800723317289996433912829806961101976038433074021961868829161305499595534492122792686757783356157175914277409183340156442282059091044923292422401706605087721316454051546967521602655961263335959871659970196744393807775239316244530339043478912524299947205904008946598081868026819553020966333455335282471111919389524310177688467549985095172507266163540313800763455516400945008578129141363377847758456028899119016866416555649777400253648272038930124081444366027534141101446484763853546246053909980763791612439186595669563813801137793232436915085390858220828562865270700805997624215906954116045490609493375171823674689593647902207996460431855536680601746657149261182006685820144244577788728786309711794423922314036442323404295213551151798270579588956935002089228793391963375386695093686159864741355404511401904615687371028114133858813773262292232267141292670196928945576095409960948139841543734506906148019600473865332941532121520781305958926369691180339736338634546830714741250431628197325912114663173936933984346769898732230606230157252413740987915768156654962717984577432542640296719904765124252871576595800533875270646855071050881507900154512562261182565980424351789531912282005672112403538357747640124250320949665508404748644862750991147747893459829576699644346600537619590369475696410859564367236844284550971546995470776997508351033952732918209041166534634899919564506175165862291203286955003443656438624488894846865039825848719330881301390990387777164842129364544346406618025408373846607816207020237585883584067319274769791650276933126016252206825859406825617489794758581490862586400561586106898122396265763932660101752978405266426429064783299207495376501120082240723352168677211331006007500239697233552157553312194155410575064522909522471591049906565499908995762113163708737716500024967434148496291163352289646979323064948204353758151512253701655856326333918586836832071413099297480528358386911562800519346828005327390402391217441633989658992776921251482696842324175164014132170445967023324160439688939925219885914655036436438489494506656582271818850369562137980073300645920341515439286932343996583808717586673851221720060332398655524970272636814748796691507687368066730776319158209196759648633226060401172073170936473103327317506102967907255711403684677611992476581249126025702388324642847193774263348670466671701799382082170366904383404128677069509007065776318774441080511473483338865070944272900431248818005518602812101587264363639364896714956711501763393752660391375957687343948138961103713396228213272279310550300792163626972433526712949401855437822553800128044079152204446382343731961865036992694930148198624378469769175569619022398738393173832056172011655743639457390852826807057401737059802973601979045805635831380672704003523376219392082437909240308558150253721760654526330158121812452435553678362742092069317443418938094633960346273652482779778538888706721309351591618820280611499994415273563932484426388946155800790829233016064741929103232491507524752236448383608383653283551847753340056144115728590087678830005535901359131656599290137530617413911517254729166537490888538614658146017102522827182952698271997240359543377929678739160939844661141199551798759225292707155266659884706866750974334888848296555393512128847914275333055252389420904360114781757297621955162823837430652718293246889598091240059752471580140527727911899155490725839379361890436159617972419372649953839876934595512696063980011608045953497518005371516234480636556413634420311469564003293494714677570931493821021091597511628158950147291913479324054295232845415452658974750204543035815141753432305342506321907654574674967546193536306286131044479392030717985931666244737770875007105027421549487204099620575794869011925992792052097447690661751076483461573466726468251754776291586091271533218694867703475090773129203629622838987936642380818183118390872898504124196189920683909746055213258163591417119789603254755699433825475853539108549619469433280433719323781248780966504680057205953983740416367342518459083545308786363928425389041325462214835079104686834442024152381871318569583949595165730572247434730910706807611846730124975748080835960420630812149579975156463356457129383039956658886919093092642891570993792291289404043174236141138558698135982202631010498309017995254737715078858565501252055593774389778263468580373804703428006752445576400609853352961559216758360768615053332283551237935778380477991670710223684223445869707822432335824442520322172829392479886034335072999195323741669457565950005743833572059405253562918889733588764254914065815407687828036762324137906307338880843325738576941272471937143030170703164515461291172457336231007795660710144399347144790101114828585435962930608919918262200507398556098896544932568233614991018431176763306295124801734502452517413330690981471670826737448284862853388094339146737930788802740430854926633415551639914439411160468716978807905810553904474414769938756236095503318095724649078205266986247880503896404948190603807634799092601268944428984681940027453242076654622469984868494085429331241337534344977573216962713191474672611132774820730542222571830090207545926145290149166822315194021310210495808027861444618275701956925244941740270913522336775818625867494024121552032705254258325785466383433481230904654393161748468702476446029181203245641521189104597068023122293138957259242819290524489140688163493897332414326513463799111999345638050223621319676296795963972378855201196019441066540537220902882618775895324973575928992699715663823251916309348345808323260819065969446391698072836041957475978315427092150655857198870760348100230584162867093563964405231006493125593954156737291904217954480470525933478331693285437617959555105261628273959883786625544963338770293073273189889122765216282006287871274288529862136484990690128780681444995980325289071771474540764943966938633798935169095885625379825839615018226471181129774465424706079298864443967131835923376017285855986825712208266005009893948414154838121958654898155466200554530031079939199114446527845971616569771973151607351615597039131167829265846520236690197506377415984493363165705988820979354481627253553205003031508843794731269421629925734411613867227324737818465129070443119048900099412860886578138479375070839522783054022581101986005376297879252786876538609527144816788699437591974969591774765035923338707194341230966200961468437844950401273164071458667148920880115407402990988572486569371931203022282390084605010291630713546727239756686256852763225630072730912550603944784322605408100681957377943898259062522975594492828209016242076162682489895292518707360190804747811024413737266680982731825299901407807612522204269966752342205050758269084610713962252350915455754002864513859925558406306022670624283475057738515934613099452928481161837162248962277792711082247777888538359483412045983402299492028357151924240653565333699197200780398716452172154758204027957423784026365931581828645526758904818703596907137683561047881668304917157325730978274966929623740908213499640116677753231414756536334234504321625880389011904358740874926693180301696318059139916108967513788518920665414065311026462901610599769058390774077906469297005218829189365779405977590082215841342881520000094742157442056888253142602168550640177699970566709919847234823479178203444638864580095521702106957251344798037141227582954012390278314629521014127552256236542249340434351621050506024758722691372235719025613425483912333343738146383116857917898991607177473176946497663439413333842472576567834520717532492971247489899869781422984165602248409268879607411314625191594807506966332521250639213649784151508146271316755018874507317035026952914698144768434106808745845105958218788935467150156967965254929592598194227951685889272441474463768075353504453984152212748084569201304700606336709801458227709396023242643615932014263410006699644642187112108973160171151068506158484161333413384244059741234609910642249007590852551621422276294714349852763286124895756870004569476519109563814143791892500396990870926056684329031690430587226361352405560116687352326837205903625008995243292691100514461185539231386302150476478108954572804160700393843535963251597819557584983283676306885782346095079056967772522205952515981445204250877800381801518999552729299302773296294439833095523970380511509837727695418908184695679249878269005642655825219917455097226683460441847862182421476769547640533236082171959016026392651048128728876608551953185500932327057639663975292026446731414054195360497763857057121383306747398669356699915359106852326022639994212241252112565381216150403000623618146343991998249153785681513227634149964255473693887810899238986349988392705977110977102489531542041586673502602665702464419621678131575449925810389321803972199579903154428664250555904158103858651384191790890700960560611798348489922884538904843215661680918207414882538490675518388791907652455496789272910418080213214403089414395881754659155194943199264470657285721873070953949245736798069799308628663658354393762472997813790795108480316962993557660914323088570781255691593676128398423323852370537814243833378715017204930655863211292089126778969817225879252884025546769579175674623817150279181746644664199387473725976748552112154443433873197944484529935289603213958698111546452505119183762074655422833956154911609210388110695496020638080136538591651025861504852979567840568533361477120831225714319766508027176073015634331361818800278496560117677864747398608859844288403522929748809821438073958050839833852183368342838254477699398040105478706017068803062484759989034692298883130632738991440498898057998737849279237393079992867957863606243310809499249473662601541755173888621948275699217336383002347130159080675574324162233267549322498077853872095635844174919538371387948254728226565894762658378869499330188943159855494915192031099701831735939319996548657789409763490464504264714180449493527957809999851791500973575422622266138521369303675058654034838907313528571049749821729019501009741647589110605047510532105298854024704183845081333248146649391791597630224801722513552250174628767766507989241733264872002706985729331922546114875426333233178347939826429175209242070462724977382196032048058782900587400186572822058792978678603535009073260622970157893873760979692239617950581729160139236434988812429388040949701896175418360112853711529125667604380292456906582140851309401482805354956477141779411010518668765614481243690597661516148198824337302992523895606452083612806836572424306421786888452563321470688887126295655983276505641651780725946244899831503801838325974563562954354533970509323987832689708510099734076829515634166742096322354104431508962009503946443428299206781877418336598210250806880055531739904177022573741536442996965205268854867809336090390091347126549539338788447809023778381540654336688435434489671154472504038156107924507322244220212916046111787159744073638145434694504793175007492586102399725232734117982935437808773562626688604885885298247846357583172980644308536046880706736976057855192634713530531685047103475548391062326197374156645267868964385437221905272279053967504055673212739303998864066316261405142713503857621559097153755884654206472437003046716264265228276562258888639458764707745498684532039960842528580043666481914200874431661681258127345868971235107207869284875382982234338292180128735970423331501568789315795375006528980587903612625209572271343691267400779702342158440695983555319490512213173627064952425875605650577784767349922967104273213501586429823042245979001930561597865260490309997598461785089191099791545440047306105667887839131061158941074739254480453541331407818354433329181302962083927222060596513024632734256870458656809741462079636908024567821001858367199219391270704671944815000248897630658812958629603775929157427615114606614764028897898631681645851273852755002614029112320930460171083880712520167562992286425884129388187756968402948363073377956212490493688884236109419867737939587385637110307734794528052351542559714494329429775923863132274728705600491715886076226112254457857558344045348834337004406811517747290824221516027206564449966566669012403419321903473314276004891329712743806984527199568795208275631891080209873009337978536700078710744081053218004597103512810790981121435517819622546714808622944697217143859298381423254087654732470906642696757216031878633939666652390185621951346211581454498225443642784607730424674324595995801987521692855931380550845572699017413793498133259901382559004189615176990465876495532565306426674872966054942388216943551639926005228188356249242102475332519412735992902774072506625441961627959918344251843856378985930254142348083959445932689865933360851471778555262309864130649798610909922915272614662201685282410448126665893895992955144691433684856242867241982574122215736424186120091357817221747828998960556397753448254702241939729459353916642740180024912296373659460736259882594453045010991052290328387136749234729493544519417561665072276417173396440366559187584070619564043185750933783068733856421410384726509781946604417657866316744506878403529669353192400071905744589186860217804572017330923841580041003453395994587184325487385903135468367881717568427981169878879169972764055835793495541895049230996222827052186796225305874483230335350460632356593740763600212927682405032248439031493908512513192595640913945832976125132094783568112083585553015515271498674705694555059619864765898616486223074131547005540814077397563369916577943978734858163820761731789206068879701314079176365286898514069811176746520759150383025774286687802114371742542116857882856216646759436491785381132160432012013006771987053699394668509251730162261242775407347289993999932129878359832896576353592436667328734466669549840945665484653144015257305586589728800383823518960434610309982339553028689315972776425061368739305455955132367810181674915205195246187404802229145388765002598922667075355079647283876488850956753666368947518631881194609636576496531266527170614700701457738831014538960624717914396025288813123259694362328165800626627196120153757133322875393752025360893420943344936496275818993314077829633903931360689695140394908243442326523657962778587908602644977998770046438238666159095584465986348498959495405920627943659819431287643018233995108499097889791938905794811236513566218001636809279882579018234474971107046722655166108175725894704662594176625839145051548100174913411235423817356757540753927158126192782358921446558477749121369096862163096543795936648139300771076490174095495563329430429711689710737121348779710956943459663389199198191242709874813390599675213334689825977077455117380806902496603892942011466101661592649945229859688166591561968784548997845666762373167968313857995971488195719971101671475742387654326889780145387114428667673520879367009351234089166336645198903574178856803339505290124550634637762008275023919062565575615968786120297123125894516066117357286810937357608563608991797317497419227087703001003890792121211483184024634698058237276760920914908264772277328779641709336398644877739570606816307579674491629086071035125397351865818204367608654070793641007127169438932145635214706004566832957854452339059229491771696646098752559978491176342759626396871041157942712283203264001710309545131534246692371001623170178631341696409841126159726397222000132401055892475215113358168935673192864224158313746977228549484690949769467084423695046975828214467962826383443108969102706229916221513899630436442203622223479038491554002224667282705677399980931656578408576354558287162170129420296720084058707675573586052956517678346535660417812763968209733203222178362405973070559683356885825220311240784673577392049706324483704913876327899370064870821380978206848867668708737556225018478750783578335624853819132970240213331223053622031381433556634964750559207015782711597778384153800694508919227068411174440894223892548428118366189093773677955975178121110095377420164850855329914524174900183571188742916608216457785906360720155137405362008159783697090789341221513829909036038275262086166211350249234405933989013474167561333942449509410051798557744205932161537803887892069700194299272952395099632175736944282827359207737283619091550016013104445417336690138847282546904955875250472561304291453759344206067359436578953893526595440833252183216993648746219249800513262340679708799028645926488174804620549103686857370809839488214091845736950647316605281647180699350432856999050370856290467765939938381722000642039826830186639013136422224460167245892345244205409594353459228544578884519581628634900853730980028975212301056689974666498044399612017209038027110408041643740758492469385489622299406077846196443072947084461264837745125330536201067045446051227276490417436225853631798943554780739034805360215085921085930105314716404762712658267947254337738545807619126982903639557777329837524168342223131701215534969354484253975950520603538695574165498444638247747419916249376905332929655991258346537624514635151271759672836973358275929097902601529815482132699698740069359760288927452564736188641116750965885394761213627643628229008930639500281731275955588789592346318423616504111921645483401389928190772790921352879276033171357212265928933631923258459909218670289225719719344405098907061777332764309132364323623006837998901645907708645639765262231513725969778100164396732695294996340935685596767287141059724476347344593940605327604637303412213934582993263251433519106767319274648935619522031448789126159044368397592978856558247656156044345583700250914691611089732300223109220222229126543604400346462491238454148352030072516394787372609138713759143861586134318430355993241312925585451442722155915411869109132915695344055970806107862943039268131499412181400672648267468973244465061643838646929570083834547490823641058417108210256122689738117537519353656889215282108423947218687974670882191700269025195086470569844606924308870797967424537100613121967037700052631236386755398530447519388600061146037976596368924701788997687463396660042338007808234138226333329904400122516990786478386474143423806016152139621917619059486771458048434426133040633913578896936831942913114445826668939675054029053242917698271365963645567534619764036964629785691646324240505950891562650541149871909361028016761489721136686144045064318255215494351410737080761930965080384867925900836089383312926587152914924392243764329294511420717101099425721972867204452443956914057657697307290398919591375892275623620692103185217146180124175930728547165722745988632115541044778501491499766383526660896960550191131315104551793874918013405236589861716363374590532254595302583918317688251876121827278671524653438659775888479086794438826854180565099979731477803470774448887215906089120353451131707118916861302791248896917569925992641633314074115752409140699362523316088659780568083290792633072521429635843883278225002080412654573829141363563442231579219229757136325293571206478655188741504981453346077597141245064561955067586113763788119269914794253144076477958911101679218793881681177871300494149848302787425216310574093688413591253577001222010917117055553493344602430904078166128448638075522317178470895768418438117284464607062015023753497933475049175127496652593231508702168707260149810134975226604537424319349015448074235986402111953703527936867820173981203887698902090287539219927244056615582410578676743356586623303371061618132809259712161290391415333231456782579655678523438139616907846990592506604853730834568439170007506148597643084385027601624631252449762867184606750258810178334177555455942743200448412805856023983844604394362916006947942045245056343061471536887484486791634573283981530921415582800888196250208728495972177999186753886306656257948659446668967506537313870753585648195565745373393379206890754381478771808763222569156912237164113993218006928064240354499212764481684269039103916636330405668563663213127038655311498401324489544600428519025805869634954940825013555638704906199143573618044762546874808839484751284964614546164505866107431330728430159884085040241640710617086399794220960118268880675333534987767537286535000283395451165409640891109530239504145974103456638242790928591932635869062521126041823444233855923747092398738750175509517034880809951887595032602806748582096881695931725379803265240208572525932100426045455322619068048569120805693711888648620243726650145153195257295061111040999219526030113606959915844512678466391225119626558199907724913300463618429363826584687755624103543906249634072196210430911335103139424452541375488129264016510721627203916059803383310527378865907940557856447372714722468257875503997348888144600997328607467404482290934135141591952335129273886344869227853135042804610252042382726059073716468440584169552659621291657766761628056268670283441692851193541428618032775525951074795815375933233932618412099714778259861918781652481728437186840350846409880967142038986655687373797275196387422866478912489846655181252599169640421211319958525962871736636453690325044964786169787969183046717085141497791807393257425438812376718148482834862698067439020615795341411041703437187022467514680699764191645628078226973255496106629769714785249735133969622125858309696777579645622547138729898240802774914473914130667640932157408951445063648767249002236249617919893755631659075440706614120897622262339441406441230933759045146628209050597038571836867973668816900020259109864002476252863014963459860851105436159571273613017104628350925808333410645664226458590708969493749454391218536381230522098409110103332811964014725485906020121495542977810757599198281831284407226266355864143485475631296427492839844057954661653013988868998521766422217061888999584131955413357370611132850687184439205390973176085287059811695917635501167411891126129440939204957115363696938516020540176905800218700112763927477259307382378320799036840390049637441040590888536041783618555730966993025727631687644466440878261420249352224057885711894769395187235301309566636749275763041319242645131905680326491598206490128678673739143966351184594945052388042948002426188251988981316365714520047370734235750939562320967542511334397536948004017403127114917767157251687021315911943982375848736725863914474545801307045988951387084115380267912001525932943490824241183184117914769740033158537866949789743084316275176679107804573336195283608048477176908686212189101694156545451747342175934991226920234091113243125629675032206654687389423267799273015715159065131624650697120775097739024182625713042877074343624408029871296777966979774640322044402069204122466923925096411036730557729393476735130918898240725182118502255479435984055090072497335149612789796212029756189642842906986326702545362663395865243820605731638645603562834233289341815457625054934617975491396753846790289189858781951257396107389058412709844022164367703754444943947553870008275861523606894245556518203591507329086282263307737236928081440214639427795573736435529917745035670983161231430462693566615011206662593977667629867408906201672338573585852144853657824029798740866616746756644430925017612953976994012228822532174613108853332916922436040004941906217074142437190656658357155964111084921077891507447042583798379009426097538338029195390140479642247653197464067001421712543836222271662360726189558508777403150378201206362295273691789615956139931584769252393144669262630121023759677379815686161952017427710682371706781362211374567900418040155062608849479240480962238520733426463664873948328612937999380423537583395001192848740479679381857767390352429125823416700573791823223292897043601398432864017012800091406369785637698532935321792224186359989337983377567423243003538034246186153354138421382124264829716753356412162754686729551471520396451383962670100313824697402516134422953871978384767376300097675062259507372247484805723868507978359573987788220668898672552781736443363229339206389439031426470636949447705456113339039981469819459882822696619047147664237065584416908624017520053785368040424596865607216044990856699711699033129126244730192200698934550004307270878421485204920674967793847869350890108749198604347910284355964969987498489634438529270677324460552046770930197530712583116124342122067804720005193556704191878785259234704470136129565005747095708302697775404848444709388818433351170851310371617027877643184272866236881619410402539002766413409498447766246117493455362042669256366287452624261698267508591219558296160170470825987341452668368390565648916738582106361581860217844646062065771059430535192700518885240376654398296260375749223117466243807174998745759555524554329191508092836969021658093332298138779557984858859803615414860194141145512644032712507436772839282347056830786129338581942485015578311101333705026412750424222554176502022810201828625979693717183670981200665515296210137390431457662007509099567282600044017848346458699191713963681803493354409599858805025835935999512190629001967855333644074703635747909146514301785032356960036790389147270260002199705439169927670431502678749890287429769614450961238892472803165851891298967775056921116177805507668475553268706702326183247030895396462257738228442882093904414558491089233212678103644513152982644026124378226668124973670904621714836624089648291112039353218116965495853547998721367967742036669315853158257996607312257724549785613356103651952301071068216953970578550026979424680408940489610143267740213890510921029201096240567433471995208140550463682303256419970821498582941727582765360589710413727928328032485321259746441442437079744317225598305700315041888857780820485471950585470520432574277665609446395985980029073144995643474308665171654593279802017949992661259890270991307875199607711288699545797409284098727398749854611706582177481006836058067179954580533464618937651036869202095656617708821627147266439225006705921683399315079833334962389875633782522273506042844981401750078466200811721363360594706020541767956000792389689567789718022188747678978792964688169382950580623229373988929891559274163934643247396587467995713912675471047616469501989444842668954485423000546653095719832936423358775543489984829121368497657193029534657344320051326445822087312182152665917887509561182980650270396754998559485844330459554814441064844903312153300236229426445477226643641479638306176324712104436043883068338432592003496545954372823112399502468283172149603652711891448213496249086973915355609508907383133559010312917096420985301424085765157040469369843944063726011090984768358518850667480763487697281727655595410594143570229847618673755496735585353580080274103370304811607463570896166845977456115787697450831450593311719764123076568514045590039456422961321229626584286501802330105166849380558037518042004243219831826065584381545338247292636153695470130144410324782517920096575482283168099627652059773304068579283444523846427840684797369485385729058294104006344596717910441838487977575824924510026803635059527041392486070766803917604167531901707094729538848860121427195371076264348562380060324541666668367508746582032842928199820315068982158331691530255826564056601553590914943691773919501426907016116841212991866756398985734196987704801373948940014950918202684591914676274849349749086979601485628434088902858144920331439140376009075705530557495221931544685524028552096395940059860445231976540128326502616891807894719935680974898746439524010397788731145245437603159204858719198227856604482597434634080623509890696447626024016284101789763815626033025531233887875975259952692612174970881098916663445183247970075809898760509079960096426725063984592509347543478485336033292424297943821787490857105908715445006154095344557596418272872469933206401042402395137991891701484952817421758061310295136135184278330089908859614161916236359276651078455218414433670296913064287824558560898255163088957922591853064673396933731209954162301759284334500691835392866458239477083950611801729086124877958774584885913128474166847078452963404819373545269568366785323756567152454323348602556461211903793595734797038695520865189346074398511145240365952674520134436901363108950456691144812629851798365108308538166484891429525379932998686541477948691800632031500244825772559247919496423226674259965040686710320690044841548276270174334974717914565496084501024306845318793523510924532212127176060376580811154535720826009567529673471223307626060715111180068041440403496365777464532343883319683603854332348966197185784507192541007669084503160205307659748719742856096680785783270275071143306925394819554489300818205887485055382450223974767868985652504443809079638661210761784371651602924422140118448432833878858478140780495849590600581750637346643923001638572023144277279928878088057816486174638082901063365483441829811653369793104580650221885872392671728855114391644949709329956980931019780479593090084334240014004319267127528189041265953974713310093670511908961988608210057215945241612949729279080537199366288180977254876481271395891309760532629949213827616529616619376357027601577381006392985660609510658304240484736891275269179191432091808066631776026101946322847591957129763056177303224148499650251746771796643919434752264224613064371768701523550205531298217599948201985518842814748888432945128675445141088367064467802812305835513180767580730348134910541430356705144817861534523794091647474427392998611225315832253884093008479131457817027729475679724080110039340228587064489023637252652308243709858889609878182812411618906618070863960034747548651073296580002292985713331336899415172981217257046025434273508390036425008492335429986375188339792021261950537415709489493521182550649353070091771810142141898277621946723934154895759168318711884594819714330252172389626075332928716580276755306428653627485190367583616389141963064929816576364532566097470700805031172334786122736391387020252772344159204798788256078651926730263859355819951560467944241262690208008402680168941687201855162889055120091647145928659948263560670839824607573310210081310976714559715660727707100726766467541428346790969714891434596176452643898054192793049355452104270586356357864124417369852008688376153713877134612313496070251470512207908356421031344612137280537007969500860449757138636764935810214490755964889530018310973022365704802272705822469890496324038653890326537208555050482822049807808765999676821751350011147218932214286542726030347307096231745336890556888773538639916749095379674865052993123434023247475429276932141499127751812572469269505411028899111128866241351445214309228358208560891194494777892416866218301174256089275549919411054225319572620516230130442214902657721851717109023357977400771588790933854258810961935715209783410713382695819797673454345186999902401854142638258988643361680395697523021478510561423511845411775685027373494344494752816282656101731756101694467439551234199302266215477235230135000732708350985637840201391709431047335419625049689974696382054506545249372966050297066498193518990428330963905172641994223409632469574422536289130709373715414180641977183345947093385834683789429863666332705737765877346483259731162536445273216459032282027121157436664640899034295434248166633112163444089606438299460118073300724258569115663020470880630794371720067792538297545209992938979139142944032681168005958771316489058706659699167989849676684293607360962060243604841400633011797046446925455847017514403813371053558421713132531812789957514007373688384107541825442600653924719080302433463898265766050534711086717560074235225481343947000751056125653884822043223711491957825510523641496734757099090222278333624110168554674173452286913583359365808064186604814654546535812741174980408895584599838617658548475435256680375217250404894731539455576856751155817890179065471812347230591306456318159907305693853913929075090605633627983747689952869349332199550213585581345466678217831595760963167715501011706649467142353147133355810421918508472644467921601190150186136274243274537222556034659337073907817424653970506048731664250329583966751685670516108287750945077130966403177467272000198412204812202282675895668874336884808069111548727423331037228075319139320923003403327938590663374067912106462045336498644273395984855207397859063592531674289116438602463144270251502456878572279653348254864534247101932786813276489817458587768917933993007860270518439247850426898100553657055455714433304425000559161671307620195878787309585102320110020902160668277903752518646184834301584370956911511258790402719773048864703339973988650383800343452236385491331795923616642271462218368005116292275819429147929060949857361749329830094806687203328485399160163584168727163142226431423122847401321607633091874489637543618197051287838232008657096658005865303764838731815882989659874956499719422932628184011184763253687353772436919784398468847722623540558038928626631821322238159780212133491540942046547711769920373741067578061147818674954500540563978085190893715260225632633468170390056295892323760812254521300574079686450524322237508316500644234335866568458082491105755820719596419676537442416390238348903039527937548242302617152361245623600652472140781999692448832390972096264669358936782952835167625586402488522339238003482352892909514759187618006363561931040418782733013543696416261619189353061236792291344743684146332035074427455124123015061584293359914261452420728710767940166703793077232006768139978557442951081094343532131036702162733986359463870925313778243807769665997030368991863415506031088953275721721544189224463048212794751725766319326082981164253714795680449894770628374692922307023041571574214389540728738654222318238444616698677822271699677276204205988051309495044678913473860844984903812234066402912488176722815160438896073633341674921379343014378240683476041947820326740268383786577286693265958621512158082813495881410685615553774982091618825131842286581298375318772094338980804451204448004443220295943508656449117782753569463299308524296349596474426197089919640482310674048508811191699463584289579428181171668222997293415654037506412394393263613791616208213226235270952386378406836560812430898276555577077412371021684199844064745040503985037210105545494645570010275990783891837058449022678230817509284626748881268809158696804525083145823319172614212797719863744715100937302424915298727934300100717812570487417962142486211215782403853340651073489060506447718160896598889726924841876455588185657904314509825600318953246088911384996767847613985079271211287799755811418148537033480991322279920885739502321459636494751573871700998108218789163908918387248332057429367127019509909778454398526993291965020512206414827189156594917661964462861790876353275907799909859005178990066789366395527435128201362549102615432013014140490109893880988084392190666462465774066192551773141856968321921673853166304707162890611073326309813766602823614813779285846799167195822604986022585156677496370434290927623672749135762910697661704530694095174885193569936394030198783610891863348471108544362350965928892631448290553474165412627763822193165590696293721363531173280785370271758628924755612425820048335164438838982813968687670417427966364123257574029926119828521582218031672095496750945187132542841640681193401603024101689173836226872877312865338229548472627933943561994094620749843014440002953564424960259312947082701943070958026234705269109200665905173381786016966147021067563439517029510958540351201719447915893738806302248988956423940503962867626180829400105673213115407187167516644132191650779025567063960553359168938531061514237218862495993543322468490984062249547595736391290076037335119868950618406975518682479734449792846475461803343394660534280303887247288386125665936905556823121459258501483671485695804297482947293649494389607336068198129448432165069588216606434222559069560068788301452281179079975106185996391665154960694921074418394369659589714005859193638418942479928821007895179722775397189993673479020733290310847500920380043308989126345242512391798246428250180470232760952632007307399402977319837792662231586549128968724886513879481762831109682908958871552306788975509785727120510166151287998283824126569277815564460522334142947564614700789627946816477299295972884885600384759341484977823001108761166338470509689114224746672939812165393596411342967871922039521722673297333669746657703804905719934132540575695544136684124943831597195162210281467621878426516568849833419674913009571407764762381084807238622391396046884339479478734246641838214441993428960685967290951499967245282239883399300964962484380691544445275069085308267150644394175462151192074560501156679814235641403616613272484283370842839573729357261997483356904609811079089796676635959244267494746743956074637044808718910160982111334182316979231945454992706006102890772921609164150415887559907926034446538994066813549523176496354990684324144367148082976962204379568022258022384061179184586735289665669639622868261969469939810486590663605919228170686369151268267843112938261064663872053523816509462752143895421852163047357513652494432120660969981923682321692909044085243986368388987121755374758760959430248626797235542666597943650633551698190613766357030095312443711811354837531573004459947827324619567988782093800881855019030148996631949588294599931434271008888321107892403565748578211877939500183864901890767961236087260694212265871934639181819807736856052693998720158127175977789479234775432728356416936824590708029339130168296674492922880463675290138682431547011275503607748334923856072043622041013080342782575796741093075629628365046662944777214129950353975716963962644169447374733955367036651747136796471133547923497566987737902738181998654156758257119363631409823619277787837063453036021908852119691849987782367329417728873402079073532917020216727303211993858633779103435197951600987279565342284536937019230788514317080277438920388272867330079657018394295030633455538241931303317064992204610392096408464863083018140971255205663093790479526383756613229741433583229369708800628508904499213188054882536658544380863351352227734246964113146519024531305878585567734538018925783907667334964436313630031808490566495854634582035554406185330501055212654068663631035154313503931012185293799204439637489250824615368135499683127498018116413667996084621036292473827635120891805078376148998313168523846160530968888000318245716845469340636298762791355930472077269026541801216167901742990820558511459816717969798114718823924875734967165835337653678146003279999725509809738641954114260115817932425091368254851232513140429365517186203587404589101724446417747980467799677433410072850527424947691628632455393893740690304634337535388010639785056652178363033267602992247593070555897094003998881953900774957628135090188721345380614933913901784052671445836262149202676597966170921569182900513076804058132299786004172188596355294797080231136785617014973042790893134048224656453057352691468696075881804071727592705108755952685199147167751656467690858122640369237236302459640351628300841473786272500203990845578533051408406084347640236655516209591661097565336453555383091834335648305659568584973354587794696144072931954760049671347535751384006581320585413017658970524276764278647607454939878466274105688326567910227944149838551337917596469417697749533432480037256537756677291700338670310047755464063332749727560787454284491539423600707249010513870765640014417632418726590173307703228396099865971553511394110082710650451816357754346821029111046828034337845960752959641936543398422336420795325364485530833518032957574864786626109903762796897835969876557612149005088106382339723139309449303360535293486803288554858736340221651657598471374030060050408689952193052103816931245818945622925359735556977054311941615835273066030654975453777715779681045160525474453508868567501557413037664151117516937316687138585999534855942899918460053650307110497688311522542980599542227563623928134011489112361698795032630424838968164876350623583676707571205802395778716055722913119931176554857252984539022408099855361111340360447921165519680489374471072826268367215655840556318095597073198206388675586694113863659735264674307109543986369418806027296787911133553276735759402779686537464430667508766369268545931508238886688691987185028564203413889557658650282928899345544306052898807543493706768643834056504000304727980073328027931779701904578506003511402716804609295815678781184543005066773715764242131602848672092080145351245109591953532617255667172264313466900029432801341310696500357024911216012437471539231016499462796355798470002056816562364099633586368852125331639173193092628240009876247649207236183417939839303598410999390724639369625060121810002230173310702821684950691251621646198751419468235358772992836686571265642413970533942299951391528029402197814458259748647015557230985161507223217562952702579777985554175089314301430497341024467051000096449353047115373604534588443369689644536602024912721899627960978832260127212801555638173256039712622877767937834791250032809486245867411337782699912217828573956124898636104185843497781938095851234969945596694822776383292182188483615470181944804087378677311779457445672775399716188445079047049006209162217353212965107384570948252736262890960131833142996350807728500972060655592398738065154976908475164740865327126545875813380330399800282263145938390703390834554446111530893502355844560200539947338999962287881810822359338482469372298085443243315606811674305052093239365288552147197779027039567494795612826611370843208174582286596565382484252922868024497972863022493790594424434297590998039592432456854785745163331625634767221604669153030490270951384623839506393130803633668036002082788773658165015893960618619175729739116851568905438378452233636892336638001052634458097667753193999144659545172564005951268123615321250407080273351349304755859873877620781481226825285073548333212756983472539024225830457621748034138207491680437404602014967671706384959937908794109840615076155251366145713818927897759743970373210392004624614927863432911446387852434650077200360408055942519087705704464604115176728918103901897642163423059797651367641761828435418230704934927194224535953123594374871517343532248384074289281621020326160104545675643850184547053949557730936511364233307062661379182175231158644741357441087774493003784492765343517268837351791503770393549237387114421331679229502362699633781277110805165753189592714044176028616483333332916005397134142682459789027582127011494843711604862493693623032965639927425205756975230382984726078256827650066894771466754995168629159355699988634379344135209679133372110521109181159998713353157917136872598621077895984451453184430381521331226654418595392112914900736124823595363260477512779039302921042239857813101606156103388145599333168706515434992364893366666480878675483319843652077142672903684132621690279375356812803342056889387570870552498621893233661868980758159405417921010714315929777354579089149457855710187990970331169548228604823600377375592143239946740460906807378748518966320837666415979506216727535021872614401617236502485990143232490124618202848228053124965852288359862565353123800378061223120388203809989034572093517771363980917684411732384756811420225397474568853052206419268746282280878877823560452588412562609840493676884411954967455113437426980344965074737109225681337586736828848221068717440039230015296011997822857273408055756827731516850395132356008527484207196910916332073834859787895142018094647247274396618652365465319832774473598393927364307241237493565199295152820705188097919779036883672024706177440560046996324839417886490547381468984903209959846171087930153507994895752261396654614087476689984123808412414681880259498079137181201712179232167676893944675606460595177874292991625579217416493863917871632471579872020607862602258731705428089912487769619778486169548375211555427565396342827243300968751720754526506529487863869284545405152249469807124305720274865201438939875340952941831085710214640555287383524002766830832938112775941144424876854826417571128930034302109134793086216184599225975063060282749378349509695074782944519185067975109274202792123384208303118564225792795122248984411089951067073045303407869565946739103815348417670253923889631580255650674427950718906907991863784275524825287868519739222354926121140986123178462025523965471668553982208954060901108608773083817786211636554730974213685568232934270403103869327166979629274881236387774556216932113821419525218659166653809565835185734256595461136539061873300176528920288539064239457318035680015310510882589184953299597374328889646455458401127420949452389545662122304078424038773167092787843443294026312318619126039689518052946450803592527393092779554187560334248626916860601484493029263267613038614337444371288070313900628839102139708915327203064034147011918470134902977081329123940119817202873977761862529401757086588768848737070954468159948792009244009617941581259084920153439329339818738171542969428317615251365501774065007575184746500746469249307791418806569429123223785808681116560825763352576931496007838906561764785388043141697999653782622917861503688281202106552099753628390343333694533611138696898093038198330976638200191977893609925183326229588880134101788414638041553522079228810743033831866850114325720776693081855779550545102753387000709821528282388535813117997887551684008338356847990159630631134190943401356544382741820051473385557651396924387782989265780775644500422915167379275522005866959313239248624182205261011681036755657033346389561447861161296156780469486421257530512177803610283983749169201365141153307831652056053608799307286183321229215409280868343231136157112824184860096137063977394029396324260987313265980288085927159808752033799756870026544241505120712705212112800288978868708131669159273404609197697300991649664486420300492307341539666698078890702881223525111202397456365299391085010034391417519530202360516488760890843015745025678689775537841621593515346720751551550336394212999050035831624343591752072074337061049149391801119365525821566878337775816308590097937881085811431014880018513904841891124969689262668131147194349149116955639811671030493808546815143144596700806009169047668523448319107203113263523548882308635813436886040367689450310063281143316098583811812760824017586501026425133743342187105486745102665775202247985759524377131063227075229610279975934082218872604474214317033761847067310846945855422951877945015091479120124362170017011813042655229406305733286861862395750677196841233517307435868544795931407849836676130718357698611611704818680834358456053744381608988096709256730426754046067040347499673591035831158147326223734707408521568338192446163884422804289750449846898632656353169885009681631087891747858258269892361754482521005385035369864267552307533358387048601618878034125289306142605103534966115172895408458828743893661282302058500787518433874375368165870911235033924222903094718181940186815601377255147866663532137028000322228129181164750603786404174095627185664168776603888084230840555300112700075606226253771784098241644317707391334234624843288715726461023741923038609806214626275782106577010236550386327085863314484858704151953792609308646407698641239769420599517396281453910492072999573117449692708229577951643691709052697653482891487473149794146869474438104252214239536584331910832799820977963180379236363282642793375345335404532181599125545420680680990822827426685397282461882229422537561989538182260938092005033794235755444786954600791908845122830576927567294271594904620122666456158431951125222783626560881425428014358805345943626608909828516972486735786812844479526222091317144895789034574809688264455581524417691086013332589918973019249593322608139651569187107061825480091305950054569092762408147683818830955806113680808830811372490472354252502293734623103972224608274372549687920540444556469800450745875680443628948252123705596265275335693129453386678375238738690438427687719107838907650625854747506404766307010916555029847980515640309366758557843067371649470248633334232496721409928568890994266693819813766863933827115430875118784020711795793328887884884710444129893276797737578726488314685908690792216095369455033071239717125111644083085324405936438491911130754808313421648045177176861077640855516752811830769586699192694893274455761295876949578111519654510408774461148896305635593229545919689799629020184413408333001959071308006147794467052444202760323766524613273740414957169973751845859178916368635251228357421934287338168981596624921170215849862594376232896936266025021898573134490824991780400821803414424852712689666325962064076133603996612238080639004144817805348134431738070486063838541705678698745801007010121588626461094723920620485004091023002147777168052841820540363870749876703813079576124812552099345431221351141869582424300452209372627920703385730106981471450645635042128736005768561985302911570988134010627129090563530991896191321295726887146133300883625728789196668649201840599180540152525387225852897470711980610411030099488407147952962005733470918586019771901587905414320736239471794191905964578568053807115011090676607053993396490435244332215431819822655425418029223302030276875868884506404056675895638161786233170937582546686786042684800433071649657104199834047084387152884946328869114185925855338127482854403169047500575381739675693575008935305541989128667697103223761341991964766989437057527332051428468341446276148545195967791637296717455009235966719083234537551768803269629932305360293204669301087600993261446703609797267741270759756110758935799379332313581389777068598176714020188306073347810918037669044721766873531057183563935448804037520301347195112566163588333463049286727814041723734224478393042223664665603957484968169345228607578517831832997128526453656706917868822878766218340100690849530482600696094162858708753100823030855770843130984166429239979969283914271163985314732736995687106502680384603124788013649216021156213954674594645535900240366316176178413060488756628958468360939450510364571321388366969517375926477486605263811490924911232730148541883453008585310739544041066429599633307794802000300970537357399354458013414963394317655705704464488583410613930506839562569234273325260443117641675449301410282718877576361937249858658012367122631128953382251155974887629677180898581856665799573700583674007805195422125442024923588275171430332006970756154353298919308834188436726234563787092763772220123023224702896579731844957943456970008221213835818229605360980550016846467128675057659616426324695493589972478631214832524439193290852428852402102027834386879313538937740223147089916410802085045591926747344369006067773769419562467818760903585614400270550719403552227020369671108352351862333537844892558121948253361618697290403139869649566344064246016995284017872417738321355279791753777000810100755103673074393047261474985091222153463040724223237349117882317582736882015388137451369077919440637243209795165939064408231401502521838741830116519724161924059422598558658727149869192755081152910357882142130065116810219648727400242509063932710486161315135792623821298917222409385662609042334687236309510515937230014210126964766027019237720605737118235454796222679952685272308362057054258912057540006561361588260413201275129955018923292814635929738344118047575130302628658418287647831786329992066078508274196270343328770780565057636638160181410344343254020433301187670644887801245468665134461144011343420063522429154690103712053288647909360175031527549457749566086897216404723074722228792420473550067054319219790885572805400203495059288803052532560929247271874360445591567201493067264758480113924815044788609936682014327699775232878285057908619368756163112867246614367887690715555827492799464846849678034456405646079293455723494924334920591436270909435888364161471738563953340266913854175360785595008308285953456280613841560022229452120430366982490670188018020845670275757186122783235380897229448393844779102427803111382907483306405164440312925828352632163049670422717597530140926942111733004611841382840310877627394760052889481429999595609919355256123898424125142226191913028504439593058751073249090946810501973309119456413404050151987211300731697905135843056402866027395158478902162981922919973433257311467593462999759611193948368455946357098167405602955965806450530845037789663474123704754389475514515550459757439192134285579358434590700849848371411554540261618953280142128272905485662263708787336157116464372485653745482699615294623485069448887022550547102886683324781003013354462783820902957812590603389728644771806094942767019619465834679084497907854895250999498121618409130584924177571365282373266429036059240998711786045626840724164430366382360880712505088502893955098777526086719694629027303706946362715599591688882506998988757964940991435141097183185736959331009836453101840037737363945671113581225609264252846746608170195682330764071941499445953117044312590138306114187319244306496694525851694713080884441003862061616429235259983494444533724990940558636906341793827882924822114486750603029079031984683748448206130173473544875301563952971159180851686431621862241673048258830022243876051260090687264683054148723614939558676437845513062394563747488735091512843484194907295409143639330879586703193176630546077532590378946239208471631440255570998863121692556758237089221194457817523911462021024549381707532324954272206868748810651372183674432631968396716507197785816637409129621294953045179011535964003042381128632001994924029548633721852562965984571410838058694195368075834058609751027299947882381165830725618893512665580735527802870802638413772632778478444712416673144484671674281942485430877818848568760782576506507629627703740272435290473678969973116356858753907450033402712729744551982040552723819105221587082196739302293319822135422390518478528969898207024760390663721446748811967762230631403413913183436035245352665445246545452538510645305912989259089769229026037233671291664100629223798473019009513750671238169217581605880672772518703301493308338339274585522177363801651029752735404090984611383709791765555574932754706536495264373844460427839121197228212149444648434039889146204900606177030282341163572020555383407341046968805017808067519903142477604370269381137482553539181326018821982697728480370139917083234813775710341895388963331675102011493444223949169781921622591287118044843042866431293891135951552283284100553578902274963844607433706405098406581683899270845297564785807394002927009588617020064798503727672364433305977304278316425826397713803370547579814654555136131547491061397154868882330156875233598653317018297455987400770394889148228599165822900299664181312296703758725496832152771862845425930240066471640520590029329588145244435013942399082742547000377601640663472855511334092322555427434621786526058524867143897792122541762302209972243890484452969453308224312052522266186210695633555384979259799687406292639136654721321446069380760359468068439941441951770074469897165447545805943089833164005916720236469193154845198216100465898783921069047359750960727577683210615228945490344348164912529419227089603380550506515102452808182406066917334801191674291460419760398330816855905761349669054442830590689836803013023070126168004054342789681767851948597735222567639170360645139127792107781149448225057827335062405204170401982456867273863136071631875407030926332236314104250891131103563037385298691792327928511102783705076304454690152461207916574064226941196018782674708696353589464598126090213866961163687121699606986851091026213013520146273989958981810000952503541917095779762255626425645929029477450987167759879782808683764919615018035565151366166902758735994828301058023830078718358519968372801630123494731821595422406185340519329725875552399782352444286984926403284233514264322576421766884229100730353929304606848791158581832183210805725481221904371772700484587761923588142249263140119991451058992009570108526044299411351459083098229271318800738792950836411618572866343529453160606201365394311641832216219192667189755148878695257684846465753674512626496589537200853331628156204611462736730037950897783620442395640427001865739089988476622994040487888605440973352659588903060687963171042685756169327593803654355330279080391228915686690424948197399143617716789507102137438240533757731097365755523467172087795361624651138065573163771494534508054278062758282570164263276105198855077318361105693143033377884437785510571076546555157289182880314935501090150318697508861138846142505943729136533612474657155440638913364262478789305442311027553273162918527696978010560169319693795986782683866214315807438601631911865000469589279299857899306470926977604184120335749477734806880020238939911812294362617559462442731645131485004762319856657204270698477738600983404514526567032250889500354089745194097252783755388783836244283462011393107952176291276345455094449005653995782310034184491785555748062276696741108039401374927548474143919611322060124137577793145674167604001287862852935083025830462618719721050840824177183863647250638481453869082631441398356460821343113579064524956037998282712350396847878236262270471482557870816637316145934336102215162427909336924988462690998633412432447240089952418872700062783502794727197118069625821305133593346194903293539291720140046812792020432447173581465293198640401430546884577475786107091094694338724734061857928488671890687304532256083046820143711844671988653786068443405292850422244049146017734532054137709951887114665389098018531996802452640052479525682390665572748338812937179406298377188850147746670046974296218377852917563973062787073393248029434010500010283272763778319119548861968355360358164148166981828537285725271005278297154935201015531831517766116602215994101084831671407461632138175263071418403313922325639270786547427269522142222774896035917145125574692356472894419322744387316984359379916191078330050894640906868801987049153339062763107370804609716141642199271187455275922199083460759757950350379973754961714441489342727804101831939181120713491402773282085342339334327031389617379563939345127099327862246549212713701574367214927460529186819332554803393947634388651642574729315001321454901956090015539223943561343156362764267608682143239766535362355917441228736296592333236329148077607190684523066410190621963784934288710329586107465890287373411532089998065271385553081241688320294302954090477349759763808816501897942115702886112282242179539852127223715168472170652534217148712703477733025402994043603851502066099883229175627845841178000413098940563741847416873639287068349257898410523486467122938834960612427361857412782184067458881464852698195185717019618867781868485508972087009125089410413613431742159666103412568184890914894680384244428145094494208106615583948706357133469061030288554699271847691875900322885155841616877063610167570375328667114417524429497775699536002667585017809641990961072431678191170438069286368990389170316401179814353304677292545612067737053351907736488618924454790878365558834170713056736170655603409813043753171261441522860319546647595807963292467183062575036409547249916119102760701860426573392911046956349196912234106612338331514124963118087556714548513762127278413628018295962994345136937743968508592380557335506857075112148398550490044016863598096024731458456925853041865419649184449031732217374413465636562121516571515129783183963044956802414009385298828536413105436864257780347308129341878093190848062371431654211120121386620376161263802823293538185551909104399119520426701647540416150942204580127633395723094828440433507639961106919251907037354493746265304586314459184507608013346949842094701598679453713097938222577445329908242394843367111311137174942724052066316462708246953803034626443985423107021020985205308178636952823838625198268067297208883008197104353435780051316839220292892990251833657455258757370348920885361801795121301371625625717533230153429477903214063505645232696272133782410094776172218839218255734094990879628501966133541463690325748420822741210110343857357958102966672168883718003027615945961856680861593609679978952996281794571124367199305950778958394250396906221222365314601581573529045223140926535496976067827274320005759706906956388452838654078052643391899194836986119883604134812053596209821109531944652233525291224542870221137139263659026796035888215737622238352720157992360872187869181337666306291323180007648945468483843798907935171055104860094443942511230694949207603709357280788963941707010558659405410464525562404889986156562691215028897550663541469654082921212158747105710678131392323623933385172883951271294140648921891372296715840862145370732504944383696943493288600400199733132752637592841159369025742952871748012770399093219690462063867663715513653968837196567903638648306892381163469638142139014065869173356313889658955036723265001734754836382070510030824463426875553838149033222697730143537600708177932517566810339871117010610362731592935426785106451826067422358342226708749208826059423370810515150782419961195693246548966359464230496732398292019193333498547097043492707349581169353129498476710244355517404061886779322344764344044580459074606148022009958876640564002509554774094004990770407165672072210523401175243548524263225309074155397174582650207267965969106422597194060246004461460170198105918359917886760437730325781582902817684437210922287704203277886515921531610617060094645452838628847927463307813528985299178552162399074205864450893648534048118619141891300974220280459120389717427180902892332929148106584497688825053332498423319008998291058593565455012892595356207594676963897154339170928227008251800692417468087450408585124590956458846494022724421127507829949024443083048327845335411508315558605211564640245011260396196753525536664567955987175476323260904050072340162203075734388021818999344337774262669852535751683264423208355843560952931954749168013657328910868535833263880315251558023130067442106745591561350835210458986153304921480550523921666151663592255986318790612907013770755141802874320291012379466241682292231932081752854091153145873022754849871011224588325426840259400110787079221660882610544474283716823717507862181911411297004695939024375285075577931956974585268362430670458129106252120610861222371204864249871479133974548137540837489096063345247698296760683134725074054443666384490430151687670718048784632185597172823462913423928546531993275203605446690448525618520401920366049355335532359565740001181512140146407755480600016946820393965559148575409268140927012315783482587865280149707790242839744953418760241673539721713509748445058191990731300837339371857301228304509719320875587618491205544054866201990317862654440262074213185313145696559712181195758584195551678611700977545471432429616824278315900842416302432135193534613786432723682133071662056751459949067458985651336892556816570606742830735217728918631138035552434066048552826022448604136004830537982972549601116833703971859024329429447498688417100815491184235192237159102557139609271163327303896794893231598018790110727998465753072605090437324091996647886099002009530895873458492718214514842397261172687719415245875145435429115954398267256727122540385439333489466421347350314893649528049046173682775351051079049471302202622560299211714329736791813634834717214771841402324110622816171655568018417292116999465777930948199112490326537531021709716828126504650072594319124764147331594453266479644740889301546822209645484041135797923282197288713788198479383677314246043001389332697365664783715673857946411872044977629703572309917239739545505380756377103330836043347677672600113442124394893376735455137602165159752208187953492926563776699583209948764270667629178744840433905669755666613511649120685200699558326656271966636001882367749295704403247760341779739850845834904260168515775982833898100672860602784102701723696640891545647935731644433664064687935287176998505313846888863675189806128382649090474320873319995832249251242857525410716522643909920073858316856462493553512931403387236987834284011481269712490186054912723555128095309491238308341644106426547886711355080408093119166554004983518583895403190518444135028497414467036571669517981432099316437889919116942045082128934144245018949427759959479972452925420351219655332422248758642451127607845840781939083016868090147581100259229504681883304272087549620201994240211266490652040284718448980234565430037599345521627546946070185205508555104398564332749950913736329640672688364533153191618832385571502399192747310742711311027384709444734759463022408893032697860894283132666186861450109974209642501527274987810963797108870516546448773863170878482074117644444517860139743839588494952924685096023575617428485928342044967022352773904222863281032073763539141425944086460704752264787354753264963973959819331110841638781502004085714429437418627415918877090459161403145476753761630486501328875724798381771073215477312931825760914952998693167214898265520991004760149570886353924899908084222230250663094885730386921990742121463680917036441334662809959698706839858586034818484506590309047931235571602329370999934732897081730474301470299008924476041792726717839122296742685311377065738481901567133786173164066807157151110849287041967563342810934923186912376891682514116521461036911697778172895571694171667408065058028187615025614757746823624769979669211299294822787886651488436493524131971808779410290966664857270071132790774779204735454405507844744924761677188142160996008884706690273159085736456027530059815167924881813932275599431191340683012548403702118267084337592380797265417701748538271432905870255865209817647922684012486289066417825228585341395179075503881390569110202109254910436458083810907078930308303404547922893367198943685816704058825287383305066731048554419402781047461391170384265138212885767712695270818830779254689070780567886707670251714374801326192098728153062041009529421049049378716706553618225095456394366123274454811827093562790365687532012832713499983807902998218089622415312648128044381256827310001142181016259496355391140833745244652633438460045574515411448324915673169655774029145579231389860605162539111699107244361121057873174457768845897175970990158362062372032741625646524243288249394741938906790426814001902522737092720329119650555580394992654076440651127572341993766226191044723338191220182942886794582996156325288694038070785670623493753603082629294807173785636966291348816625105613124877538994092453591455159512870616776527132296239192230354860317278962879450930731695489839470697147113232831220879348726420087188072343736632166370781608848146559721685662319625456209890946982671468582040627356914291117380081425062371923373689129798094181844316873042915896227351103645039866867035890311620894950674855921490853841023217344008197979185374011195924773858673801986592613061199741536866131483992578868889151980992580433200741476919842947395408799488847008943423013360350877743252370362967392651167608778049564003895919722533178755885567715502378685882213497556967282146179093475664880080265467453302454060591188855305923671305154343712648432235020877777784767937251416063082393296736858038416951590152627186609942730003743814903661512096926506690054975562752095305742259006426838705393311917153270284868102557897758494585436331898913351377609360202303461148002079155155361033011499519028933492494277894086375418994361519319828030477496123712290707314076404173569966931153822922122450437681707646137414148875953364302917174540576901191294662463981629161065998201413742111408794176179566177666762453115625644440895768248021509289544415649729990454773993223456866942343487749932196974879653646402354659060561181291828715774724390602390927739027908323516317394865262860472315503224645024332273738575187838244910422024707078793106389948523294159198748328610588709823244898398328926942593010489424340988866357278306153057335096709384074236564929781442426313608134461616210324301585649031298423938785890189798658100431842970479240368932742892772460805405211230506351053223237267921195156821195236377082597874639878033066652237486666249364307806552606867560407900823300272363712985009563692499323238091406106382006277750685989299425699047373225025063892889611336246119229032474515843166517058570457761726294826409687429364755453110891335819963675210648651551722190842728041268236736653903012017065142949499997313100608018654715943657329242566229988237196387666915295263089479145127111789153376838224801437795074125242531288829389429722435374168342764056790877641147620517207058094062749212735054965230775312862995312280331711422116294410774783100154265906735941840389136145400314128477272520092964796385483320643629080968034552956300686486344548738129662888548816308758744264012505671321845027063898090278388948583995295634433488866142172802699090983989585923028863106889525517554213936445461820375503583940341088960650722013998661993517006181108958963323543486312183230978214348989334994409879995420855230067702977108930340159304742704038210243341365359838418529841526946654650251131060338334871472600729149260795566929122049708178577115164902141366828678459619203997974199384250872916063122076013445793986722434628735923694432987586838551362298840556713689002281368954570351345473670352613033072658394490197203593875353581787895069119116089507579684519755666643067677176524798310099801890036900540138381752672410718662258396724095475850648303656287069622512388007220763421665286088176292211308825243544475937434016646371434368386415492004855975414688717342873517503680418503081263118051103324600600141676818337200256481192229119921673672621165291581946584883892619946555526178081356727820351937713685304138007190353034284758227037226294166063701693353268676870683442539949300476253484992558668299919488776065044832407261264113332234270711046415090973127831490679089922166610290897146021701082988626984075064801604350389540555797403855482897597006473989825443503198809966713312005981682531011751707506270466337268133334587567423066802887494392491138370335012058399099007631462735041937393469620736507857850712101355961189131057119731909943274433484972258399194010301940807122009620890554447895682655250888903546320216731359380706249511339316532532855133863630377496659397421388878205644126593742554063945586251842721728131669279646510878353073641189567686431626935758446825627680797742358299769104932196195802755465318429607860566482752109570809100819749620543921772698368296213389604228756089358426055973726044930222613314719358922482613627344253935814352317178734566735530337794559311144509472280054132917200176602533979630028227609281182376839896921210015614449580736726261348468685534294092022505386357842690102435727920505093014437406434511819429852358648164995978295949670285000817856456182004557995641910182332853087605266838956654861342036263790633209401987273771465068939652793486256293373401819133077270110328758294279351041616770677061130905665921392411851686315336463487320884645967114483260099308724231262413788222044828636777503981442565819055428077213665152640375148570031931185471750994956983210170523559199000261695453150618524692917513139417932310140941306402253056616749951054119434115354980913724021360155205393117179786096228074466115572674643176826745735527649200722702868193000189223270252556003802858353429762183091102651151429379067136616949999889553149046163552197559242459972086059927740961281033036843647245028957809973071073548648764488629460167719014931485998068212979907042185540567034764935226737582698550725736177885444286255785147661711961372266650474316331330648506986153826178216432670431614109383562307994761663557310362501258623907050929572909665800740042690357053873861658270072105686210594054766357491163575416531314465064954866646143221320907033013301179875762160289941890465384141046663040123388142757380977535737178358598826609357411984234312023153227261784814798532157077602826394235458446897864320563299571914072274403504936759411496133634726956695826440926057906789907682270785551388412564806018029078343229115729064368677370587436812912225463613091461924743380637710401475607003208207999308687203802104727441049703648573378089547473150952933085404929611825315811612346912408220097823075249888525399620680419133982187183154803603709415490868164102947608236742113609004220401539778501599083034620287074297992372592413419113626505449619562750936161314142438281824823997382686346610165317422496089444480492325844672939972103834489903760377591771427931801595228208084677427130419686105327447687682569842715261444140026579442875398831947940813400076793739799392299018579495920754099413915833102192542609969336743797306987729473967543633912116423725384980489866272583634737185908083350657801393001567276478104619656356844277679944565761690055257639272589573048410872350331803128050079776259902882151886203647999884880768362572631180209301599989350633694857562871502328928893689566338170509065344630650378041967907630507656781095592071747186232669251010680356737397139109984109643402952102915728058094995255697675781027656822357331231268635595443035121961214207524013861056994166080886262287138115276362492945148351024577253528789146486220939200946444663024080946010539882769040472966298525912963309218445097916875658580111303875701523441120631363948919364176441794193854823537088259686157152475818135955563486109330215797629331952958904945007902798707864588454071207104358438062131874276658158903163065935692687451994758835518190337151694896371297490223893332995861466243980834058801657285411769491365435458526225078167925043585833222702225968245772158851163544568109298174929792461542935457290805790905223766466435730290646208834929107156057382329090057850459448475543301734168201622063249270558506314774958463746828050892876574895279243458083933651753490382016000323142056089840101578253481987390326087393453074610790492669065201115165638390681635341930624340537131419907717560350644761964445282019577198605818726632985237020286622949598140591872749193117527347991946230774361941585495136974852437158944783294176187462690458594491655241482978997483868308744715663768029904128594830175569260204786608605498081493503599171382407022591439047424983518376188225294215842678866647979811608838152208388922095435807510880685028930573927268931422775582506706676939829256372456543193952206135874498157914332358200614907089004864324343359338710261476697414341245300505730903694537988548190838247916586087955550562301433525191058653492412960769409191045308978318938006686945275168488702046037264657717609011600483466578472155008543358756483417471388821509984094616404998202274607631762429589034191541019077051386105680983585864999137740746625755090750706961844671690317278820348239718477069763821106722126062297316739272384592500313221911470602765476775889694432489860615815094756929670537123631349175769573417172281142954336543579445724325726602367404861101332079678314632157055310379777784808350101627190847748566807702771106832438777717467384012177478638937949850313894686364963171882865428350194320275281607299140012307312776888843360743959725350809205884404221568435601510969250545324319344023383248402711874746151425480575372204982343489476459490058489698982977359002356476337428210760387955047143764728896968924912147465135301193432646660574200474059913762877165796581159021767013511849710742826911861020323565731157677088449546131375285966951400464533162196761613333015778996440271909463839158255943819976636100857145145365407122910584513087651180765309346378819972498773013047767020300176460190180992988432212986530045529011129692080807738878389493807001748207136573566912718473814317967327539776537443708944714416579780173309279997032400483000011825322763116839737854373500562634516761418727568223121322422167875615182488088047572253648668786297149473784247741382462996119093415725524873001492650838822264202278511294328808090418473606235310583382915107693814181849689831540133423631596396817343939070573148469614476880863182615903719485930080745658043877934787005418952192725633384811392226584156239710439411435556559210983899051696869709533496985975336866457857570550214166986154033370203499485858462414389639494035582240734536865793154580573035869697311912038334506920046979879095487779751219845088622790959037565662357924788152724089284919813182120879272555035455613912333687567389666674744234110237241315410947341597834319331592335115363878569955675819198824250085030165050271549698329045395656111561507458358940025754189214054899066209419328582374717982037594469980893789259464041541565393864770497750688200617546805172120061398881518200694856277535635325323949843069318208768468968762840503497339259752051949561083360020022576341999349801718617946869587185263179136944379281391717508913124578083099589371162384266612557254587865881556654253310998569331956956100304716297766132992319998569035742371958464000411340470857683616516642511067739297128158442636452478923942772547936921952744832826514751890479196786322312129091635070807401746014277034239097081751814301313747567561334572341431056378247270614786094516802528354436314198407047578059329375438406793316629362006608949455356519297443609338034846846391178982300141230557195197089383891015875987523354324596534285529533739585233321050022559729460013401573318270359618317935444849709397386456028173473633188448830947771841604218148843189838546506828498399350674532050914218753808905275199439812718153415812429975661731596450002816121755635134773014621965841309632055834481487883168562239789909856679707196012352250100163491632509400776862025474362090164261794020545524741093126953660737128234941867025117396245810137217938271238692895326825362561245128155472994899804526887846848045240183075554545995501926167024772021305227581134117229989613157708951858610141406845658566277802038035892237492146415314503978228564806924919801833998826182343263839978530120397005894109895879325274630412954865703132856211645041599909642436275373727850914109176126912596048464425219544994321316118779448700750360345750672604537447265620400394113031576936756309918080863421459141735533801295253122269830795660383875604505221779702239254116295276784280497658942471718447897397926057835509112806480706666121319796485844067670075768134414649291881102355736017165374576373865845409229326806161090983418248708922763120940539602516127256496965493931468115950792805041676897597782625945730998439395797860626468644016383624171450811382939574350368975962288747387522418935701231316078996136305630250823105979699745179924310229559399096887463334575810171945938612068623496215347839965625913587048670927083215909053273014290896573323767589065528329605266418950984736964532167290157007361479822077005910501772050438775639796536599485930274245585311633773772519673363517923895602707436758755881625492485464407145940964792799861385561791226672245959381268618602381297200716990176123636515459008801877990363782593961737170859139253027428653517945396317108783115604649684194679934509045298573097653408344746017266694751950043361503137062513686973745580417177765201540392142209063134840338095422123505382828786726515377234153047804043754873277567594421335107911770158258617073182156272211981757282691362957292615728167065484096857455704743497799457883689278879461313831123555848374921389732503201728681889565499355410652598367424599782749110697934176191186895971043592914810651350656613622408591313076545681479603667523041350452831872101755393914280589635246950759707664600010516493581829039611807539879769959467511665466359895927203890341111384568778859175176230506509255124323911902334822956036143333764761493214735215519132083063364962779803366445555263295576507453536711182922114933085633697129371023007130218580251722467504359623144747890542969657719608635668869324225402425812283251806311447262642495708116576112651664902011623753706616885946501273602543518091059335630090633941856396550195424379112975817113274339458340611514107479620215421320730658685457842658105363436991688733731159157144809606143874029649452680404071001265000246768172520861883724865420268113345553724491172974231136977538607519783143170168767462226932154000007923715025907538485640942014456656743070627389263698213390053365037677907226596263173442185596866024905206896543359516107440080907909304688844850664369560164663633974835612216164018933098280681911282626557868322199180263019421505481794479692868691377157578220290189701193286719740488043746291730787506314519671007205698105366694834823793405324677962617281951130036688500894565883611849185998015764094763056541753264445788434722665150630340456970186963301334547803665109899674941480165962118877582732228131542095617896131558701075212396508907712176364268264794668764011944228696956924387444216926459441870858382863456443147777460689322527132388734700185071446235453705988041198277194360492943724162414117596376245303333017314393126129855846296761646849661465149497332358676918298568444430894954424119888989338047926627588183295439438342609938217081236727363117090887050698399552296118800068422083438481213685702746070921972202902951845130978317989285554630269421060686866221916323832129741681230277334306743255624430288627316676107384379181649156161648899211734104058536116499485418947071299586398463386874881532563868650587840092016474742688767560567251276353310698056575698068644102505967328204684978292957145854606817675467543475069465338827859054883116689163304205727382246862114339122563403081609322337092986343575476325318533681041259544300649945379684181753938897833621086983017642445075961419653749471131298331460128637459843819269747103260096425860723758763385437046557403653867069681000659690289448959267723113732373168421007138140157770724089857630395532830954552805248148789149058849910063895270855945463148926341660230280786672851798493775179790766723258707203344366873464480780117713405422510582416298750550906085981879170482411843210632804642160457315550508581907585406084918805236777431792181526915079711147678983491282102116417456160532351779087358354935283416398777473845943861982875414632779622932917515309504609931241449249625610038171368859896627010930295691399089212061696612470123738101890546920910635106946177067461221031879194908613041082938266351405422504283850102409222226441655430496743748565588082386623247688693323216583726873215585486699474659270284112497192216439723325762825402726039625195965870720137156930714262835988339892061264020019119347279557285231716647744298819823741591229073934254740401274421228319571076872263352797488773991648553401351620235116466564543501968960687077609988618517622417112629736328108747221789881960333681507153880089652455037122776833252103062218197403922110863717118296075162827576048719682954420855047976984347987846908628638596202673000194794676379500164494987524148328509802232070293694416400328332424484054209041285060519714334268370188742534807967447342403103261767436991568372975591092469165756714389088211434009476020514714676865729922992235858891665495912537357724979749297907517585711673807398848175996565512972534735074362384392011544715028690719363737056455497468437391088617157273045507123177151080625682658940514602486071671351659754801390441436357549629840706994600517820356441559596315168126395331758012243610987867373354950404605581660714102782539202634606657380126075974613843494136349317632761864810704836847295034716310015056470951332384636945360181298622807351857798943827561648813634485898483394796595248475828075048641579817438695756212113425690596461542447277370120170400108561960872895061457353907055902795117160944692345406329671712944252903106623099837355367258372207645419406268428184635377002952440055949658897329427519425269657927109802183479746991352980811880141178439202227743005431847331259343790257020550869032837317631675806462591209026295665703370626136570259283975922599471699700221313972294372894144397559762004242625719004812193905073916942616053192564010613037267115532537994355615075022196886451944899432865156837836174907929650409056380872258465915241964607474176645990103598487291210651748888018414626028451150038835763041704248508108355545980385730168893991654714111656764718675159174225765341512933183572741198323758746155002244382334498240777767728844393234646418278282774205727567577084976376568054641425266829916447528398598578154395881486780078614634951674151706979204845695165900417290771874830387057643957185611924063393089288227822867718613784728330427260693789451732504734098850478872221281940566935459519020358284545783281250726938792883595242518278313070103578947074304411529648877021490250477087394349155377813839641340481093279480242377908070300100633974814189724834596501330773861288890220496052136920152124856596735570322481560156340896120569430676478753666558912555758777290532511867462070199011071088928911789173201614017319315157405542509426601665388952778785769148318402677995849150829102650672018129539557976138928808151200899564625463750303270907306021950324837771369498405531039628908305361530782145191490345055200644066749517978942105469204081354079465977823904004618603813605444073646452404714823041736867638279625313157079306406855265118461044530815821428822520316359412136443300811957527321463094425605326965283356261339897498927312822394722230410185727952779978793804088166077628127718442733425423946720916521198816561548883842060050027979641836128926162507011970928617745748142842442907606107867333637561592447964010003017340686684933467346965506617640939508934903772615547136290776826547408534239418935169765867038866916635475315736999946610025660312642713106082880853694471741498954262975554212530449858750426804370931022176566616036343067200416633448105173010642947741094293310052557847664614577904058503214601354082649776629724650275063819991401543572818585862661625717690934595921466271657384248703487906249206556934261870336943258507691419072441997229462464230342790371681099053930125655979372687437352046524758449439068314503229254950791369636319466857083870048047735204620742728476097935520318751604211507525591588313931437913601295507425191791119345219597081597870072964216959528190964276097408971995878931213088692735815766169982156165695465841840109947548371614266172535966140528982371158584548852902659162656204212975314156636504472734322819229091053300038953221808048330966352590856953111322715996079386505144467639798023450943177895055279694528938488086059998965123070059765835593148071829295471504978921657046079915318182843030975681219606828450091956191688959927926049968361948687709776507427936276275141582597352733563014379330222404952583804117666410563704586460511583493379490200930872761436631044623046342979454600083560418716403585002336669462415544726787137693133533051502841618171102272280730648503256643756500255539137551435646518691185265800560801798906462141863314842563294848512669168364942270689732222133021956626534104066489079568687847503122183253118315765521817018026204220483042740661823789976411466936034310862925986600787161960497216857826252644244086859993669358421889924425074918191645324720482326331258220970335054786158253338467487964704360879766731790089002853589641523352485543890191106457979450267731816555100606960521547462241425603391507438968160970009927794798401309219687640046134989320871908059862774236864389061391798814417424369617245739134076003044954543416894619112614414263734163519454795745920029624461759494136729065164366096605227963565556680514463363174102583945578972841263147155461900962702066876491256256061520533676708533715233626484587156837907071405583268886082993991157309030729689209717773684612964191808166843252228663075423998301370609486786352145670093945535486209278086438389707726077875273736488663065470482404737716486738454934786811378935169269872776539409923807362845684653388675168300942781989996893024066890491527361352559005538720839469633177638314809581702394403036848169292102219179438345128310655257348165855021331711856734104800882817049013980114138344700147363700602834983288303441525356668639354873461682573196511939294017945361037979839518110348006581886528271997536152204014295572182446446504115683908825476044122421324971643558979017304184654980003142274796533243205841157025120676952551685195117717240952829245773531521810422391781945323040843871650283066242042871996501190953036781942296972783222117478986273466896948502444415941296483762953903223643123821544317056337462540761471166169296194486107343933475738902931175527855403318599743633208820056382577522955546013534927893869294858159912907700993488011681884076574090889814244071015834636767249239360534026577986913027869463593473936699368907992525014398444174283214707964226818690011768592267202626452402834240789277580319792040614970142516706202949494646308466752214242345594608374117731246184388612439656316042886377362154939568576679194238899906093742563863674632147855800910812718887327937983741853724632169111080501212300295482759535129166655147284475754912059368764261563039640348940189045357122570361332413215610012832208397010629518527702793527996269936388940269179684266849846270881817780169043695119702209241740594953889851241716594061861791690833264530071729576350064270979982250315590978683509900224581717874486977682150202658734338126315963238714993497551633163698042444153255712261371121319803706340437250127098870593563276303642609469991526514271690610932478154221407737310249248613764995105110603568025968882775660333697652646692503019595071981196428263495903036131333593128790204394653604611290531138791736812846823345357459967395768417329134866524164171471653547162771502662313569579963478195062452033664291008286645706127363706360135370707423208978564055181315917292015234824974350097258401914972812962055243333448002033015195783738774792483522436301977713536671092761708273443517750158459783373682060772899315392212362558170110908026524272574790593763318359385360218906101165676319468522458346770894083594573914693807414982265739755360906480178156469541102794416916477216127826846927365368788676737296394253085249452488846990067238664208249232849154672556026823554445055816126321305354813800742228781939286560392194440496029002151249818574231335167826315618221871396718125879932862904354710382059373021501842079261549890237987044206657068094796039485942110847008310154652577672374156897363657735082764331919546787579024575636750293114116759348441406778807381255942150702937421987834256656299792036033348163279648432107962474970677536456863203598783632186140750580711822302342845700067969786455701236682435957087721140663355855243374368145246250875065290045360285130768839323488105656194593560011587724136695808883642206484311132672988418630664801781979527395620232857179121760334941275344837214465237139704824844842677086820740477080685174046097923389610875612936059429868052801938985784117841349047760875043689120194046917648063693313003963080570576396342280530500766719917240962252293227603357735314665725435584242664220886080433938186392086622265624777813441540685549958857183989716985174222248776536021870538755284460080554521705146384562374305235167395605344317879386509164507357259635215325365939154095011531564661656024843616886817350076049880078708738868193277774813973131402257439762519327656238214011319046374668365238789329406534675446847307870585817530298583500184129359929799710888091771357368912554753089013508612883476187307575003585693462906517330648714734746982340266628825043283067710792864921005346858415461438856155123640126063475372714067523202144532071269350839591310629508987908604140028413068865802263761759882483274553756999411298537080981615279267004282311187181114279056316362436215754967326148046692457243933152116059437262347983053274139790982437572415548043472616640595400321642458758073370202324367448936611364989745998592441054236349512864736006032867176188677445334752906208097949923328572625018232502132620400651121606725546086535282802822186315502846569231971773906216919985074927558689072255229844540308512501393288732727835831530839624418880155583536083098602508505016614072746078193669889755979625775230597058391020070923917939079954910693127575145153914463741377951430188598348639298946516411937044812436724222044750182760686623291369533329193278040419463450128299821541161176763792110256559202165834647569801032209068982323778068246240419460592956476153597653702856922988524726241992228019517393908288112925447820702215482383548428296662610147105184088017541842070930407403337139074719806267412851265023728080003707947003120076913882619098876749493769634712002520215761113715678621083738072377659708033071724496482939828117098334603673086643368924222474562661125843636942255806778148005030219343005053687298663164890245066383301349285809308332544054063047335943815957474395922945881912540712420949871768601529266927197000259920505267485109993625694111033827756277532213304211887562725022937057544782814063594624383813677704144898492694032016315207520590150835110344069963957896400727981620280447208919993132718927858479488184000694180422857502017947049426563016163323769994646546255365581384910086537750910920829097413969003031322512431261034998637036496000697423075493914830938009585759189380964552581295457656104394585944804675725758485360658389075265364008811435477282006991285982289433994596146830389048212014071483968250132741023408930199220969063979506083749332696621051156759832133228380898670196961003932512693208899203989762841755102283162749714537253882885829725051166197618596086999851366872639773845239732119649102731159561914107782337566881802761108007070468659379380315560011610388593790769381489256467455909918987068465121791632928406235297866076588147960179056268567617951120986439895081314703199057774948877380043018112524970250957590477085867255159800293223111136304778520383729304676640033143845115469975648216360959494333428054011111936563893011342149670523556623511052391577499483393038108445032077580045211498192741584021891503575814787199251650899393813535513703006880610694088300910216258011259590681930805342284740166076751901106505824706583300840749305024078060594655569246078981772383471496809223692530795462162720480236244902270328915365897798234058721526875296611396875616531068568280437730776634704069375046675456622310792950095852804386485196305417396748867265759088610423846022012022178542111423277770562181994701095483532964784544638536272399539948121239850147862391734728231745130471016127557152096381226594163657868114029450060393088513089134436814345371847416063487994394867219710746234494991406645059432769580820812322131280971926931574675191311388468653372210731019992223441741113044216231900130446305070866870790533109112376834882819899567592037033050740866515656385667143069856144675706460306734858740309168852311838222645474115958976622090717765539063340546008095694039657458918718192075738107226592027965771319257817281252842262457348876418997268236508147805777887418665891384428764827685270376565380180018147674435554105262417519134111146479582031109892090077831155618618654608244541717248875570294718967557538274336607770300219737239175061412303402321261992009130764191043648189111682079185096242652611710497954348763741523349255668241687116668198193367254470050779124004876474652239459566614099773575067676969702289207204634347527884526754875341437360803116069560057417604334072558768008260782175543117366305483209468399381601003169970277368621658608226472622830588046384508632090108434090504025605062870569269573802794807541707581370260309596649387513459924298249990127954069777689403346008802382708410243057492711179916148639736600359084893148292148073141564472622715134401038284995301492326673829514149283728415093779715225557843215142329153268685885836907980112512325985451504297722115976094588727275289961316024363008966624760510514660785220953290052666273820958454123002195464544070833045523031579212694680236847783586774212793708726323657439280314508853883446071186651363258878838283652950045374685108917338632404584424523681507149479104469522975855557581463649252687111417629041389263369540581548261028946363072619172806272567720739895784081806784765728361007531637332570973592747003737557122805808820349127906037341095606968715399621217623146071758025979626297765833011926545735995792665076949797258390528012782066684853056163895331643996472854376282322460301916166094281354841610742498378632781376060258641924732142143152566549470593575436183546458156692898798761696753940016071329660500646821659383262776131094128692634562972918571750057125738140794053578795127406460152735204959158807103463168048643149087397130919175149174591061398831504705752972470168846280227671760955694811569172285456321759201878760522645199336538361668172052421063612398237829376804775527491086974975002836708328077996508556954706551153569081765291396600942483506994568905151938026893603749651841656019839823438151644098355398347166990302080957972381379884369144423788914355795528062745400292041676117624356516306521855029629928496180154230941019987802935068369698409237507009146373281809350104926544996058387177438808890566798083523940880823046241180090934249656328176671873035902322738252332938537199429213513179763162451719056663486180733303482298838132921528204122151951399469893553901005304203563168346446064898678326812476117287807580094053161352270418990237252073273426210579464432045724174471611962358766471280831523808360327287301650171428267340693795785984265837284936079366692556879113910206776788425476651502580443094783231125405549554738228492507736987340449204958912554550370514126304165727088380106644659403107845427185472352503074017265634549706090333660370054636842367038992592243191705858330629784416416827035802477587799798086023758380999319548127334744111339978988879306321677405287702062938878655202169206358034906035101163145681215740299473754305775265124159039712297786303812787858279940723615551418568982377580237810589185023657245845311875033222879268032246672938795555000828955064600123573927433684668703927246641258372273560914571819535668193033906357404931335272870401912272647504109617507151341560654154372851306809448020436038512182483370017357383507276098130071396945983025220673105799646158470555186733007406460775616126472546327243816894840747750865178182746195262982689956502705945184049284952330859042224383528674078556821441925909550643919143160293164013752691225982602991007064407058368671767426753839739839367408946503207089455712456427959369065846911291979182061362012409897661891137721497752366091377263486205493336736664516040895140372122703537925779899284095918910834051776724423370941510533346309108155658805653072055715601394514888633884628296227940097125496191739040838944238711734177256709001815877717241670707470885809633743546570569483517763268735526974111771220333041243390707995013397443810459497634944907333468850044036670513791877406043078018391641626126487576272431196782960945848121183824273706409474605759267757324265256931398589172384549252207399695680899120900628845994854877819426902650601809788806260867979862521391954370528345803639365725948929849556635930795058650169661675930832603301799107202496257948939273930956797567310988902265737060627316336726826207173060240787659409204782361911284953588074758912038117211830814287000405737503397538269839454155148931630619573362577697645448073408166479624343855539608959837454225956596079001872100236803542871982188514641232091131781969325854524689462345837848470858380276909115116668602881187169452548642985637727980416113599336141601855371800871383543033930078497113794115562411192547229384701223707365117948651068836460355530987542040153928708424187693547629901417012232621991544036102485691429901978023682250515995312507704957539236336503491628588449992484579069877965400971452026260299456532738278603544980829479012191453279800189486407562258233827424669435969336380481475466247512326601190177601060707654552922793269274126781008199156947154224170304275025486360543968271743964808767732552322738870756747880288718340056174161272254396810215367163821314168928216903776214709442631643558734564605107548501474310083554413991623900751307414499912944430350284085074812584042822527961373347635632121113131180986615909143178565249402278081484089395173523812872660524565687294413923561224231984147892969276513400624254865846378455929596093587116501672562264525745339503540460033809591819290375404104470260597608130601098771699934670243945767802919134207974219615130135689750088374793381463922115035385400046480635221229320555798600846989049789343065007128126155831576481226272046675256036276445058561073481432814129081281184950849687541501422810281423051586318673621314462326824108726603155185531692064483626216384373028091250717229873299962260442819128271648127695732316153668646831210437545565144534309460147008494945172337076773346401922905012100653874693125760214316248995502836318965251235979117296526415949461572806164168746183317697529658107897937794539184211928945379876868240640906305970669900989772480543939331431429807635901821036221670159939237255039184745864802054906004338993516683320224100125408972429065528002057849777091340668430861983557239016199768888496300820775489909775351387444375150420484138203898298825075275692821611261846625043967541925829720158099924066345337160371646337459654994201297669293490292787812595221232727587458732800492711111045670775256867753291437540888077982415707396588555126781949681357451455918733315863445406028618417875589326286689719249977900569281238819437089775443594863875345587072217546304362989816532802276347004927555142772120591504412933243810665749642284582396827944552037340438235289636463509114190737289055920430151630358890175397266557830132566548247538499951494546236762998226124499507649930172450841517999526370054199768779595807990344270173116413098061792145489039776679476168042835158703878276881491454971219724368140764422931219792272438902805502713695501915069831204403248011079929078560907003377579929469068883205632763063940985315942657330545755834877565764595439401369875841302832287850339958747317663281605619899830815851772696529542507714373824807552061256907530409718182292767404512730410926387250491176962366673396607696747964593139195006936793049976490957258655324539990152253596143822500017831801664220272738767976599434439420035562633158454725857141505705117431647443808771428814730281666044705952566373649918929671089862555958149239488497081285972502256593263955208443918647976080345283963284796322743401310863199622157933060180147861291965713276845519044695356368850983273064327879698380824342823504854841104687434364370014045870390447843072627101483099877048543312218927931242555043224471467213792507980655254101496304364928350224136472856680919658859342388202799255407718574232309659543505601869112205601561952510378678064419938009958778871224911210539127402636561367405550953830559899303988109145312595970533168858337002940921937414300717513155090494974496168206197436550028920613362555846493052632703268287849925545247050472189492511640115941017565283807662466736193455234439377184859066888091392445670508831815066675594860276325311736168554027072562989754555005233040804687555590897132601746982128935017347731751719002078026270215555297084213365546131383581785120178311073897364831420847050508432214914668598215352863146219890551819923915844071856083558803107767578215991235710008550657872637924579986803301976424957925719272918004202229160717081594288836848171032869445989904393372388089216262607607289245466984889151523973729408975844211769255487485274411232632726290232277495723829329593688159646592023089904718582337138636609348264403454688920761289556635815656569292259994844739988836810141232306261760391121093711667297608309166179280589897728960169321086182286836563055979690788768988903388266983265907914207472183701037044845125649153744718801913665871224088365376505984367579047238630881977819747662845726557030284467893112591532461421095814120814593484808323310457520926656884185359275639189804426096924740527117395730078143665656981791525630176747123847902873323359797696168686513406746306906022873766665050271877280891884378241918892648793794684667566349822594880977679660278303993592743679169673730562174222080611652518488674938440465682676895628876238177987744242375212568790389507139812949584784389907133210282873311534654986323474029077447135559439272661149228549165929292942026266260371238146954440537298492811957299512094818401886744368355732816804600614668862337288761699528222296371446752719015963270894264152168124020406370664802808473971169594101910369514206401552281429379142240319285524751020521208498779727001256604068643629092064505928341915493046112153542116947706849165180604608836908310176634123458125603457562436482807751905439140065760146980694162225053907329309439206205162401175086004786466139804227493676869487822528453921154399411080541843980251521001832339999803995459600360721711040568721508336318249018361180752251899490151204440485048225033073795537655927173378908403469892158917756512076099122021311173339280343282547116838260651694284903635929677626330090479828044737981561725030917618200463222368309336904620707356398496294577500995785125235589777371181654591090280713184021791799169568785323448786352024039162863527618060669123432377544809096816175649686490468905312123687724814307148738926558307802351471005745870359065944022367603779614382258944444447643544557832291654341450777117790767764474428792023809551789149225427462551065099170890226117370598894839430300643077488977770292362207313653657489121559456341312829994212759316333787266269150252857236035627612216599332422365485316627870434404581896011919170994264842333762588974510566740207475940633051887458223004213186868271679549943159766279141465911039747132804812162301394600416707376570926384878211283973764240090542805768190090621078860226589695219541250865259947020086712123371433865843747450118831555569016731898829906369380837452347207862310384454675635486677025673311303951324728684629178521664981617576536960587942451377442989768810161836129382412256229878438358603357499187687008598493988907820785461028421358653155897537011480124204751923126621661415933061430916649397535735632119710944799251371078854528519752386010546588972254442071558362514374541282879934762892614592857621232994475087757925017451805322376406052464288876528742484811901049310076267805571631198394366553099079811772599260744584687579645492460743737060122834500379606400047346630372211535045575511515189512524105856027838327807498599107377171463178238373037588673577033892246152918229935711045969934413447985456013267973984688475353737627514658058492271619242492153661504272255411019783734055541002496600336096384789299888502576104898069978747056153692343202582649605138295394893331787623919185610986863320764446088478257371783055849061847270182668803604876673460097672061664137830938147378210285948818330772816346834294845787865354411779761169003396029127452040537654718153925970792890355153661912733172086429134991447567631978384609064471520726151383409639864370313598288714680218982858272710665849718611659775998911116416422491342977646689466908829489664834815468897628093698494522291886147991350616085205058411940442515716574551624866472189254551429267036570646975420281543428243259211036521620726807225963518862739110741374399124397953660140726924392421273984812470526347574273545128355984367815566931835491891953127461317043032096322691183046966269719560895826049675112678477887500960665138980421046850952978212217731738577143020265305949878155835352474272540555864789400667587938484444961838231293669721876882582637017002398930140126566962282696967244306860916371471162067839595658818380883227905884743034703040139165397213588384276011851027406048259678393061492732414590138634676512243069033282470691210452465656637648321857266903115052009968792767955315954933907849843148140473984786987469340405122774809491829669998885869940409927252817845971310400852142281672333575374613871233806019211103511775478670094061477658516552890910865352020955326907240250892775919953833741800781116672223220602352683973524560229945686226578861109838669240050732415920137134162682489543970280001893561516388167615336053754049199121371110687061895095999164875249456192663472831026979781739542319527606765410581360616750245385316015252520334630329213042893291694263182815652842738796705578672424626195190471177369071939736604192780904764064313092018345158576403797351554375037154467546638687080541900604620327530024102702828881254729743831018243491195242021182117905686364489675169928579898101761488189854079126984927688868359784514847105906242887125594008136820821030921309279160053913935173624085968365336670238243487373141836858418793644964236193249757355064505897827206513162381276699052015916101944495235202415703735406804452031092295493472457553967010402581045494686401435077354172304704871633855073228990682993537836207585535150149724822112532546907319865785359164922804790285871708512712790953396331494018744716840897768442522096178231752184121125368790701372225201603881358919579643438821278982037739089704417787013262746320702862715388247847358554387850125172136704383358679824344767791980172195697434520845746450207346486713585971470745647206808004735328496347471758108287298931243251092800587871673224037219839485909886652292686744767762224122815737662033448906203302006838450674262500329819693230817910712685919782914040174199177382819589708276854250717477090186199743636580074499837192166358597189581011439368600327187134273058484903481889711039980607406932585964124438241952452974860983842330032563355827078616873974423094652498907720937887751139564052415891424916760461403728022639922348903727832823889600825234735967496072613490711316654292363858772888690894589659060141191984057287029539952390954576065028566406630348412125877666556721891267345945415500649491909963949194574299196133006389299121592155332062337537897437937155818107292970567533696468994807092178926605657047608378484981101567961105080056410242528134321328421808864583524022701255130010386517858105830414964044291729911360506534159807465067673146026516137752381115741297320548449901219992146877092814185433961974082354147136603716169772785632653855275543229063034115631799243495197910776312416255715455327909405347939401913215444256506029732078074826429785199912316598115109572264309254355721920974332298404432832696593566208316020739591933495285607287279229771069662428603436576374583258255467449909122763809059675854431738006413582978388270363067499724242161280032830496442878988347022825696758769021764599430148280307133334861727504930757866544342468301551419104479324935227652898287744604987685524671493937491131345583493670070312528437915983014563659198393402881821374929324109535184013626207653034646422510850482230511215441716599847937667397788606227830221101589015288277335214196015068629513043100326583426217574134708142088223511138749808508513822928263364754709207003726907615430585915092800189384802554157896706151737281084442225308704087597854578431135076764915445359417823880477009963431674885547603280417306574533873598044252817958955279561101741924868924183317944213260657864196657575806075046523356249472363861708794325363928132270308181713557451005108027677231204521236743690015589713570239931628803417838343978493336471611652522460570565724963157638322138560609325220374110390105802925987199835872256214183493258912427780095672451237413725203923500693393672654404851495230684709637641829893410870163793605836650499785034800181992907397017903909448232743802345931142352454886970624268388485694639934309177869243747968496762808097844054962474055425942369741959272369985232454131224316464511463930954547895678942924584017748645232532659163809468005197375380725317836049885632951448565179698309701417490790071755393963693448041231324055689351529550154089239436984124522129261733568790706436737573632843505839773991800713129267629893921284794279312957209060873572595283527064310019651816866062674502097609848009001457318808960260541178882594232955173492479356139702538211169879943584847649425659520712026819855414821333104694057921143329170652440437803726575591683976679627761849327535511773860667327325179612028660125961617504766594933965142645624160841694516124072302362459768850175902895581309545918534941471819297071793800977877019262757808827029801838813080208946043432900122930198736533468658867086800334662234658874081840533412238499238628574764028292051006740026446287115377987590750169597150531235334316761881711208745495428172057291469408949809070065164761225285165127669046296092245356023738871408741874174414905670478883279258770056592416400979617118841499720116344451458277764531205330019603199312839424415936620078882420857517972499959318532560019462801410904932650020324318028120774867691385277382715966039098025734760689890908098778895989743501599508256439961466136869138894288787939566582400531141181670277989356772607261413983675017068703569975262317730482131388934979333533315919878820473058374932972421911944526543637913911588971936497548534349988062942402326465975522690411448596871144218964138717096380606462167587368608203490563288776183563320344479833100148023926097816943011304316927258279900483575221284918971126382276377335466592863096047283973332364611318991329896667757480915310754706315865293509295040301503180378154617599140802272920518360522363413456878831041988720598426609919725637111189296784811383086016039644693205744266478449672662269680830296170415918408844047379151225436068685552931073755616719844130482636604917806349987668969445957870042019001990910238793413885702222256235969678516026409634776666813873473059122153932142928019212709735363984832173208948003662515246457576977930628084310440210632859543972388440130965047290804174900060834430393027619855466156641211647493641491781330873359247103575899982555503809305388479784223706097713041664380077254504447505256795665784936689919555668796576714038129697777760189649227446863115685106471309343958873871801040165960651472060779548413989977835108810460691983059211216339277806300589792279553365225329471404968266633828320734036234136813798127261974683259457624876252191182996446557257339332325324084454345781100418162406720258375274808227834661135636804572587919078778757527614225007485552270151019933122409117671937126657039618373955452669852538226536571576664827582613897408013098017074310429336220565937898004165747095622738329293575680259107937830340205401749382541142246088826531618373889700573858907928986557968315130338514378135352407059945280444148637811006437606391901426925046133309629683193032672143283122128884021368091416027241705667741019499273732844539458120358126642683814907425838299668892706832023818003411720597363762550033056880108568916312980406437298985284558097433506112709148667255128692217039936728958133417194709850511453392994463950322655975904217037950857268328579961012959723303262462796169478395061709348114724256620755119713197337166898247416668234540145432922002356978969268243938211097641748406398323258030176670057638196897661077125029654101160661991981779912738894383932575225596638037866121464494420156908210506657677347423140184661002667281433619780157497821222795629442535371721185778008805035763923197701802292581168621453503523271868706352648326812533255783774382642276287587322240247206988901597722234594785201279170467477977998477548406387655909573171842154995173527026156405859125829774761415365319666931759154220418926330897311184808740892190123446241221055580293151213929437676426800677983459937547948972940166620649190757728346945724248697345227222431594977119905343333250658702581923496986163882188267986843885260410802063302857741975926763606869642158334485157871744484209599296347378763942675455910192970479665576268139866287164419874079364668085550253570970894350431496586770847917475262456322665552139580388308893084862205186177470912111697408089177281631257348306151960554846056846251499064728100737623728068540051641970449396330076083795612544224722601012905301590760458777645685227405101556523675881538806074238380210214522129782494625008797338924985184493938407043975390321471812425086628719918017617168139842497242748327929991266047768276088966202505912631605001665334396008498146140200314665809041600667606027726639233304623337402448896833987441652352802806893479466553607097049889470574072424222306370157372100333341754252024710509635794261259676146109547528825402704120325336415729930116955447494618853586382929265409477788106662104460926009436940014927588341117175109549516750866103009451271138197513124525789074111720742653801032385178637802330016936659430313026908789023739842932039494608405664525284395815659664438176248675720585898142561112495060527063482108134693103115223225552119562037271595285843062175268378056810321339203307471789709291468319703964087612708019462509751974000562766953038057343638748204268233814808794573835485903837587833728473336380376513352082910272711968084577876978956772398305178108423539121541614967943595371749417934186590400986472425053562969286972576883424999007882069784463114829560134213860387238518441911430006186352159250171763453083886195795841794763230857911352232737534360941507911021618728493421944137760873675488489885738237942113208115130923253600852745420501903201396505294873199780561431855178482705964915039580776318243784369016439876949149926849598778540382944827607130132072093672506574766368867480214737797328888923599599762983282851273380997426350845524595049962868707786758071547019952426700818750293438523131932295032863621401443983131251972219700679941333745461230532240407598073654846849805344263865384558012677600419966602712683157534071222244458211535867681845241639739608663566336459866409379534143200230603989946031524180431798993998191953446591991450365843731228013457722083648795298626477481262927515634858735385628511595312256365519979036262565930845233742790266207069919393717731432432933509401313940006899717917236621224209248333205513305960119846835220894850545619325784893079440681039991575199823387798464062768433239338313179239138971670962504804880709792106358123906481625590823881685207013369104949044561569734019436851166302104189414164771372645641058875378293067044651151515717684646543997274256986106868543426800554250853393644632047474138555378795476387369768027289096919692500536222220684400137713746614759524597861650156430064899925607626383912603490511728774723824448686432289157594292440962736215177352577605839621625583311078675216124532785837804298366502798918776391294139067857212335871173894362977373948814554078580782052389466677145455137004324305038664150007443828054083174886900924858774543044208360189680886405172715412821598052873563454404406514794760778078939130350907346412088556963853042467003905401986206697588912911728981049658547655535549910393985362183410321861151898026305552384039927217042056133201720731710948424169076495693859419467670785905478169081884174092389271077639767665831897412901979926856873658421422383000810239487180442795401261856246494806488730944621460184996565660468799757959078153463886315615763191598816773638915625083621603867789837480424165213716087869581431290947978316557807388210277598384829478419693135551765585064878076056928769112475842044692677380716862743432874864935463443016724374302919017532793438960949435697916521971793812499349707126424575885966330606257449208711258705141421739650434654019918327587941010801658759228373514964638333476378707451085263949356096568669169381947254435299513467586015454325378189418896481810273185231319150712045372720376630028061725994215720930939284379374053612905380660732219219736723104004270246915446987756635561187897458058946529497493444883403986920588426637320517223653589147609559057203250167102894394130117498575691155242826998841263261596428180882183962723464197244717485112541055706335023944584952229356799344588093983828525954045607413691749696401810388524003946885433702700966221959876906644623089475976166495999944147684425870423319173800326264599046994408968795779902203534975601154327560769250369239684291750108744000104638160330735975844208642165451102827612186284158954944215687972339919294713109995307696074882061837890667018284612647448340659407653086784253755301437038835683840955930824674127959229431655013798898904638571643043886260986052454304167894046362313199002735810369906412327499099882714664515864531211507689777339016206920630705831624963648231159807924350322367749662469228616819822808063502106059966867010654985751364674435877646632588139013904231605827778874500402976685400580237590772764211311605365614073700478790492344101190425488856816898196117907404802377393783536645085863639024995717074511565907152163273279938303544701568165220454804966965254751206207165280324265056827060907438053893119538883907413943114989208690890830272047561633566487383618227521380373258555704148167527483919842999191817389521390014571636822771857942728661309839059174711022588610304999669329449985339847203369556334455505635597121978807346833859052364843142708476186023395380414187170955030766911014737663794609716524590132210799068440676759958047292780861416801901664577281999946711531530935434212379671573661144592484290210606335568703598225605936484381885817278911715622888771377961318799738229852362358690765506664578112919857074236348228317119730785232524243844814126906671710762483197415646639688332911236492599782227728056900731866458565321701488074933918340717300608186798070439982987384117235806190325493795824841920784506758961671976206700338542971973065605540778185515305638633401472057809465886773377554031357192319599412638669362347791322299141101460026717489737846191582802988390454652706133437557985802951703507121255465662793620477896066721615573402475177562769029285180705989614171730612767914917307090454339258298329126547842173691420908251880748164611832564376501256053155732811581785943372307347718648759435676278800593031235516681776085125252945807961357858775126928772825941170186653657805384937098775890152525558223463069745524985590627875566277235305626703196485138825841960579360415678549042649099211402306366016775839995334597850872074061761056176079037081687576229648395943597652423157864227092094304731798507193467719482428864381313856685153636677443527628098950864679683246814943524729266393678938251931302130345979624207912153405725412831240230420865332737531954869353027806485384655621174144138438741093362057197331844925132628037265690090226547252232207930201364314654936247785646206681609092192495968531444541110342811477671630693087908459846305137221876709322598559043568313786789461718884527542249890636536353018617494222594117097611729758146837384342528719638161070618400489519244753956701400667877561763543664789687144216598087387531509626138036697968386537752466471129584366164206936342604557185039909592261909566225246789128576998240349873759442323769689530029984821172297144298236778951880402229501717148678345394006003055642745945597986607976593462308640996183080550954540432531072748206995878836226803600813110444839472789564944784742288065853800476744590903519409068320971791822976016115026461065936566841525010764656960276962403706401245076230045958766868631558581560591274990447551741923838359137346215790522092869322346478133551739075432779543009706646381034679287370056019261766476989162503624749718897402924895983830607989003634939869069434533466476136868715398822260111652051661363980127226408014091551264416343150865690717055367205157615300886792647155674426282482852267315505731282106039461342406995473626133472761494123461538812909061091038008056644735788002968982047412466269547217846685974264486772725016929418565835023670981647197729469661015596497589087830124857639819139727260006343587480031713329915943834423624254535939848488990974647815803079825856626912897589968156739682308558425792737138513440830739116562608201844722038920954267366463156733950759199176501375400600497644455090596783451872690127730578601124740521648627749327848934720273686486261110544080185172270516393200768661321350933000737394268733732224035797641475529102326853910244522896703159272118348636807247390407244801751217829683328478947496545023476522032134729382170833348183106250584286233330503103200135583449321753085689595405428172425998259145128586034597772850384589992936676676335665186228116156332620842908756720605049264644754687823731268053817777378541528109359884785773956683209411332372029075862540826159668473364048451515467299966054053126258865690261786196389050736624706754970640166546042110624976682045300579262901502284761731102766532136585587612844854590391590667780509566454463859261284339399579403893603694660175453521228704815884290054601290950111509432030183259881825371505937124433726211123783146788093468449664624368960903720423176483538681067058878724813233072120110475984936597971333208793130344365310038012566340861335563932455371478053891777613826813072286899123908434996674245012533782409096659238708870998546027551550518345817329188444135774862778751719257024268595523140211393803032945398933859574693471953967842060243192706704370598503830222379254718797028303700645340385876661654364171004024910647337902383503425065695150274002745656705207234101281986141922428557922477087874661165312880127572873513004147419127075015504517048646330481776871539682946813739070281958647548671268512662827995094416916819783518198831812092429589272330347900516029826270873370500179812877460219274397101248677702956974513178699567004061607463463860982729926941454248607173077903003881715920194786721087714262522203672256837266283749278573293498572673131305954135433303576071120094766981983633448805279141085887241458023865726639127970669903925706963463089113656806068424878156691100995322414334289004204995592523170743251864935702670664729398787036816824206499226824118102282308160803391046371266130277516808003942351314623562704856544126087911082138988769613301394187057703248393232006896963486081878170760950095674514734707445602364465229374353359870473777129505959321863338255366876700886347585866591701576358985854090821108001068497404262843254068834002014144748711970477590709114350932796164290187721803441454853348948467937823002564881697345346296022168444416940674436119522067662929275879216267550610089847438292932087457918290253937495795418889494965747087510171405446058701682276668013218155679921893371990921457982813942322680086956133405550452000513998289122356957802714590695705823255688539273179652384544496725623479145908489805994390799306519047351262316549577622294934778561495813891564508193203363181466311514673974637884147138703106841068056308123314111137506848048889019731719578350927460305941719967603346601461587791674425914249740907568812701342324721244640559490258001415096132801523346479134930193859053581938811509648714116855956450192856807000651910111441857857502552029016418514012662777705749022108566176142081720567415525589731697487094293016092545820298753502180324743687720055133364699733684474728093847782194299328012426665464054818267927407789790410999093149422903052672731929308679483928871785904641461654976196962279652566149864624844652482551395812952506195331449606010003297915358638634866871606743778406705100708393635192164684640914905765120666837335725105944320678126914698924370254021798350859623589521992522038124614732287649580533442331430537319288934021855812620788528580950397551617589640520183337363362794361912791769047714295719544247330234453795259602840319374573559518536346838115118481147025916394336595405426572194113289420565359514032497059847086723324177109289665128611454146516351526902562633946700982734486211928147462441109405829583856684019390910011250256322086093249204969132372992768746130126689022802359749272949876516968600165692624718214765381321199317585663575057955156447652253567358487757388018196608554549258535977588342123440310736618023158377546373259777441404437153818665699285695305617859881407186986374098987471927584907884246766280099924208033380715481245169606807017686368370103019285415143488352455254392201292358212481213403144820613468074045640787226255890212424663101560145652712492380343134653793521464817396293631717773192536048786260064882402265576028673537113816295242936715028032222672983520108068215439194202813297410747107280990332897668140843902949087621836165295124774302688184631839189018698597324576703353701594842260651054336810894104565026636743560308401016074063554875574282713196797928200595540068032137168569084200045527504919378741544041128662204380391728033360473652595596950486826017846951494644268939075576889686924560495552705508738975386759685247601190079660454659069248125355492887791047464923642073486568961018418330849260637435298427759934689250919954100604156243190749084228384531062628158494614976788913675529578945561553464417463320388588478714388879340041547919128759311984197117212124223232233606609921054248385208533889614621069456244243577918559951926677271267084932017216655495591401859139024631317717770072828301312071168209152952940789994789290386622812493490188876461328624560256282157727819795523727584167355066007044580766931571774453480261914673699346810697500254846454828225130091405932277578380979112740267448067740914230934189152284550533814193676984341385243649349937853056294000056419850273425214157957804464320139789182779416987535315606246316854970249964780460558590822019887255924414188521991995802690232482045550557370473529398380374496640402265741811359403097647227740893412898593940081339861301524179579766707705789229948496403215162841009984811770434847736777998487373200085187700389530277093883418742813864135175747876592394117820373486622875555883332498625258716835178942992798883177027092964066645599129088689270828810191292293134126415644453812368982079683329253707352029441789658943530188742456835252971686635137824885940745781439217328292655714211691105861816018818273230437092843151998377059407232340148157657949558136623845666000294711132236449867715964340009148605005492131672165215356430521590932054058658578147337807597350373425698862844000643905611141308548137540802869598544001435443394714477387921774804553459165536764264443999074980596141699233304245960221430002149086744329615133476560874446810249963221714160966706761775867371712821598431649434493030649292287162003665642286143753703768388842704974399908713508024234862276346417479334913550319607559852116215694717782722080889792956542453758235196509113591394330942788064879504758355620204909420300025519487548080953174154136769565924873613656824176607089870394764133605944498259995497230384902239805522467460991099319128165823856372286225090507307414712953884647617785408633054548513271042315425284207758866230636188296760349767094144188554922224671598912582049273833047463076603336899797680632338661555488381018699733485238671802576976564378617328862184764448587165248786340607586240341946578465988583085454623066644737845179190680180368697731250404238182352638346812068110214542811270857309614691246844069478520553961012027212353829715200093908412448656615029422576486906829155359129668895314811846289564238135815129614217196188193168486803912758796754251425734557764549057132434268454225878178502551952532553374730082445495795852033485690013924082417081348834676689149427313223295255759179362933547572659558687007771103069525804660879137985083675250975313097312566343651604779549613504081683945260975821464206308352892926123642646130377592906980081787694148291875801550952755834069086593060080829632111293115185610182595010614248526199728176142995678588572240679563576043663818380973468253510520282392336030672055580456006850431449202903824875732768589521616056641829707363291765105311375585609031719094618243018667102612453495411813111720025030396292531921493628461503688526894258861619156367507475761372218912041354521557905397909805809888616081920065085883056110056196613812009334929358986758811753747064919224715116908690642387971367911408995739456831886337186874111970371456410247859943049513447069647727927104545415050133529517283774675971513532902648779003773844717270456849888516100563230680796566437645643188858605451435912568653017294521321145124178442520788171473219062216766688680374688821632773728806183458542374898563030203797210355065648011705728890326709049735433674572763614831227578313858941063350228689770240157442400442786073239996005874727715077433713091834089747958858742640654787498986902813761433172052157106649684858902678051917042807287953281326062209301080467572974326899824523252169946189450436552006806931179934046877720472307129263229208979638516212326341725590141981872895005564530733398929341246507182087519971498414002130752211171522547743230261681100553931567306227494706426728067217798416451998259368167982206119615961483372559186164092910637691803712761554859305617314624347533068692331740003423703209454526613496995372667934085257366789764006090538437906906353640441635907346518706778527561273127998136598323034635955824767140440518887427576595204769463533798386211344151670232165146387723649603947254178566192324408879578781832256275147184905566969087719274058696632893426216829966319287156890350454747474291334141616517286087805773097712407354539915484263466584780641298304016471072176840946352248345794780478690951914429977581451151578295092289232191067651531017102963163728160240104386727339941977366436068403828480176184853197547850253784256058697923260884305878407697374636249042464771691483465265774301247793795868979169865314896736938427351904316502410165925167060671200076729421829772858134944154950847892400897243093661995238529639626920598833838545204232461900974081213350320998497769103611362273876251064002298477205853205233275770093062450945411821569668301660620060855554107244787111735006508537350899240054005957446629475734197118597679407782980021109154962175081017775170859367062619043940995374526149414007570354889325636891941101920643939527746546332771443086803576932153781147716949917030669358044304441538057416185712711816054158452712880444373534829597838756503538289925315597791432566292169712453824617094487453581755728022803367168690077854635372330363521503969605326948184522886974352336649865209780732551328918213454451138951998810731317580390211951392020290202973322606866832162013245991279421334887554948789267703253133801652633102891096347632434826404099097900732919193896687547818152205159781088045994970924407516600567739972167370472687726764042219306153039773718102602695680115532559234844434398106750038914134519294287993719044451050514595670162389636397322653404960720956894207884720277997119988228970180445383313229284774610134816199229396327920169631085231641878124792146848557436271713362315812389540530807222716890024488455144174380109411205785034129844638017590891695176332830810409010812019152144297923698900061934395790288320803617381271390079061486568845432425445227843168799770421487770987308574806267373608539678804694378681300913697749586245463793780596205247669694492951645716058544692775947219501433771416504444106204413580143348197733504874828827594628094530428753650312545776743892439995026589571164114121673244327802419629227827908050981033589682412708495637532302782808295387702270872884989811542939885436221248337093860698354123994576114691868911846547134886050705159042678218529325423191874771277258011169453374916026329141945968960810804346116698785724872279501877362717983319896691564244899311329100922014486727097023998118653100172498821147022911310905587141240803078657282122020789592260683147138557584842860767724157892574667545776033020237313051613602999349619197572759656866914165273072212012658744864997101537894603082694673650711186476424732970519120596471050000152329088786018778483255482326604036452353959162698453066617079105373364060667413329173997723623256556818324826680504650095405954631993474773018127905495776153447837714065326634833812232813325636217213078570058868634699072011128377118474116238125357809247600490615520663651734818114139246379398506804338638600825297194235435010868478602383463375680321161424906562655423842202378307058363125108049903421469276230831752871689902324866487711259262354362568306312560970031713600436772146244824345866442907839934786459154236924459411658670173938863407030014449772104634476744488950946032786725959004997659020607767043702436491572592017384103288528674614494029252883234836226718391227742386746189508400211309131143304100755687956378205691853061149758366257534852612203375077213516766125389008411586004296941061297434152938148185133545291755923319243586976669446015287581623710340674150841637518854049888725404521730646015872927597328132038913274075474868598607021778445065223006358664910490645232827206871906332837275174081492248398049760982062884620166865818318759732872220871921429388956648548827391080104519335592069856474144659379690010818582701800122142707824843765005096332108911149158329427613532359725698249631411140971666908431033302420027441148501996320341503645529600988277785807600385553893172645318788572409750636701122410385292185852865748371019403677511426747550177148694012706823176210973356369748424133862418266491732020315845806495117765803454542933806167970499947245735645748824079605356792593034731935449165078694596372149142368135302678863627747072826509291709007390405797223964158227507239498527796758720040416737791035537984703024091121949665690231684487732300492487247742388339686948811908412381473477694692016980180325880448126331733085995177077691767435086202025604459715394659993027566773950974571848686452962933023536472137745613748932832393377918505449814581312683778406903638603122250796632974664975259966505977513201116123044085926010451892403871191756597761187821482630430314191994685910063368268028521633799581097487967443443936198938271888079669829025406554194393540463928340486672604624465798994973011579172459429407845737478517739359007183871540176284576034758298141920889781148352904869940209488974386320528700459679345073122049933070880740801124965688879641920462415228195975541037198077083433563489055277341103300624025779153521401213517462970650016837415964026362632476816508801109247036691204430679190507076517374700310045694637951064154833149720706876281301734179693699465928885249646062014361769378229854488142427439416137688295886110764918361596353517197548445660594537988789282298983297466521879283065860893247081446961154177553832535478758609549929302440042085755490562003112114660283383413177224060026158022664759081306776161018672276200087519904856755972699724230712468621474406363229927922098960523160192564217647483146109157920991935451863845920641243136895941726602749162991675317298382954485799536129590880472052305357815547087388905936635984683467064996903294165211602832508117921726792285383098287059706980078064424111759347690175859768015789075827834627399835441750130960006096302286247521863310575011070137171080407610230146977470155106883211484647595911697969834741035834123134049833564148013632889734865407155295580650409035172208829612720322366437460752893207044865628976816295341179308894054262293704804873403977269041872388839528009520553592858373998400528038251233914650295228519780856740539956640102670663981775736811153075644650340138085450692229772587230688111304235425298631290982115904755879275324088872607305881927832820738829873859322411077655595861220322154853528838955191428424630496417784094040435238646699856856088532219336489351294459419600537502384835136964492766491188953864304913435778284718452813257956145829194284325733994426193096901209194385068834250281312184042617779795192263989444467500382310962439954382141627419840704255138961107108285327418138307274809445788633366956761935904755917635651283081896812029836824264519028400505826597679227155306536414161917568327966934051142651281121485515920763301574582681129506123972279087553763216132642488323764519236177013165959703582634041828654793671921977352050531471051602902628126678333059515282817616937640622317067040966471567575922294695998716478356067669269625390475268463987325226894203318421753030538530728884552475492450216694470561094900749543855220404967143673712982504813281515135809776077106663019787335826920097961712785052646905400117971200936275903600051401999767074749833117736584946146897133151947518499467064044932907140436128494822500662768898530014283816382779011568932015054624663268484502077314126252635117878468045793283825078180052628149875147147653405262468647433453160227077536278195382403426985887540481865868951531376474042900346079845478979673873517844915080285044704348368926564442127535036017194238166026530997585011940987268196653848335530282958835703857057626415070000527756906689841977659796271414759749200571218082754996467484086549952998833376609818241918678444075353952793573625758111516108152843501882340515555018963277412035158841603041628346493369214724082016012765344887209312790566203709915800763900681637857084402391626881412849561467399539498455176683261250287887740050799467783588163785465159130131130349068873579996413817919615338233267602058820126926271321564530413187958467274104115602149067715196881854000056373180285528007481031943799306410371176642606057616381804495533401990647966405988549144806301084094858280292636023923152906340260779746208844609146231514441458719224219642854632368457112481642589806482831469890209035922527362306845594947676100063258335627896609308568813984556176680731791232398781678436775248868285695230455800249480470207834444526070144499835936208330793789838287780119146156483391123955457168231788592423640288809424593944550733352718854024617971253157897014629111675556341019903570586439827935844270632282130807972724816760174942213269880287208623555856778089273878396399607283965607350820152120741902299860222689558614115176538912760259975968836140415477278324829648638838204553496766661176899299402205873955730285305659460989088660862434776832850901067080544319291332238253929421761434812801564636162703298857894790455985682533253072690584662261396266288514173654165130540110663696754813620770101297078798064908859803048343011704529799316233610405892813682453376792766484951873144128078720886953842356678057761026883186251985164008651462551775875724129540402355535005329897339442416606410351274210920115562589721839324536353850168652422442516719452439760986746659469721835813436912297419029738868296997283568000497321596742713837025842193925001507206547517658165070527051233352672878438110455164533699689478281187631346056807049737911767659398817828820462957632338158412586554974577926789770150675804538318964611261495459506422960082539265157218646442211061883948801363656126108320129435089819865092300887492567860601190244103477244632369164651908102051907382967378517082701257462043293935132679571176631214669507767786352899879675031206922708982356830478098155754492944325046247152686712587364471123317951632273784334001394920780349860332796716375903475790803470821595804561800468517857369778275238215172358774598196318686946915967483386832261250987785307238962057580179204840135404011484109192291859717786538275678303180486516180365277821405759837682554371693030698386336373363018129682385854616015306314203374417992259243171990799049794949587594543001166134969626539886732480305851720473235362705786696128704795557407680511579603122860500889975586073499289321149645829072707847923180894825817234941621707370309423388681707661800616394033557630614169907282902887036636922104076302143867912434531488182580394691940950200769985922153204771898255291658514838034181990763307791590854075484837904437572001970793741331866412245980679187346832732424757290412958321550616418758673732443793984599511594199869915535697841093892567510647767398794201360590604245522803567933456601558503885218388180759175614479837239548879805846725841778772147545761354162973180821276196647945244390216209530932313804399247502551751119595771259194094198962167419630440685692906290170675684452251176293149169692337611185342117464454454333961060132884650254763770294273985463019904766963714705156385555428329922171852529989059910935766903831414946394788433395104797580745736268214204147408405589810569212232146982177518710061282568025199820176913710744623977082742818436786698776388577207302359617054308599737105935808042098718702285982550762545277012498180524218536325367940364535376268693260553055387562929200504639504106504503879924908567404499299830533280246606245582001484659002887011281678472737575222555188086608470212248620401124130446466313751174961390324564336227787394709405951170833153358289083129004749483304722104868243982459333335324546260226939742947776604323957075420842510495931123857123437429200115157157925447544741632247943803057667667148519623804543578839441073709910388968801206557848681684141248349504084888453314856624314628587641012914601236603304207842652379245511258922762270409957706135902356470211045594796889099878605125488733620585682739977078050038367463625741621230892186232960146950177796080140935920259936169589052874241999490337761026809012722030336976468744437595283860330766176629575528660806468047570769071605407346912678196626604217435120012595863999738463411423706181474704012479264351043034085750043044479287665585766670469539884606079514768266536829950443389395563810217200522785237146653423800986287606044870677108656453888194178340063883461753179982463406097807615517992089034101826911144589369023923199916032288115852832015532250743128994291133318033853190872614167726610693225760468311840896060542341348159635922001780867440948654393320011821781414577891456204914901635075659165207181316001337463076649557786714942249374007846727935961474295562972933028219654993996810772502751656636464808426310337424756722346568217842659898646077138555561976205869127289377938307764853088239596494905708954470087272381104740438648688694670398312328624521012801959355172157363179802050561249315946600736238530928995373614655990199840923580761722692392468339932120886944066585613865911534445475871069502107328831986158382326281700960588067830139725119082720187917139677533643149370275682874804885650175618981926386456276250474640780221823154731520938697103085967172349595544954029298193470668629670372945825510012854984586721292058985671993490989295553926915512863294851348855984587513128388427086715325495149931778710413969132707057363388362803231609915958824956061770133326958811559435897901328905756372607198415321024970690849822071083547641852065130951949121813802236528330422376763339401672013898247229334455314558287562323283689340061418466818087106391247064199474867334189888505714468804736204204789696669973320289497833342318711447425695500532959977325252737842463880506480540042104363614600338752216041023725568740803115516277021565219820652473151730715341095499574643667753640433465015126086480663076926424453457741715512856724856574381664724258395289963602419569094858006525148381491685068356744462811101803127180740823694314889140732010242161804443329669704924337983713996445474301983479405509532826242184646044810033561326755898246478113913726854387681879525899871823981336337169444434176513031487029463465367872261877809507026336369032602281507000474688513833870509039155299348028849441484248151108668140705327190588930532969610998229970162411191432437376322611998538183773144639334033347689062863095185789590697778225154512901339662440618014883074864608100082451930466990069179721103407543771414106144277918443352297300387820859350329407543828247581453901255375076399521904407551383319310847579512462803564679583566269871061591650374841148610611930828606975844530593008514648231280698902231299005331616012276418414895898758308333620401579755378129703845010565818504084661658610448537828732406203323205951011676111829592188560118621013770593265705432418567868000101353651282839128894126105984549300178050811894646776971307306820012683860281007292096410707695425269080122487950429713700288788400419037955434157352571464929176432650183517140085252758467740469991904597135922584904452227962759600547859997954880759277706992271193958967453448241672256977851723541910678805874571330050873584623869962309884598052048017198794534098711348514743192916096671777199114023918410445574381611420675018784470884397859413130543348760677393076530892945262236463166020309723872317289011784568252159966447535425886967122003697672269831572094000971889713693930629311679849189236863509123411446613680368619803335640785333592029129773804602768988444582895165358532059458495400556387756016575074473378552392030045520662864424854170264666814535228250947556389801684746317258381096033864709551742644945261324063649786203857132118225000107844831582853271254168199783772852905269814993108758572917386781912162817958132377648952690330873796082462405524820284185251242272885734262312447926148951910015531528521667859350093866198875176684340548522491872596120710400615698623215475833781438040724031068563841355216983410172954448406989760321149744413729027211795407103226745861897643556199156739294335605518375137327252679918142067386590597334392285095650166687211031410053350732164246585322571993177620255511678995785870991331304364168547118223424182312392175097602024726580775989317452472759987946767449181680375908013306000979797789106115401582535008674655047287064408555516384206493363329850605696792094666652624397571901548464926986242623111466898386910611665984837190021147107748616669831844673346713816533131083460692275995658043642084778524845691921022177331329513770402727561262594965162508990770236000628489452592857961279721315955192646214481823421317884689725724473546161394616920362381432107155400882459653500801469668955994910279616611458670365771487502442204053382608291847394721761444314581060789608908216830548881460932036398386975475220540746056042295627977748832076098880294507305559844307972955694846626959486822526764389958143348922258806570479330788953124885517544797860047708395801768583249940663650961614794453069223407549294745318426832953165644808214412577462839088447058014725462232325912919682519885495268709182453974588773909169157158145708287940641237942965236406754184008115553406258855177355626303151551073109743487021964875020421509098910488852691412268796570980789693010381142457777529163067398094714562735132565046436561600434537959037675153535803629597040021562285660905177893964896762713246548710787675631608160547696980741782790782433457735281271308980260852846884339450311528179674734061085299835084806602140486306063568427575377027860781418492564505618585791240054731302974669036873298694812381795863594302766427706883057087342521580470937296704358196781844434237554853786555675186058438798431591649707485907209682985214095227469671040094709450618407303666258124854628975781691617745524713880774403249113151982721721942267559360164499779353813543862767168639197177406389954102028649389504534128332198117098406067972873578671406497122363860281502071271308254884264765956053353467857275866088783254697439589415107442148712422569708719169548886389030705874673908553290996003910828719914482984475928148218588954662753579427245817925288701614883491939767645638431963738036401221359810728950710060707245343499459963419887519818871865232976600730478762828790591277009440245083941538303622995713865043478287064898188431611561158772445167415883063221103909252366298554917133026356179922446094164833286525601858608075130834208178050697016619991923299829950221943232914563529616917358151901310409823723002751305465876376762189298017150488481840987000271750459385430139022964920039862026770395235486376379640453885952782452991346155765501470138048421701968759464667425346275993344786111041676245824563243502297616452355866810161682894332830962962606200592609282965811813458653014495698917079817528749671546242424300257756955941975244110668476819316388097012674413084536608738950617114937287203327011596950306332480765816142002131263718292239924936221967212498762755938315460218155346604159204351356611882979376269607395051050679559478772291314667069136603268295710472050928608726423156897455719495208705828149661558242717534897486882774082138079850904032611321756671752469728283397938060616918312737222149308424476775923393560755113603949796678575250889820195159190461826781537457303311456630696905137547025682930116340995233433319804387398658178566754839148410995145135207196808638926203726455878648166429277904137343634941121490616507342191462460826758459498400055170414843122709439430035965962632480813682299430963714041290494178329273148432968432951999407330847033217684357815974453496165810839529002051675662635852493564030824221919559308596611427329783408368653523571001021612529995685048628082450505427899992448844099307917980563674420819918651495038028385899604589598314170577290657042279835031600050394576841826226641316230508244102033695829992676129755073545713823713724913535410596405312654765491735797441003767012396002912554388263561477656521076932008347198756280246192389828449436872947337541139483441811253167833234070621407367380566410901366295038731194509661314073758753668401010796187452159990426497908404801737751672425809838890248766072326481685106702284563112812025045188658170597421177514174387284582260255765265077810308799380439929699810031990057118901274221635821918498503722186691733172308435906866473098827163221614310062357362631987700429972998403922969568555601769089880057570839066810295163449242090398618504773063962811577156645964554533838663003663248843193033757226877304357928257741529090453024952705959657843770787763441072251749860268747603362065209503499751086485981161817928533749855615509788537403627745110688354438441087538081453196641412128541024502504498646113788827459062457666385881281818305583480419094672623513796729061889768427065376593026880894263431506162754308236934998006755837107089503437475337375059114211851663522946281853015578567321022496888426620626145002729003796698647978340513046015012154434877680154322093639909325831917740495465244012193945301315623802855233590402803770727040022928913862624729582488269162985672622913277424352741069375231055048110520160377010448225838847339953924461663212830931421340264440136747684306875616609790748410242694768437041836642547385151562559595175237619670678582630092104369620757663609710686369617937758438567269611141867126462952612231248448997738514014392799011065172892304042149786365352886245367498720519934786807209813929959790451216424509992341856285588410817098358846127775132760691143420336287699563965450617429015206111289295125482795785506651757870705671571508580983909936225914128614591859203490238435420773223701311375481348817625534885373783509092569004074591887579475624995749904556224409900895777242514481609925709501128527373101388641044283948554623784384383651022389658853742825757291464894185898797022601286322437617262565173118497301546062437851695595613342643071662652979421315322657208545558153081830529318233500216861893375367478303566076676078772981222683671945622189872474195272071477200170431734081909438868245440092828643575293491177418224972601324475741940326788729083119234500364073301163496846007085925469851183817595521530962375208358713418420287021743312437517671341833514601387858174261591041739348888591208330338179127187792311928172544445178875855073978927957635996330475678710524763895489545531830970973890273471543832232576895543397847395526316182492709052950173625209423304913150091023737398379497754218740780068289850404603638350525243840629557035388081294258966730415240345909772043686711696066040841092100497422931142632231469581384373353953497112845397337350655841239211703791673543421361425630745629577343353103524621156660765760186453888875310961315229675426596074428054956545831916501527726446096873327087393865590698969400210491280100219651749952519169502179517652330051947096671362559580626203716475817872509541131679379892803022868498160310573492160547830510193925196494359951625408700011013921388624408688793666137318336049007456284962386052745690974825272855502475039163077131540996780523384453752328944728873409154799242226173168406599610271410338393508702176781547892698740786760370020806887406366197239693372586676608169545754966682673214215131200287847719507870566822152181383487622768990048782921859992662349186920563232237556376797704690507477548182542219456300580816418622821464057373188575843073865688859171482778526304887279775158118281245991896156599596350493737695964736415832914998626673065466362377311317822092008791695396245996994439560231266867258212722692928471929246831815371185989668728350066314908009372700780107553343734845644995480811129819354632966195903768059440580996488710471708869397222975686458152337071408959078548775346178250966369497736673981396667893917287449428230484811322798131931955283206744298892769523295308460993012800950938498439172539114847587716698351306069156668614868378802812307755143405754210300357811773130482030969884133872854921632345868853328644001880027789536466027161705701494927572943254596318872250911298177154807937053036433329078247820538774043183517415944010914060103927196064498649109758632520024223156984714900972058341844037204640491472493055095373987563196495149165490578627507644577824739393555408621727849684812381217234367487105399807688309971451733481009453618962582229662360709049099141392068573676243004233978377250841665849872919827491263697004942146212937562139991264221799850610705557140206666838090441362148551970944454963395682672720041898594064993003216191375598613870814711826433258254158830928997098026961495595001403861567927371930694375974544403788211586246157449867162322801399902135521487762156306249850393189519507892194273178984306403772982303222119657715267695915706403828512084419302588327145565802971403650323994094098976844580486175095149353014798033002537906273594341561940207684003174517627218154518704993619784822294709762707594036952324084852209624790065922101791550328331478380221222490798018908256529878072759120227082932562581935287205767587147258328144836767283858711395353752694863422081204031888223704365755182071726182221136071599346429176127022217209344933256824185420462578720225134558348098611430916844028481305955628732827826916854213283864140522650314198277773372650091629840865974634197538323391826693491789263931519866213526689882501472141200919095202955708390749086221374893075577790616409498588256044542054598846267425568002664561512894995611482444856486613462233299543946523828250766035849020201491480826997103366069557118461190952312249656606843706905396841418595886176028358107820218299208757331962262391067313042404091140628280418942787649069110736443372342771340008717461442663348962217611934463541682044940726998367478967541121838020128440693222493220769796823480795455072030707087000743113551945529430355466192950239923908138077137189736367640240078536568659567415105913789153426354644553372162208696403107466107447832037023259639121868331965118228191048588484660565464593299639237060921454414547382134120418295532324175294675665723649893614135169565177337240523489491936735971342987966738438399033752722052785615149386420568037415717993602090067549064141728485382863750784007289442375918588764973002327955640723141099918733826410387231004393919783250032436039984291689623127294321834655698453942752332507383681106682647336824112349884083847201436883789163718693897080828577086492173660266886288957291690996364418232135613545223882533017426062423345306433428292216008384714009782254945667218981619072843671179033574694619362203960304438599921400372670181536097749403417766310217513296559323676412532661053113009655148201303317703072018668327748116057316424793138080331934955328652212381379760517247738507297126695097943378340045933872440233195066483161075292393858550352289652392858328354316245365345185261800379903864217921091614886229348380710039357644243655625327581905447505843761857738323188673459970754584592437654844370897899683359258095268457775333109055031627647640426364780400042718356281111023129865779793423913863548170128157423603745367600425164573613968959649887585175336454879833821737145073413513297345959921988516659702542451450541082752711966630429505905785580664532394846600130259849986152014240893024369881779337593357005684370110169625908536139133291864050532952664367331958475956806572733926732006554608135097244683015745131873601240734514639353953222210447424235328326331478264929794685269345647244465196827510159075621773126352165582176397096415015803811642813324515865866216013964824716799141615028202829226789662279781076505404215681799077827869868177509553111564669271851876268613465259918462918089836321230100603166976706995227955883747506368206476475191092894885385073082779913532715712312183113433803647889639124024836783363323377682722809789702702129442589470922752493818171774287491073257869661158999000133445833875894895383729420448275883190596708603838388088607886550399540027697068016797301087498304580610739583551190336589554675375480077396710281732999516020693461322224630117553592566486207621367702588294535720705995375161525304702511076817579489738599724266122058713463268102007010226711296365026805030786387004570631546455802803929306640537576392549104308431911004119723881024729750764269938933884602012213223159117815306241229452953146133726090781256378353582636708576126034802352135556277131685208262121226640085142447135920506042291338297337247227171904959013611885633949045780267338842953542894267249734234839422344376026210638903111748182063299684341195285181488270795199807375572006650074907543849583530324755964580797100211893294127846073616840365736930080049709291993416447852271182961428230155540027601402073476776857826377757366806217017259875435911820016479223739318868234805385840109182744573496674531125575081577769140744958228320989329241060240828567951876234419604258772608942259104395718304592304197448665537702117419466968415117707615064547009377512380500162919493666503386545430973309053790595348048764371725283693860995248841491447958092208152151483967464757493027032285176021048881107874486178194121331240538710486263661098760353739804676029112756047266006457248889003980086592352184059453697370070496847187831853192387018757932050361886917426862787272132551528254065428694274231024126852199639402881745497183653024374311896172883290211854003952360523930001834074514313863629668492968253776124221061318490716938820466135943242550479075908454779439287989867335708235707071190788122469725000178357190956722493499947616198973713497500220166301387596456791546483655329555101085221306538979024646468763302476069901202698423958602540445317454665413017811108116884276992293712281522640215513219527275918469504082938954789050954349022708757740546243990724282292434443859554713850704555384504266022118784624020775838713020369263449196239502114192650682054215562582089453303317106374020065563464575309393342787630301190820375561175901263129353057245846280976895791286271850739268371412148761150488499377844461290548900433070467014628917568885737391170824379618920001560016838939525625469957586297730724344686365119123177144887265967590551199795825408967267847325739322417543708078233086007818905200057777064099380288014775086614642418042730171363927328379163619803290686639007637518681153268334066724593559093143909833121845228856789364880323142460758341663715047240416335429313288474812801879058139481851810309881775688811061511042613645294381667439741899094506463596648028682903691601724341379804546199311255537218315569404083230219418403049293226121783572195739670963642135559620540649899029931812057914176577658240384642904624197252123066273853805638249405724095950592413858076125888008865435054213619704504268344984839417336190093345437698555374673359347043507205938540160372032852475517918272466157141142315013947059471851985717462747232548619328401504251417529226900820091057002773727110838030591247125238054866311485709730608993062305398467247184983153009288767934948133081875406293680555583007363139330049874879291498331417185474933240334852222500563859635250073909191017780174178940616539790003155359978290833497757655542849316363337496239811989501686803957863705848879864968679487966228383542550677141210164541424864854246263783217390375839005435794712693975246089591374075073354125578073797968429615532482421586171756371429174107582265782782994632441139836375000338278881639228744477201965736318038361039296781503362986941626907625418267577063409528670606563576384946443378957341797830846857995321798842169556312323820637133495645001416270443841335950424348540681287251154203194767391865816480862120934493957512809898167068898457329516039494899473140961577757018277746017358924378532683612598463342409661611907786280295353274754130675806374990125277783501358342354937341642355317984009165561673324350291438128258129293694758634234823216725377123119157915349488285585782115869544272096214691095453193122975922158915382536313588462322726634775866227188874343121271340029219340863994768524959807630574881632957540404846321846587353506533418894636008216510484809167711781596333511599484742111616397256921861017148510726614375246073560238087651538282214045044966651523094898856235960417155082845243388044975368073758414585570235180167234718760980047197098379713984420358567109648437855828970330158580129132040195156636063886926600350310961335599197059583727496199850071743737446475266206955628905893417763737094116980525584042300408600823476834764649456310826121021611136041472278677398612033294458713219728482093603770670777382365096566092434631760732912284026199403834732539211379888741346949616839367957966403710288449394760030935412480367643594466616171024642135536697204828840974944240387414219032868369844106137271338194950982720664952886817415232353031567600910391086489694974761044456614292738241534792404548847264755933842045782576571915946713516427645577073022651401666148310382068444072506320230243682462723581519823402125130514802905068394900978495591430920571048125465325711875502085363330353499432202685194864650437178590761397251155418743984048578627976764422293710115879125559161728807806385262277724723449268891019574152619143432147347448126764085201137882105697591913914340630268450147831496866467027842943666258654092420884093734794986801859872727402409686320346557695137377604854983530817960162462840486717410959743246057075057274233660823654234462169069991260315786035199530943574035065293691469410741315612735538616664218346220990948241715357332110829668851969454561728589436200394552974268713973497799448129191192879134596781348910507667048495691475464778859273505436454536134932173050765537813076835179354821450630549474396543071503716937457777513660650480278612823209642668992134227505751836494167087483531605559038551846541553839167295311190545021039241519579063403452578683323927430125811764587452665159421962966131918359322474125617229554097450163290703113485263640794201126366729728560807946015911835787373097317476019806211507790714103761971076796317142816984134180885319900649065247681327258098127104206676468891090912943721948330155664749580986423048731723805864254049237051860579437331789091871571262972310536245203037565872353250526421070586334972128325180393355641650692715485467898182163167171434695093248521223195001733872477834674025506295921259425579668839870328066418789197377453196241199065150839172035926027568365768800921905449359474221790445903621995639103962039894365151827615207296559608545550642639394357068100885122498868791957549625710387760971480611507488883426638470412637628796646719599551255956682951235058905523441779013349862042171477056691432909032662105958629852857311740504120922167384484534985668763252225666362953160407650876971042609276795817475214986108001028309954126212249569748566072316878248458304085993814487232085856979829474994057027066359365067782670600746034918410115246904915413972227345017519391429764345758434734440158274693616375751666659970475989236794304977614567519297462562597943924432405040462549023367976718490273788449376739172222789999105650407557266727283486997456579139617109276885435242020544527065224764808615338676356741261927064208418706283796984494029444063584955570649731596836167802344845255635146416789074899215201394972165833327586706104418984531927639438311489657187403819989952687442122670664936212107890185132950479744313516750240570895751381119055270697201299554554555342108286858620889643090019324162007950148722037692873289290630591322956669457788420653566975182606416967681148730002631658757019263310083119875371399727105265964799955986629824659787891913039757399345023935068034856415868613308819120617203880962476973198136938214561324338698160630580823598123272338875378083981679814021605940045864950457777754902635436319526534931017731499712114795862735116061986514915209933063222821585302992056288651349760153796948213055606335505964466957022098807556176485350693993501951881888153717534118363847942558023175998961628431096663210407358158066585788633955070624977210800359855398609371054366243990559125280752588943279559990914031725607596342162139822649095911996718209384904708686535891639605580258534603859174629667852875620735870159887365653819751715820199681390578716430178269936442109721018376102272233612676275351379380119525375607176948580739845224109539581664256715539496943542685446498293181267531207911445481445628224812141809351472083208409174480520384380718425549663147238528343700351304139155257136429409223201878977204995956307309004781528058099616331772346856305150807281209105565980936753015060439075656364689846152791602472355108123752595407203968377435219826083080524750488880685262938499437551567569296266819044047369174237313697525269904591057757209635593292115674042284097769492539603266227374976475614786631433071913432259133545528702560593503470448822306369005813008229093441723604502983876802306487958275083306291189172224677889941575701960905042476799116187650532147431896279344237552720732734646968008764914291908032463859263266251812995834478256782947685345846779410579987922426244645848975819552037300796902683860679907198157330841865756033038050192035791782358967379380915162363910898817916359311459038823999257452309845379227259126023745541947021427043484290426530463709762253493514306610039167756708000993014392644786148783787792036591835359932534345494557593308305580544204564451372595658661942888110156380327183700594246786049781952143130118336868267060011372053685607252371374509568891042445874807781729458513570666194328287016374597250207559324015426664306381350774358060986491190798421529035763767328746043497316641888456333372250715745999322537639035196742365242705180384195136270109913081084517004758505850865054805543776547673754459518638732244448700861290249892533869481350119613752127907868424166890051114294969231863432735624111941976218379499631310511058552721885631344228729676754362872628833663170310840840917814814372196989009550149636077608078548084679311204498619816708846787138945443681701968870202310185726996509931800984046203837095510830287593904135897644383888742379453134369911222953701535055686216386139308554971754400046923287570087583002873094879060792236380837725737706229851097298503599332186569935382261017061203045389270023515328783284834591175043072484365485771115589506211129178550475324203153751446034076300029039387102696526521957810111270284684139419953302486682332994902976065161318125480642368456515969483077648727825471598576980552871757495042021761427992589328268844030998466268892668099617799838496272788171232897583940306141965066303529781813749759893078669788723078424696861994383797201421354736477338649015466874316789752187267260823215069205179547600228905944790595982703169354454341428925564366412145163031316676841828352379550203235603461387321351325989775149869677534187541155899849318068678171240358344282416419554967346583696590551500817583023746869051930914963645295381815542232372194059128229226076082947975712715832539434975413242393324433996464588796194671881939838393883933829305693646195311462451017128210207722538919169923000890448919869559017603936346733426809272622831378799116240542369054494011619718615915819520691281451952611885081762925585384044637386386975643794771513989555021132762630205440257115252496919235807259999084678745732153952115252625922852593643975153878333733332100074393583775591757055289201674151655391985154742442385926145623258622747147270611779075129566371941368201915740233631561426207163494500882943869837574330691203299132490178439991174649754668125957640911804837989741074198861263551265482597824349898493560100970106577752912161939561595233612975758214932219182935553551776743022398505084274228986518760224308596045396448198317198950936213269784567321304113969543395579366468315073601863870195111422499110111687303654903493701589491051784721972763718881022347310606938969620370962040872347154711966604621047245925490861886851801104926495185069294305840864277145864209397047272160758243841822773264258491197234181940043710240844479778364768744405587546654898548467321745874795360027564819477413762526713735586319684916568092553486682216327521859504922923684305516968868656999860423441915396081488031849746469456171442515887876101219587149276202804865182153104350776815842725412916246992362764719021275460396890771266442324495650392420795833765600284177707817255972959678736646653092676791847544009339177048709856805782804547221169714562094604529964055337219411140028691511203078032144580102063987157361325799836172541238801314466277756366262059922869016740245315418719232808846902629093025505562374643827606345220322893064858723528494899002849571808612207411490172873369196820184062924228385398314179892475612484549548366989516556664121266348599118332148032662834291020445197054287958866260806103628384904672243589353016231577886040898501034039651502157696814017427483634235296005241615997550989672988675688295933179574055559775214402028964112564594459367573513508101111896640861824551187762888659053665026940247854452730572576829536112824582668779048325431825990175345678488661706921642965050579458639977801177597414341829855230554016327782262784311076608774805087500313735863161721144932772740062001580148648501156207437948606388332747261439163715224293093035952412629810887841622327038169069725679136255745425326559185613478032225235776721874060162026794265156809248914626798439418968643132518277057278735208105434840243431711747579251792704506754565245453446373864883370890044423998300803783110016517785946873181035153931670648179558297764804826268862684172092572589842256438234421700761582112146632941473391271175343193829600864238994261296687271842194535576002245439954347763648422885622096333576984922715231799007249589212457466376446115536703647630495439561760990617383424041218565027306048196710688803371943323219958502166175311324803766577538582658244449465120191627627785850250023598397968483957483582751396241430604283375231074168813098889804210120908443027719620460605433461003045979530503486676894021754941552720008594877346520305526886331857256607008973435444608291008830717084596389967410695601662945118368214470092783407525082785581691377669826160553435738575363272868360629565820003551941278434342011024303177220958758762134846206948475776541478913017659388239225302760525094973277855520438174153659200732068548858426939397334623910975764504148376540517909794623549740350008812290621095498342219666426123097005046788506384044136612531735978098958874141224756566927121416580269276889567092538387202029308183300004539075542175576472088796157020378233562625814792967015069966666590527613696620472706813295768043740091943650681746955737667942171186253412749729213040722697289386279086640877930621515658703249260468250569157243401539916616634252820128528003203263244367336633155647262393075027983569330162878019414417901557685566131781467546325748613800222090095459671611928361382906145031794650761709811423636518189816385912679517407175928327565580964569338480436739705088192660363670889710175421424710778215172929638697988241222578355081059223848929189404847438280177021085251495708148465630581363342747039825165308415252750270830248217786865737539828169421535673795414742901045888016067476351761038920771151159405937903074557281677584905181298121151292364024314862135275277827188881962329467737771908118337393551052857764118750678009811723691661354285402072598428967456320175062935501609256632014768704243783170419335318132284334027175409669274510229616177761126749083112079757985378790814249448231544424897869306097529585882975136721198148232276479426317469534191201697658915753950571766630967942855274968144256264967238597602631297854152577365422623951593473805773027725153519801636047386149055744269890266277248020038262556411578037902319322079773095511787165454427591376575043789340213164066853516222366992495525985397150979471813218651072660431111205543839574391705535374992248058715593923256933560586267617340612185718243566005585257869008611933714091515906649907026036903090331560675235089622134888186761812409817241532277103417578952901085489511598273815264863511591122998905308095216789578051903928788092114526863877605838766712974778625655632028758065986213603550933171719549100076586864195228822307259955893636430369123680207809784949039744707294310556383832803853528268911912331758213940040916640077238145924327083889316236324998057323731435530565124281959015211816661122339994464315794328811929671923097855382808984612541562625516536336024413722663234478461860041969497947003657483670073514677617444301383491486280674374618576460761002048152810794049960353739572797719536694065971722575018253374894036465374105972609078519380402228635429485487525009174479476011095555245571074613092797581263825315896248071685874442619211954852557538369388072229576989808204095847902004028350350862696368111263047796438422385624904542277374633319398847549308219516387596772648530997715865305532300549592705857720201751854975145785926449682675289003608511559747291023111436304230367630037470174450490971085259833342715780554484210530094987774063702972844369824573265809162177676469214925150773062575184936072410977950355740564352577977527113375503804230589291114917071261806105734034208799058373432537780901972333806243937497241920770528400131314942016905407022270967116333082193646953028902104310177268975714428773842379870714097264351553197807562321424879826224217730285918303190102295989417100516915117828185518734967725348678618250501865479979255945397834217197917342173687350671220931201127804578874574502914079572716077067176598377393170836693422484082904320527222605133961728782273296195771603556833941490353113845459118807109866254187146621313816948064001767842554687170659115371851750668201246801055014126870076951745254726313077932587478824631387116961093159822060895000025100785824042287876898989184821587677042905498713290717475231974760967236862291887858869185941129523653182961608928817200666314813598596136071353559004263096081897946891708284940445053123538333453860153956480604059061681247037771681917479153766979790263018238322644578163889816031136826992828944539448884812198411107171028614456282934974807600562156699460605222603500025834987605538548371923799184384590309528969426911915339065937359383708198783376394027160525079153805916766616065518948963867123192249126253430893960640580958394558428522453672570428953874210117459783403554009199485979546800143559303270167524288740643228525909648968343056216019799574453592359069687417081503477172706128968687458246275457277518538737643230074487128295758696166391672906812335130535168587815156802193630647070928026337162512087157043089711836141251794416523205927337170424461880250179852042525509327063082061238527491100914780988838739099988069641397926920085017355630451102727578718245998137143993490229550195740504599601365205609614976900148539202626144171474497857301973129498716542908889574395019977560880107866700972226900386974955720073905527226941633528827564077291339969089651168451496731249649866649795546045684869213071086595752386333632221320269966763442081973933066051472557340523969201558339512541269711341098577871564966708133459024715294467888366363422002121775806589708491301660317780180484831112553291313107719584583167801412669058071556322752234456104301280366288879966705971900393223988543215380042358136101651268983385141141505037912663306451142139453049841990984592113391992927005849895856538807326609419808126493848740538078704778234824004653234206028286348604663103277101747148137199269650448654695796532003194162665745082651887206225249518955518190338295230780370735821930034954018751118000261701525273895608655288556298371732711396177674807452888471267981990832893080692813156917789702708669896243247773010055400885866852050221141270594673659286683507169668457803624483902579615432317717517131630813428899711530968101098159515675747518557181701478012046054357059636815269509517708750182865326357209100361950170064453052008477930431461507264374974917642269430559403949569296841535495223161443265442365720692174775970826323280305840669026296932148611918351159877988124480509617757347549209432109512416453663331549895624974746579703379525343955295186452113010559596097526959812669388088320401207168571862066716769610842328176278431918452375502868637366815463229327516280103610721685964758378967265003831571385060921635199365311772401995796266576499086480466090675007384455899337736018740119819636939724004222179062161270326784134210570036340890864892599878869017699155906814014537176385693689456905228583812378047577496434555319147766722647020908323317512337844193794949794273407262938496541808617783850295698765861937736354619353783661940752325838767837826417720920955106746440137629257784406644600346390295863152132539846742039151554534531478640114365746915822526146979870094950221370077918745481830775688279343724032469466130150151217074088323425367383321996347127686837441484022161278390757421219138135033019970651438013312823704719876781764596645729966701925316567709770954097399345546707017971001609775817283185751872777047902889752698821448754177056099354431331065288328460266290975681282684446404904454925049361471162345524110366567098559799242785145427327236228880767558803629117784740582342660846873147598468635506623360312271945751556207146389083630930803997193417337848318256467136318201306193880236758090249847460468535158411807087783829615004672507822514723442956615330520974788026267668391355589906225175895720734691049217578422300540677005197770421396292806218980121394677708923545867368498137852026808092055988860195965497140127256785993160672021122882193395248195538227331252192103321920795094479197329695041751516939835207199727627758844697649949457236351716268520698015912778262850212573091894328004502380519032480052206595076214065541611083990037747751355645991619301309381448486035351880274829610411168962269156252487704971875893374284655836992103223320544362798159519074947678177890158258316355146599038760520906334137367040998977192244057353807739663872688189700874311425669737200757908989628945180201155074729598377252326229812809410972967859732603954643530219144442116848683792059536647693158142379555356186293915360005321785536869032304322144410038825766555597931651966515814268771121605772542010351175123642330549301193409463929543023598808008196661842799688070135841095677740640605322289252689688581946919708989653757411738729676497772838316918535009513571772247353315051772461180162862151201620789123500587289581676004976499699528950917689377048461627701235352269962317991451408221136877401024530140411671147061913622225074608283597368718222873656490782075722970380795480452944841630296165620213509683508567392851990314794029390223834253618747376683769835091737283330949693316012791970599638533944424571818240928920042143723339550614797538143654657722761059984407146245583994863989463065952584886302838345882514820429680874540390659742976625974819951513891244761120864452464188698448872183442786773461214473616690616450246426272570553832630588128575010291742027451331697364466656537770202988005511297780324248532555451740390320613406901783191462331982505560982550715934673598864577317110690808868204695925210963900489439098655063694872026538470486441906069116386202732167691516649609093059254680014768269308607590632272726417994351223548746274862220282289273957549233931577175481864487051025419385831927741962367818573997078013425190920969557495252326190792864535108419132523511883452033571512800456155677575295959125418407693481219770890816532024320161397383249622387544512053839135408897825071489810013181603650702882432106730486313426259710565764818004973480388834489799939927043862504996729477785984249054639996998739910948353152540220323142266784000331181021802053490552535357613395711220773133168079303019828826220815184363944137302556232229520134164154156024741821668063148250320504114501073823757912834374112674687133361791733465511152704481130948617709722769713479881080249543090615125052651219902209773675928084487350911791010505008652624235727878856007265021809615933917395233481887345767186051635890731021338607763629682390595699878528165264463084019847080689026292308060934137572300434956398566004648531141522410356515702730886856005047872993602299700866145297041871679020446433657965302043434486675147211518406654633651536793213404275773401980985969961941050672886833547550624064222099061653347941278935015477325274238571163221881384926458889230071989537692675091619132247721480501935800384730814690612061876233508150941840115938866419049421032383919022383881675090238738348785571037339254977287957037068101679018731599425217100674460544208443809644242036610010911742298383206538051033022221701537395889635909062848069336916030056360270340378236364513083794142035536802980596301736531631470123238418158934726437300260609801227609647284514538361841596471131882461947283312844586984230410728671373761445391867347317817483172420587157873878535863839737094906346055753119871089176597754655129382089016771984913578671434109292089986152088441989148058061849587589715093340356317202582863102664740246064277222564547987966950689702333539653710539267875968428653607498360405469933665302170476587673895388755756029040158745789555088483630474206418113355687052059723175024848877674522645534221369321005750427940524598900522550559268074200096321534628025361839317660447606040937623364229386765477561341762341167229469709537300049520366549554994081684179698500185157916361696228128303131468662771843048210507396536594304130957653332172938871391804595530335182168282409558615744557273155614084752728259205024243085437310892141316988400683439333878738101930558506953553199375049337171508564394139557963302551853915800656787668750258281761618743812569354054440224395749820072867154337915110046260229146966710863082114987129823500811862848630183634888030365565443895734786186484594281872173208730572044974345426440968186915539151623990334556119333374056936520465634091721875266454250834021086802624482902838884147973364841819903253124342150556469280643687997037901624427121498991697798225223591854542585655286198176954864824664092257583703130501886274039379226411429121721578037693139470586626432823196592356350384955022476496118636070055385477176805465290619765027584368453960769551792784302108851549402936772424250094849567350460317190547502833723638235966533768322420056396717622804708911520894444325188664316785948180461316500980587787400744433100973023869828037908613280285802855169809932711208342926525154066044584428148191495342277579992427915267150925904645207407270430320535810210202109754323298787499161372813836769712760362983504420424933434382183965262599493414075207834973231419168637933853229051083612881810238034437342335854924220684771304461207069491907711896951865502737899250113513679656622867459209240710511322447147928980916028579548850935353594033531982114648715002708412064972131315705134235588030967057952458960973583201759011125243930573071835138043011616989039495676524030737473663993041955146825648510049212980471198735576494114558830488417697941378654078509764012537293287483240686776799805789805988471189253857014319906160471324899510517908781514507880379289326902563169744619280493060175455799487142332424735770094373427992420825658931822711880728760939752639783168868233723454841935554839602172514223002121938594572690443638754365177657759534871524868035914022329354602604356154514352420238733145341517484581273555247252737293488492719931497216447150676649091945497093400841623718374176202582907629920535448833634445389206365059384053338111844667124778248018170873248645346732867946199642565723373470990355235268250834182483599384414037510364347706603806068785555969747922387826849465372947561302239802169263208459192741550605330403547845866344132212959438118687368664432343113623804854421060512598435489119419364027011234151556968737920573280500331861347147541351346579912190560807191441938224002760696766747403914984938694225795767643199882467527903836722097842745172771166459566419708824776682711546666434573814611342195674097360189929274346658157446701838942089932820074090198270174715493842989254301294658862268024084267172748889654569347391127911720222007587917828234238899712101064333930593526845420930917031242269237488972747759701599715152864059816303337609558957456432006081332698004715308405765371494387093528904509309813823151054300603742005373855784604740152644716077388486432689755552229341513635957342823061590251081297246367372486449290832407157549611514393222836081058797359538983087018334690812972233198404308501686788152788295608495405223200956151422345314523476633780489795840143974107373289456961928602889841852814099754739721449921823856146920754100144586358814146405684438343346028489595620391561984691583122414236331502794047495056754532069427205325461293908229323137183315319276302376343685936239441601642952280210679652637587820124559055168485216701223400109358055427218617788618399348632783888000841838312005131528505534218911931244386385721464271229004780836209256701153853956082879791721225830946553188129355895790557540998203450056738104809807364119438655070834768487281774211408433222130330954608605547888250939802931812466507388232930942846226928750834432496131236152112870227396082229301513177183202351018300806078670571148752919153236226044837514525248578770171770280315841760748648020892437061230786211390929530850175088232776790984887469870317320449831088637019786413979810959823001549793807483072294377593268159235440674444422424142421428713412321996015482265387031680412413705177031056727808588394704683587851356383229102032829073434913856227881786759008615263213828565567939646038124751561762328729157167946329217868915318298292219491880254495706245688402002940647171698735137224685133990456571907870615581368627214089330983145666622299444927653979465299205442560753359438567733347130362662801358628305675704477258668699539162054477845942694331391733529491474839195174216097715082885698696937938340741357395817041831923225594930629836337409025003921232431038024211400721998165254619877434626556092907357722720869476896186568737784868359342884380234381726610230548244004634739255170027330660668903191500119913318420747737788318519090911957404753653512143930368748158121037510220380477629613397006994442614309443288137817728251700433094940320130852342165574858929141076888358880083526265097792539740728190866734991530731909222197553469088071193452034735945571192577241890112336316064901975637403178327501307549698417376551304523993709771240115961277576213573359433562809015027542866179107493125247660424114328206402635555630039773565032505353509670944073132029315031077114109639739887978553082990232673127195238547754892885303994346212811759615993917909530705657377255524919444755242280684071043990897240620425725520368394971013026658233185619787800004047856030170150879541226251186055937879393295104266511462935219307858470850405929022281336641480737112729307153929011463255917519703259127878453488948114128457124065326720036245501956242308455746040679788762047934974838811850445580442383074674027817977596928364707241768723722881795461649782497011643717293211252260412169209124277552413770902638630444581096383650414566988435259241288638677342855727290213052807493001076186676119046792735492289640105707594360695983794305365630456299869549463911710764349297228828236992333270937286493944657581937022820896306908929901139101415225150614283426534305141208800700790338914208440414676501521392570658076638324342661004208899216619959466720121024388653309059863646390987100633664795026433533224631444225574225200132960894456248209565216083622392229811455309638858441180360654355332315727578843736305473889226272819012954099148355256786602292331148731178794246475350938372235038629237278310556193530076334409881151427465100629347972928620855398292778306989284418145488032656320226895819493731463154849432421679521154534359393261200623695186870532703428636537843122500292528198338830256417309887568993659760538943198929473811266846761906813015623770769598074454275599507957566443024739763344107733925742666877552021796784224964425343418138112922404988723737186934804469894268819653443617242147770688492938133372458703612781802826881366675900544623971333315143829924254470030047345740492012621573004676312305589759051890477162590770394847586922847671301857359679273299190120481471186067567782351349461620551572993125968404065085640503037501723661684508905607621556470375494669379035603467605239938762259462584149078156795911858607759424049833313593527156934373443402251340056531948558724116203177989025157119553274039031152266200618011471779911012780846073078426536888515256207570948795034355784360727795349798261374662204677884014865672511076080244828329062424280700734565295210353913165770028891979995768449553258098422845314269694607809704942489866926768253399730641465608768324756493722888560083247448237357439656580835285807961271036941652002154300120330115392418121723788963560116941894009598802783830758840151414743660943654500802577382009919987231103948657505542992534061677040226257462436201965842513081552530462473493454759390334296389861052527563310759425451265610779765546557134764624452901764238675695956283722118567652913096282392908758541005209794939961289453395879814042112499040397925328330474133009187270861037849885068095318808950807516602553529531771624314127586954944817478920688012620284528249438744791989899693968564543445619711140450450916508171402288229922773499188769420169953668405258215094285819478683313059776973773362344710842502295826202410894968898447931391802468510498259788143777424860482173842325720474463700968972665069742540009856840567186136986149974829444580835464899556512933815447242929265773582442677097334293377335499644723671755531523433863587392276961315571246477030842367044692256265125007104960636981302981687480511562824618817337629537806234776721628908919549174892323855612000643629320725827265657706983693342315970802223576155888043780457359047837199384164656127123653801837466728056585303249178117019170462980908812533392012234977681883547360801174209789232015102322100873954789767692065820071283321589720428822433459883196109683421139439693244653479032288295489992610963746859285926872519544290970531706850027818592808092882447469998849638742527955291493116106832854364540022195189508004431415318435111971259864508927220710920413265136595248731268434651774984835514128917735273073818401506291908330285718714797275860663167750920562860749128884488745303953819105394713846159682195187913474591417683016909787738162693174363387799166154993190877802946292858213784185364314253786346017753470974710879087684144173568983850464211673821273938146407698269393601405979077095406488068320926622146721970449869626829257622719823318932497349194146093134124665675323722959231056309172939541893366925059068128960834530324237036015682795066760104181696057855808005807600668758003048513059738309213125139930050686778375815003193955952730673472931428917798714912506855388440299572492771873528237778648408839267109603003652897883795521255842396359641175374605674261771082457887639713044599363381323791282709018679257624597986388310924059103563379808534496708409512282007047256321461116805868992042803986166205275225303134448273203080313318058516173599904827875782934470792318220297258084568210067909440366316231194601338665616819067035574865404526932983525378978749666170132173320730596623889667649514868233549602844632537693357084613246282585137786654150462087753232429468772626674032647249179466649225747340261986185287276898911375117193984176872786038093149416860354204050264083436519105227353638741454951016668900752632394959212497699816895475313916455293486025978624605495709306756481007343030020679785964124920458234748408878880522963742846155810106937080412781823202608000806723577693183920245350080165133102236750053501781617431011182410525714064376466545258422398807193948872488797525670951952190996039790053829929343045331396468081179767134190265227967410618487526801402968707099416066776949469125681444964632308813080630463785640893946815778375421771232244602236476547869793406251606352654538034361212705293090565974471669771386018168172809692309657878632940785464213166499607749498771254552457169674491170474804119623562044749592074098744601142927817684272286814271737024976344868159586250531707600077052539019135419502884065530761720541031694054951258859001535944979795839101424840788792722329059972658520610056797688270214389731181599656760307369251231835042251933552978676169104999276077459019265368236221351519928694154992597562987748336519625844258849139011225825770334983297804575046252701684729902303371022344957139346856606074581425709274364815656599598126465381549481740512212787294610296484671446457983811244881261195866480116252091724350676324425826210737932434282658278151762233139537752150943050565731283863501506404240891109715568591206310465980764394245499557023015401758554845423788988733979465027861728760861478207458981449465193849122506645386940728976532636003916469186777743151517888963598067833264113628895953197729034515011472813364213023540214162674768234915632693337900099323430331416483823412617029052284426315117338354358310959793617663318531686145959915426973865008551071459031501377411916009092800301271407335624213158580180161199753463831956055124748147668918592633353729101859678454903071299918558810488021946662896185904818728345680601134370588622861725808614104920207552522892697030925049453069983645401800661773961959216796667911353207766742266051936702864314830069682376388863380843156550226158086114427687296794556058120323718219742484914134974863188293959666751047108991953943711262083963440386141999108321656909655668545998781757962784754062563770783459790192178548907202299082075218140750795769893485422433488552792459664176600864518504664479545742980895725305831068370573386761097465172537792254106625806776693025987511222868986048623345985066416898620661614532469715588994119884065378571283150686946633350789389794306252103314151883993993010009282468621911314832342189714762329577097869250644597715909917170615875484392616452358517588954463288742439771796754607240116568470217096201657101493552206353120632107001486094606702218885652066531704885177912688270806423351075334553065496783636190607018207237992455404854099783483449806920193393695192401019216328178760123298179523960511170728214002925628107926054165074901824287725683126222263238443677375837867930618396283600567948592301481970635682782976086444380065910404929974772727670869816824308777363297540711216875929200704321245838575843745773196422491717913016447468408017760878368178316437646863420932814904635866651152127794690092360055565446716225912975344557963235569089684870041202193870938804849958062613867437243960407421317954700155351254990036808748135516631475032681662976493272527805537532047096450343686228929820301936206260194587424966861979707264782124785109475878075258072420262959453897845713171200554966116417778909813584966761721764021961910593497770657478234941199802953855834734256643247942261091218117762177215752944422662334361231930030720207307139524224418301791310200491906028725151523113419536459374797179052451371921523807253372100043953090632653132849358421309842435989347873552982548195394689852001187093119629991479230130454667249573578953603532004654912406669309874756554411714485522895832485870831109251176011275898166546875996058137763745195556017928525180382976028150312707245425609863729020559272408521683868343262426009249416667756167629706158654633055506644638370007144138847339309283773647130462178920770573163708515037518354066282464394049427043394101756768783265173924132126462586298924820714525811961958216747462518508423224983570844268938264921282705443276966443731760370278935972686333773368663275570008246680283025134423592791821038229449990345970801258985035726384922464603530680350486772369361553170863507028832413391040880478417415705836021216105885942492857231060709393688034838419856474069839362310073806526482623657984217057837721774764435431204716417797942021672073219105192442622487214779491826068891891734066986190173488348604922359396979581713564557144727976558242681380780663911297806978257823326195328301361435255785025758266693149407780560199774857449367828332665540362174366011856680313917288610143620428647378857278721941175080573344362304751520077800615180367195279272848419828347439307874917091479382003955876530805878680055171892215347397657893696104769218637388571590281019014976016219490090510041821891127067309882988330248869067767896224246306529516558131794784235646059857161319471961538496304197893793626325252315360663343034843331192709944999316678073252143906717598159995599345973921875918543324392207769660142281740537788740183865611806217901643721383368740456677610032576082822281210023171641986597375494480908003458379603820063152931184227948272702988084874939138726451260362005395736256462725119804339366076535745206147641872675628958506254438354914274897731488511105617946762779631143076543970081909918359764524102224830089066716262764016640261405559616478636199332367638243924549832986009469302275216468965066926795326494159264291645993034443939180467611666866012232609634489325231179085120216604449752747568614978452504493789052309666969681942126370274640056885430315541255032564738005775712804578633934917747700588228648969477332054803956979157305114750194822065169120407024376300488299116497064072313663179929950100873381800127775293272629007140633817172381763035915457522218510103408912334905104286978121517291395751234595799071618448429099352427126326473024297025908897573050811339195808141908805034757622838668523151852018216138593076915186689149333818064109865611234266716397046639159557018995541630658362366764080026946638633844916868801916855691211134746024705599825868546124505190830330823822390355221562678626317168764161862951836395464116805412307153179599218361026525259602003276278064246935789401358517488729711101312823378930948920975182677955163769130413119800367900072204509331213269437320850731226832734048145752591806556218979622700190265062259463132209382573372336537657859187323739140895103363556976320230414113385650559796421718848538437831713991507230277613012028993117521525366221388521179162577099857087978663764740116424003989114912642090988506501912375502952410197100114977167715435757950707878799164071640000106080936616567642238872822520264249422445140616658158191162664098017067978070623236338747642887560460961136058429762799979344270844355648318232397797191555089967736413008910982872580910449626576577097075103963666877928543198254400599784214552077396627947789935955973051826164921362143075108886387936871806162474598278786388885523146128728490996524662429833751959823236209307061485369380717514484055858570417850067306051861465653672746783283481215927154998347248573074355701707078695677289030621593839202876717328027359070821070979357397844331924754341894386649166708472765663824570726767735583202802981251025208090426870020481609751717392037286503068180867250891234883544213545002254304402551288473803530966381261993552139259448339304562630387878666134837876224827254678510531124757516942720885283216497284241264430504167520419304347737067001847161487299418545817457952197448064896099557289952319128786061355275683243419092261835226985871372872953767739809506917685523865396191573909812929370234165093905687686639408556685825971821633748750187868205062042929499838396877697217699035863062347337058568730025970115316664083250640045671989744779160590479699058605482459166125565995344424426370743883252110844316328880216606472572181497781980899687952115459523929760114865337162290363804293911747843121338269889612295065142398965971399541762089779043017281262894451393565986307711283736446318506585956984385817519370536392854617159948011969164427857846131758481939010751377116134110103428307832899276983244348300179036612979126772623790001743295811411249515378978341652191904362997749481345768605213448499518647344295470198043553916112828175966313438052049568030149999769931507339071876758005991828394322409071463803719046004019827520338562319038572644540657764895717328460798074444082114061556799686878975294445046157553099344394601064379142636147339700984156339950749421268019579821832694389862518780227316755381144246341490544812155634941872089744351643849566119892799341597211149729049920087894534989673915124128478757099804651086787347047468158558357843510047205304887733576551190090314482761449990056707023215279681471935580081626459848244321033320972654148367029529455710398529597031598474829127263848126014775026306041999974536543994132982997630283844223918879935931011452988077075284402056694306962104316965913026831886386199921514615783118038653773900524998455683400805340004764160534195024438188584556404856060108181556694869790368370597550605025565802371658837336269857435893147573838198114560493823405683899399083486294960670551699892407950523412298959291640810634953168580328865386559370759235387465965679416944347940366397845944162344196301234308642090950018209395212174355127605372297187706083572909445020253425556872257162688737156002805192685263967349249394330611949444777728196946897712038321431037416820911904313741842584857473960712174720386767056203862569486674969813695876529409136507725118497702225301888994213572380738200902447178589625956843773744857939459293513208234030938473933610953969767748930259999885157183915077128358592358123875630886419306085163337292439484019491676047113917075699402320014367711170592844909862810417599990595621429580683227419902460967940538888764975720244454086951815687465762873130541828110205314700869711586529680100519590339526525633215879098928560958368730203648358048359926782183700851226128587547896791140430617451629732476503833030722449561350905876840604007199348274639231771499558474869786867661211064385791499660853141094057848203371420741907907755635151454042158709979274503349595241451441451283163556170383992206258600997867995820323585247771220599149505098468291808837751455538973027424921958435797769666683254131841366484152274805631162547840674335500776379910882581581675911865423887260186360372450427332349458879689585828532455887654516185480639124504339579319556281110950328652367544470000417491642076136274981903642800102910663390614442523198064558269281210189014237545638907790585056723801896190050851746744730483364792254252888023122812640206976442243079712197334495853459797375144510446654832681699839727727536852321808064905258253832914069380559565154467781696104195220203406614884176129463981199926590599340412285342730107463100909126485767003606734289342271068574893888592095105048149900486429205569405025550051736660300052967425731528365413265657954154226242019505789926379305643037283455303203373898206720170402628227282869754792274479997813807187722795850011275935686223850473753476195748803387035723460542749911030176166998160491076893018154366526005848403081404661735588494719734070178309114298738053646294996358100515127954808075991162435084222530585943876333241797706780138145607289230939843535571823640970334138776726305863618165193112675155827997335190541283206095097910388580087984993938959054566247970226322034883005443349915599249179158094249823788162905208528487843892219531223700907965961480953500756027066184445961249954855999431000061871149184181121258427086739587931162445878284526299755855229541877960609450694630705741496825221374654229423435449055767770617038545471096841281868949698392349576226346962096973969189686492730178800263793802760814233681376235736116927205550751167512714156428365118264199938350842992923351870361621249766784942196809274800239462733823915522927308905220579416400268880634759293332924486401134076795782588424279377087377814218391210863810473460963428077194531423222205298176962719625608690757120782189257818971581222903414583347285728527778411751697416004346107211944038575305685107517191131580495561584858475461534071428054151900131263384986727350482832323103829281458308447185119388000425050733775298547742347569749193599517439247208054985990656903182679221833386212631325530985251065417488398171939303500380334100565238888571107761132435735812508138112522625592327833963463482706165066282716395668187696299976395005309110193618438321039104964830861536792043372140080690272786711523546283646986396444791016470160289372793640191758163514228020639406391695389691970659896363404721876805109730880421065645971100676940010747876018851823350675564395054533860636523758174320990810849314016979445718312743974933110756416002455319981198078492364332580865820345935929878367754983054591809548285252055504528253313408529550940846541836869524532143581946337271361135228217075731392571602445445895021940176700386411921204087511998854440227408822395943724097254831323853568320953778468821497627568377419412566585828326514136719542769664421386072590695122110105926021611558163176989365500949480811193449288662671048331422839793088044657547220631882084777334946420862973295471196637795207092259671721823715815090845363913950123675112386506688153011618224530036694429846387455206092647204260276310012021118008056777161851860474591985912092892074674001062879481733935664608334220595519905327826365090133053497515925172952164548537504544614175037313052835016446395597053942856258865770657728917335715363191587498953690864674628298297937070198442587068241753709391608070104201287018164060211122372143538408876916846786405831545513815505800673600586996125385475027421401143428630344925970475437373476546461124148510654368130884761361483665310550901007653244569178088720165299990143107749133229316591258860878816464659516869144116469367900892068591190155462936735952322959997565043832136608974361954484032520117882479088933881701977787199372741990139087873985711288857666041238177968443467709474386382531928798920360083928512271053862775151516509379257019609395851309099584012913354333629303471440038687299675545444586806755215633972257178090572779725305726909663807135373684473284729411924671879867080879176814215603548441149417621900209051307915756187099882862647281311383883783519809609750899800952564706576059961176595270177452460550575820391175357803765472141296267432288841465198670834613071075229542997856257055311066007029770845395545515861037829773777442063026627249229107792583552603996467871014971322902651693116515670230234834711547158296706440336251183639206156175016041660720616698077477038298110849899175109618764386648675025493842137289068653920124646397223543905736704780839064645601748811837312096692381870979393428433081240163945247222863317140067567255859670770881233199414087783494303208899666081473474687150957121083917166214636865095435920093982120749662047463118645183036097538369237205663116800108578872065978588924819870542315709112826077038703764402358709205845036224431968509920440676804840922842959358093214674074687512191356018585109150660058678638475980855122764899421157376260405222462614662796400619615033417937606419294622755423297888644152658256499893178703455791926066995653467317300632899296762164114157349345161747434890415875306551103919170648077111076295943957026038113794218194486810758078752881732022339839460391516714033865899976667479584174694805983829206360363778239303702052982156622635993305494034343519251175892408464400353406202071681334932745893222984833658326145577625509640264601221134741408715670830485344742124759606541057137664515932163584228699967490475395528982641653841384962807103484169048968617845969283439328222628883966886251645320738517296088942972438226194497698381458668972441384819416186899485444168243245529277661812611972795784458422866400904797122253144768172751146022607671009056539291092674816800397759214130469324328111902059751529312033113879224002771910712529049668084260800124671633708108157867252746372312155851588046092013597393673795081701866021410746233169976453964827739982554750346540145877251213959536622573043318079990031948547221406830057682096464557965350007647645496195551674948440711880381083972321841852312296896897804946429114508906179490482691645572743090499731858392986351456314056197301466503290953353720483914158360905030056856381268928165348539618269277864899025325816944245142818906970057787880680694032305172568136336624414122071728271292156363878953324798350399879950585278806143893831600321791846833309748801581792461359848325780066522642322912082593079919872566620780925114093434564808736991682964376903103083641126114452555237534669428189999878876263077790379155630943653004830503099596298207873656099451297747367337551217157584436166878906879453627898556476008966300140446308812961032436733537095821930685759982086104352405042186841906594924256808958258446162596153293188493513830623011918522634627175587849419828325635748777359068661035252202457617285801305335596080066148600794851033364451712648660683680003276951693182413052927087569639730634378657338573270812951007423740906863630256913255590615129684013758425911912714908366440209165404265047062072605761124833947402877940230326482949355761957389090415403461253109017076208101655312427797093174336803657616895271126857412481933642542515202460014827764265931719528518814009544382007349605971238424654517877818087787068773920564754419315521325298469976644122816683299488679644860419259383451074384955822862194805908039431876050890898681469821065338712668060094806514274391984353344538903223952350579010244037025702551988158992378629852751371801187016804261925993792909996768580525143028613374130720155970278321029905443782511837058344129813738246883305164228794433602927017374358592629150161421981969850196255561555138653644086565892807942215012370472086804815573996593334067752914585267551911559583018444336385510567252536803877283985702769554796735145243915175599543760341952703064097112130178932856404896477799047019670691242362094894350633548894518623883144623526739484181827499338227355864005243714645318915447244819699904814668250461291807966630969583316167917794397834685777100400139950240894541810916994624819441150847191813215798413020858817499168180572464512973606678177339452076487506879505663681379303968999201747700937474635935902864392292989022585657971254342351110575998738250546235368807809084669011504741018734581883577974489004278652909968793450904097331399228789306194158378602100653166540129588243927965708216905510463843387889975563209544552994771090039662580682140054900744163264224778365851849750411131645053629497082031881940438566552812848367804512533004123914539121865728286181514785606483460968158024391794572817795740499609847223831347596312768862617017634946975848424548768746302126478399404178221104068829094797557421683414326554771806862584041152575734832498618221544102464916781452331723110484182469378369396064818651314727704964242648814239213715245276497359706967397886033081952091571595960019805840195997984335771631334560597682805753076199637721168270307142645190013705035033807266676632866814939736604085986961071191857752858855901872772746495119596440074140594671204233169709088194890089298037962208460513768138186719153708098161228378380223967028356471399069538539983989293836566868835415230852435072114575733355003833269522335107605371933906970313837509653498674680452042300785683038312462440135214480241108209440464684937615192968835680398515585990564189066039888666768729488506437505372118900769774966058282448522253291613258009736845244206255389568902962576414192886430590915097473847849743772001352249201461973052878554945205156218083853369441185347670171056879817155020385361266630591001419337619188523351034964721934159733787211346297327498609447820859778971800682952547787262612529677739075826011779098439260375686088882279163254908686456375413701653459073440003404073791317557892106909248490797139077014063519036855623041409361375806262253571743643626588077254509796241087795850729926518731840390282019240035765063669678047299441983778012212406465507101670812339193019033646405586067207368631641706416743300435055243366311246589044730278635308954496859113167231841836429843177445328598708823884954578392033516055653370083171747654566675851550906231329524837761910089697831839877927166940249295538241012395640459254336507383777934941727557086530288674767319059375590866387640014662692341923206715786642803235116905255354637299945124475053136883734000957347770896560044749447175038028011322185411547089253931803777486570865404093778298553348750831815172677363583653467898436506855784384278061409914999453469687741146274157224496043120463719634642131372857496341794917650800683538603216419325985093558522078097312810321000016358291149433649323892076843394187542450511635032937322320971008466041180144458759335192976388906727047856134950985718198774359578677662705074368904881146385546545262516481265895217807834203248079268030984586302180591461969493824631215944020410824086491678039301095001317184527708947121695799216027712423115336793066000512940125870673869442010322954578203431673326296228192713542777928388821752052263945614404923132733440127799332065811035314120561183188150484809626452921176979134042050972506475468927355017836369159958271508031326462071784422664648580735928561077966592419698873708654949421237886929122809929518975871645749408440474824151983175713576431610340439935607826562097259492866798930546458109277784868739769954545903233842638423163441898270118322547263583392618863525715134992399265925821141550613282168632880492095417851099890362333864673067054287130285805481550504065846395156618371838376022046682581122491047818344340044596499752503378619668948169121816475627773998851327490593483432866170080276905146465883124821082874990022869216349637740343278007342309890165195340417126789700644436879888767260558705900773542118651656755208412409142233965096531054047832565827987532893276611426384084000156369693788653328820537926235648286381084687850568126910815969334490790516762897561821000012357316081290322762455044116782622690523316537338611590057541329945860843146400177917957894554748289849620221014774016144363225597205183064573126106087530357419740811679190287792890740136604490293225199912384890358011818381220855821165625145195149192022456856339595775307037145364930431638246605904825767694582030732239087316307172402622994649696353943892477987755713701051930116822865143449663811896313978346578367305723890987365486057720071427912171472372796061777791314272647322872069676185197250794000241793955308258732020607498932159428343775094268556936221627122334736697795355440817706975855741271466667784645247013997635280390015952654972343938545824444707890357761777469879252097727173692313049931017431553075800767812706088477225264097148341527316182850249245814890361508683821468943303665832011033758242836582621694751974889882158949085327520479853206374916610812912547534331812891242704934089812668406708345304059744124914547590614959544273153160835706847925431990381388254358421198542184381304621587927869437835859334506877203996759285879468265589801619084215157546793825842663792741487554914841274085873618857883665374014834411583864188715862739868520262945898865589626350352638316053369995308580197452526114168162937280324113056125280419854885906607346459432893183726923681801695237173473553372340443536394254477416053050078500700173143615250533216372307148138552511316667659634195738192978516188546642153834687354173437533828294943010873701814856915169251917227975238842939080121987237055824103034338627502141361545807649134367271020069622211894683178407900338922898175061535723660664686917584729479545793243354099448350720931800252841955274798592096584085945581398511362528120053230960451745775048208708910627291231410732749309717610932337199512669407825549210787338114411838359604029619747815462869346971403375437709122583316420861713222322287278719672119220820340084545275140887546197077853124332970791289517968826896458443898337438731404667981332113858847292768728620933840142079296568265575180879034058856937965756476493193054500315878179924478447016334280183398015360637417502732555781105873781592600889153024894667024398084868705160562282971786817893467537498536530494534371541298665446864622810336760548309615185067096579148120042724261352233089627794029095349512826945118447041813624080856838744740919801490176875186289004528305394810495793266197060895971996613588404643597014072529277356665498905966655530613332849429755615181104049036271540673695862492921648433327832538595587246836838646908236996840491094320489312635593025366553434329379987457952789491844097710231189228289095882968526918655932347732429708239812605646992988072609979634807041764502843058243599619520230003018869978675269364982304855659103133650114146137970267217370944277903969217205619471310352275875196450603192618487222786165874216935020305928908034319867664004976082455303644860200306400699852704065189872456631117169080549094703669322130148352664740554819717080838095907150203463685938083045240872898708873586011146773041726645437567932035622699142748797690326075354466746949710517717761961813646574876226127415532455560160512733518537964671844936779374488497574482079998860773913322245429494722962710021167411553744495560545673254057877043593337335260751621816961422071503565419748249146904621747032127941470437930817214184274134077256288504037008008137439320405958936728462685631377464409537832254721413993659795260748320938032045043635673144469767240233690177336170898172956975654920412790245733736231669423760595366555541951413701316110294344029559633302416534748445936854437405799660638477419770520477052013035865613514616685485930144285313516065151348242354202808305776106189865305909502900957217356064497065250370205912186652163741790966858946877290290210293016507429957487644152233865246266667197729283511141490338204851498244485471176632821920121276236395994383544628343584958077210726244797481579093113856931182521780616469731636346863729835448963202562561872050924207785358369659881156849445292727440843352726140911480723420558295068263098759290676902344544254141077566942423039037764703469500542752541615760503080708002469924949636323866044224807842752930039623500354645598120845113680880401658313161872002669729299108247994350992902783840873609272704193700606645699809382198751263833456602192192496705343509984634548167049142183352533174655198826433795933025106290143848438882166558407179395413844589645497844601518239792894057256370924153456326474882596294466703249266185049204686232656134203326615454218611198597455570876936537278381289144777365638201211831989433459702310529764921275314725521090296193978237810782096140687043930046214776656263319816258849176134053755217355513279633575758420440993312638109661383048201043301371007237857212765563677684244237219637272761536794740928572383979954242060600225441792818119001353351028929419845261703403538025240041955681328509963544283432406261282533893676460597970904847503453326263626104104978443401413829249892508613007198526168977682647437429545490094970020306669741158297374916415362363765005241977413270768619500524251023138464855328537984734009601855702672658125745725979104377513161074950118751249294236923027349484554800129815790912514097919694087914713637527289199753585973104636190220840219037347613453844473799670757647360620829136196668939257678577864753445881566551809555968743072407637598642044602173694469581166334214992097149423393145563335257042544367348837913172549455430736336529389164535436063187562940790094705176206648226524861789692916220459136025846254608549524899788452332231197671992542330810630356722109134917985855892608879754705014045229258661794354282079196285992131200367454283630840644149181671453408557846421697489391631678535705136596671805774944192927766442230258904640598762324310955944639461328433606898432198907501120191119594482715225416017246370393593897792959329735145197112041679834161305188653404419943897572587560582135279229888692634311942197917256636280373031198456121247682170783294995500793445904069864324471900326694788756996548148564327265472071659241527496321671850093450262039039933665628268291203742808206190774621084347514963427397379513012485887930557927236344228679137651109789658583929835056576369280280205956317476568849600072660658536061131599119747965375267987975793356122216042896197721825968036711661296822632867061285205462502644018563608779843267161341936654579440065133661172894217804496763345360112681286508936645818196326886580402615485975347119379887121748106431735656789471663600765294086750236259366534377343808912480935822146748144176907897138946590555085140098655302661357428859141505798766221692577174317398167360747483452640293442883654671482922058328260458705481610439345551811858199293555862463676583789968815261818827458857206810901779166757105580781715506726815290452328969892946737586797292979843433301403784591285755649787849556035313463589967408505001699974223719112801563779409122424621748828509448518030122402958164482758489890337613231434391222103161100900990149474165129748472195449542535952991026295579729049669169677754051319319675444901182551484149483785830192151303967181261984740779820546621361909473714006303893506493050084991811155727500814453005445063869143835195507815798029979784305055783749623608688816733504030294458745640202610271469502432092906132796213313635630913130408867744978476334839794459088081745496755887330815418839157035602076973582565407456579450247619016655468052569168909053625740749656548718870452679659391594374223303134384601849471032084229382093843575392345143576652783530860989321243743033657183439159854061264558582924139827921761420040524369469662130431245653304776417440136938711485612927086224458139702912177391971702635892734492391756461588154567168956483510075540544216834229082150874362368937375063966894717489611959532082175540451974657915147381324395347278241226130821567493159069549606558077856032849176125682007616655022060004479314627059177262694981679616139950156166568063291802978780553969232509907576529717995424227256547378442255093584351180792971861007707943083210472205483947104104811584927224031318155710685126982823912673119395063178502522675458483233982646668787464418665048321749228049057763764393680370027023451366261119639134893444622386109721364845983905742350169875881611046370895849248906816119088677012244235672901387423159725574056268105907271719916485899269907662351949490071834539121392025652257109891155213099584107147033186442076542801944229906411829324595535863686924755007567498627213058822130520588757994338484049271343325897174476872856139650098767583888291688789227518993606405258827518158490009005003952375765495179857339379758491166081094115574821941301966454824696735140053610969833479755582639682759791283622438768891810085676276655825088153110584212597325780756576583509664649889656154788328339306800488195512227254064099973109780540149481117324960061380124697834605144496547145957569114137975015198352674682146642644726941910954730783990364233804986935753578201240155481763311206504736026877919804767780383931058133434318983472149771118274905510469977498564926193107559151774842304639927797766420401271199554279466070402071752891392283966322182391820230648298346369461513130792780916369832708519877362924258858234559178622512524610791737386247526357510028528814249965364446949390469424728189639826057557732390379522751036399919212713131656507084783627961444209595412741593540360126757935514295122972653035407304085548003635535986038667287458270145366937084785404418598435572951977909249303111212768244185116813329373697393628987399490750490524955592113998401966813881214334323163432694351743056447912920657296785630066306666036355395975667504499545987768221223189191657885976640291817082284321429012536442385318484473825743792021390828681940947706789677288545169694223475678145510414392347910987207861365771110953347375802753802307119166384963481533040285704675161257901425162471702236032029657413994920971373825108548238219102027551203598087494490985766148305304511262417577842776579623035712100644309761221438602097437666565985439697625610436271837098813121007272845975745856296201716109401389319864502030069590882350364639679582908245561802019444249575924684202640689847868346459620389179295182540330561911351955828399909854171631283673795908645911692519622117297969457926096467567853082640996943128579498653653544866599931685537746425988181772626996047336514429524695930241207373906941507765880915334491761384227541390154586475006409106821227930083518974384309280906967465164628648969853097930165708408471015458100179658247377572616342421794682775688725600830506362329864207496253869271260173672887581663331647062237670804511733300181598722861435319632685676288089571849342165496261003337906147583676584030685156702486048647002397317462095484699970633948024810531682876632780354410734067586981620865797921541646900541630827391982059133360379204993439886259480063268400547944842631653010721841887428646617513852154320750285248301205424111217669846796395517247465069371476397678699062875011851669438449981715779388271998360584178200384005719599202171974253928618023626930167780672487999121946237017852040361346697624420258082600155128163140262407686206217938361651764512622334523448968463022913781860666416781494352749656812027506562854166800117533094471290349614211805851188682995474534314995510484876435804531535677564804468602553190541432673036943309738440766650639366759711749313833841753348275420533602642286760810630015227706096719344306582623776082922405633266790781473154963106850738674200090051041620745853994811748705972823216403616342205476417131601220262018040016824424393181149569116510893125906953072067290123404411151604758324843000666640105691136747906215359110561304085924270014697931492740634976140262508727222584594686188743551614229009666324974640905433202216480986715725024913168540523995681054788871611720236579355359474892005650198831636698195369696781609650066872784356829856665430650661685609960707966602526024852640053417769740910432074459921377878252029427205142246201702599348298774546137324916646282457080935050961574615761577080737674167024825813572110441430786077933243681613174431153182408972801847281338560996653970523681707971762641926168652756639747847938367171860290382134693502815300162653846633657977141609945965143438215478942327893880054082302290837173671292097152982954657522274083206582342052091826412715032450986003879140859305214746277264016926396696345957110551842815240227932009613316840300978570938212243748522255019965453469996232715718691954093026043726117751337159352455072945235673980195644196965010629332342403429125250932297382619393375813680340911176197183319842976450450701348128268065801612465781064223145549617834569548584714644133669255113455302579472468275090463970552711931518396927104040116785651261541578631525530416205673095730664042054973003012451862646066940392098206361407280316200101426499277246419821508710350691816817205349457071678755007874354422180504211859367741802897319805599505726094311772830805069020612876601821499403372210410586786085000660080537241984411244131127934184735171416256014206071410192865895720007249927426912429678861792322879010845076954139045739881863426774712397135135967368248741696556179387329580237194660385357990632180388067446228544602331569192725210873666614820741543546153396235243180136949220605887845570293042790892023243107937064465094811474086384151485202715256523242279285079313205946890893893970194014352745326887885255158344938701841683316853815240113294507930233359226556156714456800664387207922788255792146153796219498871922623288393226040228324644221377840668592278740908446859603351013233522968314243838584463095766002852471940389327820512797928724908617793777975539580568466191017892936593555333006992309327930938146105808081004956749528479413056222345220575966021518082361986079142287881577939325133429618447654947680197391710670578200051100611882866719692243003444516137331619968929841259488304562354200180918682119824323496452306793816343002964638432294499412395630458176540633063012694045556269558864509071524808819922067272129047967830283235352659998351095211839993749339111660030809293139075181243947602888313588782115728529824041663647533412819787262556022359945759314010213736303188051308432830409771969891256926283186195444299714289778095135400826016674940857422699889306956771848832388309298181477504420477219188249008097804991621160424753607239640853746269923791637499221141866549595746724685996919448682541883998501947470870496583293206853234838323048345328363365026279773421211387660806703870384118260718832252586326508815991904072136183354981245474569816108819151960146828741554394977492852606479292844536683857275467477959437559767343009187336764663327918657876487876698985659166271442331073785850992381284303871518384040488753026426646243075813274994786705803830202317233505687995976108789261154120597865151921719365367292873034834411871052847949127311682102797557741610100278730637992416679148542746583029347636789933888314790002624508274405102546090880213575917521834297937346955485109314169898172068302307458342890127798330445637151341617397203053123960130031631892513960454036523730112684614156422674231049980405411874896032545209400059864887211382035266277472048817356857962041008521239472113920846019570734813688954059083208022146026363576225751415058447481570520268357860032029634588442494935184562858179023546441686621936830909045099734550036589851095601189198470204913363055053650117268193975573240320963717977348340628014308700043084739428542664462201660010851941837159184384222690493070030280014206132259909820417688924929284386800111592232222826392678160964489284261423633254945716945243776798157435462662246853450491672667229749736306724944891787073559990987538574670804580692335282953529480232279414424178795052589230362462138655727386538921757968110092461491398186766644197216066926547247705926602999393484491830409393742531286881533747634895208600854675790100390639232017666169630778635506635269924641991406160285747267138357155089842815027193363898733227472874188484016581027327601561646839920222521645406057578784085219243287001791499109168788446941954214909254797356505982540856978448188325982840915881860723300981744822671476151704338732037617536670119650328770039991229845899927922638089057398730447284406735416210302161916758766723931531602312349311001682403319022064557513535069605037028055110858317000208665404318032149786414938164922910145202636531249161890505566372154623440312049180237353737448222624729400845718841223310365833197804260919212934768336470841893779427508623635452582735495634819651430570030131837729626075745104167011669327429397745058043142697028110227285607041549678546727429143911879346406211767819777670663535810953728954328107799776407257658720496011155234233773917931041686226032292385708398126647288779338856791543695411332521910241913578421915827190032715610526736781556073481825097683168422469710153540585209681753443476489926401171233193733666892712146292402522509221449962281287094730411234124231438634390911165503853882467326108042498735895198379853075972975349512876829496634763137742153792435858177773889032022483375416649629782135089314912607380032596954148354013512454178830705336055142115921184455388516336009057930743623725930697954536191030120398635191277732158395830766207948516221094205548236317155495871502689107815815685470771873334149296926840022581599755100452239232364115089882483741029878163828911511036466762585828585864932101524769851011862409841667883356096848842309714563332880104063133722893278593304661278051461070231062575271107960515820700064443225377357281713879755679544208602850675906705286719407958596395721673891009326132795492791860889742983975308287979934719189344056671747743915219749445605596721516933659790883564659490934571477924430944304250188724562772245964622884345648407551339000843167482211961197654361193157038337302189281587660413289115241617671390525496674454778645126907332696932348479412106151273635184711565650339873968885769593863993550180517512111774614282792411686333805891464229608919721654267347285884837183444882358551984660750049411461981652167297361459363224881529698758803095227325390246200467867537003700323951137513541206533854432104256416783414725444007304648682405291234169743612909899934060510075232838202722895897473734752016917880388894079849533502984209405865991103500500214158380022436493004808588467964981617821372236557125425391484531367867740083370313904695628805098622958504115838442719970203456398090865004525386313768427626259275923211353777115514059140882460936168934304522066268995141425780285606627594720802184728326385339953779896671590246437012194338077657402603282922502363122223833941818475171953838561645121855299991299618265516345782044717168285481600967804875184179972714986741820629572072520134601937980527427830147258832392693815047788540532302245657722775717519442016512404037929464342474052116630391785939668453097515480208299636163941306953941817397679052388444448370650293685384099249577926531245926145793096461181620961157764371149617267419497853648460216534968748876714280718573694163598999699576946998344910690696985715368961447283554693574397646360029980221739489487737850597975255307127601648182656547939781584500866877345668287102761236461011257078635889353959184195582909474249480821341263331235563691458118811445361404978575634334031990561267947236066089602656540461676636327252750204094383460313287290223017889814604195152348078881444568693959192378644486227233075457571614379917632920125375855870579244494132495921923691267928452523889212127698804873011609713867141170526838612934408321031992779136343560360215820787256689429698712739594088203722054810240887663049270993226406576121226309742081590921858211062239225790606761414293075889339315954334274455169813509707873319525577040018741871206591979440021867296685985313749355254885902758198379809034088862481409209915088002410169674608889146510899575312954073522245195531288494911910860477420551416641495130299425736942188070537349865586136401684776271695681872378492724512627287443150655797497856827667910930860782620336385892909431402425219253121933460581531247294621235103548047860779066949884506157524885772846244873146314262941555224518839596783514473826539550378266087134708817274830831310964226124792552145954271877686088153865556072623231333007451044783197524245149678026969440129127802432606863998634209974202904708895226074172155106563286758189903981302836975304035995580888021136389824134887648509090114330603778901204765204371394468797361733722930128246299255316215121297511879800413468025733495124139170932379598514420100025912008775706111025491118080947003767745215242799661672637610573224118111346954304897599793272648149772701909571414902790052356880042877340294536377221719426987782302444195008513079127412585192554776205937387849224002687471235692138250974286820340403576446822589172272549050995704463316101356445591642091844998595936408914450923973662454561035848956803184563738783976682944323387235782055090739965909608976923785314237690683332764047817521315353977301104600079199485305453285901952123364811345757228345064939215981578014727732249128221495374654257282153973389219216813706212770781021892167838841531877559951606177170350493326724523841760632826867118259779520183901971263660477315742898431981525177795113363819215020342570858998340632705072655966331319855086246838293479013347616748611482777140125214880173134401499914008803917694753954187115610626664061796555343511790288255864469784854194515654279428610049829101702137953320573219140487224745666596391891204039387883026174478507867032143226099872585977970261135209526961989597480278331560042112411609836956992397881654488126921008116311175128587755221167539364817618987457706365575081586998748456192940531771599819012191598754752688252393392076737277589854186231558980774364534111539613315722868798289794248313032608756310209764836048653569848684590748834391882659903682875708811672214131322309644904908237221471456536905172685117507070146268906420389514632295278581147235143455271366350154970715346203782774061149448201451294534838214302954742930705004576865801750861314590695456502160989274565617921234323265056865301731454965103490868485173959254110625646747790044282180529570831332045315948053401087618741484933573321781404971711118632728465815782021091698118372422207963993044334684308054804117280943510435542058716137635763758337804666182849319287318582942600328619600304905342753592268392900497643107684654179107558094944455501921713826196530538538700032414639073953702722535548915056758701671673180811480784325905199206114566962031308259571506491278209119597426745022749796903690073678495063368800001911675407525892292367756039952219606544244477759295130122190326943256759441703985131011160155724690470399677554568386253475764323770242275365837691015372067746804633288455009738666070166753160486110531644769428433183820897998141340566452125888279647885616309995970537212889194816163731666357038746615368494553049853517081807908940062917074269305323943218685995093509252435688024228511585046740155466774896521819334452666839430302337739544398628720408712490751399694152483362919739806190359828271967429914184959274670137618329698632059165731411286914743487256515441952696314020389546006346188453610341959335495232510907389932839326057044313783931461600407504205056518930791465111820895990072542055646081579476035342868025717892899932660250197304615483826394664251811120901250244209404314719558473134692993525739909861523026525563698880429012692469282205031703590593626501203235386646255994797160352495629736073903115156037616058305372474330872272274282896761756311444096413725608216003740741742940559314342683041946914881041347553642652645708201213332716005703439368385847007616107288760234593332482563113477574632423702613846518075369506422279649995439778964120036027344625272170744456247288747899242011026264769665100215807096278908278592502210662742017931462149682773278123307309018978009999661034704681016255546940967700289288911173631498057301822868498263643053445677757362433984308614001690957343816543020103843233152083062731072880497641803851024217397664053012963824748088061970373889647144272287867229692809128156398669418025482142280422423986452513793658884580640661457914269666084568899126955017794540288001898869418171217917449109126160602876819172411027969161338165895757699362824825723616858615785270070291066267752234656549569312433733481389554694644548402642171044038462710956902117055366982115703696412591463217918702964699954069351136098684633047243165524967908867111904789785183773807980500088921161619174419824206387012566509098187888261002257273596868426023481431130134036761459386347747458992096886214956682506221944615630248119501673120686798181766596285712717594544060324065761716568621010192441704397654845018729717240417722532892534685814183014553251393824421824045904460378441424763051770408553953681844299586640206056939003164796294026698413352209671909401639150192121586839651778992511955203708604159722106540987880045480161591558754727583112433793888957688704592923678281628329460600411116083298634645027687742324058852364105961553590253925539473039476053579093767215710328490413341081996561766199751842163701172344881428417608916530229475416421595296286802102090302466583075709169692166690230299629217774963762415854438711197574296920598281470194609206878900664410524983573482973122345052675235807024574014041726635234300925375038894863410754130733110247127923617589020329402673028382741214787702728584639990895145456835222048763655634583553759406682714602573641044900761504027288950567225568274642084405996752062675176351650191414273366617050775558875264335402754233174121288672553674975490923845801712643666699029445357924725678330716128968263674472815971891249749889258705630925752351205994623006278700960904653933202082338948655218709740912576370792429191010610224984325635296269139315445906539211521889465214574049148057590125780020318632875868376621178762394828028923545512687416301746768337851643287909030826896608293698826758981585138030777669802835821388337341525144899957027862664928328039787090206891941825716039643053854887227121553586726504093398045270543397833073075312779737446844363032199842926240428095533758775306266803567233465206707699054007480111359320703990592656532955465207283179252833241917765794440940871928882515454637653205172797896669595727992664786157599150427832120655386994335684295643623287336404443388289386785715087798273280613024324397932756296844037735673813839678704708815816683756152687619111573063121925905896196379570600015483145196684775101570660169930643401524778959753578175273518379927878893591094166474358454921110756793574642324115872008810710494835409682127366655972223243034027488073821777651902030719322235394878178642754346975694359084268237135318233828275827729595208398505785210960632452082234052235456854712385856263406191581956600465659503253779316340664344949289379168044625675261629569612309258506284027748879677354823994265457671290371651305527971511073351549535161041673720268187304522795778441680541155433117551318368757820717333112423496576012961724722994534827667105606682290959509026236922104390264929692598625283358510393249329234872244126135514923663098110078496136229616045186147670653434514507145341535824473464104940835992384143357432072850661252148320267758674682611634734415717580476280212313796575262030354893601076490851226012095605273018640236787690224001981663619597346423133127801802856940298003279483031567596840014712927922973570442285732557214974569992492793864059864778052146304408626199824206586722309823310013275194914142141628671239076942400254833188394287051977798569649364173658614842754095327790452134029925842143265006980153972411130276218958594693320997092702371205355322748810032936814736315597287243547590955689234928562369949558832306270244251114289978294723484198242765698809314328665558260678073149158702427844798342723647906610047642467833242010950259751398779587116985859381667149317453167175886438095608868596177560794854965423134622190950141634365169703452004513323040541272946344511871481440429296660085505395202016269481255811746192178795605991181938207783110946032764835871888744105954238903498745071175959298273793294063424472493656000208787174142184057766986664624221884162466407983412814317016198182922170291481323001295064553870652546729297566233285940647361803954325958473544758306153325390132372205556830066070626805955509456258122973503054126236863166585661040373041203097526769195834405289285225912357344800899020548838504536310570336159323653173589770238151217792691597767640999580002003814633951023288435127287325134271890341684409992847165258890770590038237069184636656297741750451205061699823086537648319064224471645780657695548881198834092166902135997950892464568217184220975134618751321640635528913888187382263013234350237799879973211464997934378818685211124164175560293749448608006475699980708748277047125993935526219443074274818626182956845831510450384322880388309888594449732390239843565145845365245728423909519044718210159924864093454838817571571644160844231162280561794691547637799803578263254341642402739665583143554829206712464630225516953161598585648783410629363828295734723245331515830607261753515801150658149881735540361410841327944388868371308713801994809009930654921873067390552105585420130130704118273949759441682063395941179260600789333108456787652482899102867826437779175067675031347184176273569039008139218378351376672331156995785058410822431864786619104087122837759194644206673250633465776240009566176373052945467366469805790454740400959754186729985086083581762254559172745447508503300299932171665516496569316883639518020293806203566639252935744987583797366473745844661035945713796565635435577021038113851286991202480426879538067644116754343396575159527061667426376960519390993843418766006383947578924614293123565902804179777374030662055124896992508545849000736587255561367837480627309053979592711182998667235972932470936788339313815768374347958205607993241031462007221581619818991433370815292479932978953142536307173916169020761892244319761506612867583597905242005007937809979179822752720254267325264308337940999368597845499533617534387052319770431837231516552688745374654849239246534063528550033197043376933673898168446182386695211297799790001812524586461149498729962824190391568754971036991274756065537603714575029071002712978641949462287330221916785576047415341891235390487732152167539102483010138437126043438638743556569735722149546391514648334656387381734280950782102398475192934727372172939263274006601282811275637463786605095546804371747834318413708079386460161287404325412611181610145198027710689799549694562720831077390746316168854626978130882006833524180088923192294143285061358435586792070248057386129210786716332373238232080423202249385264314222222563430818936977749710496019592024914104796944213503473521274861512279888885132899108473185119873142061370980545436168495222931692573979202186669481718751130419088995940530309391008525872299764953471244748195986035835330370383324282594104864578439045157082328198034139978470072350409455049459437402839101937186533606520912619817422999913492266192348861900881903003893424774309670429134735365287307361830601857931216532127953566614093172916607843462167963552496387793944037676403901411236292962068222389509423458421018385912939116665584927683921995562700091200824360277203450903585467768873680201732354921568184856821627585629560203117443282796608597187778111016048147835059358620561602897867790729528035288200367569613155218830756617857602660192017866321338104458582043897510220905093373435060651874593399227826193262972371283088680940364828678135002564626315397537040374127908917074299885536075137800577709353739237131683416044915340696270504141317887316557070375298825805789976295455713931542892667295920765363526657011869937121230087548636171328716435731659805025605306549059113392539605098066417844972631775369672713227688060286533116378937646502732239025598632835151883578687099849311575602143353555477048080912482098598481721121518417540809825531575113046878034075898293019046038954585822466581001565365330165821803102467611748726907323286710649886139439058114865490756985136791605234111542608613312554441200319534421280852540917134815372791042542832619840405707187885629352775528029999770398831366585405398112977984112103620761567164768002063737626077488441545776697460890699880364281493801907439343350244642789777402307540197236173421364795560842877609443512908852886000598492228163747723434553649432685884746466769654017833766190972982874369330293965938651056103747475023224848076124375476920324094072339947573838762725401293474074740436025792550606635053905767234230623595937029831672557522125270025017987653268667893183944442126229601052251026563110437454101015863711572754208680786305481350626721578122629755791822155311812340714351414270029521801345298238982147654324589021774658930947492730891945363953367205361567039558994736733059651015615084876023769944231484065702208127941555018925090201240981566912938253682392475708109184409597715019573016641183047990559042367773465075757667882047732142453888402369410308150452768569758728773108533191936685160219516412138814459227287461913099936897466932150046604937326466806975789599232913112918924722543837784687716962714532640171381162816974006201864335683114315155366044966982699034318769632493573045994672506680552197089401504663751488027763016588747685816225594030951249134733939791085622875647829141138486154327402842734614406216390154718342225663218153605088868811601819941776580346988052813397975897286895273351464999941878639428135211927065477662627048653284738882466046252489832315649353554711017757147766413927825608889434897370247694579766582525823849707197437195132772584559590401854609370639836560210088938971115455803537823000739231754645671656870874153015398441977997131277365043583393997075426171436440695642390863448290426180754911838754989431596810520776554341706900018735184962960279219194649137715790156447093595990521142424613707324191755853540244275103613723267900507387285540559460095724576912296765069717078073001554555550450516663671002684594980087242750745100787563168571553722976908348441565627182992519386125800044098748249526247736516670273220050086768615448830408419579767217428716509586459471464240302070394170865905674906229787695838643977538195930606218893714795751204777740970231675846624661375648737405301070285880265434981339883441822070846529653519476988772542213597808467687665854112237599714787527330752881918791849917626648920543994211945576066778937685936562497607019994466252450397356992893851553541231613563482681371035173202511927105695203816850026525998750276379559938804885689685247274202378252152558034756244801608459204057288901938115434233158544003741632915383479209567013682452272637632427875247665480972657664269193623343204833421031055650046321598693539964074042197073783965069117375317872374343753636553782867697205104029158548186847021916182351948411339774489652746997235831241980867804213774532293724137394065707182249916227442342275926013105497416363319656398319936109536866463379749541732170435821594494530798181591853536874178905359008574569342657929039014094074374945468188160881806591882224307249071425525064877485287166960552414584304990119018986674928826377710361569375652944288064137972122847875924670157272233003851997711243489594920841429768354490863097736122889340046733053404284577622516511418648507821298382678784973287080795766958836893330892043881667086759464499409572993507207225236281970382210410685101024796016044049352200843157825449504056874112738052738907174027392774207226312058262784000445045262361499761989369149075680404223884445734822441832703497512351495559424498133210104165321502104009111701562781070345152662781796304133584820762721144030934343166710239902150749154702746157912155962441977303790003790036741836145132566176278224716424769972503584457572796274697183178453968135383918634921884181654575733106479619846033595379028628387940577901986714857074454794378242178622123211160179575819398760365007881027286020437024825481517447512685044178559559863819791968724993545040639642054994440469251118131492340033466812507861023333460133120561603285188364392674107052004470496375518667107446981349149106966554075359654560458360499022634926269088426834037686123015303098482166510568582840617583033058118305658760601313450846154384906726373954304266524966838400403635984747081300702766266476378835854457914255920998441623473964398000494058524797172765619449861169379950922009508557628157546449861838294495763728688776683533776465596596375097136140753753702072889587469738703273923573385834605535739541685492852446579253638468808261110092554794050083606722357861010252512742788797175759675071086449583988084271253796440106230529658572708141298395171746452182300758560466121444207317776208984276971817932833804426431425822278767147194837621224777161997614755813996737132155990744861216212629848987164095169405976157214330571458053558153137373094951786201070408820588639498631760431868337424144772379887866446369419570182538912032471368085846031574491534141474970983583813859984683737200329291406088660272293397657649967913229971446214859328900695105537160498571656591563609955217435890074084435100979896303577640648585946557742913250073991990361793235533286107687892960347694863283548210773703716933230429528281157843894551435999925448964132473900156281001995653825965020558237937488217869514045672918031817729955812161175060507118259183760824517367565517762386609341157141721841869045931754269852608142370004199687496168181134862970953733341533534424674530696777683683239171915253968952857520581492129319940694021455691108880836577441484734441323757081103714392399141315665922827844329992461361320338043257264507735642186389710735063739230460500870935269041934996859644768446922496364899018433711400135021807208210158555024645944134040015209426638772239641322539527006454587472341064182082740227879104123174800754575236191682609854772280661248298176161626492695603328444509854517800012216022539918684585307618912943132225628443235868716955913757078042607286071584010686850490745231974555707704649778321670687003307639666389427803245186967647103677557916268349845882749855354474587412403088462437102416781267061033375204131219253544258342528852604920466877512808370981625219697619713902355972734925766897055485210012026756030942881120063801653008451841376162316630758431788192991109726755486828487930928784228146561794391139932404039651900895072051126393851000078793864634729089619995360655800837379938151118781978557201878770416984459969710279423592372638572356536768476511457074012718706657081932598156107986518502210097043814162222103482971802732635964387254469936431675571972290360165722388131260581858733425802894523726319463035515236493813244230529990841229247166268215448932034468106183164980457175171935470581706258334337621077248091288838340752884661094176902521320943135135396950544485487732337585342304849790149743992517326529537408923899608075483606999713939688865986481514155395938153260407931620569151503067225478099039982988184999475178938657915523263239125934541226019798763209957971614920537747148029724607713876896675375669176844606778990999955658536165687076166482678864716317431914094668566169849987415053835077643989364707380272495854722461258130222671752469065715541577142385714286255855618121642218106439100700234063556164012360400363642415280519688933410130909464749305698081257777563316240673299487000451703825396548560777356652776523221694432119132768979246515582068330813547274160336950879711543749631189255106239848681531610014386105791809670394902179122101246211334005474457510147694378438776746768472610452546681086140181373066838847316900425669048697019901225323652800213917195877120493344524300623721407253780943762028885944867630069034940988034164928731494153547235796719875595063620363256602341862699520364403177795555469997185267276632224360051744025238487723416919953497756134348525406848147403489657843136966636966688367655286093554880088571277512440678812220236181309769246360100748098948728852237394512193337774586114701287212844673603039955189050478656062507875648708809667452687127870535464707018252325974699143979111541358267767180632175029929912503939307275430438097370024256145134605679837684759971720663905107761487925483021068775550617393723746657269115340138854294784466779839845903049093670061649475205174547414571152164871070697660510165986943183615947614190043488653577972649543625752406379007149373582777330372533040937979450463008535675961631252059737768026206005751123481650583745943280298834055294219495395876435863477640883777732087847524749315913341823612074477277944171143054532718187776422270447972488712723763230155725033568641927486087655968471994404719972009755426370225936380847311393546917590002315967984637147422471054727643669319504884470805857070536691037109358596566311147023886713113418992395416709635484375767273695349820312666986643592529629994102134702583329097704691759351288759171358439289616593673994570965644718121883336436329104778356395836620035351375436324163178950955402303317210386790410011885558232480585531614605314961312732895161267529508973260044493018158802327025345834186101796003209371866369988184214533895591956500694019903801801963879931713183094805703123747023503527691615759946436607734097606068787383831257554188835320173565893017610105543435539928702852278411779578834115805219385220390805385856916894551427463960671812722293540795002802899676461692958340668542980126984607939463259497873002493305258561050847098897062231346290040990975809264987632029213133844929932346747076103504286180330344512216307043326244853603373165417432864545114233985012652777276354686289731488593540055119124244652652749937919093139266822001565217995795679114119631467010608041361547847871106591954192598456012537457145744254608247428578500575442203770716040614680656759169084158003440476455719525679217895147328075607287790698278833500841706247254903195950761427778122074840252653800216711825865694992902178156735806612612275177875797939144287686351795032308141928836651644423129967708985617610730438661085177775155841203312786206499867260398267646553552881360938677100876813552365407866327078704091138156522935889545002661232997757132656464445392755599646328084577862278095541306241789271277107884305642797510830090922153448629815382008687727669613901611188893129235369184530848543067841056979715337011175273400046255956731367985619352106259830037924389033582950920103597021919921949137304533176596984206755633560480859829775454842675759097510492973702746100719333809570577058288227276331551454397882302378153156444605686494445059734848180429434159549905420165044381687954639603078548999164006192997176742977480359486820197257154165284079533058476629291858481508216072202671457990373821546264843613142734484746069678050637951632979852467785474582346744104532288856150249749737312470259713595687244441319688628976527651993498574860671780629787462439063601621675089623052434413509436301909148923208608987986187309204312159481491029401685637492252382261538262646013362780037414806636297138986067390505003299676143481584746410299052444679480169270865856213421965037467252127993334366207919625173602599814542113070221263949661403821713976621492921535855560203688157393349123612328417687527911975580634337496287884489115915163933871813875229290599373989328214705836026059819100490172985385679474724680067099951608356093950742395505731616770945837673046546367246435838140021608281205622684900184854609323184154631108688314094836343839882147594963668978652587613598661949814390103021067619637690508864603609074670559250254063703874908983065962587414820828809320719835891007598050468807450544342920258278087707752555431630475356321382265382775234140991954886976458756603186416435748673763433913315163493883981119924897439329369974031145116370353587983761554519420248751626897819309241589273726953062022555911621370981651228079432414728936353090772426644784332755772814541313213588220619789863107665049682870957491484597326923362116289289933113320711810759901416260110576288896804379032407529630962219210222078485866734866826209014545116566942317869578685547565158380753732385595783684872502138597600118954082950613899794030889479913853309518089884667966489417096772997391763315476704810487256147295885068059993008735756551552114670679328355392605333768689101381014656266078605361210890401499246363453695635982030520116587700045774485754918135433153699157211665952288729524092813819958870284647589157667174146882861708871578832780521196896997691732052181378648428214863470687821502718043497497884129832622955201899566840894631229929781931591778123632934963266320238835038696106722159768065113573527349185554152076582519480495199272026038710920543061130748766853509469346321759923217111621998730579670059308722005170843960637985944531987293489402264939877634741780615247750291433778339292200228203990508288744245695695811081707221327325108288246791276976320766014314473196547252847929283921821055532904355035007505218055793064592462189815043693639946073945556865240163524106021590836795625678138736434943521844579193745698694325054930693138332102003349688351401058640642038587907814780833865543584183927337621802480927438501174765798481410007826405562078680909352056487701824328616931618406491975557962600476513476995178006891269079939374503034353222257651477695186789966728486627088439126263409686318609180316562226073448425538438079559750265971127844867589913243117429918702643486085912607110619335435224343729682990159574761880613214540566325425805789279715742417146864117874976775299376018009258805845840509918283983986690857240067169417935697880161618456010001041972024847586449465629124650516701570042359550142821663309405319602272543922239534250859127612786442765304649839156330696175600101190485814531556838273781404959737389500088407321397163364937514733178141018731993821816034645137904280539270950260513892131256049566307719668287008352970556946662666624336493150172145776999247007859228490493382446578896531731009016106496292475117490419220909252667405363738063072515461503373162391771893839164284239866459348354782604593874445927189039962670682936995777859542982335297348148879157949514506659929015938021684242057827308191693138729337453177082881796474037681003241834109467331624747995906791426928253872646083945094227292397418120869233689454530765735364149116635130593651897919377856246273193727750513278150210091686937837930009567911536133915485775297736090796136201687703043670834268369194416443350223480366922792359713447529454656031471907154055823037419618368952779284081300099149391916832963305917205483938292894915952139928686638635392376735835067180727920370891682003133023621042336168884497698341178622136500592071781631105607675942037721096252554929116609886186515338459810911927624324166178859162074985037511842667793025743987392148016421553797154895976865808529868028479297013964601174553996857125320449660214752082939498880789622123302519157225078005301163844617453195017285972944877053314061201781478866503920244051198371232090238933112348421823522593480672285427129010256168199875456441100125829651395034678924725448369404286536989434294502925636822232507865218243294937747707629996478500959053701243289425888414254256821810486243056840292247892337802140256265759132319541940760789248332962972789172615611179118224633646351361602530384213845477445959276115467717102957183815138781597833418706630802007506257306564806115104327559315188512721141403964539341352388488740721053034394972515886940133278064917808370965596757315783957567145364544793334244792054715417571543009973698259330654383822786787498803676481574254297821604580304395747821426982871860053336855281183038230091427057680561360089487202730970717485435941117455143473667804524171542433377707680120655193279394398307297910640143689716818606742435657818725460586461406300844872200203380000986441023828270203628608615446605597765053889750558141911742042017097068734449581902092057944916960110701015867998461256480755227279883267429789317901474644982874452766663146740011258785930726385093328588177243009121132782754375575400489525981452406873758557758584257384327106500181069068437145964719040896436705612033227573147055703034904563737087131673586063633109474504659142818908859298767494751198431608948003591905581136106470487733036019889186213883100015070566961384132144644246326024968293653148436067550601597691389059742722576014859670744600756114555130890284921324587311566673513871107274055651802623351568063783217844837500552502801399421687613315112285227955805814308994367349952014654896233258938222466467285421841592959319383353629393135432806965842781542398920975940047521905343189718644256805991416647668803231995984104514970327399256976018561114805735120149861560565135223144471652287321311965422516394842979824103505622314252385167819462057540589825310178018918513858270235006063152992812075178318765633334035983500125012294391088291468196549883031559359069480908776269632630091423586833608959459321783016751201510837987622880105685013310418319605462891371174739982804591611294043141665271529831981754761661219551353704767912011201064027792934819245241214903318996922439853487641895770869110775551142419194024570533390002645565544312352554258578522632639695720073969713049278677118620514916007073939062172061212259927830309949879398404175114686053461211001031421517837617896168129823990993350257026260563070383083795013510930150859478596895029108682893235677235215603123991250835904084545159023251668637342550198659569660536507390460453906067139667773015142463041359265736423594661872645468400133326674226875782798418726513926522935193812793450647748299237217744218055464431875685623205949249583897247159013278831666977218752281585111904234722180335120069010932237717553811965988665744104664314782910565993773132177164799277195215791073180615350904220376342796734581345914419096772750247321559554045035700727535292696603522349898706385668277690621672145657644096196867391727931022501366846850086364272562649517586356738179122073354423517771232487178461222385670306071501800832506609740997021998697042502878709262316137322246706908180544380827718155880175387068021650091464141640233347947227188645897438308903511388962072121146035553744907376960597133300036311760687620735908181259168362061616783195653653581716963276667842883745798212826394210029712287212836615831450292908564701694183990358750067966935668089048378658771609151958405196133250711813038526942163486971066885869956227391696447656223998940039465905479785117034787136877135255699429097665751676601957446544377357216494937194661605430700548592454177141085731532626854904381979966623839701204032185357803133794658328702261928245930592564113300705569541954222997851228595750966778524516684597801195482247898948032701366500787654876484059076920686132127492682866246192878215486246367231602364183565629869321526472714187573997467793559273937607670996076229202586142984246105869498544573543306173671189458587508885650100822690465066553574780194470635901499853509424721670947973022043288498509113894315756803884375207282571011137420557758227315432572943425685755896204844558279493061057886871586664821947109507679070641707917971608315306886782673854363632974474896544386675738585548018451310243800267561760721758864277084285325644694294695209068288955249417828329056731752817337810783856042163626339688425575169104257102558717276831773469601897506480601273020047194938626073345787567745057128123434964797215586778360075932416775477820249075535915669376796010362436666716000853255518201972256791311799499383491350053694177797714222863761153724817194136705192244510140040514035327209038557092834075176554923247913669627192792364164614313784875875136991045153048147202795924645506775661324734428784255962053813618194109081655657919650783922914585044591029535107082746672063540552709592025156106845893735407592666038603422918800543000513089080944274892544469306402462901042459361808453507243725937127842936966472556405379670525462748962468075172550027556630534767640807033275601826701914853643436698011897906024431510159240200582525959333728739069322438355080061309907518056344045906844797494419225444944146724310939091019173339859507805568206561614126024279759485165428097410486380351741197624300652229933060197980453075791338027591292489483372635315595610818049330907216481535976041583890458554006617490950796464684932848722315158999617144633174089642473980427381237347920865944499189819341871109652182778408272390093599613929911889915057334524085220170118534083887908703720257262719441155657471847728021614478728727595634681213856928009746234034198879615397603667851167120145837336939510094726262406634480810969005548175002385365467969332684171559027318181646350876894527830092280409599214078644020277020159486770838900736329714952163936416519891530084120172361752802230629481193469087172654793770419932510640448820535567248146665604518247684309194619653925680463928697331330207690778589937321556475614430171389506001278391004494049560806927199987260252971497048958295684576222809626482361191386288419102662849931023620678333325635180593418485738170355160862358167489835582335082051508946730654411222259113795102385357486322084255434314664265014789881528689382823413841406872706797853042263433840225853245882397524677126233543379394344950128292520454918937741977163165083899447145589547927488507977411857056097464760169577254062004818222869897660559831927242707198276936875430199526610740866648423467064761641754288038147892116256955950574034412845339016426208055610443787478014076837567352668212853697270912799025567125373570983732093822153353107977559437220557934922751312444745877789116652958243953290668373657562150888992461325516720373583720643598210797466821613648479077673023080565656047689499678138586911788698305270874994353833193007168662964954521753077137300938615634555947621175029529640987647832702240450652415829968203132701482792195710175657548481619545067526094964435835046650870800530742294918157375821255957688504488656381995660167717454661520394254246439701766957606080577943501422238712568214206407570783176438873691752786576892828528804248312681655999383751186859618612829885814151065011777743234103078538142157558231660568211413353632922422029233017593003729161221377469854975960146447106074008172708788949057689301976210357940517663278152505345855147391246914772018511125308257868458297811545347849946519651520402438823681319762419767852092837703315753729706263568366438274734850742028962357523504838022446568950703937598205747702165216840204726278695583023720452401680292245913779464130617450004092942259227046149717720857400817666233470137315986934948578414452612753489547119508140964159472643496600817423671696210299442142008009559797312966318449455925348314461842316051805176489773217065828203778435139394599494933530680168603700361868109425859011592593665245283518203777065113968455833596788162777159241537377230488269249752061523815973918972036990057007729014644271515385911706533735200005340256007476230411241826987966556553696810311170782207002804797943533160979722478976410404245248033924706702701186399155835600361499295772138538039967547762823594178354031195522841449619375069014213019028705188879571313619115317996990962761569575542684858726432277126583224601415316603046037487336238071584597373670163261819905367428772490971214901200752803789353674337151418100378784305494781599236072729027365477418515324657594658593975444382927475965545861918512518081211349210102194332333854228773424306337042437372810733193988471479173027745949243352328470903773959549128215133027226659780518700199499350915232849483171756374990754035474159347045247782967710556733356152512592483588438312195690200770559593519322179635490402413847694958196448499778656301346963669448501799667069439876411069903912426293354220188521036578153965235365511843546775351879369542501233024291590163062918108985079729141915738639608111342114117534421105650662859486473440945008327103260723182193174293495589678340529058217818394419798095734622103890041733988620762658703478890830040343634675128975795461982582540657199049846159409975234255498159896366955430080952106495812577588688004482858524330954555417112403639228302677609480044866905246777938349425057876573897257100517762072392526755695975338856205325832473682000166549527960062989213707479958162711368239334969383830038035537063433684139632424050388587712067217382381764181299482022705126099471278492168696627022970200325609241403166219312231802712029228089383545083621186971245240063428836653075905915904525047039221158014734716401459843913001022206758412256447900466227224478593612572494091971513166434273280082488525827891680046086795700463686726007399045770594515048706881855082635090760662240548611617159655189078504960695264522430886636299143025714248602970528647048718157094701047801226289972460456317303624237719554128511871262176618115314883439267819383695726577644487811464673581633129957534053498180338199314646415072768831960721115689513739437483306875695100334418690929347948956044711618714878014828653287294956179493165710233310019969614533374278866840987620164822872121383913709587812262275146561662051027672420417444682861442190738147369807861763714215420519968880709904202019027566734692118631737695223237117782639098058280428437996801572074877559022242313107044584064059493252980586293173800414307929600421950683748592310319127602075648481988028898188629691049904825077583640217543522261384717450554025046021170731791245829962136143699905222817218934062341373103186245542865562576764866714983156794044671367120319363402187826556912827426350826153503440559935371900709104268539175415066445645877456040373897271722583239566210748343305758079504832769105085129471045807576176328895460007928017756073907162757047146783939768230610331428040665522373736053574027799908649114526607002327966010116314492026949590353182624348760816926043586695995035141237141676845199733308388942577332760031286261087902157494809044925852142062931996538808500580171400058052910409982942000342846312389564532550005620333802949666863075262262965389926880609234620636733139874101611228914988479120582056136360501978088812715105165530675017783950840719168554581765768620241159977229469388420261107395699701372415343015896230925573720956656160888423982402623357296410169872800585237735387116343617042074864774880477678866257051491192658373728575420606895148234666361212215502278267583364969415882904344811657976938958176025678465497685330899545737987172146493573988332921696635480416885857107488660990340608407895891054995661534049798255777776853804513688757599155767392329041158582919987415496547768628911103841419525812852561626902750237080370334930318914546974465892226405024830411116650272659998759321634815548951728749123938935116008000491551837771647977242936675081568549803487343720647770570979023849992239393370446504049944224045575646453126763717896415734586326562784051566174533787556131532296135745824057624605262573531301342254358698846289719131252662746367565238475899123556588548727078410322552771805578843403225093463686387741433178027789831066561573996660534916123613046021591678188406190499676626316493347001956416943302802839634865973806280114315968030378269383335330965944272045619215674060485715655887617906939048573100238998276981057632947464407189409413651761442446982161308261047025217834745012760886485568064435831574885763190791685361715710271789434000670292396957673621171051501768269503215756535255540046921011469146955902472979505049900888967418112966744044803136352576487810241823224829344316432171798092708118694720302690340879518911300829907373374367945618590007927262183820773308476151860816734536523493733313554251153186475247184352362214353260228553127676621567986802318430047673134678539968644276892460293961344433259711245089546796449540039443690478380454063290239722180063558295272814563066083365767775125741042365850668887584317245870535785008064908294896723849348424813360673289595740927900432011292012048942428092319780002432524730138557197838939259170122194915830820257920470927564899917643059718005855609114499196250344730149130031213845470623048660625577600373100815701616547606053058404604454210921069901844936710550091979167833498753932021818497810570795238317430748337887360570858707066680268897199204392247478640012479784969646666790318071497775461158813719821058332864074812692689555746144537001329463064729792595971746517807911013536626506553254165197945494360664648201627456898468543478618443979642984230512985193581760054946329496051092569286676557276812469775129933653512020018458050966811888020586729996680043697868099143917166396792068703895569584253206114655183710564811883580768632174025638949044400977698733044143666239227235491266673645449688767433119917518583576972539947032535848753410154161444863271920716535637780157272872581526266908347863138986037585484793651360787480191625858678868066549727763807921944896333657714968177723678387859037358978994154642694311932967256528062360868490487719051778585741438508245203173738748014965958909591196507183330367205416110207678265527707091000582162047166373208747732581999578916518552359056586695108343115095887882898905008516266412459966114757269326060981188144100042923387973342813742292767996974974152138592419722994764093812633180674204662976463689980588307063714368734944926372547642580587896374881734827896222406389888372735314451676581290780476768438020507255296105102978372381057687169410417741938756130391455681157644911825721745176584205404721007602759499770190336161184843322570133846106552787413351812434960261388502726751855575307449435257261000343480071855073053625878320365139438630367407234758775874929198036658456368041463183658154475025212635988084381017339563692080368217006272129698201818850254040625287439737730573653233019298992162778404296502196831509175207621019192530346008450434336446552790724332768569120133285120545849267495245106562867372845398759447343543017876391289856363147123639564966513996369700552122000587887997794847028847519396682450266080329323692981245188779259148814689709650980607262687831670883478138294371495678242144941559213965918466473461882385153421586257460412666737860458823661253667194790776552781782269508885720849958591245107590018099008375715888615123406584738027598073237865903070606114370178874589853672399877706701454872748851363704535317266469517068764322739931556749431031433546323090640507609609818935057474666520627134391878087465145283709457861455608195395194801412711958512033039096067273958169278750802685034247247923168747998072540946687206620246097339990199560835864866345420727838247774625744952056717296166043107045009362530193101198709499305204366741614128245071427576193385850502754104851770035551869557206739842666808589158114011181501587307691666083248815647897003923097301016525010377466569595622303614666371547829398543778027387306921008467130739451661863635999321526727656424931814798671628305902210410440751506191469315717865113593278436643567936966432930923944975721144331185798051298494548857444524152176391679460977911861556800627513969348733284246040622230588682254314511859176902694707122291670611383514753458823883817479148918765278895953034261336666043938030913840102527941587078232161427114402260772745467175337355804917361839476541943281884218556034861424875464393963090524235266165537745999617903674679534995633927302740842427211905822738117813221816062031100886942978295003005301755123883189890939526676734906392915553784556071784547727818186796718263599149391531721390528583241558457339342078788356786378422509789788994676989663549892243746006382965560897838913218300206021539713650292390579518727514429460936748358726000877996830348213347368303203494794860446686043768347373747479723276024338870903478090541028585388753158708585877744347424782969838204141544394900818164733117917753262245219545718805029257415988083555518421340872991597116059949058622317329781135808635514307895187714101766328922892990635120211897019048825270733639500093936485776988001741423138266424046248728058800610173046782840366715855528090445943849244880226141565813088204909025628078434087739941197835915051413795610330086064239188170203597780570833451694685492367766817161598386053144660301314098112596916879398004198789898050497383905127058090144217090158333905782431538447752077332020485561273318300578666487128189425955079294325294170250718266242380590571472762556507382063130560890558973879577420858058066539349329998033969767690980364499470379528141915851508167356339626896376269974934729916402804633052484138306583278043025442288514592750985220750714506385147819275438561084413017428556735507212437184468283136467893657068796744100731776645483626846417974760122189212201097026722039406152972297962928049950075161625831994856086048271149198023538658878840586211417931136310816100096671870891704767687288601864815526369106594379086569665614306854320516019508954579313686753551778232760571042690924727416136849214122054878133996118081108179575509111948282073113330048922530436748017027983756245650611806874629733102072568079541554122977416851242998158024120714453522421309193197216000169301176410066268067805567619007258739441551091954210264917150392498113397889635833040381758346447976697849031880858320078418787055125674586144935447094681270996747222495528021197305928189222816172115563953489742516783296856010741394804146882361627793293436717022143102119718203430807467541009182272523891508378729765801920300134686585052571538991324979329102468969874452333778118383192581983491288334121026971884876751678227862904555762499532090107285913349097816900230326489293589135606864893246460381734353026079035756466704451043267936564612960178698056168577046707195570641548720711194283962593121559026981843516069246094518518921792515662734059052511264598310937542272109799343759728758075546449755975290228624993456982785287361848552368147600713441299685007572261182801906408776077237131636352016291534840175903186642101325638302026851198512796215438565840925447246383576023817146934034536914226643275577123063401770970727287421642704082590734845313555915665736828261117953923549509047669915876263095845566846909963250367087163508572895999904713040721028157627292793488892716497997812495607301867084307133270495238073718023657008030458005789014476562794722069725388884354886908855459855051527525502024903071368399570509039339725151296496096882993027522744152272506949775942835440742918730759727491959884120701909106848592373095859450468137623885440390882914893576267237147084108587053958116918416245707277607882504190902632611303523363591921672736155672726513920885746645401388096886352092427406277344240535655588921234856144413998465710112443600709296273062667513210149178997280481631533829540278384575538652444797726185462636304668292765412606279272341162020708060109770114941245887023540548618190646689294742050681363773300014148854962499085024152348794103076797399487443701602749473774030629096056029651236203393689995398600770860357798373259952670255335334110494561479047410777548735795768878202390152745311529783428613192290555567079825172008460650799594566495786095058296319769752013573412778967055321326254720558051714444016284749687214860856478754441480700730547845160240385857196588329926226833643996533963191834892112920200358089139728316919802643198851826831246696269437934661346763253861559234782034319709439074131427343539439507443396753787799229492002286634134196663238824870053598665826755156683580291862610343440137326112963509857478239884192270698741276959457203185926369670017103428980413671977542598168381529275469947303613174051112756491031600491128505431128474755132752186580326558369385052904687701164080232838531818231415387101154761173576475453964412965541926875364441966676734823737039178845967678108532680290674810318483100638281177283868373033034841058914622008986074019450935140221432870040714471502819987339120634963148923197825099874796534341047650748505230845972319545265521557113523457071002675559772574185170401450015528042972269749101264649218284377484567523836141270966235963929094158376222130221545247605260283881885342221634257303667524422928323500505797374170542673548975067976333246588401173060967485385936878198765609801651071866757152340816124382790727904090362874780341063025366292122687096757614653214370685184859746968413643183862697247351650551248539552058649963097985570505910069383255918078074765488743186386422894863736715729513096321778955533971738395985930434232951866281438341766443075567573496152858442388959866127045264950410181357780604855302932887691626176714490449676752120430154473919804767022720463350704163915671520443992400141517375546704435359627120335199300479458751379417056344042722924986825377320008036848988884545614549523510491997203378253470619070923355550238188307046231032234439264765675692823193211913875650967482313354812370891260195550929847407760995875865423324689140683701260994699693068953085735239538745945627222898807579748221726878396477098508524446064607732606081403062034421517762058246448762693368057721596453526229178179491045073433905089010379331930739714334483350740085053582220886998897936185485707561350423154745683499790297056441380285539885296319620275232675437537488910358888851701450020009172013237744763212401718809830030238413795838678557194696082824922745884239059843030279886671694805200509766648593645151652165129314330710475009678565334728247050447597935735019200355746680255558429961761809531668293268747636548173315147278381503416841799156534374665292673695765693753309193910049053186641143513184589032751033561955521957024639422299581052732837520460364643851695408876727922744051994849703598058774793720658203292802369419540375781208018263682529865899187407497710877798858463858578438412396486534569461703140146670286317617792518239747040529188629418686083985514534534477160458462703998587219291961139190324112047692009308663321868229590895918285626347234163745533187658919297155098242742031896462505302059819456485446841565720342049265819588740690984194443212842375399426443509273767838876456961623598930676890743454465672095609620271565926218065214978436684052149888304318075511769629658112536644152117639719881196723547687385610693915835171463213324232211689604180463572833289445437674135884053203876396779172530442993958969283981640767384625839308815418414075443263347149254839872026256900925265847421442701647241700368214984245826716981332743483801167677379083365307365733937172814203879210237726713361043917971736130596146514949442791668597942983504826612609728902192422473573994534624436809732564049071833988436977796997772593292351629681153440317730788556669141648750909214689615547213602283306928575137367514746824851763074841663376870623001471361598830976461760888414476356199777071745074166679071984738792596998007947321082391252584709803769899265461063506945603027600758239946386661328880246920590649831934690931671707495180907033106379502692085987871313198344564329001014820105826299970886025260264436780823065978949230852582197138384690090154082551314554947364904447779744821018096793653006556004750277763771806006082648803858561461011549965408362058331795974664721557820979520430908005341761597056433556868216866115792375049192763877018413706940952447178548469061471179033369949226647625480700411378933353256395482215934866474233790164526312574312783186730018249773696721726479992400144895148493842834364913472646711882121086433122097100899991522968282793484613792737183972776772564012512155505688680833559527848014964750079404766739135629377203563200117041099118010889879646842734329079452004055742936642120729586177146699308995399911468783725229513135946661572860883912936984496398936505121233051787935414792338523398173782928820308022938419748843116328257431406581861428086714103282526985684568015436291681770537387797509773209586035072653943454761236042599343581409831731112562643411538746129164016520253213399428927152567924373329053887188126011662791566674109375231876394614812866577553147382705322226741900532135098393525613276640811447608653319714852865708564832000142919003788989746995570559467218155019824245077475351041615612002075907243283481096293310386500029901407749008763579928872664462292301857141314115761802343622540172612319999752870169119746879110454164314728920117739844288840468354655042058286861213625639260450253868924777128510702001882957082017011643511227057288044732085671328471063713516030449007108939774183186769293984410464480957575793677014853118301162522614576512899402967188885907959601942788123588410738117860121554202359906142757135256603903555269246000686637295268594424610219710953717384664697824204514507097115125529102188756597958842538833580812178659045783956420700959415244288298606594141606681419895051236100390154350966491524252682204506112272813578303357774292913176127500671053246984685893562188818931326221747485637628923544519626615986062111788914455621290232409565528386629579976719042762883201426078501548542874001404067529893091542775430715352589218885995729719176597007464397290782080993568440503464400814209071718070792902681466137232022029587868126683927597128575787987918094399872626069886925177420553829056748699123751967504515259615971917837753135087149526105376667539830620878628875282655349636280643843727723581952493562934611479871825490615438837674776946737999170303875539675535902666290165451989885942562369760985009802179918348079893141404885591863825460599498590049002093247578701761101559311743820331598348556420713744465896439703831645552690290129271813262994184986288054465139429307931983743592676297879250215103425005273369327228746594448985915101529296785610053210085414693667327833612132943181138280336377533273313148306036738967671921735466564336549414925254333652936340766476878870329334952651226828056745505391472869102253084940491657798778575863012002577587408302188675569690031130662822484933588931166895443851681479057731191527892697317744002528397142442726968618783541941481132998600029262008136680914920632575694322133305685898858344959906266246300257237458421816077068874917332437312496394588500171815862675420179638836805040046010822179994214941622107633947289232452795975594042512507995737529287992580694950021989688589285652014452124077338105504044312308905844848417182461530220527508552085507481322584228779432404888090170469011682998524472430042423224203340043656047840752119903117161551939924771762735681357427014142087106868003578581652434509286197209341943992437570446201287049242962575121855096537519770563595632594049578378152234578518222615852538376674970247310384899877337558109345518129540829465302714822488750612766827602418730353451459102055607900997388865724154171982475151877604038384916132631383393665032408653268785835424417848693826664334349442186654163768816302666761636807705366290825935551770215490828495411485630971873368584270864920514143505736242097897556760958670987889903918853214474261285353226458860341832418470508395033923021542156219368223532878824533260875075730657015930717155965133954653280024596768944722343094884973202165083342284789207587453576121248330189217070699028202558357967365343189512815328690765094212743822587951842314666596805219538826242113194914789036230493470872893227183358058983722394892149037434086353265005464215376162974439197576354858794491935009083293332757667520143354555892869086103189347918021457402181149063266084436803431188704004275867087881513376557030812787368518859729240801227591247259466598437904014473524624623808512199235811982964589764124848407244983857192331294160292951551612359233462677573399753541924773277352089659910343765169669562201738204870278724878848852946588556650264522834213802698547460907064715975108899384324504073985171357460107561329781110354898119775381671620476442033061156085292373196725724420368796304970071326733376997623139519050017565635312069165124762475745623055714286194717085478732479297739809667266775291172815656412090663955429846934439047220479109055673238624327628299337469185214827443893978950709452985568972463491002880581773137320385231242746412276430697671384423733790271018100019263893961076137957492724028320871513557845086196284981468199726275975277254554427499210497489784099575200036345904833334316261033910816648634259915485768781355754303074500065874243422686793696757768287632763917125424461592623326315122411021437282136059045489091093714926882894433527268644380400798575213960594339751418213097499009485855954898419677698265804096429056214150387278537967591810039416027074515352296640403417178888093808257022199581518662098948440351633899812761133387568784105647341921262982687756001541028423825166620230807608203371824643999406540700754006959348545645863632445915550078271368509144152938062821634467831286112378800288361778822812254789031780166105895842532895365363341273802180528682791999477713728327316066119579195368220422074188604413510288703375208359691809929513057615102736214051090978534242511773025455798450518943033702740287166688501012134363203646162481781342280633832912574188740303166203744656826497347900616999915791042898043365755596583512142366370869706031329848577366134082704994976418807541495528815768600478869609828124606934813532498470852795329361061540929241714898088126637241933703633824729819876834460096198258849574826863113399570228913359058056594643260017388890753649101353426114918556099919979366824190782320800561291623971792544894595301124130664708459668875518343218625232197732449835449825455734784788524666589859974744751673333384869744399778280620109618229283283240238969506189857441596384972252864663955049978731799340723240582924775346013208005443407134991914089278833737005457321241331491934535228019823170530759191413454120064356534255040970685451986411026410558143189635763854360247323970595372913330853346795804811568457994791055412277499803777696767090026548381560848154984742420697536144595172086422755384165364365704080648008018055511861437078071800902792580592927450547622810801336038222181320529661243833828737500847740923048722138974429615400800512787427896375646122704567721511907172649553346867383535085821069493885936451436650626695622830863966470337603475237645741670097022690965291029824271210862763504975088601191931793696663149487039126429315745455292588869612900876518793508681720200680018453763376324187765007867215219887412357637770027561042258763912145349066373889010642042467714838359395658603056853087957000181737570683330816970332783840664557003210052428560779992592712336629354159101599897390048115481358105687657185792263641344711382788887951638568971160495480860521142987055074208095474219693115331052723986058078418160304227764749802457871722162950783258278143872272921748793466027153381538018688787152535933816527746359260596937378996369320243584275860595081139378964013951043634398502094207545246909778992018825476104438331818902633986914940045783990429825359231374928791355217867213435220918520176566713556831425231502475900000504651267881850420109632056167820327256637920070939143341997275302623086775512078657232270358805701966205728063215326550527303799161851620668772762595279278944175319602382287736183085459108233427029510953118518982142828471480942548874465749573089114131244480488861835814084285495695594613221503616278007013118110297184857310284154364110581801327162078509977005211891090308308599402122593245158177240697895061899914832473144081636805841294449196768630854578210865315802158509853053290330490689875776163578142437875357692909637632031524912146962660608798435655971751352352824238679150667794830629857554148491369423290261964420481262200694946287315900574707859403705043945934347980102060588693366554032566624939664501979328069766191951053495041431325573271794851423707335908665613328884916047175827837245135200581708756537245600565033462427738469670423330752492265585151992709664943578432665448751385258972555491451275144811312916459922171036661633060085366370298972047105646452689744977119947967607133216253730352042466953372580000199523447479131053232690369233209783305184181824200832100574906187739922117512646104068358871634257336564298968276384578885116244377173882592753129667484910239592176374442320594208452307440371541576008761775458818695174239063129230865816493235003160017666338887336830124292610037494731719173471921118559315793258913271989918794216497736685147953977316245518929618214877866484002467040550048398307966125460110665545060323140664292969090855099460972481672361237688630260487591042600150572062978132272116034382020717909990576559179548260106609535346756423327776506727738899124646558491511809095281522620537339476871284015283321312501191004579210117301723622083617134051272427509872006085466949754376620655151668687582927605179689665512768565925528221430384864857405747476989170030229412945859574233356293918357360105277695073749779723378653873374541952292186199434858385878565259204597767002632783530508919778728688356478245718417396820498442285260391439973285983382515078840172570446841203133590695771194929951803042102160192465865930325079472242501868470709236746487875515512591276715847983093826468711413512949415654875945255362040692873544127622321686795420993256067437826606153362649657272762598240935489041326360369708767302548938399048359136048899597269852780743147025486422978431706753650715062091285756277979551516451049755790499005492840124281857802986887587437256328641655817680799140986250826713797481578771948667837763239050174307282514356681991309634412009540399591505142059676631848049291856972170975692845247380681187540466046167786373329528800540048210138679983493584622018536681213582511951561894456725308427918901598286407442427504759013565624510726385261682418410192412369400580846245653125461162804440444024431529844350554001382871774461693498510097410140850135264803803366294147274664579205080099505186074964648094746248501836442353869155730805371494476503074633014800779240219325093297244430598692103592206095408386445796959525224988720017816830709708199505196656948392802149574167312207757486201330384571123462314987364732898873096941340917886919406269423980976651307095775141574945468858519879334785890692853077737009003391858417724227834655012763029259267781862627031224237346651292178859212982405787322583101463394440117300061332663159316540862908846300228090865238724185338020529686566600255981915824990045952331617867989755771215040704652430217541876654886058051578278440386872234309180465090515198646584504544568428762698435776872903461106542985575183529015933459088044005686950933514042963891149528277004191242124843752887556118085489340818263163157697034655328594793796025937779531305836896966485812814564157221828484242558377450277775207010460030371784432912954105055503335228208792010740936640404896065695499659405472386442803597158457963687493442817251610341564348271482662620014759590534117065537310326531792978659182162050053331974191448471864136290850165911417883375700600620010090116546609835719686783238891855866220176464154422859116348034391299640772024104552692639773469318834230280596088600484390740604544565003535123121093289639100713619737685102941798823165239241655662198108130386026701653493199788420207905176937658858637651047310661930210358212256686379297647261649618322709208845966947040881563544363735399085440784901017800922410939414885393123025373912405498971729805222268258917903329590298645226494927898265323836823493289249928082812769753457989965139839547580571485846994037127875449676112561410884885160833681169408476936930768203451830887371035051048488959874486994716384944128633797307495526268517061612084677924748587418617703792744912606897131807000696171279708213004666746989105683505514978503659600379197996843764612612895796824094985104852543032223527261501979159324035350529248248403791746910792671632424761385645023490521329363357964597491501109158042163980613024760937740172969749537608931655729525195520591126850452036118269596373879911101374758990294705265071787008150875027226249041843987181988396225441326694936080739223036442823801948774153931897712408289408236461667500387459788120504591781891317928967910217841920594327265755891652544515546297670413860728286062683910915522982887086078882989195439362403132998216466484150316116159088828191072234143570537761288290775246536247749291051909580545525817198124500392857806261490546651153355032624833343025905249136196657574007172676129407873671087627103276371830379296170603966747657326010597989350998034060176089075495928016728755705986428345276630918204336320035515727560835651168234400284488301628429356813433523592563543747579378405872432712306445104936134271583325544590276492314610626648402130487761178667802109405960809183435239572289497013091769696405443831870411716385877339643909200541107852763403087521454210175517204146782259443912141471776378513711663705685625456660937864615095712614123771598224444172992536520199697575790494658287685358278665275182165295974296132387597911336775744049524115837707704919936351293508051671371879658202914495026201207676505262442718224172951156989188001159635475285470416365930550839695812255120209930497073631717839368035628152156152611764130526998342480035462067156685874171036482732736717320160504070776334263332205353952872740920970675875294067313433491508110011562592937603197924876991424644073035132573460745095542622475468750400823753932536016519708574540043192273361852039339546138143236237049442423390918069472860276924659214381619696990556999161649454274960391936209997616103003585471960169577878393915763495028544003627005617732433504824669382693888358614718723773591478705921201429366701334176261545796913320372656643367246558497930880543555745039356109067519557467670288774942602730796168393459198459410435441175322209216867869484801519085465736407067359202638093020755813034751662295445922126463993040968638520653775728471936021883654761245537639634929490020203911302984720519889841700293944191468548754342343597326593506484460321612956603588646560591290676648532399329279529374081437713608900233257965274236873279283308889029618643040884028529659046685010042282259047463700005357677433535819366048112101241022043964987244761624209113376119251498572897706304114166017957736837958557165026866773534700048031865101590953482661933113772829344933471006842540061507744689732612585890939195384139858950377316992755615326464769315024958142372229015862693593701280658404975652190755202883269139210970971944986720060383020799922415614030803224986502862815472514996395891242667306259314974152127660064809325267115687927851960867777068218314665587462635151836087498898763405516191656979428497524221442358854149721558999837788921396400880007542326030131321078038339164862887884001068250487307267774948334111925541930486099404535300931728376677036728756805145039085170467103094314030588547902532851838923276146521252185973436988279192172091220431948490665170940777258912807571756936424482713193408814166034864691701677338858047116749340296104224451145888640312870498653354732138593192825166654628207156754814865473996448538960858041751354164203020531300579826114069833952567108237320869185373075618425078610401784108713981694593937902669632189341074533864490015865655291186466659815956107521699734027221857723801156431100046802969481243385518357506446879518722072553971104563146922021656007838195965688247425169859721043694160939890689932645004992749266279411048187595252554720358539738048361143696306899943177418516570260391517190351021391438762114548812347469637506595716736613437957898270974947542060908514512946336101637290134070557631540043340822571848987631947854164125538132727511664594545108209106221842344529960095288776335822996220592179026722168114617020293411844183591164230317477203782602704558907719265051714290593330675969907700663195058568943108084430513328485087387003897365179147905295372095632962251644549447392044143677671620077131718981629610700300138956392335950776629243599658786631887472151154663624059348996485956514472922457139117157143737289604492832323474069588274280839091085290585122158740442790593481231185544132501945793853591037463431798695660013981858437755025837699838416544990023641007890305930109555605430155770350361399977212830685852867860571059607393815543295044996397351080770435354206424389718723720055220800130089478268992322580252582892033408611541628319378378560021713965328204822425728923808565347692565512495192882578907909312693478804498060072718147015978525594824301546477846367572841941963964848725311541086268913230884828051023338653647234150792189783220885455352736242936783913958254711717137853001178815700117658778194916567212855192520744442525407726672330524543416586280337173668961843053515200961543398765164995789737450421609930570199643251859543219945026986980705586608104532569464662661300765157721486654070641089400523062139899787724887771767908052000887911807033525970803072449886709376972934145391659266301330124475597344329221131903750225831013478828218493535099520163223008977395281421327880108703759356275561338141262519737245749779380180153846697865122597480432640383938563275829898980541938290934650955845813270204037400391648450741198672265913984707364569727108248545161666931747435285579969504461162274575012228129688666715475537105618414661879681876692095273371834554493464243811998052767997972179555901536213168473764402943526797015158501236837155409927779704348815069414730910712249098385728588199699561806293185214565600095051421738631588984286089760945956366944193524781649350832925649487717439132580373653934237333458187558153041564886168253833575202481314047307731219524909106509477041419382213711435268768827136941690101580419217262958727690696310643144110279823417642527819115583403759542205055581955013130530959177954111932536620156210596030288400337392089665220570313209733366708804871024601875538159381052728716846614062007914200820842355691116442283729005623782789717515968518686696134623337505975377647895670006092258456817555850269865516519604374560755731552786262473419833732702881300925550166656653758297294749230784184562595187657253971826631383498607718586897787702134827287475226711590052994424122100236516815465811542562515776640999907979638537426180698842869769168169211961173209522562014575531180757430299259290456967075483793328435616764571070577565505715852089469149178776501395849437054809085364766636104965211813618915759232385827664214812005878028224657290650455110642499554681386464561012782278781896122837136168392147827105356214706438841224757603915503652073072023148708002320865483075125668967092887109362431856308742116787762429237077775340900335330715500926811141749213408041495738639373757270985635940970907789744043275590058721958354898083352609091316564904789740675285667815669462139413614115993926923421130634329528679289945659994020131115473423555675620605604156370400366580832312230991191055098384355241299805693751970824766460483612923157563409509756286554710454034597210526314587248457504427737474653324919135073267861673574861088243651117751384943728587337402709535921488123738833857780414349271353077815102360353073855821412722371709766494290066502692662791995841640520696674286689200632291505264390277875889127530442521978250131538591980562844526719573251658030354035272279069247475622847134092041644854840820400008246615573602470561345659989772833173844765129592369228823230062131687297660068735307897099286970779600854208317875180229073604341667993563873674357619195546696533337241731838451439905115584308335039223979554990120384680063232398708069634871145620140663108618538269838425486974888257959010012693420965685165424952218865475690781435968700738555760707819954452372634264520560315471602571817358676333321932441580328741882783147735406330849389748654558370298231932230250639155273322553905802949398607444441329877102012314764587518464557291679159422397072784228766228348935906311679073745867575965271798519261396922342398093985728992140465543321077013399284302349881247135831613906474928670758338192940075394062115181317907024356525072220764667796120006449691177577152404078433200769827560198487890894568212219947913540801550788095390119841188984258566620954055024374364012452832733546599365568736870285840680883515667807405371895284760624895721358119499901019539371004590298310333212862677311196752282806671778803271117595185118433216252344983179276561567647667011699230844527051656192822340655690847356506883872758378444754409225788629433343146455092751908125731678546691129464099857871541751097932582002269152364496388166751718811834674330031852953224745112701660287159001908986861119405979324194901080319754890262954346017767931491741900615466280331938970763578434506265183052999381857699836021943250136844714586828904553624930796297999036079527468890831859710832275086881377224067781023773809592189858478559594711583086828143827433380930723094026099248269431010445918791561890646085403608475745870602740648332899140907564468962913571515701146002839489891492063715644182656501973192276999030509600396227911588210687789388294410298462071494347005524332774014137821343433120180541073579220437748108031821803434148081925170843383082645270502155351506793752826381749560842246260613854304165767494921044296792646102584439137268685485344721830015517590152549419625479650205184526960633950756070638237117111381673632557483576565601089129082221436034525785788169464790679400433007288346227183136981049740796931727303534769653263990736685106922145923805511884669464555074194582550429358531466828699810465144130314412120128517800516035885134587444938936762579911702815347401264274453872918197198036674888033805429431916172470804385030409428237455843167639429604037337216573139433521942740653911029901442593248393327106201552103759375214398878825819223491924290983796475761665198898156839139673822432103685435763493801067073053842860919690094445121647799557597670050441890450580278287230289473107006331439286894834786712200627732287854642346228720316366269947978555045993383749511207659630960033205504832161937738953199498541346548278372170746292711105539664717685804271258348006880736406129973944745877053825040903437742315211364704641416292713451784578005620672486874944894080933052942424759059738462927141780780807422541782082173645503809729399133369084895114603480325029601284292712864290668263806078439496153312071979648372303490548011494097110192356261223814626491948667857390502446877021512132412473188479221277553840338996890097281283236087401379044997764792430148118377357314202917588403627857586031264908517373450992881862761269261554148444676925310687912402768360862524590265643510140684636298603353801776415334973641512343229476035729654935561808699043206541800740949260049249219145270464619089542129843220757744552987190372288554755057114888840024177139371926130121957187586607344953991370268899623868207948263641547419343583697491040114539362202438593280536549278537264852378391338554915871443116326743225832263920633429327322151727551394906066754210243963733402576086447245491261429436846345358781475328189254523503159971177461100616052366275815252029499630140684167376638400735636945965470081441611551413479963743257938064519104532352957299431834049564087445931784348375934225466845130232954356897725565407586175045178965790064985197843338103462018441318265462724418162934539336893484629547745038132267987788832821319258402558339471112780278683971122571229661719325775637713191631657185416139205552830441492892633813316448659570636030926862639722028856195339615748325337023195933494450567813333865738257373912302119582910477638060836941129716780913951620055751057283555210712007812081616360872500480826241445922201000620842256063233278931567079915941417649468422060120456994735076871861189462430119160650757933612437583804765329492827211304942781246884154784370913041754556482714954048016879316278668300697935317285009466793983069257192156139933291024508274434919062167327569746464584160931027178177669568534436221530310657421435615730653054439635740226104624492046395131893240457833097379133466789305515218035501056277134011017405376331061316575273237332131950443657151300942973451032123974770715460130388188627358721109643340872159098585715115279168299471075801688915417304652643450980200310544484619188156219239191336941091873631899369229276628329632715204273790001024258822244124103430174325126966081222808555478466183946504114113243375591823250847245653502257465096395834452022699863810214457829943389147209505526084727875237217470950787072545881542511424628604994835704564177668162400614580933282432864059157430411639052538484802601936187220251538030210055688113647282869916052431805107531140431806637950188376341981839523361871913789131917389873522294846054431552907958876987949529222746034987254525895714182797162279369072600967502372849398238320815404453885320322173276062566289223122351950199065089556142999544883734945990868696357072228695462433836096240304596384690992794179358454863580195818976752562368006305551561365929405878578914047188017245502698446571573356759686776764220901401958347193537648733065279012307018458073689769503857955844645405768022215596093772695301263339343629563280777345038725887747729824035185098492216569988104218099711174436575048410386227130586894734484839303791708883931881980060298219412545974309977819168823686705641338148828089170053200513132626521541726972544237021874228134549935213306439484905367011261278143866501933184048379232010208719933165905270016609158574731411687360170978047203527727921017706234582786386093048030972105488481547187177965402269188441256075042336199775588127645643499062720295117817882605764082604139625731818415148226208273171545238528861506201454715628681282159685178449094080579728967120574657580666412935489433212759841155009168388222475285196986076386176148961147252460534229220487642806899537230495772340591077767784070238014937827371879973789965167607522417726243475751251343219565921922127607018995569222936721509958171150878877031951303022930595341595298114401777947453158092163601256358339809773797812923369984980767901421853924578961605616225869101730562300133992798541029092360617029812270177417583809597305867004691753530015030330657899127450235490077443461991168483142402263760100477184975490192233269413069568608187488768711535107605166919565180012049097581165235162354292689844269729486855285093415399943878263643004376672750450013826671042443745350600024070109365092098578302855707684671832683857577242855414839611001395762806130625224748513822973755401773751777401312325831918443874369282891095956837925632076002774333753352971242754480731814112995212143618761177314194369521999595133432793703512764708019885841458443922911529464036279928053143110099833015566593606009626281974688723662459556701952778467487515906371494403331353821612150373783727139587078488011246962852851585394665663078067001356958895982677589172479371128837553884050086422092703082211086702678657769236943135567855259979115469804413621843320953354005042384008276282990204486285109129451565486163241694371282885816103580239465781254988459631301532980235231774806089439615344231315606658144017431106387798439077001037247386102422991360093227264816629595493095720217703695022566235034271408537537463992316505265924074587512664644693685109877880745998596071880358743558767817270589445028274094220122946916341240153579292857532754226060780692931022722726413977150958250820187924733031262519215238346933702100309405069061904447054950470019787991036084077111869247165558893772745937085475132720171196182860025549764529275971235946197584082752597661126690519543336325899555604917292146481040689941370798234134089113183100576315405640584836437166623552934083264061766419832303074153875726590482775966599905517643286281499837348146311592205059478901476978119449817354125023779908513998392825328262118760696493799468979410961055401458749080233263904894156072462404479623736902423985873125302289677526204763088061871299683442634406376184183967265080128451144342416013293833905289664123185625101538659390043797100536399703577468204443481709483051673676891471769225656813597440705598077045380463725388597033545103519482799647098703178322677847709877729286913958590554896730770427255016210261705210561176530074341678663086929397098457772127653272877669234057722631873006979595205890859981987968828349289150798483831557585718704870074826873237359760298234153759818814964095753784668449527706746484341932077438679118031904905444447279072177860604324809921991690835428509771433512158456052703895738882781475359939487634670446817578527578182359738359783842290051324398828038021909751023513245322072337402411766076838928307142128700482521186009146475750718127266858797029681193514639392714722681455451228399289825391188236189104153731010160130591228569304004693871419431672578498424255558694161096538921772651986042563819321524826535276899514819312560867313534512777915712829726933753184603173988667609956418865015994600926839217568289577551683876944684795651018716078613830587953749120609295897736391783399327533385522337355134915467511171023523832081629153681163198099449579205993425194256604585853338144092943754316187195660521763381835511100661525474189781587426977998552687308046553537815436427057756952258737339126193443405381259235819337426677336888296966381809093733716814899346386475767660078939542642322134366870843574751825290526832234152384624421753239395545290787538444180588816120554543886432923966444431101831299515767514409407213163012213942181149039410088198895736899602547772908492216711978704078489308603392287390715222491875124630648325601597207323712021928653803445202082029328943424212651868144426952326139216382291736621099717112206988569433612321687932622180626275776941414340085795543312346425979407976025191691846329310926507460066779825635467015989531746125783405437605635450622794370903036210803481682850986601867835512394680694283033814934912274599436082159227262971490080966675703715365898337871614990485073452009772264972904973878013778094891463484530800630851561752060526207063531849365448547683858044964966200406042643900870217941346309767795433552506696362316605337882488955652729312484169306376078384279471517397018628001733337802884064156044050431780168187616181493914941349844004759880165335489659236812316613948116226509771444615029864396822979034326639200073426365141408543185877188155474474190695815514585647135494358592441352765026435068104125552898088776455878458991659161143057769706624278121976988773456249871169120593226370129244297435223716385606360537910928087704807991545248978187246618647442486720374305381700476899337374542467537582722097271680326334660392755510662369161574723079630452016941283718764141060196274691171313788917327194041158691103855246726109157048751889142240323518528748974056688090798552947602825621166517613708621163518818168117023878732279883190677862694198379482488581531086806879432721277751117423861965795384121310162770863230150317285401507942137321091963991019958931225818390311443244768285918172861895752342594849465985081453847515110655650967043766897816353473278496790559807549216400633290211882437145253951966529283004549959336060660688030974027335237737718779796548304920939710561364263502002621526688255323443781776815565933444887963292640880488890863202274625157154782170105273817691083966684437033679949878095415248464411326353607564768089838157653466156194215557535289276585513165876373038489974546290857382154518146863275094668731387902028085107779713552271347586309445931455690293072407286843657418871198050343320761025961206388485061090538763438363566333284161167235818001752785536496734261048492248316604040011862067128822826601505697534415247060191534368629629918354776156896408389388995653562613540605087776750850515982334074506143638000222038177266148572296653106568157990158395403564629411568276884759490281881875265801188918363480058298258332911244232612854072492068167731556120860304027156587236365193141395669064367399835034267804499453652765839172653259069864349197733179059737838396617823288675362857920329382759816059253401468779245559546353452485093062846789052380864920122515948258238412195300425875765526265997896506831140959156551607621673234128671486820336689736059172644364401784428669539133989853620068479175355353002806122826085487490689164290556329091927518365543707053129779762452751123668858210193962751988742633658981439200114296001239922623478153732933589150981476587246367412515628739977587390388251345585970934602123366761662779678212850689586847150990423281714779779954073022980653386990386746582252394315155807804291534744864992349062678684341046668402329582586296121624320106633024118373372130199401082046304462069039595369781581178704527043884351932092957504971258943608435277199668181352048683397339133387851880062692030584347085501652609060042003817098774195513199274126229314137330900457821331664792686051717507470013026265739449091150179709973695481178218737071427679363975310349142978958587435061973630993228849471717324940361622471814222046455184344230929920444763026718639333055975964604431983059186032657199643029167673854618438094644626205841990279359429535161615003090635391528113948582661272113805105038245990118505359861239126772991594321227255665129253402140170350546750100360841512179014258892314967875012868836788052905897337361587369952343798384345175826434940661835586363220723120768301204044763172444956976436846947455496936245396452509569721695263888308564049780324465526499720893229136153059690362504487417698502136214832090857333987629283336863884625203386495076420667938341889574043294160404200398340906402656465344071372379814564441467006544873218928995188261843498358623042954448306613390617686597939999758348196174620869534449252912299182191391160129454762061331008778530293329603808028053454624307358494600240786460062020647942600112321780011109678780132584809488928643690350351165407492123197008856283503498820463792346591420425497802297071536841193164507402809791400483787676187196863825203068775952005829666149783417714994938100200432897564151224872389482462207975674509127958655312522663246276829125170600879411852361745610215537689025468066954670206666009451107584576404026475290042255957189381117038769430419979218949019904706335808927872594953572559841330882677535396288691300856861989400776659869243941615592282887662343018656564465904438208072091363794849572406904283428612289208706879196604330555654919141614238608738307609498187742729814290888537855829042553308243707406673717671796213310780297106356595767605782130898034538361301607140446269211617352971627232522273885158196081000090513396295516692189233308953753378562501848807213195277156062888339537486656757808566224731141860626165630356489444061928228991595360326902087389252124409403927725570511175442718111408871743205747090658055694003896253065913256530260778017943179715724418745148832626912963057792484404722693758706265889962281820247981834040867252466594198088071745129412403619782039602340125088949811281454150302676261152524550913457722074331822995533508985189457584958270727599393564693906040561193906508348133857059347832464426189485289909758325532980335903606659967682611912829748902338087529660769178204479786026215050129612778166702099816380733042459294894234111101849470158944802068219451959148212185739860156653603288983370777471904249471080697213793778325178760551152459483554295294520237139320645269211159580534364399311771484305597415035273505359099668698200163370772169997410022589179890597659637395108786311353259009119461442890430076581161666193327357224353176082358843877622796963136073733982091200333692206338509820461700507519124981106450855915939961434020285604578303396455194434517527213206169267130298711153871007095431815408079305533654339479883157820650225960758310810866590327541482097632053712339863291450889465296821980002720289957112605450930453801377146650606355265862503502520823167367616599515617902786763982049103309364126904155520436881649139824280969182874782068613340208834099519804967683008739918353430133020796676536102327860349683616942262448669633812456150401785926559029809739734978773982514039798349222996642922862319148644361473088880825792855373465946182423789433314999022728205977235054857162912459737943813712636729708425622299716513324911484120308141301681180220856201771073457866614151824461565960379805827783822928442242306329550370942053117273159339293930289876851483880465463529164470191127289173378143147664925260217980943380766552389660665704788380469992783527478898225877261521029346275080189454464555539808179923876554955829670201392172846408536969666514895106819009024619659960311837186695967379392640795746404130864337697014159657068484750130925267436972632955787477641608387021242603050285812009314532099532879999910318911108814216031473942948291953105110003018310457502818041424499327792744742947592812535087377335804525178819223967232899749783977171180858264511659115967941458764489188686526150128493691972410113245711009115688294000430018941041175925358390070414687328803894470002925204146576113875770661599051648072518931611189356175405332104728836222947763425614729993367508432592427001264082217612772263973816883724338018088644396400913837434627750594765231169563074124239567989573817290680221426982956260341646079097088094964483420603052870269582221411818002074592401255767082668700858167485619829212683251896559045678605651460836609402112855976440027322883304900380735966260639515392623119071457274471251436104457627016134598474151607639921941572857679086932646179329439087318414234585627624057519380361021436147829220389028158184403345784749980774520988021969716601051961436038350178078557810199962264033594386267162436667774719194141421379435318617812455947484559147983676174216471608349459136620510517686505508876712103301439070343889937999071128329049280256836031902982698540773875156983184124523486095742297166065280586430665583979488508161567617496858558623528836726314317593028882034274138225015833794183467974745567087273836610044464549128798480337412830989547003132640127968210661905155211598773283450695067348709650120497053767623432218106635272870250176918904182940266628408008677393489176964452603128539521682983551003415231375988607095400391574879266366552531129423304962416136808107382951796780517375023798203743292225883602516105066459956950454396721381638075154833140812845691593705737420024957275696824536990981487433379349344615246646192634676801863378743946306103325239240478422440493766576171707354043134180261576954873827284009355484492429990756300329866430130477857093798601531924708226415548041886753542282963284973144361836295426726072580964818793319542649856992281792072955573659826495123212327190413473597873994467875029630845999580736832763724907325090309723700580354860644573723393808086454883648531410892397439489896935201271798888600767323233167393520734347157258463239312361007981419022026917025912887197695948986416356191876744852873649262813237238026196933984750197570250672192919310294538757733647394228822395653898517227927550921779781592059488516706919309108079741146566305708858042119213925424569738111613427041295896579649419251336546631011474753306266047543330412557654962265493383174685786080068827242214154573126444152973688058880481447208437024512168996707069693030998925677075723680969591817500613002090067946266430621178236171845708590246457862575991719297917528684213169601715523288218443476085065581849267365291412369405651196385153370714949864631936874323384828113669665360634567041194687925786860350557693842524843435975235372745338687165308292032456971859182185681652094619871897393178543859487502119622573676700270577633804905593132550515321737041720717718742873496759326209475089501282560537991512118994324748336892243889275552300141451466037898339678671980925841590669003933699051377122657951700476690129577436692324800519580946347953651696316150022173175860183646052524292333468601756184099295040121136177807248686169322770433787415599785161998256108515527008411320525741265893575326115919897884087663107568108319113845431653594051701038287622416348391649524565564210676197004865422208211687003724751738308161047603407627870346032367608194401920433890096754754152474532073386081726517604103063142282973995743105771794462440292346338038073250329169649305398211707587089247496226285920147625341970476803808398471103618106864271616343914014023711683129155997910132778889109520832642523372855283006095421591046201009695392529221061437316244634951781524258836951058316777620891091673972734977687264483497350392150849399441947928097090568407116537129691723197010757882426460693234355069563139942307379254339770471915675681830371046161596875575154343266197774969123805549274637090064977894385335182305039910110637545703777814837511828278002790874787069713053251501669841724712995352003061883599596663174904527501178268725147483709305488044037567129064496543503873983006262218837448855945528333180901321134669989397549494302317228204069942480741798635112734692967914517820137702823122305196209190749005944246412782631542557687223787166434847864998840117448395268709368765871931673887600232896462112752915749466028869632919223897466589939675277183381445844212401323617084015902072708242439955867917693490927225456441359583707544282496031389823898099079482197642995339137259736061019706440893497176474069747170330927901709635324549138685332226482320075067577825808413936920471756263584703455332633281287535305705558964570641780787804354791655110146163167006974994206217346676806167673989933785093072718783222872450182004626669330717283310433734890643690345301905873867157364456027555679541124065124595646150744430369585346402579765083218963123982350417502159439911958846769543187835296103573284832513785577442945080935327784998241584896110355369122165704060095515271587911598873844704810890274997377217329293601720951809605771119578793311895860617308397778240015729994388482511198832914227293613049688721964992229477789478811808981863210202827371761464290396103457658512110438567126717770098107276778724034832689469000084873491048588984047494114713253953735531120380895340142597047591465408734146562692315934591108924707914764873559105895328206910982113758163734777038876559324425919379645000810209381869258319788388298710560927747381218185106405787923659966339068805560841430498515037209118940534200537824952512722187339818905703101572896045287631684914171323834452639248507315588300597290185898268673294821064305252901759593630837838083657906527578772093494798646036262237690165851242647406443128951816152141459673019785869398987018696393737361304716709629364831190095093673660790111152025246430590434375012739383580645005065788259214911442645048894306756787346938910242775729520482726975908126116068136061717616503331274282602268050614778218296154406322289269557883016113779563789036435588820057653396098886955930023405598377434080461264327604966921071022867410200590199698718449267338687997746211044078327573657730380339739091420232803411536423512278664763146141055358783215655047375774807383840961818144441504613299053039202676789188927249775440498959687071377067154608303838598859578222150723765841047989884916600182053786457678351762775494921493318708874438509915362934473234541627502410939667858571859077531002107938548866476663054949795933330228448706870068549667531005044101603128662546473773149204844756772860910535888752726857355811580373642371226080099262934423914595976749757888210438639158500475869667432666220248166938101434353983302567005855846547682284635115340770625631235838718563443265607927508516668373011904753706159841893984678181529874792476150030280749687232442904423543227669912281479533494971400022050324729142503487850471912083283217607981280250688779634850770869161281682136675342671454973623571973970269421972141575499405793045446170998009086745641815854584317928652478028680078081220263256303621381532480101466771449675670337982189327922886765797601097403122915334292045894101405832298632882027546829777065761282413510859890980832733319389100011593115702500746743001551609065596585763898541567513769012731063417611546979808837525287409959838483456475860328221050086651607462258651673160951755379423940877131860534756895593079776282340311907568419067069109272277003819553997745974677452884899421802264821311079522739129101269445090881695996923323610872101570400086494320675756253048587542673952172491893026244624719017203634155138645639352592892637507210523164819847595353423715581265736355014154605075192694190787997537705001286857061384034249343095931376983667720467392562523381025951383975770478960885941314320515478492189495468036327945136356740337521001474894416158019860065456486388899066574097813000659555894437782769996761603071060319456646940269844136863314476651079504262790137711732819562478974791858268169979064892516393675945910453393750599123873887334912896149801884943785742339491604413061356661822104866271299477920042595747581950752760158141728483440294363121020889524778672531823480129032297085862479430356071513788001849767316093721897442033984951779762033096521039795554973877653131081550512375504023563669069164258070158087512308123418201170218973199760498934480669795956957580830037285397258378623957995052473184377827530052677607101756924343699059329014827498285303855692295214085886350387188717757289299008170661279174545141238108076807995557016594703046124683243255641397772537847437525577801286652642884478992021837597463725697809414574694281270674239203801652345833761373330121453199229738929478714227203527836416280603697375115447037034307487465477320622812216075243083863528943083966466641679237327623593404860425022708567694625052435408450497023980852651039137308771249764517743413297635815042796455319717447560724271593257445218467505809671488518973697372066436731600447159412408105491910327390837654424708882022199931322630354822593647754615238241235281812533602882171134636521808628826360521592599150343238052668222172047345207742472009617258577590816435154597227878498354379903110723415023186649727012342242870835706185329803355692176266656515345838595763373874824871264828717622955063885280623359248316404622744426088083306776345694766628745717792923333831239504738531848662513691914263826188726920714473932607313897654948595366581726003374580194913477865845232291107275394701043450930320782307924532750531802051958711723137987482835548669793877567482139669872966884124254050534401791025326316864058651715629658130332004956201546778727935566419295932952991618723510040010904549545070364033204870794197027984693563044556540920119995865087806862722796251149354887710935263976596806833458197121946741489718161275569489564172690027892461976723413964543716048526664378073944928411963511702612692150805065939623639030649497048764381574256069470058946645890052808020342046580565285519815373124177030538936866730307067790171516185721250218546736230865548209455635186409849842454311787207292155896958227664740080298298053974113634143213245510954937908605698369600541808122610263491270846605846835319994434940983060856139439847506604750254231784920726382676604067087540415468508866536834310195071206590905786935161327717481577528185699671311616946471683797387615088332581343484667611013778516690192047714471847554556801802070430333657618589684414558610785720958280064094088925636436955313291106985794236480157813809923540402282564028059481343766683151138103170255227411539090109099636552809388851216767670518687806308574806088307538256856307722168019940525246470434724187043626581823849418372115935061667035902376812635477003434549753782995643049032256850332004788157627514821420145920938814956654538850293897664894492756762058095394513422126452780805377399975723768010141616842191349697883086868153392858979359050392084198644005144278435132731540343840387599089409276582699184585708837438667344056536279969276539485536372247107499240537819705274741819164748093111747959834010214948243293109269887860042844821652446633941702291265169858835912494013386331165666809495981551510313343311622414267564790189187295669028567776583808291649916591466516923016365227032934069104972007693150036034032823654238926108543124462480630176763340951226098116751173753832186216564471532686972960366406213053775746678742421864633563833235365093758545153054586488185848990135514173775734576158673492536785209473642023835487063412984226484705107666705390082992233794157524057394261368881894761881161686790359654497704889544821057281347114467155261787989092329026648964226928068181951457998266620280122853497078567069128115492770016679172659867634672141651982287496775452591614252664683366099376191600141624974296611540369290650044377707872206112538686919658197289361715515331663181917162751631402411292368484016370015698131357759483730084625827399769568794275003820080905699025361057819490242370924913954512022372411923623093589068521834308294009462054065847376893262480829713721083655014252000631222191471492028732054594273730934967063669948912029142820185576845758254062650924649299443178616759755574645153686284743120108078012536246822728555087227299038526107673876006721479392036017236603633314602791491980429802802476764509019084455249759886622333229884865366616492080663494390851942015585001833811150712053960391743496643104527424363990408145718976013196951324006347433195821483385663808997446474484666772330612322928726681285224622771554263235064771670023689787586283869027269736550235168371356515626358954527967461815359871752748227895296436905186072803004833897221218569121375569484812497956926563240968929363191118093510205140581150837440799286733146813710750003858861370814594347556298823960422903870188706235096071950879674202766231991150768305453641656640478902054619970109458262481959307204040639653599511630497222650250198660360066675692844358081909467542363474985812634650652350195178464084423325634603596604320831467433746978785329801385440688949134765704177535532490207043496665222687147724296696276566907651109827336539930065303352003074032441412664583341817330793900482604047870667657566717286009251489465124335286289545429761601461447336597622654068638213304333567745008577776005598831631104987890352571424437306611220624216643916673371098834176263864794800634365768899428920056922409353888085498324478691373635902160210097509712537222802133423500675391077402024223044315771301824093861454188818767128539920924385456662899084122641217935060029971494865977750979483476000595717527339865020560407289819493549955583868446638840504367513783430670016175249623822501085122729284650947860156728153999090082275167835470823696567318055158283722246258851575334564538511938680304158981444447310534159692242031438045502943506790612140111641289839816604402586047982031328274433877797999270330850890858610662393057494901936522635718763683438706646429230748659383834103944294893522890689674451144618430035101513420323873642926424801040564739022623606685247937791754762275895913171131955644441353230441376373277179457725431954380775816810501831800005331693284327218997723503605270295368859059478319277563894909565124733437787836566555990787382729667103289562237284848438836659122604112607046112556210840734341057683226017167210779194432321120616380519373604592230047096091532836580044069805431190957321070886509998288761877888543271553017403878314778731108621081890947738387451985251263566335134692084548254825769533435242039646687851910200799999883689989591265194531885689207220038900518450368993321622810358404526030763873203824144065381548566471058366452670954861976084978344320618099948960901582404373408934203510783134147282427974116013541725520457986979902993691065322005381437836014256567304195471066074106275211377331686077972014828057537328933941211929237267297777652542207354750839790927500624000655675443682753575315219243558926886401156394427562808631451982620695032741865922788241160049998172433958463080942151371870632600385872725516948171793218081757658026253061211135688618671898143939857005222729954881450917557558893932523174591675729202339229156467863689012664077008170563093966403947009645062672421202271639949346806457408279823841832772525235801367860636471051600924586576243107165354335794443124082735736435874804975566204770498117802691764776108285534187701116156442697240761253959233990141807267744320732358558002059973745650818315252807175258283926161742984266127598304112693430670867673894435506158820592722653729084899152258629684041292329462514822945387483468214500310356082872751256764029593687151433868922264355934473700789766729681954620330255801161816154735590724439372789563372993255031709969684534207600214919617316601410362415220059547271793814137987775582886559050419127797654529354604101507934692329419367858346993544005806191950693176862922128095562810921564014616346249685324252519594744675631588071922844813518800100279841167199393083098798081584339630064797717779061500155953004223566201855894706532997691554131399478385035229501273252733464223993527095208429700946854181776466633762937199789190225435492773957885291317368451227891986173548628854878789637468348984243260433565335279368686505903671217743817707709374995472569627561463575740522452441579969809462859659794538689067756490972044687812016672534929941021597475089716493591501199402795983220858807054293225371153605466740150262064558753051693234947435792936386072325252590719740442203880083743430673442923390977376755198746721805580004552635381584185371784064173260000520394144557772859532715388681899705888000167729738896159365271832039539343207630873365182841558563993068838034419192414205115775390299261373011261442087148156038563497192125617120481152406893910430235837151711440222356429299628750788011009801601816224843851738352981233933339688142033752211375714305737272977112935806850510251437497270082541428359534138925351240777497603250545968529161668203768092758469732532766800824827442994673648933401391206088787530709410147030239815636148614882868524775446392121948807895705012881992631999427435145059382125596101068042566717250566417202275559436192840759978035649173469956455015037583358760538708898435653750477996273296900935210717997410895671238493057945450565632687610573344433016229307992562216123539496814180163811346965767610872205051810609330115384697710887540964016966574412942788996760583703871473993376954365822129936548282049920024023417605454577567055029745112742917288686566591303444268641844936470191204418153023369763344724017619764604423884159622642271568522595780668444838959957450395279396405608528029047771821054329216993031901627687208132840609783140956863840826733558258090430930866115622009605828039155762082921626619040115730608124483097219467444724453618411035337575887256036850572047405823109429155291023007456684760095214493057695056741548680583794891070192350375035495802387592426788408512425327665265545758994375905530307410080127310467193451851776419667561151552269016895389976501496565685299657726303344112543750593420960593261315941243135706072746916340212973523020255861205868852672652655363283771691654543546734970181744228748832088655786300244494886141239378113638280237717401634316402370135291280553483065439407285350146491965911340948234232304505976338326532116888194619701092405472251425738735894321713854770935763760443800453115343653180688093166458198564072571355920642321418257885391917215814914632842360466676982843977064527930123989190209863922698650480572147757103586055899950287959561470102413986615294022004247690719148010317292460572014696855309417587031459357211202322927910718461716123760354856803749770173662816120737239231450230763476111677422843072925414332355497849916159915484706227947844870635457461538472048074714042217937216256429831032185771598210255170804729058965673898397505987683687743757237835350503348302733456901956009350789114330714233332680302423111003132303794048211880617987274614037750274690528883488684841006549173002389660849409831847578765565263374832035169003672340005094636578415357826586614908467348396601022960225127500813409108878531577048390805675127271095767449521835214627641188474805867521706961141618675039012028209723715856581288467640437006393733524527140447080969014831338911582714787883436272703772608003302405278136866914523208107495078503606786802817988653692539051957741562739909999311663914725285682683010257066596650222648449249284287330675570107371489703890741159126656620948491523957832567882688329866497369399488454488975408364044695011485366768718926131139361857408971114418145626666806682173760603884102183806317174273008190888660128716248815115534517293102532340648760021024073043071567799302563781352185335811320350696462882902425255467545342211737770165597001285357504999387660341617053686120849325379936693798240571611420790291208568798191557258081921371370558887888197636272852053448301682311600423535951672989051350939607892640287109842944115298726538005407402698157079549110204933432328715282052503313510125805245419100534637611269134471493252147592945770451931533210925717399060492907399306156453781208718108662543366781641509575300099798792075133045686374808693746912365127473111702338958746925811302958093496618794109200380999864325930688042198760345662798341668718960301147733136177546104195761882655803251341071472217822942876393231146685765041700079498697651738070137913149035240206236268342844448919802339931913389311259520640951802872114111879278589829122777478319465960912401479488891337392314267787536267225472259597977382343835312243372536654755354198880311510862325917372328912563102438672716790790344551077956628845538472275748036044990928826037342397897773166625677136721776018671495643260370213229563691766127181941038168029803665228310316145162703344031529258901835959589160837315965791806604756190953651083945054207909007920602532017416615633219231920078990790072638786960604335903603745891201773326973951804301863768231062676446554647829522422696400566721918609079738120240599377591037582567590340994596500171375640063337028330305118839651452085562498924531502520345940838842181189039607403664616121090362289005287032701120939251636195463954337545530732803922098029827939280278213033147455793607734690541737602039538223141696344752209223880156552529918402103905478267887551544744573952735990756623948342158965984584084912809846367747357426210098394319621269083008533753969954082323181889272976354671452121702522054305950670985424134321240759929159332262800453838753959627359106144040997630178993068735776155082166170693710399568331442319232126157369377781265992335115716485963204801595225058318523702831560736871087183607839451779089693076872094638253028830271973911417071989829037234041154518573094690085327760482201566168495307619528641765108873946793815723006198019437339081944054860421113712757713590549503925113345460591887731775069817622748159934216601472071465287588346208689872693026351236950480150360337080120821229730715388080239677605706291228564388973313235983918964044393207201140841153771007130274518945169398216515936948131312861997978412925941995880504643742661456623839712064630383450063916610378770662071824404912731336481383346903505105326992482586807233997402156955245006414215341944971058583849514686944072604171934017637122082658579947031928901001440129521259360285664023318184053073147366417831344930702264912219965146763357405072929633884412695933122946356678787804102900897146709135911818470032952467579619899654234875933927541468599956307891571246064986599951228663135044830627845536148304731783087576741383269171242963924814365627808712830135883064970804044501529526385147820488134582472537635061064252914478493514536885867782775235334126324648453492474762739008897417941058336090525652720946500975056663158213170288133955741300380495428112644580640509749708083993866722084620206403877841457471106722105482128241322179108999431362522913866727458696977524287902288739014228996356869701648383787306306033968889388046828564346659226644524020844261558050075641830854693734150147429415340859906583003863080572662528473082922623123750481946879652496962091031793817563892014775226919385587411873842302775259829235520420592881839349960986838787416439013670491397060270977411934933650278193362410432837490779806963502469243538398462430841965149554389846473647036705926427764717746694928799553253795990829779989779584422964524677293187994581452052251801935942852784278854872500253239649336822207992249525123658935056793039502140934404719068166354192816819165748058293420194947233539302322079340100814044540056009427473852985298194400466193387320988321931394293190754149292961766975386690626527818961106254218980377640080979591194955266301837864859588397787749023814453986482465153569757741910927045830460583486218897238935438583428178094810216401782072541922794708664892998810422720795080484416497604797286097301472616772061696577680001107320129626274234507669074211033465747358257205451780802580550002338711444394585483066937628391269211011108239111531984940542419326511228280181111105044465608012906033864719425248112976159829479364796300068360911980445540808766760557312906561182074795464399198300636366351011261019316534129916720963269192438464025651607218683475085067172563724368589400032276868062049648690811820505227486977319950434681748179499315969165157458681609033753173867338112138268194177705899220005345713076966022093010948764815614509511668698964653537892298735039352301358737667518671095666425956867371723857696619056424496605066538516631855234614056606773042935280378342741261821235384203973894108642562608472784381476721049495174590759099047932503483053183650862066343783263211565450204136362218098270031744887384511083878425738663691940639704812578948378922151251091217272891401308713904237452126460608973253611925666259430717337776545221354195456165727944829881080502673051421178347784041826224032639602549379852419191053594452979241872830446494360660081184757902036588491366202250486990801230653290911414066846897299204083725694872237952425984200917280835273721294203543649899234671117969951367568239491796444438710943392063245947285030308752659171734976723934649189010440851256373588285034060754980208280076927228430397336894890655558861418315095782093285385294025848249247560883572401702841141550843449409208847587244052508420584319037035586062579779842292323804857740516369379851820549613657283698770923808236422967301467793674785592425879737628293740276512436204038779253641683322464726014333604995673869327896895452424506242640772604499444351296634590262401948120302326863652678912733657635857528693208451310026254126143404024514279347991336405357711992669603580908115110277260090393321888674230628329183120291233275602269221907479724112327452755692692577037024455026661914870656406316858194825550955035667004936115691068351746631229400193478396268320287037537259150824496534479013333664779749170064048099537781693746725363435682469460035977699580694726023787006060828583071247568176450270373235573468858309256203862299722651578803478141624169062383100729422626277123732576235322851443870031036521842076800196029815769917437132083669152179315848364936481629620725699909428031924755229703721138878092165838287889997044020615968105986245586272981955041625884573491532059732781247325345848036698962374366956262511278255202076949550494093045867823316122563712722688868362093127488878268567993996831394686321442961836078337239736293113027959607798359461350971473164032292641233468025271143688707269579976298205963431488886374623762623522669023837938549306257451695208159892505969183685658983154325720446242030350213876925141405718429712043856315022418953504053010231143266176385179316123370495525739855022221423258699505018196792969780270241655036481579405745656549520437917718755642171556937659261002021986518070588009429414962283923519102876012696689607544166620280478265767870964888454705830639874305433919070884276772594880713274355851016855114486558146640936688290427807065626250427794322540862042379610920013368044210714518844907626110975824150430863187613067128858313137886185649784122487630004430309413439953472342072177240350644412087497779952517618243619599376206325912639415199248301387220415608620113924190613201261083589678113890906860146812211835039606023013572015827815810491722323487747596434731012639768683068578817645551326844711541400910358931232286927673216306052150367489915047735587835405761169902409174178408366237108017527534276073179693460240477646526408918647725985411445650292505144441651040424864617934640791961925680105132505525013361887407747771670140301649233060524114339001437581767475856491200160505335439056568600055951760380364445847650783733170907558426549724833613514293835626498292052806369674955558315462244089471081808294451207947839025865307224707545122200005405541740315335242262396471492824941604576648105621119514898157132427919488092064529893850566274569744509739057786720506556669705641202808444439992870041488296407577092741187887343117391896909438517318624052837223203666339869339399424845614431751157193553929969811838629404557947496862791976398127711779809955075046876611000815922303340541095995305399823434171643166342886432494678950231478678610641515543208112723924860424048051139786507458784892285133043586708740720471485652446679885075101956221808523651844921477245701962337102010184653643028200798414718847566058978143414288261104514281818149464989725243283756696850530738077284928302883775533469072390067322995495754523625290297989176707125416124419526150409535754225446924435602425067102447696968539234699034812468757699515386485633081990937229956976976032518429663824267803051171261085611918082421018388485151106686654742501984523931129033330073429770385919776497206725783662960417274601531796163113353529157559272721442905422931847167330503566478612839807116620852702457349998934908262718746656181034972059188448016861758700703997013080715679990019360736412399400433343036355801056321933726176601749059045972101359414489437151926107839886872019756212111037053150757412698910061418867086454314525288736326142240238977496975609626562681255077232570860928358267836958090774356399683585720409906586729146168351913053418360535516958924448052406354267762068343964824962809232823634176343058832701913887605238468012142490267052152320882005486486400886297401293835835639099524784431205116380919909386088674539483888768649815028490682593179856518677473093866150793262692516936155305740814531478975602295767445903112086299941088646787074642485889835422028812379765173615971545363924507439784130843101061242663637883466471955360380059210271992834433164432726543197326514393988885857593027118122106627009147093743591337213188862502835138624351723208022914974370845205793075412207447644486655828079448622368344871347903671710688428561734624528790389943794397860857931350058805611269851958579444917101914219306984430888769994061198855631675252329627694674251780240489048790267436426010064394142512275406868838315749013068869816385237343608307985226914134928293600458910250816581474260270056786110776040510146525923974133117283811161333825263302519742417818070667384963456799975548033072798202340128391168216251474244441386584035497192680107875410930478732182197234337459838242412343421246324717190276433595413940791781098794562557451862729827831346295725053110256072120100748117725293799144438102054657063878387659140604508426708343542776268340772655320298363921159704747012395812048253250312464801667881560947423955901902696646510570619479832292397181323150104878276350009292447028029976699518975899039725305997851102508538753735343272455975336296839950722256776056613799028292066061635035797938267444885584667822609177372801477967558443879524482515489171277718738143951029584464264208583026546268481732987056055023604971930846006250670718747780817049583686374455871745696970205608635703138644865230627483433092445702177787263238291921673929262070465004115260826492301311904487768431420408996416165700748681065186745703404457134412616726878928835711864737650812320460679627364359909376221073686415963495148312024280118209261397235593044697960569260005619579295397957751122921711995047480095875399610200330463133406070882039619558650378170840519313317345159694824372793812537689444234768731049330128043547054267637094022109311112962825173787006220231261031341042970474067342818995400793828865776692112767476829362863857913408803650766998557133396149371817962150509217435555842305340672718868351344364911539951014839806976163832956734849858154314708332692964496655780499284961318772383112178448240201424017054462507967768380499119319165236100455646356397637911758307958411401522993261500711694238441921081291148119356423201725011708349675522245220111418127513116587031694871368057704420203812601569653373689854000608126292256915801187620526825813126112462242222384423610767654710414003094781168413845734258385900417251516420036831674391507144226258351598856593670793890526661728032673510498346910782370886025295754167922846409086144347249424341753162744135938856753465505260942200639485384812359974681048735469439828434052957568778106289451632384682878287247813066697867403990549860971721974346718729211463714771282652438245421377652935741975366905500748550304547152694374308507974573600228691454173620976898904966407717448453155037662002867473290424367213472957829741702451427355508455157362177556083842019495046287437686348928781668762075838649521007933932790626265824741173110285657912206801015954367208948575955522667228594145160189426710760993394110442388636265133284309296350047655463817001441081459179073077849315270941030199163679156181334468277634540558073801370795198964387641973152676662746879004277597154991933761458762423313334092188178561381504547906074656183094806881486704849832945499061700113230013094407743735844478654902129529558361859442078705251468112690736694824382869803099374048771874894023697704025086990452952656833863751055154902012007405826483851054814126842722090546369218763215625967967884074701426523774729705238732119353882798554829693563331089005802101947620728130378453017607180231397752470113602737150998594705034541889733597237119346219621621797588423941311230408257766405158169466078147269101603110640888561805620103323945836615649013698911804545680317177378174559812093812892944389125156679523628320874867202841242275570816416477069367583396248334037604969176607140233839533273324333390283172562017918181691837512836889701385814940486944408721858164267756159837900461736943877665574520664043234524214845724296278145974182209785613418811761430333364816238513250677998842424137043606819151538794460039219304504562649696717272236033562708324464298523966621816761094729489016559702420494542312048520018406715189447663646610024122107371266378075224800846217840505614799426099468188371584982209156502635754241971131442536815796418608113051923621583410048248436500338304618707286611468190917797258368865529350869597732864144609584220338455630551143960118291217779172292195577189397000142378144502488337802068778465013163578870925902698927503797516491353107433384528759688923509422475337923111056218992765407598200993790414515577579665098015766995004628744268942855556765014618801354633243678879437510523240468613432923076081327795213417930670187649697725525458057605021995082792661863800941382184868639127124525672706075306275572597609930250358059481870314070854188579436499806913112323245206700965652698890478654174775375268669540004092850575568521486133484795705044721021596121773474723640907276099619599684787395917227837469894210758308612092046921484143738055977930667215624504970690596735592610765663921375687020737286086391297798350400706646671394153368955238513260384223031474463167949818214516493104942923438641741759308635485076898947202862439570801795530857420142556867162911132587581000546159804835644893004901470868513611770143505309053323729803033781294789465500341701706428736881802761537880393868214862211167941890088241585345420010331692968676568799697037771141102219072020796286719149509359721534047230159726092186217497836500397472023323490955127739033805048497962043769841413934969047559679225719440805944814209008242999693115520988188576316099443471498968890432973887963220078181457287944599281666566019966026638115709706693401127626919779237914457083636511715830961955792260126732955133364000303232046062566642413927285382024333983104077335006679252058805282580328966244123191271824335792296475091276920290920886976261459591334115093249692399816341588066750488396798158688561607506297631429185883707942957822119296459764646044486734803267721528276238982859921788968109199184534573618076715467948469092231675733836372182601196495098498281189725349847359185868789358921274715497163991442182563391223103123282440749669055563887113924108324473859366988500934523252461827233944949859415638248228623024082287052098457837191600927586723271680575069503691757247727217477483829673717300169057076783286973024140841879373900506522180922786583668655633179297699158613384076489846331454420471918515348517792526807580534475943205723418794715600699931020086646934049116442222017419573791458418932780735053306097444425535326988645444886774839301055635297580845862898383781427181157047036544424008146151225147193019099974658306193417194019190949176394850515279578490161040112898459502661132934044228567782507125913017969822896349195479079093641701936034272051491267621371177511470833693524479270042525703247055255319888793416719448405556742621615073655701274566432747440096404472953519520888456260549797139557533953031923709641190810175099109510375306946870283230828491640877897523258805314916414354239067047839846347489481108882510878204032121757868045186734659485157748962128467613974531458964227860321165462110276636241543506556890671518227876450623054989360783368721228421819250032349929538543577977838666194122542077697021046619913089575420762860551029890287148611103662578153853226295538894349525511122222253541711098329863823110208421005329263038248146306942218255879696909498674645000539417426995268367513935783427644092179174963063893024403405432902723610918410880277128499988220167297057407601945509099171742360341824327019574150397139238008582173616227821720216706310694220347538878824923877512846829344120547681817376498656249758692643975937752943849127561012236101764160760798200423907138416549331320080590830912667878144051991004543081203663761680951869256023526869300645514400711765522950141242461393734997979661161445375157345171520361620424884889594300551834977588125452083252630743303146477115760182493782735651081493717123182594766970093605933005319704985981353092255463074930395310195711930165136651995588099772839891099407065584495954623569016732914887292102508393362824095924570774258632390630302545170545453179453606396630496770420715397384419758637714587597866587867545863914872732121889496553858587388481034299474012266232532332124636280418695147718406351054297157778791307057792140184431005508838959512607014841650336746087148298911243020193267278850588351785288854455313659207643277283434356702681266297689992094913909210510739407361169110087451494195244264364133289688494734215763465221767544413374149781439922598254495988279062560202462166030098598820533249272332414319107586650344918579703393984032375552862103206996492133126290994571977046599805308854651542198110020062249129824294917868645792137073165638554801964073003502195259943501445888151638301105751862020885723055364674236718105377484143879735401317710097304519283284832891662454814647845833666734892338007687350636873747305668323741891373583362211136912764223292159294280658601216204659269288192004512826031330317919870815992839236211598528097395181604202328910541849453025382100685871787415519942786324584396299281222241735819684922196999273903462188552848559911967011615918334997199824048013374126463155213276835795102975135481047362225046079402339038571974132437931467386187892741927782059242992182317926414852287971295602745368662814289898791632543255508427299105873149806391769767470564276779696561580457839793889226700505869801207297978166053369104957283998336149836519531282761388035388581328856757008433126553042494380238602397865276850122371960735686320045603114142795205107057602593442470096685299102442503559950506110451307066376928545740623594758218981079454869867043628195345570674654509751238989166893048821679430420816158761988014361424733510830942662704237901772663109411011844510385150144990440652178040447902555636619978259061788370234198565901607466619832217707134067226866082486456878411174850072890372837675879384935731438509068053500162896386428583783392567732796431358547355808051811148768208352754691751680475938465426234034879120468106042940864457421249179355170759736183581448038446609350206468389538281639967789656290599113130091525399042017876035287118879445220622769175595118270420412606702436806516727619624769395511323690731982155491530172700187761038548225616354827606746399301149576368076010048343127431512849979683402752796988997936874392217457679269274957014587916956871783849851959479411051692873370986911773789354763995274038130118185475804286510232721323462303377235829957940008732599176309020718465233131637535662925940317834567174982356512504659983024148982519957458587810009557347702896210133541878512234929929697883949049159229925789092173061923624807629291463485713277825530143719770848467557512541844184718771400862300901372611365639703535908169782947065160648902585970932950468800761754601798707628874229466679565105354076616585118825232716246258952708490226224699854374133864901431512035216290508930809316725698013370104120627232218747925161175384249095032923336233544914457851493477988632776815475569718228564095203690270083086385806705298013619644939075477234955668819025000349786548074074935887373366090568679156942187731463900807676720294455135943256009729345072140768901508177451691461931570583358373963236131486154010683119643935508351869499848457531317931034238770614916242551586208000553950972476805753634521163129958036601446268090874047901600715113190264382925933030808911071446764851430674769954945723253550260265850885855512888454713224058494830311773663109323593570214414950136515470467696571298702204231569035787096235343878652507487619897451109247927336470827240393531474415136784122876963679493821901472483304379721820776452960996698200835714285571600344762430021372897929325759559854962590042432463258055663659182369285367081727163872697464680653537082686853093563810463888384998735509780901849132243812006433926515707741870409275011805299645928498394524699990337059561308847935158750050633088799894727168039501039842798596702277065920340510757396022395305210894343549739033709774954808411045593782963055215767355727283779769223205543223267893933632018150499654731852517589164254516822221433138369029978723604673271977943145128770423061528433414079020863978105713614975454451592886847015259890649990114491428937021200019398240617312318593364776047006718443124113353820154061299452894197170241222765334064478414593506660984594780182161811394937497747384465397729906611099710238607580153616609656601144472533971904890680503929827911317765419062298467572672543347167757881087250309588741189976224677920668396750399748112306694474877329875476998638982615283596650806321501668089405253175194038664424968068948030541201233834462567812328255468698264085790676286609854745444827975531970235765699713880439360457600591900630331214013235669783665816273220512780904138208623192066578643724713927399195070035361692093545088082858596924242208362965108211177480564700778731710519377931732358420427554722869225515972589384018627358029036103183625032449130143090570030722164030908454148976348796818816493397653338062903613845568977435228366862628319094344264135595523296884547730463405174603621546938788447772544546075328368115584029783479970940744004919669523358613171448203897217817615999855798568493700313108213363917862894909016609084524188025559383267773792689380410072148463427994546749424574671854628310962912978683788828787733160693415370508827002752560839314582236938706392577798599605553318764607833097572055343786305076708069412153660919188090685272068058738725596811471361752189953566975397554638446972856986366209594303403129439628561636664845185608739259877613088634226385093281729367414378822357952493358987377333318596181937726533574557912232918649234942667773768054393241794643439955475437102753304329115166127798126360165110868257963745574271928610130449312097682510080597839642144989345620759393751698514840301203014687226210499908535850545908944135436975294380396267058323107324104291449196166827713044636179246091355799503917947777646060243626251598076163528325451345478004690351638714976685637702180701999938764919201426759962363958541933608563574770729649283133800211606341105720941332343534059495366856694455982523489872976255891734201696109335114146284093445163954744571436427353561873520996937365867381235170076399733808860693083019594454134404456465940976879003937240142762074521845307944954655802291949075843202085370862171933938708606819215045766011719868592317060576978980249594217052765400388143983572830794490817776439425801367536723602316875158202424887548960673118629126752999338487617613074352649518380831468067361204918621565696318757545056504417770803929422036584884916467378162295431031197656757327955932802801497621855070126192734033156180147137136070132823336732028932517292534257519817720609832686760160364518798223133136673802843882421890850440882105722880013267301077303517203355632635459490348960439982796515921357233411627601859921066339514475931333949947011735900532869233950634111160523286736360897669699017015040105945842726079280859122145529570078352685343630618886912415126919209148744153062810383806257196684017103272326244422630657853228135631940105210310374409062986448528843295545704017048390210404890946211118784003013802653307593729389815974853600926035604643670228536980170511221670375917049606427429696077928667841786963184538088972899814618603984209202123463782780832663239980519905055565552787377897728414315221884065756682679073242219840188647501320488107391027808514658385046680445341589366869784410866383150983362785763039121357422287517499311935067583297195132656518211210377228472283925537807694965907362837385457476028122690200289674043602049694981892006104052781946927879630700887810768390135085911666495553613728334816243073048396261538818630880427307306269484699961887089891764428985939622531495312725513314679607562104432894184744506143045120288716889909683885304160567182642086685340400447145991803728494715596366877852597500285093655515186357271728693367399141906451320509381413422822327356940058774374320989772293640930020481435451207979772486381263411372839922011754948015698991584201674832150222927151505678429188622486284469596535513018925943649138085253974926842748563410490789615418876788186779678337440691248567448312284762604332884334907022194017442070240621549452312487898759400240232755203271658012909548655478949265829833300604629107279532105529226348708602446335956520793289656804444337942465617949356469058740452436308595534807033575377250900395097570055832242940118533069755472746085629768535972854807399581945814102252087296361651600385161895151533763649561104425540059240841382160442754287689921667567153264173427795619495473951473230302612918577561805353464234268001263571917211040787168450991971404177228874124497216100467916577120579624621107537245020989087872060723922863992055419792903637797011650186589010674890378109755364283126857064255017501781976939868075383602186328339574338151520956802836265739767921139960268352973479638888936405429869868251730303683275310742383213361650034357297409760156875404941321043429628241308220614831450744636765759771239040950411291289696917383604309528512827581357211569241453469344837960521334108585625657132973084997127881584042252447863584482468778311038903546520402608098642666399337629012048485890759735683813143428809685136579001311457039869378132744707642656151868863360440039328171050403414708658692656615286384183961289494117417724190001826590540089530799631705384472852780614632029450255908504290090977486022096336695611382939183723551276319980512755520398413522628949000052670598054398626441458729543887720540940258544910260791893665840262860619661956757648532820191343455042385960071134414277496086116850835178610525978048852636028544799050290257189747140747864791142607548290494924005527108188556266964101107404433711022824538358223494006508325729529228620093125664307625214361339042809474187412940760150696785615401982917792511237175392726655712175472144977959530556093395582767289963469506659016008255353169278097237369684546769203452080028466083919290701446577483475985749789648739512604675650603856095722077919408004485890629790134322800764650936012736002237725978667631532656059626509219267340847275704911748591913034156238191124048369407862485840574345445252817471366762238801753065738712882799890349974845394409032968166682309372687266792005502107454001259369183118455974184767607240691490484188446230507922640252273956993701261424838278128302798068278383982477301030071314997851911747378614188876341362325787352598083775508871970442374053192310341642139718525213122427115017442905756978708415744071339572408608353715822440102964733083436316955043743480523141543341618327875999278040512832483633428034625708348466912498070414514822631994698002506390653419780441915177291396852680007720259384789326684618077648631739708531462618398241016010343924643826452264225780017845242290786396771747506041866309260204234377587905844383566828796461457390265958110525778454580284922042254638844931944654849737686360881741311638857678445096615563196733947114873559059691814304900915181135021368244732983326975136748749306015216043457880913237582558331876392315577781285710760047285814543643443020764481851892198598519751525907302103819659718409508438153468913400938149623724406222267080909445043723154121123421103994817564713244643993640644940294980767114212629734504889777448009224255804173045246976886287152021651395624945926295583536405182969479795493596658984540850439463695290705009609382404686009327500894383241362126341799768390844595500002429949100561144985890905301955622977453857192711263805206741246973117781209956716096760335706061722666077922040399157685911640882968527958394138453833643911814835069985534408144587165343605611002604885185743544591335735569652461855758845496019827494605300239043982185820255270027140484445142408836359962347058150656138587286514657598058330104214916137616731378272194377459326337758151991453874532892653552321504431898036813033424329589638586380533429339877364679784538419900841069476492979230347579340396122082254614962172156713634643505378237156437867161602504043013119154580501289247156933521679276333112333295878279439664279403976519856193217234393478357177031691536711761611515169059564572028313953147908252415903156631981838806953497089802711431700972770585601700609443530765969118522633419088452767101868634659413328319379128586162684414014146168048171637594072167955570134926506277617825154973294893448083228392424614326764615458051929539595019124958738298272856278053013203505838115727291248008796056665587549358884141096984795246401165832200316854613302952200516620820899982305452732505022671621328157949173782774257290822654412714236288344879158094149904412304928812206441132924693521464249445213901860571094301115570250712075036044742404057602773692803719233263686610937354231275831221188377003834169905326744452391331176399660249636509015577607517853079339915584949755743611868406694567596449727032046287173978944600525796543689568686462719755729045472198132602908187986124545898058445715455154279180383065768037894686840729591752651826961488651090089281417805987709504100499297296699258155126700865630481971326723898447607617694152000144134058702616067127574640173172734956701690442740393801947192497373334564984100621296792457317577106126818080760341194794920886070196241028765865298052361743747404345728219905868602200313946211961843624853964401793844843442534522785289750781426756528705634593392661802200264174069177167989240368336620409332336427965298256942401533506723355460701757105639179338778274079901080327046107542187551814452560992068905559215406193354605206967239035672598512108045449511394862411268491584559340498392466013239820569592753478773591462398132088381101670834731532468590258617011089719630713687318177797821426148499043775514949434894634344207305721988372647486947274145477915286000387361945044140259848100747273950940440815781015415532362780798220112973980169445606420557488988787449386806212053084248538184625923468823032043826889274015380873083263530935384635162154001608513092800234976822371403518857725201209072549400701463530396880469182384415378312495931648305541562172326815918529279358547420637125237328866251491146315592161234968568427007611803701850051554739883255409360165602615781200413372429953679192614459062511782307124176410898091064065393708340722326023913518955384311015823648780731346018991988853762941300662024638491514278369401534817621748302969057146782600228085721511049498325648254285880535186025868745080446245747686461387170544735020076284576808940045037243330922477086347814153751954649589899875881275460364435848800714742281962321216121050423802919285138478228463170235352901821396948357214855248935652947401173786589110480786283253438137792980863668100847198925814066970807335697718701407011329554892761383933772258624781467438238756055760235532062967484714815202931976079763466998897813936991603617320779918602100067907049556415988851929888931268453337113893035780245678283273159521290791294377008771355948460131293079711721674027576181965555590723672733350146008486474034803429747659004867544500927376559655109653104581328447709898408823317771744383749659558837368778119175472213337341290722089366406951398494209817888876783940321244821864866525585518663618401665908955670808747738049059706095284175733521856992283485245093859741738817112562620441463143724705273321302401926297156466166634021411715572826454822896733850594128434935223935694799986316640087543554133457629578380048889260235418180169889473507625799362576376622892746682608198361033730615417452329244962632489498162906339470647938024676611173006928165927039664897542232979069133183076430101329144634001717341727421169929661110706924938603572150794367063246026306994443070181702526592870517902064047120160110781069861416257360180604787439022277368406538114289258340853974281888338847987409469270291291247458785427810071651861832855765008529004759862610731138922750185293761735167755001303028166662542390260013745407443454357526270916961787363292124093321687794697132854921204345160595872557144743521096294736661681700487416846175748153834425251794806374448819617281354498909375779970294460589096967008620332907710143131668710831037125854080626372648255049248611054962428895684602415589295963480736544733117497602160455663482092861553750898384106050730180963582640393531355490876971992138715604468161385418398645721923593851859732500862257345476318227680730780629957281979270988244679405856489423885332732179523726706935615161840515402188369553030616100521110094151189998894136150802032048589555142731896871895852320086290507822273038822333764775010092479387663290524807882349470765165522468603129853343063117194430501037425822056080151044836644397638174551141084084096201007234671310704432328484568406892850085446949444541415702998447599698531346636466652866455908113682403104681141896267191145868889209556593812402629176149538018838708447410217872273247170053971067708705969758047448217546128391216088145410863121140331086984971476978431057206973017661163945467991935988224208465926279174157583715293409179135863126417678368304112279195616487400824966576983282053988671061099467176215301135954746353065241011644940759310166870703734445948572158316553214809385346870797686715637321535117513261435661545860396750797895353610354003799020015087285568399704964421038888131469612408180552786808615491953448669220898123193008537160019141575589044080680773941133788773827141794707599751557003630818887477779843338212280323285874133791305991782249922987855146717766321905793824196207912448067661767718602914193148063462070544218937731078427474684754939656960909759590642639852800465952380996018319870376765698274888855604110239731651534898698605662381668595417800858447349310616015223231791232448335040196841832555026145112554794804327307056856093129755545569575070441572853433216785232253421403354572651641200839994882784833118463916777017770457186273729748989196880284804145879966945566892711097249649013387389334964725595100795659859464931581262517880616461228497748806746039844597089903005364489731186892601687683240189474347069801925158690710778470551426380268919985447456321888979344205877978534873281682957730277371072098433996252513527184083517985758189709491572350007930509673571152944029464216868533196922812803369513648592756791254128562345210531151262779040226344438346449303507948225459890025441212375675238000821639656121085045904045643351709079725106701267023093877971137514813707310570419389610370506289296745273963176477940728107728894451556451935705342221744190305251697057711169707566771392898492108451086627536194223493370814427069139952976396961469532390355223533121190033613189275994263972390760474211048787983764086542374713250536519784805034346104328323126129647584909480916247404234217452136584477161141577734460956944122883147094450433242755651247299594896271526654659187456773613328919474044696678066888839405692601032417302363746252450851624182763465540499176443517496230304687750221881048556459126485955722586072650883149391599490422508369703475634846327534639092051634350343273559488091949475052091418051945886118999654293635448929127505153271779268331078208960953326094653627203286702519506734396209861611385005964912781618328211962474165491070836469275015691988448256232474269930901460741345555084133556871128719308350149741715953542117516746667867135825588748813505972715549423893226746529261406255298614718301567390859907049729388363082597786866744026402910961684812213443671127657428075154255995716552525083573715826424160682263948412446505079368418653414013813856253323762651009331260002945229275127572762362818991204542827482941767706469767647759869818015211351559401407863752426967508219069861083139306907527628493950612675188644808835063702384834551957712429897781503274465783099997032879184956011438258627835946949593103982560190968600917076421198165368556522580380843964272369989499248920861472490580002248073325920597965326222841582035697970327999336445572432268721667871755117343397417368112089138719188432988157163222748250089885895811828655524205505108103901666624943517495422998147506087848505792244910538595501711882911988872885360192029034034779418534780332221434709566875697131772350671507180363877158100460819740895628923962212950454412843150523424252365629459123450712610181801686608347018897794125741120661796030659501788694068992465671173910967014730163457249975717643675083307696500880053936328224265175276905647024167102848248218260404580634592871063951153530780106227327141221969054781776689113738297151652539470765988385195002288853056104532248933865517074188297997809992263834488796370541984869177440771957260093793232874924086400057412986229904148527706731810395560182106959406533367730892640923337402133741988847283750267147268813213718266709361681194019860091069033439435366243291851106853397983218359761484356373253389684661191367155941915410259808313133429537791059695040463309969040742203195327432572154855991862586087590737201968942628287277139215928035105704928622461074465723713905349803735281852132251607287151518177590922992971617692979350142873043616224250530790490099794598519834094892781439487935185084263705099477875169546715484593638023786791845122641725986870994220443691509986675741468129644845178205552089058730391487679809724069757398219294785493434178910565747834290425694150032409601057904526295382471950643870323551082789642014667014269363671858749419428644700833166491346414398033527797893111275679014188518370253861841448416095561663448051749058343782187213761901716042589789369080645325042419349388724144514146341586142321141737554224244915227506801494792474299020918110303735011432708446309686302821556519001945481663941049684070698918678623114772871914350940643297717313939703509861789194200340513590639644198344774443850770027399145073160835040898066723107873212598231603252654712100601764095808387355076021697529435510343216877854145632589911561943926411096229552001259225504411471928050200132120167796750933814394187407428930139546513922078078137946289360805048835711207106801981764765032572163390539906865644397522142752148064025258371731665262873003492715982866023498988420381952566498683479065306294115829340936179849783168602181377421124203441562238142340992632136694829185919966393076115394413177369821093209720413204956202577560668052190513358250304827328375926339270492233753250612912245258319618763095356820557391726171792910386406345214031114924565091929276738607815292120714636659233321837759184202988114721670308807492932690469645874581625605857132703550705474977062836147637382289515749240376169712793389623828958823159232378101216990824070449204326540673773931856804441740763541429506863813757243228345052061403457915516355073424977624801114549641145549722482513598961095119752255805386568398817471360995692615899204270817671292863338253812018134161599571731804204522683258517732797039888351036066819269132986993466012946727606966468603060420396782529008948166269112847100727715286021627885939496014392221507684271838417969707137841730507241027943191762242566201033997946801856411497723968735376654461125130974237667035416484297557416574674305438141994265892290108196426467753567928359527514059494461490837658853377943765151727084265457848748181286889367396423628196539977250796993768628043208193668930928643962565134317045727212022851733686512319048014634034017893966190524514052797193850615074492589079390781391773121176334874607654408444265359082701480708431123650628899055605210946622828224294779120915790072078667741219732560474977286287353737328858122782324548766349657452355249674541146013676375505178880788051182093726723408888577060599716228665215706154013175020303853320818368883193616661969209396678965520998670806590749052446355988169366470971396461982451583133638433178011792486936676860890647958969767483529849638618032099120497643880122904952285179055329535023736615027876720185556611804247437567521218656525683156073913372932684588161693314489262661754042187261433418658280229738718097927769887809822794520397203076637564520116515269095176539582616749939457231557456940581577357391419475528076916138080558710719372131410715952074448930986586267323750527365351736237257388909116036421617355235056995089746318545942454822959335344941050331179509541168701155932840337747760769694692054530905227464997954183140041229224896702710648904905742229696971855059246562066102404169624314785427206242213294792583909354614433865883076932445267908442178382085289197938506406016508286199876637731977533527895996889962296345118156416842513830762748255436091273960905196634409052492062306868114297566200899022198919146323634967330386491691069238855833483566512779781356869391442670023947476873095617404691758940676859529602577560543356039873652738487183457959910073132203207640488738106739334115235787997262304495976150899158301479670143890824736593551188295593139046158373034345687701513800875439432221242475354958421288756779361230605087706141770197020748135588615469629911730437453543222694820822534935912829544725205352883763051096719501224703822318326124946067262034952874890104443684815072306185462431153336924264387294297285140593823679648341157110478019168094301993361372020397618840600759451166055655963476865491531241367577785377502313612117013635795059852697987347600523288224142770604117372260369285590614024122912682802597476424586125177327980475432490318601978749608422159572576124076930711461729269329769527897255072570956873413984898173164591629571554795975319078662630052808748968534314942516883520656235241922757959098434447909641298093022678255336360210754231851829918001614282056474555677985893007962086948565718750311414466781993768961528144219701632441895267130799879732090150234156920238673541733669410484729239712980072067381924134775412340150966470702639537747192774626244269234276860344021888853720576769617024870116259099897089543978900144475913916192601389393957259665590590759459538510826506510072230137269211305557120665524261650963215957553112821424285327850315989915858428206787310810898021182130677184190629289444009868816053821478531793813459823588229479213028173258937196827110058972261840643224154412389444979862045411565503962135755229159717782246080364906145590247029882313686146881211305914253470597598694825647061774512180088862530620632182037550163506821881944328213599052977790360904105756753673354722627248930954425104482140948951942104994107971321154197969650609858446396042124743598574476897274087288146393556923019503997606701110710070947027307128775968538445083611342015190725847765586550898184405316502184536446808693633795622714818234250714344241767032433916083400763611476468570155539509038782280981118678488522647792650592170958562911252908009797495290656174747342704506670973073624160895887264115827091572913306602723399873177601886749875583648384132968181364503313918946075861396541302569941627366133257862597238457341376946161339587298231179417815164201593725340158414463952246446262219600304722982398793379985865294382091230182222956200887684098256351783084555867218288279361757014461742224938605155514063621607804230031189890341206670151642196809414451179101889273590320432738945260309920197378203840757136327219466270712074269777865421102569600744912425435401928543677747203781965597346947221465557352202284781622458541373573281448314441108012326673061606758053503898742940696899410809689755373334915121429832774061632174996481232840298764848914818643864195793286167379938013430528579565246562712448397529179651895724651193895533280643204580801022141178470567412740241124013069643212937548217874058513325090966235384209003862931117616638145519255924767182035166849259342056571571763178110470310259102574246554244574142450970806178554587096201718636981767967999433379015962824327714255013512631890636749899432939387529597881351855841480358538201426430973864050036410171452026658056292591990624104245608794995500221576573929567234114840141858847963019181628082504165139163574369748501574291116725938443211287716101168337848938054508739206569920291183647387357269093652629444467970588778218203697936087475462496879494118686645019647130183001887425290778552499436599689817760342700405418000025820257820093057433250098305312053631798658815768623125843957274299829841518749163677268416912124525975573977813941056507602928881146373535327799884894348275102488678458447905586349640965063584863278705961935102339580940639040841325566844297715732460105301246004806999223826152006624604551459526281249833864923568464562594263889481670820165514552517789491091420728109027210217074125416554884557037574766270401046087448682476278060097514719416074222076003179427078876443949664785897979424600022845988657575916507735508873387181630024505808895380008814419041206096144846649354567299944995424361060517081012824667333169652698954089759179873661813829427751606337188028234009594501102438015199614085928214418449445388151574781903737704056050062630297571638017306630971762042746858017701150265762586273506973117033960817688472133009285239602693584262342729637970793534884255587820905308951512221567558535682554552890983712621340368535567561395153017501358297138057536759238463904038619147437501818640561236838210636202540833068469710754280401884689200700529531269132839203715090344543205525742477908207729597775941144112381591416198940954762604536271466643791892761811279630060557891261917817958182688236885031210495771581499494480167445582625572787215628322493348020995874561661672889235160421471361550826355962809909226219297068391318991637752347095020391086230826668584810434641590150914360593546306445037599302177671366199335206958153564442800539467051874623045389973043081571180717735796281758079527142872316080804898073506007585058661902982947276555339077908962698019404606080170839677972916660220940444385916325166286032261952751672930272736875149941968619873549882458221524917189232090807625778043503142218207139865147042099989158650366702290289773414326244761617434641348115064223218483097230828721072283178781545521804065540175026315834577785062593225431116516992827700129838031885711603922599585244102671915335052392572142890586671737635381101719130220566994692510470426313348163770596228960615900066092654126991102469218812992986367565411859426188942746241388435109863205612445168970242597163911146728861048945555897761138567906913157241355792809460604143573894672197595256852448520287878179955331531653086413290654344311416617155971908913720789807041676255549575291339203892979285670369084790202293689249051182358360253992789894315556006477920703139401885385537732602663101208351278233254758959728349428211168320166447705956058684568497358893603588492573021742542174815168309887768048016994230817276023406355569752483516322435407017234364087072297278184386404433132219436120428756607271579613727848737819825117429725293820972126211645585617529915286808187359003112070019426201753661251524813974473007643152286992248544004723350750015198775770007126388936608830253358358230005669878649232606802732267865764421156788389439628318932538698431662821478986599426913549477005997612872638423930542118569677923987878871926528645412821299662238959696040046330667353107960024572615711600115901443008990077657283068314873955807778076729486883791584611563371862700575468360640510849880541412095494086087328808514778425431736038513903660751434585095728462288872953461830176044623693829764537855880201555599999923165589131607754416598868078387497025009052095316201802038448400125552265778919322781683970642446907985890000745507388900216330679370513119259961740125436062394155406480059587401762981596556054454090944920891045632502735939075661316552263412336284664296209757957418031419254872126843156206871958393978037527074468015679779263601031116544202228365523829890804411381771950354936117496761857153085521335411995176369307358871039886681318102685049861011436207309599019882604533636305469609502569201565812424311628231584527702163764110935898254145562469980573815089385056700392884812458013370309491906183320710323121186746450961823022413979858827856813374507600927695407622995062603642485671068406880348008981524554395831729485424196624474975737937225406593555661559448396157592395813925416206215078118346417612004659373034020621914510908652104202852601162792005172469213823907946898406394114283492069241808738979211079235564346160546289740703695375307663322852041485827334079047684401847665163330788254744873153067559109041154516813500115491289616492018787608657243471398708780212426725607522525073518712343215060872760770231557177066231403637811374747980646202068689567693369708417932024837255971756576065462834557843031014514754083926651665395871677603244199949115206757351685092827153219742227403821775692551348159313640995935793493993684560943826323915145702466712876333316921057771720262200536355946170243364028021061583935146903692686178344634352279504971388731566495915028122648785050452516189221061798523137162653486618444297739263389400986214157573281036849037970871666470555793655300548811365408992588021937507103410351845926761286300115547940647778096712601313358554833016003383808739712161411736198556931615712299615136833304594473405740969773898243617690454378469802932012380950866694010055796353283610695555084013753363248245359702710350145633537870320364867541922177040360872189563011871555577317954922895031262397069407784121651992286275452321312287238322173042909714421144828220225126817182136744271450880087736783191469149830317267600492260622932622969110901984515269914590343437987458128635961877591297572263970586069058438514715066671158826295316065335559572201487052329732949011208099218397485148994228158791344640848463314942934163769698248355385853234215242705148220291856970919193171715246151389151317256202511043123270023157555512464450091723147353964122504279151518375695587891743701759244139860675012935573730012692828959064342026594760536712760582258911217194476077932035845283234579511268541606246096893639351492857052412921462526982098224663370314527101979175959979487568520984608119538160016717136128127233180978833086766477843345476586550285233085040353931432527537683833329014206920188479109959551254280289377849025981424065111878788628444666828477288922502818549159443317907202216067446163126488200978785394600575017019326639322709529720316987545515175568272306454556574577670716605025145939346862140896284670311961613830247545314323501679583440280133294488562836765175802158011617224367348013825997552688656893942904198903269147922590040507127087828247176762879887055446953982621721800435697550851585925170364255910571175593503051569231032919175493965484131095795117321439880163137312954516623753664448514571672131038080499487046403063026463249600035143924492203938240520043929854268377140248865169506545956621983619479841025314051266020781553188895773605713759587366577143541781637606235560783240916775746656801278423260233637929250141241871695100678856141728681559066559292371836356542072914851173529374425386688679361460617736026117783103088116074482789541048406151111949815339886526216950601116686147895062017171058487698272867757951074384455497883163033781297849762970578768249033767076455865952869346530469742219303073156900028555269615289119849322198622098650082281348688474605761650057138498917281378040694414790711630546957469833205662039672281399436267406266540515110970300710981370201981543872042905165196695758512132351393147496207816003710126697602738801452794999553902769139056561902663234058973208597657856875657437306091735265913094384258025356359840076795840867615762951036487588323018588976750740353736283101240684645514343201054591621275274394410215032108641544160042349857950902756846182595297929088196562822771905088795593782113455148509462184834502041003007327712183773912030745159165391276460623780120395448831570595513135612227088485362239624428736582992900092966192675927388302317387245750392024761352844532992870545133846280013438369724506698817589020069937345412776833115205074011971557438193637097356953981553650500842150715479724471090613966327760412811418626224157246009387752176257675187636361726639308995750174722124005506639663881827420708110183807922850656635550972619196961216938336524170496548930549820253386105279313768967106888257771495846727044078127045777560756984537670845444584594908768637812303535003793520399043222824880016654236097579794689688913181487070327847076000418284547237230055646267317016627295162744313273488172493158615677211939578298990439159118034885064535376664250797801778208375354414074195829227880541947378949844035466940692885222757687705289457836874050842345050684022753140147317724035303336178444028394959372100967229836579286189149563962994731286935955326462826927774596502283313831752216406026274125367457286296337056487824269449537021303887295981383414332428050979455275802908173815582900562074001929484489923258791760223893200852942873309687837078500567753150046541290192313920601685491228552451977588634057012598684982332609074482121285687507191399683138475828754860817824948667084895779023695299646411615003658541489182998113014266255796714589585369191308597843894464913262967762368927010225876551820389377917893768608077083076441890466691341530188343191454937990988521736299194133848265777057127134418862453081197151295991900880760762712325604310221581346456486061313579168479317678610990497806451128559760689347508702056931503994518388374767867382785470263134930918182908613747338989420919415372751465764111219923382143958571567587540484538563047619878731726008374652799686193002679711668939776619505575774534778602276211298462265240839850106742195112529733749980927623761849895792156708868917965939167349782032435313280680845859993171120268929637305585611116774941997314245824237715597102308838191111253585777827004442657951725394282271346452254745854778149183601849001004532355694061178824973386519084776249778455197111836039365191088601770609890202781130282681975363546658061920434003988259231349016797254046708076314172008546002109254772683609611244897620288484529497392371606694210574212689369645324560439449183751639716958559204499226048409647583535434103760887384514022344928523830486501916612216002492998274224798515056096056581438963001704671495208452236132252763118489499955773318754438796462172150637548933836580337470842258564891307881742427453882826227003151559892356807830555410682055781574392146555355441401564888513806515155733906505439686713492414399698205223186854026834935258976411638530798245589735785940964970109771530558381309717694469297763002057661149863204782871031322323742059831775140459848472903176507777445397375018366958027715639101204086575980047888633582372697161879080413951405073074494627277662416526797906183145169556266783121426796679749269061015611806719887264822799989584386092653636493396200630898176227824805039525211816060941600299278115791932142784168935315788658416142890973937474864915974072348869195224027621725612172596312778601465862080295963125462705346344109896443180535206464238091803929520125628493029998211951628520221384964679429045324174840870136032910512618088753626837101025558433145333487928452995791530169969912367247807660346892172468753421760029791657306288605077219079228657754201923794105227696032340749521455130443617095444734370258813760648178680611248445237909268844496787641055094578575146538557238847475927770184427695456441123479209828094992827051792379000818286326094613863182643349150437985851023027134025374539497837577515670544976076979156661211146437283893102274440755347649964513558462950523558721079940644952995586446531946631029166638464891884996902556378094818035090065259081775620278183468536010306337489406533743673856632596812763613091645375021537037325608547557460157540357537996317544245466839534469790891735532271606386835628649701056057594454978337348878302185681426076947398990357235364336934415164357062721129768586387455065251803281527372820914421445078568559891225814239302442616614954483933267110271327042531888909033504574313617683576888660573826371341777260309013011565497697361933378281168634445655518618225412646755163271459183739735937953864091538290967267467918719122789949627721413144378777658148961799442969893385497017632620936654983335240071293381331781325723742952508412044694186956731801430753659369533696922969051650523235132255558001675301749765599320988266838614450892259906531057479748548279191562198049424914946625244059011319173033830601208751012069039019024408633970018548013310307168080489861002105057105552728448401239572517612324861706762641941406053043019972435101674700398797902262382626501298072497566328305255051447771946233963401573838253642599670260884597701209783532815488006111960086798412127644079947451857217039541398603685746680517514628408011214803024568863045579207870848209275294849616962853224550924775851586998554479788686239383303557229931211613572763801846714720073062105115192252653720797127540253155605552743920907885132158862795722133470785293523599314951849459887909115943650898578530733211890854734154265659790300572765577357465541322537690276373492855117932119684377441186022336772598693455602120596849035930513398768858069845332721794326325396027260365016020190062884601228113098825865673139514166526921085581298312542712083754118195612022916904852551286361643044077758414797251812761923580401493531200789456327935035690173761363988124277875245916148432326527808213038100059285324487376129747755248287634671807471904892047621414433041385217904217152977657999250442797408315553621340602934074501269693737558017307342199398216130738590825080574129657292415258366208593683803707327524838785176974484276534406359825854958530656834874141477978757424001436952254136320275609893154957496259876638471939128698112870783394172961419151456698882357189203168064105902291249519429921426769890324737610065604024169203374887518132409914687596532866763432477605377863829575786554844211850235872628712668099462502748330401993153666736998613564775253149619490046951760977065646176279914356867365684119254905424464202810760231656933418657374674122203093483314164520517661264829602933067599396482033498712279436280040475956877952005015749891214721209047846285773080466120150398690623847844676294807583003787287370434035784061795850635795033986367195184556611648579903472737171046013526435871061638814712625063811894284920327950990491021780115936314680534150526593313646864904259106470244522652638939200137788610930233039580760823587559610159169325925333765386045262607121386452137568895966911502418018829850066205330222234805686227798915033039906835012997681968192486677732939344657577830140888031246901232350237407321258033508080443295545378759007263738697832633232225430420403921030734975826917987131723768597556168438047857444941677937708541688453702726268737968709226837653675851580911230307703794077830268011533810255752541276746363202734911427219937741832737808342834228854348916156218631434444710820024136568872832188208445475415143755061997168644761569341535826073941567748525665711696665500520402424288963529351234650016002941520097634369359301451095277771534686717363831955005648060881966727837597435192242463437165599981386637678118079740273749617436000684706795604684409710813580623339929931531946233151859756585565626176271104592271092510073217879225899808070700265271929443397671883688942006039868465792518505728987677102318124802410903761030305355351718264574403024162111783566238960755787879644379382630232091030053240886042202739946491612608608462141316110613192362253952703870769506760045874855232402464412459861446594920657761921791144452707423983796366501822315509483810053838241314664750290026068244439635473754326194342333284184884839146742953779560761961893355667721596202247044439165667503445784643430968078430606799789316531272535962852722638383927560680079982266845757547221125543707518560653556136219175006817693092602610253261340724686637376112127839409067464079144243953899629416917057997216642335205920572156688017384094768459397100195993856416018260249400366019866694950284765702783419543028428983008656895954833605614115132470387097083998803123261837497358125048948180916060732069876091572855685244309259051695289932977732133018391185846292595169571163594003115255862579957488651651828977490653646280459693374163063543044751817067844774482279274896730340374421861876829615867860663971359489851361495538175183637314959293736736925002512747863818361819273445349121244249115247791352142171244129901570991515583328036731713987209499088914051702640526296499168106535893013767033873910061539380983921090936253050582200138214787252430026282842285739199475313326425103880372833211417977495017026792240873947394650564831795606563835489245667361812123918619136730996471786116958561564168148917395029123648472156320758071594646559156564380071989943130059497317484938421067329959032431897531209052826884986517959433947042260047795651876246762540092940901990071781649659687086251700282113614404834355628582249535887869643105747257370654505686196093329785875468632006311788637630704633763156652510248953779205301817699576502159251234707161784458538999308735076577826483336136855601938076665735033794210128034507750669078260442836830123910842840636382699107134889149964544083079285282126760230607973927723887479026788145194738487499405178803427790497246210832959780671866585829790619597717332483180371280148136330156939778605026269099524344944500519021640188799215653369309669971469307686634792926271851823669656180130117194104047966177572216992378513911541112967790966532769557798078722227443904108257531229743224488854072159743322059540099165554825442572324919816874678704675522850175848045004438714516701655799210953691530317861747965875210160929824448542811851213777284400041800550572471468831803767926741984771068018397102869871405347516082822847932446467853912024657295545370218591132894328282411468324131979124400118481604585133913017211517949677080090597358462351132729767103663793405691648998120619484227164456626284927692873747118535396125190364444620590531697836954537350164545709220032608932645663781140894873669207263122072775809482393878299385008345496068774503997759057739282999815140027575274461039066352059714266615954416920392626986524131705427268295972193347875297365190645517948719813885313685597960078990311328775481676013881625432283919678204688812133016937919109265012103321325361899162909675905666079649992191938949278356061322834031380045388606082149820208402294618286968798596767286350569714157708916378845838140852699269397021423234267216444683228229394471115648074418362999570312619175074733536350295958604279914084377451522633208504195980583479433017231071652842334234316204992462508990423019398980892961173111390043342002948235913640508765598542851599969570428743740258290057615289198276534284273532070075046511371575445758117639198768806081974500113690028887224865596541200810751285395271383518666414859754932194962701731877295150603545926229553657015260876309126227493011867837046057840509301424226773439789656287600005875623654406545466630544245017756783082583888300652256113692737559129541376843261143164648330106626186118960946553412325990608153899044775032536751893231025222997244993439892980274979558470261320926177218425099925340370966231744254574249013258122701931057299502934185415070564868418438282507423819966168260724910126232798468304932270851397268384366580395726585508228649630853072280191518789244791449701440262741203987657556218024713853799822152864469679856452623732304454495615323173552851943074896142636997790737997220553399143537612815811433612748151297971374992991572346464164605256971705210048767956796037135337953528855464261287206092001313836328530481888070237427546155851734575378565589746321131412725999209614218278903656139633055977193548763385271011730243878642252349901646223688615941747444502231864971328456529468155083199563041588465742374108363312594903348101831089557951262246586841520879209268762505911870879998988945917121652816529211414408171844983097626125483385575856807019950882756320742476659087396860966533739321972747132829925898774806938214369927313860816868584794668477125717628588150948345681737842617987664469905482724591727570687725796285308843378635502236025445213880501275281818275034448742421267046661259203174705511520255810892231704898085672910447191888233499805154333642536282765401388443706829433836888018828789810697057730373878360521267019930834373905930974141346128423195548346439666651182485562675563495414629088160948351396716572068058811479856576653716639851929130428252746903583320282782158987383926284036405201652531906796452799010181061208748598288911228138778543210881383321016789321721316986371712219696362677975877956880056321547436019250705731878763729793874028174886665884166945887196167443309141860992649712188217930319744989376023085087180201024440546229778280379108539379756464407444061262303921345167932327824138538336648822494864236492094852431397938485875904874411532585801392412388573771351164731251336249270692178618761946748867124615083029817690061357417432323639641584898535532821291753821243656011384524777990482328908905065398324727120113415537414379167572771755714612530246145915216401544144376301623904936819555717028033038355200968254916729266540962820574752070883278835415941074175879373427061863441455232739179612469081956063545686066636435255461267757220417830483737569867012885032048245276028914588669398533257565918442988208672997122126433241676994649487888277051157899957389740577915791186246398853056792481362416753419423444033822926474102414643446186254442558829471312317541092383344683379945496912834556731013329601445169674171793172007540648825280019610859304707583928228868085883619240573050155746660112700452054685384074767310357092447438104673026476355471086988443814938119568223989077349934923594440227220473491286141785549394122955341056788089045401684973658043106525530185252972469861373604162564123228808065719810277748293576221377655436932335028576181818571995457777137824582606475471567259861830365200022713251284673353188493889764486239819000479776013724380479973757737596533083207035818467343867720471317977941122096771587020787531306193437101129429259574705766765700501410899528338018361515706457835059130260498724884495212977467698028916408462405388772781339676469423920696431618517914876798141621620983648857313762300553644552167356808584017226053680126351342039344781480160031390424103328749479482534211568519281826646453145735962815124681971676433776605930172930828674058535510727460448245839828780805368175303046140025885406224414445502153688858792390037168076109571095337719012391380732047855292101698131623776849764335576092146393734815443936634590378919378713958017338749581813453837957843851806643010581845673753141345124792773735521273477021856160319365536012057156246752850316806214343431089595386576765732069699432117903212589850541052019443040342043771883386879797530805431250344476201438172298984030968965463227957173677277818252773881258342210602148958045494373796087629612170176155727939222672001792523626168614532344367988112656519961783695878632597397107588873566976780916755369785845467681386721460005955093396935215910812305191606392718068646823119809147467664524811116474692556345104853253995458234939053079613050975850613043788278097328591196254543329933912907084674971347486740650733421924744364009184886692765177305726359534798333770015083247557417313087496153474076504069424897422311907181479534295155883825549535215405601072970491292117220058987366631955297413199146956321915770462823680546427162574561315964046258021452044336283796852351067054978659042142826211728620431880167119726895765340756037688046995611916176317489523791828229549929794949654750536189851651639151406911390394316962824930840652050925845909283690248305053591013213795977875957436952344261551667420613043209961194445311716713808720015490551658741962394314306759961610889789695705374371217704976169279875529897472922574180100702602999367012337916623991399466678147357115403147081364927865740389295553396267431940804902966636301744292240097967324582527030881518955148950323796200319050583587967000787556603649367715903696618069660455085475277405617363948269450269231983573837644822219373941116069914989969779400584663571117170057249967681476236450038180698791065546947400398952810143089403182443991777425574507691036347415947967180509462852748570932355816252389486820040523058526187885126722306300511591182608251491102851099060237556657844413443269878839175125073532480852809090767618817254354596821912023654416791338418155215840253545071566797102417753941043574365967840584939809422879737158896017595692632054020783490095368513411141143694882418375207600147669132047298659538637993162361590985342151909693202572929004481706472181998186644179396816056036397500914655255667470564638434647439133220233368434131378407651832919477249732244418831362064804470710031687998815288569167130198094979807099722141605309542106453552653525994796846498271775595099289037370779768020981282292185298673681149642434148048717727505161568650870945820543918192285706394254685949748469221891823286569228414014510455067262471706721030204552523389743094086402556236882220076372907636333719280473066934368255116399535969725675155287709077687618095526326152457521769393962818315207990537736724808907881793846707258699260273120436392276776985885331802659473655693687553766759992178007067282522104278998844074920924388987127808774109238384966373532534460076820266463092473924034848976228802542874068915467214644144363271344929730065079727796796772928324738839643570489831516218379219836532040008544462446427396848654326587421874510182177785354729622003553285361275081325437690396801401312629628306568469674267162749885591121523772113267864912363119299002010218656906892679605106894096596254582260273437903898941302742289615901658399521756810891718275423545604376283131568119974934775395138994897655665944149420573526208398620033938229980906506860323785123922103036411800218741571220232188765445929024812645975646517724474259741768637878486894814178137986089361244877217581430953272295863513135134156418645795990915139475911510515178251818087429859570326792972421389062449247727558951874961608481516005122902974230458063721236988031768404592004466946500915896874890570173210029376885021137750097474569083966137766675185350208162972267725904894174028363632158410161302212022226338959890199925952730824734084588866230027987512911244872092297506477338356515895127939648148819244177482588637173441855853511487112791159825939676735124969083126128448921393142020312742287260693428190741112278841027178396670773837333304992005644378408881871410856956880450285144349979818911240420891627305219956053708952416244325330738008067752197474125810519844096711105325324037682392443705178053057244227319593410351965996702882006008691838481327381361960698122199907921543826681076798010005785014994134187779846864320221701711369086704681701857098747268579275691437681929721394002976387427025601616262242462505123512860395210869551440657970546900700468312508953895757189038157576888695041184758427951116924849953697828879350594623689805540562149828239057837207875027171093986081157749494852115080549060503604941295213219422341947742121612517162222800865575660179966192906821901954052988668298543610027264650254489425318877546477457408185502661952481198501090469204590903220193628726425515113060595484897137103351728328310645176276928891907424129933305288571119714061610158708918320863212058487723182475909821712446378498163413223646550255547924219197151924990066209621138303132449656431146242818867641552288284969793702445218475763037747988515279542301229271955429144455219339517670370491905328412809965154103780963825613380765158062852355747185210485272819567496313979644588142091947113852600649726284124959315650831073131006635073690371200122967828769527504156486720418140219860929395063089952412394439916016532837991761016179358107465117796496533908971953522960954981548100323420459196425448295775906376133062250772230266953552135798794818785784978089298906208085856817030213709562100432462860633005275360468012726491430971408824948244395981514255936834525816294275028877688710537458721366080361766521844507800460386671253839983855278882384375148177373756871076630700502844481777916716427985643139000848006556186203395270337095798943835714415935035416364743725685864056302800883760865613779706982899593720471487068206904710017940988002088418716157100373822773404507848567991084627890442227091439489267666030067541958129906946846113059507856456166091885818117520966099809512263989524537999761600188921571664675292951412924486026124005537704985510539219192397647094260925802092624208300827357650224778184699573976650239920228943086499636401252602175961534794162859565776457698162993998913866063790982477603408565045928751154428852003955817184008996846219916641162891483294081755686047129186105811940707183837618290186585214960371103381865641325109925706400774124425601339765315770068789583801172516087487643178914126800053613169084308106415850600167195032889889941107937812458004147638678506434078622123709036639309615675481769502544636892004719410699067110985197219958222083212714955097087706917844230926344458395773513718031571381332135098917485055472307722121198373816228449936566894672430014294211574632750500362831718006031982662741159089454761326359536307753381836113101981516725394702385795407391435332161088461439392987750966443168075041452318675044880706248495094942097474895336059390160764174323865114976614109291755916850432726126115865744897456178284575547096926914885239672272506531824611144453371800021364380569620088650566595386745187516591702519928790157215299434910021311988462182457526598154382656280298419337744997595452102124787664521619798297803118123313323227487278619542797995604219879113681447374940618924788055037647752873818894539389100568603862631018087415825791837280548674459093537056620451015803492732940235904690538955021944824768525479059131369962435021291730985644853596310912982254570974846768056353341270140795412012095468082399647540361480937559650243529402555298467635567677522187350417960914576897511146119636604026008871189303702732569809405288459744202712268252350073646634116556448472818366966825223602421145613634766801360769853381013367833986130294902429985922638798269987634903083993159873985406869422533103080586988824140565147719163553618478861277175875726124679306746401318440433755310580936586303328194759768787789801047884385670878617624681078300985052923722764435082705632481405398066347472540526080397687728762776840702513628027292627631547123821767985093725563832006025329886148599736851391367894532299512035962945678153575888694241205525159283905487078919061940982579908276097823112060418202618245998737515514058689425483236439708344832679115729764528079161913351330858813152426389661927719518766938504866228478345555953828678220527830197556229687483054526036747346387810189101158999063073173740740108247058163466733841940474008911846178994742214798211795043442947534527481303371571250909471882665260720352267713684355203449598645091305717360529085737733889001419795716838489372650977477426631972386317074311561411008400365830217661955584448329772047439673418148459396953682599259173579995605980026732940105463833470109298400668934167051731698399227494918213979257345022630995153874412997893098707094264287136703554929616501925210318060040073675734034502804277791382297923442093706215533879875296173241134455792585040424185694449583129329006420988803897248391293678065765709657053781162646315882825525395977353108231493829129028153433899189255598865618205127907727189674063489347454692064806020596315922042336129664465195531754745257909892475119536104119555288437016124363678743804388406363853390743655554936588332711198182015781894566209961881226663044685751676582655495661367187437230178299879912150800987159154220122028888651843536755964704532092666493205130716575223361629445619082057455526945493492933561841160109340751668800209320285747191214168204847794287864749148903185736323914837342476251618605366079343182476646552154163854881024055294504854152055182094425101384984923523619448475900686585552260475156645618230697149143784579224766465362108609775840876178790010773223704531454964581291632633103886862212855997910684898320371243447218748181123028795483276057496839731541231573437812382148640746059617770497538075750448773265666207537229288650609370498577869970317132550885810552717681462320467136515550764229756329932350230098050293288352131354638589700571789533751453086461706466711122728456245985895904443031190277929695697614481475397235438004540644057146819202165373707482010039088413931726050995110877262956621652978480048572548798644041731584685194391095614821643906733464476461753304665506120730530008992610705023208799536880601108379806058145033685290916968837098467872081421932764433709839043380695575827445627720753524021110053480780291761949043179356429019675967470957455653207877863930009664801131838223666780578996168624611469287268976421275654340107498318553475300940229536640304237767854016033442518492734896651228195962366141425239477738626169055275277213733809859232531929267179040622390476919704211533377831078443514301600279285692920217310322541099280759577984119889196950705572777331597755820886102855427940227568121365817971911591450124537876392149570678101127907154857536793946064119837224592199311752967258351619835469757380605964671551193970461889135661200789026471252557045547480290009322942557100194278831587583529802167884903847175459212096522623706179903825617057134421371052732095765693537675991362626561433962852661906234118512456677182180575263460435189888790711553808221906411420213164450389182823745048294474609417194251895515446339343509796461832160986289967783292799600779614857125884468610752420550304896341338374745773811170081160930599642731036357843592819523110023750094604478101843672198630591714817164387660294513768808348575192342160375526917441531856941242254657311524044513895698990365686067758855429872273401241938861597279974327589798072470442500613898308201118519924255990418731890612637706120037619343679581511772331088204677750665758746325684156857222241284018974522382727631643221760285956380183580341138784361738087697640836927475253288284447171023868413123356396588947022393619579011661581920561543558682920126280588890430770055058255748521841297408174914701916595651492909981412469123366580043359339719209676672648170553818722056567243127447381269552019758932446462482029477289922614814278164413113899547319540202501275579962268378031077468647833307701543223134103461448071637358352216135114362843895224099449266804642082045264496714320180249947708681609635746191868233127301636181079199734737245882501563237536085135272881154485040704875259718247844680853039316118181258293038433061983807436369252787718433973422006925400741296579630645115376347681607014183838025100534522079786310623302018666555293552054976874770237150757751026086566145282811728916812020946023174878138619682783610686602914742756464076472867422276976540390217066059350126260648823914539023436858996019949227052982374392918047093970737365095077385536811030069255531570831357578020817610039465883360413029174705245575596563967267563027166641730796011037508358843283008790193876774132178169492523996419409848839109227252564060802089766391396661500420030446729498458351496654517161366922221454690343070290508958024020680204849874824971051224235590702514063165641117058212924153827200404415691761509047819575002114418395620027842967536528213418687722792944376197916041636851040065788632428266280938093820884301527833215507364577598040720992176038583842305760090142449548408927752768847645194131138038994096756558043883124942016156618596943883465972615157107350363921874644129430982968667778095010846584314817752987227473966216648851549683681398800956381199770847847343989727552882102987250078542525070745475184622516388361873763640982678039841193305804887815282504791925073975429142065138521249929076729106481468493207402436339515312102649372565949681531173962023335615493092967075919810315711693096215741222175318226118044577687364338056494437846116403778184875894492516799029559365802106202092534817281796956988612939045701485664019434868140766534190826635130875658469895825842548489652073237508036914860501733460947487948281766632840159377662672415624912978358035393603746568408058514018760332379548961611117565959183416086802907440058286229139554329181589707257655179454923316297017771826451893273630686487670120258269462962704347339552307605728727337246544453029320837621697000626751287709262970551939259028272153854191879169611173653102621579782243970996940365365156522499809820212953206964743263892864286732309612413743285580543926036912027826869132464717427910941797395435586844723276253272372049527316421157976833694585346251165164955347169086874018013334181076464508147021795401012971937973354787246974403346085375069413069420019388681267076147926418364850770265947507086663019966512249078939594100265818079610573304581686316821662343143613949369960167682608513432312965318962763039355045260512181405121580204827890842017784183051333553076781520581667499286162068637321895759071630795516718142315684063508019132204689675173783829463527594703401499905321878330183012935652680360444289245114919993396423228743611992792122490076129956917087275991872188280494412004649334656864129696994451295550189528393453076227454983668687804028201782530056117036252297574245116896214736507311296410618771318813084328844619688286450278631451687862006128236740796273488954331088627690317669125417877715865960800567630803933907994546486364799322860281071917867687845635118504789405106849418134629780569317653066302184734846964302524239476930358734912272877910409064403043680746130889616212093017708004065219341623128459468169395780356135334330285489554242086070755116367634355467803784373960576993853591130459295036948368950891503032096816248895973431837056003062878403801632065490876551511259523570958335466402228945728480968921747233547593992408674224238883053759621600902180172909113418417719888226263061845239807617964607645214396377566687277371228608890727706640843955027300237104154051255464778664264250158698705102533174937373550622118570033515628799428874632888316093781011975538403888369233199644061920171632608782633421768099311958342871943551930719667054120114670028716233380214289932677428868653797258623096583323281730100477706039206369221813279672123772567284730072795265429175406592418202953648446590215992013180371780541387896678886146652519929508648020542422575421705664994670374248657514920196820075465103142274652782426923702413780531730659375040072239898580517525764294166178464789976188878275462722249728937130897492543919421975265974307633052502193708268971346697653603271245229525364163343328718339442506038544806456088353716650843891472076714410035710998804599654239717599925943126176045389522088277915202064210785522127587772636918574535870110682299186095986065438578205598938895917685285893090837800703403824523849452554448444830949983150316652574124543996496002492320105815598635525037239307738703142724159653576224094139641560526187028450128329519458535917384816821381513815276355550900408567570887784750882661171792245654064170035817872453653319986265901719196754611436217331036696141608397889926467836591833635019140849108302970718539341686020152522620853385621199962722373035453427826221451093110089413378524070650483188554030417933426627189290108907896335965764900458995685224348471772106425252463720757654191791940165280451735889131656869859282438033867476170299052457476765507291625570448711762295263723282066400217186092719038220936292686534986071417714351283352236435420153875871488943792939795645285033662237537497358887161017900871328504533593229316922576712324912913216590261815862325956481955744861433688356442596663677469230175226111397345722560999253460244923133124544673186538193381252804701207448736151954048256692035117577273631061444102007090690179572485008022452726804991780174612990986609806088483985167416344169424034439308327398677157869852290705506534009603809824601807378446401779358456164597880736833239461410087887414255448044602364924172580100839301931522493059055696150239453055695601933789997706858946336116197904097573105456595068907703710330702945348763031322272422220315256863557228490467205632762061300356026044029867897814209205280657130189555149298895979541544469534138337133747449867642999964392088889575685280648085532048327966792508083085046559014122365106907339674028291510585587104111612543014778412068315879271263029929208693017686213769964035310286383682422997597134046785250985207627567807725302825913422363209712065325374085813665400827473127559199485102777987130291193362567637806963029775648156618121848184926731066675009611248747984366204044506846921951072648942958896148863921144226105313143255815167770211402752382663562585281112027994459661773935452218375776969044924538811149952533673631125594465193538079101430618531323715062868613319109677671562510516400337855037689028578843795449324391828598762232492712180400205364034650048980704618586530313147264063652010130453913791443041233575727469877720290603143140447438812514506905002365368777277176729573067226583412642737274798470543221724410741094071430592451890401908901784806067474409555346316251686428600844290848631912841701088046326948382512285235011453741915054449449175201045892603172982602510812119026864409914889194660032392893848105611792193360919567490020426754401790640755000503576844610481820503953264563861992199089465136938162128826488419509517533552430673163012453683298479953894639054756723915940390189869390646104175710036474861677421836298266138992776595077676498969306087647012822548969973711829373250284516057231270833407645828822260506036172013737211946529362839593150495597965993346519846411059813654950819383181567717694773663764945787131503452469305876040529736308399495512215164005705986373930992144074500331174162697364449811097834155085614199013369269652099333202001350093511302703567585200214608864863977412775318096808561262890867319326074622311524085575203211351843479701291696671482490029366892933383046508948814806424777502812746834568154511168522601549171319041010403125207775539361468265907852827519469928073353634388886015520340102904403405941546243803310379976364055687916991397676388237206114883951004145113710966659586432549865082702383696101763303275081997910482964243071976974659131086657239836555447193226719567573141695179151039038741961193297714610597624525095810862939891304374247758786370740268442966094617547983293290760407670047511398227272409015280171393101467103564578754054595748635920082654145592729672983638796877022738165193714264280490782129122648869917441975606993940076098946493856145079314370216682942243645419878085336079742608697159027592255493810067570656867495507238197749826976320325090359088662569587226950649528223272242526022734425012297711238978887468727492020113564051608460510108786466762338917631965180114893414646695468926723157871295882396578931391894142470138906428838785000820603901586856127261490340629681748824881633923346065048871263210110854200602997014771681643980710191323914164573607045209922968716013456588531988499044464117534509334483227203161720097574276999274434655694209114476937737052780069787437618471341852997158231098022412577338820937981366599278956250644485323292887523226624062895108622356579354950394811865443223488650068988816278805379711702986898567288279249281013868182828717671733799539589173492689313446990730704157391561131860765320865050051502778854311578949379753870394934054853241362099989184600139683179927687979472637204233049083719381647467058967128925175810094591664224259235934505427382159784226868335661228080634633753521125615939863311870684564027895958384459427558156605363039063724847223154449402728821307846079352162702120467199503394666855423537005668563321805075150442581330223426679132092264495454149718920231767197115045252239085148781205055315758416281769557203144210241157761702598687683123380204220481384860878568970733040116873108014579785160477168777969943984586997209783968220056072990555488411785191958432062784904774175416872655534612360204096207504582612446837184221513882964868781783321629858343150308402732186641390017315071380513833015489675544965137430327007527722695328621097906256539733903771410675483481788999026194941534526859238777556188103748557544101282137743653226968813874728257516453661356598728952045341748228972288535441096071771270464552078708889434833160157536820238981824959136516634601204419898370321581348888657008381664303907450181236706627380020994718788877841055188485083743748473365601636782034015306904459864841943753750956700943258357106130925718152485357604388726244874347890979939967056837917776374601426239963730378138000815897147890081044159981445378019843533013979462577129805665425710856993980597512083180386199812793920609348618482951414394006934825435728270565488464954214812483893519870848904348072263567728823490466414199077734413024987948070175390074751208624456623643556245746493517135199270437194471632700007894487453603765465126179164011991872639404695260189357488062784454128133520537503266732892269631933068958338754246958769964634599998041710806415713039830455077137114186447359387194549184160042092961089853974523539825453289675828994387191291757032730056158587271951505807744040147582169842169393164951194861777703789334568861022132015647525571335342268080770280994014645493423829652411360333748288663166557042398154398413646930726036657426250026993487933563131338217273565456810252206380366010043983818726811475214678827652234287297394527438135130540494190474239108700395488002196218536572591944574665361083096729695187404643008496375434008833593538581347429181074626146874073854573291424879819614636609212703715522651986264434790671023312083785207187513808750130577690043428901522688990417719143088265579176697439993087488637329194144181406432802475985825732764067195359310647971764648277632123895932085449239508631421519295502258345378806095438078702590802494663119837731005983823020288321902979485647035944897918337523516937879426089757733714205302620570058024248837666850233221448835714873152648152535738017381290523337352619312796664028983558905209038732290496929795109773408650132209382110543326437728287505254883778479768233038508607707048995314887629887040001944787322911786625692129802989965476277032223203789597288109631103665696892306620089963705965259601935504528987137981577669812481839003530013426869954103367084942760245121590166302950423343117800828314224824822715050718942097909556943749994140535267573909169048329348096759725864976438361302068600233052534119462186606669308823542999753568110609798796473931049490153099419461323988856741890204750454888585971457067192762173832181866028066385972635814761327658684410469273335048217043416163841490381712023510294757190526364114224977918908438106595072415088114284397186427699091230866189697123589128031527834880367235514974758087416158851581823802990361790196490571798852840870196213117839352075485683971892439901208306517092071645522140207871754578178115210345568222559075398018707720151710329272536671090090700968208939441240769894280601043289767666497744858511918746732870606840001017384639034840954149421898419686992199761670006169160798768459019956031170251832420365995061581091638908271227627795774743764340549868013224256590334574447126641805632442833606430685866684037957784980553258238311958449133159552622790812535856061455043767274296096782474596051290930138170066815333006829614628256652550942630713780137958528339758934263180955161429317739995211757947247597537913881976469026285494437353451363011914076568305384241564696195608617264979496164051461169176102684307924189898742831559815319353651216306417092293505413799435389991800837515445150770904148384412476371613009661434837051675454033525367710420014700839937082460845307119269686401738485520111391213305931289522840640750153957944717450716732949170332811494787608168241123863359221708200408196916208075220412561643269258693934676695705889365137644818213745243358149346280276516771615591015272794138695293791801913980524435958749178649858706796651299262503622384899681063032460438626844787560673058460233424371527475161434354815118168495385590216411917252684444088086990151831769269379691095306785909212082592342385989741962849379303115823220127606143866628546828915435986537455851752288323513073170636955474417875713017401417690439574043066071352743063541874105927128293215144201049654181769954423565619528190680238394044935292393709374404506969623761634865743519746287879017800542608212959796725409244681363170530828168103522468680092437560862647183778996725655969694125097567638163590910966514317369548553297348418544576149483294653011952892121015100091984470612595588372446359558310891449070929334780862090871523922620787509097986610757549880058824747481047249038784513692620588834828064299024723555171885454476703582784984356498677166105617673268184390871584618116407049735607796820598533227533132715234970668155443659015557748976303500480400637439425279362151660842527650563926479132388736263989715331508668842009365041761384886364989825091118740019167536332719460970625906223141079550170039971796337166770493125195897305886573198750017186529057289384867345850760434163054694020771922780172590835503256792606266332704917933646801673739159198615384899515810113940543287818765738485649195795191363738502344707192593065519709662844656506442795793172523396009058197646938387284552436437037597250328187901331452375030016864565966752388423209309116085943157486498907758131961052932681785133766824455616508266033666954215695624910159749925672774510750162588537154577445314556037200684778107698524658028875035780611657489750460348182070170029501970081222779411426553128651424664908478749571898680374398159338472319308931057564360647933202931254431423577900807801510309112907923244609277594910846980662775930858557195696168659408941233863130734165528714461044220390469166518949772776885322556546637916057215541203515491180566799782309929304877114805729250912767310136382425102191014271497722175675281512753197104211602685164129966254276675046269488237464913942138252358004762738870962991752061635960703726556442445492937681824480530466848411124666091891377070584989661187199881055728515933483522765532790291115956236349027493315099438656587761504592270265521564035765861495177081938164906449718757031451975027392600729086973669396589841313750843141682426012877798372692503254756209678437953757811833425439447779140638396208122774324072340553511782667796137164119186587907753998754695541217042473420275493119527520669131094479275460451829518796923074581206932382924623783902821970399754724513041486902012302246273573162758288637637827947305578646664796038355186964725403152733090824020854585700322213561119048357008220417522174934374081285473735080474542421941063150688298893342924998621636167725420546752993294410261412410414016122300587776322093979991142522559905688837372289209817339865045603461429503349240878607650043120614083935626868767360496616921562123490985582097321350053077576116603220372776273237961140564939279893900379438800810532446150320050070257978911401171739434861623474938260858666517755364840853443234100837854698964767722924628679586889919056443491861902845332632820983997617940318019472252927629558521159831806907414388675154563554351302794485013275368393844952040114995833906680266295711941231941779231531332613608027975698467684245163544321112085441119443672847210362252492468783787742669643066530889780427799479073244723962798575343774692133764427812713422112751605370977833454651081719334307119984022323968211697008608048791110178526834224677742995679272715153028024619993971698026497608567532740099251564332467188828708648804135233392333161617127197771379879604831298360733691316551659266540231920882379779738008905225796750602670038493737865321178266566440953186805870633351466321345098429956462982471995126092217128810502889374734777534430263803017371694162844047753453412714455994749160908323179768225913761865874817570924399737200835032860611714607096551076058415537165217386425063624168182872040191926439046251541351991823293506912018146134390052935673801021372732514400776656023777417346177077480353872812023673480395739415199562803800480792960801666573814219673200636554777385679147686856276316762845332881323104117329156267414640665248145602741048062448284284454544493770036133874414275568820172127750941592748054595169602524763054231165030835790292391921414675131636384633910717720383075744844987046803245459823529891549183969473454778591189103780000427480588001069494253909104036268843453107593009448965706570937222971454542442011224831174767722493750409137746061307934507871391924069558334464159288632134852830487907730652246034036655583846875730990592369637029281737556373197681169986495575086439957580559851930228521989809113747680477938063174582406658317956863050708735299168872897865272225521350131932678061048926593316655497704016371996320882234851213222786643412193144058805274707789016769613225510677500676857726018583621147877537002272135518368738243934808966424389573728378256960249719510613450137354900006728533719752874997392887057924748814610836827847591636440582033117941974871051548623203023279922173656551777056415299832934459765434584266197079808630033308438282273940348677964717989470214608639160524283131519672545534557508170607395146224344162903708347998082916330325093804105729706393592205716739562831609856989363358772981028901519053645773086867954803405337376708038624503202781613879916589893685356108020748659558317648562044317860744667593623229732462379175238153795982432280124448931092637856140600003362870631342918446880975156761510690118228474278627200456246563553904694119148484531923762410635867330218490509279612504111625549889878507822353341978589744832846799232618163655982672138352612077598138969654870933034013678766259722196147815389864787029463267493554645519957673345989972758493631029367155108425230062466078844222760538486889165604965916488075177395866698979047098043107435987235238048520227019086201210373316736780916063484193979898642173166367951024996598203474586963536028671253741063271416451570300308751567411459643044909103567669000370673964178969657117837766126696531244503207301588562835877837728840695172315378834551630227151950435408599506585274736848184592697326713668183056947782137320533183219204698256502230823770351400580934459047799944157961940575222756275860624792420917776258887327049413721651005623870758148556917677209813484091356097223690527900731923043289809750900972893775771417954068650831107628940480952890910410523365271256676600724418220594771348142114136692297841460178362499371627288611407301568724676099261192995056476691062165022044376954812365475111077019651482690088336050198680355507615800632529421127384397436398963804318555396605165768635903329863862654667932787305306879952443172659193043476686545664422449215224619153749981305667574931773857122651738835632779661091844470770515338883714927842270610119306033685873304298771646906819577707214845563706997195788067168687270194288986562882593975239587967216171799795664252717582785844617673135689968408384827142232875447741966995044499234327004409135108918096477322860911793083526671647018257908230061271337856222148726823186572300685148415797729226996682638641656642688312935257492127512205141376494043108493229715221751127265230919718870815285436356448974737085582629883205890435022814222998979740807395823893349123302071952588831284869357235344994488024019680334484680863034015476197348232620799097652640160906082159340883429279156851130318149129583894729483971858402473263531551024946938279569207770975303568706162727951404052848737004632247776061888516657749758327157416775152773488897903102391833144468915252152887758046777886581821145768760738560690190995455573154843636909965728440817391367622285639682976497908399676567911319521690628712811143881910066836542071656899439410106787975928589760396472922092493752618879027126209932779917172022129870233100900664364235001578161055611913467211394715866222758128915348824469299295623000253124886156342940418384239273523105513215483010515567125496916900904341373439557983967697053969185197587700460190798225438083560133069075328165728566668583986862228175735808777226855932133538409337844992421667755748909542463221569190133673680338178961254800032801769175649369715418323906274366014856530101872301376742139187148916048373798802634602442577783265719503752953524255632911421027970533939577060771378131387818733944572247544274670850245896708685635420207677045953004277351173760210321896454511632416037953548440752049418666623279009005712685820306802515619578818673735662239627464316229261788956864535089647965819969708901796511072757715030675885029614393669202442206498923081298337542473917823454894815812107995011972872494077423343845651316270078759584934884691382343057004644395345917804972010683366146398160386052996820577536522575466659175490671705632279323940643207891968083064038983014165503846913594758974648818269383411910706955638074341767836189621571801186180388732034954169755756866391370146329477854880682094430979955387100049682906565956194491237276504804075289751463674202616497616505754583945348598384244856261905540160916151043379768572575269014471094764951114495316962325561997182246687475741891694027816945417652614666555537518953729470782352865909391745338808314547702270911528685832107721564651687675409819987154930435791665688314415918166110181847722005770966285902984200875694321162757856103954609335929380054625886026585667499519380154466311317006879165320898093614819294088441478975265958873592783863019785948478409998706112487206303559625217031365836119210560132477598742221700502926052057989465124893436208327288348552990919761395305759515715593710249860311237464353143270912044855893411813951090879106633389334797108328154216419011962639356544422776935018884155025713130987952383098072788011250151710802323546150174562338196203420312822175082294139717931868337654507543658005870475789782629232760210040740576467004701185075918588165272775956725597703763945046420707887838821222741841159006208094069349524962422781360347157863525186969730824179523506321598182838968294987959200648651600046992226341455700526917527332426696993684617609943817554682989581025614486478612606718610494384986526652504667393869523278864843851611327969211714159133409528877261531072030001489701859562014432933353504413210450868725067346698810003879750068125335403838189046474080387251637602929821359722851847135378700044241541318366071470843882083656068509771664734350229820214459508279098650407231706460336189089467570158889001083194127240598206396880950475194180144837823517862410923713629001499077870507549259080240708412895313947050142898623244960597239908079063032089291086005357608938175555828366565383098613056648994127423412793282775644675713996636520043334494936176366171096778088946361638779831534932290625659638085768063318648528578124713832923362601234431963377823680048001395768127252654630882039613711921641543441755426020299500569067710743111639706580492634251655935647422201092414414740704504252738966100308153839844722264078385747665389366298044475761511410820352440532482021352834816565854105697002485510812574251538652306161132516744475037225308962979264062925483603300290961584618028861941554014855749326894075451820005018596677842720443274928191376123810992365948136365812153408010122392193470319338542463038156676715403817782643253590696691190427532790769187084473560527113230563839916576391159798204770386770400191401819020843707386963790467288434184296524860786101892656376404678861300038616288492918112805553864897994470231384462634235046335241337597471378571369345435803768448724869367890726175228603981610289244075798158493675629029937011216462918466904457189321574492331990072857700593778937605281118307415299407262047902599778649456123949905668869557731219031928715914870927400558852548677456356288154147133690886256996961363813570680477515575566878605026983415393590619508084909276539639252412080642256957172341736105670057853317043738151007063245317498017003330495415879505130877344001049337577668183474249360521994421072437862102633005723312106800378354542443928051651735137918272371288507748924740631883548638988819319838839150927842748389769676020916151104019249845324391525417570605130378386526962328773451247896886550949993254248316655110639614797551742203380951833006113394073030749648391113494672471039752903389212277407295396241078371987731251669375130372605409091748067876372379852617165921983175857005412739987893021724475373193714461877403240091160880531616796937578372205041209908689957989323616732632306520756041733166926672534291774009998669222773369866834465105067257601865014822660704556052959615606714209988803295673251073467551073092590177658683782237537572377389115891711962389345568001832744335398421326281188437580972219957682306077539834303139957597327860320527560930971619320315312589059009389866819920116899659643055790850198270427776848109344242939485253650136263378017916559124530347083081097438374792888980939288528501325655023718213602899431806256213062868301253026388632740486207954218722342473536247851613646181804850397442645744072441051707989128395074326745343255420850362827423713064598450692431137024844857452490016611996095512562545552045314340113080930607754911663509215370954117574748338607015166275974831203385688581262877965975227593475086637257913357163449666164346494627893672369394402904399496502286234718735441856266860219346600607051488699791508078948048695733808357105365359013813668202654577799027274534321875822963946774916373888725773360539157427493054020192199832847267144734373194327870607508006748415299725931871859110419872482531458006064528088115744204365063508885886507371800819373200078057205994614778648933490323187832303462411702964489612985837853571089942192684685405437034041691762963703638035613014212345575832183290442714624625876634549437108612526961743174189263540890066796595779192454095538598939309321487423489649055271423444686512918303914182361108833941279736833809384962956759627200625416166137141007449255738526169068436414662286807578131135014044483418054061657311226963806371390144592023199137171019734197230470105065024867323685313469568695324693472735402489589336561005345585096282755055738689155611408296686788518369687724706188504925140174493082689121179886212406953250690208087751250261538398119483171455229311648869176958287832931600986851343212226302979759852026189045352124113762570683312567892890954536675142664263378221058639828667364053431608107923199688861665421951832626627691847231336340218619640579633313314323927067189942229157922822367212338571510705964462566442361499719152922754292319790647718886781847153752570800633351218449254749724769741512476049602280167030970005270758361868191729525971939334797539407627546581022709239916561571581232101023964272309811308361885365863281346244090388647446818601053515613399912333798343981089212157880667040664385865063181740092961907161224045347459320175587130595412803106473053454817471141298449063094588330427103813121367793879469510587765087220951796339286841100921229081648721240916173566640215741834202250334170608410377175894296195258080276701622645195325091127131379731442324572079395723999129695505414153388748211642555571376350365222541587300010801362740573858540946033326274355508861291278436604848679477979340678126263297636942166847424238665561410431251029783501807737652171088589019673669821776374335329278134308786978295316342813931141690745744969635798091177059207500906498450424614783683933403213852814354492667437485139491770479610118623472942270110720325241400894059424397730834710761823489541976591165784891123964120438157308599063723485891777854770747750520492957358591612071634792906073790728840903964566284111084253795294806804351359077915444559580677822520249892912651831391252901550076454048407333845026058598023410977515443317846308846279804598202016673796581470910240533335354040805403155741194573162772290856439902243984598486039652465627625131620162478162703314150043768217444332918973158233439369893478801968861700494386893947844419942419613368241985603378489824065579607980950184267734095662152659864254718541284610500428098030766294579289959723768232748931683548432681751852225245329981118922377495635226804048941411607734837392681642017210899383063804344176943295599983792704739456722221528317269699308005127001189767591493878403926559468190457480187060156495906983004604345870245014503275411812213169636488280156099962704938581442425569847361870976643961511124655278026949143943686572063477009812212129540664285784359847403283928511583095846019316822435452628607750620957389532926564158786809949707071810685521058794417679078485924623934536923159489712049565595574227656199443915270127309348177267589258449133606364671998136956832570838408117778911665997716327850144256325287654153556732893376116384061053301461628958096071330755780211997086975193010067649121130936724997782847599256666547891954880895796258824088128962200519203552940244962636244188630664197513090275587819944094816181223840989855769999897058090582907372687159904003466229349170043101326633690189988557065360051049495419586162066358325809637182955146683249314028710485164944746662107732333926232403048019711047345861497311274816790545575316722251455919961613750208909432766744572292626086107125963931070794693326900918513980185084033426734102656352332943277312677612350831101797986143558490467205691737785085897230654523981836741644498361707159245451536960517404924926089920984381888175237099359000553445118275587824802593666195136123764773023454354360836190889281424775966505979404074536953443401837017600907197315826130770069421977762258635358425835917790267308007881159214433689898298689775459547039913923556795009664228206240777099268120370766804149208794767327409117813096844426695881044998556629659923666499558821529457994049088626392210774980745719363539993378837417380081362827867251239955658688196659845946787358525388821631566182856331086897233466103721605854028503669619722121451826546778414090517803319074680063529458862293161809846155928148093615698408391443823809091885976314782965402766546496131433490317012941626140338260877551641913481172547289164608149042141008207096045255439309882938728067940866300577605530161978171023608326945100059656079311342675105742789242069907669490004242548164549958226980075306675986187693611361322201695442693460652745936612659158794132613802652647050284174435440208935136391808715709761508932575568359458626425445121363217362850414647364168426302037918509342383661264233299125303880654526754619852333185713109879582945685782263023748124221150935355477363352783988698855326611715018076355275249945107555152937898616059017133971261874203065134035659868387260322136093451147682945788612170225627842706933578393659424470485827436072290587720102568189837193423184033089836178515079617472204381023086827021299535334331752122837631848510974146487450154157466380633982410923076292329242665230545802091408690972295173672353313144980237428634421022367679448377338724668595886140130173268156586570617681033308539234894840304846444205385033071453676202115532909708574637223389034552120698044121557712691547248424173851691503826716940213362562261021834273186242643447119576320527249718639481408767767852107520036844611367276694582815339201659082299720590652122165779073963999761436467435541141022765089855106445398331104638296896507648241499978702115235101404326319606485859905113215093124675775623224261628416916564038334483225792608321670581384831538172251656383644951113558745277983260700923221299665700026258749336713009191014998420822990429878934900696607493732734244900281809745821932115956384396539283552701926660655926266159583223262189126667428868239127243118886483819782996888551478811201054370901407103369275871119642177499121515930051569011080109518784610227589276696612671190770238099686642215483551397304656588430839774709775856253381548626202440359257987417665271040536255102365914261124204399850887030619080937366866994729746921074586497897259918064500772283232407880010629424944780201380421706034724854821738102701632205889819079946074170476296004089939931975310052062644675609661379556025044814070640299676553087596868415738762500809067942668755598060284117493902743948845430704045133149356083184418594818743121936086616159922323334333752164715332131570293695201055482109028560398270810065190154532260031726195263534766902900858762874732585064885242041940392641976810145159826601086125055862761388194544181737334927868407018590222705556315497048855813984558673324971650536550539285774688224960771077635033415784451043814047948790424813347608194911131490652263387125580682841361315929636985861066491156331327105095122502735593945451698549703611010040995440631240846148329101816307172274724080779716826197260816947275046879977775050018547060560881471925512067206896896460092744156995355824894158636738336349471979490210040800205337666508045475930819084803274248515590927220175743415803039262678513799169268022417281927953372163197581858378306109087726926280199274707674542329306139601794027104798874939899897723176084564366058732558807889702253720552761492086070228015820221350602445664904434552076179515446009785021810912088343313492763362564342473883181827961985660012945151775605826719496291654315485820978368725658926542940998800140806583638455384641053514210864312756859973399408206671285225971882706216807205714408747815508457141708231854853007184971314011419054203616547209959794733107853156911453097497581130376629443757656793586788757431886431074370804291867613509246545868556109065672673623867427196850127314261979943945311601616402830347056016859068187195331210832008651238117338953648413185197652619005809654140992299050278460064277637915088507601503498098421379703666838398573817654983259426538463919106172952336358487604487330658934029258430062230205425014965501928622471437819099352659505174054370140389424387739310879568204238741105360902929915133088713365910344246557248974686511622734352210716325923892253974208744364690591364174373018814329579984374172912373844011964968199677416084266169736894401557730489650467909533562010775664292408078104177497505060939019611906891052224996114622736504271361437153722242456672092231518874164306320755646867901193966152396358405061180988522656797431080774716279253288794857480823402488924757102611232599098621811048454890973342330799966304322023551422267034056934320512951205750217159707118063286240988440052728018446841963247653077002424931436906838926242461744815760091809896801057423818567101080639792998005209780381998792606387429236554484681988934467016322755834204662588817835266908953602001147994603438448054379575839360237359677202377789862115679603669490168430524307448560746224014517812838036452773376628000371781915691700958949510149892258775581129651699682856916260465818574301768121460996516484298242767190368808753840052707002232344562710534250998628977797379972011525537766970771598092966104513439357539924607330195054092592185385985394944609060630342105899791980382960459306495507119485111233846948761422788652140934355547104989712548244574770822115071619097624198371044315120146618631099961724786615643719596738284789588738014318771118050701129900135716857747441627883421816481868583848614373650819308806215860117921761155344614917482027519961520828127645793025326787700170665395038652728783112565501572274049471726180905043106071783152148213490934706213146861697107624339331580354371373680353511473847773323074806616106445358980610189106124707955780336532303865816181937220712042864902521112590418180138998666937097540853822912796167208429093114051338232488543555606636488871604390223564098596034212291403932574258364826712622319667804221079161209112578007249443391984125195083826081624930749466485314024426899536736087677928591171341794011256346211516266155814783347841994990536702255769856510745279613973370798646949731758035386686371058854972721832306528190510969264818587239063951162504859510050342156605537732710291641409049950090498643274096430988965331259397253081904025376871846603055080923615557203199154521645245780996367854073530968732953733327555751772344738127426933092029487378915279233475952134826277381979752844898144830353884779094272387255355370409605363893225895560445228522368537937626655195931422330497850616895165186741170054830150506134632267971352927856126848326513197078966636309294707657267434333438419639362841120554738495517573537381684810412336506092403340520642067579790962206321408147823701242142921984553663467733876148523076467121627090643110793115927208980827081503470622414412656467241420421819478069349282691265047478093748962149580853102874391785284428063951125397632719453294049384101091529436911298801165124075738509396005002329852117693464697432309089525667114994800765863710231911288747110286064734793181425573837417183415438784950541143218554358856168950150009693290610030813359503187489882014112899193675119000409173875184631037828818596626473038011547259353925746568521583919792963816361560307759790794089708440129045112523334967984472130635405718395901956053693154658609123479408350526550230416911137042670965948013433594974429335708212024500796134985942383902081209442201010692930226222646952209770957089647009574776856006241870862859050506456952755855523159354490957084222837070212602745961584512624663070092744332901980285857849034400077982675227799753586188202271954194857519669375548242514029533893763277125721058890114960839165167750319228193193330115357432670918840675584060347930595274091119593890256297521471302534199989435200124592065458111099332138153173051048723591172975191107283101080492661209974818542543375747157298854743249092493506222567035916533776169645376565217181874317819051560413753948429370221557794171560595513015992931448844932403867221973056393751444378837746067370098101833952701505545780656186237766131627652283534738844440551923505011572892550503712108520169039674256861697354647853551733620698126128144039399383987925084451983132648561709260839054833011578416025974647223206294613331526462495085173560538839464864739591180845444328632356111654048477975417701814370073083765219714267499369344156227724098227990394884987481791090728263251649321264330002813607818757186406374632755158166073933007250628088547698168406881131843993729769823976016235328539631676459449086315399688503229084581574018107719970380968721327908176698826379399893946003936695408252920873455469398626462327783171090076008119537024560978987732178072355904229026974565082371294999903682174409845743752880341541470443995644912172805540695076573861819683997764298408618159253725332025918546528550399522156005855579233953568198112704400940579070612612980495285110476826547503434055942213796656835328910465842995151049840891882084865807108238987805986937675822489901883040047957530140064813725931247666970169058564872844798217331298589546773456075967216223033689457240177922858821694109559915362481087798312779289480376009654720383775686532346002101528761929492221534996192209784404034238818705669335332078488780935816420858847333027869006281165989254980511297628777332941626419889435761883297047192970033684323853703721738511330070306905272434488667148727871549497517390726134174125736850992230525339278992149115016228537275706196124124689361165281197766904518282446269185275075735541139310460275659123961730900661185137414406088246827801848324220178822641878174771584891354804493900327916613733927006426220156035011061921464404256702324341877716325977784285568668676443518389694663459200456904675690002931434242620106202767979301040569194566901583245125119560558247321746731134927785907373448330461660231769512538994666002912817356801907556817193374849166739938882869128315842953655198274861509558711897772505478884981523706731458807986812971238159068132967773351405070072436516682261768576570052378373740617481720221229508096474067989193983204414951496620298172308894428546689709888675290411067809616471853327190199131036830001670903503002963662960856639812854647452454420709802155520646144323202137891436089009705980705769479988934116637989652409890667938131871980547079684633210383370488345636625871602490381292363795575933860441290615009473605904793619969993746268901622213174171078645983670160413244674212882311151667409687719844243673787863721963212758242258039069684160786696290405833672373423899252373422844529598699317238692384657051152089401482715289632849924650791250175503326440078179615505469877492067957674868852314330003015765463194548662915689339479545369191185312742965103659735074468487702037186336028303958887006587946535539503409646589758817726593952021232172252720897886163923618652632149438516435476965562798059750770825957025644631243489232943208522334145639001074920945643852644227632375665750262835206711401010753286208300980770719994613561393600618056115782998464670154074545382727862954760129513193898744242897517500521017281230730938059062261703613914776101594871103201203761677416002836501274222326375325862805634748659189124793395712669639606762041989381756869370954927621089665045912338679742912500769166444984893113825078728947489058661212861977207610316058784105213892059937154169755458894088503356878893122063371764382231401275315283796693304281571028381900029906544971830771952411996040187276878662021178868209668999514088560570482367973425550992309316376659402004045680044869292969347890513893239522574339337139639655878861057838704936064137542245265142945728490743451305016264363815848443831412770120361784337158635396786647129205318542832001038184302812856054743928749235278244319762705297502423084716536544924637230710954430809046703998874977214450183887578872131589418614185633175500044081339467028979983257928231665038855564202745745935710249557914994137497305849824403514674258266473723329450480908074954156569950855632539254920413369757995683749713766715879612898377794044005914803429255793624567686977237935042254117252716805256004967496673364028166193449414055646888041268053546968563769439894568645547161368899190491686328385831250925476005322197269981830434697277164069595280759790603828431014427353296956524189195510194113672202722408133666586099104407292014762852552048654455327853952009537849473791648213092931518014401195120306874614783389680878603321842134686911954612976719378922088431564016425062116723085743552028249289751088658322879781668564730109062052942949737816633602053109583278040906509655518861785570690659539015134124674705483875058730691343209913684167557430977246957370162388895045500104894501012270188341862363189309280460504505472175835815916789005824718275837302326250762422443068108268634271860993148093874895080461566331305680239938922055175275388845822740871945313519135551633034784950992511789590705444052809046645742519636062877764690415002351679066817444327647370681706569772198154924428766269652040400513867003112415171953958612326706616041768858752580485677934541223062279288438133087649946549396896735122394807593876018316625631626949343545095245502396697164561608126104377500797814896724556082382535651881363743401464966490366726401249717138913055413545806777892550875207783445971027159807301974934566413221442608071341556792861723228120511271156751769061162986688143210878067568524515086335405700804054384054735023755369305407862378200629908169743613154041330782510102217660071043664059822032256611273286180447095888885788857188930565626910906911327654029304380648632311683800515505183433485558922020403449850331421644832314336516839371919802810596189858720759423175007967598503637044575544164731282500691574756673511781848437496812002035247985053242439200929161572669678143080360620644098016294422046703223695199736056903840378262999060636511163300194975311454198879367856018505625172211803369300281058227625918221967923789377193362608885695463618420512360439282637363257350526788856822172048049677181082360660775930858593133588830513467142230038473522759916511917330072833757607403675167478067948963978176929075419097990375693383917996690448750016209965615317181502099925829713504748123188248236756098065455561246088046589110330490826680482924323091080208473003950613415180503739359763480708569077126868028144498160643344626019750192890261504566492869201606180238788434219641192856141077994110780513813676923497060948748197291177128156698529685652635798120903993969259555017706573742417604541187488792785911404993510107306511710680999318362482072752085644456430322096770981746548580206048550271715572526009570495440095120240941682061963169484070045126055832477579828884239242055953816992888096355234148727098522930435053308071267494909051584118692191457557998028770076124170288673395051587247558934785511980316699919398829580641463671782945571138455481879108774375460320719295542149522530436170776730874052707076669444999169943494881493846051244511857655258855168201682871579263547239535098585121369948495344134699880231541208192314431889185736112210682367440056639962086041475946037960215722235347295483087565310771000358994338424547111831081960441899628872243379142807618043150911788616475737488803342764621388417728855117548956715915667214586532788093708564379299089193192885979250450073082754385299237806061880546746014212825443112777954237427685976882381630749937674659185694968026467035590188279189686098941477596145868969690723248369974767180520729804443125352071429436054792550871991564378379788142174936759865406304200208451684494740223768345549673982841202502782853531201443238085662320401733080247654104113527702600942833076483789672743172058671704221041702574595960960499279593541494527444252002267298258205985311226707644981043120214604579021542641420258873452124872324549641626462661726916520481618237467418491869247357472396117039850928848576233331112642321663005241510140697623672968716506861652906223684697869537394682214541819900002002487560839410144958165915064787639960571875386409275922681687181779049785662491144826619311720494341496090532510344940849678598446632979326444471081698716307252157304299389892617332292631366024564247761480101090872300682030686893202043871598874471263001600250781807973119735782779064199348658900363476987610977651943648915677763608743822273424035782452804806289421583724179139078289292064195600325983771272198917319217262571335714652657856588385925809975022793930041929558655709981213815891565358687608295408868445770341284905298007093083790227777340836917309288444234802854022087902018654078323808784052003993185360348980708945803896876591873290508728630982776474156753356434893810915138823158573603553771479343460240684392875292764617015798193035966222320951629931042823252645629496946994865238671885119855319757109392854069139963389139408817867017541404696374287134868056134386726174867209496101428363840406460104134529226101861518334058794161907321117686979339269015801058526061004401660401534841927767962192732419945189527053689982421108701585521982195441444255124650541232638699319192740352396038866279787379850468079664297635697191616544783664378846324261166445139636107056291558273723510168404512923111194362157508999820438291201376629293950180902174144413465488295971675285369144591736327280484876751856408558454170255130498996396521666968101320284242176443474396076933376790661930054612993474462845748112324282471840608503594978556536474022967787293380317311418673964475676823609201262898500105750240674505551147122911624117311223945676326235445650078021082793232586676109202696998574040696031471157017103724220681199676535987721752454442364332876602696072358982586741358026618870171565499482687360862367950672845784995909225799011519736920113390312992777750718572923678428249960216232017878083031965410973325323830851385215264185481580808288480758802325168099565128515684792100262068812932047831670338294135376531413914724363069415259879280439134589867655412023853089685535492182492727458195865011085537845363748269221229054349107778935181376099938103600354452979357355235023931032264534239009494096735751556157521603991094686269061329209041562035603426539289176592520515040546188414756350117136342003340516700021421063490384342955179788345389765138882387070507983685754743139385179276971657178192531720819759625719108491332746323594291590708530227511362633877175986332992384876473995667133827768201636192093137891973591973096581351316803756714636990113306274648454949802266433793661394105875782766876479445034547596677668096411837895540471572262578481842313633205656626744517747296945011937910538494545523914164007712614507615257656418892325252913040745472972851495151519818404800860453363739408725880632070216108956844148532381710547269415769999544393331594597258719029663621829939274849073232734220781625296454109004178116072400839048465039408429170660541459775637196268569211105705509522206682968844120491654603374710362502346363397447432557292009862169937504638818784038045263794417506683268410415386251852363557046913224430068571483324486105449319002780248856493360133179469470105921182406353154101305600638292641454918470505798654215029237380079227294339093685274770504359955662108864416828307288017506279196771100989260540144843866376908902709977576791870028847777538908877598012731472981014106904360956097516576861276981704511210103360509859555170193672605581641442091531187650867755088392748224347131445792515460446897222757547328674142908196590564725752739597324324591376881440358576550034781958800353251538015013036007414573217469524702752429821973181293503896955782246888016253527610703033736558599304267582488590275663666666693934765603888885254327315172940774921397827211280708483198789521317569259543861613726859801095362344937687373596362889050097725946474774108289702292838176912473376301893055021438769488063000665757430431752532312289187683860187316473896319902168119599245678664063291375638913073819113095378617152441316322416806891624634173204289527179335925552840549005026356836707145251951299942165500561234571683993541227606976795016427452013758156858741884506693132001165135427108314184759312055605649715445405193915617888430087493021260177267663862400885924290181582319744109567704609022977453090478005226182901891483381221868136146295559063237800417755106087380496774705050773799303909546713374766957803146040919940793108719270233290646022106270492539987634837479219598812373720746793524504276195618164122160748193791035666319394591919168035843391489790622483929557347803865815621648915733507030029821082555790375999443788899796805311088835980842783161346592942359426332963960672314910692063530829984520515031947623841025187271131155756667226967146324132756886013503821578615601294637178681399604075672727092442930606666020627725158326590206995901494997132602982968850252981189312830541664346977092725261095311066417512585590401710575450576117134402454498165223413063864491616198281055815102867509592955151628110331743414634226691462818309473043514766652629316777147024924148268531438162487209014095675797527699064197139699990204818928973196756452029141080760754747373228770933065020196595895780633522570515728453156656778424685469624648314995818287310331620682736452908630913518766790916574686558460721192624411676385537507152674290264656214236562343900355540575234258097847788015371138587561300093595604680342269956409333229183722346304162963822241762947091895406771799310378434867152959589809866637626621907013032129472396338056876276887479713825341824448480211874467463892405715070581699758812389590251018702776811368071438399245350322069522805174788137201318363108133637892184577987705977230598572172773652976055998869521138633037065361015924589845999429689291696325029781116437269366043338652854472747203533701189144951654421739113616348588296795593067051787837266280203614791613758169478855884942863339342063991740911202330675813412627601985387857207086945369321459694316028795023353970227408679968060902736778009158816728485479906808834963648841107745971823434851068317742106972645842342274795076430023095375776911481123947077696837705710635266501963470574665365098332451060073068550933511424027583102609259749569499461107824919844138751926197537475574582354941450742061211109436655329716719335133071573454454666600362171750165883827619260672047251381184078161494271985310085180501558473989244546643459048362615005185589794104270109251767238246106712101315688269796335691925749409033970532890463893861598752666476494455915426005688092872406356681749010440702195982331975976844320238119179273085144831989979516082960875581033484878304954105211187370373995016811695221159495294581830383895613535880908502189615485074113956887227474852261221919890246134015315010906640758301507161271415170478981428625689038904784482823241661831954501092429548679109753510635149909631407793458498677059647283409676295967263991183790730809984618451072765818926883721363969316419185168761323739533235485595490640553062077035301164129581136455948184851050204613831079559516835149451030921729788305043497484025873634715639725315932006388839200132110458946849698359067886366486893429098097378547497824411589179957479970643811777231714114195872943984851197673988625112297510428485436944153417859482131210280326720597880202227637746729778997896652727788367634283540357201625648029635624770443392488450404125433336824452849995499183198157949147837742621766652163756124883955341439820144741711468198698344690402660241234529624689748454420556769334728434792066343946368760935371564379770782171210497781223529021846431732161364078780329028776651844303770060706354613654843527325492101083599049223461699169811605436309454113052022751208863103756536523308860574089203445313419167648867840148198750243813114400322343955667025525963509919097528564182119298764520215285745005297117133638716062191719939190093522691735931288033722806702251073843188947473357781442830693444533449784035169462289026140625739480202199707500265089188255176398170459895961362660604101218170425595803811295019256483402762006146601555878405661493168356392959216454248703996461183010039137205991304102842190055272617125171751311047475270410518081573292406696507109947811564651185024555159305965912519879955183464278204535566202476280629399616913277173876485603745982445268850075300495419042752546577825395148770000248491811448898418626737975817444859616843688482909090454854364197733366969803367765870126766714419714242651018317256950000317229480926229207480484443936170258396568495806706234500055822619764261650272154969087320360237503652713967217432506754964574549503836697345491157148737071129816164065360161818928593169964471854909490825639276056939096532692166884319353766764087073175976757660058618459039663217836249616931173279188122580962224646478430503813815032876314193457926486917951202797373949515706197965587371457473037015200370236136475701172289557349487265226109533260226588856016705171021410854941443088406024874633893633168506762824197783714300399153263251148271503415058730291661708815829951975805822719101911321676752744219008937644545262947231254032337476439712215332600556110785328822182444732798045485271483679599073863288358120989255115805107613155544455129049835970467152184027617749843125263680560238957904426834409999664011549215163724170861319099530883833424292239635453511738794338580596852467027348673068559646114175638146584425852814510097366832790735333398390816765647224031715183581557707436727978536155938545996432485194577681665010579896328171977788566753828467794608424585332219380287088098511296987442541108302255337533975112312213890708992215144877572114585165876896455125652421385365650822163201711995249535348625922447433383412138847845819043586109577798636510325790803327184855725572829483608309419994863583176577898431328396510481190735670037107614239036687382105849367192523585209089540819726651227488754491985001858565496249138957367091799511036954540274234229620449295695366091005068110433648414042928604361932248971549134471400160428554670882238837513472064569783561464141054714224369039796448099578624392253768443107073778778393203249841182935891253359776593097711656890359387306503436070268462156535048534361535236203602813323334636088024775956064829488486352348703144415383547336982560794957437237258599967990192478909509114457691876072065824638187550094519247604112784707750259299479700829234969899950359112185286170507977322268409594835215357715611573098110725249695833417658093842633990291728671235438392946740245148021463231103976030091444968928946870467737727581015924712708053116583642666561940092994504400098961471682565712662817331298898193441533316319048725635051824337148306512328902665099045223612505497183232049562529586707366570888155887955363403612384176223791184080828632403255309501766142993191480996034286192134260553928498626655031206950203062121713835123683300644116696111816804947905658262142385708355922184978844602101797971759505209395755515117388793107050710480988329098114045547072969865103621072131303079125535633573687283506045713341188507073239183512745947147682078242011782084100030237321842603300284389734093733086561559080175481088353524608853686816426146205642146035601204482973423937357080727555298852271233945536436013545309096678274783309184976040910578694994339220331153036129251609720088638568579193684255445426089357763495313482464980954462694445710683620664119425752757095742527099956760694023478030193904129323800434239556980192055558714548926443932128931220519906543122544502054185471764704557418726581964778235000528031006752024002177989826878570589691905393153688179676634897258327700707559146629323313257052744073434490328127791524392193813144329697473415992882784752718102837902512567429535307813822902367657955756349415791148682021253448624908141210827309307413882490099711908936890374373337212946019135211384734261374940451971836681968257727273021512592820908828176937596518396656959158340165157366299610425780838064187974197281405292726874142077579223320800844010214146305621908524676587516808228979949885618830328459796226721013386826533356312726383565569625542851050812384006721796876531688592298588100622435852097615707334748582527150522802743156602947985525204284062756685245850569953811188211739116251686263092219331305990164858699802310424246336079677408274033756165252188312219928614738672792926805068184838300082354528190890190690467277269840302660324258175783574621250204821394919895448842958041455686457247818212371024126053739639705294898485501905233203161008550342161684485498149947496112319620890585446871524912966459521476816969326691697068556581407473716455046895762824339670327468955924160232069728069571174093413077770414429766822477635548914568298089081608302201359447132991509201614025200445001521107575037990560726611525952741070211270020719104493311126047015072696237798569597675172249583085545256499771310838685615044992854051361285740078506169459864939304749143472188122889570635141712816268582292097655599032552725792841149685062829911949085826302320406951651561529799242185362150179184206758335368544558761555573707668481511621153613199004296187718675907368351643766460518911731690175566779248955621258353471969046401520854748299261302514705143836221549712257441453712692117549687852963678705285990382999612337230978489478904218406101190685537191301255478774934531671466692886691860834648439394696992031513522904826079029677824893438024719732721342857781515269995963783689312577741358707463778458418824924166249015468856280761550598635922365436301537390390012920919606673868730667183830895104635555710505917476448532826337303736627301635681465557292454871929784840063489893344643482815664642648848235053954583198307139270422951940205521349678054119408083636963949019335932194992672338795678337183542907475322895744382452735352524009777713259056874388252195205632010489897868484878372530423592424415925165651042762622930294768902979131499679302473918235464389353066029766339007080309180262619109407263773713006501295765289559638170929029863432187685057461755329359661833252238565592583130730758765035842310039414071093137425816368384667894679583543011366792481006013322428808486606089546582405426718070353317236955386110990049958113574301419355712274884146993291456805793971622680578493519086347568364897814534948889219955126388659073727060589878920670732000473958545926940070352851447299519424846955834983017177518015898206154625319384687074880322747318301572994925144744287331653923909035752008745131088244180702594790667643253178643304058277383838863556897807689601779559964774158137511177479581011615671980294166972360519974516142881083167919346663987796234627689412522046301098344057030522073953753918142808986151544036217651172858085648108263642954088505752648081704530939976104056100620652303228055915907230610431531812975764537933848731217119492693897566494679439237784084647743882502911823180604666304208413739874616306037316446265736780312859898507056364472088014258778071231051048872276345505224933326081299273008693769458890150774123869320034465906351178100376710905132621818025545012635434638069010494622861226164256263700154596591817453879346229213272341253529429554226787115224649529745906964760605353532609916702983886320821785591977551097421438322890277137477512337622838200128502278851110098567524619188007947246267181660977426787450033490804787406926326162095388523073066069419201810332327753953312891280134023079575393913881441959511161846491077133309949108951288766638566036115126105208685864738095385624623396865267139770929162292175726887680914034220863471279437468196791711803494982773358032569246386094557783738115821001933674267009182687300890172994417452592803554939846865917879094533791182985349405842277460646299045102895280361265017238282730650272690922871780512047985655722042447139913063753500014660530099127352297231413357840817111738798692094953610940558433738930077425237674236292962036853719270447749004216136908242394977463468951042446313566776449589821357568029405095004240294997118656880543419428549877522004638736406615228522866374758649243899497535338012501900327806640813046059152429979096783957991244942212785567411144117635622033957339165008732326474204625929099113807638086473449732627831210122332593661860450620585878590391186049070650036833345730476228131824094999502556619013659950236634606268390324944465033776839389324071644200605788446424549101055029490532657929249859170972009960740558178431542980621893226160442211431856701849691504080074496381877879718019886808781634267204155209888842765582314238728094915464452654808964940060551934511758102749972144860413385609881510441178537097224003888894633784783145452059698826865011177153032404387045044610597586677236062188035926332982329605228463215954043620741431967850034867682261126914875991341776066020409486465971900748979386102610673816097144908430315340529222020463621863414259672699138513829790589825135419775829374811334271261283611264578648577253877328390570603791442455199137242262390926899870468240793824501730236906813020196547540472132427331801370825729936090803309661313489576295489131051125340607248564918280250088132634051215970022804989491005612423136715626782452777346560079347718487971609784217854569169515199282034209229219986646248733777872016659376256037247275436789827807210672132475724584358917122765901043692864264492124134699298206142831238304888607927199785448609172960950184355433205378794136944615057101857706134105262379184378422784991538635310173135429567217210303383023787918356272458106998693053626488155098824230614639849944867819068124943550655530793609907983608164535222232947936150961688410712670437025429316245096572680994533010613038941682172654459127826654840702666575008249866452359559662374256009539530301853075352195834702361812296779489928940232261269954297040142781112934443168975120777968233496614300648838087405020842980612051332840922697213982571481853594339223977344673651167179043018588926968140931846380976657630487635435459213034993640126248771733997246452879932187931110255327532086398192800155401794302540928387579116992091466125105206064992374614671381185880208900402517150441613550779377489667383607145710892928823945658150386248765992778120762022247326384758741830162749231690825609215286715895272249236648916173112345811590693115998070084095821139520354182480819860712421989123946835339513263995019564131867694051177131453401345495675104770786003805764090838655459728623517540385583699853906466746547937537164258438106338679275851008598996375431147039159436492430282404661784386165430788128013295553683464740153168690320663111454634149699501397780041515623883790463327991920185739392290355797090488184315509952183847212357614108711203034649989065133257640859280181956857264641466545578928232937879025347013492408541481780702761178442573528354260443753447306803799309857902602092171136942343797808750949681905405019877448325573333292347479786462572693752308999459729012949705828800600907217333960219549306305652932259234181300249805170518344147363124149252847479260072211757117712469767733927343372433032870120261702651092418910067249224857231040436936870581003186840167721296943224019315737042841486328328583572498716521494995577140224458949316229167007522085803284882474966059163661436950454228359859109449904157327816322295707325116417699072571824882428745036608709180443151701179386538099086454682770559805954921249407386184446208334774839594761367161489913535470703589055599387583375475388322924575081062864670213518834327459542219937971759101397068317130186582040875565002917651414881287807516399151241548241978934765468175546434009696924543309173692191417203824114350918355468846983372409231379612113448695966468354893314543688723830211796893672722435908239590292945359551981812845642707146464571611133085327982040688158671981526228510542188647330310295484747379788224258902683886759197738410276462078173056420063211224535517840632131990169298885948949887203127100669232414063826484696629964855626996868199703070269937710184914795478679378502964390718292179752010943545534829582410461985527414731826119536310277936984903802801996379720669146788793894790527221629494812241866180733853586341175761054392365664154566757670725586998535994498972179661688646059082265564068285266843054552919776740555143410622741297073544547752638892052090590963801087280159081574252273107406506031414612758228071968562679390585484766986326620745986458724363309131816105322472703956760051682781076842493288665786930198761749625603064788395162382875457869433598137400890043515754486287557378148712653336380700400983499033759302898540039838016920152293268191981612847785577278368775339502151803686668771772545259324080135897918539966635457800223210764499404125512737059663100472793026568485981857444173504303389337998780837828921404476223335303997243643021447885293922587551669017489370104203900020867814670167534323329581454886435141224050854754361189605405428805976667990906897204115278459649941511434618926495375757814587687300714111755706277154346479927028972993934263809513005794428494917440668494853095282176444575184104880161271119332677246316655480671039689010214818336659038275342330141233958045110076141733890559880301899832643549573162841365452200385075937487625511748871075969457152397639510860501624276997116434029447245750921712235347415200726771210521695734511102436758939931257260585886908954139634733057663322340837658149423993380236124496756349494419171368288508985462365247558245895004585014263981642854129163744408766403691657326861720549663730655914190511030665678988416327814122407782199552363669502744382387429000627657075961123852818448813737353703274974225392505382841963306639795576102273845948760946373284169338593316473756650234937778805629303643353340674067207278443591288655970235790459440732508457788617386858196858757190812177937071851228202434378808725792882355043804832688093093747071500560151110499526361107496944256037470261793906891913829240980142452687287417438318149557884259543265539626847087302797273298006076038353571451714513694128713073071667640161690991554293499269903492099247459278114297718720968624548474126748710352072269238548714679320366032071762755354178365013493130103957423085868400867684045890017963489672807707701469559045524497199602221008302918579673299904662779042946517819009289165722995801082804642670407808903629465274809895211188800526030944145851013659769346644156982282684940387960714113043602680090889721226345207386308797115231773369090085049516499003107146252536941735941232073859447189957117918934131025378275089404467111997713716206498393166910309598060346215153062434030815933094227387786926924161468183423899962548126004342947428374123365376679709932863826489271877378239731242157752575402465334396640297050241830065048059126030183088056530360519878201029961921709638250342592261648180458449201341150704111816565361602652595469398883240202492562442349497682296539779901319518403469849342846197753419761101033430435188543298700649911632181017249499593696491835860785640856997918252355134033001465036629570562317337435392603220153129761599117577165559911151230831060801054352026726141721718768668154600350719246041698359220371714884965976897043951989374307392597680933011396550544358775208586097436831604543258942833576757184980403733956088855855885278933420215974338434426694187306461281358889105328825063002533261709575067967885638366879949944084641141373074251581879426695440756709032277738125645452368808088799715655255631849339928462655191617967957525697547325247319312040673235079707465330235759719364175654051608995170108702133996955924518911202440568906122407116304740568104401892003929091399767241252490140753933532309213215417314252898422036466415346280153377756135784183742787090563014156608114580599071133025252025477640813097938868470192992544183711796859945372187056881038327865370228221452063404976255119796654828842162808260069799618328897942656812151222286257775030075854478302139098533759944702424252278234674377078997075268993682680747013521756676023539299841774946494197079781007948511307302575159859556926317263773194586695180548900172335838827961700247903714710758733300243113468805205384579071485567939500018709371493318471951513279279830836409534503797888823649650945129172213543804958300973520652641883371860222023800079166310049668610705497504849377275245697195302474216388780803145380692595844637210702529991990633824929943940685231670723639938397578057039411483058154617799208733015061846490720079164669903746956018389933105863258121319162546939447847196635642873348970203935074741161647720435068548987153117049711479986018479630481119388706915454351125892115601840011212684183862946239697391115218882641211454057960956733748024157777607657086749536856645315568835964494626497092227433643232037516273506101914633700107339912601339400824300129103354847237177689160929326659083290274232920136055583923773978394907973206828520575564346202126688956241343333395888760437061397087142816776221401881166317120384124451713452122188241504476078749413552062068007845532879824344258768355661992423805912450114928061913964054455907479213283647264564560171100824655712564176593506033844080415085055931744151882918471511400660755157761824245546528152681234094345899603857088704711673855094829659594106147252515663483737362197006696064207582630798537899122653781706595322059335842627534887550652399201947010418600931204739303319843513876314704329529334285391527513222238223460623119388171717394419965610230026449560059251041847951959350094410492577753763004742657267613599015822647200712577449893265652424508034988618061283352454251651279269834320391072402736353320140674614398404080070330861925585032862080102871251124828656795565760197682939433542960201317158769048827489124809489914049662751974218329247217277647435360144709743202887289408866323567831331522888667286892221867128865587594084700845630519387184575818661785021783491229621476230260184319694232035096726971175500561188419597329047695763738867949779652880311498507657824926011553442476575825181964456030185621233887798391705513809429425452064988833637981577697193568622108040715865291735015160471905326459811382186158852244714526297548778698650846473277252676197484053873694741343005249867133150489339854322148034685139833149561334894052231366593850040727808597983675271955450664807457395904481061809072679523979035756287331679342209935922856339172861047301719314350164575922614183871452476359999095735425170376598837615246817024932006851486230558483159227554277032775610066816421974892323522853472330955802594340668820470801037212213244473073096312746947797822337087591626805264478946027765120518199198190164308580732797421636046957422393660555818608173920717388963137057029184585852633225645495309092307642602665141694516263165035545785006836292672007453009711103368191291800486622983824291631974311257638902879607973846126297168309600886090621162845166695098427357681621059047990531815925621412905224091199711722940941227339830390099529703956487273263764130056767098823959756782486349632548212023367720749944482303776871931583475270990903797880885654655289008288420158525210346695119096490044573003285720757877379278117724410107818234761920455637227014623152134132284891185547884800748027314701588178975287564986685600166560324712405183561716184728526869053420998623398576017217379314142393322831016157035622444165749123061395021399430116000039435031311768856630408970591327327237869031401377258290884359208530738207501613991081215067162034772794703119651502902446754204296075625383249726964250616701309966564729660654165295831739353266681174813955731339517384854545276756290157422527142140687255321066335502036841995241143024136119640589792102681574209422990481953571288617996378053271809338158622545277274011939261905716503677801074442091358339025024887986131026329062990867544632394188473340624766098825423763673519931213674848600227790953727034030454572902449910519321780053712436968363175720598416711040512239238117099900958446764871059437599789240107564766162876416576623240157605002220670628449613919651223730086289022154686809525013755777851099279467799893671153216010578126228541780488909811203905701878442574518898660081392889872615501331940870144389596456238898651713577202515471536574422946902680251573301237592813811765009289848386172913327972395035550211219411315321653335750796389620146469015466597887453168840817996280546994125875547539714975801268407439682893609278791559513279130659330332046538597180073386321470782567658118299355717978459509451823637567912442010018730432356930424776690285850652134074395274584745251111918153749244756280811313001276533979260077954263957817878803341309908171017379450180280033019779839256198693243407117645666385879621950126438860725377402516759945722964484194885303841765811939732122135069851703839634514691984558445884175170830903365575482737720901039242466307750641387006256148175534534254769715148261454612871256729536852554320706953432365680720284698961008361949818858762284487512219623834130252930840554254063352005252037651578560221963954304700643360472718556236085609069629003520134256909765265068963964932195390237790399254877854305443432964632891678980183142556979463639605125354092428738193260118704763510302839334495313290546233600998473450707489422348175982087428234992816776797692927534197001816006700162585604268455130079671841897860862969751820597158494495157024741241184037054920939914180007840175379361822766663350556915050280764725619828614319633892125210671535482582587222033511426701614563672999136520845109714060394193250881379886828314345028837792743071790932977902163094832594546077510857802998233273714203580661540406152427665120225217491404584904462555772183600479561984756483699293749855412184253590995982023868560746302214446827752377436227783816908338239282999114911942950596207884229812426103397856199864773706617427682256139642389489227772270173623788160652946886346290349436781671324837751890261253142546410814627123574473930164822397104564647611027913617894363801637048989768842945291961245751948402287658467582762933363606331438992879549580694569920698472610571826297266017493507751249507969274045135199339010948589497368419367371193556296462439903952483300113471083747478525106149626715699359117659189396896428954013170572700203150652122457167619577330859945169385988919759499776067827650361420084955790843606655623105592308750207801673099475943078517788010075247593735127204072317926609415253618932448436898447077330024560709119168590610049386367181877554436600329375078657285787516907218711392028504251183952748555425932432157623847373174867338653376428208263778145719613926878246990387268021541915595434951360328558178189336654736654669331301766546101507108713413964940174574282935723230685067454505644706081332365464173567460760276595883128396893255770019081101488694878561403034058580104574908400683112691828616719159493957066764684694519425644061397985202837755420182478687924290114291915753003001612698378388578919792823337206392560935917112519717419403068626784126009223962360760910027738891111534512259918206718428934952985874389377226055999402940902964921157685346964921415699484404332692347479085188193281529903898494475472644065429123460032955446575156852800230044088959465974540060012091685992462591698121241304476364098813264418813175991275035514788245229151473084386395738749353436976617149325516185237995620971358193402075624305716504865063800332502627933959341253789511468882686896734037084700198520450109260332799851746253458716415718803094992373359434980117838591483422077132494320128328447395104027854009826591567435713053727952933151167622673459343055361391212921309173807896668316109772618718888836512629671720204203027512458611083635697112586022678169394748715678984424520724278836634107620283553186368655371969157693425839140199931951532895238005509631486444781859003290950673090790561442091625411228993300942372789406539646905745851950801406061694052478840703491636663051147850807889388929762540256897376162930549934174595443417048560589463500668320342028820168370619155262873596623532751757814177752077132169942313215144971121761862663486669315593750847766822439974916596349389336168260104450214282894272730503203918544823630423934160396836310037335281605355152860886889324031322859086839484839927332579298520973999049685357644809558106282820973755778196691720608488012336275410750524141650695633885021603026273366193899861748086099587006648933468829772175646060434303084024508666754556829229676405920697806642026983784390458444266044461031556464899407796649870059623921219881838504480620096919515015191318826898064093925962803806206760168294931326079259191118662668342941352611366367295998914139383129033119119384382396215852093229919661684728490160216367898467475183462143128862939350228337976028277924294952073650554094931189584211390586688718965951171778546098025403338166832200368176133376507035897580914071160986942134851196969545003666889727362247025699664349111966463600516692934926193461062665865510534526518341653958061642937436293029846611554256488212553006642864625763774174829867341800583402692991940991391068789363225425131034603263189597246353619583177544480545121929799343235727770448997585711856916232396539203364778309115083464173025145519958824716561066126552913029736428362586948817966795185172624220804927616806831824770260713935725343203364172848856666676566996461462034342969658933113154485777910643655633127866704652732075985174374514360743350978351947885182456950728123616936764835815276562108100760323162908508143150785062563144194757148082850638155496130539104626515354234197398294683773300019678721432368914902965141102395155962625473724502451581059568382273477801349913167068313236892211398489331063812509935928966612156777677584165260142786842444349010788251494283280653817504770118801223612715666672840727715483883655956990865026598811398984237088636339269818654253906239849821734234692244250255734220271687234401583353095293025026182019838944556405902569893776121330654365024639107909660879797670821885611153305252786699360393027723904044992456469917483001055773316418705398732328547824864359613224473442832870122308977498296971079181301057130054955320093415678167285236316200489962238456746524147069448689621536459605334656320816336554067282924567958490423336329230955334213973492965585549835377634307151034874752255487176709334061894736306070145093181662576979768289809178444446193787789412286528544522391153778798797018957311783684835004650527845666107327658958509223007156578126322887973008616842556108684928025194160661639900798718452211581113821126014010219260035090849655081232005467951633354461884603729446951245729717286859744320825313387019066837195106756679821606457941951615735900413770058779767315989980396108392777161025254869013683028664260905744750646083820698851636563395364857906322332333011969025755462084571472547726105920312514465960797065198991509288508859218021563747204403154630350610626986184619827620794803367363277278857013434122758145440053781813107973912613837666065234645805355851917906073332932824403237630960913024413163366387286605320598630698338188375080074678128353944992032087596943191562164029696472793415306604236609283175553865685071481820108358760607717553806788790497798787374725555246118727053904623623162250726673229170537698518250756872054530885700523112380540115892647349847717595584906575673786069136742510348454671366151367646964231288067340109242005656227985045423879550388037355184167092530925198759700250240724382933081524220499176788122699145313328272893026801142137479137582623508982170646856426063358861912703025719130470033766545236211964778189714144812893997385014611071272680200091309407270886606325145224437823361903067275608232290656503845940653719937737380092891346931061702148765244601205806645998142004316002806474804733562968317254630645974295451191067431734658127368986684321178021483508994569698958796554100717037426089084677563488291889605461197632307165838980552026249688182554357280019694152676798004452551578759766190772442582689611032245943278667285802559339634610840936906546857352100932699118430267649723120950027746906856387772739819657057962660739647007869529410429953601345659181372616992233355599852130566821360904012634652781715737629865561280052422532085492833173377241247527434891724069909167524604367393339962963260479220832771069615117594463722956163135169052788461321998873927728980053897054980441254017771230586241254659827857282534514041212671491637730722460686335099781525168164076378241997698660429783242875846400257521614202796422679568087468527253973370157246273948178851733303980029503271178655075054470756275755785923673829190118032885624788948456863637331732309358062936716566008657875999265278284883653460127571592934507301955833844508710290154755076420798437141877083947990883357301563212511161099329700320072461505161999160264601762152905983093286613690689086877207612245934099563846619499903601127883185647325540855129995012793361156948538505736572277044923571512312189687985002577575633966253809873352593550331408430679774342869475891321492319269276373045211270981312931525351564114030675661108259101793381539452862346652556375073497926571214037249250942211972551151993345722748614881383105887155842276527994064773026392740666416370041292536351837405757336333552203576486323558002241118766293449421282223014572256467289780691923116604159155044734082610147871889269826235658025402721047877391989977162803748749633375115584027300174457865445896758851131703962437161587239608123813893718282107267794974613309739330485246818948031124096562075591164273310898186527596933994500203274856188851502632937682005576696544006175805494546980044869712256021491021882370059497830857746149019879168406662076112032224355496393462673037111861479491124596116947592155939223390864605471793739648785370245935545188995909700195594431924106814521723096116055160737048940569894022272480908611070426324427369557189119172972240656278272731582532106330393585010156618254048278593412495623854270866564014203464317679400726991155722281868525147515460584019974505810390476966325834658083233513946999884409452478095423078250168415664204187189565541323398390636654289591902284228966258296778244463826210502258397471405991566062121323739888901383435105049694947590361490162066586550420917048974874674347692916977169045057684759300566749470767842164181328028410290951703977179288374816784979703843716103864918002664159879615669258654631336269415915149417619630426301405540410157502906570591777390471603317210157038844411151693054503839256185470611816788053481967522614002256954729043482257345044777436910188899983682655936971825896557547266317091399903213386448119580219402216118503047265211269744866369659316454262320945110532742826700820198637840845840951349736632441958757501641469833786321883510548412490747978591737853057098894316722608681116648510604525865110688666116385380593616809097117678620159548857223530301451567215317150622168542839604670514884455234009188822939818132902701109652537149853074763511106561102720512852424946473953169700673328929925067729643001537323200711190371392015706347289689259600056878314779874616127143898608929599144431392511665358298814497714852603537795687263146148150091114848926634881252007861184197863895859392264473300856123925410006503335098387174785110793273383596887416460470190903218595721313120811993165760250707575221173756138038058209585854539274531242917953654988706666228611358576458921488005615434310770707405230828925058108423398457825728330805429257187380626606850942600451305653162599644897614728244109519982570657291923515888277257153616718801683441804128826812752754560034114172451832306749120220000143824460478946053368002045815457150498493561548162270829583573206882045259360479324033608665365709432981403926100716500079464373022094466327624281130317406264885001837035356514891058324184935186585520441231802848319010700088894718473046464538883024276259835456497823667325621459627306393355860881168803024640419581201239459392320334717842978891088650806185987268554058272584123480935773304406094709600591219500117912858176755648732284591968734100135944162070313063761975156205198949723947494864472306762765387464164412758910128367236127976626619514872941020573955682995472927045006338536532228102741771997439165574811589820805213894933062478375912954402521085633371591843168955193744235687640896698937916916644275074856346954051552939192877562781055338823243968521539292025374538119965833317831926315520100863826104926217052818860086020126518603725070743660672379881457996732848480891484435190135028779614887766959090970229269470791996508635733941022412682913679629324232625442301731699846091521931184173334810142846354263854452291654249520322960948465710934774457936859447605469836847371362345053128023569311680320918287229449071574773739474702565436778547896520775998896924146841246141070896004327923790490231214036486355949480617334136459811300857601433184869068950989922030233667771710123518091898458943331118754072792169956557631569906935779668277571340909543648231483826391894800804566286492321343957088887748405645790110236483800628690703886185534882762819404619753762848088911574721024006192969892661747960077218021492180011272401913115450428145885352579412136108135434461613548643238352791706098588018478136645943478673723769759107607346819451062683210207335011222198989444331969086752223088132815342445659755136357334737734557889505963428289203296914621408950760180651759097759144890634419736039626565712076196842970150759997689542469913951174789290101566225257473440048107604978903335823593817010017955194495537711600278704115229762647993758796525122786687419227015475776602431506812256672886469117433836056918472418627415387350523811888882241779419097164734143988936087432281477734967969342645559971129389233501956857918954373525245572928775217229450900755717120515884536174214246348694565330733726513844494909939439699767978205083308359978065842992591114455438850386116604239477782304974562186407610738012065582048603529647227589975261004749988718844165660559330081886210225436268717892766568287803954949792446792501357521752786687133325402193987618828683684523411141745743070235971163434521793835557292091933411092060984125887261169342274142167886588520741386700096247203679163365365982871441004946696050636627971880241686451747964907222651677146783484215404795138145175032034706471405409979535702746961069631676451328406860180948404782630385909440137671453203307192233170747569930575215050638728760755431965481934526807519576043801627608303002845637995917185341233501954339505874579046654055566693904226434820602989565662286431797903523762316528066831533427307751264003257999365076670323872030411287204486886385188454334078304634414440407409732139301016351272052854495873358629718301463373572363947870371398124075179034504574188372339063932236851067123361754436630864521268492724252712952116978699720887933320248749348883195199116489663665212026444542543387989390319617455376532158239985097008657364771678521378881851177154873188661304591805403368762888061146143123645930343618452016339717178740531900725628072189198444528317378565804938217400220904231642694407946700252760112031116636392755942634491472550321615299631202884537956378876047423829027558684168498356888925214485822976623890477004830488072650725610000188014420887072351482185671717367641762971538758681925777998490035081193041320524357253208838120164522864284206778328746337935743649914268678376934178935412655277425569844302007047091755437897137382753706173492951383909118656422017257338096123855633448339646728439133736879783550078841826096536141764002427569880684351081270139994642327597482412341895666956248237283351996760208980766986395559481155655733748443502408162603501086690967775565013407303661727540900363896811209916247967850931976606538830184331270173708312667725891696579256238843805537111064959168074651866041191860765073175705769946198179592869294957674180807462315559187793982026119514533708635322412409767063436635068721823230711111029114515140806142382249131388440244417238925669396439581939610656579176566385005015045568814738575468009633502312013352749115644663082224452750384649911074231735253432472588250163512473493645924417279585275428152966247528578775819358685133839452876942182957411120489726994389185225401867868429020985982483760279441122411725455345932850031399774445900998730984934384836489811820694340718099366251377888014621345123681538247091390407495894189042178876660414771880138746871713788356065850124102833885116050562576258353223523624661805890745070732595767668550721636393562252903903052454112131346726433102772680238514802080602003086888290407876078798785257489121719091107490883057438925239527379312896308594439540193014321318615477486378945736526701170666956912896939143556316518336156007908985115514712355269054862247319615356302061664423278798879351333853037102947818918366606917651356752841085690351261533634139193508007675078295423122458332631783219505093095702005162062285838346709077543623577879214927066978772178308640066482049139222725864806747548181820345010485871575434690940345386413083934847377206560331593438680422354961144616768853203462517540283593995330887857778530643160951580700470509444650806565909074077899764814919294052653166874920791081675565245385130162066128312313588579909633471611845900087505515071194967913896746812389668263903946660376855733573659804748209345063078424779783975868146139789654193975736289719784527871061818119658452674772381812491443774480803987081989331378522606346024035575255096027816272977003402650084775634203879271689278813166708162456947558593557178610838231873579816443565972679305124865613830971341813944000616481377226130476958230083596612436686595379133276329127181717516930646641436228133531672416758475306974504038964166240245254524213784618160812708138431571525100520610663976561218362891555298030889237273994660485333109893319393001992912855486595913877360194851749127586916772059710654609638621659583134826856799819208586560315857216248392819384220665122033184827974040055666480198679309240838045864500800078853253668199315873397634430139263656369096719279346710804609232208484486244025741299216944180804360308863641219440369349770641908539524273205049357578491928266692391019667844805980646228574629292134768164601197362039361938563759060117049810733549293259352529787693953775969001319706357659148873335381266158151701315242292454552235108959668010056905005790056552354854843264100681591910165181509730435126366273816437365935117252028771074385406446028469643429044992852425970360027092642712603253941330738586718424206099205970572465461643352033679639608881538660502981142995890185974814210557543340075373318149522115670302674562798314420634548481131257167150827752965687674880728048516593130900270186961911529138792296424309576713364606444688881042820177051071021755537814929463985696133271780732313506227645041526198399511880551634480954194788831885842605206428066095256992675362742230379092384305566766863046470672036501070503937479563073513585327762264832579909886683886020901352040638677237174832019176010619541469174803516333243728319409319250211540936858224860504325761448595540501018589816346393267369317468286130830748340867827739687858100766965259239344287526262476542220290828037620580045732254012174351183160988722829918966039633280306484899210857278071010350670080517770777749265682005280128399187433814368979958776914786267355716240882298259919522585947822844081207467994483401341638184934117370496968201459152178110069818086984218669567931722304662465281721065801449880533880146869664977148858843715637733243563065890498264694528811009414209644815727609102284981120266589582556987640007352280427295483997329346210809658090956569844091599961348866974715273635120535247198955850755670454812718656545505825535040970128593196011731609573998515464035886099360988629941045874410601847999540139183258372808679442582573849569812557284508537250387523163199828202217690436548278012058651962377300503233321215085590792654518645590822355556942926385534860943278603207786100582473137682572326583306958247412853009052662374021263108217975982429459776514511936037986214371940924473184266332713939729936645556467260233559540008176865466690859757867412047881003062161380174513456581300118335972033560720188724947642651653404415364722672770756804292109449835055845486868979130581837025542214400114838233211036607305365326182440928268008492988669224091571247789092969918282535162122655871812493311645500290228220901975824808492145350220476864602704787950943711447631779316021624976556713014225193148086148576301471802522397146657679639718110887008772763405666223183791823860614227938511068199554788803479418944963145799265015642373007496178126551216718230352394775282172519561917475622149309918000033004512928597958850323567203429765256713671707773186141069931662383776266355170329708242951824508610280268164347651835670192441141385538110004308787642745061076574815288597813421564745833609505463653389405935841745513918408098930333906298976433024778570187569256878009899378423635101780752487617396166127174360369336706566495659289414340649016103448020633446750814029346838314735513932786302226996188944792883825714200718892775403067573731151833620855745234261268881739938646304187117055787153470921540745749727362106318787828439212269155554793300582860319918104000052687708150260070046475293934636730393509542272059871098965087588815717058179124034581127496342288333485616057542283700155807195659546516793752042438741212590526478529212433901038646691469076840253993569946256183318674660972956644048241558853127416717250332387824705776118481605259435058812278929687176968538741666344867516247063493823955547484673109671024525440692445834612462886576293047732294312798223608806762882215625692094151982640076659781312676041500038553671551068196506125456168732318041408694069277496303039645904853469599359374249148883667140505674120880861711544292648570818135841937050097764211639845089986820991124324123487986055929617617392192874743419162110690848611278370871922968886830361734595170298627849254062412258543588730571615514808611273332658482215627376259911599068526408770825003690667041844964710555329880946146602094009692797140000257238085187919455636620374034752141253277290611683021889091213450063979395801234838808555972980757496094074415879158962234773516552068491136376514147681341316867103565109188398080002074440146283297658098936252899410460121929119912862251222823941357057195772036251829031869105783168066896863319130800151303471089451977186230202412793399768775132353882060253783518007235649911678419449000072575922749678495860710470486732765364221195083602963628980748104307984209721538591417419659329972439927959969880622139820723919767693866643214016579603012348013811552115227250886820059444473114315394105958698224694787409944107122679330641866947297573039194764626958366077721872506638380540541523200566473279898260766870710681530429237127493960619979729432249852485687061826972974369028599835679422144429395789379913444581997464495448057976823500328917544339615210222648474652108406667103322977365065298442455228187242009496563820987128483875357363294937232271394369094918223136518689075843371197742354794727652802386980208017509707963781513334388946218628530439988492906808709432541727106398482485260323786946438244978761669053894278564877803545437910476640535352994253169106955107867689686066551830676530069995245495473297777398184493392959285341585029610723589673956562149966390070755508745422967304215485889663269120932336021017297340483553100574032575728930495844160798786694894924976818179300284289727294605881200535065422799933815365375400994272141421793407355052697681497728063254707152860571400009627574930148436142463508596933229842628354246286177099582311571967573973337156116725177315782082381904394771198806774332511542237120981947653332362842545818569190530353157219596959071510044610028205075728658795477232091453364360360199842545863353314704749643858617311037679319479730934104883490474646914834112029461824362529498917869334561998147762903985194822191485929637865254654216673047894831718148985208231122414489255606506118928478074641559748509974845052622215691430554059748584832015471941530387626680452929236159473616845008487221564928761879190536767501097279543601505891885199794738154168938385748568149475052965998766343187568026818588535179322604077996421792808759750128963283817377594282690786173252962125530895429514457820961633550145145224891636715912090551347481354006418939515652348575997299588517802392383528427778191932758570218900120304369993347384024360801891149115125240818214105353371822824048891446642631076788039519513462044945698301940859072527411558629401676594791457265591690828610149146481937735251875591341896727460339686943675812660261502994781244926368464738617709716756562990560615419577923981658711330000382843208359012966483291458921525807127968762457463175287407808915545320336066931014672118050707977625018546082856631081550236600554246994021619886017708199690752846813083418451371219070387372953015874271875342008484534960960490629428053803948572593806029101800810624974599483833169771283039061087137597830706997741875037228491959635081655972882437246998675983765532084922807955220979691413388541559683491512398594447365429587883208355106850058156800194985685275872979011311666865398861372971505254688013192345177868100568031640961266540539074414198221661108898566486523880413588866428493732016770661827914470045391912771684740157320985727728443110375201086234841449964200544019324795307114735578613604460033183872897730436225523769779620226164637266828269946740002855121078413563156146979351505269260977593630516504516320544000733999565411855016478195177945472806428666399756923096883314904008618425372094389478287015261212329207451922369033706685556965954007670521494476827693375390143239847894303674012777854714915142967266247776229725459159375023245988248793628018759362436053904632559885828001326697798229072719319099403260851411349095998356248460225770446608028026430521750562423900666262098408787389529657822402054032144950904413569371303828468070499603578534110471695319761702267824800724307068424612236293876313210567084828061103212746948071915397985753549936197042061025535766217386935783794728667353660559622386794565866175283695748873416998653693293263030929839323984167984446617694025146474337330961437983782438605645715709859054873636349020051177953274114521540009561854326628565418599816061832507558031075458947622787576868829171672759549034833325704066523333072885553301235629172589724349569493481637954368404375331134857494909001767171007271025045241375919871172865837580193305401768349698326688870097857860669567642157824038984045527401436148291002687861628118423365987194764333400587813097899941818942380447534057872224562066166501803116364637086578357714826527400634298352053765721501030316341958437767740555109729161653087461149906611615376102054623371087670439305784944222016980427182304966293505391387551853841673240361527649948373720547297878816544565381388519787423842811418470264654120926124882093998205426624662492198760032529871495647119250998054463138565669396902631173283329300117437555695472575020418129876043130506597466272268341172854110729814020867130272693635337663054215022583256009655206698769288633621406034345141169700009686707758394338102303577235664830592368009914833635114454273951660636443533232660356883544029834738022606514289841668175612436165905341861731821315946026821470181738302507256186714794794943656309989419663070987574943243511096177081020297087546995918547902568564236226031362134924657252618065311537568252028541639643625817232796426046419049858931301559694572507653663250956555103024287814829788020527361559626791060771326642491413673240739423279870008692791435933958625046281392533944276830990806387842768995037210411829044485309439285081538462319013839283643555795864724521101964020244710985349084582942140821328586198963856858284074216785463509027108502778665260926821776091638032943536179698047671479796480409606580135371170198220934929497435684485518428354016536286033020795036466483996428455860425430002045921796252284894566637910665810640498512414162901871168465792287602772988334292541616172948312918220177367949682027175690036660581119579094824473932247174408988762550492798806001401954691303518276862015114683172614567016606357623339937111353038491559498348176377556154261502515106210490043774041295167300006675708970473950832270028412687180393301742717705261771928591933329080863908922015761786674808456715572669501141323685828252726212756966002918389212284298390403377853880197102295691364473290572964081771260616929482043755740631878660544004691174089464158328909864273457573560019492128180019274096055710872493235787329764755738276008761456293475011280867437848976625996797423453463529077234881435129057793575268767771828075101919731812094676738537307078115889176879728206735296046787924533142637164368270744924534358947359519302907837779392994856315741184720660278916443606994009759268340397801530016354663694257810276691179443727700832886967173198590797458915129150255341666037471478776573790836232616894000383752407113026836136511652827812404091521834243462646057887098565044779374583797399323632096082684060983472534763555823375988518337773767583092535251740836821315340798429432765643634080844505178529856356075119292022769383100535318300741486682016202205534915086353772200149834002551794045800314517258341426019021374850086660365056556038905379041676142377903274551340420056111289973568231284557884926829668502809345263113187342514422933503785126070429471224071312168910468692574852418093152864661814747932862891309479762379518217497042466677413220337333577131648944426842384901918906965128409876510289495018947968307560833908480019414580901472519713862365252983668338647044171517736738678230328634738807398269340486844285602853375341024838341968487454935994465232937994692879694188628276985207850777638569208710365735602162244221353823581907297020807178038780788750616703087660617932581089907780373019783551055622653410296213359803094408679458511027535313320869904915077742875416450535573984607263531103988286975969646884549735415294794987031611657949345693815076276503572808563395468843869870417253398632535054911715846160877097798313353887097808708505010186510335631772677943319090615298387479498714764259502822913769479135043727627794084171864954000279496053117687242452034015910481337596224591147453007904061061812885038408859545206523704404788533237843272022751413052718916454491849564587764197829099764694932159283460113723535768075563234053585721931215525820568080944184492591333749940326262201522263950587040621257251681023146827610506985228849908659700838822479720625624353528387015364157190404833073868963523215707499107627124164557494451128542723722378571374591175405961561591017739599250803382522983355731361685168891169757232219099824343581209628097737812079767107961699240433416570630730541419298039500577835471859322133025398430667917129179226823023709340163384792852446931025989469112004469537380256310650892226873077849047495558923429423696171753471080281154810567968313592261152754098445273323215495426288529676821769301431573763601818123269523575958323207516370980576832279654219896194608838257575473742642692275085866019973003446238356654966760494786857329390882257755392525276951525261280448464822218763442427718176975760039868134331463282423954368234919676276154263514436457803598295539570070859555504726782763078650007412150117859500486815317033248651283007971130655321973073539759259100607881014975983565258335608313962653516714607633112223228359269024619338665860405114129485118687241221977101289231217384933915908562941545013447950391269194601448577709593233998866559281906470106979137837121870192185968895973738087156546022884571194690086083526308157536699773993932505524807359381840728693810844424982353785576076014406637924935256214413948915728781627296016290470076147826963842040676939159861991692876215034568697647879237922431220693949756896786231396086516577996648970958846595632293140592473194689813258889039529653603983687998547280938773855339904024779604717327513201227778661898841670991728091207413832768078479674449754274494002423167721956383052935469260709604973602237852533580115111678162667729543006206034477475898081673359070086445162458970593316369387262259391239254869643694168885765315299258377702369082860627807775833966171284210715481340091920453057661502011445624752669550166143254331150696398569433852571531986197697989012063061533743350183824477945413732472204478642044268051319070269686726188468157318451806627268321255809191936547394554567880907276812009091787676239279177201185064705920623008936482232613134282771215768162602302761300106914180198660963075360148894948184125257037000485956525809763818229848995749949021389204483463874420932990165531453084416761888487222471950555691454155439984007831706318441716940940956439426856294017541165243006920898320655176213075567969680840407438710671531141981568357163869556062585477581427452484907315330432083264663358285615692772836966628412636194210200731960966294198904994582024110894514882276863190461984656762995228647849667469392450363072564483511884177506900880524204492380658252295895299409653618892545039286211247444366849698631696811157130662080263970218891082346801948059223679704883791270197810134156090071839938069151617715149247930651902299311264744365126221766564988206678601132704166749794319699491352949537755295381901499817199281621439254029137657767025721328723120343899641496896115119698767348527368934256302433553416203270382312375881367079074203369845681227544115399519910910656759093849321787631885474087284763473583720199006766993333444481259278875858104654837723145653489576795635571854690903207487054832262767727581312041409201853942502578130216097571801630148905776879094497373201358334032449732188708568673628449367534435857287894045651897010143438835820108412115239455842085905983456497404925255612869894911331133346251958539516446917476309769169649143070617686716499744190093067265491154467251566195322941784827597092899487030644917936042709591372854985214637403962860927520332008176621292271889746338409561696203737405725689951412977430418577567253072502599695929675744606576280044449065378697253036930569407572195507353378081970053735283246692427713700735799369306721986490144058638659566777733568863610499251651722795253686225940830390272589546875550260880618870517455208002128543400461450183731279555301910195857031452446107919965744933771864096458615730260759192353765038337704589382013533643331115685113228225134340201208168625269313653062421738731296458132028031740103900475692941989630069187094822780100748186364744338612022556608291923384055152225971435538804951464656303266415861381140102731948144595086078346332817278075110023690451032150838407883853245539305860587387772375693270565263643319092117101269569716288300942486701217318750234287899952253042007046584695228061566627077410419669915273552617893782717462743571261532200094670662826347217068756417411321517526258949171616007165039468746869546492006403796559188482472480948239777123838228110580630458515380596278610081707101396978657958494714778274944375318494457655544070088984132702302757778128447042957204755433266679370425443627458575029669922757245133118247814519643177458949290734166473279724921375852323176886826742406447699186360343944031979263090100686264536745201156149066391506796445206822822741890242826526131496043048550468808034002164529963683424448937427347568006363014515319147930260726045588671152707846416418745675762173515104333653674212176819113509405561912347944847029020139033924392825037354217448465466044148495034434277488757447624576706382560283838401855167628189835872537108762315858367376630967557057137623544345389151667895972955450291439092913112522249211500605223951020901834431869746464884468975678171686751071153525737442237620736269766103951794746894718687237069157764188482756734344577945995968315492277781287258115576425748572250129530321902820119484831887630479903601042771447128755355431131873018138988479776941999156260717050881110884416187183832616959466584172047455384507076101131001147875759003317487670462541808103826073511135380760075028476799066130669924225284681161569831098698911516643840389923020148995367113222463795138005547945713499018078491154900260233189417578958944259538909094702665403029408766645238642405593377065078071764610746755712839935111920041692957055835189419534584190193656041556541610953220165231565872053934114571138105415026147668426604256919057809008309464922793996494567384885889548504214218773396992476481269974962387573275131164176346900859423037838505309003876151427328506525035559908391428781959505939869590210798049374386736884824099701241004406065649197496287294144010004374366804408568802612633971293010401109485038522269745803693687563645099395634207757770124198153355741534560842814365506205347379692786319989483587260234312403709981256422339936645073172350721362160097657451259601385412697240604219644958863191025016943380999160738247797332370925096055483173390032009773075431016717924684906528996850375269434813770818457988618037391410085238353533748278136044939097666188958957560118416635001902812298694116373827393276533578789683302744030620798010948552075952696767770498157036004604280629952783160242427059256613131154843999896067524540234194597310097669219014320127709400289992769655783960497321083007354576581143762267870265747759882433434335156062431740944448456610629882476378185606606160833648348774807553493324696891512039327808801456617471555031725656367368168329948355323428033303501146498792734496835895850694006795281030863019587413929277106347724200230969165371930212141059569320717561467626178725821654478738438796261958693847145019645050359377734764726338688249574215508546482355587509316864531524276623720842759829452563991879395224742224656633395848503047025066960792049528791413215063711497203790689820201886141792866492699720826522714117930998729257496089813807870660509202387999693071190400627381438617381634316168143357369455551264617393598721863449863149008367282648395983456794054614314868950150530267217978547104322946511936114440453755068871845768092509419252505049178722930884687593992650187650683855349199672659611744395780162770085293427780160225047805632410136645303384167973767152801480664159140734099890402491242076810771811176392867921457449086096794186848838029715888873343209445691279948068609803726406642324262871835919230514103371706611457119996323034876643157713714108902097553164313449835778625382436821157929835297978105418972976081567749909783841697572963817292604500260275265634342454795571355180355019018426856363335686696406471886599534424942049832126459207469704891069252834892278770696888932081325067612821175030677371382606519143233037733348076183373027923927089316285373025012611886517988849766229054438311537352506371747306783609265231460973674306993707066960505049218117168287759969871827218136584308650169528741445305536791072228704869899106743038640087100370675923180464415876990271576537364799206801631444950606213341437877945025316822693742572322364590239553619119252776299439341769126660154032961434479589065196401798471498475475490117357309601592593952151698336462692893303810698140748689481426266628442942815981252307763275970591998578388482788434468407014642754108799010780022161813362354956553062925200652000073832730846377914941910903307187400716166048075115433951682498131417694168281099058555111939767147939199222359506686781179433808147263420928317001165363195215141951506044856912178990699149120522244110383173486957279867039833302748799897383338055650274007976718354331668854147051576164552333127623879353093304879204594197872836121745436339543556414505997186196264082107845582407677819041950827447117348076062531175334574915566177124926410372665864800982435323285593184419621916385680060663150523217025481640793453416541440574793236022828027164745930140563162544501010067544555694936413497059317834461418941307451133163711903244304262737726723486752100885500492198483695372271643915011844932937822060150032418801328656098912934655948114989620661764454084655515277099182003313726672310737967719921198153186775367797838884791226192795490927946917312077851672160077451626073112131728005356078570712239599645971224571377653048535720790163637001235914427759715265196831200828651403329289383933944724703524811997023298362612319832843910888859406598715182786830579300438134291695310637482932023812912977804637898462440001566008819593655014367360397795633676921378060946470272105108544426181457488435389377911932652781574288013441426957215562133162336258520974214184118061191298928012177241178096091348490310340597948065047498737067951590123914613736691740051584376928341137688784807640609161514873866078897856159401563294701174162076742652848851267589005504269268504971425788221503328161629170242400881299549269093303989774739561419430188182413219519789395743175968391938738386790198290464438131683756694937830811427279800924704268247960450558810302183497165041821723022294194189239777078235585215744319212249725268838926157623831406057190529219256823699640990209220700372497413550589701130168049182351952441153546478940736919291457834824128800635065985497997878194552085435102561894209178302232214823805896765675450530562699090940403271428287396528943041052818198595131043695788426286787541477241340867910257499375982991858856457483107228796504676764666008671495056846199884502960460117484107029614034805809547499920401058458654899795240314255921393014829613840655682612591991350545842849535942781856543374184236549896248246818667868608645571932219105899452915286524500772182275945305092430045173889670036533758686075865318078001053998538746776294467603549243493094337969189521715854394133489183041697397458631760910913771462206684722586988877422776321896560582276667974856779876095031232916191956650687324702639373085992575526617692724513078000030744810290898489809466158747022586825534085733050879717745762814999291689543445641118139007556096595116272689264896065769050825062068714582820752421464678759420535878157711700350078713707854131170973655796146504429983785474402142232278618416964286591459739081962655815007331667706650308781206749068491984480329901151177414977437647151021561018845260222849325838400555436210479613665884984706919944938856369084631604667375607796581792496253507740032982799876580971947096671590450789514217343514265085395539493057609129857142598807351107652987041579946674800860943599608285964491317183043961495056822862564316426285611421344870218763367730788222377477192236294237834073800993141089802169792052400619011141256041773399822653661265196400589611889909389185368741364979673556656676552078115256041929776519470707623226532960547297471090984145002710516322833459663978948087467079740067758044578274698641802876048207941517642693578952240232684915181126298528984215640190275368702654719759701652239705648410105456449375289378344219719946051782824091756049233373910755328398975961565856585426543507319574431919850531119350518336122910388006734029896801421315770400224286864133903501473656868823203278462664928963681056160785961868638671942218391887074015057024671926361033151148897848778985409061367543982684399597517718136545985337183457508167135177729571694216406760590195257392802474348356734851384524805868990667605836231061374019158458317925354766408992792251925461157639703594011690928507618385184212064306633598272796985958713205046946217123202550826335221370180392068609993916946356950986482325333466297075744611000633393784814181269836653685722747802938824724192406070625994538477862678439530397417995727350654382545585410169469665549789715243027053351876923781066267240728908648252806518208837199465696146365984540103516523194386700128190362870334078378205463260860940735776949105016186181891290723606632990068114835642303998124520952889111312345216215261065942703468836878504916460976644649313057758313395746240080808551314807877563118753000457362105931893511712483409949370537166419797062773670896249840189838544266918103798445437981594158213828794841619688471769304535737918055881454486229507714273292569196110166655248000135118181730667130935930862407324767270033283333765184042232780197814624161448136699292544877559853228279947004511178815193676131696572768708743017653073358877797500649838604796258125739682789596923341143137527744884609430136593847183114943941149565519329544141865734559729929530600267965189282249547383266461716162105091043241377784339906509497784615623935183282355299920868938401000506095447850260537877531301340207095717324940348255193108852308324889419819093337666740038681586251956614440595834634358040981283133782818119979451057620651884121839467869457396532410375628072041380004722367631182560719952519268941397651104622841971925711120861209334216606057987350534459713382038324541432000280270008038087433273878128605870463152931418882088470443583161787827462087056884519633962745577230116505962644080644488171217805443446225838010986530387659024588664883422913670217388315289807437984498896251415531910743959200459644221015792506523464501716838214973811986937892232886652805333907890177760240939773243886398556446612822840663570220015380661332286112631490975677132480206763523016882387611585057693406349964377292046451575107714582530263195392250590003545759767569049302128511647662868348263631673894315781031914263676707042320413167297732648399989357564849591741100200156444025373265150427632697873262930146947487306132034885010518815545170024799723092825991961413640170353318313527719502502935036022152335410810656401162871461597696815307790753153247988772524937117407956201122705833360457259648771525989526897309838709894990295929787225930199198459849885389539847980509465787894790209528071451008629661118102341924568459736471909123430546732376821515422954803463484777700346228014410600419850554238314000532090148178410142142234432895478085210908527109451015494846346190863096844496567106864667075671938844694416683070071002869404159285309753188114440558227145708175386423396059229658773420062488720608008357451598502531761893008225744684572780057348268733221892214503200399955939975046481507020688274683773804764149842084982505764013424761205328040288545400200390531232674760854552221400474559758543628544514230504217782491173866004876712244144891444703442932503339518033606223859703490343972935374125862572189896587031858327272732320363344400511056422009153440218537642015591720841195429049001499488024342184920173856140939346924179964659904662962635748586170239559809791046181135920164907326164888013387996399151511123288923562311126784690697417458538054642125878440159457094340642102684142297682971030662994814468209175982693813084097925736295962522356276385464567263564770184362619933193250005639150660487277695132714550094476660959186263157381912286358092013037741397460287444172087599389942450303458901005928267398273892778587599802393419057063064655385410161652939179762077269590486186314615869203388575696141642481335204639997467906305369090304651500029772323431904684794977712239840224203996718542591971896181309515355999661829513160563301304944082036072320928550663252873688572701537030942726872733611439665112700500543123700062632513748373913709069968724133039706017154283316111171880471142954632442013530451581539406154383144451583982695419553230203912444242755686046109735849297377954870573822649714914464724143548089684698809134417578718440415875489685048869628433784050419555292648655902650620973028944447313141183626454049970947463006300725543586875306557880175258945254804198193260213253548205086078819601538388802424344391456044404514375541939663738700778031574734457635330783292930097782257050244153678218624909573719562910094493866902363264014937964031564651635717275124973650788057015506050382858416468534634195764531786423877069351870372493592489476462728343339270146276630071318376369072705772959887071727659927852336228560655506076613111060235110691290003132902897050301424187643980614538999977661561530185708982937249451847933379983253868726859399030557046964307158271457145604229665266847933698119885615516550664500755493822772237247531315151152153419229892067180273455462701805771186208639115308574294895375101929237302992260140678478621200947327111540598692293685251200215435207071210284999397578938767391852973260645181914819478446262145753759934132909223328043540668883994801344091578718388119230894917045085926452276466153538010750617701715648812794594050271707273793040952494359676792611714103182541536350431426376154699104447592492366047742787581850725733593880896324140975631222641645854075255043618933649957348341861900085232542670669204840419605507499268744302988846702041706214194079254969807388686232514490032211583550419995673627980495545909090546411518615707539598435071677991791303291447380252841491271199965983254327706341952757455335714545100149343509213051922829191177297952423602420167402784209204544885999502562221379701780685431030415464183949310955035151942831295212623731858207490744616384264873871019025924164698622971632303387911424483666350693732613965870428701614110949463457180342132401166228516614542899433347644240131828675652412934782296376128296063068657001028755298376749650104910723759700820204225426873998767415487646616308426967083444175132799486796504246359917287194485036699676783267498872827231674069554751876148356327137191646747149560932954784175483526096242216724855913120518173710427485797091552663126539563137521693835794056294680575318910236483824612422263866916849251426114341058353118171756716460267931518667512731192566934948306591896785108053357872308655155104085673006587272007145353304837533013497385703208819429129601912867913789421706777830781589167033404478116737374893280978036813066095176411926679646443187659352768857609843572603024835978583530712719548056297836056085806704591599381796111134519627872151467333778100721967145483152639896032108780635357244687916373110507539078836277213221195350835776801348890257353797671340668629376754907624460273870871179388038180201706120358669664538827893513325693685857526192077935857884291066420296332269953720694390808806043660219850096442240468055888625554390790290344721044527572190318507932172811298891636244788281289003992557029498679210363410437857288867262799364912227154949001327980699335222823908863693368368712123204931665405590305548792585966529226363418187783427149346873141442131287843637525593007316064400608317418872746381080463967137485764123027974244872015865717219054453244224496049747690372738935961063736068169602526838668229394390524483472116271440473767871424518097404441476231155585336502783315285080953341773911587633891479395469594673257901796879176123682055005102549593267471313429930050388692149652698790635295529544612079188077503621472852101938487257933767242366186604004737365508436073039823790163697106757332221445868872170069867151271255731892483174533208139991370671292692198659945430465997357936520164952759289029758359438555669728542837709667969169819062831676595975166824524428272835710052150414514599152304619235028587535806145278792384799138651644271809467056017804974116678195620161859245297972510680954969924753071697977625726259548603042734891552661584699773722787253413991056623279390895319541670114808112610509933501442447028936727312404738384459473895136907031713358655145441459475664740073325132190375941567147532129442738175200834630107330153897170897208844870870674433331303272599586812791287190065673122448319098327783382923583251083558059661766383513021530760632151090735180557712788134438914159022152577604703593774986339532607923108803804394690121096841438754661329330681471588963950596008572004449793826598352658594087950648375782047166293043364579685144046653726603326432692647040938131384627955370579546473477999420111576973599052132868012048577921334170488545605698759129841111416208402474017686057398977916156707296282341957340859497918664763821668100965776330470643399550673180976009278161726147335901761183329546595892579700597538816863036246472866070703391820512986503158518630008295495260321192105444985119065473934698174724803254582104484356676062462462919297308104901097816323359365391929440309628297856864355352770636180324992450304223319777114355084404902013401835922377639728963157990026274436700573439198843284939801909357282232985169954334300808068602991868636270713389391066780620564287100825967690419521846367221550919194616842132678444048352898588573071377513088612439922168253718649077430771678692694511454335703846261916794438532809327557149536653069108758221649347183877564397053816023391417329701024893655222254076655251177655501074558204106310462971003642625374953106681828278653146612971401144418250734999646420606055013284784396707062316220345654247819903645813770559987947711899465845778526583885116141193773051894631188875969359574072634785875667697414355348160245156198317313553317141032288236782769835566163549948260894574813633997370113846944280798271059222039574298325044234338444312185584392127464749797233188911713743544747220965594962920062914194540929122274216737556834911216699112894143362872103247919816342560197240342240282635443127033714352947829468099148707141401176615068325304560665204752232660091937034424375659323345330724427361056978578216177051369476750469193412249216993850402596366623442984586511468180003096033755047055275794716616602613123489565292406773955190966722951238470867406353713492233461868382978587412350625240765840433958797157911183047145465255835762320744798106705514674977626663794386853570028896901122647484123238759067413542612183616075909158372565763216284261691948063807167793819824106364646954060420299838447339174912916944016196048837651888765290943772209048986957509917996770059445939235075191871535041411459354675669746614300191320062960906468755429777697290361718727421917360326782155060178088792623388562864267817510551272701423799251796773397599553331540922825217703443524808932632476198080176325426446441989077353450711310273422764792547149336236962753884062441228096811908812435450558389709212552914778287763842289591900024417302080494378030089877103595845363637060018880923639102123446728117802745760080140631465569219021161268885133556535716802758739529290806967541264336038369548085425393351812082456397092039624590172301731414957941722614988725965690306319579583726940846141291437104389824623226338340976784055406240987718520040286450051496210586317916496541701657110383658149346272711958938385906637811612936136458843840442034312388393762367069558619834733567254871451591359904301284526637059611047972461414963927156996322640915614797068278627550998129702253578156288939140817096627621897057154214443804940991737594144309807702384927598582201066838708931467589097363277709130596189642973519053803966330182696750217631890752895590288392561382219776649116628132329032158243265412588304797912347319614855874599960032393329759456749716737874546164737656305095052035685329635084950145794453930166642645262802477613741201327436611441638070435150836823981254285555956052068551376228759478617010405940738232669647946608195318955289238843763512667315941720978128952801313751976979693934492535953364173760157878193363739370922236702322262421497600813016717180746512049225693029880540493962562990684889049649543088996549399351128118936149121944820972561364399496296418908778258162049064256158501830344281479987871828057697799780654554959385198790333523159943549425433104729186856990335545292922504011211258353423838280075286945620156856962287165290900828841513231364130519031396853045064390114061236253231119439777327944438625961091305297065568997218092361912709740534782227129917909588126314252307408495731552096542433167356928862645749965589379322217679200208872196571210829451412506268960073054290027794059036185969623478851216189621984548550544435137842476157196650213585744413579091670932700092179237579458919323298079158741200493996152263258710017057717003240692404841780141324797071258688537259071764222121444996314306392588511434676269772428497382636106248943580417951533678828599090379938658710446962447432914829080477578114279239551357078996363593841970848140271664641040923980988933720988680486866876154727971989498546310784883050211506951136925051208506662346287401307575934410904428584497124185314769105311606318630170548277001293599182652598113034529496603327576898034594816732999417007683255485343139940211128407824662120049584233985255705590692176211010602908833760141288492035325321826448331120565376188400838881372438687320332861533431563334854597677188528992611764919704680320899529341257176691883671662237821130359083669139747398401492748157456503414284643216560998631317551776985041184975139187083182303616713637754271953292782251242602438075252761246070221350396964568857208534434678300477602731733450375943060206857417470306962295321964155658233167069684597502878137343209530376647658006371272506059088158463988785803143241998827756299836952987487348358595859800270130124416259541700556963847972137694103079931977813170495802891279636400673875242845329041324809946800623155127492482266784021452614800684432949799020479320798452595290686097515568620773159116521992458790752527133400362396187635823352526666904769439887354188431077042018598127054579855913939014454052347499610197642934254916676466811090605992297276149895320602498722261385867255812459475483990678512108127559273582858981582252845611880401357922379521482840932858899504083978675108419752200613570744845035881258305438592920753387361175449014340339334548167428965017035635916074005145492784381091606593684817257149078983712077709041021901356174059287728819028222055130976460279164271599948820010208876008774785153056104895387710312713694763002014665901717968958934161670261170449522878106051729945167751047509362073031686672589190096872779089408425473705901789612813602443840156613017759614076025248645143249108976925491446765430007036739126871344133122620178455689261032798098420326462209492080555414715358438404475446954383325198254411135984318969404306395470896863020285219227638247031117085345487402608515998759651760321650774356829240839875190320118371291175517792948599552321307011502116802866380773734995539290785746152213774016822354328905864996910902507550911097827098353989731549435287820515050537992167154668522311278473204793301247218192553001644705007906970447654779007886422161698899578726535505162993371008697393413530787035070491070512100622690778128153854786957511622038470555532414712453074774742998905757352715168304819303162637109336674310696666203604216640632909321392545860249580492356107446855250454403691968838053475668286861025448341534645955027826723936466938934427873492932482899211080373564749590364326674001100048215652728966008542043256778462663743852780870169313020163416085700092774854222176822660368325946163786361217292153867628572472604167882610873763611839122640209834526091580621073185747755976450920709422572654244371053923189526883096601451352975354924463240657360329923613682444419748768339280638748648518712998610004339521773030037311682052104050924151632248615363044643508406136421395971145914800727292647698934105450184375732728076409881864640015153826221076161277960370758657893064569744057678574273492164236694028776226014620265611001243036373136132676797799144194331228043842241180682709236744503181199868811897569205302511646246564349905312146849457834728426974635623890578517470858840072284830867721082039454594122553912235880602484055528572693416641062826599679726304338495334964233067121155608577633854764306921775317685974121320150270924852317412108871631239310997328680604608856972400125097570490059828482546667505561903745937522935143337185051333667186080306823324856965896920559828224097393472014721765798897625685614562502400543190648017252936243290877985118653584476646344384178227293498447861642197937935186549501562312660634684080141932320597368637930160073126787217227548283654140115374246298545257721824474266652941001670928734498694608441598542687455352514959389725040271248240814254081017958658419800024498494283863500378889539774320175919327561028632751054549886041679353969263370132361664743139177477139142879529885008193187539962064781458518046851419469952025116465960927653369435079074978731301203861388743754259702227741980660209801589917121983416059002873378411195150610592859172695517809659931671460737748829331217538377484630358079650584778501179576677670649876114770348112061170617877854937060598978911113359618697561376290856807036155016026442547231025945899562845104561902463478732201117588892620666519070289317452878516732487663899707607318517767300596565852007795165032716120363137875279088352760752400109464838391543725340752933728904918332620266555742735377627402982951994984288774690661768517454555292339815439766603488278593730489873105033773097843675808815910882539388706436042427286775498384844093891451950602256467743321641025262509564780241443407382965532460776495877657761904998819790530092074348663673946991818289141156048154800563872296092384707791498698718027024955941576581847016091751444071336470290913258068857893359203251642007606893597613529731035903873531160974519602786308812342146490525684553101476492461241317665128454557790790993401850352253905948182167410751285858161462452715123321911653736349477533459287207744230841597985819799063423747263517996845243269783987852419460561612503711934864705107076715092476344137716823855142650880888741274660592328069695154691642202105230684307566915976779729525377950368859810613822334567282830866771769721648445858461499649110087739904469809998580921010476764543561348881517261893456624523024649694884330323873389759815948687990408193058233025572590545545418929989905724037044448967426842443157312342790553041480933484828452526568917939979649622876833573057603791107707200150703050802781184197762754987700778503023872076634827116546314158272935219933623392262145408893620584853440035413902477881635290328931872562087127372861950951775608729600339683093151382619957177245646475798074126188730306849811749952279785247327237889607452429089021647045339110329800901675978900904579070695880756734311938934327172128252831596310111230656533556410845898378147623939283787581074208475438809822402271432495302502291890843889240434217120084156439279858168122539360672255293113991643365973741761386836693108215501134073400674737502168990794210796951893475737454290607113299741778664925366995468729641967736856949916135617906848975725858475895112260690151942227418366247243045600710650326901869681463095297211445892232478652676055632377384234879580148791846397602401900570320426741567683287343598730426999951057225508702533005934164553416891751986557109977375856690208501816946435423408989489314279493797760393165551160061982200223983586336455370648975207576670057801573745502342343652286235331903645071997135102742182782934851696721072055372358907869207368109181641698145149687516498503707970279934833876469909691973292697161716463974381080963719937829165690019789438014120102688553490796555227097570713300639553973566980385502742394961121898889423739991485121900745005053733077720824817915955827005945475335224827041593726274712741575870386809907391015962961292211659816848195762509969714778456573239224605551532917096458119792231719244639520735653300885067730029661337618616217155804277255530192099559312836456113448887755818266307377384005133875690338289547109000890277625648191788733289729581421670349396689190341807806992844827942554676018576909175291568948535542610572988733428078437925601894886784582374221598903824154905852588554234313233910648900307227641827148230284294183722785287046397006363704043108100833069071447164191397996106170464657452328443605932094152543773170324082902747898164452588524638267553614588143529078447999684708084778365477534255904937646270360537448362343975119803341910898576828697173005339970389510537845590911782000774218452857128949692727049455392890820434231750605653593138143833628424573354191219459576767523185881699662075208614730079510164318878322776215703656086905672240479689050112955309207001080157575348677665572688539356220050226764244164371183095657899224761804797877886427786641123920099194309058226275073223841031477528549372799935735079528145437805017836916274492992148604731878021960004638968124009556456377265770482179511982759518582949202657931441286550346996514470709622408513428313079095024505898487086619381032062183003298844712912477915206593425746179146609510756309966114895687607504763552319217505071092233790099033153110886500443511149404290179544437508275513769445240804967330916094281641768173782543358697143324744535045832251663846110096428649627475246695371061493214396283482176533822133356346069030930308746116487765117203900422582907453183403998667043175818967226463853107146004741510114942204140990704903793310489434082369320677462988177683506766175930607596675802864621442073461473981375834119762880938191864625920286336308949767013554373112076691345183472959702147723232251395607815234611360145878645123031908421021655228460976356976761297695227388853902502199999062649717466955913808831023116327515509707658876586852594543598414138374704086811632157643912362698777332714954474561887859818658023591155673327023125644323394993543149673839994967703977242593264375534261196772324744433494329783993096733784155589663174588112247683367908101063442438435979800640204693978469069169299002684290586836155364217023488887339887523104239756275854782480094831215910389045599076910379634316732882191327064818982114109964620398153002319511567502157474579469257991502691939247408936984891088935080393751880866841729747188083568929118025699038048752813362162654335063787968786754630312490944467492277952911824342352395664470740978861066976842988512205998571213127311125496028851613280201905105712872714757949586357151364011353226007654992341854364047541843790580248494909311605860105055456647797222272656981496645369534475517080595200383621865006130865241962136877879304342052223399619939353873169721954722651156379874444079598623140848161974713518319355370928221347984669013143906286472465390407327813028132791915084398596359466055250130992988771447537422749445588210525013884176620212319276193263279988170361516167285887399066910640018757180753065628069606406610748951534900269097250369561212057765217046775685077885221094663342248049889950627387806621938994106741594565535585510674197877948757097891484147542030777466122659758510853563529139066971887025959382353886840734463358658884505671073073993717396721783764495787852468226633765297701656198742530691282485999223633158040871853139838832017870805099115341369209959199997256611298730417251469196708449573849549887266294120513820549666586705551134270790495524688546175426359196291282434429525878717579703905448661693374760741009212428784937435868452584301886310713083136001652578893267332101618484029478006765177606877975336229321729672767828695722732183930845126569206857560558203305614204940804408132094710380448591186960825404107311175774334245426626201324777073949429511030085701249669486486046911967206238983108072839469724506223569102684233234012388521181836799010764944678803756615695771696132631648661994509070662188565103397195278911094959756248302352009647193922038177882160551816734265943146063639975511954022337334194016735012086112126758092078662890959466772723183700879588513761588984845944601287891501849741360044094337433354165741529772132207336139430815380918154114794148085571012443144978492723833533410063933696288222991900298208612350152256980136260928055546270641301155467588264235679466306971366592788899002175956002169785682557908895828689849550530464535917919062979574935390134529817960074406775467825983082077966262882163172138579421326554637499712743540053991694220443737332503139098330432351281869434285048492481547369659404348257990323072162576662232383348705307513431120534003648452352078628076732199192988788253280230553985919670925287547562011953740614896426660437626662524293767313814556872337664075847412249214163435797082022993505456090399732926272438535845858666488594133969192963431612759694977233016474421968194770850044548850520771383156688787042259790202338415134154562775412133250048870844169297618312883778937874687818193393807616338223611193342135546020303784305921711285576813840346219839142412983470249693309606476667580633920377020631339058550388513858699784407854012926125183301697004251146644258556132803810191352472200346822979293977734790352390862624634530195445098870983865051931128004847277523689177095857780664202922462922559644922932451888045816019621821023336770566475466073639801551933403089428684446732831358354232652467178574312828018135463571704466554144134857240826281855313214882092796284437103570206028802037900546570415389107950237888032456610559590768801054550139498032470634143831127023647656374594300729315250700254418313904555270057616348448316203074267897852369491714533764035995028772460692764576511429944221122685225218355193873783215353633497854457194526661162945165778963969982222525513238576299130402566783929230233936734465587222727813130011773438931705904506009972885524131445967742565437392600509564635163128415945698047714354353307031230952782549721748346568127740080070567682526719809529575170722469615748177535481129804463995129743439018493932278942265274461279317518372209175430997420461369314072611258357313886813705403774711361774007185014698479082307948205390525793447095015669890330190680529023338942465784111526195859947556456717172755126251088190294834621739713986304939868536853011835375788726838688381055028625506907530591875815963473521450858812576557095942502174502642695379845665660351579189698312731003470597448543579924538488729531839283162980381545200207435063847743742659320682126803209071619708591092518384945760076414229597763554780198188290666734777287283807788211329524718103890021113026017289715272414825582269079899082822788179331582493010686875320965741772133523218678197775782674940373424429685113444854787636023146931635437730901744407928290560660417381422038310942237759842954097762582081073038407124198708479011817957530433001515525294312101585304432051423795167103716335356177482414611639368016570288509083398844384983878141177512544807508105262281396876748955059688126208528312056484044801095028417231311259030682686448590043708385039714404922283166225408824575253606707275860666190512632919540807515590301446643555806154336877670685578245501201312377688252067256390191941178015187825943645191239926287857127051962237646916521368782192778722294569077943781533674285082324047182488424341173447302740622567716330440398677295234364764247578240691420270081251272935068994376044462256907038534800438230160704043346992708540790945396304565662132599324443769399177857753233711873349107273292270058747973784068147397552102512761012967658388587981476028499560452282709621203790253810876348546825049691584581445684064892166924744080338291660902406690257891412755088381911158826476881221540473157706215299470091196731429253947009184930857649807589553642529610415714375453925371408496250958856014473947616478488481898690360763196279092058722955547010934325957532967189100693469189546529601979182390712010725129288335629265934818273523355414781268259200510412939700546633436523448439439588546850952442330170055999004881740319372506525920580262850721080286536728001074396248631907473073472518607756251676124669673677975546146843200946400334878776582644800955644298111324171068370161299281821220520752187385074857329880449760097155506727729813307207131872621288995830695599100209349380199005071420429835476479569444029054070620800377696507491143087355673581873146927018997465106744026716116538655573666385656578131750561227640099730884196842833741634560327337211516448759228731960235329765851510702573284635289873069010965789770656480855353430098969708951099342396988744635809155755929966893030490364633385054084546837597722269198941273732922375312331798066458816121860530868028915467413750490244165871014821438473555224251039354532030485531705733517902337176329581263702362888036358167340821148034976687320071456446501135544940940132456985400197550861020503789263280433478764651433976091604268000685185588353068073375979491757154191410032586377521111803099685437453243674095239046500431937309611479080270128281327095446113440613386530676003281358417550080319538504926972098402586135396400827544384197677813893972993267273196685215745900031966566003632034417689436828633169855130947759972256958422024637644284895544779877918297826118391429124200235637329688772174151846010888234469823050351069436130744331015428357058766546747169869105505047620728870598558342238406872120264714361695665042805939158860911340424914826812894853029680575524719028235620324271795405409750168205821880244134394137486507345512921112098260831800571611428665226437137044375253764435913596397709166994412857554562603212050190779786724819960664773246710516217266430240966614559284721585347690339003244244398693134192606307781863833714411250922587181026367513658562234710710899124194252599438516738589796015255451759743277703690487067939427312588163898197366966392761837165308408501177342946276156188133086648678583384794603211404850064026992955664226071340915143623266206265289985296420259748315788123553429135986041956093593459687631034004250024065734595748566296737518886632625694120965124184584867029565696740056914782028026810634280774711681096250331933625736708354111128705160758480985893052289732335512653153513882275041197776737992212336424419768171200823280743637113289435280782684943623969836200405109873193382084901741538346814148401376950154387097674435878864052766709716468085494588176417419876618196641672433070422915825960560258347191382215146971391039145720588194895721980845296130113950618633867810664302056864885584646952971043703500925097161168658527693541733132812997570972284639301522730371133693553819922330319690827771017094956614052092100193929126866717921903976843568108368108325569446504010620159407792414983426125933390120811039039816777369296928881516374838263728629471951480763166298822784950066313907985223318595116549878687460181272391043571291879555016585815024287980812221513279642579298812928674855323713781596250755862014813081777373473399642966714485757190485175914638636222809014175053185457968436563951659627202350699313078188140735371735593124207632517022298218876653018161936258914213186093791629074902237277191821808728936908755602674786718550043071663998712925950223840072123787051142992411093212243273451087596773914946319879717437754100166619626916826894040062588453627601942511076584673126069983728160662525083706226152171954161663275440330720956095012763652341186753783098285609667268812762347450903052647131096709964021320973823303611929935579775877970347409771803556114977311288546665323856652428196474267634017421914948759143312334756716560924095992010952031818136162944628054096991584308475561516287743087505262133155620746367227285849922184066299431954970216018426044749620320978405976732229775621598116610700574033678714092949237182347881978356690990099996118164861341448415035125062288884859295040606125732113544389735631242637591127754275002230006478666504751587368934991997332460789871971044300707033631967461106493309205845209906881642054279150153885356715535934138966314557679571090532577706373700493756583574318229678220370887298339437566332228607248919131404022498617172466421428848730067762890352154683899838330724654760867937172930250709339616049994926830960953181959431427220930790871391948267719752114372728071924670637284104572496677118934895312312579445746119290259993415640085430112277086699608167743603902741870689384131735270405272726033292165637940206548311621947736123111606325068510020032923047969212163195061414354567497666436525272938498321320824563047363484777170867230249376057867947648802367419306589144720962093268102988168832572534528823500909598798139881723228102677274516124714503309009371875257340282207241679560075164632853384746634563392763166837061578608984787118344174775566367287518229097610915942642789902302849668972994442785878710370119743506683896086555960579578041430402918041760844195896453184166419388930499187085606568581827328226699618835174422386901538137391097294535828034542329212840001279362680552703112863383933820653664957264213399439998880514853209231704808234323176649127340321245929831020107317103057366286662192478658192587066284083740097138411217275162067419361056008479481451299674915218104085998848489227353474150791616606116222209614161367455863826433607131004271581341165968557299808119175281588062863525191362276744705206803577807834835630539202916136636381710635495663498738788938997690983270974516132698746031322765853347600664278788456270945302034401702759312652966086354701189996786082802207681063007987455097542952737572571329311932368946425563096643749016635723930009492188844463162243066823766609337725558755420525854424049198270288418229550784413810958524043528563661167690059608686989488881186157522518952418522758125610073662582478456081822054088200237232906514257646046591303828858810299004983488920279738540576615261206951328342583072375206058544440847681734088972694398199448412959207907488328351521990388309406367669509844090631806039699249137704241275063500515528583898653310602347107177725354473636246325019411752327021517244790729247789615214549459214884324003531979650765422423765612962950409475724028329770387535480418620392942873354997717497731537992623623387936660935856887149025678645004174356122827494670868864343452558020110886991185386182263081504002826540004170438542504613039564303446895035096065412397853167796416786388714832995439401868787179199401467852378939467512034234570381578002331761124811841885515455167968890665269725265408492762340610657414588765938282153277147660128338979185917860768066189145543249224179268902631768289012877212447487169616400671558261536804843044111121023338593973936845894997788479521735223333571343188402323705708586277014125917521059065292083476920539660122115585269488044764466525624148703216780845498794376191717603606460875537741768811545415897689043852865667823084424010083430819220148444589800434375997666308210901798006057490359431319039803888962093804315068635599262239042657609200765177968074198511724477667216474128847573906468035414970968422172025831728650538480889645076255254446182512009057324447973255249012976008379086681343310200535324902440787563453977213805354241568029299643001784030640538020525011439736333703663372078584935243340528383883290050765079091064869072274802425926611656052972415496939804618298900434224762606774861696062814926916063940817113976140284730233191809200194952985133954075380190370439304224505600540064968786024262224701127649940206896969832148739472311619899414128989165737110160058283486440372229285576172893840624518459126463982064413341538986012398229561385178936357722114214143099575209576273845855519448542740433515599443139015676520411579579695334101246258124789962923031960008049561655518153112018562842632568348615707966522964287984569927342464786532221151548478384724875040359386310452922552583029130225338855420090224808444971283687430826322045302665124148639237508126466192306156856566048996699918578286149137698828975815170065665198418029846789441985684591212649835698511578998634879362914194503347367719872722826151513718624682322423632289898858493050731211567324194275631161351369510225804929050264591545646446312273089713863920860948504400130060621078375446729167135782085682653205987858295944538411146986956904660397897892582569617720809234473491348413962017427095863652940818061915005273656185615098965371199943856412167418368356760796097552994019245889907574464980732115136063849767946270401525882254914275427665921903933175701045232677367668900525129995646068700687966053806346757434658666352960787182970582106449346899903884524870108390286225765428862130593331061831372914844725949732228644925788694169123451637107913484857882806649567444781613567637207048861292258795124170624986058760477349091297862611784519279785649658872836283257543854004386188315844227761227360962130215699411276221311125556403181658436601001792717935136751751183837730160634414068023665027533611923647642631606236120213999149743200365477729780602519446903843557040867943895591907281011841567796322976967721931257477958655957276063735835646182157154617854549421369556568664706848413714578779799649032496122719229011060180297573309139505697663762178167807920271939916280619876590177981980840620881417406129226460999069782647883527788479619991549859494459338931351969607114166857116307197743288443931660224043073478583560085759584894323247078073948753328145487166198358926631828134007957558665185112049392118601683604735538222807755744188839396791274296201489405155047722214848783045195536959719577082625997893011408090461898386071446966083174558513665135249152303712983492477958960257194031417741045216507244840220223313084444095520268878158745635247418295353030126761285227715512483471778717546629362396265938972058523379778122040396978902435074654582247779752209134068226719621251193094395849627779562034811709157154114276075731420529452412427579706267621138469054757091833309175495063736396646015037882405402834024499344042598100392664000508513544978442618106208471021875892813069207220279249900155986400771011129159493253096739325678556821551938909627840773670208299413145387455626469080279630035199296575465523900075624627366967723844938872393409017310222143289616041628575387740029905492289480226822317627954259357519247219789082934226468658223709218371785478681033052386140921977734508894649637455623650151328915651068895729156219064710246312574004429622724948876996073447927050019775549259640922305011237016886130853921060853413954022314374449238940287065889471396529085647603584495956815583784144268188062167532024040525285150758272397317529630935319630309446811983649771790890285521613085208488221678605212848166104810910323815393955861401318958334209463378600794161241613417504540913523974842061423432822625526570122777048334692378579323397607348020505586999068015538146719977477797564096489010973110771613595672661385188540260311602511531195834753061601438897771399045557803462622902018938965068273126537431741451399761240873494524127117596266001828435696335373919112966059723893953861092733743749161397124400560692616104958869053970020587028814345917299631812291496440878398513877082234137114086824297063323131564876458163285128382784807035568286634709924340430557476763294885571334162914654118157482832264999830898656401902159649044459214268432130092602476549807872818892880631589978049676860767567116586122898005997075291139539155387802929522633468734390934875259651059722203112810986056564341732226820776352669519680475607727299514562574556890098775283402779321713878821627571217564633148168286436060765952147642460826865481089819467957058806702188439558514481630106056899281094847894062556077794635564359249782794284841424688780141716134685682574173354689808910064948822895793880261109313083647096579348326455193351089009646512537099520883525536806947066777427006765872613117348494622810417448607140032232328121396774550202597931157256416209385128266987010358751627065090393306399463784950487250621155636197402028317482916154199521847909440781244555694318184318976618209849153100729225386656611136474919682696253379254547872362071858094245708458837539866472714184978000269312040829758762801928090260983081713399967758627934335420542916540589157753879858563166814234407966177069754028917953349109159553706800926293424691662645777289372328554566281766726378529047240440215106256843647802322840542440346285216629298874857906422701269031459998063099508827580581736331656487849473742222038710483842652260595466086386876920925742452312720478827048503560102624029237613678747708869698005510127535720835357724836015618440145620319928334334893012028928256618290832102060068992000016460617121881534833880744652707372634420396635534381334795024341366656665002012840850828981012549140572133195839251262257003580312908668292252745609608747354095311369376106969307238896122694897478268843966581055396355505781716820233602550156642050379363544632218495191579659333094338402948304391263168130139989098476026375849235323515001690152323449437275827288431035100097802823207645780963418340258209937798378810978876164823203498860917119090666363686398263198906106310096613171047881690257217123204262343263280845319230790733161293254155289740101566217877566434258079675534072389475632610081533021316362996466176113034092512435299195423372119912997514203037644189641014604957072400023369760374185646753721193999366617070058280918680409594292306384607419190773666842064361090883119821188996466271550475799191766801016262412435996765406941266736019435326849758592663663355621719515978283700932596134664823461194985235156830466961062636891659154266654341818575294272764665536232811452494528785012927656995609117045028175390601594109149042697902669108550138172636725159699117441670476563454131606632857286910196873777833786134771021375939515629577799250447608051276906287221499182604385257353740104148882565049838575322361988962585798955563393841784510068919139783057176070201993990488525656480092730366176902707800595569327882059913538145894076630418366790475279018645205575020283145295530520756653470998819098979949688121535636103718630136187907940190205682503298964078823979016397845956231988747249128940466792728832388585168007210575957801106304846572336156696192969114973677222087818022052141931241557739908304894814321278876039018767963731573253640266576974380446774559191614615699305787398888632205906519026048492539449465124389595231406916076658789769715125693907699156771905925661279312732761604661410644536887901247084639342383167439827601091738051217565819275114388484314472477930303461429009519803473821052337102523866829330873331797540364964859755160864272507828878564282992481526406364518958351095135027107158018635399081501435446262161708182957224618604372188304187956471077995132211850657771307641189559014025882788860550225978535106248496772573565539568138394187539627124214460034664189937338419063277519720393603227790097340724001300512711648288433076444683057211898772054484736369549919700535134014613799131968633866034282935910501550711961014704060379218459909990795344047715824992688745302337658393255896015293913266865668863079888064024334479253712092999057027953874855148900079453199782621542614309758473576785055061672273036901825457636869664646407809883649474846812193007013673057414796794861543535721898603119100580767845765759145254835114256248224302916656172779593088865778725294692894825703539570498237223339303966750299764841536329031732357234079326604559766305810828015073159433401673497879139650683844961662513910617061091875034513917713924055221236670529540145132244901986446503729723657356432340392850683034091255095689226029850112550197008601628887305648861699664819109664865770349584242469094119945173671729679853800620194176899809734711257138874877175988909321661870738207562828569326005822370739586247710866662140026649873730193630626902559160333125155027429039752362696438134457152793840585078059270192516932804739670243843241755421976900082406927241359842568763406963707870172510060225171262481854190002058328905635215733489506594431288567649885025330592629523597118668348205704295511201639148543295167529826192881978294906867379557262717319936011195324392984366824116365414271678344865479205607541712554080948655764179312865121162676383119349924472325792099664455384731807050065807186593933369239473366049895747099631184687354542916712278795678632295825010790969199150691379561298955598607019013171634839504191428112763400867349368245569264998136018671127126219778976435817078790911527790112994214471937640479544788775125003107103423202345086660999338141695477193753007764632179077184227418180959187230421049250696371423293238486786075592570081562813357722957967051265224112942192501028614799998762302270927187473630224940115650755801894210978660555106790373904464104936188872839190868420841405206950681203962080289452461146282432277392679656553461942646436405608527591772250805273374953718763569579731016887254772324438079527186302403187754104757473282428603244261861060560366063241943119799817796809652224725450577455858547962311154776646000103577218006429848889717667635905619332446663450250045159973523019237143267532752473375415589786353278711231928477717028154017439436470295500891141939336234244875617528605429877212408803339399189928179824773586904581727130843930041619650835806067819852716985184505030657964945400678152669040298356143529661247938622984860699392714407135126903303229297602694497996808012015110603799854217729318003022276197710485512946681160438454773195628028019727632817374095324269398665744006720406405029557567114645046757044556796806272854156190003545236941515000388299660797854448727238658132718352457486312077057762868404950953132482856819315461004477833110817790490022601741358572817202996883414545883513225493076139007943713725634439789868729847777556914711924159274897265538816419900028053258280323192040144310660722846414722164576774912518501259100606833245232557977954141138169483637510464438234323886081861796214675114157800365289483518259918893204494286667559915435503603088512850890696681317644612223387589294191519718152500140386574532755356959667341693493560732431946864635683803120400600284731323773548590937682181006424191379730316288597441866735328516062488549681191745232807018345911816075613084885368297320510985556837761717989023526784324310863458368769769074703491125281949111115560367441723510249633636008419637661889153586496819515496608654900944808468107509303152347621694099669708344423737121117281826920890019028626408223085352754186085026920939325503959336007823076961809543903069825974832790070404182486251026323667818081666525232851484662369686550942733074750585492011084621546056511748034399219891747677092744280727809945141184707162932551861213433029241799367363973481411076289979839869740944332669446229752739426527702675419427151981571862001166307357137887407834765614326959386932864559439751278980785012705217212264810534313442520559323275775615010170146992953473495215031701249994203335776098759705585077019924836525323152211321234817514812463548285419474483950295269158367833744610059231967246748104663306100742885765646241130402330695528221529011821249766540991342060936327229275916560031827105972873358177532350093958688318463841268825731901895710963620586063822246370927299200866762452417276216124187856128886929742494668493123117947068578587024248325805503659282624230157085607008647703077149002502740634000328722381531836529511207495364322410123325080595671729048937275844443314560510327643035619474819519929024933115346674763403774553513190764501527905672821589303544271964036982101541858943672797838427065978011113199745390349026054923235852222929142356448371138713579534370164966214872891150998065404044030914094419978955902269691546309038449437520384038129408988039260261085347231440533750706668142724611821601829339427380246294668611760998412549790942725282328838537905362606375119770800811812713373035677185952974442598075069689595738011798742802640259347938431575776488969182309050509344386195503580762447801014105541697713635742979837109845547215760463376005106675486466189587266319592792490970360817188481347413250304142881210575679925512991032678342647628802220537162834239175479212226144578635131761817321661549360626088746863060868529408475683908846722095839174782609141221463018700938241622132446673920354846457907439219748061641645284722176156488539708343661327170287519058400777493648941607348117689908695326886729591440409044104311749437508658374694202897313120050672721900067423682964533651911270728404656009937305505004555731157397673204152720315417206681462018286641916146680349104855074776386869953569452238153983122931432532194580094754101987559944106474546216470175867251462160633971317305438858579513187834213690821709367398626891796051301069682015728510203089333673961431919710321415909807436273549955731701046103959440834499898198787044837661412320316447960278866956369776320054372388053130733806355847470873501007558424544719727562628081545847342305110329148320815342822460700935891300512637004887052082259332071753042179151316008948585629915730851836619088021196220048503115670673839981254678740400121936690232155893214598673086700822627269870754914263393420859971721583970407206777020591984067280932958909489794988642569467385848892340062979639057329750220701528497698321092823223099820173983539490113388572574987236633037335063085865205212063461520387927442008078352664307263972218324584867292573612014075337747997987208180485917793144517087030973682902861862195072753225059518941344795399272029968532613154343090060490692303432863790918994823724269177382406707096182405376458554971945716947686003399316373477101890103494267515295968698455118792469399834544386651021875721908321788409709337718561863462482369091243016530230028330053779065357297150328657973907893717348671054892446971980638058584670940633960232098243339281575293492782184987955989749932556132894211762803058164352553975814466796686673912579894409876374427648789806691560298445735317215034662400485242840991310120196531277940237760902210653069177415552045770413471950244822317378785349142302522858096944011599895940368652124628824915656118907496479838300977855687464235063162479344655801718611487343506020675129218952477985421537242000286893605083424766029119576264439250478255821687567507419648359364806272531443241196021174957019458039234041747649210286795361408253741231932068517232181052209566254247440284173733298574153521449863804462094602794660082004332330697460385043128755134142272362940289108124303420059465925878623534691075307435586404586642301508040216597985318697631994392446832883674955746733910231575104105907523999567465760591140484948986416267639962271388036984972965646651321858927045653230924283887162843956168695462570065200408283686334975797833463932497656637663714330170168026853923582689046606307900565034892574752443832518721844811710248613277862445242690030680456672700955072542673850330032498310885037113003093603100735444266513300852479226177243717858793934935187471006318959003060879281194974982462610721721897235888305326844695572684550344762576674552424859784167913113001830238583845031810710070382400468846832438784733606215244629572777506487552595813096507503679649828448839741209784563384094719856156617901494439108578277320246229826702615871328272217661988902994162967694288341151256273833879566162575468185677579898893591481345691517750839458989560146027970115755652421774318944314149769674209146465103749507942878279880050141382281995108938816957920515295745150658868061586214361027533962313828304454887325676533468230683111317668288086566203973885209876035780828085336773031466942630336163192316887354840896270802919919454178553373437237767189442907060527654041253959664321914791535237034513562533302109374624639843715217087178297094026644562604572453540761412648821950132155162598095838718615848266942223956364828968047589440647061789499922948206711094173720087413202641902693658723724918469680574011820029716068185507145450226794773922614938915861589863089567865292911234066957870336885848738932867192185460916033948761140114314369502483279919528789134208575546608094692775611357255381905474874363499691182992765479963216311305488387809308982197509717484821812406060355386712831090665391470800576818344820943370421221796885716664372418647864087305662922236656451762609341383557589091730280843077194689993895744485609809025758576474093422924579195642865491879834111375921949827891221721218771933098983870350386777043552646105002080189562185290360997833580363880174286252128855881689784930065272163618384206169215643701809229762944910629195303116008311714181353196956773555703422425933364708759578263779134731667952937658829657902376584643549234334363897185476516127751181550213817983126611362211148852224777875293074322314871087219488481227876735639124468302209373296942274611949839984598273233400761560498752832361098886720880491826432269534013589444688021394371766754299295607759655000478153279679707772348242700777762147972254103763732190919844356759337398541502024059799817021558143551786361277405381439205489120274287200991017716732663453672154926795255095019809244329219144181771384078344279129539118471360129088858873799500396295016731541106151869699189469981174112213687167125206441715773552139055459079525165285577738002047003709710119027858019505915227752795508707774608636695409902219099081854463138649178453655045159148088284893388986952007386969085532629783038622972535562963858665566496311962537731033180840258221498355060892047311486047498196254201636341190116425974150717617991874826228732900440072713866412359221531203661116027384622858184450892538870414202481954900698536867657451889035983964611375844351929965873037680824838042214724488170902800383485280542255138104567929055131235502236351225132807217999364961635753456377224487456704523544176982395632855021900607509603142050866132504717639814686101399607561913731080168769649591676233859416253144652765954175089475319412303672321006576363684160252366469809392478681270463680265367707606937721160330644629537661921572698757416106125767721395073072022719641137148378673988094878974753019608125176236276034129843566786696754249389906265653815786101349385100176065374953346557704649313941345779461897782302092298057127618625059193311496578028046029129204909160827955277359181690689898286207020338668572302419222336543457955154999764601991766198256146913484419947561230387406645715183687602326580043299067481047311419987481484000723130775329823413622810301193610564786683405926254829204551149658504115297374510558807674626245980469722759430430489564591601633495159048658697756898456453800464621570495364972538359289585659420977374873991944376623108959535167695507806055914903768543563153181420444014608530466846882439817111730266231418753106855447261618920093440837753373949751623651704994502513891958091119637323339231054522886799430422859032311819207128539342156210933499245298970122109112255998893846964890727497633151738102377472916144544192289039979417780157969708392535478036933021093574830656329192018843750317096034192924322803721341757517486641155779149264883870489887191379392491494371233496595461553868677868346549881417480620683871436023659319712832964002146968253452192845344931512809494389841730249054592534438342939034321625723764961999681735798425437242558581605627031361723062934396893881053907979194362596602789643675667101263398321863203370524408665708014889579869932567104230751227053344563155271526120127882761141848939631179191049115546530487548104042861590722438234044457147996384542411034902429915266295723597559689923314155100638241762021998127000815430443457013425585356198257166220092163694318521737901920269632775397889858716192813089345282241260284115675896361508387176046277815158726842042792949128400517107207222106444390878537034146443243545030655105204859265396719436189295788038429409443109503875143383485171297242938631259653092654113029986647189907479127548840037921810884251331130857135188576843283457643916652317979149025252775025153413247235141992492763431441338619047808204845728681223156716031188405513300617097982620524937421800728587769564274548354101831528970059563071663334701009143794476198565439798489887581079691774049526796042660267941462475923399123289956951975934029172960326217092347296904155696496786457944073517801817024240338497633208623224692994389464582061073231082264039838977221368169117059976661156095806951741901650849579309617737507687310986232761995117748321425173026204575538342593175374662073270954447972710874828906228068051420246791699188900775331373398799520873917911259733283058326300612914497917014692380058427990701922791385429811134646733296767793561990920659388531621389706362772846880663300641376941389001425157122389135008855195274180626458865926100119870896751851820927969710677074045121510281322396609464134734559412839307720864780725306451157894402382349704850921686667995875288233905381775813216391239103230965379575239286440153272185573792640573118789168314683056698417850805766555091970242270338157760765875790608005803490256795734543984942660430641976729596657144977608011816920864886612962150228621342365537200620534567161034034308886428511525300521104498095426156342926148574126378211398494005632721945261889247797553930680742332018640317142234867849637450563567094728924365403497178741511012076050428261945087929731901816064929212606664250978892634299533511564824054498872981891904639775134992919521227971022054579526668269683596024352635115683827216578823147317050631347236747108354306057127705910573552013319654448225743105370102418052047991909406333786050453971597212021654939307210581745125922755381334931612633276542712748618121309765545766120766555339178567100841353966756228700270962161705966219467949035621532181600677724512605603409825480870253159899669055260784333056075957926574364609220794528574950943756601244703288343700146157006330126914214737493809659041720685398182234297067344215460999546308715998860172886599578922396548884946363121228041384306597150309032578018429914490803514223200123239725131399853670079748822667760253235359542762951827363380066095352654530868131624344068391410588312210387637040808212600181444290555694714609142243489204215125218967844456716209369362966655885308315481615221293411170925929922834043671255740579496590268292294504851424211925288145091845685821300866235876979672712935167065219964464267472480429212533741619012679486693552558654257415692425830754065482455074017739851703717282076542850501122188975711945182730060710165051143934400672471179084309833340294850693788745991150380666164069779667620302223483964438616840183522556029159943189793776565125696078110522330433996063088577593764986574024796906862297480290187761581245522840945528314901602746742119163268471176896918170700074064019559512447495905174409684786795001278512126937376660713145306687705996545748346857497582033282391928259162185408134679337114138429894267337468270539472688448613354138115328214337180080950491335697934863779139020281601387809221916045980111695854783386708423597124634167427302441528017608752861343173480461370737923456379140555634872715493351808250557594241477813082432109673461298004623531026003732374891512278037108192269243549857212490850611690389513143660408911285457888588590367751100662264390308181946008465774768185596615537364352386770647343869217718977120877914574518266314671636269238742633947406813853680084845561549567100114138555996042212934317656883418618759677346524634934544753441665547442987186377834296611872808448440831133958984063039770197387732270397426009605008608940909358704730651468680116392486253042961620513015014838525846582568622292574033633089281702012618667356677612420911478290906518461590038270344755136391496477736270687258380567438218975604145879842894042396673668578383141214226225463441772325825913679022035052103932869064565125679765493297308306789241155988371942625126524736975363013685476017292220857267280183909645252761048552663548870983321349531733047592186069248165827581861220605436674873412231459848603516403562113256548086092795993690763353697963904022726808929164170628930436677112947764035136594817372884682922098447231884523374718540021135314329987215322318066168094771477865367889817434106783976395351629484390755123681999623557609560938212073008104351448612927653183827931497501213493228502690987488513946309174632125358164346042013395702346966382660209917360721185147221082266400477544558072420611912260041598938377545899726412604783790870087155648511256398636556385277282534390648707951968815355868642604827501345225920943092811684465331321802426442180847955059776205234078980327266853842997472351052486118359432993907310928240793208889169161627562436782205699711511461814952978872175806070839812829200968001406862216181166787254770127786613833431906938982979026405288857959473184820640076253573914469732485524731350019426344313139218369033921998664124159990186708609515908861587258984864865667640210706584917063808748469079395906027053066782675196311674878854972761237141053320830827176588586666912182092565060297183965042211215227485601888615505746085481654185346991469357123730092333420393674348652834509565105387474866782480207463951378716148638337102925500367348795244957990586205023501833789895101122140688562709304117540815648214622226625338533085751791482632270984440522712271131654873418065019273685797556159201225030856984697786692953530648400092285826831770539760024648920095513862725381572755798150656644088922014704565853920555501068999448765948854770794511845150045234194957371291299610909204493556919586371482006043048158729395838316207959725029286633304192366735294616296186123257403504027846318972961150690406010560808333189571621003473137935212048244612071105345217315495451484296977407846803103458196984493988749713632450700616165645259710411490436434162932966982742783402483056367262691104282217548625722355598700152711188091750442725385122444891508634278181307890957172160916549536174065026691154323135720155646397342993020505691004396329198860325739299725132655152419425298197470907938101926858935080658749950417738446557819945113347127144961992981340768374803206224516589385652005117751624222009586286950789681558801046250595707254784254577037695470227164558673007114473480997373308838930018032607337501990145431619822960660860356461522207272485806388852753769062543422605474830163512616233504799421738118597872393262023455313667462920229947729592578178811369402330965937417247058057344859668071838929861798813078060683617249300292035581635851695724559362585607857964741516817560427221971907850630388578444150603467296385807023376973117378059505667456672585559015690977277587152978022414930066629803704954286251732288292630554267600933933218021006266909153140491963171402952818432177971675259656857993648016037842858016434105138263195432991235664695624089234686470560038202124488981632474900552703247872220314737328216616919951549753073267639273483203621769000437359903790581493884071646611553809293428987474833795920332497561402391473872260535298035156917177600583022781088704290209586731410018246544165592200194472170570778880722439825505316683619593527309818431749493656638885523320589089372452404087630853809555889469489630584505110965160483220093520523870514599850200219022056819610694839596261628159400605073985748705644283168980282019920230256413029546813101505513721198973580079349863335817484665398071023436455328648226768232362791409254350964493011056761236378196538519541059577321154753954533106510779649785629641178032016220930128192230659590929184225373234435675239438638303612571035663270163252930441248086843450501285066565401257695257110812948367382075704971955357461280579240910185476234387336985309139888114496589727109606906661048855495136410091433302240111721019070087052385825598501190298823179457894255256526337445528498271751340426709705515613710939733008147295524686459172037876129782931990003348874804717957643636705080461653738785731475076894504231807285663774033981597408786365331352545109342802899744121946082566615562540421084914429211712558867128486625677444003642162967810500000428862792474754843515773417040779686428094034285466008078346777906584576327911846266597355090018831773330576893868878526516433618584333705349940765345186331855515236322498786011514397668908036409744192255949260914737243941965527091861214810754320634462159841784592179736525778980479417551286595513850507668666286375800236925696801836423835322090183256185544856698960131056959546732748264950579447996882435626645373399339940209645554481909006359255991754498173781312137406769916472038820174958574132501882555560334565896930590762767810092547152076137604150973330817479939620458285309222259813911982661225677745782255385896839351984199386333521990449824753362645464319914145417033598329535364527577214691193164402715091749062824284836160890931819256400225341319875848758765609686517454904089300743917990100152941413931564851331224633564178472384635218789928370026905992844648001158269584852572461900116777994618550274840062372956871925837583475201585447917783757579548998999353972234197498512708940930386642947740798852026915304571384823223572721490108706502427972870654174338189984333458585158593716656178755328864919515827303309948752162815832592103408862200101607706602607053877353442790154653131786474892099388091509782055966396605913806502640556642155916168321022170121518381081431719378319598361458420185714418132222562575946153947977080467005093782998629177765888265541907858098948791210992804164243640119883077922826336237590522131720255574456254907797246761919274280787092390660140547578265267819110514164636777694680339439370804234731252980082055215113592783939088122533121468018540196009640494364747988282373855534542647734631086118894726602292804479324618616522851709760978320130134118709339877368036128038916703199490601531879279209521456597844119230532922006483824197339069582292446313127994837553256908326057180959119228138003232475315762404943162943072646783294536002746663379214990364338383321862283025226895028791545027672768523113344821428595853696653049980568297559802704480000540104468581275155161576411153131567582718532370785744805102621336433767106328396393124778617343350954557914673369411816162091472596425183677328573605326268255402102650363232731808962753346191150987842168906954776527447353502997498190995030450914108809926571459774584990030260745071000421454051631038608975641430043739702460431870756608401695825528561736184245236589623244213654863149516809924219794193930521967777248359621491244929758496067897051805372365354455965493769546063749155601228323564250297948751139600620761627196760884431335461331483709597389701257030512394389017858088275164099890508614720487696856517492978286129994796242627208932445377108189473498765594099978519280380209323811628413533758742776288944570613635770621430933768944756661447735316417065292519473710323887361704844346946784416582985874325466918997340911323318418689409747327016029471825601057865564653156356981560021994677615049960733638215074410625259939441285403292322293017544858867488293753902453644704975553765018918369551036153612466852492777358913443421881572348267320970025529586700975268129741892112999709346163609878481476316567671954684018359961433943032576097607020719427204154126215253070355995825518538440969757773909640757130275501912115443349947911387027401000398123535340089179713348190660648492668169573828971615852082516250379033890494808719876146609676232437104395791639385016468166376184817729009754163161680995008328807844760536281184736572917720887955235364239409486441295265577391285056875346246856814228761371652027104017952887223259508879888142450942947039294580800158208752224020648562216496321024180328322734045980192914692367573385846258239428709096751233810748491604084612590676045653777404751172016171679855643326569754641001501651557131191700360443684871179128032588542775749229621290619272643079571812152311763952480408651923218212074358224303743786917089465358551539796393115398643150133010942619067676973501561013319819188233155285722180952528927839867616937772058634227507908353391084208893335264599738682853886801519749723634557295721268485816522612726196466875818572837197370923632410566572331605632812518552690981652766840279660136164969897749713982396289473240372778551817734594871000945816881715948424360552775833737719728318934523676959455645137756165014040679234283999529153030271999479183577962990307236456279174489845426113618188913024354249720148042169372152506012107534474284246998042864205924299960188843923011437961020510453389496660359671284385353173887708515438357633510235780005581674811558138432097641782994255477786653146029642943635024064860694397357927461208931021609788208124247475067046138076548900151496601183688847385281627064930527551809423080247344517226974902175898641503585065570814793151479727315608458302979134428723198836197499693793059988951795087251451580834616613139586518838086760207379526181845654945545135486588662442666368861846807655451901490663691298195414567128533736341436539897244631400037747814710662003423903042559947202731907821879333444251352419748028474831964663780975845760857252920349797192074862585128909868442076104992566487017725560837808304130485377324690278209991557363966763822499386630713347666207157133507114073716456985534276628402006005157103142828497664396212869361139729056245634948432848519132065973242468482989541433213119428245018813820783340833077824527958927296417086625746561114045364658046833485188028463275297701545979648144141180415932464992913303973400604339100446630052250677598733009590997988648319287758199254741181521723813571895218787530571758816354425902706161826921237232928717051673136938546480185975934874978247196464039249651041897836956487978885139497035368058544957434844366518681472751692498905008774939296610900267308604406815277166441024397158323005172660622138622942196029273251804931173998233582080320041303834039657308680419906493405372081982272233276550234693914998446448747744344974393368995827436429828106797752042980641105978311960128399983094233560744156137157895033054098930467905260153741694637997203032155680218702812678266903338608075525350066647977826487889422893590575752804179619869416473559831388562579192812690599773951582022791986515623250797845089733264082612197315018592529709324802505709590789529265878339826694963586321965268444257684447979159319226186410179234390204978175420261085183814204847471814363302342173818854160079249929009380689105245051479626273681370155338202694140916126714542040626301486601432908191864689030693759826843619247876432366986286004108365509983619329020859169244954966246818731326731864363296470940682086004726954545491097970828259293385325486215959659967300060320593439724650551068009966845836243409670350869821107562102011622056161874180745680933868267367660508898033015198030100043388501533267552845830875932501853684380242378327084645424745143327558221691433709534735149855000184794332310513398574593626436246152554608074018331435681616445132595575016087491794554328005473728343789664993375460407355544824695110366427601004674553330088417964762800095321311117900961410808102241299258605567225707326401247675490173369561432369329469663521033856602864140597390822606490334036067699469767466297708226004096893772607482209126339021344180318474576926896166587078212772224599938609846017950203731929270860508048824112483977416842131194674405256568272369183416179645967691838212237748750332489728270145520282178264746352435245540567323830127697868202785904703435652440152936933827507096889267695853724151336718239577289123681565561243424157373484381816510853797408240003586594149331272330955488324818787239199274211333808748892385621619624638969312518057262098508308030368039954985917412638323598607598810165273011697439817529207658979463360375321556431162487612247180209688514712076729371540683415137310653281373014855537553927884373487200246114707553198746326216365802541847195207937162328396850777766361198331476472974748583103955520053951181053918762462684919022835682547513202926951893575464924460981368619055832489825931871893810658880159173235838911306082902245366330141891590100817706802643643926716462340299794094444117999708670456069170098631921626439099421387259105757676864413389479168179178486901291769280846246792978502211259828412278601686168436523159228632849384293682649254644546938814376629170186442750661465503232705612297041739432001357009532319067172905918917537714739296258907284364413436146511910167717160340230229418096749874535018148307660847107440332846240038687157299305973394122320855709534746415226548889387733408623372439351287286821245883375026295969864154383532296730669105575991018111253314696068131850807418156270596994943191062590531965869146313244612416017652524198308457027346921789055678806243975145195092847916640134582656947962485100275598587859708980199817538376632593000739935596742568999539270736600927106744021257157984527385430241153467433817495262745648842920761179119237872565297215009636838118623532466045725125674885815276267123306071909137204192046818324324081385661737691053218036191410353551115978342471920159868889135853684473398562533576102492140408585322318112818035132092958012700915667890722215494511392541559921383858825452104450858011016020354684420687781847769560535071805814081566905832437555912106251547545083831395940424604899173169924985114643664123828600542346240834489412400240909051145511869973062373281371733316117724447445136393328530678211875117445037798808808190069005264155801710110869944406038216802968502654974503690804319044902124201455773876809117912276175114911933029254426369674856586695705015795060805662940435056366454404956767286818524510114603003143797287102009303246962511010153148583702711624159247095949642279940188144084186531830941732828800491464496074252858978206863207473983571603499987905022160960986609688151278708755775901654073750215475751758998379041184062805772903227045079709167375315571117903465846468449008036690037061881284567662821186827958363191778810778417786123106179828042805483906561419128757771913237475931301295402877007109267245722149237411427514096428713511980004785572517798009739356576957853536599112298205419544299014218248089281731177250843952427631711746375651324064823311739605474818649440365007876588068020386339883544658436932012196393000942916676538476579671566877450075327202526068248092335806427360691113539014990168809272336364273690688809571642612825938024361421764918326481693394745240922458545007876606672191490852404311861630454909683870677982191090627286300478276860494462740064497250423991294817980279567216637042051296584926090810102515322440212459642202821801168776958038059010485864039220876405439691153134642382135084238607223138263228841905317693864833661277607598901766656130436167701282371888868149768183809852859816680526972769003611818599447746054797829594313224599349998003591055219023009904608732794484855112961977893584589766482450183449474673908781489705140770117528707918720820415933286241418855467412472386779969726382298548464277841846409003718365916002407031345280788890498100381013484964984256261867726706007581303143626720530375020669377441435960421155712911445803136743183530818809662504635302502022581048993779000191156928969671972994142217438559192591384364291347549415990351593626155140775250027959135410427935689918041876826877160524566500933401653392638680793884685201674519439802348837373193679898499905958870324731127180341286473491147896987453468116997611104273565791271793154302753081286697523911570445919792184737623116329989207004802668217365753980492891569496071635300369701493091482719579788117609892219987641529480405517637897578801155817011917343821513613801943353825847396299180590684693518174115772482913765526313002537242816331759977094689204145440995376167971900719527921745399823780722269982832040205356426908393886863121938676867703403574556087203159621245777668008834658285055275718493539358900634451138898054254715003257034032126165518566579741792795329408639092540125406238618166242518598513132858432793709285071090531147533321444644021406527834056511160031760499119716889285751972118648026223310234775402864535700423701762296320917410317737997634815929926622591926238660577072708523182965812591690608793207907889143203222499731451349084303735277116704553947813350295296245058433532187604037058855774284634447503342507545552757518192542002537601914882708886470713449795445641120804390050634877172860610743496039641644735644556733059961581694190611470742375643215849394306310409137001109290710976286781405253533682682435752639356956529113868958551833295959636123385811447592863107599669387039713409673827612230802717374942385620588006633740650155679791953292948935546766005746387731392528224264880309712324108741359326908343896435929428036261259236678002098384445798618307301018838095287647134932623503151278905835382831913696161901388339893339611036200929211000472112415139647565503537659350618675739404160823520349766631310330685979205883933797341184212426601040935761517237327822247755579550896377143300508258609394303319233932315069622488103261554362480653025961674831398905223859867459701552420894235739352993561090273132205965005122649193844208055153771811909441364179862987615551311254512571510704206803214026365774824671771631256940166134428506324972474810854307795562133972230124063958586720415100824422615197064937081079232846193255456592447351340931388687873340225239264842241742694366973510530952945975421078458294532973754546897425400611501717225696989857078846135260226765379168525178060403013354687292154355379785212221022011050137641758343850117389461955569316977865915304669916221007627149980698428811014714817506297749384474471769635930772365161097386783519917475944081532441950471160246712925732962032096568754325582986570106305802332533419370788631591271921683007426081733074639400868664419121276511171211129569494813230789355190399398725407100311430907440871552198892690443130298170868216744113598482407359417832923356479571330336653377673833604839734461133087547989449756781594775995943848924711641655247864735010500976220176157208811788949739183004790676319671343890015620527193784861529994084798996728929683884579210332580719867449841048215123708709422613608982309074938773768773440220322515438585861511269841154976608148453985095119558438505947022960208421348102932905222075583843979209368330782289126436327722959276959853835031319910840218677458930136563261276124542014397492017920412333477170844701280689321262881949947582889810092547955037175880275203483269993466560590879433400952097155710749485869753163829387814173694378300898459040391995598244555868352119537119642393527882021110745461203808360967850657831696614433032198672558623661969038109301129377099450535339657953052883959548289718308284888683428964453334391352173969932199510704539821901903648489892536306048389672053344556415269402729939210823709199888265138949939972705547915072736582233569573098071421838167818362506440568662483444564054935382601578819705125417350473463452801264445458510369438841336050728040530739887388236789044012638583421839457339768020994925586556724879653519781563733795582190911466753841498500957326043262953013302036424867646838246952859251531877351422544862587037809666464732357566010724851202001992816377723314057059416560690684793858471458911204400803327954869353835837977607185669976352819973387300101857529901884878683113208785432064543015931995608426209745265893487475491218894272240907955996532051722035208076381844256869599498723232930641711955083925828805556420447630353997144539760995022411169508162741046654999254545277914986185293653313004727578203012974048150647001675877413758020300285600057616418699295469632992297113513062048784582735302541399983142052205180223359035732394479595806342885291002761941100149157234133593146287196860601336683366596122184692365192271520774342034273822695161115582006632163606909432779221091431287334180528693548845857338945907619557942759257501925380430861826784802866584518757831837284048104934551598485004761897915937108755258828224070176188727036648704135514443304392153905552093585957856578885542273445248145735507455083801597687649883140188263686550435677580539535830256878634404694641435805973673523289780449157576150363465770742335947037663319812863842369381538964795505786538134095567693809597870389947513898280367678200400957337495683056866229568913884751915139905621260575157205715081575454544451028483964159573509469839609687611902582052921647470476767082989557357091191650492052493513526893601122725651140215447663261825427436530981105028736292428793688978791791611638825337055404904089930751172558688668347670802044651810594139137051814406708224043183323649936037119800724542370001570463769464194958996928518741838391363471548062684262589332140933805213973426498202283400261704144733041084295479116177269628457955181933232298538781830543672526676734402740264488653055671306264742086224130634903278338003864260586887051445810455745906592174317475227112977343916173904090159720740818895296635456022999617929960999770220131082328734659210516946434482839982474155837149531355391212476089193177355259094310059133953637930692548404016272845966472603133411746063550812526600455009988869225292910844142658053373514682802270442945373219605040172613443748326173245006162258970863875955462680155353896611177004148041411383903738121035822966199578110204836663117264885251827581561308322229932841815155821720687277691854696165478053475012491403655356461703090012834371239764503946718579142830656600982671684624123542022413688911219879741909437581817429364770516709234315808637068920406486167473735876208891929721063969342290398124697467046797788174728186462803189508671606581374820997048901912480646664684606938693730590051600681094168234841764403240438140063104757793245947032157726718556937741550245068545092120890513151473866229215839178724645496486753215810430249312854037404965475097971497660468294878288956271237084245539831761820173255513414196591977815445780588998499254271848998063888219877467414798660334676695878079525298040678756826419822946785363872938980911226924887619907188519787255967846960660568289662621007129795623044477916603927661772015214633989498649123162447293704925727419679952954856022961311565844482099920545264585469359921762225749264070958734496143059619985493055203815317213787638593436669233378113042587380750497880512843878095078164294252564313071316636263693205702747949358103782264259264123508683870255013128856958793885400849002279235512976907727628660609196908792673920704309589036483718713322130425574335924578982848313983393543272187474750519168548131643603662479415768860207695936472374241116625961646124656616489951677775656761965975212241237377388605798914873388051228941181720450048471321760931732757328630163759454271408851048195270773788353912500983370899367797110493966832711799965002511015000584125049283968891819613494520264204522410351077146592175578861979190677662580145799742844470341836083367184723400783040809631972678126606691486780376103622680762253172134805476347857492091070877928479567037173909138581693624036672832750909843615869097108964664779377311479166194095839283736309049052663878680774394723364924548432498264451716010990359624622115870722830958153405376591674457080274696381820063740656773186338704173887226020986054662835724842343709916649314033383991898830459580008779066586342078242466880556531301391832449129167602590492390566203684763341508179254094581122620459502802036272333966642454915490820214963954283424755567060442310614557921464031966817640396540401763917613434546295082053818538598185207390235854547313250377797399378175375700359133167822618299638455907715513092348125816086479040445763914391725543746480358241999963998752738922728911394171652383324671733115226005743313663695337586248754603816731997793635294209439490995508728176968442286161193512976416571795066787375692126488550844040541544755620164224230121095650395789933603759283040729128009415772738359876260720470760330675864995150643729980213660334380955533261151057770918728747369435910609019046515045728278079566902079565634553574482706472896250329390447797360797394020572752032852906380852483890599442347736086882763812310773772093888642276721235906196335837571488187766384619398396481208396274953310493098437668290794659374508404628419837614086981748774420588415058554372871434250994495457040505941480246646690009036903899981805655503538317668066073166361883608773299767548581003265813553992631171510100469065904520747037549984206308651906473115964573560658983283722464393917033923771334152455958424999544418688557945025574677652065689138660157811642839174943076832540824958695965740429202781801322573966192933280408338425589798161572217142685100612835787611448351950237803647679087414765292300750980695736813281006739013711249901915837108880954691025531023820531017632997555686232531306456125634515382572221508388816494008842732618016683363165203727561317485760182857092491336344163919193127319878135463481304440745023627076633645975528114811551740679715219418697452176219616373889589047389620212873422803930285493293751147003989536957539694548667746813775314899694984410676302988707776673789633322911478237072522919634387591597752441477318368624028148943217750789275071700557980525500120911891835203027139705964565518716118638621569800177365443909197153088903202379145557156170074461656132319843951449698642931382688645375391909270166647988889221658872908498350767006205136280289607854194810541058806381962805633936717833402148343306908905129075499889930264367737820708106320739380339481233131779400904237485150186264067520704830922587645979605874689105807282998334982415807092499170612122282302574795817460566808026762324867339134018381402646711731327790074657104397291979244364417971493052563216514358803338168348032109330485028258144499399711077303135289241665994493917342386267413667437342308520383388681291710427107110636653018054755385479755424196045934532166027189700329563508714517598562444815312904989989626546722224519223644195002048807397722421052223585495314093921335203711600690873687386500630699156389261902588339800010448539778203962080611807595005483842202096809150285987816312915226740348130251046075185233989605127858743088488651890616865131104708603364366968482516075363686152583637155336707502692910366211360982430540267755138597262720099758900053907885209490624595247396586598144787708816916877196151748612297580478790797039697396442185206471480404043878299101958076855596531071845694939630949717923879684523202380904052000452840804035342576492270576901403329619157776305460786956786334682937550819232471293186716663847426737715103030428222704939759379230396023556545354542669078138729794782318739767554595560360602241225054120120459420236890617975330879814826221553515560706691945349186159465754199048026963405180108613498421125286925113430548259402857141187403785422468565656339490862700556220186988579404970220175969843684193285120595435043777086560729139700532622998418265850426415781182686655812090394801396530001919421331552777106332748374483410207355524256610941117133667734366313832851160674631497325503639924373480908681050640214619747620616558898746449984516751979782280140713133762118969008458683847127134631013914870955836503741753930186555706282965105198374877010577403692062603155893525839206717357829403407220874938289079790278002740981369707016593292483749333240270542359410594462051028124131095411329231851538298623611804344843948468412728929138336186113544008127536079337142178004731179415907987065341657590584903316433987907261551459638184665000324153539644715064420403036978964400781382862155024568491557009933515388741721841145700383876776986761765233307797159244512101310428722113060181746977854511792269753874532244716921830884816068980579821863557541016611588032251651264308801377502804494519149636965830724289161320738426265695447254529960601263176090749598535301483440793288348781999917152624446959879174711892824740244670858313654172936327157899015359089011777578172884510479232212681704721817205749034462419587596489741848487178878133997457205315520171645363967830102368532159507515406781393636385072397865624511625599629615504158209939437041101272206670421660597921739762467741531095920713871041251588783114296378920517217664699499095436316740388167158412926145291585995576233539326808154150422917713426519249980202831245284773768273902783212544466995601302737042493315065664342068218665564266283544851723330292517860064156374703052271428722394694916423946217292769865733684940714554305330268792782598565406689578753354714165600734712569936977837618263265461292412936292033136377653027124663679974662114063096845943104268052946514114476875662937880240361743580318948428243053809885999880601730585210395093443745854897980117896685519396889308669499146138643271548390053916057426758151552455447025368859757166593991081054698537572374679532404906944901811672510201124511642254271671777444071219279897646231194259581366565398745313226530766660032809106034792781882696879895019546522460853163359512168038943283309994896489747421695163347876392218363181347543972664857062240144854970368222273059090338255966359239816203725716957990733738945197508828090843326099713211670463411375121121175915461431061264285517270501424027080647988865590879532555683962077158765120347174129767506714155623955186374534354036571112649227286574096527367737150552006936517349285396976257676942373011695405635305635241805705868910927810617530464227649870936606809634421276564858803192228719786929700664770678331706501650150843183495132739843986062735275907622802390529551636804230400502457303133858581259459366564351238287811004510839851635579795345551033658615003589883753729289079505275917383208499228810189223387876790218516971881466365019436491409112032447049139450497944868855286643396537255444884991661437268413624844482734037770870634169598505777574305275096887391441905578910646967165305094401789977597597387959865122115767434497761945989037777747629884356071911783740073658162098152409890049808953218808770447573141120224618569101983376473514441540336499893650537820713617989021805313180328561278848394278053596834529934983762289668204766805931215004059556083142485727008021349190537579105701011987945576004204240025747245491547414559520112898388604849401447947558744144993790128295490555169259597527933427968950714055266871693237970507619282618333771407558743516891880225384372110980726731662569848386080175848617232450342071778677721145303790838120156529527434366474644438666088620286635463199709418130831714798340666845372731921964714474582600984961146631387242636439256721473831463158226509206509753339119288677252432747480423174585735008777954229357678390048671255435698297891418004356844140579625723295340366029714543777119577911380397076247056070989776017543684834748100883320469430573663096820340270369973932259383558542604449941089341953078831537995899991085729025427619979849100799602787756879466182647847843375339172384109208533022260390545908098872204938216434058176338519821148410588447932185608671391293777799415534551470200854631150170042274974296374799887474578541268448787072318791534538178654217686601484478798073446270030466121383341239029892464168738045709810179566296366244789996993065112184429098532331803077574804920370049993954815979827866099386992637105795109596619412788365179732784994801383230665253121620160814515264812041190214800123601973586930396580324432322766098033286491421706047391830949490904503225324467981785538425455371554263636868961641337726156012765828784435149462325309543802079378120313896363214421598531355779543939708141900986755129707362782961692361736545421829607274244101850930734930458117175061995360536729700452968865746331266728260254800137786471136150563837043940734553577953048078612713084184316984723575036542725552464674461451217011733603899664162000335043865313376987220015834039846384650577331901040773496815113210233328137835213832058389797301458162377725294669653720035413347845604691089320167854820449506437184515087231782889429504807454293431179937759504705641372436363533658835195703014668079055123454523658876974845202173276663409831164867308888890822238758560061165533679104792408896861541368638333171145987906942241349759093047418543160099374232031204445247375413676914435166991624755448892274116191381209605613951589848115870979507759168085338922769726877231864375026536584423925233797946861949285070242833157258698836427208965427953534169484527840361954732633437723315859492798646301566273637138539906943469980032728525214911383436674348592736110994693004557763431539328138498600672407950355386961207215132353482076061098178336391623926583645602824675634803080891958692747425700169139005536359530065697410422853709909327011949826059442457709125784120692227993314234767131701916009277592261095646260695569535855477639841564212873912338217592117931992522162497617374471777616019637727778256858990811461960206431913102091877022322111170262206323140466856150068319857910150416612887237074955501518876663813647599888849031115574881239886895468802305571046526235240838927846434556170648985166102933507861977486245060379321687716332634086412211853320858336261674252809068516728853828976178776887776733524913653299235762099437174398346766237805980566787954940965613979431527448993344848493962839620106495626957875719483100912090984306882629595997560507252237432720718380287076083084626694600835023226840785542662911669714625823213050582385434182608941556235464188368332497587171511744163558183810654721659464493250761025023418226341312418711044642447548463244633691437938624844828310762259550721942004708004466372055504045305841764776799807476796374899628742975513052069331721522055851522026003821881799410118721244430267218664468468392678077814221641042468798839340534483079072035007862040678546421901596954231916478891481662000130401676911240347304252106645109035398538615694690317064021391066674705157864748353776949006407851611563508035237808479380341516142835860355280909255835151502884101052959642796101023531776132583177221911744158640652971117115019102123749908536850429971104478372607551008525237177539641494804951241720032068663881555754892349312293436561028477168523623472329299941629481580712382531489088403367546092622311085108986780710804697812082160953164418177085758879341755305435007036180218339009370309004749492605057596956387659740254236705614593227954341963144408763491881778862783722050083247938364735496275671752890875495401608996476436414309269425673710071711718868021450579203113460823755135721135300635238882503294042362581643971311670291400924009698306620808700064480684460511907125558639287092932642161901660728894631709620314392610323090164942035081259964905372137979578550244605341379481314836008154386868261743497958989040737743085512694161993641388327653480280893562722214187237594332524254712112071014026768212085346848555048690485972486784755673692172035212920070262968563693033102954817181349450816455165465208240695967845262094305996533427084128608855094104346781374051678439414419211413358300210345117203079764666733149194404279970446756327847125920838039080045221771901419939379585805140506816024442125650970991929214629988368523507288671205150164724791948461188046740056490638160282250938813414585839804921385419088029922334649111749215731673532461979887930108099197987806208215011881991936514974599698209725911863580526000602093432943006124218082842471948951453290427629829024636153267304139703914869217237146915474217621296444532646349810677679640529518081657580682955991908069279112754055857171292731551967822896482919732555551195903662694512906907769998648223900251793145329746802553964637722344994790799257415530916443415811316961497819570873374789939698650125435318457977125683539554766954694995412590663860284983819351974770853882738189155807460808889415530571259750959252389722764040726140921474412392059211314398586091378984075882582839327511911250805243999216752713900651968560591809311151252000384158338489848235323710038511683437290478386181302573585848457717445262428258441921560119617594637671348697570402675974763662104080815313607744371638520714127094637821318091199218923955251026986577883054676840757452316574231366410012388078107735934226323754478540180579167547497130635242143491628074240374578454460368284123577390246351997113227529810492545985073292974576097995488970879861131004459444268389777304091659726897251659979700565241819145920061618495454967245762150427703116483700771830160554596444256694855827787359041086965352349049297165028937384235077219730202441864567090274598808014284905772426818488237724265195401389488271167371903859900974883749066069358424614480596685443420449790756715423759500370443200031968011936043668279696484327492313054266840379349177229086118864996615298595934971587580402421954573557709194658762420510055017315868858492020326588658804313694778606095682059138709796862876037621084598521846040259722847855652690746657426661061139290713665902808099959614868452265529570396606605217303423829800624024097046075522716834316761344838371791503466792337828734187400102488135253145417077628284518815543378252645095909534943947688545968231038421031817838428427925266529923889248828347300128526212346629598063885579703096802384826350005064807506471101908169491804243955346966495593764396877506572057195446319525277780775620023927047144010410275761886068685611738457208378043008763411905599775494002379837377721185083671510673642832463679068117422372014434662403436959231932889860558898437879470525995427663379540745395860931412736835981627826024822274131823512894453303439078376822704035166782499070100404434850897304195716778281280312954826671673173341160371964479543928069245569829930225176495791810856535871984496096374703929442107070003503297888664268390034990451734110902589629287734132377552759071939081158482712183981908269417816644854932556292619710691213511614390641168979966215461890973569577055433730745299845580030797039450945189570538362492814903711248101820454828172371676832029807638458315728487173209053761931676293456325176179257492268758849732453875050612964452973534762214007187781716410460208381675669222894413067010361135261027757161364505105303972633785712091031283479324895146390889085962089083319004417565634244129719408690432748734715645368433224897265018941926229839658947521462301912645802213590264184661803779146113726632586832679626346346699952051271597144463672338808130749837709671488034901443510702178820369061124004118739899590257649276261168839748763034395348368693713933860864302222413199828807636007835526005427880582050580018756460594084392141970561780254985596029712710368654158880338922889412381637404553104120398347319706117228483181762596713304568289003979057622822514366279620580100243920058779174739898299349467064070248708303594697405704201516524365707237608044917247129475606493437160928655907246218398661614104455263477293563651768550605513692551122466563987891537679012736935544565223254027835717688495250589031099841018850457277348403681446268488084067096651134721580047802065674781642369632270795547450083458298392660393525388981862878907161771893348310246671545396120617455199191775809941047388560635087385434158368261179459925569437957951846219088786562746770004852692831519065695292974482554331063343613602560865864794592960053901351893588535497373472465994449050271912884981276603240896106637905856281266787623198432441940744993956549878536754396012364424207120570532098398922143593575261705539521469508659929719738308985399205714514671807757105262483804249345349917788794992037427806637406499897141084588683274049138299958564440361447794810712526216693844125868739488294934977229035150183074580283876114211783157025401242849333687808777031402021130193688738471180281844824555687676465809858777330601056469805928467987346869981704986575089556067244837871578229855199377659345593702818356050657993094961737450489069625992248694086726398427582527784561372586480918730507885243143226135412879947030740068681976285721839855144149964293629422940075063423096424636298989763243961307871294066706252671702826972088740240445906303781224092173513954600122352507005608748772648010398192905208244593646059547550939695689742678871019053345640508988380249149114314003767871189409237755398982864478090129874966590962578527889154797972014747565823333642042737921199744260393487663921456635112282459411650888414711161171280624080247441568828254877551313536023198566711444436703428345194675372829836866772096555834164476320414665988395698315967273584776894486114524710793836785366531359065629007572506523559057228067667461383005239669932525204512693001643191343602510266722296640390643943482047881972096127436887815801043450371331778540556827252296112619318822333447852057404239341168538782322977637936332209401282287000618310974287882247390412503165156946125800574745097971805065397623674200868699818228145475661378411662254576128701526997152223253671927210100861493549978300324519003343100361567043351817413212159403943470624042450688374947410871227818201944809620722909302522199213259930008557180412287475147639154055709577976887296855629295005841144327391365486391513898661351615148166891779920280015438037747395808513054568257013418044316899580085533827972229044565885056092811695776301216562774025606905236335175786337292438822592290920662033119932959451659913404298796160571125760936403660685010476193761013474354849162123426819692738849148101613215917500421416741657200047671173557556415511225267429436582237645816584956503199527648938758531626193700668177225281016549448822664673780963254163330452839270347333524177296255904265303929657981912152129461149369283988876352409487028312840432392496844229666907626511226747054115277195775266506687394271612041909256561840082757715522861447457351128642652689191903007790920004910264777587025004731504333481687206225868869552791391369583448344924856045972456402114370052442579784376237251236710641522887099878237918714515780496447978763854911665865348190088783222101014952808526776964384474727888655812562356740548720605379392705323158131042780705059315648179068884762756059295067351798995936442211992852004082849362042183910317224782080044825173321755592610256764114938072190250623006138026001951512398971573639524125866047402840872307334948602651346741198178898464118543290367602865610334161172733558104510784495234363450368411473983626089969149526243207055701888369519063842823832484707926145199445317319215799231693851803699886493973109404578137935034738057146200464217025980860982267840453864215454699719248096309871648316598504655996655066238899036735916302005474869982971446752431836514616225705111276427586219289045565968966299639042052508579835039872929782982913830382391850888939320390434594253453875235578149614853029995902643299322900403323074022431628465653265322778153858065900900482786904644026199360029793104542278741524388394551844727135871127753236446582656754248343027080974804943000457364499186405228921828814013744479134859665270529085845232640027181416198758642346287321347008707065505233398631077548834980907149051413612305330281279738769475869144753414188823244835302612622853360261901715660760534670320035819257987097450558859261928482500554069942940766881111917853069494972889942149684600971505574349375955183458648049906577444436145013031316447050291089852183442499772027923095939816955095492956842796022897902574795938647958176716429630105835272681253187054235630366488533435871104841829815214453438254948501433893035638565458058778588674350515378308705213349193532447884886412724153206095322924715107445875732429927730813840152910008930397200611169896399343929482960524149677399182809484342836297010982328583539075006875137624208415770937585518689803644049419482840157552714098852019143928621199148225965212694485779887734239585840701133051311169723254243026139255550670225664750964264399672252643546991004739684169207667173752189898786054843067544931472517558799144009722066341414471831468964856122658365371201287210239406363452297529041169555164397698179404814885792001109204229532864849239421431100894943236928209178198258589729248217479161101817744971234352802154368026240736977268107115274312485237836946585969572937610182287713913870276318102038561701730641677000337845291916520459998586743510892344947282646334689587658749353862435728472090396721819525760291285287472881113941220765950689905932232842484173616619372982185104734118076560932833770699277463774383878549754133290511862117535303561795934317722467483485900892998674233623469203580747665294172743072714848141889668263390272191243016186380541754347690230632667467896919120052943023649520956936675605394292808947830332236184591340736860859321002034905002347877186342807411469132147866513622739719282292429065455258868213783662380385161785462691242124207424192085071495621354551255128963456696449951412541987444911886814704213282994926286212147586696258230771544300902073117509025371058544026554866360843220521434676229578719179901268289865842875834677715486758810365056272679159013051182840027012843629041087529708854157548740520419929414390792171094341730524013818664933437719982804550141089904315890422084740229801374863178757893477414866160458906349915592841018362931219022659190282401863061644921197099067124298628909812497334883499427157766581736278630857538630490094485732070334841433293059438787064400216977036575863830054177853942373274538357836123713951363286252039924854239221610450346129740344976973164108570563482701819450263469889983932622739160497561107956201237356148050185721385237259469072993983447908537248956581469320329341899712068732368279325018848125326044614077577937884023364287242869427597754889218248156622949400019859088634268381190678134646840926496486797405307264987677306226873780432284063125568511826327929704212165316800369920153407852961839910076828905580911555328040758749486082963804798949383704647817284653836842716170498979711821067442095264697773544778237139344558674614931348707428348970121715657047999209080862640502302639135414627339450544265197524004916804103130141248767414895948657729897646526907415120560511440096087652711180933476517932814430896295623751164806533864102347535796638270498083845804182585977942295912775944188226306341085362616153146214820367070722592025874365300953749553330734169391785463961224630103219385588673296436570465012160915800371655221424015114543813764919157103571818703999526379803068874845386710081499736678783128548898250499689694846805583655038846427389499802411532896172445776483759691086431161927471432633452604257404789791003210397776992255536913318157682436685657096328530033641880834578167727343730874145727937058306984527989423892593933082168582012498963139295750099940112338684380355954769594531427316660236457016109934941537013519239640166086159477480544147553243483670838012212979239943741311669885840936818850048624772125210789783765476188654194119708575495434031700259293790801809888996622480021136932095051066064580625254369564327667801217819682887673404926689931107651871769829885394729602682964194177966957119099199178118555449322890827064429909032116681147622955752962567538925744029731911923568655893836196836218805577538333982246450491252229310811008538212947435403520263018737880987865488908007374083440804405866826283412600915226268519201417040009881639219975179812751156488852094860970046730740507458913423864902009039238967481701752042631091701537331042925007903634543256985036457504630577449683406909183410347917617904606016050543067258376098831135114676504526721133326739436737959202341051177150392658004309686564642133513143151325510902353846571965048255400457419366914149873603943248945434934302701076503595371963525355218263289074772872679594560182982737366658943905266782869899649084711401011158842350391778472084447145990271965729648523471211230179019692540154901785661017051533574107717217680488132472360437447908659337656134864459208824461591955878836777675447199296467187917501079997836248739458827506580971030822158525078822435798600136372061668951018443795337241403387092181612439249884851277478126897764887029722111580105943932655258402954717891848313354591232221202321241200276136970453580345656530439107226799307796815065778673888646794123636300480079007173935184127965167124265897215648244425320213285037549744475221432654757424658369071207097718437962567180146509452153961632738156333247543112832034816404557495953707818851771894244651503192341666800788349434557555440657393003602443591451316018461190890190675715371608372755448907929210298173640394709695363937409768933190710479415533389981582670339672996203653395725257305529799368740622313804121868709382453732197886778079784432544904995179930579760267280350694129057236801299470780612818085403611177982546406581166101252522509796881464273546158618284305648075793066795908101826327353613648929787290581627549695203699737635978208129176451366907064069083481957913795046762133084382501458311772977007277777672982498229470824149606563760390366973451002101372275548303963782806741541175277741113142865412718190414892223935011208798382706510483906814285475703583408323930477647952268294248491206215605849159256136404809856934222060655698307129555644234554039331816826427679630724599276179574090631600337012928215510640495587412490445156403247750210721944762140333750718282035445879605782573534199687297542981856227184554914820344032899591321504360945055475612280551424021197885313128150811512077881638255961883392569406526821572381872086868931129231745806821231567987371465289828243466851310149147127572155716941716997968438972903603642402104144621225527584111554076583813783235643467011844716806700032467987778817453939499464187925966656813233963625287549160737045277148596830821437902346221818126804662505928476350325875220587744416725258670791648286033602445930220178217455156025486601465125675383052806217109696273109208010869981385107610024498797632374528397583826834542821075633861730710659876101150866385792555871448974563029769385690117593850979967427771634117453315779065722633732924449371680692879415010691556881587754080537065526186088457237902872640071979517728748885762486305352825028347260002004679346860117473337481193293091316313680932146326748782062725772003590748698439216772883900563214510552063610367931010056510957689520926586294692695779158655256265810950277689360026014370390452411677380760729981266841223571029170081242381380631906612174637035207422929318706004823971129920015957619731571533966311658187884122913044197046768845358521648226869417483586437982189368423857492327363972322618291718384593268953848526704600141560913750352060086010580039288835497942929704518285191065452890422896753166593761835227234611172540616816376193484048277256453185494664907051270350431393079543422084910336525453200224537691191318235421232495927051978356584682544139693414355381070646579826798032310969365458500574787960457646712053955281676593417252672993561768299735919883337760138302587908435049352170058217844221077679886060839060279181272897462793186896958835288899602500151952805624653265026754912126019467157952905553420142285865831285472495786542816754074405260760091966188042704557179335828228292065114520716776279726335555297410266884044004424009205389685730736922285533443684484966452537296327642460967109947925589402993425817206148310019228686952374556592344700248500725442940720054631698365017727732795283899168588707848150359649514802043800391599377092328009344473326451324424628730376445778133045769954740757978011694310960696035591370691142777205517500873196095148031370820112927857545886477192697905710228723528903053482554539363633421935634221572157945054180992834550212486651820728755389844689284116859379283537044088704865587227173039555111812632872751994114726919901207794569461742286601008572381170574570120817420807950764289315948313588628609302231734125797552828954443117217426000597863235261385157001763546374910925654247094879788765404602184019371364502589945081246214327450046912153479290613235818048832474443957574580461780497189507191600600884981948948468726831044370366417365694593072412450891399561617322328307211292185506184833001352976365896064024852746730258626598781698329799142651018411017948732605290889260243919055375587868339549327429090728657621354386119456833566935799354304654584139813510306199761648200252330711879755385144595138650651226685076881948588491720001318383541754953536930936338627187488140243856279147150928177279758800141189750174461465692986648668829050802765315584357162958055125937491538185717678433112121456616885747893796517930886528392802188428096229821036092781175352388956394709091384742647205597517050810346064791511810616788114776042034483391602133513928252725701326393283043841741571863501386909674315194982147555453446615657390505265893727888754429363204021428839424560297293724560296262693084409015569571285068942864909823870091514446458278763532692294234190450149201846087967079058904036734664431232604360729366860513310733228979673346982642120579218456720225437635422209402981103648662797837198756050915681303640046106411066069238876964024525887124084162884605221158174179462371442574717623503398709091443673304153522888148134914323014477744909718334706856279735678534067253146337462467137937908538166870806027908211757325266204648384770335283489748202993234733397809160149980274995855610993216324105138720737427753639025490357559818624909215867549365394967713090086399892311201573153324303486432183532554376346835929202733429232478020424017920471319973426915404872481702086980880192439023415220350026366875179425466660087057335341324014707508876891044603559073587462316053422726151055861918062819246974925364622540793028895850921028190851163015034847660878911490493404910802895956971351462876249079665725477998565626611226891377519291245088619759851738315882092049529346473714430034103126670824758182527342242245768775054754453957131023856615217973832619357046887613883899481820134504388978621605910999785010665066903055554440758599600527381618832383967292254389591545896986160768676378454888924388918576376764748894948581856514225232335951807883164351402023574570854487153696191894679624459434007965211807926358205745532317012510610149289074944078406682336233849838487386909508191133992401866695473653978469084224551229351167689534497839818960606745187608630926980799118379262673870093317512380738163742608139757981105084602251302882075606027750046207871359737604514669748283621381289004697846558832233692978932783144083002967789103496542271652500506319843511237128781108581375360088164890910104804882642471107976814251326842282387405730083872403645072986268331709319051836821118099154097320661943294398195554804547310335772647073018787384758396961311588300238977987897651942789253412938891812026167374919378219878335282191160147801961101424294739468215253463189037903754000298649608099731575679689500262609745735529907048918947751557710788370934138923429877136448847774788822083890868443752635525496370104110122648214950228464787926871578679060063120286211167147202326743887612407432286494827881846053915175994464743388809159621711797607203913646786641398842852943456302712420346935961937789298487504879399372110861869862184125019173991637955884118172076881389663302555797433926931545687390316339283666097873784497262356836620114111189188938738119642135575893233621687755235599345380901520855925834614926500993152798482452525652592575443510063748832869323523003824861371714107147817932949400977220442516169888336051165993097875671668479665022779777946277286366637964203704606039513913956303243788714939182220913020317569034067352523905239080197472303012634304880779673551905736973108691763581074645800951932334280121076740917461436104859355406582666279932755445069630684708990498355213322784918609301480620639232895667212585373613237643540393698954424842946464289301398505363268795735368820811092706802858838264195719416828488416897517431116259575895670579935095935858808336677772527997711724474734566156910718587526263683227223567842334594331463643164034055978392373707595083304601995427542395744642923799589063082922476052657506049945443838385351209027346937597911591129517366372257665781509962969776387454345911582429541189768261049402325482823924168105589396491910391670329524483587166419330776189240557787977806894682464665455184112230665745640875948217460533248145290123162978647303696977757215891116854328029645868219222689054004998718915818982019499954681659756890851742490011127302867355491644422219887275902399807595497395507126302516790752502989694318262719466334311140694191198048268913702718671800732261214714740047277305714755504572933167042827891774685371207713443528593376695269868496985036003126720211713860051661600756471389590003773579058552770969075578853835359454793909896379583338284211068009812143302802714436936091721656880567565675223428543176551259135243588000559137538864182600411885977400471432568814446005227797099270726874339393550748009477825973747624578967499823154608566614758148661755148739160500231340067100341985383169003572373086203724157355052552113303424438291659420244320127376924112413164814173087608054228309043117221690637692408431894704328274659690356485178595496677654603375246360079181470664261089914890160675524392512897964834047680919199115046841335621718691454411226235070312393958533913748076050648363799858723506672421487149818865128563013130398881667870854234027285377756724560542803866731634076111647959579781119175628768698197743927772626588385523147377271439915011211435862332822483394484356520522364472443491936466453581978346068184640373257692429726724779360220730297377300812773306285426040200829768096379666621223800656783857667242015213131559126058781584005189543537113256188707733044583158947961787359557064001523942810996610662595172642248525865122857678803941568052067912667319293436053219123892742728025481813326371974164526600829143430629171338675316360482560232285145657783114194289992602682200270060065092672012636730573407761620917152032649099257836510294439986492132151899849561199941927274552600086790649866245469795307657985129932048862214051997223437903073337631485460089590624806655880997700100402917158711684374092088782200239992307019624235038996545503206210187416822917096005757879458955464805005012641903445573254736343518215463210640213725737387165319314494192107177367466104018521577580194841336651870904124476643423742176370493479062453129888507652309588374029049572746729362479931398112347795913080760749168696811606964812632716538514443576806428180900727829307152637452428029521053196469050353780098138141117731567406449219278673204599829531120211896945273004657492099489734374017342889647562555698939057203303618605086936241047512748374945926712469157325429718573365754697179232604982888881484734601591296655439394977992269617361979890211885064040819361721486827361443519908613680136982131478279521220927376305419954903741654165220220646789086752175959963686095383568974703711732454090881625795307147307197297561542169966197680997946597959809851395279529495939919178393656156350710490766452425983188255290370975842904225452833324842650126537222725946774645557741554772984151808818374250696708377727739531460016007598517370335698010674010711409741843075564286168699709916777855808805459238994548022921884052602212829637654825022959751311850426188308792849041651191365503204275047654388321415889060966179230120718340616924816700843627517213983920604803472904707334715124424371326958773349311101471280851032162532440459879151558300292126009234372293268407600400792666813464369349210321432460489139483765198783835382420101079541716650067782203195978044814298823967743824176732818461067056567804348630641072264436607987649502309303122356635454710857636913700326513300264320814207146901887470118400397315025991726826679085513464379488044681709235342278961091917338591476818008889774392236466979583482591327132538922544679596665975943405535451900826905963773144886426701296474364315067746071346682864430636761665053601041138927676436937420280085719473683715652970063926000121417558002272709996116505421094399163389971523580087993334078774483716426147371018198036182270349463780676646823944868317220506421806119151990665458246639621742794400069921073537555245494782955903256336759191067349471028943826783960761624243655883486189818595659879155473842157486407815141513319440204532813421007880111911211955704884342540421607963386036189553761417001376054435994811959248542634325493038892135780845409988236735640733364384098751484407675073710070736022789194041594549125508160275654910248165637567985573839519985573946534835775942065338378156830199074455160397256561838365043807019842804345945905949322940607940436970555565249948466120636102924825241933069229508907608062449835320022059271325068562265165823261167530444910768402195037731584189443351166682409866866024475254977946178773360882171071518632232553294872605816731524729182954800322636625398266562190619888476953342143365929796411692846677083366397015032058446088838135924664996072313395909968079718901041278155648826413661136260219660574264516444396375061710564944446884618862178646986908933242490477937527556462513227257556406308621335036285924771300848296408925366367437177997287082970241206103380646355043817425925992403201861839918926784092171527280312768156209263470512388173051453120773029403341658334882343964802321159543656744208211461484768650237155375671233450224676058388557770896627149106716182394049131848038825761600483839842759434721895305309671221655193193222073218606526071863198785141637970479782496702865828371126426660863680683086018531343156817350221119842782870084586008523302607595641877949796226803066673495025962746363306796563721632396315484558946921281385426585828591013067507258410293922984695896479746812624974775475720214476137310719395072652451290289894081486431358221472915104330206927582847037587763548255833427932107363597063931913997056858764133265280941560318885471764358594714455888111391188535356564054930920295875183591178069351958419422907165989565503111783437369048132290017101113129887758672577814805981284356423451075231806165705638640757519458737842297215137964813381442049362309732469010438993041023618983896837008328620898380258925576478386892786377053011831616139954089767311318043824306450995871376864259021797417352859435771615254841111098740796738678388038122521989250466971785622287522510265571251560135992076287442944861296777307041007947658763160489241600954583456028493961339404653901414949314187898879255571492742116686247597101547879596843622081237861948223006243647300314166328582991726603999468363565520504214285115997733328676018428528118889569149424452997966239401894414900276404698472312048179992962047127466354202083301771060008239919624120668747957514083923367759169497307873887944650454050430742657037745094940045992365449003956108480653924550833044628387131107302821014272475119648776208448852864566868419057289130684608610271857808242417161207191264236866677333005091254005165386748665852454333322759125072248707656919215425422383985627303352627056085695139800612432693243514591618661552928120868361898727993228000355742587851686200693865238371303608241110141321635531253491673740679426065521711939366477620997002563223765542493188450736242610693360670881377441491883853606244669997899767745417627345816903916747017922406188781606757829273173039056246855166482642238722135139726487762412577018007327411678316758577758763611268486480996032197094818567063297413560468042959882217403749147097789860844052175461676821645878867024360786740348199554518403661360072369598408577180282617748427703789739012654828741371846847174862688412555491539818303328984539356452457455136226744485993217781530052034136161453497355973242131357460921526478485828670848261841750964398849911648897212960779383712964586185035529608083929190921827525946960018544803778525866857848495745358988174856887448141562705930245070705373078506007979831029794499948790153617421425373524580089835734331702476943213147002824118850788751640279666184760000482277924055577935522890672632074997660495893563333893347082415063995068823105467803613221167806043192051609556692711017027443805342461219346120154916655921735883104992088577422096449909777568732344485475301167808805688596188112244247644271871294464781352023943980034970949766789566221490932665365217370764752688856396379863067273929652803310547684606041658985439535380818326081206576682160040676968771869010964126331939274700606664091029243996591330897688576827415401856655819448690656441649900107797068783268210289843376668033128804963213687656430055070228947671325009047125920197985922306538184774500280184975496214390871266811758185982814950615475427098653134309869704738759468561617453555422357091657257501088854476586242607924410598432969239830067866006617859641094531391127207190358786971087112279610486928158138744753342347193916094752100488640110457296305927292648604010704222819061667376245425386991981967533907699652421305554179335229460275461055752893438738069866299370601638194617665959388887831950912642492030147994065235501556158671299955684213127181688275281515228525240173607440490992510518713576738085998434817613082441213665644839993066722317424203341418065656644128327531391348658257189971074263957902646318755645096419449471565595447698282624243398807489332655436569677352077363608229564454497878300032310374545651367557649928631247466412894939431271508341950512838778379986119967929620443907264845243870806541907070547602088472575806340993165865657505177953647613935176544919036607823307293438474509808097476573644223327574099540251118024945006113188935920389257204454473009652156180371542718013842737183191573071649288176334563181992163798691142508134655257144107586400949133219911880866498086874730199967743583199908870976585132198956570691294240603877878269137377588460050708532983557364185872747390989849245335510893584179443283645695770506913262193900830432157151068837361177820026406367416561118953554003539143498109596205501740772467013034157542447278300325827360145845015703011260652124649248955010383328381168836315030660395239447548022550919818661300700237296070861436081236432574631163079747391987957149781707603219861218996518752390980121451520406533498837620033509239097283417034626361898138520227237202909855416804437007110850903976767811493248415130345936644867878518621171322913793760300220370791732320336882314465925333901788080684500563844598579258024459301749853021506922794150485852141255300582781889638654268159316557946617053016645665099542647755775115059360052707689188802537107034955099661891049981395836682251343230287665578584742049682913902397272041075202038703515573927185564682599491935885693555696331800579926710057972933500121180946277323673125006690365180540093958688409255460914806578911777795851493702524731637683462900096168492925921587435618039176568664013267954188374130692744422720210300607678027461189309760781977527521080600982126501281711843405541815920376623849429684323575842536900815801797020575359704142302202739501622883345569257312287256365718391714313542862968898542940099045787634449124407246334071503219658048918572960083999812113223443388769018936862324458051497753530460902501374459347101746623145149131727995820602669170590838243502504067721245927081368981270584335933542353136788727708978095747775770493641259662984982445791723663139872967330679558533850610256085565224601478231623220622186750011702583454340232838019293759808523544740281133011804671960521741725836041565385311017683178379595617117314233845207811692044659395320668863815598858430956731058141768001175024357755631725660617371088061170202710081926713654029445779564180061776913474172134959736949019367160409555198664363388938233651244369793569891250096712644251507976140429808608326978543996538835104783514078980663101380838754894895303686169434768543892679930530328052042977662457704905839917627180376473295481599416377914960713403576079910736175682422068409014813961975881797583329147514163825669419652784445907479459129896354141221250582462268083643656594994783600904180937381536926695799434852104342662956184385786615749460178513182207505982147566326347972239125464807070806643604019904452623166407966270354740038152191276013575964017396919363144987796997168130038510636904509761208348195858021920584293070489735587890113246013889821421494952103753362464737511717545560144085327343421295709813841152556056393282945182820207242679232811375418360384501092866487750867751614211852995889898701346615994071481979703294771607985996772532756786199713011045799265604525845094679811574470072210773865044182061899742515860817118544576535293128417192626328408037880142397217776285528926681808153198679126841608823997422190551379258643699596353200421491141389060677274556669354088448656105997119878094431721519598156582384969660788855577265740030776717959214423223602333850285592221443102070334027214153409244508557378603145472545572886453997374373543820140359065030203704591406788478597447039591483675842488001872773911373461828635360898202307367483085876849527603110420939960905282928669589771433890511711805255886929177917726990330763630983560215527645348439966347856733253099211962067479116458687464059008217334684362751974204120142965869080970422144791401514559963069627100791698738308298858654704931214438444639316362553837987024299732393329775033235833289540071686185108574556641535185313547428593545168714462566248985502438489814387202101569462196857366201327646004404895426169299956771101956673346836662712688940273350243671894187761066091268183050602905393217427966999821002133469221749540638078870869599432125230287340737152686443263926758378681329271950332929858336487113165558049514857768297820060563377422795621956304415130319914543235247400358324692344432885268919212644557086871397346233565169728528152121354815682225922290308679130204429313142552426683983055239589088042200475481848660647641489462094979835220501727168930591038105550195836380455388154323136168494281935038432700611231555119880533270785733248131547890144657154350752084541342445738399482478621914160699868112758165766803037219029640738905090169890451422815988772426028225296821647086278257446785636334212911409327214046238809301481818775933244119640478215861890755336597974932392090267821643501005118092900802796430930111052311494618814351595882659412899379904173889271015376905114114530654734763117444630649236261810389058012842398614481569031111390570988390949456578506200285659760038269099053139801623413913512753918764172972233949239856034013006278145865590839162928497703118273963498622550658458735542621186620582789345112858018255321591827248686152241216264641340414081195893368062497145139622795857533793070870113325189656543115741309841396200088029467269401299296987174480939739028588558787004882090377779737769456860189659164100847589545661251350930417950465745307353681105707399868961371970852340420979041685491294895084163120534754458503345155020495755554675384106127382875840444282874230729924741522803315632172405286830568440475925623101357672411347064922763201400235131502376290512129341898825193132094844580424275486039356161104918348843785129008995999627175926691600257285109358543578053032850349062561936116197505297271476487993341846279108645444355951743572752218475711794895104283384808430178284174440060112915921548857837459945879982973632577662634585527059379189146190441574322080721272005772479311391524112886999534288044694101213491300586072353439854625088608629828139544021798417525872181337766595298946887616370587921293078584807463589596792977958827185268310772687178286123102284028351505386418984574919549929869099595975739844505223862901461213285150862967814340527372252357811779293236673269975031068013238118594783017431277444228841925628509081478609199939400380138793813610001401778097871311414517793390161913177640475526155108124658601949330097972794047603498427345049935694432774132553393837683805780490828042292574712752337063267337662778081457830905642061733752527485785900580048225765991729806333806485914519429035284085660948747639915904408956802875455286829746441727282931604205980317489967457560214887231884714004447552828188398419827167890961587924510251549985897223530466106537556962060528838061441001087627807626578669458353423673291592068785598037477747200995047987400376752348039416431125775755237757584848360506777895613563660413572715553886457228073915154108587816390089725027434677478704484011974693212728004437243666103870072729214134184055805684337339934250111793031582516619109122538270215420463717235068752418138946139639749547211131893429812660821992241026932690449535317064240184517054775177232306514303899982236639265195535390017012338380134215728134780642468366100821509230403894341627663432529384103254310972701531310345168082622620675330316059730165905066310232368528496604202688218713495883969499311107334013931275051757137430932671463549488011925809943206168531216348057754573002698108956486323626420417366020508890490939446066591060621862061351771249911185517034657984080583550410416616565799639788358089161836362098460482829716103021630095920128626654265132007945537006535857925506734674911578120645685536340706062371134157165313741848119798506773336628485404723378439741758203344954738531164077061379714585230157561236289320638044215309326080168093871064407233483480874223305005313264746773310935350877759441282508497273698248939083785855814610764440735488175764197658371279917228430834730844647397860838935076709253750332472168724170462941622593554339789978927417252319517110797065275924486021440414897726178923736447256043909693175011226145228340313602348757159688869488091262769997714212598744027268167132721400542995960784312884676954549395144662881610297609118079856434501053099469913662076427400253064205374540654294544222518233554922670595486449862145069911436666996184213672202456842357773064102996869810350607581914647284604374713435692360393211426445803920408527574442318161058296840636820861825821613425872705773272641243706904242620687980320583132578035155793050148802145436231933005437533816887676277727611413222303920075316722228352567008364367381062701239684194577674967558341962527402634162880072254386047066433870528751976143962548928716563407370066256953255542685558571558170230654248801843406811136175668923262146682457190576966320070434154783146913251031338850009497711604502650490032353588113750170770133904036674485097314960454801163890241357584253793473967532671962070902600164710366466543157378232480994218427991236168946134492327012055675512132917786327532227443991851202681634634632591163825949540594373504686357962660505955008781438787211734019455824238198191125953606590136368039526955659867817180735328321214074066936598560252761503664797727597314100929374156118404284250270099879084756670108722510163075891777997254346975181816765906739642897695065548463569899416986722641361310936553085226419966032451658764885788209147254421400113096668979411509085084904623745266662481409859872100946084733276735057836432492678350747275258560015918363688938018546220942530089249209405480033105257353590932951689235721082539467769695649419009009980571812391415166524236729569789367358781259822722799791826041920625455644784387440094532162428342391290476468492980576061863936449243343138017242056182282485386676653450073153851595584273686708548362951809731757878830278434244968655368169215046755205884116783139908348646156526888190475842466119157429640222102980833870367978129205342387265697450831801582503149196599690776905507660679565549252065211994835735110857988669679116156769513123826756290863047096098335810473071277792386846146413372087704050628794029090058641011270982542643040300295324747348860103178965113455082094674995519042392301296967329319025180626028681458804317191278989311872990980146321642806213119751975915902192532568543602689614358854797398787834486217935132549847486801401627638099766969554938497772553768202197904869139169759242945193463175105682122657447560541577034817080445857434124448254391768656501176150435128374074326615178766286998226983410270924823626593381119010176152553433794567536365973546298220810793539828960926370258857032183528976236556660401538184446975646734350446066645525203414053168766591605725710429536779271611407683526395233926059334098688785161681886736952480265743429460877291661072859392151540539228150341411015740995793621893174600348188166383282535712002016568062134402827697931504913610062085736259508234301688450319456837898146807385839743595683323654431387245475377402954777463614971776027462057188933552052534082754799317744197604201606847704515112303486344584801759699718333293827354798921781118799380978690691239608074033432677340582073071427458265271476405417774709063031315391616567607832303108899471660008191195265719977558184701125744103613147987494147759034687489009762394184105772112065574139076360662680038416798421167471103304004211693985188107792049060446543758225544935390522408982642129511865606269882288537346594757981951098164628202735798059476720010245586845686166243435440242724407413581760190961109370942589919890374320748080745185654547112981746183083056920321400905027361796372714511947417581819004273196739100659488555431697848724551528037176218175749291083842679631281975201616320934072111975338309085996504888927289259193395497621096791202646428329472016945296221164287349699122566193420197373801879770090126089260397365335152082355359017997560939324401287439387794318173458017590544477171300624984050075042002945461980846102124998950564207199647868321822651076678377501176988835003023135810425425812178260203263337457718401485107175981447090902586339195881483454120367018561223993814836573660505458919550042302127363244032975690050298022424261689605789412887739168437583901199578875949122848057799437749698623664908757768003936116094401983139412093032434149316356952629870567191025317049692994492384726484070148348867027016962413590850615463523596417957796633730292855166388483446747587954235936697321906571294298831132184650721527472166194791918618210864625066658190359780496116700952460584755832598841385207837500873083207689701813474742186312023079568738856110455971833562671682807511428598216285586692115155069307160049563747771579151877537537905913794055336944963658566290260794629603890796149318900050372703207576357302758273902302795674507227040168161458413213144187394794942815989189872555331990906068127105181633223267310387051005344877940082851499581916468350088197115724109722497657666435482832819806036561247727252863938064171765462467167737727940834435008301281193963125506743190281594680495655301718703837624363248188812995128269490126729149847321253133651336453487309312139951411986170389705843556991705515411672242932595574359825326896233841426646087202465319078662092709947282907903421138729331381029818076714842504011154116280811037082239202781916859565326370690419087148213050677477573118521207215624859423414156297360507584437057356760534203514230791470000269807046393466307814288643869183573485089844375435962216245118548268008737211797447192480082161449987025232079015156463112589979057836512469432168146358951876752172147094429154718278597618963637864847370407946743664375531588911459369711475523164797377708847169088117470899094161383852544870985442663540087846803702298715819432891730439313456059358346396618004054511219283008208385846258588101554320753700116015483061730117382040241731284673723883586329929071477734070382425032636093263748518921164195832835615597688079215584453751010508627684880898364793763612415497424431599384307969086022630145725590094287184106442020571867763338401538425007521660934961289998237233996416805168947439034582160744884834921807761102399789388275033257055539302769970146148020497462705620251097666808641456349642401216514096895983833743750037613007218081672033934987056678092580690185289891152704923382723004235443168807159842584089064324379095735351679906308696349117687368584666181522301860048757790288174534367743150293681367771773664433434414327130940255480048551590792032962308549784538810253331417997333420382249145894904181556497732506628420059968369156532811974090446685647184959700504784879613541732560298603268595817995297476022367252330184238063986270980778208933160639554790213584899314437421167415824172238468933958967452357899847155661276269677488987947657850186712922462917387797541602254948226195262496426849042833391447980621587175538063336489626589451026457432810534398632471455456813573278894985462503574368193905070717811699384563961943294774920511905732122604637371360812356226900215937964799331870926296144035233867460995036151461006039063736792755297708087926971144713231071257334333876858964849784333834175894994934881837983218745769114455611866481268911844986557560373339000981760049426962887628636318629980054339097067044602320213701791883149029216870522757424756893912985625440814679621675538685113975910411480492345972511894104281161206871746097817755428617102637645688690204851019693452928327779823422194737670717461869470193943082776283726318431960442581717713731982882764477270632939668111537600125270128247181740751781213132736063113343027349047358065003742886429802701603569409111639274154259935836992477028335444842785442183366828564664308494548412740395880320977253329148294953578556497650977641675022895556382234373189418479746323569430459803992728318064603028796832719116295566120361471140990356819401503759735012309951734730183733398220139362137312653978320063319350034598125351464216471587271700908558146706629628264247689870596520704495024829491815108931981467666692220666963183659694691441643729303258837870266884318173718919258924632513520836350550211359151655592890535916845274174704695188747456987351006196380286493359507347620551807463821350358893551936526909761355085160797763609374441648336029012048420255951437432292487346819393190216989709243387659509347289184083997929672861334389431110978922083109795607177007591546748812148052101792704091678157554087160463453165176065643142163066019904757937094171012722028456279072499258178492716146015651073244455699286055338065152247189625508532197761012120872789481149818755291337788200322565609938456545299767825757690578061792863168300774005101913481000393313014912495971685162071666793480003396665515066634341178370747955796138747525107259567165911830586341908065069343291779946089870709174846756055668606976379708729297831631771189085769742888551699740542530668783453850268665538629771683606838496204161793287435765432645644365612458726737695414276640721321126858254973029087712196004354603649260681558513203826303790656689610177944912180586971296231558748809950552654464944419110783644803163563455268152858415597966446461774832114814419526993519121556905425961369433025113071180828997079900189066526437271212407742292057078693933554143522208672021049576068384087470828964308687604372903879839506371794275233906022744573233197031017953357684427262330631290950042380932911459704359621567708553297591437672209665632442623862299605223223271207369040801701062084900788400142262320634987893294709740563946313875345341827245250964339465739794670003094262459175712311092565100425258860157736593907286153690068322779482319651026320110646523210934327242449192476092198690547007832125942560817519822744759650309068096657494564241959896602062034083396743218832215012805037833374645123220866443415895862139380646773819174533336205793108022502563312881687017847200550380858252480713763619450624938871602531438115585233561689464670860803465316185465847754036347899578527851615864793210179669462760963115691626205209018943803100812844004687573420031306840615380703983112190338046370285544324057583831886890297186260667863988838405649116859164040075148148705484343919527574353021696873809829424077864374708552067437700629856875764376084346228625017642829317870391068624443487380400892339792231511029171224758971336184606197666033479766205243787270111746848459841018950240578885170827717467610545992503858362980406740772181263007279949359655257474294715022422024586914408602906921210853784980355804886122780363519221468627674543865392596359641920209921221404659739243815940485628324613944637069759762332365947143255190202748607378233715698412900915742201833667735307416080569887450613357227542187639164948076580765440263795390113834029506170525618100001592916932473112325518394874336681778499953128680532704125744644391908881133240131207087498030035453687590691215902453532326046530744390647227750685868833878736326988451671164094118624534672831741858072897928775111002733398541883357828855015616721771032640177437364047428543027036996370708105270316227478334707507560375061168018712087143317816802990556706268765825291778353664453835548048992994912155121110516767813694673547896791480945787439054689276644616277307737799214040293796445422659439507222866482326359806955960214197042491384603109288724978100609048422415401451313203288092856613006468858849578838844621347821362274233258707731213478862327466820167647909726698655589637598824712134443961507414463918481585003965131761158402366235680754671636668189181340789689027227373745173959148872419280235306483877866912117321776679938929727155935684386252838078142254072183500325326296496208419160591187667258952499681505406769805001834978384398147531396370280800663375099628071970170959817191634469492634921297401914344398127202063454659576307800591768632908020295645722451331116608279570616764015134211194234619414099422073657377865046193721782032689854952727173438880724698836576371372191426955810103676066919327983016516757857682672053980657589425659994582477945009445065186875383420385282620088663466596668007912557984565309128951858109170566294886643754646369090851453260347809138829416248860693757332128329531638864236654986663683689412920223068599447197186472256663705825625037250186720156851948865863562022212427982755850208177547664243480057855704700617436694998747609029948183247886954689469187274471408716074051782628872206647505818635658384786139258840301112283856797368248133963966449821526046626263854018807256838639775622417460014203686733119011747287113326269345682569758943490140218254121565834140697182029301030921526125986775743876455160849389816070715874778155552423955545287228605888198612793520697731251280591455140293754044679923255762695223290769959136975072709315853224892853066416071664616364618342621893416254552444035658529982977947650882143230968631666228962704786973559332350836876519542231975114166345082966240492466366834669840122851975948979643132312605373781490136156661583059918095520023680904862783543265501112696691046992970919861345032246925176425004907609540266403448354008009141324996197944806942531955598099553266120812308480096373372621968642270425560789455936882304119634980866241692469312532039149201143126810648255862447098367800650999649287307505991359869090440177672217894505994193274185193655155751002845355284935994998469390195334450634491824723737802791750475679580956648635259950766159398838867674712244914126434689562156632807257131931258226725569675133003603914081620063938850870537333802294084317202524566374041191605646757861910708808924904846870421324273732474187955063158128045187602205496047963103633110753304926663089454024878884261949388622467088468312368780039109501455350998540430091044421663438669382806235203133373829185507959904242145715476657838852709696519000871802311569205017631507172927376593256528604165438428381985132852534559698517778020604683889468549650341974749170777862997073186024203878913064584766869745164862870458365329313166046289621410146366712217150875488937754810847006527370109771804208594342540259397214572124368545584949917418056793812288720945286223407469235349564805726679265908141227929143550927015386210502337672682298570821754825458897658122581708649060188770377700225563631492207082725464042677416126042124405935614832428154455092536095825939941463696209283707825189755978959722867228153164422524636314039858794274975843094230365564630298223821694803272699844806654444690359234344317929797408858686353628911287014487232144474954117151993364370832289889353633065922804826345353629383280538752890038825779506670670544223311875388827513374117548301577300012716929463142097600248854503330790390857753151572565688333523470486026054966508956289716904935167500437173719681375839685285224261742706969874080819402708464469309597682115684676807295962391486532189766902615842811449181958202511563097467956068503183387484862177228628771207321192657203441530400197938487157130376712569446687123564925449874423926808973947469203159832202090103100158615643106165806156965869675995358391159589570143769901522487823663591322286782452113894957262304734291829517831412296130037946886324021881673924939777857996839946171497851084844814269931393754334568301640219310503504599459351792260610288002546624123612968294085530603990159048960034159260925166442109484251026189749428131852294083807640083143055439272810721779970683309410810911125844375569856064058842706264268002492565698801690106448114882832773505478371886088233834392657218101332870740148985152604858472459662224828589151139474181688221044349470393252288785672251724408136463444515537103833709428007030043176304300182409417575102373484716507795863999373569553905216752492585708838996803096787962027269618073319055375625133115998905976494223615769642225605736770181294210285278013206115073667173495551562532002087460162322261935465026084648691474735520764806515315511645560276083668643799761677432593288754535727170386771009064713171156350987174670636818430973375729326550997843675394099691244614278215335656004902162608673938059793098105208641072268651673861776798724688886358906817121418208814689971012697220873041505645378902394187555019085358703832178670721439570887973477502930196482301838797627753712178866076654788247447355489674503566605914124275362582054335639000863925210598439507302555489225884216262942797714207928092546508124113479784959348464900596429058501343132732500583821520839679804373309207809490463514692378163397861178890904038201375793113568962935833607643513709504623078761954757372035687859763432204930822682727884456503541114813436832278631472507661636741028203362970818228917558599254306310783839130798168940306581620379443897359564332540207508242215552657568693657620010666885067225146016356493569750210753892835264759875889004752106972689903846374674657703137756337965097425982663527546674581155996709968126421283452422957992174290801960602054222069992288341776325459402196258903427975874829244515018726739730172663229162421880131716830594002363365268432394206873467520954361425294146626199382227835659946526092907146056148943771614546911771954332710860078690483518629561449291658786780110742808906591784276411863394279544877367200987728075826268550044171770908549601247249659530592784287866401478067150525149770982436686314829404274751666342002545984346662662052986279614781035835126363891761185629114450116644188902325371225736628605374957343063865592524931852467502710185785944950114304193795363167535470058575884597771323123121553340187487017089792186865081602885740717737875757785525639485160799723597614672334836104885616393463897716075406164284647738275361310018531913307493228573028967237355114566262611380305201250139563475066322016041668599501827560894695811752413606336286848313075315923280295898102254433580498668117391425347783446433665442403411974314042097888744449413709534652050090194918185118251890663954014872499394735631204702375083173651302345225842655378397273299674830650157744876034165108395144400205325989472638028669688005771107064806654751190001916414054726879577544525349727648415555918731486809860842199725861508324729056384064552452500824392113059608449364773971484260855574482206823363883113314662081420538728095573477098938853514773547433527725163650477030937287287960370880651511484977381622392894387208250834764980155192879128027292113816112230010362195944691109319842764363838070608300354617783840546295379913052154042208052210162460344388433889983866012916028430852391753666577259900098610264170921671907498052794857870313201190063427645168041493568297775699315866832240422187238712579154454417369158392973304158025777099164816550405140059501826429887752732535928339531122109355572848271640241476541147370484759245621324042380158586611267560465294529084443021187014799846474978442125071692103709917722793949503870244872687240821374007852331533553461954168336381097013413281789483197190571876784590471990707918719148950624521926165769701277327127453462824064534418415153574816669017009461735614630869491123880049336081955790477392007118650334546796829235411424756658988882077759551197384585582849570273982761520434738262367049468506776664534948995755004407953075074354079121192121608896949055078078848129991636076245081021925679037331839598233594786416575911803642122292283758993373233763378435322379481237486962254684227119497333691875640796188918330581978524074658091024474920108045059688993646586920111753003201477666683086046006357711415578004993026782049468342701196605348039817118602155192194508116118894572453885211874955027623906673712797779342487617356484656747533668282941306546282966964829743524097972263076412975779070187274304104835004500321649757005408892761388349564016075987375402956398782675126880476742228749117207407703137568236086954088485667102389716741585963888278936110563715780974839861800330199817687508180949454512330680175370554376195096929198418368632407736292805838708506027666301497888293285408039720340451289651288056213543003617042709377611806272667383051025921650017039667179245792154218625654314235223450696183364995921926057860183990777607154389250956274677694791032763306068321374190606467908715815467132736938015698892591119604628572088190831343310626873993136905059579861118975930709108103714120926308896144537450385183638319839650670362546933989787003676702944286416627576769069270292797941330482153637726607357492453802050722720789388590272469127247942540304535807241474986355151790532711579693555823487813002615043186067428598926138837893960363981340783093147226855197009430639842795193193823234189947082169758945682148528267279826287004132173006848177773466334904996467724278124336804741985643883298609225583727096075626209513366303517610787072750816496359395250298309083870171828543745589091326674929706461735885463710156845166090183618866781065726678983613374447571562830368813162412568007086804877578092815870807221263101448230860119150512081466967133017902220422735085991847028046754318942196048793163487933455244009110400971889219509149570781907884240198877158254195278462078405784357630949363575527876524750824600364780430280754378788324855736289514410161216367979611327244692389000120545273084375062821434299249845628261839205333769977176932906449052678027887143802104129215534441029428876981693798750162130036908679172646037318328506469661297257665328406846902876018303745396131904781882768596181186527164833763447924257077488913942780575477451386522263771765359452315685270984566724794855596267605601957772605254421903537698956081155884294005545241518159071544246239036079789342447410648155071730948997750591823532249499246936410178278370872548706559093069435146666999268082159627050505578605665019837119555938044555555436108567960323773772725695741166565318996952879829839869159084626644230336102468124642184209848889403747414909090935621987591923687797779300008590631676280066316068408683471208325471173628194161846941441577874137889702624006628642135177543773842305333299963257003330056758200433943655655074376093289204517232333517138094739112374540541023522490342553599801658042988656978076074570449445619359426915186836251558513854061188035280184422022091874312655997698230505857536890677235279340929577686419583547700330684769617209868135195250112071671806507715949142694369857864761999611709876866760223747164391326036929881340563434433635021567147416581412767831862163285339807257652270209942437546508137518399902426663621861079931663264940068424004770402013428884777933421460631070109683270220359221489532378306242493758332399810822213604376534688381275790428754591403550193824956789072302286197023198245703114694364721782265960615798779209942296825540036612070823635410362067743239175008622933978909060939486918745698090482528794557659665165293975989570787823968399694865760853846987928573750372790144340202733848719360721924470356754601354393155140417187682964763869253567000587677216228095567738981804720026484926540698387209549783504941623700776154139737891002993495190189602038818833092704299696595697687424376313336676946481146280975719179764246627347597212823764004639865739756086079634375968202218569909223087839518400158640777145059938716133860546207598111416243850269090635803428155554391993642122957445086355813250380365570200730177058127810621040586626430916130583310541202965055705501109827697623040489474580466965454105302307675310612965194457448164580369522413293338088994803888648585527427194140838263312315305258444974239635288763466338149647357725513362211533636350124889037781673399645053361737650784475199016504413717323119625399812618174921281289632252476974710200514048339279040021331245170450043220317788333872016011941622516218110283764940871330832683612782364969978107730430745904982144260943613619885696585884835304013810926241456152411541134044324150751533442682334764604473467055915360206870262875738151630895862742809942921114075291712043858218566098982248393734887335059086841379178314204122270171425253074675663686757395558043311393473227884393913102348165397531086921768819169325935980290165660229544540132635257859688058759836537866457650602409639289913909491201337527869126617017935990515742068837901594729089654147417153080774410380854026864657634193131205663203613207688456860362249478435416578243284764095640579236708353185018314915903769013658821757534612576531925078476441083635469716997538776610670025487685693603749216292300174250354986754720808703359654828731615023043655709591581320309484577562512166119416930981753368747509228206929399536731494830766833993285372516695626929397233409774361029898784875342098823392273484192055084083959379963652642024243130693982637326968267596038447074731750914055679723115100919625758504598403710979100076006846573321425681426909633248848713192777765693304888626899492966084532049660675665482157363964987459657870127833993181011968752959085092214616793333666887354350076034107291447393548459371730992131720118091054796059581940027426071281797001875797188658890829864741936630519317367344063190190143560412264818599045582440396321685531851339711015564042594247488447041485673280900516497901087042853850518772756037816492826636104207680296507766342252556429094237012843822978751287631614662865740067905682128443714481438518962938177894397596157599842609374006917741968092629640282438292372736918724114375193155925950437178824422370719826140202767267983126727472245388171798119835085192522217496675162927325997396348947566138201086238010439191941754993090994942970009237781067362459640143621620186376387094391140656319260738062797420209085608916483142935590486827311343051200584694971275932228130272328662839059157399531649633321514387325008520388201294282707130884430517822134108033422279712205387135948347951665201756518948083427755502304330299255258264098728118019833162548832586721297910638553950315770889230011724343048742447809467332415688860416806008885743649954399435319694265954185353576272183664973611553162722106960201478657683410939430056111608051378482195583369733213966909175998381256021189926277510877836674038654014053069583991130368221248208219432904956754463749917511592212840651317359648842742164247460219824699773084219480937782537392712327859457896079189491229149310896101847061436780625741368652717808177551570921756228452426604074121193448489714411970873629944992971345681601712827638395324704237685814948649993567101583043329770548305312900651191379526893834628769846790035875648782446280139547790775955865313280240879449582261313466351251125774229295352162799112403875667871244843713520795776537374616413498265671042782718046195104177282400230784433872581941172020752561558419518898853286049812553005759062820125809559743726259042380892382636158379429644255428050950356815537866001348143976114441371102848942372652382542157443845105728236695852564556094770251445464225379328316066239163391829352165110163079428019170859078747149207271162937425195493718855834014702066664448720514528150973973134782612532414317077184199970172178634999248548005924529699814250750968399872795424959548749612802005899510944003298833300442876798377978752824470753727265862108653468473118141166636539949028208060231539968689249653333195907288638365635901126830263783242475567983700306987385987948723570306838502488141594649937412736335172516279441715574343532337926062686700459296609953892027959648916333445757539466153697387614471182315026126587499690415735183231370098372134016427038077387184807548897080800161227946549791832247222365336158797610180968174305294685650988229118397593637648818279574640132604386418770814652368074502298162140257422014499550853224837033460262651696020549392996784094557388323172991077299417308169359073497228743248291083053502683177967221093009013954847809103435788564903958763433440686452793360513329579653328444156585209857461460454594703569232654729124831495149274260619741653153853940128225930032433254425014614444492610684127985263340774375974972716939272615795516956489344669969431180169367783367978825738129104475894507859703390538580755675848084524020375966300107662883357434559471407160597751737459823038004099132966214688489395979503465591991341144192776325468503066692218587921772862199043337452045998535023960611405563018769579672539566900444414622456259203559409693688872779637658298087745726211397396597181026156928717229857151643429739907516785492585765272303786743127586603520380184332482859784649353224090406307710977633164443127093327669807610244267925454728150784048033938330556275856431893502863077250173228547243097478168406752451165589494555391412283495182273166343286116090015840069777612187968925353276562014202661464463729231580527134558984966812712279946721175256273797761110163704084024803502736843507933237593192421362348048045044336040165903355083061128854014173501446257788789558054626305472964151536513821903395866111652557275311980496109080383160817375602421127027488075589263574095185591172105455062433876996530817058781645576609681683824087754832514705907881207901241060023270706476254649012290033806895431359363904796065148441112274156737120730367481102175882161318996751378888197377835324481982731068275255203165207706510538105962850253779120055907206028853125575500905193157615159204029711694427347796497600251496593659163881359764439814070763084202553037309180645255969801697484154649590762257342644441386387231056508499690149758152362740285509296079328375406765242952946089038148837437631410034340456661526759934550542738586391018557583068034518045613158613791598720735541509633392463447957825511278830764181112528545315851148737661088686051183831762844768609138496988022740601054496486086236584561823714572738314447566919777022087968701083383112132273723970401543484359666005785948167352716471652853041378832746509687353649313535915036238103501768380289056493175213317029097570080315568355756893266432540565144700598120622688839323219728715926268592891337909186776109278599382000321045253389294112380070892950293723060365759240673050155370210005217413225869311872160544919505068988481868921913342887131813752608584281734358181231390731946117575164918611114053480410265507711833126233556687634308857948121157610000858949152222906991333986872912047060479693808392434969570220623930228036582005226637075869431575135490345177723065683540885733039357745463541166924786707881612509108205531563862366271023921816429580554473999484022144274744394379565050068402159296220980700269483250718694383263681067135116483705387030194010866091632202787785944082970108536856898425641881936985176084442065685273843509946444973810693958055153207449938192697994585573229195008526332258749882122787161796664259657768325247426338243764743128245677112339056355734788483626546070519137765850205849160337387637465270600595360379051907303544274700608632235668426672719315466801144405424870680581256343730745180906152262786777016570839901060806120864678106711654603605360730927949626775783900793891469875651366263299596734437439593511598328265952215391313290618130057447491554880635998381021972299358056430593269807486870871800917087635155940744118952234662280191718530709590906459828315717871065028044148550424095955701381039879936929888026759998192537152109825371142795133364189084721884067435975998386698594235518884038179865545658975908123409117299892913407394662091724598257224538754235443340577027999382358584853735414794371675634059450202031662467121838532910869679487449308019157844829856644595797060679184353661135722325849728365010813128584128597504545920884490394915713631872306865722025125379056120598651337863984070491247235835989903470381013192222109476080726782481136600312946776322262472546775389834193314366041629741184443727455482699746749086999345528459614082042545078763691106706108136105596373822133892596483875657151926403243031795220750391482860284428627382229721115059237148905941456549493760036739187626481151449521560074524635283753257947932648346388266284133799127663317521564184457204992371406736627135855963725479949420707018761572154359932113818843816172106184272195278688348880593543179771777278570435448031241101044200947328039896457737842163936310514328462983006906479046079742256656379401109996071435930407653847596836607678735940991899326847301713386865793618954783414180675689658725043892102612614159884666347659807844401794037386822441823564790035144267237240290596406167747180837435765682922318809321571321979059236748782581809520317883416547760390786741672867067185763231635436397965606854852261894558738231234983617445248043396546263322564703925111535424136011678112232599553771649069243550367447979825091573660965439408121110160730799731341945589504831146371540647868453580435061462264227478988917160790333612123398466425746238279772635550476026321003642023059546479763692915972205266211596908944651398376219259408332954885381155834667336907796798820689418378759137033516951399882328391793337094891904071336062924043510770394295652478563155429399599567798264518812171190201026771794022270933069400465185976350009884162076255834270095383579549977158797751130940893464960140667689054235264225308335976031750715513814101887348872979688602551812479379409269528958289037970658647085760890990688691834814351881177654957819178177060869775449297155952320761623494955318693767133937743623350329327261162696456635927875755804146260656044012702724550651238578657988346612683203852202581092860031565036213314588524000082156740934986665154093837530085537913010024760280882171749320222755848820602289365325307431479847497052288420501078447700148519350182301309381088346499780480815461655731856583421507352336233531916515108388448943238997090124926977917948493137796015422180307482806119331049297512316039361959197611545752162146356685604217625212752615385563762004876890916348260233080199346118442751487921861987365660701156827358244083111373775609812956654267812390109870491186648968526490025822601869182426969685318336674869704187617809600842672957909156816748853804591964928320491015611153715978425871750816506776259117688762640734942481119574989659198800029276906756041639761396733223152327752426643874253184871738955324507628379818959454907648736932484040200244670953297862053526979634318551839149484522480835931288877914010618402711020252809152535670778803281354546575409554494320562374810522616037338740017793417677782773549893333170256614223796914043004893098714475913896666115113276599918362648548478227556774760095491838189101226431391190806565154270019689072859317010729459024595147329846710326399333235141194448245267065922343286567432208455511829332139256890401308103313298566760767161381871022005482797758641567721557414006699346658650121626435808336281630758124108343648624183198884397724694456682293973739224775678045898246830839016344901753552073755460907894989758917247332237678752252291362343469636896551269244030944802026200293629749762954249620812841483056192403291017929907889055113376185379933109383871765727202489290003012122216130781522464278828866319966137791031061298741013314628403452552082794222851791292640803223272775208266271591880846114213690883622804671755301182813831056069467340422583882250619568210933029800952246529825724038516474891911085095742081916790802768311404109169450876234004191797178141976646751337529132652536073081425731923038754792229655121144977932372546683158892506976277483454320065859707541377437441400737716131055642482358139925483056734454993209734820086945071330103174797866243213575963942306655108380050360529112422988121150255665545304916563803609152936045202112167144491158054982452133876210669641102352389825410043358829105766316240881398274709500335624863408996393635956703003289532341938584733473151557644572143803359585565814047349711787359321964924093088545098462100814642113443100328513102937432851470649946183140054489316796377322767960317530164089381339705036223825233810137863035774390516807463539924645755248947266261086663848405980935943814772067116364173785368218963311648368844149017292919351770697231554631830854133282337771066284683744647067987150438713460032828863312051229544436455217982694779499196802253126049701050578069471943561922689936230471660107874676446182725381056839167065209293526416568896150058562927511518729514800818840101548803210602581441239464284707513737038454869259854975816261906655114688504703514944805761550632606246422591985179727217622873490823673347061473938707170588510536653531086277195002778426308083833888549525073128141958989991924806524169935997015727484409164374551091605476056400433997894960252020465192176937644006133182471200204367223709465199043465295059248266161694118206338830629408756227135255243379200432322623650077219655327191826752164727686589234832299043154788059110469879002466411700370637428165670641829568205440966360635843099001013888206857595660917274662276718062738306956021863021998022599376538437861351366663980404543288821865508267029862446204633090672851388466629255343762040531780978178386311407647792335438546266509492303328798303645752570834631748771883048809107621191226666809026956935919923420709308159377547515266974448945342334229983150765918939710826983349005604377568428066027731660233881514783740913506389554780163973740292560729976542542479854086764115959557768895946003046958611201869283885369594051435420853648577731332663799132014617752437612442101796851775856526424878912309273782238692698583943833509062918080701118108987496203397353548034767712780656224598397792870437268972945641974187768368433590701196526925416861420780472380715813887830599116962938238993352563594763956936583479518915435438288243490380499339810389263977113479182971841335490430032076414569895925112578398008845118535086915951222828753113500853471529639018181342924459298437167009418853305646275426285120465554426582028436151942058607311054813987219168547867434230744382118969072559132011613689577228447521330076502535656163598454396135543682303245306136582331175561024452774466676825470620606015895687605207306953264675972493317111480786389007087562270944996435193851606949160452549634237265912601516074822204783352778878754843532094181573270483904470761224316345646407910172594482302577509526707468971772871416655713729628082401060836375864978614996291643009241702654229881340011397128187154560653635086871475262860747923911853578362845926634082579722556071609363609782005132776429796726934210383577963435477962695029360889927341166383476511834078172783816667422974375891642727377145826260828786332742008476468901234487534944657243299304656654195747354816634363638345130847825073840988428988900542168733722895720411765879223386474450612026148732056656761419034593300933590002157610900769375178033801633017103424040839583696900775101874039575562432701231995158373198670741161013631087543867968556064126852900006817152432019565603258798491403693690715512250957707890139686812365581984598154481281707242379062758653552514417449735484328943822382924635846663396562911159375932070695911993981993586905300872385035298090380110802141214535603003064608154709984121994147911889705089293990811624541125153122044427950327384305665402604736553703313222193275596840629370570939354361559947742425945668732562461347067648663749894839834308552125895298884663695163973703953508566514202553116360278293088974606570798113049871325081602123401043907403984461314741833794210264483299616462497582292952473651666619957097209559073034991816049613508923764723864062680789021027111165625707020247042521765261271991250998332683058168449739522706103630787998771953435545928303911129265289051377902228572179499331647438084032680096824711926249032509099644045826750510132215614676271215119158153010017980856604981904991209070823230551299451916234320108017212683586394373136779585583591436985798256950070196578430737070206128627645854118865086370049040791447671821576700135821625915046110780779468672815323573225400636766817505739938780721011765714395861467458158404326495290518810165781830116579287233553538778101530651465057619620962748340394903378453302176761628110125474710009296072245131578496595549762294222656603517656254453809082889897571765845211028152495635921997140773738806439570993363049497318039270445229468488646378647617065553463713999635527721485952948647082511429892372748498634629362717892407465998295293519957707619803617543705099057387659134497697232777416827813692514630797441049725305124648709357293019589934562549878955929092165538841929817351618458077820778039270409134993931438015085256073214590737576089285935077038050039869115406885356235506426150384624096609551697250930384003254240025264022394648238794030951772451170652800295181085265951874230270405601572027665979354060148921576586043449047977472833247650322962958545879934810540653334112978848299549874781613734008902235051549856872423872792193652074041721472416091984785838405619377763083880117044435691538822232865428078803124202090526919816472532878767462444391309224631170666545919465402658474054696023916346929701222983735353627921004703917283046314358699385125704451113269849651599444944598939440130230783545125083436890155005045156668233430444505763869899020729174612703704706315483958271342005450773008011880014008068995941321850737348902778246695211812008068497471766472324915734031645592293185212996990246395761237710173549532042875715757497525925467794832905854500209532349101933422014305461535755768179246650273095260173173683777176947415997680216097281822251379966583387647949291174169583137291988905631133064941398541622183515750086893083564028688696801299545969161633126011193398890004285059227299813221665788649790183448936935495062831040476942422461485254926393253418945390013406584718042963767919493571681899809227285853121640286007452101892560437687020321494537252584337776904957027182048591380390220348532179316346310617924956578615270963056574703569534351891360839481728344178607398882593245401115510652716860625200274017874840959801738630176945988093559207006247407980660557453380768041387668761160363609601722424410404501427517434219628643327977547464661489713596786036712293802434284563698186862441901174700196058379987809780748234528638317354821395143970707790524311764072360300465465798159763393703035991463991421075095938304583687481763559887927039080759404642377183652880299745485006730566878705752656885273603046336279363373268763762523758657222428059522961241752143515113405705194660253283112260440889737870302170483802900001240015377080855297274391417549475478069799365879467290481855682712770951404519800029069352023571155950190047425523724751207358253638115039115762191347424762704773962319040882084065647812829353950681270999844652654004736787116539245190977453411510466157040089835161207958045357403742434116635547126558130432668469537592622878805254108269802670290571204568401111868432880690103796658332844295633744091726705116427926256130393490118473895439977645032199958419426084225466129622242336278754740522036823586398488488086012811086154188142575451624031081985650387700985776196539330972130807291417263993732359758609713943451028120708712663156830291920506046991174246259070852508467555203913728613570284070034846585644184331944661202893471198415465490363671805534574822155829752928277998676993900621348516570687056856198499745250144643411815263287745860931675286386415029070001823897531354382986211370734788476451809252802009611952826087311686499486815736900803866302920684626221501358269298314001029969418699066238573153539900465991954594849702424873663387638186566082999899378257289333297916676421676698868629754553467289695281605245909161017269187887525673490731172389420842854647154791883793720355943226284026632895481084977021121094826240374840253811157536162912850014283802955889003804114429923922000186506864155400657860467526502157288568186115765955690575713136139980998773690932883480529234800559760238961247495239350175102682527137129407407731403767127523650045235992690006199085328055651006880201172634092870217262433370437638772349086485940651656967792665828457409331659852206980456278711928069198529916351596363846691671701735499296340090285302474491938910714607986794362097610778015263675658208426238826425914054517824152364265518824357975216057112490860955853289340400939645330997385053025934893236810681009505244225364953816694504273135501747852008206348969902636438279864512520498899991133747212176998589626165320603156648829888527612046744591869474551296347676127584754648744332251260538170993034807926509020381857166383113600438429493759232782565987407580475010697437047012023269229107950273835694696176999432595580834499192443938694971346152468492778453430434851175718306819371577691903940545707577161094765486527046747233711807692983121369154333325782501293656027685913663157731765475223828652756113024264198207698350190577235226392809776669574106876928186114675010847178632668291001383720246950452427714878537231690648817492611696565483976760837289514147638599676213832736686780284325167147461173506147798976521354653443104566188269641518047925380742382209377438658577342917104123165920940227681206102064885190487135320858121688248535513618997646685680702354717738969160585682825440725890672070358082440604407583816834262661813484409500784017849253547499806630555786778069748179151163737131962602951808112673389240895988253680679618915732322683264090580363431761598349994675698705653254560011216813827247591833839648031259117757999146322737069825572136243105442510582902992587484644082601945387421130956430754779753861552013371990649309994859212617401301089009286391185406519472244419595162465988167536907662014262847337006896637456069829281004222192768594291502819999933169489605362536215075451802730854799524376878771832680916232656678530921647841843409092141360131062366555062427357394947763266955502904294257186100982294536030709828157210218725128646646324796063849741356191659981803763432254852017961498291274133165429813634944451031041193556875849595579392133072780804691907287098297724623566445605418786502201297307119819850553141893886250902056463000805835809652173100027409665598010287893715460937364809506017415201549884774295754156274498348080159181776809515115531196120370710259764308110182047158507888311016464788100678690146345965421765361332633845907535622769244884381231065105618792332581364769327170421694550705673104670457162764784011587241407465798358862780063889709267221636227160569575992220671827681299100603652291127989176190548232423961689692415801459217779839293926534557735375079568639822838087790074866946280367108643665137981264036737572578352919051828275827836969157093067360644672032290132470029549130550984468239678024521418209685649954200810443563406663934138028010000591304631354279230784131215255552287552138780817225922199594111811573162154755511310554735146990816924941553638093838232246692532853830561037720029639065805315498033623586203302748225033935581308842866214580600319023464883712287455894671019696356858712143835435275276797167921587151835998687384475338077865069974224392707440066496461129192438332725546119182240398494224438666224761350200807525622704787605806605908237061982264996700901556990477918207599832443697004388375570016531337537205629038770135575838464408141673121888735243302468038738020526082183740426975162356804772803371851153862840730372973883076905232655370326029719800791084751448090563498063541163683320627183070653057516307857207979575452104591462997881705039665971925971525082450641293770064609163228023199900504495618839357118054500192635690278178602100843223750632230058271419716449476896787789419956536173917164395318248115048760027213362417424993985601561346038111585777789470521815118415978266460851386592714935589403493703680764536917299998828319022676805644473573355689856656603917881156380687057691091605296634879372342413569084903206295554574479020797582438011078064610029458866260813818628972645650800723065598111676770788356667268270120407150684159660614135946113730949916185724307134424756853724469610729329429991035230482141660195067158729620857942351598717492779869373820012666439342961063838674362153193673579554816381977819335162009859522061563733638832914877405847239817986710137760273686999998016337479667815461129705520857143502161944889278797414720443709010252716814440843824913036807889218531798468222688800700507326343072327451502340828710102099776321936394859207902505581649477217207163826458898780071175942756096033522811429202487747569121483692795597549778504730475842407138392938479467214347417759836100692395568880415873795220659647122886495865131037707361702366678679081633375832878334692853859863102924879760795432727913403671470845740437655824633674280818309864544219884414975853900413605860194324415346815721500712117308652201354584256700372584352279469748570458068353612210230977725334435345517082422404137935435774924788315903463984773364023858224642841535439034217388396178087278318579686015056870005614771295131205623355686126549954358394813665485951503325736413419963714547825646555983177472888138996743016159897412601994672631974769937320529347473797099945196007728743695108400270780760094660929925064519931604213842299285286097234222893087938159527988113691159939301751909219476980911716068454712677946372894171290989194078354559738894233316018264545439886352036347588228750049709990887640890896543315975632733088086608312042335492474459280202206979173115494262346074664935608734829662713867543556946301553179341504257781676594202979189293725828919072491573958155358561007818676972716356496328690526138878127649800617200843370530073065794152050427345765368431519607325180575887149644995694232285115841355673463735181227433176446659291480689721801768190951977900567153408344443138183791770446866388459419196166802632257658178658193067272910633803614382023529163369740585478553776363453718339236243749304860661925840795445385599679402047092668667191120024718240828986811141803809885749221270374915244821161297267876480722980336953156076164121077782791938947364499144796127075977272507875267082232469325298062404225659761606996164925028070822196322000284437930657241991010735173359333418393655569037930411781691210368655777375700502965789611106785712767928545925802602337921869400182205901000324181335921447642237466017653744492260270034132801152268458706190558733007185589709811892649196578785359361207131103019034829842113557610930355555224518561238004646945444418325922649682190039740840659236574148825134450624051102819425151681506367440675274362451847036811786786125046743285849301104878148935424027441513152429598213791136723468432349839502907558303403641074486106972574192396238284333145903676323903324985406935883148619063795786639389568948991492630705662592963528692190407351530209743483048165720320535975888677290020996138590730583887285244280702511710001002299628188620290812635631082350055572287435701077709406237592829134487884088844716003843667620601340196040613962362296217565929762725862246803864227684016526071091702853488571903677575247669901602299304990957531743945790076971924786727586821420299650554996508394614089411376893099407959339879372971706194393374854169908059965183385324990337038898276075831813296898925434119375196602417751024592881854607204561221794722522312991321028895826203322007900008579577597065979363498153935929850237184732424999373603089031407573636180337177654364109154995062428480664805179922778435785064169180948817206615443593304002896140699008857078093800407295097657381049260517015178694106204124073745429145208557244614908982117380373801637398425808449646533200123341002501308725747234138006214511862629578680831658189763290143768302336359488271773896401736363810158261053261934094443521661609682253515096469854252902334793512470736023802290001779561570811033665716119290606219997654427571584574649169003626466832088831822408405026451656273517624459545233188101953869134140129131800425708522502289049976626165754433262302282530495842569580775668085585585517007604969594484160189832726405291632304096541849898016669694536885496586143816727620392861076422589473977880284852971112650561002890197337860543120337482001004475525073094832625225986798520319852842283351127169607419528255404227594782190616542275113981561921041658437939355485808155779939159594820751880042917297207815684219256082846137233849001890308094027180218147911832149772392249168785421421066683792772780339634172395603777143126561866110122992820307860994553940899448894767112762454629538337502955205218335418744139018001963885688124549142387266076975609690074476445653310647727191501153034681278616711456287301970246303615126086889319316441084860848135314162603060376487673759483824825479176570753219114273124561641506087885687150016516916580881664597877617488066124391383306107799512873231304355957744983627736350579625281057534589606788005153345888285954989157705473160562808558761201941057873207199414538779668780613336622600926584267186062627595247932526417894184015597011584180017516289809955412122612106385916838933331001624374523134154490266594344271650997149343588843811882200301344777059562844952309302681420013731341086268461906192834487037319913543538328847708166298282816155968315502405971526666575999714433017946517110359752891003333762570945131021246257258111241190649684159141490643170386761763063724270917918707914318395931770504385431525657228329705661486541599259196470489127575618857299939461820596239316570014780200828261531270592773205759115945112477870492579286597024856762351125896050942843312512295933638340514721493737491557100055128634210868114380138087885278160986964854505218998270177959636798888682852341666486527880580483634189547628913523557645436367102092320138164794813896918344250607776981050107828273936131027325399528196494862550576423265958055914868214393630102614881666004655632514720832689593652687610562228436967234115117061890032678264166105126937526345106524214187494886576565419769626840260692399205252770207568672471637289288260955514973830389237039430064076535844272697075789698037010465802262926758923852090161530476395343083587779017591490778233171614323318467420086870593346255348063740601331043292653449149904796480785554105152409550710195581141030004688149187463618521845359880709499706518857620382691521170469646823758322733668681339786349820264329363685712536164312834182889967873990959053534805106811436106956314228069744608119637340985361376576170155329969301820994301980141424506464458843376334956261936933452568907425115208939929004129468790063666145019410634774289336046751230615312970539754355782979324271444140830320287317365604664422419668455067220661791159068689869908572059164234881854567077788605581700392663052065541018972910731911512551241985444577719662933324092479858248052235997969123819458922614491223143288121888498793859779336477355327099316384667951952689201181010581399418238497005557065317795234073886601001451297716139515290606944884445461806296821909192356046605714124147654667075271718979543162642656910421862938467081124037964348608763092995096023177074057643516477222038268775043352455430343963430348271830844145189807186627407384454426698912674629441144355540896117573504435304327507581748562817667370341925233093779536121078995957269351810121323448238680057760701830595306843379366236508693973142761603689110094789505657951836139788820949992303867050179066156400529346783808105184590608881052600497592116571582195187510424208541286038032136986772187470321924287901012150815002616132552576637196529552368134359423225684263009132882550304035478059560067791780003019642775249495248369516063056059243067263565331083135310403090589090563434261714063042665451731817075987308113168459852967386355670279523437593321584329069783322208846680455106102094205872140754601412634432939652733723825495419983938356072127558607686336199105719176868039254934580726872826899956343911409597619617229338100699087313166756189838551431535401708655359199939719700764885973778973153515489078187581007201860130756960455403793641517409876104056171342044878535449819962493693821997264559895747024109332747315968676865337692378343846315489310335050457254130021904585630652040600823109673772395273438884366229420278776326802443227781553787855849981303935069160697923957133311688201137928259597427708401523200996684497295851899604470337520722982402744813648331830031184197515734784685107322266003145922553317776720940185047977839981312391102529928803288563764730274315520661723258165428012602715084873150319953113589296172804591691907387984867005545178728986496506582915449019439124016008782964822931202230675639560400310699216864885798501392955585932335603207933868718077831361564251766258967402716401170239098107926021998418350614447567525573427466598362365038505565320513306181941153837160817809666472836984459796153537173305237457682150919485582215957401892510637602240226879010806993123556031127541214170719990332002960425158587490073650885563199816034581624381402407636560861390945694708315210670650301087629505193465670516099977101417475108860429584158101938976196408979983181409967435038031617055485208018325003252042920969430256179314441959137541637134157520694746307196639020102170460404901828201854325321919505583603221292922494375228139682639310834548570221885544245363239325558822913442859481591434310509715365590656543887650267373165572492073387250741567579372049120835708734694818252270927058503030018366364833282140258039776617876671570567427833645895451006428144484548747123367747707402976721589206673370371148603332432801420088309511102788970365632543852841335807281827813700935554450397911547630425865814685118040058660192742190191523045763351270287380824265776708040686389969916007184885148783474260410838680127647818546370981571987037273850392646693962422419210582915994259776960377002908150765617742966317668861428284013052260701038254225053554517740321709687797342368136197517192086307176582199774986387225224985913445871686429290802728458362592906792613185453356665420287732234868011629914855599397644532105308223579972411448361539590920607977226099646833407803916330358704786281043659786024027052657674313572038444710897046190063013094894070604050714984250136075720081513435540723115759681992712184886316926625192210142077032644763800226421523244488654687529616350353390780271100434737646938737709350783669548146594661992467585075426142488401723757822949510097779007397034245651201681655483432927120227445611549652668884403834521017680906879684785046767066254247384767057879289034324427804307569381700079629542832657942411556644877217236956847921509356228124718283740169469519578829769651925713709387875031642587318876351863555185228690340834223573306410593520832925167550277256699445306549868971513030538284617150369772173641887590722644358766775808577867086635130080923585758949804826422631002589614939259828849052845971931984412634103188714033073268897396105413301811529656237076614325414707105651501104167349835201684308019196162328506811675006608844755616757449310851372217035544159153686589320774523723741264142346317466997059598073550750167672166064845004163635369991296291127582317359791318179862189863762365984958604268911091887070845943042232914648912673443124199721679066939944432530228080696470082758410068219532889704537587508118517259348368825268566046068941767396674291526445747082335307141210884971412854074501911332155479753728311127641893163719431015095516497594888313669726465816277663267926511376271818927868175578949312881959862612590708945334587499737305505794022074171838629059865424239791319819745258856328732831871549519888728567354966567419730570311070464145473717852901654085473361177133559924744829399393941902397879297081516093230249099836090938351655146773238634120603714667260420964936034584109424373180892430767553188328016641987626777238052148613919906392353233929626423914061595223046982055452657859192067615556983594287323885515369811046505389954045254822877057567249986731595805306681650706351484168525802648227281606979556572261541567294296193456006085994369001153614067188506835043697515550100943617753855985277364598790703873411952440774500283625937803970714445533174362461187752497874466571431688224585720548618061453997325061332312676737980395189274082582414187352210506050984886101525777057597986037011732547620449178780896644347653230895270628657234349363025886057273621620183352136873214781473047592499258905840090618766522708172654644793174678305231493202770306462671880104765210153247734797188172411998990863351564678167403532074915926678628722269585164011971668576075803072182995018009826588670093376288255894203009818833610200289622228395053256735627329208126354748507866284034650908024082733203831490295624832216830216368579667967372234866354042081485436895960528110303717132960691257528022071774167051958408481147300458594470475119501600565990532108502908369748418791204943600439846343388503701231652864461630107953562062548598033697512246946872884886872607540698431978582462950930411591430373463149181438163600272368217217754009706613281766905710883731624090001014187475201332135832729139305422763556897479990819210052439914417129791153458856083708306726560125335951321216160377945078171154857954783932726657850573328683738557595226789723142228893118015985793747116261251143665945550603431500854537357400634153009896480995704004451178553735789223728535371222871293508294352295603493628223839394386829789075845148189819851048284253870817250435378012013221058911115855638599545297507391026401099738903199704184812271134555491446118882434445049289462215023668795492239889242483082143212892986295932384916320871278129445966880993972408904483865817787513407976673181326337894921966680976491812025470195639066563383086684918560699925705879963023995174717495555501586361172331605973747960365776777737019912321404874191056364392373924644853102477238781875587388583976038451261829712736558733416236443538309681599523837921512122544628497305237931772172140524692880443125990626787566495850473974497933159925149171433679778226297415889240383205077118591871432453273725418580080914248116212938448742047243472371205283861614664499171089586578994873054453759496188757563810877127766097817703494128097087233770015777100427904537021115356716195328524767955376776620039593185160036200416228498200778687727180032018315198253685876769625241912251735487486896441048743345588836607875318210373799779233200981393141413267710916750108533057677157605629700859935466338276920366556019884551017496955558099018269516346300097473354700316658224856417828601484535767987056973960197522611267183541636098806796766594267187253437812553784686116270365392969117951882626988560631201785881023522251425958991354587602574032031847722952647086569038954739273229364204955389111270370565215720603758649726291496768441752254498224150824310873043802119869454790511398711695355242873474503611616171941443894808102882931712678796908538523124623528624685099331726330629309930026669773307168167390743643549600786430913869459195435974454576352048724796491398870763954926977285315317570457238949631902953294272544590341969296570565405679838526127063110877734637949997244884414257490622428870222460290916233341902691837465626084118402152383054100196533247068427136082461558958669609648758882445159875282074428834194902322110553169464495020587089110824863956366071743823800491179286456471700159317084424187547270151490032076841097783564963760310269106609092351829945854515739725141932346320569238065052749417412682733502414678333178716966748532443295352607591900519475139170492062004204964393624642916814769872800382779963319560007503879630406528922735127181052961691868870104686591525631322339138402825930147175175439133937222068175038486850359808882419856482908517735453294398054235633794666142628530430781930633871355143906747022943227371927440310010681623237474248594846389204126036401337517613379784936871724102968850057806930681818691264410723080464249232077734643962521115489508402573933887234202269307278148694183977594682465688690300186584481686565460456490119678229177567608800317738652742316093074420553616004171700076685650036684450011566046172538839160285327654476274052242318514979973785793435206061304200655988783156939292711782103357733831768588965526765371104161300461843934446602589605391105237249262867700508693590765378565902370095933984095214541647933709917435666232244757660334327836319772626873737510294951547521675425168413640709891893162145437904580951571622254967731816854896809305176837591170433111599301802512749173856661644144510168715749104503125269277895624799955350131689783839249326637457224685508928923074263763997103012437020928521169239968744666695800680065278253282191976040679774028929582551862777751863557044869563114156422960951729061948308441100922673601935249688878260693128758143333458356013916225624286526158651157733669086556779346680666760760207199123669566252592715976924791441970600868181679301146911433699732192883843933756934503408590330098825343875585217988237942887169739692879602381551018647442804264774449179047321819250661064488283236803038131969699966266095619457147336021940688156621771310979455005778444024238006019649500676418373954580478473400420518069673240489451491788016554900366284570096551256506671027518496817262426572354138979778612720519424896841454832048645432021200204332856327295042908551781858564330589501753211472069719518524163749735191325101143694994493130268712091969708878641019617770004998630038425514391027683479108589792536102322239100469980174087840286052142205094460479011603405770831311650809980467249065622517290751805544446992848257334044088114757510405603109987978250599968389440951039974306769521309604807899252108738883842224448548128657915609798316040709462111119457685489051279853791591996629314332551980457031128210939586676790273389620782597303110844542119206612913420934448937432880492039719586412185122308130946056307304169161993179014924994224008373945281289014886883822290023275629227073299058885737922436756596749974408230061450604583398273196153747251924766701731826052712267151650137214967125824144647637644137706242639028193601124089592354028493346021807306940179443708356455164348495262771526738291356237953171731801400083526717868105945847960611706125271069995123250059656880694512268229917144931035776986105274646351839036167987284470814029756495761625063021829105001238043643880115497959806689350112275187457640563536181204120168975135815574566704486169601285190860779792808633023901076239666984694968271281398633555077629951603249418303246716421926220113539493675959106838017606211878461853395383641044315975663690761307294544506648707558014503791363077054723507068682065994286689009853330582411704340522286640629255864169668359678115718177171174434380303727656732391630342299987072957510698986594413317668567719120553313470240017507212046741787775900964249597794945367734688874212729252518248535766209215444285360679713594841018266699006977379266061516589426273315963705391085124307402592378123192403581492295943738996918654049965711668735936642526182411745228589208272845008911628842263155448417010240441504201457600922338924748510374924478866974112798043543026134995366199576811953230248478495375635317181316608004677354048534379611962557376842053454169983604664685659264869935612875276376670779278796993042148888261200247709887734055844015493131591744086915747048996152133459769035094286308188598723962324178016822444024444873114985997949528614547718950903853860048958899073528124219530410582897317397146195014838067933075255283893848332169258597280625779716268631714919813284461426587084454605284654548510444330329751246627922327782611684576161098636423797355606083071714160533702556248084654838629116642697868001757804950234092848487740525029970145709791621609026960856385319260980902246128347917333393225956340409069565897932867319267671767308944624606030900949978144464219351783860846417185045778757169956195568237904401498054100058173118334946820516446079801778847149677940659382283848676211295469900282274703304706471450196307793056526308421953946912300530441462056278330685729535643433280098913252814627003230185829784946163868060504296866981293140047710413474617486983071590949854143998353951392985659016544829849438020723097809516998341136366575549834462933320708248136490393217590370293380566043933222854992308880992540061105697365795791924871663012639007841561966982204112193805988569514158545809813526370505505585011905830545104938005503903474607166543325350729803033133083411457038564020044668834848685104234325361701235901996083830046112534195018920628924979817354733806096526369651607013591674513334621148301365653763936792435851155587185717065619567628731958945519332060473114524644753608407671027434484632320426876173250629640164818641369601632368034786129890159339026168797130531471681894537642048092506171381655305032527851159107864113031811726035704415280719510322089801400611155901078865517836240688110476499389269903045641443649160769701880670518048152708546951132282344916723579474582378643779275333721843039823116041941918216186774756192534918029851547783845425234725310724662192064509314493810923666978251818671943349916462700933945603372303386338529513951828048445334057927920192476390451250187310466952110316658555022882047497466660415970272697567467093442634748793052238020154397672756150055499611811087204093164821510233240757616574537573590204264102381309823376829188117505950057721120608033509020384855942258085575029336648544866127374556445622102435513826481288251240721763443206036517241057036449400186660882608468129539100565456131277817889670042931722315366867513008287153926627609340403512670784350603816649647745987998204800600009879467699367008858893294854677352394491277565478881241765301656657632387796968624353938926291827812563021936395749800266823743614492032455338383508166692502368843168209308887780946549916307838425075623809775643038274941695460160398022152933001782174271234987661186746278170179021293255956752415645875265302301865007858925643019735005186814515168351660668546183521194953981202039257818246788506050109866307643468150292580898195018523982374481454184786305635537009082616205707775700306434668020358910207459458842385547104276302991982250207418646645192180266962464876978394987337990534882727568630049957603027968705517372145786639997296456249664620081335588180989866111230609771066505365968307433370806413438392201765782994753459812354683673310377099486307755538263800990724837566737451636313781338248442856965876033166858195459508598627539817052520199415702818036379147208087158453540404929945494124514344323554598942617700421897978776661530269528272642364596021579116703710466796994774021357475516940091616964098144137290997079601020233423756607120476068864587389553521820969083484314879738114600520083528842701565820743812851324226646851066583487193876006336449867649887828695184265612029105946476382711214010847369476123088605151644634123078992211855074276723519370486182356861905531811501594302346946858618931377412897609712015651114091482969312146319541977890187136869195288476439637213937174725320870761454936739237823833383972704794619728151131929779639461140381255203891666095890364974137572870495875527803928781178344865887367630132043985120800511603908662725569494299226915306323264245478701429911353356918249574229339538785268730637608204455770631732637290668776804318907813529426266618344523054058037515391836680905533688362597441467767837844364318252264616209926180005421037556274340263436816164676642036289260780507194339555613013880275972987998708358738197000514329828951872155572320400986967368957312940542656083387482455254351646137396272934159244412498175888811483696110814130351676755466770252354698288686075934482104784273899792587745388297391231764880038231401470992403696206860341784982346364818011679824135340143859644853066695331632741497948026730193982254369490766113698956743787261848722307266087914536640685006531585847364904631936462261895506602671476445731380031282919351290306804485097816209607359355017362416303999786871759852659637537180648241570001098718392136380033756314160928167210102990492300216839296942427130715757236948676073268995476458499809276749813612257257689979682271005312819247343050261662899585732635142858056806303295284281446533203665063462086231219964063801785242677246829410199839485211716201237042963238249366407058359813463664918405837385832703168042080038197570407102356862656290306864684134924973703869231718932194790123999818314650449138597175634314525391177989606094501191584708112957687600662906577340432934336725629591084700095356051030697568138710986129433780803660265660862045241517846087133404823440565748680695251696418685503520647261659516941619183027058781054095502143745315787440117202771803336745382510137277688058075908598694298564347985368292061037703278595864564289943223402799348531325091161498475978665369354479054370964497771737965983034426644627099673533889318022336945398522580066627596341433297362394320542554519617280171590533165772763339453270113202611258902431239472968145899547540117545747581587426129936554443201706091121490173409734162733623958000598440625263023699303524925513495304778898453725191498224534932408356667143316014272050612519135721828123253456443286249132936408257053834645703259780694023915106668034233100307574403763266850305101810228257733000224627614219676207668607587558810437932530334009639563617270650114632994850203828670342687099609446722805416118992296245116245350289663666405227881989094662654582099754828513040201879642796062147982667109487269487587843220227584432413072754498888463694961099087906415248993359235052934020733879630452800693851427636313128843177804649967765056094146236580573528121022367593215201984447826805610811402104767237007808696736281589962235944147942778482382829090047964798557207219991718147536767714806787805492248460094811042498729121839104568060393878722753998999385779025520047707072602092215767435144824374480763663734229936718131194414827951721337946433232674488488537698891257486996714002769263292044817377691011029581269747076836703134479202122047716214970689270173775955312075282646435652655123141793069803834618145787132330218756963404976639994799920003249673793787991647715009467602329370661169827797492556235049221474227760346504119885822431881160493466906224760691999064457021666063251739331764624590666465109345264032389847196117636938511600793259873604888034008837529450398693592621171404129763285740471729112361960089076592246113359389440556863583511092688520027975777721650630696300434805031883796091207368084465952254076485206342770651816242642145175692227618536397636737637987851038404019158437353309592108519281934964798570422669160683180098628656724845950829516071100068563896260706231316551284767517327033182583863653499840908601840844940672092259838641062585106258746664466113425947972783364057950443867411574518483987243463294209464818010387893310453959678983964295202210500487596865243672600172487723137817872973605185636156564126748240649231722012482205474102188941601613630624844194670964523850189897490060373123163941198876702087925018699958815952682873479039960387700424092087204551256216666524867406299480528333731355515484098989422345174124899683557425167034579312739119714920508542960604858822254948661395950710631830853866654665984376148346176184172464189570730177105127301117811344793129535312646159025048898639250104284776989505680252838331568221865741751936631111330856774295452505222324895291587689859858634284412980212416128162227264575224174972781963394067556339666964492680597657814732239335735019242702206666656824073298577546821305206672189224085080615660218089037442389636383051865258474925374666872289539657272730452324113259291895036748348224569100641521440355628858662867437363548172829296812893477330249187195761174959274915758756166472007621530150417671457561212044135971400516301798344012337434301436991896876493894856333950515697115225178323193310242516130714989369430648129526004949655176729770927071200722972620067597542438565356711801876358455985462278185663630053014936730581572266441619125795386189451566280999770107369528860414486883335982496019727337192229232366373947657032851005250949165542935518559532745234556134907479230365125586280087694921755469111454828711859652448235421154163782955501887008538821080826365522636835965908238608413644155163214084487873050077167090035076601434853985616259961653093441313725240066285032454695763887110923869532445905749701167186072364460265964392615665466578376185553436102032818712918406839658904277290020443879161854793401093252964264817535791743850549405416800138665231224045923488318445410598067087229585916976586409278990963043714828383670487869232602418215430089765677360630710801997406537123157959064232967688165041526427764720808609208130981810705148992868317391477709535647582034026794423968039064934984483149015021925024959947264328720716054105392622804461274533182410659863687763657775377622610324494332740190316907769840900368130722031980712506261734530878120364835502807468851036165949232869745560626081313211535298600298636160020076331885626416210916794833503158653653100173091712518889334957755126744708011308655584342436513300461595334940251021729599201225299410492724312575251001771565787907998517171571982613024972710026420349376499024447446490310218807097828465946132422418279951581274914192784059853346514552253011402670655748460501948005258778305496151124327183717996533731896727841249387533125814367378000259906991872058157292659272438819486984581303633989590618963097333015633284629919707658857207665691216164317300940082458964588814055308645155703921140400701754012615120760145717791409910665802150390322507997338303399406919640281501254564963821330613191065927899034175160954811361357025127801288341974321294021691617462142298961328115062284440906143298450881590061207041812938504742082435431008708848763498993873097063659388371367923999721916819479104605475823059614065988071777712383290021274925422390522552246383669050146238475607060610592995707476298777815459897372698108452814376540480408995950722051729064685003482306191204975295891145778978299561116402180593512642404156982161119662036516233372134517000127407590508658354440697158409640774669770347050574026868042861639513298892929323473612594973131214808650479846264807949326941011604154737932195994328035191370455946711997600037302008104058753272985441139310760787640084248110807358757421083286337962441719822477100627509135246833596332245992916636094868435621683877482180835992925960495977086240865233034674752717940250690243056137026899232822462979054243140914832615598352317559631011477867503256188878132351542232198417723894223559637372423835977442547264099384635631719956053635020515063670961254230794202396175545490543252902001442958916884310734258593948605741507311063018721063921452762012028523240902282288076979088943467579184406645220931676134225940978299007537848145309749827649190625903982745579787118662316346701414637029517377438336727051839130231350480127027558885075190471653957925090824470866074227084081219243669378341485569709693425847090941922463614624393920811692261420769198268812634246153005985500324078996498325509032418590422018198511284751720332021785153849269263345866883424685541654159691680168922247821040291336654444172633830091160068762006534138001386530206985042022584255418206797108230363606011782946983506983935727587365439000579446272477078967438528136761300228063613727254206589751854900319616866902710851341212262158403365726132024855622832557831287072019973482561662667926685351068078968614464529100419398138149358681823933842595488325382748570910075635240678626189524595868619844275183004125263400929183164458247120126652046285047407069854423106236655499218380559803774111790475063869051016041653652932641366658991735018401102330137433425832448531403561572447821854412416168953597095951354620378546809341975554578833653575032185026443008644138909804562285699313415440415622307337288024448016713652679134496710160876223713610369352384225500433475415052847744704675037028970893952838962619444526663902216681376367928277350920601779036320463035968966198263325814991701959124918551367512203023419576942448530498665281671331952579055662156576080424992260402555300128678383603858935131115774632172628893508134333203423731862817143518758367681302113611588210298054630667483114219011036564554465111788108939710365837680204770961838664934058395532221624022181615145171819201562086727806111953129308467289453636212318982762068025936151913252142988119030027841700880185610905970096543472740121718963189317399303748405722094720085972499862491580419623314236194252349781712485719835896071475507058783961756717969671422549422495035470518836155825679481335974008853209915156085707836307673837293585639095217515246182726081725922056197672115947917328060759469023059514243450173555811767306088548537711586113484343736124213393667406773812299068600835183633032391822535462645217524449781477347420321245307392071801637738297189045828659972766837395036863239123257440119924608718487465200910410169683559019514525749936572794741689308495913198132514384331851025072734313613782634219465163986727508153029432366312498152247772724098308237049088434237471084103375375399242980229583285091049874922657976178728588563839556276215996459754575803882164611018876168777046294052929120294808501987519291781555766028373285090011222170193134304332260998117734901121345862342160552128893171740451648734269395090538778413040651219259728148360021326360964032022686298852567528669771957020330255983134979702846646040696136881572344904731017884633953914943622098228863482918554588244518287811283285739383509682669576170229953574341461960898136156804944861174652605006197335823101609018007313466739081809991730728071041011913618770558599588932564256459461815348493272893896901159214326826996942505955792548468445032754293138935426510654519955399431543755542021022924065070620541034623661019422031272975153247162120018229238429643564180177919166539398923916731237413751297162316961259014271454456862479137360931994712943343816460756357400911861114371062867370509933160887204360780770854259311226752578370361855461322994841849470998156594121984128570262256564499949475278215326016450605062909096265757527447946770477541457644137520731488971118822331992233807514516009816767294021846703608409822833632695336393131524440340200935367403600706018871820955139133897455832744186422584957713369426048408145342529606093236061678212558313567647678490225513481094180034045809275591073926666652599921090693116461592772362701562004972752767413791107921673265419702176205712382951513649019787463787330680299734120023004099107246290013775054258227299169649357284651054098403311550534260584209058169103081512958896749473410008707276742643034372512823356543177791882418847150201203260555580791902386812770321079018659861891390319337003193138232017194303335040243730918393021657001591629131603159557492210005684699301291298955747899545040121479955341371467121692531865176342615169596614912100468244314955956631185865923567984751316570561366000981884601974300476839313150752969578923209498300469765082948831180430203160007817442672252997299262390652673128385959872552549625649257864868462075883779928730038856033384704961529159621678150837007237508368411422818109034082404805955385557711849757878596036978103604866064388709885793654834834984055947048294710106430482247102983893834605756577063451928280607560306811922590547624721136383807535350549543150578991790658945550807107779360170148512396174295223718612112759513508020384184399126165197708952802587460401363836244439432019795400701973005742061088692998105166573220378497436356751718980862211373108263556854892415382643248108665203528117626586898730260360770046495059259684999861276841254061965899007463306038480687153684160390013611584287019472007676234139808407036482458834991776925555485362417071723899695058189947548309302532779113908565323897183332579474726943039449206914277250044582152892634348244836860958229031769597350138185651732377887051846489602690789130224345724179489108072016146513016598326300225028593643832387505356528178435482210690694229012341492900288863797261551429148097995647821276667546777355146482658738799291143136375172872550575483493848230934557567344216397114230399943602056774271227325702056162181510156887475252318693391598041316859758107785562346566089306119809671747390651484983781524534563376720732671597289043983694818469113429494562124753183474398943833687975228788943810979863347617675963071628883320149913508332327138215348501051441270371776523320505983462169543812291803887786324062151903541977116339815712390523517602996808727522604333009941240188443776330312289939124527749903636188223426642928467344755157056181132052936772842557373379797716694409700921323269677026151776058803240493862516814543877713134948249474738293225599466045651393187362812414672989671026081486593045804447877453866006295605581671293714187601295277569072042938326851598854613922980661741638482880499625946655851474798166517628076829947230952144188243514313809157639962766537114042280657679873695563970391594317054276673269032497753478357941106349605420245335546731992283958489887721551354029752814762076834826386406533503666406433184036876278264652259839328464697436820346105196969322146360206528063245302591425573206290357867587472856478338735080296562310821325867075649262800221145092309295808541155468443481935478789542750478851368023723508983393939817771563168593362521368762313169082336191771319373776089590296884388661427470574517431152787921851613721138321079193723257683676832271104915406085632581489573509325704612566424287709978508058034802818737741248349785223314228713616294407186769726778740189622281193268702587061775722765568062233737624510575630645340696914471907852044285623831679821762702153296154529455642770033981218049751216068151606498763494271984177745179670136643056435869653990292635083237652252603285476278833542668914376187595521108373793762100564199607468428238514718537256233305926277692727729342162339473117529945875152670024744406347902413750146126647911547439589970581934458308926097783446367546285495604142984755686992312651336056289979537721742433943341390805994345282399079231530540422028853497957841508605240120692251177215759756620552976607957349149113253080824623356877027773758916558069577020200510566508288942058725747250453726341833201842392650068819900710206307677035341376641357730566494481661435665840259034340587128719711638479934643017124456112813181619122329525911841875379957295593572097220890974792454440030826478803783112793845804095251280114768692663438352459243872347674492905304280787383410746630126127749160334756664965546083150669076304089540614731050148601282456647325605737917180673260014889753568693902329723336441643896459366573448378440018860696041648490982188868915525482387367691988440657686750655684529850856733407336964513306169003064636960361334762231124810868617619441757446426651275629888428183926672824012590037336790646273657708204057789319950399588035791059220269007408915360520419733705256848748554754902370835060950685604892099403700588657850444723246076143472874276904774161385359749211534951929517164648789804568848654148366815616562519581603132881247369376755545536921499133777625119350034232905455443536081478497748972232367567728148345112265004441413236282365817055789771950723565216506570763606047801891207473302658106016771074110268857670799006412229024613418097685648145503000974997658916523595786484077700178163231801477176436247553288680239469283253950341034734791446051555501481821286169092767442322219010419857578655963671037783725131627431098057439097971364074305510242603143058278963546906134471459828097792082527245528086631882765040619472615022841495625840662089937587053771968423800279070614814544122738515533327777922463509569429281179258712906288306567279044613408156008798684792256538336091486059999307387805227701194322253683678853625024565352275147743677689966887675385108880703676973427352776863208185115968875500399030593784787660196210119784428653498968401004349517925092258714010943691128893748300751809350050395626339405372182589429682208217964560885711297180777890805263071249850963609858447167334940493049644413303461332395431750205169406596135750738344312882137951392264785284425502619216120369418667486152635658980001648598338778041108774896159651634849521558050610896267111881255294304915469579229006553428754685028848256541937013898065231165970497937096346617269121674730279629804190726083902830004713288274569639460835660833904552788327607973505037454372054666018334308450383082482661632879173667009352485244670992430438978598240865744620487979133988290113941604744301901542205065184959896547283802078401439023255745898203911611134186475398650352198331612116918869945244434077692330817811069087127676765893068054500377061026272096426487714277062480007710699651275560386755823752163573584816520222666277103659127668942202978608456260983633008987643845858828054964551719321540937635205399926022205917526819223572055246477558497383362622930510082432177852954920917893326232364560246624253297824272798143362524976813820850246012150948042337196856657888255106377120584659029602342285046582838476890800998998612584888326273051842699778887291425367372272239619254228767370706259412055194760171480570459557351999616287132484961932706895864195200624834857251393776330884609629993470155479651650877964852675073528008624875311838262534221062133756288192977707545349683077241688761199235552336605188922477218062178367233065394234334116246761900976241362537968382706391593756833651207802169207840468855040152901658203315489655287093950177527582940309302983711629443317154306675013708942524692754085207033228503976087628777543108853351610533639476027378250342744334530892600727356812486329502565140393915476429938397008225000435461586796938559433203451953218322182623283907535931193812057800252345085331913543918157708772326416223359902988023817623697108403760484890667802973946135815695810931689554437603903551085571833860802415640019415106061866656401204726748549634548167911058382788130268922116268224411221257089186905893461849290508253352838576486121775668667248275490081901732394747604425455078813670766994489721785989448668882698694801014144672278307813696647775905611715815527861315426751141964551722612455415143618722160193601736552368477422669804807262966314443529219373258859673871342291848650456871664628165077159053529566221943799113239734881702625443449277494703000043410205326072080215694284052526443072734592160793921531791355129092433508360177781914756845452467435562494850877152581959380134529725056169198782616277905243978118594345407087795232911119127498255350598647408849729073319690577313070852526225953208887376042052855195733268113477967610140281860994638015400419896959742859906155679918984551867313127888361466922572186652392150058126865334102962070415529307819484006383497749084691196240945433610546599097619486917622772317962177115792596889722801040103209117894233211955855727583088332980364014549826617136281981584850276944255817757608420986096513631430530428745810082601327536193219471112733840025174236899406704880268169126162513837660022737873505630465483649479704948138513435202830177103563824424696505727792958040430461748193544036323139055605859567588703419001192470355460757651603081873114594813275961747272943004376500770565861560703644214937992713241412764652644339124223803187424517696685712445447095570535957120865851779755938215743104157484526306018341446016327099589012101374122208239037491998879278808690646295528501645789615835967659145627023916202051771623476600389604929885818418658595425822516140660542717488951632823876347009732705509838156579873330286795879246085129340039244546045658951455978089133750295552606745821396051233723726444851499653418165379164864144124536874055451330506480567635753779623460199198326213134248256277723698178876071039336378664210148895862902334930359844066235034139251579639514050416523263951387742534687300781285737520604444848273491406736507741216476406029027304816379012540923051396106744352831731451845028260185896152440396992671466119930634533442957158276459704372408372649520878633723128579768457119364269661880286059762179964061251265054720139649807821269040475872455328521266212005156582174024081338788491736615651582311805892359814276366502987532221233442441078477330096256175842169158405860972081817738345111048208500381552629495125239109583580482588242519255942700781007198746166176475307796346193014234063662119011778073132483436171909979106475467752817089616512675036646276922690995281794500395426238847542679760930638281126048578405542380568098268780993342586591855418968780153094611302709974885470943080356294456509831857193527258320306712074285849112762813729795313878239253220739152264191579941177526699114145537888751687563939827702930668386202733584841695174118513190956847932541526143261963958215693130136042408211414501564048736176646890406710982083044187749151958892079785337581606775885785983516237202561744807597955299033614023123793492840450780814823884996615687794907315220707544244959888025056946992535084630492363143637009623441364207321132768126673130818094414768712734971432847121802059937819571638988169113089010118457344595454664112286047269705877403407414285185062972720750345823926124843604032654581955052834501064514544522903526485538116986876494545391037083015985905300302790884388043234529895081397080485549548550830570217905011526005608951545281513218044072543610067393785420096163720970275187327363463157703355995497922048288500171303305839484511431607090455617759969842117926622836942093562861967608375837156395525370028330454620497440625714306612390922794344565425403725633694125233161400021293187597867733061071985595882505051697934644383551814256836429994131875450751985050568460082214019538299877071107857724682451278134445208888654694378558249868855219859569431333074372665054260203402178195261464823169928844669953194731152652145411218317197815374634595924161019446843675223223851090726984034016775471332021279032722801506407340728272980465793389293012514011534740056783799204035283727106074246853390128876097700375946988861531675051635874030765653699938638307964416397547200449579309689468025950618681024171206936225679675464982275589373782275916348198072237991433763958905450835406329603544082467680185769062925595466486393217450419973191115072915202195663689120589163511630395082981576126325669481700194587147670585834189676818714670516301964007951657297152438033920414145737401490604409289894778644205883195617858895471053671609304151432664500814656443583278900845770094745942836754626503973398560412617417032617982420440241480026985655847199653090638725245671569507880593003040234445338948302153105582323383152224330531537738988645753800397125127981660822413133900527487912191510806792172501950812269547439019344987218940459081182646273043881647196978578507837754921119096090486403996295772892645570622281822563478827210019546312510993630987414697092010460815630934552772167034651673526124053083263039414104974585101562592444801740494448826862346874758303371048950349550299426362590930979588567114581011962287368685087762939824212969259852640025948573559819694399003438312882371767175876758315821056060446954779648554987499404791582234097786274461068540076425199093695694257920607670554400496928819703745557932446548397750830833687266027259268455197139612369100963452415813258413361403598275717467712640216813101327127988621328538118723275107413745132800093147904545585407391050743234975335738577514199135607041511474415899092123895372185291294794152190122345747226534007332763693997270272184404921879152003547291025443192983513562872633923550031286599462615910261501813031878839005968537792907200850548786365473432950025798602335098302068031291223467168050291184610836871522294964967018089790858202985576437532101127419348132962581327817677721897223495814169068210434830320206970070235262697682648466332856313422413492113462743687152495572413435685823290161177268377594096737100928230731500792029782757275925179239302359722804456850937346216326830272165166294314053641043845218028819056432610064406081720069508305879651861372872559677232740430267843542310217398731856404478977189199340955310354111629556535736242193737479539708240213053835139911080677383496671126125530058805372048916090323405879372876593290981947492403532288316073238256163610996857333857372707058399836213357683121799631693753876759401028973391977314388889428950712879079890596965477259728643050721805545792242708765702840759390980230817045446452709666426426513102581054267861617269072074818194517465548699097841984403335268869011094082032360401762100203344909680330926587625920564975967596458714025279545975729401270524747914790363775196480783033214657069345120867420493362229388126323747900425094790961436740219383403097096401721322643288232513405549025639360472951578355523346986003261328954411667500254405284337794706706196979967910976840099792171292188970175210794129961891323405627845766315453134275229054884711762199580917097347376223096102925144464910182787986747299563993886044509920556583893547529160328493481326206892581511600502857428300540626806073792600917378410413110313241081448730025515925958944358116055548567704421131222686390755150359262788344531137955708259247643151699944903312331863110198604668061033023391225878053671020739095933643283958279378994047568504214561123867788682657759128999479620787410715714232267074020531478760379130633684035633209440883843680957787408352379838125348543764486118657390193571456107092993097901866978030208241926600592343916607044615137509123334597671648404635204425309741016306606168079798373286345371530452301867718935693214425911448350198653467626657046303547790695813173697230591724001554380545978138078703091807901655239186349504911184422714643293709203844129033429612623917447268273083180346467911069392520438307248010883403059912045884060213675516466039977327708172801411701737655835561059493867747531717803424436860174985173988191598101143227021581762461934860506037653572512416365900036470757023429468983725185451773474841799927704326536824688855971356893565442573957136058633636536948362684620336777975475721608026623612841814880295608085096571658409811978003315208071317482213832793363003203330203871800928416715894062093145828272394502805017551029056115389625598953734110079991589535436310393735072993274776779348490099037841459768885685819679626461835905766674260446898691694642433289721033977219673442149931818727452381364323213815521931492501742327560561193979670481136026957400830663519042538600740774560779852696967742712937462753669308976866022017922716332861375699280582175898065562822872676073074302783266478431310336417735038202042622842155313103066636023440889520672053259256887821131332537474750935071294548346577899970460187747490255206718151490874598854488514056302085162115154497364294369865632496137007743238880167635041623256376544703712663266533755246266772485681519960648076583949308625330564048608262523587060946634385590557590606164170490334918266496380035459012761995069834919419750079332796565221904355220864169553351181605143232443543106885369495916824852150456510271979356929472526213325620465116586049804464558470929199453337452230039127224752826814945128663879886684072832191523704036081736689557854806818002618310945278810984918235585674237370394139990544931299332902691361526065291205230038607014226117560752093225829721849595615615813797588112512523484117273365914107990840184515131869560916014368689978179292365005979102659344714148051467250077623873290412726288588699818197305052901876250097226204922086867246420945221010728571357990727336092833178458440455624976363127060223945077908504146921404572245903213587294341452972858621328509696319368753603994497331970474154763102476540979642211412443610949517002334680464036509589911121176591611115269240880280474691740818643139500026082928496279579328781411390252342647954141987340422422148343187417970327890694529271069156944901958556084524800093673801918053656470114926457837449455831874705075125134089194315866645550503270261497828995829442934330758690688829475972406656767989972891089554206856451085082231795866508235520585685994439666223362557193434557276708450606069671260642947003551108837402695179315572606702187914149116583604736165380636141071449852252994022775201730755967187400052266837577418934877678670324321609173555594382940874651970476280340774715114412266773876466215329535966130357383891583840098274999885810052619559024102134054088544256825026819263262060801044117682053383489790301959521486986928871972847979037719172499055786391443148682559298818174483572461201091510435803801738420170236467406592284824983944517633602486706464196699437029707449836820459053086376528469818149968993560747680866403375885738289198323810958662154530664687130967397132364523048601347432740662984656727088482314203322226879168222434744343357714829080408078728062527972155483237746152504881575269342073182302728375071017445440549733401006804531190949156016718194305233417977044654878091029644163376349908255446344665225535684433110292933137292259533308655317417747068376015188112327626800820511806016039618982666159453452354834854081378986385584829982167937991778783216642205208196123573861072541821717701327754033640167360651679245476673757368100283139386315052287915737349485138841438722622128270745033975968683491806684884829715533464638900992475574778487850530374160898655275083445079659267634728720584025184620545121764283915287663955655692109504254929039388872563348676722513243155422687740736215085280487132789128871223985979993547310737897149115864292660476512824978730752209476426945935080314476217923477859954464994077466248447280215336277710953630140073256849110234921624158385599672616693013418896340231418149981831516988401792122569605436823307395479238159148794710367181889442302185136044343337107039229613733320077244223951130156371685104573381604168621298135850373037848536161753140035668111120324087361448990422294252446701900425985089951429216338093214854058268081702386540810795263294084873621003310980964172333439979935530764276284009888953907526709645616708650081089022027348748913037385021010716335618163064438131388841861806994978384519454495989505577929519799013299677866423363005659049989879488355692132867163090426779615967017908597483355573683231633494534445284409624285576773620915263358218754713160560008549663028683009424618783589889748752364786462483558374720547624142891788837774599225330383244625768652082479408252407132728776633801437395891357023015109158301454438402462874164978045409629560813503822377338939902522992170230190839376354021691477122163873720671411916331962900407914186844456257510969610810765021799380874455519624278022791327098083661967329053567900822130876302928437891840772635175498668248013138353130430106437355415772902443471040667034552172185822913009882596570583445097639751956449130032123560335389853793722679707989511499818152161182062756862944369474614013227843803656722484132540031155945911601754695761894169748922608318510227242798228703604118082397339596250783152535267658085076284488627891210856699522381916868575883579233846477394510186275042914637453631132532632784105318298920889035059052964648160584640234658921362117087283011148507017890833994969237411445882873297906470918471923226226985842360172909426254745256683618533706710032289550484035653576211511552877295721936721785722798695272450563603024792745785807247671936083101029799577460775659527620739696795059180610826910363118914593070925123398897120147326888500742141479327802623504795419806672445110961456780498896460611767779543844136633099140460042583781722258458120618550711788046996098311393381616116159025273868466802973507959454174782186540671362653940584009527980093606111289780330066454617601541101459151386066826479512057853622512548090976815193206575565785927062624395483151528110641305837474053989918543370231599205860170043143898518758937993594806709476982818341852218670063871917308363242009310572665240878846378944404403161813354027012381223595216531869897243199964613274585765574416056637638675140276098146228662709407938781578028223447223323243126568821165449240911746871135424907189707882989602917149108795225064126314938143544807157287511743264456837216257828323357666612915660050834839275268970028550883240863770599271301703215675194060259791618533425958581912240336399341529989585205937122659273024323573178461358175441468434087035689462332671361954644611804325685940999862698981533669439400367444222823098222684794322838402212519396660698766470563727231213597618151713573340671488147042451369298728913415384756055365088323846013872655728506113401469168023618068844748216848340657736071776162554307813268655009746084829357422401272430891577935509218050069715080350829544504980379883590684918462935872608243473371576521182390402424167920891194878593891622306858864932499967430759022398575083165172935787645283823106111155139595153255924033957819867101145693023962367975990103524260562199186109135874655346116872656266040933773561607565433217299690586728796075129738223370779141809064021574955797608898591244778086299262241348235320409521725170000799392583829853464271590039842448202177009574626321985984493024224241310443055667415990192771589867460384792658720787655952892918614502084454762110686637299166044035628442278946947028808445833548325866854794333917787129128214751090715577244010966984362292852159414348227515438108715242388105966634330327136477505035602612901775346159856530501434219774435644523932215904948818482232402574119147172340188932072164693260483552624714079025542663820095324652483352784996527011039191114255064491943035689524283202408675039542065709008454142155382660366710648172556890533584883748261497731536836304803175505777700040046492998271053708926871721818543230122739007453213220439166473178197683301623391473671386993790586249847966391434235253708578934230956467753158589401508422594334384173565344134288671096167197129412914177485053691829657080266953191059992810014943625675012364722307901312842059460637498362477851628156682487419168645577120267205427962057508873005273397475767686362151081391559305060605132154327812936897793627679106228428459943872465009891621013444845612829749575991429948056011275191359115538526997201631924588496974612784782060946580034996311391109752131110970826561224749676341199430658841493099274164406201117385414633147486414471704949556884399621658645012215936155660026012609956213598703661466759206289772595706928228702732563208027244390560534616889271162190093019467265826718123000016383667965603975550930409220380472827841488724449591381850424129058482130069292543097433700201385001690124155026359001661554409121599936946247807207368097606328520110202509093520206850236274140290162987583288059604646963749016780637676891521143263246225039681059073689267623274785977822765230825205539029622955470128136178847950669533263782235243139468328390066559425486419249456776266434910469479331748718852633191192113116880667018625099124558965779065673742473342679499954893870179962678675778465880423108586140139069967754777204984347021130414374861322585727184861666346672634295501937307778975375272706227824113370185636255754967226396683906940460646931188238494724248906908442917804853945173720312860284927872146000482761341794179970123015466470808163477997847197604741273071830620579712256473674858099086047198842020722980741004246297396423031417042407981799950340385056979365713432255902299163111498207786523288329844550810856992848508448519685966532949878227919939116478076604702114496906505334949859443867222000783572515245892558762826212807315830706081225547433172217261614770676997636544095045822114977189958729625829910119973301581899841826155691083152402554922188497548107572168860836253839931061656200101058036906498466644644062472079491969988229962078201698317665854599279829077211707746228919171979162094404186263556849629226377381542626710960785574847242875981580505639466698619708010332972649492499740105937757087838620824475104103886514653998142019493625942048007694833347413332797833317380735177452878954529361855623039876716598243340281934923964475853067100789577169898343665172997555771089618402241880042427619410835492053842374612561490166174517886346881201349328789156305506628742381244688833082170512496501595101492101116184625643728945641842121348144540624237636455402054033831597802846843111183113126263104946965244475829743093995856002140691727679224256112765038340519099888045433604776328226317359200524910376144135006226163480505740477695825832647318039072285685257202492520537508171963146787235858594417526643412438819038869569820389961677470227416299080642856908216300931473655279396994811238764415464345330007155923847301659270769172748232585483892606336577047375368468383205503904254037999827964571328890562238330650838594387906598286649709416807650821505001525663844445520211603046104476860669444374990842913748635849065961770989675290168011914536387791739467706401027792772643644657830519457460099222310414232917354980100595361412977409885740447136568555814394548415363407412008841946965373419622622005485727784306758660102142011060070348610769687713076773341044836570258535330618906842535936842658212034522062607762901928121149988116875767557840161757146058401740983372002359617355019344316441718076667355852729027041756746588567645319170434284245873398457353499777868655830768273150298147316289609045271146495240368368089790761386580568445781396423458254146088158423297464065085882582126118872296772591379089295750208680406199776295812963153347859623209825673397497020175997463085217011847069081804706224661945538830620655455109233110845626232386840725576019648985946970878767508972560397719100182530177549328871900503970238284760460254157991840085917778006109794248851523951994447922730568796784141495336286570257957364322349904371084123351293286960024186318254247044640345322279367725623083587760982325391663607487500055750512889464524889374265821884454584144387324868729845854900299419472471915887769777582949114004594226722019039363941047086790663089117794999386906207001661348553389090043796177102502050405540711840766027039642264430652085182621432191959793929256985733995809908287658349727083521343347364299013577731556491978745621062935423867238529010625758977909952405854032831054913792339497660799903483984241180724313888846371363973673654441699307741451626864098483737298308681374729675543092660205656293149989602409619250155381200703031581472780692588211806514067141817944011083647720857971842627012280295468037184868786233666434966947621160175792656395796439427580301152337937452405824652610719277636963025418867313975616079329232881627468892082187913852145071656614964617649306479331466801062778625473935374025068769215822492037224760930229481889138856631322174794443805691374768456604821003391244314604097944700554644364599852364966844325083192294275537733425603148046505769226758819343296819410424801711788381464800554628188467230087057991230887308186301965479234718586966179906846967560979309514075237204503708369585996010407892202312421237239189100136385968779571801535279159083711756181001815117762699090221277298095903439483297157847893415358624325357080150179701771448616453509712954789517455479952634093659220788412634098280022944552837293869533111912472958531302876879043155396685844927692534444639281379493136355139457177612218028730380972412259952623206343452932758278572956643756441172913318529180947230973405217460625238510411661495339865291740881328034552175413976060350278904453901103810166292635770871987972212100922875835146352599651867270926186733635016558749128635830635327874507684350914764397957668571404809417353951838030742719870475170335879348427155028130925824590330773388693428907257861181407225069919773666847740189193850057359013311244883843153827392875046578056724340466471819002944010613844786173955072949788487007808834903932749723562366402637033067979465864830210752832063165166007813736039334071226180473811829952845880593963084709532970659062732259649781106255445615658968234120851022581005752371911915648695582834290984593244243923387835679033783015344199185140630295301574663486038657108338438844605812567265032067538318655251659755284811389207004962501011646931843067605193230948551277794626185015981702785194987575808840594688473360149678868471074268865598659889846593320039496891926721676138670818189604485593149673383649970827579878700234814218851456616052776843174007147448008186849221422005659610552512582879995997726489424280814957186855095083916523414842425101857855473840625280078297886105108430329822277657881678850648133155523317961338860339230253207130452295588158164069490789833255951099960895866946197135974070162787699429800101212204799541456702245618588357086256688294452775254931460849098487482489397283111259289105100114355758938085977222385499717174401836096469770829879959967086904899390216071601295222906929413265999939350950755298068496978371598755053844466892195117854457699136699188700816706221824261347238429843138626437559746908743395866858242505356177243994460876650814964674221430078703042530737881519051477460172087522835867201794153388199860587222190579430025199711220384632938487407665709800219523891498391457665550576876322602501678142114481639438806723127975096098287500122544939797364537272249080355290363136138097069796131283594731687598266062302152702518135269029663415099984036971085843218896850555438399531824156907763743154664887014553764112506111991268628039082917018580250279159068688800650821857000044895997037300006443421384617708934550309348165119487154591706354261442848584843919585150992904021739068412206940679070043857576354114895013397138084057833489803720028703433408479215270427847953872541345803987216821948871944539463103636153578173842374447165330521076298821989072515243721130873245425639029708916301004299571965479662912802386949346041206088910563593012625766213094351056663764233176334321483356541150281790550123190352858838913692628723025677046675726101404997524513387806923786668094846166277381807457529769259266439869273807691052825413601920148953727713556457331760342543392832058003950816635781055672677827423371855400808337071738807530087761399351618802766217742286445043829929232566673040054178220470278205742888922798892840005132628775069803372098187570985123417877506752434671794753953360868738768596107359674870257116713434809494070632523554484432893598903992825224416656192096733340089755393353399829757433643016759516386156546452700219320126033406436481775740552152336729767374300253445536798936187815072985982131602732933316345733629705677627072744557871780599047532702842882337764702833658574197841020609093629092978743907940243172026113292201634742502321590090251647880097775915973798545324965546732318836748130764418017683435986482646213485574153793637432947422467548509390832475237706897657356145428272353576168671889263352258125932127806998384672464568726014863021786508617204301246700027475831675539492361892802994075863414488724872933247484783808113430502617626859502463251299469349260152467608687680476329163741101853522815433745441311699782723500179008336909085731388478253682791384685377403384808439538092736845267406442381841143281620517602268438047377667881253488083637945187894722784512542838979230819176064710678481762076589020384682235850658266797755014118633480737155936603180261528907926521649126610293611509728128713229899442350997711713161227087319716317768415896683594303023659941400013313039990240341234750282184378389517059051846953335599679611341470168090113300112110545311149932208873651409871270979482715507806483088750611657311490771610585424645101589191700620706724477146356339550773447610049404139872949506121644038049956603439459613912797997302793545364049749508505397749489562328861413062787097464117413047982954341217655681955912450159217920308787854509954978974175412784899272986383377310849366270612094561823906233303208131372562911270660252942352583971360112648021890790051454931425618148572189527918632649795876692095943231383544834319262176158343249895544906109387159630576136030527094156799333308051805569773709455867097747010528026906554919273252639235791716728792081733564364937202149986888495147565153301860314514430462089117800128694383076708139955481177521711355238904053114959094336301684551678231015222050932530583460431309118150135319120360786626559504860648831759283157390332270701342953534030791463189364392547403261803724837867563189767429107543836584322468775953841078522370843475485708775859041136089054498899045880754722309907284346726401961997034017541351241957412128195096893596527351087551360461470597664212505996221838543110587530713639686290691745638563306472663243695478907626812519111826586603130184738271464031608675727529918389902697879216698124195324052682054427069709272107938773928132309200740662498694604044919461950709422887536140896216877768458221995992597757365878600915645269738926501228778744799035702254162818402897656852180701189612270830600135220483484153075396248531014432527578728681579896175680814142247097601472133729107317718607372643573409294242817093706388683502095480442276275713985464809707555569519974135822800412730419898080425086011095828040348412546005053014754450357871446328928381781133076777703169390286757435589179435482740289914607437380671988215383283201134314534150310590050805259314296100043018442370229244571017663082402725673905664408638509037105551419016106137942764895564728924801283788085301012945667860773116857194134487439155514095057269958713405267693900469227687853637339711968117310540270818987141018347360559393288356104932863258337686957881015529873498167653102732004170266586262184269250894880914381598312131977726261079903975859204685073225228224851443798847638057716450007169231089421321399608987043156848790656863583713847250934879650177616741214173022339665387265562677593922425232424986692242177046982498385292162787483094266485851008664747424513670765667537220427968874798336685105858726748127140859404513557574457741513336319716264800570740721626818510301410431401165775640601943820573432618251271742751370355909788855109586756226507577226671773308186510467808996935649472155386760754594435857202457502267600683204288257887540660840526180866404298281567155901904544802761849135576120031137610994710613886031580597729875071235743818728138718349075928615773270212160833604067562029964884112996528986923054609001111436179991514696159915751686971724104932981180323440723295504970659191177843941544119883519799422098530403416609085674240867013636381162876961450632840495117175727812821290864498333657028770243189925626385719470172502455128482075720610874748136048222134292504179186978628061332244495141007378628853612797918555748223010019108138942423958147856616738135787007496008303137444863419913226816155948221879126364482247118655449788142101902135068754310657723772758636695247644815212812042417641670689401437358153502767325157984457029316087405735206920243073590592419011189688982501008494429839396459664520289081146269302874663110116298556764185939462732600669580415374486707052921698716237960851786003643921740185226134950305643138954780084656544399134585652378794678881348812745452373831551363493737209921999491793745177146503556578020188179810292641818618894788275418129727519670516784322713421109461333249442658450013741235318986128636575218435534125157366778868249904210895167814787907772865501391103292166597416769960414983555429262955378724995565636185991262014042777446582612047588423821279330248755338622582505989770326348242869118627666613652370698183286460462348701383643161308898187113582948465607223045196520157824478980487901394168330699757150506306679850133020836757124044499803737372327927050341510180541158449415624369322068950268211701385934852058637114750823406419341414781896692384590018201655652062414770735914453709834257105529265844290301414512535587165267077140829354492915284104432656133964876201793500333820131393173970733139758117967681170411575195601724749087725317160933549869066234450849130819192225758656956887401193687874177214981760304299290218902011330423720244098156413590335204055533077870883545177393231849847872687931206709438035088193804178061002845219440757312195023236481288900450900656210795663873749741596493918364510945269790957037070891573357174935899358947069876479678370869662373277633110331691774635608648797365895940665725436866151634873416101926347310720574248628554265300144659953979688744974470956890397452206074548055615519369396073140682100648114950370110262498157073785389068026645104434835542363671249452020479202152457800078792666131323736137671901765688607120091808766868274370326429720294409436034060705979446081822003317230303075094078038386574957726246579775489518165273501402246946349476782057627144070404061875010089391869545563285833622286169068292756139885634298696908532069450818915549902500632228314567756425786259292878749690719108904344938501057740643155756680275294095390374451185406840178545320676630359032889497384937084123906608851766180100950328326458247533120800581339669811866161681871121019262198378867168081113629897119545508463262510688732266579022992218891452458003838797305924270589787052108940760967908108407770760090356144707471475281861329736019236994145132702968224837383413973159343849511096681547780849218384170997731016957732876687462154119121491754212876048824059896816322895658067259124312635385926129202110298398631827152520373093889666549803120818549768961607986372994211501672033649981412377372891595771367672785169769549994297963211383478367360520975067637558273965136591183768109572273015925654747990830300314511721792087794691251095138288721166343580697884208547878263249579563766477775595919352021057789244494611972194342961681398787560332986581386454138155596112597971506064320292060253571212164029017324004960655753279356011960494182869863926557350981901976515344904838426407840324471941553074237026314849287520408149082037085316633984126774482157580260334743904710690744045521934148588149073221170266188249646715545257884885584255059615700348393246292554417850525708742250953125300855412288884183988587860501896277425115374950123833696027721446170616591834284602803468567438250265351823868805201065985264386402587915008295525968651790857513288924996032459570695632127698630307167908809054185581855973731007252446071695906625419227903020116905889146935026273596139968882743040239616499835777970055527307566376851419079977228808977197092862450418766924890488460903773273495045280678488113403729801985853314838000435946230041540125501900166111454005701891091547471267975690205547733322318007307324525538045804973641178634276630478081231709293444556062094239652277782928090426423206591195286406114180759182831630737158675979234533430317402263890036533739906592916893103634266728150356241152382699521506286267234336884527674759972860508142565579238252484110687826057819681189715426229179295499294946867228182852564912795271102870159842813803835898595761667282781672927933892484768141216787744957981584501344111425760686694840380971285140875950385202711914869792636156317822791750976876377169192882767979340473234792649092674564736047061812187407757999108030920247133460586752026645318784498510149009112193517734659122393862138548983407619586945998376736299889792128767477660513729386922276937927272974453053745289233430660490689939124590952061173538981753430634928927251711995510363092246346033314937735501438321705816443637533177210832505109073431081215126900208735820912321913598434392439103632077208222305411610151834824111722908506290641574133088081401542313823911596512534798294555516364050869313037553784913676682659619002073268864560950223105227983380857747432936746167028424962493773313238641594917356457091897554395692188895946397023770228213264577498408957973781535241668298978343638793537749918437726333028686223191168294368056026255607694658172250523720548797889914024462074878507584732374818908044560787523139992939108288167060349514902300607339230140259805565190772786830545200332379528029804672147445972417222559174467945835959553155725099494165760000875561874215325937666856082230407940078573160161551377772846073219387378275548876713519510588248568378100287157196400712773935973892111741691727206260515620102835909885570182335092688222897181908966963453607695573192294278028874508815816185235600525061653097396355307665288285195058448984273981908349204434387042925009284088123445132190678049330758852740222282789689077945621377738529246461226309105289716664771382566681143552602667150131888855798941783132117410325212291437258566839136340909235536266299392807743458015924547768761846667721036581890625445928467272749247587230939327407872732165525993804422292915636433192172070241077419742330750638175657170417231663546703874222473570806129993164717014104301349232223597077012289677840632151840118395020576622386805304960449391551125711045035310899198363966441584653686660319091301320893132755837452346304998165455830947628922560740206808064814791965092614846182461546190966506574933165520035862536935701812926095524286262270755551450683714312626037408231969620843986294805839158363232154604272743320748883305319354069753111890851234287705780910893401799598079199497974898237070531291668359741541101357240193881508323323847219335097093629429719684126765246316807527310914222994650152869342783649039847345035146079791898966596381254164131690859879545030455492995542127718869101974132693763550964680236976149113367392019497982751451470498323176047137380034839823492846450234953265654259066346455887182524840236908470515331911564026826763671319083212862545444120231133335581786158435057405740467523631562169391921145870364106838499806891436554524981215344033067585138183247745144130043368770497509089800871577044403213678913973418593705930012146728688938661511273747776814617229913535452365694630074871205004184751178221997817196206087271515688493858135203421921618254893327079537463595231590387696403661600034994203785552889482545446415712402668558552478262291059670944102979104697472140682618713408790977601582323775104733250782811324250508357822382449215544101935532767008353476594028983872617443041313102514536559575269832156193175439917744069839527913023452947262917489302929553572960212928776066298200446946561821016923111966284516014185146784403772499027935120056197190558696418045006346757380943953712795286608927721841393181987590048708781454265084538606448737315490242999634609921214534745994065124687847255700190983130291108943685974553658452862826320972056887859454084559734919348725743041829649668765571378650758433095942376627221599950589928306046561678822123467590447365593978181308157901872864815773605650654640919190652479720929288357863753812323482573964474574111808701189815743107224954794937694425388257450346331679196638757472450827204327536785596022625909230022528545987403640064953099500401072044856187612974374721909926934665138794991564137166092776384998356416160539241743923755069466089991190488501572009685688734700383936257118282183321588518242503751469922458735777547613672962875562464390675372218981287626365076998245585196089900717750685762392293682750961393767422037521839907432129368012684915851292138273867773223850565122275456701882715496494926764421411920241034937020309479189124915064310115893952562575349321753283157812928606368973319235255896053181188819005799981028865355017901165762796650370440484366960637670913813710565020083791534718341463807032695609716139555968318210063738447385887482360993171527448192904233914742393482294889340813563868764465484126482955994184648767797065171237006681660523945738749144573576294026970383862525529278238010152500255687381736922336955397950887323628696070703410789190622796350832252396272034528040208668259867194495815339039050991974518200186481083325955770552190896868201756374965086527285796632086173546351611325284319841999908829067398072314188773348210036882877512780160032235257230876373602252384445966791855119455339435289829942302403843947461682282584297454376327524918501138728685045758254319916675197886291200649936234999206400867401628701430257967768284697531139758504996655664316519856054807191107438468214338423675699126861530507503489433849727222781769853944677480630159022384158360656088981801578806302652910395128191879432544537290427505345811921702145211476314849570544515865568585193153434346279663603371982066980677945207959064337154574111893217982437489339912455862492824449297599996837056129394191201988557512283995447070455991754978873487393274361299507060028995141884378535056884789935908593601177404479439201487643931504223246268997294280936510819133713429222724969428782515657365249543965237294316841482301102980576997169162754352920616400963392442121963648693522913462957977280070510069937032329043818186755715900192759355086323751579732831785479270297437757918171105848922752777688717427233023199262847457702994600615594260598797191329963184356229191736321485661445970409150773577713142426539671162867791939935107227325699407309843602083973902792437309632791114044940337479283266037589554322616166116463603987915816900026388139712554169105002631658324110677461300695493867725802778275060108570399690307820472173968020135130254329197335607078266006533639024517621609538129888001519228390136132814154433945653850568613663828016795186706468372096432352443378061257292182214684426827715883559964632496888372884537361049544380577160133739437289173752371148473843319340524416639551720530283157008215226898054011538381312943172742248500889455481185118708702210870025211745967076574672643628192809752609045801109189159750306014757531313594500106111633073976179635840002544485553162520332578332190178987664044900399597181945501817047911477629795444372690672916068255544827853921943918938210289431747772585193394233542273056683237974147184479743269782475910289420244659364479572947260583741642140235620651616427274604182484389216027290881452487553522027692990357725886458322404113798490471715182979035293439609333243345593961133168187484965141846962155963878680915341106887664565103601425116265224709613480280830466099841970821913762531738038585710554990513110016522207355881981521938246052175337640315469617967488932627792837066433827313630894234286657896764804299620245452256678288405872916995974003154720096123039476287767261573675183796558864307678916828399916697891131411633489244200553120628599245248994136097291447825726176741744286876051424781326115450951939475924095430834349650926025777150876517631531798981347963818992471582531313922898308093141535109296474154966358685333291492368790407802441262249831377492732832434590306107567920061258886344372678343166378526616347017992762054550587118940088619677820122513792714428608905078714542304629496922644880684419240391464439799676927400294466399580421439713030688646455340466871780043192650196358871330309204239414599925403632384376865413983080460417231010328397573748514916531270680043995413629853549619274695376034215651837634714398508534736924553085129990834060928397939348071673994504867466274888234296062347831421296328576276962317895036970909746091128226093727740877416383344782274999209361462626449192319766088850779814315983672039662717958332739308033246511067280049560916200497961616666483728314335428531377154262768587610660335998626921491820925457134093475828221420658160739860647932084949781039022827078114621442858532288285550385010648895323805682787142693871726373935229677733104406694127187018443783489319744574181779359279570288526302752225493187864728524416237242433643913331359299281238014099785831527583104530195093367311588712095917040258167369701544687958917935848386413403329238059131778353544104300019396145254923396804641585016145666764762258496627832858661132365362280848281512281035097967081985026252170991194791275563861023051436828434510553068745380624043656595165410311514634608473162030945974792255958271784194950765469423876036640338632222996716876583547054973764601713385916703066812633529260186378834365812491891010951320851797677863460569552552658332192617054053805645337362374953771786089750432312914656270912481939387527094520151599068663393757222432751438737847231135414072430007834664349441403646452615306701056920096493693905906391111418146845880598481487217860990040750666866173113020649552192715945421279055244286410152566174131156446221959785628177949597641611114569958843453855751983094451147205237507929897679606197140203039807346465709358005569048537322208072430175484747968268060791563149289632618257356129002726724586782398607199168850092663013280285418538101091197401503406408914330341978657837066934212590678746685045343438250176942251589617632955603898076552412690473712283517875282331337267217828644888412969628279274632002293787736534297590104654550832546008959330068612189591692429474010096727233551909256798071683400880607450328900122435793153928229743096580080570188806956417361136150150416026914961687898627560123761554446134220890004941974774860680493517815352756635604922738471013176916149217275952982225608051218760102367049552389176293979643312629460915614252548729760181762866793685853279061554129675925518562076600317032809478130502610326486283971578450767069873843220540354450254269968302155110484884236932802953663796253834391313836949971729946933093868573269871444945397842413463425980433459264155569845606579123702291764369596498807138967837109139785930194645579357374548186896491738672880005471880846486814306910851686144565534334214345768005235048208826305354186072003012230454049771893189523996752018174007284209958669841295779771649191604796061468938692489721765132486542285327752328887349236524547726747400973923765900844031218633785512777103279971542313479039069046827864298044838824555380388526544738777675689403579422067550290881746483535453215378688325477241604051677960112365699214188895425845544513720596092569666202881918508079728790749892346401126141602187293724552117835372647730693348110334473491565195076770879346198826253669010978957074412168947805253199573656392707001456842332405711558876502904262184914261156325622602572675888029125608857405402394169692989278301095237246394862558337399981084482980106981686309760199149522438012173657691161498809989328369974325572423603401896750943271052940017665280981018347341391980779972205529932011256838982431854603805033069901453180364847087316604542597309868190659957636822466453336809224775615484351263760687230611137556796018655434274833307112770012383581693538790258222987421146439543999977497629274984168464523914796041471479217969771647172004250737647685681271863505095247315355002461011566010808755403567563076642905000083821645003288904114232118419539185862300921288759216773776399192401058991470906457785276680298162391140909683505645061179552965165480625989818992288903324486097473906507660788091942361810023153363602958040595736660186684012820065190994210582747641832155983977384991617945603423505348156943851032259611066381312938324415751779240343906592298269417932642784384569301449419340354087191503619091684808612965569114075495942551684309408928935614365907393733032378088953278496927638593172711651985560384607702880596912736059919427371134177278403160486091760334497318041311001727228944194444678944281202870922429030496705071213765043024167853469494051589072970851247240420202949167630349535670858048088401524325042618592883552916037159283107370473791754864105457980387601495731256733822686773029948531712446880028775144373197223478185659695807787963101515933441957264873417795822404777391551888747965435488178617356868514151648365758292110235171368543223160280432369627559715414547267248784867267967443637965656100378919165580728670897201645027895712018182210690230796294168304079361851764514231885651280279053822065307151532419173944153009018255040812914384223275873128080295188320153518492736828923301361374400471909088426878339366858787449689864959546593805918218982531284349764188965748864117204890995117954451734276489324023273506688557692315537776616849085244568645260186152326433668378298562741400052627260792781368134081909587935462170376115473078050484323034298020439516515857027121472501246879758009221338016184146140493354715070676959657898562891401226520897653858585989585650188864014934831726707031126725719485473267837346051189175415474613154079689702978231115975699608463150961424669566549845871556264101049547612866601286028719828076247029799116885245168474780221977487252141850740825182430683970635996650887520251340230120498490670651446175760769622526177993246811235326788451525328787829637348847049376961082815950964919738415702282971694804315431386521026185205214804501328907147909356625963716936163385112280179161628073185064610616511741138988942708707603450725178101010700758796477889851137545957558291132895234426210504720076776076760921257503929840860514024447205250218946718047380278369991331471574295616558863482395770703617190094329868967436453257039786953544442486154054472781836161452118260257590485349439198010593326636722923132001047439595820786561480797933436233988122485854116037797495379038148318372085669361090323674474733508836453188643918525969879182835600741018614186200647330142266345316320537317885443735548443960357857512210025588070071793768222890567926228902731254889110704120247843899520741206154080950330171825160427531528983338609054409233086504363631325277719560638662914280681988617391993352724898137699312901766276596830963966954554342443220010393850369991670312113464351123325329975557926009635558247632085358490277373704707137601409714995011676085322759568729665911070326705309466242850585746641019155023527878756029548824544842043769004733525132153352888582264261720385851007141621346108589269265575309830415498195529112877001557041106539533766804146517592367187885677963325957683452664660747054361294106699406359872337483602848293148371622629028632514315723187632230693924403285191571320180598753952978233214571275373275532605704976159874231259421556433312140033882657216065789743469482936852771043226775526915476993924274001457951860835768995062591708662780092299660013452245877721161688629433193731582682974132883864341966849734414363090029370657301388133229359074457726720681485502605312371536411624692169717734263359751205056580986487884063405437382223932419899421342202554026632165712683650199041290723204714085686184605749197121801504943515303638750332139497089058096304776221928041405226517440991165726336263561456705683617490099942072235132647454305243422567673412433213186105250324590930131741303222558937444187814502437020691850460085534584839462872502202247225299195829338332365646094994236799592372195191871613508344363283377431951741049786172867136211077303932811461834345674571228512813744017381873712002218462247994400084383580238133000425974875524752893978264012366471964403385838822012035030053214464293486836290331299210553735861322590717173616658974028249551994773545799436388489977060914185500169156660145301266534101363397930473977566317976907946864174662443978701110761578599992266762171938261272259564290761803755720692478246810429408514103343954890101063497282539906738506948900768921600840965449990297709644465412400167163479027935455119468215046820732049658990032015770505539101202463016168461860854901340028868900896635904623520805655663466100062279464740332728443922197393677598697385412615671030712410455304405045634330196197685132951767861872787451114417008322554427708473236840242075346102994474388258264985610904575599230556667961118485487569818941063604716775831870637502396583427207748332830682853556870308455961824971072830472343033990621238396952321846255832148015561588731881688196539234740828502109677854607008339290519243319838512093774694390765412289978896946213400562573608339107095040201312659793256600986135892144347009050658344379399017825321052302488771511827414677481128265544319512222459112150632874191910512048244296750141647891671646480461186341685553217078661509359820626572740169111798035450734268022226280644823916048638672363043729695756919025952999153102193335963594639890974403401052029039208263765100916080371579984802824617018293904210975295685432500228702658494965431632536630980775604788804395882544193507795529898233146985047744253209165407709814552666105574950595787580231800352299409461797002820603826625738305258556009091641011106409876599987219902427064557173609010923798905966350737697363778377403256132458956617206715764977703251498639891057552261419484812977666956967325214511969507570670996837517046139765484883031374831304818383034167870213532710119616078982244838504066292773360173400780942281577755797333300653865757331589100958214551548941898957553924647566812419498615174372436985781198088312898244773923041906676820700130528762300638523873579799883748967276376461370877199732994273771314558553183174182173227047429218410007126965032158665803804963938081420408780879095475775465072042921938239917322495925820807235228959545616426724925582350145617704274876480792242361326228993081068350369498661066382677059813023897319090849197335121591463712552233998794866339983328828400166775573728693947843596394303366419876681519379935688973747602559662883850446337197259238241846179903157932317071331748193744685124975034142589874999458014760849580734551998478190279723053032799090494449639116599077439395638172663540507008433043163127132655462526554524435071834052738379221502015075004797631059829993043045492823470846532477266787474729980773453260843692443727932433717576531427858502573153626916258516854976642346085998198725533181852251967030186315173454053172114947034712992617368636064702278746744582618299652771011571120862958471080797212862826246315789319598459968422913222687719855827842808821814705143895448455027033498468569471866057058907244877594240413221461652381921567465758284039045982310180095325392762207943004609829094364218797781838345915768648976710398328983889805047220059119325676413443584728671870516754218314271806156541249737323036779895832856366512292328485560789463752770228485717921116078141864114526355924155198358767168750034232500504918668910841280746287768034002678238560156164828218215696620685961957233510630658456725285522321237471504592278184800923855127036668628898914748843423023842795730167005361811003930091969149749951014415502680878569044210340704509937978743120193157907366012945267010413747242978788415403043704698567554390425952340594104105706524420972895124761156147045627737887693906885437223462326997076521435696253244834358226069271310906803282456427648335797768389184348643961394865842084937068528226928336901968054954540913924595848568024217406612277271268910813703134076557566011050697700803737791429553548662007584350176188673016283505248962965629369989083081536515985708340787509668012556906033111730134758177603545492303746960956158058692368222431549206019549805936179911266891347940776972478165850544223687182799148803314790611189138156921665996072118856021294409811981651217941082086014024986846341276074216348149773633328036364333550062733586390469737773371403036119400035094838617778380360876069452731986546336449968106070075976200727562331644730967950257749940078836069158097875167397026197629967021121344160313225967914391159516926733601747873745621956026115197166218838702327987514733453648005104826162299232508949880068607251447268203419818919383868034402294123964821546266101282044614384009802722643676994111958929969829296453706714142394614881180574246539443292906290463611699935812648611429136475066686578962499580526192829156689538580859997444164126649421461471553490259333093992917003071567488412789698775364054826820902997920174783866504563181167402615304027377998987061903429956586952749374680452158091622300189704869699568220184383763372988439622246516496354839806815641270648968504383916453609904013765211910635874561198861418034191447468665289732022110257888277320450117331525293915748357648610306612871713776148004107610176979746835155961954285774392383074448442926034908981846829299528193323883939938109156373988080050230487237869327481257929076054292128947532073992824638047581413844919275705158197558383706325574191587032300580028487265307143346058961596785021993624901656765954307913357493504246681977363314648864042685038866776894757049681240702853435996602282874080370826560262447952101212117432871345574811905006048425828602746815652216777126619167393442377920181105260954623360166196365320406461584055744772342894014228102457242374266644680376957360267319387389155086725301081553034322674692000735796030704183263710723473822408455525083313787050274725244727401689612657800012468839497165408030416534114198474115675576407118220403920334677765330580528668978073155106593880654656079841040558881645390205590141818400763447241273892571242037723686795009712668551983518835325245227737565939464369690800422225298839636206460897196259884651726812014359479511854793973209378003868731568938992163162995863331374193397515727613080246081554464237666853549276917469860915088641872420170372250430424824300338708830133753576342834060744426126685016531532555201710968086106694347375483271483603037123529248876909785704037875126610706538090205244623867607820300451774160773687628687631648672454679236950009783488037262823073884211858988710300826664042300452665432410007114817147151732092234189769679906674439682522051585340854335635605869882267809371175867868405150399801116826068331934308808788389327758080610482194809060533486276568114059425128723988050563982046996974292760133976689341973737618665304313115468219028487733861072563070920529325546393061492560662607867734811244693560117451771293896315805555163676620694673896918194990107706564565232353455431541535446845779505809797005672422738043568409694892273583663671804957191962708541497376551877538350957234032239104149038785815458695629167474987982327649796913299787441328365818827396463655206982274362954147642591626940418802066850504229780973545853105417347864313581555930210544926751523257496082443773257736130757503141613592861570201380100786630147825964924960469137823955510705852278406881597688954602241427810481402718506131315415599311153569847267825458074628882549980876011374103142429729659739629728381362440925711915796928568062648341003079860317495671866726484717049162463586578248132402402637833759887564255605009180078872564470048914340893981769919256275061928564097425555463570684483844493570983614021718334567712366660170438247369285454843425561769597909461783429372379155131024868063830870951550350242608332990885132185663181171367378838352818467787957625994864507826451943736868843374697160833897260909813603376326124568362463476628826195789284943903359441427974598308960699418212691875234431725818259717731026849739506080549558653526238077238635739750131021045432759516693050998353448415352939782211962078515682113211179533825033948457272274753438263158510217437475874892747437699984627575281764821380694243876671117687359762647077249011700777524738934960653050729176506780906232139691831019868281396460169168865785559691300311666557199031055876404729114925105103948538455777963862864191005040592827837458589050684066921087286903689641307717011152551354455030620834992236722461110834394040255325425141232760800780725308825909051320406871535007162043015232428617114639817012380732416837488450288219982429945090817084660925535440401404342697356008335202851637886431107768770170941491106230811547662912194734075871344208984991514069335868874998249171594362148781545568459231607239716556413668853407515195006784549837316133262603383806906155289649459258009919177830687149447537746429943106100541132531191246282139066526646908090558869521265586049243230903565659716006580696223933524516042715070806695774523297615316237325900201729578717340950781832542978807530804292832812903952153553035946441876606305927904433763554754335046262797931897242490649702971371371175722881481513644797536164188058490797088647483523566284702837117915543869134794821381789697335534774995902467695123112319465006790902170044993335614221303216500784052125597791513158928878593270203825476680575567481323147893739867239265298765704823330005672522584146045298848355911608684711524262329037682035460022092241435996166781051598054964148398677580329014860747414071672228227051398267148775894512241832503847304185885894995132445323690076492731663515054506687575080424160117353735757562471802832635353043319102105908682490949628179278504750879299079674729708145036606797316469502060144766678947510632084358362779592909951530817503283194004949944371684512220550701820547781582568429902805429171482572568665651920422616371138132068325626720357649847828801399968822503214331256694399558846168274813597245225457141333871389603913308499230718385314797438820037584789572731238448807582851449785397315977020841488937303898623397483335531680967165974112350149106810928728377089100515865611726543495289703884840862080476383534833675030934880471209912475340213160836097476676158954835345725167533331294171765479689334012803336846410139128625559259326399684940701966953120067418200805723955497091594824006293254529508767513673378884638296180363320458509943348791583176161203725192955936568986118132810078267505359961683458662387240885661359619997426511912340098158875014291945957345917480444457484810360702373267113196741449116547315242961059745517065315272932632079895739536565438598269573607675273250983969389015812095194705782406863809993022205511514251557489351857234087458946603627198204378202271146249710695478596765529349023487539864011313885887175908722370286049538153685281355181557307504871095879537421184880303135000856638551867620829280543687577147210116223425505317959118197397312497592819964945202392025272384925516680362752503428747883488363794441750395544600881790069923732459779992202823131683497536171342704976522825130712288017065429559179415900476611523641765377989844262262342455533676855679246419206919138054705838620688669378441460089711645052501164066463232809732862748224688209622325199592536350747450849375701673224076769716311889312979020583417472280520268002114289457052016399027379834176288858307035363077132705652613222666180117555303768365241779862460948503726494674098758108035598842216357395016035881416712383500798101426130896538130837426969634827212159887280756904209658398803625930312675604066936545159613578023345906606311012714001318466869852764624431613891061772099992780952972873915706604895612256914566165127444659642270172673740726287126822351670094120965840295443751752652186977396761771659397691350840223559205205071242957306508877296726821526026633031425565917433446546452676680776361152776202133831787794701413039919566694927730328037424446114361872876318411663271229035203560205048400258856451546384759544690140411778533570498915380873241071585976658259022042646464296999409137917097920229999082329311767449783148864428506880004745579609953248455756089939662209657123732094784987646782920635997531999430043604549234059756047446894977681334070146497656098897317537707908257441652522496169797856037691017677867046105561032189766236395760355461379410218690671211111266598189119817039604881962918433594827409234402161562895894620764203699485366752249132267269561962672008575576703670713945764438967431468590612989380938216537464849110724332272917665739595949600356449274372417679533865888367799854059546601581780120687236530561255044844856723617023948367161202993205597827911088004979038127392693769834191000269785581854967670739561816534788592288703372583132395502591168815137966066703783883426337349871632679926601060124568412417070931298310745077188511579750178218189012106069697560461094911925548612987857649888360491836021946842577363077447211457839030106649273084659648696051140560185430369476218865564524339308028849901934118926340061862554013142940975270515600623718498003047759279839346358338646434804289893434262964265891193307892690923329140404811810704610078576891059478822823376104711874354241555784472500062691967581703141012514297168900615337206310459531972693160752515724004029735906952999463409503888746823004447628435643843383151128152276300248936355107732647904197462223880383765624370092735334018822776283746854671834968504513585224740184552954921749786353927207770329471914231563546798807772079965324540640830757855773025355132159314006254906796586985028316300006012598148910518670901719248061051411378335080512318354883198606984260567698268233695436800214843404281595872146120218469724441664265592342207305487541191871173266022740600392552197061751164971988363345624114354902998866547350723465603018543303645997216245598472432909340893216220676894148877233753216286089598160983045444762541172280901342190590841134509774305087621188750392583577143437980554253166759708703343935281506443393516480188250503106668661496869539964214796392911783076165564591808971997931206475718078336889244431195138243867378952328731630393385158707583631564656022862139425758470385400847544841604747533922967439887717804867903022431713321312141571941604852367384833884230225570889321590111825742926870849094758681651069754212672214756973522694328404593651411141494783173041717910183862162764978074670942767886804415249107767134219492574635170285307638814842604340750845741656242359340414545935732711978387966064078647236083708883359494430938156829094184773101405961783845112522695046606654490543109760660241546396434104953316784981693240184815862435552403336189690510941225254825039823451218226076944575345689344137461232097737820564450286710160459330424230737787318450187830339482154990676923128704358371005624834248280560334705604118622125578477237262507065893597969250244003752600498680831995546289345429942188409162133237559879243879621420852294555156664229193815207779873377155540264731964315215711992601573838472613335350523106564481252081930603971232550255755022738164575222027194806494064996389714586843785889682883010426248301796251518902036743915833883049084317471516700600433431975647426924796562767858925691135744569135325377157995638588440964952013401162927430368031794706426830024064361398691243051485793618005488804298018615844058976586543205252129991035762169461962564156562508938293613403677014801697528364552563878759356674738765990305326841207565147263428873872804731635147481862251780065740759313558751014115233043481980013644922689867541077279895239049577806774113214625317108411383733063440356582606517361370378507622799176261467363723414796360211140042347145475323724403387238687423797704369123863454494543452942075023353950084164406726489258488764572110637538586611384730162861638927882914868634415565593793741560360687612039624272229552612193877032537824309524472920071571059750852042164955880422854914141272609651899902215482863152596624015326712793206261335825459987594883182415074626594891004834773090215058254281398583853781576785369733504926364844659329067351369207111906976244079992008440934756463259654620496619238157886801936028558381670085412754858726592496817347983727824347028202728124711487577015024123355175042470644405442010624317407966473418892934713602830767240111959934794587495121656370030870312840336662974200904570465654172600199636179841229941658874532464523872773836754375469754095480074319268861341809598355025359806679114784553799651019670592058938834465392655084765287713359534698291880887793932925917936269757948102880454386935465141108085149984629447050030181849657909478706330488188788604396109872267197414430190151411065089478588061232518266480214366119833329288330999731365844400155356440289493922048316463210516321794375628223442229061328243422266702820616897414844368227768574706058732549584729237786266588881788636489937867348385484162105976555935514885034666772481532055182442426223327890418246041845351423653627476583236799926612543552854444795645790854837701134116176412123895240490284396403460990453420429176018901193636949105294533441078600957008269417306160160010657742647231629429626387816322238604323144327966629431403555560422618047052111806444012499891809494145269577717010175290227720410555000648360663099708738301354523510991135688736158432090958767838737754635523729889594357218545603633973670638004487644914457730686402372909604431267056748063075027605028582070707540692796360467492296078001899122961226444641818049615235970392171989115418143140331636360070133453893967562918451854831144893141165498500139961415129998464851338078067139898579474702831985051197171491356556339254712592035545446977642355103593085166013486286705397556813685326138512710165140435563780608611400428900833051423010464749691373844605499187263706029830930046779201277353289288066814559619035552590977836532827194354190300800918187957156699689452641455581977163074693089051731461418988705130447997944734289047999578607690732904623875998231873297544151249949830062484838922450763424134065547480042241525500123374820832211109045844370010587666707136764629022878146391193500469744854556124635880734408792700167843702792479069508091394648872078123808926334277018134485313725337894669936567306636468617143366879163916463581120169837094213784313702474347428260133264989540079472785139638268260554095617618046930277304127061461956736982825640154700403860914052581218796522396976013903152766776731796882495134941297402268317396541578904933643955495797649108068598370619760755898247187667853650993810985093347552769476913429203548957032940877543636149427134578105913666198871012965621067244115289695010024790005377417733291412743251225952646587254804142656984775465345149989418616625274903998846037151934963870985173445753542242636511405118859064529224042952815429997601262593494128367415642796591949008639542695763387751074186343442436060079862590777899632728524788787939043318441615879009331166076270772520907118055004130906296095970863198546474088061403717688721612877348908097721880128690010986944740770011414832204981233923995015585747406362107316268591808466194117126855746466151718808772789425987925948460310904146312209834094797843833072480956926909284306263539492506202728007663756774982805427361950517133441353987221350009754254254351478025129247147024416982997227391360182138838974141323025527807232595990461905450680553028428622224878364713834330115055489506892923403764363813070241746558958705214299955117686818654246134830829856268115525363968977843881889486587378083117408638345496575676146316258720985187219141085147741460568798503690128725650134840233593755240942028729755291151415149563779436028066736093156000955440161262857467033342552106195697531450427989542968416831599947124970996590519072579117205253130874344082917225185854731446838480863218558953578675638634291904510439003642584060325085883534027917528464833427451584716268438970103928526394548600042189388487340722782459475639796666165099029219933930529410814574681496997761096708005176457580158742468547471626807567881026815799023199769674905353284313144862611672277448203061767676378353460374945494188708914597408360039872821991792734825043163238969442539270743297086818241430576949172816172737575821457108329593908609779908823692086032506428880519403918464858866562148464711112244139141143180136951479646422021615719956320487294033819000418892024331223059431280537129740006712070076390228210297726935690543230904727719008020756052977998836322195855883468498273483094270223831237785081571104605238436431094841885711072891720031137665389549275035137369773889254183079534452185405230831469789774648981491109222738616440575301031492698354238331005806013669005520225818879804663784241137219475875949691172631986430777559595745321752191396338037150878557078161859528215588829672880154902103135825068035269146073989552422317301946542958678535854255695992810394561564571066973146911246754037061538541741824874272949647438413572410326281815331413210405063756341928956500605555304986415376920894910288482127358455749656677124502130314768576249997241929779306229181890414235844129589303020876792748949893211584322609145025969131336545509179474949138366764388192104781454461276181676330930296347017251606794184528554700285912293557082371420917401619270246000227139089063144820820919431959485354719638231826602944244046081602396027250703227085727532212895554826348676965781406559288441419254765186431930504377976757906034787725654444428966098775971538094079312810120833191263988242683844795528742584510108603984912632300845666427449473907635746967308597514389847953515945666412041125566443930648925455788041075102012584525846529617113879002056598234330014113642598934068369510102183226434027740437169179763077494812424550270026773022490160801933184312521749596249759787943393369195437666557490753475475679499694008985427076059805067382809765525238803366076889496709628894232309616740031348432280045978234501273187624151080316169120335290658110715196512332493284311319223970563917539954266291846048631728056336401103468659251709668266349636539816405195480317954486200028191297397607233809076525263259169301860338093033834369436682313333186985739154947431411125238928431077407703243965161148767237236461878765252373963860115762778072717416686243392268370725838385647943573401395568654673672239834805440634847156958036985459521563824953443066380657402169522721688258478430845200012374401042046200198068340318775935922030626904186889204714354516020372368210915982719387427310760588535815323926664958397797152753760820392389456567357672614631689667059482796555506364325884406209248011635954054106590381316180685026551834385328906226097242610477697246852246324778874998119779045516013743273589637388268380340893895101931936293950217544359475389427949419915693806511658326695237527330556809314819167285882616769868187580501294598955615870690276781068751335606246489625276733135568988853212383719688860005720522383275154800871602505501306072328813437354335032450009551886050565430884623433059051666302841821859093619997790624100222168059323172887064501067411969986154523799569486238397574374692405645502654961396342336502762239687743620903139792303968639099078171653835308366496891959267819508693656832323656352953027422820444218763651138883925677424227149314706939297072724788154694234336264681617947993044157634675734036257505134871804307230989738166280469534238442851502776443204797596518360830798753084775826698343217954766852846392241316932393403368283039395953830996258970847773160228516065376723167727695830788753494852579402461217764477082351698803069353641701579508410768643109263984994281871339612050925272249637273121851125556382380672505966480918001088381128161121450882134471886095862992829595673663642845818851199220564158659381058043650728508020059515985701238487065149443817831272787536110838974001753517774303455756217940004860328687707912954216830386465257603770219629916437922790793799168844639640210316007132250847881192504896832957274130876973959010710517645271685081967852438657189902109319466493574664189622837467791209044712187711927632665495316507680177785145168086610751239433626137750903685590342357911856792928773714502608725934117997161009639499900810533242898653933118122239485191961204950219267675077404985568047245747829571789290414351457876327605221763502406050952058631270156427432793251296797229487029752581950009359637684189602981688789240856479549180020621908861053430449888307989659127251916155302719390706872258655322559244874404053217590620142447153881535850716169644335709988843706798379110013117903122800519282720931745418156904357366305629547321060872192419361886043860495551728783106221558563994528757784864266047489918952870935788935632597109555608814942755906183543985759458245617239851216994213833908437653080317698664966590938254296174168305716291804876728561078295313897060864572448283918209690117533187827935992880016353697490895497240423036040358188387348443567499538432512126625599400470745641029574482297241024562635218619271744007252069571048882393550856734471833027958085697968260056957408279139173343655637676400879145078744387653550141020968928941323508375703335073660939739495732723542342650512942530812364099751385120335553577177685322799246223585606670047018732198396493028278888963087454073311438471139662701318048784855532198995539380169674563373337902822986738948210747576212330913778828117063199481434153882638276520235992259058512778842282793441133133930398530515403996898831796712522100852277946131330562873982584253026129425669328203530581176131881358718229084739321901255000259022347385951693335993101365032811083346282253645010919361434532221521094962703372707660546463728294598246073078004726845878596779029572487857302908792284904151530472013868837295294560728256856513421279984832767516174058968593579615453429546409822388902819003746953258273423457753063195844808963209849557503621641978834270880065692738678614634691210395350984491447377265987100573948375934699215368743323532046671546108007599308583584472633671579323260708212416600625948805655402960448616257964497652591696257381784981512482425996527803999433788333601878633062274693580629815901882605604459477784667398066750845330708380097129357328216280818359012664877489371444567025068487602436508021252770392495019732411453236454719306340339703759338417588549201487685356344297724528302305419518581089964313030474131879896975561333103662480193558791880645192149019458198075168840048991079026150039375842932779734843216411324365955046547783904940553078229533313150412995062670841118821779839364740202942746551222630872316266551590730878101157306144686271809400601266887984300237672903746861115873905930790474822098134809475435552230888189306085914052784203328077868737125234582496935497350125961714301132852941448027964106163776493866391664896226064328462559143693661189355557265201163224770396577848389115041808145162728132681111582633156196492550379674002882800050375931069951788931519350602932003111542710814594012263427668342046821881053992498476791970639274823874650117445132579469865656689898385961674977716608496417817056840196246866234198559659801204102199227955270532299921285663641861086419704284220022427751826997640064061212997324714706422635622113101469931085787763518238311332919794416078724643473563892479084801208158143776936159836431150478104428789655530810751230231784669042985452075826296229785374337162022935242645225630046244360463291477271594336867907263836845699120841817462543718749611298897778746852202886398202968776425265974754956097516356526860338716707610586040722879755710468407871072647504307136497534747501857452493307103806356502291098980779498755745964410796720324094330924314245156858343338823276928908611556026323869446075399956220416443119845079307719319673802806549683714540652021947746503894873582694535899309165197629538880346783894918959121391892536099156923717135829478157228407409015701506708414539305804946832086766741490623273314883696831872699600129622553578822911983024186194784222191076929530724986336750970738355286638625240615987441338384031829847262635608438611895263675289420907054198576968021444041339063361770772338868797252997920840758677764467146890010911013414772356914526023418529177626451412544626576317420862311299442291840387415882332628355461901565667568315936545079259124133680282173006786910464898696125487151739487772709371641452580533505949138961593306949620698876236608885896568483956483674092970950627888091547320549954465379021618856212983686695091312902060614688803520173072028145073094938823244463109589351713035104281042075324788870224843945488473904375752294574444694352148958610852387206027257970912535859771944798488994887707171053188016040228360553977313589972719101029992577835854835524853627916127891961154379741514581302818803879967771191583328002697563211845129136480663609254985413065519843410742282798940205679435202989011926832586858859455158684760092871736784135182598396767671085008646233987631430608384399640385289825166451292725143394004403046808574879143147878762242165491180618802815882704197444209735566638732852591353305136753395957806855551930192537864546648185812116393041466606201699847340954854550124328121141143559925124360567295455805183764444027579429957051941379713430993512508436631576937253872529254077092361717773895495217837677847630901538515567697979823176713015396853097156367441153249246547027605405116580366670996502220892927192941995465493313715994042617123352498007622972241961701218658031537043823924794141989926259307224115378564037820580011346692777191321173037345099449542399237594023708289505535342844300959803499501079805934232300754411156712695332561298089025852652846025640327426535305673103212414851712311793947710736577449172566046996438959192779892834740596101604740737360168688020882652459451498654955860389693586637048192583240533908945142188021850394830107537794043413995596067369628759531152290847278608553214136586432530476256044557305976490557532360926857648433565585593603640918627912317170227826445533853998626009596450690710886238963877291712861911577707785445208298308162687101318758437562865641495729222680934487264101745795985507721365550024386138358078313137778928731146041493617184572370774519139066066021664598151508856831126279464078189685088280460449186388123537915351418926452485314386475720456956624015231227620119376663581757299827607809893891870917024915252850169257565204384267095625690384752367821157848117010222033627116525791183100259656497033512881998483650438973882113933532817140334145790530626639888623842652123350760390293248692503765052231622734142706639047367286252752086549557701378276640451884316054779814818243688124721768735307012238022230829240318472258789180497430617756654337010571597866180996977797394979513104655677084805095891591179808413951695383141804372109066642283700998550114258544886066513512987624500565598376825325139659514911388811068033614914550588141032036594019692196588403271929870678887444912892796329089031526076174831900534140475885459589105248809250280628818778722013303777455804417449642245096624803965188978067287423662453754699783814864331272570543018874071060366619884889687109459300577816946936504614459181087650775638821886281445510624075258757880726319887649469744758142562857454634139028497059195127102536701407412242576959375904651732091569111621286444933262932798587109773316132874008774790355731304105074732188503527065718533334500712194978535063017300157419480883680222596666055131906667667270140078341728415004862988842733742005650132684029228735738411565567953232561178567347481619792614470614785683568907335005796581458872485148200703526580107217567481582694191879548732969966722460175346745247738910865426682157360283126445883021952818451046269125503284658218981014378338097609078188055223640696791158087895962161557192938730413786344578257665975053709144846469354574663132806814603924869321600898058203773943173044328367876640295111305555101782696476722355054462295860024160652702946887438623977994878662495389383655213925986403439962857167717469128230097342344022715524789977027913418492428821474801197337456267808289231070836232253787377393384083422722307950151702237184919338489942007949971905516724142981197333067731148928070345438420484875183230558772139692516878631987059960400176950905831693539565622622701714742839223707223125289511883150985073054459783216946995544856788514989028422693811083046237736702178149041315360848178460151270028340274231490489158689069458635423166533527248218696753037891518913587998551082478631529047023060940565453814166961300186681940981798065533307443331473377924681485939657170572936464596888294313804817245127974907602623257056924327462866521894408595674388441072410524778550922888940909986900676501157404182735898879377526310652101730554655823241185752039906466636362900461098372095534399256075343794821039414904429715822402304848513653771229230083407003849880171015685651610623277075319577259867390031237027399073073850380207219718727051056805687238831965567068921723262948566919026981456761472878900266510015753263893177646500165349987935227133673736222594171649542306825852925008263968051339677654890815644470399520518498831560861072369355960782121863349294911564036569900334140256484930513387747546219017368754759958028133235810674603814454205307043752005364472852224961583592415589871890967225346798051698646918950280414022200954814734841059211221384006676019359373031210039005904803261930315724710525424427758329919617414895984514860391165522448820025919918594743895330650226752364049053207066173131678088756238029067068102810368827044412927479105832697427167024592551282134976189750163127797503275507750050806953881657809991140682175781111540825602162528702147667711588685766714025963563462962856129800641438277680508405208498008648098441038661850789925436186247368434978376867393303078289298196724465650316272034904904523460554252709453191290547472595777322778764236687266776089378250261811908565642460917215993836160848645616563976053815525743538246711545424983227569406556291876163289833915672243825470946304510595296084267460070516804802488447126778651824318054408183895191475673283155718166051103287085865988944148414689216766914878318488173563327392904261152057016968384010510517092320889182261923154114474891575519066749657112568480841945786946621131348197046674740375003377509291977835753689253470620001607626983544203949750511723886069553278609643372270908799058491617026315119204744857807400975776987663539845944338600887519631745148527581717291775523902508728462213891445395044977810662899562990506292491865486312282530354116681272041170634261659958816737307621434519710276051653783688217159738334999402913505391228846736050796458510189837336873261528447031055222020306283681318301114769609934458930606272052533437225909750773719623328347040140116277888688854707930969718205226326372540005958103457953074928051392586482903052622037642009621083529409242558540405354964417752169406912899097942283470121080424745586572692006482860291847803367002463717574064899994107764726319550719741801404127557746282437551217084337230788308854465276436353848034495676981048637597177880856582441262884890120690758720167006162156496883599950863683560104492115954394783032681779370001063394574718212778623772985198674573725431847417111785005716095094740423025848805750651561239824902155041773895271960628624929679090878927994743787219531731563574474712458984003488864493647769629209499283159637627508444613007221687508797739515523894277944944860816280296994417098034414229365248202095290821618426246286945518868037031610552011931194105575005578984918204239411098253687112496635979547352765798155766215440712489378573974394150339166778837225836906283505735985694297302633960629977215594730333166280580349662913640326901523777982909795945614904637586349805809409291507353880415708812348202230156216160014911410815742984411716779572502860507883260752582443742106330928672792467973280564832160204982924140010473931726080895550821615976217928385742939269953716080801638410448566767128476815308465553782522980926760960883673020516516854636001088897648383636866135741912562690832108385884752414721374190566396987401006721583473822141833989422407523148588113996758062238112399425541437536554856653786073953735039384301029616558889678668375897919585405806317925216900293824124211834330459993372869862159964260751446454979548573707387749261037116781803559394989376634508064812568946780599735031170888687137131533393237240496999852556737474747396734206375914457546057089942819031059037338408005842347686434248155753680523141106047878662775495421719244307014410916715718174818508370559349444558663118145934089778218984498192922685562958156684910290206450415928343641588613087539045445092987547003854640466072900565639557645624835149803868121748433783139857374144571408725230624489532397073402217465068356839749067100664039035320023263287613780800030555106379929200504740467199387713610534263736108118605195228477787147843588238601726475612742608226158366719920007946428348273555359845738947581568639986337317017501821028208334364107346094740691841220584998067134301993557006355187995193682241257954690153843046454467387629424012875889764613572571556080687341431930339603946231387481221277685430181335017627006042078424044195561675577428743125434080700449047538514992116830338182496243978435854786937803147354299572954660826927890943513120876111026380434250981098607662514442197645199644892094376451947203204026232259925694952783782813351918692097685009245576923574963020193586986862923068426182700363891190149843649984069754776942320265805398376178398538396927981211210142000314056782413592820982437985652605679243199673255159879225834834927504657676799176511506317023815015598679365496096821494866534648804674796633361899249683632717001244721840190655306951724731752015773223585035189344622112734892716931396449057870869365389253536261145745817604140444655208907890127767009709969784121117875949461673716787061446972468258931533046947641844152995336638585077229146315156873265712713363152186316981680788070359080464728260076120995229256124522665343201952133516765144369014832173761316770001077457869411950555687010101475583198129192129621613522890325901579877531758741748301480528057593688239196121289935600029143701222603071352777516204950923134622443030738174407851125332970264699782191362666985945187254930757146788724490621476815234405122778761513894258408876286584023872294067224653396751782827619622166047632255977657427984757639933572583819073942778519139385088402813951552571990352052382431167053030311365708960455067963003304662351010337195493959934477385937212017077900707289892296509491957150469463745649761645368467484366955621384983554606559891695234032064167954764225596657040946832837490527420755186632413118851811582482283998501554421997287646477265544913235258020186045564849793385806216855734089244606326824294037826379523641838017595018488626988096262604393912527946754867859968226444938072193279305640630166322421091184321439798870495862038447496239050842998177983827710483405358593477894785641872072899635567847056468831167539050094686147636961219754711516697814841242051591505706262386323173590159048835239070675354173599148856126248435021271618553341512272243823435064962304073858464406133664677352220676160287148947082321620731816611924699637898725181273108638089830112761146262668029382105749081524845217874598708858603580384469679309868654667727652097396884206480400683614813878832420024867451834965046716880462698306328618396892397840832504124041780954930363460381066825467264714936302989139357386837279318982381700742960404762926793018797337650471788183067561843725377745671622859985596465824014912054289033767076409360545250051773967023823810035419949372186307984610327877659801458182374536116267544681815409168878781794163969597128009872319336319808387896704089208335332675608487159486601980723584775953745913243654595959627818953322562376168511841975788473041549094701296318120793224173344716039451847025156238201368901762427293676213212112139123052803469853396883003253808975420200139467581362733304823816231909278368202014320861098540287429646513404589804568663677318335469546200980086842016859424653312557465203417240331901963282607616037638680475580104592156868490221586381622480238809946240848979140807648686830430925662702278727656942029348681967309333306784329660841301614858134887743952452078486980499246738091742504220190241816056216897183309992380284506548766024956003859189620214511918695695216005094222694744290784349517131019583914934514611604434205357224177496159353933150850745668617643550984953919914328809246866986381022574348636515638367676059993649105716261036256674252408072189683180904248512381448650937471986987838564928594825791273069567298803770238905388534214945557317005908825028148166122363930971174073873711853511873244366916522122666980289787953950428542685626463187384980073002951106109225801590473270684637419029302118904797495932287076076369236639997150914636314591429812350863261899914030535267965793164212385152473351487482468901589687705738891693301605753855488998669497028599892607589790001188757005172687708508358114034174775942073820122538181696340348509500105055744490661997921210975149957222796474389726261115011694940944949769352328157558292458357233908381949204321524058310130450193992795487428429515540401042578812595205969896342104761465000153931536720277470344622885707322420867985292262641497245220475098307431891291773587202573553190783222069060797786455986616623910671125992049067343102745802398540009126693696648883472580868120285301755938100372771337442058248137095531536249837034052956993885995835048279473625985056234616575001976043785297308275475381572511513534761000388308845061242427663617542913118291051778600808111908994591080447295974933961984038483128736252240923939593758861391404506005141331440626536797228829976690500296191054554285934761120431578735129348643992148059451666304254321337508725778242713857221892295391808510674805191652863396916660244238125325109503754755774628574314031945641469748833203810928474679248213886093454930587529251546272319500132115120149683254165669096995845239495207856187342318237062140117282293407958852704434331703854637339083807083984044736190969041686280483250114715431091656773475918922121894087377224304424979053336452536441853201820811532723183793774312297078895985296465767548535440290756365361107818341883047326589774397007517531553988905524630986663099017753336614752503359567812447754037645283790176289470556075375580590055134070516807923373491602589631644566681266583698831709029380585910806794784995585286587424356244369406059464364522212351958241695666902845604981209531013108654222741529773060505580516950465397974566977111719508767308673115126928295928762718691999096323220233114630264772245466249597652487586192724627681410121593606229534947623831138650440511695506937364366174259980834967794191989815891704557093568394389522923290615727066306462707241516717032914177826839103229148451665607581082901519347537362239763967493080803590179227039507582649983267357196789517306832912095306387425814999542185262093272142895300901835167660582666293411586651111833162940111520553407226396412896022759846308312361711486455557072540280253672338207330510771078313242853746412015238681501683873606022220724725780306564619632530915209149854459868013709328987410556506252819090363942706238831281805036679790842325048397556730700505728749452858398507462508366485977482756212654897865079283351743197219037115881111328398098886721791984015575594084916024834309281711443630937902366166056043682680754867425400270723392303392603200811538689786370790787139459068414197139704596720693147694171791635744998414808519945484939069539532787452191145311304467703764211604738774802212377351113471694792670284433866793892659626379702540289267851828946453658911294225969868356049375958599251731139261551901162721771994501801252726763614598841287871827716798599978339979957561958719117292924138320241280703066018357678524413522747371869330466236358548159325864575220303505554065396858644049326232762143538783492166549478100253571602557882778083158031270917115884389117283004453594685409133105013619228257413389276978927427480281627977766985269617978222157054557712289965968411835685152794653175424700416049607455201862267394980230269596109568021153212499631851733005741593987730660444376812354505950994190208744587652546214450633676296416945554706871968097844513276463831884741971755061466627418281645941978458043703859668540206781352619195691533184809247547525438539227538484823775148938789779487293502198447604239690358698824180778230606219233074731561910879420735478250994159717228488029409252169886614364995361117493305018684200715327061713510632143950676532299017015005002544343266824513225945901779245705108926516795148935708643509246033119026171962643920184213248939445780103587168966352102971752444313982096006269090297385613602761155131634940120249539114179697953615507337367325396061469147455061072504156304150030393237798632535062643480174573382760266192339155047101365589389793199374583477288503595410362248650846319053562923116802677286428378840273382822504922409250512818220057698114795171091048916474551952630700341521963190228798979409024735249030597004559358315732103133362700617798794013862924930162281338411429185101609498313981876152894275771450839067865734785479914020682406102429502614745181002791582228619079210364257799199371452140010159482903159945560717422994217066472683266571590470084851758499661016404684720010274012194534889521255842944895282868070446012227603230768422499480308209534897534723773718608928221517402584503533312338209693248809668615622786263770527662571572536120318260975434821089197962361528488545488370611217414517154348080027694562045127276720613020254245521767397135928483406215894359057284370601372426452399746046215811030389332637756413718525902221746253251017858370112323946134893643926208825270513127629384104972238092287992201676484399001229695389167383482896352660772967847379314404979822508751122024498695417834236586340466364220306763717975122933216887140450307184169781166832527253813073649323185538611429956118522560405976450440286427764163906923153658687178559597999693185560631514010765109708954052005743751441904109334177594401816162736987667289090281964528105944461536997199104931023558288264133070368837743655366255281566815774958427964781682302702909917292857227043448442067135210766550711610584853211646530573175254412154529487508420313892091506336848772749546379039389194283724565095221391978933390580934091864432199272060796861871030749448534111221732686660305386661985335795996264726817004990741230739412362759602920066355421713724119754852919790995558514800330037894100974101090101103004051486407082535252295758365919797865955473525020892223528980651295530547576140479821374716334069019112464174014447016436332726038281424452453710361227361051731815010913718790504721579470953742053873742769114919351720001603851157505585771792261136306802439013817572538961776881782473686445389879222800968736019234938204699174737748255175448312796023990105977701806517498822112145775260783676246176978015779964127517406816358382493512946504881518868872125696141548764212362641146705042852154404890901368983563677788874487815098500597097432953210711334071832381109382466813183121250731123817731389201444439077050134465537960250351524395662922950470877270576206348037028994798205205476275167882286397666953653580581685208860829408138869981985145492760213224297350996163266663364968206323487006678226297411244595420587306557129516415450990236329514476238253339688432389572771811418774297460358866294548355641875895009392913553073310047768176359358941954730526417109102515614143320557575473379444535017264063041404889871525879597266380275281248172870652962220021791937029050891114142218779811426411366383298528519214182010874546355503467415032571140232784969435261632862637552816459976264036515122814101159813890755061409730999426233276243867250740080559857891931647300403237975870336547031553561286535182266582237374174659066903946541399640666331297439791024420727364255952193593799171300667164765764566121926599502755417544446964753293664919027403312918165545418547143068620968193132037120400477661040319598142467005559223609568941620082864213088616771649113705280378487748034043336036323394690137511643548215573260306442520088550566553849756058750085933706615024002013390934130671422844533453875858589395089578775432104314032549589597023987866467578966532630165657761229878666426612999755833018869733550213708271001336186161994004016261495769254447082509118801050086624663318574182357525196719118934425814178550046139575295489370499842570823429507557517862164226380241570756706062536561216840890476270994139066820404964670635314845565638445826469937508048273975828015263139382724975802267340176624239011426340598562185755456281438670953901103018047910002307037672141984466458078909698080814729484869477379796386948465344973171104482516684207657521565519355088991623944903595246543286479134716991202059653814489465474562015151451869551286453328746763402131939115761937503635920081264134849788470614299381376903644163009368360720767963847709696730648966383387123100291013641288212836698890131015124119839929897240271186965667518147025066205119128336219613242516386153152106587266325025976421261551699996624642703864214362687132193752349910685181196484232371580306766084027858435906176329582779873839684062167029820875231556958360980292048214390274326451172426028945619510198044519796753587517406932051834203821871130185247930640761406839065087194966487009616264316042375136602484370215438228009231560833384525037977954365674422609670142838057331039275566987634597796379504591198569116200651948786892722181192228233637444981637834653233876590003362650641784059926849974111565094456016236303224446243795097180272065211317613837843271678142128764008719763082713133526775124392923938360310062678059328651705638653992722786158584567144829147994933232109939386047692864560076375090116538220202197663320170185607503908673044376432186687714272840795916368662898739954109538091020594000900963578688220205595306955634974454871217112044305417569882757257844598385865271318325632113506851459123845670838484455843496497809038951140935302631099469962839935473979254330619839917267452161794396269594736497604972453923009977466619639896272241736282972180979299502800814012144805613371001942846254837418536565568370710172606076756499378248031400268838799579509651065394855380318044466425725622518427681556029704283082786255264413848818533352060044229706456473102162391625882750180709992939813240527241037456265017994859385782152682418387270276714575903436359578261422270760911881335089575484585444053437923844074859656843050317849253656677092188608128585737222836078670433417810355132485661359537225630694181702768356379971933733506770818355628712165271978627368048820037985891597319354173294213868690070758905546810471586885481647624441350244855893243817727672645982185042949454563286003125495584520436433755030233297038615764294459768986072972531031782509254008082694352062190289751642437819292076936776454082748650273278771438031194164338035908850261568749515596425530433781030239885839219229865881527516877617322931269324182549437096066148007673341721428149922105517495428850065731132015954188002982244326794183175434613869331839369750348120797613624641072306068071262644579656864317527865043758212960278062828936652431365516384135239014182318750102959620727226633488554995898398561589264766392569511334920552803409665739576589931516200801637823209997502339777770867293866844008596378747541931588374303050697409728558998025387086448455880135544798385139956018388671542756294182522659900736919942749202284293082564381378128926385826575430413464880645006811505766369128187523608208573703409280821902709074702723747684157032165923836828168932713675913017446874412267518837843538660920537470492442366950701700202051425415250732702565447857276233935556598603078370569542246260226791694874181630276510447628689554870257495974917966893103801149384795495718175081837847189989582928826369664786290581582881544977099927839225179252366656645958217356830069557900651220395327833885829923567490005700659813731186239205559346247843823498016759307646621679680320933547558750295907424949521046126007133600428259434538744405880019870721445939219616714437137242087232076578963476544865624400248889050123622624851720390746365081892660289956739676407137501670146234045157830578255567420864310838478111874754101577436770402746422454327642664357754153639979207709463540947363895398327651589560091101528402776308685225334156731475563256136218171959771731145663618642289225177808089410187987448081699640739459119586018252362057640032884515211518942242467459009717498889230483933893992197545743180025723009457557349686891811369089235046316354821399148613251984173205401641031261761481276490357256390596448364348663478355940077445678876874805360310366522623753148818230779861551089339694825086988603439998603824023272750764103572430746124817757396148047430355634861427587486854297650972173577421381644029405635799705481148420470062024698287227641322317716806421102778794769641238006930538224964682974997132729321126273051243370156251927010093705815068271200607035630298236475862587340951621734055464914601411357888860185141713807352209238664139210484874107949301014796543202324074294060367034228234502022085656777213015648788116858874995609974206419855705673905592376098399054549677780143092041838664096571375942527743142062167044136070027560898379436451739072148333644388096939809472749534909272253273620987105604593443942633104448604239749508891833657715679188587821527719483242020051376267893093208102677652591891875870461737811346625656669672414275403672677464522960474326965482710481423001594255291323297491123058209730985658073674414049992429798073125894539065189334950713292859177168113492644275138678347514598506043214877052127852394291470080986119022668726323424490525784601232264953000161759638608545372489859549358572054103137239959052429262023443344274082746563204092558012866759487104507515944990511702835115507383425311281805696627326057009995908674315716922030763956642235188425384270795783947383543571717828396371925420631150492344712793845852086871178447829254797506441853415027410221758897697969771070768330769542103175517277686777518147700979361420302700354428088928035426383767311396562475133659490106762470271466200608165169874573536398050167200354232935882239782162343609572321236462054783892268203453149284995296951707061022057702110469351066017384753228895948087184730138909954010765092805990444397960458511751591055557106345006033511064858076785466122837498278903694124485174782622988253614811527116487987269682365574523191518757369686089684174962453651222406686497938254687414962372985565766589505641112970363050539322610403559707232042480688632034285456218069721319322119666382820355096906070638827238140407643780104556412921053721328482871726264301021271056785010268883001442733742052750507695219424397510301221165896859364600193138438811645827409697966293559797447866627764225172018310598939889978759180337368425043619714900409089914810819088937433454067625134931602276288116244296540565451386870264296093475368608036119060990861433377542912374800548419887420586412792704642860651081406770962368590468711906529431342742039199438415714437598612523552165407303572494767746775494684877469899403598638037539371457984874895774156738574831212209113085975592299835271399371996755044784314894584072382121518880404157417482440109810009254060817253781197613773641119443014660008082880058793423366991601217977527553328831490334167963178359390578458829901314287343590930155541911313625986035860639601393855066675535511178788380188482665557492190066358764624962671286394338517651773895823314093988460736803780621874798500372377282966399816645054695648326239706179675108004941749073871296099611138622903980923232484169906573054508964967457230319722385020280193804565482028946985302755601283089912962573000396481242033555165918671603169500675739457794892921003561181483884742064942728550558816032329006653990485238298400047075307658303707107859401086515206790882936439342936611297004749948716379549490400643350961119813630972779704512660439833160946743403181114168759683882541230357889342408015860062821417746894775939734378850109837654493406609691126369458812843390280672006146146997542711465275963860137131727730173656115156397148112153705196670360274709288578789298774107144287268465497727197628539881055832793835371463189148351243799628630470564337758406969370268604535606582089176319615443612815475266097929254683315098483231019420999386462923703227748610152036190555297274923910455253550448948043878469898712875565097859188897751126685672355838639302020563317187443124713008616600033038120435975401082570797381823781408029341728931244448014876429064431288539173724019648196061480625424359746954207394234593769619553184525591167743637328698756603750214234776939324732733494841466053905905082747516294609282804238873984600315521577609657195736372664770852670204649453246169900026726811402895901463528524721343950170917000663374992012306275506883903828213164845214568275389943132591736663347162715117700019376478618980119848645740720753460234640600548738779203204316732520287363866516748843165159662676059600347039716385617868616301330995244390641289151800412514004373544574177676719141619328830272661543509806754934840521106448119185012920998825652225918830154435659178284165156173723876634946062598405788141806882052080466167327718420108792385600538641631929724062809079859498063198412403297364988775523591952598791136671795757346264243139278066874068507874281121257291577991793424112634288045821375873600133667526179306621613198403675794224067254719186965798958473476681781503552261818837310947359609300266578066479921074520808248991424980996583518653261509634410754814131299865156691942993999798260350654256988313665188744106637671181831465022803111627200657591430150551922784178468825545807550649677467846088249432615002033029485042841870372568211435949035347075113285869157819776513803681263465701933726546705660297756833986007385141099073808430472473184926488737798244459666453370282951604219914715270547306737910157985101489232010973737240837869350095237741780161137603694378191944910790447848328861873912605219974698536769432505017429977533022883300667860288292833188263783844803450467353363408192725319528501311297591458319275770357983831651744023943254242882884353679280720352455067076033293995114990421534365221305438411650658991497382710526492071817552647671401884095037857228456783287205665689545930727280931218028657870519204397370440536812954866484668133892260153909205416756959822818261055922005802938005444980593692311536834521495896780570779135427293147557535960869626316705389007916749994259923746862610345938726623957816199036706012199220878163617782794310921876011275577686780499328307326871175646902574492395859653873477746047270780712267720302832858310971873098074661700992242463274491564110455733706136086712977074857084604012620323781267044453064893076799833233109710437524996878578145329616284770335072200174680630357008360410820570830138028324946072547889335143922225039752800791057783553771042727525560964841200106463363926935020785716251022957622308866460714535646783503814822394699667704955294232805374133398186727497618616150992777714096449278728932113948856837286891014230099162676610724032325940135355890892490769716735235517961576511674247058155558137514820273870594564733477345817552807811634230859384571014252759826860705216396266388853399209187225471912515934671671290564701198779461874874954770245684843620145038921428516605732317691960097095874493107583218404652548851315198441669541768085283766989178456964207818609343983004815685569131132842160310657445526501623229763076610443285067757195715688177778304185441134935748360867509707455297559703673538603097643154281203216438615847952356995171243330334113855519523352581831829672718380378349376857001062155188830859179965288588151355496762988188248746908508894642602799113183277224402109659504237085191011153048457969320499621481282346483767807282668375412902025729497999060829786358031932915840934622827700077951610615117829832803514472417173514300545107783599630776178251721611088349239415546863964735171238339169119681796677169334928878125508948984110835173304202472708978261551682713945276259598294152873193472783882262377845965386843367272349096411798777737019377456282433921425162061746750494085999140748309620345251115471514154461310176769188561544828831692600886281592825157324625141749251459383005508646222952417083448995607837411966955202465709546419189967014332922400756854627629051834569083591103112409764941216310735723680922519193229490292955714206666730041610412653043862655396814186121352549702077369962262700761365973815709177850410031613143083008767913448807246916493832168182491006698420111893861798210310784184256607575176259215467110935715636369871605961174211907354828668694680091026990733321392668139025305990667134871917540940397576389478953951123720563330722357871825130502280915689605131213321717355402508797150976622731521690276673325637880755760410854093589201654816920613084546636051554109170799828602988939871323815533808287583697380712533850685763672911771126317157386988764961165062372941258873262797356205701096136314245725161567470501915324826765165644234095153511208715174497139628691133639959912262406157461532733109090817119351288231384986377587102263025516379956280674559152979718550761031154567925932585288570731408337731641524600060267935979936865254494294930141712149720056061887642089970488014714225102749453903309894460568771569256850321268047601361191078997274820007943172900343431826977502724174606734478222949907050041672106353150805437027223850609111187926834294753738964539196195412163002019412563080880557139676046239964581390241542952537273320054476981779768770956426951757541467925113876558198864048292360432268919955418259959596552866902433677070563242671365344590378232095742056914584072793196513431445487177539110862044677083367667670430421366848830671004131867698927829214494594116856978367970410225927869919562792780084435748126135674750055111859690990638436636979298319417698168319578449522298611613993259019289953615930620841512027960434292940205498916203657477502551559080937816441502240992258580686211417126049466581278820174892382347502659448880978392853648705472485940087030275420627756196157903383578854439191175633885745893508703800558288499060579135171135176560651933023013219606205593978564080542605496280866292690165040806552598527547205616619286054269774261349450251180234757009466507545002567193169497799158328151016378350069324428930330742423413958132629220034136348952440484769054938704467081754326285245514402765869576983577376276310278907876368724814366795296790306766039227253129427784475294125510880601858241997073871425104259031867981197844869242281544542152247149213684752233258416537392343923058262289739996495234479575005419980562983814749188336717660358031597406685680592608978870505754251957106510556960644035499846153774645767800694824624013286221428546750748911791650759691531668844548577570534279701976536807167170813963350733916726985155727409543775582105527400678656457677810800992566907357588372074654112324442219071113160868749900940563017320399455665130667828963327818613642111476969009600153726622794600187453129006335929339642229871825860476613621196645599039318208231804325053298234541644968220781757958571868027762332687675817293200513824843130515234645556040266657624894017610425374188970740699701402574636987191908217311665464994794417239029683298124916649045260003746468398346082529197625202275938570023765122381903808366631478559797634822504640256760176180948027176306396072505381341459426662791371441073787801145151076452757531796582837887326730906088973236105985356740099946842034578237855120207815364879802461973102747023490239568488489653178439620761685930827112305445843244703062340082155065147037291918975198174300295455594494356609944618416232397103351479295190780042392440271747202690991172893623669459413748396675222096823487867128545264264832404610951573651252316253388401795633934677356700402787788387774060763655758969901021288940184590331855641751500433793493725189703814463681913496829682035178588594130115776631903828730183449239358114801818468905447619678613526866486913182824018025070607469215563231777164208270376954974604535089641173369711290059035714984574599712877610031975608498194645440273815845999921783087824092474864568002630341107661445766844440864165398238972979987322956609541203269310908617785538956837070138867066210348345735722327225540131143181977548895369262222992835220019508101294179721569243143745478497096434810899766510841837450250357035060001004586063402730480489510620727985910335647975241638060534124116352503694415172412348765241865718675724944007516950640676371009589864316269093675422143974163803673347817947527576718169578778424245816397387142642440345679240336548662731344344306550852585288044498922383898326496361664663597680072645797991514306717780084752967128813838875687027329457820577293747766710059848712268196595189769115696174631850221751743063260415731979391696852134702685400185559065792684573144921784762475916776878074562501352456048292376760634635929953971471584675137763742693834603656355376215440638599474328001277289910077879292132208556100233752102686895056948615068457546575374642855620295230094826681302769171282742941359275253543563496014903846677828062952314957846565720431587422270116889064117003135374394245211051876427030069467899851277895302665374175381771355440532797948422786031474906966141443884395819137416858239592029591292876640258352947449416966830205834796606618319391454293059871626379448217061517339724296228227595760050081060845993133024809386095845199659977946911404289842110898301404536506804746145786652795759541467147630862243191396126113592546869720197163870078717038088151311969569469910035527009797211567931551860261385415431290820971047086720613651267492811097615529124098911189268907639206533163129440901206182529233584794638450471652330820151928794330426346504411759923696808580345326098310865621109592995244294221388210878159203501066481743164267998599322632410604255488381678608305669428516285962053301083453422099272954071081327859988901574257825671384986971476645110070621977671030690646567304309103922019130768560794695388378884223887048190864512631007720078511950573216962554534717014467188510242762543892871554934931353761968134138632015922441449514503934352272928749071600983842496904853757994210472992957037016958813021543169436474262526147519269981309421082115809717422155448181404392062369804723328002519690372649916235283840184503974667142039388088597765642227029214267117685551961908209993084895286106237372913195920948784081738148785064727983925969337268800990159591284156505514812888007710499331139946517720931887995990366971614130240891153206260817624137066184037534895229360743277206356117637942878765835735811903045092460058901314687413293954905985828507849763097517085850471839696332235321529984106229493432990618424607811852378249981162681674422173024825393437590884850146216015928013416670148319755274583846627779362774669990435539972727850495610112033295796071550540795484731560831687527732033075177291049851187702054197428354469902459628501822227827144469020308809096735737404409258976006932386157959180742264162744041386035393306752251836758109972591260449533711551750928082611517915890676617978200506851566067372769780446961121433006656210398540292821651513507189002503801822802645816364830433743282585579468180990759150500169048132742009522190687227346806837719899104809554121128717097167375287205165657227052892003264271095387085103440774313001603583261309189429599114456299962462498321668855573368730314222765772583550995425767568844189659774476053509228333577346482880201788462669619815656622819269921549323659606077947971862370841405407508776246962281535551401315466091794892863626141513596290751175262963574420150738206482576043318875374905255187442454515958070625709533457968144212682666902730495271449943205164777831192693785680835297059720624610674304120346670758932906558783371601050407960970224341431302584889796175001587579539705545286132220871514024007740594465771247130783087588585290063886253955934214581853481352696078877414019462098925184781808285073421969773710512757015852377969903114310266638795380485790006634931097128741347058740408872865619833298491886046472099295811700429018703998407881825983425352473243344582642200907245160450451290579663316005081439020441976198588981602319209511558282955664018105030439000838532919452756729717444348999135665512806757072153223454250903635011533120243640938587924247007218390600044209540548778286992086520581145711171224391285843921206568747165916036605816883278608861071777632169595476022405785470312832910665790927449795202713358641939520779171520502636872135402959351182484951915848538105430757504199044390614101865175129365109982767234561399567947031235021132198305818140261621027441478203358671403200742419706445260603595468194650636758022350769699051020395198298234467681198990132943642460053755334501388243017345451577891610385121557086643785455596398741966388835287842984456936188970802858959505153599162060621495131069207286694125206843649529311870782906188840387520533614979181625854332093392366585584735309523477245723038286527683273233540553357749230666976811550855582210764905517553379840639390736392742746055203915107191682404070144536920137506927621394097162984400448988155751787062595367059953793859792066098795234323657931198506200976281183613397141805207819924894551068518869827464977332820933224821395109771142638451938255145427236889502202343783894614762162595512395889041347389722679237607906386258138708083733019268966024785443520552470970571349921523511652081150797961893562588222643560501206753905071992781681564231109370606874009499748534953064160619137000576548989997315236902952795376381973528107508912032416377226601407163980232168996789936246414902120487075436142154080093964448595122853801521727139956630829966173177467835496217412637297501169908116971533203767029948283298040683795389086964669886600551139668829347673500881468352784927323389125301884795886466904110211260947137873658914685904546255711897457473826866955266654463102401709047364356515998768765114923432813161120533959389919568966348939456276833881093895559094017246176857457198758950296039127395473667718758351061522686450397327527753812305916239277012549756853066592825585997995445012503736319080010513206298559734434256874554970357746215295293712103259985415010384179065049650641857596470494276211776626292681178946028207173678367943231130040604394802743770638028498310470430805136532041154568552923208417835243185267755786739826966290138472386828723525494564469409821897994765785348800577166594319294758055804640445028997471428395433751289250708495325110544572600754228958182619232346052793954804708294782581828529477538926347332005114929027240385197212470286374680800037823570412291026009323028476912626363351797997918052097258663608620023631928851190145401059628283646738942119619192752284750725227105300045330969667381202530097200859082832754968144034411537650491724246473532725910893602250706593015965527114556971962118740745604802150623390255066494058962964297349634417564444147621909979941287986663466689641148882754409567712407881862225141796439043475922251061358777456696654324944893231342667935527336937477034006957932276874372921590441767219617760611688177010476381230422391667595480838591620240638081369830911779745311535321440138977968152031272754585753152862760409637121177862916838255750134503445222370452783946730855321770947257042130093121678143561007070798931915831855676023848309060105088063807751164668842266673901950712976935491360746249658977230973496184575160426281938667563005424512753459258942682988879549319822583474622689586232120716939103539475975433137814482126876586939332008278806904740336276752052021926291061735576976467229871430219863533633427166011462179277980736475268954187415921419869969928808365249033205776717178968565944446277741560632693731695602663815034789654340792156932008993231510837005051493714925640234612168860266566587569632900998170181519920978330816213380641674521310956463330877568135272432761414726457986020387806523203423942849374174652793404166048452859347622922054944015516364624620489951951084043904774594624647458207245747963753350009788605659060658028698088554426979526413601034523520560068354540936978506639008187296159234877244932566070394043462366704459083177132170215458265593689270018436448128082481412065177111924656906279675586554817877307097848904137346180074570987088242110541477900629922682378555520000653457020658318750529073234487713752277185933720288944466389716768950117369203963109755691883233441842735743763888488986138946860221168492859556700846920271010875776244418781406369526133372874082995144574038641066854004735709312599750716029223631143349688259368313124395117213493920080704035175504888837153569512635678773383747760172890081085065279906253264969509193019047051472016252645945575583957694426149918052331431839937463568809420170660750240623827921590401273619297342485816273551594666951807710162497311170490795647009035157972884853038635891287981047806437581061564302187910593199337636662010785359472446858080444023967507975701740342360110587575655548029366764990343387141891237801543938477812350100791916665272056266883487783327976495466449532366657390942482180953300864347053465660505319652360304313222094547553230002900811701491723171693651044681072122738452894217736797417139633265353424500639431448223929073562475744817717208159113280650404476630898354574998713973174244941698267998476607442732190393653360637504701418135275366457525970563204285794167058068081763593917931258877963066268165921613330632026788449905981965923879456720645929398925048610628434821873823195980615039084862510430648636317449101738464846630247890343443078280159045283834772335807123815915501688905808317949292068415377209277411164349147740636545257421859357579702936205445432746323620453555700092403118415333843479429538657209301452958736962292264187038698814494806427400571973214838406707754842838309448490791056680089694624050163504391198748863770584383589154154013378357037717535887605867394856707552823879209964309237728990876031955042801470870645381658486528218709729415138108032446435904067675701537399017490584020288774754097215824632119132232276230697350950619272719759739421960191241208571276272075843052440180327478312630847011655086377293929504446803220529359491540293146353797076213665648312664644798000322836063684245321935529978553504398881529253818792116019087323010375921388686713506321170697365477300654909722377518637499551959908877707391431120151103140958708516170416362059441446528646892080425886887989509383255474038549252527433441232102170971977374716166937484522766172213072070710298026041542718348875254446450716209452582818825404180045101042413392804231666984438513491438859388039014093669586452293370138790264374871493162099246968983368185422851934038844201050426856125350321078035438630163166233376796051073507989671165173788256583615961184389389055291352303941046976896831436992855702076629192286194291733507120351272426692846303867803515996944264216157034685457626498047793277037130796013667206027416823328194469563624832815335990775969962940630829254070122049500546575931246942992590582768826598051999532923107561258790310413131566838243136402256849203980075923940295259618723141208306044809927478962600838123845183933251290769752790398663783923997806117052933706467119803940021164709385745268828225313476911156981052705795752702843400496535047025636102748493303623481541133737464207086878323696281480102148505966684802004155906746409404726519793673750483368733575470048754151836936572259930587034536213985911442395201247334734003650002537319445583860651772719621609138505787319617153556266685140207627053664474697099875925368692940054537906157959190114035870809395253225095513371475834246098816198449963487562574364064820385068706156910104722409169580301216783630437009543216395887302867237562218619768369354354059019992664376087706259714594864043888527647720305052827467465814631121938826809198873339632653283937925948741467252937099421113742012135374966268618701575087349820672274839442850409030696819547149811056047892480891401613194741313855549366774694430966490280998532727792741389687811854505864033253586508534645614110735125779525308189710030143866406198052611120795183946513092526127331462387225998992428458997286396424621634408888440305673521377329902431148355513663885524940978756363472781748335244832957927848325843873938769534768697271502697433282652200389201875721342604809661623024641810566207648985061117103894831053063343861452115772315445630625275575918403921754981955070180477425361638287165647341289896082334531420711552050979967897525005309074367478238891952501191956338089275036094975043643239891217322751713887981726627044187848027589757035603633494858946264184672263658397570646803377582818880375051407710412669654133342206775989522525033337054543709254774014521980950690378168795932719282657695180113069173548569671136724402182051086554770733154138418168822617303665057035006075689718362278649628294701129706258806221433469271056950033048783474127231230404522820931369734891274287790889342625001592510098523066767872053707741964025802213969769509766854845017931103309290460727102034404589917220055493211556112707948153475054876822718900828141173401724121491637506575774346744608978204485002925508343186865212828417051486639851831151758542566221859529719259444940764874121192794489481438108920851700517560697030070861356174800912751363636518510561236039911287442816062622116920544471393424307111517145169231178424394062632251166911267732233127576100594676268824471367315439348708816850403950360181273222929413558186864750189453596554163808575452899523152586241441547391112268660237401467162158455173100479675671127556498385445981239925661542317546734819535773813843515202815123068912018367544788828869565377784538678989205169119333111755352024305326689212389626712716767951839757895948191306526884577381076042162302605203992301344793571202794377790586232918678847922855873535308498531844316769697264625753548783026604578066704853301846564164428577832247005002949668569320656380310563401252466892197053317302998354831534334989980611549561231096085267919721005558972932247573370026074566088336577785770159012707966386065974896712412606714743830692641055207715155099949608199232576326609930756145613505801228616924543092708710884034215456170933927083978486060054929301265433290041722952394902669714795475357572275125018079104985412505951128151897055965185723152716250222791862092820581633844656386695717568493019454640136659564480910467888333006907048832055615509253727174310262181016263540554413140081804483415619132841176943385599916861407033227029951115948678779191930558533029869622721726847090806766156078264787191440341216850802992548466735766581525908000649780447827718690874277583177312296566333252882492507733464932805048176622679117906378478650853599983791816156322056800558858749457716053874660571600590816066542960459963490918624650833528549382498562994256255302165985833615585619929836766123809663992129532565738715019464073893368031589153904925463722050913429304760847463566596967907978956170973479251512088869311317865236053151727307543109758118415593690374192618180204995140675687805709779535703390167966071460506789055510109296833833012835281987366590706237448876126526887470873739295228835275865327575562168774880900538821947519524813175613871374269800092876805826455691123002481453693253425841853267604408861640175912168681740928750481301589886334215266702917775321190226109543603887654039964795282170077034147580505863909775463596763404263366802642719246357703522005524358387295074491662043574371613389020785721286644658853030831138751102431530395200773287905765606393701172508249278357169009314142336453547353027912127074374511525607759214618553377572138561890035484754070464803732253850138830808015652479342152228778971338697184428373051182765910836747059637187979860069973173276885581642401655975866292279163957980644648356090358490120922159470419744281210832916662605310509831682951912136125849403526872139285997420200771038303355967059351951792433199478698763360400955853266620619691563895909734327039068864394365434699322988948761966440255449459782338981935136649570686890771479127870946696456104556837282399841543864930458309130019301611114355094825407233168932286535592175802325357022264414891943725864867115681361167871668815123552485848737539457354059948413474990751772843516942865971692923970433864198195859822214291269041148314120846417004529615502704698145264772144244504982712253653200773757417661699790074133543567483641433086369879126085545165882592242941753786257726865883000950139341975709487644389367272778867162973397550848009620114422096214373148922435107414627426983837188401577673440338619121121989250462528487825196037116511643755964078260987154645886385273713050634460674158299030918954630512240356014672324189535181936232875436896026079615287679913097346670216097161708702834498323497052676529234294323225095588734793443339178760802361725673450189725093391547606113742194260395021487299156712419672071181575696520275577200557087393936339195404449460335239064259827751010818719963812442986046177517484107191383860875368940194374820221192278974198691956259714402949250999791483637516565847781261623752594165413876514208796156561713133480418444843154189251616346063497250519833669510744478215494448315475885931128732403329743521367719300700550375268866466611232222133333780346377252968235100450137252728831466031043494454911206803093659027284096411967000476149800190152632519366119465402930787178199211537894424095510340739990462578087190035298035116474252664047110987845691645675775831806576899080510186061399506195334640656886577622448973716517854118713654362831785964005092147775308070405317612366320055054959766028116105469402033822832011112457162162040799221397773226265880076957857036654267133575685704356700125977441873644177808543595333742144427362597654036810743669358630098201500830184902912654405383154272253300744812953619243678978032329829110869885291601780333501558861740487957170128313009017014641463884236663448505257453974403043395062668019954397568942548345942427853858230676255956710744914827166884034067238667247349225482383994357618234888363267824682980792309277121230125851955838182402017337897569226886448866826776770189888260035735166166837239262902881314401598369534458540559686543812513920669371010801855535939502287465647651494407911558541475451559335398974303188469900940980648492466304643122528284796047195620949422811222962986990717149155364058870676466764489876412675353593039004275681693473493575003137907494143234441151638037726006923259498697440673735815153816391346973274702251677147492164160515727046202008093460583241229349161058831847319514339821822872320503471407685086247140434639884707358722876872478407506703560218883474694377191518476126494836489833728413970026889560583541164478513828514419317283437887363452580003994474963077748351368898592991846743100326803302482141097270979236028139879206428393789947445115992599189438816334601481202446832524983546729002326777759169812063132164020071669874307616966576285915207984316571671786343427571823836440827479916666215879321944021343731177533136058310966141762664174243399363692950818052588766106871851275536991197394204069081661882237410137616227284895152698750878322614521227293684002753169429235258913688344844070664897520895363406614077178408319078688022821400363516369524645045603228619706300240229162213104388415089145186436399281990808193803659832419834349776231699476419784172119851757148459654133377066224889753972392766653718120770733768723800623178041891294035066254200372272026827860077494094741043540098048073250690878907885721371637567009113723455433088474090338278877478207692029832133548991738819432436146892497297588007853914035803644500454551739257554840937297391408213601678392147146778731157052430788954075996315078774872975547205128212223715469161554331567538986169850235792334784787764438381913632584090765812414922932816706144535838455069974833025623580430211659819537553490560183025331821033651548442807693011315432559305195870485453063895205603277786257985407462110560720515539437825146685702312278734622809566639422539624972159349281282605620562028049484693325705410116965263842137114740768166547754043618595015908741936095716190330097836958692335119441722059511465173851078813855541728400989834507465703180807789247510497150192343000843613514229934197254010581119375957995782148865825814537886896068889268512449097589389637545542375884825541175098476629942413927015334600081548432717449245498511177292815972288192638000186830994309398165396508441696555415232490202339061206063378407081286458945044463188165439170688846238224819579839347239081623531362060581276039203417944656189683594614008246470251568590758323697248710103424840415495438694853856090930584162448719234028114788559716063318814551296140040965528201816924277190465559269377111625038832533499168708684834257911011761003439952984054200474694249922402370578459156682186880908624135209534003971092967848403223845189006239685688739628967005327376829758061642121232215864638761632829692812236787340341292902825603896051342206884983257068152434417019500321907079580251635361732603969920051515752342567260189909708159621028927896357375895520708693773997429967701389134039852023495141562833991748016622650948444790672565632261303891312418634431628367402177850496022275778484107045334421124863704154588464192007161341622707403879059862662289600043255689179344027664978787236372140750985931576893303171736399352809481608091014083257675361844716663955307387336665252538606270072873347219315092049681019835447416069285430812356534350684486697674417215417395050372033278655921219937430258221822208940415712789405205780313301876582305382762609424920307750906189038151500890909083489953618571988203496611555137787406220408831681852607607094532604945067187917750571958446758840162418769703000327686613106924903527786913384672095063031092326425249656336273914252998856863076334710946781753348350415922291840216990473583671096179234557751414425535860469309219370966681047309046730867210413042340355664357800189191336224151766247614612573081921327841835153958720994031817274166201675947439791681295371633767305007101542253199361109103277617006008919770798394003727697174410165946692712473299472312828244109056704166192296208730311216996218070355326064820627821591930126879150356156700997489513179312637804372001730128217095351528875804938673026388982600916986973031675977998602328327999517485386255808034898688236436718250817262724152868080339640061582812397182298587216983116080972710830908208316587480117555939051579459589162206598135322467942771047746226218849889915406384973497547191721253529122277094249784547382708683586599289859448420499329449342527223550692525838963219330951601064973174754818209694709540022955179039931312399337581207049578168968807022830371397501495410698160575126847104327899585520073491431322182524532056633131827320487555916275686539811855189584568408442869322077065083692059117615147365854947035783896008864045550162566080421724685088772510789335580154290131764470551437197405017868317344020085650720311322791305957014451786353528572947763934689231080585567119647637250517944229866698925749210039772733592381923086757233853931531774228459248646844851491441472245869962766975463612740493741420408667182631861123517519073892296667057489482173685681837401283196642107066502194360803391007745622906271222481587847603395486421244377093604839453986045682477425927551459259212558355060146594327174475449742514058215603694072271305001074136814917588823074484587961839895923929872026546794574836822019802263589965217665032197498366951290824445624238097016069457262618649781116270366656211043787897977831647837666571091862973208223897653006734969991268792038723364792830791453377679610868784070007311730083947488603663526828063847320016813784097140235868785069751622483460387016935865449112646880907053817622709890429620037151007892331797911055465648394070686481161828441572039576557191084058227805967480421622668068037123496881384625557529603735172665882390699223772532732814756819843668555608475918829826738329363052653636094808188447552793437102053412217546992488078221028144775793511933476110320220822247467495830194738965048115037596741035049436790145387557383491080224201286272378960121496918556130482710426916502145743633972172864298625594669546524253708851690113028760117226581125340692154189427280980860141747315736602154685456980525516134123858212080655009907142187901970796263354619475271964504945139774661247087073584045507267854905313035990472395680767704184699348563224909464429587262130733661046696942762702398849335599046504022791937995124766998282725749025542230449404364983924087832719860436330961047314847549260775563972825845190628247101955686559929189713937315406947060310032782972678682777994662131619540017445943566914461285114150106381765471162569054669172035877058432690817024944048243880541638266106337737601895540691244206081605014513669421249295041750536491706330745169816243887101675866197702771459650471527912212267717321834509448044093333709376227780985804237013248394488111971679716352434538025655107405532758966194910785311885742373828957441993255736691614035635649759591757704972316319616229441906191581388329790654207389299821917150700781615722891704818918338221206519231140943645415927240602643240413712086878065109112242118685687334433359066878536693736805866948487191228051566778972721086162562941268074603417638603980556527483038618478734269099284790492663081574302687049783728812727201517609674039808402254005606236867229361186832840927746877983064673741056007292132615186667649010448484690127913433354734642409402176700348685618309605522278960962559608708969685133958122895888902418510541199076648217989108807236786430204978577586647212002290481642107567079117939951011301897245658871978193759724625349178005542585682941344387055070963237669110945862365749237480173096595791373651716550263818054666682577610600334939514949166892030669485694211944719917920973133861598093775588781861132769235815685936622019117030937342779775315177273941778983433212903485778489040787635442472538254922107608611905488170585115710860188749092251805386447123611905719600449924043128259378914540866285800474862190708011683118497449777761144407018373219276968562798939363148572021774900100296353136673797091001521880677600949045594789077457454549547241765742640530030259061745780728769695877522113248640968106488428964828485844096444331280184159481098597393664256961672121916831660957159430063073742816847896396180494051210494106910227334243005742535600695691952792042206478931660441772484504335115978336087110509666416640828487003257807958758843172979185875250485326310900013624097935124712431057204275102293266614598105429528220343595240859469038155534693636420745273908290818854076645093844089228922782849606446820642121307647516463538095842817986443928516187832705836298989192094669343762721553928395569444454371420037426035370669163093033430633093378627221536459643707543685195348682946230885601532064394782494160976309355652322002866433306135569517103501677291499448817046853022412607322802861322281328561720066184313398421280212023929593005617976536463934658325609928967472403643339473815851015377448763921608738254803366615737740298442598551170279727638538872217285441988311543149213199192958718180165847917639236603436105558982457226134963327373876485337674627285581258434811140195396171854754455607587456179956024742843218990080419961213735991585664388334193959777312865749024732697099161464362324364575445075969479384764598575577809108258290372262848978832958769164321046233484814808137118720972311533737572820649399228689301074712927959980574051353766505927324151281646560643352530446211199595135207851743840184483937056025704220905913574960887893355609308865428829663492002080214552207289185514154649196314918334471941286184179963300160743425034805957252201431756912032388947422213774971786376525767262736119059870817498186736744158222270201841503704579381366492525554106231625249395865832634920320063664517835294296738656241189463680985975411294560831099483932810803093763899531958231541862862969417417186127695968313242072466482440229593757876175327327112405171624418869224638349926457309302343507006112840938251196174464592405150837432422066277288886308640843990304420831002337280731034372391463274217183334767336929144413129873249768150211727888655306696853338980029199377474261358857262514905306598294356966846462312593696791432364223084149928393690032627842305910148035556942904408300283777650057421362568278464250875272791625293720862390940385795304052767997354450765228172716419951906840429215905158906292942245229856250253215904664070376809995866311005325363625760004885463105323730873936441509966755509753632563823971954594066584214192115859149039982104621222197943461074020174951868055936669942442752836020076962907136671962386005127424202912046610641654478829313772562319713622528198407875809478058121927731685276589440980970687310981230165135820646316604634593655341273715830238459468444721251955199800475309511428671926819275667084429571751363945153397462362328931400374939532753477081225896511071771006835998148742002643682019964037171257339116800400130606495453652845778046282156453646669243278167402829413011900282784853942327223645044833638457535239009230197939505702224739240061872461600403286665159751061102177379211714574233430240053847459214164908473015718925801581393354157083955127769903184029645456244697526497938090850866202523940581304324597345592089185557878710923644947168846356632205314536055646170812056535019962986975288380009236834097261409826422841131161292724689064507795313695330742921531398762213459637485266446436210972529470841116384451281287042461647076052299224668622997968770785107022199238602597716836028370071520019458294503057705961823867114090467056932379729297861234377277228120897759998507358436896673706039071168142617983288506135528120901353118461728454159534991676040266425545615404193296205601323594711991667303123164381290656777915321631752266982133009054741233173808290499089591604322025850103563287707274382353759833798518336897891048451691687935796348341091870121751122261053382065965439329334197942423104342378010537193541590399633807347701347766213737911610062495781321668237385136024662500837231037425755411329688678486243019294963435066362919620852923140090099574233951864271313051645018692874234425914421914017801994471178100334606535351629700884596770098138317430949048169342787793304807927479767161440981522682753819576449706523262222431748164186721244581790369076657319281661847719319004322693820006234977925166573091691758265480077248280334781651278808897896435420942405003151413574896742962426372383601450236187423699019796962844062225059287517171015555882940127742136990741498382451281103856804658041691947887286549491691732366022660362932298543096450522387297854928954597304497695637472585930554844606583395465543669028426204129396230310354551844224726721489893540882814300474588955314094626136192122781555106482532792118222822281710277313674761431373890785883285155476269001413728041896946639416129588664594085656140697750666106258821639243581847443807936437279771218116113409864648091787203740587578785197987232752255208467735111638277589102611107540791375819596871074255974042633230843859668620756589756018232126377466447657795129188502326670152283046556806040845304206711125681711907508549807725416978595169070861249617567062612011130905327639230573186464426894650182133399412248555277302796718415228740460421649044252659084198502799270614511386394580009098054100873629026071583133235045302012586052628313656573440208176764546464389070414544866463359812661783454300134808084261338577399007874300403444700245067176212764505770608189646874309359955292081217072731496932981259674770321582071538510442760962945086566127746470026728282387290214099626758639745281683785462687820663039194460758674086075699194613270686617233680654978857933282565693486379905466126031227902788144097795921093982938214361665559144031739699501971412205906686507064557872289717619185591393828653669346486234889220374226200738668753256981356818854358264812992188150339038586230923710912743221037626926704977408120792155876248009070397124361485183314193359802284130873654844915911638295046908039960571981085028110275064868413117507760181602442038036418123749980552363112338450459991498647044915194066427323612177725649261151499135580143240276756092907315291469418977529863449597734916317171660709420100662469389378198237078542171828430295603590931529858414252229925488538108415678224249458075978916153926411792725665810230685633419501153694889238955465565875999313255056013995858559241738258895966203914990964429938583040423347427111985512452386078402026983588120505878272098634317359727663518770089403474478277955549737079053881283685616422148676388706620288605822364661071927389089540619448129407782580672839243215418518559858976162341473931487802080652139301195921758950817228033809744438659832121252160248773519589502584535462654817143826098267674004582322138534373922694434158225317304185539029440825881426382878291728109454081339997073564752573983647728398757760546326109173359091239137556388912934312594324950338311414437283090052284305885708649078315049812022257458834801577396182609072870131323972938450907653132837446439347054540136959179300597113599768635695552116465584955472704938452647764549744393365526332514758624120065258250897090557463602352002047404955903833753158185397882069320646619986856308313236355089568558678027240016840060829591658128650854546518028530179706028518286561017797060179208809117980703162066206670578891595436662044376859952749176176634239771667887824761712288410493954678055273636490080623214512859901928916804295493161599275739718331522392203811640659630751571151060715156582219179867412853591215692616107771054749229397309855593248697839790239235624031353572382194041554656919620104758415747116526845305318043370699896038193424361965002829147891600595736940432889674714834897909823220041098231075900345825401695912338207615262740299444272725565394646129801329847818176384181497668614301932104576646244698415185782047716142793294378265697126870486088142674072897114211936317367695396545253125442145940015479051251425107982519350196444824247848114150632398159728765772589230072934539888797826351275557781782223567984164856882622700155737280968474740812413058153627367766231789275457526762318335387897625282543230924311815753822224199457866500684645719745842434240876291309846630265755530572242848444079583615295304964110935037440626453389770036078640005996575303120274214792824953949155594072600273962146008112021361321036690509198863513353437183698486975293693956069093948632337827199583064567668137409471099637122527003815547865173821357794010991321550315794720251472405259713789846254149114336590852694307687698460310114147506429481957668991925015358773300493028463310391454772409684385743575212212684306198012531259763534502640861814719881666367960334942999535712210724705904137829377053019498434054297272644677644045308706470974751295876913369776925971360804866199721122835777732842331907785093746540776576756923735147503633570344385697697293876341979205099067491768572839749228515919738796792674339865052881950432085449779412253532237542248885815547349487411853294761192241555992830037868923158016675649220216060880180313793277092630113471816070257317644862750861484812115381405530859126641977306989948113766889836757520522678980712083159738711809172041704372625734871797251363786173906863323768690105799425080061893620233753448139420412570821501717637999357026046817757619862725503278226142328416602342946593056283720190362407062054322345509712599444529952780354108963568280884961947935610752497300012367516297623667027794181778944975690066158756328960445499991992774827207518342189447589305428169481975059210292496164758777660479056714117634540802599175795205020166936601175802251549741926357699449551266895055445632390613784987820352255883228226068735190237752563157601083252301063292076773407336762499579222786169312694853731824619402574193335680968011955872705546456630319841365244648219865395777150407341966574721572912976167358998541193525313196150029987838721309627553809932167812091137494218964509973148069650386472046009915847682598268763064691202100923398055017696929487182515132512518159671282075664767593406208957731557492191675650527515004497486849423749413283734784390225082442047313993573418935925794196454685026933545357259013322163249688802175245767208151998581341471246228188367716633926565844218289674708382655082098541975944428963252302777164967141409985924688638283379352427219069956927579862165491438245650495448191739876557945053676728664699254608878567608646990670399683422617790902869922249929439969360664957225142494450272847176209433925064975128138035129277854115011242466985005286219319933507126089248272833250035318467317572034159571934815887425293080195174845333400941979817394177397806218287902651037847597410998534109459830654680975950609677043497719420574946864290104412959773279558781996886768580075568860277275696758344848625473695794766406742719207597498786258766382370562774673962576513319339046148115354146161196056555608496838618422742515258785253852064657281435210286196792761877795740590158512903043310239647699192952963192531331409773200061501381781918540374677513115296784050560188905120658815893110367547850340280541342129847321540070258981703301524337902728728489694296195011373130582549295291284732175271469117065774448289454371432220637918064488149853999936250904002075932075988706292737906280089696869135608453785909725992161203469592117524170852964683976207141714458782488667173087778073825253402157653850238333493360982876567167457406619593325233071292474273065257930491312114947059588930047583543844732036166095121236466560042959543281414373559475684657684423920740362848409194347791623201814951320216128036963114840544116874933687035588965747107440185102062688657330276130327193765959709755716202613388113595385865393541635074686346749870229366391238023779313497132326320466729611743537971864211624366755578441558567277443855175007812775340356984280954348553727866501815921327640933379568493257265744485736627091541181476753435866876682457164137122231879629992001752669559206131793779343779177071478108563882160270987638693239444413934293639535199645984137594611525606667640266057314621305275718267870979171420578425906683915512645288951827780667194404057285628960977666440774661561553301009937634336855649318377981412250231540338693487050756006915865995602074270047670224030736433574377357670778269264167398776535903410232929129831089265447538969506350316325795060965460685843474350399070150578629032888297819669007599524838534491741297383922480064719546556680221582388581645438820937705811918848767327419962378687766523762453640771802525192481792352207424065178965083618106147675094331280963242724092285861174418391571198885316399518272510387694565728057917857686015051618001284987578874534698099031069015000876683243369971574630307472111181891940288477930660477175174244453341963364603466575235905928897068160735900118269455753529645190773299424126369516613578803948150797803559730087685139087032188609444504152039848980298486468975846732537514421045578415989203376501510808350439706202242846227527433412503009263892461769890954344258388585635862662962464935468974314871469564985533137967498963399078282919892470665892167313670875060361376879252277557282995713381038001347061713675610440738717996998304411320388440122078685913722761696729608873899396631369448379556442149012732371560720524957979051680136303399394569396906109746040450000853581182824932504748690175531607670892964697791958644603898939235103120865563258277213779952495342216932794648501310560199405185823454352522310829685761168086707022582018260177667538995299337052134376369992597624437359783818052542928587874354573329285839263326138924742693465156481347504608361123348526871062016709322220019711844225037094123949908178432468036523593092743914395008936386298598343540174842983388749537776974118420544734321708977134908394590431677747532970874717308566822683125459262457335238229199264210396079105060737129605572884319254609743860535045191151146902154476654562036855533663769731284041252743186171722429086515761698333895374517329588455713101150203373659867867853877247828257698679475164831002561739485807909540859685663111115457899742761643505325615391859241380505943898843266248765271503791815793391401952031468900595883541368351757952466802568015808998796958444496329578618074325655056009026688765095485635276256022351637625614211802637523597755570512632730056819761067722731302585042385980469070887396587836598950590740446844946371033376915785558932074961139248121185723154126521098935818495662288269887933211975074277400349619456031641333933315313687452209247723551419033160933618744158923790760986850873242466292646535662577474507164839725467825892872812233270356184507841172552591417025462370422764691071161930566524351641828106475268151598900588606958944326619245000436855716838495868069079352504403447356337142527623693006208168069498508573621513583064064913097629482333984232627084023814607482638282760475056850190223846952330207106870154897666119542873285829972167573848738481950146811781986021976123289244295243944540956924061227228648829825751527791669021421254329087297546179579974269694956295606858167067689736615866138746704847409347944166639502584135336627394086692439215884414260961618550418506947289895733195743750284569003280815488680383195865025341933649973030750833501496788928279476191892230114882117266338470497922478608315308542976421102353263409195004176677662406232397439587661339427348987734128043803903751199424848860349791068139667779710918194511121314615620460966864758257926913145124326142599096842703506269083707605990775472872663016138257378540646554765505305781819287746326619791532324411909386094479926886752184576301028411786186230428929750540955172947406208263851830045061253406059973125347363808612682925988751477071692304748739804466024484766269112458193624176309243390850914707146262267681858644075286929994228391714995729303754989186760765332353371073187093075577958763515098136124956616300161697862216351476963750233127789945875203660610364708229159077615497012921751800009334965581595459466363963874822037266753789764273063337687553853484820735597212043892736066226937053700068116622212698851627108675177576183900353391769534227479407656925521430873877198513612377367067886977314017258863585044422517116905548948356623401291001716551734612285995107748695722511294344668096900257795472305993431484413295861295209648732956259144960262073364703110084015875429513133714106686415488459354695896019103131633860048501877909677625529655363593843972715612084194702936125454140003972125664771363032389680204968355715941145921372248181550342730180196874597341711001805675810647868026872963969541114625062356881329539244557093124759062139107215598229305169461728305433855254625286394369424633084420848211793102536968367517776999532426018190386198062875167565615777402588693135551335435642854967236348142679942971842993975081257126912111376099487698069100575868048323527632286339543354064620084083027686084421933929537720811807070237070677637540768297781398188694913214997305832333566317862410315878727477826191909713175041776375694869804630194012781900374725457844028981670983215197982103979204369313054901118389606449851208945727612005844530371280612251391456824023059931062087303868200617240229213781263189022878282767325948878238119541809140485928983950288056272313787502569958445210380949640296589406765212499739887348215149360678151367710480397247432817592124626639850119748357227418368167675021915907292752348351913421741381630650437646753987141909361740315996776721274249679234576079599451889193981134554920294119475921059740414969047625637023181839636825424938586378269269339241002836067376632355599006087289725904433998772349103170783469690213254180965572496916565705260628430817688737905000577541286275153793683546208597624974134020087710565890176463711517557645564556627660714210154691012494068480152997157180616550085361087242901007213788981130006346314848129396383713570978160653422493373584594414286699968368601395860971577320717453971906922078850481851901360482189759713549680686060161502228603157735527295469076471794189067303842763811628078579427695862968402575519069257299332848372988037005438644334279392225846110210853116203360814755867742132454061025777822426416389380200037813601366208580241470379516091528831947436222605002028715106378643867648092218404643537971485376061641781637384265054360822263972305005983759045599969009437360409099128251273554664980600049280072497175126660716685875211963205277626548750367744910183573763164024902771762715658374083851821951241447872607499203585593036125161908382550998761758269157248199174586413296551966675388917044147548549373540231984758895116489313527870798519796768291403652382320162271429038811926884554367551435598456981304835357094479291014164538373653153958011070762196220922279134385198068589276032847461105448076522620798644455729542507858321819590703569104404864820499899187510549773191086019053788947183447869010990926113391804920574759302951533883621811930963340037307784296100413243044046377536578026930715528465969058761248754091351561465385697294306034708161582707771214436021393296455687581319284900791804307651172506871347139317954246144612018530615106062506683896040488428230980762443345679442233742779227883826942939957801713796983289680297932643645784519235251924687380466295119944115221399000457564372695499914845920860325457608748043900564239005924718718827136763618638982928163233230660150102300416784032636081386096345975331450102795847556026377595142585475855295351365974036771285145477804649960123027240468054980691047742319040336447683245327908882080891117957182785567360078341306756485742705702161215077258587435354295736098104011849898876167565100517108891311016212127283612436488486915320725557007368452447007198386374468814973846584812355347974041256957231636266651416138738381424604843791469905351792265181911734843973928261230424224846435477759545242129185172375355984634331177703523832109182631644447251223484059559478701457083424063920829718486127607520622759943353519959030001110546211845779068998832830078572823515228934290076153376226319148430143462893509941521768354415385630274434035529817342106000626495796454090791045192017706019073748389185037021513819404726811545283683076264904420979755465485784540335535837179013740501855753292610676754667473546115180859705459074736780434484387980715118201647968213648807882691922158084617716736131368476978201797535226989477905427983036758762675820803737687928105804706524429183550625766522909202476819333660588729848183262452461517252048196187157888581679823261845327705721759350185449929808218083041543126132747455112934552236876589783437538340443902163283118233249522750939074049897404749239852594821592990770365412777692733156026743774536214650007806761368295359869653860038807736067795613474849091767487644906884991025168156179036677722800094634164515541275406978335868510953792167254954774258477073061215324197563350309419498911022018013892046719361810133768459441657479657624194036884018533226264094998148661756283561404072545963327516592016512906827129244522638085243768554681920696145090606500548952583648421548781883283221453212415614830061950251328314404503713512941146067580169616495630587259916227334447526257412758896982878848927122711095159888606320535599344315327615281739023356614929754309834262928793839648290499428579127186790114838636693648839282616487473964244959737670571408626926235828798391287066718298854819382737983868156565008474331646554269604897637153815445246368296680337864405339296452988537972881440433151661363618997678582512059349113331960520567499702172479059871320680958693702970016078740324372080479984549845097149635846495371424674633287846411855947055150026144168662156984007062378583077734145651336082927711299420840907436260258026476627194555850594225304150996083340215168989218791320724499803650747764831577028864788506510468024575193512470144389224458130682791562270006924378773736576758571254263475170160695563072442213967213746997991059222161562401679937132096264565540320553120701770495990758615083580580318032816194679042835857362477931550205480798460691029933089899881229266569337513026325925406981361372331682958418836589670133467907300171679501851902086642400335071085541244580484132542835296350405311885229836936749577990988566518896068816680453693620644790188615170855275283126134785080516750566188277545149731494695129739342498144270844662191697686758533589110659002202814006440413827016986188852668082193588384202172845147218906302537550091342238045858961919409036694039093120655539963716835685748289627051642503505348186923887217028675425850531198353390719083520805526275442456120932952650630535254675246073592695001963252702380132229445066112283025969480435919756411629399216739557001128113756117349380282126097618481321775909463258480772318252271703379513342040511049904704937976083642133823151734732470522563897560341739037284701128283172936859279916261493867052814953532756424320415185109612806964744277215552329150941107518198858366161263096053849288752298884208042069741938821972595492123435787115323197764000671831968589569528227754047549520209638386333628855954061263542233962626400770920333556940243035452539853131113942603490179143497298975727539345897517705624740149713020737167763889675873973449485639723724230491949698096944399679666749722791168860402818292962991866693950746026542970118491102616557984754009404126626735804781360914810165719820064013305922557718853461535948328163931755827158969275263995421834069520442546327842666482965802437517633616116342766937814508241303349117453167173156687153178644063186050508999432009137755551332270065222101064042025830227553604387411427826979946868495299093998114118981721048558315157484855681443646462148211818345224271840405635237632390687770536874301738040932019457841971976266842267731114603781054775523640708536663742717671211699074886419074920439164064048118948985880814450337393623684608527184736981208534420405356359174942919969159288831075516603704571635769898553216900738187843372483488492102577514840853035116909689357608299316723709914549786804513733272335094008002821178951121068028696586880275903592380994001758177239259889693726422866662950949982714654731364675562476056111951286852305761247886171275923363918611366390106673874749737609231489954227055723335068420813716673148012601365565027939849832063111941507553759526305334750716845535850926711107144108230191446911552208015002396328643499858082507986896935553492628588779318055825011959326515900258398728563223189746061127101725532863535182604114258126777186314397965423326677402332664955216632259416323012359875771861339554918095044093250589819737407685467324679620364484256622470494624547362037359610434403582343759933366987331885347964932564716384418890650499946633152648100775304982912402906320233977125893804755350230696946594417279478231792674979190176070588679597112815231332771371247190688529924548510303085959944416520753129580212681689191051314070836765585953493034587146733782251626240108718456408274429990958574912830554376765296570858579832542361355455651959946619638476353575396704836234962734004017668888966894659169470643134864534910967963633744933772577737176002726850241777060631697175409168110862174677921492778352443835040879783455922947363158119970084103237737202483740793364916334004673458613036300251881788126668363763096669477206139827549033006706580868844045426199514603927771562914786306761161625188856171480976355488994350515902192485038101178896837701959240602279138673998290523073562485538054490026376426653642596613408469944172580134370654275717202167306633896940765292331764593217288460087436856981696373821403694401051805518217915079640555391487991992568372776407612522786379222381796589810123984789745737054384768230321671730874874323345976782325563811953879538781468730517794684301037184197355169016882183231648767760097924491346464936314052581479492047900533871333079734865077312500552003674874770302240513383623095912676376125676820011387208440644057005067177988085786129457045590924617525355231014968466510186199929031519860081354151040666824244076316430570294081691847463884734501275868999727362992838981385764471724209516322944781919962316226514470575706737272379636631905120474610137693229884382413159228885847080877125471195365693206839686359624915336537646836945723214651118263402015677965118970232577217135533523100405392543707230715900028646846257101952199811111396583316767629348579622503674578293253197485097048366087769720669657409287758630220545280792415070183752025080112388591594564786324983784008461783602483155102511438302414811889778211633205778980955000695682415191262757825921734742974096239091488288770457825588974658747765814109620011060890324499654656869215855211694139015610300967190384719992857859268634330879735315552057670302263613114425620636268850373013460253823971643893901696991827029953443119259833723587968141273306644495253428641793304669257314155858991641871781310614628854221692982104716282373757780397228807309124880106521532256847719051509978259468128236912037030448919995348167560436656700017312517931382048989273278075704256405100144737580955683913716947796864087951905266612142466231935612934876744790768975407114358278809105436163022296459895927716539716286685647972239631802088586633758735772031323340798463428772531649230933219977156982641086086875144022097630607256408375064457903231647980876554113644694128652794662742515206996903759321218887300862038187470495783424396985005576565485552810341035640700735972293065891081177602673690387819458887079615642800753080458591911238799723039850089853632502944590832517331759753466230045243454673130899374426692011594724767881747945761517171817900240083639453074227604814545686102779618458128507952250489006790041314372623039679251911290980602116217099640582789443801260247951377318404115225853353012998387197937413445141581785604834409238866032079840426951003838057671855105935213349446487178813591754625649519990268192249851458259762045952352196449541068400328913409119702588483061646049654044892182799291305006488246232125128615554181664457898483421392651293771957135384500533262870430308226132728094149488542701995739496138087038105003673933918580879859999431003820117285352230023586626265939658103358578878448136238040889231682327992053278055636199064201548394090062579878995958673806031911133736069599535327618464315478683213952608737688632877874080480320078911786722976931746668806722889524042636826443442044045044743834259780892948967579481285315345239541255759732425803593636114758276289726676760240917050481282184239844112669901155600167241644094659710081512181256746987435927635704547451484054214692985032478674119421720833310202899144997821156235353894725937066314951732529892444757497107463251683874297889775660861951678003663237004806030225806404213356779728382196512768356506063906700569159284197149953361409160831922898988590639335836382049551313472201888679556631961739903992701343414391690987189617353138977594225794392436000655935654675350898114192310626939998282553889783147288521772453145544111912639671474183384251401042003774182731724717338932706094191322417052004780959242403653678291685757166557293280098814601471893627401650464257558104724180673062105531978903337128581699704050401694746248549860826711321116450633108849432618575323861087144086950381684065441992146584271741497103408034120270968200798229024677027660766015505037665393865800176426818894098620950624523448284339943886726656919305915350721057346493812025181669535492211264243409698007226633888464806529156808043322823307499072552080464071872777262963670094526532084086364725832479514064678736417439608804378691728963145386476693173679197034117768951644441291718843739797969699693605892447791947510076899893495985962007341309345793832762807395675037698056619621674732888229434305115275504794090930240457192776871803986149221831266657684111898280171920265807387727993219103235077487231005070847590596290213344490582317430217916580675667224538363324934700608097138263516170658606200602756688990156951904782544292380249891985230320353369901043086556491557701660582367526250484585693975123138825743729418526527085723672555377309207928269912490868956986677750411218560830985472255487001873809872213440735677042306372594382457788090505638173779501344934823773216924154833412493643808197582967766102558225231811841302398260460194257954293973447873780108558495811400340718029915125328565940690959042316258873600778363116385648344347778473733627024059217875064346985204321455659327715526191304783263724214609044123413051279538836206533951202589248223193551828178226750088405206578114340837194041398713576330016069516885852582640814997790623536845896661305964256318047503786023635466366620428616097533201513754486864810202053563867472573804360091765601281281067726834184297003938514760715884814110248401594222644962479922946649714294380159454483916666980033282991022641990563837399260480052807702101151631448171628506954416828073853462706541299422340556027012769227297805544962348956925573675107405272406287419419742505222597475732033001172126613829301247714471278225579444062486001018990637682038253447564849303746975864882791651953672783096134984294156201947020434951893965555363453327424265475629856864973887044941250780280033832105684818033120960092055576475345476649892641736397543745997831385663868053616423611141196969026334092798679039223793723767540757991957417905276836321845393731298629787700811724227616463498356458562624041736899893837455577894083821556888166547349111013370079643747752479643915837114625129589763539224654440736645345398802488870332869156711381935608954717350832765601166622820404293682367102192896012153589379269382774092370089532212219823936808041200733131413306859037780831252052656433353389436190806823032189779327541502196455806804158264323390394372859582871873333898385416528300593115136149000437543622521980623358756970790670902174720377435914252257407487940453545670932250803718610181541434116426097928306718239475325393708516594504694812617672078581698474288636646871796503275697903578827098624588981908133556354939294058540040874295923362935281771504347345605229844011010819575888305058127789452410376473181900942382757748475058143220618363707994318197413264931120002833699579993309244845206873780769197725254912412839055045875988350329097346612474416073240514116549602017411967216655493680524331948085402750289817189292099372085402250173337446058654457225742648719472662755466029484859215375883136074907303069322170186620667210117819969269755498992407153924395564836197239307685192178568610144074727888275035972402583688366544606350442629377997443273135164230494083914546318542013890879606786417561988722765837779444659622645828875432023947293739389469761407901948746921324768740004326080513235441086276162400517561006182711928694370124642135021377874005660668675788111182962517518701975973010397322923939408027949255027895861062560448245057754052506289487463284159095527495798703134069289711068166111742794547211973172774091196995226304607063985909287322051954267192443135765430157935004773350811079596409752706488791427185122785719483429857780831884578318243947155837753550973438925513939602954493128107011461484420392578569310085654658643893264006968722299627101602878518643056170325906101385386478227494694870764449574019196904910004571565820993736826953634354573861026872886314388014036088602680572465597350432480983675442760302130868618516473350765322979860692456055332519202476623896528350191723812512820935506375171664429973599981154328040983527657712251563369690098273702679378380861133121813598505368766284801881431008399784726492688683861858538818088068193149061585349559209733868343078304254368696023997530404860915389257114445135740818933598930760431099348451121680176232328677019623442587460465615382977281899725786471211313692956726251006218993992863382531936733123053704585752192902827276097981997579115289591393260865415495488076351521174330272578561693074158356711171506932657039397734322471448246819128059463700776742175462594221495204957329452002540472938638794039420289063238282009137753085877146207699960428749442739450104148680300840964535761843231756004170721596058544947597455553293022929760856309300321158886579698945386757215426566368734637622436896169526144383101387690703405003180323304936520802907838592922695803323818330039602051450256771402269450599754637444060263721840340717991062631290150232559750980516501393008022039599509330045294116555568525401370490975657733300739280840087880983997370269465471768321618927959816568887034042171240852499909284376044247054482604188074300573247098488693927385145526359457498604466412283716852726559810113649681985296313771632497151954841924351722728565315799937150338250780927963888532253840145292993647095047752809601443041512004048877704563250856771587317663471130528611842431189540671096754329142540445364493363324160375798904635968646405911183813531336942848269095321112363407213319249789022418996987127204037497149112144891708574771993399052092286629120522975126970627377760339860764306318620200833666310929980538963735629584511873571759193467552931663257887720967602526530164592019439828592451128381915197786062878379027430981262942072265640863475797611203569199733790162094815819536291519772278590429577722616631574164374173431610503590529981997952900264936536582802886699804807809245370280999501649810788407498549850593456488859300503669911018903502265279163150274719377732897149214918745945024043562695158171537302881516192743252502618668483772884597875500258246729956948866708282205568017114056182177536965024391143455278596066941647096012555601750486656678835510510940526930515265507756737584959023544909093136769948579625462686345932384552711635120051642482573025727592784663262099996343973142154132305357907978538415452379971756332555380315535164250234200463946061308356878803084299025767040492971483148162342341736673723963781168467285750862889369234066725539724114688868539656830002383458392031295704122218501285897539809419399555879499910441422145920442268895580014573484649694036422216836438480835863274446405634868324545458033313465843097002843279208090965897859803691998648666020499330566225019057903404409729102814271048550060537677081175034489092728465884254030473561149371388817737495265289571906255140687927151455919607545267934374709215310177786162035722213421287940421363194349392759223226586885931473569821792771692136364173678641931946473340519595576988215934119251347304601956410789894519362394282201679380604770267419836458527074166552228959307154284456234496081939977481599611973557592648972988242222262935409035638467223697131404237255582059071023328194028883827599121315100731145930617352115398814685380931999688032645317510958887497390256908937474044369555450650821948620336782445904917425372306246018788697144490728455189315103538945156794370611087905653538207782571072512252461696133071787497730689397214410003178653809047671397194413120956759080796449684524545654518336235309201538468705727803458383278265242152691652385675272286192258895053451664714368641874519518414801905367639936870845038960149020998844223110537985021944908155164982103660442518188452234038998879681675042161992345083442145403483144119927338852549711387323304228924891073537725765297041773603982511142424190470823354809797521217958852792727026376673436932485474561705421765323479858808517826095693374042370524996969254629942121327563656334676549716537380895277034533942300213581943242574023738867008021652170404497591274859815344957139353156513222884689128208348814506745197155358115344240216562482649703853738397780277874877018858465928873530904966960926402678434965765049265798159477497082669588072978709664256050334245558024862743338691056955331187223093568765119540448265597484407332157781666962686170989894987313957933385351467694973484049291506742541682983169529764463778310234448718026028638259273674945555877381783746991354930309888311734349552525423736275754543833694426787402933927495246755350399277074242200407934417962953227423189751453390665534017841916508174719433479885996397704145846018741812715488323552162401598401153941237670255404219802383799809522591789796818572681713955677782771471473218964314432128864908633384209269606126104235629638932289560934038774409556589428364602526765020807590026027144975318192545849333849550237548958785157765307105481860045253983956540643881396911458249644681277867426783129304836713069941307363800798157459622644677622190051045975455100958489366289684007283275367568489634031717014291858293870032716420673440303663872303560920093297210551204103479364112432497189434521877830503188262976198514662054094717274303599067634695352766944075139302085740158265577895190400664162949470709037549419091480796627532427692895634640802160625005163678210237294126654038884457134180485732514081373351396166075134900612115876301430456668537720635961870244374704643509402226779617015217237864658909520150734141365778778279088303244134295526487514279827067294308307934451170255047856149404837092027555667880143193227749730824006174584005712421925795972017457266975001938881062595586636527145910318265348960622559727103972880897621764092428332529788040105212040782471757666061710458415692852056154998997725150422616699225987539181497247392838656033477430326334699467241562023872874122254616294384169451100617042837636208457260562169685391449749352233850506715018075035376372012586399749489251740073011846782672471982457904557255709469363881836086561853210144917677349859985614552139764169344385278574703196925370045205234136440073389728426428073008554384740608113429980796666576257851423459654926201629373861786564153785441656352748674025001737958104255455627965872441059406907748025295470338614067740038452919959640585576133199391188378407426934483224230026209821520774186961219281522139066705515404335887847360313075689170797940821189416957592426300051800765965811789235441717252709587449218978691364583178980570236343791378523428929048831113897829352481483631159812578769261716106565518059062085845490798423604598317116187928541728623929939794074466816407731116174752476568462786364041424461003472531294788818642896954691286856486991075418007694855902503681477657319637397864561058184145059863249001099095079502545391119102055172486893424497046210335778633598765606977790907124061670276256528391604066679179964227922584427454095094125564484823350442735123751490158936857349046592147253528826705323993918745214691442250741985607559455683808916678557115028506857246932329040296000143895109676120504527645795516103360273428543974901991995341821081827992729837793026136504402711808426473201160396106067466454955561537475484712586231450438036069771812984564205716589292077546600018948220537957823357274140714568444801235600770281507185758573053066262214099582715418586805664827701311340376985181798480664263175142785380738720745829643527052922725335425311350921907219577662192519822536591677898469634497085370535018568012642856121764014876965621323325447350900971208267143248349761954183278358930419927467557128891955941525738049720158504276592800544499485250952123421664803572055251315641048446274727178754439421865205923415411650907325061040776995427453231994798630887202331523190525272050934706831596296199515528225807963563265379949503152682628200565830530113969458943837441196713953649806715360154494901207153373651682001908613952264199721067036052367145875609599359667919445382451349531960928030831119920692356239761210711902799238600073114268113391728553953796903782205120952530816137281198671935522743148266093415994638101938440143344428154553559158862081085902437790820070371124244909207759517014976246165090942357213926021442242326395144371724840497264641884659264560170209225674948944524170968324825082819243555463854326699894460639419186831152578702394837549504812401164619599272344926989637316490389059322293510434886344857747910404059923285482348817321366210447866437522644338586657420385508168846040285259827686348699735463397300427505046028919387814189360197749953467863178979236362421276327989500850598650985918474593486661278097684013157387551750375730133026777749153927879177535038400268969470097512876825829558821391061424735646163353748908061086652449358972024959926410217209464573792561842174102804282227863315611451258873138781734514032460431827377090407972423579079875872711205956930268087243176708386137076424211589618181140132928237860529554239349926972357235836083503653793596481943298208669883604479540740418580278496660018226145644615344132244831270501436818882557570255785045138156893020529610300148098639437139153769004180461495265257794561894216461750695072883311742757852643243638087899818204646560762394832836081348243777376736050354013237391608284551942551807957168126589176523223980588887178552590374229690819231561430042299316163296320380587044340064645496686159735704920860202222447138755721689781775831176623294273159482847755134794876511211361110059004502034664542424214031889014230632729508256877977142536623050223797569077870543671141696608447617780874083887500153760532344861206665702344062790016003638836981634629485354794882430364764851157309569976031784495203796009800359304282489396556031259539650908284595179042322947695793618184741699070668916152725327420376748056581382615597901429405294964344730981544435350216047772546630704907806072246006998587628045622460043402903973765794800393975945407141763010910893711407821778203426499199367070690649535830896265958916327208695513253864005133045332420770495190605646741949313509431296710131472570563929954598723037356304235339629706881105316485767687251376271446617279854934465569475924705176912768088753517008049126512308343977999924447538522788548712030211747724448746983860068945527024465256885694575267356139514059305538322794251702954201827157843351613986430989133934172243321828444166976170129617815341643732678799618400738367119415086742802974208926458701194171630994112196257433350510539735381322659054334957332532809218645293978119659502534019899312475870571576401160383504071639183016808176799793867696619151127757224119199762336664284210296193391762823953289591391342756029505802001002673080476678644893744586820471883821003617384101856333547501875765124010596966942787528116378041770868483216063103797252272736310082723420121643885313198936680907958757720178981547864358596661418267849126486874581831335994915068095904308405077919804411157063533932658695378790771674069684510374273415232911647591882247669466057997563765160401218902647250878743277162343007951188370293986844623987142183845352644311151955329426830783429288918185711536369748518423583333401059221582920179394338743204055473017655928969800918214648431270139306343370060637533348513213087324306107012302805844480816413364356125697495770393733107222593037083994816405626497260725896295560774275805931101496242078673346078323323604673362288658347594422556884741984888305652495250671629071171009060164405969364773918373695320478000638029067251457372253891034679891121109642861385734546609204592447886323272065763232799366371901469026031672994034599901012496531828447557804241075148899531107877102925169500824456630820041728017947482851523723556674008383827926497461636969225463934175290226650114897727792974501816517587747309791941648765035856796587581546670219981515098775821240101654952465107415158811298104647252125942713737108620028766017440717510157997535265187724199038079321924965696865431282647217211922732118631469283632599133366892053639117234522130274551165683969199969218552620054929554362683292026536187837717411831721535829535574411461040880542763730876883171137486055511110419447435309865796896861563251435744284773408453191505484969477364483057625122734106108117795592837250764054669051880768835590189424656647925602001717759648634238342916665699552624005584293184059470815027495023464439957382334395361739557288429663301216848931905135433496114643845856208041906178063667424556568375937985065433182242563944441846622794669424301347465579454680564884029346271102376219367380466436922569489431464698651969176144707368774887410772944003762243836569492748414258011666343079085304833782758466278565012362942857419738380441924953244199264216483892533026986309376325588728957212490607765485552561431960345103034965049944822450279809850006139367145692875833931563607801627530491435193119637227724581361194527807753377327825452248776125312164066313201724349032687747959381906057647529303974030033775721899014832563212380750404099348902103546589023461489377037192132509345346051987771242470406462389408470175415440961082874922485650683854653571887297893710710351638961190839211309867361407860294606581431014429094835581135005556673682535035197161739574228125436819533701375165049068565615569325478691477239004600476661634027244919792437775065002505540721971648457748382926511430144286481658714585200465308101289194660932343506098381013428768689160837908597509193031592853987002203612703045495741530818344432984873946024208718184918460670919479809952768515187606743259896236076502557242159258875321433525825016115507256259705822188356220710407742627787773863468940198979092931108460285374841378515028606504166753453380153922326071144239363352927190629115616677417564871210661404023759120761862509859872489389065998808554500253712525835607001802942780251030643708281507345604886020042591049220822729565148734448348879550592583301156344164667563976313628907386519760854055555088040318784378176395899524101996369906902081880849432965814728964347216228157711875507495862916246475848378266431722990566996843925601498919181926160897356730256984744054695961851604861360521918118231405337552303635008967062456228470862281003536463150943230011269326198264461356894256160695338570022026320223680784737981037605893380100509555729730972669126062502886215465673203485521497986964196808599894862820339831613173186878723467733108795835971750195344934877908927864290058427168725023014045583783611313047223853926561583292894456405056577316728931524789253789787678909518996873169483959774370774073053707409623121880369030150737624722393423638545992825814149282653810606357747508731847853203607902207580566034416741823776912945837319145726257551695396063152205051344035509904888979006309397824047094796139679634046672141097126745795286216748291652219010550209039321353499825238289452863435120810049093836580118222604605455033143070994519488247617876895568874928817519147221894879863668212392411634768757013954997185826911350997017981925594867546322081897288064801694409336317442005224582945791697359343074207385896685250412875331052114039201168253756838007075186413761515904886269932748662931259697600934623176536664987018125949898379126738304491675274738184769632383229299998862176756713012567404938113483683216848219472910057865724763472435295248927376651841945131137357242542900741004072220269043035335395307127960099435211790735402630320185396497815832814310613661289523959290855916746190498414859708016269976653537412349264852494811460453434871656416291982837247009228826397052833478197457422000315818430302441926409603132942772352306817870607607197702569953140643075038147100832102800072491946392374507943679975769481135221475447266793089658139833323917886347182432693338230828511497745003383490921631526285828250958815322738382733729761713679506492451709579260924841770405501648838765387722097623513810289076567411366744013665918349656072164805854758065994412199108275463873401240374590377672535456918373043556372004101033399486639547401999710157446905468880642732066658858043862388213216829384449506327877965907184609213992128384357011489543592413808493205130087117862531557781306673925321336058642415007318886223810052628252476700032571886219047131839553937665630165561993241798172977148526265648356394490257045054918524320686104776966750875302000481515875692453721433724822126677645481568943660802683658969618877942107000713236147401353172245944820703199873726104702625186242452979054497603024887529294499372896704038189017972825301707770234726519513436059805533858544485075175226944493026079944703240150523442174240057800904341773126637860911606763888557135911760083081838058272963221897659151924907573529314247141760250346069853628789908145045126154641791440545098576360858069738220843211862875299196716725928378690740136637753634516791188214646410161006789534247963748509481328009760744386303761105903827117675933547651102588909085172910801495248016004300515029104985260352838126161555721540092758871695035957820640695724953248595187241020561021927091715535101794960454988823752427238166248194291019015032473214577981401763897610885122789947765732683740086460695695447039388383489402868887960926915631271500287095488267109299804182848559117670322626024230379521570938183724395522078192811388732432162750928911057326674706025690164892299997288905814697604366321258503962200330530356032790355500915987825900707078800485936628915064050853515232045305488062190191482908482047466874281711172894866267935000445392634419056046684732333608412215589088087976850291253394407279472459818559696118600437512715132681664312952116471130995318231967987804629010067628233108384349269102813569770677403935839996680515954202156061524483512070694592960086614425025185143986325623270964443944559007659883875286968822006056136347765755937426183868722066971802742288758042837728122563102768441529593998748169638345650544211897704602480150106191170114033535586875591639733022086686059604583734112032965652870367798330551399776860202761959156095184016136346615599747917093015389699655592608951587953858336999713609276882148052882396661693799636191908580241502793507127709321504910287067474961331390819369494957454951724186104197861680055068565281401379829975235994139396070475124916319920536578935069168734637058262223811381194225852727472969590832107906210746286799389268963342822090223173658783618696069295391867174845693003668640033645037023099535480703463265853518932948905662966145339760219550865722038692503930846394556102186039605461885415832061661636418855656494040051898358733549764560167976131036734944006544349774443870505551201066091214408743049977046851652574123746911679586358171321912875740888003917423005876060697779043972294035394854864746254970907010617225404983688356356009554217893976791383596641663246222152360350760307240444845705844139826502095090827544171009350942820871550363359450229679776004959432862483737229022878846028542002155481601136040728187451147370900757008289349785003436409173876123210995833476741404821970587350118821566516908637520958150911378728324120187254962789637310186134459304435091008574912187636826163665134371983540737868246566550735621188287607969198139010103432505295793943476929940251382516091464958080801137496362268670707280080832133615853964710660944943593468528726599654209098598092733970180347859226728723218517084523914189787404044726264477525066391454481784331483311253792445671034738782805254971007677067342078053586620511492189014895549383124403347408475450853266969821138074216242633526760047370030953969986852614628928965372025537435644957420682604425941384230033388054735039866543136476564985862745510107052552225883187684569081497009004450557746080906700559210627412666311156085893669087687348892094456728807056701420913638237672813096170612575244039430438997239281029318489380297558554556072349095218295608663943720866051703540801933802725703806520855304037992032295408274319104198883392393444152444939567583492948474880882115180745748868984531530394066861335918129951117101581289953548033673880498806650897806949955931377093871359594693728218434977655809534706387740079109379211524545218130384319613582897098815190837950860363776760468393170310164386272633389641687945007596815631182715348044898536295828422498629236014025931633254582006485600992058874089083991863462042249474023413009305018991426660028718919092719645957406409393568566080958775093580418837333967905931741369671041819040375043408345895508086665869930252591392378211436717312180973761372732084439576339182260418777386018201823139916655859435939755874880672283309128197648399954416664418329044428736463985178837873423891117191384280081620180191153258782551741786834218414376892681369133610917403406779429004241966793151934264176687494111348596521977480792235474254467357846705302285167488087625536062437826752968851081810615919376869403505020187250449752112378390058899422988965981921118067981590321722651774645017682923584190694042593733525150650717230112466535179885904464620207732116699901538673084941378762307032355222821518820392935719565401472087259001493338606244344727818119279059814190129468413449728821446370987384920398006374114196529557972691820326442495129267472219161945423371165541226272326592462861544735333672546106475063013079029740410927205906439041914135755490359653539348584490590754312906473625177652326518678473877636651940726497435280458969084422850803963946582868038592950945110320599050204410568007010731682119239867448520891491022368990512850542251438737502049107987579686496633589934742193433326367867182003828292051030040152772018219808570185392096086242486261072348520574942710202869129212388522318329543108813512084765567075993998105811297015306322662391579220186009135016070219255937891660032566481305156021953001890904957699097876723709119400887086703751400525351492445305688439688695908081107600892594794366289099085263942642885299775208274518888424526002981935523627949128171825134866389270359737832125623722606156279336254496816897261597393211200422996772998466990105798235618214463717492119515047499308509891915665870076552378320141762967861154484327140301212446988815962855764514041313308526014871494301195435453356598595949728836646287536612021555273757675132611280489073407852811058851439476393048460692350873164337348245478101844556129337265545670269111532045066811680469443808602683451041525364207242091262181120265468781851575094485991257656350193301644243208003995905482974584230906410005844589431041470354476069296582073412087965401011625653213171250418925618283347695358059809534923157949538763896466194454838278290449723655881290557921686249174461337259195257329678345561373814620496411538076510298476786828755349896487256645075641077887758814991053691622951800287147150932286825763213183499986622376780758190618221415986537056443344712889269963738153273395654609446826745278524486121721269540501494043261735017949515118854366707781073251352465440083629264433132379360418579684300752648832947388063611292429049941855037219634596927802261122635133997607146531067102030640661574919333569336367264150957703413526010088396432874923587590437406482089022394237413187247536664720845697336509360776990854348773894018605406004042779420415594004906453741712300223033236984643714858276652096232569078011858287427581045492557086160537127131860611254107163839485027929174754562525028121989177576659272817833800185631168116986568615495122119955288857228736448951193897851172153822880434635597694913514499857704294171576739171259424362784431067260784814183545677614198821921813931672350441470002482771406921864702275783047084371522981665173855334052413149703910201124840557061866997524319244407855586572546272970758953028935109738138707825269216634037089825005427636347131270956085704947355322534667517285771623924201841367277511414230258215011841300993798411864151461451523300162213762144455683623605871233282031833145347889595195319253748670869091968384541884459309422688948492029357989598757361091378281136868240631294733428081016245519928064710442112154906380437286505344916732433941210408279869984187099143244936426953646413871969077718236984181126032964068297168550524807094861772896429394654177753835428110580172962263124377917420222172169291821225394583346466124045357878663975987205211938971198236246719947087015706082509178883767616248382697420134856999614183246545384861649427314805609769482243621119232044726794381529812852763943529237129744191876627261737035496880578374014927275497864703857380491467281117187478355155432775866148233395662962052585150146458015780490367442941166246263253452530512292872421990693068928313013110917565060695914417463474668867607243383942246624187134571930044475005230342697332568031033991134812183196100027010281545337257047654781243537908416787038540825588279051865772336680314412399620320528727540636253142622491346958013266236932956510410123178392281568683685195309525400960770345753791577098051967007667025395301937554757762835653481606455846133841348402011644951214115826194900557651971524242647394011228673477164082642364862003179364795783237114745396983208519784343294590184838505084341489014866476215419919740235416051902174815708114774194998714410027262303851488546474117923538458043981438110973353504960726633066823002561148096995062945622773237316893494489446531891795700963015126739128637464822954530101799114774815631697523654101136041993807423564079615212169875537415871004304617001170578250061813214633255353402931826829889947930410821168371694533389185299983658340446402805179380041481597045152415226104915285863974202420731078672993232510595299923678427622436089129601569172813787555884375393684936518584836662272308066679740990712739877510829059272110035091098611675456666992751422585307701453666815280472357397519722996165882367339915284487379421508078090489283126956040303989664617094042887623360302747893121672210505548526833108092507572739317888761219373297311259129742359484838885528050098681220968102617816913667214416473990034151951797549708208626457488001753585377524627887722824982025906545895713578461263045010027594372681076704477434987040570743433593864710504448055256649891986772837693484933199704916896258508897761964969829198738183889982246233550619343071207229883470213593736129664131229086656030807976119256261120261458359795861745301705869994818478251080435347474448419527894817226371705791696266245978095406578882361627850674296859603992421657314992548960046478821913111072786366904048486769142153526724563331870039688416381821325558075708694462130498047685894872333914756236715622589109505256791329942331416373393072557553509781417410680844238487927419098757998417894318957772996644566476364217737579235675306653957081129126854007005072612395419651710115551433362245524691193374233597300768996442139386301531567266334752859758658525816970425116657839153265648471154722942548730704468874750711827948407137028222321858514515848744106613419370599018850852356001422728867920538136318987477576121369762998692919867551729471559934560322257774078969831905954436537988061062988539533546561282153562737200912530567062440766198612422381171712481808376968669114398269469540495416642312173995502958716773349033740368380340356154015089029327076374805916096527047004976494208983792947089738308533737035074421411965950735004101610059449496852143925292823298185295314895902218286594182974282069352411266906658390041867225905704557832754626741564563598666658965321942589575452462131077751005871987437197914118743950023384332328086403429118523373687729807489987809764984904361997364323164725362200209366191572695823037639880150571161980467955400898075003262954541295437244791012228337497029083133573712311523574142539480832612610647521219060434628000181487292151309140787360562444829986744879714579029849727731398307792810166228027437133358694385940121589254541451116796024515333545449359725563870151112553403582461790071013530332604419915532902598936663171797773262061768044231043196448960855480094212476838404318885548768139728984131914402339376543739487199577418591097053581115988290375539369990866429319483846855338927352108645249682511449711564310419442007383670718844904392820674661008268156003715861356558408709065771482663538482522139758397987327963311325119566171923499723384075856505038986698799613464296306271922386687011896560122510739551826125457430259230595726905258686585968022800329270041013657442183991802118819184835854828247813808363898449496763737092303886883521855843811707737711066579464590309224612862752475340054104942282936308889782349220285513505068096225321650228585866496823544963374713866899698608681903273276544459076112392558924362856835923728994254655384800972494355007644980620408146165838931093016228767075600420346963062654365532683215289031670336708917024610904997105407673158086656150570403948902511057132454437514987197652414239118160440565117820345644482083234988364568009845206128596917231777853076999854310817390347020279854030080949436615534850419143884873472574830673151071996750469244777200735747116851524067153342462818712145160812444876830933274861158352547583717838539110058078247764305345259958667624855617150403645745192539007868608754203488256706615658753486715227413566791238733455153313912489396956796145429131735141517525557211480771227684844896580153789547497667658938793024026122683397466478231072886560237850733367178802676172239935791651228740392672599214578699811348576059660584197539071021638173262491604382868563292804482308741142421260092489152652918610082685600321055679077617606082510205229213687199631336825641375449736603385732859543151067822648093843813168196920448111033395896308443881629357653267867856197264159435054393153695513539553765384163714701933802765555946915679508645683614953508811728078028518607042928154589714712299546752592532662079064658194170826854977473978875713190540077798363235881902493059932107721088222611035067109520763614815443217158541249728137527672431263060039024215981857493280077813033136973861513482082897460467989563252608623837753995119282853888968230065781722379116355245896475429936800936882111769947078358240866527228902268544025934735880040382074601520099492562295175875754049588600787072607090786332223085627910849523772510450821781162669146833573444748425819579381999842512704729535602953886526862579265235559549122526416686942757062886078377826296696772589816255875505464443529502757511518134118996733237082481879514811168658900647070686973096713444791467793051013263386355896932257252066217915411811324572541583288512788216359235064583080071609087348591178958148150306402732604537527207696555941977052704096366339788277003435435955355888981146424554916738360327667557858357063004606425914842319287976084122202267472560225760651243997721174706203822721198542668591443837492575119875717403670880520273292771044064041438510296585583781333663060182857671440671559765761642290202247689981177797399611769127756548516702574339342159495639356721331349118758998645299985370813299380529660127799691735686527931924485239733355357858271239859857108943180074150121953642541399366311982546002810013953477857437660741821562971291398138557633299094463448170836750078368993981058156017360164311419804564589678859732765842143247587150816668124158426592354948959991641190328236624656542446318748028482312701272487176930163012004495226719854506220770481338722075784035846281704910733875820035212867938176935665328677355433291916708919126626488922003317539034611559771428779461312832648907225736090913146661256265551472876741489952045920795451827987126284202527861958556994197338346664476673770721821410757738467364114242564583223431865864989369303143055703551631459742644642936215706195859603984392807849687413963309288699027985644351262988122993516046628513856651896380149620772501684719909791322404667999691805060593517611477485821054403444254967529466707443167548075994695925985397011282478789537689626403400852834739471202701018486527741152036455926772143233243715268916097634820346754685938512486824858487506657532877021452163461367103919368865559262470424170882974230173754993866754384607260039926642591417502381032106582200463238081673518377878465009441817547256976746066978517256682162998755245594027648078991694367854966987279758401282644243691875259705016935259812714168597216058754510441548480282727377587407527644494510418838547152489606759350043574772599343715810535863796015953894613168218934266437918653670041927269362212648132225681134987667812676387580102491695622530188946068340253871829897438471669722899882116903017750513492304317809077277797345500385336472110097363418944260496338300510532388787823056038972736959697605257601850726630359589790833790175380842019933619616747274474759663413795018221447210926736953395894705053903069940760477631587687048901510270344537400595799231416382590882858817874628904567407734176299501483729281530362103286796439746572843237649570281663674939106548430848326184783068974463824697735108981379849629243040870696586557372654195478911940850481339746599399996265496823467522999609740121165766610585552577233420301973633469404680234397196232675973542158323751104598333082392395277783859993863478074037937900386283155792356605528959641739779923982689877904216104219400613581144152563733053959398509790657914720892531465695940053568990978591826838725305946396976390159814739263258893291989394928817525972054962859925492563748307615349948579131004874307293147939894797582209890369210413365087470064130859325797889225106184390506549333733098528545613883672462794051718946886329068047767832389262892393951521614437881596422555387586332570382284481079913285738204110397233382762287463995410945687780996704872698505823340553722804659934583520032124749460409270954393660665595879348745253908854921861728071319763999254963248112562559233750156532386316108318197137561641548774802917285395382376426740486473378337452136859388339410855989232676909012228093047195710200310592563573474731853130429881929531800423916795825972834171981259363739302145164453543359566828767553466319057955523369210157737542108114012022512360308145680958728568732542318857029617111134466196694887102353178473420717856325146550060540198645908017894416798074313656974799828402477511051199560642134100583674413853022380842916842223163998544796434724489884835552245984124335570809305783088975036761250458631552949002764349387290831196063487908564451863261957834401720616008653481285298778198159798074683771395667267263041885090952941746428488187954654045142905835943882633260671741621516189890370705343418535921528868361132412804192296819820387055223190851553586534784349195764795014516640218140465679563322262571930898459970849808764082720332324156261191168836701565581527232243981342642096440560883182638873128053465071017221604486916751457461372955806130430557997461891475533627575173853689012491058032011756793819707552692025210213565090381493537111844136133435997969327527044425173034240918209131616043242983687464315003705664547602311629230192391840455084308134097845994247405698148493221305406248808242133862903945614733682706302638417269457613797892622994459606392983924945134613615335724637597661552933734953631832175605657172040382510530347687560990411250060547308491660080225082966192590253953961183036491514387663409342746434947218199918410108789354258640047913591568747170182942746763654480308302116692692425026443797828829296741852389303284585669746990773472010675073474176104868516277342378172958237687044141769858693445169498996444439577032838761864740098252873064846145039153172001512605756080224781257784450564608384497420247806903891036736990394233792762014063454567597149138925305182318770111270113355014508360353582361334431105483234035942451853481123445054338651578876973688620852030611590384810427283463491240549847354524014353627191480440421652916605257567584552788315609194162751233817516597728699664015550090043694008793184050537104711775035164009533467588926417800900315147959635852463672008919182438408617070131245334739416058457746818622690886010393618374459370301673189387286372416869156160070182409613517311964033029943395560951690975767598528352266706109167103176674957058672046212994144684785608722767713035440426648916553741195236105024936197677605757352584268962533626420075084130512385820925150394522809190546603057029306326458308851723285616544627506738530986624499674514076022484510505695048407616390901379873704245853214763622593720465188836767372387642035001938266001449349220395139281117339905327973208069247565352815079373441829564635812568540486227830735414006166191486833114652354173432844405377253417896154756849213769338085603159064463328255664033056341438228934950355210207166413256959748061282394440408099199802205185055755039431819830797722113266055214541900965639691566397623500582082095647227137101818602469985381087404855950443770311427657067739538638107132970454079622532970374279722948409728115143121840829281383031964735540443348418138498745307450205341402551673969776084045410845280920896770285162735368530510090938523217879254160536196674285941453254088774334643594899206771992890086499182150138410757247939865668262127352932036583414048542735792293609624851541916641828431001242962527998095143584657561316556018935007351626970250115521858055782612660343448922462917631930013011285023481475115309771209337105846888821481944547303792724414689756594508151273475885123568430070876081823648826798317972887528489518184596677695515531429926942450020794366611777545219105366742159383216937600852972138096263853454734068954557485148473952635403572656706026244010627024580539142395792561295560989752002258032713180923542133600863788408037650251813689022727228866085760159792839263026604062910153745568548644978059513665777914168710754412682683845901347389427101311855894954977895146551803557772290504894972047416109114393104809127858117346016270817846529421179934666192958607964462174198656757088036441489989493049541729649662836137410059920660854641407884457702526438027665110034941928980565687112518024185369037447040655328314802956445587045635273380292812454569005638215895260101029936902858303752478650998629969400417602310257819206372459813507349703474981581531208694703412572382510916690268512267237435494042931714974795293444950987410987050259499712180529540285167226833364446777445394703357526912888782526770769058625559919114280541790471389120182233295084933662935376292371327557454036617531439824476100821147796450772444694591376102734562091022068622366665036706991666919864557980704826290472577994875402722670427127883332568418606313800734743290036098140543491674131796041478676184077216105572533724962798069114303282773248592339682222221376036104319175123158360740551544969404715945282521110110659514868148546440239156058813721096130218345381706732489751175865700335999040089771176184636777640423904024607625219311368704822851105813803073341294308920820065720186966757730823277784119393500782495340942386148824745097250228966209572753188757591935309266241812054016938527539637432245847841632491090545328448125256923920822446437331753375884561894114866813441832820056759279897812393435972491472441607423484504414242156786097609116235507567823688215351240722531955169395072039655562485990599860947814914095541984305153089370635999588511067897273518240621109590602486286419538730297575569192798603566989464606546913492782738073490556382920760772037947688601780047105523916625323399161970467460808459129497103320881227977541743237899448316822351225015062007413598849068786623545417795317092911741561011805581161057794987995116856860050005538191522506370874718453951907995403067651522713676136026223101042311380642174420328305347318816406914959607881045229073952471087962284033852739980314661101745082431997718043234096814984365010278248728546928022452832880474992671167935317482718352401982520415582607175233770447268125356825857835304815659312771797187089135322469072627422830447755641172590097723846481074883615810993514781507309140439624831787328699426559935525065528231670276027806947793896685762307195378456525479915420629526183803843941167733986884552667084720863481969324253554165603196845082687369275894330385439659941113569661570890550528503078088810460810104968478648402814249236137833893530884987290196575291154090810287114880237009352419185371670885136354925070628644146069774521707098692139190094731963230966818259225218854232293143079771319393598534028903861223083009015503763825947644944963741270060170745377364900340441680158264274070859597100295369197864434109677220683606479468289927862706769929469447064507079809746204366549770454622584423103414790366684821723707326514436513745735752421522741004708600993245944317141100684840735858731489868953376831778835270251706187227899424132311792840957383580419210476694410009800853792258084015940710532639750961861282566788525097430207641478603690329816160081092772045823226274882662888531657318922103654212937848952993279351487744327463187120818388263554095766750736337708881438798325728909273216822174654096171428163175797598293661722626623789766631768647400537547174226886773469987070883462497222849990147147723442479570359104470984773796211092584798895605466257015918040419789526106718295462046717170837263405680978876267462705460152056548383475246601478050519887942594244567226159767394155586414707946143261354112214512931218822914496674086090212136362290981593123572269847923233883253966670852326974428368352614335237663601513412397229722357509858048091682931374866155495136774223834141789804350840406465772634670633378759403890479483775087371806728839030417518386978099957409114678803243693080533477254069937691322725097559793658136250199810685584435851446106866977364133445084880825429053842994393608383390735716629798079433965973155889009154146655569129973867681563574799820236037747799222576833826501981198770459756627040253859787039273540879225735032616236896408091759924280863850219254227378312087480128412348505186503309301194133145249158542211878546370742468919859171846191480354418571815836495402057882716903046236029431442712002067732470607363670812738929837314220788400852734210647881954015006182056615377896022387507545161221126220680114491518281717460777662073204636832288240365255905086752747387416450524015416696119632957358577243199291061896669894300851343225433217366036373590471109369610826085591618676370931012515695771520482181947334219799936515962176537203934380908890718574725166418476685503012335204620711744034213473153105370850261899140348353571236071375366815163719344752851554287490356622010136430578096676027827273115936072727047571085036980661984130490222999179525544747386131354907215527385039916758513178147455304013594919695462911348358181494391366506266614036778686712066598964328887981930142976326848559147600282206505791191359010461972807433885339818291557504231259021753277086388755710007388396439753813745411580110246252734471262067487341158496769853792003147455358812699520280948798971359432618252007175409966804789149094208621435737126171773252537644651135253233433219284144828567224255120830631485451541052902976159980954536216767546721119491577596098084423925580265988082905351363273074312457485833323412108867223167778686775783323786641102034340763819369040720341924223626032847968785433429192157774918421992452661457026374329776556586190010326577952495583054598801751295022808682221071478309731585179241372482963419566722653564787726315277767575082777865441104760600529302869525911503285427807713150459695125766877084839241595019986858574610519100930140581769751949041260661643026163533606008543820120970735318219884026074862756394807809325525829983988432157405411369374163692737245231950943250208921930338374932367335776203474024548811867852930767958582715974308521817737688944099744524031210594030666749679873697079677162644760930501133303469738247339726127796330505788707502672084632059193139824323996801996339819389934123446192189597473717342997960638485326925718190649139641605031432584427460439757913586502732975036365069069027053052759262273972894785812300042216904840455949594625861540407393276196080354502439904885320221267163337558927661638671343082979780365368133510325302419068233644183260486917098602980725941951574697987569109295004590193659432693575594685881180207297035228792420332333263022598132952895910096388926003740926942058111224616693446579311372304713254293838823954128121810025606382347191217226850669803398122544737623234904224580828007300816394952064234944452906137758858472418875188084169092993507486431578492754186292243144950317431580259779882016385353018905514504977537567018174979784590580686223519697554515676072087173857384895784472640354917961130939774607603307256796340192499615981578907350854796678205877844376935653373209588616583725850843458718528920657759207854540703713654869805966590569784656928017461239833128611452331819747240875530321810162914450419106157521831159299817239318624121046476101724630604700519948894120887398442070905453556524141885558737389206706619264753193031724884119258754007016029902135239517206293685787720240190261826825402138327342299158819912374838607499565032114455169338232300235880872792104759160063935692894753962572860395982693289649148904836059659141033425295366584781586484587071691577061553905798166182373040917171492945720373119707894204246767438895898038482006207223869500654486483696811327885151733791648869558668483797328179699908321755645937971385717118078247153168815618186025570628139939136795765281673921515448562487682051597036646926360161406822982108463357283083160063483666061262294300010081289072944939624237603265818889308681299657711769334603724307786679227665577870929181145794479587698091690667628749381340109100115414809290187835076555458631863375185337459993330630475181797806192244947303117125604013157028407794788447327576510586121844161632450712657140105709622188184922878517807969107100083042717638412501625031289725792961691166572012181542070135563294111440570750688350981652174844010736962331608460398443275565185106854621081247144450748871311710705607100889557682925383639840592860232754326246894008760796561218546444523700429843781254038368968175739562457746886152099819739500455988655217237972692401722291012492979694255292990347535981519917461268705812084490715985113495930795737797678994033289468772301308659396856764518837308278691258683500258768209242367049730437387468654209885274178830548612831406735095704304982463906182369565006782349979408138151989579771846264695560579263021366797700538577450658916992989790685352279722859809330367322944911301898267157376896452177261526088425465888236683607131146156258792380921219235958063688724459601837243242376454109675342560885310467180142773466348008950022594859554505021252721925997529818938826057797757809678767036362882106241148450373488573356733671526221748242486267504773342232935136388800711959109618317914682185303583217589325649936898981118295932349746700486053431888611087758166260088170063133075802328622271858035733998169147568380011989610205060932767802056248656535244186822092286822817665183323574712846241368179484009210331179076732915942873157472586763745386843541041324580140052759818156736614351387165394148548244950446122789202510490205412169731559716531198374078593476224110731736329471555707145543787685316663168133225543304381146771751763499271459505707970390517376835159781594469746365241885286283483147654513872983142980024699434630995270605607130120117903867917043528141588581009579774443300130665684159538464379411561491348939456943303744969247515891370464339169615731414478409576530252790746686961642908805244970230812361714565205283387864755823133242879558267609024589559923814340057957111029292168372002621947374074713213178043974907113614186336197708826153912959674417094356197447260127992498309397802820850552437935747681075083011746270382730440397870815199002570599445552460001206421022723185515275185638623994648579985321272021848346185503130016466532161039700015926938460810407119418036051330264691474117568505678800161345421438359435399295689882597301575304683217440345378942678043741259082817337970590034902992747442295043180885243394588941621342102820227901976258854873009983381960064758493494844025728070142784660361407385911922382883387489039325049037926150086145149239553448216031230413501217901232922515737653268017729133718282108549883158358236226495007874192781962828300294100864125574810752240147792195320901111060797959046501661546722934878506124789518834692848071136343905948587174439054898746874187721922646806333848959323302053239870149697976667652975472848996794659134742838309124572922134226282109741925026633312602760898172811332027602604389347027367591720718277683455750973370484760772574961147456789826368745273380972305476673750398155454985995233378266671482594354665044856455412669712434715420698753498473557259397066532272819913306406438705831861555308795067458223988321988322444641458112002674152300164574200134605020706183796196098978782675845666393123610668711638136394395077731313342647139396108028939453963858766541425899239355131775079775450161545951186708799369300221868062852076879984118259947040198431590884620391941127117480980808621007888962098016761987479633086404647705263002244177281757191330868017941309703345026297341276213482268405769774995346688840107382445378470799523942794487971909607746134945342901393092837637690772168229634774214591603774821309232941615510924932459368129102547078267833170114311868565326305635434082345093203537540565809913164806434192872189146699069072867538147961346879171374987565069704985921276802211518266140196634641308813203263981870059363612079049829989710068203625255278132546965821258115125422697695833133469882250476267212796178683702575499252139218597655515976723301737134345416374632693498450140596080131016513637432318305073952834462375879747828560297962245347183610938521410307346311788601626038325188311722044023147791340359982693063448760585555454579454726589313340279974649259247593894353293368416202723206906590626237898713040941381273911396222361653340326709526343200751778478077252339566655092364263607835650538031471712729284756009545421884940597716917541807631415167867667736385838743797335903050665101441649089327790210998802740780020811234337235183269474354086372932180502335639989982612682408638611421643401432619000258587099016981074627758117242187924192352047764997615978369809246181419773079403130767858404209498144652141130532137952614210876440821249538417597771979187963686648126930067185130616562226976837888061758341581720485170990982103969948596849243346552003916827314329926042613786621918207669753351038945254426321816771714598414674738627382505212842764220048050646801332826693118608442217561825095157341530575005464305601378903304369178762742816510544177218371806204618902641048486360775858139050446036042756729474703797881729030996619674509980675220342734684129966469297075611686749450069373580537000603197382937258499768244058144614070444225585887652598471769505524702877625359580947356158936054009871993726841804730192257601211105026961329966091339525680626464448849968859001675220909602876790549455814681549038567884307086683647527456538491166682753907567043488037676113255882764077596666852421679557257821665928962860589769528677764327457421616887936347403679501659279078396654084834751173766433450528295015529526928099378905739793285986946569132687217300017297419132495734836748024106533225817968652833724949815168943868594747965837341787495934099661590912391013670335593715820882707859836049678000710339511689750685568512787550215020314812108968350593843568503751599647981909174235640430246274656868403469281066223130547708531139550977436027491034063860698982580635449539004958299153067528294151872173057613206145978634497062345485368829198092226695977209753260742625749531202599088951623744141881979548151448188176954973807546387404326172878019785871199296172059843470702548622676935065967020036893893703915492496154857985848459813293634145563785466026301166723224084754085148686755787406412754105569366209581730437827757302135040447067365031038215737386321527216173930153974743257747030517055561287713857345328024309793908988588208840279548484084718414798278643691591290397430309758949019985344721731559906185686274919008796049969969022280135720627839641660517524244513178253202066939007479476751612463524560274061331590800943113542104528856083091979021183777853659920869132000375173210236127677628454276496674192453850715273186127149206230348277673345395361988772685435091522707709053435069221031842210336149660348807886498519266280259909509564985768738242001383634468078355974293813397589053910209519788557495331182025040003456195650779301735451348547985247426645030277504181305878742240284233754895820308624929431792843984726647947063437738129016551189270095663713008412730158956334682273894784878332146414745238223568214217014491844327619382786372528412754193073292329923072282603936155294160841284206731836039521183369392365704824358058225239636323182266787244408177390642687781066731160145521390668637059034797150908055927088448236038418685945724669077551149482209514902692215509571139200996066925691884849590421908041270145590428049075453652113541859428405324388817561020269270785738344016020826888468375041267646464063158361821160040710128018419161217395336619140036094575832776032565232574697218406831325980946162398506245249767637533262944326621392033086977472271691979385826513518678621351174528138967494711753087587606743129442427768050259165629795289183063532118686950128192429968524081593581965468925248243907954365090598133527732946713669761753083818404413244483360781296944716582103560764261669796220028523984601637936104208766591167059340164707474035272412706503056474851917863484671042951109705988365127786873507181667760669693828779767463749158284078987637926878251153941325578134063797730996664399547608607544442323202402406177091415855766258525692063707456310836370263334954964160893329807826205824422191768174083754009647542343687734775214746704841536655537127794001521132119330630220727165102315880787906724713960650209482159335797100909823975102145365429199931843342016660327376773070219470883601519974511550921910084281692399764189893548947958396806875783448638283299182665046116707104039994788015457670186636693073619061915904975708914412526485378153802364814948646004704240806073647243241186401529738852012209953157549163154777991840400982569713333109986664879231612693690033184782382999876003519134896394152912340094681990173634024113554272552801511598212704538103658496845591882983652928170725017796833941529666436720705119031883453067127873531391827167124222012947343797780771653254777048071176879029518779143523578242147700120023232043445322172523952844332384633946131275707237924970146015980633514586463901750612616524324036930903507210436389200532878545294892987531641873107050382535720975668368827270873659906345567336292772804734051751599761440028142749199375202032718926657424055090818232104341296162256847742285526406451134887548232176851768156171677240005773279449912268484544793255345317940976383555670569091062547595541414713812848606234673503589987248701628604292649249705678486146293202360741394506319049361603994636848387615793179894279364956562511543271559985711292007077340568506111013035130626691476956792378945080906572244715358196933873777747756268305267427161045294294642287483860777233567473944696784985758814912444918797474302864309866676190219743224564822758741534828606009377179715400924289423302909157929299688022811856859315286728882412134412275374097389930280995959000727191668563215804148192416978499795566277907608919214708535279087871493009358348452785019457146366611657279846153399192117274739316997416342647285854352762259380628655726673934155840593380489687569290076922525741614893550115665558875991650096452446250054593724721636374267984012976923593323179977031101186685009022101979345570924454314847414954777410890820918871417081455080509010199550054167445929131975712728116241712042358013027726492246284917728810270260381796855477233682574208895511438196724834686279722512674448861200761020687920289557975909415722964442487605518659319989461822055724630771635397161542310005651868115602709971786150395796980528711150673612201905028674593837221527564025163208089824623995891521151029875644613078123582453243400167384910120124319838204870417753686864323248592499132399771576119451873251221945276831374630669436633043067944934793786414612382905363394376285430311819095437235872604821084401439845714815602240587025574534836501109155564856577450971733649232166258603729449198851261513359701984289004801476864180047988172362222994078497012809536140402444803332490931659358053958876686025219253676291756981944205268612346694364047265722236325077670936647568134740323338958427209829548741005197429691420745418397023408071684245322534971312288251821157072006654014332057448792057047755608764309066032430094921599092284602455635640238741517049702984983747982945695694464225756368590936115775533305092617288167512860961196252750675541589240470190105248903227520320159369877959684605162442711637657082307612742529172994404772586478510793460499165586121849758725330960847219234383500512007389493308578741718330931040196417487786804303498605100228005178750201370040172255215048514439869280137766913900166177347585140702241865110867515375426356388567204146665759912998410729807939773828043022706825242540913839033784559925359669176490081805025957765139242330708029708004636416746995998843840059860817750702473090003987647318203079657886562168081833475591699693765154120591988359096025650260184290885774687501405566719641858278933548772726760668756960994249310371216225608826754118068761464182209696581615695720852550833033667563334928790102017122102769923284660211556591297237128739284393507404153932944662884760314154019949816714142365453513641385989405965796345879934378198536011251262866835414690463845053025485108943275108966878027512117464179803379642857543425951238221431937229763934108079146741013720678697009687690177473640953491013935318336806352182527820281593920128796257445955512474793572539483531356747850298972748996031362314183639771341804776157611029469351690062541466257101695576854989759543574927334310761029775932216766644207257139560238077108011076990487885075834884692405526927993729649034927945223142350743066862936890941244128126253802138347820291439537046551803491924038078813400062297508204621491676668837708757154582954176281526589053794124300321344512970661923004554759887633344276914150662509828993583602848554731224604593835611812371996753815526319150358449915439153590382723844510188812723445655162210590977523505114213728810022860453648143628851373245739545739106313185866778437081226162754353394568451612150152620381551140241653546024428755670524142819396808580832089969739890121491886582920555711042687600190950821571259741974408849603165109280927986368489686542236283813413551829308601847285528946375138518700750049608808830231978216907948546838314196380489623948021345357550567246587396319056901785729944537320436143277008897890003698193168816056837813260445208957160854078127514991026502156427171388867292497309311103039171952090738765841760331557246232517003662789649892440500786973727134003652109619946342139491528309603294741730488362439789232660457918504965259484428535205600299439523529339722702171768796530570880015893893797874352447516013199816210391811701078068768221736844843924131725323478810459604379521621318442547020506437829692351599469308709507325440261584234956131048973784576814125176463373472261484479945031249445580022998223346950950008467647044492308931342153892682739705651827769577736150509496510777509045349248236611922299606391902329339029607586647203334803374403437448048531506548506147253602262949530065664622762936257547322437291485687316347859507768096675450019743280407753423507932691958913081942272498960386060139537787242510091978939373587451556735276160944482677980879759147088615979639745454323803934386705526829687226645852018538053644124742310462278409262229855743243754749113445090137921840676552408176977779806529221631693129488467862857523035535427764109154998658263721306901356192816702734686581466368277562389492320752594960569736124067512007997622239070466968919247231452629448895638482934449587746216778300519213939953816983243405113912996847074432790502738449473317980781261873013596392471015404285243066377494735087705300909387376694001590106873946873849378351438057185410667066796957355498743587253617991251157253748943213988937523639701545537835140267857352494804623010064878312846568933614229552805684176475359376618867497886583448336858067316564850672377827903803909867556311060729740411145619421430887701905580871003727465970087941661533791081548527493870236137405665112570949976015302002099024137047785279705022873127512351679941416030365566932155078928435424939463337274413848609541296572954167840597808706472712585977951170798223837664603486831795737720221934002659882048323102849008267349212760900266617151299979203811150378858798489383820763180584698750358829115418878942612430910110412754522384607032919408072919727889901179706773802171988546052738269052021705756189374539118803979327544728903877175941980138749064688749918081430414815259388679168165917404421701483709681817167630184405392599571375016445656498603357445064118032377122296865639932483668976209786743904282988048625979588022502799783989174699019010465071497372553228679716417003109407645298682662707702650676480647166656438601217431195540323474329399134367030123816919645011376560581200432860588667373233924640512030613880486876859928836690063944500766346922041402913293002599176022695214733838242541368995500111387643086886133567806542733354120359629803723566903002404653917707919969883022691125234442187198338244475675210184220914867830778917026927095043200247936155429831229407440845149262104785284004268774525730498245510977778178365232497089376577547155309274679085735783344590333636393659493853297954620912585557344822027936126536207807602885688650515272588416775875308356460076878499591031560354387234094573434056388467139481331385623754445834874733622699449075841902129562205199878897649655316252015632819151587494737273859400161488613984525406123593348172605772849110017332184474407058532926997772195187638902343623603643863052956253867897178677304375446473850974325955837535244185891347544070754602720530918035039290333714736470280414732175868054480905818194086498824125611049786016940588603592786776014289743890723939378791513750583219170263275396467378406293216708207488855206632588799298240972125310281031055421441989118806840117671458449461626401670280964680173738243281301141952519543081046340127061250011899596707431495507696873578503605161258821113115975394368309743425541064062526552857972337073637977741650899645867289558927909582949486812993560860664901216322062327016739436803710401299005631511921978329953278503057619733820922263727846996069729272451261550132507989247118704602041482747683342881457607962341490681614625957012702548930707519046470987335652302038667545358655080171609549260487138438206707200365534705524563908958657980645141593585705727849713271675496818776123001335713017173203770396002959616927329460594154217615876826769702682054104535703597445100474896743318502200288077458980083040219355108013526440935022732599891302404975777309798414275337766120298211928196315641220672664585293915027101270485450925075998611719660656177264059393024867240104047416459101842971436163848159749199059203690134954347028866291150293220845202059205164988959546998236363766526486530418158103287379757130599363626584605139258639051954028104700183767632731002247438439579281716929614832440901733308983287633859847600892641779683011965889429842954642827017627977725259025410088177410894575402853136568970544168120091161928769542600757657368287610678847833055930936128639784050706650628304550460762162019736133665340045428210998274935377372055038650852513859949531400360491158134244832621629783952649058962266031364505152726885014310991367760759580352910561277896296302154751296470115733165312826797283353309372626518676084491146089305147311977157278754128186228854663573269501287320606496046321450066562123536477099491760886496673711694662255165396690728624528957849372856669741872895307280931649038447976142866286821970965170517779897247577931017234358450668185494944823829537001907380737007865522476399868152321525531950704597272027521081421050765455850310874344226446039671709730045827968970412215172534227536331646598796038851833675399373148849789965026769941151260855923189789432793872054124820308160061849241748766741248074595110475686761251466593247654737226107625247317359117337627727238485400463699442992147271388500889595301305101874840238575984337533557067873152784799625362368025126999276451417742976004625410329784525295232990017750828396586269691378942678038546132103082135276821675730089907829348358818666090012437894020399414049990736076257177103854467395879463397635166247151961010937477342149784329737007828527358922029622002181794518598438261423086294512131926390445506122039356063092087999281483817828544668737241959383677212891924907996723818871794984256189095180863883165143127264113755182689142683754391784885185784052249877314725145462273738033348536114803810431903119346101330873766785326246364539594653566446199577820729398552330847764003671354258184069084585763575845424094803020840136903057821951213580635427107206676782246758766626022806169086397611077500907387197201099220537337714219611629413576973586093078993832395850254600707783626280649363130469415382816936067489574692555138924429719657622591341447476518007433127729956598120790559867554612628776508949990376531376159430720499261384064420287301444061507048290017934330729098315753651697400828945822190455494241111012432649253955908582737357738579676761282331905391761553285564565267880745335699594812506018638562253164798275532287954249851803641399205693918492003369185169873054675375737827572431443793449340263297821833991945647781574194148043006418267362096168337420018741845048909603066116095575677933889998800857303844379045220579767819572492708429317859037841159539052927326249650229976746735046641917494268993120255296754728759539238901998602463458161551783570517479135091210216194627296849178657910404980921677986341897561328467170256784507015952561169182376831623091100295142121610454487002888315456072607711167177647389875889364420898707094951483734962529726479498239019223410190505653218801365317236489343887630971352247264635533429381793151620741039753044670016341597974353653982911474647641173755738334036929810008753780193908612467364280396184332524729809409060426779798471525431055505029435868340467890300524261839390504536993406612521966522123340061216511753070051978916925058008965204284508235377858506957077534136602858322087537267738807486943499075062312653091827975923751531752409034766875152648111902822091834698219968908970721665830177865250140075363632727413953795630265987822520635725615961169782985382293421926398085706563255980331784800055086575260605525332973272428390049493805438826541747755697083795228971729078189255100895354383353404016403765809163043002073498042623326750597017439103452035466262483837305083788914387170196835824913311590048762876586072036476286552812063731901969191673129166701201420614263428211053647851505416449287590277099967996448153091099333509909943972092743071259927129110198249037001169415647086985606163998460101046137596028050124184413999295579879590798206551589046349650324370533571599451990253069035908375800328854241765259083484038339090182351091125012266140733881321373791402044655425251889899387634455782482470843231680490863868174438637090877762455260400577160268430752469133280056364242660980491370374479130952161143268073719866582187535218001949530073232424945374189396413010631190982118781011366279396080715480751058296690182613694845119658826010371144407269239280307260025931202190611089176180122290522764227342162035508279871652664196702048004467983858332586034868835989347600260990186614922756200398514657687916053398637481751335566888792216496542475523263455042053166914371982805733112829997812911372610428541397593432230591727372750623038253824418663885464332814947649145146978021180437767101082028475903532301310880524452775863171237542519285801455555995545675806403979861202043720809452095724382582473800126581840363867277172068162220679338331771587958914480531318111647500233725207711582999040178190348684322049132029050030266194551782100175788161843183440245359735964743554570137178067896753222186998147755448179309087975292580720545749940414527931808437844119610492733290784970851154433529349255065937657997805556375657227973912096723704776778000292153472816892516313742116704049593154705172312220613884737461697110988522418041454583797106475047799141862018025954336045218165021583090867613975864524401665076409075623702273400496537948521435300429184352252762013491903997270198300610084739471859974233763173192901674678495306306806272200903024414142721159383649492746589609811176748746553306156497356550732962727296259109759257187084369804662374554185442450952369054999325719052961134471747144875330375014525549017485134518044445229183708652524705179694231282849488547406512562066987289442977864462318393168644431925226848385726578622238136370073631089313726425146302214613494803679386270456252983898993705137663740049009438938447008765668312450361113023167299897633669109528840457791631412446220807327083113977385986382201013533200114579199295901510141820256551493447626449756960579571135122262088038933254951241505824659588769789387204093493426385425641365601557272336058077384957065151351631616469964959888680905403911303221030093885039871899912311050364696361418859588311105686476316649462689143941354408140000428835779314207704868897952786433960691776746316252907339072420526649957525340778409925588544868111467889062352685823834445607553454089566216934390628743922654073992215250226657045193817685708345614891422821763912886100792852163203359777254250900708711089725441172300822591297159174369711966939129433649887363374305136965711055177030803030981895661542711035399655596864976588057760910983651026463519842002457145362322504874163746026841935005037469652872368977398579545724083307264851428204324006844878571080062888106001608638887879264504196067774790580996847747464801247125822246002385604354070590721416357175450967603615886398293924274823908098015989436789199216636498342333610053258206114077198316021385401075087767739237857736829571388634088876380735545228303078452828798323610058473676648899610389554486134444614175930296529431335800847036491958221238632329646982581857506478323214779156791197590973728114136345868428389007924753750753910214787159696444497754914078987525948516538788522016566689223694849213178661571480853965104048082216905641994385416669383913696744178255810939060997134102032967764932745161861219109258246022744109258696774174696422129028464329061262115347573228580472338353966165142540231459884141688303828789617820477691479384076734138538004849155798315206982016631949023275110712809666879855993735193873086059812983344225854616718709669397767221022365977734150690355856222715980596339989865673915890880552856051599378214718462995642760497302949887142828841593462295922023565983302933735262244703790096565293009410174939821258153872650814082294326404653232010014739948788210251768554875393021086949251348526508590694281720407616851546307585417322081979007867606189047917537302282731375462663241775388608684321552498660347665165627237835351463008581043943808327217467139689210048893903015271200049822807534539261310575106361405515239589276608160111687855624409829034342735761092255935411861800170181439025056284144947792610206864767502352182393482688778778929328454113410134218337542621844159706924268041672361836508615833081774022180434775305465951587442477971349581039646254165704120373156495359519577668708537659361360769509151745133955997853727732168751595903722610153144200559326243469436554680099430861225692693510103952639753494174013027424225863543669331655280216192315596281627670575914274942196092195932292235014490085107125280511475081476388259799108403668094345601706960508604583857998073805419752714272475284767256922155986677813261760352697167002525633235417746534589429677451296793012551382801427264241177778354649075453433035355062188656083062705164732522938430161909967491232271756784863298802486979068647836819553134257757976778675785567597309857826208208244213539215932386047598669306133233639297695955667326829462678288867030195338255167643876410113286939996755768409647099114019121337776486598806522723343637710121184231055046176281805902226270504926296270493319372866970428524741092197683731576871819187318364185241990193369381717902719136898479692279956144463694968992247439709706439128489631832290690528005927368277481748063836421882656265248807073656860494357764693981176794390640964813928540711004577439440740570622158075230214731005642445784700884454728191445819848124225012872618014164183839073786513391047222719674827487644052757474709102463428233949275298937351934893319039622598618092088442617702419625635214883874158029065802449765930822077406242185615517674733379939598876734121180796444618863333824848793049115690956598308673835811018935740053055627354578256983206553379709058850071979745421806650947736944562997177698890076592265905172928882046087467282942689893755913656655380706210775883635592459308602892640184599529083592861121791954002392800866561421185848337894154668583027153869932623786772001150200954827565273523169054566181195145436720825595365654949949095045696904336256474792842973507872214401294844281509878727462620213194909130401973009466443949429328736915091183239161722446763627938500217487816112948425740403745699633390187927401603176293101963361654509827290714054613475791607776871656263847495843520015619544337451488380009694126373259693748574541525282637236196148220551976489373139689639405124431314110756660571012603750871208150028346316694184720727612365193961777513740604194248263050774424203595594126246326828664643902814860799606059882689005143083774962664523383469193085947354629425722290501524913309640343661682438126004638014000070457146129540128882449705503204904542546195678973311290338406722803636742616422735364307752109957524776746683294517892242213911731493646339316373745495530878791367795783667324502130249122750103137821161533056239112369103277688149612661690183747323725917000511814518120667719273402677749872624743008733476787903055570445603136029256112331454457016297267719379577448128931327162448701515718760915739738972864426847784467998047096393308481229785182548344343633312391630372554244416287878451208578352475629026651217582789296453720986285085765064763262112754343729558827475280215601777830433670590176819298851391511920313542170799390388626967197338766690566435393710757344558366603711463269423911578297889640412451057589832604343401008923438822338542397814357486847601178444462574044894192136428978218290139240376788571928535071701190554640654174338237399957612159442059554777757549607462236315634186285763566090069547242409506847997682312094529718496466420278708737490173199828372379551341704810289889920409698808276377547760658291295946532595257906763377013519200749165710712327735881531457636231426996898728215131939072975596857362004613836453983737999478425958381748418950824533666746748087913723598037196372598877125297932268602890302629354802074631626461009376152839894378685416880847896363976483379867959373346376737838257220335901854061094190597330848743386358963007150528441767391209706242934288225143714073525960293085474897744600628413563164388418960949683201182917694692926571683121916475220207184113611155737023181111223949032999345137904122850827324789140717425732966836685197705198906895651956513574510276935034741003428451562758151338795492240868744475761323352386438046658245836462542775392446498306324071280695278037089260568593565095526034100232122505095074954319717236428376028674719382697866813395291382707919163455331922845530950142631068878468442880460026534072293585811567537497694231929213664062581980287919902493534316892755312938521548433317848325451539889398702072224715383082943484380394315457317985553579682328485286305404669735708065232855475051941743450698958823760609372924708923166995961700949208072386250316467178351974393661597670007296630127072424330360501716021771401749503197005595579333191590078727172820103335971295920758084645173247456982532161475491869785974940492754193639330489211615785300225134431380131181061660046088626436245460966627573146740559985473819366918834503748016669908572432587495744926049432089549220106896003612921738147021051955996594773993633839280095158377322151082514451901433190461966641340198912352579708587474303255588662977224223415863864240578721219159719128343630490668137641231856081987971097495290512634559782911533996153472672227022814241589541775227664939913196647574179873882899713956860789054403572368688379936541417653343778167695458664653342814175415456330984539580687735533005544773803140247094029989057522891556348995826289259311011708082202394768117243138962956574269749960902873273509918203533557243405006258310397573564811946856997219196748866324436318081332507358920719587019671985013166876329154030572473035817477017314411398083075642259436364253988248667971776696608641806892722433515103087908457849683069543649688950639950628402295081253574797832568099099071216881677934468603310305844561531422559366891658720698735673421432749669208286183066492673998792785922432673709349191282417058414635022515009158552550875010021782985348024066052973816890566404687210584601482846378962521964048952899721224569916460559343497022323624312543151402465300081743750399738394537824249277872507077521295701388615988742833826044424738195678785412392058529677382184674033294423976337291989482591533868513987612304906874391850370528231396521686689002156903542124770606013369500962509299154120310659577861987557578761336579518379793972100250388333036832331838437056546086392218323540486961473412000407386086562580425108485084295069203792143710775003844537091166770180011208746560682704064664147575190651432798032808398458088274597444964127049247923121142648057707114054116121096268715625831552553661833764409175038375667617850396703397157718756975624923170789678635763096300493660011457872274557439758262051058182305658936916187650879853684347087221508916301392062037258886052140505602391622540265382666096924495005507098158130547945897434103086137980691184444189368655295824013548752960512290393779417766344689906569813361328029551170462313662155687197698932341483443736750742618248552959236500867973076240161793840967736775566939671803913001854690632619670363683350756366506083544028735492349412757740871711653445682665775416246035759393663699326809160921531955042734891664254831238538261167398416695460681553640823013535174984471472166941980134660975006964049012569400976715223214427916823697102018268209710211325922252967049505848807355218338304636184295780853304206206540083231091748131020403673173679959812448928246145780228473581330531447988048978626169862195606105236002379946782404746131857222890518241676620578664979179939770874567540235007969020274562574078603124756459314492430135265692390061069305902305436899673602055240361244194465118146099944777396490452586441865707814167405177534625727611234370989931504089346557999604218060602244965384213724368102404243676848320185192323633769285535745214845729772630533729411797185491032540917354408956745000450678917435395372173811141251353796320534506051406849663010186302530516734692792326995012092147185055044877200576392105930025963271430370502862599527867211700327193764873121061742057388240473063398827848888830510417840754115949944724867638308251726644275871732977629193238648672210800575782921767930760855864687536937985115422858755934430746025692347311519942674836950495425515551672114843628099280569216326042977796960541847871795933251388858547483240345308406604043957724184961600887421847178057760994309464960814816415262591053452474606896562118789798365471527504429691638571928315185747267938570943822012381896330110165629393551153616875604285991914115724517971916351416431463059615474454242174526318220471276415896255798796697917667251297311882590835291945910367328669904590423004978230420178799492017856004469519218619410685049214994449356066338045565119168447368465001809850681168914255187819512618000168678068535647385263228988285782067652735640053200556088525493860311478911695557000589961483373841060028072012512196241915159034805330222508609712157113058993561212206183587683040412802538382031122097542716954338567963778489741891611799798641777687043583675534220228362475071897450348674397436810209301566138803669496769152322136122379905274380161214785365558387475600856964328649694810100082089707830155238222749904809432522946986095289492807129481555837870799425597549245179335474493160364601754038836907533344297065909787186222260759952051919848998612799835488061738086051002302607797136796192195580464998016391751802088122269456292113465952788588417171127158275375034903680470593804057208580065109593845843358507295888697380610406214426087139329561083467536288951095021422118839644977667313552510474110273859309568147323631912663046587407865838746427031092892943960300179664740163928646808664982552590692194318780011779995149807263133006440740766923037236293519981022317008949283649887049298709110816577537443287751957464405770774384828879644130478916848439244238858963045373371356098455778344813337727171877098049820458261031242786304012327568011263578152165085939190006503404429587209483400335620339734205691648809289355315474384435043286486087254887833874742825012294872935032955849278251377269095223081682854211684412656655048908637318366404780266685723002414304740686959694595860446862990473921938260470449771746723510306200373846691913078406385109380250183376467320994029311341712681170264510231246378743682318331160756691324918628095190977902613388075723588258573443816385281966515406365398414689473742520304932214462246281045372254615730725734374464431498067004360752331878025879339142826741259294855814945708257937765613253703389088527033213638474470151245318001639593460567318714605403987184404712698622986929616576861235068119197733766174002255339790478233505331836666078719690216029002338677806364638184830416715549090620414222017111909084192822532607665602441796977022950194428260726366222791987615024485528752137862546799420902114453690022937902765961434012897464967730469039416177418812998403123769398070485751956317021278268233685717446041321690572154923311831189007105457899146267697413181452953893196264860308128804081064928828665405846050373814173227908965034670619269672064800712975278789820410492002128107147853624940132996821593106163727001867566258992697638809351115007855439531546019203641260240429594714119957036140868385312543455252476338437484000797229183886816615864927712713928020977540415675721241975608352783578708699793838635394870581465126158480287816788597103331067822038862702217214037911861042104433002782688567666979049624347771292327949561461184120120864651785381360214505075033062840774611373059535424426205981122717981279233671429580540328919848573011455345404822056302440089917018711193403046483851088641103807560354510294969814390124915635729947668089776975447537967885698155441759891509394497492958211101961549639310081426801652851997924817655921296166472527823351904670748778369684366337290850810689206888420296090788664445366282535725085530253826219311594430736520709320680552419003268861497080550236156224299406804942160233019178664116065125938757778795836828768076726649411485316865482981226679024794931792025747667957641489445501067893762392505944078418074956810390953067409710282862895394168453356178314673251046907360735866040524421501976969447500262658150144176921253275491023734076305852992023688526349981123805299544068874340078317083968904668613898904916725829046451745018531281736625307062992624000923153113111605412381094094831047545669684824390553241857732412815362875477759393966697950012892673565785056027423290094221615150801209351731082520607078093193305202293470780963007360057448294173494221059149083924583792750024351090032010576705629716674640845069895111241398241283242422698889775172239383074493422492877878971590805361438113526013329809451826041477040819222620328056847223174092174311542954288029548915649662519896474987229230817358046208832843633075653130712900714689246413153747291763819587061620938195301687073575723696090134969629952279221916382574588398508330303154648198449192658915061829046982901769325108431002185426039276812777170419115655165568952010720657227344935209423873766618635397545456295216009368739496681614610989761812432275558607079356295280626013430114495443880649593920540209684191560210261553521039951317946466853630447731726112200883827302435709124107117894039455268746702007922505651921492617391632234621087889125885037194757361467991024326806738913124031350000663628052744678589522417168685549298764628199234814927544725074483276389660328788664536297324100498680782688597226827779327409683243465029980983451699093159348630217524123320115620466210795840614198105027188131367722412406854801197171220208117186182697550260237084818620658734355628585770799445457387561064969040582691068321666249012820153433565578241565053448872440715375173444039589836526813425654487327523710109274048542269274012862396538987199492629277165660239480668097783701024769055444426640566882576843183501099747021377727610708159623711985412527738820717329349101044224211109279027842218652161917039939224544122362968016070979895489983512293782950320388925288417567395679419170951332926097036975826847102777956235817145131191690427964423847561412940818483519019104877202531719990958585924459560699877871943044974454810041867351971305097955923401155298501124660628671591766649917092116285240284275590794170574509994070856516058499400022154326440353244315895032586254795127155473560154771768586980605043822968723903488267557286877437969760995499941152402982932712807954063413623526182587109786090426201813725348257019205908804004980799386190568075681532522444119955950880703357125019673665719234976268786954463107461233101803047554217079037948582274408476950823000967865476446432809552283858661065240852870584306875827517294466103977650649077740758926979103737565884727903426801737425562262352882399849845851272640917594851988856057588503333124348792566429100332746126993809612127842478810165345754041157582849158836321710775666450917179854322699278918910936151645087758550534645357482360263011802662905865802052786791644663678169270031293513613113257412375512078382261745461940358063252886503511964064644206131165665401310413973784355994442617676149718538056846422686595926948515286985415760698309161931818021379516347521812530530298749238618003861761420496694240348485136399352246979990647348833600771771712207248210013020332176727567115387171408512906648416948050365580166893082579457384131363614631927664283877712754794907177139518286408961484786992574359824362935195796539761543675603151578163166934027564422621445824993196752447708238090300298659975313093742451247482295774380371602425699450346664116319415928494541798627280271824457892711360196850364464962157857299489831614921242401464695070388740509203996006476868632619331755193661487216638835652169221223281675670525696259174635603451543271675060178221028874875409001578377378356533681901885437351357452862128909667061026659234812278683238426830017083166971787167781318394252007915156465565840012623460376539155384497102536853121123949616098356129912047019565945733120698328381516263520567251742857857525338575652584476104818274447805870247161022527837937637216022630194436287583699368881630445795002459037676386291263021716927619452490588183262299394021117915543455631779273988101060964825726495852244347855262923364477838707027632694678624896425269907024277693937383705959498669867860041647370147412375078882758107023570082500014385627178235373433487562621610559400794640674709910727326352257949492237389809787440006986012345809336873661549399587280935082827351923539053969722962027702603660482018387396571847188018558604322536810233295054774256442886544500060212458273791766647269062277306297370492142670626377083543078767508069341691566239738735759752667181804100194076167355777003677115516397980921248666750387313760217350765269206912734852057159375488427750561752519955674338610409874843678958546365796735998114141760346134905951361196313932456689635996003854482924065802818237382135682771453102068112586158882166701345174731033778443079119533979300949352032094672816021713129845111563171370278631055983916757282259744303842576774462306599897424303125193622242496577850320862789110633543239383639182661630715588482767231062039620896092408378196024135316415063154708611032701771457057189739757383008442945084193210176639647221766959523809967744112616371219227387006737415613506980430671355785832774908297019978367781556519484518815305697989017330536244022895868814470036354620500801191547391155081777890538848174918510609875585335261785046907492357421187731244107867146120438148606303888569449379321979949160991222188632434436206790175552725419692347517501820388011559927983589641395356982739290293833506471131444920664022169739170607636505159405782323890212784576997507097392658531081005824055912536297807031685273135551330399776489306079202462310927542252280222373642163700547380787247883317005035587546218212844153399843532907718157815119303412070246768201717464528611941470480324950595586331663847064961456787378142823453354390795559145814828317519850416189299029408325373939302540883851654280098586405433685457637673667364267147256389726525975878594350345640386987187233009659783456848259830759757435521084313496455775900297815390471756584362291306550932174959871784097219448416743993441946457636575666623368469136542058757405316855984605227726259654383059732986038175845195221467611743572998957813105590372771425804794118146145888484912624329773086358429379381178365981057814270777777836462407577676708579546381124211240507283903917245887690592679871263260313106955026268370842920774954570698926460819076072163704716227185428960920613547901527779499155821250067381187165561713805460358389262632617934204363238835915016370650748279686455810483552758734451558923428367030342406883304801286641340178418987667578825476177331541978926309673161120556354973183442168775041643492531917518337497944347314978065486937824219317173950131042084627900944762358522112756449638437762614894728038684941776522355950736166911790398236566952366741209961293180698963747084066402983970421389577310114641873112307144990352160117558590639313186295750928409337236721524298653461335433727875038985919145516510031608001819073079600906520657099332896978951447605199995159282748497271628236420522510644843908524043675387386862644404549822255800244870912422578528331358873970500342320194050686207161125637378816208306323965842980090395133695244427490573303340467985434827106620680982987617734010794821796716479693210389087528170919106462324630761333014394979639902269260559926378984454080292412932014058447204820356555006949037966358401826898786909972872415123653682766800715555840380549436935906007061196790476650151851479043135779596323808725120059263603031839151913847497783980823660280976445202254195005458429142047917130070200929826784394012771987704255518713398506308107787039715314870026999737872253914192207777515501175306697440373898927901971242525027709139812822848739345710228821036012720506180437675219450798680884340661574163270608532359918534036427674928082479068957883638723782925083748758202268877618127035107827304212724481131972731609344968087662785613479177933264077440668029153151804498893545659925313171853592251931612904897905861262270355753830259046004313469953876507224431724491854336949329817338397547064200936664234981375323056819938826021818405870913668127463198081120829623159537351621612290132779188601869828730607205592517963589350504255465390078578836829030669367707032193740269378307469111677659442913779871940572384636169339237891043642007562759706319502205039245256895559597752515414362162703946807905725278110818683174127248695255552355531156019285014860757285952262692903442028228903567279456135370923798895046291174191752898493886791001232929781412756690735292236832725949361370282097370104594990637624923089893817944760628933829430966936500400163007835872421141563762089348529640875288931805139057496958175414406911818535576615264671072860415558857879927247517028225975424312515464437628899368628509121376071488178749243673277410810361999488555434093030139931250289734518124416351408473655859971175423206583422207913868405805161761660978267631652035677154609853062593986071485212907397275065149753796747658344799708460298859938999595389680487428844334627820739345937594535952441886677554487364115584648871767968229003968936923711981711651813143198263480396108653294607455863888167207243292250839897639496685490977634655911018350495974195863656532272651316462046191979683304108791626540359145967845661393406920934007986902873852246082341179502547981445819052563247323333944442581306925436443292791436234534667849755964594764585122562153399050879034591931160527693491096114651726652298264849586732996527104852833677521274828151178923842921715899200284188526562243392883158897552393110911341070447931871680481620846778767310626695161816934628684188734576796046228633319231129985859051535903947288450046912569451352579050496849168092939881770287487892004213038323110877558368694616312062607518353294247861081650089735570031154137536867542698858112778656568186788506397868050645792224139624943937454969684250703781303965934687449118468977281422077491580829588667021111187543400421405338666466678319379814518063730464308723941462355739870308525834227520495581642413244165445091072899491771010679154536383430867170115574379789550636285629250801643499193138335342336912401485954988268136227568535287448958396699188626182790549200215619468289560487262915500181291616837509748323480162751575775509126907493531843298392976602168824045894986364941386986203726068955881716903427304945512886002189078463328592629292957641485663420249039609765878784845929561071800108993966152872171445126203260574535086458690635247511083802876004016490172505401248945105554163134837246339154261209596632268438136874434215356226095133696532539922073507814566656843654169448679710399563614287144912528344007860742989627979183231400746790068999638504973509151943668676727959845762509419518495923381093944178107660623585159287397998326816821922589957335941026949361697494980439247798743914035765153851083353940506975323167738512223977667171609820602452544297702842696105136744789490588946843654104079290986899374354189293598723189432530863384140111263249149167874927884175553976239741414915576857655957878633024620083774675474968010103743707354594532388286204686055377276890246237103879390421275565527006156050546942192918871287305301623628080111978622164191551467788188478675437831649180426107544528302300751887757323063039447780789240665695181573005976368613914330039647980934623872163705721658986021047787856321258371439159156526749431669996416488777616561253693759319527906658072629135219741347805546632810443348071024518552578611116395251082601240776508000983931322302553964954943227920006906805402182672541177249687936249609604570567183143719532440787706461676644986425016816383842749899072476002289799465578722447207754968813903420197943928452429175408432595447200102555229710414813457379001916332067429317735065403944729360558006655642942048699448483768096912010276432969799458232669294305210253720633312040188652509501545140502645707701697033105418691716597429199595311518019798699075396643989225453078313166793993904364514418894713325525805276971579225718742095510070937093981020474626219039248383861682380177830174834236839910126315315385060293786926374546976843194509779278186908757795876413722373649263838038840109807499265111691437642167988477158111793229048136997929903188370851158761013446149182287074192325876775192028046726291241298669235128107570546928229674891206204052336719493125682532989185527602506880221750686720984850853542944055222112976744416926125946018462633325644955703299427206197967129776781368777487332199505571958793235874662779763972493356319581876680751921741874032740666658741804014845786813584378465636038248895115675876915054302147530395921578983506798516183538318131575701202956090492859065419460416047462278888130977409128181121370571934274001720033441137447365051204206970571333620011010466289441055180522852930606941519518867081266313589395513557499015862676683634616708252676121157384095936708119527985719707447330063902365703147513210357748288027131871219206496343252715527650688305834868441490682279479080396324077781661057697172505551980828382673923790208944154520084656073431543538868750789231995282494245235529281420004803831986400529736896379891539606485380821771384814009026357798924735892189804949348082587934099720903631522344489107660765340437676951737294578933962779653642049500279487493908080632231345057887379973996491653961935516212369345133054953182055575481997196628999981132167152086406224050346945654737260806121003252730452232661035246279017802799172314689426324208227034818208516661785551242533368441464942770625481375994903171537999878074026639525822964128879528389899662028160888353625307742048482681121105295318462193023369806111308240162238109067954360148049844740068686925979694144225293965430151192777614285989453970360999123011714263620359942470216456626551369018870008082074594599361120298949047306743254403840890942910622015564305187383814568538783147731914700783811995851029002213952876900107123199801417473878641028287311501255993417450640227198353687355998175621216774778662368399240794685282797148920518470305985954863514030863362791923171247409135282998319127070501544543804631787087898874108098076768514825321660878868897764799277815519761692434182601646994770035610935416621397413275291383755543837384098141895583509918582433794979539580342919678537402901325658385279416695148540763348072043876460777477862025525646146276077712000861124282289715895164458702978143752526898078066630616225211977566902178653366187220901849144439845809187475622387846470036526643167039918437469253440519810990905411425522543046105271051041480473056021025871850699382539721882854840247497177821224290083118304635422688371563362373843825302412224490174652658110738099808977860939386318113451499535706278561431660140982210131541561802314790125866674092246990954493740488164619095018088920114350313590860508992878762743956174652250610796016163989354237162473163664533685262565854579198394113104078091012555411353258052477120060012475348951120859189393261491859739408905766006880499439887765286578116289721889303812975969140766363130738672555505678659845106623716312882291405480212876513310031938378721422102963712455291534496144942606745624353915796416200277482422467880254554266718831794134169210076479511871207847092238039968575168917276982626169909978933489785956263288770563632477562738190200509377249087411334031781165709236671863235940146883831824324939757784232296128689852604728246321086683925290142787056056426710927296144414939879292509353231382001149431205693977856157565638897872624583172407303650063816033480202270921996465677409136280806283397948816911366675371085093993350941412449102091347511657154102391115893901743355564392399479511387677191142889716355857341848445638120509124158548519333691008126708658205030770275790038494878758962716607151848747983047666904858800052973625087093201850021241621536343032512281615748998579516203876921636914113639404112907212104971601383335688894771901396695440195546089832795374868804907770711363166592286069114117685281241120287358685008432956040313729429486947568041739702450194058758918943503718603854296324695982184453065424091776955346459704770361665119081446288877373619576701267127458648428265208208387699915709961671418121466777897502746636441210827789669032131732872127798425965571274167427897802560667376832247325634018647931614894479196900490507983742637647461443518688947395214710429468027620855267809887405716329662004833300354967144533539122758445296864574281419239701515513662688003651206194857341595133769770160485395242533277687324706141619638900484249832504732365431463634873726374661368599000940242984646343955772742212220327639811725506779156052963517327019608507415549937512127621414301791849598226032402103238711938347534915167894452126589510587243358325277868411840684254542290108696133506013704423431493887957494845642596720665240712373032390785725918840054890950725784264038307860521974874397783479583990843848600662019431831719036939544517672619832234485197563001909653665085645057860519529303454350101326393154418714449395347069621128123782173827963669264343422972537480501593389138361103437116408077024039204382563419760747292364647428260517834102198999181313345783567449025222889862747772780250963703451022015577839686238578813516228971641316719133561096229479123729971987116336914591036757284994326755952577803308879275222079100446124908520038586868951771521637044059596345213340312165812687460098205577224436245935764815450904947283579697213297569451929938644673267340163270667882366055520974733047510975083293690859744603579842980894861287461407743641484865719837727270119237606847337464195652858216397566480452491912801916703409358817507383223040573642046360229894479155002283836231318717380986399764465049202872183521577033130075180605045530611278996666777916310991144223280958276392577974647674778627683053550678607260950479926326851340001492508826026280357801077320334552969149616521394608687357300898476287698342260378661854489448179460068463579265638957019493117716835924797314913898522345382661608187843260482021646815743788975583221601559790056395529669721715418671475622455284184123968264951983995638897004956811664190127706101652433250467326435545807490375913068158958820455100974904401377454470443522287369880313567249545285837194130307619168655964589410517425851674861682729765136041055272999066932809000835757851937766612828038131304273523160819608080431161576033774940504057859041882400216148963448137983379011977633263940331514223142748919895586566334083357420390793598993523916087447642723391865294530324848921774047501060877957926336945822806992764102214085103956170260503812624196539399229440865249213415195256870989665494996069585383908201402704605368640533832435601543302317510526412043839258852419274060128336978054272113618113341535326697330158782732709586771971962439894051114316070142981771184907429813535399803638128209650440480191113483583779977810668755425307883174781017012574994329766337388069591279518624771581381962905553379936576889585964468456693361299266702140916497577412213093443191489256098634198651619505598637577847170516894679411700239918218476581981765345498955499205140882818876892834565959607144679536205833720841452244651736882696482535632504036493311339698923475662086141559264711912358123994007905418649179828994584552017226258923417192008937736485677160204460614054553717335077373716087474036101820313398982958039790030796940222393649897631810035760702772296544384720618382167989267403056643387327730973921200789288877653855291161088550539553054582372795382132780191780393402323406599779799244148289060203653089899024453476034037061264953568182871168476412606255094519401505216059917724556009325510815469319054861160745945250293344988592743869617115655120241643413625733224414284725646936926122256916010218339228675231240838432599520485425945807085732506358738307909122318565957346544923208512467524822800557935635739753164356461236358729871206107105877008222580698314729472932318003828451198478115583765305832845808836047128833163210608698792396459821646202702728564198437764193630036948328209370481689599510572694285287284711284869499008375410649677698264673470870810947318429140609647440744220772449299939448459339310474674750159397241028475099698968592487477406195968924375061420459588499957600763474685290288298685855189855308927185736377198635519881724225254166746565123897081262569865156305230426320143464552019754109788415407238453642054077764165352284069069978833908658940837173054249754309876326990736120303200090951785767967596296581715952304815043844806791105763056741990435381670305366506543398446636660804609847452561744843111820010932438197454852217351412813033343787895973672720755819095166613261775725641823022767119003118660664329526149188489120024748249885434003218276692729530278644831229602113495442977958363158840854665192234617343423665621377108102143479287261762373647752012437028060850160892343003343476874762112770189927209482304960819512636314241433800214339885867406499548906127325858651804564289584054954366256687242768652999306806000240419312964120018053198219656786243349355450123283867284309690303052979514435966282177816639965980034970695547635577379824565985980095130771283951131515531525174651778635369972584436296016015329019875081101532616172839924452545524149086754875303500960622100991561966362771058984393890272939845128690256419214489261804051172506815813253795844572867670001159528071683340796728634482747015220129550626750458812248969449674434736258707456910889420974285689373172923182549393170376791856882739561938007327483346395498542061796208034100820759601250611547773989832494292878170046418921969829344814372838647479915011512881980176624405668753827896606213114072855672337564286721524859210043001482783537994017606363260598668699625736711547993506918789866211301061419382132903797045300272608795415047547725375434406397159330729517208673142859782179286366088950375317048505701979011458047980662442615632698618162954116658720241911411877512697230482804680742493282657870728269137758171566006845857977513532222881141092078725566836263295872495549337544446317858022710411586530516996007531903800663351450414269012803243266245464061768310600567402465367931601607333117980987970902096019788976039355212828455146640938543872188374264189252358479924682656677480376242836023864731879568867322062024376148720584011579345756358494186156908091083172624869745177273390102293029808066079375513114723066918881216798319089484117217641641897834745072329682443909335995226206377924852997441242250143019579250885638520013404872466429205870746202418852484227947249907973796986051456682558891889824562075841308758345164377960159367460945491016498107645743905745964676930663968855697028506199101860848012161692570028727212565013930188418657569396743016170474034917329281716665292996308653791699157414445048217698066719356433900020902752004070188695544559743805960384554205740838628440285516291997107822385896154054411493226921721083926999246285167760481441514768254056438554298487762895799113072552252202596761669326203006428510374979436371741818345992991884077337698975537491987405191984639208460763794318088860530187702897794263892335815423343780950333012683719181979820960094893115441904823997672186639515290373412002621146274175605480919128359274314560631772786327216715853303824235172543312529280791779521598203860287363881201647414966101894989452747766008613027193367070298248103231936908061782970768201018273464853491453633177108919549384707954029726459180514138371994636014311355727071318149418226847870765549188548102835846912070277103789539518921492868087633985697562230269138450452657857357117955056446594766180357699974790216341322558758174416519370000382908662779591812427233256338348375374048544647355408163908583590080415264564247894667512545026253033042451648851652182412010116231517976303235620636023661520835265028492746172228539520672725303201283042907345383984979271513566724479317064032493238133719298511037281698323594332210118785474923344691366083046753319303301172768709120356628598018909336003437622252127510711077096887383029678680384344570474197109124905589975535981641453985123920005316966635256634464812144001658108050099472619801271681114066262246604232474565373170740231055134644004268691887884579515239296171040114897490917401709391749348908621238491909770420683544015069072605705726290613995360317988434094879251630920209506253862220829945251820571606002090050043418902596915835906237438385091292557667417614206401576844993044459603106687337162793272682449394262140871802296250854460244446133177114165021388310915547577587258258755023184495483337793833629584665621911734023238001291153948532576825692048395618894661629798925801192926118240250312773253626715106162913628997515742086693109815987869041352403981970661069901150486778606139004053296412577601811195498046285695312887301106926495348939927994976228956767256418206845883411873602704923185482288700959958666927611786258722698688956369541247681871772608474170875090121382330694674902043584644903709662193594421505981531668280695051509681139442049381055960875290211190241135376493825236715631065735955020081162137541790378530348383025009459646477001955595510918327591805960282633994786463067524512773344339667966871743572128048237401916478628002827676381037259934007495380755961373106882085442391317511712354406803211740437085062237827996896259534414791968056004179191620740388293976269059486140947855007552383989884146148585008885356609126487768504129963555260751622485944715393340678899997063230912535870344456050464717365938080043705525443528316041854911687313016012255124856078094831818482184655211613539283563013136228392928000624098530538596018518123687248830309845271682583028435851592808883098352429029766048687255796461427927261949137474249570201473973569992172952481957718245626335177344522177710268569559467841596396253664578374596626355217806113725103060021837363268658728129153093123703470572356894537633689848065509713930757442547270290230009253129205591777691827173349071079328567985800343060235937129647214778514346147166278782442918164607673496744047363281332412817887377194511621674509369725057419653392255438531829640994833318019822425662031563504884701838626213510236250780852048784111833427469213568340337834525538199488013641367606278164343401980833899328667204232968618767935550132358923186693948167340844180248322220301160345940185918562253168843522305771243422122023312170779265725146139043481099799730511856783707699742239266194056827170095097950051265771158265180054819750322134492879089805874826384943543293976826566496701312361614604293047465851411700454372208085731403447806416497476051805991990732394922769829208038332987190709266847648131627775811358123429856664906430952535590555186051697204883390691288456370062077197503697454329249314290855745019565500999168920772011521962421254631705450235760427905899803620001638840976821771157535286502122192432250626855953529542649921606700302077108371187885985810042833863893332571898556061976058469273691199836693465828601341378704642181557043757244400790478835565633973765558037123115190895172340998216112968332126227623950602741945160735777487174287225536540596135208307319536334373677823779015783411566066206339771722037543552424455031436986023114471956649778748437041826550186730375998608591940361528694460469717435441454252325347008919617951900141966722565419683245468539076715590711129928028553449253671380649317689027847052039231754805994373092856330762116746596523152315024410819375993714595747297869724907378843445486849261620361661827708860889750541539790071242333253507403873536877167008805896155457687023250306368429397453818035031569893028557360728728062178950861788799334394917237366350353151525902204251668818014373212799301665950308924715662837420192144919854634618241709788867957932281334349901202539637738765583591268946221883260040365553478447457459707725167225036748368636966780832019834046694193786364767804032552193810405868050529007154599404487049335011483707035140728161755070954081219171003881051627448990957755212579892992481785843656282321010574646933619315205316536686030123732190233415383362834697047340452029105167627807584983177261219448157937881828792903765056964208921734450715665856248560283814150247425097010868170119854942442082845600033468604872857091225529867647741584465468950784013136360571031659219611594755785886972216932911789332803357909602672206812508381285675674553089957285010442620581953303539122487038651590872849844117693106904366746461344360842373610309071896504777971631032909773071518255005780566541805818745588218554113596248778984471128696780300490339261743259046706730394859021805902405881227426453247826571187768848081712300936029419883703891494491077238863743215843292444266238330461803223457100196476693157803608429794540308772110241148047636030834639611148682362373742498058792305555466503351028025512780051023954887571976737246382637398498438785609312058262199608113627886652920204773534578248940511845067751613649144590672600929678372252256725604638707015497049860767275434768619841920270753530761312825788412265446475629669785014407453267971449622707819686610800614596340997215626573437239849380319776927684211205220994454108824175760116853459341730922257903653908727697309331581295437722991771981242101657499751918792598843823043981648545639758839819576501121118489688968534507259821164995809448995972944022547383568998582817935379856295863642694353729172258412716843313913024035562713659632609398119191452533147058335485502633834676167080280815519394953156284249299488456378492901932438880768476480175500181609180490346130678619717896602362682876222660335731182667130683366073582132570142284452386117525894818236453934529604761373471001934715071542415136822155050097910979584929414156854712594199388480633518543584327900024865581735202817487457761793935449760941484126942560626147182090104043087456980745812301258831553805946917300120370007885699967775889114067061725359497212099213494560205073172431979628322206149611483649383791354134767983365990727019109570919795349897799527896653488583923045177942268880526049452034444163245570290833419178681637095970191906465947465149567702355834533688526372264872379285017050999746928536672458520982992137162545565721348699995574417067929740861355288955827088085183186988191485155066327605808225659409157679022581213940244534294072391520561403821057998856902135931396531100024556789785996302531160541271230912270520009456349244805631490509083823965646115670930126963609451884037078773293983046934380226080419889115857564670031705724687328293448250268598937461491500777833037345925198233805573039862365280373750175833311631763389014479041646596124783771987700217168931726406536198719686196999338044137788511886109677520588688620858164443177733455371021778144541996361363220627479293598338476370275762136697895547975880949999411223382314268711464550321549794830523859625661279670484702208399259763907697049490456580543108045493616648046930931051341319032004546338978895714507535801918885968386210021307558422419961573519354145009813634402054757584843404182659550246065359411772349586136479813048509485088114826915685727282264446509389980295764114160583735785997038002193786426433473390393864829997382163511811736010268014106163139658737334524153551277122291791567497759941728973222326742012763862441894999746184575231660119482947363223134699894089446807608485180738830519704823587205931950288968608714139235238223480257291922680854741551836067212498770462660384541907728685133575039383448234897154343357278902827121570037138256870370202709489503577923679326808065279214557006039696042523514323513865555984611389657365946846466696595850645263732014982815738890447082710453411490515281841068370021358526089613881839198438477507051449823075797614249664072385408594026039767105592289875724900763534012721565671128217014869614352674071945068379874319848853062987824515847532116865123634410005368688221379492322450589792077847398252051880153035716139541870468108668338388731944903684999794680774714455004137025847628489121914203767003201313988811781179149346322218863105601604241953822636000917767776863699696231071088117551376968332527574645747136099520287635332678230674081222102368278818366103898631993385644034638554057825341038892976761528566389040196361597854968213904436936094114993168032715919906998999777855980504777942310156293694801027664924600384373211847527921586437688830933821791343227893863239585451663774576014537605774804149487966648027928578831138334174904150371227857927800303421980474851964906576606014685759755813374333163621285822922204254867986839712255846807114133827396833184777508961313542184645127591605352391442331574150138141151281169240576321290079509683878608484542464651081970370998008964425357180035356671462578372615891278287430271485106847591287247489198415906467550859606855367848147707962766525722134255404413282312753429261427209126512901982425212006850373563503391857950542500832797641501741302881903928861851714730082130624409108828706154811675321610527321074594451201631134481835575766022175226951313099196415534158107264034877885061531010774700183603396468068665622257910698913660859704205743645021551542118065595190087545019233894400569206734637310606992039031872914608052214389676367841150694865224132132196213268688596014700701644236775358818618026574215576883327175231346828038737236210037606910995278261414271589816590719759623671763248903954747327961169132405582324289577681715001892567390961419014097833153648530617743053066315207054824795914233991278643661701441963395325781343772486200853012956918647954176880941444256197516185628473408738919545662207706038080235834701184401818742500644417486728103071400970148232039617235179950601470527952296200364173593563109367293012789097829584606605040671154971104104492680597886680931719137636582757473646142382892805175531742293014000844778626439988150877807645591664175782627875916454985420092893919413844542424793592140533780634707307338212451610433797447759866535714329033414969712524665552021604714676595115246843440645188260104176187943975709395865651208255936663521183783236641553071936877117228180291304017248655155657202783188761055872666701365383457357376962546403897943609283797760527369570312383323778741867184599376825308358191149376212804777187328012122596815635751764275245067005722538419148977369752101267180113687115171121381676003478406842842578422893752230601587466914129072924792424447559997691426485986134342341364011776641226540820364728681030926193645199812538837494324474288944655401406166514145645699342043490934063880098983837589375935408125537813402680317130466333006427898705380571976086350047057518687831600838005646417334377413186014994620031343865138339608252768934271881803786082465581941065675936271078768410077201331271910533129204047196151357971748598355178137072836172339282020415961506960499769400572947136494983660909826845009214552866224506759679580001285819987655605705148764344647687254542801547482780443170069463530900906739840203008691661943500637798417470379520550835740407065338538674389227942950628764535060138419648698744469398084714852628489053510349468798913164395313290643644123890879160998760391992649396939439151608654725616397722960329137077470094108046925729753969927724007545491752219921328911297000758482292518002167803355802900282151769413879409354983554792374007531564664231285486704095650467827739813546280194562529631239942141391612093730357252905991478547738841433829325985194030607727687655562950446138884469769005041944180047714995981077283434997796819033119303858738402414481931399623372584568095293807492780493354652344015020494018325845370957919575841037795420952257942202607771988489773218793906721253034610143400400754682242216768145219053206926578158820599911818619122250230669085981702218838624263857408419039845334012547685936130963511048710993617319272147326362409420525218556680448649164052355518223752993380483781245486771116141208927578866006378174846120872659131429886433594423356595021508721211944081167762067316588822785851458999544929262099445204515160351422360681542877956046797308499963418003509418747208116179355398229731440720464743203391879675566873808951747577427547001399508132188406534025244188019933862510596276088834723638320062425766865860756775871508908640594621878916352990124965438649405355631179994324761192848787884186642118713705866409769311102179427925177021664776456354805015687300173551285712244791953397828984405995889259785886851578509203426394323820763008710569066158206556155379549136373112768543320959604933526298684938240617681607872255050127799083111688219232809365604221384228237280693792826723024898524902273067043732178489634366352464081415844186977211133772104455047450891119096554276927205239230273175137393794470323107633707537706202731926931155613812634293312836035618307975740144370060921821654460891808680765906215609603115929053732903658800706277856505932125516031192551701900207350085476647413638777870982789596338315251771306296500643158026066595459269854991601514592261291753050291904466622887226972640064784332849224547162939291067655359910645781863348878165048484818461728024654753103001113400523230182155605776661122749526446037708440827442982745372092904121158144604827433854540876235883058060514447083306193482893408244902594405985481865284156533356769357632284203613103585185112169815417036378660127229480938432410518139881344547873403594652215653212122610472951107225094565011182809559973805791037856405691695821152487038333869941419990967867653011163301349514591221759197144547815208168355964810509349343405972290411229598672994137746950404884042949819369066671623015481962725993702859984967024067789523191880561479398503704680069876440015491810829124077256380915173028177337972225989314839855306794569571851953589062359663104672821085569261925383024482584037190135258427293782082270066033702921401181131826476933277603762725524459294150457002825282148660003715431875820042804489963753858121780977284594211310125981890042048134498930473556011615478901831431176559885753420825940953824324988456473421930103932928018944338888752672491643810471871528231907837472098904062532576861437299035184903163883931929359758875946937183522936888312624048800954486272268983388911967772744681082302469045314169534875109784749635089136749496685212813841748571864919107144895245582418070170703904013608799770433771904710278379145444442224048745168888123328346972158829419689275015575887928468397292188709556930597297795234787755386970373617412762385136202346375978550717769163758286321950258883984630231518209159161566755541666371477018557046355565254539427179365039345615770620673399692439917593334883275764893473399936281755254987835922334557707878394323709001325852150296029176003323110222009148988618519598504608865494204361794391163659987564249520595053932823976927581951816276445902077505423436780389614510687601636404130179423621819714645949337864274682262986449934290640251360996600067009898521159328310717473931349833159025858712307813091322567585482111381398381795106687158560799150011826876640762449613851763752451347090303117061204932627649293059365191097758506588318154845285092664111577653461406992260489420506075705990693373661301575121222780092485299374273745638284803908143821718281898946447601765057762431061281077008894000198964097882834094233802970875862664904031642094074892947149080642413142614797229335527590303840790245136045537690093253418414602235079643527824349813430443571993953745491028615831501198297528271927321010626297883009116802783484279650833792130327773538137475314701135045552200446417995790575868410343622501894103435589139159048768726230611453748615502463609274483770533497669594688205672245448527450661515665097098877983701703348121631980688477099446288498854709617833421053061494159226913694212672654453813638005473873695990870779530729462004173887376675232446286039471753512668483163932964004732027544305894235982529545751532106514981777319809653296621591094996948334995803951226733877251426251374052564741735405739856693288727571049532429401848668518816741383827823593870513802878861909592976068534031377451915441766738333692297650905921063341492651823264675408870719088020116096602795430987027893372267628946944488809162406356108938168772155846464994695469469373213881488654753369323996053787402529848537177788049090022432039547255227973399870371807549274356660226609159519618053356402609617488591919667782103632079924540971312976769277697066701189844854283743960993450231945684192711998364844227383140352959144804539877605591318944129456723089392557455122047606770870501574436501407037833932839278043546491466652199166668919071382067916567992847641835261275917605472092943932267490667755006630311756058452303966400641684507304088413223520135096220997789860972205188570453430463910679400405602977657728667556458350173737051950696515641553776115179487007192186229480333394516478392693148411989230358562505488739938968011611476016770590327041070416388669493856316430461933056212984558196390390045931466597521454766016283420892199366007464318454483748452428768888770610642372149197566275765733596404265279615865811359747445254264896554830709010461942183680441999407122118954536519233787230815860267724286911694997632616673957021136969237184220052940878027241648129286886524856083245297447802849086107187606904401001761586081834128240325570814659610224947511348607458157796938812440477864524084558136037999239576567796918504339751326409386150808305836266071752636330716532544834819262388980286929030127834001357016998710601822228149286439263929055693219273084941427564728868188522044932301637802920939712407578362954473891065424831162473771179671765242632129801680296664797436468120998349597355204689877206571583992207189394746625226990613888515845984871743670354390163028834198393547380368890407838634367963077504134636227184600845250619034851984523630026275594193653058140581392192555415483468667681854194876989336483957296417113971697020425780006609011194751841678092676406444362053182621743096322313666988659890598917275501914201694767801664397492599490320736452063459878652305276373339377489209568958477051766016908081711244058703635826596313614089980078130384794800713674046556623569902990699534773522209675697037320150408126806064189299595573358802018148017582923948056232934149731480485499291945857338889463878950802394182904828296168004408054303139291263804176285121163081390924899475963059073169699543000807844582540356791774413177319418973940691033614777470116413367561198077011110179786155910842747761712862355866608522851461871176928168755095489730943390100507106708697424543750716163441121504838207930365524140549986276581348552526412823665073810687935736086060173474074872556347538549865821047527687615373344422774767047945251496648918444448812471331719232241268283985305907847621195376897459374737626413565843069082735365530370587330351638846920609829314048010415920769291928476419586285506944851446419526876388106771871359871748231210308168721424379111097253047775259200620339169299466191125271198654017919444816319044825697348158901370656055850057606708127318067237194132611828386741493182359017737927008771252510767447336752881514512601333561029358818472788276033480875217557725281716793203943136599177752675206322349472910553713038853002979096017399412860752977381513149436544810611996907755803545248674620120838039356473372047716821508554091543408795941427093530057660019932107647444488122699284517889404607915240571546629483221062959889744078484474183660766131749147631495884813227921300476964249223223948090585100009250490770482218181435348761390698984849905381063566889018991832302004087323668325680074769793723642759341827325945374540547036769703437463059183327519138988353511597895665209160910837937058435467871214104045994832432690351662704261394738401915600925084196954854538554579157617070513365902288710024070261578017392408833845462537209705637817889432216755533861424247160976164761349464603228335743223253214186902285841733869462553559625888774072355235758244256221057855415956565694082651987283381514776383492322307084833892527164015210499462313596558594323929274469034986762163231774532510442015800224016199123402604796954967794247147027381784447002315173939380779905120488134675378795881102807786714438354946103547056344639749377731658812882742669860192034348292429488923569832684000500930736118272480061416102155771993862389244763721651236421180051006617078549482991643287985780460389168019830354778602929404678407797140370083986895438607398818779950388380978798896049687118700106200723761734109623680911252868716099559446435075809839145911459626504989453891938638236271066881755124633118531330143651750467752310442753976503551215259278084864974354587651858153924650040940988473693675976490688250216431876513362878484402988421972560752724965864756173538949158634312526019279646499300642173632980813297960237359449202344749250974483780554905739682321783150012550124327329450856159468277151091245172093192592350985672001805575451000124661616871497247467417027237642440899679543311929642787630677111004307596018207863851621171552624352000583624128151410626269741234121970999569576575386280167222125663969065556898246178787491328368047285886381619017226400286732469309526914972675860842584388674912009594819946122210167153922329441866138183956162792562802869283734800953480274862706592068968174301678250827140627739560124960566792591760228061170746141347092912910080442616736858864254467089277887910409867343293320085656916591105640032989209906342947283320404588386911826628399768958439738775288491252147034458719821797076239938663954580252055242754210361438411174347359440022053048097938450195477618437154474859851274530311465880108291667629095520630505829112703045548398460357183612534207685208205634165372647325424121344302410296732250925691727016752476144333291239069983929185984591467756696453215795738609820960529012865659681574182215528415793289935685981985497519563914420461421439288986457532532912228000128025182102156385878130088895440238423176424855842838865692470521203710071067264001549511956219343611677359983223187005119086360582436861826476014007353709845436237260746356417521591253114437920400018833830370558634865700053107537647234322195013541182587943602376702450834487628263768595275507635125167825777191606695986330781583433344980530311725896785440206273519062879885345799428563968968244532954381005388916771824487440756292752431527288693590646571960120945579611992901453919508655330032630739213001455621478869810365748253868318635153205899750399203282837698303455296416023823799339327007197174678771300855683097382290839944963238334117903247053859913740890456512711942092055409347318987256707100759650501468016942093825291233859618937490058539895913328770580016162778053010044318849900818398645239832248964118666924087983182005825196079394640197627132042910576984852721183158267215862136353990638225103299945451539120996931187790197181727347309496579608278484295110007390274806128513126903791810285602324583288661954690293946879198230347863679917979710303614273100944612773952133583538793684020815755826176920123586849100395350314700961286906641650902397670285222680801023913483936901332514796940080359717116789648806584457308782045273849734765248492563528272369368659955260286410142473290196697716891500665523414445598999322825094258590189560047774798348838211738457688605694317102137104901432683066059764636617947060933202317283085046929315870834251237477483123828389063834602721020870659742541229405662724806332740801224885442623799018619773315730770843266743783334161613768176828721286344905874366107874780373781379131655620190045443561387522778907556891392268587636271316874824434424668651165298888784303585701996814750642199410795554698627757791857597725820451920794163821780450580151892068310835731406795976370475505314945895793799926165005300746001833684309182165712821983734507329570643666993328429189631013288712694349209233001122706480548159644357644805566076943697580490615621884070109232471551441600415577940970769214922307373205773089736324424704795402135872850080801395948084431375108137525225541615598218896750791897698282456366089811417941349000030621382521332550435135116757507201996902077975106700604172882966024420436992819869530132150896800383905729849728808923613772818990123723863819408520983617397954501085006798985718131176315458751793809424744877817839763266572750132745378292968955664832830359353758201072661154761606077476101956376369416168720587791599625810217586161076200096640691506722139447526643490123234305547992970701175756131417770851338228486774011779324917081540589141812616346860080940525549108496345348416791515886156025936762429607253486178699214669249823122598723937338400882511160743437257866480359847614331788366788445032026859593647078564751483203840977615120187956309295610206208190770056681688593182499473378527577045533012106676269067090016815481028085836532495009140167678783356394540717094047657507080197527631032350478503249144937256220010768379944607431312527696194274682057757278671560999975493537517998602839660811789614098531045866205928021755104801535589778427479188307196255735745361518953696999673985381445601927089216407821179335648628574657060149473065215321447160226292584171986482866619400253680051552102848208171064240067833076818416780971547037613101237554051013362728987893892946942295783594674630198815800269595169402583371578317444765007865981972007176750666114223930986605014038259705491294475994064285454964358510950726731215323741837992305821868347187199725307073848813620855579547285683984350074633886705925496862550532176406592612645392275118829048137412704726979256052691007330198575630151180437711059987825246718273656992419900149712736832924281973826335618558296012845054542337089250773974885500114611490614546172824194534146501569669880717702647705820225813893207861178948751298166521542039023557613297629345921565575696136006105329978572937411232422756165476506978376251401704905140477327709626249261016074170407295520305079657344912136135969174774932174657976977088052388085154108538389192176672444900925569197032757686976965560749806797397950721675376677353137686406361893610848991707978616539737315705772473042107593076149997464033565224669622825921974424598020880141183250171977199493547468777702596941949937018316118303375959929377101272381882529515459098557927291539939372323353103744564934088178349885456620306185826221412163763361325094663883736427618378648925875941024014813659021652463017252045579672019751525647813061192711392659559985392829160635757176583357926892427192651380039999594913915071142255678373657210280905487217546118392409064338102140396210282471173879767277344255235015366365492286864929861162910131297605486307299137750897968528201283395548089808430972466081571310050332066729444916816765633111924043363886404670460851506764020802011207161777407968291431967119395906128192810943361402076172495815615517657520615339933519377146465957505619092156400673313059950645422775038434839311929842416046541775435632434970325886044625808934734934790003311222289460664802863185727094787673809520803554762316350758961100154327547222677800856728897078447600754075211794639127814178425458173950241007789387884032275663310951950404287386520950957441832975928933680286283690630443246399175764458956354167842527981273768725346176100771703391830330663236773595739092752609929610618844401921207477212625657174300828216141258382536069952758970403715963027567346392326245389964580242523080018435106025938457751908008371845211471993435107092322543372557951262531930127342963996789331466079418105703292261592035832402535031075776616882453196129290897387026495408949921506422951548771831352199599698284703650602930737149354745963508219451133655990118104799506056106781584294138220888754604135098668105190345202066087653681234248709467254528241138254883097704957071673990736984585766820926773698975970064199949654018191016874460145125432417863715407398642917546291073001657848354736465369935423274945248511432950835523906449273373588582569100941772733257945804028858236196214301649261894661406246809949452744354710905610484385432732606489724621184400182921874435658837784992169778026358704194878627889227207547423016435326305273300314768140575802673982864781078841746641318410271069100530290909377925807301930146850887821730456394719186652600559464042838804813146734031123116163792853283248342271148512181191596502490199337064203678738960507704569299603141496123659202887023872013118046594744210307522794906795305434534436658945143813259415736503159118433637634905340775739041085762709199968310315968634044834116899561979212565999857471253295577824850238177745311031553851452052512788285947797589980711497944295920976750531399080310990931119529733784191905427686782412041732177813871201719246723223176599248058705665541661317778887674153537844905662139336084867658042557903214686362734524092755755104188142114448697108619981752781496666260243591300624630185550297628418502312732032616473955826628035304350205134600628452128122380848870483674114212128725387452563371737298033619594162652636903784718034913871158862898150612118990615644244046888985588641697341274904296484350967466424312001815663182166107475820823556792974799957727836669247943541212241492622651138497125471981190721199698686141400656542049326836232227829071520503879769097188770260336926014348358670229700871157328894331736627522589857828209646320543902179244708499439491443940787917672107113199178682357453486325508828184124037992375392304955348758770867756621467315792703404692472569885332365610371349590928654012260285845271338367580244493025513757038831406837957564850948876983156026535036980733573258231103356408799390928695833185618538136606889422028641303155076978390432255023149126362776851733341433752915613467282686882424181786059398441224729251539602930017615660516899967031792421572437512871438868288729805399129640471122791434621284445985777976059498931717163170165810095331684047219369827200926698637843176816159454371887010234379047784572319534788592463521640388328453778206748268859881701335351664227516043791393617301811924242775757554692329675940500541659238823727451739022259967898508339490203744504855224742978767754596755160665595949725158492073279974052035854362369897772644659615466155948892840666168684309395533511549163695158843400274749152306652602238459699542023720403367406392870936149078916593564650573367332949967660895221268624021139658005951695376773436874204331256333463791327129284368558178854286819723674943165086435728861771463652019819009485805102988659616553736790570900516105191628643572822309744698790799884109468102657928035422593142981286768676938462127658209260509082561675699706922555295532863807793516180222270073497633567668072554503694472273417502876699002408924244299599426178376898141639469597291599685372895932022722900731119361182592857778785350529704854707014299707934259060913197686428389991042635633037963872191759898511218796441984316873481917650413862510583590510072392470081370277728520449013230182650414298062597283642037438509185499099031668323040943464769988880405740261217421796987305724191074489365925806245570883746150904934925249577169723173248866629120745427013640834040891554333672444711540761085497448676353678025911038297650311571893895377324933168253530136254442442126185159628388579544601337299376041446955058077716261316931643770720758198765250998439396158476103532484588719812273004323939594478449246792902540437966641813412287838755205889385366479540051707449623942768219128188393786065024939874703297332585513496062665377796702517203342265318129183226544449141131813549829844395906951659726873146468497452629654704612133593325279971436225969074264239771182635411730380370469852090396209010201228402428424596526121556932290302281139531175074188481373861163177234178537318512209148007581072321466203216686874087197641207907536602544768484799343185226475359336284090474603074082643258092414012525922790347603046600492306088310014765320816363277554587608190228721063829282416456020362691523663673269574850555434593043356482741057041291816684372682767079741784104754599359842108728379117839552540404931107304061044781455140046337703872000819402730566828486636202229552310135528574534612198010938000554334990817808094428299568138077837829503398660737863342827884742124035907982308237378645932029674604048612747046962000277689778591400615499743384502646793286630978343519994321938689648513812985155999697173976026558138864225634936267036352311910377799516264965173805875583473999123782035843007198349859144480025527517221266228684612961213741744853505563830909045314896778170776171487826599578894415713101679372642456350558146501236106543655386947800732802909470666343076184939812482417275260097830504516004515553471606573244571869975842201252056373618749093052185031638177676346826758068463330073539554178126634434058726398678176443090969875118089981127754286281683200299199080152677039487543648843750477338975982891921069789108714982890949659769125624430806101912837193573242703869934522079745269202854436869987268710166827191364365982671678890582722100535704267105834650361179604152081533754645048676994213694440284923040233754138936338087209030701275034529448072132203588982295890714199505533094364224780584135313157240825174142008553864228284386067281964978548448169335087670821780349616984120379679187646775162372050047650357452683437559748107657763297524095824050929876340252927852235225451714886846871389812482812916892592632819953820232229598835342888357720219716004317141042909671216792174397227792231401617115732801392073325081354350808174146641465049637837233392990112292208241750001402572001189590498075609712594035075007315422279254889962512227010111823466144859097794711267976971729882676542848233437803671061474880274601875448795266174498282145277454350072829483187255812143229761803610992068275829377909642155442113599640549381500321019567007499969610042904075194057962636712471395447048246907936162213544852566086971627564396931917738339566346693012074710810647176847642616847133208485260848074385667472832849692340005417068696820650510314216452311797378052022855852098868801803342471428333270262522784797440997240209729785576972169858009780287658823138453873122593429755723337946358873376900763867748489177623348202693807009026234679073737903764906094831548854452710453676362558245068912629859879627195968443206130625761405520862383830567255509966463199406496717463258235683464086489709645163584969158544854799528559571412218028594579447861016091871011638677553065293006944108701638624782461153250121980495670098732307658387505190482768267944548985928946811674521626598207490932707864209023569409963658016801715381569511353165618312806872058030340395231335719042824106462528139582110016885735529203153299629784286074591428799579887324018804451478748890014884539961907329107487450143130238462784835526994968889391375585748110613591995072811423843016238387416671613123001788871508368100181920435555891018021565463197370558051390650914243613654794619633334753404556315676808259025520703977563678238204437477566752366806371127452994987430388659149404243104971859810539894809518983205868614585656455470136196575308149761579894858272939438798256103268282472881127513517079991898641500495493101310050532086424003449180964920406560854471079357547526677708067179628937423637784808695386049848629883252724475385470920942160491826439355101404612936382669548289279284450658978511530523906261733827902462755754718024420575685618941222399449669724033886466913289316033887020297055663482096399627438848202486658288948769510694127172418208464078514127749467479311412428222074087683444457673762214520492168970791175104093949740200281734725766044440999035816553726837647623821755408405879181331213708201734590377528789396009201844351571171488322295059215777016551057586553641356300154223907374862597336398365414572414724268206600350459167331633460889239846732178873622474559255350713609965612126671552167616587440297980722302111077388370769493310784890904390400893367052588932490172322507446012661781559110870967498349604174299515979278309565528088343645210832694494658055152231527388125317270483069910763627552934266218274925202552928010397069739114948631184388415203037846672237795369709358955731467224213826569364580576433225991957611620707719039193830860805456265660925588367842160948403771267799510445114021124786050486426426016918843088067065213902664883320234147229162719526368745168460811504678463724299285295392977178346903496225287515953817289910617121698883951930092549014372410943756761396855958352130894115101233997067246917918932605616095997770540043979802936681178322666860768399480856250049528369150112572422087656408789955104646649392991763422878016929241769534211244640216024295184948436360909965275011791368608288484172963004607699841022175647876198219553831155865411281802420046181369545725842473413466879841034224460480688682523903222635829539415833819024114165699995954514691359037766787890371644901530795179292831872453644758579690314487032950662894089537225365007074776984399689206214018232330003698562910502234019839597189266651166826858043039667419590092736117092538011280196878200703771109237339652231052452585864775120277392345043318205944948703051873174604222435846423107817888653842198044909417006303017987293353532275791880613160200198335457709375638602624065128649084544675137692208017259093401189058720567804673148867878310166312901797140545225110946994540809371095719447679612306936356304980903294002065571433475904577927530627161634247414746979381572093346070221557688583853646125344092039052977929288446989368425524112940286528576287555299135720171647969235129539398187887493609006669683806222949565007681540462527673774931984577879567478086857798706913100878009369272860096640659376447427888102693429234851375871239433792203835993898365641208128034081099863284346307684276343479134074240559379871141794945854802175189591587246276618071317597896643313858645997507195263548804877534799967883184641289932366485980007230115861487306213876546879766157503833867602870587563889043413221491129428112046467806794607544166010703946634251349411982494577176626327055516891971249141326671728044795843057488279833812337078336070861117123264822605968977283101858553325737653256835010178512504321278566378859793826801016173603174210530403906104025555569893109129494489666220784212616514822041466471291744124379545017098769655301311237986185902739821145737929402140986699220791421798058839296375630968989003008096276912196796496835896310182290121936310003219439329997166522600547056516634903888407468509715060317265162130470290397114995947405435618214826527234187649106644247696334366648615225751111441678773157990559687032558979577553215613796657260002057976491911092793439027951651298955996217492866293655632164935595704471568139252767773066553754092182295195178681952651769554712480663158459693176745774250499950073357802167344834312785940909634438188956085911678374158250575350476714198668922857237597862181196607532266836538292735122893654557102113551847362515748335634205486096250111327179197027090125311684309321213870496009338270791827014515215742475348120536967672455964046370981196657255393392603327979581606855394897100420082318913790598201757080226249641537266290234137094212834027678110143351013620892090160023807564669312118078985383196767942691551669316864336229376970660626556151446673328310994309203085073346079828951737059706548542772303131665578759694986236668723779567457401902820008910014350972366854146324407343775292653043099541517335989859128637917020769747684648298959811533147565897155971113296546379258585446442339801386929754060308707922188181851631444815576816403977605403471138194415395949319677164167655570690489469474713100028975933588497903160813958663079631519831804040957556346077451807449898869056860051741260127396930984159431876593421770822638243512615102815442341864151707107256395038492553165736165047458707957696234440015730794197017898538345125103932148295013970072136349030306664693756705662413105109016640088567690772852298680525743766257912343982996725945834881198637629848291188625008515986699418617978357500268719197610207571619643247378322361894883167960028931297309557192038042075515165854737911116568535160779244023628870848879680200577357293869651214654879417190109468336515354233134225723544896709413484133242356054493547446194455132008861428958927354904768766680140880481708395111038369529223452348480062546580279309029691283342777033892248406143586017262857035906430509781905249853326233067062716812337732637285094127282517232872291186680361540395944358593079340423041386516251800911046460848297219741215668556242744938746233199508571474464098656328522649180823236030079614244238433403730488946005960914780388437659536282376437533045425013410321582984128132506790412474286740011419977608080815675506235148419106879570654505118695449817049065316157336647560318330824284445010801279131020650487011265418458770510923423564676988808494062705750243194401114125558410482492364530350880521280655749206880261596108816240400627332996937164596854278971590128457980140007877989113333519464179868388562787786250649354568059056242510470747593489568726320779634047567604742534967937689531752796109081420746538338936802455749489957637575183653055226108003149876842516685950344721983915632750344433486621465909941104169774322874346850937893733001417503130921095138940141273615985043511356772138076432479341157706969550819737846800038045598832315938406747790857880536002900809874499174612034888001918097617735918822478041743634844889275638226730292435731674746285123095238648340956095158684197678503416878061544736779973352333248693813451046667822126493188855109323116540940287003220042736018320785495543191550562762431032379485925857193522223555376789174662376049229833567747393680506399745426605400975869869729804835935232897047081055306593320155134013286246347033959146502833537232281269158798384190186942007975523574009163333165438743605484683487496509290005035968777905027311079003178253590737816885708664442453878598250943589306093618530239483442591972702136957046502452311705101081701977871114747690683252293553324228224268891820433551869058752859850634550904587248150152938742120855251691547541218212159534501447070217216790263264095358345389862624266631924279904890594175463759227764877728553394836608299072410041610476283356778108438513867508988250764725401509956449599339717980690906068380443412296673113736324870909977865787618245062972862643318972952954999587120756570136095319997764539256308117647636664304102743788271981915968708589357974549174981442174978992211816076395646673504252055472804823258022630360197481563948092793221938061911447408652840997688379110160153188651195352853177692161100417964449634069600704639394199707126376546329266194291997574145718953993059184346015012596766757331951184376995789905334942179094700753428060492130042414960304636026306720837876257793011459477166784391479590779873703320022902018532373289696966419720341564424295137623275356124160642826492186050160732025386680588494341720118125947199852591360334557267640412525348046275778069856043990057485331037613743195209401577732973813470584859203130789772086072108389198002225166838933595937737450168629542894986013279019851459050865668330670682912253083585039106941100466882871884433333463374815795688915149195153542369156086003737684613820575486962053390218993988422265953389077621643693321057878699486836297882709187207132146111364485401238070429611662417759861596309265567164105065584170504853525142741194459490788586731450050631909410438025618921616662168179225672794688649323907548777691432046668177584900808034822199725777510374040044449400414225493345176574753795979500908638569201647426301959108427880122744131878920350773394316486833247300396986509137964478364767657902028871910922524063202780673650165426230784824948410478950632888444683964990033967622240723193538136014324550710154581381720117771072693557387416837461737786809682261881581667311494389469201333596316643157047602893581303727803335871657489695221983008334626174030462940541965877574516605167054622341285568561468071463546858280737185419425603876338192307852705804983439556092039211894750469026789009522676123334752384807950018219081766402842408980624158129408161075930850245838046706871142078988016879306932101292169160188772832535551818051868579997666339772530518629574412547344079190948949364731039932992998558753457234888695614714052892098796045505376953066295064037901116877718074395959578185653637630682176910197543063022786854490536886988920763413395556823162715524922649586675838409301396483945832611615381658293309752179192930700916915277925222716741289978051644073331658924965294507666970872452003206355172442460000411251213724298187423851732378554607412041522005390354124982775883795529721529165514124265542792419877818392377455707164004940081690163978754951630318063326331379692345622727716238838199642139179680008455491096647094495832987637476374677529391672803907614725151626536096077294202926849334581099747446239138574193150659147444125039509954860431545262480468794516371774456116120187481919605828154021124063390127313151714039970060237673074738720437926540002909938546486882768104535305687042569727220327429253110156511939856466141463292401937199492529087181248472683139096954832264345287471991740100833226080611123273213077912288644356572345569103180942942911338910053257929969712260723076886171299429569179331947839319802811318345720003331479418369186832157743824978590130716523697750455733508093712143618138334418930209509953533095105425141417754223014404211588039467737978269052123321580982875687640139815825976955671701407310814436575944463484418408045470371357647994076763040256469410407471092316881814088344364490182761063180656292996739240148776861618056233926271197862081713303651410461879186474015601057793085588831786789687142505371039395516580895139532625987139269247476962242480482153018760435838958857402289806656923624524047024261884929452503522952921359803815480307760215989586375094893202481785717450793122195596890436592636108615821905700204448538621372377733588617531542911206770138352741987125350713135960902602378161062929296317492509888372612077377499803795878642790710671913580237725855695329784049269788111198943451648731899779863542789882919850807484466357111556523522773599477332976029384624450359393437021564477172649979937421862683208050740692356790299361745772767086625908921985589629818276718304752670028597657690934296515002878600939447564268981516094157843335140895509242048852500462902149872678010143381905057863422200560527184456283172913843769915192623904812375201504433591386262382809097193285993764338598891762159113719533858434169922347633301410469503348973075787181745712836717473647956868855771351895156241050374555966064584676119752845966792355480870115344872429275147747271427052538144788710615620700723556882542220979476684153089164710369246052839106261927338501201359286266152026420435700398758076530957252065750188300109864689775733468267915970703424705299009860901148722883243139292700533520362939215494764093683671289456066664081677456737849733069606393624290459879038041361935573723972498563970102803938803858583940449100935678856730523851483420996415643221478199156097071651097226483105812793659379158549232503076073276492680723137882692946011672687586711980727515411788618131257562705967750612922676655863490851636350182996812393988302415418838360537707956333351068645123978094536062586416504427171617910925558505379683604517094377336787613460936065936285278737383550787315810665319507377574098643215653242966127662987778951855254935837842865250325303900636611398318498630770843278400319965829472239703726216126815033518440030646103458085026626978979312624389804124450161009863069604129118016007594886557047927629513335281845713159457917248980088021978362979249597015976577597303790750566901432028351143935509833258166000318538556343384316456007380501935707735833845864347744253473617046289696820007464361794355089838323212683945081881084264198249120762840775547588924233814263191993659967196785512868368891036512121224752411568012812918754571420647371570417458521788171778850101342817034749703675261239586264063786308147080569457890546776731649133627723872480504178111602751423494994383844369660633213943233428211016312472735459921401004380631904805148823682468061284174736187854924454586661446162440733451957169314591157310900494429191185759781899471504539424246745635809880699122438234783250244057856669176042397707092428620378496336171369569690613208496747516130345802007762918282279654577997130874134933066844256518120645057593598378395911688692917648752099216505316003575462613375757835421867224053063845182834567560851193206074526392716651581018939219199192137991979369647638277663435598017385237487814113116516733891639065184156673530499932460172552797836295170743153724805397536513242300253536709651467334197483729733719388435834821519283820454490227376958375968078393339864848387911022892727538801130619784601823943316823068345952072390497272502766865195520298124380444245395340919080135870954654596924363038974728960379902027235657706524838699706628142845805635007790254205496082019854640018001476586209034308119100547806954084033706764559311980045272190056406061926545965720926051249323236456587484534550953681113015293895959335606565037403563406349794865397985895309032504881268936452671804793271303708011333533249508009923005222895845272794203689570451146591733684403932186698461967894899269933904497948805040687195930703787525733736290592205283833155640698102775388268831462517415547211856899633775289381454933340538104144861571686997778626884422401991970894515319723043358838283886477758616089098471444740233990200751723169071686719122411833593235590601505476341842496370639376036983605395791637681950899520252318910416659702661981604662369454848834374163116599747576161282808874902172216843118004929580833391373061852913205167851157952987105845846741720202381454687106947623347250267150683499848059124637333442198708358203055645958892065792986176876770085269331259763335913072859594625881184300570257071052538718563679524057209893329477848942493158684474667847725760064495684591220322089213541527166229063117044170320873872415861451983429690622017708555609477271528053756755701085564052769455287993253923311764214504771231654023096771532585587279860867657687378390177326088827757274677769169541850577331174527813800552235801483465452016614051210856841955194000572375095876258345120950858397771179036656295386629327943583629009029348772815268974323979861098017709887439082942957818387337616283428334679443574265340777820577785428250832268667405680009441623735024062166413302501998837064700766695359936923877426547054696719621284895872991295369204184800334722727552326028353490544725831063967644931085611590764196510820613022664025170691688979003730229787290846694775408911961300104393232656799584800280417215573342834525932788690091650255284304614503737498515617403821082952655275258859056514715856853193716979479693678970203599547990231278879671425393329048733713322817156126670176098308320061147197465134878604964687318387959326421782069612559113662806983643698861961711013080837930549570031933317899084260058468134275047244882984668242144126260591753479431856261456516527708063112229566410944127607604898806079839370865867983404349877386067070341369582529812752247452091277110026197773931812392801885755936636032575283457440392983919225093217522831930298618284585372663997981869474336332015705632297687097200051163410205624950865872504143049172618843308628108786819057653316814106573258606091673857463424354422534187096208623294819479866059401687346846951529271713968221838836616451908516398910785920209019801234635305316847894811621963413325046672134016142964985424810489414688217839717953038007927580082542718534634820755686013499843497789212006609431924237265020909575566107569888935910879525315650783342429873957887305738993009207527051366440888151188354618618884774310058125344065872571433645503897043158155628170698428059022202340404665017365612282915027741191558161118911784722060035574664012042904526230521308950813068298523866878562587753266763582019992025017585274201299357052613835242414551668792802469703108885836811325164584574643814663510954657299022593647020478817887858728823590997132633111764309661842541854646312642842546342019366683764134718228956209388823889576817027011217036123355174230424767703983316021895164099370138545161154094150082030907150179804002083317109794123239106270321907464621071439124967793314066865516235743349798656396881502083818301137607431994356005321189707802321969621567685082059564506887945195781081558553272113204658115417424360645917352521788888625409569140844426333209793774302680605192815060767243327249907815632104584223028757971584693304102946711114176780522851657921472867658357774195343483978735515777974382020247786063141012140065644188003959470636241387411540105182081628797558394633845478806312163867551279389402657673106065676820072010454496370413212872694954513838329126884503214463322612198821629512998410947177662722932415958288801234134598886718723359442515729249337397754308901466344175510926338045737521875752664414641487348963900611067889695885110353025894367030134125781905174280931923989905049323977330044643201144579537331430062791802682917554483981353826682184944182476684028934494349916418319801109963401342604061800797797505930222127898463229186395893930105893049349881676833669634958287949559982103771498239437497999128838911871145726084390973449393907776840663359744285504355240698336511528977916657177513173217263175721397789595363554082493293207318151093693668708380318913539042275972366880356420759035472473004706998155307642655132567102298997170335238252361782262066861169665560166312924951688985771672524793462359195362954019723060149442998988630871222575364890121135232788816111007352694369715949535559934223339650184460078344648382032416743287035335323258983386650122623346368560371241954884974439582160548999294848028805437416684609208422303235461369002067248765134479642939409252795094865846473396396839128869549957227145877846800308554215964959420771230883107051420572271881487560405537309027513445955572557889277979112027380599477686634803841097711967464401405915830835111872067647666520338560417424252765343475306937538651576711796911223248833038191547158818897531498095548044589875811281234687059577345223144465251337350126850086904215296971263372691255514185038145960856049178784957216486185601987802759053424034454919117398467197842811520559425482322428054829066173423146485654292462556461136742840023309022855757028998307481945359496991343925110453395347711879801380728132833397226776515075571995934827460418601076932604621314356861069144550242250475166115733701902307387475447302878420179904360832140897236770787769138673612500234441548658740806890313032794393859296407264368864158425671712944227820168036306008022982066941126366343907691261279156141775946361891610362961695801310193203723477199993999520376959764505783954326547948229166087887169509271954079797259066957934494069181039672387551912771058051734654792632939131331566694365985594460795575133447772079178831214302328054805569854409168596687340784759039855487605814932252170370777197228309373980965072533283285427790870974673201368173026631639899162919476045640061681179643599616692945996537187875929863107388346725990495927975034755256359193567237052141764988129669156932860037136921794654034572831942453419987846613388482636195458887887372615121410231903465222136511853904633994111793958069474116273206849359385262713480329011405080922649964750965515560869656905626304481562261243403767230887246187374026467774141814735153990674435219594712727309834037562204227229887969280453599592853584426668187843541060841063805459907616439961895019929278461421124074984552130404244272435208981596456423365791331519873552817212688260448395151919041148519094851909505359406588255060799341557851922190385075220271837826322161432482827076021798101457685554215467679703335929904352317319019746016426433714087043090210355310287690445967493620876384734057210504383323820035851928442026432556623332976629330521927012595201734446354810898850650803084026711293035668450543907382529563170897189739762509178708079973356846595503344935880315668871882987918016039911345168665801051354705886306605655034883049718592861517514909957245887598436031818427156818906012474982932096329623412806205149576543776008539052063661553594714020976545602481520340701066030351942332164031096185663232483938657736908374085011203491991926301937822998670099321352191502366639544291724692890411796877346498109421647375197062275683500455194265130997024185838560943877593932165279415052560214687310171748217513701120070103642027680011143127702802108734196730779274474511803120300870575596267141562204243726453672348739412843134223712650044550726518910096366497060126433705917832065302687491737971361539504073207469913805653678164813220905271262685850180636023172023012978889013451956578571378463444788426532073488133756480537195737461661248678110998067263200050503725544892402744410858619890491028377610481423173993481952092009564361613471867488883874562498443555960997039260578262919907787520062867179919878397345269070825778100567324757929437793796761287164658084796540570093466226456342115197619393952285217332957192438207226378563399319757510713267132440878061040471774329473255823576660596947855106070839763633766183284922922984150887298197828185849881050920630845247767590846357825156341075342801099882898929074037000696202341782991920453961722362609183231826262194805295766596771356916035329745422436470559195908205074619928327005086975711157535203143265357957549632896273032078665908333896631024273739650617583861794394288069305256732081533247234082451919129916512488991515320861451367315381808774428949651264051649232583681664907588945893261204073233209889583267704594990896790990890092978446336748933351721493636159039128249849400896874803458880505578653667798949332091920508410148602685988010920501602572466875274079844481624180838544006731264918810290777666093648461224280270820382091734300517948948967179470423670505062185152850026586452668565759521699399613585250901641608780660320417825809600998657919962158884105708429816383234711579597870510838599947538914285975445551654444920902777476449540005329989974365494890766171478389237361318714992375186738289371588668156961798331104243448834039478323807406828247406952758382124553141630421318242174959530717607101648423424536161631007775071106235260679062414948690190070650457295389280677079438251220815006817875196033529142400729219306194087732510943772309118292104473744618541806316775785453771954347970368104162059837216713934468349382506277010623187509751475696014501414541687937182339041857311023495085082033985885456598037566136250904154968680747188503280807081895878890937038353945272394457362644476344627285444023717857323139287736223939415795785655637144283458556661213448379083270185685156227024315404891772022479879232112405692298285280202559152031107269420452475135515922430128266225982505721561320255561514164343732581504221189397779825955892236951980038968724561835204602096577467153617852843802023923470628683959795402236511019924129391137218205844578608282698207883599587218963193029695576814787969242776593775204134469429042295555443551646199623733038796683491910928279182004257463713165062907687017214709417372424752256922002678063105882071725726295528557849131747835772265571452471674958392315693687231623915584660113521863744442104030930304964886982122051944909457468667690530373854099160927018612100293167115133490622706258067311928346578669800560461140949484291231222018849815389196691014165626071280536329299399285038517226112625758517382601128895270093170154441476707948831480554302073691620401734297734591240049020452804888681105212698194717200538605469349661803158717545893745282253602496625014657709797504363231271017815840185946380565004319185460502659123048692560297204754833509469650071210277868724519525359063566101802424170821889543819330159979094868774159093241585117356063518205901401873879475228903644806829891193116380078785255646515332685517614512617250213212204608938429338162709250722463949376971822440853207669485342905066255862490203323869366555587350261789777750606247060158876496713811337226820615124250694848464373202673214113773321213365514362896011443026014948543018725681495599985786367942105217168734062581037008368937144624636802172375541746547873720842249538414765845277171061622206624584247043122625267068393974277419816188567353594113265529577380638749841887078426017102772803771239865789325371821942692671246466156674020151739524986214793905315591890424240580911079708892069596744307020063564739529380499577354584933312146177434533551288756761880269333653010652786288182670967461567838178556757816914315038817828611274451322613924427960546083661409799160407169810280957848220017028631499758664885095876144064631162859775109896853255728517188649178139317249436846938010134915839266992404839158212094498962286453557462367558193552395041720050550180147474907711232913408529263730915051725030468882084090670076403450805316977863651986947420251856402228050583702009547240101740972781736057592123660406298386534875612444577204778212562555144235673630611612047480552252820769600085042113892466874558715041511117064970297913141391237430245351674966462881776615439241139100786733325370616047872950616955778919853854735518975612829891503947969088583222374966031337314118480846150686532124725518437110129780561347018979456998878231926388425250797730878088186094862192744284908992443534458756216460725815440623189477430048957835236761659085623260124893302055814176997148278265064203732103220749969595530892754051908345418885195592773918416470657938922664330258655739790052257935997502156748490978733899151961835280525027147874447137983408731858919310729225874598085670909912955519788614018607208750413352062019570892558003489044771179953554086765496274148235356519073355957265979854988753264818596331961772412640172651475322817444574847079434986510531052629363520950433915205420510691200668541880097127693114632528209900303710504509363853381513954682734828304701208067930348806002820280332873382744899181815577349585379957743503767304354468592580864419510730585842259275021480689078889003024217708802726935690958395907140505135918708907384631653103276607991538817740053277354848781213746497365258802896457159043614550673715465070554132901673536414996553170077093764864490233775047961421852612315434732072654981328960097287123780921384648197337782833004341534530405858645372722900392436578249105300191066468214210941465495791074467440978780191156117561041862562330736752698168481018860865668295086403631671212719107110171002426855411062684621203228283749769953643347412448734754089280168629044227730996769740991110791508377361821027018600446868441278788750185830755687810810479808561190817915268890906463704286518218163871377362985394926875219008350354486769936426952043777239675247864829185299561058464059621631134944437780661040413014828692945712442577149265275868832463761349768282323998708139125290890521472694569619785576016849438498430919021852050955730679621546765071195054703587286195517373777551915206375437579110222060057925459995803844472087245760839000233976885088011979072187021610757230964988690862802451692417660586343580632131621300020173136109566591545342792128837935224363129597128870030293351038090666991089631348495552525263009657224790848695325189169038431742433318888046872816899586529207276976402596522713338517647834907358021002417470716059184276078826603887276935418182723721155823391163271913095156464682269149416129566162984578311716431677826208234450623938568431691620605236464906538831237814926162657557796761395283706560438576951001385878505714815365879382802790878643292560033553952588246711668665468915492919078921988633731429211839211498541742768258786208699041313822890690431109864067152275061743950813568517288234315308165146957062624504726171073676383308181814093127509123791506083569759258076611246471068299969945339375758723267163238186090521416812747550694958917270967450138405756832594854265937178182709461838774915538267974174241348993319874306202011184017299915488217169701342631721723489602267834197973871002072951834263606423595744889413182202708768339777836396601753187275683709664667382718674372552558025674254664947904971297723501690325195259742256183489881028639351499786040753235066547926315242415593332306034694685405340018038109639224347163712667069225235173617865318025821133482572166942720986746869615633893943809842732627565062799877281854076087305220504531868267639435807322367185240758038800228004661417013535322579260294471771308817895691584066207411177544491506020258875397615514118707732284221645255895917488630135774369466581837764908669893262931092348602852502582927107264426075194053749387647831289765998832850883342933305007784478082622264149990427067022688976208972995668096906762508004254994128802928582982599283906436977039050655180266527217566149356262255375246789079202346329052666846057145913542290763476214996866462607182223431510459971981982495872538852690645829398071160706438049644841813792295989928581033979441361364384217952074530724182446098770405103275837780934502031215153134326225288471220015953689136431366583318131495461636344138960173846011594771744677728011997970273495864813744913669869282097775566657364541714767789585840719842074028342132445546912385432703438480822486846038519456874563168418435706988269012373211382120181133840772742425309010364384661297753411183455673009420581509210931405769822564458505186188408536039701116655513389481639523838295867448590496245168962886109683307569216417329976802680784914070435802459228579841044591458095752098792864617686053730320051845433411854225161495500972931447969574963434987748827735880526245109588446352057442951860150758489433410777755253826197578734362396853215726121628309328331652408031346172269422355458998826095241328212245329676399014216633781662148857078815988636713006285712007992256923226031983927481643806204321101323903201050958219550552025278820811753348812504862436619136903321473493507929976249486621048040005962460527114197552224702402209816614343285308706270106182177586714284979074753109301736353220334490377100900345340244144929084421320036789404030094731523940587764502882734781273828952164667458768094532377852096131553140415914193370263085945221311840333414619637695793102090903749508339473891387184399569655081889242034090276882696504118349885602524409954753338696327811417369590768349462371790896452075506988329278688973086267153380171940393922151707500558769798970441858380414088438414195594347834042548851221108414684302507834174523398401785657581607429835876927076064545265133227126127145453477871004858925460578058450953078262580942028848820131685005251833194473501115778900375002972812597476039853141483228606598018357269983518475026966524067450651020051069130476759543276840226029583367184736788021861789064460978841687922930410091981927963005096807878105956236694995435531989693089112324254359123051697072054862306276001587244623903862050611351560026504136676326895034348361098664413780585416214901806080149524118360103528510213213544655439123639030466553198475987698113486305006302270837564717245805435593737261353731015590722434743966637483523814116697139606869713989363050532686422038197603900798515841972954412248300807470925513439733216902227582973713299488811876097116839168162492115914797555340597548050951348242270464256039325196669752437319975091739956500669897507596365238652632694585872265000149522788997418219610365366045592677090038741348806051574683504423474903268803181714015966255437452297867614162977795291357887465962099899463810999423858807618704155145010587069549569074769042419462223812067523765145150686624327762262201235805380675755022121462522955902599429489334996021348224218529503071883116358097575686889693698422040658731091071135816327622717170289954773745220169724468685021296189158002722834683663164630860638673994071767580050808986115893245978603599289985772474828216715943520149031295860713989933818394918101203137926968144791804173940277328415484250671307117871971714128812502478159183458725036062893987368349875353420329177375596215292435827300280658789720601436017468965535318523836406643881268748331317795834920315104789637897798516050300448084310358687712356028351587559386604362185631937310461325841342707534124670599515931583331075454190349097247614299607317090788728754730332171393366573983961789330873842642807179100751099882773689998502746700167045271456705089376591981279609566497284900358441834632200988002539933710121525110156540883326124202277742488864723915525159006628713448742925542285933276473867522061709119869792201601357601978028739623864952111084817155790286478858918538338031095964245939540708465752219637558310638646797923723970733311061779995536325240536192981850724179399627368539484802828295215556572524196115374496750343849262761593727765344769842592277108139422020995793288667822257818684017349042384413136411487995939089562555221896416671929333588088300801835220704856652131579164192844341090661634595037097373023627547829509597179543181857748320197232050463917921308520732923861457646220429539885264393981905936605133318339760335277120928349364217515623182479223891112223139386170574987020113062417041709523964869188525331517025616056627845731758770241684961447915606141257532018306596516524574424780252356348829800686943862211289697908038430519748539318834479960724859914328934931336308367793624547701543833272828020924911230023642420743143004535764056660598188900483904543077576427921953046356880047306497559242183970119883915376507392564296451579414310733873479505145870532311228064430125976265505376055999725298180567255768570567504013552551154344472556237718145001712240884597857904570914234689608369516377363608943855452573080093568641001920254048073914021634800632711223190291991041634625092159648944968245608787113369191637832515837308153618114352939082455467727094678308338327674811657970428676029382147853112988624280234892227356125241763821075529523828580219172935292511418417315695977601020341299432490548123469293062805751847517951153949965748087334962215358965979339690625264571056767078393454219805288487776234526600482398539625277366538461198480958740595713689065127583732483492271300456753160009027799554878301576104434480833333051750266156374528500663892511961011104684822372962350008513980417253756192116770552047973389843899708775400945271973008920511824235768497533691107216561151309380496013869901812643093905767892051767364077213016483196924289657486924725422412128772053536495698614451486147226814668038557426222233045805975691264543312453916351933695284183323787436055967769149871714827845335143825514906576914881037889045595205851116162714687415205118613636658940276939854525914455399552442727311109720423534204143340440622649101103392437863407573964517227016304515644276642703575241482936975120318350155030107179719149916788656560542066099371219416595398595384041353568812073788966937120228458812173103968841426187825429716437694847509873550507248161530511509296507731659168499025069393308425583737654339175020638080174382071153156858194973864116133500982767212768779734512243232878608989526179959521597042769943931963414635495374130599493836364611957719706030863718468504757224892855262419854313524685984606468353519522175849427458522400657230750412764680909632522864525976199084974621047220331327854269756276748223528000216597633437129128099770860300062747045495753251529317134028934173937981039349522769311534078604729281612443863723890584662204524983666810961512826943238126872941273438840399781569448927884273396663433192120730254604522324515699065591652468155241898433569892336017474950966412571270024418145814284596421962943582461854317057405234400096169723108702463687218631878993585617301121201259481029140082732378071174068723323556785775453067727951455421148582291017138755585420133047130748007883388823807369248737307335332854870112073608035519986166493608277154033793009585406411570833844918529690147442022495058326535049111253663321336734729389429661426721667963498591935783265472183349172835769958597117006292007472926814731860184780481213639369016419661191337446851599518709394137814896358379577066130003015483058605364443412078807019249370657166260541942823246999234351752915721641911956396821090144428148878851314263324414117536876451593123492083805054634187581396231112704199651768573984768466571070847969754121449812631025670851430212802903432602338015567398080778449668053358750437838125746154931870467672118808075316668788463368847857251922597798644061739540775860434132860257038132298562302329947818809054355199946937025122381982868151305681644675639139384273469070790938691296810222281851171459072274560757095369707853397756227253043752904045799346215440743349388591021747916216229509833897041298444247574899375376432346036210932999574792101144713000366528605709875616968795594631815335472215410547491444048336254346226681620580334796673012745173433503273758302726005814823908204241767381606872747103322620316422926963874766598203237450467183817422466833654067351449253761549645286827816597970602856615621684959813883839717087239502910463207814507601583618126121927441298504852599185956844755769164021344337745899065953355629810231301214373712588494000753792692386925432261436396039777737783741145014475853517144746199028040218274230733256432920141852552748838857778423473448754631985023369029127307101283377598988188034701733832853152231541345228248670350670454874940919055391393986262904363498655092413803491872937086054490593415534944948401455182056463008865341898237248374459398830475363682141051051749160990977038911652479408496562459466942047183940987735234160507708966609203137412944589902373170065076153857050209036491035430945772205226233972324697563355915118484585235777221889137102610086428672915876182806115635901418122646130544388663121751388541075682088929415146348764883546785701002679238446365098969971195871912921088242978447543714393092589891813980108204509300501812843516355491772551936589233075552910791339760842844540587073623418386176556874327281838341656258256218057151688656665325774909475958089431420841073445622701179252577883480831026073886162110755664643679553740331747821697059671175034829639774568351853407331188761515182347853720617100759214189138154572984494339954027742184317543245837229506879407101799836215683874885265703436070528644416868944555042964138865349178699524424686341222167873781260697626100604076520762038072607524369577087380573215025370177959504312006887496731793011364018209302387955271878906272347189688389727557647143137128658469364810095566428956762341872131043554281745382633107841336569004724210317904934471498641540907892405331000536822643599747322746945343310431337852047069271890954414775770496089488361128300356200711660396208141953176215916068478305296895108695657837618685871398342351326417717272796164547470090309074060760887331187401547451179763502088886389891832854845887803060100870943156717837472813032321786410693829500453245686820994249856461412698608607712117549582563419472705937021343054911479690536318955838795494468174326404338748236918225367235156856691605659244971491857465431631450005895515742929444666589237719459465971088151571494832328433468982232646935594636609685033111749395444293040981531722016979203366873236082584708491877987547799436416277996384038031176026258281931805305988790640053631735124081685350395639031524856962583108139856025513858575586574844685289318108871246119238694069472326947015253092940934576435316347240229127956016734446566473662661602305409120274666006132457492275226455649304102670081947695676008445855425031819316119168784375154876860850780391131952629006858373699250926116152931596910775923998736864051564541016206823058662640639894392350887696904385915498703272523308804730468013190702673729496734270506990362376651369852857739654816205163011511336469347128670733440579195546455952965465147084390496574694751144602723731520150753276677809200396020866072463917531795096455719824190397563438437142451109823266882318643264442740156286491536287248909280557157390307283459872150329506300000302015179149160111424749627827963155735114846224288303904052014773096626487281702354457907180769486508214041991160279415802817576689991481079024693864358974765852313795349686009038055174945463373799140951753211100050135976559264342044106070800935669849241627530334566907297649250908587251372240505696681739753467661137362086130521769717240567224189534080026395700254352121598041581120134879686432752504125307972996692579082471756765332251788083777511892051336889095063140863778377890239007337975175274675097990282103050925972936307005739895409306454797330902946895487288433382679348789778469602035854228237434970183708415513890482371200798901979844701556301563313387099770425967329187140976035049771746682424896719697836500053478945004680798972773890918320968035140421979502063154414630366394259793572413262895064788432441007160371722714632975212079141241634443139414098388823157003609963978012774778618326819909932502029172752434911786495639359620073876860459273734587544462405785090867435476234759917950011157851669848222486059001779753774286898748567129870286278182866837093743519755451685993888015376385967775277509552250474792233287633646000552493386768831297355416713105109686164187450237361026509054192660135343115476864100839381453144945416043918759997792327336773352780537822313516956061366356454162261071678642794128550122450257496833546443586261249150941334674235911342174389861712335240734545869863848838726583272896852198434606110065447202850014047596862941018910605670230030030140490286938804680313810077399602127987638423431900045242280792029907473440797897439470392222207607894286948509772645028791046430200091747828564997103190148408213915887483167113149820536865812111637645004441322148093887482312461809713801409927916158855619587414476832667117728399948833077494672225945158633079546398068861735502509305821948889623396069916304883259163793091651090289568399595948397973413478773486203818861194379056706603731927410862153094029352625789602169547981194144848578239039036939210287565867575381266510662187980520351696892577321677352027183594428003195134883916953054536567332634639419788234969576007006726581424532476184411965236293350365059032344930367376695070678597141609218070775620778314799332922141886968256291326081254135556366635084233411809085876474121555073234232350291390343113372036628499627966497947552008236659885829830229316063341293541269209288035685452467747808661457956066573411647554755774692099581413777427083321060588853896456829854407735604246071778240387250526871873834826065720193797299587794251591430684432395653734230661058828052079543442322667369466762287194822755620568818252965361336960381307408244071921382145535292888897767136816304210459255310233030429311601230036060081626086181660006271252711426094956010423461604057487455955901650305072079212925946854656641368983828202053877219547429476364053462054696755495667095847240703935252860371341430303100690543753123189695704347617221849466092054007483959283351861268674957330579377284170510955209754009205728889759327006968500545907116962688113528885833101118954808544872254992907296590001489486633739821573121447714931258891436807732308074930447272686685206649017536836167455180422104797962487031100067979048215412775587047943500659029693573852454955231755742837062145559601003573366081707212600295412609155149427339610852858530284625894078995584907318499679611566820770099479942332940225244987912059102321114039225852441717942574303526532514780665556808538049720879833069451261723549157557574952261071210135266409658237832127678446275493027767758204734660182980843139889147482026090134190741351478365246267764680067564302833618262453793356729996321893811146389711790275055222530938633672550755634357090020022439708128169094870923855675794973589220983954675430661049344242334059605498222099281707112310017148000515952069507846878522791420795430225152936880330414693931671204228405229721022286020746189259255358223907562841404283401247893128707084434748374832819000404790251170903365087870992072460913880142260569986104182591188901125578241276959624457181769013196386291771875478854194688791615740549277189828203962240857553917468308762385946392892046880945853016873900421036382853839871224435427808252905935292622159412549863450556660108062771013661451019799882350247950285067165698969620250195485420919987618199860603582712079214418774185512872059546016315737132805017259841834048871283365841439199711121042840319895296136160325210729806965345197471005481422108301931044908451862282981481689112730833030244213664232189456236965050784902541965305581732932940057529525247184275274616278604862452302379024232360551844864363327021526690187192661784233988456573185737909552318371793076028790838481233571099123515261878362737773620037476975021964471610557232220270969997114305364082203407646880009718629837967812330591151290120068272071434784262727299241701408869136246259964276561663435955204271742615676046390168018955086014644597575579504511029671812193297384175620691670790790982756293843429832663813273313485664023955987679754755500114742719719904287242399809285565216080236290261773470499826754951074328218053086008889664894516295123907477356730345097487112495490145311728660126235705186689887043009190177577902401384849026734698890653522329377857988233083133853703105939289952973728706318337178295942386712590948329021584910361320490862013749855827485564912691710688346900738508002180140544609890093336375418124861794611739794014344012417428926305776991261093128756061599733908815431449378038616844813449859428175410254385164058273082468225426200205399540920516447010746228016548666450376949964623954739405406594717541521649396243897686947791016782221483282233285688999578641204645585384537896819765471260462334398348827365799291717290355683364276459865722679726578726416573932323961949783980390765429787418910840738256606427077366624817824202598324691175124205048930268752243117578264105214617424497055001054649259972560001367468371144770592824736531472193351468431310029034345814548475886137763910768960257284528232628417992435769687866381024749750355768568045635893852727591517218292537674278586198369475304871351595240062448784846749308756987971707679747553630906679933832174146461334114467364969304294175145287835118811913842658116076644016177959316277096271562044524634519252475213890759408281945561493532951349619944790853711599025275719144306384610719305703285913164545833626488875871451286571709926624610499433853235900039405490570888233935194902297179435571113620592228610971231711580132584635023829305314989622836892514675090019219810616062038480030318169547044372041467428067851115181325914209642646391583553978416545463555170310244459508469742423479305709111207368274169533367782228064744959988166344877167685076302440306351450361143676817177669547294517812151847937725721761210580178183332765330212471751711268780939447937085506582396249955621841873577160869402802529339210971236468033976963079945499230680544464851826868916575887308494036897951445398825472412961204342700115196883453572484712697058318733205752659746316044915600469876870564070989667067158267960478245723668787740392090359667824712624984745512801791174070480653302718422168686558171611089957404656870330248656410256608014026378958232984416446405639444862101815965314039870207497369551760343391553452030545253824780781225486079995716719254021114472531988894695588216158841568115572293869431031195734514500068972221417323827201631263826507804674676907243696766608389729018578021386495713803783827399347206223554298075490289404863656130856452425257819884216222987716513775573304791596859528800963330800022366859225347918544777457270872572300196456762034512998129223349000451505378599099532533841388057047377311404387891139808482596816896700734506262519771258497369970380850186994512134976584861475130750535396100333310844690548008063803114987016679970994696302217013620284029204755437722405127162598220218259349501707395481073181761052920833140487428483395019333947496747352958518940093045503425420891242416374245597767987177782385158633322064056154881886252914831035161170346070072307503624482800940484710719036684822079822564325540557456617294951204571638572259302627076483083556629113820905144119861874432601880853091037322456760803677342399899735930178449337834948984459644834249529837516536324170147736780549152569682863309782935631738418067484928143047187583121937937317549651017370859659678393491688811990997832643323239461863157242642219630956924239548982092237264065177432649083841851990397731356304861066268902456247337380762329574637930206674420246641946152376821188595225932566837624733437559561676479524597844578710275060813615937391788794749161190734559922632382196899092888040547714896334473173393904468377536243132726629283336266274708645660540951625340676891322037788488777488710289601842720330833823618599857703482020417943178086870217145791328100256172530281663935703394720332723055967017051712481002818717307959591268344471902699401800307323742986458822048812616212690123244870874411433913544223462860838747747828566575735558411007501476547204105039604130336789689053839485895114636248829735690310820990614383480277293585185612521574324895535449448672723631446229162620342228371852531902562217965829632514719335378183830128643999934264224875907433345437911224421411498409317121542099298813922785377301305286972087254197256511996528547759988526580784772729317090277675976507326033785770713053123141953000670889362724284024211175462126316635364254220500685218402249474616328513423861555637828964837915887753349818975816635486267260090530902658559338653699782629505405718380046915445957905406934028171389735543634222664779458764061412569623110196564503857993778975401335816275291324274678137520207409951466435033400670681127561129620635279124064501488485524120448825585776647351831578433493044415068286467401901126610632823164970910487161093438205354659765077230161991056921287442721797377126955969526778770872421599859846516012959082405953087279352852408397256242431374779454471260426698869968399461640322355198254971389228047642918261251726710721993506811060492346341690486546327931197978798712261039248700581013088220284036136599670179085621703581253708481378639063253848976226419865891844321058720367137472545583217260577784968673076838594543887486915180614507608987876367608485287706427960722447448668818380100849472549996129676449457738819621079278996957822443492012912052464968050010669980065585026269709417109848494845678223510811322393335630227622895454905205184586872802123609255426018225994405427936924019639877263217940851978137380255258651012691329006669575215675688925880330401152951351349061332818095746446785037781268459301611782104167253313308123673549550128118027442702627261695621665371647166575127834119374182431607279500299475517968500970441609826316660485767645884047015619896069574247464491862903926641443921845977366658392320423078634648973734425027247511630390256066477027267635110406422840708038124765047307623010958153401364822173955828736164116146885130032249104409244242988550473215909705369642223622217093551737165972850416920302841642764474911820131253496239914135048117332266729491463693167880653272186004907587504210240727834495111914197086975064612046428300095097564632604763737492930447680485350594997220972183609121771022214225256550068083009707655804988492175125970938054800184128648958212409045828891465750971999477724567173500597074925897087888127260954896557893823010527037332063987564512097981431567373365759114873470494732983513975658615310524256271343982364119397841481369452836970867285649119371759194656864183138093576993450899051620615892620488234986383862514654104352018049903063342282502036624164633112453427983513369967095320662376215362991113483234159567910204250823594387084157363733721540494627065150892177652563157090758792954645800323832232799709792288199439885964187581296650946438562024234045527286481930364751156262345378730681863881903557851009329298127657210710081508123077355724016638449827992428720605283128394758775130563250872361104648631638432429650996835015919776968098917399139524252369799977403237738904493159552718931022284643206720467947546959006960182022719260632405126366617632529998184704502970633291345274235484342328325226187179313409170193013988688442886803540207551747962405581842010367774598982056791429902093899471090726905352769822680066184056999505559668291908748978242562290758752913569472436564571999718998338511791219685488231730356426119738240048455999610797475024653413143905008153821399575904605397036027695864637466313435957088388033378557622513114522589211004203431996158032326749712793476127171079578089330224412750270027372039470124709495514862580853757027830943781852627105665343647160982076299301041377263470430977373872249336877969541242771488163784204820599680219222051174047946644916606644130774974996297802227107280799385501610122286064903410463624384141411219952839737467028316413888303645527253496985929534338838210956238673919904010827042799589490401267802233948005802839661351240514960738332754244720275541142117556193666048526461517694218806290476445946920077488147401859491677189654170616454687798159400799561430506420358431293289781855004282965008064771183362699184386152757989511884225784360492836793086536909413870006735067744050312346351722184532827293199581293311295881685407021872746921696963246174382303255131315582114047936567506735720144790841853579049596796040430058929887868527739098265142329269107484649659107182566395876336628345845001044130709458061474306052544154883140826930426920929209829680572502340248742783897549175967688210567395473827387205051077869945225216903795655340568421802193105169768557838741970354736810530666470221095954298106045014139342358307104467733161700541669247775101404521940531730399465837750838605822389726074668861584229029124689279497846436676850517207667415726785205139608407106300472856244740895082354540692257018298968426984833667709061296695623243422038270794030027638436009486945750713989206537335448806069192299914088507869329982090204804870806796623413982391620278572447241055855171567783172487580382837085657574083532514515260996310800866523352886788858515364843736040620799397635437450024705942990570744558944392181157766380990026157159563022945019691551320171105902957634153140335134818376337833193170277545385389390811354920105224611803504404722733473580502002824136468691271187139375662647193498141768980573677080816683431027093634399259194540561773498683590585407911644116314632328707730572536891711168712251061746862289517630759757576304785535983692980671626586163113982995977443419657797108097775175856779897185145571732034128418387569580848211362519663033117064929460620643550636842459561191181940555683266188322372528535057665452969149171867958297763070514024717750878802107875421225250927151913041703891648221181400386433620584455343644581356306226071281919948081887871869826663384850161994490076067383523625506419454049568642955777734075570496009457693288375401552849199644227224407429071668016795325078769409015895782152169926229964417393807718693668004986026294184890720395888201155649598331328671585973906803306272232606127755920189517932052807208678015848955662189168886566451248062836058735429567513578343443513787148543285325224309867909842134773114798961522385519675208358331548506904146035753449095778307949269800232001924361353299942068532204820746709541898759188519642764452194591047324394436167316541600434889420802279838825085038398710218208677496647163205948574510198042848437249295998336910437384336822777249363547405572865384416976572830310733320130174793216095332590205017248397373042632933929880040954195479972509337137734557578286921925540822223628991193263443999186154245381979947730794666674261310666189357326755319895268992455518734967940634172528897808373094895132223601788912060971234980731224683901588824697545795160219006321146041536165444908887472455791668905523080573345971161416876323270842664285739240715668492517026695087071992425932656666795925813576927025971192573070610136213139130541141919275286364271131512279337107673466880464443509179681040283993296837568602812142340590873674839464858557038363592686855884346370543721954522666389888707311337369538805021021491089298911167139002186749619137334622443606468025835146418676717293566545170842641477886809850092192621572988693731439770739946065529867259954418879757502743139001633371824246382832322024474314268227248537245028589899130812687528446395966730563347566876744322313118544626852919495067078245629617991702136237429598744738127681266072449386762411195319013505531804083694202682080447897582338436556857629455699094865520926915044392044879139539521023195196052444922421431043983582930680831885870930812638922958554012919781195328127974463007754729828627073500002399203938525536531106309343773321356296542854199431452670550120574263375428166746569688256487166959199401051426939649630977502748268343005667602200600300110675475394226464942819650699587456927596045494793862966063654766965662918214433148286054609054681841577007060609163184586291365008639085971870520245232196410217878218422826348061609295785263693473892556269787172423811779873940547384121851644739899753006922774574145092976708896780725557013547599120657498564968375264741551292758637140822559692092515957902499256647664242641448270826096705410666897816776261088408452038672568967973756194677159709729858432372274285456540191031384049936350515416060905042790942201504035473852636737038543290300976825068039864366188360773077922292939114799804617129006940795956409725112181785742074821795499458899497738366480215790207490484926630057757428319043362821605180333232111153809214560602329878903206729526387465380263648542741777212059150981766201306829279122787467219342671330661470068652519870929855876127946564697391082685711734586062886409362664791999141368349138546051237940780842800176375383666146542290137679175521854213847778986404846902245275618825361796945519240386263789715788423814238373968629808962316330044928207702111167032983766717499347312649389508181563195427947387463771555095602289613225984247388557733715753846515898472804654875657866771763464026702409344751266724076454725768347729643279887820458640415202142114638118747897955922494827054880048488118610668033352311060759174850814392827981227293110272628996869615290938823840638851729246100856845904030296859379658476516188660589848139275200729000616867182389225170666331271106042862406475467005137849553604742524897596083752045015912215007685006680469199869297668344828339667589385564163627360473894011688822952943425638190817692445100399258704841599395074897566803321138520038386468582304309180691519399056136396499683419487054260339274636065812171240901637937639387632182424335335320747055663878534817727080910365066041085797863171961551058500543143240035364873875255642236415555837426556518628850786461389159207714620119290229508124815154495443175753708845540942299516208101365351422592085718731937143246948704123920493747835922514705391990861368618489685882322844741274071209176077110095765048563233462520963624731107676874951017445653147238603081207077551205262314967607465837336443464856294868647890406552447964033610442967477328027558626220755612751371993524709712965923351049315074738807447238023738715362607162370872655141924552258577143155143916319146488821134956671771851573752711413826370024461819870478319281102030344072668991243516687386503350949474864798418151091773121287643343081115432327263370994075397492547522518368597689956271352842482659717444664429753188474883959777328698416120557276118095423984210484202104039926765861368118898275702158944922137416292738346599815928749014030361636535852056404412613693120091302999813631457056329970421816108802110034890632283513562610084467275584902202337060599528151141145477750614591270552761283078192011176266580473120937227168758412549415438004031258752415046879728059194127962680999114448852554069633437854375762338673436751591355275096322925739315893267201449554109023244397701354421890557880721453131861697744000256264070422255970752118756282197033112576401389256363093869708662640042576360403453139211477939527543440384530341899671217818319765120203415269431521859339817120092122963799720167468043084528913236252451897722450824201836323707760390871426758023517220365448975385272372993686874287284088660352511229031511703156736910376287875161635717249017808528801092741739118072918306243733032695249723150572881453792371882040214829541125927408738238710583718778975956215835018453214374641193781173496576004089457268904849991813205718317844612858522167811303627169284812248349235746251140552927087619228003567460948901311023333878686625440173706367438361681453904853794052142975959028285590349423476290920104074158455432936264710790786268359969551802324536520858156294148098672800193767185328877371801552653274026714535689104416193131899618172625316604265681345685653125382243492282475022610190425322071950231534363512748275386700743318571934558391894103471843221688444134871863689869804722002011623187429636417903984050039797213625512976817724621345596092640038929886246511703655023819737112673491807767988712393442907359948086784980863250397150282137822656713299044542421586025660423833833488980562779840832774659773247561619661247257656927883944448208870709210681555059361895924990322185716871709431500955256591471493852349722762733542384187328253760325814103837726916875030855388667772463046120590527281547091495598651211810274988586244691573454885745047883416269915275827060485142499665689832976870097709165411202518532181282823203972002043240201760913856480385800850251193401165319647205466922700318353982722877829877990265011939333466109623807203479617257032700279583155192972323304248987322446575841645511401493538023079096976502712570508193039839192722698773052963449355406312962226819673695459872094118142647470276223051560873260639246749781788102438065653276496909638177522633545292685367349902757721068465464157267319582067025452001905511689363566424104132178536906893687353170921347849087972064381575736328426685485008650612147058680474535996032952718298650956356841412148476434486816657698443749016030817033391205214358096065853329536927612860692119577453127029377314188936192332933966541506430449455170837293158156977894297641112081964569606864501546144599884067536420164334183784062544584614602214852875888648572643965593781850513119430923656883997007579726403863082189803207669161430448366028394576529671103991831959296362467191262332024103155555085283395347705533900311893566599642757333901992008312082794694410689655982120257519488574409051334100425277861751796408710226056329394994346481474400734693096689257765076761032102871540617341591722234402975070681623894156237345738848915130924376500337961009581449903311365450953528336481620617618542266577350350550654154186747582378111274441759006115657976969004717196380142596488530424144031526654298381457324678489472123200079929731263111470932239837021945644732941120143150418526635191189015739541771694242935613946632861082220701759860827665555395231551097838824902451443440680002244082757432412381632768081971591044245946786543778912219041374318455043295446955288627519608086526489169039882687228181207088355554500159715331803527905063156385740539709726761309839355164934865794421862670636540566054458800462432222369045597570712078937607625987521278841356561047902138726727024116112247323067000971188936289386876797129248328304950533894803438573235774569290439922539341522646870876335177051493728105523219409605423183561859062046229555507264996809292687216662025762146075135133386253458823316457667506050862105984211950021369734719043455101530668342792845128213045128007245458186697931764625853808122487371886555644641377604371240407306826422395604896171128877187840751525871363733368579603179789643026089034177177965562976113956103801987630632178234876505650357244274489045434434672007346545796211361985938130684329211522429675015293498262670029028562573162707092230443387635898418450305418203892169578726626060119127249544587578384465260658551765196419302384924248965313760172097171009932303076740367771749518381091933904688305590619581206035752792659343606996415137302768897938843290490322151458056864594834353842525701456114274443762661375955929986411940240388793303543430344534435386113610743457578971023051204459575529920281626175562662724690676140042170290530669385905170612160993723813608504838422493612158614823127981831931474645008594288802369243627609427526113848566567603047847232020510404910203037732431746070321639454271376561121347337193082672303936773441877009182723629217044077242965247692114598250015103861165863064386224440932396842386926729210292828981830240856432469232127853910508959681428054549843866281194551035417088112362185433282468106645964707658103458083499338924234028592163916584981068876473403065666306492638992298412994706477096478552867737839587380425548634778478168153457184996296720239106263243603396545118300505976602162013896339737737977436224192069165199809805247849656162521132808421462136033821686052525866647168508739601105594553649557850150790319031161132170268807674987065769220913292408520966303113725386336420707013991532892553263092776152813688757807873845290754719040447964932095101487979467569777952738701821933130309352033305762814214741120926667885759124137428916262942771697498811006309135428559499034127805072530596010534565114668321145455717949535126907910378264947348684244310759423876290960661701693755884592370830703642990172333895459995723781866244869244761109937894674798232121892040123113986430483730324254839903399496814949115388717380508753724546910640141276196885089777762779862062331245986540727498880314460911281495400011467682077098665530302159567628618571914753010778336507400673927812070977373396645376936813461580961789999768571103251265242952803104085239483393053435692812005126956580577316582334345231490378696674777278064826145752018779931541341764339581941799197062936289174148686165208646296996457122215985102486563105713327000296971318032256925671232677168243126295486353034063910025794472046060139446504908779031465027539471667306686381153365182480449638667204394213276967328582963024424916168388504392955328372680364272371511371894736884797058581182241738856986360912230410208103062376757869517522981649630230163592869779715840210131598900501124125038258237147459380684280603161082831240485840277941873374213297841836833805479749565319664332667003212238565255019965133509545863751407731880927249340314559288868817766197174535752986223928197584064979282478628156681581194623656609623176854100897865942647811887994048405919813055408142182268483633079770724383157079234230180902472663523081920655890520312616545203668032813096051681857457519526040556152006617148653451801050240611653991002575407197172214317564350280237756888813836673915735745041041343494492306627233735944984282084918775613310855746121613731875167142126186226004744938878627642137807667404264932595958654563910363566600251965676571399328879751977970109126596855328842701287907840227110237945973248154203631838063715569303455095208984731893291620793306076568341456832667025303301669662731843479205989019693108406702178833804213924603784507093548833592564096421284453101201566363348627354480840396906046100369063730473582946382154402520849751228295258254257354984111376810664891709092180138830150780113898390196128324207029169489512963223347452347326862823916861967091123223352436365038997963710045714860054159547423625468025100573433316823328562736806455521337400312632270270225982186143493231647456078442510309703597176290008872306189693460380711407191121030691039200539517234770003908827221826432290957699792377884943067909957043433936432493091738831532258881136051291921779766142417141882150329831659126921358376387076257608993888368953400817874435107051504948332455229833660704751074759064518489994006377212963717129885400128946733089788595682792701990899258416915276177324198502675165058273888887365844624444747625074574951931571900240630800142615488056829270316959316262755193339289902877097595177828513424203192085107123657773232929208057687570506120827534560308369460442859780786868838768415298741223121531226656230740436759372550005570005969636880345265011730142709701332989320683652038848897235189159363460475328703073938378878284685800675683480913811476186384146887618624816259443487621165896596692009031469035116259354940244232236383357360593118708427709363574111953003096205016327740293268376166476076007688485157075783440282420510377801765767804574876836783537496230975621164483367271166764520928371460005583878082693173042494964083565717340169443447741351553120934953056935793373365371377360445173503868301385226891449091946235390575913842774944267466446245211683827171801204119833129353327944083755458398180499062766158012357004905682207943255227902078009625369420193937400743424135798143650030054071106711971429823773103795767775603990842274305879889819925607104942548387365709097318393076377032401048466586674715401445879097410755484618844808037187039786555087375520931525368375081012420555687364081067906620858387270494991503331890402991460273668884432030200295126035688993350821054157468923653400896354646930910772890187616959345721875164765769140106874714018169322346094720097417794381079117889368070886099184633072417660382427571504305345009794543264160970303810879714696156790600238253293201694556487542222372863857962058455418020690717403931493110063931797422614293290990243726150700549879274979579913036512795942066168332239218849478911887566173482872392547567502727895859073240454016627272405907159778186847206864930903248626881471722456524732670000145136462573872672425516987803784320153482738904064435892516001245226152720284499565009220343755381981356450119115876010026047111356285826414587149046999672249016743741221067443045890556743324459943279956716680974401229172041388339486606376741085630985782901778980938655378389029322437061081554416671277385171356070330705348090269058614856973613490064814335540224593802836945773833376794866856718345905148907391668924899375920606811349769795960184101931284296646411344977888771356912209528861502057160234035271789342619846378716132756877482624796323568810017656410135280669942303979186289784800831932977451394380658092917219341604373596087785970820654335901108866628414116363189233003306681513529753279575205620903082325939765959246126202399683310801333372756626900936103387114802990847014285701859423972184952302024780487988983666086104820940985368077816467900296231325799898941960898641468075913749053247196606050074239196538681818913564727161511791605217890579159452277297687514978517316465510761657038850756930646707327600782667343304161306244865241603173926025351915905835779297739676530345588929871415652573059776615750055558740502961315151416949734213246964998539538202028984595651995652112932145634004564752089443600719977904143567338353092091083391169009384065311762578443839672489686853589809500797974398235101143073377463822218475981973476684745124494992413116179381044451609113854742165769909663899148133908340173472627020524038313470486565133720490944219716472030575118989805763962522325467924592727740088986011161264133375052173687113119347436560457017839561836144455649522639391697174396854463447230879330335884918091466307692120418314799767991842767801054686903082751161201026403754206520641880371091350202128968786323711232644932085076625381266361344463147662774092904717677674950015708220910877294385457265989471181549400231783063226902751700939755539788459982467376797549456013240417920069342512259444850669486471197711853994561363781992283252561110823220128518610837237202499714782959521831378363538007216497526700840532256683743927232742758492651837403296876443875423530186181581408579770823273554087729681629021499494430190653285531554708795214194364738387990424097571534886830229623028567680849204766297912319577944528901453108536040861335634101863771034784137513949078523671956756565207223792365897910422327528707063484106312592895982554569113939495217369453119745790708560718866905146120960991275398728618167798261022839557288792466370102041915430286690163374992491246370901256615867014210876329974121492926817320921349207058750846522190665621664468343662391973325189249239430158591041932706203783264841000478227117445686419159241389110407537491032960257016540067654462811997774794324787485956505848747628952675878577800781348136095381769618582186099028388150108499173320683353733603057541302567503012405441415760921623545219477819379792988883821892218916076909768193993485799277699641042058600518776107901299394821706747425725664497729885108045204548948435798803143662247230068805477906886882218503718950578952101276936372554515245224117554462014525807549133144789875535917270871995944235105580324254030975508444622289880768415342493373177762454025799946847604795707093224253737732256092644521593711578935902228442866977904990908211096486282796482925370176579952501671979700365657040055718628590827098653349924862297738788859255584636596018167054663745892532266494946311250611838575977082272796825920749656006123360085471319974489473029849769008626716172866748454623962686828536141991424365903593749315607876088101608130463570650562059351913910777234957533827825218115673745103203853863972597756083362839977094288962841221758144165427337435226120959546818928965848288738235498940192166484920238470236251779828411360691588921605744004696780916033432942428064920877102108874061668603181778184924167719109999115792320247262009553103137192391594929651504364472895025392954030941461685506626787106458514104097993588981764990072438518469597021424267901103485034276297261717107946949017408698792143700821467896257932802465603664848282036807155959697943640696676661816885619895990513264378725659949615593043889875079689721590513496754189751899205684535463474791388162545864657759241478637141077717982566422263057105285329867328654312103718204256659052263123922700836141697244707567081947078547681571006107625371048240046359755474429142741386090050315478856706322181440973922726219456604683962806300467415664733319095732157442152794674846771809277196760764830559313825360946446179639183124817955969416943041999533605832096422904435997502273188235504328129606595029338243649759998052092780014514310876773990036169856759315122103967566447395025229846218694045648097795628258325265726593412867165699210158427017746279328586225679144996666201824578124735901069118880158918844018334519498064276532059492899940581469923409634179622972927298826063850580773853157500673833270568934843722853259770734332373301627133340863282479044615195211982490884876167165144193403695560190493747209371404915565968117823063382907989899669677193114521090944577477029449029886668478148781758569012285830087610336264418853218904129852359911955653003311456653048930231670523524463984962084714070470021994780699969718715953169365977711640187556750555745032734490217422597846445483265390734369221602100204280114973081557219012831211545665330412292011062013079081228426759663641569529473113324090079800674073120637620467455716788325950844847773624482387526138178211854816831022377398792979695447988973613551894422092750556521521063212846161087478822254333338669823714972002562420460734819272389284048043797425572056417953054370697656414863622331081641582627583061497758034533584132533515359456877144124279406257556430987272295856063976287526071199427518151122206405244594359891789016879876945121574090102774572787050142796051715323882118057827319150109169972779917253402782457017715618245291133479245880598042057935331853132118533178275850118389429809704271820889104493640742876562972379426185968854547275299733348839719186639884409545460736801760380195194172311185476721627117126404385975691743803684331196985511474946512451216821553976580102337595940543832526734319793251836487082979255282912238979556648201107732047620428341634723079769656748910616724296740391795809481848962709400391955764964546495479802814309358428993917494736546399771407160553772718186532663847102142629192302264534663055926264725785696078465275116963944705581611329824439586480774753681795088946237250864520918034844246186266472506803693236264035760973718329165257447792802037938155989049336578122766528813592355179807115640117647731049978311886341459234123829295193108028973270968056584096466239156435402818579558869833262186778365857044843098725153550122052982455754172525184858723505625938359246440800985750942159138672739276572485426105398198626020285717817082666676828776542740518695426920181891601035165595038552282270601797277189837362249828144575370594777647619561742912101296825747103862368413377059754520470693350529257917032966225659104965351834646278691494932270822746140057186025592128728923715333958589858801401809911492321373408950885372879937849385082557860194214187792352564603366187044916185143708529004224736040722782745224928808832532235449696952526743641945294100456293322386243410453984512450017955213936699093278957828232187172302945176571622675031629067383471374010158101922356987899993623138861701122567413671218452686009855237577650679357262851458036757480725234203610990689746968422882027477522239649837787896113722379225880457052226255780580062385838154561955097823104879424023630716865873498875418163255421480551276247867100937668109278627086278324757047175405831395719008835561389239225389220159510481076889555568935808902158534649990601644567141823592115672478939339996135487293426498121767781729057955499793567377815540543545881130457313035333934572994084106700778041398117810219108721989343424477557362621392498621724780176671243752080520750322579439132895635415039698801038521438434586079700368132393163186424369336535746619912445874640250412876854596023211435897773804669127674463227931256116834805610383675062588315056782855547949535089238690384272918349680413544387825316944677675350540516071932841848159457171609021122589595867293835834431220492363326021924576043729059009239482514605157860163475031748565109176306606656053809750876840129889353877988991608167429950911371930823928643168275689934024600989099585626969423304214961635391787680889761484689852603428582937773228306083230718064872923715995421289998755354148791256012198803319534958535322907060503344877315731342389945779919500685096901387556279018819361790477169792768176709344517421846152498937248595741252455252155881578978862863323872265485000639448882170897239440846223001129097461612602890291472634523612006069370549579698435416048680527093390583030344491076632757537086307203678746173631518300828239567800922554742740693047435801268120685654541057630691412008080499680823796691314746714954417897270852070757989917229288778319106706364366530818255704058951742938276150579754289432526104647357078393078872710841504080337920722324752600730536416209182977682718412204855133143389234558700079358783652692351099433803732675389731183949021716388303546123466443451163071055727064050790610936388325435029337870484585960881035631222843166777522453678583808126295181384268872910246939361876048368661560712943730522630978167394122634054332153630294321934680302121230453356720397936377545869840013967813146965138183478125991126202836259933570445283873487285386364271976856236717370559516525523952973544309522005303110202006804926109221032021111265693311088944412208207605197419096551656869793052135125243669449555163548326411997058488026185987978965206649319691072975767100314456624511756067920970812817371233980221770364401314980346572706853169520789977419642670288483253539202821150118144634254489039211549197083971165190127356083191570252885356914603448336460619629189417682249802565510771572460649250243576177286514228824248136407146285461349599666786251407675843595287355471430785811321611735308740811978019454679765236330544940521247160855847072206216695655330791871155324323683977383588599706617499766987599924501302506277062294614318981921983430164161389424174568749984651411871188409699396591529512067227482892599758913684636758678198624443221173381194659566720338642203439524038383237248726096120441594585656667450143794993206078930702403625568859289908362278735632077617458348918206038712649394690338823939005316578178159927274952167781411399284945696012441637322209336466731492305929921576111320851747963374300085212481595247868768175217806684904477126967911211947597058372934414924993398360173510958377472422761572306688897152420610805112887926721052009479134432920132668418383881113224230097913056546240226516546737914731463931543820438661783573339192514235509247550016362521419188111883180690259509150492426243886879065458867196148420793533928924486051679620887528728058717106057249974319662896432822347490365364886583752295055649295736048347989521983932940449687493005400422659601169189743925012453387090900937082238543543671992226194294536285796199357893766867643082163299771974298859047419414496965451947799636465609252141876769032634096557144095536463758743577226548279998913037266818450091434191623965585255856516241678242188651230400914934085959676636701565350623912400792281378791523198567857220891503245746268447011187070733867332602661379098721586473090765800459197802835257760731973410690980182118536426255643598684075377818713997812842792269972026976073606305930377038977646914766382391860829414902174356744228716830203210637180965942060915149483319269892319880809576319951143049258342692131413598226125622438294023047480789951107865986777234702290972779522737676148039286779131011569792140026351035151463516853785117527686351875375809181410470951025698033651190705851225473608840646773062864777948485339319330794018748968927618796828660793362947500216147149465294252280620388811606730796728332715468966496129199730548698610555663919973939519179295460891928189657433866339471759550349125301869456249945527600448859165126556844961810802651939904432109638091557921974369095345891157995864144840221091836168753640780776388972144245186921596289970916949851433288394086359319635961249440184451246763064439430215092633126655631878944152157185442747714056190288122339409849296934425353293298158651218971005641037185244788941760968918707190779470440957116386322683632206123330746211801153547331360436992420233746362726071291306578450532637530406509859216771555224539030291659271885326608651707818226223646652551383842801743707412798654266747277158672115818712098388840302212809940713870763155476305689051054044928645175951092738871400195754065005328778667500456680895082892549106735477680123105393875675705343507570198302853768235864648446913238442936921949739315029410275835196533173015243382059827850988058845133052332197373945964276966039469068433744089333761715085889364158397541298768995939005521134281399366069333162999719843836505354705762523336307578006568468495998967989869312416182319645635278134882853151181619344687094134115053194775785684434320310923327076806939876513917337548625228209635201572983417086891622693018008656264424750266888192449285543970088354193399116217700745357391498927295387947181359027947778854578641918080865970571406201296784589725199556309120228450969967040246780162595090746970314030313738700703247009337728216074905869797994430768202185808393680415700468121142574946406674766938358024512726468677622876984405764308124421509542012723005199914123733640512888746085375167220217405776370797668580120728988645382414899618902774841358096261855892073605268346483433275545783658537059090363283729393493090229115588921933142170648141668803733966673155208511497814532833560845746649105264427341246206374559338726133424590087393854668745425832009303697359288472894667467814568616568727134172247461779037498795979943379040840746739046358706935481030137005688492276337513381314919909371839907804350303562433984383895947515845220918144580655561302562180707715960037328453054804916382488241007255480102149770167750445318161705451171556893221615231705147046928278622289461669954653492651052955489671179120710999008904910593483361717935285354202439258398034712024110078151372816100150950604730971279910868828925180513381226749313468876051469236331595867642929113785522283813257080283938969336325390401094012942786457454889788940567799579350580146988577911172605817115014166517330884120370658213622946941282411958784250227063699533536296569693444104644125172611040374354841919096351395742021795948170023451887329140858567836605266531829338499789428681370751310058389436929456257703408178686506885656265988303246971933451538742998188867898275658296491548131341593006871769522965486136251916710022674194410642749139676646551571538391230279471347578189001487324940744979597607732075855161656103969213291700776809875839049713625499209762256540975573878964846406887015460981655092856763129606852184949787509875794341827314466800180984401914627052077019931610255693298733747198956407775003247144661824277546679993261694166611615144159104842556273797254050243415222285196681671630739774567350597613900926887267010564154230585707666254101097180667004846805121076431437875297225309453864257155086404706435980566303630015156823755021854319399592546676306021405722278720686889155152137349734739141791328189946025726451190457959591679912796487433503809934529600143677961831282330437586797564047239602837156673286667692183474474799964996392048361729646452981934217652157163941235966180683509940864793252096258331115816852374757032716911322674052160338311417782045660735153104621360793790513940596788301733036489167029634423128146287983008113148340429215810900877976253457619099192371383840833156472658417586244205403979134566356931895554744030826982889762832792002577244926612373286796517244017442395816160491952231794778148800718633183702793443029958180698555488865412592584276211409338990965297115611488882727493697709862617633690614154285746690097430865157594396309903199524933852270333325320062915561107440361194914369665013810466153656632086346066119421313829801987757200286249199190913422543490700925480245518824360200472899741139245880365892999959661447328699184178419468014166102960341633843518768268680193331387072285390249257385696449581816284896783432357765860938249183941133379628166134311100488029229000519662139467649004853752463735288649658193044907380430164773522465873096323279614895584687009305732358276985073151533445488050836981731707759398343052741032694242989806160237603332531564387616319651885996156257820312639559271850175792567574070032084217111969912349810997794204224992553271723395662991401867695940188453628582849090900444501997956057474121179423308230195554661338112138952454908938513279915561534747936417911066962441627158122233049191973823111244917609181326537034462747536786981129084400614540393321834643997053087508677976025268755750907012336553433069386384405836350890551230384498452197971898607150639127566193683411293841667761037016754835587969943085216391857579512489357653821227739722269231950311569220219650349929391880518945396814454841507981136808188970336998148041632697882080562665545422955450064410990492240222436037424516661912988720382121236181673162565804233643138812469399120235646065560663237516941838813515022404016216766456720462184745876347223214916438672688015784445571381988092571655028338713709856258681058722997975458518577726005520575260987987000395425909815431939154500012883214424233014880134116698847307636778970842749615612201175178754954942505955401217488401949305577148833826370646135939329567029368154702604887512069613667300749195266698427631600841489187269402204095973020226768818416805283439994378822332007646054996769181313327590466195357765690743694696664089772374487629177761134593282008735314191817024841497029410367301776111937067426699884533306314505736743041305500313846352328301229292380727123052204804297261804882403222166460204947500482808637224168431449100312084769124215490618003516990938912213646600633987104405916087730197029114629363190143429025982946118628060846271465114384460421731398617176533679555785862931050416696813361623906848347670378841439289026749956250909660045623216228648788311651778126314668163404290854402755840260520069935891872146273398796755794880844205955773209516895563003744409986170776000876571018112293647423842307779662239339363076965069559033963693909625831636384559568676140153741551061478574600449169967336545112959029321565809584649007843265163850779201455211903003447550558761287270478390667104375249327125933262118686738357203108202453972219480854712780777746895972092873599577359037382864668696358295272241119873314425598556431252006530154224278353630611548724954794934587852189939452439853444356259900239915278356910423718452418492192709409647637677044275558762383178158223349838426927255444822672602939834961478566432121180010326276662195491209061003833072315762400520364199394205267615810156051023053392726990567738079273143225013012746831539606975890373215886242747322095294093578517367178721175903011498719689455043668027892124239502570135502262689300288477381765820417846732221636293771259091770920778954215227523341589249727922171372403076230235014871105018741126820120446432993943591544578540177605423270317589329966144102694712662550505211611089048555247101617803142005868129450617157653248874921532168190575035931197927671865339253805325593999023975018168297223945471927449034043675194174059911511030617108002089331197770090109790153330156683885739363873069756858342067445673153134746061350224215257226230806548850898678229277694058082493998214835423154059203434646374040830248076409218842539314382192205806205034174695206669895678031010221595566859004283203648322540901427546086829301337428682909120715404861490259711544999015930963606509813345529903834735624526078294218442273255114910964821632629966749585984938880125508417826975876514704664720492805343566438267987371395492894962958303689622923800029184171070294381414327450906854054901396658783472874899249857335121096237309068844324213348948819208444519622725225516811227380041327073025888577676324327880592386548912780852476983926546425523305333088877273206727746980095447144471557283204526455622632400275330823077227798525452700365606229707217793577305161200162350437054267430056708140288446006373961634974562192719144164990244736771149138613485518359720484409350184408171298592523316792438799374117641243505027888192801895775473375890387899493327795858000392642691427065451551709478110811205775221089663042550854446337666572466215210835238242538236836871912671529883007110947855929045612933024119549057269304082200672850836175125648804244569404954304077699637220122664304930138283821490145946479947493060187887332707235280341179029648380087556665183865246288166908870110114936165509658658442997660626303625432915337054655129594018817065076522180383327782502141679949965419393935553024886312190639532874182922146712293625758185937475564087878724731386691315273329266810104131940710475427844017810627834779414689709907938035567843247671258682522017937833866575947863283339211303202690283639390760586741247446214832421273160473010135966445750639534339504887711160226194118195477646518953747061829607249853587984222333366608057758044285302097267679051795178783973091970974952578358122454922932520177704655474964814051502158326935284275578998419942001803333374980781609249875915622615086833480238466793035795969840236034306236077551410142891385120395782939606911335115086999439887249761386308103814915897445485970643488885703213325826709693942304262262554661761343101199493868680243891665570238466466407210639371064112896693834592450470437757795653241999301674187721285450372639941744805769625398473873886913140636066527634839717687490322315562848397564541077542991394387029677232439479367305894871686537054065065720783671631068549304609283532336138509688730795644857834405840814637737281703209136064513187234575671039420899323734055295514386304837181743104811194349641857876286534952021590714787980325196857613899774259834797086448189790587819640252971190954685904158777225368659932184762003933778123935877954559021634032843804220306316277999885105383978751029175728396232448675985863771876347327285906808455346462813162480475815809202138445336277181670665441356524660039801369858934909848640298900988146764347765541853039791722254991229798694671910108057911886870091320939636878813249130805726131591970333650202800056686388277594120347614259227776584067284706383532804462511786990348133740134523067191758985405756741637100998048361284073793838940133321749106238973718824845586305672832155786849734973697821686304803283361760987241078749545218116123330635927011353143801212714833503571090263506958908474099547145463103443008399221497899293409412908082548719390370494488796732071525514472679093525998232000449548604824981141765082374096563331844324604549890020336445746027586512709305365901445097018263473208729833660450917295380580256893711336980929272621403737744680331925421549189075742993994276460962937375361104667578648985279040613105671355266185142512838909692664904962067046676130843045951719673592241629887789051706387856878699616955338702996080388708282058002668476337686148322002801194972166659430172714114411110397479306149089981414364514477736714857703547212814892372255137259800899487158646069105090627424765409701919297188921112315837722053202615851595138142830076816034435316562048204356703310031419381422306178987738384292591529292309363434221110510236295825202731380895262301040325214692606255188473593423906267712962817525470160234432754750539935873778389280787611845106959536499732710641553175603806504277462262971588019769159995738971286467644811919694392955914997900835152194810796967250165893871656435509153425277137087473418015562893487893682025669026392174000793842639891921615274642292995006620224459406339511043877513746653808596466001673703711958528805831571988048666497823608431450236654543592764870398716966690314417084660865319470661867062910822387397914195398961410307492593325414057856454372149366101290593792608666674789643011922007156255980290499443719215372836703916213508080292193844353797289463333831854584061145821736226147536347557540476925865112199007650651613177574645096483524483554735081176499580588757741171326662601703306323839266532011758709500349534652332271307203493169606763017473585522910213423438097386548407392626663399086195736208024283411837161080774160881583699607142836898865009486237589927617892021552869059756935096904561630899639303130441827111798296976270039771848394692580982161126596188506992198897962861914406395889071070743318027710257880402313876244136221870705822130606920254161132804001501138104857512767934952292984939567657396368039852456315376531483208918044640249272024809964642785075757587297167911614794360814673502220081416636489642731939497025928459939230658115621618074031071084071854904388540957168801373479325890338014289446221841117827540054320796528631922656094723043615596791882303992520431065660889666515218946677211019333160398814001037755310135629155387119878152753497500185118588052407525308483057939985548874169670123201503058446121853433045563409534957625228136561399861778959053433215089603278168702240218182116043418905633718832178295458169227622868738377855509032575120200970484627385473500620856852552748481714834147972385385326648744652633855892347051091457596817523163312837539013682623949552006942591753170039466275717031980209540202005823163599775341855784601304298230825796457715268737786183439208496596328783598816456863621232849760732246125889594495222762413562843806990673887099875702238452832480051084750984769914590051039449872212103282770579969564699699286129660021060261926777166929581185859439030347718225533152735093285808852942900340370910607959911397641427471171179924143245159809311602039745925973366339760659252278046132279285166638442303143741054614950640990096024325903977057417930055680496383849910471492642400319632156532427049163307582032060182139744116320024046878224354621256229148921004421269932030451430546462045323973625205154314919360020674571741623668663332885014047479902950510449052487106923730665899255260701310517911566795926570509310402984049783489349964674336845167395614656335094068985517119686232323038740745397942173371805492626246166693928896519875731987084976830247721509258948553430106540621861355403896946187704482766091073250557599819242685735692309567053546115235906313918021182690439312774650279218605611525660521576200057314507568383147810808988299755382661289456095579673224223209686933139009544635892641391290669742196206067304419791312658643106233035017250988181118301979402040092654179601116451789369765035411215585378550067699916552888182926534617430573281858183952895625787909582423572657074015942084221830182724922728105150154322613341122269793182428269688876021663928260066635720535729181388577785246440954710154905029305578363507645726250706941146100313657756887866654101142852981422678884257404443264517365049125442558970924649502899248559578812221747056659778003967074933234606514967636996735335771798800961081594823557884443662202036787478566311926368579314626280236900211384654908278964565599869118384250785406645923884893075730174874464264496928310120423255479606574149572094434714923465049555424936356600171393463329365725963654098418136063630270448925961547045881873758908868430544920805839950257514838857025811108807727040721303758221115927699259897849596985934797929868353017681527446074115876113196210694707222124197606540882827456643298787938827988696732902181790794835699983428125569750174004220826850942384416517644690701343263419732610766690632831278296833485556793991759972861468257714613151352792750985728820037272910476251760674386723069195506201573157102933794740552574926385807967646451110435536136344358176301201250564813952272818634453444651533083875777327929597828947733261667848096687010610487402393323862116082780088217431207718589903375096518806996142452250576951135748040721371017114627353629111689964482678761492117546516271744070868237967414029938840309945117590708646913290500019928820354089532097791509323867643999421034386262484406524582957992893384597840771242975679281797648590118383783939203238871501764920827083285427405259651576555385529710630844425865300031489684346023092081103814703232275137481355368812615101736644120503940184303532055186526304656211774459067264828711438570916867546333155231460693402305373868026229121747301695487140763053693169373075518375241657291157093388090806127283318652478548170705371931234042071739023077804251230134027621394549397640561545486454750325141988431855807314234359783670552613263964786513269146210542631220351715990653218186957739531935396308645723498051550066166143974079043338213855907178260921563584727984609307509099253408972477498314235738492063553754080326830077655910280226918532422604225705909563568053947773488565118079287045699512273547320804728794948000183848428143410902526517239098743579183306229636671897737835554602137729983801089134066970615900544954534038134832888472565932886585684913360092785379605134888792063135852427026228841357420433491272773463301111535282007332746178965124367589593592534328235232200086522921260893328856604125662409312324515861044006517064752318092537492523371610799414513609596279002213022827387248478831234180825242877735611156489655991055678112452449332389889495671052187172482371748323650633968641634040560868484613384729180363716685001259921394007507777234284589806083531206383004027428571376878733522228443959080878222712182950748530947377633808849645890329458191587741984419961110278333247180125148852047309608209619158699124685246801685382273710175541637506352240083508787119621853802592845208907769015539563257693053918701986551172379285047064311581673505694541572169907832515835015844082539764461468312195414874262749581867454447428349740996560136438888586607742084612888599857946088139759713013278665731075097416560789536557071904290807935294273134633541526324152653191359626819572914974027465155690795399273566995926485787495639564971971715738937211825292189072708269842650321748748136277692853675284477668589620211546641504167117377269517009233251613269955486750801327003172355361585533282673502044257018523561740000611439983953889110068632344780994223277338677188261430034052441783325983700509791859556663092728427680144915543495186222505494069197181012248666816600178468196468198291813192582721886415920949528308994400858576276919877111810567344004759435449441039452867317810016558980623772351454000702348016417049757447604205473673802816232794758354608912364266425366182993962053531995871702755806204969357825044604866498051620844215563965290526145709753178149573719901014055680085718506897625977397674234194464319759465446353247008670140156915369672194329931342672909925022099380657806145567692148415139903287067061356478665734294710929066199352658102163558126101071622853747954436101330892696604734310559548110816179795137994567731616152945075504750740335148940966047323352193052408227028675555365720434644196119038207405016047956383149670517671540001523136504801209630024800543557345421682217074330767397886977126256029104154114255339892960820044945398445560823229123005008083285859413241642748831110531996956369805455527178112124167196839145323643683853405980315914499851075879677101096401922247595465326477387253195254505795681457109654372528360893373657333643115633554468471181977494763888255385877080765457895420320688594785769915916203650435682632862831174425265128333803868665012654356365021851266489718960474179841198930678216078805225823764478719475375541523787216221914907237831092546929972698872716348085178614421562947940818061146121879153911199554066606927022929982288389491603049413353350884523616088195905467739912309791357071506740900579490922533582022303032416563545127870877005908524210394929608218884517876635231527683341992832296182272909378609561863125511386958869329514966162107078748486280666284609038818741688646931067192496436264877562982607949120867278056757568668015231057993848280319657666170662582844619680486216995559333862876500999450507190724843209121077562470414660185291659827112317896042720488621400515656712683496284774440487554585942253260992232754107073864871516767446269022077306682617099795474439903938599259203120572659029936607840921514824231741923091687273818737103939477561668893749432340716417189147450419045903023250870645342116287830982033252794576061356718777651441004907597282108582659115050461591577876842497791883290939570856507790851692798943640991167181931265387854516752721654753854813673092781922120350723048738068897079312781196962901791322100291147115680999124999053042101296724941772110205074832553882213801716017289894048527945693163676345157840408116795815016841952675784116177319837945138546626865761748987984019406979164459000091996180805427848767480289992543577427664785960980841374443444459163115186391939458259296578521858932306190622340610341455405301751132758526238593661509635737887115216898883821990063121015557306454605587200103361740300536116174840344125592792155785574770567879288015628010085580133411012285724023762085572394201590597171122858270513630143649699042620734283019153756608156784059819175325920356655512268148594533551422156110460242835285672446351348002741789911099610599671583240853521470673039082048928331109121142610045911107634320197467374252780795898456587809765573697098351475855864537752311064113385180925279283689048885348275489327960439258652488571916570660093204120882283871011650987637084109237322790577189731771601376928854604552651297668701151220955924213789372099198948639951673446916161861459369002092428052874187369272040425965194616508669810145676953250020596724060211820076407590743175654933637127102120550578468101643620085404487662921772408400439724192241326097811442460687733766295683744982524025162428203771296847670801492995040840360990746577350336151149734386420684382311344891231947321407260772868659200170958015799482421871891241577045784065635005902231619348304913413031968533278288413680678823740295251065506845623782729173314089535463618545949076942236919527648490671015748676428022069641880272557903398275884759821761906190727044738219417219274760435738688969745715727721962703805747993407463411067426510393627728614404378929014853334800302105868020656223599796039637931839211041477863065082680893073080714258352331403133998408772231925387208134499594756972240634298467230622275070685241405478540663426757830769104428441403013768581577797894687408028699320877701235537205009330641642722899021681809918995951555964332782053986863169916317758160323838677151117195291879169064137335640816382870816340283405160056332763802773285317378252038899195215046606846466927522980837879820136475383067892328308772850498504332540386417648490204624699847219400989920072372133663261264920942963441325451888135568666973912499163023630082712184473981239118810238555394576507336320616392243596941081985687935904282315544139776336347872769878254057606465007194125308117520180800715513485259477973881479100696348317052583048856674034633484551833134852723794918113657980850497444781595167577576850357891161707619203686411188211917295543078302965389595923630011834399929409159987382863321869558919666319235718544372621120653847761435171769815186852443071706045618827847723492815755425673875752614952709482576171113436938918089189590568433293392902612499364707833927558823159678481017540259821577978962883310603627812866309977060831120252754636499725866014421294983734956424557185221848940205686926557634868075595646497431914761861629380335422256316712988606501648578321055175847825286660105646144320439098707090780148384047103903572914289333857155560721097228102570597487985223067411058194865494426696840672905161169550930086122721423503815868764562123530657977672868571397557976140652065301782218350202955159618395427652838496294504408460341751530999633483971600320026232264256083453542441893509804868858270903692081697179118354819251490882006729579571610321053570360634688084316391792775475344061121565242265170215116898495582286486673511747454263335643843342427837284112543493561072849490813352884955688405840270494814989706625688703109015466356302093512838312138064720275433550454751218317006959687463308987802240771647339812537706104386599682315316537364071295484057313260849749617816013378244687775722102222458654989320448832258964050657179514616157201659970717060070726825351726118564698669028112346854251610857922773334097129626570636148573882053477665755154418771255394626703392867353349460748140302678097905278484287805802367679315411011132710891164813975474430533481611897039687141740947838777859964371657247681667840312162021799489885568587167592588247849059329816345166254284294227508186070091977272353567977322644481985929162541444744355801339125300889757122266664328768431784699199698383188581013857024058851336176918961688848103777455383708434031193387344009379325033365900418299045492047285854477568991956613198102063266021810418590890035690552499960298325129657039357184694611033582344037851236128332075039862449412164898940662005070722635418827784265337669264833973487588179198991425094995088411502454829595430450939503973603637266573306173610354741356012578354505714701576357467476153477279953305074585651031206159981279174729538636353355611772612470733220808051074931072004167924220964086162754759287854172603385646950847000270373897469785668327582530246673965418078734574087676939189393221153755012989747929827008299578946471123554697175747781220073881082446052612080906703493734256613606295830379121703016503707425402465676185274009506490216136336273538101885968708125809219679787992133503078361845155599103156939342801955921385835077793766751149549205634285918228315562293327788795457176933060579862898018865346541515667986245104455117430808770149337503161681826244114421934271850758993515834148645794877137313835960202382587879128956602665941414367444086380315757236439325996604637741242631162471154852319092159750219574897197059923339439091957498994158027231811473083173334008876251299276800881335706895178405427573265837939559662856389311973118060502942793364405428568142358547394857896182053929079164423736924373602401599588879702863360377132979553126459598469651004664499292052874393255531800401132924298862932390791136050467676540260178146629328579273265753269839014853980535369304556385342524679343781113265765740524175404076036182321355270318767912753075037975390981958200250354060909364720389593142525849587179844024549686656898158063104865470793220625786652657259497155351392017305658476153231195305440357233705514210763584386331573151704774948703713349716561772490756983930185836379985334554897454162856540326765471411568181035275379144099370129388442640229722840587700497028814002495294424774218901288432883837935992356932384644695949228500228266780652482922728678243106730500147712017564524663532622589296634782120188857759532631530389931255661187076657088724339937480641772316915720739863342481426653031828967192785925883822820788793748183651138221823666428339357895591988841635448772214195078103706965771544510675002533377542904839101597399491146620898057091502515138200969850199797398250333129448784088150402768274925154318038317488822896758667665686959483688581461061039744754677437286911410381735619510255186079482940464511612728119937565801354557813015093985040963535713902099078252892617446499555346456294745192979877803503000102210493998023652456456952023973904100254532082081341525588129544659011564057077567431070990280338143519859936948284853759455684844517384551685285945675766396135723302389002286715258735145151231557861549515265041483520375880419128479190705929688136739520451745726798010156305147912901097717729071094290702679237130521555244177690153662713769155430908561441035508241439963649242510861463474718656357471354971147808429952679773625630467266471449905997250523706862941974812413965895585780138824731956328583846329078288162029747182875145274879706580821611879672814536798134645965660809847873517911895497891024244778482021034019874879966963855559790424684634462538368728692395759236297420050655492630491967204042606301808748727198993038706509035383746668094067543185307957080379895312351381624205020663581863167754756356790589896536084243763030875009764817699223763194825919786893741400650997235971609181546923047264111616817425332519531806764293853651944126150572810421091883487623409137971941646503574389094171100839830774887820843894240064376979152626410957441504843165769511121273869671747859313272119779690456670653983247802608494490648514920662255366831209700225186650103903224344837838805336634872633205197957609176080552417856705013683495296318735400558608160796609431746067840820951270467626325300673357108915694440103980767944257618496010545490969849685155395409647309164778147098256644885715319824777027201292738952207912622555868659041243072132879933961393550114365312757966556160196142647634587702981012521212245323876750841943420898915407850561896724388300873622354415077716970447200252207151830857294590769208571114434074028058109062729906820469398500836564182624048783847742747092632419619497207388255328861019570720711297133416210668299505453656648309412467495916855076794900834044179153120152584944212986678532663816303409282113290668718720334382924888764995207084471352529041920426928107142648429947695168873630174385175735978304008992439837668066019798632906533006787697556154463812834159259290635388153935559406581772329006316554640990694119094892891317593375753012783499202877453778756286482025696773361080417436303313487035211071675841889639965688868477211778621645977258478779335734251532859962173852559978591600584008791148745062687253955498160495349720461227340501702225446934670160627582717072235228443720039196525092511775438150289335418739214568747202123345033247355217091166956311586300073951937620240541342094406094467994342962238022111620865465359253510413687917851707763238755265225160640723068149585319191988667913338149747002728453389180165351283577333224315071622923391454646474258972291656524017841321633362571335316578193019695715204522415427737148204317422860471350966206106469118340231452865077971491907917262286415020431940191563161818145813045105203286861407273123715256043339376711503099498223286724769945568123168156968147659576663637705128985101677746182996261541448664994078348436249455083628255480765790637348060047910212124596165617873119191194197507686553958073148045342919852026408187739539988475508231690241583047588522362819949790306654286585700555690107991043965704700811688124913122882133090476280115031755952986797117096913445184440961123033585393753181156229971608787163146667912682385920257921321704229380983431024257095969045170379369085101543318693972797792944359651967592712056015866369511315777588389609308704152623417246062256454877579021896634356687697975105298861986377846089963750329353963002031990857002937162747966802096455247676871107424464285190607303762205117881179026868744717648229472517176366906303566419529808545989862431789302058966012964991914803101547025409672622857277698468478413513029599132799063338782065410623701732774437688967618275950187550784224703696310581296530354803335307263043572992580819832297919140624933583623488986170175736145281421621975120995652840687431097485219913308296938579550117467480508408133794189975972371404377914647746718286358399640836665869602309867633148902319543050075064349662414039441675508572416315968900961327127439240264623522560856023585728921097892634659238684156083506731046444494059811228537930729620586425765210919811682957288268370619398458575976770856745284192073938461165294970413068657848279472360586042919856321042511229804996788259639702773678932211924944031611010355227491207474228667454009796037203101904664422706605822385350558799242493616269291730841687714069886312496286485959270604316812839124171954883657841318770629602520053002640549750787682723727276203997884620158996093591203364796580543964436827537888496419580238564742506406327179956789248709450198409211552597951675442456463559971735325616678465232699273069333665178359513451992079483173431761671621442127564701980097742871580038721593555509573966592308002339565432273497475483346915476235093618768557372632874288542446900607161001142778923726299106027928855281002650779436068126243709246518985699804476278928146442397476133239757875797725886146304954360082272056466913258587678426131620940703822101690132197718979673776108758423884557221884060191690253542345969421613228752291673116582673503788433768367884292590917904896759129980518879914582886753464555965810094741645614922051888559479950112589562962890850389621482164443575103725321185103368105068743578611402769829890293658363458879402546153026137156022004877915465029012523955986214119822034125098330968154051824481212263594842397702617442337053354242435577195415390742670031835552250517923515469916093128867437817886008776760430121039025766864235592603056541603646579928352116009184939077810916160508990333678124643076303435077998803502259293032147036087639669000569569131234398926052758515930783940664121014272081503142871401951448067484182975307813532839810306658102561338663056412727573198859577209058983488524196129272423567742145636816680019008231947830422199248942779774956101745372893977079661376069181140586549141502868101048812299422652938258576781433669778088626000597187253852314840780970479225366868131914303879202679456305449689862871065748244386307672311834666505843540689008834798882760685643746096544526353925585012500557166514371730434762244127189336942275890053299671209224704650292673142864856055495191874077422751492363830066603454382329967947389177594357628922726217792870662208124727183325709039962155793925121694205768828537202072234155526507361380769923754610713965784226902685329012981064284923618321926492652783026996195354004907419767311276351559783083635081914272410416695857196157007985577475895901064501789683480449939943499048427620551606312647836606899045125645091899893699414316608795577561498884832533908326511131995141645372749859586870458507498744055647239347953575169878198455867710406123009185301768462538419941624601289934760882698067736615981096024928693337452326019809828804744343051315363707178820175722426704301635432876748030017351557875955989569759748244161214619545757574826329846371717230260725665312075311167524524243297658020056709328462422196386928245883776998177676128658802028564542678309260946253081530396049026179249084790653452000912831842835427429492857551325619957198084852178089259929375060798533497352839814745481803658496460521662778735807024851815184548642138507137902311473986662720215396298318975170552052147869123115751297072771233674029832130520814786069889044146616066836090600928784405377443983123049739704594709709517675729898736970888307967826382202695493828752569436399376553515692978419981955139157539732628248728797640089977775058009179453067042687869760146746109897486536721128208239192312357756156394332734952156082890588645028337572745734381172583094612274228045596687165646283529806882901147270105215192801242410133610715500486421456631822307027898723016699851979058023379943720022917550838097060176709148402462646497637073753147762970668061836564495126377621091778024810343108775878632739548433333027265848071419222600478181227582529620891507561708316555005266154636686615420607449813814644743943029055827038984655447988302271952742832744757735046129155696069417453270855460249953474975742485273361353435765202965394270735224904261223378706853546823909009980359100993008363874035483171651914249144900134116194046403038260072336149397423624931715730030542504982753673857958170167670521187930552300656084382306621766069189319465381933743895772130186473300915004608704076437410095411539303931802714825913467511873532486761160260203437887586824123457200993655029640821856739874942047654976345177221258149885717029003184908265660588920166516849041670769876614502535247496946414330713005613916563814392004203838648158171088328634474273711206990558010486517141322129399319806908739418111281430986499635031409428632612611398489851512584295937513633376974294121538729470874420324181761107274948053932111216319258734637470497270523665931372165942754313146643572552975623230599657588672612201496097962222735807609443029477539010995598210808277779320886066677685040586786020806592556218850262583560829678934161859416322658551696158453847422887452189989282070830372226158232469892060872301557406324322523189504160799955892137484898342176956937587740688049013707751280874612511772455586141964731619146541490692357262353124742595431707352859943857734643350327387812948450525010161521771087583785597133095771264290723499927283668305457452025387237946859184688486711446979803827529435260668481377175375727910806232739839451448197066950090723785138593965959107749309120679578153075322295907332521872362040480006352367388813190230059149344920292980705346536812502386325882022336768925596326177353215856184779694108837426843243832800799743402536342350402767840057951992077742411776857626407289394158830142620298248984660118307204319785219896772504225824375668090660778963819641914834283622201316424174215546304906184233958760139099729290239630467861490658648171161398959100856944200391808993272939137329856770812750933917467045244016342840608154115793850917096930388075847014875376949016164477184934619711386061234650331911904397003294874270457351212879147741241521330819312110804890602002652363593242676097845350201937116155845317595075829034337573991402986002471663644512192473718740062453608995934236663051389497244843852553764465768902305707327335819689094894652294362019294224918688225692635226427785587552971081327995071899296162815927316952770775101792287625751198589865157944572630577227199433236211484753294894026925797357012144394911891207760849771767316262154536944921812843449917784807021089937884858898447905995142701901782106018280775463770220758909331927814481803198562035061468558709892605845032188749649800880136626057776733910690310052843366246105114383832637887777235428757217856859623566123057098390108460174045950404570033180670119196161150991743888794732058081511588601057479081731419485865714512862948347655932544162304992645476154653756000638943572847375869531348307506210851141720010259019688008142837375978656204099135522043143862362064644985841874478662947457747789473957198001722428645583229570006836963570761743096721477097201873317591569435349524698803763231544312909892109606892966436545420776719658408989327679156397199530361771875719288234269639445556125625803228373960204891205563528550316539232364599063399068439203056430472965302547514524489164108769033786679445274145455092413403156928909268821954094179180456683292243934046480000236981426219959162359924140566064660105502608442329681926988800326974205505589098099518972960625097056915505171531425814078968581522035240910046959822914365216527657174941785344644067083116222181334179221673866774757466370529450546302162652633377260595736408888328295346057548431214499115239745450811413055823388695541964389531389519466943236084792032732239132424671007987477716759401746768460349999653468666147927130670299932221641121288559617576233961407887215499931057964438896044896233921440911641061479679556341192129608047465114188547740002486125796534304471674674321790260484580547233192850492625173430142501824499498937215487518859746620664505449795800267829445885383912605530313501330224400993558275012838676460716186392537292394084755540991387989736644676802647201622134279663360288374526495343074384389248119875648848955761371179715476614698670350347424231713642096849676697247996973877801743457621494593358015638876825327775841446972119805867279272085867193393950695750829415695402849170713232567116184514902849488339966537815737427427465941180319942758569561029591947446475334575209820726264067152518778062414479217583979564278157814284816036607986199566869532021389351526466838010642130937848797648204608555711036362148569767083312801825923341169794742305534121691100019354834915691890594416579636346390660162769060689488575947895419116877182394676363442989353173841176717247741799592104239612172768041564376542913310700002982593031675100567777668146107322752580371661367954522674229197966502344798371412007314227947038533599807645391238129750463442103367856380866361023328502870637348820069531242465274393293634453511026059814724494688028314684985524328039326951751296291727270940804783642107985362834611997217362550627087540258966895266739919941104617747522559523854093836358951379330813525720616289085520310842280052306558982897164415627219299260481435231995213358394130319532305502474581730876083700929576883089442831084971606243335753646860478623993679746318083869809599812551046535954621300542598900890351286201094404046225305174621684225402663409987038915092648312469569622070596123795956072991580127546922970664476177678796295092301281808252374024238077481118275607694188389638697331515562437738083116391247613210945090444916236348655534999934490543628883231518843388129823600420643193561727852049576786614491128206407964282045104077569915314031598166057050403452862847438432262173821107836275559756597378371014351566119231388249906726623654452918264397972549368929584267503768479000326695270422676241393279553754370814229319943939489565131781279209749536404685685580070779815451256436113212708676338008966922403314642035698536659072320068153873549617365828006003600029364211868553818702947727106536476047289860624970841088580609689299505036846464440935534356613675032537720201031682538253151914539743966670571932087389167927389470542288112155191173513363769114410069877643144843867265338797889051773278077715000811343336174674888559158858973472668617263647232264636399502481378890171440722604593283187519869930576839355522534341277035646308205041846435350341457832120454291039599310446967262394055841961493120617553796478626824750188459995494063838535616823260732786823662446754268802575282687373672004013776788332348967184020108260704957263517077642183596823042813447723746649693170887400322047176220112730987655070327055287765051337363633697563228468317463055679440855451735756968362586711930956843482025976852020491431563545806939324962513916071228063605271781161702553450921358278501863459513321715472881990196783152382997734590350753290311225869603792258199274005911263841149505487692852697462400604516493543685004347996982846669727037458739722095140366089638483775873796519465837898618121847918894932160779258480913683122822337099294414054272202415973543925905697725040197749210997293563990258408311087308428198224325594449153356974066612889779968203667278383504824512725510618565506540486526235392564663107304284476715463740281880415715947237952857023181758238924578633641535130434975968713433640466607867347122474016270775980366645665148017545738428749722047208413629436535406972213686907293885726268517421076772047750306307988995920737685892213458719882211939334039086992963823256297942400757132893884548923398940126558004416771922321335786029343723815742394822273024430455004273868578479004615327246178511969125848480058249404442016400909564473961233023162787548882975281192564194857070563401599921063280670200964969942041958036321738183723264617339666048105237626549410815610999102229137676958865048137356752088113706793534851899654375541202350419655789781644551664183153788706285441369448590678547014481180303458228119721810321103355077431240876993447447411688893176046815110216232164531014989377287334400830717894629314419099141014450358394984943501778716355154529200949476571141377324187047820457069083299477415502949010851572991365633489012163221293249686709984816992453019307620663639431264705502845132560933901365430996659183959292792073820169770060613660516663199470182609129709101570311848649489673059867067006242226589893306016010951918953960025675967840475020841761918768871456432082486118069702693333822679449376340863478940542381318074759311142753438307150947650772392516159210815619894648379105014937567641866620979171681538952865278506798809315796823934957901939322618993575062433487795148665534878405674767413920097275676653526320870884719238732491385675692598069908970558654528550443325817394646845015806199257667487532976863597838035063944975770378354894286247670835445990341876235864648133251776576423381496917671671351240536577916674532887753242726494580066187991384265509306589438757554834403260402675232487876243358059305546579624044401168055387573964287335428474669715538703022423576328535989169969588864042246235198196523248121578935366966812820958665143987478263405305701140002849954969238957150319664990910466227776829133287354277774808350459718659258426073517973980119834268465065948968684533710897617171699751071887124583903965837084879221041755019167031922150591737479800081381181754157964097196058447760463298993157294565223494761995422699668680663822990832909513034305159972629197889365817358267789042647021105022481243330267689721858851395168692919942195100455021468657114765249070596053381331734327535811267909055108778472621038727779732327254529674219236805975385273763683045527859469759974859705273793185525273010012159034972170444655073720473552196733657932031836910177801261787811260170246569991218665281063577996625470361421671396323459528113555095162174916889518765116566705479046516822481882078298111806099429212659757549157907262652113412990169060051553108147192868932634256824069497488042958873709268737292780003380059528285672280310885366768424507494696329948002413871407103812463192148352036616266292813251814854521178480643643983216739443251537088297586063551243415651230253583407761954276880171032658423897725770118414177568021162338744167635936415681823539411360245822284693226662548464449860207101730586266703069893164013779626994640114218324504105785615775921796789906894683776736776615612389141227615234750387736328658930453753448787509426736349042666083343272918107327323850695377356031326074902007697419470293060514466520761277207462440839753138359168210094580680992399114442984117077997710546297286435182972917553291250356039052650593805855771710348021904261250771515340989918167532576238244034946786277204459146964829019654250209935835134006362174154121194182100989635370871018932223749758075235041684036709195824913467469390455886649313422165244879818205109054366630299064255579728380536013234916403174184774750226912296287709016439511806597302953836158636125806464566989158369890688054277126701636253122294150114385890100682175959017133145341438314838584647541766817893631876615360326050302825473655759299328693577165543446749502874503326232168431928653452036993957726831727190840950981845211524567427594264601115723078107342652323538344563336553955509818303972042452865979958284421379715502702053998764359641885130262272324630319924943347956350031527100874310935619464107544977350589455934118679960889602139064184007971204370375680263413822032477969277994414900004439603133208894167578407087528202156646448105952228181045491483377567740084517237715879763913740301025648367138836908728963212175115582497129168738765611407354869506499051401929524806212357283162471372324868032958660368312414328318834985125337114200238872513386352868054729499833833856134627658898322769937085676866836964067327834278699937884248957072322655125044844109860126491153732991197569865696733145538604313600921120567904901610245757128226528276484509872514050081987268783143850434022918544582610189690103533808253387833459262742033573744106273518360870292102093932315318248403078222801134690499355492725348034204374874396960646211304566977879967569084629981636462757166648107614518751067324810811280010906079865665596195647964501479690683104784129615865950207818495029552827160003722985623478291502407240246834821619692841762878539610965498509658526312424296840805666008446931551775153787937064273751330809777058446449519388847804998827188670081502428602526988311708026082262361176193713945599825622276870703073282214887089270654418669790080991739563780425994006008241216129145017547310748169304318102660198640732062868821950375983432798384296318328252394476922071086555913314089347794822324590421823253211138025828792694334849730128506209427334794520028595537563612688422675628859007434735011807791401995651568471539867393359488743765818785661296597187965025872820140047597403024021726798780801821629887718158488018488387177595336735133208350125802911059285794809548837813995833130082811565983782675184204380445027573576363239879102851371165041463147230269397363816267019690436136346064531487429183764177495693175797677616040100909128849730064557635513191911871481532013929507325563165125658969737034161463907523811646784025039068702190904249267218483800040061212821499859437121496260041733269566495165478935435710423760200537672598609907813201642136580737545654975782829170178433170287413986937937287063732972321076801709122400847872782842808485805610233964865445412779969505401216477270188173535445950475162345828881395165080215772734321625059851174690956550120552242783937431268524845065413411524646876458024587232452209729910638655798528772508404014650132878341483975024601471264216661411693030832337672216449731398670343366224844761110009784739451794950088131806591067353707631922258269750794090879944613233129376042666204807857314274118273692776120190995071146786839911206868919346717108843154512233296040019382716325255291803923409019093779230937266911865931021825214329502104135873843581883424280848893482572763594963417045225021774095298145323109555036577273811931184074117337310076743209656556146819395060048659823549248436032973311174442543731402914305266081578174170713806500287281107897201762389987106019374623252060548170459100641582565342596517937601629319846454678593555444939318383835552161574877872720294685960735291848465936876738262394862756901039371088429856132463207537064224716203118279411239876527813700123650569257847616206182264092773603328584069005218631607230306399790788470742399027919932066428339818633129766493603023172133970675786621134925999007530216616577194586857125041736175439176365918947418835714866815634276332719973366095862504274739646480434081544219879487922403863308353850076611811749843861872846964399821286164076286171082055182119920974869045782433594842400001707118315744386888172237226774574390979550124144561271798815074331970202922509191470391633023688742329981446652252696970118978225935245925716444424750108381039025296857127060937230819973773291040526965914360330356407119822983946921573650798012769347403999006544397019200272003908254222607301315886546912126415585808105765372795729106875994312100875658692345809779941791412268657576292853159063919833080078171946545829287443714958483811991752981153029114830989514411090026253400650141426233418016912923860895694330818838943524311688145646498371831774655608848835890899469315749498091735844092823198782108675382248025421262717632613591397515279513666588604852385317243968973607175006454825873489348107781440031989315679721598533349264620549686358334466641461111971712753584723293107441467969673394198439548029761789988617324350874374658581965406301739072122196062900026366496795820688263700454525736033489492309176735812442622508102559792887411616267120449591999796718752731902808600867443386221818294947002127425449195556968809006449191579289748823395670027576483724205530518146655054811169625779628237907569382824608277146606405802827736633585522524977182823852624811807175039303352193131810139836043916017300413499715367435711020999500783039036831733306638851066995898285393723156717931657209140989174692373254358569368133062708376234015049750838709535396141786818671165177337885417147210545953695291981989387527791153188648339484561644896300779887411226392078260571076915513639763944624144165490935719930182079065202638039245858772585361284598683648292597233914282988011012873153349768084357244130288056793646204580973671265302782200933584869544715227239698980578340082406397987761716187723171688851534501004682596562829787773175905118934876208982705978935722746569008903688914700396237749768177153464204709895763347523035472478202025486206672242572391340023919371674659105370383249437967045881664760274055893973623849864238179633019473594884101443613437282548807660924916066995465251712647981714152622648481418393720598930898776235492118166150801731480151270403554120995361467119830588142935824743479095004857797043788525695468118387334973033846767264766667230671225461997912262735378030787072558513513309492847690802087743452467893244344533757890972121917511640483285816250242758902952217676542348874724351678704610343523894374139904217823160674887331025804239729066687452366355495995464650916980547043102581152512111586028854276598803364728566181727323145295350395046382988409807801339607262942267416695240864898727288328755379046999733142041065112085984722539933234688142991255076933363253404847717100238406664413015450597207527657580224564113783251720146161256089239089653009341941663436013724278334609327617780582480258789421391872378906866882203672323336722931915347722947178652156799533046524296813892859751077240872876638505925403286341789244186274177077763831936417530330994353120794340805102428285858189028141422290877080359177994733455967015239884299203173946383922152118214732731313244607015471911755334855932375292226257024764976028207892393813443626101438496899416617518637266824360202043275148639642705558275410169319573120313433494636698798828876917390040016165066492056145170735426730500029693894541813784253669450836569424817203519244876395729715871743722515976507814392187271709975767365245373867048585809378796498713089006724276454052588627586514666629068867835651032816795497026623739967454259327586761742173669264551302126667741591347385650355730367109503999038008737069248780657338651896587558400203951594548403132869792343641992328526490970555965853284357336604159675519420079204975679960814924188070419224778379067327494287886219794480896523266657355400187978631364776112061761994094660890150375200149309433452504586287630557191107804322902944012389275103489868235156858805026970219823478119879393724748627473506563043744721035644125911693369788062599901988709577485850787996801267226405739440077189507164971193620750543272133772642080001026645522743826600982712417284652058286162406692036615144812538431968315562425080966311397719689187195050205958739816927515273399023502096057036806031444002699483331515143318794130219404047230358445366979476504360135855215989734270800702220897819812972158535199244053703551551317660795599637828787641752762008630764549906483452371000313085846772942823815709036255447274376874654056434364722626753374599382973504763342181625187379242362892069936612881995307848207357679624132048840384540894529389459440277793925893487751956947460665350881374695783430828776553703925155989025153972326711436848737823801577050052565573363343626126051012411135322106175340678221224675733385722254545641822630252498398241184345328344400341537711232926612812282736521100691502029409552218980103691433691539943343747611264662324992657210770711764054685863459986093849479002741361180238353759742464037493949242590360855113098462060682028982906847143130744191528768928792794514955358978839597668622038192280337736831908741770797009450605912219776541414925332033125458060513273064328678550121974268934127980448988249277580032254125755233213700639361948454341283082869720414597369847548914219433881344015376289725944931865444617047584167000010911703007555961832312281014623195937645319746952883006855985285600963118500523045556412438986171543006988381848247630052184143051893636753721260439607641269238283913125518846003097390836379211538970853294653255397694524015723528056666157977054006143056508441631047285814905666858871783451748590597628019596605549559690078931885329417358379239421468147346809348727446071822482408442552154341846242844835221789544233673989083025783085298926223795423835053891473310214320203446635754938224431898636823581895197778445566421061697926194627296257283183141561416375661002393663868445773265494814009592965325971839927626588045129107462338515012263907280044939940645952605092037422434778163318396885018551640252403507635937041527540858848622375170165805589836731039399666428363197803742527780990530825999487609116571545458451907413749732704844160336915666777314554180982256006859212824008724390157119262463107671647739735556811623130393386319788476881349062606933693482595321503011027413368115101335065576333480614422976909988300850400743007197203972579075379872998281512212309378463994202330372622138619340347907910080303764911658867838971800056526899362148072577229652726817485519653484921377725140284305634086572300367400616980064507347292291837550962927662331859842413474617496499945182193457936896937355927000531704728235409686501417253164777457004561923156769965780178703681098277286928511796027057267696150824085628570081966063038355819697190173821815767068549292524329785195029229372089953895257248340761615735370552266878705133710337756283728240925771958205021852938194497644000325969914035770518399616157991686082706740399418568309787923152240969024154279280635601116807849623339583123111892356373792779758852737736375747472869479280278223180080409244029363398230825055301210300142374053635676964062458400835297951298741034861669152114124541600094316796882008061036846190579679197487587077406480264014963876088171596841703982028688187352708264817619868584636511368854046135081029604730754995926309317456898223419577744743377784573021765543950384716510653818184304179525135797529102883845020899952999498199534841440670810873207624674077731455191073122487560585897367132212838846041046056441020591204616447158691010684110924468293059180547136886285136439107275394461759983024929097311953852643607159600207122871103348502021675138604115438307499189213049334183924592900212700403087683849377764316732771227332565223647969522605970075145875072606259741207195174871230732932978599249636677933854325727373378173875622609741142238532068530722801326069802618318473433004593474639746556451231928566131411068750506420817697261400620631261508461008403658473644082116154688514667537327109060773694058543580609756334313236918712218621233200770866429534626780283246859309305890555583549856979262112463199383922099463533738011906091153985058703719672109212488783693535088035823745752706651907515226275478503357950337959182500099691028831480341523587312928548778143030933408839605778401974767233676161462664464776327893240792768667675648750751647718989887940697228732058523698035579312577417181035378037242086877245772592166032486352301313206212839318191342913676764982304544328428049408783728176482113026007008004966831409410519810908958833533831200812616426417237051752981100635529008601386174833053112497835732011034104552046004411780176698048777340635794084200711004969260006692602406468898439317122098277768798636560475376382757996331949967402399540413130420235927608383817103319312421338001956212585698173291270396951670181511995299095619643217074656603532943400919161599560770815941578703676255925404349934818809223454782465257038511111478854223643091798374766120118069022925722585191417439932422983830367984017170973209607010872073068151326599060974646240565177972540882290441565941865411714973468835893215981799996111696239118853537811973366652733614311867595261399547762044635355744697540561869450851206300450211482409777045054340326828819026223664219119014273063603417217763286186395435998366843466696260597609916600844303938855768042700233368958674748625580497420410704192778395687931454089562459646001164725734665169275692267334607933062727151541666338146330135487104222604444489445312606959197249899361312566949082341007892518311468378142048863670748804490002619771915465463911176158384575693013571919796753362648571811775727105363667482207188796959732076552048153716075079556717065175604438440091064671407616034877314945965531880916366318971358554269910472192824710283433359634621226953739133399609095211323679204043836220040980521218424796891835042826895286351204488099369078218942172847830638473533325990501414308835181273807389343967582793544781957870399892735303731348469803204011408327780408391857958157657174310635012819570303125711095972359512152674376682493339798686816225308500597478333278409950448995327864217324887182474603179687363834538708849979352737050702475715103490386106860408155249781343951530941435880424771652425542276025862348138894046965872198563970490526133823492383992567901980752723420492484676052715859282763790102739332415864985802560078308946228217754846176737367580436637883715794926964904278299964680624042392866840593260623721731750097776952417971330082904968794161067647441809377608498244388439068460757628669636919380517874847024661333873710354244479414291673554943541665840006300832809546285876845291383376313925784819414271188182331775747031472645249169804178277497319934687990841537532803164938268134464177017238495342751196550157295777171609926482502171788304764798154645423243449237977903261985871921527470965583847053102333056063330699806369633759094338183326958477023191853277931815817825364739255519107620386354706487736710528149767114528527204149828299098302703275908290015967753702258128431785327811365925381590688363246484610198459429560821325722241582503536415682416422265589670180196708232817755231241408331463567104082019954483379859436037456465794909529496929931543190163856802642994934863490420666588539199388492642029593553123886889649070325242398656381317803941240780537033388579471833348705474166213922667747866416965652494409696347511584268446884157841792584935921966531570850278192633414268213694785485336134339530214753519079747698996687483543865464520237276057072692463242446967444818420113785491964845427052095488519331775241621392491521108225661681247575480647876260109964958047936922441838091403683960676090562785091499040910530009323683529283471275000227551402711568078640981848811852712434633569932118591926195304443545850456364660246351794821512129904154985116935541030152362159105733249000749938182242380675582659458711744572920020773449231802486027938656355520961947970322015987394801941437083036949485110227944786693701289454693151088061349521515047377540806877316917654087935061592548176025413973642093173734192073001889708552070545375792802397200294127054286888175228608298767891413155302678131096378311018770746532019974482334912253851765061872333771753785541926019933188309206855810641727401515115275760685111596200595111300930676802505751858743749259458208790210986219198376255109516488634849485722426678597993350860717900927924908696738860905577078432161715290095768523727688477894043412742599694159957661428528825828811099432310986270625143768325127679888445021709767601889205819497732840150626454669515433489917575984482500435000087279751070077856507411974633667303882771306334431426076784100807604183455867747683057119442263929361616381438720716203431999487474737671159863275191069969978297442991475626380724912469708767299675355717768137234548854947184233531132918648993477456201896892734677190004515904452224847139542778962336862749537056422921305344523434763523749446734098352941038760571823481457785111940870954642215163828327265131092887276751325490749828488069668169617965641003421253532436746082751659959410424252009384427190727176808404917999448833596474104548270666612807639982224672104585284180660930357158638514174400686851164239572977942086602368125242500669573026869648293610417057229596499223483603173634918699302203057876217214715732092420273489118001150101742274306765253606625928847386074698245280175349202290428347430799802195997513254393549765681084342608815289795004579372200343211156802877126479860921622696112565840536005294046298824390252116590654416628944606908571114162128547178731251758593412038870626028017057939127304932080961174282858994238908558736051864812282777176281840952347403367371683539075440835645631913147151249396829213847901141770733698837147787244665089961282609481919245350075443991995414488470895878136685815304214561858126105376401762557349406363713732108895296447285530169188437630532975742214192463563612809492812399986132229995069387127164246866220245350132194935583833118160338398460333648800147909514155469673547873068573198102295738535258576848752075497071161074883792984691822954276472062146375651397216722031418639235764593070928053213802560348380023319269167622620345507344939832160396811656831279966269186270075408089230367034131516689351010584497837651959082789069154692314419173647987523941991214954215677953558030820661960588590401939027517506946026312687500630953230608307224320515291565535500415186085838593157023742790590842489146263350817305507179938940170042292355692568047215476941494311580678704575218729221217895891323185654451706003420415441673404265928752187902440565814904547100046895226660693775105093854639357902662987123480000402094217639249257307485846453504636350792236934351717438131838866185446961528203664617399204918593819970261132200137693525165498585474881663209077613644348121138819486352463979709215605316492033447062163106039478530693750563027751616478525037725180299734820719830870861099816469722490005994564106974220332060004784730843825648658611292032309975325191744516135335547588825185452099436320493961613455259386269897189127727633611475376565809006087702642294706552404375862043955820376765707096496146009839194441199465137127374515005266287884020263921621138858938149870594010767178888316517879440992828243846669843382188841305687765438526633127771958021912467483856246876146809589489914063818455409621516655746904962767261613795900612645540855875462454981747778169681615162790134236239646333167723824068231247692143054342537288426128313725447300491435923876997072626475006980839685657641096596497365363463155852552663227415108556939061039990199936752844266574159432070195405543227347828231843398441672016514677686129150824677299130110701871991813779529179684561969800930627555476800889260395361793795505991416793372499675956971187325896670451060218363503516102318922852886059353216687328814181705492899356169957935372623696384888635651595973515142298592525245233991883379487592591272738589352463472978687907767593847510043240463543450379089804665343558788263323565109574078781167789207550161060204910161056932081881455356610148299144408651574386861929453406915704618646826483970838732931512927999010082929761318597768151412147453120388886500145789029398091501694223152321034159559696808975348747215261088206091855623262167141233330522330525506663983025934334048464760380392318089970171699743606130460199743351769532056458063304954306661730249018459582909555938471732063448653134643352100707078543318017256383282781937732852063452135906922515819948076478767616794423355333182456056865257744809061115492399388202182921349721727294991741847143585752385778254812086490087256500852650105415847902912450904947938471891283026886722975626200139515971728366303027619971068993705612033974683962282237650502721405566882696322861854972410823925986080740337070354048781209097878773613332379313617059868517245120948977768092823884301762609530303245986712049064908479847379751225485245024158508377418157142583180648496541556190884776539693353199476117314708689334230638721462400330112978960910236132930290256350848549632749932843490437661001488046203837383905708293021666655815615066078946366479081530458169322998776570365408514193854480882424273436746496736969057031310925446194812057255204918467453054571726386151028113737973702854137557533986007987037853779948245121421884042195493463383160314746681564633522578969552808983452920573335768314651493963660819767038556586488603291029194619392610791600000867574524269479826721425683575698275141187733883198889759581357628131447997997926571011421214892911365284831388078369366475919241360542912364880651616808961179105184101542031823767395784079581515859950741404128216778345941690652385412050194102321880476028823356426658733599494901930614233747720274433688320022987961016021473046184145374292645518690838118322854933965098506554821897898782267668028900461120061293748721010821590366049123431892380980017239617996463881159379295869434805028521975947331296860606012042086975728712302000033859890367661618096820820334550550193520680227876771202130129788052779576017248621489819465130678418639102225040140045599947156361589694629016832302707122300887720631035870756475435590075672558556596339443569983086067020469706173178967626860174800155779439176023177247605492989577601379671220102176665401610850800849677845316055270305501777320831484359754705669841754652118395946199752998944826994620716029576538604807532514918619677181516574658670214642601339437043253478000014289705116268993345794117130814306800023305363830442878689096714879787245540651399868608084904888539894034391292925684394064993764091226119814097591385305181925101430253881778515178139519852861032544532893049505693049634190748197495870807441631306920503777982470453658391956392458359560416986596553617644909325414624152298457472356540728635412861416246024087929787049823482524780726345450608849707984558505325348219302803389863905727382051125060522469768874757746830267717209097919324586184325553610427680021151749784961357856584150522131616155011212751943686013335851756510199263440628421845768462513684435677223052283920584033455572565994919343268443259702100698428219781036185728818082262988625664285511586465388214420248100037293896904396218954751046247051397099068078339181330510108215523803070902842658851600118682229267638602349771785431680799228835978833004908140250316791784538828409468613006595362171206119639790604730156288668390077374731791607309206541734157977855902397141911891401384250726627054988928218117058811183620950995321469463501057934285055972121690970078334793321079940657719066423169462110559819026110671483187954820868231307682614399410925640805010312888991246179665365638303075753168759754576002716618528740391495306299058457415371598780461808462750962252065724792314520141336074027125329343660272159686595682176376971278005058550240561441637061566835132723098348310773994559459804389344468488214936752562389602791480372311171510901551761769486981030618436470211677297666491159508185498505341279365337184060411913398772366727604323370831044889388227766193665194271850267919111745692178723702048935280518192890192750417590397375587632777141210112179458476522901740850296140448086586492281549229094252206660854734751637003740811284831066206498543917722024141504057672210259809792722874242434851945547844345620301835057775798538260943826711199262043818019275551965272039043961966417980091689966232436194446079112981835173116964411408067344167864478516657672603684940767917717620730612108880782245074133161987421601237023218586146963693166843742167975948303784498644807055879858156570174202673788085708318252278183301991762586149101721433971853312607511248101906604982723815468869012564519268776265137760686766752700576836704471544573664470333044608715048020953156577876235004303152714242181304596137659122773293405701436736713459495628515990485942838705190435996315956562087484791300006451878939435659505106885199899758804411073766540876161475033256146905512015300322205464752819896075244932341327075309491441026896566997967152479474871477033230640346168871125151248763143566700600842252814820673370253367452237636838306564646217364011193573251885758943842607068142814327092164846674579224672510840812442190732310622721289797404672325894698648617100279875225284349956176340578596945472006374542916278174425004836818972136660935823508637701075130805124266944217009584797635677929564409649678176384790793034221679231702302032755825351379527049177770709656133486752555083670594887225830922523438203855350389657692438655497552247691494566551321170299118497901690044914847800853545784155378229266690070351830745544180846362937845823036555123139389130133782947172112929501057228593171012230672863128615835919948756104618365153413690103167866608435988764939220224517271202639007882476637323893271602311640574408077571480668871393392495007070161010980156627717986623571288699736340876835668806894646213588201882918076850510125490278681993337186727865105344118843122302050566845358894832320683145723735647486845760509294857905735992717360172589657760535711717189894023099455663795671640235802090439936181537275044060369835094832930595445065197563237755278253722179997347772468712347716989754976241163083796904035023152873698258142807111885602520519116224164766614391029177289599187405085960571281597633818608239994091800496260616562710419776718369444178975224032621428029442344159391945766091210118573862651910438185734784696275136924827091543917093201136310192070620278372727344605985395836082403287218786437534866765222767358346501215874326883686871880901892324700862936669697645630640288328781671343474421383554694956829884971290282372546411335579847087616879598755101723793080612986721646829339723304146047008687053325433778326306095392999506635810691376134994949251431240897305152797237158689749721473605712315296687859790580960821943797002401632683521580784870519791975080523579157433154181631033023239367854273439092938703659590638682503621762741324002318519194158199772976322338623868337679397518311287904231471517824788388592380240186707523946147397391731176039850462075928232453423086505217971383020884659965503149626643262884659230880868624040508630468265085173093629234254248638100145439202128010980380480831780012672816284228098570735154163410300881987857002870384818461813071012109429074665926570194096389757918905853427857215366035679172508933887120265350681266653041999146709517994883584484053969058747212207509559524986321609393088795247956921660934386285736905404083713659333733003897718827509288046885474445694334111062348326804552594599014789884748489185075225197877896383964470319606204629888615783060863397407918581236464765369188632610161938329683580345381344421360347550159602413318156462027295608778068095103047713955297613967749964116333569115189015746396008549104185720229734396965081946994550160558555491805521659118582135669456836579249273977073153880103023329002013671578906098919782831726585960675331059473355387110562294208608363531707449354835103222815872277323171313996536022255276070484394336234739235296768990941250981838382585106637345651172077020223979056705922370482160087239935068728086456202158409576378613188134944624715363971307566205913786735125421105052391344043159375398777901652348094092530488604851463626654774606075853005912692945260521268591784420436663066411593096957964481421133889925006515716704585905531378503923331622475548795663631194671636945266676095582307452871246495864727569087002985041850433452847865003329665323397154509218536904759756708469096532635418018933015607752244982314711137067328710693293959368457257365851772439750257150065993712308068938825251039562653857998253392578357854713319343759810562707635772479287713559759106331230997451758293787515334915434481384359861928425009543104450960676596870940667635690738682888923470360713735383072051762795619870401957466347114102044664009977137551361263761749762541138225770891574501346415516436101826803428760613960818564511162448020854770222955071978339869135446025991944373414269177311647058949892120104454375686279161723102436627049271827303101625741946331151080905350853178117859263567004115801069244430565540669356325640392601474495069625839105368084191376520482084819519319965019505793990975059295123486973872822626264265454773674441055965053628373343826855523542200062028300005039780756562797937663749017733869071250926080902386617656784248707840284236866736738634761974303556125894238180626127181157149445641743670265180346892416579601110792161070364423673282193122306492284309419187834554748499881590609356162140640320134423753081761306863101671100638495742629154595530343513788199483957599500155248358708676699426997365733136054408889213935647824099964149255502531562818497947062178695342560344525040926671663256795906893081324191984643237650748387902901179184702467658251375471811045236942426163955643923867194517370545370877494908363340230022924325685669499745172978579257870089673444752372656512408061173021592539131506789770967055048713151175673040261873441827333481264165839555263459190963228132346805821944011578821012749900779488371422010993274164929930046326722422287839660079656394441747012858032527615967958100243652569365270546534672012342979971111554573084823092807313996958963046505397621729848981392703906858309448177661722085635008015679333749330016275752774134959120068854386253711644698744889212267866405703703052023086815659212836429889338430963090107353030009567446474850409227950823886741766214156356636040870621086840985223270503977717433425274790770103200947881703319596617260565756692993417931483008878906865689001599842105669709613485918156592072988951157334280150429402202958631590603635535194352605917836256356019781141575986055846191809409955149482972241263224923569322176660875486679167984549454014570371366657796997040460400467032648234089011151270296530882845637757030462616467968975947477744742341097690459521294172741261999502690120332627870136327615654844157305218855155410140305150233371303343578863499172090545991944338560628022946556533230336814231919308407464852634528081564625250145358786081926110264992397364541456306944116099485630362028708856503193469147070874136244622140264342883013371094021778851926549767611378893101683220347362487058829846668879229119582214551632259314421531225375592125607806573810835857643761047879289681860349467745816940110925670586720175994187610039909628353176244742635199055485073553977089079694914068674387399877579495678866493534573766989291715751571507132042326099822935656332494073659943522690775438640806922935714728104085284386638099496365915610572357515999910734439630747784419776520162845151277701411232105585962244177425365297331941315478153345079327785239284904199759468440290073391020870602543562722612229082223811830167022165866677383108518825196376919960849570587991302289238112097756640759611981458635392379442246382069744311329627375080287292141076216845773727126970304995033953558402385209596433825852638369743129629236860521733426386089063333175451998193623144755269404431069544001292238089168126403004873349861164898834057966491794850923372527139995931891433235444759903727578014238312536017832506348398052927253960238619649910241788187675845756677364047031299955616085135403522242622644838336761681431592904105747579320132579681320005856076369380063992658978980467028902032302880390531805785239103518365347100442757571752626483856394153352712167764213161587173934516983939664606968662927416615198252711826390214478223191138423718876532800654467826557265246874680024051552228937012829476509055236230708487176572530133916746195620914006058005229362211440137938778816519704820239340834628226771895462096046261921701177045627481359709370144756358811373591069710941326214930690082821632652838905069077133737240787558375565428145371042637128263724781555829887584622824847004082525132706641450354488334605214228995151564822789497040590422408306955484303919464037056243103483012010064705373839320677680511749931299768563062432320052116865670608216281184834478986464045790248019116339437999832544094285762089425659423014461781336864268674711903496337357116788518089504934742591077509064205046870855649974172418759562264111296784414470462479326851416920364829330512656367748809042590154746556519355663604682649780594372362048840313484163527552923233990753241567726470140833219933826281241853145271462330015744784113259775540346238182789246885395311321641481211984134725462741964585623623547888382112638787012241452442002752899235554164677021380460649564339782629043597763903773389094270262101612842201310610908120576675206653278939372572688080478080101598919210234185700667658197512621985620505684129715598194110779876608502399323675982858539386357703667790346654556477079678871540348984987118302522818034603503469331310698258975958933347800978918061500687152501523163852806712713181737933218436060749959248721059857492868306805601623661343800502951926576056091679415648369636096613019151011040309128508165308138455742155922555808258513979463511876172423502368631967078532849325169305622295614897935581028795588319493238448057008123644903640372648918683507755404002061769016488032405875210439714557521640838236301167804295247297830027047260325432454150072480401900068814126527879098382648012346544488089129023743320333804935816374555801808177355404610529301064272113197003172322965261175425687181345695123392484297560586097063153446227572803503248236152800766869580780882156786640964920721812552138351377726720350237890294307293244043212845056991836336541257995319875085332047172534525044770628171865632836934426132266716068288239739671998301531542373640876658821023433159333140327652054485242912108663049556226721973259321939388706647908457494679115667347041729620174518301619545902640258705553516370619340595886657848887063605531051380632768646091274862540044092778532237106134182108079645181284578894103365516619224897434410924077281143055041775542697188651267370749365920424464309393117145831679278071975409682217081820436421177489214682824412915095839147590057977158330125904374331936274576927664081081902260802512396225792386411161404207259489020008263160320812176015495568892556349540847304279410555889425572265418061856496775553448824691617612138741696419566030635568886908906442145838402266564891002292424503605213545644086195233175399504030841094929527870091427260609144212698779783963115279804497759058271955017745616012464556230503969447991521166358427532969034195347067531745237829341227451027200656507511060189994986870189001668619728514386165428530946805976482197123980203774355230701628954372705625579344298978924090370866928460139660264278362493604716870412936992529160137458699751107341696749632399421914638931885088963617501775734777106095984412417591863593683250449280902898438230407515095019128456490821054334994559075680025291961462143413941717070597406999318496183138888371447839319797821797231666049672488371803497495083034018502515767586131760690390036264254091697805192927098575855790471518846697254109949900041898193727960801691408554723659097523121781710607668683397855379498851393403918855760664750151899568823815697122958539377746375484701915943711711342105978165479005711807347097277074183622536489421286477858427085334569513306670965359645210555329554642817973842533148111410880659569252670439336112197052573086698305524594302608060963410349691019301168942024333700231296911102438250469090971347727182967583528528928870917460459907712333126810741570210586754774965304604777885038498461144927657925203521305540054438594085079117791980084899953627839566338808800179010443110329203173277062782829793477724573760592119507214857741776745471188878550159307718666255976074886941070365303912917431471145584642023176407478110959978684221087854914474111093620806684206084715626400940008440716325844669240320127330493753336223257599381068868362971687050995171727815647736260894279899370498987386304377528914250893731719653242383732119341421929366432084165614349728585316629216648710743281895570227757403112324217348870380213225735894382793186376680919210624204931493296666179186453655846927730349002133892530029671733785104167082598339831489854871599093316180103700377412963588199325099804071711890404626245591483574136737451352198779963969559051928354051484602727303301460288364796046413656489170560266002899112458596227915391424826097916284797448399969403225045640585748516237225873265235716619081562259873224825288426555232195894484274929115593834811009920937694057632650511056742870802489663535575465934321547811202136898798633330844019648592722051056947807253310459394639256661977214406683105253024376014640026920915394694971423991832898447328810683521047809114280676330540939635424869028846286044836125449463697969871822243632545469046208468209613308049034929186576554693788217184277283191009200888509465978285399888390045417873653251010859430887785164984716462088573280125352133446322441325351481677726718623553676837830262418410225103264307943898998123507263436354246047181911027223155590155206252622251604625975427702557001382492158844551007994412177208571364926603667829555374656157425262272353340036625704612989429531967857623469661451301623179514797560835729037842337474525304048097828811468887541150744421943550446282164255926453617101298480985030410934571830523953544149517473073556436103628760045007674396740403551442020905880899258355343609656173390543952614026139590394638298113717731853114498664342275058343953255503574384540495804693869840040040723383851787265098356803524179227829712380451323684419725886343282193908601241623440445074069737532498103822674392260014557292510077331214485075993436044182736217280165821577874027628845226007022274110589489255063502272857175423638215308029823503599634013405137479558633197883674465303452741580720714807914919226253940023353391517690504366864372159149731753561122376150804651914436847655073671940957981819985019068083731503742505144156818405420339504141950646588307121202088393766345747527487852175382579822680920954580174204239623865137321493194200625155346643830761385595654626030881515775013684610691840575124917795542152794917569268011790832119943473422374180325974561003139477175825240787384775424992689139604957884285161144455120256338932204152248244512472865374973224437189856419617093622428477175994513661441745553227159235666785476081919796642862404817068603443157052852922115926797939355623613664353819456713655345193899564376156769753389712592695040813321083481296658333714664772627651921872438338459753351064456995794640767379605226759846547018418654141914064459049899838062387012756873044799806416019516628283922376862062968091241287740644540307901421011750901627963269895180364776804317071343771093557117192762756173288898174920195438243523124433406602551752054043491860872502434549827551980771029210565716886761422414673782907804239062298022744781718237660256836877442219971411606048993398819977987895888007307184680999593597696635971804116149834476320097952101589868033068592993495021855851485609400270879804686523872212068139676242545058106147741782060827055011532500267025220604751864135404096735920626493265584111096187500122101773453171259769319176019647798400987413111694288007109164419952333654263151379325136453770634919435628965251820003960725982607568056998164031364102160941785557681817772429806160336736230385836725433617197598596337811240660169154796764947822624340603504797531483663253885773454104454454593747024284880045765199355434492672719553541018820800021162958445275159333590751932779576027160884538589469147181920293111287080388288509502423071513808745205054323880000450980012451313292526812891917864759258054658317487618565313026811448530326854355335798456593344386023105096980109530188719822716521444821130411555850188583476823182554506996438649282528982521687691136881839564434261882758899778601053044734453146887378174427968739178159612502230382697119958156323888866662883727630725365879055271241399259168616230424824051592773934294147998817366458790757129109033812930292023720780521594611152522660319358881305285996200291484689625246559110162891311403513687891572836124221859909914523501003316963790952187104288904508622272188303559775992649253609296051216297393437025069028023491144329913508984073346712878936056078547328964909881488946647527650298181520532600879660920476269134216277879838655283742939591240627377192833268362861249009918452556720646192056829596931593014389010344101686607686172185393774470019263565785853229552214731238606023420553178075617427857250454089754364277250688387204362015627207015406844867541960224947902961839176081927421266115179582335865558330036289832470734653197394973009526762111688732554485136832996330366216697123681026489973733706555615098844271395916791833374300150628896752512837130123374832192571744993530909980667209577880376127164069579304583723625034883607547420917074894544783431573231783231973862605286638445527546125960061392932169471847863715575394392201026948720487593985349895443347472549927822026450315269082850800591737958829314352246045038493280897310404746146303077952323667183286323924800789771055834190144859461600711342591420236410929339767321175452652304302262774045851856863022485540412692780241033785358185184959049425431532296649318247166046634656943962325910605184014095721676066488888101428255041736853191732966865554649476905891272353428687053744576193633129224986355501643956324968020509468381485672378096682500040720951615594657217365611354223595839710499005033056338178557590270474531419199710054156322554771099816264687023622498551966326166405378463663316960319319456772954602211921000943292535339446741735660097789437590842625903695572685859450643589856183742363952112511163847785148347712068104351162344526695528512747548626928706352139917610247922507908697871923099853371864378454658283619755906796572806006958034347828067664671656257749595799137176818086314764751115677040986276028010269931239274021419612675040731639479851142093276722356838458831422788299315353847152324745218069564600802192187463597235021967994482335283197388213594750323973242309406802622618643267730679162576143723353861658819188595296965818921636889353417279757196740138581551021523467161989333218272871134569466692264909363090853464354072362171163852650154993345034773485143898236839892151704382215614498514758199915685817420642595425265958203981950079167041331037322368344810214981991740265494446105813580713272006915619491680972311786837835782767890254874943810401098464516944125182026529552593613064977827445849901816529005630361993767751514873646650151691190268816583111778326471388628222832415850880667447519731403696650550830667926669471349459110949944725994277465369963962963553027916890229742468750109977314363038306997261691837524913665322162185439771532332324900860175169574355478877524602112472399378009233352977058171123989199542708083764483078062064368539253571259063690736933487030941890748580146888793286168375551267656581517606988028879470218173991665218449336137190731365373813197510188319872517411202875417684486763167658309375106268210688251645307847096633116005962908165494587036727681000962108102361040052304553937440642945794717576755710051596551157525803625047628644765786485658482527153596852244681320994703082585931066813638710527782310142974556934279232318390484174579735338009536239863826981671011648371817365192730096176857739741734820054201454850034801222625917391115801698539800203767652752486594037871982384794640283833627579758897455861357254758621367823264230550752879475910632956710926091206280361793391029089648232338758704172402881942665399016054724112137690853969044765411697132118215842253132059200503776552983225943983526945216628148032154247046056825536904833665403415717893110179235108176939123807173525395171829817543218739727024515809388834069180046056073582266242006115280331809000544524217867174059067833262937814582568838689641235404835630334636271633459309146338753174224966335401003130557239715450566883041689484663385560643302854751651741758336555727060249890009020472658469451216815270925160448366715874595504644279134404297369146250366229868437195287695880674811328033350989139088736396248800323902506123333504454524627686108805032937152575204472080470021091586655489085906553489742182276063295254701468259058359430209257624367001466036531013948856660364403457458177544901086780303402908529830920891906954174166769003862936637298874081984246838610890808395821653743065046587543929270410107752709024689065449596574605096874220386545884005762487508539837511863564710183024235201736710181359541105091065488608155636868370032121218154548515336523816640017027092898842106771208702825806693274722565996519643640252116466789320802435011464614148412116440433797436314231254839325996398608264508170506898447271277077787251670888878248079003824637037928719115750912128999576404896526338396947516301710818997136322371322972630085242984817970945949628074082287575905499937996689570549390415494727957382110881786020698136203472392469298574424713586886930970756920695850937574632310844864845416269684317484797706917777883628740180486292871327871725929005906752471852355405700524775877859983901185170161823506526921393624105516768436122879005598799932589258537501156403470839985063460357135565787809034585691276000696316516769945214392951515976448159434362969361139118482003187699330254788632761531830799275603069024819336827097496402721475064502420024695553589734265656713706695484344901859313856942168464833202082732884656992360855133792397533230179058860691489920041735270157343794068813401428068778973769079380350062344486884443156508825127374500597400261313151924002723186589425486711770486408777384824452665982612715307583854160348237625720254654465535977289572416348120419035494745489748080209085261522502885038946219051749263685380409624842433692358254013426106955864212072909628223895193152095020413129387140375815589081955848486266587417489838117057794810555371483731589528788801217194070911437619193487015617974405572004736557131842124425170124424153582413035458345257104764483132857767203283461285735871412525533641582386138446622203169342872816834422537095708306468277854612804541466935144848744148213273937001150812655231981977882049771813016278760553542935272575937967169393997874864856381222981938895457079099394085023978122063937676096436212515142028365439830082718733248592147384668887247121070724529599162977345808200954558986842802845612704523457314216129236462189495861980445074771284403039778980880090243357252823120225292506397781385822286380794120604898526203958222767810024624306129011638173232102021393089271766072001623735811756787908778815222744215818258587682279667446359749643277639818798365563727457172732767446371878745241480423252713188740370295145608059003198962198549805984006614712135119161730113321611657446359183428686384141643596025025383642923274969896953126042706556730345942577584726014348976488257441281150653526113451240628116726419497990589131968586897981142707570899120636745756244726730306004572636119723813187493683801455022861201457343366456928112890710665582172232343231537928344491804733720631614747086807624161294097701255396934094992752783448234104153922553988908446340701997841232995463087344024479540245652999771011128824664203645187328374716341793893869143851960905821111971758851251310348186489600898465133679129957508719982956280205459071513240897651263038258003050751788658706274981611982931445724125492889297545847230625757180328436737017907826713174184385627489355327083129277172974181337221991389392301146042774378119242038491861369591494062893156859380007309764373152724506379381236649586339955873166588841584321709343806360850576320888423714451910242963382769136230652652081164814679460210221462203213848657294112069283116016004521260148016819737472558644477433701143853687329748866748754970937926161598222161456973071205004933377236943516517552775017382046928748043016479752384586599633269437000840303742961119798815101599245335933561183989836683812216248116528727805514591746402561867013508137710039405387027621937636947572907873363737856912628357588716786977534088530980401844486134460319319127958463033529554535313481651333357685847198411300533894913969414763029979638680345514990351878962669316253272580971861418211691339246566809027317857004180589898652086710917080848335044529176983684042028639871767225668523884368372097632415691331251961532786153526069784687766972274872279887824597074384777631928071433986195409486642498922191882948004834131837414260139431202767165962006272288816938665345543976630698407807789616755179325853100325127739252355613000707043703778334833215967891518102268948292607099760384001126889886889208686231873449889392080772814585296364457611531955969365072004774584015845555751906431535640470511946645429508563252219539897861373885755969941532441411351990386738899806014967839402467445135759303215357451076777669142294965786445732055218382018919126442808182029620509262363066990608158679918129444624902429350157337873794068332641658957409355388757030405974461126458157225106167535721137445200394873959775652284143217537696413207170678485149681546068635904068810016647676627192858491186366852453363915239353589999301789841308878316372727644721677484465644992858298845555465740774641076572181742878529306031637860835971312658416052506380794806612296896478959397177604906385526726797779429359974299943040636227874404267400175911242974935972014582145937281021220141695860252019062427554765698522866532193730552123711997089963047926413880848617983645576311170404359214054347117171226166765490038917134762449619834073270683552726802812901530920604448291225057799191321071705066012045713487899884247526008691998677643561173656243292323884572454135677751758606188289197856837261255535594356355077366072671860299940945647599091658948728565662749434970191711830441164744070688059887587521657024425659637226438721412984524432028492844613899389175394953697006096725503413880458563115306902346536866451614011915802832386002387291218359249141820595766641057361167169294637551611261124513140204575533417254734671739124868329122154661573283649479900737113204184673703157616418711587458122088975537219176134398301679743776145593947834084972343272882201588947828646740875711359199544037253936802728940369812631506464308307601648384634983259817119495084659249319074756608727923677206602194798799932783457239721328647038978215082409593709321004693260914871350488397794404772961589301862795938063663730790733627221409349371336167077110036502805940256370940173577921915687008333031498815878827995179849494788535923502547867691794114574926236869752377534250327957101011425597121143867658825327492795606856378774225043518322898888420674625281845889394677369161656240444909377760738627589090156903926774381458722585725174980991612994436045131529488115512120276439191492607770972040304491737257125048707654673704333542061560998877644658516771738481637269727105380756819439343138298080583779081523822048911789641503652806254114317405483195632275982162332320446181505601089565128409536558744102346484901627503917632462670985960306498967591338636366927076543320626710211597942810722554163675601696525231740400036020703770808012288847553249247271741798090224247361255681458283476265377369405726520683695490288512481252539757832082786656386251064935173361439977696560421009236765308180558193877208295056658872578981884356009338696839896738507480843913786784845882849089802006191598295769958812926603921694645348097928270773069498686212459657149556688698246420534613540124700466714976368674054842177180534846449768889128384252896191442362160795603333963952869789227926790887979846608840094762311124137420026474715483661201692692528246273238651272392888510894933521262318345202012476462932039666926575072352292997423724930164146322876811798866139398621847852976280146843279504848781379872804621450348841363061108487666569867623091957746024604577954724905112841863301110385357414276601427310998123454173712215950390583130739728413050163154723069407085813162589861985998169589828877502149873818231529147296060114672479138651187788735964312203383059304713057440310512366601256417140429909662492523391252890714094625510322731770977516959967835457056192922324239409739189324162100466036239292354608509063557856446540666253423168750765855836583820087930068826104403634335434582893796794564203995899439801891014617166984321566389353899263679083840353553912922035726146046898703759588576273038549502481851647878005468835482643230594003273381108918433850830072188992192040779655919780847661645004963856720098327427484398881372948303757706760226126452669253758222267576147318809947983908933513807776651467404273906638569603636304740682409914103772954360754679948553471733381398139735811938401292385667205892506186121233968677044741253144684927847392826816020696065303665878936489466765982902184695522964885568604528430452016538910572388968936563279452339246685616608819800817343798752513720109256703136582951581760627655411123952189311424615366725487504543715364985977156740966910251853362412923350867261840796509644481160824530357770329831429621056535662147888728825296522469709559284872012765494137566330485508802682780468276230591601111687984750534787726681987245478110082526081678569338716659259808508159024245580833871806096746022980191959829062766947024419407039951801089466237637127764661264278737753860903739135723191462211151866235729651954263003076921073439181877530854689914015851383889290562657052023022106571330710704469982240126151514209811637885520737003326137750879338857895651936877355371507810651330214037873108551517341877815493993073615274705269647167021795978324808020454766765647328705030223078513586645865590542032731479078458366210839121470078179426175479637252684042451106603023567800055724827129792221316827698249744572345997864869534308690178941091099007151323793130321798817734910749059786579045231985778387889916884764766242101231547548927544939803490424181852318754910109263312000517771333554187226036896400219874789829396341384439738196227867878106530589090963776759380886569303534115736533071622036193946694511894540439514863946707305337607268447664173365488320837171487374014237608297679831035859429829536434971228029567747127213969017620282853084770045891772890467669840753880606955015363268062942611928370775191678078687802390236971760419168219291898499733427600428593717907038498151468246476563705389281534038003011463499749914034634690376954623196113726469955614231133537438233303014192058081672990922748603180509183337910847599510468015962733129198393003318480785235155460321201762873550391918393812631835594910166110111336551768594021396149659883214172762436597581988287994789400165947063732023332712246162458652986506340550649361092752635041023432660751946432769948505180850207319641863833941500809917482817843977992984731951120568229784024321194830387226317691812676370788718532573602997584960452078562732661444270222646186756523911957918862541566496233858349664057598426089556391584613102936766044370115607269288798466386990329692075702904651453336997009184165240162937500132986841418023818850510155513974478657288118215838382981996027218913246582120744779048536925058865193672440297626133082587882574934004943460765544968312883481753556517037687895409549561973565903489006594760125946705005974287978403861007169160316351753002522076386864437821847574320390748681867955670309679432169528446178549835715958343490574009639973907348883666048144910316416259375717768797519052903440141064921570479446395508118548637793371777040437169522938188025787527244841533889326456737120441283166854865438318105546699471261086506757301756869014512480576175033753828249834850816242878907443925294863755960575512356946569694047733461869251819856915671331859675884910777004140183062388797327465427795248953464427246827953013938286634346873877626064381352189194014552311938555082872112967344407186836973293823928991798596992478572365322356857747046800922574473800053886208376721169876282542010488692671512247727356957425062881092390489116105363932275228575218746479628368949542968109346887879057720411756763779416892578888477036670765706208995205056172456574765376464214078081965371283224828296775185467244600445398457074191234495249220592417250011463563557857963037583356564151043280491310990506563830201338917724464895429806040911367473938022189282444617368354434452500807871977474740420213557458683872307417450985439303153571879415363637158389742449749002940114952533451613799919998571204113456063741052944687286570929322241349766319482735326543276546778722990709705624377962484313373684759923528872597866604943083730735340388296203118724329266033777471679140136932641014252097183698559465810103828697243585712144751702562211770643061218083037929793243410549648577645122846315973842221667949481593054707347954594420856471945554680022755238567246485937158637277384854526475426601224638193497647422226135494948108820920610230997795048430296444628721911360247803509819409293239411459633028319799623525668167391965136994164854363216407204946453195230292727375641751608048701361500983943720469815720593259465106438450815142371179001541035632912922509351341668948561154788643843011847113781365516585735210019076893818584025972534414523608687910206304738343648338001982111207114312337569690496843050640163144633879912247640837616830758597726028390740069606518009988269155731290503816574367723597711477486587251867099805417841914808232148491049923578077775470604590788541755188732720770332150562198497641427734674192214484024338452770355975029420670204738559886919139509452351993796565771962540974331862967968920229085592379461813929933504084771545547915541258002030926881557862197239332719752622140542088835996262930496271397787684117345042707981005524083703584508735763032229228691332964228055710524170804480113875146024337393345353960304845498146474076388197726807475965915585288766641308955027890204213081598912437333077536332656573300166938920325378487967290988070130060485503749696805272051443833111839688605901179183122558799014045840233717464508180620841201293419593714420825032146984326705178809263991417338890658715792202209946576090352038945223523124419134849307943788339130167863914286094189941861533335985762406437833883246628658980221712558965221271836456484183968876351589392403244029790900978280456468902005720126059405629850590714310853121359559962840768810094132736339308337947976189923739775354775935441846057584400224762878523995362584436412992447433254260319723946000769797139178201906898709371651813515127355805685051843493501526246105128683150005695014747668691448810602189400339925033613584668258595497795317938263370886360410910078626615340426906879066638058020805836372024461692651644604529775604713778448719717037770319914963459991319687886618040196594375254270610569373474668829675137215798387161028907124557572807197995346401347670457666092758365147207939011828451488837682685095652873287558832942243462142286838198780290579087511817875523870613378884247272700967565056226117767667140372668562641117024848472312976267095462101349116036786908305125806231383980517766861473794895305127750685324224976903263754618522253536740337115724115777018944855360342732334391250076064473907288327970111338091326130203962154620918711208466270872953712325400063801530428595425706433949265369634928669205580875004739792768354815664090588904919493346535149320546089088268424911185970019420649045298954233770661674194453436956792920013696404492091956106321907913477171285423210227358178515932121952752371431977598191954035041860916787007971463203637890854282712106556197680832003224363602212802417251538225230963690953406629755048166900361894703749263314157521650351635450346442285719794694698888589886112449722942332603151409888312091298538928546101022616157163904719441103146353566103283807226938672930523273575656589267005042506969473395189251027193558151958402135968298652691439644869582182611353194538288743769054527055632139192449193542476150603724443760091311402959167204579616236284583350513559990299098875283636075206851740910954270045058951167681720067233993598812221306386689548861876572176315142648761989262214279183735624853268366139168748743139193332549877029652390890305012662556130955112973055575469885825539718993946074997032798023396092125366370273509761452758552634044864886684059433036364917645657216676221678968663284811037149956198136397273303707648778398151934707325034582283811414903609874537842781368394301877427275938406939343397409359985487135912836974915942945401314913263741446167623165800094107267981725362954959037970806357451147967751261335503775381775487642666912365918835805035649904978991370146197757186948217356286441239460358202985625836872605654476553216849096863572615709511621335875556691127687793992422664604379924046049174940071779319919410656363887087865644484927550709965566210385077197674060715342154122687458151004019225781577405424842255917517425727557446450782255869622737326050505785364001173284809456595320634902488766043621942502297455860343569504359513828252928646399721693005514287556591373642498950190273694656241737825447479885374125336477951211428415657742900184651816954723530603326443132010361933332194197820622052146827508497146884401804733534753917381965810576092913507645209973382692270042175444359264666947453817368689529011885975204438664512618993266615682713428014777176997488954465171606664636651177464070054913045677524643633161033079211392132465262450363479427550142863572412700061877071421894491102980065694177052891477738483683461084991810420484151342968006468377277586187182776890409929079307944544361871901275084155849978308840789573569901883784514875723728692821935060166536247780391238426946913358102297683827144246801621932998390464593106734234205376066510704698792918505192497221970494179030173213344274558436270772755561542594184447352151014679657510147243381096642070541744020856660045578328169311946441278344812707909886234365332532514290991045159072659942894903803375710217798121647964302871971795827575868913675554868346209520221793589659886307111750229330617305927376784079926833003846740751365610232940213686420881675683109688364518997325692980327602085495626665429903416749487493384841408248433633516128181266075414655745478634940407064997245643644509315330526567965889446928389185071665752284686366452007806490174651976587992981765881422761135731509084735415313171678467329306010513786959142639332488802187801866395862567705929305607923526535615610537617379038263277532818809446535638475306564048904826254264610136056185997179568338046824541406802919755033101259125976300989195308737673337384113849397949760123584523779861237392230723034198616974505955174798834473085744210623264259514081987403524767358621546884633935609482775641757585709640879269113702823975428507319720430242513840401855722781491730085073454726301235196322027719880902981363944784133253570801429701199587552001727774695116366708510710774312637384271609358066371001831426203579796335520334043327022474157849463238462282791070071823868188511317377369486744874392487371917894379425784692964735659392955006975601825239100974730141791617325020652662725205952732399144259884849809915255618415392816161750931925513848682040343353010192537098475589154407024102396189335720714255007360675192556016639040336226481577527555664186487575182407696627477504833280076243608955353223276102009212214218839364137706980934371204294502039502798882917744959014321213041260852523259723860406743399709670885447972345027841649934858858420833887190434397045284734284522420706238823840949597012594418971840126907516182966758834952551807230167984482945264135422859847628439006614105727830741525568106689483552839793432094265204165285031989455772974412498365098458832506951753601378621368077540437605605613812049479902991688180748680432257748610413747167452374943474450238980398321566627882813026034755538356806582228540239432202027731449621665034480784628937355430415251630904971508981456856258759121520682505005852683049110511242529164771251984885824262711220941729020646169498494675606894350693817182855505831499055078872761183025497565861911796827845257952263634154322801565613628879066411962717861148220750197930588466518238378496012056740917000906833667261269813910613753374524858607949674064623237017947572312551973835831053838282809081561543304397599012491075416147710193236703363733463229586271348884769988114003003886951431088347557765174071754769659456239096817672476586040591685034038830191519902942032119921409229620233671417371652618734574818598705456614590222737843058927281215198245549074354665186276629576025936352981558159753706375706586162173360987659750627581539984521296190066710569944605084725516020296560406942366721067171618775868451841986633816028719416982443764012912943481353203009954333813251785958400831890588884972395301791646962291387575465447849510506016009891946111986628949057567045559830722061433112153580645746390972341189620712957207508264722853617319692386378766544100689707211542305317195955698734010764125969129925741611976459345790753657696011896826196650865053400403889599026303208995186619009650026164461706097176011100301071985552260728158760570688425916925421237534507001620987171659099163844423959470122157608971690261684115759669833896531565645911961326053844879735934464658498415703572284342701244785360144143924728277236696597602741741838534624985828180787502538912299456225334243594766218268767338688727291438567228397418264058664025808428602151844764669282065584346678910844680930012266514072120462758596644459123910873654037500749314771038823828250996749506208726776371289929996135748928390646749249198907803899428300213528247288665633662919000784568871113106824034644248245389044928294569851482979595166335990732817920178371192055009145453183515342640888052953004043427629991603922893856149949790932933661378945940373170194118254843195997244524576134430701987141919781080023213172651149478797787325701954825748518546345545788777896785473561719338754153615616454120324544666750619880251842330160701600123195180602812244655767331279193993125013382139170701572661124021993775512711885225586563508856766411869911612419392134612748881670078016455016100666433466918665996592387153939353845899844815374054818442421127427622848355827886851397004213861252897424432905008443873439838436268357675519198686764237002797709952257957774548525505660831736079358112400321470895220768067838050498668497815762264208920195099631918471580905664306564934223706082232410219755135096166408302416478664716463930402350638160322362799603173191822368447505305981031973735689817468699609821570112350390110188031415378198075373151757004138281031600505002643713112337284827472554211173740352180489735105004254728511290874517529524211158071817860444671227666505538250082709305363100752797608189005516028853600777119423589243995902972435489596573184277918432555304612271819043405677584674168555871476469976333102260594389342640331888508908294477071809165481783332502027068347930856970460470237882014668297785467632605180360171261730736003238844393606978529605481396159574026253481467056301990828843945935165616720221008852422926039684642123713998871704086963650385952979391251495103862057945117932412177598418340633837437367270991790632305609942805936335764510565531256886216933383442775171907737367378392514170470991700634662857829139436540121791851556105523759674900259709103103524843465865768958360697249244061211053759995071391070922451146623178734582220499284214518455695384905494002520232479102619076385869887217362369812259317370759494482485489168037722869311069915835293970425522647812961395292873901505191220744583049724747455929381587725955893133421036086811739028276752140970999556483686484247814805949785492278832855290664658677058656627291285998640103449270173713565609692681114151112147436116354693527327750508377677451075593716700270603374788710992160030139535480043481834879212206169581688417269961412094199774917623624412324398397347387788667071650623766540988057305760539765062347357270511707773571559619403936741810572905576178284441048212293516774475050786146207975214661003714585581435812058874166654667682890562410709767797082118826867644162066367003939356107586862556289691233670108528398224238547528552232134606760761874608436487847596130927502551757916914139622227276249803308116616150318534441156222765255866409213888273088267167938234348020893433288201322252805822847308024296269639876824357703003423306961677064768217601964940931235851306562741956188889327586671004444004250675262473987173392612762120775037458473054656345542477170535462998121729199543233805905839300325125685379878750164482360362190713346657430608261508404601138890793035215771320482403099999387447277322023195516607045144548013106658952642088643114030600385666565321783703087596280903407695152137474470928840221736338868059956978897122623043911082919121748454268892071672382273858067961842581396887416905942793186382076232704593201100541958725942565234409902879981212669221073330292931217088846720928497533422804866774836125192629550137993672940388226664154031875016507683258767254936842567702352366912228919791356378925680947772633213045893114468410205500430962723337588807351238842544654983419613258493266995577206138301970486153478488519986712578367346771830136910840280789417373326800110017477618261023361110515558460544317834174930054628937920184340212480692823003306759338730275406466011946576080750736038044106754189439152037385181627770469132924533080224780931954033786864690961657743017318567122325466347599110060333018399296578892040270565125141622614107958401027318640109821515925439756607277801942453123403133721858307287505294142120894787633572453273684374350042552406991693023490607738664686378016903910728665216582800831668932130842777106021080502757708727994537875914523096288760656865646743829439042449133602775629666962660096703878818193530190526086776853714600588573713257764525541411949451923799347707976891834872306959826274201152991561625469650168259147673414499092427271553901546348087285655201319930826453476968396624461384432711831425286365671862818100619716211340519388618649543353068767223795343974084796381566919995299109694024754561914990628201903117116935344045731707242188300006722900248871527528420977615908596281524342164932554417418771953656348861643926616413221002013461371749093169529071411335720000439534497629135684193071197157033966083234951706214782149104300939576258294587041440646856713903043552387028487778928489362594676308691489092292921621305703660791331922820690475814012660282370374646387246339391874508313248922706946597134903584750856830742483328255347472304663231053267091321357971482100415780396029116692488565446201276224715640935609031666928326344690190723701164381927159951174688599464146941449382923046133584275476387752006989433497723840785647941410683286535654464008446814021046293179323676265822103532791265100894381368551530696998321504840515150137004509252272019875875756787125708203800033811545996311668229113119812007288711358869702683234160436008721181578146455891124534929010742458612463562323695551343627186743358525041981462807263299191177427868110117285161703690681047479787597115329626998604945717063690334317524288621403688581109564865175655399950900263136174108852283768162886823147457997495891598387542868958390716564007183309797645270399694694241950542207847037389767139012915270933193940528985744693335192176292450638067143427951111285831217112324530065431093510811456809610742944571254859490348662154270743559618209467895834780291891495302502471366466938654932904095181158146867393911327387500588975391034447368166597036326146216686601698526715312017954489094205577061609193752022432909602313490271774337011873345984224857055852993025579706245451152155151344799571840036771016093685219789851726975108640586909708327994561024939314734071765478319759289106299756600406019972608464619450640198744979978576591146479655725037532740374824462011738480595843962811890132815456300839548592843063876629176257957342163664697563961797192214987468026098298000725311856620213342422494329641015772625693069209300655377348749956198803917543688424343894194452467494204062947705304886453525277080047084599707112661738383631467599188604293437405201799860618036270525957561221550556775455578453702794664775699871049101799114091285115850521783172116972494966391795740938762651348370464308781573793344934091621164804071752431769936433084555367815201563989750464222139728397937284587089141698312608405104355247582459977151577180515473722075050678959049940020713737268511912548540336236881180899213796666994862158322933885801110690111854011537087331286669698618797705334972153494848352092862527433984863845550501302627828094364614475687454394844476167018086014631037574324023033181843170059678651508796150556693749181246236502683990004780056795770964156041886728392874191376132322765923627185939438787537663354955162611041758090645745834615892880588438753594679246971386747562265962767188246351954161915842218268153043041833024477609841112373183551052534843218320377738079634415331909807414170565527122809358440013175401945596845599134251366687647622287470838803357107214596122735845070636158018666175048118261151824654834040911682607122649752845956067944456290243382116690373124956496764980694592430501314194840096801033162732538655976860791855974155015061310582424272912548455251292391429240844323398643449773734808204268291943432381774109031853920533413095980458719349818844759721136850374799231978789766918972319151841280348071563142510736603341103637947231023501873642483831496468989061415763876978936791246517380053802499624074915212454652194612864122906691461324395090762999242940300499389112838603981439346201443746302608989074255876273750468032406308598129656565413789313242400347109889381772144114564176723571956344735146713453410100598438652039767955332606637931843489633248282613178750250002516077478784243542895944043508316688570836482730658191355289768843562530568952272729215054191867769137529759667505012297655111474065212397017938347802476038743881340362061746763988647033567557863567837198508646209404203122270075435568097625686238167601822802864081776436858813320870397653195925975292920098958052433302856185110267045849449719065883383541131991938188291424019504172443525190493720730322349064279888979199001826390369319262631081359075312659813685704593407784433710962762135338460492244856181800290727096505057389640573080937138699915403132756589917306953410491746501011369732985223905206857191705574080171784264505555897374271208061673880817842240098259284854450035372840126192456086534265004501069787676355342236205576071712751953366645893966852796724012192174888408870283321188157429231361141542021151659120291842952582029071650625146485516151093864187768491920843022095031550300157579881022203537502147751599590298202535171178645365743933770364363110020362265834557695593778006784993559157931433616731592322256513947197937324645954426655684552702231967866377155946824920906192219370874539167700492004764763489608886550833078932915026025669834692320486556989168537300431723295102098835842816742461179849879251947480368309074798719077080179956113926155468410150181231747220014378087872279700477827040573834101732327378973208196768327579906223034378016628306410264253745260199867477315167391589743030731442667311107406926459842416270064823246620726521593013240349580283599731073010562806697156654783109351110240273854365033807777729273398326703823094693191680597345050185960560939019547871690604877262214987634510159827020232740319124532020533071847930659232320419524223113540614443738549485953193770283301038823775480340590434920258604099990227981917946992768907582138020957613942418376968094039137139314429832610823063134179937123094509091806648109521716916087892065150103932850497391240010599680509677027882903636335116064949247153401060268689491899173565279759493788115680307040066295306913181769264585287236576799034879877274950098369690118560279160907504642929123986507580766114579533956501562582278823164715933090564698803843406710577162140134355798011785326102857730960083688498285009828050572456340654988394639514255324252422150707983159640262323276524803201385118158398293042469586907271703056043566191891516308705305999763760746738900545977509553007217811691227301586162227440224954707406529477462999713579913624595004744945245748729416649063440494073499298115186706313634864387753756611919553528278506103768911203431581940259488402174258806732267764563364137772962519318756691835180759877196241517345637834862685999839744983307406127179883251156459905168908590103299720267703870689205129339119892853274302630877198198106997415871152134290353477826026685197729725700217958216865442550632128069292285800959053879197616131102341524189914287562999862208252125964428847023211426282418411416768662967875870603054157401980637468137047161626844269709001859118351684190213973193367136630967042646549676954940077187081454094666552224864463459541703268425571512898264521707063733822487912519002671544859245795834794558157869634335898395467649698917839077211368396157163015250402404721387458725324050333489828274044461991025030847923436080360805231144919500405633589381730713769958987357328470884351305146509980804242502800043371377113181901485502218163512854939359398622164539132558784777190737496226993461746531425866079486151643504527522824946300858412429294836731212050365485428244388580445141184050527516695200403817875860367684194565787977675511614245537284309927046165673565297978655930398348831306268080594763402827828682404820023972556201420796859080067995338494449267239772465459353613669880116197264487873443435142778781577960615389653809807305737075313637812607053628469089680102812124627005858117510677092036723615434965119517781068157039250394382806396546079948771593108989075173577471807949859393200705188266092012606446839787740418805453249821918695841495157900215934386324932567177909383845408417608852143483547785534976467690316554249815324568070197431844174933503689898001596582258333930616660061981905737637218020208216685706320594957219591027566713390872794269714829972268080433446648458520495286526408392204143456618126193901580505496302968581928310938921450231059426840796582744168665294355572111868505151598955272398626650296336952418389537160839263240715081831058927064545008542460001552435122986945266602101493064966300811617628807062780376055249188180041260807872858950602248540208499317121857429018072865235851534085270737460140640810457353249715144415100891178491162707744240514457497027350215443214625000150937022073000542214045318235682272009549875233139671267871643639595347764444193183757158679280640027806915947384748124440215680733233935565455956051274960986174959948204812217941840110506981454677508894800598495461552706170452210028789770837862289870057834964236800558827286101659364634244419921369263211009051709845841523375842680361772712766641454142737732904953421585774495638316920095828383799442967303128968784895411407005564528777802775727292798124000490293199617998776056649494183518516517699693241446824175717432652885211593559307412014380898047416976186103813551368317641785218604541928470719883233102137437808046867070417883681486215827887814697014042756067844265529240133826165318220626705131021084906678514736999086359332703892220729951453252773718832609469466500879849180833131610613261351310722218460314598512337020607127472667979130084778383799636911039972680565132538568614068445594289689081642793906438573826539227046219528253260439111870466744003369797240056128936687677249846138358230826786524703924977288239624592984730786940028217083399339640365424926848806569668258540171778474458537463850441881609284481679716868465108681585977799380340308764534587413500321592712412648741383265050912370665003298994349390658569184036894292505997893362128094303172214769513502015740016958212066423051955289120026097863234867066167957562734263582654403868039036530030798218447179829120921854087147606611849740357557680406896597156201895125226032052443185364427084013249303489797062282595887567202719642288436213831444525531290212222075593564299708912537818523906290906168281121782457844720411019148458233897321813064601429238235083472912083029067220581509174305917537142531453618260708752766826044809166559328661915065755886563269516091810752890325007817571682342960181294711927971287782836896035112523779367324077477263587775936517258391038449608802583855104783246080504405937319326159741317865026735473084759243262244501144241368309735666772301770923905490562663254298226949591726180364704411428151915779446485326271994216951396893915277934520222823926931341403988939406965321662739957185178434244405145716751545190680402537826631142667962763988741851678715200790980255671567263966161738183428174675089988309975199446741335805974873747248712843352429663866694900435610099908480626645230330941215271322230881307599137605646296618690539808384694645940991575596291072618640014644203462580617628918331700334228864736400788222008428512725993280649796039314493375348912126241955550892710399129383822776938266788010682443595466587421520425292059113371602120980434966401271971669344262843526368277776878114432970270462269087854457884976408976109698410350089171429944246424821232297148409384259543071871148228821799520270912964137863442034339730389535598695332145989645739022339003799914986527443973038095928094664234082307962284067948445844628418778781711674229880661531978152278630519371776709731628284015329454805460654931934029229585975726398686518465038605322455548767579562273213089154381017284553112286432750013726300365596224724468682481756158695976557076933532545705620952229297484906425883370673011756164109306478725250124550978636883708476518825740913018080035630044493600435176161003750577796024054271187060326691573172785383951968033111064919111243291547301919568587230328978028594638846770166865547724787580009932312735294452023837823314448866531756666823806474876212511505264563282927486016224822860315339119514022129490424046984988328773042565242183455478687460891113386152998772404078187660099828392073252824111490017057061255492213391143864201149396986735580568802291714008140924061682780406662322988126697382795983025602730427939240355431361157271550453916339200280094546240263446474171158547328147849313191470272129868597740691272238248339718900930143735175262018543359321183121110582511218783625766279143750170662166184428518767094840775973977894952178237055276029323499445039153079758747837645973240964539865257765405010409065001376449587461277346578478973436960760523741273195753667784419421424384811488699117469952876954591412248836565939561900717609633931445034639514764402712261325654628394080040013698262204507249686658152834650264218987766250213580133053616639769480269772028966168640816781730841825377351415510653237311959696498038439760858206923542206070179228986701861007798205307424317388565263614789025216202826093879418211726610209045998239350572224403686274967124016473523834338896020443326474049707508624862129913276662733615826511986505802306137545712337569128243616131071996357916948527268860677308343162013059612810540174880136671644873949439406417730372056262009420792670640154195024491365011580984760141261589885035212631978418405124926537591352433144500368180889548805525952941447122193682493911080754141103638548987036282409923679287936161036004605675869817242518452838401844471818748202168384277629549088562332734265018662708215837607198568766001212363869670016909615156275994665139164698648817652950911119621464260833281233011533577829078398569551115617639341742571009071274179874477498255375600050234167679976484532293015196804386654987473989753285638469159748197012677825521977628984893124784463503636109403617287812045551026426518345315510487559732686779012526362110240284181931034604261100180881049880737770680587569506673744000999760159390377108657521007758885868431348892368160609234460770948654163114858559981003193957307765231632039116581915562908984283482915764824509767180657206294989370377640398479413464803558726851843497720194590500050625572839111084527258359081668119476320852596974591628859106437827831287233091916294318971477752777482940822297653694414469912497724943610545892746123991171562303240166245072612227299470122178188845197538356952060923259408185498661064673452603636297134699556382275168888290290208359540612890917531532768689662813556919567397907893544444804483002407305255199008105404062778283606965202199310215778326365168736436583469487273155416642359815528197328297325540183460790204413429301602208575361013456482324707139363849070419981786419241199777619004769185201388972464373317134069898366272784940277554632449583250548574100211427167365170283289309676342092523032486345620198763880921847259682615771155038567935649873363109469518246752905627286951084699075917991632449485710411299545446782304314579375177854840079229334279898811931562089506285430546903439000201500906312625499782809579334382496850121830908269178987141659155972409855490335016224507506086625429440875501023645415533421779218297812530713296073277924152545096450516470105323804198921326147522553694975450907885711729855491140974087379738586403509908171301021802710225420191658423146017685692425204359855488057308513818779096851910120085605805158721759461813700872931281976926703127949496589737780808878007428825336077367781211920054872172977718413078702285929700525542448820643169422225510226232707385332486246248877643551864312100487252663890685620036966572501673127806634719874004153085237979192365252398966654843338673425144776311433482418163935548584933040469430517645018192467019722399510023650142233830423896064114365428891719968176522239460110197396293211272766924193509179677888629702877975532470040031449317153998105983908365368845017473329852848672703698521513951414937327805004780212056063586662110973322588739933074333805375462210848508733155299604971994831174652909451654642701460094617257615436133382555801477810245675834179928627687196086365382503117244476056399528929430744077536952740190736696713652151093122239126568863800795324538852511980112971616302009589293884685819268265478049428124428679023984422326295716494776017129714709052375544935058286504045720795074986372929832516876638605229940519825251540114262892788189220834977969909913165646353174985537984814242675475004109215837447337609759954419264891360297957235090606690210388350934493630507473677816421210462279053875158634260131811415030153643888719195491288528144565565667024803167645024388925688700141911042580467689758959764802895788616886431792239872716393104214786549672619768250095118673929156114044245041878843685903827835623104774548824833100041960607015414737550916366950457916027061276977165065214693277422257339838966487589013900586940170836981788326806871427436413340972329608508580561678886218876355923856972967726490532437540564205425513982959039374635415918881169112870828915094913208220212662691516628251033235419376685845170492411855977293715829780424204755463181146039656207058553483540908917269923253280066439490893021276996816602937814617429050284233998258132531240413715811532002083913078461477353746327304600957238277402611057264146250918616756444270163894570063283395119696992883765912129373203899442344028770138627284080695627355221590031300293293540452483077588177979753298335931842552184633041676365813611813747429833265387771067864026073890216780012537777572660743156954541104467068469041123753885316283088365841038968862778471922102093220511484557877982093640801918054624993105385546369904296592609035262255714976157006797914826540081327392106262038021692511255934419603158431701135766034052017524426690915358746586264523584634779204573091246627354754377562229481851988018888581000601978151151405297808202252942371546935322068224025961568526358593457301859104304814246028744188556950062382230711293207402002037765415371922024082442782468762035372550226432752831764452035528696584324198473994069534205062861127629971145279152499235012924002849238613847816852753426285271006227327087636705857159361348643192862351038717348061648335964847763277374109017615511465426342705048878269168931125568289480368974090886133528548331771311992623422344159623081003583995885671930263682124198308705982448334970824364253283714613542957423532856237391907136585977589466323387012661326794173782318790659100029779746522232585060160039875466903676289396729173164262655641341824588873956546949486184447590670545107508397314212429147979685858773867161540847873721042465567358816879940331226827892528214370321370725446691605182402423891415797565728563273325635289899350009404883438262328327241650600764921232991222987682082333057941392927486023030838404002888021756676695452710237309140451080220817007899081240403762683322811858230973339295406284442832650736957041533298561800101675666121320934770728353013889105461647323273887173096851906109515998951727254872485140583160097915218199109693219638880187783052739207798726621836687258597887647276755937012294076467313228478840818594407437852815095007586190011009589221505509671118812447979468250850836061564657973856536608639077383224410294511074799914112189020749423717124092304657422949052681915643759315402780615443425672694886842413622764310462114039960433534912024595790307143605716296407674599836020025826756033316768231450709330742675274115890016842766276822221524972239665908518253914272867503375244536402810062229306029478950579506660121006912833952614816980444635677654764237701131463682494580071473261764277676614630262606818676016166897110031207865313835425818975067410698704855835887365896476299257362107731128515897077425857232392425264998788291985372246123193350037809397426941648701972852920396181574836371300549965875950539496250923920166470667987114845751700336645517771468173540740437030664976773018028929030379130073128799417147057080836395378009231791463917935564913157711347963256818150552828112086454088533173008781787138987456403399098962315464652756850184615767333254402257144312176696342218018557555960254265873047181118941697630198809497863431396653846466895600237607698493729343857022757122360492479307445908744441569945142356530629342228755751732409391102154700367530423988690099407435789166183502393777203459150406578869744283402375595535575613522716524420073886039244680976048705593710097408862617384475788754393315862908207996882654521587914902257179432379943419726661965814080605623781755774573416985445317863765365915403790496558800554605777363498816151068868713075539401802793348409579716583750926152030938613852133978051982001195595406765780257457496354698639140456537601171612387454621980508329018620670529647344028759935948665914262573435169087515474642532307853356262627915594268524528928235690512981201870942428407149915043057805262267787978044633249129625439979659368541411106576026593971360486230937937512747159967787566662079608041085279768599743400868680221137181169193088753533356398102149086427340174169312991177996628568492405667236069472231002438036186711108189139696336130350065295016439949434863157228320380857011666664571587227897212210835203352512060657984068828978026961358411056227881368704958380134044887541230927922818543520779971073815574644062034752143005977002234961546707301490786963831053062057666646769615541539514099026416649760530500603567905068937035776708508079592450228148233716774764360412128124069245813264855364384157664517125310617071372266567797991908347696731066418845669802791084304972849369830260932015340578188945930513762787646997902161749978716002739237381160067234513736145736075677151181723188696695707401544705003855334971477580348604594148016971828916870049332856742822980442126423072794996224355803268708927746854896137828952158965878841850067123850856858462390654765987860806684437420790291169611327239520081528046251239801286199294226867770310318744639889462690898064198756453732496671379160130242131382305814067371805477405239594836271460503075414302136240659885292824248297773161113998833807151110259600599380802782814018673805168790732176890727411839779977549196829933684591355978471750642275976269031328548084296809715869076901698956267540498859233490222962094710676824359826027925867089265444898826785980573093486401946623698321513941562607819372586822730085894373668204234160123283832761926232481315749710470387643016458811600202693217499200370837175603555276946516177751003656500675795373826121436055731888767057445896278924867752997452655112619518836860109110552824083745107226220273157813916439369079139909718387282210740207071971994760144000899418230837156974614702649907855415347579998632376724063595571808137091561948525662949394357663797071851490256180173555368425559458004188239911223489654792424083644698938194271035214586595634600062648973672808301972548102249033795601263989940215700025336332609397987964188424885290166124002051868685478898841294168742025966678758987772840800141642198327049650807675464719480398891718601027573417680726484761241629704278345675159004286394177625923876295228458434459008118567535821202108718704726326454331373094403855326116984803254868228971787051387229942681063076885405665417465215473769998441585070299611362775821809862952395071933344954021949503315102814668920707588970757490358562150860113013483873308984012638460262221960334619501231312149172040796051493782753812979565275530812839550020301297701966299658800387103570427912857737014189225092671620591367033618329382263632868698730942749848516593373993506503179515032301770339081207784927172123834161386225604669832312133415567362646908087998690054739405748848393033439483004420768676113694370757153779294603048599582210547233670337120940078241975364332003405603944393541769590410192147373784374520195323136494908391736287458433130846025264627301870366705525438115984102710501594558436004329397626033222446689787968334311068916740108094917089212358257730724799618903508274040310029211273751473357635650852801585184778539127982128745808770611401916656065200918321104995853674507325751423875866131554277461846129913777156155492855019110985181576916069735549322874587443330894609521488092696595259048718838732059917635555369889107878929033081186580311658607105402655059131233349658380941763412441764244099943807166002518200241411898516148181202375645065324373769873387354967681746891977716876035424839282291190083626257067325361749824740967471612132450611347207256452731936754239870451591254126665134851500534088800419811192377746420655157523945715300417145805339132150450412743493259076122607093215934949292347616414136716952313141571940006230739712381028533421994298673889879188166844417185699498474171227829314072351681735296372454322046432924822087520049852344145133007308545608343511253050932452370531981869831489278144562914944594812966453467070558800769835154882797200534893012861454643571805473303235969482723474797964295156051719232310591620309108148120510036552930250746960767932351501977609089584713055351106555380642808670250035135544649640755108577559954421254289077010052077909102265756337552435053849853623783896802357687724664789429040278819926245122948461510697566253903331314030698542981498197725670826779772414883096661966907387632894285847467013967688014912222314637038333818867955162703534701604133114941657860093988402707478634120816622020312097293496212580091423457191744546909229563843978665834563921955831618767763160159418773602589506815380617087609712428352702606579027138528706415648133386651287133577494985107375243070778335781482206785815359137250453264261121016129943613262644976930178780780459680709733367285927671666719534872620219384412636067585726953809145168170749592250473138259336143444386777209899308535861550206498528136019692080582052195508821650125164587841057781153668339774001625525165294545504425771770942902736847972427138708613624926120251933199540308092371257402694846515595361073207010692318233716647470782955410230049503249354961990567372474952738766029414351150509975328453340154899526296583096558071760050337179885531315807133396710391050667236214537401225757660244497314221082668164423982897770564339270659451068571915913232075743999201644249873571020014800835717339257618181551111035806612819198381077883437060224623668904484975853171163037762060016297032828335347063533631937016278551546505603031677878311982236477108103858873803430239146678274471633802780841886748415435505083722974399002875523683469574981853549358859401947295613905066561363589692044537351243546602918991011672518295462740737307891870106470516714481823915700830290024243556334869618034675377135652554845771768698096977435555355387418135082097278560121787573057167869081591218733808673981854740314210192496534609188514359233011973727168813420395430144813833368530582109030171957213659358887373965572917721584837122487620631353722234253259219432693144419916932443602896314479234784436192562794130049713835766987857606441444886608006874235156051830808875461782420509102831872635392517294131855304662926428320824281939362506053553731186756317691058149584902102243004691759734189770583196709714166595212006346974263801027071631504160438374104366541894574987220524924943706551244142563857720810153836904073174898326998726954668082625460462492597819975937549952491300958401758888756659475989572883199227726955135792754502941851476409123902720834872736321731810328913432296838980892111087337698365401744231860213797030660048602635931005383479563525860015544492707049043755837925191747260242917660830295164745170609720665949356963377162757150985941197044829128605592886978327189097794054228623722862439987511065028984525302666564198379453702225742160673748559635614897200699316464777278120356024977463158019285642550039979706086354679117499574129198993174732387689103838616505394919048168649479180789696136872564085340176439047854252792734032324214964410017165145537579500247120299307861945758554262099232036535857713857984693397142538640636736157963944870001176350864417125874254561213321424191112053735110271988828771308956778358682350158210750727401389731671684630582538572649934870617301916486243038113125128732459151724000952450394796082815645227001344793165992584097479540593890222738603261620006891380717887246571954191901713020032993268823577207769638452599793500072062787460694308397858238410740592714633697162058511631582557611942957460799553146436586403247653439371685431653697323937147610548054448089858104561458421101577184044020273131879484073796570183489571351798087973693393277116861292080209763473698515771809219794453062130736565770110835440474081607386791618731723088351810938638611392741724341347947766914077033828673372562487247890060401971190421404266956731899169501135000119003880307746207107771746145658188022037918719376660197276206033637388839560074608801802854450962762075494358071965312399516778607776724936131364922534881340317658726769697366632935244035951132219150258667454887232480879739456877894567729458216009175729894429453217631290840163493737008869607565894596172175041209885477779921536030992729380903243469644765455065280913887595803595082210294851110855041233680406607120372908666246081915221434164483710671143315048849737819206034848310589732295834365333692256946446301174679683664499475529294949391364477550112604702670606131691445876909197703673207115965866176154550930177042529624959743587531646369591709094272260715084592876331295981537589207850280173619471750265855744446050479160292689079546715866677914816018769270818161643236942483337565424640937409632209015021525886913744874016754649914727606369005901041759333583785559822020945758805222341939476374233842897600332334194967774314664854145167839859874693450676357380272934730220440467422440066144447800946924661786332176827526680478822357421020299702210487263826585265154004371607190169169614966603703430722232860423068364396823719324772829849332194302580737872727504585398744872193203371127343961320088434501355313719436501343932023780998970476692701510902173999283190183448960461777205597552492419799150253382370183216392010465035086155904290854523561369274381256762869305367863296353125811186740490108950976449539394738627629145680280721100138981403580123528752449290977133590166438560544772226313551414310288087332259578116043894901714857585635518984244556752877219570078532549357600406880270235436256518466474561977566615127416270100443291227209125695329360815287465524068909332308549349140143586426032223594759780935365574363411561947357805781126350780331872951173044433608633576705388352953178443403966585550665736898037907492933602913009351370492782152046424033046649841058749594510224099727273733632884677464243299136030316489692664482566502850008723102418429288212203838602376764132651792033587533037689762854049296625389090538541801527758717974740450943094246180887143514899369477740479974127992419918556577854299390301899510301615481019993982534809275716286798539875556608281676189506109070245461196012543417462736621379658103286799363868115248122078914878577810995265881985594116513469884634535735444673068806677571573453517415701329771579912556521339125541531614467877850802675160325399010452336839746964271409900645363493577675381888295540734522079268747107999415146101388577407997439819198752847326144977166524958995743805763383116526536791422535589695960941144403780341328740939020814275202707849059739575193188346089099310569873775271179983932382884454039155606731891746372850522873712858666684956472413419697291498956787342603548251476209718968975220475244421521649981833184295888851854769296879023348349472114860839837624451606033443600863251522460680208950849159534403779118123575318011276321334333619364589513545547506426686563566189116706816591357592489635594926593254746610063962496602141477289861189393719813544905268036588179815279695633408983009417615960895451833765385075090355488659909054460503666777780410938452189385146112003957342593327822645414600524865424460232465286727226032438997128466426313358002042670458582804986237524005855193384280025780035040775816767219702387922121325721733630334872723156446792790858933255909012761796341474306399602084739994710755767937452514598633927600504276869725796548777322926773560136188740936103999448138081118142703585373564540444134854821181604800992449547033557221617156892859307414852435543951363105656916563883025714761647092160428250619200409260206519998076711619912229209371059793381173012597929829371531821457980674588243402846338214844605594664241602020876009632312662517481984652312679650088978021513496060745700110985217603816246163780034303842488792393738519078402026293472403189486825540566002601886806426797688279132694499729079387282466158386644655051746994101417378383768644284064070882704568323053033846662060287864754008441908417888750814205735286336609767260380919091901443679194358106824135359826484580575379063413370926976966312123370401081183720744163449892560814771517726076012160237104855560667496738657946159752984352912566817284253216983287187833369978122206718381883821433155517172671408213212446240926855430900166935070195809158232261156941006340102651234716102466160862861773583118608863337890228962680204211553674908233995424611638042431437806344280395275261587318993035698842598954585485249606994401073027338043397428916977873591823709416065134918859940514430449188277649384138587799225054297113807427281505553975977800571584385114928047856809648873772810358161750885578296826321246563216612035378406603232854203669216839324570037617176381602268643176212378714735248109078180197639608694899205924878459642500107476526764312530614424141991270379039697583072270932732689093536449419688803687947983149556445839154688200942104196472454285444607270385436040891147122535612287314266776458137230458177538925055197136596308979395728770314495875005978474628739857581440193155816302016035887003639697370167171578771509574744563916398498538098608668219667544288671273912202976486340152733441068872540712148927639975166258771504752596137036520799175101310201214801802531242297718073231486684349906158078121283773711921760456069299149524035088064884618109019146675097949006008591133017480202364535701443986972621842699545941713532427040734635205159443604798248156609270982902993211283456863261994600423499208580435363276966823564298411112184641263141805319250910509634361051252496026415851993773155763344066063409183431279155257494943898586069527709280400981847288158055463734375658588975954341392740484627109888074162610291573070002587435363597258703363894906954912781296222045261007212353513734899006838935159801425113353599520570812756889161444197945691497277293744854160398592951123064764082942922760369316412271956306602526307070621795158675567124312981186064022025334618355662419338843264296222581451391233999749561233306652836179975490550389783847195199451709366754599585517648748902011817017437721339920918738476137850564513297975209926220850953323550271412849048132976739860417119970319501105204929639858563489131075713107220900443696067621771757428481910848211537509436019685456920183380624197740716563954555092342481566699676536158407999628934671984620433678359858821166655166037485185894605355788112022763882999020404179019591162800609032918939917917488144568801684966032073192730101418304344039573885874060035520096509462851114270095987798120232413294078810875741712935519605899179279325289931657628590622737959101041769611481644677492918690648018282394694614971441375621627811151116846422097551785160300616680463276616140989911090660982825169851770303296128025478530214136058281644846447114691596724455395518364473738248315931863192375443851393435597621725713945918929980780670768086699191304117943945014802694078217023177440483604637437275990273750087723139460761897339213310603000422753944714735018501197612274731026066891768840580903029358775706257155835913083701109856701832917235905264696628841630057377239695632534427986753584388905941043808407296654215871088548597278961209485570505077556777541492420244582785513045600689750125049108958321260084496532175076034902307586272873336743622321404569123942963803588299085586130919843871773407003778546913541404760228659414131852897694396539922798705593692814963717113168893474913027537225525071030950873997114809339176567536256389182702781005606084151122736332547350731199791341374562689451007251099114413062273199797464036669251212376916828681667204261597386643981716927470095063330341148201727550683098299177045723567278405340412422416416054460192893749299215826508138886243651715655719087674561161547895144389342145834434675014079361557356502264566718139759803971373461314850081427225975704604878236251224809322560246889638254676503350230855262751451771560500329386164365786971392372338393259081364764620069184787932571468555625246228079844520201209038607634387923028932146619554975891527467183998851934834076244030748839434690062784005476672679567441720496166952674258181440629308655623297361416686866443388707136838717788246229847477814906247610280375645450779175805353662609780648121225266429134604879341839019318942143117323712833640075691355570092142434624766234130617922364280235737571003014211333953017712828996971874372978251605576606150827872282814676402235590495154465482264141829753524759369712209426715442593644093813531306410236628775458459031217772733869457734648863310248430079667360045028154558709716306538695207833740426811695611224033885332116604637467512949490255667607220177386600421883744732413943747946307563543997334666748295499884777984900162260370799005316357516138840496073754715999034115453082658921187912711976579536416003001340691941956132738039189394125456712095210202822305655465566632362884267825711778462695964710625813942891701188499816489360290957971430346043670761958352224202242355902100590695283243821402324720196720541133521823003814554546228971020089733713240606897844223876731199656208782730799269007466922960977590790762979669448662388564747487172267316780208417131433186653578179441348819441859501522977717526393758978707797007689316254951010960016025679462060672944205800343882256729073892488503603009835950403198805648287965739726198881128180240745634624326312833171120578560343163024892223184232248430878357442998802238247280051624262823929161457315858905687518110979435672933188279374680438848153348039056718632577531862780978520461938823484678669421130496926065908624720945282007646027677819840455875637604193886646361234281014508802248004128345603084168526676050639050276683490710405135743150167016525040982693700462993157839335008120719394125016465010466431363335434490481918055689808078195210166231015100554730835864930798913909932491166581215497688801260934448091507408110920227858111674431810750087408775551096273662365229183603139515059888233919830358180944413144008098386939244740060623330870418763737799794214632473664381234608827544193731955392300034496619319987951271139421914195733078995230002132490716243236861248984408759683051736654911587284922641462249851914135726812069175827634809816623888863205579135851691980465917236846788182912141270889362695358498057409649069224362827860554688113173469108344170407634226727167082329503571545494315729371115254987984125709225692791277019542435086594236042743395111769331651336866503115825428176954344354112522683846701732090218325263070913070972971861746177406309769770600369604101341264454575220141729089123674943587285186883115720992564052257501795511264115450381644580794758659773610196608085610017619678556256842280443292907204834952889872118514539233782669474722107408542165427250697877208561614810597239976744380781532654430169533624200482357192615493758774434264683454222531469959100138525268478950922343763503315431550405986086860776556354322232000729170244717811417761349399618431226262843456302482539710496558470485063764454133558310296610425298263480006891931799683163476382743256352967678869286603324835201675626792175024483135214272795398533733199617234385504169191211259268727265566344204748068540082023549457638794228069398808451966322372403645672150851457225740696613290339334867404826608361849256914606042383487658884729500347811000445793252290442179759592319680047978550221491606343244517092887183343550199882741081444787520936461138117139252745570872925439849740611690048343186524500986843354125540942134958990876305448572698705986975704305216971250294707859726357737042280861008428908520795836939851550685829795946096038641953924727737226791072812744237112832763302996225669057579649386495894642322986117173396185703633334202141622829460956218705245708692480504696264911715066100665238630493484144961144859990483896015530786883292916281624302692763090554201568404075824003522197232541187628686467665270630733807984984797053006408166000019294199059121796388417880417716635625032803279141566985029449186175989589236992269226884702692878144964236246287108840964324549133184070691041211163083159188455795423203730597316467472087823404219772709141021740085926811742895410582387886165355756870125655058563036498197314899435391550506211525990011888448101370158993889520092612512211563619093811802949583706170025082074706078259990283379199650085838093771587823653831516530238786163947509419932175090494623300471884100512651381259926688722331339708082780157254062932810241508353358963964081781301832680543987516759478583960399138075819419777301164853918328731858708658831799375411320957679883761824693510927743846330641722869695610998401754235298816716761785190845271325392271400245637646222359856409465016605248554306347434777317058588391230276709638313795460332143197334427438932121247145654212510822947578790031297328549888817747941160460121694951269955678745623726727012531771569490063538681502246959373055240740439001050254646269805199628958673057430199120165832982931861084124365722710210211517029623465995539356446107927862978930056878684408948746737484640887854798760351846601243089874301144874046795041524155093287148358057587022548037240452019557348582623293907030236203895804546795057369290481766850956625177020928300008872108678173371764512347595576546595830097975389064628242330161974929891172149234019587072156365334564727688815286885104191081934547997642541830734253958831801146729038983242636430195846938921742022607592693146245685730662054426453792037431100671120212423605282384234829901184774298994416819425550436660006792649890703004047186048343111877966384288522527195993866172103230454404906298956437157494241664595284621089290815058910028495320467225017956650415310721527049464199159925546859425571974094174774709715617007208773954500380523396257958170984101480081430096227166364359365050107506916019344304421594087454505488207857232940505261636022358904130527708872111780297341543039301815113882314309651477875357924151288719682571784711270395416405841071794844455036911558549964993971508001206072069968109333167587218485056914323329161709441282919989147534671983768402176096949986000828042117117095998187212542055341050128046943411440722836114315439404928004226932495256401357614462481942043031390138499421722153998129889793996533816719213599598314403408708176677488253168246944708188594196261147187483380549618938852744036264775225514928839165579134090413074655270787939146702275190768693063762802060166572361222504045180996035005421410190741930014081981065767271805125765137545211041354942967590944377774705402041773455071072537445359703505936414919731191574950286085492004284946972102136595089311930381032567340449363716136555906823611380737873100448847586095841961887877898117892559361942479389715159088214709510505844971983067592997856843641920193673995576029918491826835908657801623435276343499423638227150461590437462794387435471170474300912518095119589079394376428047402455564088972534043404077276859251108854826535299050759702137078274611309856333897381412469704977645583929826502673947367987524637945665140244790045823994478926331495478493648860950847822478976301894891144619847849165132437392032867967677827431834819531163252806739158842196558609947390794092649309320034403195543365894217280683421936076078816325093474187204549572882507985113158544976316276529930117702975212637992178174851710407548661408337947881131764507433828504418714351218831851413584780199529812878548217668345743251973271069016157167759522450346347037862204126244932736878439283988878226617197395273485458488811246443472205886000078528824640123384459011520572006641863321856039763307635808716766167605449674805760028145214536332753595914359860599558330478995191360634868454316886718102350143691850200837699399036254381395092029225133086832591123742739400140914939664018258072161914778026059703165401778159993472599371910833832824862101344570878313544951088378023516467425509496207358457775794411483542648557804896744579400805354873970121864725527220034219245296427145387444959467615934601018608938659711523681916023120125100476165857381072335278156934091993674532961144806304227885437591194596852519490454356585349626445200526309991564574622654440013576443497585609681475205752829823875048050097391801551319199768137052284653811923080803114206179812760508376095456320978804706859249693765604794239685084048628398924077981722034134750260239708906581819483120091537690751415156230809302521832778864028382106795834742259466182784597513094838306377634447668599016868777926611992993487978921622178283073899258042494119104610312687990963303988353408972572585322075862341322686896508979634122760732427988621755946080814540954854573129614298296503664240416176590222107525539325606015610916719251498326115318239751022308653704047008805549788924711258901346948517245694248596844346859746426756449259217284879772896121380351793973535253352270531482821364643382893786055576089666862135128260275204633486617483432902132601212604947166952113948768657381078839928164052207989080993922106670961630102106215013521282649267082243160416474963471041324940419376404366284762849287375896307398586566076198756984943216280572399601360015443423315150090016702407240844765420705621471087832263841511618625934564492909729987686370190520725301876768521537699431318861165282931727276066653803343087948235594816015733974994208877661176241484483414865749782722339621631228128774711297601215483728514039095877073646999021816164692132794872876291388803868726689046640364768485348629131190597243913996570689489760021445365623638709007224937147939497401185603099921535297876757994135697114891449364995524650284951427600028130931786595669405432128806762361758315811329715211223518389426533189339810689939260824541815955812929423479477344313125334846179633206321767136808776889588083508091587954824572039400674450555947893557943342060921812428524324734005958320644586451843522835095388928402819586885122162782422191909339648282290316163754726449242137955575911046380478407276100675554960209754342786134455942096130889177413018739687918185446943055393116716592964735416326249482893183768075471334527956397958014696877058196731094974277439930594885464717855214902510912983061138813975107960725618054805046370229332404265983483349496303220222565498380385989148550277118106107064876760178366890478407399986598160750137585047670858520300895454545472649703309993617737683302533472897945257484649760918751690745992177483171684460932684260867288610043768717036331979947931129928573948890269721814474466040300104933351046485638174313342665171343348308114784036843267164395796377897356817975178611094523689574068922247364153487062479509099513038237898809720346755144633609960456598529659286004753561657794194444404313671255775011633169742730098500532310908586599060818736982845586113968599445461114379080382656575089864295518424965419414551776424659580172744115887178630609387152477450330948581371277240655452486014322433818309279434603411621114271005531521856593117243003678991311031752327940607404211345782827198903478231237106369937190093042883507405141186903916430057073006318828927109938890151907748753928585178990619180688997522418085357921431162622547459491538520491666982396096042975236130760384876976337824525322502971879669161613481260972800539991611149989541138148787927352727893465443562809214266732146241886133675555956005704306946863157909788466376494185748506244696957223822761280542139772185425666778634202246753227277507695027788594930618848140765583427417089164021690306853957588343070490701052359355160019076166880953439904864963891658267875632692794690941603117609398931630972869948603813341604247950025402777554032287285628111918224154871924227850444745482036348157438866850241603450918028425176169898753336790704950125813623003088765166745904655616221359002389706042405118202770977342441639806025274200681029948493142289080412558509412692313218290919858227172240662659592774521007150647493047638171294435340491642652161539324512360653712940927964487741006473195286182159401646780616849517367520678911304667079607361874034287521755758277416604224813972072708756187803175041325675600554159659160362356490966806946107150677874656282404738478677095753784495420747332826613553574511895319715490082326914655750484838095646422686268394242343419321401985401448083870593337875185772580357075119229455096086651049855977347307160602103208525269681114453919589917380443940193094452141458086954344998578962222135705476408377032655977675681714783576744634882589260284644211447972664980655672803593454996874505906283339099596188288733991110887488197841251473885618731037117947809269959761367904933793341380299489748802091036134822827773898755967247660851128171607400200660233877008395535718841189089470161335173936550295753715852535189124576237620801947193429278000630783113492729228116779275485350624257730240305551468029198675090850895414263471928015042727808637642654771958406527320187934619252919503549413667591808725827136064455211588558142176120653008688711564174524066006519503673004888698544082379545453969579410915493065174336188968416643262467700800873264904980905194435763399004901886271433644571273016925681478187085066741824775286138620538641606462743947799279648005656032337346784673614975734141659617608798714604502243238436808088282569330897283207285296255828078795983938240246700903068471388010332740470030532630567747438502347801857211864147190730740353497162940808670681366088169018108730614912259858378703665562115126429840786126490050308835104728571736658077334585072952685747400339185990138224409478561415651205106920391934722252784730694505031385068834984949801889456355478796738382813440753646915078908657719879959879647585224006320981716917162315546009941185699675207424967775529414852657938866789816107341034110195412131610536858566367635743485428041118632819865983396309462056431055763692915130075796812884421027037031606917744446567484549953857922127008542740435858123051078234353752959112046456792672054478121456641011082461253022450671930713786907537004390189013985262293454485226387551947874012173574576688303507189598226527149965118550537397784462669823735305138448687510610366830001652292385757162703366795292409485362854841514797768420210893790680737063545238179593696286397652878522337976000562661378353397327054079029058601340018772644354967720073376508547517057840524680852281776991825442067772000235147919826351834287819094721049292090574027712927590109788812046195507784373002116095974523603974815644280808364784985469683546560768635881949978680906013388195689229984703481656911974527147735959567431760069445640586910912591566041278347544060567604365847376010804779844288776464669039311941370960538339806775420312753625851139170477492262481168941064591420182001326108242235573203627958512264839046874093730289235115402257122502888661304186378341635380477216589147843787684318191124633270775344514566785988890293806596140056445942694436897305361739095435864083843310172153722505088054086425092905992485863155001708321219078298093137872927162192101347053549159932640095042069391284018788729068813945349065330725409695208643987163709127891258996977428501385887056805162903536302425667036440459612392173397540568310035561193047069934902526100940202847063851833556688633548194945182739141751571619633983833788684437868528971022716532243172626713397876290251147226311194180647586511289450042554861322157495803989862836851315680516294176166554748017208986359855136049156789106746226155701528300450550226865021904227339812583298040391753404899720072991264992720195757053124092943223643750798851703191129419400356486109895916170741577020033616815220158811021911468650145234731910612190628910938171386991224560053475660355390852726917431764497873688395997251250049519223166703285012325521603637379057828656423389200310937277372128191990264650723249698474606868498128618892279015874776559137518277850638235402300216303563257856255007444512536878030102130640093874485159223770913235085417502040143570232282079927552804130955946085585175882531509512331539486757301458314785142895926819251540892793913339056361536760090614166141224072250620434008083411294216651810929809290906381990213993334520333683221910366784223131734635192721613334984975170279692682482918016323278315242096097035585300321031842485096864637545451526985204407329593934409942334449233458638716679511095940764426886551895039230136782044925784193398719573684571242851014958698819894173406263089762083255202763516144229910107752476336635876842636187342257348062682421867226801568286820097875271562093309832610474465204316421655756367105814001361117207696692106264257953441308327477482252107831027374359060847572810346551769220589271071470017824323100078941823747401185905669293201208888070743141531963628290036474089933049268086230466195839311286526429791891346245943363565644658650384499236166661805568064723835094405307014515571888600214128080121822934843994003345084768909649317395657226388335139041300608153710474596851705562708470564469758222856313308458128069000794244907183294119801350961885365454715292737563941027407307403007842985413605416057977330738998471226864255436049909520636791438818384293641243996659543912168607986169439102293785708885753446321603139410707103226384046109704593146344926742081991546748494346862595993144021419755992084423429047230230184862080711700724171782433679271080564908967181881423863217009052367511142448947148452091908254826020045621874898116011822622808133530901126656704485889399919741399773637621249515699455094255534604976268464029991001065250908522669763007173979451882585108281925551651641040579369716663950711302207727787409650681316495640683146920599929341395140942823447167620836191853065225111929411828993591077314502914080380143056884700299048879461938359302760587017913648689202705658675949847040542781322350358805193126938918922784941804892251347121543353209172563418099738351255547229793589379863931409096328221045113458954264276055889329919931467097474259695527591975199213957147296802702385703861536435160729275401154543637772722250936691105275005162821154969336326286005768676795095987642279197917104232067087719894188979687096021303310463413016297328707706614539751911833920814222845629954250054063657177492844162680832271082347629070173035853812219734746275565312980410160588313847091061039378572914088409127369480451411346841073907580961357938142728967890401445399026214716546714430603374046202637663956601979608716641190365502453552850047018147722788506624806611877739509498401644105988772945994416572358092217428117112891905310746655884413174673565581385908534667597257313680443803208378619662882647906975287225900761161518387371176925387983102356852782143899295390031410188810981388598678832936147945889721388281016716235535978008157065931766503740233317716068844370875069410076789876559002725556657486711029821870425057830959964547907524694899113756134302537100139422972370225782777979551115177785239317385284747628247015802147545875453808252930906636822957607357491105161342408795804618812475008508780988477058323990519104570761932120469194144122650803967478519091970261955044159211431638343971232274854233889746072179616515796376233443186339735447682398976171832128489624485195083113930391708948707228590545407426189767400348738595147327899444823055090656088030120940217960150978082722606550505716574188142762469275812051358678908892270271456749840811794410210143821720788744843211311899999017817745872489491372408373989165341234195418581097995312136900141789263259375955096368070794590554109928478693064191205173809427208539190003352470145245007960428557135374545389748931394432518526954497141424871960315752686811374015769026745686702215680878512744074714041055673855109290631457079098562027001561947926065658401131332759749725808770536835089795198818079412715314304624054484597396064558581997337227983846547660242405451671156764583812625729183973767345326380624000103126367992627207792918026043316308772058140172208255525609213164920689801783907207510236867058871129034983087358027652676572220168329276694871878537257473891261873100864548593463587862230095048001538322260297109538033221517820699839563601215409784092001274137320440074355617827222836966793113068164336375112159821493555331377258240617906105980077389646995046992136345399093327765931602925806763042679588498646825552037352686410980388137390733666368622870306502971112283978963503848701938672546889621759688993555606645047829064590137430054333225418308482491898955586124988628487010996586139939208717491573806817373466802140515033786834614225854867972425310734921841533534336841304380900952458819125504090799315363247614836422896084616850037252455634123177408262599491001844426741222823052241866726118302264709318875631546756880832987113066447480464875741253621068682576948210639509583036321322615463357840665188794941297226174329076773957090322465625919987752263952784463390863935752219846461789803509333227898440341300188901027724326246405987207222891588445360952106373212319981258537252149800818928585725962899699133501096412523780139465914875965486018485627965418293400302925108716216245033468608991722974606356054484582899591506260532313475707769866338886077065916517793393886361198410792254679563587903638681372788481427712880822793295406359063044985270471379807781620110609435305032804129932152219499835897830112796042348875225474137471463667783194671607542670472935401554749285711407436536540496329820148001580243888920779233796812165804597828640145493055140257134871857879620445069758426967428998869784310550134739521746231344541901180106840450356515024277990459179545794010202009696021632550730867404907181235670855866096794856450291651624532691549666291549486869974381888840396969254699690927682906466656416444705837023578674142513694913231152922011986724390473987645561885196617498000391824999724489254422341716692436917594136719260554874251564752524163933274957316374807184312602466936701921059937898924544610811416949606176099693267272029451647653351202101015602788837470510463104088006724764341057509025431872272434823027888951130112769573934805968019245871525220083757523399182500199321813805616276492653544067459348166445667743150202270166096238983132255307360033331403881993660727563491528889338883930907473322533295740716166322531934810486794893643348126756257810599393588331867395339706308382048933258622905366989085940874036757581773516627273221798237154995775548883038390936586561265492553277274891610124157147207987337936302614115616615879776959065052894192082088324769382332571865083976314969805502079972628175029632638232287645733711644387853374686025942689912115515670852685990948757296674413464319398234932689069882408177535171738007276332509399717543185422429631122674548992102452964441219844446964334160190060774164261579172720425530214481634784974054042839984042858833135230929272067853881503847274769700394667071237708980457840089745491276408266265346851590906850109907373033500709091170540954592881683048368850117102090207278656135127460237332806752906651512662968698441561757721401164824794160913008147200799649103818626298816651077812547993555194155958995411889962521291346338489411257473138601343051556919595299442243428096351838337771339834289732918010676856296738383767322620575274021650457456546624944135077800735862884414677054669772093610533297829354274961779104106120060896846037380729941265540616715608779346200596242900800838484392648128365449669224218348648476227233688010348659114963765284514871110438822105090256358216326115710717232756843489589536223040514926830650257251878390486833142113776896698460100109564072979669690790393732647147319641663110528478827541778955204086601351388938233116639016980849033812689766013048589997026579911214332687911487290951442527178844481260607746385536579556106649819864011301669667211290564702691760722317763174692315435567166028575622834840833405352450470829412991184001260807662419599912564715994425397012208853911896259022714252164216702805049795168276783076424689614499955928513890647259702070647085812904141915723712820363404630115966978924208230275989181354968406118334319869902553847710983540147234419261963888944471588444671503278593024443190485484775598990837910311319033305468975102579958809276124736606698122546729650110388535894394565210805366096997610315473708657320325698274890899134108062155877506584064611450533006954090172489421759205319704685387664330103300719344754583406095202406475344817845389915918051287528998514421171230053761478855318069993677622120535464490878743069277117612036157440802212534543189087066580210277412826783096112252724661308085075923850287132128934307086717550501517264590382526291779919127580197391055703383559647242148289514797056045851539719859411666475774217625331291272624004310991871872290804734854121750158982289083091005851897865400811220210024818339163305987470731426248587875596597266608516707469436691257490227786957921442143480858185269628113582861544665068556715547975342947685400204638578250760808643239098045754975650263392275781200834721947599731810116903550999393486876231858728238730011112972740552365546849729191787891944641825336777270763287752731242156822237133642891815063604637380291508918698560146250591283551582292433416750394521535285284162858415579988090977475820709453967035559402389989525982302780873368552566881775636837976709650276637120365334641602562857473428542164459469545960536607333870919504388573867401417663212456911912682558357579411722695037045956491375202659463890420652589623376892733095414514589047218565490883853768420108030183387256420193339837469865071921640936770126536415833713397325852568268986139782064083843712857974591187103350046535365094470967022157705242182174059265117797620633102441582674774308254542414920517859026252481010693008165808420754941606449031845441630775094819990475074675023487684938936926722527554319591304554451718354832522091588417761129863424405379467747368266187371534836292828010307156373565471979809281634677428921044799448338517336100837640195347277952086417304033448679305472566313213429406227874777487366526895910351764813369970199990531496360026724341720059716318437790102456252534450717056290116454803617419120943147775958011849813748819923390786068490489125831572924549006676420095616892862972278415154691708391649226373964892285610475309011453058189996993686251628073593540369559037537794590891202002020242049756548330006662808915778629730028990759451486200987687909615172446371918219440758984905605800242676152291464231969075804566860763220029120579172807719252664537234365560038419263583429724477238268597035354684889094286527473029721671111044098615999613987607480589186638260688066195984557421816606009922447721025317796080752653945010142554142425229525342649872205301980588136201575803683315903368256222340782878900941605161104004508921824559159718123145956917622759568784334206545402908055692060423186556207810871381435867422572760317445637794769156848840625040518701741032129971027714114268971703111282636180752568550526761585541951586278766881881822867381709561812420937559761482717192651583839371283403950763556820042037535915580715161711219274670800283160393084621742856606256637580169789516305338982074307845293244111423807799232425355573439044154542482892723531170772858322647632253955079968436489330448189829354768156800398883311031833477227929562144880377781789925811500608444020018486098448710777401721303372051696543223938116295693082832838435141712090736996577253022517670929175650535987828368150496062453676643931640966625702822862781357931863595479916174232914634163705029154546642283800619219775920322751839894969097517798876604464893390735076932378834427818755449847332719584355684404282834936583630023520022391415391773887489973152388552251211993135323378319068830398346604409070702103902319942025591766319760669280592790257521082838783640139487821869809514579554168638437860922144615900303959212025762363850692963742228044220065906224940759916919651162950466146112080390744025791354296419523349900449749812634942543868582215580749155539634293130717471934900814025843376272701642844087295314772031371064273558158201841971355995618323781906468605490697617440359166229424916385501476726662029540919768998926979967201062171200814322411904577197784584138533782648149548720322465516597244949888344134468714128795895880232544566223804691890674518254808938776916856288086956163308765244010915899946488355246470598675819567178872294948456173045388882114170960353139596627401542063309550009253273587708877059290854292426190222498081605421552405954156912166951588236616448042911868100501007705797881262626720666037528370528331575160586136982529812896605036016588547303928107260711776644615959965201498754127514505413160790493123245118759061189575116549335067361033202619692006878422642938660263174262638065964384130457320247829424162895803013289512970498003489739723225924278719399904925132175843309511153869175332849681677467411361895037201869530540608585595138116436128510906068199057848916370296561478886867917243618918891179619184386623539480202005883422654926030208563356269162930127780464089005151346655598321003802736470223900681229653367917631962430187599493706815244178749481423548365160070897670381494893779655034634483899900246949755825508993215725367824243878330245594462769837946050992146196431014345324192980478268563357060789277080003745103336643476536120090417155090300278834933899142300224277291267651936230707247262913386450507444413512564996750822077947485714443817507412229446521596162246695189272444762298790093226574541051477405478461138384544668961671775828585366762420673360828789805632300990838834285692671249990016217444535545978164459910517283759098802360639854262108588458606756487914153528048607407194023377552737938921124496009140225503373835743409395409173706818198283478012455370200399513280111825671454162134203834105625657019155449834783762475652762259824382324499840283704361662468047674592799158230370714371304353867470967607338767628829983560804895449257637090168263392355996448843864425028409208077527243429109828510908243343275936794265371595450821376142845775700163644611243295150951167141798596214562652957122188825398456297269597482568613588269864987636511919041827754629046326255281277646570426701434808031251316036686035933912921807715604077579479522106676772937122002066054798813173271680551943443070101330337792175411221650093846769903661346308120509835739666121161226546345780977994850192345430240770386968562996832028030228294599783865912299824879674959038139199985886964312971004979711671530280156688232407692459238581180429695943973015025314856901550106599094557545882114234493815626725018203974560487868295747348991647130543319120205847062222895717826732672909279640810235052315276943655673775832550062788596278555428795665374108349721044495420346130041036070417425090047592909661298401778665625351382260710620155054988908553368349681203664786149444017433714389123273198040894848756868093203117198098443378508701559902597458530008152544897556074039003137830017544631751415586360505495650093335205061630750054705875691995472246578068892240395080509718175140529374756481228446170391893359230318194887290981579993436260066364678290949614339918298306002901157722524370071073902235309203245667164559214595808691954318718857305720013291873941152895441611624802156811980805646242282132066313722720668940214447534670723449574074180477335737075654913621285659173606280421354831659488313765659906687145988931577358054107262947046321387163952613504292482847949730104710273813825126365768660478373616325853841520350171662226368196279910904368445002848060154829347493522124030269802477943189177719809557960520576892826272004085015106212274007421080917271364359254449787120614596053567546791270435192760560610795293380733452745068133975803542372784177225628682645547961210536279079252594107812359225319445519256289078659282121530359927058335062076268412555149292850368809960528827845596189637917378453344844909612787458004768430600740829523304904804952682257430866265584144714597336723747322726066711527889753347423927606094753212825886157720501663875902306142845351464198463987698455949958228906238483905235976975936371442998456951280390107995686583407475323425743290202302829361701585697084987904675672401202199062271974860955868097124576660010873961104353164285770169855052653581247108884310084846997879965149905882342984745758726248231168281771235068359324362374296696029723552357558895090808404805250262517071495442106315022339318128065158804582574601868656099352071828837367898451592189555678223469896574244018777339642552010272696817948086198520555403470167065782449656056978696287616619565224724415519186818795512295809617744724875565174644349769372610947825435723312648710413929428017674394518392729248230707720841718562767707469259189972919523736570722363913610935932298971843117953731374464314582990134681174304074089130442503662454073782142221122799083595824438712336466096382413805901240261056408608936414798751139122716159192684153421553784338425625194004785056147319899931346038108249821855295498943357584949130784417574346991963919975682470940228828985939644504449449036649232712167553638215134915456334344755330736121410951182885544560839623078859202439168706442949315201431015412947390122262226733381995991291998956584923404875789048869569086241944452307429270691840458696717808846825009079817272081963915910488056713816004912151087829250862591710247021344669194733009780361511963556697554506901175830670431519675945697660329857659450028600198178065347848138666006873679149538126897768867392839006744505061433788764708320664358957414066013250064495998480748361365695972763128018624723290510440477929201867611124007742020405270266628875711578667588147349815305900587276664165770800249047586137682075384981749657797117818580157949599706971484292355703291309286066143397694054823064417031851322550043903804732474190062669413516642139385736835047059761342090985860489600432153458842706681012897844296221633147880284995689830200309113476674357652393599790827062123867379146009940283645621689997671055978456594376963546995791595593801011358797356712835293418474923401722418259587119986460576533589209777731124627856013283414024193547023893154403349151754230514856789671900364664740540971924774539910750355782270906095351449894804864526602720624101989884158867490550785678184796687482036309756889337978695606489803258342544176590869640489089866997658337274492422206341713192926536256262717469737565722774978702442515620902686503062103666490300395833330947442296725753967669485838256337822420649195352548564252127324281767344031231536368993152984301709907272881496759117275439303513186384499768040172196635483539612739580778615667298409131674026617194055748246903742895967569230809040180464854033880152533223912283513882446739426551421541804311163023078660518113581002335840139173525819560843624599463672785297023582025892221516859371577472304325207486001879122124978973190242913915591756756715955466728965027350779572532982944482363033810256341843109568234692040708814254369024623862678613689482002368026702611461037694576932131915468711987389267422928422051410100729604883839159060315022708538457206982324370946243456862708686497564789740996376046995602764704311878551729919643903906681302970373509438458176008208330278746188800583665627481431614122945858367456415287168702061643781470741991826077017718814263785892557747600232982956239546067954411082981963222886505237622225870128791307701182992320297656430102292942731329310393190098299044206237902197988271141673457725680085473725616050061761623941094182230743120849756537028545285946995543811700619289354256347181498571604722658822826243170439454465981202270398584116335491028015782246511867174337781549039524103017461810841679552534601840783616016358537433811066711970013531951437050007731637840107823961451697138214356348047145990152038963691375228899904762245119493883915419684083028886014102508396397263252599676389214380929885913513412098200283213842185947523803907271205353206217133862758331068406238425312475731746308320746117398531752635745086794062704746778475093326922195652338757494897771095662984336600123558290855870164103504168467826860713265159926046656064641433679168587381755702957203913521749072313107386102324155963721739526911648991110679008171079201252095301625429766135017480771475840694646152916131462860293622371771469185967651186289807280274106761718563908699652616710988068081231326253460754826086138057729312429391588849217585072713944794913268036676678947187169733343512745586237071896741186494454633858708489495934483256064011155735991136319878714022380919231814074170028446838808618526810326991523139135722817400884971312707652752528388751120988972074186750445428878546614181724755419012099362616766508972441572126995172599904575100296321505285789022878085381224813374897067717928747503676968762445835643541340895507101604077869352523326918722730478053112038529333740380980217333280027247874423536188599044720227756618749623119379960650706505171336154704799641390487060278882400322950321892689476863764457449378273631874427355483810369957001213318185988225413236665765144467615923583246973738729470107077751286990820979407580070416558776494851204500677211351316666752605114314307797567620602647024589469602579375277471360938495761871630814380775015627258286014743206188687176366589341126106758891190784599129781076560620015686506568614734546446998062566339842274626731223572283732704766331945976976973136267785226926138395690682772359201501193385575050102899528904122576230559461639269616886975121238170136012110234995262204626014338282824428372734502967822949087725408264530172788386636064141740955935297308680178173899007690173019881903740917085015283733320439223463825498756909771816819469288449881213861198727250962652124764138913038511835506165095482760813076639841321003469873320107458196572404864371846874041286312290749810814011199785863751151246362995872754367322214295459739387747020508705632623765610731964580558305134064461459671674993882523745394934863230948200035690733776758777995165371082167005988723624896105470984526218511197736443442409752844817524501856673733058568075164708091682803725350645121556829595182393064344527036194282460209319100302567623884416258321553724006954080495655996268970448364565131248257769579212014590250802250936837422484835428166008176778092421981064881609548930944387709927637170851456105162906005661959437286767076511525152081834565763818498219076729727044413780166138611669877016321370932199990123489328755092146499244085913867943179750557221227701534130936263985418329168460844262562894601110571466351850160203834725351129848566278090933484329467285308173493922492841830235944839908865896531213965659230094939762009246562076161877216624376921171357419587670810643515745326643394647662867431211881440793971603936373481888698046211433007893658316963432208304393440115324351345137031461901617250428224051444288966361178815907491520269693673509893286194576043096308613127451169499736190593714430937028456638016776825079962493714254983254877437577565487313442102785801989594072737463274880422534239058395776576743061497448803490939972634106296481954468717448233838247409924349485179970700743705940616031841957392856467192816150457614326772607745506793114004188278266805164179405172748469523366253739041125309662232514122015110527286963106138778227598648689622740980657379030391097682528813105278566616105046457316756876374030789062004871361433617954695799505842041200377392310664824604147542600800103245011611947724030119416233203116393760550652505359035117208865611171431755313169937274253701580701743375562681765573425099092502801545472137957226845676331737857164489794513740951506212474172283734086421418689343592018794551378245476928426723511828473148792992591595269369407449228322306437295769658786042972440543262962143956783511183609061177161214657668509416858515842026005042330958128751751688862527173894756646563162026473583510766204081738236188903772387245550237000910017920592544305704755331997719416013041349743148556262247417974573401886434236408395951417043016379242688167956666189672307872788238609528250862751143961328424800522712494347344984746338324105310683348237021706472429455390562095525307139451034505831980732335468794392495443713570778877798321908264507447201103526199274641369397184993965720959365158154504190497661808218031833119623476753096735829445935392920562156360764563150364034624859389720837394321107597185145394490153938202949769302350948067830755235002532875931807630440747498629328605857465811444637062413787990974256455185793979930457657490243494044951519139878652758637630148991201807492911130363595900632710797918774267794231936558864284449791337775577515565276528964666886269857776609242942145706868526817002741505132015913438530780701689461126636491826018734457293631888606437470759855762489131741109750204259664018762531508055977745378957914692224466316129772510151014566814672141269860823955722539701312568515961121384426809619005246527122314176362187344244786445049260872966604150912809181643060872729258772930487126279338329229348293619497504360903480392260876826452372705699252172475530806503107512806583371496814753467304057547102194870341156459092903267679642077370173230726633719306622697265472867579449921585055812470072347639384119808035800570434195269937396086970272330059428860102071697127618136122763416388593068206691080738509257358706899384356968075870279588926289822288457712638885838638833514186886603969763809810653653510165375411847530542130852507843096908748785459841121502315991059326963126955043828533857097063484667473339540672273947957881889326869388538214282776451742062684216403999490693550822900393700163774280118226470851277112202646881174240229105084520217979055524012409844254808609663243766131283948305426764687744681331319653038478524045378402390049121325260095526275967741146705840876271490624788245840446927538815545138169672637459019944273983288236212039049021963531021924576254374795521844107312823181267189954746504523843930382769170451152235517138646658116161928652073210670222066925018769179432489837353585610397340686346907008316450218467752078370814450137617307089667870840956809894276109921836345831367906496379431664910627946200759771367062617044755986884243311468198874748310790105706565388688489419087527612614173189205167341457744866112941903532086058205215337112528901630721814744906995592376088148046348981964059321722224828250362767865914654233796239447476213003222708955238689504599142099867379798898702805915893297082295984554282618853044335467020913556156437928158533829546493314142251079135434940988102314515462791253949643798699012520243985079963824826337497667668794230336653349351494632527405915436762744615817726691795395034241858092006696216320933562359649535712953350362848404129536837303051920115763987120636857687002760029174695557798647794090947083455280338093977997265960323614240131881339269671472618780230905436652909858818479935555944886259022357785871415674025833120642287801475978079924450369073822502896084010144531656593320485058827060594036097416107053439245647414457124061875831485796841548240627922880838882812942821101480263557153861832583178133105990386548729829920371642829936486088855299768887119504337006670140864431509546491929382877973421098751632969312434130836670782759802437608991710717340688500419155555419860859325811364962628059757460444037812386869065686612959860951114041546618993019555760106638119509086666944862217653693293383008629969428630404159274372580322363937766792767444914527185890643884739891328090567181665931987007836206236441706811485066432646233497758056747759331821904557533177365618700627009563252879869748377971723005862744143857365949190813461920222900167703891136850684906882702913457301059298412774707254637740171817175260520877729556752654721544377077807796001205292596218276438344185099839704087946759596384941827404995692691287351073887620851046918054929282108724990312947349493473777562824629144103095495647276564637290214500062318204209699998285206751555976992208980545237030889566742607471775554867748253706363559831004250697070787724464303543204407876615691504040130560965907693332518970006432575686894273853273653038174598352001318936920071760429671548638745728455914199623007016865906702269352600451263077854683090551929053440937670130130291139346342780227249302749268626237760205167400112828863243384623490196893581036507821672227750336710131934297487978142248750026396756701666233734266773930689291126902058594961160048507602578646744912953240745799662965935593622871429094252590423818958388881702916235448698635050457095916594150005701661145663378303914531705199137457058084551457296531124898343262252456319116779542525773345221681371812445238868751660558918786433502832647673226421546880321711448593566270702712141908400011677084725070894710523891450975054442115541758015551297847460177821766685215473103076165288895505258228536889854310278747198451225466162898009790919228004863084148936159636297286586600052973037970675869676478907865008093987822786965794477036799447523202495251531544080538986038522168958928772623977870900673786536674399484762109082525605989144045356761671671467396316329735518313223310297791216425549243691703377888890187300680361409270561592168785450233247460507290181895793225604648573111693102104355953854079171940506823704281282621410298034917864220154150677260940691541480010841954447723771450377269493636699734416699546275428039709681559534522684656619762425954827098518856221522260164863701999602068259729967745410794959773398306009752079403676932997174871754275622372641602179121243313822003624448246840404408982711516546600206232127543732549412025686660661060136351751034242163730725799182242855871611733031038174809103888358757608218992885964576539056045995082005039548065068342324319716557154669919575402912309907999168608749052349689373981703026687820130649353386068446133635285282815165488471015457117367263707147293191698366676697432954782388603924002732172739371436505497636551448560244539648185221926821062541518338089725803789430251925949803599226755778014867711377534001439804262838038446764164758838047334298601932471984369086420597600675265237572314942036875379287528669239898234751975753841729310652528377608803782583962214404057599835282583759231664987997850793750776005943586546678685169789225629335863964987864442949433344159614762963518458269567873574580084578949866111796839379846623223439440372669692111914084668854212509579311006402803933131103751590850285692960918877657615323609690036760617648596419295319087484907691227703944520933648812261388059288319196976986370598610426457842070250082185856008296403241841152963531651894595916835925217358152959475652675120888331758308035035196971146905129159654823566237805502168506316741093898382266448994384684647202821543468357013463391721231982274031792940799261160611102117200031400657865573394072914271604669205078954816758765751669737124506790606202093164376400965411539326982987495011300384994533961012613845350681971795788118215788762487365899672652348816278994353741399482849165328568108078618176594582277931603754113354048413875894652261770619148536387613351069654088844569230990267345969349592506612971625764802336087934980271380096101571821503335551349375341995588345083214593492147553779328653152296444837370673815754064998824331571444171446882206213238661487807889910071857616684114441326954185074745278044496025481210330722019138718335115875616412124595712673134664432497403219711795426838072105626613564498763682846666093944740237257399306245888132885763576801391101819178796374474464142770007707786948050597529732503883839992383104821644831437328241728728359587534291902289947600216711007755522251771470967180900551853652802751118500470378981719018400981704278326852636737246290091507343368471265351625494253405760088555663572037100443861055519627111460601991527046715233675918204517093137259039534249423779243618476555292847953452698085648675482720563350123441231137916317728709926042772624262529558680493859677050708760654333810611201106663312685459335253586426757137102994600207710127768398530472477183660118034370381165770451630874907076101619159534333940885836841880295367423788809559167327528933199924701569720071705984940094667838654937557834930373898196473909381629270666538202866668560689926376346603622393495341860135476980799160437507752508668464926804367140243676497914847026024287405668945592140913243561067650297663021189652636146750901341848380142993339454530611410699485877922897095762462128564709482271486466364148479360347307441921128024287376422699188961435379825228906497570806236480157801505194980379758689025344341735732403167681893841485576934813660377246528159969859778634183733179989982435208908711941565937313883765660739857239363367878457342422323001083547002301343330121108420654283620960271617263591118829000314373122389777516970985223192966740702601619774820598182907707671812412747450792303979376890609391517438115161423142863297273622405212189800926441492355519640882563906648551836197353486532992092910980278758894618762448928522939747254502955511596312517881725770395742743375192988512366701940220750330175958781177316166538027706273109402556806276053623784303777172253508552318011476749696856010105652975847205901519480577683188754197497953294847263864214437753172947710215317441233294906712035117280986174343435429788765113654418202983523745598451945446042696015515931213135811425147885650178495313453417215652576229299142803294974459101697849102037366708255045026475543316222769663799771260866051596417230685067848022886161619840481695662389496014264098497934524760218682634573976767501580745068500928420741225940281712293402412880167669609226377091611797057318324964003611496784698598160646276023242621051102527767609548807400900926681878127307567640040140839087369405133126215813674218676518368409109303826487011897455254731182978662188145102295294596912368730048188686590072009471888843421734923136904941897128168835536100618849675331139163219439314046841019505263385657625417718414283241351906736214566463843686641699079576353473388174538907581290499109241078874202666232505020087567937219220632667724534897256554750824837631504957304792093116055723190483827622672635774918374364842445162780000224860452827586472349411495755439188543877139225451511088476774746453052021491336773341562349275152426053815571071262114264372590760649698580767058942552065147586755552099772011839044271469208095341343436256726274347892432364902728554243831391602893497990211079133272825964847160739435032994500673053204182987584689386933560999538813737902564423804047856612153975252546819426767253539743608278413168364979743451795718498094552047744761975198631645698884812052257474326600845161511275072299537144964780036946319387330184862594036892967946810482783463664088079323509991312415585005082493827818733648740550944195748547104074978870002763055301775359970022259988920694237298396287571858918129731764129455477150764197606094107592096925080296367312649259985920574676242556842921828592464259685308148709050079887712284285043340302947371002567790712569619312797324538948824701948900855940795372395048013570569765238868743259752857368612131839983090739381301872310708008614653066281757500451915858546640334148993214400975083034886023030493826245025022365944372642866814954540390010014342786855888338580636883174187764282931164218677514006571449202127220630846031000565353354602030135635950634380573630175120174550480701535546312611930518790189327853179615727366247477308596335929814995014422871020671604221012197853144843004714924174649369708458962988651353541170305929084732693054540225565251006443569046608776928151993126634712172149338891116218284586462987681443114601523096084937502798576055517209218458468774639662120051594849764830580977353155606456870321379741823962552185836720741473538992208001431483063002261695152588734296316663892348674788328804939706434155690558687881789846159285688767138587260033599185775837931999873994534212548063065700209569261532902374251862064677855661745919426324565573689804102510387081243630867049203654463659292474187755672389379684919275531739599481850943523232109011104898682907544662939317933311814565587572187470580722108697046860734640693435887292389609611947012281678774246543174276878772363692392145780661484194128042558706300597369426349356723702129499974508298328892481902380325086289749813363891410102496373534744926805956178399210574695026970261286995051576151247936049869282882355142900944880660867418211136022318080231423521398778452757091162808056311809546343043298357177564519376942126535715520788982517881643247309496651487647325742132093202051452410900439239093908402148464194867135079246900679886172905894465158774583307916888804814279843654116939506349497298832302207601989378513762854924653799551350230967404640669046173025677966220703419224961770127758111384099992127750178406773010163052118501734714646198589542355088615440252283469733516035867227251006066006620626138183040918370460048578020985119237919643436944918999410251822151213325620885817347497743599622869971963099249634831977081786214980954320467897148379952931523161455557045076156254054776913172879760656258079032171968464914532879866562829449003202910322990216324041872314289401724867969190797862488375444673062230567349029048380030863982777107426828402180789885290571165398636839391420314746938041876211937047147171335600675734419927239827675581621797778754571545371125212805132614241134336353537836151947456430943213145893620222315828714554737883476881454477674030265107085873839035299690821505174648961359046012600616884816141915101235358831773802084057595124947270226614928185311368728218737128043782727581550339917771064006507796864530306023525181257160015933058305460835752154789009883918052899093703958546827622702753845453657638436622087826423403816127406130348725998281018120115157754728023364009378048600298555892147833239698316379099123882344244482119028674815221505316227169144184453133718093062217590551779462354733289677387246381554410853613643045058072193982666423721103312589559704243785659630272515196324887782357023418287795094436171047100955475485937531268411669729328708239196744484945924363040686606930232164673285460922042277056049216190596376040210250049814697334919491526812198899524415452588866318458864671305352523369413327941208990508514038506286057078176400257495667011273105366423065275820011832698681279514353529549812702915752264941575456438612730881558762320386738128084768700906564864791855806169563507355214141657003028789584204126018645853188291570059892904256649934490460209699336977732615413300540731855753072170021172823190798574552757472406176960471527235284247142221899005811280553476719537342423604765764575144824439494755791683796518605100340271900598821130463347904636478986104814798554654384984800038565172418178138008786550052663316180959946295319881900910738570301234305352540480846872499916198227081771211946253816795929680440599587498002705415865450941547176768541736794508765075794072857001068438184415603889593646344976836399695563325532528348538144030290968592950841200996329619946230492635759354185353314698088842969283926969172215871235014371917047875875631404711702320592537607030194030530535034466500628326635712553608372159485097736784528590532234371446411228138158522153147377519371379065302532851837368886818103442727942096773337643916909474926347028336230963055200863466511023569744294557632379051605743702562527278052220235642947668592348176514641210459507662510186738417231281951255456291474385587216866903784336790876094760732322263490244755972659973774583776101003387088405549433426022288332045784135555464538398416170029997467681760655322648619347263468454921015370985054007025976381943184424032765556916039392474735548978777681069345161270565929599417253338409728453071132059495022827561232727217628072964883891423750257993090215765874451254580108732025937838101313257837583334477059382650510523238111255670990130956113248074133258805512797023236906910284521005173106230256459759648545551835034743756340847885920941290300107260264142474694138489448776468747554784897236432098653673954771196432169529331016797118567868408362925810629405740207382652050375246157773341926300946860484187504244852609539402398331717153948843262388472680075437494777212800990025888501856396427730772297751571788598714127184616937474922829800701046947637079553792618262060613604193658475568317711978164483097043611313090841816354498755406995172185180424455415723939853629991528011724190019364616288235529136349056679525951185463502098409841399053106655633804933177268220140655023379634928994157913252095346757592034735213567175893744417189372990973233338808248872721712144940708547279450318125448211375672507316623380292484272198033895874121537113435397346092534152029460842914718635860440832886474306285483539747727143225858969469876921085823595799356964213599670896874876190257310444254259782634173378574644222180875890502991911749214996806259365476996416323825087942959831279950400136308579672318941461883498393907905247140088028162263393439182545951914598321911310838147042964585556178187248273608653476669417727978238715210357976876098709397077931668828366790920755786879963637623054479291706074607070501449961881908473593583762490096111618566135401434348528582415484754771787238190911582225158314844380521161602647136389115012230417496797368787422578547527570031199074266580643278587068946312675171308870783250684466788413041379493163179933161472841840662176934197907902962296355647016846241158550426175902637925658215001657003179787929561904070798327222375018598438755904508355089838065387442324134927399347635444174906703515254073550147107421896488196462081831586937738060187398485734464464694142286561543387837086455345102332159548408767467174197002701447467714857870555677606581976557177055706901987114187640171051686516145645252784474306101506257536911385184515984193794642239814912788258568366971382170034306620690695051380793863522670263996901245102409933090435471716391144905570321735995997143623289417439430143752481853296670789312976732653707080034935940600632469942908767856207393416911391440222190798209934903728137790200391602108242903036729800846721088426321387897925167446180510199167427847161731822504550090706068237772657343335312690624863385724038849028488209840950439004849083349003469840135246528648037483939094065992589020409677335981250206284096520666521108842901557154860890111142768552441808744727107954996951787587305619152494443706980323046432379280329706117918578883733910307649329583807562527475379081938566553998401672939662241772318328190096073908791747664918022508271618269015661129139431836168457512843949721964886202846340159128703986795541459987049192786344923464693840158581759592170757529611260778498786512918908834570497404832790630207853712042625265527199294985670752819225316773504423787246370272840749524583968285463022769555019127983048126357038562707307273381969018776045407241985696847150415098804991662133368688843832692976660590833131354565122991440590796163019139468688431070663455889131174174135473647021239932803407085222849574133264847830168882690656279778301280266270668433463922091274146728953784627871733369021009688243777902844220873845642458072482122500269482873871434195671393520139160992170694956347360801436697626963384005280188857539018742787572905806916834462081851078599564019130547268280773261199166924292824152925951638060012484325294730765858979733502336481088779681799069343433624704799367007395934123558640474354293659948707603961291427653150699266878459777729338043002865717671963068304539698864299564441801568547080212681669785035325830691739236478631691209838402258593842695536793500784100541776477077757643072241427373956846454317557194478230020578887493394937416729251900956457664223398233082427840215217576446773994978023141129717379594087716718890874268328109520084505460577388186316118785865648868182770285524727810841867503458769263103685797366088466115109453202916228054018264299603103299556753163745787016606558046883878775667771278865885436695749905954466673526513210519844411157294950958582347543328031660925824720728620262329872756922341212300002612981039699415664758468541321179837969311027191371922968650056508224579768538412487854113203778010797990374032247511850084742894263578348389766936204011940312690926185096351828519771546212893409945242290126990006721086614496661273650797056920845177439188944514091444164769207799735180240456177453586555795561270946322037444990970551647539724266496325861510336738121781377259209491194865342093774832695454482922527383370700823242750673315468649970403978074247915977876010722318523631349037459556329939898038467299928251042914398670011293204365106720844301202418006493034789467804350605593070583902860012905341491766140379766111393834102167631588946694050130092188548015466331062388799808636705982178566750092858268078592088671940130611617131499862238491860192299770121210937873568509314318357457689693219585654822509002316336729421557839419914716598108856011638531509056271711074795091002810337209408750673990070679629016367646268300944227644077898877413381878590205277975741018866835256150274637900515994821166266594414754629131821229820937945735668591430108079632249906522096401515860127502283253212900927031126494551269020016659961162790847906605878716026327082841067501327558122360526550128231205799966634844069807448771911113915330432096061007677634892976113846917614291051405778228309757416890574846243858365235130442283330631884038335303619994694532676958276389621535552628064157898781515141089012293765960153755432039683521215798723955872066368961436783340468144339873125369842510263904626945593058564670115937193914683557186050759327834729735920763699559922702221279004393682965998766028399165563596996062364144004478158027105278445568752789924753465920862940174712177803940706907494791834064225060034357149892808857847081057122586063294146730546372130039405395440876841504759538118000306899974722472167573726401548923064855872803496791726766701451598295805075650460216983677129055913800620341145515929746825730879885793634939865437051105431810193329042672407584774517713683705482057599104518788812159150096905080427877200285379324303109105973658730561896148490660355474175705432530864839545797123507373224852697249597537659641621204404635526816333335698036806527828243908861715863082798092760096994292283255195150540005037769672957416469271479688057441457742195167221293049865017700037057823383863262002957640659983263476280823372049969774663592828989293014108849202172869965364678791687994476368231088003307192952964102709305949004797735373374308812636633044923054207498136562206391859288185169096252725300141715523957576270815786085013190473241266480173981435276985990581871396215509025518171941197063450754689682188431908243013047188122773937419777597667657386102289648953513694117687636340447997334111187799867810591330382941052262313974611987197776872401114550535805409145627910964900604564923749918956864854081937592216468955980926126860284686029499348480390300180138699793870242692418383514935026901667112137211624661658779366006142054591936148187187319696037261150758711714890641509839261833760653336378550411067657466720475994653254289873379527065725192929338442252764144558859621573581796107361355698422260891247808349974358971332776827900997592095990167222724432558278619531094597934776401595606077426647730499151242561696184009844224684534773617231083317612248366646079859413670706890857665778083865584074689998553671010459023428858310363321213035212054567898478926887542737241490729293625311048834032720542984417461907833387128134699137892734375952981305296516735239059703288149388307601647250709669536263371489509429735088095105705943730154783705235759312549164650773035691375013259639601907313333921510880956371913717702054445409424207397562395888363235004027927507512289096438984190417463439250079641967355900613013791186783363418014815011528270496578286327979224478380285365595437753702520292342724568545787980013241116882068736024048058388215887550010952662248580527073757262458241102376828517670939082238137571898070271830093717389497722806414594493499644940781990737051098873880743213467186775874243058055546405265328019718726927944327864168150844190021117881071022522416192736178427560330977066648974696146909435563211476643568010767414176787216732135707943828737814209558383379808304575325139099662214730764716673052499636346756461932549854938598612170746306706214818126559303148318440471705678388008525935077657903025577203912825246076849741844585729036825427386047238795148981657517871651116545654720285032242778083832103170914853620178982433503959568273232218309862645622762274512393925021106050554250587189332586521821719443950755319760356648175091290408104582557815286348380865708867093949158540288033418853678773661093765375973344698887352025439994812053713281964998215617192810577117971335913160100345183615130671101563357284870270478805435886485737273781435003425156350799951348764588220829055860325709182735688465418322179143335007762742546567874245246292062488809832916454557006848520059032700320307865553097616266796300370635559756767757376609548427168881106572221290829290687810390907689020640323299513097120159123859041003877136566077503688794217554939707507306098809987507044864532032175997414200974186972947699213168866406331269919861120214226841046355884411961971385169277339670898949258251138444408951086444597412975050592211415545392459970312000085987332123729337295467351120455807791606105744261827224602253654934102729088903739263451222033056847684781673005856250900486102380568181319102791240009374009206631163458918302415444872197225405033648459160188867375625497296482313512340122220716035170150139152374820478185207238520273172547019032671529453423546600152082264770788396370247399103300309517483946926144860983390456402518417505062890745850535856620839646880947157121068054677376496454385066763292872257536277433065863962320621305369773522210687589004015555080281708882021463449604945729582564381949031876566674239643819098587528686500722518038765178035955476865960156126167267133039878823947622346570509362636083601351263533979351361060331474731567606263623710303611783784591037229008847056166317043540467356404789368151261597519066249961227278514771368027844214094882211674740836001727607326979539242127633877649789191908554996366732965483833077642587855772649263108155526855775807826691466380337417521752707554218144451330102897199360353574406938111492867288994899001942947337193735831729713614265791294133203969894177876650925379242034341897063601634309521089160086973669338921554639328547498071776595732568293747993128059138015106335341135278559274680658750888659533198036004473634848793731535179561453714775002297266054402612459487365178320998049699843166916254382435162744130728306456229559326768133117058887611955360292862389241845096054821804212159342045671441035556701246611974577729006725566504831261769372380260334665642201754879521852048634915036125981576324834422736012772577610468097173081599304557191875837287605606211572623568534245611373137412402554507004408398317364477422998506371119291046674419577637931670328954349272050011565583231175174707825935184540288419583714756252439537658603294079578065154912703492723556772748963071877802572862609875954878652771144868198422824944114078453992057962759744603264203639618731580282149332061967323319677672936352458645986051686359194116378415958232068145780195215508033324530882246776785593317442823141308281702599551829524540830340030666604636238757134060937872439440032963288375997150841362551859849301824991639589892713687550627975167367644045395831753454460856442995859127278949732758843160107748140178072774227558163986497656476896118257006714517864226807376044858277894462138183847919844216443692478998115918763112560371261114388574847958393067225992687136448213402398422353378218719995485185633414085869442882779852717424822977667286886772448460873762329088202003871721137516216072782229249320899077117236130979138921785637232946996215665733380664230159652063311185894715531699864916956394175271281042024350525469078196688682960168864255327058205446966834701081778214800355708607349856073000077279300562463344735966481622910982385455964577017815386640759580757649883193402784642530859566226838646035208775391940050591540910796575366412143376581053286960839921089627845437560012085489627485181512512604866863017839163507801704029759776767023625518814909652095336967850770407915093601109466265234161436107820195385813742995331129091931452449666361977069169737182061248809485872047575557232866438386130475828657924779788554296793658028899375337731863494684252031809621201450828861586525542085981693322563286865443227361581064795560126860490236479555311900450702162797057138278538122001858143006980961277948583260875641975982613778194994166790369130064426226577044948362305708091377838489728383461037066493819848485668376914568735554391386676946632445391477538766432309727974598601815429280242827532679591177706836297441018884352359986310729509098555205661404911041100145184780770122140671601141443760624913173424581459125037420419145734839505079676656496855466978702076197524970028385015453578364006758895831604438281886393451494398649153072247987579858688565653993291050638492287285076046723565551570000104590462821896030749732467822183028409553120940853923767452930429018986987360709498193876530281668334209515953420127340381150086453674101847296149974190619188069172576480198819693765282410320744837989331370386931258466320802745344575263810687496331904157496215960279529871858614531803024862657864126189612340916629030549736398999723602672464176210742898411490962707651512094290869765212820439568180424881207218852233506494343155052863643097424785104324545319680434505922584532155644878885827528338359460313657430641784763905516787851213915170122328275642008960324574758534311773504464002293686690693847174553311389573602520803648533433340513546216752662177344388934873378608884083092196553181463939279606607586639541389811674155853366085477621412262678534156773157908704841230390095242622838312201609407393655455671438896994363420280552346194786841891533432461352241506195488754749594392794956401176389501909072935096769327321053610716922274781144576674809212667611230791950913557176231532264376427233913187282745500904494094287390772370019203367274460069486540480025737244842383237016399026364102378005651869985044729208069916917556805847324957578525674810028506634742200280591282810656052679455479885677630246865299018796123474613221122624995514420298238890884675155844433845758243752486057552834780613106132537780656205100785776229525702763888915820514681804853279764019335290080221774981796414312236394775691633068636402523057503637588480238931074475126203924534762236309334235169138025166199356365358210998894285801441173682158869143947285519787399892205325385573335475851289094634376487946901902615941152636558428992546582631676608675283988229168837252026291916140376198897095273800694003276422231151110587917134894134874038903137918243226162333369764682863768737446025364998911473195145738135718015115202694892683234283755906062207763748491821903148825050152831581771324302853930597953962436959528157052933808454601007571759017550089017856322015547269321537413404363858332809367366250158897461073303164543299974336038994461624267968995828093624906300387927251132673845247960427914244431376879506096994637961584444066126346123816086183426163414795393385594247476638823667275908452044674431477140324551058191612325792645285964807124100127887577557209092289442368852755140288680839881404153773253929585887000857180375492932140949354407645203241869418002078130113988208794444646237035668405082484477287598692210391223317152071640157593964841125179134042345401459049146615896964982564801303727931677946599975962368115173789773744819399706124278362784719060101975767862367979570326207325262969142485603280232342302005603604005137389273320603904336866858034594643655377769916558367967554727380003535617505360392735739020793403998804576260107214117280643705841140771154488197365838618818756104355941990514657782494092459054257093156848859393154104952719530063780540247435501196868199138454548590869905243205867443480757856722611974951877980840870284035725589372437293692746733141477245820245082362719977286154279016131069378079103322337657087228485943877330503931805508314518251477441604733629720074707834718384950578351714614165376371025495929916129725611194046884555532358443855510072231278939029426776662062736607882984007791426623647957044751333403181140868150645980552273656552684828775298055347401844511923507850945481506676503785445155216470081550532036798440796197805721033592511119698610773082396366650151441771517044066494900014673368744330869128040958619035597409797658608686118058455843852439131897255229340797104871988279845590335175639027780043262945391352211018094366746451198490394329092152552044787776046336949896311057691455252314459325368305672086933639279016032057549876473836481460557460104818714593293884193983867568668669644020777621383119352258623860073105280803024014125250216127035338110376021615170326626402273561521669990638748697130376084801164705417772185626896178962483476550961680536659380471942188717211678815036351104211956880335484724903058739712754212436869366444913789615719216971191020272130885560135717070615120075834602569287731267287921931361886606620933519698034715346044752229713305993363726581526633812976541182983020022670581386400707405960690524467975595630875832142982789081108047395302314238915577273034953235957576782165074311717325831280812902516284684201736078362043514157175798030045137319473382674834830998761324646150152053632257440347911692088752181705424481367801679067729976593467508726575114876473505414169748795700343800638025428251263260822148364065565834432532623611086661105795590546251905246531025311245495996114542864643437665580989806253359248541829081824646946162287899313122126062158440872533282363330671297587894499746810372428526989564848597876872706245779841368772859118183898286269730825901816146866733961508681791223149491958459940894671178749811805407026320394426177498405142032708589457768263927797852598689976027060306107557103568553402051235151508397525204013514846403951679151307862343703252653514409740333868834217402437095916459330198907096619737631973017173381065926251265319652666741659836958326654527651376462829215396959353152773818971996539528913764579569251380767537807651175515338512331255765031971365759975699129128791623798770598083588929118769850007363241535734459719426988801011566928367482821528258122286886745218019550973460584492625758364209054971921467593333066689558107296103279157691129494687850158697034542000682250879181099161744689122493226953676661516735043758475299802637163660310743959408311707029421700042554240889933074097357288626670913293294195531296093335965377818521903606960344314178824702224474944393503148184701147312287461335136232562749763024777266458753746247533049278571133512646026479939331578851320944591546660960372996065554779142296666250861696844395933023499859380943630977514401897308953238862608547860779789297196841595139682764026843091132363460759602072149306288336784984954118020527294892415612823246817758350769676185332819123831292429392584103807253293887348806133190831775575871727922292474301496253533960272721868631041943866837370048386300618477166943510212639625373741686451186157946590291807504693633585047069761291906014498757330545401799929045137880792893460172607611447415878868502482300517525780512488579016289327352631764930298142709238404517944548560783489479050087487323588725344102862462959432226139008877568809307848133178163700669489686249981011761108450329337591973457798900881709491478581131133735410297329415354070300026925311630420587424470836839737402361375880882707102243504123905425155811485326126434475860358447010418754667374279729483218289555362083681193825364134519712473869991360647275672737494040951811229979893717949612593182419093122160453236617864857111503268354484771751967459803250648995961232019740923975413226786069531590524717930049541728142747711903409149375620005810446736013183573957484475271257881517610413350517035640235987678128405185970119760795803452223660714504732822599384683053976485327503359554581275831685120649892394506790352066857882313313656953469703055294483553265633516230460772201462597855140053277236018959142395260452433759838116562793876497768144017813158089425297161429651766913853408691362386862128325325076728605904489623004833654432014186760064181433570435404691679347657614023994885041533899394670105831647838887692501782323081328763585269727956103024867494074333875599455125904575694956908005699950725339560156155339614067794225401848696095906997779859311052637312439782668863398394185192721558947237654398131624323029555116107740749289058547810642237580719389913529154642280660587198072006769924763764326490126413069093644256935282996056715468365139907038900348855397674246990389407187927223670620717695711791113863265904428861605388392501652253377962178220342607718650811468850860688200875032419906856318462081624758793372566367773532719028896366933625157609011768231450582001877686421702600110477651731023460497708018220204537879297668750266126357512326616937822110833770330544272982239616628020760792467178950922425953036220654990972981620804234656800330532911005139066654855333039973816283782792171492475706003185816350393315794682875047036024679118913181381741589720281105840372416347244161434258709135033625676473050351554708114904456723428068489938931080806135244678555732033833815899713263362065761106211123039873227322381173340612841116948801500426160066879849936700540018745809998958381176675523516478495603318775322255253348014650713453824226135361909680142517653802535850640943176385689734350531499173174384120232208190220581873330632574982206727735458058090564404603859050552009237416644304340295243395351514661882764641064896723319342587242134799176934759319991241240810812500468339611349871779579752571734098409829435148155107167055920544662222745299510064865850011682545221529590160088589702009729942364099135561665524186159952552104278127490804160665843606641982423855481184264894600109472498415492885951357326993781263440836301715844635713302767386916715407034483277873097420080649036557810576649625787129087077046159225103669257882300155103773891320522615951230064559609856945025380120615849816316021111237644299878461313346065973142048698525708567109187465324621982237970478173589057272817354544729921666474492883873592897959300796389863160863200574200704602301537551995505592328498499515181928961177668536470975695821696131148925310958009258339272406348614738057699676258071496076652652538710579997707877710204830690178328660983038730907880687151879763379968598936668755949483101205175845155971678789159276328233376504521579765094438091154956339473473259534777779103935819726665509028867524136962602890540648130139188649661735923755498989093727419541788821203497040887272953713516101764183486923044656179115992905203379139833007066944167072240575428914475237742620297125489197127114199862059060237787254707806322062332048917463865363717379119561504376699876119182637866479714864379163613263546020919346104198583544374300892293027491207089735486356774677860431572374688375668097963301780285685782602170510967725221058457203261827070356884257204768668959030278423615528747899357721710078799948963924213822429280765379473275102222018396378267974634084533454438201381773326317383403524599940215159096675845698080068622922095895413460403073146390491722147779550364328003313035455445486840773523501371946389845138965012894827377816214896674238242138941411747652525616823881615619081936555203869799154502064628294203579313908095409928786657544837102838750735428296162334720675487394270268922446878702284438889348979266096662484966767599452134422858427552219755543204075622558569838734742608368953269814319800940585179836911626984972296329446027158963346935265491373914962697307968002966728610336847571691991576594946163847803811520772155277709535618909077488075468215512324268714512951148926214818800964341920886662139860492779487297290773046660485554595661840250899882414303131849939503915512334864466731574114759874546710061376658561156038515740373755305559835356030517919214645099556197960077599334386365110908856228576058482694492046298014233893991316125886242106761073352488125298233319000359636018908106419393641962477102592632488888670744011196092295332292641444031713109500776155980682677462317451410588132871899630641037308889246331979142799830805787023073752471338402926077073677851926749504462761218658937065093360370541216029581532721166554735373615585757303665595481115645587712917479371135538096534290418379511906229245163695652750784507134020511269770492729123500049720194025963810377745611978634227307905916283268524933677578368885799910491554136998515158104300213110980262778477647720825113437959140133336717043634204906730104989616488670313740580104805467406890591227682070901252720724145488413099198294043033244088533382806412214876604383809517136081111488667014604057895813625783991748821224371500281839080136509279767429880275037875361903680031977710122879423497871931773357267104231195494123293921035141458898171418886534540303007291276170010784472672830337782621709887302783752694782132869391893680187535080355194523347216169442958949568705457330755714516879255242779219418483756494568074820796020111608327553062163603435079632966017656446170705167130897622704567548548245645267219413803068612535714811790155465302474254266230220683085434157691879116107761252221286788104980332519964420362004045594107295167042324565976132996550136529214355279379298659087789263051705640007616677385434062403458366632771664904393067176917754674969977886201758299081482261738465048376203301499957317357206981709562233983829364344405696492522964919328332999674499741891286654152753310864363597732651387563113993319070368782571268910243155377389712697228611344864496395664189577155069941488712567990189487601971156392171071661593716139969466287021083309079777065982325234281248707967619179485848382645591660615721374798874491218385348264312077237870071110784032077564176905856810865309750336597913547269173414676638452419440801283749466413106145908480191689266266879141729266249283827638392675870408513833710741205438637097093789209143903055529923369725961280079397117709718863259635402885603705629456389058003386510327579390839900155460258597358652620606698758732599507801589202525477092335545685124277414112871766326259061098177005601340484757928780506479545924433145599590712886574276748388169400556559677212170835933678383449198621284628921817680958438194156618832841246423491161743926844269106774367254096799156867792466233408922062329369767328511124180798294450668437796816112627911340576196972260266649195684802909187956741151073160732753721286022499168653187647738626780360981242545060141643885911285163825528434007787474523962133547049636009704045454833920551667704569916516286118065741340745645350889000122141682357136610341206274305948812616164483403443254148164582507764352178727051748438561043813092304778172726550988888179351196611280888699461918096005304203446680870445684521764855821441916642577325663633595318811914756168158616860025884376059836781567541089717085467634969042269535547063334202425050675676085158819094776783082202409410601210460742782990249151931821866628780634233866153860411948849107402191416810698524019338397769716518486715565975286316578907345084036779610401196010114656475829323794242158936473267116355328518425058978140440141337327822235741717509828623244647743148147473207331627331966084875518506045184162133268916451828761091405771484964158039706138271294175039522889432863586028490003040782604120641236265023455179236036822682651722549754105065031234655369002542463956681984304866862052846442918500974436215968572723478343895450027364043375241378671561608059356426086741064308120987815360809953106376082576149254494367076823195687318356698014590559049197293884248206925111999975639199603159620460414804729991752880282412527522989638372964315004608691054230277929207659920367236168061465217745910059236397875463903491909320896358868542357586743834020706536210950109520372958857509077506015738085329795287968213601300936294676118924131634244806471979691368416677370434040020660818332989204638627704515425555380419170380465423860218772020982605944391796428960154863661015066617470032639598236329782836544354952726074168525595858312240650776540372204508577388854451944285920842038457194053697217783926413561011283860445572357246832233420965820763490764768518530682030525308287026255086684279304814275277066570724832955238086978317585109147420310203110893350963241783126310489294823300343680570727099523336990646701980347743703991813534292615575426492855133616026709873302615574911944310160316650088708843992910926434323642976033897562919262613352992314760209415878814407222748199044190644830959794782353577181185822304920824205199289893572648191217699749720868294355277152853344776885621028944055825488528782909374511968131977040934070330263828930842221503972039040317448918670659526689464808092065062911076463707660200013567449403953633094350095037596296368044899377832741936652847511305692960209905490724386621105882050630141781028731591725480406340722892871697165206100574693875138084024531467877498874946424493789192064869856943134505836541042891700029968355782839819491594164415157227350862008531246162100619518819668432937397019761590954764249500276869428330153826887894577260844743208052473073590983516223359729184957939987875069151376606842351026215693334078554203621213667990261310878365658578054766842777683113866132048233056301171724414315174407810783476998625348421761128881429625313490096440512754413412735604760781031764667059552855954781556748609929648740113462911477226838351428985501713287615786559615706156853527040266281053535158084753229938520306351891061769327382186035640977816840911176518245543318919998236690977455059173617733246837178942111988505398780593868811658247386984851285420930031379615956215620707836230845889758414770527006459740637736236866457204048064943338140136769674558521113774036642964612205952740818978332768432033320189273366205902454293791408049829913789532697119526156239010445095000219836972305676893378450934462640334270610520909493366090145847587835717456709190311615020228513758169461619428759160269391945913601287392745721659805658258475452419604395208512739777773520347159105321581994268634814963469490681290178930883873720814403733519191626836654308606360709720371882665672452333437715598012247192973748112405689608917311868246971795241736687202224350927153724110998048119006115928591161817324242768526231319871240502590439313840700174908212341864338857156800030803286041846195177346616636639704200887516303597415044272930199722905257111494203405348029339743655985798803249502823098961230554946570906894227120262672859334894594046851392117057308697321332693253304492722016448152432222858018534430920138011480112231724204650724201658078417766334618778648648168117742809583163616646821838420697071468833041757426849157693391429305543185620121648621007697624568062583483207932148276954878963788455854790441684516359245239103969316354532646774179527493262026701170281630772102926702508297808424098270568154457502311500316673268786816849334196346356986192478683827979691996151906748371718603483709796062581076768667200041209660370683900954060959729657699638343852325952101910942109049051006178072093717602611405164801817474959721831748494997823172630281289027701071721467786090352337791697710300500607287627958315935473467942695955792926386057511563904427277931901205618504705161431351245968964939843832784924697447602388454937540678150698669932034245188150128012811186322608314490166700517804677410160239261091902555494720189991455320430675626068945396876216522240410177768341585683174593176891162773393362997610409087437552744417918303439741907111332047645243019221524507916120941219621341686156580351317705482536150768399244630267762906348810143339410235308661353537213670028185688783595709451028948211533184603984699966276075289113844681462834783207353388680382481499515601451460220727851483238816277169057144394421837575122044218080218359942280882351551141948429480398149106955938553782055460836203593545759104145666817753708095281258744133537195322933331391625954160107341264600696802529205891712074145306754599030628206997029267122358368160569824762846829314659611502777119448782046701389468138070603482238718919125535686099638835284885160504313177262014109416537760424799947368169978188872263642894850148186520465404361133713475639374910350115958471576785228493335243656280684660681536343252111729514146274937634267312195731484862577289703749522089112924544213347887119201268303359975956485304952046267990412189350234320767663095879294038427253463538400064732303737713538789095559987280246264927787554601510913534936436043455665896500249122199613767474094376534444861933155120916821185068568400966809854154667251406412583212171832994529405817366185268643260139543136043019690564017765815612439233323466038787053254306886475761846524268243346165549737726630927710419963764936253219810742765810276094812647204372153940658704288200127836881430019400025239640593094092334247803234222861670803061494346396648674749239710426905840906399164834616351997257744364567283010823511916257201117992985137496212043854295613565254779246850809168047559814429890761918717759979503410924761709440417693591191921956545134076384676663577904438479827343717273065165950983847998482464734982005823871305822246668391998829639557213337845384312623899014729683676815497877747682059874607123003285411812699465891627305789020626068052564857234761667761197604460373145307732732922037649519738260606286127881112174535284213340964778087543426227435115604591213678462617951596422865290237181576376888780613036875252761144586521908266942936614946297814108846184700251693743012074886125950928405762532182880912056301959480620810922719987058170034722744964583503863627608068528508682910974224215773658458353833859085809380194804437922773232520720997333123353972706697054127263418730431970139357375112935785096297654119513864895150819289375487568529874445527630919682726486906908712501676691808191637510935041016437702816257983932314981156258234729726964261634850921943322596874949901396244819002249941650702584048286569667347885300683030956990234898457547559443530564240819871273097572361255526109873051651492682258455551820835625234412849302836328722834336155032797344197459624572288816177034234946934651340257071622623434280542035437043368411248263930975927769213452896620526879329900435759542552604075866279094894860653139764679607086113275207186071634942581445975437749642748143549739272505556781400567123317637058862448657141690719497584569236500653221397226837681561936286283076844536630698583165255891914474327663963584191004235938316187620708784953521387149432290106409163758293088178768783869592293840568971896110826567025436382422349906923768889162620161752126001661676177269554494133643195964641048657539877910567588220607688661177397612541855956354151334392208398170941061311666961906017157878090560236309023556904384034732650432805671595829747740240505844755200711578117151385701950246019851203507373370459453769689936969278499913753510561947896366767782221178921216902239282038481362656341577199576285833715529402211618419395106517426010849782312912020597102842404010983123596766832808967113645125047802668311794655545579180766794679377041199735274973524018265910689613519979789025382579663263193167327085371556279250468372592062248327379141740169892751484798829634927979528542117328352135961571190587228784643667656483996342784453781862618409284010343309135983349972664331536562136132704845993078802416682694421019076852374538387921098292219146925223486847963738585864539303330143938841150274346830242433849145811530866605230131650592875081546037840024936719544471906182416703907211960380046005090191994674631163836935737831366290063001659233421574530117832405284853030022588360188027469809133174269034573316616831885955198828245673665374064544943877598858081224929036334529796157441721952919834264494745658943096021116785648158283206991707955007096082379007908189025799736056491049414082398761391505905676303552174334694036896833368406703261015855633197020093160652396423461864483993134535535910954242771365746436257462070217475176898291798157612958573366491550364139708766293053386649054880920397540087909043649983367416239156712711642613303189787754658571117592122236635414980040234701972425901417104977193808889798198842627142154716053852097586116926350221599112481167752442623787321476953654308880910980444051828440567693067390964718260571455139814021625701789773672234122961540801282042654838124286058245878786687755768904066788110892946579454965597522420201075447230915510865591570117786456670066703224886857773613899996196925490809808232315016762432015495675271133273525856933755382228124518866039462606902889665437266577810092560922733575330193390746628965927012976666216628677887651160292151671086626431658164487674988235854827628121253489341066162942823060356785654473408424430221751225911696419059151168605664339615006822801529088087405044105509057958640606600590494299538162028493230951152421506742803850936836601399251859509625301575077557064913241245598003779537108622142530953423910748456898221871063539119169256772146758453489884193834623542300486718329978058803712895926467677358350362020405654296283832776112196882953813061815646706858953118479936157827588023659365909710752906715616111109220218662104911828208699193734956303902639498597912291903215827196436466986429623915536435537793334896002098191770299508401726329866893565468688465410675773556351647753776821598240930233749954846930014468367452005483345658194037934317711130555423638186999938676538699498084866370326181312455097540634076548471668248203846241716979571316024131829781700132612714340700642091864249267633843130178536024666867120934639322044366016852640464033275429599786841167837959337559415523379623949049126770804366627336761845002277101254899337738647836915529058357007109939058277882141514773903211418037554619530403349692057248608091951648475525317861796076764043132392722272754238962259208571384008683671975795634416860382121331099653377149093311056098699347936020401895434709782454171150128734855165724628718806875839196901908151973720149156254174344320165299490313807081611364636134416954324744328060384986101219388779226989191350103795643959818954386736611474097909516383340910749929707236387074503195042028696424437373489044329100858858995363780438392157562461262704907644789040850751841440531823070801369632055041602835749275648103665909737991788241810095915934362969755214299963967494967896709460436569789595240760482424263244665903699010924241739379952897971944160224871301346872525234585111972578782839445107142716156963565264533546184177007733500252290898816871708700498558454297699540832396013262099845057730234704757688871897407716669183763808865660605685240626813689217040775445050140559101955685040807151164100637366914287234876498403667490933525778300147312701530358933104639832845336903935670087163383759950097119556749976908077717879916295221165596716221266331744673550318799317919033428302690645717560933563592495444924714357579043263592544089237711694213141632110453488044743925192694732845444927019890025135092623927688616675012694908270615639922796326203920569639912923599929795872368873043224136156413648769047083951604216560321571076954808737630865938172694715542955884423919583929563436916961051976498000902088312183119144887402908995216010453697589964006423639528958201331065020671702543679305376994998048639331179344369244545494177153082124795102607497713625835310884267417687138202424960816210987932634535933707606674742577801644462619778352984778507030586232274531624068426042725351395244161810874908592510200115328919420968169466251099031258993605637160429606121695854971703794554277978028078580376741513743053144114027664563534018112861851772483705381659235812517400075483626625883522278627271612506307598021239059081256362983662267588392957213291552507150020209638459857650602367664798182698490186908918798859756703367419654615872252982936717393066616438284308365489114533769751531906842737559249282144064508651106454276063058008595115459032999912026736767774188622094547564345453856930388432112361258018009187242550367411040432241552921600473163437652771234334718755136646936305876088786304448156532669406481458990937282798955434281425801282212056452841275982948865084133697380262820398431056255880376969238244519806302680671888745871897203876098094620190282356828891868206264667115091920891848271846882137055929529576634103578368104321486905674571605235384714064253625476267072333415622178785161645660955342778852387437436835416622810000444334752291495982662510682020776167330943550576888799280409061646402746802815918946493445951489464247655051934297649034062142253298062368185722577659424045363490970848837965147878509787474725758352783679409770648120681369541346651491312829201840986215915890793009156325968574181849258331362899451745126496459799633530048566289891165271227503124028496254863528829247502126916789628408393101160745040175435434979279806027264280028567546774285614397992260094643730574845223497323806526473903602893124942195582052456254097118559509694502456604337452597123824072099150975285854385550283033830573902152493949025799958036050109851430162559160937683781866917045753821420779362753050971136177140488989076616256209912004258976869680466863368493209369657916270324852483275159166395861614733514861639330723092551986500220597598575231056739555513023963423685455282851720431655182666967377615886699754002203348155846702627115805166882438186345150525301065498792274720419509784572072886820144993508336997409052350440923598972213975853872366422505177189166694519648138992600608475563385729227063567934931622440555387020209634609955742936622268151589354776859622849142539544821381079876751244863365652273803202698157381951995195546538674554844811774512834185758312900807197163748298692200721310251726306941621708271307326415069401062678236319870922081295630634890872368928839975281790335322515566645867397240556657910892707279155751364730084157719021123447043168658253055637098577290775246709991735461193771235351077572768934879715868222644530795362868251044686270811974151137409999871729353890001793073635108564169143909847228809307933718214717522760270045866155148277991320608361845455620379093828081462228470741195667788644400528067827311000517086960628214687095720608536635845466912786619583992880273516393220913779662409762062847499287015106590558743398555746642342430006014843178764352089035696566607393867451293432623555412661685669654761967003072066029995935063348800918965138628188626850320116622932826926532079982780092821881171232731530390811373604142177188280315374917919263821193044400317407929040163567451174805652326557644048334557293340471956722502630028556997497045395654164629359458387567082583202841513982696831450148687471883009408445067209125636043155879789419879978597000826917103484697650599758659004904281563925846403212366458781050348466541731385308199508806029753214428781153822302994917127825016999732874983063443866828767950456304619552966858295430103852307337198180476990238322151647814379444241283523306304376656933114256875240683178461935310280595724139125504460267426071870438346127976767574653083925710337897927045811547643421543576841290463742799561043562472909252014552032293801278826191755487487013938086368095372582488378258039534526515674488876648959101514802592098585237717429777831032757008103294045159102741446058390155727878163092007270807916040126607435472902666780850856014824601083570433350283718502743455730067825381354158958541599124977686411935563750453611543406747477319647987782564815025698153740363739880118868219700510396221149239488919966067641984703963812896355726988765532778315837534473804087635146916513534243520663137579607900066232922480836715052808772945356508366953883772525925221371118720291245674988348177376857316700762768408511453366782901425453981614660252190900391738887576817197780652265775304279995790690993296137759235183704571413982533859371520696129335674572120609885429897082247637609016874712741205410711347698979794660359328856952618023339211624534274407508144410845424593500565459306225217771041977847743155459435301828343390749954670180994196522842345728289374073267233874367688553280513417616855271986221669036706761069360869612496168851338018397050618223599837947940565012921084469007678035847497700476435853891330014610471942106059827486189214233757517173025939667574155989371346593879496304231963030807063873838463466118518841783057910800292925464460753150797696442579960648519198407422051955121165174152415365742617180435350931447303706303998800854032976348746061051611625050647530028487784944373780118230293605833852657289658541379284864604258038801372099140685880465507389112150262025437929057436608098796512814837676302724981334061715410878534489694388897557918900431982783609297454233988648763351874737250172986566161695896728292021266110631159781337583912943090127281723188602231313891534403639339245670983064431244380631945675946601544116704457645255406805672734264798703885194188253068800436307827528606835416766731500172574116089914250361981399731260258980508219705679312962176452112750244542756078218038173632960297291542167702022536116346489960251793304018383709008641629178686475660620748175224911968888622715549109282556674122849289909047230287859801399574048938570689201100155113245608578573461367473058856783021584698621247455930721654898577698059819614113456383245628116089495315898429685444837926575805568100717136895716246582717997757180344376047290691469803613544092301052905116061352734152521067641423745808936176271223439773432913228002957516527155325088777171386073986762952543160245185938990855367421312800907904816519364456471508457495972488959660929390553060143916639820607827325686304532756348303105839882410668071711997138515042548257782416509520365723403992583443138315076069686922887149339012031377666752584812824851979738661469141761619368929626470265142368367253148587113114785202233823804414049987874210747555065795536474395407700702817886894146943151575571205721744252086687680725991057546329877598247928209688797132646732055650819776030340929925239014549273871835961317999018979122489527230551954314653106974739638567701542478771318134995447174053869000896582058680675574226815446896578371494440782254161613588312189062195506416437813833613290511967410055059417981241963204552928348770540826036449201377875521424979290227336604348762031544689721664461901969231325801484890260781246860013376317755664782166930952848900522189327852043481122827778925500590567226617524471078879496901848274914174098539266584310354201265289348748304316555980438225721027026232262878728413200984040956690800930865061496105172049415375613381656977798974193568140617920901201343172831950965745507481624698628033202047660330782864740998125323401223324439510232926008473302683240735273557617239222370864573616141176274018736027231822299950726638229672745611565132464700569441709006305166697984961135221323577699147474012245720618387102804038781340533447838321657479725011717109054508482185231370783661802213479881588661492460608807663739786028545579150462749254772911429356648480850583935753415107832098982480375996953303969034448823929207649122116804934874246941850175646548916055469376805043737846968740203266706507152743412110518051344456721765395947789734371277129667953549441782494236544533964771556488681022342523661692169502787096931046456740760462708211529885624014393278540441695360968843198026648770876446816853523600670153148153290829155743895184102830408854270757284453381915801481042184449340264523858832508509684085783375132145167037134479698536486669247008096871810749291778317500265255149634102433950572063976211669080788826365775012139675226853198218973568673139528893750853684510822045743983273580146559301410810055713738519979202073948930992427235812273580557807792705955884895919858636203359598142050588303515365094218552592317519661477583309201233887031976156952395122227915630879247319354201530974124206569617584300279551442278547392270444314327273579455519256988392592548854298068451129712506273353895210654278604723214429514010876558863340928311088871087144699389172610147007398702171254730512041379351731099710166029693468593040355111547496383723215356668016857386078658563732811956525880436592867415576912252277966502045255218747180057863460108041252129167392910568549357107162522300076586705831932589655433953539784118096363880860823026965043838668989223170530682163096153520871339481756228373198906500009837792626171160171902721446228370688349210066768884440137104252253384552277360042561266467443539616204990313007648071656639878791191723574033514550283277343924538724306487803193468855989430814883507797060811089216712835072219817266944667871644899423285760658780144752958047416922850516888159227595283181291360327800513513138543184403838634840811508297837304420893354207691432045140771815897603180127280244650725746671410717565382707304626073949253744888729371368446783669155641430881274713111855848862094190017482239064657553493574892854716989757106533002100294842274086446788997998023195509617712228392192458818202646948018481617955606828802565673017864330443363761735813419722216697794779767718314255959152396255858029947217046726718593259743364985667458354559493052625902629109608873768781815966719459666384753322231255605886745229603125500508186871635394772495373462797552423905759659017723406765214907406798775326968366042209923887111712965595531242238994739026009594421390862002533442196900488226820013579438712578970111020915672838963925339637751466193384016940925256937299837979675839229578650881539100664918441887518219607073659504566391726327926331888765135525319578528828733435437298723898967637388804921964537315625487835147042701742772314900174580217259387645125035720582347207186656549474804143561208754421144085986155504273066074704909550897454498352475358392095872624471523931596974102674582209737473589911440184660626077595962869065309723746751160163423538903003883170038377425807656675442096089774577746570302993900309585984195065716216626223296397821096388203161406213966513145765194695000475511511129548984678826850226879429471714144112904197227435380600874396609779545426263565868120723910994871446977819194545755537149450755253426530027476948002975970753038142743161690613961738636014853458607511948060076343037211405389323035357806746143625324001419467329774075978810549393366815897897861887307642068237527404163058865517066574329602991884090249032923665433921175493466021545120642834910424891845237625122452172761674034042679482152825605610875416607375342382526142539583684793805971426634439677266084927154804748246955820871192807626112300397096562353205265062928754535353175288432727280125813543187428105139678354458338369361383865671812822801264538135786302673604239490441931785949620445496830846669649061462869339401122728895132176909154830237750920784548182327698633843783489419669932165279522596682657563191127663630465731946680089415253815699932888993888261886858102446870680504990978668292679702196808356279561815576977235979651296947252931506976374924352353908597163349840004080081266244766282713350211348591292157608704228994275135802853584453142418923939994928770907077046557522038210928809158966619017093833518418455126048260274227890211727144964548953278496588649707246541773226192295315023367051430007791852508278188051021250646735564105519751116303545937968869280931262345490964241705127522950541686136894879562493679443564832354655555484903439606376565427195153349332093808159382334281224048371045455175568300229099089229715032434591789366821296749236058098541873628591723612712585264377125918101560284625447876117942491643803156677713655270717591844096177906624083008101744091420360208277142773015995390433726736642368436555752153371124813679801123690038085850856292953763159929524056712404397472876021805316987458302563487235702860093847565248491101543341286186736014558159881936124549268867373029315832251047252417531650744842451224592481472915452716325953051749990390556362152595974793336468036726575605114177981748108501923486042550633017043256098454553027157642599198008941093795208790325338766551897563728534760970143036383289981130302245904848151222322705879669771751734868191415015972526181887534991809501711167511341990690602068967140396505435763027812010273450534577063931799635259392061937938428432643011397022361332545886392430592485756312883815438084679546374237073925143477448298699033928803224142594276740214005496729441561392387178122056409123355784790599684159118786347438516409982767281570660492131443520926496992448733682346527644170883681403605701263676191462556762216870035837768970228843835163597031198942444831905923524780609870174790973843105479049802344478341875100521705916456841190735075187261184528488785111881141841647433111585482202840257620180885896846446248567360206363343314032946318750088462926796051232556529999036434211104341770541210269224693569006567460065149506872659660073136699371398917911369595663561158339955778898924292464893630396031002280215956188105002617934025158064847324278699822835862437545612676409261415284416991477499503862352724101775780810543753404151458349940905786607277055557799587560844612034717616125570767374207663411356583835984773857559452840038018998786058328896018409789812087608184558312413582318008261734556701000488250545054535841759564653639328972169986955392544300679931565324606216707729165809827631722593824652462812141526840054250575561105632086346090618631857138142742467578257973814935593449614057059673483131700021073657365693062234631052658311451269823565196756244239317079240972607452935367491362529252596694422588432506359918887171994767997175426026982867472861111143869265920834155918237872743029171924697097024793737176900044479147745624244428262775649234294764945165924446861838850191854162428004418007557842069468858432952919593561926053243835631802870745202655474843320503557829795450118033809251830734478822646244274601918333217369924605527378099280453839433255079377697681332508381827721486472290681230316086953807036239254589027959484338883902909106376795527169346645098774881344814886124133034427418216339132821126972945687954639187039921096174774186550428278409483420414762365744703350516309412164885666654259671828838897187144436168803164543623676285385598106966313324631143552433620955962331638208883968254547069565888421044502142553830874972748206912223917744303413565945512403699315496345364203382267756662132011296657386525099033575175321664738641306000895480188370026954230636481524301695064049633335692128409304671662527480148695798276896676010545385975552834851327343372157505356817699600226773796108224628198091145912927506786489467950398656273371082211569960645712230748903186991680030123071699311523543623768182449012581401296732722123000532344891902826233117243159031275410664443008774041044778049570038000978501502786969204412283601835015951093362495437143317779423305004985488303977312960257856124728620924321818566182946865158092945660147392375434222751626508544370018153919502877662701369578816868888798966672391638837199904997621299434295602641810671640490197770374145288678794847326551740653807450898534937123858424278050667022373835312610666196999359443906868183915031454125574111563131302726886299044565521454149861117982994910424706457851086379714970791796086211335175740099327517986437714110084018465436213077768067828906034143655696760875463045770968372017579458155863564034194970963574469534025746847026765310103010077497169184698106132761147608860237950283949302281927597942086721654419070257342477972887382001835799858957825395842399507381117905776444646650531415817164176359345790119923426143950774291744113879077437788119037227077818427236045198929137627183258013397636978077564413805336266635652941445730874282182901396207348562825679294201703988521543052317268990100929688289790881434977024108362428197051921902336326837235801617968687252068479525014225494757308637340595034417531081078855769998106010373236745287467472705763454011959477437608034739003995115632429098641725894271339702105281149031112752464424420565445909922285481773947545994888290816609003163971398530815842619084487442625182207775747520447252973417718491536231977149060492558635518888581987830122607915954116258693156619483159330616999444526978236988600098912894151740634109427017020028382749647394820786514778695214685870583794040984059295502707827456004640677134591847968112032694606188901978221893038661330937704322803680428943803570740110257324498621831040468467962778893780929916889111592396205868513136596771865819005651672506758166110918369844579358693617849516569977334520466900331089544806329316550030782257395311291481010440191899006727635267405972169464341913606368127822122078279983880808465031179778055374874541911466220177660070717274748481388982336392896722293353397328689298798516996915211862204986829852435748909233115177556083746692664079190624739691165793075708294212861858345378934388875880086313598983569408526842107084734194206770343671349828048483821202649427554432373581617565929280777115194824672494998236708871679851497578415605991805295214707631801679508947757436046966359348542487182195459138527510760811372248935466799407622028253919534318634039823811104790881297426413247474470190567552177846411504144868343249309552760390492174545374811633867076959833184613331422691840533527608447828143182890154759473632888151389668146420317333304656128691967681665706958519978591106231636913662528816143564361007017269955502991491791997947898277385707151794110420131818457502788708153309059509141779350776670993651983721950000716547091011875565968655885741931069724665540224524404526521316917416567757603859447392224521621945475643970772557061579685286096736571438396627427031170439620178401739619471495022458645614827973038286286546632065914448499728514390423815532006065229063509859852486280480132930218444421667058335973700047751680795521373060679661460343776653270841186640512258338274180392396737190254966967369352433132405307729258729970463395797941805548225723488871114721698454843310944732098025591006347233754534279087296144232141920815118222595566458257132161064035423716563468822099750038175331496062695956796973778172309634254956120839337524997511490982426861584479750962801437654420709485910821468390374904813132521119116813201383068326469131140540713872435506100867209451357845051817547145050490978264017835852455186794402527024820916587962340247624800609073192746768425472623628207345570021554612143444738508409441899420381546852303298523084507413085652995451863833911830826543923071479068563634089080821298428989143108195423662918247727624715470622423713329695246524323394105514952289149953664180771709083353395676829487011304904112471886301576795213543402012315943191188238327874228425668256727386913327667521146761195800495126372484893747889908785308859807216024965856220466756716896333733077568605665733597193456500587393025243091071273384983482477075679783295976345217525809290398184604550535448988385799571376180119817040248862318836016563026175845940782621049392800725868573983889776467089935861635818868144748908525724965883492139505456241892407473212324485342991261257246496107631151684764480358142549922054131299592526714090716897240821162262840856107439524970041609901259070943599023051517777018669557133757265486194064211418436917859937768470430505560100640839505337389250880060076432559429918205997255367014404310080827329741841753477763687862782225997575710434424819797284438880072703146456397808757919644268798288048215469288542815648730423550698253353608008478379132114312103649222339767937531543965068925120716573426642067585539180611191457348669568063781162697704632643730632679881219076196858651246536552767119115342407148835116248531695987961404731234594135545973869040858915702765794399721445549200085557222379914636303239001675540757900265169396430408641610118029703336156986851455686058998193613673715920017932260154285017048423562901275467459343728768778214181035461180136216246899626146711202224666143033366589347988073504954730791967654938833480318414221734811800366450959501816916963844278984729766982767541274653068324323913487009721728580636851425243920381454302266819204937434966667301251319797093357725326270076576284081800901081690427928058737034222770612208634157944677323175671441546869273331572569853008375196025712984980602607101015870541872843510485949452155588170416334282028701564456429559107044413445248589265059915163413359549681134354694858369280753662142047938711553338954571491392886102834000018706152697820925678731410033454864717463421548102227504145000454835308428226726896493512793737250068352491438232878557161178178144078794946446797426141546529254903177554223939211001521738253827402251929931790011735485965764422255203130025982959395187185359669011379033638786975937549889572315450687297103076194259173666482670817822143168717322118164117573243761097052372283936690265865061170978122303474834010427034028721382101587868058480512461911469783940485931377326267450425456324784892701544617136019226834825617131755658201774831485191253898840084935035780659132159587871539339621631775150040273997219490739407721270837347031991787118564517672118318903228878915263913750225066986061715947320686358351528235029514455591552019877897560655177105694933477622353821743910110622371310663854587926264997052639474596151151068872752521652026047327632204731575121078702020416591558618557338186919662332045655189752071684093417120134602032226216289091464232667311958093383515807521153949882979739755393506756086988013797499513804981919347053036747886347305160530768564410793641207732271964743338817223838128466824792805857503232551364902318550872977110230696548322656069313848150758621864541616832218016718023236517757160601929348114660196567389571985854421103785915527592351622601988011118785637522010322469553846891668021094843958892359901587570643574843310998734993657833286197665576841808789318648835546615725814102172924498524287660276466874795100645384243382198531674503714650610506464481076536540789390562359172399342315562859735589196615832049160623881457250821732427412341288976631599829780782779049377952964369371306777250491268665838214216715405077273644445412585216642995588574330500970138228045491049248174533817250130212909954750284181912967654584476872688337910855943859789749922439300143787656242252174641910153417592211652417085116272827956781358973342901811508925962138644165479561822669983662807261359637156584578183005330845434323328026118412933031253045223888013289069157509206162801480611576416438936604494088812552876447565744037041491221367431184547965440968234886797801035538330041394519608828407160866111414881827711079367209787844271009759551775972991806367796793916306649450032107839323536271579292583240800265404297638568377982653352990426092838964332521893247419188766778519714236993752474367765042626735923738373738997198137788538159363074294147548521605465195535316398845314421621416891721632168075710933929675514783255395928927482089058419617061937741536188202685028148600205962299995415086730502240205295270692003803795663090141947244607966633508138365910822158487517300731027932026878022764058363801570180770147889031208833553447552762093533314286214944367038997097188222078809195578295381135875457575581776386394064273735201465413695676033804646443631844511048751823073934018379056906960381181332278486284286941739716175468113203574790660482226332203618826792168364361021216106966985467529082558968736804723817749944098737664772155244976987626683422278809118334562739271859130447585455527009572848914949200700001722684319970032056705644536743618945798644842672347195520457661330986723391781407023957411963523805980107111189978804083512687803119110427233957867932917063333095390807294786654210274210694120629874352503134470378007614337097282907883751128671839104319454362558357173281636951209005805744650365671275436425814082047754779570037013038848096720730506635081738508123737422117475265139334611324254848193880857401560590476647398832061170701854162278530337871757080533556021048150601509163192999509836286764697568968395170591874258682895035746431134735982732617613569662275042412220110882958302866177632296663080964114161832050479480029168008349897136930812137555771190645214844182098035797304124587682538381636819608771748020734034972817754143991790906515589786066005961714215269580728687599523779709499445252307001635262202304389548894394546545985335941736688116544515658990670061801541468492527048663173854631167421272561696280468657795021540757763400566052879318741052878447246901271062533292238309604103252337070447761730418483454441990773934812779198994011841051162913432245084193825630516991248339801117204774086313039444725522341078099443953972659987406869723175057652577093654373544904075166035510377437004616719383413173762764371377746801870799088688165384468936833323325145892142132271100017966007829519735328746465451758723075097126985630477297996615454611145640386297778326045291173141995864718913646278488734192052897233767139066909102946143976746415361019096260696130122611295604412471575837584757527922664181506890245894543331434435682716790177118053910851507965090998785024327115280997515956408841991235125492208481151272779459073281559843192809533435731031249864030401137705120406798498779456301546716194576524395575966151274788711252700003194668579267518714454395250053947049067081407338011135864477112092723963280465429326592843344962907979986072505959668972810396711336703741641871789353714619519829623198854875261562790525560221004127443651274574403929068732308041051057323653513784768555967708915501067851594698485682204404149239789965070190207953719694966413840300528423840756119531750384062034344189051353162309815201194664688727012385993781877793651202770887636397571023220191167839981552198321031367312920408488771965074651155131429035361772062716678277986677366225634474885482738275302233154559002314187421267860442895464102557268481094772690857252007633197034822690817880840650182156944874350747946886402808210880268378173347866265607281702715365336874185465375715420998934037937042686328569051762442710666917377550444715154452104571950164294163704504802921431600168621174144338670722651438882871346672335040245810145044736092382837751070130801475543271203222400272578822962277902814964622259829889111308587741346238638948593050175278798771928221256416626612934892757831612990276500079212948524252536527451402143102872849348299461939077707449050250684019361396646776843608919883066233310542997716744205171791277278671424327077685224921559538137983260188287122241512247269521339557023229211689549030556463392006649727115061082287366432415774461210608342418427456021343674548721687245057267024042055536961085524105688774381489890150519420334672084209098824057488012113065362351432770196420338925415916324749666423593415422273223103731217317633577935227622013293580926453460188365372310202635738943640536883616894637405284841764600190271421047498700760816663719757323398240414618876010004506601059289345511279430630484876027881233999507242010774712529335233316102124132606904581578307419982606682079081527277308941303785748831734794156241504175954589513192550652338065306508582373873645799890863084996106852686333000586365340188002436464176916945020593094968048955956859433444002908211760186390167063452181462935175740790509363820868145078624226684990680048019823451454653116614621213562689270182703822853020003460438645048200497489856439115468776561333148399276245702140813675139498705584142668808209728837750930262499117523544604239863705689048592248813444960284071958597815383771680405139817820673443382373859525864603597762160593316335910062805894073041075993112201281877611489126284489338926625849166766969712384097184113409005960246956840533888573446567980756267445619113470452607791207702324362505312947421842437465385102805392713959969635350666458035617002840177544474582700520171918722972758405436190713358161884517683395426502736021420729805494917747899472984094802415782184095956320476013644357427156830025742615896098616494448567282826123750288126461695255443537712355881385210164413829962410405439943603436846304666000621855145625835224703426379570678835193496622465814684393420296531753533614014150843032376139579726090246587790527118829069374361150064332071018493850206788709758682245767426534052063811566265602775611948098923438821224683566011425708025372223485259364360725413318339883872166840796362275170467595289269038425004200691496172557075074272107202387419541557865275522377102840569165062883476065449649116295012068918993496757069972065345123150306004100834630026338742468857164566536539907416674102721105028378413620900659505702788710405562558795543850278509254613195237717348351659245638530266731019079513376660545546235200008011673087170460680040764450060488001597597067501539284747383960360561854506980327612764654911256960338569689812997932890108021658389645773793004162810493877024776583473212826583232650201123924511075832076364083333866508444613809550320548950671881857726432580528656960261458185495072655045394690324092050232961599060269022173120489816031893534866779639030444152142995384090505463408990344156808278042200724075682090024316383701240533057174701180013007297072495516347369013387577233077604000783050714025459095869104137639935112089963932988136651775543042094917846698614440715419473535241034845160289936830806534999885030182681057882296977697329517766767601084378012466489312360003466768006531160403641199866076119669321219324137283372275803936182519733672988031459293250207506152691763248084390800897476489979712910752706821219119775442700676599344100032869561376357964901285110849532610812631345461420743043863212971487550400964512018615380727996538731020507114133517640132639930872482282741780027885262675056092199893652756454072766443458093709366657182754593105749390402735267601828800796426113126815894987213230807990539030893883389684047969902587385812902014171690655089338932112521635677572363198859032365326110509689750451447827104637221339810173129650832097070442575389585632353537875101619090659686513250096693882110883431861752063875405827450095348101469495902035888751371204928926674631319662357586763042869766974748126641140807651609637380962876547650211815615859478770329080776329965168558856302001083706448828909533683906598449324636020881546869105343204068182832773685684659006842939805080815396751736693684426756330223288003198735882381890448302320446585815484544510645361083514570692558345170298482384654630705757079222510381051361263076775515480192075113212481469327367004952552890479780481467037159946998993743360793267013745269747948836886276072342816152345110626630327404917863581007995716143207472588304628357873092880473300631620477714369496724801490100614055984633932937424830817578250082665938458003845391013001559333138026652891964057323070852504653753257014257212252450044774398625297008476913384084458422268849881376959730232427339838705659351561472065761942326324818464028443106384284095546626763813628954313572546796543663206034780815279094253354135824636261562036987723792380679470423494141839006665956570832667059375616419097062220862017889291515098376545765951769788551107715193557683704813408629175657297275007108881440609706748481394453728001075864988096917985863620833148914855473585189304468453650729772867144001422604852972481006231648569933655597246097332485081965757120606220013446427019283806717429629596292920631081600378557539348195609204156803466002797758186356282813713686453179261952165189952191674146040391059162335123530776721900090458957586005885947596547316759001090164695517406436558910348031802883481112880310250027377919454448091909689707359861241466249327479875758878180101254869602202773978778350495498818200778181524971431363881745238790840812077173674304793661438388099408153015020679846265908392634104366944380865857990284731408293687382090238289364440249944719709291671829273617677892785886658590436116988692125341523415566039390233746878595412710662799074979262605133978761977529506396768231840032247329836095539114174728619639569453594663442137048955846282758833527183883943243657990510857530850462972720012826089079001705648913969301187767035359499539473544191610656885715241688280030467328308035527745199635540698022908199885153598880075758235422350058443764690584948021254430280269670451206745585834656184990135286016124117952472604279286874868906359227370475527853105403254200430943518430476305483314444554125058440493258675002390643971835730280600541675209208632275827214465298897043438484772634230404284963545043563501443215913614925020467627090231047218803308580919221964365108769754460778348413557213024296912775091916348369135722375690796624689177877547516686699738954136690539552737139250479262850982424745697692729140892281082766360189904724136405520593159738555489757220902469463166809286748262028630878587668323578417942437875161208979165952615814573341133064274893457122548904159866583401357396885571798750523243559105434923780051685444926870460132252873364508087382770887237758091649406349157099268396269801528141024187869262074678762846331263022634095058591618454819873888301946441639740728769049565563442308221241408807222523409318134187095428546763780765945715036100957404952084374078231983802096173638404074801220282570625638802372061602554852681025982453429928098644160616020010289791871832230006831495856747244294479543613457337251757496025072421199941627068222546709015503022998643280038538187234736132173833622172064395787713945964218949419922622663087671905275679235331387436944256315017094031358082739644522034328848188074383113272342064576789048140194054275670593623292334237327497168795367122816746133246567258063908338408087268100706987380513329646152196204549690345324305366718796973261290302418003209684282318748028806230501603556971557653676908426220100514505167571476847647219645751660755272886712591969387221489848525168240660698025772580150561418235255047524693009316298322099748497153856451772478266900746957413345208766330282858598474465394982165200674533761796400948333784752401821463880746299127065692862849070521838285035492367319191963983042545251860145053753686159213253336611757412097085446259276863815342349288552473758490647473405084744220503081615469549452383768076082987781771860180840471582286832218406441327246646804491564750237859080111442969343232802197087853527352098262257774205212087096633584262882341635341731046768024487879119819723674346559887250184486853592885325033742028730299591746306492172895778530535682944543771960216164782193677405798510624597704188219816003063997630568129661189019065052806922825896458121781859038633468458754136831832935430077201139871650164433519521770535268667082999318504788049787066096410783915570590434370558176673743742840999408245242279514117573291475863469667273562718036534345559433897923252284542958168508037512113501607833814491044535105919374234703434475340150069449623089578617675022168919750111109848745703261093750269871080042131423707616948756005376216056327637569087401414230206539052167664246932203799100063457835197502210011051336562074309954739013152873349203475561701454118541818122694499261287269728345617477079241636770178848247275521600402481979290777992554928138171607540775918015137837304078350227593020575179454148035017850603259756154244245615977828045714357657669180253483159837527577373303904536882468437863135841130472855830279982852311502342605049970111489786771738064105940460545510578660171687871296603287336703805214252835674793543204945405461208803724074347888264359098557944839501323512824967002419227879829873439076563110398945103663001316197909067488389390044053202825062255948594732723925920728690091658246683369048502137104777329518170810444761827414091335511916733348064585946203514960498563559626957041766494255241323571596719313605806316524833136962483687613943644458935780089170181123578337276327320985497835325137528892385974541829728733164935183528268616610548222445241218838227099792979921592477594365382697972612498954831152377850596830508309873545675760603297148307652136631265975678241017223136472822539196760199172702706467083565763325441298896294922024378050039669974607338185768365600133284481480220255614622266353992043173495026785481920978660808305682775290754704507213154950804154352350151499958661131735048952496337177065116494371669586860660385589060668765231973005687849803735062876323668841615044916911563398183306023567774736322333697735103246424778340927582237760924867741465821577658522497856048860271353147702967085992336285073801626853544245652132368794121932289982198229267387713845524617673789370053776727566022993299995329190860207974042560362453026116690235813257324625918670072389842998303313803112352453715724399352939011979030122830071143831853827688530539382642288257436621908219655074214215356070081859663258133055730486266996688468777566626523189546884046453120777260365461564404310116628264403018456863514654808612156266661713869859574339208840076217743823795187915403642890067819368607613488310779339742950378600709761573575722724130855940043660016813269753370883826162955497488942329859770042486735401198990065822139418884531308712417885620972687522416625201517446727769843281259207677594328270826264458855638685033492737479269937644124784230543068000556012716759539863705933894187171194409094434702021471059562827778834296462205535878291521526768681190455679026569048138906762949802724831620330161423018693764977509426745393816498392320740293526118368413571203797748720494650267581676409250464205571130846005312611640704806959515229446182097505965809205899015832318577412539756319141330598626238256635153461415954936250958217886202376543184700253384706322697043869522667366840239139485205474989819977721620492360058708335526802991553281527278430485246479678834569729868390733656800050352473673483853035434198474455127899663233864897795976471403072474861009282035370445118028965016238408599723757686329301870354222104918082751135196140341156140907025487688767312935578795984003375745832250159016254109313046237308867909822745460863402359323101743680458536496315287012602240556856697573363130433061824449913730758054427675399373651301910055529118699297471090724018435619415828935571767160920041587087691845415250074429937617704914513607454100446267523812076523355219301351780019017773728053193641278812728181331188914002738316481326515429035265597398975776324632275396553120018871117569884294822807079146571627132037280537893031925937231308834686782299818486085101799895801723987058223645017731037899259082060086362766556637727624966905016430997384020256347548959511465095369782051013798440735980200078356307733847900704856484778561932997932896227124371738168582143724360825277249653877916299215445962166272064599403072046123421313594258226323546086864435353498221961941217207239283416043868850581106132678706044869050087994702156216655533745566185730795120746334158991508514257538704981436562398567535845881900283708829638532532647312032761722780274042306049546979107485224042495380841393905285804040629123854319330580451517973963433294787034505072493319362896984152957259555611398514536277753836797280450839173358312903899924385891844080014649753841276998933397636723468527664126304270574990735879150271710773926408393317932104600315711067825703013878311266850767861727069730219921653442441425797364848194699942482594756321402247452646434072965133514912953812126341030768509243324539732302282241904513835384005287150311026303723529467359053043989259192349722210055658598249379238762828965646587939884498446296043537119997504037463072859902850810972572864003241745500997803421995434028089468479545870616825167458540687903603685152567625859873798669248081435147997290164646153386203828793487156548846010756918014531081999772116158287620554119177986252686156326517393781615555251274837773032332408337016548925719488744774784571560634050061719809437712118874187944895664485129670993970610247954016833970075347275006508171880004978096504805296766805656153500410993907918344017610323079884902136472886076698468989710246945920853597095454857527939632481439018007961728859062858559884993640814940916123775174640545557377936111689342965698712264686260738024081872525016577157921073735758951313137484669564061172510256135208380940513834693231780185589112111486135314891626095905083113467608803669811928999252906965491785315439394956846509162190538249219761640368962249296450393268151468172724906734346424350395629140576903358531236763888692043133648580772459886243427472845692187940045639134932957566949627819104231478701025102859908789456891505977208480488328237816459357259005086262026892133023314648632943843789421653979825377575823890109941252995146244284223817161103323207250251123339276675801415165463158869065916672083446294147909583095915495614590409276260012191168912192603285742072111112175188043840366364783275593222353948444682388458816335990990022993865229665418639838749010395398142122691027498017285712352964002758495979513912588766641639036389484577562321749672692988334182358080862333563627495729301658679629721085617892274325763757713800172232228014022397042313996084837218864246080596410576250995161846526604240050600825342558652371483175076059196925449455999060512060267935892580404289608881691899310618276196467239657232371853753637569990441635805076110105007800959607224341494478435481808190338299867312657366215017472174633857779813540298322015381140060397203157504640403896669707543769089071365553100483109804869513572211131398288460911476993396028382700435445840974431437830008761253081069155844765870640250916505773666786969045938547784579596668391218092467116910491987755035213618431776328872991384751729763405608355335075769111972857739520809809627781606492025122845209108713384310244675471032952096187597938231344499713396278214652356883390649532539578724946834381209384562670773296932795559955645019404465677698908072776330964948909520528951421166810156695909747448815848977169751892372509336621649693038927347122531991040883099044033963033098411921534534088057257066496168322611344853403567716800840896365396600680437301170377603076204284415998038867126241047480493862778220921717506862706161436643608218095892694078778524364009277621676962186206587942374759171973629371395551952077187690525021674829032399662940909339347796386772301933531991238341614556496161212787925338536805755028520099625833400754941032455387722172680681000243447794882417890942362386952556098297264673457164945521186104426665892543660399430962409708006786581196613422501433121160636354773896849249104434623961935282565396090088658536407711150861613717651133074038380393201927228559096605746041890377911471340982436714352217422916762496604815865440528428641644371010976890264293277268161693507812054656983609894150366289297297663318243417564378590444577094125480380962669963313390907407994113001017312997584229688801339723114521948215125717695501766371005506132343781967047872638933483395985288684486909046343363081075984509696267666467276391560966632478279815451229935394372720898413649792438615861629785494313759951266084970810648935271508285363456174445098392062472046207464995141118661105945625146793427569256295581478523297474205513586643475929796931800771904976930279296440915600885334472963376134785154635164102495509307656832883620771404374561204972606671052276888281916102007732715125299233659088264300758538856772071144982012955935462620678841046988224517227316456759472545443541087816481329289698762622652181205454104452527230794757530758314105745900830196548884310345596557340660763538910050621497440560499680970800195313703029402859037043913241578805156518433705661780452724973285149769637170235641170339189703352376411349425055520766862175602345194637321812097923066229700254233113443186197501518937836741002964284508279063502682232898348679874960884867391094559383869093733179093668167043951072446640021943424096951577726362321138673859628688186373059025819676256581998624264636812072408491970683472480960296122048961371858684198998601868043141196408799011938594946708715162346466524770417820203792587686371755951127166820383280805687125257415259439805275692951420351424120867337023596002313501226683291088615994731497154520227057737954314689750741601859063955129959950876000654592747641809936953912009877067297652271546339249516273164713446366946535261425454525321499250885096523550160034369264687827247707032370873550662698791143830552602340620860289206114677378067334707917969494278974491132322251104908079912113661750666711742427366472700968809136107204834538779185846614250779702669606689816186459023472519118727620587403187664850520161992124876796246848324212359306399081383306951309655034321327569681846570852280712220570209470747188415149820139361320417291871980391319758714899837466813945238254373836943942496318388992370986363392573343683641346733912113764846890734948316249305193976468751860986551065270960954103356964759244092114907831840157986180177321892841698766018528818404355234347456411775229990767980687267325726401569757253009175514220029558591736470760524431097164405576407120626812838076980455336916800561478638507671350279498990416810876517617644089962327990159930885093506292649877990690224541128602438066849933769682458465675123475534131878906156746076895177853871186880455618329780707933881207318662076232045250384789063722906040315240027736095221121115131652022131127413964441297827952356329006136044729019073267144734900751537298894960340815595418324477012454221438709694116420604146978529575779466421349583306119762570651531559664085457119028211156451478926427580852825246685218434317900128325309843427975794366211884746204456241111923688273857094353857740789613987291933536544032752775282137048086501832463606043012064508854378622723088551917948799225365740911159316752963582916808962869335783988887427906049179693224369063625374574552861184546260474192929009836752301768942250385445335854530884190254580976003088090699952429085522270748162730333526341661233016836332839624417833866418526059674246090524526567776634152606475197699123758496626347399466985125969040899249676396677210511557284652903874090853066274073638040250707669618608110346763255858950796825979946121039530059643848954804437741480862971157602562232736918762108417057200744541627065587556942653881560192397164605023988158866698788727676196668346387166172860837043682604858398278124913801155593939685706250772648020189688243454418287337749339011984640010347000244998210822135481089471218540007227239596899956369396889675304555709389220507882243288275346400075649176585352529499594837945657230136219667478236200318570569659377964593588903258172215015721181745088482394290891839640375162166530358640049067133821339747026801922482003737669949047317171764852746976461897496796940092431713032701821639269899815273405821914237923285528534776520496968521344817216327969132388648126788649906276814155243013396867100365038922667126705699153650361410859060161900564117412788127730570399205894676760225705259417174007102755521210062554970842403559085803899479133257637460701969390135705211525527009250416323160993658914417901337296393818340378313408287309798724947665983598088706111453736636207929216679717620151851114027644663820221736030071499858864585300568598009817380839786324533184219953098548388746908209456212221114420919262179284361580101920643698233430822253358162299016364764128614812169033401810434145241814082915342318536653002639385027831138023304802623056127674240567788169748062162620613763134472734629149481652725033914493350810927279557073540023784381835745885732799452557235638582199735009723310997110212545021654653472243003984361911667615103877075058647874517891804724803107122949845094107857684729660318805543678315224883069107369398214062352538768761457548034285374832976107056802976804751517957625276016340002544720861003071719132996422443744534174121207003358440857148692571995402462604226449706278492131551411001081525964469581518375336290074466406175918188314364108253694471862950415087219694321606946076286039712994795478583733532192165438273763071003682083125657265405304619010623146793491895619067766266042132839085291097788276416644145534750687732450353181074415563690731988448873396373478947848802907551904134057090694974052534856208166679696240726553913133784358898241776648184947865582194160916739423500937796578459925728596112871464943211385318380721520371571610275295740669256504372599463712239567118941644032991421422105475279120291046756522159818396914469399911644966237058050696723050300635690066828312998655879002866347898486112785964152877700640518658828690057446880812893433474217785299352543866792685856483262396013503099850535898329987845259629350360238257598171681828578795125246624932134958781072601159024819960375124321713371432178069206347967037687488685458884185457100416713935407017039098155283976187499838941851290911772042434411524019909190762893047807209283515235661518867833612072965206355198793809728154641692137835386546861075963112508383812427141260968820869121688180247867173229554553811266296881356379520054938622784279602816053689700901992647891143386122958139157318217985870905306829728953858996605497638722116190012052438202488651117085049793156596197366958677323469813320470019024498790837784609033034828712716297285476572694946104387512449715984297277823300881726498871956370035922853415000203623092145849971543306601724083917905670551056915761168251014677282697908688054641850833461015108172970425113723246397219309919762135519552180382541610348104039903702731987102797122602032967726227419417413333247990406708419483141763316859539474700388273613440697084019507525481797442344296005268522509708014456841136703196228920409674695920821998735600108042175557245665850256591333302497210554231411672651100552773583889075069756424841929233764784169367917418157964684757756367662346555261369261501960281291238979088189439958285240421125435635143901582738012986024051787256335443524186152901081165778229159277474744154902094196570357325201279766102056770787143391531015598313037467651982069308818388515114840508899682874753596045140943532546011960935565791584471441910259701522650311660637881955714210639812970350338192450695191884200775944907071605659241054919834088487204653365505869913774487816135090955796408645065851222078407945047479821554640888352784811771886233679403637252404601036178354180838729189541711835361734422402454235521370256335127599281222768682745347988398074376072591439818857086771755316219074107769665763376921382143107164811801833300327435740992892263378930744713606390486002183803338335694661356795996024428149070300471949998882911373160840273445297066292783979263397600825297567583767480994009474990278215091433745278531324128237940872467789897092171443070390036837169139951977278665952826079284533110562575997229604003568300560974004106011314335414969502476248911907296203780207024645737890957987241556905725227858849143037019247837805458868803198767341868252208753493359687881019378763708747359624141753065612935592882554366452398325216820946875943089865011920956683509219790534416588554669949734285096020192097382652352040690728413546425795056491954562592592279923085858488125423642345472491161690458884271844692087531696480944824506890283774632495340269102374574322796099028718542333824509560249785191536151929204881233853106108898637810780656599383444094231271621777192354672057045673216856832516985386674474636428846676728883206242459623666189244275026381303233457761947088424500112423275383925871760646324313891069274626002946606076495912940317055145821418416018911727775901179326030350244285269138682806473888917120672236897567181008077251739550382601366628204622491316716249856102064553641301732709206621301719006169783510866006335891490657258917413639295842397437061936501376740507772099496898251949725932675852865853995906335764609815509072097450865125391341694488975780195665319822674247005979152264453552055322892567619351498460570701905772052080485889114365634755366285677445312978091982326915637590217014264803502034314952659445537725959443402926330581275244623956139953021077080013593042097674770276214661174823034018078815737233551820470777155266334632875713419748559138162319140361489073843183813538240777593242035094922508166965900424441679972960726981465132951820898075086364511382071046198901823523679733238518906592369653089224266363497875863871051485703509455518124781058557623019621122242066448044115779467153564854265145086283028638027000408947281077264866744243440713679530957072988006087031288767778156596777807182392796931076226026183628280587449242974614641129124124006012933395267396762715474470182476025478639933668299103765628904134294176229403194976212822829635919450728051107257089508531658186983243257252612004758970011638477272395967139008304189675290530934357970185721718477897964550534266687738540890152083948338027798672074044551838098336141415454403928387165188772254455364677726812182030733310469992689149959405896315603272910800082632239528894580393277519199469187036341292668480182992497267651679522384840062231951989841148055260388049632373571548013111104198092217745973677829976138426493195807897640619968618597331563469075124441443672637280717547589930526886653376146011186599271747379706228348523805130030067575521934808779126973476361815484148860971009139635114443922161509521423203793912025838420832858554565092438668109181501633385626788646991722604526882533060637983452850099003299165036622941971038574433235929890330147414455620003038695715195577223788072601356827768664741343161032314189134763441078587410706827933461034859318750555750446108988369397910133070876208761902865832951870215605128991488504951386275433335736590552627046284377082436587120531245791054772381230466264083487642255437262952984567975919863560400605920681950367080096879090750674943390606614618244535958119766280395598911857336528543932951401495677772065333857056977314128233041704782072029942265978772846510598213267759165014958612252163956982219871876498839747203635578927446301275144756426460572612348770727143959634202168713058820618474987134495329946220806883312986799358977954705281541636306804664637174735994483930318574746525080117492999733151060239036954408149076442295826061462308555694609487504731256570394301308186465313049366778917126878057701861142730761257366666728978220621370308035319316563800033484696469848407253167010954357950866900313126262531275876373843956094401695360445893073995544816388711867020312322056536873564610227645178069955770019003996015869659420262082032100845259381194840427478997203221862866524006008622032076327455735201137937350857944505938950336443217521251322133426465676317660977616059700086925105725337807716613507304715145247442551561939225619332700290802418868032294436385855530879517084345358555146152423355656298288992925766612999983792473018207519245233580223076840161513922864263160102724332498980816647577601507378876905208698567746962921047640505450714676712839842950542824609796680099690986255919020421340074137717906607525938752446148407688888892282929787256149160032328091704404494994489234332410115580611501169505732163511231041660694337060219601698005709736420409475806296065588752591197726571918048514719793173997132099348776808635137536957658099155234769807028107568593022296367986343213309620653562806146725956896161646164134347739087061743054865806515233341105268263071700848586383624294413448777661901115597337634299541537924452194976619879478598290014564813498159302463995096508274039438552534574621283540202932557770411899987833569071241008248240833072599505550832966658087044886897983714039989115772322961132868982974625246406740388936696992441350817862255532342244976946850141187579462961978486869580505880699645971949728288859168073983073613681716871589299969445034741394783943666049337368473759020655976061900992233243444931342194937113936849265299235424619525958603487056049832253276873294484797355194598466519896231529848407553036509854033545360757096961012317873437028958902485941439661618063278331646432942348152078236739435270771216052149593737744679896000382141145403696181341694571025209876030526443430231577324343018452276169885112360564848905938490302668571777276705235466258049590758374570094575328444103296956244468718090907658720831780334022680415827228105238393288837112756768583443882882486261546300850645100241475805014431605417991930224985812614989898942778663288344194096988953887219801932631985648723781877376466766785133657699408986274557952224058521054147973051745783012182458016110039508966881955503933802108681100530219015327255797669190812566172838579795440957091814397266491195956285519872101150064124225636592551332317738057610413316127434177177244302102362695637448496912789300736007016090839278803270822811250231319179897421475996316921131515249467674408342752451159006408200242950902714100330890376977687633490029884085384661285821541300860169681385560284495555070695218357540865924078121019793207598509092024762605155632706252106705942186058051339060198539344852920902414889277136256859387090909495137806425725991035950976333883937337715901805290267878984198612079719953792020459663086431678744246256239531491569357248320855495516515410719162662764082934347328757442379882465358437390668771319306845208128790134202354898147306733889636864541919246526085888818288267812084177261102124584572700661965541008912938210586174100386711775574548854813089171787589925851292884629840576851404488253421015254079350218164009195440127205668587763775379108134378859012275065652044716632754798305192420182854277502501369843819365166281919490077411031385367880182490209325937202911365274460409243203917651639445177705075171139460017427799372535284193203065846670809602752926015175772798768474846559359575294527094827815175425200431434048196907038607321073730278999714489354857841603162935298507552912653983213664089753557533015097114233224352414815627263453576887539090395862330138046436914665005605521057676550560327121748251531527871093054059589174006607775167376004419046793952238110878665452057692731980278398832553684286027907667974843009082172264213012993195331640397635967419279421272033495754571883245783862926247620148800610659645370028014259575259827541347067205920236788098781258401573416611344895252091157260815969101890638757545902055877688331336470170636866118392744461908939358401796573450725378182440467267005027129038447296500005867187242687169086432428891467302524327148634294188703577114681007652927234708074155442481986320623064531857803387500105312420476488521170627804131202737305967665392627408714025179189602463865246322555493524769790378149991613716869343747582976349805086596611568826214403672715934107770606069366867217419524256581832991156467437695798908080443966686289083947383174980837795749432438168589582386233133032309852229848736461863258281692378896202697968056563724862863440381608159226070037126502608874133409687531101435499336061329058162259874452353659149390789843475551230467932188282663754810324775734728654388684181230713123139148039405135511244626913608231017148058442233647875556561635795229660022343321184678030114190806477831542514802133354478678815084658110465444842584780428978904301455920649166826188911367703345036632134132330849268437864589115088877255580469569153623603627604668237451374717264700674995023393991058479033593425269346808939769816615701241572527226283891918497120381874140522559960126262891185938314699967998199938089617549818108306691955518006153193651286822762553191532919772568118727292721376067280916463581667671834684743348335386553998242980133808829543942413602415260159201062363005470694001630518503182679996134081216119236627635111199666564902800655624631536998024671561328151660626292624780525073418568965654474999034092881347653486346059240293283316171131246681212358393231893911939093673393508734710625482968177924209871217102618932461850021482326061417190295415035684793520557593939942440665686151874370936152754577854781927038425633763227601703950029952973202870065986055861587642614701933794751547000165845131286811184409038886948811743710079246250479991955071172518627337641693653893929376744552763356855917813551954756440175902842207279174214799480465264968714969873097017316472853762122403271187990030879801320477964576460724510605577343148380391959696829879877352511923242214004983073081704056219274574817200271105071841065647185061143593352552560629429699081745708604888567283514722461376999751259710849798184887200334065197943884096640325264902771949302909916831035022138064823184925219645705275642212024835451460805905162693367737651375467967224881656544601780076084377846650528021230715978096757388028506574556760504716978608882164769253810765997737717561179311516301030563994905406340171601010744508335478809640799036153265652341220020375764870338128051420819728131792712597312230194157746434126011453078514657682702006506253837395935395949409663307878543103906825186990998459029572553630499533243609917525819380820564449831947425689855893112155709718554458048406374961513985350095758018171125145830951548346065447850243925226613799092475579711839966519007587777900346984114453230756103930596241586088147020800195432768758090439108580734494224476033263681697606451644511415943208634719723830639402075957040336467712900009750891624086301770672916204593980141187013247407774939790992256147038142035207416854613794763004777883006116758936165905382798420944752307817521225505463948072848979969419556460376809836295049453643575204623763088316681520845348524438829313040911620676766778820611248498841436068067174961627946498631785024413301051019007330963108136755783788314977485516589943099362776603067720335854416373223840155044307645251822306885072955159452121196026326170761163043479649413917481490971663795484756143325921475095190460322932906039037812042238180851538815727150448193558241047399687351728667198396656842258076364663192679618392407640033282090988331029311358257182983798704894671175805417304857353947920096878390491405052952780387090751692172666510606821788537638564720815721300879316826847352080773764001040677984172317301094276422820880104995539636831145803421274119751138767306918110949678366518311224314388387931772507916733849645479819316922189270369381623635536117339355874197291521108418125230965002125971178862102315562084043854902806443413215921260177926673520052596861599881847508570640559608682053331565868542919933138871404919203100571010947799759440408172868147303093057619134558119319595421382094602525263121480757447617581179682620882647744189829968710829827823106404980115297610930415062575253835892027605036783077928358356048531964378575830372909571171576033763744638864253844414772626912910472286607553648809035773584807397074254088530099177041666994623224499633654995203116906966119547435902144648400127818912224843724360792839785957458651401220854436302193824106628509142388712616107576072277233498861875927128440367592813989177283329829733463697912544568598104141875485648168082165233948509812356924905163683755519749310091265982810674994397977767543943200734363723888512858453648141696691040773219978316189336977963556092377952774738019803289703305747559142406279929869957716153001273421668290896516361949379664567622342513682713029481029568396508791894460202593463815886761608091891170681716910961427235398011974748627426462152261340319957115982372755049907119626201108053774565995752729154509359401704848479606192347555918645470883351219662610041386206221234441656325458552271248400747412400604321769656253043228793555651148341854803025963366130784736895363764014420453005769684067893978720809959172671404729098902209526362128596735020732240410909582910716652498845844887859859482771906322727511470247169257244211225680169101347410333930577158824069171892094954242788272765965013061238581165625802987732135001536470796173720033476501661583131994293616357736004256168919334361668417765289737563468699603231751801882595184213426848014502997427368941246748737882629190313305320710312694297743473366441550124989390527645193931788815175793710456876193621070117258803792591313181071877199207700286102802792327197478792594716546027116634046830038832167527943357330719111451805440099053337933373603354488967901032435936836480981733931049464393728447225283263051965752596310645627384651474447911731326193143484054065022267013821881496736711075728832977177142403400522901566627884379038353325220310682452202205400752929171235357550848523998782212864185349011558576041330065208007636829694657393474316857312831175243538879467052017805333453619712333036748441259336652343925439666592109814396312394021788269632084816477212563492908382911301182629820840600128432046264021937717145094730145276429889977309735525322383160881310345672947856624261762676181208885702808693919883244918477977089271526128660859949554399530898943144849645374613252103151747888637200597358679624616499336620191659642591853085615986252778602426125498378695341015999778609397077566558564893044626643709648208606501415757500760059981579096072549377145894980808566239153291116419012892653214036807230526318729865939748351740519903040408561895484178238890263006219634634628475341229098958660301116002001681473364300746688805793289410360666729470588912489133737612344173249673914401377458464231078662884410606924514217188896554046995048257851927523417372014963522580583623741127171731003911699859132856836531755570746531151752131385063926562911375116643183446230979784070674037926318053271924099785146785398118049518046535726433679441935961691967806816162545589720828021374412548711015046956275386289872006478891715771277717253752834679923330717759116400900767070867798416719913095866950370969986778711492165438649271011992152210589464533932059530685517267145845238419573814921555727528458198972932309149236083285456649156217053282533785488347808857060170108737023209249450440102084672910038730192558007245472801792473423257289916942407084514898123733382929976989514485273967480056476440194135091263206492424093533891886839347280987975735801775974907328783497028129451853261268033413732468327727478339618127847440617601763041283750167007059347892139822967829788371126936456438768363931556664117859321465708155778022499799097657134009049338509479669871645119953460047845346266371529459083156620355477345800826014004791697467557836061008678380745279867974270910078944762182658273615363219132766766304884358465204451907332287170616318346074588937478900892119999194553732581994736216723794055721937623061194689562747479025913634977145358008941532175504441219719951883409056147641699591082395486121762847120363268166679940415615754806984611787557356858809047801677338545789515287068756177100498427188455827592287460129083368788937566355770976179096892339668559715795491242521016930293858593382124538923032446991130858186868670972549720242455174644173129525803060939038954845806903969506975865957605541421837338782175305646426431954835788561387144725478747046264064407975106354818567157040577719588149991653463364221975805455354846599782867750506950411600137623263964075049052419726697827556636295843876017378176899033553388208514820881976357114618399014130846767782043273306269805578262065323638015273604540803223855899657951720628622357705878778705361099409394514426555838770664543270745326004783189786954218979911640834613272332367816551999997027227946363894516534756345451293074809102582382077686449577347809184667269143616128297073006738928747584695993223594475682561150138769619767725562439864997074726433843418584210533347762840678112305711754967944379155253220099032647622743820479926710173419415890571167036444965899894950491774888186179855870465680975616493272409013824196530191415896759364197226636277977821534552629327847371517290652190751113952562294887971478006300996019372640827396648015537245179280274813012236585061962023161983442517651792704424579920156254530115536165885887735234094045323648207020906442834676450759145703848545918028008331086133954732212581503625589647440386542364984680836895690825850128140639525780108620327548925290915760269050087394965014149696097426977493203156338321022886727479391899853290529641866201185518258789555457938563518072969895344972000446266066073207113696765211275624329192736516019748005160175074161636977816881647801480872247280005047772458650363851330298306438782840277840506921717005548638884117885837618598267012612976413807823754233515841751336071476185739305081201982219381270654849059346277039568377027176356247167587576007966845564228464244712492093618719553286404388845129503359547120316977274722557278502288963847369683416279904836779615111505978244403443468788715850713343561292424200098769136895981255620311679303842463290342982525917378052843851663586433257849967124399039501815172044146778539434425312074211244585828506863887694012879217235444998883337173297066401280388880662127599834452276313029118165099954783721503740859081832593699199153614029305501118331444525681650682933481545984540859543754379116235977810636500629454003892362504042422446746411577897591195124209870366783934175773308474935169916777357633542875499399892323392212519639469251926401157456073218146445292333324814765148387464121015218449160439935839153242382192679300766658122537414597755062452639825588978174536569786037089378715332937744126824579049390794541728377016692769948678938919023691653449254732258127914054388600452137968812884675625975232674991653149133269383846234915657668147124261199798416747339791254591099885169109480451516457775048327187136172787865404045319076820341652633405776900384900212250696018486644275151336558997882400054730288494576427466184092592497615756769933213037720982760620737572956678378986623405668732771113799084915475416994064520708032509521651282094475420544596660271735598623821018957370489482799701380540445202687029604548726880782162270920238474833710032934337732962928591784842309662545607440448150745905880311301152102010318474404450377688923685199450078804370451299596468831975437242076615310384391611006369941807237895776529769118099217440733840193712907370722669732260173317122863473567614349533646800965295317803252006293533209836950402372037490544265197962611363850901644087543801978765228500554545521476174925961717974480134441415879709366121853660736442140625518455072466969877223155110485581275094332575648603849850406413659801689915020224345008914465738793164100850399164952483299141432250665780016842095032186580366331509546254100002670527010752071447688997012263364776161654529268558881796207861059194121811239757976996809540665199295016054642099954294015682604130524095974885686592780208347535188181567528712546225977132898759671647685868413373385634154500305860798335846498219644708683957427078912237338689738230464457412483246229278529408336866434504490847287873312127660186099391252269469598553999324927808702329418155083743450826749007389719560432628321255971845689708859359699881499624366185636613452232522885672338531745582592861571621022632836981647188408962276339889534400132401997544021802075993904645091353662999729395784003826065463540272849439547055586222558940249627168297574321587477504574667329408192042658306496323409316432242879956690883146540208681152968836293593445472083385163878422092829394366321278444683538076194273092843459277399266190092705904773503206273626403680907715071510817829375467741555213709012104084883142491373931866875644971874679693456457388797536637040212466718723548545995836139535886114279259542044720733822570370298591927296552786848234649555835634272963049624907994483997257743712099976699288561677139332687739184167435403668704832898354589797054122995223218027681889352189891730082503942518239487241436945115769862701201907425289958645561628293189153616313884594835923604003343225469516828406266166623228129773245152317131947808187898248993952983193762166495052270763138456071057523393770113445312545471073360544918371286563517954264262824356077800880177880493292159479744015761376463901494364354739683187855051665166408545748535138139557521495284079933128400839371667136206544393389587510419838019393413059031395652730760751002341817306659233771335643756083964034658431081713393603776870593897675493873564636737384858628320244897150673993606741461143445832522240348398111665078816394461375891002041758668062184758093254495598301226310954406860955544955845812142586889883487488487261179015954973283421722536193048478420355272356762230975762433408382369014511801790799501437398605409881398996096970722782915975817926201875189706175996925896209619728366647563251821356396978521039162131582907185561240323370733140960779692256575215603691192127279735233802028116046256343766315488182130945929140272625976024929439053758695747829455835396493954376859013745186447147919786747546582874268441962580237017983451934701251186215023754194004156623734913243978680034589525164239258221703713979314200439816697178575823187381669481089103992780479066414819458030832909665398895818072283117155451287727953668472985108840083814171673489720906806555255288463890229378413222222422352534366679719453131768842554478186381391369753381324708569513701040701291387111530526002446278574148508096383467234559942754638491922757815434479475718576464353744537231383558937952512584764543144072385043786824171808536192101683559427662041174525973042658875457669321268398320630010175670757365044526824137579961630163477016715212298601520507255859674618954480239238535970019794100322486596591261283580976137370765865183374850862627369105367632815389758998162084592250163145806073481712158658086479647110329763123848575781222366604054097516533104102739395093189491511192938482730882634221534915193154764473060988854344818400068981641048371495483556652846644362208900045131891142235385913699010375221489119686625644430432041113905187473002665456970195319175403203547514155160897346835708550646150602655502475205385997373636752313630124662507051033578044509361132805417735161539424986531508987229051760329287828186477251956947884224291795955376110221544586533518903857751364404470707503501622305686179256013775252209088594915805236743839888126754739355523793357776170868771866219837674391974099971076627145503465325910298801494315077864305614554789645949487475245675183026276419752040179385494858700569748733541482094829520532057790662179953214516911866931459943122795744372583668007615047852097300196218723660512831659933754801864328771677830044995484439812056445318029024108489180183012541829626783313149561750051589065071879944669333340579504957456415517447800094910266705832068243669383905369029013249433577002272567470730191627786955256651479569528828278620568622656402927210565532699499860863570878453005245020028895965458253545862580054496759711304203504449457631523226128045216440456553622892263198760835509473995310953090157585030613236076417382702380716973915810310375613912304884352748377050597538656842239972604516243131204429194319989155060125353012908844194862789707601113279012367122842843072905619537411861498751105260349368591790327654974288239127895681288453578087147969596752168803021064158824856197135648222258552834433876284473735903140976132735471820668730626372383161731620524630924089917723890186621441774125992511574312875154745734764322159285553365718923583952713675845109814514469145636363691679796270805125061248185910435864536164214663267193343623773387201525634637022745083620883681846689172669563810134358663917578542531808144158225283821044723435613697806955643057171660210713333200561423166035869444799953432504363636044897778955267126969370963051645292324556180906586905836816960073638045544349322021200110246671680341849144959786685404605613394608140098092655031332514608081679831023724005310569921419185839732766611041003783587573701749452485499897921204285927664786802101142310929934721334802751405568147914255683920899087508212500368775893041948941435648337756817975284924705392968283697583091292648779826442471395454116617418118313999052231591607314257903771977689182026014403708310569291963804281570988759494816958552730525201502341556041318268087935070709371800709901114957262726379333266909034159460878015023893687846017974401380400360026927342328271669932744387794516680956803073412633799946928337324059581452390219145085924359982675937586621307081262125950739079881664412000990472365085417102352219663046425200443865775009521562372177060809035346370897154378573188935416015502725571880918487014330090887647313952350266761224233431515789436314897058156134315863709907623515906832066143876503046503503182856970834815561900890444654737348319451455723215358254827139679615384539692286059907179944998839377718467275536933004904520097773402709456158839350134995512519299666247450507728273258762098171885611223984839972088434111509627230390606231063711543370272558195142874613484549452896752622011705580265802337235803870098297304341432166662376251366276405866398627647174238101949929344777489667521574300665349754494737017122866733603887004847158019682815109999354124472000513966154615324446275484035321482785876874908377119936856634503638771727783340248502756279712496060977173487664747003314170927412091812701598338307135107890049144753137302827994616694731908602183492179621768295506934211810657903509965777926280618645178633150815452519960092502518080667411245957301852537290302772183523396320082593926450177086821462349040825426116249399191065926709756919775246020817699511290003285113514646012824484394236218935633856428326075278727388692400783016997757725119236616713743363441439698460893795125475731611249822831543154894527683538397418654561018561583798448633430791713481367521400916698578260673599128870931304405791631380862762582901490155330735144154586640436410480097210072034102383565867669330307519270694235881154057176214754744103156765615478321378780521929802895669585613998421668624320250420408834519108010415558485760682919107431035236354271318607522011925829960036714932185970460450095450553413281727565771065484681911664574726238134910344391834511649361623707060840672830634840512640667710336524629371688031482213564664093483596335995969374093140854130513829145225339687948935976508639866587438131457059580487681332671122552000179701128194316466574598365573370499438817565196483612072480539903842628539885191978499193224925860132650020261491147013907717203656136494373885376268090468905437338071483684149997966043525768811503971961094818410831036656822394551590236414698258241358051173243301465177183961497476116337663113329495906564106775148078938815679465607267641441449938490401828213245477917404121901037616085629097265635330554149176016643476621454748027368993304771235981330410329980808641423026882871557058123118400798592487722010867656353861985491154878112715203861111967163558364775990599706869314139066465799960055848765931314988635729995194974627249726022011551294230719581136375717279989077810467876778416100706975474882863969417714567948570797182244070618582480611669176340375800394986737488664228938613298990890332786395827714545770441931912738851741337795537398698412974349003187077361911810469113362144997752484824815594019086171618815224344702530261991415873710836214716133404279937585260371114669709739866974833437401691217151929576592772358838682260276027406766844816585185104840002748620301749568060869713728965974867629497690367591192707831142351694352699232547160568074728134559225425990771928148264524900779997845483024195581743270728097310331827313767137127007533685843747904032520894814429901610007246513750594983339790581915283916579850214844205795315333730873944004346054583412765204989820592182154496834981370657104078220635516774410554627547663068481880123710652321474430372381152081911862821473138456881149123143138777605604241766221575609716655618974945828694916524187575317323664250207043921466188935127593652552760546814445249595792210049147486510808317779640308363258044386813287478777306172049021731857274428625513787366924902324106277555348387162985772995672807252497544809887370546734433065690906457976296110351711041446333986918699268506901731656303647716467329994542267227206877387212023867815660410001347703050100112819082210533453966452217808910445102945883812375086141047033187962763818186016368618733614139184469272239286315557691820050939933492541661280290714591143129493095409333610842306387217579605705939036186704423098577492068755509170635723005313990878369020361639732297411825624797330020285581904260666451019297520078104556128083250194205587941773826867972151471596911170728899897008972978623876983379153845806930881230366441657845305590094857888920812098877297861102254884030553103514181762195483392743935199044101626553146388548678159123276967394196445704034364245806147274398215514607494253439080957722390694830472808061658279317986243976221429735863906323757448869586147231299300516936624675196084903878541624702771664479043777119215769649674165307714804156621032183892460616359203216639182573558252240174292501623007839839302062576611625971799719151878597224378013442818384010388047903300419962789727740751165988400883981828270732319159374669377225031323180726312566917329610222295291443267898938939738529016094319418557984601406143030421065400679639385704107062680671825177727835613340101330430676283252446998884471796426378425003774258356728537718527983426248334240652703332388492574934296684915121259924666449660289486544980371068519668616278028518861800513119860603656263557391360578455337145295589213655662384625804233355706712457481909889669537185999325711429500037628800515561966646249513700808132917975516666794822512499326751380581624516667188037667186281966696188970478736536510665403864234998752896975398806422779686313975614053790477157817375644552103306803745979399625804919646972124844932897795330128529884156744069748276072187509925272571235525115422305195669101775078820008684712408655549665827417502965250678255396683868800057793759657100164050938629938720986811034495215629360904607258675383114796229045952595264082115812820312873681990915141466915292447562637666780528425139122010647067373872488038508544194214439267642923898179628542460245337328399034282924555148191767998220142858263394586274212461152540512934549322250206882988995992348723472641551641864036906288617757300093722904807498336707773481383749411240645997303457479161963173591461213258736474382343352272315665427998013797839791947776188677126487964303217350649687506973970312691654081253322581057325934571508837433123366743948757187814806742887027559340027365629077975307455526230167626867879558532718112424206893421219587400722824956668124786675135047317759828847662997731798772053978013424497945687484201718715222705726863430747695083959677738834643298757646969153912197795038733537736120274883506767062375851211098462905820836592934809424244424030298420895919142904234841484015006056059418630701729426850798536041364832374399981062827933237053653197595832226470813384936743474423442534979485750987185048752835541319745590456178092290573787835735667907469645480392977611038798553409347709702406769145985341213286987844084421068181776449618999238295316631609967250099671329059713233626116072843841092561703011481856963498207806786570705134395605460939544414782219994471105600509073981565630838288552494207349527848530683094463241986931533414198214159240382498005743795707684744390410952439419760105335838170313972277822159448385448445249536588629273290359488746316815279336645956188696700213405405074133132715327207818126974056130166403757520131119809961325839766676459454691877444592767108292208632983763148453241954898133859981117468401833085538622142680270998566048678295041375029558102781836508602774950710093695915910631994993719772541304460315273523445777391842729205193919258233514214596431971333029371294461071221087391056463426021199505531093484869170413063219276043054449201379043545472388251701490639411536208847228884868455326782530239116172899885918851139743521240357217543573886815134666809773360597850071686624695948839631038005189927800347147413963541584198977853624375730406130872697779238559821732907860555436977941073738109137016538795600885022714515678337311831427047902370117777321094488312382775300680451639694433000070355386166972391680432291142098726226195751194729537169859517495637767614002180462931699298575177008798188083679192554048625392003886746425188318090352223331876157492819071685284114913740086235999537606728262108058564132687298338110762304309141228008144660763426271773296710048956706958175583670304629370565742939788987836647016420682127341555849299481245443618651863724164288533709646789843623098929253626678940613598260272602658812015701945252068063554211476949923249375263466281844810688669562037118001476177968079781199267749862675484723561220997920888877192070081812716698864818637000240052301582626018048052494894650764334205480753158387656136342858814031234710611957229879078212614161998230888251972714887764492456080684852870190095569452875444992711793987187892185110309136625655241448551692853127991754481494857255313391516214414142808101089200922196725609236557556814866428469392179531116213269848716760937604375883902694624836879345440721907775446360964824552261399440890593696538485137533625444597111757156623299719938722338283685535658676527463007688810757288103425776898398578520484447293220667751877775788206560413450132397218423836184084492891217732376870166169281962282751306044021470819194877669508873311289169478411325466729485119743701991554695865685907825309476132500361028304883482839674328993685278699955887894007916155730571002781480434079684148535828220988331460716343907496750349046364787972577149586693561331417909590330087873049324117553625058922082365864444963309134256388404414496940577100200454675324901291566285487767374549873197479527083731826452860890210957497112268968174585968796535124208622288931057601412636633800679618273509068444213757006101663479205753599727500508788945230026824396387363490827825326720853367281898006502282131787890330268028023168547034847873371515195302243857704681555353963896436877026767213647809197000517959089279209427968438535123471384318006798343170289938732163012273647986279014610604413613926955631222560316165261233632269867797584877306082550644579578087130963728040561443903896335357000219779861259245397644383942568693563579925547604697492367387317176898258704604570529279957830837183238228375563874974724372019224541839196867031590794902584840357249802737724920290221869187240276262515292910091665430911638622494120162857819093023006875032257607388181681970581438132937443326798073600969821839355011091930622489567362199945390057880590894559034839518831126820759080613526011731877644607120996717777849866271299893852803225244503336639784569781823652174470048101047321807261329855205695571796458064436658854146061594796965411461411124239155472854298812779295919652174423129057232873831512112472029592307916367767382784642921923218808601512292576681709154900788847234122525922202977018918048576469394596854974017675690830570082766501083546217647579070236172142788443676617262483208807614170512767499727205375805286270075227858979623217971814117306086572748690961576329749388445897192025953637892894993673499328062609867345138685014456442781559517298637375356794707511417418966218229630297272466243096757015504013475108946011292637823530843874924981524463001997842879323583026363863258279521965162592368906769616183344530274364526454512643319060100923859395950091946865252051076903510100219550100763638286742441444502160477107047402105329108697725270060907407335187254723901148343907129743568068684243399930829819641292028676271464915694692011672315052304106665767293074928005831946326471449872862421725633353171955830231838071538859991568359382712837089269858696272688343773310232718614221587200191249421511492399234169583183551748359269195237831607169316533316549317771845605104394170683179877685455835920455870819283961642375776886292475759639277751499198615072183002760899748179071008789899354851114244541547323606339105399996042155194728564570879921042631056675063777009215180727815426013269153333622580414237333022657643598792090269709600913141692326273410153054724371442097676803056233453172065204000747745150709073615872220575733767572978153886571826305513754794651545866962045708890745254449778957024891938097433764956446532392432662487271108876297490407229106436774034646394534661524166044349138627981645085498412250451460927267931072203411648814922989995891991573700517774164310792378872177515792483449795883231256353414452906144277815857699104741204747102359205503784715112557785292492987182493663332729810278686528214485444482714535978275607526685262318254379651577278406186525084133751475499436617361003989653939910582142691901708417610800611068765399179872927674000332876833179056046006922355431227083900514662998122180383751790932223918710845690144396589288853979308132754315783190354156572129505541921575363052444707524498761421620321128330646990944669818221728165838958592639227447866426238455811739207584825179508983213771230275477615344736436999202012718005466380941617625721940111438381769034041565433601724848744406211111827801438282886311597146083114608978016926323260645979946200263695325583175200898189978144901098492657409001887181662184938727762561460030524005726469245656921353500369854306565195069899315884221493864723957965660979046817717883101578456279421417734127771415596328216172369292964519100060167763000480319127037431374470319678674507076783491146460717308834193255902561790692526625013999231111855412181535552440293324197160254944852997532699047574293201635402831502089705770947884323515393957651341786296815338820680286768694568123504770269837619453858591717403474735101898986762640424093574919325715708069655801720479159310752520092723505972945092201676625068010144573173693219218269266930926992052660167801599252332440325030976488791235884510822109710127110446308057642310318889767046343669365019985577046926037341630624951583190086104475185713310739898042978946786079605875734496788063493365014569067176443946640649056227294083372280385555321268489657759819770433358585176364416982536745142474292282696181480359679430561129984742018615943443814615257710465805226011598892814695735337637375013640785152205576922410265057928177854964107388845819227612591755491260995498248770911993894269173830627797911365256011078850769946404586928239168588285676770053278040760768834972055797256165325539845567269784606423209105188088009899246370178154749201320132080384666706301922191968680610048903622772092739709633743198738156675414825316618699666831684208813197572385658493627717846267439156524966899556540946819471889963914137527510078674853169583815230386628905434411859687747490518307218707132385777560198961194236870264778181069117736678532217987154104634965249555781930436519812360533470254715297175798221159751627715605110215601364271851745208769549139922457914464449784832851434548667199603509021780619024155718030099698032120608809074818518995377596657677558435222445058627192843246427206955539546338661684650781538291960238924046975086735366469085840656335348378400337952178315980526743561583057112102108381983973552337944554426503139990078241903250685172947240713885915532923534877167096387990212538204843962831344187770856966734776887694441222777632222329675936902760457746510566733288350251807786733650971704081036636622561949579516166799028098365168219404133848782787518666705308269715884179721490269983116296873075665349141403887391997844493557386924658265985102970483888004831822862522003000237270199379253601748473586501884538753476736408019434509710564427913525625297502139426845999456536378197590130886813358607202078849562860904161919873773174877428059512876350055639791449549918420230380003658950005964523154648864310995623465741155952966586307823208453760612149719261079994886719926768572678069111425313112173452181237315068482802965307429974360131943772220450774872312099404592942030080624421172490237554091528818740296000418341700695915311640300969967847155166174549495928617050653032044401966139585321596487692348478943925730267202596458156296496818248239528714266025442518446333219191036386111172613331169639879094606495356807082835183913450026076227556112130814015963322638694331533862666441936311696177197719540238042978705978049643065276533173639854698945167512053480341016362866248283614750880612974394855244402318494628996214301219296757212362616491697315031989978063204628235596350431791667628010285969538254210721084963322684154212625616962170772699421292410305360147770183958382278438076586702318539564166043856176334230617875384022114704028824589683034790716943067288111845207535029687105517463494563515670180060457646387366068076071312034481365111392085122524454480103556468808919454318516899808105375659620425352289726263158574918716619159339339096968497638672682585059582419029392364519981140181800019368563982316374688858336902062930146194132129613856634249816597634972071942266265003853106192848458307847747296225812964680315903579768435201457174586738026086548389140336505221234629403347865108951091194030351995606851239704969578610211504847378633672640298518797633381814112523916722908557989795191245619755315779344755747000088161974421200702806642155936385473378561555882947345081194883844750409829069748361229162543378153645189614195844723870132376103828790336304694465080601256587101827583847573438595368080750958366337109518295282081622686207459853434039592541120243452344847701270814131217613650086857439811222333622397417247265010061179677779925149617276459373996469294646398198928493645091091284904830292329150309975002759703662434075824270242094021872588815404165375729075410332626894085195869667283591058080759606608710995886686295845788997562760554871195161699268495212313092173857611665196501001470573871491988319803362560325536542802439218001493259161370803122961059640054871850161825123893965545256513019649234272257009157052475733676742934369760698103708623871195230837298298031713357695607818667086933924030212377854114346086986522598731760820214533419653380297147237312945086841589415961687303735312370942789132169162309741536722808105426424570411115670972188691103591711991493371086764929537281402286904862011961127505772155467366848604564180206640203135990859694870264651127586982989967444771208443061316945806053204952225725757910858308632983454384007512743668804081247221249532483331531998753379169243026849814023112633870391549068924199965733868420996206197086847081237352267168204601000168285148451466893477510071466891510540705133546928176144202563018087091656955034239569636527658844900378080202517069144327554086976023565949538820611872265409651115159536460708965723665860776214341948748061486184448801388628963547179948836297821191053222136565771397414658648335100790155436373839753542252049870928398137710608860078042146593880037047539785454582742308178604093811165343433803979000899334877150257248120680378986837412461296767629141509203881551585986116626606673009441879224169264519786148637367001660407128108150780187160959550601309645287816632963826064373058721279569433536935216154712492369010270255077963217143033942851805318364937089513104520106667082669830470305384618856135310265271450958377052806724831033418978481249054791543032135566365427826596996099613935126805076646729010990913302280385795166813124340465723780520387627812489738507688559945489692814513894712996372515284246078693070026406761422199174024840248197651194603272470542441741311869502550813493356629699996107403687678657367042323126307306282244709241676649573791280809082170769153085662047358599931643407858003881192784154838392590330577071469630969360771734723688828574871777477807203103818740759169259660194630971113509585874712980217942221499238508511425091222701108541037935046109908071690352163970279172961777894541686052972092093013421338459860843711160351446154836395443183816226159867220869001961264299197821017914160953217810546872709184395611597722537844832140935875675451320614546967338754621327106037529197421033723883299985654903547969962985315419730933259589793494112063021453166487077367093453411838501993147402468541860953555998773858565840682728047692733179617656521742430489882899310551359064361820435454679073115118470009418322338409390562045945883664338007107189611772143665407690972997656171840830943030727284630704738641495157889153022626559837404861584682539554121382370772302587815509732108284722575685952366979319147594949966692969628854423982980562444606534246356920553600215253066603785032462772811540046883660901486616311509609040981893582751130532060126881271251923459217004822377313850800159327312939597856621650988018986512991181719301801787531873902553411774215290943986492704318263504428122987053355268197995396979658968848105752933990103134313994104358162725251852014821163059863355988742057472576055332586744543815311837709198683751000395985435292820226441134971209094112254440346839899964840515545218209999953891414418161290819682748343238306306145356724699465819621661218084093145540094888477834564690474363489226323124238091725462466594125762976525998283328668996674983591975673941805795239299093034614141156759601528296291183396966875595524161809610448237886031978703635065269093758589238075791706832264439283418484985570689276663993129552928144173247648299122049086196379482684668363383670096950274101863651021965170499889122041126126294124224697340679717897460038390335262881256977565788151086911201142670354107085524655934172122469744708420334519640938755023620470302471687440783352920154813987550541094302078115851917152800326662919414489049783996698729397787188248300461873237391141785597804495028933018894879841101165755910060575342665011282155653297425499012083916096787287027918037553767374836667500418905737497982803151857794933958373135093537144084210915776136833317936980349809675958848008609108348116898993727693840451043609751654172878166958568285822359583737668199085442459360628727158930137360706201035264168052538430329630012438164808918683389583632419542766068769191009967323142929947092381728691465330681949375809175792879219991675884623664825215164544036397114660658902398659644353586769489339079641564260502294944276934490642389091220310686267917128974010163130445917814503502560029488406000482596741881253647235010827411733099851800551638961437522486796862075628452073643768486939431760701287896235004060197385987128095175990753209910594674499028527585406170415784007819540082764883856706886280795640272098771528033582096883547031575061289255579012327627407161609796979395460380349455433842794741159337291704625361054826385678772766953058782624341804965335289206303761274985461891050687951202784515094208380964345645860694548295496296231921350130984625960020259990265759645392573936368711411879785175402926394061424787011369740838087986203393996298840412110186077833278729747297782391401604126719062629355638953894234969556641322103564055999090636779320339080485430812142979162357054982921384995025698185971982436597708046215123752444430381096353566903727269875288933907931879253281127721518655086475640642088883566924974335222185919215396370069723899929536680755529263566063061071156729264374951671585478665073078577272674813306249683704144782083506213632534431441085821519188272732454764906719852453433320774658275055402949450319990934957528877561456882947856209459089622344891765805472928616275942141626495982260740029834993360162953580965271624000386477619199299978101722443223948374167566623243999779214591626427853117634580717936811600634865618659712218869871753039835330521048560212994345128229012458592965460750846840755037838278261849696225005478838856766105313297059615348890077652285787294898694368339669877863463685973905926850486792076158368253344183327853983668362464933612026350493741685845895710895188390176343682145320584168024725703051904434579523602938925639150550010533260365899995472396847803186395705254194095073165815342930245665325403657529487085419893413714025167757157477129507926084792065204748347816039730571653905540729127037689055864565125510463064860201934747790032648819973568925398309416750171423304060010970979047050293839653593807148497680387972085998816133371959877695874461118828747427646533220677815566509182037500466192859269580104224360243636178259972340011310251216757656794113005423127185191494018980478000714938797235924924082906389418042910000712210972510186433581326390744182401795526976699836237497545404799010107473810672361957789974631021388155639187248612913052007587545098445021824097559347769850008774986258300484131877934468772787088996248112573434711372826722513187511482861924157257701603503689614405275311272983465019170477732106644408223115449162911952522523955371862591564270404983409792957145164609103048478253573144066916313163585768546495861771360763889317598053268648081372794043906597847161623447470974991737664496442309679322194455665503054485438730135432304030228773733298493593327245198129155630076971475427024246867827572335939858899800351730237009980890000534947149888299406183301920808218523835214378229949322998234726110160303280102001287075972966960595243405719550627574813933456192449561347374135422515553564129834114719210006465674944977703555561116427973271829382910573190195519783229449593250386961573654200886653350711784651071126791940779341195253202196176702828870831909042563088911527761817002914291715698782774350650312033515757120355835660863172067836218609367575945566273219249748506393177383479360208238785775680264776106270480809957558834835479602009082523766849035307435673027345210376654603123247892685072873264722118418112529114675548152663416149331073118632600982162453261932999012259107468780350199633260423575880324994523578554444274321714413308536661318569428545811630919433511934427444627674027305724875598197663824194260576361012706442903920521466278386625709344549406088867561215589930968327820572337285688545653424995763364167831865105124407737386882836305694153184829717061370396678252935689459940189179047144122943689702546188870187954238036001734981594717645138795635449561735176217303170230006258743755068464771248959854386747739697741848666684595831513915917609902536854864313081215908334431775448643209495668498497570315525055036457677083316520586719768518867073649855769429740466190746119967955986996587785808566870643740481154899512701094719894336899918313821519385977228956346117943907278072425597416752721542133013594054534507893786544829249672723268501365844913663587078181965070104132303041625533568104921193437683219272037051159170033575823486747821360124744196412747690705846491852437418662514962385565016365828942023517638508601951176929831372593352886518526871384535410466542244967254401612878112001748714994964924127176726157475919471624794309831158925801653224319665851553712638749601099154266026877358308889122007844474607882146208040429476675864447270755970451771278001418685197983809173464010601799701182128951159728968092549277162900544090224010524974824197147763053553386923724889590989021653552592730388974193162412730753336364106180177487233879810737148538732235806905012355419446375882277756679478836292033786696148272094376539505274140531663202542187092138108447578002037974400079828564272799836852123768908798671399686540036882804567758258154037163652547699091649439134582393493141351686830738084319979998506208458640097924879290739019146234850987637763876553430498088873916266130874213491772359103952650767909780438215313057316059726408508595758756146458509280903005341675497366494501718621885062419611674088269943961900945989713989898456110779588608049013914079576245041647429851736297573846864214417768241118637547902375888663323788493289497306644945461141365566068144494796382575988067280457207831960562946677668155532697737983980703359310705714810941103863683773975708661849309991404554443312728342275887497762206844649565365520231380162521010319821818125693888177164695076271602007805399117868525414342986358499532840263166960541424125559651155290727087822212258309597126556698464950953970866342535255976636029524967202314210158856248806376306503425532207675307646320510616979367006096852952710607476569959240348503508896796317792651365421404088940366660915309178030136010054752968605019774362250502033360155268980023714931736310350381548847943747813840564025838333908356089526941932086948930079863291919362796857879396587119764375745176410236518305955650002461088950614570671088207067856454055911500856748153650563121754365160891472764254953129528867476467181401234912080588710873640520112915113333619802771816239527160525839285957861412649059238988543406283893841381516047016302854387973524300658244507966498857496909767547295323756057331152926677970750244476739766951408071069042645916997010010740598993185266492504863002124318667493764850808707397008982076852373288354157478755899500263466797421210180945730936008421702637046099421986766351245010380721991676061454289343736843065012410390787398569889661717322996693743969699496124662944021044074861174418342032662499218016463028495048867817377984308739308248507030389760003480913891066054806037097615156960858334776934110363639708106002963350231552165749287808507523532935784288175997598972020464374576223620420605656972818012825455892624569133828964984198542282854051191701872009605233705405262718107444964005325995371493863596905908128994146700579816962487287731365648317772669689050936983989798425932952173482705762256570886016309603509500126556125150554258867671548876773254042872502343257477354131012983903989375438317002429953251526839213270642137508289579818019382692315430861541625153896066841554824107954709765004899513229245279861518377974952145538683762159794754498521154266484950572356517932135909718550389244205286717917235970747110889661629246411847615624835615941753237180698191539299255347750000215767162575416272819086327386199498658238330347891803781618886805769296738118959964358957731550414506507983092228425851661887358671362738017110183948549515679145426413961931366946237977414710458753418869782506305675392655465374448020999001866179557003428511125483127983196944390199285008920078637180043209561668403266675755813076476638984729016696906446448074622728133074612616908373796596500376923414948940912413101053651997527495493069830851688887237925076209686850332831546662310111172203870769458640880378734277267369487745884177141030894910056766530451310219586176667728797345221801405012803986242223700310712653049693502961307719135702553968507755524775263110106164120091258683447542458621217972404793534692183689739105914198104394652205701811107530480207525191341215440191898548956921704307059151068216510402813944721558225739103020149204417532659851197515698811249904652194207339323788824809007063860768320091679265988703056299228477762598862845832865850265715320527714105937918074767998934401740749268537196509247689706388371896152021673291246904787255708701548261130567284970031074693369942173849346724523495847986695450205848427867215687408480982828200896626914835550804687300291630055178382347971545608543462718333953397200704744565065008182958528697425013396449181350618539841045639553275578891062945559681968397140157723076967676206446708350690010980000517492858416227480990013749892061418140271692404416741128263942904216169072047049340373304045999247915335872035357670887440211043698964713144118462973491830570301556868093220802794968836481783728210072297480994630115308382715342154020096536156691124332152034064958046224951919905116202740902464679654058651109664588604556275824157765398279342544996455680158156071129293819971473945232015653278109659974016336645900858171651103837612223312207093876426317636859849431410034388477292671315848069384871429278811801487793465580469162460119702634759576869085618229646241306383804271837264342410673357327848169269628777953062383976638430980520670831973171846749645027224310142493368471472826862484997644071505055941438187122797597387363908227213151012733351468375680786249745329788393586632394376080989159074198063227090205835531790818608766862192577361888270005218941484326146511262133541970751388866256226182207283484469793377318421737624929179583172579360558842752215329272446050034434911601271489784399203130463029758251530178249557895495347753068189513934594088864294295388109490186257342473737503914873394172743706317165644910784874729409018630559664069852936804379624954732033348616011409505661996289948181342828978500696086897306411385372207245621871006344013202210625942161024314695029883754531753039007585578897456187106439425051548796415826797475983447101275344135685796146332262136656935328315683204871860730432598819110126611480565437737362960320357741374047717514748417878847017186803829709393527420533542693086392928226329650693940376378272425951564153894382765048373860574512834918894001659610501758179737616573912820301482646179041383669463444732268109149151894075742957807630623621098117359237802968231726976061694850761634686491333540606144624609359190336013459624306934187066052476737675233205896567926389588856443141306719901193004576228582154782449138780778283883882969837427062959983431248282875938548704940870802401366632297598989593294031520822325926287285429150586321441880005732113748305325209091722369489074362601586717688672535555905952085198142095800584349295219807701793588616301705792587950335738341971349750469436371318469565309907168892725691919961060499034586827635043167637239287629425150445843827949488583370391477422913442104110642507346453486679525378485519447368341311204428312123566844900619579512375597457645824619625803382215915993580290848713677923780057300643871329884759002251426694183271275577028689165419199335641897688258454474654068402884663964345659170465582735537503238492151758694101557545500653416111620957102963998723019476945682429251224277064489381887234812492988730624373493719591991455583848436833514279290234339668072006580077941218536123660901573522795462958540577764564282599313625423653537839891631999217091294137865122293990221001379407073892122606289047992093602099535892266585053804338132775778638129976659286071355731293178104427629433254180277156247443040938756536836839767258458999784219274348538815685004061742401895446119555900061139521949415892242010140278303502335046962002741702226925618229323056090521736219814509887023189365572262548745534669719709280553228818689983526640108410798417245318860267232037125326180894661444807149157681298045565521835016090674177412544367229634465977581308166159443582175876703358204788623575504171444904803076235145787098982068538596862319767898072286729387208511289832731596351617814815520642219606999956511767925629875336971925659640320757081643160045517942288677271401644802040322943346607013780680713698349323352168518141230383902495472306619757401297727213738839312664677830525702162191173826598644822247165068326346959627651623332822694716045782291969842649015158201504682620848977940134269544231207519675566915483110381552983102641163710613073977926842695418713843469884496013258704008911965142914065919540505977031297733289697337703866984038680446802364316505335457657927428956343909675098725243370709830786219683814651242876824832283623544900275605673290964162138539078015622157871031883350057738088316765746762121673421554118147630482360015283514753812095402315579111783494872227207516081956525839437236909692788912759001302395560022138174361313040540788622348318217792453106574211269911677379773999162391232132910486444614816042701698569068829152440241773715854820847301480844218934627000921182586374817081305120226143620693111199632565477008373510081589174927032976161727369156826996650187215502773651067723716521151717359208051301122932300592634040300295205498491244497673414916173072713060867576166463350667592367474679408989287605141782952281090540582188669803597448377235025989591587539883123155809539302947623823556999735390767059090158485321488721118763433588670176072031596611974646733619684659685234938708337699757576967410746174345436732873428590295805142977553617935153097070762000050420560230486441230160301615860260084811652149430773900893626479887999349641191631583243350815569570150024196407363062990853030233176943655078332207657349403436200474442559210025809479870870732811034869392797082931219477635292893596867818778131259000651774400076948728045097862230905392626486389995191201094802131908093339985193872307519415888790789916803361419692881578664663123448625187810973968405643997959203867834782163421944751918194478689948944393709932076569437326793044099733618222730277383398309891517612222578366010896386049511720345255798167560233954992488155608684384011777717650954539502946129335584278413236226575812223714389401128820221820517995852528057854419644611349954722653369675526282343285296530902121814821103136798826534238470752964960880500715929605765271061556518856387302175407362929040244207298621299324979335429258161042139281923994707251716064087663295193564351252586182289570286545689016459622369806590508230359897441150777553233183918057092663403747317227832355913153171955513441250957014500262026163485675991003388388914411238419991406578865563523009068311625912978292470542195010372053467841869167141743611840391298139530832624197914198158663328734469710825321739301366046669046662227948145864604338718060961866677011851424264478081070204670098457607995669190996471627012652173461940363162218391226203756891009251011046079253842377375378369768455730748429663753116673628277417728775759265078558051442116902137998473203722101784618823867956341761707865351498105936953946734312081199456650485774481269668958313062022451408016116825140038653915928399574629205097693476402808832238693714689140877420139678927380791378942578905675262833413861408226813814967879512784810805549767792663251110326574817114262509644861679447256338922852872216996707815934444215695866724450437210014427078129261048752190520689404672391169753042518836980114813067653771595863506068423302785604346205141538259312781939320121604026245512532391149279662467816627542172703211681247317207070199718863937855427573570519457616577033028178810693646214802008102247935776384078073909306028144843716618190597128124072553500546437486421227963548154577690233689288786433422246599875945208499940776782351618081042006103854067098843746153278790010225439780999148607846148962097995919853165568742042264456896019406490786481675210791594072359725298949087743879519023184469112318463133393827504870421552609077249059682288385634009478449589701301827439431411861860786221874393885908861076071515836812198926114279688006904367632422011807517442882722388023193494896333383981846688894058430791082018830652825445968188015314650944936791684079367264965213819638999805357442651436969481702395390738541718872665396361129472124268618197988131897797097116162304560327930548646440861530940189677600341173366142123394771474853189972164806416453216171080756786145026012566655512300706178035028134382337460325866820140394819313819167402269357463758822575970324809667506319518316690787443955166482125482496487441692309371093621459994644306105368769672414008628453034603862840477349889408499125230823499116863887262298981977020082377583682993567005684328838036171778221844547926453618087943256256783085655083973894756027643252700395481082332657873023419400946611636886536570280456105691431629805800475609135979782815875262443288547959000975633690853976192174945590140565421160404298538659699011938857375656760784220343597024888120064792722308661737116587784154592541364579310888351318051338876934297853489106225691559710839881988074223618888620081313350406376574096397699869983221975462237736252334648465342929642184325424443757223276878585699655501315207221233987988499922963654256131077640743412344004303350583019881125222363646190150471275121333280023314305766784173509390484853289090159822592639535823809372804181708776596246657232714743005135093621753446896295723020253280153272316283736086850263109676049547417052456918666535730617276749200685660838747898116172974960263336560969017812738260861021047073771100110823753491629410526594411557087957893655908253425370396220768485435653609445083106129612575458999204469565224767726289467562916669335266840688225399321189916452779033211525438081188449257905192038804671280395195247128511364366472759223568562049025797676000358709587308942070150775337073361476044649199315835603641171421104692992595575108651913412949467293071331082864501701808219513558084970742721797223138889662639642842628726376253751673336535116591504611019209072085600637897277416511236160367942073668122111136880968869035965681088785575520839811256959822117827519585080084967975910656132316920828359292207649494431864166558972274050149708870175503976761192026510217914776083589612751553414828583867015535393308243683901379176117726037122741137297959824542073621352497804615081414245494500272668665410389986016935454843199408144296015762304919729038229239398187816844372979361975036101099722015753239387667633506735421425259874914397602990226922138250102994319627558460689138227579812541798721752947658403172047371162407932794303349012983612085981128628675422586841489361312740663083237784006795704711417348184099925677073415297480353206585764489105680954590269780344698079282744062723212280402497584768316544475240132835079828478533222278806652650405866259565196934690674153967703397179186788195704081837450817133364839931138010220723704258169435492067045590940418378886666409158408340851366812138094025288022003659144967142084700513729797483882224583496551762209229396983240754737994794533080909966601724097192230298968970521544659846127636098071434502214948885696487644741645087281235964940440939467438066026499515975087093461658701291863837486998293548381486428028887836377245448892572454280119556338101087289033811117932190275414405612211999167683400621253450790477768171602024127151683147166127217056643712652458632208086515832100370664632926264685910592063886442854240811041429052352315167281090165981245487931241403117008354797662335395354083176052429422516007491548051101187600274556617767775688570233202539606520235461891966592076164491872502645988540447774224301839955459059690572695086822893018355909606155394462187089725265918914608771665396822066220696161496639723673709866276492683372988569296961790233338489748115455373984841126849680921608599311721290699024248776108466622461029965569547273374010251423440037142790752277673800538509529860221599811700776022164788567440093581828294555394393818854568591053921876406262110350263442248517838910304377222136063034874730004066596024217082283015861201674275473327004149745900069618690542000372404585239096512074430601941438093353770833939476167352524422075235351129860681472392078248028410387197143162156812869399966931901186462745474262024791213396081267948379088812712883576936648697475919211190793273538270687600486636856033788224713192270777513075567236979843283651586177482066079750469562422689715263893705904365375204726743881921816319587599679401953544078582421106661437859260953717189360398351971576626461956036370533039126382782727632989780820336370124995964709178223539879789949928347862006850328427820048254519904137486122999171600026930927762410662783319732890247037453457530514756834197009676655075939849330379155173383213670550593152254976655294425128619566443964372956091816279601183427214864221821331752752192402657226005239972361357280360216098306773260432073392184870945848342177889823215110301795788257983039574907045331591209288412674220692379483218788617304854312326326745362308416777445621517692866167408538456728939380366956094643126480051521801795851769912656485656873407499943954292934582842035832399688123079994664784158534172851410352051901860248238737454058950945651124868064800180413334430636553366673753655067247490877611926822497992867999391189073749409741982664918825901041595703011284127436260413491004176609895139821609834244397859078060111219792219993331343987838987693478324062307397587072398900361286141729912237424515942687497348407869129521174236167483343387634410381925855788328980716018419163482243406473393162310036860819238888070358734157652469067533630527060559331292003432570076413548709043252104446847446259676730794169823614911648351639556447752553589216414558614564421076042655379072148311468014956443225993982205883803211366115402909783480809415260260310399880690352558844410860078648592668173798090540573254181996598214148078002028946288363584194875050708600197018088277868169359336847364973936744867768364313820752580323072083675164291750885715424155571706524064767703603091574034101949045198041880572644152008672373010831246717620527640671792899927002456152897549679126296742585435061405742821446966767274130016797486557413373418563560451316298402561808233957606081301627078889101616283628958096041813280627877095634453112740530063067910876211550820707464995179347630303423527064438382361901894771894404773355372083994248892895486165030790323133327091717181663398181945620146443767132687548234557823388685226806634098654182761596339448449068285930283746504574397840387472735872502610179423824981623108502148372310211740103616916254442862666325562626450054568545418913508036406928835842282850428825367301699096505977584954826651574336192311256896640631606979927552167629560577646501084825820011959501349306831207139453434859246815366733798773309038054996875081712160559307212052696242798353337805991955948930351377354200856823552198391298156342859155810570342956934422146515674377676282145218191934912108710431884684815566962598586762846475175030823770714298921742707787928400624047933069588625842660353806282584529591228105213746404330800355354668788022001811396482521391074450752020240161072317094107164711447303257824159556526115702803226401190115358267870255352551830226703386231130766164166649926202524675288582320618311618000960378215788567992994363677191985803263063597831637346177603529987717554006324870197342670448206181778620325862197794337497173430702901966919921334639449240024736563409827942376535091463496659353758142013957684606597138587576552850725598957174699855597812774807470928599555274805240420390779402927946543069541974008719452088826667055316336561085672034942461167198698013054587507912546179345585507920441411608613089323061653624784532257738257480749204654418394091682273236661144850012276419140945654463622357045310415937664009562631902007329638551342269847445099611102647959908155056641093284421957888852815191456434375864145304115624949541759520270140938184171923760864461297558988183265632325157905299812044174902573191379163661531969232029284920854298511568981347785370115353818678982900508300544193706377847988477909268417523966284717020630780040672461635889350599268196031228940976249717890389890113015497708045883543764737055868347963680687656252583274101333399632670786958909203279524769803857774726419606926878911705499750474914392480658472798055914001351848219384696946156954186463385697906566368845357662874006481777474647150030607539165895221321884005267038771694687931916673737377774190408423865247692050235635093983853196168140384428185730805304785373659921527692552192881589134677619649892306504316344514554449725379291368792100457136484118182950809346847382539081405604729087289135136228466787226851435262176891494260651779577796733413279393227862667126827410693627030500423838303000136082091645648752504829985664320142534372634246154128820076398772349544963152575428252345240373653879141375966050737608524911032156395483128658436113811740564058399212310024738799055630749428369429698056912723697331001450937724951526316873756353232986130964422695339097176817187599495960468973332398192050264982059435485281166648764078659153059334774077331593588420171767738439859187414201230296360680368562854274228468552489409210337634054597808209510232977020205423950232980307054742007500370498170841559780577405620767299080772112377812465071032350223156812600231885031836983639620824733652605208295823888135501827816360278886051021387167904790720558834936731045158406136177726439101215239733080845594919542542520697942737058425452686198631096161340830347059800891315253376930316906493758973918254358822124330179718199282416180650459644900738271170008398659530513923943035040780178086609013526119845452636836252333780889122071283885853692593782924901629805392378501173769710592974800671950445358499749762937410224824463963371407790697656378151331488487816080505491833706153848510734057823841425920094734290463720408007011195330470069041570859843025159598560227220039054646017390648052495815773520364969614666962938268218107399103459029890787117270124949784430547250386571320762049948124899715873456097839949664932227916032916692985486886926349390182386703758419355561692438695188421636880797162628221810851256909607010213394373989896061508558216860046680544029587048955862414819511599283123346506916265390633183889859409022292919180918993113815834972899451143099583434333865689162661185982480036523511808167908020531286686727651434052561639995668458215427311350499147425128413587883887973656866589460243814367789371225294393952474330476663984537031716031557636131069884076639983072886670180278366100278464189385160525966943551474536454861511125631169240813248360581991255566137899007860505319992883495022972051496306591833825568809984626421585174109422442503340044642080607792816200283984913033560371995421053563138622697341098607484793927649376932563310317020350755066538713929732425694462389989375075420197046017256576072407059213975227590372630390265189611197134014747952796803623476989091562047892743874831412027216773060866032654756303324941957755359946351946220350369893020051520027635168465733768471730538905451690304891217748633787626165020115982915512934941178651879068361217669446499428795024087399951898051851662552068193909829468516934890561953695882896134291752483750883600476349110162474945671827138733424727244874054028873543323893027075407976518136899809340087676030141013305706588957074594639957636603647271598367248353290330326422619791934092632453411699839036217752556825773597348585301946389435363175763616732481440049815714827000388978675216787867529952134913708188607327124927309693773000230750017345730037737118327892479824431550577165937091754319839925721492507870623968676903416384757461286464273134977429531309237742762831841521565588045384675870599277365283028795542077122126424681002974801486935702475037482256998720883501816517515568885595889660018141101346728524132907172664130395254825442735640413185643804534695890949406170749999288926450892281822505470784552013021670348263484712049508099903151895938644832497073740955061806809232908981938153562636170136225549311664456428869857327391813011435714467884113017371077663696577345933359190699025613663853242389469238096295862737402727598541271258533159307946588249856397279594116974932285067350230426514406819734106342057576351561026538488517996618576095101533722525442345005716333798079298742264284928598066320479245345926867305320843323505867083080091213932183369347851437503816194155341168695997503553117983712412542180653945489715994028629722077263732771713307162514897075504895928897206353428946814597291197823283831648696965273954001573740343026691272926867470344544101204585537353143761042338355323441494547796513160769448049733659742294141514679733674523993796125292711194047257144952230008030930273803830300378006873256882947816882739399586376416787169880436087180679684076326402338936215129507252227279457411524445902703073974124341964526190177588751599199055502034114824794516353772773003505326889993688502061863672429869160537176042068457048416451796354119529728378979184297163788934018648726103693269608039776908953379508214513681660308229192641428449625941282092882962349977207480346313870259101602209675260597275648245691928759655447800658045510958496467891866892817673999241012725347685053714921268236930858981326743223072907840253037736215775025963531072645372329095320606871426222912601399513565932349929583055283521679786168564533819065454590419724728529958547319600998560260264241550799088704180901913307882697468448946766636358579038238106220403968071831235571592928737299167438661256780766274247720754574058741701229313107272124057434447063319703248286758399640923593466332031642133605709747354078792962617927748184783179834051574645185026860932224838351478586596495477487522724380693646885242461462378505445205596388890646770085396046576239402289105251908053383482646083050204407781784705733094624601722723440430180172067082635202454741663766052014572751160403129259562029745727599881920144276499762069814599525242019895439921681667018970351406469777659452675893298519074075859002908233499578635455859513261000541218904194323985718692052623655693995822069058121467965626313144143962888935973973461570105270282577793668167442306927842991126141295346666365990073702357670027599917411867066312745079254909328350002670390183044394608537937910614699151204612044273340454022301393023446849805525367703478872691132242319523102626565324316427456708199599300161463463294905799025895098206010724265992492049727793675398609117962649333682424350022853403631675022511289336186858903502451314000322769662188600767879671705480003972443216170524353966682876409957206149477550771815113535813931733443601528097922515836557848228739860340255990477445950511605123702189710752212074173343990099061548422407427834230451181105053707096355909774220151890024961087453684682945632226063082980845159914404132483764366736366471404070149451591019279343106881392516363825558747680417255054787572005136504393278344980539969528972774084796768869805026301733441798175801042264236118406992441616186473750493186597443717407559371475953495330896924596318037478972073642410523194597125993986257981556108221635024183197996891264370512749479529527187217547163597151453867026497551990422547669816547256014229788910102711681270363455615176306507322429182664592117541296132923238752718484240598036013761628826198082573147739236073300876188890364475720092635140415923760952374911356606775812144861075570424974990358414504044685192617553145302975639732255576772429871392936637730116133994503423156343551844538013507769833487089228431071725043416119194335857758856270526222945317673047658988017737582880663436540685019437377365461818695493056932117155317563832159889585034150197763968151550231016094956069591697488028254836868806366177996565006996601144570822137910382881446553964515462606662485714542084767816188589421948883583052488568959098265691721632306710643432721967292228439082838877180783716765015516568257481686129564153616451670205764289798261320308368216631703312579566021337798043401653377929745246610672113802292947617345639042167844728795976287832542881181356752103745221669662575025011384131320756528845338623488250739846043924064510748084825501495621927305009605877263178469051381002880157113505062773758399074909086414911258529781650113666211227724743228122905965722442477992234327195359151700363714907544785885315459818111367191557843886089437259135778758835836740295428080463461936648695873791876164139091213658424167425046210921511734795601187370651150333024919127107269810162870101639023681939415751761663740453696847867308622235697866823910731291657137844718969641901197831589082243145260460926652104259568627307702880050392638280980629538801777198504947928251446984902744332584260466397803496190456755975487041895264185827191671734475216505536721432030822791359532635146573215936637165414044470031594797927676199422549977758682492905941204169398873814181708979353170628744105089336790433517093811964303515392935975844267273812392808630826877518605514625222086331253408421658681928304266273961765026988865726398947853602033165162681443293500567987696961842207270014259493919323156908810319370517510989022063747699104468285934176649564661845426073928047802893343082717815394953704282715567194372910248967184454000644288068228973732136185637067972889269294824330647028164551404434858305145840613652003827352741326003598547288192519561136516802628964108690314324910973167976536533483673811918236620670556601454174341336920532801401186028026891963003998005572683622387196612880052161464838860592664963650872737653869302426124397095584115639098642725464283129532970485070997422384821952313094891832699883092582400974561632602441140195802596908812161035665714091874636063805280654530708102819011372160896398267688591227043489695443018476117111509791177823289166072407010544140670752784122511366543278901200014129473332784520849146440421461393891391384103953664657085320026223461306192011366834937390375335655432587606116231056619812917754394226202079881253640949228707868144669046284162533887740325634414776310114232030332829052738438743688102576528501484304376120543839111717082261076471485678146348684981872034185616233949192612223878203216215204691849234235790525379816733037108577593185134112995698404670584478285006742318428772072609602910309619122515802352237448935991392077402065720896337296412971862394756468056466960854993776042226615070105604062071730135631936507230653923328563459259114476865332766479080490548779792721295741666675979369788192265127432866405385883880554030057258800890584467001291658110635321263354865279907832355188407123997856739280728845063692222814079403191311857640205209059282719073043812144546569393319341525276664400059189450782007988305704425733057319765281188518269729271541728616241519740268957957013163275169509689454611426911253500354040219980711654692924978604466742483303168062183291410992549568998664494300783571958895922844657153272475583361147973863192334632250365593109237775776520160319056522823767870340603349769919918283396752944047458078189104416924615742464880916757668596443585940211299127954287855558525664903878679083172610000551520828346304144560885506024047035437588256687784409846640452602658634476041417481682190196772415828183762408651639586276370572323159935849774933726923124436912938875644884365967869856449757068295646056192223286462335464530915981373712073559243978711965566556594263771453824736952453698917609931882829376212829434858659850349373129954899276679194216704593878378058106444400849647413138255266745706859692963100195788028523488474411358091163299473696407973406171521782460432031660004435729405302705292978000354938114874590032779619837948280315595961631283444651014545190260245437409958445738423479013855078090351660560119168130451607977638709738349209279189986209131501754079647620808810981298842177899575086511239207585138192252112033420763851893879804948856015326286909914075711812070929977536429661863123401471444012980782580159955658546788377300692435058062803408612535276374603666461191021494432688066929141373005048988250743256414194825884139144051250355649088397883865534440430576704421306086466203660710160976223502211156860434403564137704594322758236783120257668460513912395421825335006078464700364749969667443269706813405504898880706539359558557095775024746445032532110929662224081632087185928429702365420311707230587806155224215640941659192219088501515464371787953643380159775632242478772152849328917115898223604103073184029510817406670087936109774788116313896270819021465283526439480599503173889231885157711924930132767525707082955159202862346052061504690271230038303692603474064247264466616350027732803931102403913047731575224889778250853336863563214093145807512725806325878872817778672943618434875392550334840363298023240793182518721926214303695200311738184323636347068697845190177638076820880591215724890138040850732997460048999359859810343913009405870011126377831173128627050114666167397990252469347920728160553622043997686402775309430122801351403936004996733632722053651201987874172996328823687748374751886863845262329452325575073966757244566943580924810043669877211475400855500566034252885943215531377698156160230331445731990607568138947700806548042349973867240762673866862521785641919227639626259153560569485884917396452363369619413507094215064646266638068299284254196742106766861976880653511966414904041559217667250526324020292857730387049085186199739859536217939245520333352846295653381269953203803664388366809258759646653029115085650799008956484957125265940581751980992641841638321253695378726412691779737861424129829813930272068811392153049830716992516819014729370817861099943349711030067871498544891870360788460005779091742017334766056042549012809839285620768491133084347421966078647385959630238754978052391112086728387780202396313792328132735798181426312072194404812423410205644149312538880046876842210941968390235423096941435310079204176328635371035559191724864694016397820747193237603444651795721315464746951695074016427537309829271298254462177700634209747495117244247897291236608776718232359343309398235987135660418813006266145825685308794193563716928246938069216226505968078340288999701272671273451586779575382829831289128299757443041139371330563126477065577169148795962053970906658425434260924092635578164640017961577673050634371356099276407067857339376738609529945064291086570244218226359896010583398490581995454152395741260453035179318204107235961654201906133899139896752537731585343137800620832808386493145869958485341565781514632217499189185555774536476778415922167107686267436622833992702127327978651455826586562864562460587891566864449989457708926437475326967131402087840906363851332208970710149754382303867020436510678829984742667748059614000674325698899816073844107180867556371515815028509011803748129784401985024438189231252464534345289084508933280583883436754293880954916410079976150553142970898445450158949331853169286512572899159752287890104621187656463379112161519453551332705880151811583951075179974049658953226687476597145260294421905035321683704345741462727144389667496735196233026006172062800445684366470694003409672707294588534985929172795835613734223887486801329902859136621992100249285818604018691919722683281483647489916793536133799849822694487015214146347793260275728621129561523471955919674394775082585791722830251382488378594609724484887075111686554257904020297520082091873627570417981625280628436087041699053411979152134661656328698101433126589111269003987130652787541128977147183481313306123728154610505448124841559857824616393078361516667260928375593638813620010585515083226564371190671639255991082608458424224527163152278758372226890272472143244432039043020880316764200612104721551651628261592443247739509455274757225037035081172779602796083356225970099301559170413584252941026473049778139882065597085419269865327356557985143845945287576555009706539587000005833368405495337010233427279258844064906763087261920351526521060000269883073318648417553719282150175935412349155834783754302988171458830468349528391223691895991211724057742387206056829190229736946997654239339089079415266925731384708804690074581406024783465434722421544925103559249307884181570536410845033480376342242088634617500998218244064270351698617223519870472632263891369665438155695980170286454412737744727848734212438610516760059174836777707765546670725389226672761593010044924506200912793054709125043193143394816823092976679399978039657132627731487278977309316076381177157107244343906421207921769281803950874862269396425835549926997949248951836025247253825177313707433753293393079072031045555496932413318006264247502643529087973550530641444898109350161415199078371159863393952400062813937221327893704006626120788051067621910106243953418276342859143592056381435111491422641882738054829292048945857205996894920111635952481163825850779495679997906219332372725188999978963827532970211343039471689918976376234842900422125949877535651189375342120872824594629505222445077298315713653758029361416849926416505140977698326150955503529243488221356337736703484120495774709210915033808785590057409189880251039005630929165293408728835901414525185940151538446252477663167132405214771900931176190870946393656651933207578156570881152415216652243897588226880430566872522534593528115332310954710144444576737292026210649309256286635022090009942314150636713387432999492117044926397417146653787323076215459196551672951574788372206384122627360818499199487728302375663422153461545363326775918206517512673026540525762172954085787052962353759078884284822234539574682454208331675398098090557837374468850721136366573971251471019038046356863666007169265022542666720385002545850759717083191068128958863564941979000192637958081382584179075474546558684877931007505360828944832967937183513349354549957910740963159227882893988442037242732161001649914052805788188492748472993007009946454848763154826473886501197779446049051628533859255942307365464709231634456219637357981358538964380719665748770945400627285545378074675293326886340893694580037234411313388205500180014017225807707177893267679719733643725436013460755064868329166999907670914372411910321733093506342581136114198103723684554357336675814636137126203227272367431548576131325388318451869703904812899730779409827182157535208528980652782625766355950979798839895844174397663304877743536492843668308609632561697892414732030672585859581524721104948029669619674877523307636454980935922775871467959358253894121886954845100426003214488645535912028067194575985787963820138451791349667097742728525025154184017337270040934832439798350641388346802635008406845091519074844834932939959964584850232833515841917858364773196732072450220262323683798252970411539095786798032647129590164564265238688298551433912454155865877988420312900289374712370341917253257899445568271324458055547507008721866915491065495722547789539800848080654060101549868324887432286803652445381920947544297228693077644602203657967444581510545818884519100356575718090867325447501245834759541052350410405958527619212613454780886502283427551343114990816674318870284452222744621391268731244285180363447112369682661228740075995119762415423458720133817336225910963377391317463895355118372686374397154733303293793694582009443615877393573317153365610269788964936735789056310667068579741388852506685709821468766584821566062394513582521433358714844701421456703306972754600752947800340069981526679060477403780341322260148054868830388590125872963766106432096535580336204652357804972110879261137263820778995026192840540518651264344697794207471883129370391602371809835855401387718385364951925887796420378636322610323288834512642851850619009179056475595581098158083363984245862332445650066013767141521763174110905932503959970508145351898203885496043774581629748525363043138130239054012551989764086514873445945961347280519775847671909019133206229097595608234452455052793391166099687542363301294392272442992853973334972104905104717225593419447232141809747751375334484115375789767334700457198925566672044288840542460054002096354515634887957349735692055133019443220456079935332687597467858091209855372905194716703176226433512621934748803485667932188925290089211322258209548024315046670458800325137856199910188855970929711782802452433907759861916247271320134975487221160987573193880922566734495213487267790790700270154801361019170892218375814322832273518747924994796614406226621161015220788014795496626562767672662301755893269254017619036542365212901122782765859037335177706336362339457657100147372913785752687767273611777179472759230471160722794041968631774275640626103971412402019248254838152650053251861081597878583932359113589857077850704094769401452667371127241019722632453330183730345490348172789486400105339330668877224511851558173063887325056560702220634145619161915586784811274486469262635158132200142818889975335862144424227278114530943159709076914743943903431529333357661331324518957266998252164178833209873752100036091092197698418562002101667348998725844593050247720412791267365188758288484652364535699282421108813209743119530544774040805479958488737250526843425053051563702356899582004275491538042091844915676212283372402128874644998929219075695212095059842235465851635663423061140856884496600201308222941465116273931006611543306821054784469758319189875432294389754360331496044834475718389714278401864785545273260018574251435650508241585502877320895969603088105577833342815627564829516408057303743781202004256751265400326914110420508914642251945080533868155249169909643281579087714012204612001666984795519302429248516904920173878098654071718305038569995376809821809168485350477773150833307139412957345283330367553717876430562466896128447431877091007344135370542429230948377612030114052318816439048495021357422132253193214756322769499670621328993931547528868266747376546929276759839624026161197137186093201838135736979887575984361990836265334106133598844190182621421841470806453628156135662483741632159165997707253108778729776243971119607414458148314884904551069466788787415680108200492334530139194292305102550198479390041988786404275194385452043846320052637353584704294361379724661847028261722686874881396866042225904358923075891319765639119594981009273978835136115270895857946823453710058063334860318995035988656675788700661110410656756638623316427609067961504861219213183529946127007871438948853056714225789603923501049122641474645442301455960280438677313752717724875741663157977907652378201980296251357813035432283463146436438835488727141846078117046066147311024558599001243624017188816659186043533684291993881961402591410797426399846173300169090011741961901559132955752706392503553077533088290517785374328498951062324904373093907821626816138242826998045397348607242082925043019255714202140169383376587299256084957533231590729819832233856097000411313937977967098481965652444479068323854836467070170740979285264705640977320673317180424362913844320110850587494273439180863629636281386858801433201040372975062414909356422938119784061102267295037016590943462634205248531820943221438392060640912069945253836245707288671659960295780843686221793111820560293815096701662623188442774287498984089555253378775995414131273656397271381679458961443861117687200782831128541793036584633164843011116630452149772363758829100569079289832207156767810450979933347667822686309426635040150530418517589410570506429547648469250585895366773177284056874949108485409023342330490649017187713755890367022358302715326084657607785429113466710141244563400414536902323333517848589916559080215049265485084146268241384060129938661123403997963770651286863465875921666291658709859750762939597354957974763123375672400469700587928522735061584784428764008174202308399505455604668258057797668253226860911823360635108504025370923119584781695657345714617904538011119549958843497406782392519102120645966186354312531966610486001665325979780495434842283470237362488206816160203532001689335659276884787547412278676734080878562287896097247100553431051947245461238646703138624460728727126053163511466320723524142278394963788451608999645154221428642595405922369988271121559199438357045311135249623204341828845096088499002355517530909813097180679132665057661298639835844415435767837500311732406350677492457061030747715961250567458351072911955345390476410769625391934818400634887542373734900142278641735107382792968542733294499020370768543731419892723306917178688812452143110262674501020493726321204105949330648380831455238658697791785133949943737318793424786748066402978300470615822780136678265295692690918147401793153163821834209308924057084897487001311592192603863612412512744631316863836284162225380515792296468111087371628601925029221762285137159413131013809544640259074845930119644097304811966675501371925877539830198918822992647451181034665021289561908400023221738694745876786295784768126084854726637427255658559928617536590125534875842569438007178826327881468539364779718033735468221035635610555398920591704944521001596580781455226458936012858378379411626169641194680939553348130797101961772313036869639716350722932666299233426522322498266678020888789481816700383770536937937025772831009033721185060824054436887131553208498105702719027113626675018667423358952438081359663481478135116188622934119212541183979740704898358501051855306678294288061674577296542166301898830330688239354288085585105617316108497266694290937769663403496581094953992778934560229119300144797492318853903751984718332758116126294966541682425970756122152089039665986025120475399252526769000502942796713616929066806381662357558385342795170094149889907094706489309369607803140279176367762519017044199425032191152391413157871896020271306072909047705266570265573605798739469614327465803709163666323311312602305791598509804779200291316655327594227490905597055333505128113818461148619075375045791898075902028010221121047813581330052062493740104495145197417530873424877599468802935465571672582074454266205012042172036005062991354243025106354831556762727969584345182724645945648492091874805799563744266373375458408610845218953277018215166982923141149585777767955771743021516464413686577574125572325158003829312174230514612336188024512824280594199913002889763093372974791872779191192725192946273105646479424739855085085957361464277896737418799332056411029585347734441228437293776599388703572857226600802573995022124530985113911677382646789046491244434366373713291913206171660958410154278748913439064551093122216709509777500009314931198832807255958674608546448421155214264666244063183878461839352899161488858269237066770323921907809562747927757356217043250589997287891387509739083670766272153098933097803997715127090278227277756919902510724800833887337903683704345568897862331029575188483847586915290314147038221820046522316185951155148301144599813064726990491430906383791456762368858448819012318867680359756487124347804820754641709548836850845100624733533450004047604722884947007991846216311800891115687050856217746864767429748068961045096201932984070344476504658033306766118649118966117105801469138554275670186111546413650194777452173905882830698065616393239057034891511972042494186863947412814251447310541719982591076387694370044294239530314500732360686960640951473840702487363678192563928655728921867836258381995144536341084703148962683081123065140887988235947142974753315878563138454938396929292312395615425802217865944477852645890403629359932368452065166364395228538383019356649301902448164963402078671306333599705880697043716907281538375417323724188473771411924844077946245738776774718116970541176268473697941630118205012255213117522132247437439125011555255174957637733975270473010636018342234790723182660157179170932862665262063839393325814295437972124309495201428126523205067831411599392653610833488505342016510100517920365783528982730257995420784213450646891580662198642032876052944098818900833565896301888358467906621143607992407749256305824675039324595145871040283630867762990663479361391137846270202574101151773905984740417370758426176527953162745672518622216142232611371034432888050510985020219568458499294585641305562128888631270415573940797449159203031757589940547049840425351735919257612840416124619099443421556674826807154681102367462845579135947089248834455140313170771399448863521685767518142814175448321712464238263037486620545969331523576409817020155491453743078193759226675223593268378621396996415667687274427500655583811713907045334897175001678086157281096695752084568838127284851398997598159566399993817107072891509158217801926315881072329038169935897513071124470493885775490683140744158662716307877202355200021405978844490858110598687038665390432523208363022499679899729816761319177355070821760857875066855865496746638831139914789601309550215692636061594104782975104909562420402328272555516046068914492022050976256261647241002809447078853323779169404900991871878169262788279840332569177188010302128075470311529712899487139549668406587917670556861321515569781090842316286633164426213014818929614565458826525103732474633328146940072000960718009068852511779475015603080063576150525541666191320217529478720203655603493256834217219347918273686023106243845560225459970283502599902654159605960726059458008172338789859007572015357475667318352644316012380918030690300515834007423245088307231646783553720897928368699769380935939168738093840840918543397564056564978167094624331970384070265675920431006110754992440627832499841347316704794236387506333050528304625789797751464860956962243476152888539659823584536914119643307020439085635831567140771748514835635300245562103533080212270115006934129613716546753513672524342325217423613913898941746130427323362722265606490434622915472599469971582691510372096325350085943154690116397160120142576481331662633230882992359384175309878959796303701559775193123247724857939003150371017097562461597812954234868859866009259437679776774485591976171995441420067936144778928138872859103182414246371264343102203745477513631613292051514077523491532412470593170643785019622744544747475129985050692505673992828010286313805770328519859729329762176868980016245764209521561941586838028192878773337464862856351012155249605771620662772544359012663416672569499223517410702092327326632358778658233622334676895804283875294162661613693985029245630007028195620012214060032128545426334026620064741879316322115175612264437650880497738175628767134011480639466979804050415497429973172479640279634172167196594126522265808054158347753898836886345639406428002828042953933488684940247894863179128394615233295680447260409745564987935756295778657937587482137276774297012936519882063150161376051548066433135188716804259032685657532845782911739745220491277820525359091353577115527085451074431089370202448244782536699909864405565098389720489350839713676039656812688517989238611744145265416969200641421807872829008177066683250088458961729314814269400691611212381988831033881624633037428511181842609797419656248370614328942145086477881856015335221975548641638854016461615467626273220192239080490582731453717147353992142302689017052202546545406674493693161096537809108845295733790587387434586370124695202664984722332670646783503243458438670973913370546883682447182110206144943578101905209522457930425108140648354304588624055013214069365519155318322340774462014692147412380122346301671688419403743721088065854973728937137842647233882327290218469386666479131633466203609648647775932645836846917816970881082418250909952097287938317441141829025389671558247293919028838466745002049427019994628758208398793192235167556195103524360172638908833464027972640701858314063130240740918629895199606839730869122133437713960863593921037174093174337085317889825856905029699877522939092098570177132154505370969630790373068497333958466490191829982040435014598302703215233337031333470097131321169049541193208750840990579967062271425034795864798598793790985860918907643495104304019577204546110221367059042595964517667773332187627246144647174694061538120907884310916772587984265983838377382190061075199023710517150255016196258661656003015379760953718054909002651660916814699538300185337671036312996875085224571701333349537122337425559039102435504002136147953672505181869167913665427019210548184179600706755609342780296679326603060312756916199955173421743945579435347841172810707518889035832148941857753957055510316952199600039490854213627234384173061148781031462348342262596509690906823364657479866528292394118228244677425540529902983510410550901932414849711994924482742230057028556416559179362743497002428543807016757947063086664188636336675751220250083636609638411696120916512793370156216346984887914831310378752979250128537263443447232227991079186898906554779704570116741817207317595853603133485494807829148681178136489831622282235063605225974140522121054602129602298277989988874642780179768306921779799474959438679330924734878949726719986444893332592541583590081951477926570386313038198998493459583291488405381693440591229878597729434850327616437534706695143702530342759282339913307111877619505198315192291966429643818289244042231594223732864125621732254881199715905027252926563138083719110769867157514035684476897228586075558263888744663571665832395456809120955658967682681881365483158997610823356679522114330457079492053598847856968795886806514757753794442746055977218616053270768153263066455192195944012455622615687418565655608968071841628151650215209967217827747219165923724400918428227706650580649049161959286333360529569713978275026220689982751850252687297463239634124471697951444760529239751715529363391205981051612168641038311686529860852640373936551788458307110725145568498640964543007565810093892032112891721520646827985182329917633890169866049358257872333209306033672300093860118243966319030691962093797327033571360484160639358074635455641063506746126773202948057409815253769475852515397204652445645539121868692018849943222458533310178931773957243893602808349460561919564388606923592703189856064457054032146971063003471906502185592183319022224840487199241787091559673943233758534670078671142845371749690699779650208163474675319995838122023658716073738286866907596085302638677578435582076798273848782437029779095114173954105692915242612688061730670138758351594046945634687338134538437830739827131803223408630321692032839816767109812753327408712320516310212371990138624147515774774837830783429281489627563650964264528943820125770428817785845142077233930140876882369677922757912482952035264457264925240955848804409919939554940187229129027253800780537731282758835500344586830038731319395781948971894639276445692793066382382335608531527260021290444171532130537440678617383390210867232198098006695891585401331382502132602282955542347671920104730357686254678321357743067823294428882077789349621135110775187384688149161090888127479070394559376199387447483932314279487343181869340271043945427115386995743571890350111576207040271647143928496888593940067497350374648574226276612139870637646802697450284683359609988210799207518847136514700308990347399682939028946750963197464282313389413800105705840863054845301217910886138037651805133130384882644761793165448158193839910008296362284134164485435230774455706190485039718618367415394164983016928568317677414981683822777387824406974860862062251148160178472605334191920193312649631908290446722729698355010339470110705092590096519513021857317824573228894570758181141396980117446972856435059420235132042532668791183375147266120871409168285069030507675169765048373812776968974975227928578580135804527597005357869257417925453868180125947330140958498598290311961110529650028964840594073065664467578616532899672418725015873813067180998933790140262166892504012268371756609612225538591046839999160831819701975427591933801666054690266520522466681699867695324963917957516595595005735047124440765478460427224301227970650012474697688545660506094068026238548452117192497227203583543463759518974187693051043349287831468039269492455238933659131163450598652407038764901729741794010493117252756450712228627861934552455180852612934755063940385345275102329841925652778526033360690311453548983812498438300866726428939660803756695057926783273756857509779875817723378438704208564598141240406993860345266281418375379115530103801090361518446963822715218499004788688606732265326735145730189565486833946376263567992575621578592452427152692838011253455145158766694031148266929935137383877941223165796726820937381549495782624458964938505037216785775296772313511712503139328262968694989865831337214068561439884464658848131727793296534056887094136116530495950497163920323980305071676890038898070151842673020469018203257691924514465245691779393373965027638260697907573871352533524577527080965532573913503758050291084162241506807103307787644975992150171181576855663730529843839040365384775137801280299295528175881891439401565419862452031175047216687099465800499944015035350099310019268718896896026762595905726138357107268327370907952719822130395585403178011927314445001208578548162218840045264101462078771753780337655134072490996518131187862898939209073028372318526227303182481007607113998287686325669834322726508748086249474431284049329678177607653647388615265724874434398043756379103512451982831361391170410144566152572764555028967663448625781812212974213263217819697528845970983617498071282347508535548062578793226170494879084552207780985428691280336035565558564862755630397686593615876626540726366266889710499533384181293839010631821881455598172353933078213851071031217200060952751262626408826033174934803948285176096710386185024191246185592151940323243704487447295969246527375263023634419178119354672839581841355393293223938801693562342849277078247722726708940348522935180180036213868039528659100108842283674083707136803668403418890831143678665346709108905512524159302797278675098947405161826687865695097949862396038514320265010838002468818557339978804875267591333772708402857089952095855093769031381796366199109165819455844916032797317653173021002717715844659694769001276982285933587702600637030038143075698232549215434675378082812840376313036253879466000764245098323684345577172875374660689798888718416340525694363376613944973151156098099935593594762431182185543084473449492735884495768908440548490484680907109476986005276878813592241348794435081068670477203626235261125742036567763983187715645703144907229132023521522486630800756220935272200122342727864633936614048416818143554520676659879409416426603805341334382731574730245000661983297863136983476463645604782310150588119142333222750562323278619504444447202446192559653046569014362984609978676428895759996910854571141962740665321277615776515590748918433289025740601524116768663036089212218399412868872396390640108032478538216360181432737566379084033387034425367590578117799375526267341095479489459345130027228007876855981294665790945788593623270305929238988522052554627645925316468726721666483777195014304426531657296187353461699813031170873736990167490170074286502255100744973272995947424252508527002681507353501915619332936795842574191627618860416897208950523515343489909032877091148058850209994321804204934014740537072182269967688489421417427952090766019138068117471915035543269778260023481807869550009549591428898010996928793654707478726051309513247031459044247904121823347968561884840412730441954406752907589907154906785887173540012046549481366320312994698992561677632359321095166478792111065990337262181536016317871184982595199134401271208761025588234354444166061344226038514498820687325580320683129994590556789583406262316475093983748665012045873964690904069268156003831815713390383106049009695664196136646159852546518309607072040257166704483453424329165894953367092646686341020517508513820298918794421357031774744719920557522186261066247286953965390533777422816110089124927168052593479123438887729957213832293150724959702681597229140734692591297449627948702219192117423368475132363122932110140435330619896049417889882948014945717125302796949706774904214981803691163692827853482196121123170266601410080817667371045025030873300689542044878673145987697730856892713923681997764029813431143637633660012829776187497099310892652458416271679983003710072035713956524469156788500726337186070380675956406507897230314883819178783274915231702459983639464704549951026529886351930488626094730859859431658283867162972865686328446445487594515707038252463218803699161839730085356618057349271373104701987181952213765940567259707252690966151593217665051123625689363917716595237713375147693487695907046253217207766418730141075525262693997246084462541089508693849313826797410383358668449558101766957427206250107217709131379637491006831640513282145779401696018995022477596679359187635841918975206762289250046416645856777766292942918276062445258922501794905774376008275857660124742724842602190988806877606422267199192327873680793642611314172077757595158969473068586308623236810861522307972750032784489994982805885284659849126126275070936654113926769715110179098711266283700446415348326416482580686512373927163637704409789452823793945255995949783113862301088873367162569752415094323201069388778047104255308555691215919035118846496068505146193793206287227328665410357734413593147752601536334428941162085527179427661844010318868979837815741585858039288696733998828816116585942611234380790305765768137270553093890258607158265460569227335878790279091360995031192449695949907753585760537085617632824742881457635948314945749828975604440591179324918659793694878751289729503103697529741576883946048612467681994746371749696943767883841870727539480793590581573903156812476328631871762633613772611545174774587603702881118410637881994503280861915566386665066032093442599886848521088345274906631803974089398304603615404357078355234377537808428613625583720425308024786493336050540129307692694753336348664444300975023573370034825362370108318211071794506080013905801222586079003130806742273260611588964231743695916235333789165424909697609108399232776581292572144406665251657662859037843135660285887530904998370855749485771145147733166164939087736841744845144676264737924836049243096356226300499479273593264488206221463338039336522359091465539382176319733918878400844517019020350755570300625432170736805578082274535891547329239278006455789881952872104318661860256119437164398871408539941315952652130348982215245291791075063074348852313106542352737441280966310093532459319530406249759265329624792214012550313818133749127475509163605655513800355573497078594105967440659905782376518966228240618349532036199619999122590104177291709954442744966744119537612668404339541721302635525157498180460206628897982357916722603924882827964616335939242169338647281073817147341148697475525267382004778048522059612891734322702805006785392784417750879971851760865861521233597619645535663296781182313984551261431659793176755624147821911351615660401999072877533763264748342259138071100800805949606364116635227807324103459370259363966271892004593069313728800848480938423217070061393787991911270868750875693764552952067061689281613530670025697405952987458548709559636106517350423964701947880216236851494798908039719065692484627866822441193394401947817222576699576472545220772145805067047062429092220723146992536175677736438229179002749737482641227891215450515570558397920955369722156270448399432819633883772238720328035795757513524411087868483885851131453175271374528793131224672967818792887438543740028055412233272681067115986662407166442630759442412266526140852426901221168038577625591660645514667712351811186531601494148268742198277298236555720310852993122302641517565285369051188544889068013119535553994203567925992226463583617599762261070557487425845314980389819150549488765577658021285718656952104509909556316349980739968731395113998800911801568040078705732711407285859026243034003479841776362587605641437879536288205947712515988032441974688779986441713105878996954050615285425766851273349158905932091971360612376367340602561939544282476399489524358684289852017040629587484754689881445872048939026457797205961582279238251684403092134370593504503501447547991173574717931387254726928915935321610469850564468420075636766758726008759793756205522687630064269486888625301659339218069234562678320383076965203528475506813369820527296063212062142887879668061293924845208181262945487031234664736526909142192047628832865884107956483123792465983368069059101619291134182677096020541946001055432152771170459983334536733392891090279008145471229227162838920991939630112115546339365222588520410410279841866218413684926916741723410767891810651247393410763369687079322076410228741010705368361664238553602451484511971150211953883142677270546173827301112775697214770829687936100038624102906805937972320069576125317121875364642815902691789616032623800896285906834553745636609494340921314751213816200744640066476977448490015923884006938896068851226077855022481957443706879408542856097727247308460978612038968295195550028837289951434566894673107980956942889418608712634061844952808567148189532622989502380772842116737195296625769170320246464083494746482133968081246518683938460851684708283329587732020249076697009957276513826523055824787929720453314161051154427576004687106200090074964573235038933126689435860428137039610262685953861221375687109158956543124948822691743831718892983513693738546064109590757794111741439495661087691512477513026100977416387374584080680999582232718912627966081350006302812413816767545329062619404715357867363803968827443553569801113279847811810692696197631167437262801113598924393611089071404588693324607191250908469370263474620321240704126658443256573430095556972662356234248420711414513425548957109417258017985093955014969847770492437001742631803334630019171683216848260059820842027686901610535667105385328156112712401476368543319428116934877964354895388003877177104905687435606132588416141481469501556313784313143801738971334842489137647684440584072131187065925221407120802715999325162296789597996319765325794467298651930706435536922350612176931237152708199404540054618782015052952804018527977347122305586415399240249755219233306108307099924873870871854823682308560807263994998472933676985589807936851889106958692283015598207878511455241760263466986846206009823373066141766668291428062145814229875798661898739634323001420255878101634413815939479825866702165692288168646550422438432348588368625778115454448774690993329991846471482784880778901717039708674755928756687041607261814457211132517335668642777419966117798540768293111902908410090429731192031562150318794049199585014155356380263714733726070844589755407645566035053532441503208190179819344582637045829163089335358836382899528350682238358020036330057687916615487552820790769409262588520083407025395364055813031204698059365212289870943405466330209758473040510606594066791157691411738190815741340573026961536400233666681168118262395875479842537842220232248353769920725129561130233527983277611945778782531397966913208066510848056623239098751964257013608374812555963575119077494723196604936220021616980171986938609175841600002764330188564521620253321244816877072924187476161334101322969443953153053218838039075068579383311345880373466026041362692239810633941145744092937684629302461057967136844425556929750290333601925985640327301191812361844392518395224961483729944912766842569488130033728700266460995549848338574347590082132365627846134796920691707591551388613435790623945812592451111527934489038557922221621379587022600180562413746709453890305968794319729290344056931725614349718285537485833129901347002881925462955451353425551748853085491239104418042581402814895190895134506176617634212516419257903894923175284084674853771004953276700493037164204855814262937205317413423437873212208035338425283920988230864447565858181921562050123059098322730155926880540912380855632417337611656172830506418758724523280602421218691458140284174248621203173363771556300756697935074070830220595113037015484355208604448079365983952161463324179325900855038399077290551644343041342499946951482540159790587302650490782111669896498701472377118162455830593678553143197160312914694507227264089702009862551592482332617269854509732498073709078381780219722968345879176327593566662528307010160057210849436560455876749244286087856029911945050397637623266212870699646683056365223806243497390354852548715059397752545156079711765847043910604899080119363881349767031971071135895780114559273413884115642746670251800876854308912087116564025032533800230672473479729876072793419891623840077891131314069739039128436283266773950283481689126279592390955561764589333622684714735967201484493987410313837566756472985058790648440344813584527661521844483588345885774219945476501754569805586722574332156648430615286631097889642424463074901879645698041538231352811931009958755295104481400700530310670846703018976214841083349482727115449173577784037182341374022101199909492157432664774328734397337871538737221281281213328008759359328814629241388339043073352212494490893628595015077449594242719583129523696209564903160034056312630329855710034915557993714513559148735964955036900965340732324685863901586047732808438053451795207998134673700894329923120222257335349248340839416850727584571072524261082012433890724088602277697178642671616657295996588342522810992578522710709859429828407408939244648137514696664113230819968578513583683568239128453601291672669290665386865885382959528177075703517293437286128807399448814537690710981484990178704379161904585685919426736878973017352550834389015747209630219686364487726481293974067357780093150203718930793503604327711344233919821189935858036880069704914281029395941609295343228712270654540472875934553380179499283260458428829354265015672334113147766206939459793464697992693669684516784034543620129961105065351364109779139857501310642857407701298946956953155210742539889043201369389705207051766551610879323861398964531730554784159538827903610508171703133939992564939475033583473885942934382294582070381988733792638058228539732634487051169707774536118878647488636984263746030784408095071355247570650287259876467646246471765841540027285012480109139867371309333135149088440466646146072027190318761311616031031566465491039030655864215693498844166836022388124502979625487762976544130227189155035172329835980996695832570639162144906587200793817211309962703935216564948570298592587805490046471181104551539722403248878077515666505208865164306515105666035383247248347957836435059944035157744504383118543441637443028911782987596685872714095833534338610940602977449681753735737601648820986795944624390368498113736613926251167563134723535138308674816102919695655008110587980949190566134302134365085166776415976399860682567431054279907351682859705033500252700919082760359366433132974523905899062125021258167437052074960690979702353487743703908760432929762140091973618965815315025359462873133565151114224997290303124858649714993608900614245749761170251503430290370082076133096762511161182234365069761993410471875585353419206363789483414041926221791660027890681844410579495894310826572563314458149108644444532306588681700685590269080665405280155234561491497060206118322201503165781680588668580334551435711404347366823441280945952329261298024128235571614668273046301340068770758640696573633682902723197780211289085050516693569318706834472997467897968740808030884845717271232718500671303622759238802688613097314946799117529941955421128960304569278141351614708303881637632508259784737131336457917610775771401375657617274946837565967066049047557684098745860085414978806621500637808612796088413033305701643330691933764214553601848869853609145817382524590587762963263474240075266098726468485742631492947442257120271151072029290013723459917123217083014576842160704814870236598688515838587749934261517450884576782785634990038821020824366991019896048914023986535834285210146554451125240318108241115308607473550876848785980756086455091913712941540730952554400565862934865383814541919070135049619522812863288829975905396180149609388938702548187602484127922836049212483976147033955917360267789559670339574839101339081073140918176415152079565766432810924536349942325652472598381692733001274077714914796576004062359310813294621920998717869309583575827616507447681752364873532666374545135732389690567889723367710377700818119475699342096193561247237861341287558170447423793525160894948444795893711606670599029850824726079175116740435094042498776313572839377015816198002877214505669983774039043024186541986050449333377220930113884485262236390953420512861596255182856487492117533721044000059408608748933387592118490739975379637975491268409489993382946545188640612386672939997485102970018782945443449935634252722469791645504132714337489688863367565441384921880305818171715120875591635604520878521255039184674944324115753560595952002940741481053639820136858825229292548348780162219251883805825510005901888778990965339704869562591755848354385740729268446562739687344693021888670156578444446312991302372992807034504571775642040120029311801933918289525871191961282128794050525721624407607381644129793225981114469871730306915598431277360438744392017989711797065984892336197175108597573666571631009273932501353997565747180770865382386497862966589786347021447958170265151217332515799778650626055035143038378916328226694988131714898451432336455608785320488389846437559964208050570456936721132714889131449068710518369997720662945264724540351375920343037935232091535876316248454851952157074878097912199940335320845249433030610316881920754374396884352413972525191009971953611442350535442042309322780961521060155397181775065070812998598884490853410832753244221703815024554325478288257643823362856174325206122096010881887993271120664041202056675159922469800297000386445672630513302527650001758923875661890369552976480386770069575215175893412052708471988876448450202332069338809272888797878307028979725542339290129666834534931241141154370818443709261526023516875683024814863227112558365547985851812534361724546788847048080319665230864714201108712134522198853926666480677591432967853545044372362467574031019545387949936701252041822560790039377792107960228380649148448151558434046249366517494836540228616359131722568472203086425332230954725405685478483818425332789049719000892550161093474190179066118424718603334389636339269117288457931934019484749966760533277176569214133662529531858108644933399063055038669012902631400609700650035473209583691414947295861196026322911848194822879228424881862374434365658415688792853371050987841593550108535447517733622924412133405997554214374458272675592827740168364819648552780181618130741692172578046173683791230487864531202438461888274814982451618404814841219674594239826343062724517894617375064873664345852100834622426043516766542217038289555627641176223905572003552247028843007029070177051579519734089571417696296920475895781393786186506175120995651592108358790786366386641993033529668183917493697244838604873012200105357760832286716308055737670961518887060776176537337902669384186554616146516144377209614232372530927859931838671045808613716234227045039703225076372615941873772088498473227367264349137229661565491562228794543574199637711812239380821657788731505155067786823305989349378636142979726974027834909908774407555430099574568119319337899406514554405063668140599648391466939570476063630530605765993024383215527285152286697588658312654335992107818321911525913950599088257231247680884239637064227524666269187478621251585771623107987500236426667537089020478107608457152046301060527408215690928045036879426150809252349055459128629498781297132464076068612798407940914214625862910960993662359936178513775244889953258536983350035695011730123809690218131555911075000148640579881438506170482362816250392742720159155981065021722190989210954288980701810715555631533825970414908565223085011034095093638829307837095585218667941317982186752249832553679686338577548301467296616593695733027713004322218218630356195707179633801509574854040019629936325353296233229865782447840063053793045368342888341576530474182579602885636890706997496859143657090246690424842001051168565214225546970044339370547814338343897925181010129039947989437822422726314036362844238372207712434587996335023899642665544924759092947070792754351674309579233813352706751054845626652398809799608157976893373399783986853420326098828855347726335871082200193430667000426833471381795721964402480031601728950296250389160644653587271708156390454866072404062529150465307961732230536026149774816136888318440226736124866294736220808197555467983868142456337467769461943071371360871358334591677923067475521857541117208537128485418622242130699781225603344498694470496185652007079475809078335935011087485992123621711760720170814766015142354648100545850710047540004887586397027802359795331296180669092426798039633263549534793632584121374113556811963810195042572502231149267813296207573823967525921855672961963721874200295783983351640651055721782949902196812786127988711457636154994763800150537128235041064019870776308225798211598478335134226816017787169351838774032580836597542748621100919021797818100659201843895041518951066116179504170936464851286196716432178015089678982305660275396649070208313190158761514501286077689848390673536051548194856729388967725307829022603619579339516155679053669822720953289194215421683505759357128128139837108986704101608487578743745809810059748158583055619674635725313961409890512629423417962292153069568356375704207098843703094417652732971115688788642431953352675557418191919232158547244726013883333370716740325482853440810490166245908300530435181235233524070543857723824637422530614951178701971195387051948322018953563065173124653575906522594065690084949768457327517049106311682954612337004162500610818859623425450171038138135235647529919975928108781198498308274810714248521211477559201809269400584307825511580165015034187679548731767307978057652558786855494495044607491409234151686031700640798757542822979862245260346973225982690308861297776670404052729091010225126677644281028530500755105949509160731988901694777274749782385028257112012045904995792355730388682941953313805264290400796508197177823071807143545845997586598250306655676616279039319521493531349192218974224894208815575139900909258607803702895754011779567015547381157463019729086562648870347875972305651751892682580985273413172100440412377307958461863869065988055671652408154180152766987230316400989493515451927919763911088545150493212670554018674691029178069343252887689637972632628390704225463172318514331669635337769062188921976576475236094104774709012615783450099917941366298006776301489346049062579867088888704200416598144623577750555740875311033782241118121885672441462932982230847049515490324789990788644123843685060926251477922495973800211853960835699279755371607499008513875472211997525310975475644827791217077776636152197631925839547802637894945450973032273057396440351515756554033191273828494965549512679551913156056169156191635981287980894735262516938420144288511915461134601466269044616866618231950551432000707140253337945546103559736806070510431433742484880524334671206136731046051065330413637321802909140797434212152746335790272299391406798420605292036795121141275582991474286297983788340023065177167260766439227613841021538174692752604126688496693722941218817649602692413071739435224769946206974654776477561422737297729609999150078401957652716746333539870094480123770671068269527851881849198201789490179322837211636547614565982441371740112035337421598428845463260567827790436836012849288729155591296183124702478139623585653437027916193784482850221473231416914583442388118651428763534753858190146852742468422438831822436364218487584545061319823067897327646553845205526657015208422383313509831786006862935414023173105781302988212496016541334341319213976562052288283142792649209094058819841376080192589619938031187409089797592061164219552455985939792430868893648731105423112733294701514835662785781277811111413201301713445291054197839823075210432722639110077443511440292452776497803487061713480931009007321886574198050844662031523714749214576373848062289143641974656252810777028498604936402925941397740207691511274478255455330347398914531075549774858658943154745873702390058904626827629967883988873713357143325543815538951879535216777182466767897203538155190412889616623924923834942432599944694529071527745661842307805043186145936420763244509682103361558667415969218895790190635722225149450839722188971525778354480552178531408283507328960486624530520961837063021576334064014298855565004529870055378986642945090487829377409610105467486167540803957357604077267699584943505791594883764857973792648598614657461003147701737051151679909469499780265196863540480554567175205432214919812346767886850643043242626523159794385205497156764538472681773117617729109001049846896193040723269673756106240972156887924658340012544133436248685361202276149728025672330827416090254448337549727548473186892564717896453249286388124682992062070059081138610808406711743855644041436850270236304652504017877752861821300928628593085799681176690880834485404408995101980945240389268592334372906627487833075990708299710799665121223548365912255898033247961677944705316775251658465819396247168520709336099145140295235921804982836160518787188512186712376033377479891345739410749594275726645363343141183458218093672268471749315533492809599556171314917844830516098067129527094185698835044957588525167503674122913243008418688580703173173330684657489987849888353769901434566514523455054355345863935284984009482936530524767258405326670356150318959082172013938941713949418627356186811444915892984192209325631673645500608869840064271410781002441780887671644510896326343992695824285516740548443243672131228278968406413289659779935858120172668844307693646901582701653114880695007168608800523893934553128185468720951661993902422071349030736199675433407337510380159857046326637216585024622928242705530290987686003789205192421707835597356248068045858335617368632745273409099504735894574923503161221104861465972102807417792714089331703888098679435611160773247321426041223274071062420509102234499048819512859079086179795117789638949207914679341115940103296730727006013903182142711025741273141911528093387664366579273815315501251555101247065420705308032100732455197448213900690373976644387048526542329896766169668343192931244818615502727770816315979870041978861774093349743422346664909416166931016477619222939256584989739250263320963073371962237116769314854820824944357615360356790816500952297468037290031440660702615015103406384061855050281242872282008694676571098405295118426450061175954236426915147975659583733904705797608863752181552855388074050997802642678593561716099017935319856311304386961058151196760971984376958350930601854846362625831001294897069637909502321969587457584277416009632306762279847751614832310735317597109682595714978742296910495472077811397149499687228402719782201845217104218135533922826134392831958733845255221618695041029565030211560376667989037754094431503425966864157249556581052410150134035700799067559503872399348918503454650551683971611562765440689670205959921268583940674851817167457197757990910264873268822659483450489032291383093885251352382429982099203633729529516923281466929857126893582347634006729218115052930222378479820514625386697476154066442402575429505822313373877346029254041154515495577692146449223375626530076245185003931863300920192221625720798031035598739826388811318818580576013393852237756770316052636978993667514130438318068446120863655409481269686408264516985068924343324118620180658290369538150457659136378732774118427986445514923859789151179515441537163834632179564171413635854637482915825928762978710573871588364832820578233264691903950731860366441707113748558692652797534400444558700874698890243659473531491808182592033634762610051727395061703243847792655178287328097684277278116986087359427631886781418456808336097756799417951172443692154371594973038924003407133016345571034548531046936416828146929382590417679056418813544774264534391302478267243092593309737200944121400413631502941395004676503324612221257304256181229700619291648647222360720488517139898376871743472199768668069686280377507853306253572043443955829011890699302321943999463787392331590085820283058599771688477514660203027015343759869402371849391621369194748747621287037501624281720369954269027666227574007350267759508409477156710373700374795609086585446903183636869701921495455284351344151339252264882386770832069113690754095981361157721425310188643446340970743453042460815294223692412815976852502295939702709576172625543742212765077056223861218836541126549467268150540111973229708440030876057147513368985075366236557978511109194186967035511838787268348765131531911203144525405978407242701735065119413412241414240058046595557211446094409757328071963729110307392177913070339348963697210800203173725884550670592152079031230758378315229995067112805828776552543463950128781689197019081462986379613944014675626828266374637054483660408120471771205303405467787050070951051192803397915830062755960658475869654203953146898492534901829634498678303272123249417745706666608478929479572901289613635497158234710375276526794945997440981380559703456718853712215558273052029566185372619995448242286647812130675067633290686676618845117253675796938807907566206879339504292168667635947661963642869849758145427705449714027315722672351965541565818108846719263572296280797362107650179962367985608736053384435698086434209031397953511687209799934415814691449739668563382918610096713621295631233662364125964208627149202866917885339859353012456444657707679508178260964849862035861181063480054895338133124294711310640097053452422716705614005459342420745220139697714454020484950865171145423571013354588807712763979573260268941696696503872574951921121104456484334351182636754726278682399909567931160145640288515177014008106106297000827674235793439629661005045563363486190826283807052685948871783970483726052606852633132786217701649809468848522737764223360047421090557198307600910787965798961291781000601096579170174553939452407708271150907826614921389478844717172729584517638496006724534605812840810090473879029722455116126358673997490073819559556344419796480856698197524862544288597156214443150473973297398241300420367150052584938851112747431243737321206492015470312462664638170813260417701370114274423706390327138402493990685128441792405124373816154575017495828108554272843744633028226634253261280723006635313399937158833016586725842153128645429529833488514989832787413586343378945706429904079643165613014429138901029693109793248872656295589623434963857861334792537001997059806276982147451942440617041065507576775746575966977014484186295773909847469939623868721549242898695736962499427491778840415330740337001946037334326206450608008737935373072838900205404129993370371059985489726568836588762715349510544755585805955943580740412513972872152287205229372895471341682799145075268371986621973424591882583847938554854816428978767120824816205979147265734173841281509233808753126447311892324642519157433802339006930647419181944898167299788936495997126098801148863246439134949093572662756613712239356792569038355880233248822100511961505742023233316039224154068932513743279198403928669309111012997156793677686891185148110833183534978965335793185170348612830193126196577227028334377152747048119092935736604491121941864764072043498271054545854703537321632637798208009810005368911976216168490942390240571163108909444246654738690651699595253574836602183000676467332290861891211572543979465015076977885123223263767109750503245464517957327316194487784487425463220513040955486788914001235692051602177206055198830094419571896749112795021897508976595331360856721583356137007240811724137329859213093790964436671046757685493064057215856045035353623856023939890268113731314866524872258652772022375699896178665961249800541829493281197543888877906475593280515636867532748905835027950210365083066520125759201849424973073722168898826208295803150196261289693421735266758109038420279970077783266544268173715303895948411374427457927474888413765973514958172593410112500476792478682726563741647258800156442751031600050623943890883695885393239813940836172471069958320508461012937705538722665009150364063937409673259608831704711441901018854852157549787698372747785821434096958678609042214928002927307278429048471551949751992607356675351278359516565559417845931736447689019126858303714639331144763656912113866105240968616112879471226203737299615419095150019170148641175407336609810460288234278489488492136547323772250243763701582867128829683481977780238688211679021013908518664595349450283702874070958045419023321628256253889723445138937926006440037831319725042823794732788906372482306434875656023007825523739048220588414774347055229512405879501886038453829404124296591856552457332144607937077195536324108302786728581394734583383298508880315479726615758587909601946229782345988022394208836044119314805236307546946792616261538267785693937327259841214729257865230029548819888678391008587922811758776945245014534967863110179363465342656350402568972718142157890843894351423370159132326517558290097581098532496587226893467060123310550338519382252720784582738223962209927106631726233298403144224110711311966121150280194467219767782854560820824971764283913376374537027865728765356347419073234882879823635745129734860794375569921916042765340309706165253338209116482945874905167517679288882169617891240043216203881634513844630042139131282906512729309466759260952182870160676465580250586684202775981944361345381041964252199767133385211512273641814909514513076849321519422399259194980542789766563276411521661446420107854325283718157653059711496522848016688393046592122921983331808879038899076208077869036332577073576616608250616461889857993658559269551317931319341145259773480841863438613285422258981941825923950382374484142347987798568174042951394752766266517620311595726200833819311897448018893608820356818964347164023554027386114687790874324880608807956428055643065058473535676608076541736810602744629971990628431543575770088394403120706924979070753390797786799023437044792770708865505046334391370599880777304708095681271547482719878271527913781789949987718381030572626434851151109846717263695663523114067096934775581364540771679265150848222266121056008198102386312057568989791593919388129649986392047508637810537160871260503011103941385805060406842831171762275079591732468305679519955879171999399608697107099809717258974812247610868549285784391789932975200287424846513903763992331197396764302168552127500537831665416262415217776993113170865966555007573090115583676216678347305088218093011980775088707677449613456185682987774859977250947099387332486998675725765353982282551597940113455924171415918352107874945609025778328524250685282427377398314454513474920478640207028312877583754824258533946572523145823597969049394042636919795797176195147570047120474997525480709651410967592279229198508139230637999528549630936763593509477783185592390793095982258679981294102383559085436822004225565103183693610842029811392341808083533396554137361839170798800342749274222568244164383449296919508216114519400948897581389602147342367040307726204110357569829303080917245866290992353976587543727513689540787277316035282507005011085334281045921692125001043437167802936492531180802015878938690617965314706798181396332276874457189701866164622130562579800786515737595593501971928254544592081001640667980002246523522650860941185463786125841681694111573828165441242504643152224692717259697888651393116786775849625451298364189329006243400382914664257892164874942166143635038812735939195672929849615016687737500954659488038645160244476501695325572863904682450073577174655154577970606906054388647218425205653937346703396138802711394429340673661038672147273749246721610710906873260992103477163833403726380234175428688983560351599987738980653716871455359938525753655824263138289103880133239656572222149184006931895318292104145528339051152536241165737995130129599951019242977233949956364962403709188422410527990367822214211761430862661384408578534715568580754710783281585567667785283308256599810042331922944274964699195170084786712921369033634625624878159300161499289443418863296022560254474142990494732763172286985001683745723062479029903628402339345751123189514005108656807567320692930493777268100230704147360300809790342730656087882815553418182242042587430382444983580804258784166308762391682378658934937690726772482694692287007322213379359977070626071284859881694546952894593970396265028910750072386125971887665919283821427673265213397042873056188387329179249470075220399753934962744627926784409185341807679363109927769218007849625210275218981769247581709371199630071081778734062568931883111549300313160478569764765440171314609445849407331981115282410983038859375553884536541764937234534187048283001650358775096325904412114044347442354303817213239093825271665846945053510594287586039868438527214141139705231891945023809541637144712028026477954341200024726247232650602262507955818629793823623392682502289989765761709270321952797600830833392996248858416446462111444041545942410341619448943915370036897939260837041969397061647682437721373812147147229564302575637976684638328921894874046050929626495106688893296384506390594616484428846860646073769912318885144739960047995741462241749233612767704099738894588377906919009639374584705502108729068643160088579760613021877500072438142889030679551541980927939770985610568194843085193686269904023783795761760449764731239314783105218394776114326304993818812765263737791870112301750683387250069808260177535659091439129776059893345194546991082791958318848138143646431227195888246124890340468533732077472810178797193115620998705266901310350650303066940056469040262249667911693672698739376549549413150903283258907970902860512680166692425508007679456251837034655174478469159249646359334086911324194252385739998231968683768738154005878733338816626073271556766694773293997749764936053602750751755667751378662655740110544477566661989510296516251293335349269642319919189742088698235823297498349223503492915915943274127087816409066650357707848970516218741581956006006223874780599437098826465233406426447927878127318016962857412090438889008899482936916233728099724315414067773893745867906742291221918783892554101385890691488292487165931293748786127457331774114445571474277249584152284257599108586076859191341976842154909404582479586813800726170229275047950025824710198587040545565452783048080963278916536091801693655640392792187876212895574797110080120952460400992961591953721547361984600004927953857695532723707120180078986241126018018761251936925254100954696110424861476394575308311318554434260992597551035411313050931541549128842615143945640736106663376901331083735549156054391188573763493043110060691959266204377697831624695334346004501937646001177620344361166640721881879122119298741123171627582800767388375932967773479358048875813780706855718724322170659249921488285228895872960505080094929572024353432808694015782769630659238562030911531382898614036733173053880232531226712236291492506844362857268666052559365217396150466157768394223371856396040973043444761590944381316356727029685750048292175442689915279329350946428026513886635988534487220766680881225515103489978465666630250245345300514829259925861171859848399631755249645588069864576205320554692655998028707740560140093707357169018328483117614609709984943305155837356847300605534158683212365834734127513520865064628475242182270080658497948939980367177108891820333459020752573278299756174587544669487000155327538766070335904909569229651771800535472996066289121988862177789841940378379441901902861394233347760610810493035239358428972076742271383309143399092214623486423166877130735345462761162013746166632365487879386270032036407076344353334891723456770239681601201046978156543167047718342949344692024382786749110476291940917492838325248101686527352515494422613275955761359325711329101045564897866919127250457691943766394021110888303332722731160279279212341109758145832403664107248991175492348979422470380045817245641470795413896561567299028348279978493489082673784226387442344700479317097737108649009080509838903397737733687452980841034572648288831822187745630345400973109430129493822698745813667715039238013997642904119658204019524848843772269954289503846242413933885012958555225503941544806749997067913459245792828150526809407227373449924740243130301498554561702607280735938102070684161159298372517085117812648634343216780991198150878421706601039524597409742424384543391187050530211388955925376433355829162480407852671108055875804479125136524299196096384507069981519076821900984609249707712763098880869258698932393588403067331308541231480334841297981350638526992922857803139152879940817850319875130074014690721229149069623326131696117729427880241795133844685131639354925924320092863636456321626375826260066402548000509799572738815714148529112119188559721352472693531495458319277499768211910222403899184791881439028725368950297159708844033019736945485663148930269129247218561805409857742848823345419106668485282148669991134913290218820200887072637735760078111431541022343006624795047086563084304681478386161863207791075085243146693909896218368257125063178126981819522772375250196375801284824404502084552321378654507108646361441189453054304183677992670697442741482637883018958485481824863598038339123460881809912187316921630690981011964771244614553087212037020121260467153853641698987016923931022702959081325243483510970284565467481733353673716057700692009535626110878348230748640077174809068571277486542373184637179928913075459458492173676363169347592280560366480449109191935341163457856110779147262282017121646659067023229006385115137214375742564046135304360271319562433932261708293130289629586602682285979715232656334792571544665623955565198415484574308596405246263578360845361589951731011590526868626399184788081578441726491967861385209397930875179853179672330562786821398523126184731543601013838630355356081439641047510783258418227200480338823159741907688835285831556883654605171982661814926613518166121109171077433156156991594803454698762137238749975552952473539435914591750294495617225101418968908378708340454632966374604669367584212452573468028112620610483475053571654770084566324733638308159808140513060399664185950879682098925122882863935108636693963111039163391948540989898354003361852769510409126467587441957341364550164993057953836493596707605284503932767929558946601719533010903202526871787901329508934582170573552129952819838900332499867688639004370258997009039908137799994917303865135642065256787383388179493085652766850327353565974214392625967791304963456851802218276995425297152792720098713910687079447705531373991793389711846366466197334453909596306651193490436699918192978461964514018810021206169710290755239407768326297891864393018589862389511271059129415375581846167870785750787492434213056862260964894187362209691788842443444189540105308081288857601431924681824943560015315751283987647435663386313288691263649357326245199078966788235810295958766728521471559324666103930528037690711275050281119137526937555432654153762011840468781535137303184230865606452850493178544307867077530117225585018054403232759355141440113752942270944584286279507447323740464133152775774040551161888358832394497509477744385740891845829303054299946788497633070216625805248212301734211748987593608187134365780940128701532834583315920906727410115396217513602764519737324674690243341575611997198939927131063553919030818195489569170060585236203543153961875972555171031246299436197305445491146534021751567720865997631360516124190706994465004288138421814879547345002150162833909325849815777533350540959926048339834516612044160887913623344691112810861513129555251655680096285944853870401035964205084560438873834677410609342988072753600319502850843575405257702834244461148536141958505867486350094473952266223663337252990393288097232880529560565195508650429552145109793726723464837641404321538993798369838309756430568489220776708757004199386095781036427559974750805249457779048522479645197117679176829686606263589068945345325031824943809941910444251704790009880406640990548930623462033365484835557511620626380496382034668672811310855016888037015989552484070527897484032786598613864534330842807125011753289945233403000228177035799600617250852861376493337596342993551259265522488573484585887184638000453981415445398418843852628353968665731698160533022591141218162038805649858730761520694235315107901373613014912671274529938707342758419203760863047913794224045933095843452350929783271892634799692046383309219124588289773138016114278267184692423839833598944298105619726313796059418680471296463579573898125453905465835759854292252505711601042444062173643334320479905020846091051413375573046406320450182829988788571286485516901605902882040656297074368289547944152905971285993869264235281960664768931985476456306113247045126175984839568463214783172383589337338702423459549983385121308367686298593955968603668873301114754666679410506817283472373675098663093891414770163599518687326678458330141389928066367810363568832648779627902909559186220333889678406824496686673424258070625924488967881601648534501220806359352011261522258028508364025046421320078167916101960002815458474755524814664212084600216987005995524327996137904220506710809680424532681098222942974788301963839893731920945698999314388841721118184506299371302092537550335896658556924875069407801333828865792323212512478896058624590753270346564273669546401773602710357744228580255599415847423593528946330631148166836018099865377558640851395005347435645468990836411526950593097847837527769005876352901969056674816915819172497324066910299924647528498921280872665747638402478273619670062112172447519070699570582257153935555971976230859910518181662692413468215997558982746006986989406589974175903262426885802357019338046208748897136852873170938760141273803755566355813894523360309367711181181386197545236794005247578922574865081605620254699779622518287399532914065126478801662988562759335254567893592504357061112349190072367547107171857009107476483874343645756326655212951326455836643149304637642911823530788218506870368128531969394782308178877852955252267136743731990324002579755723244291817232959702769166674253849050247008488814301395195253601800156998366866601094980602738526684848725396737718709296076181829504468710385756368528402151648642984831296291157334917281098919192100160619725201198549906464878156498604488960922180498939176325367184359381404618092301920126195028176851234718292407806435478354024420509007564003926861848241663766482175696307117390821764109595126351267495931153904491352615490730351613199071372363142219198709190605186363852348091008740659292328219711034519214781152752346783148343096436581073920784003236590009693811733266123600175936087623302755278658287101367099809779450251668200576863498399407537570631316411406166233611439681458695326833873897172477317633979149276713715366541617663598638230698133130404104055286438960775855155132373478410793637903728074049822078763940994415395080373348591952019195363631253423159336608312542389380620693478515648303733445656031896353961313665681755358196528554216094164790806727289754202883196588407011061096928630286874398149687729543526377137936747684510314116887544800172908099302883035632396590236954058533288507276965947567601860799795062666921891137261356668611100498931893944512944779141036915204610705972784722352578069238430792197794163811923819673031095131356207795933805951546312487082948800728197162107091224847628867766082149408410451773043172271622260222004696589224520592228854901713274095497864619404882772093800981466588992325761340665485590294287132299984601293280775664694798248994698896060859174844209506504565823022189981907028206524980031265403265311717265547489925630020091863442889671268299285891697019202309509916374486947168057281927272905194088309044411456095166182171899073583278869936962778725046376897644903702845625676078258190424110008953463171344315727054620195573440569839494042129484113342700934238326622951650424837259906499965476870339987858889683552648372395372753164776766028874528257064826019316978781610976703460960479150486536966517845606594928274082496223648737419032610479136632411311193734182937096124815704563268633013646973524942779958799102361828917613322367074156708378259059164751631195963115992203508952535014483009784205993385102531283275062003594520738065053039621405393393169974184917353075145053732751325497306542571723663113380175444743580233423988718289675283412761134473091122279344452418796555930463046883645345633245809317082121750294635267448792966890238016731281100554098785732940149476284746394769644801342474118449667261173670523397846926877173181193355747171293173108502736461517396205972395185886316942355236574690412280235469313433339792871486808382753689313719304729459807058001407741036424684597514967671979200513695035602243225449022121516717579866347083942523176508677929279408424372685286025252538644561822441906753893084061382414877300047724360261272638253997130320073499846284207544750891477614235268808872790589970961774085044659293683280455364155847695364222050084164665538654494973383541611126899208566266723753565805932680405596438582632174862988155619066345464462091978859450005553632012703027710381015162132055996415345649696335141353077603481573282759978030084544212942192434758813867518414202400300012916519820290491076625925118204989812397108080433636687278305926198647949735483923092367670787146724711141012359997703370529641122793068108638005221921048192975363265915953987504477958198531510150345600782272173868635865284867303695583526036902943232791207816902954163680956654441758491689856244323966342188608014568402529476064289139788639493959141701534816430855252935130876527360768254660441639467083401834241164730666497347252012433539021640889814785297685050853506873582300506151021550178411682996851714300165870753083645416558498427661180796373032867328406157115122251489567360198398908324620144359505432079228914260239834637822217315474821413763912279044359852043988999784130582456822561972422848688651044437005301087154929319495327201432357421495268831003799286768983532374049131502812004830572498924467152726853877460722738305202017126102646783524202918462364577836086855089301398630478731033994502230171174458020100899353630831154726833111681947801611381811175613235915340534375327473444834514150179804863067156522628273438097553089615578024741092536416685462246587847274059000372072269516848139554546941541294445854826080426695210531531735292486575047810248799084481196477071612410413208148730169197398921188101426785505036392430646718998265736961946005178552488428974726237722551166776870395759865768951294774484225160085013036171014920084445414526911993081599559910036336759131368617627945773829863082066153204224427190103209017791288218581090652759724470901562143207306518358680370156167229823906839454022407441100368419327675535175637689319041955397405035069014338255074420296252992822591010369285944820543889629853276299275724188603888446997188221654050876935772817649675311331565648416328288252724494910184125328313939648827134436589320891705827774713454819112410843860283054869251789335842125276679754750271429684764421525535210954905433601614982918048640572382428510070785294161183293683730430314717317183167210378515749327734738566600956654198472767738870853670087555967401853298700904658950125082118919290138295135849676013228074278865122000675364593034740625612484341788062168701963168245415365550077923223720579948638236943467612635489384860515645866087273606226222205051095681427298172286105442977460159409076344868270175470574080078222609631482889639023632358829233569411378556026083088938741376316018132878385408819206234722756762082383651263240844641557924718890820085089203602978176152853757390734740077503373082611094561607712120512509881409429118527706412902376373255194946731790618336339968707121382930862780317795887244297791237239037988958498918948540703609820892319554265317447538831848981429302372286711335148445038094064222435208686143420959086305438403157798690114166890151143542037894740057239993328872941027561652982081546997413671369176668158783869314095589168462410243246514561368294262964211783274397367782745173734320776811590979807338024174946434605579301015707901990516474737506785231593845465489304827446808305036799439036854152245081834954586349700404899963162502070444052653420717466930659032297740524603322336720730202284261875723323705095358489702010856065142463515302498191232434211978211217355394039792140008915597072792951735385842474471674110817411711617962532582683339162833758433670994418578507074347846577576991264148988597135532215555107479916290345740617082415684891663851315774688668014713815907531305061517047266921796377867135164118885159339076206080701889809563566817334829259086824540722614808096213101760585022542253205650571712867244200651602023041428934002376435519913443725028975551584937689199060832175148016064907439318047838250934945123092670052851272535510531123675594908254143249767230230421856977447812426149231330183178023885906922363077799357077746896570470816393681573217890693650375549694506458601899257165637410881752148685045601018390633607884311840557250305427248400697423170702202039531400936252922805961915108509586835598508201293766777793428939434932531446430388208768821594843576053411419164921586203528228349013478955342966573444557929140854065644153903319308644929107231443548636328962344855943486770436932210735394870900920348949788348391165714213506889242003598258314234554826312148294953147719673943935057790628339656080221668794324682288844014490727234364055653734508372345223423834209667132354053109083153323245773544854648366234382785311109106972863321463588893588186877001288574683646925929731174208750902042900297061600538533139593288219963079328354164285814864637236131450091540755702204545466693111379279747267946394852108683286282394040469818545689785627005971877712182420458012156022115443682333752735459641180757627900599635522774733193864650817336743340497971177677964119163246031228092900966780173674914307039656967045833654570835920734983309847371193912119171147838435911857245468666158149638360675875071153642085188251929205552281295748294395799159255469587950486824792687869687005183323506734815317273196144716008470730191520734325922621981794526005643348682561850691799641793531476210783262886055903265866662128828754838793155599968829599118723691813463527705116284695872183524731756034748906300350447864210852673968967798937071860141805327417974841902454219346727396818071241711440056777183435279458742940377516523049506271675492333335632723439630249484981802816770926900378830781841567449604340390039764806937935813020635197668773965954659246471629312975042133659603428148620597450627288024798376428245873712982285794928029816327303890646399598649170869032012864218989470616387305292612630659326145685239251019780848649334300378388536778410008268163415408961044541249012123447531547239541055429940433930976362006373660063643220124412136884310159261892918865554311361091069121687688016769004967475279465373598499913211020654679967881079417646335349309861270911351733773802854683918145683855071503181845705791400282005262960046423389027962319825385818726506405873095406066672256949049247516898136480181501125357953771201159767364802418809857974935017624994917996174398889758370020142454536073453902845984943993640302015473186783891266229487379178526795576717373199387102115730240773834223383982575623753669659734960004683698651950008977133790054602247836284132767757932283879235409266459798836498190078067768473616692381340651892523698166689519841382372551424141647588915335170301856182256912355897622493030270861696841074577276309429635373042250284231182710818743621307903420518405632432132270569491161400751124319156355415138610011060695903226822784099456263702028732392546366796273344128692607528715141611955593732835001796149329962076493601055666601843818839262813515627022761669641531807539135064419700252426867941235649188690558406553963897492921027915900014838172067091124682805056228076812372176808974895074036891674813937622507374864684506477926219212526451125962077984357728738469117220362860838641090381932221048094825471395845621770024307503477405879824911437559729520990326953029955766888432785849158671392531351861489270321512278221332236663896472723489043611769125632337570968131503077516118775157502024258633759904965088188533769226984564234522368125436660659484037057757320151002088057019712994210412719461311476996986129771917543129463986349392159284749608642348651029926101640127009964818995279211241407618701758418355396008550715265470721621311154794302215133851741624912903941187268933292485842870093755010944521424954384565364468021923297357098769808560459361671569655328431761129932756193831231191324475395168839488407346575201082225252158594587029956000794341792929639018356992568088648238649062768438211547752124599548398783552679356355557230617265402344841009443400898512581790898944560856036983998280349369295003194432637963610309661424899370782420488981007764899359674618744995872833409366607625429446030566620377491292778595406292511306547825715415515760004626778370262638975030994593611013322073981937365404412537011425190231178275181065205377730365324483969485365294777136934163915994010848033887371099682476165344707195039254059269635543337341859874320107788209265207329963916109248461890293925213534217017870921828895071098176460164703176559914701463719800058718658424547954258750065316759223104826226744108855063557389266805651306477031795474985825361832552555983094649163541425498802665332840939522527863287408575288788831118660670058891893964040843163941325391860128617838003796879793188297310597642003077063918037518680226809309336794812297741823515762827340787488593333438963087644408647428699403432950697447652593691387162036742190968436309832157108455697842983934013739238375540721019303309724200027138230170364379600333688723910053718562881233096429153592200146610866879030127199944613176849370904568127698415848346869224342518893970046879600492779614803304007876895434915539799190156768276940226989167383835051904957630432728935006228989747796648252047017366473323341888384349205032422576165141467230439854743383481713183359636572880741760402005020336647595771064138932167914455931404485280489891356109695801398178320460112627575655840569331715468836205668199778455901942512568990066679581739519476287577138659185219936581671167985030732850758306422462850001868580110871188446175374748226198750722363744355937936031512924016959015219184870612887551682425436571417833532400286639158199875863756984933072011118435325727281070757347303868357441759358562248469950213936787699528839560665274356763533285838412745526263868012386868334819506346211488177603883562544736444907844780398101874346272560133712760580633779680554411930234792236206800023701473769321089296372194492939316727728866273001687782964408969242835598096655281743239529417669765515033194038892030670106791764283745079186602181251107906628358721639172432840055584347782102215787015041216845981040774715566470082724725925479032774705789608486226017718302913822720583912322882122873520676237289803094390327415832920597524611491305423547819736739846445239434565451049371681587066407764357772778757203769678320848499861787589580674531695884196921401463618584917537168067890452204451026395406468071072962664417787434272423718889528233776835514270219187352610080290277488735957993954827487685874482463276355552947970937444379533287111082060828710348726166900940806405469900211123735399188143683993290955062857629011115977029378833353988327390159250900625875655101071800749264167974598523572135267872558322422525594352365987182925562252760865760494507839004070415299820821474872484053434207365835389959700412727703233513076693840000905906171214803906681649211694997131642570258371090054979378842405323761298748023236167770508962051580963133381276553709330984103125673126823952056901180191588142216215729183487306685090941259729845685380536493268695148538500948931116790358987356378572928238254202089806543998848377039541677341209813886467728284690241369467626353609775680149483451406537922998089945960849256881708496367633666602327652171558769921573239335483105442079706439329946490199020608042746343461763964615065141220035636195156080146573333194841491693580637609438867843666976581752613921733606075912225838178487735806546420785443745566433753125556910417339221149820195025716166793764091576275527982691797404056422450220411653512495410056636481493117510965634389508122463181175593268343998208187138422690686116271555612696688465446596606406668265088579435544648407298447034693921089320066990460973401118937985881271696067684649158551439037540147306285270279993507393805330095473414919115498558556013218903602545993975515240216787645467162971489189773003233556544626064977395717098249068365337597489567073819424018065535185528941079937423397020585520523389991124936966711563833693372507789092888965836923366857053813158614654406034053555348693567035989811758282592752581781211337469041254440084831818424225964207807408565762542003072889620749700642214996465383666528966029206829083391752796337971761979204624151387911455400508864746544322929260035745372616859561726813502931519380953666402635559315929963240938163806102615529618496640530187139095039981142301357243638704600148773727724002167415677422017369581920862901390749925048182934290090639700657917186513352485007231131128324124040893751648747290596071707925920272207160332988681178485061129776769559480248836315774393049309033174286063949888716146269443675956881866780573488248361399093222192973971856419383249634805216834012232882327361091333094282613501058717076034690740592083233202447620098297863650098549682939075029502437348457933091490475133883588171038738305498467533844482573372276747138585942033597995925301462581073139756700699446072924402381068597325501691645951663827925464256225779188621846160721049279676398741168906491978322649675999432220645179525082673773316549390659736811653384737654585673919985619015564075507608745011070626009214354129975154725336941524458991189728009583957959380977352109410835692164081308173209540584899973748886290684554157312106764045365028213055012674627014358812465424827143371018491646100110417870948349682354852875936091203912326348132780084659800209113726838955948034056950524823529829375330879040065982896720514158380242162249880574615501602881039346856892023885609678486439554681201949494990421472843806267532762247776029258081096202771999173362099824775559475162472086012966072595921174280999873971774502013087929314974895682446035242063678621593523792282691807875460109151014228821958176484302759503614583186843098753500147547939206289156601483352390112884056768287981718434654763557088903933723847386938127230930547083605520187287624119792389101286532193846821696489166519949786594835653002318586924669376651480367286282472524372926139088286035301325516112767640487918437692238212751993111287388544108341751656461913655095941313615527137797951478627466692941454368540955630567002589024447397884675766856908980455422947239177286173027704955393258143960347668868967657035513752212318264068025898892152718694347898963849807129971047459106518925686417559936060147500416252752940616679084308743366603712006712855413708101387506881379090367564688036519779009097984447522371787861044038934294702905617117035332249246008472743963939937216980095014007880359101895823684928284433043196791127017759938038304978110589774646691875574016728393809034469397053271054224942352539266214030793285408223451891937732577147865848071386120701721469751152756843496985032976783234981116001542856278802119390355550126323123655764238369635125035998296670674096822033845595834556818373782664218715338207928775049364210769156608325018837798700174734146534183116916971038721098557677453374431351864022525350900490693752795504978553612314118825380552433864373089997719802244868714448407444786349442536606899894167867017264149737781473628678480024839481437768251299899387812146567190021217330582888980069251050469342172021902554974133863469619033113698807753574728060656337489393065723157028485324921311368075321404599083146018395131143213438829920082109814925449042038413780554054666213642481730883109671727520345066996718584422688962927039605986185877252979128754536295684638590821298302335860561376691633113229003011999450644425538407437591395978735489622152486433035013477956816489857066831188885808076406305177302085073693934991414489364184569422184961081839587030816831173509101183283812872834188899397088878949263917138238713969613308122555471345161004085546584057968879882084042642446129178687080841643228744348795106401602832747067227473053147127549053613038703426957730960321792216488361932464810605964118411649376086963374816474859500063609676370663990075102512446336228488977620122483705723073788446837251589660429796209674773614192331648358383141811351281693045346273508326323945512154717574648610027546515113309406341984895403675139368381826071182040857963071438925513179902134972945772046782109766873868660347659339032579680312523326249218721545212843570501358357198749176829687915286393327349673149134670260051746819748546996566615137647401724472766695672346596148533141339828427833917743087627295853920040852297344528963977554029557365213348538337456916707523055911735300766652319109979378000780557056220688019682416056721649405512674253634295566871516563008549144398071199144402367818092196956389117834662829863539940684705023500175107176093190158803750743197286840526171520254533027366038056159595314042900861628737877634189191353606193403803277826555222932515607222127032428138390694673781083768419117127980805993592525554937930465026722322923002086879405334648109927627207349657400253901778549128447619932061609568737638163612969616047264841535988841527953526761828985966199734761277077353197415636267700897123296630435919141850714767994318827416008261461430319501186561990665993458229731506664302215319379954700394440176023547885043870133966496686202404795829342070009119148895094274963224745905750996057725207659932528349664204743579980537922295600113465614789008810276669625193994090490383618452084995967337396386674770498951876886458660239862199755253602399274659606360061480095226651981984368589635406357286151664421288514511172986586450594650024686897096600217057024340762377722545143533842084655805233328514622466040192236003146474307694305395351783842606152762460205730000026533757327656480176256673649018182009427401856434024324861174640686893827737395351672177304871461075112437258848108725780529404335499238368205866474848996681863961144078029756337727512393713424069917407769349624741965762309490610081567933677667551352239392464796895150987414250060281853748585473843214593408116881836338019470395706882802294510933761617536180234680269515699563639441023515485682042214015823134498951034027210559707626429347176912513675439529948784533143449779005859324880681469920901577398632053220786799537754273613621702313409969153721177513012808468964525757392918891326398994101079562343598522287119865208678613605990538167680108501735345604165970842136839201542463615013886218295470798601074678745890282012733357427098493248597836642374621599216799230639693110971942432748970807613628777096556777427205831923724063905096621978034524866747863776588627199720963101721948758290136118200029747665987738373442183440015568883607507461228834992535393024799357280523724922390815456648738866129480459764190561734960355839589077075459550330897902428003140794568872999212045540122093092401521292614684127440731810452302609256649335738424816615080874176028916698615872569055820595629359223776970577042899130740692576612469140365704091492108763982490710347414167884634768144523600785431173480109278873751334822094170692777328677005129333054800708431961784729527636375477593348297893093555321340938666120804938930083586262273387759079216348482976217696727183032495382166121237104405369576437920049282888399476410880602733007787478012984461766121767113313059294514750982494229728151650728369462137989768460685091057001809415537999656730213318506988442515790049851544451395459571733988308426173517967280043427988321364481790639685951143502885349252130412397701168597119741368035799700640422552736122606587832793262621593918451491800467784130074767571562293916186733535918667669613994521568415257505637359888155910712528020259311491064692179947533146941852897647181783036317584763749264402084738999073578227754003374016918986161657998222818688972405019975554782472433182141639491781984765280858281579719374439315638236977040328354385901513335986012128348067994731194044088409820722064884109484168410378669949806108160062551474006635788687709369103397748344615392173031825548252573862737610487843591992771629423401768408694750621709217920580471474695216387601413426559273880658961609779764105507361291545265949285642926900144166312673128730064410335135743604279321136615127651357324268930127723490693007972983488850547131503743541498257063903737591788708931788100927462384527325264090936829343422557326346508829278972679219200272687510639046565744947946502702288324688331384572298552861169592572837621892288010428794086654670198987781811019417686606517180443202223751709837697031891906402916680697153549149215811371224121090153362211041543149827221417734393796155129707622082253672001471219618767142938855243155185377733093231442335774431780622110918757881617947769421785024729175570791129099588751916877774643828545741034954130149206583288028436930002323768572492650656681944653118091854626987607704233546663149904220115539087108752863976998074739496581842594614399924657942242291026452562663771006143408033719276886977885832239106664670287060441939936150688615174804177951894678626501955404550387812835334262834372848365869528942002402455647216778894286661146549603037538288110489735785355712856262403199607653880274210088212655158729992614521250146043750082383254095286968130986332657684562047826210033834906901009115599041608107813050992370430508664856541288080507920426840107201328385525075243670479158575304073743614615652283466011440782552455084419549547478950937049049507841083165501963367787703403060138619383412332708130683345194015930967700619182453845408355892286769390342597514570446947940928074145715808000986129448789981759781603482826333369567620758316084693613845428076033719249964872974156219514329688383653734207147186724859766199531744149320048888963007332178098933515986432876297480453585351332336795918254032294331405884305431678382649899723223380235067001259642649416472250155654230977104786697887254580300936136741486904010386501795948864752688358956511408157931100803116031041237743462705218456559902429891304034474104525416637444820606827666414195678629267320841723918824752205689794999950442414588196025894924595493955456216285296414078227432926197602645370999711582084777745629325149542527271168966560263325037357354775965386961661887569266880610570995003998387878702298512610488921621921308334692080625773449322596681527015830279049187531107631096402854725196622449354580839148977065647986760522097733296593602489437643842054471997944018841551726128242371657833889248984324816601345649944773026056474835191880032009149836507552178293755557683699113367788214366059257889381232096986076973676806500513754913915080391418288268401555672303390753228908517263790807889291927075209830178176134567753003848644420548998424272533980731025001172270891617134256768806352406346441661279590332198255364516521944981289387539705500965811567827876310689984280421436420806662149301402971261379336849568784350458152495218812194800907178212815626326691961405162265486562505796138822981746502003196756636995158867308516299502128779269239855983901524997747060215583790454388699933146463767243234896697542332196655963206691405677807828524173996407664274318340487591747324032781097522755932754213439263947696948879198651106023377383699515315097384984708205579737326839124135974790659427184421642902005155905105456602983571355442916676178294468398610370867740096400620905578789609478599203545474052209178597909348514046335360167309106121167060862590060441569391341172074557491640840526466735834375921567103989140704246298691149340079117915100293251541799548388548461196300205437723673540073053549276390197137929310291226824659727279899750526870359077976383979870184630336708689812062008383162407374266382241239740041110935869392498289911904887376909969178547954774324375761285887961113579224990076561165830030871914979817193740731296177919671816143508821141596830338557365851499169544267617791695527152288655501594696739388744391687248647328994958320583312428183667620564623875106368642733143410628090279893666753010617574508901714789127074795015460758982955241989112409931732864231393017464147411577056470755246958842670769783573840541630620903685899277557564019381595520643330499209610308233685364447179879634855422677184588481585270800737846767923096845828335501195621727740547468530079179654014069856206194050800260531724121471843250698512033081778428631155489772661794566601341454765389726640441499135344229899215380939266789509100362039827718043755717173787066431125232140381293999552713902327786349194344493430607099054109852446006951490601161399013869581603952830218032831760595862806422874991452868597134508578962169071340608117478097826986809298673078188060803913970029265166669628022187129045806859738900124879138698704398284792220249629565948925786371577344597794488563640713402073812034692861805933459146673296259689377650148049573301475880052462611574665802679142818691184924768878725764497438621243370704759944982419362058216251421468983813601105330123502612067494132783929362993862695644943145235387196278977986354825986100850157757816359658289555091884967323278900747749508771894598123479372158487735865960241084471428714813655506200667534500629994744784020780298714603835064425613584837900064034980591242863004067722411001563056876928375185527123059671875378621034927837598078875454975538690141257255770541857506741011120594025920017390252726551136285925757359099933668652044123630530141243718577111015834470382423192179547826270066420269957264586328917880078168095315010963119756145512137571028618411624834846099932850689925270754141773245362798379289506339864049721238329437405887393854602100539272923800013432406387396591665691915245337067022158042618502245043096760940413837268785532512418932464881613132270159191459492954141825401900573575039775757591806797025505446286251765870764627510670605792194469157537831552515298173838184897224571222202109982241717547145188829621146525161857398728450958761834229786093690497116263706915120425235880967415674878180690038559660495221432158928006083858499735883404223159593252610416811284296049307732697381873689182581270539812463066833826272190350860473983162311362724060260142198457594871893124953877445874899112038459440734234518064970191431220963149708853937906045516712779887609098823301880960583828142794312207290283691539890216869399700411604743619959381279897472032148157325690968714046095255007116253651707076303559328830176882114144485100952678510271975939400798849160070086691442734929203261909815759459099633716533018082030153282857544403883460829394210243306970943778249286457415499665954294886122472915426609651995924460769846813074738119273015709928697952519470645406519170423681336855451675318319679470978768060704021083463463501795179701225442479763034530007770223886367520636887318109450982695233190637215844824857128015643135030125510079163722770768621869435422838700388554312031349521981348817413505343823588334656165258842819515929077042925720361410410101117437984843446507245521792614511528950183079980232834750884387668755860655447255050875428670828507104136995815525100392965541858035366458403725442284227032301645423985369022624195611553195695316331784612397309522381848041228145838200950688558782372481169648898806097619831991745635062140796561679724630440660386556243055347232528100159827537226880750531687882271055634441848248845664353626982493989520119686901891747576526865470931538946722997067734758998583040692405382441380242672026362368400705920816567932537779764044587708330463681271642680945671186851951435637192694563076615364833418738862350033600248309284715898492305400896904429231977277005292590710465372742431664660518470926944825529754936084361166000517602673680116060715103753210370458455665544379088182661287601860673879547945555984393808200914978508638840751450621458277146440057371932277830072111428119218493023004452236949734438196616677860446636284489797874509890016566687059249217446251926428017991952832826227854261644749735010737592813211751452152682940862717343778987906538203475510274948212486144665334937591051544324944349610706529390521201227779652351271168912277206213552334086690624406098502011691694671555265575461642197122821296489037840764989851996788491853292082479575355954375825039040970003693146840970145497114694425312180988179892955325787216919444207256187359919464112226678812317787563347762143928468127354361241562198114015943560527315473327971429920606221433309279038260474133323897590888449412150189753247588966926544203010815738499979853488988020682683734653888059629617474303006377767427241682854071545852834818793059324557451638128675453341814701405679929500233936446141673949097412225300068501179198364448117486380008203178644181780988104273671740597675183144940712917392119666678660495815748816098186937080634208578035150603305364916674459182500361114090693021609000463580388273754271861558668468300667790791159879658609649716603247656697298886151282795173695753881109848919974695151550139809446390575451650915172111020581107759392804519479230410099484945278932760206334092487177606833137379506261724726273735903967761607467969313262208540626579176706090193771411025984396276140039186168997233437254051670122255691350906205110655367235195908930990842255748953951765233648669338510789582370142575314342902751658025368530327682128042347767368491915956897245793608800023920449218075440640211415437553681215207975261735541951288698400241425173142361836944886767450952491515933197600435427386131170140981413520073457367310571012478640060718887217055512660115956666988108552461545222188575375792166972350642115718890867500514209281660694833488737641796845675159959250243414245167720058966220410803257179487575003168372672705524630401989127994901528668701809345778403653503142308553070211175264296106472464920484637474012418125912916066872287162597677507110129277163543505833827597635220892176681088402926852880146875016589225756137317851486551830763651499842832804968985430402740937120623193701964131726477507696389599768912961604844619858015908517434329221173734552303008110208651336271604263662603182080147268259330798600097634682743395776103090641144615821418398331798642485525580492515793667375226006958004046306046809919750112007048250502305928605490951973834141442905797736238285707564020092234649796089665011552728634822956375513373523539883075731759310830871595678437729499296205113395004618290378413818232655307406281353332819057010541361438950663624238339169044684738404022622366157854802608009692707514923845148445532430172519717883675288603936230409425277093986380248716610142951440457554538428156119447289200209302281221451093781273886609760234811721675255127078205217645819094349080842489893634426775044103474705751723990982695053808536263527946477108371999309041019313593578616852024453741037864362408936538317315946905065645061010857789156094337611421441227339813120005312469336156433987337072535420116149424480302618366657964295748705880743987007163365842019237079933093339730050045147149368064396733742489949549580070735281996836432163353977634790887580315496872945235521729940715770756818729985387287687638815680374423405686221444988911941642547727764166753171861682929510719679060331184351620795611605732700639458131298073903367300750830022015052308266192557791280978345603744355735681901928135694916679526765633169855933677216602811501599652028120739826183519055813215516430472481706025954920571559201278096991288966604612281868597916815805156490479793713758014450332963390239150850747348118303943832438022536558337437991081278432947747656078235658140007940116437957609198425490565677342195763035717132249612395332629253198050527231016038761623137103414574371630964520076529671631443936333411269772256869585621213363835521863666872636726965319874117143251698977911630545138891980663479465449447433610669794647915242612155242684357451438040033618821786841290041974426112005337000559081204522639962439423255772576759392260221945201649539135166849185630694281375234725255007121629835985095402126181747101397810762810686942787665526225400110195748991934434088539430763776372107272043797498644023503871621306463978244984821863714042992554418533554961853056448286014750298669093758250033596672216294099584761501877744422211120773244266702273680677677912534093923302604046344138488843717360265064398592320036945649824250217439256991066614148335909286912018428169567528753642931431146813467654387541310847732495411142707608820604996940004195821506809281378558617928092539813216254764718990939956905039270947685488785380469113299956604653712109769621237179437814866710474607302370066184676330250893184088244285590411933018814894882817189108248195511288332135993268006948080070147067746497397991070010848089688088124199342437726033693931534904245912225867684928266070381847465545900124684637178466409488190131723887195798866383137617189671556528571557496668400367749973454865852080082436859322703176766827766411152801681943161768599894745182678991603787099088740682184805734856749414451293478070985592027750597383483188836242754479160436793748168127258945349608567962859880015118051249587963178038958276765743100742301040157418790596014288789791622433282483118502267360261009284140422844898089818226088026142928833773091838612053298387275966705378727644751686731281947816036138247525399392827213538159247644368364137889606669629663843774688851920287976219745700639241054454508015078052846550954804237312034262641361461016541246701145740492727068154524683030763823935298020626344694526756878055435378976712599912796754947063693185802565239674931644302795679887148739036579649960416817509997679526873779701883331883439927561880627668472397689141940687817415794212459090126082577717587648195629182813063487484931644787491777720584012273757020617356329496412672633932298287270590966562028847282035023182580257145572737931778177882288478812476973265248780978607278625983918315395790158748299212031215605472819386133946983857571941224583461531225043173505064145429922150556518759788217347875511927335735897577654060296611115708892821238313078907897803864300969519543419036367879097633041678860855693573610545636680104104262838348685707858046948670348931367329460975876836638654415193247936067537049885817533247735821468247701138591156226512963944770531137384555075882312038588597555960383129613169590499373996354338267319052926821448432061527776000040147992744779978416521774860299384893775554825929580534277664310799053431026915871883078169907037268300604130494282746791818890681280951685554055885382086353170709227531466647375018961546762069443834387742677031035455593871175972278681445170743898257936068490439630507291046437277019829598102274332794906672362586913771993363899193497753834651551536484089721107013165986742061366061150316242742579867216529223190988494006541228520036114485842953232644716750803171011823332787249338418588171420731923378267850905749531059846145191355471182973865455155651616734038844788778430134403498957719021635974079481406010992361560126105147091357541079109740065500193947279162314193289130579616662107023304602567989363106192584221568636926077037474787072556102379734170730913264382795910594741066916162039637262423647317327868266424936554397952687393791949096451690204349796318031499965528420584155493569413245712706135394519657687700432306114984352615294091875822440282259522341385086012905352932429558252339973186749279071830435337549393102158084692362538981759267428004280724087092330118284836709618618868423633104570310588739139590701966711529794087249014543180093827466041440621584803326887018965848833344165837971535618204480213432152991825483925801539776384526690665299459170326044517503186295398139802615200842279657776030600130926201324510161654975976758672890242966360781697889720398023512556632595280853142825198011406279142065843434978080131860589503965842557497564546545314457647267586921884964672975331345337551220879851057594742746269236090302012072116459346055730003916372189409769230195073237152343391117654658033676330166863203852497484397519768768988135519865892203876276870562388598981580567674243546647361255561432782469165247528152600453320862295103354519098381436725386758249460261474762415650014559141179886286805064698833082756396615760595426286809077954454611813146328858316452582191836511705197811197666340653825029303290010859936531666011654980453989780894437423392691491275852430089241774448979614081194694448343930178864760918320419825711555318433377104842182029219914277587484423722221261471144116719142744012991808296800806865279699528868741983966211233126074433082917655942166905036533572675606731187740903740281496530271435451771286508196221873848756782293524617636444063204204091750034450106307132744400213698923705950417463482804046462532512305324734510336387045843391489131843585888636093480595242743176220687398236172266124907689668457922319183523858888732047396875314268753535939790638980411308378171776417495488343133270000884044415336321983837198278029127282784967159078627063980055499562659048937545809526377343795763439526229674810901839171583857920801370820720216534488176217660183841328316133795611902500264937205801746055835536102487410425383446921664694383229981786539411333012321386712036461828106528443184676218319069102180806071077994134109565576607190627876535138097151831035383373724712091762558028845093093100136396312796887347296120819329048923271603814418418473924790368254658985394967056283691049437570662910998488573361476591171909219756468024983454153383446791269963823533968644481706537199471933177583675683648044137809930204294032029309764417035774892932947925460532903524341088287773734891856580069710584069721096335211337113361382650967472113277489179408027078468916567521853878333733040188406034691469372188867511815372450538686549772948394202927439407867539624416427296405875448356716844357272080094716502074471635927126598885122660952290813156772918126863916481059214345574462874297544522745676137911664141453560726596989980165306047764369988185114821387934334653867411977175317475875297781233145604773692284696588762853217402331621490047134693266341118650735713541549438618278573317949952532999946029714125263633984990047372168421892481336212367200744237263888189326169419336279283843461264871733709970861306020603560504764531669956478734385412557786284166977909833857943874205024259816508744536622303235066261693582318630060116528546790247601776386248380855149762482637325841799510505870777087767924154951083833229972983365740371641269407674650863526645006398607757377116613465640774583695703821381929471788987292825608975814307244873052131345748519488029631807628967824006344423414317849515300626198832818490287515499787732021331507973559968705464439348818935052240087243429831294100315004141989185209571160728064145063466187056785937789918406170872104150031588879642849412625494599421516312721801656853360959342351869039036797508350019328705601210080956864943759991171800052951535517426407816832013831579155384166205134134569455552006388643231265961804894409517109135051632514412125192979182177455515735607798705505896974303291699066382023549082778421100738658862891157110434273373318715384739882149286564131014453850380889272906110058864221425218654928999018487567676634160326403788046414005146467051940698796178501976536489630110124365712365669054805352594930877908070418628444353714138241214154352176957512468586141663450280812565815343362240424428031635364024525543736339789955625023838966143282047850924882980938600295784404911433408084068937004589687096186388354569794528421819303458464656918439695434028725503249357901726495148947550512086986880802876613916837384165117881420483478696268403368336046578618206599156118840584379101362730337405365074188805909184008707990172907541459862924102015892951853659307026197483837840363731006923859024023729047957619474755489552003910284496439877043587686221038878693821994172191971235294680092787502136981346028976822022639182455507688218845045640019232720001077513058996187206418511553385459530429257912596675734356865367428578755537288182344097435100254961896705649240293911493272514786517519350501407117717258439757812089433141249760424637272706578287120338025748804209732222273397679203329923231265730852048677075080956334869499775778592430493116338918653509380037002509908080644049530145499615251166739486921869055197938132430694299394336152564080869022524822854115889055687600369571273385735321281123536708340450968386555496077872494812520727551567202262812022807189906919309401829254461231984754474001012543023888711029985328183455934994830615011271190436122282406927940640491148172624822309048759811528541226751989014237531515924682490156555261745498614026193387957600956728645200803644971728458032645721008197732957400375054629986354380274002222675095390254944002234192999961880537809032890995144124398809420639656241343580447840133940477923786309964552309407504272072932682146207371871314666703775468648920158047585561067600167947172904353712569433294710027227314129061637964538758190244988005780109410648869934066502930299088819014060924516020869922709990549702266621854198168485301075305996821722786025654594257927510897258984758767007027532513148657736000413270342621929918318080998080485770214768848819251516147747624884098446182311575643729419628234057457428499147971182088916490010536060996622162814146911186237139464888572841491925287591233450233174751302333461437626741482931315527911796079865313580132633889603452293117131750416051677688758556214707877122984005063448631852908664201932529744927388111214346142018683438921966492843668394435782101554914755488858722148660796046219483966909931786216000677029164934910604339016338579714275525634717731370299756743066602084119291698272203843235148076467557169280306692530768638217700008148215775622836885056610642179734115000880920054640364715866328708676511056154171021905971210141821162184698866796722068855139933243439970883312729537235424289980935817195463576852285536834758156249512719827772736162383155108181792478112478591586389363928650303899187259206480776495110890277557354409228763655673315359882172229676634137049601290846915702746126572658690751973754389884994925430653788912822269143503205676808604335088489590325136529191250384120101553605716237777551034604799670731417606346163636967761750528138822297914456957921339459382715877018854205250096430069451494827378635461895543080022294954440476844728170963655602163050074355505117551923766935051030741436091537241000091439936366141443691195064872859754092777009425967958984433709668591358092698461437353613234854351805675958705167472522505988207109107543183312539430640095431332714858967428857571879600812867610669375424327908440709669985790227819626944067932849240999698362872928820070321392929745379522131160466622929130322059188456815873687726421856090591182322944626439859444235996499793328410039496479698053971197220594752782104978318003931507296590418987439929014371122685057274075113061544007709108858405254731421517776491426022738955217132345242189877081321313219942040293333492992147246207505411399700027787243725568336073509024137749136694234741741573481868458298375007712981520039117132412593074992972730357005243039778919846146917434419603937245250789157385615304441923211608540314219761599955462460097805645178372387639391831215616495458379564470325229679576354273962242759325682883593020360127767004005312851046279313140703443095339265847051687365418030150342626963487964348783490962665756626189244824697464035827569495158468133647253586820854145566300993238146527391882545987993854078308580840859722887344975469198932023476615817054349462320541005690612387772904004298134977844354958203607293961077439584088891288480071774291598827536309294965998267785972712576166942641392116804464176318977297066647138058156712049521307659275970172801062329533426025411823653263887580748133862747015281011197244931752380679106203947779378025665759516859763864136137663112028223132789587535213794222773026236509140852084216014546521170711832644856169925324060072434581954073806153457288577626884438804766267496940656513535375439762194493171629569369016608556925279243783920137871917470418188605860667351264767965558138625109415584129269992449747201811275846740243574560734304183460960653367606545740159910157245660577188788973343326090511891597448346639946345703868028776556241413763641446579860911117405210492572134855128845118625293784873254134299409666455386825167311303920008590235955393251106857411231268086261711246017230770788216353129239640644699587244086835002756170470002199397140869220764063174020852157729181527937124678249844036603515929867906346568233909906643366879564999513987763509827728802802923197608426493363574011612661578546442307215237494353647682385981527445439941375728039160501357576305519526421845838208846441935861097405689213651523110323856100398507025788011332095899475740895512949479993855036357711409674164355835401683068009266669382207711617614901275794277928401669447014239701553628086839538387163352627360755989007837673058248310679059588016692551811333664629754650565754535464285557658500296776773392680982263734527498619547432072757644929274985973141548291553775147917263567499385529493651943121383153212684036415565530190971935772822315578790859874121364865847915860242272777135500253485827933035033416885312652090379814800704970989435236727760829084452183286597800913600626517123351785658312901727522606567255854611869431435139761151265917707184026141639867363172791953274377881308576331243003591187988146079235493588608442251638735257153644348915906369201411304725778834080303670852270878207178385529329608907780763388856488726237566768202622715157870024380568537721567185361516205071342564662222110861086517317258968813597268099489049970750579356606852313976282920250547689199523027291816334355066418780510340281422445201557458601144574584847633987708683229794055962555030605148908863294607637480881215726640169419845780655391457394998029655659012665090696623380093556255251625173807748297841703381798080283962953808866760477879540817288070460209307076732665132125753430832913851242346237919863596222006941281417099702693978742683832577930667703733259761825137327493095076887599550118092810002632905255049905691375028236743008950480459041518936680239732319383511872905877130848414529230591142274523680802477390921777259712573682443201380343291711509763806029159952662942811960076210727683323461579092508662679267693808535977750050287340339755859087028907923200040994780282929621840533436051572325793637077065146238274545038018482415149454836545749460143269707169453512557620694399976774164622308041093907060082043466168306073330434616896455968997292148983140368969080252868084960775829352933700095866817299748062815003188352623203429517441633606123630932548480747975781627432323930932998845427548642123904929589582235132859863198032954516010010675205178513034023149303902905469395632239376663732869646277242879458906384284854075682435950177580695667923299512951187160144015591831360000441914247182845397400985887394650780230613994391166015488033519556700173874878932796578648131641394080577860392583654186304160945260788706050810911765528410672562310401400981096637765119625252909938609570559897218024523634289202536315976279964936280202707934733128545736531561194453285227507163590979195539015616531181919884504463168736069384948292933286643510834766101366504872344706161915793358871650937792522952554289424875158947712462727752746433511825518813666713574383745539723222376772143517575770487608395447676677570595619492169914748639690870831572271465147627524046604003320600520550447361396584075102543445198579359481948645233843871613944694730033209702325512001291851352497777470936151375490491375042069411993410116198269795601250068439076893948173791225244161396695195203079071412712508163151239426389615820221117505034325440645230248393938129944624441532724337162294548022785397731477204890442117226316261280558261045464208530540158196270735052303040632097232282292438016359281665043077027274679749343611753544617817162965557926339196550099402426218412311766956255896362296669661203248874557053608637666802771391979163034242956564948313479531608131603780674913586725178788747335062108026908304191105031558962164205133855051547401463824740178234751172708331937824052044348655978560877274468941675264508224681120650177292160129232215824510857380467611201903264479563649460094655545855601651091616675675385759366929579747756563875664247559482287366651088696782383708832831983307595991070012194969495957339482834842909135834141318485093124836822001089117393011756865535252308557671597216519134687536419219273202326853720241276880443358320063042805846335239576207620715987554339574460383191431052336907807992889408550129049872407229611359241942196500753091799755957119534347882481739509574667565451272078527327149908310160644768924524053509319080515629574544296450664164520187620479081587359245317587845029721326088130471004957503663411902741384729475308086978014922744771754538578573096235897417172502526573408925314673006021465587711288628016501552002100980220553365314682671405834694644962958284135123052536445218210053390371382495572497955510134121890759887305843282572371034477369484009577681609652636411986566525956133697299491875541998165031627919037946305555330125240121142097566901179240799832030914560051336446245984834992347218104326352010190217838161153014648629109352179496872201597186574447815843675636422482007298277702422020975134386598829848460201149409354614435075233023384810096349632345016303944529430294562101394848662322418165772827218328821486415851956909115151305143031642130538473848830742106611397879205987599839555227220575261588323644733816823094286294273425387029674181132037130971384550162433030572651577910160905808024830996541081145156913993409830508420810670719047825832156936052260815122908661612665972829931251732834375379269020601376877661264747422557761889141297850894877526954498456459846010256172981129560463869358391294421347794445162158146066129208051575752133311423562244016088920219795985526420023114285280164729578273875725625924878495727409942969473882939196410814330343345124893326689711056001503590854102235474698084633297063930596675605979016502231672086427271817246249155713442679902321914122344122376456469034006169435007581067744128522935766000896082692349572321923514684798562090511640882983653462591594470329036568753008834822080356370296755407753464290519239685054584076227321465029276646457317433124314182144515014714357854935030376130792977154782011164414867238558040691923201079191671246162207744555943093819775763167668943826592145985149115652236144454839986794947316648257702706447871701966531060769488460367508862275961356038614239659998717841124026211410127595482290670191670960867128753903829405255036534466824248269429827966606473264500176105445944584908627972033569042433812686766293264831135811670588262941872056379117321040006404568331934600546621163918300635136537747574062332950133886356589575015183361426219194856189344225709375539233800072828020132532374206505708400908229501604438630978228559648978222986762960286156351587247570201875606307429407562390685154671752168473928558847661487751879776125319489988946244214666625537610108358514300961907520364096432301708444114147540141087441129985434636519497926829245855316932923064910807594914497212248740928633539625792079917996920301887892547354178497637778212628700352412609421466204695462858786331989848577404708019648494110790754156702761751656848809974930877494654931949471123875899198277900169280683433694459817015901261443936747357148608417889664267834109505590016885999172077314310371753299913568492629009891534261396904299768366201844812775958480101442127350868409747113036301237932948848876859517773785510788030797747010092252699728427843783525690032046581519237472069396755937488983255509478256691542947619413565446452070129270996745077571772780277175747313931796784133890357421062411379139272365875300323715507324235025168859616834304686045631279004353066477092689193064303308751268545498506388477889323319731417360411247274515199704568900895387721406245559648402931828886459903576512327060059979461753675608176262055933097837774562360771160095788666936634249799604272692808755201661284903671890333256774907104377972077191564746591225579713889172698588059031844498262047712727449123999870771348053495531908752395931153614144811755735604686171479621877334559960057904131302412877991430867715539625621865792491309981520263263423292304230899655226268526264342544840295716186256215459888339866807464864735688436000903289244463448107909747442276984455553315011100891451617274439611855258070795702222160253388731885562601941738095143482941773161069597085853435690840158206500013722664043256731375502453756805416019687269686304139964939590690754337700221647567969552522240093661864238894796331665462061366188461961500458653043985036842495106267257689210995365830261332318736448633246904961838698421328092694070922475946658201731199506390322243992253179471725769317171768711944938704651881680561131302612266230060413981589227737054370806680546588256715813704341900634570929350830930843220080583644686291408856706911311572528539193305098441914162898854449096353765185804159962033218317514519215074119140874478974633241862019123199444787805073286195922049812293701479583205997921692297579226371895556106639390165459667689174313037695188689760732545114965258742914623693876150199283643079913000921412537870825166247311698926863629555958519531911063880334318631201628258469531521151497651363004927521035331611590947888448961476525824783265408674220009916091231385436470873967131638728212764347685138969251411443361581096611758062794715481818621400722974955234380895371429026416730146772210280088370381436212281907178981302563669807706568083116888352583920048076782620892239899805478140667481759551080384862709316868583070523313154847993698650475902402120668550980207284396461819345208256589930076580304798221937667958311901050160874268974433972696269795083592799305917149921038462635263481017365784523728211623654913914990853895424362872085175826140110614406891854039953940312344514294741012336387325121392093120558814757896529202126948675255780348808654973983500055453618007148016089851648867353759215883802700594013431623299246610043703061932306508883715819638820556600922970053692721637279465457346969977652618955314123000422232082892877490776944544907540685052651359427091976939133287440472361582324303154510219682516501373944825035356867568127807301212052805770752259012457839218795280735914423930294687081262236131869286985318768964568362139253224333514578717722716510859187174799242803300405739217991192617075452183038107598368817025212294708243711423108621618769421576707460468514573368915142020367146613375399919388276499984040894393181284195559543185161068233749738259830936966541114998344969329688426147742516574064288347068721449683079912685410998171199490472209919992997397614631063875812711602359861752295108964844290183633617783908660676425227305029727829785389271792420263362284342249977063029005586499720946821252963661598342247988943696563018554204903261992679215431194712346412271306395939429059005919102379780570275444487565386021420615647663393287535511120899954153871507279781259778210594201754647371539296088123428844785667519462764603010408144663796390700084900891307404282512847937951515330362778701225884447841884914103525241114788719823489277938981362749138003984261515814964109416481351001879686969026770383721211515778979422072973966221799321460275829939151846828060256635424230834305112037276340131092651629503198281888135196995524470005358924894301220332839748761937689379007450134463323404581037062348963773508483145410107884639086673845489715925753231712784291539788644162262297046666804087128194257771630709961302807969877537111618363757793903960470678254063550705049892369763787820100578421763026012813379413025589814595957821758722728846492539091777534389647595617875970842326003279104162172842080127021712145793927287126812896387134054596070646019744671679047750205802091710719828261517224837661641516256961511367608580322140271276732440843646882084304683982688988998146237557141280829928908468380953251639721849547355863600615735076650445680228572331174917639771802601700777685156891359143266714976971408601917143640447560403403353971551178448266250025850450171037672661728572727033873456577536487593070845699438915780588126121455556337528613682862182168474926101321854435300496694125227845214460469057350059839418488483541857337483315004447686176566039817479343937351138324386140431076520019375833119754184349430047953962985286972373100523895188478180867160988733297160314582554840806514653791592540997253859753115376320241882509062274225553345756718112155342654088334728524505677126050218928824856135966979807655253434802170202569753244034803886601746278237381103824498694174710821901751346445211094238665679588510793932803614869500213215370480901868332319694532914783830165101918661239175248466075735649906753483979122937024286177195762241282332160575427843944077701181269630264078687749535761323822307328966277701824238866545385316577414861614851000676219969761265823317401792231265726781702107668380948434571843234405799727460427897055303279256794603380147103000955309322357354767472322418166907836004293450315157879325616274093371585951880932329265738528007631359504497289187216013438030127089705585213653620528043750802157325373537657983801659802689354017126473086551220648254967602794260050045708479193151549630366300381763313548411128467982241266110512229404094405342804736435572035672931062529643510050353975531715915335387849890460040111493120752235349601288352318129886297165436316362877781714247931932916224639641845253272771557588385630134947406782394642442462614532910824692105564467539589215983317655343385905973528403487361898267841672877405177412170657241593096863250824865757249958956930791913229789428105907637010920146849750837954814176647901058690126175631399295816242893498982528797797601509628896506498750507885209922757553897608487436018355678834675413566312329394007233181139356623536267198878598891695717966855863647470390070850119893110390917399923538058449271708297477315325805193869420982339155005730004198800812782839098803519721060780936887710094530520112686609463797039794935051702070770946227850787230968354385742044178705017799253190648654694068724956349000557829387990320975804701309797618694379505241000335956375466574194650520635510264239269397449031995695533824059846478435890918187992294729951551385366684905312205951947562199661703440700744400936436522232019802907080303969562100395386025098440693203984588686088348605035568643542465282600815126292243243931421088272510573454370327825072054704218062658568441404381946238553302496477771354616429158421109233817518723697372512274156758385509990800678058881563470466942308988412294497425109881739607386279696755985135956502555920866425926777919803417711771994367362299942302799583939059526852447659905411338451784182219088105119291242187003660804687437675481536392819269094757644699606405226351071507533847533305082099704558293570504722881693050600603889999975111603790765883093402812684193223645377763028058668466805140667952136124679840914797804949561278257478662918713685611438342454374958584678952503893319189692815516818752863246376651075466507640136152664081634974228015716014839756448373842269995045571990315358913982747458642614038045375974883589296995039981585751413704468400568314501748254507445423842882737202574292884659194607695271799590746661365738592788864030586685683199141725188942525487167908123814576827786963169829090957970808389916534892572503652947368252752549754217739688629777109807242248475265980083413107348367135475958193284842254601285856407106391817933336370437803553645819739868509037994927968333359302585455052764916740726570547283386877760745132190671529220260000460648251673370420102644077033349318996600134413174913699970972634105282399332471785274492515218517145514386535399942439096361020876939909858783590936368289953531009154717155365390121261418930640521806194207261459414857437516795423809975128636619547224808105359163085668103494342288790423643658183705609781352567506262726366927686628748043838458672917936128154618491364279412100106232364983575816520754211437574794899552521747921225088606221722061214112933967376841232668235401863706384576439387719311163817786849061469939621209122186617696925031205386858518254008034178605793479953985524003027920674480445546392122853356355840266081439781531619438736287252831059469717701506010645127471725534261301416569654887586751697690015536221593989693429462359562192213021792483259840973733189090818151469243062988803703623006680393481494917254968702293049377161308511698520909216198072209658870364580161630363225708732176188597018957278461859814656272009866524514315436969221436925381555459675623879945338615220819794011913807380295537062650149181900490232617238113886974020707441248634961130284898579114438153670655025012096938236450238309803658581826967154256050112904496374261270565461790482440621143256696703500909367895014399335642703357012846088469907556994057079845392895637480329229438729835148376540155470925328635506419273396621967851218332968025923266381283764125555136441644135909171954988707644082939717820889469343488542743702216760627097180225278789966382836584712840620738728914381318675163949299431961268335289046002514455379533142275964199109935022253033349380455638069218878655958769278996101252203772085163761905223628604496242440759262547202065737835220841981022579486979107731937609675724928147303775112688747063388762594366524158525729221621726995731241516794472669263269151832037286568243709189187978166888563806478928969372033649490760866784556764013379539888522852788547392128988428094054843882995187850528797988346174788125758833847767287146322500169793846295120691369424681455475064809174017746177759592989323786006348630138273915430948377257488076907757897351757964657547078523435373728108332030553170875415338184421631872342741317972868705039235097132173915717636636290224839898761463104596604692269875751015492593410816040396357018905608066910885149050448850699375483579752455943655124840910956843298383258880662038142557056248379636647979922642329634879113195373761916183707102779924589886487670845725481160926968715355110878971337972203713040362230394328281029418178164094302043913638002876697062719778642602097399618864416674858743811582096126346111411366046846558495317917452146942118164230863250199158778806673205754866285974240250956539773488693266777159737735923769723448353527820903511255982236773113567344165116844961217604921394292405870341007562070051539928337282346536407431919660292184447065777789393462052390772673470587862202013208024035138116330421195076474412072521761068940041550449499143686578045620125842761363814798340369985341970889254253624324798343339083109311788353608647576068570672646593776084967861586399115147582515889188605096977117707573948581474227796477320854299151878252797960883698091392453510577820374222176695739323309313140094913690613071132378763622528919855555139243284931234418186969999225235650193301656158207531691192973975017360455764461825070169901906994939982244869205104646392996033073048327833927280120623869231529584137752447738239721998611131551217069797587914898564530755454641270880363382164353369540051829710151540733256038931624160781034789120334544802514435753066093310373319678617227773719962649413126219467673607256148926288894696784036147972748696977010589393808189466265531422583330491098800312966065420264436021278932975673129804037032591841079819518543778558964828985527719113489350365249625682763351123050180753486260043812896149579031572696732204078833082803778376115213631901011579384695189723013921704946514288029272561899093067291197452642918722000096335265215589752189327088504351167357980801715526764542570235265806777633212218000481941892554512912102135776724126419019762682038692229135928368074580190379695723378020975129734305266028719505981640860510166466958324640141670325914092995715846620914420841488557917035359039152031972650823324026271520769103606303045671328599442618362421204093462378935275390836151514797023785671981263438442708506833523009821989896868306166488749835852497308889587902728925884240410346623894268294584553137374860459426604077191684515832843029882872589946644825171681846366325872713116090581142290302759686141504837274184515149149606439833777822589384616260403173735998015877562087886895753120990033473476934989879965732507639574219643762998213315909984213609686935955030421953027622098039998165498050467557849885870106549326435722543518635996024307120000911324298559737060724019620858309855560027336032387107483105805091936168934106478860884247799958490261295469609421016461104676653712921538506209255239110709161504625049594297602779783960785825407775006174751420644625885211343977799372070571933527985656450273658913609161902350566258630707198598544777210348116393971273042815654439568291731390072586058004374948286988288451601659496846289084220447186325889070160821635195208498267063477372169716530040761266470896486445340039457514842042460147395046184832644217852639510043205147882467400875658594197631652897977022962255762133785330135321610164182738243335467804504167503153468928402255083874758755856861105062260728598986589421072803115394931011594157636937427679653767727681895787593297378247091952492198729417241316688233491327321560971487493672430138274104058576227496806082889889447930860204431452983566222673541273093406861812655451433703592770500985536219318280866475952122251378243448103092846766901070156354164455635122616613504204268924734123552952038171041840471684613468427477684058010239378779255697697623272679224775525579522031264809004504629550934276797967760128229930683439732204308842665031048155226088421283192971516438309451162460891241084817157574051928523856875898148399386638280952975167558794971119985670910395065650614624969359185785481254046328553406677394742762408015584583390838660664020768454927631185004230834980480938819644393247362235218181235173989718996104609120445122570979067845889869908999801616228054042825532042876319019496677385001474523017249155754423720356272333905660505788289028206855794170179580354716299398479620329838810157749004127821650873065924902390145866285780641645800671771110958766500752313793060774194080626235114515372364182585266471245704490051251665090569319771045675328059016369132861880351034442941204534962817744202545659741630778108350575071339669829065273884330270714816129270766455271887548935775184334032039123592631546118257585107744456572068408548905500982964472946961609781074073293600397980054363012500074859895054491367776418895025285782053281425165939765790982133637438776635342756343955357662232001885360095275507892898992168251106511380525445709565288362459527871075428952976449576740473459404535654023251377910486333649475661357668659849424692764586543786765009817598319943925537105135315648967774742118710423314154588754301637348777313331152086982215736441201043161236938303139040188217770602110089393205887347735785976901616948135113620703139258479992871542464970593109745917763050843505399858516059210684558915269490450919398422647856454131583555564351218772033166381041926776396024127891187982993699657124992431591174899613870033016054765026230390392573473949227257390880854222725800428659936677169455009838945917266730165864139663931469994175735871390728864488502886056159426008764645285171829590638089658584646226006666708149329842505156243918813402325760125380724903313839312730996096099528993455988198305303516780831498951777103879537774236597352788246710013203255880039684131914280637462060415452213451211202145908216568424197789191496609533648196143462758227688192109624486683051911189879591404978019242985401094526226421728043636570956762299240610064979540511665923818900774311931601541394459198367479585038520283133181693285865414134957114422453398293615803596404912919948416977420837694185085918549902875913756260499295812513488958413816119569276623309597210550450956755553517430802752271525938390032334941319953418656559186294442802859815578528896134840319590913693874146717131894871522989157059272215785819397512159644645417056356521706203172374666695338890970464150749281205267123743904859027278878468157807393383582350848104688121014119398916682538898156377320759465980070649954639578853890367508434712989445623875129080415404241001870587940675940233268518821378979227490801821325206485706765059172627496962806995792777838725982078286752682862796142249183245890323801295525525502382519154538056273513395003192374979224414608532855698440812528277213892413761055719348700510339203672827834195563090133469568932547176527821930679580504744376813681843193536354603095383577953183412586846398269331627906480468932644338155239730770304135649726677688696219829663035378181463677975389224452605338863239275327564612713558181091549474504656233033165927823789182856238380186242741729867183631053052472488249750947119842139815927068602592646325375586975438609477294602079739399953110266457701001177345701256675862216554711536955169389715476671389095466018526564785128835210495500440261251497340186253921106927557651526979011692251341404443269267291537556934116095323500465926796177144923052148546985346381344467207199629107137515824206404284345872749165032625392786901269533039163245494674572759018240209363733561682734704399076358304607462595014717127325593487417560930498630595926524500574577906734000655809667317647213696377749665370890394466695300366712804811620343509999717649453392648204101039159183307150997399236049784378022091768019198445368679671994899482039868117604971955733552880358208517799776969580358463072264166412736751787229405767417251946108167224797761640489409232342737530922487776225482889934271162421878416617325061082813605146166001209902273360153421261281396641139025114617873183404336287985353590700855034351821333461597407880211937511492203859282649937456289864092684762902366141229320956058406809284365500214160810801771895855989795616923092626893621295491454765809228069046191550326476062160864100227443099005351235274795865890801072367125876914339756737499286884597604752371134936160615181179302032713013843399239365648307360691006208498833916401208059286821184727368687542660251993174717155385271851792500013646794579729846817317345614816295053892646869668019628902450818302445610324772582260351145810870587753374974581479524436632898967966244961164265090028407097235364254329194204451547712343680988585666466825083234487268237185317387006231129149877389027557078419461514055824926819857948438736542919674803217438766126833298549457749136444334017699539302010738004175234676900672839405115488439437885821101245428948522464382225152020547569323488606687357034326305526833618105883220769755639360382895265696312151585292520728459316901342675930222665831031867205107389196418710671224200345461559990033771184372223782541702386180174683383309856245453615301684918505289049153994210431105168886627143858923061148857839181540078469793426491782214978486582755480469650750249243215896936088495445769110951307754023734526796715871344406282644251094773886163796088679945082530171268407014906296331774131297837723144225344167249117831035377021294268235264606364588011127972240483935852315351255440191715869310119314718152490010667102014982199127700797504048442855110360800463795090918808872901986695529074814161716525012236900008411298943290700312001320157047743028908753608977620445550841970647323119004708511308345417046391211189110253892208312282284838673615335089912616519951529154793229213197546167011357850714949687330108081922091824999017315239956460599050374808279761832366855970632728829407626913611876733348359416913068722546884991729984406403148573100808935364820256459727949866431889918768069132284813581710785945100983287172381796419444699580816443804149147005848392190535706468908988770378913633047771583921828533654019777841914383568741163336926103529675986799039534713143486522520867697069708006801672274225455075992633072168425237985859141967124226546611276515025671010304834614689001185263429458499994433852067989420514579043786504733095737967565509863467508090382153471953872859642559338770316534412638209102619630172557882257790647758240422181403780928419951918407117564203071467159390352323333038641097600367042168820144614979300844479946213323033621720820798704652556391630768238923507162245270461299097063171645404305297389845938411444613802923030642217349243339307079962187910653771241818903750358948998230994631898687790413117389321001926409499285786205358780745179692360969121063465075168037711577205269628592752656652903941474011266180127605960354337426100000665455150285914992293105103535103387861246871075927501875096528100478793733295185179011864769266495120074635502296935929922300933003304096463023603033073486391220011425420604038100854692456665542208488141845510148462419396320975609403284343493897223897322108803010503801503726221325727222553296476019389965152800082132167608074268403540482637614580332294755520762607003158400719441666674919361557082486072668874499310380013317125598594154746182607949370514166127315533025981552577888134650631920009616880844529518823002810265388007945893525283638213225364727009321535745143466319687400600146113242440565112069582716620810780188165024548345499970202961067606131125547354985104985402924671756141120265251114347104414195279314953785202544149866546321105097926725314631474121023191258596071707602394208783532657268393389182436949003155359143181072858035396371604847424430160832723671019822126395283357163527688129404221210659014206932495420800749036360056131002422319729525162265336064947847450617385163683121488069662719121680488181473216994276395941133123049332183297011757336160303124405346825014424105311865196166735604649491092908945457450593368885884392933722345289059214921101554331480299334766821019046951249997778454688744871633595470965605830514797517064056071721812212972160076075497840944545425458550684349224288564132884032585997590763043066354882148234325022860752403699468429294540682103226792946972655861716956822756377553720112753250801029799731133141542469364707393037202154742158703181142066619307159270786267635369032765668638094315266124141189475424083153426419386144468648487468749548232271641169223313437611171787762861553227574766141727038300642571468834568769188477351819517557045690600491122133351247208861289648892974440409464699528889350179311312656404904913125121932603147014555956229337310795999985798073151068465737930416597770498248996743080046553346201081405982841527116687757786761233516993711643212481156280637600673452546315260859265142088584618288482339929775174383339309176736871157018431085053655432218589606748170718623880092084849237170725562416693933289692348265324355687042464643250062274404977825235048542951249933943614252325904668911395542579996946580265089719079961739738572073410281902786036975478099405089384172374695006043330139643222683484391703644492591491272053646263345811511002173317004559551235509677367829535493077165947834810411491835764755595143537675803255984158592001568043674990267133921034294950387692202394586007446450124980533359082799266170356035071534036335999259843850014539987294882077981512923190870198231946719247788416484617632796388374303385811468586424004186321664709297959214013201873601213532931768633408958577329806601431973179830433713140045843803747786870851335200170222306254115931291816557844667258865881003652291710926416798758800015781731533136291500052384299608029708439747226346554009700949887258898313702576007884342507402321392278726676772713526581672233834645412045309259716696982568204361999617894270796389639569014839304256532534497008625232219989551988026069736396793147516838370616744744126490083846014622990701480697379195862201072101268648789222181334278013988593383757062733518299702159770689632432388569406451204807190078884302222565528474615609235049167053496208782421395527189285470483864651221298891211113715725077297489613798770792356607722416833354351706703471698775830438992253920743869502485665222365148545336267442868098009071107930333056947995810282840855547460508821109414178917285126144086854480929578401922784649198377637918395608830517642914507989527996178147508955547014054334045183445838567039194573166599424626405352961519027060252802246646700359140811790317104973771076258593838783848392133643267468571277433254678632927632367427904332873036010852613515461386816839713383401813292876162273977781708806390005908381565348174730848360061553353448049124637996094066342957484726962599914325103676052390942386400198614614585359743281292938448038760705653137682984538597325623323967731428358324493644309181190105527827884230928144251833030157100504919343887050873643736738667561633646512368811112497817482604329944208743984713265266037412022297115335011945127158149177808563983335171895520462968009824054083266242145760710232817748300508243152589123490045213783197824687249068115759605648723195000320587277927990857286611843858547434610183795632129845726278225544611761907547202256175740019283341182998158890164630581927186742263890947673352546765658131586006990310195242124898532194508895807288910513370516284826402245511577588775176539788741847872551897640790217597486937979615575507260741513337765301469470088272174850466634743255445915570923672023155346741334068363891262063452376737857462889340272594722271549339161833794938199459016202562672957647443891975226537838048316292905876261802811874171013397693197287785583917002380890650271762241772079218430429409940829453124318070979485487373295294762290511338815979354593683841343704306595553055728956422918371909532341268468036669523357092330187159438065838829651106697696903251748184084105714039509413740071352740866696911787533963282799053228626694445240596529393628912102317004257345999262122431832852954568536693957349527822309449491681299208596214480707455933049676956041646391405735496248497138106108095568962411642468177331861792604803852813228401692661693968767582969797071997922402104678647504622277694198463700985025040080436000480364711890930635708752794248245604791371886185878055437439144176438030438226290012476733848804881945114324215405746651719590513389359573516673870188386873788140389637739151704194852806967003446819940666800819706722985559447647036264703967734545888565000964028665490395647516543290024434737929611516043477379030195709224820531427033503125466633675445155996154578460038082999524350260755533528355309390127248348307862862313863837442101148026719695157239524261856846744107245012262411712019207120219592882185047503127069221422878417723773892127634828411727556238107025633302482551169082213142147504344300095689939518982063820571591576744233398988818850529167297403823126591027285333155477838342883606678285151373953333162192492464515801128979660590877855613836423016066254185078132292963687488968102137619481525167611745566520591303499709123264194886769012904752989204384238082481383480947463659370150872019223870860020355475778865711195875493005918228356749833022056061738229135340542441020169283021009451066406050385286931839831585938729068687207909843406340229511286750586987384993568158028950179746185433784483592761602906830170478998853625894211879195606568217589542918269623816688996775795016414748706946257468386470188501170783542155823131852802598344147514247844421722426084455824132122141892626989521284760475171460580381589197643683465371987114906820284881250403922275538576112994504662137223722951930797392556687456280347701833944468148558829475259663363775172802658599342109374380618729954658522041860439895483110664878008593505254280217985073431238440479179430739456965722320124770445147506772340771315122726769352685294561596578196017740871037571337448580937522656097502496100677325298602505099467589044084020262808973395543097473324370705205972433821651652624367439245375482997356309547886758546070247943118120268559596266138514471443372761850586497680369408216073594747149683264998506301934446821341134876599694038275828410242475004866192858106832108157960343613472996652753150715566711844178572247591474845563559752540165462316975743501880969785763640342793700603211440709351988498517453151450316582019394902420642531193584492825890710180943915187850656213624220890329933515936705417409619730492460171898944579643471587432866414491003276412579102688675972113791724766360502157333023722914499529282207768052994445336494117948249062266078827549411432173309111443124174613759066660981293169089850850507404886064516659221156479028228231701572960841230134360122171040746104159993075971852018273212074596066091659182721024293099217961575241994792269808297738093651972831426859463369983073541001068998243235340426185747431345953602097361720176515711002283894712001712426730397520313808539133575490549482964269097627686744664513061028581039727917519226761380195427312897341220961548957636268367669419548199540611456841092753522065303770758095122290581106735739824747955939406858675583102189004967532367322828957640653744216125782409873744519649185939518141397596881615122205868094426210455946984953065641151664334676198690046087216237799172120332109037084255572730732437481962526726909680773823766926862814077410150586316902004314128649456665461426893596225741652319069163933021333164776421006608312807532444393471163700671145127718702235027776222143474383106393467002935198677808465395738365963039658877928267547164852072185947546107071030201214400898130663916635171777447555026541002081643631548160889391543932437932854123105951105881786598420791329582104054222983296174600007691213603544176558582448005259108295133712352611047424493559236679068066613685873624085204276540954069747965556489815874143442232116843841169520750843844601229821651085060514236807177436759364770551211306001934752750798833005554200507657108871441626821198963088608653480463679847026159717129188547818167819987896430177146514636349015455984090567189042304684497215258920134975527781900487730822726254739335554930733161831165026365974559535453871988901130047125229918085588209290791383026700970044469718830799931783039966657973964776711355955001800901449940624335356873614232988969542528379608795802543958349377535509973793455970444399412849758509537134149892915501479997083875462244511141998997608724758476936826431697029507491778708296567706806313123228549739922196447961959783481237057842923909666030780434458938509414230106213574857664168064275034028058811118053958103447780979421978396369043962959406363430318058529012653750653241708071403741067179671166557083151622810454338833432778151382258856214939608370506749381742738209149823140987656800034709190165603701619557847244779438444590052010671779670173635782029995111341007869999801379003648860102691904461538815220174186514456032781521466449729797932989532996959683196659609274920244768329430553523085455400730025346528626833430665430295969700194366406989290521423865705065985589596717381719557869581944051953457976111183276612144148921054259025572909400630929506143005151224748003306287598886542601580099629646552721137704271280194187654605625722645108922318472396645577372975913354977162353884271370473251907740952375288643579761834610522007559616086050193637159117974379865306992738154835189629239814836495571363994409494564495690550546824642805964661389646248697872092885133402688572195548929675953544984817061748085382922527855503535587348298655637099218374817512968240308868866733860176861408316439507216490779335183024215221044057166633487977143399180735395515407402875929616803677090685400983130876527613312676999650362613980905808196366602349070326725550290237324327733694733170798133294908765722722827581406076346065041567984278180633565672193450964816340259088426153102606133982368852409383053001333306340652598665695870094019539475944085350068087311076145972402937236756319739779906613127132381695313855202794314953314070294668773092121343188402045847064544204496767212095803154222895764769801360352029669313863165551056031953793595733296187246683520364805711840118138152335747393973889576868356937590124451467176838222212099051298568489383062700422653388526691992410147948805624705405118559382675040791579839958337496607242180837102130094308228738218366073018901210567071944533119510670681291376764676309573502455759319376982265389516758391258204518692306161391811713823508898967101731836424426006684944300947178898976303989511221164205493041593371278039081228650744201963442244757463918880355210611691456990613133254010199176690725505283859955610613209116662085186715639767896932730997634016126018014266100729319444050383482416597986081300821780215955821156883852061117748278930662291477894106909951353208969476492618107797932849564766879172974645634104771793710123352038336494502766611272132972680831639579132058656910277913453202279846669923831935855757849690748900612890519581856999594978861631267848955755582075095944594866846917651413022022529292421396593369271794983340459578386649736317014382474369738349788807595310275041929277091208862578794223206396403696300414589697883200088443365710016028353929863232668658825980522863105509419823145229428304708265688686431903212357184677941896183798313933015458678395060209097614957184406646892908687729465757473184928404579274186697003198387210683871070162033234914958964171717388597885592610743970577230734542259823510637079151340326659911205773668887507450342086313804027403359785532443405113299591157532514727167058317334870997425408528017315411356170960388023586865596476557947975758591882089915702335789377443092097857253102431204468543367560139435040372492586712767874975411220052970172325407982611930210616185372695434075043772171580891774706303846191368344812525459796951848794576759698702701241207549950535968442748372173315338057930298415078480231642577170353955576662980583807770635206619393396488675563255363961183780751840663452500088390274200969813460881410448306526480896795836391655784917699538710715257802773560575327284486542926522062320192017562620370191320582193853024107700921421475108077415709703457179412160667376636700458041288030747244605111083775476986168073006837368280577360628147324386161449796533375091020064069687788787030435754201635905343734498943235057664128820356349307952986512320587053687304983917529191855151288157649146107920667980945084943825606955407926826849194794044751332816966280185023669827383344950245309075576245983153342222235429969173913923666382153474140956046707045596621253036444173864863217807178011001429283080418753163347497233118208414186562928866884718517872449879607993048102475602490592450012158493684648021098543639860387452154395737093077604452258134483608080167820212799863684005008502180691660057350746978310346810783332595762604664438042681511628189168052695467905918879449426039003795201867469090559632821747536611985778501032316473200588683217885464940001942613830161418138090495472395607758617386930026737566345356921818422892329691093404563333716439948383618710570801156419849554963007317911549240150927682629237392436366008825145249183619358176378803178143808586032905698032739452230561430498778439499370125399025217387373343308907358100820252810179791549273598977504222321329159725029842636206676159869422528808688770124563323452350190978558069064996823873223802128511433810281015385006825557255776573937940195994444799109586660618286025142784700385878695602117641030342412366355774568118442906127807808393212763961635850103006630995309645101464165889063654846737427244291656837579261144288133366812622067648258211014349348084812240149643973775483088424003787557661491514396533375098975849415126666863538918296231777229065263299549251314232051906196210651968179168331366168106373779221134804928298920547072281215386262205058973100245001571351723521872752222384497130962544369254729581238558647983806404333097684790995726612655242841722574409038526011397319760789291022061492246340285122714266935166120968234925692994554845193470933900575028640731540977817374945876149247510417563165933495534187686538251671182242255246463691171753854588853786924907804610713835432611808207868414587256129774841152244006282001692129572607541166814190546787597985430612377768942481667261190508824604941876552928252018012868441309799441178334721428228599024810508338898183468151728921927684541445919595246073309620307805618687488284118088904814681780471952932914877885111421633629658832596864478121786344772872814277111231128448467319897712073371676597912454060492833286451116230044863375024234017658407198643940427183794495375142367020529986499675924834817068716687786007956593113322169607587562419410026077126758974918095402685866037108829652199786609613015652357824136810351843659199936910098885811871056411060184429486422357670460937976756530653046027725174193699679026962679491551406421155653174248578672189898328789500048810601801896634638777010953786086222433495431106608294816142640707552303653942861818998198437288347675338022684677756119856029080414624672739244801856939917087464321193830381493182814103366693709493226196541020445660450797967146561064873507986525681301318711026746077359024746975411631510337253800706973660434853367755527436718775426485421888773569665792033722575422936500771513877741167317626000516107732243426277694624034458639537253838778752039319428567175832711351347269421790900387051236728612387939296399007953058275250094262185193900578237256468201156207895103625055976937875467526197552402584538387823581352398463427411904004517557117370129588170154065594156171427407729442342223990411618289396277406103327927018526368561953092282698905391970725648011173205911342844506807715518166244268927781014664157951981794328948591670890554480099507471888064446326636643082118706497424021720924075233462406962099417242770035411861868155187950966418439967958387766745947490168604460536435377372728729143207537322727383094268991774911956902520243899947286217802726580461993209019496686622380468382103885342511450533857529873340301063766947429592786275751001738094581144175372288305628704212521088340792482143886584531811585412742536928220087536785515682122054174688498776368839559280731651435961032588185057917383241152697642369935042175371847324770348424790553854537234851785650332329238067059974214267228926258921353169261659799325798194768338810282140517892870698176853694316811663884663133396852664255866234371798861176103180997330094506494302581598042309930978946905679028024510693570136465697875389994974749363483235881724020954880759762777358097387997526805307231837131440889379609971531097368850279534924646395331194707781673719496811387327597292698196927817483216506427173767430677621127013814622218609787296524354952053583061318056162315422504467394777761810450666712155423181226876325868012416834598472784425294089983898600111835533245689343786271559900136296611147296220675811107005716578435605378231424478880188850739144269104040182682656415020428142358576517471018616244418671761264236804337576410112364594557197982848905823596575814900011784862388583547778360313133667024857842801918194023537562949872919667549666954559705477334642105647064913112617638195991694277907632155450626639342599154497610187377920017595566903241139532936236796251991596559716302418796423517687381079448749755728159595157458106461010265381974014010931514738555462735251434646564072399478198559351464479911604371742474541386467774624330579308691405516753585704449699553302426985359422495807659987222010271053436680148967443603512610546650565344297920848056265038362033253446119371325748061256875484926955297279379894933152234784676782895505572155283664096122494456341524274679243368317216837102343001011060943121142473764990797364821879812211234493640041964238983884385345346304859245978948430712883868578063100641159730723875295584796234786090867976635058605495730547061560224661123374754549178113413475331079297686834108568302525212392520518027059688930155665266844354269128203219400520316616171817164660523801258653470670308942779236641723783336472986609454730461862986136594671719289002280098942870773768768674804096953513775416810061609323197731866959983723971047750649240317094494286778349511529420652233966920396750466776702042531136277496951297848083962363532057373732300340773945415635407342742570275012229627029842540622276375962796169849604176849063606636805537236489903205803000490009125869644929425545676391302415838809136513209743741618014596767728103333509963849612044634890660151718416978658923937443319555949431889081493990465817483318151402739622900263976946396410396561091841801221455643581517616043195124091173860654260224059431156051006706567688959655052733065336186425767050077606682907676604209848211557235350940298319422360474226764563396599862066558987561330751515645398456354069962164489797863316653130962251727674422681979100817708306310799349890692901769954087488530833285000147736698622978091845898597865465272773174878528775072197467519197336450739159903915220654737375867708808697792645854746701565982979154015131727555661398862618491351900023743545380562779379070842669330229765626549418007324625764446366705123405086779358477848688950918206689468910214098673935343065732663917441502574047751684656595844498967623983280324034912115173756256387504343718717876423424343061355995303438438342579784206792720215819714968344503454253366530167370030880000724946246995740836193674998546178020121395000777388039159530935574242545790269362640688583431388353564140116174435165205110273782675813899601153290253711060341469201838157386378890897617071422096485712357438501588188666244389224418524342239209098868701071150171354282721074538204330196790651917233259483325469849755380856862992507265917932090672197204672558476768386787274995261657746014302738337588167874950191592562421107418533727964991546198487186303092696198283484551576194183856549044748055609205169676099733200100896946799486513199519096579556138163125907606527805947435407921693047732328359074401691845432768041455864698229477177831549126851817855675949084251236887254530318804020941409697715434341370555071302201124681418665861671833825618171097409679408741130880135569802012330277567322001112720965629381942968930245046170777656614106620736786532326673611295568975210711925552765273928024514027126170344806390987125408011985696732067405047220712348519226923690280193756901450468921072521834452713416733977554225679291233052411666851673765741681886100171129398476496670472552555288905314226712979729965648706268389783416404762740989184185452589080442609403049540464855575255743736010297643303430873849669881533997340311079989590156221305583155580997631044942717067229560191615219719585852365451350592638686684227500736468903583038824797119026187712290597055942796552239556111143209324576709708089175558067023674455193761536868510303702105141498283102255162598816132753644741628190691606071249391288272001552261538841752924321233948286765369773998145356779534791772449839447948373984442984884080526442414287695299362520067091429378649279006588444143161352610869126193921872335770623686986708572438285773156764816685128250687616447741769270254225298673150932115134827075763420290748409502599765443663898032789477983324240285574961716177125485062784262879396795931758528244132288452180128583425714395350110472953111653473939145482892743475627565079826698243849094271740828712290548738319834584883391917626339054157054610751234004925559935314173268386576442938002669278830062318384173908077503588751787205008479638278053899338282595599467703122833812449391989391103008381707658129729220118850589893248335895710115071801596645233268059553187905404017677367181781390786817659626241003597965516217302482453248163155655900433673884352591438731574980891514909722611270965173896345198761023438526764148045144795697409981347932391978312606182132041440728906620652860551445992268814083541575930644504575661019708650948577280876826573668865974530093809883495193441657301660112437073742051556986497954522869646640430363427293961570212210504909821702855811065146861859704846886496837613492526556946899292320222021793857482470651411972095048514380889840475447330959643972122697298843615565297165537166983575761345763161395467012046169319673582077430215930633737753513612021434551662661884628670223116609017676228620371147718449865417403644918067323137411276498150105752797156743038483303236323536807522145598808329585909336625593594269418392441834996323727670224549891504615865128295751723202822190444449572384459911086746591773454177985686378347920614605280215159409999219402717891915507728110483755348781736717378554927661287199353321025585282978292429145237709296966413690017386231295049534871245495774664315167847039567341531602062415373378864971793789401505047394486064144659489836681628269392775983670375147337589799572911662870952463308571001758393005326515864336981507071247260945908859196778728745418251063570697444218748202039920033635234779238377864665899857805245200495836037048084084677420359821477800469518995171156924416097527598256476129677689660918568694424714312127218888572214815025771201527453095260767602333315940820615064716451679966925972735742612666400366957182768664892641337754541689592831817264986778941762927221726297718259447782770361161541122351657582194048959418792926046617946208179666476999466766126897355070737398921433820192110702404230275548113199402490909810560270082785004272057657534711672520017969072340248884125254630546636535844032801924924810985143869646117173676045126550154372810241016086195270393318861991689037534497803515670600669395388724467060655331842705180224329497499044411022741733609633530813702576452593704336407855459529579356754456254489634532623507848158052959251882923718250470346651445852990847103600329334146237594617409353684777804638784094479396413646092130552069476145687611521144764134680032113139773890860558822462138975431394226884359162204348165455364099597767831963804939146006303427063597899800822120638349451905107693018339603364949873649377215600637798922297440937120641087513223166452088874127721173498399887843860310435618034343293569781944905264397063663817299406713486911041039891273846679606720481763016202732817056437850168839166903174363451683848212473205669968933358471795236272265714558520013836500960405755279223113346318278058360151083144127066963585512041766274294797745945245920379142121240954755242423578940405037727680921843529236947681879892902292735025850764566143639751464771999020961215160189004323991682412615881946060729619195973414409635057558074811865232511730682978818000278229932793197610090776511129199319558815987248327763291307039437790576504550980744607624617589514690806360848676022226507934112604464492132568397997767295113220653015054245257270059462985023287207592375310161004125763132855625082856286864653550437480986541586548672356857148982354229578035251873273092657031470003570646880880176460180196854384448863678515002657154261686531069704121517108818572298230664646317634341002932375275224930090793308163061308830556403930810309583466325908332950599646710341812334001676911044391078582818089313616607314072624973329182803761065726620991362164982183356472607204420119334749830250921520011403906168537270661090642417933608681054908231500831629733216982427310142572069326288950952769921229553007718226089723659510582373684710028849341453713769280546896435893034933850394151505129252390446022088662222688887220839088317898467266776122333088924745423722477538289836308265955637608184082980145579893387785343179772827412402950366377055221973168505596424507331247220334553162743502443364534931845671799132281011872097145669158507871188440887359916756367633652653448509047876077662525794520746114144196906082540203006138848420760607625402345973349977490389954592212574735203162696215389512695821281532263509442064214925342470725516364569156487599031424034602343949090347098616159800701322569656787123784769723336967514310642417823469782138027064885876529248168630606600495526081435512673524728973068382454293652394077340858683088873545148949811771763084114678148185593161205119557694390597443033534208235390352209175508451227429370651555445669143524381821718525990668018255320149593338219592731078960217189552103494022261214948302503745998252311293975873250323442987965444497938813129887158708347993406066536464836722684968460323780527577992557133068790739229564715439250280218699992354238243230223318782406510873220416269529236214001028876377997657794136352912413920167921379600093127333019810419688852933634245194286037095753182471488463020010563654197359621608652250112249456826245517958121405142204222097467525303462754794275728759325889575472852963218231365121427652340934132263528178508849853705494045229447541714187994445285709942961951358957045273389944411348218287145868690226483397361768556406857656496513848534272207340769548816865814342297787793371991673912114536955057285431894988106168779029409517549309630255827578959764078870808130453033779103343320976190501879400507295936761706477049477145390116064740876086403314086584904837725177223621852001160086400353229940267633190944851903526011711730531920171741293425667536161845788314105565317651953769291888177402442548836233384491855060364682251323813695285237409887598332088924819153285993871185285892766795441765078841771522106802456211264189397849135104764855690490402559562887108304919003615723951965090886973924323434079030130323093983179130655135196915728990073053545206870193082488525314738549107500541823878931572741780683222288512792773154757905901427978244732433637568759007459132970876198708906171356827156948745703158176662452156428877282211770615594166692278348715260134166729593339144844808870362454377798832589183686617693009176256097646843474609389060294704795322531967845703860055808504906155402642388167525359404389194068198461723029189967126319796654764876935483870679327011910046467048197052880957857410608486324553272741424749650753550237537972900981512927901731102770045308095696637584401313017995865754939011207145677480137397839836846123003343823302327592862424294134445226488724686658986092919865162607004552908270042382190630613716513889656867370151023991079677498695084064309630732800993751716939154275052841414344305351146166226666828211616233724262045995001280025994679800877190474339625865768441812636119218023061452268228556787469553754095939185427962515025094720508372603815156056488372401148276560763001113964222006558428359676213191749932836228989853667092367763892765096810482411278441568566660627136477172749673958574591724353651591269036923238765494570130849490688036139590352035022179718848668935571778821940498498289794857972408906423903418780275756019917590795910768398961158896904804777014748202017921432846786588918688530083538484834765849415532746940641069872379731018137657379052124532372996887553733915284229283906735354623833148071340096989804527443913847042362392569814162656492320474919321456499950178630598551296285761080952006032214327523567368300412472052985819955274291046867783227504323237563823008800902370735764466080446025728451316440552968572045031273000948100063691746456739761853982833914727477305477917826505400805605725049157733041603912545886333847492788845502692458857833518773294344311725177894152985584976795321371088110746194923333795340009233803748944302757972872837740694394700660050239098805047215206173934832735374649882930001982290112824483198289964435547592794297426345594161585056376013311784279280182881549480168291328679360589226882101117322238419717818860239810954052968292504322652574999927210504985685459530146997134267672481422572578659112446723966030804565675591883684514355081800663582627468778645399187026998635575545596763576073177173382786212924898064342639574290435033990760237389773404988778799605624001881472264628832237539067228154687832461374697860410482676276873879720412523601551134768904540619163373404996822055321528442840071933455861507290401071085412279115154550749309897351109492652417791800059264864949203908614899984548256333681621480842898562549311716942762065569961168286937732045620832773815368602117308040443695005834425945358811658592934763429964049707810736940665628171083192647727146083362312390170796713899857445934739101131936348547279229264693688257936730472862541370833470002211373031913626630642568375522682320031213454017962560544440403115740068085041233282094206558032210961366878440776330335961389509437761528606019827699316273708335052772950297281346173343227366584918086201263327996839442090176308249203968893181117076670318297620608472757129979004859127651971800584451208520623895294454884621880265856428675302924511536295945686494273735319770246796990099028589284820932258290065369789868600638068243592519248423495779586616980374768391181361732634581059680642344804505711400096392592093958205043926568879917089759290323723323435920384379141205167739236821116256041819293582236515522362695320301012794658358682781980388139397613824582178293095871032339174797684129474196462206614417876632709123404924466551781106047931171665725518986005382171529733027609719457000688500814951643402113466685392111113194498962882226661615308427880973687522681270609115525800422912631418390934233703878460815633280778019410886528624600567979137063188530484143216990471600969855070312288979135275810669210469182612689556320383733163862977358366195049303256327288927513360323244787174262998278598169280681985296262538093463435641488931155085467510018672427173908022118275258990977290785080390146718843301617259014230009208814239437170997396308481812084710442432954219435228582731056270725115288034454568553220527813230476615073058919292734079389897482009805840633028156451766560223334124125453824215098438951143445238880390159221930856735768088384846166049588505624569776788857217810662093347025361182630810321271686588907020990317810311864435327590730614665862238042753911169633251649502178743565390279946967391969644632413078004159669634750392269641095081656688556080050139724121683946716507986064976473795941500605942782068483797208639922991140695481710192577839194017747688116471887802543375189566189600595205328202357743903664014618591403919649785734449904434465047997771597305415185351638488693465026803101856757073645837824291940702442422463869498063521266330693441141629715541520333747684229754752790273057893487840306577185411963889797913178865028395796761512896359939030623393535508353905373519589884381856969158851139809381740917102177125400805285111868768685963334827809578211481868651837894307245104996000898599572101886749560577012464486676887955687964528860556971775164467886992083980011143836808583506081449965760216966234162906795794881869198086020658082345734820306872372759981226263678384481536527755092131315942871442250867314179089084031276577945917281953380760870892088606283657370870898159535334992044127037208198790856878249058385337856348313048107573538711924201717617086003281782296334244359174765224551666204769361842498445075175307262980675033031383736253613916721146063941320215791397933128053019542216505076392925042387521478930023502412543842075664909501157217160784968242674427344603820776970591381603213353660316537374077328092318230614288866174973123778180154957555585550384904801997836992624436175910610028811467815075767445142672376791171358146251802824731041954031022590085994805783213855731299006381557691360511175167969417538947790439800784676235125515147276613870513017610572712194004847674288154743974941859137006325406126631246257460971564648014867015788651538095161400342013895764545410854909846383583662282463245665308171899981808931502175485016635737646210660603207088627056218791791668858108053089957858857614006698541422002636293290858427159748259645000508927803179638569821574012539905510001585182872250369783940057170303566535487298394799740738294879732063948801289364232719477548361833220349527811607213153333316355329219643581211401721135359237397890598352962067720085547177123709124808477387108670519643540297181167457979421842673658011281308479363822307020839193964690632008509917056141106272804632006631776019076796013535648852564501907236194461778017311548819947456921426443584008875581906620981016492789305374735308750082270420199577944502323018721784071431598354835430487728450251361092632032333703684431444032674455099620602855357222439539616961175976923707798092649936308622018551511492328211179994525783058682273728174223278266249341331153491350410808947798303038556877575600352429688839023725058815498102814034031621483614378902306974028820150272538577601654596697058540000991430383467751887629067147046197135972670006127142654027773040589068209586989280391615597441696865421687789548368886406725798210353036173457468351754364666654115854474469109134920631204956076024254706846038019156343092299322275171104493319623117107460346463123520007325534213337293408537298970088033100186136908546901287011838859387392543523552858933888352749765038793248396258757211086926567068508655376847986273481267996827800199405015182569387548271267318067581109023500279749662854191316497371712368682016741329048004352964335610546917855302394405824894522883248488857952205412261723297292223013651531474227047105528771502264926707360576606077808676292624216213878614002056449278959507577435668767802310815752763854837512843993835103410078718872699278672487097383607169427145058181880261267631603803845645248244133777321137358086837257664975760025186426467878370752544353867154108425597272140150286082352315851238039115850302792201220980899004676024329132382280570978785410455282755600216713539208566105579424258934449619386187909470517199978664223753549793060883591391428492925528802811773760155248705810101832841935161151910220618675955434710651670148109030948875358144628781284839127321955244065307261397513617101986002322310266411838580250334938001424382753296398157851959123619907777977456427403009933512483291119047551621732318353070767020589677909803003511323559389695265947587564182669233774881238975832951199860219565756834651934080726006274016880432561696671589102188276355428923956989147928212010700628186499117152674654571044637475781808604397880484427082519094427827130710563609599506156998408775943978402168232253900264887667915247471553700476604366538870164694021149193745831989867957439891609651879120564300843553325343363226881222938301662883781943621939550560606626449682291292656932474092068015068469496074873028162385366413852260648012887586996489943164025480651477321774266168348615593199206880586621276180765947816006925782887782518151332604950966258455373800991950778934554239221977031274301331988003955195212798910299129655367534851280217210154268602792400022313280670566074582612040107779258130165439435825165510949649321557477861769019174963824731892270444116089799498737635739825435651879452915869248985750877177659153495642500260808652600525679044951945078650014080875048466474174438774130415569804499044782502105040609272950535682783085271764001393627656873244841768881228760167245667354946696557476470454007506835096251772295894640948703115085810336466110468275868828661514520912102296677457499239992964827211195863049229566120554402104632522545784185854847612202006983530890672521227103761351970927809698808638890644131018329805734842039104586176424834471316501169546698541002267524608698685919694281512409974365598319013744519703641463829508629673831166238959421170735873697687106240284023935256204147326467227243945041998447546371474244928315647597995438158177778878742614590524248448741893767750018231110253002837503551482146774262968088287170009477383693401151545373716096930840547421717999815055774737860301676077636178919112270962760390267387001385872800764223549913180421927815348421372934689334593657039248258480445824108926921723554711740014162817623916000560071528388344956105745342869600507938997902352497962001653749060824980731619906152771923279382162566745564497740977978050738743322767744479908134371174044438836034027320075116586697660879404521235506967845874007254466654999634097517294530452963067984713709157392499238013959118594316664367973795737478261328918197366051882198301416249744711605385674374604484586667738741492779590779329592770036131819905361144564957205063308126426033153251097138393668321272207620412908365645414361680118994074496061133620036746392678952180810249822505778440957229017780611402962412320283603122282817024692267904626197623919269182618184830809878188054030875302307683725049561633340499525243104058590889810768668985866151488316706550228412554795676199090193917401082378908539853457394579034011447784680144571108045179735980012953514349292437219528879540852153114585562839721403740131111182985742531807462165351047032533675648063233638663954087045409651336419402189133957353355453780065780955887655188904679829279463694785982548664612957363386446924806057887908407641764103155049390769016940960476721235294758475407184252090581336800375828800390127372663356691536272960997421496358133404459851634801404304762590993907369263880025221810456198095652641673323184573190782189646240070793637801594962962591409407136718361340988075247981191907829734916308334788720352039814471240178440878541435810889543939839481070283020347975054308805996091294837130045600296775337024396962709009061736085913298858940097912382106154349984775566924990686765169811139283721751885013558518383568550455086634506005050704426139133893986668236082064759263978280787885124865559415101575205239157018305635285166389951232716718103014351863443283902072186047661457300154550537581796219994227344231487026681305869678943301504543463607224233055526606697461487182857290380028626135791788965038467426682065153312901931044909907011764069525844947447781399206179870796281475940446521322381599283027447185051788175245252952588684872418402972087789537453699759066769122123239659892348903352309622567143920766410363133989236011490139218486077063184336387244444801138126057714045789882930565161947078294117299070420507595054221761459997520237408633978634364030823289748728170057281299728303173373090481089011572945253730842576151644230781355804881315680260440104713588840195496083401258725560324043201582163898645606721857989419390255421316741522043241689281624425906230745260185948118986319019783764124502777261507047710337607525651151451803247315898937228725095877652272027792484688001287895734281102068385196267666402859437643400287584732007712839215643498418610515904794841336876778290555536316612110071417828856575759207306778800628505723772908834444258267704428687634264980652398836620512603890234865027079470420148603070987550305607259829255550220559100506777911117389854812893647411009037748021385369119154486302719725474502818061420764984022635972689810496605014999780106577472092855261790301935882601530096598540203143741727323806137069851414407182829625162592529146039264482197329532745758267845558480591979670623270427373119841016154148625832134409341526002859517570009383483698948230072112537272514748950262151197148966958577661514398216653201342518355394987153455818923851821297449879182444367665027669928611298158203043172718114545321659888808546050741241187749523225466691067435965100061521542334837805112837019992578955046027754835223136429368406875132887887948242070341404008442674729822449283516663370323378864804023161449241132297299312193110137091202651184819139660543128078194403348009852094965996981267541944756911203034922383509418480863719388979651693308616692655898979197452948983068890118950533843300045228278581471996911920169292711161104634670289372648052052370892148518208555674324427800251470694206110655314504214493807594151775144568456640051846701314112215699095791196628799995256262375366375778057566213503057106007860717263918165742347267886585053667091249628750498335617082572828390136765383483001444834664189278262680010782188813483917858244852997932684985152547460237585664463989474004486719853465542947089972772731956948338892337471078711613561246921523996077352745581913586818003397233144626995966053963768945304603322146527928908278803241945208861607073738500312137794784374529241101768038038258677745340459895486081077714025754493054165281813659676379541442862001700367242065720364929857404886297756571308504166921666979138981680706398770257962212267204790814883528369432641457228014319128904129394290972235622215655620890647586386431492405748933204494176152174684253624530629692296215198841050368273038302662376713317311530484134462485946642148424026292282208156743462828240222546244885637957009067697977096194259275173173818201990431061307804415770605606332060744345976084799172206692842375384910290185575953235830795811531496507104221510134038027743128419802118052923916580858877357111436805648129725278846901149786841070227495726828426240834359542659446113744327601286720023151809322211435665985731508976868982987369356742297893618490501946182577526648960656942420330461507788448312617930441041065369715206690750129872520680863849135472806066805435017239261708413351526529444170073175508401621464161988958570519300624570695041543854349645091687726076294800231892500314303845075134910030562486068115282949405735840117146189324529304694163506471918298522208796873098767259164183086740322648973626921616209123166946148246560274633252496328402918997777292754371130468390806079544578331371411278502071423769678116310312515822095105325494608416322157121558668183068906316470654951965427145630466858306589070874830064184550237616556033893208573805055296693132779333770562250533661486044658804346228079601402828347040398524631149206027655627857216384943893514717508422612854782985684915539898522109973627672314516225871151006338251162571108995581955468380729821093982068680540698223327807892988721265385599464908264517533337367576677662635252994636956646005816312693202292842902637647414269773613753481147258554216357814315444098644647592282687982760587266662533313961787605460669495841409827299425550382771650918873613578556744481909656705177008964339191499716191879900772309843817346263284102039350633933583556625105475898387605364433181541005508688302898259100733950787263188138839011222321280318445668000650498996202936512946882969918094799654219652919077958893286502734183029495775267289274115849407832972717477385273652983034685708681975759466234353437964966374229118621678900530380655480638047866614335066470973345650381808701775496164516621988788672984645821456443497394027059341225090479690869322396388644651914663553963367461313208645244478435285453426813146025161757842238348974556079845262737005595529525571246098364231022812397142228671310431281213033194201729506005484434485835465276379618370693839083326091996682129367097367697877889330184650624853484221949705666738291366632526165995529127827970556299412132097665468923452703101787265731209185565578902192894462583188581527578974336994372351722390950436084799948751849275762980955649395737594764715662890334854163999668602018157265204729726899762838705025545082397567955795988762857126233570640989776513003144190298274191655102127769250134240800710464794516268255595823013131307389842216473410350760361583495267568833243843875995097664850240270443087548838433019879643496611145415920165496621334719655863664762818297569350126327896506239332825400695968987390051137353163450939176859282446587434682152845273415671417916793539387367789856866307280409835859776818353874158016121418381692719776885619056869198804914132197326678143821040232082072509168034230678406341083558583720180717976637211029859592491407726922005079089688435100244496180490739927004319852544759913200333527215902026626147985458697566919583066397378914650995419347005855460618326537025758277274525156794027563934668008499003930402648469521920249561774675271159881766155398585694859833670053077552437699961575127935987753200390573418007387403838281361672624575237558684168375620684879733774882431706263995770377121291635167545036162935300647512455083090128283464780274023876052442612230456570441619922818432148847246953037559930977610276456417645671780190277448664706677356259142028196788668223971518307612991285835022551284565010589292782219152824587721352873031501575643351308248608324893279593314664407705195605260491781145148684088203387496491644923361858640067613469770813998849494805216725818230331241720164194603830118294337468695285065177042061311937408299777522192301860439766292763132965743802287383009074573147962213347545318167853519897552300357299445005867512665867496724017230109087599292688495936708881205707027368229812833813471022158436087336824464890462441974511068093686140256950538463569041218747316935353539320596139094505705293346133906219268400282752572995340370761305116619599379909077432142344056857173905650310353363256624788651502741069318080421285347312710373486221424536374276078746851126441407072761530219071991509081766109947527909466107214185366144569612595102465735082912026101910225670196625300913060024341966735819409196552991008678346174535703658651017818490963237758476910714121288714924251012411367856643671554380480966914493146094182205313241286693560032318221087348539283608769015210409517270491484501304812256307908404200673128944583128509698940751044292085644168949655390984418164047042456223446886470627215546053452077562066505559621997609158518059647568162930107451869205042764638750864768605273513486295563491729050767483512615461419832201101344445684950428922923632969323333037899660916520362867316483772477011176904447930479724235397225740241348518437795561136430691049011996199242655456984216253923225572727991194407220934098932564865212909827688313284546669156759739652583108807365258217059360599200147166731968547048988126981696838083315204018292323183003685782573288762895987195763270988848060209692372959618547719202443259096894882084858893750129880406903065338657604249954536992430153538132875822814941647709144439576103819109555168879256801018838515710946344693145978986584658523277137801646103460673580910441463948486970439748052992692681318625748440504704736712472913249481205194757810196546554103884600397037291241589014603126548368897660156110626848589207153891137297357748871655159992715578801850512394548483619157533652007612427895391663063652240632251850379994556500797282907984943061290006125637690954122062124086056221676761756882858817058621142657441239822578268180030779445855472523811347082131723211355766810361712562518620849183382847707633571943584524686076394054822318639306349460391256030101161289114605532887872684116184989300811440893565327672657354017339524626680521156563833125910923138714647808573101314998006189992256520006273261837594739825071896973395006715465265091056973944058444580672345875047743903237313437141641592363731833829036754873356602408761054695144097407733044527791252095684168328010543398259271220254146805194582657379328492664519448146091838977450009621056296573742887921660764014634593118668194996560163156464594776297101279029566171273785196747424972341060194453032643093063553024016296324115169530890592197941763709257954058084918372754976085806733279017826905775443665784506507450690502043914558471336187843716569191784850480881136988311050202366834305687711371453921243604152948450407727749228590634560652477011081870586231562417077320908773052260384977197837401871155675167410540948425944551654308864364856339659475859249852991526774566386316460286654259068756471629478747210207074968808108757079826516669919101978969777549627357687737575709031727439986108713286434174385197979715993584040186073909324907864444139644133502889799592198050739110684977557764878077631459258576438335050832321047384605453176923238114514888700079766735127728023275002421431279980841671921863672893027171677051516079916987504857587279996713165059592262508238970259356017332134478972172888303291854575973214570327612928093317947018001901809389325736863921765143107594497111198074198536395790318929159188557579076502305309022424200866935044652914512403533775681448572039713763165441826837166183858981949305140041384754510956727595751381718089462087805793745519078808070642004771694969458599337636144314418379036870510054347643662296713652603780890687662372706749955397923539802122198917227537195684340301924538825275001114400884739739257455724369936262367478819102274815663764563476447749337753909068356648474744268928527774212573838563022612150126247558475604766834182199422623399768676441894407955516724330196692636205664484061154782853059931444091846045787362897002475469323152580570620178964532893052882250933867439184226288456308956867795821292233976979972566985812448430553176307994469803468945487154592536856632691682199899326088637165321082916682240615716805965652985477521574507730353158324887527277380801738567477442012892964371432648215023025778228862227837688195504232444669591178552494635807962484539123190358047983165624308231097204894649139230963852055721782959846016065801652370496269832561751942740527165331660096333345625362318969688202396720831652108871431016340278679359123239248626939374779373829339749292076612378917938026260143604591755955367579720620026162628202560474867788964656707608108493791647933735803138476879214799975068962210004801177275265761464294078108850440546646253913129525903588382269177117009584584729419757260564811389061015450697777166531621977288973828927186457844269845674063916238529983669479316262404684107236002911982796144345292271898251711824876596885411860937951057754282267637974051586511986506410855504602990456152025820745989574129325262335469729349026050186402059641345779370566136832656922802133636750537471989942962860166380773441116067934971307409308126868922920454383942951468684867454132359806119972015881918322553355337436736457814259514232711521421720072332184555837349157690636919871377275136416843515995112008666669706579541733381785704869690488286379063667126961412561737723984055960759223711390450695271618679708050142201824426121247448117573631532002349989531465141795095366996835365662572113567736338965368809790636951247416964426316251002013001495160047058830501993104141280582709111892015471192335333571228587844370666978964585617593715978145742586602899944878671333687213390701624072151268205154921274180730735428047006498788569435126102890339125327845515246968863964621031128634059690282141264041027355778521955877706622654186544697662449266326429477755886660891129839890449187524946239632883703002940223751375458393708830039581470246920791226091587043058360876298963032968892237681579789782369655196171752671154422596974216289723875833960045522014305110713875219758724217482727632498787282611025125912762695756956031584958793272864336305598465960683275176168089860150556362341164603702621373555608877742583077900423301234354081077536956230683727810599855777393622764941645373351519387501373202028940113155091999673871451476996636664971642018593963256909568140614170549064900214649373323067723448517885529247695610231844856255974443367229020745910524285875222211437146743650894752152932295280591239789227737777102755755938377922189299775820841552570898691038261321851239983561570542802616299630212514232179309769103330373591980157411006933043872776431346438386959446371001377662672126265805255532651455595939924838475340442921934052887450766214796043230771410918632628909495638019199221048388379907833507793423336920996775161087958467541786120240539530840782625964428285543525929094955153483736428223811267938330070981538471102920475509106545483510340174404727045288220433413004779885734798936392297784421068282603273362771923802892246323523323187937159396665177815441676728619944662131088647043262297485895175100022420856896671528572112320771226637869817909362647094662853781001653284517082300100799689633694336240049636101790263976531904001984537827275219502712991887628444529003148198200562280482897303055528991297577973605942096355613816221393035921795484779270821160327469947673243930336414576889075208680445228304064518117465793048219778922835189191982466211231424741576057875261154870037786585567074768825217100091246737488251038854159186876217630169203056076790504247598768926285734570969928158658287989585274909478440081087127509559462322235513962181735447314333082440158566804674273741344444727632258345330729192976030174912378409144367018339741579612101265479893604938758712200216304923124559369863527369150729520067452859340184152584619756354964789180645170165275764631142525270875110258215746172828721876513971956465588057774335874503656106656703012608511221973290235518504509762049587896557788478277627321712362428341377169504381576133760779015221081649814952615477210640179037600947274077344609169797913892005839246892814889416253351193502729798064427296938176591663662798062192137460379303005786819466556897149255630394981657973494998393528204374862209237476560062548974550424005681411626634175279774806242721980001937295931643261485273013471141102658338933788896274903567760656618551168484017501145143849678723619665804653267290821153190866626043797564863163244378117554782206442991515432452782212045667451824665943247442470001316409907082900239497870633212840568785617016781534598654035408603595935719834754067229729534302134223599339225309596723842357245696768619256150803368384815446738826245481525982909231867260852657659347303684382352343518102131552205464329974813235159394307362973606464067185886157124286862180118118154674510979330795819391541643833828734910575886838187392574383328984382641451089937226284221912324877841122512330053031181678637511247355429320511444147694509808380530653107093110464852681854178566566232598240878974448031175428136844666190161942129620710465198502106666449183543994614898435548371979839233332222658838439590513483227726097440195267816544506249736694961910930546247997139748026443856004651589341079447986520983161332339817194578550368107658435963923010617316399355471827452147440662946677749187750534177751903692541558274677011856578291926053691442486360852335788392263480007886857800927187326684870164795002822033673657520248767970022454778716653224384196071210612319555368752447384131421703457199982082905082956554382045445596551662388476812922351320162470592271796093518998459783693878766300731694058988832465264129684417599875602738342657826886164673462202026397117918539512202721124357682930232232045167969924043399621402558225886919316578971286969508312687391222122303392374207723467660323616833305054707788666758453621987535350599065865958453017511139107696912867472111030419568017873169226589645818909627302373148149281815300390997279270039722226193614816684074431708818680219084416745304618072128939174913329878479497304057136977827346590082654497944728863318739324918789516459595298013226245007611372946609630787001478181431725343182387086801926366375893131089405986252386441401931528715592844125065277561178364591457367041902262893309657452800252286071496941615541774706003512384034766062159992988659053356505569337153972850761609146171048216980569336313357918851774606025926358467491987716978199291591439410133843888926745739492784081968264885687946547630172673058043236237375051665391377699575087467115994654947237608356182250039560212190956128443507181735828263452983037962280621697320958439396357404597699866119392347063086771541536908768400083744644733070882888682769148277747337297984798261820566700999807055083336172062421454658497996238197003670120023156950900397268493653157021607796408184600974000308247480800562131544746383378436106645244235192075988730758784646186886002764983496693838255230198545993023941376665044715538537627753093788553821942843421545580929559994945227042383122307237901093101170665924374283573539120266747537692065263973953095596875525187133161718604530205168530377562475238263300422943594389232374461278737637519621707597456937318424778109299037192479628510801966784218185144200020531413530590836845308625464490131537253700435811075125827818543512519695006275848380347329803197803439899030353607539890129306999631621344428352917874508268459585980211137274488631630611690142350950516841074950164476950120972878369784756676887316258151707761818766443768163339392558154672714521458449295993249436939529718126186577222766495257154069553589135292910782583686844373843777072781048848061934233974047262394695192572596647764164657210669234563090173973551894162892595593632935859216586438603185768458174827841834518435501733521256908799346691901265512254662661350782847089370694098994614392801955315450764302218963226453886155223012020763023579710513127497921092054309484406040032378957890184619602835051253473991797935643424366163973533744878368371738651129635141427681317482881022762971522201816232091065204407670847101409923156302619270092148544901536660380554043367338224764660662135965473134552456849505939262596938962365411905949290404688658562777257999428834871603846667263064467569963149719958608480830787470079625887183067991298161634677706257908701354265300984846472901391521503995152014897216293941424268874415485960038607990540211824703789306231190670232504051746058883584255965336603458238591950542468283143396109067703245579854382850961217670751920807922475757038022889572174973717026986103463102436223917237570843982512805140767849220083728902181201897972750579799845324309951847924038128748515046572863523024111873066054110614335337148445336415973523923664386486382245166640897149992661023841632556193655343557287803993836726064657882136426743031628509855636658475480297812426294875319263632355110303066794852971448421571166325392575160979473602880430252195288662434233231940252048001540697694080351193291504891921433730826869965582481754420917265023007080642067196398479090041395388553093633813340499748182817684668721879052298328792891619211647511353055711171186084060381930016299875599250117125865096933994294602857456821586367544610656092635072855729139122112781754804110510956917730350691989827059517415168542337000117466688078088885594770503900108824396471664142821205275003800911182012844986789481850289935067844069342436486656906556969521930412810990336390633886346810498637079870345075052881782710291677969013667466389629124958880612020076990737061760755148547959213874863354544865697403796004521700116961165096030888596282296661011841090071143015919887505516412866513225888894840378176501351065868337737553004762009868066736281666570846639679846660053799489668677129303635511484975998941877554543204806550152042803151038703864144501728406918208921176120621927294676458932304303274562982599405574522057202055154653235601640674223363592207160880971186759806499684604199482454392154027868298918100897352725723006165440743050386037157398834031212486517471095584370326554821397039695532000482775760515877204988269526967431201900567520618971817468182840452898248637103882946528111277159190237376394996314605529232506022268848211334433275229615705986191697306093843403031918969453452661940163508941644336950332510217045428193835083945819985749829587711907342457794862362123006356759025363249119429281123179599027278172207159601773497440367544520009773692859642686781657284295380239539170924536125383938609115391028103070623886373287962612111224199264483258987869570246949700056932143248095012719796843326027703625685077198307678766981297328557127733002714717223275454575353144168489089486946192110243741575161531163219330169690795621133005277980553489963463009655338600456203694778626079597994624186899535503804566463088429821490167467807283090323019589725715866428146681108286773385684168777122250631860841040022298821989700703435399657476759947811813121415641022149508133554986962073332534237703895234535029836404976274320323171348015987124732347848536657047350602461513115033404989497259912499764305213784831925872122755410566567522334855841105124994838576062863119947241021338079367749783092785724562956934298205845370178588431427654991685877589529063550070240003200232421553190172700438879907738333289136412211373757715008098552016732777598109218527633957204010493131298773572336019415792359900310938605417508813124797525873328336720745089907046747074995154542452809696229288451107354428955576993478886427369167349976621481669237995031935568873510404050907913084758428513693165849783754400076964148242964175595027810436439300495034545461912068546084963340850397376997808328451021402385067624388336975943467191981142448365785960249131455497884282096112137197808000928733253919238869049975222980680164943810935325474782763969105275365725495347583966102171017686075309855297709891242568087579806709596617308375781276207698608501065884410579688157437742459391837358008872145924854235973710963515276006966344978894148957763991244560616383352360598147591528176238113895465567125273999531632373513968169764076522121777131162852492096599318851068768613549287209637695270897910276768314705988135335079465442042967379629078399226656577211692633693474865208861056779633917442011692835003773579843332474563642856034269868494343253388460486198824009163192094892941843210257457537547125963470741434216908955276395856370986554031450124812707754610117801428302059328825157253848274467555688169278983241221302038261268854412071182836042015535186787910807362458066561472687839704470297721855088387152286475324328129753144820266026583674418710612681373910179193325134347089572462061767630359058748855354640763003992314939162804989899462001488350348755056214896904715246262283521861791848560587502559422833955365070206619729605050611256148882397496835569234009549688655092424411318244485330110391938088105059305512433964125318706915169458709669686997514499523793227078607144724970818245763372197896455517297605632193152414736274910824084163521851464260833191069430164380975227187562849654653218161320466814247844378356694828357819964273965763718592246079206205213589366675905740019276106092169945179311797491522624709523496195904558420478533697775568662605708110881388578718714834280840220431112004281333474261094317342648542727270050988142845954031069296319572797954287463326506278443139736328138999180131429604924261076284125877100554039967577136118323380631786476860031202236006583879063124836745658375607699865155748962683947719635443851431033930017245335229715189350073453053971678950477094083924284270303355075934092531033971711852623260016623621140552905998960656258020544236486352848665203352794085820846142198608446937759155419964901431642931918580582819187545097206403784869316093647274448895072808753626535117167077162076915012404214446828504946075606310995033549603819647202340786770419323963452022312402083096526679919665027439952859857182448572959045412824172092661055235505186106325881069595043903503287534894142682035299408585211815709361442601678495939732547991054476289000036364675016842810108690157747556926742433053562489135563041437224134120657301588268372415805497836183768701714276719417198514092763160671508353995697575615170070420313256210029823886017619800666882401748305955963755806483842337794056151517712725682715758235783979692252443504546147990225528043913063237089315588793537756721144825691093913443111387193100536398119850192352074643319338883841829033556165407980058490472862888906979268851604987101935214020423443251427770268802920294220479809513074818502494462343354415888169295992342741708398306565883784517300800493258039140212448805155440578152950824156077134293498334140166839688016888031956010729789296438703923801665972906963868992817533572401310214360254304943509900215452336703455701227193834075748598476454374553420370250354914329750823827368612429740683752578307533122056917304440200159214084087644517632197979680764632333913864709916359855759103022080875546111064775515910034708807686057620861870767777559746147062759573104619374628963637883578847021004095749190296502417749042295128061644516314939571662359530310088295991142153922952229850615124965787284459721146714161401029594452367470911643634350702130803070473224548628754360721010286922570023491567230227537456491202397576666796096126399731313155004239763032837082094387858126569978132631096187397135924050939824168243912737796095212417598955314960732514894746802706905481657354800788196707560997084850367016991198647096969241176877161338293132550741593825239150946556367586179076445378935267090416614119638783473775134029007131999593298694164464367759063783612093499511768546641067428714077945136955793314301179769983083256397662971733230740017612472467893880447048182931467432246881999708881797926585046070433005756820249992659828960598319636804297335052273124964724299666980087033613234290905181635303638221674795011893060784539924713811013914261092357514707800716055955991286465758813078471733206962883057212180704376362836475124866258254531179738652201789141488707112436709781958755589021866188401500539061824161102794291441714174667648646253009532080064974990694388578140302369033067215363201855264751503706015161029641659124974876911227459026814614739925712393438287275526622392943344207550912158591045717303597719825247329890145228342980003498115290175335891084533394885044706115372685971886119714028473248720735026170824024957731156270802165786247143623458529835590927177038325618110185440952388011599343372139130945257020992606736713058847625646044449143359602589283589779247420839365360295755097034739378831247652849744676800824600665331656249277906512521852785776415640326593349202363102364937655536445410846936756726081766603387614741919836155648142541596806286444518681293580066067075977204294931171055901442659580735410977640476763701566803944011723120435920162418478769183050507779189179088341997012924261205570540397785813465798932993234064791246876232499333950015693823970926216996920191280939836709669460028814218091833069947123156687656831787961527083836017563782718965118314698683115305261495476524704640469056202347677061679962899844673193180801828749736503089271616229164094792372710245681854223748258466518368047854510257454946159382322440459784261595622273116722418811883007379870024115772394296710767305109486771655077025467742851620410266788456659700957617682600281751395514712248806014270686956446920958385219301191913130235554947963943553055052763894395211981299730023140451692706441546225679760905749858408681933635323935988653033754446733883759110414965941566974418899491482146817620822799678082853352281644392602738764059648980956998100292682900508291790827645278936665761002604612480363517620347014514330943555249273254684180114924023147583072447399639858732794837544647266270821849617654922732793769724125090205245269097039005470348249749789411173756242085373935120649540358410064974891110808569286265343554165359403830512054922120165899750894555404711026775884269142976832003019719385785380853499786679197697506723948103288713973351746577499043883833999857443660687930742569772440920871706225886351296638084162700220547781581924916209168364135894512452312795087554213279000788783771611845571870440868572878308559513974841842772002102705060695601702091273948217674346384542701007541503223932907918526496688746532577523420187078774900023378420718523265751327351981678947829754465789791481565412920366989098848746042467878165123331867650439599260467286522529295576181505406822213692904256476734680402120947738343096492983556902753274565349236317288207268797610791986012571697753746091902577194413374058771698489884676057676435600080935196614746194970213453319300879635871760356210930038279062659676997351393344557305575135590927301689972418995845833489079057040997248696082727653319240731692058409383781476761376410451107845446738024122737829144098258974829149488721592779060190684632547941230187135014807092415659084215803201482392165220299423605372100425909313297920280947418028847778637210524426894944574782502892321513413373812874676634625531479405940201638043820636270953180295941828362507427844917997568992795813580335553525451988168764514151012939691999390620917208622672641905181469878687347145530875063513202499830405936220534900263465658795636012344676907241888241612163719073533330670242382307353684067425302220944046648268799226484141723854418783695783115032174104131704129029643965553770165478862322426756730484204671175165449343910305719768170182123581267401872241073875136241329080549394702160900987291411858606255754607771590037090520611718368020834573273754997210262124202776056752665654230220539752205833557193094600120222744989066900067495117359133507957602531393030159143859396564033489285922649212248884950738208274793933681653926874054088653797077550308881743773597187908666544855337245061503771269786802889962632530445125724732043556735090921612602383766529414858089701377839328007436228050638322631603555071884065860704989544616834420740190747485217057490166683146609481879431802867036627529550627616913660417027381020480154512668252126827657243452224267839553832291640924148625322812826464966530315818682762356104645405774168540729747186571789890871099538983727243962570040573331532287888246387430718345634768578361874050207410599096353875171680535704212536129800692869183814736983882434960648712833519887344391069955252072354639144218226423242530210527509530194807856708653169567499148316650900044245547751472668836836305646687288171424500765573651037022197099216542162423209895484406506433958327347462125842846444806882840719336297613480760487415559388074102506174111440275155017058967026120178442541365815722332072740259177450090690079623004068394130375032468076791641913703996693379889622071265203084542898809647231453833762299147488166192081338514236979899928071822816124576452701511672407396801265435669884388746151961050611213715851150764319518699660024949268762278357560227446468028921294869860890288326553481803870068616189026205785478766200509702661352107606833344200517712255815572382712847365312031862100417443103675745914827389678770455831756353448513197357719827929457480208830296770560021476834775979963443636237112720107229429373871130027669520963136229423388668133568434733750018174197779866062564772904964961442641573388226293728051357874051889312456531269350045595283446123727580252492878726986904861285297266966111914387993163002782120458745040599525414873832096609000536213783584585520442998070234433764112280205082093343327737369735470208205774615718131240280646025618802512760545175333624943254301435053049538724489406835187041914086122780569064099046000547496327428320074592052485934408665682138635728783836911789405736144256439394237036794869507950800610641742401318144000712386550030754971198703225648826677336011160367035357386030681871799376295838610765923278870927043156570831944535634085236952122485306511519795501444947162961213520918404582901639707996471956857896148219139276392371157537910163068241331419114474683456004799560036664135299058697989084615230958554618864446478685158601096060226328741644829326521053874386663199123158718192997495999402238940112381928409142164740735685547478247487385640758108672742565985338596737219941647205532060061290913440316128193213050608495108048097413960513603677704669088904193173843935967639972677616928439195448381380940056231958940419505374461272614020419524282242116179374745928184016598577144702694506611026440656588585156603737864572832629502246087229353031774299136453420663916475979529452256694194789487979849040844720209387933066730704862652390686129983850150531147547787985372802107564017108289683237117515817090019032376011804967387667836374039105318875385420050127033330259790682752724773305501734326615111807428841409677126134618944146610926846041379225491592329508266101341947945048257550112431277887205347518368387265947284380526136709516191184217515823977801495077234722312706122654786654779361760622116214996370501480315172220788128073159296194406380568457529912511403009642624021474489408671347758986436664274017838066578221769885104232038302305057582049942617421203401200245214067137281664355393766161479364934899540434571297371195110506226604577062235147316359944602260055436505838817224712937542092007289119318041156139942557725566327994342170681879429372567704012037364603165317755305719553657958461971857621502177278944088660039246977693328974406231613645676574973150096881296100566442235149754155122982774820974226114547473048814564244006792658157918274246606391822409162265639285005118050678821157972590627266266749946814161012607705540671163641804399170074101204452289834152859930801492325554935936594660361458482060820921258852831033397953464655363149064895542068719266149315369506131165042800200610716835162238728898300478236066386292267865177872160517822886485825332586795004525442650624848461932542757712884920969508476212717512182735937828099647359600921452284986954507168686343858785360376433282070213641650327135096225497016382939057060906565559657297395772347777665650139810279810304171683577186381062742933676760320516902137262766186673793972968401591176130406014552547112110798208207794511741749168286672369695838379401014829742262659552317605021206845899719410762683910248727640383194760382589551304637409208765455622418028481224845435239323151791620885459651477944457085856539105669116747035744837501205819402497658172461216258517272858541636609325516400112059740495814843395246753642793821465079140331989615316446444034483697469361840951814188242210188717600460500552813889600728073656668770092004070828660600308091086386343095022463854713886053021360939915865089607112451709275542619114514814845603355190002589079880726441202993460649023060207807597144990856952450704273069948892124742321559047022887889987890048081518395175640701440672072642022425153554107086909073280426124734041817094194293744858740436723667275857198202900783955493366640135493316414945150381624876316060466057833654259628809492191340948182351548353176984469037304652744260864144477450404419348718803782747349234484814319629726081147905514495247740654984149000729722486839377165051247755042586471697110717377855570196263020897428823496717965001455301344269229846917480651964884060174536502404000051808256500683880334928790256883578218193006777134906156257405161954757856465305644107380379466123224057460672600650372730360407838678379234555682765534803335450694454749205252133237706238620269487278596801724948652815968882098457866273703730781544069190571868482752327535406180745226606129142253273515434287112253960426407571924897952903917474271302961502916216196272766606600201373335889106869363205929545649582756859043138731876277474305834660476090691541290933782313472392461713085067271608771207311374769933738699779867674175293239431906719918914815158409790945322375594251725004390295662108702250295976872107096569666467914195631479492842236475194700107347640516013947969650514135249652386337082471240462212748740857757927825882887199318840605726001291693156920970310258645310377668326777917906796523429273599539947935338719718415707750429029635583159248425632158485288131018563445643012453083835794698716531967074296536956369322495958805711683081278507750339552211302191590489492025247749961782380448134046501916318253257320076826648837095245009297924347169316142648842941482955532221545682432748864639360931465819818132999336187421398255925911267941988416677030301454869657136456983551317496247624927611677639288833046904502548720532940389490451985729492724399136885556455528842084814397309030259517857835222917613555454947395622815038867026385668654784753152470161793426191119809877195570286501004803433473339456985091089815097400183162272926260554821867112958078692750866415068752647150720016753233980377385750631030921529852364813134052122713876211874394978171704476762417703255826677493853535988082874805791304395458058249164642219795689853839179994545650682930125147938131707897619109555057731866995503721668947564449670271463619860677874018016166732406758256913700711384119132540356048875753262323145196735580139488182117370192836455775947323079680822777146942792766844586884443950794042992683127566573359245307329639930809179939526995345683789563472498506543666039778623391674390403890855102373446888988429115917637423371483715832035060208590414130510835428229166459179857386305224899313122903367224640182310290929095313962621945165230577944227656168855456626858469641071977485746112290525869659123063801125585325245649287428643215010051282991289554399037755636921769022006908614068109808652249564070940773893995489933508186304245360409570406103487149166080885708537757779760858008461764292608024859495737087314408455672456423575479955310972944211809732988952475865723112514609644978201574595963007910631443019462315214004100128653893392961567238140845511867288646199080618995987919601136060371923631614963748769332431641137205923415123748936576954536343770592982533839650046186472996179462102717549027934735288922155159524608854923332756153538393686803404726787725273103641551324829488409032451642787846897091366484560065358228891235510097908602368340265592699215727272103945758099219572514779304552913559365826461183810975552980288735814377228090035167968481503116737429151498538509331178268925161174416175164645945887557202283457112772650242107284440237621771048571500919229800397358960363031617571208928004911007265752765391986286124717848556103965601928720584787478289436856913424452563882418617969962237325773348403989757228684280947809369726058710190157436011530411520167353151394707781195993212022568707692748040669645411897199426568924685769085780326918749082189320533699781423408875885205784245242340724340175014193007054310855613028834329175183015818862189817206090704228082437964429071235606721177450742962818498283582615893483788593156724881800376978128944656307589821272435200538437502838139538212926781041744637922016534946307803304554345524205430879986666668546878657238065522269216191788411263354204376112235290151338876928328465219610136934895326444600858625102307604462047009290450050103036922338051805682801846804312012718686112286314467994225474944715124080057585572343683960391428148909888000098390858158116203267939949920464404437380013330691910822834625741684591274898532787636982931570466205964681010798891369768846024555900916657867617300704370113940682527688666520461041704534891894518263605709213030765413434091577174769351903029949806290722492306364346798110030931589525044056002548258991315513173839910260813252983503210486375925440143969951161460336312070186193111496066745723129572517873216436351521213824873692354185154209308998873193325137576346751085773300750144724034974824594515862610741653092968109223147751518158533437173788423642792189495490439421995925757703465897992945237695995765749190249384302154730982863196053124049311645100328651692193315693903613028337161520421181252752204494335941775725183396167851831651694943884895989064979340618016748048259597459379035512484988281801433326254219529865469229761540469878244364553127861236669544100834070351912452423757588548960048691560043727514087748582667755126620837413912063847511834079572476636344374953602580969789416403458658621020020020027966030400658441254571354203654411992380644848498534156145695392818274351418396432659931561303126122936110487707795948178131126979131848597741619329866502220578246204136714020451139120023961495399686839903698380157118665883498032420816721006992040834311333444935136861763169880115035618568908338407540121793049618020347217398597447749755819506817396052114948497578882765271067594620370389971292391923287035865637136355314349070736810809576073486388818595274563712413021811938648270406101573495770061792229218852147488923846547280255359738496857969076313670080300446448761933136368871148955768860308191802939776436140986199820268210030493295745584415939731671264445355572667778572243196784808310745427007350939219433852376694911396292958663725682359748014361784717832303886323489373913587534876465543103947058814213346662786938306323123889232015242447986559561350332897933753708674421869588905630332417123311383125913005981947586269008587551648342436392617434286549108818209691397674324224214430971182319931335343171722648468798217958935477286596878049144561109254024788966484755048155049041087612213244455668279933973752431968817881032046442747459594113164352538075024602677805000905618831902180895654532938280032818518029600055030976570488105238210169984947617067580115339889673196854327654454817914807237568726576831114260796390390080354147295771332871416261346875768546667052951240710948439931718885646332407504443975821489864030332188607745782199059811679883442074803164354875674407617170102369061690737756326413364774292354200013151571149169683005255823516471092695699568429716566746194750385465454042108433127021218584290003374639318243326437623431137532408504806292571535569501990465483983625669948976206718978005352328316799281359973562836413932352512587441633048885948130072294064960371643448031136557244116191013469179786396647529192819284333992060305660325503322898021484756817243447418091893611753115826948978032606806012749080375749699239044150738029275360721897154836620685755192251436772090937378164390116171774119074257745899481413677634059974068619618790296988147928877595331958425581789172086036070795549529478929708700858134753539304549115326635371152017618878419642807577388155297444254532711385583233339374063682363607218871229273214330864609463625319265605583547827806672625396466238164467644700399519578518226467718801293179910427806033246732744209766299642633511158518622531940303828288932205067858420960143989838901190381164867379978543508905918141399074141787054257774472835318373904915788429022328227331180789070420758923679261164844693498248151005790650239489837289927035317964685400606427474082382510420344582824083086897681373507351433500568721788150145374112703438307448627926280485877166856284323832611583219557608863841182990485508941198325952616577407287208248676122821870847509339866596764134813757979012213408348704361409456925473994594145352299201944352079720305915239848218329389554850523645277558950328398761350811680820210069406990613966824984693543635305889695395175538790639351451424848924680213620030904563580709982729234661693502956242932095887175160027418402832315370415087081120265534719199856238783507653696645686533078767901211081214986085912438392649166972877870262718232972914384724214289878341494014107633820960977698590718416712088758231993456691988932241653842778875775586176594913014037815341602875893193761789073264486856589761955025847973342251551071264449286353692371738553511339942969925235471482132882842681626268829472217157986571628646850482426694981683397476708079004289210134527273907289511539714131566303255151478381935990484594480811150314220143725007055913269455586574429649515749914681138602760979388862756324984001764919908939980293046178782986734484784420911297410656863579437944178929662833630922737187562666458081988500210548717324637032173548663045158974478499315780811603120846856734121720731229669846275425709722818858292584386768495763127545327378340559929992619959142175712552090658889714834724270070185726928719314208757955145220153795970920928640641801350023867804462567919434515174086319352332448968567052925662019539105353981359744047843428047242254186658099259227132389933713933228914891511642629076394969323605528384347005397317243765171415030766365189994268587968025720635391998318244641838186660060685217352240670326460555182522087793248138317065911176086791084374937126505105456783528206469959311962215881024414495102273915418755635025309749368527134552903818638976278149017629962656676456237924854912225520950113248048135352666528058090345997136978290475768055327892390237154291441191195459927548577191452244813011050913790755703041112946060878522764392987519578389554440831692167834520557513260188336689172857818845678065723396738063422090205290193306906074524814007364813230153520049364098773575937295240277910979450665524047852493276020406931639182379839115667845434231003018487301405138871167874976997392944798640629124522471189782711698273760779489567030276186909327950221386990884679564751315948277481460308424909432044065996510007316365617247878527354823137453556176621814233293803890123751203972857510323430786952115707196717887893970918705502193650106380697820056476987148702811212962117397248219046799451608711015519378724591179940831113235239792255365622539835264917587541184488003246745776863204913164477486102474741131859533358909080554292737922081356930091411085863038939777970688129112343185023476340016834927652810964644465456400428494487478680357550699355042640927751571698525427985530201710606479091902484980687142336743634679539179146144964858238589297506921459412287148840874757748233626412053216092701596099808604568505804214593499157279866145670009388191435508205990701610989357452024857339528108899030630782658625160142052403162212267914750387838014467368444939389524762716980777038854830761139587434855040282124803775538369977036218117836845060210887528570052484430366080213787119147788112078002896428831787608316328555116140428018377451554361455670316615776190745657302341384359185935309888489846730969120824078513530544594684717214732753215297125571592724605248639108237611128700243860383694800790259483544652484393833259903107099379814029846328289774672916359469057658810352709617556204267755629286102850970038366437373667715855905788528918585703269205929338224947289151886266154692988601952147554332782475651894941007412422210624854717112837973465123027832220486413202683385119194321194385774069115562467962129308826434401639212732205379221600236444201147815189578907817664840640704117846748284683772902196111068536876171284757435212702625809705871087337370660922743572431803773666040814718149675491502683886817272693410277238628833688588074937513899531290011294719017258252782455302451018172038021462798218640048293842513574622676947070495064947085955411593649831459913235415813325026105522940451795872509107060182605889569303197926634811978782434407253607178701479679324540734354855328005155988665712702924694830299514190758169926357648134896091227123281216173855942124069229326776730211541781857999589190639099383128935318971137811281053236457390517403445783026321647113968980137348646756952804819808555313837435046179450950115273473788861340549974751978275231288751082931084455808098004267267636692772229858041890448266036993425502348470035221885227284742883768660158105674348709855337470704463467542677105705033434111642050200508587983898213469473984253696716345084020872169468079854647012621461120756742856882705062530446188489678314552928209696815319739077081579262000062742856100867061424501159853831180038972869129987546301887532872122047829214924274874771631883364270097712399293516755716524565758723712833638048331233323110511630618626938859162619374714096021129153820375485725753043454303382087713934646165543787724340643429278634045918987861292728670969373399088632049309179645668119566641320229523458453215821489101725750726304474909437153906767707838123052032578029197708902756355996920608626221856918031433120108673664938835970124541579970644721859226363262372941044668804361093479554665178449863429215489641267191462860470588134478805460564459423585042465699107664435076255897754832199333712972828647005781163955103242525843492950523415272161687436172721409485703620951928579050044995644853057914148834376867279189991889641332183281414267658002905517722358969740600010995018504735702107287625825635438765700895054526188425580101704395336650749605647176186526670459712346293822316481818281978168216495046595658151945139800361406444929674566593507603689950345681659329492345191286685483474640090826653238397364421828701405421990656537825160307928812111992636550051555755448500956500756417814669448666529543572683240996832387362461610174775636319359788077307237726512815597987141270165780180213597628534237351846703422348090974776777180114572760017237115962966190118856612512770989099774112937267884639527039292554037768716594700051678145701688592169392775479902305027244873856791427958647684389195904674679631407557996552966598935466750186663555436789737370440152088292036941536900679535604592485179193401151897322468468273522912240757903820538426743053856740103201425249265059459141868756698203681059454192200507758318406368717546077949010538220463230023142241110407128807037761882446593622796524107593052893831477284127405264450746531943751008305600836577683855950041393867899406070266493764114547686301954372157990929775960548604376229922729488787871745212443495908564868820238062042378289004222893386616595716195567901691341909251883318226877159580514367752351358615098790896391580865217892602613083697981293347724018267617937806361550321003820836753271914148849175041608449612887698676289111998675333790722126756364950524518586117485213390718236663709605722824843317391837579547707934500940493035781514901894641738724570424167479190897073916376481563322262193101968516908965215981118137507787354300134834212071203427717037324589933673685645688854870663820810955897610603445782533823480297410328650803912992904089964511462391173704645996342317990915596553483283137899140452173552446960602571858727678099776054249950464996985612482780022273773651327559702771345827969943228699724429394596070717680500126997869104091745566121007685728177828009798360312449096080152763013417770975689860678021148440724310949802192434007594014999071201622625602932719435869136860561957078446335794819417603372053090147719250265244466555098079031939086963841106309883854237630997134583057575211851221486696085616921059674214689964170336341071528476655046499035237528412422017153892121634514649860424380213891346283305813490580185638064217106187336558468291962243635793058030454403298147049480162854725964486894560780165882580131683991461736346659328267264946488931854735740044097302061509187504298990854340115782057594638266878439360791620215029023435786475040866027805062583889297127221972678182561696408586299816425341229157099604579242517738894057723018342764678892006127429021692293989672072646911349195228756813162208815647642920883532961229378446549987853166240004369821383198348816325784687155605258389984964512758548357630920669322982261166247561048826696170354743216165807269544366112831972015717698527291728857481781150592027939459494586774234195088228513496657238109807473923694017132436855323534479755040580162954688499626639318168853498236644083777355561055651785748890718825714407981490807621232048606996830298986743921053211857681231788909756009956304570174012853521285449617823590201629739117674588116385927078906952899241521328882517685498560211839793145718711669441403057913050872028392732223397287259808755940341220788922803884536296384164101933868873268342201956360171585018403720668395185908609080772229077127784106284471811833989296097995621315996004645086519701445112198913147760855550437028791418729123324266853874089548835546168387871501131793202254997558123809196631948063448240846393629743977463981863261613082273928539901681878243982688227969523532056116948586542701390797452067815985222610908617725411610598804717530103647126747436167719146907680110423014879268290903396613292452764646444158710148892045064513620621042098280241779941741963881978478301588979891374997090819227716628100242613154104701017049991878449853330532335141556755244736027740757550546536642290430026883995169790237750268077083289626848569763844247329968122438583410297982407229298586732684900663595340873461717530243515188278513588518074348865924070667101322081712229649135759295017153023392815456516227035828849453207566458926862057238406275934097019187908135821678560265956753457161113886068731093868013865312499386667318024852159475887706447564719093226098985578542100604343468841190236020416886026524784931148989506461029698663468599228779375202422818905239110030781340333029411436168426059142500842664450339510297677759392792650914723405119086360994472335998480597162934211332092851941899370191203242564464882914683514447657324941825284121656022274209362055217578100414372587449621872164970183986028615285741523895558452088620680215107655592199850611384929231756658633650768083905140755583292223206601353500845114207004888668679890598483958703611488986722367003943575631649690756489015337395635900434852842402021164067197803586633681439754438426880313131847751773355820094588430925425551321459445073002146844322542615567652714678498407870059097899056485969582483833278657260680047199487224119524012370911557635152746330515407495563780083320197729216026634443279801612529344255972604159045728108262665279354251921178852317400053291039028922415282733142321126564740272068368704390157866684630866902398178985426396810173162086214633303281659206869670829126892397864704027770026530492812351994452719784046124522607960559188426231571093032114669115364961857805913482984405855158659373140344165257009564910521770145817242233262688807498345252046090562956740642991061218990277916313393644841267127774808166527773996490960095080425413083497206506912546636613007977094300018627294246441270726634978073252950237358023523155130252114261771643730742691639965168137813245972966714632679394884667493766301424254141974013108259930998025276015614539851171195327826622523154597383059099399565855225718202076263742133528745231117212058866626052137789177825442778748901653663676140313687450744648728858177651447534904135030422973940670995406210423222937104844019952645697670556995899292819402219901410203405158323420364438355418049801885177552331237693748877555665925855661918740492705064908156094628749581710671412800514622801167931865554474120247092945161100145723839626308744784751447303171071860019042452410869884795918916804468279781328670105391872254850335251372298978915920191646299369976967551692881302749864781982357717622743566315492985011064117581135111910475244196502385308067527520716212156469964273178145510252035212674594055510391124895148682226022872736773727468006175475618353265773146078862587511452029294699674858675508634331326419123881426202358386496683513101392874729472322640863299945130011287349585591770467323189239443583522430895229942782896094144227735216577305447580907793050160207789519108755931221451534571642285807497346944773712459549756688886132081388734970345611629723374096958241353306827508748791713539316911866966932483908858695340506028373784482083778545187557244959688059347958518246023660696672379022629502173147856900468541814334119038693524399454827305906146533403740234613685365672163234426057289796460539397921241711933202830314059379793978152991150285390436419153985167638734305295217300086366439398946703668727219312999672112772043202658841190532551298968017644846138764815868138332088687149072517984762724626326406282224817326550689376606885555229153020097559689619080999072219112640297450509471075443053200681847257512129094077199387992016133787692230537849848335817142705025793640836915214823521277103816734648803818116703673834751534012511626526862971858755897111438085677804684714124385387677413211212577951292573304041807209832354777956488120906779315900641422118352393663980695148157598824397951585294000111745021469473392099526703884969250211194932723748344669917559269180744969653049931482296953969389859100091437903077539753593041788000471384774702368401481402711105156387381984864942942077904601131671460419487019888324896114731360750937227994181834565197723650145192555668731443134566933656309477936661539298185464162482657941575030253121490576749945609026473679423319331596965857892727763242229754827833414084233504394111950435955672629302047818592226121582641722339162913436456448067521016217608901717941370854312885262163093449582941425544888888365335901937525028609267802194476796012855652557201521681249213378804670794976561732893572489693763335502887106704153438931242123058672860906511324351176207170415991084683627275073075253006760460657700289469333337603260287019267420605726960426074330204389200239383307769532950132589927449981191090899255495734427335451530127376546300992475676394016310190046681051443847138224012463524346598869273580597804444731822181530421360467301975342919142167884914005493926067706179201656537756923274406228703238504202559138631636213066681172480922357481890286257793999686455508838232852403239236914612168016012401018602478860207610952765205631956569707478550334645653933482962416368472604600167310415757977575162506069050681741281225037336549037621657715136472863856757009448739389730876046954080657700808952441359704750088934372430614363818305143014029394752664017230128349237133422798102989186071735281498630406278054378395462772433498221649856724579113809822718467539689552491444306917125560349582653322089526842910992547823482296214418364038988863296427461574921689666157521010080784985650212760520892317625297617461989472160921795623999801435864235750234767968805496459820021528009632080603044051656902262905524013871497699329365696312076260508851546650832178613992640220387715341036236732728594103542414303178459977627716836701188496598943834805261026991780751283647450068075375097780018335586523159752911147437256835136906795842949423552071047696385172016827519648419846255516925458401100745823785849339934532181451780993423973821464190338985417484250001373762084900833253055145838712592079314518255440445212596246037365629684566795230641218851872270169494229607604074454881764093965001173581407053208398142803986513875719117477451828796500215473544874888548068605802689511347600243505420934014213491585236362422529398405568343480994035367458198405329331666919708188855615052232700778962647027931377223769768603730137012967423033678876723811354178239971413545792252953815587386347589983383203199017906497531523328109107403220679780382703576618354871833530581837635968516946776633533545219749134233574860520681374403872824669066655274438610499425703892341512621328525394766965194310942912195297144388940051360787975260643553752063724589004033727821370437539287675264377263242506757086930836898181295835657773603983029758825178884243490196516075054482323456334409913488606606628141497255235462179228623423054796139930206673131234211067082614579806386916965918985098587750113332325608822619692375832671186548303057899467680893354062831192672996750454835311815333452025804135981992163493821145872847314162647101812444506390174934811681993765170800969901994621035493198754375576200423185202213212253835720381526446132787819271305907208818142416528416929324460845557775131704860216890730641344460249142675137426785949571301691881335263479097353214264778669183695053519048620374565712466185232144619575944875086718984795923410639348385858368819454719671609266432944283882874627220812704354978164743761786066427440170239758157470698066359731659160651194760591870579346211396396876486598442416047430242921617483131571886827566500065510993038855067531044145531381987036008199074115693491400061292664560085195574307893772003699045773462405685537837560119266731592872247682092083496771156612882631942557027226540042326880688537829137945077975745729094609785177682341060667058017913765312590743370846750459437482417973721886241177370846512937984081597014051591540646257834178367180354176041534264802532696230346371713877590572911502308907964279899419156249745703833083219509434461860807092694502072508609472580602071084221751062512299457651036172511503529095085996517111137561659052137796732026235751664167994483334474566746836385826821925887195285027480140103593724497281333395961850323024250999036195402074782172685637471766904602904748091432648888718400735126996470092730363634099683891402533412317983697739347863357017950263202277518943213926344663155455455795494201302240250516626584919510192328900516116720984934100330536057003830029366816113370977752393173988378474048914976485280337124158499937708501008487628601097428747649440428248804574063373031707434052609716859250843764306154456236858789473375764394118336814811620006177798725497166879011763662614048310121598347484185311608209965352176296634678796181616422629898886150742720315700580863584197959830728551219261819082970604669075016316162278214273167607884326517565046492251067689813907440573495919492592431115996719459220698148333398759686546188172271191744479779866227737700972491288028605258097378008841056804928898536238134766077631845626548583646029450797784764817292707247477236823806500809122136261312396817932172771097662054888420038631039497212983319553395251475953057048120412606899066321493162511165929222247714693754218596513752725922033227160949095187051292391475709363159363636839924744391958423200977654471713363852609723908842620878461472779728629411976524951921070890847934247230333842411215662908434785426559226919138015250605529657613256758796529933375082009382836495604741831748808013740048921272346443212042158459163069951445831413835526070105961997757306051001544533911866834747369819142688965204235184020394932992264671309509827207140085902000021588166887198058739607821419941351035703212174306784470266986471841559077854380256975260373410815884633191398265310670817032304816957698572934769683782958997881839476197702758121374928197846739168728501664413805240220366551502609359903976545393785859521246326595351978309550885939865141193626107237208849920794209143402648231986959594610616264372618477860370275699558953439780762201291566634590849764761165679171908507177188120920845803544224300757904268395273380081585908721671746511792230935231457179933764852115383207628789794282370364501037436720350425440674903178910016289199747343854464524196002174842606764047002015636281469692089914985423035823914698695167170401127283042638425544540366387240862706941655083304908574467552053967806870091131901542151585727920497245946841413453239116869000337709603991632464737759911808414379887629608500522511008601342291513248276944450154821039292158239913317058772629144955260359465078565490307261088931874291888286254715029598710636365954285382639563202256685083400387389829338295751716991666132381140853268690069457250367426168590446635082662501872751511225543104506625876588791736685028914503923279397607139625343491551427346707778951232500088217159950874878184042299733276636290603762365302007277902094370513230116466969300734728272601836805818822690407443267244935647717782717264821688421286036094183537109827565422461276550446401230545054549208161696593270276155731364769370313375830382047799301870515635328495251739291318936155258561009173772651860739991207410235322101303395377694500591965588551617820601105835960961395361617012365876994454282568101104523055608366254077856171868656319378876825282270076224667136442135910746723962536452479320386294594100021551426210513389094593522295390164725936136418563762029924255694207299964217286875664775995318090602209608817313256290466778387060695729378296537031176595945758007924244014018831305237827352315052350175250704476656717516470156929929142468532351175171510652870794425227179031171408450602633585303040014772830410209108008733389059151111546842109253282217166032223343929825477705015067890502477545654298635953137589597545225938207273508031593826987928811427795778092309962434984636650851267737365234891985324288067890672382995384762699811362557967421935269042867453402185210045453878956520312434445979611014669759936771170463997458563650135851434834612280004312255425898251486422003824902734831636243022156288653062828005491431342225666007746186402147877855880534973443033330738360836956327640098320026731218995901547354402793294860563479118898599606877659770240197557699204495495552947133722615963329934080664427847458137058407386493544419629120291451069227613743966640570252176377941007938553540098282793683139058829697644148490084156287660554651031523916721142620337183222381913074931326654793823772580340841402379571677074282436293484907606930778881111633767194356639329923101582245295185424717761844680662513344584891295059695648410778654686318327115875460040703841734480201871783059407437387053247572041429511381093608069738014958281199316118005155910695724123210461667358754174162816235040121766281872636587262810092247003624092781158499214469289931360222216635102683302907219552073949121062134224950965799369960517566710133401135869929780964623220692213317344170921357680944064999572414234233203559893319696179846182594877274408960676171467686407018957511322600823886979524698536576188882578233103934758539058647697609525788445387086992709681369373691685826446236970223120032325095400648900906694452218276560605502009805749026960200339328731999221454534559454437658041795695765760001457719236041109739454054800779015390146837202462258433392075800869978844828912208856083247439271589227385337275713150766469662806014830570003020276409672148459782362840070447431931040142350476021486642387061977005767083676453084898217815945071695161842293727358451487607596262706166368750626463203235953633309048233809424625977439995897629562703246272037950331698221752398880009096905266351262128845970521990980555806505953097541368848779304937062228573185628022837027205417465597158601819508597104942875773969006125023519709484124665887810608664187540646513572124815655787770754434294439784849659098936805415843677420228785420401622867406126944078081429985692691174090112389938552095476095879967799040488414584283812259271543335685392849083443818628359739917949977673427449460295234742596171724401619181579820882108789177542437846983941736842880608882576338804866862552579239290669001282441283298561408526750310111166222757501220439951666758768907301477514137469550904755055102348504583221586340362296981107932514265898281575190545403756652573213258200572276639636091732099691437190060240458642438107823144457662932835344166898004080590646465257653182936046187182002251525042493413486604448041747167385057224163001275729864138259603819976032560424618096894823663920274245449445586183477499776529648356605752732748138856080045909557803358046532800593662731654629158867446885559357395154216608923107116773417530997133797268277666900948125928267500522437738773367850627251217269946255290365042229716197573684752491745011096015526701711219627661043528778846218454607285892777661479456112413245932039932363687918307276570165914042365291202660149121923318966150706583459107877995716340547435517621052423987709344567885083438782940019411517741005668214069835352719923276598689544396227241207783096179822040827689773508202034068278437901569447190532274535415476387395132325807559219484582631427061630569370060701458378507027372946303721818871497966224758964022052129174085674245446861925106257755739312650836415354693331694618753696312209158653286138998562351283038002345258818836482721956058094074687694123919743831278629226085642993726214921889220342742763277668288351648713920844433473357609995896699548642964432630175860901349425457728873024879054187522514976845552442946305261226331671533902769996819141638252995397263180383502528463913467801716286589226625886289126481593707035380142199109755708066372473866842188040438289353735339671357881480360033457216432119758284352367250267538531125654737654532608214389236724345696938213304575135119243852419882569308804384526844803499169163123424747085049314594709709016865994583141600842009518334891543987273184391939968992320363287829534934874103094584095733458177878440420722882255081988106261613597681994422621491968763011530399530774150986618078625136428537664683613788664188622034477861722114327891217159656823919978639283217357010305771372919698496744933030711532023797243252292886467153939996770202116165214256492713278941712252225042108789140474850708668145603143239248503561733607205217723457225873838086575465566177802644935521947555787358322117259036104090281553695563087657607874345298802578946318426436166321600254249004533666619389715916519388295155691162728587008680686488167579956463011099902673644677033332447585566905960590525258023709726506567403414463577071948714799877813660433064020990075248348485070260696781195429076468693505743368821465365063017331068741559180611807634932691969445217429816074276525847876214388800642382886068065364907255990889854106189151011910823718984418872238448788067736358546489116136358232013586300973835168235883094485764705933303642212983698137474768428409921609948251612466860374155215750269133466970387223393768888560781042950493677651746301064251836592139827994562940239840736762757950261227907837487326515317537651784389609994986158445171840296135115227972181248824489234749194878333033832038403923692113204190889336632898292723338887601548566304607970505404904310099844399879852740981014435933198011193851331256933343115134619590950729103714492416246730532670449063316913824766988705797323607414467767698854000168865722131513539109083337267207816510288737564595948797534518617910140834314066757022414798093601423825923785048953599824058320297278534978393206473193295651616343482570126886184185193998033621802712105722793914787029726066661085171739324508743476221392877206015744303933507251368857515361243275873512851041596777480661187875820646445356779893011886768268347589031677544725718216442564044078460423130643710346723441855579170577159957057823167061316372554141074147112774266630901583707576784345103885484702745612863441968607671758313088269341643291925649325866520265268832420801731211227767399086388371990409156439381586072511870692671666487949559613967085345681850961768703924051029200829437426152990671719749681597668721747031181430234083047587164833951204870194899701482866502682520002380831040031284039579529099161742823134799674123353653915089024198511277747715511386117424732277349096491956376751930152662029610806816985830811186961028103402196262325618654880761343547315623468646126100366268362436401049568926340168844735007921902627108604722605611124481660146038664877005687864153446624378793667634884930073797215362343066862717290565707873027257323049445043624623407587851896229038497538417075307747239248958710376357226785721478037889689775180490832423792966367909331010171453843844384944686930713652225588481912303613264161785313755169173418179776684118180692131742368070226813520095085794038445145009899706706079462423315156964148238898807981458645740104941981068426772674418282074086090552106490727261185212145447884469884104565646434703272425681257373483094210945429633036320059272506671550640903831704786974007328174865741980646595519664417586351897535487607428085650967197196990724588140561200429417500534354751454870074112179411038680915756670244650777017161480612418643878777531217299762840610995236257368290913039184599298005912803502684530921279666964533578026041645252108189889314490965890180010428645138862741123217654154665490911902672390464678729203105602097476190647367310101951197433374072038797363296803065357054444365589341639409322310758093652111243442953512225264743729126782469782691830241536345031527375152182918702634258822509792383996741281686132131757734555076844684633377658235989149528091939559191104381846782634489088349056991662216149581336889179379679741081541528394482381033953812423222583857216893092027642672882639891026733484783797188420167566938606313965434589771381971441363627149164700239308300217322479550639715672901731285553742048844402531215123641124305230488176778652299021202267989919059062564852104416642064698100024802436031228967524727441463740333451310278006013494427212414723792593151525774792722903194685167417533020407139915708255920988351958274484405158731709167978346801202418460285638472860065487262525306700141600857374950549223413648426127441653825025958827108004924242133160995722669400839752832088516611830933396630378510761906610325671755279909367591230463365465000140764115491852050441833636923297118645132468576534687291907545023126175373564115771915458655068388866573852359486421487343995411226040408036529779848460206725871484371293685345226593011592808308981596609309167355797562557756894680046450633685377169347694744717080470637229038993350612441411126183746137332981493208002774643655525450257924832383179837348984721731211398832441394828154441487422236617813854477326191389168545072794460955784091551052226148940092510642951858461832807785983302345602649196158638833207215679504677312882288581593244726226094491462026996025006603497387139037623406877199519100600654118438242246808226850621195095439284976359225243642204285954629375704252402503416141624194544432661989866469643762603946868483393452681797480370885743856620598168259050118526260584556352473647634448626962778453823945279077267100637353142380476042857654850864838374584051421349086903105622576047524669524554549981759229116125474763741814182111909694680362812517852645280812356619943946494915583487910727725627110950143486022180268592977727007093848403026494883539307567761246775725008709724414230924749564996249986187117333561160521709287578286139736893367003253730061214562014670387854602920933645984536175386944692451116560963995714049723258421649742350834243060793654991801424514640729340319495071083862726564236730122391518110768106453292317142937272838926148876224386195205979659175669541547853749704765027786093754331499309378775052630699570433223280612411841014999880891741212920451145358336078955694724472090565315719650338043057255665223837688882177672186312239854907887958199619443039242036535762107649137369838654021317133234895280209997795786920115745887807904394697473030190641191524305587792346002879758408043306887384439354110871445784629046428954464687334052657048648022464360968607251360582419314592751657452961258063729952854704436492205352481244007665085468267414240282103948039476540606916153729135176011094872923729428730835083002312818943438741075627273156641594122698523475524208579412656428282508202052358035789196245363000078976625390517676850352808452290814044929335027034583101940435065831426893191432025032575426665512670926624220226665882880826449562181980092207139957212696877878490770621243760048557519159045063905768406126918671662811653643607750355752422164153737866730989714088545825779827370410536657984721992360564175522363384743128249042782505557231895095320929332094956339542652897142761424363575927531194728375084351065429046430815654170829543152255454403189557326001129213277157632694129109754839987831683779296241632988004151266811886258665682801595541803970000744668147667910996530092652285298604455458544050055725910166872385471209482839347865487188055730196229634753491560231078275940271670401625432725104180014863901684384299615916524479967413775321235224172381605338082034341551558633112770789483524758270936526635340846107221698903553240812453761420986549853146324718557488862341154870951206182015415653836172220589190638409868480854596338564942260421993777971189699611950610695090466957560426943734431731167881331140336242030864969298203891692896885530588483461282182702155165799592254960198454661329536451782378284870765818579355423643672447017028270907361175157114244203718838939972371935399517701957163056938025514368905835820687816948231648098357688538034586427867052198949942820986793674074472727078763282037619752325876844434542835410128383289824477834355427804492912671102508239841630210911582307016444028122282625251531244123283192160129540495278939305937200516309243330716491882592714475285668215874894611392104370571029530084290437358972978969491866141751432508520983809823449091991441121308105381863743963302980816958942705052785153656553961261220677790452802964061309936125421995802555999899185733108659118381520602674983209989744868966504843541466406583786235309003758733298418676824982144476597393576505474241477035886871223384539225770104481093169731615437239226508860508186197800063229320071765105445879662423617843444857928934587606129827442207510862576787614261561475481658071913301393176323071877955359901529564437200735976958950223495269084886272836564122096178267007156486593970640251851299594839429767361212324446336487937401216465117200898914949973518512865725257124591577945726161559690776008054332893541742793699827295709478189827992848474282566149915256785344542412892394652515340789411585735388631726422281875062520923357184283795804616839538494643341633088272690522973323209477490674043340467213702979344974670423178146625960110203720755463104276448902165342772143900066841028435671609552686263067218382146441073944705300566452269180045242638847344079399283688602207776598694158583941877922735388714139719031079281604027504130459507970712863336813076680948682517441949484371086643764935494274472648492640612855180181888588550111604020074449492309762287671914233231983345498731746886907641574476457016148510779789614515658792810386487506718671197311665627516415622446807983939292276281106127734402687484272394081241218150989345501428817061509583725545559529861340597226018303253526982519804204336526208506476521688762433226894387532764772067988951172975653875877063459557993856304242840341271111662367573123107314813578029133612961547162960649866803526368119720702311697940736677927297250348091914791282947076292286723945251150135854946707361260807337135700429609680547528018343545886918816616444047666785608801715614870439014125034083114482766477571311224178414288603785792924034550521515636881234252894506376821328974678620663476911989487244757383943036368076031023767046660188865454965822894797765560095237602534172567757853263595134368602226737426677434711653437880901261004668550071354134597292827853076898014290644779936121164113157217328144364759335611853386974379383412872230581798239385329207146083593042624451235171573532949390578254701497598947387225774514882257152520366370586556785238265485974227006115879614092692471990778664805019315485767902522422803839681846789529732798753534937449699565395703379428794582457926767363388922096303969147725684074579111188844245221349292628821438360800133294411770659830083099858198157645264078769085362777749231070738522613771892055489098066583482392904315271358709727636238271482268143701447054298742970895902258207178769169235585036236951496835936927687455641756866824772635010563400235689131926104176122534562672826459593506334479209685454094641104727536568118236986869557669056608425624200257470427014460173983253711436643344306685515665496521569928925059411669140105627439136406559820836290550474619400229402180522688830949039859584921453308496220521312611063672540661694534519784430564568478471674018053647918213721242402593426103605413017683007812485462978259369173077135138593025281267239876336668368724569370776608455998440063395288331343234764608387450384459892540469787232784662182017015393078071747095335501565761994884943317635598343283629844109030135138612492608950491304230997236824292263410372858399109684440197173210203719766519297823093364809648943500949692227351151959225512228838922110901824099542009165088259683344929600877255096675646541914905037192678924758252754856309317292032808777439163739655528527231975402333405901465651420862253246950033689536948636455922830815594244776976977582021998950697769468525592772202575026004939047273876291367776241368716936114322079641270804251191476013402060985289751090367657980331560680600038072845055325583292965137767154007083582991119410205776753299454087168575789586813701365510232418244393289488736417190210950531307254395997630859219032899222780816765414785694695766244578519732004877877269564598854456738573087700760650381091999667565314605585137695025670709078355875489237988724162000138813039476928158906753293407679721814454943593803145918042639347527230477349406667017002452294942516131273747316298856412812155487340449937133949728632055859794845957375285909596086969028703711811305872606510487717428130629374194914660864876944038538758515492164424214557988305350716115692187530250336393860531324402694933801122056429002437476079381798780138095919856186660180920978939672426762336259420584539116999584855638388978505745978487938968011603589164904518309012297501185091029269239611264363589044511287767534944082061410167380019477439997544937456335229929737413547052028209943090729381289344328823862341604143011655003543151396746679373817150520188641156204836088648144747762092387299328729279620046872149136904823742419515458518692837252214193817461305634134002954659368762763923243603208819363572676305903453351811844225790966046563387493467192446251252738154218704992277106235014167781917678669281748857370034160778162061492255587100895110588049952623009556379405083312407664280147950653611090261749717715941373202334580717350872098327131771159025940172231268977768374319024499940831762414635193195705971839405379514351861122128424158814374248800299566766122960390383582017079321287675371682314865331021595216607647578986561549932685515659950141260282476137658996630459390835069184147681177706389004491934006598061733825844238493007208443292197546036986261279191038506311096242932295871487482871685254223003601170502311390627503567226532153204871949043199432423987969760496211213863718492936037499146190393426680015585268666886881651339792838343388731581934743676613426808417137224341204383606635428185974516202160761912121570548146265234205522370104981862506830091198245946153482200671542914921568434603265232478627722548566731107556881903634653411404229327281853738877502528681332997889256841969772362484747872844831011025245462134970616681142676630905977935853251630157898296384891001177518954686688812385620634203741306557184758322993731864155880622617817554971349129269610765592822930514791619137111318405661916495187657696735474240519745709877450806443986679991176996845709313765341110107414785420911059012422273020431376254672484532954882934585551909040472718010955244266416886731544859953637037716352722986834041934313248105252822638298480140117983144083269769911074807250869831826501465042998514860125501259211421649485345256829078425124403857989210069767932226189550117969035090767129556363515961148925385576934071772677091828723914649457378519375631936614221837625432538915803351018007089759802098978074150395111268561310468824962553825109830251569076542464877421816778792416945941688529299636596102255273252552037120937797346711825151630480513488295566064729869800449608656868691218476276841704637726474034138454884299182453437930698324586514697997367096380230743153961539856466846327375110043387608435852456187398635575941685693778571653017747153101776565518103964638050646573066753346487703261934261161153478047896852807624768713968930525576730480787834252106776327824948582624900348449437115828436894797860904068841641687972683984577735068452375950394778438582265570102693255608030339508311962442102700281573218669422261596843148758050540265224614480261615618725988957496610472101628173394080830281685822633388031664557914469473035919271566164280473493378321248562409400120212634271565789982122471455229680409127349815565312004657216940679273715803659910917493825089891958110018458047634957381703052000657684574350171682633485949155752706812537995099611559184135784664222817214551184422270247628816458240637063201862847114545143968679955546132915772462269963390007446971740493291223395254390447407189632901929964298760560038923259834835639440282621901228475792038272108845285824234808897579843944792977940021715320436098484323072439454020341842598062355976155158750180447571171338406001507651784164643407258018718505940788397242757636264964497508090815493250810646566739603620210819583589095239700294697690167089197036010873659662827097388414680192008847040504887594075857515894306390854472771692676795551050944117807736010195019903291879105232524512706776447077494536228205730041229210034219543181644550665396208491724475680484008122375582912156242694509514753927451288015018850865217527345322065594770305269672959972696833967363303593523362364217633188773485826340285499769875971897212315159115233247115437878206486599553737005513309721225665347337562301531077114061831588143823399835455212271840789668304947209154184667392320016238571726607808119663299926668040911870551314658953409371582947048919620136386910173920619943586566268949303326609834995212346434617075911887310685920677439410811425761491835034285258665472464585953658053074955735948904641787094522664672286269916991319978298440517899562508107691457387171578005351797789431525325868786436254916437822955783437365934006344798577589867120226308110589758940337038183396359657666102881988315591774246162475129640527599967809746831916686237401791062137062318075953844123940657494000389144187853284463778582653357260975105083152288607307507702679104300959674287650170416938041835799029629805934230610908151303480716222973421610584410294869618244418016191633518649014208086157705676803063963490170284731012713374157186641431164380931807924711612630176730211130939893586806962447657605575886793758104819535875288469410086597175019770732169773019494887953177641164929912367359405485972454844806140960015876587372111609196838987386314848102622647305470395500048323941092564896427090087449307997166253818309964056400164665838821478284523293198773114921748133222289375011338674601906110656161372790170479220612775821736226013123352865968025602143998119545015958638277946294498656426177646654934107764737589001359208580627767065006037363422372514794963966386319903422546439831760371680990748047839161733280377556219730246216567806600628088285513317720790238888511006320863263119534840944901015587440494843958955003303060891920585202765168103134123473757062185859165861159218301031915463842990021701318311295778100036691944698612363584790073747574006551657551650975773242654284160853255276583211765516308243516277125662724691152090123016876928882403127025354747740075916990503664238586551912036345608141781469865231732511977975214615697914899502072364373471511107828314588755160453602955454768468956070713024809695878582450854974338458906990452251764804570926771723806159867653834672473508286211066967302898697398911289711390319915440186727019077899872520849988874650661726744720032946120331794285598847406327874205505552857511209413820104517852822477940695056720107928021535338048828756572632762891309346273367984167396729929947063478049258664423158928371591376173774783961830209306811049027920404994510389184776052724634771205997223779796961750615640764538832858379676756898748300343685188402540662757586658611923029803152879844489328136347067154950378420233551495864918177548100697658363690782038720047352239390654727576024935346882225470933540987852987223435086217156102073330478124976025179617129902895949420445884888015681818554889600240137222714715226160673250736855733834436951196532828217428937232680684161632158873916320305487407539405780060479157567664182004930732779512854823862712398406284357502746178186551423903991486726815945032700602803389593026798381110581875912229083784745441355781483966471670038918173644538480893733286683611719209259342950743151301126060095425147656015425113949880608297677285206568397822231077517465957008427017632766713499307139088137158474304733532027576583437850154752602668659141839184807239906440757349754173604406405676386388428343210675644271610875060353378666688147950428486064453465665538380579867552533358025178132407171397384630971560862884899561997780884865131830542945403870107553541893995837635116385638249418777878360657455279376786236680398260879888012799911096707986035991856203051737375864997789852283872378773211511014166387836637117453794376072277698168288691040154546854128608762830567234151339844371703035394069774576296057241372281902274399081271664090420238609309699762661221385559250074175749294034613756698077830779682441989360005776216552665045934015436966696668109346824216465021460453769843935565049807157707937156665936493888833428830270685549490107185332026707908897170033640170483401471250775704768473027886092037211642879268904537607713395378914369877137464990378744863034426927115607110139692766871929985876242688420845349167000872075790198404124749896677793609313709475799794093654083512675487186053019874934651773238558440884908443861073585181089497701532986192962772382211186641596671149431154568892538259787614047868598530466947399550005158047737265707166080260891225422554506180051198705086889408242461493357620378717952659011975021263702177540520152926633070929558904404284440749315782923071651174534744858738616490975284124282847850801416450200366173148577299179397041338512145424165183342362156752508504033516493833959474922729616929154646485654770453413525779405207646433008057825158101160277524489326655546244067747875938356746360129885687148789062804878572193620281525712909590865367529540778903297592485309203491814673710615216786691802394390782839817110139457727818889254014911397559861101375023747017333352571553912214444316012455310314949253216691298700142316004825028293281315095501819481113650436076604889741156375589411858530558556612885901693030721630215988543518818000827927155770111304117938506627446183862181403856351281929106908093605601008296959815897116041972655844978076827668142961246565478955927306171985748731092039535624333994389446023004329017139790949747615510774813152194130822902385532735674739568495048909063083032649743902771065771948798327372422325914156232052829974237720321204477080527332574081465193149243844408751857878658959307753532661966714892982694823354765126748637526344796459732224773733618543817317295131219686000942454644869885113707435833129542934824270937827136168085733936661029849854143265862893234907182765538369199757160872423682305302918879662442851687736556389030509722688156369220504444089572492675277757154615801022637757995470723615193575184498829765712503006719913260453891547884349242211553668764746401297066820639202481589315266616025277220845712759477116963853242006347112864645731942419855621405226980387203504982312331050351582080803867562199861367679253255881767300955374657662431426024766080856384711875754636671802574075426368548746067210913687188876950735413741409876508775823866240791188108004088772909885249336376683580120735107387396913536921882090504747898657939571265175856204001603432292084616047783840528463981057205144087174150190944819956453396640987181579037241632164810213949976055235819149063871697026175633773004121079587395178586554882963892316203547693225816806461244014807610783173666173525054825669121580593947063495219948949688638417133497016600705971897621558009044460656739454166967829617348237012374538699861653384638188631608431269770752187753292278337161861329775705478252000640891619756056994004155377958164970349697199350991789345959406189275739322102937265732695749409723524209142606100484425566356846508302725579260958382035421735997814328565911103435247726040254844444006229204268832574686871126801811210427721641143648274602817965834915869084561520706901365290420000992410251554138943214665719364063298174994013251209177924394328627250766988230961427130257768152988805986028314807707717035575088250375480396383482061670531121080911180878322622410086966119211462047201604384764184319763877867857197379867574475791807764728055705027112392435465140890922887589211219203215450595103827332301953124830053368764056684830941306870769951694286411778998368172755327119737559531930017395408678175139419443194714604006341591816325190687110518086616059290328636224779902874998811454595149691877481413593178598393148999152530484206128823394355761172789964249980642765107584896055448740161961617054058802719233702798266185839052817846956834354731364416104233924768680851702471000180829458247913993206398671059780704637623544486731100072906345246840772781925048656995916922431439668960378756743444274235681440510574741348123949782656150420669940280289922311946781267591688265461334237373785015636446927839673832306858522593748165981760502513903524678510332078257381132255276986763331171378350298564123346515085854426716875064201489438351110149402820946719674149722964648809472732768549869191864483456477293161401851861433139741709473366910503618432805276025531290642670239108361137828939426189778797424932548646896882430089049710176180962657843246577415243847447360224743204963701307460337123065291325725221060595554839163244784459943528372342282001617348708658315883195972107469406462831102103771902651804474967191854291588950679984973728691402440946969778636878516225650223436651233180951607757080961405799663136891583373654940218656785847056408624259898399814140766659881289625009560574387520100323356627510061221291525972868630357471826670184544180341791787327890858038902476477152089295722447495386474897642172460738475030011512352398919691174983246010721559482901482002024068667730343164051930742331029484011260040550429830867863235632383234592972818679329737621170588740440879150154905092122655380667100858386936442211414095090620890565904633724843854236519876345603675387109675865982312048196753414209065016131036379108389510094730339832387074199997866852133644935805952494714261629999582860576028756540636577708391656655229780112508651877123008601242122073366330638781700326289274373169283039429550444416954966555984492264240045184514019905112298652093069608165925827042667421801001548732359320562702280678577115778829992670444676341329259809528848223580153992792940997715300368938224010987801532208610242543891614140397963791553557927650518551942289094833475894605254861404611188240884625306806209721179493690702609516741888368877428915791900520824914135183605332980719694303988834708724119769734939148939971799578999918526186643796495561248631431855935642897143956899446376850836925990484116111232398051039616682513865827845409259493538402234329618129320521937580430758708897951869784167602557521476102094458092330828003795857017715479826444668064159438115755649588927995009048085519183973547348275918830118180826283807530078672947339205777423802928367423125965845462102451570702108214233269416728863317298873139631163761644912927645307621515204884416935417306351469747431610267024761478200439553725427275587566264287389061776123112725460520338231123896890905582456943862420229675840692659856474133206796704267903401679675782688114914984848293556458301530171454551919130788980095183178433509209468829586067113302443298107689803243909478270816204929875265167279706244858474181618796915424589990769744684256926315367191596677711038703388353219409674772796291529575419421269462084969062529651959771744730249451229801572614122103117156947957747769615548412086009274086976825163431119525339262951524473893711540071170873005837404933802037468030293405130171922243355798337438755104011672580553821813567499487300686940971248986842298477525032326614087887848584385603610605160041232061126108402670576673727780355640048606912291575418497819170466413868726224372997008687995585904234062779941813552692010114921623482609740192988597768055289171173416898529150688653954981273525102159641313146545219996946096283173555713249774711269822820051836689859835258102513904482010186532717059225856589164736303571912056158588864293439765887260019413423809038137894585867537169435047763654013229420383458911736339939402764385658043522599435600690933814944703045883292075392692223196372128350349934636406933996084980940347256146476280542592429247602697219732122864506162698817955923100908820245819927828011337404087634982327309680691263153162161435012102908470528336575541739012526694103453252564031718816748712711997350697459004748445361947002681103963749732810670213253329294766203321800285512060346968767075664094381520380956728970435281737697930017907169105256389563807641087123587842136472399596904888322227027244598209124281780795945110532390479238642768561217689940379787698285528686976347094816209902373448979332616572565237549548219863375696171306104143220188810569600842464717647262821664465000050536018888935238902777125486705500021642127892601405878779872097644094056323921131251816888575616565538523911044512992865883403720637949265737189053458297733953187301228556259462833800842685402549479562944840159200438504615220144529361147836696018222292878084010446506090434877885175542536649151943418115389996045313115191820147231821149603040013420859143114268671695466747269208282147231975316732636566954747833888636739689190922526650846287673484607905550076415025641344491045093250650936052460625984039566886009191849790527326403745356416894720739908615041328913045078779922205782458729782935226012171600623347342959835278662966694193587489679237078951133910719460223329046582847745452948317450483990007941887972345561668724992550642636282065561898731999745777956018091935218591409196499700628956082029103616105208592544025954505703604848326982474307622773485499266531543470814135138362718944969421397922011042817037798045199680982287927380116188887814119758253440949606868022965176281727098201389601998961836536840083817410133078674469346683444645099234052169800799258638681459226896835625535438317029561837611071667871415331763948465064873170573332159899884919926741531401027601143639940948229983887903914083937256824987610970508711883769569065488035370501026130983085855904275503825170739322924489611272553863315236477190095072871429010211260922504704297984460750315688077539952114567301892783597905639205592148288410868063349588155348036827960898076781248100021270276537881985223191325649756022566319830382911215579369670738821310487936280302991974642146022823298005158653146053073110415632026601379156738540893588393622834978200998279373350072389663784735698658221571260714426925161780633344153702640618625730248626878148501332602545384534144896192173033817789732967169549886175769441689455402020029150497047788991205302768688985162890800076899026020076087235027422630256657394587193463672757029111538278501342801220123832347349724983072209931130451252806555300684288755883700504671163885683536177033504454514918871702872043539802627082698156038583445125934882134889088285309909595569785823089117434693108578569376839366211695877304144338414459618997046307703936684302103252295613811460005958327301136310914959806929204277204681919620831052813626951931891331687164611024843607563552072591721073221619863289734056543862106785119916139618434529729090230000969404334773019584300565232300602077032587960117446612712619412331092640527460613621342135837221731210747605390898078163310808302815530899754255521242147006405004353057397562582423328278347052314511488491670776841757998358647479459410891018839241758136777028433389672734050543010473345256738258636378777032337918724276476019966480552082863742289148969828235087207447338278333388231492478024379781096252965366978110528141260165417300862928063882139748782287155830721430597677340139165924238123508772361961973332230743641931325106661087485888716966286231430285268124385807023414615750420929368552192601433656562413378401080396033176663126162011860385436126818821743978237755505701432522137688115872425678190414013850333963401382997545712392889449303719825545741159108969993980979268002659050870664872986037770370765662207293423798857221451542032923507680731484579896210440611486040757286714874327126371966258411592981620586141013577634680872721575904833306166327205427206919062881309952626828052287376639790169425252043939745344450784487431011254436501195245235954272437325653513743459538507946195960456100562564114016769077510966178850127200758620619118482538959417510209129180809358584495126044302847246489971451981418933384959451079115126991123747749844639714655301033947357832320236001048280498107739369813966032415164532282161112866014364159865705187994717947827637198058003229810674202858595407989339839567367630186837921431801291591780161799114330684362356425502945685440126433433214563224067666307533052322166985452784135474908983651492928518649407460002552420411811571745021113456133779123965604841643367427143762140042313174092342654485254904351341560173920213502494248133100956230532782165896182815661092477079663893714236861579001380303883550569132107247019149762991162567346461393917468399749169650763131095525131358901637544142769079830183425984094636220083659107346330599666495201742821757192636343943549482177432241755482230296286260096625202877731999238861920046868775016020888915758365388571272874678000170746452833911344796328222256766532172140016027237151696755853348818975030458011754562493308711219435778364904779956217751629701261680002657667197091195252737626256052290607311560611619140061235461296805815553365494323301114108368199263869202822696611279292689978432051057728203898062957870996646503549392815417050786923151333636670202261286197058550693606285563662964479372558398777006520552750055521211855125470304632887929815911545217911225372006491164839064775531208985892312388705959036958894520883999631172976739450621305173561377947533848390490936290696269259618097322660936093295681217403477210442187827452963007088100607408361175524010074352752405126004823679624111059448883107134271276302841475573141520657248685294071076399116845429580184393781133113297393838259066301052837941854223862124281337546673730291054419189707746551017294103999433180404895055958075808035001983843987877689064682555601691726025507853628890123170575697905830797691305108936496412258121967675050271728117825551574482728587806962087173220765958838418236343269685890684339542415372373448753915194400864918668324536338239896776512244861380676663957016425901953176916575289122929156736104583740801468650832511993845478289193639396985732145999519949563255352696466243636082093151918684199358934306764382768174498024474573969195954741887374451875079281752211439590195648574655594822945812927150980303970085905079986506012922003452189810767127776110936456777575572108806960864711017080352508956990158142530323185445048937016680079072001688947241606549886351982815658272628924539200986481729295787554562518407207679557803605024026470662512263217219011279638527617110217514893787963386192315214609369123898542269826966654460917319538227389809111952551338004148438627380526335300128731883575835359820160886535675180544553608734250447683048098906295060303250685434271293083514501838707741234833895293996658097466773100820360959583840507722834788672257451572926235076068462524347475231570494233628815992821087956192448176794710626987823144258437044978112903837151281560719816266965518041063023334817777899767071138071232915533638140322514414365213743096627263837985943005464741096238827357917987752174468759593442084317019270487810684860826580274372352962433140499836770967638410325380832573347232269801777090158474578101499307930679606914735084839064197400852167343776230341349049552631535503025359890058883236895445377940569188301046862798515789323983698830163769670865456707798429950316188637886059291711369637092215737300921529672946073629474178194679699664897397003290121225241124659387196899733939169072418493913986883184625731732659119041808379104851214951035058553746136271166112974226722733842446729595034478097548880974794194716102546849987169875699214186823026821297904575606051974837939446907141956902357008720993904776810105181028878325644684485258630063922958178729033938576344292014521461809129788522584684677897021944240431519697777955320022048539006151840220804893541002754531469263162374778364206237489099809957508650938468654534775840537784087842139760225685094208902487858662021669431375483328660011649447634548122761185529281415756611069815991839765006238267666814871566749295524118080712584025288652192015093448076417710949039160116201617701232080841545286590127017495292889631169454394301119469595418211878608766606036087255044573042840688892593545537514295577651283801828133369092928109456638535413870222522988659489038764053066964263377449900369087723994646884320213659052467173662851902307901497057384151250452552203955542205135086504345761707974845477879222951452173391187635346326037316856622816240252291748270786747494747878254878374163053888894012815089898084749358523411118842468740625995033436498876317680213361152301562713275248954370437379724582989381132649295454449695549212659123140888862118388538546419554946685603804384268705048502241321567736973227220610123278343413548258038539588349298517568334310748768470862594543210809422001845792409372561262218553593297661894630559094053399917573534455832188384710932396118792818143880989160861297711878957639847388325276698859916555262955210430594505763525686589309747416393896784337387465182203840490166777558216963129990552958020478892606422347288865332714164378422431596664309253369544593533481193503050104559754614881695526921478391459975165481910963909208706172058764894346451109299809387113313902159513297083975303800273597876506298401002341355478721476006299004413755688304072071434046736788620174574910909288475457343148842193558521953231458140903341801575505394361997028972466683717321989087864196177602637170557344009475929057497272507240005325690953992992684661786248309372160881697749353185628879149207722590087784137313602997059598932010444696308077629027731296505099669849020689039620380432374236934125267174690179995269728305809141145816083576694207337009135005622010424995540385847564839218072625429825440167459043986702126523288945947975817203715826423522610247745048841013895751524694054993843124891309488685296996742632638958831117712825848987568123899181011815414552091386101028964528610228555764223387087719660512643088385458036938148490999715278448494683533310547457917012018592194135545076291921741771816261242531162463157412132675781029362284913140543393893168182419635086193563420183017723895727081461766669698845588676366996464885019416639808249376464390680760897953465912871385689481070992657816193305486677887162163775717292009311155875904219368194114350317913511572768742812537676682969100250084083162298177013855549394630514745272139708754139544696438356521116123259927014770929500311956470208526219965132646532479726370571387406147294572590325349096015990027090229024618105987724190875023966979166548277755819385598976100507923473645065607676875432165005373613476215542291079923025829129006025858327511566415474511428735754667955613184700738879934470195020090019408739306440835733429686623427886518873628540586645150442471681858689073823466312652325450959312298010691314450991060946134537257461875508441579721661219647048601752798054018510099325457159284914967432380862521505494003594144307464475684242438011983460478290968068071093158527625974860449636569743987539505251767556029255384802720056560034891176063539714207037607398304172162105403048178002118230944310140917037485858156996290663837574771427820498820685707761181877374837361621626494485757220295154655877168028629948781597712179137581117797114881566504711521036575671406519139757314534110367891765055434955958773895322133286320630942234980133806883111627278455769620788627876329326842688187297509803113131900024509041482790354286016363544713486229082819566478898237460064000438797940771874485042446262228512194380718130272626701013576186033914797563412046399434277329619570769818373127124267109684370477500100896646634221510120093706220445792857261164201904736135511981744079781212045242354292840343416346538758999942582772329731619951683364098210030597573013314171526131810459713175663375359407446710198208595485263924420010965737820596529618352303070607378842782272728356022266709927527951651629399145900982786124187560731387493430078505286448512790617583504481603775915100063937985148064350709418077209470844149743437696937031359201852491502410474461063725097950926171544811072664859271679332336390521591620771391073023714080348348752393060066890021647399259577152161043527176755844702529164176070005825691230579501609373383152087681233800544305041938928008460273756803088687558510711914456962919364937508419676394248448236743400922345167902115755087990420012861029486098917139163408401488606424309133147692214914058176315418660561546916193759803875860763871833946205206733516389595746630803776991579632050159743665593762999942336417744209220506243128474620606256467145022683843559081277839865479774458320346729217190867246421274187102959353377962911250329851128420383510946559810658154373102953729450046190004722200928090171516575109861564613734167402929590503285257704922493460864506155875463596723849726901777725438525892533844534968259802830157920486220024577209183570326353530247192430339241371142010817396861930545019586278472139262218553713426634103846322046967083709058600140654359070583356338806746164373765175527989434879491243614323903694918137738353440546377586785994977268525134710673095964318346290354602816260120250399990949718592802065333740151064702059192763030996493337271648258893899824819804621472169041131778447496911211025898183317625305051388847871070013129467630153313121531953386418750518199901794718946830536752270531217947399993047396294838148498109199820246783395257418730497877039535376764585049517271425215980830373784851802787809609421344185258508317289202176499267769703704890087086692609248803561949150537253027373001482966075708079398307396706002371175372077714272049917715019691477609769298103005463132309048088633731634123415193914674398718495047823191433497107190793589274735349721572538095286327963116456123804416318400705924302204006605646598211523520323875798824017405744185921711234150775945395423270600687716092183748282584526378596539514641451800150359962019757690394702520843472775912820515045493206523683274184044100479269102032154218125253547764403477688022616085102522898466699502695478105821780373230613137431719101199354504684065980076132001326514651557758169653539285834037798200742956075649267934344822064773993141375117958806645410476376542563957342833661395990773230887048443690101880261364254010615469316718645467114949096791331513413561023143274866746945017231367320124617256363016793044537353960433620950220353796411224554060853244790252982443178777811334741241871095832623800194998037119397874239466904149650091818190690981904019095509433934041011808685811010337331186241564585711369058910516275539677811245919628182635259173695621172499104481543272017200946031618081654057284964245762430554188479279143347358676185846807308429615909040169038354242052527088442587394360050825698322131866386696946901825888653672014732116343437948920240789253410814223889488371756482975600686632504429421580902742152001053831035157958602565790924764051946379887913216359216653793673688262962409420821062978464630157787279800282785685547512382410336415391577252569075678283960653032261390154156778032606421438126860913024007217889254917787868380218519267125366384720819385514665972913876380365544466183145522012103996229956893751387305556635617544616437349266751574460746155212529634851003975718534151312938346793698395259527487538024206901354805016932448023794913012378956254164073336335145331994707981546003073259802174290558289873632698737203713641758559847825365943598243986405785360273762283756763901180174452836887635659066615380879664897793735101146185057108228595940797574596040708338901989122962943007676686965801801785752084911425238034602069674525096397681661239752650345401178756650628546721572231567170148051782926660348710282519409546817944856058938035788128197180459022445453509533891907576699498295201515905815481412650811834905911851038319289588638886089723484324402209265280902790535945975109469442318689680043821831738669869442045659345382226687845973853743116297189903057218887628160558040194041835165779249154773123072720880525769475353443832013640730711800343308018025150862650955254126240948914123634670583501614608830424233454537268957739254498147870558166790630280487318882502466709498863951536239773644946070384614117840046324168089073288330724154342228073104576007677023521901173884186495310019356405515769224948277502723203828653728941377754026075969733776422035516876473920262652452130644756929251706993902595732110727498604775993533621728411370852243600448290159406427277851903680861807145539736490827543867077185654806501120089716372564436282116122678403172357392217028095557160730782489284497623836627925755519121774695078738803345956402566448243458153718419086227705419008951426248234813912450175800894194070215117062576442821195389699604521659422455093325616600757534309625263266495297346306974131311145621792287347072245920071664942815555144577824772422569320334935547651346238275457444355545449485757225108110074475324908566672232915700341680987975762029939492665223035290971436286349469153527661681396080654592523433136308756560612864153037803425159983180279262186516924369670293589837537505840618196949966300647559533302205817884057228578685791905930342904490675261783053441732383692232912213322285718488938908826552059455478124294507991897699634651250986842911752124711739266757389402952249024949634393986388912876162238455907853263769238021350880745648919462709552508674969201621100903329209931980513063553882381738542119265839139239439856578377542347638215572290864856355162812522125902844174101633878322412068697002675456352199562721120587621624133766391462815092524728764165904934574162589256047675944087842422093263369671448639775933650700835667629303209930019619083583953809642198909191927721141927036010204106618386106432622383915417669660399940602535126142765877989340365273258790564855716476373243253731524846330748027388469291896275616437914210929760207607032434345419049962140359697756841893941344089095325282767957002141141108132588507307571639061022236449111693888431766333729219216582822522429279086345128646612598774844803813737246950016048400066697544058580159416211236202567163050994374784813405868899260199987878929706567817962048105781659453731302552358909015654946792496628649535506914243659979994914509555572275472443428199670402580509182578583155844906491029642976584755172004437810695180027252167924317542666409002091796019550082175268183168108794222348999758804572967433673999047394795004199891608807816483127770457784856705001336993679541474840844390342124740219813652251384059171365046933279991268222318276485698027587269532577323803555454121173703399869484429863915855286439400955529626404597586103188549306576495600177867119216744422774830601988906873506255895057935383519599207652601656452606800993798116499594234404978737522460519361424939234794927427952191314691489470749754251769528668846022054931450280951346195572955343000672390055832987126814603153290490798536888427264895553796809748023588145883158151465119206158684407144008784689967555433004863255582880425226551828464862609548080300779130437404105605694198391528372189570833211989397978613086254011670445255067391918440934024599126499847468515474374311976500020200978978025038011000664038464002004136497619020554367492625324384850478447148771753088824330976150968965460140382629890275057715453779915699852248345379798164229722617524316878890189055031639003898140646363225216676669449656107414392421854827488632342590479230826518306433318823201972791931657965601771883956167569297699070180447638848049378154407654004583892624443087212008378401853603344630827703074232213863247997175101869101577682636051539446885935004121795891420992211325446739279245755065566883493780709986410092855708345405354735483981543598822171632959108557717140823342967021456792460909131949175558575364943877597963804707805031130775344787502201193550748392125244731827141897035941939710132912039931464833582198595520628679558405693676149323622109056989570751610173914653646455939597852438309781093311099947014551029231806000237659788571945220901456430925750436043244393582232736462885364505045233143277221953941121381238031389420468402120261208357649245343873359570331485319308116132443829161086007382879025207543480774284079671059024065705664132736786411731790279113160717211945838217341745152265435311868207636547798230916350107903174848713137491046977862405527385435017456659760823773164889438666883319594030907695084792944766896385631404893157389274578521087377837271479041019962262716258207011454376541750449885246805357490369222863314153920492886147696316254661677944629577035591962889006242108367378581217498029810316591596835009305639020873839345416107436510232845579615601863120927504458099209167115031355716964279923163387680626737285971621319259768738268163727652179472718417369999936731915226150916596726779288425918417689067278496606334389609039425350294817463197605275370118354622671067705166970648698037227122232767688084923575129526167098830209005718063637675849459642763397055312750978732672056507854879527319831876976004151843363661798681593352270018362333648317046707121843536637497494523600657511843253391961502820103509728880354240553849770318395174944288356892889137499540264936348271892405778653831490650386203931527868379806842587377620555074637912260353485499089486360652394185583760030983053877964981452895509611938619756061047684817376246076841004484527554342229446229514884731060331227103439995630765885447328617852427740883331844503211216174705276205703116407100167804242459905807170117297347316765097476693349371111077736652003769997152082408158821166380826752473881168754111055839659217216883620558255887434828274225755107634395782271600224126907669035511207654589714147507803781046951445658555794906865882398495577274036785593579358509810010954156760989418731925286668507840114384247758559344058384470127131409916192512516021024493294530247081522517783761337932715582490346562297364298796671355251634962516843201598359730663285843895091413417361486588637559474847977907909019089873784502124185223811941208236243703679266400234838820707532961148427967692883084861332977872038147037334839111389942702332858688632503314149266636194540346518718461153108550058403713395142456079953254234762839822883452460664252919490430204124689339951997939204938496657566569818382575369395284640255592390089587522720812367061439345450450708518387774814388487967041738609551902767678410914982163072196352633500838447443205163495789907178992181368237990829242514136508765674643414091786190904051015790904656556835865868709358795266993980905384057031981665036932868406722361326268072721585158271349461602501267156367481850683988837694894802818965428419123610558277250667465415314495552032433297222985318202715767739506926074662859255776199406989159734576422399504359725838465099361571891039266382878329629235707177167575673898362876354802767480959300223210155148643416848283837633133314268178545279400654286931555769887331457808847048464900836342219878676090742026625756834422221678633162105533834017473476134912681200896757516378834418114202626309887433926853241865050166373121759986755416674897490129325318634881714729974319658644071543829592680951640247222418568815747784788323862354632871629308007274005264669061256656248596978128362404301538588325560779233592945559826183223655754820626886982806155189687468452124641031013041864900150438169028966036603502759798612703783101051633415984995117774651881776708531017189448151679862663555335711679530105719559487357491350303268873558548566423598848054786175905733281325201953735197082386127389998365040962429458866066041168758168290913940062517109720792957567669336145382868934244925466099958138445802029378426492225799822735950852854726848725814419245472209199846761235542373700345323371509729009358353879485871351737650265679767510860374682047254757233554656428516359792752601853232498585119393034905899951081121274174036140463013689996155190721440182737181323156457570796512343557306586390023176810837164531669022474946848426900379575986462569546643895442560914635250995711215332350933065601802055028887883607723070012343243333961577810076316555179918748558770246859828738506490289223022022989106239143420428811181344204127001842725885740384424412315195479922419039166515403857202099341558213832719676296742805769123781059608159903365773951926745296714947486189610058525823316728622920648275731078236568827957445975018898887441572075631032558161623730226918376906357152890267499055866994462042963308365234323169874419524477189210125683498720650960816699453697310028009037083958206579488315574829133314258091131951920294720180894405966081206837796617825184518457575352447283076124825572998060305320589361834266954462550185753848914336236214998502508448391825887464725680732198991158021032927156157507313348026176655893590830080248683778051671479041899052911985041248896769160707412750528392254719385645363482861771583312794126193904890650658603366430856738679485366817693835484761559062056035289683074631808799841556841720298242682002533756493249978055883426773754170716869625428547301249734809387300343300661016112262129841409001996842357183469716237284590420404547457420234989135768645315247592077226658274049001438002820020086189634887317564331013470621842210188871450866129520399065103030773073225561627935700852952398372797663020405244454713707044717692818655298232819392481639723288837129407353792876034648420833920112755244848814346535608460672999949615969318145013415378176061032838556673202939725854890780375258293535369340521940398356539571325395044378038099341715342703797263175822053606545271685991593877807405569521521365235184811206818961976414162764160711915085172102964434991569607279460592940814607138960327545345517839594980460670524476889269233439647826638542464404731861532618145463169554324590793557551684243538404466201786789654453259882226129121571980630297451273657787033676819737143418367052741226662242693201574024035002087016184366483867846472307138837988011404399832861596938536886447510392556213370364767487962075123018480407734836478326082180393878302492158442503901640473495907017633899730135669133816667105894947311621159643137345855650790374586334960058587063825360556747168374894170401865757101608389213241280278904420235549058827412504846240940046480756481208018780273425490356103525204324079444974885116952064611153864852651278987776760511311467591119023791263558154755059434794150306793621863164035277442461372347882218426376474883548508534616121634373495059234822811559730328259384131504042121413212741589007688406590674718279290437353322126409017212454191764308444778419682895113770951746078983469715116238330468528339104257139202634922618809980733814488742055725969457313600178644546459431695874875113064476374075437835358437862661441345396249823351662360158819661833859873793513623306374439618900089074699832947307117340845681264595411536036451224621686843410465721938643175680988137971257219236470427325352863476980830076030460088746173543857171585135123070936680954317579639888544439575009637313507559963022774501894674993181172006686440329426303494779384233484129489676320369938533967031584569722219147967449741109449262337776281935152665823625172363435395029912010652657371012281343708952849724532499191232503185022170574699012343220887129711354153176612239228592025825433858096212219168907637514523094374972205986954782224436351214156775218208066547759518843233307598610779987450388542967731945029559393051331541794975149175133750732070040307760802417968818337809237415883776803162714032945604668363489243874018468356717736439148792205813655024556488799957139115702896393456908195351124661968798764934665919519350261730013422876851296141271193519559984144218933035136465431587215048594637364078141791295367836214575569791222656631747915045895560389406738672568104190675855030372681647473242634338998251955423756210497246701253623988105521325753151497961629437865283986207089671797769220359283803536105464895720453110454480884811379857938529441581966279022067847024663548712349456459280353856336240988065569009241517843555881431176507032815261570032734504723826112118385209818992339445753786538475659850118569034390174322721220481831467852636818785225992581745475203167755899455731375352478292104477205950523569517233025971822240916621499351617488539591573229142936175955445041173284016404924092084993863415372760877908689158227634328809725006960577951177969115449384748951254230563642298088768430546586456479913866323852073170405621277635733011998317049191689425916559133464777659071705186715543002651979326537111842747524438877718439349579894123949633813027674348875312248680803273634163880008982393606870293014299622628478526645559872353222035208892151816926692415800065247458087708637573277925385384200728246153049406620148563733421245603775809391883238421450879417974548729780207710838912349564480851786962360364657268719555154503574971170959358392571417950875273544341717406449786458702828095217276273244668899931573289013888743699070283807418054449607892035980315780468723467661891218216819575905646440023555971802866206795292064900203961319335005639138888043315874018185410708767432730873643820836913020362510480542120523178794604709745084105737827173170234039604671975679665984731528387037402762844871674475250600843281460426183513595229087512750967812988985034590700047089862004578027571705052875105654198124014013284783297645092182579388493453536394288669954826239970725909909683925310938431946401592978197736073199548541278072910366186664815334918802522198199679652676980229934626543088309933478881607435482205661600990539866369421429848585055114380673786466182768041385215995701091688659931790452286976046894170628274981787836345271900739939062476817841765553671682177504721813641624203640946450396448489691943726505662932212306046002548683932831473620033269124567169964203225780323971385560875561066171611156023243541820562959615220853985379071435998364838173675048306717981130231971379339673639047137615388487928593906431094983616899716771911989844413689466029874171016398194451360455620552684356561331704882431039245563162306276502181247220501340390747525571266484832216744437994966192446830320567439492226519213509957103819455044624268482504588179886480586203475815089713346868490332030197116797384153654945582441371048623873599577476003942222467925945247196757530580929009922020211724209211706480726028346342123686585673494147100044996774673330110164444906904594277036762258448072225991136609975175105879680095179296795454770451817633629418569083109052203308489109686041517853336544858610835681201765015183529233939614658379538452756167763876362277981365535556635788760545949470218735298820195560312170163515603734585416314251075428133928623069962860826627734217574286500989737669410849892399994134246966808352835761195653310644301622366238874913187683931635000871408724161870634322141956322176686508470384053907212828358314874475465878304966828682147679030488405583094955018296509157727287556624776091432476833733608221656084139703147538840239710677658969635372272856514434083728467312401718214023575656671729759956660969278288950552345893539024232110692138664980765420672776024026858482675829784627113580324893404991128740451772111217496913242081218499006674904818228941078407003133235104354506879573267432840596859349228060002489449769896658757908872953144696333538047706955829033375014710091271387711766390335661627590379245881475989270243335308735232760388827425017584916206258431087158308810139975384597722192123752106089849653003746680243546457827584721179155495026578607167063409650416811187816510351236488162152414345777120975210966273415584090459573667303713639889741718441557731431095287461098641925883679371805516335729121425606320156018926821711097467336868009654017939134988968207236524653795258887409765249315304302984046212307366905897223895020793185141767253101036703205864092549067071212437877588253649232371829713018507415179804261256624482688838222041608120177629316982370649291672895716590713465286203150675733612776637709625496988304322998256402863190047922433504958846811800777366412155417982454565800498033864297132817745339739517067194987662838290549013275470119405151563870517447581459033655250213940104561804276172688592697905869356981325417780910920161116964358454111821827462438535203535260641181913371230424748056299645991074779095614829149112593880880270154678838819411289693366433387558677367977746724699507148499149022338759292122984238828352520656590064509879728647430668652170822219316082199157504467504329126656688130549614267694041873586857314886561476201249563938778012385784545890781891933209839664748813166055952885020832136727524563517641600340557894798516467712435761415221644900808356612639095496754636228037778551631937386026849536908863359289400508563296295427550419492242143545789810141978220308841679344523124229214085920698147847664169367606881013824860386668526719126718146993322428511177673086603491336623465969132771995909459040176356852121326426681810846453884481420049151752833488125433569549710645677910133872603768142959736825805016383669316571815844163037907498331600263201264559245820405500403765405948825768570724593543609370551169288508433812880501092794258819255752701615800495815128404676408941830858494445500831941700877928211693715731713434453296611823293342647579122484121195891145416407484892636625199687047134326033716352397912670335352003574325376807608325214010519977278787199741495002750381901443744133085142945414704249591815514515928986845003726146015191595435835942672702324591773490590925585303184960847285281069902153641176951002108237627718948987087266640664566386350413242366866458567390629725460538920144978296292635024918484514963448653194523279743434338456505272105378459144351036840969450904841504438159500315754738710764734822253495110484112390011963384245555397664271458265552245606680405843379741340825884041490690498243352941876247752156477047158106102483263427408236455760899136822232952577386631099283111418876330197751327686248928654164642831681085824487657419133639620240680993222527717834686339995570702842204313597058254404725630328760533912308074700121490687406981190000910227334367263023100527207204690345013503735321750121768864259930710446616574217014217849527024194327168185630485032655845462374180849959485667509243994030015686919533264711880137959460004486593586391073883836115988383048442590613513693024289666091430004429139493998120130539082110772694026280747412564367281550279858138627882798428815254150948480896325300981607185578643702262073723709034352648916820670023906045096429033239398996756984059180808165828658515452461076700145952199139057970855546151057325268682260558210242925215336076035299712429093619542492592568617653956620824659550509238734504860233129203156258146506120952015388002342210089093733104745024693831380482113465000054542693435052726358867688863689982201157559668104923794642597278949072945406747451919070929023970698813602898141872153544973537415245406432303122722697849089584461116917111295952577253784573470985299354386303503273011095053237724209947557660769671221795271480042472756989334275787010511163912054583229197616035153544992866545564089413448358439909478314776260779962679446255969795457322057827351669382297185882962828996291811432287697193482768776184502295846032647015165625894776720778538145610517743917738478753799304843363018128944402021832095770104178794926899408534010698379304853477872098564104116170650932171247841001976032518991579216182161071966582915214413073223884980448804776554316560963643049782935448917575330048317645760205756747224961615692698784518195321875281063070344018088568595020302661070489349511972695231225310437530240817301377928205979371861586170872477099818166107685616863793216420428666919556623053165711711320194668088349449339578478770666881184712483424727459310771763746795204048457075480557962741729411088506006284306169961459950886104301204606712960719673923817998837870758126657700610235684363652749144433730237588522904802058106805825891766499565847951175615595780945240606915178643614164041193684382711209278923977506776098474660213622701908039471503240958895289777942726825890631247389193352973045107140521453731500069551765062315170305700835944683202267999797412660937265652356967504754307244108110960396362345041259003456150929095412737905543836489361831869113379101805056929992900735101516873022724116685094984256780721133470616739200358290569457309111179228828913742304238279518905522561662646138487346065588058254938208679021701801281905849156236733736494885177396975684461354345748424506524721478214134777146463392274131983189607395026139019616908583261821277838884083156090820125123138403970918955075783509928325830729126210154959129273692143383344415461962302537924418776738643664400567998543571922459105979127282070074824343471233674562521729091177501912757717633413956044469051422082512505345903022473992726909445251185731954194531154771216703941366817906011054020561624259248561240922715499860889106172898951479467649609574426243718885323086229360145358758235068713856310623260015288455286976441459499402062247655304380881194061857955038031523353987187251476759982491970679499300130545170664301119257642239230349775935726584083263248870084167168551849733410514836705561617875391288554586997009753678578667643814464929254155585583665503900161901558978323416481187300316634457312246877818839604370825295050447182092255552282347860094306000894139875446135337402178054720626051344424546162028632905431193882469760054413594240355729018062386659768531727034359077413280050690739111548221306041835084062195532411528104876742266174469731030656333837454580165836794906991261867498466296575899953760950438919898699842268942469711700713366292016911810842143819782935705578281323484622957811270282050739071288914905307023293218911837425032415549741189259699850855620962948502365133098433374203667550523942149220213594796074921411176798009118229928155675705767421583976763858752835591201037794975564094955491151778833665623562361760066084052562281994601365780057306116004281726172935668278332674478099561466970633542241401865868557952683310071058685314255700598016683118878765009700242817662238347670724072515958392093561131238046556147774079173377990186225854981355855192104330266536412065127662211758692465800108706815994369645513604092149753486967096881968404547953431042705285458420452879248565343736193374913321008048812158628276505351921014825766536332812687702885640006824800545597491252349173134329868499225554583332638855054652724175690089657458636446514630958582956401871371503694056517913196452128103024733292208791394164461769613868736740232461281958842517798064246196332696651980714467585565699735683773479508184392078764524602084385819130397269855938664007171002125122328331034784755278836995730699055052181244185823859569147724711568646008252062271844112226183961905089315405421158673486059671294916981098008615481359242900829652030694763728856760923084422567288106719285445679121311566850277589588438446529057870077902803729457872232033888679124282608436230871343179473157963201607885505886615991983496513218885927368636490533153159032131358309262331226887427117663730188053016204907283457369648017914566828551190086800511073860552829322554625723257063601851602578342554922850607611535023029709338458617821903833796028993652386379065413743369255737184585009532918825275260774529299333343794052628102369512408633803606931795652429336918167696493311418067770292455573198289355897582417361936584985701713750666959653912391415494884867171369393329271067831916730659038807764220356373061137263340168809670958757228925992099094087064334613893755531130798079917358094685992519340306520912806231173422647318421162422151222459257015727620022944458817927891519589601199929742876266056309151397346426784257890444186797276823352495164625832660114403608553936362101212671592283993386692611345129253512695374332826960917082488012441317687497420072381899109369550259193320673894812319521339751068552292549704184646735595303295754567466441635262577421870713530069311708406242219657301272927439176842117885199918102337055183480429471357766939449233904867844342530182457823620641248770285313591521859791431017760253126277700367385584901179548131211617428126510483681384234849640200307936504965113280680864655365389788257079290691630805348169765178930735626195894589659353541545002194749442408322798241273518505604452497892351543587193534886853316463373344237915470101934890436387968443556518383765470969913431111106075802201727520099704620887914212443499300210720932767192343208070852307458951307980062948665420155578735942785963470221673966260691839743236132609188232609565710492422768956668518578304043872842954350940054360451917539365205327804634722005359763627643024838119734129294707291627865352998729187337103698513923059855227661607690295752022744312251490463800467524894799009471763767605014380922690632844499979315349417281863954348798946797627752924923821807582017402225646996240745005442643430836694361628350357163446966634542605086599668425458711655478377800149166505293912025300248258734929655679014080769022665569361768617935551427177155154790983312863493152226563177228759472844202408922154018853512111611994405166364815006314670278449242131195965154787433217907765659065316634262017311381575537649615924947395575165450821552902279766037379589641734258152588166063142767183890001925736140693776437890103116090350630049967553950479089223338215997073163619498137944404301917953748977747569259954729580359645841876623552021986988360589783081442043992748607218531379822324336520476185665318875577447194373956976557964335993102468089651360193522803326293116585340306721527626203726182991100774063502769704780642213880160986782480200120516221467190549061809956806338983483704878330694184797437507714338296612426824618796856875076880104693635712345025366367027877998037960743925917226574115817199492445570172795878462561548484361242744994962786643778944303918758495397908827997093661589591655064865659054539581923972604060757686026691286180842234872043028484370926617264869983789953439032161630580939576108522040754338608302977630368296564273984876474347186129898803803098182014702975159565138709606265216592175728509212854286197989481509467380143238751575625901538254840687003523631853113536493129429449017111068280354867471472262668023796575511926976610661367160101779235973142326429571849152510254099089148106115986554535946155385151359529663816428770623298486737791473275146523570996727031245731993840470442378893168335218724306231974896368950960825917216156992584099435719856166780299933488786881212117541309650355643944802914947909061243447671225828072180032483789075066206868588662808890111478763020339515361901048070053867135263001322945702938189228601823615501730119590719204339839681918587810591414838099795665326496145211766394340694759175201028060879461257258327836728672294463462509602993202468868235460081195724657920762664684552592363589996836670887960930866050778981076684066017364377935421141618374246067857490362225610610556739527672256670638348836594184253923696599271702376958527633689962439234396094851802284386395760103979151140806369453684866772062903890706654764884504784031758611318488531611074601888758155274189666305395257033175575029627885066306453208323101579640082811250155665196016519620903909673191645194690459234755922631720749850258380903351415427533603200174363284226786636978085063521134881433337078203382478408383890544499842780708493082359760041486373749457724621546049670306315808707486131879104425253523026869001623167961506089950761805803081772933055637778899528898949058078909854157237963351933974787259076260425007935486847333038889998709641634345326032925122136067779563666292565536007534059973009317648659682302845744370131020481749820287935908098568061184492852320378735247338041826780974758562142687796440672174424353767908769178877583745205802416311173868212367610119067526897587358840418128669492915527314861007411325131906687296632458490555404189936257767182644503832457755776843096394055929757277420080754528514656109241072361411202204822393978458731436504967894201973706366215516794329371232221091826478983990914567147814123972106169863302992302316426067906685703077739635675726577391319528814346059822685719031344054263661054602439853651969153652970436892797257347222320800623895766366075405629802677245611996370639875094868080818154829918067968530106681163668700618723533608399500863102904725353961248037376295912597358816212396548336049570957844508049689283635455918166217987666600899009786484460611407333440204555473606190568788643665589228594268756790230131192199578539472118235602910206338942324889581393866651993049978626573109227479651391969862750733414213467066594986724004648909832854030414427378741164727658121783584680020428928006414654871353026115034848920596221896500274890981313142938415711599541825513960182780235269366661233348677014619393919727103224255113502505574507994950929370257761144600659382272663645145409694812177706865239386011475417354323407567483008012611520309966485481269870405708235498724662110275231759880087899260412713857820872293613957631230382788766871349110622223013743830001807871045964042605508381514436014763442025441326374888376143461363689226698909691819938922137405848925555291841297943895999196184901667040769671591407312466349067074704921923351494870384904629428648871789852009534503117766324527834120330158738683868436993495178197574681418743928554299650570183283163634758776689368565797336379009592676694425908294670774436331696487372782733228861849881960960433768835286803638552083546154925601954339162582622246183789656887063621460978503643006794792111222799877772400982254208850359372727775719640300889118964767841238053460130974425025334342176451336955464068342070481761908583167005285148093669510501635260898734772412267570242482020323831211792815363145658261009877990655804593605622268060095303369082510603649201658777661258484257212032259112104583691629143765739637785122656966971307411067228075401013819955880229547430896769106516775729970109360552049615369404692145302375710723492769876021979755748674300616821564957828728543456324737188333268206017699483933376434985064341683278807958838391339862987019597413229506210368856803321479930583367597894675325315340548641490566419458677894621759066405107395996986593299455405661246676221656458881330074923245741744941959702811341452994703138620253415976397792303664797037318738858844060362482483843168745566696999119149833641297445610975013950896772197213931212573965346355970003231509899224167845472229016698475898268649720225577966305355107237736175384535606286128514319303525370232582401685665934420493582691598811561974742772855612594547456062051799395913500362630007413765929006285350615510680665433536197065982312597820554314234901726776626349802714695122828519816126970973306816025072991592750582359613755157292061064025355689759499666160635120851337830145690074775762070059187263417187022065382888449404757386320922348273272408544920747037157171951550177339917035490409830009840411150534073277429015833460930286625765069049572014904175803829232624454726127030382077494297017583087459698307838410813595470782666282015923757701858435883564076484176027687267174002335599720608987736271227470410769435003067542524461840665634254711416241458714437854615959616046621243353275950511954422508437644804872842437642997759637193670726500192792132335925250113689115821503418731272584312544407028920462120483955716099978588176056046841508838838915509261455846087844627022687025396715710941374309472955085697079666205343330359983995028980453440923584824025955623362203583245219173270331332355829619038869979752052146609160368265753257752702910414841916178153115808422508862282638001160256216002385588354740110593653293274338055511778987564680296454473244321254514342953243952387631251279024324573318434731896666410159682181483478587222385258435833815980730657019789781311805293988180332068013966209410077464075699363589366318993132244689437263956437337954774808171888022006594305319647363464897142104328836090972821935749698786697548602411539748406486549301398344531502094470815010757590753422640819889828062308583070871764865104373278925528929973769403991426431270995476284983774637506196639235418917149745596338781136799675894932434387584338826256244233697227644160506442509488291179210710653503133680704851025654936979985106170088901584719801367508192433312205899412299775984662752122514428286009350763110291278899778290048401843848498499108112120966874621006602482812596686234099463123874046892083500242230373084944435804761156509262860563260518439240204918033745258439071620699720776624339751531879208153727336330947705659222457149171867991346469648718492833286773670281227592454386957636055098506549809597623317416461821288232713737169192117596444050434607121916244908398485307527535458515524444379699482915875040525328659885812383210824477172937303960724978471735784490061817339105479212061970339845260637249463895515567613844652075322207394065495411923659934563012474892642618805763047455155158834205377823385832454109213414056266020296226007780374139929021151322064490008629232737119965879602277246856635193605622110397662636006079065483256115066517046018540408820010183027310617263874479285382597200405893634874693088264449498249363849471513873662918393906230552683601930244605198857635478139526532301933271832915341866575029532663245090268336922810362656309489335286099858683035342406547958420502639724831463065778536626253690347662038101863637912771087562580501081021297404945289054467588609455405357019133488717796471018899838310976948990434884784411786345641556019312471712868891621047957192317014462400826565157887861583951392262549610872181457466716127077715679869447107292111188800372097917186402923938975894550101527776794857861262789987317929864385595046967186155266294503541805182420222053594145269108370992513782813924972513957556035237548866775949989068957717888164137514251949212635666876570389729711140186303538267545469122632983640287432388796399768011967933423439193404709854512405092442419798783073886406615886475956766953395239148895706950525537118632625791099414225742738852145096708140889030475339641225251772837873627877757600757132989095900696490899120973299479572569643761725019753150757111460209551951347111717143541648130344406852904869461772878532514733629426970077889369518136436006657879957899356126084903961487174806759997692461888718478759960923588555858618953721632177191390321612946205264360730181497405047994125395892138437745416211044081238744024214113829129054092133595179088433101924026743665583691021039720102733026822221854058824237372264884185301375950551352337410007310058920131030219421709756066202663566152816764401391237140248685598287238274386634039788042584975507243849074961747096803952376118424713695948306212644655187044994996966893597119287863727414523705576654501501166744126798341739023417443714102636040976759179569822345563515363254712253801443020893043871682231963833736175490200003494594937154240001488588719662941674852271708573928303600767475870792197034054125690938642925544623155582048178104791599751163145337812763441497283145023719287287551529267214436249555709687979852915970570628127350639862979693797723756402527563126644178254215809312958855094980436632764747917674751683281827116185037410837602395187871258510892899998044142251438985096344999989011577051752651548535728576773751566999412950960396965163148503620932538025379465045536224782451864375485526186934691150253206392502932651097722287318713722828840459435413301887671162693232661748118673208022944035471149923773885118906861386971521865390868984922479164587176696679850446563802528379712610973817639362440789338193826613487211336512974508669896552858842029689899757640196230974573656036286471931537699753454949159526155132239341479062960871816719156342884416487738403039430208685161356945060929082754193960056722471158541905229266384555553580188280583591964835470157681528955071738346722779136088174120026984694488203228325226261700144785084896834977941595042853771352674413302995987292155221658886264820841913078089777874795352450454725866174259668278665318341630775004378530828640657689064926809138018350176971471839306303271447764187311224220306195677632257994892071396787916866932686441348648605248813701771670551393864641326259594342527311705884203035229142298039376525257325864904613867157512482611506350312789685949449497344982697686596820567510528341024580134379277309819222286567597061411249859840847987844924728843237479694151491638099258132138708866193971299189077816553949085939539734043252480322199473763273270727330629048911792813637496528450831697574440221726930195866692335194658103283901416078716851445965625977880673176136486761267309761764166094589693835014265830867694782791490703438179197733207704840428526886040963635438538776689581239332141782564436037792600626512521840096518219238595981088233086188592226953442284541194132428248196657367498638331580874288370208922488014831499004861845223807378393685333613034840110665426428091760684659574948143637454123452563759769545034028563228211339957799071178344054883802664195520221880133300599572278675890299104297531385478960251290245822846989330285204147178423127255972161287696825132404029511628659214653655730648502319474373653662454114221665753706190144399177917086632452836232737387239719707994554385452610761020479047156915329622181412392475275661741830799876969934611122267259745782528117273484551977407181237408773676133472716893392539273740422824473972612720165676996977676871513582597498406313946289326352696228515960974925906186190660861986726584695768675183103003014905950698868521163397575309958277904636539496004490268918642987759023351603310890840954242979105205687067377625657135378008489891042190163837303899347080714443652326823932246819525171359097797715151247496951953047438102185379100290326776667241504930472344931878263249079456412044389086227350220856192809732343724625835876815324482356757484769365392315367021606852637741901574567186577265999183642758263800418829353115331942355028440538231984030466498105421633403728537136623105495839954977165972474326932785890178916509731469245555372655155214514837784883316642504099930530507252148749270646761601340605132331710894418276703522345128918169343697535136189381688199993679007891338744334509394389144587868982893274116345884171584000894675301967482396876669705120255954023619355384100698378877778789864230794070627871618173225567046619393345398570471920309706731345199543798113998940203154965723074151950633540207261079721693218068823853026042780353687957645326159652725686793636990682649812721332087435135629313524240166020123575909209097745220129431510661415456390122924468179357664207642163817238223253633080836911439241653445572844639901108875741704147059851115992294474745840121177558480034169368095885542700022944375199073450759969197612574262804201374492565402845551507242507760267369780987505202620158427704570686208001565373020309542768264728437039870779052882705706688542592808800352199133125401418864186025568405725638963002669210243385486139117655870034229635969964130602662929011111991582419415019669112435398415338465875081493941063837287710785207970400812616486070400602420751819503813120381899827410309173523624828456942353220960993465153426585407104750312340492792998095549020078949083033218198650039834649680665432741573081373437259038690003195325122309438915921688766152186657951206585477863029263364652780513688846387890960843280844734573419358128873131012328307475857508960892071225193890101016727959403424689155506697875354356384071695306597936162024995710525256794800903507569792136132507242345656316697533475080499084689746138610070278142556237905845961207894974785889679257450529194823638696649876202742392934477374258977016677343384895674024663693569465211640179816877414521603111635762602324354160091930057507924411074256262704084954519551382070547954258087061674855284901940920285705950834588576778943883830960912114045676605718448301702459511602736557331155578852278550016711071842846698217755212555591884474185304692375628080160909828639826405598212565296290110828964671124081651754004297930689881762661284751916785056864605380488662405064271514189522625430088559236588893993135078647575235854969485249084867001675486266446661739519399931264009121052157536101417146359591134486308600154804603959792045169292954665208409672961386429808074001240624618576018391188043279987944310126377224343234151343105271321331662170387340250280127877376454585894118200677718995310290220881564438539847219840901703469096306508454887246961677486883114840472250879595089832336025301743174475126911938685775246869272717943884018774535141560309274874641014226920620524336575192528791875257789000746045433552589340945574266299177924320628220892060158443527209870604016606351496092416622187781114722080013705136425115036323654624142082581142476915772699385111459905965375544339713633739991163892138690417040264015063959682377658278648280980567026359995193355857559141260709809483592000380560766943541290160127157195177384532765489823558955613199775305274968853529088531555475365894855390661041603969442131867165127431356422260071806592696088976076318957708147036945003137066612087324401432208048060509831349788392546002116984612423776585866799879798220018073072587498043587460114269865649956559966458384264619659339679258916388868936109884476743825944278166693854184766539256528912042451036352725546000194157346472882258586103977821620225534725922475644680182936288373873092303872524579744517117553704145354011385945045001361926599730792928055507271647455825001446266189738903706376566621283976389012863842228990702032551354829858539651075196727889405977926414332965952666974280992399108959102071201438698055645908767789506376025119139238941753953407115071277842028522806040244980997719771554931019216372273632536507979023112345025559774859473859829206875828300036970580706421706961593315078222006957064723026625079419466358560164469526367270021455635334690444566742907668521816880402032000588368769839691097195595939218051564853869781155921738693773805719036070989040376961735507903135186542575372111083900439236396148501871453012234534776979064259898425285862008719779848473378277652019642919094668906751547551235055724826874281901212391290180473849875794599603451420879827053451987969792964979996176871451417812160535367649523940322431294607544218399588208644165463213794426348476717931253324242134050048773293669561079481501776811836423765093928765662572906263344869565175744155564724683273574891686536607990415944498991709405679878604040550397690188485950471288007987490590828883218508664744795438115121626666712622360400245014514084257056083011162445093046417234433316342979749704489625709783385284259290397426728393711897570258970058578823257103758540876018336025572200775886494654404076449372510247048854034383121386240765253586852498760352380731733857512501533606295297986183403209623242017874543055963330094783439073260667746720556122828985678778790608910704640063502787294067941044376770546932792269495458866923908426828099465427443705924058447412141123453818643120572098319750906242258847312366610706845534168963207366096559875174363229411439825135618528585729509107868007751178832407175186574145324469753591367465354254228005332489204080971293601720720475826224305859282933869617205380748360603667971949347454709231527052681351014988234885186086047505659503574918749119680977734266508911879098843491014952032863840879126018200730070019656178155951795166703794299757319270285168886154328985039479046353345233860237693791853623445500482026778261838867635140707895206701292701657830991858301313992264081035332311755831539306974980608441467535845719659569430947873458460939093416971199405597791586544851988140131645438978754894357689082184172541969150697448688500938661808973906887233527253464090107576750476834967663642826159813170180507202350494300835037775926160249467894382582674606216505858504878671391965045405859691842979728395761635341042108242935017316617045599287789714704259358082318812322145103228882135579117236060767139553057317229429580379238264853686098086316530410068375247162753027045757880532258798854351329384984144027836572530125870895168648435948547125624905880520336529898780869395988910238880044895244716954507898452362914358756319788864987125848520330862979866253868284989495683052008853869501993367681891680300617039638567974810235419071144373941741169517894835795897621191009484989540281458108899108806188791626602265152266266385080304189827439491014557369911568479095098617769009571103851083497760751006013409536656259613122989787465732090576610082896846824196494184901410921217309813008983070735645783944979889212339250525954286237708792632668803998462263767999692552944819747768379013073183812377359853171879912041077000262008118144941310656905810587745922790548597854932700107982711267798365732474371586600015862500998648130903354419151020241784755878222393210423231685721788971071241871729569093015020290806040070232044840583909425988198299116976333900301625104054901888095247543918416967740648579035100229888270875063459940576195824576878704583238067034672308196989294612136484974455362784056073261983021569398634027233816719901154517532480291662657174839496994069209210517367180902266472583843129625587146587265663542891360841601652411927906913084699434953281396212425501878400451558655734437313093797007628599452541725673813136086629371616175234893392917603836733752033551415848092734904257064065647710146093008476521084505875819640499224107802836336870928255230223255453484750931971799770451474200541192497710751527679693374047551490871397602252120129970000165969159350285216861681202296494684048252395896295737530352422870059141547281236487395527091255261036144134795655938979701012825996855572791649926699295584293899920703202842284657154425386844422932792624944861015486340081112367362064416027935230591376721844117763123728398031750199949864136272297215755832624860762580364154531804307433491720568748770830605699705253661628484574656674358565138718898910665662859069855116675935041256260142329315111373654184544380178097987967431943242661628072712497078755846600339880281119480727456642779236672522633428286372278358852795961225488209541254486974702231849284891040303182558789070096118150338569258852393998150290470680302105968097810476877717108158586953484666384666538178707380796166711953251436725074834912576578638005915965768936561810784994112515319288723103613612207644720901053062833805799779093708055182694660284630140455011309306817534153768926710280045940518670784662419208911307092789351072294179791463706608672852276284205268478062595766139780886624335890415777087901439798364399969758354067970863578820973018836818068972448627113681907280717971487100775963803252129887364484207857028654482281824695263361948662847968260578297210084882077951087533097771670539021663291957772371415614692558840395754375273533271210279675625965330396912457190014815907389708795539828866843298132056381524554424903971067903648905778045875586386554540260261341585148188612167078990508485088852541928981977574494983046756589072468030303577054316672415439625929310988336384157033521693900617618892686106667244653449854371044373647755065536225980142548425675564215223146750282772358607291468575219195044881296815741765991586909622230151024069367703538230353584000561330970425150783980982946003579346853102107074949949318043497147270665747472248048197591524097302785139656900377334969301067184082134707036494739783703300945327197286503522506748623601710781825825193545904227123054432682302050597975652916522942018836499229868016842816063901651954938724071947268222486096992110482256785333940335896710330959002433846088770558343405143561363733100324929432591204451125767196807164019864002872523842886419943776931229538001141100528008263301171700901810722418894388682081722816292286705182886514610651599368251688444739286351097750977305347091408005611012826614889965908056835870667263633629604728731292722062199165542163233553336596765979587174648934320709350216198639165937669408136831898778082395274227420081001492077764117358173787727682657221885704118026731749049054914191616802931768488073350332062873480834249465945791767113082651561715490595162955596566708236281827149478535573103371568030461273528270258357791988246826502547472307876855974421604972212580044188745468966438528970351665376159920329920752771955131749127555606618326946466611868025079782801326164168269078898290780506274878039678513433530547173774325380701833104595887108475069960087960064358226591273197515201972922075584948023257317658491673851225482318979287352822598759107705877188382829659336765531938316536439031378363646637612655551097804384322664192022127664295565618111092034062545191453601546636803622551562472404507390371025533464400024351651002763954867557473194841537569074755755825049966708755766568823200935111362482167914234032247082768537423311067579196725936010599612894152942395065272953552682913001947249568633473949847166863848791820966544592130779309142062748669509672308051922264842942529510254340034106070014347399215221805052128637891589474227691913831292766784827371677608606911988668508899431198477353415831031667081830768524903915298369009040170014643125092380688442949711909970352220877794495379615572215420712374476674217716841369228669688096108774955824652175131256857406084057227433585786417630702653687268573905389463910487712209887933416617612046158243846342583482464028969080354835912856211500428486168394280865051387973268658211215312995167417573188567069843054533021863044484067938326350070875108112680568375526013015350044123643576420595871931661876135745324540988282182547608303121220869323776378096540123736686509384380416719976792362129015389270307586833672325478062883519360155341672645205228142087314000623512215442797652757158071104473419683554646260784899312136747263916214055936803125474299712220031903242766478612395788376949812983317839676747445470761895381834818788838512096787132560652503318475358920764071788959353273347909509812706612549834000083993685904581141090306345790468369466974131632153179554778384726600265513261696538115107917405418396962758747668088681294726345235257420351175869597799409071587862225460826836073142997399000099739817673457672502122881985968327755674150376052745160480489949108461887505757061240526450615848640519368223404226157564932814784841527279288603992863063669426879243163316142253575932913754359126248669577385283781032637600587462532372815076693051067342832436386105442980139879680417278464881224507136809732548796615565929342070293881551841766927445267869562313848889768816150124994074777762142059265162289573304681348611957252572838073584876430178424592253719235460487665725533032712859594280015895893134840438052679542713115488550507441241549894220537503772087908951768051595646708862752392642994599731927433304165848021905141220668784052842773093416769608191498895034918826522353576171656906164566824761252381857147327584104734518641392381361928412731310570605880446379249581886322873688229273611521827728870288165996202685043157630538689973739457041512403969833166601080018893764058079371041961920075936566278310317943254882388571660638436961456146808856205647689253811672727672218902713114037116858331166024250306428966887353381349872187529033238150411656648400588730020588342477169200070638003512712788393447554196965469416478317151614959520028887193472388969801917443712701348477553873738077156216043174117342833336650506129703597620376372658614203564647546177521117286442326442314027236912570245095451401899492759261177657929408242553799271861539922784092542519415008917675430930634472456328812760968091228557547258387911305596839203333665061135009646199971916566632773186355970294251945413352790237778649706844428722051549287295928558798709713906698245806051737376065642586741545755801310823197342466016151457761025143558815138004261213069478491364021295649439135293154140979516227163791122798999370488659023351159655689789088750320911408628757692134852111152288506319764617298112873714938666554479688882556892027397634862027943538476602332474515153552321548122155081398641765336889827208209407100093378634758018629655082023134348356671344885663383355404882853088662969923822376117216271080361312651515722833921549975283286780324523653057253356860303312800638645774663443785515498599503034198428037585619901571970175506060790666771676635541557129845214066436161354815039183764430004773623471405267673887750343844909178917539671378171952999962145245274244172573280397999057168488917957030791617755950014738501561951746244324276416769728884191328615614138592422943143252580442884355271486391116874464974440019914589197288206652986248874050699218070276510446939861047976842359887256090063694217260673987093703772073167970649574187753906907971005332725217842099491562897802490031122278093683751807122477664744071339299540171773418586935674851188224141421864620959256414577979570935423548667481854565659402560245947929879846012404817548606837883654515082864469409326690308748028738898835648078837950600668072617253081847219051742843664386996161206966798250734113669569224271131310178988135522626896630406020870384684336742503835950184362447996157726391426671030210460749073647419838307076702011068791439419535147001949635052726826821945740225386654030654012120193504924343458921253333465240900053625275597712544863736803439254069445020091212159895009048494394351266947851043251586843672133799986588545825499133523192668027107300039096950764408110228371831093679308810654808134197019208538506111312007520596044088267023491613844991823680636838196216573355852604765304709743301370230142797343315630107120652356729929467952104817601360941376845992448325335972868516324011031158323699127425583911580596548581377778313735929071533107737139702591019871150234068224727820236749058267177843990255756878713029038045717755816026237800108533816820165905990376080937585651919833079549249213877321654104468397334191412813842471870265421738559310546992918482598392088657699293461794519650010811848598907698569437380719037018244706180331823001853574074722543057550665836856506529137618910437755903675815349219634676154420111345214961063707389833746331555987574500767250664290537013378080448144270193617744963793132920282189894881699392300980458231356944734236543221804108652637955264940460649990838935530870314956556532697309590317863703222973323142438279113546574697673566314915067995278579096979304589796717542530725686639707912161581498544088325038576119245289922680618407890126733580305853498110122361327843963924071682366354879918113748346798876544368717953517982803703472093291773541887391695741533512554853479787417886844073809139467323832286538545961317236180070350265402286486137291743777372262475026831722251583298737397570574194458689050606077776545121667005543182767038004426106638320255173095673215402703463039973959072859957356687618887680925725538746031355918310668169699865103994665826886118798307942034702439178753681360314520798237456083118142448384430308043442599662118934990721637695570315440117930257839248112131847150286717331063710085441262491269349656534947242782199982130817982258547052382276037962727580566856827534471729206748652923049574663182262186889851747536366944544431629540870739053826996696553506510644632449736369812187091384013558470655509059971727242625645255668940933451703614270899748339075724738520351729733237246640294008527683729788022959130268229692813345149688086206868089946508650499338615895826917329113390739277071117015843811299249349341228700860103801351705179459641516641275557715045666501613302686514088064642208496329471389828124170415780769566928184655484294625160771950217575982932934746932580415611713016735209161128507110749140881519202035444855721164920551899856050099245441463101264229524631517915560560770924896017743615164959530921376750644297796659351572368333254035366948993072817513918590701998701049992411201200810391001390888468959431389461839910282628746839554734843876329942691909623075882271140297325769080409630695645808988591466943564731963086325135320099506617774316785481842618410083703179997667787585840462883211444379426908520488391891796902565375720686406260429972743477886594822927083314591349363501971922148177299270414026385211672142948664420518533362382865879807324234837858308697976431457246453100930633446194596073857690934407575817541874048451891729721743887855421741428533779742543686283508783711721420068681895753903064264356419349735907261341402816520013151268614494354957040850014112287973140405183105352213139441818604103591906717965312503370765905892524273696316371423721393700850397450636824671674207882565190304594152782987578598992486892131572472789615964549315601647112664484882451603161980044510144554882185386089895354029664983367163014579793419336757719644805488833513318831009821552952457819230309825134808892866188409039663543536809177783683246757679570590232206243929175289693774587599815822395894188784078990006784945828422495586846951393227004296752619249544568412512303294112524703757476790496373929481180792996794703900949385822533337263638509214440472952721569178787469951393771893852171437610947770651040676075211121809119307615267731081511070444809652546461418693557439633193496296517492417346369254245530719033533884233380544337245817348949880234478803628532604167253262077560833350914445397069905288783517591358345550375704482821566514518032755133994820869357748074348349436236604065595825170997827383649044061667212697784496363504143046935339047072246688142701259735565053127778660003038585613824522736946030616711524168512708800991345656027032051056196745544584762765803697567712887761691747648678976968913013468673794861380844017122908654624603308863276966025458406273100217050710799809560319488931185745705240203567316247961672163265503876536387758829550450225598223771073454635960491002630471760574101552184723640260780411138654174752317918884582579573763680244516005579591385794144386442680436361246508142018330611468402314428410817265533857382474689011039220299948919726302549672300461758953705174135754152445717725642998709035337222612222527687547481973974948645862457096437504690778905153511207565174489126407770945150650551070107466131767025746209955727528392117870630877345874817049237771009752414508178307913348303902783470155203238031793834897781039612211975921826818704651819652773611063265521137928154928330448081701771290983052113009108939440923283999355168400168207785054320246933589462025136840950055179286912305390084653468270488280273008646202087109046819495299546702873079595681067952801251988537624018217175414539605319986556094104243010169952563564561244486183084117110325554130235887173771495619736939431749662985950405681396569037393839214505082099464949105546754241746628278950286395517551534552268046065682838480693956966019252973396833895403166784855410745741874686312882919610120264347612094342811585708814588931146631508608433780104301405428563288118072802114896814731880403527399255617258579332659471862988704663944875144682320630644148334289935989724644206447373565548252497854131197719813840398536547457547372000657298261859566208177781611299013513050660274361118621335979198581489980917614350474473992052719533376517744945619797825843996887075686925102595007960258161054039688331017804769466935719214202091254223158240475479450216068188806303153682244489367301181843357718577294454446368621173572766738803480512770578958691869674268101291058896813505849327071490325716893120438033402387233506323567669680739982344570419411805256698891421298571736736254937620095723596170735956472489756360629832740018642664199651351692281200277853749770237920939616059254783089375816076821863542460545756184962717524161297823913166242020663187541913387224075999654994326411846356974897453455016043459803010691720489238960386678393071845319306752856312660626440951651402432259410459249698416315538115695277359679398415945774860392240323872663854979086723661699278067495454841891253324659473987394624224322761796683100803905888235104459820893009448880094295371447054286203159760020428704310922547152165238178471979701404398796619560367444663245675995610534985101642246667645820722828702734673896491821323367015861823716835095419955841593833613483413684041400098762103322556647084287562768126491521795769735792785448853685126018044086848082438060836361064639012718894190028397377697706761519312452975077364807195130823037004364074042384131008309222627719257547563353140819736483100392064042696602507723837042537543141530985849677754872391414663396261188440594671095249449454036311278358055218315518355072840020514696454264980344278112042247910842461567004508395129150452238547884884521054976639317371099774677342324399541029787982022270836102421739106492243859152087102073415879934442215199285257021971699140882750267098540737478286222120144253411820283299235062294066414596453501441954100930786310537697257189956893015857527282240441431291498403074380111219288140850893580378899635817125646955509779144009754089222332108151149439770651148586423387274394146341442845156286025809501046345263180033919451136490761768900313390740074990540678274491053829839988095764714013072319625994068837361605440142616522902440784986264027466534100401164984153247400200501907127449028648183270214881361139121345439590101689638210558624266150667003680036538645626656115421014208132531822560288928388184088974551323446997239456200329722041460708304458782778272648121191416028848444753377312049621035326465019837824837224975705312022080127751415629002279187678010284488972346822813876391444602715651867356870091611285511168111650934147893670635611787823770249557335087532106283925382419900633238517829236093176321658369037393090255410207721393205869618608237717216238236970248933772554912831981686581408437942549081036288799554267906494217657754935147890634473298440371477445818116531201918990474018550954486821382306956295231245061759733078873175802201688221645286474420667984274953377996631186027576984537537585166358648106703830463274800509870578293810569007561645654089186579577942704346709739736734309871964217156418029947633397738138965195071441766024227958257295560940424178022835945194396028494327489747143861072055738241504375854560384950302211266756300561419603389130816061266614691586194198662919197666534055852657518626698621975010971765964111425390345959956423598445683460456917888521628259332043945501417900907222831056213124572600638757424214574581911182292409118234551629911846185338801024703452217580018924184180224098011018359599863245064906815088521650895983131257998368384392371455805493902583491492587302969723444596438319390665668075490953884962079601832521972808704464512014757564350635594516753511531898100111436557184400211193742551124725071466842033238343896530198367676072717692232439090905550324036234266009331939654160861980082462153422225249583674240889992249792060939646282628247664452416837835975949174021406525112793627055778788074331415912283230375050171582931968277820820366559288797864127646733136245395497918148368362162459541397678136178096429411621352390119913885451497478193758741736029602966745018833266028212719834517990635358901257179741706903323574772156580018666287245173679826651308459046442135775006785234195766263134642957867754796146110983752895902515895803484931385727623524435639953829239698024353083891790434903928899142120624095414648329508965652156503941182720625186854437590364902871257986593951705463541989110357279508945207380839537953439749539791591607819642311981711171300753204902954836874936582106142465579268870174945456712281840444252246656138295193251834852708088816661998304254520853334064229999298001427120091074305732298166900597858998480051445530005322694998880625958551509051769834664611003619968939452272365420380964295859809229109852842840958909727178743278208962025699779055727872092097669902910468143984312851807414703197690603990694807073908646227943160138203753337099094911023926615380588801940578557024057817580770775422885699913965758221217364938317599590274495273025650108560794438019500579905239064119971935691193586208721721888425676392928846036465378212402339009199982134309202353174377314664982958002518400532059934534786525501302032639750793801020750751283929793166612658521681547525854112624324291963054034142928621251858001258698121962934193405115639030482173345971205121605917678680781419848897965131428301573805183020157080491564646170048824613238120580266261754639481292182163982980259591647223644496002929992321380913962289914406572399384587914384994899767931424335412881763540020523567415467298917959939526766095758727971443765237634469840209597160682127067080164834249723133376954826553674237169811118559516900661579293400176113639671521557567010607259133961139568136438543595731193310792937141983415410824511987461482296044483870131699301962334594176706746243931988963871787896139397933996149413574835818674670243654682844978950808979111766460088921892745170424218517586168133856710902556667688518280635176782089784439105690157915329645871121023396160370717256856872830081572608132213213201647887881593114769601562329617907319084316368474037836301905667800020602757981771017270453302057645453976559596761568729285068855202210392049046598342429302925705638818703412334261701012972686242884250226510275985262793458226728970936991237679749582559289340705859126216411368822253873113314030108414682182799747025640619874865096813053399853432819152843808569354032697262315038584297360881926588508934680262275233856380789760002015451229038276583992963836729851371724438644877468022198577889796910362993878265536780997741111470033680747174626813470405316558099563669461380562038573793720974236089582344076898725214795241085741646872293986734445111317145903320865912839871175169122322239396859440183220185381447017039112163081115150871083834696060756836270750797100965235328567622169208172885836164525321676839564289129500482320608427068828176021918016550307990978230240090093863665820831951986247071512410765194059464342180763435015804138796905819068769878523968169553484908333020077984277493507853364683470228526762632918882504831321476591869534516395702650093334573184393179547434748170120861010776479169762436059717987550893453640273063342724632594074997326714978095278558944926336928821605357338396539905213710838994067803324723304815425647344892871249296298352664236995297894557545094366483197931174360838715299298488150510549103023097129592440448238044385491632815130752032234124650854672429149294728257865753671969976117777246635975378845008317958644137195028665366319734042531841951643643187054151043758383470712508533783479421283982571082266150577811627222105603501261869608181989280645590847846574966625588253943980995317321508581284344267524013583344562224782112306180254146622333541808956200194902985763578308980585008758355059617544177221566351785680630738166161470521808462620211163581792262168267639838737978846961184584248605634798287599385171994364657117513594375397372409042041366405942136822476025853068479971833766903909576153426892307055911301200981158711754609929902404714311018991858109369770079385983045931941121110939150838680644312486578929820806810542279403687756646786606889214312155969568576800387322352620017001233793892491072459961549181918586182594573458582659328950247208739410932544274217324072286290109668273418802155690044053249843438568327448067153933266391034638936920096390272367439083630773457629493496918315130937946740389370196237207236010006018234945459466910736115141949323431962913102167148703715142528463803870521846027171428226552104891942592795602621242445050773928706379366926765221865897888102460741809389426062910570808675493350048043768152747195652605281843743836102740717582193194125331888697103300473685774403276994753065344912008040658027835662661711007994383039417607723294201951661136043969772373910574064990520400445494901383331563709252024462580802451291591099043274182142391083675246012115343916865956007605143898645715358624096932757795843454110133929049472575867608594408321610730936757940479606335869611956716338614429813945889742476779897731532041445075950555980293545984337513058618390914896817106110868382516228642558749799857050548321400611869042091132716355267052343917094448162892986929698809904163855447695638191526500241498739593693808759294966487145384619001541828129676637132844861395499347367592277093447496111653422942680179323573988644142733261724260017333581915667250891459119173794923315024488236528056157149220016506933691540538435903069832342426265652125710011553927540843946579333172711178829606076499596736325332348814040681115168642373585823349860237605641206237530390518182935677770486031690330284895971247279109177781320836558700476971826361406971404783727913142827599335491842294040354315787436335033334911496154981031105052854219702034877318440466465533041099685645651306890787614653206271475985438283649396025952382617107984553850565593003113682036488826358432285003593162969920576342801142805371963153254145329811871313971428094911862031958725093663185515904115849070916576466752110559507056295996798984207356443977818023302727796506667482070235898057155533411140193589550226393568346022732863400292038731559361330529148992223375348384398996361706939971366603041964860211179674119065107779365497247983445652116477781049961545404768968764859024941614294093256066436624405696813987373791437527276595705659346152514154728168937800497377392274376644058694931125009847884823154201124049793638338395407143563301493687414277931452993809721752648594898559963791983528998639483462765646837642575801206677186294333377531063025979578142281111959487698056962922507170400402236942701476274806175436141399331461893537585626073366716398543014642843363318260731160518447500256558957593916549148603143507312894297506767651285117410159589025073991635087072053227618736360801047019957554965390650355371245789207312416246510389780815885846028679618940986023787404973451950241492495735377398929674605201034140702734754823317309488163070388699332726587415258478859358326948010268023507207065703103789502789614990032264688764179964225290628827035222771724424304647970778210338870156963887989782341975875858334509605780821939545741076411371609786575769489000882920525535610807282026505695484305295607710657954379765129541454567895877141548637675962653500143014470671930974183546165706980876449553856347852337811293544412885817661800617543593825308293628588090997452784047851528814215795487814257553857755920743760520180002011726420072996796784333460200605625578824027627607098460584939407047995048627090359055255650818817025407557933139025543815799090477078890284896110354170699680594379470047220894247075613886973640547165459036374259056331689725866324575651547289261255112242958393103621904864254989393500700012233584523264359399381641996866662656733119929159761377997519945351776648721798972452747985909797615868008334144738554546654208401082464858337619580991476659318011655931116280963538951583610018058720946618863412164318893539968051860009102991886899577697586375041944288394693064704088129292795175103675716688082408468862054268907421564305620698776459875101857787513979348679561931499273856035308080701907855691256795563845626392570934499212368368837540447733610306600035507187326738797903296362208239516297263088743246027884055389768737281574129288716700693417672836799889522408512472738868762730941317017341391891032272490750909722421512448979075696911650000782893291005045716769655470546812067207529226514951567266367716584335289537437836548920621877974633419382649704743195320113810879380242363648096152073269634143725407114537187768271854456302290278238500471772088571038288647519646505449361765269750299326497572077798297654661885896768306319419152814696830684338737478912983070584862138834226579580646916322990404723406802571894963257635258687441759775495525113804607970729008730290254079860418079556678210675326811413052852298342376377839285027397604235868300288498500847906481518302648098547730099166293153733777928008151823894117521980576280157292366141508758273363576642095385333441870665301512547863842886364240348933443738683419342154017068534936008794304408954947267802962405334776675187364807708181538116292324711050578953225901557965309243143617494247159085727691117973804123386564880813233709763717430917130627623988569700467613753599474081425438494239651018445226944719665001669199797351413535398112467596623557679640638771426975309854013021523096929178020048465766424887319154520134986031491683926223238821482745155941608046478394287599356497912467374794265831193979317225895948184293463676406182479264572590302584866283366499430564242935318325161049465660958774746248129377802200699640568199019015577711888872483600088923021254917238637479408542272042264614380417301598908838402819425766678389783326663692589750825086352272105925150718152731335965415731461262632670245161643523546703529957377572061588992750714080890877876610384232005111908566556881696236224749405241035695729976892121389106975737384925197482885152214100805290906198577841278535282895800119451840555273102824675147420029508220022354123793065113174072729676466412383264443025529730588832851380413396918922142524353551789153670964286151372763059422920198396290313919499389842038497499278017004306355001444313125744175444777274509718165276833324236448519254069898970291212668205118087300231543811360429570155231790153736811160098932156244476131998950405682126677909888655024739439397610859936863509039661279237480973866484900955509731158330887485566371803965442064674761631385247760777483425433731713399202309802840125204594911640092509426204440448613898535556131028318823433044158938430308728245255043757990501540517313460954571068270995116220739710483224314247301794820417020727390612539791458032824749824988787731232566842297800766085532681807991873169745083601708460490876337135926883716541102740195033025293515365861847865558899495731713460602836946074705787542238247537671679297172962175762237629977809984688453450489984259279595674724452183474861869307735473120116255021575334667010807909704683311385991530256657031193715369445768335149361913244229370885388466457406428431842405581239418767450684378211495552583672118335455569359377735659832511054165993086079197776689167620726497509672422976667383996073335273424890554294646372585879519781345191650418849882105988257748645545575531093450336258610119490501333417423975489756127479747118701549148552433842004799191019778464825117766399054500868737301691127830825703630461554221625318704175475030328475715989461414252998607591349846743880350983383659106328461446003233555673282766461209678260728877684000550551443521227146013387616550668720994771680280540571013779637777084077147913815592017878116335671298071265288335073287878540907236192359010949820299466360742468666163375713159591168098193467733364702311803536188950572797232474381022034131803992484006965130629381513369690384704540454701213708483925765144573057261929486321818022970551294832752632741253107682197964696584372679319160718686873665124748384535152920137417415307333365364661529676717757001733311940768910301960931529492459896370452882033833917022287409621409797186869919894264296500217330609226753104144597341103913301082333266449640219839023776619952130966366637150966644733486332459358990310277474696914726815026011796269375552562241223032945785885486448722950702719171306833910890575997451025217668018835654726602624275779008401873802260195326334269562825886150188181241870476047033633550356224818896828167388584450197994149366386039082515280179207055890672693551043630414996539852078569512300571080220139144916162929115113918551925844983717461187485935075614968869116385123809994538019323863435437183739387050323977832956791828115695791323156146277253639824614022957500923983793900161486581041493055458204123631953836824724927641549851995853685513085996229899318805134710472882609027951227436452451551601998822403850848253115618757937864183363304963727074643102056663812929519463716695381245698295850397358310775338768363545667915339376038764951547648991120781396834304620423425435242926856742335082786684204489960078351159224589001204367111427673176367006690230918047178048282500567371939755658695970416195398106657248717565208753780357622906347400826532990722480508139893550917532432880716248732494960345183711215689450198329775616615606815286334454120119182326122956164889013333921257681372553253324894833507480915950242287636812030510236133452041573750551730401642004681361883500363073406324143453970427031105787633965325442465771692637034183845640792270967155299486020710763127328667445571249463267302470431223967470597086457691015801009309073304437806374815298644671769379087487126344868184559184011372962476243505937665287218071751940428074350392575330188491384561873285724462783900078158241998113970332456923018492389873715720005245628612665565752512786651539403572504931958943303596876913328050026230695210547104505304819970896844813777481548268411543252715800411477048369677025534412799766120888855321434251202638997882443334604432176382447211120331263760717067493122360557324648245719532721771250044025242658726892067803597636955371700585221420694599904933029809888479455821246973878071344391528543368673725106761885042883999186030683199913372509159732592106092706826285609925343944088913671826418836826123588981650719003286375886103739754262408978293068934138558119227435591972618416994102288658564326978342525141887570902518898028723924178854724192193841938354617365625003572851820549857222174692861816268793676394961295610374119930296568576076377827726431216256238583251207934201759887511309731703182814627957335053126833785817602397382012116679062592759718895877861419971260286101134694017833065041968723603748832876529536099868313805333264684681000822853807314074035398033160270517897028621625030467797697396841606428348257212425169773738469399450905171866899641386336879479769705388940351279327724684787915784558965675061222759460031778804351889490220148624451848567014331429882661706639640568560343238207515233102269589606296138520776536615349627318418023033345976998081598298393203883367755988229786847927951410799917644276853305672200898362817766623003806856874262878262166732029798657275851708471378792820359102427676138419829240007773753473859983681570521775748538579647758827527877080138556202827193386162949125723541799732993335252175112480696483196218421940724592820123753173699651120199684355200320094135068674150732382258055223759207894122033542486675926342829784597275783636930715160807823860014000489290228711059700057221392429517284343055767853272316674495687996299589918036410706960476912055466044334418666733932811400856868725562674920887609065792714165038226080627941570492493970791069283492698748117697012064207740737827472517796646587216077791161407614104041894834162785829144971609456606124610347606161929985847978737829530315681666441112175729818911635891287107624589796187687884932438868454935352950282208478570342378787901712950060759781050499389502252160544836755561436792473426599751698745743474904599318842405492351578185806596707985759664057098304642522676403444196756469068305595714651490551557008014615424547223806011313566045966674946890377684072242236091617886218090436144347587402396570204778085583767488501702308041098183283815554162054437406982252234840071306767114437717884417129684658994163447926549122583571459308432323384203729287688077166517784484672733123048008947874561189650346991977799437165211604293841048552753582333944305686474807743174556469336285393908009846243334385021767567308812812555570078587439465953203353458760985094634068758408267904745777605693848022712511958168292679675552178862017722987305010790246391388369575591756850525107201418272595485065200910576649088555363761510321252706964771851219964895521104611636215008109843705723167825445658308874184278487961907208645777646129743813105784374123988006677884525888429266880616047656072447298922005789305487996683467685290428209331154106633033747038257663543536173446041671907273624307818261040663731468646575909954442357730576292064989343319410971428017912275844981243621783023686539588934084124936982279852788639516566389635920548558083664619634241838279080453643680857475092450734890625825971676547389600141874400075929724846641946048909408771709592108499059121637802975242924273418180837564688088859162288095394225085720684450781421293757031631168647353090081948221392307420429637666720627620732828292288884918334832995784901971439087085575927946400873212862391739653309208266211455414860165877665219208770509005130404375359115625609051811562998622270680985448350719033433044331443332733149630273251756514137316087001950444128672611829561777875467264731092144255729785246144621005381847760622877598795254057664002240309142172869905330225547874840030456494258147212966848668474263036676451749701908678439199514067831057390701866515210965113670539265398748965008154207988034245137446674625774623340526285441762398028523368689449903462465942995572210808523560925618053817103405861253740597497644392452189641156696625662416092938182049508387930015777657746887483442081073100288015596224814694165152554235316877627499210285822398222052638972911096856679523967610166623101305866873543518422116947541539730720754263628138671008785863435720625480565090387971207274953699737632151402675614581107852961459335697448396731876669005949380910230311038591119761652358998759849057729392092952614914147642475524374673431930720900337448206100530315389328903648480803793746722435323678229062905053424029338149277569081227854939026628143838204165401906586161513029975203313626740299934955566034410981475836221497994328386788067897304108112610878471203402050285237598341926156064636851447810335520352952138217061666226934758706467625455406509767399400293879643895360566508659745353720219987490323093121443165052705125080759894886189699445680442998342113679981937967620064722688510898240532875000899442032731153611406367216029790787667596930101312104784035206389930259011510536107767454624252682384133810594301932188977598458773078981673871514500412826901438102984558495842484472540622675956089417680038275534831314004355365853082962516838586050729493983990416431290166135744079114316284706332911248832075746941465315377040458236044475804795885815851994583879110805037436667061006827645811263649163840757853893367762115119531295534344264262371761440443537998520754796234329706710894110861961448767348227427682043113814694708407183229796569508997123900603842114232758020497406870231003054880139186232386146465610790374519255088317326066724427753685966258243431387311859339104870120511893561039316617510124660537810939436891617174589758353466990754203427235370084250251309764546170725202795315788500779475393554710943254283816544918506405349200954286051587993329089757548464819467728559318715393560169269255384353846709055803063756226237629851055750682382145710370989314350479689185538001894688612056441933418987272185496853938847075499013920669738010516073166736539026188646355619509463524148815535119257202980928911445484509844095498819003369770765290732405124194702681950967209225168401076078783513979178451840444634878109366021408861428518619649256080748228570181131855581838168821832006790938033702244033392759490419536470970393470737114338092515572059475466442964464286183267373141908917703185640629812621512478109336231382092216181523660703176580309269548845604856005605885099373676882052264514752190269057695979362856428346897792724685180231491201813272505616393940707490065155465074715054860585907001868168463811370457028739447315386684225366273269534994274334588386014423833917103767019992583215219594584868035750470950861346673821792565050658083158242269944970849682082568465963928352439611419485662162110991792225054003566840887420751501329080355423269660487379249648273927631170240920729714503939891739446313825874070896042182950494548556002219252388020392720677089595154173903751831524965640571864385908151141085491991445773830664195627611012698677840613052771780505707170256876354228145054422839109080507822617780567473854387608985424589559187212343175025492361894679710350282528090598391553512330862762682606083251978677175430252324112213914060048968857086402252097974594403069563107711865423641798431497910603646858679206150304570600536159762289800736901752485379984717044205272684011457367686780935913584831591281588479576583271890615828320959442379671459766469919878098484599831067241074585468021607041580606078290660830105261274800674346156563749800722285448990206910268936395905895837247739805385585464729317752876695087610909193994762720566994120126941088044873265426146713588023438860919989458228496941055675471529795036207483690514979454517828905193433750688785387470307872536309821267375834318262409246057362355787860915065772289617185742451615174991289361482005285030887384395324253177422416995749402241467495140247912904638358228839159625462451972622389208081983276275348813162054711193977133294758840624468351369336143988787181189557607479171292222628029459536606552418612308538223298372707210403401346003022894029079136628306191836470870707461264473479618833040242115058489744667829814945542539357109371373335164284975761458947974977785816231035961410858149377385734739121498015775992756898764908050327217030719862937971130012165298019195071988569427641431362835418212483716418728145481561695149104111948737407030686105756916569862644280376749050117737793916779517063753198459959296237254172310305881798691313744109109125742751012956440009714304721921786201862043270835247958235093406917161856591537175947468934180019557853472175555319625199003703530800990657334789210703961727819129938025920080476576695355514934336047520748145700271214459353419153225537655975993691597544236814861506013486853353252345044969051162090281680379235976748494457014076811502757939670723207508617971612602689479443858486096442965359381520251823155524093375055104416280955984831691225644380869752283031186774696875023501323289599673074586735811381347211118988461671491971058799457658846537188905009562411821267200368630780620599104254725300293837819203860043625366548395590076931858348793256204653583574136844376693430337787465786285716643360792699939426479742857638310326456823911160639263935074102375712400655061777394940655212815890926046348444613194200444031151362162406348243683081455945743844244322531863234480133942846031137775134698278211030772669442797967951821411009969260988791452030297285016208476334463212302815696374952815798685041248087910911858504728614176869075953757585763999406913271857338460909199019684788979047039155025733354290588819130133938169695445035673262862023452539594084049488934912167817327022397279637957359474826384333255636688057730727409482217868299113865679818536437852100532972975933363806465682665300318721291133196995242678689115459957646983766526750447983347065502820074703161463263944250403364434543204254094838669891014485559939962097779644014336472355028480730679928501846191003304920889570797099612218260349345843050632312420255262439524673470711882964536398876384337605066126857533530241421585526847897488702839487429897439528123533502713467950072265795930777081977470528783966693415473704960853436885406879640636336490907599577651815926460517266850019070356463773633434631747823834698980087455336428936517015557013309118985501269947880246284217397548314028537674979835681541962183483953142659775304370041390220425313597998073284107414960020360886137851852178629074491441373158229313616179253868493103641360028532847185369988490781359359468764499146489362535438700566294145188172200790933926748021964801306473810614260569753036091381940909865959831234674989320748599064284400714170721882069421616044962450344592010717640416470335268348962206144620474161075545942323342446798187751642668386504816358070839898993154658388494675624007110924122256994984484786881380697157356909822866265676086083018226009810240872155515999488531272342941620941565604954361516925772359066136027766982301696494209719619222154857583345411217143270278212825970397419117678758485835038102302060946417220939525372655261058772128038163287048275069029201671794976346763664295151930349100792247299071656544905646838273019167971227611681172655463715403409737501672219601492193216944595007707811795294220597729366349116343460695650541394470301518236787888587555122438003773006809091874960972717849885348166563764983319480762877217393989256806162695237160482273578208298778876271515023265501554022145803669939245803908717611125809794430907682553149805819700683795075737911836236174814345257098103782540517321642788824006945822437915849665221416338191101619655950067079483465039552790637819611889453111306618840459572033915261478883937576514909324582778706123273363334539552443727756478185804955540031849174312689336894281687243743546903364834553999434297850507514112580286647289588888339199685084351040702246690388389552567801303490415889220357947636023120836590254404981687524371722645157210776525169965711148827307125142775832724361436240611045799382774166512174101746637082318678081904382683868284904939529252999765346000515213153547045263150926877192915995697148769524761302584658379485987742095290978852992215675051258663365920186316164600139480222025299616870886955690848206003215656729611596291664644540262679748079931790343077122444497801795496123300535606101167416809230663608144453580134878807488201396679037270031329747229877317178054357340263605396206777625477149476045165321568835338887178861550853375025569671932212845392811799742494518570963586459556460113914023457498530637172743944448277919867247337372217537853289414784220711708670538543216007944657146273356764554643467773673947260741634359517864595047830044243221117316461073386203011213607427637847461165398685624150033587737258916664952731733140765032674258232699480462398825369619703456768050223375344540688731149792108005277495802015131179517922692059100212422326162362719026391934497383266948190157707560405173527782955514636465208987704638285795284856495387055973556582708021916802501732089213000215367223562123859093827801883873966550595363738042882028732076458382229397126513094817636003263535467147283559463014431910989742020116816402961806292786226720052773690793897272467687950842437021993442701111846993272912161055223182720961434787890087394314318840861772422025621770295020788529907683295724099805672002828512423325308519283352809550231348022028762058092955933787508782568482244083644483452158012849175702683987845949062671324535125192224516757320470729059963762353155119322975453968447280601196709949537194779636005573234652910026988196447874138370597862172455271184318731790411988422363859016882458207153976174826220290722570390283668374513563811082800368843516775431599608252844884929055669457400584306542968324660970296724878125189142636537720400327773941897655528898125244529260048181088257386344719815381393816683767828822462507444781248298305839250504219092199482500170817494730805135487385152206467229638519457613486808083830600323643278234709277620468238664247698932089340347867527582834783440376142374803540434981190110254117038568444964269888345679055287066933049227387887609584576472509077389695882900552426661019642485989964491629560032430337176748782701254900463770440330546241339440711268530627753499033552744016386638145995467653563923675921322621406271480057398172006320045168400544327952928167764580443688110134956108023629215726387886271789723391739138264997789533419337855482699449444743358337811287846294827598397364241838555047405800701323211184029134091067362892266201405296454953799159240000167615218318270795275663785532526154283546017033307055881744178162189267071650713339115633219474680030707624104196972065534412722600846954013338463486837470511775244269378505063944945057600161815792333231372815394726415469274347052584242275933032318713013492180576832284967413167660674001171640772393472371697384445303262551853080766615078159383292474763128869215444728685805130773013659722763132484536245756932615677221009261734406527280082213058735609075817605622002476550184612903862638714058328203082888595983706429845172721787127314184322606464045843778502594713628198957155932122663138095574160800130388690517609921761141016420383222591094476440155346394442345017485181013568003169350697421869377850762537871694573471989758818999444780845522695097088495371634833117568087688181330998802881218940982514090211568611601650715824814704355369692409866446719131954244432899474864654896115354456577195647928300950188543510025499143428585772110742802951494150402162387670211349814434192014689432660104553741461963067953747655101546264847044506121907061392146330262412929110684307128009873199579256639522354949431019572949318194873034065742723052095613186953931680031334336247248487418590361575502695458080210178954691270674886099904735919024160450478457368457194083567354492638497343523810112415542102388032390049183228728879453442865291437702931032712300978982244891732936707284222349380049914157924683161752465367374856671246451411920928152287001266558864956940206042602550438559361340979381408312340449623274042953403042942300622419313731073872512915069226731012794303494654775738914373124304707465095809979230241834947895609443073815999685060499320169877259118732167492777082346830882724793420237183004089611637483343390291878544022857084858526002307343108420350557292502325237518030084433962198329250950343970536582826708316699174663188483569111121361420216211092383752081817300649806234017707125001599987987505241745278920626387408640533377378106730981400108338497445904825462176382399318950254605470485521137585751045418853853639992083585576192019550900229784645138266575219641514740802971351909642680356512294616304487244116227879994435780501881841422311023508097187912629228463161662362919067641029109256243007271716693436132761137324051902672442560902126590261303738415097648467578074973208881653854827738856479771062822741681176753665910957926839747095038515624822112723793844217957323429571422948769449687421147752147427068315861358903634622112436358951578933635310311774503901851470047484666556572269532251302725823492248473878635806072035402179972629450019504809059360487222244051898596918412642905164938192250247772395386068149499297582786019417324797455336139952557018944556246653942658735424595556957258576489980890959793204276106364863599488543759972762465204854766675364610007724290903556586112491670351528963136427969373624936212722514527343181835434233061747346047930989486011099692023790117554195680610082912925436231960796302261368517170136895326903076483414984201393917747101584691187178611241236315911827727394271663012417863903988637613733944918739465860844327079456653450047811013334568382030791908320720178417313157587991080276684547421724237376010034480848020403804146286582981634803533677331821964654304907099858392279837745612794547663069327291372354817084294838367719915351461047835348529145763370429348503130868809745319295113480466253692064189089541939015958298207626441988959058584338108196031578220706026546967597052919684404100510956970981612451170833344069295736811719772453280890962754057369655832786995239764178323726127951974788812328455769130200715466380524533005355359921271669438315460407797022573322766823312060855584289174337462921426427961909683071471094966708381293629937289430990795453320160385718006904982685926143069685669821945826554963426230169132984774299494874939816052488820089164005182620438867081709918695166207694905581726328490498825666323201218531846982607880965428725140678344801192685740093296947582473780629981883831581370982074241939342363220250336051694511017816179959201287982273790423128761820412872204684586690567472951726060973318836066746280701493639711935825568266562819783194474270366740563856250595656670761778120989989436880378548481297718527561171682892196376370216109307595165018988125643210931304128441453075175647209633981526083122227970372298514043472277050821942989984234323628102601031743178558458748267686935198772604025754374008073581175327733634872621126145820310559380873177957375709729034622927775529040245462531892360014394343459076120729934922944843654379593373316259589021970695479350009576256614849924860415356200382086025328349791576486351839331939443310608025384614196541994110564258747383561040758945975102480719115680913971112365845654905998400019481047283138945297812527641976178682538896989773187533978216874732810832183585739489113337342486951937548482949610116765813976218176182707775013161347261328021850048126093313452325723843895180999166764526734987461398995204658955211997661922515197528229331082339077674254876447516447288618992870528188730162284870033285152325248074099673344009624615426850990021231602230883462933075022130462883133875853563472919324608473083822149464557072014920690865501000013284044866307558075769958066257021034940124509605728133960385580626393936406799087934147916565052865596903890479390849703165021829790132218799200862552147614118449786412637674290157821384596131721986262184593896750073574512832680257695637485837818500666662211240581953813554562090823892529447779248640141088751541662191803566251778482352676953948353708691035515104734771826163006984432474513870688589633852651395140710372634097364074343483940217002921190023065883000097919647228933102041568013866866011212027773723504483369652584216895096620727587218428947681064076403792604857506869900743709561272237548822163392383332552476680552402195117919434318719302365609144763177221925751705574095134583330368949894989867543729593910700827658093413795054407862886736500816292177371163569828400063521818566123997455493916958284625684638711822565702538704832074567233632535714520181325510294695990577797528474863002364272936837738157733840410743816101544097564996223341532863364456884680410444704907134382027765427352242505916102673535630420443004893605519898663524991740878114712010412774393997934673317595948594169793474227649514298640466977687320975825931364083498808932558701306945874406766574894774675017748815989625872637303566728512158838814844758224000985753987050044939044647645627316058432729015336037568153575068428488966930170452697732004069942319834907258485144720974142776759211047966445455425324555186939102860549902473857876722761625558958711023930288178030706325008731163468344763239275388316105690106823410850319136212825219789944316937457185620976730774416506992427383097532869771115782823077576469949440343557728039057694953653825553293337315178745148595220167427901439220257007929853798636573886694783187828304388491672732186110021458626559618460026140821688043752394224989416736335152490024231329935668133246791938804685209495267718585698513438908190329286609153441065367578146401090549443490865370575447237717828774162181450393903837149503977339739278591339043115333093259731598094794092832342095896406227371780407697504366661701392322101787520985934114813353435516056790717400849224287934957261906487818192515184154998868173274639991429984009370269703262762077341111771271756671229325218615648521714972353363333822897984364355271901677877676396372816882852524637422512778854200363023529065387245904730526803696457979423890220153909105836738367538510547640573774657904592441811304671716029004663462615601982015822725240233909246134583796456089768923154155384880638911651027769699798283891621322200385995177112238915572795847611457022578027660685840343099934922967177581943042135675321226138138510393264212914373369848863210731111011381427134266884262794575053553411974132906804969007971304299067104668506110049312909316316924628655034245439034431603804862664184105728018260371405425545874296606238527402672217457556797054838578678118207369936321194173944965558885926137078132832294744047344610036382865331377486030457362152292892710323646276645007149763860286968126664696703885594535890910326009297224598274520497798647913313304830425011480885343526790634746850491087415056523989790081198375004389832157612201313913678094947181759168161895914114853246163076401076189151208826025546746333475437926294441477255419739503346930577080560796145759080448025333668238134807007159338356906621497147418321470839172024407478126447863941945805825881015997943271369075968251110190682353277969928792293341863393408955359810592170300518578745566373738517838811207020545265096026439620216067303125169575225283043671565564257965248446989560940240018614152851056329180479347550749122739651627576407109948389934290884446742334912133722927767649638379900571033243262681101096833769364761704741958886247574195611658315075702215755799288420014427035130228004426728216569291832486849363852278968508840348325518164986614222267634003471980677045640538629119864222797441429484087348656419068113257511867251736504151205728907078260156252028622714920383997669885077457113360625270456141738978577088005108931201634436941193504706628369709587678040824859592593839557571714330370581394209225902331140609263663767193728230125269786791475322115186008916959422025080835460104658607078649304208423511109893983556737871235079568466840767312077212808328621372413776860402558754824145454624759857806349643091006513021052221771931083218906562551484987653508035085670212583682761144432613067491640646492815873603112069698936185794479361017327889054218277727118561984792587192287390435765735700612146847157966362948222975582750559580509229522953058078222058801082754984662930651489218103235919594963178199591629561638108555234576896852346072554554216432168082535429968866886866979844161240313047982904417321650130600532341404077823212255339687622781816929591022214170191070713785068288913391535118741566777184053460850535772785342027928145574706784412685314333733698305856205932150969132634606305111206152774626871907477320187560593799286140815171847835867696110597118568753123119304116867895617447181693542881759583746703578631984891196919581566771033575775824565044960840194227219443702623666066206850611731851241579052115772999407262200068464646156681779390731578237623610929329608230739842150457590074825492047114478280088417107864520371800031713407532111464393263723389024446882807530651525478186853138045760546035857171268987207169984825879077250594995642588421910126522693298333447084335338639553075289831951988472448677293328239660193687262323798547630048064673794987071540858415423406656839946762180636423796998777655579269235402263065894226001558214431176782968225110079120629757757415135733910210511235938780989401130093743346200873558921327469447083107002925296588895277123989644485743446850398500797703336816885364012029540882082435014665776209952055625154907322538011537117090144392197346260430524749410227172036613135493309205322145508632293436612215898737940890225660979004463067005757201097391993461343097174693807205017563978394320853193128134576692625081745052488252352708184846553297388133456522028909395300404252691778612186043956056582570514170033673619299687902044106000509632234684697070279567702061148066567718449944072350068823204589691526523086202112135331587787608299797066324946514840340495245845749409625158494244670916440212090767565345073883961706745891741552433131868732826188638484034362455519465238999243753163935912177184735682637850067292843818458078274498119606790770335597292317437967786178667260248837335660525725247732298024062020602740568039030308542798675719825816536346063061757041001499448446447072597249729815172433520295753756609639985435438470026512549609239559986211132898012114216739443627074837502641101033631778420561613343034212686595359538725757775920241106161175860701117500078549479323335789492093459369398570858467436252698221215690159572725788462661996793219258340389070446156836078673665045660615552981705132888126626274879770928555131422819219491715482198341179302245538592643332761403924244221469327461013155106496447271303484705910819255081992400840595961830728976608012602710783981939066388766959082937809552121617523394834260351551754197552134942243740458200231265411388091569610378497842400894808577422127741829825602164266834055795023130819815171042778577381033605690507517710450801448097979582802961822171407718444927669012079339347511065653094150875471610981115713387375074290481105832344532424376127703639265798082296138304958864460837559326026357444991906933702097104983481423665556308902036051794279710748164787572077751337520275666378247252279038301301359432674191563245127768953576176435817522944826384157577279314621354314653757644996484760953850339594193055130228524853452064242373505420038507756947988425663537136457304405967598892387994105943283167600617824451400207788575375912020129206947594890550218927127027944049029522044801876955160537918204878327699303976166292261738145712818936388942897926765693128228182733369325652337878517331339843103290203489459338701551096358866733260310627746148225384299497230429355684911567481736770592767001419111866368657448811132953950331776905624295686851334001534081699466942176079640380896428401478119979496812423441215193576337998846240279888416531257082309713550945599469608924014992279101121816808990597120652356688670446508902992979279041603807466548437123739140057400146813732413711515092716973314259638458330851436023918063656241490553238694044185523154674645043602027990292206245467533824055583850659177937907024648023646519144121215258738856492393399280089433676356817296832401684527933894671608176204231710637284659304594660911028156765028524932951971508625239648798278889637945511887616665706368888980575610733068686758222178808731800694934019226591910956895744192764024273617071831411404663938180644161974538886598424457915255469243441401280872264583803130130015506608765175555175338276882373850375644344129586739901540552050268872548005767631025400291968603476030522257858443424316126004243106005310697515123435570146263849717006812646751848520147728622290316566799142533332933294959193166480035906821105618095295689720219661961283205909317240039395433829935604371973519971114494713188228884218934354563333608161446519574479653744822871554032760542522210415352662779713993154882194998816360330552164396903307049192994267521212491919985492934383389490305891119342359248174303002276613029249437808174816707125915166280071087639812181273547525012391173765659530480248389642975320016687238432637024496419177192079957156167680352797217769879888287189637943948809893096648022809308741171342659937678382027422206945077980057009592331923009613154492281156483985484495449848701263749312861997768301719903814228079049335873421578900112392480494148961899594294047581253425792949117897936571740690811733228299519271590170665873997878228783759624159281301129068159513468392402579353256703628977056568387468774302331642482295651093997028314860116584204107088299263949763640088616443059688306632870088681251090791743570837511122805008449256160049044169542999967823764822177436982557742970886895840619896088522285147894678560760306657301529904874475008029709811062799809787894820798464723515340287493349437145791110917326579124745639864244236206418590016042264389255641866098543138917649199727624814050486253701743870633236469485243558684140396780345249415732998621611836265729929005654682614316886237087239827419330472449690300420140479246017310708757403442106351612534629323293592529914898279483364087103361848844479335664583849221083119215931315891907164302727008071643250134116343835709504771671726058120332001519826297289706642090789242986892460200228714011697269845593863341146372216927607451715704622270602504963917218623380190380364139665263728297237703966071504281385966259452323991119316061033129626228391600364857464893454924567960198470507998924123903835658867006307624760054836680676043133780117259591482557956621374604610830105677348891230890534993672238963936190002347552979342818240617379779925952075232286134275470205851841178771157345322151394381551346641442982690578618691002341983315658322615410802762057939321525688414370778758413648237337175203437658456035622862441157516138003443013142268241224838333114567773842874323872495059948837979450276359324228321902012358361751608964391587330415228509056366639085022837045495306375485999201936261252959018642049930149541718713141792777855748335901727528463459492738404933420638287244035544879338271178485900181879174872305559599812537504250758161314620119309095817072430684221599233612910695558226950769255329305897184498656164871570412183205155805204669873975997463900911163501891654201646658717060501799811972364453363409895843847859046985742140312359121193440363746684779922919213993857920466746296197603856555516089105106681939927626861871738540131566497416476837886151059601260174822707338504531083307551069942270210942824596435155620587947267624088740142722017749953464793576616223920135225502456904141214188055337145874995569569230565269062203877769001655178906225824101644699527873320380393360294545084715538336591977561262866557776633579958836968526178997106416626676755826247730682089263839156167916079943776924198725627125536901377798850497792431345897760552622313722225647561706165853235989939530964502339395569623126527011587140665232633951502752430757470449427425812624538005697300354644128222166947315812430287673355765490287004729446232663568602476013398552448279171877747154427894887427575328214852498292167487321691530380130000319520651484979946622338637966429186922584122885800024856271378910455373906574170918744105932410548532431993855227830319135333248056956729893235848275073206027366515949572710204419973778308354320330540742442495806998388838025435602617744664842448682252469444409294340143403578345297790016288745852587393591177299307891039553519859035638446198209513862364046517794159137912394613044991256853297122897309961160573422595926239216639221938302913883467985829930848311518093045952313664599080509600044874099640875759498136553993574758909856719116058294314771372549469007257660741345982387113763912580789441081101077625275539423403792020698014778371194114472369909722283047980905978530867970116664094521147105828529984071263137004005542335000184212471342701234837723583440545415621715785670979342227103224967098340347743572737112490815785930793840874736125326477564708458319950324955712901706107959282233215440749436634671268458630195547505004675755646559640267492478285540947726496264478724628609060555275881874536375697218686391836576244253196173856601380043083288225398144324063517407071043349394899229079689126681489149582439116995630622613913076397191465951749193598139959738758469979600479492491104530573753893930960749312317801598005834092531390571634431407864352607240162940711186497448536068613283632785249336574584592374105161361382130185092945578529072676654019494854029590135637031921378247263101781437503225316074240065645695164267772727879800316089188947681719844083066302343391007486771815885833319918419798610463875818750460193990319716949496024350928886315664179387293761129637786993734265622927917679234344398721100927517379366938158481668638276426854470229568016726535872644273477360504851913986827152391612215468174198717527051516847770355741550055405540695984423748983133316826150674049572800941989908820160965992593106984729796949794977833302014038655461622102003720865176033746610377446563645858268361642484727610303837407148592031674407791537858700263844273812089671462881062604631482845175565762195672184766474464255306834602078432093259475275159709920409355518724954786370821357958797211417481565615756661842082823442599120976437849476034644315274665913916421011675403351250133513662307800946648962404525128712854532128496857834310508208759035376962267055505500205117134850555975624886258909425300069357937947210163592706935124924449362918310736277802214409720815352615744735392172311633685892482627550361889520015041899338699105733972567061583559242624715934214033760332629489969939711508854375477297973186840935784779326797216163655305265484164628422804184250603727607813299849154487230127703607138082472562955868176094482064400581579912492980464779576778487376954492164929633847158872371315439834343064045976350265910329943388542237207952479813090101566993448671901262971094830342616753654114521932886730933236741606434747452582399899559544883889540006025227469171303190760666411227945458272052920593573711855103099823934915597195951679551119841599832342390719128592700126038692452655118227573943317556605898227309075285003891277123164744606705857294199685480686966402955418465702358249126664842706572857442067770412330336760124618553648323737534550604466899021093633945951690197914464624051941191832421651733459146445838318493976714148025638326165665486949191190768843768875679072797967419559716848032469282952215484984875160725997529285531270098906146285723429130793551434887501673135452335869666480174522293230678068563080634557273722426008334335044513424442576815073906047960988476041319352246296914494172785609258710789591558666564103481418373004630939249746406748275056272546345233172194125521064687823188913601615162493887257272485967380888523516754928034423451453453767871492356360322354873927124184750180660167686819855604575912786561218359384656525524556082615679642037400057319954205975944173698741393307045342698212679561030529451895792715777964670846314021111341353118046880298251113655926711935235768078595093703066057904680764978483148043457111510974100846484434315005128634102032737311112188138899304000842843507165042546988846784934982671486112543528722371791878825975565734357419382195075147794040120264823305784259784720647014686587313808948363350116150671180477899853554646557351492965314786891253197406215375951919580610080426312355995333314466612300818504047222825608980525351871689040345382295544810041689083253462755423021102676115083172638257068626376758283328128678196965323716500941718957400330555056579307143659342681109883802031686669583875733800659398443767201163833192269865990505850776687287298760704541003940613282312801995002516901286770565383568146703341300296435974025862333170899976983285466802348330089886209776608951134944495762408561308692145016954210074998512519099069218986808809381216116507020686969163911309120915778789809628108995118978997178597936598156701348959159308166178257306972891718698017213506967606086209988803137248103133593538579752215761163445133291992745919819699998489709317163966167508701048196317874330218908755864365148372539891265910182823173625517548383929658898606566327601265643896571673526941533125359127673445409248862245196258541442357128084142903359869236679444450814074886470256367138489429311928026381905971201612597225031351378463763755078108677008747579027792701506642435455387131573832993100339127921979157377008493766805484239720323851779798704562773718944811948233203337136356666848124616257801375444187479922926764828915196288882941768374753799772090437837802031388190663983644494775722531561779261465596092580515082700596619655866009973763781418874259087777233065822302281096647783469537789571731310214411078036337991401301706867868423187983166418028784413867051529779198423607206422905295897719866316635798246980727280446332735348305381655816429710499138620568377712851913020165282950674515751697437711002730870957020997681256114965685421429175246458307555746664001542306948846044202826588446030697237948721876065484926145068958716305144402107661444709820644298928529398050183047117337747964525321895544731422335028444013880907081990692552517449738735944239238054807691185146462229714866429783273133789649506986688652770910006505025681693794906959473218338048298713456936558346710844603613585548113879393798607370282205194828860350275248771496998138383157255452068789948684935419258343876266608144866162921238106168658755467495581864841768310008914824804652360211768041979747923344757358233287278215675061458639148321174737866338086791230321629517531843907270538902634382786029575949189174875274245059155171146859657815025347416287126857118497642407284829537901319683741709324182575021332751706954914206133385573369367947008768057075456213969918709221052726893969613561599187827499566890774767416041581504838223906482803838718736254152319739537532205106388273640894279195300577869529375824268855328025512362490746139518953900976934605566606033315196071355060562944094881795824226754718427537932959210363921999974057643038319130537995858655763535918284580831672102665789835145964794608943638421520198478118109852860543378105667547463567130248176622845989133827103419030124251331614362040883199684262807258778350059791494021430460063394684264942030101124943869819203489470532109178808162510703997729404625408060985117611869952761391796691579584558987792751158788877292754982667198133067438624577329619545125104628747410800281743422027765999800694954931681393623149051613520107497430178324147305840763441857796474608867790314099120761093547365661503356120837559024109221061082035976657857005388484260096096086623383173780193248518579179309072053983671488396515113339664150441238393929804443559765935698020809298173041032583010600844206133050780691808916245828020475952221014103878569396622013644983960044294969840902869881808632433669570075880022576191664712070836034245800387872658251153819330124300858479155579532544159252440031241501165944189461727576427000605191029980440738248734863232925328697376086099762681169888754576502865716516228073201450844209864780883863079505199588227182959286813005197927828293885996893526210812128787392118009661944039698936025013813810728212010938337557106743623174021823880024137729976462526165491113741480517782279389113044477128857480558879051040672551834176721487495049038124912685075479204654088134853701707832540127325941524574231915930378025696887276719334329993391854833100922151464633477963683402325206914951403311989293830123120228444062273611087315612828356818282312103552704313099886948367812204312467518807013638417376477904543858209436012420496175073483669571664052000756975101925198267710652485599234943769338851681055551346101164642863571590165564129035968781042116020321950913898620234144617351932958684552653509396969226993384400715306513811990291092702760270243558603537625003095615065206289459702614076670434515191162847276001364634479872271996816375074774812863167077186541415443630970034575489170291051813207081925601698006865553410984564529181975737244401278501813107960743649693296589600990329124421980481585520453384142047020183787907732878408749037302775386380584973376086980087888726578163876757800869782452340884235839311282032939472508009192070987028854426805913837723108055990171294874598408321933543222292884566950884469949081548205383862165284581115720351608394973045054691086781082750712537087165155986081948089192721573498061876781675063879350439984882640605410723258288316584183787830283543634329351119497118364593877125759759053349628433035449914488524278739588646062864786932652853925119069134722971276562177659804744081651006635025529585215878749777189694734440023934370056747589812188419921242112822720737183215448562509935037469575741109508901751731073914410360285661277788589899982509775063178915100981024798796492522286532554819642213481770162812689006530129992338946450927274653275727207554802767064183033414338221409077318090915750824421047310996622438670664276010648730421145007232448972153702311368842020310253433946563686414379126188451984358610463946430025606194759629427358501711168689401116638514604619457002988590219175553371312152409264243109218885807770660170087055517009705967941973551278797661403236562937356154495082268755200154504619958961273707791284305875364264029267408602827927679804597757224843891385363943681232502552782955388687383164292341143070742220703528140674355414950572136822214219347078814754092539363072556403042099582160993728007256513673403382919269025470458283588419097649834420747358550517764242283710549677929280766441761830873897012005546817480717045934998770372722222183365275096487359362699748038067411716437161264384363673812100265742149639773529049534024053530955687697502319303246742705966411544367355867655684117883497220443439312596672521005713315245241515704133648731557269236263474384208453686923098987635706921195533516564765787346791449376288389521865898207211339590079557867883095045983534595199146800469366085698862242877048798770863218092815472068004852002940565335940615537637308352414180939347105130867091504522824635540143296575256787538584020787210651405151405230379385439988624916593575660802182115529931151726700121611609000774366731996675700176175280721886108952906480553643791508884051863746319459673157906224909028796406566697843840612123339422957982476752365614723385384267991302472385994770128239360454337479026990531991011104571117312807141424456021158658371570863941036936252537526407414094370341345415900094143157419026677976234768549163630963739125630722934640102614398063649650061761829933992481832050923256556155814759318094282085295871794950715902005111005256892841601925483837649176664038753738496325962836772508268508687340971616269114937177941302984098393000828024912944366137189403835213174120234989742649331156088603435516779110937766177233351947984617681230391899643133314887947858943135648053909203674562316156528970784085990222334184230531883360384762257010820958928492052166585597160725053814289343312757775268111699720517763474060485063353635136174531811885517529649975686917334799846870202458516723873723460012508798523354912173668459229913585591859788106128320825724069788336591452786552402844590872965626671306052362052282515164737829049773114284490259600694754559772296541065596902031010710184728156364089575737958410877696813883451661063044476545102773044646744199039398714960118004621877907117471715263194068014266269942706617033196132469984468955492107510386917611413286155829890173502254099957624479632069314370759681964655897832974612651359391409925999347827560353503187527020773774682197905665018646425575754308674259398737916224033679182155445842748589100079034317663896913838465498625874728036812225273836617735524674141653209982931412523388217509533780265060796731595273158621214626082036884166007518529804611563168233225001947860027150765032044277802727375045979114256207273599259278314926382271554704908539575066384431366891179250601615521070655866598516568125463568087519466028052697979702109860918832464218004938950784085880324540278630448760864862856530999342037861385742864260451314623755666202591590962970960965876995349694777821992862119840814700714175904773351668524158970190129206705178496328178176161041523821809750217971135348280868392983855668559557018989525478740249147429080789229119429911783553528515650564680126291864970057478335224100005067739465538429196197570431442287423260494869672991854943554729985638126907418604773840953485761160408483075688241622871494791807913324921892116571259337054083171013347307352230792161953229220068858622622955131376889757899773115170912086906973844121915535938117287179666616695715492564741049408707565177357803544741671981082135698807481146908155673800907420998207761438180973047848990376482419117001818928705976668544842901882078853781318829467494181099656121013769550836766464606797778149448666273410225385800784253390115927453221535122661895721142383554679459040712592673551759660895476317056486009425317415627729905276545131728131277439603952959313992343993027021880366554839290973961395966645775406887639866456624714689807856751757802652523958583943335887530987667734193967688390583781344134457461811490652079598091808320684320366901997178120030516100230307405112965906365655127928480502774016084402618842469904755643203617192497126834693949793621723425161708724685021569178073568931722683991275018105043810983878331290866056946489292156835498250655048363260374513268209669443414068961807782504290038399521588965653044114750355245775337163350222789401974497859268870495711508165734432627625561086473572045843419793423058406244513785582492466923548954113518399462152560773095205075434641591912347022438413260764176014319033565991088695025131797119882382564940606852999868386244703494183970423197052306692685284557352993579734909223289510784941254042184465497978247097546756200816826733192329912622408085716201626734025814025281496815741961401169478351995163897938196058380945126214526709507505062503526391720858906888399172850620362355675220450217543466704674011189086393067630352826953440906722171298182270437846367125261144627322536926562608924635091837948028092163555947123182305626078559067499073514496031776620182482880877499782864204714843872480882916678277861339821308866471456052426088427978654393539787323542255653669003049251632404755075641694025850300697819677874946596185078232805786497447673379751134303017633846635080492528184292855207755711921932689274751903817180831553555134533891414319701653338779218503703222308566114036272560727515033963543463821230303586882980223235152212323264984160414366886575579694223869358629005955175365971012588514901297955109420332071175096781382265951669366422637309624233177577254967623994331796166216497081562291505255698453457463875730325756545882717577631230798918256614021708283548502339998337058591357767804568341843455688433970780178556440962250134695245357003200381478785728948623276164277949810453406197717675446536674166342926363277033016896350496685695333701954620277578283102862839289018754939881806614935676723761089883972374235238312074020298153157427580470805343397169732883934818123622446055016674455588492218586475140279921188826303768917460575518148859902901575661302837735779006865596501322653262275711905525549618954428407751930025959956613017055810248592997016369815690207799430519240181848850040649247514852697475739788905896133839910392461593556085829372157346302534886782332396851223000461320152119204137781583050402971470441829011833121002355897621827703224841302242399697640824432857301925630174769129154838623802049122257452519307122388872045466365725101464877011381672208026001847781046033329115448738093434512206313931722193014849784313329165571489632973543986408811799910297458951044115053643300483249159913233772851823077490541915048135595771547819220689774361143583967809061249994439786482987626229295526927955863654586722746246015512188219906014055545239560619197123736053298954968523632142968234075784874307752193683984499148745214772655157920648511702051986430717760621499572589481344156097433793284627371987555552464061514920170405463619838962304887973715524842024591863057058022911341810444720231524369881814940734036103891905349719717868017156795840492838996365224079092614898079040361639051696426430372533589561175246587419166194703841645596363508848836743986547214449755116781243895145205155545856723488039055482505590591849234990856264477559432839488693757066920394830446645123019718777362646810538823174653210476624104853552157620100083023647647751704089031516740470208579165135109674487598508410245868588626441323651254327201182289911368965605665915966523807540141600805433779192645022232712223909421463980026268286821305197863062699789011181476232334175949608879394141247682220081144063434955874324986669157024009245950833495559235788215543211569966538567114091853020143159289772048158427912462182554605071815285539077215815167283685530210518353827218875643392835035232060859705886161997603563624495019374563233565682123119619358411273120167498469991533927878264102257204089427853167529292136954205438715701521262762142749941408477950741650198466527771786545574620304254112271507668875688386162914207968390944106548839002798893322989645040687259131359393414582137913123412739182305385204024119260186379925499970888416886909178986463095294462545373297079360023808612615924309769371341087672922891373632528405751794255800445411674458740932168416119213830278331501964416410744590238092446831635662740388559401943521905860612878396869341438776010931300548330270703150108041491779624298215827057451009330095181049247045115538043406525894802971594082570151340992955461452725676052972643615141264657351178578354161347960142685826983578897895548308133468264387893329044459281464487407595826923172872629261676524612062471930403188678742101882012508433588723893945610000298882538067753392537807663918247583008950420742596153700526149365096686536499187450571337178080788813064042863681902833428117654251883263853135113372863117312798898875256338250734461041069092543012972590428599940629231666800992747973548059812528597426834623283729883504306566712837229329860464521056940647129388914359435327185336187674517152311864513626605612111669937721205249623602175967271706010848863736104038683923579373892427853014102916753717078370819894606884613065201926070909451796215900175251304589540166369409722074287214422096527507554809154717571802730158078979032413868167835237875750309050748099208470158306685608410682042265142303446468972663551909086764429782526641794935502991782604017322328419706675593459569006297304496208530518028128007371956354467717431086419023444662608283419438605526932184942757038811891457933611752607611525496592756358508556801166096978831892708562445837934314313397921703419083128867311467934326885078640805060448889059809906043792317186116740158210375915232481282698836450489565958650081144553619091444392501821749982322457285727055798966985600560578989548728061046990129350627299319796004289715799250983383255985976727538621907802873924364065506075946391028054502624278758355215495375191679345715326517709919594831473448091242235328828292777768340979440771158572609089917494771315927262986534752404956805582090009801292401990234304731154906296021337177444248878315954795079673865089869351393065170564263343134622401924612311904350853994890316130783992328370119348284062943651183361959458871742406396500930161749251281922259593131568563367514131269349217279121284546850101978350827723244037257712287507711282930898871289446739866261514000804612076289511108602063300982572394280058229645842978159848039159799345710782810145428918025504654369106822439503219546221352698506221535755271272653603028328775653911602710361036196716249032339168550565668341665741391464119356663533331849189453682084297162773967148855881705234681714164634261068982106266735937127542361961416350321341414848866465465852743810448545456209636160427631307538657143864458167007650901722066129045533202304399283398339233108210869197244142703062801080071400276872842947172209632182152977005910202353787193160144475857906977059249403436090087307562329276485937802263354799681514149547359983753634442947245559249823390519989870494390770970602668376219169428928659339220435528832225462930680804573497574124375881344525899340269382612174670290724848650231393855535275158528072817025133877489769785567084133963110928704048657058717213437067330291156951758628859470558131722949051215124714726532230809654463900398118139725688495540473957159961219481976406762657255360463019161903099934802295365308364539412489643423472102350578945907800180489066663662308269524666336896258403923160847098557715399463215203688538492954674342193328982700959007755913837747248791641115764946755858982266123773207812674259746273481341699406815565298385786853147866400891582876313849827843819133005118910563737774118914092332783567616278611680210862240039071713060222091926319989666642235866602475452199155680396188762529259096063725360960671760896448859470382189175020073997711694058777925278736239355891736185476641061130087332584276384833584623268510899911263786887223193772464178446405947375704560843735816657352186947984443719616937030848313168371099369313741223772693133542987412678483048466957144198696041802815740380145516126074554120213440548788673564078586506878407895237702342393302084647502803934227180961381091461922040029384403489563492106803530534297303597247918528960057288593508198223346011017520730476163230164848621720125106312748824774581504575505318366192806942981559399289863227577354423248776323261009150460752461291941796908016961677370002247121026297441802886977143672465780251577743112788805989584374158855267073798307002943630780910947376208203810472868492242237179807040386599170557679846033274928156872510281345279160277922903404142317522059346114862327246855582497496760359516567442181547423207126690518341435163213524508291397401623246154496518027604775253811831440935675830017207068442393964281017714535033661508395906023333029257501554776353525461776476448773067620898653149286867375527559640425065504252652016160927826037021330612480825534631089338319371502428210855976686379612496920378808139206486460323302441006238294187784787290179550972279718990165663029602844099208287370301228099573560816101704667273820948257303826797604183912647287374293759542560285139100526613177124364993252216272506584953821981165545048863673755249998328683220414690998481257077759712556948555921803038919471792763501971697227813647454138693373315755360508051144696357019110021137805191528789507164650620768069848786662769344487505721633585117962626562142433234226742827473671175134177309816368461783890948665014381467218156694967096517062484728654057785296645376075055651716043254998570138590171307371153776198475785854240999597903064276728685104396517444115830775234919473849297158804773509837346378699391936678807412354537524022544777135726332584647607633534010232533929699553888666459952142922859728309567735546575737616870895954030570720417251807979291020310462452780718386624617907271450384830437741094508952074974132314168313531244910961908952450780394671271818119609520585161581252738449753824931302713414580184396520455759355221950998664540908701896197422742890197424337433539696281233670138096492977262226281125698160972977505045142024230603932286911954778953913650127628602171211234701497851340364456541539932346068246488422157712655929062104795250508945420518571815203496768752574351340378583417593469298259218360303152002321341606008413513495731251267906103021319973152119712243380868293415861235459687212093830604488696587709647811922082230336178867275973682497770660584771446961796119772982689389321653370068934102330505229010903984335255758777579738411068294810933101108715743170337327465451796150615490550547660338275843875531894874043463187202928216334019447151078866462763110732811653934512318505182797924287481093181131073686648927694177568279576040422335450551957164805462888925770084373816988874478070390844571270616043046698217394089917114353940015323134568716379391504810813774405736951982220710506939075459411962316087376597925092547352279537081335639073119724864402776147279415537755372383960919866505398014894282362743204971967936836499438921560000238037874363926639318435180901407130699731377001402025030637154704543124108813080043434956663240340798021878123731978604102762608334577851551171012365660843558910603467716471983188971408880927192957984399759491617238525717567094838812613842852096013666825333825890730329777170571894174443746214102136583910912564731259168719694678753131224219405337048681474657009099813823686816523477039825599268599598831332382036893470008881247567617741955510486319861016749316034255893205499216173804768013461873882066839111238054898714088578623907505579777904636292924374524192493356697796271770720477049805799263179683915528986481557744548496257961370317717090991201969461806718845952348501763484967706912791114329768578562766212651321960677253009509610546102908922372153121981755945080225680904472261137682672532428087101340937492926278820300713534839840142219778004359480374769263508404963020887798068677737784698483596193439410467270966139835960983387833833616965532716884891126300887592535834226187305008368874298204729965550835039719649384822776831660133597819191052816761943103567155132284863160403009124403642780596152480633978490247139205242401330346678732173111598299188400569622104706668717475315610158855980987408701251335324642130820743892256094011311586374755198775541835323066555043946259512630748858729085875011285321248761691262994198073600233256504954283785776284830658485135541504457245061984824757456618775052100790637995318451379721649100905430824780573147035388880025932679441876689460054905549023371389324311505906147029294315451923818380170634077368469732860855727651908891480408948209353252466610776239399828297586353549238415652376738996410134652354526044318002519052056829018651193416082417384252982198728808379989901998686364287200281557667899928270953908859558723910893034227347276504965991422032965935016615928531681931302192474384136195790974892623917454776434071475438364132882820715093832443619656160145811363014847766002930363653766858846979703742359395241764630353735976083504983196498996209178295122774831995285777597602096449343176224176360859987123444686186001239477754095658527497064514250139771230177167000734400010970243192161797866065534342408100356628239888805793613761349289984511604229513830078067884775601810108897308659476981124162738738603237956359221526969429484764798545429166793485682602736234725696791882883896185082035797479319352137551113870159890692675641699470523948198436112873447048120462005293333709655310872374449137522794503239611130800797082143262146730545199244820626855131454447866080507365911549236203522512974645935475080573061343304681356387649007349421138958927116675511242487152080041257952821512043110245768243069222590701677368046086495386121603710550361815640502459626477638064672616127110289012947935136762840546668234398646157622437371744770106964570447453324806850684105370719062563043978648835382975612212166316119418853473549618147543802301588554741757735248186685592407071448197755272458317112845086398975757544029019067516418837044602420839481858871232033599997630949110715269248695540860320563568429084517641140845083250122898551639979098301194180361063251628724123461510042212434371186081109560338174922480101839259148222869951804337276581932421697966482826154837727687787683172166082433948224672265961378449924333083548726240411752131985639902162249178684578332188734354469389018072882125514082934761888772363418170213814446282202843135164328791259197106826293174239308841547119456545652054434650817352737780823118980974538255029701684620523021821961504364445482494775734037521068399235840813737705166432105762231388367728971558201031493113537769574714077153554700906915988633124691712105336540631944615732462910308807264148581159169773173223704948203131099439454231516437727863344692683421458113960138918875825326313226791367726868151403565452139978826534032855505516361579250729323303129299749123050282428349758335452624021282664710673405404913813821171548670850034609639990384293144359735644948685203916848521007776680328887895447090715659237520355336855075435786082845564707971007797831130931065168118310950517030745973978796288455327169583741120029773686751913557323961642184477178632069670552187163647266935210623592633272228934609487811125179035542219880827037156603801848980250549347940439812435367880899583107582042003592405536483561258018235306389211557342362199197081024151784561984637608717021666120072856369569591542865493503605364034654307817904672487321027822880713675449821202716529596325223367787827558209067707711803846729161895989092847353367572427600176468872985766692671726974883444384709972591502916980137807415735450040103123760205774141946457752914979720723462747495414583138137699654292027132823936116154782566052111821087496385562149124022329514420192139077856276194810122531747479046376628158861186168036223893447778154843256616063182159113745864741542096096203245155118526024053255510353716104168213618951215714233426234514022590872214840645480780620956849253827259951717061501532243357690788678602466720892245142185837181936912403561876867601809461048883071716114353053226724702298638011583585542018196917646003190194235466487479802636294216338702059329671965103393838708813849706425778486312335849854826519445536915160867407025204940486132055512526665681347335267771201263903068432953335519022685154147555327452954487308855142652415788215368212684398222211382855010426299259769956064005321228168930839010847317416374618478501775645884605923486316014690564320651337739979290871368893551081573804407836566909462806211713658708721396078435764938252508604989266427773283328735658304212609366800541924836871449363918672389630466292722980463378076428345208359622852685658019857047638175568852496695882890535481304934646268326921795566344612489805235339944145817142711627432115627299113207464285160133231357709733053323665401446332554451741259531581111235833470350952808690503314975426463416438250113904852500334403491044113901818064539767526397448804313205318188142437177485944863361830071924872459555366662068922575676022247477354540399046230807059385381157236401039992459914529164595179154540355288944450750270692877123893294968643754185179022724604151783016468509970528450474928916977141647397179327542717862574330404962018264047011558527853895139269947843283057628106030442287635132640050772425304368072209646526484970367643646896905743539828310271415954400995747108913034714979650115189395382557082255727587482771883022177109755245654888864449784063369232665727960513983250209009390010081831238328879462139259311715447266313763628869765461863143735501904306960867394370764923365982423757485368508526685855985622770036812146735297194996890534820250049441047062814372959980776562926447702158519276129279189039543626940656504507653543665655254561706802135579333399436766399738120421629032726912258735217979051814373723962760074882024765009672810784678784521284630436691276805037001889468738233443687592368349650855621032413312797031601500660881229229592629789610271951703361238953265693711008744516054623240512194413408830792812418631963145693142649692011699916917328640456696211529030847192660648625581244177007699302221918191975344145484269050608207736917926418007699879870435740798974729823514686011737999520985946865217979047901219513318958821841263518558530577778076238370151159065465921601610763725356890300581721615018636329646271393161755524136852395857713739622907462054848084913673783421660027847828857420597456258965573954958892633202690423594608156171086810593495672512226232751579696713313821898207413285026998430058225176648759484385146615388921782075364193413669139429346453606411390011999542903198035892127338875184779291125716315779867888505774435367087335113974425006232665758160936671499755764838046441389037538907559230873378798946667674796212391530527544843628155558308104592815430376736124893625480726038609925777440054897446396634733284896465264058708445949526805016173192877562024861744257074588575229529500690578256570372847061598522488602495205978239993444348914900940457274235937606991201419891856736232318723845698405843555234124226618291022490797892727165886900411132800860752246562574051168935005979836220291893510727812570192479301910438397410459878092928575113399287697995848333550067851337760679789745708888707580874366747392334530106812236210290040610408028722320021980183663090880807328048564851059506153530627608434789748099889073466775973228617193682827587291323654354086648412682662389440483595875013561980320373974784299536063612307337604604563921160350775674737940190987627318286650858893760323468787660556586740436758731015225578131794027235795488307062726361289333075849535561751308927237734567951598483327554186538865979716617881358091758179922612265423647660405634470369204404975000523479029728579291704917918522630444871932603602194862019910210337318229939516547586716263816073004880024907677840598035583622629717435962838035415540860336328335696836751479335570814180771946733028954437884850929350222630012615070037770596414143247586810314572457954906586936314011018777805416212547733346489249918768666213955706360218618179181842227972993251495944055144649471634080087115773749620227488119344386208591591638349658448312329523205871384328257960738743367701978904880204121672720602874811236537841225874199678494939880660491252293382632527165027722230769358429600034633494434773114751784501940111570444902219070742756570405818923061474490721583574365671178863286331853036551093928659463262564561209057513003303813564558523701215883031435415235974682626438557605845685778108687246793690029933105388777596091849507362370668984852425268648447505856839597000390986318319159894547093532325414173160927158351007647999284138046907325842407068488974570818376871947041048044354054944503685916611394207776947781524677843244978694281712794458227893036010983025175592711331459521469249554764420626111688942632812096263118086569584658621619083143340587008968916825597261486627707400741669168549404820096497813119519139769831329403637746727029586219219615267626318500454851916082976857438354039647101461256276005559269044439138091472352385474733505316104291805017187459510045453188980749322722855912827967683482555140840679586460955907116013563748577728518542585840095663644886168158968470753807459308584019772264215571553708054150525908098076296772175266674709413835686649302749370781811461013164020501074392310478062511258702845456908380941039886661743532376126901081876642718132439800164304217166816807467236248463685820349397335529470317915693214175357192070706012676989486260100637633375401095121556194796825503779825246320611394063887744537839698078008044501513461719622222927341965343728976720228873090117652541628852302769676325363135689296021848727824142883974064257165875215877872034617915891910702187126349896079827419064634488572520945625942610253455806718676148324811453636903634913603761284482740080932211398909182642236449580806035359779432077065271470957333575596728181707171319096927721800681760176255790876522536249907088183834851266978705199345019558173675213249724943060423280825783618114247610349393138193538853294485958923288042730272616434648458726428474757389552700843573361984108395935338030345989848597034049962824261905635623964753992623308011855819461088120142248390829315681025764504786552565546481435325544096961875987165402542040839651267711111108888904640077313466689888964214145139644071097720307512462166814935536147565907420817900395416320752019769933732629947044602798037005240689101074209493204961080352083517196132106819605484770319931980671276287232844667197726045170775530003842574974201973889030314767581769636621497279446776735443763888366848083884823045338252402588851581630852139919367382355732337249107446721065197631301024893829465569498381106260822188106441027080866313757102859470094524824570490702182242184091300895745450264938825112610441578406523358972832468702572958851323483232365097713478428533841297790953778082990951435902058025588920642505438549234454463167392596183434443060020710356330388727757584396007013344869739769980038372396267875295110465131434739113831770497982269932817425473990096489960787807177926134494553513419604932965812920465848016685124620138559122765128274526142515409449209299438973756043891904766428589384089950366519642470843449707716490060688987749824187191551639282764756214405917362468966414653860981386177571620794531635907564503334056857911999376654685997503524786851323761265891200185871242305900058726808899978017765728888993748081888102169989428025596137385801830490600416413046159414718426628067391791992510101678481788073408219740433398536505214840461054905195325023300914790501518205122683540376590338274450963365151517338888323024052276541509398862423950257020819050084234987194481041817242677965321281135486957847143809470726977317038030124048768031030397470244497692478749897076417657519268236509946563125911699163309613645079843704347546816321841462891700725158055025999028634223025487218820965515439585311902226875497660956917690555651694015787608198908055798529264894052757426121203782613698436261137699885349990182060135430328956618557392309076805162831946462516037956824847152707474786509842662610303046973801091887566829762578492548733599142603616204919279884826845544117105740374106862003853594376321985478634722046247818513028412119115741338680408678138010722296992384718603068057637906925373785602150109227750158003040927699292597279810396699680084275988162016736316002564497360366339048363008673658886722067857816140429240282334179504512670824326318264065926326209989465770779265360869859665434651220844064342224414908222409172142896829034998583844210463348040773426138733859265750670312018841311289828341483729308321689800103087310817671615909912468472039430821664424119951121497942681900718151462667974791926559073542519826602820745882550248420478159746961071103326793955543980246761077021068588070601152862652601659372017667843486410043051631943721921634426505110186046834309443605355916394598778411834435775299230523312874599107210056510694775700763093576002410732031488325045646815584848592328446626997336669512061184799921135095369781007800479008174821165504130905276735853209381201804703486457945057555700366941876087890107496146507551910263871012293109093647103176913192711553244429106205101137593679048108839114367049361875377907425333756888570726755659971248699562850412016140513279204355051054754963505218279815251424906562932607178416851267981550066168568071518001848585799054274300272405767885000186552658182908162173173234401646844362737223204853615551585967659357480628618292139666580998994857765191209469725975986410008324100431311196945355945428070018463816792048658964506023894534275216393677979015179482512789247061445541010143199184242084876408224314597855920451046169652249842871168453483020740138624422394187675426789698600873068191595518277862726845127833350907367906650350480754034927754682472353134161520422175387722358923597866428971887107497241685031927055324745989791259688137126797953405948181805632736791177294398860580225354696855278967692908004678322418207444832574391732022360546255252304455963494682876008486163224706456296026221297872978509265447482313955543770617480600291116624396792295888909014582524722215622440020380396041170915704370307253726679738989970692510527135074831145326137568636124635723340608021289504885562862185239094911315469604758243110116716404309636088436094618939672869373076260796849827311368048889621499839759808466520816868669789590032998888222641558342839224014141805926689267885754824915697329115993883453077790092919727929968106034349318658146748383067137948009432742348151110505932406883647345242817132373236235123867313030359286092018592624020628131095067107426649561819899898737665151269577146136440379010396705398887755911663376279126790944039168430109006930535696265087377925389826426363320024850364538673157456994027452669713954791579286948992732912663051892543715459354005313364423859864151638583397370870335161137118709078940470105852201940566716692538860606975755387569186724738614626787587059975594532225108787087668284771057533785166342929587393915060357010056870596833742034964427783440487008115787689028693743433731856245450929030280780474231092103826213889556163344902629776218254494530434248435846057987234961094501411927298266605866161385026740379619641023911141056045518402995721612104778308301784506933635373614819982593938846748078958027422040060906106305996374355649471425218349253241240855282011892299901827130129607989199487152279385159811321547550119118506713350058062057018041933748578760607389168233755001859916250372689467085697187390566912119746862824762695626128977316087966141021128185040356524379729523889168935358414505337266131547559873723638537999013024122813692395513475714620332231903324030643910299230610385165422252987213847853313878130079632512111647464166585209297099533160976008162696921911940423181355020068231485832299379223413420952531968785998589226055967036868587830711862235930508560821797620137690478136236074900341942028486855090683371581893306346821459359195808003501667774295114080257375005498084822521898076974213113503486011198479072627257841472005590985767435988228926148737825575503925308681275356469972942729492193301681922172916446414228466449252428865001350719823514707732252473060103735387290389688386395072566758544252789925173545011171874869994356747644897310111335657443281378263917671493260721399573407485097743482239963925074659011661877489850917776908698325707292506023632445734106677120913843707188156483303041356880311811779664484276586293737792672660043380490077350429528329571228783970598052302748782847461532396859878859632866355910505390781690866541358833677605551199033654803316532906315800988259417367011563466925336305775580703522117534527519578650437578162111675015700703721542984675203817562344151026857431510297088391603064663388742000266505881129841988215940569961535651177860743941728438325388252561465362021647903573463930980747236478263942242064373720733539198868977298973528231947239669256091314063507960990777452745505998963254667497181525826721872257530774988173824450613803236387876682712217377779696562494991617836896015925354786692592678374841422987396256946155842345035303123009466470029858229508752835081994908587958181583151583457086598327081313667940351071874827864996024500532385666829184200147717881069089147725696519652512203851380939827055634471889922654243393215112471795893023341963890851782095423818545544977285894743413565293714009908685711561090905760233990161201893870426031198899533507379254884524449141343696409069055996650356932582509876235800199710892863471022211860042236281125959790309773703449424467735135458679242410479878348388905059463451184511141001941042979241883682875795907891704375854771214490953845415742586865752000473925944933686917504982253211164110087612859288316696211164913458975672295364638195470376044844260739083000380903845824312531911397737902093668217253474635235198447490280632153292521508922419328587564058957841858185070580276844175922756491806303239354904009623431129442638172268095931051292685230359881646829623842172491634414105309162076686618053131060156982440951177173563910697082988921637820507426756890668233324727944432492164249573851577691810927037087442552737848063530716033216255404910754394531960152093768380308970567650827413300508989897254945439317147237850955935177043939706436050424024287850199334698828421360448235703790019835015946868131747746609064582351061130387788388082051765231097840470125550860116285816487032413203864526831550609529818064016604856733422039968706077501342424152174075096585095772226141086009722881318807963142257550540264703570481943605839044807489980961533541574667398677364699300074081878049794184600952043308833319955769357799949483614758099922438855644001234789883493664444532096106221732633811667241159134818132011956923741784055559688642633114342139650357736253690514011032117975373410547411574207089593947347937234387767060904563832530147948359124831269328057541408442545492203368179365873137959264985233091271646619830297581588795582394561257383235804184214735723945738127268092286033797843925745473384636180051224577696664430647230875629349818094839544337030402753102905523211277721978554344438923291057411203093109921228149699047298648190185035245213429745727155925456260714429792284622188943756140713555117836607466997879502663550385562500821297956741410166149371149093155165772226094718942947851149960471214693721376760313487902752886460913401704421093501823771286052459364936522244401444982310057346628107910226792171380962385999379644066462691454997121727131100194065594833845202155341375055204099284133011345311576089450513546137698988397838350961780077912655365066536167664015420033253694924594890115885573918397264366182577580408159859261031953959698202496321475433545908136586714605839094537777952863709391026291914567342885947324624269245935891273452772062288499577873645925951877982014397289855875601252194165726363351570393268430555022078753850404916098217904596773422123845862516371289135219537908978123788586044184468707232742693015830285746707441456152230900785799698134436389383835161036858810461228817037827537730802521865142856903193941530181407517588329719628794792466589941429918451914501849560676965835851144315119558015999141177949082330500131557238642747271823528935657621637463298309543658669773098464399498206669279857729743292218511291730235998548577389725525255913312376114129229331736768413885657105120405286015527068098311714316820732475996764683509459093760537993307932600106365714425135237386216644304667001719830609105015196843114131008291335769307866320733819763545525782671345100777577105315389984686029987264971156008346181848353253291495294472570123673956106132013927071963503589753446513345145023722522079896894953140826090561838184671831773767521286508988963074146627286147195541775996657878110413995952017066742492480401077371562150925674547524776926330634182247467602874303327745621839902353805551819423711927965302588977605217226838314677199276911568638177989805390589542745466253760783021724590769032510640026719371814243581041461589983331726417633557683179957445463235127347663971163671819485571196947391298411764013629410897650239814131502203118937182024554906380919750407850908326993116401882727406286868362435923461491771117585191717256696374544033621540671559374611660462488088645800454772428278970937518272998763263400288757663717913951291599153233300100167382990813922092017639010067966434649293919619422078818689007789210758298780267047639932482089484168336960855816355324279386855773196545940266079376101744133403842663569393857502199912572790555171359188709747795970477783128115954988854077652465310079106122412925739880491130436858519752218820487569363920261692150840533534067560350581004296298256712299936077125783528935857336568704048033739622293558962067899364519597031461358849331881263399244783777460758773736511366731340705473934306453758550171491910515624687955846428881802597068667850363389424682877869733570268420930096662927405382852120014505090807180625928418064793379121036028052430210297713640526048921993064758512814460777132783743973834018402632170846025904558911865972057686570560379602037230579825325423904132054048949622173849188907198327933961876031637300316543095030945644080031435230592988198164426067939842172043330641429798980645850240265510995405088092804612415463269282026751801063235548574977459715096760112190865890470399322006732243192385498482031382404982111497060086446241318400246369802823663118797057007661235031164460813807377774312004153441020293570156485148675501501992008959292270870592486533844773672442309383164190033404332493518721713887773767212003106602726438303536079870168549595767238871820773590025214957543064438580088698000663190314113602009630114851596407357475839781968422384851366757705564184234747367942101834956685263871833298391849972974943435963110294237910740995299192185032811229487084061074514783253444876052203990082778600976381436914237875133003878123923042193773862499524734289464694684399100592472996941884650085647250497678925842393055177626070351468517646060964538969202788239140104068767227557452755938919165993792992691935819381570321572883945071616695737025584399520308225914911276060796368375326386946380414030612847740613965146945021115257250520672733779499899581065720873726213355560423276483076438252842677860332190466526502586426705162719710210898200723919278135102156474623792516476207576233095472217538814883892292793299292853601847848135628672341241033211179992219287072436307514157492553796464421141074756823169931962607361148826555701301323078956117223857281473841729495947925277903526142309734802325656572303984212110659823411047822653987707093827395162627071650575639620453724903797774252228082290794915749932483037481434163748469952580966320794563116423584239348680060475652848836089509354537428569610809211107995260877268585134355632300489468193032357932683818458656619876200118342473685806689775668188466161696513977057526881769434070342651885646972198375636562062440071170865457642852359399145411806793768310063233203735301133450156261962869295929942090094226680625779029523590573513812655597427866208166776130012357915339719514089147871045982351261657342542239592115668361220299289058545611544096638706761692211991750569305231546730247494888669617609411210970192869485731912932257748630532008101712117555898262624686553836010237275668053849905325415548501448038610054071947536686680744006564445921993269716559355355154431470277691873646096211880454785142881051217703404854141109729283353022543480536579560399603243094761540981981284148929505755652258388858278887423546589799758840027611602183651616822231727378271379917722492514064139723173256402431767080321192263085769089701743105780758131672478216472022461772675256785009676924327736092893544807253145872643673928420001422620408543326032469214788193441807424311700849716701049124271423841621863555184043182165007156964028713921531787775651060204234447676420584556336386493077608199245990391534688891091437078742055924369543494810000420246189177777137688589530275697923645688059923817813791498252733382790492384468485058532166936636536895367660826395743058002108967725552736227388286924801253685027867726141841584215865921553018801202831596989695492052013573157296023282875187061186485920848908592199482430524980991312301831658232654223864085936106252057469927731231262525872391707832747162757744327532440690704888387819198261104758254338071091998928146140198652592347228544595672829278133897679684218472021474432022419998756660343399210953415047762269237257222862861792688847986580382647331143518978311556854591276305212577676787461442878301107495798596524781469372742411253376572429062987775654999080644736736311968226672085162558262421137942659628436400496560189481127944776466387270258264334242323855858238793130148061255952905502002037607243507160841532273594743398660589417824694790405362677876176901183095155072521524419186603794538165166542815204047410889651687363958562053879726588170896375950163113071379426066185005909961388341822612068483683838027931838117083718155015490008414494383673597932090617157544448091814167986827017405682916898711622659883718915702875101240712984156189112902975328975536607159799673296765824377662007007533759055316779733834624076197092482536123589101876699452099960170996317617578228299905953080919277231854619458812138243963821576315404881506141967426549620832919574048296430703138528761316298323931570365622093026665312701361782176925279770266964670852913802710513798161627762735198073926576466593143366382357669925986234658886414841181713242227894664166022142628245447126254296959672784293886364054670368725474130385106155971097455695938254360164091917451893561216335135377855307461075858575314675502216872942367013819214903033831952893606335606448220730104285597915036545924278790423979978213170614245826848408396424277782691618805820534674059557732673597851378245964495689476676866624523837032203011865699964675329392977591490064652071737450632719781384503341224713931689176284883304853606284500381682450753919238992761851113587081810455846418576533083465932625348437294123325831875901522205166984069592484872374309456656162243212141487533203910589951443989811233370940481916196227754124368057503589528673870142771714716915650165327847502640011162521913304889812425444215963808478412510824297455383383565805279312845670475494978923249516385834697537458793160554551841030182915393898115274197117324048331820754640783414862021870569236370197037922906700554164250556574636413280413963992620067165670772990419813356047609866955823835009343548876033161709277379799716759489540622662077850786129676709730724687391253323726052391329895375061962637611878286043198227171802934483770545836814534580261398406958586220344067564147393167008458522004799822216210275287673501226846849590108711165308043605339905131949118441826884572800887982943339027217977229735961731085935634407240248894388246213295932628880391307070716269747281409226797037751713983072234448681392142944369672149016097796514420761255574818174758483079254338443873836723497750888011210996028477585064076566480472422908437369911791095710174809372485136415614038378718398009408637114528743812329959526390396850369711622044939367510554134169438551183676583258766141999993722700325030649227047234204689587283757406114903313452930584257091435401888046903325014409156334607768093937938846379648049475750043178755819670723077820651752971459840198817576625109995528868065792132908870461558368610393913652547319330025070362986198189654138255708617208862379185579962694729831824007582442770832987987737496852265092690829877290540383528238953604020233009330507293502713910678878617649348350309261189486691616216695436278088611026585559322832699179950912343738474404581453402631404293290009255076307729512124198929762336450552615715150746633874453391145187503932249204692268440616458280743257809236932826206437868815471704258105059794483860311044979621599966501391329441671798234100609044603455292304643916552488652308350250901797493795407245195155409695265631798898277333055267830728123420653077087335419519271283551567345412510609039772995185249536873871287818893013990473534830777949111218160092558479002450606610279603868251266884757837618049100788145829679161281488368066884217514654844562205949716744784120582788599712623102898482180241829143183216721782281909079869054942665437464147947955652995176560488237140778197252606021941542765377282284112679438867350406575916046562463088475566068183084504796223020894223047725834891427743574858541748903625630630380888284184011089760743964388896130602315552449582854947723396543169211566811847433199405068326684775221867974344013341779213758549767406958114391362208865070137733449333188851545287444232944022637684227391711350523633003576134864043928069450803888287502170713463052434504722975990054319883783972834887945972834693297610677632057319856719416984041974683209903702478591360334329216135760882612444334167206245167964874128665009078490682787319933076438347892670981971539875224211949646264635388204395404038806075959892866711847219079734758498969311044157995487086961997606239657984911414782413161741306377406025996281091138110660836104663360725394457591871197534945786834770899389611379207728205401296290974026168236296531005918181377704906669956397920376035049570980952587836671679122800534583756633777474376895953784931455814839181919153304862601600167998671114886333250234013934914794808774845366465787663907131362777240386369185388084932145921504256262262440430927950988096899923647343883603425089853136484087175815823455040300140733499131646543568130953191289106393561157833006543205950434098523613987555197907556009473175863572035323668141287743442107965986528852585619588390084240968480205437971834855529178038172337773202994516376584347421342156369753135303771168027061968246896079102002734182770936734199781019263243539457482554460575518935975607037099737507182622797338239492537307025546378396359227367975168220605384675322568552999632681510757327851165272812507311723065157114742136072670580483719988514800527022657075016345247480112232080085628496313324288941950771273241384224675567635971680854724553726513056288158896313492301494058873136920986653618707881250882883840223419608094112994753007104094078760012114480771573460368681728465332682989461996171256076437921729069354909763638212917265703738902804039929932205831571980871321890828973511362032062038837182842674597544711464746380649415053937945315165351044722024376104939105558506395851208769562342870920109408150354264848297925902269195050359003024743303969535504285420142613132769574376580621471550821271556307338603212668899574620561173050204814383751194563780233457860894338772203563383486819777137710855720910711467745910810654018042526483228224125737954331694200991194855434033569085949656424396544357635014465142691892963291031923861032992371190192010838708446576734620891272582429107106253241168836387237530604287491724563957875975666597236767501932649774353263149223803706532484777084817898028783741335962040144103961886163935652398404160797310516384590912972411983236801045493758707040347202966374090392972619859752782652097125883233916937821809768450175344482925136180071352608415161990728353814075626149586089248225720279637137471945908810012332168346952923353489373442218374641150942656346794412965092281027643373308154563091442426933787904799796671065780281801463550949671224061063440608726917129955690382469142017896747556978499368688052994317506078019672699712116326462559138880894341303616550317614150916518985755816060756658535831953717927990155726320940487100925068152950669958128264939148073981872584403938786876617532529595633382174635844043632124113889755447725422067688986012780262080429581921417800978588762748639121451283281648489122935724135773919813538040040460187571979202012204598502492473557882118309823696910157396143692350574862100836182668017475238297996293808246992610510888493241135656741447112894943571647453305222558474009582025517231976950927498008967548208570244743876530161642581575493715808822685723683454062493521511640893657121260094178403253948191153999028523783172346664570702980940998046271556125327979664950965008458962694887193647625804736888871426766853294747423136685370354151110385781093366074752492742550609482310201558122464751753360911834504918612201178989639294718325502259102099267369297928488983034561351997365855284144824791228214853647510088661224616119070719552764284699857018916338249818739644286551501833457879479157979395622108224615184106561815026053576095022468053275837704400515628757345302155136182643942737845798798414603433804206625708623323782356726538084894784306312590567479211397584573700637396891312486199569169725992841641672554632248103465432024719312172080235001694962079913175219174326785013645242772513752180993345478086904744068865677048593419709866787023244587544691491913715789915303685687290673323651118880363262885427914547525392095702140627469113343182335892537074889086273279577864146717567248465321556246044273457548060146840931684505987242361160539606989014591927410672366681485089424579756444884572079474742427496094729809526508959805710401045733409591294079957595885120182423044204363410511118974575211627437017775449745262350264823406434342015520109980235497223495400078288629595976480838636055318802035967329913322135680548265924422447127984880286554886953729969609378625577853244946696186935036098159613737460245409394277709007217053826936221134543690597974415037897717829160741530693111855280657013706176204373221407368667851626623631872742054048036535509882630554345847073989737930031598956056776387261184917351805617306458072969207050615310526687618746894975556704015976807262437463096890466136331289124101279486824475666595017161574491268287227824907857068064960080752833104086337847506818183748337533393686890658606624850690920959306558818696302716384773562015290797683428298872392804993911342299105710607161826338036397960937654924394671844028544827587305162264835671794479537827875141450456986130214847701735269001518558950357528185346662832192319755711799908261637612693174449301718248631090721398943846401444463171285621153014159894827905451691310209286471615579857530230831797712702757158132853439662159508615607384360792452954524082433768618616767052153980817283428726804741429921307500934912138772576335471613857083109599617290294557415783997256367837168921373889078955569553272084509050516356841075060994501997155784478817348073740332272751695110346042321234299375654989076184014827640786268286316116597664320202438493249855039668507429841117170879070006748663061908246820253786047407946613758514377987960160957130407079318016357054920077655853258100579874439080913045523768026014230801052699829385512060971408072095796584559221507366036363775145342384224436641752863600324478157851642041771019353578280650370554959087939559886824647918820917536434980234487279894002465114671785600663419260468229003654303865530128503909511441010081189562546011654852394640343458107852514563348927273859536312210578349492604339677973125653136701682221425013145120309559020032752967847112172129932592801596814183880552625407718004591644711742664479143931877086475103873481245716503090433546180758926258043788415190590091274850201475564877314640300458973653913441384727307217115336668447888881746766796067033960015753557505663745094969017941266038124932650168792102906723703223598517991085334437152187451012143845065937916387941145777279323520232212710736275158644716459869012602262508203438705953570117895676510347924653641790665681526111007853839987911589770484453241975766956799021207600786862695306867135069156366777546332032755456116066063964973241105134140319226158384502605149069202870286432240263210539172022179545436099736295851562753043260854392334840269132519879989924989647359736664574305423022101082516851706371490661576222252646744185726963697846226919734601485446804420462736457215412275358112838222340283131453755545197441311657245158914315838933946363638497460477915112815331008380578705526727823668440782574523813138259458088130317683533751496328889241662243251827821468453906593429679855014084075377045033902101070316949108177979551647686829522571234798606677441066476461972853693850229578738821424424826652923274504934502254953997794107933057658275733278448056307513894145543665645310544152168418571535743016446430752706725761796864196894080741706250218210979048054962603311012940921010088064295760983974503324277969817839801449688009753456066830535702205379709531220074315723279578128319458402407808987328865076566571770648572318800455691213094942934644399760346861452365827465621439827396170926726439794676559199713219892280384132952731127930226387202085306503218292101804608323849933431126256246349267515151847741262824268916458803180600808519138769091289894216595571343666069842725372640897958841159525249137223813754626956511682556465438772910848389509131935886676946705241732715692283933153881307300745153578428583211224197153254852248303077316076393819387183482400267601063397292883592728143182872135637870044320669757913073481179301575388172409024215436509270727954230601423331309533267584243585916630667680560368461413602444146016383654768279002277072683041420900336485325229408015622801960953873734476856059205372128929484806107112050722777280567384977518226276295729070767211355233566131510686803771201166552438166619482101791692997230862206061730501525322630605968924915974327361604974943595628605263503600497833279548757471257610085724828988581553556256862571414161998589132212023133534618555120316467009256832777798409331421771448818701949288082894511856255236058863609421981247020171636394308500233978921105287714762500228782066685879308085377387303962462743712511611094438509911559347009880818014229676787991114937471855743220326118420894702218676388192827165997457162549083512038380958157051737975074348053844389802951846691079898836145655444366977963596978240987963389309362895599237494038829956182283387315621959223658465063966779299025485764841505324822699773276153822039181827886745250353529357010188596938792937840975653664312782083909262157677822861610873317254427457841591025516964130387053898081328225425785448860281586706718895555552251444142735400426855629731150488852018517603436607394667675769744351344039303347223883949157998134436034649984514246691586669749167077278907988418465274636213260598949541893901511387639255083963625382899952967772496857799753034664272753739472577637677431015914193495687720923368754697760989830091168422544715013022381954179553149361264651886823171381314222283917026440433864025683553103344081244522613341024030431826563896946579015671781341571668512705028580056654382494190860441926339932111793142294463169902995100380084841834420079330448560331494675586418182827360599436317493710532894269125881257366836781602432196264189012376482643339150062494262617790433157917598628651649625129713399153359820918905614731364815555272118272992939343479665138101154326808862010528899465326420615940026487008051919548339287896586824696036559841529107641984251549866920046486419992351788690885781325244404581253961064376377171030838508331892122764324476831889201379582082216782652744287109173677648995191941863862230415672366667470527963014272656781012117411618891133604000472259521332782065973405938012176228114067342007347760988719511357222986857806199624917947777918119173100986506466574163261955967470842684207253222382200315142434244521194883467481546109104700825495325479194823938116521982740304402857875845439490726269227673216969731167463593319425359440712734988889976971079897805413341772870951375341198321265599573053038617958447613203577787688124187692474183647668958748699462616452657102917822043182021041435196753585911172908983232496324042275149882010129511724808359532248710013308474370971739013410493430050990820690726668507043102650849321306323804331670793361673698642959525519856940030737880588975916946384729030786252127166772503363505425661523813838096677932867536781577593293725206482072894379784315469966024626128814690463517849006863114161633623805596994257458355395321377429851671040333527683548671152573071379442690022872678615344842049387917753340380322566158117583423509491467864634009139079530892303971221824713683665809629236680947978902373977726937047119161015396206370846565880943729268054058617699959713282465228549196169230945945748038953898699688499574633828462052003962538723139287848087876261148706193132644686750769127874837448773999971618198461942728435034135206265293123256135337508003404679958502454988998354246657888490307613239740182112502841351278148946121596969890229860660137556975776451386357579084334498926366236503002290442683704953659307047867668763547276769920220346549294543370302756607404064371560418315167630831278841918513925205453596732907549578136862114498289271754916513427432611550499678395995743156622247629974913277101426031661507213129481942951771438719414951937376164563456755256590873632105854734552866806132379038386360743578720796094344586662760904002876233845203777226861533339670861500948705968044517886609400982489961430101163774149397277277795162018403373569281778339660721832158249910149460788322874736191287092493933082987069931930365666846130453156145626092471300000027804828432207145815797169734834428122459370762308124171421781807770294260530665982348679861602701190285252083049092130319261364693813637118630598786704080929428042473381039104882975935902096330645889413375542410686617027527597990316809931220428330208358126243916540942920089668605887111036989089077332356423547181683474179646396436298775654478638542252194620551046984607453398607404239608984231847483782657586627039499641018898366253548421341992820184084450150079645925799863741297070686918646018949140807025818719370649715976589724897954749796756543210544333823859137370463910520401797381343828341863679289850216535940597129554216700979901867902198588043824415289427164610078701479675986585234500335916589635198781481139333346247142815901064244883985537334256326691066901747417728868428739221899396424560574316603999082371229680417037848791521191572847148932374174654377121142267739799040371111328329909800708177554034464936084228007739214518204860768291959339155163082116390852308806212689887245298962409149162827060870636993981844176174194141499544300417824456502603403747127402518556358763510021260518759359836000020028938189759530006756750808482132510364245721212590084083953389505374342169911034526408184800108034632477545608165101085656610254622240777534387336352476295211067231582730637799341628928452180768916205484117972854785530538246499924165284342921558771993246665237149060687675353884483683365630671141001780472501888578550331084560508933026542723895368955908711421144934309049554339203263546403695614138925423936157066842902969667913725604935973522031297469437110292553494803589876107809509638288914840970699117859258188830450883156094717657759822063177563895413203013590700468796433263253359191477574008337855493661435022445164744161800278490129966833040122933464447465310358529025901834204892702776455970781854246786071534934998780273591005901323982684575742143020906097095140645469825287926215773532991649665637487120707366134765613863565105686697991140183610175278506213742035739930114756412047362772562250734381059758977336766025383905415654395626420779158136736001043963155015608682975216704557959164387461936488699805882435054508659148626339536043341655909449739712351934317998998444591481750807269801911964229606130986806777183954723321158520271322607876860391391710757770929712920775750908872516014424803016907456341354186084247973503134086067166725479785283363470073179282471471007903245803926388274222058169709954549732397853742413423158342448455157112065566165518278982697556728622798588533246595831210700437313542583155382041923237342065702084710701817981404662668112422177223385837439905264902127766551002683478140722913632371529284107302684628635400991931967910218932695288312959767635643457240931402726101890754348591978471466841894906102954453444544083645513174878931534912164755743274139276933669050551590439134030189725377549872872153902925077146014570345416039091839567627505521075125377710775600871384009272590401926826808279657258582703173323580147566964772124665810128375665642301803044767573103648093396604492588596798942197359137075768913997811219856250540493143637006664874383059805929087422079238212006032122551292211381237461045384425296626151587790919022287576320384436154081816984631099185017160255995872594985424899205034418385356379663991547923635786183151428649480903965720312774007828913948939820590953167038666935972409152858384211263843187210590830519680956551942654303079730975280961467268307226243788155584530202742328133398225952734483893824481433215688795168074898320427143108552712113909311998053436409226860472483748233462624470258182437044251142473671989930942742037101142488579313836663467852297098811235246538627834413964811118026797546089808078170709940708713252660730470868380260282514190086124932048075357218180403210672954845577029424390887361445822124455978076067653662471863961641076897052284556258938178977020288803330471612481467722174551715421634021610444297700889272693698017255818841116658234493219620940472839318818609241546626975180469574554574805367436314987753558654058591337791166753103373012092421793760775781880064442378887497412557940021817254597223722253213942676784837339333160332278786510847993458150237426156391430238270788768716045057901839373817449786823100264647952242160902402602497220675080814392550447335390209676143317470849753164084693545821254612582201299272571672948233645126434907787470519092911714904070195303282135883870443169606305926645154176856230166209286565933835920887549976228201542419791478639218783786363264919039023993005274287957626378455148690428689826805407729622817337679449532323631128895066174994604149230198707581847492402784693057056169863334044420613777902168524240589403151555279169507429038659950160257108696442245267526953349785202649720858723103919938117558478035596941469751630556430075094378165515114816038301143255706321273079262297590273019398997396997236806970522644253181978928453639728541270764578909991247252872462480431838137963688752066927334298984075034767275007394169792065893388429305244537806218419803926252937529861121272593988700580207620928625404395783830609306592354579217772599039356928187015313419514663615781729235255271915946706223460927399646958562029103738251176453164807851218813908866739266176452037914462091078821952640754116186571629810935359877399201707046619753195867397950342202896213754855755371072105423932298554407411181509529260159402144981221764130847499491421608811899033093313932585355419796058935775097981762597892757067806544928182093744594152232746692438582639993275073853441366784695346987386645136761673840552413280072859349558401150888324255305911705745382688449811892163217321946219825677475266816806760651162070327422827370376731935057734438762740029875327924526804479083309100475206879549521981121473518661664184124378739743074390517120748115033587415623456572528617591763047213183911504086889141355901837260367040343382313486018045123736720875450030251026158710430073379661445034596469790635314455906528962815257725960522762801807525034023610893654375852467912365294776084415943693718032109630451409283024157842136381343338502966572120073289707790091094157610892896593417146880365530381507430511577406356591267356089641440151092068018261062976221669926884496847527537366690697360853210402441461435137805426319217156071959459274291544847266162605787089479912201648598110714255921324105797921769370369030621586033096019667128606298160982049383480506931982409508492525771941085146059226343725247895367452161394582142867688873971900641294638670980310404406138300278641231365665221980740320462363480402294587401992091543542577797908843469975206824885702399195298602698653163306649184211100144092324511576387762466383857133095270904086396771537682271745580772751387767335546732049895043298463216045242761016786173254799754803680216543596626572838431151419930450700485762853327315067922597284130536332220980820315622128949764161044890716381986200001235016220348229145348197943846262443494143234874789637064534529128173609483889987923191147804015245385726710534710646472796483091063803566925858879763672285911455632233887197149268119187476752483713216678460888469530785784429078154000427410880814997478335677591713224043535763753892576431310374112826438091304076064221203064982392886057281969463231473862642272006679926676323639870368824106941378327320205709076051326873845042424169106377339585008550735720273330993148495755433670657447972314330690178549319184885894723967484672524400428243581961551448502811674781463755802355822192134947120098083682185419741858820192337167015853957295627837872028545405719146003928141326627456712214430975438250461402681220505165464919998264619299869527964485194699162668741206847992270734832475857549025348188094705002474744875453988066499997783424351737845606117107453635791845475955677404771614515905032957617162426170701816008893217742895954949942960796642847294391263846613312540369206682720001610363412938511090002477862580418201479379218467876664397286766216370861381943103943344991973126069016078604566237853990741663149762287619950248400339249703356802867264252854788191558222994801756676724280767625390601079237445042619880962442182087331728294894714859258093945409394099630404610844982937219765406883347882457331467606711158821078989157013600565527304489945445821299207135868678476955304924959229767567229500578010779168807421609398984654608636068025553910835923770079187476081853591782159504493926567649051734868384389708530984256765334197633594067788514154148616460641317636211701184955417041665777691172841239344740200456685545803061783807789972925084819312510607946326414698985079822834934980027529184930643646604545870139749046296343809407687612710318879523992892934736315311426555741776698332625635950082040589121897292908614937922867366809014319514695826246309024624151603465000080103860123040331972411969365634478434116888600025610064508846430358947944735664214248132263143460766512338440907579626500527409955830603075969759667688361230874744469272478224506578438881567322732141682989070340816950080706109460470365920078389266494308068991707704354378778092691819129896011911546153671244676968302686143665355054257546884219293386632999928405045189275439592309599413665084409633573896097648825962533313547790971060290334545483297036534722565042567078433683723665793032903907723608668365918003718007216852567909161323637843230993405491152447790165880051707373411278120887677934336711915279509826087930816141140172209037065161973719387875922008655910363350931109582799627749661862776207280876221312060817073877250895756283814577367981330716401164762442469044644750682315848093630020134788087965145851163655415589276343017892619453446372541819735630183126834818584159798886186973479122004962019662412992803399617369836328491593864147270106594375502613408331729098374147366945859223829460171228522367829954068613102741940035772660050429153360790765679577069142932406636561798033963646017318589849817157103031663449499262579443383104863714026591550385500911284179756237088939654875740599766722845185787861201662120469297330866902355609593375215536286398575836807476437248073164859492694429901016339016240122329821694919867304465783657722450992755029778550574048839263553102780853711403927007107279584928643192603377277171739332120496096180535721262138008067940753567042855592810262858698193595181172105221689222219898449996222677266373421239227724512004260914201005048975963736272072573547540979065032833262738774999983492004398196742431553044118072625879667843808511114229839265786740426581792690124902044067630016546453488194716311191316289461492121721654978474731462096244880293083503674548415442898441022398775305067506535479492145165212447359896508822609988956822994676258043283763491582444743409642793558585762987394743253058343160711862298603678539777867663898085031944490041538262327243287012794652866815352126261723530535673691316212612570605787619085560877416721136155306187730256003491316965750024556412817022544235175918108855840138567923642986281366470693617883870146291188647160797674450088041363576785049680287573090897153361290130112850310162315349116386795701474505602211352244982408314473473241138817598575074116305326730329300878177128582347215274722802252002322924868146180756006470285856335395941407471972400253094193691893506485901923935322876931096333391045207010858773070343090098127171255429498737096161463052502794768085745511425241626118734916049409135668312816623367914538890599970725270381288317848701636126822023689718876563054712536219456743908143875407535941130725280296098017550897560597692699896458346353214600164015086424843504736922756361831239267553862272334660221043265305066162091618384063625134557098279307875073100138284371182489442476252025985524320787011695012210936122705707543827644728418332957652616694714720412354597048819858124244099518603424048874758093146953535399047765735354103548408260962224998064081133317785608337351911821537944417490869108425951081485167064632614419891859590511760122376641189638826271975519219181806665437674076772133977719859416548026794832527599306623869165363880939320558931720163513078849620356524369663979905850770439754535713582563340478277860165872115849888002934756682584071232728398852594954944164501731890512950254597926178897344968805610413312986285764796406948894126570692631310995090455559129286096365416067875618498596288999109526187588843341138863868593850739830574199168051561715950814006524056608629869170066412728991818726415967219381680423779947214910235849763733813870806963280981927220357086154132190588040005500531327102955305216555151110586769015812236875331602202963175415571487948155877624865759185572501405572546746202975111167152223183389952098175228457342029422471917854601248582346859019558200421555103407233030587610053756703920220320664666144753694759335147804432673245453705169818757469652408306586384549794611680274811015268952298916585354931016900394819001906738829717015712995409177817771778780365475157747372308047260773991901507666326210093164946441881613145778970338480762502175840722842917156041440477946815116765279510629964488099453587264655652350794181259365024644595498875626832997156688069742420033987302169544465965912958979067868123593189823764406573016986437559831492297268906498779600308606370418331767663208821034215979355574552421003395434964909485292944294686663936338773755253308564001843336364919474443628263662457252372693616267041600838882308476813089176446053084079622918157613991092325062694455369350100439376467769563768617228501037687270916683061581489237129475824357354874001306190172892098603377865338146737328402234252834701358632155743238803040557771759443064526481236780181992344954384652666437377228128690439870650174774098997742897026552094553581270934669799280580441405085733169149390489772374658074571714400897703046178436469298332133403293369021686903802873350077597604314956680584951710237839683907040980987181362983384043732344234589017949058564718329249261859193756974895255892454357240391220366135934709567576328898866227281857308180209869015745297196664477522084603373658706719004035502760695743138195175070836749060920540088417292132384499844826475377157635987164778796145129956832885551752649457614161248992845823020513638938990473165378593801477809051254888642544452013304935675060731305635911386865828983071161906358297926336986961941574847958031957283657763155242680813261215310111455872513497078064174505121783094986983243202681461877635497915443495164465265042055661157469984555372157762646930910472616558354206643231437186886002387393339212735381743889542370247536839901602537369601141252355627427609827448195637204666794395208946521157214496592729898399197254068842295445978669562528718443668276326661761361385495148047862339074088009253673992042551280243325422757263872948948404221036800673069502498262989529213162486633677997695201871584502061539307592056626696555745399032264335698262115156779635269885781836283948212201191241439730239018423104755607649148807723256218676408815983470703474085446968336029193751132215192124082567655233485158313597920160087613445644389868306249162996981050568580040838340164903848920128885072141069134069723570597812494093695499405365746821523818976483070779169501697209544121847967609359932569289369018751167137090747133585787863022714798046618614873943074502527521542976686189006727074666709060856442932200546255086442494594432678486496965370593202879927594372773570163679875916500766215511675319532262623477097572207554528330319968727165008928163688082103929276935159330348437077868232671450545522220727456925362578181974361982616572430014825364074620848760391200343132664037690075567735160192335115208062056185182129037684927233985436955852741365964599294894539731309175330532244067114282903655733301784104312203059392563900917998251813125505962823584458515259873280309892537866283296885810803289765298332729512334190262811955557572612238489951579830641264809787906029702266841474292571905552612382069586403755054147855054266396080875758377293127321991556674650794830327751409680838473842063519598062108828602404844911034613483069830288192213605131915206771545717954828842195114183717239937620518669116202231798133233529435604292484927430948995316504252442491754117603491800456654808380786958091189011733326250290319891004459212104681007352908303873843614049528698038049126162782335563003323452328928192325835759677689953957678943996289460488635047598526926600951915145407113954879838598357449347685806472925683215818019923645552888266392922919658949742693946872905543266154325151755514120694613585416791960576490399559751244469035903914677996875182055067531106820359691237402553562787664846016693787468804017884055263802968365968310452136260620617643385875861241369945584733710892895484914067884357512955370506037582530952106261239504483196879865038581205296715454657854325501471218965479120511415910958981769615473270293152511412727842098490531480643070658071803863520922976733248320561285246262772128164652202955176467969406444378841210146382028220753699776559668077351824034555070761225253101885261373126964168890124306743595173807609268976901727947182585742528455375108759695454973155382034827298569820496316370281834667251849442050169425753726725634962713896920341659623062948108095555538482906792585916568438381178602066526564834632555050595890212181906549080490759006484299574092341586990927336381876218493406068030643239353018863610953794280052201031781090892020638200585653156395747736671749808125308477109585846896505969429523731441762515422691958593372636970907593070763264766887032389658518069164963325255933275911315025720599342737045220985022284377553013031940142960137519399704036183257034662476108330440276791509327630417795183384441732348997078012450706038993433273641772490447229040063105374640288038968249470218430790231651485789644936914464371423512411145151432193946956852436157237681033076291254726877618965735594698369905093100827702406252415789409072342776654492091929750259123812288632491157857217867056092950513303869477928328394296448863468202774092111525648467356368025366042904095593103060359506036466886061129402786761601086620795439584987271621745973322030612754788732897446353905492852662084722164387411543246296785294644839502584697339552447856899301520172171386756570434695692548758524546418706387127561505328572323197303949681045589526179419754142532421011462287121171093548345763276203392191643980827911559091324852357078911116703684265654572908463078439884939050986943843492048472757816417114312838160085000841162947014699699995243344127686570302606888189849520704851074937445208445447995030189798727504019981896732683132561206269620593682461297466171735412208345666587356715141556253739254355642028438543673371209819425079731624889255600230440933476796880723130112747306075156272722111573238441657556135649277491256555937807475127070279620914267283950864867174823803009789651463283737867835373198829474375072036789343515318914090726626349680733700964108604606129268644622093867778764635823180107322582158535713695020180917169416956932918326254479257030236197755447981810553750280548029804827733842890017481096301067994465668600269514588958993856994632928870924711950430297426520729782165715604184550712370863352416362495955454678970801567749105268946875655718970350051514039431522056647204889908070242421366903299217638513937627063655702554810532600891769371879537097937068446896855419145827303882979087315109379366502669565061927195069192707850061106811976523252039463277583216773920579713807657866376600712193119819797621017431860749020940320892861547149167116065956859559035540158873074420252098515803674729063002701290659281542843229072973331406438913048589349874029082388943800361063107874228274076371813565672114469921150640835455353260308742593782238706627904965146976248234200899045523746284083195568308861337936976842912547122393370824105013565825005015392547855417804007702300978379524813144432967391833193977625809314857437530642616839971685728203090050817541313093891362858930429286215324434551421635512287990882055039052694932746122898315298395520368307632896571050609325339912751352032931948140298050468563959939194015940934795094857757853475433987221624529525410093490747523541367267316378533063287054652103625289155994062995181975199227862306188639669715776437977865450580893027939985320419597620235381381391551379928643978017293633929373002004935848993001941657145409160884911811360421755632044025831688075409328160397861561829250959604037471440065026104262947540336670021355712059465751078743932756951637744156327640812007137948752795078756474144228607750255401727255694139148107659694988662040992058802545596043087974119700767424009450296546918956936511001129084839303675470003126809557748076831011475618500397756989831263705125920633613697035508676560626569319705075865360714569408217762845991922681265810787381926133709232961327024842172856678821661766350886458499256748152030654954633842142043659768866514164225578767549542320832552954126314449539094029413458748996811229993284259837888331259115265641245752071451310389204694517997498270003674144942400530835363909507426714533374031068203470464687772441027883803902792659070445231375452230000645148902184879867187623142473023185735351191784369314465445356750300959655733492306085604455914529497325431274964736196000991671497072672444969755382131724713105405014732246078221368047280167535504329737640106112089408006340346890995209120421914650416803355491673416952644749998763467469770800589900305681887458900553450082270188216071252085316082147920395049282226294292041601644090707206820354140660278389641041057674048836728118204159659313103115914807104250143291385649079702360291814007405048941857236102930411132786941442131399029786473477667117751526580660824866609897924599003219489852417575641417916619603134090903614212154646894608847130725355367487399809481115365464993102455317226099834298258511448501075665791967470954681237949003613151229055949680231462123992194696645816705188238975704685339649882651215823755938985459458425871797680975018132286553964075253365505025121429511781668627258532824262843940469764181730965642767303647366207785786634686613103881096066086367976224475999262286819471003035502053746786671178028146182861859060801247739217205640702417558592622221808253497309814404610651372275826800501395430462346330290838847639294005589167248600715697833279641380208086816195083076498069348037480163761216791700081136707345285325585614827162197295181133955768271942907109778824524532844213504892644764903429037023123288973584162869169910384401749295186891215728431159123212295809245871470799675686192642268683806774472392969552442217493537308916742788358187467620170566930449628456049159680630213731379087072856154128273140477516965414796270733111286023620173364353707455990281262851735352087819561678406131466703862308627979928112726912486532623061060156084274007622320848395103690805672460043303401549610602323446985859973162825800972779257700085834838359559585789482778339675987205524039658905692755599967687728376697465130058431269698115821369571030413863025021935028300713731738500900013859591126405926477258938948488899636799891089715292887286542907325232386971084733124603690303342613371472890599972176111150836516514732066684809244864230603616510072381287658943025801509950974406047645142371521256010175810568033390517558875704495922093809922008280001977614141660056595761283955445838192748639927246775834954082249265818816536922869468287031908449599734697812633627769435804064831176892060673764814486427353354178209600671569384570405486730707065609264921605747364244380603353620070304986893480114582361978103243092329425578489318661278343968733795414221165661187035063789999613685157218640873644570449167319784448087404440227941383549843831578662904221943001413543221780870606696222044886963038103368584926167289519995442158509935309432361242599207212314730046908859471396278389621647803974489520612382114507001826387094959750258062149645124288437325532119240007588780494825199789732729661224894534493770014560034081623327812961058388408829035676101293613332968512255060710862324029288310807596363306460483819763683688790589590300685315819289143992230780117563945020536984257468468399916213114605175917972894370347201827647927871594514344465231556001442668623936224206603273425223775646716875929340641431898879002248261264324327203583700614288550884908850928965045581234462156582863475724060243783367458246307478290585533905548205816619407020763922081350511350236407647422218404574802513632943947774753948176724101867839449349501511065747125432687313106997386616371571349066563364699342560091029641659962911629560607159353166648709869061684861940843052018330436534271483563318407056061317852577159934280305534807988390066777223496364484140128392946401272176364998297474463350788434410820747497505967280344768320671847211649444222653298941250208599875680917788666842671834105764488671222100215323295428934195868103658296778851175188313031870984264586455726004301072351547547109404086880845519261301155074581030445936522726923862072785952770540831724522018794041615215347581561326566171958266101351640285411499296446366558321048044491844320251360584735998524690533679023360167068407066863077655028178412306260164002992059442455066072976560262102559434957855273760629761395531118736650709905645317436014268037789508255711376671384722341153131088214939099170178371232840908418607498357098948593220194312827038833692400900335022409517594629783432172080078374148368666377162718587314542352287848061944782980927976369093413539391175619534431939463658526592592282079210173081739118707238699331609684375461259211455989144788769910946582089289942174841398594770736505050199819790884367919671286613330461183004281024299894705884859629584719110433589603770316788170779774501146332665075563148495392165707348421808327269079788010295835174085017555516461262579505401678410779470899967965920488975647417565164748366127927822459005265765177135389856299798037244206448524964773376974270348668768354373371563429261954246672846006692675579117683341713105272432043671094730666082029885367835759261469018832467748558678026800088942559391809055673167912835972989199734106307287413896186673510620418552135381538069430235102990362558897160579788126499889696877136427296868661170511414722172407815402994280875218323095623189153722481890373610104196824999382341642211708915277959682907783463998177050223088477893908995326352600162068739109786431972056375319855505273813498891928639370508936373352154866962899957352523580855447735486599951658614876852240336168803920015342852296700537869689285897604425194989246269848893513907390665321562818525050527409058778149830853884287893762541648000002983918320736171959747970736036013241789743964311385390857790802310452778623859865895668600962189043057926600952415163833552805405067316923793448839639987275820691231078925561092418332376545362416723867634708783614124967700841762886577407952315277848652627620865918416325816571045197543567030214284193583017131150081311805092730367025232417079136095682521522158500687591729330939303606361327763357234530130152215799352239979189983021007992768351252736217295467593790352434601552592433145983837415663262062444085911732695272184739084563787587342529901904066010132702961011764798596818584848240192593471760217951714104560986916142357045340859655261846757361064050373803389280503460444557605585324686188575147650584703766943435913632490063399911292651593969233570757146114242691196873209143497226712123201071353725997175165334405135897637193176087175017205783951455227708450169315843979121067701742619904423981422230738909628954632178045367865145758899549365102719848121080731225057883105693670911171387612854879678654505205691007880502486242500407495120104893235817007298283097480383873715509240113780974079057169623142000340243666680061774311696933000437835189340571812313823527869643881965802207919013386575648701365335928991424050941750175860935486781408835168875741566706445792159815377640726644043229049150353807650786967228357510502099167771943894964745502154037330997646462302239345893436035998919593816900071604492903377447376225519441250741993538313285067918893790667811140517973800812121547687987714778584428113788810215297793453668472798317619946097339018174147161914091463676203053463558843718190824987304745298797905021875963318035097437551480404420737123157225816037267746984165356302969089145877658982847090132923241172123195290205753676245250784114666261641476053284267720464081122800774335971328324594172456603831274147048487879565061804666736945467013470558178600258908198173462653390894854243610593038110535673527792557463988537927134305881511135025676886786675744721295149820145861024410056087375426432938048374792562640485806371652284328171304765272980331098587819128250466587330281839909492104850259885748851392843530426190513434440121102930303404773146355119413351454572021709185055651733836535207097303576010920301370185598269912107124580585304197658853694077201500505494385173141911289200414693590867630834643463617242390691331098913010568147005572849480050741741889360436401111914002568001421627091559995163865104764017059352400985740441156153087670061071733907889936816923726426608733976545975719610810883472487153045530631770060221504563315632256611452278663041036206055643425769345773774532281852463833493788993137336786579830248359066964466437779589047100981096595099407119942634570514780660504268660228275577623570704413044513803362992667632823799123747774268640906651729414715765096457063467752712321050471114417746351670523900736111109786493134660946672726337647563695121749359103512045879798692510268404626575206175524654711478664427014315697393221774034548398342531864524079984730713119286519110097118730074040348187619940872950428171277404278396238047027953409267357160315943921579110509772995346955972151384068129655087745788524303848466911452001408049821800129659926606035922541105310724274272266368032240140449201812398563551776528690534894140830766264907248431209593331267865442732594980826350296030710983690724039050260104139555138341997504902748288177310014859372248599614450929952701261941271135372936662306256541824386701188241745980302381077133140376423527686177240913078362522762634437799060307356428154258855282073972511951573217657731031551381294996978216096947711218232300309088457659789483173716936258540421329531042212315192887672598528488709131425674664219201253241231872166077416515388522256999505179064278093470848606379643202025259504776488155614670316069873053191924779915131541970270474142932631140723134920720558372107232496105106711885989094262806850386818441012603821521633361040226818538112550637423665469641711256981858857026395403616688157565139171284056088201454316613505808938398675057956282874353880075099073442454561833399955107983545168948996039235207108332272538530450312653528344437759616066971759498023622544183014310725590421222467138233476904133244461744887017056754246849269830418436561230993370128533978447002961271268919485491866019797674437884840140905188778636713807112675229947883364094855285183054756979290608038695883468055448756127356266745997271019083713644594976099673363418136420954132257505482047859582113122643649393438926349003716629137395217242226394805859716802268557765503457803331713988063329265948834809008499668099283498684955882575796750037552568800113775649806599078951758326497318761979400666977994887933022808399906004010558145598303254473696635857392452996805265407692253352818254971464315300131476178407985229727518203676714073662153305612743336957199478074723306034811951772398131278486167842156060290882474446745187847423474310739466804490616469497279052635299640800325007307632648949498402728855284711969469384505823759050609265102876439274947021784816120087890109554479665305932250425997377549021833013710442693716557674203388285284833600116282644732851623237686774444911105383146953271780739845195745703387635658891112438078069702133111266825816751089508151017936345597730786150428146591697931685445923860950089840424771166790716812560807297239809096564773810373084862983225835758995138619055887693894915302241628391377204749501088320214597211258235837661776198878096936706588336227832778455046822813677818021016678855446011431131231619630727433118350535717473339464871617841237460054915783757001416126363054941402132299005700263125402512371405534509917461416084658960046867029983553950072784660839788858927415820750090796933363341555071103015497316985205570502797443045299586801425425697042559703986729574233338929842882974797424400223783548296484080696046781287244192037482508165160550067126423246112970891102852870484458372504016267022637111319591309005674396052835562956242452588644194045527834582851138164963773006059682377445358916000547856001512534883137408661928659876325179420595987318288992666121378149910888578012672267852778800561315509358783732282649586968681284739436974554028327154873042780215745561208473808796597446160299130818504750438552690265767325636258293722621747403907555969137445816413073233018913117033674153253071590142371048441994156458437099071762584847495231881059133357757014987739312774464968490782443430118167342908908063931289592182209454081244665880052331066993070760190124051646825063424825307832254793318361018150647890830717308842488419328461671734197868681558974259822938772252130683018784026261286978937024167135656422740979847230026678253906998799035501696686827433293579189792743061653251380027442964654078520826950530438610050424912178218485170204036239816327034976624461052554531549204734214155529474976076229268902734975303765279124828696932703599636032262687249086301334275879898788163991257771232359349032408566891904145729080468110922935313608866587798821333825057079879278649635630154615188441366929491384602147142321592629695920569875599534211319089056038237629644171252803717444087114938543318004199247046358536478750047587073335806786453930843757466247163965994886853669162545325399258712471925827811656625660328221655065345312713720888542470642908885905931584317870893987315455846346547800730857440573244253164865405498408483723433038482787973395067172972568167799041696571098757016952735391928853583208918979824045810566343186978091002326148263114473532208530573265753022705962507741044429249242570078378414445593262962394038593068836640924310399500584122542832313840731543006692330586084005149366659238445142411038632092472790099777283895949047399606296422785343073441480761682409577588974553282577799821874401478271745958199980343934266768987972437037721421929520864235710493502538291907016340102852426084059023440682125898361153330673106216538151734543823153467280275534044666367463770186911880577731381040222747844271254233599275890731706939942443905191213926321084590159743824719652636890226419665329905655475777416475847111307013529822249415309852961775862254198205476380764856258534239993258844572402265017364596146845420061984386655683232497428460029032029496952016186426472698177325336123092889934713785282559758769915466397731246236105398507238258814926880281216613270593531335987939078939248870691264535682112487140274410424779736100720304270351282535892869456871461960290892265979191413121191747814284968052267731078393350630661577377936847584600415233151853311742032984395062088978650594914394673050520694082847439135999310703539902642152593866343254273522794578602852922555437381521336769671529156185549094706399637185230708861663960396596973891722304982136361624949929152574447437971573593858010092637491706498641136068900977811774718028610238586007340229065710665483753664567167507619062806883845920829146874868610427381222350931434364008578659974129587876911705125513514535771503674076893968182331841740804641441328984197762031825083447482976429902096151983872153768323639606481683372774940142462211221714389385302696182301274434603043433247480312586760610744343818096394947265435350047574537359575338961041946469036263386473102653003317637987935155089993278514119084748362948548738193107512127266186550802135545173624743214745902724380846016627224383242406272048800740895206047745348950233341599489694665087176987234569825059958050218742055827298044947036359007942913708729807833946136014032317618529030050136942595793969188402676329537221045054356040798729019012121947462355758168309690493164343030172449246492156194588407721955197564177270632767091652461175609527662364268799534374116974353248981803547258843034341432269980864464648677138512875567432132639478978575353404727503387076830834347937691785506505378330286553285545217904523224536224559996935586355589405368376338304137413707529700810182763352543716372323357354140182451331249155755699875216705087885279290396857137096426662328498772658774425463872790538591251637285603577692136022169269362431113385785554448098448338690770738901447073264407676920571704832618192121832767567688944564191469101930243005277393201869880391523696033276114300203140026727388660184754794714330512487007646681706348876766862965435832222680114158335757159097831843721277724102561196706012080895958138454348899091689547206102060650440068367589406822769138801897821923339633594654104007244685174922982618696348031641548787604276694296499896392059664755085608341802551795480555040913468256440650288051970182036064369097049744284355137400327782568029923253727436951319366156274021130165963304474592412253301102581988819925748394019515141156992341534709818801130149869191983979688159987521676232391192423107409424017485003215389802532306587834464832426446912280080138348675323251943888338697161272021382270224552796319310632218211768802143761028973217196383915204561966838975318113395031842757310015103790441172395727564344823478686720915727396967905004734429306433007216293686196268523036731877688694343121304550719762920766573268946537740166272988363703499947937157878484209329215284774022549692589429272847829738546178813215844939121537203096351926236349838551264771511259354301780090975975653470444445975463996990085939799894158640099916933410113112614918591842919276813894238111956683409477568429935194660380480840781975013712037593575125654436715020091866403477010332948893180003928066346784748416165864418702437589692415823238815609439467755430969381542833867752875076375257285669708567201081516543054304687970338970850303282376121912762963885071191094741280743851536378275881179041231279475610033419104666264806738154546058146997446224815903423586072119079555720323857904604528579329950484717478230596881904290387244304154227202958231645031018801034069163638575015355347170995315111637617358174143775158658532491987437629831033816937443531359125071277631480445122351027840694268160710636872021338915882697812727441369578873138922981043066568722294298046350246822050223853103526215010372677348428404463178209441335615438791502397477526191019756095507542807795811561115351270935559599291963477098392983973915593202656921085550266263290227991156233365448157164340978073381257624456252038257652662859822508773825537546527380535741718121969820928855705781103602417401639447239427880369652686489966384093866399442587458408207446143701098596551372682806923470292088864576610736131243533704091292560609992910844408628182428434750390653305745247305518662501473204787061338041866197271260713734886289874567402767942857680508005454754714419702412433868238698564311832707935435754611442213665819477390031882019594786598324234588973332948561898876161091457175699512641673980149448822534247856302658288866566997117484954394330511369740559278402956908194575156755294387821588877642073933201620617813350219979088637734770918477061449716470827579794339307555058106312752332597557874204023651728062272744001317146884013207856128540900854100488609272380788631140298894139185265273886244986486438147353962402878234566271870596515107652018415780980221436449760139575246878888718589619338217509734752208151851774291476229498009933772718655982774380263734499061625684581628594002069154285141863257485745768738952314311537984451941109214141930593957560764037494158373234922377231989966716452678640757923077206319294698241306251477339436981651410655363470968237617890538061056260147404163778109705847224323013402228967490568856228683394856238995272713708170316813770639740376926114203725784366417204872475029188247393122073932474407124400670684117615089056957904913217567328623043737218544924351596536182370559022280777313073628080671663492562786758898689203255816799867237617659892958714127980679450928166430105703555458527859665334494374163311948288011289500313546178630832820319867046731850800143465788744932905956823357764705830809638625469030290753738071236318662103142144242703770962292170916520768667704208362300654442299348365317519501988960121440445013792440590611722487948619109834524486606406053184378580704962085890902546724234364479918102141070527687168609101437747198440721319170612150688241978638561999653483544937700708279474636251521472940224651131164062114362391245965084505556507446679285742828308335678004371245912043974230085794899233957821048654841074309279184112381117252858332066747677420293411481664436396425569245391068358890363204101604685537152045061337702104158550452362604812688088963408819989963966228862787603358405915998401978128612431800846904897594127073954497435042897376863416458131503787888204922590705497098285626812142579274800250557662893448712699297348157224311238833623499386136542141477334550592932869653830068328870050347901726862862833059719394038607037674428515581480555093913155572453186600661245671361628559188559498580412401050942459093272152886822841523904946157257048573626548760109701802214598316245444591146526483934105000988212068621331729710127949050473163297018755093713153239014205281523410029413897699453091711902940567132288298172050975787302010060353911182437148614848895758087752471323799082392951376973727792405870736251120027665821561589396467835246015159496402814348073934877523500269452127666632164024339396406767536204538063060066265176319094113903275276847041836907138197484530046564018561963706072833751782913502942332391653768168419348381360926083232259769792599055149716263275400251518152352061206497669799405928185803479947367881998990766285640019005685052492729176118585619331307300695625390876370469012994108846518253139201970372790969612439798543210874751195954412862203968123983050435439832246581823559281502570984021745478650381565317423528736986843336050742154846919825072084227841634677359255895232119979331660432267672975734174071672994812703822738527580449696305542030947081985159459493832305958246568227461263338831406742116542969184129696711217264211954906581900800979803181191374637951818810018416059116441779646757055207204844553520193066776125714442266240809188515943479174795638192588764030596133476975709382435503092240298541911443775040057957443586034313460551013646509185555161540338105381549358728046169594711698880314656237211305135516810405725213619025958032034716983055567305970583000059254991446045852452821071745468544336507052716000604879792808554156462541838448026898434998288767246729425848424889325596390468756823360417640357269904193004999484449353907465733205797317270954638801198491569763006348806285436749499235598683378687685057865041006417443688114147380338414842541297092901573966489196401372634089465818194500304805863416875519126631476942980065456785542188732716612231855828610235173045383193762861874727745711165051382839343569589682531852529807899670263109098490531367379250653086445920407139421523557418626083138013911317958941809182626380365808408738280163366445465556003314090133812717725033750126780799572825723574087335007091117546794005080399580995681703052465288865622995081745725882269421578362782543071760333355636542982669239779615627092418548009490752591518973036779930193526022239279008453083902332706046738648415272295207700582738141331733780245587542889713777323750158487083027426544306986836083273965092552211626134058376066645091796004121063094146877370834531860099666965382385705586957385585653904977964231434215760172291564598054118740674330228887697706570919094235617151645522106794472343659196828667256689060473757574402301107213614911306525505257990020990164280933685511558554162392626196102291873864916968794668213919970864324906986662564393707355420743661491183100478355549136845233174378219698729123540003986997002398779826716478336213942120606814700079268806987187760715991147960675971371136197463606258043648946247800469308492325501332098556227686399853110493955373215715574264193702234896253287286920592642540268696739873899633611621237110297423041369246131113959146701109632263408745719214133615587602645655803858696484179317045359142790319537224940628118308367145915612493557823792730642219230980894034267294171610243307100820416450506850077584355046787767191605221494954913330742683712161630197873817343346645215925759459662402041636956646998324182665559468005891237706131258633157277820736359060067090061704952184956576205754821165989673402855880916923335919634862138416828199356986535794007655797723855647998742931322053805808421932948145821234067251844291815221785323689182596421857863587252125944791378878148783004066624622707272934269246203079668919839733675895229630840745452645481916327718084103907503751081417086059735630492843344933939236698265355370401892757043778905423521658150523719349906505621462198992241789256183764687827732635571161793159180467642846985994066346191436630220247059471175108909338865752747739380281984471156182132149818653017687655528213591837275927966798556429959514836079899727989275496738746156852587764886557226420529723372010102061159151270828546351378800082961877143403615586282254086271268459007175005350682938016894266624141536620896614242733599240650590331798237138804023444480151255058202596487024894128459258369445112113222914599672802606479099254794805172542708306960003591325287405229358826347879084628895078954810598675726645520636655780583087464773773840383816318867404877367468719666413763278106305334943035249685535671984547574726022391554728195128553158141798318975323085045981687431990285241676999851044182358905051456261325867690552294423490293280530316655752218032234631697398387568387866734073904585386813216357420647372722147798415602303834624531401633208375449762236539084062662565001395199752911221756713226842972679609407437727064669820254846185853745839551035756913424820141574485368305891863018056654342950336531606519533989925083758709630545263502354969577840894353526276168810471334332190112322666428377081786774408504252540588748031453706242504296162116791375900908575225751821942929725368683189176331032637976626488944301923548125520581331039550797679542313887285526970621015624089667744153829834077921077476075459622692757858217323825825817178640993133443043552149753033335158820869026967342268522277399280831280352484871746134982540131307458612955049668311034959699068699867934578850575700921168409771449679697547111923935751770722750825765371886693662567082764246786302143219892446489549796085881681516575597142498461849438192535127183330746439575361511084389024951298919236213541314278836093107242290234939258032531169373464671511740191245501563178803125390930077241397177683488528447524306207017825546555048702957182847017995264352840898437879427496578337173045464571111098215194047033706336572575743147074615536583109196322445660579941992475471059789890442521491914904424217945414632657751993350897306010620424035649170303037514642355537446014011577189882785764477071319970469309065372578238611328426578099671073959293398326244823843343227472797941821633228866875715228574457272662065161016909042107883984781788994249697361689287075157914154073355122401287004296492041706415256227523443281354311389604097391081974410456136666997215921365526955775856238793948400993970387000246582356517757606829670680277101441574432058654031138596790921598691161872534479031472051919999863104052342754949377303158939902729042998448746495535281765269476900109187602529676006307563564884776599654722605494592666411653598433495366707043878562623679780743625611802934433861894678366310245244831286887972396472076528935257565332624006310090378900641208870038302889851646965287642758379631040519287172302280090741815206281340149902437535193523346312287972319618324111433922332577012339629236666906344897811977010799114305378431856934946890534776932743798068364000940682138091842162886429676072076856032999250351688996136391033244582047922192592659179374528370848184114429409245170614649373728553163483240698743083526818701731559537399148196424957728528413135332785144525317274421925979560999902408288294495609755223581434821974264819536384422019552789193224397648895981119630721923537083394622804432659757411239323516378328168394949591583790996845567325415214613819010267858989768911080726694498431198837578273207144884867089188097286329937559087690147118040995479519099307421913586191884148773390681484008581648210606565115346845702396537719226783028736339362463892553476830107647992455283089855154770478847968103249296855929587348768429222466939729904629650637028833592391329124363605645087813558193766252641338191816393238700799594554260473357883899816780965007727549457331017226630274222292927519950247232598496981068938886064719479432913540377006735732889204161816811376337317640624892019184391847880271724417572921929122824483013278451595216661871054893381876129412251180230051313898798997535670419817704499574466760762171821632944554613259115035360202821294327999682555543246566086579368666992308050626700294054841444154639301356644061073586559459452008180044726435296583981442408738065585445643480048583444970024102400300706326433110584055372385306047209711558180194508957777192217442055082151247078281318744927045217293951249963136178994702659726862969302970845784448062320691242426733415593241117438869872606969511816435950899226335621903616337974750240714641982257739118205460996708507212980534805081104618475696530208683059744945128694207139739776410258859941798530637385218900026026179409011292228354241428914356167630865918500116581928259386317474956228008784616525378465353590123257255227493873981065238688622439363073805441587186920089389103836179546574567141836940191848642595219506227952100462466280013749196449506352942848444675382583191814444296522136479917625287491763970765779083441430287004636901010112808982825832406375435982791868631436986286141130377877100113961692884312333789691908336956663419322768413850085058534521757662531282488203158078085991290952587390451212097790983743119835733457192681192787073762915465811969677668889278337771314971268896019971079111861167573542216431827505208322225079062791553142520537533444890318817028636587955474014852961599220191064343884908269164637309544996669277202280662480067762420401825623805557755183026358829300303036586281577095124603397214257673833225740325213842165094325943417703933959363987163681380717498093488585874294072864110762798138865072555922450355849412584087241800070406847653245574700064310215909609133237590086398906994245513401254950743160808744537607942495862677102506563263328156205885653087332322552722206575213180615457915107112629015802129001701230453443485924152394012774578737274121073517014059430314895198783782067240999639804221283569732893377720285749110727090164960349284818164124951085105961468078169893095930381213272633153777853030867926776795741369829887783913335119406484457087691997110100032930051531361970205411989704554342734930870472600012505105800509670825967166923237593567074656612861781336400665717174934868177311831998885814989732548310737331551621578911202871603763601164020648409454514988420361685738587209127642398105516760980916043094915363229029124068388773969535282341523228987065864845254939200495700053026071130905293081034695226601403866585003270363750494060336473886186089847183289535690686064904540199904040866593017562355375883537010667911083970521036565384729211493501215063152558693863683238554028091313134812622414021499044762517648227001868243029386235103204612917194824170733705649426736837423418036728148217036474659652021049851383402793595171427935931543110153410631162053222301552180922754490946346822199643031959772908595097017117804194568356867120387277609729717175252954240052645871807330407863765894471625958768110865237232730986197634919831946524927539352097472709346567637251700576389962067085066849113248427887356454527743172636174053232452155482249435565894792783451202485280060089748901998411489068216851193440594241717093477571570798355844222614145925657445616909989329086804708358242186376929662794088039776676737138743270894657638748714585841788105683971396058202151054674087770225936330358150028281560211241173178115985086780658499432773733043328206284022132088544050780802275271572518586117776040765198443320164058709717111983266261816856565322919805328436286211080794595673396440722506986415392604161831457632711444552571764562061726534752024482447488092151033935289489921598709066716075971649321552076911997743710717285680516091732966355640689248470737507133520612468476709321188099905267449433884092899145880573290257530344139655985097503857884483773585353380232392644442820947529054381375571215126131252344923713226094487809732976278362441569424773933399901803425384286040768493599769767253960826992164136342599077366714034589014391695043963023501936851993444699583656510762032953354093091710685957197247600701503295157105454068988602713595412078174760259746171473317832526496978868811931896460087603506581512222614451354694809431392886398898647495014249319953322058771008148841319116966552296563479100616482378678689954994168966600477554222969348068820431189899309825124489542141628471203319954370931896647473469409667643267668860513269807991421705816388047632472932161900313196635133296008085206336302158291893302956266198909838731746231747688809845800011737648550667518987903125095980232986666456481921109592875576661916297921685371821837051963933035805176482066688082920122192850866312506719249723853818942529914458420842256964514981968800242163109781056885802085418213789161893637342437292079647391245521646085512353753619862350434382115314404917885735586344076575652522057342338062962537805421634368235371295256418886472049770256546671610743924428528867460097637222886222083708171451912749558586230796723499084314938071569792600460547006595853133866811862732414895407963806361787855169460716085714700752813843085136576576698429826647032628906660544345613201467122604991655154467631025589784114558510575091150738902015522248634930336509473715769506916978354969731002496657316408349658601967075130181325334765376141125754277286328620642597567877269157964146895939374965038342358691022458541873360316537213803450058529719426633725757326496436023432710239764225971018177481087478267296799178039634822759022718526258945822737148765106318088647324111246793653679021923666199957941204164148096414481345039067330276221644455773912939535346719124907259000688953583892158554912912037137947798148994646818064138400055636715682651840634611731394892382246708232206934478791944815010979932136605008827430185010048310103706323253049761339975379722806034434411632479011708129398175630876065090477981231159874682485442406662295979470953615795412327691626269025835730875410038749444960236189802282737475523782382408040658621015532038267930392992214303397127538162176195026765920205979092380054416711349703280954759993547611867523520296591752521314400216068392675991340518407401262543288841430114269147532565349668317588499483690189129629660754244089731768520049175579803692842629278633727368455326699667332921487609801143255951038034697756448174648428671824624603965513597135147600816915907259917559654540295514156500518499813915304355878832516520183836549916857082024215446326554355850987573610109873106382113578479342834086486101621671655286699570271059565491748818150524380758580196992077895057042498931500053924970486077465027285260721233564890703781503780095980943065239457017392172926766112527443982776795514215907221500015168566899840912206699661440752148888947571176836037581444951216615206292174118216182662210008107848852484643685197844205266691762806036829861008568685308814044643529529140561068142216167073952018366348067354790485003833113259611695898036464398565719022912367798113104063709050957263807651592071440529122109440629997034314761367740856489870296032970437106450759462450236727696020174841007523285263922951248472618886377718417003095520493364467661128957721162891838340802994014118231839369316513300017302279518500058433600572616544762339766982956619810934161653686475755066251113534146438282314307023384409835195520378723438046911051078754874615651654858112540491753718788835395624458588231134177427636739850703060802359079496852805848218947183354113951086315656947603742784708322854268045782701855695390210129010463490638222744638904101479391327762189784310006999398383382693966302889170240016113266303804132155393233135655710554135295642546520776536988194217945895262705195288925148521255144927885504548505446966593633041158075019524582806923887174851132912201114553659429133341211052510228349621168467236804603169864675208673492845581558751084795885616470061655784391887551983183969947041556593633758838465493713883978976397875175421980694354117767009054152627638250489253882153624313627646967315464340704100111083087657795584489186190028902723291713664490971522112502955568891209518624185594681754659291079135353091711024826230963136021470383090916595405593537893436259245852388213982686719155311566575395373534193819141144972746654199233661778377134208316175676316060788668988105547538062164630714520193442215946806078040010320832829005459465790750288139062173222532837994451804771576240982315126668407056778032940437688192722231523709027619407714977149193894012102484273657885866717773357527726823524836778481735514451159797622645039355343735123600283083614010626940950653293511174176411862012537779570376384401170260787968037315460770854382134848266821482871453000988921837288241504059557383194222632796461955496746933779021023899013715383768474016591688252222912089281762019089680485963851269027681582847043423121745452610953935236595954467447329738074031847646239348399933484248189477147769365404243427765937500098147049374337887062255898664812317752242931738777345688574909087206238988591245625881373340483867802367261778165602420642797124194259423102088736456740360754911959320515472254488272631159101366715965024669372597632275027388364159079538724922507010102806824409660563508780947952389597872391734237133806989759896894269580627998850489984908059217988853352041301603705434499447790022245153306156399860075771835999974953722707182253040667386885953626525488889574617823254785561810573265055151752779384268447744045704940519060174372994853258880207776829035759094504424610948300213529225630829239680619863064793014393022280141196497525268826581259606194556259427584876547994949720087066412164921782321623221071684636458614514333599237973631521054140534952401938908972628659676553338966821952267789323873264913818583016282592469631842058499822839202645287242697983484840952549823409719052606819800213206593779067589009101362692117827969423838749228712078926202554236007426294371934477232191036553804264574878165895853628373161645244262889856003039631512848329134091205934879146736188928985325564205236013751965334954750767602642266421976121689401073487773875648944638980395866040102744198845933178964425935016580492888477238386344499071616587843266404659542315221771417594763730843093043464977520586984343498954247268773226317655558378502074707261526908981840135448952692266111867739092730829278508288408970657001022535157666794197700057285875094011340650132132040783207690822996033410262781687716296895783323269134439581254318332086655215325244757772251159047196258715683235849925883051771130844671879689602351714937743595061948337854144853634842807061683416489950806234531370891740669809599984275920694203327675920534794689655270504928695061186422532036488255342880254162473368279009802944551167891719534533300139555331351166173398711289258523961459996228976662405857123935157026607323398609846485851807749720481279264390587291571173137374068143699179386098072664256915591559051079830251904259772344197907062803288592788284134291959561134475445790943121349665567688550833655221540270244343892330704432130549338820570479237671540271314604653075336905938933391003639469066281605812801221967507538425712035528013841193928589931479190103088413080375848964523288958605602555216327720882490425395085505816942124104049046916752864911627327345219523923167831213576650237292108078776698168511408191148890478818254045013604192298209044216673029632180894218871077621452161850731403050245542416877012271312663463970698929185534403915923049448093174186975657718253881243025725432361815189781335764641331846584380720771040862508923767839071134630348664007585667839424435063724614365539905938544523951933081552470852875461016895665585913235939809550160982444901362523676853951847016179685149599336665378437467337950187044558893679992677391913236935907476336424070234976917725758430268928889520996619219629743744569356563938572608120255742508416088023001488269049467055280180585326575186346116667833237489008025677703538845194470900825992011621366445916180478732537113646572472906399333076304893806044248921240457171230131373839646104982718115399287021590398035317971609808982855586714575547826058324842017205176150312904481801144383950903513516129684435560911723345962128547303786314102525681086038280444738878242962618022156128575773737086131329222648607779438856475478289253048372515433052961027597853637360680840988475467844194499543026084414624142139216392366552561841661373139216542015634442488137169439520097891682524656959256812548043820556358822907048988205124847369822756242726324293568627791005836278747790650841103420978595739262022081407325412214484479269274681603635644394667060709755644428475035421357084006318336465773455825022817737969389856117807578957004296504074302426770315489196051544970306686470946738322373655499393333005978023818737219510549505127668634935917562744279680411615302107165854198058342373444385378262816170143559870995896619435635630009805143486857901689845705049230248288526272370704473878020330787900766395355865015026878890141435761892167917397442828903491933852791763628079983399656730535624723185071126522794115166775157625961414657699610817614613125928957805122759006971862291354847669300266368576228753774909003838107130963563806215141341662405089964120274238078099153263504248530582183816081904737824862678459346891909453236059482960530422063772731214838793379818725489100908077815234441529264679291572428811906217380272270757581979811424913975031588752318272017583986761415694045133821591438967711619409680116390950828698520488022859437974992648619878629953277093601022443558859293795074084929152250526514520525875285259972907843104368853094164452792032350043326811819140187282880560373507021341444430381582128540557236801504444637457523345339745508635282736892080805408480411753716995248325504665258269570286617108144576600420008937866936759834544153109355930444104107346486121639837969403256951045313013934402795731623343071773160009142982046632504701172575544119778151281746090802601734303795258594712955094506334361634033627100464642984487877957123745403553970630167596202684779833407480716943921761320164686159324409868428487271656643453017978237138221314500705858586899990458767513132644454709047633617047848071240184292789212998996830595261421220756229146326704457416035987860590150109089526256342927844290818472624521425370176957360724550317471349149717261856379505235769489100170549394498481225879147311925118450563023561250048151277645440604237254124170497384259044485426851090774196793908339308635872040199051361310034425928246303424569356574700804383366613184342820349203001341999450337789014716050717219111164709792647246539831977948320822010583308576170968334206462100714913268829991074383198971193055894471976907145285422845273804438830596027291380069171554315414548293922137763968857436901268122557345227222124067701767813293245647313849308036310103590294376812347736616505406751282422523991727517898275327426291015441248258049361595342318725354318695774686913733170742789606075978776057836546233911720341337377470811952978964585594404906324919837034333569787975946379660028483882590902675068911219614325463270234266244994891499781140299170888653040274708040465123846247650003108861912899980490521174848569464872381312876115520430146320944313236609497706758064460652353697979766482009113800998035600403906202434383664586785828322553753467705332021658556279157965620197383572146016058040638009316713466398619059979062377245932696620470210339078752820749887266214150420216187568265791331573712266673416245096203803167464644162465946310925613293954269463655336001753832653159550743137062603020380806382379621486072384604991609286515383483662021982973075806176243881924816876381202698635192306950423763859829065587153157421480449810248139134147664430094358744163532069922265404854200606323228886007140374176561609701830710420735223667088722827402963241216120541492358673829947763365925871008867984563282356856108353456978289530594700089282833074229475378162674018614383031964876001952215920373259803694822676806845992331416536688158472023980698066545477908788417027025850466699119425153440984288889887650136618405865102355811388372707333477953151767558919397052545146015212503836223391544402247484071332707813151405781647019054872480442185390497213702583470876335281773324529283700011685951305801336245439113856014279467371321739596417261370161066422250834384229821060243866241445132549949497311495947736071073663729701675477846666337876692240440172340532996677918711652300662886776994444196981053529737506070557538430458690519127986609804508792940985660227626783002428370012388037196188886701712744984684455503910970460402215688974209687622957093644338808561132212278745566738049344207713772317751276563070603500601121277580041344826750125380888336688116385754662497314143371859518818500709264383262407750563995529194717263019612096445059491629430168467478340257570194938459788963516917650914972699153228152347135516976407853415292388916676786724583630600540521881131243103364275838838014546786642168864746825646090819172582524255602086054911107667190262959473986260454063642060057579963937307604687084844159737307294601934716520637792639260692261274210438882165335989743463787841786435617536416383379975395266247087891432023716198848646310500357182075486644810003916560676243960719315873346589976903764702061687330068230824695777863238205354492540482590622288785806443729866265470921624189377400750616827945295665950842569302407751598770152593462033520408076468884467662448777431862861307129992404442972861230437821583345492107218975031045032122828059801037998803214419408187787240562042766048006894279124658501526412168020684430954635970452491152676579506813831883527641026741225282853778330805217641580361035340269736980527965654232773668509460691573847021516340827418725365128253579582041680995116041571899210264441999783782756740632140897183823884864746826642346867831290842787972892302229869333944740181316697257371736755063567276015199513101980322487254547423981035316053017611003289633256046992367914950594833590036904786850528348400942147256490468584449876293103837131266118400257800186969520216758326132457941247880992876531208361329491014608825784998152668983997862762933761060756114592996712705450235565880619574826249987902763424820194315527950057514159368798410560522319929539605052847658093240390513663341744605709936174367934493904091559461723914063658348466384976269126200042435508257382596346279649443417957297774662541091792750274070887575739424352180393485526190695329918437607027566093335163964896171907170325405181740863848304518157923673618275681947948546211184453498140842233324237518845318835406907302397826822890104446097807826858894471153237206826466496005490781814684340218010520663669207838476393571423946675438831011812940741710545849754043264197303405284902475086601221796776114303281425866481716726014584842827158111022101459970084969840349276105355176943471683409035681423226875646966659169564116534045055056424107204188796274057665981572652233766589253329651291470809304195195227781877892822393311111757379993174877678735645267940109705178413683638257912841271868139558714633627896626012831357207784838023379323701515551481873270897357349672442022891439427692333206546709266474714106979119618732519875759238532774144577051581404825587915153972756907379688008832422213774416225300834717562471600377231405374662526762169151986062572471517659988139241022522339471411700112179621612823282030910907861810682457282668910408365521819021660956781991033594507468921438439680624604648052303181639817651435839463750165784845587334863483775890396906865424103357955628024054084451560206006856235706687659360271610551538111608362321768250641685770906428788461166479622345833467240080426810684092580883106486420530908797763188803642563318205641126398361376507978281886963095811880270033848739301665221892222702202564863219281919302832130831625991186245913726074634750857927435669833510501403542979026148812189464305709315065007581673544986412396103593933214414879533758249040273518654830765304267509716909296394563149755794529077977630118123270055059336126698680611601022522080535166328657782104914158595346555850312621279949715962299329674951350250960310347045715365172944807904264448300941491682114347506222914913335358068248177821746500683342939099902701740125191826526819427009116715701274939676128780245937180019989168277331353263469006845591569023129678034347601444918710615981592989823015917881000773754227277141142706275747463119655293317328792706397540979654304818884810118901709464872511988139816156532489863764584182109447844478452582841258528069872118153082666877330911839927517463171672844020866484315788991526123401313213257354507138794700863824319878662568653486134605988476484284631868594113927156528635738935263304780531308985059549427744648854436715772388961598541734730181571213479454540941235049512341521308966936809316770542360653630404089461935638815667785637071524574454714475291616142452770642436624173002405955072762267947400039030836663791358123142259099091505709286433136089153265524196698668137535157726072197982279533697063424017994286345808658772098667667324766628998493796162965888783678139572016003215546460829232584715281610031708217502414464940829333748425113405034599480534062513468291718368445802364728894542543517636355228364814899665201380062939131670822805144344031031751442428154057598687864619057647650622599295276667110398311024208798494809354307151797093366588167592647502904611655818755258081162222335734953263786097248293214736037443153247804848164516636523615613641004580861085934035388360830624181495442841344263430710775217814842648959584970512141432199382157970384636891967232725484289609488121117980492062327021085904281342891634671017667936066923399183892387511028432175655223948773794414247772950223860237992649281488493212122504069555889645327778624206973789938307945502420378256446606949289248985615436142554094172091066089104240845012373507314150586943308883461833675511192853671451476912218668074751769883616647145500102374273574288157498861466462428813926500669287033704909060567164355994685384368902120509989261282872283045251326301702001134237471966881863982752309268783004840389041236485769298492051580782919346768935725654261166257878214762399842491571368915819519598604938313280884226336977007083924443679413511225172773721492946327470403700614305719382080462768292473488808823500353008684798715149668420081738215042475207222996975638237667934680624486595804360249230415155596957647394299686372418676505388195345019417521524932613615931449786333756241730375940163195622844209705269584272519976149047476342088748670809077825913374815473691625409487315780792738195675777669293337676391630671904271670139631254050191679520563537826762451583503915004423203746414030083393224338696603165179935474816263850054574787468481944505840242422506835710027708616600611939025505108086527533761390648086856305984234485240668838460890828801643381446509009393193526450940330950775221289508113049443197710565904976539282179668921563038994972446108072965286158437762791555195048093269305397574970880030158596435971178470839584059496208239794325188779145643504894078554485667226890036194900140718726983485422456425505441902350493601779355754207623162317842315137021056398594988327412833137683152126073688295600921016183937927101186332352994505298106218178591631466004627854754455600195983730277741428173474474761205264313691439902989645238786473481869633288139384667501490724241877134638818017154890336406743360867064831835454898460300173253477076616931351027694728248194568860831169997840511202113643530857224221716298329537660030295290953151836827174237752348683946190061556061660470135035464441315911109306051209584565165395038128618855380412056801832722617968125247308232167748250750920598428478592065684095893892041710417106807685132261269361751994319999434416119722534805698006991941535933293860686876182889920875756118841682162082233760611067978555012803322997785425745043635186587091126223703179108635942048293951634572956221734141014595509922241714114748091429782339729457719411456742001839807173747365738947020121031832689006911178473977362399243783627546001880114912494137069966729784556619019646124860960644130100021669993167837044613772768275542320151231242586325416667555704175612657397956703156144320993253688377453071713881398441268822764152179947553196759602557549415330075013742005579516907390509814272726444455375499462949244748189897764988441136604832227323968316856055327740706913661565804473529690794399059939574490314173617982439389478039879728762041818271950914047248021709977343218184642436540004170909650731353504600517488015052790796088979865223265654042033585875958794240037064636316729012192478921433844998200289891805963672457446122779095435256155861643823633000551056393274500454979229780203702710240607440100753446134366432186195824932867403764416619028805152368332132427616174041479039389054539517200395456944340028529446644789941605871948684468211357424970640900194192596548908317836791748499004642576340753646360675886629562420728633326235493305565274801063714227672349161764519643125326926045529033021327548398326206085187778837066416668749406873416662676389518634338013386853043695479776965262609006426430142233334478170739777093882887841187940729737639571511970317707059835372351234102940438664440517665679787065065447533365614303660819287437548087110583552867326979992978553595720205945105077361390418439340036195833324031181620897034058379430193211030563437395992291753133792323221623482791343948196043076287177032796461274518042657647985790720599556149285529459321272070657731692639298229596969209502927702716447059261315196784012217748546227629387834733688475589687818272854562113994572500477812099767043563032235517112977565432945967819813371374305194437821891160593698608112642178219762999258850302211966783002773227878963807089193721942801844841670285202154729361846180737619432511091920058111023462706474707851138300171661007438089600989584831953935928457016719672373648824249409572334707594708796208544515236302252382817229516646922506612034654468292188747197149865102202278166279939711267818620688686231178923891518929844838462426731120447268455261245699971829023478305963809674001508336579884320590786087280473142479311155680566183837020793384933750122385784492888830085127481796358591866783395203495105806894929137511986823957373022952995202260970931596161787068070030883355835592699627739615613228788644794742920425866034744994547665884932176760991713883422790826230046895000514654628324071955521655747270625451247323495394362914543020747014095019793648983342493194337469931350586575533455761456725586671727838698708003238321453165152098823602313444495721709661277021050619294443567241748815296403822754568439457703088239115534761318744268638027046733523108248824207472121653345353313225220994986288356032859081497650477556807219933466196642136746608284316642114797728203254840604929251168898886137690069622530645149094157299076882026632730907516545780209224127192046540941187199008598194762848598112056956225210485593534600568069340456166146927051407624057754458089706583732104802023949454672910731940542917856062312314690488592764768620788515323642925281565375877815138806632775505093754340630597621833931273007312318291886821800769324237173581868947734403272360160465270410180473716370084831374157063991298348813791733017238983887643416690221216991571811632419156243483452722831559276244241174856037928208671140341465761516809397798310047295423313014642755390182937807169703525696066235551166514280761309937403139635762656233779403347605617565238966943296733605065280990401681724962445343420202786489152351445224455029083173927614732885159618353070884547399266675219256557684863429362368477262910896276061250606610544836320566108740641103614656522162727632309063027436190408708906295749032377238649644597238478235041651214477289164159672781561817726163949995442039123505994015996297045631706064460432865373771313462532917551134508209060798719322643553281344053769992129492933818278625371928387501475566187292364658054878835201539264022798555589542434052749502017638879010241338763495671822471382389249604122871276399380794373790945708853249601838373848032275127687990277973214203066622645234478065031233189413619865926494964827637429797007997675204210954813840945297037327360248670703762064944089221312029578541593739087667395855268604379802961068801911968173605339772178832465123611956905098039486344254251416320228984440939127532880153345435448448043469002696100760005719922533696999378778575843336541668826170672955907934467683049563100630080303980263941109001564409917864308447440576427789925308686365772389669568160879951798882981907717953396320188471643306734302222571231925666642863861188997897482669280800787370038761714552314902134398103656634395349722359308694842933348114663881636723207248512966635353357014535214331197519290926423486093520291260493401804312491187183332044263731031181520630532546528670975642005074319836502528869018766971946824752464864751776473410736019306726035104051420697498966596687369186316775483176953499854728175623248151257109585980158703113042859265922767038204660870712545128480257604590637855848587130098097688824411794717742033590854535541495135964791286374752416042766354842324773423810082002090906159232367964292492208368898215160791482384354395491246232431867484179026090898833125461506757684433837787403963948217226790951581721158133595421427822111637805750470800837199386007593755514831160022077290086068113395059580626520862301727598162577822962552718856161070924620948282712532697372724678775766252776033259555010861595088174943472560992572701890297880013898013120333731497982197206966774481521614645740840016998292367204652339030955228996449021445344451498165846187494576618722519070817158496894142423036803409191685441895963807535960041119847135755762737971547225872840211864794890843591741385464292901206877757248500258965323649148010972851594203004895030933764002652217617297663963165108372036111665662795106700003356387401080719947924335248177199604587030454111854580317372496814188051597429004524387871002733714958449499753530854515310872208675548038414494981513726951496683741428887284250629647348212396779222733074001799752573689832421715054447117402965379195863033905942521523843984886250054303016350610849286248818446205639616436936420233712224652448283179087051185048686023878910878562705161380695578150279282661719476968711624441195161021694416927297161052773451166555027500296647734378257839982141272981301586295559473338007352173960359742147201129446893701574193652766320998446229087779506407608444469024357624794083855528621693965817715657592638393951494743181367099221123818894936606373041542545615208396081941173814559558243754131789653328463827000617379814311950595194758277210538921015799449213501075944277301364846857005741423484948701549489645726460397435183809250885312693837096536107667021920072305766585754867531264728677578087251721213640633943151078999495743267079315235430820137202285350749690724453481693457388328284770458116406132715141259091677000818936674748844935776451726936228539503346476631599062217278201302161776558380017369398724479456753283710639434626807519529955804249489378902997217141097353549789082618713267772513323839324749047547913288968094789833374956605344459709358058794330143221207453242655477932214615244082623835644254723578018480801284908458422177540111222157907603020565812520311056637458868282937381549968531432209215296514649360777307056852450033800551756473123127350209473568262125725072513180233779748955898784344784345209766036711566284164790948388156144420984976169256488802643033426671851796519674878734012258696219809194168499759446934598140861066830432585216769251003754000481469305658818013487216438627347582744633568704917625475708926459683175437093382039623768091408497675615412547085319722540489323131252930542355102583561775601071770645926653211519113471592804569641942888256179235221593243497935081484430063314248916342553359633324468558715646275764001382886413386515927291610281072512439061797019489550647341834400058785318992831503890756074756217821593150296599315947254137659238945716524442396175133045163114914249539277278326018404008410170757235708940040220018274468407904309901725125242605538523434396658810937259495066253380048544567544417175230416657655313870390475855235538133401696929163968880387672910391069379717207911078114154275257570380210193309116710321651620369780964355857757368517229051046905810874939131026564225353319497149181848385246789103216953203351328096804161938911125317579828768756266662946778458914590054397684383310672110050997913060499057143454619415600492667685599067215606263676886248750002759272196291405406323599507094693245635783679427278494337226100130144878606701829310344064487689454143864618637225882075940521405888159871721811663978210173589868505857136869025023495364465618445409105057952167036503018314623446627444672559676781176602884962148767238717882418904804927187924204299603994128468565263033149413140179191429299621772269084903160031806506290653831764581915114702970892516597828368274434150059687495314328198275410762200397739208545699871765626167157904165364838117274996507584538264768476764442812291078028577243231110433372989798045848001684223290978677173182747424701751476649660637912094424900477370003959880236202214128826100785656196925653335687632712536823653412020796506912505679964894361149799610260140159494554858567730614953005176924875468661592509312508871611132066408609428814058271979583292778223809078568863330090323047405117540618013715489108298850618286569544157769538090951526428510607276540564545535200542293916604644034672157750569802529245742289421830644482627461609411299993459866669068276412559867508715543107006115682654603535479528702373592462631518084151556548973398905654699189431806522992724505837260823053729953498614257499795177391515509239241372028281258996899212095192303859665964099502979676732600399691795516399702760557581131442058173720581595599765316114444852810515675775534246801743819053301687424636762512041841324641639919905251465001301653611744226866288908018735787838510684180051024708163633134595173749514794351508822060699210963863163646728084984437402888140728625161554496107443361834032624806169583686234573253317791038052522200467014411761265197237355172384554040684860574323532080733968725518214154398510997888236918405922948100673658945837442638918131839897356979635050102475122480814856101732519062785427716496903822991375960260986952264281830773197429486121801212297189146695363390799036030217549925463592546841631086399579048247079686216090191831011029002439218695754711009381183838021128520122701253449305826303415057889193239434128325494583216913149730369199927740644506184713486489634751912714713319822064985000083934501376283301427772761360798575718698945636300081587385351455067397879787113738840090614441197480829467204760600207834767163071789393362127284663758627071637111907958216646619027853464720872577436651920115968344900175104332273731037596314788741050381431281393167493736095228219836163348015929481484599813566003905089346007130988722291165115562855260935239274900981190475561774375409925529934878740123683785882325454496432022627289257666069261444081224464664703294062701480292581744173758277110023353165177120307545197234762147692610695578174170808078200821332470945226563319601232098658126783425844751345980582187844096736675864670045855310098389944455907054466855737922347945473721877391398433302601922251894419564702608863229608589805211553838787132013745704662754559883329270073953345444038400366761093536706506310351507006945185861758011484247460273522241606048223702497412826447587373298016343229791931688636214534036936191036443590783121734016600941555140924031345858526825612707395047072332392126159204173311582061051811956538003383614273034107240910134638249865980158678790245741616050205820871790873047061225468861849317269175998824148386437359055309692595162950590906177659496135671626181291710774186361127466854799694594086194731905755688592330720247936574187508731264573880341600700537843404578639728628537873368939776591582161567601647668310631430566382731801802335526840458272335312780404830109943686099024923279277084261666495918379656343142223718209115789650354788766475289167052931146846920657461390239767563388322000496847407588041508971247733285688571907499030420322885215467029925755394862205114987565608276487957103965796689306812235755207730648687956276456541914732199608594570501933320581509081933203717791283301535410755808976997917921432023603446787151207527406584916927704501196911127634551467046268701324725907634243470458485959998926630064611243773244869421834991987523933484941608982811752672824169408976690781942821684616595618432296375897543981617654241168468254328966785325113081806818171487548562701923424471266194552686099020810042855383385897811451024895277184247294108488268896880535275255631003559468183904101552009200922894994713040873915684523811772899976448047483320714601040326921799545636483256110893101030595865372247149385908438830348165227356951652462533138883940359172303713794416162677010375315155538848100206286705341281638634541810234082677458049946850702872777764581866831375655463434269854171585227366331654794999716402510246474173286449738795023349551568260343233511945467974158049873901919657421349157721421261778948554963163015615780468249133260687581691403105255046935695889218008471209762983652345364584167268110897076733479577006349208911855890967517337642022038859853788157410428125207842924777148687588942514396890355370281280675249753126040239740395900620109094586055834217284160807758798813576675613056591883887562117063466056690512329138858214225100841753061586268305109008671419567436452635911770227127362550928626064574905308526632638383648636550510141265354606549189308936639577576216520056800792257010813655898983038390078539157632505830963122359460341828886591363729296362225757686118012519737087961458455204685245447989195227282639376933801935296373729624757955832471033121822008143491478740250077847401899270582518117203915692887550323607933994712784882306813856076976582279756274235753558248990658267154092961459941360684530381072257223525440739505231094235463111274038377720240675386714508183037813010705213517596094157761429217460478398792807280124422193426506206166546367474331982790387899403199235491446263680149094318956114765325708715907270937987130525256117954809341265659338740601446242195126714182455792839876403133347967505313166783357967257037870530022077817765170758958548885091276875280185970278926624378364760102573679852422660739281860493400770411739051066142556643321338590974131085705853232222215181043189748413768068213202059633552715984791753072056571656734232027059628562564275610088171534677005593858874605362018687916648868543542544125053770140946641293114817685938074216232049239763919146817014470860090064324803634878569387712417595503042016135612845957717109572322713582264941596234506593446474202955429572982360243629032539867957389357050718477941950697395872119192992312472894587001675503766707611169388186006061099494988049572213359253576299831042871834367213248104485528191177311022540932376774283101888857917350801513417217916602939297076334360379263064155731312222749993276598935853096986301979999902492541508778199674553147700610772320206752359965119722412009873094314446968856907643355552125213553275633803688234352087542882083517831895881540118868793574496810559710738071696644398829182586980859657896052927647370134843040527019087028762098883944558030154780985049459331357831642305970744943029774094843336367385603216469914964707326285563295399539666618727591673680932958885058690841580995087477559177916533425094173421214273582269510008994842156214819343828670882349627113287177847222197744511744683641303955809456558920057022513727594059448830738965311561005482299662104820180543149640085265449801407384653810569752045256728792532390459099895270980218357248643511708856735549337838579515823536433268563615355453564103198053304139426545977602121533200019881685871681409064347042261660963118081346779759612997417540480461526349632867989422809946931339578204938423562059889941127751559685025541435953348881171576504708745449641149858421356388730587439616122356996633651717003282590900865388681257308544540341836507041050548161622943178002379552247658870912525697857605950065365007525605483276721687894472604142977181372435116943246100953549731307893935704918212686317104608702397379455488485309737720093370149236107513749252750505748588040896328011484345227757245926429495571820137129976790095431163063760313233256719965960079631239349553083137047410977108668472141671881223697217404431287297241684186359512639951759658507720232103724894351324121414666091417227100050080060367942209915546235654504351457692565889067351061527187619308097171710581620268115504361773652393082190870502448634831393601729936964328273077626225786300890120842355224918908431543095960709101855836300399344394549247160543868890524413485488613860513805181086252141774005237644053161238587533581371397929178304647646475200064204924566122895196345291513300578269347649096012290024932214115774436829540046726001770685918751197139465601871681623935471467317566353767477856232240806837043683874749804867810657201051532725610309932480233423491803229424149874007715291610730559715545442800847024248630617428994030543920435168302321215710256016037221113247288326337036514592846656477140196686883147788535003641597909664113107751942446264692335160867274634633853528403659566571468360333461182247601204450424057362548640550277205596220376095929795894099473799796678453024442882385207820310086929874532249641816637993621657832121415315945488014858353313480625713997009868607840467446246990110746025237071956898018425053603381398331442593234507461575369354793836834882133972522498153551375266511720589444759497106486192540264493556387623751241099800467839080227877841164617466236430599763076161677747989947008102216983048936807968372527167216224646396901669945971761212350664850143609696450331683916771405348531052635472868127363083534317694340020671672587145641666449744181632094490095710581523202799807849702049894405528189401266590784937136226005248664134116468804908792268711597776079642923181956419920538426252894065694595136315366919775082648832651658974219209389254025132782318399391073098839088092495035443072832594989615503998496763125608736732460688861216393728190195901076597554198606423961513841527921135272009175214106424854957170216887851068676166917127341644256623581843505016512834391898649440772732008630166211675082318345632610249422990307516870864463269302383258256254446557623049688788018238638656216779700984266542121680246305530998363637984828714096468310763785508155741116409586703752304025782036240310611902114477509783564533403208873716630076351787142688930279236109446196554866363370992180294945465855194059193223022043739098934501928527805294572032254033999814973307898744037096462416909058908955392695744022847091516411148180992762971752420738840183911691707179335595548853497019682683238521623777194225527299806132315331520262637686446220961459731729860893993403915393725187664359508009048659440021913446294128084819445909060945951873935281589832152080487625705116628598442371055280807078626566048613955331001185988932758982028511803415099758184729988363648197459285922572693981821902143637939793334885835623916369193070553476767968656383049078825741629619948627535975477247824960605764549502439790730093708412605951776126946793079423511105639762882982060415112648030450860968693059631800162127807566574287091942764164951313525138399023931683154860984071772652759334059975970397365159917486908524792889030599219686469204173692948648607651409679351208096717032655169186905401929061296526960306953638601427489670674680396527215094188186561042797586528711342645864816636056497229186328698026409705227058200035524663688526725561197351669017638380694180985397062516707038230749626929256417982802040219820855969798395277892434033695114834140728279326052755899258378212183659260663941728218028418561221656192201435449772333990111659159331737120575368314125900759262322985320016076616739136728330499768028963207501099534352220755497969356373198259679212906820857368771398560390413927755509167677219193643603226206650722295293160506291005382154641607477193549730301067649635574502981884329260615880780591386971113781803672770346994960986700921731910933237243796546173248733791252685347539830752976544381950378389862925436081455281694158115506231877774692192640698841000410460519785577058576581898531562850320427760580076778389816171059321975113726536886063160229356398932874852451807844928077190847559115277738695581048472863655230895448475128456021110396716418361749356302951003263579449909341736780379085031069809317679264417600316393461732982483018883026041486352364969700789440212720497915649504577125355109767288831099221545630756022795391476014877185819463143324881461137104860885511619210093483878977242874303231118213174411166204768867746794253583424135789783829649167399091990770843891430014155464567918034936186203423226035531240573356369646143101523431606177906047481453929962911149092101855415122670510467254883192611952897779822172082710196579262849794085739558976484034327683583548772738555542505951974093793017998768173279473117468900447207776539694092901387508126461483101095627987137164830016231710837289560265797315081809914042759628211153468688770371406983776505466821539764726932631184869838245915222220210187595690313540493264831604825946046514586718559009669969815524013856583314784151841704555126095428771810720895532281022486769034075304481670954427810081794484934078627408436258140181780524079279469426221091669210297598308823625676128856508929446255779186880662149190990203258093587456855487263087612804520491604013381670455149028016616710569028060907967187195724318869120388937031823528813739282247410263431703489413492273598119749563392588715249039727276893229418852256690558773048430490123238628318984216113663212406269208509319442769543943835643016028790884920654281258884606667656364610299237395498474638423852725835090289434676240121576842906836382312741749584303227217727289837429124551828456321139151694601708941027763276180058251378875695693764426682752651591484542910605737551768278421342226959792722829256265719629785020077793407460066897639457894118778187089142187696983518964020818491717655599322265322588314743644383525024433528435648010635469887517697598730432276737978183604549890721416628569105393786773482684346166361079310273032768111108208492225489448110466738199588372896004623306597273377281070639663733916868895759444655444100876285596527164328207395362473801984794474632965418294510669062687982801070937607217968294078106555832153431904721466154259753743337117353761181216892661235691569207208845172448129599971824358901843462652791271341247206609453930343015967672353925568650497126489794437325478995477219462172798488894660259114401544068910671691705311049128100450286666776853502628628713615844815538772732048996240024554889342032194695619119337740601543056690648739020212893462665536667520518138314993561797133036346953709471680321742390585882299165254729471117213451525851374260901313866352158282044912827462149847553959541647775577337968399344361729541126139846474506644200600119325144944349892085711867330604613173572321732375834990472027784006297966577971067736766602907178746719035449276527893097793602043659383809314579143175181811289583485897485741011210006310548970320685438290353632092617865310806171808677875400653291297218299471260068269935289277000430032704492799655239051815749763609584218769712945915428244084184906459887448372943033351880832451471719819698248793981076714293010213696393188934221402584433717538098931807037672080041048675067422493113714087128128052053581392786431499022835072272518665356577860415894656592221173461214362436365333610943657727793222898252069028389639722988733388158285291695679546230630323797937883453415163096794879689571054139564910903363601372914887389834797126344121140016169771424135538183837603405585969476124857539092777658863916283436763539517083278152067669755710947075717390881011489929021011111498415823635016646615012331308553510354523259374029590959402090819526319173150994486868942371534311175339367471377871065347370724215861755351118077356039471110011198871946601021533874055553835942784519041848005611393672776320130531219497876935700859304246367749707005286500944991075537874743109131507758833297573013214136506364124939416158472711290589051787301346976009397976960612700282229757329287820404114058511688204081282711690507193035205794288107225759188597359586294325308115122667328742647700412308377675001252849678498589179867083008548719145607522060587063451274286033906559930483223913466802949530643778199307334595821504954923910375271255200885099502505817206096429607305327140292626722094673718735835246644014399857685961121659993377964660138539944608731749468696992376358812495244544200084739538568599871164751033061278318293244294624731528423799138555405435811593076225737197886177304599807546873469251411603041656282537155851675114976843479055481096075826229036251969385867997190995961267016390649553562189477066789279832130120912240199667741613847197824050670032434206303148405106718399853551666925474663379215136837880545232259297443752041481837045531728168519676678196261631658306740436511605920872529072839163028621431171662940399435024232268637964827743448968469809724285224921311043451290078825331880229490532714920412689578218550253077828620905554837796965030219976507214836225526713976591983786864984495629536783101233033245480904314581983453169167110738100868493133039693841734089675797508285183777371135601096775391849520844335493343783956297552285046305272298687746650912541953273837502404770745812308670697579749505291405235282742477674235426800039674680010044369041803189491016048173648773602918869912919800996674452192460487443813551083203949258285001578839629929920633518163668862862066778405603430021234925736981696984963253610457130361564751757370339188083547379329784500091027342919094251542911176877799232267629310047547548836013968092392321017872331741232015538719540841766695479238312784642799745803006299126492956275113900119812623672688480769260481696351733420127486524984076662884016767374910602938670253305481562386171165575253771040441511224916256254822841566112469116185898825577801401570242536039842777255839008075872692651202005699260139844776777792222133965068160837729191930543608994358661739395654871492467308033283948745177503844809097808878299085770633202151349236685431019236283692093754128650637965639448830234528428380174718569124635047536711221376032996490010044118308821295591399028994667677073221440330982837730170891372365073221365190522071525925301342221772975085250245996329818425029360116879397954331337395666698616098490803848488679161052491088616333886084569374993146011913330647936157782320581993069451845195295998588616452141407713694600412273320297692753642226705075251699432081059620977363804905816020642025713418207300612643394460351160424501320454392717594688999687899646044419676322901018850651055319698652131738888578553515125653884789822741449681264067523657354046096011941044321230485641400634772643258884782392153001294054563029149949750481992462552991287193268982713698039633593686954748809763914456653907996853157782818206740395602050432526813202696948620737542474697731983991923341154203784670854615009132160422117437426112317661460809532450498769205535655430327285120755342299481836713954559994027038650173085898866896860427396092070324864850293173076553063846338831168126063167664298051233141378490212653252584226311088649611141560748339247305417899025200094414377444872943749281323278335007294811442366772981494826968716557406278758234205824781189365443877994609950210210290552713156669560011264476737880526613529473049415006836531505971900777085978946685496346064949554141520242846265648781816641283175702382265839041542668640882198730826053140347105456504158040299766127103643931414673668041307582735542605329217540385864598852000169291508389285437871644248829696375287932030015569705207346413872121572789217009174767507509676123792188901372825663616643895302423403582834756852223319006694541865868776235676098703527584353410238799246239178202778681132836352331856533570602358371770800539090890597586916258418808614853507607040688918057787657322910095956599516785206048115569063258841309052563573934348554883098026960670321747361659263333191500116460183482109466033706346798255297724863198284141279089453443678873080629508725620316121705396520114475824509277502098504019807799287911079445719353790437053414737510335994106102655378675757839499107274949298077020800213833751376770299558339198088219890598936711387660220201374162733598133452125764861845431537491441249428066269595214572926602457038869768741417050919622765374098769890583004797795389609089791923846457300174453149832006454482238127437500395048602933410763897610472154564863506861844132242991771403591417521240205173960274600185814902330472702332277239997254797438163971912863231553129583597823633777635611839753906188940394125407942090738814817308955047643521648179187703104502037460618438608211158981827006203883772403348357560957485402792916676250981352846179968619181839351791566175353162163197980829940316872532416801422922004079754712852749726972620928983583345128347135660486149324145303511733084338139939499856204768804812106655695156615648687765822259721105893596329086319053858279744438260424426456126593727910230904845550148365732687382049419576881753599624095711184803525429684523040349780744280386585746612239560523200388443911564757169099478642043558974997844140943641856071717706613723689024853922037727393559162578251268286479274615818672610351486394326368390340224567657982125465856559801285718515753165589463969301084951784889541700825388969069753880353986221542619701992289078266265213105229310891924615200217817962756405792175472800663105475738188145851845987470580732441586652649763374509797291971650556343589661541794786638818712774790985190109776539267372941073743359978421154813238637059329348398087698565595066580168662375527639725258210014788592901625430514481321972554333739037646135532557933614141861578836402210641249902010871562242776845146603706187619649274284749515561085525720118549192352324794183605505604410479937570275173796920533881179192716115584422228041112420732160579394864191245763916295480559122945135282854607948657457953559250093328523808929389936680818301456678468221450110877167564213675919510318947711906230956893234159575652280870136177293218658185217030348034019132784910496367008894421713683477628142765450072117624672020988988004461572797672437456382417443564702327876646219984301974110781101414801792475352010501722293021153214562275710336969211087402848049308979002110620349306920065073235193645813574437700477592243949111118337833145767675431602969512909718127922567817067913469490002893924472939592063929833128597862017242255372987109975425885062592811641841877032382787737239446139878651472071497039430992895305962720707441041603639577647362397619233919818676770830903085756047043555735534512892477685591145528341976881515224800902224530353369153884945800108010950450261267734364171368199956359189511375554034525564936180088947820280856985190235607549530835937374956258989177469417410439190847470318980014323521150639343589552168536666494391183617479039007967855345176682282800838079912933978269548530713868375293285095567277028736205403050054626964556420809746439993130836191137633158480364471287132573084409163415313867476404230822029221258940134548715973246281462362165236447812449749197588694835767157029890487722422705607723077966356610105247037571768914330159698865337868918913635037023864587020211033759124906794711423425598608279949811418062676553060491751510489181897210542566839529563675332517219210946410186635944217501762795991682101703961839540978889440648084757872718611186274448421541354453509279516603097403287994711361732334779699847815316718552085768497887572623495965706296585710998508761389324484596026731553391304210810148996578644367865028471417685248100813836966302667491415653018508017679423510714164861661614190141547062751272847757271447600717290913446015579777678187734162755510029626850572941445514209565136371531999448891303305795018179045204770848115313914884142511560101768678517985472544922553649804001945832766547872328799247072460002857000576568156900043588916357787599998013753019276679789032810739975925986200854541661250293738855139378474056775649504251547015802377977419557577743013233344455546197731439778943728992268548340790294452968309749302310612748783841761812319908533453230317023107487472430248522588434277593860620844928425897813016262432015302716625812501495566267819812675054599987136778999046999242882457149320143064841376589740622919571227824365974373409886008218670837549253586878881981673967715891529087074330975870258940444642679862314330757708928759851809272834067967672289997367563374290427382433222676206545335761592688794112986574618509853423198823130812609549272230954382407274358555567395429242926150369182954660935635370324952652872222830934982113010035032612507082013214025335949230539168297846155145837372660673662397611717636382287766863337085040067741442358342660372948060646964280623981501279331849637178647303206963247654046517964953190109888900913679722035870654667441498340984189055317419931568579206170984185284415746045553408952256091334615246165406444193033526694967923815394639722661304749440669843998580446662445082138171321667196619225285854779234159824820721995644217659640186306550341832228371793811892442982395425777756850481737842271333948552930247371771228719068534089479626287013056924917771741253930267923815449956703759896944937102574203470624798475300008407673576496535104707329710383029961233017574313002452000130058500626293112399578064780545943694683718109803845732112796420555599871654750285669762997041331400509742818867244582733666261813513671032946722805287431941560382070936057754861434928182423158139626298802531237439101422669847721433840486382519227566262123381617050963932676272187394736337872862867411062942885941994066658236334365100711092185384706249142707564631754408631081650164770080166349375007781619868079599166219071710088265229847828544761420431756503883743680206667958622215696724099167625630917682335759856472074107844224125210986620258839379867843979917340025507444424608403264017337605532685729669161511920866970007966963250389254884967088050953039430058218982817550673062488130782561820590280758100800526249162464767830870416836521269743511100440240767069747025795791247968273525337217707289391620812577874934190367670845878823082536229106060942007122960679358385725702801558426009269394909495248237614640389104669273401039319281404922784184910723577666477618614003011817548396510043016364319104200142855891468222742488404065017416511737321035589310692157627010191765174284732088938722269398478861225012681592233922592588843856847887006792596061860069650764759765043049449943855124094818726445341140203306370885377367044219050832190370112896820459843465629718719981881919372007342750744869818900198271595817570216132677775459887114714107526565326668321073317945849781502294541033047751562040291391088794868444112543999599265708673204683424290091522091569668784267054575723976869251501212708919934053241851658897408571773101490032012422807240500969060388708967428849913243499570930974457627053736242006890562845026817135187763532810738408005969240597367609044491928247158980866956622263194663167327299366088694404233177027111835728206634082812271041613508322428672376413408145196615107525331048689807909620623859711436400612487810223447192386857841662418111296715882155180572097959644762117659743137686671985261546898413179250422783479791920091136115017811307138733104698833142021359054602205936581991293020618854825929687027560431238352303920472149927834991698649245366282107720470079761508962327869285150346132442694050584033561872641828430216979397393605399273319989836529715337827477563585981621437469170605604964953098775953131090030968123196053170837808480285876472147682261374573078687266879436548184291685783263647089126007854932424229046663178558635853722042215607669146537302445056351693468020285009796914774342521830571223847951118533947613056374737434464932429985011129417632207777652009045109711058437803487222360340751798557770254366902483594839763532436248734647616035736588654025204892986796877613666443306911890702274363934994911298719957907093770213443368970852095976571653862442607373762868634336876614496894249411208075460908548036696637085765667342252775108014778912085975396380051016866793985395524231834776519576807598004952827241088433234477499352910666935086749780245371980156957563972132074304031373864217700228882679584377388571676288301876562089499996865931891949351718890520356273918290327491556349415868511370366788187226660318486997263708122250532114999370102370142230298029186979015865193875955599241514465455179239089339696274736833056782841407306383021831612864186715124522996655760001051925580960620500465510119249990913753592814440073647423539071097708151570001176483683099244805142196279941390465892105194843347459710901170581799315240364970695496352583629862626786643854891470288982701343387534011803729623812827126808594179066308702151757533309613616309046971627727679727720019745637113268713145860267527197187493397906711482978084636172957677965240108623915537471184277225159428640156972164377849838051048559484097240093646895414251973406309399955260877738310976581023647127800939001316648523873490953442903231442231568216283543672388599869720568327527036755668019955334351025139473731278517964880329780907963287515651277146968608288749780443265364318715222955847884864684269166693530886872409884028127997397746062479071094614899314578751779931179176049354371897883958688977575575277309152241712670330477514073081839634489473518437636421846451828506535378244864910304085741253373199337755123697028927080119820758369150635572917503527724081448013768043544122863407709895494108382609553969989613606940071727649939770104892955702166315638929587847995027165792126160758092786566731304384013067414429770659190865638794388491742611507824658864260463106503203753473196153175622892277911177692778161469786471508802082945980512112246731718978850225495096889098738549335164413029578530192441705007444958381998609635056365814966433346960924130103704555186880287937134535496965668658764127322503934967070782028174539367071861236786313626262212920769417629578622097967077758710450561304874046082059893689181660049875023333798260755649273065028939960842449504213075687790868130604992050126388529307295371160266014294554418753279126054431368577319363265913485189344893304928445758877537549972422008721629371651513590891149811402508498501487500515791121247722517516958368239796425791934238172562504317231466812879394366738971584013126598147568013652929720057848140776289789261693183402647812375274284491379268975672083834243345083702486904879610874591989688963502266431125775810082462000690145728195924427932790595595606684220897469613124151999048875517351532015068293012799436937944574831124852363071885142164290862228062248666368004854493373175154304654732546727065491014329231610982612129363108055266414532981570878775882107537810474549259481140060060770708292651868026450987312745807990306744167975507912916608585406190152747656190131944420005849253452051551815905901658217182067749862025133168787479761159610184597959316660018808601245421859916864831700305236024548323582166028688264359358636351900932558564523055511515253447097792922141079287466957721343478912509198835557830058362955613218060279047599279695107047290424702543920089729068322786983613510387092887013952325319804599687743767677259990764048003527974379906704237145324927053247438120563132522262374067878912462591243934990863103035811611947544127337803861556207067406994620192524823557501416868583322634924426126277726184572596946745301471133081503932171911176344247134179673006991548059932836088303609253438040593182967741187351998795765424856348171254524780572246792559895177701503232005955280594318111156769598225021875757024836804869501405633385158901848834384490193846976127336736085518757263063519891881506751493414407931481553890360910464195969982778125257899187418255107133888855280623248541488549801847909363607916869303425373658905959576289333809311567723283590189335474153877623593527324978014992238205556560994576777906482860588231615422043891738189441721823393429230383771007506767887318053016624355244542874534475112048850532243035187205048470949751437250043230462264868572847192871002175459173021719290050066518383921576435414173535235487251315166132109903534501927831476832761250250129036809402787099597879973869352033700179170088790628467492799714517409265337287470024437817765206341331682617512649340747655094272083960537397758399696438629501460694726312955912550743971781414223379558662973731141675659544255439246120635226934851519448527426318585778201471233322224356709222102588958561011479971728429303148155925503265009717203476531727093120090235665077956133912615200661581574184126461136311976574478736166181917401824691540446637470175973584493160607449098154540175838996779194525959312368672160055962173501259507651957489557806999471404465933932230216707259656501238609115004200641035106869030577907019593733972874552468237141692066629577843938987391736850586600348719530409820692720301678939443586145826976468602219354600571648948622074858368022694904606917316030470632413103519000899954860951983155503601708381110240843568271961192968368074182181779973791165976487788959645881113642530969511422132145364868449996213906381871382060769422789140733435793843624062368708914432800856216407713305200237059186822792554111132673210002681597502966798078732361048498941135396731659842410334670261467327615575751206723899877200155220458815068276624027197929252990854064390991531742337336431013831450787292951177016351804305313692364108687866027414080675611354968868573597839935565690603783471284215186637584295740048165254945203302927715616126977256108533724638610038516656900751058046013224647056013789359858086927688256249435529768656954532145942346498963241768211222114025176672124087931159199099456856547571056270087597951030126997690299781322379438747674468546637709986804337776962941464237544553633121540954415655920056382405325510561509989785866108354274936981712007477457165016704459778685047529743419790701145289213490095151732185092765507941470814951157170094130383317426425342125842274765565179336631283969181709699102900319364178691122596337395993042193294852240758800625981267904696723531128134111296547733327150190575799231831000412955171092312265109223095652032088351489686920549241410031845291836146397159150773716768923267074145976478509880059562540048119936400882575523122219126750802057045541507868546617690892902237262064600453836520631407373183566557839090717077509701970536822041677921152592568235163662055856496045653194818918332697851881758067026166517242168728146091297421337280774989052611003920607755791420742316614288745307871334848723069257568730298355230863280392418720687135335303544469632706081230070479225280672908798100559878512122584764012023788155519087070509683828455033424163635454348553809531967072573268671097416650789840803254984982015070124320211555353408120266011002101727936104646676506517403292826368494015931704345092691667715819452593254057131238072414959416953959794831788469008840655883492099055869989649441729155057549219724434995298108718874803878686722227469401465675314317604504152709717280293538730561724803965212856981650634299937787894887707921857281631612537214985508322681978917148520497348765006843639571105182060132626516992270405514580068250132093436827165382017853322994575712884430560023593046861976239700468047941660566238807222951158718271870118902673520364293623953143028759148820352409202203995488048302915574098048998823118228846285281232923812259500532680825715973822123342003544530237181193871112970584863052862940497142990950245422070599008527742658030836686949406572433431816023483845975994963220533247666942996024958000759791938484122432623065085775961203053878920212020808683264093315779212681086335365811481792361642098244419754650209631897841265594946479281997936627998776938983266072050923847291960272950372312370378749720308981980509939872864314562464627611339875603202282152176701486825509739059047112722389969410239447654447382408952197410730307248931977548876953648086691030848220710914234395913068703076305441985317046619910174189534284767990714196651037573422619182622970480289636110656245713063899762784974793715527027099171509235504187507840644539924233856488327077967448556669206329588634489640530529748315349296052669395898724126032209883700785870423207640601596718914281049892161156186132738678184604966240893810977808528350771922450372066369614724900484124013705158388930125155800064149147964818701965047411622262403885802744203925130624912530426202000029539127622756814301073153187225377511284025742794923419127024128941506350665358168009643260461693775288026131081425072889639562596792150417377642541486682302673288838754676501728894998422785660758987058920253369461061527063732464415910249736932108756562726520011859364626088542311488202656499139595352404222355725343976398997546711741175812520400153271360835605895577827243653687948175885955147807717243570168554810029537774646218387576587955088803905657526545366470341235691041819435420546819886045021284355529580195028235723648321981852080215239825832459714745490671284367741260297053614366970732469647810323458005652959646206552007313433127459824189466824897540641607231247997099215740760992541544787427769930855736502016283202019394343889438658671930317382131180389585310717979641373101524473979080905636877004083905486924955089239614298194305350255786025246734794159683186769034109937791607977458638057121296560093151771838886795035711087380382649119891684138776300386931922313926478176998557486468638152609434736620310085760118539390474678668985839407494165316292058820842929757688585266861678460394483352727819836812262862270970024482792625467466349687778977123718159132110287469225289355071023126520054997206197913605246202823764150126267347985190672269142247762236158684171239160224570032448949534448758302238904220201172013719517332610140465119648998660578039497097465373625017376196195135566079206908121456855454733482156079543349473690698050963356771748624486940365617522238526413739266562319507944591324130819198242012291084507746275038072730745365970537612994539081581005128200790161375460505082986182792402308338825707241123381341412142082192348160440492759183089819249879792009893063975262803364960158444436961021204211593207694296541005026513391630410044099407482114162215321757416094928154249452471669626529775191313746486963675837888355642649560500492614226303685183859646977235197828409174190837219217783404753031610690847152492493811619618489667734916777567754721257771024876524199322704412966892953998973043183197097143812659515733169492177693646432666069479451411444759305166511258109822980847441179972308417846615575572696553557510463001806716490107559699741935272519681941836665511274485687266986526669870121456206015978209678373653570564644171734918481670644770441357213253674577113573577453216000252578631984905595640123078325401545361656196553501095098215605548623236933897879688758191687554736346792396724026727652994244490541968560899804248557330621852768915517500173914379571416679042588620452920842216404992156093852201803671213387995051631850471184110729788458050676462503834431038424668317212920936886455372805265330958495142666138999897447566478658453491018181255337208909426093794436239363573991562183644978448767758466822623424643107545752538069875958126638221528990755645404387364999905714346786515655929033820369477843765930610770615372473978476459470929438180583789314509308307889314862276975136437374757276007846491197570581302728493686038609434348733829043031528556579849153708590381828215051564975545953394370298735839596311420055308747869903055393487497094187469921188120126461734748037884372800469813860462006572713525949216478677241114750080375600782791085206485823733203111065733351365664387497002058023064314862520034931482088086412667050299618252948512039992308944134644198319852664720463323424196833861703398308593051560749183918466121333486158292846648154205469139699410495515851582567658827867102087655588573760655996959645825186430619732994922483180338234304081782478152364561651689555442586068272683858150508318492511658814356597205129523037131876387430461271833547341507196519980641850289762393288949522295994052276084970216478544262450751167702798734588296692801542412526487575521087897535092793898054414958117645997712996389074814420641501416269136631044407114587743003997336777010293484204091113198606909082890778964489265460516034842174056801296409112154841649992815493963650461299202690507926112662844206247101893464611738372170896320886428687795496357067837917631806108244261957072689668652651764747008256099049210890560319391529095307289236251420530236471951772236058956431852598088109113431365702704342197566452602330080061290228374374970252295430819912563583800399138350622553178890035287160636329190696492367503500589379282703171653246040069747986571436002553910152871334498627167495355210956972026691652009997302806824476538439500234979006072594806373969888871920730465694686665657203879902329344382795390969586609992432791814623242889041923526065104412711572163943138544828469482599329739208194971287895440645425801758081715278224123639156886055313493097065735597898975684631606649160288227292423584262627770494608539827544688432893490285415370004283545411137563288314703065756143081668049399355886324424957058525275257393521785455156098030767090380927708178732853707380850417317917169026488048249906977986444552901816172596027610315574926446262579037164132842626516362451538844885180177651830181386929504622906820093669578543005685499817664731794257849528214444934419913533465190927537986646678248481201518685097657923099523403874978780974910837310711741828109223507690377307057997671319811084527607735296681680018387626743457260849720643947486780296554802662774288677353138424957157019933064172946966403016782836080548601425411341031446322949305819973260662952105985025000200949990261805451438089321431111712569090876554455636535055457527240394190597039727251417972690395263927801948215642820892009953236164145282400569382092047789388704537746376224683512932404623500520571432515306550518757200339819378183159647947925819986488137634589052927542714291178541634280626927970329677975861331740821270266714045427827152370284134466962920421194381912658829702142814652119849745240517940389766992308944659316248916929476102891780815412094209999645929195449838181002315645676424227346846254980568506618199210570081616802809911058389984940839731368976139882507043263543932538099957320441098490216883008950190162234010429272838376647279514369941297867121578546281607978326985789508961098746509795532109202058914838335321963048969727963843981309548573095680799766757756677223731503867822709345462150302059557351290441392200344121436944898000629683265187836389479882756954452757607060740299813128232373329340886106453107944116975294489074018787685433232917976139440657956444507378498872973894602510400324715809599509999208808498005138380943357587817766185753194008974976230123739539182563149026872566032847087264145109467315382350523301079204124627234280576281665525651227996966851703501228521778477680063735513481575086057867749337419886795082744700658933355260855416186325957699428815618623349939355301152641133217455032372284659301259074519756154214415655519561358839174971377403345839488572524362398272840665482893998260118957932632196495312912086393237299160359460361835196040123930246362879914343458950547227852390286032094538422224391849980617070423532941634739618931723226359534420441098015688434428258394260441108211796322975171459290321130870933232634263964584477209059978037073040657953710940147957782053634262617291515324765163979650125812469570631819863729082374581553905055104208082626654618188965213531287103754032826559814185914714899707529992905602693792517001500113774164920388326162120956836692901254472711487888004585227282950793582386815498303497079047750738239260122530580701659853601373494882341166051735286882297478913706530448519409483796461364725363891342494022738441506820052850182393200060623251157750347316911131466282923801591119403795118136516476217492261374709820884163427811245954889432675968904316326151830213951282645599947248180363040115295342593356977108294559902478869721827993009268612534646076713709040506342392903852127585529230450522015892449262868384008694613915276089246429018152030648167927988333053943972835821769715033387946564117958882672743477078282627013216566027734574198689167380235910095135337533054699460165001956180009290506335422688807718231681246098308543659025037294399070122526042734295241094843593433119458043612887931051934817892094419183163320536078767587703687808880084715122344269631166049562932432134052179342973720564450081561807265164089577067770234742717954660992214220463113062100631403480037282304635780334665257098382556307591499946524771160077497420170272476532178209536508866097282784155678176908016698310167068102867772048591875713189297464561958643184408426206988205970541093500786044350607966355813274836678018887905806585597118580117096976810976958592366985481190631521028105354762827635221868203570100035743944086319996539567996426636240925108665234337327804730109603814778441036162796968977977522635450118602054929005962459159575166359175676051800527885947434240062573976234301726904335046599070581729046679086508129144149613154678018335144751806414041646863092929914182421970664715548427505404556899417315389096262654541663116792521530693236122622177752504545034007613831557453471049380904860064889482439530738719115837827119413380566180687362881104589513647037552735913154515551616979420408640978282465131452682053716186339089664553224134598689768591719934124616801560237288842036779275577730613551249694427599197340874263061458537213966505940839803901187561672480566376926507264597791688338979678724221112697604535982909775995159561115134724757002402486436026961481209961805920670808364901741470809255011359123130214148992407211734787160105154337029355438530313937241664085302258161940095142196521155313231213167523435315968629975693003242614858951054358037893445886981255204439989327720854353303635227322854845519550505793802632100310177576342359790575730569990512695150144677238460733620369060812832810938652287488809009733212703087220983283386213046140186595769050442246447299877377611816433491374194193431934090042747654199783763058711002548946373382424099466453180233318702199934471957868317396100001734555073485932315775807814371782104091792573029932972861000441612502814720881220570084808538032691847971076462217826113720846963252599015391483707334372116634014607826429308283446599367372271979985790616521715374344346464231683965807388507515758605382592540775569289981279034319474454424835470015904389989724422800545336623436421590861775302360503346772280190572603962598403799012842804262969591171085671437440695635905072565110298539209275174163080235931262173984380333651159771918908197068838040252726583296488732139063622044295620402668176989739526171496024260929912192787614412861019756023831657785247323240442981524442374493649342296452184413258727225751946466155781819332852294544619372945602238774396857226418925318944755126659543199622591667198257303962795873200826007252097108347294873010104631486845612646555092093048710173961262339772960546055296007468356649642940520282792835083632897102524356025048946224940750961047208060962150769344077836459912854866439992092751180394713590037617232592853488765784236124160261914227108762873666746776915321410434205143745873672523910400461814800435089382631859787185842979240632356771293066832524813700876419878396673897320811858736459172625441284511182544353384394470127203568845400639537673969111952604717953899035583887630400508618774279361715218938903335695477326235025299968032661467621498253243584478154103529894528774528687167770640735338540899975219495571580287702894452063077613177375429155889535690663616328603019973162405348151756873758010326442768172800455458350297553710838913685987339470563594224772452946720254547197641720010273531893955834340527808396686764059627639986641783125782054996393772826991579145039879181823602155139727971161208451428492951818631284449638708446171888198120859572053625032340167578379103845474435477859488496451667056677361671493871210906354803861057009915740238741419456380486022730414353801351841613726848527351774426630976074695201622148528459893424300400073969487970927262875697165067358486542026742342414553710366234540127420706485168759148054733338002799508171156890750664564342145183858788930336503612149855611317748287658176935438654363658532594844588340678283927865677544320895543800857772445018515425641506056736241221979011818234194111256767602674801516929799394914523474759176498745355112171993756530040286551023644671972559389555003782477067710619316730623096237345688623013890249750597368480340423158002764851167980917680875278348085901315828976823545456207533134483375536753919512636227405052671892399258462260078936435011337910190194991871036476112574776251915565285632035964509365323053240929019217714288096015732939829093627792399874100524240127987977187264352992797918571950927361317813975843039244130837629815549125971948358577472807057053941953254267085563860275928625236060171719271314599841019377338861027706646188309315090016921097391632615006364042729663113468236591981093902181405754244086023316420083676382738073296539683809306699660451991071511677008399721560161104530696157728956937170764130635765777070793917791376711803826996190434745961932450048367855264081566589792155994396619988520497187112492639558378192424990477592706908336946976058490556333534037356670049217454970743987580733706385095088564141190591037403276404303154834933801634958361350937197435476646426527631434333954910414378059482402396460223478674516741453611650187036477606728759427594922105126071485638430666532909196236978442980581767733041174199972970495050638996776870432089773296344413964973060519810803867264172103999602911417778041826272792738438408366860497030382698091378175143732199562070686133893975447653549805866964174802003407609096430011594164197629612190572124577645470708030693525639640565688322355988642261196383843147575499630851437866917652919147488902961434140842912266349941733137319283592905292455291821250459873192480978582344978774975519547143852641976867816129689836651815601235127441190599753005275587477594376876310010947514230859828446826670570792827894252187250290063141479073283186877224501496295812386807939306931513209027140889066734612009658343367436799469524425474985375425094406562235091599579550040433515049764555507927006779006393485784971627306195431853069763091610777776616594296876483196996413157834389196144836900180782746491477201710468397294586850827412300059121800773996907499131413291999322502186755144676500199910580604035859424898766918503545577658100721342719292684902870980039433962909412364335589248035115104065108288596373797083972052694021832022686441540348201560484026698528558793668975966234641828317109078248744818744356893236367959506261406426831165901156746304308047168818149156188297479341433176533785622322335831538080511438844986365050170739952290503067906627566841790341534740947536411742974473084624113892685330914628212564297968771044073244326508324023468620240737443564162936419025786454917308774714583341445232271980893908349757485649630774630460696362621538909555674081076123585399683944052589434896253969757227367627684637295036293918605181475369407290031686586497798649787442623699743844021281480742229281023365939074303750519592474329988949208545113565449994052977572733161582192730448322052217124009024991821061586981350604964284961797060973719818222951865073539512203043500391518937769212759035745149940694452828781225048694878318637767454063173790145199456743942073747427525823840516434191860954968176824216183308955097166733232833238504724614482343128144734035152706805066041656871461357299181676730711373273298276960595937713904729682482607143356370538137437837516682053835768002272573552907389438191099777591564338685096222294406236398464387881823718897060240723128449548484628958337999652356830563840919522742289389136939506967704102272844915670459694501178067061894412795952616272120936359159473592675638926916630593990387777535961362072258361187832430133515135447699462045212276759629252702960466240766221521882965225252987058147689956081208845791775596833360396784109193969767951815558035220961001394364034149515441688321887492465613669349618351618056096696212762900470499520367875705807141725966894849766108829041614188100493407800657976043523206780109360091140230694707142332646680196686485042556875236267425792378248053597827576307809374431789275456362770753318734521354716869339104580485865003736526902921411984686162506795769020623325557596780011562654813488851789895691255714716914781941798642652624261878427614871753552305362291349177689128237315434057557455787827863860847435247967409094596965810067195878412378543612591721180652128109560883893343935092493203502418212513328682777235261577355997942740678352940174403049474422768089726614436624841408323686453322807095178520386608605247468104913114639286464198853670812189241368418439334700128343539508401819692787468461264650200138089856543308119656629204500851528402449888250024137494806864348788636137866141433785688612337103002744053848326047554949155259443576024723343374100084805294425961729511046784796476199216581281964021829913327299177581569192185705619087372015717913025170487567547462479792840949169628644917114795866326574621151899481294280109168222265465314452466712286373466671230636711038614767998378004140571495051343631928596819960576677409897929961956347923253608067787126038867810849682551184531061340380868396135637045094118771682237225371093398219480388486940721826288717730358935028524285821058515726154760763986837973823549298935295971853039212632417638271040894207148742261603484720768668349848525737252041973707836721229396531164394081512068658083421384287682663811827867166993230304274060635289938071299728696610418246028575758635036240629481780986433993478486357676000911109093745193578590855953497991712827065286071073031176161473085121713720782155104809455785769871885242503596604559130363031712261361052496695030841317513111242284302276706583757517690652345907411094030854123507784430787119529366267650404652814286640771709206187826999209463208331914632366740449930843420866632266623328717389747604994495323547825682218126115046591210125432012849918079654603218733271698004326838913056920165202795884928602862424258107271662820343527351621782246341816917561212231031715798191114644493817681623827462096291090533284815855417835336663753689083993547291077353944149933554391778308446568854025315943221198305973877963675996301229646129682452632078751481465497386395679832945585603404673194135515852419345503043319537609801722156909798842311821990771223530407702826462043098546947504069571953283630220983478844736927988556432468067635042008825142647099674287917902516120579215259817173041661976035368320911952200148414343320553290669629408546275286619977589025120993877909137819264979122662338170522244285195648720067244606556625290769082723932735631665028158158821562082058834580641878219814409318063567766941371575243205898993785672747725333213544915874744880054279517620107906071760405034886579214226825201103745363321510380252133730027242944940212459806163382245988807557346679740212136995091487548681432572980233179393759917497786443108191974454006657935345374750433008195171631412419643005222462144748313071077782745992465285255002039057780756049348547724183453518593537250794744346201362223098225681409455658220851330108950689813611637871683503982169102028530259596524940400155398986240765662741388753323277775702790768887668819893703112804603244101217234876472894373820969212871104496107608362369996923389641923812993925895246006567147587135020453768311668290193684518147789027136257071359738635289593995049646365234138140204624058473855310006388696299396696281259450282327202598771060456546383057156564549812106312288505575646566496610055191196317803334017644744731337977844190179053105160536232365293719878236011047099695756661791321149930614267640389366970807027874056233190036018836539499360658365872253403411064060848956066052863279844473374222210034430862771387276483973400481909634195822697368745384640662589754568521065587750282129522471465212257869742667509696888520180378719938147506866168118836837267511976470931261843544687275440545437478936850679827443338204686522761393749008636817917901155969582111569482677853511273939093046261662627089906757430118580309558528554844868345941532061456186802630784462828699275138095173771079913308584640760675254387809293750948134450034603455083523283520960454278106112636685809046931995992851279561595656620887538495429889211520137228437996080153601602119161233368860274410321693456892224449786524581314054570196671072770219563154519439325143631525725876521847260420637887164747418264151786582625069921160677239485955236050064060024701707725797711221047658007730601309786443496809122802177537271787104467601588175767938688515536229491955969863732967996316628608841913778842009191232032716772086129405498139707386636180969914208719901247957822674612882447048272542909028868665431481462940204822740505436710725596397934489016132535346471782951728614599392748500312018807902102321274507011948512104163630056022458190250678021140453038076711934626399093029161161268553642949316420358371462080945210717132970836215783335940801107585911532060712185789829632464578606093238035832131030382265791560771714097386864888386623164940124489591502311777777348617865815748696362433711948780825873225249510125526887727796666897031612005986329725759444457724241049293629927893980477465382802011826579422363814239915202916308587437883426608394169269036793348582422791546883135479890816256775465655008594666270709034117344090579480320287049134385846710849628636706258066384015572537547035579090984816364477816156658303088228834600742715436406360913088837422521103586403458186129764667358263965141529226426926316779499790761111655973015530814405268053531605897510672437324132687931730087011382663274094162551631050615724093812247756732340815667141326815493376327905457309922944534281121992278059978130240119805354980414524282414214842090314085247780659624484885937609473713356184361017740187721395911257722614627874515871929716586877338597538224595389292108129631353747032963004135260829047783506907690888109691482614358401263384008500553397052303059650786075526896097088061555550013985424842795819114682615193934780380167589226713394129017486353932972842209305096741004906076786508234994128855079693790122747077993337281271750013430679763940273485209950528974177349910997614092367055602059688325050154426931857872013075236048292772484527260187222062736577051291672889967608830845096227931980795618749117801860723700260672676749306643834805390767359297393487200932196556395421157172989229084948790958249252016594262437087806469787486678872346327366922053830549257054103517677165602806172463725893056901943767842391575138463673859495545058451269207279137970123495720474564997572814875834403041708133802995309349974506703361680823917291176057115916148575882070517997286929744278336674560956987465645219961042510222377840374063635250610964229091372900087085380967992880623113220400601770145536358031553856248535862453176050502016050790689295667424976285616537728441825472296814413878976822466614832267389703823277489918333152600870877146598702378554095710538829524396462553378989267746710460655233396930206771181057516204875003088389025269370595435042947474881111752356727841801477346140826051728095381682845276773136586851303824869157479454109298353595821658962758753564748246782356100073187106234297730307989328215712254469558875106738786542678467932466116907750902137099127891994887288528436896059841661123994862461502600004612248217027056628786162634083346978935141153314110205451746102649492289114344435776521111747040576465008168214218388287598028162939367108070584441461973239377663565966252662963011225948320907911126767943955503219538649805071736288829389062959876619859332769561891410271214323164407314099499253051827220992045429424450811081480487458819172082139037408622495185790837400159928437737877308157048943672342509957423095712753460986972388808901173095647707263805136409623136930322533996885925098679519800909060963181342218758003815053784486131654955162419110783185837172713608205082580525810730989185633468756082350369518986209863265765494198804362592220490381176416525415950357053661602480995483179033598384903729188614998228364023527054807534973749623629094862723659346073078430502097443836738151387901967383369138277801187294301308813542358611510661135691482756980180795852928177429216578124863274704832905900375025939243082948828920588895577721220731150098703951874696195620049256634614423521170396606931761657173042398409148063888811599645681596086079793266363020756679677932686979662611190924073683069620674049485642125392340130800970256109031206857490137481280516156660185003575432712088171637893064816181874345540372627216013954000465880712262677241357888934036445019609784828601743573829554088903574242508817429319291851218963326106512550379383749949065554944976125854626854444495189397235118578171418481942205017086340638385775809413616935754499115516380995566685561271426677821682186600894394155122860249489887259278088539968445695160449139148941329194248692461426083194840908442021395285339679080657057906027827752818692268417553855334061142431074096751465115111674077999920251068718529543959356797091407046704752200353425796416814736801780546155545754632086088154044995323533552389558520928663291180555298653693273314672416413051396756388395188854006426698920427718051714276146055537547774252576923232991776007867402253152860995669577188184437285643948632819656651075626704686759817383184707378568265998314639109435610249433787155451366643589044054244110671147646397243802636729960751642621407592954301420597896204336100212674689214373655029336425766478034900259497290339915754573223010278722917465510007448061427888732041413208208793511343877068989074278611645210804774718639952164500254813344079742818001800058298583611422472743630803941332282155772633468510250426304824967572473689654356116761904555146306002719224532666471805805790887441529379655659108838795215875691407532494002092403266862763075711713073301745380913837701266983664405266661115841771834384269952782846586200111456377886932980703603407571422800316335231055568361469231660802114779506590919636670543787790586758331453488367713498742927663721741723288356421033051422325414804093356657193291465146681767166674235593386099088660758405492371841167101998981657286111268029143214463638767054027434115793461428420997173199038672299789258512871525805013576481978726237310378938620271479030550485194019022018799302450852275949397746148093227372704084477293430484700615664614908049195839434242265368053447172429250916871166786976600565647088791502612414763867890376803939885878390353445155090551135895502418738374270466041076016197687771031144934016621712021911083150457156498946773213096094974772539946115143951885168658629546901337283439254674386888180377701302217523123774377888598483921348952103363306182692256567606823275393285640789862730379751667697782702776608168422841692665365479451153479139393591399822622748902217633160199345354693143760712772795045797047176670033380990487157340567262029647921417944180442661511596366577149716140538272368191544572907026540795541174029676168751396037125915795504255328792538793405731444884359397352793789894612954000546770744864973966878664569358559663735744193978267441981306283780858648297610539814521426930115328482454406849594757302672575419798706399946277376966495574578189494947112235870015483492512255721937436832470710184459490019580268936669353957566293151272150442180104962960475523854303884599791083250587129196209890457662267218365252415166833775115897562436028093720696110865277137135366617499192702089437458092602127813565391471535280393958143302483593891332578158088103186381797643533372993568542884599350807613241522371495904190770209703088823791388204891041495457589457366503888745880986628320393184206626874229941817960054999398234178928244770127361262542068392097561143871744939530393086007625737907820129471368541267795769606846005057560123401315023571356760672745747667617199884150809005827492639604025346025348301956914229490348724178616018708526333954422123694391105166010112002883016863047079583206161215595680035395896502206296732794508133511630626252270912185210410143668548137539111867543698448691220982372949537861913095868406403345866555996122340214551322404373855930217553398227329071001472731685220755266459089882653536067828058288004052540184600920732237336533771515106115869647343592868405845272036436448685038710708528636745226403882114082656490458977848451580917191392396788416068042145988679004797621986487720786794159323811883010946034345922473239797971645648628024596741120763657733765520258363533976563260422051083171372673954403320159895480661598698373877325415092063557207679671647890515154364640565256221954971853334538168324996882563755467698722641032361041983955161139463105972629909174932247270385778158849739681403874447786879660323096866899799962377338835679009239292774572048421931939264975711488839453172620751856053353679138614648136456618836357452403131562090685171241789895540499766765751387366057957895443548282622121225170493946018823253283883588863017876621202343656448522039919034943898854951421125875662934598103392986334571123155838579707336798657415689515260546510595499346592361020116454593930002760055699162275563067136079668391654216128512775435431130416849500713909151144895813883289814300746808585218171987554808691856309833954147710065356956360868448745704413689962208480714352507264919087686676575812251942040059520450923135518183872707760053783833223652008266984219523850368277080678169023670533920297257812818709031761132072220969016700946467740724886009363188760266609639221810240997167568105565371501255726924177456755503276621845172604971362509384973461244766551216328423633323262913604149696720704742427616682542580119118415962211421567219918367328060139894739256805533925896503628258855035806445122230278063808313258257899951253699475027961066297688873142289923702457220552071197282788035462541387060223049179912735437010854932018099824626680577259176440080092688699504803338279792264661420287059101447359018988561156379110919791352196314723743877946644042598567353633151815810239748853836902896323379347082575958506327764729930580996915578033095006699707789070597315462478665979506124700494027363995486018133768638056470483187748726599665197889539034088904749166876491797527936236845480516458217446540705672305831899151371877974872208165796588078437461018908720378947906687289776060219936030806949362039003534169861737518980382731845219675958399787665069230219000253500558871650116528180279560480603159811475176350364221248378198152494754221386755502663514578763521379109621324641004714364317932123718199290076922978236665024318058568692891041317162418972489393510289777011791691780490179454583791568852384572237347286485008143025874027987913921585489847142995612060253028167295945792905108850632454215547828195920456706143614745390490258937423059222412824091268958011843253618889972737593796580690198681129547417892376804859450232578160137891522966310921494409633997766652957970502988978052138128909006400060503087249900399216413159635884556708332971512060038063805493777016063588680138420107388901360644782248648796671715961674160399662714670825440536243392412734470629836368658979285408591510116516094282364800277469839065701768848906009317706193076606878906730688329252252531319459671782806690898840641758209905034434327552109953350277710708230410322640643466613966606018190295444603886783233892467475470714522997300482782469340829048725696758003250288445428697914160423002957321847739619145480860726341687179253965920767248042803822880476242267226231435956637379306555544374649057684658565111459241941579326579528608129011570366664509281982499979845121431980168879259117199049914217992086680240893852545698077625240891474020402249748218254134490377365332095827586463130584951348089678656868357418763109834342025025819628115944075052559583465896847501978645606848664048136940156362136502605937042110209552427076761691225476746207108536300077917827723424289682750202287523125570369945559778889359854340558309876130471370916479370971013493521873486477428622362078485360290699878833447330747300872956224867341567497690785821791424179046896250906813622834026111683796444112132883484647091115176734566911235979976249611008676967567095232824636383554650391721907405003706019925985701383113647543079950186557710434570690613272774865021534366230774185004375057258342730704477587495100079380406659454699255255540377093506493721151651162859591198753144064728578325276252756723061882817446288642682291723514569021080872817132348814242931018008571529449010232465696818318061890703039297921059558879488283157067660687595245721629584344339015083266416263797164536163217747291481405721120743130887545090377685048838699887666363035981439105198357177915524246684131083014666638369205018295166189308757421380262220856438390938147800362274882116412997227438751756841165548606338440136607949763124468140600962568429894160480392594985262917054714685529247672075477171044017995928777165384467754837605622423404938153684845607650619686932139791109958500426905221415291897032415875598724916406619856432292303596695208155507309191330423389667644579284823645198320239268467402849062790843800832388818472554767656450821218235160848106087445980745930232506673064114174129617514852976310241628372308117149589903333968148511521622573428430448503026634968136539402846092293916905948241947766237841043353965825196433827146839610617210775597639438472404480204070745563519844403541790419332413443713054676090827587637483384110343845618952208407600882992783776083549609372368032807481018415683851616226176158511496984138564368859952941736499783247022684518081110100252858996829772514305365440818171792896710257395132147271927535215695379520462693348350048540598646952812342670860861731442709948220727346200626239699356079663740810355976642395557335642709097097244588435185302128921963385757903845446452537419269142734549551356962054184145877556931100878532165789084260107483477831757823276160407438164733573404366276366716218394917406431210486730964177953678340195303980289924012554751410769552407936277059142782209348467290535526235830023224417059774717672513956724928707586881448663464620592053833835379632412938615422062327921797551654718007732942049915307299998389123078630826380310833275828885744054032287171394794582108610357507939977287637109384994240961715466895152438901589967306946028784804466906399984355713291667334830953162008216791317349765859435330989348238103928879721595395725646464437151837720394812951939081281130851291069977583406520113500230227877587081952954056394663248072265312425785655342771558080811713695022706984050281939419529267212672004329745119657442018337437550942100890038628114932452931434939079054840725118126973992098653253662154565042373219561627748222277748999871392330837869722766856699646208554310765347711115347822506938607837024182592390534628989418394314779090975391072553449381489318968574248049465152460628954119307202827913191869992784012729897271963183693395004670485415323626874692023200510426030559686164802087360145246808334175200775218576534628145059650751352744296562926630824540259816021240822969187348143991647418998802234635658139956780178566215633007605262203678442495604271712251945324483008594380237641021995817722441211555230539929146200891098198304605736072399737200073408785971615106936894724523043297242931861598734871651685185562455196158878350339598852550943232291746601186007171112230061900739250634056479178242623037583431136216949066732330243516883033327620153726257370004068338155268061070172408596118241018475514639948541114867404928417384580326805063829039604126442863404450597435599830732819966022510532817001466270883242316671010046506414477328228861304901616776661025713250345962890168285855270921145110319777450459698719033343665554742154553011461154833411894855602988244615363096229150471847960914263545903497958532984800656924661104290834395877563310359003788112548177046861209687613401746744207639670453814823043192567696075709968078637537228244626240375241978271617496149622353354242365775283947934511176372426880418160082589396904617837148861570015666059061177282923865897255008463447395407402601557659209149603911494131867246074050334898277190817994665524972331945933583394270220424295881575448237782160931847293210194023758232294516318023452314092512601524276480129867604347119141068592013247457176846810243252174175705235994800030505319493329339264063136715677096134142337893654390703394006643357314251574311908653353121525289205631175123368668998263423177760731397499694782716791802427635996960504680705272892136976102505183875644248777532368676361830990437589984309377349048621009811832550631739627483078451090169243032103834719622945612061422427563377629512984374344425716517980575334226165789496081598281628485200246895222357387626940782031934435801538267759594778935524600440407975907920349473851620191387249389922459471429858978476508288841559988803016232500656007093301957205855589698071792458390019375302919827527474367064268837371115377767670073028959949369352708728850915692352775376673814474793076984487153800367814405354256537572179015382531230968899461090929023665061736892079735503506255661857486670826587689140544185426140543235098655683971343066652278651893977969412503444508238317861135881371979016683570441891463946416229499963075039766191649334128419343151134781997621359155669591231465112951302848430692344924619211005114501881166044710586483379443984964301332528353026558201504690919805906887953730868454781577210753562701402657425937046127337593945274708349917584870454939801826106511118587814177236299652850207115397145755596047105038418488809202861326000486693863190813942406826746947825858216351235574484645230221059122464031292810956140844632518028485909206715757210312064359911439516569510021325133339863222224700553069857240837670377189054544516923206275808675709981514275049626037635840900816884685430750907003911121374255713019715638714095921393007149257558813134228196163355848420014036690566600668604801648203256308491836460351839164698562818524305717417121887007145664496925045744357395182398815766190186911045278792936917493449561684395763343792598175955016567259009792978574060377968103682180158485232667708136206507763739958951638955623795499182928784379502877808599910214359042709083714282230983576499270386837717745535687119410039615139890724224445354535750477871357775979121678271517966820540910440607908907480279863428825029757714555536718595805643048155901323656416037094421629398443794458394328764767839047351685551791536219146518571905355090579843370352451434550866821753851547086963188883891600771750267224860912070463624505003958510374385884767069573743908127721695969091272980739470736978361571397227338314310277059157481335974082452327189251701703703768715036372626105313351793693953286754456411892518683882692224495217906214186191051910919256556118827002910528303370656643017636379657033710247439516686450301321422977853415075857584653117623550658148667471541897334679099153853879279689698098856788041883358910976878748410000564460497155703049300038840624784514775138256655572231125535844864293734071599995196891646136520107095146945873785483048454344130946890339222935166227288010556646731570795501442187466009440539955023455262963452473864864262237740879927047762825933826747189878019921999282925209927573874096594085029229941587458424847910993319996662386357671042375972883959666339223545013640894515016136645273641655507105895198539144020243520296797853872848900541015712704169944090680536579069365287604098889446295642899396873782809690582620402841569765079581761028614733090013042065878857683368690029689508644583204439683565242091432088637194247911001664317166781404272404700561674385482661483902026609833405508296917400564585468811694971415115352254098734014024229165371263946680055459107586852203681356481574250848342140445327630973442855164787732513368230380002763758898620662286662848037746035797952967144039154493389257889407424760588395622786908177096253784966098142004172223061953009782083783687273349631738487319483034631679455022175178682116920540280878064855010604067958357892641412629336120315864276994670316112652964149771561765689874593803490736999346225173382997375926006622987998767246189893373303136042187013565644229355456840599714538779623694758455593602635012958764057403659421731557134427452808441607312649323040848961225241541443303507678446134738008195058978763638527702996332142307958791603467146418636538440565034449043770444122685347070724632727256484529537044081288884610600173315528162791333661846512019775170721600885153851979520285615559282365539058785331563647561961998126089745961452688118788824347146845405499947612487816862379411795325874082727791009376337292012999439078487015256483289558551555480985610257951514853503226983239154129080163292069083233439514739885121585814593727368088145115360694963650847941980396760171983004388154927925026052328509671724275076939657259670189137823838916338845594786483891915953079389762344989959575165351697711041939465019495283125743967674602856390313593570958502642616433684864241599536929976297925700348852109292220221377245806117059410814718392113664549790345345722082559170813487304973580400698341792759451815045689247951888356433880053747754288685231896982757653987554249738821345337619964940616907535059955834140111487878344129173787945576181248981023133106442223666448744025059782526633172996767757954727278049384930100933970567690929531582793142716244405860785634685037250877245011662175519361854261426177801842300171604111794900050383222833891931693535909764550210484366165558334880822888741129835808156218445381708802004893262100861955158994036371347972734736978002488418042905692650182975433412348611614886544414815018532357433209088578919807961870552467103248499340593537748598858135381355161027069792735747470008177634385957157355161029225854167114754958791877363455881143812684350116320183806560379269609122065720428222777994346658913861275142915109958126301470643874232546382674583161785034058920990687043995357207940916828051431465971922093676509019905220671445104110616268783991780970831322806380037573919456362771355905719086867781882529801283450278525401616093763874153351318657923424604097932574142140806565037671173061830100948455704861428571317477866322603390519605661993725481752860703225356582489422362711835964692984504258037875258943890965324397307306208165542909330970036011579493780572042661512367709181937196962390145119475449050388084473411665838857927348915102148147389872170614754094995407405168057872739351872003149955932185357403736938191216589972912382504925054578914514314694288260299087920827410257603689967902395220018632300603146311845661852596927391666494125845257285529270851919294878620521160714299609481179539245493514678681246267694484455552451181388954493100943216300080754256831546475528011452843722884774851282805786944706469334632801212078329389347215951234345275701092240219152695154128836179841981980694503942419333582394680802143080694046417004909412762538373701771380282291490065883165992672709838183570229724406881450500310272456348196040498531524053441603482687384911106846859027268229772621225168283150007498633045548162558051675432943507188873369724121159963438479748973070586311878347228210322916857002960975743930194668055500479745787369363124766178593118907784830817584183862761024861142593120808922014256816023367673541400031305664808130359455255492510607187766763208870022707481148618019728480783424907534235213923487300455139125137649164155993986741165687493042687010420249528892221953467770160882143264192632071420428175789736533392467846800354076779291261191729409032584525596044719968581573282032440166204580709655758458375094862560040710806994034194813808386597019749560217968779649644649955990196061592073925028064210569322829090980746618333924664105798053299882833590571874955258360617160546584890885839908302249159578551073032213540844401829305445934238198733671485459896794887000138374039797769393903109024852260754096105247624821493156745010137259455650428751035726053114834443557992244110145935684772356725980243114914569001865840180472629851606926701571304904438300688113198250505514442814066663792605968543097111171852426649877070121468674476654899836755326924689727248527178395087259761964680819653530434943679405492593540718000764636846399196439877684553551461657229772261931359600974967403846219972204104463137147576703454996020922520426062554032211868770537431933456141023978035666974550345919064511990191926752282050235536720989362828139995525862666791663621730847211597149079110780829000648834466361541585584036310978901294623979630515807316997994965867129067902352632292769332853383878317294719543332538253164899091861482040964135168942440414174949478717494397677583936721222240880692441135583508744928242916359861382440501484746749547588896214523976718051245548256331013114708828563876499048614617093676131089721723267967920963744974954159768480882944945863446270982308971056175511977094668581529622325175884802712402275433259760253545070340043993344248148740699550312484442476918373408653068859904911657314405053135770647378170058890086839051843840067938350598978850069221254928950753439294842295343638614054894891038460312020034404629818857877995196821500376814314851933615399615698542160534434406190759265073724395584897834715831928213854390626555314346673594018334981913503838282481559407515534085677223809565098117971395606000298767856107843416321127355978364821210619684299964053159847642553787815285928441421482988585336362292994321649217119154110667740692077084677781425766876416677615023083906094151074368935963983887451848612163340869452653788062312493971403242939184984627972916785080486792351819640043459326224571115036980921690675780115271016331792744093754357016583735950208055170637345980323312658052593495351125417163827320816180979434790234538215562267097768655575500258078754766189238276454668657256744737629400512726942784768890288012114969272186546896517875054489035041553191060997705703374448749481155599901731676000042157706246303774696267106378869453496526154861970042328641659816965928097204283447196726168781018561529968847781328248174437923642547187113835984873705410436721706446610244606388002030920366331054570168006485539650668553100502891295502473407465573348795262693915580871015518271502849885059793083413878332558429719753764005725944584636942699333457388287970219354562220563157360502814387614477044776309407651880548799640057862124190340110666894185627394516695353387276174693961727627727838180217883074666644683168757739382515317128732337609769434841506162450312022034525896109775604520571433733983742346839789116455758888853697622966836638576347776145805289572605485829277769361386252090897880084945058541844090803197214301768525122519327597948914629546819318968259623893572256536711135967966552392114905299453670953145482880921214014842567640542059475852026234043546225490907264556439629246049078781831542295618644865166425322411216709741031743109173422947043285671109619855663491046544055717187063976487488558053841506423724225118551211873946345214994790991082201019171265811426266289553982141404787864395555189716224721125015830453544988880940892063362640197374008336195300741933834995343663911848167318010063526428909867335150236632471480206803475816743011787332934821270135084190026634117514448069968359354568646488626950940377522669070580758827413134547029765019557439765623298239683179312241138797113933037040504602122939794410052016637841889877499962614388458416237908193596586631994100651867526011281645236787982611373485018066266269024519226103791488018917671293067419315976400484420477840767445650311909291495915875754328683955702796411234636212336967998910539903427741819112472716526116075654541289166871109318545184979631103563175737695121501853471579469181980109086245750764733038336303635667730480594339528123867358883855351314144181741408377897729233290002836707297697965970627693296538096118310791138364301292881835577092847862310032179432266268764919985340689688004357561503641261436842193481616706875310982132265019202945547588906248506406559952977908951255422388348170666643407415313297254882239310669017471700167252290268532371496954088903816435181173750710692370650284834426750742634550391564050839602142463857831009053304956318229680013105636315387250130026448301145694470530126348775151442500698752504611218375634920657792027939594619664706026047875528841825177214433036938367125790679425692125453091570419550892880599454824379173027666850427962432279365832832308909359051633444532752320686393493246063059603371526599096281996117770525773833177489816109101162755427291661695756305456455245764395920581206157195008704622424287367132994867825691390978802092203792004758056704839735149527687533161358220492934291129786963999266840600794836118261313591566814974220624324308002352042659525792967688838976491268348950029224700782938554074550197815195891154056975317524046555064384931506727133657048487949858099866141731572708435235924070079157678111082580704362301617831772995155289319080976071087243826900939909132322337614542094707540438839912756691045348629244665344275194844064120193453604361741148197773149163792594906953324420003798144051916676171008529440001205514526919581186367187465048419750314622259704535781433696703460062781697776214357293893831774481044528410706309525554844105352148924127945805716810510523387323051074705076912959835637655605856879528599116070676896193976361101698331550218678637153749993200725652238160839828811103790820332450258304703457525719307386918351361417915608997797769360670289689227907902871167294356670339124860234106796938424016736483029687750635113590060958850123181031848412755824233047676509494398788463246541732457155185471048742593494688158676360477353169100799085952349792915065042034230088672169866577610238311274509414430787245526690146264362018017057321697392758542689539886440109963510156697373620334053797141114379012028217610233358987395456889679450259056710631325459808303565313799828764713402043928114018877374425393439400792373226398935886668428243713059472282986820784080883506302919073624941288183273110127016614467443936250179168319419012675634870461155645463735503153114039950524129536491097572189523757035315248848450615645389607723147702899078915868568040465269462998314851279309424470996568664697415626422456718905864816701341316681830421448566077786733936919563731554801625018044013070354085331533229010353862036623916880695623485658339841038276435972101464823282051531928702861600760932545736876951824976306462138128147314879036319694177902604015904657695422775468972005076071615927143503561582780120085694017399411830580085414254745756167891506921868853416048794851680282354831762720544773309424693666463354804349152486074834774458572952300504738149159356620387053405240968368573132771122300446075572988842357878724951673058027317972401205172898005731559088564278538453452307819920721555463412431271537316451884970449378279830263783703683060869148853236515839733669120130643875030719319414293506940826453080501005489698580832797230705117892785017054764413149958455966091476265401313933030589157093524667552102212052881492465827010972204610153070401158415377396011880376377679901141892959040738566899590943784258636563391455752096164702558681985391771519388546054875249689268267599567998828428887836749471773551910836772990389145408692193987672504612604840257706233863278390982148137927499777280118456132596354938213521473419332980775464943092270765266772060812699968335142931458513450586432645173910476550522812969354313831977148984876045671097403149330242237217425577658645361830597621276412629416780643051402298101644941589312047300860999251375338619102811637103788861766136541290304693139347516185507364360239171150663547884209988419168249572465792516095864824957286180532787873849225953255013163199855506495044628546278491252555241094765682021019169125018824534712155784605989381659655934432907545460918714644339227467450696173059520297676529232664740512523943839425400538169062212291834169339015778499448751794560047130263579703225202977349602187611857630571289245053533266444263198042050181774975289264983106945267880036187520271678034730249494541508741908329036787493704790881551300834856983924836908021970718908143741894549652975490077300402112028315211666220934331609124565439608900526994674749702788680566352090102271646086855977165967721249844816712013250569859408154266483703310685582188586010023687275773622225185352280840275859933130557359268908290382847090651955193028660072129223771418023645653763423825454930933077451925563551894216022517471395233071602839161928580702496253525191948278126701518910378295281330560816561332323534528386503027427472131303105424752580689719432015143566051313612626335140420156933431408299517701147417039107286859877554327478544376067505321483121671525147177125700865776924761856348929707965624527698718144366863474422881090753397800091723530469352871864430649128191958434744268538539034535722424805833518191508471894640868968791518195507831678882979207829056958803279748393589228915176575486334687716482262069834350580668336924026382674837801704570144322141491690725511498845372031368754044733372759550052521395527764171557409218054704822029183088385450440475121993472785620484422435467948882068518188024003985284775078567586471000065833927309131013707669405165763845850333728557404550215896595701690149976796068702103358230296624491049560514280392951817575149281249839413028080972816204727150930157800212877544211411307401238502681631939526607687911960203596327048848556695920354381446694159749712562551416642017376185409778276523601059283645385660003533540341208308082531725051532725154185787376375833371579575247742757774635048945561599621722597041878756111450393978761055414823498388606401512944972609700168665141573415725247222074629636180047424618906533551734303317199170621720165929526741561907407140628096466064846731487499853696353578443912309512636583385154031726762851285813273529564736595530533968714735985430775838857917778970342645529807256268235302029702560368501626747493219159650387605856757326403911300666975567512734601231428529812911130731168703574936677022336415217992327432741061515316824900735591199102713187222861584472337471743168046785599583541644052175584326829108194735041877579562067084632574447250206441377866614995794773702570023347265272423475755451463960265201429485786268986449656027337377063647630596169863589537043853912570808330536847891494696613944405872099828403890768237406367175641358454302073250948720286881514915529561084912301003353647501350876044911645521652998526629086571110871224778773402705476616751646569761698793324250313192281634148675685478845234211726986603515200044775248473123817741325777882410185789222031222404274369540387353180189833737261619659734969797975685548005695168532307644652429571281593625607987576089584951113326216056204976667135103769971888715737737420064315309232308334795225076314387354501025944979012392619596259535576623100363971626941190135426080413050238476274067274828804842088374735869441575715655249391165234160731483942157131530715959916000710092850431405748770535504120922901767510046141294723696178774297731053373663316888529617339154265012610711614201855219407376505056371735115999188775464991506759023936822968970197170094534963001858452848752946047315602269430857842389784708114201092961611150343223529338488191664321210330573258738202687268269845224173158617198383208899732715078921422054681954401720811147206016987987160397584915278913631239189325026874206592667826102110677107664171330883678118458278494097122157213976584307025694785396836909890654182754669717800372031729825793600814138921699956802355411956199520317165693003845251458255577940190720513908275177520535305990940898124373409580682630449913309279602093894836807360502909074994113343356721726920861240618409795940430712640678063868969266081832153097062656988472479207559354225035211816928502549724223527279051806441739344979140277665953039541971121601946510716349739638257149981581830796146372006643855388898255125663530749747712215856510824445193125714724390857291624986478535868570498820762868996787282889401078886335330911796418012757190714296694364643111013044610523401586476791692600466539903348157811343467495748078403253184605241595088017890446024612330510098802145360050590203531372764642101477904197117511259391263581605255233452306003367614299304336065910350595729107091584297255586903745936491022637001212462034098440478423234028998122413575266762930751196378343283243190053007030009192438067509092180971851350607714049392060268767353945759659758192476991134632144633939558426355220440726802032078122350731791977684317198181151243202000753266163345568676287546604504522503703253907150522434244606550913026612676579639851902205546694283987135727074397252503529083044649296726303992383438228230322207127919103348035117575505004521910295933635583319105516423831559972218804468262824063817689907881678658743179909182824882643929340743975291492428331875541566170833938337565686505933612375077160261503696227577621778673732346218116872147429494569576032682791650858968589782904448177362884051580522174836653761058176820855800405109421047702914628194487014095810447833548506872554195981110589887121715017619238372734504161456945924592671420592911048070093969805520597575374737522903979472899796472177273558901898679193121629183291347092099719680046027115896037523715721037099344592418037859506419536994101340823039327729510574385572034797941887455788078252749889388543534814596510349824033731264660335304386340918967252163788626716066976940849691813725302468359624082482588842929933677110099371671692661185888008918584362975286503816925814231930460491084757743147489616944919626688774280209054022026480690091207766445711470987561818893332733907994170373188400735547460402468382969912002698286609134174265316976835969751361330776531913955650197034488132837107621311947887702874205580109550852942092664449682041146680190397920737935082949777531069730657461544901952599220210089760903329983190968170674688602762483605979959363387785755469081440961741515706322242829310077175341973688551769747070196841380654725514725203673540028585283609209578471372243148800346399862846877553508237351871373015107972984376756707671974714644421343557470342249811065366750164596777529921860365474539038836114679902835006951625218626269910750089983090482172774234591981858759362491695789532561458861382810163124301514674661101556379367609629215738479054029596505648115026527776575026679189863077545886592726522465943976314551994097453674976289434593764764289485769448770999288132481652393671316220472419490569106662427729667021043832311382923605255178905864177796749142854998082489759808051457365168763585417438503237721440201776440829092618763349915325292736555660838676950123335276417470682332178209270366819472443404581464938379269320797914948342984539365536296529744683174190277625959800830521054465242596363816793306868874109153307860444810064125522733437817743968174877290336744779519087120765603731105605404654173461856183255157416504100924137107331370800804185142548113035942669349133712694581064622426216485500637167553004040936980584092826333644971583217170431848312053799114372486667080766914221229752447525101901313380963641305855528561804964573640422544508621007353834411177519332858217255245531944260169905611650589422902140694546517844373407460752192670008118391165506196371420246917360831373946759260488887381202444217401938790276531933404676625309469434331466941794263910865135402803692590917460388407757402158988569226273158440822255289074232958742946808830329563440672599014880683382514327605247165309533168595388457319284739204726379153062708405981261554522201942810337362516414779340979020352414477844724629413015149682329378308864890619659490236181913628367395125429498055369400396305837564786864894460578579921648937952408581895303923534595158075605348076941935399291568804514278406862706053083144768470179584334898829421167512643724781230004366120949369821836312375450281529879759833958561372092503378008361149356963052022916932065452319420939785353190890346509602853366097728063414068902494371283884675926761273973681207572588698163692876140645069311004342000093855534844858803034503893097547166808039533637866073975791094920168620053355630720915065111522916931929551030493126376809621031329798454994528322060487861647148664750100079873592220132901326160761658490255059430202489526218169977519977186156201663420662502306354427946466185346774157461567265294741117660645610419015119070928875788080672942387161637089725735575510094678354118190287614515561771160739786824834512383426692037868794896885068347739327404409984179015885587588065952185970335031863203514614328841828632298259960049315137955437457644089064288260631122455554055035119205322759884878944475353582292964861853437838811209100218672998782886081575079937875938664902997569828460291374275216091025212771073180638308830527884920070078786951097073208722892348100411312992302860648274324760577535768116452688999719723617152030257707900034074192381714653669897305436748259391014798958056879508231032258043244818776138183282347453546682080106565674966269302405514357102571903189113087955717811755282144768302696919089087019653496302709890298819739020314893769678380926098165607674793539676436334044437246210236713132677229250055771421156557730333570061076421599259054033084474046450991261306744887138408045505034888152318573783141052360576476544538684777817427824168023819422893092927823486102233069085325416634712679305426730707263112022285615526417497819041929500481202819016511159380191959389634027381089327397322759608856698933169713018555958169990509540509902012381820317373432606653667910856904951249250353867581547168221792398533578224427293915320707508360316689929507784516583387152607414912108214535502130006135633838780084346849487279573372953994260417944633086768322962294059198514868081237585700615304293795901922983069438857169619999551439157035964572843472230798800283015010454211955342806935562398478109637783105213734269783680495399989476975659088593928117623715960604517862484751328847186065487966295800185241170548470092024678090519912380829960077436919720107552502145651868658299464826794637558011228804119340285660631746862791558395644801522088545606741478013032322140669655749684087103993376122812429319864868184474689303170111016991970852842733399183105012965269836899443146006278045197876787698066751646484554100195543463578527560952181253119088169479733868114395695010524415682736941085494672596506200609165581733559409271760900313650346797433044288794692700892809114833597114809506757018750864667520765311080169298346495535955058286822238054838124957290169569210775361923098883021103844315951039225403627475600492958949456602736057265734487634155796810399389130448693968254702323474578599748008063380086180514581326542754408220292962213233294988015484360468849982460121920673595357761777606214793398696292831116668995760664906313173585944054941625147300591968078435438117676987667421036847739386604830658628334900059558545503369932315178972614568693374419989019515119939663400324525839972701872339406084003990393813561949297421774924018561510846933821645746428891778507225781332526778016980413018117841774030044713942607756954261584952434730845071369055927405565096224756237924600021754512303912582566628109198916051671636382108264096946126083795819683650345204339737297469477575020848658907370948486991487406709230470127591993741569295622109571106540763970017025077945532871250052736451076781519499927071676656112920538241882895445672055885486469559367095660122333180945083809785218996901916443654357138907644586708262221208483900476521879921449897293239674997208085423912225617036323467941366944001146253685853914983542919461600751324597371213330768830652325161647046402798128986924104299224249535468826315509881290841749247773435308144040727920738181666274410931743158856291850811015117834370995499135402753620070202367317288963886960307886348473771775123906902631926594815708363476076429366107209836877395623712048165366490860201074801622564301072385215708640952485081981762055125885666298678567783613414430836325575107394409177250867120145833834662529526637112228734519183430413832664718200033750188583319412381953495812840648363154623378622057262322575979293660106340272321541868814062790149709702966937365585050645930624346698188152929117509775176051183706270630485552350860639679784247123682181623361925371985770157986363897606001912699730611575966757571288559165038528347701750213728496652542008114257226829901923346048183562386021336255208556434009854832798311754391275088010685154774447924815019211855046255267924254331655353066098159779101106316254545346814203093999934868024680925684622609908216964941165112223382329888225262323631335665457072558161677133713263635555615510535173269432692581800974064089203239403550503716196013509533268797590093357041723088951980932907859682014933382696030557948466821016602502244997162036971591828036790714714191868173460113307042836920397186646624122666762270504752803272097781578366616392043796277273280776019928775115559986293583346584278093499327351824088962740994983164709777329483566584262441241369336694336520900568709403361171420701666114310339771807337957562461074797142531879240183832114776530612427039897120301737564926457655821982352892715728888663077131809154810528473142888317274888236915854934668489988173881926944609318703000130051534269671406179010416847054953437186102891472401176753247535477878111599124947824497824617247291113655903201323635824020481994000896176090397089027944048144140524703286379591932923482802380895067260520345941776190099654263791794026842312968323616392796957114003672490255485520139802238715157428408734046924597362005510921928989900777415769805918677526971677408206040345619001113077728504103957075610395141227392132585721791585753732162526113442175768553350987086191167938067524438522338346287380586620320453447708153575438153127776751913351502202718949863662501776783470264118281423833314610594524231916235407272327341636043574301358140842315002245983597305270734866081992524804842208379000991270217683814790657586217875717644654377875615635709854075954756680202465977787729675977253831813558569004833169644760359151533007955651339336127124275605301092998982142783305657976108002172388817711664321269175071241119900148085347341505195848359987313642250623356804142129425755916795150982845251104495908456008191362433614512810579873573775070380270789900472716388480298206280856508055125374724182963640613028580715033220045445888143437161856448923429914933564301289242934754836264984502263115707360004678315126323849268368896225836445937192570370175472053182358756112633245934243763131209282528839079732118769797235962879214824983785085778271718109753422496909475368768816799258319313770181208887266046044553399721091490862523616002264972137976052596093518222252389919824646907530759249741871559553387146973706201037066897181933249028518089936298940820488430458912775855028230213382402888829001462273028670184675708942572140460636926190619314097565007094164224828700977317217106718539765476136987559512019056464516275856154776374107727890418831202389049767439688587822141116469565125834317021201474593951994773197022967379468340668758311824440369045548293723347517374808929106551286163365129124128920777762702771213621765217597841946800472802307996020213641394606936957245802292697736026664508490720000793863607255494259604174283510274966536766230522371509325144482701187717426624740553424278266030997733977871741017669995552984734170257827369306436827335188538444415149645204579228446467860337498117425364376261656737064674219996802771621477930299900135337173108848854526154234643668644033253377453931852303354313802928943437568986442812523741511546373762726663109574076687202329941828584331700891736294726541143700044594119714116046375061868472617334318307984216469411993946473300033897313860571420383493097213559334327620584389546613366787819613043008354929802278618741898309047536768706628883371643544353376696536588917112599856491393787335422630454975801344727369765869102409372954787726051555076440988557739460640739035481185882596037375221483574348814125815671785410435603679480210965886669274065595766213078043236563558539775593281355428552912609986217132398715814000086317975950128975171388861305974625755399443829812922475317450941949801982228886600140980449665911018988883806061419750326518892317865883321878907066031713029506107310937854857515971001736839444005300387522556967093940711397026469021295167582964082370174037743367155811570667082629003743478323474519109886076246148735240879539353055815476998444746647739785265529909592192694344828389493604657801263921454715206710252880386962136369136209041462935368429083081501485687054887892172816257708606142018598255315564995883484457795400327171227757006241372682923998407890005525276001267283923158686684497818642836592911237005862411763184588931528078081303030493513724285427787959592601425729731911538229973533471130205016807753637373352809525660956279057905590286151869738513044427545226656790405715115119653705789646096652810899809684776706263586337249385004147392618828357808378316598665443357325183571429263303477428653549515165676954566810772266363167334457211031383843731095129233242054258947792009034198263943148439008777047459168534845714946900935363821687053402101638238633106187972635900083369850531823185015020516061014466462983616321361192685707853405971945925956919617190167055281786539424219869758077319635248979963855305117628419330732898228111109007007140227199738497167912852367782371247647440336710123598634842266314445502080694617809079794377262616770098543016039005234733800549778737112233630979968203508208743173207843062252186868116980384260954242758420265596975817192452770040447323590820092726633171337654143112610062070676975057073176169524519904333140540334488747923806333995384300460061154402979243196449720793154581321796843445791894316356909876564163729984531662874616046583730865902449414024451158354078718467424222710083027671056827555349985731692415638880584676803882381496527297162465705713511456440355473870774167569635959177112963723632277699541089439100684584948172210904551957994931044662705593968305649946348086998642104734026396372958269374923874151236515577387469847126002897685443460286683837438880378269516816749520008552851036109267120275394625528616849710607108910307782447026425729148872136308642532415297128304882794191963325811397014650914878562187814291019916603205719404028405488050318333661068341216078966572362983634610326618182402220951586102272770542433152839881893820158942082299018416419365294218344959728954308671171517442795482690190438351731630109777971047952387255868186460466501902165146428211974954617791813469928524279455131763200417645296417244866696806498925288800233240007337016035091901411199153423817557900572991044027186634052252259963624082174616543190435372689788675470331532506889617082848392846257679523327543811321476152405612675282035634122410051348772298391490467170406274546590901433326864367164494111968961584559068549482654597960286088570977290861503973810344983270403499122763547911171574794254726389846666651736962514189648744339277242578403395148187064989645479660631397173789137458320242905826959665137737198876562505891932198786318290189516715785139279871579346481027840783100445706022844394934539494369238681279545443598787526189391113472907364842769094085006839130859474000008593342479832961522404944658222553067814252733269038292338821403320901532729980898054315799863408714508328692540623750206117715954792092311733180388038144344336390446057089811435412035797671406650344695591042014975476646746132256940000848233341252251445754540353146246115640009335128264970203609453642321423937496735917377857917307293858833671913858050274699317240189177883391560871422128997009468786894670021984298420108162127836316124623254775287841679141551713633435127928012733778107260463000330325274633620231166101381775789532211743840336168372411845765075892135421795797033794735535916487772491781727081935625060940395498552318638658347017940843558108329378063271461689216832433536154793355543676116331983683522953167648517080190441762965971426710277182988296668433376469869475348855207407665160310833755389644625606274703567775228883567666479504212502295933082007160557220707984316361026131467638673094671903842210156597033058696459431062802717499418887425697073981165916392695954293546344593796719898681787730460528631662610774882399243162856445193071853718293887468338181554018024451123757869210305412775459963411476525390665766771502946078985213723423460964935936226594702262515138453125754728703980171220017652304762630041333965874820059573615604065160619444508209995896433208987126038416713528278768136871467218372248605927134994337924394332861508954683356971715655197256665858104706693386992629340253710100242854078763366154384266880740142855197371824343597519058574794439693793193362914458339054646756021411477839684283680426723960548197315025770738130904093868934360370979929460617723827777006454428796023231469006665330241651348601647326606953700448902662795430098863326768211841987801268545635584515145343143056904952366731754157989320246709602330687253253090267816732425461745127935007157489755416317625624281731448768099617563395492407871331325387796668007686070084803240573024163638720956073452809729716763528597423244709884325614199019731058983538627046196722397123926950211202475924078480770356084006209948789458318327547676638984236916175193271061804261751674936458422905658642397942387377820113599114148287525232299540312961069426372158848432891430826875447601247257512275585027429021457348599395093168329885302134675362149803272524365230301293477130970053173683588773474242376838802597086574780800328824679182647551884870142714781625662275606748558216377332872070385769967426162844032855757167200055929612226467008019224532875282906974341127164397621120756463636973904176632260445203374131926796070264471398401660316486305602217488308115471703746364840143664451825720138900373594859290359793902871580675694850061765114970894784696193982938249639193531972009510486979186607704784499681944150935062092556146296684832945229918891547624791349676810099068741094523634971778462732748334217689783669300674701178686966897602286480036953751650125195022552391055510896708797573316885115669020722512148672622639277157637641834333623502748325729946027704514680071970948893964172149037751227241037546668378153202099332367007879761975680183751707373490894221649625338678032352075759514386241522911296583273392375541551119975937351770849268431604967304442691899819374775370143696462521179092985678527870059011924039875036600277327754558697484279398533559257376603036787659933026233249977058538822945025062108523089670949048815524168410995432392154424589068136731137013949159278197448081433332075305086179426401445063521380345038378674037496544772576627228848196687323605174155874072093826443494010369092207902763754295443251321969246807579688406246093421488540877176495088370533136905841443220925084396714091816943361411238937983064885852153922511594781135433502380305495536878126802470684081604652086185936294182219907040389912539089424471770546483411280839094916162435119532163925954704656262809337325443812615278174136040039979800365709905391933744665552243109295505372817144474479703119706267329415667601249080340285470963271733662428015939971285791519501270103221982498265552503182965683907501968033191744731005990019631180012666961966792827545034233670524998013254867984645505392083344723235733294654873654279893295018660857440657733684444320146125000586222692421369279799254087061923477795776405680178909055509013611875154375394322716928597098542614425452540097604072505238753651176103457580722574421026985297033648514147347006139057661215085382260469202424025323503077375270028519911916028039674909318157580192618956222547550096990385612669287178640830071231414639122915120882165901767819927145015826038977887617908719824264108246630660822471248522911013472644982518757620205569957034925432675139348485045061644027609163737725901708055530120784776406712154665189842947800496957886280943800181894385659574760310702013506501985433395673248513945774464767955597353656810304555564820810099688262623568597677761577682496014148436922717102598928517343929395731591806997927770107068640854662646453890885971707374085714070751833955230151938229623445464699805016109569393146367611876004267744962664395144094380120151770247088162490453984674660979886248756722048273618593205266898339492826124927000265741206755272996580144922214438604721410030728941009374962927266774245808038895380382248145779236785747895663633787790572245934281986816963932331801355279378655696964707847029510410582955299241698604896560195227003757687213764220535456230444492243622668006684729745876341690744031402790859634276810892923450765554595953936710870876508704880841880114844629760738135005439591839444766496463313598996277418552303333327614392670957682080029204901648610216471052123875562974308533769219698920414553329214302378714889809890908081895055329932416399063970863720616673759962709585404766674127502684775127471136075848256205924778210212752506453186101753465568468116190664027233663997381564670257778050380493870275817108015304513833406903338419964151268526215503724856572269412928473344426680157980921209699291556279066914064275498054895963815880705351282748573397779497258957069943165645933907028735881581643848977424890971560827299485919564094739532401036038453821605210843065632619145491999960623835028871527983578268414767909709925520712891884865152554253199415340088038741058934594817458034911494467041938146827644502590919668628317214225012878953699631776735158764790543408889269830613307863530078486420316616880302945577384972195249747850733799927250262396404901678842359468740035460949696655997683538325087431217655373452676373319272841038505076613409603015294522716411765726513375094315403734477987650686234563023585565485372847506123374580799526589487714562175250174607898574313997810919504653809860992319105631877611751169490202267735285467859122331181786558322586397568912720842493352385789862726066884900367065018599919480025574356034725704286753950689045641258721236638004648904224824477203388635734308460667198411438911429595612004156906250483818759111639911385007157508925845874549726455342762125870300791109932013245703824570310559505021584184722208635763668079244250492970082950595504711663962632374759738226173197540893157904588087679082648707352284538716512646396704937853828329457760524995064321375561684301871662037694578258817058810573923216312577846758980299613021038498010036109711063827897878250726609025972154717245982205349489760474246884128018642429484787094577912519799849004553395907409918714613237441787723411346340235797469125242688491689632645308403168976314480183372887103897430654012142453121007574371461935471589918169065231169266350338962689656244734883190796415998674984236780475705174485277038693418176617524958513931311785771280301059600833306364547459788202931097322767694992205462309030858329582541911516963899029603651294918262580852078838892777661657023651303242858898455571928391265238023545911320457647007305093203764208020642445981301582296715516033908511012375192062593543244819919731166022069083592538278149857920386101769328801813437005484663719780650796301914538009498119958942202674570786230913664475786590689294125857663072816292854977698257655239477542932401947620909504883494504396527400108671308865734769448499508561935597796974685740438641402427623585683567472278162274656554470128323677482691997427167315951879135439549225375056535644894374310776448958728868096161370885689116405319123584071720329127760364599383923837843000523895038019798370489488693571527131787154021157618453924127330033746648713418811431973894026804528224946852938639815412104967980559736947466357753475549545541638216757590855738630606378575986495951865509711488177323645305849310487018576595671093977758427719695527786106709563427962805874819036161244637331265533603628854505044535106241167740275685672859838114470490087510686749907315195349018160680472000731718391300033784262519513957374124537229086588783274927316532672081651185264184631560176973496511946577443800435160094466569322331208551516062875825340043428818105573082811831911479915820563116326642065675744482717206068129250670254981920756182359455498908244128377726338718664187499213643619700569939289136793121705466388254415479924409268467473756891409574735035347536476207336357127246345837079946926745119823029503841156911969988740077633537895713871469781688417976315539955296804244655425249782563829895500910174103038992315026036003042083070156997409161949212849496984389793345628199641998356539309864090618349987239995406993958649149616829902219259878426376464077182197172163470475631312835678809665087178556020186563006076936861969799327976879490781550304477189635265132427008677309518482385205871277985036475736479325932432780316043967336339828071510619845198142476658257174170101508585844166512417895567537112711231137917118554962221692060756481944621466051220167317550572698605851197509498998284138205346831304555703989129276599222002873349078778544538472949259640150674124738457555600901627393706988312883723194370953141954109626534195601005071399411331746747407774587974992660711317777573776640669723247122359794445748782387470977118973785231734959186745050322311965480428718129071922864221098374315741013872609767433914941164808534020822051697652773021356252594339423884256752913338073370916642223220462337785450808027131771110019765910745885323232618185084694318237648533403143609423291335451647778515896496289229289449997838481753961535675808109306011872867041807778287613184863968580337191118420984614562531332958839380474191992739594324546430198644611964773449244849124077460237380577317958609572474623131108064758389427317309115527839853823106048172000319631062622155611093052397792317338589719952166768101237810716106427929565795921495540908901274348337545185133477928606821131516899835668715283669852577843479599254536293964024628357410309520021579012574718163137439847292632111678104657861952955978664884733196818699490608827893881881826678936085636738064034998260124179591969754620645401562911181413979182880658865025344700040779793198597788434439911512044327603976202655154451579459316046715741198385736331621178146561279999690377400854681831834285276404290679772060787573430961056161444566380820589411093755548939480131483867338001593585579398735040837742518688317210589944877678755862733548903624149156297628196795274657705101413857062273532649185348161189256882572276422524971212676926939606408191610456567187885343137467737974066312478626590941271721959822673941388784326473960599441727808077228272917427440787231611312883842558917145505419170082400835677673170758692389123916171384591628266492461286225346468783745820336860331913769023131212147180582433439045200069406126260373660822118680274639547889517448195527398731300348545743695224641458885138289562593646834265957984157583552961960124653984338768162918124896790498100425623017718273261657017690499729158375112307610908796849576694969461278872732065234148618733929279787527100807361048090898295169580474436357902255415285491233141640581386926638535233131123704646111036402004507007702980171044125104860274618115440714623084692848051118636739014414378145451958119516605868484257937239177979169894134012132093459623067714703667220633323874475884917384688296552008838452151369063064910913677088751085941506479970641665854036081852449187284331922137084172835260262626898659131537727415843133734736796575673724502390925178510789507724671070974160644532285634226542369014685828730939540844715987960877032399633818086663611899476570597320964084723475672975243720808939393085100976771747520002493637478126484736796771272514406596017466146409426439639835161244381539106704933732420662402538880607129532894708192949623398870513561643623064865916096614723748406233956538306822102035957451314976342941256403578992707418341944242511379830887844477729281789908686727037636839822407815115515211226095019669255811198421699964927556152591324281106080104382200372570380056412172942429846281443760251351396411900733199320682631623939142039853715782115514232842577698711383335510869630763785986838495862133454804700266081042417468037898261960296014655070751953327615254006443888075397902230249219900490103666035686446825030769760110087807905798159910837259486227928757778584725147694719269546621704553416867628344615142859296882387683083837717856638691836508767771581374066393743897534068670360156385796839602966660939784307306868959000327109761762518828604222872291485943675621200015812027872150971937831928298418536690839417290033888555973898075957050687146724003576099680429081555799536822365956016433386982212113868693934476448807047519139386784238836428677226747352324114482187875584377338896916429583106303739944741036640422993681310941125712006140400973647386115829774186518496954053617476141778952957745803216984443215699463201978812987400490248384137015969053193398718182950212484334282895434684125343059958632779351335067620906519299895562817148352677192838508270331234778900726798974727598285270000650795878063905944037020248103779456351214292706191552477810689870321168478067822557650468808462377761925780442415447422830522997351114378062884833021880080681876954814975591474558793047716078841736117811538915959142906174942885946558666646821188942151534738093142880283911217288160086161355975372584184524874839693155492271969012644921366711111101822352910287052374936825855665557030113214713680622607798505010525632736080316874580555065137658293117533273271738247844151761805326871094962996358639265111451837934813858046601258174292610106773816108543033490007136909326349282844138514253761568879330731312697072870358475513904338921747295269300557489697502045377779262443933561297509900389876380685234524147605142988515490013713178551884989569265115165845438007290054544029620341806819962634869232640692479021957129271852983935121371641316688292747519905128029659958732050063703159076328214988896767345367774978302396057072834671578527292590666458151772848709255009462240122790288174932568275933295073047980590574484972964112833769191037877947537369248164831472787605454479482615003726387657930530941611603775566531338857083289227714565278671099343306045145616415021542930409268275147101408288466847910348297820032414596000087278944969598182435742295648953438851875473927973421221247909191479263072721125738923345387676819343137578025252740866364573817212123731722544224648662712022461258606666298669723775283213873689034517852573888752627736753141837268813366774346939404344553763779293368751736731546263514841763653201193388910892716249096841606475557479079001302176380459575642993532565288767730536798248279535450210915070322736119690910906903382702494920972154041819097223910147626892884490627243417486633532767565034153134144192273633595288220232929613451993314294196837842058026146813420837279563783732089597729332491495721159329828869367641433593644977588556375187721232228213118815459407912598305555142931586728208039831345761779446682398166416225195774689554511067473941267019687258183687984084557381104639059876436455721370154892614774014032702521253716882773768857024031431245869567811061721415636524532485058503153677447253537879659434628739313034292902278188829666374183164144090760293037319362628581740740493937375820089093124801472894409536199352893664607546595314411868584503784937342874220115604384031940015290988643841125428197222286531918896575836710889693012134367426158771259233936379980695617899425624183097045014695122968254397513306473080906313713978260045835343702704099481060550970935048827605010220941151887064591026901950655980300536367992441280341587184535711553876332045470365860797980025879284309285805215421399584585353327990628646832687614293221784252827657014818201020995429459536640836191516128800726739404506682500188315880407394221705525945286579684884862797626989071964614667519901890128813846688437484409702790924509579028151164850115584052959237060913143202461330797514240946484341064488704706354385713347180650245411832702903255106513869579931704460623596618014676899999815883636349768032960662234679442391311731811204736157323089886440673901475016077246566135428767331946545339314343765707001249832068366502299323282407636502747101432326211963777368915466769302485486152164148869796144146939707227388097019480108342483592470627635577487591791073710773675520624295693449563294929850473606030526317113587435533083036314256041337057147120829451940223932641600610959926209188310348606175085615695649081796321812258453660143310821112872235221212606422037936316943927230354240022319643973743739430361360896941317967697237924404638410722434071095329863465315789629014968569257194279359898364759453410152835406637529372612908932067139871460123633881564672636911224314414891339458769731919386133946486641304004273299251832680776177084448231300093331486635308641514000246278451384637738873808661852684534684589753282643906005890365528109766386853232842704582733613623861009471682532568454048168773417429337579741761716108357659083522541583112257139028636866013415531613075520097451801725821768464694963406776455216369189158891179201329965619705094563794782323458667400783778096444951508672649701054632066189690920404978339456635478333907039683948194304185762752998915905908539612569127082141631114206866732331057761527881278940051777733491433973480170564600894842006045247999308865759495398473369681105967318801215743723473888216897624536616694102364408176072878335273482284794358083271381735624129627404157452423759348345253637646636846580209690862601587982125186100097865524652990372347890316040652976421265344762471748208812072652248382552210581018614969601461166516774675170297911473452338043020766781614420179123214596667341725059092821295458719416078083941131983392439499337704292472052308485231423546443228532907838486867838842920864747722179222757203672722568597613244234264953418343751866484738229901167896574571265062739353249815999168527631288491931765797575533579774828620101427502332504529810578507021449789174895268339308463872491435664696628808248624552280630169814449895582418959543474397677726290744628689071824652209173965793564194749435419882638529118030266779534681213951238100815455891633474538050768006612167095207796350470927603873127995824742699699243939400144553286527093080168934526727193339984055345245691924063728155747732486478396038658278195318334048396523964238465275520136563871886022509209559127889453278787936308909508105769091031683826893903533560164188082156786070941116191623491724262794558356821714838138403534393792050176153284829070991663335005446906897861213110901303927317843116476956742756341966958697681184346343311817573705756963149133770433824913266205861608610616750070901303235431005781881425492601121410799483947905181728944908106075684291852511721385486061238820790529067934603252249952154324582396425517366997400018256045202597363969847084553245868366757294228567139744453894888570495796122987655419793292362054337226311715334265777971235246798996378752386614030970381132083490848272309572060164243729924618461733372229288583184027034398626133780717135821302374161738559207259400160070421144782988741274809385965461570923016595336580932105799217865118480561979270418954612588413278589015305454386073205374204498760277856791640362617681554483429978022623781382902463837859767501512982108817449038627771439370244122667617797130943009967270260935286704303634786852385149254360032507145138379817142274450667875889163264719712504310736113092574361087658006859196354639409780984072007164894978463458132396711980684059377249578162029087174698970182483000531123423967460703482574280404251496793005143838737152002753317819349624192744708263541084019510407674089738791125304628279687310550524726732685189098397460069422520316823936293162111231053858865260401154247121928426571480223840893188488419726068977393096158477046111334973647431368204639297195819254729052685430076624391072359779810220932617778866329013611904721829246854341972540792162674057849429331677677186171765585744074682311932868607095359684354870091358753175377234290591257642441994298240483141208319847003920815760562015043793812434239234589460549468364899632447888243591429547031823818946047039250179699443370256861591647224346596070343351218705223655330086963742909331736522341610618010727039337690955679106109267748793311365934701192507205542510652660073350407641605172332571483342827385339731562399962685365067951644449079115123185990793474536700339276735145560656443526772051161752508308447214434076392872752719675062719375952853734654267574122869316374235203061255415664985534599201222081234683257621369658958188049497731589884370825842407619252459764063868829573715411096092036970485292701871869064038592143156461560859012579704512614369896929242770914725202828307709778979985611676267194753702244119350937137322596968162530744638351254037225231573343700635083630560362186875861815323770143842387810538547574959714242263105515405794294321848160611899309203679678893181740703661496156590079130806393672224367965047518367122048351003115845086882159418269308426153434949956166557185745884328844622474993465626738714222203207094260615337371944876762947225655823109188557067734970495984550462572543578921704660499670424353609608963195977861889879873695885270953698848522661906163038061655667366365138939123525149923439898297935738247200396317558923444314575650975529887754131061712455757191466536036099846901115701609976078070167790632102209987784424826806084466462552587180450054731683188628295131530769937116168668574735417015465235876314893195177417395735315147050276244101552051404663904754614065864716126471926667561884876625804891061792969060491802504439461090917040639283837653922717952338967633666161170713435193611549302930173954961875847452112820768226936991061706150391496359323445204376979020612400633618209494953641866375530660532896445498384136094050112339038925635386100379001946528439590025661102024598208220590251195925569770647021128610628032318626359557748637603425452097005529631619631410194207512232595563192792805127570105296714188359792569847417545588841390106025141001814399595705069808203397344730823626424567430779413793949129027215869677956847591266824292789302354131626944820613799058435845408338419458400286869406152300353160022460574716967080222480812198703780345770063095865550582677741427727681575303543736470671914779216039264947826935142550127257336176386798813194449868537923755176313904542415939076940399252727859826168602076358328936380035173993621747873731714450937760999589869757615603653976946351719420930233122217242728158596529409600446055940059741033876725482948907089305758727809602218886947087021162389685353638418940379373622888694515170928458698448328558640655804650969720646591491788683259506651268440914977858724386990672476509024936879416915129430055145435112667035972025502231228007307924332633112155563913646377880332964004685938865807974617011091787751360506128594790137551207261125597736976295016587391063370165592495037523912453162661755293713138671618918693467827812649649272241251335321890197973700538855000585280229307266333584655153874204532588732443601749252431280438577769559086675411419837757419247025456882681646427192338590268812720482548144869327434713457241359671520067651143006987503504160571998333087324146108322842375792388672256330328559434901829585410887489162086120200657343810650234986402650692393579889811201421579376560024371056272287458691381442933028016702554544261569585447351883987013675636117387230012329213128117355715874050389465811576079444702060593254171555203322044054474373703295985638375390141248342282414724201528133254451597714423489575316128417454288438867274872451574564265058107109688857890752582252600672429283446338735435645408600616067371071481455967362349244128717116984400492509973875369784676276350847754946113942859575489307810563018780773707582940919623305572107179005534270326736594794397043028563965337070618787035265055076786555604117109988813942118883333592511791262627230187592365765018533217749416646799091460709028573891832660240575638830367984382306003662458354672175419638576644134555384258459073596780813452964062603785443794606551456802999221838036571845557595039714028467627609200887553499558538750342836213023152801614943284436340110194822669686557455634060243692802296213791226422053733260346927097631405542095650327867190489059942881724572013556669021886461459179463686831199864656287861862453948789289324497267775973802023572594725292079474709418126368389242620368610480495229212173614955702950910123491547685630669937475578078565739560454878421003100302309948870397441051864065594411454029909038491314929674766355810397508787812524163449133247945999988667309862441448730947439129099664833542176861890582672415228326081575003164476928258576547573670540883907545867355081324083392723337050239630531551654438204639117715198439586944263801704751002889665471523117797020547651742389910319751256912013537767065542681272372028148259749982684365187619715872271236870589012296545875856805405785193744239869115077495530519509191583583084773054195366486877581541827909663386109694733099148644031036969997485727664413979641011734659587939600765609973491278252706876923750834431249893767487330374490555485046090386448545402196378219206251622312238732447948983659282172242927688702548265723504115724261466048106832802993705705879227907540508552420633445105998794822430124156828945845695547371184037327510970123448669744084683444285120137968962129543395484817573289285356189925250129585402453994712117159131661162965095181901871005617952521662397800333566240071278608690523593131109704311307132158184238709997807075007826955384073632499512884210567234661375377365172741568280383114013379973854420203370202618053861272106311752550633543328910831961063320687942271569448249473733665128191184006024889268642593474515984227974628831098170626580580046807424781414361456644348288557156121821204354525770733420825647994485265954101562662736160323276003425987393920466341091355805772694514253739278072166343773613867402328980188299447718730906581695744318059308659179952745404870904021339600833127972883649195858147517695431433192592859247745284560967258957920421976987038419268240525055948122116846499395707898221733154634104345717113759915800445334067565578564283931975869465885056854231500773490438259814809104140588778574064202461339854593507760370074004818014358817077235968326782478185922375690937787807617645712485065872867626688840365484917236690215925875861869510827594065888004619842399038226857187755040942702744429064398192592251100762251077301671319810695310671395352058323832473787068598556891987805530636455784643366235119745075574455255107672408759375428427484449974638963036888697067601041049207001493774240963883912436582728767383095118727620294319163215757490236453396902195406718125126841896611966676499754742805178200625541800748532769680955816536845031232712055839884661625998698754381685347552445644504016949076997212707289103547409283722298583562495439269659353724323393698347845316488220617849960793415506480546843829538521762869157897543880405699020002058954118934669014297785783616026439668251036067064083414913655062832274380010296328087512325267076416804954019386615179503541301459038671088029491491486888923133274631729347986458546264179309407543710149479911833797418812047381805269868819762371839675030612234455839777282172367707211333745126092255543920445334630448992998466243362133363146650900954716449556299850627473437575502923154667783624766502705195241749504585962786151023542455581824640127392865550540340630023159595312933352306235233808127628115065414084224782050930126653258725056776119876834600174332025207719108371253701630733989628170928928853498196256096585730790105046778479621860699141882264582577204761133296554096347526100722730421544883903390606686218314038505963240912697002005299397198861182031453843867153933996775789297380286885915522224151569643785073907522546184067087653721857879527116585318248520699510597058825295149297947799225462458292073434019340883931605622170308301802727264527378929909619136710835534983658872449613801815225707641581651636853166268140558132741365798998986803504225681313005343394828153230470822459847162952595695440918050670695410456636109267276581674846131129730128552939165929902860848098975104861391814095599448231283530752781002289537028068833112116409789592747535720240129504986656006699439047498745067628664777037885340277392667001337569463726029329971552494519833596782177968846963463820220347624315116308750363612378613843204599965107344930347485716143300753841828854227164158085876717518902804695080336921608335991826763021659165821706050445404377487857997532263716676744487911261312749906105910982357359703649632916048102833000898956876609209277547786660456024265391293084196095877755110160773947723869323196732371594964751493108848046543347396645112972200508065272334635784458688049767095246084808791919524715082477431146034003354620458356195664760168385621293646919424099910336672366442810408882045245700084860514668396306817079992455614751091804457258958138325930755054297607464883796032827358841204371805780272683595245973655282673028271860221150364154339805544908134786910895474378163056878884121816312114208116902207536608346671090686091349976214280668954306350515247078031861947249893330271072033171047810595198653328894497722131170732436380898409436944325766856207337486304231911193886892068718830923901715469189260579875848996350079089653189996354360352588673788401390814324552911689277773586048376480700602700949386022112441514542409594721961601502610592764273107107185040801142934498988877126962091762674715135132644510456440611017702157920545339135653498702938695253243615646539429558636988334301581346509246106176417310316001156789425150049233411336629518988016653844275965929182697938116135406991725653240065819108735800999934864769668853867289992581120829329117048455080191104407208003866534361855653877166023259655960956062397971383493007570965467644758798371485646715431757261582603545058448646340403323942270768457488080376105299335280244797718879968487668896492232352802513939474380631222914272566104247980404896115936480108091669532990873869154973862662621683776346808594984293431855215690127719198305894752675453936213902365961312037571877541907711084098490656364502267195879802902504658043890066896281883345872790417327032636171295979311240745319384230867623498875300152897736177524498139525420491055825095159036124067911954114483739236273532683880899383119047475268288636595211436879206287933803902180490717206086836720735260839596173981622514332578480872948377069852022513558579367169329886917915029200910135154444587485176055436539669885480371688907907978195785907480470868324140418830134059611063177956547104135329954657593017466048567154545306831399914517840497750866317421196631035481628718634419704718427942401122099355823574117985671979516704306286492163073504825443589801208328204896829471977020132301577808547841350419070688075175708870619510524281908949371843330020055028818957969656073919874051706935160232285567333668274035364959952816555441613408799339219055936898324850184871667556290614057932605960908208666371431836716428548161963982862405749658362192797897951354885127089649851983045076828332294131382617829577054211075322028782011411941007368662741298198156941448401066157595787051599725787797690170703251049690890465266257440355905427914417013656178717823154735471917331846071111017144899174914389349037804362847661818396199535750463412129932364237543781553758615368287123475710938676036767667092128047446270790237415823570542005245447079223131498084599635207618498108979923524564517406146076670609855980637984898892257589685455016521899692296106539047482316930276981481693575984672856158802464213246524373747699057111946322733091742613936495380734756006646961549154075999625850751129626310014814175864558566797705684982090260651149371390548678248737073615480265288849233171891401216193435280629662539213933903557514811803047361749851091682754165200620935480961597704027791780466470162933087571035575349073317126194520990058072523563153226755419329942293332138478591569839450213069457528181829792009536114620681979194653264989291676043923231064001333457878279480147285129879683618990977768767329000602679322501283661225172629681593900071028572527504671865170862269859866285844752953550520985896449118221591565916670179579968304395942936604887772919921792675210804988018919271026515152829501263005730767100286227443275884353342002037654199380538432889998751233954049921046800808543096800219613981507249298846099390558973687903288466902669301259934766393705100093368435473167219188515764890118801575646910258255262287245621294048149837823680807900276570543438520430399043839800447822364858063953474149644871590307822168624801670598919207624449454172407826041448252353500814090207558997283145769224683527430537297102032265556652323404686106936706116695452107705836370662312116622705175407900435011773678987430303496926616827655741413735004090059228413427518873216777066106704145904062660605917036838220089375312869277680109158047897054048689883624723164359114893318211468090966129736389287803688726488445321941537255999588634052559018220418085132974194762148615517668198729936881149916004740718128684002674322993940001357936094109443287924313660000060345440064503963563122393178212869997931486514513281902362684749342770978151830726058547540805247648548172018914479944107136545360096548108342771982678022087010237730894032430672753838795538384276910439944273667848678882359520413879279894358443611715929963995872345362596987709633346011347184226813474496957167331084781105431256791335174329233451437175695084705418983019661851682791877802480264774161210992094642441803827465094600065893746540802766992803102184444284469854613814146805196215072986818269982668217119251849172146617406252831972220952502939400533061789056335259566645063186271725593222470856038750339590970462506266164232302639248051727327199818034780353597671126900615506140568695428236076117907512023298397554148779776162710560876937332727257988641280757620661376799528286779525976492604778367095304361985403806174937319657082541151323956734854071400703501486396882524491710207320201700631388758064359003612033319722278024348324158681787344322291189275296929592958311862353957905593599191940446793184938092764807373176852659234588049054448065452119778236169361237561391473082353798351951060527148506764467839023678644707406190755583259188419915561919848479021379975018399438634463263189244166037707243191394578371548846653532981669461696827338927144310109641323179066667088335518388205294270366837859324642966789216501166547695053502943594357747521472819804110521204120655197444404910043607382955870760193532878852733232902845803385278790109563209661283131245517300177760008192345007907568171890126711907320427510548618359285955762573672675515089347079429416144826641004904422193850278946458659459978137963628126452212251715599293586813193683500463619714883671329986969634839954058551936357473184923162833226160371944401449060137308330621860573390034841115196532119527277921479627352492024208797995105781749330621937623104871024207677555578776269833561187013703710023467158471259605292778774294079328710929140486962826195886630521195389958944944277155014904807336136135333417593406452957706722292251716690950042728206631512897169856006622230322602353716557186015262114816844048916023342832885848999031683813598569364782447762915272740119971302065619992292590137084844439292696348190889327859004465713491367623047259980337446651581330451451291829407310304876019969892565322396276831082399742956335094655848196942554760068810586636705164450735494187506436725192532261689164349008233642098742097311297665284346412756491297747456377942296804992203823762395527647077899239983232659822816439756614918762485950684348002772781035814459647015432239841232710485563758739653278221731561156019302328179484796781140574916649637582389830807259512996167786109074380998640223592348914015558335920022302262048889684465466315484399064064836002623462046752874471234027398531949485380992105591369217191727904151715646237029094636142169217784890391657011739168831872534045581960879435498659378667617400826304838656015668701103508430058755915462496312184233006665806011044883116039415006029620292121563457611071814490420076955271037501287352908003599063692012867927321260959916466777538053332421675452058223390989441938270173246497969310852530418124193467973826837140319742567236045855536002202378303702740982918755634529398498187949705892667352767633252086399826687476626524796387631053292868106738390305895287408223238477046182406498840181163377818209294400456355166295569845279051295033737318981231391294981150853861128398380539246409596181740892947088354405423641332871662564138887296589942533988686405730909753619049198583290751537306518601240585448844718286303375170033363276080347367016370014106500520388570338455405588776563210364762867409547138626974882024242425155960009297447332037222255841823788623371752883155261062692641599180384414930640003914956060657743682158589879562523734458601183526588147711855155307146882803980604489511377702398770355723655660292861620719394072076038905997164185080753235033797595204153756982079707355211413578442699391043084657682955931187961240884558244413711919575951073229461298959613365195885219509483112578765977619903763132663805928121548481676866828925640037684958988467839608311040827521667172428315117236199400621600180161428480082484604505870403851706702151108008647394811052291769466545845618311952265046410836702822174405282295872668033572076340879516030079237449217928251255452370006346888027992451639843455104860535464426057472875477200196347781189130711539304943976538005987912673013247975811550337085843510233706518271229275605108007384254323401173045115563406401424063743587198527094706020878803136699686064580793045776779945735702956798873027770168120763356400576216929531683912376087861947968438249357469389635057838337834832303231389958348871274337298641071413123468286458236175803776871743394794548839919330869552873852575058555336387017031259429993114484534873850622491517750237704040051480166707160340508331509111092845741454480467344826477776951296687553482776151803680594957260364769265007686603761328509193515717308205323851681353673045644850278111425237660969222805947852183153976131702001772621130202700908716129759793383009113896216824863551679368462240314845247211544064583944391975313909426406689449980243801344971172605418448476794266542340600917899444483455301637509025637030889900940498495131471811397226508095704275905289779131320063705772611537059771195819277332686625347760008111090151775120085085742156482766126048018624071941087521442059167859836558255084375753019712579842949329535889542731603624034772092379314923682629157403627484957449368119941818422185857080457014734749282770074277483447103378358542839565228053033279365401889335061205993506082619014296203352053382894921599707334754038595610172354406783893809459096508138838377518767197187305150294590518460422431827677100963318092296782053862084014324079623686524723600678102581816186358454470816735163102085975025276473164891814616180199002901512542197193940661562753227046693638664327887556203616170270313949847926053711548637712710958678219981972644483982423566199357763589492568593201026231533076773961379417820865957734554672318140358702265128807390460979933764981553460917781508428907372870132871807348320247939401483983136236618620575544351743054359977746253490421377802301832720819190028424442461282430576227015743435481685624818023754375020842208235473646991246059850219963626466985090557359635891047595036717948325955653464444873783104424906398778863925485016584499442715634994327206931053477736265495336236684132754673732756414524114036390888575129542934036573328913522344131383194836625872383216654954128752442606184862779550833935688662587509543989688330592173755026454946968457652072207285753415889678218844762585229761097954596049120667105986670259361983794846742451705460835217359184991812374424223414079353323227603247017857361440206192593290967867637027751922235327544031847986048463355147663061316037333038707831223821315495647946865926419654261216270058752833672489412169198358538993447299440741186204829713984268315997370245454950208786930911488343160598956490882714550717301803622943950498055011296765721199592691202876135671254791803162306217118776222128212309812913228373622369530118822078635457421676663767245190668611780473039983270523623898919585867370721504479627378966818684253806676512441682866515131843183618474824036824206915011742589650195521638000999516607947665756949058789865883677032803574474018855925597903977850486580427787160851841083551704582644479134788993726690205610714406160127884813575959279577275944854986664921122974076743609232139679007293225969182805984379918963970836134714944123399693549626702039837299966104761824638667005500633610764338464434927988878058839300412068016101243917070912923513989118735226616455271318416651458892040430587338488248265815245788249563056297426016585817333979375843290307712437441534584714818603224613218933220883347626828625677386184878977554052246693046498134305474791359446940717327261714354446710189737729814751908525013045845995415696846910339134537234251749964951069777793215491354229030098008979970640071473080885066427184702345849317700039917539235000126890703116928981575398685760875131844144223940119222957360848468943976647344984286698507302136036660480146638508129112616796786105724126139724709464802919729834237066406877944645297378106396740194055271320827491560029730353567490940651487056497302945493785134419514883540130199826526291690352621191606734399558941199603144165938017104138430119994552075056517895200997237009553022895535975280154133672014919162327882090876587733758799758160002637992271274235521359490908864095044195062665273818535867647791490744213370618793544645742907664104941570378224931735356148786060189718841084240247093472525989332498528100199108406184182467465393315759977749489505685757903276507084551476192301079415366512689231147654076542441101254726482712749356038315058152177396228616259038004512878865200457415896331439679798445463793455018838863189055515344231053653046661024458710727866408531461990949983550953872642618644556653175274197100636995801664916959232996561933152809011985171741766839540938588946633883041582213079620456288177138106689376979206544531941437664899528490459993451266520010812770432169509876370565687659751809006636351565790000685328293784563162384185518883171036471100499736082970013590844971694309752338970109545779831252132826191137801016931965069412908248935459630596943048658791727850156720243971710478082781781277022559541422312901265406725377238623895504467153700704567061856721614173496726919949428105296970196353665298423804575734917156293843936535530552769398213768028967656697500596836140392638458326538374261819957483991292213291412202334933999667810679628630548611316889757401617815147897264530005858881016479699300806783339365952056166513920578695251047828776458697857300780156805793978549974254845992840118090717638488122198073380053727689633785739228657597570402603374674463237582719594006589179921164771428322432061505077976345651086814581777416387513558177089626777735259882151411959200156743129802773934905604401023947212800301725448211663383490411271710849293843657044602634215100306351946113011307683576739299714275901440410807069226451654736046601849411202559141816009357194484115030143323636462160372708798730758767319685899528114511186046789134694857882795897685827382073518634500819771482713349151529320482853272257199371973209473982553134191826143468289002776593984267959290664516789678983019139187884566966234247027939177454844557670369719101648694359385257835778306127619999575158378429313590866303645410148224741663539847791175686351166197478024143754932904133743670360853855006951369460632203529580993119796505894456336687432398506983323098003762301819834389793084091568372191972836250305263183880059417827812550410424496026403242430114077676924114283034809162307003979132404373888926707693186988846643019690222551561188466173028953625543092332940898075370945199377727264793462401676363450280585034346644064710989764583187913642515761751187619960667516194314585064028613206374334506914471164634586808631360991994782892758731335744435894131836017371464431255078092152227226283253044472856584797256530855951495366066980895122620113784454497828203064398222997291419484237550016110707813578263200590098516370973427290621653935277670184819589632534536467534611279447109286274824300921816282568902133685225826237550939941067115965037494158344778145626479019431230841182834937859041527063894896851893343023927936664642079862852036500805924165472604513454087420252627548128089517756949776457221877741988104318996835346196896306439727954609393494007797960057002559873823287408807839408587599102638934943478452158593508538454240459696413483912506528540420367607738934242149274146979826109108277155033168834877848098635235000410736088522894699779644216788292668302418842302242366650702714167804464974630738603125355953592709369264225310047608408482877525855249465243341194105358251954772572922576983385832705157292676999710997495435674071275241580518072501164598752095352872570680350240912181741031318969377942146631352018418841357333176037001749154693510093295192429273295826985721167048804864968780239626083345713137965670353097283258827968367633146590974446109994453802283204951182569113322521083747165227190421780154722080763670818773152983323841879371694412054243595524731441811452472667259077670258937511588125158560614927575895779158856592009733250297602743553729592427788801518447334751634643529181060476516109279388313817416341178421568782213198574116228509330642295150091818844341728610895783076709568237010043138014471058260901461737545791620546149689305606634546498496836516812956365757431160299004945657916621715534887977393599779489799440745988281793400319478573639886828886579874442928698368599719506289451804967333055367201300377935159298233302337303912436948336285418593739697362888124288839863632487515242044192819352386231344616366351781711601891924178304283882953414726035489564164003658318003536182960723119246525050336570220609261784603622328878110872063057905859756985510259890789507536507667366715223546365772101233739216101056411928444400304063930790755540184368975913643366354605334807398873290136815833640692373787622055032620072070400259905936695938160080436223258872552160426381351284816271814541180617942584858169651964341983666024687379117280405507828139311065956059395473920118166080827157082983689518373752780060953785310290848692088789189951995815065798830465051652072645656342086338806714841168174766552979277623299827238168273506883007443259966547143629078977028518592207588704714623427036105446448911066667850895888640715176919578917056602543018334486574219571985581795316123991853891009257288339513410190312048749959017088933710336744098021122258993235576112397376661185453219582561416828376022281028074289735887339401921144294451085619226604943759137704139611562084176407620342787608719418595613715852995836686796569878966507878726255126105676506227861864628701183364319628473439536355381424903725215400959446773464879744810722335792382942087921456481916815330423028224703021522698811605077561331248387446450038540704202603734139453597354245658333281456671362883279926247638489941781497920354120609962103016673057001140219896614841439330698309358986959234279414342452375243042746890754089717371774673505295172446517068947342144368899047268471743748337611895499556377245373109827014154204606332637024141761127419509835370400749188673452989376136786988060078089925068982289482889083710092482761238190158326997781550256389850734460996682813206700142605064316383399749045790956279531312490831934777339015532318937867025619127497296964396932411288339475158685153941173865287919715620956720097674213966070559991160085805838225388226922352652394777297094399950577523724736526991560618790554463674269933268896167717909228202956206308982155373476534888130770964650489388354529740753170002527897760509179139694835358217647374913719546417127961219186131736667152500399571175691625640024894629505453471714578344491182364929958863129231860268003886189594213585480273639200792762567700616017114933646826155871612227272065511890139008258181674633482090135736345984701795281771660136409405282127772971359650894755117799800229459902759363236551407231695216340781088655226138359696625767702313764054955449980790898998664361433739377266621574313742982923827222726203693104479171137583899964714363784867988822182729900582302579468224696535824626893623049139871640464789130230296419647967377101925799784801279468183477299513398601971463992256387489766071836486155324575947892181944157587995403020405412006026368345634771353284187336763968608322701617667719305712118319325001235138929510327610638883194030848741103862803496353004271006023904174429524765339468006674211349803658074428148457629396699497564079413618187426759768922834619670807001375859489480444836442544343558663293135890415197621941209924008330039189460502774576338952951923666407812328223222178701728823150630452419885211186707504229233247719040218309411089947855371694059040842030074638547331166144945912291258148378538668092909005850644422925858983560223547997163025073413667124676874984508602735828850488427000104389223512286769092782900683613709696178440210634427614457024647387128411985991675098481067291105277057938118939559989804707478849896594437723399815853107417765279666696950564647978733762849730709583737245414693593539850616014033378853882713135845752028613383812176616891914420424416112202487269271480200516174257179949669973304260382513682493310795164571302671399172447192353113613668982242678719831888970105481372463416875125802056322335198165690131270641537635002615193220705906187063008382096540731091473307184243749161716019555629703369121451327633435434277121169691849968997798364542370845108122047195829657132153151549417211148830442842466035758000569503423694761986874754965530186814536057391351617759103728773996839972216600292060895076853603266865016436917443198936584262715801758767749555151325591708628831460058181962607333749914211577566234109432040347661768059398774615023789226625873141950354746745111024044533019391923938281282402276842942816681792154769746161978816161753563954744030380533695262689859329969610413935957987030993790415708616261466387480932212910087764318938613056485657967285209555213151512083489899124530372016600066866848229875580237191667809156067666462711423589663830462935847117697282211993629871583663657635946181263930654110558934001342050689150006099978367350148632194289662247429483713958899985468313820229541194152577170856217428978398857494289220373892820790974245261443268001117727062840309037491793877594423410669851824477886020710176166791567497757434784857925617087519826932742854470704164076430408804472585824169058783892291386009731795450487403590081426462327367716255928999385539834583954428755502631344071614885413550282716226588586854175588494353616812316210095167242148069675399065126756921428540201512662254997040622828803707864892192276222424151522247647199302593676293884159850166822452829719467181540180798727166596912554001509755394046339753978521896416244390825880527086975550944908909114469428393876588231617676147322511618480716687493755964887480144950068184207925706977371202445182015658536187155726939727321960863727461487301698575583903465564769306214819199856599496236014768816870410777623853110622592944399124778473825126763395630186995812558545516000170996050576614891742596024027477949541890770865981285895665367245208499148219247159812155370119482964939959319097016861415645834745872257073634285285381362170113855560434254890048823466592525968258508648790320787209250562476361707692916621233812313311712407470467534124578691857713716266299125098017671533551220056275851579825586028753076857358908705018123904070304709155246293087323118414379543388421325044161573199261056751060064282400713320577329771315119058497972880105725628888473365142372558432727020883650019928478254878549534283892932539101849947743253613618724950953081756620973814607827660353898327647610525521408895248087471957885198685212190396163630510204388668210317882767637417289421360576839153914947196020160919010832714424128250079950499349889260316973755838215105653451680950799290866306963130309235870762289426697374674788410232611128541249640311191194972379714061200906092867127546289750574490168729587304623554689779410929081578457773897089509368155898798571765098802757314983984834356240501701555108878837694859219046124634218099018060908780118111470330401273388097742357475012601029821540975767753096822793513491772633853584865681081217133024661608782146299383354806510500623158764211126973065118864471901516135905665060947280750495526488587556840101983479714723963237000057288953261894399030107665374716746867562403127291183658485112740788345708247324382201154711482303838317782524437110144281618193916240959646793078143797240940253065983917414497969118585337896363513780225780924916917255612575764933739454698014450327163367752474163424363692997043636047438842789085182042981571414280965075397642419382421764137814646760040152245302844793874289572664826447811805535429597307894468812236273105016258268767097218374283353879384908734497976332923806020255904506320169760824927269008668213691772655469463707547598889631167634030122482607534788123876484056938772584951739331891020834556050480115074201096118436521988045728231830093877441735680437950133646996262119498349488204291738815095429295202211504777007348821312894191723505578053625233834989398900437727950452480017982633862939812812323977798878481696227426852828653927443235848444957337993814440158596027480034590057179359280027961319798887526398583965324405822281564546602228763231685963936668216244686114393400461578605338445281047349797659361160402128953744637589054831004827123263149563291367656494070384599617822510223297651265855904261252953807165378436962770507641057050681963234821691564318488791662285962653778815462697458414558873388865087883271915496762377417383068799971035918252449766057703115025763918712626345643057968316157205592138221404075631314396038212996612801079571318147716936209321219941405289961411748142690263828853727300398161634140311951419704229116465131089947069733728502433805853256407629148944706637976276160618823265605484714070352929609909258349514465159810579665814759999120030283017214166550441280613882793647204989101195290273500215886564369560668557412673329913582744763239962533008176348162329553544535325247228525112665027672586965962932512759867571871685239010172820809792695635423503881810714266692074264487873373166703028641660730917188850894405652206791769218564640413837410158267161860192295652312761590028487597325932755348919037603362396397379649202636934780981266037159647672713972023912358016059151638694332270021414683094387795918307802052862727969665310330388638244767337854059039126744631614719011303167044859349838538454343545333207623361728622595435227635201109369641462287998174187187055355125795029992550448014367215407195836165925174752977946434843129940334540873841338143449889597262018076148861940458598699837945800403520618778705082276082286269237993972556184268809929785629328832234136841725931324503936900674825762084287659575738703861687927845336796525907468274162308655099392781720360559885591094775566710310984485144861566247555257410201114290057658712711793083937967159744382833046340965444919513928138290307191170895040621318049771734046038023816876142946210185855871412221226267901102514826092236443701814273645057164070131820154646102955777376242390101708829870291719424613621775089636231451140961200580061284367380451138922429923204241781535667682657845579826169617544557397736433677667129692395774364971875173433552633779212411593538911254941017253404150558492292393095275843109748567742144845430927573741698387168592774953311463014059024629857859032226798507178783576411463069505933079313763210023431729829848091883267654407521737968341374167637489351229975249461119396822973722230921777962007080151172352868309965494958807567500125115854795981248937024839211121628371517297724542791731536545786794489037457154217487527703619508458131721278274636720859164132032633652465454546744439124449185171614260315226599238005025112539922257664385224556398321125904327160354068113962619427462741335045024953526281813868136044722573217648305342216418545368416267543948926762097045353003663345522584228916939783440979067908789989182192740692461388773353168882330881617854023852084987648686512188146512428295868311084885453124827446358911937950380138187054072755556874406389147857172521368980706709523194860150362495689939984088939320222994286110052373443668595934586908967498933687987203864848910835841723351030499189780131449075425476094153328327242875716736484729927202020848841892120929120250064719518615113366998116460161745021401080102216503987040994006505259276711747421717995399622519116723358813035974501159194001671238273071344584555192432716047074574612747237928334605592885646519098688853732109489338019831587516964369989826661556876283188047376075717073430852483545592336233866167938579880846390413243001015634640687482585545155993740084273498561723911821702005481722755191403476818302704842304301986368237341732021099728166234726920010295363970480439712617413067620475715528757455124334863565249329236869637288709549385017798335782089918616587987103322838152944131626162424088722839138629940091345397297428786840374080422259560318524518601610031757062507469354742602437569408249614346938159029532650964988083724865722926751346232918789655015788156964825458293281864221378694762904917084740875219666583872144613899057815772158525036845511264316311738008416552127310069143114278923832309866343148774520402233816603804150663401141578041173057024973101792662473459185130805076474374245541692334888552631621225918476188412711933920960239165114990828867496459057407984496829552287146452123031392733869803690514643797630682937526281668752648761207219178937055020520929131308534698282289033218628389447424812090940568190055504389103230736859940042299193187173702351960956459157938075085787487147429622064393734882486960843859073176996415535727317796875317512609778680584851986549930830781865768674379112362191302028794645462634599456387400577408765899663479972979004592885463625607921259946895277298607158486931889561004274272936021859802817942442197079696250238090055790789809447320769433205449493005118103522465949413926881752119518550129916731337252054290612808447511487274213307640688139304511540730003163614949863534982094610443043818667150371103662354074823871536211358831221977355935040267253186875541151664508026612600062533787023661839810077671852575296643066007172519709791457690825956140504845427858283180177021383490078664311849193728834433560049525186395722438743724357266235477812611588142480148012154424429923459135532453238239455782468935647223915180124020824349555970994622290753217776373702469287731372383389478253330895458929138707783070788557834763908673919029518159512467525363781009680502243516301500532924352314847909200405761828875176545834525516644507088206797176064268410716806412441025103122663950166530255073468750096437097472129129174497245759888222640574388410967901331973616989128515245268782871229270470386206286271318493017757302865723345392733758706619792190150655785857075063243771900500167408861099166337334085633948150438936012726397171970420339821923434816732576280298957835580194722487054524291319959724960060417702745031824055003578717974593829070595134567693736426339497026070430097289866773409096825460961447380063787231268323861654393896502168381359670694783077426620658488808321493628383894125508413901367713708848116023687718728214253782356111872808996019391429935790797663360688459086858212320168677535341201736195353762769686580028745360663990880638210483892053967492635536061307502096160187737495603455321020386154802595759172785847816342230959044640527348693428117446299742042068545742770380837289524287554229288213630118966384279171888831259905946711873824231464142871543870253689948317310713832093335010289876609008271996880218065682773344677666001131881632382841138869239984238834844592591150977446289276126333723215169153938803979938885827536902156016099074002630409161443840772464151455471136008593683607702056806952828497272008236548525446530853811960093792690472861147362990320991749837903656954601392356836193237627425980272476311642984829683298212872320253950612508513685479382078758582404406528224543326129090489823891723252406391485790908188084491964735706831633959868943607387119951557959674611436612454994888824895225579552076032972910043445037896880666114223006865309102135513612302757545743124122150182482046799436773122488104299991919390558104605760638526527405732584712498272192981948458868732100270079486839066320497458440087393498130645725633286261343987651290986704230343090918980710586463644411612625733905940285729720669518914376297593676541001603858894699010913186908496222138236357301484898391881325709530804427121570417741312737691128243287211553530272185964336282680667140700027996073683162331040499454916647110969140784747764987318154358413868032525862675198114492370833770940032944430599460833934872648630309415248216525134149056420024784340565392484747225755036987648444229771716243172988747089594014925284619058268801589732522230041831884845112676785879907740399101606189773999771159513927667200167749445860830678802233803629092911374333575345565903239255809219103327173121381513082460530846672927119025423681350375971872447185784700765944053872924782164054233641425640021365966040524696811190492715897476579029689663598960511951331833437700977549526933052311556383333296660458746900592705084918304044931166129563776473129464656388094310927154339438956604923829670916535116345083738060913845942007780827487300627314518143501403117044399737108791054339898151525956095595201082733264204510625153268153783790854249377624801150918515403365990173709979345756890906433132059569157049195106813328602309670770960542539525782163564172525978642299813921033779661793666290016841759898767465944277022327910877565551821500836015997815571112060160654067835699273107262824793550787709788714145573003324253985769639766762796760059295741166622221677865806344160680357725045611130292542422794661350231576843279984458065992329406920565723077221318539139034398544093483326600919947157108252281897288262699206824942333068949675869664780420974841591924890715610857277856157517721211289114192473271292249568331726285338352781835876514371779508726862235370449390707434087454883817670279675232654208324786026522147314848738148665041167051847713227385240887347170842525094356371650787038981979589563898295472849312036132588226263588944593307934207056750810743383753154578504842335562301680805015963133299502057436083009121319360026857292680055945038086459869686635553626525455000027115586164228054004857590656313645775452752984346128268440046372733547675297630728715495253534567629922687147492863208658550581757044389679078640540896156734004869145259404986886523535751028754391266223559919859285988944059358727911666689800701544864392845493022498720199511868226618918693118542549613851207607057266305664699006657527912335229596093569406203457106196872576526766278746069107569841989286156429360286743283003935194614484933069879131940078209834236916074516749450670882246333351168226342010053116079307862520239511022938345749567991991653028270660377909146035358832521675140010149228953585095691033932967648021033809774939925089514769305332496360798186856565603490136955324056773897102164649645933559041002220877195896923332549651848485480373252725378503023951034473527407365204260816101247932433962759681673769352926084865286570215497404865434032794704223864290354648137508782355185320302750187533518766746218320645293348392451327303122387534057574361496705981867076509713428444979477859538152509600803338995697846529172999253296986442116023475430581173169429216760596669210742863867434733433541567876736417936798916458606326485652717455038004408683911851591185554777224385752597711479126526338138273452313359155205697085302116414178279064205893340506913230147801100124280741499616951923789505392362136286220569158831949988005807097935703042954445356184483885627446476260085427527219246976041169819173293381173508268832778040511500806604521289171318508683219421942631934093054264508858176874452303309886526234840130130359473645727898639571444211570421565186685643100133642695727969234855140440487228470122426387558974690058954023293775573002539239638298721525583660063118031827065503757606234966710930608683957558202830441432914267077814127090811017453862612950235649976693953065270511675887192385129444001706737947627615235476871098093762440762470607439009815570979178104043317023935351434696911386184910146689859516296103701404544239637369210270658942849522894765476194450946104720469872986222714170067016447014262892931486964913034084695692164883378929059108192540332631834711401311020880495850082172170815037640203473748469053635492194908881284110159253236183340065450906705805237618769338260754029408064426336532284397686390739226809777225955862429637738526594291046984961158502877455699330046887717608756342560473113558962781056364399701105842495279571313498311771838165272069391198460833020796013452357880430828599693442824311916387814240516365646387242405464821390405399614497365681061954250367946965064882616619435093152017772723451337982151441475844800787892959415826460261531986903603516665678132569594856228738311736325438086947115938850256272247231963873811375292425366862523995883369673314455404938267879975181070447591103225748268021203463306192231823715784055205675221392757375836368368977927585951483532626287225976412745371635606806037263488155432949176732790414523670300768026446948824540787952725616250577079396765554286941747037015821192629061716484679258857833437201540350031004100919820192656384657860548087003417099354141933563831754005956786230897211005790959757191628124831300879076098138885427965879083692522224305614003703267812031514753675490108897943333571393249342935808883263820804915237305833145842408281317712491827013999538000492370183285744441047009538363123282565558276555756332277187772807831506797086264500822293971474287382831622587860196655659362249927395069443922650981093960629725789073329150629143785972843051834468955415013345740940440427750956401967781080286104390196953855283297171814273431188212591012903104678590106004353496447017163162450508789747836791967189759407434722321081243617417629064788208210108915755489882737949631410656240213510418554252084398738688394713669506604331991228187389449986546292761144296410969750391774165253634724116657164956133556236827867434714384051219561650849259015645579229259713317100062756403026988628242703556027536427726118015590671089008404787554440123081928933879575801373879753556402633779161715581960704394261218380297409918550293340744223231657473827629562825858663593181560071140491444874668999833180645370217840601617826078942536936236739274415396165272855758280576862629017907116885879683594866809995001443850330781244973810705345698860676037041725878420750596243724745898836445288105331704201692730419888355498814562642459776367068462583942776794157025968131880663352744549504236303680050535741968573272820966090793371506617611711377578352894968056533654128815770200065279612601265598336237122268383444843335962709536862803926510916534121983602172118695516482291313454589232749842227156492327247048811455463595548757487035826640098081081455737660543419787396372668034480660733195488479913722344787056650026919912501072942384932869236097812492900356908712247483317958148898069747904507673778136031187426485267187739609577718656399881247525676419907917885791541571209163647324413743492908191807623169166813918413494299931275774993286288536216052593357444596898762822755382904174808866674479125125371513240697462709414618995890041908886047160125211316379728797445892016033405182803421450145632922687227024558065324608848070590513684832399064459477296067195910514998909234020149244179088851494978159163602437687253620569283030045949588075680351792901607776251616555317962686642387251244697253464226517652227389126968957367574334606074315837115774251865644000570497247429637222002832875757950326571679237144108796780538332417029441385480223325975656141302086115205281451435510743777328934657504077752352555741432208123523193142159850174267260274279207799603319251474777945961398797708567798241472608775137916575383592420885416406780257634526674575937740770578408346541399995149585559915120395213052989007389834879911559952951339252019673104070717472658565075618468787476565467954139427678258897088862889408730944204638852211861741821597105103769564896098501165903749144051409186755312405706637539680235650493278382986055666936607024414481122247847974391345067711825253877237422777579202983314191295515030048108925707913698440262498847104800109744064186066782372375655469819177791993867665443219552723229289639943250174176575819599050590566598605692227763198832387110546111419458838732631078642548777849127239488140404600465368930307239027478774355388220482362262561093659964847725175562818556262224842077541513759884256288452995562453158234612775405466850552193001519736035727590546922195121165524005639414602731832631858914809346230368057802341707185037040853767418407563577498477704225102935351044706098656475661460477708606516450789605294000303282088338100721436868116375533407660137715010910958513716723412029845698485663745363270267662285329550664526715854918668799432480879036126623356929071637831753972859477442666606060431750470746908807191416355468370495343435447769214676151885481884932554280295220368378088003696557740407266096553266904965295234017678885323633919526327313644476117264908983569610306748519039766043509636533972676764869489812080424500524103580297902208165470772665369547535600938620025591353523602851792426631406934591788565544701351064571961953036618119348903080330774024050404347541058832622376513661343063274295736573525015353859788838541288495742518204965845668344404117764817583063831623153836159337269088759859468226633318413220119311743491374521089717524868660639865831819374270459847625980566373066825354473650207357315633939715849183284607482521506464616185896284773740521290111016645682930141555869023275717139040117314528998936403476202218974152929140241370914722149460399668783368902343738756900226207471400504489064354445919866996278788557536646941738827679545699299233096546613379974207098002224508578564497314124926332133395489018585324542180202749405657512657411269286754511320661942526538365258826392639500447426380365542699844864866000859472079378836767517262559599934001109263591408450861725272721995723221397206834466555317153120681991062070454857110723927684849998359407436482635982432838977511051337975520947573080837749510684749668620128181279386795106933769821881156174554432437123267732665521842717784014675190808005716424830129832790986173216930035391591279581622894198025850677027537822818255823813728504664366926560041456708032087586445222716743691510400275133120495648597035976223959032246686264958161478073396569990104945122887454493143469608422873735048852016792033896076859031224911138639548082236126892600184001674539699082144496238758618103758424835453586430568783840684266497963503187271051197839918597638020074447863363249519067003805858976986716575083481127359214871010573495169475872584613808792445055681798663438808929535839972527016676946820015114396604244536787762734230104679499273974880965503733356473831822863390731828844364544529346646371144610768249441627504332515024686949058585922498487037261673802013037874535766001613847710054835339653076220041841927280613135144619833182514235783832610959461207563621841337807674554365323585686557572211072972371733202471594727896422575080205437803342106326059760525552351378247135348472805221304117308319229109321996909314403675747287105248983970117112959140844213208008599528382374953043607496396542889757375789856925250947479469411629274042655989204489761255955980990536392448181875969687604635123399634817708372026448120018336883002434012752540469314860997189640687309847477215325037487879205830243297983149593602030310764674686710598109063484196199585449505299809331740835142435661936581237833180677641042515054372852882903505014368881374105782760364773349318604217729949483378747735295939324727003279600785012597193209559195608329429159272727027167530659357280873098084153689145645022395506959738998377480465953617101168752219187481316643473379186767707849995929974316989842958253500925599870758921723391712013046409705346233624662808620328351556330902367065738208347532790154506333742335309080601749198325222305477511693120905496586877768131481998696267037913595829639469374138982523813280022767578710505075223449616249791864320923628754428821763891813639955865070391523234838561013079066465965990334725063386078858533343801254945582922132918756040291674818748633311145497538106664280582098511865411319425681861853639534115887077075916069731942917999636895870311379850634822101766954537736121038849223166694636011633436064883992544780371001206132460270713323266448700588427506616714442874032032480274979747705064642815454838987829504379237185435115648317092039443148957245009718234442859698909288014883746481615544013573528271080872891395515836267921426026959386862285784400273876495564197491261871135175403505465047292526149885189777656869573420818515789517133328061110690252847028431402575219815816480161941790405533630106045719409917216917139071996728274714002838075221222432392710850895606829301430918451757625139274918209471634006576478951988064494845669678854675680415195586381306150354649674988456100432944609731937552994481466049334440888382008175545470031576459566171117787662227997275560954549066266618825284513822647460695115425897254965921914562003530266634837235513114829598704865375483566070429401459366260716849993937843769921904835106241033562052673257128909758106743787135337707115273451314958815113280663034906160504382585096677652193459096132255413666015719974923127100814365443127594742463724070172684681933437317345112457091931659451839759111299765317857192989294536792013207810781230577336421244515160482403340650599007222514026351104776162173443055012596515960210121439127433836829640379996716148077014452650867010278248262454323898224075611988714362597848454076078971335489558910477097015681215720585420250499437294448880350281535572961748292585095533224893373999231403874008587861712435794372905740686492826439018893361386092549262151766231190770926715492751651630832388737325025630058249565524017687134216707869740255210010608250687236681413860680875911524575708413884161792208521504535010018994516497092324962745389471942103774029651147113103389349210466871116060895688661222779182546351614243913038720273448571619352651530508400157736382701314350320868057520821619225611994900902633259973933600801606221799513197176741079512428219053624101459535351735566290458569963927889353618340395912317355946384409423323726565791618199657082265172513012255411104373928388904515216979613373724444075560157820185077592882048785240117828058943178003979246992551091920818621649001077783731520615288025990329905447070671312131346858442054963088854009772554589325231694972139249264839773257478810264681668940980326836573566871860175213614683916923408992212671069491434105322458145162054369501100322903154314672754228480790981087968643908988946578694760786501983223588893840203404723203263573706228037780539192420080273165857480866684939097795587579618620678814098213419350259845950779565477343250858102571592348327237641402115792639665554805812356010598151650033756036803818735096246718396635616014083485949672232462172624215334630953243665398888927005443033985712383479705628901081431501368091949293686353020624396685441533534843865897248484807159419388458950689598947701296527933088291691938285415003757918886722190555243735491258725840384664368600007979785119755629044156582078010668639783410509887067956623124177824686718104078336592574268476040345685387980015447117699496367902360599264035541762186569568255217257785288953518319121450470184383592042659064652394891633685727807259682340962485646881390535144927471116367261901771840208148000463035177506913928755640885538941952190945795340072575777105666750702304343853959242481687820734226217620870906127114882651197708484321237871159429489183857812183014979696059092567672265521906504230240044092741054863197505798130831632656916813717813441391775809412087487983842506236605767449683401646043319510186412033567316225079951508988201905847685783421062938019099914459730704350277974645065660047289628906833633746097810766168490309065268804171139954900550619597751288379283753173846026834779035509192659801935845463570344478956511690499374062792483466612228076125267465125863082253979370391168669474361685062592822145414725228876888376336616168834007682727249325460149036871943079375522872557417641797327942435026040860644848172037055741447718875671111606480383004273850152249836959588740693685063708726814365905424338131779466052050466125192333942127131643882584293246505427163290670443780032257352418180091068362654049885778071899657214955214102015162719484504001570774749550837544628151610334236516701104893992682216845620587838203256672177381290929152415224036167258448853032860387633510926630840973554513198617455190484066813608094238910712994632536390584898090452508435680976359698975017555527479171380994826882146758244572591521346072629134132252663961895944362462502196885865946874952826165713170682838339106949769378250141874539158450873195634939658151451814534286627520004282124856100188199538534130485116094364857144953681843880841019561390327704972423651553215245789071925019085613397959435872448790533797669804517435283011520882494626091538399905137609300205044541348050685142924767752086312264833133813456664352998184658422217175128402743955398529919868029985582903781333025546392910860243766815252034147435596044065520540217602751028040314562571535932540737167136465879188535286160393087799644357642336459432085952454013314025397267301249833177087436733081118958569849271018400191874940795494464388807372898524022333893035223653127735155337269499709271964674158424577313382166286867256919188557880015634893358726443072421720273665631649057819584959683089852608830710745647677607023620101681109608542055028402373103207413433638253320399983356866176782616572865304259726368306252185484847206579099963271274618647615852575752912070897010387037429475920587923642562150343783920597184669442766938958137766866047480674800740771064931520227723273173786271367238722840714697546767667431677964817202592222774875687647467682781086642472206432092820274927650115085642216034076203878895997494921810928102186607441966921046134895155104736864935502417568577341594651375636555278559986223287380662959537024493002966196636146491082335726704716410935786429320519001620969243020287628888946072822935301505418203986942897396801363335487326433512944729520252241533581050807427650701238286749781732025948529235053429962986339809733893507367454094847045104264232411658481006940432769642740745425613606683128302557653160007264466151881783257996414746684817789417988601148736180976260320597694761423723022344981728337008135817809164629014053850897704553265343907194219600331545274316338180419461139706943932808788454499971158697938665890213881545444704875028704779494758404210895616768227872644786106799258013278512250533415977885056442100417093400404401641286419331925236699029598906823003965567121232352034451080864796542936183002555248390779993882044539589841266261468760382704173432010634215406829712737317623866564428914056644586104688211036161909662433792830817563285214505230039895223752079148996173116674698366604831020419397186311825437286434437046162320270455536472563898680005037643695748706779059141655345753944159631613000690795070462763345002351553305577738431993178799803453847612265639697319889936009980167884004161572879246311420200725878843736225666967250789973135041011372386217274496273633625204575220791366000156015096601910145761011183808702006833547640536143290668992150511765945624603656760078418080296316163714474963164377237480536469607120726377576752202372218360716901232647310054862536863985783738773903388134501877503538944344862504720339359968757572038359619984188661009980362370735061829721389209336067262547188129785865015874251961621693758633854020074302757021292238717901070265035170377903455977257784775759854871233192290501122724442890611557779023859347956513511437428051969541602728220251154049517501658420793614790346492352424699693770382557243112397615582366842988062215031361316680934990320091514791228468004524852174386412595160063935224884553190646564709509012096937317370282828130481950222758877270715311641749049644070278973716353590328332965639481637838274644144819164939323819534428243392179343483885736450210538205619078048549415415786754045440683138583810439780042742209636219083713625003726048625075164354679276577024306557831368963688325649600911486709646446253387243138847740899804537470037865050806762630560499332491551036876767974317390070263221046312175433471060696967378412596834036110942885756765755161523307375408365176418291252936944053133724434646921047067403161419795334580447101989747953943638646599261866507928250700918390669632056448033267290682039808927884384625618461873594268733501501667464914512336367570786199830775650163101570313376410284113519751594309130534468461128833363500776935836190342415356342281788997061602629040734147363609444272869180777208670067344925115218740823807763588044622219016986444017224017025671133992769282289786481377767995614532196489872407121493543324248249486093775835935609517484550191293557841593664108669261756590311797763567604796621270636884631432564929786235176062398362685984979392141666366232669147798147168261860646396910994371634436199621579538174091741530726471229590512932686654387127334317997235538071080065086612248147071423008130499083497086789413261546074132124675343996088764940639154320865913702450871810437731212137341642076427552454018294720073671427382264141077237576991763882188912713038743577622460315626338234735468354950538938056050007253432574038994247334838056829884363260892522519077410103857338436147403815608275626651253792976970402333165285565100647638697916978258069820293895831694102714726896732668187646444471564198526013189046690798847536285218783457863645962433086599751840401728898199753785136457319112707791421330455023687575142920540937988686253464333071300549908511691996994307826554282691854146472239190730891528672663248652924139960772647898112526243338119416761419429007735562665658952219323563928774369067120285470561188955233284110960232536299512498746008061632262130586966614205437754852709619104712525497396505020104495273073556619459075052423858223531874870609702552082972841296796199987734941573901925376175949777153515414331197189999818210692937503662181943434566283246326559086847784393126162809758450267902660146293384317521007586653093014450844043093883748314541824524675613151268262148030936289107701779571760353463977427928217405856634603141820333987483037723647478155917578914888238343652358946634827449540989213344520109167472839993157325841172965023705881333201953925586022530914529355600738264408436328297365468940417447171798707014504647799651122542079080283873491554011244841932082162195796657683982239192133939504242148047488801647951018760197145032256657172787636131021063309187392798450202434516605394651987050133125397788473304019018831003207488530391219443472083346381343910958228096852944606372312244388859366405115549819179830285265255697483139335767660179462674709690540479240462960232720385383763681004985044013654288390476607857490807160360718947505923483892820849093496605780870015895660608744775909550310733279789325027952583003587834480337887723934428901861179793018989711343759028656140296238509763065607722261550626385622719704401869450187108249702075437910595326738203558847602981023877501200117116547483258271090232288002252854033466705428683813479902179518222414142293244937943634419736696658841718759266474965537096701342560119808033818612651463981862997365907449198170712600459907441106190043496520465077416756868857036892165124205938762251805157145689472768704511839625495872881582779258618772925219716697751130256068961958848476812159158548259891776743330220250045730968909366071777211628462424514298156850691990349086997553214728011036801352535352609546081813422918449547369475705743358260760376370326630794383794447945741774351382824013718928714333381641600741796409587083312079240108616012979365466924556160447208374728140058633824785905675839419394466182452440498657345738140973108184981028662968063658117164609728155576326776843348546391445911774275526158309499755258478701437232932877571397575768671592325204423679815751279044955699962171049272772933774099295636936372557888086699538333872841841533907954809397761846933171304649282247662816226123879851032225993671866542189630405600904587069556482498905851482178095653933318319392704230567034029215076158390047386349852915627236298152597720889825506739495092483800725725656425080581521889395468304104750989158676682377112778236849449878311940783433459401320203643202421890806459473398417867094534754485288004344043131384259038852187969465445036592426080293896660537074183127456823445597918360694936451862515035474521846647696761023337724631220563362587765920398928161726042631895150082054834794795131572527061765312425174703621863779070610366754393177648952858080205209513748405035862402961111476824234729229981481180031452704592817516582613383235064982831868335888044378162470206262001921387347712761445418999962710516297500746682417763208683973733134021637584937677389394969847838211220292122699195752843226075862091373938404960036344576441766772579970609135160410187711970223738923964397801533447550241598037110368889733887405822009941077930704334032510496025820712325108681273568847357157118679436429475580034935357386263893841338330297507354076912697818945676896872815275415955822153552867977697434419518989358796229173086669933089035997224609588052777505287025028206584961204946626911388839384916316852454033019766853132536172845914924565730045451785984232306601177821903268838134399542871581213911030260809875632547930145350089282985220811599621724771418757132552660578039023554263044400341458301372664933035820818829600351569939535295949405940372051030771210110254917608195209435118089667406227346708554496119416093783278364902037531298097201779469098386610224802162639818473915876311923149383258072194282758623361898101642324436913526686066792412308979581730934106029001047846128128720153545239931580000961449228740843874479330576361964038885423292731895298194203234215544269694544081369081246471542641596576641960847449293690761481872169620989934215389147098442727972020962832180283332641279087645940439777129634604899175477234148296167115748824651366800708490334750717244286571619600547924064812216760846362558258379915268074135996453003132356855311309592257726277526962032225869342650261133812065474437987808363764149233551603172103324366536555433312268994102081739469925366067230217840212886422411609892787234925573904815086983635550788816817231964097260526119463314864051055979124225658770876074361152331818128776022564910162772473928463906086167426113753885197468635987640832154460484061219115993438560355676810711335384766506532255312240487942380394926138057553782562606501539142801291708389898466023029744818682411743486884326007714195760336659393269923747998462258781471489071312305015283712921942775964065001343696765109032109825985939766658068721931268148269685198695962731697518229419206617312003368013090467208425850348341716559761805968226388404578617078265075790518404991532043205923517372409832316311124535316859341455930610443590439933402474117051140247357186030294809060874337386444825682927136186481340064989421209737794931114702904161929521848051411085822824355792177236308195221510376911218546548135086343427487704876398479369007528562319258129408867467487327199357251818699049990110983378036485864038557762047088116127094731810579093019271172138222879687864185842686377039510851809310683303004718444759226909248835128464966320777638133595043245661071101796929047457609116585600951578293134981837113525561916897752197133150686875845549812167233631644001020293882108145087829702038593342937821136273505917019774382968042717124068692553707320858216706424299927246147970396269486642879988205082270907869767693333296410288564696234565743748137438370250150290613204385123608911817744281883752169948033392213573204533238794922836926116281391214788736764385341727485771792878242297099533870016586361437719341246579883771766616520775519562578813568558409209349316745387843541060899486270165041970254456474328227774430268500332186079480031863982804369635499821395710665508386655510833590483682408692295739409830277220020674632811710029471201540635617258742676531299580382479379670874730265040350735289777486067476315933308973658101916564631663307036227557337869430243106138165089893084115910761053362339935026535233087260980353349164308276245100624264193786525882489686288573582897235075854346862945240642196054684146260209766745749894819352855889543596745052194043603977504118982675489512451467576692415722373948415844496322451049899606091316434635761337125514185804508414776812021755654159264652798450878818909181771716578821843092491480038177488993286363074946070231224843724572191580710873549438524634935207227234215316571980019356099438144390670000155531581426686772527361506264431443538766503095442883404723139914306665742265706779480573819942632405725484967529285922470652161683103677152744793648373075567681033197556152868184443320631813889456547553188421134889002956364558170619200675525663508785196951791491750623887626921475315167746296086316398493893096854795817660976457600981074724713037053249337176953942328061433926159823401325711278586756105025674938445177787173304996192528645240775672501304472692111255569811359272018494751398900831504207298431846146452362342035447910162842586188648836452449535459001000733390093695463168399668489325178629058957751322483365563284281760548243216621716643249694147620100656960798237173665259831820113860679829421791703190611830252155250843835632293266399315993590376217626158197215950985414842073648183938513949102185597849369046522201469866888297100676434506614654829181397368997625471260467500334837739768980884894654461252555704676274682076791695631135908089387487403207342121785048311832537637747409623145614990449221480741678947155392520487466179269455039722091811662072483758719575685607561394894520563451497948363581235278925043807569575072821222891836766742985596853402841826306800776363329745637442892764362201192382591355895729783101681002908713245892448142655297734147171041471596052178770688594897374590752199924184787185276315224602040412777131997460015958391146107029231733505593858319724279867320588773360965570522917037268559497104758536063358671325197654958008224628823856675405060754055834886149057081098073876099165043752936683694914598326345531183773114266679818668649816757553827749263076777733363970677041132379731337121128374032186892599718588417587328295506601712310495382539055124181590673291933667736738662712290549495779020335836809160803625327426580939592484534130429992321404905423787194505243587493302458234229712129849592222202123338280084807644063767118786808195538266187151885152081844136585093299874907562075270481925698496909384952861114077793019215120005458655045985421285574853331882360372236533171850720939800305882123472563959021890888367563646348871528726405261952085701861856631983546787239763056886099664467685244172211709223798986972775661369843899385476353822140619259175442796273866891642431069767973368886006243741111517480241831445276566681336538434872994478288451995955124193864089648738333678442286907114037992167489301926849520878081324753994723803105314766149354170342833848360338022020471981220055127247067150596130141117910523828695115910188956793122330711724603656198437594146219054439673735233901791865091230850946968981711031454229890238258249541273887865282839824020541048945646455623740927205676246228543869210968562566403742993413185238505646008167512713626640113490379810627085723418792040508477475493686101938166050284093036475753233586604276288677185775219518878574159614017635621678207356586600987532081342681152547275022553524794198068755709311489958472666379497644897755294796313304781554761960254476834195354594341394304597961029128744705622541658479790423220137387353733586994460627122673873943279012495501872370454462292944891052065863041589610360621986833365817889980090958741083770542135727294416434827320282293428072415440209578676131378904259308636423346118405355390148921312219068549881910776925614115927715757917178928196423372221272019703418889029452720327010473650598938557848254849602149049464926472523912582735324611515029002120819194896792726129661275580323293352403614249255304144598908102311218759040892103791890381924066329556855447138429456181755172650789041922051602513706658479993843350708691060962053254555437069132334267381390397760488377815126387095255618361600960761380451074555269600576570710978179016467696882038044615476518093147746738409019583872494957536947607234154724818689096654202495224266590902897275857161112066342761663166164062413576162927446423099161667449987760269122061365382058282345195086297077616976370112933731247523557562297825947990137861005556259664371125207189567401975220463538655758571261589373180207323798679507529994175250241784373174724838572952134646503236403115459849408210097107860745492347657034371055651515558075036080896367633300573515344148324275647281246819304982506541961494181030690808349535555899487010992913014417662706573403787824759336132243513886194318926532439349980967698673494294152676492514445506118370570326773688840998680342267108637092291521740063983466772219054862364792148813201744355410243187820767274064651390478386321278416448603272056677636729074627907522706053234722353172653981026943334350210725050677434319218472198976686339429272115421124334767660737665693854699625807311573015297751670953378871712798486361519295594154755400324569712472022615266470090587730786174777849967762159446665229912423535785853724122975625133006806287029540877942031665921186855904575003069602967754994729952774035537093770898330839260674961708323449110484680274989261242008770888425445494819223016300531328535923718878236061223253014661808602320098118688041405368477724408960697821797170782934926598169101898646689038174490498891494630284951512649000478095483670398544202816978074251616123234167784246790129746559655974382738672384764648383709094472345687638325771398688384310006746750642437621051219713303891186991497666923362052422327122933336556159210190030709323333850838026603882775547018983778581302660553908759631004495583717504035148178070993876072933936472344231944829712889595843909132696100512918042110723067452458007019154538510617131815097690711257985726728440963293312185608595437545133941670453191467242912697490644793036291017766125289128894064551438279244646634135680470977314169110622550256495613259706428733756956174284787484507081201361155802865254997871214877488797728396191687329513213372464860807773901719134561527521094598308217365494583920098234834545971979048374542764580541594204942434163477079562604141856347166483485275304030413068593022557757553713872164857859803159178523929030339619732131343044598379870121681235064775988988190922043507994731845273099286121328785649571403594948747413422700367054581443511457010524793104433761234853793270975157313730197354231753061228199411064328048049979327558622492655270974963614889237682907916078655693607079989519410231028897382052934558999391606932489813056642297498014292967869955495581733716857219714256067342970077814043107060784578901017653837412836350409657545174963741928949582033417730807039694008475067639531983276335789330743370105217268529722641014123347724899814878572201750615520746993142061010086333007256767357075787593656247009781081475380017622896942908263767317339396439355978330859455811085951937675592692772900266790970500590219660312544604537771121336337035894947950746521135869782837861516833903952122245049784009021021659487179030930899929299903481708093224598973090898889602690135106608791015139061974731842974185944432294868382116009642634928053026410319889129844998634845917066103779647952322545426455863575198436109925948130762402367285084107376282583813439400785432453863206286795023851647496907848926628372489451753885440120626499810887800894425063164175277122754854389212603377622206504600196770799799257357260147238205917555287972843794318811559648870756234890688195233740550284287223204101929115916378585991366404901981384462700240122830055941116229686596577752934330900696721062674085593043788678804910550717494650665619502757297940724168981877810849259647320158297345536708587730892155197801767508929950974532520552928355712150147418280393988294615144956630988776116995970437381937195715782387042301109083369325565151915287841013779887069903966202036211536992930455144416000519757260330762236849493257619751562923305315593264903746002318485685940898208737250111806129202495467802198110585266136288870179327367121843143965287570358923196518354582192083857960271272717355797242345920046281969325098804993649608100178335062307117145351525121084700149089263018303597542211400651025134859823575002756478111162510358889402811778985560715229394650524602842239494296510612114959028366713971870259307613269973877256312740244344002338786199607238015533032919933922368244346669671032374149668621344232482741484973324624000164196860479069304451161435174054634321815462757541927417691968478858413137749843662033918302580587975254675955562647660815871485357981642934701992154911072807231666949431079249961979423974060448805231488545209996628033033665218037961069268611111967196306093899222357035744355897787502908760274641917433249879941503062582485687811949573349788896695248814868831395331052180795996649022820746720663422168418205337415577566134365347250951152278747446957791110003917021054384477615584714557924252279831744768998434649320937915471700240066224174662855863388950122290810866461903851111077039391315472363262869102440553672737378656118871684059034842068312358055836304709979393194365133054089775552854176604615601479684927623791212505213841836160359313717791536702435645101319304691495038105239415088562632622512814452713703080284582743898429564533710955875842589362364474738897287924261638097157565214670503811393280725861644752925855829087216270861197295540284011490132557762647218632679414089626573841800713156508179042865125559041342267123742782697958739626458825419716792498913246214646923270416091790688254043306626734360449266389833125617827232581083898578603403886030588998608582526103575405155751485117573086457592272822274060690923374150186753351126672205547337820679094882483685051499648596241185538412554150339536219206040094452581277922578100079315230839913772704705692878033591771713598175716441814309033067622155534458609005645197213620788560142023851624670365631314654240786531384641215823723694149523891540761086445308418562484204778336410236794545497059428782997503232867645326461836795334163306226175032059076152466847064010360611194345308002462287117724966660136816900677803986940973164850493522032316871891541137949693018103166161147163486954305131422020005566893328099735616675698481759958956518853181595419183521164905877451666493539276521891091244553049277319227090359096419990604640420924425738941907609043134062525855598894895948960848142044663093937522926442289359360164267552821642760105020227829259966505073165308834816721820701504417646111235725036163144562541896546828385461220035732107714924399439886656392163308843498799806497059546124116524217528610023595325788324979683832725215542742787930294249515900779447328345371638657615410560170518818878292769877318758773669062572806047881704235500729110842133275100911659312853777258490611306800946442495705088705446015085561504961014099909490930757791458384561883682165565570866248041690142569124795897541164119468365097007981775074434630491826536474104808198095094800298118255159053454931056985117786966895561538696932001019814353326455312283260773013208023283346782759315609889331389933338392505842410585952920108593058497395671787868578794240918604730472703931502993104722859557143593272896171843847099828989930353590636062375147483062084209216849787157902896105922537000664680292311089990880068786605078045861758116990763517383167701829998238047760016135739899167052235999015041187456199763607474643385829207123584585320806673492667614280820084030714701256257559760261156285489110812665813372841096180365206650261322375905045642242646754326375000943960689225102163109471137661376717409562990350732843239723869930543915147903495877236638107970065032331341485127410999057506663335967326927260549059589694417331116991976830551954770001819965576259185344598427572157534277425270098373385956759985043824394078237906342373712220685983248742835886867616198676478174545714654678528801301319943967001927091897131744560589865213465983737283152724356693483455490514214099479612366455226478327518920753179344719115570721329909435525906305846659329338863262507115734960735175436185096514226282928994457376998899383719975730367982171140972004206028417824653274036015396262247702311476423820680404003424639262894031192518595013446679603242718310560461168143863493444972691812831556991342950460416128369102412530684685713712361229231181095810185347750471640471099308837392054203281637363434849027061764280986574560892234842254129748153752643510591906282787833635075595187272140843748661885380437106721332986527365896650312534722066261122061971218470071122419465189167787895047304544894406112197037308859327309498264584329896778763741271610631026487404838477694777461051131030057976528930940623156658299300517608308406980313794863318769407034608022759532096703931722331123842351143308673895734169949078072113218613317185660072326971648589734733958381009065282933516884933614284530763988599651324329353873665849413317053493405638635888267497180668655651499294161058142804146640518745071716957362568220986470577289788391742695555785363109833844033838994912521544274243536779461027011255951160787564079117132767008806443975590579995866143155449304322468826475364050216729307658826849986253094141497529683419853361089210833427625397556155857193602450669467657032941566399002481166906002521582480005203536291024174357064826896427640501571228614025196115090651134610640877385330384485189050447714706828273440715585640314643166063458818837765930198920948726590982961921010812657275250524898346146765252879818942248553598088658889184920838059497817475939603415069355295762237691827643798820588358981847170782733554923920595965429831164225340543964527158055680566794978007978695488063722370413076470291665961281878019014727537774492908484306345803393441754960913124893357619767702979553290481110438436414370902752986055057672812688898336861646351843448826618357851991500029761290275852267114750665373845426884382760632089863494569936697275276750102668022005905683526253385868163588765345582471741466265220673447269225770978138136381738459797873140690926511272176002738289746209097446944236179911761778524379783216882510860284117101784837848984469176613430519540086608606251808506188071969819179342473512202475298130552585369643834216675293388146456587646327894199292514368951071361546590697249203806150551162248042204479534260063534919063750197183579515837994009821912227324018067801309986535611322510644364199351379681519202386040339069132181499295584907344232293158938173467373487651843232388061351319557361676455206407807125372129104965205685161684205104892988073801550237673780433481536849633682261798921835423852087628748062190612355654693104990262131909336679540427218875224869845628334243742328046963917670425473806732180621216495102542040951821835577120761121256399403391098804841423254184471923048078154830497361617737719983760794127729155162462666722861605566557230534374134392547542380712281555057500058699076140192437031230231302742166338780555664823159071170783474508971362703458785965275296128048815754886207176437447772066866298161664320874642623243399041957748981508035604172117513859824684818072113727176772125039281394110543379874543170066247480182833748998725117916849820067893870633907952454482610710735110975146440651750720679369721524219596559083804437887362626680004692401285219983597391954348383436751162067375059670149184761568907430364577722635418556273572250350260357043619553159280303917871861641903674306177134373579329736605769380996270388820527043011275862817679326808902342322401658057335946709656254529760126631407399976265168774851968098942516793490849323677337824328308208361158807967605884094096305923481721905712632005448008552312326770027104551131768390379801182352845165710428975334469902777182076592958862370868732551220285671108411672014564653635146763393983658593870824357076826062394991474853174956703884714002538574284191513770067632539689122795169409522563203242150298844706340556648302398451212608494532536666960224166075835879282431056819365456637480152858326633462096152092680975957764406392087372454203950427651569806930431785671577546264427351032109499909782839862866733540692130632388524087310969507511688346742556884224423191924219830462381932798797453942364950947162505884049993030689635804100340915898284041481315284944672579865636518573226630252550716758357633302588087602508478727076147848908978987752631979579485025435002629538382343651710827402397459748732804540155524891385508052034510552438238826652877917737025844870561265525878823920443966725941818387319474758178877113316914747143555034506503037489160302993796602075435049013465249271501357674042005613171896699151303627640568977316780756086258996340075056586107765476927123599370812937792523479464962695866053716741468006479347552500995013783079895751206482299442168457558866590512111937592955758629131589824820661281155177391532710861113051947719230855145268947472405214019002727947748197374768895564671055344479219447719162360108755154239007105106841233689503033201418266108625473237084350272058428812313801307894716594748355893637598945939314883550225742471949932830831232436032898304492660981474843433000034051922115929681032017422146698067967916881150437084954508660836460638418398112069564008801897703228730405368055407932494561499615200450224339026667723117734818143503417606326245733133859826840551882652466233877545229681078937096883630241939573458004960180761937296725154255090197783836851272192592603542608846956478711065090017101546528309793497335783818148682849186067221293000837364847979049389293899023509898207350187680333175998278415287217504801844647576488314016260020406560043860336297009660378634637288406813556255192977983266560895996134113893502758100546374394692420305237504435854987000687145533685702942064733948082005117604889091131939583913939696118421433473963648055755897196870837140510158045483179437006685850345139659897376619887461464156171155184331006454492645314812509672094474177330898447638174145670671611026707621725116592996602886089977479214000225673832648366868462614965788117406456517118120278841529720043807870480878042874704576031788581444392977271727978797934290579228851791827566895134330474697101569442816177164716646357953816964886677586003107822675861704782971534405647118051793745637282327460720815387725245074759408077705896063451713565550368786608001041262935325641366995529277086283591119825756136020564772886117968311546347890162836001717030723220963735144445634832697617555039787476111935119743020341732476822138949958294587456758246006733917361512676830712883871382715688922276024952890131938036454399318058083706622718118756140704455972964328406218111958458912196820014980680968872908747028742026699632191124109340488145385902375587605213916002884200328823398462804547816759496116673942711089487889479775563312568143732984493655516627639259870568985536898132425696629588263983349671845443881463752410189171678004744205922912731008026409815524641864980197534303188443800981924505737482180912328333624891185260503423283188480566179487451969911777119423637119834898945913793158233541050669864369806203902048446952817790581524646883910015435042032370516571630911618613443302002889857337800712963944139258088713460256250709589721329639663848953911288050120079665127604730570137031329090728814176115229286498295127229373682356870069125155360950724637103795155756367426426595720324486606380593980957999431263176384153906133268653630989685275540945899406635462321940690427239511034306936480339726305812231555617400067116724444411838510747970244438543009524402183320832348404772078875196366724163459768443111659066017484782709576670609379662366313731791802774005577124881036790326232050371861993407643360813377751473074725835446766446385032117998244714787780488223298807171521695606505608801994549304455631445955463463719186203604949720044081470867778421587481830745238263855756913222180806665988969509421568718365745039202928263594268912591613913010796081872716512410105651744882755745353756530228982235458727310325519406705040515023593898218320534066754125583174157828871454077723618614508342199686079414366954299955966407100612208157291338946272595415004901913650255551065011516387789350736050410526177034719483409322526441005537976721493244115794893407358872371852726846670851946635839751326324625933340159498322057275446924490585560233817740026655119381181639177207947340009569511602757945322262169733390679356821557685533777984799370266289716631891732104820060228501713613224296806395505929762341152749365232151841199086513338761387272756487188404682752823889791467254496521676676005945871545468026123457577811813119264055054437314259984747536605952008428923445999516734301907276495945524088663500841072461937423375300756648915862392148282195783237008627486711861153781549357602685251405725382794757112499860871949743822295143983933473437140083298179794099009663043658328980309136435518941914778006976969363567378131056368128376866016930631607346612463081147751483979606172915206829948132259714524702902163531799985669034581015025902951888871808196714216895548074692784356325852217585374820392216351286638430740705292487599140535725552447771214347608383945666449440512211059859860442532373256467054117929933721701702615308742522493411209403488230820338763782158243136579173624152229863335558633165134324841047382556092936982921679443587465072773950186957782894000117467967116218974461354533284435316908518342765978222497129208657184583175681372371080578767338927119468501191287732090036182819319623275950810948633683527222429765840856112914673204633491674177061438781068573389868851666143536145490647678378145056410722414458151110244619572429294920261505552307729531696412013209005645236238236331550907931397583860168037026817693699988474160220557952240281666719296366993276208320958785504998504001742043716132399450008263380974030438985983743867343582874960931744578440455115401401814976650255759388290335931768325125059455254287446420638064119836894358515760153737502880804848260040361622928623125335717805516737746521911957805233352883078299322654682407608503260422067882852754975451889503748073550162082759808435145249672461964519585447297669072902312551092479864359205068391598854053702688837688482265288378003930881154464434377774222783944782395429547954425662497298096241931070695888748913293563977237491029435250743168787849838658449119440200250340580273700099832412989115195975637785694569732103449318812763552098160764435768670037555578686809687404327656857751728019629616199145090921693740215988539133383824017656511853790805200936388653088855872134425316090044239193553114856011039859407388013609698372447212284995939002077517240085723043424810407989745002529128301956233516458956284813782797654511923567370094076334499028239720917421430357981705157284969878888348830896872573316936773444033799688554243587022725205505315978068044202361165019634952049643454200451943927347259566249021683345898541652412112799018662395212892435054585998866510940834702369219019979377601855943391628132314383678422030694017570785204016922425412483350005527897818108695761663647786489451913331948150742770215787850523846980740720223071231480868251941437274083272106495964642870416550037037688160277188149668309270370003213114503841039990957101826069142383917492163884422709090562282448024424418508821305157606724422698907213503638473259955065859081882359164005466811643518776471043141724964583133953871073422065673947805247060800260204237470896883387623479352404933203456089578852702637290366802227851709979124754817409940976108745620744673908717562940055948683800863711390933706690110172061556262943481436942154037388770665330426318290654092179951885339878331827176907652334674161130881648426404944174544670145778348387288161644193560419342846680200143860198373407963333542734694999169707847352237098213694914422700455770606976077769477262011708272159181651258922775384510789498994331376987504991361637405253128922770990906658222304535475938670170960233706533280873218173198971799270956232909138746645870467848883834233033371071982375452841548610107106834251274286773550468634155829394720274865576835273817569531828247442810373471295578392858057696914488632404756471820650876335398979925003006551821582439490349961220888513318736386489663222449944988737854485106649176790615714901089462808854090995598432233532259454683699144772925707990550896996496572880203918089240124769012818977325062357670317525834327180773202192868167283294337653888757521098060253800081614883324617811249981133757838230801594475601800686966454502505115699476403410682205497673093473554689070001096874884111421749866939200188635924785219418974760387215991000460879795277719156533281678089984243181253935643341341125981497226582870082364318814362456596689010014852452757321807455742788873495181591136731810523996568487439175609724241344454701844445391198434936665908737999364310493130684443906660378717838085592956183442347978506861574560135451527583622786891230713096050267420440631037142437636906353773139690602780888123512759349994172706811640516891416506363066125895382900732295160727788404994750180362610622526574596112313600981943961984130348645414383196002574815848305617880320339534124780254556340555453044558215615938017747202915840601223709381469893176821798856922620860063483728566913058070197935830066618647596006451377709933691762071313066878797563736535149457811562086339147312043187656490247557248941807476048174170676571479884503136244964839295769771364044655342504882126703422993852973693764236160443211125413684117676253111211196237066541446133931838759950089095187213259230091762833022363745477867389823458530724550033177789883708211462070496540486319430450432138271391647136720744656275675082984211962972671653339123398208825808720678158414914526996554405103720720458269069233523131514553737199006439554724235099867920501434455972061769227179797934444396751255083352929994427665759118401409959123645060901637593205492877840601787009367577284867214047002891576024661889153381211632303310961042053749852687718647509240073783260605722708848700622094524480677359063336516914200436868527403821132770178686978014104834246714597791273814242031321436417352237996225183843796860104876392166009624382484072417083688727073700155711225940858477220444283900965950808648315817714038782793927084504636240567679713300963206450323782122949495005176042511654102754509174052859596773330705001990184344977507340954387248229533215917005315726895909486991561886718082313437878418353049868313485001515101241223524382337709436422618942408096724430616825315872963799075032761833823644517607163609956503247776909245211117189144221660867749450455888636174204055887585377900767227027499958398158129991100933041118360435032642042588692496525513276699316453070711134156931586842505876045047772626876615094217991544982407662202861774912108440643472329276206877775907847661664367265718094560701357285913976114708908768693826916303723693526393743314660637832083734285668164158103323484495748680131322462039025502007188280889730723480691404983127280539195972890641831958736847364992994853436516325104245061215487272737433968256027719970919133388959617043665780917619247753283028131452031691373557711372249939475228220954436344611814614039832402703502099095860782234877753861617956710214483179127322843518924807020854391870204480228901219738319550725509165768760833209417064851091888868917422018641345724185841547565874222030294307503412550500760390747895998645589723593210933489880692956525890082113921460236586474869995283299866238969289058293952330129270620750980147981869883169613980112299554812066203374999358711912070724530054785125244241283628977506030410961755415598083891248967027167162067732449226059680322485708339699515910508212525257921132899546899904629829249042501095221909815755395388226933593123094717950340988964716816651106615723827509275491450547991730127623176710002451671597470120638058488325540358753618893886831035610105110853421972683162498616977952822648941262617503182268937240383890344664591892310052877479056267335193639593430879452030507288885162536018350630656604792749142996744797652350692563441850745932991590926657497626586495804233796744290425252773068728707832471588696915172258867604721998492019548942048348826538770042295591860019901214078490806690838403613477600608234690415962679328823206180098443015912810575122157427040227384134584156927886296389256531159050297808760965843013960168539453181998283015001327746919901806451489544597865185664641782629700273045216340452039011780942334174728611572014413654158824771434299270419694884413514241187657917369251857284210662426746726816874608853054430593280667146044169028715491332338275325764563457006402027809989178853287194805051464490444729870607185975541064638007606617450499519889003410367087369075734489944667680670870089643057018528104337146598861314562240482243686400011272507173263562324140709422822720131439784312701303921242636585173801353711769006313205387163602110675655220344987099280996934257022829700458144391079971592241711882999789460217980267748107792685909088919002729555032859650487784524983767903658565739798706948506637397193747854761456239580269680006817324862534324851159410282456862039721210779700020024317576293587719390509339182285627825559814585411351678689017356413591113115184082407290175964172721075762433068657621048703390273509244865009329948402375546084436778165350129154583773566642901417673395416934134253056676688273422434045832232586159651784653044661783433524482021048246104281096815812273274801661517633823131555733341527252401010200190033966984537757471975696963591819719040042527474750774734877376397066506199899239998393839912710451585187987861113739039638998180022284847155228308622123425737407015238531291838196553945577931709398527417552787752025094185217399158479561343396567960822809298905444906185509020797108349628519081263357560447266169400576410900855455252934005051701858119331295762283263834819317853911511411980516857338376749438601810744639207224784465104860866550578793782548667976280983646388316231567765053796280095953612765357946269200851227581894301888705366973987247553677888691154193340258633883252147125094975181981246760155276827490312430780114546435144624089983300522106690289185387678390054713864164623647492700870941249970701987026713833350093054016516880796089005697307062035273404479533377162500372742540397067282472849764826942968947747154685320480887091910646500429520585181938354334837206603427242827739034603396865891213741647039612561430880035772222746091428139806180173307036214154645171949725401248106626176675807069591961994755404650827526389592058287878665677889358081926792902763080851522172096469255681228334125051676801367788246808009815160896434337154017516193815283038928799422717541062043808444064017697454963835569068623770057520891854160363876291233553362750865909786920516568254000396309432223612753020442516725283312752569785038833870036289818733341495743283877718350388852802361659213197359605357105204457747401429953005146519353231949753837281602138608768625573429077946695170847272641239994458731804524274638876756377520123649725152523908738617955245917212822205567898510580817834893658874730703532143705771082461680957359654706250758431915506489157475714805716879828266792643364949600666863757707859371770474637676144354453418872147146326719550653162411341304402229289983302385345971147643887433154126852113866537360582025949994600955135585831956217136312680239819359166758020781593231126270725881852672994454181456148601888922202587349446281862529181653236152264329391747119028227161521947519337554883833136931566261532468920908077730201004107874048747369822507118334414197191490602558486274376511391396580404911538647015880463340957184622069076456920810035352823133979988444950174930201589193903907301658530887008725515181400817425293530075814345483783518760939336577140589071086715434068915431282130660127885415104486824371806419657565147744139628480276366473467856506882530868222299584107688610029889924697472527956013428873857557447615810476228381296541229494640865513773836394234413821720512903524039912289602416160177628986292179521990712771623473328260224987306678937654561113348002423398486050578341481275573949553911270920302029291443317259802537848766566617460041989079796715246327728771308191000085951286399758436933479541780662820880629566876922423107742111714665025411750524642019860438742514972409828270422094246029398694989750719192863112021065138375071716568634385686257911626860397204531986137536999495728087883676150049146563880755375160749184009440489675342991922917004304640062212037679226855286280715888080109035468772035160736544917181359499493472865616336924757098572046849748111586127459571368586869394406712647988885269075350618289842651440603005168852975529063146419661179026326619394444024931460434663563252030035229486169521386469127700541766863462644516578498764424594737657304637358261589677619340004482905397744979480833557507804441085345521411158135160623681414465748529293707006332164314452184550047149944434078213982266585567254637097279021439721200475627337960797429145265814922284427508047007389862644892052778349202634985000082478298784804600730668274294121587327189753192239339650678749053066718859542710624185051545835039667384753492328678791173115366384986031259291559764915003796677115982214482694945890810419577325579453723244556150027012115579314507343899803697296901527590804500478880772057157419874015396370431483248934019498370961352499707876090635966320354648882572811623621326248256760701941667680389515607577089270166122805006236592439768865543560013574027280548392484598104573186425017524946717359771710376882448746139994652093649713629194482885331989724743826466524614177476479274838892161078164430518559058747755828482877657092455705909985780651197198358852364616234657013171237102692728241300552934889213264941221837320725510169632796352222779100876416833763643052994920685025442787557637002118270279148406842832073828633424497290961132066432025139454611794602510980310345232526812575376508056734683999882134580289762806477187825987421951143520806990671104869997273395151231245225159399098698512265617593273266391407559905351332294247656962538542824943982652084423894165968765050580891555933930675662965051997894048441604177517628270171137986304390318948069208649354118352462148704484877030271258386344595984896392313606051885728472277401209692963128993853819924759050070792057437984887262399546405396899938259781839522083696710454361031155819976153242969902418608405836989929624483328073220994760279983991514517302377694949084406914158609436137994956363187189951106637702497221602738422836818295340381508455689584901639659302987366747443035819507342030627524043400498901425140305167487351500126405703658044650901770820325607210183661250155617125670166190901427269580500831744227010331437671362020411160204096598628888878670065500166514055502355730013888528523409605453360561705966632786855018773117548207302979509556969402605330974371551405857717334161715969076737786299317245860467933486926584209477340529955282759977038294188470206241740068761901007253413742906028290690791972679594537987865436119963879594973104407701588479345734071884380062379570159479385796318477417713861180405484663673692022069559722373474466975477401688825019813790557653324683300716782960646714869649267174387972754258179779979488904514724393367501924058713006036298943367544811956307125177994078832883997531866715242156415424285624287595953047692735592593465273773353441445671348648142220237160237841412126035988913542426923528963348772073644164586965639984193460904367459622431129046534821388363728874092767589907553846181862374823521375861840731223292243420855889902956397958756204530781073202867112552844205819499518810495298880899867056182407354230344422857210696683112394821976787881288004792051345697362771709287503574450153250959625289512162968783182433919703556969767045522438676614857015260487408389041693965502545564265946512213261513124495143086401615442749940804939842336412241719506963830920302379938222423907039488211634082137376258080872940479397461962097229209506268516532220097142084247770114598401803556748793522969113298229261926703185183414735206700274192133741208255716187584074905772808542162890075547390852583370202944475225078254828746546749002694608824045047596608532771475234551131683671150964369127918546199579638771121167207884188128128999145239422711186504935106660642661134916880973064512983848861858795401262164741799819615365298813608199414188970966724904975086019435171392459073994586472524340224332244153046176629752881027492115727880745863718496244220927269527017181779619507645539826034436240087765353267245550062630881245067290960359607120371817390960035874860028911106338137949979399399627668899593553866198894713941191971731023743232143183547417602909020146344509208996479584885757560620519145114163170110053349496089980494231340952329029668054961793628040589693066592877847720303448432291921292709321295643439920794890310163706854726218862333514452471271582907991042758804535228849870205961627937564741247387570020883567589395812294808962422331900983332716575142304817704769901360040704446422063359862310178666478814055845205588522966757486798895222351626773809090848884232175959963329357237033004543241373901758272097618109065419145877187030861877650445230672702045571889489416787307329706912620768452307975871780174893993391987406123146442324909612132798224519094478354920928693014500351560768363835285988169251926611105579180760588361373130925328762900844564857995869975162709496970013728340580421432031049811887248392722879810113124143988683526622401728980452301708686080631652692627471555208851986806468035474842726264955201845501380977583043891595177316850560724544616595679090748760387722777208465108967949775881483624337784268764382899101897154194898603893793095711022439343352057194178939550489336737686239658235223007029945617385685032903154823362559825723639070816376965740047663703078773842214274596262055356956837964847993729335500476894001729188792475701091973121427893737023427560029370235693169866614640394129827242815158461850102566068954462536799361783303689864878081856100164882566847289585017501764454709211995573563768497440864962334447847925327280138371575688331029337620889143462757693739317030184893160345675892251637976262651998758872596846337026051065362741967047547768288954777245361209170656226026732366229026883464503965433907789088352789596674000380173089468048499558354364956581215548275972026380942639764184635707481252674570928694792923456467214049699382019807853887701747000836427413465288818456094160970077967983900280643247202697916248080022791853400714046731998848331947049072332560590034360781490237189031867086785281346119769849806171801963123007176403503244276481876189765285404095871796462024466138357660099933878431121847195396471463395996289723467037025710036505520806597029377021055929822199862942737908775229155152341271095069098975458360817895129336759952252067229927001287881364383706180068429797797148978680131742639576689462328496686747799227338335883481211764799149912675292984485340317659153152747564510022891847099947302412449713625184721591358847680219456368646067825081510354113813950740281751030687748735466753876085316704828275441871477892806766842431875705151603036201611018846406067707064225456349199915104226763896297971822805478490622882430199654128460598229487350099903062689722932901889219635597219497835639859349763952803308275627478394024788671226265981140833884415434921372057047855387205452709082449714299706543529485125584238029119424871298386657428850921726317203908352312291632554757057355601068323853765972423628682737360990171354205526896671611073257886961250900259434702877113146352665183143527653534977565645027467682831086388246027833410847182393380498962826713761309661797345412522031570372487616331567352905716150384758275768726130220866131589287563290088841159813821864886159507661459008893109856463586720107007368268559081588859070983049661678513917628214103420018075492383062499022685559788915571962773142694134282436164378651973549042263903293244509775137420527593362428761497832239518167442734958289508680664622677618723613227831561572424511402791857387394753402216899612407564525212708392289427406448654647842086922834134733181177140963725220962648136554328014168931238356937733007523038948301898757852961105916132083213508248292837022780720863231152575590482373941632314453347915770648457794857688969734145305805608012103703201259140534058786730991773891869253270634206335227589639540597014071730365023036652061358530148979169908827740723821124018826001535238528805648403462656365086173012230613680511351502052741602889647404551803271213915424558365607657586236961378721470541803393503518384398210376371107458559351952185253852938175208178840480423611025618049489611454126030298422009197875323464154009144744639701224199154228867889782579978962440416711357512932304476232195785207931027441477116633242717297190617252630452593931064801474143481238731494217285070331463316965731159918085374658240595183676806491924428546718150161810270135437561816871860857202786448255717242803490779733194593536815013235544979437780735717366242264137528357777014888932481995756077397983307992541730871973523429548958617081179897686432087053492737543401322923454573122281364419691364252169941446006930964494606816578044637462487074585130074357525384668062835873255645482951073309355529756740243434593601644491187143945802909248330906788251930864398324834204021351988443089294269312199984177079726568784296990571240401151313086006700298612038491632130454218545077463964281619473186501796716645222252574682911668488491664993528799738061504208296469012833282127837615105531593474768706820119234109182680189833425289812441160423320185598122685446595253117511693390517428744782134985559435920087978051805261714361784367926558723408937352636649732893942725368674418126061124818353095006355948813133489688472930121885931837761905721270796941344317846329915325680529310547275228879855647907733232928529588462651606434717495579467267334543602599103469491166179317975157688407053238273194703647452779467410327839042726016918555313544354080626100910118529966223191081372585211958757789631954922456402738487405075952538894492987524186379221010769762244047078347454686488942214242407803306726531090390047947835761600132484256400686542430272204415496310864490567263877213714117188519604704503243746957759217056680511446753563301639463739561069319018911581567528243443610732295846299670469464615089816429306806437893002332765902555392341178884361401384457623127363531511010270546767497768973627245739295522113979737043234689386780884474113810002539777748982923124391327364913774919286161759696643864726242115307680298971323938702633554621037629937472279860289237423369895442563367330869235925117801967220162879253241639782246017693791747064470260290187575121996553686367789859646794861993356240190023087393503554512350959178595998730436338151796373542827677666616021412774245082173027531119091833551072883486481260886719875208488291304270817636658704181999204660676499588387539484453171932478874392143175270294779044331082568001719646575910079537027839053874936917588895966495765737642130636467840471799955299578706946019174894058881275228422964032151892900209983101719686388598781615335010233550776650011105618689128865194021018802247255556196316294543929832687981787984593586431478322531309036125620448085721599927001860930747190278444265511585524995548119806326285292583675858147020397082815093602190115698993574737963803495634054437774873879242761621685568366213589551559612405337534071298987030480003154308846533720125486552190115668038569910897932106775309685383902047329709964229093283371907968175647254089502823380305401714414872299554681625631556744867031929216725158335447849238360083789655490820548771296364168144255163173459094381244283499322343808443260034793153305748173763879598628169399075864196787641625785112026919620167744923791493280056208571552687023480399048479722289661102702116103076323001453768289102800636362302249644842529941306171370856785643676677039687932381091697158547179021787825273187629310962659282493772717038454930257012330796917405457638614843390618998740962989868742940824869868493871788182319512006207720066210741183364711996377640937601543436475971160989299976585102413464960518776069367706628083484563802894798926881094689414253019741777543934098531970510439235874284861738910912370497421019465516119183879815728720439587597139428428869957989486699318911008516560337352832243382870776594117911918040646191170236802961053433823673796645982264329330606489284896444731723059395601096134608866662028722372023793497981287302139961785728695979350205319220945427834206793893904664019037141671591817091417075499975796805560140337678550003294782283419023824904234896408451598097475776232149899269444170787502804715236935332283491164303323787105076105316599506159627031138060392504793494881591414429996330763990704102588686280933684904251208384151220419186513606877716708528085226522751803432195311281809065169667796967592451485868007939104899074133695000634087199894358767350901242413704807773797979671079071406222824569648436527752157715552354517304207512525271934965106768537019308249104934759122836124607992888202401523414886649010195583606419197471546789322379740167605315427684883683474750542550603193100449801118293818504524812097280696425817247968275519751268938582516081434632526660549470181838524514390305728385835507356300407669809954218245755634558890763739967241811778958845514477783146661483674757672307296910406956107639936883436470518846401944812453247289811049396067402235862233931791797671534483540020271263057462030602249829847223251399354232864283948870046903999583160742891158729823603553959109997260308710134357878817551825113772738955357759600142434506476033169047483859444416719022475180532068286033876122691778005370336985942096733417226353828118441011422596610329924637829383648466629087796983203204073092678678534476197931779996680201152167627309335540965622880589990899943725799101323907981215180888463972360988508840233236716941526336040402095472671518147283674668394632726959818429846822685359763142337660482236103870485145314349628533534142528730535107638836091749034258840577356804288673537644121728594587690003118999217375191800006352165364123868328378342120131694190324947053727187093320213689416850064843005804643285201019902783892427642779262230086975777952813623321148884569811616961592464215874795612323067032983128209391140251250754038920511637945028213146226748188935509880533186411936120102895188048665942294648023947103578167810410337570775351076882937235880537525326534915637651641271075872077754306702577973967917976408313044939489209674593617114989668043841867477908798731351469471621501379063145532881952754931429802396127952801104946015782356285645388806648707277080774524075566924151572338629206955733658309404501463807402642188427557440779109572301815912605293374950535655668797343427238194338146271131060755036627231019977746095054658919929584627783784281678896795012626534324797733749454181379850780223458274056613258956804630483287189997210231314050175924947868845226209521657563891327812569049323777860337793962155152941976715005484168666999027756440713871174669006516523765286599184312779037640347621163466430016045064446211492415718034655630029357794383384998218109651900714551767882353740267061265827244795164321031410185541306944164428688642734303166647208323055211596856034172773815952133665969322537821056443028349160696463159138586243342730180464685627700288879596401692796073707861973254772897487903825705136119081870186722747483897539273237567670064537812508051856878499746330750750330209476372632061307922622240516171473752722268803363162237264339437087699320333980639711744104466075588981072854439645222587533993809517864876270517510415266208840988432617156216346968165261716837326360206807702352190996801503791719576242838269516890361650070634491747716902139898994825833409912631911699513489469271063219813900622473483583283326015653399106530815038473366607608927213669707612922585835449111787225135352992391430683442920002079005172843598988382988788234255829528586630976491201203245879001935449142573686756177176349719765721002847910267559818254965628334896260194320638001271718358928695635938815009979571199214939282449712973051041572505978761792008919983086606214420573311945654508234006791402969764189321469649275172231992706228215425353718799076968126769512459065087866274273424931792930096152155803589750422197073445096677715258449786036499530484608321414495132482315383277013132759484551132892632323387583235188525688838877714794708409114735258543197712656352006024631956376663966419432162716257766237394047369608983438287759386932205264909331285231576114200845530839730503599951958929234490702068204394621683460580368275375607506427080601525081005269592455209976309062396776715896509484517053197416777049604394381016936302392986289212383757078854313698110619653275599392679965522017004540055004834570350308479799690886616213935631913434440814793157100593034287460649267660939009385720508548199206690108018082807481473819937990315981789694615034131250177529585671189527138094629074715939283883446712185173357454243033796119328368940152502710726418854424578582095856516700378052770596887035755552774213171775856964870557045875739123257107378921354418367626284961561403353154344768787632539046166751756422451649556250209420604848480766525539482437140029495364159960708215459269873031639055125233660946354390872624929699992319296166773659191942339591472496284716082901675266997154107457738080246479560198635875176755392196921672149128001549163905345152600185746824557936916987194657312443551021724268517904491100304472735030803034805901337191046324980087375455794868889100042858941804328767125988686687066803199802455555665419247651594766260616486831053269929529711667912268651652011268465505528491993892651285639369340857865597166839701878428481565631125871121625057828606948723073633091333699382508944589507740524349322793172261389186249340499109743578870561141748054763274073240872049136673550898796405005926011508138041508656382273977888726431007495793880716251769152405862693714708586244774564742507415995691158056462687592418898594268173762434594506257289894497430183921837713598233516372550610521713232658987657871098963542127008347899206660565303457055537147237947282519302780527362488030445817247483276484665082959297879329886146133128685177351193867850238809860495483250702818810536037781940051440700301612370000269915572791350067056899565769408879273842721396343165335337509638321548560814740423119221857461435662536226534460364485373493816217022037255519277194544927215539161604040583237045135375430910370011473950935813488813542615525048152191483252178474537442726078681987931408409715329820821987100902009323949196889807223487046391904414549085508784969984554600584196179331775411787529464919876349365165635704717102154544899462255047925396589542204369147777632194622135267214556058825412244370877797143882917641735369178210537876419070297875941534117172050185346110262950320759297310357171847975262991718743892158163818119287519641510920843069365538475441062970237105777210306016003190451014643294924619398349542142552489037758322267787157798632186886559739685188038360755942056104450465845042116399704991831763796958619698449838029375266072372913352886364072165285970960433383584365941492343503238165349548572154707227289909205145797883975442679377638844166065043435625724844876731590465873281437203003905807254092542981915494112141562262875936554039587779849391483858460271200045368737288505805142312744089529071619672307946503468850295598376443224331407181519076650348348579334687126300534151875627428828159021927351683328367873683733365571355956592251637065588425518329926028103824633438428146230173181094242247872410143093477086093459717346272130651424506014693915620135675735876401774915828265013578524875825357956499936298666330128744445905571734101269489396801483737109431752998141898755522477612739180545132661683548586879267519625520214737880755018126377823796759867375509008481333543110601012975528596155417262051988421160836698639505493674247205934743345114350184074822247202723566591537671370327460643328975003258594275608100735873906370755853209020617807584483464926672882059218582804080963428324073782290441832629787517858960333027874572396291233227922337094467385057922344232329314740347576049505778002724428641817561131813901172937194809644036343379206035203122638850268567451444645537676423531892142500436324403165791535793577663914091643537609813573014236261174900716249737294518895333802117666906553176514280409124660741543252963460413670696316893780771373060646212491093421928902376262682524744218006484207542404786532739204075005164814495987533012103506425612364004635874637115075645478912851746823137792492110971717543859964761525159181842392956281292309379863780684294408224921482525197077817897428551917212006820536774849025792747332848594000913914169189904199783763137304926748316401331449121836900334395429028639672163286849315129319340868314373728829080868914520614344517722533793674915257441048604814482882117920622136003058613705037189766291174898316388372706306451961858077547582048171306902860677986534216945276529901519710766005474576625452640572055576716300398205325361053797306801789696055393410513154902548770607746706162475219669545324778077007708548054825540832856840279444522542541559748152662875768989643627555693723997826909672042602868881011068566523262654556192164508758748473418765082864835911663629143853423543948959134163969773864242316381075241451385897018108697011106116577601596922130029586738860164559632234658344077784428513139917063294363017571149472690647664357808391122865302510069241511884847936050306994809095612131963478550808735455934454482416917758785273154892611333528575045546789831846804664494284795854983419340005056404415784552308243421935541760560849244488155979462863737423215890402653690244186495926995845261423115564691613830340024552228137245829089236091419215009216484759755662546313845287989560994879737656290417658798810207728560571987957729077806300707033121184685778629317426170960496100236576346785986620505408045210317004116889680141904735758786968961147862232653651832282206536473646340035186336304554701786382489213191708743326674672866291655580513294873409083341789235433243412234781494918516800845916387006401574299245923156967460329314529890505541862026953982992831655379815341531257060246031878290957134932042511993546679781304589494942328352841868787700679364907242203868511076619805212751008218761265244424869120523067040991637379458301302732112671168880699737240962920924865937021718102653761770098007372939077895903311157788822653111054094337949981507576003352165596194986486267068865973865652088400344509856859942628798525160914994479933130052079226180277284040646827052053054889048536279833539177260633096605059718230746986984262871245550675681107329141734962182192209370240994475194316797633839798363068352500266023117928471017535706841749440691685219644566147751668552898752264650700265330406489023984412883067637373497172767708065108638877047415616367423988643890871182997139609556661637765517363763255466546240237529640786501484918221793966672241439015780615685989288600636203589138179043565711264626862551197517043913855641581543059595259405157696400369968475175876077366553244262769159558771476037996031733273039635955092063196565657058012944413785284026407392524336292360875987134359496115935996747242678257958911478899745165125925463188503057500851208058082402343709346587302377652077535981696164228934841111936302902421058876910223869823171649710789054406012470535903849120622865442462560460567116097961203289688885016070759628755057265420192693433375384346021315465088893427625847560472355326456775394729407838166174273496218060237067269019594136806028633827361222409361308111578992722520579677218692268809287364821382743033427392726085245711160889990409838385680280018293728490827463316986837006601524911816325152848272022407135327101522642425242782938690949239392965365484023272390696006635060914347250621053134233007179713861657968317716280100604228764584056173478058100139802227924878804565154984119310678634470974338564793965091427680222026788307417943094887307417390788384701905035635955981153367032261542748869307056995597070415858572923070704080993747515432072344084770722904664331654176105154574661966063673142224690812824774237320667340323198092265364561700054236103644953748094509891763977820094245998003738890487758633988024111296996104439579438283565366327910922540524327348318869098623505368825812802766944510852053639204390527390333797188453340863985768012488812402809953413967977005369859046274933747644122097840584813122582378298860459071122854305724562985084145636646482946088698004342846125680163591213097605261730683441078728779887293919295868569472787513257726200661284742718179442404328717630571815526429693596665382578758106523987913519195126449218666740678184462899044308121619435629038513434718326094278688110460340715605805470576336816058510794743840975794380899800376023838014841537970023075125207336796674361138220724769926262319449322473348793588313454868703538161350689164131611446908146924183365900324164583931227582768292864709346536588088243847828265439942554534102060337765616274457985632033625221303070114343179549531112123367351802860092138208671965900906220645186318542672885863203339222842615840722264403021399902389622036314939735795118667447115953249694859359758068652870815380561093342260885900212215650677046926344760797027948510370103585070562214403310057592879926169782620854026831620408577727970335377321620162222022213291339949732124198959569054134031449269583925999935553739865895395841750408548661733594667986402215191480609175129181785427252308776437325831011613989111120524825952835198576957799738770734801838255372701645444048741978286683578276374825917845713699101744730588673036626752156559965085196422172357634250333898840584932829225864627416101079279601020922076513923426266649948947943277389796791366094171125361373893619583050560045797886802749624696546890261713093803813248626390886741260548641201858860814298329641931892383756188544939524034456593929369332697195878963514780098340782201412174315800885527069265551760517384707361110843933942732522982975157193638027647220742672286092696621268646110536650193026549653097834516725556290385241326441196321700795219424425818433651223585976285491094591358516018940145315414548537351426345978394602056258694328209519976378832007355070717504306483619621207514885107944606949992457523370208491668843739503506783177042844778706775802798554636069254544378339577434520840475821030215136393274843682022355200771533166873198819303669425569793061250238290341178002293538726107789773203429754953418629501306497335861926348817821816863252055273674203910273178070462504058587665957374812937645935867845118861276146589367413411816611945721619169368328831994321890241017169092059428445402041637678961518137817165049720255994484187340677368150891445928526500209532348289261520629668068167834878240747003794374898615069343376379894938791701820466593900002004355452020095107623209997439268595752133202389917396739534051459921907759107208190255724124622310874471192091580717594961051528678890517134255377411377256496588227471794048949317299705223881488601849906926312611768509158948987954286665173880730426573286730099207079868569764383265220329862666769289208874837470628599779452935731712116953251838771766735779587538297709102753151935901229330576762214913570797105266495280301249262622225105926097007010246259483216185051305808626346143669675723624566745568790962437369935402099057082621167307806502429233068199595358129285947428088083042834172301449144983084502430405407126826706048142755940832376678907929145248811392032835773696589791493690045320627171626169051611565884779745963781805983729970010237723163855822532712020678076959513238309000641012181440358964109406528294072452384328665275297002632256286442773347688998831929691686742791929345330312188511192357684920106327592730852888267551824315102242325674175831557377586753199348341797094195823358556086444387497511942447908403508007134562280911574918685590235267657139344240450629127587750065735393324811260680028665435345582776315235710209024367325759040432337549251344012708041849061609725145885451128892153791407338320534758300211335980907556362468672849272495080699771530087568920889797752811868022244669591975852917588700484213710519155336254126636308762286904347958284344542338128070180664743735642143943178346564640214672475192224213907286154850668526652531225514158694449862040379879617102674911282418038322061037297576531872822934320415166851216098513801203934339060994870995685378558661988047455817855150613221729082956090061289144226888848899033335191144270532835903718897757224310203711503319023313234706967358114519306202662891916582197384459540235224552708002327919288196018089906673434000268884124224851787606857165211363479301143591125397613400191648900244515401185018713976843158249429368507706603313065511977520485312137561471304159322222691978442909231599014382088272137844183768357835003746873239052407348021162131790180271617564949781139306673075543775562050602873392538706895923471246699455414381966051936611359865191506001410740189675441235613864270914454413158633040061417396352108070008479132159872765140734979855491036893486883697015192513207304761808184349865147091842826697575032396318389904074845247008322976972943747430607479753333809587420352192329433643172585340629682326454858913927060875956062193796613600661620740067299942814215491101250362627959932738747326454639722798824137031431022971514791642409349875662978047561329649036108771845389727224311478287814066033370517655117195307409851074101384650980887530976116315900898297345706335482163846694336131427040444279364784758339826751428343186845245475795445796697956699955216105733708757402593377304991487831060964125597256436950307048461911875841920367667877743329920580987849067993933607953778539839965081499116956314039346336105377901041537677833808300527202762237923296511560148412953761755522383971020216306765958689777109894009378855552070246006722336128247078887940937600840223901960349765020817792495584464688633812594454908123760033497269471502565108634518515614304114502909784547949234636508937621477773160819489882975116638502534205525917937180325307624078129785390602949658140343151071256836109981664106223446337998277015273403713783776030001031363186015278393301863015858839878531114379821487295119567155039354586871781385706323175424988485214584670044898587556255647993881014405506497927010192399196184099662564509613774058348000769858152161496206547333968706920284097311339969287233004782598270758326240391545947217062237385190690658996919886348391472227480507195932548613295790187156987903557438380171602794913916500301362466696915679554784541573172556299754987368656598910488969950064254288203135621711616962573763880944301206905030839139873249924794659277021145213227766448262459210383979684643915665579669713353880025435456878300394713103676877537347411798064346507484632824808710832891042075668659878527565987612743121617027725388491043254610548828583932355629792133754604785675291220676192095379743523452098659138217694252539597416418047815565638883017671367906961658986850098058698169804203706015158760636296581047974129470558501565500460912841446398776263505663656135406598506287224496152983899694051346712782243817786851823795388370983504630531308731577161835864688991010090302684573020217866677623788055152534577601829828292041747983402525429032689783966761139212461853126109007846671057588345532787827202045817135336762558433055867691439280746275894344356068821045890396390459813124914852689665067050884743350665544165678652336655431505870256003361682343901360034037286300229994991978436550618796638783611646263211145348088244515336848974876507236617290202298094127094772651744135461553643801823692944530500074314268372643067783963573021555239914571622155724716872841896350460005096303869933783265480801023820735095705953836533020929952095794389044542842361738904012340576247267604911475928368120889669643185382557859610452194490686015381457827762443424789164053283754895057091260397675517899620108023527861753031974785091730591055814533962418961899678093290377458536869482389168207082393074079281929231215685283161506500113227987180084601039380480870488382333320897190548605747959363790437765636467191683836551926866735912055864094209510727121098937378728484300879429427605823255644896991701266582901498841485793817532471894022301133298303552370226643526593830810203956316297541320069510516583440646682454959432334825801319831654106233877542585628414136887941116401468402569100807418083032962102879116260160676933714000223594754369700091143458310425722160547886184103944874954311779996121874826410611216233960385971346001775727471130359382563838332925898243224986451044299356311196288026037834053420303940586287928040420201485030455690396236443958511161526613408542322179156797772090220739542445523415974831583914974039662252136658245719246370665276881621445212559444304333804672114241633925266094823057777158788129927956672388881189296216863760439411849976274760542262604679536123552912632707802592901501045842201228706230635011441532774612263657118304097798275177967709969707774043618205939405175606738303875330674265536924430522839966205274336970145813098992823160452625599593647525487102130534505167265307195862258506630867358525761162963562701707804585510437343575812151767174685923920728550676652342710739163744922268153686617765669151412260931382717107602968466732626007012180023128362470379819261637199856509388860711525048124779090290295036708236423656175011743781496654877557140051225136343572352383955781741917720273805043226592784406210984949980121170199124813248600265457020537794991728963387229310479530642279399374292266507682293084581008006755507290741244839561036007381234992259556585943286351057567842762958878929017173511659411059494036510965377664723423457188323988391976955934648953846673570341837513998752739304966675553736558867435972397738277622373866017844815207607551879910389107132603401049882465158330852092389197840664828079465780940332754859485492751280158122921258826863486941118132428671763341235916252739571547728483755824291878374683040248585999601459363233330594664044937057270025764258236498893570242314371124687700079287523573602817831850490855468911584053252168823070861290387965512874040473472955647215260546293527449742740944259117050216108728155173278208788584082536116644980347851186211318172703545128124718536619016875639809936975583275704852272633377656192499843184064246869502960753476017034169126561021333050684411959466396703192778358889849243536758563831343344028522557170622184605994281831817789037842886961621336588255156252055395437335143841021487002363088066785874687558800552432387226914430263748949970159567982027197888076343402830945143798101839464097526584595049591550218389512436559533768909628121883068837166955290312122695878060340904093145245520853720381152960553242943246501837405624408723661601180534016728866482849971487781976486500134089362443685889025642811593957577439887753362175808380377187303006019772469987332261095956597338669397287370448647366949525155007117334417687686905683991939912066174935212966579197071235410381340047146909764405810388797103023328035680427720232505901455504599452060477184525957419754854125814911235926894330613492488857854349743106062081958921484824063510139933026879853002932502299257131550005532606452798542590500977527106540181059301370924163380711138500098260670710924956730751212448663964040295863398919449168848984300385794950212885291939754368954353843475169484458390441247065573252258488452058688182498364550896451069742111078840703485377951941148899319727469753573813527298126426006136012090936615834638237100784980752673155710377197402792455231920683180259016226062438308092430137939969411021232515075885293943962193885355409113446325002985457495322365772832338379235100687231005288052502112295352122673597484042161448310640007443421445806552719580711103966909144530426431435046274965923113443826241419836273425474034707128588099319844132593719782274650072558829272002311413203587616229393969773654617503611212044585390459342995078909345900304791390674327104963387796763265703019271200160029406987972562673981663089098959005819172811845522528851815604048681200996012529778278026016903433519325233020740185326937094410509199073628096428843446942956572016802231075244116259369487334423297697816846019673064920210704331914044688552500965853765683190106108032732945550618631531689543900807493670512842722345706108019985308597369830730860911294154165901619275057927538480012138025979964817180843339065924915288243900811539533871848437544718481434321659584437167320221253235301178325311829900324617797959690496069838545638499192697248030280413452001055007337843292518409398332881605979429786724259391968791248229063341024082769028187888637355020767711612067390906346513446450766185639325461700438251053301469053681816741660638719205693495885562419535382461545678968158066523281549616874682154372704629151527914852929745652004896516405535714500712699737549909215281857817069684493545283733175247814207301618357365075833680629374551673369642154092061150053298756775761194385225172126211981072793795601521385426544882941336623779965051974362508293841138250700201579339786234956657113350638931946688936428430655890887535690537109830619180322388961866795151984436327196641489799949973944805383639091176505930099601821137665791203599051726100810741959678495888897739828432231775694874877198580893534014349668401460214569612640487216401081326778071168722708838812190877559655798141410805079361179741639216949368263017953995365739798572223476728509588381199015080272223809362016830548937283995547199960593939454925238810994977319596997158274336535504932345251793889123101701309932933339096813514113997403906258434615048473563761635538670459973720975177455203781690904908568383658906354925259415373675893701782199507548629098791411536276760247354550091904921272736652807795358655453168922943779833505733242957294136020806449301338908879158449443750146920117038082421925510153604489272691769560109063752661489014214742448975324365529822295393788500096062881587944501768551474493175097572847052514278995372319676830127400548490706802474062589533852338480694982020167859044706477273097805158703417507776568010019029597607711533078879021871836053497696626066128680361389559709689953036422481440363773134721725675328323499960779239968012266883642694730275698775422511625259579031752652395676775039020080660325549413333116460333296092923914253452003214671077328113657950875391498758910999869316976275596670777847969201081347364527453035994326260133027014673336782227533258294316708208412624631457057195561410206600814031863664894715586008658347671790852129606949261754087783568043032268268527673602574674722952269985342896254381004316089941769170306540060745054070289542401640988566486747025439252845684691734329106104563360937239734677915135298838161466296691930262253830382279894576120727941503185117814246086527226668633507087254629864208637769297625968686079221651542775389490951395972828450746896165464420026427851129473975015525874379323460244563964063502032539563348604535011933000707547089372891422106815372435102606858073101554263528215085464502240809296370019118807521467608825678958359003825418089702510486411454426275969053696858232769451461968595780450008988231733698255031071312453548748852308461895045108087553981092240176012447020963995206673011558499075126813774822005925865752968170904881688861187399858812302558582958977065544775234600487620929797552693853762227795388783976176814014670745277589964348846656168660882671530952920955242912441966094243724854814604283030737010941903338800417875020184793358204185963741696778199616223946896904387968123209769296090586349282888158568988192965395509141088132511554397188802668985380880711934557868968011924364937135246167760752012375051165930650986382015165609088798189377610920688410169484733126662225853261154787637957392450644720006053525279195692655029080329306971676674010175758065678111471069151366574130469401340090101546745213001779923982538092731546208873601887489918170750840711035395471765494076760978036120685347711000748981405963836499209132389347497399097242070272627154022957346123731552836792751398557569685371353104463521141523267013362347230786147655953885168731010259600314096101700174700611368057690370692517961892883136030475079157415971958748929849315168582431269429630610371131340846045188797383791638266628591308386955278003394395618851310313609568634332272200501109570676729894169912949084044857818337279863419170747192909614627275473988243543862882164310493196549336434378351839193001939197807003700395470190596669836981558670875270025984429531085877976318280508513612860578343024165129199054070402106746006111262701703876040762155263927959163409608276980635054306410190623479698673792293126920771502337196318766966662906879362672466244283562050281260581540588157534688226624083885844499247752743600129266735563402180083453169711943326028129214329258466131144445229487602718768627227269776335712816898473642211983175648605530971740115397628595023854865442502445580479786010525178291367251329630812848678700956264441132601363166889686161824390320365818001135935525624892541199777999058156655802209840209226614032528737781715693998128350061174419118457976635235657114589662324153311946888838393670779864212382331201957726147691400999544314920886859262167471761131823981855838928587306582537446565243711355513110939025970161073554508321929275927051180966716402907621435443841569154339847726581209021611392910295248723253101107138560484591047222687627391683614940764155335548592894369139517516588044790459242499553391390804252644759809505854089039373977137844837753417194794662109923959269077429020382262771962578884251585777786894034606213618047477447137690154125759254805611833095048909851862173821713484044724732034854464041682682517770511994761820227838990874463056309401517014101913697183876171423668574078925407486309450710756185717613272387586991063079312041284460778245257361028402533915895188449572434333688527780290414287209974994865143542071269881242289637779686013260803059523187802733808019080431231333154700802668983249470444709819105164839908827952017276299041365865677322896070777063232133276335596282631648702660429026508201377543799701327856126395372723465030044695429352997337455447369836251276516372852144107589853948641616044776127641119823757276972045816390688286858982238544224231336103581990983879336395565195098306381187658864957513561799316773164285694115333809289584577837420336658303320745133842483390929607606191619888460636884410315694905890097790212474445166962501821252631999558413599554527574755936546006798997043302042331243021981292207884147938424964838564842077584646496633283808134263713361710056621794053511288183450395180066239700171252480127868970203657486368853873054552096185799136389637220585601360298834049790950303904898862723729373922650946090949173031778698609836647649089672985087368415392223921387273268822550579998812370815641697112107168238191056418647235689455493577137004608292504996356745939291556551986309836953166600817256910419130986274467392183510306190470701332734323858868978384530849704110734685452061654260701614244901867863198769863093013910967636045836082178820283589210734076133134711641826023415135348631809471646345661554557422861887652676223288992784099861875564830102456865878656021006111485865752090173571135984872241578613234383925897285052826088964021162879040144805158810177055062270198537115255596112943835291718651748820455364160836276255771755299456029005769668167055848184215022962527957496590899120815963569529737928771916778453685166785353836792497271101272568953971352157150685187897380967562532233521866553586247160744214385612605031080464926548337630187975881570770500696907523674075248217656603471897024395622484951718629643465630621715323006467645105618111630157351910453583081474060935808656663146448654907203448153733165795409376833230256278352764062272653079174712988658641338939168185011800428736039813934705313772483474572986837257234067985221518359895964338376314481604382004710162391410300147954963737389012502475746458221168025405170192995998819479310521239273007702067974996772975992369464212430790278072947055116736512058647248889279105281270591795628292501599830060213935524029773343969060049663331016452738472688264413049488789719330713166648083109541592546779624677233611118258241717114131751387139745905982507584082855618235914970048047179633193088624291928263443447856625120975171657257995273643664843268318130860763756316105312688419671698072086395079442963637450640658588173441299722358107465860863584882652867354497941789478536175584958466409441240512066283335822639344277387328129080730240847075293684776710907225422442606980726370628213291859071488440169505920178729530214837584365218006888703603614258761198268637287552105094992966071342928442708227476941102978013831375099615376796530188700900200755357796614071163555180103223892506310623224201128623698140589018438928568237003153333088848683388163688939153184680736442351150898328118950165186450742451531708943510959255863586354208128976735403081681802036253985752821195157685297058398888002469714548105571093622133926654773659990052431975519844087515980090828626848945420865542993376563289668748192342009282643617258824289412775961736177248496394012243993492672002000373591076796657738959771664473724402509218997700555049449132628551953022152280490117513225900002962175749797533031875468945072121243273741994737797048781863839002300014384538175684046918496563254050458513381139568993774729475960517661074855034520381033330975801662021255454874144135189961900594899270015741826968685294500419342523208344922049348212187421340253484873496362280167496994826327315871712349144661596179353209725938992629048019942378910284025948320157107569006706784111079033688344997966061812416280830916484458289767430557718094297972290478345440397857328540018458553770571904371318592482352936693850094234603618814283162971271621515698389237259770864305073703889803913099324455427966679570902529641058459718290555044173781316840187569946114159591497506806015214613965084233259899173109853810297536310502311330421371745394468718798503507660379217928612342866086789580141334949390681089576273572697181235362673004057434087065984830968332067704516969369341012590170667630117789876290853344394095983549584116033754072576647556479777214059888476775918644047424110848794886971237823216992685995544563397768798187118591627813684300185227100275977635958339130377464464056297611196622357857508029423042519310061557668701602243043856723993730687609147134790498955033589118373651704864211336959431215188992222918654165284362431401603065962635720460443317249845801037650478946434005558896456429227113601614377549785805643811685771571148764776695294460323792422593888199329390609388610192319290986741187016160765855706556049475502066977522106436654996456472334782110588178764060608512943307448310320633622058798321648622951434111534906493419347264887578123409309166981662029749659548124490388932116568230865275954775694450966696480881364558975670030774646761554294006969606773609846529196646824783806736975508968991926201296191546603090437389730290732925266039998538928743605445612831682824215168228184795979408317311449756105525961798148913445585819484439044183058757394130247667009765455964520158697287727345962935788147785976705592183647809321655261789365892912057783620805276828366058041544820663333849192089188028238265826640561576596185495067675604383477970079446842325837857402429493653709164480855803680621911451648692074933991467140242705682627922438730820232580428525380920309966112732776586313997255926795814705609374768734476705803801340564470519115748252005919295671017172857925542295284561316071959896003609876187505660487263532708662267199020064546047634970798931801019019625566534491743628202914055525361004702372962296903985849488415718710859718924410889923105271489528808410359364508663939809070317648845101101078193063750859575675176829742974213123378887735224877233398595664378511331719028648681973384371007992932845720311640674189838222388869154257616932455053235015097629640832076349881539257569092113829652485357231696597184882976368014562718962394644003690824454415856852817352391490193151254034258037886255172615813615360507146789271290654755544996115021978815903051222479905055772678959851981945615588539667350169194353638898967616560077910889316616256536519261405123823176209836808137364484699223478547458579265801653684788895964958797741101880940674486325366500787169076734797836497606485956352086722489170215946229005303654912094915174740293864481010449428431321152327262526218891402426678157996257475199194253407535583483221384455581966646732535342739950363869798123457861455690942129877012592062174008040494667495698394071232336688272231277052205497904561494840150073081806108335356301311114116928989198137689386332649483609907447061546212635751559078569990692844654067338052710491671144228869161806487263099911497534713537921767820383621256019539464264171902025660408988719873908745853050976146068188298273948760564039597531057557690491416104569712772331207760115141982046412459462384870705930544264312766359047704959273968940369011051528795258633837094955432703259846385520591903305583885119685398476739445398353445518111186034250623361187539867241903603304619056110814691757120637161026202992241531652737445773908406825880252348877990089971122816884548730330656699478464797817683487043060812460496485561491969799206668230239244589396117132548023590397436324672102743170997383384660001641706967633491904883098666770599835674146107348779400958619879653466297382155429421666652914468307981309421310872326529808276959254622435572333437437057305178877773927711189508002624604931476248038094893916246730986446715967457661549022972586143200048810186873955362889066719060715001085569963139928442553788446497576412078870453071206709695429652650196042633610679933284775122572135482272417502935980076121776977266478694296906712487469799025356449050054734157614967850260581128471556305097122105369506338841892237153094791587947630361345460992563509638230105292399299724425925714496128656454977323571987902016297204254781108524004315011037193123364895508385141124401513436174102814032506271157941161607659653029509806642664236551013647079720970770926153257056284029473842087695141925966044771260831180235214466174548186078347047907185009923674176317944241000479703006874658358544213159230712878438256853026295533007704623447186844025734203587985472062818030585177614826324176843314824015360907765501788057784429755811403906453527319465905315002387677858836950906845184144824533900102166200283295005319469508671445667042240763425200792696783626014333078648911096526433053344693569604793379429353546670506390243690417634446131151569620545645637032819465579865034363910043198065550331314678264462269156673195623678154807706928698467807400705970520620588822171165354575263051190052258483757405882658882513988986379807908580704028862081250537894292702310762141328759159526171244891289371157932036399642642673104207793499908584006083497482121019884932387193952172472326381917776456459106767633693005387720941527982426863280534590170996386807197996064396585470893472972551149660243892371948469899225552114894260264768175705686245680579853283237214706809447713338124595979860124654111350805836923220589417978747497681086480878370146879306621951860993261014869947079633004621505560535203424301480866671105538998879555792696693716068862816917882008811629796758320863756497971995471909107089151575762267484402397946482689634877397093800995434564094042020550883546931760424578708124354719746012700493634001664816128883809764372888734472301154353601953056127576517889264529793221299200465377031197139914235207595197374659636605608165373038330417305604833607870499637340028156727722432344025781482159909718603467386360407527116137624410433020619991847069319865482724545225696165027841332608572765993042433037960440997528372438704171270820211778438104594256020745264535849715937245323257229788871142432282559791387903920331962278900674952215027890604973585631633312908317544413396286537476574254711092449079716616287212732169019677698402868534509013384191477737472153689478124801141198609842733411972147830881450526958939424647432758509848888999754485525939836831486967948315756565530512170020007478729473596040469322323072926975112089793139851571185660866153384812826045058940163930999852840989705695411785718879959896238489428317771222020354879484141179080764952174733450010191504109707359891413470728821657357527943259675591787304836946889297187119809338514414337558329216980998847626257322051436285857828198089326246249247440866052665900350434133354728517545798290628970773579848878880700172927607061869803480685488789091539757487629136182902731338890809675839677549727092177890845997633401869423411159705675003859972224901229426757201273103583481870584334177510535223810349244469185726038429770514346732246306361923008504307505845534555939328303712360136576198331206352001996692529376091928047327788030619377697541338232864895836752738041287317254748208275371790953435687091024048691573651508755937248824890837625402547311819463729022902214415933661740241893955992939507970312302958893599764981227332669305614957878500623001038188647189642132214327683647221743385503832940686394819106866706289238334585544218603854420114808454299320144651993519874959943147326676922821179396124963507569140547980334650036070856396404607694949477176001672923339504185387199168349730719665862573882025114826445894627063975277668285262894142389086733161766491613475396128198583565896437396009655509065788496551808651864147361455086981436560373775675674640616580153954106126884221733345865720378550548754423444851895425146318801750589500882169575078602808406708405819417796995558841941379429197560764356509408271024973304512775833926796171768476593631327432350165343462596079437110273516794252660865413436415592091196167830807038539729646925219280039292986838360950125585415034969060727702544527711843013660582270795113466779989413775526770743675422721217613491992645954186608268061533216160479345534601059422389151853373131027029459378753655137183425825683005165124565396571240808275677766362110235078739261991347435822462408611726808641458382430801738722790940406057105946291881089513296005274051885066069339722705551881775867831548964244114098881884621671763309600777646608109261776269983919575399228751249935744116087586884983870389104025509705227795170570827872654121978391157525543136424647510608285969163468509520746723044810028829885621859693101394966529750807984843869384564656982535962553937381986033674378902743914653218580789160601868172559342791228594399290757809097906696824567043726078699845431966211290037068262316808556663337163581601861610672324542712627215426824444798075721752766245878722446366602748446653188144127911863478696020057793168204131625567127214276474338492704321129020888488030743765144660670608913936220634170160233237329629365567982795402377499306897328240559067835694883166242966246148397824741080191114198967042759050247010100452598251615388492660539324580336244995962554237066920612792438415432816892013281456488408200629405418617374762359600176442972456223422130861307555676956681126505843407499623426869283036913834310638212968044762774536532545892863410115949641102547876736567243575039296466847467180953469850893661362807733240341497547039333966592509785783033768259691668713449355880357683544665436853842230190732765990841241725270149358514538919487597194503792502811565475967269807681713583456544962465912269662477297487713895315748847960621011445257550820539913254840646949434867489115164117923388114502543163569760654794664001044278337767866122181473268795212896927868094098449987596848737061445198260068858443354194821882501564261992989264729873857928593615383185058289657010372677696516446267410232298952132796933698691287819273587377018047883351942277672125729983824154539488326314861243813220894598478596314057278992976538387246246251664029851731843449765869432882483768529841543804710151478541735073807729905623724756492632314435888555393560580749347586493461035591723985414797353097897261399025241756968541573692813768777043828724757584266153352187276936850652053183750118470250183782974903911884870190462445280216238304817038205521675054585075600430007223579716044063780938976334565559439406057198173470992830635268619270660636853950977252993548885780864368216253357955486749877566806646699931148375895122697604276208772022542094728428110420904620574469705075389585166690478256897214984093405549804875472569974378889438445699152931709347119227272224288262506848590636488505447476132342220974403848403725831849858376620050423674998622084257506617851354780212380471344530157244452461541768212353202377233284538540965002115191524523151727216449658486074851299162750593383866671888517110690228088717978848370943755266055157654019149738472845440821420964086711139542497475949687980952902735427944104120017518346104277302676431543326078504412047405338250687524733857586635897045345888767369767851656087956100691765131320322509551036171060266071960752742928734551586819494426819813802812694283189777924320031918572297874827083567275906264654079005977308728141689098960948866671436165441555292117997134625935638807810371899172443541604099730320437968844235940725890024073853200127490523475101729810173452126560880422278484641771079441067899755915945494287406302762394211685748893304603531482026897828750855837104638418244070534071342740400432767928621405841019187151402587517419627166275499219791167694059683269389761547238572776427372093736480692637585251728150116815458505787762357311349044309520931064938887692849269822345737536218951660912828391065645164042595840608790589643165231697286955897905107550717713894546051797895962572836944487849840439243819875184066770605814935130226133519199509627154188617480307228273085944614174737568731779840412251716410077078348528200079144436499338592711565099247944996381259902292006038544204023278414080962080696031444661084964915218070605205034631273093953566920244089882729719863497331230663566223469918018312557165261726654097506460669871070700646318174583770917178120195622288628367252272326895227524263501859749816127819230069688896001786043444670443852477321657636895584076215249223898567927775712969032011838385291794756598342822941273164486657217625110491497573391827175333906220725551297405186320026044208186779060306736537443868293748726639339098219687063867651184045532082563371372788231546234535579141348175599408996014092019748576882921541444092629851532342148691159230571874903372308026504066608503049606254241593047823923198861918714707149468820000957412343027863870292805164003018967181263377113270962662856423284770344501957247339927509373369136100050645832132909727775013771339615168590403922621921166201026517563006423543105198567819465736427954170123751530496077017066276966712258480058408947952884134885706343085267045593741519776222378289921089482379442722790810738698376462713094776187508500942744672220820571980431357253632284303033751928262595145913607549358837745591518565285247537365455028184365326254911140218216272482580490014124548274024295102453299140725580635550115447836260727499497672175700813739106843412628021606618815105976142899684356201188780904308002794941733171986517632616727779717823742630145505477346029540587435555856813517885404906478485742406547914843506854276830371166958164800344531448620876697834813222225472094045528133558330181670232192268393152076797804693516184846800709610552780874537405056154238232605601884273038202173034674904236578653430516814299888528777582215834258043496981406391272759427029524480212750264663960909567101522127153424871334611551675196016426102658284925511830233550705925200515147182016329143497054599080086922846568969238047370931390823770184494958107501105040854467633777376663966000299178527389354918720646787596132458933216287393798210202773864663496016379362688769131729884197040957627440474921783620363769257936482592894114885973859346218263731566363609480187098204598968399600094265573659390936327250249393449638536122323336441081233702023027910720771564152127708777805102214087981707701479133710684218874562899411864625117885414771621668901123167916521726243993547909477720730059072702967198870428817991259132597259507290265074591343110847896690183471682659921986289677802675075595325759616569478035676860019004894241701279214943756724212654079126341967036748141832008653033570030265753363224486577405698428859486087932621857605849044362706064151350892305985057345140579739375244372856750558970273553411592324077314648574230517689263086662185951826574744182434431310952838153310996319908318217983773631385096671484502061951224820406624574568254893960006243714815915628941084207884415863381180849293592824432205416069619554499894613589881830258760905042519585859149481258314167478564914796833016071099613273852257199796330881173264991354207175133640208876340398317578924062627465877743019822957626713257871444136218321202823723900066093724198452099238704253959765705367892458148847509087878965868406436936251580537122977464284917417559885484104384069267977440734956406720045873395671956207969677336511130990209688525309878918988154312174870304976419289889113303725530043186255448411943494107839015601770742219175428700331586218160347052459803736613708705110853571433138809419906343771041623907138516531131567228259366351909568195752981025260967147765325154261129974605485353859215044502099520105851376645407710756311406906696563559069027945964086973429341654482967481767225026472162487291072870418763530032579612935312723506080824996237200991414755697714464602168125694447119526602728941318656308420125754452364148112187690032668956554306908050107186609807101965260226033938653829606543162995628762337822457914824687381576066533654956758503278796871197861471948228229916999843792759665650696113259980768295163215502548813757726029560852626857371930484259010837628434254903603744368356099400279807924927767523017444644971247214592234135814224389101940576206101045582965407954435031777452722267042651454809327312229955020474556179463978362689597254417951806902772953750681255769406924198342023459974892012953046942101377563890232248654893502410395540424097893466013600020824474529537639259730689306990082193723240622712024043860000652890926830547973581761272367342546306895237074165615480668410767822633905557756082127830292246274760039127890479394455479940453545863992770294571145276160271692516069149479846327925105570427562299419141743929542188117892955143207652355067591239316596000397958818866282331472739153855576092268811564072418979744914571116855529243708381807205063058267148865764026654292399724879921160821872998225561126567094961856416091045712281416877253446266635115865808255623215702899372673208451576504760597632008208360869303422220164569777071623839766591326443110695680480252406095601357725506696744317637600854769001296584058001618555758428282810452399414433054551353129745777361151608450443164329164580639445504054431979272880201733866882396344380566364571230236653197121350751118223812883063831678319803275273456117162630896310033656566307203532884453023328282806667776610509495744518423533360523353966896839606171053433710736677439584432082711034724654729333298326423587903088471410238479719244147361082684968801198265431400606066745871493030036697892809141582319752999209357951612483133939454395684730112442158059694098012794848806697068009087169252036461192409601208107083936742968021699779027042829167386017567708948954164893119726303213378529463281221274842513533564441217997085235424035570272870332024152729634135694607765096386573683742078521988076488500711643244752612893008866259196467846323649248950423031832674275537732832878716200711560585525688162133908619147081155546920760362637545215395150402543148366456805756210738087459943889733721959197997483112903793953541996197098433169783518147120273946655687850450720163984482038035325973568136577879328776715970015955033529068405915814630166548295599807280914886458572592182021906310586905671463512330310395314565990855786658193501726586472473886649018063420102831708059527859870910513608174900307889944782607047912083889593171166229750983978478229786066110804604188985235331256604391390886487436351035893062583444945775697992654229072841124407048964497900420048426260326385949969873363352178097675030535926063293638974039118622077531916347196522262710633284900042501015127764311774770773977194263971638144825000184012911175261062684460928888655367865035833041708986113604360512273425220318073842143105710919532738743325351078034676701872188477058409407948098106498574228467646030928510309913316512021038983666784102058594717312527836589591166254481829092453757659709641063435040559613844924758809619586085823455834502490273528236205078073949670743134561194526808729991944877993704505185267955786970275217549262603857579230451556130082708764951203311881173341393657503829633220030254934121950332710990935076144441264533925241874471702442748747114037764043046334159514707239927516328558107984671545064950967866073471439573786134931307555874674175759577204374551115059130205248375666194422290343091613227998093187934495389907721124314218140055057758407978541007298727407060052421927995624343069398375266786274876418245637731468031046796069212814051153924201014682641344856961330115101297992051607458630593181298773210530620163957401761702531210548436363570707332082337597222471581881679886238228019826946915271071666123550210735187200820708753750010050505010855019882022019123682947049012317981683738770959215605332539363962633745068263497010720951680927735468222570587334006568825267307351150708204790598710851225284252351326474433868591408452212734352453201422383958213909210213136556832699608167052220068844605074701309272841980504674923181301926191783346938855574410850123756408480692067477536439704410665084913310558040932319002877582760814719524223121529302580477022981882150776671068719271023670073307356479464126029604738975378470174044948698590661953284676920945820472252005160989884393196953845566056924888953405492383492022810628332830215163261600729809244449396616706779846565617927174159493620078556519742175107767358742813717192855560734070302640908611947572942839205936045251096444867422200726639614667179153271788269424797152716365436292445179412190150400893867905838190807200735117250729830658971370635862214904334350487860304747008432294646625943808375539711859173620190483895009861163109085295684769315201479774042089632396259294317789320142826374238298359711936589570221600333838804710473787797087587207857909362756251009714592826365133617671489664603624285018635269698457073775506772021899260408637911578176370597972158838146689122815502575391837425938040578249928379171931262725052874733870232475400282015962420501282511331455689235039772163572654006878725716982088197154438042324919327356267834469534803028173648476289817076864273567404644296990078400630167574726211777600130918763519696418955155140977026724902548795046650482729579804962969829924211277236258144568819017348713688286347384018456893210534519070884075547762124391993346955981065303917637730620098004929328976939539969983494921971809503545719334792554731729408607062474388600370378431108493892507347604676680426285905889226162540001125151701114715800425575818305916225794225130873855556183986296507812397278989190711806838098333191381409013056465643144911786714961716888822151798423919612253090148038723381604856247791977998073451736553364417810862156902627524798050167146267495806304768793115763421344875406220251637157707113547342575657822827472625313787131744845870373094961502385209995107511834190060666183192828389167877861650509655444855561337132074833687533683157124454603813211784261794067147401431290468463611111175678834770396288692916157888832597571813735452685831117423770199811563883552714637030718586124959545335100741062705488037536102181278708564433447746788850046702326377693456638604691491116490768905717570447955909754820442473133476898823851687951204888992659358020686101795295989875239961232837335187826564641644872283194356178616221725242482566561428722259632188782383055329359108064237531841794658611812388666323125131663826469139601867541413112726875218519112745229026107747337913173146192882992778289703209077654996805248597419614684897777062429068173653674925344244121014587918760724313977197477475820100998395677511240956435451180185379179035013549636453056322272467969433559872285863887010156877593652209282298199976142964982330716694811107498716675536610715594532473776450225308908751962867096934405823968569075383697658484000287345808956860315244322636389963720624265170769942550009986065631687092002227924639079282724049833829615925765391582252192412629909330467976777159986045425629455855616510559356985310853998535418827220733646331735936835873652914327122236887326626064310303904085585311811256691823355668474924264685016014695053785036288273374112995176915326249737475389003232469244498291759782108243979514147579239196779778721285799932837957611819373962687253349259426776542644375893675278305029451526533619523483042232621538941028814075127479606826295473366610834349159980309546242996589885342297812836341330560618565958165335280542425464054903884073963705723053775990033803285726303197118606479762955488734816204097034356880603445363147356459645376573928486115509112223045490274665935547179024198169525808701365831250552499285763272732655902682396273580006076000126379167104766705300794983736188608329104551161086815954261673121659761019681162556024407823063288714080531929533707818759548044712084862644324502644087578976148558635034253683158543442747567472927139394773981012778459537660081631588325301258036062598945959783140305598780941734159011681468324452159133943763871697659996722809716219701651497745422431113204667167317780979018620540798025512154387429351109612009189218066707409476841640427810143544051765077149846563317747469009184077854903240473486344283933314745283174023845226942121934656617797884961002381427222452848936141098191167189518722208009204930605646778360246599842569892922922925481503703242634849269411123479512280287403842796090451940706259683023873466006943026895992135502936886898868406758473206851601501159126185451556933067164592613564595601810996514885639636704509694905436626080697212430911158926669947492486755617765237894510047162886162382442569696024046611978569987395054696414692391826504326226432480098176869715183721895947694286749187010909966911773103657257075841883042610782579023431406873504042159082970007006843132173840311566621598484788295773574757625107333281771294699160807392458900161158345266638102053183512939777110734304979384462327938304861691802570909842963563844692655391706568440720972217338139148427258693512334315204425664124352328199248937925208583058397618881592163106282207627077896260664194196672523608833100303488051364632554389216275066983331577979434256761274562138003380597250566681452736846149179450287164871231759982267778032157198695036100943556852355142931726170379085198263245816780957272309385325038703762141852728935625319829027229750412399314668407427317339297788551577646533648323223126650674419410543694089712678401167965243586130423891428093054157424341238728543532163786619463988471944598114058845851404534162855508013617736510145953687981361084964079462021059619678113079943301240245434958284389666122649928604209968198009381730337504962983759152916877022273489995995227606666052716277734131444412498631531081937992703831233788480248412322726111573209780280698472059873165235543942166419169744810882739507118867301615626605701350513632537358352207107055431958929171021833053021473626850958313662657965593012866437222383535263436659627563941909114149267459602712753274155090510109814225776602533987134043260627053719600381623430887157462712615535301163959870919478383613351218340727802447445770800424060664188812432275121869990188112548051707566312920077629908177343321927109127339077463327542514190694946112093863899587902558469641481014159819912030187012731954677779793735129554511937487774171801684419482790816430704228844352313192791762360766972919238705372622215444478458198498330666086416810991442389949316115182385209038468539519823770443653242438200792179340826146968623138665902229997875160787978523711901696829569096727105337173980034316473254421413398207409682433379356609520143550530821711143076926238134909160414011552102404932258565302781833320905846692680003126971515268990180807330031946709226227210769963196151446218007152346054755042948025039410248282469068493086210970933043708314588702544914179093959579549750382865714209073084458830938581423633448714771299789029849856545388691684075187304661245821817586343109888400944753252941962071154771696518313175753952148323792717321364367074030538348601767959053493953163208078234845588702303470888865033879559789555417836277097864406730654994936607019891588843000319550062285982517732858500735508874174559509423753220578548061428394824498810228046470684765613403839366807194075298762671584810482931824657715278873808213720463965838159566571396427164102145486518459814034079598125326022354354970923866918885847647310161150089118306464523054458324360061031127120978323779771362458426435796079758384435770541344206332315667666554211852927247353815918432805562544985846699991251070925311923869660044229700245453862859007713641480332689699796359352480276295511272113846236891305843880656391684775304015325314410321175798049806337460336605123492726791212932281223208069499077560095808072838623410611909411082035099500487054427539457027288588036187875440697103833302496119675710219564926506407623991574919061923021207475681046569048631873829346282722491399030424987936042160352999751083877340043237784841281841361381066336575376955369799479111274936923159044863379758815258053469162898130920159033352114032717479036075849442889177166000247889139834084015069372683118069212878724661412330521102920359802573664047678725024400536059240325433664694111788498787914125707638213950710180549976233638143090020394686351305733144503804988697163277398215535721553561556262147296508274384343458393282380527507022892457799691023160111034926925599034565493210515224102889678607577271339048808995030441354921742777721639465061724931774017330502344626988721849139145452031318363073491001295380255077226711269696934543781271755214502624260487888481831691546020927898832600055008814432668395675354224960146334822313399134278985041055629052330765627533963329608866688145155139669784583541407466391607382346932442016883729603817630777850215483537345148919004120226134987607769936797842356710160272947705795677028156134490257566079919815685434889648531058086883573141701478873902798252692085527341266881310443373540145213517296863070867218935091532249612224980169698148443203293862827010500845699530515903417241643137017312247127820022052673468874489409398610534949709499691193314738776436937964476335236485823836168500762587098790283939079870675875996015963831888176755770824302348868650986584451265449023994566363115064550956755686288380330392406698286822087316874836868507556379089351033084599652832665270708056806827097264705561917322689967315742758265764986268834605637867104304866889065724018818120962078405638956550029174652887869598350585026898634595859534879506840136393536103798966786964906338148553250312761705006551094376547579690298368184783927256797005554109633459238378911821851449418802633149019846219952467647896170133907507339154915297099976501557290117325357727336468103780333742648883423825618678012160193809693124887457674543092021299002524689686472264316451317391380187513070628841144447446841001631244554697012993869553068228593160273202168433771309637461647871704171973738620496904137961692297460518909560211214810127587982542321364456882201986949038615105620649824849059435804939822274076602375788013270892055112723975638317290459280230991362964937401257188670436065057971533165388439502640356128245109200067677621779118635058871527848400721507435267843455238104686685476854172229648028261568423929940433022027674588348356731873787302839939921454662082332962863668463458543710911202254736195920398159564908542340079565787989213760209757306549300231403687512638072851962685962147795612876934870752089231012078224480595367118894839731669873965368617054934588592281323206337390266763775733734744935174284092396166140049106262075300465439837744133432587365555292580693778778665335140325434002564095623328103575854651326136209179014981018682624821731300297024392828944885956185453170407919912625002163949615348062404338774419159311994890348490585934750776455006637336091307443456232384438820203300341626883870764885771467935461917224550844168102243418769357570633808413535356967852134995889938700546660294974780097467444883111684256209516684223875929053059789059016329124099648442074514596429060026328897951053777636006784670204233879220145599691917581667176891457377043863004039446256990430377404752830371645444483940416767233911159131946883457108538949728575155527689170746153612877100517142028297302903766861120095330591140141757063999625505354751193767344733527869240541631910090325140186311767406594879418550625167458907518081464232287583991588887253784559325226413853775123893369444632112348738180761763639045291337969007458295471282167981394954803773649522028343470461100374985665606178628340205085795540176771522388575976161972900208176905086809845536143017781246550815671393036449547355003471996842559169924476331573058430752783990919846662388875139769055046520470083908896817991184986191516753809763745465007880391404073916628695251707998246561400446879112825665717843630731620893692138797651647540508509679735753650548061988688057120668777612609835436592266146110127055664012822997150181941533238606126950929225396454572038069581183104714960567385950452815720005552215313561613238462373971328077803934890375267626367540899755692391571276030690910512425686253522563746180943527080986893698650573246888867974843396579425533160852373174330550257348343535521870775208271075675370343627742585404765435403774873915868160187718337415352970650440719861511963331179707905786697893237540794464809030134209347813677914342639230004299974500266804463093260351760164121175792512266496942498249915412544125091631327625502103631686419270514037021632961945937577289620636831430926070514664067968449179462069725426284038090641922989133956028742670358653126273371839762054681639196394231055410226400378964820336372190673883721995173227886217322394792055676869366575170811772619542799269027563290812119865854815000351058057582386578051939338976240093920011429904358741677428781861661395780386583727778266266035570681004158651291165228836075677789452081912961596561179544317831516020422502461960943198755745861669382011713259279486397304262611058754490001368797643443552428960478005033409361500089401467575880805418817407476772075601812579370016043295842414286371103185346432032069974474591398363965639171251643089734801338364018370739577164382261753692217332339473899830859398859646217732695721726669062126003608487308551895156699285797024952138058812981572923268547056649572279793577916884850119155888397702313351632606380905195914417214316774080674324028631151548984207355139137337031748530918194266386962915544381644324390145487720717416913899209197094170527406858363315624198367148519991717605236428889414239671618874609986983268917912581236583740336925380130437046318327304098775625137386594559399442646532116030783883916707225566633037624252950698713450021693573633384685909515879673136892333741549460682210893080435116799211559175398452580524283099360091842670664000158128371782882866039832144414558427488985553443519840260688978758408840992868479294329832931468613252435688630624677200683172279579026942624439554881368679195030145817615734869751756349570811650372125028871163575782318244731393446268405924900474030788347844837002194381341820704425930191420263438883281241063328047445919194366327838388468356357922187126182742203547887086938007125144913715421383421249800498653765747795050728685365070886185571262361726917006252905578686264238048802381413170467641947479977836577422694038087015645594552470285707801954760675559074703987566029466278447340298917339993692344738263109156160716954624700820614195858882018063372966961483001162506890378740296161669718677882124912238912124046389610158720262296104695716826816293100360605714186022014496412167817649597845057925803783841618384248031704043338299019236588040308224678829644360862510439598847165328390152945668490029793130046428941255786701455074096742295200605316911937942296549704880590073879980890167988067303427610535901424677158833031595194548377686684878198555788708146990327731538285494239310399697295549157798502928124606190327788240129867943523295393456250539367964029954460671601904635156786531668490241156080252471508307139858633786796916088378689712008953679553192051648980906252480505093938950225680822687588674704487604235541801787647414452044102933990187290755468740318860469577619869009559999437099871913157488498209135492747943738235692405562023974871170422865136392809289362483800681867665897966867551174378099446851987520739587474737644842959864880169534772976709108875158215421255022711087326659378186017124155667326309786710481896287823480856361163197467284660476108661374235508019593697284270691439455768259896333148370449926362096338115043297936455364533761817007746786186746510128214019964947909034346464428057333060265634091749626746465834422158648188588783507689641577876314146267125329320944579005549766240633824786534753348121163115722355697567911665691019526271613126746941999083911637569649783531311075482005734239126307707989947485536768371638502027603722155625959396363305586268324882417878891966166042625748763424916909667211521609073212599604403648792428582774285945140546641527153860770336780703503377916100525333406552987197642341002511360642110967260513072790785975907000435563165620474077514644545554350175438776654214589122249159801934557986833480362794307918783205154023553302616538965349647124873455937387833967250225403874752933243105646278731083674750434754539836772484554047823592807434766264807800050531641981137449435062511633858654207752377476788760248570177058121244477269227922831365780092121214116054706965565174286692293672221846241364978345132315326273963226827248831805210543261963476214600306988899529231943203616146705354353677600674826562649744102316436855851578144589566884683501359946855255268762291733770963926028966188712203438102474329205771196101473880422096935925481789603689069867648955714989759293189965445702598889335274590583286503538357520414562342558092646944206938225793661000315830016327209723780011356820541956894961050329119140693983894966001469136873474189198482589554063314404725195957237571685238099769805565935561079652541843802154643450853162994002129201673122010609283990932654933594724828045295335659226551246132301533193425784366778082888367555210283337699497239014831357638819389487741311147686733297597784180576837260967719553753398376420064472106846993733310616743681061636768005399834032761023850281749753045773146040670879353867091463961896898613516739778961142576540739054374601106384321764375185384459874971459350527942145859718033455206620514342157816142923899140339900934798077092510781301562037497891887005038797230697337787688079824573181192659603642213495282761043328857683427326475893789680701249203707382742734863520951910066980020543202169409780122833087315509335401438995704133686412490873075601008775723476692091115547898880100581928497189254280187099438754266798257365746615730338390985808876766536842023887411600303914181374885379896467207265085177551460420213937000093468302077046529126109250155386399929276345640739492774292173060922726448381623293447862052476811164040895134402470261866571724720987322851615084624959494117643539269498893987306547452311461986479755886364499049392356171857371007657816902914918536804277644558627206922117019231235549850625177095001197536750386435389003341530328548660476127727203330218276163948973133948750187821798896397301510069471479190277174889675338619144917692329699143490288418608442904676643676259996928118893005724474554926674949155153285491187971541944993172405357765512923461874482815287593563235439810211059497925686851865269926138257488455731556866010937411642945986845676895274369635372805225147967679339027234370391794581599176850036575916488461322447270315214773771636896938521262806390827331034464469745071852594446037723660785762027041831687320343243332456014572739471882973188477733132160111125077205997148810019547193268063844115671923043956210264782344340453404677711214913076192163578358037841511555133392152562780898213833244544034010962253993569765400242765981943797808762819467591022669424953493483141377652425200934927472372785553862195535519501137998365682710634210291176086000933781475525324957189398204327573470929059003896076327169974586918400566459184494977582419486887165004990084077214885431985305390726220007854193093943261191801902613162806455266435226609489268193328636435807212867987511273228641226809495158994824714180466039780458292018703515228494846169627242383591096874594767701641205339874851622197408613270940258044331798561552115382397955701019926339346097282327691032974695035336434497089256106026533156005920618402980630459580871783206614321138385402032675075235307444655843454786585111478660759043951050893037105680237891299853728254969473340015946371632100246519872008463958609187223607905538261818755047944734091674795416412700739791679185402720715017354643974117100189292752694112220288763787054536613678263149421015279818552624613418063727787467502138874659490215645445537801329225719292095651868834448442729909768744634892188783901640593102261115992114927175272639124467664225692630845976773210024223431447120697199086041352351774674569959562366024543750314197609629158792230635565768158185905128717766021063720511384278317390592956213915274156208563138529729532244542768351989122929523008271728929652980319543281711471418284963713203307680824905509462560332174683895807363909362558982245194302264417977642857508706800962922688405717867997315824481926522055793225200208932691920450098053717395720297223194876628106982093971825464715404812414649563389897389693518432493279468476787397323195567771764902957463842305585384518902215126057620676530582529392611979209808927487412426208093480208706403553315445889256920206699353618993835168989776304937851647936762297855022994866633097104201553289460421577556404661628211188851079794593027225143326184499402664527606288566702288639560550260050312032902590928706026865127479422830631231179913476626713289659637478266969190067603843835959864497824864949733242188721196079375305665060703166047689935742484859219380525111993097844632738105866590487337665139954899925172247402788063579441361861347812828803807838569593829232856205280883090814214794238285016403618739854236224590642024710483368726603209412795566703589516298886394668144422832821605853829244802454116232928718574589593953840544170626504189021541864468568729068727259223741287766429673561439104036186432830152151667788622220879886037350947600474027166209937283975746328694129328859956417806548994235230988802013792953398858752607935647835944016559505451626924384242801384600996720216820799559909647794824085141446017221441553801781189423885005788239809996021816411672227837042352998151817887385485223400041953452570192852680455668286696762925882470845753306724349367709039559204674836818906647609532783079340362177654174433806173624635778072432733918115691153010505720879096481343676926010266763331124850392459514291115204914531829649046556582939588098727534078034499541824383040622008165819909371486571039645891013453027058633837000189083560036833389395205843397477078163494136732774480117790043735258665557911535614462606714814155197668116499290349096821453304019363280098411620878490281439332000472288864608811335116896666176561512019064838866378259743968808373037771752999819236455484567059204640100791268332062705598521166009665031420177829169968741672521789385717826135882632408476328977695803815023133519635975955295493755547041694257958934862943698268558446083059325915806691790525201188875594683527881746923210485975843105650429359980030818708595934162242117130467273285818995719317793752460684336276208635820012256981083801603233469268902524894819250789170372159608738249558297716256113989281082960642826413410863257870176885164440343016112986090798450761068474236001758558063461841521957040791684555537768943114835862115283596508464332997640259264280899599486919893696028728529486467637608248534190388398133594568668748664170698575261679042703786446052997553003599410486272452453787590967986108444068453467685860560734923416459866444344948111681777511152003781660593583059994907796903205191257685024499361343450502911754137067506899271269730686772604080123930884796688148969654369210928636885478899190169601983841180329230382901281150141976164129034552223170203278329423986854524684117761948981898049891517651152725254578432906800162986956101729424998412581264548894429859346293725239329581091752558365686701327990590607186549350097681329091556935254427977032930896377693664569158363470460055577676721337882671453065664877639437371221821831884558149140611123819346081861950957587063888355838637006240401136259497399585910501689461805586920108968502779536677043072191064707308895293150631650891540602538557839637762861679553522544683798990987740253874856980077669696964856680265066907581281223185617738399505645371079700298005748402715845612139256142781121473740698962359117365701504110602100374331096177645065506354037118117192702999847803030968211796464089393016757103921516744566073444407345640600921576220844286086225374125951298604981974599563892562326671001914668254687744659025212746066687165494245610915969029908957728777555171441172418091472920926030219929860528395485212059869244180290816424403683418248906896979339364286058946833328436298206301899706334928515566020964447377145746959316211636948583462324555896623388770764543024014797380336961564579097780486810403051784071166103647419682252020713262758658891699164919057295793200221075334957089912185707443653421532079468807241706645104934943290797558682060314275148370643446771072184944262137564322622045687158288415182946729497585076473113812731623589420009634440918403323441906441574032863981990386905940415309548977680168092714079764340787554199997923806732522370255892302720921823309532553518973855473513701098994314566517647459436920805326327271190281508093717769577945227636883897133496728376782287490249539545978769743255297696527723360630309791260867728341657681442692321173610272346900388386387637050996296497806483232403023736294368728993418097457225257388954260978433165642789246179100634500737186261841997989938126086780228471252127699001659532544298190274329470119149789319029424508023809017860549250770983982971774729805068390451292844251564409691841166755876804440304709841132296038079586589588577046156469538629529674720499473583992645301457897889664418238814737852869983386124558148167893261412123877593208581651929137730480805398445967143034083869690460842492971438227514098970936760475095112348040341577522667541896664713355824670168116650373924674978206011849692856887668517560725000472465419975949664904017575099768257110085370397956850393833724841126334026868603072364198119320234743610891130814948308776306321523926158031835489777330209053723131148189426098470142861330445916918258836912030574917220311432328163069562404771649718082042392238647192049159322180514898651091306300693631743174138850858861557116272921885365939087461195208785105294862549798092782556942113866761639838427423912917306162052972048202150108567785722643048014892656277368982753070445576135053503162101890051733166147837439675751059227372572005446752736034029251090308095951835337141762132841908617467118363649462355001692655215894802283773095359461282557124801643780708767149608065692619470405352099693949709533792468103582470215654810167425486130657689066864193721551854736076000701617037430283111312832986170294825892294132913624633714025092605277781630484620888798024312918833372928970764618802544935857080305469646489175719343697828748643003451306248402994510377825469050194081386963064549000347696190644539525930536370432115400950752897120172306721706907849079583579091215826208291864806186842693191925259876816580397120331231530365346795255892337476194025784625415571224806233597551606789914779999664745870852724260443198061679000089718912857869287493449284433980335733797571243579630798060866840715098330037450965659104850067018071457242008999107345961129022724307430626636936235629839725912665344783547980078549708903163231328005247384295886502623385717110482267104562355000456353949445023003490310885627780511772917877243991063159949659471683831212584475542497717851332965911856401895347965426615642713968778224117352022668851055514321262518262081904207507501521001291537847182869547386808585083965603384815294559095821981748990255564217483470338462947623833874779378290903702407825123348303233688636084422492488620381441567748438007131845397122201926392210223232342042659596618236616343780956010838171531288579374591577793354128480330574691035838102695733935302752170963864718549406769800883690444486330100864618200962789806901685085258668242770262088452372680277161283433891309837807745465423835548025039441669434459189618566761730620437193971117446595437587934143353990210945153653183329151406172129496706308083797459852083228867805930333259721109867421373245083686260513824085977387888454410108663735161587236488261267541603499939820720439300781418968839178899285037394848087324249186740387269694699869467491803823767822188364684829494712663220177765436063754416486706778597723024247149928934900905800504287624343787723702636785332855667336636653213918241771255598173517865715689126839187245571402946803506207385911837293259167895542969540245532281232775141795497645549488030551855514943076807766277785151944053499570623963177414767406641068036151506060019027843834507325611210262276475474581184583144711844653291940613901181274784223572727246198154644752281977818500280363788680885478152580941952513360645570014360499561483711039382672896857162321634715912942806402906343855000734335562264253594615149830642347349418269350781946510975534716789177734032084537070089638637376097884450078795395855344939203994705336151148183902871113187641686246317090239543536757948810213967863532869814881957791773268468005579718256516513580194040327413352383624385009737924588606574879898613050781357496693625926410332768484461255634817797563367518918452654418677631561822682277907188474452940466758074477325698053841173129352322326598833664248820281071837004757208233330388855938407166524194534417794473046580325859324754527875892530261294539392991982461653783022278693140901508719075765014339780699910111962180682444736649842039000278183795105387613346570861600409052726106838786996233026415260563672638448182060882052381983594169233220203788700648443414192661097605838973886274553527891238444414131115507008994642126362766696428646798484834986943860799205060470587048796158944488515562618713636431697410717590761714741753561185676517742760517942669094684315268379492239958487502159058546742263577753988188834108094055686291587446562167084737364387346329720050065691660866638236817428496686112958253637756607849632438075951640502569477698099259891280437472770653268112358650255984692332861922771774292469920874049368149699334661414724633991490379210863320962953055088544666129228632217208702309513884759200941767558939193491389677211724128423453933035739108426235009781892276134048680664151649569854108330451684348903946951406423410925636705611246466701992804371153027448174928080476128727021138897861059826723301059577015067439248371500513228737152937276674048564550781915499141232051206106584531905992418063423109055110079791386489830117166640699509007678662493721688165148642734527399743105210614431118810870845190249612633473298859492861571572975222720202886906812980286224707310800150130144446655678178880461508069114567141367337121324260775783129780114768844125771162554440843069409796494948222924933849353075544562099212676164724786240743602028288938610323441786687098326215988636868773548983486697758203896394820847914522076426248304704956649292064978361589010070178627664796048695874146878258636661611434796327692525773133798601753956139150485923379990519975491509336161777419647118194258268978314991827282863609584401192975388082347145554799103631384212609221139485133518403259329527683620527327310329321980223580029415275428005718911369053577011749719677396228025399239927211999252820698373784857625672302681132437423457530519648999421290557278294109916512913744350744881998015094667808365530313802279413066288108951233289266911674914768707819710998210598975406221047499570547186783353979661279940578080530977475184473298981558358341226139987091786114529879170769042890603692680883315875572987224992747064052816717648324700469194419463669899843589382888665540864926159898784756827105375038787259802444703488936997448686072706972885485371337905635105793302389666861731057951661642665713787587761271146627602660003829277496902115874885776830491755758476699106562716498830473144475554842111395750399593147878004333453444307002648550712456255295809402755613573671194376852643258317457771144501064335845619575778655260237585156564551443882423171352134097697645160854939968062019812965182446747929295358381449874886036840016782746296701979820998696888715081074853240616902072318538254880123829065793991583927323473179641016346170218820848491652964860325511558582054615749121409740561367305929615147309775180599913325609928660162469068610135604791665905344671112286728161657941418079834549820355283782862698511722267705036229512068457093309937533653136780304141924605182844327301566072716750057725390677484391372701114069395716957973045986231239011273422390354412241716239223546190873472167713195209491801108568836002024720797861220365760887639049919970604579476421770117999664389924741897640430461832295020159183516878000120620172193673556678257655317725102057040099915951917551830424429916686552152347787950478120133515090270183380638780023165203738621833161922087528213081115620431181877006619414200857188396147747009116559770017881643861395542372974974538056203654274072276035965435009944353898300383661880082563271133353182255085124855340621509466889124902796008236989567820048795426966594152888460788909070634330690210033332964927839898661225560335846133644839530608333369963529992163902927642502183600490947069628250742684542101138477933558167776831655649623877776070698977046282957752487213141412640120994756546353239012875003608628979098187509596370044890771085903046258457640168216915162201865524172650019188560169825524099803605598180945306420421395326226664636512437321762257173989913953337000064352335306445987275182264680642668713916490456218128266963033201503734794262226831748581746823684015225663185541632091007760407394802475386314187176402876152273622043435980002858033926696877986254891103184103972184595424884613337316832416455067778437827114245349424467806956304181029360815779263709910664171322706057045670820718000654760077834393540895330956863392915254419459369389883349027332053451502007178308518692031228699455631092235864925253886795724765018381365427224193252475244392208369658127200832280805253403807649804442609449207039452916592607613750025883663459704141780574980750063846449771542313987240374640020519245113046277444100177622309449248977521841146467791285607212314756303241459067236356186752354015144775204931804582906280361912800818923810083081863732566578463653583431904822269780649471134423257635878355037695637433439732766651445784940301044214049210818902918095356974709628555286506670648442286511862522789242587600186550572296097061527982113956082810554203418502016071895474397605723028648713035026173594238160608798675104664755337050207187050029974454385193290000301534106861371281911432437023305392854276857285914375905667926149155328631234115402817603373526568487961765048631021859757759953028780138085814436625331153105953099730262871745371149739663987758197887833167208959376223590239622244936853357978283413859140439678450682550842191708564361813480173407473855618836641148955468709954880279001233263287483468962838510533606672317990824050762352873142337477152770817331666852079806980919279327940362616511008002198219591747408747548710898738256899751879335266571552146898626358508995386976253798359500514413266259567987022037880540535492911454609733488233324677190599330612687223446741025815213821396055659043555133568012615616753498648576367897669268434687863752143202585423234665437618239756677438887054639701891699520363730806260571643190214277122407382591567388343862545334265092208611497193334603810113476487164409410562584221390127703659774008594779403112805700941263211884467709108993608641228814553724766461423377834100505653698553105014649260781011079761997424366141031668980406248525331568924308467300179329579231787182728090983599336417950038282325419570025098882718423703998088318724455420966919973645108296203939573584235746249632801408529644051987928342057506538976438505392165739659401017763240806091183716787649221103990790537792142369126822404738492446520425879606271268744380174473949789196051246558304560470029247366729023454746705381611283285280762573098331820000754363501672430315915888406440864657856300929779024070548548614873353420145535845703382263208320261638249284702580339760787573171491895070154781551990203172167667774333101331564180693559821128872398695785056204851723103619829306429666206925735309380883354674752323315714564756966356326910836325007650364471164527586237181108506327945502329386321492332377713312312308269405042353575918775641343595116883892120475890605193832133075933876161372797949558022933383433132172463080724743136228200736545781072693447438152349326116698036074738676000215883583619475258027382536514084821006466220169105939034131489496483643917742588381151347529701904439388499600715146897906321515844378764718020051994715329253160910960957679754220039342591746774582922106811092899859115895674639473797887480724484039650344871388203742909871267468488842485367995312893419729344759455192385545097832570238280432144388224547550023259126246372088282228400283916539739704161931017461041037189900774632313025544537614082801714412880562965982584986629710407057536057099924452927409864783305749364278496554547419642682216937368764567726766444627594305928499124068615860380224607461532981034093401737640543875888246038527120635099152313692593856013713592668321862288078725652006175061844025017164635858937937300812248042001217267146377625543824658644182797101433363884175155111403072223922169866978043512244324792822307901095581442247843112740327499237000862437565194956867976616319999449096309852359148005691468062349752697800260041078689466125415840971137859308087077975036424690294137262328223540625155110059470228603645419132654351086781715247700533537478403286645022919513435120904091222075468908668723659850214870396533943953034796074544925526425362159191721573734673600851660430957048396128041784763130586166650709163234794450997704467831349480342139068848757110301421244799256209105811873904017929369074282079666678013023134524175111047417153602211694683041461475368308295662608747640611868036107708499875310613966917841285510430493261722238068288706889789181400259165426472177955593210324309106229494357178986256981290722509761594689799667743431595300591914749387897430569971420980942160430080612288029863261995835871630692126723464423097200083901385466970421197744542890700566660540051471826522551700469916776717163936966183220721764861717685339495777663573043188443084679859848234415504727615880701351353076095084246666509859553618794538556345561834893361883178486783174019570253211640070453247841869569826618604914865088807502101497856387098904140522479695940995855186110830579543874592271182186081702008332649434561827643173374586096919298014470174828656852826986214058545998261702089543516489846889577539804224491402625215527488809116397445010294796412592541281642499481055520855693807944353534836553968040197920663273909581545790631146800036867016469172204593298911087584980670472074429975759058521059446023096325606218255763134006986119063407582351987632016929040951096108839181970919434321419640326357024250538981522137344392151256775173665315154839501992924383423464949678435618044938532584852440877932202801611806529618587457129348681470545061591327037260557101687705975748292029555389292619348771492632565047748469382499432493010073963957857558215671481485027107611149133537147712459583114961396958204347390110691911641185864336430130817430608940604919119867116025649247035318391942747832136183132504266537190293477329177125740696398255908263211864273478420610615420120496444891712573634888278180397882357252196603425511148390309771274356558936675616530353118043972660697070195996651930087230851847814983279000193780690702242299093736382388302861924599388998442343292438318831258686883407893004999133381132875667386222768927570038993908586844102638338870860384795635711175819552296324697017218875846806512613370826586674927059582698761852102023553812755476681561095000694641946953309616997333090436105835707481618961181791220760946957969760812568345562953209891111216877210586567159364107072960798631438875228022446499287605834863459448928537968479479163022554162147902022327465416520350185466521285531896072507531682498796275658724615813569958612428182822518680669993374063907428205946495822790052086103420775551885460423249968521517440655741982152682170389759149987169710714736607743505284315795077097251875852903569084027961760176294059976588834089508899878767824312362892107472731039283866779553915082361319645998386520888990122234523673771426040909498020633611445438352202167486849730041786206621592648231187874514119151684214169742613023336872776415076583086612159596139160178853073465055285296139261558291480047767257498780564250159773334778110844380335755881915926080799898281361201247712245488156637527464146004823139030946469200566578199024713055331645580304414229279633263593682848108129403423740695834215518028854474555487304711516140907263220549962214868441115260326986720805568196921587436489223447643137802746272671559867344560715936562883453310438595130817102285158777105921748841682089441434725972289900062941151457789965951847205209426353419752018638299095940452330304615274567523715362327382567734405098610200950431537902091641484921941667653040688173590967386519705669262784142406468321081853412180707790233972111192737115857202432922457838429014580395410917701668638741277907739947193871752626173976033606253701567884922399267075046281981795707688069387895419900747375118103773310544335501067979943911646051119391260840086849612142695811477548127016516722302584024290508906347579804865643313989774902371397561182046822403928987057243250289641479938353598781888697914497562250376951694071800327153022798047257828865955641873464096080145812563415102038781672522964071537108990598368659822035247561888810046308475266747264080167140641212135178536991427637257975201482828208216893428476999333992155364447387844623361731436042985234473333483838938005671702188077428664158442998555418669945322182748744526088039739506317081286633393797258439469599028839191472171831809950587761124270229466561551943731645560853239877014736518568342212781735467759794233507745375119801018213942495771308383748322720326454563912423402879500223217174018064032744341256301963039549049495783973208214023832250561308813731980405988223463297725174270143060999095346032239145019601651686547484562735725737395289367523293712901099566478423766250420615489850204427520592136380976612478455247463445223824606859976372834865927970342430644735848989902906581952415830644011147100654762252339160889114769135317202774582444086501404656744942187990049977545819090124486301120982229483607545007208695599791526330443695661365963602782780639558850964787211084238225366688390750214196869035056373845878289857520941693553981690503639555698368960455982245152125342833019474222257576575501785451500632705417488069329021383384782532782482323835573685901957765680882411977540547635686888505725085995217649125454553357187007241490056042023542446647622237382066404953048684077964713443566898157915825151535631649703689005917237807814608538613560234933122013744680679446793156770010012760620681294721286810031473743474960522115738178730097077342324286874045782580115325640947472494203096907128332221599029559905049036460016575249121530961134171971890704680736887089771362998770927795202925715445473338898197923121309769944771861260250615690663136002069943210808634555295274851604750919232863099216827865525338518637029542374650447076206841261571597624983940613920067814497350929470777415865194254582062063874147178007739392763082793601625442342488651111329923692225502450961668528991964309955686031098530781957997231784481465583379026650769877975792427877249721300698290286376677990851862858923514329041095711001203675246511749125737688306339981093400551118977597981662269863651017398643700678499608395729427830246455564362400159409653523338176737648738992582812754094761903063505402593658995413949207664858417865099151538163915469696643314317713324118719181831395127347014791862316081587321468782736477616559819024786721679540325043845789001654304416206792759190122340152085468968853088612915633148315196999995078013608009272926680591196264071268112778810497691776410980658390741641815008961709082006444966086182319367651956784977378620246806299721752172332027724232718801709931444246516995028493441829325036080685120593847091806721371651621927084407446212394876201228676057562703183815380894601471006168997855352153563837369905611795091378616539958150923733993437688744987387993498226911768037698319631864421348747388278957867429205270599558638466824483028081266584435506768828173596419426613607702637266285282505891912356057062771561462130558455628149062095462364442125572527893625832866559262158418670971139734717772981335917786982407449026000804609873649014523958875654301811018953857221598294414581505888810376080628965107598602343605500868392655914774249438293585180450874714233071198853764273348367463936783153975431485725420895133350625246730265633010471874277594155293377414798024920662032648028857675113455143358716788903629164603120791344895976807783856723924241972542853274117966421488447515276565996707002577035978702583689150311900085773186303681324606066635613069654056676029343348943664124548733528515211829763213894454417977272146665910951394716309915199807267068831786244262663777437524786212183473728015283647952291159524563495462068931531507072742552926659189565735945761637633969696431531220802647166844125071099690414717313183864545387614321676647478571538283972034391402349812497179928686830285038307712138888017044872102103979261911654860386849174316398362714167925201875993637707785392054726067484947504510979939367468851148748902125692972284975629622968064830910467001449702299084407943511323624928806442416659747265356700364527765426003778892388559041336787604501781731674722368799895754287828080533691917227786219910820153166903618483463369568263377786536572117199864386782990226463327510110338921830197884819936015905904955736066870516130604991390417912584783853114515280592432901234509991938081204394846954075027594553209934950351473839671962931617362948650050878682645763586442577927134954882617193942942544017301405554416938288151785164213819960819826294785636414738197541328503783381232499142793907171626687684420570616559885877281191498310268857093282851349215466775623778335404436211714778979602954864282981260060011269611686196078819681614270464887848489912102177160206138044520846220381822437726609400112946516059224436392910227899511526618558892001760209433172599336224141448081376472307807103036300633097662086973139352844818316464190855521773868256597118682383406636625874329302530426211380914936335554867869395202885976261053645649567319690204842589520345178729359353705847925460318853370366224351736953289469439205754089032994499124678266947290668103061409345506876922137662897326885995483097572804119994865321607147794807549091396787511573293863700993085839392670208388405224799833465978498806931853071131022169641058592164694083548912785573632122492939277293949935456853324013703677324423360952104178987544712402144033922461294190547374486317432115331763121246611475788470259572976920024834505733966351354621119518997642405276526127959738172881950014821478275828199378033341100871260290240042676307563920661048686980733535150706503128060403283009508144018482158941211633548398487023746149456503978534188976250233326935223668743062752411811925655548548987413280103577313160298064609408122541094244288211650756142263708108822395553047594772676878167793829583374724808814780386273734165004766713983030891773194018063332772495503742296548796457673868076317304148717777179592161422237520088518039933451083511620425932052283719835165976242013410681732210493135644434297425945133819504816132697241620103291223871028167429643958001678430781214752355626104486235563221416711473196831766604014920023950210805674302255329386781541071400243612505182187036765588607916736118694148150769639237261715916889936522741244950981159735178656287102356945929980620266191686401371805121121615370788773079025050248329789629295532514379205482966723006141389687759458670394650737211284201746104512032022748656066023665241583036573966287836252458471922686772500811340214428699755968519852471451791081021755629936788679487749408471174988663963700586773944856347022664181326237957643538619739926250715359469837537612206393390813267781942690447434140988380669159459922438519529924441982987243466674215215923146641100532722703231888753691040057197485930721803771210747854475878640448575915013419031571183108398763449514288238042269498776668281224265194536989593836092405045168853091818216897486792907357207004067146369088496336644363940225413597390726779689232872350108784940378015829594390761151596648892381127600551373403875751668608988349928473585038318091700990017441452044651182377514084850698957320212081811343373615608217664489953750616205308156388308096766364171879287215409467502203726326070416683819011635924874834420821495387420213093817797447248188921990195896939769967004097184955289630853018811369888020263120269683974349581655370807021410129125826431714047309114183819896711036072888482812322489516279720164405396365893814100034050618112453702543019085283078720995196662504415868055885606861610342162794775991949657287348142319614557547771200522002236303391106252732409798092214001827832757164638568164950432835009147718626636695800464378366411274868709144631069935250640544340229824822583165319342843841120196274694712086753882862453271259009731535114917987106727055272291853734688536897447693779529596586253886711665857755880922538922191564117841928175094016942849905941589179998437431269558447629881610765885789943084989700940248755305542824112929701941815984575894553251006803006361403868686480020409848931767414874497213283306948995711827950835997540170544274835246973260924257123295233908045526647009184832629728523307143976694662579887957326631454454441583030379379820558053154019101697543536399759991804668514558057610967072611709170771347087975099874382689021603023829443622697373869729567260960984437797361781627345076114419034066870287929442472981678223298096525350685732528502860367853499234769862193529227865505092419324335230545867174670590168160513221274860725710614429463031441655586500433680222706834338933838267169555185552431619754258296846555077570609048098260504763364179589716477346360023579717212736094743447424891471009407698930712242542133675364339703796381311873802310812734385653594393708169565328767436667192419142794382072708794918367393438043610419569491879960770238859403102003737931504405342030606677914791564900188180935109961794395514760222179140698371991079646481741072160965128957360707215093426541429380416211262621160523074226202997808981546198803435837666273280400004948559255251438636834750544786317762927014024224043071198850200514699662679096399637318088829579951873380748530947100196587928822647487413208823551907826061965165722801417714790431104047241002564258053999826129437369161743675762723349662152894893672560540708533121503495021675352253194355288820597266191969739519381744189701616057520517552647267720299405977283928448869465629043670494779836920581321955110323078722900779275159448734161251390648584308200848207574359481748116585773108287356977678648778470205924375364832395458351281495464925762905487806929789282711410178037849136368629388358435826954689075851183144292138629039629813413843554994272781408665452998940950572399781217933859815804470708425409141194373432103486098672076885783797417287614951661739484778833438101568375573519937190215167762115516629582224750570797307746561403120614555121970327206183297986952238988630168930835651496182218940837271302034585888176500977992005233274201093332312444090844485184571849038605995639928642467306978240090986897228912677064765370160065322796267309387562646330792251837088759565894511291641263833033707367500181564336256483652822446514658779699709930922118344966863903981320025793491691182505200336485338315517640345832871010427538987380983260412398407745319989464414467722208757223702525950170327714025830698977896131696449281096820897609352757360640291480353534560816726935843392591628742261432752005019771710034159655818849738310672383742010775228840819122263709933463327617122121212308060146374907349938795329636444782667114994373902663595315537365749236420323029490897692963288843405686583468735047509918546202224990317343100504779771970110764431392950814091964323870130736567164712858613035762974262483153321030077622834473037053028581153958615633398501764299054028819303105346331732997251895114337074086465644102595299482291376050289259410921970517695541252014570014164546997279381935777381353451408977018742582602813568010320624094986968442701575784097170115372871882549630005073572789145914479763792291209053226790949081150002023931893693632477711645897115967011096936649599292133740066890707721768836460145548308503823710526274289919340313289998607337293869666931371615665622975976120314881642860037925131667627904550881207966094096143883494550609906863830855830407685848940009588918881394837101512544992771534792326748765641053504612420429965588117589059715222244474502192138024976330660682492388151667355926006051440939587556382766930871419321429641961730141214704641354004410522971539343002065820577248209771146808243884831071297138866647512714138239597946288266424334619713130099791918899897792136982402382963520414208028131115007972643307208987153434937647163742652360956541838961929427130624498397300193841447229379036066507042439076549363216953151135551491086087421373397955802715909499346441989748966084077521205280258224994131412003906028546352527239380145793869052480910039044883305856955937786111555791666479197650640243207755475688808960621680276475174768074121831666885279712507671354585812053522626165116595766914192329990078553879793919154922719774491091293290413889137776481304138042940273420421974995275874631732353806676706502315787463107818506709919440195309070264706678655184377882598348847871775145689098015749476692271315641708788048660763995024258679050078201447275000266397997593051270778593072645163036295459501974630662250857429129524766540139069254456822727449640641545321411539798912163018808769144558479995774082590530155105110318353905871387947686292581183034826275305199436659636374760532494686963113542456226031842012577655691164707447421430243386999590135208877647695389319853068935396378846341736678211475847757315612775335494896294573243972812770188795965161761949899973512563217830019025137041758758560700507788914380516807830119326051954594327969761422558868331028935538080796709824346328432357012047394596467046184211925819502111445739009239183930232659294473468551256416245549486818159816556600286972905324455946213213733704846374704748510801920445100661207321203425092781923093233491880578835800958519770311759467659605100938993439527027002559482991682541925643005680356343446898776170704079344953695671451388650567666050165897633135061800376536960504926518099893432870771861354682485016825025687897385912319341982992031610877026226354541055932203230330723779347009677250698038589106078719606733152752239322516801660581458373187376940723385988419268773293008384923683120659242345850041148432016508669000308781905279993147575801060416262100245902785474894179223550113846552124282699076938413571011409810320466955621307362710245402879383379382590816704561603795034487270491270203377593427186570187376092814094590909386952703515781959558333299298333226566513406373749564503650224373037868619079191417084083576980112497819185098232189948748152412520484914234787274441239112290867540207973308424810827610174015859986170949111498448939876116442815344927605035115170822934994879978231819497743999078976315315041758257832243336872074419625102711411695734415234341706584407958897995351521834710911130405644838932046579727847478588566361879792585776756550403009938293474709748319864739258413705328323827136586590181199871542669255029890995637351936032021272390505878981554412991304976010760580506464576457624870425644419374029877364031596315685429955148225711587578063676621982259296648393904884739824337418509280255544013589082211548751284606860843096296418736870832037731102607391945100392409093922403924065952439440689746162740811665729753514936861092204963948905687246879392216814211797099540228433379842100833371951142642240407994689180126326805698071622839228545530824052158010262561209944135885757865449144518950156397153885556812290161554003680354383671138201287588916099156533764765074838495444085946840626490828784920293478339701707769737838711482983227074679570024254266855266313564200862980840888142819806854465364332605209291053282090132836447616686917600327661190390533846511074752638855264789556631544699508645311032071023102982273201776477718867246242218159492285636492984346640258286830045648430154972678899156428190435173640444079328063561045575639888045225601077239997179574707568538537970378161681339486944099020162719463758395927405033268952296160406646365508088316954468990404672271065793881602474124640007139728274218630775677545739226574265376820912092125048669074266476263212115116962042238976005122337172702246325966098456824906983443474471822847000166910797705167742331479737509654776616054327273025351174799499628509864477349300685141705092966042132993291107731719768965051872727474176277604031972548779791393039252053534027627406682306174458817581152760785784724827105412570866716935356061836554157442603204008640728221020789434715168064989115084985709852259325403143593755520128928809814636237856973133445382269026861581741280656316802554948142371492817031897011434710066694007065165901000064929803090278491111653125142019190086096977546726705213842594762925046854209577189096643554313715893193906988550045467335480042296375987144808765170369353056169745759515278125642091742683460193349406137756655678092929058873865527151327486604797810210958543563318810963268314175426137957960897836773066296042614513220290699520954286752863065982129302132177755131607713031960427964022215525271770515382607777749689816737393287480331016769157081949238998000623629025270758323683946737363104436878136664513673421955370651232676559463392383325466717702949965451864142072706250681242462958853241250125267235811412852681277657063261854889834155249952724812655096648498002869256314813411916441407483811001879850215138880974344757692752939864845518531896460090233506581173430753920805314634278062525407880442727978116375395202096939367660466193986672581377656961217224820605213912534627634523487844925933607488131995157399481304079898242357162952417287250557382535010435965649376583593271418310070361173582386635044716644219995943524113375352613743974356741648641597496385643893538241988656591820456397273000083641468459842145137709052083079452005262876197715264223506438621718138502547355320588355784705341460854150790590278753862409929799322721900724928741484337947354577240148533498260595588016322211043074710027388415685808629892869402386341946714284651276439060042987037194276852257359830644801131984035878883777696851147099875857864190380427387080192877945586826135008785935537849096284161809308613539584339972099971694841747583965449771820359650929006532149365972570499925631915842952850868714112043164208261993397989893370901941978156629529828055540727706062240228149187617961523050784394217727893898623448351365394278563987082476717298228310224410259321078784198395951041747877918966268526622279784191308792561541814605086646455177033637793008175006670234374026551770601682654396806916511313949150361667284997223112652285136407072989311059939773654380738911559702256339151780358860093895215560615446898820783022548670581841645921732775975258461999790333632719530369405817493340383659681772587846873678917671848303724017303891290752967354126970966875056656977197733331597240470283875345010672353471553274135626379140334640442622843906786793743026225950968705407089308329039976066557289937844626701971477971624468289709011765664444650577760398581067779581880793518732134694622605677297679727022520216135063002564607781635485228125275874450300743766057992467262153070506114431995135974885914108691801250411867856657711994705536682215831303352918828862169739250039830190524665050880199002654455460888607670324380048795148889403773684810819565531687332529458986280447921227663029393425014923832720128188485843193775371857737107543977674517647342671909483950452601712078494185207529452289203478593406162596291224794950035726359129789296974577933846268986830850271258119013209535249749604975342672176991440238423506697556808703673295386577747338222143756554528788483526934067340582162794397290748345933769950513690679892440710727668919357498412674826213053265687902101460603343030626613746213647546826452448184372287940099972009968068178515102591967531823465098380528332648109840437017962350050022978675258754187537937483799711874087578695367032441241234992588236127996450777849572726323371575755825101703421755423803950555608035154621471796750044729773432592630014865983590702998754465015473912850934193085319388334312606761482040115595554993807216887040195099627217021375858238424054468302689561811672005480091042415262381988695983368141102572547177955793862672786283122284486871291178464522850148516870106969223757065036347857288115653165110804339949199043776115370681749813761377306818674738463826064399578773755826069848408666360994747353945483513195870088055687506348435007145105731649184247384867753787455909503986021525666304610332802741809867977114072641143031612792668733312422452495787553658858800991656232335748444826873628332628090530125994916126449829700213231619823956424566588863034495883624715350071399276771917103469825083291877982800852979467529173237562391878707404738695941079626874835837123436471492974143738812206708086244847808823614260815608696977390059477198576582575630122031798506901714375838989255954897131227615262874113908429061690039656190705776153170177804098857834279230924016235000624348143125177527049297008410093880769455685232861549679800705211918839816657902379143140620310213279563396720233254121961715004338914063418022219234705184615434586487438352761313139912101384670355611129672476861775544056340649697296307350849435696575851470414041596305083226424473809457225353199205600693083064402450162798986134938994848617005254581042765090794243845795442961923124614534216239120850846272108697062019110788982665130336080365172606843956968227839402475909513439443871201561596039148323423334118864035778309934917972961294318151444463231934800759180655446509012519542750736898087072336578517817687456200085775747750331375939163248383582753818437269607428317533877773481332766419695400135556153671603143180922590372916313053369939257240729929609586511159937478894820870092842762641555406471246982237860974335819683883127112221700039886081171538935734414285048373146709377495933071585464932941975200656241678444898219539221510216207116239737946667196005800395980223204410952903433770834050968856232582150120497234468364420431424674089140705672007573850638842719172110047622179657119802292716835851831066225691509521318353863967168570500768430564655421985164169126823269314286571851021333137885065775728382383863484996419452222705533519907135312215982056778731955530788607304010571421760029670435933469557290067160664199446822297506891672449578393221451802348445757662247306570525463191321666691116107411497004928294251082170799434161528152564552100560925707190479408437637245592023956548858861284324250266446008696163482646132624620076544939866619981638566313854269768421787086026133170961740272408376648776493892330844201899636955810801669210064802600082653571787997882675904668384573039154007172681790224132807858995526289228357686616488627343150200043682015629929312534406919010813121310398242914643177495470328521978022245277205386010119609033670717057166311882427748538665168473937755469676828010699922904091148136476757421264512519531246346765239625401015079752468804023814957044997477144779323684697229778144228479721712201999544850156758125129707775016619534885834730401443196745037370341765373607995443378512341073150387413163408518117139710186564983107015816732919886956073901771978512456338678799904992744567780523711424224566049190314195547179182624244930607027618118079339470300454664172436455729433842098505234040056929887896939951551655800761214650670466085512156528722186468503679199931340523531763091319791035093532561704546306873743324152019951273822058304676951702841168732661036277157716178811266708796606734534018611899662454541704958988079730951031850376464721566658265119119768990079378016629645684041388045333677645414323386256928980259883380656389517472922672255975085238091561313701012772720595139110131536176060066894082931665545961870092989851868449963405931576185456480707949842449791540956459461898371342092927659359369448377747656350120113005252369048471859967804575383589297381891240705181203829980634287907956947124605544190491255097624225960245745471952665261951467737496186397770818097371840649445577200888067353294788859580151646160806910216918224159449061854669375543155307984122851532935227495167461799162923296670328861401195600632916574184182376474808567048065885234360205676366462181956575008614831201499770922335251266532494124731697960964042875534261602856526608586836770875541477996693252400296071880367040901346687405024347480601688696161310235137099621148457273262792840426182672903623365741194491610041256596062549830135278792982608093699795264481632701025538206928942662019398145874548255939587251529627344798286249499362335828285326073589578670066028154167102569825260168097893889027504711370638093977262204760703036321012668326510186417168572686749157262076807723234716260790038666936608209864249559043100032272877920506788493046377015821170140612541156617812559517310380366999152267626496774891859428127621555766632419161653680419089568338878173118618560444896928500777074889690786707153575099427424854912444096176507498444561702534999792366770601862648475648544357074035700087289039650322813931660658749041854190094154914545450765653187151171850016655586284984325056310475244026742428502014279134490257317565083792918458376915345466979629257974592450076194841042167004245726232931389339120724405538150510712732429605403733883532665457044670883321846803491188540845620954118850463590348938666443468788207570857594385039854399785317058186451808884885385865121087299309037764907750420611242724931405948589704442255267812652745199188954854693542053800809940094281963672369629761593488236407881734544218613310905292828296147803200665968894019497769105887939581996866298100193829619375456327316463524194226418664317889054676506146295626330993908298840539251784975723294267496612716217151606862728646608177123522560914789135811828233223584549184490886886151041684599821017986331142827922784857667501584533080087039931891012105633712767163574058171083743907395562959115438799023286077011112591940272412110946365969590575829715051622166753473174537072752537485516155656141686293122202982338390175679625652213932756521265998812360696906501223490411081090895317214000936480416788226724392059688760552784518268523101055531298901830582947804687445860371718651025383098798347116369152598542232596477709106152364353635826250181963237132945827611666630400025554818325731189508673820219741208113921186111303034481768950150926342763548141375435679254822218004442793611438904909502135196198603100132377319889247393311249459503951800046795871799410375536617504731446067196026941435980692709900612414447118890429754099278870990759212673293756804119172680867327320976404389543059774304513584444520780557579874688571272017139570426333742766587197813070961795910092254132111191824414445156444679433768319735215838633681417096353884117976078617039151761512764743611270567887117535086336771325671150868509721654383083501845907673724843136713655277577456222370047248742397131812183277732873437226175788264115205873653469557766033273682828481380867584448685018504045105290592511811107775707543497938949816748416306953421154933971049779335367041567689719988397356695469671171137421012739194149141780272616784765948590000558257352430951444960915486246279297914901967727321885002517917872661849941092153677088351880688207418882496773057323063229491179137173297626531537963618044819972835525045235657698661487751969363017810808787389240224406015770862787181034808703563604670294300511469657887765270952282314493194450444613077241750025934547424898810683721891323362284469385386304626226263757605415034479916337833408289447217149695995641736639883517842184171859204456564752300949375407726440815519635225265434385915721233595077542314934566092981418495189283375227108212308596873602845968389319926119350056759310256202131590800367197119693362598626954428129966592703442590197686923614716759353291544461866827512726005348007447069476491581857277610232357293320753904793377346111404312007658006218290037104848293852295876460351436076769066476711073540100704502788838389924085014230659775568847649257494617398394711034698443628759267308473296873939376533196534305272006001898449129087614080725319515270712934954642447357633812352083964787009800705698856117599788638746581000524765721154752554920348783996337767669955114195856058599685931216362302618584288058879805592151098294055750123522957278459163980951401439950031141756002127930251161065006416213327626295302659351858865095803657131954561783254512659440691239569406617007701754553066478434861179266018239168079654980251312765697278445551791499073334700820182216758741675028482358771005964507120428799794008533729617010325699379055076367335625060369535308727426809801565848976863881934433776887725347327378921254017525090789327701371929132870016609504181281803322691198344881020043752914024865671020591219178835060180906171745279624039562404162450985035941803745301900450039338426970185728588902697804804174702451325942824510980401583722153738298761970229620764562948516813035923492757854286590345795455791619548549229435254790496939484257927447384789805633621958491143897117614949077150624466547608566217865949781101758939719850114589778936922808813134384890523949054064599427673484709756152391104667789893512780456235741313953760159612696994725419514117341388923958765494528789754870521991877035690552782739908639828656205769377550401406495880354541630166020389514472390554752283254813273229900899863192527659090013837761007152625294325308514951195556651996667209176402381738682298038993613899793215063280964754027920728428227165854590784839915522736125659091420110456366488195344791322848701531091784660701080034429305905283200700471671212321606002694177885563938630126501438566358785525713247541873681974546249126115750390014583075425183049476028862406514504496274067234342918271051421836164377715921159768775461335147721188628214953047761828841837951645081385081666887688317207096125713222687577151529423527360467287521728445120024876570908609207394028677866827284776180052927720509518178818565318800539072875114180405353309506416126325728341139604061657874915056488627822796081599665287421483138989073385952046988820172754345315070229401575625141982797180313859611107915647310598630619296635140837480433910686726901848148714154041144657460065484073049282713787409994584847521100062168509355175153250441633390787731453168863314094353209551426667954396023905794072095513812527464963528182799223836022147788869179793981980275368316764328776329502060174166747790667571734490266760480066775598704516992410110164014630265838213353371418949145889878249917186532486756016561851818621595512805634571818396335514350149751168942106762997515212580539281655242256130762343622284956688587953272018788928863876275989434750658269090003471828288394628813153020250831942784382325786770312100660723217476767262105454428730953032038158520649548562614353631755780649987007536485185079632689096060295897968744102755167758150108315497734665484784436362862768072971841810665854344182719585288546635502274662604354621478890637464664570938677825764029001303836822957463976937975289677363497250320495149936497422377419012918338186684427346998821543972639297231318953312365435502663401711351548431876944591965623676345374862917091803133311612131580379908576703459222375473361880193877419653627730325708215535018421701076097243260657465233344578936619222444081946933559045074929553751079177347909975994269084570859709768015201110162939124725921485250991126216687951861835401432433109457329908178213775377463590816201153554843275400125290385199005639034286789528430476445104575231631795414737626402744254871971054985339718801257243947467504023129199443487543298803802437785605973757355546805257838255071499851512561909521142472145331967139113885393503756128204348951718525193607136023444111305252552893223028394154634055877054673644456074230126287186245661666979436322048786172905416970437781191997142538882552579542880378923263891381658517777371399401621194872748878599902172861247149977425815604703744814412058008317461104054105081849076828341504579881367193751511155755654926668412026249392771914436468388407334403673592282168392737831170521326602133647692550918174024285694383753006994042265377112323677162405555077479356852544582122888942208689700239105498489855244632247267079321901242526220741500002097248847090504487215652770968027586378617530042061545769431129051224096711323701442573349004953612231087798341720324697993133000432980384431409888414703162404473941568485809662872577199523446959530857527820640038141156391900527066465943822823757685973948876215175082563883239108929031418940870970157125504063706738530106224288124011712441322855139017443809873088557626647119042813352587612334978513316040413972757267506673766045154370871907640264289108475749913249137320636569156694378286085819196525828851566277744869308515505009089625479101822848774664290913345734895504454816432590759773104581284770013488910818943645039064028629337140810374837946978668131134254420393652084834044707575673575872841177360879997933136850975872132847922877803882485993940808241603075902435701935977382757313836294658806559286687332081746042094824701963593357059847844481299218234485553409831671608081891842000784249772629057062841490273967833637733723241465716596743074503752540970894215431505267746749618399066218246851682885580467147002968554903785964741955636066536656533505559882335928792493460720353434649117087175124933964125255232284713036805160705846203243513126904191388807352502954183165396911858503405309327575245573596898560133507052684656942014380541427069524050349389237644347729443657557893524492393506237230110421657624626285011248144243830479573324271977537301128029895537716573343486401772080156513210886920099813752464875916198059788373186868231219636133534157699799745957381120589917405424581448583547305783180877739531655505879009186920818018959540636850364548997841904196109440800465574004122760270552658427244574960359916159442720480249782020107599892258618474767473629546848259749968973876837683883166684617404046746552097457450599758350767469984965428844687804886996141977344853994757718494871907729032104339646660062578983812227163905510510173968412907004181711398026419150535989839424597118108997132439708631724434852973811759542647285083134076860808466930974721439383897451455426025361868857270257494524073200504924858559248884020178707685345681389973223879173989169792032974718144105970447478331370037603981453715663111667764880889895205278597635128761425574325165089137777450528080734326410047012045893017334128915427576420834414842646729841717538465750505857623113886398227296585986502596955734723031172316143363831375431829468772047010094031384429808403345015753574580574900535254188666693807363766222060589489364515197401374722278805885708478628983987232776473895961577395933051630092287120739300941161780325074259787032399120168939169557575061121705979064024712277956334358989348250317966819200384993927314616853800080426939611442347483314471238063744116963998490402601662148071584531145004039193092649929178190229547065863826239204946008925429600967696670048331549514636430066863690207538636356599039605770209300637063883879144905646732862905972933267733094544129911592619463877350476038326901417502981569479554752387673147336857431926513511866889386588027327077390128062304820831780479044742803982848167370776012649452986925697532074501543650608947222941181306949177268680521700874196135236478943531577943335850746491739107013573291734150902056520274302423467682990880599082225856294595763374304018491002404882709724699348749812076872132530932453665071380058356441494136718590851577856522392170402321336325701883300171116665497658701173421992534548529016596628031329379788783979054259044099249699586157486600043806254190998430228478825486856549533121253360249902903648708011871057212251446565726899987809352319716059014113208936493857287115066926559285316818151015816942089544967766544085366246228268533172826719652102697877640724041367051732381045442055559386452869668489745261954961086419850722205554634325642258018936558810517309094465279970429822941999422413123651189175960065773398039796094879072906484835531483568756103352734155077709729984046920692777804887223305222455863544899748929603202988878280515824497796507655295434976993376062172199476974087475019637842605936326228478058879914033048611201797694710165586877103047766340548035205026648166197969963894375596620445018518819444819813396062890651374281122021346569743550896113308955326908488891002900984685307313779657516145103537374848511706620239569967403688835818958937792430946584042561376686612822819560696488483019341315624796079857116218410989218380210713125504706737309426844724075762193684223385025227220798373084184996256544420830326769479841443932202596681868526598243970642680093263955036443512994452195217229079220057562250923853570692123453569164134628610027953907714094810071617554542259716270496959929811035903671484560504372208746105757893834907282392035485278066578871542392408742500987150208397346670862459015303380381233463791767135027142210352550686520486843578935388693844547421295746665752552532341185818408057992013232460427036159756897127518989231232440658430588493541370919492741260114391424467647951386402613353585602610785239625170977458474014827594402730756383095200128272091600670994260962810855978554396798232763761466083287670168448450417699002518190348360308442660720696684293789518923346309545741567249238814811333555027161887855141514582162050370645695892467999702362377319848491382558256166941408150524174999060551176939911413422729233045367152601118031118343194006813370245038914922793313631470834737039323707408585186365298573804988956130120170492414183754736654781658312815317413796944616281987913000799213966162287437500692127745429541950621043143720962380422895323342826147169163741834932293690497789827313067967765120022962337710486902287113118426006520047340639658218615064947955142691628050682507682048501725629080091595585549962974085588151249870134129346851637401831128748870854275820158456425653416807861822589321251635250567368290486163323584576494071434774280857810580994844362923436108518717824101516413736728879333242248070857357576375277264237772009243801990709549316031696070923734463218786689665829453060599707527635278676867933526612656631981720539234240533741060348868185213263007978893587226422458595365382362013976962242195646728856269243252090128284746588017966719363588256334261694260456276523322603593601357579573067966737720310481080231167096522168644934519057645481935154865784689093776653559430673622479000621600530676820498210288289357028835886597693594265398864732396710028904410907947089224423641234404932191023819838162550208896027871433790808001817925013466659755776089359793004380858755615164413001798382624699511258840000875979301879765242096036854154883242983399855879746302578648409280013123035412718236866738918096406466824120816230152944017785946091122052580146608899678866165261502259948554788224462163910550511928609281243527830729687156189746981775275185961420686399055361713821499582394340408985905271880246740848573652633236888403574899748021832163478524043297075194880778031545486405824005891661499728202612094909707549535165972235969506324224256354800216593781636110949059960205173619321823417520475984481074035765544467472066184493803319858446366731508584518210681923213555733661614299062977717116366860550558128891777294364142616314781999058718501739796791613238493165984158103806237999900108001357713142894323792570664058364246116613027638239425402598612679187409460308762939797604975620672327130270893030491625962465848269202227074950086381335772911342449748706716218082412415114833756385656410353568626813500825770617788416248505523210421622235290663787683082326183191823093724897313414370732403607824103185589300205478408912499311895481127630196213463984967065130318346783427535643182571804231758912015965573835166324067086525262161776271339042641012311246592520316568384480849333515876585014201214693038520815443248466507356177247572940056243694909107073660037163642779239542515264329725825972174597497097721812699410439225992443128478011034814049089626398266385591256864262439568786101382490160521778664950964150912808842667618814330102452840413211525462818810951055981559939478767686970992674787312666759837819749043807886691998680158845267136407769673223893531292176229345356836366679697353961434972785027511137371393117869968964996326717829868693356390454802678199928657150969194944194128265333136485108985243711759761802434022222602629279974804915468958315324912214499817117755273881681973990340959004186504306369387633629150833484204933211897136341007581688840855548389848673357695341006994341601642023735245113970442528986363777432494939283660909374074427235816301630837294257374028618483682394243042443669199115309450322537164652938638449421625024716340837383758275000063935444440324397627974823288860444504607273142741289406458698761528311947963806884936303941604291189366044805106037166504014966996847123861779311435804240348576474118031646773935463700921273826247414586532589602042252271036687383695025953130394042372859618601215761716067808648423199674667059628455238553620314071290383902221304383567307439144857208770470196395794030508455634671315539749251180763220769726522923827756498573679165150627015649293409511285434310495185344305323748818274515975942342684292065752717086232418639204865677152683402196907089038193540164033499025090188152775076862054173096898503900632721271447888946894632924087007242622433192009193965486837750749186341845241075636481876490192763809424874726065151500739950127254267084448577613880587709483361241364693911103051519410262419524150893273987592882998856243617500710055609161645039292555724360443974039829768639841117656625118932048043088508971570184395342023055389888794100858785269401963022182147100352658840637972008116174311275449048852403998867895361227963085835960020385562156384986782999107439913525611540438729088713980053764117992109972284297817075668474160981754550442637787997748334738484442141227059671932714233455159576040627101638369942038259063538302684572994130632444371381294285357526238474664027249756717701682252938309623681611531394955311293840766754877928539588930699712586293212388948096367174640654602206182004870730680092069388758846256283895625117153730194196676788507052331134318504346836788300539027268689994735336105591395993690165814911164444857536471029783680356218588833500165565629590525417999933115179341683607761969878714851810342162568357946108470140645992603392302222829416485972659065829263033275410329401818816362863939100326029669598833224793424416403161009100626643322742162949215218531951723072071743330084516616204932136516059679113001828188085839021195591255311567458020737094079334940148728841710344490285113676300834339621824608672275506567776229989111739952266560688561407694490572823513222822624516138428850336842252969008019535467006124646368234505450141106462046305638356933759942920658083210887086289199860790300923572426507374311926031259689382387064847648346057946013579797473756443333492832213709822209477063148450579488152267101748642792782744233751986096901326651550881777117296830036187003569085765077567937207545633362748290983460630952387003173587149498601549178800915716929988806208791884544242869746779726165318441903185140416745028500068326361830871951893091901119880525144418720703015416385145301540557207763223011919670321535569204928208346144509469800582873977433067972412517931839939127948739359492071745036251933560897832921333883464236814689615720858866407092014741962649662186575854287087984258806202878784111165026262438732908197521504029972268032033401425335617618226180809489298667622284001890529578664794260645464792422049197380331606038868318452520432864517501211186466302857699074880932464776101656826689772035815717782594739439407743094934552035380805998234464309612799734497497222968852990395776486432183501223648800343641795397449062496477750126578941112263874218434742031505762888764852028415223285629598519421897684982879091814417975553457813742707808873319582522146700628660679261101400897030801644332227825559730966409818046435933595290992106331872540370952764288554384694194724980863219086293976806636931307051012167791876741500701309793555709522258578171687940096426117137050116592854414507167932560232435331975415547354667838015456638115585480383888301138604566153340067662183208477405604355873144143284923774456980024271678790963508642283400272163102482093502050513011698499933606282343147764924075871087520197237076707936658184969610128033802440106069102582690885585224138911831532229145768614433148153691263904236749447095273876103513115972069609415409624902171339088925214191665818022602057714368786847519441798028226559450095370103016196961389991795323667140919580270230339734976386183528724862723740241167275889659022713433013922306833635158181582137035022970988362851774844730179162237156600068791473589185250350325860186342695312221773712789570415367497212286585478097358915181944457940350820465646035957305867019424779735033137467982642461416443621954955802280632146974912780886339884721705793101679707012406069205406804030166575662353056752798217637788855408576145462875898379869089924288159251630797818852241480399256334692912251663401836093913835718819449942878249926419860290302176503966162277172395469707433137280947742016461466397064480450722615927905298379788919241920974471523254177591635354202114110375498622758135520374128250718119850315194524080247050185347544827339940783486694761603557325281487191996813604947388775900130468031839181309526371771527693434176586233881408576285978047431712845417579767445360670691658053980267948701583298478936947460878031259085389932670094631194448213060974027882916930933324465955724409298393582050802337465549154597440086699922341759377893858703047239627971136529157599584517827050243138990296552252144917955164628446700662962603600583823776673836407813945038403577825845161076647167294003374112998569261546050921581731391951444886122985440876640518441841665130586372338684724910717097209351734320416134605124236019373372100420345950318940419709130506620660656572525860489992233323644381192121759950576856753082882309959979685506783430342591139467201248239216988128852699515118604862823430158106854866204015928517161362417268064052002185095275890389378390803070777656449276054646088812967033600173308365239001518061767531993756984429130088360738659381960298644836585531671529158317917407579007510738376725569040440410814230502402463467695787985696873965147137003011812675579167974192099119555554065535842975852987306346844375292477974123124577057020443589239723236600371365228914219198169612303078192566798528140060507405268368489696465341457145042898016239873414766828596868496643635309230679488866894252561731540156805899837301973646430177658812990561097973492101109810083780048821103518393719538792408430010589140229675558586204000087687500151339825846801213169464726788390165851661815073357569331710733111682229276408303107218261578550499179805751698545949227647190155106650776917292398926178779924600432201214744721710117036010998116720515434701653957894286252676303206473024784450800307499948493241450260856628607816832483068859168552651480697300149492055176783539127825629139447919236613966757491521359740719385591655524896029219787789506068318613407974695445980313652130431506932342822202402742864254796720001390611540231680812601972635337500327451107444741327668369857421585454942477919610334167831237119163839159201822710863412119157441794886864508721562076074877872456175652820968262001807113079275616787734089680504311493324467095969325527451020938837153588566389559826567065949581455268618236925548008309897284067179396436038851467944722984341982221219181004773280024297457621563242764995609483290789232498065202485724784643276460624033493244182483396082814395686416334316691538864388878055324185132104255595600360156069914544556867710923446815229806789998804855902009768195282364023201100713322024302405194955879073856391116423443954000146124569805914691852898202732756762234792845316020731924879555759715631028739730652610491080031099970775368084141791506532706352327923675061454322475309667473183235006290142119061946274662244426298281900239275885591898583438397863617751761417083870570423515748890566536401724071882173102361200202234106630640863961952589506262308812545593010372935124658319574777337044884949210338495638018681648419972253530120460283895970121671109812240897870828308346634166715086196889900195623520561172999450276914198820126239308208964054640873354180220659367982399760176998594991287879601350606697274987674363194140316473396381395978033582674553998623408351226618572954952890141712643203276059915046005699584009544148987164158119011403059503790157717626219096133771514645169204321308707107677792749141810026842969261969193227017254696389106400820447810154455889181812846077155571369643089030141349855683709895120996288140163786366064427134702482948870711839136993361643299760342524707457849631106247717834386548620917786777926134890435981069911555659440857327578912160346463786782147210648104066498153308938913983357823309828311867496747335785798911306362819163600537840889962905318342314999930238255861105456440311645688459602093731913501006616752634831072104122458010644839419552223596131831124889573461073614781085889143754266636096687251425165208759318329150253362414152562980231108573983400039311203096899647419837303879058126878860391657476795056883850296387194225218122590228135833163208402200819936194150219137368240909202050053727028974018901563759560699674796042102554791203073556611423387248619203247772848700795362708461301861777172129846043783565674002755536733060464020354300558649682692826913751244589352132088534654603455539696777394737800516086920031074723212766900556888607580039715373005378897932230849483382731452537904143298816610009299724716445507416064545161286751154466280025604162051674787768725545025330684422655629349600720808552391858359782506519780442779558761332648190893575653960711779986630581084195105620911206628799437666306276845794540783604174315750537090894813754756201473717950229598395636425694109193749305914464689343929752860869661848256819991123875563094562133324759619478150319575578011685909659210563167988024199612089068081046795762034159597249162241187080668187641364266267647624726269645648065999836394410566684441094000960897878841614894931827128373118697432909148131708042965359834711489441155995529097908609730597971044908903691724970582800999406395230963017818706812346222245311103265394423870658234332400917924595006320699104250077149602190480727287393201935995503088816122048183461407163829443956393401244407420324811866282123311891314985447241080809317800264245318035891478730724812391385698422687916047768500098350197083655286577292355662652922709010109718530972035738740204316303260153316955958970488249732170424541098637828499042524343928110374083337854152384671344048795142239338670874908607480661973464055863033889302132325104206234301271925042998612698294675491041611401763241798811166389503395275569874283261402914915074958048993321004760021211828056191241637271655972967482727232366338536846704505034026653944908647625792529207274131055617354030277070288843898110306839808240701283115418714957304581374512252087074754787201185044571841240697955342577136610009982506530537717986367456375664322534290233337288767337584031824170357807598082255903827002458238562365035163510217465549131702616508100962947025231132586956560739197572144847855700413213018896469056246910971541788871456286448081576208977513194513313737054887193370268736101875158029170904328326345661052272691558234267727731392877038939107346518815322761719149900920388337433064361220270583968906417711832791499547127234400001589474725229165553165075102623897459017559576178017085867683265970997878754232913075676469855862803849086789645580628409866883165493552968044010230271300531335978848634197863813600768019018960566240684375157856338735026619709757054137679603734390764714922030284311442010983669892213523501765565706532261094129693023046697644963742026397330694411284926985571000234562486418559680614079493078546728321123843675727651775569700746386615391886414549627939587979410068387438970970664230703348700534493620111988628203734278509248352291861999675696423161321364296809631170154589912282528564977673172243374188749069371098530843187123656253694071636437434141352233215801907975252753788158047668228263371936092557605439571619707770445252257862729994952625553947861564973735041793332801576340638265704662875634197859399457922029434528621585427689509717319010801759375117754596468598346195311425972779634874578119266603553742447243647433200097970299176202959115837045357946252947430210569905543082360087673916700414692964862800351815189549660315884032084292148788879570934456731807904454682334423808299150388387401905082838408378204403327616835956440003789221468715692085784989885766007747559458058049402801041013067145682290935795725789335204017374559709977416959277812802995536317989370636409037735188888833869492693646693671293053426946741068986086990450935017627922949307516574233674453792731745571818879691834639677447813264416108414085368648920331657223876094628123358312252569756358783657674763428613098918141358929954579464593786770569224634298200511725919589339440853376798465401623044487822639443041904831465159078229755425887382330509617897516060421180448976666024421051797914837061260644853025243703993255000832320160586697314370513776833932875977851078433318213766124022517733088428338597664541868779494922083029470960665869124660760313061709833302470548872583796785616563618712313459763313570583165548543445721757556926394976218775429527950364414216777376168011616001244478058945717311767237132940647336927466732531366533538044461422001114341373422826996884772608085994917113540634611032302168808455412197483563566191637388044650389561991048195292772038025898383779660028317734981789544872817684627123627092160348387268665398993363518720180060604701463292222656760466672182739815079160440739200673289474272625436382706551872714160815401677892495294057017944518616467551381878217130044833788957813813369372569171950766390848928701680139152288761328128678128610820484689455612016446899121051504855755261556535102026782314263716546131790406873395059026971268900399424292717347348501010396093103749088275766776633287182510424867230324632041132769021762531220046751318290002723814070221806694450776725367164840323756090929843795042655549552866064119109480466231204592534384812635904075816632722550996122597313240771578930098227908658380709939754970327809475587938482164605324948928635576682764738323306571569816888492823596494031102466892589677667493507067664542437140595209740270860761677487201115653246114181642800119367915851324411015692172654063852162025312083907610324983339817607587445691402309418274517235115692110212214708799194633316743261424742840024838511643807935116734427359638740154086123447018256424125502035516576216584709254449619193604295064591803317052389819881029648667188260513196741845106915513368452032289824786604439249536224309419471107643055237540819611573160450226575495394791080175059004175413256762938286069439229908789264579901370689257601945985840140794304473804698793282379934742401278137014070198014306867143473129633771073816183861226158643218455509311211675612508315806393180383485994282947362285532709155316440355823761099951548478233461505533151090717766415675853214702200762946454923352407192813349757063760430623222335923910299846167844566940239983826879330593641408574395824829626519039390555895855768804604650577293895857252233539237512715765831440287886803160963881172602688707287199045488932661355571704943672495845594684711842251456302236125997454096141325655913971404715340228612899254590561915932391195397417538962477442477173063471468732647988515649399462299490901591168525883753600426133742664441506816445335164658982237072136068137769631017055488014259176128907093031762998984321978205392318513452341076712819287762296229839813412271101840105908882324723645396582953586028902347634773809630079092940879477401056705286538661082708978320701176071721042840921352281256420408067019880929834853641423990244087230801742336112931113415374038147660799744639505540035466599259557687512583958838094827754374214460422910556043159934472734962465542420642480261914018200034565679337637391557867518974095400199862356407423840837112359661000960332919011707445578164570282776595253247629362973365435764034719150848133949975013552642579524453694927261561756785664480263338235139724660794266047206278830521508713622706198727452311491031757142570197396830183011405025476873637616236522447341629559325025630748558896312079275772471530921873754148665521207706246341606291205314647091585883085563295995884276469023816141106294294553442852907769515682333403574507393126602316297606674581781189440318983156329163837649314894722900460059081161913770794495742549163920360602075299082655558501762219282746746709071139983257014199805614712669405562730600402181259503561459666771140093878477517677305960918687999103982919924674578257592681578361429851065981609606965105022917759860039557457096339822513320580423564674270242244855565087230581090244997552395792213176161406796314915171810484447214531514400014670363862679620691808090727769089590223517295049059213939399718912303793273682910031944295518456198558524416425325554403287475685882132443526955012361319025572121476440103236890080544393294421574892453632323591909487452823261767679605506546907588815741488099930819616772500240493442506528622808789409255382540553377104578814900657071800639516707507879516930777546083673870543059521644502793083878826941233118847773810453471549492989533157505717613642214137572870116917667976841068713595213090563247048676948277331902986246553898945718649328215457202468058669848439375524377110541549358573798029030171998953599813139565303459089413842616272136304424805140860682056370548815686599471688790859253578300271946406088420021729007291835799362904353439017913012390355769577397065001091725885394803223148074754618165332799453392329620559911766366525490513966396921727185285597456443245487126037062092571715007779681926934419492764222910501643324140700695720594363517900121855149353386978703681416219650011097116370262736835187422536563246648526629489738855603801069366268378530322561817706578241788571900999186281801400548620226498314500380493376223443638643611406318142264445909964966507366526918857918582016910839203573771974017039528738348161760171164584856912167542453399695874028476369965915195880607891290202255923914649884112787062918867840237688054327857305092443617953763788052241045189052578226838846898441010657786120819302974302529493290536101766588543319969371778739136851074613915700718378507444868057631038340164061516421674454602069166674420638279732118827047750884928212917146505435639937758455823982724535861994719293141484634473037693926007170726916945515767975069194659671544211808460615915533900904695437408098765354281853675967523172456023616294792300025361216660551816026174033681004059263522938246774009813451110277615396232656543262584266030054636204310623467143205406631743090122288608250972859695567187245645210557860819169436758686037221271246039006035012586223573052935572314702082792335466948227772732105888028545281370547343074348199044205680575483507007756482951647836448300248314124702369460861916275939586270573031562947046230458539107629936530303839334493582982874913001045236537840620180431808272297561175646512202310874773235691435888213935961987674175021733052025996723916291060822602031575671990249229171655954452082695438195681945460695441153169763023701097205631200990424867715351117556523465032133969472289549609256785026366587644632977051993809556743763812173500730672037629054826544845385693963099302379199835973196196780040222315100542693782985305880366399013195130138615276852077474111475733756235726940746375226378647229777586683512336961317374612582135262135627578029134676554580420065434464576095289859437258069719040954552945740795802220249238432346249270365063940938487345183931367480977874099527198181265894576904619425430103929796664205003203242023191745328221948291038580787942357404480655124429181034820455910474567852742820239217711028503421746807011255712199342868945358735745364181327898227487770502449610409866336249871451804022657529611985883793688881701765008631475527417911035482231597402228759197594988159185411604695014354554536430757663959951490324137968908014151321296508540910801596800683914002256226864765915942210779296012679952644304879466336209493778328393627811115312936453006560072721459795355749806184396777204666118689897202026385388622503275755261724507197952848183545726307475185497984752255827357926760097662768979088161429506697599269824451878063930171307646680739927563789977638449664174356223167532697720085409155819939182146882820363943966315359048780181528383909399100946136149997045850576435405519899390946629477048795680439586905489698605944027476141491571446402730786041712572551796945160635008187138181814961199394961630853487907724111356001817382419508934068021227195432494447827435096508872534776675943567117386433191629539720912186621670717587361856494418961878026917091124626325046763059142451941702543369396816936401647064651299478597779705855697273902485885946422372295315460712802609415617327189356531962269244774369960673599865394649358419494527072148039413184481379636267528504551181345156521053937290349873156133465949721444730171272042957479478932565409033323318661060745700257557158283694745258370634932686187982461610213462088916791795664450916563333246739705449189442893705912383185276630205293362107001105549744336309278103451969684785626240857614069641166290118431825153080855540545231582973354254643407631040653356477863001611308669806503912435650614750374571213438655976162585692013021071458292211512268396146776919534100266412454787905845605031251577185617772529766940351348102527021133193639983613940001701452440734400993756483995856947218429500190897255072359218987841577521945943309745309419413744398790495790696244235213033246237222599633068728960865088764558893341369151853868211050975263377490598038008396638159668645526685843754238043824460231280665634667494802793367030499136905678165972901433606091617822389874354753380897305436075115139502772910260819360229206472927169829747885639547637914300196397704372679968745771032523038464637849509092703551034869014943067789771428302882371479715387474372379667994169019814645749216446060759578485910148798068634416238966530471296971378580909470785581852934242199739865857225353365946167629458245471474293020789684267532865356763288134961732556326931463440485084673241043286298184673767979103894533461486710019924274223627495201117580680024579779070157040592412287910699543969373977253407214309494012053539359794863873143374189933593061402997537021725800920842454849701234749514524566245756210399600242476418342038782220706642879882897416312432362210962855896451924663217377991155750994371725031601766277113143953276000263935071818797716280807267468064003729511929897418040911744370868610076780971808485916985685703067240109472977238702739730959347984196557341139165336736587586773688888417577798961509194968860015172587129132129644798116671694995922521195848590863279507124337487111013716293614771285287240527814107500726588172616852222963178095423784628813157675190991494282015684246228578598801843749227625835603566630165513453160258889703517823834549990357918444492623065767778821794245954150243567327742800885034990006723863323774240772239266110421156073601282450497750518471735623168146252610380673876229738314847558848465237596956546936000747360466932396754439996793509929250446950649691251196200623344974601020398706545113582157574869716670682900362376706082533800025212704853239485348860277631849302653649172450733796913014393719750177251503313894561735900494873681818426880503686128423398439820289229342771221851132061302524121491673327033583986031943952015023862940181784358414943008641660814630682326843472367190165354341120189222668782087492247985186461832972771153057015871239607676524985769434121987518163744350826779640205493216757017276611804722810405773503388396173424685756964698396797325079936431601747604726182488067289566770488028762412219754970840128901602177524971945158192548704153935858082585772321710590579023911420150064351573688609315002009901769783864946636941287114525397883539557357370190129385598534341543071427222194558140191978367620549048723521851938306255764344402239950690455229696177599234846227275805434706522347394861839175860529494893149501307824095535252249204083899193289753895700931335233829607354957954158396231953794301152357457272555537357094038937167769496315762586070053697656618790587974199264560971872216906884689242906462052786909073152704746667038227021542034758358294988139923699819677724482243469672779350181323373955133261109612120337291329063436979724197283842347356492549401421984437673386619308772441975506271140840233332330965335236744434539605349399620558300781525864595866850350518727752391703054108214255342588905343028390228445721061046157235639268884367525109825379058661749691268407705841104812348574723577362402818827335828506872163633345615901356086865340200093718611366373344313497280121581251108146870780180584088098137613840412683651357821764557707595138172502974277105528683355637847355334561565461694632134939028021740688762371757371934061632834404100053706281617141772451880413585110169423269157243912180234947495973791301946016507665678728177967429047398856070386355689341662046508031302777722627277630610514139264543266248647662969557767228420057398203222804247036201562169607492026261710137131468062649715856487057406148680224365642694790059394515751499441633541107293523095025701678713308717583239728584023997951293600274775047593585902655380087384772319442622581989009190130173555143410282949756910892628216555562026195013990330603159019854557797312307315118430627496015797152565328477044016623819460519480461409130754730457893780429677734020813761823169497394149527576754163362007124242655042040262239762054494212981636907577875296589459430660875849172092801205235132178624426769018147148159194092944425236256791400252233896514225968148304107870316005142688257085430491232322011831538380401853148152756484851353371827293290960706869873079000239626620806124428185924949914059244627948890106223027787422750767114188361731888151097441750985462784057062822440600516154075881533934369044046434862515551231736363200952272734274500211142107272500577847923793337503526265220023481151347887693526410755100573881558564133579454563216894848779670472421323755803424229824248065098072946816113940773429238430313058215700727204677813860354497758264629028891564171120245176477907146337623078356621115033842856355602262064194625668376549548278537698487561298079210664583189033048430929735306908137769436788061846288867285831108770842677636557059430167684732654706744036431698725358061156640672982882949244549409345395540555076820443117381639560708906147344228302424279485517207823601128664130496743767854416618782582633743668447532687680085829814135412048219590848699442955512965905753319053816100098956196289325540017453364690474123940078925463694218205968254160412601949141076675994026160600063018692623096911682752112955676483411619016216331109715984289328345809420507778051999183013999864764850665931865379087371457050965202193279614563412376207098683397894588475501818678199419066295311978834744381963775013900798165415612545895493845261208879936018669194778495831473565723181218429511197656656631086270207404794619001871195127273836851403275227727876965294068179138853759447221956605734115819186266148921670044220403994635288346703652415392652152549608119503485957420636742138562718109923402646074491111250818162357733387906074716805243755926147267295321208706442627565661510638785735570509542055303660988287142258695029155112377611219706589013936394401336243935014659316699438073173611836545633867928347752070293405908418272441210461800922238051810502284206901167835076258784337247893619566716302521518960579712559623167500010758999015917110524954055658140266620266732148356569591982658343103320530162843642739409998515798123645209904982571430535815121193574248960628768773062554786349141505129767655081302202036693362320707626072437421854572361250506807246779118586597104850513627690243303006432444894182429533732000591592808997680815772761502367155410502183209348407265094513443265532108594138617322782675380893338124340729971386569549419770241941387739957704795806220397118797070740595503872059101669240027724141026182887912094337587919427219547960118982806984085602348763026016857939691109571124661852282231048461722706569211498549629992233224525229153436850053951937899502482211526557178982767614335002398883648319445617258668159358542878444671368122863443619326038050929336508693622982211636488135414025978940269681899786147053096865937447132329009375473141970829497658353029254549152927295678645413574211395230288529656311041218727628592740654178080538203206124051149385691983390307501320576102314866077756931262208552138149319146624699969360192088196347441110819010277167289565773529038743617701652814771628745059826910730404417802436521964250727491092732606592072850952234575483250872372545807369982379006333660581903477024531519666013016947634083983866039327669960317591495772066300383728334689139795578375314924440660113741963577713706124106798733674286057579622567698398856493818123871647067661338364158430894857344038432531825077071119906667176443387490260735289784964445593791475917770382498247666401544516401397312633551745595644233136301296687400349761306931214438559957070716573347327512666393390878138546454150649840675281656807164445193571471070941312576409605063221912529794367820774223285137232166717351760421995470516091718693887317307301959185766129473792139590574806468920685590124715628340579160920101271586913129110621678824760185479669712118246672217382365855897872386526462788702154343808171846619402633412094942915226886277282143345729350587360507387282733533258373997938560844006948820776669160485302910872579874852405151788279206351240005875139387631445479527774611775016638147751489964005040302432413948055902690819654541496780915890322222859965305799922519686790967820806033762185811820788887727971346505518102462933804845838115041613473366646106117696846988952954657281281817811974918174926414838841594367482276578482571825625918512224595749507791404447739076035694968408040271110364430792550892006754274838090925718086984569751047588969970636196246019143157406603033798478729201887496308763998594787968210616727865569067992241454827387818278922000271482228729918253372098843793966076040890703393794969378811629028749705825239759410399807262112622021190094319830301609462281810993322345815091388976504439926527723626189498154111840130503886276290380798900841159461402042125996289015688386228102278776821853153727276145120614613667093650605277873415852168946276467791574427700607590039406091541483592248597675578263166230635988529222032830621542106700715948597444324536644464931900980654907192611068963204836558114858871907162536952239436423415069708994423534424800580236165026687896346984198419418735525355695362078815111075357771597158556297095685605358991425124359335332567827418150392306381592482306844649431347013100500084035010105418836684904575973292720166464446391910817186931035276982530459866869230065680034777236067784193897035875596047669947460117975897099058210149630055942821877753317427454016421417572704860790595119340243286889365738917851703316816442354283472811203166039349432802480728511536382571092674980355525419762936584625816494789837655874343426878366148603026732109879082323360347294707550991338273051834786535284674224702232283232835466807274323751540689568716890655622855816735544506873533908114162523330800403279503717482359792194843576539575766098335587966141202798969866751778476390345143858924213581273101243126124225251984481953385686911507123275690581294275299569636604779713598442741116313364421790096957564896423818931799830617405732759549059500277663992363813936304619230835404857225723728626592384809965014551910374426093719577416365367654019143572949616683297365261808368394257014741807483081335415583040216158341713203717447593350793502778573103591705908955644313701482701431300373284821567171762848319609387518732770268866207211799362555869480108489645204180606954149179182204573673843763821648445060038648379726862731612493184873122986763153743449072030711367165649447652863612885078855454556610805899811841032411776356551243343823540163774987741209837020465528373364609256537321722604796654432261101205630504395995684178531099287058049618720980855456714399728368282392703406392406242547177696670872859777703173337255777671414576893939484657635994190005423446410670203234389117113192522151241804236461403366630625091819244885404818812315683551719610623286252349319431710310972149621724064464271345583987545777366418422550631036654452433455321296428124653677311320307792627024044110835323728552302399615432665987896176767456789762685131912961241148298764309782413539745274973242349026116917050213339496973408605010142655609480495076622734294651502685924563513935149223679206100405850368871635388381735327100174916312726458127805935978223315453553049432836350913712578639362501188173544599711131647199981146269717753859319625241818951395026248874397275794926806266756651674246580707225724409491607147250711788176194217185415125753471926618653996754544933700135150973260552505453110109353031424279026502738506325522248941877767877009911580217514987700199410054200836985810131831418600740684808136709041824501054991045272556218720368130440769014051606937733971803484647368016730155393453999753355920770729617192199082361614678203813918742838441894531771981192171046057079594569702276994884129305333632719914582021718860021385047510317046345168914768916767767549808366736289129688059526638028208393801513149044533542874481955111150840347832541692532625839725392211579623597596480599081030828804582964781807067001455521436341580088266538377686991599874819751397484153816834301205018618285134783913992739111571894913661974800022405379155322523120439353957932816253388697952480938807912241401643440110320666950446418576904745976682201446605867883639080900604510037806834179572319932134794610539231406852906117132344773335995820268729282917568406180637297549053847067702028797310744410894125484317941669378469104832853960860424918151284796219194002826665113761924882865497147591859389979601780969491527647064722138031195494561910553330914445649499779239575799838282648125076756608825230098521080798129474660100765984303208087952357482698657747223953041698225136097386079413957786131314068025927810784007549777771873063630808196538476616433272796784887825500416669974813780442353061049697095637228040310216117640514844708709870859186962940952670013229149386869444126796720904409088832781602968552124482553198920646672846539270869670510525007029273436072070240561321674465195462798527974674530463660648371002386606303185786439846898193674109803581767330206189911038552895051422177198710207995256794431297872630990492272377036037366137987409430733680729824912004444447353851789261293062103398371658844830314463625665384649148873972566335988127925229897607409879024278976890701555785597424149681450924874257106675998831736277804782221484481981770281233939708371700787068567318117066375750160027246784057845496150908782657782754913564264731133056460643945032603911685463894208714104765959175790523217237552733736383493581071727564827576436406186599551760064577850522703049212074584422859758044656476902741302707946385495263713742077839558517935152852261033129808516140785874780669822983646036602805765327768919933585529190441557635895745516769252078553441578418291667243204021796006806607635602816180373013238971919969001249742512742910876992390877179290736019262038104360899048812179023358722715403153041234887348917885421290997490152653238588093740087283989319553306949048125768137974987279645564327313143013947790227122470609956375827194918730065324542623121942537632515569013487939758074415042236631735492933774257028151088399703877160828073647096932270821331358159884588516086919827653545770347615990754506568695807510913419925603846346607498428422471863675896500316404209230132120832146397907637395665435113894410159735164563423265916059864936009530816579082454114101995231141981094904346982704906388699115218109013119392970500806990854032090976187840891194048521645010783489075520078362547313168487519521461363946442844747503253752038196825361342365940014802842687327843436272212761931459491212834419670192993744137277456849841463425951720429577576437408030049418034115539947460361008137289235579651220172666209412518035799618467820758741453168288005509929379836453659315639139802728469526772411352744642648739127525175219380593857461969264528726977725691660527812658959163290786881418510460773914922722210466593386990005220133214346397791252363346585470106466633171398890064878365511560374378859243794412033539686664200024878394115266990890445825582991433936496603521232857643033716556897827326531085671368027498676092671875107870065183732453007159679074677518713259891520023334037105332342170514900075227417984742333972585296042392266184634746165525785355136589037691136075144859528082639893497122393694853352331223682544449484930620394631565082803996427062879855870260627799758041323730315235426412589440873442522245739179638780452187978139920776293782862866965260417959237823488284033460435774982682929941293003218213776982334550395283023219193424163325816413970362674703429170570317032343298807772755845735860930682518724617996327232533805783161363694918782849484612695023436112155535440252091553592400365993095845171845035953266960532182752828496154378192445163165347191788024421469580058863834251953076182760970197064610601329173102225652412038500824337663091607978072465471850528516527732504042439972280148687194435254636110115918295055079352748871087699885295967157113277632461738218942008020697134301643818770512042198610590853216978236919245442377527663008916825790164282184972323045979930433930289397731671556977816879434279824744042269870513299928705151516440975825726808641504014715908311285309019600440256778963288952692025205770096817395436919447171234104212645654114576189620993220440597185687497353542933937792449186884084068821801979441710754967346091394199704313809951000609347307792754083985150804734574969707820321873671970708682443437164798408967331619319265272553897113644871444810942483332274365309393541679259402891627648669195527910707047534868906050943680738337846355175469104970760100423632904277713173948711300095626483154943848165632103253329087649104663123167805319211698711532798234198817211576312837929953876174641634225870704039152838691828851407878946367199993802235149252651019800990646518494444311732051190480544528607686096024702460414603009719747400493460117086861989044606084168074397075448015699433585838269547840754805377540482947529293715907533102184007764114267737013256442038423239033983204862356287085834129294435268979061692590661293987087316716436546417450639316473627785842314344717509010034978418442459519026601151541179296770500494753381126631546073938919998127193969211858271186637261082898498082019202453719738794017684618327585311622834551322492802880089540584393438482468535638248295433010206676803657433209623560926888699619627901886821776527094900362684105314354521571625697903065042234401909938044570422126408838905940523279320395336025736083006480987757487943065374628681059424760937776419498219927584547306126157998514473059544000992722706033973654321304157430427358935996765656464777483098486847319915383980698244682785064275166476044810498505784763853684548774127131202641790430129633773659745882417855574143623593449175338316473088591351487201219620797634870136952431954998544481396648318622303369942956673748205597554253362663535098416402258025667804429944255559890491540818739117269646883551674104771352979838728895395635800851763980588381330980245704335652920673010282990775975763886805297908062485329610833389053805386669456688152642458798635546503073457905164640485512746372770725084563532258195933402278182677733834771062973375339042460178183661731878889368736289064363910493141041333777147242019658300933248110875059177734156780199843939949665854576139187847021449072254889747644211783550430115991123859936169202470954150537541086529488805360423173357144671152045422763757061430220224459719794247329154343795100040632138550633185698464860781397829231659492944944571574098359248142516379715964594869727539576084891288853960289657434885158128089981087871258166483978677200544689174599903290131352411729782989557820674934494186807612516748209702873086534324243136313981695348173103925191262845526820837214410541198701890752912724545737047666967939152674886346116960799904553123168649706727588028641170435439643177245219955371183805841626682167719421037445824068225221315822293950972556696180045248494632339650075252311211874114295785487000254073008247315313615241963306470715839206369279020217372655921450460982374410120359611562046854527303669314688862589180802940911505197178395090050826608109528812002963373466350182287112993765401087861394345926831241052870407104917286070561120909786826812409543692664579506148614009321802812740488351335190751415020372305066430757899489362247966727289372483733275600443373409494269722978391355240576038352593253239250626653203074576696261196501524292684987608791706054556949108754999997774286045945468326919184903404253296237941643448843941386295807002556599439818638240422065494732302541467894577228561165967147909636994274411470937291302575993853893847838207342556973121919967115356942372204506878419711398087570195338018911283155255976174958898920137875000213409673222266627247049562288219098059750486071830710371003071804050863559674828591450898470765890260993244530843394723119625955640229226306353121250835871044489067770166195410296788597984970543774470805079740051752800307427760296722949613844086720283947595167178156817169062977168395243174776042612665196703092441331112992059573599905425059102934401136656645899765013028580101682092895655918203927672238829691781223416204578429670652238655413244042414585417373370849448303151459907593292527476593537091811416964656249757875471650100518484039017745677587622469545894260335703064451693227576326443028869744203382253309171974701045824200165069610460240158913298173739352803803069464701262200380986661478813314782658862846264834618193026957865493447526886933337298365030322464045721651515438129562618702735455249829492228025234572604553775220463024166249583951975017032559598471550602243247410774308389846313310934322667699004888284942828048783082795738533077143011916777386806723009766552232522541939532920404153512969467946760651366726593201005609734778230487525315680207237762461707715616881250702446543123585576295960133284895823704422746844504649965442146400737819115005261500305154540205546341054455303997510225669737361809605836317680817173478678583225473748706946350762091917644998845519183594483896052901630332334195456294039565316543976615967065785867817652670102709393104494132641877146681057317191987605966825456567663257214740112765650628242542627909645160886419091042725233977378296320745313713588408028298549272938937130654327337813119723822454373730071427252690770165017396547945659644938467119026833174589296865388970646426073390633023817534269382955234294074719651891993183011533464520869501215489341276407029245538893810825745796691406419638975702206049343122559596496525930482883324383827730901198864415694690161075767168424694787117413030089884217845438900005299556807948571454936667125226286545106155484109761315812404318498974008964906655433475288536376940501801958991158441159043363421869809991292050138767025623681703292932400485391446126312641927445320445164764417839798936736052648810912836474669449693548873534644259201340135946689690568045413609952584815263352328524685532987286923752544839020388752098245570641772674014668687106637996912248269785963624355585372130077017394489336558530009193573026082404101013218374654516066130362912147808513523536069565387253614529343815573112995045665017458507448243858207788172855031106745475133062620912025047374808167255496415231748995947269580355164514201050786005675443635140131495508169608532929942987814675667087437295051466569029148467671647707238449689184140529159037738465356723018233911094575670782526428213156918885682908700554590024327522304745288596935080440147708445354475846154504306349053282393022514545174958788076912490081554621315237825771738523091026025721787702133670410684584301671933435034629324666149578949567566428729347670504045927891425365953279062323148642667569229043017650300684451595296275016294825983705735856962212129027328751441988111136996975379087468746721821700886911777676702926779323301449083460315832727125337417198909112263073629380278514337168835069840033815739359152835464186881171519928042711407601240391754443515731454727451787095191753157679318671171321924867926476477932027909154351780343238933410935207814953939876319988201717737100973602277629484447449615473967437060142760907852074768009270237250216297567638287871951956848679348600484972528242982994791067264570077101555681029772337000862988661916563657230995131560062286434842041523583144262709835981633855074869980550095733418904122891674053409034201914605855391091602832564692549367630058577927567912834890722534189978538569741833974324014559076914286943372606142889513505818514133581184730950984264336819539644519990739457780304889822971926009834221176734853619649199353548469332376011190769329760520152143270071401643109324783633346936516427242430411330862793090808953348258515277374476872844423634686476369256496063339916523449171950296834217624434579795814799663813228028133393267327710782397636199537137435803766788526541125917362917844750559836839583267793929921988092734512949028988750365042987610013258777075139611694188747107390950028548060991408381134524490988692346831573258932229820882232748777701551761508123782673679057476090860425892730414569701904268231486694321458824674190822086226716269887325984850751463063827109566061652707697446562973725363269846726720895126990901668007722648595180974077502535835241108573519363996480459118245671844194504533086427215689579180127682219749031612883703151038897192540459751812080190841118899234778752885397001908999592043512325093769492382981186886732339617628132303556043372218767554721283576353822663487537960492542748417431300654504470353704598795116173030623419882406119201141389708763951080613444017823817919554090696260651424525810662439234891929747425162628405033398176866375516535752053551504049916613594960542611378038269146589537372007496545239844797490256623726843464507617087484942166749521110269883447592362480628904808845511057838589559090802675486995523812848541030305889809094580754168327027336755052507163905646656864230068028519831190553373819348783271621748809261632143318487581413790662421840706604510551023465322643076093922765988026197326420671838147219755063504668633417609388451550997200166858405736524346642329027203808565545425335304852624960688699804015459685179915044171636494281017767608311692876297290542609383530902040421434461493534402498617998227444932292427468183346674777912517265100622110277877698205454929042913774930129788333974303637990450378304699041688120402727790405985931331836502621190235312026519253271589187884043347054128145627614321111522970978093501706767025963210377789226003649184625383694891110846163731827963560944315069200840251062395598065817846644727534877869619404465584583801444938173408766063579984778441908363017841500750611816303686068388966928321707928199288946958767217421110992340481629882968761710317268898957306686892656761929901547890611105157371336147866104610342646390452980807323126643244124207275198749953497795417902964029831466270633492551800984784403113093925422502786059305681480291442793063798729363552999506928879684209924314076493514765575084652084991342309212327536018769768088503393749035073881470917214863004293865173625583418495404582205145688175044190877762154980207935357713023197648645832561301267302942346842853599861856889722584804888137593336992239328910477254517815424934143358661090037637120791696446974783014641361807827103910612739276072757943774547996417045955296392024721674346279851841059887493572588048309842822996832844636483876557772392444914840644928369443357263804054075822043513078333978845024969463259325518748178342350698240219248095844943550194782433639336574912520721699267875341994210388271829878295235412484829146761962302731072593666883114547103648153993351729104339767742923429761834144865584344169176624973625647661450519696189212118511944628557481663461928392629938424959860072611020798480869225042472395465085108935938451731131061536487406295434729295687664917990300771188089229076034714950322809566988119778609016713216343414221316097800782330149406840311085941348398071160090764412879535992747357388722918941516937015118886467843372134830371690056366548817519599453609479453093104304157471991461220869641692556999383160439849759153091165285046330935844789104938683307437481071953222193847290260383461660984699286880277522215867195520411129343386380841111111750356119141517445339797350840442445540582398542972055889161124767879746558037546636611458084750291453346246592940692060682907755404343446679152949505896051073535476720168719460576878322352088420061859708883702442140748360705372241910026598760369335424098053130325470349561053049878612202902176157614706598289699421133545993718446816456909726225709566370766949734108136781923237752404398398878563412803107743335190847261366123441289284315546508537265420995983112880588790092094859687645907154022341997806371103596296779605490785267473839608050711440970079320372858529799919820555057276176380801324814574384060696965194194069143094262152735325141210260403077441492470256703787349410069644485696702512107270577669139570864854190971606540939274699812769496694701644435541997614323564244030165544858500165215158821458078120520211399748719309980508410845624885862597421906341239232057861465565134860505175512232279588301101094476661569602086488490062359059409740195412856617265749577777939594052931659968572747041451150481299809466147494678533924716789870677387486095749056269180006294446395604867739495140708922355435121110095456642491033293863492616023691234504643883701754344729427574669028105688794375704450175923390484705363045450432527227112058955357026308542143303275127984886142303167339579547838018308066369231226324426128927627372383882467256798538343652021272871403578206852389164189345490979628217116752572626090743057542911354396515541538637389071795033954669372044158674818507933032406294756906916582325848803153333793177462618500020431626329750515494357177438342896711582691159220853929440739817109855507856623818669585009502726313107399940263817482130310283854473975021680266434069228150252729575741236144600991085182623597638143949937798935414163207364851916770492680724004170353299917457724561013981408077811646869570186659332711359058806592772346499678865586541733482580859716394884503307505363483561662303025392059257089356560137735858448361663054535641707588189514239345307251629581180040796109739593874081639950268768419223334001332267518849896615802555069154237792747306619549989627057693062298239716451990538363422076359474587346744473955866349448536862632014169655754804230018148711934354555283871636310701063369175131130541152938402630255978846364615348482801900297290738427783054837614050700794391674766254299043528061456063749847860797341713022795904553684677707384210391500008234463372393022614816371551944994956041901952583663737863609407363867507684854788202566734969215429829210707475690891772378459670057001020270503402137404862481230195610770133668594566916309743843790875471988192856705317425539022296440893266924662872508402443183654770158401080281699817271385805132644283814669422396105963202984597875037024182318287777070690366974221254263067233437063243965525255126089234446157568094256413879346630531862718088352943390472837231937418458647666689886702414465421805552620708361938610258549632865326781061684873042905552137033631469712513568369452760695637570355450436579561622606779397364285874348444282663519887596631295095829787425851951205551980201057568112292208035495593054245892015330802324220426867502163189395636359898667379460812299221796068720886934732275396343941171630094527208099515560658589567452378048676415389082859266749931071243527893787694266955658057835888977713845962214414966045840668128954791659586274308659120517951808336618541760424209698771395784549375657878948193033291949810679846861071177688431471330445686310757295281744400198988088296774845321390516388241373951692816677674956339820544194167365552673868832830517300551107964779297936249954019992832961722054835705769390684947512473612219385196476947760742555656318557575422216348062180995015082471099063034408334888590966221067216015051227899204920069650791155172910060477559778874442260985501279247622144688966836135681865153389368602945059755724019937852118651674613532186191282562860435964194195262452437840087979231097365149096590240926887670422737197247211312306992236408902689176396249297169845680272969026705364800418727633385034171433665863130938475542070246418103832769145158251280918816665600430099422325885349029956219953932458812856365969875192551823897646044687353521231676817438602356380386918913554421440488410225392581523095103232914486478475410041874008470319046873516020711415093972827892583974695731350511276606927253406005764706359025805989261279320513688088809981809742113320776166653444086432292275305819370111671101530407263581096200254247349749412017498784686425327753411859056278836582790963837498901184946743991567423092345080979709785026134115722026932012495568124768824347769171217252615720669131382456603231597401324678777177074387067228868033101423942082901405796994633018634779622964884808528076783496946287963612918767237482774742170420469362782058532800012166870150447410423871267675328530788978356167984432093448569184895793910147760963573338344854626843074302535014368386143363288347204515712676245414727562241864973221735777372251835253755629024153401716365089688642580687954566523282419422321458677652904707169892489665939385296041133765237642651260054441507488635840174662643764176241986694512510397490505938701394060235077918880855330732968640596941213914707598248873507925386517050623884522406828813092402421788808178925690108358583239608695054523952177855787172103306872985519315259509028995615144294777294935743848170382924419622069852567222704245402276812142788555609407188314275478005930566338842665766343072950139117719735636923919127685140441017803203143212874539685375176284319928892084946169565512849138742107175976706065715695661088788033050045992658933232152000445039722767498952118475374225024286186065162691287280592010140098670909429340175049367639292572955437415439889414336365551594485121878440746656499539674185708491901377722956057118794401985611761200614633791389896114148042799685905573290661101387668195563038966848953179763872892070463208638364310627560774493403367832768528472768600973872255346363558054435269620987145075821695805376922934777051734714772838992345513924979569792500839437553729106442397804754203618337781223765559285525223281078414252118234335624160268152302232502960443737535417669070867056470071979131127948347385820437539428073911185668216070027735853688507575943527559262690398470861732006876578234774108711195929145212629574331197405457649636494290424951214492143439579220365936418856220280921432695029883818691677131973407475549309078686877053508778637066049797875534604533613673429067010121206393174537379127871747101256552731105448694678090377947446429928109609313074881356344286377840638853384524275881431324712024701888117047072356449677854088484778408677857576032793356738410983178942504683966378931378411376172417182121680245987311041938184251976050251032338525826789309321580020971096053587573440659594265525389253907666082954943635523409677536245281736670816000561776893758114339924244180481531090587911250248933215953197751226111341276122517146542419197482215933680952463491481280622889464809144143467516574488668123830465251450540385558423737900240594579110662865403031498267899368976500507171726858585045536222763925332252051291359161728674187476451191936180384071255415309850748018540987246524550959944833311700135927354915740626119280798885857840513832923098193099095802442295192539346640054817214310533802109152036722925215325406090102181806810468946976245312424979953585685888477700891922563383399576014463674032374974142054295346138180141809363507729094586750969993365291688177466442558735726791433166307387895467447974783670619853294720484373746630716806398439894474393597962664295987296834343715070643686284588456362990091838227460329381141424146903630102066975620242332124502997040279885888849437261961122944277089026312626295666876095750771310223089935578060504689753984862817401376787665380509229653664094257706878714218534919464137417183350644202564874490794632774011676470675535031645327415192805525160091224222078466438638589542386893540909617024505277633918946214637382708962502238978244582705116634374362557935125709544318485752653387643188600766464955868109065680388275419000072381480842343135959936409091758522709458996023905180381586201236177581725784586234955947581207326809050507761160101658416683328467196974205156865463205865441423646759949580439461734907772377038963865265904529395627794250021956209026030261110347759581125312043884931093818347370289912835702292342808802999489804905115703109708364084176180876376328466927163011847361004715484970412916847255662341013947033979585650406471325757208090071399628634251794246844232106265582752472673316724385844524742086763507147217606315764824388154039945564690420371672774793530854614662334565752287443815477809627509796298209403942345719799531302317270603648205917710751206801762751599885071312844454215710048148150262405709376722687642043490666455565470999401513582680409078171941155996200338604435535546047192555704946745758626958498214055722629572533202994280180689588198047440453320296722559412811843609266287493267322612026541245037958976831054678517072610805371053428656210706154358788843072204606609424597879262275908831512813954112416903340566681197686782984523492049582578328146958793519262987440442501883861977293208602485950071331798089065356960862237624796199851690505638462062984514609570534439739649209580601273915376565666948771666983707679304766151692466497288463019759653298782349391208331875214867858415350352718995474816485117395245752384005541225429556803623607485182722008117881331573080489375129960414933449941625069788545517864994916296430499461174590949323844230303272038363596237683867641032298990561662261529682232073737483634205983042857023647276975353684620339294472796561273192664158887680627710865571903946300951124219438355267890854913659488603853411572290527247520686362007061689140423935694038183310158171492275011103599324084001160666630366229579964612211983925946944401622234395366859260408639209644785290016368533808360544350407143614583891153989997488985794497485849180974912657961675140765677289478192286508830088798842447107165598159392184927941283921385869002998913035223532053663217248930682408654356605805815334595414831673350089858326801223330280139126421470794882490222836292541408057133873506043138101381008942782391078291984720760632193098631494275879970438119440879284914461588848626976291093835045330881042082087057385066303731533450580046788867946670380577819535898447543980817560701398699404919221946328237327722708353183458892357610494817167375419081788924333174146783399606489195309938531264303099264136551136391978805406951136252074060295549503628399541923999161537667328111888264024497119580853648078746481181369304352324496286114801024602072766652042245740721448427275727146117998663408262056639326570595804430415020417704555527480861159891533240361106011849442391372662162714822949270754461046293549560269488915459962528196425694623464417383683863412698422461656080802995395204980176471095079797872146901147132499134540459246603533672671406193444671363597865652894533325410700534254558824271430564446897954697632475133445332483202834162287498989341078049020460243087664929132615472471898475722184711541575992925496847206653745550409671154910424870351882093923593397557785729849152986489260357125565887441800961535074610338650620986996190700768112355931774311482313165918399376522119334821305604192347362714558052769236313366511365384089096307738862865095262741341020209035033349417917887552195081991558109411293005313201601602966404236574674753919641599463751781693502167486523732577384664339850010044151041013606532708027485569348725548782507054613253752064676880469415589717103186700855573938080102379740484414903266013154876841977770597346810225135200788607611413523556136649817557659523267034385436664519511999796012379931875432488815958537950993354528807033124051005531984658183730683874235924717764501715737320481049587194694992576291923482415639443572186428360170647153135251542086057371001274866195959655968273788286032111033624458593071155259644109144733656071907345718045774051875668293172806098332775955662317800751282489064884588784197282676470478251942391932451882054798969612184174384430142961994890318598162335374797113450525150018623639831624618110065244194957768722768706148953643326133773181777168302914037009946412684821864067092760272447793885191173483076916350666843504802415536698978785173297649215616835281355234888068401797343640441836811462526017541246613840649436833630850596384016066655027814546203059831348921733336041109376577989750609112982254967729686744978964952306198557243337513955919733198006454041727708754813545625087170585617793884994815001018070943616943375966722023134923602421540243582730570207641103376168365161416220192563959021539241931945089981814133518111945037735627686290553691831063140747318995973685413949584788229760872825647921178869857563726956341870734346077269991313745095969848204429426193829691622863020532862987880901191719875335254451003296734348789088460949359506225938648403705916513611771827920851434435101465007150226339583273268119456984006429356043663195213318183099554004691900565049377757644579903286832662095731906194117535116265746332165988660513316112611041326928883154132752381539401990776139077289655544197186959963260100706259407133476017642620392814042117834085453188833907074775199830743309699599389078386561516530787600466487415656227728464226136144496291193393516849598115720606869450990234690926202595687831509483838567883124037524060139668617347943515150640210509950349518768286319593584760001733325834534159383619203723175744839007763264595514320488643957496878675867149925788418916878994958861382641419368021768163114184348818141712774604108613956592404843723949219322709466775749106288866133273519975973821527843444653410079052540727567115698945598551866328164560848147742494086544172480052316272033341930789858259816609017806175576576557092070434312087082368788718131445877262650453628106553534581110153221197754423556738709132409626168813595640105927950750087229904859097798003506615074345906114576293030868343101151347540570257662782586120027649409667892701646389986217221489997345294603316291137034105867546154209030936201353193304482473214257599728374657467206914831936764633892212067984708038776168202007949528986222196780311924603100688282815767116992055002744508176750071440144363499522072921116706910126751909167531674962625904800293908473950774852933065387378830784560338864375456826452267043440101534036073819032098251824773564648761776212220646868439523470653443577718952944303301875920555195618509225028015462099616852800578424124628655340796382598503204135211276875825008224600376720247501714829006730662102100636610664775722531579777075177605653331274010447723025368816775767337217326887352331301493117914617173140338535493939293262573406958989937773556482478606563959367537785883289979767041741950599847609194228517511286185625873967212288983674793394613510524894323178379305589077456546691477756800207268718784760345109842754706801196306089417151977967903337644405083114872293956190160194453649511765989126336737274641824471584977434698345302859780944494308727366148638416374348008249983490339609412101896785347012206829670690235113461447651336584720010867789080909738048653696127723124507111458606604742544782689285432665422755529354636048056900470017567457441637993329357909692066454035218872443372288103084471341918067913851649524670908188007180407644903774980653594180686604569765165122387133440187560676767553526777858013846124840548547708705637900857124993755427467157302931883828303982215493447312658279461341993072267027042822269531807340322271137576109822110335175651631538645305786731862751844547502063973536547090594791501608069214930928812824211867844618829705865392233492450592943705281308822132526525099009047417010582398843242774247792467798473379640236289962720615798394824527989291251642345878865071009210741661202145166978125313632494166022909915130337946658661872415689256535169014011143538814490334771307072497890135087647354867774892722788873219015390598224616263976331674092900435085109807535335821806292668475200814567194374740313115209259886582453787653149577000441592421012464413200101541456474465240244722444234863079670579498776940216628317940579696509194623430018492354206593362822589273443617637262469024142934133019379289006468732248814184669374914219854922601577355902360687501411704773927915727789949043586812365474690410151948243785576141298666907389287637144296691070453115352905626279037459259141003420756605239555999751293126311735779503815349770945401792958492215474833431554154581359963149601851066616150071548948217046050988516413696648124605532499537912625674008628203264953016388265399089502168078571409739914072736719223987718670841557875095946151015349326048003734569286492027951038733167844802207909657007079814962399717560704354458334820054435266811771895299667989418822727454958666453841939661152556859113734322381170146318698454041387704481365717011602393843165035789006089467366548472182244483647108576410448885868629860396820948698866368621968741871113351673529086139113969397030073810080740771274062664576562311260517834404119368967499730530261999205099425368975222846244899124711104237857031758538797591989268759202205481875201501971464904921215214055166127683166086695066508712503133502002942584175062795802188273291416344327463966286100752154304363316268836879418645952538734027875322128911102900580112892927963241874619265549675555373982015305320218222327093206771476347296597235367711589455015303121063752873676283240425807136749357711324764537888023886838376241411586562206727776292647381025006448837535431914756240287757363899694567310923632780940699340257117540033330001480526761890389732820588762114604799134617368287311506339101553269721834606695848596271649783556772984007773044659667092213392029279902573983658917423546237486050574967390085710851638292907935978531084438982304770084506222814690362012415495234511843023154394657204824122871867148180495456066810339467036028301619967939806095627743580793888211691988384485287646498411668067152516857433671443144799060935537561225667212778448024193123150260788102461134488096591814181379045843999324144318282419902031358096873685039086207117435885792845143980689263852639632060439808207913316493484874468592813744011919709555762890773442479257137379759750734091716298291486722681876085350775290592529230765182570644182049688123832791578978984736258215416271117359290967730482968309318545711053069709510798710356270462937095824164400815825850522382640610265591513190522623430876214192474725157901386826063870609532709747517437594977434388623675415975969141727753139758499008770020556559980059905806406355620467764749829930391915723933483640099629604957091202195321014643550118874385714710695531656326513860321926715199575935116344917130040295328242472154128972734107847113986905504899386906178361849656107275479629958763254036604303367220076401009531700936601753731299706459984498861091443259382545564206199389680895266950735042588793414308716702707278970086288640286930150080582414454322139292911944539228623071691122703116068059708586724023402646157359850040318395030202280959849797861571349268092769126019914205450923312382929718584606236184545539760327850634541465486549324405287528942818164341072243343760772857105839787182148661956761112417466939691076370718103036475488619569527811957848129587227137975113826508483466582304609836023196001961996517548321923302573493883336477051997233695358088920147560028310529266147089723650246190081730635783381304023839825576013468705453715579534283828334623074114591179872320620303199124269523622151856355144805721013083623830641865325074585222859696527435307267642871456992058952866758613067808372354745143008172117315658283432600068431445289263368762168925540228912270402232341221030061751296662999468231421847418604207474152115236717059620784365018115133798762341309922102622886605159806372105758955473453296928342167105564577743439389489296371341547510438458252632684905836367973414528360571588750262251877076520443049049901887172896909938724613478155908063703242175524553485549564335690167871382387725722382530314385897179168479169490395375708860809765087780598728821602368469545606517763533494992131078649324706910987911454361519394909833478737701594185158093297753997677862784715707122940223273955329599323034481851890352343496192647569386789776986416279251381474516982871872703066765200793806393252820680703111865412399555456435241885690653343961239653272418855181726623329173510519490350953148067880914942025349287096378346288714751011446901527174314313642980858990689471037277879235146099532380694246965781357805498138082784549930605608499159219500728375420225138743170362432027674259499539957788273775309121009668850862266732154726878072446474016797901586337767214275784016323148958140534713463948046078314022121883271873452815897558182083694666878303939123263453898634774056690053210669703813829845298369202796924786597052064974941412514837988515450814783420201149068650612529088394430881751710819006412105739815534296968428107715739825314915120652548486272381349599326722181537226970511006674105459084150235568084227619055427220600485675169368479823018489155106118270478396956410308218775267319116583565788692513983036788961759247459781655422382746190940853854306058944336551582463021909375426747979681366261752828203009148953816401533709555440279724244731785591765763621654085886359225829001757417874032125759642784615109763092295068269274324182106926309835233422251692281404095281679681630757775594777237393502407463377202039903548273539705610716911602469218709697831619935079346497901958974654407717897994838130397097566069529570585848135396543494620549757700445004359136964119933733873401743829529540386654363334757364801818337819121961475521399308572651127963441113773499060878773535710923041977339469414089209645490344115812697446589618981757997954352414916553970429960753196880487419265824028680765230270096876398777759722964897568929591905430796066277799684839294878535519393165169881386277299158884316093345094548677423308719331875507925138751753350264218904224979558855820323021400940725797880558882369048243816212376657218397893038532915742717507497475535509705069851343660333668996973902979776018759687686867763802567957490625188801865535822271691644617775879980002154877907163892849948584929848777432801475369262379816381237179169275866442272580723495318384560231411768213301722623294968640763784728942920556866834048314014229030104306959926170614653561516335876818019967688035507510576828603253533977792622701137182879676697270121260451216214492272464936689665999132008021229596179404311263622226918719422544123037144715753423985755292045319167389874579137151076272943827468790650980287798297871370307502789360465965548308808504081689778042370435442335259787432680565842331548449059553754261338757589067943746501666645442869716332787657166156254797573970267417209283185510125172517776381849415148242942870150326206562675032641733514977764661675222136966817457897040520845721274764835197171667128178765054210599181017628653907625277116468779917505119417202326854739089365345860717876621866655631127047605706175603847999050133898179614182473708555822677641997843415466060415041590696627534822196137510169066108374596210146305741693228592950875839389110786550150567329188530868004543366068790944259198332413084321764361293918160507473786646165829490986711159225434343123869458886505293210256935850443987368338862644531161798387355633108500706174573643007999577538050476024530479286984416424204292596679158602913172064133739655408179283844977863530661621589218956309611620053213053518886539062455667521224790545011683216723601887541204106320104572574357784621396381281537294568056101732952395607928857862913201963489350329366328627173119696777044068603192761923452557320441599416114972714573105991034643837257912532355021478036064971493933642621062653980813946032144364541417868895774083201191138342046251224574824802117193206928052314790450815441032394649570180670878802538954137137364139317261520461461399523604819845907888034015620031040099042769144006589021676492678026088868825105851834117731938083560202102781313985945235612684837787528876076636668324283237503244127087618208911607182283282461520146559521455108087064300387368577584059913015316684239040595263261007624719430045974963465273347296594768657222970804986192511382822916421922470313986067767188142151348882984568517590473203482873844273210093304198046009247474746786129442241405312289430938490394724492083886852960226227777279267921571338414166066186228415277238947798745414483234851894729450270561237738130612327795196115366709670934092303266855123893619115972237683552750733740372880115837614031340835127007826854080272341713587194552833933592664180646244655702140173544455093820641415129926364830105915544484966127069255589530558584952043768263151276225783542911753149415464901794471350242054499494253370109399100538761339362865728653920052529740525408888411498005089917759311250466981667343919473839164826878614764415263314520734215144635253628485094359022995016317698717116823624345407276265428242426677644328386849364228522916917091031407552412447865223656803870911948039587564918761027978975002351362781843667322867126119373221179189929452618990245492087860748076242298881178898330871226064466751616337369399722357775379159957911210258151634399047771436161225192140570370778569964833325000333602080042161788083534913421737384244045796387066010018728163994935172809078243331719485088452531830448942657121858919037594681663698038324245484929844092009997896492067702342774205385124487473248008161019798832330171718854768315348721774225159450870911586276384360128962556388882435533862884821006040382193125242627802071407709586970108383341473144937210923354311161645914721073130372002980494958083754345877592061901917696128744160094560237143437581748047830819452234219641856548383676847481059405263814921521318964637796228988699425346746831613660309918856955107056011501704230634357648931800988148557779777824203892389076571950688194843858989429556787360766044291509461148264284616400889063133745419673361961982913539805250964477539884552928878209758563122732529115104285317491547553147130590282583615358950812680249544958447286733190279473798674695068667842548097851020323685459081828060706419980081142161824098200775222779345597939853036577925171166303978936684314691966966437115055981693264848379448539743116121620589432349195197307111084692691003008785031742343823521176748165210091040664392172918404511326907511336752924103123426219894594890017952658945258029485206469054858912041000273912098204964097944406559162012510956648557267803473587355758463951619591153459453561119940654050721689746266125755757706481507068446266114096654826790682038435869079561799145127425823702167891911666698845148159629792267136518232205636662745475406088235542682432533644627401827716761494494881087554584823808319630393229434996116418817664585797531682844190743566054512462593844918095558153780566757665254735812843449098652587703827418906818980053550742321370811597790487993457957824726806755648251028313891012776575230668732058998231745869421802130390201398180440700553753064838502075926897151868577361409043796294530885287297678733298957256973032096285430220495335243999509593059586098661816768394815306799152556391633466155639297298373256563491611908761090245372913589756989968226149192831158182291293368745995522237400086620142034627100503955274175881995412534575783114490016121030094215368241928865402410223360868996590135212629077123760323265707400199121838627460546195678950245113702653039787720645179927599944529012229166588373448320232227049076219290316754410600056819922168344772731167132010868968402436771385972119994471572196797358729574704948747282980469505195864992067479173815726088405859453054687006591478618740932455591593380942419281739819138770747987423191560521598619105842348276978066355603388942543049328585477021323941131133287269944482095238643267303495148842329285700625348870242978299513924931290795699644685252001757985102979205328223417858917720816347068131262488175885723197549072910552921365794876211742141618037513736189068455339491593406220516141524173651608340877072319150343300486618911207563469529293578822417070905648845481180363707051349910130777531112547245619226502871013011508897266639558087982747984374971639332941962204193619268394823891307183056373850431883229088398656417860726688185803980827397842721818338494363577344897456418545369379342856508013250170301549363045284323198710895483894154865162323443543394343414256569472655890503814571613488956298410999469790234980524214354625500909749598386930150015842494795698533796443566961505524959749949360022941875192938731527548376233222666636769766792990835798018053292007727466880514317377940168267976279619026594394708671694704925306051113366563973904393145810426686038309246496442857894825853580015447861934555603199388378656481296497448053226103714042060914136442245846987317369427498414903184666966139521883568369909855337510608169507737369892143132678927742163761512880874634577736838344339735087402480353724842795492473684862725934566314923656972765398166440172098820073106055440319923374858619527033808179161793865909788704232960288395519020736210382980809200175963390865028323036414590805500340958711188841583842464173209150225849048078621412811007477874317875256875809707105324506976651882501599369393166718206687039410259316419010540981306902170353263619731304014241875758125748146605881383604513123391641006814193692791675259650038684848269746776948711891095729057381846221830852951516291136860352846657326058329016310852074365148748880099508837484937228704979789835015663890880375207220255153218555842762950732798081893620395598890076861259347824161081556496401031050206557450270599782859853853120712141402791515867118123884239619868401495669795130269280147163996504066085644299327077411123586906629748383671690929407162384509146617163418422125498062860605493777797817745671041936983039129672134862108679453048519007511023168962674630676127034077544188776619920512866024830362570206233789796717353387689383337319124260387502047552412497117788599117565378322130691223890209383268304946561037548298254787872035484845604526091280573500430494905442198831466571129864635916212769243619516743402011251820520003055003798417924391432602709063654803458570575331728156376417011240035349875600474685497960386595205662171367288892021333680315326817961266414289648017910255464183208121362895063720217544156276950648145996457603288314576736986994761237724610629456258997797751213220436940086214363645966495278288294389911493730994089061127490719463377949623577157522225758716920726921177424213354325798702763918192327918164413184202465519109508571032441557859710944483037167705356757709805043318156887098414375544772252751215376889176368134522269469713490977278653240686692709854920950886295989611953770723075864106827911605234406306661315003818778839851841652327210069306442129280640669587182877303735245029709294493589357597744266609049558455893744364176389183835438682374765769537749702532991622279862007354548354414925178003732184129965823307749519955076715808468063249536201594923968613060358979232635761065212895315895137837558715800458217526478087609454002979267875995621064600664570731712856441011424769949311778048759187636779500427112858637429740500943864374964167706845314218859227224674686124917000095225325622243845526255478171827380353259176358239532802027371107236852384743221008942092600044154813989731594014586261374548503188136388108242374665854295734440672443251023643718369578286389923841287718356772069358222822877080800183587459162473612046162216333355250391036710170599153297079922957662355694861243889067134359332123871937103276681984955121400641317953146868469710425560724690901963088454055273252342081991599009045378047271007976077283459928599343056007987838980816317727122488282068467064166654024564557928902570771365611909056410601351484073041578465085363013016905962931749977363708335751923515745747850794223304666292503477699135576811416002411188475508886322537123979926648578682783823139198358086349594732243838972196566713793572959229623558430439813685813521186879309512483008080681039704926916905459024424506111410025011730890440258390388850618250817017227638922058866031175281151311062185054057728754777758339225727007997299105689660448124868691749784820986715857663266147727804651988881022275671937890348250152883072098543806027411810753394529269001344424696877682153125203333037917153269529327383248119362255604167566136272519467622360731997063129518480283207230186029810770979583509065861417203657763039565272267010958676035639991721364917373086941003062421470612862208937442758483977999943000074061863537524933927608710431850210001022927215779659276419175464985018828955035349307145841662350490371619770238104627864308800109574568243730564374013091708777893770996544263704516802821771970214547212739316287896901603004074605362036522544839576366319275845628727553240526828041503059765188936296432852263418986522641687523129817909977445491582706220245385329605265974172596935386958864099218935357847409888929831396460609219025300622771593287468979998853466184572348876765764511403733409680454982213778362921322107369126858208001462148857428565652082548876916669691394771865479628652800573128243705689726282700711455869107495272332010838012574240164239998573958664242731188832140628923681582467576843498236333694734317531858521737984086236448757162538305834459206508327476748464255016825499765323524849325760424987530052117568687770097261883261730878801380112969865296499745153813784999558118075866363294214587641977140929057771437970861715875703643338882105916981948408662681224307801055148791742478927179803147428592396216755342119526939308091244952949475487517755448026304014416185800943612505081274685735602244217555437936458318157153722562136471365979730716990850757908478589885452294127161205895885145555769089774138267499210029058303028167096890690054281423686411931237712112847268186545794310549480775801754549986594843393728532997464397938010239240580864751497984102646843699382164724779314589084841073120540329271601721142046720444790694693848778108998585855651053683852591906129795380050387919697927958842206199507426511254661514859355178653937170416772062220352376268601780038249834432879139884897146687250571661221786069679487639117468724985567364205847797658191169879975560963607115240571869982000986007621684894271942260118252203529629157009487306238052263432337775589362221614190457823123177374216860997520729390768780773194916740368630812982807524482895347341789731522117750783641398386088054332373514998759848519523611938823590117699114161534563684647232404502825194228070170658983399397436936461977373693573530493195321171088097649451258059135758419988397897775822293407650214609899741405551282804481856760776863296595460127361256740438152857749978231817117865519843178120652382593245159258986387211727305064423619753723812838629790237897374687934030182272329029183996076083935726752883831738907720216719609928688632048354671066268516910427918343644186243087311575602155407268221218801580052127983548768564598394119946750675854533804617055822431411111773599680787368142148573674589219788890379475598596589443478498462240404589312087385420744020255282768399131141080072371236545772574932500281623447534033252527231059608998058579338360789629109051126632992502342110889010924966272947494546887338427157141624701833954864410379178070766564599719779944066148582592349168196881032954465360192431356229815146845671402869503778345384082651411531540074489506367365823352830469195609436487393763519699096829356297889395021846102865207664661941877607069667662037314614310427519013248423332535790204091528158982404380720712739993207573068499184917042537226496481966622806993119715894200096431004133411286677738535564252026397933898833160260154585248087472965269475706004412407617830119708658131206505418704318616301204571376962717698434700028332525614056942095956639295279164158790452398082842378708682823643280772102645834631940251602586492985541025218235179917083236162298471117335302677143285077922960555972637518063841553529990488735480799181281700603423322081648495529904429584610183704846361100817809573317485157238285483072498720700786952743792048397105745082250803355470771451895318687558014128215461383338319312516420213215529709584491292843173608236232045826544638555251435653275589145490048876483217662806348755426487203570345359948692459832293956212635398750622719879430094676697489199347079528802950125482146508146335079089956322283980600821019033667376424150718849798399520053218915946578479009853020068023766143647596745254067384381307321202985960991784126551204351292331266392954217899595700624398632064362975659897883319068945885798181042688977105930400508269608685396608148345174368404084667826094641602224129042980041444201208288933649827223988282485954008058734521109120570482606053836594199639336619028127953922188379003224959329434055876492817434168139300988250357781975549026999027009779122331984077079562040134722898604896923432712940101033153369590664175136225700448059693862694640363131772717765611246157070787280325435511901680606059781702866031345089732745260784439736945975351558314794712441514467219990590367400669286278428767004283244128897224397819944323390407031777906487461223119313354277793922859640085610618342792275094142907287476533418231763628905703834275808046542111755293118523093979546186725571046037456260769110099977447579654605889556122578423405221221123419546804927006362144632206703496528643007815320747074131292686321007679429305592196338275725676025669354648016391852445822417210428463930638866541654962886497355042812360001709103122298375726154184868805281643626731512026543385824379143121901268609581554795304327854580352238085957877163288813981169504529389338525610656498123699297875951540414446076132980369402345656159701665890547566154067817895502326884945042936661889087217607267483535621379419822674851034327099968398433611513725878933668843962956539058514715485657886974825333070731571658926017261662572889053084905853425967327983821559446101817340059656190904435232463249237923740027815529687035967084602004099912918684232064424868228120711601554970233658960132292535075516152748738381293920598247594296565194482342087144175470902237807715417252621691941152395939127736464467290454905461360579293501576428259584411969568668394842737070279379268916258214572730719017214914423142123562418808544577555689686943579959481511265701688788094671320000250537552875334880854012275608885949071299148376969435673778388797643592763616210511305825484249799996068203916368125456794271925162459285267178926500141663893418005488927018972973759450285863230185470571347231078413829608608774855066203524156261628426523995908519927619319159813550192583324892408811662123257437530139122834798333908836209912980053408365252893761924136799688313742944523833795874028079069478329710994398555566839432746194918612210131649064929966945396736362136004673794461314281655248863230176145664347202803883228970389164048314682893338669854294942807637194667409358726341582989438588743272630918713468754505177086090214713824427252958361724017853530949683092210223830030717708208977649907279912953690103969778169419986581921505105106452855302707846363620081718297950712982040362374309439818803481101205856932887900727695236581935738877707646357504350065154295088094921205241648349131709087176227644098392967747105852570057964734868220891955863384395394371779207215445809860710990170356338430723148553921432418677430929420347138335302867972492704704522787189659584753489706733960865422026509746647852513671246095046212867796307874815324596998314209012504957704501146653887115512037984822129686948624169473140687189727137464494634307483553838640532186936921515095331532239083761256280787527190627799432545387500611736118256711260758684394788842798654744081262695279718084300781717726713064949645445514207529745963436252638307288159616421934377011651754477014335335751223337250128977517079934478578317162624353872403905965771529859662212721699645170699598374257594452711188947134513590607768174500602502555825821924896576975520295681264469448863076048006606716719617952081077845876379054625229464482681136155380503286902630288641107559623087732256143832711687300926187891861702015323754741784167875152284622821289440859819521721229218799958111946559749189859434993612899838223076754238988737101133143132884216951173221504186958012189396029227900293365674937004969247804700151878693244675389221602099645519608998818870828690620574505222372278858938962346447277724825530107941749305665978085003328111495692453734942748926237478060824265818756323825725673065017449141509062200636342685764618270608313066177716906176699217894242548721862746071700415661773377743362032280530215860933667915874873020236403107055236252615620116996963500119896651798929257698707666133661840508809750978436179129997427884695236003749452202713977932067888408133880422282939944702734561026940547924951512005829759771307417607990137602531906712197002732233262491728345271054320202921337101259848771870713620428203236872777116352442585329996477856412705934238843576536965632390749346242101340149190981817270423021079611525315282315900639609362307541460327150273043693512694857220553065653230403997457381401577064525356820077168021359523058797573968690817557083081716116840144734646060358949864529417846739039629838961499091105192109979742918361809167499816991300042222718166848340640084528161529675898923967143585130284127433305499769909024457092896834351248034963564518081376317804255377368047485760994169597690757366906414634153734288568009061370709907133721185414440371111027230230412155106179500887972980075388481097748981651208473359610613989146754049939570257748841503297826930255418186537053754515897552148347549303642149563839627951904311518398917263796779768558938695076114856721598841828692570795235633395141229125638354810689448402617646689327937679575020548974295441752247759975402303940777061762552263525977075289590867799895234293628322336093445904366683479733538954959465736031804815022102259157974169878129958886165444635376755652444368650290531140618964450324877313186195487265677040211150846227840462847578081213132778002592998403304738257037752231188722330597124643485378377886683530688481867172839087797970084724389489037679113711842709154507657717092563939177877108346588587221294493628615611039279021305718605389764328275939226476947460179562770813815250327525190505079328487849871801854713792900242955285812392284062714980973823519087396568163100464049347196233413172288607344845059602519736110434830245958605379415598221122919479213056334373090888160401338210140853653666869768735442586763297874162801836947156114429108018274213184010706637153276655895501936358262464184237886018332205615602876574196825954766776064756182648830701695738452603514122834838225155067429737559374712384085905728158477422684735927840025792931923993692952394068167207956617811006078981676382625481463903564695957822505150275935494698482418265772206612035344286739716928760983773174691718953110011218055187068355077573900335886971763801729395086994196723961209245021329747724662658088703445225941758142556893041138053204243805993548002640872926722496065491261399414607830055857428281247640082410348701626048213760271035519678962683248539745944392355289934700373191855599370341391013218801642928265670107825740769041820971108819475566926030789327265138388653164688246648393282188067533387102578463084536019199308828671731966241681829261137709373003607265688467747799036044274225130084317442739855718707016725210448344827613852052977230076413141256198008365861609859314606471640416184041827814097142000130960577056641085916971283883711219478425458822306007641344601144192953557001486776294881963677622286332222502327284299474470811115553479808431533568775489282291516164922106681456563159979032517380847537040631379197086932026819228943148418398878678062105409590626475414024342543826722501355694695539571580743695370588978270658393533455247771344108997839597047303719956615157287637175032377388700071138990858256869398957193621078699924408108097453078935511406567156730856450515108298464714158210035976803651255787143531369559360395511762565769695229709057490969878357546250280589785792066975031523026491448576131856826481113387318869606059512913530685457239371180839582905561050095785983714176644654372617514420164286543421714381128463477307257475222823176970872599885348162937754660177174919737737839687151190571245377987658136666023410429432994621959307984249893916282603522285377743538477009455902845120607634245512701465251276084896839590142668819015104009408754900199271761397674634057478309440777010537428379272467760475631491102379444376862613419080494002583418592414551133170987873759468439945792402181113224664510731377971856454631023862085223842012936636271540388748072233439656356203282731524959328004214994005812426885033885447968798156223851228506106121355975580264024207598619879213516723955412321024742012258708678406937526503881591094997705855483617972891135983687163565960990536804959515840389871228166832610649425980052782317140825250659214178045108989806512517088868857834155691419154839264310918389175833424140723940552811851147532506230205412252404677874253097229551698389039746955101932333640654957543999182474885059574471345577089857554842760687436650216241841864337469694154547155766391372015955240205519434600247102201186801345666415356201165139241088339975154050496590540086100547882883983743113928779629435619183881884871123172207766847310951519113054988717025291510084805141416459629260488652466763304365492473051814760803847026429647163389422874565764978384011766816477464341913850018876084595399730487897873228316414609603567941572308073980054068060461060928981971972239351863055317193855225393861650413331352296814604754227042830908176896363582147413941456025882491045412102906745378459722876347452953574983378320127035231633628418142982915268115903140336566293490507099590850390504908523456447327926920483219796260364888500159879915515317785132069510199734002667401073424238691650507515577864952694355856614109791185917008674163322565667005513795764459958046628756362427166932492944905903657230830911362364376291068479882255208437159438269100343113485198601744148116940596632582762417087575534879133469971110566667741359786391946941116554796826415307585087138324027342150808280738186354513731932594230499393539132084337015586455703334255228731142698507224950011465045558979082386411775229629614654742099759029724364874627659749448204127678352054233795306853943539028129714856194009898812572179683498008654871835750597181978923093477350480009622303911211343118366596079017324213935966467226853992201723412269507056573887825275157916314833900658449534440867082183235538965010160897074866380520002992804833063265006802789203740823046826488937704916960134191647391153410212446693212576592015223031281203396823067858232915116260541494208161548476370833938344732999287321585727108868440698265601513972253556983156607097152184748249200318397882783410613253582391458484963368962343604550105696393775976368011433767603374524888710069966419897627514794440639856252497587451947601438484979690596232344870138412797207555965101386645041360924933392695386520327885724175100821302101566303022194993130662165254466612721595655286391943433397383621305543355054445134602923805005183841197312082633816867688861709927498007129309824782583614668857722498193401268399727510977345355357301863638246794028222673674013790073935415125525494905788168479120475617297105669295288868458913054050870393336538219272655196451985621101892368365352091556465205574807466806899108866969248964656186739494179966102977975697847658006845754247820387370064052562291271902740297944149297293760834234535719235308796883662088670549154352006077257433599859570457716144018806334625193968099462430110927917197961636892341359722844005053387648076838996253652512207648009579570451674351561208513353908957398470584899634846198256506685070158565497876027570461955218860787996638758892260962614129197453521178280693547492132779269243116791613229512055655954005565570011213709644639386255117400190050849438795413285895894020945196527486549994956802539024974604900639853732435669398002424087044717895323323765113163877756218945102079419473167311867000989324652769362716206341606623947872797825084802209771402705595703394747107253728566333100654590811682990847020547741461405782326810656231782093182102484338538836207705867492713221862496185837698492665002941853859102887769001318541036199465646923645995793113078721101910512860124611170488914284811972731616055619243894613250173290517643356913250016298894961688974112882745009700918375022602634628099175682028888357504787640334463650218906428551947527872074538867011965885663681128555181921038872271267287438672838971988897572629470164290305545874616224403031341146262751977373714880881200911306886083383285977295223891627734426184112757096527860435738569000055843455951637521255318516970504801155069945205260526566892730822614880701474347309494729845283378033333437584660026219852283963387268560446012041278751626744063440904786348935093595805266198654321491012752339871498474467908283767528877448573427970580005346231758942385664229287418648772383952904767304047268297559022228156782952493507514476613915457069610838103056787021050947072842379628806002873972832858457420127138552456530641735611860625859852324283154232322681679890753370972233514573930155916886066980203139531305280856158960498652272019068012266707419074394630850533350665759023573458170320505926210688129264835127338585805130250460410085670786204317039341482043054335811899362931150065578069163566075344211932421327331356793124598591522610191186482576181083862777321374403858054247480394378250917456144568394109710973503924632696753761969424012003976832890680982895333699043319672978443196515536923056378889784748569185484815764626569770615022697208109519756326093036869603972026222320209821116254197714486931648401080529822593169147160767223962503760552683405073039052669270463008916274663239852600064393936407708073769482829497885887234321475342729368908344788558524799620281668145508589939110553863524970833782021096899502970467354864354243100155051080949775281771290101671182215028811467725503884357247182365368179426013762862130916606658221632089468562482971662319880725308017322788089301521212316733059056169811300618464598664824026778137472186948923222845002405291513888870699358157250039498583762108228357875812725189921098159862396018855597202390400622816733213673758406756066131506552533205815372889356934656356938513731326717752736357329109853455356459052298374717371898447717984356789036588748860564002206376749351936677898266966437693469688052884217296758895085145363783254733100756501543130807806599692408875573378933070439167832562678189753651319025520828484598132312294696725225999303328318150167861288201426562615347674196425779120231025596152141017219094378084989453768401093029854592176638200558229812002374500268029877837704002417878064582922276086395076282353745598800120911731925117958984042195473804193125466668163181550046340471365054845431645843337702110476127109264995683303145985890735915391119504460737866800289332496231204251076177297206738715110378455818750179030382551053503287007695313560475099512815712505930785555551401883998250989243468494861071404582529429045832267736680649338802470683631103955585897648285330566988884605972520896116264543961260781244955733750573169456998498397386820188439770617406117164310879754866785383566980684575114061705398327347958667854253383099879285827948982201829802969537734350240906344862238535451094781677506953427393307492543758367800023455659705082734447216948894877552226857688682180428158931019282169306887679299860767574758685990508557435564255947975800026645794666407430053378784061681729493737877565782270132349162353489119349038459417058330711278690864382391039688772137934564124372356033256836115530914158144517222180414446066551672055111740631411164466809418552172960691190517681186725486824094503999118563884054886995787207640490390122313893476193469297519528578182851220916791398910528785419497530845727467750938316672107654715528394709107338569457857952949086509726552810050112543347324383052858729565152633155171851738585968767136881954084109196214001617350575598169145851148516082713746434541444159386756474541245087063742676798879784673081397733454265413771841932044365193205072483140950915502315806575396510813516938540073619893257202445744177667096215281999385963565889582349216727917925838523670090660570689509802322972371597671261886530185306307836169266188577818667200793182824976890489046283456374448240993644376606244615616826112214595946401601811354693473145415596510915953090280461663785043917396499320316467486661075071319683451352393929183587392784406528823323706183963593590197365811006711620995375008881536923424154353618571765670859316612687617357536201776386566025538782492151170719887746569288417073309902164531886730491950730742130958692266213762325082001111503179523522746725733458522758245143591348757433378031367796679471034615321713773855001765552320642601881264585345165581870120629702210197621946793895596456656062109265262277089916613200496428693318234860848019117719099944416803563128484543151780906436374961998818219461264395408643090900546598036563799155923750920788140557962404510200161483576694393703880797366347270404078942931415620275211851699497096770975056123767981878271469585771379110960183087143344787336615598428313057095272100876649393329413789869975235165999574754920808733826221407632680660884519305251482184388379197137887089934050065263327755231931993888678229715489833256205810485879198903639353072620435083855525284622857248023932394550760817914221385773870544902067436083102237106154672113586889454578662368851798861769610278307775157594839879811184451122272018237909962473871684713196978588905503610536059235928367859988146671470236970709776033054377854636902626122177151204860688297395339174246483410677954167050696398472673260379189263570673049317291670985206465691135470260808680577753487956921990693524753149041486821840065861200963679011072080450101594384407015370957535807160297151123327202736447762894167776903207239592231405732147107009776763929157261182832829955585416201620660193011798248104639978835637437171265252349463722331373425805937771467964602864627522492454643704965961546049320529985213357127718788881457554022293635049702046851417471768815391285789331415726921666090077159501659601811178717770560335657537408003743760786830172829940778035014530089990805948785565918270483605178376101964925157225610737883367395068195737714082095890306053906151665703416096116727137693851009220495157067859029188101695971954964805869199662273832839302026666271879786644667037575549325703299037006129963139354076957703440012337232763995523649920825681436042819176539044575528525100473410417332302149225062660773664549197664831184407471895222349078393012146932444214343301153353079559487973476610158194375038249658114788826503420543967458322870310766792621423710205042200403783398375977957843402623968036756552590499661978402097681720039529453905127400157869545408455129691997474536137246441352508067257366386765055134963279228437648364999365071066450339964869825137375233721947469511659913001084494877198675425126059980525022959620839360172762833941698876000241181140851564060839981324001927032438515711414847579203699306341233920167579347496564530949159333341627607770913085073874503938177132695457094473427548439149581476208094497922506524027525809754977353404596042783503406911032942105899227035867288265173936398266234624505446271929676771998692580460198335284076991061210245380830265617741642544402652113525457159221820761832286991285266735258581233208383398750086788212707477917512009913552751880847370997108879820405950521406727571168650810844966449711531030118405124681175325532179030087686107856108535084754109719035833920150356641362001495554065536928326116706466643471655601325812943967308618899541038699743511310908004297252479493001471938108260031265278651416906149858804594652332070195231348290846231850499781000591946531188955419862661512134241045519961654389753028089698162586164030810086527327957805338299068021849830014719082914805473904176697600702829847922859811441543398658774709075388299424593204260351964209682470192387888891158103902929545961887808263018980160112618158683752002950313162558709040765915392707409635130693666592382220167934910298376579890494480813470833960472183694322023182394144281419549455942419169978632511188498258273732251034844891393941140269693785141477290181257596580756766669205562169032289492721355849692319392533418407179164262751211579396331069817849576154444701259271968867439418815390369483817103071144575588268075198212210072467754715182858179278122947034045132764964863454773336207818267587052010501704926073043111506582669144622392119899992923594465019951578211750757936366032776655998856620094021121097788239284841668148351691930768634941603889680411352324179026972500865524013258896098687360069814266041744787988475263879468184799059761972543197664784506467571189263051666664885421626869057782530559353717844325267853204346810446500675279174291598765931936465752189886153670057245595348360264515193167219439152444076586359128345391805343622684301771254778992816983094543349867926987143334672533482817773131536847531875816927385814805889966370867859524960475875856709438831828658243773258343720239849023819176418412506704234868175809031147966259070018861520343203272125504181303758849454298404746960902494171434730626126440891364320796892429231437480465232121045090816435436514831731178563783529685336263978177147985411147516982196469070842330100835686618064254302230526901158258351800445874338169242715595001535542456074189698989211371675855750420748451621352171884206394225126745784218283381888528841214698096040499160765309650207662951891102107033230585833708250342412497298288718520412223251664110646582400717883036988302225124970149816506660708084589814899523746033952388960068467121273670432869888648245815928138677405427753916144452646686894078807000353307096450414118278609407215227655068370242296828734685478424512794325996820088637317025900813097891074620530527660538846392630964611553434647590046648654512893847617260986352115363949148098888604088601636171739198377898374934333277974905769400922613907025681698834264599008680592031232970721460166923571352898187896952851340370475014011711261316297842982334363608529867303023138437739285286887248136984993476996742219580714667257932655999493602464433693869950736726961200954028736812527652798181036823719321853948668590921505463187436489463022441573575327086531756235391682735898207684705172807961914075769619873114464010890639091926724577957375153291629302163205669458890391533708224571882198241472385039091771011575147599281016089240897893171323071992405601677431651175464211824610684145328746892985478888632562004143909511707998403172662617122051875665772467571103782621532325138272980877954138749718047504675289202100873008474424426907755096755040899415188430886206895193497156448360205526511973634078854160173566057607548870993095193323121877157024679329629311336808909428416554264599571822385282864326137029821373923946318128147656657375544336021680080049751391288485187860091989233780163741017941063342519359126315409040377382127725924698990455037266761942530021762293582219041061779838975471553401926813474543805820368877343181820562366200681075787604233433492231901825201821014036084327942164630889641561414219574884079334548295225822494770606606555765173055954765490431027454208089901767038415481344168113643672755795265300326141574876423850147010751584588609465736431945394119155021772901886455256235517068351438799766766258011194886370419564825833619901846517760505056913323957379945602245665428656129473793053226738407201890844580264466277120482320979082327169614997126122171982539063010070602167433578326795653471246008389232177611858577793705654051227637000125182432098321784436448784663318158095726892548217075804478528018758603146244450329362031977223721606634328896722208939373675179687761011919761771125474255993613527346533858163353624967580247475353727308492427878431091494457631665716623954020081379478719961841597149490000498185137412519676730504750644112521997393561895864309768141881010411867077510382408679178249091408916326396326255554619001131089086045457240795854896255556363822644570636259228207046072274062677037164390608818875622222664913589815900815050778875482936634733636359815886755909701885008542298180585934130715353702679841677797205343246452988689075429524080294977711129254630204917932511107487514505428980561980835410143846234802071301587436166508644661396631423961089936791144522926586521388940218126179089105559618231432743120100452770639014818626504293725141329123978334789652355531956288458495016581212418447281664042902418274256517604876933016525455374032652676160319606218598979804007542210863326755444916540997170554077553813423240436874975378096851829561396998966195579370890194898564340060516185728416881648832135307605707761009794011485053658721047983583771399401040777204117946192137039217500002711522924849001413083373165399800664296586202411069611850329160702520872035406323658050481688701062953005211272402927807163434268812197412368745108276291990468549893385759788508871006055062799731651833026720008971031272416121024875489282548255266629531769589810474829816649996738221753400685018245573408533080022094277649445271701370990877041507811135127450937037028542646003514098063714992127327200228318406070018521969928205948330702890161329874692262788470925447647191268136106400923596114594384649655151462624545008391771181784625301745169747012703515201961841431529734811206382031509716849363194131544655691107749642335007494216837264815062386983587456854571681148003665353467507550325132389556746097097758692498409543170124437954590930601100204582877696080153842960242774019999463193423825794371604509134771823719099320677752680032099924939074257032115021487775021878597604627801606858100286381725467300306714305490832726380985648448836322751755167399909539758522806737469730193118229006778639697007753262217577363680258831919477701917672295547597777302251963229327063157606634343868367330886042883250985202576558291148374075599309199147462367881539599990685726261543404213869890012620581643950236308796413022250276104252199763093549814610314358635220543229337261799990673705750762387648174745542958728469537775346710678551195167120786267508398328541711922873185805011030939647850104717049943175569861549804545492427623238510454885951470715354701166455175650989649015706260809386951053407500909479715751208530050360146776300603954012214802559634072993069591601667962870594647178451458049675741887694484399302370906439411453915519960201842659411443640058993980016111056969134839845622056823076769667370997629150284703690062074118479014006389060415239691127526018141183350363376157501873434781934224522487085385598792070032755366070933807687582612855581138687657052566514594310597625094410542796788387215005735190779497031920131942464359328981334989418232349805060580629453372287704284807810148172333696734377253723864819099657350093743296319564009138620092998053840974567563002801664819372531296913157791471756789384962311419644755244693035777652609334658846599722542859058695586824553329070064719954186857505619434284084688044354337111683297735856465126374887299514595792492338068619572846560094685637966250621052816378096702615671911962098694313067095907901689426674582146472747871371531754772841455937828213425785738868195198802848720919459006728446087468284553853862788132954742622671628918129362392525662033081133479454250261905533218238701322410779050703193587257901449038846209401694071470031520866110517263965344913854342851765240283323972364626390370492378778833849259365551221917204100371473225855456651987678683609754425772304211805834275116389507244615242570064386158728073320419253353167258395315901386864001119434988267736006103583785885300055235557472043463380044036888663739124110620134832777158179258245918273101344357846342800459592017534598123284870375696006678074907794110413325564141668763865752513603723783462504520097413317680858709683707790048004282383223987176005113452057967907948798411111387292858421179997641338120707101595397946259427989638883318105073600713182548087756018685406055705794386651068610678518921834807023248994661948160250593979602923984858526819925249852112526367676424996830960291324192424564242064883166079070036539159277657705430650848365747751677036204754216511563176428631232777979570792371476094709912711474524127299425844067546593611181034609061202403449844559023896771571419107747960678097932391492717044062132006569748045732535164420571472747234326189091698841200229693629715493707483996419325199578335395632414088387601669270486838800894095476338897923592503503518938070937553009619582364803541506838654348266492053536501947142066072753542035113992903771331818160893058472876984330206261035591091284117398390248216283715946199099610656204348696413319527003177142594173363448409985271147925898986787575277481187246137929607839046833401999995107621374689116717853760563164099399769954700806721335026040953356120423204439268644434388617110395534324254768317545496145869053753649523827204463291401224843305885004503276376466381016370094339110053793951509419740743562763511914689313727217501019231115325889887555232441721373097876621906517286367911720457178593431558619999772186707063114815067539637107532744442982635864707569360204019135704229461497852275950197559393235478098817382310691681428337396357372906498129474012289065495604613929770984560576643664150157781284282182285364923133050321782559656955521355233992841374158897468990427657339111560467592866472681316866085990775986328676875224920764013220924166857188103740413356095513670420199505127207277964642322450293555060154840468750083132360202443579022386129568636057728840936994047541933239286351830817770696658238242132153781115676356595554655808626302737965233592163498730368470739001618710566741491330467052043673203175869187947354678512307974875550768637799293088069139902519973590477674817422625569134734861356011011878090334910891363771018334710285783761385281120505218425934777183433987827350504263512501187773336019748893162724835945067645246617665245230941535637018297374047401440743840714640065410905052084094773866627899374638390449656916266679388470771537459509131343078709805010225676496458567008206853897293651812787367435890144558346147435372389995962390419057503608292676902858545994783322462543243505034706653714890340696645789095481454946496327384924203870215433651716987674307852461326344148909642548547557059659993050944748391114413766958132808578183485735908896497373476960620125952891748390572523387105744289005807240575172889741697248267724982173298972342719500760800120543670050123017617533882797093851960968043465063288441346019961233771179055028854900735175853571925501431986595354383606072151252541937497532597926162244462153090375207293100957434036678728995176857082074159396335053562363269519904263517067895952906134191501294928735969217411694444041872622140849506043727696148148190148843832720754529807186504322746168497948618141523171811914186622583697812095502005811539315231114086549529940897029880213324591757538418298411492723868116619897922470899141788036861207045285210222563074593853334789329017683907769868064284042167821172605149383116303951709768303599814365608806493363759730433095783447469479486315377034256676820388818580622461917857548422910322181344707690177637968449299379072110525164684254874496777107817842569176696131575171823653883100457926731937747669295327467876317067476965254792660837085331423479941681339274965024128464179683839205337047995157516744679597759566376176554220386467110339418335950681586179116112973100257006407622495573127453647598490598847304037468035132882588380134291464485922034100095433034128254244535016109569234872724853963772550439014419104452581206126592597121277603712225361082195434171835386345002680072176412840999354118595758980366675004012933350914173965393895416289039466708895070962794372088665402695094916528510304446179340254953743539795663820916565290695129381811601877695039064151533364540220018474832853576504548555031518628785315980085329787616792969249200379486104160588865616524654205068326056737138408891631369639792000726987924375170783401836893856021687883151516356973769458275103160043116984214031786229171896378702582109978020388422233224298668232735351820783536957369479519228342975477554372479108393671889383618161171298722931992486783067479075651145653733693692504714364427936373582181462882742579978765030548747738895168904750440347065705188750089546472754091367227024939955777743504794451966624319829838150555397933695398689426904722205689294419033244197119347416698109430315205853665546504091010197254171448117309654996104860128888634530407041852600419365267357884116518154252722105969170288957329581720787350575363082994354272848185810012454350399903990491439239320903371499435761194369395027969470790942862786637608635137187291562078541571099137944212178558627445668681923063355535352705573214914963160405689263637427154246906926914156343588225867154693851865198075198180282439724128983806070732017541594169357969963968009921809259935537095100760288796853256767184524154652059402732278142538720269587065309184559742570520632498595221256833239945120992406856676415344856165414701670878217921329473713873001646195544104647694856672957176135416350430656182629697107575941327165347036593940912946356726869989688149505427949702211790340128021650905332424120369078836124909318551578500311641774467947334300705718439884804478195338485409152744058732534186574462515131038174602920446052949805927412973613436912812543675877989771322336952926652418068311361855753021031349014425171435572099766514594298949295215816395498867189379486204015508562136212027653891378160840547275294782717220545242217920608863981929550368676280178586633737102946073605291246197343122206147451893767401431150007723153296740109304649264354603421049534073782660600794496629342398270828771587019133040492189470175225125548065456715893649180357054361036612126977972724300811483753819142101720882222958570432037864382197735446297683947050967730455844247392631164147360764755089029703929369834146442509043315678762904111903007261941266507369042876045422286948568904517297628865530160924768094057777844514875909181850924228068041616481979092596739125220125472305997696778740616384700403870662103345282353767318761808035962554589210448766019634804127663104265404716162760646966049111834530854372309793742369325690444621500428033374642742850994453299032077573703573313179066338206191228345809042712992893743030139323253895809195040124479935467058882139772847461808389442610376019217194342095246045090080073049870050813025901817477647430944334621080415909165988446896657488310081505503978158292807543450078249180711087717377576487071848037763882919408217084284824379980486267142391712578066241316429529605107634940822038282820705645242326575108500273267318884542783935325102417558656206643434265934340002268632343712099553289299798350188757491941136276530694603685925318635129140585418404568824159137291329840528056765430792494615375027071949575449205849166035587468944082241071363031264023402833871960220920438493071198369821130803032305673614710121573575605908348163485899635369123157730950982520397104770003036442708920557215725916787321672327405076342997231511516778297929112013100761816676916499305199572844459845489538321486762085727974868697360267247758964611182875301986652469912810652475428174819037168483544011124142971018346051219575641693700254187278270134022496260227168836497922638056485810761780012041833075613750106722744916586123583702552342168198644766741812175387264966604759625581413726448511962606474231013045067523755531355031445800072484933887565520055900198744542013466006909332584919741967164249108825097126691564745928247436405816501264512923441965569065171779063282552347621350117684433112237627602054445721868388636555742692850344896428819015869225882767851503565641263745314714416755261259314597289595112531903326012695586739906723926495125806987731562835766530279986849691637243196774308618717791608054393765143947055714373148182053082771114936741637796044622939758516063928463157570656425941242328625246921903260769966501441806806596193558072375466197061934395589029281393625789981079963245288629347982066891278264243792921505835035479817654523178937433694146119198429388477875152551333174143371294845126179788717699341612351393933466939398957823104725022333623005460720535220344440796946574419183365036617771525186404857380643705759626536121577377781733600718443168323062878092764589571934815187592354168999738197015516040499168059645258727278613841813426505447426414820201527100167785890736554332276124032868114586425886856167616547313506383447080460498470383025336544950933002505637030855687552368040517026826644358399139578792878471955571791704733088925595635185252164482363439220270434534729964674074074623663723497486337789659802798120222082224347711939393703304898176943519143374476757337460506979300551539682849899580087377730574834733017807649509067320395997177592981693111155768681058405211296222745629201480528138535405281920097299307017878936376479705356412916092663065955794292373741967537065037697273172999444817107184688125282701656349920752010405476153696504283256097960256907199856840781704930228001652809809593852036776996614803437411840000451001975097086231203315366593188097164845040709423936717116053130509406485637277789068434938105352660763379160822067875876969867152285393814979371401404530510984457088818121311497052014947904636055236802806260233697484653558088068209541718844922782027984486918690129364023353360635007609579256884199040570721256749045666368618923838681799702503186958567910682753177226124265543737401186592436444331005238284328309525872731679675039112343439753951137218828424128441931768654773383377879994814689304160525741623050751510130393104421336997281174808780236063567408154048056155689140487357007800482067243733162178230799919833506012563649184062464297663083698261977385293372184763914030730971110246757108888821557572768781842677637733960021915562559595835315294251053579280037241786743299488717864476884003876040336892255267347397360430409395865817725633848388634522938293540603166697918299691914748617440232882676967453509273893523131919133416155923812827651426607016676063931240543794884402272584068706059704909656346501664983695975935561838237328381635209558695245309133174242731189206480906217613558477539789164425190180116381936236297283323953847201094666533946773866070782149172262722633623972053766683660664672041982427130057135757096466000735396962167977448839762208681716073710869798504435562593616001365711767615956778007226503276839292089878636241216371821393694985087841931697827527525851416190749510353617966572847882414004412856563085770489672648290454924759537711744691627045250828713904338553908012371544247030788467885491583214049698939753436646671491842283157940146245126592622719689972065118271835891959677494757924784293179516066828755182784248947709070956614590117527079735422204582301539757481630683711210863701467334681547924682926231900159962778556170197072138648904279360426717970495523007717703940622589987028165144497453688663856745925902553722267074316646152003754018539095089470847000587684759399293876228936906022158800760109915415206474335497970618307098548825301823426905084520321564625675892759450990135149769313348166776834079745233411498183440311667460583292294944363923311085944546826357752902961960057967912986593117596596780616728569996163960628182143295152064557045026238324006268030501467302645216429827613597704186872300444067302618782854964634441046912816812143183283911675633084901149403265908127265864294585585721641187347523179679465200870164805975900684113330884406465727595797775566961414450546212515147906401335976263709821286949664086661810195161054734176478991696204601024440107973498016039370366017182296523711134317388620869253126411133730837148757221149510496974956156458585051538889260575339452693442719241152502579064723657083288390861565505451463047315948442966462330797609743003581276136516307185712961886091251594150484001658505255048356021192962084683545443932287674221928483879960989049840023447608823847902225401952989330972491213544380828856816427918966973456470942970106167258524753663623780357189039983812604220783946776846173197809059339708166421631189308295997297986851424918741034254321252595576078010662853304951222245181501288862359679484863151299484687110842169218843438942047163974098102995990135484302255690725714416610919497346293175746842990184206730576263760139758686852160466546286148615342218521431749418359624521725111155697484459396131952971253333054768879329235306696508128957227242748471952848014492891861932838771044490347712687588631665673145027422267076682004570191178740882961190621830025562372361692870978116099699233576924315677069977050999493813823513315240675797908204704896953499707746989039618732440811128816993500497178076669781427854760962096726932050632543890025154008532679748229073347567856332584346508971964215769079542577001087648150411884641128139815337637404771644190052420631901659978293640998738526073263302801235297628869649015257870444933401458130644275346918223723678930584185292987042058914680518650780983681614077057386325118534227474939081257812568543319676779100917512206071778442776456614414954053972830360688559964272518886169472592262092250218867365768691445101636374598201261786124009565746578662778501444664849751457569659295864282828000893841336271036454937147043563815262160130336031557780471647759604125304000455795882603090893407481590283855680757901681325260386603947415669469914602170281757018360337768253736513445498241140867930708283635483247997854725453551419552638426254121044262555222391826309665137274731559405814159140313091653009808344568206436168305725127035230616935004228613455700397227916993626714109132640822740621279213744511452195828883382121133605239846968891331088063115022752001727866660475778745717656890878886396909173335800548899272708020592492984382580690381961441427693001900873745346616737682799174774349592188677231102208260041537609353931044443359535616865692918805600942202449151220110988313755424732623799728293395571738474854734647397350374748669568574661422763577394426775040171385442504231327544328824676088865792029871293003748021478447168994972031438562797035801095248428989459044107125082989467451819669541799292581294158575486511132092914499955607182352021482179891581106896668610154022458823265918227168051877862950846504274516323011527512801035051872399895544799095457592942109602544642452506643926680402939597769836742134053810299498648901743471217489525632643647322896283637318687250142278478356280066464469097326508237825209795968560694646845930172299026707096973652650382541530681804198844884624657081734637847726979010668770306259414323099079870762404765289412678541013928254322414258289456051685208808883537539322007538021380067098880681597521291430241247172489282445457442317127719073974526422988360607360089067595986597526208034377797308455885967770480185418034562574871412052689953634612236004428463782137205609659145268378766018686253355438364188666103589139408918525671321605756164268423450388913754807970371566794503391691986313512390938930671435928224848031171227986867591861128683700027524154214917232777483498967844737846225899594191148304834105921256967783214970101791077685477812011295499362649884937442913853274900231719272983244234411088027205738291656256945540305184447054643899580466360007507388254963005179691230181616998434065466997804917463344781319412912221039874748473408226590487310867356692414797988834665270618021603622928782340985955657631278253299518695819510052900961554442563353089102978830508194660895737595099706912997195464815533054933295558579229684762800518851235954236156770755535491920886499193108879636855851319653844817192919696611285572921132604406689459007820971467006681513575746771807621934691879263350288233244147754974292477338644752897776612178968130535072177374594470803497542895176808797177802080449736686516398862693545176463303819432801911640893114357758845257973275066906733583300508432456993027559634187400650370387713686948023791613336023389091276339426585127301265294448538091332275317852000193150987104181178701546254242314131411321110526887703364616740319360546727449695001337086986584011996555176405609967058324709443643107295663075001572462365106486091064353249771426247538529360802093528431825112660981446883914271893640065626878126318578798357642252094687301832205292324237734638667741799913032659266339167029469805329871907976045944972440670754545319220280177528969265559626251705429498204687841667638461424026781783821177066299394412890888806289271356656686483546292925143058612568938929158374427856731234217710258243080150904842172623011667717564607940744813716234690826176169716316600128344705046469232205224587558309497855937499886687892776461429934691079770521760590492884105653392374465009983611668100846329708388733583821071093899371361980155519433778102190412127743653657311496471502463911035036546006641259916617936954292901496471294414560892183326459838662282701871203581954775492577902295540613118211446467799658130149295756378733005698693033893581683377422988872082459319165519455208087515454676404087360453448120893131359386048503875047358641497054322181324644127465851677080693202543144814365529432021234001956952469648861881193548188692642483721709933467511507868111980718374817152197760586980986463196769382208974339901067639878642413912084201234623914074485427792068179398709504207444493456167421659868664255000020095046818427747022574925921796897908640659013073539363174011026163422123740459961115617240118810490763066703550762377519495965564475400675565125695071874465455143187628287010789603864014655182735558793624671684450729356685788106358961227458673151689214458924556804226804067962343241652760747189398213380327000579375793269997580397818969794261534018305972298359588954179732817581678153790845370608855331026615969862848545243785259857340552047904864300820476001462360787906577979879894703375382420240000861829644196406428161417733754491387416267571610349652935449862200417200374267948499395490888688060912061448952368211923001734359724817241550156340495229028087887661771525960136229828689428817078306880362977723957664472045901902921697153174336943754836657477310238826651773489956761113491287528946914474244360892750154928731727299492147531975340344767602051326726774620482061346765850332705448605336769023258761211663014524149029207521569061846520072896175365434495195995323198030221732419006850412678547397342085350920985760043705270464166198481222832905773696009530332608237611043379154089923898098570983641891313950842762121425494268234217576727494241063518746909882392102320125269327862384244935201537568753528191822682557323347984981449012699248831545104715812321420578428238215393716395473411489027845682998297801201215064701556856229669070420408161760206198195815373265324097164583148769574187255254078740777253499263586749526337971017343286200898933438006197357878876462957721819624665431913968914284929604675290767718762798113036115379532316944449446235606339433280520663490866047145435154680211082777976742564577932685466150807350394532383892790824862072330330481466975154020383082062901196745241354438114695036521698424829655810642271608813437060155667085668844843095776946205705828794039350380169083731328944266710861949050932650556548950040764485953226426574163238938383060043372052084367806048608124353255878693811844974994793260632205356170441732683449146831857560772985674116795385318532554151434705760846808415625365911495143106287568193487056923001806858584517103575567864274064501740744765236793736662680374737526331176626130577074911053133079974811792687366448328453301104492252987489024475920555100042721181464671853483631019825848547987856105873545398605511565127805013466168529030383339919616436539940365932311100467950898253798573082690693592433603182502127788409436846448732414927836966312394844483092623250518205280826289728798157154314683325394136291653690992523180764811445107214975963622270501657291146687666340397065985636480570421882475621848363128079328307597937541163030934091032771570843672925173946394046575518845819326988013757689555640238469746098644850867408560228910046896368195799185997560140360103050272133073427188009339052478319655092587274290321654011253258504126861759419252716965997067706528272865695544737366857322055091951196395183582436319387618221628253527796740444106195785530610687195428827834440825335760489038625554680369440802593592913493017219832915201196828743958960430214928911556545475140254884010682545097601586310059990712325876911464412322388925667170891169811451745914720208428800573530528952862470093426143958825903069383858920623159870071101804846227639893761566133193106295347315432445731141399869956920025266070071709626486602495245806534980967446152967277426524814026968597647481168300135136276852512008757931520823725171724741615027733764193580701087171808689902710428209965609062588507468588685350804722229419189890662797932029915100619376929070564693242315627477201854717786310818928329894756947762232624995491055836745970811242837671274279592078257076167529542236966160597772682311877382955462515553525383101267921544998214919720346305826125907990238316990620726808592153347572372598504330607896907178210083730740904027977622055553043894596726725718636656163036697677079934161460997347115001381805076863396156227858974671477794485200457753666538080943602004249150633859691733054188379890202460780722217076904139115150981580697013691937803216304543835362753669134139932169695265125941656335743087838420999893034773000613881523538881288448869412000260548295072673842173472527733009774862562516817394590545875962373612512312686524769162829816196374863951875115552421557413937335657472523057645399075740692321485041422419885830194228797184953024024111430661958578714049728077946367805043081661704183627020667944013297577293792227915739497552218240661166420909326480073753028698950733496955835305918885342540231783443528962886049708691203535405044136755685125484428922535911267108124215379699750647686125748852484691916076179046205987035394221482694179897254776498232045900150235430372597378246979604849620445606000150452549358447946860460784204404542972617370715022751702260761395820643536192424730558740867594674247234645247995062838473997120795308064780013104373496132044926522192089012265920026682372403150343006662626578868759245091405249034268632505406191866030288206006190745961726927410803759931319332818480960078223365643291114127023708363765804760663085849913298370611319665135151001978356315268878193427002387282940219505845091733984754485357607597985876980691340389002774306901636120909345005073004248007923548445350085524431997033591324353054897539796897244414405280632112699484314498046675516257555405619706918352455429984807490235447481705983030637562325722527255122237112977604306965978968092216223702182585888271117460798245105127548109353594143498707006069607805232053260693630195528180651165531406790979153289160707918050851779551129835237863304798397601128575887164145977417324736459437276700401444350392777630054001823161212375907417240530715839053606602959048417212748724852943466381244499115578566433176285686808149854981302572000486236900588317081657610283403445189683780888476766926374372466835928380133405471525556235823510163590188564703985572451601199852095297583186303710898969743701536356018203634961281161500044280021163878629158210843922541156472475351057825511593559093669348428942869807443927535762952133549592962582749204426976760598119177954669205572809898654709496851811972536537106447748747247526988188823528740449096308223496744193784413163380367136166532713055441307749042016703225392026277369953254084645720578830981234579955293409425339966045850580262957576819213538251979012159147415386443633131020255499224971952977977624820706027298343190250692299923494371775907747831523480993834019841547971007507056815586445655990273386770286768375795290737041116913818304541192211606066859065385824499360583298400699015867330896759271109024336634413565949751058814223451766436719704248263467416115028524028724202466645441535832996134339786799300330449114855413214612382798124823224408642284534299223227211630487924679615458180438252379489569988985131452766037863109150970993506228939418719779457176570612758094210734646715045751421146837206822929551738649076538669001222845587177894802537803026193727628572613741846222251350262378813115588486477999528117024831635743474786182876501236056546229066267749923648937114679101210007623807951149305964230412483251935825499482956978713450872794508426062721807777416097101304245645825775505980556248727579846314106826589028418626957348636036294477604971576077211528149483343806725683391748500668105052168898219601325916438326726339688098362088590892277037232803504878410189729671303945555233061743440664228411897877627503347439443159423785166232892160034494836473207556734498485316103051081132261958027592629223944542753976509874454578193027969020157799006753753883013844932802008861576402008133550455060724100018602186159467777962862579027172530458273820236134908933392391616061399182372150339607477483682044286766669166814262341052028757183257118254040468631268641712318493993044254573963918267122077712533506230081224704449680437473134527529378913699296840332683938599122770305833895565297848678907338336189139795028508132458097153912799092283369948680429178156230078434615502816541166195562249796598909010563460127229906836770165921594834192426240014580287125740381377761690244793026955807315117663211693025576832657175413231891921313363502076402009187181855826693444712209975370805806790750086577127190538535114026615460497643422082769482728010216049264263955374888217250402047216460177733673045759177285410382315742826854277103666059144917320008485924342613990394564321633770212726034723276144654427722979140411132261797593564378171297157021971606746513724819698158140264889583101044123749658744331484589795310616249955748494202095133233172425381923630800370108987610832729722787383204364387086589063230556447301370196198338302386073227056943121017994493998551593297159106932147992675140579086778501920043735312167995673688496556315303255602307420790503209372964205361872016673905571578162605032766655653801609008167074474885262953706203091327804177902904345486283581212055506303815044040659621456526233738810034599179569519420166253072133754346438665332205044561402769612473511013469951941988001548565774799068898075442568772475761095108025997326060140609638333268430873086031322872404624944981875785014330574198560791271823194864741952031469428260217064187389466223205179224586047099744756900070801213565229836428859120425863880613328523901474534777261593983093974667746525848911683688818223108465858024007263443114766492901484103217413593604370458418014837505493195932415663914993328312738799433884647171285785966188056435046843496424189872025070508160163577492165372660716173386859290739251296435024577627150536002378221279560280364080424017707541115319003675461212921942501928263687043198887101957737541951296576735153384167785533424731821080834617471030935146386402618314588533687750166060360306499124526739569529737971550276167719216489491389563282094667868117927482717943865554700509055949409121168621695516497383865669958262533738920042768783175802070236730578405653323838343979097330556124733517851187375184222446101110489283024736727091447029139909429524989691615873714847874678338609127469922858216837250249356940463491482846716188537306048928793779370839103265926749772401574847136533784211496872302521381421691643467943158663844276340534144294607201316697960643130313723414766887685445775587619558967033205505654225471619828335075661321487092752123502694216668829332899933497603723258450578124629744330192877102172354850749276388747920019579939068569770807383396408516813092215637350980533220648479635618774231842509307952153599662099548170453903892908556143084843693345390234603784517501272248845680158935455361334042473602545258453351756668156422166605070729433733520551373701273101143403875366021281020710797283165295787178702364942222300048983640745957092837989842244299780638397543013911693443789292711217491956757408495897644608581916674863611560236838475516411879720848789930857908642907327234744303532352534949775099129095680242909528817525903278902532125174298524497624027524364942738664913238098198396265925392944940322185869613214760044256396031320021458221543477175471050879902492544201655562687256688296123063067036889454090912760043771064361943748344427650915021950852040181198200141761209301889599289577383336120345614050450275802394649352453730065019528593399676235042338260773464408569232772628899482840586115384186495678964917072469559872513439234553238525924614903996902496296791116689310169763645829660436808863203543664846039607125024872966264173351243165732041855793643867688607981947824612776016470189922098928373279085743997662353066477625919586949044238048885354816594449608381225799658803245281088287023508503368887807172032400184372261150660885313489831384870655928082723490291209106696484331965873793688733234579078374229896397244065751774163598042209415297530071128115355676731543436767047305126061959061799376901949172656188802695607086085410136061463695516510038072664504910473762431816959832994822886095042820690720850004587713817948845127632617722675973790920635025187678712707648811893982445436941823616499463324765294522114786777847525913496528448626603274679872574259801352512324338660512359965676439138349539419228097441952377413972884336275241193520544066467394122123390494533724234146648425723420987868403684785383307042317010695486404722386067920354108163647961394547131933452270044383077670020495017726618454417771010405652901555492404139465287226798908918238610860982879909288152304651378239096409702869122480865388973788728852979966319579442003709489048883093697928729191580327128759438731823150849563545107071609509682686356149006340762255749442707750064329269497230601287397300264912512732808742710018432734624435411088205524383827403911798562983826290266698898778712151455305703848926619160440877919153682359039053748839768005304070133244456315720432422544888823548385168090399460065488924895232291498519990215400425260775680536504669597847773000276884954740699042151897767769182806579834316985388157985262341377560124529216160776431463384776383218726964070812226564446202964171465028974172516705280738291743114926965454221138469858356796291561083955281380821627052186366186203667588556912354388828272054340911348504757167906151048047343419107408811931365372814516842890721691499266610831943424908408355676022107956685772027871353233265817640216364014735827385229433853694438948641693748947824958566153913284544783795526112741737675102266356294905018241258778764856977690153549416082843305882328103964936794094447205352766694996056803357724033798001621838443469320909683210526410745927653755458800378718232776002977445876006072309434699120623793282985193351505844495406533767810453772475613757975586427706481232660680429368021600077415795970086030150232325035591705576166645626766263085482700258898056618071477388291537743495472019894421276331807435643066165589217939954994733228930174804389086619231831468418826574524396652373267068744855743619859103256935269419222469717278542948961282691869510825162011862062494476515648458409370782757629959362985390453397017235062435984711828500174612240593400284603822649857281541870017231661063164534969710986224300046219249685606269515429757410217571256667544796288748538877694529245197885267739453923638758484839272527489379146359673212827275524110882315136586942680643692367973447652282258087583957453490954353212734312823719435401360875113327435194749662157352296602734062596470448933297198402442332652838748727662041097284723534935889105419449192230703050852038006104960792170319208362830646540471442234433628714152148475920179190783663992989286063537568636818443632251762683889993309363630834007333082913596193437324167837953145217647457760350950032967225057931665632588608155616438740473983261915799277218421608907294136653187413168444684491342608306815529167581458311389953334742639132611305265932989349268220139482242341035909154930091142692936180110324192173507106388853548549828129288690099226498484354134901000499622037133460626556830059811963469538914035540520888963137324055161677827440582426910553685013607697761770761553547730276625666642199188045778988124710542490272247624130051368801004404744488260387069645271484175296388365006719612704384904301060326958798179257659202577156452007873279882664911817719213352494172346644388995211987781559668592661812718463692599496735996446278394768361897323088263601583002074057693748311466183626563300260499925454391466739651355974872460069491421437547945037880267145385027954711369934904230239317794181350735653367374851925745948170829796733202194882202141593309183184138018232168969668368191493374651931592980283753609920223023622130011650799772322248561248426241944743552016925522020419379796983801611659008494199056835716107934582479574974207427461539029963278296701445712027715449749033060173449328913307631479728642507469408364676973487145957044506139718018245417845708435642615102711917784037264525058060644279010198450161771845682116102345036550213989483221564127959264328903838136642036546889344699890207407925507028634027278355818827542060267767877981557146625095023665455361686501081125602392963186547398667381478175041662479401616611010448996278154093009994469405905778343895121762499088085128031430942682814089802351061518339567645332803431016495401813174134675382784508765710576050020291068460010226951338937517876575734469281383261147942913610249520323522973618817745122189112907847457360292336122513060128245217158332302134633918946739485889056799962322740720544736235186953860465337050221408356862148478986972026224109419674180682108703790615478449309071846340466820132102111061345414781865762449344834376266489725945405966486364580886561898211065067464126528888471561208156491750170103460306665151858952376519006073499478796767149775230545464317432668182748465274229168752445403182720348320207782493853735018962998460107609338734053577520970965039897480927165147534810143911367967823898589132766733801349010214062023808711211249412874056014456892261045926872910971048751928053636888818055218110746710257570016689036505729725858515767678447386741747508076078179751402224368206810263477371997612183247301533222038353409800392102379435951419918649888927409126226929595972714132988097237417343958396954832167985600617332913031077984060006674566283121284782442620220572083234190084509170582791050444083783043358710873880369921019018723757786607186346917566973172183024398470393436264138041685520620362094817471323827304965492066902319684542148076612347590063018377139870880658254168072649810016891669923098859007408930837396898416961591589944136990151097233588266455683416634678632672773389980267352568052030651590120451179138388278074955557186883575145122092800105310996909216381934450866154639375216526261517365787194547101456495785461129147125448645326289714965078111234795565167918738523532204880052043409133667981052462169922744704723646447935651871409063931102546341486988705699258358103220788801801322554951960055227473587498592433577181695742454951536060668536528662030208833719548310172862125655397765852549139044582893112770989740032915216326505201724215103231812160355937134752487530864049451626729361907671418856814442226975868139374769942530167191784951700428254333209562905762066931463755861690964800442321576333702094457260105599122319355740085204143032617166595508828647008165754031025537186790162309867541044395746615635383010248873626854538948648701657432117159669655406853439013812481922288899835559894679753016777414074673381221811575153975616863982410896033891096071947247663445702116170145385574488860604467809117257416866596523147010797942297283291113800225178407763890778794510460510058287245850184127392267459063177388197342252789112003460272791956177842957403323124043822777204558061753621676244220207876494720009317795852184959976171536710318320372296900260990695512145367433405689552517629724710032278584115588333646378520430461383958916537750542691937097320446691383041957841307126644687631230637956839273113581692682394207444452024225068576365913278024879716893323961012807109748291912506711007052000848478588304271760102142009175649927322513510979517438110193089280674841575706301684390388471292082366338924179108597284144246467149740144451578975707900406321431528984455477971980199184611785581359701194135821046850505391245680646799625945116799831292670731197962372689720355771729916083564488203694687468737635080713998501710686838460952129675880002380740170054625121762345107811079973720629635111077935895795779102497897392464000903732846998695151900021551906056761368087509949323445865572040827690277335705202556902351357709023593646646537730141682946455911621020992366212932847914205518551496723487990877117706588943016859121243494688768110020724795975486342141811694971966263683707642141700502733075719492424727517706533181519157065448636708155823898396794136801526270687277942533389381378965804121889083869859061861472838577862672732949006775147623827039920584589852430887911053904601580842427779466806548880753945993042501839699422198959812372361038761188728464099817474440094703797901894358932492949096610586539108535170195114712341449742387844003787424778092580527233947694589058631534654004805227636472366591955563376238851834587215278641472615720427348693396448308332064984516423072340129472085711445457271070608693178485641747617465810689133277686361761158658838235988630260177665326578785284241216711060105004648298727401424498823790369436006907742421053150160272722532148409736717331643734937279791768156754533358973282456348639619034819551559108134601223343724294259812615177043795710804671015807527626811296434711797568917689293704208192740856490457623784600324913266205486002021067802923884517467633529018880677728826905092231431278496391702279729158291635737810864357843246729142099223641995835811326849551146123784429064427553352730724931153418968702557949265904981889651985636591229870788681329536038144159044485338136234026540018206518937674459678361820245977513714205061521609385455097694581321764614788193019372525906289526642769800567754659059855948788184413762827459416564503664492504897603762375420836671920244375455350626317936260741176459568914034935573833228599672166300255219895947785595164419500121596049002631766866632778073674134029520812582041048505258753160452764383311663016155980087617596755123332471793552889195427853632268273542616894540952905626358493581419548208743679437311135683710705917860423753237516369336650906117311264013866171748112263564912038431546452872754071110060081406470807824756444041841478598829255133859035671584746092030634739471503692106524023053490220199377900873926030870400601386416413708054624134194019305245022706417430994346090177877615995336343390458913499317280028024093296284038457144597363189430038713117743805975832793844492852460954216175967845634947447021474759231228775019385880932137542909565197212010374828601207006978425688108118269305843293097721310575809222614048471357747885011399074942379121541205836393701268269922380931908941919634965332885983107456495584742788738808872517009378638096391752023349140353645292721975170733478678139751908413135071841064644123903696131331707983576649126867311179081329017823671379918919808663780826960979090818263861227701211702249999903250117024759389552720592660811458714910790117771169566992702819315548774974452233789278469597614936664610877753064113859390707976159818304720946128848282598724509123831186227950624754926502614142863234380182886979038126591585435844482680612029765927188323167281463873908691122533060434227824440403434167961511014946621890898201751709738203819043368110356749020994376138734597163666675140459846542886031387710684959303928056248100550586079627551365459295620149559832083247122028823779974756409337002331639716373797555730363956280405359018502409892591557078027993714005751372600520726240389454069493148776652674751271108384675995091778516505499071325931326468670610061364088738170531548035072772857377077782676917608680743133571381522491659872562385687876525644662085813032831569852177485348344254080761101635578775516658762661981317012970810148382657795163022999592093796810442245959568398463460212247331341563308157908060400523990269723366775058988629380559159976697082846794129047281497133211397855322589315804032229755729305063187937265519567527909746715853038491499745968781024179546365048473950741302777852215624512633368376761810037186756636016464163158271865923167142085872926417443176921697779949684313220249978305399697035263644167581911190049684562342123539160060866622433797699583409030895204024181801276051167704244534403680735671067403396863334852365634597728336973731393503104289142774415379629925288929291010966839192637262113900579087719937657170819267331203615124444482376119713045327322872431512220267698963002144629052893965071252375754677871151988537931484535594654923822295937386782217298810028695579959753294823778398039378950732279322892986617011255904505442289479177703235900865428427636927611251852421717341168526460370992408008005097017035067474264008116466260316407540129625869098518226492677054295042495476442644223136460433523568183366271232646654673359828262760063394846723544578342559044915561217862790041947048390447607744453812951597807137774779670155655457839088213509757057291935096025987372918149409704016622158084221311788335276548106923807715770124926408608770477253520367996297361437031384773538634126713666728116208609757225341197202733293803636602147351511252922986641540601982811722934803940234047050208414209610016401960217313681686972849073999228039672052098776063825752879430679596333944772248683006411143100582881447275780455059455410418179058097362552722811209827533598691140632855083305867110787296702403106188676127957314782011609773642636659245804411058621649277334134464506321317661737133920926454767281249340941904784973163094309248189606629116616792185295605607192279604783591250659947616815078139470787709953577237641977810708023411664929268086227516600328192836151245891360718639122147501142741721849545496079097474232096694972962562530089771790623383606023976348610546535748100689539368554476950432467170895189906863398375519702790504651645678623009252431675861734921630705068576689055097057412825792624590612277535729174533313403567044108903361231923230295825553017543059045768951143312041370953141485588353573061707779848840589621888281342752805178362906111687772500401172292755462389044010307560106228456194828665828226370620077206918594041921031363885150887080710046304192709488262279118639710425311350503140392101326814842560202529581751363214548399848383391942545754665933465824490252833407244262252334690781314367450791698882650886515750204498231115934635637039220193407001783176226336631892399400350413873336982675521536405576674695674823023088327247652121059298963096869112860038909800789549186004154412759674116195549884338262595780725755355035810064271110059665256709362309407100106629797675580780234179392081179362500473490389438864411325762831376646510880679007111926171014429662338149806098222473446219787387945163577548703438989487816819143377394270316936784760335756949275319292147949547998660006615118969336959551203710926944920191573005206525216106095821451019829433778897003779233308351853280268975252044289380966544843885314352264134098844898905779376224237707736674745086830011424007804880974070410666835374081474866051342801054152998641411728273506202498199087915363980343300230460212357344255543750873069687541321812205346131045929679052729148159152241802433133152538804360625077095013261311767892428150866398817970327759282993158377645799207384184419367347081911349434869275632477028196369996187795200487851123420449913765935873829427420542955557166961422548070384186640800612518533070740309675285331174866199350606060264787905218730222727327207464884065542256215029612518233670450995495081072262532090744258581326780013519904081418615984095573332539702178010667045503690378934720162768567540356862572637073832094697949051873293081104452609172819981974517875661963812289214217358822346513329842096816857122108418223596323722023404890399646270811644223909194088246766662703658413335697832923164667474534747850474729291466643536717385499796848681474353440408683849956828369738896708396141278817750580786632834358520270372923817820648860684893864208426387534190366618985115485992842047573981026925836133953936062263796745707991798095617027257843968766705247914725470468174949057551238805597072311648703435571212707571208887564891337203426677609858300507259583301164749868378642860177266581930383587989801003145322726019184569486770250250333901484276680365080897561857515115315140953865898392606462030320075620814620715391252388670434200017016864534866302133939101502806790307093422616094561981660866076623006391126195074646552712723997884350992988848260167724205063115317393975469679745134233997869890185455496775974619173770357239525526446343978783568172680311218902148926083896088955134574739190862103828377538854292739866237547658725937038135829280145156238805771844238689405970220813510564323424736484973955563551543239602721157226986034627381398246042526244860059489004460519058830537597807321283661264859746149697759275271131099715283397877442553721685939483184414024029638344953251988841143399972290229728911334740683138469116922415811140375253367211117647226312304976459276022911286756724564352317019792798439337861894968996636945246463664672362041753006313444893588718014673296690719411789636213167783736236433566439629860777171021612484040745853951599100377293744509080756187624729315667183750554749066338391133222390543796217603628263620285889792579498007730111021652786090008644575964843049705410679205759585837594287087838753213383714504626906942552075402670267998498019254727508489992547143986236310097164335804852413973421679711779722085929741225486247584187590532614226487307801211573575132526550185778695526842152040043972125738211896427106323527930849523692098896863533440964008326904427664707415944601918982449003640345699164031577849229931978619563874030264769380988724211159321002196585194201621979550896972699154734386232269686562916023897268274273243814697876371210046180579696039345751593332868184856354127469642661202923153640991848037044942440397441370900099822109708759480291556782136735985304565554822593017406201651880604181778142577977289967218921230025956685461777956794370976946621750121294108311744297529860643228028650229718939571766837295948065110537697256055265311499884149631820522401929794838924201762660238666684765194892548185512475573393402564486776099340213349646814585048605691743162796673790017728545949399053851246008683920955784309638107377867502716951068136326300720263351673074987450673720408619816511131384426531935271980256025916530039516346783008073735261441138441814618470964262259719182701251679637343354995685498555455330413760194544926196795574765160214179516436860117306889389623962250644826338864304534061143954661783942529209137614734824245756411919809075653091747128345303789858480362709955845118991202975416862536414692064113574727324810109690792717082685448639886693318981294286327744764134390481673014172992751596958876554286182664842043783397232598872505775592240367225487197934876813197470974712183553043457182451281226507826601131526583545837546202467814077979860021129253143186627303294688778385007050069180871138022968183031608768975773503558824944683905594173865424516643602801417593165344610609464664070289917854650561185248941138847528530921652871360292391251348179172570733298110807747100705372699153176192589117786253790703027020393324697153150361027106500481564604997352655437231211991334741225666645030175422778704402621271586480117046116692993371733389328964652940389225558388035404458607695080398764600714902743553662914232326248849815753908123224564109607428372332285348355971720848953691961852505409828572141163786369858350234288981892436257512387246492755986396476586398349585765803510037715783008763231638020970209082169036051619092588728419350286874346204854517964311182515621579216089604192745384404242190947319575350482673531846962955603965123449065016098530844909222461815009954231307469555862668656781337589981329610246108032428967424520226931189726755252427582423975692548172334196879602470390875515595364049279923599007141711581875537168551517548585158256606658936521982304054651175437696893898038863362597694527946363647096875357314669460456063922667089846647354394783940254234593164693251001201422323878741214549540932703176497520206347825301330999050250925727940592913918474760763689728926311552499451967321903400268525112889631397723551667632270159736943363788909493940965135029832574254602174377818886695739853495475256774154384332651572695877004163489667727489387884520069153215838591724317967425783669337937493144034297213956538533795130674569371114345488268211235869875085044843390115895994060494392443352993177715105238621910228022314821727239087377736054322930168383372140839782403281082691142973093886369610376269534151353566730747534553427461796797534675672550122063026130996542283998099871183806650754924507204247831322563297565100945870432493237806154285583161002527558620968573170800589468626922926298282105409289012274952868867382551358881520896521368403773951442711163309546128919858809585035194978221548203519259172904919043913872436390450634748117669639334438511472140275955250743069251936776293512392385702360505442480307342126324085053871068103183801869304126328663377746400696557683022961884523417447998158061832423539213797026181127822718254788228232770499033712980997403462687468139243967490764797753079863406423963755900672476059844494248121195934805132316857102674726650888406963406236798117845867693882546277349702950652577395556923695652157396582782375146781960436455508643048090766306904750623736148721276191705761625254116030902101547143730366582770420814341537424979840278845142950930785093659236757051529906907107878465776919481716773460456651472531289233096382809514163383725590569271578650194353620699253205812059088065569218551338277562082476717933412036958026189909298505989091067240458729669753816244478136319438499020178109610965280840183686860541036819356418595371257837510752159950614854907899775767450356775445172417627015585819388451822099575527711894923133961137436587674153095601796194665674478887414209887256726679192610068713521756841622803357404682686090437459859175410504401694105225777326668678997378861114121146863177562829014654755974726649079921183957898040336434166273814592659682456940715054141668738270134429023856740104804323249572793714457517937870680900973080650069558380801700219324110470583118339524426465643168834188459484188057136509220538590165034476187367430433381114427605235889337645920910125705582310149349991397632276248603189082563624804634542626127937667070260421702709330431268364369854040368792385301417877918048489169520905251651027858087443628859602949272347162073199004838035625168246187902152615983455964207202684671310138942075979951549975550002470189560826152493442672081312232025172065522124516773027654024053778446924602446751577985458585387497038074297631048160909023159219660733700821185207068056351754359000039458278883640350550927896077656699819101515455099605015583366802852744678249582524385502532169317623232484635529570390896332756781421524676841813373913491673280814527281425207009616600808661787183085282083583645549261507119351860033755070880394670691543502684219119941985866744041544447276163114870707639383077260465025400531086776252352547060844118968102811254126163862718090190077891384531693267002350339144802861428586827548530990371141925155321997912011274196407026154530204543415936386307103534564055569218862785001753332821792726416483799128671664317550881682567294903579687611213286131585972101034431933130511873910105675692213078908665815371646928145154051999195922777305754721179698124767482409812197681286394904252505202303284230249759127639931272425650139490921675278859608300543937080272490689023729959650927562876757609608599816949395301368076879200585703200957596102327347977120830046444881971532252823815356994862358974019475254257295930822376918191902330135986267686148515029686340463926596413928400603341976532666494510045328588155919412575837157261288118232820703100097315680874962007535864024351288254663878611295365013586837278610884066767625975649844391096572706787450301641918292724788465082572654391097789185014536243019870723295459904570772479472266179532989699840475976341908207702944374261986732094610292054731063276089240063692851221296306999159250936035602836933030949659304072160907178758055910413502865348384051912511531008451700190041555046635813462811695043214593097198526625724217907776359728994129307164251627474204298103580954237982884736347523857584921688196808176758735025171437649936823805216576499939977195815950363311998706092659006059667671797880689346261546223203339072966530109632173254413191123058251830517910072468924709930486125629664181068070272241449581020203552035948060939939182494194552124000377394890832522894494248400054625867118176246230767738903679149371680096756367789433966221481029591050089105611605222060369398995959159688799084383457042818891383845347858556792304240811656942503227149368526249404270486406023115432045163573202171265992840714669514290799599450936038045331483704430204943935694869858520570880636747435558185396295590886649908275257109830942148803983372680296834167802969249152595309037027167273599488407702574913518096043335542907799724561191751796102930310179874264155473497370148570128868542729166929903879421015772328614597172071514628788447710475428222555357412283040731905426690394283708805810114634671602374838823093930249828292520949787831308732939732389901755321376299824474164054262628098889505344922298191433787412306825011300172074349844383370198886878939571678224700608226460149386529656728926215044976344938245663918850350007278602268446786885865480963856653846396615393682745409571456144129187152007905813442045965452871468998940506102286205170633264881826331378701557163029580272529971397662219825120880460070074187303965657994985809931600397269069467953528244735946534423797694779084870738902166360624131186736984307508634654208843896906393245127766497194472978869438971026804311739090176903535466564399642912900256661955106461018677118039477511778271095380259269803808926872869993741322758354100558890980678722515435647711501167858170735100879195825134384422723185697109688550695961151838579989091548639268818486810736208682687468910469955168264379889691386485546344974059454129127256623453187447937372442575629864834010833682132040429730200002531771668801561082368473728480381995302524354047992201326991201130167291991566444811529086867087937732710889872477741681692917376031379664025576948785084078572900636050436697342180188005217937919270296332740585162980198321513669349458398424311337183294604296737402931789596237039784404929069853335053176164388667123488352207297545567025361460436580219518528346710346206848041212788819613350982327075361248612081364005744863697475185720066400324924177706595152853418472960972371142952658433487849311208418266395977033984758170054475581822787764724589726705335586695734715085127469368631052149519659492639349127866449190024381629854856995593269088546728387602553893192236241019716839947292924422993970468030260609057226622492229734783940349699397861389178352635912318787584267412129564143826006101562394868773488998514989231811652890468801309174350212075181536273681250213574177936727472842497453596833573145366434581240467011525061744408297182643982802413223619564171066031078856468890352109011135146169436761832255381776299569953168195842687833675048203456226543401011476099537790958144914139903389319065401159644482504629403095306225341715707586633642818743720854339206763669481947862486453996251384946946314192075075745452006174877208084896318819626762113846837184703140838700665895328768472832408772165918294566224247462882133828853280570392392677075960791686289478512965146117956180528110028711702727238523604300412959424621830460046904910275947563128764658486319543602672652879447558792842159395888236250680775289604785922991057955291264434764010121748026839804139509071662091449812591634395534010768031078445750651642519538101138806708805675804024396024902157351719153671887399875486989671599976218611093403753425686233235191762995101782915018558948904348503748802957101065255850334194377476041716753908074673127652641187698801137633014140784506974077539627244688641790492469643304675417966801896005111044796562116640104391988692185387624349990778739339753929473762359996646188046610803143646786986934402780802206308822996768402781102536324423857489034360112081888397510005866155948628146129973251092237272787705826210022971468570497179149580449766221000329115628400011258822510993607613256855342807390735172935913288498285819238794886424305850105597283061329072043938138389829831973446515240035417972654666670801629433169526459964713392371697224171914637075686291570130821344968752249066807277478273822343681876875360722099954787398212535112576751244977894149698149770620473795393937132249696798342752671917882989587899358308092744245838964404079759969384851486166369908956025550332388349137783458683720135823056566890480229083562884633975503556201807907520142204308437725646726410906466837750192331223429987403823119984069102471849449218827948710495231767285255297463764131454040657692926728527649067752921875575198053535130489492963332010102392488143041296281276683108308316167805660778654614890569884912694626643741396217714174169832441065566579593427523750508393031608176284281898315478912814649344961961235219707107177358681975009452535281537637035414833585828075697146456087127232854174393044134274258350189189735199366262453918520751093342439114829741809427620224260981528140009840399742609301673912353895933847044216271322839194099993149008675438140841793573275285949942829368730305346660753758805174734739168017916104192429517386954692906056141834150318261935350432157547130230744956352626886167751267308833354021294371253637852839075954169447995851560661602667642730289603383669436316625668579036549056480478704841477541557010195625835077671118480972404129610104472391382710799761672188391867550653726292628250543534466548464638844721740421531949086736044858098307145595093574765461360083886083764075590915758848040984112491425405362701449849816389134307455127151294708965138591111837639193048346643261477178397772352836037662578763019080665722371282021447108182208805675850208597774632259056816985305380861982679330909496925080578035435904406556927607687533283508645068204757706187570847499404830179193853542258067664769254950256836791164909006227702972961961690817734890447639963574288557307773981900805152624783075844596944392612206808593613955468018134849105165089861665233524244281704605526931177645593639858873557991879584899611007346419368217595074880977576112618743091231022269203075841023390191878896587555086097793875739771858177418045201027981555548675601039846550383958468365717345064442208934112104914993744146591629298231333416110031195799194776519358026008576316950711523925180307112192619244239384962001249786677184112921537960580483876766191053852345576559619100512198250221219087202523993576738288117034976565449639863618431256489705827019131720274019120350790065517651444615982784435544468607962016283532577776436781388250253875655687276642846549568098484044760435948708994841756634175649747800099146662201238081744717449687489409984074088906644608460764192619569962617619136622049424680787598905923240095492807126517351659668405852688053702388950134085098502549438445236930020047239671879995263957376290782933626635611676939948331107619011568567788026896572846461011803649797519460376106941826517369365205333648789484723197640531185901336871611647079895888141832437888131323784569101509876364654414737499295421585547389740176457188242941471839326837993291293863072802648012198208202308193315507590528681494989951397782920782950462542103809152201503513717487469611738542794651369449909684665265259643796529024030953552207870283773632432466267558475414670974658609019050425877292998704341227263729245999970803905666730549516102579061816030229099528977617496634590650487407044429653488602002708585228774754853807104467560453623256714830116936310866511968569898815181659098466629927336483309944152116179291580706852323055148357504890430251973386926725746166933270983264847263184993138979081212628819965410782672530876892301173511285258122044281775966994995514649563437727114786792452329772914022557506974746708771440414241564592166410201272157754682242828423103801003786792919476449849675577717943284732999254147988804216792407707563277112093476878444213111678031925668831800292189568906068293192157902486474368846913662084273904836424697155630645696895528346289515456518960278244345723394879557290160838390778643755634018174416426793860842196085399476140741778007100233989897216784645826109517927007979179770456816491829347083001303617179777433481214678218389358095888200311437726722944487361572141157869603231460611468692487313660472808849813543309981522760743886542993395417540410000492699862575445337924567071474758468479608585009445523071614985444985678975427199662825715534126195739211408778701473359090569246380845581384568882740167633558790598503743628400424074131080714770885505457446025143706665365263263952659891914489570239094933505162540238424430031432716317115150541094117481537361186655451506533063575478405273509056458684868437152196752308657399366982371338108044801994580689135582031773998769292789761619948645642494361792394009370991091953408819918953270088514744202167426933369746256300580563674232781763804339794250854764425098816030731663020164550765237625916699677509548570356804697612120366325201950400542193729621039941324678460576157415758866877509328843489179328898522209416934437881679887030445576621460995779017207265990303837543241080529514870656419470631358993143989012832452304866832395280776733261739374598136893533101170738269408756206248349918601589107539342762696775907285119149811744016907209223272382163447238783309038658816279938296624214207702976827932930628253933899504133337957095976621885524382006318968653317322915208466034100694659395089752386727887342613499609049120207805533127876020067289641422606015258375828498106755871134030525384675040253010452286668162147422826877393194736056884948552212048570566717563238360847380588513267793450582398763792838539092952154954372905051335430223069389067596170859532347442106045842940050146853592071650393991968018104399998145173398905380593425639813467510642593966961121143430881273691780639367752930453863623815327394388162933905085899454996648612169786623214659584888696724164945457071707461936619534214112873954181577511897597279568742285178339035110340816251729824601257236390647534109306360299761081698947394420444567814567224912525301293223640727999405439098911699104977607139273474585512316411306697186615271160151449816039352096211144706274295009175151969170870753506728708535981337106966899004972640120546207983047407834954657167206640799041675508639869192480384759315717481326881995505123437341366444879671942149308878404174230571149711410167633459611652304184263831064872432374278602302099493059475741544696030326986197860686824926174416458147651550878474378614216798690882996697405730372374016055432450225722805920009165114947692203017062062835779288864275074598678195609399475451361894411168046674548587654610965271739542515155241419955106464318872440198805934154911085024287631027707815371552895806097464542280513268104413647768375279818608730634282466626243597852377870740851335598176147612528011674765006308921691646602545551863222563923443883438529414737379990655259228463315202149357410915886650603898118747072903233448050226465894218720404291029273850031854838664239404695303470940860216007941411501310690544799809234683961072467148098189515841819197817051133255865632212793905928288844403718641956616784549157786181299412195193031903815348876506099235449427620290447289965471313338336787201417866435051752020237135932219966700272540724089387644201420336418003375087181616840874492850303372119962146877144240540472272563770611774797757681288274794619212983131756477684022065521164477091653677425343003317866472445634435852823178493598147433582323595989854331463683321798787587065256100305228760729596735010165434683767462526646482772462201200697131463069114429181382172000568407917671464852979018747978636893411553686731360170102234191216119426527046908717718245439505424559740792269066224119121684857064528756299124057891975609238571306537988172219199155603525187352827278046598794866883808990419860492142541027583093938509123249043007411010774428519840714891338598433937753572673948326138016060790998481677380423343105366872164735251667509641284470458342817745339699181340468014567775962725630906598269826710476649570798125331228339323895429078217633115769183925505712449387493780320250981199154278236571935696392584013911090361265146723984780174735825741509585553017418662191615222196594919506900905656805665429422098403667439085915240155124258467870721147347639895254843118996382124285388355223649091708950058573390862189280171733218262451563295395607978169826438497124336175915590416687731521817369869269045812891934160108241423896273529787577854784290693317845820704017996993914380066901608654221248586798666771078536511831058465760857586836140367873187396840551136520608223867368174986796316881947368958177801116157840756966243766767127820350486813289318288912554238144442073475932303979420791939625884747965323609374293574746039156822238490992717225162553722066475262444648013706002899466142200679741505410793050179532366392338526162958468161038947633606224336730084497781999152259705570603549248905562755912469781504098903168127990385612047045521052497912117389139570956521047040696015070483762379971477325551723211410399002454855808390390289930547425833041534821904940740165022893959477707158478849069716396718788884752553530521513189197877641395216337712296321276788498270296152949451282099697467983158857215585359214535262224954530977010809271995992228229881038482355189028029396960909793106652257903985917016119351451786659525873672734160325895904122719217910261973510120200690828345193967654460169063569455670742968942777552738028994524547121032638913705969711222994073084847585726370233119952873140857005357175089153975354173324617023391156309373283181148410261030501709830162228520993467329263989801235891843832681996557501397076688349126564167327632313444375952573233470131843476686232920367230080254865849606582174825484679379254362896525891860360470231372350740848278654530013009000806987667983999216106979197751238619951744356269044210012332620001545174052251787131656959140555054035299581735066860178199254104761978520110536617585557681602184332171730716284862519053865361156210067754003156456667672822327133967130662924791695293783752600060179971040389887707030942322855753505515998681344165403403983173342835991035621625369819962172514114633529379550923031912508085471514654387683532551708481896814823256058068587639787945912386350304582046034968590541025108809187995596141996499777036400564838324150284372219643712054382076196703404736497291604698700622028470451365989242748565141218441461489980843257603068526152729216509087255270635510402803193716351545890093818770003580401065423667838535669606807644799853347632947734410253432121997624294379215857366484162285423041601925342080480293356963865255141106831251317572312705285990317208241078406695597575465094347544092369427335785428310546742783907838642628174910483386806557534967102075815349163574759811076064065576758712183017491379052840253373481061295830683624474047701500639058038725123554860908234573933273643755329006291470096258752625740289643480646530888850500488016068125120293474576226716032524037640142960486084904097758619070256905981180240993054993429355422190686671279850766787777428995108817490814728501390495358100293576539710433606405753664637408095679259266248100787713621041329031347247414598726066765337376191606827406069053983361401431233417927539864280966621398651016819150455433202903787996767545945363822948107754949297600633887554970701826389806790935926240990985134988425306759174486868577937036164583094446851775875471037748971490247709423793076024245611720304490963866891211479922858555817286017195271369729796744219375539759381279137995028527776569439656278131400398818376693465033432452456978120725073328278732827883221509173114512145601295163119285030395035324402403574553631073620216170513101771322674128010503885093461328591460862301341029237802293289646890647475999199788349612219551417988820742999540379160864931347790948763710945116629067167567857048595811164985997292542786694072776309777764172350781815966081950596810517894178487703605702937475890017773962953559884237083393849744613837806468308892511721730884978375624013133110669026472731376453310916640733294422981424695217374298261678386197302361638235403096017600379659251066458887092208350101603939946690148939998719095151925346967255961653611443021771710175914339396449427687029971606466663190594789706479031645542225460788989896140504651721120636968722180547285928657742309643005189703599169817999321071660283619683294039931731900032165711522121818810436730802120518638205532568740143085778168810583863307054889141731859014895903780556136514961942975627804472533611905161145938631847369039841755300472357827042670423666536187519434824405737896451596253477691843225920435808988489236164738314007192742822696033400980098371875706590139568487592804189438852853746316526063127947571731284414063718690377510265622856070959384700194827477135778480735707899368216055675796522547054037275702811961983327255141373048254326354389994566467946136900581249416984022745987898796625468046334575931991957978802981539044323294793147369622138190195908389094407409838188843029850729613008776851436568747895749985384070007112641976282621543028244185270431944409602850033065123725221507288804943548536985619775855568944223599039980288929306387701199454083927313868236487537096610860043493076778944292796674811922466909444768615294001370777191259164038960625329912053316815787527164896563426500421900711483822656084949302785900763167899336862681799161251536545812915498008623148009115548297984746417286565495301878819203100378882544802913131670893493917808299379951518540129459180045901393278133983079547668966486663124992425283396051639884833265759699408397683353670408764254236133463306457916781733526596647068988004062106213524007977808654410650275983036454717846208463690439486344793852207555435541145851087884406566827531362468222878900922596476806400414345756936034861334745667678851401719454395003008572389003939872055312730474335338858717487474005436966628914031012847433881410740715702465688073774507752776770598118804964622079940226363698830127710681482535249597868512533896791236373600660621795213948372655904574761841381426480233468208712946261815733166675941929574056320557398777617928879489005043250979722266704005178694135158191182157910444282225514252545693446644764585353298088874170206079543429228172838469586059742238367417167317815158480503310911842943876032005400192167207724473542928242199237339625077135256115218209404349180605118987388828830798712925869326382412431360321018352586540230508324453772013995832612647807439025223904858205292978093389837512135415968340963075614253928342236961668603612742057302576724709006215989050204890066245865575794887034291916335132496249980825164279374223465832981466033871760332614546655273630999650347749159372489259975831259655431744069897260991126748024025207126087638159807725174324545226715880630197911353694741400821169491279841764903136422447752788074238117146370766386035976845017806891884743875597035164593228997467653211967239548694552221386741882561349040507940497223301288396906585756619223513578823457891598301592942840877251026100564438501141156200526937147631593058526100963033181706328984328481873345389338466347580258187430267637709838615106978889047026436318466090940587211156455763430725914395062963664385122183161823318800724049713874348666181284986507791037227767497945277064614011960446058996344390333804318018493539358762474988478675358470838515131198781670683313844273647137864808243228005484976224837580185676355573883232216814296057640766856977251462372753302758920884786623320883360225371948039786695431477519513501275984656986827308412994958471078313780854935206336982388649126558713891198399387328643379436210377600987071669881419840029628841864108041989837659036390787864296870512927033064738374807246864068527092120938107482615682545479498442091312470218779869594069967112939805855709412370778287687844488997244911507868988383190145939831347517921041766822565248385840368664994171682102337910330342720383011890109904542533702360169264549006396063370992992546775632631811936920175103307767363919196197324774496208973514301061609808241703651081314216629969848440211166273007298750087657218508381001122711933771140946043770328752142249202295665682664011288254422339024228929237687612789708371911264992710813494414889894832998763673703440841284052447390162017131680289827802772080675141110638058340519423466686943627187503700767302870612110743399591773016198779620161433986854115311900719888572565614453208563031613641240836112791033596006290233694029652918928335677923156412051546075654394703652528726099163863627471721011301286167797423751754141201571573728116384203922533158764696413358939740325707342179607512469307294055622085367089612972024604652089656948471838453142896575108876931854490818197374670323094145555289877312983560151359162473011080199914015998275462798875560490648588899461794029544263606139522608948502570852315116617741060225717745392421783107731783718800473106065552150173275051089685331745383304672914720218303585115714586843261278793665669061493696459049855535160051671847856221925435509030912399932546173734611258455474112498920499251176137910971553059188778320118760302367367671226635961338212428185952277270348303437116250679047432016834806686565121201324461815990064996234309856135478566423034420770650695993545337526655599582182315356513289954794642722629133590104379195367300062112867219669904082063761782516583957292213397320798963037728334073495410267684445120597455778965692427306892184641393266619037130676171970929381009851186486023559789772220443438331622672321311265527065187893774719629538805102568650222088298438772954355626292573365895687254249469431827162612625945794216925031433023432672446166856908543252993031269357509197940763648547523324489825777081911416621042527991755946274430809030106793925501968922442900094943765510559741468768108507800401633520531270437428581449953055587924957697836422639387428271288988457683495554143592186090485944700965680946533865668811343342823306614326353389329432357978423067739879911436329432917610060465573562349664812026024730631554334422015189882921781681558599129706256404110648631728575366124745989096407695523055141298830160848520740618035681919318364222391280074854577977678908929837324828077937796625289425195900373223329652771705052561394257522292618048893096449803369981435896629707184553280204579877581595426266906040836778017634812830463074127081124602066776282090022156610785683555510525892310656855180754710097197647924490251662362060836535220796019367584667151563680203171956102785783876970498979245716299056313461429264752099635037492352377795503026995643004835193686091739401413160539951338957372816274277538479252772725773513556938377123324014673994470058205390618159229712102312072596840997962090959861780244178320285604654760828151451856651702026981586570078450967240653001113448742570351146896047596327394962155646025020578243993443017774771685099245727241113909980109556133024146033716975704651503723597432704822317182740811561406175300122203616094849497609321106753679587556324035073474592862674215705410727701144533498923353858629920424584263561506248067876825129917431040356576345959446381576728734508439975253399053542994760882663326846399592319158611936891332544250301507486521416591474018156250562452696323418026759090755935198299160472906599135538735908638282780344696827581249616444502710781862793930571448199638856562456590425755668014752058641484035035706324006640294229358342482715390377694402537578964926435465718891952500724634580407098600321233705906540898655847691576359451022049995485861416877821921049795881363379466987029706115608136873975234251711435299931390908229648855643983490367541367542801381379198465711878647206979716249816844299749774299351240040510616889169920293377509116469628381055215759867927360029717268584926661899887439035781461799039592562006303796148848662704808292357899117001527898559132371667064921573119360186973215260762858739529614918712520578364653856613504241690651358071192375506317737470949976524706585412762363206117821763067640724813507513363924695203920933351224072953810273727133853690206402808970684184628968071061118585476264175206934795087133061052944524348814905998872233913262386047995182510436394189013234953411393068354511191220263585680632269740982697507443428361503662770712838058507812781358642502666729543327293053234202538171729781400932142322849532214213699057018637055236353336409632377501050058986323368277354495351915366269640052921002785622209062652552792263883232615222847945899176575757435767401328251397486859366328705035481331243381913485352818564862290133619802386820300180983659661992712027640798302802883158521705399975417448613344816479969332929380045825641709373616380234927626909365877088672464887648186995696894254339876695709502574415021255245184949944172410976139865992496965383267353025249545280874191254030652120201632875994048299082619872373689031410985334706384346248085670097183195783796822190545217701741948456769800008594070241446167868774662183957398637258921947786772585413679880824484136455317733073624371176473208428565093002612399192523597236714472025537196649432330313058856502152009495176608247873100826238752542756599453810218020058146670852464521804409012224311475822507564218227216648983069257294826505280279809649930502006504315308476373945714760292999505576621899118885549151512953378771468522453750084650113820806185714174409155840623387704927871748510956403925060971262586675700646751457582217031431475197113191017739560862526511409341200560130945042033697012555889367852606758988783809461348716564656330032618748383294579060381894613240280854862262975004278869459724005036054985236605235379301423921991739536716594356558558382631749110979937806870016140322714331952537321198328559391535548945667916689463333693212381161834266990380242958966655850158288800004538433474833105160829114922235602386076987335385494837811421632313225554536233499902395182981540410636865851089334686560803584260498518998625723920870368061127831980206176007743590333604892889856656018237219309431638062571169100668254618691334433862649708843445199377387321231505992786670567683592248606457052680101232842245580436212114765623483511194357442677786950928335251934553348325409084829658729628950626120607911179141877093061063897812188138046610851554258998441069183682983399546728661264917760013923042824538754434162700754134897817021471807879411760176651274735891728977532441377387425386421696917012639045168976507947675343178990510775062908763076739938131631954467910951831885152593126308205813384994656244574577050405011354794414333987640565711604366771173140896196850985086019495534702974735092036697605988585541076003863669149454316387495671779684456069456612127734315086309016888215898321158879411051792015521213755144254879548133596582154578627002620218074795613271488931548356420644117539165696021664793245940554193505244480362680424608139248539489747821454033554857892401111954799078244910879891318809653853399643226118268160958963300609509458740369150723885324581654721726364672757478576659197420648272469001767375392861952150319092610007200664659556791769854173974560564935329848911874502502887602450436216526064037477667568602409183631918779034690428337443780488345431480992964786340206208084747552836294153677695085304722843459713478283164924850594764615077218005635531262868876170003542855124053527708327630687543161351279959375942536493915631247391389855370421724501479067247461637524021891721947688590713318904592750732240670371586905120336587066589175879123680122564031481490386219092555348688757558619103421116458255251796972744638504366267030523758924151881774049270596857513174975656599600678990439997138462635474879233355419378273835579846373811414688508126847627802465290926168438511557787867941251903161118088798341252620222507119574633387086732102699335391294834649098620055557770726426601959272804538301567336591927399767320155380815376079416574033762371839536952558955820317669881685080815097620882660523992981956708226267449345143608126257658439852596874525592828711464628463226207907234704713820320387438120065430335733480318380694156996037713800308997262784907249364794149051887406678242371052468216731029961048480960265944510623200101750605064541048201735684171133897914733441141100489515894949034248492664650640173006227365861186691916728835000049761001527188610911417522686704491083142938245867705454129768071629618542205747241499724315272211357993707261549114027213036770228760011739136638602701012145298583076164301724930729714130886775292262574745852031518219590166291793733917926747855892180567568543306965737585730224420112425534785188117992730076773121571992425968833922785025451897305294340959806214357591750789000831371958890551736276361762172302720791085868115811666639076981319638135076329074799429760964396082871686332814557897159236160492722985042402849360602125989671388156926451966647884939820802770147410104103788006074160418073884232080417714975556072634256720729837244085740255100985346856972303177999265473440401320785551105404381226032360737624940319882047300297749353143526309009294129932680396295741674726383346481425701476976702713423245354103755991608339128135381798334519226331115478098587990327115500920672715823091119988271831478025812580312983152372649893534280928655952121182188458094949467622996084009259692700350833261044124073057343050914201216118558867629514472454462422195457290398508690215446103862858900022197057906061134982930667034744677363033928760813444828708650105776997186694479581427202593983749174495488028581129898853237868583887410363843213031353854295004612605801838428233866028131681271617152715075079505572221186925540538407745259400522814270103395941628850206182742345737159664020343011492652478353181900894789426851613449111487541777559412381960435513235583099990714515375281113972287325972400476483303872343652838154917419304203335964474165044504555764997559947653188558005889338005371724044072573096328159707679209242206904942382909748501059486253816928298863195316656113146093253314222288854763475940545916521540317777335562081195401591977887582923224667323284007709520800399219894905737699165880600034001914454877024042347354524742844668873840523394522311797488270531967265546094799424070410856201206465135683988631404274238307212946969336960080802579425169785260028480878029275047034152724138973474958611305953652332656776338300235420681748466635654912771657547476289957053741934004442074346549440542261023745205056882591291797381481478179808096936874248749026968263380971791575029396183222840896343784334227347153864247395745092628471775931607608450380435709422381308621003541457068617018794953304144926662075064213685455646552751941637221506578423520303805513106769531520648369454947003074813001360575723932530601004660980076035166487107193766873456128103893026342058169903323224371255406553401007054647836791166703211849411539498903763353669391359808741996923359059169481182731978165680988915638972552737517901933082432156738211080888391732250963616049514633268293952991002896846729172438409230314879411500338066027426938029577317126216318359949011824964632523900764873352465723942737008173713288931848956593939414296995290621948025069616131151964825360079217187280307197452914192492512308277942584296136301633852490801895457348577958435072596946604736066967103109891875929095656712291674056911377146913902467093054832948983886150136324356004198506475816402813378067083517698412566943164341054804120742978225746323433988722311171121261108802189563061357822835811507739891809157146064057744116406834058855051333684317078810849840700228777624687850622401093691379236987220035248418999888966806638635480934914546930632212669154480474787138298857172110114561602667059773762321387531663194624732764134836589545422392640759289951656031996958105819108809437217038355154761073718005316566784858732427990073679332709643044085635167533875248333840938733834560041719627550829380264035810043927530966935134549395332530957428124409706616201194733207397204985523250487701145238594522917835140342196794247304414786626105100432833801921114098258652205332193451792868964245565902218520808271919179586469157535582357424214109832453850665837673278098266765579503759370621631886374504012280562141564770735010901464428091955232660155978560262804989691537507690608332442219115955197054450679363565697525444853151660542267296057640024776255502647005976470524791250568492567314100562510437064625255040103496092967670833948934770776815061585329999963300261405547521274972595232620006467639292896942049697988286018268783598845479811802666910860412502305301442937306134914945936519313875926332347655002879669761384149913257700537746119223523775101565981567272343258727913541841052908190532687385889062999485282603765826843511947989018414034017574216243658566856257649994698316309038452469283972771192632582631958877579157249316285739246346311707932171611571131648227220257225957109666781676396795015279083267005476356732644361695180061654571582992217778341428642579807867857249874694222771057548140128413186686342470080921987303247093263449760099243918958270975254709300820247589645039784621525518670783234678797982000244406610560584289531975582983363009084432228523090013196977202605258104210373456837539983852377426204837713432276750037295482450938537940930381459193651453285675840404573320954214746858386762650612585375893005393689212898744170785780074332800941751353733315608783891272323643666981520773825288595170935265992896419726628726700010265407652059939697971189469850599926496493792850322202265624654485809690679348112949653956147699489466892379328471996560597587970259495446541750721102549958326183639413396494930766342991699688060372270555398816058272935758308796346327014128737776173355391245528263364708247999869630757533348763067057040599820159861058729466699529085615846958598413207023238976710739807231412136204649525820887978409793603680804723468544657322017128246723986515188257412001117923947788956974306389696178116216621410250831325465155783978987326035554450861744226079687497865338634597906082778607523969225478625319953915419920941382935516715726268524944339468363339598940445665496750141398845634081884465743451374503487126223005934051502038880814891874344085813239575574703834062451193983636017594744550602218045810420271322618197735122756509241736282768096364802879780142042579319859260286457588552586026128898221432650377198440411553290105633567584702145788014585115321439873660688205580549038504297414228242991023460123198051532109589106182060807753832763546705900527825353122453822239307726068418386298794475519599073813264162522037454235813701759932370828634551242561575219182442928826537859794685212044441277958230572985005211382060128109882517495278929948177751425000784183669352876866512409942932317824288520121145572878283432606093805714538380141784993037225851735574868108955870547686175005120130173393620274269329842173119461718982913952091698927730699614940975959987735502216747856906930673644808294982398517342834527202819858733739785669481802672459706866043222554776418756544575005215100131302914197414486423364000637297927497080458085421330235717204387402866475334496895864216237161752178448446008213533529058224863945247061971592964873515589249976129835896481070660412623674872238022793728307324109389235612796989580003255860703844989889210631042013411194727817917934155638109838767466696099226314163134350235450215898760899832624355052871829184267986480070710358665818835334034045261542247239182346505181990694572536006212008715553766062316333241579531615136868393213163094915594928181695768079783875582795784657173996852617372363722877775721044121623709342024389947355321544979761659394977376142845858148162039007379279599891960504202646767298805706566433025412286979365837296810929149387155439604884629364379161344228464303189264025721788276416006131440564515346969679936819338419203699167513625509294406926990590529966626954922268660489162884816517155880918158991218620068116925352067518678143744631581662888015764925186656018561327887593480951170635375096812667805778754070415466631136347215307492821216604771919429464940341868269272855163306087857716911473762535436096529577333114340616636063598590583473038187218243901956622559553677887661017923510331041541839952907990822429381588907580106864068594642457583173311870839892198425276813993565164660246201003322865863591226550030058460066479284685738770481922697747821476309696277089746337675858240631226142951814477662605126292701454049959368390677141272174811404812530371395895287161267661005371821683034343111908371385545620477120062983365786438552451689428211941654806398934884693637252471207345044504174900879937781870224810937355337297945201714150840592290161321842281907449020259944890972023087357500523414314660471759072325336451316846898518707505090603567070256335157071615980125991760457266213550199409151527146711545943889993544395583394787866262068540265982885432397118643531677015306966682735951893109902242026094193927985396613062677378929770521490196402792498278350769600694814311016300147408639641771963981569220529507097599910656910361782429998054852028102948482120939690123877613099607317493630074696468537410482916447203419552882603134794439483300789164419298839699698303008427679969378032726192216013493633862633775479888306324177464497050194189928997005501460249614051620825855156776105633458614345873735386449001364271660875870985444233087381155503750712996346748871113015545912752364201729781721899720107158615221967507432438235517165434645826463069937137500561148488195188967777926790534502434990921325636458392573958453863450764630478655432284434537950750125491252430656495280801933716550455831631187032945773656687543740121172594542653242070406129578314236835546512323260438050597262709901945210584442548398920771658625553913738129389557962673950041505145577589275994307979058597851120366336596451117936049980409036919323629551675566644876715937145297807997647835129209091003137842101623100466856167179308548820659646801482503775862180274478458618375317488637891471447936249830528609254356321783559534472069787094836598523941565128834035778771033555917242894771005396985656728110980775704331227468825158983497380878085905471813442548704614144334716027375066080276875165583441209521578120350136371627895175326546095816336487419065977173660128822268070393991882934600466547059197646394441509545275333739010875573584121176008986564309191489595550906268426660769086365986952434438675261671091291875746080595438559573979277456323649144971526163326045540873427342492237657882584682710105788557598908652415492928473838595618320134682506460642207296052548364752124805971114329343048805990121429337266015604933485346609044085703422768257273075456502528026332947621818934342173272257523196821194977105108609204830092182316268059706781018974518140673268498472007593647400485814149726823021143154886571621899031743973620614431791282281708174644972417818926185074042253267145810593885278666197726193074983396466239713740562686366445375819162913149265701651854268461092426763998805446001304875011264851784826511379828520509686963316124618207035754829173096108949076856914219174836053556332554781699365658038669121724436289558290664342644686704602712432538010970042945888019642748097675361209276136151165483675219365397102456134125479255872550789615044806072478100256572053451510510155216047776805402200735416848038006832699895437253521558172380554500010874632967738144179408002787920273596213939639862063413160665328301356299671245922225303802579955507967300024121713816187729940238447655951206436355227434161446441162231074139804947472409750323238695140475275444396271557568424029988182753875197015697426091295141540580801350122854960425563530627012656558882461143286489930091495777897051769122036844310989638390842576323180216651363293698524746668399759480791283879329634522784493300166223546356080055533215685161030711086684490260053199521003032113046795254187863137244663115992983333311925642796353905837216597876962599857103908791236196385723598262862907646371656564217541465235113795729600424460586584722514071233890825231802195499511002199842546764211749019752250118346930100198013427909750922209259265821068275194567406770346420836153076818998815982601371093529456572707646152519250815202069734821435365063585968479275341200575612111520553989968488529625872151382264109196010208596758917814134712391812547877040682828502376036435128703952233219863777664155960013377885799367927317188478086777219583129715956842820897608443200619795655307691527897771560527785754093395589644101973068443795567444441726453395767501602866844658884253113081436592205394888355171695296221850190695484732730125012839507202075571480617312812541356581869598779212663200828285200478144068542056216612191628595571425386672345177228518284053901311885741465945906124690068143018564925782708134634479145933327408300630245421869622947259048601516796169008609564249529519664993406742477372943553988724202094067343127346007464080605280571928969981248560752293160626513788041368171033847468084417812662637604638415567969601372817184155155318807021770589079213328553293170323336247465018452232743803144102248328721011944958600880590782708306263862611983201599888010108684265720272340424552478749912284096631612206286226457230632788480087964472338588149533417682706658629773052506587527639997154583474260960173176978248365649576866090425090466840970571196616776594124132275963178008482253050201104908073940931108706968687728192399030339108204630269812023836285795889476770853005553447688971211887557440844460702610695343383485638330830490521355804067481260767399187754928038529011205681518406161718598507857820600851134965493957930933360309530799748940355684479803273743001810756023397209724499616589109673341554557029961962409103964175379116969196610752661110616052102182134122193338741632408213395814232619768970640259824936333704392757873253058941078161016961932502890472676294710171863677335509805425599381079054262519486487475147358297287162469348775549031420800480614403151666859280290023716330932586984680383762233254892931379172777320664094927643035350444994626839129897998403124513624009319220218199425144008179391659056497129577331635312121551891217312438063810586098280575389689227460182171265906982284955799627671818758814021206335337653290691549980246572242575777484251568026416931262115503168179186767116678108633940803946889817624659378076385195689127675341580954755860958097331037540992136817404373639559323614197642614040425388665597233294316385497339702911480063625811337815237033658800612661409965037454459422128460003847917737513464783688903990457051172183603920720227076379216657099233523199034472242396974184663192155593886097750071928133756588955235443431628627087480120945944546252885627947330118967896338031150859696079008512731590838022121478286699186412639008517641772463042213184481562502517211337829692654326011696086739879833081914602146327440733535351147968553589585124766898290587813701010038096073038000076468550477437024845814582837705360303917958339025909396860521942717219556314883211607740700119603035655720888312237412651611346029966347941098548683071723772967020748917629621608399254622610523229541529969906214567872688505163506843421102968982467273680177569418864407798267710912382520496731020988866250210369834254730670849970259396478765082766112016662659541296351911471523343238405758529809680071775754018181934178981547217794223967286586958219921967732283964891486533481054873442807338450553189034136152067706686878251128237808538312206916450408102715783595657827663049443601299156299322293661190283635776680571869374778833818348300980175937298177924571677801703408847248386590773390011298627757449478974336167164078888012763847399335899158191941488833960625095873086242251872023844352002021315844544102936007657761181135358868540411830911228115711805434880733264148722038189680449131996081374609577205720323570986752585636281233843993409647973195433020907354825161988294142248799109370348719877574911475635669325965184271321660932739317944032737524653639857866052681207278987583215888522244895109055748651507591553164893997886634412353577567343585843024637288439823972195500982296506478198324255238306580687903056274563613016504583698319070036946938635097544160052412751783245810435148690240718865132546449826467105540334935193898289569869923181751921214217243411275724349171811262027280346230001556116196710523125833079044399638030293255303350317284967767321506025599765926911943684515028923627104597923470890428167602907691263052705126762060344062856734124273808197223996267943469543239356876520518643860647727101499771608558117765710369943708074766834548550690995748006252886177603488498411140271308176222068365141696368333646054270583306584409681295213989404928976372199511448859037928735244353096234639808350254034573064001156348886207674036437990372005881490664250870765598186051170611025512078076194884632458083345703380756745549592550256160331510531783173738788551272810141832322578099315118919645219256957187856001032568369714263235812602661514581211364659328102795626600176882522933921863582412274394053785360973309067337906514602762620501248129201969757728991068188363531949591948410240439483465240320920461442963937492099066025627654279373142499771833895922230973786795274059499092228862038783725172621970567711398770148983780498903478883485346964224796471232190483802167272315266087886536439840296027286924813081207720095529365042828501101676187675904944950118311860215493563383952652285968797111355256445162949479687423154728046095782108497061116653459851075041035477063869956386560068095364195741499136701990904982077047104664647434079127492658015000921211275264924861761062460288473342964052433132735107766632651196355630788868746950908894940595512705242490214559303637544485365935934594884423229357515650446745779404642035754554439577904343168585180362762958915270416201264428923778847069981593197903368626492311649431686856440326883206528490414874811015872605167033424300233147585802971772495100254338874917846706682089518869583528139606121584860529431541218001143270497388123452104265832530644661421791815850724661480912010161474137224837096195428148084317867482970245446675538366749732593721101441252146139384592996087267357072905000893002258440628222183569162298498663380219300022198747137182533297617635647832661362550175256984936219398431302945220724665688637181310295105023761161326990509719362135751646125072606847900542179385550282636439977125699152873145747773551899472366979803716876969257094700015836582782351411995364409906631457088720157596786167486230785990811045823703388488532283931869510312354598381690902587635796908290782960591249241073255152109219020898924493514537716186854174837451588463378437773811478248583421822469875868832014575459896591461001879709841653707225008635754690304534622258228614027043221288372456865520887169239056716330490731823319084022326368530834001408201284578891923240408658494503300405771760887727690685903573365936332988631395048967113091089862736379387915217019840563986579684131234446120015651242112775742811897289918186441153946873975656629453800971558934983726972738382718515634278288073788685526922251668063185860093738206016139292977107016299129081465155345848000736207828994114052283151051040305437813264705621678165541722205983458698073686496912580727532373980289876184479597077260071287375010294088813776421181061315639749885360002175189612877791829723580868903208917251386027982808985524080374240909460617536887123150802076326121787489268490115533182733987909093884566980917872944680695345741678873094301344412084764226874359566543382306582023220709178342447139741420984037901705000127723852025319464518224718057427658607527039696930715583540502258935801349452461844117184751958366500457735955469308049238368446737823629342651043676151397475387309966676134306471797697279007966996079683968984931632330154669558114223244837391496577963839553833137702447172841998462829990216020532820524222636242110984895102833882327576923325314498716538070549415754382163868036023704991473816193719631749612544494677348341270604239684312571960139867687522372314323589317955863280320628410067436272487703977073417320656339441699364221721898474794366281241494103629683055508006434569500181778993580917037998997053416441542320325741308590952112529875125419129866060323900054811169691300817870832652264099507911024485176008390681609061801356341278272120669417833664448660752364972649310542825980726056297451710485358054741777641596709865741921346604558216965249180059668050735094186083198865946273513994022771548497356199795486597427454207405667241370355110283475653296258763280962677567440652439385826505508816911175768573777037364746750689675874512313845746105803750157202700450036507619152944570779781881143869639751162282502933238893039965287518322303441376321306000054493882410579021249427508534964094395919179815517964940843451403349994434848857200622305863779926008198104157484229497035326693102078855205577068007665998727973535793377134663472840773257853230661632108085128769958693160836751917154483469448550889007000980580647637277106460018295898308374941378535150874302486079061267585035386550546124470056896983528569951001024136201898079391610730394051825076261920578904245099603830386956968813743491650414517924265819093080896864285282106130844941779680639544518135775636623952720899882956665360778720102074028649788184921088853547487252091676759186154656332938949035712250118950371945501358278057656166850233207103565205234456742430856598739323464817276864195071089089717854640597593255773289881635018743126987849699805584079833193171078216882239602606562733242631041906142057129073760625641181887307845788921584415966426454208335354631354805767972417816784112003658678274538588542848004057561694136958489445058526507782002462650328202182553287603491518947000004179164977550689994531591367151548026839849601251819584853220187036834708473041215760477849669917020835655337857525468382119536188528862243131384695250374582090306616777969341387246380098658124362080663638613088087087441726656510601097999659276189228874184182470157291144593891956747586164553410506417359787386529381312891760338953265365588584330814862876206457335924998461845634683624945018276626613733165455880720684494540725816494907203843096089883424893764694570302015643595084620293418445140030053669136129656903161623303299063228401925087150079447538744311096423001726048332837962771085971966101898027210579373411411360281372934703095838418714612186523471069285200213083347539762004705297786050769503969961660064881063636466255042986690307474673550878380614627494383040870775922890266087816335673044453261152616356641555886584305685756965784498330697452530885372049144543433974725481627053996474663636350487382851619803679269844507890827226396239954593856851767293722624555587051713663756146278214710479905995718412402565538692834241125228448114759938565969629753375601899488746980018724233597214536385625997127831006033376329578645684596008282101717459973177410645113785096127117022249245771710508930916242611701520455235235272153191995967407468009287991112157897791331715577349355069035546720902486955541646721777811727001988616458440102854045207841350242334740700219427771211787236103755003119359969877776543182761866929715531624119971621790067378123678578685343687465820004377990754853793230506217470700447052747111350950059442078116175534594252121657005395791517907293282175340244448417779786304765088186914836544619131187983463700408175134109853674553221916537134607443400638352741638138817794645694990379619388183052577002546067653677810287184083986081973062345158689783145121202785948921936398891916880878935061998694908502364876171648644122427107189312672668186811670099673310651719566268695304914601212797619475347590990493402400682532101416713591226676690978080531702082742166209055536290652370531026632336384111791580489808064476966757550779188084576610654356217448078855747911733743513341424760706326263310455848457572415297764061505900828431523534088822227182059000195702495328305713586846241912589092607779634789072905956409234882862592733434605637604526707644312909701665246059675559337766697075002118945583223680965704291316376315879113361712879189889068376683724975679070963328611506540481983338593842941018137257594590653849222732980187483431153741677402231397268245036651571601179229434843217791334673520804027516276969934652552517858407303608068404642507700679873811239765282951993078864097403320682978102558286915754890150464493965518445325241977436102772686948040740053539239830628897187410502054911115686940744487747076997286942857212694376940474306675792442047617687972435283719730672472345819742828066183348879083964196053821778158013485794339678496294141876735775482704820477378419924490365956812564392255014267330745527122589732204844947090061395596123913348900197345827743100691584616738551567833162896993045828737794578654876365687826820655096855508168128099425640323731810099056093187084183189809048096478159610532398895923286864736835952714790857341597920680097215477828681881656741535664837035760508582592445384614089603062201023022517288597445693842009090466255111993223472612873830604624644671929470009650336795672897492002149395847148639231591566812982664829013770645984112578416698100366453234003034245761469730976856847140317155327865616348332795788159337957164198599697467788184349735442839143747682162503284643782810248365731701541371953074007054042353077624173176165511967841242771939266682229134174500418125689509188845826123235954129795876739308967585142183639495386874428512304186430543172544138425657036755073457484092654717394192502981061600478159904051138717316386753371497337322086456166499946290818237896422090200479439116155354157679738427480418969058199365457679062485575124250818859360839052267156087543502898150227202850232315999335511937999610564642945703863556591118663339010621091469402446763258471487287405905360832723344367105213752655327869223972505624253104830798800146613590689631747822342946708625371711339090574762659113118195710998138885160925537394632283534132715860932221171601352507634130990638363019014892750829088155501742162190760923225843199982555862580284307609578848222791494114079523107856006947130218740983475382636972371938492484506292476907974926382046620654688994885856212793695000834802418767347331346342212560610491733654866375084027480458635103961874794009298380564767509054610469510006423693654033651187533846944584716260913910332559617951722289356550915382913913915806209350967792939217435191459504365719264609342919656185541285342923798135254002091788563803771482738323201867814636228044345546222299752217610091484154356855292049469882584517372662688681727527978822110012748574347207793070236045096081928175393755396621245854837909038390594918615697879940030187475373622536793696960199996200963002909908924988147943581317640011518092859717827419765158436803572565603384765648625486814030381490002509152123783992981004616066308359148784018378352368374010055091480976121591458653210184392911249036814921137345124824312203956773404129431257474828999257660738234150066637965567435683260731664411150634657214487371096321621555923716758881769048154821492247474584167895689170655390044944454202744480802565532728835090624141153534693901153951428671344223693093245284719506576166204128991757219219725356431867899317536405936620279646322557978370088106224860131889257706029920931486318823215313211570527257908988025809806108700201678548903331173039196849380772904432314416089336562345178965228972826962179627794183730526553740666967336415155711032127262407404237211602023076830299234319997428355228927394717134286740541197563164302251997682338482492068269174579255244540222930465025534500537892841838586013747136859223828523539894121309613972961110792097066583077488914723928978249428294917934502235335537130317443012673073304405891809906573219804309457756111953319042348713265277622979451435285871719098222197745885990419519819401522122190939046491567726259247675295786187607363607784513536846514658093436932480288369458579601800670886006282031778662861524300013186780579344531417899219479824241099820613667952882993167806292227434127349220048587431626950174659640388935538991958749492997619527317290841679862673887102900663767408573345857466323610633016474976472171146048511064175750776249497155690073004215046721724667324498617912189813732043224470992865052491555305434057502760781615054740820966829260119987482925200484641733003894172710264512719954729476306527616055030111552375661726779851448080772659992647793510092852008576559533358057761280002882635345059164098657902509391023934445009034445966079299249660836512198483926442403257780333553568388758623718410760962796115519237653545543118095399363205859056120037664242512526430159107666205153077277194352742832693586011168059421959947306473125762147177394018473499690056044635789013477292575525425750469380723616184230811827993364468558979285514904932873723685454276986901406519454308705827340094020040787673954078738200836881723120406100734247930146516052943872032375064251664822093279586957775594184929764037546896934261449699779260111349043986286524867035279698867017131834752225421043083061485062737703211660638587353401246744523067224230336374595824585349633786352747992025155172785800054100278364758842309874298145413621438249832193484010031210573433710797009025090669045936147983363590003701997299132048317391973876502294309291653659292962045783050572626010720799337152862259458160754099576192741911174923621048206568051211324801511903058925782918548027197842844712351628000788558901961123759605421492327208579770904540576568820663284912814900296855785546591141701285538000935377857897196779751976852004935902588220207758282818756447929523690761202929798192901012735789298136152696369566897361564671787072730969994330053163629799252671648019503839172396995319960707943134356990454485619451278943244726502806157677890199264773419537067249947827658619246184291660984153470050687101259371481035474560721280296270387078821263278271978960900640493100029648643385033243614092825066298019489554036891640043645340905076314820659129251824303059600947319852680680989264166144415977119964862891194315355708904829145576420585691147216571746641271499606611225199246612654481234904397435484273211180361449326147100252544348108175436596216209329035212661286620399586923982003442737350104487190541532140109236092338623291265863912352185716441104892806364772756956660306075221141835146611905017172390107890953538060844003612259798739445427954216354722031651828573333887081969156056511679710705055651700775067544472349941588724922309101090218058880845604703249118133859034309808430942923281170042427811761673904114033271159231772808365689697109304792235327949662304011001703562523462769382041944081387581306931093534125887414281704073378363647126421792762125021164462821038953677044051381723822274936827722341807894401452877139964607324916697023528302866398275599172689296413255588991506054398679333604848644738421880341970324293124676222716226547714044632917367626402099372476804697270612361262692175328568076017777657749337048313159850835800623780745486361053507751947953747999543765799495982277389459398670410123681522412322190911355851229092798603622707301312976003874248577216605623453449867048868512870957014888954636391936383147637823926008516032999935995315979634138713302754354698825335027077603535270988932752232323994351204357215319205480531241264274895521722911444325984531149542981844581273669240623396215744461182086842148744173201547158249760124818998980636354247908483509407128404587891054769563378176863575153358123510908923813151649708049295689342836959465304741691183581840274804771576914620003516689774458883315538929246822231012552731397033260438086612555534780446855901414045622949525325098365713574345887770168904183848122851918967167221155532052141650905535720349891170283596175641171714036296987287302061494630980776828945772228696071374962262697709446938927446537788205711486902003375324960239014768697310776372884811195676849296432680379174591985251536498798473209052707040128198733146778575581943039656668237680682331306216520294898541468194611475306718215071504830670667012229491776156576335076305373257173527114205169117123351031940676911009004807199885601981939595611354711159031527557466443534421611956269578461072075130127866591580005826350783143753392728493725141213554423141115708783770331426987136251051193825627882079807453944916546350577520917363856264872970894514800798293500179683718823528227729528535582631017398614789434968181964308902377626393944194259677644575841852883361217170602463716720461359369174543150566506455107593190822482290294171451017243986867414180063501356776757288855904814170536339894071440331104884290783956022992804906869618763990835233770159283939953699361461695694766206719205215543887528221900961479680494722064391460235124875976928680568226637669296375564804754053703290976646486080027816878577795019532194369876992027507192603183620194724157416363903728318739580670522818126069902360920685804626542259740924105053396217148456927809869191111591454652945499013555993253032259304131265677866382692255603261580579921523515994596944607872944818120562774954207442054541402357638166576356710072397843111214541537355570025391050222901114298867978863539244791647715216674152250804282619045567942968880527278920400553983155340745388487371084191176947327045887667513268487426983370429653552531840914249536419442783927377478146574514727464243263997754275663102339749470748926123324095903798913130659476214642695585616679796277795602824848403469127821288344135265818459744165258449177048035823081922806461723489136588848555651456325108864057338855761306690990369352680825880609893404752124661732912112350612106730599240365162462400937834227663681825612991163936284807154731531041550169173094954046063256617583466956611369655943017475086628103376188390618615106189737535609677491520114893644130878794489894750690122196840099996956275578406853268326102223204863265800589518287376479166175095788408653463343253431593444656243747979700076630058511063582842708055746714447104988578966834068161435856989511388864532818003637670317092418920694201559777837033831961307925235444669685025117689797822155337244582907152183564798780858916674468739367580603357661155284180756880341999034587847676575442747055689149890751637416620403341087470228561046897981582796433140436662808809639936996546010501832362880152908943315489339671975551340710534552111555128849513655336117834627882798545791019715532260957691812808004690386737364756858246077273540356710411700760174218456744720312409197068876291874828052185763303263846469876578072820465254681394117319386606562776066516399185421645074225685914951740569645594279682332372136116313054013010967186735469757205893420238018960618533076946964451272228075211294247654859089621257819338787239869348021568354163277827109071551740308636295084670591088665755877783666468709900642355992129011569732703373300691364264884319549243177579608918405735583144064760728087003901831087743769231301687857393854947940846871588831498310657451291563210219356327427022026897608014994107854813314102909904514569242359625375712557146699725826385839520819497667120434633991464304819880945243753831692653962429584298257476226982671356491627752594326577732966218938048926819290922999667441142576066217295014125688673959553115738069589432803072094353953759338175156447791202082648679596171461463998298375772652432550876118146033546986534179783735808642236889422671820135192375944610302409080048105255811909910179305791862323816021710483184799144311409227903430807731601803577131183411593507982916309545491636102832588796981597482248041718184666642118404953710743911699098317093414392561657789031559626583050065246022476708121629281638763048259519075721219608600804825763054659298520897323054820386544359856323677685933440659230491488092314311039189846984019368229765828018494669511884096216548121122581893886473495671762193885050199828259119251316105861125448943093996540187679403682441608234262233976769118140505521237668699324483354825054824571709435353217063061822150225323248903740949615970640613369879047736147990803771362447188668365622326701161172726794540838007850736758959197238791563429832780980490400015635167289017580840806811411856876272329766898193908916657838548800895181098981710722035516985539139424495471348090696589514816700152929703249574325501194630115620167692128770460589099800547431267915697642507640249423356905407283698435021510562298881197086940486923459523305575869941746486840491300481333310342026710411543140143243360613667026905347360769917451057397720320094931961677646514062683722385869026441390855542187545376806388446496199895116472533878391590355692267207188943262860780732813951709920319903492592019831732140523059606505473638870794703637110343690177401903557619233671216851390773561500657300901904721600843254820149730339735365366483774385829610790392344550615117518219801792873982359622207501839315620246338709656117713978847072162824202724992959578596506720750217820689655949921436389417986143828267687988245114069482154535186231142085892456535326295456569127975909587452615206286582415938423553242255988226671991689407530007117915115392918240805324735108614162200336188669868183429996306717261969099894299921512138312245649330142791954238366406872578950510343825873276105815179692807590118887162778879035653078053882860910113874515718238913652736354113733614111229508694316326466233803833055557370093749200121282050101368642645777167740801461041981256880695906533388068044012185676621007647373589254873233206377592577045498441853715949276894306211976683562586943317691010876837128848261564741416102035645094242609732129610391146390711347640337326411684863777769904072700801828228365384764099782178445217831875182323556711283670924770528408662699453247451029866248963859139662421960251128887903892383637278882035441972835182007361532997963557612597430583913697775155107126943810469351922044210241786548036599284901175428142421949191027509754482475406021834825778868071320688262797034223287188737693944652002379003345959814088323470313502679358567394516501004943295945786209843467403591460065006543442783464868783719150154715899423939553728625878012008567700017475293313518199889822703858811643184998284691080912515979400528080796823022319690601095131451237327137361342794284699729481201407035277551193787739391825008206828828213388456061986737788535272965795254396841420909438400627070750778704550023980820942342137460410049770631762408652258761228739342132477442334124868414599823410401370189752212471311030125440621897269023436775603234824478556582444747642848919351866245522475583599131488497096234214332050224422906843621695932763628975596870489436574032300855064364748316280214313230605690473040981959212622080810781458950765875757146765414592492098825243043151099446879938354841307792439173205844797741958017001051791512548074777189742476168641162832451005345621016527432789467575506595647949210350980312566563690940622432243987971267942827979886458332392532525302597281866743483264342825226460051737193573325872118137698284703301764799241484256387894076297033550683525682455593414443490604476537863993277121200585630378925426821719587298839911705866274942201361495193173705431100463032839844246587486497694074242520321395667408331998539956484646938252083011898024194807267049005331337958533684412018611420741039719445358089034629640747815999951962588064333465151842915329504122730062248744198059205400661195203512427359737637117476517318274612615466673426249254772888361837850183379880707110573079296600955944900322736410462506428512024189612652187863039603068193113011882257828993532201575268391830102171974194173651006643517817116391927413769939028030015763313262481267485679287360336205121052540921575330704732666561960659583124844193853227484645740698897135513019952579674799371765802276760925774527552697857727972097157316757583438940195021129162520551324992107183872590864087316453244240817462499911567920006018721506380358375781238041591303289950395573449210839971912157731975276054414153928985805936489625394172246024512743120388437101880709182254450608301734420644139282551796766977163237322363620302804745652497355859245032662973084628790858644867979862505845081370960192247398513001274006228576436204451447296864460033102343213328437082620714391913176634928615394970106763324778479049424833090320686529884031935051544947671177274963178326678980007494934072338407156687713665861588070717804484935219011728800974185843056805095438415307859516565477673373101718230979584904918082871287507393179050819517683503972646530167482198112609878919960558816947422592633116544408426036660966094415633361377279124259757906147596389846315877649973002638411211160293406337311227649380942313782425718627393981686400200123853651360287318893927277429372086903671676817190342463779454707633643017543070111911351029830618710911010533433021690888416424993767796601468483856660747183016953892231712793875418071546054325148814676829377941676699411388006920383384495666091056727811900446030519779447156251476795995083998345683878255216250979081223076956849212874927650130317020479348690876521065426474488500168826593998499167439521208104999100883893601965809577836687915122650994664491163118252710560616896930694981854877810727028745890768726325435731357833086234835155623246446656465573362619089223055660170357824985598837809329747893685670353825538677243909938853991703307829382126633336683947759619559711787536653147420459715921961349712949286812354848866697456452837600758217418236444151277074214861218043620084473768366791252482581675401516434964774260976317704345510264746903873260160704973645032806876780921174558717751701061850335532609803456778169511299852687018056493981687227175156809423669050886934518725017037022505588793450916004816878650227743166611804335455022994718552916140516518622385961077889934865571394264667254090635795755969901959261667395763250342135721682490057784286914461655759603142223330125364370622390700217691834041842707608262821850037354716781794708385847976817419376182926483311430070701487097156472263112814430808513925471653276016359345699921834527527144231946302768432740085958274470175316446292744795056542325557674164718436101522928496817424568264146574400717792415020461956378940063466265074030469311715699154337571241122158074708139733485829567475727276105289598632168218990379029782903439678939608217538008128877697879636181543883489053252284471786376635953610117183918297633730009952983042607849123356683789049763376767340935378487592967706521621228028763429610465758836265058956728353101043638306078442700330365640903249181948063821967580262059759739932985108135757434009892982916166777082123486869959262467580797204496790986995743794446290538526351995439284293657339743665746918531140807852070524542766662910415682094042766054910816515807904294624382296455771242134245536571853466782068466388800150694189224152003305647894455026436660653105750222692947251275337823305307264539247631538052233155147181069185103314738432641616082640530151431358531236963123835194777306730974774503615259296888668397827935309972295114204682017600692907573442454795435722984154525216794554538370520846391200742217217886710747542332735647967566290754180167277115689475223126464492773900129979695130252125694696420328069374644965881256517185627816882039120360541890664893549469640491723130299651918918267800071417932291705872216682440249264733319098525619342029532207425266729003819295474716321158279434358446996074428322204466716329004999726737942877145449620315697618952048088729579923746002002624084618103947103787253369920733867465191543197775173547761131204185254457218098822305752407503793459075207851406245618390912577140055813298540685479832333550029335001404482763991567248879288611955790306257941962571001628264558823284619358776702929794712088787504387062929844554237234864535438387380043979809037645659264626340351349833888824540173124503372823328249200644532741641825890906690505242198841617405637177551893432782704600779061058087976409304602942896383950228334723330405487258686966352952724190126092226559645497571510585948524638775041654482700365031761692782525587588526269576091092302220707966535294495302372165464989407112746608867694278600502815447326714661511713629095927918829493458966593236549459654761590972886794241836736279678746875043802266676896775456789052748722682139236042202820555850031668942323556165723568078378768711392303090448758850562152767711289301033489404358447957406523566701932055072444478678025869761615375668014620994548027143225426093453589149830921900157595898643375228164387109956169108793948124080081729015155558960060139173759740548817321512805176907317665606541323212720001092693214676105369068138132169863449492815972172979650317874978504257202362752999418486305087102472254388258944832580834078670475243789532577314491425045271401619409814370431744011163308961272632020577817678952708057187940912067523503678660139520019455952184521943821738530227387654481328056407989785751932184723344640882564717823804327176646778618355087397031853812866191700580186543282045044172551397337922342484086100200248942074568163903748589862309659033754296082940645409678001751784648272610571665204346073221815519821096414708348308203579223160222649063430334858190565186069869436159584282328407397702706859725625407438257237468918289137193155036157887612775235076240287814588477427292710440745711167304374801950090772299884638250795467918628546533120756896166947589559730214191017400734433523625200430452079346392914543526463753545406094965190062576881895349116492828899590643116092231516730405651560921328467935341077302379749464496254264927608808880168309995435857518978969898472936382069211921761616485681218080682607733341938714507371774314822041344360804154760722559021553987892972299984173465525829277967476581648413779761503190426301309173790119294152968164663601322737004124489991925347764975391960998541969085623553102213708278639470735448071560679998688170987822076878216382995534126475980486176564112182419877996922823403993029020094124740384533060153406471230929215821743921217031607704034157252968468029499693241792132215860636291688837528263862664153443148762883215829342883488949561170547110415372660579919845487887475475225641278460403969332363398078102178778955981948619128161067807016511952371253909305295384811430667910879335980095059706735365022256023697098032499951124646381418658589507990117519576604239635146259065403699943587061328697163251072208679764382734389409739818799941836652703933375768360151248397029839660854349863279204226571642222095440435300896449837130274038532612937424572478662746493321718030049048579883575691648906310038071743772996486004111621787353702913443509516470333062018658158944746810604414190995793317641808698487861283633422429660717363160527605022835676449667785388436768589135772265239796098572621827017507367251227326189091836124146410558269512938192954735893065519037300659768364423107994364395583012485734904341745323041618100758716357793221151028635943146003083132423669378882006292438965658661447902855196495358787458808363563612131324606010227675674318011525446216887778086371069189370725662334390284085474503305281979199716148068277308810649016575488963520599076749793695393042550398579189552231963394457674425152573048860174871932555045024235037695377565894681245458008565024397011405636485716493843319740361798148489780670820563268036911378088866542359587905073261210747448664565701049355957060493801265778205791994314501984039332869194634983550451445262819317812573500058921947805202542412264599592170264162254332811689959344030428245833592972455903332201181897787504187530541297884719027807312144667608103480794515421681195028520074949724990566218115839543996769850871931961336312061802182629968266387294548506831201400610271564393891148653622019634642976136656986901535917908247548296649344460047167759945109003175522105792371049486625423488894915166782167719393111359148346705302826792425728221122952271477271893158106396141986010402093622767173730183593196265711927070253299821885635507735099538178926160281379777790915104916461206346937662066692932456151784207291717055707705320931540560847093871141606111687379054953820084720951884599622387215321963869266914142099294140775775575449183342147137706390640139909091518180398507314894628880120399387925561008442343378010486588048815807010165187586219268872653930362858419165226408870815528919063038921094388912675111749325249061727559327411482617864039969866404225083238990021071646569210117631763514297823927864789800619122106408998964245650757170598347381084011597170472329659822912860489861815166356489498521501288763697786479599077874101425683793421955667947537417103849940774763716084529398464397315701437270688839162492301294452155442344446375414287510896340373554839366839592753090947621124520918092300373300548334886904889103916683886715509301872044598869439307528681808116641415497009433687521747651190248057929874439264655128232654442303864988749028210112627431429572323643804034303263898743900453492373960522356918007786849181215474174187592698380153990975580480637474482745352050929766527865288753844415347153281850266390304283008976017154195456422554411872477346616810693400581181397790499912299414220717171176187856012096253705707584317616063238573745979192718207957374581485368179373182240397203215816296747958847707927037814663287093659866198352822448222073116675499488229249741630112481661200159908664566082916695192114933256289235530233248777327919522371063944692833371371401825677694722977763899730997444846220255726727929249414213782070062870697862453906614080360332297591826470717990302826801717333152758929457883627600687063461926965445550454012880203184514176904743737217909548345383726443033696012192667710468345257747906462509687754707113693030665426324343907516071783137822774867381599482336399617374864039196490905633180902250704738393748215177521838076665477349268908767311612968458403042808161376776278229866583031496856547857225116707277601472439052024411815554140578943399735660725134597646270708546815804360117684671840635410883915811653191897936167712827476104326915340441499210020636106995834785571478285225995802677573944909305439980362636359933228641548501477660003556400219986466498154632352346052827828593940544018629549312668330715206758614179933414593779639166329419128831472596315077958971407217151533211238342692789788287316758982686665412738705793595053308750531040928100628742324680337298536961837003950717887305558161013773694068686744136815089061979849601719309518337378822148515596618457085392615171497305429762409318597887279056178954879475135707360613576271809375494372226622718944161623569719150419818509154301817558630049341609033936066983577806488225368794514069428266030069745158756300507905021334484953421314566872908989290310138837898153411761151738181374267886673881172107645562479456916285110102283586450305256237854121947103571316950458971617929645935931983326096639556318048366707370002923033819736830667884007047305795645535953972129154586131677022080729831587408583010582132589848006745636884482362755951367228683100700209153163287458863923526365198774496470661675110673240029810792291944690825449792188858962984476275500198489939567505578678475662948913196123114228498378336297830194310771914158518276053614843429449336370124925905509399766948862575944168226523655648603861484788077426432514175993706882721633278702710212358093365012262163698752880440428957875695874719873055370576672981498162365664821993115063407280193977675101547953789002515688482452958928025798412710221880764765686725399710542763598834103401039935665722810995731210072494061138378886962473384987009182159124625931697973336515279006136992074113890379444351592814708840145955777999065393571910411937590845737313744839221090325074936573728658897133437637547284030425817019447659190748302748585733748018200481988451092530368430411830375686443507576290561353614708153957712274100255587929904838103232939371537563271693135878843575167092716292822411654114220930839865120958540003201980330420666330710911990761342644909117732513707143017352721402119912346277287130326657041393772958665413487724556861849589617083334804013838133335616353941725531066281138958217736807487878639921431905465707342302452620117553793261099484893821410958273226273905831259609259930506067144649950572668164783223162685204685091774195690467503485709208342284843075380312235878785983579344140461244792602524220862765883264718042369997040720230805695841704848548470020672700430640942000803772075785262128071559980756651498378129280226767353616677104824061811458535443571649373308155831723543995790148779232717537697240928291817077561913373297076375521826784273707469418355240761879382675778040850341611294450883271706607063243989676644223868384163160923640633112202885977076041168103712206817142517164651960319905346407111262288723477454665875690773112968068157205961408433576535992632719388749705741475680806821261446669547047664770461485086846451661838282543461872872108048701557594775968871097090096660358773439116274923651235865241865822326644755581354650466351420289736943382685566661496923151162080845236616607139324813791693237948017729085769501078367647645655493448463914905653147683701300942477407648936763759745574836887939252986821383265435971487989070662437998748068294931760986377079697003344607869738560019762332946316043815383908772210671501109261901426913013561318670688097965572639345390037131307278941873437516921020548434588740268095266869538162136866391267324209265512054024464324109369032251184264630182932701501084664016534535723840867569785929943912488174191560807124058147061119644907447062246953589365576257956234038592024855212698046552295290778761287470902043506140163972979499491796644311163214983215970079744638066871012505240572412545720252849718057105542007091271346501758822109218303471612377296287076945051668949909000580801236780168614214288916856468755265622607051152359419448214651129825311054342815853534587417399200350981461115883301978599802039222647164578620797328441738913151601079375401690253421205136332422898196243536192964688130701270981827669287506332313018888008067002597139933235297478690832143514499330241051141426278159075073998482548280977007745590295446234048393162549933291308804775143561245364908996118138280897098115144055056163661000102365912547314875815557876281637877926604605009473195691267209424228800880240564003364330209471784392724821520467595764929568444056006863035751383180013189453409057979614196177391107960669570258500295128234829546957043346305931471321347899302618944478903786381155574259839881330737779409471280182535868709277492800625947867787269245490135094695275229177343348920416289712307393429858747493852580489238826266429719174245004110366601186181388803999263651131583777103374578930067487650336642855021824888365756238193911397934149743650381763091661735564355927166497203893749978862040529824123436543807192261102601711316640136387403676664357541765221474740652068565078751226336420704772215531549362941903487636966921554438378911651218916322097569623622790120324923149461257934453777285053311693912298964925685505570752671082975310948741313481746089573577310159217963985186747599770944291336505795230000176336170758347825282648831886915782321801159174594840011311698685749565749968026210962357026350666876017370095249415893471132152390261219145334464821600677512120931521177875514937110671668141734068818302205037839382178210376386242074840869284458821862567445545029439555161420716942379732512799182817443583186290507410632383879314854391874371129106198814543764873883900667236193266118092763008640947896116260177355575913293472658454794183130623420233285881387583375428078570510353732737234419454060230230219723287393884419501670699282467996773691408503596169518412783168888209916861075971036516774398858688017607801854270740502943563904574351453483446791334026325837951535256466135156178859830086763573747702770075477351847877648945334562613688824607915268230161375431238308623450261257970266142555445436669466257209344045830655749853215887204316412086701166026372846106139502343734665143185639340663148865091919817932587906853057302627514860886717941954369165089206930829956145349235007281454835977756796473604384966794567494110682049401132379278966188478790175069618066710215758612711920644009958223779171415899918961065855935477273272228837735675941820300787248667885413186230511862097734581613146703125951196826791000597406631561681118400921147295725203339336510253128655648808382284024370065537801646596980634445231657333780242853488194073132266923494886868441166219730335155470937501159664771430006513977970234660274260451529359368110017905621122447614919560205892690260869360247558110649526033658243252731574155877062713362752763856500663637096922680632168817655504690098037096732076937794073780090771581554341767796031257788093505619119701152530446910247927385429704560929033328435948321462645083306759800134240453101483353135513037737412363324338237289428187016749197132761727614806007098572722531654762950138873949185292753475311503685520461285343400305634108170437401184945588151649274244248832757576959377723657346196442410749826075412241738757978372547183790464765312311782164543337752830950407916839389154937931171249170409563296951693661250880256361034797495533575925018265123969432764253092620415464344238044035318995995677121935488409724342700617309057071712294686443041338988413384328165473622184928719964530684115845541675628100745394783830572824256718270884909729992042601686418149872921687838829160176935077652634939013594804226711356424252667900157437303653222245705290181862499992655336664259627438038312626864864357112605578395453258172816978951027619968138924233630817505364735051107568907900625721665029048995176081574100318852143501272538462672947466710706884724218607602955532047548227076243695018191866815813291552197459843758053675103634339647709800193284379412310592155185038245713040346886531512528129380526263412349059372469618976879680505486513742569531506765760134339221152065435248461898166146930164102842689759202589674658336850492113247173074158121408596221182614302675889923210526905443361107768214370134062214448431224341702191632802851763682913999722503410041473221086781691940422948824715763277568959994615163140772435009278795707295386842232776706970103893005427413115370600376291850053081079051506358351912173032337902380746771870682474769819983562362710502700793692809229732013407995784362478763776477780674496797379850459457287233172048124682892402931618341257963995024086071431959973904085870563706329571114595884118068808909863074166981575827271315874848730618715583173810786112322644165240813455368050030247930710105917125735006811307725735080231178672793604008284340246530736008778141744348713051757262020065363143587464455307716334157135194015169983015922103649425267353483368197115739244930816130051442469699466039618941802564777310404493123156710772937358417730366149272332088570850018644529548784827488966137167259798905860151253405782866415994423224081455950015918803085440432062377298556690525797583976711972680457262760954505114786817820226638209501715678888221139425079971601848449284411903965491609459588473041195397367090075097184633039953857770140289027410815895394418044247164840306999497009286287935046873753712791741600169384287410207619123178945442223124361273605376254226112109289655634750938033113515553215289166491774610625724278748847661774024775538320044164976912921263531461345536487676473617997970989668606936532934511750955851375341247350682665060684325022847679954097434776625351395364679736302174960242819683964260461419102817314769093387803383630206310276003155056211684484432813787435624936197842355786331648702191111850098827509588461329148839744582799816670690385038775826287886674879673330111355447827735878498954495761893912654389695668194312672477245377292885038250597555968821919135921032504602393398857971854561035330319117942659268006420519680317953820018023982233638543990193051666741971238113970692261829556133588440894715856947072232018672540612917642367830163217931561841456507530076781138553939542844170567460159378993978769106838800421754599759455467040694013085297646795417332156545526674974711939453307618336669296143336254702277861857727127922308350733524550526479080036367372273441831028474586614486524531384677835554514596635276734408144003060866951990425221240901245660959627017615850025145652083778473567628024909056755514466138949002395198777931770946307256635367561750134986472021297708279153349913103390616551620725423414230511065465548942105255275085751542344396985844090076014909722288272392338230731327543377333051675583530865664423187836617833580373117752101173909240342269383433049606274553015135284920372600756609214877307140421489040811508550154055738403034930013295283502114140512292651273127635967849659152164836936453986630599538250801300130188477810892470414666337213584260470286404966564219372919338358793929707807960798059582394996529621668449876245852563676179590352329530537269594955532203657546096933743794458651625003488573568589327580692998263978266656786673844283851929532355931099267234911971989902065799587521725435892216218649216211892327556819251578368444192928991081172487146869185779006934641874486892603591288565944845168424300332490160228463682236683016610544174428056688020868892049386828474812401356001941111042000878495443270438258858917913032693783347456470440724445451161710499055526646680467643145370142125706349113493463309055392457385427699670596204142167179648035678917279367369045180908951275879081520546194777403581318787237714356891450698803045808602674770749098493756597247318546169731817209132427930961637761149815219957621693866049900498031106815237151109696677256062825776737286918783179184945845664471436919494251252577353849960103036882346050304901815273378132638833416559622556072584258641641344122291566450472573741312293089521649956747158767447512453008685969641660760439689039072661868237776362076883578483450897883662254051718695830274356200985920490224011830439830490762181238373117961167326873106511271252793302827912115851967721668050904069459945871132592180204077348340743980951344536079514944782411566955972208124854683086564799104089212310976365219461580641957597693338243584694499914628814264706479725855332905298576987644742085565367052528780816219327397684008745391345438442366120511345246800521925581806261047894280100000121645247393324367175127635116534731296060129842986275406816358128559695103816765767825055781310648127951511337837744755204839448522978143579104337911229890913924252722381282057973302707964209336845025405913832689794844284756676941143127284749199494051629277561194384824219624842470203066454696621062428022843383154238668428463560706237837828895636030318028439673346356389303464723455248063088987318865089828763611988446353868660012316597107645966850958738553341514172491034715608380945971855607360580692631333586414070492405936365545913088308167242832202628997867615403337365437625640467485863490508211835468541882972350103592094011992534623628184650219903106817355442999257117225539114563086609626742185582517152584476368997544169634176622184554114450842310418139169562733198514527434940286359741879257831497223564658811909553914777995938555450737130141176630460691011956755060653601157051616992157001187692735076451957314044166022040713631342121357314383522284570169624745459794802337488542564418028415399998391899449024127829171811138541140506920821439090796340294143247214021753069396316525215282804648936469176475644516928369586686884908963152334253457282209688850269751966049113243575362735806404675916470665724670263552887657979035554627182641876611077903941028167419273399257382934173131172701473994476543547237955374381060805203583805736405864055006070549464672386981284171259988542037754798425739414030751030131974929555117796953412849085218992102273724287123159169149477322962490806700545412559241147600852910598465193010227427945030900009901444716695432849345098094481604513267637304107987880770035069719478613573588569074559628028255677546261903662555659322910157864854283302658564874831756410320361482294721988978770845680285507052969416681925119921361925762979030319391920285237260304302460481804291157726175100129013241786679034232435496730375952371010962427888021452983887550900828251929976959361222463959711355748086900439940630139350834958514275622512087747917406998592525574794879833470416296605805413229310350939464656145665614472167015006530347143301043732717852522229106508666271810373462482675361972173463038705410219070351920450660475387462789318016629262804065529847862209569640296281548594895311395300803141875430590941385416434526524301969746644674680102835177163262311867567645585283931166099426925384652621669199146467074635184194551169820846486242619494246168529261787689800266832469316956949475213754414674809017053628284085415367775442561620103234349248591240933358809937741276315527145304238507713501190259540672937878424320473124366865522309885426896664848587445089955343211407807924702661278777971113389390077374369695976400417226213826996990497925317293640530240442194760867938030072412509084510272254190137971109661293294885920647932774876870699554024861366619551776355963167623085331279461985635820605922677650315237419123973373939307919196544263683389012049603695745615151204901444024022227981856845503573386622869704552354755306682054166277085148505852940499056273407556638039785889962100030241322992639779868746200633360434938853616019051357104687938239279519163185340151938461950120861400276553679117109779601514537614174712221027496025337570922799075286735101031144373337324197871942577049938598194762248817095577646310162438703385921996333718455717588822083762631260857147137734542292881555575344795462632706458171012500369041313213995788829666156239930624452806951339222070872699573845388628776753297436207060504117656234083276737645739363804975527597039437322378021670755561073277676883986029200819833016987601722592749188552271510230758129392181476086908333355972610586545681613353172383920413358386502312300654388311582623895773015907602546949316295813907167881512165154487217951249368355416590571234526186562614282867556010717167874033834658771339348750910045674493425455841562119744226832500491922883151366267569660930295552832726265697127548042505517915635472223491830696227682423699987899429295258820454646360041473506467089942734066516933548393517680261178276380977538824243393793416435640452346532633003488226113185173418018522640381652274894984250438081369767098692609572744788548984277450475455950575728055111764950808696737406686269103679276805840647585842946115339303262886996455592952977346157613762292304421528309880565063029198718746499706202148234151099185808153136827603481203477739241372521149625344101175058653329484592766641646984257525046108509719689328494724707020872581084611114897852771611611341408417762621432854532426783352859866445254862704437859117527623990038908134372930053979935918628474855806448901889719386045212417703646735806501851338221121261862792099233398851336105655784184202817910902349587025907820002790668539030851140126223051214079687682832885506977097549199535180478084462218310301623816010310079361931754457344980609061571794421331275301557607290841899847855569100765987263232559189805631774302385009669747318447063203004114032465993590494258505816564560097185219526687524244968051570969262620873563647448678247751876092174765326922699193582026088614146197971770138676720675822499599227289695990314838585149258376397649386590192441180550996193226471097432981090456413658626886955896590845921153956501792172946275194404531074676665279128038560398435669148990649967783623924520422216503796404478882661489260765477724520507928265680825680617547173593852251287932761738665417111165374595015658877539192240161747059022287591363495293107647494706834353712198918361080836593317248433107753909355209979842639694133469990503660291222531224119563885951109958061602021310454892150585434342381476146984354548929509001090887523968430840191911828813087568844976440524905152896313237623306349326699370085489939079515648668426913582151600474266542446780261195588924476473974232280411004002098047275431044559290589844562842349195368436349324559202126333818174178231493908869044580616996269394416955527580689845716360431394726700650455055866091542886285281752284664973386314396124158340669659099262548982611387817156204862644905538074543036362102234828568691019668970526184959073077001155655342704671003130394259980313162212737422306280420846191271522176622132355803559408476926440930371277754958141718681099031982463298941993032857376644169030152226531699068506032249819407340525049872273371814082311569302990350132632770646039293934474815393562698583031084850785271904272747191263456632860716936235205950250249541239277699730278253255439347215373754348078246224681011063719479499148869531768859880448929017067269270753847922501285625085897404156479013857557831577920745833037691876585727021791509505313493838081821525276291690135906336392818147442629853488418475211447228066429755660520118481357913696907676644293822372561914918354476199862073267055177326348097939094700473669440606042561575596189267010564464753520519098396216544978890018560407521760216754992104448503058755479827378820547128049061866661039808602488696220926192093828191228514301454597021976338190284137915645756731331880205693890311109677149900221553606619278189479246145737326396976567170362054057891586598044616198357979541370860892126198615051318950620112232711736831454108155467777569511449331555627056017301540553077040610102773059947901969515851478930092062601794689734134180423520810166866104489251921158882385773589233024787029198453476905566015701721898080891712630727836639561207365605370526225459653578481970870513811764826856013258389267507054857542400306613891494645663421285596368468703727801544007837947818753169078479290819239615217798892770890590454200497981314161148629491629784762907165326394486737966614592049560069132337615376306560108257775376747235933547963511463526481984987467292993977029359173886587014624048870327572992278049474567379282403087468628564677090459707674299716196203119053617911500967025701977446684105238249049695053138145269875140781624149974621945495359523171181811377787721835489375737862307620698649375170204785439479356508523870182896070063685071335829788557947951710475950861444489971742313719778735671295539758988008794614458737909463945998401681572916157660989622434314039848027238665286776083503060316551284039453736303247018083318236396707326808879774197842815872326771116128604110627024970062742481789721034274378341345886589325639981815496547130770004007458719127644942086933535318610987994547050329313412672095339218508136394052227870732725468914759502236878579112220991629409424297173866122941572282743373294959927349472412907569293395956879465219936174920770849812053480275909395575083479842651073176491814638512851575116971178388007365381393349027993514037836294135576290397299086237982097505234613794384191695635905244785700906197429735171587165290418619455179867821797815175297333035427295056303395224387317925341697859961665383380467940778747399742916575269335697921276730250554811507142122394131975903426420675409237431395256801992091654808688314211976644688060773470573499886346399572862324298678849245994325954259156698975968502747562113892787364181074664488124520656173614662251353372729096533753349059510966955063948635515433799859735230753030920597608130064364464219340927974584576271512470436445881652918136277245100541502413285577631801344460245184510611560820752762494060700160447036567062415942410153905809715216746624525054429660943703388325861611921607770605334051305628725695275531918319738981655150046781378139060259754931099410133814108512151756303240266155723686652434668024345542088609629763350011032354879205981607058612779534648014906719170030575829852313990564427510256112968467497942076698601248857616101895714990727159176550154356854306364982184622948000883161260552200362944834580744771189156217146788776015768308219979267275796504852712967403842994807336318827240965028905563119138515503539550971905999191948968879465102807673064724847946004481014434548233444330436341618453276572687353238358130570959994490598515367845118183280105572657468153297144649090287231994303843944006250220562578112824129284208537676421901249054828946915554913114476954734763357449713056541888647920475279829919722374631780790166296743485357717041060073059923989404022025057586720363803214102478052025334288195115372504517942581545237452544078523771441117640330133499972809610204439505590877917582972996073188373457067140656691921447365890844528433589121885495538850476227702577814642562143778489956756960855272885108683266754375636627636536694686626103597461912210186789679155988402862385384028171077955007769781430147822045555368081425180003753596871921303733147760689100946401113147690925072817902760139289123052842590685841810344237572766221344240803780977176375994523089090501971321225361334385699490560364367077600811365737468858689356060455122751782851496825668513440808631147630643675592821546440474441016442495154601329202030876727477939667407108047845849904171330435545952877515968530272621134002872129097920457627722189620792807033945903503984114181605663945335554870999462930527075422389312778929809127834476289684196053443294381706805549346606897657537592028955414377131329865753326219084056541401598166347717596944052356834667466299660840798874471952697080788090063255848178391814560116361729259733271112897330924883672194568572687850605317731522006291134616463269239836206588896279259129146722697821339717681951673877143667350231505328402924663853163115858543278141762789792051214484315743046208674029734454159325251200825544433640331431930486185490125623437867646486208883583463492110839590784103860234825449679684504208311785082805191978029526437939246323344509495917611693501474905967109388478059039883362936689931525353449295392057757250971965999107200943714094550296233201126662304146966969391376785205221246028393871698909790960944450255352387383147029576866823150238429529718329827479478854255729611859738528999108165843700720342532992328614750070366798352471720742547896017328283956548437104828739007298724160435408023359884650258899202031523073986449169371059691504759798387531831291462632639382833663019073798480003836261610839611138237526953355064013009770918642955459494148859076069308101936562122405867362174971513461790982387024058335998513318206440253244140110109626171277483446745363051988085127691163016527591427135344720494867392350299221075631378991983791210820092848995389383654037145795479880567637440446272898209594891703279572720351803368054292737201215508867020437971918754828671640657231998980212026108716329900116488196901783396330847943455106110560157053734058396321727852674719994946503123190786461386476911247543156683602487754466806211809541850437839934503795984243159277484665279672136816223190671113115677239322011067804044983556606856672776692228540618077754941673233130176150720392597213572029032338654166777698413109946406917629036622584833553343207430289542562655304401431320652064559934484486779536411720536985109718077575472171901116721414372474269582588016162425404401808435438506607681237206116184379481141599012238484643490157379596640111736352705603599567898655086228193805416781989260066216691524030321232561015416755225498255444158109120496664051831571376294658955689918189212557001980468449572027103000234662177236122425159489933769433848692768758318996186151810942023137295096215366245432686011656811498614933393836832130556223538869914172694417085753311852420397517210061588663520007047505709548551063351103421607209515172442555759447149346425764046591686875560245760555655763398333510276281401669884242859554783903970472567283127840009157932507213505774319146553880602800818104872610953386108090580220076160241643256181915431176782247270241190506251844774460877632131807066799951082980307897996106626213307782031815773396742526268854454717198673865286963707516695251795818708272236902647047366896401424607904973881753962978213465735610216870223698643555049075572724097214570910347141125537802061845435735004770298201352024213823088764577339187559007428561626763783978605882484882702389543724738996686086995008711552017054321561597960126822089371523785577964112959108321927788313042903392988322615738945353159537841959334618295893797910993401275392771867855986378189548527986600722257706198394171179738919207622022482233054982445808475950188574342330910944393440560892813979349159121913855911399479094616437954826398119691428443072290747443735376909718042877290956443353888732615532824801302819108547082730811080701328400972659262328525529960280772132848881656871520870628210340341726611103118035127516800029831889111220060114855097141501614273165487525650591200717241722796610365672456559397849534787426388702385803292426493800442934899233786717168778440705658973633009148368220450238889425633741150774302785861348459717077165631492031075443647203625438390540685489321787176130973232415278770807973016805725818392486649134787581995014800872340744458815437412197382540998977005675020030055918718272129370186022200633774056887482485986539507961922088005629093734565999144754084048996247340495926912774023253138504378856550888329441627526201028757403137371862241568536517879409994597612141682441882674808883058123770982012760477067423320897313104352447729160321502083713229300721240105247762863094052041596483390968342483751805570678877086781494523435317044903096630621107174014087364021588255494957413517982890101793427504054678529454463366716225174556157271507224449266910830578219032341246310654793769554428586909692074950410627322732605669090112522856321850903113713948454465298717193583636363189235414468154313668308830697981281688771627832267257873945739816070104233995083191839632716919778852788434873003524673888773613465372301568179821646325773914085581555039893049726139357068886541959587928447407297829394996401389373266820162867089825471864604507521199374813849625336398918344528606524113418205760401572063172465702907864983150169176023725419069793850204678963639275545456168076215800927222559268477435851201669466916410608265906932020502208286947318715161441519972772304143725049250315389642471117323656300438981728738980915960374146383214890213996871010145479532576384002828329422539152877196113339251268039659670980812080560586255096029229030366357734186273374099809100914966270986071207647076914836071826935117022191115970621135874630103473919611899035483984648539080186843171918048480604992983203467884107363533489983839716337319757241738466129908314972767228721753109911193286581818531164363766172605735221949432584508760116543601738257094866374049448138273611582829657714867635200218337352162005694473703004573384866960588906905733642164401496333262508917246260734614431351145031527619146599419810521852226366465473613905625345191385126372546444632282613554373198956433842017417497027950264917430516246891438135940590823115576233102174115585551839395929152678292293000442658021660646784659279491357271165749304607517930794776858287084223628526494009332428601464195257811963055933063420442259296388571059310920738633906519930380974642220167230693904376813533262945355623257751443841781696688248374511316852285429037278104397177427257872139491621602649351092686592780405833580032975418650485344177594730468082757462653378111366224289347014585921926720401764055371410891152963310601611579515960727639183135787134487524734867018734444979452875296920047132130744588664921668662694237799335643847093644733371024273467835607664421813823845278578398058287826398904072265572621225060775558150038787716035775428196844929414101207664348346236203126579841138974912233320349180647855178367982102652354251964252126855541750801658359135536037640162769603874489451359062639057457089947795916684078283518535532064855876534514002619195172931078542576922254960687630088530239627145313069110580011582166405286760151610576099722798612743666544751439031643604201176978839931552257594449100756408031592791287414983485073711386537321620927180622665978291287899166712026623181595039758645032034761239749395888735787502878752897475458504975622474712636732833163758745876388684342833595897035009056826870752711659416726001831755747487881971921951467143997063386249866968607055637130261014476859327665244194810165091377872347791962829816959343652870272558218769203378844599433966824832685176750374660947882807909968102850899397772718894782346141688935460517397315526978362293788154532989805066611497854394379555531888561511740840095222633004378527970809809624669486689291922457546471244729092620390849472655057309346914160759599911870521943838185976827596713381076916110782614878209773703206010159706575614321803713614659909801365572877557895488853755904088758348955785111395377660028739762410841577474198971328111101473902027798724477585569062871921933551963111578738340324648017632809216234548111892240657312422026191559206828645598487873725023102835894538148637313177327842810953037338483562313869143512562410412559491124897840512885455426040762171951839368360552217270278202064700641863157546639532243744801261538998056488301295664587965390286939172006668482224656366606578336529466406415808403692233559565607586632347691040052529301647863729409485368323985127781509024499221084752494888598757372197553624232593151832274043219476540824539973206148716498267704425561514655450027964546003799085378303228575941560722817011778081287200269853589733968492972298986010501592868011726216546484109921367303285514206969320512961137802533022075254478659472847314759102019712000993448625407128125083511249463606884004104094355331416098302513138281706506991024921822503505740672328645736049387171840324980193636416749027178277212093082201153041435101279861621613249906267096238016142168135682481610482345385148030776611985029984114578683472873882946028439625636665772101730634215088067729824578398704284768464409602368262473288828290164668676690946699722388583398482579112249643980003235809466578057102840007034817498809745964987969097832958054107034777186861954136222171681270739659505934078216544160473247728823777399074578289372333391224622342629314418136559052572356111425661149016054099375389210213783735983533444551036877779252863103291715169736034083847687372563364667219312489494077402879160484520441686119631196119287076941043360664648584195534607584856395846450453982430560799137590339732241188692527538133618248911902334895247082773868915320748897055592787608804501592328855953878986335304047374458899045189851575924208039222731488852506334110034860521797170748616001087748810420998515482838077911076680748199726742744683923739020092158551226136252051864328534377860103586647282670926834374240658306545161870373614962598704174354735922788913129565788991790653242967434592907723315156517400270203688971115170723824562594422430190274012911296055368443403433025925522253125910387599087563572360656040597883666945479927698309545546812092467296776955203690691373675253397464568622705688161197690904520514027688126928000526871268217011725550710965254720751310972429396528214384938237694594728668012686823933267461750283760393392565749052823264083935803214718399627234696434075796519961276023414078151115551889208242231503445018682787604854256307969142213807054190830388215519903964939482216401568047346571115500212359988704046678890421491257044613784794002417404035655929519847149568657262892133019553125745115467016569863640208010816327824765624160704795050757774626513990639917505638509062838284705669507969553074551581314721453039401310792621242393210537660122953274117766230772453189923125143842889459569757654919074798705672424169063919186097469890846578718797401062692498045107942451457374391027341625737434362836407900214648687772802813379130722187813175614761961436503530509760854807222815010740203788242019206191358548613539723098903282615778548117252814236189145131889573838411147200400053844616582393763748459087268354595295585676793523151768914845279388097879002629705724644310891208457193335582920220111667025186765865657157189929329631448292956737527193896064871739216651463158839370804372568112378383585401369507136758580211603726205878828205729061147266200192351222766124995255804944097357250701760879121416670832024066482478051480050149542110732014039724730879894982013558084920242633941264644627672712675901134297036006117446566971523728229324270585542365333831310852472008502931638289334503633376689620314703553192890614484272835289991474962870644915648485425274096523237122595635743782853230996239183547438754301235477785142659887535186764886814836685045000666489355129836629983343005038978419535900243235374007804076933968542931734073717833109361501055453945824551731382196322380235337803561639059847983278336401890952977437538992451549979105844140451729258523809442241933043428571146044746054215575085656976357402311825739046732213150326508309268611523616454509660673540386479932233690214513875637612888922580831353546964846407309511844434853261893656840812257488298051655131029844595497776964822594594827741494402218447026390526196683344293359113064879520360916191878306220423036069103312726322621476190463488043486481823127673236601833040954094489201724835844715542423481575139271802906252160225872210726279726072088278330223864905231820310517845696419755712011264579410688603702444632522360130066802565895012160520426905518198287953818486379986407750044006330704484726779055707014055171676573796220214478441318880575210082939297554356386128987462956731804594623905415501448063634750881721502698977234662545775148473724715423033600224268533731681749795192981565182269734752943282825819712389303278822066117956194860978584953122150994987522798983195360964356900619484330172496501273742888146858165596821959283655716905838574835947775981819608638198463410838551337460581018388073163977992431149740996409867476049947928522862675495373420092361628127555583795941390197232268372331686916428910389618633872170646636111856989606446576729312484030154913474342948023961701900624862672765818012273740202677257057290583805168481446327854410899887093940427878506346475079476264668131495176144160599517067713151328801112483788997207466732718522793487380292219592311004444393668663420833001100977622477662954157396249012564637746088802028948554003176036557363014455594020588113502124449042472893389437901837299738542401550788342813412351887016001031613579183504505036211024090598672393992048683812593795547476278838565287006654205342317056070950817951073407720416974230097947416300025950173163948339359361876677080615107629220660365785771340471619632423449883813415565172415830393817600689436070915446528297008519926967313469692461818150720340038923151501794350071806258032657019211459500200696421249798541340165600861264090435780074319865846945516904688961599557311325633113495512377558890182069821907535000950408913902326825789599814988666120561313012168630813316360566234342668012974886081544202340519670704163221925990133228377447670304210615979038650916316125277598787788199743906901531822205237787775091376643308968599001391015795047840258070113972291540856504170044809778191402325141602552872006411571392739710826275998741180402667478243118751436051115707531795161624366524016274692039572865378897172237567683670801874355075992362953864669135235599968692902187105023322056128018239431794005788141128645440977936370165188218674937420692688648851960990349824884829990086126646100107814324053813690631146635566420672213944014551021384370219491324565875277917820633804051951973875345089395545298798997732160681983850172622610609514316912942868238937406536756540493422491436346472473315928356077744515897415458637313921605277864385792335354786009853198912206495733863070555397563203923368774378647484222506530786392463860571009507171607904019210239377343905312059032785440650958810201778710251161680665164373776773193300472329069696367924235211401858245258303950674092899630871227439261721673734373281592128037527395862877898471961522505870189810303282634989998726558757769584546948638035168839916521936196212466713033852486831814732771602575069318111759612590572958979217529254772228055076597059109142673506462231517303401781237867513881554016621019869698593648777071371759087832598531833670843107453028629607633362719242700311549718567176389850623770556281976576550327185160123768881951075029773405694507898313641641258475175944754338959288079959726930995280246743893601384525474171221858601112225433748997084200439688662015022007779459932277481397769080179503578286748043726613482260708544996763285942204379683626867334055295647973177265942292522442013156987366392355011056022036395539985552757397160365229740795223826702158611543696575139722925245085038618031463097363877292175953663349794931826504657785263364731661473708841188729077167727626028154299611024628402660737731867327904463918456024447294707411524122410520688068907377258875456799221291314120903685527175910600588470364526009336951152111549032548873963025587094332307042655490308975110434624555509296406682977381695053683479553357877503656637993659863778561759971865748424196675576859990722680123878235943286384597399454055589672199444199176310939305196374339834792898111838608805090311982402997280578083103594182905623256273403333052292211580166084043195845669121870974880303258801460941354673877282894377115879021224061188458878332449535196694001226645951381011955102365780723781721653461425811425942928670612346529747950248981693121048889025361531053587406202680499684217742360897766297664337309267805563879787281119228965330162633749907591817256006316713650854031490532527078003158431355150429169537918251583054723576209626330159319475309210443632760685777041117095527862124415642045057962017785173796294947048332047617231378523268752436797477593123940382363360445031016980931249040558748736294886053839615087485196332415086337315637820899280861937487337720395337124408143799443156577745004128676760414807340834002263033084152271709876243582300281751473599666718753205758515963690650468343119939327874215059177123138696356617817530676467997370614916252060589766818357500102744150167784755382327802360296501755920619630769020328139059095671713075101372965095700254372754297879285667506912482764551886605518860323197192690553948031991952638275742160126239831374472942218488049501690466630866793880900204905422112222031272858472765069208442424279002762246561665913966975154663001533798333860672811528885915231151299986688771587578503358384976965188782721512428141282889445422461471553059410298646597880897327516437122386575993515120921610683834844389674292209183588493134751223884288061754758081356549719987880177430363493641599255560156228168295595029796946793003124126498154358236131479428924293850111471751999539298251520839421153058854543768540914560348399678884720685587843151792483171139896718081904872477972315191340377182668446486790713300907213874344128285532916192913937460211327814101634264972986930198625251219681777405594159716392417560753840468780620881818126347084641289120508484984235780837758367075884923109741204207270014145161202822922186589869393482188209999864239999524474297993706773612983543874478812925357651889469264120462463171866200278803874731609882216687968377389386060823856237310501342074536837373591273935920201864771602183233182359388378397881995621982326500055906686478202751614379714229828713871148284720026994493012033081930043831092875867566156032850184095576199432885123130589308227037455310006525020685846669916312106693954705008185976143976268839255558868026378987711713807084558761406261921169839990576207990078228110055044228960560456291878132100896274959278811411223096282772453574489601518952468080537107081203148196474426343972217195253547109785275390014903975910079265827998326724079526862532141126682440737524526251965215973868984482338738436898572415608858929614077960801941172866196999811069447725447184533347409828613171921949185338629387676130385248995400632005026896071392679823224682810755254606242985723849759572714866261623705848489758783926279011678095647636649766723977358534276921429039981035151307671434424660257005476377214687263966439112459791632824773160064284569184711739857155063992456448714950496580920037544470238917112738534446615071705315913963887214054562670051854992373354882650230486185558874509694073871763028686758024863902715906883223931006073253464825553783513861597543986755912068266617342736381485165314063630054671975008274710628420834931354375579263492388239846992755404076839947176007327571529199009438051525120713336037922054238550323389290415071937090264941109250785541856778832115025811825113711578703047993875917677694062077883530937345339154322942175005825779710163412849710568838328369302100783415661596088583857210136251128954152954374671651638769879123195257355091429917084255551050424156660176326778975561167042938982915677607550953478846140695412637597461716061241494976101629735432767882439457100643700483424933990507098517853274405871933573217568728950875078063860168566596531494600311638296235550019702630477945544976833203064346669945857493185391874974641792144239371162480616007081038685100159923601310064264377419168953598165506209799805097700253835900278287398457440512319040009658300477034926116862421496719501289114396351539715352681567825940394114734127647766829542097885226731884642413298706657703675819874590950383399153659800015022612039333110469511839651857974022707799504999998608013047738285113853269813072576453815939459587533703421374230944102020621685206696677941293699181647934196362321964125472412245936206662810254789178367777011289649989827621676051583645436700003398915935718604821726281661101290560764802930896354592710174311606043783236476228780153696099404913982850898541140284202538365519295752750255438525489827629347766308784772446834176862560536941862842173805203925048966278107876105438077475296843124695684930278649514601309656594174888724147125234893112190936311203119679622753936411836010980622004889193193564360951984163354137464295867134885841804476096002193424209652776748723530780503100532783387966665885099415594959999155246781752188604962691959583486626996620830304301163381939894705347558804378500650510995180195048402372242086656456253687705906161383297240857171713816337971707606433166277786026494752812619372574121628502635765649217731487791918915075324278586529086826345403332985623011853586091856231460745818918611126835008224748960001756910204249787275006747203159461542424908332416949844903937823243370899067717312372791614073060378402571455765457286400486946093126193953689553229470671745678365965751485497848922490133901555617860862066772835287613179015572493961980076421854095234349953370850765861525490781609100766848903399139498300566451557972117214382001096934687332870260287059513175745621749130167290226988306407984603373336796702277342283971584133049952723527874268012749250300879060972125815578067116790704455657478421072279034263936429080618371665925722782886303156821836921579881082355933113802743295040023806298603163427846639897792071661541520400834334621382453535350399476287376318291909640879638835025336518163823460464888599555528656953164693299232559590952204385666999884749772264307745686192474845373802910184996539300457489328743291424404129266326101313264731154161997625388509339077324686255159061301007442605848407061540715968262000240389588466284991153723432707361997061742055364650664116616061981150966384076664443282636359195054461329812929941051523572795838923965397493542562242101043189236720787036879460000686751157251916066032698081868184606219151389627789063545448760786901652938940551807486986631591161339966826656932827070648574576784757806524220367780780070974876649311070839628102372089567503560289592676602987418092563080043473724704109048396415968477136735717179087681502723788523790320642192153777347943208860370411882414307899528843949006128619444936388269383914133413850299363412389936008737386528285594952914836741871338936934839077361049537519983231915757563990949077775954244009536845253351110644237800441346969443574152032384274374747998335849064207092400520458520358006207904382998842426266785852197196269132198458367561019529905616051806751367660143159080688161383368527152794823518042372864302892296090607348644919941954248488288502839583679717693165238501018603266857527858103194033316581391156665719313791259630574269538337049512393630698539216255161035179824089010949504094010283102933365304279286817012430102351419605717459198056633644429258680893777720771306495449495717795277836816919455758232409416020552250665616993535287630348509737969713126781898783469016651033776791028907841715243785302573790783450266082885145148218285492680077916167879950940975109310125699151933254674761535725981894846799391741720888520137820903030900790971263282134858430491788713412625459640742443280200508667652941272986256968839139334747894047744105033422278717449393723315127063670843340468079036766082707793980778297186542126148371228337588606387411499397534373630530974083838062277382857966813332463476003983141700972897620086691935217216200538421491400413468174566999386724261293174018056013365173035782066195087173745210471466492115971935090832450597886254028861803162348895033275888609768932616976810064795287960515526385998590381993931384519473203770857333442765777851629582738572098617940588356935133281166729133127743074516474946604689821099319336734490516999129967118584792922786704675607369892824700982042587217545566226633598966709071097975851166319486540168895042281699707872909389767130526473307695067386652622575731304251963092122111090095209711175904135349754906023391674045630345088287773385259547424900342341797979981834619038587940366138351716699803801562364392796388052711072211087878004717303962669164523893096841508095485421759279572285651935808656153821619459593502709413724801476301716095294718129793768132287675142203434801274700054691533653404070046904374906634485354463045939908479868599045111471392028852063956356117717187326205257628732770654076853240824800194371959518848055653617371028724813599658818749719274523427829396726650890283235400130997042436519873457931215533019705393264398555415984362023868962650648301754169144024037268448618545630476718392656234363307529809494450146342374859480864550799895922570365333669482869217663945218852692006695769886706285891586446240903681487156004159781717032718201225156877909633748066415895943210287005386374496761544074609318012634293660594641354751136958418860845462678672027791313594553737312326591517677012232956831128109446214362522835610158643968543599149355394834362977806464598480057676123369111432585899047475441162184262868746397573893727548231819912803134456470002558601114567601616158548656814280760254715757496497172027437358619769292045889862305289440464826701296414123236608654615867954098334874427320827900772779269127661155846386009722658003288263827797269966169622843791554518842275071277032899037007132022877297464878325801979347305451216671707840367793712461206549067131060399782688486216162346549126810844683777454966102939731717179920634780306219812994751824447917189942929750739979096066788093169318196565712900212092861551378415503966467579214279360258756908533315232170863245987117234879018772566705182661136850098488994812417774470466566497299860944544048904646200331896252943127024290398903154164383066345183624028620140029774868958139131317110810694959842637749644121949402399030916550735133880019766861054544404482443929018099899701719501377391110698921957542346767169787892266427252288873365976320702240133099999189111003162347135330925607817382516459590597395481518257187493836731830392330095747270302220245702633244373933147826109523174298514612277344466653835408143800176001139990987897314363292151087466462522693231124395604955196687594039472893703414688885299217960643172680092899582708602192091712170411079934333244829903880310932870126998236043390878067139274975668765698749234902055970707857180030209567224033077393026349745473342694074994584450860306220960376366553403882454515153462596032916794347288807036186444505381813060893857471600798379260469400489660837278124956365114265533617037639969877643344415501534629271460701411755642840330182840526782171337138317692242477584574359171194036186954473481890091266208106048632061450693427138362645963475485803981272030824818210028332694125198476228314929735098809883927105931305275310959108386970576002563962407124642107833552229765766473409227040072018677132397520359750683183893650393632331898029029859844971051966657818142949340908170212846878194348666479309685744649537872782477458844302774478287766650994119276088511994838743429653213198822565445492071797477253480282863742649886971574474481795189148188299955185885771900205791382917859742315486049533129625008845189225075481432037097192527270889545892600432168662780139302219202483817043913975720786768156415367079624288369314876943115339962008658284555475761640680820189066740825395185771389195183789211818766595618137110630762773291246446406465734415215754907409587626026525152534906847184733617331641976315413386964665280754904497909600918092848763267049302832837389301787932482451495523515587955146967517440976849744097416721483306198978270449333058131860317920297285226927116636981636942947424853413759758828558799852742555801894119038832040655593697527529837203729902688524974444403517829649178499546296294538795010287654452119210910488480830961314068582464427244054656532955039985351310448384333409423090099300841616694711069513433415562438684421592446044986218705793769022022094572959867674533338027538651888271481501560112749967547280099998841103174200130906122158841621923429277350561780773442073033169656890311784666039382267403281232946278750751372594890387926010563745563153558889551190224354233638879631776690070128726678679235093252841105499652668742074812199345871808654126887583890831684949292264486383632635024892416053919425566609205085845621734886740005419166361606283568367680670229505862594121358508573830591232819720347859281295307796066784346195440322322075022934939697629190253916512099524841541966975270711519510885840446944430456719419736209357307087137102656962421351154403236982197957319376446832109611253624756207099978482616079141279965665119787992206899801635596656282095937013374529702971528521443036742602213380019335684898610431216219234954374181104096947000893404155390205797377929818425899306776511964516901923457206307354980123761036293486308152323972125381767480873968091684761542713373280917544357321777736347903104016004546694302059862052866179972298535159354118389763365116367656186010757125956906291933771933841252341939217690589050287311189345283872912988131873461344980078670287198706269080452859240281435446210217609650914869215303638915303887229553120566403946022196669122325693569305755822866976250408615266879939478954242641460446231027200352448365393332754164831965942608765140949398255848822974425554840919560472869657267999508151658005378595194259407559799089832169711865716206858033950474881790710087145229652871115535666878678392755127731475161830832037795981539933526698422410190284635948168690871745969919027130391142996775437397899784182987203661981672658795378501570263641851702067093911962913504359244305211372700453050396369946204173942693953925218874634476586358142357278024455469876745845169416906725117307600050439280896822682587003519352545062169548353531744646111696620242105976406407047189042850585858465300281026502757257786505211149416408948167424695923979580294107262473053102155109676511441912631419612339857214658197657243073492925534965245145101229398484152245544491546469629397993565012572562422254882042565651153420181036697639344496007521522096858830560869093644330579688861955154853305986606926309990574793493483909000818576351552825338742048916427047941093552653955833692202994169109516838254439036854540813479961598311554258836886070689275549161009408652165267091064301099771581870723302536294758557536769079313857258075214745957761748341676942007941723031032794358351819008072434067839801820234371405393605140259677037970951245361771799111802181786977363782806990219457232341160979780277327988730614445126248109576189254976147813147623471292892784822055218167891575393343401064299329789704114648493208890742382074892263777813126011706782589109430158937304421883587729392272288249480297359247692562213530092442631408862458803931303526392306290345702535716027983909966227584246643069453437828440157826952535018234005861879332445085175957965068534996453217650084048343028711437913811028937777570793277904597393553415056479863504064263287231602423005329992792285508804361419444615086620846352431688801669876448222995805466002321753628033790384659106101679473209875178819235438580267543779918623050684730635174729904425226092110887202850531786618244869786636615381839544611719363452984437092931007022862653743105787930647362998060392142291052007995560108082000446492030278906044820719258904409488471762283403405593682732118910361247703471020923140166720174441522062585469421815303394084716364980638950279436989135343473585265634869219456918552361447356599860399294144355086020051890111287010373461422506894628892573061833612711121603132829500434520412041839943796232825938298408277791835580950561562958114394623157257918304459287741318399918527451564301748517545839911041991824950439617180269449145576498244328963220236369421318529896796006106781361445277824101248268721554683037377971073461776253719135974566349870926853757500712837561436463079281081543444416704745058011257971835135454351800945354948647025655385250146299606880431933454053174303849645467540828564911951109399160587543319387340615905781491410555559101597617171377861472812139930859344711375104907641023866567174289299956500700221781242340931303024613290842907876019915437489178759965786830810822898305996467891235430058207732618011055117679376744818802977550131441871994300634049334566075104583962068236261800955267208563298827161654487563646220569508770893253134639100829295790870765849950352218953774264450204024510602091913589254756905170547327646271592857286068171242319809713227882198127741328692352868617739085395706667563786595977048612256597638137744740863330948790619184546539059771043983992148169348164323032634901634901238462687333457200368420881404696683633441481860209997650630571436436944394421909342312517537014396129770607429646570702070530456725497755699840464738515758153045726608539169749218179089029375976815676609710003774944033684885253652521319377277575917902034019445186118078301912761682143229143103565553125603804152235912393232609671480678722854552263190803496995759293155619677572325519850751195173188864892774160857139916144717784792374061715028343802511255076327856804426070494360959341169025850440838752162379169118428976185118732009079610656100255162021365017960966630604900852455606117531531248204891733960377110249269967156111001217919476089661100149506569609934800388113814862506956773198649854749573015294053813681515239238030889137519385867033293932471031603195349488495389228985557360738388997898766197793348194882059300844159644146423091137581765548476947022238045981015427732654664977516994928347357804864876121119518057675869284643753818224912131950245799729071674429890340300912929781138374659992447762794477705446620727798201985295247463109381753589100763961149980649881091065497415616546597999177342756839493077022236708294994007841948187525938212981647327205845658922641109101775174891562398223813810596901838926621461175328033093540814234180395339273107427868854874396363968961721463619918767620586238811507561402339522213665171663573908702238927208729650405765027379067971012436635229167019781571516471850318154558263619194973062560689014527558263088632052667400073029757847921720662572987941880344161467037877451581552931463524564821419143392119572298416420079291372494747341168959605149786315429959351450985115046681918920098223812535850680579081814360192455036600397393597761573046407378383395028664033724085308995250159703163240483048753355679018893282638638888632904644070653991775246084252139142303579577238494414996562899303650450689854403383381922645679597020586853385599500270289595814396818834878507655442970850800421365864998485326426341252217674725958735374327230176047472354307078920055881721274664584147365037307012937912761396153746974807640946939156466736592892777531237537466206206231434616696645233335479321614634223339263252840663103363534175280940086401564345821640698982299943094259186154542084985573887631822319924642657419827010132133538965361338358500272112202433306796610958090623751534509796895076477634713101241421754519410079644255526499407421661641171343456547438307496581703018618812324188051215067209388058711562497406294604247666574015981414992902277726656209049757972249475260879899590682823892248961021891131156285248780749843005515810810014175702218967124157456658783403220523884191365296164273037862404855540682799726824403886949320266434086253431557328106809881693835369307331582337505381364413129024212478615285427619051232591599033506635467759028396081969643564073620352826375640725454943086780513542626393036800106600922267266796131788179968015119618028385811345914349449622014469011266372514779916365345124400421431727808496713722135917490016921030714490036252638417542695238703306851704771880709041296135449651118491291150991458843922305217688109124768359155721642941913960895284853650470323398844884227692007952241053768456459060412556315405994350935120286181137547849978068575591250471055538059227787267599905445170157012287901219246321677872470123188132057176066238619284221764733979791996375872917600326400795288590318416710257666734171011458918670705652915620636874723844692398634724654213144953870754556343258983127024733368734428837820586155281034697008910232358336992289258421799112351589821326314072903820567166760227669578542867807621053039346841015928328021976715040960598804694358402792386798296992859120243260519459820168824819471970867775142604489403804546602235804349669999398409246122894665551078483780212040471335249990603139047852095126402248375000395912829032396523580274918373663441508829765609082670086346124588049127818056302374998435979704726994278002814582580891835437978637146046404028164383217033689499061032785738704416007059038978150529494495419529727646884375187386842938259785093602353729621523708232098515655852993392368886565451327068980743878782349605297450836190723381646913427240370813244518240402483051698750826398946647575179683203727674065655580502274017971470331530727150234218864308787203451742295234969406289870940636336608912635752080224347671885947927075349356825479700540152602089893357470353015344541687199483126606108099867506587775112974127929744999123240361847343567829318702680088784291729909373291056855266777859569780752358548371340811655848391685921920847082574105033365967566401981193883802169396408369726924993612238766345769316054410157134459232193070088432859041290059816843959113770727701096990358617312702526371102062258717428182401020946864173743966308360484037682344291243628400237650441059124796623387696075346562718347368443525104172338272573371272415773881875555580852779741461284027848430469979774183010172662553817133704858570658541677987835003123140760393363948942604767871613790738310673682893176684412886785211649003817063648030016938765291650546062918874635566139297662711517099264587614790884393579297227782066615545436847162923782635633430260457575300376374411292039718652076956566072473022420856141910931415038997756243724547189386452646770680289683226445632862724257093581002856098177129346004455028881252358670310575878449836662067236252532403023806384246616992048815065267419817022859556838373921598576233592927509287322043310762155832042666680250998148912119125050518170497657230819400552776755103626568954377890590036010055090183255902031026372327588653053800111001440978581245520700420223522977013823413469808962190393868990064540913903235406245820360662941118319636412340165354455106067953848567373796586623335470287866320424614859904592153749099664154485361538048390646365055525420206820108343083100673674966114502106493520704164000352110108815778356581331328726729049528661384193054596261651354221523830336507956089332321031981623953013829450706353295235521484731045653339484906722744046498747932150122291131099496498374316779762382579458964212623948138285436285754108548492366570720290226599225397698282590864328363123448114359048203453931827037458838104704346182912293009921391577318135764926784855325856713856526497167078078796255415604934032402147270203563600097580091555569734594072140168732723369411794730487748009628943850041510041361483994977142837903631711915083555058937771870832216619775684037617689170846990110796132730050973017183898004797515041677485207625592959535550650292994596941877508713219184169488604327836021137614330807736412374874885126458271559867073505363229518111077403752448908242327291322937994424098964533211845536062177246632549775510974022777111804118720226310387571725073259199058206263951090127569401648575632692515087362662921403033443333677211182621846533642666471152888545779115414084126752853408164225298374906640052709325357546213899529517557203334690991378953106077522754396323891106331406437170940545724025342386715769339469551843155934814265650432440225009625726323582009795453605748895890287864878814009347414468637537106317373307562683590313689705122022286148457068953493501145742411674813112260337276314937540637045806069869741907219982890474198459527015445042023386632757188134209542035692373567880052697047922744260903503446915425100598216766243570589138610919379017933714547769414881685104769340334777568655031258173563206684183679156603858521265098394739130480069699134423498811231966400679045146422552974993290663442761482469492666600059871899643119573832559126138252810688745154261111146151585892468966903971841599899159095172413080279136993704317019770962400885177038507721066390979654655692314576900069925995850025859526982634632155830836354162956121513863798066495052505018858257854893459520367276829317683032815399970389064728779144560467434393781854830858121516238996804596442216416728125642715515469833964791177182395968379946402296557754378865404613504637649673850980490141209720305914087092053159642949620148839111049860407297906555966585405489972081519826909273531228463565643970326242049515428378151031537248321483290874724074661444051231396416283581247040026303631343545519179402815733658488404981462469321244925891934062491745380897128017938031615046641316419054705280707852582141993341555969444185645251620701767153957749640528846576614158649450172342113961240015715933884320038770687216700119258276279228074966344251048542227022912217417436924052885605619479402749988545465918411556601126977681995612020617866585969356049526059847367428628301823926035229117515037303609161070840767249448637415085615010485075146288982796244117411262589888689981082669549849103315926227519538433272973497556884942418537068888541997552747552196824023246665559494276187496893114853902109742244823175169114820389830389295847145680232238707627482186963473900367398397763035406561354514931044215880509758944183855167504296856247036664248006315561714113480151993689080976602095677092107269320661862170623779974007836164576499076918926200755055162079913372518316276620513204733727429757554321208473749052498429050570492885194046714693967853582555099871697770819270773851682052782848838984733669772143567550504846748966978745057925436256648163782643158386690764043400994438415941723050935126333118400468422075904428349988479760253092453908101494003818532828451082517765055591716161019861912297655312942742249003110117797494811741187069308216608505608011911136177913183360287052451375595860212459607045469947363181616564803323721683435197618091233050083247605600486337527550755033647915108630706017013614391856839050711881439658103641497703198466088637275878629997297488003339865517258228822298926112669324237718570504033981584066073929282856015942687385702858549354627750639293636435460097346850943964918108643088469958129995639999844048929465378739742857079742381626495839617048418729902302763475102205443893975344070251565828377942090513105007766252992274424966253677866920582554693960368768752768796866780832578814040518860397437055425873602147706987265620717193278193252947137509111987318006128054566919410759642164313833097972167368564117030374749498595529776021827447988476211032525664839684714795727471634075506305310161635756617482012133661594995182915323445332939542585577633698307908189684878213085134543122744924515190128032493679829428213492826379631711477127772745700768395518350743050774961352725624748440216535580478696066689979339595270911710687450335730818523547800139788728236278303527403006274741275983204634613332506286207043728559118417270177180510998342310061390112167602142107826094759052774647476446499229287209781624888538787669799422613039340560729335995290276624813004677765253207166740821931914073499204185098121522827934403275880875370165585936249646790997797282936101935097724850677600463059140746005840250615915410045980174705506022514773017999437668385251303560023270104296032363651244926079001493137594285832885995857449966404726599537483635231716955416142561303127666481025676947952278935910576844500866869357266017870495752752499930477950940716540897018489279801328791802696135933026883911394488291813365911643033776570657348727241369684332079960751051150117782899013901616823107150191060600845257966431106718146534906730395085276642394434484234573722783515957666377395151991769656694351539992777835317769506736747006596311667462355568307665195476408221598721380215237503653669621188557060385566189328805019549054055496707815908473955380312599850361829590225708119501790669632572961861414542494881713910564352474168844434879718986842991190467944211112511479363311332709008336151321471728646866381146732795689853705850761764148059076011084037809801040635747224175986148558474606600876389322768846149929746610927078871780066534601959202002890354770891398015559123501082988853579528295132921317251188967260396939756540329145416594144204739991901113543182856493497697858440633060614730251814646491869301522721194845954813317848850193637243916935467518042500798665400270371409635264988821494150827544389516387421704088063747885470608108743065999601874000504812795458286446436075851212681659743045578893020429900570710838620901133242050381640012207962555826600338958619964644797907362437230534991766871338226583758591434300870793537823623780062693827701787534559783699655712646658057463122538388258605069250699813051003364426439136008687283623015278049139676398950196050020312600436419020204452523770560562517319796446983651974603279494810398622500782293003117641678638387325663483978183134417658033696367399895630754116206748643197957217867168055393299083229034595229144435811438966352534861518451660534080800431100409623216807056744959840078693196322117209082855564281887843708954427895701996673765330254899444914680156186771139431637376262995815136359442972542870941009984053834920048383468475538072511199327856489767711043469772537785070269695557021603572332258801896772607993079142395275516114301050016856009466486643286855347907008737385578243495107836115162765570020934682827268310616866724813824107887320784195653897287425679435117419926100673506328781521550541417114297752833402817582878980871221833690090620598490009386008151043637536387829878388285446331384347518024954117219216783226956517748197383349607498336369558128135734419742999262384447587981251361231955754859488297240755292143385729525159554099222825003026158749407316420682206286646821308183883548011628040929145510103173534634899938051699017965414608935122960920006825796133775197832009899211777221148008574767277863005245852220228925134821998103303499261574944691013972593065340611222879051181052102861583435369581407601053410855075736695992074988326925260317716559346389938482375188131706533449168678817273972475694290811310788202212736966015477259403587430994963488492057863298908866396049096843899958568558988142507096255648152372706208672533012259842664925477630396734701243670042381240303893991684345171382581644556835571415363936267444194011862005870709665760898753755089758636372165785765290951677440056278020142934127850766562660476741984220561291264974066313779963693366679639067809301835022944695388721179020445922412554663332449862735727602244989874396488001374725645784884381892999721146996632856587883669821825090553241919204647102810671435642379792925772993879294953236244987948517427018232287913747845702314207544439921241378809139203171220359486765221938594277894744723610127116944738509196699097175403261889574598097720725540642532404459937019459038865908745611681037874854911190551271881955534155335411043796648962001270806161931277361909592570063758525834875301421905374337270643434208530619388370499482483368630858700723022886852114950441987991578683176799492997944460794776683196359516306163489216833054732152935660557439236171522731394350244495577785507045755668214667701202048238460786871298871883584699856205768361364202949898766745585705093524364588247022485659049930668135302107978809945942482874541500340301955486023092381169472890979905681947443834616893703580924544517730634791157738196897249214405857415290717212451726994379814238769003211093344274956561288314825227480187995167321531059954439032762898764716609982130158135604770134227637370911316313559109346771224097838629237256835319528928022287074762095045005939585085768304740975368439518724069448580173598721296934042113038892070671694479740813431891865298601077536086141344390055082359318137222033544206543881635161659927546545049012729379073582970721881995615975565740665834870810555767286254802456309916672248918337747999119260395556429833354076109244830379501829462934067846343977665538049262303152185814191983282198564580641912171560333993790632185667672970332757922326373168347278385337845180326983306774129354992671084569543163549151237561029761623812264994002757290077382115306513918911741452927634646677965577598519686481151844253376168404947369132387630493391245305780950414474160608384896757328815481048023959705667039173788933118060052883513134870083594041638240937974941116637574019646047823240980874519650985607940142491745558559863646317072226150980192361968747824682047118128141274925734233879781096902150759514223910725235984419214593135212750154730999238052725934671223733135642164444533655305020656257098046529324852967933634526378297928846006461199884641270960448189039029549187558046299454765122347440890460387289637161972185196086379666260728716560140866803758265049144248188120485119189860968109362291001775076958762640596021176842911769248903662487486881166493506449520503802354164704811722545683384262430990438645164651399818544631727436649122308253715688652209028977825235167234655481896120130367159377105733000548628048176521351890566650843041614404014440968769521073823754715912529227179332943856900359085338707226364163404926485027808317802424029637098626145216411528486204966895132203140072526787662564300008722148167860358971837208770724624185805254645476187296278492330262099201419518763012383747053148870105543234553490485325568804510327523770863541675612514419777454607813068939078135810542343175092512010575478867264377680877136865216514085916587062150059891051308221558993564911827175877567404362410392016489880901598789569958717601325519546795643254178128818567041362992788335203756478672968924510517720289740296129662861319824675033941963484460972222115429053485853028520312756674827402060956254311940421769016782665590746266533273410864334936837338774717773409858873855516091690167259912537988473271072808654307267010887513834746255200536841657235980613872255030210972800483230717895439577574640610847668994996773948911671543128257650499457260088794554263512619918606180215734120092583058379848778231547483867920921048716447381723577595594441928352187619201733356464180681991614255787008177014856526499934884381285011948085035814686496458905623510739526418015799549405584524128840307378921398372482091328851386931142953808404611591690756519152796463718334785142436578020557340522424861782786363286068615855750848336588668194757951134329616465530973279912182984640806330348007439037193551172633625264389090648774084265565497541671254925731702825754699149381561052689661785668179147236806840784325786754258885983428396901733537249580874259036039267500394368966784930138477400656569685842485629690696641006654522391108306485789992455689015000441832159584030739907418871889705761741499480026982818643606873722595273104646715411242806379898302191325412193749427140612963014278197979608409428418310839459068879297690383273421743447228063554762980613903928591718127130222390493216280977351677356734939814555360317778319252054063913851686743159339081661212771931293852509897772735981794865245803796350155985303507749437125803827778557787094531131465896392763220977160511933088142646470278416148179055661090379345768141718248117929964134242433475265061592366251022384395908573935462584267384555404466569732061909206481533448976431782218263817418915511609773158250451273380045692974225808036566662253973652433109593755465365012743225349947741850233234375103835030298037427423421835913258213450352298360320939267338405607281826944692045679310465156017421309438676672914577657233156487309978949819741601018321760126668472777960667757015037195727258590704428554923987951995807312647968917574244354108324733122511926482824459318931278074658139333595393405262598806315723045360305003770839680293178920206352929118853729513680402396306965252230262940067956734242896404422462301909501456615932041443362247793279954639052372063095960096940674021525028281821480480722367333315635914148961800573693828535815142309594673710273378064300517556540823146182150842950989894990566674124257070522139913038616672076864736098580976868018419299526684116879996745761284615623843129558410250290538157186272751752311781996013275000287096590644732765713782225561314071405242831494944759226733376441131619135549904328306125098645349062794789850498119687531170771904038438929824260584576092328900887122882661429460785750197879225406656074377855555092144479147965709815083051053565534605591172632203314473225287372830537602651890888875269790024550914821584132273959825818656434894328195038049947523011738507127241394063019328353626064463770419244734150102118724255249442652934747118214356934468069671823475339750649642206494369786434351173736199650940585516493102300121440948077665301637829643066028641198240609954406557745193562575033484099552017812044953363743604631254003086899901412325440899795459349060353845818824099730322500008710522785776556772782469501481306442493873793353117687768143772991627276404922774479358787448430729804054492234090892228036082909477566078446912383030590148133039429552657478410862001800156991973537387403943015361694073654325334310068573782136531959088895506662980145140604441367255330864594390067419522771619974768602485974570406111428170485951544787657116640668277374793166057473251017684824521014875661262597070971039643629695041410205714439321819274574946536594098490795118523562535296291301057396295831939419973157700929660120892839015896668142445961495616024228171858450856535988338959723152340960823084834260878048819773659659776193385617294058781047125526795359297990003256438009842460830941764209330483864172723278579289892807567178138003829283683139743021099236111251654904326485483648777212503244032520488705295541725543986414305487869484661692007196006292316996298013622603355723947160967252424110900727583208310354518238134059291958710596722583940676256508499773921914760614283500843718126587709691121210707647793882724477192543903807170874449258633203231845657124801444934995460225713598772759080415536006061293880929799443003075184863005400829350867265085210267774602978805835991617421467678567451225932148566683182946762516171971847693066759213937048010723643323179014305425657691848336916834806013428160598549317660925920138385349071639768413319430350170994728827510483200325597536251078753983767089888581804864951604363508713980954866171881160407106996274764681254205742536074034649630491789387720291848668598354184203082206014747366174200634118628095958899650373786860197595386413019736448881453524362716480836263102015760918485663419616935904396509564861507607773122161970645138854531754066273500844021272168567380190066486079653466417071039215937099204785169085204534113694928554296100469375690857700378865769780416789476582142785116325431247010704520185424806310367104336108715391900725008318231592247395778421824837427580226595246217815777729064348966135011922905560399201969025582794388468157433036795824217207978331235210888585118479720255537013466088591584101048974995571058811729177286477675830656277138470897987766800817728253594263057965798641501319991331168034026695429143732561378520663031713969258388457495507136694925797641660854994445993741990788764500841474963486942715987109510781437257021319355210282936786994390546402546805256673543092276654930983782923726032292058221126121413937632520288809969352837336032366623857053214720697355816721789060630085685779414939764072504325176300380059106795097080911360964393346786438331270336402443244403742369516167397785163148214225977966847988555005444806002972797144963243561596516524947471450136307542552865997521511398641090310301620525280095876199093523947453772612382754125167226416336837827290448181074552660817360665718103639578269820361569940590526354491222615099632077973108509774467556492500204760734093665970671682487497124154295909006462884893061575251391306071801928496342899769817253770030482779358807698159796740922825466857246680334559831831844874477492446255896902206374023428185947834389259671276952126571832200536751514613540872765700032809543927521557385110548610684556139359698318397393139455573520075796704545742262785611047646049198084835677193829775806012318591597959220965564893932025903275754646866359291737333170125088353742868039649746039023929978950934655891624435919435247422741631984232948400271772085656559639768866593728283502842924234194529099164404191542167672161264787812126616708069053770909381179131934138223151068286729112215634977044870181319070986923424845705571123948781655248765864210359089771017841039758530044138514141153403035210133866417185746142751670109202805119122887293336396407015350184893932435210202475191229963184773778466359179723956731531730867663351590181371652727995459576085259374613134923969277972566881676977731467583359184850813983929974908493271686723302155783451130880022736501445441094246297420258314497245286498687058751255230934953683740982195205989916080205435969331920251370337032153894289158058224662625031207190512654768755313066224334720083222904930674377348700356032766206140230499282176628943983819867130700545743206857906065753518115831670163168635378624226681181200451555031951561140261230649232481084384434975980337961737652424807314146002088674310666196934691076558866999658525048198440826144957137580186887305818982263240926298095007946177862272639932153966976964447844912749897075763698387154611220162754318665997776351019362043500892998384406731108578886003829877714176060840613594497901032684338816817543450183364753736521166310232323880853445472525169976579284395419686514595778261008517038779089352554403050980971468589608808977204976187288064802487940531465236861501563920107789316416527512647398078741310374235215000900501158779933807067612004836859645264546956411298316844074689529491078669423604496282382996433576784674519463199540413150608462316314174499540357821051284998098358830490064470913999742205272354713478026749055761086089821167367752744993868566220573222113908905662903120127372913585373829963521304184289689479928633283867617923516491429023114508498069131635924522532978725807963324645548377271943437632029597459366576019376938144497965918803285407096708331975732431797134083142406903889528641591155617589976821152716013841217287167725562859094601351038779619870955829204274495746030139468530985914489982097172382341521332494206308550299755929475484863157148866151393943587109930535765666057033991944619512445687869022848258883043996742305150644922737514709904784223835778687336641463729243497414171257880424734631900256638809135979585368504463632559579686865622034086034643972173617767235620072122045717821126689340025195503085641365481009218567427148400924015958905045541220858090507648406332184280247582795164986046356632633053031490560904609456161354739653624267099592497194521837810029079912548065397106489175805613898043045720581328864608050330091766245841316747429272192233815616916276682519023004422627154003689894999737307542120161550502118849971682558470574919955627197027808209157069395665106734670819784684525913897796040128077322464697406743654972009970363533493187429575058216396923218825777794440595413481346509093161119721393041170754219103870650001126205747704649059035250600817776173518587349151858233499715487803983299070375174188157671794367606710645362572480304478604130653510210991718633585537551379908315610076754110211163965403903155392298603077865179315628041510649159152512581592142027125829401866679045397545471774482410537644802950347759287355782428828563116895089564892211820936427289510709979466130188200291304888037323506749524152994571388636407070187122127273202959461884431156002144617542615934983030595054248670623476942410521734649236958608737375196422155238463187508608742884443935208854566706988453647912411925584580192229007929870311456766823721796712758136506064561269244998422510060501760742711467928409299951884457170837080673944938665319020011833076368644238966558944959715968082245422529885131455037516241742212274362396071820056462030224068878303264883851668346942883166198748780699697224992706018421880709918999383235809089975172886794806263564597128453227548817393094129056043209787233134670789198831112986745158667400628139525207455770627945007177972172966302260613334918937903534414985894139670774773332426610885243223449107039714360089581440452153518853351479851463872635110657054107799830233220747404608731408620472768763632235693552144756342632766689275260091745417023013299712500130380952985258796953180838296596995924274317766417117869867426653034184432270174029923276001732572551211049895232606963997893794625279759571827395547435574161299035100524389488438904026971117493080860415981476207720433068332699842397993704615681685593954106663110736711396126419894098998468125010910694747386056936881774575046488458602052855304132785088342008815826444743803489506328770114702097537128386434195179450232389002813841945225426911994822067443382411187468566321217962146180671937584980906365561691410744603081592842790626057118759291697159655259920772215079774429442941367989596283723617200756138352930119202099521233168096616635946489881963358033983871140943379483576421611385359919651090921506121129006079386091881756396621768605174699147247349101815400083555635130628925207297383460437344892486297809009062471378287843757706392806543948712376965344340358269419523706343669655138864617183389134859728965531513016789034696270916803447359286023196119882927187246685194951352489352581421373804949626706375203773675724604515750164207150660413669600145561277414061412180342694306726608664684270399578341178051944342354322934041070954295395625167637582959762491678439683303610798558270854307082688093157252692537711974344590066744666098725117261731388673594084431084263318259190535011416839455230299874678878510464309092408075110638835308800131948059006598811558586366988858429561581784110970546902087036276047610231832752221029572296961972279030078416941260379585322909054860520143088796971027001293276552912423059265164442564762180494680018505866138098614501168735368161730423059326595739465334439152432600393387470005813909650429271713518686297403919223323389125696601301287785562920759914295919674934419228892213861715849327436089625801129402839321238834850738565521961260137706394231536249979069264902026417873120509827686176465556878627966552754452756962422947061286391141879246682286931694791703979365880470765039911526137350445161525412280263016750820366109765194768988996687405457698097946082180619398021631170473124795763187453586752706131072762314954619883285303204644758395330276026019391322616553752535826370021063948472005019518739370750578649085065713084503926295197652883884882632051571029283954013630426122434932043635004779815890875649403139149794316943202992465569659599965229094693842649339180436985805819015296570226710265970492480181979163798314639556724009088389020367250377641214182683261001563299822459283693815443225024249514645103525866746491744687412719835023517881589567104574647844816106291385940584429204403541274644099485081460361619619832998414590831245368738403335017683965273798194258811306102771281703485003109925728057176614463872109753696657621609754872100530575662768820529483549531679047070351778420153690138422688882702736427388139946432608249959349397221263851892724919151332207509689000223500296938489056376873685955501993355197067286992615951373313151318030344987632765476521582577887410521332986516570425379839836345229613206072968108108391421357178801650366512951275678573919823339729830666505608951191466343391491928846158330455209825862150405366684066874482808312577760855954904881290127342984915548472225467554835011044116112417002412353029379902080342605680769624179647177171094925534112599910495773673826231874834194449257358106000837557349796795478493270254853375809551445002918576701013430675672805004963888618590138433961229817221441107267556873991447071129504472064897220417626509364703766471701005511188512489445570344449554282544014848352464788860054309258398373494153849957082242770502638744716521525622014539108755509883757648865672759369117420550804077698306690420416128373111146182630412851689430709021519255655067354793529173135779775635100593976969746866649816770015093060970864233394131658795935291743141893508300327297848506233296771824862988988428738517008963975645455602517242010518903843024134568162427574814932387717956296368052158185973100726015134696271577411932165133507227265672838240204954177817520030531044416328785116800033636303429560701391508029476546673782543822073565335174462437411165921809976788185538887129757097850880135400133801582290158822806373709269784214268479887164147666372251571564115421987449459103203063503092574912713240048582787551774063226634687269773477477388412262015510804778204256211101626581617540749464294494899378018180357928543488002457259256254287417623029929506604002722957613236272229502729056478962696355229001708961799584971168096996330178913944853300676078485595910649841442673833167034110161653562739560604988559573550462548734292420917098588322187544665987469245553055619667946909042506522114216322952739964639074832231959527225121274604358333430395305074371784759592977899204366555344083759457801672312874997291296940587199458727893952373254010824413303229608033814875131095246231326162075052802069322117975754217305712311032958308262795047759733594452213307106139842488418948453533653781672456782208764147982847651346458272917990246036999642797531110667319193398385611085985498125744540234791764961140215032993667853384992272590980659482835443814640897200422273234918420622577011179514827904715900170599386563742457967584643108846324168038876037341308232808463647383611726088357191331128422254162680927883969321345449634148455430251212718802917182589558440768373425287761495291838166059382789795450188197802785689730882867921445583835821930547694047704864654367616293418553737915121747367545346726114517900980578584453022014654478636310693155994740186891550146666119192155660065503132888171833431751595726068870322597475600563491066768902214787774163993077925200360793857162766055240208298157500762092783866525375384460280532949927497967319516195755963396875083834147734763652166363708317760726830721563419123306347571568200687312119909166035349769264018131083461966879918129528873388908278715848937534653748234700186163255364803413635267002986981014499225541761850965974314039296986897012436960495276009265101312109949172484092480506960233415798439042608895825348324333069042896214832290067923763831374450424584158243348672201205550794023331454877646928165728938627183229271234612263648194199026844786908262499391297732520071414087048805408225789282379654555066528530330396398479030384791445609673010469585163869582413293776521628453302502164085938503649738229380333639557528107405360793284486990941306202689455600435555038368475798235323113418531926421047829796681393200516957028721288236546312455930027622005967624853341903622711920489552803213400110992160734402123449505748740142093132671280888634592054104548335491452728559642257776230730311684077709428156972336918525026849283668314321482182165502207758041270749038299727664479486849618737996747418857309687137019939994697302775249038019204189256197659388861114465672230590396443050302399303723759874616025842952680108649722654187300742010819395894786247885400289129579818558366285818922688301762994659205536123316448654068904699437010923080293211835950700942356660674678315696764922958607331514717884501438406512908687965080105229661435010369291274775447917682866511750443648311023467553189212861036494652458139455315207946599443591504590795979361871675556178445197145829360021676509338744934322520764074341265378167612404342569891729161717936454030704952090498740063351552953750393019372707063339023821265166746362123779540279627658717330339648741240834474381070877855819603091947536279787869259159478824312114343328548495081699959083091141092675556519003150855281602298647565943229502467819608269798985771676228484718495114700442791922350911897883168425407951136253482747859138079938727310873833778646131460385255395235915257955640836592710289914724916739610458826550960418210664727798312423469986938294978609791324154582480872730474984215049540341356370783931203821226242077969027945614428753924433791785121424460869772115651944429244225949649933789156678125893256443917245970989453132332088591196354807894105963149505465098121045495606000161753363353348468524771736149379630953839232082012938236375644866426864160479294397003522014002314186394652823986831402478661247129797004736102935768533075692891593005363929423838854522282040416449882258136088859263771990017840501310530113922869110534231302667378459443946973098408896434865570966992146425657341426154928363579253024995471075520775245992413676567966360742654747892114605331106278713709916628132094009621760797469437713102022069780207387872448141285829310744205830979071570177586450591692290716149689027603371373101474562496031280297051784587487525879391116052246982960773257173083621347110860065604663811519617071614362831927193672612869645391009280982463430821468173451765931558829181766242663218788687392546298172642109120174885063535500671040449359512424632159480169999160184547468203523938517546343115203566126225026792596694274647632328035556590352203989049252127231870797164427804426706133248343374666825121544966340391057422045608209153051285653542612806646687284608135866750157969304262193227291912763276769485631211286093534970794352020587588952429775472553084826344402650196500238365805300662959839236128058662104992130394730369617841325115284643603597608254970304901302827713754185586708675107191410844796795691555914012923856970076982203853771837354012571766373109359653162530818849568742090997418871200116016897906302972330415104997779752741974840616957149594049975834987320220879638966168907630372358962633480405734970599602141175375724389718494253547748275140583444931251469720551163930415216321934288121034059308285547999480735693896244419364472908715715144805393507529938755495041493821206028775787010404518884652090234141575837305717761637719393404600839122456985238567000925203872290421317106497479501444348332095151345899502315994482977044345605280796772701395410695601766743003775085001272978128088016856898520056220201006791228759417014854790074578737984582673191119458355310695034824454391834310312124884611208570097625080795209395565691328785405183457664002712509992066255704071087475863778408650322288136209723059667493493045646416341310612014240676205128580868722287152435803733185556967202765068738319160914088176383358065826710540946606910520371162170267112563621512527558693639646404290301924442090032781874269026384007905773108663911019537218219255093162903769773699098836253481194489402481504006858719434701238373553253739522417211387546832689630535494294429730695338255150915916911432915745451157984039158383020999220070028937902665281396612142049097046711165188884156778966225823616544410102141499295001637010326718096606498480889849715148298224785952031367034028772320554836524984585828712829609108117602380089973026130750054471946247393650331123216010191554426544516634343896704784365320302826316723139494081415615128335947507796251644545605516647152274061331653306804838113122439082557912302902677377001722336815854694846315229453165247430065667843052570136301086397682011651599312536837677919221674081430431368714173525143737852806194398107388318203672413753856227092183212942787868952501649258298156279592291297775110512881816341566417751836127991665299997982401761487778359011641949473487947023731248429324302347752091250488619494990194454651468731796295182410101419938864730543207202524458982611248869470152121449989635472323820532460790991830010861915413994654381018655278047753442551823080149296531984483715252926928530000189833046418472527985030284974159289312772877641340915032238204251051928934412435720213917408362850044250175569937449061219646369445032688960323032326684315725208685129685773915939685287926770898624437256375016935138037164842155234442499495205579263314650690681729260276387153873781408255247677290953885663946273307070009246821705682338297049849407370408083332077098284602824485462669542126390877332987224820715732883586731229574879786730267762894355283175368089526239591296722504516317378300714021835870892379644430110000024033351958916199261381886366449997268138513368058948488267758598123879355672262311937960486216356743282840712925767642303478086957797642663367500093079753952220360059792093778272550312798080620654943563504121289298372021022525123083153437199169003437937266794608936734219628422270093303965163205347362546665876732896651844225990361456501902146966206607638395231233681898532395524549725346858411805969379446425573997896508434096260412412291149162829922683119187547504332724084142415394437790763071927729338136863067980426064117748948134220944266712959069994110671477934654411828424778981229448654107726464561849543662913646411176444528527729067393279357356993775527107930061548019085310256733335063181109402619303223357055287060060859818451397585285241432425795972646667664507708021555536686217923805106183273694785806313382501714095509384863005440739165250824497305136402738747759119260231527244370776210457996999083427149224862762460151204390541763924257269316916522680606457734173505965193651596235616700919174031120152791500841839668749909641549826350168019949362686794075499365548372815004828492827379142959245193357090677748585375717836665158269946504500552938424192883822987328741936399225932469112369579465753419710168002554276904731845070470228556965253765706636463640685805315329436135963509972286262280469745299994502017937429473931938933302691871193838867579216386257697239149338146906138012523569369489430149971674487336176511469637969179818072115376581736397955028078247551928247079800092043404532653338048138632443921592469346700929867856670236517251245968553204962717104992870171237095341595728880553815443852751449853890090894709049849220226630021291859382627438696454502114523466659096877273972216274089717367582096147656534083977329958546370850212123798875957685227019434290031057504756163827494778501316861553474138071824769608272503989539044265163196069164214386525591055068988315558954868055145814380774504008032940784258774678596748705539192259733619867901150832706978182338413559450613378805136254275787439295968178892068344734621394260519631008869290222287556154552974954299139378314300189099869207502732838539539406385553865985278062419600399202617360671007417896751731343368686827303491236904598631488866580056644482930941385931250268534818722596952234808435216065988271388516445224541724073055922930731866520382905082557237204723538080923323859579271165557049373210791881650014322953092603154540493121773125404074537375184815086951153221332867738458910334471452307018725752202075898267947772509045365349673378252555676487722552599329093189200860702803538642640481034498993781115018936543273859073458732363623282494039200594243118625669933156474045405003913476899402523149635361042347424307235228783352960899042401405228530149651266757601119367720916941865615284330768341814244338467898131105999579211321843326943334411447307978368824970645753878634555310086910416626722351366291815338744574100922632832491656649238823360202682917731592276966950602343418881682983852115777556620169496024363610518814437934143828972089621697921826012255208467646986019927347588817974828168080347727762951479056641983871516346989584596624919223243347677882594294361913394090866429278018403466840110448795850425843011217195993344177399435784274099601768871217650286900938408140382630942014481911682634257513842447984004944157056534937147412866632636987126916419575356861630388223416124487988980805056070395803696688517020828798334499020027756609993625416553910310247126851702198537223207434828262610736661185241894546464896687263728073297231999440599914108184937555337860357187259497350746039491129103735234802837208449673520349897494538294803058104125433199010204606231926493851440206210909949042677844781424814408597691042189170835534392349328576463834631238711858693565365511016453315939275762248080980429359622329576384758529850445140643464311427393548380357941801535332515790201882630718296386534748183412246983414587602889638703127221593541577530841368772306199153172068604404710224758742856548669864576928688048293023234270662591608230494039723202881459857005323168264227713686294570011181809927889241415023841912640324836983229459008339873840476651555867568235199392733324321930201717314166330275348034486578607046365108926972465472156760940611890025610550412304535267197453419427410797022611074036094007310999235585759185934921742552469980859070549015931109710375848460292137152129974076923768763954037747711679652444512635907356901646523016669052016185780460477937073969560345062888879684904478344439622822722066579775247843353630039271165352598278347066128884502627386282953043503572184874336835104442410557597840654981736748262848933290616508643158693939666047845485663896333916575250605686303374300507817793589528583393004225971315463899632382519705635849323245549571213716948479884086066001989586068974154235413172144539620740655616056352633569762297879689767771328185915231769943320224284632082512072492264404427920321165601953959228016830615339027779351835178374560135441021978675829843634055867350817510317337805885444561680454834891406455001780647075829730341336882182536687609811537481043076031362079891419104549687717218084798655246544891205219214369456915827690658054656434868988656495353545643262144347028540279702561431627161405109792542734707304038052344905443667050900723621836250021008084852849207879251763605226141445325220575117477943176650050799656986817195629555419689152005639429749965507915812939036159333826257153212516685928261386500330177350572061828605264863063590979317546832274066944647198399004537882615132805114023966356692365368083219710795670264544863763858658415559814945378694979816657143346144603779043805389572250634551399213502797043081904493784335412215613235814603350458883988022705981392043359080689739799790796017994002716058311967143918303631674524604250575175726604244023260858666524202132552396605582090156965219947931987391846885503354405455097636401986169533817202995405311925237995555740533759978178052709880790665899804613984569181165596259443788023896732364904206898903136330469855505740844011323685604691529577248810283674470945231512437011764623465963454101870098234426889902767971091867398096649873332416487646167272157137881598217805304107047317480801947051718494001561691197464914115989559376634142166929419165716300615905891261958696381439494753697980817534076896899051698757692025281873433864302294160041590189725591727069305811478401860993721402715715241078399416654646324481789979671393057594256653527318217220596117423428066928404636137302219065333362065336006554957347290520239145492699447885911062301351988064458307731288168642858688126521631281493996277511826756509616893206731122940164000207535453666955354113551588220696922700228803130534683310819963771841979406911760799264002533124507114105950686798582042170272544934334235878467297469710818548879656682630020108484308122750835798528097336414077614759584171163811557953216947214504647719848981799539814781933312425940788851808415182946293826969274737905785521285632855368674475058737893926703696339486622576487591811595187355418140469707351476097021268299175680936304107865500888165177708806786449841531267867467354434186003479791374723915121440294252797191378166428083416585722695033083309827268592622941764547174918477488577828199589766910341855559266529573404499340032304133591638020774446356730417053675888959070172296762373363162239079293733825726613342784508187134148410723570069672553134588798455716355812117042057308134934147530555778872934359756318115417369219505820274944292973980723994968966052342062627929982503800613169837063383322862574463214762682494169263215749172127272961927034749000755539000061619676480946943815186219569860602155326298614281924152404003317769076561360677302413185354073839687154326554905762485388300796759264455081735755620413324547107491561524177120202569834111113669894934358434231003513704301084185919301328175646710178246621651268562946932601031085205464203031782619449196734056877114694770237362558538907372093202703904499883156307086138132722407742544861591708039940866123157960672222709238250766612955676430816837337766007505196212221665054019589122552927269308740499351574002916543498622368156520960122428261798514708140968322638919273300406210561686627895664085977047295037808807938807650574186188019096462392508694700134151093165286536656752261202580735495412123353013702570068596632425755715387206232410911531539187571927676166859699991279945321041422593536094951549961735199530823772679321775825197333700715771253752569297356643234015191495837185090719232792788996277794089827076978322808436894801693429000584665629437292999476822385779208531664155389054734377638708527513225828374217718164398370571476206938169564636760551083591169359017228922841493753806697796440504998009205161447664192719238845431107712264414557519023914924523911428642668471892131126025714292440891842253076674422093291951374800729105711176642531388580347719109809033454162173499048982615894610846749333176326099113361218044317757366015077384234728786303315380917162160605563037572821162542971633447751228712746396363301323714324580450849319243649536456171714645812734460494247870929939098443709080744558812314584971739543172655312362663257173419545123608543012784332879471171156120030054223804664296663115185524267911112856649802219100450370743201909162077237204212334465008355001967167627703196036667824362545026606833955557848789711364577984505047089011175011792261440118042519676410728090912098281727415146632646864396266109343403844906505110772977162199214623967770196743948690492819060804996458644397257068714296761855273004290344323001928385180877543265547095362781342396103362794736806638462733347299667357259870062348930281820711373343213210079902832023150092597487042516580003481023244507456057239203160108354637206523126316259674220538026205347070807471556362096989415684265386100804257967108902210320903181172566526747474588126155297415893432548743356844349778122193791548088751231110729328354649672124983557402986958630300703501712146973131397460575466465896593193047934636297370042341829781875036371141288940299694233983521942719197751855357821158139924767106382440691990166568912736743915555252225100530548237265874544515873620004218840010999470410820085064093636085448844591299818158392628369238773482039734544217145410241651900557697404245975172500526867040428067206246459189969536688902860585332640888842034508056243736992104648463423999700261901177068514070048021291497437929505521767182510624422801689064329769734748113050229415985624918441583002939916942878800908547319273389968066813394403894167842823531997961232946633499692117955120981855709849515060745471574326254824671678764355241954337607742412829281769432039801958064302075113252651180980003708742499227099689548203788529905624811618833692712023357845551137679494401811899234604860148956783441152663509102304927780828229285022878866354644852557117563896629783886828695473728703732228518045218382728334856865366004415363805812995484539107183835683269762192877592174513642013523011106606306995308118863639245967649363235089938490998374558420966542799681536362947294596651017305382731088172880356294954730949668233129727309680067253404737055983328156234124359000120572747756149241786800306498913212898172523426772610298977728314473402960214651220749085284794548218153205838993008510745468469856335660086956976254531772235119303661712793734630946058667646098491189695419069811808188399922567301205623620884454100055300989992341431379645770816624739519171425064848329738485410535237919014793132233870050394444503325588992880868744610916869778748628859878245080565890319489683147235099888740208957626728939011445688771946635840515295356055364852065360624856902387133515975020428722925913722215853658075306292409715379201845990949335626641110423952468500227381381469940955879932002888946571803911440507309751773835757305480619105030600268206079540519701252468841692839330580012841079873575610865913106783202087444720171042245721718689842722732762585182630093737722427105287948197147509227168466346673554890025494181479043666484208735983756229291692288641588148453470040508579748754825155456703026785279093039331265901747722604666643270146638218349598567764961191928389847436718803272988317670436988647494237868355865923689159667325108633266326459959432090874128023994388676089582041128578846629454376528555452077881000427684000848224977533237853879378861352410458493548538496828900629073086668483440521329553061079314778815540865528577131847614606688166667786724180684460744182564366957178441886162268880152957504008840745425497489310755280072166568965916373427577291691404399166263215233484432581529213740251331344126037884751712388985713696179736790775535926681719525406551949020851276408916403302237755152318077731000999979352569998803081516474607727512684227921983285637864736476747335426446031003315642132724483505377139358423836068888117223961483242560162563555993218232491483259871965974225577772018612823388421954930037314523797415813945490749775531522890995447318878021785636294586522881758317850895846989395230607247898900960394488081111337585308073023213500217296918615959266988397849301679186117549017681315512241860727256667783677696443779934287448224007113950452603036004449391872586896388751040603913843953414452621889905358026262479331321712856599565214007953655781416006864732479952189134488765041519714958237150971311991033607930431570402248257896659083837976673370598744065293223982387801978629562285721821396641684341382057755529865072940804792600571320585535334196761231889057420031901948218672782664688375964405207100584695190921412877601237883506275074252418164575810967658077762883475220191504849608728332114245440238479735155701863586263939923205433212960415976647159187325718382179330576268680969983326586988385211048222941308915164838636418659892113008764757998272425175711198928166871549634958788686525315920830707373375761292306894515196328198457701479704578542372995129049697115860865158662760244775957264519897012552095225810736215442386383317292887189523098783539321934242654353167507410872413378967873256800627474356619642137830873874595352065320950135050298250050523055369846338509426091563821835905642332052568219023685886912713433288083814960226383824695537699021112603969573092713781965803624613677185365843651789487502672204202307767948590946455265827854480974352690674622111039339341984764042067442860559308237371990814926345113943074025807992218640860709217770886390677910025341700756167918659454830080543351332126508888560565298673336284574731366310315004849685285924090151225770310520692434849703562474609989044530949814246013752758711557017695155537374241289211637091784533754183969979267834619256084986261094341434863501037807671863013156470431124228340937340762465396258017746567274963206970247194307996987741872405024198611724802246958807417259504178679060189607088763046443298095691411472989768409134794826740297273415460078408906952887357295889882979912664521815982669903112164442330316615933981518645118882704602765466257398224748591150282472265887318040306449654560442771598984056114254258247300020050485424454158603248398784949248732472680886968711843824020264795879936777095059359706168949982259822148292093581727059263592842452595820495311470291172689583625574855284978641662281542201053489597057263369195841134702946851024240195723857460965702860952079819677606786436499957478385251986596963528203760228984756905614075068222202569029830209284739768294131134275861060811066178534001086508832438312113442641622349648832248145323860217623407836929038887774468503913120881626093324135745421930686620730704047893091622922169080395806736781809321255335498273235647409471132435539727936175893788404913383753548718371137418191537810607994662357171623305204718097574142652752053972701506681256519880713853910862366002758745459643490879309209380311397945080230475771052386028971898486783935568695502698770952670227519658733346277494354559404925897217189501688538554651427773953429879287421869448212869401804580574220286744399740610491006062332623582833258256115238465194112527372093286654630327872480350510591878494061848532889193470530675059469045041003110712444897908512694941918853237044639184434158256944320238172273236924816362530015938409541446886753817670393613975527626998604037926069578963885131114166640624129553550802257516941946703259435075026017824462028470842232418334790180495699362357511551530735697310702538319118259828838219882899892023400119686916694681749918423767361252817806789175292263851049575686903340871451829779475739826928484314683467127339310545819023931310048085958759632436294223017379471414066572724646131787910633469049030261502378983660828112647885280237710500889819262641569278978374122304466169155722769401283832293839460190418495344360047376663423840878124293185213548760123526997935794133494049074358629997520295277749846413154244822628243495756323423880174307689672290305852978736958140724753295982575004051391185562364298569345903498862348734280010618912952264997135853893630447773599242484893887671352962088971457661732534949639763400168888405637922405416986223097126930052964557510419233408774682696952655719695827924722924776737010101174358395853508176547027373686972177324425277474829345377988440595341715670707404587924401740566183957287574507730736964432706790297969734699690938081352801619926635839826124509693572406555533673606474728737347524552651368917195643664131074646664381483780342575797485580614109089971228172196756690532104984552198065986227908497250920282133245358889169307308114376324940446737809248005029456370262508214761435652086231226959646813772994994678550911097627056615987295945141081192478206911967107306329813584885458092681809888386976299518032761089660111674075982206977939155230880944867966730336424279322932156836958639892627629080197959094639684277588093989400153755147413546714920579078637116640893652190927022323935186077709609317893947583811165794999545788230718908274230930438771990080726059904059634335512858874431409561074557529164479823155271794162632909970891792775795286579552060882302882505697856590434673013041494993603897041642024079121393917851632793906833799203557388455480179611741312661715603674047759585776311490828598238123280056884269876581281545312013153436319577815284969718565783179606050878742301487050550674805248102764664764353107332892352459194408664510085842513637729536617821099383903285739240334016476587919074671698503952261569408710219698175137595685343876708307859908531822592490736060018518071183452349113031111861267398989344915894031741672417277973095272767962705048440472489282425398821295067825093421017047955246845478629437229498822927478963554523421016079750466161983660971750828869045710131865216168932564217831506399856988532675522313700373066219066292583904793516529357534474194617766980269656426910432007169497655976464361727171073883155102460730283879195131682869471949039947619455364675921005806624950923252498312875126878964161726491330216870034557638198293813970002973601962229839087011911142816212866224147619632762944927862062190911593508175521867870922711364257136677045151782713459886288102134488916501637839992540730873460526949110015705485536586679363894424562602723236331672677876204662790296165421189588146349839043194409113927784774232108209088433602100348837826801779970487315994796650906910601798779857245286860852599197730247191507983630437909223930106547810446919431546552506936522883670560770158680588754770653169196656917138382052077029394712570401629939698433832889224015717810952243076246066113660889034758255186592322103015079471015160811216781988220157368751569155790375342651117749934626010285263348454994340307176434274897089758290781884636471396011078373180103363629374724891530115528900302903731094942162507477490842605184588044965154701277144895921625156474369812014010598897402268841829572721552333673605006828306416750529851005304357044789869957708790905583866273031716432406061576525728712392497738466812027653434746776086662459084463084826941947287762260988561156594383817283158181620190056433331738499440265317742654446131496555548257126901232883230396390988224049092007513456242523111736473514564058862408980663668400364210122550431647382237253784745602334427450390243446539648799073059832070945391417729990593389291343863513537224555469692699977749009401825620292234189395191157479629002136848654821994189872239080909479857360454524150936332960902062129537644876975047299004630198727762872397481945111298088639460758182425664459275274951175167107383236546122980495084732315189334023199355862555999593850558057537241310962036085490410989168433114313668105235599741182662297428478760256941833632767383193533085737107633543780346976209356424121299959237007017267708672335433570410910242420913720388183598918712824487896918221388578555834484958719252857124017486157772985689061801478731709141482939390137714897736313255723205859968367797019600738774106556407369901183319649985227354122686126533981598612969504015759427036932717747502956991033955716157229999512817873699685580583143190050340751579915715412402936433201289289204099808565846454780725174640226556171164408405109037564016510781829429549448183154838195606654597605551444341148328749089243362191427895908687560046706736791221824373856427757618815533315188660301128239282407718042396383389978196121127617769384851287304064259554201104046308857278910843054211403751470694200480587343686996367293696119268566495484755478583892829715628033067166962483838912147594278188979255071703142119344331161309313549417914890506611104871073393996372476587840154953407837763507522796576032628417429219479629185005626018309377131764359698621976413826345166664319046478024311189010469480771824620164386754172239811001269905622616556370125848629150661987391672209175589649641993923525534937813721189807682003715579303522170609441489696221512406527051930913961410476331095235042003830562044337653590642200111218105147214297206746733228718320494569992434094517323623617424430718932037870247379411353269927480690494258241446419149025012142694745017305225210719990650261081601186281590036926280428567347060965402598130942353974255438185698683597377480531604331544920653362528733720649347024065468853249911151292860322903255112329615427756094320604986973690533277007144517414686859393874628805519876690550175350885292672069065820523701828912682934862012353836320276687536587906942843162055267714876477734230019098069377601453391561617010272989353725503165549869882875808503991927305272747457535868969804819910108801259186958625838778853247008556622770425674288900293933936291479554062136735822241162666721392332282784628778071633360062911444431549068164799315373019456366501486740266997236246193596591828455356339670722257476450452368276940199423138504579181254332156708594466923696336925923550169052138155694369686582700919259636423425028651224233598324632850840112526360437663071467002995947618992973382787608227820490806887714456728986360122788543230688845314658658058973755939416366178426027893090350508533380850981411011513453532813296194805652047145831513621521776917427846061287449206798459368481251718619406009306337726898209462127896895768093978569145303632152890781945937452368257978501203821342772826630100910911998714455299924250975251761756491522323391382810697228870140411175417554738692237685905261574216092784386711758888431271205121168528571710924811846240666609154821973898971668356436889034204347899562850590848853106750525256987780202095474899533008848460286550639907938738960051918974407618928271102533669175616870010278421098040898214863062804771938190926214602961245713080655286972803680891280801208109751002818508893485985679604360252747591510288609884337988796923665729110316266977325766161906061571719247265776414881320849313086958102747307121383945613811048261605890783587273103026866718145293786684400761779382034950712344855891533107871919344532077415199181219085870640230882109780167150972106285573346616531395649002163188317477859582239458013209628321267558480491088957500912271874819756832237859210752833587833793215746669345703915677107205536337729390059733626142117543576187414441766156945774777131911408289345378612781934307884089047902583102415977051006948868295800921488549007747513449630237539196871751818265356080433201822550024574796853264160780836173204622418558546617848155179006226542069467195704292590674915774580408032223170705424909604561988180994392331043311914976212979886541279995260582190013134846982356997183207993512000145213461750715546277515116025846081402660364509808491246328442365837164686160443806865496713790462484123209750293502492521466402226074535000451770096624117644500397807604859316913790670825176625685474903764596192559073157097573421209959980411762157876420198058790900188577193935872171997724289563786564937017951197551374825874098461125893949113988019069304752903937474448232767520648562392099477147016018162088865566787302340429702187154440975741965118343157080077586053848747038641816880141505775073289369081907044692003655263083761061896163152425713572546325417040124705294856518386639075397047999453552397561216773397674948961385974783787669949764597159703813413699919772869776187585044190983614822250423771545639258222223323318955369032769632379337192901795521711252420516335485028142765911230675692479542627864616249047241876906694616439622884715396881766822635128997363255870477514243649066358859717925468289501634129781031524019986414279969958767055570659101384433785590450498570121627463184337360481867340830677719632043545913749352535719811354219979693874508803150866999043743238465593994661691102653476248843779770110707285813815149948024956339122685481506292692875850633025599230588660836035776806290474815693703616466578925372279435030649024547757552360850119129266896987239869048849157913404214192939346204586845275013658423760058251798185043561122512169148330830751952752689603824900477930968755220863795816536060027976700961176785784392627637840857278631312550847824625464078094344624768598296457617488102879082680767852798235992268209156021620143979016871297643833923783047759412110210313565613014163620523344159344178230173230144881471217290640117695473958963397893870708803328295808992952706616103109866239899094650043145221866970498952219081440072921446411678291326369061576506743109010807516023048699845451118878520392513187533800056909287951915683059414204675151640231267018732007262295733660201534530928397985810721623634089063680630779585149188330605775136223698346104513063978141086733563684516919644164350538878165381224742693985281297082787815581861705322413551145407321191456044333156473386956823687734600935618365157543471778813616129117563426315026556189264655855916117714438606128454450826506921738476788936478086122687215915625221382532890531928449374679326429109991576056923814924933846158508943001946970900650652813081767542521793167537725617377201023858396517510889967051899872287860384305842279038512320769081384930917889686821061161040126094140971716965604565139935504085661758270445153140119869311374597589907025127119356973976179150347613485465265551668956497346684943416879318804471487653127311964478323053443710553712571123383359351642893826705764181403418974865822585252615061698048655597593259361959052312698173320480273374468048497003020671959010823221356181690345753361350578571322377468474611826711783812432670879221378185448422627832536220648748214285131625131758470128618851225791263637337637202464281489367048282920747449060486802484827637173316631727974444757624994918083089866679483368481135246778078175940571915966834671700900425573047036055611515416900307023511050233229373648506513726033860743117491444673922206072088651100176638565988631165411033374802122138879518903805844388208204480661729420990904473410534891201558266034149259134780087457203643203099897113776562769812578638671502246555708464995797985386728503742568892766789678503546815061240741326627664330425745725687061640961927346863020845273272407978733512237969707495779244628238394161760916695124684690761451019211500635223720520147486300471962886737033322401646548529484569585151681353820378984589596784628732634149409579590271134011969356764272164119403194584461735648125211086170698308058527977216880731152565122032959932374675247037813359565265063895374145348341239872825001238596117032665139623554080926836957799984426355309838300117863621404650398286665844318617213769830175303508886026150382825247102591896704139341480086353342957489785901030994934008061137140066997218340790860497317168179393439665842498951403876484078672880845532379281734323035486990950289467557645855954277485464623416936342532788107788857743543388588174700319223759313256669805682990562198899772421621091484840437650626815235121913447563539031007376121824830072022891056975183508554602827313509894687238403589562883393575403601965342183065188713634112958789532623513191611721105855623517888121832547151141173548584217752545453570508859652499265743887688216990839081059530266635628090807101350717114756725277813976712696664777350336977920411786229771770730365240943477485742579429444045807500211300781120991138523646802979074990455439089540880627641833864736331365154523056646232474996754771961899294812879137413179308254850771154688398183233071278202846951433474874905475613324597325363983284743467632245436848254301559387428128596657715788842224307713960692703863787138103269813403604499361524804890654053573804547598715390400646864085075213777334608403483219810677961065498940172587191677063441990014110383200768741131173683062608206144501594825154190106553494969446186765810922077641509676377717913762997819394238512707337710098907505261932867253119038923438753636836655290604774822636445902248380476411127924308673031915755245244324074563485247939992724846846395863468773829731803338081823797407943464856381141437915133023898421555932406077869560054899681912075063939910512945697019915629083906091215273794633190464526974189239342059466371676960412664725068622703933790218645474036222517155500573624198646531163440191234216864379521108785750186729302329519848125284412386048020743666674389400438814944132778471492852362499689101688734805532337415053694550785676826904147217265348034887285807429094343452786293347781122043672115499795389522161654271597816091692762750607327407972818114374007165279677496351175369115413038501651076892476113454246013194193889797962331711943283281805048153413620495884769185031301511599796085210483469263897227804599903595586676737909608561483406766621836540958570672919706114354535132264553142233335952605294411830353925948174777864655676066083541396189556140285474887922513037587674171171759656564620103149865263714784550754361532850259680232687223574038576837624348429809970131946771831152073000329554882000672127069458095271695120963756377372748003751374300155938190366228121271995714239557408805281801893508284282823781878246599559445159660947565597476384880560302755033704449003184307108516284235526871376161633636923216244379979529100503690730114967481749197216495066727236137868859377213374949877426302074561242258660157838780132828860831169532014133324532107903145853695305029364489059101109700979773055598712548887345899731089696912971866994230150482517019717769998909683788685431190234019337615364627579451088597678683695767383867665644801544791659278114606731518551965657169432686036463940921763356012963910808653600109509943772458547651257210023828510324031955036233819212297739661014606484969132872004731789840143380524455454975007087185404435035314742379322393118689617244740066269552535929698379204055181356711459214413987194490438812175891115793580873799884917433902515984146244461066536393947610294108456494341347341808759814466652710882618876179004226917771622493729562800825341906493304873532545120018979644183166327028612897837242038800761355338405493155322167673545161044825850689198096786371734511790696371305071736399723732159573347375288247781521277461044145929565866514034857146358025733825824243486263648162144589871918403999406497610525147679560890465177888393512393913867070269688334233015691732157012778681462526873772188166503910783810428405758083033211327858527996978702027252416201695546643308648019234906624946914934473436145551799224068070468387234177884008578759630078079713856726583338892104025460557048070470855329908485105389286775148927613878106341003310300684450245699501841756404560631071927569094476644023086882842963597754895721027295444896014325088563805992768827023196532635170701471011062353012574481058360265411131201549030840735254908364457648167093402288801656216113358652958063334903697237866354795096921382049123849868673374707577392388908203619382799533076859818137611745679751188962094387626061107385983535239235026501849813726573194909177667466929268543596323108916620368243129479218438867403836089001789371522562689044684479731510505154354330830688825627995288589297418223148659219958069074385853355264153221192112784572449562900694858602205340360886420194458742404974132958968570466447055237266478368250209925654034123260289289648191715805446831265649621240529902825761750896467006870022530587044812410392400339581427996728015436577137358954045683066810088863395486668849374584297326751415629659503037490233528147048135819385022430639972118789773714266722793525770861470355702990733641650106156305058674821238646892159314915861944523583129825018159845792872622801505453390626324982392584274741681111749749279818013626286430729028864830512203261887675636576384039136989737699369382885902749239254654053865649686542635580436849812721175755785693474243292524882461000479554024549925256016885025028955719706803197424284265716564575133818891964693510365943662391012390812341981555961680519740743232568411473980908161685224459371106331614083083037128888167022701498132085641444987361375745129817657777295411094069807450329191881798679921531634601440331672057819379338021999399146907962021632989627984405445006371861788135957291343258689727717547847875787885442440168245573753993471133016470872153066212747026252040579545851653301715328574838755792610504354330465721770583932189239774761322636911387989594354563137997105995660761778864310830441023444725725848027777149240963093037825824215340357860208690225995691447192029169664904950700118611661679282245866730047324130787655792905967005626438314631983821959987796168574275302207943981408141946511152903868116159920097933927841425220650391844392662446485584478782274753018139476604347075142463304968302139686176499453480110002113094994694970287477031589005438836129309796931838233419320427491572275358805899408684697206730715002119903229480088025831182313516451954983423321536484466544381487504081498982714334926786742508423983163526712844913517186965428226325605746872175348610655173389593814831138643943524435638471735947237651054634521857422551876903752544102700378079683652389058625327301682597796200278567759018599992575577839600162485570931400538803246913425625086410892005014431973055318331560602557210534803650010660108519342577651703208965354275224486288945580728382823706413210051411476698766690948365217492515414301744964882605481560802338045786110533284336876127667980226048626881002933743080755078701935157265280752478599220141853959060285897933944522484592208318517373193260341224083030813148597321760999124783404151111879689620162421130822715371494606924187787746354374704786514805512787284367916918081498017166227250983273223127685141207657894976518326662837875729678902664075526866594339242674243194779595209486160015254949584936722538579112329675900321872334245567116069902311144312718565553666946116704643942138239524327789607628055887062260122041212291403555668909595123684379562211305969593366123644670159591703150145552616419901763786971674355246795004888259056345144694311791028768033238648683411920138170664205288966373657276590926330143400189065472140517207950394921672649090858501059371416567178892465674714017585627590365627740958166249010757660912044449124596811037244534876249866735954486375800739575782292657893870725305991440079745085147031012096965501302493791231366127182627307543763762281951324081689984117620377263654704912409291782468346517435560676784555189362854468240603586228690746730016894410297075282085526463458921070799340895506066796877225092221088602075463658661401432988371461353809793594098809956345758861966474250391541244204260932535895141705973071217049558217307175159325659651462948668113640061262654882796070772562347308162224433791947274327924934596790630260940996811353321737230348512766664330120026242025876648168836684019135167456964065044228973323009529919784816560724507189894871431026096920912692820849962138038764128562647331810642354461059373295015070127873800906867711351327897971206215327908972863300419447126035988641928055750683767704830661968512007411981483714466388381198962070539494946404596076200944020179038087262088764182833420165458666269339598276290888783162230192984358175534921657956374597815989487077717130573040609168999689937256888038252344499469873088621017833446931820093582960429054367111208062420085642528866526533608810761087086367479755878757301431110240267647560679281436870061191796309399079554854976296079022702346379769710406719205120934336745007902568517725311722721142458744845331143632168737229404375339309392620692045669460434191808864055369659271575765041697735106154904617762571260322024224976984084675143670898225444821538497830990104683179994422420601793532789309174238799934144318894881898291447195169098057429465133034300392394406282305392851573534151574201438814135031520387116106911356173188109715527759571247903314319449535535021632067968502454090026327643387659101330301363506659720540180531948651021423992248396982390366797617314154039676457300896318739619295350735275752871581937710328658960056002786851593936849271394806025129867978184642133343445496009604816743808967118925259530646990628273901721086483087515865500462696841504714778098673583830294718984070992617726395464966105110178177832017743714728761915725943444620767071220733518201203029977183433065347744251055998617047400982785362148764842199398587873821166413908996242336748446889680559407597584034542055259774712423510717479815154914108420391985877687746558019915953798682795065526268597959735658705346500748538376608649273275888749076799992862440632593121774029530217732949426650730768384052483178331026603956566136884075164396501389477586254817141225811893585997906966066807269195975515501429313124300050811792246236996484400414049448847890565630635077674463922147708632349056657163795052864623749377726076987877565124137912450947853055455339206220529870511838825449099044457067249663464366168526298033015160901925447915015518052863184238182292590743260414959724482647450779944268239077569441272936494262669576458334552912797620236991446914386640277200173489124740000496021588171447912988844015427881624017982564602377168932854846752748744660601647975499963021888893614843803158610313491546467090747193994289523883702603174680183547886781717676189728278362822902625591015277245734246090854750180773282580037538400392967596543772270234012449125639482134761957346001121693577997502938938056539757349199159045571464246057101523568793541212598060731328628416260587889150928521613862345503657562784499835633752454055800823627898586186347977614905932771166706055718763031594680445577878938285336387451771926359096507936882337434142173427680346601285670928008890710345724161893273821890718114920572679704611730762355611979157868351978841091713248654965671966781862167830520040361101047041348143069350270129435088927541650070991920923428138553682774081793508212502939015529919420825131801011604457004210911783423900421617511408356305981978653317298630496201624655494903596474058746766579109654645251904274907486922704432125338735364776089751620535822296982371193166720885398825982253930668985079266703347282556588242624303060034817776088327313083248216869296011762115374916169851391530188202813217111655261136102293159945783659027978517753978832354538885719281043153199580686024485101577244189527144415531108523619106750515666860910208676873294780743581063703898258541798731745276417307823082135954250168908927589628979673371878671518174224930606191378885585979524257455235343560372176957770690135214581848846712509044420622658635416967382983491388872147082250882646930610226030433508718335776634627082023185100817858730068874186701016100989339587334723797694034597844284941926299836626882240768594144585655107588861320144635080666637207292359959842062842507272268524949322827317811105943636823340764133225701616555321532794015550009461396287369633123347480809289711990586754134473570415152924615211483443842281452026862497124326258523986109432155421115119997665252884639653784986947519755470520601575430639593945249847744213105847899293596617580736389878259875917705210600918893412091193132909832548272210555914272376903076948018794177027097002050408992001868468727769477366409021793232424006185092397141042722785341817264692752076128860887138514818280644610032859501993272471487091086125749014235294213246317690364437224923862518162332145669533609187375052042945473244011101428702416314514266682792722519465948332313282419287158687566196490738059938557705471670424705835026408150431961905626850289020508657415922045503925125007582817007679881356736343818084790655013165264125913972064343358474929811168972918739689022450765580299124760781338802145003523546464742635610618803660288202426558508627835467904840887457999736560199111505510006807035707587240215202970579671081097472002397380992229791106657252014325833790173004105483605182608708929780488195655863498426038929250136227233226606606669532189875364315587341991209747445100070034144454796307729043024205091587768136901081658497079304557020512193538569446873759420567128717827151479346832661088042771893658839748490899793324648098625325939691407048326964084963019759341867615975491789505009568896118501575638214472892116975913685893856650153315947608430836165982342028792108319832950549074578378571051406798671223750279183002230675129545056312013300889104141660109464135985842152074584789742931505577837578563326777624723960999825704743633014003006243466908340436003638206523269946171370485670582144176399553395801077331022922403949830955085392432550717721727339872530579162335858944751082276935345705797788199471680670614906524600888079903371017860504565931353479629421134882513830605658401296878565649590972918518601802577464097684243278623581440993109104901780643671678663285751172219444739226035590973658507597207748848936764432884541793883321032762735780386291214212746812612620381207273363850094212993245091920701959116165923540138607942004709421956302567429903935959451644308165257465508012767924352220591628146522602889070666991966065103793775272821406992607593504086946769280885994342923472355580811070299787545956785740148613492718059293117897752896998932728691317998255339007274313446809122161378422043336322554346240047774830305735935141370918180786085836195222952795406245667948999873861949038631042494010991497223348770867125070889334202183253229682989677428725284774764853211831353681107287726657167838078567374110722754568330534286874356135964526583281442102185393814983558597519362240675847225576259725517857454634797278172371575892536196714807059795300690242824088476744402994534356322869082174073425931154395135421293569513314613114020058515683567436941036591672322989002820461274796409040596467693412218921865027197483019097872401848169141327109973318679163041493688059644427100793871955976652473164175427253831390926504166981580250042261851271790570518020537819863867156276314597481364894434032321979356709241065379734533931053898368487847812545532097330150940953306225669353312115630731566050158728178974756217948814449187332557342314994784010033033314271321317354424602194066972547051520713881320046097001960079869729475168894248792592758829871177909286314019567712106688404983453105976911960370971414189633739588751722346200697095352010687136116042528677206529537946848694359666614461948986402031462759112577710673554829646074125280164880108680797945655445406987243489253109179492661976391938781932427991255147796270293395176206614768448024602525314204190211634148672022643753698178492198995058868944264822076702899886525214808806316246206439872043248582798413725152758556510897156421854922415026521453296062964682172564537839772045437235949339032875574385030156929560521695314762519834844441235754209332457235520801736826960960457509136318441017466736784890284473568574273195526922670597208122893652734245093048113562026485223095967925773317986195673046117172118489045464345987924429933205014762736154705579265265951884904464396215378721756897619537848418715114104560575397255515761870394967459579093478839025788043691193632427709532651161502851101272520935656349817950157520717485754777437289909664980032187036288620149070732688947134902608186155509149274708302276740784014060224595913703096665741413982485434788327720588740266585892257406510199230174866946283337902998380992285112248699151293615545850514634961461194119944229706664947853152629407558065931932235076428146806103517534406397851796077505144481448225328018460196500825115652836884780578291610580272344352646691599657807003763933285339402501839123117557650617823198222627292579272858890897482383530116990325874809018090741415999145097166283836564058787343438131897458504515662233482682532912228151476383178434416361679730145262949395929419696599463713763703851399113956579049986028537955558452909248061598119667909708053969266539171711053813236694903604681196611884625675773539741737659166832313843785814482717901598489126600365870247072681843080864926353039172034629741600496031780463315958072287910727631402906703180015356139558977524224607062665058447408272551781218967965816528672553855343724777077990948175036910058288531797730396852590723084486280199156871549959899063325999571008241226385338903282466775813643743179941533003640636972571919257989413156532603994408415577450084390023667975460705172675769779120529885887126946066212733141567137090026829999476769835914235935798868868600924196323528755707937994144219372232958156832432728711532956386136391609608339822862408828786734669668580812912719394943361886277210025023899768685973627993989014675689792378383636801956493438824453903454417302993866122074760974149872964362714750117454723784686008743569779429789898418117213142242460616806296754454502961761406641364052378547437764407680932874321711149043082312005173364096333647215916423738983047411109424258862650959233326315501210252969501252548197317860638880690591276181024823668652884955408363065988288472925421044389303447141490427009118940079511764902566528832739018371479921589101506891352756097489602033566130224368778622824246000368634692614805146696304103938826915143947755119956885814150890392514911122154944636293703246620088169619274291529908032242198291224840835696757480936430388357075946156919396947638841106844629079300089777052147881474184336836704913499779037586499383026176183740252734498442020938577715062567807590438217874625275404536536744002234103457117060605978532410605289271258842535302007743285522733528009621941603964412864219915780520083249817143855446170086086518444653992601533313243496419622485224057549309402536143416396775935305659794825269662289415988351614084230491286336433819475675704804565712027783744441707525766071012132852854355834856683835722501908432166588318752489480466970157984450662253777716593163190943688408437957135962486273635851042951618650373401296567871566105563747631695164979695890275547673944003502951332681690042501333325555762474018785324228884530409235797075301637705081702364849504194032112386821957940844475598152074579451482022631723419798544548355685863907979746669179351766907166718407424303914113151231657757172325826252865323037081792452622034775679399430132105348001534165117265320492740173246178862223034029450901530491378139003733225469247034722631531960455619154076313446290710424823698068141049663034862678031527685634116858359385171049410237957997623373681359320996746061030479138926284820616546249012251486685966107746094235087407836744783741827589058692880598423593064119180250214824082511345592525945305040379996004915894113283118132367664387289798621250593268802498100031115453594207104801892929178008073910870260001230676936328002504879404278085289125579273395126854819521045209439974204818591915888039561321625997636798311870201447537069358839344599561195289409016765896469196640262106622619626080671317399100996080379539060722783829421198499277899450270636920171277122305956165369658576251696025513195654818835591750291889693406361992894002419311934874401995298444257600109921672486736591549162496443050593791679658395718686155361277473918913784545810061957539042390568586552206860659976757412692188302250805075574512912743133325172937096372424507807451286211631085502446445777452898557740545882451238451884685935053790243232706972600653141226195238231911164946366090037010992258753123858598577104868340975261425078214782429218892095894613313908558676444946376997799063680955851597789423601792110263728069805793595199547636802799684443490567924802447758154228487742102596460369137079411597503131894824106864129590559112467535675317412967062047232943123472499432826575974612465519307031638682420472683785063588224903595839003526440516179702179710829443210147119523584293738201935017038477346841153846262954392124593147570458671082512222329948286479558098182517984405858267716806455539574976211302857342665461072997660938204089582889912413989167638227703244746795920671205933725276139913699885264842203910668366706234944823311647701280474187178411049757374193362468649039620786318025586062112035820746095624803745779557284517438637384106279858424028186177315176217893056018876915684045984290852025366632541538814017213788549930760262612658570056493157235615154291490126625856002621114269349405367442672234648766834238029780358939680083973823195105771893439699725606160447283306778625730130948599680837995297665492482562736153316707099464494094915224876939156185564552073813369135691690730036822872387493217138727557709091513442213780480480188218475375087773765406349123205433753715137610553939704258243707407688543628089800371590767458169530733070460691632987275224216928773898453139396691991798692326171821405513656802013080508050284916692484334466371172062544173106246636536014384133788691223703193721786513084314851964514881255487669332933069192036680726382600045425983401955799701533546665253575960276822537201871066429561665380106225875227031190579043410930920360057620852996669815801297338279546773738148500454525917406331689027198726203606404014550661456189159365553803293115531125642983039504376257383333073257872882909326049599751307567619724338603656230501093372418256824095403702845791956555790595616172368003652241138428079887928229992495179081509741084228976257288556606695033092787201290817109342673819965516813330785672019634380012944832431778014534853025413056393197223176259853815032092003388302327416152211003460468684988579705051539778354880484859231053028161196916184438461853010870988470610496081054106913539441808733772838692822288553078065768718002870621140307872353688987963127433893961047588725644625170592754389334612106864439162016246036639622823673538028632034769941406354772982157152484727526509615373149408646727778368758308464088439553031292513175685124862481164545098753868811913422671706398572057243333169237551420862632493472715810345926561109562057429636493369132425924983745555638681918320484286021364477008618547599395453738460937420964188556043553149330380053954285048933696503916916376073964993201674229057512975842751002915379041285482001679939656655092475688760367105930844569243004381469762075567555306185479428630045358026702649228240142520377817960253207397790927979386164627657977532267856130858060079512348370428963265146534816381540001565973075751419812339136496181285315375286327820546097772259579410743945651385878102667957286705378294461709062062722354841356480336973987414327451963748541590571553992507136711547968217439924614501707621153224354349640317737540179809879103876416446196570932264682690346172660847608669204161557052919052410686211047159019454667603101768966828773032533383949408688172627893250015425102498847125200252939147331783773114520471338626140435171681769567404956815282875225710233224386199685003202892796072153987633994187488243314999712604985626771295420909359238409391637004696291730098030740373843378467764315322799040925128869884097415509400266518446718740063070348461470698994563952141909369038913446202948772008452362180605024275083937474832835142692054651064054095277856193874474026197227973630652419669612746131096373745181467510328816263522865659135142610304133870302556548979958438768945036784906206253768646772363264898107346699388627785582278685769286840638713704104955758937632573201740395400882687393992203431095418290971199698528500339407764430135485845279500500186199621648583360768527777943585420632435349642263028095571461760209636316012420843688931683933003336398548423878419382355607164948390352054240296978339220497719011376109232177255664402482178417952119859041264503973446649954197784356532928014629773583890280634759807573746323142093665600986295634423336250552812552511799281047924883928973429179007066166264017920922327964387125654790027483304996323743421612705002947588721265712920828908325854542525645153121879396615281849749508537488579247226300206972273798668559726674173111805030029281599235194158561877633514017137243198351408870722768216668472281982109640026373307159491236193322667400445421605689794118522260663857531201351327728572269329256499484111468938261963328747182814012000019084744374193030109204149864217323293887766694137028858509860896588673276566966778918054873366166714071396802643739194546964814227120179469674396268718463159107048326013021302786864423795587510114969301975451456379061169326918606801063599220274595267594846395493577493429897927284522446413421765615068150834645281591528630249283423359894291531816961770234301440667908250158239227302829518652722546158216685287111586652031681521095893975212483262846203671873446810785343981141763576660094614130374875852085353254103859495822038229290166143249973433305802385309685966647178421678224771493925354279096242221864754940957674277310803537818081619932450425374252976250920508903209944420803274058509030611858623557632864253015503798953715201962001004643562778794404180760148898127643415916885985187023913325821215538430267801754986436006678486559881065024885724281008541107177035665399611363337787543149531860153022506942821626926146811987495600852649625193580753273190122972588890328303719367948969787027957262834949670908495279692709919363296774633380815654261036181494202561137972127948133449851433499328511563562158219907786411548856256834846280844486001941224178056512570235304597004732828289483306594817508629143748253217268603842611650743206166757080094138117287524917445423638853346861385299941451604849116829467230016273697581922674294807509377437348888358558181248724170680881718078414328856297271537108096130665260158274470819688893579148034789716044836233190175758047922958147000911851946914310116165846226254188469445831029206866799621007776119893702071441986884959853415033016702107612931133270793817098308293317896611535257477215267714328905947259705769946706034349405811833054244063058784991904217188332972981208719117259394355878185197687867275351338789431826237080245966758281411530394916859920928030173198890070816589329927171971577755680621348557893326192760455798489124939875119425931615093331513075603657541247052947168679038229929550943749811927809940477765347066133676373101061153598345420735712503652538439678077498499626718151093147130676994735302652870270622331455510438310354777225907743293542225477141060702112872420947922444307775908606449056610366387798402886116375236311998365774495923428950286620001080861429054212305478253521051230958554300108708042308809179754140120730432406655508677401541539342176026764529179585168360163771842581944965886711104048760392987429118308961510983155059675889418857437990335525707303976804682018484386857516632998164595135465308397074319800630027424930199915532652564864928454799714868929184611447277169915660601106293864780281115380274479516198013840274720704471958546126149624307948476215750445661733464335310669855042263551353164166576826340924334930391669919845401760657108664325635189401003555808362800160196218576250861983860060229783572436878342785906614456941663861650064373130944316481714071027424958713284346310724449087786169233848901946678378467025211890296823589176827609549223707692646218029718366209889090171579212828409029484428937492288057887257306626503001840621962491600904444872468762479440174296818930395460693851144754885612437748128760692952132864793525342659871258548728422553084240754445516204065081705084167066810177234287872096604578408829255807045214195314096502466455897432651970041484260591503418666761236421833535582943602079518503947779731427898823788892093714650259196678718598366405395554938318981196341634169478440482015201860465196223117984761850263184231513494544849605696374214865703165707729772970559517235859112255213531233703010475549365255756023490398955088719477315122267824428796890203007305379255869028376055460910813535298177355817226575244465456268239375734628873194931384553252164829330264623899222177681349300207676568272379059765893422694254438520839998880078109600459007365810421809919745389643945050038221742982001450290713520943857598699806519043770284765181257729144926734152568847548129030021260284129155192932588987725060492852877607461453014195115162007114285438089583848546015344505255142643642631802163296635525924661304844813015666320773084828619293078298275928623165701354987426818531241004848599063912739525293620258850461913201149052709659625229081173583345918153852001491432463726657177878365985650751430615823981156803336683227678132113230705260217413138574343562888582855053676635762388590361202578312703656939852493082091812186553047421109668338984008279003531670983505699088163211345542839878852662600172490187157106738861533925829311304482330250840592859916614378304248149888802697781182547888554334698633221538999844924651136098105765607988820476341943727345974033770431516127281078305969606543213154437734566186491714932041292416809787928078610999241843549310546692137315418768588717373544128398396202486738074339191144139404872116600232705845339099922214867718229759542190298467253151274206021999162302667559473811861721622199822609322043607403771423263070117407081661098898378756535594572441792464820980023876341273398199547581830727574680962155821497789688796744104827872437660875705203610262614454597264571979950516640956073571603359800553149574039611434438055162915639885028761855301448566338883828325735887822777820995569813940811022892415483664709594919501123303293318864712916145970726433576921036531035474190050103433459676550555501462885606380763478761908895956981071099223133866723101341663666066130079834520844435747263946930751265401174736174789008511120871074803816907790054782470462403292596679743778374066563492490161109618745010177285420096925689793957183888419825662380806715058264593821358627058209311425029587829358034113681793262348855568205692150976916126561870441166309376542618135584263499488274800593267712344739172344712247926930581041080924637919494692389300852082719011040827473286621499527024803299100547146319744713958976615858231896390879942700750174500560638403184450387015544150595146502260254259561609442031016876055573529623116573736337162226082083541500250932624097252584978860942008823125461240754808414282280427377005939901796007724592551951766523757853959538010100723455826761719837723180344674572079750129444955687553546586743866077332117757004131400638077298238399061313654196351068294633651065086082989938739284607433919351995551277628784658009969006696258663935878118461681296127681618549577036668736639397283721981281451842765541228598887628614110411562230082944038659884881677553416625154301445114166963798785149864390796907182489455366914149442995710987281328570803467199230440150448115969462157229253878375561482468413899005742534534228903832161094323299660738785822520275273839959008286128805265865339397038998892521937144763916918611218948067909884676754390134208844731758322002633385847630942097583851133673726599031212491712449584895405470189494218985619318205814269984404653442284359358868282543221453481920456620676255059873217914378803936933692744548932810605919140808073336956300286933813722011045561316668779820917820823955376022150535074232159684904713472836127832022100787098597900803623289971776769376363156540732277088146366907511703969778718220535607112067110396478231147007865300259729091622168432468681503841140503665687327951002936262517914090395759915332840992628746464682240345902514857902108040175629373150060629317843190373685545433702647838747439605877925602282722698365019970202969343561741206805633877217903401063096768601474744283086298071940082736126957212388913010956661969217853401106598423799296786969557403101419284698733168433942489985777060392542527746283684620472928759248670839790201053364711835686396868758466246770570551905823082093129940285837751839386527662688563651824209623274989821137610548781819168438016842280880665966737407040167673681856224771456897817401148736725823363936176202630430053476429698018703870054883831357740195079151962623207913168382096947539430714840377827623128358454767066659451335210433012085954430442341483236450106885790225258693268271200243252181590925673207652600633311438926136394918475581163011317088172233347845024423429061086557715666253392156124950925031478551465015104763304592897284475392928044608927412932572172561506245061003013021522832932484904966621258876893448424902825574524821043780467363192762039189679553855889805822210099040036960495863367880974101672038550163084235587097936649299861149102824729504071583418109726130711594836888689010767960779117628480262098528247834618892277703474032943575092258697221437481699846071720040717097641989672472087420036605477169725438317701594177541307843136045136990878532749439850190800606227466996217731616446440610663093232640797543367043233474246970341002719754299745959348779286954881639707891467922300393634000640897470004945870533320564880266495408587498602349266429793313515943003394012753168801557300321464955225955960813981131280102371767383801876215560763743066336855367753554263812794786123035518426875361090101489615291671405747285465046304659408733047825266541666902092206302679181485159857137609792101324365418132271228161404041383636052504938539530776359860355067677994597647616274814848156338687282272740603957147194803057853884005423226131798012048638957895008251883164447427376687554827417100449929098763239753366178232771078120791514225508796860080182101787535175639683864792831792965541470299471987534794803103964643152558350792110599292618615074863107008088947799425114683668763641077565934964300379600797202695097128464091837491594473037036556048819926506451035420306042988951729910297784344965179925336866960647210718847741285913190852001083199537606268689268608113267636198236315418844239544333048080258132364179595578837745935792745079008503138914057919446462057203854832071625834852684097186464006072276692899526902386328282349255335265026337377616315791736112839355724698999568578787756633711120032363757196177396311041100018319374214305465248177578755073539085324703737257412939700955395360273726351401575325966123647617676626588628063551684021735340164098670452449525154679794332208425264450270536259954928702510965743805469330675740486933387097497791340999090412310744307358965732876513473587803810844303019042635395871114537946419552794549348248160722776341688827399614236946748263738152713451352136079907123075191524764130953454705351299459331194127368704733279594194545595026656425703472327060570858426820021270542880965340678273307107328522521201339938385906906903628677231265513257446574318754223792548345240949975376736171410835352413170011310960924393298651724471867794776636372339341074041152470828658656258221931388733162776599843631438495005007734791401817624166747565137766570657917351000317275979434184400476690244192680967514097457616399605872191725351638594804045317109510304642448911394599611932565805667757091211945177993802768667401805745463027166649336294475772154971363263021104656652217238110352335734519116539683045029452593521638068807708034755304744733342195616222347441079289387152658245158749733906576318688324512335999735062466486637355179457708756882243901374021789990951845305630699103842864981482000493274779148875312106639430784446756412968530316028786947872313699545213483852872029833928311886872988548153005433910025501496239447623834274251605763961244265943500227090769013300594932244362080747904513644557402246207010471117496498790409132882082638153976900197436982531546387920826703998323307189406281535619144799966991856166532630508430547679526018322589389546260655991961043530787129075188707896320079653879622294294429262308662280102868663922881261545096401823456752060421844862983969720539317912011527909507252721553569032964640926459487827589719691976813137256021661547494841373473480736776833692344872861312434474777014248265740257031536904104179204393427071326205738200316321044577729465502746913304758706954533127583936235453940613727773099897726126152359185914508725582680511592044375326900711102465044429895040020286887062720440433255244550238065505435737945275867274980642881879952091783990812222288242698263712936371377727095852601342206957564496337842868344562502913387455343256698048293011451775212882285278056566180440919312750648282184523668792806487872605002819897009159706185692611134984146666579031669198050453483871416600395842878507734061476096732082759958914450113042806506234463995229333660072759195078912873143569954355522238250433341250492935715154965710006581586152666838886163861188589759697831774982881600585675316293890700027933498275161612629716242000827310820175611247726872252037345894785968749536281636397539881557201519956827965377107347371927172075781742274234012010393644306295376115298772834849448863828466717992244518495494926880934687328674543737190409389375146333905366252009709529335091259222697299910643844052021439020525268702360860479852878675502297653387702745424306000890418731601680928144235655963048026319675482552583699541045476515077200514047059000825985657427347698083810781967319639210417094144389065321996397595035759495637792210278924794010185289563681911198132689845650923496780817305430574389745680589043559426260566487597229084172263797506162460333740952272339486193253642072410728203724560645976048226377478470717573630454788220457294555237759634112394054846008927873062914231371207230970980049022477311638742144611341266631190327480055409465009129841527699134285271804794408663216758628835721662861447179802282226505339288156050799210573953510708692732430716122057462963918434872132201227764346886328953971814399161437221553324919407410972328829096240732692410261050171603799439639271754024201017305853060178059132929398959367045425443097753530419567232273925729796553207388958593721802409797474653214682340652283203877165950976584418463499674284790239896502929115119015190036710822711984175209693053556351448543616908207662946907465692110892457791473941276724092891298081420470979467299965022523752634006596789860820377636631539557466042471687222898490341446406073463127399819812099272571394657643105087909230461795905783573702651788789385183862083464888704438394447931597308759711393269860568033436968943646287608138615365279231097383894077261749796192590711706177702691687128197662887403815773884658769106356835303087365574999274769898466751549898928771532942170925040654543670012195862730876893663044413875762680944521761713917731327108239550297534274244867930035872168334280490328239859252037663159034003251912320414140055533267623578672992371570653375515860705389009152987504252248096764198735854078351705950208876058576995703457429154044190715958710542573659836156871630494385814618423981342782883326750442038338511639078806954189286376744812375303966362453835514690297692343490933448456311740654613696252996183392961092085625324037688643156807372330064767012188772890179575855389227382002376624042945881542606754676061512139643044319518857313164791231356363751468474457814680112811023844193444490940299307394049662393118595393807297409529257507330563166629325179874129175106794854443961001311840902941967190244266952106574346383553681939946471012048218179140522745812990425296731852088188290670411807667681518557136075393025585995468202721559652753444629608144170237313533772497236941122504517159467556262452144963690086413133162442631771059449095635873964879564681378263517727676869733140900772731512524891612179926218137694466192383496584129852934911506261799768096851601612718232432198797760210792491613146614841402486912055535905578148978752030935632316473324701151771393324463309543513632052157576555283944435748526052396541969013400365513916768534115308068258390004960761537371130650413203374894000638785132146257218035351805854346112155426699151463087531365042110867561499256596883393383901614390160976224474483505242343268182835904951468769574161461329266570554427934178755166984313195445848664184180896160874370433948487981993517949847986428977623854362383221822367701869724063051009582054496764183141946568779404943077430062639314097063201961728692312724196534250797377528975227323538679576400181272498923361600111650789861984656266164842170634592743712484564968209781079614504831144610461328673422880370066655333181832445911382318998213101977016275245261110913619353921166425315368776518098721658662399107553588521012731160534284616578382172527981646654544106680602113732846140597882901232090290065870140903305976874903844608201304911499492372616401385026420170215116995135297484067936003692869626194213835991984210691641747327398193175434144426162703255082691106275330295676042141133740821194109934886240078798065412882874384988985031553071210533284256317597616209697261850636892864903517138088584916447450107748199711335129313371621654351764362491675010205194118261075586040756728407169726287664615188033241052514986884091682718068173100843055115936134800708060320179429596408235035937959848095479316875361103919341013064233800793034045133823482771610829089097682384740576255940301834109018896008511210630557329517269041481047889350735137265392532413102426261567503840921235534859867546634533906384137786203289623545150119928690880810694868288404047570106738154492320501253450062459339953511664355759582149369196631188196275660265674800060454096409469719011772444635060739534234009220951437914029535763894863012721975468349270961377357063430769726388216285660457538001056116102305006581652972864909097865159646306357897522751342135515218974781811200774000475727312695680984247574771916293453360905973481205600019488483199334709887134354012508662324254716950979552599946309196632519740205673588783698467565825743978167032672696018204072846056605726392817082232012643460722077781017889521286738509106154267027898845489949326383720286746266481741571797600496565969481822431169381050218816864829754843362400214195106982890701359906052363209253457446764157430368485731122316831181394409037052234390206833443466885004189507349297253053375646698205673312594071598237495231864329616165139392116593731950772620035234900963128613837388106743321888361300597954584126368726747968100513308730859472745868090585597981747864632655248039072795698438215496216148348141530503773631584767947004551545174936878027449779408170697104067190341230600069652361631776569910510395741460208152227052792484020077879724498908619011157542421348155845335415801527076017117264787599771774121688105793221634600569247697181020006104203647914897873076949428035261323244086604891706839649220786066652860639526125620719729064985083953400340494495990849468235085001907620748856821740983303972420528217757331679545686550864853961337567131531047388613188529913950705998116382458379462121351488003879516936834900539098601076644993276685744771065906024366838402796167757964723377280075579045145285983880577490550159598762758564756487410933659270176339646788112967714086709351624467794712361382665280110200248529360744965123513197724389434687029580982666478233266182536982439474904640577152711472486064687003432225927220878072551739591525008155982884381470706160510075677192668568863956368745991270845681475569162515204390657491660785443398607040847887948329787385535970025324698066962723369178085329187059407304764158984732725590986063085258153266409614981034943910585945333545430956317507305546781831246590083038518783489613043091987614265836803039195318910919848756578420340320262726692323925232495489350156383758303644548636307275743269280815966891680213389693932268096553816080199151500963796132334914790485331018100499554664118119542255002956077524720173696553131040672709051315206060716340135398592159507512548551336048080652718410916239279106732929036800878314858841378064055316238748444045192522106531139392247058448727480041073297451489585786064531106772524083630708022687122780127965482861548081837886823285818302295622778817457889645421249161348535491221124945159297660994258403642282875860533420962601280873655693029824507686458366452681999728972554525133182340544949434357800948409793131884137661645551500679530169709531080057120404096702252873829653717923958932906388924460273223944994871542197318309123421190580679235884267761226681950337353691643296678636464351730691684391628429220213027114128551178095875108960025482140378039214163044787250357280280345050717756084752218308244565536905355973366981541202679278605729797234303061087778393055497729135128616960983722499178698060331546174200059117421881810207492404868552686902705541648712692528703905418896438842335241741036822117190677155853601831836155366254558368910634117997264426179061953169562816331811860402860228352135731791128257448991855695799897284768922268406184467577151545807454034820550542455056458060377088876324068864618469488678017845610397840989099772081096497536630096503826754294807206295696514301162076538964884430032829795838877740366265696302904070361336944277675724837865166620668680069324623017906230505337622943501077963950144559460957451012949346081649491089470030956479981030651550948536429092539152247395823307833893625238243268034980672072454014896077082505858950139257893849917912750954466550432075811812416916723383658579657807049270294104421505026786306847452104137223333198719512239822906562852378167240512323521134769917248882193631064801024648957668656298279986161880698481061515247461510004319175574462278357870916757547353111184692463752501213702555321763787741727679944432336739038933746424434269774893035424185296232982719256138668605929823574032471764176570522761172673580685542932643865066777763939045028952458326982628421619303846948971591124107224528417009533149296481797420076875188066774688490896686485838690926847793338858928240416356368430918799212130928610081062252795396483490603434963650083572979169402316940428618840074721230916431279129654268423531365082629719565855593517668186881751161535106036997853027106403708336746944498593713140156029522539329495960352925656768617763305945038852737508419847820046722885391131504954497628961519428699393251952402574413757621150894244186809687348328111605039082432806026917934588268832253867470202847211739137594879489651913331693306211967360174214803924654012229240173791859816240479121952704437807144294951912725563255419530873147118738121471958818236120200298738041529189478968450586994139586789016146941894472585060953301661619434019675157625126369427524754754130663801122240896333757841161605330208627928855853477669232386532851294633549479990115308362527919104045278466085460750474246291345847923484121104345330186602183906501609402075797871850878956361415602624745438494094651858712730735005139981455329250594414182633048276201891171688844290141016873429396051804605569911994105533751017253433695122965526483267977396957164363565074811982147008549981314579358771155767347203876753806615381093890855977602341285669773186598640138388337536852016370799681268404066741820587522611111488545172361989686364771495306814344670216242367251830346246170208139902269023157196156964299316829862615003732766076695078314498676443358893430041111547866927705958391158200772460604993250994691423327593632258130782374682658932865629290047466495359628695956418182190728808668407224983074268722176255833326195836751148854411349713342237380710695353878183149428199464913079147318836000068398079352257462479252811254312912665701245240528232183262951453048491377853266175900311182731020069282282255312461069118045140887329854695712765984404845476388601807921238535329943795584373202369851166450475642647043561069185830133864995236674334989518299502609969866203420584633318451162604342445262116209642696994784951772644359289175078978306032925640759896941499091869843125111661723905660976489848312386509012582235239797683620695894243618639646380408952239742948446162216698733579429409346121584981065978789162620487272512304648595590845845258037815616997875312143638270626590470578747036245894298478770838938543528634941727510103414572936207323863398130916281657641430766824268904539838784313635134100344028214539465692605448800818637425827971022702591448933460413693971206029711290085595014014226919237405417372262481031289848419589438752980581794565893895641659542931036949650819798942395566928182841132317592354895763628548888413824707660446844014178025652214064383621564592941613425896292796139109851297955441498445617371286782598129058803390763834206514874830543082795726739854171852936215759804371282772609459143210660334483632824089624881730448459113993136877872352312318161570920364875587551138613489651231179789821436144116275848764576408615339500822993549286719177487893800422268797880428239704863529625388218585980455079464824027561179183729493589870822122144043204232387692200833039174903383728913528366327515677088626680377310540215005609877139487276989760764270372629082882269118118937865316749000307039147903571260156602516434474350043117563219668608893787067963905634422128262719302950133594085237581593668971364548356925359500250442392950499381806130297311929580106940733377795913311700036517027849008490624439575442248297205288629187632818154035531784712503415074906629057879489422906936994133378656265699605826015717906552531447252287948648706975749935976315312572869700279985047444242043397947546715616382861841655326624251173578669472834434325667053866522297240387671687928583178644858602578028512293045791886796779200192872180575609357885186276749035261784256874997868010500156380412340983602979106627848916726927666849391144290464589653426166081104471377952726553654758058017146832915990222400146623162726294310877268725280532844665325381909497838032281187587961672421453906198754522134899640573548014198540651199053250453093706369143801839180732858886185318897069558896190170127670715618054419435231088346691924862252324953082364281603737925264750482944170093641139874228836247824305301609825252466055804447958089497527597015663532697088661484521962822701131753347590539504066029539372309519406857558574938822718112607743379516966826841103039125677433112513296723758588332521489911372363864526136915569747966276933246528478188578673906973468484561731276084588339384560482230865428517125278757973396191014217179450987034126393520396092211642694004544278940205943177644474406853453616102919612413874585873261272602689802674233001703163945126900078519463161690252770210536815336611288441425570188022255320897014885372173503004273951146690533973404801123219691487335850213822184092362126196445108276202963071128085066704305422423252855000308430436397362126175749910788212994098127383571501262790632343732389055574907429836983476673855856183637548980425309320503361243395101114867795109691337158696853028023054776406005129129404008979769580948151043792365156946938676026330744663442951628749151108369878665587455457762458705527275139416414603833719189943247778978204723541555444901777819658245841840827437690328035753228064670277840167011693761237137381601605448678603260645122856325645826452921976472158180003531232196803773641279095763400646174882775623232500206111453872612734287517181202534830126711707328950252371184499580164516264607672657698709622838144732178727156202007055660504787944709927926562834490837139848574129019659005176046731883499812503168955786794660860291869016450733088350582779881249993650500512552839206778717892085199243903634592704915471309269619882885644857835391789555053976170238871097143220279088308167778012821599305121598660372381713753243247261037191317424281781867276995644403100754158370036207474159975158112220706737668528415236016526085340054876234468536366173594310895461440604336897852214359757143011410542819800602249303141591981572166962247096271715935360711225710849853833928350567132018312101426253378585851811756541850474708521400104049717923418683926101258026013272453913121111853392956591020611818946556608288874658304926089576146188755409257121401409503648262014454065381202643024825990211774474363328571148654866406772008379372006213918479914929069935904550230823025975180463999014867399701397075126949714443945706803969542185640118943519311043686696706258832344032048834508112504413460622466198180066355304910733634977350625940487243743857824750227227015555376320307639470945068304523495223047603450894421709417862134503061609504139184567414110037018835596877472808482663106875620991198926842741784189672430578183519337479016674868289244301889761017005136338090897961068864406064606700817243878570638050142127284439094699600738018232652104897120484369370188137917086260446727267454035157020617965731139600592133082731983804316562834746014230867824017933967851089537709401720677187777334897337753117016164804251099499179880638624528288989099469958935637286403561358495097088481632858853090250200775121309102613097290742828998321638694855760462200486219476399435670437636537704138825196065653246202887400213035610490463428704388924864680622270709977839819666980074588829962880917696142233202339032909073698684277836921168158825745536258884945088554334455802621751598188686579436618543097283211257574690517634789426223869933492886599562664054638135987468116282759364673491135127675765774916941494572806143995644101356745746051814381137753158926049060312761593817824312308413767722416407306775954483828119936369306487333248200545753343735312469997125083058223212032257706996775513311162424342661118850908324896986336286668041061830408563395055678217714913370351759963317015996481895893688999736994624099507720147266277400265611830525292876648032611469081635764613249982384750756394234206510549896960096849258007648275237598981996397871722166401506099669489769699880961215066927658194087155253577809068795994805024447252810473461966132829050603967978376940468263101766420167531377372391525746172488444036137638660010739677764592736069767618150526977993331693335807211990853354142196754865138522716375223499591029115175040736201448559380992707638546074131882020463748566088192078673146462063660886359629334875947238015732539190294255273279175104898579166868195840999108986251084155568226582894767993876571415209312646318753350479159143475569272491524088368361113697864692121552443313880253916147060337551367650528887377572976806555063252702135724691744505523811855125515708954085151121467065155627255184788208576453641878020417521383461980078557775917918229534961096877456133015395745701010901295073434128949557533897377277269176937799687173265842360217005239030725102856985519894127931553173994790996207192649605709362470790206089179700210326037659284014935774316768669694610321869909455778679219387388960163602026396780073503747043387465006978394015495004242593154601748565058365625979637005301372557512330745373730790077896246113606555669481983290281283334122226197067372391422452816869605233907976168400287914814519161488787344727200425134879461562470411252480065614659962794850836214198999707888217006827667655183963377633725900109432823054176058494924190674540343967953314037149104963117765461527733403237121806063568094329473512620113934055584833675607834205572586984041484312644295800006040621802461518859665214285726588360858187798869319998824765871568150166805769902047936371180259494175408942899985965959509822311605497347646759175552067831948080392512061381249272473836324172458012081698971418552169839771107987857360419369127464711343872480201775822346680681930230068788914880223916581498046636953470766042700143744244086331604882487292193908645284890410059888602863940398535816608118005840528398140073809731377147661964730766806076021280932622112533235093195414051690704573215620104790329042162054128881660892555054336407760477564175847032204236202454911452653815254865480577511263978810700312519163123565174183177129492231788490159915068817411804228281115453604066187851640885691265810797593091336234340847095858845130395352420394057437625109992767246115030415429219243583844064738364371662350152815497792046393629019915952029642045593210920625615322299246282790540845850531745333088211289159673191991606041084228720956190412778070505286466067357718100152957571540221949489428961943856549538421569366814992767260175622676541312819632251947858685108679994355949778328934425380849630200258165837383336290609154627048397949610532949924434540698457524648138346515527736250557163351799795846926571983328512225774093496748446812601049436089743318963238683396831103102584565342914917521440602547386988988420175591108603974319482851174520435045675866904627003782566180856022630700170032494188416936283653516956316755176601300715529737708869393234230140620481907431961147400515270906532192478942842511138343476493154346054127230668539982982107764838298815067118698187800414047243890416668981649938398392266750690157109904664269963525724970362008587454567534884749817408025438461624242126443375993201891098258826102407213683826289924819723914935904837817571500368395183780642435573758861386638696483489615012740722183545646641863705051800772726985067465528819473914054496044416905338438709458918829511362141508796396136222583715993474516770133590334508613172054952230829431009068854446531026192467024985288753870495477802515133683103770086597328627280417556275641345146517630870645154132009463652635061169863969434342517737262925564090565820559818050112997794787412023027262168871335077499681957075073533174499810393143728413997096167743735055233823367193905253984082147487093166566570576985384425462844992211989626996366363900178420118032769687893658150612231032258762557779672347234195196015967932668770707951971189732506663791914007951734113407248565052956952741935684733741007898989616611356740193529812216329727303977997894755134854216136708161897408536485694160277450276363050446184936290921220930294763496154577662522228681254036704908412222946067689622305062189481788186491733697504835060429200847747132295310225337916859903921093432099904021287641823444172017979089173042245542950711200425044972177265818830726746320955828815982417658997784789233137236208041046022046558121883042041864407530440763371054623959736542341444670613230336896413389590842243357081724018021493677660642501657398894790162228708599264636366798566623586454609334559961754595488065704656514900388163371277081503248217562645801976921158084238116622259345171770686705534610892205188363032103767733010350129848223514746829554576962332057454992606788549756896335442481854473060873110199333398313715226419849246684237963057620481820144409941386535802197430807259214175599755532332040036092187687392372929196388266648086177556053274768341194226292380539304640692542410725244234981414937686322670479741145043759149974568977326137980743568655919570999532920039751677137549032984850094073522053078554886954968123851444265634175526061807093892263195836603116385571095786841466190320199119007376362946665179115722580190053457220757905664129070250255892746627509602039758944795095267363597182833295167209527807939051085342633208558475418044015385234155718359587025389889577536098267042574901089786685937114279289899007704652519684708795564642201337474076171636994759662635175239057415258611403574547318101312897927926685184103424117374982668267919466647751946189281403459807466667793989073784429246192131637132034019448308424328944925113099962924163681018889770417392844576422329297504560119466855245096439862766638260633070188056601254598835233425013362574174201013316986938360235970192012202904047130754861746951164817680878552352455790031695961447619943913140950969783214804775823546908226153626371526400565476459240158521903098837711026308178402343082924703642714222035676755691756241483268585416754740307431143905670405631959730676996368619415980464936845483728503557309057370250904944772010074215227179640065302427497469034776649166451103119217848879354428688140877332981726519403062792883830503724961533648139229958995236043115457665749613557638838325480046882714135088784660534790461859409318780171847258315073533490554747650742374478975702931208258360591795868055680618650730834055328050587760772281825797223547810652906804390804240182261871429121347181069716607485336894908915465163129879102172240341957276504737355662416926338841787177406167298325413250145022834757154682037869263551143762697995751290097124793008415814912803791681224456610493947503047877868722100368454836688312107669118869442575048929915867225136465754154298846600716832363783002867986637136072453886641293866867082436895444405995204307102416611277267321656498340782642517939826207540183319707064828368988675721287475505590582956038111268631384821263999782498699857847834320660649382241879989705791619716459447006814882955074419191385964614592333721253363001253016093307605429099023460824350084591741552868858257298759587608835575776618460941744882858361413179476700734253637153207571692180001143377974283663000854520720516241452580059132056518867838877420365973197038487419717919496479452701855013435404237030241142067974093178110569940888035456913979989100030962945832950829582121219784070999129087161825745542245887408445191412953571800322109010825627886046439911695093389748338188986713093478168221153652958583529373414024861690190974556148104429870491652236316160123824067376373578025609772058207690397368883349010240830911836325077106922143421264008099592166233502597724931160647051721746222479771503277694628822146864376828403612186535673959021517933789547696635269718441358555636566275600272076316347857194866381933071482447187588023810359033642499260307525381497107018425527750404298850195287326552518202465994770657527824387451477766357893064135146410318658630183307035165852770151319994931087245826057313585452544180333775838123973427650928386772958815222042294862662421346058968211330158868891254731240891986877843853780849645069694673311240920299175791593426248854245877735854175519325196481489054624301399211105800818619036558965549473051141575507926366635142930199072246091364062347843580591091355895580800131028512649169310504144393652502408443414753950921575258982578564861010642385800680912299023503336743528858338708427508584022175105981882655748618534774996379644212987774764421380675609503944653908332883046529996284349519508068232265630836004772553050998319402619826785831008018033497251970563216740436469510599013159718538860664139457994341049637689885338256036835550321058635637237721096256405684397712479292536012201985407813070467186860165879163986435895984588241910699459275810701218864862045481489027598850394589909721087098890611423239345115502025804749122808283283135882552311311380400133183684135283963239584908459331805471034290809287557942311142671123427260630201084090904580688705746712013601786843761515310904197037972317209488341767881717209379606967944153648834424042736558655585947955613529280389744855917534635241889592563481225214504428779244583351427154854157580856702542979394067651176069888659271993866815571736681022249639740961304852293197715069109653953066478958135901020745782823182798590710083067347962490786889713185792103303208698107607588775698318803770459235031473190741376900121028461328408962393346779201444836139988527864348926369954521675248228476341252267755005258701206745760364588073949878804289508379311080403251875527940933001693898554392670902276498183062632442435378541603484891364972953719400772008222377194115788496382676031735156878893215353162260356494722182560403492877920272735521088736381823578452554267900387355870301642062559581444668184898725073554334319439751207043844968922359832751845102405728900014856065938836338469543169224023012371747161823627166427392597690271192795901754910349886041060208321003804965909821502764949645871085357304497790027699496655601832293986392284712628739576983181796528373133470345673607501732213654130936914377261207862251690259399323965446160253130826488432088932571653824539569072298663230692275484069030144418175720416189786775956267312894202141312226447272755847271525239030681025127720659127638064351069472886925205516447611986559133568283356034073498833561045664057605768384255392273269796877386732489998372575830284533834775585349693916727586063556347571331010973238142956329926751690480621831161182290780078625288234825309206577164319525420724300905748628514038076326967244086960956481229017715513289642753042762055816889700784487082071441209068076913800617686414667336464499073965992381591679898734599058477821147945340798687186755626334880865381940679191405423152704737792490076168325494095486966637332743382167136900815737435318208902012205433447066816454386517830448335100026812415359226644629278398717620737947181390171109415970058123657467874202794102087548449791730967093478846165377100544419037957869495091100935028839727056536291441264949826564221712554886916186331669393742159494031627535842439992628624505293506110922073053760848577035409837095372725769129136211507051834852579603093279831183899472042412606787631524441164958657213215162352117480041553252153046806834928374151127866531307230338900559698072020740579093058470842945118064686078719089459177221767465595246558621768941976624214681629601903429168478721142287014897328646114991933104676385393308548723281289579310458590138446619120501499321498253706760176791124822194005243947303616723803034177355912373450776222515690760364752549525949022877956448544253562781956436148092112620815346078398180821154720487349194381178679081621287609083551303467435603560542139088119701108565935647757044595013880114782577830097424282176117797898145034786958932237781643376197064158732729255827195621321975185162305982578749897214140544973811477011818027912471341687986131092446708984621190813605281230984298911495199916394346263285183451869959221867039560414149277195973390633813477334724680768484835793114671283298155646746416949607259843625164141822228731313214270174054147268810806943125107838311304767932915304596087688751770169113312644185933629901064304059339736940786471994697806777295209119220906891099870210765825948072511362667535245950945263395179101794192561774400978294592891953444748205088174512114756770965365742331843425952956761259296417172858219184254687071483637261041885415116597019181742591407372869861684930838635703998053655497626148107662653630798632871924135853420339012903910809110275595938750853814526032011096423378974272918469359877970764683947345320789781123486265913460866583249377982519190670742536503315816679685338686407048416146752379986904733336328485672095020073139567067792387076818990255959014815563672167469525861715222914924089039924515552968028180331523991916260108109105672010756538147109556797172551501617377592161647032397627881917880960610862034258364251351520715161638507064540429916827510160554552676552886316715595751428572069408283425942708298656764941251090915967108407127233949825694361460356213432243883344464260681590423911338279288220463471663852379234146529426234817014322343005079989308306260663316697583442545200822585614477844476890293872010946386750349478409634732300189131648061683605032602057945772321761743997425986253157206777034046566003144521520883940946060549486636814927866124376206241921702599033133375678085999754294640442357472921555760611642997608154514472248700210976300718803155980800474321444820924718563481609468177483681885651441293555417112432172031635085162060550288524633044231029361167313766831219102894957757393160695575810639018263273898500396531759504022716092884450253829225370580812121357973921663247013123657833092990048308390533108236502297761335296111472789833496876025323632826755882677495594160462921814719741048282046356231237336851161939672475812447972112602175233877546594882167745723920179416878117857608547333429801714019164287602888894581789386033155997088092344757223841797905849741110720422156902957818196964118150016042336509762885382382712939635455833078336241464507491422573953031438794582797401226582486679893020320728565856452949891253553708842111052726812221603433117185584126192532181071534818629905480426578857089867250247191154361944996336964103261912428417582146342705349846642014744238517857058567414915959210584934735669746600345450202752421723200991751359221156659140623579538707527701966289355269865148935008291487497400094928612528397312486813931410148378656761416341693084380162948756593327380921428091795542685443607037835058314121960740166070512917639378188248259048610421521824712124396979593197248094888515389163818208335464548932501938880166825796677691141527596590486667779536737057945400880892239317453795430130276430774685991939930220588232095507895324138216370309616004408184759932521331953165632991224897308151715763017006451102606630870856708150480904952745052740633061353720389880670366218878991807932013319631434774293222634606644221352043849486562538820309400589942561395939064643664117414766911573163858543312452362784180012855008122518756501339723097753599818441826061319304545659507876521222989999264039400660292694720695711053033989380317868777830977375658334391175602796121052150428916245914535605051250087584091525762587307318086608873797707933755692463029014351505914901724716515306516912539372697162355830860308186612117670049952126061375568430764621609960207500061342168216840932112919340437883642922776201379141545525782997537126173462171595101585081837921461286786175090501074887324737420077669620719607882323605244021854066973823261233884137996689420716683819139643618174141487837901152348307893170231006671971876554983280644085842769386988172688907870479385448535805043868814677043984841610383169247807734517872868134953571159512658165568409650860878306204804491256812938072230829127538754934968860810110682948879334072128775816976983881477788184804261998735882136267291255110880152453861034951562552332264859795174310306382839167940021282285615380165409719904986117065326333044207707049170434615662706251533736810008015030756514045572896644936878276174050756183053065151286721673181213063729418380313435878370051343732900505963360331603445160327596497590117875530579725635561276212549599903866350418742473688952749213477412883329113882744497093515541070909578491621492565081419116532993414385354670449999710440979461028556186889003019347648078355863399528541829231325715721277239750374008936100943534380847755655781193260090408994773905527063980512067821253918354860900852951383147378849945903672695148672007553177161744122971610705845979967179144504080756191921688919135591373644446726212836661082968453855215614245956990865965793401835988843451230667864520846487044931688568203964483658068120412897070713457828599745706097948201271084827784963973812536763172223634206992555669645398930856316033733128836262038118388713174796824172207912676854254565526594045185864550172421237692501485168784746076620537491438065702965044446753077568269213061104893005830745044702155224295466088547096626237881144227725245766093563199209923807473505373187974096599961138233676733746438485283115103424308486670351705233738744292083016294006270425474921658792592276102972533757614915329588006783705902316660134875905743735336508043825688449900741988495661234944365615331462389254560186694759874330791864945738123875189985094308424721581459510790315575400273358820668165541155999712153702192634314355176438928830465990014414344813360087057417088548790778313872099144060298880994054201066120805942101345353906942507292602628007236600491669901242448146619345769776194601559293403672428601738901314431874112323186748051716318969331017638199235607643157691890768829601801817112377275428215222186823509684670241994101477921540900142360692666855286320478051961972553100470776319481537919831513104845597285425780285412663077804092332702428453679456312396702082806342411895959888964523972031700480000036140966035681309007731863002176319549556019390828150420622656381158286359662788087383031841845940594244315701039132141537822768410627131602097065632527159861082684786196051070429508187487009053618459317295120688025041728996597777449942941311009297263420271882602344803311414274156773507677796752838134132497611048592809214872753302356427402517397914223739411805051503808442650439325301701398063044765356683903769574789758219923156666757135256449728373629918367575008110327953670918274456587254503704719479851142376332882548211983909144721670821752946275129282426627259591888299642203778416419951437970845811799971708795545268498538755955472703429375878677953507110169859924780558734638832526807601097358560069964852647518300265227395142898580127166742692224692413974460091215117114259834976523191277910856059625879712867150766012220749024157476569905783482861224088586159225190054583551266184112107281931142919138539094718580625281204128254489418166016356891712220478148311232388441501545616924495379917015665328014102461027424234150034925549788440145175975995707378997347318358824410190804444685643993042774794789004259524271703711328257704890810514071466645011419053784618735483107960640624423723426985135314127749104016473284406582661474491582935705790755359538247632812883636863349104446911791672996661540826006097132205619316827365829436727353853378829561766808557577817719969457565463956581913434688039716932513281957421963663533073091033387059544169561236748942720044659431315530135574043541559564475549628750547260399096131762302279579154519062234267198559545359527058687110106387536655275284469533677218733263553579928567616993451086855133373617377216320393542174604983129372594589949957002127338343775402019696560209939394990819979911275669815577632624289831790246890578626763424391500213528858429145296936077131353687261699096567514852944180559948139321965720045463221282779547687615650680166510585722257526102499287498301302749530070627261058432318250745474973328323245010420135292785841694099121768196711052073484695760468309894469533857884040216815156969860616291756221964045424606176439457269188203932495645821754073908030900337562932639416550632569882545576504670467034689612390787678959326946914551865565298773206073484779950778630642042287328343975356388895879187754997074673591651891732676482358287166117594513121294198359794080444846882615234843933178109421733626688349097259039158814315933798249169538273097538947126496762434653749048180215460491457414986934781152275264253547583511582901286401030048128385366311148003914872755192241736161355993201197428665386241345763868467090505929657612529517218147140592777074569179604221557165215534229422579288617928877521078858187282098115087666780685021631513666873910643527414066556116563731717267487566195116977923609194296077842515249306838578524465136867862907873033133223225743630326215110749937512200903661274873569174940052068015780663577576318457280787949179797860754686774068903261026994328302845299441617231252318166459839490326677369188100610550739532710380045305284640593881286210364657346908401631723271170300987296508007730706032704369670337690918560065911458673020597099534697515001096467518242663288190607689962428069889123462702666391785601374232511061107184423084263356560826882071095478865397676760701917356027682429932891800193974309400863267649138834811017480027772775659713420203655199055644465026271416766616273160320407659940667020290486023284793915698931222340016477358729146563230849474886933214600431904585669569095080009593400846196974851997832221658146579943271812238818375891315127848560979186910849643538721594060452436808690566015593554227347980871091484974886613436898710003728785694763453273886130722551137902756487364483804863841502342269385793915269987729555555264933000768229093686427912182129037433790232113085622771273915729730594358685183570481308196860800493002911338732430516358908296202433756945173408678166481692211616146796866905991514485641122051665593411665131428015015428145022882852410537925076857981286129467224366985758476232890059948483297758633467774570534327984280726400060388059722738581979584209236346649007153960977079152306167674673403652367115248156994442788392650971091103038016525633044167965604719692349005185004076936785724410238090876757806044849674102445975960722123714820937818250132465948276586344551189521527113608237138839241606418155655651607861650923387507248153707940190911043754222616187177678470346611823045711605642808065807542962443123747262308401415488924567424491183179328632111252414306210057298428393123238102643561371286282400036493213911249372141943728852126626271353941634299505703646473197131886657183848344673099627425559507646063520397614910683201122982948643459189381179074213333917635268734848228360936622101134982453891766219982481791233867425112494292875648116129630294409913673364647845224522139768255653536916002826630537809479744905988504020761513742165519831839339386813213996001603064192883218258190407625325930919276051285107194586841946126893702141956771366801881575238051217678583924036933829413852568807114939308812097425464091207906132358000930673662226089369766606542837675389756088656727996344801047397067742054139506364926476165779804596798275860579093943904782725468249866244796630202386860273049551588511281318070551051072764916282449476933536913584714240933029421979520444004996986900688345325399512832094149232328131919573666210956132616254869891429414804178814005557963467694308656824193176146800857054304930422169252187195368276824527848371458226723263223619118295230932279946462640325125349686211345433294470420044081593444386337936392681234542287667302577312795047435784785090157127707350776366084880341160959896007839408751675981091043466513369941209136594259242303959030890103981188979835010668113871202915169335047788164965110573843588013355711389104371739139482396907181208494940437092654316114110039881342331508471570447723126289394296703011785028587525868054844785475754202643769239828982981926843385593404236310101309931216592056566944322976629293112621840260264538029922272193624114141082031368973390405238206813420455980752585412395915872435994917712924436377900138149233369516045388796200217269484065618912064321404633580891214171035792562559820226788427715223144297559056248707671802114952193426543206583693993752584535328499897309703430961631503178244527962280322712491602227434200914907485883153199127754759302198319078107065909598338547430274651355268969527260700815134167024696196617121440267417849936722576499560181192504880145222043312235323124585531434983959329741219230033708412660720724802804012907268480458458304815251732712068733058466682412423810209028930530268776359203242357871832167304957914354013449828849000686838222340631282651788105362780951120718673175490434951477012619776574492523706957718742161096570788129872790466294119873915883400310969500839750511365951487684891913824227783329097321042502831383855956666692407542878759777234615558219580483728788666586785406930236042717263708313737139956693360880498167419054848294792976434418374096506396774952683295606792739312517321685564172288900740213852222340127550977205861482034369115554443233505909525668148628875835085206121498431751041067080202021130714801042174616385025754489613773955252861675940981377602027509610046819720896849223246901674929181814400179653765693497075457248840741414182844669777580487509630110641162489614461134429883349141865439381947033798763312806208542092601451800662675836344585321989951865209617468993831312263678663415465429521376627965584001607588205418169262808047072653260380576091013601078944382814147655244860615534272039956904069087245436756219194438649753460692965808793096653253531876547596503258192447769463552957712552481459530059565559414175207201249474834832456958523677902112100662971816385867136288630403424257700033807954297215938169039229547498605344484515250088323334366213545169175180003540324155128309443191005296627200097618645599708755065110211567422231546468913448351613286474881409032756189571680880396560355529223143804658051931941423005730576881494390020449665876704927369843063688920809761543464647306342148779302115855269203146394806920401229075357391002281214245215396901006124094624536128180479636321670283695684036671591371673888952215273169790284496470076432164899634156091712570577209984427670457746270053650462740251746925999057878062982752316526444618323342681614085865675706845680929113606718421561260637278074839045971927874911063521968669665928682447945193943940499630816412508076491073642158690283326124737462497079580819926154070513519740708140997768816989127151812211951739473718440213817569468510064743358310992662734342488251861675136277231991785626417067074493010717239893604669891251293386799543172516614922932543803166888984391014736836430815793252257086052608899065149757444234500220272247882537799845796294775275052610876687776382745336555331827616174943528527066612759902717075710214992381996465086549748963431596980385455487061932280172189636008415468916029054597131399982092307891592193094005352926390249864165218619888496658767410445653375144024264153227064954205320777652798072313887700270665905989061605025654607995482011107311399077998739953864496979060542434724791754353536578744330210419582436327204013380188990969711891920707051264454870191135043259011884356346493150181143047123605885389175419933239144906676750621474312661976828469648612623594650202854575871163252618552140750781384236725524902049908856471157542066064936578894252292645352305830884409842855947313183641418756677854284883523754480033473123798398676716905596432232934225793713967084623388687313565253677013141762349367305457593193272931348297190864202530339245582569038549290988875806406443026594215929644139285326904468088022500049681601199142269190570069846438861162780135188917135557976963065859431128556983446190521863107043610334872330494825989686845909609247793447035723259036692367461738795313905462377659776740233935023858533271969433576460166110868857508216009398705048331033075910303754182471947424511334985859596908931381618511705019229277162262193042817018934127173149418948550888597666402087915929305665936890895317963984447515809352939575951533208823423702912400517456252447193645662000523463751995497254520811052017464521043685605016918841484327277483601234017231313435302156440415265613272986273595111772853228011474774947844068989226077665966086084480595377578777159511674160451929602963647268405803222667149998486859534025236038296576913006795163885506034670194885633053728575125025482866660161513331919543169031820357469384097399716532442056850924418484589940713532217742111469833251941399552243930618994907780557342668858403162702727782016765068094245233296705179100402774933471970171207703631928166696953689796912489681337074735142634444517498037571817048400454203649058023216497562318271796725020340043283722991052669629600036766893973958870172584722285356195317081804348186490083082142797473496673410612351532005633240295915334870750243710929436626446419802021118087520958134346002508719355614373470848290507422946633289422263595212737589952268297177604233457270991903674306816399435831286742470275957341874192972910300949911008567567728028332806751815599610329465524376020966720174012283308510534275809235087568794065402707693112543904324430495410872773600828934983391695760348393004381728017127329254689521247482226704389989652522629724400337750266148904615004569099269393088004226250424642851482720946483685963377835838524569334707092654290132568384607468997437513529217779366611841541875725355221814282754199026140736553433581785583637356287037007042848682082769873674667300304133785817236967416392278315016685587876191250222082992167425349710244911141264136916946144507287175727113722442396777878245068566544547052249953627253002001017195359399546830507633841517809520391293532149385746114262579249647117155603024556034050078493180138243613461574033666415247445990679131347630844646605470481340851779786335948132583642999852794030379683932370323441857611081832597885617728930050845321672205745450503995292110597270734923597410064853262217466283677693933043366555673729945100624330394430278406980336248026749649758562718352007661022287502102577492511971565605707829770623795271031540513415765767223251210155470860826465592728546996262540618095095880280076605777191762726901031322975898662605454116013654089669282686298200607311882263009285163112294393528247204817978195290044323080624065479055985895655553877567244889349571376283614633037454210529855206989108242304699242830215187761710812128303705272814988045737661568522397499302281074713623131094175806819280316934933273796393683538451306346746690034342242899453756693596073903613800907132960858704267674451614736312747170652664588824838982567451587022063324732080538191665227979916611753717747226635414520341388884860757318372029538872321599737350812765611898634219707792346561018408946472308166721727107189145090968291695583534242051280802288333486988996650377847237130885571509305309284372252996698714023924913715804548687388961729803668613285590786783101290021508645154546984833840275869197976601269552909552357334698311349945859164391273788403909392334416361026927976655349280047820556497642309155374463268351053471709100019167900722703167401883970801518563965248152801594415343047365076641558120048484608346107343112330374841042819292359308142711105440114470279093649302436360604868300606557879302861408428425169376933757207342548368900604821852606804729213701536785162610354260400130005100758751397045644397135219425823184803832390058787017813186251419432677128654776473295374963087484759273404178154096954705867327639427247414097336870489719190562381883442162667488513677898550157002303675521494006005435297987058283865277623959304207463266016652699209142787668972519357326035467719063529241056798165912132606378531888897037550232983327512407785100960813928361491305450473790226147953616126138047406244132360148434539433678167783135609729903708337464816584900434699066479731090714845724841635083096664799008275852858194861794827459740482385773052579260901990804497703435135907873576962830582368282472693045772955243949916233014326390184380212423358827067677125481379404283167005272858329990754199182514247957689958291730704515837949006462686025165117243167488535508421588953579090454667634979815824679809663458793765126539719847340466729974350039929780594277529243528692977813227013231988090079071896798051770401599732727865903061173399483638508028223248545792401881557884605658343329120131690109668858155220866896604032349818628658403514299055123211653440588868573600635112534995448089444257045195353876095820006347623181904945310504956654107431296553829728173597277669438542970213478452807911561463205196801862954584057677587612303859245651229422375746150033893044386581016606055850450125473430879609455093589243034385789240153815554967766827242922966576814978856540858802970790358163375495049570922789700838145316518774396387032314146229755060367241535153760866984837992879946009615679563935754901761647620703807432103850451001562104911004538193946594516983084511883108535996931724840478421297160797829149091606902524437747861457873157153875861684099020603295088781056755489910320167346132933616405342370606158336356594420496932223441970374321608411748909667484331197882669216248665702657170846238076461710647099210024680307579652477777825059474938932913342496353271513342030778308172630814272918761032108142725368616999883662212094472399400554960325574983427310487988194394991297061099910075840307128550843162778796248278337637785013369317117269809518112103178021219217219465282395309910817775107463572413817600806157570132414327900155150103016746153139284481892829894540963766526284453021600368413553906685681432517973706104859646248625010563621664933187384490011793474541989981401834896519004835123198314090504278364309116349524015559172217179817697230488332863284799155551921731894737060542354927158140034197000931542398029227553286768431047683883841671487159011478677664442191617476354900277693735501798492734848160492825040120576311238027949348720580437700396770411092224285154202689309489512268911893463970862450360896166630528375495712484681009226151186142976801504238956929118559676605554770320705358489749679050812848797749273078228019012988074217821739274910059329254930639900224632576260373041208001712160975829592122172849933303200930786317738750159005730023262088620667103555483103951750966031618878414111027668803083313131815340346773012997852235957330863047460576909503695714488315361010965629127437079320364483558408907416554561384772419416309176386386825526781290159058507008488779578356113368154342072672591271830746905772133954475249661381270250779027766596273350144455562096330224940585075066579227690976850276409220903138261652257579410037899430155864032147549115699838303833725178431429206957900816301017214885972634553052621516755023050365135336680796344671930913381018936968634391983412025424595090091223496114374701821029838391792842836220147068424791041480306176786495175587195180299983063061115703111763170305153884461018523966251617022078447633873295352652663216729880419151743629078275366924033276601958589120725412952414648879441476223738790711230891584775500808383189781126439377497575316209080172449854589194563290372970783927139592180620823124889055883545309758241085386693673966817767565690550386132154223142200777097477814112347776228243609536517801559346955706228962499878618303816516883583966060829587247385712994017105208085362340611476221867396098702181345882424593123569915270531018923806374265393511990920593664880433209848014596611212623674617130681163794849464232725428107219763272557226455952048617786199485528979493554279289942844268838487351006420507135692831492214163120610703490613868853928729287176716035873601511279558716209916390940702436461479237770440459465149765046535124609288636953194263163348238552434089197419983230595843152533455515701871276972557915011730082474001050428239008437558996801081139551168960873665204787349372303656965900530123137997090802835028762305535811971389291452741148674535313759047153695381985941660314614255516094158354137338815400560979475059715051522146348522965999972422316876860062124718717566005645871576204055443229126566458105342804074251964168958630335468910338237590062183341869890217262202673165302253483666685453097933105713479618057131815365497822988728433448804538099212456809819107579840594654558661645797807586959645160397551825850046107699994968467602675617706492312564630472108265842328395387923000954821372598246949139750071630988501617224930323566048319371139145065455514224223446437018670457776601041692631597676184526262228144500592045271724036417108942620565057918923081204801434722410229280037275184823562965631765256689889097390466620766108885879129901892038421771274688183852887702051030414930196167451879261651369758898207802481846337094820750128135670240287280640948751542271428207823536849645860369124283564690467130274729004362107393983139187294529390521903518631478113041993399571543478277644957314340492115947584775014118465340332640679524124911238067013725426281495367518123189423366030905720253591363332004245069265708107057860986938518042180890643683476035632490810957763371677777703631580893766660756666737732525224332507239051705018778431165263917130194572241366451508090514352400400520506196844801062672760252572850783778328991302846237522779064379857246187378215389961042049314623515728371145813567375673839116012776362836090710000718686700198265245374572605486771055632462512947819881998687666643983943227690591604040107222749463660102144772078981952224060938842419413768097165259019343862226355676799480339334028243156495950441411051581042937374258817704419871395605661468872353664273164684733764330314655016402241658773075453319676275158567779047787319621501240118678984806116508346829226257777305364050848197637756290314434459161338646433351766973137751943876095860063393448725059978868540957215632978397036576991570124671984083455296825181955459152085123148941192115642866175298934287380765604249606810970910252853087996107604111423257619719009914980968874819297655930360415005097894041760689725822477477140491333913122365815599414674061283156600075569521626260960002506303865591671925628115164161286045138947177786721856632856149585389401500680650648826532464365318219784425729468162807741944590807981845720201401904065548048158800576860654507198353905368841514113343961833508935136231340602756045183943058486560381768402162010560932569951971464453984671109493250263191294729024605829726981977344697809058566751499791155717815432118375921561867418986655290457054011557599982509539134808256474230487023887848702924072473042112641013262413222380943931994172466820117180853186495050064148531819583898430588085192280328874152276112882907939880158628072498710853177187148846480528568750806844223654676468540958176775581857056488722507983745462818192893091698297333363411973660693601428688689076759469371096297510607011438685496144176184175484285006519755980587910098082615925175410928698787979442914921670436106002925265478402355143338944490769751506618378230002419037912844349642714768731654373943502864131864709180354600820342812916439694402421279169138696723564938710761421110887365611696237682168066643344430108785284815034095715740277663149394498129430701886839006819631434274566495207662159274431140449257992076879850239154380302578131077986915565162182741034593595110545831456389065562705791233103091589778260865735748221625259394896748906277698535733740583739501694185763001724400693859959482575533778462477513057536322868138809262452470704724110184861482535320353302187373115903677138784964253650819397867868803953832707212520926423895895731869029405561026963127748059004617191775386289497798572258337572314905529883011052221545123478983781853662341835673623701097983635234046690676770289888684587052504989752355633062234100751609613561321605615341554751570898583117035722236496676234010774593926222069006271542912773998454478644129290224751365631505251176188445218747215751705211527939777268927565784397046756500002680801285721100775494394674699355141803768827626858709641559363375789035216314216815965097596587108823431562299822000895267800437330521490763869448315548913255414709866920608296792414765871559316328218433360540351091704017879207614666256265182304223663695833386198366625205034971463297032838195712403683233709546388914834688418503724189709343846483961081847852296252025613446386855221367670785107345078083667051641923126210565222059372368819398330237105718808579202087363362953949858130291617604877797263553870515536249047496747737473366219000855248953285032868610483185036123608896701071858193683547516496234129905313469098576264159048864777249897628920221693690268440040915012541241449091566947311418185130980487732190477227084774641099311807705813006591358745101897743236912232796892064253983141789700895292211275415029184609006045541077505397266151826025248296312632489081514308953037853909295968998905690088582047227954934845719347929146721975437300208082424952592263384598384658513410131393991871393377887926901988655231802374476316942122366104336521483652380443047720730867299271567294174175561151750480306220605970640658014825893669883736988124242472696926970563197287677075734601648642797777213190913890445661823488108414380015442208458479513625925387815857651991485996858665717508278052756875612677313441930055085649473722388611893962233618864715739127123673171484344181286603204940205182925744801848337294530981029215502000485589268592663187479674204491228387384970233124881500242504286592077627801158989136465276233001980459196117960772282249467380944521224187787705416948835038561289153137676770481068146050794049166249904859059919367408481038658379535326639633552794197535684463050038770162671143734935260435516702739571971778361522727484865148316333187578787790964193325674204286723952935457074979723241390515721541859088382618704765538137487630548559142144497713146424608077522840323353303420527040346879436066438754356967241862401216528502166077866647467341890033905140110616284591474555655920085915861851644741296580953593579039148352285629072763315983793419717526798975332390726290825678040140945472470414840086386868555323875502992567361434869272405156179834584358061970331246645698790030706332862161342718167039689096342682534612134910045323415815267104683474524372326951197542856272781659750137602757531151609455977182501878861857375390621738576149752504137719491152375264889491148035493073680471941274279084034343332242378898382292028602274426934772852618928388550408101686162714949365463694718642077035927556972881429474034822249837513057940797347201817669759503483249370928025744536532239748657124380521208180279201760362200213938790350928566947607392757726919760621514304872459984537037961154081676696572955935278081837204914231457400002803716041810490307472302235056616558024277765817115109412123327341915340534124670137017599160818463054721017657238756637092676640800972680350087895424035313251799068513411466757925211721604462304662587981207313702318461810026574753345846052591755873920103624539787126772809551018505009675461710220065701549964984923189644562844478780300906658011297548772011648869991258805299887808893970817913127543430519112754837611270511013173307900192934812620405712772480725420533028086454560400823518182328084763237169162052295868952214664837906347742306181133408990132091500856822380163890620374660176423389191991938565411220816807876608200795806410122947522792744390856347879695131119852150603694064953059546512536312637075499186114742415116731590792967023107585270429278142978010767843580243758706012926365337128408386574717166636271079135476434725593051569522811220784741684591406778713667505078899502012485147445555635526846448675306371850874291687415188620532697905418885027242835373808300297260379271442517435801370732742714960853189463097597571966971504195093146735552116553568585296563793988814021413711267975290859971096379557346258864980252264807720182974029883011050053801354873989168391045796278473003141987561449448065421467863753632807502443328625828868174744511732001076122991876867889894287900679537759847270492905561637164847811939468038845038603444100891728976204896546765511469480675943173676854597198385466019598829067064366727095907853355899216820065756357866782543666266251440102047700566062514748083542891395329862565412810875598390957737012576842176480677258733365587259529791276874621488020491215178573754424534793108953167115149195661929134756092870114118703336853793591341826352156056621715774973148080793341991923327863873347066989538423234894439827811885900177703845444439216965551954243908689994710088204191395129239730615329907051073500429239947478543993066296825869562018520418952418927394738851868785401502812186796550511868410907275771101719511619762186858965947930100243156933423489525934062634200445363891544727197209119202745744534847775244107952193467257346880760868825581094039088071953561626770882119852776299604577622469663903306507737285896340973348338381008398242226987222619397256866123573854754550259470653606418422028547773331906151702010540235778952091413301617063660637992262368088960004334353220055111062060503620061130608401984779914008172853159400533556501033908301537348235072862020015414883749976773745472995760573514564418692807030220153904052202763668190296369982667456931547881248176180492141678749655157312587430836109868778231970244878519353447665389115542242006380666880301306116752402829302315649084498607539504937561441699976743278844081324027626355354177948030528820965216434696627213421531244858477078810595139200297312863404817189467233519172858609842633094096424565846178277025784258706544963432270107625174767772739546433707916993934206930297396775246835468452919890640167868537221677988113848611864431933177244596122855619338414137123390774816051640385741544379176849124719601793816278771394020477941101017466420513198069443531534379317306865882214601695174472271866169722579050363098926533190692035726788016762111055003544407100947851075016987622970958743067187052139714763588448152538171528682411529528829457555165334221218198136039006414591425123057557570481882616056524614805685179307081727811179144276820009772799420782867263878092444948238878315309586872357106815857442994700237342307879736726422917775514209540950517740583827572538667943513580148587656456044304380536678815048171284510205629698428606744808280170934385059864748967214078193993273867165289286381287354696030914190079296878874228292422033365993724273474279996871749285746726790599671595718420338782150243640357822467298822822426813775580676089555174615245628454970742700743840100634907284257969099035747210487259422482001427183018160723122753434461031728885233668657495372515258520721896244242100158355833295670453890333312966844373826446834612268229114958106999688446037908015080839751331240766365201383062685893730043138656836977986721975218205916301889137382624090120704326998786258044992069344188387695595682759558332862696452777581365074591085642343173866062202856000707320300231890333642966388438108011757164036263665653906742470872806928133306984844104444350184266221791457762304317623891791237996584529918695786862707476137056943862548663226465689727615120590641644158215465757277757638168280704846474083362855760754225492799748037477661012400200688621799781970692679772624410813284742066329640469519306050857865553025260528254730364644957868765379841583142186732753083859589172993940589236374797226966251823098699638392837922500243328647207115034382145013373887957034705302720249389873120918600571205286643467372613642138911947194886891079043670739552029203679190273414045059520073472313436229792007318550750565561031725373034380534776363557937031476078640778220433989418858032099575770503562701197188120048481137533257876110831445647972350435986066124936765088345453478989937536745558853928361868394702617014937281513792358692303066102081358546246712499611347454653994654455013820071761718452919998855122791255619632613229413891981962256664081629371294751744773269489353074932705740573627670647785337272150940451378113324849825725388283398747013437338906464373653288683675255777766115418476145807367446547203762284410584866505789250241361028842314382455550088761435292594849340805334534695548303063857098197769144401371927841296194400020414870009985601779263942241029758267786833432304776283623111772740224301544137364237565076652618271221942905363468621812584891397692447572590322690228464259750866945856646888482865365114900561141909430419916351718438146175262742599742066516855231495886042276033214763351218587453312929267346905386184075367940029274536727312867685486029007206933034294837892840777966769482607745280095406504955063157891693924818378247043653603788352990959172059671519215061263551672536330793106296816008867776952343893667790853189734280235725845389343418784733314022178612727404715388903511571279575907317838079254353567235550820082983389477172287993121982963560621375828799675991347385343976725994775058645072717614530396188419058793675219831085688328659192867900997070866941206636713578735566786852239151655823562664285005947997191709385805102545044817301876525046576779968445952195207961665694642875408281273872105465290547705189651972695933366558661085521432355444795464695727049256873829947691473361940789616899106730230275859364270571792123779646206093444074746308089847880394132428542780608435513433271732912263178231350746031910520341720952061401072033849368325889064592808753922758791457566351782798612364338794412906928146987805896175629469542730159180388471648184578750508126158972014364282499094710774205482902126701940329458751614062539543915570659584039801029112000679762713275133827069734975658277964222551219074495736962217895572713627747458688550960458521474374970412428171841738799266597255969916148805799572947707486543697994391937070919792900372681021000957365981526643198731654432141105994051665663873012123939463788927331478620712564311235169572651443672890753864297584715340308156103361893308848083643485460530871179582679674445580411810073307814605480756349369999829263493745675695791601410673310682366951102820895370048068074625553069452367456383567798339304342733486163703847047139105891758223926008304838895819883998108585005206332579910012070163870467345314268997588148252052181990701982578282281269701756911282558042944678084876347945935527740709283081415946099814059571102230712757712558777968565341037733988729726074762456030775287925839616850058276552067527176325174997999108818024713532392551354902925413353888122405139407546645025166312431527537781223156088110170874796695932333493756285166544589888728504107396579378648257818568815431090704013511013291093730434901928440645370235042648258927264400560916058714198136633173071490927120696680035240098578879930444062792134530775890589865403349071871742503563591244929678675478194261162409319261849484775748492807404889234318952258211977817105651633224292922231515956141333361143764292105193298591758983677699139348148910708200739657125906031873315392714466133522521262141785771303632366973747594969983063401640081909081605542680237413303593249297697901665833951919378356458027851719326243627498473488960593385482826072658772711001797597938914462427761691160957599033548975109685909559519283432616743354523996025735627142052206696441882980153454294392599554432863215284427708115066327626315407389903801231658650797741848070327403098771719984227211610847369197033394771753519493897774720132920988436670222383207225240315903158948743571722203453440890855185658748158882004132408492286011982757795656603171603873293742865831488021074447136053687564504804631454723513982546659748999309881593136397666750851207011893771081194392752782620225783376056851262570377333253701782238185203420718110110805260243442635414722912134197638085667356117023489729502122751481476179564866190398166588446498599589320732579125603246862644016804859984278953757366403094248401706272672837392511462066433339905800353466019341779016496674961060389403272771797506549303859924567016687336384879046446793911380302955545708382088158508349827922982466575228032647997668266418971349212277978801165538981552641081374817927168552689091901088859938651515504043191164858044371363606973988886681409741404858141385275849377129098149124033905942817297640412381915383215944283521961364518445726685760876197859486837610023976568537037891477463341532284684248410927874260568542205391906526073695005953859083017607789863525234048527946676201388826890891803912725586287110213269238651831212575850877815832950904182414299236020233876607134146810435351626065804976809780116888301536381865980072801449533432436130521725650342964558501849718121333088522081763107273292161724734778290324259582769112178293935683628011987389780970702820022111810007446021231058950185465175556153749225951535976219904532060119659003976141664950351953454930615524508128231282571159288321375229624914085626809495268918098109184424202353868065308225174967534109712540708064011903496265151519464817907512786053247772814579794140671041864192412617335936398949815514206787098914946538279890937525470980761934510091132394842096687278780136905266241176070427839377853471172391311623365977725959121074334782701201439657231027093657304615165823274439279812635023904004144806428134600660259278316260485260485230873402353433568674806091054414022263248676384765578182275861130512369199904697832791521034319602137883308347676280541189904820065157818239076837004588163709292003731700310690510554484139525853556998757567763179699098204243674182088007866022270314973130441476268184129593463013936003728432494015682577180114112639608567397438741266710801373124321972965968127811654915047855611041202761799589402733889923067447698932123294192730472735433728225593989755150303346658988277633676615938774900304228768266832847309027282871195256239798007741970990719598042559516817398598876002913136808270212862752279728527181789114219540192947602180163016245173108159418426601612139070653691128886055662918227267867678704345120676011306034611576208958611238891634930670976012182017874764152060477528458238155120525107821828347744859309941261238361757086622898214577611584006789564528188562837335019108912835748272329651399553231838473243183935376144833881726311253959568359360169924794923406004698115107057129152291795149721482305720406314818419981121235494781449673453719506280577599746088832105311532790710978162901483703282270391410078826155818531453673169981935286833410896819959959783517730046403748210890978706636886497640699559071632360319581794157364407176786872987275188864888857820232576259610162428929113068738355025774756738557531724829265610351640759123707329855082311073275122341378917599588481451640773519424560634628370052893325177239103719612989344417690618907780190130269293545614777240879396380796949564565823557329262762508073002079702569993219869391059483650457304087489566500872234934194811072676786710272156591862447363022540012479684479359734566316632898024462029732265059944737015687685101512505430607815181297525805364584279315848454558882841806245083296305381809594619084024037816095649933194186034286693027548577675791082039254186401008236228401132596985021449300177198974432632779260337471414333000598020550442538362221101469123788458508537914044203584373996060188281415935664443722070652332474830004368483884499928369157919780185219561517647014884413871715918472305206034871520639802030782452502386687752529780013279730310437570691736237817650501537512912351693951123599687326961452009755924391935305116876839352245786460415345544425746115745359218130235193575747232125982649887724445350456328695893012404747773133844183620839352290233871618180628396196648409579245226917113563279240822321006352631457417254799756758707686586187994161787677901050078797326464827182527808394005343942689081553154030401181717377801947560473475263362937945235411820642865655022662409967297481982614584065413115232447282013240816631984039016223108728155250989207778450118795051630704326964652407303803038336679589925446344149942331086618686174317521927976711926604438097547170897939032457664327169129106886136526622457156887396671299282983176034808558781483066889046546948568022363449635712931646757883774981872145379022622910084516784374149153690175030680998378539375830433994978336229813620658396676671060194498669109341646965143401044733625212234272850419999064542703338896215062650329606590846734904691449879123508428171210267054736040199802351145973368791836936267724523826034358668384496963832497457842314693256993541707724251976451467452241228158114096631789008317345634913591843698495216078493551084521475693095290347651116669480891789457784142735508389069274601137154057839832360685702832781852462710653791057243271533596637758419944177515953563733596162355665679198959211233508426163537508270782533527976265101274646624176684541854527166311601486137489661842249548186372139424847434246816181843373090886039017593960766965372269208064695432665896936766029475715611487750865019590706626459365675594966317850231295551337279687972603654843328335544705553902020657132297515604872106329829295174212474752526557620185315579116512673188609805587931631206283376016348974503503643738245988436361813394598444954662384815304789405725684997413673779370231345931047425045772660556845366015136034282197542326697560640089456039820540078080227642033334129719024924565099363048260693291520898588376133707451318496815440742599039307177377319799414809850135668526044848724332921368392816324353229301044946177800277203632569734247067515667484172717699693881332936618753824049226428153664618860095437893127251213905476409598045511718551625278605380125562734534162941181313060736517808667067038964796845151380010568054960346182572767126732358310415913946286023945465937985332709664672940541294602223374088520414798019143587691033344634217204591937369512475497353006142446474090125729508669370115824384252075150737429891948790628063061267177869995041919871096708288007764979461582697984549659992905053253076838744960121639870119392298593102852802413767842513791007726997013282537391352692355570303467770484461073950571131508897762962690848051427841149289400057678324110956272446734254820535527153961478094012343031990788521565565562473178017627027189470387671086742566179808429896179256973559773869175475259400066910534980981186380527481615602178511729094517635240138712581391552749579641421624702537142664229926115433543436914673538926486114524834144551084862659859229795960075521347666936519909666524256449992629778002050303178088165284328124037250565943311952344383284131126529263449396599516171220596987915037983287795490968962005238005062030753863016185065355607856143644957677341226232266129005303133067381214546022210030465330632176835155219601946897396035745833667775972235203924724545821590020911486148060353727052700793915587415255414653677745506787071919321105917341864483766325994615649770526832548193892779329023585441538574605673477792774148803587684172963042230018736272973364623599174910007906302411519493777128623041823829987919975298878547317001155842402207438181818649025842003058718691443349963939907549259062395666633949344106686498921291748162301612636522010513201032948056756341012835386677751412554642494246843173492218730081716891323975266578650105371501872178663056992048189925873338081656386328244159072450340344246208445876424505915415989484108524653608726778211109778621344318065729921468094999316202392422256318202146981920544231735202569955232924521452615747253312590142564281841567298391545397795778008545469009680020823375601416366487361908221302877777647477993422346255581512966199378789734222305756278587301490605748052504878881369033368214756977084379026227792790083311650525149419094230180979658010092764439292786018518492831940102472035886144529179820942680950919332495708078307681894868123572119379774088915605147047525067965097360927459442034099267768218072138212364304675209183831793895130527919248839005887840252212761281337212449717647767178491049353945804221688699914920637162617850370646429558540145513687247451470300202233757407828652738261951206006676581729547621779157092870929657016315946852275695651692974291504180775403187512941518265132866061152350446000592206808000258731461867331193818660628819322131084017697991814451293116692030504170341309257453309595835996740840302590731376094902499091384985470894323833450513133445194241823583338039558724145849044990985593469067029835335931784645142636528989417853275115466040631932253248053246304556943914404078213320520374756551628122160888155895018308702995060311983898957933269595578508349271761706842911155529052997324215962009362859283555536960069606702019491662985136855695639839580175013472610611434244991197293584273631858670649044384712295786939058956209207992507575448068735940455656725315513627708339500711088153144615199155368835350153315116843349854681314130312767505199772740690332411725579452990012514308269195041210544222742284100037677588523816650485113888373158761089926296466878971268168602502347649439575976840717206403560113004443595265145314119377123453677807344441505477171460272755824061157006787218319806778399681929979112262221351785634281196259779988831953772035678790228282446844537843163547735732450223546437233703931913143504512442440163581731544902762414264759094840649886804494392388836660828249434562659458026897282894376372608894026238467679545724994997241074007155731703318422503222664057967237132133763451405977415775322048865803698190379068758073190158495621142591703334230750715118705192641363618996115259652004229849402325175818484802635452387540152289359531691583943693452508873472548141295923540849084749914897497374655348142888757166493149701481291484442794176881971148805247528913847860926416936891378200855081486998327692934476562999019770646391655125642487378516016798830269489887332378452637988482567123918386815626002475734367189258650115233964919023823072746857288481627199022421291824130861434188191782607487007695143383801637294502858398987363416667872311699339917704903582147721095914615655184350172573831360297362025761374848612744727956989909945551600496398606583146492171147987460561389057947087825107079121922812331380682580769924331642421546702965978629293856821081062469397666088227477793574798997310884079571311194089402131363447194976510077467071073954805480518550184185021475003233515355621355185759008207397708668230374733047366301051547967956308660665913587853588173197010034728815327979389631599242935056480249410974668125919462983799569778747989325128443524427173086071140665566599787076236115842712291910915257539513231911142643249335197807842343510947739975107351518928222689574790601062438136773886280021145870619892716543575296422789297361865861585403294940898156537097431156889236800846850103325796253226259627503398505050820444880225862331021623692701828891852861921287043215062133353823600023089429499599575015444820524494773929532557795076430850646274835848985553972241589440075178339059920323897566293008630415322790000496458128419122984354515997149762901352972827356051677080202776297549911835667981055040683591582288999362221984589296528220584752735811317329429520343028204865792123357184460144105944114140713454897264630828428006542700513574332023706856515010778674398421795169890162671938110183036575942862698909619593535361636410314820182067343525435565086999900041780005536282901776711914178473309722965888202806630675194164559568619164226815988581574057080543279556967354161131536770063277958798981870604720786908832058878156113384075286640300649428125184174389160952318652113796789963338116815560064728868866168052074030130179837995601544119843991992669381563502791410686263133155987616904483203278314841270291720802673132570265237067298796596686581204779293476309428317692391447046975866453841342288254691143372977793415764855981635957176068218589075011968642673840409730079769831485642319263667851094143138146719896624593041256054514816690257496510737635514273624854281958730227875338081675222990773041439890402749564974120162239192654653556748211700911729557757931284833262598000699255052090609304602566820821186907337434436432071224962478658869301447792070012345589718565558426073418204374379931010863506773766000061314058898949112127368302744219987182777777648810932680101124651846995263882656249505221159744730688870587148980063411178829522828354781834165754921662187732040954402485116371998956231168621112715514350757214539569023387466498026308914928505835284666893199944532250421522285722018141952547701699609184275877699802933554772617934060448881249975667375773444464847014200520139378076748843053443755892013679518593726616312104334374786443042973925040603359212824955607621511997094434543919169409799630223982780566660728266736238163083930152676504263708786930959781890026863552672353276157335250718347257290489613387198555373770528572412310543989726446426047120341681758476497137905007580648795066058130586424213839721858478970976889692336842651245626998473896494600269394159502821112488369619004436808382416711006827499471211402462464123036244430467376567592816374986381023422695613964573915375560385158950236896332049943023127234755933664543222160553646453522503300639798099781966083034765809638085315457804724663891187854051178706268590944409196961724159591043831233411173910632361033593619212144168494988253685868126457778335034557274658081889145434371286418516345295645571396952904939596841033230087711667653535130650820674585712621489987339751930544712901625668434662376855359604892452420720891724325331700104625474955593738845067283329680525423394536992625092657465924744395736264138274304058280450163996036263520531184972763370118509869866849906731707744661500789103262578183975706468278358315772567199543961402139641770357666003805138841244675356052150771964510224308929805805203760157735027521853870803186950666439194036460661879509515288045216860193769968933107719745241131193075001389750030881386961150073034782413961832598659782532916487440264591540907592951028642564800674033645010349718912871332467123835451168887769446212245964685792102392755205479812919502429739736990825228485198896395278577799568406778897383518277781037000900796994965997555924744482333931640700736348879824389967946605808535706411800716430211380328151379269384321406358171965753609872864658334791846362664844237504260584628964619983939573394199684349039073872744189046176325355454950356301618504322427613574199382918308095546803514982673945613622201968528201425931111555216519850557209605448888795558357466084112920707782173751165526993422867597323981401594140283006016727793165901750524068463327884590121962897860260945458720897654870442225880082538301049595224692082245919286209589153596322482728745111584146291469185279917361013794029718210355027570469626688899862837686674085581295382405272069558896169792386615822265605500198811663687680634782868348494073024474205561960425635674922278096958898680119034262378624443867268439453252478618712974743520944680997760644411222569149611012326084116961128824369749424250728100384407790808062987908428968142176644057030111488765441604176869064991914036577213457533741857216836879311647643453331680021952376446030141089519004593410298875406618993549253973583429635881174127301254393410164952639453023926763389628380387187399233887314932343416116913429936894924538813962907481809581436318017428466854757819498865498316209636213889878447441034651380897937836793476555495640764037569402571616306966324352805498454285366225645264988338208374895191227745900486452726250236303054658320349241640846138048458034699514288165058026139742114369800963376824688365959093319189411335134601138635952649969971577965986524306907249083840703705485447504055810022377686178144951479015443654608813744661140522032482227223790408393413788667025603876157482653806031893246152350712741317701063823953281704131370099186791201419150482653332510329574917522299054428936258268111796992587049405883945900970597696774334268969837115074465857341740056650039015180809960672846076957787033432020597779592337499665624079079038331571199767662566093820223784593418236357887932851875250003672869295632515645512915858074024314779963604282515596226798750650698056057563230695561446222211619300983175139263800861315062061398520358925201048423277041639915074679957306162561467543244533927727806689867840017242619622094516477326244500101662767663342970792073285561889738863291507109297881793605781925739875785648656173756979300267384844188417466234248364631569230753006836773337458746668289888553825655074813640269309477542222502741703636015479992414627009241914377323344227012098290300590252840051722460436614394926678645146955371235972094219188012431059261499424278155828801072039550231748210913763026737537126508762691840309126381654812378375439804074624578546780705896464292209952637401382569051269343164616322721360597187287187432503363857216360894684159806117503992270457172621528087699784401805907323391011151927736039771061583415394553833889016416259294230671044463721711068222063215929877379119910130885037206641715801599632625457773425359044154849936308355843466180966292309342557988747284077280390401888113571325880497853601285125545824220511280539729437054495558756726680948601336429916695655822389314688281806173225692164919985537630897322656014567514425380418207769645082681641073476813837315248943851816603003081600196841559951517109578759743307981539326358161586413022369737915677008361749957434116415438544920272607087459705152053553839504651204467928755200908535782127659436975978638357355734481181490743825973758588365686623629502797848583024885990544788868394886714279255166977890889430169600280947930623738630936894966109747199225009616465510849156539654884013142147862042193642556922977412742384376322604167536148329822896552814326923697120711218974775968477621786373256173030502761623142115853977053462945617362627951820689292788286307470952892307172920492598001269035741727075785667899988125298387345776271060199458276424387067129323531577782288466651134851729162341478622240377143836799415050491037337918314107232250504579840921167901137306669626142371153106217974832922658675207571837280253362544974038291348674412151980728215920814183464519215291726136156232424642650572551826401730278679096519264257595459120027182960309749420604607285315353424411062757324185654800275971304174440690937599999020783969709199648896584498611901007765050445683349610260705393652763792239848658211891673384917638540538225015012369360401810598105298181413633211220804379668612447526821732799648032159841916389006445255909039275861448636205283869865986585618540000531578548179339728093988517708331695468342409819412867604033068496207490546520675320735360043221324278772850385714468883792046526657897062016641707267373283856482447067924478604937540679740648448547092375527914992457292571531758943116095983347150698863311788570028093223082042500093979224143139443761628213590338659302907642868424889887857883498019818038520534903617729256750066303480161988446257859091069820345149174929197595049656622575144441006278045326298740901855894514379964434366144268610824973311875145545855678987115218842278466176667548076175744086723178379673457445054412017331150839306015257268079922321511627101946777629878399907562145040342175669631999526003016977425290383165778661189006813557387297157541020413127676849556127399582666475526551773140954491441011531994568289981391358986708861329202302416098028310446727659192907943653044511841953512703931040694380889194497346553546125226346787324814048336339651426559046446129904019106936609582676024385300296590063822169307215226580272148745060173000329882502273652821756513692730596685782918870131034690162107953902359694929086508217189405785096236017391607238762801319758074544882172534593322365483423808141525769708091890259218204606528533904969833615606545039876000331145096174183675508301863453964773710291239153379686619557004825570538977939275133415593686101488956313487622257067647759737083052345386481394012649803964707512936778617560283497073605188168785164435915788953917203994429703497079136896561752769726421440344663824868228458632539078308432997174159552615015358172198476580019722070245100675227907953932017898551441388306242863134429629516637321458356722352965776552590531740095288638781305714520143793929297010095353736494299925051480769658643305008160775661215060313586470569811776299004190030267874129158909732770610624542723574822985119654639550584045415546208892466129938455620619359315447760675949802496226818708887281047638006274868215687976405422617081360876201546779048759818784622979063472733478489528083717017265954420141139109822901085352441059707776679242422493013686308862865716457712971704980628740752703734545999912626200025236743079087009646583464480496720704905302617180058851794191090583485035109204266205195381464606262949844599973809422529876423167153319249390157460881940673917018889340951866744222311579030460460168394701772099575819150778735469079029355241312523254596172348943279640367822116087078943324088952288167140682126287172429226931199221892919654161312338015594282466024235454418398847632498984205840446627965802481272952197850091647898984099100426809279370179761818966294596124854142860531604923313240704001751864263661132499980388273643332681755583718659231442318761379307247120480737074298790284982532091695924543692933752981628227928764172120137391284615139785598897442404475414682695286839994921316367907901121555752556210763429914248188800614675135091540544191473153350600426124695539744550910609560233971813142818285259975201569540188038215811106627983285117758578029813596176216966823753507283198842005760556874972230321525977303629146829991907063143508966955468531848328954032280813546955868351499314615556151842461906493909343377358364548684577943269692553534779380588602087739620809425465195155212344502462388173595999084030850813081829544595532268072657505659710735589277617340287685486916095930042349631721142918891787821416155744208039516011943792650615573532389767755337215213485528358425974082490840279691713955060488200163241747762097261830841624990059065306333497361935949071991145365872808897680109948441209999305429222261852231733721720232280111754340613427700147223923290012047408847973894766552561444666787919591435731458110384306324384902172889636565216780129612535748855953473054324249168229227732213236079316463225542540161134230705538579024999852120568964991464197780345016666462072343024848959428188166608900921008787895749125674026864373708952361822103822787645241155963634057017809148577270050746091110371849024219006844334753255080287576309211043479276398414762740854273251579843708910836317534025514998106367046706990987064740894921558105884916834300729500313977063080399402766057051350721776482126649653357080394253893383000830675078999647520353734581247253575869695135339287735613828540761738394659600111109170133939906203833990840255527968912195606312203869876534674746068873200213603231190359193487079907967694431558903524782910817369289605631703664327711595430677412703078887082299250775913107448171105221456683791264096238484235796227924734697082697385527989219321004945291172483588893102755205570455679921735416348171256266157837974656266904637895408599933215214411910917017388591167078402743497529597705184231382260627695875544806017031578407056461729670557767624651216623231934587763206004716816365612889486149966781004370430794880236078102052168830924278657405514170544822348892650809355765316208481206494954798516715290311324694502427701414304913238481170680357218530132990784498107661389997310369125517653851436628116575458231882955024021385578569377067672401523167691939812371528042446588674147432865968004341592984491565419540910808185515838480083584107527660051285710902813437531832986406386924183418146454585940322427620402510850157134467502387095773637513342207589327634970428450236178054136718063799900910207094840672565400082466565972921178103830911557848468977116598335871414262084420804291738293104036138449949046544664754781462830837275799042493247838312677507013331121502816168894595739304744099104695497635560198871935782968541127650146889461552391008122451291872805119764151950155420871486616654220701704490578920944303767378088266061020641261001413582532691650468412089552154245158604543390653776176801506857699570668805843239791396638980941945742517488263975504349916262552166144572462956685641090357569055768747702923559532440579267292651137029328336374189530108226817513540880792754256383402216097565469685167310936060384340932627187594747526243066345610624611940053698431534221967749879283385854922314037425530816139256349588770022579770758821023195159057117332613730390547987646857919171894539896916494482798174052627373907400916702493886845205723318069716455637861627678071236855009288112921118147349829347995805576753146099376903991394544257185564256643845536501799773486144828140567674402715623653976090105236400600715807467645866009631228502992213325911928314644782342113068758412204617010008454744488126704783876518548409866644632044367286819118757774063479882768479441937930931399317469326848121338216789351313543676953443871608668049424965854327212184173298514623859826913571254777143537045066919094161445781441628475560895452193736568849953673728883658966825975340926860041915539866522180637989441248913940191049591742285939844788581741567995677190505795549236490594441944346177127126954130705708410651269335776496001349806576562753892816682995539996701134626090598717223217530640536839065467396363444127107816323005157954380995676448930214225604561312991412138138607428757285326798760929382273338746794993293506404052519477323977632737627641994646901080733234911824876253459991481232275104273794526431363600407379880493687370260752921642614762686386047741960203600358478189855558612277491322645431830441001755283957614352807064527346064985416122017037840634621840270426167625439422077070510952431337479775864598643117895807804083514838186258504068003521646348179128570384373971574930379654827076295658647021757783470969614450775472200446967921202229052707597151045421103878169029830873871539453847253707255567086384835984060719236802990572827400623176263746160789094950290029106345952703148330401155393855299038929149195764624780215467124636094130762488159158851887449005066188339104285580840504165993525843968545019459861395820433232312321758491868341344869057721761251024617005627138221819705127519138180730432837411896489878739842551108791530880739323410659874189603511162722722587734722102612815781572644020759745221111953162625259853424079920860819952539973454659750114359472277328230236984565308960663880026375228108555674800930563375236505934114576991797312800578830547912167998581210923312646293092136184702902485585587910806491702795698088975475521872916447191512995752814035631605341059807165258815349351298385450926247509590412963085068492340016459956868977945485381252119047317023001822027232133091809584190433946224652704821572436029614250296259848198090482249925635451515059080911420841171799421218596928231328930318284200070632875982741983464291095153776680231563347530275189525308808169259574048718039612690853651918715821500745862426737413991765162972868901364540995513516371652682034157630465209570854654169751407117776378958905824856557022151912200922944621061978177475724656432134340683984883204495401239839228745509837002473620763980602061970349037955377426884937301976102512148467527313998468529382941474747407766544747653362728523517313055317889094514728176856449494607487629155290208004137108297022791089078350081588463250403803305762036456303620946913014005441038687686300211637359297722978916611431865677832707537097529455777106397178552378226116216531424448295570541065134296301678028714100050155446765049962076152892911775185853733108845527014067146002183271113275243741989315102348083049963711788769575283155883573807143657957307385600903109531103130211277965967023684269779521019448051993076178751255374267914918196247286193203688990917192423742821432752291699900457651110639671819055366635501097952297087157800032403808921065071511165628117416635682457840422129185738685601687340461436014532425267931304139275906111096807637467754142990349369154785894432409359005522661418700039431433594716387463723609832940110288525664717180441142638056131667819138096549533314011561580021121778633258148384845173415040561417539395907090335738764792181105149065930645751440338620665181341577256567272605559904529255407909934774209465563439999411490863575173677125655123680978748916823885886307750072235902699588199409891515054189757587596858095155010952011454338839556557281524163500012879763797158354701847530888962078616694524046357737090552816998080261681607294204310509349483889861297071377494075640065930187010877941130695571335557215192529258539587911469146927916447554751070639184501691433536116988854810192730116911224044072640590916621867379391223731397939115685745363202011601522786911718109416487392444409303662655225757823063118116786132716014081441983371138626340435288495626302337369420220200943716597770704015813529865069840679380269561508519890047137452972186826173053923130187886460546670827760819623393925228240659294233974971219913382669403631553962927309482025574093683231240812152366018940055057081148589959923733084875922308275106863444233968936904340219797172055905038703273360762920613276093115580700138701510206533695918875514805525469236963241161642786483142274350000671339690634357935430769211755559322153482398875419350832618067885558673059112037835813998085949845881103783125348149201737899777761664295643629038952420322887106460634357558145087349193949530221236529361155198168501402572068149459620101795005495509761108402895301639943223825756313500444099205685028432337417566270812590029574925883118271652663466363629297219030579881577017220756342604394549534092853084048172446723166117861301089287157212231684350225679168294893489434664132719706912714659235537260826468140950361204688963417353339131435275947006780746828681215054143399619879361390771419547259673261094882166306928876136773946730000105755874359429807441477129071744918451865813906102652170252356868750941054437180555334383305903857745988045628967165780275878076727195904810085388553026598425772097172484481176959670976602853322447758440104380106895198891894023879018663608408322621283637030671563149106978879389153157022248296479533487947339316295671293944638291173170079987111489654425385210369692440712473394701266899471721281577405292977624651269583847957660431258740973824271747877414587586074064164322841990415275194073115026670237804729219467798279357560526036191290607722762883760934763932716813593540594690308781125839920163398779487548079068040866867149898784166582691519087329497597572756615053637049755840947611082517205077763249993119845774040389690440945829291010112626843970005319980523911725316843489847185276777253430644793020002658311400198553014222295032990078959942707197520725039243433203523996932923019676315380191873781466968239143579812670923810653243621301441799684186475502956470151554130455261816384055001128166125251294797085173572766806104600488267432119986723709742097716145675210787933079814655875286966660018696218963025380746183806310053613808819827844007754624189903425258572552009091868370682094246011171767389910416031343061491873506453480623429535455171379798642287545129830635234263388065851181934994369665858574373530338805850822998931304969802992721898744982598781361080115266557182588451584516054172453548651012097093974611519980925393973124475070415224514983992211290359153766660328766304956874508374824147552626019107931672725431770309744458804928532381671502494489793122053079335664221941014289229209598195419860644478315535793085723547098979884149629035860643111545437713175579914017706920214001450793667715247222273204091274564087789888140827376246368370422744371748569499728910159097430669147710757967883917127970011792681043894614107897325075500580763446586402762482865546592680588362602459524138242444581716307066768728061469978316961474871388638165226014906261065837353002373020309490543999935138681094477138837832957965210556492943627718750002743310779054405714563381627468185491710307990026907623503490662148683666685599727524913567479809578403356563932650652143028628579807445676352638640766802251429306741056967809274277196908844881330924962253574766667947209702057045370156872652627337383477469679945708817151391387049055423813806735039427554682837406625263941127455102958952075534584645374787806851969130459704750421997925634392495757364761853233902266566873623889313098548317993183180158927143185539784648224377579345759602542815915603302345531670024399743722117241865069526146780683564785582056537429941783140628019365209667276346215826318748684581723814860557555072749071785580479630015557847397374761795498859360520843402540499756377402211401196969633303834884422300638286007787126220380053110181760268035569505164092084274499250652604764714815461431687248971784352141412346731457791885437513673803900998001665279748340270319970498893047582430912312412658511260166597055118856086037625741323405922510430318412181470891867438573711716173286016178962110478046593428477240786072655636810343523131110049245404961456232550742513603895335757794469495274527298751821661910358008821572762450582809870531991707113533271668406850512058952727122740249356516217459440135319475618167611763152501152534848978436604202380123333857329033173020567547178858084205966100567714597369449092129801636002898734018702776487975383166898515934912275706816835600619439247219169484374471650093829139272418623009208714189760226861360333300147842207006097438333367092358905922516715171545641008981708686259477685332048638663844730873956518272154621695515862153184049158068141002215837758720858256833393976128465957135024812324738516232401858260261123856403823770927182758071803559748025171164182754483013402948061403284484230881521919444323510629553229975340473785062273263026415050158682872924423925201932025908523632376657534406576920246555018236721259222134106763022856865033588250521407108475891399114086956794915053990073706603436473495043680544658423268027482310870334861996351531712543606714167166774838334030823686859903399137527018539898008546998010113746613896506383371690549760749920774533530617869242948176781420511528971734810113272506455531827208309747986813039037775996144309762967694938187342063386057915240204900882652330480867997834906840941022860046765769886384187796777747194000164281024146291255531805921588140978072208839087628048012205150348361375581167446934370016044665747075663791343660008226911025039594360245084622410229652652077737665917543548890081316199224776349556954820732945231044114091301245304747991170666075220757777465106538917479910491751004040021704664686023893792323663561745508615116610556499731126544949214813259625133358307644942804911101072629071111492325113765770180241013515182719476179784010641246283468324639654117392200522143250087297361673529346990806935078336014103660755049968339872137560279439527833588150550188552510103552923497491128339472895001511440846945683339626054440425748199724028315793840575024149478326406730624874916502319438246141114402394949835417142586854608040730906475557342211834866430936859420262716670938241242265899891668915168544424293968806163854153143721074213849290608082512574036881634814803633036419166375096586447345646377390787189513103767584207033603792199049239781525820935058990109664843589209275569604355701784162940752192786041143832691059776117006729251664894113360587151702258809166882188626736507720721701450490912162214370218159302587678603381209713700195322847903823824897135179162087804443686452218620510822565725229856571204541925312978503429234027542910579230124643635399168166979320702739876283788396115020987398236089640299995845284496563685052750654481196183048673859140966650425939323987644007539330508268911100760596545853957139927334376832458607603978936931593743030592081789462117030027464202149981684874704670784606599196958655978421680322657956646827496310971585715427069858960523955067132697365426700254439912563225426612804732564918027207112855562797499364637437272358463806720001546193829223326152587619406677020412154014701774261243692501829082060361078449221743672889798236515332210775852234773951280523908069343530341096269751559624715896692881824763155928475231450117306239019781340744659758966074430938597363680009853394062554841578847389752644523616571398005321943698754976996044967380491442915154383716861118404461827164507985566536760089724681862198748176474809636707952640901653777555318697328777153542984206477053077928205088086535789068028861085785854694892051982061027634136684522871132933369877207966052048171173869602971814457498110020712153361227138072192827590785121842471076624042571635889196924119353993122185118209158378579848079866720841565112047005518090369454008571583815172591723768320356259083341848590505233177082325167526801309956968725823543304680814126581596623394620160563981912817583649021442708922045536692792395137774342532132543147732892064354531338394698764299288160000709831869018167794201515110682803195379919650508936487296231503800436023171509873004508356069926923795257946635804366891049750697190214569680392741135935298476314934803615688155513033454107899458399652841290870944232175430127746887339994444255252997402608116330908642390487847163558717095353949748778192011471488840238793811093379460420023891389439842642769671364231572436962407492953635260799838906527451212940903395970696781648957809510998731225339192443801317585702834571757757805021238976426844038118073496860289699778576208595709670432282702006202489397236177678871899062340213584621281756996736285121456977672950822004000885302213668986391206549971994787826794976820030379992268175143856474937398076305371754102278208050266781108665750748385331584515438680716093381787330425999628771428348452810724926015952622149608494232695796888827598972166359245387433297536822700349108762066446579865347650480619945716529189824293986990032082303189446548340468588830889676882887429797495109800302755096067835373977563412014931636666605177630441876811955236643518018227163224084308252097736878898434785006705255029918770395214391239968523853209084299897451297319973103715893981735027313101597761624617604157719577080034948042918729514461413448463840461091391938185916514293710304691889503162336161608643342302330028759289110966593245275248249374743613442875064081318056553571238704634408021894867283305490931150389925564860051026125769093250734280026270089606935494361952430214993700796171317075466601259905665252560673059604753838307800212055891972181396857951494698193625791303214637921885316354577079682914926797275936331875994617709467443214795243815292599937492302523490691854053249738788595384156530034855173353915698751151792498191487720897188321468408053216705473248081294419848977645459948866106634542498536871199733265932779422753378967284830406866532319177334741923421703730391026137137107793021230327847464473916855553942792608092352818475437690314638788878275241959247632129454874365375285569841543352599738776424032870954860142630461919714464636289151308577679540097910259302103288293754143408017790938547510847714293345253589650744853372402381242491389648613756133315882882649458101722665799819260624135474856032913379553619638682098123508758121393217990493384304779623096270168575615664997541906373606590717833096648520479843901702085657639933728209102049756632909994765160477856582450032501490162893026020861701676117477378576884972230840436878864479935421635929926402889255596491359319128916732607961624499491734950681544764480938464336483848983897115439968149914979529527277953928180722872684864311126815057331986509592627193343526996763470528164342162864639257142178260826127098384677010250816362201916585706029819681384176672989687731332444477122607365900739071731201213215309859165200966263490937318921029048917743140127553793008728316139557926698184712469720285253777472898219305173769825679931702519557806734176830642449617310007985221006767706722858684042893501083322601800223511349064926599393093119092906730937843921406820945835074233939112934010157925492519132653036535685788492680074008034608374116587193248164542224481257562689526907655242975118806394524435454705933614759349023960088309180219150290201895669045073280909466545925996740718975305431839913943253858471276060251372187919530849459458796981473302388452225097702875397034985600934249641354461430299086142243780355545522149694938427373452371514791328425485271958909130208164674815276110129924322873898107921662711769807024325708499736738829145904869993718486787741711712786584927302736895713147805998992634097154713584068282438700256438411745171774503743443601754358497502983723894490757709152133353260154505474025971844184618794842507397064571996000777824932951826932284802804463111245777835733851987986945776884765328484338828637927771803771604398777803243792997947866302029503698425141289061018032491170377130175018793512103078474690647121180293041470655735976380144811022944915908020513330709576894788367645941473972531603071305562160508789294143318024665471855859011282292618048864566293796422636852799498528043348440929156678930658469577349155702898227322719955057798273125436532448583161093358482583515602757855540808888437768172968865542672425538619387212981039013106774817063624372194224678634352847478929086307691215155286274996634123712972828532372377460908584409935016979105950833626497258721747871077773897486544013146194790861781597144979210503638945301872087781204887480253313071637198130072664029349548121009810572570452436322278710353757790083899406088251394273182017689993468296761733533323689506744813389795467271877675159444469462473621460348935213210699207607643166095669705374207908453714923201383854929803372761513355417264354642057155253966837466908898635321360177817871033941201769244070512509521846211705166329810771965224868959775923256251963592150353261702541050007721119934600793075367880417801249489809888566670739202191295880909915548876876198703053984090140180813473540154104944498204206371502093019068278949737848819365881487588376041605930338268813925634686705757689079775755402834752480176848275949447511448327057633502117448444684874886137322760282432785208922534714739766360023255976316659562128715791590019119261003535770048070751266506618117864156393288154715765225527081389404224835915457039907308567652667678630854741720244719727103505247477526124333477668600531170824862675495538087510640991346180031950330345823642722791006062537295691003623219820836821614916092585175179424276533306320612270374947980260458472717836501110704119823108666819417108415016099419441436852998594710578124020997472015745589863360036975080855473655621655944003605318489351489129590289076910429240861095902641979736461464691862089067975793108764124324011721052095192406474121524365488441565338121638319546083910500704632265039788242819812883198434460825352084499340952567856982857561734535685294785904521586769692962328692966209389567408246839744213299475698859766453941231150403954007512034107760787076284665247609328416008061699161024175485705493539819956587219259901341454881364363944923900114486167652349098828682795247149285533929461215553733918831348849419553692397088933170187037052457891043695120051677364065890289812307210652383478615863365755014758977339709467337045382145160368048414546350012510074731523274390462881713280025332720818604244555093998250119325235330282332687538910696655261960413651372884517004866485463246715757821311933440481271139655812151697264223695246707854159096541141865720599116931619484523061665897342636766402986340803901051342814223999494933554091616918538631195177512986516949705818005576818082605024457214157462858582397208513575880220840027956327870425424899488563295822514181042448354187664134106301141122959370414720806030168041855706884733090081759940343256382821077932325296879720631172046169963796721147233352960847606246455256803620063859773418484763912927913780658441793357485664871382012343691659266887242696552232528179311466739095426348567517386583473036754983466746323432429594358931252676716379263067486686964485717277718054051639645450100780388828163384391608739774446654990229525522919101347889327101177437920436728254048198498379367092114916257037787894874945346264260713654653600762150197762001350367516835965870689097027152410715834595762245102232448439621914788043011621845998200291131839103695624243858294739151944075997244997129274342345077652746629017154272439520694202127258875895396485153061863267889260386697904239834107557619395964494741124423721912115472141972964589848339895872806671851941148890237360894088359664427411160654951906824529035844370071242513532270402186427292502847360472099799242314559791857641436815639206092105817777335475193615699715519360204809277287304056905142262913782228875194562158576753594272077240419058882083620115834404092408469340029846895815740344944898839822097241091969913979047012031003336812683936228609138804327616083129981531247165186274743736581454450299866886157608692373769687634359710145160894777835195844371257601975334228109130521881086501177658997571402159626529896007554988710894852250940110906521741904008212005378927025646346787479477722068900031586724096727534525436688331889871692844037321801083814516514322366651903992686343032537459322623064392389067009079267030965086303761763163289212081578722122310947381027278800997196707235440819922967046393550381229635112233928010228667376696298578586130173743920628934465631789316520058842050958110745771959659018661353826213592247498211141311298474840143964280594753337361088564518405413920792768178189636767950838858255273143113832341147368697240252541550792830442310017455510630635373700557643511014298207457794701967607935718770376218337777352744753881672820506649804485593297807620878349163878256633871195249852154967000775685830881762411241980745378940822426511859964613821790108225257349387772298945700573570472393331822150729995473897106436600895122326180549129225632085931557457249886534835540567253440998769084369083173711560321680902456996616257499643085329918153892697143525161577049895857163305409889426144450810316428257720377227214454385557460322857829795889418220379583860185924722920891210081061730664467523906996118714248431579944325791853088720099084841487910419223424939467936350008893087802620017599525176270878129662894786001287977889277783464691264130897795736430181360943208404479511753827419197976185016679532527156190848954074535803064848403500450472444619247682010396809362102669277187582056625186864385761604264182559237690058612952233602470523149891310893587811986618274127965780499823101847658835894400939484896468166327164891934530487206773728537967892294010010608718356432249641771739128503557674826243274308864750177475883226309557949890995623966366282805858737889509094525153186589800572634198781871440019783887148373067244621503993095428245703475222939856562658745111686590857640845352458020276745192944055715459544224137230851699598633001771078238238551113394924889853734583107756431536220865804765625629174140050422628319225186044007534590330291230368974118244219028692473926681686308387674129691329054740695014864790211241756193725210927324447826160507130459673116420507633664161606378144831792235342414541441912329915711492651314516543618884321282773282541866438766316785028506699476201790574073367632245159281842960066028557029555056205792000276505600572066754654758262336224636480623302175560148939542874577975500410753778313799603453119789325102416454811987105052255387170995059532786884409391140609287478518301105356068252175973594520205797247700539050383247276931602549186902872423069780564201672381819413013889026574551862547586114717090012419678505606365697946904806433981939241510798119406766841366306700645173880182593516171046932717633479174229295554749882862544609365315284141307829349721670254202398086216102655274695530278745316570513225346719202399470330794729251684235470115568241806078790192169330764327551675740474950137115242369682154162833688109385129853786994575773247366257832323373305248516288931068329758312337620275764302247591912475142221724640080285695871407165108286851771806260282672190310701936502463563689386206155389415822408559416867343746822662829785964180638516469316544811243421367038833293953517915801817666097939798478612735570710902496038807920246464085403872961038241505055003813337299719000964318391978931883900367569702697227057347204491976049608130038585388948520521156446521110450256815441130916937515952973190480409333124961955719126901888491377770734566564907652434929838352424940158465458014054150484205496451884745695362471080012565874767375313295387161622602682128473513456379015459227480508626036839738804104491394975943408407941691088930535616064092635674123519346782059192011368337098381830377222704909064098865615688534463925296782657878466513882379698719185743195279736619319224233836646363087687452500487683100753948009975893691173796157823703706259165385181172557593297545415666654556918928419697176347956552403222625550530573978462449695977747537483663257435008002222763795417546245586758347633346865607452705157814179996997735811490670489980087869946859765370233282295420728608126584112489502671287465863770204198416663364692111335070838948581109653410137274776875807698447070320471730150066331100025746904512453977245085852132724652549593274388871273250587511700790183764531938356320729069843350485003807068916789767344517336882781186445298192232963923867734039677970983769021615693057844563403394037418268972522462412192173066927099709203491595314855756281627861262262458057540824243122401967966380944680619356932761129007353052351896596392376941000575872967079122266983980135243293292009960831685821849209278582311869821194356040738752955501183220930503475702774445995406756814127877543176959846990101172282491077938402309350175082932057822623780859925776742746226181677155315608664265708777156815911654196616050725022076739094713270628899386863608526512476852741172905020238644370054600534532603635413711233487848683501248157626383764550499381652748560711346136732969413670565141172549515943971589150545819442608142286030672376368767168548397978222966126666801206533920286051276629180797063923812504013805223627002521032663428807894365742972731016380050783055821936411366807468630802228586611265234632789146118623041668333782433381649379059287009106196033622361245688161054196444676178731489489925250071703937967414979714143843681922391146680458038888861110051045886908378822231184263383362284922822076912816573205528898237943753732976124863447843657150497206385935177889351042017630610940176448963917267334746895167802804245716987064935887628804817499083661453891716919319345999799994428722322298320199233764575256100707034596331622102225077687843032818323826241065317575596515912283293138402295894431734085630701476576726715452655463885299137263644061494153628117278885707388299718310190480081033321707810530663051777607360528706478974959515976857477044358643434433997954944608797009513003383906401853968722931543323886932236625398709636380431160976460196701433857110822777832034812363259766671300137745620525082704098603702426684104516184948712554176894498287426940771802562740744812514721270364772408384479028892576995289243176566890605702583539017181830666435060072643871230443233254422589778670615581779715301216018232759743536959533751142907231697408570848718260841368200353283750291263638901013883869391819553792901040350929870534771162719494466358290068699243345187629732626134621006118393515402219639440339162351437531137676067357657592908976910578667907689030058549319160235192272673734895272734347391900642700112369400353921401191190576512381775671119810818610147227039255639086498948491348064650550898250659987054717170293931526506620539015592962007158251984617532234360386987279021427673286779362748686329219855666313784478745358553856021316869503946421545211773168881105994743835094855119721735621764777005311595959973155599469037893281327800777904717899176229140026926225876112751604369145631225998372625376968049892882359742426475806386422162198352272542105347452376076557663389165228733738882748836288646981151189994910943287087784846317414635253518965640677223902364720825979235742807631484802177353691309711465002080878169690147438041070985795460619076374627852305780211445541717569636232659785269119745100898505689748768713390727679925919469686262092983637638042711232371497651559669469752084796273800041540548039157727909969714410614343375942719488706640647696151172791754279973103539287103108754791504222970888267839006885438402107040002421795112839753921714051177661830571691018137656706513607538898385478695937943692106578456890564125778149699040663479374212678739654795863959796604647107346931213896696993310932955306393075496474738951428771299065903163160313417022866334541214416347624830580219583403884565910609926896849673287017130166758698119969034806515532731358075870770759794601225318249878002443041633478071091130076283867624104261553911691451369709887325214174561808878661604130252687969530961185637932427851251308346368229608025263108924575676015027375304579279064693255946318311943297126307285883249607323802434739565827633703686065684199441642072986677281910620909610650538883816090295882080031882593884483960464763587890788483480818528894322284300198468526307899714588442659873513760699548344344707718044391679471142372998859044705232139056822700899991676567191420797848058377016530956336705158761117572455726006420925235632397442540524589890524489089740160945328006004391942681659084665857998755244019994964116926248162187119945304084681820984425635940913186465480720018483672456696029475368652681203809471769230888666955643704568061454087655167491579851390843609142589866361398260943586902648224932871117252943046941225754767524800102036719403097091145987075025367334422545803860413773671532471133948481453883597344566001696140300457408661529263640018028321972600592023347067286750188440745577817581755775699096768676362690777931976499950972914539142378365534805035273328975470677031560582805045022700911848108523345575968927535713009557265175575133313713981215159872334391418528583862197754384879625527621539589413418262004701809288604046312183274004212800349591431374006180051351725306982721607933792770320308979813953078967571824277363133324301228890559173203169633781390116795128085413873675764807925741953367387294537773717818016194280543044151126581716553337304786913812542670052683886349780075196915246584810789506892138659541230747223168449243046770755161779342035239831683232552417891104435576846029626098756887599217751145198631358624239427557826902220167647877546219126320525533586094648324535028624746286172009895697486949643050627864137382921870286761795417572415479352734964418985061373752458716852147412079301418017890976828316799319312215193493815114034369639447987031565701353041075869790722704441960741538530392526678227644679927659297876211847769040737110620129709718911110974582774701668564888859722104428720933224847420026626202676479069521432541317817573408749017533182764137812855781936991248655745730185963939438295659383348595063772869461479239562322858962861186505044291014824419973407151985165148616597997755357549992630156815613930803007229322707033316504825149544729146493122729225551720179126275227481945062182372320023128204525143659114306519690997760127837718245032370185064228330489784549121993588011866578388077469029435687006169277987978043874756103457595016277918048720812255000777356956814459402492845836791302384921739555750030035832325607795360349128718381725394455409199970485621091519548088690283009107705802644852707963384150984222288824340965223887116123518370107271233461354590761010174733725269125215778963368953453860918302232238912151636300375125626983463779211598935699648291969105830887580694377138972067654812907263746594683332112091637539618084346147331441515566526264531438876876604332486370909708910489611426852000423516290797704416808051913909594553790843127484668088672821582740238489919430095989338737630516069465657749704482639703698467490019744491275350269930827330168157549151259925072432086269425431311813877998109467174416576281194448469579435593514901766892994783795799428176960737972617170702728249896576274697444578510791856997175599537820290319870988323703734071046357756545548564371589760151167425112334822972168875112920926778944497645794310223679580974845177709554354702390102847926071779846568963474847339478110560959771701345535355988383031876842737659996079644729579276684305784688411569136652267009393709225752856695846104117942282195059943058970033741954004825194800144026384359454757327518573923928371001151382223898124830457241524914991520473237224268525493663350457292825123118049325128587531939576710021470498964106861479705141950870725024906228159430297538206923633108122514685112714077295436246750471810251759243311811068431203205082862788462286824708039366484515759752956412470188500401994303408109525834406451917841438594013040112718728537838556568074648833756837909202601583111826565182163754666730127449246379701712114046576651934319536841414250141512343630365109142173769708188968648053350576613291718973591574969097364535716919164334197616824606931653862492349248469627641366571249609343428425236130489743264894696887105571909377204249402637743028547044638287660025329923781615621593316011490101922981753983909201965348230805387395281872978701439849518013686325944694576931361269058585500513720630291963882019604740654842788985916344941877436276867621922816825051805920514367053335216301577348073956149681074414605064725811487798446227483681399131238465316032730774615680350392126623684594270977283210834149129244007001528153747048734943431082964880875380156947021958319133733107394749390719887717108960918303082098590145648614424903339236148992708592248736631682409014649575280906061252587413095087150837710626503566443110428820803995851658675027394403208445966538953686797089399118337528865878804437849337824930516276461177678963856647899794015390066298717262275403611812625620903197908720583573140340160642036850925087261791721273078770362781874773794464578452690920916736601265633463792055816288042007083341675000441507433016068069774770618569673601188293448386624056686678496225378802936602941362704047881551896938073873198718706615311362339091157187134189024649754676169851419869512551984533669819391556935466990146374408758555527488585414707295542632828231190192131054513937195184978813949014564001511575312883347634515669330113171857088533942526682353415962255415890969044530254767994750087350431167936867117326192124349531120348305204608210082945330707727115856749414627791591965988931108049335750426849321041496432229437954993081927140025609548370506199107666645290107312777849374659332593621287005758054149079956906927538093956665875295149909796549540882652590289540094706594338203326262835580473616951657105763701271434406024011499370665626517433192073321577470643300916818344463234493900458450645841506075092493891060755028210655776296251055481611817798607976599091601943703510999725574486876505793161881236652254591682028006644051615383330461016764435835849101547575750966446003611966364736490531362439011146717184732655375196277464830458159952299887037803723822750143343743640100412463276802040125004789348485916348604488339194460238876474618168647722740323345158406538320695108755653865988613332552093635093264864420073112563014313290351265908167602207550701412293901680241518261150580385297943505626122455426447475566939919269211712526569761329579257227086919577375737150571285700887495433715498634488147516692309909180723724144341203250822871054290634181821920928087550140191517535466679752024339288056039423169557027176068167275998756691309726400633999368289224872388931249550027669973780152272562055795476903546530899661663089032541463151298168678262611999926922919023153379018522672009424300449323605917907148387748726036077590434422943496661492733081319346328600630934511160112486410138802990081437351399706630863320364602983537236947034426910656656162604088612326856629119355846545132633732970409938449421883210985124148336802368636240910289320274174885560215940257248716649516585090744448097404168866718469769736332241713800961363482865170765648489619760061189207043671979978179363655929088665015679564488318356681062724864217310447087228334873780632303010259726390453709925101465722913164869954913877776332834796652107881374707767975518815231035426500543744280332448095337064062301882901359459590429068958247174749268642564019118726684187621942769013932881408095791066438107269117177115358141088383081700233152968401027401797357472459906460612876932896746504766596318431880974072559748825817405049156307770651648366939482507239076542322816555898712488320680587625114784982803419019254398898228889158757742742056885172193119613605593822117845229091785140680342426076878343743749536568215181982629895496975975830504489832373700426337789927585152989147178443768269098481081543950695416485737159635189606740268738005990425250367071283167191835005312755368149423485686896939752259597962700474173914355017424732074913838784323616595178480906639180139871294067639157949674973521156885665270351019339491105804846200623384106136716413369772573004942105647466555305363234386898939151423152467597141422452397203513230547487250881705178780798844433196261754990482760499401156700716424594313464648156409866623434525719625046237515939004432713169076796660856355562400224960347504015324924944334640354239093882870363945093366520069451396572574463185910523012784845874691480021275754564749310699009242197944625868733202141059569139423158631594683640281259640163537653384449949642022094473979444566487365955561478552597704974033955706651236259622243525392723789911247791166189743463916900252992308923989704037055543378786886277414135750259870586426235829646397491941104230727168173155739514899593440596176353246678105937375838947050662806361225509161878473422055859961666696927038340558044333896163449577401661651681637882706055135016866277493104750088991137887876882261598688102048561323255277303938834469801297577042485663643951862057536775817807103590735684668812149331755677676956245888430793763205601593278968011220204466763394166430966773122780655514286053328800946935815317376211591526191651721691641912886858977677769397067411039005417561857802108349702112383213021503817299834752945653812208035666073073148787250910742512302220474541326627027389928308832025668196219068378321954170041546862228328839688401684217116608961331963042457980541087506687936950899565882483581009745843044280474823046798675796021513175187896246843225557920850977781458377317107659456376263905140074871605841653031248013198178042014153922090261681535315672357400544769929999939099093695726584743686052040928246786251113951450115983149984319420094811155814900832275634638136830163494979933394255707183320046601402965714973577094768653949608298375707701060268246499476587922813365188769400039708103969016376824917353737885321750870321579938059968772412268579430824259230339283163698647884435847386863833550778990345098014352127101339786988066449877442712444905744439784171703118068500499239934088269665697469279252752725171710493184946300894540190118493034407656751699085535109620975863830734918110877580663869568463269961816737119550088922504461078534670599658637345906613436043295702963261730366318770522744827931138565569011807864342248480033254038646030652335991164985441505151257258266037026442604491721797304646860465240700484318620988121081168654171734626772880125993978338720420105899821437319089193193134322804210703147305705723768128052395490371789211581212436499671303028250258040610146982778422358155878929696374892499797682940480769264117997863169254522695974522596587283068971688048355968609722172866511995292294467386771305649909820094231768075547275352318135431743636996371104603527658700549630660702879762359279640051129072484688684220414542815258495072066165171410331372042666731552351638056702179657961675834141222334995012318547150752020247912725404513665017718316519723955500533761524732256527782943995968279982607327964890663059479551154817271646971399621138562414668289962930714192113785991637711258293584454778632397218083575572138608163285060961629334943883658480776001488431744183524527571983958081583567729235040174201483913232021112052439033834635262321980778357467359801530603641344573891778236372258920184422543973863425090123423083340383520038367832770131176186321175758954378679119583247333512890367937476727001260410560200863397786131683405547009831505277485105421525921929060643391340397571151105367067149628684821795522215116212484540047489525331346302589088241689850445968576547603329237153847541379126965179946763981111016526279860858605642676626197814899923871880649365668776698416045138699703023605121089007248123100427725900855499326500009239052004868721525012040238850668268199796778786407553630508459206392385256364395524506213271619038217972358940069449152658322701617094082105461209367075285639286910912086232774656811765007084750838670078617309763724866738003140518546158874668227850179421524289951104287967291853145499448023551244676002273134054085991833589876923673780026988928101589238262815481467512969569798014136079930995045327074520407432563038054164051360869084357231901665295534993510727379517459108495197909692803253887686090148364904594169238726388623443202259547127331107494212866483127541724577999592011388769552763082584336339767371260207339271191030252354536473434455643423823154649060265280991830721847625296212324351785191671277101961078215839958536421415847613246451744501032949161470524531212210759761633970029037049412918151187042953790287116679552137586148311157270847449289808392618133153765315880609793681690321644786783250371622831669848823364758819504853874959224525302023293475521811898897722663310913472899534844052749460118060908478836412970423902974021703858761052629334491814381172757076264671948478698372116969065130564737873903230888096463904816657172344037357334490235046397820200325375531350415555896701866179641363722637725910101599553123729405035681676584027528799814366978561831704000202037054581317609340244937448306370353840118545080173676735779253524642277817445425794920280403560338141604096991176212722144410743297958978889138673017162188995382978136419955195313774649490870695900722104313977465319546124055104188368658267954139823485132299414126810863285926386744513010439830100415736800506677273451219073498988334228396134924047133770482245625148915225647775271698129447242116437630009006598796018709194225667911022519096448982798652525904628716622804364730035938546487353733073361630139227014304265799219341655687100701710324349019170980402808941831957765483360237083247221621809085115375308608168179377357266353068476698343239277152946429558306729217191861263986649776985141155904650515025834884121540901267121403341033095763878216712389564550647987102360338523312650586193350934134016079117980672903433576622492790688953055148348265330253862093168904658985510076001969493995983196069855858010593104678062884748637279204268622895842959534616079529527162261328540357263903934148328915653323058703991614325086755405251960018489647999942292252923548193346553651275915145001210989518672843279279315314607381167531999358892150656515029658144939967082101459434234918557007254753410818431946725316187259966491554070492952876233661583624513162127020723718962535884843216213490933477882530771999037306092226760905825435591356667630710923562356754180851243482797570628586479630741934649827511256610495294565912604430583491329003768491389884942010579524246331682577217212201304544634908464222210539698291015302730140418607573445297751927123869122226261021096998252113275009013392969472793841124212276945773487574806296242217546967963439059180396456101627184372321871547678793681982179362062799648765517796776520892026909171986157314243695864965609364427094977088881540459120828844894141600959241031084722999778066705911962104090439974586331026968743856472456174847569576511143233031255421048116667895289105713484344924307914972988842501142287167686098443233360831765927154881754349977129981160695072997512900990297641305443420957287012522481383561139762343239787393886884868191584198980520075777353109957561993980576304648969596896495206368089240071088647573252008306216186696570779728745351299923442278357621245634025064218316384417041953052765979038760704868521255849730788212632313665434083719158880027423572606249856854168203942470322729126911068977593956974343006263713551553564375633747068549425675801338996760017624727641277928916873606217889060853472814771715000110676713098681831479859487344251836303061405370337674742904568345481545581654756865122446876391437133330282054263986317709607316835223272176767056586128613634908168284405151291881015339545810925064901405616380253368211397410766725719446104405575279879618724759598450789898230085693870061585799021713532180246917345737314494423951676280683490076779892317938098917363409383927141912754154319294566687481398756406143181154678688691735798310379395384796063794004539526678081353964367578076105098355109171807373899092652254864519887591497724506781251491365976712798999027097411325587625924141836308074422941015124950292620135466314717405730046871480556156116048899446364720390921895093024799387547960019622816540908172312251153537215523900036189981052332416629977375908987696785191861855387642844702812169432967343106644204676484124263652521636525254389966726482423239752104466567328363298317510001204590929961325469708301427236670133442848775435750541683797058224463741323053084234286945917924786821565996465244017264553388560215988449827926782259591920761977811133770427330828882088112603199733601727074620503611127252503014445765394930987519844100759000087953632880374353520050472859490431709435289782687783137058968813119433785320308841749622488914477335849037703592370880263377112378355880633909382122866793055166382690406925832994710940719527218513744235000190835323466445865965019194366195877003801552116621166246937817482121167280547291463205851275042503943487147765392621596083519374774464211724077309633375989955725128026629142725161723468748972128595563656257260948160941081510716467437098154942626154934931986259199316405881212065422559749052237065227379150085072118299438339586843524461981327644149210107053090812809254018642878735335310219354170093674237065553325446488952296264453521794017560723362064757819474199237132339056430578133629513777889702015181320470706881965410307586012442727571839342458311450552294706775539100947949328924547732328619946347966469022994324653193687340110386130144667680020862252870948023066487375752283583633994813025122348964232835296007456406898874861013886772834584602353379056560726878183018261977718766918108616505607735137681259882214220790164745611641073032528923978876146529386570461731733196438738153970300114685444516438871472539024237323369128248201487670713969671661573221062456419318083324706629076619693277332971633929097827022945336874811768673681356349638465211012041217403064587951750692113437296958914633515643756399231220041126723852338059320179876250738464533726929833674364066917834132095865903441903974881778047347164310666053488352359522528582433244698981003784305320344221358235504967590429310039873423996821207793831778505741372902004331829402147754070041644739362638216447344216323697229272996199296411202760255705194203074268679636934806775117409976284975077905409382954153242303066186903900527148858171910339449393891374448547458012145681503677716728970533377996355998988399870380525183647142230248923020938998863121731655929374348936508335670499097736183695668110572870925774102238468610076436635195931814298084662073542424958787234994971068414849897585635681967276890375248442732127936079626239319184704962736861904297467003876425337259213581513094597363348243235703383340218380693418556023622062141419130060428821853153121730988281841488698978166481390072518362508534808918368642501830352339128052064115768280477945538848685290393158536093924222936841290278871046393246736614175608460322223426114235336850833945621975583887018222114685634871485421375094784854243795067363399168412865456157205555817103991763486260702394992796969468039818090834084624665565091932179725231541866109824223793998625378378621840289874315514676496030657817347470182035013057753317595883436742961304119259078385981048071743562532597602536474869248536506973177270409034814398731368901958605181366487353609890014081848427689772681098330201749172105634296369591961523430046397480312464384863684586497568807109891269532941956478630784351662764132356705617776385364114095792651401202942886142949621166338137933606782342876719660060988043894517052172064733002590746771561520421950303630383099671009416000964475150435487788462606048174400854114120581351644900083576326636100082834978452973109942049658487162826603279729033554877577467672662387943310271224312946797312091155992271692948159987140712612001529043362281296682081419374288934241315643518181359935319957740903336244152384194016836623946315876142963664931202800531234651763614348517303998058658221342291812388692192027264568093239112460910768771586932905875707018111894635293903636040565764441864788344258730599829611091535176347556884118247397870022651736895127869601155480864138753934514909155207312216650064170922537128531205859113752955902084925105072883634970635565447706989191185394579639416664989386178533198225989443209793079791178330393012905654420544239137136394125601172415822327596969554552374010037987657248245716401619332905955141838970049660790666138435374724105917450957063384281859008655693227792138438489564154800784624364396334047951739729737563147546077122443873542143752967437285509847848985434407929971978617083904527743132121014183950611481090590010266406752533420680212530011339833024555758762023562680871776466931173993605100934173454184305187113009638241104590627192272005018765098356294099261835896919201831503369513590132316465258597593277870773327045771848485192237666295408248804604088988247414375906232956504417155585934618565454148005643658939121008432706192304941160187718994786068368039161949155000621933426944385052531583425179313383949925840256573609521525551859776247454069318854066914380861679898873238073192484052655840880812930014181819849660759002179254027681505970402778373334197972554095278628358218509861647025043988517545544571353595724762469049112119270823254975253418254057257278871947284396740901438741467122790024458858150378695551702386433752065202237131740766193763577005172625721358825139017530904883615972108897165460180463678415266331455420858127390430628728281837725928038898100122934863408806068929666346703427116492389090754155645639630303563396719630696033134939438919887868933389453969220570126541953521805207833715167743109459458907969999875215098297948751557412280790187307632492600201330580810417182414600298616412511974933072077275839889641357874465767787125001017976234101332375079134641047850438745819037631180550960563860817437298942324383020959828255310701037002016613533234472054602248655269944994840506742601598330641674863452524752736631299240749683425696428984537523819011106989180292434420009218503277251473255277344661029587138112451235928112686444200903684079212644544596280272532835592989207857750841035138745917732421304913834190892636112491175050875899702422249117371862500919302635180971469939167826309982477184130703384061398608728876086938960942223073632928667352355250559049132377217652243358496607127316031876974495278301862908872056342991735988795720718437719466096481162316672784041727988044003327468816306998264563315065400470266385059706310398692982846650122711620304706656618548195504484057336001933074564002292517089337553321916523961785090011187970969437866656877127465400634433068803113573677430368307065479726050363835783495109401781283422342514405886816568970734877952328136874821799956612290507778028355765199754268292008871463399576345314775919827763571516300961248690671514991355629385307285432793560443685205471870492405385530581850182998734086379775965166329866184862503325896585978011002793514212382286234161400074468159859391470149306524054294654216617872510649448096443066063832921695412374818782290105535355905170827802963414494160731498719437295733426823759966651563578519440708308454734156343539513750293199977933928375512475856220836445460803596535978298273227964717535146644025452063207451892299733199682417840717985872104245411305101735790344590064198889504720320785651236389123453668537149887403103930576679018798708183942835218311837433815738367454596350913717853516400487991036503483633227176236422752573237109728659452983904859772660264400140615745671751292322196879996354643770307916215520763360242843873497468341432588029695184612616046721372553258298025006405875211062382472027177003365438558964214319650646447977794500850074612693387563612874779214384731230065620121180154141735249263851352288605248855532038366546144268342906968960188132953445211522797274006121548200357824892660220776014889762291998209093400095880785162034101629019947124714870495489287838555641147428500404414518945712256527570114021542665837067088195964216749609080746655430242164819958796127365566233835998735431852098031512222602959158540081478988798913236833412992414823414141106581553190712536341200256002028236583945601920476521526856301236407276145401509132507200323449027028031226174110249559299312376004044514049487711941214994706248553617388093712690705370239670896473247041302409826166461521414447734110553840286171790918835856291309178709197187353946679707825060703244407686942071113120496697742600775938424464819530202457277766082087118865685637995567225122040402660080791982427147172468715208594665082757228059950584695625406256713922104183119197486002162551463700237057861071492066216704845073918728873340615199611706515254897021361761760116318254382313158644612763499942772015355909436912443863676925590735322797113513811749334327095994969018736474531641217071954947489858278282172457129085717647842544660264294388569533009908368612149755730844942311742379440114910459138817425115143797796806561491429728401114531116161917105317785747209500321907068689495312510311691461862722692911537553422514005112297721362610213431054916753633563470408527150301467001718782650844360089997984776695007646373785029340292178934020179273141462094537828611214395907616078406306096403855838393183861757450545793107784177060160397554110126453830940878027935532837641007074017816684470213639014895957216734497102444830214877950943649811717809467660911941731578841019807363568948553899342283763112112812657454667749544147055894193537781150746727978800934725040895933910360250603641249129373465864856456063679618354616135934341650449874515870434325039796928308022865902548479777766763541594831741154623144867336027525178874892383216162098542221606197765726265303980243513350847059243138753579542244436233583094570424664802145313974691989030018223799753041893994852730617208336430322760744591616883922960066919195821414330235621968991570329422404560135898598802021122996458162065043727731700954672986310524282067571401605944224283293718128016351769342881328701780651011842532883723447772359968455771806346257143976782699981776020478419987100744078877886841351179456985050447084596834702696669445049402995796715888404677188263761311876518151129653270874273632732939464046894902127904615795784874481781341164422463551827739431389556893798836307201279821290828595895621112767020772743369236910713090284185713638069781396872408352029067581239506551813924461187572250366152828591708314333689688904292385510255439363885307881677326706939401099237142563864165040219690251508027193510683645593739340003861620251468484024403480890279130906337977330685879407448001519489612024733474446096493227168819592373472985658960816628877542337187846558136590650051632997964726649716054994771784379967170892480321174819536694437071437760686375593828115896255391360118255677170289556013517958973502548835820955930073172585627215892345347912894051163087008402468968604607704028433068067154401912895961415440325757187553271619635171570051922169359458997524169973204139006046752540885361133951951477101671781425114465202497205078864338137309046300203799914297945769366667722294686530574120074726728379217496508114480578685445577605723768254862586050954121198865169108783190090186277628996946941815720189600949649295266099423035166551479247376029386444431432686045505571691184666339509228238961166422556457856416520832169565034772512768536283777450736091811384702575042370218524985156286226809611333609497097300513354908347807329227659507800092948373739687313451368595067256827380333572245085565453389424314660889243290227773960513126607023773705357335698924310416413689731340103545914721594501167528377863118244053822814827190867515301023880683531790338379363352000711531106443649916946423826434994433952437973904875213125361995376672083103090037711988561284464414812446059916566570905403755805031025404239639323895128212884391238606800709650619991610284506418828166136713449147303572067648126452873333518912703590973093552258341273921863813583359759885427884724863208323341314721224926445853162541614787988253902672234634087353420141059402747770837396596658502493198615658865074472569879879823294885265343964813335814921473107065382260343753965050892239315453155370082567206037688514648050063300044916498677214895894562911405429654357380488914184183888899792909491508096157558463353970853658932658137108045432402150725239738421641729228089121617385925362420741224400913260960406797057765316632002143034450317389253592038503526834108231211995834425008542566629370727961973478496946908872586101554923225146901128927405254260761822456770665571766233065231837158102619166794512092223494453427628672984908823669862315821666082371288993373460054954569235319778351347591095073647348931055790803868555683061489055796173419738863366470581916867903206619895603997388608253761247143558786012914889584409081313298715030909566397776692892372290762715926668381730030574741797488643796747937614519830311219195375421512741683073922723852299057435691799699017952076838430893255389871669508989109400939221774147757015031334029873454384486023572938690861700671627143983997811365929815806240216850958585785925505906562382627334569611567304717560870567464405498438947859071789331857439693488404407594220134821065824021970634817740426104563111290122894537149304934954191795459948105690120898527213250653839315116461149298983895559975494848773140580910570547189077504724315482929126825728318479953582793245056847019732874714462625372334513458847606630998014689653269705194596235388283182305006552815046059140409384627925183186424523415398238709095517471025401169548882020331405465089014799252149166829071220985445978998590597655462582626793584467802761309528018304329477471568466208647927105806810486209125593682765301580117426752311450047617575759233647246895749288274534523327932083861322126942132537203454790289791653679325372103780747152295860264146160283154641901705091565043290955285627210809187614382281823759446005828946139636357190315707719990204930000703271000397045600952470993689688595083225989776319802048327278640106639430857952608627331199786524614035205011141542074042885402298998727965547828707780920928442335975479868455713144633428003481000690178271771272923260955032163794788182713565256472506737852234930764254875528104553891448197045495624643383852381081364737638679469427455109152678073152442104454980984277546718055870019346191791044769162498480865425469150744526615673600319334381738594965817015252879842320473240913695532107810387232602866435878646510148391454091582867375017391732602592213623848054426123089846409466220158723202358089367955680569418100529047344318064941453235120374503963687673599373947497966766781890208895483332715371144122263196775989869369569305478822644824966800555519603754350687526963183842374713423269705774244257357717863570546223819856910764060938396318721662160797250348952899527067636853195778028440215894365093535916735207395504377811667129954077033932296032003930728914139968397534362191931666403473575655421410088222671130015615715204363094978978982908962835512971832140932799451176488532854000101141784586319725032209569833758998710104817289845358558285098597611984840670806848354182719988058000233256385138183935492821058655293270733557594151649195849902134861239816515026761770917630066156299134209907270919546811020223485704199547035106284899220520992603515767797490366854896065078508979413391335918454843962435463738292839899960403228969526660886764466267324834454514334196972749433446496922899282081018288846330278486078463780239562930654000281176828532547158107581083388635872647835365146081196893605864152789106678310238968629334409035611643134803202153397996538184472998894857470639712562434029735058581111427541704932544767874288095762668368524711210323066592602999196537117322830062673272572473423685916667625854380488793778421714370776582748134872067608005585581777998473941542533067408752619732543449755655619728384602525628692332596357726406587534840767596865353199197811718257638607538105391107196334676711912416473236148371763674143632120913624347831391619949817162293495323447968725472886607714662196196323637119984099402504400823283512560489686152781144145516178292719697972840373293378753599581032948276969586682654428229128376200412920988347565990429374761066716834127967013405511855387920063672693316449070972795008428266063765597963997809722128619569870050337458588132113717803003326527548233661765030747791788438016877057936632659637024726740325252160750983201737262619131577336625965812806852653092449309406921614497432120097248300079865257846715497395819517012478891431492966328400114334846114307461231378878307574984347259298743157586840714589704033783392845589696425229994013429931295041398423975444032885385330898161648691278094604052857974148202827137479075825569857979813444974384729730333694066397650918546713965144987759313798810338652494866413313387161773524358544594113098426092703801377323511383094043650954358698003760111011174138375775774672148636816721555696817848644044484819047642415790267432861139117575501783412799968500446917677199383886368064582054044786755973926197390600662653048186888203039725920058724469730617901417870306814861191327656516034390127822120238327607179764464235071044621789605758725363535577447724943684316368146174994550366308255499822742082540340275155518052759805013388339276696218401152474962727817338141000506551273197103832648830956928775131282226911898951887398669470493195696026417971564345328400594656250794028497384402341613167890311316747771206080762164197489821965981540652455347598952959030254037390699556452232575370344513036794132559427451128801944882733131726822281966227001436398163815960440992233662906631086191981190762655103369354326645970635777612601142528550973771799437961007688964320836679744121906087247909375963925321724457872687455862385885146038840591006589088625647940930891234730001624341233297562176641388280243740741205272244390795750006138443934381959032366773409594528240012227046975266019285546539083675755625365388963395216837361695205517877833836439444381389609729176661687249068476409416103673851516909999300717265808096379314452259157310454877343746794957374992759176152866075441619110996825930374577083572587327211081970723107451884041305041598956544460398089816992661670844267573959611693895818779657482123493210097838324548483446238239170910695973001495861346913119906052807296890038415057241001129958500138554443470381595700623746642179772382392877438454778679654562433913491661185524400489717940636016068713973568321433833414689595518981554746238105877161965802914598452218479849819676112173613911069264373861517026320121986015129366007885130768963329711586085390762518517707292857993629935449934227940686532967333773755250466805121105404571919855634995540379437696634231907733470786754322955252556324558192376254173209064364753295721234529587396659305288255813026936078479072121499284315827620324920392757610642300207088413889718498742286021862986717409261884030036342198909096996373609526424271556376986837919257657361150339914704412636856328034187066590694392125179222192614440450812407768227957300051355264078314830208692658928634379481121926997320269869460242184070393528962530961238083167970739627176587644910687046142947793592284217698728473160964898770598206683283895523759626074576795370614528566687092382623568039544170864573304103524646213703178851917798695533177035164198010087416621829600156796804845487734522862323613943439568407048287978768313285101827895676005031697477134954505824863031925318203336337985366767835433840092594378080668080267484450908151173147533020420561318318771136937143953085614906385060208569736176406750022471041926595344028735555288226785836644220135970395331868468879073949384994833523589730479716032607081942065049485920049234433703446688957028205646313359089430710680395195546248857228842421457001803336846427916791051854088103103811696744509128528233670761009353374707146661471380076771574743925352835888002016608879770241314701084783340318710084560517729877536576929508760743476280352503196833727523784577453955977561454009941427550710424759059456647672671125654743639841878385834510305302773038278063800687336547072323776779103059567873905493146310658955058722273556292379276282960003894225035019757431983754977139710033386977577808330972917332866187388723914545079678816225613883966029862386045068914879688678208374277027612192146202233968073503324029525633869867648985854307259038109051690805971356836556984546461482494906638693887508851942081828445333035060302750932268927947901788135243395512649845147108020437000288974526333614339761632241234706573976433858870335947396726180028647365495068954268070491812654241420225057185448626527997022949768486367896944575069078875904315047539341989735561858369566025821321098748214828718851469096214736039672804165505889904726296191249549065136374803461493903521067300723545978756947051800467941236279309738938182863832038683620190895568013327493118786371548100239263434798758197951389970184592819746156336079927501221871940355131724742014818545670381711095853869781294668259417981204854593745040861581066531956044105170280955927890685764240982591624431993852207214066914215994936852407371197458307425829017253107022811211019896625303751123829690184281620771329791505859837344993388277125553780409960352144099231930698129484345145584644868652719470780298385217047783844400736357425023205390560389163496325762096108408243831295076559885335018176675238899435442817470592016905553759683578087089052606183518194310765418238616483385434142389022286949822825120385764736724952148653816716273975584078212018785217067773717855462711387244478191599467558691891048324492598831324957242377146095560153912562224561442624594834773113332214327812107731815192253231930855583141132614383619073457190237187595330110761239460492642485082132172444884967788158302501306004401401608964383828774579903989809075797522952872220061485240959583842888075291429228653291610075207705170573026970775973162835818443745695408824256825120088344727205511450478416353834589016410965453793503993972274193546339347529835934669278118681012035877950022436436203980362786400791259349198588137129999846694201620595596067947789806977579621881898103551725998412437293253405526434053982270958996672421227429428702963503394099268098249564478963027115551470534865058064265128517398267554545615127423817321010817572041788453208573727346068454492241470371221533969830126522169056248668226579771341109765960006852428826273622648120759476831695603719223865551745646829778522939544545377959478869570814868319794090939081047698147984700610981437560898295234111464148120798335004565686214277840609887074819545704096492584957742744017197633399858006787054131564562367743829443637187004919532244332061444568242486032206622690158223569755474295286517797734617846773135377762051158121185862931688154617450376477541346088881300818892201621212036310150638753711458785997488977314871708399187290154799493884839732459641597374617480475008935377082349994144980685582936633772306631758858708982317972618972786862361452512030161278558143469540403525597427591538593740200436115551932468947112503850035033075741174329273849021779471896080312035622361520727023591798182965462375936328423441827806237615997681676814836232284774111850271874505529444081163910491119126706249237382403562648449860085018418962258205218604698979872700776478532169513196247799534268622182555871764804405834351612555346937234303076456687046252389015894259764946176365500418075771699166314632728198515893590318814502110276957736731239086438217995314553263654940001615985162608896133323185510990530905035628199659830172662755210605131118356591531844883071302143822963005151203386693979174477495637259394274951168598686195411061440151906520204775451637957235983468709594259345528221560140212733575224892626972303910573530329886476832369901436484616514222101134479635836546818272166313494468957942136193270718636890923624776449375823673889364782406543655249579574866838652665614058679397706403686053144179817813444253273886132841269161581006080025711676125485603893890002669589465778134811888466312253338697972251387155676218765378218789764421780384383906099570723127258722619237626504392318385981557718791768082241868441163031170953846732250762824192136929708155520132944441625467094165618570044154856521278254000935307403200090120308354140250139443387414235567545703918995271719121839331380715574738219215345533317680312921453508646432044352466348222112427373111175273994856057296366987875832826758900064744925036314679238046246633383229711054741243645674881354577587653993062214038541869031658004892608102620908649483239338041266153617628429417381138707408265411820344422937072675246356122864722529316097540472530734517754048435252575778201000896468044824858045706471117420637362742189348550840354210707856231727045455045172925376175569459026612412838085236249509278014107737098245617555666570202993426379138112088101427644428015322699261576844377704556147059558639811620913646386087761636405354948475873266781443934078504768421792221969723579269258814445032382119354005660819355804744279703246921310626516207378950703801044817495959078824278175797327377155729298053411772702241543507272175934746339816159001989960840890092221441573135664872293252245256200967487261013265321306040065933066827760742545361784060295705216549929672101299708138730622303237746595275904307725661024671399388028808500535582663113833267434044435205045705175566091430799968855486384958684301219614667009356696420221390700600032330182261753438999398928500443670920326132398762460429530976925659592028826555167999773501195494732075493091353707499966372654338171241635220604709531724720620290831459103126652285943580968926394628074115583986247723756437913261655424916674054313534465799523570803109786376590145392347726007041946549146083295186582084781769474958333751373393536396954871009820926665698890007645320258509800198002566468846955323218560279410013010126709006898128256205530636626605018900823658542443449166918294912458086418080589614780846233348397858360012870370397731633827144600219096117538482324737013526863426409673054826132716780689695684927753447048196824209584793517071059421856453293720350116726360802692462951138840502997743739904898695445893475586522064731755042112386442016343672550703981023286649075272472622206663258144128787797834402669201827459341568425930624196991582080761246558033322564627043560308849615740824659995738774822149563044898012438238313336719677208794051062451890643758925421463220968298099289986977214938666504230457423481758403298475179579469977765703036428461359492913098904633144376008931706937052089348047167620106057368678084164947945414745557749843604281157729635498445769508612470976396746142991182630093928641876801745192664976994014374439276605666995680819478808804943329030877000339605689285611296553795239385820310699740508907677343851982689463536855106956744313967609478344130945162390836955349720129729980293990523183572311487123525642170250686960845841875435707938296028373679366204812921782412198601679300382072188190008842552745072210229091042119148569897715810283096961111255699052530186841804001383762685279501222084875327010480830100610011839462919197766926586254646048688173018764249571251974930015092600474678912258621101563023753252273020935831837391291528114316524213361677633606530757120908106819333660343771849864339750044830131156784599199308590019374021996009965423612885403874785899886419925809801677624614179430544923209969672505344021640599813636100687119931584134727260793752929231236943017819011355984763414610721724115660626532519275690666867391009010333756687318644701360022069476729081766566834989416187481420019059295466885578755529822246053261449982680922824615619403623147181713292086793974184435924256581994181824163589683138498832786379888511966310048573387755248500320972112716369453459627898349930206853640398174927096825472363546026964658621958388246405622115807614609749169782430885243309251980117595298048417471693482815577132629875961913144083238864208252925570269118273239670784254055971172824768247398586185787945775227486162003395396186017647781636906913543900595393774512547686954641027231265006202170300365524904299173367787644652944255012937578692985347164396026903581907798440833742961735697694334661920036372231043585011746079256956132718029313260666047638673014495515468020678912568347742844257949193703744023973468515847440098583832523341766778305329078815251589000556440488169524379267062277808767545395488092103497382864291574930103940621989794034610121055795839517303434131178770901183509019524141424306480020703437840882780288494715974881336952393843277675530875626761098530166920378035938539894589124273667226758063933294046748288802275429850655080795628975498778489834099056549830516882395906413829435556008702524985206855478892112666729580114724440496758221608033351540701420683262314102255912941299649856686654544238905877978168654911525720085591192731417352649486142435732719170544765090139036964990352637599937644229285533769034146785834179066075915827472869183205300748044265383921761261636545078187599874529017171618955703636009939996672487761600082482489703934289742532590655889645644224863575766865649828525899633476444869426629486020713245659334093706034970462737616142658732566761967791884288896062718655893171930482901005639643189831340846033887138075723702485316322646399127936661567835663723986057241511926224419973626273711106662720415855635044445319048808054404580649945216382334471493930271167931849311243869590332875871754010187123265284168823690361322692952794597491674150843297501240792889395408221508774679346802533177612904317364291615015401247383646561568646022839738189305962722575254107632818586213065964367694415694208143021925033317762437372638091704023850895950629435486549887855414486513300638756703090279147266425959905254713153223794879477912360143560576788681585538852924743061485975311119969904279472972388927663907674448364654985240551997876037389273993051060742759002567063133003227490949623350144181610082994279845287412418916476911550785794446402900882011700482276494884633806679717508105988926450907987857566810228781175538761738177066233636960239762503103653673403818581438439306014968510417656410536765253053646404159819915769875099775432282184621909469963345363782231166659518017174003818085137225573513567749458824589490593177745234236037875491377570895928056543009763833847814659395468029221044963517254541832833231028419750871669961103629299745543606102440967132695001762379743458593326517573959523929906847783269267365636776121689586601059999474098689324639724420896362961897700280073618517338374033991663101505917184702139514057786615023508625104868588643943223578201345272872651941254295297859232725968265406598493458601052923630912632740372347431467079720813173749913572263615017977525902916873975586639202415789039285728741362897520110635329842208125312631180251449123231257272704038187807347758460111769269987744513495201849666961065890462655033144511791372469489166395120318675745826968104307345595583896248913375208347530673998517860969975001525330039046273013148416548932140064231956616501874922450101729806701937706255781031908678484843659698055332642432423745994243772129510580781902627912316012977534759686509043311588229036802667892190423722368183221809370248318125212566254628545829199922621617583930856663430299644485623677066611693173626618382684226883793367477773554584273465160737024530702849944856684595233894431431023896551473495550488773820942027034426724835361439435521544541415871729091253514045376462570890440262292714654817386242442508119553743164095425165901581012426948721498482636953212314585430188790397526180803593070312900411408433997985080346037725298771782023804626409781237049036101779472039489135402985604318565152467919802122361313866722163157412130327952716946544503119831944619328051358690249977995155240446320973718011875205162052229351306553937829937438814836897686561187517133413394889826448160827346922587756922085763926192118574017961477499411003512796947657277257582617688427503955117043669902206231678151444732749453928799866133964645639237601334344011461693940620899720095926386496848480205572435085329799912893701681633408939474183527088133177421609453177672181163783352901250003958034610579137394742790292340407271410613329806905155140118145835823626545947504634253492641603932753673250882637046070045307605000376580946711601261413736225387220420612884528960470858155412313146720843089099918594650649105973089671366015486300873621221708212715833964619342912001421762678055888180975550447182055451876290517897276329651500836928287138104570111959453307614998380551764489446823289400484290591695638063028183153378451844582772730728830783068767689444947430798396235588812784038432432637356774978914636078065558553633743075036764852601482149835575885270434110941399291114560968867987832822339724090218124380475522929155130305493597914092324102455357796249442019870998974591877394608670953220729184463170868317331480863382631873485274076565808216395488117861105017873367773896527967368968497452266489882336223384791613506677881529503377993523376909037274137636744903078652393777425898604797491963695661157094786248278576850017588827626128535294073971761287662446900078481846468788594730443719359755622632862026955157173750958206159960335578140474753345736974429305879870514308645370412452596871162593527547872996424706506797892383732703466048800688365001726974127257750431919566575797020308697466610152734011126488282187891646502121276678379577616365524430671174538245513606193134344702172362230259186669183300710727798552865809595329042591484568053772726826259470836284038203841362941495046115022076532708151756923782324991560469417765317860511198127597173631921208934275403439959675364120997971255272414178054370333943405574298009145636708461169313397334315696825678152242090224845847524027091195791769064810925666387784454128170915662142115051122114765851512841170624891607633531390973756809610839770968364338662930096386704591593600583237802645883966380634398575394050380992685203082262564446528712734412875325705403612804003257799619339752924823791675721398145621176407179099299572212200440487409053289650457464542255294349756668267077036546740088943682238865914598165652525815094501713694899800148907658817993021380081450789144103953831730396133395455599272656555739171589129734599736387134003352289891315357533829114027011347058652155272541993166007064429832505107949580738763840913251882705407458917161186284111014350029581688189726683211749017306115473201878235848028101082780580680437342838837391394001901479101391194482357856302537893262641161854278325060563960976082242444553996671246874557547645161631085257803299747587325687958812389332675863034452732635575882339065353483936850540209020064972795358015529878957327104612417336647370396627374015786983833492605159098416316712922951531936540598031855005075046313420566945675357943460825116992411906632217847631061230334398724715582065069967662376954011831793746248560431298489799138112943227835312029451613925563305565646074067658363936740648664682207768669901519173721321398951984284632746644558535265050405179680205238324429671712858812846758686845110282284233667196615917729798256920942251445909258743581067841291362863372517909090267151220487392146682000657643591877222087995914217414750874760596434319369429013152629628637997739623696818571921982163821836187709430494505863709712064297878888414086455589542366480254367184049770769749192349730030757538452068760502621193563037301379949628517206884900195012003297538563385556766232247623567703522447976979139455442959051848601440144662924660383276511030784085305380337512708702244021560872040807506732358400629113698092726601215420479170527476774108073384448209808442365065297934455027637126548999593169724167983881468512738429953693571952545637632721461992842243342921661632628932343886969935717721110933424965615498409792158902953558065927736462665878465363006261499788899112429749364624062803002013378924613306602648223709387082919132799435536624679281713744093332352284080432805269907839855126352736110644334137855589793543579835713832058805245923098542706120547421157058985637732628919701957927004843579493872622883698924157746004500944845542682879141196584221145565171353544157406426421544645673820106263756048823643317144687380040692309203089683173007121283152596299958903347616209509219669679033543173558951609958193707558753304882753761747715991987160263888214978661547962678496552733803700552679372959562070925816666106991008041431011535515109074770027365062065226332251549144992013183631471848156703075999751623305829374967923064001367857638826458457608380664678591033600012365295720556917291415343630053254297687853292051955804161004048589086561584707726790271961147853306483811356046547396446783332744319894236355407503903209889062798019282420438567738537456207622814409227566370388229124744531314536217074303812074203418222069911206632455281439870855996667570153704332126097522377861226801493509268719464039883351395511062674759562915012981380587234466018183900730289984476615572347268832749794796045484625186016747817499022117579884232228034072811148547929592913195115286724234953647929466225055579107551102273641191888793497683977300298924412469967515079150355720605052832521643650826915992164596559640090016500719886146699782253677674357052815926661525568030969920771824898050426355245642131051026703757936021063823882237069046897988037238169999173037122518177402464969097600663657798879652512464458243610049034772923038968923544135771485283552256061619737336277786926053886000365349481998613746572183808816596321354918580767775424549061375562433565576816829340729559334801136719381410520513116671549294510720661143268783551703683999638573830564146867027770892398833731005155544708585606872987316861748446828662019427302885419308179285814574134805186411344934891413330628316528310192272900419730006316510710721052321976643745822855580312517612114878471349171582835994301781969393506153038029035089787947957010129685028422653960616305512868810759260895863816671344424176327906113213413351552375338864836174603534014439382091239159757574011928894631505308426073856615687034155021362737807112958172956765902588278596717745144465639470952231788711264592489216490264627112270155087061773595828024397982781502358433174592246370017688755318373577487049228227383107613804980631736191028592030845152308317562892774507201954877144535412013610048929832766893459765009801491722994684613719875984383345070171025177396700264485250797794674270700746432741708169947873150217217887579706774090574382911082723197860095771957240511473638851796880490843461071765349929380606849260882113338512556588581218436145008576284714960312395904030807233831801433721343700781392854388513113300857267682678745404590894778251783253751752845056436841276142892837532230284518271159737659157407050668835401899150524885489246526169182707369720894138969805643012050318667145870866987596676098693509494313800113682443199664014389494621487296774831228092431933823398207776166209508172334319346083943591077126559046275649952597941549433552233924687821560672290155960837720109845945464956298777014274000384249176171733105627603137679864349087369825788363151509793630640289978471522622772783191815471706807807784841210648439354467236999214362110227833638468143140372943811281907551412684363440666181376650886449125091777648222438063269531928368164576720953065340399030943224209647156841970772019560922012110463243421707578482889054193504150991552790510641474431745569716339219803375043087213461697454626040077877657085630634912467864839592758759719267560879922036157834844312572127931020267316619254800710193116866446358345818959066323069407997649419870734379907383872355563994805463581563581179545547109887126280102104745280093296095592911194012260644410393538004304939360019995954313923888821011490709964277728614089572140983641445376859326776947886599906800592024900357811019389907503269301547778332312804858920098947676196602820540528444791200029827150118026113551463356459475198447909932631629828044034208769936489015298636183328089497648316811464462077870925258335748736664736086717726476201247798352362059671021328396692236896714968724938130397387144967051411963115898379279609638606162146086019739802061955473463347681103086135963901789674425526528932734982757095718123745433692263420314908481346714074912078851834452041044844114051575899739889219506367985196327753184203240421817750360838996600440253384961655848854643764506304361597196507399351373358456149879241411043370481683404665249517928891608111158355893851271023055380474081381993111287031206833825014405430691944835896015532401412686119844318887013444376063279683541270363361220205198308374513985395979809778495096351312168935823286829836493729695688751401656588908637500738975540296936348111960444693438160013104488590358758651868385311557575247447468852759967130667135172074978297230870471443545697362315199355035757876670616501019933728107372330620501884087736098962464446869981317400073491422945269618341756482501480342768552027404593554174066225081661750732479724480573143104782351881171219140425615647881215549863185625950354188767868303793257193525629332049321493607836422795288995111136712159039419904564558400654056794904504624406318617908646043547237569477338534068735795302714897508286171185076608197009030651629412524687777530200182210947872206620779534205737183022346622757426541517322986433852845899781811891896376405547464853460445545015507444366107817244345436636226750766758515833468098871369182634779590474949047321157436520572376569352148253093163218837447334175941161983946077664030559710178902880834836477726237142778072921943652111407348580010263622590355738911605968468485299142408827253817451594655378983533686244594062459771045567885549202435591351611849836019387768504845262107395961882962870352461798592838241079187948329518897615855259016740375111497888959845619887929040289922962605818850414007226919920917023625318672884840465537754908248392254609448399745265336135447885608832219737096455840454196904029511542335062565475574796715237840789056805015049644864316531198283878501887442226229654871780095874121900476484134408071616471178689653291431704544303115101043194615562491608802815029498874421017536263959865795195609224113637533077133948461553368059656585116504291614195060019061528384443061159618653390749674964532021765774181632106809193270373796030249229099299229925207909727279181655127022777398909397301743529461641883865811596562427264584524100587019148350651701569893288483614075008686906088056842025368181987679096501645053627809240511680929042110609769342815185294843847040391535982885838751837923762084759934163075101837097178884854388780947424907765334787374972678209502158916552512503137947158391539154849239551082762613389333369373817283661903380094896451573840697664656991858630655611155573402262718830921222538409615031338762679989604259497448618981383401854229304239966825608686060129363184900646563537062660714643385911810403652230234848778821373016042228572500201258781778642681501959159604052794371827858108835808246019502171673120730707788087729232039498035618275618465892770507723825179577588171834973289968411795819988937068348348834137723507607668062139516445275278508635161660656211742419333329725658474372877209100582744326288634853861621198620352528357603196394832177838090494185353516828939047214916172489268037546257737523183298627033647028101655881559687170701075236141305259680395201263330702333047563749220675456087457923147192187778824337723017899450924334349284469046414554341542866765842020548086023352386786784609292421625488265071047229971163742565886488934289003936890267364159253522974956098344213509439146753043298951076223967283336224702827503519432289668847986621304431949615706468090070335991059795729980282807867772017549188536707137725673267943125518604208435691978587282149778013910566816823353658164823354092056198528507974021643392714471525277024662723288954603444001962832935842325671716564193791721005154217300405055119532356355949616605281223746315350244737811224444022435697066528382869679777517359619387014204873556050772830020944733837942597983936349020032162467917811191955919262217744172547080422124711846533825579418184640971719734937311181674131207108028005807614242370066314109494133553651326278325530322844412484908493265932379428334870427584391118444548514868108873318462927719330041514822364458513837604267814533739476426513878623748550032357700996299158593257073148275897257431968975043757388835932502720064042075361239929546307235310592648229117221861521655170404465262034498623864202390473237696117370292532229144615653611847379276687688480217152723203232306261842859197237936238227683823749908970828996520975089526542994453210006902606045500828767560581904581463657495627301048378483347985359841825635832882116464770093871201602009366525179541089045202043110399751622863119896644300701779975252415543439116543905741313930833472058875453464482589568047142019145350553039419256112924546741420592055872458598124778237950119763912213221021108366687760663500197424037437473976522998727058113544911335932465239593469959230487956362115574846334075878632378030887256412796251372386413780570997471985540619664908418164482256611884979991297407157957426149431342341925437288463081314968095845688511755417023358225227889939544893848530130307662188193415829527033790213041767483528703373356603845944948936554015867023847590565246619331619929030323940521021635202615882984474903979489975071625488992150344275114617431077018043046246481507251973647999208305562739749605629864365835245050883597785058671549568123630131115568614315973465361475258550846896632049629808780417755280624135577603367541204022709177009575694316888814243193346990546577788900015107318741388785702811366006260068276823639568936930516404529697956525524970783726520033202599612688217346695997132776247651145501318246987929279714872830117828428259440218396611915054837202631256347071691831946931239097696069197820810694129572661106709463423927665290133948364705496915925068118927774050064096242628282320070016624941460662056747009284393786103318357777310533649076641198230420822007689274400917652975335334285827326511758815746945935076741298765340374122423028633610824481691760022970574526546910326805522466367692142408372673539060592606739719587387017358401666863497562330552805558526964890366471652035022280357645429668389325974685008479281269919848694065708634840586498460547399491883744689770419600795948743191834518178008121812409526748195375803103451084989365261011966062141864903707366354717140092683727259876145759241066729452422324444475079478308916103889541896092652075501215843584966385629279075300065406970955677834170073169638593831573800560871008403899404903136599757366704617273397343985419352681373588974453730081857118404062557519667092611826885910638418713270714397832886578029256657026389909935152501621229588477290618196299347820769741920505237005958996306704968151006159759179691758146450498552665659390112150065807952962136433934714551111191558662050618596444486673573728125092864338274595858196001746269773289489147562778555488741030685394908621494553037298162677555119975771591345611920211082600958583115405958898854715604411154997667155605816388702049405561072237125608081120590786440346520572091361614815367953726831966272362800309428533150938726875254993926084307588631303096241709292870664030690370750840062728114449090684823260579720031603048120277154443448696184544906890198870822003723647222101182383422941176453338595754409204661626310111724244258442995379337666994905172957452151507393598317394891513818809284835813668972245331294075111571672820307832962169956577417194101008222019909443554650200658308266705580689754292756294871044709486263503535509350101110915489719034706964248005991881462809019408537003781120794525249877586582029631131565685428399256741440736321991481965618902160888381643132326589559043354550589282394464434850509097641766085035851633506088257178019621510521005705875571374152952873689611797328755334531627770563930232835625623974318192983405654978186655162998519970024651699117428127674838327772757234726015672662681428801486679910276917576421873967402047155530256142105980205539473083649863826039036385051622458832263372432649941600631897908118794526061945084016509720781269469956176361178896890756364121662611939608880781657220829223752293341626464303190819477926458094380942295061056097380841135165480822182348086779018917289216901032361457609641763170044667520341375146358690432295265141165843663957656314234128835585365395589315460923655460453733196713023849844697236747612287914139323940818024998594138828331929997411625026399790124548996315828255321962764910886903111647227583201655292778597717010804299603713572224390277272505782778667657172158273538824089877269669993241593228657480268591379388042957319913855056411864381948989422116315859538195087263975530281045997120667693319417549915511802142586530751116933878030800409546645723410957352598811736080040807691708973360746786444516970090977990116604031500067908191307137322590713255075135510532382089520800096977381231098507120964866548527991208706314919220487510632768116926410662093744483903989242207127640395774855851870046683971083988690651865356027036325257224218511211554919276987958978288475777212599296534940908659012022999305799345271276077185013222149415375167396343332182963461691745267172465310707644377746509816009554583364114704463446455635681406198537635028126097509799255199856627856918877686917834091040260155121035796322849121500910173291676801207167425620605643274243833946354316132365979248230394027288417503918652802782143967987810528653732003309872515024409588871568362739457931160957124775826434494597066836680603866566168864624686290298146998226819029862391017514498969959647819664445198633668275232704340458850173604135605034479013675412076678046709743072836506095785843450064766022531907647827911269570895595488777465786932369033219063153209847221329762405026617089226250051091027099609564692198116728345570576110213194307134264991505646433295570051606194184640237527956936216139699753886051511476159670426776459110874988484662211629428213341155801240159513871324613929106574290709389092813093870266986074067694041070450874583734777165796947073649044893652346543742086703374203311807983330692530911241012758654919051116775393690877467431611288761354261497243255852275146168926812555433340601118355286258030688182299028303863514732613037777580033229815759403183391507041525048941808489249889145400549344166605823418210665674255611693456796568221556369957275638302800058985921377329299817843617197707020200934107431869498682662473636459396608068791959608011789043905961538772391340535012257374613349898501372154144750155900103921988593874372366807808390813869960432396335597822506087868811253034917936811950724418852683449363580420380960602288978468452837816161571520983259314860999743445722242447536070457984560399154027312081640094587059152363071266046559789544140784673087346099586459639866376326092316029400221121002336496078950125411132667874684866428502508154764210409368458639007304795538361952739715661040811683170045564623121760390081729986459526707477215443096052004189723139006673840975759694242306146599037998189432773806468193641314295330487510090425733353952415096605029660050503629612866109580431126366176868472557592587738690128134063435747289849263198760553355372323910004569436850538860806746676899046111259632578402173072507954625514910136133139627940440181078753732045343786132469051112394708210605001119814600068742018917139051153283716798972218448306670894430804821816566634143362664208761912783178311344882140689493211839950643844076102754571285725892338358600848281629215791323464451753857594925842401568664237729710164355900477947239526376929638391766478389063959204468968978784869952385940957772888200419202427142081297097485851483575233044279235687098777799142014635724878132949677005969047788924413595066694365784312780252972803650305162741522376342350358090799671910533638470746485238312161036173098051746187065172816849857923501015599134798483698326418197216267255152886974183784711837347090012384204379650564717173687409157386046524074675134312736426056167744449732974643102502017344119212260910504155148519983786721391208577776699240503177230167598395628434045422461333815372684838395246285254821224350923047204791988213799822721466644846803026430019518783835791895463998185857779433243660047947094742135967890356249992786069650040864792892008007756168584131681052096904582571698733391920193605750503759636614880917622610566403291280909361216207101266123279551278423292217828755894326216671288488581634375234258604886197511216337837559005393949435132373141367116588715773710878440618476028789469120130705215090494516124951281193398577498845544377585053378582627616005362154691380322642098397410918160810724120931644097180573456278515683825159654012113128905251914112769401160114630947630772843267796507502824950371127108146749260606340193118110843829402836782528843686989600909397928991588315791909460929674902331448358246427309061571737380872156698963689483862161022721959522166187763819033899335341322117309974544109569600020742399468601371334036584612732769506730635315356610628230705539309445171201844875645921746074745847505906111080748131996249717217692892814719123950611822095807841042365026058905720578333136197350999098918524294459445396707648632238526324018960865078461847006670250054447347877139214131686676989632321104951933838480632616371735009981384970989911108466236634992452186146344448329071214148726429698651638185401176001907459780641951483849650332971900480931219674870448839926739923284476992341032149769720522744630635977767529157140224613674242813012003105220996720111197767124352824304189443548830487537505648149573587210734279263859905711581105856321343093422657486986188865733555322464581801625170647006218018503700544918539917910223819572298319383475143586271278579984289624174553917989989307316410204066870779784218815843646308504387277843369627844135429563075667685058942593235432773224794997284185567615697029338408542583017614259468876229684779131622967723688254316256602446702657038965260197658104957079791100114632396365354940103788255127799335123298918106662683259840228017932105973018341128121460099196951011774782758625072846774649318943131765459138955626218758028491127371239290617642493975538603673928664375075993901076010492764013554539058688086548956676138017290422983493757937904990886068392694096173226958104295170500974042917895706326339801936443884428578818300373094740871517127175422110210462074154532421964882440574426886745901677308899893074976496648089224997632877808587394659229371779763067863948608218783086973288456421081852190719087869686205039946204997433596274953949640938581224447435747645993198534552871852063884383444939181956244330088579574209438428387090732896964084927698890282541384672646014586416060670354034571682634253397700253023496414411698574351671078425989689472515981382626460769881413058428190973336012967805334685906920016991499636377610419007013733496178201261896782914125821672228571494750467848727117985996282584558284557766666387316523771847052689988958326219430445636822424924239280054833658061336827780186764780016753815034089720989899184519732452883131868008296748546764635483096976871145029386486181783870926965920209384453790645811742978291129991371745432360417108292086117174068164069406957595585110634394126465950279317107887801450938238041529687036721468592893078414085491047790294011414653400885344314100630520578823018480310921615972109461039769463776684464714765170692902366444087251060469304566901397308183918585583886056041879490133748449577828650494470779927778790552293297009121730884893633183191255268262832729555164995267479958710703683616912829402957959921128799272112229458062247248562808738976920828323614912835928476706953113683042274614225651291393142926136489353985416990675044417934795948938937619574829177893585507735049877053241322363225729893955933918955807922769079347532329374537620809414667904636766489253209631943598822569200951105518097882894719051622612281564432062177184926495570560182911285886512915470462543674681285856433854689348016126651507143050203501273932061626376369683777984416643364935022448318764717833115417564105127461696986374576224634849334754573995301570818042679963661679359025138804555114720142797957673986243304067845764998435129925182519870397543917294516858080328365923499854533517817259349950808506490348760054734596846305687613295604725965036097108064990734592422913820818628060039553013713013032885811974161038516387727974232947333549655536923277844983899463304768666985185211837280536065765072608270158072857248178698654739448400810938874357610857313207020853932032223586834536293235446149164000704808947795374454844862670826287814502346510462078505894789214530462298346922569538327979905479002788361119885587662022360430642803654442231592856593094151485388285077710923703596607556702406773999714063701803727890376855156185713498224901778655967652003556701800888777194865421055888503118823579333585035239313331954471545173743435830910371785879459076768669031014885537312522810034867527071378803431555838974878152719999451335355870253529618191671432407594736175273370370086574388838623678600171218328045794775338109740822983358010976806531036818698103371527065301052789154916570241973184237642904002305535264904997162877038398121527234977432917703364821103212838180104560099278257610885734528325916677997204567295365308010401419239938902650738522025498907464073692738645955667759072808551376616175412231514304984981583571511113833112249477335628004617624292698602841423252467480647862698978725271101330222290326603980210059667040307145960745986709192356614832815983740875047398213897973913188686028302099616058055742282429842851628910277096567213852442799108534463898059324628588592512949252446605393421439922487677135905508883406069409821511724422937840343817319622292562730659319386015472670434345057309726816567794244848915060347597830798827696298020456179795433764667383771980020783810959991815762704540429201627341973323935707877325160830386514238493794313108889828227480515513806718152349212241357220856494655759789892261531799164719552101818649348664169993190728685911396889086271144621727263780047483523125219470630218904379023953100089730907997659896037956617411123815388068461059624109378473891353415061361665322736742800595111436125963225199799428726283674086827450109444904464888465220826229132286001261455482867132781531402178291926826194662743517362403332443660227806993638662227457281094806948408409246890558131860530326971988422847057078655768657013721594646059141394086677016885603389393338679378282423271457782312807040972743644912697217491281620141295967891489078119843448444855086231437897544784311362187924693348690997850814223526607144564954492668896681962390080447789873604694732678506951991851958009691766371757416673467589243624568197259209886270127279367484329305715531956457718344853521754344181873298693474712789949633430403451029763882060127718890784061970044432252236398637086376274861300165945382563408169907654357359515560664875728879360694100400630293808160167401119508886002336963629033303217944049683030068412065998775297111044720268811550096279847658843119367321740684698866281071562772929684818339612621416961787930270562230631977829107927771648095318099889631717809294095261975626689602222203236486818838724819603384346802345279840075354400498939938660926119069329527457414820816338903982090195131866524121740336785862363629590176648087497201335441774092989408182815078220057081526570191093012124753044791399767018555123246923393859539690525898582899378465793586538226000980689371251520604378898837841609531289932482658859352036007980939421766909937878135364608717849661848179155383538545401562874463710248616922967844527642583368197812250180295477844840014804086216306238456197163185919189414566240004155939259890347400797555928022528064106704685498614721829528872997121941813903099839861006989088530265242269070096288217258997466375506112245359510882800115655976262905388548158904681042045169870035059855934850744859488939225609775257616672503313435508146717894760712982252901329785817502006169020905544675580722174200501981359977222875930833967061061062541496610385021715295526158159573207020337086535484835206736003285657839101151514447758498330225222399632025922976899223398912218615833217399747681967506769087778583592218943796062132735705787785216085458308209618322499382627993316708218006553252722646408799437099592313554277819758120675961509320329791199767109367611865123464538203553339618579808236579877128055097270608942336748665797022743966225897706780458820049747395269772798354821535878014450987168441391443170989310646744959791394151219976459328628001885324926925016609385242993933480546012189421032517308088302239384600492372955357183312721670632403462749313704462830098064250339213245280690617417349719442245268568218495291846313654736668582811457540414800431727668585987136911328447494744863627599396579121679888663032008417719432090811507544823372363458971823643714533640242500941666956425054824783234689843795161261189790321846678141363508359997258470127609962326249420474378803981910521283790457844259234766399786002008799903141618989287802612726897499593378383398944306269151359065945093709965439239382271246139431512802649414215302583257843702023941706457681513979596554951615057838152164674324404385330686096878804135794184428753227705946249151355010045425155349710812870855450913721972334667991210768637551051048689466836025121131690902902374802909973900852655122425804387262270560785889116519168083619520457575083683427424401142838299876102379450720481203831014432578665283361068410184378402385140732078496624508996899635062593744208511905075550004132536490509413807399740899905721625610326769455828614907803947945024243267783677609072728305667630517320586099574760243107287121556642077705598875078017521117052781764989050284830816327889429164443655416259575480201815881908605554359132245010606505602873848352816427785574022825206578589272894077082004959857698676780617866831740487054316268588810420228449095350814755614689730246033234150760791156500491085983846090663531482399209834662107674521849463605095082131126737900765983720185202268072072953705794452662941222533877230155504087172692220615259404448037323770233732613649246474253403247058133035559784511434480464451760588483291854716978044964964608086147752727870048269472769921101671187474266604273159044882012679122615589985058358496536514609817873200009922801347625338401372154410480331350123836594442884907543828401577799794314119539545474931357994714775892816427245126007260159636330237229689101475976068650368862961036194531017850901491093260005240538605268153143385199977834760972254784940927894085443502947079363214090229071426240882700268546810185596355041326522965927997470281672493197605609701152196807159341581227857701285866929279057700823878341871236017523846476881239486021283576232809234379793561977861456937809217136221585666132516697728664495948353547596217103120181110952374064737305220549398345687866750490283631491862274119372700844519565101442745275509876167952035385754246437686934340104744303140136043573778563577270947201903961071572084880564808999232286645430727794355328947328174195985498635424135904277855302848985865934634957334088070758819149381181437739823065911512009427033548596366721061055084173598796856825463795682977665135967095716596732913221439841068360182323616616734439562767479534187302738357081503589380144479323491427436989897401045209301840244987136140540161961051825886691946697219537722694817088725271350352300005532039764670896260699027679087897289115464739547578020380111796393381619334784290244133842723671292381738859717255197425483993656049932070423747962464446006034221971614332274148714906863696682699489303477230301395789575210708389668784846004612602239084358851605065118246771571848884447463683382123204129093017708528936872262843099461076139193206792755193594498672802714028628983408283403071128404454260066903458721298480260197349588198624960849949909519141186663144651934988360237425503003968306735979922239932256891302071445104281845687700369226215096434493093196015069601332361244147399926223524829232399960350049345611678739723838862143101321778205048617765420762868392081337377762901999255594123122884444224516374162231588260639633993263692948122045608052067821659929923600866403792918151234901100348721535974543861275444020569745425545784634160396270288863897565265498640224741785899772128121884457930959362349316975662497950417441459153134957936374215277394493693953669577821410543042475095240935648633276478418440167289862046636955577917972502921173487334493428829685717112829915568697702358156722199271939737908729527274843420641957323184797868488717191442239025977481455924368677176941681132885623248307531812802270868900470371386860370613254621571646020357713494129248933822657278406134658654395909163644692806328447317113996915522236727386987707937085254394410650846998882997694765614397322984046566459122910787565033369563300763268238029429481580970938307030644354430636127159027821247372053407805289042770977293786740905409996016203937078539886456855242429173346464171144370313010657629201000649157968443642327939765984398306266741299306617202883255398493927344624758660414250270104013953555745719593127520663325532796166565021098872681688784659427370187241794257268893014640940337114547573926245275572807243029930835780499173958548645465681127751972276273245200653874631411065246904404691677735705395911333878737548746188589755232124461041184273603312289541565515923963979638750428374086462071908501793353058298106499601551505765870224608148455634861213683066311108961025690642090160091830607012252893181193650062410311431816157392011813016894477023817350608785381470616331365931013427694555572890282371086292382117973248478170402867024943731734819241588653931675020187841086315766170486006190396570338077445543891978858262451926895620114382160292921463485037107406151474924917316630715117308749721381524385787667305667428937259834556864723769452978444444487453172026783632948649090047271647941146198734332043901637740280885298037260472944958491115659875018643575522050237048758869222954354426494594503679590555916996375520753991168678918423885264391444998749683469702092024709881284631668657412985299270039118948137321325415548942720449135768838030630880337252668309538788593880548669925127523445085374055702913635929750705073260766605132837007988338876328346489067710519851431982012615420805790806469600235205218264211210248048732075049606836576053025791428087455391063633076073133309663152164123543119346748707483902106152220477097532354395766139108732140013711668558830726065223117480017653385653115683517207520953868082136970537336218754597564853172842961006652974963598770098651551871704960634749288430955237105906891226977361919775687468160994284964278949621702053040680559913498944616298548478680753233668151640205944977094365635238710477270132480459391857021176964968948602363202597481612353641418197790633461677525104432051077020797427511954256987945994528064768921440004385380364454528020859712746782888730482120816019165561849610613086976426246042605807997977845451970275842071998193117450534343699039992007410773656885519076163743565547630403565506296506608862456739528152751258465407686955269225303724342655374246906315235229277635888208552683648714320565311893973783549617551699645994981254153276655540774041042000966784274003854026727407897071491432653207352059710514209814392546607941629435880763955176404731413715264499554775489949674831754986204520756201533291214371613105524968694755509283738240761321873668418940170305165023529158995308063201840713841386741283754191206503357438582034543255620772958306014560380977352320677028980617760250958132602757443506332825642140211081049938359563492561572300183763049857638238625608443244401297686180711636786961018998438783892919953310186726410632307198736688587858481455575577180135958901487080426904967303847350715662985820922071388431215008314321754005313910319074089923080514510334094949769708971712171185131600438225888680170524837091429201564075686285050072898150458840008843092857769075846526284742636271912672506400356617795333457945451327020667502868119771368730072806681626306726727420331236668586639793252436782166144442759005942464788049738854162563366750232207320554007144159516057080602047191355866401125591714819368189618630048049034010758285861190090662627794419086430104690092841243926892385400878676609847871421240109715382031343684489110771560581327583518864334958072131538530505783154184061677799062962325531182089385745662204670787857882385697635057073601163172081762237226092255349874037810671864379123420458440071536922613063814143712965507769874734085065089327919818798102571920023806409390729971672152704270371817486229995226972532851182873607196719357797732188457035487337310032694413269452337820583879023454695989076066335271732990597928106468410794841686305397909011644125416325814404945115397805807851670936938621939124313758603125138264242965943063067640329084698562194860987901519643246966386303534971314269660878489310290729271250730788291995495978982122104364071257265116052564080443031567266471347340214825469056355370798925123208767053104745447892089261399456068404340044094297814180281203907234534046855552266265983894492563221260422606258431714042627322000781272341229905689219685045884058946549610929440433168775648835519258161276953896918306562046249689605987290244499083199725064868242279468941130654280315925491839612973302815099420291099764747081416353654324519782231065367526245786035787558943224123439106030710702226997242487063659783956531232647737384331529675766060483545010845661750685712755908058354581537759387032111535828387819512825679472441781946374889841297350830723742462514365518023012290409976937816164287708773105788262148603932302820905991553784286927512873497349327373129530566353968456272304163991699314096074046599474056577538997899701768402389299150028746797308535675246368361447592737688426147911228931388316208240365588865216296111067652391202167182017992247773261975266417521249049288227034435623882875893916185558087635780351167512096859195158426159708187209144272225010008041401838800999880961510378868928646118842345797709280669166033496961426685168587951589754842908795705134315903864765253119193168705734308861289494636619313647858989873050819387163397168468480571690615815121573206621083448296129395773220206762983682156083316260893855379306825752809407401781893840611887411469819699678395420437948390752102983147680541707768861214674073772343066331965622093074059547060794702157916859757758277713797231596660865877033953903686834910438423948485370922449802430778241649059466366316274681426945272562269411342470068904563502977982867379743285174928978308989821182444942104394405380695971091139466575123284002369325160958145359078483490029920680813523659623291577475829683153399456221389676078945865581989288930272847162985182121787949815008972689040144086039556418249423851216181879771627994234747916195373594171717697617985089996669740602296613194455617423185823613636981054212333528228756584230779283273591595451110720558113754582139143854848368600099105835918581052680208176880099792856490281519961744780313151404713669900391036643385958877189849118910464710730633712404973129230846955120934987071856108068169957795344445631581790778829868940560955056207266979774370974405999504226612567342754905748530470961739768528308696012363798214493054003291375244628339438280994585235501727188418374236424698675896158711918379478469890608462598963301825241442549180329334949126502425986049562431353882109185307763118461818147103509388251699368750542542367636385765147656428218752073480021047327360173372693609496567577796453209213860032085881323716274337862732969541575042612398271425971581591858099551765149722749958056591098116115624739106494457403288298267436059743199685001526414561020455594624182047437458384018442991911495875517049531145099415411321675611180967675050924228292251949831236286973152174342959526640124339931103425034005345056073601400840908522336845692314080846549056911835102315933376243369237274881247429041330948764070769316135283840537794714404332081720488015735378368916247893929852881696215633308073187488591350950669147524358726543185004824963774583362745019709978262281452104030200757681271977185168904716241865035912761982013175569297330746373701540534645324327314302553808201248252803413618934452759974603586115653300415706002427480687104550144529418156844538281258379255786935691300447456531067123301319356203093029525851523152634469050396516210312895504616792946132387185140673448385257571197766950607489783839487609869511617618956030378697761618119048682380048864995508440829169000776825352343995481008981057460606198244649960389994013995013589418467078990484281472372115188618484527374689401899829972829977350041286238015660603841191825173055706064793994342132866885950517388475326158201922631170176323382063627524216320863917059571617893270918952238066536806258978559707261428681571116377204442696572776019709938144007240059788063621774803898095957059073748205716637542974837500129177494659770436959362908256695390668823031656395520618546493442689015150622464645674474697939409684835333154517465740245893842902667484527272911108823791802069955639407439405521748894160687977395104947360628540123392000730950552887767972653243586485330300784066999145001269174490308316776776154483045311633812124591128467544705913112314664675046718407470610756525056575796383535472473779631702729118641408091173886277900141417427381505411616401317113535144666298895967841297000371438542676215987797991179672278726234897820765119950891192817537153710353595198398317227210166433667489424554907640030012046393682777057341260071293502257615755141262988488522962855232014483202163755368169586127416016480448347493168428247832775836867376607147024183134137944110357598221379999289370789269141811700799258723333571884333859128645666171158966289843476661091400543280885403403674080027654811278499037892693224274490321226152843162597288398339872930705107210691145314515929911471745940219996794821507111920520667366660900385042406970141624150241205004853693573135872273937360701267541701341516775137950128629526753322618751838089926290506377524446525801626410283773149128890372417832129153170707837013251206248633543980390116426730584197165973133321815873514307521232239604644300002396341684027278614475223986939994308473804004231907131268348959782361724206964333368906485788786119040839815680431943715060571784147165410306346655117873518530995727567516643748743692902147782086016389551153361192473310200642276783679634438051652721173630850249108020081770343586035041236588058895475147041830116737571842197229201421963283473383550187650755955827413244957148073232049357860508872085472372694138045943059811059617017287706344262886249665566664471083352826937840681123254808387246131030360890041981197828691294937422230779678424545086187796470466086891263048110256495584039036361100960617707433341488734694238868026590959520741517143569223902227448495114524336011790128952951530604205095483191046820195541575435441486722796511034014201577789785359076075638997303525279269857326251888691753834527294378904947119618108996525930047758316563609217937217389155778345527074002680930815698403676206863105711516734685382959636969581426415140811131192172245398056029484794526802637225077143101082704879111897319572937470926074975967811256684509889010752923928418120714743032499212650609328553433237935212397255662836595126232597133037537072877669182056221008289814017255473226215965380072510486547988664424925294589393329839107949283791597646302260160819072174503961186467260015401868115836891242085827152617723559821382335949294917612640657900977606945519987044084829717066484982636575490023327873729451612051405702208736718813750999838172258095294216925357525307245979072091127725551797976427284708175801077932667657500161683163020650632598541308940726560044254361696994481467648227155289187397877508985075487413776501580819486670320363070054274677535664003685445110714543863608448609956247946241313336448433658188389562435880272586500938377088915183473163050291482808513477020310889101147140937974953655870329481027350819520656901078111856535048146363217235940916369238699543785178623899750820246703798160873544187629496597375344710516330389188469402379551503471199536894208306449057376131307482995692686672248099141997074557573737187862860982922974234045005762057745030584806448566307798305128120679572978173795821666005720100568713637696665376387519734967361836642371056668153954198864107312984242036191023272977074523292522925413547421725038403708218473485242479212202493355301682060690799431571336399684113304856865477723404455284442251401635246813261560148488255268101200601063129658657379713631354246416790463035250484379514533837794304585578557938144921680657265731548725164934010348683130135724253128435302305855741202328159900360215484206642409807951951260328124300497621401328764827252884630600847737339624946402437043746501079936582420916645599505903866585975971012971244332281461348961224024876006357327603264679963425931609359193309466859220233407715978459373448553868114886805893865855264177053146969534104437217188074894944280647770690217865221099260494663513138128403850344350602763992600200934340224783151015590554687423179145955242505255557755027017404969641760783301272157053648791360427634112674069756245259826027050387854535125370007605404663733660020731545416202464893713897429733503683259364892301649711689803083150961068178929066600519048946139745155168753958462717033712467126218491136945631358002633197856632169179585117189836935904288443989012782556811737500603726330443760263038766058226128439972609027235702132530381654956733986517842019798488880020335841394385225117650121800010475382183938746079801492514889465127076614141433119196309497822250469386511129902894080737809095717401027824645909574984705026144032577061932559937839324768624914285018558301508819769590101987242196109313272964112766958666933390828625073869614739507001770109085192967213346036772610634173562964178371274724666234908263089402606232778369220626811731986898672204006498299276384882685690116851346097797041351672480402116990310460879315528088930051654991150754390512571219129628221941101732387544399154612926104209174145702291453278989598478404370864978152431066900664163863407528465612968382816051491871496315478360220352141966351220072932861088559553059964741523563310664994389294573484608349900190147604479141882237643626163376451803449155238238350404560084788899198013831944312001627504072781114991509830490929179235072216539890337930489614330395081245095359503372235284946266673406440487803356759162107889112634009254094592225803897908056728110299804189724252977940424756978095423275571999576948529951280749303578283486909207807023530489360833598613902207949543087125644434533888126514158569393240964881281601185912020671778989702686916861789004450891360323483556120563878429170144643412329778347599212629817477054315211296045003149369569085470940374628779433152161542882724441248200409500555044806464051756515087342071481681749429795022055885159452583807661927269743191435702126634431273912527099682866611199474996370884235878300130977148131474291876523303711863622248494623587614734940537761185738429499060034302983305389279291994132485394079345086820031969740488822696194989098648670704627544718624349598947387853253492705485638206729268487562845335542582334923280693878913811600142247266353416147893059189332876685233316764026680648574960958705945152013478741860747515434409959930129026593352569408163095756138510433296560372040027585727654581626054175144010899269953368066057915291012219258922141346898924521365530988212847715308774947472143164341444411201170475220687215314499056884750841254145807087391969718161646373621312110252290249184468783057792781952969909948253022993044138332008027512913674513666681412500823458140942854801238122469896005700149351090399411390687798985111937305109774808847870207205439667164252903679882861770404597983384278043748860749472967510378672285998776317930594993468135501108645911070162434571555523041352695713286263526873577070978609360826440855984578384619050858973564646904440872438731955353217999617958127173068871629167910997914396184103533239686855036823433475313448940061294528714929832168443902955148549021577419692788662265151427937778682307395137143343269446432393240784711166244038376269122957947034311194981740563219174025903583484475056823010288310059159778686000072516851779619567435107178153204834320415656435952608849211442114331242564276798311822260755809836991567898896500991585475873224473160509333290861997130673248108933566834469749863352452683253333715194551248299167256185762994716233329142105468605604201683014012361615974369409947309546156497735662136327845887258790378635511464609878561517588964641305607920464318820967212078125772564028588969275791442474881849091646748706500739625359545066643449671416193153996054176157875990892515299731700997518741698544133009029154745495636575990654215839965217736176276819888584810735201283969528393470164674263458776044832578485969259620773089172604663690606329993299707076558582288427678370016840507451223096525130694691467634569123374670110940402183489650010353705015562929724636806663448240921261512333657258889393893989426686800864213043828073918832924059312397534494749005445138011269650056254051992790915703980571149087488744274144109722821044863641833854078052766731033001348041685917203255720796832673373197020348470830734596834257780084529177802775511703288186569548776052191471321803855787596039232469907467263945542627577000375881860422710525823134229427885451207007000161443954256412947246467114811914427023685861405949794976836872217610715502744670540815423248141433194682335135539525661482363569120230624560049644138971004195505011868628545667755552818908247093449575747265928826472517351504032867224727116268665837964385800789129997901026677785860740250231478269618641965470899133489230935668464677397509679364526483349723774108145445171844273520061893152161602183802455057149424074546866275173212576052516016515871319758818982744285079868287099197999323535211818685042063142456204973126651289718044768257854402244822003460364857236300710502947113811659694698997739975033267731006439880085777944479236260027046122229607310127164878572901183493653148739010978236563850087612343255011470352722233761379890479120790527331172973367635264366052340873713367672780642704878603448315130847188824830498168278810976642221579172838330886131097198844293845810971420083981881500564992229603628242775583943507365836492218292175394906715974991181041136906357250371845217470298701810116153728457308635796192276944734160246527476618827625157003405055930284071768203500509519391701597588626482768646722051354381661666082385552903304927280963454051642096058100302343850736846287427695410899187277088171583090206146516560888259995381695661086803147796022433501862207481139176555822309835679951989280014469239904124516367514670711406751925445363447763818768663400584081417147370589998198581722342728369759641985686815405313452783346674266548938640873493715837188512181824042474807538462321495139926836902303184814980534429199961785251306459263194066071535502675077878377300603989812774504915467125998870992945762472954176210398357123026844211848391056122470218269772200713489474661289801037021106091416169409154543260611633513961626434795095695926422503726446552147238626796424864767205051572716418341740148942310716258128437558441106326969392473313940971331521586777848931358963427191463273016553896073504374989827537092537606134752656268426666253867577776229691888160447045888374206599065085553566663843566830317706432681111282941868369307741243294420894292452842312282172283341504769022064866733881876548898881608755745813992356577789927268175478808405374952333877944465513584594372400273617883286282434759060634083398669611990797881698887668974466396403369369012520961629228939286638440914985808799587360758239450781642021107329939144442337496821337360521036290929619685879422899143395179207654978391306377880672924812620351222293725667264209839217957568720017940011395644549889897906706360276717773298692076830790293311554809771136264247785579495592542188903187353978662399906802722587089905131843402959872999533121753321939885277255099894712482683354194941365972301769487615031565522669581251183678260827220744307915042610207594805632359495242600125123450653597782055656690173854154487068621866163316411298472133590644230276843982949839201801882016568012551186516419442235116100282347167670167657428887000230408747463286145820772947146172801800637044980807508034091399034734477608262487733151456152134350655090631726082774488059371641967169002143463512851808233893692192141442141625747468892378638864870821676460699573883884350702728394043261408557315807591416797364750982928168245107836346630066972205686584954024816565354572029786856449110460494610589189840845211886213901799941772562359467379820606352752610910610899956655641392919566591261459884819158003102701140339017442391872241397502023106904755197455309610895738142765889177818555101793493273175504961696110030143727328248286268419754450070929243933168700061285424283727778935870602698918190829305157999172651894302627926691416029019804515452337444030321077665378557809254323471714352788199335462181462426393671466544959892222316257615420700783622810746362704907251122615196072713484636080721396591827446050217029125597324123656313208585872613600029419037582079806240784714187692608940882157996284666940357011753455136007336395646294531900784505962044908262156890133918441990904629800286792550653190210467438306073334888514139050767976611022450244880719376187566550421774124445460492800050793097790096608657396184162850355590834051307702467552722548126196972705750477789669961880521033693521566247744190729257355782728011610295109639165391078150070062762932729205796316343239093077029926445831869109238109052971401483725735497843374628706385579529863012384704943420367381889329564400986690896669707642856910741947338528851400097354875358046003976572239025126025234281250337166813506404497100314862726339686051104429851827966792772928313489853687615293908438973034533228296603374079221370168494648482845789904638895404735485776851361318438617995210328929182579017674726121553192044668562506819316562269333611294888232710136579100805397995344693924129161831181008376868597064343972801286884980456461219333459261301572655224517098228775802641363526449633767685832055628220204331502150590178496408499840337890725862874226272768251726565295745592263598374106927640551100779896461451021887208792019973092124167796837903236631025800033404545997878720204936843088580651755646733667239220656324948651905023695251822037875712731903318975406895346152339636592593827145545522013310598290906444004595159630672898449453329735763234376425265149602570111216617675049085837311356306837939627107323980690549983649935306112917160346715591874525892315810130682928903897321258751561221197261673976445951049563708066804867876806863584420668450725392431751728239303137297719000237489893456596298474090722923848452732987309524326629298080801073591276067761643055547004824086062084457390896324635683759404247659747271394958143078128396246955830240453105877239057343657459509883316794870616911135850341408950220254360339570104297163848416025263197841395354905164477428647504690297913242884174325399393032960512657360991869574214421892755570091709631137488325631292022186117068058260966908249851924427828059701046498088882266489141719699049558856236430776183322174932494105489430692987125379300242524215019327394972675307785123139560623527237231279361840883943810788979608024533803229562727163313398960971059146739600406815765271388711246156160426581515681292101549693540483620331907026063205049031688628953052358577917867811403404857048715536143853844178422452057441389066815969379495939592231982119418949959059320776676429199017718233929164249467503272644904533253786858604978423586686001804157774749470477660313452152408529733870876655739090873343879802137914247074041742870714503231813067171393188135174113029880436928109492794797118986201064371056242863782512473028671884296831081495872866337173548210082251300524922060842858710014932424935848290799626223250639640120958112862582097158222444930360168988723874213537003975568456462140364326559788264141412958066502216175498494103749294012827141632419421203056057851108405118753340773757889198480022639482785921678835734124154671667652894900815276803143769445397720032426490579217881669209055619995355773842918970721831411896131263188803045368473571909478186255851401151209825153983854222428597357009395144016564774361063384616697552824457423929340026907768395281886806895517284666304522900695704898409878947514815850942301627329727118354879653601642259544009884009607613580303792249640382803692272066599393076738515785322798773552198685834358690438142380842226389302544542702987386746854966583432129755028837733459312005858047197852289585389421314739621397245899393440317482036791570808087201632511217715640261978245118691383409983219036917067341798501241328113058411359654129513644905049634316739995705301485984931860127435032271635222839260816872140024791254198506484075181607417354336607371887469787276259636061094592645761733329669423669812578485143484148548484422643829412733066232276192554218116812885463438386360503442217399053110710790303539323057589464969808743622064373345357513963744846289190864966810463926867204982946195069951051918986055728912329546662736752144775398029070393409937258502343620503890792394669320113225154529936594377390980941595601030389550716888737305309408465226468829898813461066973214637648299386537323855053592404956265781017140506292729086234112172106597759100667889044777509250332264745496873197768876099004666600287043853986897929933071599858865101195419111291306866582947574740684242139730414739988453940973625768796912440435738656912920860510748093769049416481764498434614459724054433809498834975246158517569282311883857496071986983069871541531965076094900561686003452779172404236263599353606771509195399853692612066429479786311010064602110465298617358962179041320039911275030024516536494638738230751475527266278876545371794268245659876988790388439674647700430533664491102273923064707487041632326299543587092790938793063082712263775757555597791364368455164953484293727728017904405149030443855273042195042581617323673949740192469945561588228533373281277636153558623166552873882980475514215070732135477555000293705979062777824565065220811313281969499410839437133753790632543563921552056058649995915172908274452747117486363463095642505395687909416372950234175638505861805054656605423713571353279441660255839258066305871522586350406394423556895778481159903835755980483924475131638750238536775274054487631071381016599158123143623366992229582075253887076494211003678233862384486038273959425179473019822468140001151834350168635645708064691346435423198708087963220402131559586478239929982484195966345308519355503184625831739485486319917055841744769079091530569430019919172125616355309290224961357989178877631071463751279816972736375192202667322097722886525871196641567105111151642947778156987434340543629469156672640628319430799499224831616031695909432944977527801616844865771919430656397074216696535928733383954017526157119554634596864399938659548382801908708889510629210713713807621627417089114752020532636160468783101848517420646345221173905439745422850638703026834217534421117664087034527855417246733859525925365276610241113603706768267325909793251973843379671520828177344386577286459601342722058550851493563363135015642855370113730812458067790464801558844554251261910603338572964154437997959668834808764358805672842707979361054267327216533724462002522442387986527072006942845730253804569672876164228712740170888829386568428058095763335083734245120154487605049613783453337708029648321889437154983331234950600929240855171876653923017001147588422725675082308591802125057454025546123020248354875074625521731917813064053615030285608861288176690168802147498093910203274689041947741975510242018036784601837240706145269571259772201005972410612588948617847256266131762697785315429682413509461062234404775141273515300584939292816703184308222670786051994015307401774286737397917419982905371556933766282542218511164422486706822628437126778271971366939067094086201128181117239215646161249785750366178942190392872712980831937456730827287737444201420209716328680533245880662962393644786691206457418604579323983252524538873634543785091073143392475237569257356837066956551697400655251826621255238749844478218691666712614071090528528538905270344149699397313567924059570914578872148610506536284713640170957273496584370558044767312233837148295659279744941800104962460015715271877431617869070659323459012035119773195013617481092379760031260617325606496675580497336987687582884320794857406881580174571902364273022364687444631477603200820457700599543788598045196239833540964143813874352535125003378883279436038424937080736513888835561300306167344827162720545601438557232797052123408534675495941261582329638194493628343579366470995922306983705668553877008309893226230325901783576308440926145708870848757501297293962222730250758845080720441650317683350892046119714601183544530446130376552068976504293382813203919892139520357817227662871163972062442093297226829318852358195196139783148651800456448302861651429232733043814919322114160714312980530169361502775711298838736730111666701282424498227997591807271907193948005741220012275328344756990699302073587797323752956288385811988814756973151556961018325476886521433445979854394669108400177486377034820414252218013077948070266518314791154564890730479721028271455068426636287080320722105734378371640689787936305059158004316473985456981695921207511722406228601279105731084360030429076857398675814911628158461293022834851335557512836332492019466489758806089028195945789358758432487301235190605182267057600929295635298390484228284468701416950552311743230546386330395973045208675477548461917584932284686816577496800379813442899004000158777297184869065237735205460919637895725196875304201788829444334321382305126281592394929310061614615070995655559864651779436079976008324732788666647585796390503405545866510583589730999487095547234356219869875569544968487733739773857330299251402348842376916735664582995364813341641864752067570938020731826957627534953612951529543108417158702211916872226480434647147422811701649807347179855186254790252537546378186023626043250112551725449502162544393295527185257758643115884230256507922493821990598220483179408052185236472385149456295102864394259378291613849197707053680474587542298599355864124383156852541859343026365674547365953551836473625827297926225000300991675379806856814505797992017084965108183791371304256912506971923131330150878273112330817318911437327519925781021826451402459858921587615717464614375557501087175075783333430398702311874918108469191317283097782540284839354504045849775911290579679924450407411646972500269908389034157331985074242775950471418524910245778615426808396936184780159536253445580962150418507914170940597699621538020603626832813004202597143018048355048300216121066267839428098896724324048900397497325195596068477079380300429186886580165688843415782325485747283889889805051968047826240131210750846250022835135382697213606584191694562110570212573465529079264337308070691990826178300313599294167966471681033329353181141529745603774296403122034639011157930392415286067971929925908466454221573185842727639225161305106724081768649976253893103141237283041356109177847300182170935531628635457346925561867527615301084777042066136093447162360835109174709717112176976130428787064251232341007496537003953872547831801121651168438874177244834356406331848439687724882926613478577268945476537891292625957641366274649245427113543654321748234248733019481101446396599678262042338327019420947243387774468376655722488520097897209348018752890516211537060868363538093622584941331621596963165507666020293119574373524926087802492555247398384462997537371969071517157679653958392083423561071319923765710399004226997099585728240235215826609832843324829441084330879564919184301245635410177987067599601358771845442838731380720700636965601748856408910137524891278224517988775857655220355239727407748679063810599574071666485743656201356061850905581828381308068900257809942664096311121645400123730095456149254143682322069067112563168423112238410998172857501588634375979277560848611730245821437663555906465038491425944772461695195991764437338900398357009216691745185591528614229208580300876692815602035576337107222212960455229875534334000667142485847479761773730824366351367261228525377261703294864662202132758103225161057635235225131222251346854994555695042202654283277709104382394755337676222327056131758675931762750658481476028295758086828085004327095553125830837197432985452640701098435312841390476540158788916192741042695833326464007540838063824890895777349257158383767410861469464760103339903755162326296197556541469622687686549109895334817524177104734846844257103406626293309215542870587227901250222792096311278234263182981488517640087019596953302016044904300993089498483453817787529580628758268976988027200773853616306917122984085948399727762218369846552135822240650178264017157798004891856993544956016660579383560630971088852753021916000723854917356636245386689821746438033881664853396278745418576281845845521579082141481967638730431904449363746466844549631055747541818119268070777740721056304155628970002282668528032096172309029328948030376229486562549496804372964532733312037773964332904459219165045534903985600258845854804030337689365852677863417442916481039369129251591222579385878643801855631858350857186726883503327412403303028701290475428686394962752557444085139450749884803166784144064725412821765966598393509718841321826264387376691448864167246070865211942434016050915670652471158465209386276989588779565239489478452855555318486180133712704800249286359340022245800441271492697508292072802249560261905294531644369149897694494279371676827864819537856996478575692191388529651030725929811936409364803725616418450613631919402687026234137560433834563147025020828960714264842553960525478916592638769255771521115281867454207138388539396680831862651041899211220567427379539173217988935333096049058350969928726581629984103255472940923689344265305827342511910302613156521147657871824312731548248102848290904753201248968036717726672194709219683491467591648046050999947084063323076826130769558216817507873947099210692981878765401892918722953604740026229311913523572943497115583859292765770858329485990625139247977799025825591859485547106017536256340426450134040321279414173582557865373225514864937455566117043600140446664563724432389725411700471383017555808143910735851440219152781669610791359862706505982200424034522319078055187616334018701864227639281220173313716402515513991083058971928915532730822331031602424274569135918557863386297728923100455305942588397428745548581594037763894441500096915510819340274411794985714914728615111696434381259799907556342031638558303753856409889776733356990102443580270962553215736692376023474290858561016014643109041785481018905370044348866288744115460405644862610313543484986515556016183146623446266835695290276861744875984210597157592558222521429157884196245908762185572612330108187696440286797731295180002121400816383728235318438800296245640011796275371765261122673459033028929415976440225326848987068496951365689373126007301824442568939659103197821246156646379023512968146467898846860083703855594169823877148455647462926350345619785433874957426438562574820694492609471290610377337060283654683676748323803243059076027839522042112341365807726731752903327276072953067204903384191635094605593622608860435219374547819258924396851153404356577628748048446548503697773881002747262694651423370485162188008201925252519216716036249209926582544919815471295198900608372676854271307989629933147791851420258415310123272629923062088568526033722860236699559571197920415434511259888819319863199156389748775558657853013228173528769561772587494991240433720431565874063747225654048645058998622446801814032697941756205476427969251572526580559719292032726565979666045575827043254933723239867230262845414638715384875782647632680741184812302742900277501930462251183968746521412822223260154127720441832419177636377517059710977237487346768613113957018622294477093618613481199679953103746804916654463311660326403124176898762549838362630519302385260246062444367486620665171680393447696134202474481658216288048732261429374607260981677563931436758241105093553375157675906343445788948054359387927544689892295151391019828412159823905149719924949624982923143674276251634415146272142453141172570022215506098861910116152921120777743352122399150642142673339989506946620444351302490491473567708237993611451522060124446746551764572167258183936172325182826241327384055541170112267395365808621466856279763693570144359788997767939584771713382476701174309798597455120597192961840159114632923361696986833357129380532226099569073468582762468812893515938383804736249852099838567239428306633336086105354378106744813132663932920055201191450422672497795973660564162239657739073082736300383847526519164059437859375039603718905224171277168311988880367678987788043890587093602694256995030899118319591197011757341886521068877863704999083145546525317797557677209869495495413188515770405027790999035106775490413900885368767420009181588747264630448838113933429835388833090986385386027651713975545592875612650762845308803632365454961035245499363167808731384102174237430939711726256349181537815242472781731676402179030905531974611290528967417626573238169983368270352718327119170146951614004028820105979059392723923477520762379190537929494076438674709619636193974303220286336620078240061878017338724581403983674283636430254837158491635830890620677452833605144688459281022756194206988867524916486446399626097017180067551065926936775686405350942949884312314200095093413007199055017519102077996282668317637707397988775462024694363432835594681484220290870775640845365661042438813653978955243664205120534662797894446982778652433674691838670490247056975317820544483687609950029270750792342495420665829415138145972312809132755267053090741115698193446909092744809698385543248514517561071223688502467970632755187498233960742279940080716222923898523845671222652449206055511321371914059388245110149347943271282622096558411305000424733727854384608851232432041247150948461752777259485036313188238513425206258490460101919064873029572134175169236164958851526943704149803502764629513316325825479106296843212229200653276478789517582959154904164379719481048448683615210622232160994762184082853977127634648703955344656746568641434720736302658101168784788630761963500853795546896563895543495940508769340062830968273987009361529338475580785391901380869260182566556220273415564755944351383415397818881366240691711358098961285961652033297846174210992494817971927229489780464838483914139161277625964895260564646522296090601256883656004681804539980182653631745341059160568986578097944357789404113424561613944430089814843500144015622848315388655213343097193020525229975740590538423069080765661387080271230081514402875952693051092671369387118503217642106273047764043412536973126097419695947710604149702112467382382589500721180362384090764965141280063324631284635941443033059122374898514094939957584374766416614936278270554991936214626704498044307214605819982811741935535248330285992529788110075344894599334773960586191402278480562191844920928827958334435324560559244454791719010707209322965600660503142385681647814595073543697539106493138178953830824628967502284014561623530877818109731063087420572654539022409510205274358966997484622049212328311518086989064536079553355677494849098430093265916394659774437089531332080664200927950235371287018620079576011881797617818489326927329821013828527507236821659057431616139027841532088211216303581261462262581075396944646325445207870928971684280835727690253510371579909948106229223610064640408848993303474548542624249075705180956478103407154321689401593817569276082402450958596335081136193804873587846016892688572690077892493117057055099211415671902450799196601557954739337040058606381293580664948509722825238586424393369361625851710385650869982630796114809821122502568768638658736073231167971774400219512759415953197769640991945112347027459264924846523013708228755212634137005804091280100063789634683629613638040560326925683283689366448235572560767266055480286537937655923473634920239654401585958691992474679848521419171217700469096978811944963726480826349102610746209367884671725546258319588422594382988624569200037542231974344469976512211034692400178826148289143967471626732216197433059751242304421977669675107392664712809089119527346542334395820619624126509861567284880638387472278206239060408577438058272756058777833960361864367658957980960600106396337834040512407062782777802110712789229794923010045705978706378381360527045261461975244553549971536866088112193256737282977867557083951815916805455523980854913825069623108781795577846789446104757170701457851702881408786650146303241810010095025978633245614815715621237534786108859667978033101155878573433399193043557269430504206103827955116262492953107928494561437346556915254226830600584668903337751905452130857165066543224166353325226146059163316130436555741511523444687180816856927997777220147799292649314925685113229121865300278098806801673633152094891756209218690001825683937945631601313860411180355160138916419392253306069182580841287676085022611330487432093668287254038202665279425682066269017923636534898777663285182141100969639463167095001996744875027524713549667682077001392527456829668500073895113958650659485320953710264404007203017162912222889743456399151357409489534693657388357778290612609820055232080846885931097037578583336734523398974091797525527644520256891480625300839736292502830298356280559187035945794713671883586963415340746526108353271162490574590637277018347539455296619195071346744765285769622295331395361093599322369713670672686131048420162631982789429434892261028232201419307132513345649401207889325236097845168751621423576197123099758756057324072726146946244197307250791438207890939459582654319761086196619916388942385227220034704567263748279205426443401330830974349694068725480034816110504383879846961223080893404217443809005130947034694115810453088700613428421376981394066251901359469754265169526119723908043720440878739604205297701212885348667013582649093737663826891567870504590375396886662043012823516069888413195965922472936475447893093717251238728518457703273312094746109092690337216881477767906598050115830144543647911514289061011540647981784331758398047277985824426831340583688645409410013529541004823980230152702973322786014388616692284728320043422941716251880463360379598940205657065157578334557147510697220845898165894569957631229255665575177328671572510025564412485788641241591024873115451874035154046608727128776713699834511824772064991351914571369586088024101630781216299254119539182257227975530076657102577213530949671642222782258597753646137635878632522388871558889676292385509245866788575244385654775296592097085827341487588770139312869426040452416184349149114659544104510569907523177262090982700358702878359139385191542662471323549400188813888430518849383064946477152736223992496645084390433296639021823580731206435781300175808833081523600656190302287929301039999618781647892070384408014254268224767949999736407082880005232850185936261983008083573269929749992827179141900467566397830559921885731362655359725963456248844862562511691198228244469891086212126416054523564752182473248328674367482025219816817738343373408173302541005718564254191606358729054789462521401455103786205941620186290949218325692035387442061777932163787459445580508945294301143468588537041422975802556315610357163406134237216053597026258966369087881989556357294761976602878247666912636426011546171161778036018796506476042912769846693691465792394003852051023751296584890275678683986202482020331289944062810036664231987711593949288246499468507791500416684198892971426406390853113480127851150018477083772614011490386046981837788990332419400799484898500290080561075797759281802401173079139790502193105689125688138599627232406951997420503423199536126734596749433132334930866511774088428048718339131381080696488188364525453315102262567828141874857729944908921500388834582918157018523181490060914193978278217843141748972305976844007667326929360231597463717138763774939175124281602948919459637702200821308260928089582902474964579229105933652371857105072813896005261971343815258928965994203036232808103798324699658057318179562799550008318917536435957050964628768139636606995858832777361445585719342943700947782046040497959893737568973667328810139995101407239000658026999889490011571363686001656785388571164887833520257281555318093574765397687721085466745295139464174533080029182887565312186032575034907778834996912056205295019554332285120781700074178079230562462239671125758441485864222519541271746492561698082446478647344987744118413749366429779299670579738076166830709838078533200798592142131767439183275388044700941934057073770310187222652942911837843810827450251208965287178739250512727644749629857347978299957130447856358340960767719511823667199023333511857010425930127647548180702721533154936017182064643483122654504848148905165190312251899197901861018637140450240285509539988912690460401784597800053578908471936116327983953836115624712179810104591162787773919692822932839780332197784058369221580164510738539726181895197849547918092049733959601049598159844600164486262885522152269584778527624929567190467545090610394797427938487459017510828624843455188695346696069780353647415685123968458576753947997032638201656494790200847061997880444308328017464329940878349946544096633317224103419980286317284602393479478428456997600064931474402860206548440800143008640569934710780583044360385184574006514825141905008684678255190607297529324870121588076484573084545761023949682674058821007634795264519806268220248302528706038434704044892809117940313147308125068592291308024196875691248818797285942097632126392688776675795730358102439050962761560063407964329803963022502728743098095328796956027203007279466374392572778370234064689805521192928223104613894387007760879735103961708190753543582347377359775174539348023316454236444585356512899474433011183938481933151897177792391488799864728895278867176868252444904535285729167842729405768774074854072211106348099606939840593669802369922398690058508056156091669592171021229960409614301290032991256856311476281503031960510895698821676441119593816411577801612758634398774742719816903327423627426351833217881223592524512248804954590785576732202222913409183876149247995979724411613858616155456081653177345976544247905829274549624480935679083695933354619637420977762023452568749279821567912699633950470033107682775217305982332168643628514279393310476730694908546957971097245565333559194292939668553696724335454775989062272365145230687678606778307641677118865382915244572822225814105151501499400172123948194905409713520024382688340854569475762082198263121068719634132228449096732454236049833856525572783146487982427027675512813425113140243857433376418118063266870130814940108137039308713551547005766425643339258903784452353806368910771180907636420866665922900440633864367027437310032867902922647781914286023903146806673857402620338218708197942083357420062538514224892170817503031400577114322505822300525785302034939690808213061250448756588770503763617401095104080908731638194375986510396922107369704654707123936423979674282229615212115729625957049346693594710748394699700811883400730470513964228660375675971575633501822556787708624050418930283538005296708343049710431141150950066112784862924196817978777962201722972624847625846397666116121540373157338924660286784211807049050226706350007000542462231153568412596365274925835516436126900442754832846667486235795361518930957566272560712564041141172594345585970432664264601328792644387750129682225189629604471081794395077924552386695960011976384486296876536335424889332192610110193741649227111878029871262004619323533330600797036120370058204385779813261112626902349715271870826965525222511598188365456081345373884404585213092945632114640976098192571354422830948575391672498107241397017461666445875160352500282263047482237037831876226879991068206934547627355799554456891037706061120934618455792926692810526131692983923723179595667606544347806922465904905937984482717796163361993537794584259629256568424816558703400052733170777492003673688906129920071748077535719939559715207968025148626230298830751499836687782278994009707887618301070281258445856689168992758798670826092735553230367889110028526544075100800098152323342182513035011417759711948252136256811713817572378970279551408770325168331955339020771069036071142648239526116605233117736765877712680710465150598318302581600019013456024194329630533980557518780177803384352934082804430021993642503884669381850676685771542476153703575910713689697858799033975475511137105119745413344755350425554194624656223232271896937791542608968869326994407271007468198417691657040573640270110933075204623710873001278065318231051281737574972555370051617896861478622953448255048309938255940996680445825535547840771666406294191400578903748355706561242943395387174997715249951203410646993493965614238315546929117513019088577241807933088700351815157316117442045464689353111564095876429829251750558685827622525338235130523173396209446802660474484464649816163480233088557860221846780900470615460005122332561165867087752586135581971154868881374565858299573610812191073275351682702791521900564986391920926255255370136262934607664697233554001342093149594796432420813078139555579039857187018567018891207567769514363576818778907063435517016628691410305013315667115346136157727413584963616889844174335008951204575248120821477806614253419225860707417691576642384169191884374901285352097465911366850002039103280331928748091639293484512901614868265499815158967180949396796204836663132899562446336830144100108065405526677192351969168339875249341089734631032596413288292041938033080760360027429198761513627216300327940405370399154303495947988833931710344713731356194921966168117117366469244527001365851655717392255217688618937782826388694781056942654892758129880667778883029508488858224948511391338295090112989915749367822228034758601381057203398804080925758326710551143246281159036607127583831278699547739227161121482395950304952479271570966333014198034027187136834389317917080985473803388162560448161009325277363845536406696046809677708442934748152713468842666985416824285827063434885308554802719110163088671604997349612895764705160877294881486250181873402779375149790307513245164263127348511583621730048360348432402382689024954497013899455607803531270761936470221148504942322601563642811206592605786413221612434343154344627847013261145524477078886007316263482397237323287218166587709555695092333431959765208242925253081476843879978139845946797062327434472167879038593751307937846509545177722102888674342710480640145085618927345539395365479438018651754581344229557184196385593902869251302197559295993126621777181277575664586874642075322697433157934984914143929864264759309677219383149343358369637437294963502106853516701016742855866744653636728588077346572053708419914547262121461377242681207905976157102873326896780221075262818224594537404727260924160653317429300741994740393281130394005832510201497745436929891109286609402871421477490546279658896794576559124180677083818790630986730966969863471034461837693856651778179232831358808730775290224430682277117439389817330125362282351631311921225159189832316944208059603763301116125650129140389498363952481900643900015616434786002140380891037259700423896532804806408096116042976532243578405568761045500582681249238514587754754681871468875793439318278262024353368252876832817581441244420998620676469906430273932877566425700630504939177231540421648471633725857573285805065427894817646090515746167355708934930085804487502625607576883872822431928298777570568996231842170014719817391584804681427789904362617161473230995059763530966280087765336279588881430639056123060528906164400421758680523642002886329759736762696452158202568901758590382517309061272013582672946543113710351777946398459661387931986393282209882535568784132932547197748841160832614611825447699246457015636326607780083304921029596336286404802299673933881364691428971745275668984903591418615813797069885587452096472928093364433407512417639490285096083075682880707870263375141978039095386737647375461865508922357975448004295741906183638795310117570930863990934239350929846024262330038103042460338533498897560896084434229846747641652086494434591843693399873181029323881846762305195876304540058869526115267777026810445892813079309141377263760274191881149520354986176755672372510103406143194305743159207518434168968411678723942021246108838145626852856470605418077013773198829587954183829241393537627469123212355200658580621988991127807035187213010463006427971912724885660640279327943788210344793327617077687674675452213401164697706208428104827663395884270084525526732981912251165802776629058014196592108324068803562650762859733065093728266355355736626711725522724425179888750072734419839234734691956922098523356739801463084285238092355193027295635092918642873379931501569910172353110988401503133348249638718994736871350897117147882466919574227793242799231012465036240571530481328986647520956562717249746894115748764106897970108335930996108823516675007362437828638416057101112321934088043049802582104219114349962258850907821474037111557515780604378512048829967318026794762454729826453621456698354436113776278177520260344114267213700405121560264745185406897244606332855151135700233315173428470754500238743368483172450160264409110947194150447563079462160226742965827467303316624585132317479047226144434157471665505547421521430106962483731615622516598306138206294001009534282056790093092107385345747461917962010123435029155809450292793310287475048800142873353792959113402573472354296492329193088803661101009348304381347247582526878930770576445698811866252683306332510516635457162733235519467084607640181697932199598700463191153104705892267567518844908505127943246888185729477735067698721961435286436750132133426525353709747420960151587923681989410945738726284679511130161215584463860718811512352484029489726179164939183290417642724910262139320282614566414047081066581831298021574062613000432547170173523673888533379471623400484302655430120306607944735238128369614187870569283338449784403625247330676489399560623532002678640725578661920936583646629640894969947758501397708335618548888614856656397581487410904147344087808197249706496031511375846628646510298505007997045789319862928672526475182057783299248177793775839979115853972295332615442015417018826045140180921987146374004532972443124117277046807479393928561796304237371259707795253610976622737710931361666530865173214199221528195723586742180937454342891571548505192985698120156688385323884888577028430669925382099596492599322264941646647876232758240759171606381023587346350209642823205679157344372728943896202539836903556426348500712607477349018521274225157352564292035635684240129223069980190786614757698770350859504910184613529364680953292114934675781207681484229116808588444843556033327005134802181819569433589776057130754176258402920047576390930530216967897288292619148094383307741402262165724640200107427390544711723938733798173308886356325420074257895917928723142201318959480478765964037563823968402461944201100208873427405353988422318542341801892236432045506629298385305766920859826223510365092475233431938452598503647446937085912602674227799540228208066127760719385650858611552033670794128609054901775309087357743725489452895547758034494557126253515504393733583559715037395610011495395693009980969289490221882651637140153256261902480571352517084217997966351239615421022649067850860555162184197668785834709648314733618209121467734803099350252580056787888629919362626017402314609789425330953892460281276940627933624862943332081124648143034033074421117976400521932116673720913551421633889652362850138284406944197622895625584549986037876872519596849727281508603711927390681681062827531035657962071190296643950222185905765984297554160761683628047012624205937099366725710474197952955417724052384722536061717754286112736222429975761966803091487492505461600141993260581841939559603852748998923980674577790858170734311884325141718522954440978665176565383360925582015850553376985086834178605824249053831464142430015820251092813407084012881192999231829013129938598172266745783788929475187697658152915508695967485736378976702923296258147368034571456396843213464309720597634528162557556754654899894254750244420665197313148233609757537177868577936710641320729177938893254540772882945802561163891833693136387666714619355629729135844450761243565395831829170307068037108287001675740423716354962237570100037924187595198203682975673620237286553439535829264318987376275841046671640329945464021788765349268546538277115338346437706634350195827914707886053832307719729705850007783324905468498093205420773859186242048023769634291071124256895243686783965348116015959029832564387662134196830680595080028538126753957804242086811308363386501890625331367422343357736704753000150352871873760183573479916741523165014548163474413829472379097523280431915134591956691817106776272141386003463642562356517626406078103671327470992059285479946423033553690947927418377655784224449564131798361659880679886809505534890366806544937950812569000866354200229694658444968300529885701553927062311740836883109107397498687029236158898419421902850150871687835579191631656775370089703754053485295210414242654541012382011858153159653046370647976532354450650548528910561174155835164148082145902639991444219207421301531960207531505697762884252199367234477247671131681149850230956505379938372048169339126794949511523019079755261620680405607122510732553472222254506739158356602947439307894947862191583091352900231058079374592030938386317871866119486731291993577260043742477564047355607726950780362132509955514422122114155843448363114427738872597276372106702022893338286197800677166938800174030442978679614764584797571334158831978610585901747579444031342262463336250050536399762703858024349880118482039319064888462427351662313660945121026872996204802048889726131811117440213005555497455287215475200316352280504921781043695079908836902976752505660698997468365134472594609680218452731136658839936599536027024544784133562453801896435638846595512592298966544319508302699689597904764349689043575688888575496358516784815613385662811165772822848973402694049762600224817691240248188260476393862578914086573693381484616053172329759964782306184613175181492015471050553060496370290500588685900989476744408735693338152313977933687648655249772324653618150880818733204977026170533589331299260328857661034097848772352723573647097304541119684250245479666474937642846430454199161374369151339006395535257200652360552698119545141394706871939548875787267726800258177232390020701366679155910766545383504743406685665229476817339228090301595022345100121994662992279303550108128766418089281757565224577946152541782953828661563391873195071115276931632987281882990504296851556666826995674212086587796242266599775166412996540723493578595526982701414867706880998433437032262668232172889435575507264705876956715625519264028237908199073253179844742276802116741747010542205286717442188108691475730220118447294319411054943832783816291961481022142588957630079806262914171341568460582794416307496101429044218313348960740079379383212430211837825044356684780744059792378078316533345789993724864791021525230432453983635214045878924273971799298842381209724143227417726345375449295646666533743523718202528938815448678290145582243178177257783509358198028976597988055256413893935176736605178334073858072752672938604151772511362639849734779448599954389509153823944248306302018473300980028202492780770904300232088340722520634640471953104738125729850510631833881621901025017604645831439356926994566482968264552847314210503182593893678585425189359340145360921305923662651719579375895254024915130670838387109560569812936444589519454893420588862715363270700145374542426958765640138592661875842608036611603405153443521819906408022625345463213328432617708353450177261976984280254557857024012538077366712213633830676757445943998640088241508794232231866146640535483356030994539279740300855055473005821565273946177172250633332908834182596304526370598011423051308808520995963310491470561113869705732352962793018504763480528568845806452867700336462190722208718667165767640443911869507116774757586976292575137197699578230227860283646927688382186033787880853178927338074412288093187668719086543700650331860388907178597970664234571657047161373680034541992821477039050784745979288193857023863066611997563719101365784762131236598864716973146468792624409209885718004372871363438507788794319525947797929470733036604561088041545755909722668329534294592349388045066057898943559839970531995540384984590981916589652036774479275232418991054049274554979210700246941048458521650814500093299106056811533500317283533060422885066458688255597219459297930228101823106153614934029404837031150936183263704836303061970168439541681892230168890845607545476556777233989317167236337577872679961489611601641599550254209170346814882274065224857997551475746615797649263578994435912333052223677175889726208059127784478766763847963401288508580118768968303731237353316605147003977466747234413900201688891860274070645230542817164723165512978615310346826227700974065602007199164372082054187036299890439203603318032592033422482959087765648085282111875249462101963919539644277671356507024030209841781439036173549731332815071780284350481517144147170647780640228104986205121282330475823868217954698404146697574299268129533270983367032033279565095970762451279573605307513558878644375838528064671042165743368443548332261208674738970064251134990543611257739059465290307851210251224044884424339548729076186352881682135299014971885807109762439860520919152968498338368308374353631331483121429476926916405409392772916422750286695871560540085007732423711080259274676672140478541339288148181464815084666963539403181943087559537969325233321992302514368324827715611553028399999578235980079571635883709622363474242503034584810730437868717343384854860102840759304201032921488550016223748910823912259719254906354323616157428824787829937489956160292491592827178426747753285920829498223937946781956829925119742522287798924013001315902530920092742142698792443052276946248936097205278917721876068410439553117042238383757198254419536396028362003021117796608023068829260547545252254304826937600917056216359394358457621694617771453703070196724798875833022412310099695654594501176442375444027773161468869131013905614337556254898458846658035145766763494493438430746803394007495183208708949494946278004387809632783517553912506704411169001172301079109013590337563114142498079959560898519259592088744734927142451544524712212116169022285725257877491376093730327976985874351343459511480883778038634228992439240277959892520035258517764059315732625566457982462846384653239887844525686699517822863612453074383785125410496081406272581417283608232668953652556648196398671805051821604701669355651303954796684335929828532850336955806044259263289737189718659991783709958555539836226950725905517620584517037924375915861240930264666713303319352267573737643252722706914802237938789154736307888001623525211244112669264697117643716280861247491034107368956310970587304770921113192184403403204008733188583767512473410187567533302576077629873132929901020399443441683063860836192125785627418593913730499260910947607086910335823614132321863657882868539280677118879434122448359570997042057390618386633466220807435818182040282870772004870032188302706132357386596176620502140281140132336787044795126115721764833491605222085625103969196372310348364190022184019170282948463447929915524531467114381427127406900243697721089844571722502429585315098595472313924255319897916659756825393848553640519280210309586073055322930853614154404860781270468974730493289693455201998483099597552228006855925269706167491331906421878593539263215824893559962121518818742013625539874313368435778471886466826785152065983485134524417514048032058993873877615946098258443579226837953057852216455113999472243925218935390070573861320494024597314730258988338704544234202031155939156925966370953035063117290593102680367176020968086030184395732907958656106849433341825368104703482650676682735323234604082279776432344411798844606646372778633153539624884919262221594966767004987733160737633700200105161110510488019046483311162476188328197840083454866647571175845646554209868400025964363057516568197035881672859461108889556858290892552043550196968520058181269301335663216047693874144842989853262037830073016704474967387970825391825257315015978810279816944020471421876014469905967756847675769455273299204022200186075264454647058946206933088519245735163078144809151393409866713299123991821772804908659644371601209481106826673118059463800677350932433188322545145462509788601172195138850787804038750751993474725095666743680737241550527078484113730066082048919159372925131698902383517768060588125592919363644958388799713418178808124502259193636369092597676543177808488653932081807184958860840248221668272606635446171011246234154046445184031341191330101412731972496945019193498041715652815287979956410919244884889554428948469595496849225060175761127705242714465275852672410718819705153386161739909094127078530069714654631936056540731281968709600110171231332377402492197318931413220954664488539166255896355778945303756926305329934262679230963351231655965217818337939969094492981463399426405632832323197746523421327210652766682173077753276211100913211286707658036002494468703411718487685100215667259804597732644815119436130568221986307064069539979657564603111910079423311623534460247391097302500017635905524398249842617132843279110964611593567060287375219618729330592204246374537826104464794598132039690590775419422186615178611396483907701294812598398419330820774811150546288511870011511849049876428537060129795849168526628835753062761061598610274445253953317578766285247408184168417458941360146970002415114353816971495662158103722441972877117451623077901641114773509291596697618841608504232542787425505270886801000287665086795432887042614562128499748838821384393747932970490554792851977778894743217652343834217372691845962265164927930697165637077389792832440761065004137979053390069231222039768309966323225935801951430945676946682173464004894306031175091944420968268480892736944354686206016579664214135342568654175116158776907215987902985253185920974085975522197159029983598524532024935344400859729549706550259980077776818960140847724643868697874794566444949748937505613801965774464817509453340923406526678913788678232369239688871040151257301419003635565009939604921872961526260622810524529660122307271703122298290667337894475732180374339212539719039005287061394359258917502203010323022946029782960861711424342883154726563894509005248995166171112385716056152182044331848932084545956572985366249704860844286543180989148263058489380203665874981753360155912187137495827198136248940787802472933627224029597610861069217281998934377256853879226171683263771880836879646341167543963101586423144930562455528801367970356722376262995263042921477042271039557193413294508528943577256163441230938011137914905179581095678676927236548390140896759116650414044482967899901095653684262063540170855093815955613319585516366925146979127753331292326408676417214885918041224206801660473121012840813953114819280187474385192865543324011398300152049786130913542085614014616213230437746342929024053473513310265639108812191084547606490282583790609844941851681752979710873541685562497037060459517348930207620572897137317477725635668536439067005980538838297254432861547340308762564694524139634186127312809120918386938253363057894741472438621823131704336983576869710924083684597537197933541050598634241082803863368086635833995133074095368995139645398266156189862490989775996551225497057811875557779409354300029787836767226563636814695174084603949994651006958605981880839337478204712552113580988497632537929992885415570768941700392054981477932450036839636401107823556799612375469881741211903876919223589710433651220907173754208640338895106106324075903538270007876124873050879283068922363334160146977931329292703205473142992861119164653703239186361911347508136504262524256669471008738421174521367873522481145140757290666223981894252772311747224587494502479781841222508069663521298993764111322965882332317705849034173834621386137488374729205796097436233647010222767387118874237103562077632726972746228344317407487834154343993716660693757147829789045206162098609069728484849505560390386256035615257769096869141885867838658774306689582243873598392448423592364132390110547892114320096516944860144767107497364580199122354085145953595020434101996204071607231899303265359445269481671356519116845550330151942599932752732521890175036497204290211809282585396387275408855069019679862489187361343196834350502863032431436579987250016952424435053477342706290373700677985944064581784732917895017000824906470842860333666465153407532782732248842839123779886878096024860455470555304266880834301987706317339681550517604029865425256701572190096198357313267862304218419016864278421784862827470456185967995533511515008668868292221687289084790484358915013163522269723724473907826919421588154425103952904776399204170534664291952878322867225021801719192208670558791372576186381722465221157751795604257472167726771990586928876023128647795947596323661290291750127272156175393842029265125456192654000554232754748757790997853141939565093214989295445603594856758873082632080753923071815142960433527336284285473781165157665214882815212789566652106190354628617336389009123565890382415418319844299209948828127092988103397471772271930180604882454844843337874500212874400211169579135485983728017852114623936209175720480276630493540185205577347096346654394886931927701118711246518732859357629697507030466946933510136740754540797674252715412999105620202766630957022525803744966543100538210529662682424576239659080807849783037737054767758796840552597926174938350031114948921853156275905076487537595485457345215463266893311405073845792516305450287540713866382584502463681025061303804716707874850988858655841281003060934099889071301575584965471153418097319694312211924278039741682619358107507050873911150992270321641999320099038228737564911132725904388191854562789184815706713549089119139722601321886913448990829833552269225772825735076153123427265913089316932607985417085455941227357692036473076624377585082228799539596986486691445929748654857194948352939373908961838523051757577141568923402505485420234631700412805984708320582142051389504702979589099417584649176410360563558728725825247043306371633454209644169806312615481344844019328372102272297064583387344600480108313083090408038743453354780657175100106890036001404468967696526377750683302599753157753322088149778467937564764165274932418331635274765134593642561117520684435922524691653089546488154642250747277793247548095329840620836202276657325371538184048319529453041660194722308796029805561726201451541988299972055563928000837874602119279210793684468638300873581515041202534119461189906927580381996067101467576184231165703314675791237891397073284071176218082303695402155592149235514309564520753296460180343634499682078703182382450728583418191466635245159577619207791178275092604707471547542462165181182198955667619141585742086718826748907554788177439559587049194404969259533026720968864132839839335296570754899177587242717556457812278607835468526990989021620307105984010549349920950954125789046599553876695702411452960423288954684910666770333377344144903971774389004374943671709006262144210848893303807510872110355643446566005023516893054825488800585629519801630257495982424848127095540739311590682996021497101172979277934480265507744796205613867005418144879165066390983057501049404063389147311591155147017293367330600736670461523123135851007701927234849478625573856104502967153260189819809225339120379613542159231992464429711538193606139555669207846224100468909166680081521779535289703249228676861036414174771473648768425197301045474648699340546571630671146054136390367597689514732100266351701295565943000100482893106950610468882818369231217479713494839798615300113459333915790866085583699314159032323853319065180957253427380829421816683290461202021190788450023863559499209934955224207741147155256424675509876708116680698910006329756093230949631636522120639803881366508029708813617210971652294073980231740067969165060080243914043474467643296169157098062063238045063334511812237087595503053820643177742038457481525084450644991943319077566394096079924046123053858574976417908985736301326924845320831601248732918314461365824817377484638251059641182321548718310123139556876081888772916785081437246105992964978996247484780791606670246561769505340478948569493026526392917512399806158816644910494384855538142287907674554458583703997135065492503549280583430849490821296627941989780896570454563035447646247261609448748401775244361528002365047400853169814910139591475855015749511235244013381133438863518187885066540338782243068477451003239203593046606363347660678972809598164913984555134853998655426986043339171741929575345300806683259690388309004368832843122068013636324707618441179562784342604354925671074050068229580159291487909347837100837204400006256418717311970543601589561550314687617087324323982886651480974117332582883128134745836147925857756607177540569764460073800390576384310714510457802759564014198292738361369191190221831449682537230770710499851825564984565787807160307138711872647042087338171825025565801440950021290521941537999998192753372230505081285130216520136154913250558869801519378777012438543942763001025570210985215156746955830572494398350173404147002663335773880327283275102997659457927360548840689159419177247155469192059138096643252249912671396339056690274969829818260319422826605807995365405066919658868302430005639065672012305206001835914038982026201311078656187030886545061067110342320795723353785680961195555108369893493020483019820018089133609358054637339693607359584230754181206842581272607201407104697856602670436091012087572991227326676541547452614105963415497750381834487780512647715035685041941532792425393652839058820104960458940697532173339941644065016591552039543947138636854490064705220840348973448521790096747114785304979690230262441770702697591476877839128656268619600721648695423323712134419057142018644026029560120503887458367283064150611736362928815773775030987694112075528617902540219479673257490766127056715421094851958546714945307794354735513002496963544941160911004257320098488785177091828049561662259884980638878603671068919032164793543841033103182569256811417482303388071203272965801943498909694742501113026693405255428037339137359992943680450108367405908424668272121966533645511366565876571398747633364434833486199332732515371006400568963630421831786680707091800714308342529557111760577387893710430102760848047428887617585132197140375803038253418092584776838013765978825991980337408350949300053482534215882353517126590237081506805850810916959398964611917757001222724205858229045208581159820718735325931021730284259994091361251349580575935711222333410616515365478556135874151431876080272623486152822385880955558495742968381297829953296331601584245937754910119940153102796467075159455209188198116053876828945218255000113201778610821832575500072743021279797181239917271773967640955301286803221625383076746976841526976394430594678945340254678655660315552017141740241702791809518938214988129248559777378137382838997599084086817739040611229851878908422326904374394837888228372794980551893336615388665904613100616250983047337857433842963796195210452144755159882607701353666276161447553156302207711342830778758406163048254849748305209319761678161254793307101590003085123237369456248477252281242664209376835272246506943498177222560137311876234970936019725061403873294250246926243526490935932847541471651346428654879161405791199043371609160662976912138603525072501921234753431866164539077737516252990009403350914883596948206058853755663251990721153842657708980180347804839939477432339202506501267557381635428880030715039345697950841557594791538039640377810332503955087708672127728851358744788522461774237786643411372354135360520602211683450271743434611258324621746664496459915716955729715536351809013413245771476243298751162191764381597573533863594007924169211488082574768405264544164585400650952545876469375652317333866457630732035951364923344373564976896903305095549996057823698427945988316187314684245322069827774542960704807071720903619511190235826581404231142616224838429513680495903524244385834153660018430268038022826020534947835897404373395001725944664484308805687965295881090936930999901584308335973071805123409741130576881409525327933690411864476514141478895660356461604735583647239989135935642885660151935792345680132957451645400409018013764455195155391747539960007805768465611339744229853238857188943131692784658576641175911741226950287793802645913041243674908489780874392755162739260922442335398620391344075898294700163020460251242399255394620271578682685307773352721786021662668727879004530899479080194639500783770654745246117842099001361464923728983154434688751555174375949258392334637852412378024944028538833581222471051195237492559036972143252202188484246320290811449433185196738789454011851991625275126310129619952717574360372148425354001268129728748222629490341248657432076910623469202678963710173476987389830588210308105160936552691330921940303109185363029644935036417994364367689659494058736324015793969423442195814449390192022913186154466562176433627053042473324265997515105117668591543164584392407109982625603174355137663295324043646702474143843439137229823279134224854211686444129393954062518976216634989165767304577128487437913468774445254434410029876433679355061006289122553184078947166781165371237038050261429740347041157327994859680502310692411660167743453763408997922360347381505911240115293765077489943605363490999366091188945526332788015747926470916124211149725685722695186796743860531926021695121291623469772362961388125228999220665709775995805442271565810106926188309819586103603438484368830928958735636943250423299540511487367509445530655679340208653787342977041295268909308299172318702168826513295912242130092649458520660772644526936449185391676980709530206002956533349685159320821654814524240159485812358883505012090107702992980226315861677883890524415420250729951809658667402818803164281433432201068385098654995320727962471055918930608543644257659807300020895162288099068434288968309634230731219096731088072964800299828168572582085441554451900254532275612578134156221722738307760889672432222211870219582125389213761578743353850766454434200811784991156323074552904293251689090029361089238482790663028525985463060062354844614392314934523333472369612460157091856955590648829731456390831473270415931777137407915818832200679623235565220083401975049501279891264789194569418581564952837504711910053588233079809267346551654367338845102763754989157223651625015059361238863916082041763900740773032670491118042494709685754470070623185512810516238086950563507947023873941284522404866627656829585651181296270849668000040230407862174293299921966444619235096159156788219180322181936604735356073463584977335067226997900405930963154870868522792112031776298924148252569852502611947002410358952653346428384532276932569426872595180199504610439171454141019877239763550436471734833038977766663754702713686765939601634984212412917398741196832867612852198944611628158686716970748721644140513173284071967554898601371131938475619993717412444410331140683077406013649766362708115842842213591528153330728290202186508509745568748164277317470607395679833614339939324610126003805529898391469379131658070398424089351074120887330686807036991939886881026968624975678963977159646036872328158452726870166331278150330804326419063067099084632387120234061539119901342852009111857272677509789125934555846974052098307289194428477537372101916779220926138735107828414775539138565442991838924873005523902938626089452166439654646815027370085883345241232110738542623928971859687523662225584632459036177632479125095198910511021370308127485633838827937800736030905458914399256801354905240101384895850194170273859155205556232052311995510924169846831610597351057653760928125576674822020971626089066075670778089415817702317137339675574241656113193625440597088853377059285038996175477245009648823306621888804910043424402039591203272157266719173231615147868781135036233434018664475456205473613539453291822810004130137107297939645112967765527838799182050875862542968753901561411385036768149653170376563407957292744381499166926116118043988054646209851003756234350766738682193902570435780640372607772204797893989059305705744824286218232943149073954030504398403340947772345069289299294065795698628629748867033680904886614953587898374191172753525719051728312453996990843844751969963373882159554698510290955050407848820078241469381324073907700038668517966364359752751555382313863566676501040322418427727029812534069430969566161537031565497449164070209815533156817936687007347107154036609039531551582238418324829487140667434772777013113292085050469374522109787865661294781796679085817323741125559412669399672163861509634651122513809353806108271887497065168028209847696486015276952266171496676283612780356381203630274935999969699070652472168172130872416284227677236909000106095078443647435437119605834373051218309306799224005932110932570555332220698228155123688200343471684701199977670213869374197101456015485939334903320856722929228843953584306898212956302952485802063298900306132051183162509577052337938349629970016887459411149653572755550994849832306298603735837784314608587729199536035020275643809188740509799393806472700569569022905601997349977790326144494885117343807512583750568592797835822459886707882827698456947514523678683684269606422975930626652199244099334583267577941425517073639796012559313843360715155332044226533616311302112096417453559501441614154181967242955263657942323240794190466727559536182350224592484686549371172109910978819980471667941405959008721294267720423661468954769938766280002567698548987658114639861632229328432713450676638588630280874019688366215437284773184014584793430434053025299588825730037946143789958988816104732270423697137455554307610946803529206671569313360261704202665044635280329797609318904844867803949505073694714572366698328346355787229404032400393501518514036763550343815313243746988915273715335316232503899815875303410902366111686304969761108587098604764859462052481025555924354497642126595445588508671441098865637106864554677499339985166041152273057196014057707700299479355398192980000680808504305826774668957139104840462730498457755741207182265895721919167627890957574729875067338167565292939474944689046464543649642024111106378521927368945266793033194284301798275433767414570318048229227875298559761856978001459191178567025011984666609363247615047992102872117247680032179629116774375199867528973435761850700735279215148086097009679786778953133290096869920997267210184727937167841807478541075349033081639059702926506308693488411499121418388668006391478384226662198539731504305887524285171937530841270914120841802619050883168625268960338012192415258602031015849707658567896270855302176354375312747612875234510784104906598438203340209178636602312711953099284548520803494618740764098204825834141375074045041314080886473259291205140509089303483033965815854843374751493959375161910584792053323162396087909681388332539200572105517962772561503138371154145309934973040478706035899565913787884354813099289774419935338980209503287548916007869321658944535960988576520748127269816288120316167428923722999984106360716459319956714597679212825334614595461762574588187480371895846891839728707222571267261194835363950321292137517887094866933574271304892572693950076868537509721794460581782719210482555515925973280425807527964863978110419833483923388213981467839862437105249916088748987421603569431206677548848683946924691909321048698751781117454239108250803758369815258691519261541748903509258044146814407387500521815845614738313999036446060521252042113766099945385637294415470454302242032844095903085748986776566222195054166025507552161424804229333707741611606485029598117783248686970972141526905419108705568427620275919200910970856293085039827627576117113945100580248550799649807389270211914696623966417764161627178052129533871959191964485725228255776804881943823721578220380891989148021308765367801716334165258329384164954743744074690183251286838734720048887329336129378463480937978028723392752491947307495253009467650225091484676981767891528486735984789725919728103995115499614108088632573356213987012745718181788824465343462146290306325063009254313345516672210894681132474651459607990108678757216272202037737428238095560479632801490676729956121443919059660952452648175534427033683607359873806779259701765725862000797339842110157609083061841404568396832610917035228516223512375472344553669841874647944656734260362765011982322248542182467697268186181292443727952114351156942357149635165897808264717177837550341020612689135035839090468319287517752508582532405681874911529498076883586837983366211065008272110669989891779510159957760475139371333297686361269242547427231652560602401140248214804418942169182569940025358618338001990091007164501339074343281172315689465891876821938693733281695363097163012370155718667198584048021427771299729942608443560826569642453086764917377776882391909682338386713177204494076137262603527457372610169154517230226348107900955832664092513038561089421025081844772222945983575028431377706742137079959591181172560061988928797533700614154510608291097762437489558999621854703209194842997397636530133529925783158932674608668576879160876437318863101771675498417462736654932450810597055289229318659964926659776599186663277299820973335876840580408428878081832496870743439893181061047647336951764730671092801289278390709432044084330881752761076965090082186707845469868427506673851296582074053097338330491343037715024484542043750777734652138365827857938003037332861385471314463078824746705143448256284797616574830720048093938679820490556627001683925043608576326926129264830361888366050121232031518605082341895693288850059782557317751827346300637689169779917325059741709007223652237048433865466022106216746235056604358138931397077344605737978872489643151790608270417894116818908306077472996521595641564023951765809419347956476374948231013097120396866180961109870662329767269700200125413465885673068065926097847922568539720841569378815037973930503880612458585508987798245161913167932055277231143142798489458563847901139508624144253983273149916351688192750771626251575607577070769258286457167034341402357592429045785530358534747284394133308663885777989219326105789447953886229827807134561755150866204314326143064712289209585453608961398781201959812890724621716182907255660769536145387781441830883667759278199008194496846526930628466978666235245714884095083541438966535678275097187993919860155569392248356018321850755867028873411387233431620628543800742238805718630746087794963551193903041804783000188300562609741301737049583485907983648337553041342513080032371049561610237309364807904418712943133554182595058460150614742147798067922805923533601832287848870843745060037742965725584471312007476638568912477605442561911146370022909434489072461346476113604398732211405729130532529244519329643852550307106317315387853609936280574119961929534147915430011765981556825213358259126269115919823116913765963931828393106600295061303296142289799871573856151996352502721792529115048507502124729117903267919714120139331817410677439474843656866909762400438573476458256778437561055306150695936539892711561968876323180957468671798088205233820923447466840721073559771088845703495472648165710627551474701940891667499768047292744472078893376960582532363859266502002003816302604110436444229359052678715912021340386325459807929157305248779919213291519752957954422347434795654746089330350366089899041740588781001084992116162315189590291904267146420764344854585674032855329972296369719352140065082131213900118742769179346669263358861725842253506574094310904979348947858740295652109767687541914793460078168750411364920644004370548336827570812308779177435605765711069633799634867405831094979491854147375538539228912796035782420992252569287054658028355008196569632625091619022325723333646399709149795134694328366465648034632957670689154432368728356879294470732717423256836383559632991131290200842694500734887874313676329355546790304013261317707699210968988297379808464943959094780190150385232346520626104371154067904635686258261521252685484144301087471867572026358095899104036663440889013041819511966740979557281640693707184687937001951629462140456485388512820785327145913713157229914865141793111861082619422139029700787214425622496193420444945271981540544658585251923545693767136760979100945364184578784782859393799711053143775613219198005448860231593713607310117241162816198138614640719476484018341880648521367216140736648596561217703397481709360845318344689099390557264387984579503026130812589408416779823711732070227972109148612709353049550439390767580216421596521182682079492151304496268826449289067995092144598965001127630113702262190747837715911015853212089030903138983361927956936432179177578690982400890044492259049115458415731988078030406673619295985886860782564491245642712887289972824160307368740660254265835456243105176973490111544120875739695837916874495870120812030908396912176040674382133485633717959772020013322997711587380978876803577642833335551785965262548461027422999404506498030057111601781588099820828197653590639138839373517618127760727347264782950249924855044121689683876968487869706967178556366277898320372432219982705516318883918508801150209476086333317723816766570706918519539000283239073829471247697904079175373499783715688804596381531626460873761379147603770913990540134527026882951307713857641743723556426755181234393777296340909014576027991980247057463077272135236014058867176206450544864721288329935375862114355930633054887475170638696921432961806223244308625018305886413647082462478955966123676709527950364338790891541468623464856607040719809353726424219320547447994618332393991865996182358356480601744606778322188361375329110483061709885491888132389177810058720117668403451800820505225180689891973411053668729127513260070856536439315603335977676996614623345354306492730689653765798436961137114335290957734084810202675092570817177116575746150816727386771819070440664681607015318376923089812412618175477171745107490499748432679353307918091532509365946723059146069241273484107745856179785634768784917933094850033914479707025579498069866153243326674485327273297317140955783514680233591762615961967538975917669533372468599503945633205370829294286342311351945547621929832736765142304013847608280757352221630037683722470577544154019035364449321314954910171078265122900410497110613765027989054007245857291157625594362743119914152576987315162584361807048486403491110136945351624448677806287445771329591882550694503903442305636255108740600665224177454463414848156701717066464366959242216897609952706859747841467027908069904227831207234694173469918089869664441454343747588338947288570260245844717905704335588493079736826764618381887422368728021853683620491734270319655133832784181891178566886419214998078473403307935969148552396941533390237455442091854251128601415086888435892514976878466119156432119981049855333885353869620430655514313110071550289301628436524966446584741035536523614997447260917658863683992628310853922821599803343643659198654011403325181168957363574843709955854402879640434011826777654913715003093653708048770501845253137806672854234061595404334334838538588217323485046125822196904782399448617332935578634537769843516100104519810851397272314461925505404415072501465619007149652411911059412538424659087283086402985845689431864308767778093984946149333679410095988888386078460995727083801384430469651087203334717591090372240092171692663557512046194440191269242500831214127903510629166633129798585746224401580969051614353682599148567725351121984978249481132593995820629025623485010062302901617146101025855705071758836970939134402752642942965471034349322288774688564484208200954170744189079616512393788513469461330314334503859206674565187784315560048154057844498403198143313253915462127977992567241989693533630939500465066027432485276458309968599750256135227535565417621273184129651956935753367852142897847162521714968948425737293109244599435404348325483909311978261329506200087869416581545257750384174384233212650458838404666098424139943135737611571989065933752423971552281831367005226805729875461815096076657914470036362865529322794889087299094730835447496306079618348039338804275518084845082315371943552608364800282416948401781311077857810598056670610947521503954617290983272185936282921453807230110994532655722496098908522758275315546305679271357950387033735831102188821293540556691828539974808590493084576149302570452915710564848064741197597988593281114221553854562097341962522615402392702371241927833389512627947773408951185742574158165906544391864038152502692745185263728446737059262191268992198955397945739416828897852998690544254211257684682364167159131821451820300534894602737014117336411071555221772747075219924419486014015996317287780785354653413079877153618405362574216334072547143925116527388802585284660704873084265041964355575194791793441634958461516983783083536927785766776121260901361944151836246329917418994021415676607169793236454501196400617930032313180786352683805752208819967915173145995302686800459055794662177373279841186234187851522765746854732513525765527354646133372587280201031881174285188951932575745777110746866447497387939477741280441604757950479240893968744937320133942577538415323037093481133168978409189443778286871142530898100817124496419624770851734822206280253066255548123343951250841133960572686439619558475370070463625723115709374100265459025959936648503308790856456347267846633135270011295256232742790556909373102959117465952535645686790522706350480556847428381708680475431731861784571882917543924831112171741993832994741550471942932113763603844562647895532650218564773072893118478919699174581861751242804474144921617180127484920240728354882302715325865833021335939150850451708323482999740403268550272687161370853402021276149113420385665083605810722161740324000700272360624167949429965159036926508697580805729020607602332990556173153532815951289922466178102300008849038984273213284840351725129212386460959758876318702207006335723022930293654393833500731988728386091081335303832622996020548142166815486946024743537847957169078617578542940917642306996540209257617899627371275362192666691048362842171760354026708206633164793216985826043197128451189792239583661491040062807394673703963422939805125055165918253450777856034957632737374040191413275651322409963549025000517097939413502844346101311657854369509889974789706512741968984087802116373893611274690434765197010003767525812788650257280828506552549347809931226015674734897913121587825430127490437559978987255478616678163885526647284003941778493708063354188850452161514324559123745775866219711362918440748614795431841147556423494908244145082740344663642300730738262171841660362411366368468622810959473168160728401863424307481422972443942591434042980323424006266543843239641855301885971554029545632833470538081839699391723897048762184074540500973940582716270612837737545089026465531547212792075541590359271755341853556621041236336447806813116519640964915601510738621746209410575626240211082597063238649159564397428111266710028546020240310575684522997165240824511431173933334633817945341490031200151179213466123009375769873060924405999199684009336928581305699180984752970418660780279513082101519280007767711007461511838676095048240665850773901870043821210461453467988409697318285955272759586489239240715350316934660035659024279788184893018423067780964025288309766626460696646956577659238848108102902754396395075852737777333677520613243236910050665901489417210771849878887795602974776174951207716304081073621576617712681134965837730582715713128771577743440457687668917207467446533611361236104947161354770612482556834995850767434666588084748694613208971728462157929459172233484485877164722306722124032163757101963642246114389971760611218200399131353825805694098891700817447653026647868794008056775973901148494094137396435810990629080760843101343615763087709924327583523661460018703317341061219362584266869021287019705385819411749113720547597637468016620840999236955258126962980877696435369320505083119055635968220724839136303644816955144367556221969049634585252127415627874686682735211667699664780741121490224275238241061338322327882326893537205272102497064515842744985353461986744290833553324636649214761646997871253770690333587517266815127144298744654550336998273756404912815679844320934905172095941550196982419286663172557161728770199566633923940761613207121313800749853499812828515111020357282157637175430091860778718949635443884467678734411730029641508331008004538597852469418745561327671072651828937503082051593112026234990830638290089331422717312921959369968046445524996863003501770850444142278705726231841274519049959245768694353782801073445603366841347358520828715512440454048252689620599102970640709468751458115709602115157375788537917881193764001160611997171532165397258096343344217103616955235589381324638485829865216350502993074438718529053063072464471791631823297458801048863466710988947467897003048556479102082568817459715365163986629163441566535950281236804713348100967512712421202528984530221725307445556532898903167769203339539442291552677363108910946043790244771606635851629045426441613018979337656793182918201437940178552444259306797625382241385744343666250661433869463341055399189884964263037546443458945345393938098489164323050599936666518288632082316733260588100981254306406509881539265153358286309298034133726611798264844430637551453730042974881874114280698601456348785382458707549279818590757337675646998060730828054012033196921994870377143782167909417124590961672810357754002132852400891018427886898020642914286108430608526688186528000674327485686750500197470322851782230604972850723440577446660236207370439780043652846403058297539531511296184898612411112322260894057880933909808476761941390478453801165773003106852159334524334219041391748167283138983194846819203962851032094132441138868690927550197474683210929189068066299520929925023576698948221126016022594491319290454606909345344865074544528755828833680683111222420805181531538844197970081868342257097859656304494386449765039321356872894313266874658667186389905242649586061209604102757244836019117790372181317437540350392290675333774440026337978026195853583546034873960192728142058983303231344151112042689811541752357982376876523482625295182951296123556714701324656492140087786381024761991707372560975802139319893620908189758055994585932362709632409774628040945477300928172227620461848732491710483477640605990484850816777133981285110789927933145232259748763847006112297059298206994938325124635655757906300671895740821992519551973873496780381129033632660647500330492132467899193644834337017876055984378577108831080126354994564340293458222362697067126648954543682629241952310751348136244407541920557943178913511811915921333299202271302704453509368543016411936705073131244174109903658749956174711310456244772698634853756713517261607414093485747274395840080872985382334772568355391993116343695543266606657422659371054291648163416548603172730068206968842029034309613929952517948743237865301011383227784845191693053232703395670168853598575199594306490441895440021005532680839872609098323978461929424709933023898844032526420206341955717483270612659754545934470855750609156589455234698316775778370819153235950406345293876540730092140548209486545214287373470987507316650214071041935205891856455883830553150225059895774084763173168687041188444606373471905099688207040458687971590623687869231203741640158743557582044994714386995608640051105414946520282968295605992570197553466554576949528088077150322847321035804986419387901547919203872714231393859667333249228027631852038204478249279571808861221479564037944563918176332890574837501706440830667637453161386534920835668819650342542332008932801255039341043083646244350194180652324372129587305393242228871752211699022121613013274817576260665729729028284648887543659054527990589898045035898851439875527992773046752549054188098757535660782644115609220314572237281899755373410490889513372765562558288474478726045817567781784903198446587489515963245929187975910038882586780963327429382741428485203627082877151526512480875364031515416481565104991033219836631360691401642068742425315243364836338376202951297632813972325155131216459989190357554836884123430442648507397218310742141159819195982118846445767954627461751622189408241297062495765483465039204916159549194456362517575267150532873983126224121922901679078971513616307114157121006435970001797263058326181030597777828658172045301031235568201997588587380954084104807993852710046420564421923392318467418882029899074889285982945960674446551482615833573589190356253533084828418413151569666831961256753281999595625019600175013656409564405753754745693137880655554994072216985937548518472322126726155869199535844694316583021727115039702101909119432170323251410310717055224762327473104933599835184402366210558009002702657161215758235289476672185273981291173891715833761272060039566295261308375901268092596817853119563914811636334167201493340492468523139250669471360354229349587030900560478047862760701494217421083746079711074388190449018518584685469072825573151598695968269703562473762809255386467414104101504495501114393214093854019930162225768194592770969973233546026322023636024850613640809149526111245323333862571929960503385420172337379702255137439383377612650973283389317532372469521442050041050621042681674438949122474832594673415046691264040538685342394233897855784261971498762004343963368971206921318941178591168377930508913808397697203272369228276131425011302554686010127043209592310963212057930475901404447787758829770684659884836725570851215182485929071397284110988965500188277624350852888575154334454055486126606925985275330279620681812495972122628830845384995051723110899249352892077795417275111541261414938327776956784208442489481933968510403885153931011733902432475679801286054431410839174271191180322498975166765965699216821745778513584708509037533420867765292534815007352180361393940588549229101283092121075590225469314296426190352844149051060362037268748007114663904645367664101789652910651711419797438302995039919956663086631190215317434934860509974068917828904840573349937445094293422673566655059584165616791079678943699786519133972578638375036329433435649219913362304744081212602586547678489277109580083362522154011914300409884167362340268116652837321203097860534366872799772510342361648224109164639665857180715005892593222746299456998035171344456308832339063508556593749298594455538066612382038757553454460720746132914240462901765059657889923356391797757726201156396430410168376270238841526793586358171042274979849090995690173954797397740849782865337498062793013231741575112929537837842339013717828828738905054778216667521521341360289262859571035733617195591909383315360608732726484970257276181195404008694210469175538964631964503798948283360386203952292920548517716058162655907402067986903191150285489076855980862643179021450181004593173699451304843952974751142511605053639534474719137921208348127218550237107240290636153337943675770916412645933350549027745240234155324015465224178470896982719063495879764635543538363459610068555068717505377168727585802014665063784388878828162034943191950932710497583167198285579038041707932284977673297551962701579732256281735344287693382535649530811825777230328797871636002101880481324337101791825348574275098320510648802155091417080936583121320925917810159842942578899366231253750773187806271723884471127028551749780372857408874152519773171767230867217679405713611003573614498240786244056519491167001774086843455773296534341040191266392275584038797258560968193011598387253202945511155245758219462341630410193069805630602731029669694310764617695575691292486170795729202829297404115640973274150408815868672299063683854047939713935564634871209831747476811519218716265218416423929240523666597013899087084431335807034933757367804984373842199837167656785407438226894697964407318777382597720473869159863439978853083219760801668898669576854078047458199074215750172527701471100237878457928947121632885088205811001404421549160365348160832768796593010870740197697269222237324475865556426133698168880038725415881967857384918163033776363936491526333893152921590221359806213956535401365021171692148490906761278377914315787946633454739167309287753483069234934759148799599055860040478741741480805137742901976307630798097553422153309019973056208754142863844869747293009371915352002884847494702887075815990904817196194096315295746347792363456155644077939003930697470472857455173779116091291232352956986520405706281206122376464634507371954232709110953153540501063190267634605463917651463518036724409628063179752788190396828095598075214048783644652893887873038498323180342521084676662897987245407250778381353872355009047383022527774157573801164451249777606898418825933923840140110705171342916561417475266029281658500580033099782012342959776791701238164665054123453434191483807427667905017530753300791948039839394641241331642366840892054863902648062187564570788762826065641821218582695812695399353035362557881337809832699437645435043273775584588771382920805097419519899272032318983485581839099913508322376387376299549784495028476336330784419790549309768391771261715135565868730241472572188460820323335541686231033132575300545549252575931432107441677209373051706705753910706060045918383738402453778076824545799072438158130391908860179088486847511615613614344769680353094221396728121258191690093513514369682658753886499372593598608974252667063102534920142425678701912663987161361226765108487775584230210353390028529834562414553635063131266988554066996076906023221487558828445462012791852951316747067431419311361453147857799577655453335966989431736869794740719719465431978458948590423475924297944630398201286311183593660111943382645472340310190458129835704224334151502534503497173343870790798195110413061630551948886547079461258160516534113055689228627912795163978336903636775162306554087939422740544523575844819515017006450733870923526134529806319448934343226090311353308163347449618153356435483782911087901603639674407866984722497429096566825889225086386058267165412620697652536662072823092247701219576115487906016720223333464905174174462525809724368316518113000023508677640500917554131268372070572484001883994966248769458200824543512845998040100121306193278193413281895664469055002369261665189838086087784815534065634763181147631436094828029600396403065453903072029545882003966234793067593090380518435480586570526482322533925592661344029633848388305259179817146564819874724304535873534326383772171651402140736804278081895781681434657920953162154837708236096837017923673955735282121990839291691786162174554054184721775159910213717341209186037699030298852674526646976631691424430996973497374532724766358896215235399966981666748261302289649537672899489633734194890410103450579456301615439781020661251289105326351231624158260704770009514960716667883038759402476335443387670212734173686052366618793533772545377091624173678790636545356180917010089303390963507014308175472928013362119171723162537694646594324474474738624845989487897116421114471267456797181664503934217477428020283990939537175067113531515240546258738099091680306908679962870877810752865641152371737117127204013419801792426522532092963355042189276663093628288276982570263525090676700870502425286067416439010530151260532155763971543646043420716201765055446495754516321141919981606905801023638170369388166497655886050403838779022099940138836275087837481386642780954966628295955741763473096724030835837644523300056530808687855876211203162137886461942110756169096313754665205369533768887678237442556739813708739000484043653469216201988233722921553284371463124515193581991378742824863412617908020405248631680428211531684187822752899151616080042220521825867034962214162551752088306523152310572090311004770121490289898654062138225361211213851740022113477773260332362963837229190067264023939704134083470517782268998007795126367659903527203822285945283697384773261093094874377059564540578717935688224896904162334400362861168572888160444256658292216840732660858557517213585651499486116985566020209510067400443148426185235449992767077343166846506931649994678537441862261846036609634945814126665214202130019325276173594029661095859585754475085279315784929362669186630478469353302685862236026805573694195710550178525473617893848703620155782209382114821037540380809690514967418688683148007698542035847486610051284029848317823321074741816894286831698524912611522789367604365853212659439479033757742466979365750146035720726424238988070103879072575812493371674413702256658653245847403051105117142158246160900925254166688295759504961224747661826320148253510240851230055784599743068645650979130192264903844463399312278614312203002287556830885226173851250359613018669246204272910591636225309919002170364812068718180540520129188048075390567271696408886295031698238562000947254062947939668025580854836382843269349558738675523643383653235078266336737931891487889458443195648407665597067860636478069679352736993964865239600999094124212683493138744805116595452160612195987248743607609739742182053667276671994041078500946296471636550428899353332135934146092598244284673886424535209004930455381074860018490258565134008733254517026733121387698867662624897574379853130812013218582014465832750102522648385295538357014214438118467938156138443716222077683078348669378290075689570697051458138408792499805272420821684633567108768671704392320237560610078318253818200335680771873306845270387703145563716586082743267340324577988044481270868562856227914906132223929474347064819144010697734582664454754901379954353117887203972661941517358571924455113325005092807867387458897427442817296110551169610809655876967937099786690545209875589262940509032391473432386602982905689403172104218909964021031951687308524042308722908179291289093893580733152620652386433047663475931403421688003251134891413239409614394891886478986429667446298949442885894107961286681101699423125188084449998341674634369174292231957863162853777418467737788094152986592811054206393755939966558874814005032452446115630414955439530702226203752993271253217447077501118869047714597899880747936905239399985384581138994152000751300912142765331534641155149380660884277650054043180918081904660967292069005404981750377703756278061305964636865062317173677138168971532430584909644171634522106083654712677686242282929731753580533113703372123212660380537641664116509419692231209449620140761780933743007822435669538495405947656652643201811818024533960008874851436838731372077812088714355788131497748357751649934554248700424896993377704948072828257256509536577596869756632483978565370884531543705528132621007467784983216942722246970041615933956865013345499123626131135082729132551427046506098743049101124959864012611318445518044353767905298795982419005362508620162755573104781531001207792335790628451860465429264467835326813416039823512783088242133933723579046271809091373227655481498377418800906389746699239606687141733093555557153147475978030774162634222855425536766133519077865839341439242545648964609732604037908091059194212352868656282573462165970542892324174452531012383454687244352899233659190617687975887665805174219963041909764074022161191004147706066919406026474405507868698985764696012618453332467741642118537846450174606235987813930464494884280651275450208544935990931529575022521811108253589477110355098747410630598476235130434048758377660307633214734791730789118102462118764359092975757313892516694038055382628003975833014620405554202168051984514669722545188581734116395379722209257667632104222347746500833909794611583629434861104309655662346149748638941306130833728963234800725769867418962164925624735022342298884327572481516224959787668091313811201991737268582152762546696662583083043382715929567440150828881872262602816608136039305625888168855535707410569790513378442253340180825079550262385707662165243335065038710654895221395290649698643406791721178959443672035623678377341523927776921409081815824013544324251063921065726093601712354828375048929089431898504054084732367047865629889045180595697638496898384229438928104553947702724923079033685044006830040357795824184206751797378716050393481421388008491984787436000348477863391041061716991546703825994107070986868757136295463302046646543095179638170500892592917329433348181841177058580704375378893918783693026746329008027345077146206711357835546421682356781174622674510577748268464728983560753574571806057810259014082430547214634856616619206128949598741027104029992987394988170337671265350595513153905112079471355515828995377051354631557821709088222752632710360307974920807175881523182339348972743285620938366772118886881744557932363107474118031741256814536513714646295311169264542058404869728716993367922745826219129667197640525165544747112194144213338604383375764734912274661603816018510739779657608917755461338199953579714436674389102233864495004434717773342054705318177435787421374591462893655010154059015230761158094460465082720284354079308761929568828912460384336833110361246654961265726554776414228433829375864300704129866046500202879582989568059455172591489079232007164197767429635487394669856191001118232050175219357505523763172504841702852317312916316793463837925210466656292026520168756656328517931241273641872215569921977610492170011417074547037056055183347041137359919132032052153933071182009383366243452449751717311847268795626206422766608473001798161247735647862277390949407028431059769471803543645618387981659829843061152224722815553743413811996183508807978160202611327563659072130226234242380266994402402606608618370409785695269798622858314357169377983778202628819499895038457418713421140065268378687822010192338252253825039535485872678378985815730124535203640897820462009343993218426311598043920823499991136204797844997562110756670460730544445609632303488046609581713361754261384850515565555726207457022974164889752986128568628213385362314846690444508758929906824766211984185299768120476471929838762569656198529864334536713782449345288338896919095208712191266113021141352060252224838674167836684050541485736775149943742188901311637604494623370128460410009262551479547355191690168763774956701592185746073587147853627349042867140915429853335179159519904920233990858193675722219436958207004900926259466391486507635903018580170260654872312566398716763935812815637074994782285797035767864066339211505861942903150452606721848901324991272620614998958145808904561507867718017653762737656831132564099334822935179728523043901686864306460294976181435491973210636430615875502378337548762599839702009500745995500181604354347713518117992705418431026523242209921291003643949886736474941697880345760733172884249410378356120406863849950741144001284728998355154610028481821592229788007930323516236326573320205957408554497221815517277409765567590975376919692562786900664886855133016597032496701485889136845610422463682828071456705431475872338700121993899362765415139403472939836373888317882843149235431769272269590402611594838442461150405398129394774123922866253160677906945031155271269541288599213576149876533853853035945174253058615184155902817678661694689459156409481524556525655524474717432920893899576492094372025514207580668637081136888005473836449420617854640078996587810945998441821599063964586898846183856013412672008743952905578976389973509949831393480375276777329608031840199118885335900938447254470233206895089596684961739635970325204440762541144543857568852604157038755171721741748117379901907931541925914237459895870382003053729458853001660833482155790454356837723842094113260049904244845252777586289322537493864840500401132543201668426206986169768273989530747244499419534383104812901741160542610136225972666002003226917879662840495343645880539708773782202137188175678761680267261648044688237603407948384386115322881032858705839743681603235369066716333177597950333061041720447171816562722483403590942750193165978727153552735246289329108999399703126314313637173609973145594804847366399043240557571206259420161261963093125858249763796493831966894041353193011039364823636450539237169454170798062921276348502372528900398709948276343112568995755218763689640515852533185879796668760952729932967621132799421207398740429986765123548575900902270587705429879447906404145153452569072547725660095811593250866009463292238861325012960153740651730178850488312998790971488939501524136252895840919569780589562981912100062387929052413654475614018319895936691123011512868902600215051547653687821147139285629009123304231703962324890504626304796524028617105427430243796896718268251613100309919745590859888466010047506163597412151885962928654968573274196170116491627054819083129217898636915689378916749563346215709921631420101389375343181645714296590777079479802282907182239086903901353663003218337416534735837500201653480035257600661852589453925246560798485125676350399758395329469977104361548100943961588936169255981020484204688202910417746418419534301980705476014130127629546945856534418649664962190208765679960348174572891727899399893087445089133339461717810545270425872606052778394017684821578450022010083092091916888915447099708150560172031263817633660727090417742158985733475104916860420039759126736808286549913893217258597816859941272347230819857026131544596107827539426272977058723826317703354470001056266607845458817944354385438259516567930483504076544918836968916579432989398661125839359373693927746365970300987170890835576941777507815966571345087023114313936754399006264415080709668673444272865648304450846545293721253242325567944650322209396047642321321517999637889784492251602300930592561151605348063990440334464135671045500075099192274774983844712405761672901466193976212003552514725581118442847349030086642056876472999389714842508136174383629237314001841272478771916350838862677850843472419554718987469058525494656468079949687231956707018779806087732743283349194465608553261016173132905806474615816737711693186255213063916783367264738096842070021364325950473066236647788931304832659151285917062958685966392620802178677026664404405368507455704286852391527088261808293363985936261315374108803802180128989567810504769827169229092478563048677335357853063886386447783281042975103504827779800327495180856191163868628510158617646969953848862421706000409639488239889484305116339627058192151197372818317094561275039832471177726326000415332433385355257594051137431165885938332878234678237026834603993467958655874638899909040254441316113787817113814554790675241099772999925845314824486945791405898321791543089707877075008669830929232207622724728530894743934689734341869957969567439870003808510929755832142939677672273791188434925520604215007540965347759387743216069218491318508767232585384040332524455989623021402116995624245936786908318335183313178873454878038312493431748869911087971847438951126139264069677130501875223489678431468299216734665818919815314038313454431568110874779892098741486415459958873930952147329886864434042653108740856576241570673616939595019141358086612273319882485345519132547905769520110873037137075955548944416719448275474454774532312046797699947966429502816232731885114361800638644285040409824919355220379697404703953287394930562739168889960960648607004796145894549312008549817710987015634084926631114184155473687510895618492995769267330708160273154910789624277171986663136484786645969689253832898109845778994469184951263736247631647600264828177549888481325240171728528367655489730042828371678904778223422029273510513812131915556748533452415113471746990364205882973247158156205841469930109029525345308584119028962235762028374736923116959905877911540464380457581736115951957291020412834071881104361844181243096753237757720149874059311658749688607667577795903785725032050948407900109028783297943617431279352815292395720695322564226077269871690997965515822942408350567025052611477908676427116783155246926905988395271389096734938347310974037726994288048813041827145495605988411378293816765497468743733267738064726870769922701217270042343380039199768649216641556727847089173957630882272365811728517482997308985301502475512009328653928846521131286108260057518705924849608668384723690195389529777361925481370789901893834517351867274513938547133617779894751753225733903987652393675152930257610375974227454734257289740303817049789383014908485309818653839133579761917574353413291818329681165636739281760802611705910295087315961120702981630798907695063287167655029890248457509304167663806236332007417707862642354625435927524579163826985272620420372397605666671803347445599610413593385415542174912405529590003216590967368486809027277875000843862816321686723017609258920134779213916411189777368875222123125965446062650589270684490427602913266674754203874271059496327548536710356818171220050618196594215008777113462197443260469075102327626092682594925452781118422134461944343309035562898781068881108809159799871158254656607141626422840931157181989768473402926726920006140505567989950592878512943332380486517700076921364858271557288311810127660733520193670443622089976481028346410902678578254432334308025220558262273067898745954603439733769825386758532288217832551347913117214781836828142388206862378657867705311891719578339273051339883940995941642711877565440836772375694688056677325050433963129005567070400829169567530161468157579979057012635808832986223502014069924839913269456773030063443286843492750482327605537810437609202779540738475735902793332788671908850613239138380944925663104606031316591739716455059909369809830638157547883308429240592057046790219520533126106805288793273279815095051084323017977483590447779511228039490271905350786777155194162492155505767025117331155453562911029900684473824249259516307495199524399906515114500385273755742789064679954089402096826568282960075124454877569431724325237057870668983794093347242960469902939637999845209747566843251157004948340840076958314174068975810989925705241510899648005925767733930934121431790918197889088818669355431314594441148643658946325276168977516387290409733188375732344497200168067273734161931414630427806456629040408215189978624200026097986775006906909519084022830474890726476614563126780775133789168974846589448942618020698478561130613622925022111288959550129592396719281306460761530734662507760995104865335715918048036633903290591318038726792428101778054521666930296838588305292901158215491309485256831186619427919136511341257701066147548191101100552948027176862557801998681064322438022273147534908107927826157429732607451400332862301196936628878902692718777118181257691254762524920525057576610370734351628699918601465754174014077971074748876551204397505896694459373753842611527169594811720261446981682524929126133036712648987445001405665664413721772597972676649309318657302695158479207016110365850013664963307107891162176667423334537780271895943103160496373393563974536461240337108951694002133199569915126087603014694550953929670634596238231135193082554964588706646411550960537280634359472368773428547157404687377638212221234519794735694263827288411576508813653364156850507776410186723996195996719359635620810322767818658682969325252257890486134621680938595682684828107371138125534299139801733718611032797091389097739578789676468462203077197036177297381332573869513865695626586317074093511195408667803866667114687581472295250020846032700717030856923308525283222358504068680634516962270923919202580593290662113738503276820438823219993288090288971104430916337418851240641735851665010467210510308391843206905115666720291575957948675911485024757732221621192685039020321249196345011548281328667011352660714025985170332875742586591366012373106771834678870825041231239732637181869201082605339168280287165000476758880539640185964166881136318967275589490421928581185482695225084350180040902485498354390879028177071543609847528844756007258658683278704577498899387641791761760368171225193952429987103934687140576201712413526103421447375696067760233700432908291386914768604755841514612149163935844589301892717123817726173614944534255343918615686169310092265373013015002944645253035651305663479462228643009444526939887642308476815002838219573661652006177293296052555914544768302732968583071084041507659138143736057368389655154591408332998076025876512390203449540134347786932848276242675342381700480456961131004913017362402579641411645211392803897445758630456217364024272928792057794466463804589770995404065005403372714356904607195583702405171315156469333952228045893912041787411890741033167339796517306166968202886267848780218758235119056000105011979803699425190320872370694881092256567169819980043522998029287416127770330553166034304126430253875813817479066873191019409002747455132883117457200820855115534956739849440915387436626228336584934935153526917267597775743953348005193996667980822693382152304966285644146615309721012006495790997128430763190211496735573692086443982098911646527454318972227736188397763652625795983519224037048749328269645269378477968350752439507494504794034010230211024764883075241530357006989919703970096222438345008830557204254665517908566900456240286653987282078529716539584933059861093307203598499036270061556003200229156455019552342796570171366666432723595247328954762269864372945558397392293417017820522648432638951034938673518303547215528714263824062861737813753360299304647550863740999936620831077820414269338064785984402066329237764562227868815406217171692371797494840492982607460970677869849657929076146680726516587557230915221971077700576677827686800677940016551386549818806583091712874043933247769515841872711620734311523668418259587140887498464408255285271083645416219412818740088228939126591867380328913037098662022225763294810705585884486178735600160961972083193132839438223455240963544958659425956662752003509931306216323151311965720782821825565170595832844534980549571652097389979245599041855205784380587778902467240212322099712009757785746175790113788352407598652086401687578355121630995708350955240643186626207903497847377432116599041985634239650184011828948179781846098944314060050446839639119357438807827169610105108732791531943183087009513019956213464465822385174673592050177952666142617605762853798428637980194704833198547217483033040998066015913333443778392562671037826639728503165554073847965178416874026258065093186161964104940026235646675718489604911670599265973645978353482325081172501607882800264255352528234552906827505297283482855112849850737803074797108151482656705620480087816710524051445497554819682481385037075397915563574504621808247663876252175457792830617687847664725346873553489411749812333019622892228840577398435003357915878184149183212136693595291441098933238940719744637710810010828894173171624884979825523832447189378124075977314895359736291421303582481959556171221842563902900318797330341567651435410338591123169338236629989452726650908108230870137813398714460729674686591855259942309448096086311485125220529115362025300558954635680573602751693684299465240032742887211875562868086805962455972990763587633657024477036446661170652376692869653903822585833508887330892903070568159682601710047475964272013586692019299472911239454815829685625799963278123223640748578948533548234549703402210833266828274815803957757224828506880948122324333579434820393871342244275734357741230511809156596336956489922409089701978070285757806130100664276497290290771394166777175711942347745174701023527189755831921636269012093119447562180419809760945559784951748262759907838149494666669146738742148723787271584580861307867468150687375691542999448046939465858576893353559009428643279946127141606453326165628494238337618546684037829275672786269681285859787629018119921810641273884459057015493769203544700406699501859001854146117834350439435525667755148058760692148013396198694308720385002598974575442707869106237960507292076215203392812812907995602464874051654005085298400505730729962880657824614125121879720148289968972152443871788330601581786450264810438148556149727415129951122370461650948568935897406816704874382011929351191459839715504138159455338703459937581787355267261630604530558813058448837488828841619376850199618222798354890137401529446501879676411953555612532364603209240510854353113375600303806518764075387345579773211956175480178098925335611017433831558176964795933115230595874844705690274410970019290180799992880938855908783136488281317365980122646975876960472373158464468293940514685929420231576472028120704255650489981831093085638009418093276651030523915593041960334908133040629488891325616408603368926432293946658724737146901352825243280543794289871497353575517841075488915772219317934474651039078739497038526384491517882071896736001063185427145662986115352030995525760655891472187797459778647566154093962553996827296688952450604331322276618574746220101409841767747300195663747681516074021585729112420071894152095716881553759847596641782563671014635581616815132153943138130812550221255318093013695816448210128968853444927566887013602709260671110123531015842964818246202710420282421486167885534305128932368913704971880126961914830844852002293063457495932767178045640444797912905071192941528985434797703970124458703973241216714169905851091862351940865952976018878945902516109276202499544930614338499906651096170412576661268746445153270367720663093656949069674754963513533344423235532640113889758105838783045353092861068065777966839482386897530481051614619590605194146034236296756429101214094051909639353008941621646324761001848618955964510384967611820298257866890495722093227712059318083957460150000523570849318704083148172776237813064978024086850233971358152701839107432330930299434791154832727328083901705839013793560810847036716857941835474066917705389837341336200257455669533112375887737169319576728343551468663397466132242459575204657578327247436112778384713270257812244241590118851578223522502222294903042082117703189199429134836092327008158065527270397919508388160914307231307637438073326428449472042507772959760398796170759748566268827444356870502021112414044603982665201174709233114786758361711639514105141188080429925056321014475078276840599397061467367640746723212416978816821194596861919077748624460740254252641922891095724874127230050309268984723663310429601299750399843691509717790489129837836251629176549294653717839943082173621431062368149407620412049284104604364470549169894578004034865014928264885107089983484254915035085605917686434744207078516208302869020406042271637747669551189966978173418565567837176370575290388092207109613380231514534718067057693554896636566423446334468090478968460175839332988047372048295328722929301381443901364750414168294611654680473128792364799726352228971668783098978925918233476257020701542975429207770408048154114869073713779573097586669797886732188906119083872457101088707529328557355361590323765067165145061512351528355473268304315363337007211506065357757779256511003556263521821301267812231148673234297248753031922979057024112615221588303742426825871042071476665368596056649939104238855986159562659442671634958260854111112245691886763836851027477088168629707692152497336344169309762250402380241560250183869529987824700919145683004201794711231806361985690298515430316466933917508581008779317224722664289308923473215393411003459531470797593459693102007430122295500498797925940608753725837694893884373093401541955485227311809954778663948152399302275113866478112100009455696161516873649244796875821588846761886649284106519516928783458820882732969876404821423802409846666827053075796048744657725971617460987926765617970917855704869923935827505120318784462305453160065022305972586343417818722489372252656544992429259273596649380355863937054434761648234503769864057194769595449920085250433718015998945383578779880557522508372019341679255033952632413345668228552170955878523161174807068678953585120569889763952646150968311586451355571146526384336128067575848788508104031265464593668324207865671245022451221456706885829149905928819298028138075444963272860207378543308522041101800241163941488736214960182571195930882529177749790035268566404586566749075901253319644471760106408814841181757200779645354358308609206876467459467340624304348679092281925209017283674904981122791443268479268854843245659934298859018000421589233361454684315274683651477029957831865326615205092419114560560291887045593416658222126473883613612495054832180145422777701083837285260830986444684144499339919092071600652199169039092216442385314269451790574943282386560549254989766816305691365013077954800467908536952924970697116533150007204581218092914649376476121525966717016097189480011146011173921048935394108637627970573064656636160563047007344616954892410955149929007280136764924992280745689841564343264848478613057226399020861864102699799978757917841189390476148011439977119656994926229492011614680257590966042016546266647315470087174841627540722788690960696656896472969835887872475812801201655196711302423677552628357945899546856483982210534304207140154391060843520409758090814150941790985649935206031873890940154198026327143396860719077645974406697350752552560773484107782106646458971691997085388021810571067851728213326977523853557352864033098475286209863427928126024249448833757213967554039651575930941361184841733378538949859758221280994966175157682258389603645575044507111600817139485594031280297457858543277930876554349083491112410040955318554372184182318155740673847239518007390221698161051869758842746434502579958437519356308181179226801770254279577574732210290791995655183163037001790410453346539267361776843388779594938794343525127534147057737003712233123272048482230194627880820505600193301834832630080598965773063799009501596883733243021834087006868861433230807795248103300136088111284131837027971236971571302629948959069359008435885359061500953151743495014646121646977812445781304847185701693066322512607176970975241677967504944978787851639101641464307436810764393955791432589309361494119577707932807140086366913018984603697159204182139999280352800140236976393466953036867581220919805940658902783662082947910387336790478992554009698738553458779598490613164807271323321479017418025935802904971226624760616628707826682966729937948199318668330914089895642619720311976687698258264390633147236332083416281869202578309078714256668191833784853363950165705003072229753143054591318341029898084204034033949019155787762291943155531108711855463648453891295928643597747812486987872506811421063536122542491522765179795203667400691052974597076050858639843006014617286883239110141880771253418691039385098908439685181874661102649983681078502987609495899260513223441044321568351995137008847709100068457444860354544703651417780904939344022933265109976573630641257109454421751561873540537400105748817766796145008467003708000324368785180141488342931529273862242433088221035424371386872394507331905133923353439799394711699378570519361068343969438303951538028217978604499474113708166567326289356407847071178598659326133865261027292186527443922819971045824952504511450290307986125217790250376515956351320912330777443088784856733094591782351120636564794056975188591027981049567493818272405474839439864648167059805962149065108289385200824276262749344650870351803739731533986150845524368760703827786061579304590414304758304631356272946308749466327070748789845484471951899890699864454515272897619776479681800735899235182536422493477282361404626408615452839596101386634092196524550160446573011841868230378892856410196204907212361736518693955866721957203892869076171088204461416711137148304340231462342144153539399532467782177916840821269571605868375956673507988486060035350766481747698566472503974119588739802370527585703449729713736981094678896986704629938030058461607921821169172211388192841197562515403491397360709412099450717003214489278484427433377682983748514485638080547456217947147385513202332027864334898443897845078341415668521454686962035839726326017554346655582839250642946143096252867535472357921282188990620833096848460712121659072472924359790862631905102367263652865807885756112075578994822592544995800876560218898337713590315962122951241952181118598211645466480880763355265306367678312721370812850063065176853224096189904388313151353867450130993621987659763341965033788490940070527200854427641857222356208784468381456791325118073043039702743922836317878089411875454107504209230152532094187496097392504607927863423087650215809068435441086062685757509326700807065381296939239188537446693582151727806444194760142998603473339363915805997949384194124205890890463199410486208674824516496397493477775263400134028192837253149262313144417270177735659829270697943759332770977647835531839123331669426514870658919576612436985714226967951238904990659185698752777317725299870623283732928286911356599496966438593490168661440997960820577788350426082437038257721248776464613765954301304071417668193877802825691590392891183642549757556056952362519997889100214217091720217613260563117208344676088677153938700460389294133732167983036554096918993999937884180532016551125684714082468154227462907733983876444193521848254767320410031978897218012787945322316103863226819652886995523408851885127089232936173208969070792547462092978158704736978599177383829857315855583785097254262428277709201602653318929024535190301493332293824358436593921804943197158353633106143896785095856527109415922870391777909876523288833213951476436290331935469884560537605408448587236092452496804623373165689062926284983938402254909106341297502889026921395922175436611116623643542304677538640417715361117561796936581633759704099740886247094068398239791859053395177089335895720668277554498128504167842806388477183833186225880553855925797286099492970305995799674014752963525857600754962833851908183738469801937650361617835472442442791354015076752844633888230284357468846635204532292935622742989720703956682734671647837534382285599752522678551530627581994105603945422443947107026650079380836211042113627450086736022725501797061616551812131723929530330434064050190088285721210501009450753814196929167697272385142172103168455848997192457575215776780403478238802482577334991284060939897218766619377667776155177000242548206892180512783471297023229522225808153172858903738513692689324500057355730089844365396085163062238457355138339838323962827189165680168586079902533293872677973360345316281123825190981301449150720790217018108843664096206424063509923587637041159334387530955383494222245601671986048935329207251656662255743736343981707660558350319178665644985566565099107365193157528457832421931481442591172659003017958941552883381018583902334822449708507193781593661149282621437889738501289719169889039109624434298438572116914134370282537901284180309690945466113188067131777918942246797557840590230587434286760397028615193095417096033673129498399486636777786934484737408061635916676601959944557073858794288144171284577157692274943986360438504489155982190908354779426537496586112049113000833745264940428121374589810593835382933528539003480879597833496571729432563329305642219099724097442970598881301539774524969448349315091696604901759703774295449670807913762835114083740732590366501487178678069863816556995978896464526667079625125185360584686769484537818152081195986576623961598528264141798278417865464777861158379846680334213909138190858344037477790842788299961551136689776430282877388037177434494829415232043691821320633826633133765035213156186914107220571072055396176171877696842214146374778484413409471046012323495294574525943715785096937461344686598032705625505895519171245225639781929350678190273356595442081915796891187055047804077589807803422481938777720571472775378029533231106104327629232607388841240877983833980647237391200986785123053598250046759679540167100811061657428876911543340345428767678962972349299188295005924118820277247050330188714065491473291864405378657463979792207766673481593839237421800884413755995659082982709774916813866321485255703151245587992623662153360609080451876789749517689612825163983918376289108054357254486212506902819806879797182279252375975777356091753420269893452013947089950169522472979095142966504730269593765460598243605042242693825018207254373852830908749011485044091855511288624889406783356053385478031130623512900268319391486644692683574733720930919793625524053445551381389639326356448605240370317974816058087727009123313012309545729730223605194594947787377135280946048465908267824506434989416259075812620228940232996753508046689626655020624290644076729577537730406557539898649972425687515500250739444387342996189742795053600416452110353946008282971552950303697224995627286541184226571370918460469352638622813027464981250252481129973334507522923129574098381514604963818075401950265366761591813247366406482019933975391596889589707896811539233708144540575775496983808179053511508814384882267325839627921215570702830731285906895627624340391476997461278504138292052810557960722900688249743978001824364250425876416979794058249667423037234268010853681979525082619482759407624593131216648803518036165677470416554927655430511135507158674635479393460785801623988703387662094231996146727804223184911659395700396031438095951370651387570906517179541958554699480847444456690155869947015585661431724751332946722566157974175350443644098521193753044048624689644118199813107351214125898370465068817308670144101035882153004190139654592036639399664577532231632836236451473716639361352885209537229876777816440841674870187046063838668589605103207356705701089324176562913394102981931978712123544982051024706852789415585565785309339886836013020900027421061984419488539449085406581876927077056024688767709525767855466907627399365981898975550523539233702231258101073490035012644653624031578297462551358388164944536241800522410021157041625087306986867852377193728836992276513618679975013406632905869759208609532384967356666779870683597642932578089719915980208090075513055608068612764139602850635936372846372682978756484098735141717971253385235957299854276913365959509630483306251497054172806636608778638389121190497498814644029601460032070558240340643382345211206031370355904610158714017536608748374091911943142000238499800026460009601686753243199345513205321571986692838396347125794630658419527794569474326196831499226859219801912208976020297375471639110430934776084274314177596568135721778603194535996942822040011333581399582460618475181602507221968477444076116322138801007945499206892127437261407205292135759302352714852743435586051053927280370580507473258750442753435456011376662481955670021629193683959376089934513524204254306463425941751498938437857160348740070210944636227724816050523028909079272058178192886706078201544108950767589529706135698799630899937003156986682544177754673261675360075580186472476100253736176387321398778136432772296169675496087322113859348891383837080672706905108974620658875890748055171141779143175822803001418797011261373052244814415733191797075097664972357123140017836822565651560636739882988213307728001627203427788277368399001778428243724700653552677115026268451725052081209509079311792592465998432305790966364055012460449926481003205316293647308936686969233553581356354731207938928998368176124410388361311612469755457433075736127886396472132686222812563781406821663789183365844688696793557533067591804230311883861289311984594680119871422276216739530291075185046255421959450323311834036807904964110390233919732422409127366316780230531459617149070731739922112916896646511870231661354577354663019542228139863788454386663653429403618916061675973514819951490261437411421080490097804500897985498909918920406892437864135150760222023414373343947376359879501443192764647850147366725911487834954057621979358017525639140352327505784484091329947256179886146885315362630884081135172457318506688780754626711226307644043539466868248794378216475635023144576680723091774752639136849722147289069215137796195890757259557381941918790219113571605752145261728827859498199513900407888640768426513312954233607010306966683924188457430393899153403678630859439751891084614614179856071765667717323185923386458285728831686348185137370992906742635599111446348646910229184835076822757838390693847178807004600592582623142458467348263624362659843382165894629561840381668251495272779541308454623763851159881996868582699543777327299488921133021630665058915731157343248292430836170462577990090758773172126771932712126367140637619609732824220335277946981821995386393592040423825006753315733177457412696761413289859537457616314168518113725427332382987788480096447165924106702307088719200101152986533046813796191267904614501865810883010164790793297073185623640918262053711114282454257983865965855815918753972787509346379061142346320891893284821170470143113750441901148244709283998756120830457855561368509847140819866831141008089652041566345757627585452581669547368814624476018821066668600729878049115187818530114774763565302678915304464582457516741569280267422017298808611182811910543083836543164789330210036219146218355830793592233220313183035693230811469863852993204374495827740278013615141507886683650143521761616501587980997322532452717415276834518639341024861373261601994134330285306491371767387358540301040772682083851932767746475816175285309797609634037172479214281523257579442959657784666351699742412497200336171995074565149138940892879517345480129132379804421117591853611871483255908678766416309781692890843281232979010133240388026844297778421030306150235338019681422216260464463241641186808125629269784795342085919251671707895667021300382180234778601354970674380865743873593115960982275611861522192399610041998714072897161883389962683483056337808612277708094113496592189710069812711427913459419821924766223706120596704897608244439965011082078993665586370461544861452581597395068411665273689163920165050075673766564985581100081683434088082154250305898612465401894590342369464191819022640358688880868603844557804835254436992727900888125591064956157398160480652720832961780069077387232285225146791727314029363381632029097247524967191242300608965063892242440166630816174019842434953488869527951953738329125630824764287269797065410385232650043842323579891253483315106886160185525106547500653795710925255256104314544904143307092322065294630609406020031594394263871602021962132856383054875655480300618070686002865411321098483189978170869504796423839411220664124101239040821419378915215761503184270822606892740501578278930103713120560125240618282739331500946208678562475801819210735076842032225211857295624558337400131760232094403937437039185526818287864103110967614376357082184490818960529877116982044758205459098040653938398449041921046871762035923791207549543059764921853298234578155964902949143148855553281665824246227770651393239226253998622346889706520789140606061656743682101886164859889534260339427622735854251713243942629243114959622556358808333073891431740864857825831438104803357105357892973146502989244007958143184668156077090658091667541286752632133573817229856429880103400918938776785467942319388357818538176759838701311638713886224558226874691074182494437078471180084623906429375162113989561820725148077241233826456879099876711375872053991661801677935072362997869360764138274045767219022222551325674885109816539191651278875356688958499923942271216563697256692818026685848087063154539452708038606390943669568050390877220383434472408324853861769430366119580125624112664480127187357050811531538200579976733037370649538713240435088295416664267096735358200428486598173591088990575074170938514950156153495323934268963621624735436441858954690684356045612275977107786615808817280572621304659590295738486880693419471042182302000815543635696730197165329822897007129939716233395754328528220200725952480279390107310462237823449710108855501724803874958075784273220142686960887337622494667664088772365783443420361070199650807110227010353594416883432980203480323309566360030508059290522884469270426091484591219301758344493525774398820288643649754555976431293421583654849827436885608701753929446545366538610178805392069043125257629012058296406549866869379611375605857431392791638684692844603858968549847369477652418521508351650280083076158858028687196290891296996775243256728027783616796630385842819578574941700245562149807772147875603374464569567964135744683685423399560330894352068771482315339726852580630074952505015992385244756175088191390016149702252121350043658526924649212754260549273994151952795403498474540341174501174333355258978690265315091234456011967864261386670173065065479893002915342815136063839237209531959190476122523921964133754674135619508870591749450583026494351923508331933413584387694933804369614251535503411700455585623026405235623639674345766960991233971936441616831278812520052096099996584792579767959430856882898769765747574595840985843636961071871638254982173327804961043754793729263653454182815710914198140930001895420958151997059270265042513760125255625147557580566337398502365021464387672808768527582704909166220345762652041482375133989107350411481754796086643565186961062276357088019351415802450737957965550415089792371344147008557385533750859999460283174408013427860349953156293622417120528764648161805963328699624063264473438343979717928187087396216103461615600074890204488203528572063108613242286444637345159165900784274657809905040599692591802468601223981138840726139287839747126879342705788229231322289921528997504309409622320639319487716776015893799229519412443900677572444522353144183191588531718285985554072609269688042290157945034968474959628519809653869927068970343150275180234492427013592642282050231765193577677813735991697589482300136374866989409644003139366689738119720402833173606924654956202053356213057408899286886888416795786491941789803326102352891841632475113107594585525318027286033685952512785087429267656485444841055905621401865604262286110000336331428230594504767015630298674194034761754690010951707753318910819567731648917921180704792642086964182889465890020733207720034963547687007761087486603590778466454214124489374815534027161264922272398513218331669014688071887002975825018969190943766655264680667656891253878200949449569729529561831347765247823238946515362034981644170824843494179607488696217383651888343934772377700182308657792678822531311010718776727464004269562274913377693864333830692411767420524852565758965168677403931639501143412449416389430176987114976203522645729110976994887747879981382959002810058595568434341110900922857855312882977603759487386637752753331398367894643863578185632216874153415887123491377302144695058904156592162497487947370886862992639028174403419420547674288442352109398499222965480940040803337844416510556535344449091107482177906235519223001618388727507623377121725072782697790074135389975114621082263980368845971915095370911868034230073560235984800481448238833969842944979581416149833121428611730507968996222393344444693484848410390926033300785071931150643362398005190190090272847449443951032292537189554190286890625789452199228637441359054750267681797715407085594911243481412449216801548284432387688498804722915926433553616691169836573290071797601312413614129968683034149908444706142097016095861458602264777917671496736275611929021527406143594120802848970158202339721071144027452691868609097939611353497164304454804846869397587550678502514433905250258841161358758971821550962389214081693194496341504144892495992700670089664838329160420259361204037369329821578367026252350510919550277556669042986647588087231232777147826391703729056310405915884117552777754378159928471576980412857284233346536581141659354194642132742150946008130138970061673034629817071111378834253603593995679914563736168004992974067037844052387373754027772767212794153841245682899048614691044669946711249769860521976057893574236515886707677901680613643540414329066438295916872161359944023316487611468007314137625032382236778492659386827321252409154538385876810242697341871167360444300674143561404072661940835207411904043521946474898964331838514501369305814540530816041929596694848677656493137197422485337509802065547963098961790556238663318690267719551682363276210398617091881360295551676387775470801149427917233942484031016863328173817076137414730146793110549702235671300003203044508707799159531447603790021169165071004370055149980435513746363531897360180881910264738534293291612521822068316096854725291393942730104111230138512049304858411502252986811317303887535085635333114325592901185433225235935330654008229167201809265490229799636021053993608056606569463720787630694563551131386360279432548816147774546556272535466832266320127936255321227244336558721294615475444789697665399747345410923667827691665115127000340254047485671814507931343051573237481188767370290862378527286681873682236526275356180861004386364764858556719321149581743427812338959073133936903995767372044115109839111748466636568015522957952464759527998208038210268108098463758873394732443477327500102330997369033117241545638907215138047021864327915049361408261429717641842027254622779931363265881628852516556822275049063145137409298045280202109040325654948100662922490093619360556203048412359681646839007449839537981176729733075725276147236842230977086723658768627093250979005716631529944281450085350459589478149386832757068442674602647608433284950075319324876583386289315070358335814585457669976995664837316604060399696787738693663745842059662076167930771960418467675937952316311021126576777946303875931063041962252094042391923573664545407974895983991417947790765770191014029569247219700878636937462999370398823060195794570505251768046476441183227132122434248487409778494217492720456725692702561662349193835459884916625662470255404614872870132460180237305368063601675469026953612901889260802762393975122854106837121125625646154149155444020539045456593826497295382170001716837941281487471474559484846504456090173184686776956224270472962874622492276692070599015537137602750891839501535281613763439219879564686093392751827732484935716660582877508263619582783017453930666645085430891014721194973716906013264467792145693542764067278321731879152878026110221240117229351317017475121526434675735689847311512540745179643978462223235102918898097403982346837971230243417790475040845245334645801707935485409710386772981145011809925101046440412830638867032373894247760439007011871950932625336153184780458536073957914935625802149833557961744729559499594387246037511683792097864211845039659904167922997943977860619805558775384671437632943892497255379746332147965407296454636915816609946535029392405365225903660062052465482235587247799189583260085571899062350367291834501349572921689656606356051855152622998118585958213429019836088048789127665377120676206821136544066795742377398687318293131393061557688095441192792584741424830693131713850215589818574145556533163548992282507782869991058684637330194372689879213674453773324374915214350751421760290940978051113286203858063664194014914232919766461514649084149404833977395026369876496980486783377578212108581925088069931190953784668642049394965091989850347473027781347397022424275660768525994161783684288173464435046757759073510429118633389226323126483391911433886928955722461518014169405993404111874027915806796060200382533923988897963906498527947965769247438963591666679691442980510338238773527409964756536716038245415780757585084562758899461444764830358932560835908117717298030198888579768065534790026205819035803397179956105126816179170403037852576250960775153867313531435675386997481451179609576333965814450890845687471262829835900456238580331789905858590442901483880084834405724673460860365666237234688713824064123989957540465604295273311628152154199496201487774555251243561989599693555477079568629158165282493298264369855273396059599002137169970221537001677205589164060471522718161810387533664464056848121680526031436611435941645676154577529790553531587689240975936743221477881046193927240097189028542290008262946383936078990036598231156070971065887921963483478163256118645004745713049865453712989891014890069360833369356414647381804124942556942995889769901096566170405631737781840182683505710379391019676390925547192470502442464998294878181541391414507468189736798249598928007834250976617984109075043924482124820797850044260774676506892863175396323463206535363271702034546930524186263287005242629725150213055249043288070422700627699458627436312778308345407094710417985669891962702361006483569905466002092451708930408727258236267354014409320004893024317544445890076522452282867591326981193590902441077369809373766114542971955918138118898270022233575893839843005226965497350781695455425819122378072638209355229875026421695088546780497569074663021431563119697451110663265804054832315413634904579115501421962890562302262100589335382197366670641776330632763205258872259869316194324492574291044921294853713570509982727853102444428829205104652088118974092940442813442886359261309027286288661256834332564035142121189414188754833964799554276258958703631635657382693745544128242729964053892382927856808585415324496650923310884293361671256818927717290404003123480033426412133411327785181657192861440217767382066436402015910970665241915206644520897791666076525088296426932109715379436427809495250791300725680623351252223903464109741876382418987213112659617447984172698516665875207494669062437198992929165093000649594403464615372737584964908839396457400989297227183229130914772974870643453719127570330601026589925550284884405995142498604025608105033559481502102737020417790235970371613669760819936453978827851159886657135266259393826315338348667115002000420139203097099539124680096869521231641543058935355477076234789309768885355780325623720613556661784283390981708750716704535968598927724549346790157318602635319121683366628393031765271554162363068404460814592031178350262201692640008938016349992520577527300810278428208294166715891477015475068794300097908275494029622309374134556664255934088375913228226529483895772230527806143476601494255526461285017599783639533638584744866830128691475998991119063229125105401281671394933028175402758446021195717833166139765092826256076376000870344171055939006207711297976454327233208661786648170976041773349087324162518602871925630997721556979050371686938803143121650842767400459181356993552475007105654502035522199941097361549827309777077127906363213885932948952028667522681735836486333122772300361502832247682037389300877452212342951777703557189732073311659693149389504447324852476787953249685959490197399764996409202254830577682133208387943888300228095750967753315588977599957333264491375598850235406599499903286548446102056794727848049298620881377711254344474114940421175633427749357724624482998632175319507483345569120209261563612983886188031042558264469659905499825651170470092415108562897044790130236324492372181306733118031039211113845638386720915655874401246090726857400775287766819332275837098346470712771394534166631701188231563551121563044916136324710826958101880556730727507400682936774681474497081943553296659337653730677502159942381959222709429213375998011848422138746726538780907664669541910489061838781360607685756837420463481435552372414180747934022610017625193692129260994162967042885300938274828069203486370719840367152947953705288621981493938850226398815321884768784351861809282800260583537927931735705667446315782899497241798968729115420871424586836031554867888012719422899558246123614105488681564557426976443831758865519419215796744917642750370217145794120299325944333415143333021654281636715749513247518564895783776162750926219875997036929012685501554994298215079850532844189890158688667509229657205749987528123517166420825731645291538391764875592860440060176218148376567375130224912520020764299646671894454365653554240266014901285637248163842163363409995504437528217999640619975184102281841948140204135058490764223371630466709682482699770216224059814156472372901168633208228932968827929408163374550578025846470956806682731339619755137234829348316529078664577990486225905121412481261078192804135977141658100413534838425609841799546922576017840071623128835276706722845016667857153765947812799350520094656493265330876418668985111508727294819660600075089427463876144974104062844138755321552708303601661922205814579773148648205312323019144076666905575690209441011726963154328375358434400340250565178214073706826956888890664669145612037733990867171644572741949342648863864561266835361876473628565086328129209482810534286268519569474890974897108839167267365201867187196292924369531971650099800404277383934810721260184651120255369480468020843947969015998879182790463074998173832895563736505527908909404090399279281818921385708419888576791451746054688175374062621007534776645252888723604220548852247372558106572516766085016836476377563332770411319186602227527496406916677409355938053115049513302471516234909438679524592475411275298950205960703037467986570206436669749752364190314120487656843320826642863228265774508854436180266668960726842742540625887374276683742923616450832820038166075899003233118547447527445259580885184751987126592449473728250282794113805108939979766010479405881554362861566653541712477645208834177835638492995841391840555943061746584259440378733608981753948156623782441104063018774236545331762382128045504152656692598472002061038592304312640862672406264720118276155869611696958808392899657866093687608569990942618255337641557581722661393140922832873743815269008116539656562441498801669159917761686887395144521750175409270867363208240196772146306832720427532656849511467051426629916890252072477116190879847633153833114812301163918132208568815579098099630071362748573493976765754441721660915877177670250510327146251915170238662039142826765761025407160384137387834444514529679326715310020368984018626220292826652599649640592579253199830162646600918178540771323885503179019693072448303619928627920353994083164795135952590758616174525574178107635644874093918116333099428710916117084695592169386033883307351550127565069639386772023993720870707194581372581155395494729915729159551961681051612155006925623020467564582304932252429479038325358555044833415767181372771980173115718038450616979217243765344267310683608544936788232433618025930907169510850114312264351397503689179713805552336242514300599449797483233769543078396821073277580377660367718077356982060312274150791533482720953172102949214341469643977838391202631835087044364117552282658068565897391035304792619846226418590410976338081033155016777522385014705856033235160525218220513899061123735295487481927979251621676640513324988121820866836274968366271936535888046088908322444664959511285640429402871164079592126582704732498681029016519416589176256636014182456878953031730371199448490520939301241699049941006936833788473131992685943968709911552573068996050881232913807124622969494681191200100483843417226864349237428419274832728768136240023908870773818443880781461743365280682146609613652937641558421830178856031371477558094445451780746004054363899248267696006725546948778991532442420936528590067041970362358472412324446529801926162026510172955397911283299149906172029638310235137407185877089409410309042985121589780944295770750967364156505110193605018616072948058576058637931557697844636905543262221205013929407109933562907013269922054690238528803019107334621590412633002040628317152969172468119040583057155199656886918505074300542567438263266318018081319126487696978459120675973724507060038333348887615292680645686649488920718353828862569034357429096068659024252988590371418894206764408114947105824208133733787335679943454625249241971344430792879343748411969586423310456676610433678589054686019892665793508239513316026535835105575343966090406342435573075426007542742890453582821359378339352378043875247020260626267201619377525040845050128255049771297548712546954749203208888892775416538372552426925952837239520564129747066343499599644207825814903361793241405790291359450760444088961623842224815932247205855852345597809394594528037204156078129553457148310712888437478096763286257764553418123007075432312774391022381297964980101961488724425627958125029143576444932211078669201820275290057440979827258367767229993142585076157688085411866285639311813219903217614574553139728736751242941063432435698492149962190494378863618753840066885874434907256609664472704497700799597822053940118348357090817483299162499914357457875805261412295875741948158914702473690051003486036971295495764977606111922457035150010330218822601457315528079422494384708369927017706805273344900836285326809337427712534785738731598016474996263287320177877622888775010055610872461525883512286027973164901232460506228171338111475709496323424794641082091153305472961414924122700292872643549791533790327283810576450854063138539672505805932257674604710699577318136849121633060367228516006852418929630351357785601154094752299452949438125028194401255183325376528308989130356885943450924614683157857890208950589947224072610730703246324856047469657362631577279019229412346222334142764825616041293466291618664447578645849740076354669214578161463145510491084196462239170965203344249680986724322184674711798723523697014953456160141877212697916542918850188008004727156557667592931588477031349403312081053489449104113259091139001620797731895687814820220391648780541361977050038222682830177359855638035662988259878418208078425663483409299662797895243398287562293086569315150777481324304677667191287705085766664053445109084451546658436238005106566758378248055970168514420556888502598898769560429953608259489360468245785295343274255445949496113089386082771988649271365784813374084438909612539213167869868497603237857691109293150140583399325422553160510371850862122846055203952472724048913894398247245034965490637616022859419920003198331257458953316947701480306658239358736599835604300353460279958297836117201212200603951874373055771830165348974072422113806807807086097381013097991090791092332477422949104624386171029155785810244980419592149967941344983145992347727204627919678461653761822626727007678638023771299097192530070856646033939355777530472786051220824603357212110346866442359294714234782563228134142530534149442351136737540753807757298482109916033063916259305157265154137318904915251063580046543351584090742819556043837908569981102313826892411551490416676818209752406141873901819409847658537898186395921255707942554927486045534890320808458278090600738022414914866537810180157501332161679817666789892612876648025375648854093106838048891011534374916200032651624267998155202601016783452977351859216942697178681974087929091610690656874885186210159037487251822389002181549947388202691462699061863804409801253009669539518470432599523699814470908275105930797976544942734404611528116651754683535569290915561570714297944710360165603569787280916465035976219490864912690114956951268377172275593709518177436038616118169092473867115454679139512792713969487937099910439776443067508215653112449417424765272382122066801414904640210813859084827966180725868652327973166655261861015676954895827478932426190922617899797707816594650582843006500247865388755062555475085245453955383038731210082098915518948605018717325973688533682847461472209221733307001875886847864597006603426218115367041747485500408090214096666427996401832723903847982915218819839163928663550494001732651770926826911920211760636888504205939658241657442733874439238569808646567972188215055375835544720388512999251776613171704745890165217439604091310286071898229871515989621950291257893389970673482491881068523276024140898993067079503898218718725056047064791628856608244522838190547086818853954004303888267140308980212698514364325969097556759239472141501788455242226596513981640584661623824068778492439699273269488768312157581480075967367533035663783582409143126206161089469073149610307606284841564120052664281904265588774231372163195659492573423088784158629943850508999760482783719230708638981549265363095251966082494064441129863569962790471391856906308556641544263319282829069527882591461721522371654556273699868726171920984228544562909375094458055735129345860052290557540513079729983814493083293453948361649513736999996468058723898676464657423014130259826591625287788261885200492410092523079969119755229480930993433406992184857467412464847475692647004027719662606977279093966417792820089645889374853939473992458995563540979858707194952701919165229026498938004526471732437926656641274075502414859168807252685933494425474018307486393902339844045558034357104100621277949889221793070946130299378414127420791238261384737162556411131359674559716950618932756137502569055372135129681411123354068376743789604128130217453255429361777501103300609740167907041307322713246856914553477561330653573776254642753796977678038481608435132380057061056516314520872009836939045192102005222240147063525543272466060913885428985533651838311771724740451768811529719036600017668757803876019980021984019366140941391722333549720529191685529497934608517314875836776656187408722532066032340358013623855624684762406557940368446959441887655132035348537083190755580868448503838226108985989000451532473797344875705425811108557321680940463879315250874063603158568950969524319215076314902363164565716853929514062296182881860193316246252833473160659248271268829367270789188347562859375832098272300045715240536101363189239812717376565177924470264116518945952846411974770240871266650006109692947860415824710329731298934307293365219859081349625447490753345930687924531401698112630419440784750116896779719407914227819731655733678388940408768391636769364104960287607075770702708278052009130242451612511820761572760713844650921069083688704475307329967825431755731432387148586271754424447819842293500827384007756795299800224596757729182987702039998941580511480411943341705193837395740714160927293801138091786995025820297429960464687738823010928611869702780089914613281601948990763353890518773590730618268396739853534834277505946619921140128479461482391876459374330831152016221528355754540335796561291531836445501099882609095280902787941854172418570269808999296437438807755522017906923582279182831243115073692414471997217783067029350899665356234455595720451839450739536291714570992577710326325004195783972021982285520308631448930220284543252958756475358369528751891872813352308681610101355252082245875534528385341638182659297450692659074506621817773395029746041033760328030241324045605187879685199656263403917011578685561321881054263586825249601072763922124709125589532130460216529270914086005883659087579386054236460322668620064804997288720375962431068378597946863160782350143554192821367161345474244408075168216541293231764485602075734160993949619972900078534563613094178701668868867619274857292236833800030808272148368386805289226546048885169750732751089474636761785983894000104680444186188918143612143138286308157016340349788776046051793855183649682965724006084810481426971409306132914737408623299203160389911381802143874577275705460804069949372925315497357370555021694415193467318603358079166180400345874453705846079933567752974891461188979268685007122247709083249457043234933901099325738549433863123530000829064399876324457333094900787702387006523608556187201574660534211363130749382786261696422525335353937404727765294935824207151686653795642138397638927757788216923818456781297264489019941158905701151668742132494155853876055788692116649278966784137672226597147961914411730179164644800045038453757623267950724904360847094315353524792004656625400214409945087585483385062656470156401984762571933077231045835533422840125358662618762250477349970107086294426851608087698508002268339133374881026844114028578350029712003425272462735753283958164391658248893472513596482760048364392175902880278002618421480772293735568206282471311321938345327418580462084152828492611725317774383736335004659519468927686023532255078115582295899187176299837773234599196062143458597649866644272111753724539100946441660624578396806428276599769267138818444456678735938777509509297489914640448761681893697900994913286555438448311523314170246122305968306211304017139850374105317775904426805298720724706812970899107632018367560012313152047678460828243145780473419765612542925457652655939407836789306859143659788712063992403294531873692938828675944589898473591338863219112892079411985826309401875684669819902751309719058973685616734301046617935934821475504600385103580413735525766270156299779275255239738188453235004181341675360684917444104222341478879714987564019477331103452451318909482477392857692564004558788909311652433102988615874152654595910089871898931613264080611176723604395963804860675069686583593492652002489814006535850684814878007751120787535824752176556722374901689990997802852926646096219257943701376624117347163839482763072593373348129949942641622846435378327565613149813614834473995515377094664658163340559670071744309728353552521494522068534109947715612114601957988291737538561214020728228497148834459324114885055501762216501840362497367987284646262193813197321782189185749156880606029310157736322963002397964006267220989922169809339406893352852193588412211513122196851359557622690827972365578150169505363328167543759092841457426339944341770823094247941641766903238954059760253650089683269924837696301104954218412185754204213763548931217798745117238214903005266261941891225730407526530534658286276990341477410643918466944974150566352830395125125072574258417954614047586881629832655750328124804120161440193472921643263214119477573439146197007380401092058792495995627278846456396081483326654551040390611858787160318697998512270666966611867771586653387495755068231251016315297409183092042130265023007736996842596161533965612516434074673030244471183650890700301183453602401728918121452975005176175923861218441605350705810845478202514097385598976009720015545199688253330468816061378099460969714588998780328321730156357982108732496845354029209640935002148694394437321427991086322968669784226990236775364042580184183576591074673891696941224374281942062149887096648846547253640025189778658018051246772196102084672635097707770885814932240176533986638019277424619979736363131933420852334529180048372817644321276156827632440166486268865981935675484595408096742483562075382655362494645867048701911607376943125268671728374630465598932392643927719840555788549384258499988090326388003002017557915229927131152993899333823311021808364912845430458118697176242129165372020133057318228126785904570313024093592811572893991027655926949198072510696721381489783159374746527885018118489651148291203549905114687390118128036827307073297249139273201197523122914309592059989484182633725465056703439254717213693917149263047388421930705690063118148498256474342086680905990016956583826689433007893008726053770986934440828853862788596412729893953946210831721435453656094193861427558394674764339365072825849513539274530219797942938527635827991861662032043921108489797780187237437135201677392856173726129305308284805118245142968066079900923900071754814665822546838304717582989105671636775253822955672785051546946557284044570341418325070357873157739253356365854029692613804424495799354017368403979552475531223879455258434107570873713298729952851287759242929139470555212748247115893600465893898287067692885420800102766481862259058693662102602168081464090650599122726359411734032939737258353906722781040611650746677662521252873726204629843230276860513987704635412477922020273512788750736383205884582316110696156589052625091193493099822224776790410173230939222806034115125823388923748933290536309026275554324769250608955349980082261803698449170194695151598989693476729841396226753982441134074283734994265268581757668052608209199684941179101361093766770451381158501100069153373112545021740593202531991559930770284376162147466626827800527589788199105216379415137469810294585039295588130609400062611276580670803314115977544521133342305545035876036402903833206117790892742555374660814809837512522752826940426145685355751310251478795111647081395681123025132910747060078351210019289082455703033169593692522950544462007221061116924945204313512520798649218367022995422734986658711399724053091073740818944547939697801145183305129435938015132927964865539010364775233527874482638060537952478702965432297580280537803058531135029156930810450609236346325890022720700437075670426549044253352857628533715421895579167731053314321467826657464977602677381872157000640117748752506096881423312602115015375688617781995387427715014197657276889438550095494938264293104459427093902769001716998817667426811584029850822177083469511358190964462823341864397877314109186631972570771638009547609092311324316904764617618866093846526623543247036792281184748148980111998158193619502863185567447900086519334327334677263463942193096003470218166220327768331309230702951945761918455218796885248279042219478948244951242031998713366264641789348047568544139263102816729516513735540553617444928548611217322247013731037609437089298898346793030212255590645203806853093627041217359542764549842496609208232812217446743071265766683693130581097022845432066663874909733426500228701678356667345028055215485730418321133540821994853149007006494243077429117175126601471244470433675723077139566403212158030736115567759174067732981669116371134543515171067853434547154674214965285966026029280537984270789266587824818903588697070318269467477775498738435441526227278498071532557774834759116742150389491143007298928273769279733799943550903930319786020398127926744567759789071393960937253415163662448378876700230210654585605200919202524728141462490782826837887771821011387855802262555446771116434828016155498451373823919848272396883283088514935632553221785662693332586085657898382007150875419709556170795692042241947027504181012274855432234147227014386846113260241855659602963862727058500372565111753055958833756734178608104357385514893501466066533619200059453973767307336580063086180001834725765307491709640822623513909088440472505655074871466543968725792508743556416616779699177590901677110246999701270672435723671421973587226890449814405881785009006909478797337309321630479066668136894001405979161850935761219596951022719048436903450823127869513617632631705739309496218809062388745686912236671691544796848248021535546541638566788584831314854782129548544577575512741735821886266361778276605746942691243473045566449033079621207072074116903161266377614826725456149927332734053990667918635865362696592141263801888518788099807241519747247083217768235812836400495670766243194016057906021834051816925238249376157502462082154003909607342932301129493797139481182963708769274669320135611126925850585663492349991208727618154923252828531428723257651420064801516373752680386727040456511399832396359147141924391288772550052194825378387224088752477731004577128514568363778465684332412535005152375188514830384768538743165756139457389454387489641381916051191863180120007384181880242536723037350136939248801872856963211602508970263834453075093888333665572625604451171690845922164153344717639242980900548313745131244060759256393294571551648256379075632520031974179739647848801689835139612185835872117533837931396650916513597863004649007021560797624360529406187672775816074139532623019277726918965469157141172208586762125522586215725598245356237560240959960898473851380369412942842905011149733567593393221311798539958398866098359568259044064501615075249453569714336153572498379270635344145447564545756224416918332124709859204594410067580185894573001090660992940247121548623319826308127103773084884296447077192606472094808967235138263411272368546411224203929834955135765828750862131095340195969989398115483036959645124178541909442140260055192831807792577808605935243933566674161604843030845602398416803425812519782570948853629097397922320261118283865977809367048014951988760167687653867984497071691407683418827529887614820081033518455795647980325584411730152044018261928143749872641443385220821353185846675766982569589950216527228450252058224444574182587200312610980047780637846694060928278678514360590705266512702071188896505985736153567023908775374379813667915510210150425088026770575674634178498854418620327736734054166172297315321628890796989703720381663562358359908325427703716782452668272354324494287267942041403545277353426748384549876133246282722782722241085990449355452904339903606902937397368963751080574453344039595279224386272070135112808263948756913047004141538382311131670062349731813179434346809364314384308875650888483608278643143475714643388070548507080243098627793327333280403078750429380329655344249066202756965608744660548332934104400222395100803586081334342306758594553568906518082729927754679157632703899234064111638669841049023907448442001196219792472406933883322554456039337419381584166463031994184975764044306999411120512407765852385385602479508487410728055275492173747310644565447731558406005933305956741787233541009629295545681887055132311602177812710947888319469414110305475586539778527403563930100722133256248407115576661169415452074202880037742860984798645526718220265842477699693071688037404692621374154850188898881146402861487848707115638307011140931093887816438361729645340142386003335335688829140901466996517575507068282105279545962488638225922484728125772959571103806006582018510553808573808737975001819177223077289502061904961032724726999356053482017765722795394742616715422945706071979829404778383194823702897416483849410532187270351532045026790859514610964389764719999947745030056973723621938536723717715395362097151511371433438950939719234520974595117149262032213656266576103774429627547484000581129972841555312040111352981236298765337271449160538141167273230107216444403183633118495143219977532749200192937257631065762758025769220187823316916470034901035708932453484098190334669966550172171049796971313876548862433171348649265639345474704114470609609794869169127369517522465199472494426115281860369541429529526764344028235809939997000174382701857601453680620776019235702762621135648390483339758170542750053946674763497312455527121341984150096407436855224858318523244336625300505860067030517252402592678779055611317931332047662847612899763612568704973220390241961821602250071612851593762704110079637409786475738866861392902364200120783733872151842156769792618258746500101467432964771132830891085074116615893236723444120680356818053144631769573579855819072199758210858296831833088351520454989163086487731124959763345044343417006753127341057647617766638345514744694404221461288277119670839115140895449073456475335530249821765101711096967251414586051845173784907245502544747674924941810940829402115236644062487473532493109070708420768549684225584372801818147620487206822732396052615300140514391978602645482189401553153605598626431163237167097302066365894427273362685205540118713333006791484867038929580411662928851145506263216636196488122869053134963220293522861066923940112632853218195229282988540056552545254844171046469358452554094637123022229291760170586831171288338507456084048656150794063752482893666554338498398892421672686638186802063378518935357455661691071757520406762312151503821140370626016534217265351002052387228951024714526613217040397458731644335349211897182597046377207616860468258132467974270404833147296128605416184466984955970644096141449990349963001916703546616286870994631843071093925294420804891116118076525974685678657703817440243511834189134650944866508787209055107377254825464883360147122311574328735506074051207782396853284483072361902666338931495087529985946324629328344742079181733335275829587760572383713145298587067352277456343453332966704618212995834504012792319194681879241148977788445873516217328734224307014436263625932241315893315447131593118321811231440271935367048434106202232858640612528679540155744558450119885967572122496359559198344271639149467161417143373061083941205820593529988883072261293942388501621890699403179316606838124496173802066748859103070262939713872224373069506528116946323564132084902226531951639643950409549326991393721143144282469788095338704270500542679001997923639034285223707876866646416296891462731988667288841531984882637774933362856854895248067976617960830781019478473364815425306820682409744047091861682757921881236079716551174479966485440211213397037618712495640393451555071640088888765858609113079366359665803303901301471893670243298399097689445780734328226113363265992852517128011684003100776946640729770868816985092717338615454514430412097388810808324397042209021768669390365087978693078480403746775468397456728601192963420419858149322189729784734815377856542364742031143367609525462154414965524274073239641725509550553610821957834864759045941612047463394019615524528659850125842364268389018403969296886399735926394025787095755786758148496534221867584404510692895557079156315684944967729810648997303389787482904358774083276627168692018367479300344911517432525619057046712688284527357947087774643797459424180783633142659442109190188832337053270445320459276951317525712650566623991283958404979164023979543092726591229026711997190379934234898561556724305262799863464076559003630745100844125473667741397988747072879174984439605712585542166494195137336795815107822743581520183211199533414884481005536862431933790854089947870824678756567953520887209440546987246638077853004145330297424829495238738676135916532902770659581285830967289587920736889452868142374203378988279434915911824764784792530351742685716275732215201771303752587098109293059572503143089920407997069106863938674289492617439832423183762940017166183406600967713829139391697656365501260382544092836120106534091317328856044599235015675197450332215700166306817021357912816422528387427778201384944790061971947419907328864831547196097070768594617454073087737489317314620458656330729437911029756945146169752690873532928046214212262830888466882345353249907332216555818533400658674986331990986181020861506640086720083591026332008910168154198528022836158198129508946011161134374337530108521132100693928546789983041593103489516006047881058720813641826369893549270018746828625176599986435596889350756710540681727003450695045561910219227129159028220020982660332857693717745406990264851257102401890026384036909075997718274936400212519360205438617687963367889510733259960619490896236028572064714995355015400745461920955867534050955118180618364013606983529106280589893049687356693340964885842935507217453654894772150608492419439763639170812694641783224987018832833648070385542092527942598940925466774145557172707292654374001510164970681510158061990064670704745465285048676076302952361597566546365363598584428349038107947278684341828359592121701324888881374820865849895191162688783071532693436235749326198115308788619775612973025563673721861767175636583792670000753011989249380384181641680267378472449429268257515719084421862396032258056445520965558719897877367835353024638080826259883475029958361765990820279232751918814648327858650563935642178319726167830273988171207118975517059974721620057360775971764662130760404509746503531674226849184603377490619544162604520125661725410964778434260778928508634565958997694215999516175191786019328443326411531301727693560732313046268495610770494670516828305221212903456552243055567941884439420577363788604272486452959679423518556855780003283514573836134937544180518602086215132123954071679177061766248274289417816306219624295951758138651688209711985235857269630248050296259237205026608757483140207072817668095945863359634599150546911513106202736899824195192970417664134345914190192120317813792680038300155492182576428737646505822958105805610680140169310991109960966095875820552978293699483338668656727464375710325084970392864483464383300549457635608286275008005337328303997036893126462748378491320933215542414842184848635594703576778655904148651215841644634909649440408431582839602144967140304867195063005948671042090791118765994810935858659386062473421657358765340292691329034206143459064931736654612704497683828654430393661045934116218298089556789665795192931077049441577891054651604673955807723766013207100291769877716590758365400017906891146108520638061218988725620193536028524917367343112952462861862044078892520053122869490133792903685984952892571593931298118216198872327753451946418605748149257297540199050842471280131861674585712801141703314013544901580939166226286771846065680377773894330441702041483496802397072853701708175451353053039990924821131764806917330600170448936227206018164881329110746372503878073826191756519870825124540915843201984321965993118650851984632336797948452918002140489361427535346755906884203248052787456437702106577102834975236905529752907868811441912654045838137774049935587699744893780550919281997186044381287230346929703036402907430787050215900447578550139076074325865090062231047792642792469250390783234149437613774927065368107877187712077910186558604113726222485159049770643663485234684039253040022590370754295844587657363135500367388888945455453402941791570936647887099286442420071352233293257817434300861791176893616842774178469616368985997790686951036628918105274500238753634318996534680131075799981586420835629871500564497074158816512743916346145038607212563838705393946860784787539186193802479435307854396844521135709119943471994362171998830902794736954169060843420269833727105630908238745163437059875774325393180750236489742115414783803616805998726420561413631373257845294553129740528217242144369878903278473385474425508004550285759452966788533218294875172234897579162869023914475289640469119172693935008946709874886793251011198203901060781390600103352723522137038017241561961090045679247293247549280918143662860305584526599627717308524558975664311070202470062192788668998993242107851104747104815995917012042340653423969268779282419165365384062623798280269649092987739417886904699674679827139767871211675655399029769758735501178975246552801628042701498273443450634098589665477590650731228049637811624996030221002374682958860856400449841719064579969619552425346552669295371539166878791809883528870175085136905701469377003722776525284784319323619234302964153539461714237921891701108975243108673067954643706394107869169217854370336972955274217943180144276795205652893385235843064841537281775393149060478619620806567430675756450591182829098340245614733153089261647452423302671239630027433524508155549611908813447756396370184549801748012430636414716357015515082761345694237738335438570615295218722367807902211105648426383415952737039707257167919713278750022308742236705245799110913404419093151642360544031926525145221023437718271917941575280817015569675487983720759006026278669052466028283314305683606287620406520145355433742377746983072093337913835149136402193352315891908859999459647859553438587058682763409326871797940888103320324323756290387825651113534264741825767403058541387468080963796576443891512121423732368759633487087772276690718894536862619230690928639960516030968603573578047409812540141460808763244921643074409531236173109742818592985184359844152958678774290616814156406889202505260035108922798932908252137222235573563777276225000783083133155296867840968933538534915277260605075405348606922302652071169717660696516672399952825107713243135210759057790715585039805232927023499247857912494271294870091690377540493566530524998843648930022549663603082626648829951850805096439288515545886814256691230858376330111398878433823767195651038455448686410282337025876490478817910880532831884918853443529729549787435235396177076104794835359074247943336780502096550757317916023329804886450893231829828110707883574961747308683062150713323154573769744734624849185806792504498057845728118129738841206476972799392377179746552639343218346173198673080668149677983174638620540561370243352347280384977846169013942062330418702489901840101707240986268301741059536178479304238530328010591122923944077928526539772799340562372181176280416444212481023689181681388236570217579537770946554824302893940672644929669495176945632817893823009107563541018966647430389904844111948778549396170393865767373465847262517807461598826797485028723703283069784687926826506321955248028931079701161032898822517485261962114141181425270750308434057852753937931938947529008204065983665594361335883086002113112161711519376625416404529839030910280266079705922573386458768186607359528682307530332537213055867680559934589111083509852414940891242991162213389652986727379925028314894338182832172873358331246793225565945209998438840639860019565362669126609203255703956489441845806390654183775593530811435161057569035322283402953007374938604957036194734201860776436416317735152371229941968060900201305294278659740795466483306811258402812062989620505196783910064442145826056490860100298430270448621254636483479146579064118707015938366809566768414927689011616685641132727782280829380155748944112857813318056492753133282769328683038863761959423958868378657718244594373295412700411004660996361031777935254061944616426672066220186904399486207254147859415051143437911383634408825069704239556053511978941390995623731151686964487946208022174530644646094020951111446149343763884397828523581865254783387442946534079879727279131967797648621966780980514694825205446388959010611598368892794811680011961448446227177438699603584180065997836772474143779425760977017236824519670828578606308981279239985387953910841610836541593244138812223182832689624839237793226858686571784942374954269856051836347325579788282054967506565540765857663554853881195051139343536279374053472618744540876123850203905216151248847498833154035113433025960888101193976114166732694736052274921047282328285288597053316357927419776488080714785229969276293342280857762925572485373124387909831158816159808441835961103306354824218014793259037090004063107544846205843635288602917643556156339520809247319583759121507460944642419614002990249166527584789674451702065883591062684936343621755927234310679767798286301619274905806168127362815811578018602796785732936397556921581146487255529226164918023513589132468881809529753737369925466319244049920354095725731786737614365847500743447992133481582988666460492670735425514286308053861832272076344337740415786147923565437935501126513943272840750905205702300070307256281990193588314893726892160228296462661092654938490995731896504600215752977077232873005933665107089302353099411265272307332897503270754005615074099489503392888955508885460318568226741486470623410808786380483041525969947778682203681647880897277030111617853621343938930812555581403933196201634190293591666438635582170768693681126919489168684617800079600298324826643424096902515219257541211028357844507008199159061514769305124395856164054214571518643737315806711526247152964355696913268142299493108532234757329009426729552582061395017363424488271937031519659854336022258802080071639604824334007847140100044556807518329648992881776775803540115327611080600681889895889753909768142031017821582239299132809038131269040882008792425268420632395658471379924601547531378064045595303546693117185998358214472671931185163273411304157837639977208852647805833326292292645149050960588035782284804518664215527063340273477820091576383207368641820208000491248433013354142719762167888794532453630407247643397620345115232372448379219395339656803116023343959547753584602142972196854472000991454425800732388722310573969001197404706801105412440437697922482281910559861729766695410026030708867824574658191871143519293118781453023769178782099323176557370559936885053033873978206339626162443049855345391090468877579545944307523089510841322722572900049574238589475345617822315063660160394124216082424698965993778825047044288956128383717957568860106359663544358194874019380893395057712850952030664639688632436446036223636284288998921281328037725013817276716849655085451324808309038357537634286342125342578716379660490019069413188579360459018224480321972340073378392598791693660310845967705895187994373827233425290294508797653019042932191384074229791907817351373798793985372712411662744009806540022315171748835235803515365886589897077983128313298531699036712106007289653672474247982162977996041974355658830251716112739535309584510068867870089374625735746818636763224420463439196015563685109221424085384721316031110518417971536933238510662928281043879683407186504174860161412646100398462272218231398592749006989563398568519041577563198750815062633285016057399699597466973071710972015262569727096746359568527213681874026476290652475441584785511182696426708737278624960973391182711768525560781182230727821341566990435956214686166146075642306374345746842577924856773341456812903789878609330792295798179710424516653147156680443295918520949067290570348867393411927449437208712086390048463967245029747145542976203553776484232305304427614213352482687156756944390028335427142138218489851649621523190669006322936354939940329443754987769237382370647492740557634714608245330443330167280477247901253245558373188806277372650419628981101294543088226368669509109574503936458190688522888642834012176501803261084321109578522874525036543678636968435885442733331384405763210962991367909293512579615404471348060013579942964824501329122850829723638596865124770280389161950999133212004950942376670076392654283351135049483005255836679935290330572404062903529607983178187013216830538031263996652669222823288399427141697631348098633755532278439226121558679196830098500054969351265636145333560435451359500518404221319393036166067194485731089102404488720850488781040187694739843973963807340322680096734973669604625925339524094223966327702733119728530504869215051677541379501024975533179700493666973109823579144564583988413815797345311755998429137881358988788839475603424727862686956894057808036648965461525704082736670613206504311164674846520401999105319187176062685256189634224739350382280591755408236708754822712029498521735467420381948275708567713703522855537375268853667396482001404948296043230421329930931744649877855077957996567625731394342921670223634106424802249491389952824025047024286098366088816500458099265905821533076485169878332425718373103948012181362772109720037728726495334930419120876558623715228896791273016010456182943218826614326058760279725871983484599198372693894117448036593753338627192659551804484162938825022052598510762667932008393567730236713698049706238936863427014013481604605543173889869267080070882854372939390890581357305931762803780078385806551907312394931545076304840696638310324616964751565887220186679457855911862965681519425382213021880959921971770818863795798099442414048126226430667030664340477302014635650216932017006121370578131736224267689373677538073412798475320425781635460804640307732786733579530312207100326590046082684390415852675669522807406778800472933143037149420677023249268082809676029494126611215049655664518822198243660412680672257497022917780053421149284412225207785381347128313909992658589999953912825602098016333020535269206514138175232750045810909782834032091114243948975255791097629974865991324508470715755645868933699468384244397108389491609282737813138318634985309287368496291347331391762281106381044363738526812423872915830108786529641727031244188998009913599046352350492975518859074655798298414291095026004595915818792761305389186165659526447810209399483328830073982680796347149473324316216395988290382679790721482579739460748426629018058114240358581360026332156066956612973592150690121533534430901571541047194300023635699573349854850549855144042293311411043485160498537364846814004435117282117602128478792772830670725382194031892238552890630715538542156962623301825209210102474874681016627150170201564913323787866501364437261787718353895182707288954533510223609873317093828816533582124177169264443127966609682140467998515041594585480634101581269967750139897305011126052675399015362079781206995720694907108802437551833404582190164231821243895951404194401351435259633948785777335020728372793967781118853903361510323623450810131358871525089255957436446918511866231187588807637808995154720161933625315567393538358109337836387379286340045599086458656855635925972327777516838507721256190673449488151453062195223604653262307670251006660265454991340650997465873158332388316248257458292215039205691636377774250433042482933322237453953816004759086276024544217340598517463938885414807648711297280807851286004922593133797967436318072659249165450896923729669492652145460561312563285559952152865274207875000024838182613176118361606903856184394929135272965001533632545698084636152331207232387109277938231242276237594791930922839523468029206831440846996846851491803268109852376277005818134771504674823406332376294076333019594391441128906639013560998964668026132473599272321649771489685931252085951291705745254448188037808518728852251750407764850726388794933480352296790605372843434033045144686830486745301853258050348176986302355733317920846304708130012111579277029558066137914040623277495588253603047610805771034128894355625428311697813873125555886303725364798262108800805396176950546923738205983144004785464606987139805746767100108135026596787938876573368684265561122121350120280448301743449393024484076378159476103538666895980564375069686907282285251045586044012183795580442341902608581339472914269359909720980858708501660589181020370704209576130063530542623817568607093014753620476623104828315317970074852894980177242848619551843848664536341606825157851560307317275278078659254521458245760902844132937620704651741061430775467600524602426158430912717967395801832244091791662126596343219400231712630402343354300264311731873806433382872903881435862443883960372250739472125724581558519700668232895297673171435278251250087846529880909088012375793480327103669963158653722420681783189191281638490473543055619995775017875948407671578332828202976572940629710160650760486722668132794835417924186366453235276178758214462529667333702724195165194281552147162898947748096485790437944679208691790709742296081810896005029459885083907313951840410773807833734380700133206910951484882243406573864249405983635890716653586604290799035595805619429328438508616397524393085890996152950131292381956041287469766914454501675120770626505712103217224003781651195516120450183113803996075676678635941400712198432613966446889001974783799705107971421646878229377429793459077605318233076556973318193003598051410590710343717211295989368987563600424263972795618232360847782031855103800817569310924515769322286895255497499935686491326504142039300407791203888649053136361994114861250548212886653208774759571431758583321098934420353009978354069193781673003292820284995040627746427569000947864030532488318697883529870875837945967818666544250199955110149757818657054850820895758966324954103901021037433714294684852543008565595587586992521055952192268103367273493874442431087387250369747144610413103470669784540906635842151110381847187877876310069417954276020652332569664156483489545841552813736012817083537819008949133722758687315757271518628980113688066428467812930299050745705481218781425298151461654322683388640061165025961517014020190276466407003103648853729440327265081143478842712990920643271780519611353961385883047441042971753652549265346872321249822086424684586198144850088473384404670050319391599271163867650904503144397334541285991440777984852312800148806155742309334561156872530819347004674612074701413637935213947395170122873334263374876609177602025477704751389100472401417922872789296791487659736477325612409902518021684343833225204032571502220429288752294643543259955012426625156553431207374530915199433427428695023463184195457188559382816005796287191334492681671881409005192806409995875714696182375833582660281921235814757851362704398709631528079855093877607551389406649077737951939239783228306152124875928443822225888883626229254843714366120933952762399735515572559369053719631415762787923228028768530669372901644244609204001842521763853425076386725269107187001267548834779836535386950066437444606325780082717954919131230843059917674029098543380450609430649896332171479752747866525460732609161256086210555223419632106968179330307754977500747028615780432461161660796276435561737866410556125252363930117749829449354129835411241553296390500333559960000429956113214912833772994688362277870861774381193503351745321436792717637368338699871230285767378773964865794718401386818216225603362806426879861216240353191591698906679772947701637206550171258717528358200353151630265772337145280173569223331005826950775994660189455861278643687487514094712182668942078824439748559289458238934068607655472774447564575979677015984251345194933540807327611342779406062628556300601172469172562634362331094086032531849663542544495088836677975780699557159671515011203398089177863512854430023119157454310845225785784056810249535054035334107721448193507710976977629952212817858192438025949439274227886090885759579920379317971659085510842739354856854042311353313148778177776653221945561484204156741935077345755152733658046625973717556711442207898510761789500295868873936090811039098201098182876963435752527022059237388392399103998780169598941671780465749324159373642511648733141841172462134413980310251133075392461935426821715804945460578141993431844119410447992919755379346998338918080673127409574384032100656959520422625805953272094655222307579120703387624053185399780139831855356512189643251257383592461431785107198844210993658119721856096116810877001143722645435490965733042787633322691314656046193068151772431744020939930088282318775128989252377118361791792137507129341591693570730962768293339435691058956358036413824586877178123664967867531994712520711561358998731143277911850631842664319069965364897919956562402980831898566193786761877052576765756874692773623996756682417470337414097219599964163556849049257275689449165825974490400902907607460609029316011930433327833470126265879908353828327617593848885002442194937349817223089726053685077553223356474756234490173450779232541054253941533138110314802277613195460382463588495895465244101587552000674139954694056558986933916490375229081221615055148591093948910499092420978503086223735071916464957423960194896129955362940758804409796978665992156750351109664257453644849530525632722003924496892549278050434897763431510331641120040041014290117011572430535165642745466597798103371143104806166221851447462618069458389231231863797789015511334950954817257554657525771503089531853157232549236283254285045091388325324693693156362224493015747072737373255861743125109252643413315115526939297734220663887476287544789155779164713468799110201100117530969353913135470934585535577440371913917714077923523633733052389646271227001894068612175210485617572838083614070563398021128220434281299661173936873774337884420146103612774140981852128378244308257381185005429407259131092797215838309738899778924989064048205794282596353941803371279618832696232157026548675241679693964164295712320302381783308153278642195356353028284620883338705753250221372354538469839376747720317896126354722282262937461717826563025110682446998843739654858930026190769421314669342749865670362801562117079883524558034044958114604726557748252307077461169217474514544596469848901517076961575052838446414785678164534745686375793111686254264412509362611272564079521547334818040486471491079239160485265516449244851874226378209463915681484266036199584337307984776175801319800256086071259930092538764514541322743491071555793160730840532009040032216321407654475891599645106685213746402692835272965028699160306697434016528726396775768290167815879005049434110015362153788634324046617208075057477830543436292686694547757774664698937173544125255177831847926496742889068760681631294452831763770963788523496862832718497919909574583568137329769178388874496358030597988613114171753820023798066851382636211002761963065398738078519865764362307041802906327637417673613164268192794804553273939175130740359558242577926701409532982883597467898672317107279492102696833334635491049565250055337805393832198573064533737136244530086867182502312471252663220563982286696073029702916037126790603164407694114768412439014679510592281761509778889502319185147939729753885766988873895639831467441223254375727918671030877273851234624297284094411605600322355105641338181394377484760050346071297916945096618489936971219471685443360213277106484706343631757164846860217159792011037164477082851189954780357698263266023779232309148955031364331819802987784538324832514157820587240526585185675569794024532964793480676032833378046955658102802800861756851074042532462376749463491595461648979722757154899771134171463856050468572451013919473825764518816922038776890276795004956955277120718880001966060897323904519325635376035627154761857962679091400784473250058277857281089668613655177776120339046633097967517783282194587202194787318073323054947700698077051924963471573587787411601378146585782568581122030097167581584446424782049489446219239185222098008330455739561245977130647738864910415279651990526206842365181354043793975084237986457795252593185240736263652746074936503830920244017810674968177061023294425373089894890059050060146985532733651734916621013205948613185674971921003326326116840597250792054799065500421167984385583274296996457263891811173158597256997258718626231455526633088187950702853122911515629065212046647762205051334893004906433721653265654443786800112663987186295624218631274567619824383991425811009426974339854663839291304940469372093471577241510305648503021155436204448198629865099422920442014651968063170402088139736353888944816317701796637357766124403676465430657983783839407536632485677483998577520830945265112966736398251451300345202847663575833625523496162946356242827975227819538644314741496663167275686222930328622535464851025352796621713118879209361006254400436697446966396181107507583083786477963413180533408533309959867777922399564131395562273691139228542322264291520412917790403384854285876800646975607521358403308884484239832257604217702692004979883502930706773917396200500995779498827860871677303452903464005625293002813690744746176178211501970044559772004042310253913582904259200098505231058287570880648039605108464575797633967551612097629489998305103383275761689015414477796530326002289292326304195775334025638052803584554402432390299206115423666462687265523332865567444412115541153802540931220007030495709092277002895936281268470166357999287864377046838271230554939925240495883848670991936261550544879126624555055339090293013591455824433861689062207083923396610169371778840852893347454427336932121257723861465130758328386139483397005071990938436754748907904648496530136558304790879639102752031205391598803528142906697812843304611543429279160451476387474688770529491149936670408266141024654572999178362493629537066506672213955891036616640314771102151772628380895395091711292166321157254497604918125129661077651497595795890947168261845542797340622304141288746168054632521045780646006584046113866722676015889929707108278470566099718311170732208981479270440758790587743782984392198007932306251155034899193961331275123300745955552249528358435627456485512723612511516834205182304406252171901544024497383092369483896708867439639423367161456348024588173295851632613109376526943588218805542641283774679938915702654977260147545004035797808007417260316082479710115222197488257844665643331893758217953496711765998933766694193226598369294735186576228687244998883268527466071563056412738783172676491503444157456950841636548038490527769935859218241115743212170998716272650606629178230536751604215506602351795233304394888936347188075228090787649317622671484572116730251242788570450870773063892745805851687136521326558745505187871907362428532512803300636371144841643911898687693289158473125040113228151547347831666297000174734673269834720061833657509045585473666773649937211101945850908698847754760820703274620885359858980476903889921432556997538053349958565427828785282054939331794223880394687867021794030171771608425052736900097975779069087492010290515256044650021546383482564819501155808398860509014648265224358600236852178568559475544923405258759555197664307157752672276366067006792582197424732018924861524682021487793348500749568935970550346831404289220009511911945724279238689064773543581239339040078292769049667280060213820619630576829840049454286798436444001768985521381424435032198446115131438508674218538081512254014443162988822020460667410858692254410703361033096415298541352584896671408518231874571440416459727713223823362915767877308807087226843199220112120743897719112875109378778443413658719900970389546398905981670455621353911214389177301790232467253949132788281237267579672673478994993164223748503101516593347577906179253286547077261181868743938731371211448360120109777421333297216687106507205386446660359707528591582174678101347664232855631082289065542368795077986803854032546657200801340070545428947012951086040238098952140734214285572885787685114899257695939970276830755929776781994234037856468789903412574014777808601925050306862452440173658595917639697005500635857540039903713692878405882311300575707564251511271451432070959191398977732947106260278818655799734968367386767489866244381042369305500025869956948663992895142138227769503942275116593218548991548883167462932905680728561340815882796105925989669310333924374754136232019540050266246871010701188214069843147285701176698815190914721864735956612813983271233541587834656456149639857614950881130293439496591170868483840645975315000286068141306736921977572888948855009518650325269995657807535940885220949490648561226746527354078474149667887930714751300551219777170241817729006255176479937073579043446294525362151874986762704325859571281051262108347373259689250681852324255400967836240490155478554572161704216842210413652290764443037286382128631712530625740641483381707914252769898686920030256693742789038322471316222691203046254487377323646716458851117053031016011257751298034050213111294296700163596231707351844785804722784261403871645515435743972117081421177201471305514621856334700007355959836667562362474695128354260454185358062452731262849282967286616593662860316960361228157956877373523100333224283984816029933332632498993484297681348634602377790348678791967875302126113269485208373021569378807537461767216517359597252630614067404858971913528813650222231650382242318808666958914433568568067624971222569526227731105365024043934569929458736965662740745057003260878031394874792510318407413021530313340285297548975483939364791748710297698659219064130973419946177091253037044430775479042289056872314992105280840848144411250429614763424743034794745386547911792072482068690648450935497894448093608350583479635154500732429382473793194161499683025085211204929345016105151024666886983618719585771445297939216437341544361451033133940910249748599386324299383179388575946850693914985553596926648173723894316284345784985214040166910987140201999083843911812728727748698026671006685816822133241031928794640961189234731033976651727640599238679335438118054839232700969559623550175579690866547320885104580287047345462159469748937374006021798835818474483718479652133234083705577600908311730765318403000795596888728029279171127223062236188847522818437723642598010517244628026375257722395376020756235678357039303058342680425579112193778636759779562293082435770047072249148894380474563745206386407762771534930509405695086469383223913881277758147475141011501552847054929438465022737380456095573628231786914294128949189743510994267880674114892057459935252487785002164247298786130462006348181028049470258036881072450558181244844858321447893943585893388461768251645883330194280088845634618341389977526866805321507894952049820954374303492484212213596777152744841735462780878699595412117338945831556382981941217859971590461863500322819003582277627678836036209591363432433656576625187859808121667879804961933041271471277547326072116044962323184515005644985793583614690729329354838553891222980558789666973391884266132513021373817563810552110196569146325930811134563234043867449990719901111100767686255168660344159213614234290310679556041459511657792506389949367332903935159057596145463081353398675045568157099134402674059007666000959748221024967917575418341180110458637461839655006452247655706024858650848944815059755759623933342580775906585003355553082298587785294283887172432267242546191102442548928677106863940042744057214148214828297996137138877612810937735390974556780657570871200696571206050976088251985482607063338014027998341207636799703020817894607619832535159074030604947862270538768218218465353124682111188775585432962535944706473166205662441726011576921649069956242500341317734744972423160342214140353611526060506515416419426778699631353636659955816089041596056044826627688295881588027259418131874502543675291219353491348651642809374073045620712955964254571444499804644476477889948930811494290216420826831424027112043991201665275381259847079106492154676619115130101130096790977960444492019270275511383074790649036746226116707839171308975872876725339958517714517704279477479088262438916752750075369904910054742223042020263521120843298843002382482700962724160896701902204494125034493381058128711992596445006490686495840925476977759460149427524068262679076538213404993600797818681656802845471630307697224746416168044359837057519594575962024895122226443856031797781188930838038182649084987335582574265512022403495634204642876967487359615168780972377072251800218017036043950986138489269463461321060268671670162768796999484789502832270466761820743959428215217063653599369452230717327328982169166509253762823067907786779444712405575996368278284161330262158994556725763157259733300323877560244158306829712700237011808799819571751458838982671596465840586097332386949465461614376885428016401052526328943801041696999961854147301334483913058360301828200291316630057342701777834447393457141332517071447370654910537396244665620848249547396618866256045077673862820488811213760705384454345187318183687655678404275917615855739468001187689876249085931866066985150555871686358085489027554990593959441766286931109261812953976084653459715528739815844507173346288434346261405183737288704926550158856670553956953808440010091431494081422538693074856336450865739487478325143614980398212166940249208600653462095643981622519996310291565118292156737625444723907608194800908562896341926499663367547727031653689237811474771289665065680111890424042835712491664500988406575984476373239534796511167180952427202460693219742962242868282680304372961930457141372405245771121471994429699369757011496950802982504868195252621682674922364584997077852468164024265162899775717069053414594999748400252570015298962416545481913769132582984306935299025661028268734829713011046874118880616389408836013768701212850515166577822450051631223435012935972969094194817563974339037278993808330906435151275286019547793223606650409144604862572839229037490064427819403639899895274474676825066219395205799954261168433222205283109007683633633266437316449184604721629869645789934836938041878879712705026052659071812616927337721338525343053405214639378277681391883691738271987614550644390462047618750214118914255707407089532430860998818472583515629307968046900742423022344739890715869846384100631368327514788268188562076207218777044239872701192694070111554968445893342756884300118708528613104614622083422460402374082346166213764065929771389178312164799481826841710120075372707130298244026164967609099549452307984276022750729047758953021903024516826491941746086695930880277267590716848032711094606325927042054608747989066919953469997258839214799066506188184081728277268914648653673400502071709875403726987054352945330515083877029610755114712730468441247599236676467126020578705027894816813251291505282679570034091153465330459495080175036711210761170467086072722536260949588205662779842630211472063878161094877762161800646824021947256890528852712362982433778627982957027547714790655188222174229382624576562977171140710778468925645600611235376308143097649677032184996287659910584874453396703832068034464605709570940999249594393158476502438348181647860902243123576414263786538176152502542829268411626691209406101847036754240881799769174757613899913359815472339327744730598462885536654198890883626281508430660566457012204246553968626923018371809796502630959099683565355147124254745394876693484406284330629811796531885105030381905087645635662443683720448163626535522423981100282408377893407635113854053475825294165480320357777659840574085349257683732437445969842659715308808883568316460826343410057469634059270019140891034159013104565133007259703701407650162273533884990457529321512746128121697668593608475671951904941640812640604319218366639491660998519115345950734390661173983708290879333001670469431308319917406310451456192376535217719021251511171439270248876528584620042578675663267754261416893603549678524024772681118754222967164819382015942688857250649373689028262812931101484704036561385058939307020938600037047997366543233658861693903843628250101683198739863294498779985014616311458796637849192544982422607315442172668306064353613200783307077526624572935780005348295317390226751879798310844817715090716474156465527375536624556222820167872278161572234927148856143376104617840491372281902870838192344821237782544908457863827902762975552253415556445396042951692865030932804824002154747814056005115126441040456954488903268918287336917694607566029703258521001330804885082977887226372183783552210481022633880532905317796982885961590398938037768123308185104214249015425165281039311851793817017606606864322761925105131546277447246168157120012930774333499555484736043015097888001895209206654344750697674829063383836388942895953564041025215282200879398631256768840691059280846023573839002813127539257122908337646798187458801503289386362963353034701691346151064349960121151661243230432216346981241115149663421673675439832161500792143727653093709335299352955469431363019666843982539439681395059118577406785562721002447684929433006340779117527345247252727946915129146758042179025552304036054102864001323402755774296680418591576383534865708572449099899405485002528721976113469693825739093367660171292436434981969977248487793182812574712387175204087520354717345415137790574928448585372346959527597287199109386765109481869961593349386639687007288210449614662815091042665017335183087827682493103662787222038275146786587262487687657081329192253870413482932387328161857390301961948597362270035897061800170131655478636941770009319841987914918961563720626338217991526935967144715890743183639232915057901727109336672521102459611642277981679859012536376277736694269250740742078618906158015113025579949779376329638959170472249411413400166047077140781499797832073990382016058290737386905874052217275889895496741881617566282071512073157413733419991672419613216475498125985587426557599434413556497319892117753863374736177393347993565759562505577821622348004783498970492202917991814649244292067580797090890835494261304436683838116384771259314809693372777072263604707900163931500501053444992218262726775044437438998973041195910371506749480502734643753440011471250601367106922432785998011197533360001705611054685515233853494353926541284793214152583215633241881092028348936036941284785029241954610086107522543097495816664652638659088509102043489776214087399384282510320802442107898946739739110962852150556552568318693836649267682364507645266032283799260438710780491223086913358440195129024527965949988483727408089845691790226997045764906324141597627649255729695907550496745243943281025935428304540450418323453495763069355560466839690584177619558988738171509033249300319467530327215983006463253144786075408430025633047441714071835422478239226198770360505883403280411942542921255064117653083256677691613275614106105695574630347135542920638374716652398569763563964006865128021815259905046817712332434186851474635815515853102988868395216648669410045848843257677640214883920726035184339269154908433332694794946765799873688163334230115239017281568829943286552620117784597979388865434184164197973389919947789264430778357177599360138811636702380812939367827732635381973854465420487290177794272945117072520422717742268237105247314826208139139687417618977746493947559284058782938956161238027930033622387999287283033775655126423679764455773750744252711512748992287115361119558837158272294692708271767304269016323739276931322389450881827195175328938260779457385446965533866112887372984438088922351737293312815468729365483814072295801175193536469079007819322276325880504631996533521705268592162942506293852138659170067871730359446158345672218127234498800842382513676604634012388835553136318003211848178430776905072585959271699199396012913950141084807965307937973877046471256673756178285677876091100239013504374304871842537642759350230702168427786036609305592011639660458634921375713743237595403071709453568202741298413258607748321230233214714183967860060601909220889674430123350444164437767637102033220160636859849542638104527127335008855734368453046436629548380724387474294510998441555792043616637952634702985065114852844897080502887762104398744197907284611089073845847779993832454546290198365459796633744495545329698516125038769526816106869561636403956274447385345301655136863115902225243127251452662253043200964530265817722284434434509943570775050432591733203306925003442372426858239609699260541054809643718206588152591715535423833308777988041667092761455871020494643936127060431186485241839859559640848175033054424384810164869284658636331528974093404295429346418539073008256421238231295380542757764725609506751773419955376234695569274185066073072756066912401979409041612977955090022766457698632087691968021713839497816942821143798089004319836441510630036290838471075747110857303706352692810477356880826091822476515347305547519384800300112992322698221925233298221720172931101988148923378879946649769005843844150954819084051010180042854373817738925570974376483259810749776830183729030825559999225902253486280356333184022702161229431496860505539813149454690439775870313501493106538362446298850575207529794686042358135502261139576563692450133131668480266035044983911690370732418542776347675876428049986865886484195137495706822001170672182562007484443544589736730502244995581762699474969678197065091275085468829265962810278815609054894321148182365287532745323442494925471012251908104897348689272337810478994106392083606764747448250864723735867186421765622390044258306513989828786660237084083870268312007129096824650286834270718432113117710602852228193022988739324157072685833421442845735088676784215865746830279789627445137649149747428411075797603401451683743017364293766043356237262169364128739641476492487038970903832105038895766280172729787081189438008561906859252956580471055939034102713409940530469285899512213896647810159163339386240816986332576651744047330580006412211540716037503121270919205865035460130906102850591062382785892174656880760670900293549575247547542349481145673793360365034504570957380227388544317942658191127416668735541001684738433166054024576034660254317077916982697295330713646153479471666421664331917901866041989346736947119967984559037816822599792815887496531848996685643226041274526712084820887621712614213300172160096348794613775742609706791707794506913603242457669049146823238561028936062432446778596425490354468946062005122166762425070430428509185801745309454627217794807334012891742886179523112227685461637058753900597227777478658456688553760204951561978413738415899215107098823721749911060846951965457536198748775260598288884644977567480827465954291041802089322164762239228128826737277390950359839585861404136657298131189325843356714713333112522579137539131293648281218310377993260559156473866755476379282131460394525419875224787677172709969962583683925984304811097338891233579109060369530037674667198395355577976702044270922367069323553445773481065848812733296012177730444118293692230336328254380715295820823715525762526196210513206357866154895481450100138295334266182113572675021762939481450966110181218985693473875693794868897081116199478225160714800797076786725816303737839344352988841294997982514044145101185580146409824576930613811440130199666836752355681291154588241096877579135799466653656134004957811408757646673266637551954625793940911207428070196554175388187165096122572570105134298916780337308037377550311007705373104888218837375140854060253949116759738321458672898318216435909028442841918384483321693165552061691576670755390197418082291978626837276557680871515295076990930920177619181219952380121751168862824427526821530686725077146676977861888230787414108681893646880852096922326626323910950429333772312705204883802067426313436620574552879932732989584692977017903297263290946289083095436595551093579749342122869566529352092486174134583830478464638685439957909235405728495639630795112544710174889445808387401022192838649480048592936489093359215855317805102772417985701275530949425614717592689841885932524873885821140679042028078081053641001409710809162546935333288618545627256181339093707349294636061264380711586163913755086957502533371497038424557110524036152097916671797029291278571863101598447896811266093318973437597460686934171084904112915932774509794467722332161075424614450942406348175300149759532137520472306947527886525013874703095795170464474728850779402810619309649196670043351396683504653888216429738627265787842960663708447650165553931293732480467326214980139193467467372988777412340546441974843258015432309332603449987316706512933342985252211838896502904838652587362255096171197952907783929886731173573810692121688888749107812710891463066886421359652648652311734639497965822390891703092180817341492225938914621368320410744926833650882318414475961689852596322949028413270785782526400118981424233348223615740606959870598914667699242969907371288357433440912590379251856035571712040686828229572077622833651273817253111603732949975922615258373870912896952352825101957606699290246125713856954569806802943793005710087450071339309943098191482726262171095376918734237486006473954278355860677634464744612918215109094692989040834714165267830487609029067328881956983424101357007242315985986174195610075916217318377589435696824593620166131695056560106812649125696465890079322064260415565738515882971696925465030431420403902049088374920803374764860141974601908022348097870795834501437156365378732818673445028639325850894278250645531068668724893455526907327136827214488298017906024390795618854366880357188537373784675926770300436731978214511873375520488681358531748029189968448843634657600876623662131840909730038198040523911697040018520251248929279845651296112019210806959292491170140012268431556773250271476118051264181516968889665955476047999447660055111493511702036946401957288716516699888206991376826918463759695982945999782250613862506223656515569514114481215479471021576970980536022237639566226477900488201638249238652981828039970254617600637124343667873634669848185405915543721644930688957322443206113925760574188421937083400246881849591083378602154729072647269692113737168383433258030884196080910319964437403345780751066482247897664757764933336100429457237108617467580765511635917308436281936900263408016828533553212007343645000084062406257551464207122020610911707481082931154260204000682334185456365211485643709582102944514328723566955145047330302147294561265789060964728554878979712238950312435400816646301362838129529157162829520156528908967774162356286890369134456651853043712328727132094834323620486509414750420054903197920397854467704441661628601248046188888185833800417824751488864021115127843899758029054894268126400512474806620652283569695520105906667395008419317699108271876344215934921745319177396966370001230564970514681089707212331373147574710077071201546023038142424641939514147861348097234565343065160765669888242058060240918844984145434837044737015086286305417810354963661772209622710951983456310202922516141444997265378960926607557308009351744548196390019630225689236985122289623359497090671719403104010284280856820927596636748880711114284945390271742854090302634644799622596807766403821730034398407465180785360129764939112966533177503173293080194561988763669263515044538246650965852660809959864824167511787472886794881643335685757852959854418729186531182124366068003315555679339790519622135417868159033675893737613750320798594156006028899217724165382251955199982624892983458070803318930044264220179341396879453926844826591139035713065909245576091783035552795201907950570551067787776600601566812025326224173289365927036641539061907439801728809115599718153662878676019386530433990399785153416897978050629880987374177357673525142638772383453271084990358549994329058647930692448476929462203179575625810998490018307989095507396716771132700923205869807476637438492501004555041973956340077911399098688811432380748015984795762144202838206124307445208537270821671163598480777067215785597189404147045982541888196283092045768977164296269636238950654529622370356300489358328322748549143245809769394023982807701926445054010964706089356220331038641516224978313071998837184808522928458226671284915931126588120402707841817333968163552141540253603465161445261661869952636859093093406017855120488264913177573349474426750127888928811024683472969724766503779023814986928111714939909034652658847291964425471910937360633976598968518734184893049101791985813331450885585781271580771519337065611557869882639904260176909418611209285557945454958522079190059786723532336651033683960173290335453841536198048282629121013156299561236358642185759149053628152385780107560245619653975618313634082531045259980915618122481744919197032134344910338970738643394738078337038486502868512775710030147679471773705233481984475765571187493112578257292139632559869025130039926813289250754890725758594556228420015864288690287979811733432731255332611720160373000984892507835577138551943403373713442999671580261216344063904980882256933788666700716689659295859222843455894226590226823118902585807560014990605061625171559713356606110203102214986224015814341698176892188154943777440003259388271787093388254014598551183598570840472285312394791657360120190519866398274877799628006170261964369456490742921886367438654242431341851257071074156614536284094278207147325543699192122557671114437609046003365328736636277613258709327372256826704090450257195286980099754688261162087625557093418223037386824650018663634309077997188887862786896881471611662742815568192638160549013696936700042571426782868334496064855071717836549250920043533803169011091760703609130715648981583263599070925533303077950180288093449645828391544515030089447386709904097429287004518320159283008043462155455272921452919101477340924457532293561552326113831365319416690103527166826577486942024237366903902597422021109711934092173758541673296649613693649313265738456696456132326058409229376501131986855970691353838245262163118924223695485416904923131366589595994004460682100207570552244132969255709752758740017422641490085782096135100658582033655267410976079580295147915683584828163814891626077973892900043045639417293664460340891244353099601886789265445225186838158429550787278305295972766763703357919857724095715661647169250394939991574999357230981918565394309827899778172999862894879662130884589196328433501350617678198598187377371266377241936015315143535700977685654235179058400995888724523857862012731621651458527963731645166746998579979739266892123744111877444311405931927391027261768867724221142030810329793790620427114511947380741198377814258288800835282335805231061426314453160803367665980793636859034702198174787080964936061451416135072236667798571978974338776879494401599331003912285836392537659260532819266480126858547970732635820358390670578216617287295315474011697481786988931026223149902798262487001243532992931855112076192968220122982904934203006151139410834055968480883213197653145456705820784165304693108425278201204411968284513610121239955035693252973332428851371552431207622652975308102904188709247916427321743367012309995088521793356185367113823001190691669797725014823141178181791259888122976014088536417420609606528434391194067599830601926254138821687903382817016789246008086244340739916407942064296877403274598639091877763965746801923149254905024616114923271705845619489502834884562661328863191025522930657526360635004408488259832040757525401932397327390727725209841542945674416769861477649251535407547635942455930246857832335676169277436014675742723168162827729826167567510415109632026580377875502295596893923667543705815695764776351788309327936697731947465816559485115141961377630386712984501011136284780459940898863094731989575006732037159702614621356296736974417105727890182442061290557236332434670347621076032216819715604197874606943077771120228570659430078369854730633304586810286485996449717194609730110593675550789405654706180655267847813527852449135682151068586814848785588631219126546353572693009847710651147193587143707966321138123747400190210093493196066361872561076265310914543909817857441733594631270846688951734464256079565684431792662164075404395828811229794409611307803993290590403038207184715041098366489978601255381036853788934389008001084230516356815234889183795589672328338601603202979515221433901832155899713679084714694439610648912560156278830365301248108876099435070453314202138434664829408051398989537755123409052115171089270461840131772210152253656138377194018979420771468760137410950663415263581699837587837018379525520683075271494140047306694256545634608207082170827576389782539006710994239468825116650738780213304431315494725100826284283276452541714931390235822306177344347058795810383244119982291204580800552758668126303540559856534776970486010176011140942775345529134817813299506082876134664873916236708926144051406072021431670034080041065892044239953268188285461706011790678227686861689502982702354480677610726482791486436109138159032552010759995863475788753574977143839517376701980112258204775057735341912045260891945945464572199899351701697450690972433788347121142110037036997805624275401616037578378056152003528743037311458194659160013283470718805314901685872170333190415532561977925959750495591912462772494928944132243348260811452419026210525320079479947730849056118529592604776132772252492540031367038512916612381882263963419374561056404733942615449864287428225597431110398756481119906683130211082492963441953911868473806378975193462100387775361240506427035943765364476509090078319378517540367923900865762937054098969009955244007114154212699767471091874642094028312980420317558950414967383283390403078974718747918684300388352509599254184625780403465878862819201120352555814770431501334263001511167215256063937105211916248909617756894915034586714474119992578027135118479497143578293564272757798733956964964837336994821084540435239907987266242501725884191350618279226668694176517870444062860896189998898205450970408155044423163425014349480798015224245581018401877326278300397822542459926526946914107268864411058842491377640208347102754155580375987219469010627599660451943588975877032309893055346409510191488555633069196718593004300453296559003382431874677810774293268625966495733129809603867529612728282110238269489240657034737698258874984058338951670454277037708702621252888841443507045518006821380190482708734590787132329865556447220476581521031230338634235765334158363822176362023982811803591079497149838851518629603754950308082979965214979949844520696949370718227015021716630822764592913261450987724533972207453589437256853783502985733448308144110743542243724279402293282379533318036273264348303131594951823427168900761611465518595787743503696720911840384598638935941710818261999826541824647475977822702061282717038117457118570947060814182413985419123608070683127529779769361136274697559566738873008096186145644967783816889564374084709190153435391887870318451773231764012071849986971553444542446750914492283471828866832582194223623357892171965731208338599543311392264690239641457609090910804468279406370492250026210358996960893885497989949574776440383087602259001465952499046616608713422470991853666551925230655976689257047744104909535263937993420308030322903887389175231493857778203657335859106070723953542588004968110643454065850068102089198349357357334185948448964267924569911835375266011547933157844476922842958724086851883232379467496055752687237456166011115499076964963190896252527278639276185014142440404195175470761871131121180522257673522046502140011177528238832755731004089174426104824204552042253113776998613126884266187916183908385730128992542720934268798998601289908314314790771496002613452062192765477903431685014176149564709494340253155392107384515770646242561086903787773764425690717370921461589824870777816582648913332123575139908296455898172116248225292145690864691024074641448856282081544843044406694544008397796962429970735346665473214887735300563166008936582802222226603064452373208101993860704355308740246217743651334592734311852891455811320915799985748042852151165559902935564358459980007724594865949853952831089057855232347495630170018385674985512886296630179301388160289369289154834132875554969499238176407886605482618478560791152664061034418085066967432137182300395602461652911722619081562951077837562798439367390380712140564891343181925796379451963884519705279185870890465683676645217188098111322797084131673853744101268100723862939240378396681748789289882393280594999567326449501603498408417129491154576700379824302583713519651867002608423719931395895757842198029923120604497865010569863808920518381729076384626863936090445115634738392673151509836224038846744439725400219768586772461958193716839177044838114331603506861639878773122431271286426427408912475085954460899133206706741357305986888883625984578857397262561167116209116890195402827812038988047170914798763392585551622108453021763789151989511872034409891720849441187539325298008062619377951846828920887687097170792657726423019956771536761914926098588893046860794834568435171197057810976495298426140242785872102813072995354951007053593067629333197843943050301673891193999491020537132176565665404768303776203360044942139493071533045869902352762783596887222872766847288868150013857340925033736544017464544070710071422411568627783621264210332720507442315371265145005247126392649438775657691374035459231334338787437364270518399212944907298847645105990220204451785126731466475010695514482451692185523309166093817792782314881095521056354322819692152923113882726933471383771180584457892581083908665275655448502167149902079599893805365103476789809250837711247047467275406087582734950729595471904492591524290686995440292847190844306311266937212933687899488390648213698290160148506458530223145199870792743218750093049528897682840143413655416532661793338195025804570562712250807748249535463623436093675545828443125874527770502288934715555859680911149589088153980711518027429924971967882053835881767552332363983747798286398912852406563664270234462670984905402746994376010268351474882511180548358534900580826373886614384927944468000961942274465568853013082548122390133220783090681233069814344652983274569061910319748828894406689405711406393176519060587166657190261739064873471620541381482849530983383389591951526647928632814542559372855456576788494800996771812758923056932860850125405368123704871179791414354255796063587877751439042237687127529590820062228236965117699345270116665433528497904417669571904459938795201542972287934721157631637243396901730541260420093702559184288817174495545178247100420329245041829923512976188229114428925309465498707963017551694664885007255892395857117598884194300057265906122434637666573443748906227241897482055057037847943398923024899629947034234908533229032947434932250425900625916586551954381508203617891244242696779378541626784952297776407640048807548131213888555917561397721339258437128142033082765659138035799963538906721657050788316604264195217096877708139828510441739762163086342540920778434803301447750625803293824750311533191326352516970351196536068049795745921041569999944360123193376522483287326223593001573445052735491495776012477397816769108083084460036352276327967110347864333125627503344290845737458117954329267992761659005420297225120019194451042982284473918772333279478351578278887490596579422909512882292552340180318032698323231394218839925017371699868822123400791559807413067204929883826036112023145628586013960681925031547929156540490015408366151179399256813121412007186335482125297040065690335510321216663595193075512254591954721303462406344797259873261139127349169738721312753265200054784380009311953137762784750031715565633044618327036576607449938527485955057229524520290526592669511443587162193481623283829200364169880250037330504008020042219781919332613010746339208125468106029640649446100741786695428710900110291879966970857551401489386424444706575871849884531842094347188814126024457584851967763520400901146657500174366756564670211658859997870327977993455093757439535086318843296033941523867251118622592220059119241028343336867057018125279139564011344928094726515516365279303010155885264807535791488517649103743086316350373741531556372922688070789132567030110446303876434265792304035052030477615467946590851146380103197925202819901414020162379809998332643945466406309928014350074617180022939896609436419437612772124226572379612151403713045311211264644169164378462618956234779764215485048352272107844153563768161680288496735064450677706575326071262415072010514144034561027033899537803953265184845811614304785202017044935690377138154565174413488636051986220301005689432346439823099649737838992246543909152548843516518210129499778848361937225938876363616369247162652039556062999046603024169083332177652811351186850082948633087943115324148167340726413768069933149835551135357519613072770167657839170490864892190731043287067311956485656254875777982005673545753358421670916407668427631342639980332337547935189400389508472075803427518993572588665551652942586163895275171212045917035497618245587612986517141006256349292884432396326444377844024554491653933008831170959532087318434520587581961383294658220771411678613994106044465465996005345358482270534312621849222024571872869645417777677552407506752661203482393336838234855046358998468458683749411041864937051407347565253298076707643954856405606549367830143183121021664981769392687160137122406076994654379724666677573398210966788425855494310759591774719750138926065957905679269164342500783979443658633212517984168737201666019698051922022608936925118977015095266431124284651688551702500664065469193937492447123894030915418440899061946210811812817334894726603704265539947532667304707655417888269130506050638903733715526247333148773703024666153573269695947305427779948494576305438255373325993570415103007581858346311702071115047928555786917337256246939366043382825939121706935722081913633257877527973136806971097664518868963807158469960425368133580647016742477525261687445529378690494607220312403642160767289696436989930203479362875791205612000536965948989940034542170831085422053970186461735641779000838763390249943638933425363095339666544645409836364658760897220766891127335963360615604064059931760738543089591665043830549646019788236991285999858379935645514790423053908993455844490471740481045648979392794823151424568070606013873555165803781200581979996527192966188596983982324843124939654883059254303054747050025895476925985594609906764752803063330113407008756232884674030119810723637455674101052584233278448579378897682536760467526244637711602542640636343317548225306775905218263232283363657950344388238507243663114258186205162037578959467040472049890480520345824893638432118114148045817813438528199798846294743371094039320528897025682852333959686673745435056418838357415045474104184942247568026250674631415101543796695835051794158573712792139488967589324894423710083328750102957288804253190114253193914718255576083172267316858919311121984617719859269729366929661966554995187331733211411809307629001207390780280666383049064794903593498259263284197637012623984394602491793155632490428100266737215414778472923037085124686133598550132658209792786725874337832245828948375051608568144823628243587834114583894998109138532400807923892077075601603675615690075232270396131174392501357510243654232861084701512554733655966449450512575836209939761349305372836314357602080675685566941453469865971827540412290414785807037553667995663744643307218018567646841477682110352102595063060985172526628509259492606569371256509936476244102559916907692706400710578873882157881214588040271488442705353415654437059780207653083624555188218087296744656115267747307351413573899588354755483623024235775576127599397006405330126781049026142562741565973553766279353649143944647653873522570248654362481543306302132335397113183461057900656318748855881632033698551926433620172592413435206348389570502683496183135367646987065772393557929564293055018529379093828141684829340457241542001144578750050854366732400257679789630383497137690146432330894734653322265177702320409447744939651689792804916693480369674858569762253377085804751679067696916691758158717979509654402095299054863811323641805556855532663281082323318524535605106125334744728493079159539792198721014455748626414319893324609083656142893106867666002755099536011354898391013106241570033771209785707951647463175608669766345164260713266292173863789002664871371515074100217315417600516154372466148737253422128401301472333385940332453436315271612382590645468354922404182425327995612158285573449846570746620190444660043428317017551038788509283636537455517464075049544596006928262153578893965669034002845678646189189381751829986937884724313363144690101117284922820548214532929501375760980266445776691330277700711099153918239452823256168106587392529342418116819246140207651519812401826202913605306688207455785990654196077008015457784851069028397715708478698743398027657182386080437101490462682206557414186133149584075974432417744008266507581592139109329727066376399204032021747541350503114241318407595428807454805063011333586403149305684557051427977021951272469496694688166947127916094589023503052366059924215946847602266299455103980909056357488284406427625594090182147780804573083755117144761939586327091717468083448573078809965615494578805517964309036411894205176104414294677784821120296463607298857159445404797220200698736890133656660708916430386209429838012150737741190037393260579426377230947071162912851155220508209977603376686783028340799535642811473165319045766121005865169132802509046982969582916259408092773169484910497484810302184478231037128140084979199787251024907148822260543442795696076286717443150269655587447890034052633793885078445309036382943270633019417857592301162470962009968527292036508846597897574420894749100911766577771299683278974108539308606699773405310349261808119529454071532831870429821735277401976899623954689204135173345644740917293839983449840297280831214066694660123706578386582866466942709593017950193834098800010791117205578433457157698641431442303397101466575768084680326469261261946074883233923785123477042320765791614505106056638392111386180242366106073581119228322959976481867685032700805581941729703234837340774719041044038276689915331928270715344828749648677859013458928516911935263792698868648577960513211149425542364512571230041555862532706669136155734553273725328270150197205356858241496627891422550198836234461656449063004419806718497641242696783945246861348188811957237113185034992719939073213172255235046642311429671748321623567984712161351461414784016113503320511605357801416053621651798213469087616242767217393481227451437508204112301680347983111062170368496726191356417245065829882040962944165119927416521139046770560663535485198948450560624574407529040899684997651487947586332265859558616501751414030232503770112116039862971113178359804755638185637155955228248468120690226971141403216999655881855404291044056846649808851118464261751663615546421702608837311093943979788554639902689956891937224484231273347406916696619484677270267367351276367809070532527470771138406071588568393766196175872426391132105055209673681881867297414936711341912784979700173416561301487837798161738740776980122341912196411871965009441428482631783712343142435888106420334662580504019289720461491537530414077460781067974944645020547579824419340715713981459378447393569771754169042020939202528149134749634416079103108608250871008406172631205868904684396897700126642297815597204518439635415625311189918217433922776501026945312835148300901109708704900193979093302579876677800144704956200119815471511301212982274925547562215952110041902965911708675555493074742568929138658811346074939937209760786237712997746040175405969784842711373886667117546983425216203699854496537815494765652179652636732910349797438091296820273038681898719205371682136581200151805716541231026611868440000925631249554491940266419666956313078499599946776148454186807851622522551485219877509403525831485392019331303188146960695302161116556366446749482598514321290312839647576302563471509039564071792389924133203785418250735513780813236246772491102105968915351519740371700531917957912786407550277309857741147657427989909994990682656516650392520881746042678371766590039117757519961522998953265167587365891007896176116835294978420301539054368114652438682358632486420695897836347507136562682804949046609137403891216361900132061392920996272630048373461774892940273407395711472760519498178008981929540476379912742991520002310364651774672702153119810124418158693849496542825384003515689436982290143308745858623336333473190613462752836115349458951750866787365146583579677745734671371792935120266719516284836774813873372080770421503735800254635009335508855711012367854954231821671257402217830440728302496107361182500986735452308588938482227408862141323769135714540474097944829970801884967564103495775532965154991504239584975651424577414075277440320434805103458941285347422421707091911113584391110858015693504844491481774242302269304011080680578628564128623925320966027718645880958723157182435165279435698009177827589432701464615731410297884797926796118984240119249415694610113332328571103049699386307544189344658990989181465132169475578153717052319303061530518516135540690705705936059039987142723175287850198059189328046321571433522306472835469254231535603855541833640111653019302782966973884339583609693760269777139041570971645775195784940371608262119964492800912316391263437329175003803326978230531240340033424401708964612545064436413860565770044154746430276640471980506649515946536676735418710643169691356735377475545324764436934439342204507297013866656799779466551080633588955025924837759921222545837776887747408534272160914162396496453205668098879010863743724080485649198301169198604621440549380593350549627626598523305437010220967299105012294750165993334102012456037681925986174317993290249549737506399027986726159353268017878357116436741230681220799026016939185696243797401978389365528714000729898146308966357646527066850970685547285976741897844300122749173912807366264740995086979370661914509241540372453326178281023898344047172444867628568133848554546005614991395571875305983820766731475690430759388629507932983198121564968119330246546674146391485743050116356253846439324902847178716515256703442065465216687712981748548260787249252820000120382144699736401207721999998530359749837788983074734665531482361772128610814312789551700490824842245325220284735970249781124588813363461697785299877710194449504678830179393767597842888826247587948227938649178522335468306393504555043499590806510686651644209642297228920668963197166590312455442783170620505120370108872445940342705298802605043075239655464595796531434806535084684474067059123307793012599419382854293101116268425573000157673742799868922563715377641640471343999299788707627822348242682025727374444706825192348727328514096047787778601555880235316803912861168336377685329351937859030203880390195281681284588794849388299226599656321357326253405765434319315907018521662943663802069703009684206914821195233976574262218060526400911754211979654304842462772055519345044856563164883582974353186046265092385117885408024896790814478948167168113339476522798093669306126084201698605545036872348940508168238130689225426797354034342283677459245343612717541927277553196164308414419681245157801886877913317557202514631185024286256649635599332518435630352829570647106010455877221433433564587825677745294601155228441789684569177050802039129602142661921040522190488603632936189419350066936203842095900062115122928196853015698459132128996763172302558382533459097583571272320105771611516953565302112865846695307848408953496490282036458176369226357702130326463508713407930298427001243866922663316550344293595426004995741421794695815763101821919575920946507085754096314923291709519642392652003686825965636399512526269865847405149482968242314111902976911793266223955154868804590110081608080992800103627486224593147404372257833191583958912642511282215422741341980570587719938188218444063482635750406568442305227755156713742278018197818556019876611226861020455694580103741191123698432652752773023560076223976766152322572594768360743421557517905769049423975838009770912587053196806703247334030746945679064333609490298652529194806107054885421477132444246443795247080811109101342522871764409105426563559541417260853843729860964056775549361283822945545658022390188391138988601791439707719349036492327119402947712982211311376706763154767543068054753494504343565650880311230059798283026128801699678499842988688845617663799625289318047902537520324702904773106926733461211033913999283244612620973994946020325137194381989461718251364438899852348645847352158786318959230637807060881524891051954319661829890514763621706374196128675231055537649019422430815279733088336015128461229347291919682298390971696138532565477889338053304830322750242569736899115123940379235617478579746688001682758962556074059111869434212435809096205593935830949824672250201757367658679097365466157834419736205049210505453718114386927885480868329860838448152988063323923093423888693036408116834211440969357800511604952552558841647565582523319932324340374456779477683403620254137626919372336175447503589950265249717541690059467390858577649473052510205495834113452650155811563326112955914020017542062510918520413658784305450837611284279941010808414372659041522083519016961119057889946123100357050077495413859122372931895589952674192939389616433055665095993231197032926786103336702407218876826609148524551260997974838296249479821931716560017335271719770840235718201706000563394190325671060320447740084475990972800678235688093512647007640777539543674887205217319303736485950183385168966253213679707327572278717923702583227502692184869070082856931776495739148290434220766755602696925220684943582123446136398771749939618668003851843116050365068703386095310558784784513672404684875617038718505264770637281863426573732765895712661462071128405737200757859220207457075569336511700452022242360298730086541148272811447334561911804700064077646326082763873949612028338381873909880898604911835488662797018085066407666962750461718843048056391313310346648619238759867908988076075221369681983743991205009267288818905834051570773328043537256919308574228074699780428190008725660754261519896161863878981107115922554729307049441487057833682065773944157839982587342092748587096706709765149763275416124105646407955443097847986979425632223848202693827537446332009643753822235558027686400966422524860385061808200547680092908800302490833479608654460865527658335747121183383710792391707229262065740564979556967417838856130713444405936794485308496726934180819289965210679931872566025263585544789043798354539940287403504183698371724137997841065814635133032012381261401575527476303169006859686151726601807003298597052961455271198535974567359908832562376945583987490285700986849725152342818682635065470680118399599675648377286850044788908641542246227052116111226989235453078694862990529824298912065249561597515003389668360195721470438942317603110845716704501414722895301091851330100162459437357744677390442228239256076381977540258499734715328727379877376856614333324422497785745586249273639412596416554481756089491807090051198257733964643908356738121806057474741656193788706047783747972588445815955342784060845879990427652860396108531389096266865549389206524088695163116789975791992302420853688740335282563668403123786494372063013432289088425998732786672756018244560759618706251909330099684767758281645435620007964478548977270488468084645246731443793746759462648857253091182074374311500300734627184177399490750246806611677047187662748535165392466322739570798919252516256875430302368894072355339269612175722588264215927032296325988450315901641510594492568103792325761501644567874379581716534988794233858908514594999113194857195169959756346835193117061727597455481458453127579944275538859627706271770925455328588753023568575848066105364643005183981505114443110435837860553454641382554871081126370376267081981941513491558079513811138239348510098446323018238498429669223974284816317750966389552426498213338221620904332471129837476444711748340872975126013384199454605451295977219535251267112873092033053369037883789039272379082865482298670528189933927942622484168531250307681071596005553806139461378414062184527022001979926688590318477421123695360537979031340524221016121854435286948824143247544155028099784677067781145520271000993091619892051447258059908495496419236339600306149686356130639030773737441594081844320571383158088885204458261521113687138156076886084965435999964167621011857878343865273569071647537134058330400009075879200246284174264623630190720598457086078647263942184749628572058239040474729756631877646362783513669147323327941817049113165516659901294370635149327231438872315347520583923813655908016797844297238498260083595745406335008182274986352582971414003173901213995894330155352584763085350927446603388138572919067180435865195041101571368124066827180138384569509777330155471489746853097494743073695111688883408765077774482316308810621029074351490192513537616946967068958364858649475424422452526243703185509001241772108118399410654521667993921064553017051002251348841113976219673849127677602802962358636941994730877746935049384438733273905825829280432545513748326789948887102595602004177717790378952581989946723092950315618400588186073165447960607226259065317437616653301829880490753318268691540691934247179345745643371680553267710073968356440118041552266582445543046054026398152357348004124130997899607076479039450831221750765608854589304977616166743221594627608790252158347769881269905110100113296377517813069296087165870308568402859788223663514211921608589523473506836929746099704833487500488570343620545541299568691200371284156881354238782566123468781551950278362115814051684227597435390351314124836727577577165208593241157606941851669430292928288502861529155110488268686891542476025031639215058543062155824486754227228123555032818431020297076097158778007657562639003081808550277043460488329660799295109288733359717538115014791602982232213836451218466028474238243088751214223689654038739535631243274784960804347471059516892547030539035603104712991618160566999619067891671612453229247836087777547438188163022217168228522191736407308498366528611972042562221295225241934023681228156713398685581703137963116554999750118681307858054918070573682072251315891167937636803790817055689717122372214352619384471020571779363176139324391001528997748689746025152651366886384308643854262311066300584245187237803761395598909079669467713819787704505936810407137905844602174193023605216110438727967205130435389308904583043227580612264709000899343540916151594942240142910538961853078875446933786338653431197841684862992417067291331187708532788942278140530415223177756675563619199673059406188183411775074434652878808611973366940737761608126998458858123480769142942707970342025821619884245213143434394077144431872777113649103484574541434513141065240631667758291300318232821801140578305730752978596975488382271131170495069889286076630303713032145430188501856500063014252596313615911643980114062919483500210661457593806668989796388479290806301391562525494622612193952462080060913894185088169194146803349029018378429657363182908419999355088200445230461205233734517655219560787243396479913177456733334805921723797362496792264255937132598471318027379014293395953344225075153517536542027581839442723978686408078680555530379892939978229454351428474536657542886335685610176765904809641918273389155850048383993569957850826867503794785858475960249344750381777754133547842125824979600355293752918969608235721988309491786981885573010805330368758199265737392317131215289769048194498965688523866434631243973672501668828136537038463989456480753830695290856108154525289145247319727236683425781984700973126929398544593258578557876924040917533094062507735156848497588223562782224866044794908173221795694258621628228544037898188667950478333688473805576423644726651388976743941159699789305852631662163147196435843285579600922280670996951341939647309273510676988237934518253990462928387771690744261277159770106248892811964633877639324756447122550593464928953167329741120344852294557484064925978016119400352350634812442160031625744756764381870648231897854652780869748730641660080673663905558197439144640909365263834457074295558862674502695903706783512467755083565618245060548998511024730889011461985757441841604244907900667266039560951029406106515115313110863472052000340476916055661671637337874614468285888337452953373264175277097941879325985462355179067651160385000918959272596572087463866316948711911302664527247211189709408504370185284402501699653902405260557374635046491311634036329444508626997922317706941963506484005271902904756803039899716716445696385222400263223523797655155120907007466617974301061879032336594707944738175388133163724988340315886089490726826947545881645147753624961444725961719398133853286282575403304748287584327299502262874054767765828243100126087919203132602414788653306660754264467522688512277848495974178320333948570798241253845432337178356492931303560481181540262394578022514713861871956920355095696182519140939871361660154985447872347324091490285123279952124223999079080733735116464578574170913244312248645730330841686571605057898227368307381863081811460419988966920459797759142568180073910440592402075978596075612812481767204845529397730029261522502012867551790312278809965869430554564199211779308553658997025148504561870442052455414924514012945737781992761179661354259849120558260593814677024390829377594206824177822940312221558678024400065288637080743953322195733129822402844180200672080517104012947749178964697112151492510214397993072023371553346674343636385722963663262933895861985695071884017095651057196846495604599108184895799758099568748149736384762438144726292170051734043357394242127119225118182600611485139408435752258409113316681436817943874925227794742949737471828464060811751805583876431639518917030967437222575466162681306067751825193509335718479878093662899356581967600657999780437697262127574785595398836575474115943566279885797562557317742212528678818189327527524336015686907306636113134990226163050139337511235070709099404339462570642612782679348530249620803412288158306605781485678401268513689560091672856213315810395122041762535658638828423629481666142390658581656940497960414012326605441550315037308955180557162209256653151639352623034200780169168174865415990683024223396235096947443606707981054072536978554553292349278616749929244930083604684674559620924846057169503972193824688647319665529315966973062637540218663024937229452104857635405864213613731569230440374123785415677387284888724963107955506734996926255844072982701411969858412250197324731746122770676763499846641909244502327072300556647106295240569534447158177471534605622836163918357992622058350543274871159307628058349602240276508708488230187804584674578673800641592252470919833354642417162799623096726426126085718072479596011214016488238753801310491813446775398521310345032327827326965082965587129859268411103407177850018536032580221198099751055060969555924336933694988461202994270410532435889453851047361196667180265826317250992181651603322589856970656234162765290680698534627862811206718887258985326285226486257741198680749144989784099373503116882212654525370004722770718172747676691354536572249966301714095229873086694788239556866504038659025254012982574591615598981117212257624113248572917196230553646617261754844241596949365190120481802880327955011717066596972357196378792004084522561174139569568146219449469021171484786805844238053090606866463963703704174069870195821387141506280904288316230991565871297941179166686225651548261526452547034483176409080999083743606610137964699698742068144142765513138554059343689092915251062544160280954609913975000833698047322626636093821508539839451074228099708211074393496516789993617280940463543394018331033755651604177509630061626649183448483131196758790127185236701530372660762128979531790104433269407967318800129733682368682299855877281819151689844890677562420431587989310857148571331762519266258837895319706928118438837581057378191508719735826353850946495401839093500036498708870791525602676376009110925850975896172041618512063075367104522392930777415317852241813217216130237747667110649988635107822787131645617950417401297866822865106688519704477620649477611804271708381402001180411639565021709557113265260500596488688584192480972412280871106276780389139679754574530416076857844672336481748358556634823859519778182710727454242251346905696093943100812807667416552146901311767568089330440889594020438637218440240214666464772343870364144851623928936966918460100072396106163333354685701908428800449787847079592661745252463871359722104479840209553804452051410886256352270737084197254238092976079079214491147713138385687423440814125892582981528373015948921094505546929942672466882276851157446127673888485902094164184160749578233385802746807834074209797502990135350517763003172110311289135424045828652228226815066493157626093585583498299197601028186363903178843466103254333297615140071419950736834074215845429934967301074133730663776457055621195270240727167048178777921107948017968395974143040713467489318338766967254460487766960126679037952483382224494820994827238291515242766202343372380221879682616652309764524021877867115139987193632493539101250760491342457203069802284684367080515644445223673082796647634980076455929753771342898135437903396829382139320486404357715573916030604971662831462337252579329735450457611766591018201450888825556226933923937948875981560105761270839579056975610140926810649809110711071660194087885790185966922095928874775769898164175567930925773703189908763070704077864331396233583590104005518736762845998055165556117382066890358335826470010444910089705351398802422228183722708223599512232653616690260477964273431517070385616816264943040941769778335878429232116200004465771087198062186205832684132702196021349693269116104586176828904775634470344887643072219948001838547636361586165743139569286207791699398951212735414305731783749811436221056401421326929768658899416178926925161926476168984975004293964839455395482148221416156195338537659621312414790070487811838252033684989012542537974245399998374155477761372170704489171127289888039749722192676733964615322538076360415364087738205501219441501468781588613611584154013270647363117870441298041384269682259924167397775846143504610898576686059452308438797110475111708459076827539977835764593581264968504382372588614870136020088525445653817023984050893350460085540157404943476979718241939742521359758885573571445942925264122953767620360074126319177348771532214309399239422636793607074881037544473444867603934210615181756907900306186713275198448166882400417013345212891451886396303664008413437512099984241049561808372922524569913908348899056814717879243413167232855409626921988124500499268367235350316965856694849706799086045541504657209411209847617126013760114625893153434722130666263913891619598544901106915150432833132926211452073569122711034012414335328270674136080657246059087537084505220754863886362441331769436056010363753941630268791326057912317124482366005405716749471913944349515833699793405987261306026621425986070153942563186119146363096716592288682676798796977258728994057469076717247232746029272836547384693392850700225615198029341346047469203814531818540322828080126745918003866580742016845902544992471889361288780177934532396100323516919847981357897405885400827667708082787527418103018936198480959792300337342310719179344884207500613831352206233602419657948579222960682130526268181501618310485477874889797393794176657027245867409962420721706480817527333990793016029300160088881719827360421486164248271999450275651876311734704241197515707184501019748305949311002540096911841896517540534004018792767991713744038687877640561559040988901773583348864085809364997795540479501799988493449399746309799887107576775438556481476038660415854379535954890841130435513692637636991713867598578158297947769744009268037452396516018795428268942462892661983943784217787337256590564811284204663274640523513077347099970241025226176154787658242664798358074050547400710352593490161713655067960253303350331313116748613647235165217385125463518734164137631518098437111450186499070725923897067222230173053542669195177015098816897527893536122442062344459404084426151192344780317101383659830119254345020123977496491957804600335220807019054465015098085087664666681949769115316516408821560098388218614437550981959974140941422221785744921977075401460274445342159585405693153406942694679312930510967000278541000298294528952113453118424612256543159301970604955008220912996513619923879350325784118736966569814558465750776307804583982869436950422291348431528775970125052073647329131478413555772236383625658639146290629450107303146297840138891479023980201420291148569497885952165261890938831717381535946013136531838555404875998154040245266407666484479985731274596740962264876333840276536825233958941989141968403110564858025567020738096207842609380777361987485233933553787168367215616165443129006519725446524194186129620046952181589858271338436032731357563771815846675994420912341979297360452006713782857813005456132558586592747963573030766496287356048239749866256422850536009244678651129417421071899520669330262158357536885329736176549484156225883147349154538879181763520660462844063016380768034840888419475163668541901134233058768407795400786322979659531481350132507231503350482586144479619137888476022639148335899614413482776499616489399604199272066479074627136211674565910044182319772954410360735329687460405174036455252368669525434223127765469125941368854292641298907413149038187046707130074293276147729539799607866227168113991677511046396352374708163554477600179212791282397949684626660730829444868474120359465705210910078446420828407574626957864374980968405013936270497863888985758342364120910203237230135267909588901116818401669025727475312457780223836036550487190488346342368164850570916029981953320238750547869075279013201187294688734399285535091014523682538904354020879959024068795816604512326744970311146271743662574084455463676854469277778278115658731384643397470548814852749503737742037866286366971756272278254253853980079457969896020387195239644760269864135074100000648433526394627503472889847205350309405250500179676742413944123476299546161595094320676826292282531783965614441483330507359532169581594028953932018891903777785644847977821291313558908126858248059534484129559363001192821837067689743550968149903238850887481000027197044113833422097331798508767778861750935717096757573886001592829346535845405628404104381457734502949695620617324141744927368039659212767551866514890957485572988989563194133883176840477975906020037495082926275912574444823045670961445788384965072533829300722520771288222810226683903033492418347740868233799744924427346957367705043273598262956699060914306644336886242412192141840444555694318136444131417001363516014727926385491319685163748367192207227147268446482577978506080922606889967178144481673571031266984378284071879409109073737030069947056834685290345737650102082325157954166500335571202653618084744032453639640173346856692937345412359353948881811955882920629371812677866927239276775692992654311790233196380415144378064488433829440428426827159256539253284053954657852760786378876147454186825173699408534874774709856873367360915307841330143436911393572500519120976426252277361613021179340057486874256598322088222754501673797109431096515571027220516837337212538754556690111028388946333429873378635955064660399936145433465795251373319391583433293921150705151044623268633477395062809427754048514386517865391984557567719950477273966330160363861537377985040007704541404037463412931557942925505157867853077701659608114398585743711963556793917558039586272116513252568841996126551070274647188297807639916749910240204191149254183835836100235387073208534269315599251060801875425449872262069310555960886571753504816696902768115547215518798944159222069445955216235782654683963747664003969805263503185469843286624775989430790799903043607456764084808052313266708084215665642684335453959099438495912273075938879068357668813308395893186699155133812350075057613436568362930575542470506067062107878111385812241460802352901839229246188471228769414727540126251499278592687772135534465373253776866070853504394681379227372083969329160050682860754124681504166626255284063965491790572732444123868573797569198341172875860404290436938459425697457753965565583501816173256638194746116967977531217413848147561008677357504320206709282713119251736321782403637262496988754114330754221122078373681203165095245829072995887543266915024781286527042987740354672543096953187368042353557538304915864395794892039670710727005468350261493267378705526064793087704709500701928652878272612216032700315744250620566408157640934392121462112992453198172320747376909186465131280026484137777960367672002056376688184255164080527077989394344951148968468496483183280441459739742153018948146682459634612862632811843328821782835329457375250993556687640984456083356959428703263323202652140829540513523619594301295295521870489016401742426136986665088894237114010647990375401098381812018668222380576095210253768310657710266881259785093794656547555124246718590365472701192761396226453860901686527378881422659017363893667981685066285853558495737194872407445091987436319434416627376546783587094287689653127701428145876708357563730410486202942699125405811491182979582746286485079859222389887368387313823702952531035325906736755757002587969765685586880889603471711436755461926728554580325013811549154961607206515061077896118155453352967341860958183730646222286053498574445049414357459945551500691367842143742134843491275808435670783148897105348692017395778651915438245402566816721020277025892290225100247881410018879699073249945222691636598245967068623809706351328712374783789827811110840126794430315929546117191489374114481316540008683411831761124588095761356120684869538401017973180461639248329097266951315226259485657284471125937308023187854987757799271452532519890264514803737882577950651510443229524449059550739960953112199788134188520144738244719610059445794608861854594331306687932110306992387841959953072496896377794791287894312906252413182903526722749520375679971319727633613476593715962890641816404183175911893248835633167871077873115088680960609528736144016221400947061895223738054221132332040716419010335748590868684933241983980126789425471000058754272771630249277967601170948856939818699577900946011682459406876385598926519819732028907555132047563960135791506125657805994071729064466721875611722814203027731606289594747109611964388995703353107728596580252616711980378435349838038089599900835365940515949783294069425233042965345456104313555217762499719487853537327072552462135988612778963936651702811458118778847136198183314217726355653783906711855788672786506770603755716480417428396813973837382036979683448021207591970735147622763805583268117009996152116927933640601544933109751410707145280050144790935493689572367587388236851492302548370108949574501427102421071893301845046233881600425520891419307790598262693727571086119215347224275186191266339082046240336347560292805752165949020592019484447495940132152346114124143753397575574608567073429274926483483355542089589165600338136837854504219401174792586678049690143475748713927005740519706446628455477778936324966736642334178556843436164705447510808243151007911899741193765690278221323034159746968408621907631611444140357930262149324273603826562996164882847219885683771724042704170922680164774114568424445175868236136122854420287916937960381851007755312788440072503523137675162507949284215851407226296387579008679657310290354720392792853553311186812045277992183509211206519275759094095861120816601242476809286393502405822042637626649518377985830822091299057111217370675847209091381962503879948648986458543759651779953015089740832036584801739428149172481789242707717224321399299564767937687145950300090145635855877569965232516375752712528169415141487551049940866706577723474743187161230955553014799345447116738128013800784691025613567694674611772469616430625840415517156222710984280181352934723274763068318568642521830734759103544898822076772153572406342460625961646403856152763073284352933122069878872971813798472717565102352188526550886118043703330318178610661339015091668773380593633517906413231745142965043060467941545143744696772770805270716811275132100871749585716338996076543962856430135685987372549213103086983939672221713243259231205773277896041560853041677056867499621418404508206333845360663660391269750512753918764557576437826121239208566624377167329577754213317025222511372617559767151744784484373766409216566754247461126806820443039854619429317842276242335376691763077602251844866611596639693315259131450780289504917040067412081066647158213356942363924154020254057262495985822698294906030066446287504100494230752116837522806796109992598773273139916314736074841905577327459750949375539454768088410588637271632327241615987100167641004076954605262992997059162020980569094980169218161343356693385814358167664279345488543767117171192559911104865345157804604079040369707635967704829085857151869084730202727527175893985471731861004966796082548519025888115180719610752578574763233129660010280236163304841879878180938336705378423700700634584640160625618483514483177151031677156844249426784636894568971495067527076923127948465769080654912862161188185524619605824203521448751177707013126214558856837171865681087474574202028727734004358431496975077703304715648015342619183278074535607805244918746354518544571923140592396327312281820629836314338777911242728952326138927398070258280635110399239004831538827038543878358144902319212748984964623423731055912699360607482055858025067100983288547414645749784481769947315313892233520378785180794193829896337829349502375423250196415358473039123337878854689842165003370812834578690395274408627576507569929247101316790632851017189112050440383353081938895844034443506033838373661836754170175109004368715358510058767264666123681243870807457379751077229509320151739837641461630407387270546459006039355989001825221203438847223328086682761963472033904565652581078417989363170307356849232537596522354650341668695913192355447733675917396042033168783846912031107765467059839666542729848311414533103141972350158520598267030467367310167534983729710445191040577666172820927062048809533840831577832043064984334393633348882933122889989042361957124700360313434109077291105380126989809264821706069376219445422811348922830083067245185956831933511550922040329842875913904368662965194823445499468639674404299922975341686006815111937339125924909163968721305413975928442273081850822532576227927190861912142874928747951245337532630634959488245531340467981595009640204266682891637488007509595743949829784032381623862575056246810958913856027586621926167754279804909007317859321632340909080121953380126475212446959158391950897776144203634033054214213498133685790135307027062546213269879984583769672893754512392065720277115457892299779861761914981881519495409918538003852749524518648565698216767865376592698346285707718210416979862555494935357500777598727175623762228375352494736506740384448223130019087135345397065576242353056882612514830866833734925248498983623712299956553024645343323558840009205105338572507356850635632802824260077589281648953940379701811814995538416217964492219147736171304916435842604822616834700721957748025461812757862208843682349597171657741355646426985385283296888825294061023489093684232202456700995022463407990402352417808480110676166550103297554869849916633275186137552393417676229249655101820491105883015972377692998697172341407634177485197943788401683846596279066240346287829528880969624207017248860906741450983424495225287900188637837156706215602868418257972232672112601522682680914438628572954091161743679269521014655028517685157258627555298452652789343229647239246122854428887020862439281204608376717703280841654214309670670516180884427841852123951864599050057951975977503650253984951957609538384151930643030131379870572921676775045094623841987354023062793833892831033366390428401549330272077295340289652457576044866338227439768680429679648888951791868944285292876635902346056910667033656458393625821898894335076512189782050012957508368300944067442445699391647924473748130199628509753581098160947140082501131196179017219070026217297355196467177938336641215966489912449887975671608240026184572926169981263433991364006853584125095774713672570611764107346734913283305807690188401221054839010755507113826291990361205930471350927720837320077720529212040845210756994059159803531899909031609348078782874669054958896603777420630952481557268379954531678517485662434905098392551515530899392914189722256503193495881038725524637093488232147499060721967357551196499764837387885188950354679127575097417612145212837246568631943002692411681408148903439598552936651960595580442883837061731593704806271712533622773909284161173725193019675342460474866285867270035326277550981496299426456937908875242935975840824079845891902561777342681663851912626558502068674033110313706553454685476568986653763177366258319874617770408698960703558140960285311836590174618276171943539577170578469303857699595033780147840995884086641863362620471989452970189783953479399786401284419740771342066776368818592513812742717102125811988990820819313127921222091620689190005475434207486518622709329127299791276812948588529134716458269130871315435026556876600072195663960067085000936098076869810634235887631307845192813387636277752067809276591154072266069812356400216229629136069321939303728320549776483244621413071357149702086411219316721924881228764277390912079510249457824605460107138495405552767675606331593395631019828210676797787303770362319562823178671043813397104449112042631457775498271498002603175266997010187327400306308897086699384928097778041508410674746527355454249111859837276665400521907726945423900791774046721147078961760220657528580956058410254474778396779488243719805010525728974868208749074014157412148828833668299831531146616944026253686419367414818775494338429755543029067134905091453191010262276922939568314506149290040178514311806890431751046570342819011058376787591780246202526339721797628097951997795644851830879680312627610928081653503240264597694980592937897616355036392910560447952589647657998553353873766949492514143802454263290457070660697884760674465835369105598967825812644793842250959389010694459516820190873642121148873547436140747838748354993039874104087317891788377375405797551095985674587058951419040120703177236900030954684289064871016286400606887052143325532325524756550254865835146779521005138607386141563649372422593162855882489700716310747159963250850153926095628383873620020996501041229685937582535759236623159107993252735097172138111707861358236649151530201606346959980715932036133617905881952360937659616619632787688940161404057871458459457901022161724364275627188788755355758015326867380877114613221146873563145875904059403245181370947577527917541029255279114856796652151358901730766307777918812854577855094963375318610977042414339772029567258189810622246547269767072287865473435279698790244975988547702134576254817445879331670933321062153729894317216246240254494178364125584843396917439968461604739494506785093510528928793330153822099503624333581614978203513609203383866297050132112869604087918205369982419307985214914543924391358163198021088278838913908378207577520766321362889064348470004689271269247097683764100094995182157694970841453232252889086531805848143089294124879881652151820204619030319461175925334098159544093952587998752279673740403230966692994919177454049741007147853482031709902488100727399636971186219389505445323914008332585077473970369739175389775085110283151508027692116661875155876924534468690381446870841979354502024784486590147746288313428937620792763670835937998518903538203445241795234229698411170340762359027034712007158214998267379596997796023687360863405026946859891536462531767175612399743187940179990481267769848558827860405275015216113586513941543763184551575496871638388867663011081853751235913505528435316196430573412957089455953559211413198145018239213088318353064399329015938261957607537335838266217941497043732735863014463701947627160087063739450110819298940967584702412880532285888108210622870430253913136636680624932690970774776459193445270174159296046788464369612345264504904016736075780814645685833500662829940720225063382454308982565571333482354839512084319221205708198926813395376972327599667340360572964212207522404134213774336176596442865879053309800600685283914785225637592961029306208073823310416894205275187843478958361567709621571944291247140644852830439926118549883696902274769304018379201855550690829624597233724825060270741804205223568643792113183033355190243357663423585290146674761945551645148847550407651887467708007101952580743899890081274311008476753767139231820872379272061009227888644120338071755489308252240199059369878579271710344440474688416524306367547293254180149770538514776948174769341717848319776321384234356551909293890009268789770607961461192935858196657418125069647335887197567661697557654909515915977560499613371036612810864329604503217414973445211681435927126410979215473679152769155243315074569856444880443961616134010483672560220422352338569512115296530457797105562577050615947514848988092854273879990602259391680238170159926436199348363878488723484520261395122918105435378540277666846416839779796951570571563147445857490944799913738954684059891345908287655723279290544680725049620645050265836165454846055909982811297485939567777189031402423590164772007153678405929117443494619123578706081777937106239486306218995163795536216176720956075560831392367666847732668472638229629451261925101657751407206135245432743075115727905510785132662676721633804555217273528931344632261359398055525525629486228295513720539944093030114619126927907373067806946942066429216199572670643264684569850808687636366926302714299226830334218253766163483529380646334690730875704133318269956545981392851090599693630521295010878882993087171454972362366278709584807226605267405225121298280999418337385547638681508976280748330185023503675001729857583768403754817457041764311720764959630090465751445324765032372272130530552050198985471531135909183902650954006447374185878965354913837366030181870403148671229997357450919832950489674232273402383078452195673928492906305741502806149102506703214234145527386189624889391133718129117355433418422940442715076255800273749166870598498737299281148840835434477541737332662231289137009581067068442989063057966473970567472017342599013600602771675696931736812637217280407950708812547322029168999415258966582568880487899236661334005322927677641639405141595886032675435336679987460591559918709262266142888075815180571828558650289562466108056706621509539879103087569733677831859612607557462991715726121801102662451382585503918186972086467920908415417312937681902676950028197160844556679231356342339652196878516154605177185210366377827752758002090904510837952984976356540838511601387818194028603004797146129853780804407103529769782232977378703976554153500524676140510322592893490340676976686612348263221576238307453921210061463133067665177949803538759996516757527653242302581348649187568540589342602712587472915838341895143157230919393082885758143048399980674622480678512017300266416762284081567016392284191479971539443667516569456804103718147010864734438874181508823371770438025489654213090161385173877779569079446330554497194915213519234918644986424889342693136685228857043923349275756691445300019635606054028189714422012520580506875279994164183827695244924710526356930074628379436768144400123603112496333741893560131253848106789648391071118552175503669291431357578180649886324741168406495984338718357085868054894228528016052268409106190776807775414366129930996994305603595506537515319399306418403914950306295451926599444700611810806022801582535510665906150135495014745333588924730682484314110625535351315546338789766494023172259248817855579955263724305373502762406851131186039607080930986686004433512214005405947959584826665754866872497018398993292210114050772307495620408717649101551433891217596965771821288508594714025113763752164407611167322536754196110713898647656257255343182654407271484748052533483270385648653863272085848445330733420597291425468809408225537827747876726359163555966256603823719686458808021421655240653212644021683985177113508092265447062455541013891870784750945248763142199002658994438797610306214209404131252295789995664444997247945729064411991159227446126697171693640605775063030741849891909816595221462593982845818214532718103956214384077419908511313920803481759524318172061206397728139166427630173685441168437719797555316358585866298866716536075863990215190458127892514329397619214478105416321724270516516096520389080280288620837014763989034101800330916602061416678591161351559004073456660927401462648754316670801103093731001937707037424152895088344850008622036199334169489179922131135051570625976483467351183579907364781637012150562775309484260483531982669737441936410183539914309426681839215727449346093066282841543437154237064364543059666590138895662620739193434271035896872956912414156605348950121497433637695395291263477035493335144292995154275446848579251698318809770935815105472316458145227615885530303465693038226630851006765966901674827908377969121329098506603420676675384034861483100825916173692663528380132063463053589563976453956053224625781235953006731720363695027946413463880087290204183122205896774380103242130841398426728030970255076581939116211071932917490069119264801963091748180493919388795643290862794039086250641628259373095852750552988288804273851790722930104585130398949162135736774835889256756965564110193824767965048901556987915845038914059485046406591699701035604429897062501608480199074251814859909213346948075348920354125052017734792918032493001485720923300434104324134701887048513946234546302996848861941312565442889238616809109636284399657525451333162542702685981430919469168809393854504087016723601406102260459072392780282726710193350449220708833418811277533354104232635155859886593046317722660800436594004665089991872803041751548486050741456044935381535125389033271165925566495435336564560763115373114415690246315451629119660175037605983431208806468759051506138553359004753688723703420012174423653115558239028596158051223081506048552784440431785615548916834191903072113028454148558822642985449297135783467514092152607110890761463923837794526453309948628635040307537969039413113892976290527067263198999417643402730099205537914983380020065990724033525746248093292330131466916204330757741419504404983642981353616287564805876654891733778374582489690128691017459682202178282480572762411664337563130873409721886376506796810050540588466527696154023332971900582243058511746887467440281404127543304764478656187722805045411011786278434143995693619408562276299232350093504546900913019872233731091900291669109774358519585588846023783716462071497254155565170470746340975344562855482440131965600930073256538046964142947994461336612347925493869020512907183154723537382908681560317983163834527326680713603831893390512707280243068244262246089318245483837779938285390817915138490832414016439586878838655067896097654827432860355619264929756099945011951591346590306721305394769110974661309783125874858909910865243079929288649993100692267255253563884187544108407170459057088992873255952788717392508760118662199428834218353194056411350373106674578925232028686078228802574510093875110337390075972950403751608292877512498602152132409271682059641537404087679085205299184283856616933663030881637757062526001232910174384469251797017187454678859884852490693192931060193789639008738027431686254247071020424084596612947982522054453235265810061196401345509548104204107643252567197954402785914548429693307281136356800940763581991773031925783005827890587314778724300926703814142472373049119024842561532502785244825145001720145301927771094588900218959895978394080415909297920991267157623512333431771554032712710185769712907395167477932363518512011060739205064451370871763560557733348551074908458071815245345847173629081559480330931206915037473322868262832850920199417959903857658128958012716405745832363686965413152547913583307876741822435917186691871017690376056361636306321201855428121524153158426152858077948779444283434187250611524078405268067173937103063056281053306677620620593904674002798024561243285216813519701771187509162225867094604248912265674412940021169170575004274542385875623247130118294371044331956646795136187344498042887903046361703382466701548874101281014097588961193376079279633795790858690079492798554629670281502672538345467486552691140619025974022988477294721010619240166647770020447086975957119293699269942799099689298563292941380650687530681391152351731064103908198234577577529633979559486618681046707264669261510447257304624844147855327040978697750925583819606734643788914843116433171317458380269005343109157867805837663725979835884552685342335485182395571604701104623669352113359973282180815478336375155512776380934702189462994214110657596126140987630478035633358540696429661315749584348676098128119264109245488884834448116769141945837318114735876005357612586565763998696206317803104030388740388334477829936531986426223997240371786999577950059778434768816576843344538623508505625062153518926217616777168261239937752233705384041534314772853880989794762190097252071317459406970378034518819484749379480931580540508165027100260761105765007602087730204211535821879613597393456888271446008487027766180286943862863386760067658386949297500837406811804303261831109384683906523286027525540774406993768376011079464413246057260825226952788851742610828396604858492570785311846805207502258946158682307570899633826888521590782145093417768087160240215326525788912735106456174576789271978281632339201196524600480520471282192869851676305336395963935619196455354479242920809466228755816581892854966197227842068326073133915652790568159661485373025843724516204808887161930162381303436644384465027074474317496490991295377852026103650856882228377177461440954425407108241034293217110775246330981007995028663324060796791177167897861862266560951314456145520066159931592712996038385352879814426109840694747648651098498529505497980220317299550690249428710910274999603205851328355966434334464562354826832855291186462597936391668927227627173721294477459574808693149532311632957891925860112479176618297402070610044765507468612776113731837861275581868255495454791687389855766538553536229309170728427527814207009835409468831507602587909792767523767625230175232272798849927240606975035975302246478561443413680848861844218866267626851371436581304470770371467815385813854319346372533192955363711521435952251359333031264624833887874749888499530413054312818751273454184566403401732460074409919180788570645938277544371180737090747417110689388581284477292760893076992347909768186645895656919737000771889355205160371726216193750841728529621640060468083820682713517105833607380492867651455922863739483629393113054527865085225981285736400721404123370925779849514265215394392217278163323281424449117133739120334885939020602839104162552360873105017502465751260785623332012838566741409581023740226371613172620284099287887219464472144264663947794244634944290737976952918411598818316808921937416203235625938098185858591141109650465645918024394834196740858955835497340220968320903526714975503499354925323013228315134729459151205651581451330993724583649682129193358957372140361231058082556326897138700099221050239391092121409713287141711815771776220351234691318837341528679060508553511063011648171504466397132139975901615797264644455062574600730121562350984074118585261173173583832452185912965448603559610103130138141091589485374953900569571380333447829819178737147698690049837909847277443815594913280861337215426651570545117486319609072313122899735824200766681060663237002016615018777258366000241914535974859981480583716368963784308822751281713623738528239791456898556615772159395313842944257023600123929459259262417325347778944682144552174040671155476386849465507625001646973239793788282828528628108371830889392376719797318866458047311283327552895367007356500919779941231816391670884435758194971535728450342634181508080097521252056667351095946062393996371244517730596701164172969083072759689341533507081441503141540387881444182480366048403682151204718074273825994162818994777730190230116236819135631623085019861353750906987557763756297479089462938012347693308010516298227490641930006282113066169803584955235109863915139302028601692456474483075734100248666973163507798985062546543213811469485879513108248127128561040340907289250511803418181879451426731375900053918060906845679931210708886827318068918338743057792328195085495251124909643611671976697829245613132386782272900997551002377787642181826745942119650782484148904309490758931441089957527916850086590345988766105281506501499579090766616789897126090841501859265040622588228355108962510653588569354285416506020621616896699763101919074715913185108630113882899156197038512480903365916714697266838048700221015450787304173434592097345707732105441812099141986552133838733709140554490161903658114204063655527042944652987876673386000773998153535287288696879101887577791459422993851607858968643283041765928828403991696141342930996379999488916458951775047522304340609617272395516253484000966718681689531972000190364136528822125756827976491068224174673150247441121150935708036842469996105641077591217935854156393817992210628785463578249613654739648743544085308956404168499819384520370984102805806509927279636814973681898534510935412527439454781047746578252468010636269771240870156656476578825015038129828852305920686721474750361620288533688059199398628807265488371276226059894270654636109853950042055999374728459059090239971304541700951999958974788611710435397791446042688757166973795415246525559390259751776897028889124591066895295928185102378423902759937407208580078401260350306913275998394310165134456906738678342065257289411329132175852073018050289232871854084763041201725668299229734719188096745786531987164448186355113628667957796700517586540453341209378009582620021748070462795924146476122072417126142450751202918337314234659219768872327427968964814347042919550170196299450476721374748191354298901561920351117260857855830838830708453450689392695761880163205498635469168371656646499198912322760583454682165869061486725735484700216304284623359482554793832857202033522991231528265226941360680830253764796216769804806816342579102356763762129593587024536038501025871776851993338523616738848369845365690529576699461838471749986758246663885674728370721549476991205615461842213205901627828281968411165286168129989679124052013325457185277396217404460118647057703587408594003227556906732280125086964024544363863232533407375694777787225737645454032168654326878809151333143318680532192156609832841288516990806821446056751714776823928782117902606991412012900402288556414639381169670985877271807358323486800785113590291800950631125627201550283195638058676665194063871263071846325627447539491966618103516554868821404889892941082756957813506475076623244692658516550892385492906393018192896253193412576488295089765329284213012033087086138712028805100892154013308280930485796932015659065753480514011439558947454041088399250300921033928731730409003799196855459370044216654562533438964195367701063367666934634090032943908371802242297507828882853983484965038458055276443966541810217555238761895810908062168603211464521209945905640681556860111360586199984028692371625841403721383683491017269685180366559107498007969958903760900487057171473192432097330877392973195396755823285719233872133245545847089308643326963016137386512909792428460749321863476123709059895477647804859759772872466133102408351790143560788974206054028406891577223393604803414206760354691162659801621153817472086501992192629598315202847768567035307859989765259239329844705001707968522839689889060362614247822350628286822030780539990916621786387996623515002911816132680495269069906611306784505988846833757471843475608343785315789876549030280588852836016824430816527858389788992118059199659535689381965461969314918195296550583321220673398195470679814704961939892754126086568766836631501766443175709210839220943737046637334845503398173633524363237461063517767694738159118405333407717469823187725015765874882970001566839460914427746632170966244157713009104386910655365616192123722779869868488274454394934556130982196869667831309996967014362372112360760718095778352181335048732534678174919566918356025619140018351950971995230571782874802333841319464514623982737468512092333942449549047815328527375548980729881500370907298820288830857278226541379897907178805110420337806955648693958857391689795267455614824303241594432243729575583236340548233704987144743489063350223962010358545424247638610075703345566748383732407840798331299892865143144417522749645309444246287755290816736219162844348109726366592420006374072579977913202512377275601332001984452552421684118798387539759269247747389634309308461631124030996536807313462921881138518249093929011150702918612784987243923445727949955798541548464699383817531635084634316923845135553722399583963390312741148478123756713809672581212660380960179338434767218661799676735154182269027926547062618078325684656826268707644011695099223266885901887751341890540194270032871998691629416384906673330223369759718113615491042527564881437153196176700453842928805881898724566719034947106743552898418033395247351317775965586152694385296650356504080923868306220492140836761707663323950214179111136916302007986342236776625013348980115944862838468635906641510340850539799527424360197795700858600640102010904698535416389805881318629508331712776773394098194006975702869007535092170067900639658936807167819492178513781229130993755546681058556274189027063434240907352812122130222625407805836376537009767602548304589175624339656660213429311956359182617089218783240266102185500519308753896917706429400854189661046540895029883633534849269785987851099177117563437951944112961941244396619872142261739253351466609368388653108956383758795341003985707194444807006633554977251998667004117759938922450987507497923378446387124844332056649615961125156221123725636902376542948225524977928767024734300719516143180908509069465688583353935678394907774142153437493937186513472541364491742718214184943238755158851410294357088011183886333018829114306297526469638193151779568117252202936262596257129381836490358423717308749861781230943319755839610464339294702896238491846084882755453699374748219698122416040349219857208243560512868208652031206851589029919946308466368850026444204873542637993924009793560602116346475662574026600585005324578597323185055171935324023418359722196199126217097815949668021198871257210690601402376561645357393542104969448942702049487822009695568586862569704451576004321161297592889835464755008427890850307002326764159373610346745359361960970844676734259471081204225608979262719913915039226770991792232065460589779049267473437882175006708578315769176125322506764097362251218527481710635446315719153458980131152365161129781601286698783857289053605351678425715486244473485391174564174783635088892719458497679066385288092782417766470702792347369775929407910925237855005507161732994474847941363535854548046717375341724825967302723292012839361632346710520690860856553094832503792060083894011206194496386773444533652422436007394992102172240165465340238256029340431070738998212309574676321963604201146935291730280109250763209749064271898390527789334449093902443693829413260971121151230497753953893067285108102210155269533377408846983079586556301929779927637985889306683714714096102504088726407061468567931951607571091207598610353062559750910352304893119306558759298590035797987623730190178653366579772355318911105361387424157953460309488562866451392779782502229176518126995275760651805703136278858579523980167427296903117819696115682043543067180973445369838793186712802164897658850237115279671230714820513980124149786649433382249299788874853111009961625886042835682298872972042659251389751116306448420366471461516451776983034304971133881005930254222282795383924127728728332084167780066678027407285387112121967445976299164120568103200601004248048031013728078983653305656916370680874348372869112215295153201167582719124840306968879014754022805715359647626938016716625350765238124336456566037321203508457261116893875511401611609504987973150096958085536876320040913023059680085676611318007235019887038863062733683225848238160127283848714670266394470508610103080512077221312375545822863664596673339637011660675071150071274230890497112426563650176067332632369629217157968841533137338526288142298708966751995180120828005620455496950883372244304740548494787032731513063906532732062986416325159926046262550064499253977927353837225284013484088455697259812443857096199586247520302280236849080362820372120157253520522015283670025214613295158051704031639005028119963566535238020771041574726815721437213511216039090293808258907683930523508347280068406384685462834017379087442273359692608022584073971706119869444859939272065424772665735045203865472364871946981273840920795058777938583627201148620588690793412262598582750432052410570193063277205976928977619162165425415658340404833872622780118316604864886106047025458982909884763252429408649971118534237840882406576374114007243723399242165450185056454827494841522963314950696880847589525610972324661324996355595717173734598027090665574330816081102920278356017312893189850238615654813814485957579759826113571327422560136285505641223974711495476900671304068376901232220814819608212783371356412886590209293347926219164277089206254162872545468804819192238929965782417899849866892989549822969118015556471885124456471513884713151941421381078257011627397245723825288529495669269901515692877235501566469726243937710406969580545082126096350536462665289267641549342448419961695867486937221874953683209727232908457376474997216657091279096175962837288166892710057958780177393396435222575755307728270845447684162589410504201985105769409741464490425922838240204803854825358405176376804014805004252613529194706624984628024409620295851834999009958618245808027642923696948699682170655549203839362150681302794884064138886405077510658102538583908158538348431946963422460824252680442180718830470470718881883157903939983743562796911823297387929631484936840296370547588177572057026451583250089651518394004892290351069066957723671256216241969155850990615316433525472361154191580808016800637094079055568750286910593628781995722662800770556155808562047475017389958886790298010796982385081840938608714729574170891191795439911050888728740904018342615829845990153556013599171606050130128963373663198339413093613732007043545971159352861540526815152171147121348342394176476176160752398277539394796094700366953637369280531761376299444905955557164747561555668456085008899055231996646948215861625090085042963420304422173012680211342443112348927783083754672701343248976322717394283127356178231963692691296574445505410273989354150498046207002469635092438257036536103531737397508068108115603323261265857006279481543572422052536673276734123472954649556007327862024953145547355297079107910158077974578108970793550089009893361061489551009325438916219914764289705575357320313562534249679950274668310005743619887022411948408087524292055932281994197880048251973553237595255451770660866849229568157711659658905265565906868966657830458729641387854089821592744076918517814881411939621433343987523708090167163924636017726335867039114076795497610533202574992423331553779581402903958737897926620956483252764820478899281542018758124143623708563949265975918517146216092271045579008268239044668584516068133468285155508451437142542919125888869301802780063677624777949081043419200136110927376815721962827267461962000221971451983148075870051886464446654104466007319870271083901824800356234549528130143186151415331552309480124978055336794233066185746793960156720689569121700015799724927154486587371464908673067183629565332998492695619922040518936112786513972579412607607814554691038271060089702196684776098675649879392840298691491104038070532601232191670006167489390836047172292421956202995155557774053616364705279999689461837450360505023316154079021004171159927366173141637613344647421359415961119566933386433379166145431723828057540189498055597746189232112459696223169612558321793895508209087297234132933804020947033941454877864950137607744754184047860382469538328875807132279033008219339036829348774318434196883284966134394099767299370413614465644653152205649691052417423592688411987741045519427844303739259716311641205705068794473995775575210024154743501530611450407306849449949083304756719062717365765197432658094561839401155399833359837145132921379146721788594199428662554556462712119141518609634352996332773190713874708861650336539511147548883092726833646021856069820188594213734436674210053730306746515085123386456744404241389837731874055816426714756026540910045709063501489046805385720291052310655741367549022744730149299834283999203117248266753710475753353568968748524996257218088152559872237543392304780186859952869118549090226713732076145331447555889745810862522841412849764222082645188375295227383617000502796281256141044911049972596342041266155129979975191880596750783399008452941436336364673917051820987713102901612193779169550627270646335540020344336988840864292704345726159735122877657493533666003582798593853932232377331568568150408522516404333368508188200935770916908269970477650768347459787801662762812533212617560680196910211807222350271227044846060504998350902203666327463839999703203924653814233916807058222175571352427433510398189243819470345709871647950277815970153662370957517169458910191724308317331010475303484678038427638974916246477716819706179624428372637314841665426379343820747077948658768402525391411661156222921737204363076252836432438279314870643431533842647068708114859576140348689747324897211380743461300596373784753850244611298072828571997602395562535797943766320590149701004141515252521759775694986844581089689220504681663346791498370387791213506948018583625198112598236759886076969352589351146494117028098082427894696334833947997546101810813093442534679752307714817044108533178823868371999593845708935090222478972821976569407728807193998867365908395652352783781329689630708169784825221042428099416011912360907038398248518480680550979534889061378244142667232092230189117465242920751245717420229209386541308439162966970138947304305532626036211002971046051985161813126399214152068075292731688278867881770340808729600302867026512136318152011241397669405077305454548864460758741233880653667615634200118879583870445802250741379853325412206572460941557850253133012519317970831149795428890788814379598404368843883997980476564661841257429953371325042462463000911471557832736874198270737841345983754625087847735585102611603580856658751828114271620228331057410182149085371619203182346018465159030033225875368983921605894616907844058773694923315554446871229017800892746568813319221370536947376450111055403218186767146110150419256316371260700886205652610495643014607518470447476792369231473957982018088477483942994646097769658777880848332336775296777593439741465284779725365974281275101090658090672618644321186429716054350268104639200573899652820833341793815956843301886828015055485738262641705223820761834433010829386604918310324758030099144231745637022157199519699672962004511582870693249347708033159252845679819140196200929329776760099565683523593056264051988085290662830909232329095294843962577287813301536043852206951908386369723851912313946358432548360685575505840387321487078790936317338798490390586044100319287268373197024667035773279558268076690247532683559886233001698607753164601665952227019652401173641584560866963088140624124646385805921295346549599758699089497443033963907278348437043308246167635149458894735226525088617403120895228905065441491883507481062394977885788181750071134310403594039880768174843733750490921036380533974229922433775328875641142122017872692089297829416358850173737277582072048942247641597812493242042344566058773521368959151901494608654896396816291927263045241788992388823953168287671207588204696674809461985359069301951784358419114911910944157380395652887503299529512040348277689903525581749677975435642716710404104395809887774584871125906865215286762650868640202776517773777986157827753604306465132020693478977227819704175534044218011650002472762572179051837211325881008864511143912064301987073598491387662316469401593313533938547511884532104019977654068766529872404919808234256741732640453346988192993264033291188014951730408696678955639318419475319090212458886761877757611980003799740107007824099176882945796678048460201664843127379387220886210542394335106476427598637036612516552778365882805551304475547908988956197604711653319581194205935967611317536936087989416185618869182403879023408189359086200740147245810444647298299566948760698339546047753587622597844482341367779006326715986252645346251381677929453711742430569882855167393469347067714586830378101577208977124201109459994458858198000718536071824107125761089365400485834065741513633121245097751510409004863804965414542070521063382534008193207125199550950449801778577648369748834020563899595262859128071570986189881688722907172357280185772340786805429219470925820448517008780776060544528215407593980579643690844242036650008030527919265053491454048085697369334264440075072846728431323905370024233055178356511417760850411674891753227412218269484953609398625128008107535621510645395365172963943706229684104767713942787148099457100612299994235855258909496540254147694805623161856425712501205969378069762518164513097459668083674742781122706489076392503577708376550782344706454679055771005403812540788215348146373608602725857814514938210689929172347742813206855559299871411175241794974628470943942025933615415065662235116865867370499097065060625226474626463090181912379538103491189027445920777145309013428453737344798061621652478222978130184191900401931931937683926249133669826568384047868486941018716596532931750516389464811682406869518678549661025729053201988999274431436367905680793680538826575232570253337343930414669489358115881583965329372793501416425213785333430996028313716148890692223050214052844844573781849004733199323778821668374726206934056344669637610682568025585012816130310371737059882390984224764437209642737579256885788614337290756306191240602883764041308784225056481316715382612688063602323674436251935517534619516208444883211998563396278620381707029696722594788746250582479474697837765452023700934517938441950958290901798956319542261635092199562773255773251031361321005206842560906437292205136082238220806251364193646844144316712165760619393279607209323920646969338067543711050648321931447006137423520081512996211153494149603406534688995755457579305743045087212200649640389476604656192524040063298771145318439584170095583029099878926485988256015832058356016277950214642365053838672204441633295775224082705879325458093791114432770023465961355511453956760065104547167171366305298639054176028873248449428829117325864233380911720833355788708781006295156736537703640039735414629669122902768863179069811708635581837936194413557055793021732729761609816753685339098316691739631596289797680898597699700264454249147520923262387544792349878601013163269880834149358040111303793743339780461361189645831175724699019413425524464235578191807939000207976325653146849468040636013521844582830063733261759471140925431624159743892994916105431482523070379742765706547894910579486057588120863462263219399259368125719668920975064020199456926448257238520532539238253717024190539767102413614844900250741762118177269437619981116375437864835752063169589270874756441712478256423884158628120499827418912929535307779717229457941373807118036195586742623765550058427066017331049035091173442896348508027854286041451759850871474719717787743640541452959022550381505427275932267625836419283888646582931038994999703433886855051664529690207520195044695681100632831110938496802916983916678489174379820990557691914785228292409805853642212006209398130917981641476362471179670591649950463470145202704717276147028293261314471599609690576474885488408617731775918886186843796938461311328833439742683657023546871713852573227653855433580824732452670928631393353299008065284707177020871013289201416645071499949212568140594508679526983659788430489506472641606977639081618782427990091006904311791689954610019218364841458616971448380185387865837306210894727633770911187474527116016829255899115029387967788453167090931594048407179077438031696541525037072365592163838522493690682179806036800717498241936739075134761248155999060911584894187683762032715411266175004523600729036978209531601379844403461180030801155557223905952990471336408669948691893847580256261793933258588757779347127264547089259194471554017937057706591533463280628555554172412813525692509567239719855553802903108439876828005173091976246926633557903513823506868119553434121175689234100739143781331276700573285675679846099750226205859044020866548606840073289185939246492815051114404864037417406511383482170723178035871935472287099562403708683110004422514449633985863181331658680070903470494839247300965349447961783136770703374302430579906907003751045525930651850539510947251080725117559380876661132557872716187291729178858332446982690923736630277509494884432042051409041557869685863797502463665074289573721843431327955257675302278398003919039897946516324572048092005424472848295253429326696251572603652335080857199924162904867616916598497916655953510342332254811068882352847300920362989819810749356347506238208333166501344369999927662922574079363448297567671550705070755774624489626996605232372997591611148597724545825559925062451516657410984761847282287069802346332563345619216997089267433693633053445186635734458306251260830087453987420359584483644433369268578337353279608135975187476474645200778913315042269769779596371138720241299861903209696626809088622597540561215349116591941065224862279618188082463878885215871283085393004514918242180158330702415225470808624191880926253093013132572168329447572732233409955882264710014502955916133610578934437390284461189969187501908465580218744313911204821254559154622204603059290634127381000028944657445099177878994465924851146941492911332240508652692968251122521557712246310771724474114517743170971866235269490938905948648669521570737068286145171279874806038668255298030844230102404977587337024506898277631687335402780136985466757663763406623923189163151834379534497980480257061492861951594991534960093771499196810815343734887109756788504241128718158010275021743163869256388458286292069952215012939599892578217176560073950348597818714675691058611582533443147625070343530464099821893795655310574075212922367332479523598001772781855245168343236965635892710369465090529685843733412630452102181103500884187049577561967718568947972918941416685968047746793104247047137724556106521202652445342706381494610148244966743011998822812792952308609807892466294789349736270559458068021697574288208992668437465700042174432594324360620380320066965897487973628942852649177596549979733835910869503499154307154728422416860238998114473488631857034277264638416519356109001603684551327529250537446551939728862215834686785485413184267500874649560774830321363052729724589789976314847148600822902586186442982101361997580822559485561948669601493947110243724919496163909312919858931391707898056432877710581570728946873078783588019207305623121604042885272778589251568515895466906994173475862064735857357324149796475401650208316823932679472057899019144977598395108799413011119780325110650126444728293342622214145700811622036895682742726616508897944400078826009736239402641937003322498447810608296744095358465046416262842304967553665087753261179372345078604223139674737807348368543717968543069384509896129754464467848807547814416831999307020953225664110736403504702364670716091145428761655651723936810694316165357407092908619791912382475246152171387030951909648681186372940408909028714381973173015670829820523329555362749496018586064786958746377094849917339100712986995964248875837850458050926386804664534784769727724274636528436325936630306139816678753177523287464789998160825856229564210776167797210464733894377299538516843709324731022160551660677736347311069207652776284291176661263523456907068784548794244453097726065107907154964174463155629683554297312560880843081159317705088737639959596858070921368553721938714024087140487195927148963082563757620368309210889594994520079540100011865367470112852032969716451890498446044944063150728530550616723317398822157111602309984811414978192788371988808755145941734396474795195168684263750748651811532245017244472737808955622431750764489310454355067427708382842143579878575021273926877243783083680957258967474757810650633529526667496107293173454273674437010974902845329693882139633309393813320472394641012500190245637443271382859413490558715825418454675411341950780588631820312089479461592640850929265025476405708375219705263457472756221273562188140142066485893898969623993837396199042117511285519029060599293195543448450479081275644110867806013241027535828253965561433841554173650687183147811891995472957907718508691324801191524429682947816290567909186098801030376229657702848725083202416547929772214664547933948362004261169068556017138710026692137234168993740876335254709774587015210070891276720028385086245461696314042876400950087776670879746787315885323421983605777448914342799967800061099187521321838680821442445975031814828200265740117475820923248603603920547031391005814365014601379994148098280558974034933760135628342400229975704499486580157532365002889737939424754481042116351695396866539032797146970768135212501911758092451690698828505190374686074423471289380248082480940457596205549286691060244893393021992817079221247870806235618092542628299249180281827045156120317082549212162990422893441805865596495555086005481836817618365676832511152628103344804217280677566499799601768207488170493047018076172839971756358758860190130652360144740644160830631367065159872855167480336882962712608222945912917625182294849758069851244345556408740846318670335764903001644662080149604094771153332237662236865592126834281206906599081908525310010196996992091214403007996699175388425521960043023368677837384386148966132343685141497287288523218773291102638335224568270544692872073342341131193285552817908209744958229609442072014766034071745456245979453171339903522410386997417869794286959847605811198718039524703064502282736487396331847501248358831613329233506206676513165331743069932650017061872951649176873233249858431951146379994877961059110877490316545828330823118855500570550276804690265062897902215327750074555291704095002461703724202362346758528216475805900104688222517398216241314216500250026328052705317619093726596095984178042695269070100006535741258326702817129888839299512004178210853372638940305924851750717997592301132597559180648703192279719764915025143508889785529511213972618130108452837857342752670215658146077311195816412461445581140200308916425121128984322502323522600447051268422794000319910055421678069182320393503888984266042467442601676576421093512544388997774898340978155452356973583700778311799857050392069885155406040329854053175773493675791313710378662316444737459417338205334717515595271428081547781579151041218081015722437123545328086954951270745952154308230694920501368115827112170622568424301529906557530858146608589550635991567090964330275351123363245482391928733009922088719681783752975906069452024853960258247836091090198570361629135392283520853974358614317174245688051036505650636510600997825668387850022736352861760553241194988563762896545289372874849081489507981062945491661513160126437530390554048630001754925237728942113437901730421854057028341418328248051716841823103820256633478082255798369527044525753350546534622607678887100816921673444911759076230324133589243378965489676940659847852035174786017310044581371096763098657244638238093382375842941800317852665797629159765544930434432533038938614799685226842693415598837545730787982571366326856258283588597641509951824029286114462155907246028755898253642496356262416901007368166022496850394653264470632174406117803183667167387572926005975011091860107895321021414387005700328215767290009715958416683172548079499983530006871228582934356274751524644465962518271209135901709097904428441057065546733699100836916433192695406142361416003537711030691830379392755338307610568952479723683977299475264755057557427770504902686334375879043758966659749139391409448288830523329555050475673189382293768569663389109647497654826181994072965981732239024547754792764036666953401428693697178773385625557242664905834248692461448861894604882688708475753318439296485412150763839361818805305345367320602503916009477534526942161739148476100060658341435749076529277640462446688607778969954948254561983271392673709274654189699190966925679911612157216420928426220412046324094454880638197093618942499851951398341418469528696182366169910962855265644152712651033293282594813273714089279369017477203241085751987771752280363942044773661428672776494023974796865461800345193191903149997825694094448161622232842065404945782429795046914394987119259269933037103519907770285939425050030065013628353325740713335143875615881678644266636549174574966795925638375654651665179547125508248524586285861860005763251330166562575351409039316763396477370259518372708167846033957393704329620446165408642037293739924860865152444152446668088852616058609493443116658408879739812381248306041355237831163377681511403756547389607734250363419101978578966717338898047832298872042867928580611947798369413665023288763240203981088091765840697540278501414220007122648423848773684257719622558828862677156195464544093347737511319257043419197557370799194453839593744495298076246953763985776542406740321022237642835747550171271805523475961648433863478761645150695221312644055078372139947832052898900927154381440335590189183447122881821924004223279596754623206750645829645963623741984809616810541949439196363554357359539203393439457527085075884904005825416940818894839981084019210654077390104138921149213753873369434106490881653524224418002468959772087160579936909062732606713582014070585978690799861058246739925629351366504506395166234006746451346087869586680391760673565524698632554606919877825883903486992049410379140933819423575404912224644380830696318265554975725618261858531777542880066086142723488584775494594292928118667293121593276387425171214896158283696737441645895169301974736815338499749677288014624892945817278459922566985075271811490869073237586186715138975805268340309885253607872548570623003080008251834644727778478714324294109929438026502474517046915459714785170438190268825469996776382201390716080142301876399241084351268426046192648486651571127340152089915388389779854812594229701952587158510317116533752472357245916088473300065139188760220868105499391071816423944730747832176927809681494400773286044939489261078462293582877632990724174733458138725787892016087739333193641049039471972333297796357014388884442729059456250482937165288664463874956076405032827505548831512043335508593735847489208143772098207296927693288606369091484436600677630422306823753911515565392420144863638143974216111323981061483237925566733099621187191757921095939690194592748220509913450029389547710944364550554030120596338067715640052908565407897101430544431984985710922350667504176243447972109215825945483077999540591761587122805088361525808359557238757284128790486426550027977794334434508993343609677945190836438397827386195982072460484379029428112564688911856602196921167032145734259976056061648546180403577728951564410714421724545851821525925534688140730223170870930116703407295343410697313488284875299610927763635556237899897849487020779225983784693144174522841167257780739403570114688782071319927043957419323922534616513791862853205224567631361660094911023121907297860059909566884864338724784761312700156137955554232274732280089672155563936088481626517807477401966716777482592011323314694854225640964918550968770326251919690829214618666609304066096248258778483045685768642480142324492894484337215768413135610675922883221577732822080500060636617240407602398594012722206792979116239023273131115806044106726837240776725379752622442944422840186695357072940002973021915435809567053865206533420212846562330780090553097741859501741849704900153424017615075929447489732146152038428702236616843845729786354806398173400366984778619527738622018649323815521780413129944125722044944731369263835781502791811119673985617810577107320195196675597639543120863723302408213566879863680167050154107562602764298149956152358027187390674652271163457393159853671629424200146117509467138623377608979572090451861792733625409983163410886421347455152838818408516421495036209648358940387386882701316678273215081917191265628513503530767877863918129414890356258018583808390914803695573623932830295758429605196059860427933534947094145691127223453824767557238934667636836972632883058490348256891302325636440760672966094708050363219454353084417722266492107239895053981154216974553639005995365422044260925156035589369243182876027082751058983603527861617959924553109183652643433984931082673401186302520137830132500287084178427009068143086396167839781007153591954420185592250182554033404587056691666774144939376803272060188095635654004441075477867865427609338639898092335183702668803798164929321887199551340298644873448506161045317703483845079262970562180917593508445275609560477318870842916315129742660660251523727675175735411829670501846873844978922146453787494784296408805311346246008999540380221368785735040557995350440182305800636553185828055653084863680790669855058783919151843863285096985908915114011734057761749427384944994120163609799976481972323636244748153511660857803508047626369884882109237130166423379636814963726519625277530093543766977176038165492287591367237288105135781316660628476602495832336607636939121427556718100751224180507492855568932756745249351349849650737402602387518703874175702141764461651760623584275026808380598557523315114250093189174089591717937447462865852503493499544520992312802598700580315766787397873115455560692495721574845470917541612233850538380681895729690940554922089206173578011119611545546923985536449617784742269959851222157799523694994737240036499168789076238833279770644625035067331200338142541125267104144838315595362370730583683765882980551669629582640088439406481277612115715279184490979607050305140044037470115375423101354418131006080469199521122282424992894836157046948365688050762845310416216258849960241790417749072140267812697694740926839041504614719562104879480472454908375543546850929187899492991886962418896738331681769313467081399583342761988117691524986340348108319203561830552522064179643332067353950939974914645709978991463894502233239221351693264728223676105182281405345172580714014504304422985770558210322541450891831190079331882116512710013809703230555416265706621271652305972611623638530982443887110389080205222689253068739719854667803659077620397460879830145941720598866162334718833401568511016302567443430388035547744930184559875305383989155750091287219035124101391610634595337517330719827081865408614178974641109695166186026178494468693270382764223323833317194539470361045789100679898403817274266949582623736910984117588183351256529586370965484943200880570708862309045045704889514063447667562180241890873784645137397373867390808157636580325361055015024247781366482002094975649186622812612096726396044232803960515107406115967211469549262355870581260511938054855628234050598523108093372558243937575882619231200342346751513726673954527945633607840181614416795739161946142164664278058247009627293254809207590271496910470776605588820531948323132461109072121852945907455226590503791531238667926884871344029602553359358715602251863623633217089955872554666051700212525214972321353092214342713474996518667441266440844912927896235437907158452044061148133004653320070939870565797828624615130392601782281586768095046154077832846686302317515972658050826402423402424853034733491608588906043055217735606064984479261261213457278388724850890640562431152603173625312317792646267822293135169758659530107968215829660873613942939855876299614093293256763570508240580192282047048313380052912477983641975140643662897765582244953728478822518403969002126671218316212581267328842568558654140269614584806373085108044728157655921593159284593554790771409388494670913939446188086009468990453150800065305702211933957745867005758934156584347582437855539210455120661319429491531316648145733289135372993853798742403524498726213681528004182308315536743354123688708521231004670936602891680404891801420379255176404988843683923655756217422814585168990925118985717861182936135295123495376963231480802843366507102580727569665669396445057055937807431351131090440429498705295952154878936377000744669912097070814786295889444365649875648853062043204527595154908231201411628669172912062816341613146668915291453243939219997923761003385673721155269710054114813848151680353458101561500124923544875172690197971705226023655695922228963595315598773441456584234765064582616353749657373622779108003447499840056175603273495631812683453949644189170749365214274525268714842604031636779851085544889424647807770011521479680491666189236556532758263677853074357572248795077900885271348799036276746330452484128021576246422362272467663557831086590234032285625581821347902640975059847974856174409361269563306311100731000193527215656295753374959775834975560105836627364708144356426007947350330170116213590160751826755304392973562045253607408326534327483896953137055418267139095450566982434681812140438660182238193899894542438858405834268959795450415246993827160248902563437324464412172071394770492042036773759589816094322444579542803284913463301191792532264467557242682584424279339116948979358237701044343683056651769429491309289737312716313700661987348222685269177267832412001536623580319039946217972987436023717933716174582763052134791860138339176644006340499754272709425635196045381519549602680166617749580532052465091522173665644365850965573950777252816750417020187035582950132807102442252086253449009865269786606553374693218245628131852667543329038947257201052838015938078645303757744122414458744129609126202782534759096809159440211726883937472712948189568433143337266982991510765836410929561798347576912336434308195400309113030134192818830155163603726251826632504072590722119966114955040360515310431009526691354490327337648392079435787017816655257334503422202153363638592850392506234973421532694038975665959108040587064512998731791691813031443678180031452662776613801635605521440325172468924636104510419961984121159114281272415450947102658520566935741352254734977214476801627844587865918789167532263268640544961893665013491051883980462797521040217428380539187654387953866368833204161869595876931145755445181444946105705427716702226753298927653164051433243955133305490265478052031462247782265294098722030898455988212721971922863257599038570431413493504865662011236712318894651165863634100517474897153287051136557433967765736665986215865363252207232253230629038251250152768199886913924448773636957682071656456968979951805987714460119502409157915816178696384010905947227386227173175474973618369023928189393428438828018270877207908592475975841756490023676519111561950164143250439155758336916532480325254987950902721266954548489209609856812487121051039013998839949648732227141202954305241951542524683149582580388852851693818224240119844968958632821676542259443507802204114463135817802651670156438025005550362813571879596167786347949955935766960198622400359316674754989629133176606759775163223061569437226554345266069632994901914169159302748186708914790793263681796386082925114265565781897226455792277777713948616407609242375138850539451919406657320975125919573854323980960479928022601077159636091175378658273356525529140363913082583055282399291766852978658478861721497720896341722453423501017628178105580094904699175815216639664241910557946256288074839568507486023109047308155780096536477560787295477612089655226007859087075590320093340798450829874556756678496583514347464979538647676630111635335196589218625588564041729797470651745317171890377373037593569332103490331547142163713359560805826556867650200218410983190591198769021088205631459883073790741774471132193895590776045020280935929176968724674415223886951923155948960745895645364589931116818043783725411656187572027930959473423117790847249335441473482320687111828456846322117940431664311789054166104487301716284390000039503556181490582583021431346601053992980406845537456433951858989071436528471072966437015185741429445029267887959827579875456813169415631933412814856541521917848346824433565091841104813167496441821048879842628035868243134636438262213520413128691351790643657907785159675034518652494213507480871311103390784637263222390013745549755345804754861704598212292090911110567807151805756430342271277477808695669678560563449267173130296366429087106757986581291208766498511751701315279494241456988129382237659648974446305304503369027390575016250999314108544404736782859401247612718005842426198336392575356931112063312029874597380282776294115524817069773737394507199673371703010355973606124635355527787000194199539174043928069986148187140936697308081045314971089685905092883388467606504370982374658466692058455507156966254398354012519571249282672326805871352566457066145878760217645626540925559887553919309930745189825354859957721610237703131987717217536192555256021149030984663976630244908157233771684076585530436596101861568059501484439858334024501143150275229759670407804137818791015554387031003667972938968106738895173766022428864791259354086937044335341837465067573159691896440612075868841072112994134606496160807336361808395032581573604951546094845187433029586781887250912386886633619578816382846031851234953475439041148776215799327156252581165951858481478561811758481242009299083694831842526887120646345369283899767951229930717493003037821775067819822261579347812155074999227687078111174555481353313152950770616588378352091630483013703460870848544241178960747791450192445338135574750893390680669290755450284406489330561244474481616395405251071786872442499222532024644310425123253613066377000846398833585563764553421286305913523063279500476046164238090219979198613365021262813509726278073471260216963641194004144833775373613147665015461462746643254397468020489594059353949200532458932732048480367661935914700763241372772946430396070073960210932918732691057091444424040417668803830142951880024701597112568595650399339190332178873658435693934294441483461001356627543098285977980314382580346057308473679506506091313906071559935857625701349934133563953968846182137208342283977277787628694697918460682412149854099084572264341034484318682060865901112564255293552434777520651911736174431671949944357074110567248426377819436472171682444401624893863209263736280445094091630397724330399856736492541033370243945143968963091358175832882118633997389369631721954254997648384534735507473941805184866749577534875093012586576262351659109253273229520050684835661598605473968042649829624376900133610274339990497914365229450314571866495308044975692901899824624905674328723192251045214142051681882208850549055632624541154919984457528166805459997925109149901610017290592658533274348347321620124791203422671699251729981808904001011166419843210257117472823940142908501036981595277940768546018790104328789341275539237526658167452238466366952826847659230876272718206043584822496111989155172463544003853635535664608552719846371982497980644249413477391904845773174727303946841006507643088447865357380718299202674163627361081007517556867032568768991478872737713721178077276548844353255588151632079451883786886267311171425254724285325930104415143452747899072940382500140908467769797865350918699381685298271740372667383127798913333043058679709208852572511382810566893031032029206028632194487505420859270963396486030465187186175145557768003712830200122856524020910376846677856003250007145034302107279806238471152828597114689035566851657793340569530395090388028671758507527408619699410654172272230148866426763582941369314804066657943237865166252801359551717232563091925241417577799463155258077214675833790998820436673679799747449608313168957400892288938782306231679257859918602113325247660742727744520206921695043687279729194946371872241156303769734599190263290006364644955446718330327530612270400124292525714448967651745527967144342636283676873045639382075493536934877722339495799478283946073296088073698213886826842964990311547402969477201210300108300263082589516495121846672043528302532496288737600826955470126577642654388809363696376049587884598765807261788506360910668092144512463841057759650578018245729703827786664360499324470082289652564095467272282082332333423458692314525048556667815772791995715883565653980758464513340352538238348948601612515524042909929400795356477048933695848205217052583728113747611229413826113573772532448235450386243022633180904580311547170496232154783087064632583291511380250925234935884662092028404584259515715249835859320029081917769115019674216407871367092830976892443234711628386792716846643700925120979917612045532380992751856248871341912023159254626192283923045060656058985416944519731532036737325946117225349461836714242211218727708042651587543323683147835131013735712663667388960931813719855565137772981832593008875286406407709772474087418419113924424729018883464914190418408751043610227373078103940951460232325897301240258364199726606780506942805998176501909337963268381246040871469901603779620334825408243354028221384757286179059434726390831905209400818216181857538112779539787865352711580780961293938668891735068549057824159233811576511369038055395331034622739181155464696107545573930580412769805095714121780154616329995292679810385539485146091952698026987472564524579019393816938112739112446410338803812452982900536791216422749309593862505001805606198122225508022516286431490996143542254772155275742307446582388897283097068799284291703627150248152939818830539421105918196853393024241090013194617893009976175488850267460765304698432428438290197091649818835485766909764237370145764625698508523851431580129531051286483166650138368426445934405167015611669229112514180724807582379899049653447032496922775563468591635149574110877827669096729085273044802789931322109079160186035716826102362085856064819376013426835105416251328979713402016763279702268571468844052316038981343679048435054840531589549864436586289146484946546570923139500237869614363377982185682786615221953483367849687425198451492704245790822707914104072908001312976532057882491431228089194329933736544220899331204120662282893392796969035746006219984197611207100556267418946793991303167843288921566033852511664669681068168152963414107700190911532701081251290446307185177548903710720797102652608466853707594112590209364360399748857981880914266338881507770879627446673704783169495431830108016385744608314452611085949886848859274424150765618091197552779502609394106937288656409985362773147608109830859119034745495541907490471624542970959617661479838585083917018273456601633089045226982752588572225759328769039270567213838356864952104069447822815323123124895337706891115485350658574667490779414727237124971669695080900222495715928343910091060190476588386956623186105946535089211529424143658084214381108913218547301075054793984917979640282057783613239744946504352382995851724265560812085538753663991243250401340335159909196718975089609063032790378789594756298633126609031042251784678121980058072134748804300155584585012528647550983384172788565929536570760829905429982151067104965951938083538621104491134837800486498686741091289826622052798916182643196579881161012726354452247198689728197298282872866170336639419031646362727270811942543167016372065183553704741862891794344168664497079471667284496341906562348645910360233071557914422350538250513266154296283744743039749381669024975249927635627670873373287560228883156795697407468649055950771896483868337027049079316196865181638531808834585199397653231338729317506255387220447234185975166675460141548811550953164036968752721502984770222622432770103427203848963213661622878290949761071728312142645769722520563063153338743514366995747321739890274416647370715788781107271872571767344979983383922287390759454528795145495742685972197615741617384916661591031810829585364448155444100877960525356748066647353330388634710610635743497833209037450103612290860693296405558960663841454141843219652263971691994468768626067030810728680613250325648305011435994065014341133238762995820987850729740051138345556725453160595459239080912504659965263168785588381559342938462551557723010036351485325037597657698346675206092863186617203417039147877513062620695294402118629366673223653735085292227738090304987965830635246773876094681869650200002961247535599593555559800795142018114512591868705131938673792097683801482066920575702570405484289206002047219681961188007417788049701491291949647928086569158890178344060321087415631812625544672711715226386689767223015798769381115342361125237782563208224227407176229819867886824940857072447266972692612453836756588338646095456115778091880642384254593095145063696655403147874876856099686118033710164122720158216911849196510591087032990229041299153445496087739651524513385639970931921175239237785435366395778844312785897423722581141687612325918923267367963028853994219390561819211981583134614872674986560666251783019500115633350836319021022850847455265793872263867973750957008721867594163011829771594070012695365800583189320090883693573714381497040663929747698442971650786937922353577787981354269208302358704749132155162886597625807610693416635975079593576384746656506340175789915929829974877726656987122143386149322422473861064208949538988185013325025923247040412634089308052964032898124749933263498025622944039762446570054108861328954983770386783886827915482418277340394823787092974223056878117575417080506506057190563694605207730780581281387644994543850507682841612742833535262451385033403326348302265336734680686696544954252955428418231172077567122217926037749320700350068609922192230462249734303054977518455019835136333648620198163059009993534991545818558429632723792462829521035321810152524208130222228761828026237286437865230320929341138049947696550711402520050476891025499911325358045055248862090275223395205124165757257425902574320658326159203066062135426782908991205176032379306171907620650491866977533339028965135252602049479291763103106832491216200231410764630241758541382054462716559324642008312890765197782608562907497354724699160242448744055060966561037819755630199122970069169558101056600728230816124930928324209720567208203993290249305574429159657017951471535884709466257193586171685464737074278945158894942107646289407398803807693319224465506256503647639773164664771561808130042183760699533985730224410012415851836368976168776209599930093363306944102570735273209931458652895607795427421085355823011880156407686547774454532975243550064285410675775082978982734772013853578947601714750825624405828172173467254743398384859397468279746011223370111561572452927466550314442678581914855629872672164896286051132453020992261793949888330043648285298430080859466364254170989752870194093207900768933245785792179352680526461491190401604680941716040967511545414217350429889059837253175340270117714951960569724838847320279065005483467070157844021475215650883219924354176330625036085551875438796514851163913973457267775043063814105319222547753707291112141166983990932563030006875204767088570280892145105759502803380780548779582151538309074449398494349586445917477295263335977795664536033641576474299575782539312190113830284082210134845187330433679112470058287931729838416442238263841445538898590048118540207775815714926566688593010931407288222350762660799089706090587013346555635404419242778067234726765215366938314114257736900346200174037884865655125220583085476454446407812090129534521113071124699632632207645010818233444100872172576544885517650641608495204088057182086857756762739523930972384703905397180663643916649084051113007206207458138921801456491704468937482473589006403128278415468700327866289210940295960738633705583188750084609127294376903373054867974600720080391326612782113298271759919940293935089322091637034953115681950838766568702346669727520423875558227826774467014830182705623568031495257053725143268177688199736211513183610011649761994369121076415859011173949322947967295103671583494536833672910752473971345448573773114397053714846998634561159191515146111317260943135380058804582824976279830125186219419937789572617057665514657544770316098677439196748359746549488500549482826712079725440716326746240277030902702439026046496283412111179154124923895164865420920458222069290501437144711440805945072460510138779538852999318349544602962337129326901634818617214762380817608087969928163318004389374892965545956778031880088439645338487296682416355879819462659995267605830634397187402570203462757111718541899886510582912770224690852214675571933750949922540336665046234122152800823364664120009770143182633923069147699337618252860040782063407688993331746834728693543034528431839093444733135371703606200862260985635494296677471429158109367061979656240392621456981777350474902009187265040064566771031827017732237621218540996424727069906486226655968576525040928559931887734507964098983735409615630615714398718334073505845499826884534884678460583600649681407644440007327686777333214359038897955301610569762645998472263153338478522056014709137062180850986463683700016330037996132780581172302683437472922937979381872172102814357405764053056193903934596521991947636359070689849690046250705826672734422472097417145921960787177929838661876935698043197944039760563854560654886732085131940638538796895448652663005864389973461072113676393493056919094080907379046321485172879752258928885210892238267322162271843390857314486601292424001942996199879699109649289962801459723454971982550373553366691213420027571115110756025027487150630539603592355857545228788663794079420715042675633631263455925902111327696582735169068347078670221408004428563066070715774093503834609449954444433539649272462050230989881559357308061300517226403478861847969213514696256813643638624620609023391159761204687404801980028528971498324003337665113551441250275832884806158351597994426392396847371697624186353618130715105116012386709644680553633903010843058490174098321835869917848019689210151668243422107727680218444072309603115264530291694742691514356944839256090318568536792723211205838381819132757423177609846283778902207743708174045652365360857774278441996691052333190362320677032886444105594221166638324510257841089785600730921920317642696657412988378790728150636440239506040171531705146658169569043755926584299607695402042452331784387661964933246112362416201174756058921947287558861910236686357264436642725097147050981833726547327493092422790685170961912802017367569673953531157969655590666335191712078550818290340705501858772720413003619469483418749351265646870980031987540418318172662562496967860923105228799084610063775950674997934138261385610925219148308907795914249190372854864958276862434313494033630471876840137774161454167020242157470727166025162020894794882761001956064652802101572432397610141301176476360183559506045450872772872904749768739748222850933975277514523931606097843064083203036398602655867934980680540492707453171689276345843513853431404045748831324633995833078810277783399195644769577529944044854680078066516536000085422958515772811404474951240278528400555550171809332671674816757182940862740783126357629558257894879942218902751817923838025001995301271026723630789234960859259394686589453515393308403114895043064372820035746606092859919415319158051582199732065812637273193566590508430243947932747020984381668992288993761806445336525432471600957923004885983915796783406818100346857564218116990666007368102142462176199881862038026915482123429296188072692103034664160300927890690633584321842030733717854161661486160320982471165110996731105586202340513938233790682755033563312870072838612552893859160139016842526551808131176512808676966816840740677099464857045304782420208468231659926963106713821529460531509263371414430031964758684499385902857879709386893461005744937151067047483896961857230398137001833866573899294209234086304494492729805583054838369736015611940731910959832829329241983664399384416736756870525824093832712651373095288027553009555078162076581304922230160872854614908974442915375692196315296409290612765064327127937963601511774869182926655373951096360997989302329163434423396045917457821788703952579600078712672775838272288832965337699038637932290778142809892650610962973906782094077472134976779477555820767429992283659265080421663043162435015846689522148845623193892614348361859710925270517844165840786982742616121784843827735698683850451286130575493526537626930831256112889955147077299903677127557392308927137982812741464471965620091609636349906599602960606691975339531822293781681157934900060000986753694185616571800471150893087405058618434745250480313199849414769908978197296859654741271991045367084935920761998780777753070404665723768306469834299292007568314876318267576894402913703832516340422884109592544666996498174569784166578020742719554212781101600792090542641782464707560243481938355991830669565719926831133150888397237794429349805979864408028749419571483735191336646706829517009840165276264507599494893256766722720501435772082748399080097506187008616428310607503305151969986772532890881078058560304761591337898901483232904494101529913759669674346513946188811514300230520424124588000157973783485430162054528211505130534765398224625435272215142214483440450898210728845529469617865317238840565300269710770314830833484109019478176620583521344358901671881925008290894921406601172279731665312964622778421908925235684798021256223282909255318788206241504690313326536798924675439881244264225750608963494020460450341819380166913395970534952067299595661756013424410997440878510807627918481094566836652727554228458528569467992507287096882665550210605517884152667029478604217754969740573249966630388507689259517008430151588300461005960825301162336832488002264983224617616281983663346555900344747422048560204242486421414313540761749298381805811430188341488825792360731382815219938708649409667483887483483243021488759949157209255722423570403805694636233203965789942133956924928262345807973884198314433068723204118564692985828311330663427811798950217344576242421328825265911974915921870923757474584960639942329927866941720693998489971000897878412643382382291167305499376204823957503978319278694791969057669157467682873815886613891808520083422780750532969103034528887009333765172371564845940778965229059288963643231691324929069502223665482086738498587961298567584087185849397068122031786107216789770525882963085391355427842271137796707333794849774225026188901575376115690621219186554532531687822986282864406885025206564597931469788377862312396833030433318007214405264704726969871013652417694097753477538786223462878234471890051219157180908412577126673511029999448596633198941282422266629006867166635616955700853495121388334190315384463990949098532652990127683430719641849849654523392014562711967635028494785347996438113232220773318165947188188854012644333824937231640365713945155994326897666145363824367091679358713142426439935632683885435093690926642106955466227484504466954758287099374721642108222126017140757764027700414080708625115900866529568369072430578262490094831080790843016773349726886593600545306101670611953105022005262623816780782295293252679626055215792827761922291883067281992869048374867106118587752875181380294552813571793006156350260031234124326099832758465220815053705610584778229787025727437945932426814473666125793173252104034590878721189322581636938420704945261403084962553563703448985849965076379940672390085860175983281431230885690060342416454856939354257375388537874202549171633093677291311399042809658316990059931924104786889365117657137739873819748025407079896033746641557394375130539308425112771422841860468173415742559422659556148137246838798480264531248699858409674136584602365717831061203233513537671066499966099849603039939030612429486166790581589958529757043534329757994654782199666049366035933992300122111554789402260653670572682648369752497753281871219608946898857297960790088521710932357364560312195168143920666887678152486622757155081250711942682007968262695424502174325113516166882770540347102732747717357852886216020417143340581368719667843475086197568474541407125843828415832042259494994197808529181430182194182786332771027180242312160512926219604320295865628746128392338243806428613547165486667930445427814894291176322972015321332714527969814967497780553526882285727579556686391144366215441396657367128582277717363781353505156264742444390733578998258969392959163308410813527979444500544697582456367922591381422261795224930174277647013973773841437035737563786246970351568589605232835183941963027610382922331099554744474207329185053519186095749506032176641530704727904734668149707828243466208155522442321093265574470879404710287147315252880202083084691304697868862306910065496863511840240289696009406045334422225868025009459380448051711549757910136630124321274269797136293395206117170758607069658200381782052819569710540501282556311812696316992762096532703059087275326436228743151793828674664237711952635986709384332518223238542524732940982017497947937470334479549136878793612730493817957182603434016519439314467993966042834469805236229783269015544403061825577298715340535849677832483143874731481152593163849669643376076029241345190161855020508046583151907964333100446405262715409578757196844263572906123563820939296448061083259881420439094702710738137024611046958549422557351629193595188055316292890714396778971564127408192360820590831350896973290438702406569104446763605802674332578713901920614617187469647428314711598424586032404712910266177953471991006300861116474143589801726732377054447540967069545021875490350797660974486875311808674640358011634298300011276748960476912717366025579787985124771779605293212623029051645316408473229252100662257544523106160286935587702590052278056878129242395355014099269521976973570682304015883311581874251644522852246299548685015116283294179343955989674786879576863273636494624268127598571283174586248447541626373976508259878011920798169911046903200638537566868975504135463253735586990970407452824248304832972523839479436200481493026501572216878298955600661526164249247218869551084583313806198354698453729669531963021598674497027074649648719335404593164985477357920086880103936441797819388648223431276297916456165945858041642817520893902425739172363165019678397889220467122917888656972867530010759222125780797295727388614204065309701874506375299529088836863715557766960825838634261399824027810171667496328471093611825245733968574003690910351276838929467642819297047738550464837161905738850011331685247563129279151786541893357752434760306984248049308168435526316541003672425063307988268216751733178948904081875042110579943762459584691650150630040464108918113123174950141932116376391516130556840345258780319087434765728727819793250439944129665635411608854820268782597557636014948270948917112817677118120888627090767035668888532778866941299080068218943147149141384517605623564255726778835311818694353614648423696401684688657644311237174545561675857862630368586185465097250780561600771340846879924482272777033665240639094374873357398220823297226337103332154142979298804312585059606059021616741955783811687837338922453496162128361426846880366716704000987023058003655374704560245367381890906050429808695655729541968821347581577323549767705202846592621394438296299369552204823496104361338979758130291256784272546381671036497241788153812859708895311778246426980431486285617770185209352415805294973598353873197411195414881388993257552495729927406079733853742724360525778680024317571970583466173056583489437256428659709900649379354671474007858201993905801645544656579384972314328953873240088824467433875833177107132220212626534561089851913193341964701762678746204732055673060550314225936965306198992686490487832025026887634482344088440844567248069255138206286667335809002992037488155619482106428801303478723734272505268690672642873868618423180390632318655331577545616581506869706720240637284159158160924809751559655941872282748947502489123822525437717054774243382930247370945096219088073478364978081839154792933253005179881039645278033491685346392599297905578378661211378113238299234099984670084080485297547345147701170783665353584890702613088227041573593283115380246120131623495780991546719608168987921402570819439774557967064813905789584918807538856880400288046344650867659960511985638941195949480732612066541597294944743240125244669792664012973489805712932377570728198130550364663936152144921138615589313509792507670441875855740776659748018238342876706182049082095645623201723967133848994090606455162229669045802312285603908933153471655397320054446594509512953356045396784331177129142636550538162277168869824795360502346809873920081944269774243703195395898942930498249537706633913318191589913400548734778812608804076483541858941633035427401674469492600763213513803582687730222776324721746420375390335084302693701167789431446338137848664940002969753416692562086671523066147643429173976536985051350751183411823883312403698742070821374485929470714375827626485533641485990475671617658101050424705944399335362317183144334886180455216693538218484575743278891363549160707336708630195717639237974733677082779898241282964254404919716792574151542692723079689549724160943061479169959628337003456884737544554795445021746616626043986538020114799197623135890195998035194274443955797704805652485689179970241878773097747267269770340990101411915198563984941804807785984855561018355295524587111412029998799941864142940263787693327864621400978037881408115146834665861970961470816154620589378724510976048350391257404257769880290665207138044629466147294939082187484781600629445804553681916623152849294916788856641506403597650254007728807102000218856633556848154212404815805682883785524316566220961547754782147807440016236581543693775935157552583713998535431573683073618583661348323264735077702122109609906671686343202977849370391241673983292345047977158666531936086320648896938663903098803128654613816579576322353078610636544307978404104674861977901525936249486462826938716085146728306436824572544965300077913299363168051754763886192193965511884252420567797226311362125420179434275631141939759820651321914050623045674710682308582759028289308055020572421944434568127069118868161106562044728036656593451893241674999941630455292173061745172481444461670867423372446074211094852294145584340209074874775054575215975108332969375397957563164817572749402815846929920757145985774171774610279673688298476344256951601661187734582338141357210991781403637285882684319473395645536280885672665225555655711880910650904049883694581326082898100684107403168576342793706803207645108190018002381787573618975200524091893906806275720938901876370973621300017218840935032616069236964663887105521863068426079763711164142544276159929384118935463436740286758753471346369513623675246299819229047421898938875440963685435091502636699581662637250416256302021445791650176277818971586943638243940560248698150384968235073251411761660461213523486002775776175779038511936102361823274497441235479280575249741588747136790697128085909871677602492155481030500977807213059251832028152145289145634649865356379252775070562251785022068193509731558234409721709822917789112268423867783804573042304653768654692750349050010417664356940178035387014620770430943891577783975718540145899728303802090922095403160207852164001389041110597556430488396905195786838977201986174675421333823329692378273700862848129120524060354875822351289204007297175536471509341916017405833545835374651191900938278618614641420487241712555036875431729614018893299159457549457602623780242813360556885439601117691705907749660457415953625329111858988064420709990602455333567930108120305764006924308043650507908907449333686550731859394182401027345483475001460652356729252059074850290090676074845433307252885907986314688957238751268994076549527606464235936025995134446518303806940680513449102132114440392168377464180272788573978336982186796972019677431313234952127149354097401671615707556596357001205631134945397474209484065779199235729535211001937276023790362467026021550583379649577146577126794000334885754925212469903486477917472242252924355601700862365429080819063305951619794040448583526460585014048070829844188424057241536049799467350279816433802025786770923559359423966994822586852000159150747417115403532320798112741133153214103938153952219162620295673525582691375314347512450216457908028222306767075760912597217797706066417399524363188291652666850987851417632867465686838105460241407754455243895604070487055994686828254211647923458982866215808024406546416620576403179510926500912794220406460783124029536435725755771331400862678161727313578101724417417385209752719199085986828067455378166599638757422634287126766816950019609776384669386348261488611897162124016082255739300453388454249336048193062465435305479432074992305838187270215301268994371998100434520207704794448387502557278079990484931279335397212507629406952167929451884631808259447011095909831026809873047847021839842525026533786676035327173493849715980827055129576624402841253967315363975540058535607759255844810732067956518102849430409165383753980040351960653800263681280787279680678926321572880370734527323227191881475576745771823346223443108094560872042375313880660542560575503086966128379558942191459869447022618148042143885066612132599973254618729226671402467904271195121186618084717594465779095457269231956282325011792041037433487865509735829217270521806162573258504492504595851892027727699402644112572939976232411950171219976436912800792991041374650663235693980308689812945768129458741864117636492716899976758211700612060033922201433427969625997421047499473357971504797330288733827162289309780553339513872758306550606151723335092702386798835440984047192616122367306158162418322665155212521107230269579119066882273743215074936148176776342536713276199237341556248881826669163279602828299659156714215196105805127824068583801561969700920612366244851694234106420601756070388355872282808822457573905653212867723750443525086800650100914686760306821918225966051235214025336332219016550725223676236851202492202005917597619861721382177286405463528276180447959654036169382855482418758535969295294287349262356890314260459281667232034058502628194894723804413366008711948231310016000724001013195257183939360496819599618304380363472531401276770235485065493838709208757804679000791728177943875815193041393571095304626648989179291695199793774971609348494545166285849784685168987789753680440226874928334153368749368825615032785801788760059955164968150543815646592799476927666014663602245725236944582243758208960452684400767280608708985836104216791393445081138989474262338335585157777241004180560195618065502925309548515528401822517879979130845787177564666282557517963498169073442792099097329386477780827619828986342392775831096910962303541235901410901709449676995397404345846211017165519139840538929048218369325005481610491047920803767754787348054658069859631015367548448313243653065733151810353846693080578422201414280325512691160359927686960611298565991761752201253540504007484109729290695297469647254391329240027986830533445184837566789614713563952264206075624763046998471314014108160410644468502711577344739083751790398110768062229003159059017156911054435315907555789073638644203804810580762169449571582033255481932197460455762929265836743145688239913645436477045251864465788977253080926786801879431972470298400670350045684802876573824553128781780386333876240027826150201499728125027106958221156149028343343532466468569952842492170395468868265703778436433549700268174732718799383348907804126229344964004352826086274263983431240308572123925920079893012991915169371873016631600135644871935975640008945062197980678545751220131926182805536782824482528684017997849123385342215315002751096167987115865589511826320707074754938834939754882722674023355977238245431907345138431612660418018522399300762721351094084458617761520103362652910506837125866525765157818518016006832836763694677378602989293195443003348079393431354655417424922714929307753009370806151359868790190567642907858339506077448377641494773728063889861485183419724227610538796411646749023040875240122429759549871465770511898413867200817321784809060226815467943405997396251604666079698693598928154962548335062636454234183154568475484840871686499878596239710696542269900891088183262873000563715129295044430217088572387283794469240357660443211935240856946390171493369749117489392721584947021097018140624987213044495298677286006559511021343244178480047768199420881631018037626891788378495328145867217347754559438568633607767484009611152330738330667245508908945628459868897621718537937686544711620338122529288978221828707942692552651361232257582018250492681846970915022679634161399508033146367625250675211834684442799881095322866215855328418848839830915869410763477234542054993864553141128456177625006340476517896763179883778188097163512697949210593979745041311401708113746854365363193773089899181031342027942193828816690111320123831336007966674990060442204203614814872651106114550990189192139488464990515130557520928050400931347494346140582703857726456935073965908541629858950018148696532307290856467264065928150639704516585997739948284593718487606961506230118131824187205566714548039078141299416279535915682725974625105084801062645175320611752720546148093719570603937754084957062544203152669516757423595617328444444405630795865834052685230767573411733184090806874930217385626861111691045271610582841134225123447877838566488748966344207672292860954020082850390740569680733950890643524361889060354834439814022334939864798141105066462332730078006479116274873604977079183566398700354732841210994156012260808930161016153378283380086414482243134226179450375247749435986410204803641528135638973161635341915994515257859083419138178996252230610789150188165840803935947949466068913466337113300919088470136607888839968250384432415695368698911817189055685935207875099527388072689283806161019522535193519326961447077557238115228179097926730433260670577153062203720423224938472826198156103751717539642735144722424561428844557936939945566909045838540870530404787748991869227567557632342018964461956479464269048873547661763370087371511237623100590609789867229482121577078184377591421062213966059979766448724519271554685319125841990924282375365536742929142576705551437611888787636609645620389285804389899865068287813911908931920253755839781238207114412796899360120769238225890991798405859295933945485205019176320304577826538687147406827053137535210351854335741888481350391309511958231752747389493143454579823428493007831447166583169048536533324584963015759453146273947384086610137329328679618016928880930516304872388061916801985722611172059303905438006700312151619195778863913838364438779858223032682686534022462572528390624975722159420241291257256717312456316984184134645792355382373181545426005997826507258778475389232140290588400425468946595335224487626519336677471814871922793308588500521146527468944662483684790121841234932935331606677145837342923853116441597493042028805079543919639087412631578010670570899740348617770998504734902244762610129852616450222106007601432236200714565703024781916487230897270163656354664073913981742035608721141227133011428064134030938940496445655290694539781405525955804308338841624225660527262878155728174794033977822022493678057792782197808576358653203075281085556833326285008751799961907848214077652096011080633286398814336036499587942583986668477015453880346398968683967098427792533043204870516122527041664038307725056108740046436136215907510950821582281972492164565484829381967563553599690896931431821557321871278165106426534216299038208118086221870793794370634023921275328987051924776259485686121493440894504713069051245464366135210411206787883150775505608402362138193370668405934658522269134080078413055046285383549278650029038805099535156690740676849496815624097298484168081132943954423223115593719351037759769132404020617672175933351998095798611957460138991561211535881329283546332236901543331969971427750881770588858867153211965455545615360543940965472589930856557971323481871086357700334497307738264861234683738092878508348871927988480522865630503737916808374379729627071505910440423276565090705173131207804025230000296733544389468688694864345283598208110163010031634277658252813414036699369810658887918080811970490549331989158807964415544885814441146410401809931012575803220824947034342272682168076003425281148643836523612006090126606049090704624707097025535588671021706538986803383593678217169630434983694933380850649698929682251893885392497098633773947653735645466111720917520269584035570600749914609961183965531893393132828414058585664495563386802247214904263126253245562059930314309222336711021192494965088241333006072767858892184168120803890228853340563384099373943423515369802609566937994531488287205807115323751879448132604813193285163967992430086442669717827505589558052436987716511829989095605905847429311440393840631102727695048800308518706711506633323541024091070995684413095700845107462260755468545356504753846578845341783522932582677757748195013635647749891206542165092401339929684536419394528745710458251693570443402439383240179215782888121833995347004759807913766536589504674970049201295540898905054965728620793921572421899392218901247708682531549441444704147208716055200952546268351204420825530914985227226897910800950925125204329218647235203284392870167706979630539404306411439986251675143082249836220229648826817499259933489841059142631421563819156494141156619295482315490264705337174592871934141038427460265889650721663074302021318472460000645143126586893411728932785955936105641604261360163242968257994468307695466246765285381344326444199162583590922610069391162226623079404877526745850697369318057983504399087013757329531408913344636099926528325100493491069890311834979408329906948229896628397158355032907615370662449409112133416217586959908417069022602287343199124486182387560548874133680188640290653816287618936354867896790778832217848638043312875079127359672343479262536083294318948874244241417433211870062637334637171871023838885311887500417933117659329186776290824056849011722356956251759231337869433734482196714613376924001992307131429324829910147755204104336832186894141325561213880895063004666334342442972438976793878158087436213224935465732835325915220892289029862893748386320110553302125441605608527114931196058177634262729470988736726810819087391705506269996645273637088743533657732776402469206946520266817598787582328008993850671077795144711467259172130723617542627064918949593386600249192364755247969543615723041030528693881788943987059540910916567761213064191640492987056578777549658745061086367210228655484957442870281024216827609243637923698955392943092884653767880915258885407601099769397773741017866409363060668867621093099319189362645403917004263787676174960182639168175532148092209779394862746389884915070290959815237547673293341639202613785118771447066003904111336099855696318936955574357593925420748636723348982767675714688378309318958460525995080837021625115680006379960582609644251761549652813088118985693792401067334147542037437446933036690172215781817368039381576203073563281918602797737942973683083320758245619472812626722668793864710090855797105242018352280527662111947782357181458281392466585367102813789903717521848937414267682593135220887224142958427636993140964618048856126741061739190612737040053593179568741284525424796678615921352734689529091168674443764393193847895579226161471023154196099315636423284443173889031464372095871939345347046735622377318587407368306693366417529498317794149913359390548938345835228678049965433329755687744991533233014445095206083537770411030412283797638809939253203561121482476168780171262372692406079626850981770547427171358130498018214537758273080477874825295570865366802263590028635463426837385292275221739131394472721429019796847764293944381687031762328171156225684480925336381406834046675832787576219266291646916929738419955774362888157142608441946018641138327071786288257526325138070940883348393435057042961297923711642177232284120330588313812022486979175286671102803171563481329100382040212055532530288157094356164852910750645260321066119065493313332439549552228524339103734918164004043524001621361811230716607626158486442101191270570210417452949327018055506771310106548151553397847660129649294791896845495730689024428587567510169948312248717385835587984522621115008813394837841698751714860749062235549342117068686526747307987533456312561720129960893211349228659792705329183625090099467220932909604230213615206327996738830018794281105605779990600094753569726654855024099696649647112751641444262804828125391261037182234267979195207936995626669337825728509802970024934464589195222793421250790279242310210326535832804706577804268088485569500065936876947559305850131127358976945110827756762521370428255270867242095247861611690978649771409072614225937593232293567878705418271676958434408263428955619576803724594956995387592074218879027099262601739335147658658557236694470893597943076770239904416099417206980370241035707099209400110940131238612348517907410937048092117452852174111376436186658066461190196173161852404202851096891882276022410902769966853106354567519441711122812374678356128484895947135239116998419623763805225440589921715206892316318992887910676439739870082623083861159421937992797498265710688397297342352848302082782790008346480058433598803895788281765780110714686547103827956400673635158987521552598993935787412014219237347355599701452749669832195098644449838145753611339249806611816974323542701572957105451452601318402542112051847260378691645245557461066492050771391103667885399087271037569495417509630893496351243396617658889815740843069930283948201252826532178726423296513535092575584520776308155315932607706546460994515267096075822651399407654474090450387708003554763819380332895590886811818449357094147973691780630389173865887679705412947348926385373110353184705270633204200179352035817796881010710064784772023549441404969688991822949340816772819609287824419782116228910213133010530329247998125035980971672496375799222093433104455907970032293843391881384054300489122983940280785535429950956050144863963379980422694639383218347737342142498104628396383292986513131753735143578537124970122347230988673706176399008041850811805822769754882061449667024305328617625685549579937581955582341711387950753146471869976948669946929124533072892583784922076397465243850128534347090485278758998528878281604244908972428103848307986821888870383339624234933804035993627707334602859931558405059584892565695178695393333873141915364482200305254976603001518778872852917466422604927442367349831019730489220439673317437140681694181041743299681362227031508352566772013125055141723338878807045583327852996345366584623589501578140264483730215092940609190638738016260762033819381236010364837041529817479313376788887814388535716046165649041060828517130237250904288033321602247618156190938216024872219352545303592906926258539432940113828113997499272509834232982366834850557328861573828700900961408948650985997279059992984373411023440704362755040907920670360155913869368861590354685013268968306665572101743281898415857037240349114268492322318302441370047372650295511761414298857297919007775885408370337822856296235574952315497135349659542491760805016596422378693546827150387893923660866862108929069968798572590008326536284209295484101681463712768140929660103539679078530384997926290591129661181355901525035679837666797432697718471413194325003791120331324638495521128715753556454556868160156816096176550026696799114946144849841660484424406747254515667079764560058027170019704463504967686557219502148184032237350358618266970154816124128027103316910857587553829593708322796411637661440360863875458330397412285117794382054586661284316475984686641843057857327745340160379898910861116362352256826269996023189403949044605307423367230220313419091582866357832728762476103281882382775822011945355709384725505303015346988648591492456002097689462221100592519059404482973232919763374501967235222737489948701430911674951124706692012989684422607411296365435571601776523432949712542825557202321853559064723858031408526720246777844185216661644658526684374876698468908197463051561018868305105176310245973081719806881456478454573138985519664885793107637211928736898434291367917021502386797901549283562873729653119535439428838939792943261312286721192342991210674960358925749118522635295386532430227656113514558499843111389272203940864775509643120704427593238376417334117100455373154896072856953865636658272877858840949369405189827849120000391452556919935382912220675552574287852777726812903855707754212948044950428658348407605670652896299835898863725221486886208823013309490435328483566896351670330510319046012014781606958138680405223936867524996521101764166257409457915480045866824295592328496058800965243692698109702736491076168858480160719037705966420237966884222295129083064073635476594558776021579689731124635471095439832622815032449050828865258763552156421229290525932893806312971394487704278629213400923437797371466878687382492867049895168222298345847052190231187410486600858455811138648756446847317592125753601921248549841581056030093096481037422006930982984871399708042486252209053707183429905215514197248327581935783084571209958874022102103707992705229419417074748299732567800258058100012107654210687919767465069710004454431893495790863795373204181968792764300627079099203356105101940996481452696981065750916293271975511688140561991856392060052056398754187195649649006354130045066973010228735693784209802585455112626534372148580012009504598623406989572518554181350726514562623539626937827954498068635098878899229950269184024976855855022578652666254867747838044579418788740492645735940138579136348733558381519900011564542692933718876966391328507123754029997099486655236018370891053859821155858156505823545525202921477804080646375861017121712670682058439986439275782149352262829522165583830738766990792104042071617269961231456694392349654329180347869966470908662979101211987068185434915268844963328621948976761133424800476227197795253562139229017918325519738828333738630037070176124540358149016826394212970183287933980381366040176543569881791304630871953069791312946776874310541390742198121326458682682929609137818839745953009206720888878879114237355438851314532799164207422576739458701705999253465809483203475130358199962625644155319279362324433516257835145066081356646910430243601485366757191618294624992957932830696993342459019781661785807331710917684349273581065407858951846490003307314552344863631517175227396119178037353546237049847506748521667302110710788472345937232946121860600515361909544352038820103226396718780076660800608413481057637301687342805582079312605010695409266269225844434446826187182485589800139855715713587688077066947691707043293638353628558596845323599391321631754607940977049940571360059226919008593354787776299289193108191535739770428211933330298247206373501565277172451068638067372718304596898728533052602183083803759693498673346427596188263089510805275433248152276187123474737106313432115288361239646587458874553318666886151486715813954522925302621393807931031369459015434811969128484430199344728150799541618087791630524343057122230151646401726710623089548103365069847506745728732330400251419877135645767589196872110872374456814321386964866088164703262885201773326031424159302527137262097013207024807972342195389350477043722674492913535739931596001810699178713897535179877903018857845619899591947822233753545088525598078821680401726895478127265242030143229430543791095566940360484480259948958199717640535744989253358420938711780599716082411862599589342145370099402049475897046532957232889128328809393361085191039071754484753707538464920489203728945372762463268853530972515396362160225960873379036588919515128834054135275900474925978329323301141686821094914495428038585862968919937110896433710339909281503939420379956020656493767272666479992261026402679106325149575897369016466957356237480936878290334780364041932055656373369622427546511426812433846061288176007846590614040296400514657787019954211898329930471162206788881250217711085219464415301856423139076748465606205101595817625065230268249994202404777251625986497895374133781071537908379900362334826339083357159609637146230274892515057563107444114807310284498086968845711610607523464351111694709343980985895053136388126461967390502831298772387473456410763000501300627554005325881502896012908570548987633778845106101503657603545350365836650945361056091681640209920184813244423493823955561183728625931277064532866703850254671019889485256106749917503419785024739497482212584186697440552990335109966802342000512562146482694100403341903795903464481526338862800863708486546100940469475337856781661748733465028195921643204994552889357793280031125366979827953667619914750732859061665395168045294932196562495219717529268907332577248798374906688727392875485174508402232766424085762378686977160950468252349684940265208830287724051422128358642594404918465275100506626397242144363190991054657792402702690101112429168511528578915337429440628263684128669530280072437899042671961410114508415764509689521912566630027893691713622849014665602926904504997726456735834080750717710803310292730303961144264980373169611754824807243881373495485278305557374008743871188260405637854834066485905645275884591672522521162289560719603696048699672238112796005330048830964265580475360924091415658645190443780017936391065537941768770811533880178608144893052822510266314085894569633035928074401156837947185497846152318192502357771988240974236151594405250924794386561207567478163752469453346815058837695169241950661573097106358235095167687174339896867677279879125616240558709422600725411650101344258156460624380210202712467238900860724328201719788434931718135155523626347021290868787374689874209913225482252931642935347996365169633710268879057278855401112028808238191450851109965154949404191880876864922824751943888683386862484898046618223103275992395815064009961885462366676427693940254062895979867384619484592161365848731178628299327923646650874912242091504872398180213739547496974551226893558289452422602529762495102198616779027614962729125325403856462091471808413299040392111514464615706987796390423838118090681724677589396833569269609484578334674676461951403242417124769664549837485861453977060451451858725155572538753529205566586869448283320904661539795529567885688520008153800015324742324123501123618536474654221836589274156423311701431803267388187346168269504276286287534635543862423243587107481249137659014166211727821253870517715560755764821905848187923675522588939353292583258350916708519865028135814626408045323221535734273989850229044469950564999623218134986696013874875061145049951883478771657854249739339929934683197842929441722676222952739091159502600526025664970550690263855793074976078238895500662668840834123570969688253847740874988797097127712022297815961357316127602591167070754451138162641147321382453128342795993691403853017364887943770050457373723916689650575663725250142494298046400505603587395849431406888596897513776144579651596786496449515660517803062370280853196100385803442842401963610320661035379802642863064677813388770768702234916230370236862100652923864498757572252226487794095031534765231461688642838123230189919062755348902728939904560303671172857453360535274789601413192185379577876799163135741019498335736305152576963317663693783155700076050240230038021023730699459250368260690652588428329834643865905482419209336972363769826296803826466146208685777029956847085444790276509793145569409117146828520625157900712146284539055632415328631580614897848322341172100995381326900135156375001975267259754841619588527354019815991785448161716914278451202995954224713746900661120711959205292661867891022484249402609292865171098217006234274493281714389548950563543867763678079426313639944428089307824978026136125336536364139996884413156384755120650450072834212979353305824637517059999921077165472896244285354827395806870106891908628799053660508575224491207782752315752829985730957702794827518859366462886617628946580628330084321490168972590061033768059560534183959616899559090672487650295437692199372173101301497923013067799756372866798934382874702822085999862467004006433488903734705590949655950982940693471195468783058006385018450899062435283474676866390138273582431718466871127756933587507304114984312422142197795710620873277299881768723579854504604588544110328922224046601982521086823738439374946979845555100154369336998144895458180214215491976612751604078712022324323078960646886369675505761483737928494851495225681065140791316936793020168250324855125483819990267912475503464031947007514318045302611514407486448642173418607453549129844117325204768426803804597161819964903361169632229183510238034113844713554357949766376314176094014055579035390532637535111315074877510543303598347742585416007551995978330296675779793762426533255879543086035196351175625320884964426255793676132619014331471012161144228105359407816179348980013524022647726496817571885904468297638696122887853620490509278952184444050561306042443412865506782378023263987992846523295589997958535827316038470822780352613676723983436038733889019754678252898965740625367535639917995972196338604414184106223639263015830119145078073465962093986941833360346920128081562349457612959198384929393660903918028577029180682059844065673612832121224178043388558533645412271837617449866186209397095767574631896817969386805834150591116884446031032170802004218903075820890901928544475613491924188597442773914170571148990589005099845478549536786335186756379075630143094568644383380185727858904029629086506791123989030138551738507122808326464774282420178614693292657277699628799191218867963381666850495186474563465881665396038953219150947747577732220956507543721347146996960649158012082781080955851150594890045165680340994984561221288429605066196901123661365490403046093003133550465501632860435011754798001568791004864516788782085019097069225534471297690113582769135187118026023727035857164086385455831085249292729870548558535335942445806816896846107339035311384231200403545814809635475100962057859514519050532138067726161324130488732525062353194212786981519764913421884564320229100792128411094847344050929772825850154711133579414657318670431461145824289446548332395990091753829292047338871216136797026057800613228536035452507551627512539010022853471568736051648933088917328821500634674282893418734540304853230960296097329806016469302778970741613515881618758280635944905977695261507975850260432741116657439884377185857632484446284969297878629677956500124258942145738617983344337531103352603203771780807730498340383043416352228022283188720883549655297023370818021865992771966884271046971007049531547249749855837935241185769609943777301057432171669808870261277420993901543785763483914582822642744643910308773610041709022481240088102672154590708360391709500590886126683579025457721963045722069993359790359253701785455676657657565624061531618260900297530475209257327149492133673739075392643862830942055029024160009641087062280929603803725522965462690655068047022312800780476352654014955459720675069475302993222304886883419851178711644060906671875679445848652542533229497063732299870840055534801273288216780471943663567547959331766155022245548317015751983911228941301204313794466573572183456921589260539492938250963843161195459010359711450995703567856381712857659296784302251414713494310593230708718094280335360622282778231804057181302835513606330342178519161522204819732558495932367810391180337629038693407243526077872650118526563006295919583234219338449472988417386100312179793245101897462397397142612039197647562142713803396429855266460881389136365292826986900466869301755416346257809424707236201791217433620059301069883858141260221156584690980414886237955937301133852987211554856450884222422706995860598974706295662460622434053768177876819503774515655156076621003610204513892887911295260323965215930827960902927456980510663271923543385970775738927437663690084845167834284042830109189111295474934338240099481829121983261756791874108672250856454386705650037486558490167059736290898300273579910201812140617493556648425097871377352314592397127059209902578403818382133345775930598423689758319161403231961748295502218595202379296089707618141886212307420011199460978051936322370309939357659542875840535769017764740517444952126355390198740027763148227405171184981144432929277379394749848630928039772843835489727332995793000740531150085258943897590238359173624497264107194008258843063016228540583640267343320362999011704342262102697468968377760199461662576201777428604001986930027915823317242894358892837729244566483368772132875481284260592915174835489049623437377794497622670596512649017876313288431185920507867990907885777846072222449062739981421179508257230135833334900144668015896494008727329078000368675838785938429968737416429478286332567063351889851433733560434322247361874849993049875121476082269489304596293002334278267505637053108876303596855673299624079560616759685928055178015837742561883356430886367049779009412086226338496528872271315863683593787620048467952255552651293641614179456832660690900925267683828326718013601621752971243438350813473643621406079935366234445979089008554246675962499574771834054339386638371500765420875414581759286196325087010550505173817438137689173171396684613912516895339091384555638194337033421209058585115813118390457853764602628416363493406590540065849454536971446724591085145214666199516101575489653713123747861324833228796058391892358809072353785684054424421700598273795828365229044451719388786366487262195129901032354384149834882980318321207781634536934925589489193951956010151329809798913999562654060375924058332561534731633017159431371526919695442621664466935442932277372820670482168196383100503075408765677902533101798155247670108631409366067743563831730775975052371508553210987983531688429793958355939678802218819139129714527641808169041534830934137684121248873311413303599059575108872260308774865831051397859075315081605771782185763191170582868497847265418802593750861261511347087708650327775353038036853240629075469618915284430285516683571572756109810437561219891862609287173194108519757643385398452951022074132452409719984556041288602346024431087253216049927761830819142483093529431189395347545076515191872429871735698134517531676390477278744801104240134156748826041776165845566898718256729923807187957004817882200629789752259657195546378776888173656296178023842907364774989577654287701904904704793565391773475497090660345104516590817691192047155732554392985054458896975607976260002685647861794653705553225457403790654114900264343948531042836550843204175998326563745125855248112019317192209384817812912388726412103975905138909715400271783539045223869637059238386048353322544372787840734183115636206446566382237971265664435614400185229145511353148544052915199731512938977792603715999079265518656776551298118362144699731778405898407645912987519387963667176398307655783313396709269404294406723184622299972359626424128929300797737886577366557827149422584079549318630547805589130586388144224649405582479520603917733387089173345491365607432940091204630777253460126120122962403674681240995424541431058365400253995333879377749264629230684875923200576910906388105840602161919611230683976805688284557880077978855216859202334761007561025542129332600252756396793965703090787859695080300288166716553427850049686805739146872199536970609918001558169506511636867435909649756310392751558128720722373475381992656830284409099879253947548631581394368581802273042713404329521711000041628117800835520515835026776042072289937691605138461275686048341295910053637110616050941427983764002609939855615836471072740369292313811984042788685005247148433844867104243367134831629097422627362014368881585637044160676729748613858610513109634987236250466312860915663646467980009419745884154890682881541990903716550592984437126709056848649496313093303155049381367143515720643365558229823349500547022295120623927679150756468344512419711786891728419738540627311781888305497127828190551236823515901574855744632349444935736438475091653393649224759257610734582543894100017120586978557494294507054385887917399439323819979429170586656661848532856711741874552014220363713303585549970112979184186684656176296788811183489995845440290331383896934219080324733783201894402038830111692041611560579964480600443971178867587914006193785086882308373702158269518281693694744034847690880524762728926614702729495434356164568473033922017842376198842496256042456067167939345293170672107305839893293245336018079863785448329705021341987165315470905892034942291494522299756019229213201663369126405644754075678431909061578095629965836510989765999697929512796248074106077433903427325410541061661536440540876594337460014871948869017890882876511648511194892652491926794545573124731930497639039123014809421089113769564364915406780663746403721999825330247781582151114405059788605931707632539448443255359861372622853099060753796833782932415902258077102129957714411740838416631579409852229346532489529625929317851823367942105228217611746638134470964865848943729775590651901583253134228481098645097902755280192739709665654960149864727438032193488590343886070833790494667082675117316873325672508784415457133453941112110982371670646835866401538796461083293225031648190698471088194075623364324171721208950460908572274198269509829926506251770211608686939254011352317443928571495474324807443135196064617378979110682258314020607820816980693241594475924352441675076516847750061391439965153385007746753031142416877419067378832448095503779781874102148056467934753732186365374297651779963576473077541072757794676948442527733303808138256953069490903083883369947854063313222043348055034957026856506226698619361621865615730274771477105882639977459094261758493025202744226380130513009861072347447206372065267390791174183390404284006416346360753305788506419115576335100511201346694139472726362465820296355053084750452674172645646466713247978140631210640078285095699301845281200200321930710417232628417422427581551347241900064949531095773684219079689380616494516983863928011095658655837001569305666268382047839500316580552520836665737921832383838363511688129966348003598620674196278753091489771243807048771234655908791757188835961492026844270582251020275024601254497403895332452084169364983554644447352658378313565964085814361670709074763330304579776179955544714430803669668212581609740068450243839120839333781927537491920299619449228678614400466007205499818230578082163733357025584221367412949701327836088327659571404243793174036076173183973642039600755095699257009313556669292542778830809362439721037424751044056650637442181677599764557549766669969700677426325280388273437837121479249739854835357079185679066656373585932605971336638134794905965612876928572520943749121109684429134752387964632277027254760094823373973111857344132170664640239407003205236063268976586850253914266242660822085208574741995472364075684228386292942164390125325139723157226808951319856444836436328259238159849781729216939870262707778183861130277594234589187395090360369637968410594882634132419314065653308813567554590264546810830015614054962416882913187105938184089774761906380235368671388861459954428990936212430040829686327522608266780667633631179997543433285290333839946419817903100495437240031548374226462695640302269727237683588994246967045325700238737957886716846138284328143100515693886594154969184462139543531519477560253943382221502684519529792860451645991788092134297634396891586089930893611315938900790258042332144762013545913144124404551348584573934807599842280751593809176254621530425490085266904651714881878724012245248605423270084929917150484234999678709828290191631666558730653223638062480964849936776624040959189198612617804298840617942814796130139340816793792765710837636558683444466317729294736081775044494550855186902121155910062692527349938992924321202641801511490736601580611478199890403000113165846287792120321471281921081455179705428428599758600286275840645617914216075078197430781111521151658218522092982789436519853913192952007924963171310963944194808327343587992412057465940935033515572324434845898948145324083816664826659003359632196218060647833888334507132252048010985525260748110951298370159528864309126621486408996497112823143278506596279887521042834548793739945361264444239490074075332193714956272528984221029144422373530508512933789838028011538600791155399094936243379302494423604426319488214468880712011947191284131705601773168988216803592758608460904135760385608612925323509894184162255562347873526962564458379635265059565379056315088142823277330749792195126264379102600065115239561149361148617581339279643648382757796784557551778294226503630997659294804951200437645398047545655859730969549828046468469379281505763926593582770207261574059611342430706582274036402728713571419857093472825470645064393766119251614045562263834233318763192023550480446977116687418715643941346252936597939817116725805513757434377200298614904819211380926989502077780639974527565318082941132577141088051296332153431445001596095198430531953232180188224767312848363571552634544549358817949550432573003161988231483532650257154572328268689186214435430998133008834526819132501001722459039390486021493893914379050342003174430848931598669719533012716664095348962550379508390970519234625574987856574562265820879625037449544417915264797365475448544358174135728388221314050916388816238971329294984380638461814549694522839021642209881751836707395465841941980324974620503326983068807853647909072002683505478873368193530011154126959004409777997727484347921443669110481683486457621721043474273187425233693259148312770770053650661341355922551974333115080755204546384341666150789790121351736888337008147838105228288620626397008576574654145100517302645992361593079658679891711039546294014645573863466176138837211247296216157582534223935632109827565398994364228155886218577616955190555407511602206241651511131499923192452693809083421318973791023568931097340428941050192734073885142551835449498941604637285133191309155973104690956905081072424966173757325994541147514144371547422928523818371679565055886761640475539322717235537741635997828174687928101404392869627036047856990610649667601272054314078186185840404138361321384343369816810154895105548076630252023210526430045214037852713056026731815090252504314963804026130108853378354155982579869273707253395134471063707349343517456854966798898406584351264871283335272825458659603139303636148435396755801281644932860783343635904932072283934850270699483343551560406384867238593715242140884451356847743492518936050729832601110376588276974121067185593223828974368831901275902158457889695867379850171013610027665355920309629390409980031432783763745980744105360109059007664847603888860160784066820680298399578549590902035648171243495039508384732426302640662077009246205950816642678806403716391710135172285559511824257467145894990361848971490547025517582676773430003947573122500859017414945921300385267835791395958511115805874949262760958795061113011360955052503960221494582117100917469853765649203713869273039189688183094637154407249041669236501488489055057677149146402099109293192622975451335327928954626299859013042291342769775899437672419545453965134574212972110528968781263291621375767346769000726505734226893128982223674332845213672689900890299868461282776283561289158800535196823477032611748117999139370367588165452440216075139492463522956389554368030220397727545360596279564939545279372670167213659380664880823006674977490681411535135214887662989932709958878114080338788647061837480316315411033890357307450510053814187650918485777844023487033760610700983328609092918250742686303011340770128345179106825821559264557454591290970467043309225479856746562250570041706251807323588573780475885692924980537720812305010641690096830451212918556369238171216234436258432491622827326602435847711824161659115574615712130638935664524501445448780844370105522215749873166678776572176029912326258944677153951499603219450002762260178401814307885979850209456226671248811369799757399040486035481387005898402246113600418707439955524070054346689590170198787073480595890937510716825966179801066921315664708413807052213924344379445708549845026157786446617708785144128593662437658467876176090884568865289142220956978193103525180403026124018002308771858813933504395465161495909364117915249985544422160316406716872565620222911974680824178731790165460881146993479180100881915948947929963990132192963451919240065945952688325124829116020030096593572312218765917018619491451445829924776008213123467051560213119669558717616625514973420152268459868785607201278367842030295432045380919534801755186345638340012882416953530546569209458929836325121980289892665666046122429825493467547212137925769792240229191111461981209094680813042169396474268936232638144749683325050651537686495376275045610056825617082126619383782364585455348680456806460090244020763492455243091034102535448097888886746918321519543971767150938515934195014386857802473766507802384202674662780458886534683286577763726798675447443763320728675529662732354322039613638071542946703506280449959756761205596412209277571624741177475771853358683123609111097142661996561479697926847685594849634535556662474639381992553690053478132459984175165829843397266808731048652180678412720264823501532130723958003383924099863175308220562947683577602573190882905335051815122574766038227611865938792159505022584599675992490631041832066766559866105278804095779098315868743338415182767470240343832744055635173632606228892214947698780845269526999812035242785158086881419465411490301691003232750865541653217754133213619909704371426544174853509495655639493841592458089099815294113918165261507462982121465733760429649146038250084606137637756422154620275603060999381694269588292844868569683033406266554053983540113173820962837243590741743729296198856778462800733661352821918630721692367483491646036637933499805071919845274791652719684144033847380986322871713528154883012991815952318764753832228773278677250412462056449351101455193876501444542948878098230108408142279398454804723575881882425502306606523230599740445107784645657537224265964073327556567628866711902376314801449104101077576117488808716650643802655440086689830307279717932690385777677681369351648307693285370999227463429815848332901698816257816639701019312021694945159248919344737651660147638499322412335437357875017470166761809984397306643323044508163184976775725201342782613849120007992246616275225560825762896355285897900069653290500031050617672713431941944800647670765289113561344199414361629205488376198127433641456129415936923485052422694534694408003239479473500135172283961544381437356304106416850114429198727854072711833158543952420940172002801969526683062990671880512165697949204825351001177099000911622301088983113412035864431749233826445832401423505872095366062429382409368223223431381844493199982535117752377078815129280320267986435265308885357939108135596626120858323135337160091847614793796073613217185142514938847777998157872088902676890339348827526977011510292648765314595312519443753472070322687337486621999347655337259193448725518414697525931204134825401414285681573231712681906462896807273357631534112317667615088995094945687177790642343513078864819998970295131711246566771200198791242959572573993883101338410644375460146063819629445858403934932919019115602869090268656486185741763014096159930206509090173082895537774851435276140701056574610233316916421712019346408879165138316956239863639402734447511910283429820632370491199726022390711527036997871709418667485958937206509672798003938414798744303384995264855658852364395376842155510625210373011606468521965071359781636279089908217162820662934491153726104209042160227072649718490274825295284544796468101334461194540934902088342834336081939793483287918172596229483010265872877310251363106688332843375870199327004110903177868816181779109423853899987691928827437139323229230159850278565127252239340633425288001858989251165558042255982772525610100171984421849610027970579498975942039796841608715736778255274251293479980288807091922334536531125099922715232980649130934456599146748256927574432879449403194425881861154994203559637638891309569655854175606007244277527132880197981114782046192744492207669333326875502944128903424449800618038780988006986772839771412649320884427031552714060236832915430570646264752078725378169518140710190471183610142979558988144554808761444153184330825336819482276874420077326113686733804591090031585710828150906639193758288707686187752487795912908639686922601328890117379926806915883560026389996104588630947607871690085001989628982724073595479719437469455881345421141434659295517944554812315257160202403828531334829784745049961296411450789070157586645351511760965994894436208171853670749527930951956778659932738393054079451552094689008531394386262166282859424682419122979449543397185701844297333395371152034991292441150315639862884259513687511408319101675483729802499345057688514625736867695193314645697248354103856064989400857156626989303446955769028253680600968061433027790955326808707455914477703253279827434171695948339729252198322620595025804801123793376964737026058752422288678317604977481691095674400015509097259920082558732657159126071424058673393047859391944251778850690518880538132699705037828274030662095282339522244389450867365742850595827130326611971897129069213243386797835443451354729185120961781057259895520862901700320612629638238769716374175996958737900870414942419665642945047948021918887534866414701473707237293480469740789512289559926445519474958747440284221616318565700086260433427954716278613433429499633616513980658199276240109850406077226129890736895017757096981068380030994476693181802998112562011242276949826670858022345318422934255083444940194333623746093066025787542504880267864732313770696934795714949840307889543658863516063393642955889463585968700004747144556207393184161404719778029507478072323502603635927960242290775296354271911786285300575605205573728546050047130761467353332983236255656920651782071667159895432750059597587339946177167451439770834959623640659745910758145343330483322114314678682843618442596917773525467927669334290942758932136299800200926877485494836210577515394664690547113622692492655270824661873107440371571980252201883777050867521799262433756711168333037899910442207376739664910530138545471134551873981159259914708529103858388226967864653897799402084494431069267876976650696428510050019625155316551678141633673972800865235329160954144578859718055191162645743500644817300504994580316629465830882946704018163862789995218688144737454680649755276084390237237731830155805967138464847735305073460529699618302006620539912720173157720824334685182402471568186375425091904506918753784939776029340743608246035925092737355380775186301475225520476182651149449590355386018329543638590608543705978499447328835438515598928574135949680780479470591006525267602109799051360339412754294015937789680141707774502674260605321334131949925293748077748274513243523625237960671643654980558159318377126706794660137032558644609150068265835590999031083145368558676963123573755104296030275268514107834913623095185000674638737014089751448611316806972907297197512803700206553286839426555176887160387468835229375426996416709707321830002776160206556464144570054862095452300687761196239436308807064396585737035795878432014111246203842694253189860906684482427124533690392456884983767631445435400571677322805247381597267906379681976427727457607468827043508521982401756848685709632348505046909665106456692350656477739217977380864346049486168823084281933530423132491728868805136997122612080694623575357124938035307409305721936087153941936406052049762480087723078809014054991936800705584722501845854093097054126021720070109481693716595689272044812588498577177366873293489002916811004617090010829703585276182525959201175096630895969308041934599119146787651776968353817688129266048033240521587774859103110148184671842981240573560122519019537766112617876856913876437364947773851961764618342267422673325919897717020875930371595117777283074171822781992478042682721576529271095846708279738325362032948861970523749004619635552436262335872496074640970669601931310346914933095532878722980882064339520523333271011454984423286308481675472631485341933750674812544603034184976527387798345793552083669512317733413354308784266399995734983755688209592456910767852243987163743467773149623898860069664096714964863044004921383888779207737025644500430043926911433905149208296678422758765792161578735109709389176090305030716925910611099647024006801627263518548739554257543816532415969806289162657031205698955785409276120281381297037357297209618864735904478463621036660759767852979958606102501594733853548884409424869808230462702614128539304611302830327986846462240183409737395167762436854311217312624178055229998452678858737618992613181877033162186693712918744812438725946910122230203813952017238341416797363332132563270907493558847124109694538854836793480868597248902991616289805754203434913466040093449338018218880747284881391231696861526477041237441046847761206168229946736827026381743231319018448879686599474429573649759825619444658869126596617898804640462785194665422505039528492779889641119833808738698345880351061367891301292045168172693760128130715102651194228980553180265834892234174567177500319767554897338555773944772201850941497110639404490708160420572402547722368695206593572435042898811576067521571829110170416848110603094886593461792789604522394257730883728663816187720367282466986014966623417710220842358956892701461270302010580620629240385231559683956819880155212317828150404692857604905848584551601894983645360624298008387795639463270675204551426666626679631866160637111745032873389386932040974154776560195491233276151935323616269576067463913873695066757168088863150748772326675049281425267829740677398759943069882233939484324599826001339190031516328730211598091119319031158151604479001804095394117353551660347927805990162786201296164728086679732868565630443545590454646231451109259893453589363004492083720032766891449134175739240932158746313860681816377768527816176849598386712574908516240448091471848896614986929398033806123585013357287753341079896269043600215013292945303459998935003181215252198345284239467401369828482089813532764682769070135039301815325205170822332732356515319521076547846446678563528818294573180330805275926787290900259447591493324692244504922061923853104925672047063190239038294034191892493968067343261464842212761252606253341816219600083684223986372319876210675537055850153369490570037245097017148175283155061984912972414553157553786874676430040002277531408324215276166537300576005099481892953435954565650020001354020187796767411960519013594273148154269412519389108151689445980879744563169729384776697750694470063776265852024102339259883915449011165940830673609633783761532870087067955680519833521827014932314917275567365131564801095221771269577133179392441754199592754961020503639738564049555790453754252402085652522212056848574546534581407432717665658439547458277732538761502001611620339248996718449761021740166256596075250129442703894440703319958529896906920688755063242871568605248858987663953731424770393472043216744514125112654458466080734078280278842460671504849922951322325457854802566090203975444563977960268942923573435926581872759238288096406141749546256919691979414308878809256050229652096992492327419872135117446358501108364157215593815281862155924332338170160329692734434713492457517364693850958394172583870995711099443398796253064305912913303952800419063661697933382192466610995623310998962860071982680702201338569960874477385023999990756018022507435351865870666344684926004037678212895198448733743636751698624066680674044699394835706603814097046573719583810977472951164363555327052842597880671998114162525609321894703985760489535467912011084738050083570180628229411946973896272813427060724002012198775313631088869749310062330853976910803979100052009509446661220035292488595875215945888917122227738803291327901868009284489752174826015995312698380058933546943973992697716288553253202844555358735569421935278650335428514392016856714928868123586781903881133296295082538751091392097359644884625356791427639332896452908839152068733240781871946911260806014141146416019330601905890486345941998336087273570937421401305303416857064580871206506316496034613518992510296132803896482018156162872927105980905483474114577909148327054874259850181172308659152341475505139436703997239761838477119984904676824073518995639840124740434141616583602214986714808326525686978559497996971965153590369688198691257711915800577813545062928349206025872714259841300850752696268302064349186208608374528355458906791364867705246879073956093614743213445408434345495336789714626414386630004811787449543259776411245593931000828883990572533704131718407728398107636745006465068369646368661748934121503359115145250109924351871215571822714526327524686240707160375555178174075975559598838579068980412353739960691736482457923428765695471081633185897564540468434701545157723882679929563556571611308651862740297688369782342400262367881841534461959408618160334414526256894223559400565281980422495565914156231311269541652346043138019847164502525846672671853919379005173841872513009748038009951809192704024567243578061439248044048051655259459319226473756468324855568296046461164242632693807081178660641741226823426917587978612741990093886141922004977045394922178755943308588090529864112035592050941702706136024466416256659406756345006101638878088679383616831443280397548464521792531335946254396962897079282016602566931936764142866604660458710781795749105922932207047853504627546517846721377649631508751309919244515166657258787143915304443616893692269532335837804667509043930785389083458344969283565870207894633224037103897999063341371972055764433594498024425523287663223861360823615094359997132156643406893955787149460544446286003397432101951109768995411385257075765316486189457189893324526226492800194579530169396128124580160509765389544139612810038619779437864871935317247927872038195030690412090482483047885700051924221068666080111137949054327098111168381532258801209459762801789300580721452635063161348622629260877546144899440574243258081650787103187005019834845694196348161756083416762772269928150654871172170010979099843962294120588307357747103262136146843737708730271815412458742366038819264513028147003813058914247279726274818500416349466286274758897881757164239117585536093575008141469600885199089272975503579935485346493312282312685826655492095613671434034265649987292086813368752784111812632987728850084009863013107041738549716769166738776918265203724703372785162767301425976746201161349631826315137682533206171450279137504183259265091002383766749116321745138448183779577573920623382540068308434082763997383263023027034831267218287026645750411206954723587470504488252905196080953447157878495336320416811659066086632351202534522863610366217162264290442374232787568325718161733007256778342320959902259401350291741115316873374228124026511743006636697656945658590917154045270451369842062939507706107386742763261891783735268706527763047629728434828418556433374823047754330748056196714197242228474531530778437881157536952681206649799769681357016306395848969274361332883440056265624254023239512579592517711997618072325057577890658615174066861922354127665504499563443902933571093498617194295274527753044750589791332529431386011858857520789254599886085666757759750519016113202453945614754539888798779987176291925706631312214976246685617759089443307783561257144927033624512418708188852082750553635571849084056975396990922102259868000651933388987446005882428817945370068615771915707061476138757653396468012269929490005991383569299888636939206624581232148064816440017740728590039357646897840672402718639991226307432492357685189757588097144159731949711266011864038845571303235692386120523506132791626482818919644185206293777206827040832629898175532312945748356411768558227263395695795769037513765499234514211233385299821290676870395711274623068716582664965469065454217579881940654761111846095170161037145166119967830647900683659821790238496935102668715825425952734958453743765193617688839873056098510933051683398221334531599913069749419246972205464107158710291910914289020045869852263487440504274617668459860307857427031248208579216777353046674600951539579702517155555739988759415533253212894010739856181388774718754108290887418255200019918081762045326952852814401104814543895489987682926021968860433282444399826420599129058889102274838935613882103848929363796166104037231110686162941258983239607062967272808408809351897819303275013595549178447606315718897710095066098022002762414866016056294591687903679075959731037140650176209303705134493366312468778949020307754607397899273468824880006471949400683829518734167191950129060151607668017038769549684078696824136115270168972987464316315451021692036897046664672792767950598086668537862697035743940080648547057435639013905265416365896147907439035352220260406271973408107191814990180713257646798477665439889171107275701923062604984615487337938653531539963936889352434314619982754597501490430645411082761599497315406358740103035674553739300338281372277552886879311519261946879321689430742962482521623396405772133585896122479131113851712663499859041985841262003752030354580210784902765088091780675374009381145058550835566385391423960832183791087327401923429421936995454511423149236145751291675873993387719746937143286930913671438881717008638666832862692317226219612304150410297335350288227162490035103083175980853898329917836316948647950245915513380702976371925124520364935255628135004979722420207301623814563609560723394570864716094264318274137748594836557573057895498329914347729221625374820946445744477063716487969277230740917106020951334843758188461556456177588493784526395320796047125704249839166302531393236270028292266835378763057369900870734818561952036180495096273821491947986093240505147174452688973188122354420602179833289135730027032644004424013732980452231714093030000552215106169536295629651239096848842925271925075441388894523928733430206759946703538499465343953407204565449974598494542032335800610228587103034331411416874704677064869354127479720621895994298918271720151041009170136688465065043679281990315545575831502407368195588107326639412239637101067100761146106000601185610004227104127324448218589018696109239660177752262951498694259710844239278225014281997559509007474641133155870486524059614228151056256515702321319882725990448493449839729973678488480080243387384005393223829355038739395017934938326466004650668456849792377905517861562833144366031123408778354275115793918149103694655507955922269313996176157327132611139484479598172625027015042670407139810694660725971071613132221989205366319474602885314016727006166224234404676917152407681251611356948167702905840107845823694005339771051513047450437140035617313982292111117678343206820204004177140856691617923142977662539305655005725722165244706490563690820993266291318714241691612930554192365863200094331876555075950556308470336911065590994436460044706155258599455949643304674001294322173094887866444030250235793547465734010474221604042790213496615735371407803030196207701819483550333861483046273170465493379975837391221475788516949220986018722582282557837981291383357121129327242793333826844592595752209018471048622213298326096584171194998513878684152080631106746697404002591653086391936312570643180460630317375529837713828813222059252950271549553673993780685732106328805608095369979969794508143871681116697301417643404413555708491574757640693108551655573904201898077044117785562853030847649488236522402507463064529994382356903359742065948030460051562025120908218465888859719146670074195247546152772843805971394192163551138091610154060091832145926966848149628037793602603739079952511725403865022718349678606336505947899154510409608521413131924243705648971159021232103992488478569911625154617590136281989109028382172350768309801565908573815221036321925539605934179247947295090630226564964696621735852537728348128415493300525900436233323853652029911905460040752666094515180014618431811908182821990936152309979084174539585728105329260483792178728286126356562514224829055148157041021003090893041535798046553211087321079784454006525578378808491627217402457951353464017986322908011463098865851072073646693702764673730585332652682928147800436012997845583436594943518996194966836901133719279226464555650011400004031750727785630555887614419613319310201447342106564305164711763927881591137557853831916340689823708457435637219121052696011299748699453341854186850244403605104909836452054895168559171205106644168191877814673258013945186198999704222566106111864790629651310495295101522895892370967440845788401154933623990111761388319376801596564283656234403035042718082391175941372895041645665594077452163960287929249007525559964833856389787279315137646904286095447765399477380464090853779757058319819913591923993185360035047323493295815409372975719929908828255604940833138472522605628110473306663086221276048572468784489435537045649927782852807521324003221841708533898205747545596976887559575091341302442593389462178438011688544262090619114020344739438989326722659441949805592317581918547056039997103684726065373220449143496930898197717437008218743370446424420387706342245279863870074338066610984647442727409074225969269965221205428436939578971205197827477522793349966184326123629878366239518415442806809653017770876507316215648369505769625380342131532324687544414250032913873899137578443741853623862067042560970988135128247576725716223503922559434378442418605471626501601744275238856832466655179187440552236982290295156724128818409650762256376356906466089550342204133043326639793197937644821187286632771598769935041092263552988387413276376575611736552644892500351703389860421085656334578764127075049842720783062442936870958464034964344097944412917502347343767007589647703129160077693375751414957318273734850215626590104226193748525511409131432163185707252555404510883877237881733126364560222558295881366426391516259522839314242023281307738249527878228157121490362159224190298301759391308081120388508308216499076178535226269184991927209943322189381828527201647645610733070219927815246952842327469239403672796428267078830525480940414635038684365861672693498868692612084724665999353555987331197912968501904023140797730861979855394987003632335760571131100225439339169618520540257377318135473080866239794173366191725762241999755916067308139202569271653634688005727651819117740237519153207544453246031674005954828232927698479969757530358173881055787056367204085981349995446404733720310488782030851578039455777092151772822619593899561734271046752266038732299655070705730797137629852866681801332164845412583714212887976114129840860230995329833120089807755751143792739429017579609495764268286248456965500664347167920313267776327363288570119662502741058473993770577981923481546023882869785868578692696407971806953936375138901524074821570520539358530743635772595925884508427842594581630537316953628116978417173743428329314270460024509807826967148471935946741643714986085928410471458051784374245929443589988260591467114340266168622317650114340578173742255500340749930480832299440700292464033357307142350281334673931199876185613050590201586063408842851580008609807200354598718787252038480507335164883382054271930168520832850277980319185802665150553335298052149598448448649343433476300284103455116063759696174145023919600591420138903110363217171859399796631588761771459534648751880377153525115728265493352020415631368042730834195660981509203334415010194592035346795164809686136063479634412707580009336719999484025081560766506686193384013188684502271913655416450651945033293719193896372097284546233503560090380393557926146911686704578981385445527195771489254420655823613815654386776738308070737219276540321665006198542675465813850077624627423231759046993506064235058888497983823769870847833382134816342032543356121361380076100464460943544109495298840609982795901888196065181034802372458504094373376385660431371045282615731108438732045211691529691684778143868938245542467783702116068251666430754755965143239454566215997676226014320228001268477670239588544000443441904195558165813782531394790813779873827234600886645043495630474012959162339656124819438806018447674080610260130840395461040914753104970956874943923285947578247468862871704916688095404220330067275926434449332731510007826702852864509745939831351831454560177438302146981487246736211688286341139936870276519533123200427619466113851535351758023558828278750897509608323493999774822255910050445043386735291564765388437526565015587188414936828027801883367059138411648923613813075095303715303019998224915679605943160294069234269307520860947479089557172085310529223906163002613024238309359502835046527368472248932034277638849124815834907482684816738510845126000653410986271171885605590124514046558090585633145377782019346448999813412868211721811124064639267537646571903786500366949140708606003654919777772962123126808910043136492059148107304299898887810276554749819530334577609514508483528469490955873853490618979314231106058048543626031608738946786134917647606026583225586883262239251030130570085337103379534392313578356679254861039926608785460090761609521602295856180051843196765014618994270777597731685745817290422269530380953024148623804030101338255827981078967392112747118078946802423629570175159659829684722598648468376730971314584407776162798113252091169162892469979986193384568900363068863838807990304561470542259569178885852867005553265385323575349292063839748099780712131687444456424566573649147407289843424407816248134843570303055268101464895966068548945398632898708370191607403513365572755208104639505641309508670378645593007557394131637545334486535407733369511022086121218643700340587308920559356027210485141985848342535127002378147540180865066212547135755039126485457940848311635081053490488899554160559783318542617444484652836160384568848983723818355522440272986141531258722535647716690852269457695379572062051975980945728441767803230790940358715388434495474169127419640070960227045504010192038642533131187301992690722386761957250143205359982558297829348155068405107469951717203658736281286434985842969873143730112026688917727154023319633644083661625294912369211712448936179758836673607697398502377090397356324202661269925724619579463268817187959478289430239248510123357795924792820767517376654366618318248780366850064150206170744185577217604485790774970680428866111950680495138840497460247149970118752538773003626641322177154893675813961213207736969911117475799214036909048819782998006263262756222672448728230929022869640890629516899762074971517922983450261097324548005141004868433916600871633784889414300331815232799779214463504136041097205584158399959096250731054898956395316272176330195889343501941426446178417399870987359106086896193563702016907229454140963226366027442080210194899838072027884707505674468175284353198917427512616761618167419826345370134670825191119580531312314408191216866755428321607485664040802379285436209142421582845926280817816512342977622917353153038379517982430692175935464323028708934369922779067823717812947373966382753072645026201192991656795268634747550338642429627184322003220990594635782248367392896776561022730241441784979239052410035350030476038490481489779346417566225819052005242304358437722310446509405847598200336467148648417381519413011108320662641886268128043934142059058938566699111833823001818444967274690223856441740965342402456184415296482130234855692162483481418385464477553272784650861777642475089024907916771764322648094732212511036029630350742169231021459456691066149453806764247521882272434189591587235199569263524261975040951695881513633979607899977729486775271238890368941501448131011518262339634406635628079383000870747195241380108328306398525823282303066184233430350688031790998713514515637289392542919983046243677339445692402983601121562061580330490083179682088939075638512768692092982479633052350267365524062300078155610822667687359437419155905026483814036157597227974134019004902605680049237426317411483444284977675418741967176162784269621998304941934079891364713070783383567287130373437933343654098938577713797664278930932967844246417392154185847285391525822059847724267199329954749740441574725377432134205568923724108690369701690613822211752176135053494598594633451240041941069794512434429955096938975916339305946697942793365797949853833635263820921300879453365304145073867497304218623767164662659330360444718964775263996362210735776327820098409661819384012716479660374194884600009197725426965593603649112913776441994473639642108955348227180165845020922188485264424144432669366723860345002973651735075379708193086414588780021584064775521013326346074766858824048592122456285015785043735705535832790914866015068639341419475304197610499390634365373923780799935359764086215873790386481017926897408175424172867258926769551993386606158112806826924687871480854002972223548377877395559691242310971744977054568735820141823145323231381496459236632879915680474008061336176541766155044552483438250117002610699991517438868469416203289632547604331285635526357579262908719341501606688420827518739277996143938489067658139819225810898165788312319840078142945852083979965903493248086885755652630653047765728488313822868115183530344277695898885286818111196695532664562473398410646992209019948495125579326195661147936327273240910723191061229750567608484608984931074342017676241392980911395160829470011389756709464259121070245382101056287545823417541939208923014377388627432508071026878615423177183363382383804525486245092602072160881172920254026859843152148468035932613793134689649491508212987888794586932176516312601714409894890632137233220336905489520095303366499094710734422148705313544104349113516973054535639568692731957910004072404976854876167180569972919474424629359659870828203077649647056714729805042614438958037334229033804243246969141442802039091099621861223623979635756984096172537752619561620874191835102925397021400834662029270371359121519282929121197250704603763932272528707782396882557987931682601195113257864367820407076593763735815543636956167666664493211062331076145179402429607667017658282542519937515353761328349759812980413743783125687238487621626325847096436200279898076441230790407738935030665680324269886157084351523082465460703246073654261678716824533763296384606394277400584194762384125544644587479532267377886348345856249289653994131717689819219312038311683318755360704013013058808350818403568214597314861213826881319886446226048660569451776858149987454313585457029991090400033064702587574700273113976414228188846884765159817804555291646992430256904184451367607480326162293906019514567498317512638505609266081491586432411714898705404029862332561322299773012552552397556171368712710841019365446178374459396789408240840859491408216424195087336266693840572695958178123612373532530939346386296045798557716651433078437531182551389948215917325863396904919944458164363910939244496893424166113389292236605335152047515703205829853097057903737239192623305499220639090972409829507330831471496493827845362622082730061393328062585790103693092718494784919274515851675290028974625317190945798413340852951934956755956753446862192684049039055110612202788684430340320795206571823955784634458680699826059424688367371071235106342351485103968934056104564421523915992982739093946044995895206599003279665822727109758444173173762941076575045389850884930410868976931869915529915440931966119679855152507561977541615973602966508349679558025677791540247650407772304805818787193250254453304748890294260499915968665014537292953518757574039962306091462423966682996535338169387148068193021241920645737963505435190147380608324203272782525374289222979322820916316799391108061629948978433534637417845210464869751451922891360037551496446805414046329416447463475366476221299360175294510036386655688766317566360821169830017186483377852823843218128791092270702082648940106686341395306556708635003301691970976803955039991268309187465093511884864908751860392922505652042121466345918713653601184806693359193533312100410921849402473166073261127081344536024297122033045452057968986833769737971383030000495053161158092316498464412059746489010133160689264013007379801473436887502399097935755877297454102512441217707555681091585497937346266188217329235171881853930696845521854118109041366693406675939043872869229772960630456037874345582935004128152265782462458633117350597550728177930830637421637582948529182852490375898019260610423995144937553856910362553732022660619784673052084734878554930153845759103107314668676943349570946411939168944267412832127401462910831645097215500274797512058147274801921434694332020754472175159634203897497880142453149387267326715161447683367002097930389001527882699957477272790327698481963232718801264135308407204581186113442245385971645991660561291979853169886029798491662279350494980568719766100669489794728138212382447933094112958334822405122226935330181531679939652949523082027026157968966251893433715658954165566375316145939522332655755368533180241095838151685155954492514988932590560800289539461575203174249447364383580469846821098232458013249796256070147891944820752322374276944485839645764865658362421131008552723859365890007365361406408366284713991367003268902303809863813593815655903506191774077069564297163886941125786968684268779665719993766945615091516844652031629568093311898979820350683368601249168286460423792322679277096477599166128731720238541865442565453312017667386972857216379634899227472920208159788427813161590175598992568783596610841247743683033005576101266477599340660444043961878437385459431122569693483601970504422042610648836197146800409369041097661998956800778470605153914671692752091643810534709002823512718907721428065872848947701654387388280122817286269748905895263291952826625983977413579793119662828213929364634676109484975413049105645382702418401238445816116452889037229878930550235918731451487986822820717421221273044689281299591996188347198860548607718643955091260565936969582587699154733930975564163152352980538625575866520598025273754226904308237942122802858720210358194572704593032145016864715563113529430743041976032858711515554985512068863865659708035878234329684539464929812540896906275673815972218918931020714968531169064089951992631708327874580437024997341805160477571387321561899377722381792304307598823473978591488146084540401687918338387820324324947617055799607499905248471519777290487129649011430198746247468438059609077628267227484072232157127858873794498336444994707951418940248435193477933011089292223262730461025485262766672513788729872521247646605433404003795094081461868964993452257711412581541156081514772747220236563159461204293618542761853860108366899322202121653913025415541056230009546075641931517376837828478895869143811058805200759529084553672693886218734146611529210100559744185887544605400974795754667333916936929662038879840076631362137907777574606311593066494006121237067526257471555608839438005538221033597762614539666175302926658103392640849445329101619443467518820117751775456502403950360701668143331910007476043204019419949258707699414582036772967817521492565035303736169396841206349968489530716794076614404679469647246710260032790619359819334533238880342151193406523588724266102752529739927413741304391880742978700699616465128181527409235736009292286328568115422065783815845303774117918461260221048287427556046037673443917176181319190704311483611135608761709373753016903225896184410048054434777067559915992018314217893353077329512853056032097226341903907046301920320193652889711897436784509275695555356850631083849512402878817555455389610116804712855902192110723259502718545777270173205938038656834330644040683694235190352766592633729967391101522287168571872480198082587203354547414189784110409076355112378194483484591030993569039179134192744386979362180429155368780201956472269732101733638825555250787070505400479048306233820469115784013970502809778184857755450396464180087961895053049614772781756376285799405096035247775049739091449562328948035629128952497925581867474935920426206487024939962436954737070859447703327831840627308630671305764551519605785777188949113852416368036333979213733862450838767121113085694058741312909195272092367898827041888655651548602174688747261379863356926345424390121356568096924925158379576620749326311237521784369809817460144262687365115132381709665623193581833276021630077285424005458159017478606647487924524449487452833569777178150765278313320056444963505209843330622115423030858475042932440003565727961391786455666947288878602972126930179782861971687555341009219044216950127715902848353015141644867875015243829548125346023034143818308302720590664059988332054255195817273144271014293375388454418681958261164146666577123249911155838778132419526324194950875483695242093075325941964463666354605854672667641493330083730279993535059997139922368472337498058993991214535444787435908166477252601122181180467725380180384737634685511485771194771426164413724538125363149428005676986824701665239600491251610796536383182021763721543642596911413202770163615784741431821115459848593776001568815397297386524769228022507833490490755776404508535085796982673496689989946283629566362278959806046903401981859217757178091847300917085793261173492320762178980109866111268587034497748173146166586617095198889552633964088155555295222355955595029581386719318260267696148086967871801306061607760426940115053316475382733753638840308707296462734272116811856475591718488625756060168608778803418902387115923058328240938848499908176146423756685602625578023205222246279538310106995250698345018466089938265689242782698689669140705023536832294791534654428246035853545263324492146225864403030725074851457896586917869654792916526154726007848901556200514198534080462250843944407786622279125990596128832573556329386189838353198654487136283619107308923617791514506219190694363392562935864712176800969295327378844324744191030932370758319551359061623437023980208113652200536706319675484026511746197861566696588685368329217545402655797951625839297459759279782892536668749066772737082567026162995841018972262823092137411414708447374177017111610864515788892703824407396404868073466107703493664321467846426537023063069465936230127309792827513108570757030862802430276675135295975990269154906817561958434469179301117373989155013883714145539888333925216697746735413574895024359984341759418719489804174818150431949240885427735462889954146460540729930429626486345572031166739150334588026384477746275697366027557919317224724211848260233003267338238557897142700080672562099590233694657663051919128994913147577940811612335674895730843918785680314631384817361192298425603344633031783599872603338484242230277625430863511390200805987179242237427872427161225853914106950888400444211841765903919687277647634146329655315076722884910652164534904056361695324458219340566323403570172785276608957105495685799509655268555750782967231583259276232665740247721905334267103597421187143367460913507540114573126384764536611504305205428007235079975674842351528737695921533781304119894681679367552054167167118252909624631143936172192212868663244774169218617960503223712771835848882763804315982762871971084682512946141123933408162834065671617885737380632178157040156142866078941007175066810222692515668697821828144336199950297267897698042617848884699325884481190001747014281713918233297350396037077957384683744372412358486029265514876685206684478135662449448984099045012696338832019023564838806060697470807859513679307559582843552196120910540393823949402804237964527812015448175594444166675644399801142979363026225244575361128045726648885110009082839690076797997810763859889269619829951810023214197755897459797275246374910102620311653109688387303092161848805844783352657063740374023831477425344026784262643564005096481723872449329090056593397420317614412376736736201043325370234933786583581084922001864564396359223502665130325716534116206112531595490171517046122070818458492976569963574083287437030531798356026926161100435266177256586590917715956761806816788875432810947701276382174500368810054743713393207021402648047441244273261304371356933377118645647427947501089489063805624771565992860148686983605889095371181000982216328557844320699129013240540251245625195940599658542989051812768014905761605760707999893889879780415639073862640204887648257720855447507903718393467294498506929004198536632730107505066001968937600102750858058316617802264788241259527787692372271061844283361320245174264124846250847986034713421053604303784297449241152514745828821450003683026702576022889485987973922995723225012026470333418164888105102146258424270104878733214186087706558061630540558213636397759437389744945330279223815678707172721887294955318720270219030285936829242296851090393364238643771297287929469710083915739030269816706440633612389366883845790001288939453940646770857674091387766930936596571334618196766663271465933675338190702647175792602273141092804448123228347969742767866020338985205004176262585021594780947617267050093579551691729705500337749880509647577345158397874412997521183249855254336076263731057358399787475107654963941665908864800414112090516715082559745141019978826014426635731486806214747849319116424281770860458474130362560939561126768429546999622389547777299503610642834250325746498021717298643586691200558682693433576267747240968564162678414550290903989820219856002542129206890591440685701627122255911139195726466655717167810809368197234787658813832025517192811533531933455392710817431977103593738773252411369110654069226353738536510711978951635129318883935483563191444114422422887122036476958121728599021887848067852790079293747969236851249838825375229790258283700410325019114219654997412111280332517325298964174365744977112153393521965001459552473214721354806550658707167683885469540412186788199306193762851555862167359205720894055119663677953088495541716950539471588891079201440565785032490210449865252083014162196220389585982056696854682913213958438715634318944486485082668725656715563732756292724161219916999906343083339510086863212862056050930658043088127780164944938474873920939426794503272230695606481569947623769436098239062500245728367552695363463032846529074378615358530431062646564392567356114504525796528778129120449435760139700624061200009610448614365847043672016359603356875036617688040083156742377362935698925705489711383166267773303519259038163262136496848287173795558542529368998652264030794627806433857314392484630262250908060174002701383662257680206780325417863623141403092194172582511350755238471534391796002055270734001940153659065380235052036821878330840687698054795792654399415163832083238240652507579093999310976778831842255550848814311705381497047568813727094724629737650940514799697044150961637871191667393338664476357296075445890995185287698829799697434057576074045853508172123739600186591333289519713696669644434141677414075123444903305742449450067440818279447683297969634575576760747817726544511465414946603950715719822341438050629289115732749321515867592763781849909503924971397801687967184711635847020329419082067957156338321497061076485616458312259727630707335952407192194839226784343809531472066744708946895826602689898880191606339080837599856538367107970186827500789879068045393351630336007439787423508521925814155490617060766074231678413347517193253942486584302978563247624752218579471628509894292113487995228108278073167695299588242523068558805677986820298062888140834359392297480591378942480509693151378173451903874023580748083522835653454482661031949847293684234951057267049602314103128768919945793341953481316086035228212819178638712191203605856093408793594689074813205246773096954508869924580358376720638959545001900073726567770869795578714048091457263236321696563754196843846833920096160223552352657280570428327608524507991123214637944748864035423365675494349620371782945257807032405816383379368209598249811811546544481047811971740110743400663937746988315541004694280034109592931215962891361515686345548334679549709726343200834258105561417902132802626115967317784851768960459022815371079289475210946102747224268405777014042232095197112956796171544187087520908808543752812302316591301116117982837044238568576778312073749348481608351040845716523873675831917404065090892486920681499085032283915907873008146214855199190726785983897332430507549494800503628044730164469603853361732485739869059399502386699585910947546436804104569181703487129863868731955184115073637537379678284039701272649497843373915303434207361814633563936486272837291609341821117891219972196316412354625484934948869103462681748520947312378284306980563831706217348451452089423230425313041365005197333766735229230375957323378455649186651759433028630136666985610568498879648547775018071603189876655026466715390162905920866937300239219650612656761534066863001982657526473321834988310004151072112649220809059403800765886840942889866102042148193838239025054042929229717087008348706644085165271638202808158984341592371198726999348642349317327847101329478612286879174832705370855704210040873342542159710376064516846535996968708257974030088128674364790312631115265889340419108509656631895090002903343396121896272453040832977185563726052155305971918063606102993405190758264997880331633497043186983125717385164366535571585876458905666283827763218526316887429318739980404198944952032840564497489175654196852186682303247572529741539480721784821000236340597076240495338122097739153670024236039366033677764178579283737188515615418513205665768503487203762700647621546868672885690141107276481280613774170711070590669436100238680272040083109211115452096000733410951456002266334493834198206731944182536619682372395471296427589890345125219995015310452957484893495199561796827040033069500448903096052708136360955665266696296725447223355902254884981897824832761504580660178069742403764359401903006758806245209249906436458817385868707390935032720323079261608756698844506176764357883530155193195362774734164269852229859234940928578263781474855029538028071219224124410624400533380014564708664517136890153514222440996453612785260842286374890322364373629289658095651142752155389605358050379924202395975047479891235583747123231826381580874075052033223226357009337817322402831612407335541411536727143127561858438308127542700887751768726692249457779835078955259207920265354859167432912182569909440260633125114128299747287224303277992416795218619953734037082453275544289200605129461763974931197992151861225503322411158253569595545655217340436084222884049904402127354919604327200919243079238794139753720475322680910614535756924391093060057965070994908239331351798957846376743282394864521565714136678900100429281833158571060326070480595387789910198988261021907955999585655866874309894122183037690328062073061828881570542930419797650944257621283834824384182266189936375891188396982275694137055373614746161164078723094581527552709376628292534152657765866263102492155289691142229355407771905391120554502630508455170926568407128016083870003992629634829731055646898725568192060251095107935851145357855882602239106099460763186039081709189231526753847628457916924846315827360316733297200442515051107196498989345588122883936755443672908320871457071482017344681101577860072943198662468746329370855726212741932415982438054353220389782125413828812862776566531154541565784860650732719500852873492359542261932940899488902759595099382432164401737509967574887393378727055566571770134838607623123492470103718650357766450726234390259173123884584340249310682474010490251997005890856292041980268187081830691260437395700619855334408888741559674030671046781084408392847989499717425794171942993390314493117042864022992352377995860374842913936052656858010709985943857694366007267651866074023857274909419361978360094632508653210086564353925994486648818379143283696178754375215078183916528007417612830009240386914829741515600028984339487804950685629656954593109233498405952076907511850670315687327425039108233468526150911310717928731634866225114487948765431773793901029125029637441322086832089887853318639152389051914724331390431306713798160744630801314501357579705665306983763715405501134004865148482230420928160815431917520031936263567728935922617478925648612781602599810566400579830686279382790121491930377688812684673262244489006451335290647623638194763644072480635910391432847606024697528089872830733360855946692422442950383678725132296054888815601931327851827119612428525008241955887210178572938428341728615672490775669509333591422117809808928736541643770087026660167900346193282792233208521637419578082605468143348748531701827491491840710708909599602071904313828283342586391874507246374771032186707821853326598602212732736797390326292566790176647497314082979685417263569089711699637092555621096697934384321389436793604460152545234330263842255161520517608430409834652999912853245339507711142582335001042844583549634989573575719667565561799968811846206924937077801909069430027980428736620867712394588246109726733014969764389938141031277628442383413060423255654218466621118904026368377562925761101762086568262865510239436678617635614186773306048352269905284976434815238308409004399856892389113784912983867530915880305134811568802403501922396551257767024267952517129507785577295826099217150182039832145109088282522707799976263834326797554981639306074117384328737701705420642007320567682984704375904106080677432318010818880321606386418623463471578341765733199424365927431062654896027006118169260621366835203671690500348033571947584788181461236607327361751932074358677362852068782797509015114027658482185759741667576597608639278793520125413336617872277635911667648296406727066620357315138356590625964692164155468614426132404032429772293827669182053020756120311297527561726283370864801056790643809138336006400262427678712956082393136595820386176618971294164027727747596930113843261624102481808557394253282411387015558488081140351577873662166984589725960752352085090914807265171013844582712685195923869750988253609293012110403261029942748820547329896781674711979657542324008582431696568338412524554139611940659882303644465756758003641927100059968388232091439094787931718474839622443446551067267881436681587772484354769580603398081124079501546011886000293169128665468935121124846254798079869672513757779957295543212241779779436907245003489440883317197199836798716969600607741714837990591629683409130071689555295073724741880400340777513070038872177655518603572323785654175671697556849058985699993186726134880459670969608411469706062400287966128055956581252023917409413862958706606991957587970958557293246045632054515254689882103356607743200672475407314658850323247531689755754771863067056393716635479676108252877241428986309367503777082010937826191883754378403648719541513752100197037420816113286151203502061675991160846818249378074808413568878809717714674325702569577563145189654015635530730938949605928890740277679612305557652789752178805075237035039201415660852720976269060235079964642173778269460189232741753583099269341778050376668706480179950585162851702850174178930843357664473967696317402243301327825727960656202465560716133466198899178508897782027783584996806842817284645470478579418443751043005788777424495598896449176626356754682878104350797165217173783203105554443057270073799906446066633853889362964260611223677840668179157319948431686545783798884410425200873079554496366965248210964133980066413912217342438732049732633567669391687003898124200458906486570026347399762082368024461414657068316748042041492647463347729531304084576985658620350817212043941995524223337914928795932627635083237267277824856397153806836320048539466120609347995794341294901588061969511491244453685177860975829251975024125725813619945102628583051816973935932361484711326540870851380602103953608411388012800690298864374618647628546939113719125803003234565233762124309768174945861008878638976344313103305289602950912621413390979544045571604041553607308501706090264724549116858406102220795090706713190305469189922371436747248618945954558083168553931038012808075299829993870850484486052689223440521382499842911052272914996935213639605090483182324463272050056720922216679826379168089631826203562192915917780877780826000687784216078432020087271633377715661547051101536525461548058156492749636708021272087265778168763420404322159146523154983665620156726758652137603970977192514487472134805449040460914245349461348338161278983356147953375870264715835693021713178502563918185207657180868020342100073857676598746962233432670874156048299034108135170749592684273201249821046530118175860945521365528621947643859044461025787606019853956932511226948748875694046793116655888985663365748432111528371951030439404864138225035806001983812251890664485149840268632156239663581039005100519839273220587747411701083424277804702612077454746890996642308068211993261976454778820437040798412316811100352246829215608960367940163746368852481772434479854467545353121159909032446847192742825188087774976939029913320388106186563555764034396548792133518132286532138206126956866064535808601233263008547114621337635633379413461885667906270016696090712551388877150713065314911073968857909772870966540488515462256881336584729260736983655105487082114344253886298117678572981329283666961641867610229731062552256546998039834273112850838413096915231268183138037717491022871670291096608954100234059395452972017983107083429098008590921194351730261443905402279099319181036443416448983804280840951807160039797390799525935690788350751182997680889000779335422162868064397384102864919977985354071506107122312628243611047534190930952802725947112321862858974799640558744263803736046509410243374730530803779347365877499779544845637266591534805356371972808004835287296261152911167545585513865119036606612898133348670310613594245297475426632604625850631048006123528532357534840886597974731944589819002389268776259912168798318816078035136733517577656513671018779628659646678202911578428234162906365829436333137240726246739574807485224901214006276971806794136831580604945920100701770716590244271523005032422442175650163233752661254191648641739338644402961434599197915625810241068338762305756785135528807117596430142936904955184767642962415490396906778712019376292591037253056268160595408103230100146543659863520499593185284271305541940928258056377377939024639886886513523263784074314484887371799652814728331390142774927778780838897701233981766844524439474108510252299376283096662643410939392936422583614996118709813337304527291656686791264208605579507766111900907262308083859931609507130671177321853942282506079204356364203154259325458627570990220011612580845317173351158580570681729251000801849352125105083808723732203995642655975647663900363297725988841496633694151385493416575470842391615184340189504728873183415960363604798533069809802810265706515949906808653008865911550297890382359419846844730966136689766371537264555869337674008306691660034309577898590174331217978915341707808328524378946509630629391401786438519254303869839561910399805108776393628458070165835414849370128675729645911585455935731906592686658085346086989886102785622610122287069505210937215306617447534059204381096454181593047946106492474433792164304569756408811366567493415518133998313892092965357702736946378518727308465275156635604159424330442293833149444007639409648482200346563829688121828942954457042376245371050820201670470483804391927992305188392142540238926774074516792189511085770146329099500562174681851218852291116761769496696808704615959902214623628574346286029714104413354998699643900779289534500951679007287349284849561019330499099918125747578460974945440707449150011442165018620105642536241986819120679073270339232076829241951922465217190357091747684204355935648592427034646506179174743438672571008481111842174955679904858511346275380786790817456982452103657637777359875845681111718962830448582100584145913866643248889313786330518129001796255109853377350102884895198976313446256178520471317801569273370304252861885420968264836464945375362372745868306410288751628349322472302462444252359815326498914177109052972160475673048691581235092888912998269527298171843212920233164779219747425076001231967290155529990561522944516196963110494431807882641371354126415032138426295599949803193897519322820655663094181505349905969225977644630709131028221639230249231354319725419693508910235173440431193185095660915585270116631250873889576517214318816434446353672885930457003557363436735753864187608418819249476010456977659183734781179989772856255285063114413482259875505338527433035653988664048783773669830885761008511017968851322984975613805071482813316716001506905675690832952971582329992813013974146781816814721576001422738481651386495666211444370755412651176226137492818643023692841034423206033725178546488893314836549284051932570843114711611448931608097208832603854689037264320905577459905009793197427995474233531280497016226137810319848715103444895635065199126287697909732874819182465224726172034446718053711429655135471913525597164129275127829674896855151836580822170410869131968422413372356908275732885077092866039409235611825360233500132880435085045367406393823203372473453913340839980684945576894982244597609295796828663512554984439193090512723213341434515168305281925310570030266923094035372396283449115159124921972446564473804861411067097116313802749549103540631352604512896773966518820474447683090030839626733194402631110873573215972317178169182988288686552326769142061793088160874061142763916808795035607761175553752239222867310457832915780272907945284094452701242366553827379140423014774812259724556485706378450164821827338877256159283674550340601099819032700630253086837722383184264417743455853904427522616622214184891900080002662439469744686099103541894402629991699387087693991794897640581953826421787779428267398654440900861787710586460853954916057263865690557713470392631598724555240213163724828419561371875155506585524629775868929140198856164350042788655417928368604446030106258685533789723448485517989898819826167923165390337009245240047635798851214106748753765617079136198923242138016419239830514441660410423501988012146403236717227637628375898502409547658219196462273984049365366869851031735813023841214052706956904320994750148324438133641613654383050496020144019662100917315776816666873109423170012555232640332781229480544020454053175384829839971174413000324132817835489747442966549822846878363884887958262768005453794372027026273302674228075996274970639089057402801136343348418232768375834481197473118295760991779942091624894504699728253384155693803786799833158499864784102874478368576091623989905388525046251006137003243866053389250527610756158231255720166282672305568564404774122766611381039635818629510074602288481781238322869471894620318767590313886875525637025061732323248535088678282550966857395500391075231295028857041290188102398013932262820249129017891468450061376864103968819389431688924371410620151342955020522497799027336106438655063288416126574881558807059517025716626089506829718680412227692271206833692727300661249748400703954851860838197261441749971509021442585617413912793147099189500125358260006399558400993692765666637998503211679592650520441920029741366190294195529479856577128714555683012930079079247908988698195647637414233376815802390594726115395126338794888636356983686771998183725156829790783429322941812392404628038435082750720001215903835037402744218218166045127116059344170391423386874194108567234386353209190872296753242307130190874377639683842226772380635672294419910907975467561685597739084337395144474257803133410549549536374080063066990338970797894370247657140958126206229748529145722325084063803891753865101272156008278696738300067768506963646438633877950355310294888345525769702464570316317548297505356955931833260546270796193245515208541355628638476915079094927495242738564948755399529087308900279935509399768145609040691841767257728631244994355245019525970820525732889129368833594234803491003436385469214941244150301575854316330471533544791817618812707883336612874047681054612557206813284627697550846944402589612532093425599099727812935486105580145843305520285243532643093571231042997166255688089094919418687185410705124547452586075912830425958873459792717511510406474095730107999428041865035076871269506669641596655537356147887952214177477424144099228823428702188243064982701648710283971292330000494675111081878765486463339531225586517209269529361296992911829996862316862233727655224203776038729347106530180659216600618815325108296450703422920288684850884378863001444690705090003808005141032238170472617766926713789075965840281554741666055549712647732412940410238038362119309398546163877470948973953654812915940704882678001512779730346493166746958918489974867045182308432789283670395323582049262546427635861644057100800850394242444921526621949587543078530531738636307456429902122021518606797325049628913371296472172004060372067190644508133868307271736038572143208156115203716084614981910669816315081620027323377956386104318483692607721577810598706734600702086793455595513311682194294847998998923250537546820563632958483076067614687579277900828114524618476061172565619358319906335827383205311409351130454166386810543652817951888976229478365888081086744877851148158191343982506967950188120789429388146787489043834655561498813255958248714885307679690887486096630960518195938763454911642129407783769276010458712826585310235670723946093434548056462538520064175298984105865241763810311954001804812594557538998799680501269959600148022536478862933394595439930474241019627189648833913079952996190706882705416090542425724651835247177845481568489199462280236884982216190325342559082088501401755563628101606659232634297522337560826136442978543936965144103269574910058057739097758243513461806168426829379718884650904845169983187269014298003684524870135672395267794922737636703846687602748532678656281379581690049770478544484735303652755487054548187087962285964852578112407585614773980243227222908750504689441559903376920445419444197602825481545210838053141528643516162650538611871294363642220167093495598416943963897753887878557984871928751378317329586680837326756368508304402413512014817872123015408462926538419910109235822137668098979246466157981657023828261287615004818776661730982218274881454670274278782047888784557153660492458782678740036135439920012988624264501230821590954236978781080069664853878390435478203488601120846825426340376367059564359944652715766891073491243181886452325385136216489168115195426314275097086116198084562797402509515505284366876765765336325516548725827868910943925916931364491823047960038741017674916440364799467619381918410324395522023367206663297199465970348786019625506483717665045699529770816126612294423697388484750341279880844223821929061710709573378246165191350264026101564823258199471966096344857899308187721711888361743957906977826359315377323114762022445844114211822932055830734025627204297559398890207164243128903750584983901282568312371833741733689931572407773871638054182755665274698503871138997911772054222266066619221915428067385853261741329820387698947660204519443104897010551810912966002607226954370203240877460002480995591609469504468675132847251093191469600912155569883730466374147749363788361079732068114935824843617459462909157227774486433840282343937022346423354155049955919026782301227744775702721457023189029490417133056529218993627886604317260932325692622342435561857376842566015539423736717749345751174555646353668582642741771629553571610598408633788933536865404518950935539756342599053640760337091086989795252768803257622107938394849377750192068144260563161105444168692389703016957903986296489405096708348415875927824182160287647698188642372034744454123093619718998466032563921308982882636460820688801363223515946949622416529662225562958271584870749090128224968292286586327061432710033218117082938022794289465680803898977346198630625062484734670225529479494120628414100317294075142135311462160902414210457524934287549245057226407928248476978609287329099936379290347969889896529562584131622964282450655333581129594501025318098043519792112240697382012218786979004562429054454698599436437250291117378812427012932979572651088461106810662406348908015797909803014867040973496073023084823905573816280181812501173671656938005247920488359436278278555284035010535388768193075253904982089205001189887664360185910010530695716452212665518421926292714553734159672173411386045621079456258108463792865288174575854596969654374634271088967278271827588308797693497142036626692494037989428705332476120783664831191826323666256037073484984315120052657042302025981013033659058576360634534807192018377162899420220700564139682812519675719977144717562688117900602891345543914226702032805745885379553714008883722407783368071035004951110810127731111691773591890554536320748042738549042488060586680883599186857843685982044095985942393473152683004987265854100841716982303135002170970054594520038993120227125844078229620479122596171645085871456095603347753808870204471172193658744751839296915262303213528673508560172239166654132868289205529601925148315376645689939684648259657469783625255447137411995841038178049948672483717454770479202699791072562729479683999983712342541526253174299037295089689141624598173260794478027056559684596049915430860680991964430734870432558039867985664876344579610362345143723580872800573577811214820038789138661586297795403790394126687916540849918091655434263902932034268989661206440982826119396443996063292492467965266999955499881530968141241307525038628684130627635735745649101529784197532303339359319600894370680786200986011509719797027341496522537567300991271219539149218414336633740367784185363221579541457791080305760837657846748991887320876502809096412140950766712256703134525934398590541798377788406166522336880868853149856930921590483320170496406356717860999641570894363774411742833548738897424229230512418841741169483253290418801389698430131141285261161481057805908327034103015052748744128609810061304541500834358868897603628327563276567507720880821744567548920056611971863239876656056846594787086070587062513918080207678881018990200151350869204171601046430457654080200913178023456266566639442624787216435731953094693285914759718519628579730242453951391178474835103344047342403476892632247691554069371666555587993724426837194274318492937919459298070958948964565464210326833155576707543716078017829145750073392811719198199608360911924662191111370394693127601917439453952846177384093791873912206351028975360043208621962615343099368356784392087159984079400658984657157674691549605761350591909048283176237764073426908827832150446706437810583657159607800387555367516684597725065388386696943747551453925741542138624766010322474706928748126050907077380955626178939672554816934693200338926020613984407587692537659256739912017434365552531345282518866852484495236591330893882145992922730950639343800147082308020545568197807952719980050760853108899940712060266295623455043685747733997200603818482699750222432391200406888247618249362837705502469152094415089745456034824491954504027050642638716700490325143345809887293382900388183004648655611705100840155378668193523251689166356701539820552866130171431164762717304096591430949942929781193246887339401939225269562583380293416278641235736129748608148248023840323303776487665218584281250311599802490212692117414647321890245874740901888788693165473305469624223166887929370595817189456751715033895779480126639433764383559157384319513279282141367323175105345166918990311173147389218691127849499085926022753760463557402502173284700730724153562488434175826977913023695293377177774665545097656438622467992410129127608364380115600827691457339493867591886378858187428376364729812371425733980624574137417011785195651575150115126719400543582305508508241340495722965075725528785855806645356623289909431922525704337016103593023206950195720939381330508320111463521531977257265408498715844192062963292926549643371571626416835787204910010330654144732200582418344209424444082055641577351681131660608200919367046857795958153909676875287091581417671507435958970147345309742399203324585773811797829521807517253302209483224262230554021854356156054899962452871848606520461887585929989638807753544239481810070250682792892163292495156185312079959671664112538546115247299218683318668759465631841369565466253558859374620826668417393782519196451751620090561240003275627931157352716320570567772686359206156600613958540983804745324648626859758187376562213986068583646413771837468596798719143550073415619924242997217821361596612069377038715784874523557445577581640066311943628806815110830239497662402386211808927653066083380570410322765045071370145243169580380157588348341389297648646230866040428463306218396178587299845196805761333095514048668730107548828841051252983631658541766252713341227620990929828264266778155169448683769259217771840897970184474049923767736186860117935146793539332415221890312855850095570284663111802369223770510213702467356963475064128563283757934223882742647863440345082174884570018327074427983597131826820915475826961881295596037885855354804924403202279394066411312916340780620456108564540707259428126329220009051366027288806191268944007092949293691426459222183328247407197062326305602251955348071726175093130635417564719141627443010848756191343970032344857680493937938696814910088997170269674754887257756849850545901581525337374851215674681630543192949699993746948122627253203560041106731230738788965526400276273518647120117706730496698953815677890874036436723616510994320607553694700695546700543011288420992648800108010557175727707521525378859839618920503627078903105509160807413410963917391958785001698990940343107366799407657595052652903578929965887177117939201582820958126614646690017219009790567913084379785989935075381890121243431200723831869681705000454371257528472913967593404536492427645084993647965208099077524924675607491769166239653493408951723902510860327464988308130860799595784756158992240013450951408881908110801772571094218759407586685547209941465307380109998913452778561060118098507183266138985304959797064248539963742362901339809293120804496379166809683572014596757437970755730278138295746166673101857281019524949028319070844985473019767060085239209604724192598492547579836830927280143295487330505824565476214583180952790657758389243781149697058922229637456073095745770574152808454113168036850592348765774726435338927646617620381439272750504527288699767866579705669959756909471549216537606620125126934991442477123688204794391499166147574958451104290391033246489349621944829505892537807685761190643636505723622257582107806826212687905621175524341420224271431203171753526181392707809352982602729206664323814561408510481777756730008181093216273360209767287565921754883165183985052397021750879823061593234072925102224810492298323778916041389552829398795298611157749806094259540969360188730199886518974327160578909414330530095185120574601446721512912631817111624128717585175687019630158693482731376332923775473808705026426626322907545747642074721832008264475548639490155125355860511102196794105127295643863789123005111859907025518047127039339087492314167462171549479612561442405943588209613201565901453201299159529907504439185102125975505063113773506260349273066890629362271680426495081493963770322975936058273618699411100466845947443636967119513998329846062316188510549713387720256282435755119297313785006804940883877959101209573055361612369617422214120441305461787103815813986399227812521643109469374913821665007829801547606632521084009714431910158403308586396785838565560321537529078038711713947405206645697628011862109884738123993538108945063776924276884331797004284918264256321505441897293904369173854928816162434804376327871319525179087073544016440495688272490097637750924424650908486326838524059705417601593161373046498828821037862874959949380488238676343199937443046593858621284252965263981754577724747316407351473074021843802207893887020062062955109769972255491595841612597131297283714238260412331967387436524938324422378480671197514899042391159173785668183719183613884127056489814955095831129199133198809620197737258641154207992797143706345460550976794891514646868731802917081964978988827006455254747431558231951389708726066740480210377877172229498866753875547157437059022907019437529070658459746794982356920543167850516832704976665866310354699578967684321340157077976950706441237457240482210575915422581072131679387772009907379073384508151985616094126867605525966163648687886020727377701338332343288463095376525126793308935845757289218487955747009350326899393352643024519858648600821929434906191683077532085061169891115618195674130867776097377678605280049993194320002737740844556970287846228861914810578166665359765348653345992956359908991592748325184760211165288718616703616574593454787977645148667590377286322684877961454023088791489859034768539318239414537672447329384110785693867986006141274435715490029970924475722122884162515223099204136988577901579966067248870790026130914991001945621920075768687013897559907344690705330293699106105024029302932334374547291471077943439872291729245863969119238255490211265617408324877005752439182130943974587469531796729997033046583328960540998229029274862221405648107261603154572610057214025308366790985766213880382777428290627845734917536843922268603952083258010325384702944114653907351278219349789034247976407180688715922154511437913204846626862659622791453323207428279517068023336337823154183445461017476709518399841628128244100250260946883995579976880184233842039103005255454590061191775158786218490465447757087271029677957122361877330140349638961956145912742940738456207484860947481597042353976853459009818908879972715495730935318271981812960631559498438188659026931879224002949145773836943082279822193732297390398080193969540892937130701797612009132724407670104127150145727683006619611991930907807222522029653111400619535285457787833956872880655416455443041901169876925154659505116942902213996657627355068547603112166967899870225339396389337923168050809384049838843429169959119733665914522710353528963591648228801986258348921142821493050103866377679687330517778111025143914729618889015282345013894034403615499102205110376470481719302972821168714139831030652335593360338458000606021177455748505835646162888403214361616485049926159208388605430129071602758257282105953360529266809337406127754243542394829054341085072461194250543531752511353923602873296389067621254502377948140706858950746996453318560991591175028005980022026353285622358169375940698767280805775927314619092579423422079100146523173658129748947031566037634155824316268965772343655144407084250167766151986965835072334480565043333339816267886836051026552503127468184839357866945238131704857675358829054747232487834946517401666714407215152961406169201739836915899451939001446150512787445804764286932531640457789421720819397069923593432769502082320168507181446005451773742002073617048146675431512826359484330874704265720952562535869739245900735963889735393179207388464109281971581584940389412234799386754102003337893483056552092271263936277581090196708930520289749273747299852407182228032504556123645207944715016973287089004024110614764345157802439103381488763815803707347359760017196056740540629661033223678248801430249252713309043373012174832272237843083461641773272855144723515277474106367346680517049451769631213175717585036279691576264024918965731853003930808073787871949410041979620287984800177011372951903556342620840374154036566120361449594073045021240075788799611701931439128838229825466022553100684838669706724749376745087438693301360511373989791483173150450316705040541965476831914375583814809887465880355305134918659450951974536478240760667405704323821532355657619825833287858305551253247003126639051942128245827252506717173067487250204298282550969759754107441444634753524882998028842994829350859315044644107808869755361078238560152694563640609234471185329705466716663672050872729408812483043205595261533516815646826877389242717614095922813469731463398762279708683367092632268692978792318201187895557441728351624846838755512881581460810408266592649430194935540639102428016453644863102550192054161783437394116806895143957462026298912316742576898674182059759145986459886726586285793414566977536803698782232136628675693708143281785037816754043884691132741580105504285205297653852548761123464926670340153725265111492762542705119177289789743583395442390386153241312333786695016811221223720213113908142483055244655666010398767997311099942975626609678244400595248058239751985006518551979533773015047762320962251598518196447033836991116396658985485984208154997433009780055396117444962742812498509247275697130882990571101009960879548648871060459605774546695139525323988323207822685721813734200790017285315669142417271616130975145299945146592473073132781389575398497960956229603586805876643110352938690529241129064992352835778409150639160045464256310678884134697855920474404677617673077923243659516608113864151484866614995492699217562186754902760996527237235205838937050103769729075751514098196018677730683156929524904458431662089158102229534294794891357474950348888185316660145842762687499450593462187863190561750220284284626479845513754152058750945182959540507439313636417039919121032317781512161510575430689212786568226414075274656500247757755201054047651581291986798944666543509560152319561970416625706128036151886475936073549609301027847443028746226841740387379304016120910098124974717942545268675620126424611565937337547007687477229899829447937951384049432878828522464540719742598197323479547066561549310846752495324492316856238466036856113964461900889350473767181676199329334923896434395647670640909603411102318253063510032913297908668267990962419390613838308880141414790360889143714797767218994685509137381442388867464980086283693371205341055077942778700638139986841399368334478859452157231865093465940092571996326034140560856004484644982729307746881621814397605541089334999470625685862312652372961927020561471290409425212924580594705335576485467094257649854323037144428027471972186573937269353138967421316834314897830372462771472111926940478515821704492979852405981138330000788960943782810604223912538041145822270313692968573252164864192612723688001786170253052052111324664306028536045763072035719677083253274125106168888972452589606518051462623971978432207956385100120283463517772606455690192399632240755724171616385031408749468483785712564793315293979826992687752021237495449157249170236895482385532541726791939468601079777008726235841212106993735258169121926482521329162988145695634505552900652028500919790086476044306671907668567947369686167315202432414083763789527081386989467006338562858093635156956085460680371158678487441415953141530046617957110832945191412979246800392836102758569229769475762828189443138297464930495181739382525796170100087294435427743892685436460175435143090979804501865943453126401319168907066224414839427092101798825998687223498221611439102410370188312063207035388807051450426361522864586049867723556956205304497076936911566899891220763508390191989741826790225921638365156273940347949535418832999841761448340533642761712571494467034222489941008755201770508111639754204414527906767708695180156973446520689990050506693659366850214559975831333111790271169323861264328313481165059606749987351284916316149133498255405154536081728581487471657804235869713331927913497066853231149145124219011884520666108411698794308490046940690489374942057488667355711204274121647514475305955566033935844978594581538279009380275723978560545076251469762810526501150590119837916988461773935606561301377594762411150805362344436847837616463101380956794688722254738822952399129588038154543514305031743027416747518764552480577976329293485229614279216044517653955924757928751159813304142360543942035773620561621416555326498340036648920416990393722801427598577918235842138915476565322511986065764135578122011117920236402242336055805396223264605548156408770818491814670973536832272472890202764464561141055121773789430058876287162074212646291630368881417837559744634099471947319218439197647070508747610008946792734413720340293887022863590695507583376891014474748999359921496178273716691088826725430577682197620038690512250827096419795984527949066636968900354881947431754722419047033605768215835360641467252809710296655088774269452530349575662998802330508864980674065670349016282563908545729583373157666103282178625132106043375667289774099317561288795534917958219667810968015672385010468086374484662832294628020953538491074910575545832500683633803583903744874293565147960062632095326638839629504630891375798966636857500979337108005794795001950759034480545768321537659978101242869195548102331104507846718820908751772597302879326193139600117822682188995633393718311130566742038267697726643326891258854128959907609268047839283993424814489600366058122446015687423907887715867489515201651351795085455127842696616483048179754471243885202774979173570409119468854304962166598580819756371485081788267710469500040783783160657349416784058290283756550478311153733488227484835901492697758063407988432644889702961864076761078578883755154624989108224724137472560740520173416341485124005195313101594282025532747781000975058379560118591129003152715884481300164675857373134540596533967973480999751147155831071368689204619980041393258456058445592609559787940855953445563620555497270085959952911205094157238392518987335988322807857716346604725846687080897045942790943962483038967523040275211187995817062586233093715239640666563908060788074555695141764882347322697811577252392024642169321028890612953978572300734214032915380327077109595348098805904043766579836115275155660054668485340664369920451213618000660145134354883221953835298923418732606526143200634898532269179200056012956045755355145478618972285966869289078114231613637396658472418214381159288460791865109578000244235831719156752513357227727858581680141919610478800337803008883630721523457976545830273764952220185529818460562068110291406419077686662451158129076365705952926177733826843736281782102651205056395122151544619744394133704451654797079935790487427572609431999134981835444814420924545178114860989674114729935192009685856608552187024501722759981778166542091653913080702582371437421165646321684128912531328942204445137191993257259872017929637293781045874226540982633359248128663841421701487238190629083214268694379447233003850267181512305845604991489243410046396239022523602388524833198924697308787882788909849347575970350398980428063511735350991285707988027020298413429208323877752940212290428245447190044379689927165139972261335333181146739887612821437718477748538076006280753321221925982908448727546255635423826670655321471227202064881841732972235416698973718524440403490654810775390732606615166672160420619363794940368455768231962472983801137687162968206881736069871290293423293014356981774617868862369958295571167510240989723867404036339712563598446866507042787385698444800067128624592418898292007640442394482904684924419011124621540503001950131225670673950360124937462356354824519592058443728332060588067903378740219604258899066378449535084742839043074871446003070311360087224406835855451923329542637397221029272830064696109022521214659146074602312484142448660400338067370071255314474684601522724677071869377027767158448380381444070155085726670657151309274749417108098955314089689545549809406784754906723460125879670924233124333930405991380077748137247748248328216984193205947921387417788467089205170174243025185258769663254814297002424356774701810079366432108053365285142868965315661883131926278554550781424398292198154047651889773775946515487496226245152950133627513197366487393236944981922299101021325778692802567809832444556890001705051006234251735445175207357097643644794537516584527070686971161396535165806836861193885749342571155048234813638469080258326621832027020542570557714132194028743780634702219854882218611475345021570397853307043635025727963610919416478307200573834893259739677727270545002788652241831275462321675266439302550794853152678010436344646311913885458804124519899735028104763129022931079039626632231714999276732374361132229977924059796256944128856878551810943336881472014329290377432148918057827517417497641329575841282250564140131165428833776305336062222289765673445813132703936791730850920125167264146622450323118195204611178496360039515631753782980548839235798850418982936610270055221414408973558822731167313070679244956247011795190729954371030512692597773195177651835187519359769229250425105602933904916207471017521672576375610902049677503076957552825880674024009070053144042083253701225803138756061215690086116193861575894855520003015866435817149656395341941280896146469859759807096738931256118232948804232403306377700027832891952344409889341551793278343894987156574317827078079406409572807230647777647751951267867161612965785885986815157341106008136398666859832139683997718562567969307102372697511038620690574374876528494724915644834506888922694686703213787644671265112720027862689674202735097653638364526909250881135098498381823847204423129065699651150593001351206138910075136227626270542449850312880668464218970309832332212672726153513183872678716731515725052159499725807941081885526685762825627270003212454121322140996219277832075407514291815621892671181302522464234732168365893157674346231030712399789876360191867156342777646613926338558090342673714247407187131760442087732413688104843817807761542442051490063165082607873121543465915207103412771897808037054018787864877435387746848090258760030535598126842178687598909434452910713132371168669525289256873077955051669535421811868669736533716939887784237742039510986218760377778600578094188311776508868310391517051939919805759640814896638232883544965016922176342061452132319885183413303558810139197555402116409955960138982738292682797480196412733148355534492280891999352039258922338453525503521379277850933902582078017283368947053585604308728191627783386421447431140999735811075580568604777982404324777403835009969462187418741921068881430655749574885467125212622795307442811819332543214930291192869698562143722657066104053251370756741099738684991042055827068809913194408351892448319791871784801489290264767506651595402728951030876922552719755594693180694930927254515053701022199461213656074442147546273799494302881719931326154642139482690034336502427322475347886986989229843450323214305083154356589885528721663881774041158086540924128120999809533135309090614469886501969713790149417299027778266294702476300384267146335606207896138423025058101615818305849516077637581389224484202034274665271632783390795417964781736145772096030950922890205033228384458000769365331047038261178710850578857588916664659455385676358645650894531582891427810745368226623096186146468137160620272779655173015123353549935823768949281686925012276035621737534200062060032170814162634199316676435817389206886544517362436699428676189367194104943047677354104637902916450645611694663119842382688666639793761297568940691372197300179129910248964148803133638895225570620118606490608790473297063610404825547276164264854354406853264492470312877855896966944063382706830253504338454531878407195626110360668955353455563062091909647826568984128196960861831879555505011531650400686659158434057648946960146064152713174615522871435249205555533468116050395509007638695745911621474659406784126784727270953553943629052680627296651185094022791677277402075566893423383373669113717216676733173172591961661797002909053495386353077545699348742298823688939353497954482150334306464388543847755833304229907145457786876634439811265749937506791855885092055801974275359328555015856790463155670179072409497324778879149775459922004117715868050642837120424310368739935978683197124941366422059262300705760886087895044495688712721249020236237886077041868445863213111007755864687770295692465020724545539250682931449861845021721692083934561920061723514463455347434423439548041990198687175144999840944308823658888055841990517163711235508084417257970642305223704010171264679364762770425099279345599125379230864774811776257277704962345989070055400440670719538679137108892851618797801399755562232272875441613554524978415160166726671274266272718922209992403532310240363389174424710070577449648754773271802283657402056853004387430797839626325150469521622829288880939153287501397802465144620445635323228729984305965035749181103730461386329679926474375410904915822917319352355115895467366379977358436833032607444395901057028699242208322042558993261598113949437309809347778655628938403464643719669471601002164416153500915629350140494186925318580450939055841174003127034293892192594788336857155126383012386684827430726113341448820972111614174213568453773319425007052811317980192376332567276837568186735368522065352741163694068849894773459206039791638414437473867408157394558913777501538343910615215815957606811441487930142354483197059022831410075755422495352222798034442567752856707013391241291259309616835274887821127639380522280413746772700271731253764651282352881346726212144449505193376815258805594352028613127191925871235681945328933460409068699431862804434912502979486681170213719097695682758702281674019599738664985359676539443072442048090590632780713335402238510141912841882503518250082801118725800879277619966465629125781740093195119898207566042180283040506734750925357978742407577969405625860027344504358235911831146532862027366949637806939237101848327501908126165953340540839530255815960172845929935581288296221566667037804942256298788780255293838968242650139022135808646616822192411968606175675465859209068527324400683048168955045233238611221419902800457395759981213357179589787839312035953353698417134812892258589757747905663495083192028621029017765039742244705574464268714803437933476312708901041411041529630098852049521775056544236140715665707213630366494367324103425859793081067843382678643499210654947486003335595260247772329143033988379036074491131154578581037337283487496279429497047215967668428928354138371010079276423690458514411867713417491146273327424495046383437770058152274079459716963441919135438908069066185268579992395753009805721931059051868290424195521655908489503633291975354432415497591878121663429280463055419189193439890095943945462978571250234959808752329661626780382251745965394242336208614496114236139223058121435862971725740172875143468473947191283201627319036627032299832493454478234486172597267211692959249740316772367600523204791892671093994864786382174016510434231287442627759074721657992544467896788721737454743231872778805956339463399773297218414213003304079444209989822310300681030115208603174273439713238644917938665378251572550502009006232247344131554677669433978729434715971797415777233629338525669246119430922307306840859428271061985660671731408047224128910684432264218924178200349338621489433374739737600083761397158832016779399033722616951677920174360406231634975076236962285107361073395874499573088588098898812016364238434495614904441445867226187397812318022365061835450435924594880702565194888246248897604434438398823530992563508577477593849001475807793121960331459001110876215498549614182570754123507809979700028095669440734309228408613361529656100713969958293448711043972406377076197047480818497597005578672953061534627718708262766735496831292311077298473055720871707788373813058216007322108464024538719316358776207979861373508670345476426111428461869070607327581336318550059889367960005653781781080517517240085363314081720772997303334743665878842933590722486340138007846762949051938330751767702318383951022891626587619771732073163299339125740666812896001388817558394078629635576258770899935221873083341876827683813699095559328237677743692291546350755627837050308738798231143318273154905165693343636401815251726892114114207030737856367658995550078447878022275620461445265763630839748711612134260780405892590109930466576126896467569187286680896724538769777425865384573028659301058284855610705596116409713740240859814411276355803858302129114108973365874612552609570430449467692249857688789304524835884169780543210857955023471725142798264353619538358390138403211332878831829262174710659819500483620264714482550046150091905463402462764300881575772628036082871262762918784366100770988307973880630465443428012376838937835824855457617240241362118348119971099741259069597943557136251318054223349979029338263744768185507918129202585277738469186738285563011193339199760517372421897787258999418508381818252369885347724122900095887599966241104796571130484735562459001471464179380762663378045648683171894694319687350912346389296100216984559738274980111523131646493566969190109537719374233987750487973041961756483056196558774808020854779498076765752141593592312446056878001756226426979581278611771735861991366829349470940263124320082130542047979365773815072124462881675887498660142812701609640048378357400425106717150568760743922614228965926189698850606310486636863231619581492887375056722456064487611964438295128551068835565770599531121249348904774146902512270674865233527700968158567893819336194769853828357024438008802356569664882584429393820435633132018487716251536287526110221108073442009924341229270931149240427820973281092916342832696590999008332569301652485779371523945476796523636740777479043458904503428807003094291728887010748830232171867680211118631533923279671106264570908681922072799502142932851341972159790439150883646222954256774356467549822901890898400179999591688818649717937059506474351814958184411010536862894490199600216799889053220176551188817392886200023929643794067765646411692612482396744518335077414060920844843186358884702154554441045000731675221885162876910113546692078173792418563080621507810536029189647246147532713237808575110698919109575643224347080086091691275638977851663780321319236079136318218240784826392390786682110667617311751410404600049798606123502130016016173573158109314738627667116101272565222348396430515309429294239805597428669578623134686948255828110047500018716603801125819791655075942190346751039384186206393430472696970909397309253268783548534822861391456750612408948359689103073941181974669826904995348130219761537745537892028327963475178576041212345859585616462777931328718200178841911295540986867149542462015881612101900085182693033001842487288738584183470901138779924995085462646385920485685980034233000144006078552251359380002355705237715113927472080583591491817923548371718245280496095822682176300831428789903225529616024556370761201463390008456846307000658735103055863616694640647593704883999896029243600895193773648251200582369762448850630364546237376194688125702638205164805573172411981433757346112032093736573565734596890248250365836832201876642580201772397134333346839277430028666091045195624909781289729837599203583543132636607685204621597950542289686132154812304742201836483358126898101409972997971800967547220234417291445238922988776844758666474815257190502708068582154882091996299346427274376635691967681557859100706572878636375517502248196954779478804444071147388592987673355064607619073505184222603430862133302917409348027870482385495841578198246518865021377305052454377904324001528966495930067224582514668083662790277060690813142305372587889809954905725709026793164068069506397018034775770416868875587833206341856202202266538342260051245343730161768668140011162889586703577379578080654105981224601634319360827806460216878835200571087140522438591671202196496944483141468825549728783137477920261719572748628036013026886244177519887650061473249215716059782516816347275738370202216499764392356128304500027771015279859982860873476769739690837713139892743323060614634664305389328029648486126564979114259864874510890585266495930558524053985326784585653048790218089090559008352020649764940093508832256412441470929229580747982178306129841636096267055393345310380511484065295245633476831235791174234422512126153001684177062145123295709332504630805529610795674903501654418079010877778071951040768389485247196784458948321710908302043320960583178304063832908941177912133029993812071678141596660510517903039740375587207226004747134074755864021991435496921440331080676992908047243151679934282526792276714827347105910485856028009157669942034991162926075943189750073092374296339148516752299095328314622876295783828213211544621181116407994664613507512089879022044463819038881390730316663247229387647791925144899448344185497803716175989773453904134919959292461714127319515051997076336679332365855013744512345185712129121266957355277534297751039681572718339776959895965238882744045858790019998648284542310236261640758444851594889228529241670820373962087904535802261138028270839988339230616477059731102684470763235170979436594870239490246731974680405256492202852427511526478294228303892991019598992737296647098483710625394221819107479978807440613038200972460367816484200834391433018824501547058414330444027118574081833855622700140170876964317185460452681109250858502355192648468859217260986034456165538296972120254123670847170396712656518958670440499464614669376943121616467490412950739515029677022745808332942676488049505971106908138970464838365916463746495285136600160538722520261879233946315363125715990575733122969254757348363171697195231928645675561920057246803521890402846118686307872064826887446963916669409307266982288047938167408853156945622197890967261128608030143712044265453126713896056880125718639539645967305186999396338272997777122005803245504522622449428798426004824874036521751719722948866132971681374778210015488935906042328957906505447146188081691804569710979768673356586998779371857737101855571923785894851771443683166890723658578297233225335040844912321215883967691060031265266546779304749120434514306727616723155194139604362753942613054378276525278120780009120294093420080731836615808512852513514343403388396014238152095323031199340463785473056545640132661471850303545506524693197926208952687376572317266542634644293329321785251638247398542889220100185078269516386330335145965278034728106706772481125923487103411572283291863781821485769194022215339764163591800515158681304716694865788080985282547016240522983408782540017990335829158503363691795876407096808548588796234143014207846888794491873823185681240868948517008875692909897397949232296199033211178277730569522769407242272413815389403577352079072424489887272957671783977701034130950363101267379481164092736468752936703056643888899631116210629734967171310796243717808439881875911791757685736817494139190790707256429952826185386044236385367100051299528005509542110143674838799372695676354224896670229495682428156508720872001185253378057569176434664077387281737990440443056837735204356628369244558908578129176399018473141334573582250347950731544003280618283968962209963747241272091519694060997613173622066388790949040286036154514179166121216846271402604330193894947976792582891586259692150822799470664648743277797846655749911837192326790684562088368427995041336415329418648064168928735706755843338577407910088443562731897219421869988694229078910395173211872469428521935766014755547511596737774494695902511726872806158834509933666419276572249689614335560733951305863696000782781221945323818988652100712560574853758903380525443762286147432174946377493771491230729310576249996904634937354240391394810972352462315907456375130796075444175184397286028913957271869972909601808802926817635304326700317959808040468604075345671591205810453979330698544345806009458735290152671216579614125426054430125206406298022191671443615450028747397019903505885192602929517190276914244569953472889701963582986501158903859091394742200964570620323161742328475191931650391145537756737349342870141759133157604399305676242336095614039700613165004731932306183129711104223878207142596855765666851425808440815417013740643905378881376782073765366597898569038804269408740591665900064751737065049810597416880526827356234487218125027066725369584047298262094666680975391896802277978786557525914572895274131653454476493296257707055284421320956084638128024302963626569943512156970793783312321252393956985355167657804394851113157608971182371401851859708689537629117701740262321964223340725895034400749332568602220985215070055947054041069955375141292065545612943577091163704759325781458754023453774003958760105973492868651529846466866292481276221642413711800749491784307688774049853077282390304106692318782468138704315461657994394300729157829904302395464798796884169996001398288235826085242249229638013733752574720367149362787438951916815985558335358182356858589293179831104641818535780340002939573369128426852276442024673698213960244766742493751576476538584491262679422763142743942830073207100145362353195453245161119742357995191992858106903779685147910613303354722520664383627233227179918038308959123614756191842981233797175816174331435359978075422440656871805794931026681865357102526422999564510473191674200781918416765315830082162168595233530361088993820381337896796421756361481638228555050872739080668109667238712207792652771109591018176493967325350745745288910435133569095893627613149304234805051783035783557511701073425167582849151217509094697754990264148508272938044306846509148326734931552816088190726087052191091820153285596852154505710686754375057998317170770374875981849095893981929840138855982351699521881208701967204578605853638105659059076273296862115989664335012228846317240617215433919306095740861930610006200457323748333143777295844450693975138606806766315324012833759826659963238756127672921909321005258619504720290552199808190212526521761527102100336579705083724372883317887794199814256317387348099577757036851943112910439317514943633119379580213875206405230235918368989924337707409910058020668052034048421194443685745575053741145048745766940731615457249900007084023073050930787739169584653329803482408825654156662106188162618902589379361816683718154710343006350632382426972231838093412895245995597566335433774509100998754685915643496469588428686768090719037103297041002878333645852326402353656731237930231051179893310502787485915682787465239617979960489519439172912145077420368491578826669503965665496148725050927942744299935186130807316106259143871953765976650623813920550140449928461827990774287240081251848172540089398401907023324933055068100008569509757049668205744543555374434607764172034116314938195455414650681622820560104897412359835662903492859657890035541685926413458979881750004839871672568683246995396315788847342899151658156883939271284986191941066097681139634985384903060496521559366691589330318215756173967625411438497836035941129459232964677611759736045277489686501835375571066668264623936325263858166567918042990447286051668671922340199510533403372297149146730082065543539544630673353760371468159815910968997895470792473534071862912445062745649698863920437358898408696582757127140975109801776433216416715277078348745391390991450446854173676196901507240165521210454765330295108267418497225511377852300336165080842855917258656959159195175969906927106468058488078657067898650619699561088621867675637100901109649408984107499035523228393843068861733981431774744155618677171383004830442246153048943088830116595496135995715233826753308969617427919342576874379623288296076160363276858378091018368818417584378058782344562697543778350057481175115727445755081469113333445450565150063382512432062641784832156224509786921483284717449074319347950353632736833937659917750583859356308666815937423344392001312277564811278346608879984613517984448115737330151528429894107344552590999950797803786124102448741928389621811844218563106026860165888729683623534104466603736065027856339710901762076858390442144618837757781424215652276105211280517352002225129113864644919841063583089472538413280680968327739641550805241421300871403501235335523557117442908333022152039482766903481332733839021780664619662689424871659453349480348269168330661229715131200083060073373918900997592358441367903177792114085429748841003069804427745132664190061243055306684006024402673734613985640040596507130918249011297795041275390268212204746224121306515698212452957314852576398760031148305477842166833191693392418489958443946449404373459032936177292985865716679922672085696022846407984901245467968229748257748438520819893430471746281939677859929130462993336443425222803601114337367061296951452775059751202851475866348632372822246824105525903227518955849527986010530305188073501252130453639529313090963067410506339921537612175365823755613178098349637115472661235852784407453150636034747246866571043985591317360993609607842132061202502495137066958520432059594930829079362742242157853141917121776633886203203102333332356278351635086635898934285983433758962044604319860430944270275903376609924805823119671325744365676780377283213075426538667203253414981406052640511786199214685912229296684716358838716406026770885429262482495109329446518208995310167351556042118616222370861611183422660200880381563765196176109756149118658007049549097912015775237629723936466772179207771466196974097508951836176788816488864257077552564352286730951414070061990927862964606822089251887269080091383301428919934713050417400264410678780167520681295038646547131604018206150218863260253724876383207935452264866016988564254812933075981008259258607125635876996909220638640585965105130555024584939827995478614095302917796552859688383142097204988921010149431679319535104402503162978295748354110741249848167241579498836740229265247191044178899048109503838692924707835165428293132373707597375602704614388786869295753385334991080470295904986382595641301347266630235132416975894613381234071884970461707004427918477443860066573433670724587373025568914974565824058536214001520639675914325612206929870893276168103391840833558476148921612236947245392688285355596005431052086938716580598350034285258687044356941935127153115712066314205528695151479267805181551083519395180134498824465276338260506860826657046392353025435685438131615560152521236845696397422911761370061345583353928452595568107147366790411087450033583448739765487396484809674162293535913956639938094771710451333787498723263919696146818792606997645207192392238840010026025792714025987911210756279214172756959671207837981141552595200481372317949790371300219989170859227003582626117331726022076933092065111602908028472473895604715339293971070300080471733589725774408827034772953251713561606669997634517727630583055999865132166984427234900093023459503107768780108512601883232068167842274978300090063262779798870068042308669089420698255602255833910510691423570956179613888543165932179174388477366196594809574577612258546013862392339168661994620568715540452371338397281049336425916955207274932441886731122013088646209493053917687480114142951436015160895379119403138216179891477579591279485765655207219920112855541783439778344708074524508991208134503335464437813534152087499473569213504508155774407431488558127878980775317881205398020934866127585909318158021369623121580492669496556193260423419670939373446527164363714626948506458333402136983080984483871946977847815191424562140710538071557198621449336243747846352293997244252550759067105486967403037119926191436286700981545555447966577550597828286069625723185785096679606972410587448997360336337643851676778852386239027159572244533780960915755988839516077715650140286919211509771165642686327702027404934125537019942702808130102765377254222921570557273895971964764106358652999066200725234019007974307037391769186716332524433773132281214674961709281886261634031505102530818341191707489794285056379157161687794803719403367310831542732302689461573958927854547788040843029260350318879756010568651180520673335965783144549952912461637497102376415656480174409287815154343198497732987120437845245820475572613039999053609828395569345259226179340200435870744597582652016032255674112717512754078655223513315875257309150594379316464620824262505561628798923093190901315435985795088445996351055885020218088054753517366811637327563968659033204479196841786327933873429595169036299456609331988086846877479743365721758664803645832991718082593075024933666819139551437840271562839875490224465548289958566915687398754750329471260849676093858222039179190536293880274253063902512746052227311341537900734570377868207429686137437917946072315455527042946873017317858580659937066773230733523769383373791156148812494542781067187001498759000031150166451102541320096072278288589660347769579824233177090112387691268541462621832692471201372494250318294948400826378508881167704752567905551932721868853659102058299329018974560061162047253974381382712164718427514869532059724041933960571189434043182523296648646515915589202523788364999463540153052531916408806606111251834035979713298422807217046348447152997224544433787772014145002419978905070449425487817295826309308624983672511353199086933191335268333327940429360972481804424777581631641263920410217860122237593625789532003598461659315123905417984121820306487324738915746375872668219020874971447251593472399613194574217723694513565280929331769021359264158499476132125850982497957238772087728638803835067908846161572066159786685396896108229631147266163511456349621769807419286773461470151645178034857933322488318050808508385958511907437293228489558024709499297077444202685123218386511403122945560836343432963549810379114903542220022722158277194872410012406691949529818731922421822296339627351094419908673407643601254565468955456671751252053475911404059089891225234881681077291463265240920474133966834430106875438705981888466135013185148654457203987380712121163470692850395483366194049750572298023145810114464535057721132432561813640384088029510206449100543797566576302987807242311429320318820724219181208912350728875304839329377834453558312945146248074228905499134064075004084364223591402472057916443219185808297562781661660159635213494662226101806155867971126283608759756752124593132409875799541290172112175296817992064997256357821497275148522194633546807025885941092790774508330676529213849808367921131873986743505408069856870908841149646526358502337418484591277485215695333622984583978786788920725271901563248375130639227957763225834122559188718042993713484365814958447392290966126711005615350448287326374515200572708057987543048638040599808219418733136708345507805499064418714416230674616570931997682412423401742372752595851348290570768938411352056040907286307013703893593717990767505777795433233035119622680181470951312970225827071803857089718339222051975566572388970204541766847312602394416043001632638487021364107439359087419501249761041868209496702615694951731182048700587465662035057400361665287304106970909943297287919690992405536389089159366503145204197557742478324231486857296107328901840562426428495825476373027103268312190895304765797136869242020656228792182735155092921838726205807095688230715533030222219849739629470857545767753918016076714258843499785139358789052741218247183904440921789177503653799638978227414508940790847224087383231170304660379050002421247610228413581977518710325630987094210802843701521153674754779585606219760160680798705000487681672295520157531225088946451393909722117259212747865631994256460195300628415588073228632235982295515357747808109661511066248008726484523762372318339701012739414723959524556435524806330329358555988382318552381954639743928974755058938766132664235826963374532367137509778215445079408757450348171850363807609583257763967071428337769848948173191649542336104051204455207611040103336682020315645542293197246919635512786321909033166070746746888727398494045631458480011356670504175540207648071612914989573939720995433495396945111436998129017688581417074829749880802897153580811313981079450788268812799579202023049579910453311283944209688222492512383276568202389156620303958042163314938609364415467855994257807408258514654370208195889703160222758078163281416347829130114389009110854481233805463066972148163665528401070737690972653972057265073466071159533769077373941948651138206395093743884763789403185864468660664310705930867645683333083679480511082659075110190610792934481549139643695394112898744211856378710315116931154379595021342663902714506347222611488851046990298860279992477443718992884422232365390756621344618743106309716914632600559412387530995224429300827293146003248497269159727101887644491178438929836691662981403046414694828558520800891569057217378575803232132972830179187570163624097706640025062101892433057072451359113695957770691051904890304634049555179737452699065939948125539149334076906599247617043951109019748483160968690373310285605558938663318500791830424287070190877513920421605259732432770292854857866491316292110561334167161078817703673337696416614306163882755406695963992202470805338463321401261402561063295702284552921581115371900684763519193539453759581528184531239185897355301424271172793853192225566372008601516759485152489686448858594138282919597560379015521961055961679728161202703576809284838265123324236193679921671825411470280912584392865010030653326274008636035952163933976129154975804641016447883019760301579288331934791092547074954400774695056620997955038498040953718393591165540916245714440877033107670670263725632646392902324641794423462662503302538298895042287632270441683786315618502431172455358482398364606293860430863223397993172726544343162536705698388301230187239106219801051119187722299084252508329470700871549035311440762987842890337680428265608268614341662129203350001844003076082142862839464136195761152808735341793370433174137225446429923088625173790611703008241138271779168261378134681510120730895048474263700848378922816485523927903223762961635944622849051047724296481129852147421311195149115154267582939299088002213087160609061689301862287725819027260507452575333317261072723473769250419901455373095017697842988735607707130156308559482959175458687222137187755016983733382350644095674277119693821155826906177589707055810255251836046697264398072586544019944350757461805384617010045710609345178731117867116475968762672599828246989588956870124777172745992673065257873295463722319948809097786008830102764412047746227538146676674394260946705307607041989489934022930711557118614962615078971868362995906769076574618923604257967961615741788847444886748719793924343869301974210565312792140575757971030197152341035821775186125742249617876090542333891387918618494195315807852230368909774702864183608600779619616939050787680642149974832868364899388439243445286202140136589510214108175855967670010182328952699884107266511940119079260763961898180776961945425538063546800707615550928056438886953315226566673272850508195835633905694741452719034001074746516444173909352165829879712179536383306838572160174419097454657191639772282949431782599785096035607664095299326925787851020341751878424746957830349027226668607965844436383939043556278278680061651999509388381269084368727736031647311881533020996085054413844042135001669677399268582157572030659443528017679129564263138211735344754697527178102186145785798350562598237091455329766322447876536386994645523108972084251092154393844893612497349113212994021211678294646688412472675746934335236439486495894282314021049678085559309932472722675807605033682037195198090824512149406712576946234780788410027205273084295201673465198431195708754206780030665726400899706495897204952600310671979892063879091695658433622767010179618621317963754446065190587879124430065380731548213635449005108926592637714852291192566275179082941438111719755367449206845957037157020562879745294986534065267193350488945383572222527124179017441004350907636803849986220949961305588342974594379494542151794235581906514836340391653219157497086287417672347004734543771332933140061224137105826678684015704476266649895897163020313470675541998707458026458116389818455743494093715046745535344627502293891246605868740860426886722799515862011300672491740385542822992317613469986323953405523624454701072692276020222175027829840950542392053590868005081919839356030916197074780461050387695468412299577686841763450333607127479345090890429617177967779269633004104768163958383318897291453283288992956435961931581263674639592324298386892182041551546881367459538577341362313000240552665038120222075563867507225500599545847236961182201606538541774227712304198040075286724081121575955476779634490393662347396464516389375483230547440881258238802097368852342643431118319486170928361119214173048667297999444986385872287171489357765763422657687693404285489814989368582922935162041411270569221552235737157838387996800352400549969664739776494508904015225581583773694748940225539643827593231248177425510160729200139433944487463702503349821383191024693364013316156259833976159992183979360972630980603025565306164712353695661102881383906064012566679060838607175266885988956979543474671147664505424744876007441475921090922374644482061972185414143178455888137131739680030116191191896980196921529539413626905438323191167797104621657349527751116791703312574030388932072901798294314993102221121648135519927007694125158505657183556264984536923857821363833388607444214797130103536636811534109764488878863483933675940058162449720503822772554361222873338341956459897053969933193488452575640149018357550822693302157964598238268106454864504966128289392551398721878214328948471589545151405716571027841607006432389281129633583799505607497914645284136115942472833352046929125555833096943188802446813765259466470024111084382361225065343018837051048944267740517506774354807390385417662678173491296598042511246364775432664368194082516358304470913992012744014866830646205376676232065242511214823650311352702254791596255947296972933641532240777839434869677107827192668420021134288231477526213533510297803123225562727267521517010918302497415590641981040493154075220444314661254553991551752405954703092246809206033116787712973758277666453500358337004284652991406967288483681170745045462339329308949893059814891888947016985977396459490823078664326879976430705280878266904334966598461867605499524232549696605262174906450272173883253473610201955638757099362236045431422083262490718803516684094144539608115239716910595125936248556824313484641058887997036114521402115747340283331007792525629372783464627708143400996843451813897037169051935857213454300172831875102016017509768039665662307618947177725379602416203861400952156827132521001952101024786253598409389139082815688637442390328693354094455933798552669511759596052828843551202047071493672376072205234765076514326536509193565361029222318208331267940744116267203470769987178690994489551088960076857691800257392598711177288943701182963585574226337657684459650082204015221325159756609077714506458010903709898198845317961635442609937823004381659338921244918058589027438014470569822415519979967115652403917509493323993280725172558118007174501029929405083779212739508194548569994035345315265541215632207017660132777245867323825240893894400625578026303739871131124992940860227567552470085604277796324970309591660599300284150106109772928381789205802522851325654014104594153068442905326828682765836527828555766966979482903673169538679751357393074979598620894901200380240679802750828024327500550310195507798473177995051040179525441195195815881230371491876090305340332648429827516713947315139476930051995987337050442454306151334482028332084063666689638427424582416456873703554412418426508303561113349537348587423986998308605959450719042478099156542742262683745431770352305327696238778708636991712470474198491482797232517678226080810225484446301630353549768603069202045446516338800593240176765371743088598731053063823759225839448895299656069151423899612425460038311608464937983978606923532200806213317830004528469923816969480291038440515749824895809907515804581205139274528776452043771299689416570489258889793660170231597078689733485449742610211385101048118064963749638545981103077672068223055906953722623481889786533149106595177278689790455674295226723646805822488465310731898260949854796309148584741271247438851708768665354429836747440026166230895263989703157449725216429153539908576709575955984880258101229422279678880374341300442746682666222595851343677940167061273480793141605667796707091466367343095354084651282591692345069270370585160795098431726635113747815872912331552634969960522109410883388096501863424111176520757815913370979007002811506106088259919922163889337465919670404425781591356133822401171422435247221326669219879940737680746604888335942925696856470742034591768428904675187522736057422383187235522553523536785894028571008042974143631660585383224183012756091245477997134849233807146803455193381523217403084948168266403452313876460759223643113296199173225718877549951351496998955695938012153457731788058492326776417225837113747485468812771014580155159623990823040204300299760710925496044219159057074444073442899508031168852720646201899895868145934051193850046027216679584386911383668030186595645348757418529400502820851470052246278030088283517232872766955693657717026489954270768768364842867127032420888155866653749722153965582195291431520429342592908280750458188924979412571795576009871126026548902243003065049393332998646325324051436327569351423481052292518292742582579118914973678158736518638624673880761360365803480940113848276040103018040088534320537690051775969192133064711402285303146002815869684551174160543179929176969497449518961477060832350848909240947523274551128197126729303081179890520485057334918375246267266447020602961711715543148864780090242554490292101123361884342267666324336085324568744339976817110521990616591225628629050176374069274909163835673384427606827666518633477529357440478328359793142063393005651433348196741820921234207455786392881478146873274838847106909655194357582619605509478521775019034366969605346774163029594103875466119441464139341277752458431815235026799263406882360306859588885862136526764161158631298822127940052058839024718117849204558449800086831948251133897539198130767951007968758397352161903515579890532960458157370716775569610523617040191864389869712096040873438150058077708764520156324097107112270332920291585658945967948182790730707109249120785489546503620996960722375464044539088977851482034109849715293016358328319557111551748153587491803951351266553778481466684318857640059572751790867888910913025167357053809211783208112265702852298681910287864380091426383513571382882559327706276368674057464493306445083240393073466208172536799419517060077178683007311620945797004195925425243271797687332429280641844700751015425051142517237343351971183193568858737073277245218704717830339174912394378401057925724332712190426723713694198718369258810827492455638291077633669972371524129296621213972100198374491837554109113115949416524445788757523317863182208510407640094217915513436245028891698796871224036754641612036752258020597479298991894233897012575357043182035803142858487588199636225586521673316552976272330925556235949802768944615553982642769237673824893322385794011107743839452417894019801238926260247220599750826280610555334030913372599490937553548276878549216007170007573083944475705658184607000680440914067659677723063937950834801881585448908427484641943429169432988489321395194959189777471855841084035829130372170536153363747758860808877240807032168104275018222024060826799425644201501916638857248723422200442594235268424403749503540825432466816745411217987439160266311053129408311047941276516817247714973184197469455489936005895133597873870071768454240782639467167913495602837133307634665754599728393468479939784801254594103486735548015541545274154206551148406951694564168698234699037385583772541667873938983724170642883258781883316440092453582982862600496643993500739338477391490065499690886979425848909468508081363811178753741824488202098513296999305034039839463843052979925512728303457279156387271569185568359565842783684011350239458161196568916215247646807462821519049570567298656045698521196700366495233543469785863125757884614537718017069845755235764820170282027344286125284270695447216520434996045598641545547775462914464184880705026802651480556969594231139993050816314829882990921575454704092118431575319205554992338688826308242142979463155168368346642784911011854395751352027383512888207030856582103667172596115814930049239148838317986345502600370872075802135937620131755110011392560062358598797965847893046109907640913146987318115382796226045032423118549366617228612304279636351178995192287966739259922101168095462439007630865068217178667214660902526181466027737593554216360351636244790347501654561969251227412278945626302503574763444020618872646270023682721383057915071462662901394711856378595259690953184581488082601147233504492156742069705001481118323435963675303456354651220616551599894886717607562112468409223527042892394606626972325196905768795360953040946540237241826853172845222362018814951458067131539297364038714499177264334104433004975880904021042482424444503995019716166114318412671746756685682344845584902472225784244794825152330054305403593471159984749959855491165296518374939989965152626538537063630434367896973157968697102818814710620179756843720951093713886092558619474723147228353789406146572088174682459935619730072479650584230446528443014755882565789205916592130688953057214458732421163506800553671120739824945853791926059989876185399653313310883255910664982440540842385669980573783487222514848695065045587214120049699223716679039947463332532506847143218055398025563603069732711692229415352048840012785546749359433169668418430744221346026603616069562026724020618168117861762354763773164771544994984860389060293757636564679194272705227940382971430220810542169150178397936068157033041017681464012020675742514447110305825018263343894814662897884445776456060019779474502127175861580060403663974519579509887526701014670677200693130816572095059870363613879240408233829249183220178031708547581170190023517625380126759230911212487452287952623668314807211911327949978117846718292472450448287143270161292946536689402484556232147292966998394375710491706218511384901887602655221523142929590063203142065781213131632531475528080390287424928823103688984729006071904262737443515621421348795346885277736948797477805873042738343553758131288519988280328596145912676025083849120787153783377215156544862874291086518300640393221268023970611776663577911887061522363267140947217830969197533025016926561545522666593166297127878818517155544674825441474109703033981254686612144468759717204077559083858801294481614794464472212909742253487426739021954473744754886323214630771095371695367313619431877895477343515216266753712463115095843452063142206510971484029379002080910144354326063377322230790911452580644618260742429458691533506228420413802975241730961240423859581190449983989238378687415862127394132568771387706167644844920926374243008847965571431004606347242601531562848843392406886245259772223819850636264260624215354752833206487944521888992086387916426629326242651946122966727748721266316673571373354067130715003023899119343582590077914173153672757089481006168171372590046616617743077027713926326585694374081178094775438692010847278467569693265411295934544711583464229317346817513073595719502609165309564038400275144013172083058271258992264286700446810353239022846814824517594438104766859545149041855307081302627855481690270077558409294770633426455445597272179659247808424727904700892082981258277896271833563915678922269336784486919749758913881357928062172879019178402999609585279498561780078464451989052451590758640801953107396307633802857169149915950232512589750991406440217490142449362031526863340573022111761377983246395683163181327739522452862060750599559855354679885674439518383741076149011229573525827121658431490949915312777293544254307640599287621052541187593660686012316562242036981536134106610630789487954319732887182538350249616012607625321292175453880413026790269406858911996101174895093420245798397327854349099432910736656554451816909961660307656440467086082145593759865630178787484445616303457921913029341908459913348891139776156501554865486009007703491522203216523569932120830436592983193375813003572368573849262599362580862204086637453830435822970070341075560221956715711381270690837864750304930467584432942752674177281778167446054326224475142180830125835726883385753659858557124661169242378089260788020398556668712086182045291173150048892174145225785017634927492386218361783890507269766644758289302139883715563827929231498864731324581256889012706014878984052029100754359938586174371251958184208734015112429872270596091084112808722995294633234773961995547995603612135557180810140131426044078452585897951295386106226493512987922616336743951473606094059339261049508765728071175451389320554568252863424098856625251055897836620453264552798021153963132466937749586708235420564649520575264808886409394405345253556853862042769492158271092811082441820466003542000214363890747233774390522970788280587811432338964623724002807060119702133578227760313572641152992279930881475140265937341175446462692871336444677233812292271836303769869401436964329369456441132371434255528568325896549508932847861467890265727767932161410777459747712976413178864069612524596609722390046145922587334923480131530460783010374897966883386492081503482516603950535737647817998227135792981624907418001947049970502991144447259961669815407534100323494126208338553260674619836845777499687722505580371137187477271600556913870984349315787550300917982908244907509468064123459035184682916182403437994637305600536587216874527802242440200553630859383094998619624249686335826947975834966644267353924647299600181661010114064997594244680092874031143256248981949031293718415286453934537722673878725012390529936368401355213834068472419805824002605197975710153590806199788663218362480131491102000039136776006806762495700019431345357544558597785677451756549180183922371901876038076221702523131569759300445812200977916383471955930549112231349978744777042844492025416214176051343667102980517930924981822765035299457618074973194002098688963517268357617115028023030301722679968031878961170630682836710265873725988471426527174113335059379540117818880714879866471728002991026884857188581072157535813741569524559804415456523311207547252166151412717828355326363902238895819581889618268680752545137050310352316125619857849441142047545694703290417289696544004131804393749706759766463363765694771901228540578284611165915437892902020753049267132009232142921664643628884419695538944696903605371831561098453358528298133611156939939407301318391386317866074053243045784165866526098759366253528641225405109693752943924008469514357845665107943938667662160087702295309130960805346128708929044589727950442004887345581013068785641079225630354822194238766559536475317365517749821350833436902981186866101277720617495215376477034217793944355329812388208486362518800513251852832940603943346255510089727468836373786586484511502477934402349551999638773780759631071782673459742899293379263846309186167093622908346482937555132761178413887529075133760633850440098647314027612001705344348149923109228308904897673202351830190853383106644771865224958985304174925721446711074610198618326951382357955693806008634908501648548923147473466807197919192207096832719937789374152424747851258770462699457995255898011328624851710894715167756155473435006459906027984086005949233100171821247961959850910423851424691332295046896965612462580959537681074816310301270659137471475029352307844076383276572088186144194761632592715393743657874532096510153825858954036380104087213289353476201710793935862367676794229352263194738812715874894226273580153461566346432844306488134815548731418525339110510710361746522165140977217650080480085686431429192096896379674671316556131099776985636219159327064372202359694079712609225580768647921763292095433001889919888874249040205300032785104061579910541819706841802384000314455227600165779646476034964135534125732837211078020419518032631567238621757928361971825702692631915467771821897228152401419224846343474586744917817887995604210224862729373619458446869707654198218671177938130924348604146001739573975346369270910310369731683080295975174138573358716826306018893312595962012878853663743643118408642152454822428341078408013447726771497558112311349147800643414194642688179124361581099253278788846168445356647000334809349823218849164069137341184619351406181882692540792154834452444951563189356473437162493378474863446213046669361246831241427686284780328452365027743743566772394034500508938315923130899300059716830929517806901297886848743678637627388894534521542415301248834204725424025766712443920669040804002557730420691470568309420555799098747716230523262972862142059229836960905345427305026640762550052989815580479181207201697333533871737618930809758396179447044255194303630012195492259278960678529725297003993204678992818885641439430484242167668130645835489079313722121945322809001304248312867687152848463540271821178085695566227481622224899401703161267863113524630067480406317570517359009704760255988331352939600600591474762500212351805195548385369446243910386629888686104105525106792365628295137227829109561837020245973354062801252411026954628406315311801502040855264439868274469221528206343903393391023058513278939980995603740134486842563414615924643904587714609673026332213989562099679445594754716188132898868362290645119431701451401020980480793484048166247201983987308288779088025201916378427905260247215379523809848876373403662860917956160351250655408012245097963439526461351721714819108742233611742726573566160029365338353414116654778050570969341304608252264523557444111965515047810690111736177589110301041956307661091921104060103743130345411231594263507724741469053543758950595863079504864657995840634991302417266285567978366298746435270521407365058531428494427036846379928000899994693820378369900135078497819417008949287414978928729387464549363916432099817389811764937343400689156306083849211387807273282478865900406110869924085297920526864548086162159272485035810317994882561665163760640668403853441934972643566695410404839865383800691953181318372803702001914583016281939162841895938973541416510118915823606256895896828494143485090302823328468768992396215346737512756421170797610298374301078596591575681606613836610499197361756629038200036387892787090015800210359331382545004297734813625587809246054736106487580983638263807283653481645353834034105044374992208540149050747820968322867326051603309109334255800188316520163294668462013315901853168783567373052935429322476372462182015041618557732175410106832660619529218047592160184171750453996424022898978033637443307388510436143934002330134547768104676734851008647872162689437330872457196812386654081215276812815080686773507945502498371902051397334305041153517833587674566470539716329796193963228168720853711668028441241373821693437537829967294430609133870390890763200742334843577767472705144080152128650400276540916892091768593693576516136693273043004575348938113495391671199583194149289728837783813785578116259181465662778272651185016014249501973090385226808127165273345261839151543136967648564709449235712528869948291658328221755569980419488675854911022231299121209964510102227719767116172149193977692405296441469079373635277648223105200399119567348926380811091216387637357809844783923928778670839249037780076872367069953848062734671680815402537489851481236154448250847624867520115547328195127251719593125527635914994527424863398463596699214671744744334019422544401171905257363034871088516876632968460383172240994990592864654842569070920060707582408331349884926622521319340030642842901737376390651020313502764046331807698696235966250137981616121035371504958353510584955952839758119156955229551002662559662810644687563418724350199151980343314825260949457331141019977902313052003425204750681869334881097038781439248071613196717840152908381332440505421759257438543801200227274753698990416890449733124119694340855800581591414884282398771990853784636967241935953143814878740579043597683190909912307798807184311864704947316493613084223970443639806561165381369197866715674142503350795372808474944410808327634923446667315721253505275428400612481321599380910958179895353048386422106953737576747971239008671411600048689261613838503465745904002154241539231585449029604255644086957781800872504579544843251228988835559391568079669176773966298172704158116550360665943909214847246546430081340186766165269754992205266043389766667302927587426911798037436579386752756620336821587792465627985549380265237481767865032879894962722813584284993108269800223233121529219154693886178133022991040467876818417046937763823028017309792784919258773547020977743926131852581159572770869925908683050581928493313116734083298772720860903385760072832917748979131856594308159095013092823081388161588377252621871590003190271610857770170542888581327781903368466491164213691879593573090756014519394722069992598509699010451288178518132300491341377192501769937875344670837033014021346406315592781208253194006155156269869265993696843590770280742943449977123636054803828298450119886100336022453318099207907461706746754768613410131585106370089639625125232776135022514560605944949736289721721271103147868789943553802915313195479576231985046494436050641874306118524916667524721850059537417878220835791342209316053680179788710737887035139519538424856560045990610061967074517805743200964962075220300874229632293613372601120462667926707041753517785651295889285593164286127633902951336492616096224565788506396648662284037254833026381441961504938594575794253020964566089352375901398331150357724687864344608585837742323148700254220080398100530372198232284779626235121610667792858749077055536965971331434217955107695352912164986927363431734283981864890637710574179076292877666136830815554354557393879833987954030620109181656793643995946094041685328578802713380777683127482741094523852645666114595564427721738649232691095173943359946583833450491889601242590231391751057179131560055567018000782696841980218247782652744945343634517345408757213506155042624080762163981781047780235177405355115845002673119321163258809068849519576343133543379890402472911593078140541026593931018167588049978696864911898622779175772353964926116529654481274956923974429816743103099862217727596540312202761067357654150989270901558604678000569687535923447380212650580787785364514845555410105564649817896246998672288120595336619957767319070844516154780992184121645856573135904196513589118402819161541850196890112272181914233093485833525381355542761126981016206383721939726568086893131751314495914962328337315334372082500779926435095426278389133730926514658043908413809631582071008097806606878542591460406549858841743204664485266978129395973257456397515264278714163546052606785233760416441459494612290945830518347572392869640948170776523385981838337725888253173009473888398890380320530744332138048362978578130767638214285353079004096481490784805231562165330406940238198413897215158150197884040075666975897298033455621176104737881158525331389044287207935312347403047138548246331086079573736820824766484988154110465575235472650538946199343040964000551673033489319635998759766317756166229517458540284380991960473028895670603127153812872563343221524119333508334609554936997886117384331475745139300782491858755338375635315585614617441207793975757028053479072491355553886543577979861190845665810929045713715920017261201104178315142078134566105081890051261786670402724563018576057467511223212248569100702158877004641532650482851570966375266064295694033423641881184631405122264462074492308493122116579431201339188976523989166948602027828169279073815893329527399214405586732626367188467551546143321931788674924519732067488047003412560156778220452129613459274318474214569970435368893688621664859981494926462673738343390219886097366130595828057906634505932864623199313466087440459218797920695463842484965605060493391521076880892207392411974584176365044396240180392350701755228447279810211193165144516759775031127451876542412621949090274671367051268561767108250861025473105205261288385166585677645102020780369120797778900737434423560462855885211971185099433732343828346483624491882917367101968940645067418370430832680666055164643592467821748154801771186962707005272967577288160711995596907008724016404636125614239740040913549321839103136364991994280050206169500423250846421289479845552360754978452577541741875030308083481112686404330485593380035997288409450484148776787876667841733439285737946927071873472140179050675083978390246237008735557776875175933953639238355498037864798214125136432335486004040350738697963682688675235706993639471017607401452531956741231738238307910896645950950507077436618064054098860389626337264384192163875788337802338990927063765329498083096035766405385009887237398934881393079153816394695708610970129962190749916977595656748776344140868988972148532418482425613113917785436839253455325444789789784000666449316472724577266938890879179454169587100090077617583401932964869952762945062783993390245372708452292203728658615000593352334711423526755646963947843987581373144204442386573661844213007354473946903823035252318972548813856007365487782706709878269629896397746192962943335950721584076658349738450075155443902643516234826609662151119429906625882559256245116118654796004549885229239418882485338686385896825580251123331978110788733077049307365650448763509386181614006964328475503404547535421176907521045643492675822877450266373446617135736001972119571145705013432889028063207293571552041735187175975651907505949691243636406338346654586350389450694541080391936291191955670783439204735566531232786896081975777300154533884006043949258653598950338239494345127791627827626114358446236769923330666714918599351720148806796526765550199658752803189548876896408708879330973106230657060357901607767518746040795705850698060155832290593383393194695674538539840603780125939365221617184402787122013386244790582175727791386975306610812553295346313235617157855022788044807905012256015078199251957791565161675961309409158027540778901977786019149655852572325826151852186401099446502086528426926032929960065733495307362275406060800418898024204386471058810726393999361706984368021350573299418501695403202221976992036110453547486393352232667272115164729018778610150873974405394545423830380905595539874659401853379678652745846510109212194892605954714097488523368242494415112465729571151953991648905407830376181431298312261042244609947069874215072759470735001630619938782671051586037155617483285495829706414562345902898193221676141967297158861502444766128341116320163731733704528617273493813529855031535426788616404662263529857217579143538053897595221611195217049730478853216652554074406534547918774485959411995474350871411149212008149274958303087293838075184331397505290582453757407146058403292513047835260268428752611928011105957960479830354209949848173202442464102257588476049784409129339245656880468730757284421127081170733474564068535240753877739640987051996323139110651929055570374389988508347372012936374089332367541178536514038832981602330515005729737924741403131544922335228963814914204549118706730410423459344107463858019289327455265983710841402662143859199379464549960215899801475575385720948880475391763180941922110541142938322100795142900160263638125827630793576722240247817049313846282277776054550840180429262677029955036897352283527553158720740611522609743290791648844793776390298931332423397534335935458959196835673514989960716576740044137506886474772168561912673728537082755562794968210607904966359455598833140879481412589538575834090446823548875976740507466412395028604946642375608401463103243320460572670119420897346478951756412088723447984032408244435191863586912940859866535480163851291549917172120895347368316423366631368415401443548435769404644582802334918035889177108240933429751396854212251371832502895252089021675537251147124766934149338126900583183673039748090098709063207865497199350254064278654482300984558427449680272644207931140060527798034660047767129408626337509957101849890709921524317820752707079819182112244422370084419156944503991821468639985729974760310257941063779691916639227804901614598230187288345587050183679106882881338230026816183638176842303100504944621201116316232595466567524740871307236435312956602116739613493335611568379185743253851682851554422056817407981740020734669367021236413153549857489182158802440554889259757994177671181678993184610102451588648319865808584664481363979329606569979672371782137963563104236320632917846279441724629851373775533813995488611046963155532223933651199772647818584096185505721644986504470829729489213351235200177851918036442748645713639229260887382636652857496512085114389641296235297026428719880682489658396548802961900619625455430682676209158112745397775921469894452637972017207226368052510658116680841110008908899052616041435277779120535054740762395887623933869214620780889452399563285354263187544501597096514065121976033152349479085582139376859453188885896960320904989964661818940714916478468305060507379522565498681436260251853721616719672263918139973928447601329895556241356520986970649768685211015691350841294906433023281549447749648910488785779644339482974952375720650449070428325024155549759354204174433260161680062263535007125268356405710119781026194906136178928205735570849847107213991891440988823253626966931555816896486701081379085146922651572604148359339931219305630014405805521321756981889594738861089795331389089258300830912317050450825665289390168676029654504001318869740601023433703129799262768335890969039897352663175716381462041879301870098332817110473968399552949021523453383897945179415530203831574781585654301808976877450953263739557748608201070888590666704365724321976613799828208566582950777614641636848980746925381322576080854220831714411289491899067888216801600605747212912233266576721572707651745082347095663124469834052512836041841837374280721523146210053612159604543683071184556347332198702088551384646324827568932687843133092966112069631357311732151780730847765932952513320656525476472113313858296512342371840223387405144548496413679442939163746616647091135784168687024342557576035833142506724890234594181069250526116580992724233810868602069072694577134014183498388703599067013843027548702915404168975183239019474103000024656878444604429869286102498556262962796513544910455209856105241023757693960099224197996130915841681389579520389029507961549392510704744669617527201829353739488260938922321643706243658387162863955050610654299939936466838192574537588172214520357472262614893541385476343529806746743877598228337846248677750256487179701340027966766932442265935285950634977339063192697061821325623242078102922009972793199240807249397361912562141002030584335277174789497038126120189856776692184804354795901441999245282633608617288009653095721563123213094330705083028242024578819284125110974688935586689001693107348615907012774416984881231120472259795311927534837254486659027759989061051557147604813072971937932398710941927296362387845466168648713627102274863575403091993787934446069581298542621117156578111157135118542515892723596989415361898765419536587816265847117142157253323649491616242552574575130960848572861521633937087635035554848336880152946413316167587206127244616953214967558371007776454484059957288862385539234914020432686666941433961962097851993073669417762216490341728344080054016705771458432398583539844841338574311837547274989676776910008293404275647312505382830719418256362713908138138634539088107710096174178400803878110076322543243174595278765944892569200217546288835227170851218756110690515162215764053919794912315530404695166770961831864750559770566914288925059476931010397110662735509321492496347833257149753385956496260613529809771622455144182238735571179834951613998297441987855708628647987070757839093821081694731341886000495333585137955112950194961666662655079274114122855584984712890978405021158251129240960671490167574948170086109859602290516352238723313293151666721280162184847859294780888459445961463201845126753215719058021589289094277660909748650475421359057979817503323888802305122037439403327795535470971724444415767466908596114450507277106529821552399881729778296709489774766585949004894019750917524233775791183120514115635007422800073065617710557086530269084402847286442421033869491995221828718275895574254456285062612316809031340994452948809829086757690288361107629861301894577674669169975626305887297173496944284893878310630151632166750885526682267815152738587486329349434224298280749408591563335797360231836057483973302022899735338616903887692357074366524905143506324652279086330573452428340914490692402395986322649142883605053397660341684191905385222042235752767930862819401237176231397412610396596683661798587349115444625871027918830929468990837029534703105924167594537585580016221025248974783075802200121467543676705236299358623569080407188335176246348137704461537648033844768658751063844756458696584738946895514029149681965727156085095635519736782995977346540075763175655411903328104403876263151618384891580681018247722448505465708905185997371612415371150714102884781681626496277146901417703855915082451489083194309453739830427191566545906787973802226269669446247768352241807800354039339275938634127255561731725590161226802406405667935924885233513954361243852292162608117153537484071311990004134760699528120600750666853589823935628041120259705753013047499813303600093715473281106020524858170953888332238115774768223544149579709904613081355085643240881485087404282289478795103351336381671264268619870738592279937701249259281210883656685435001488122096796206083816978442525391020242573912193854004763121449455750242521370699599732608266267513847671423537381684262336555312647534737852002904057670385254575614530111978285245422291183162328976525009951068049612416500306371636372644894623447406933560037970539690264205673428840625628361206804343774169017435397017181795924648428537011687265312755535020033102248998754480157147830901433110194983373920797717394033832832162130592983656469745125654744413479449447981599557277255137225258654140558703896527525929770763010474444727643880606731107322356552331841933387751185613865350574864894321053825588201766592033966953274376044270748955084042742866176994793130846927939968834403422477295096704206011666834609877211612187268468024899972016127425356478464910733514031711453997834738780032684553918096004605298684032188589598968576739879492095355028053767395302631754112384758430169272310492566891838945932616572408932623194436808288087173319895325886463080511354853240396421273550258854684894420471921337397165995430488947861596080461231005447979226136794595077899058832918244353136070826493831061778595678726584963246102447957956686435723012597384915561816698926795032306445930935148694953932559715918427826346327059203452123086806275570991984449540820162920870722212839748615623728889580016928868266261708794169640051833464963433243274290976270445341762972604498195273122748132064718541582739332442972129882212213014159421885820089309031063568367116424847777995932504934218541278875514870004097881894942861914317568913991612177624593542934293676418655275182926080617652028536797732864121605627276448614092895866762996753997998568784861021928698092317254338690768880708195415848269860596136527963951763471954988989874875958601288996234009142429042221031141084060899439997803811539977843754474947479032604066971530531386151732937253206521301164221131256816178018820992417217199986980094243725352680699945963410315686805631796236271578570279533189395300921104800654067250419285054604103845835027908923430333532920590277277063578771600892850079241297655492984353010080339055456063741784287984916114131193664696599277199986415862359423585652500670737015767208945746513235519802407107136665391045898451892907855893162806833677740441731202757392567335534461915338314072067476531010101073037613811305506618799330054838402862135125681558397393757320203359936062051965016553729042650589376278392596632722656922222591191548093699197183012541502762033118361039515921900042334679412348876224061475511361668584505795689722162651672224870229192226441647131601655889063986397405270384947725096590523347356242739511722476526467161493573538788742797205060813294937230572293290567105922126072536402520289571483088667862469281051455035995934292656645891812321081969520094557593772399709929375950502801635203235642783769727793230786267129490506291412115929130977545420438073220637491618746662583831892331615444599016509646346067113588225979724040976969315976207758563225456052994451682689596339109985116760927240376992922014369688261865420908266814363572872201925732853679054507064642744594891684507159968618475201192290546158402559746404285252614348540253819416121747425398848464794675303094005462324990798779546807065184815026104390952206057962739871479606474365678935661344938802335636720487595197089147352937123449765550879784012116423508659740300841103201242671055327753860926678556736621237126995569291524304266401473228796553793197512079277949215586253876522270272378633718470465338482567674918052488035252864133511782597182730677727365914457046243354206189136822726159884701255204687793629082440385833675266834315151383974249759848377601472705866883919827097162354900419667567113910609551016470514718246506362394938610150019070296839848890448054763750074195490783575920078624445000125518501053984336432149057883646150089341035540544580985829724944287751545901361048861217320293279636084561631264130315719973494406329576808648469283679732465874451222761194956958281473291357894807051054519693044770955681339658527553660028725718647807441265714884521309865140840276737153744582364570155790971278106238493756069752236370624503127010554461615939038905693990815859485140926058667086096735517228718539459107269705989834982422855554913076677483465412593244949284027882852037133102359191359240074923413526811557873678220583398904165074521292763426838684068968078879333751297664878260099109484015427458605823029785711308556755564785247302223929670625252825901780513796535818656082939422361754098020684569662769593784678389903719125002441908388603795222434559614396194991252522918911064636828459583517717859773083899074714978948665868209828357729675960542696095186407857114952020393444184216939192450436989536801795499085723294392886598698029930523495158688460807458297096096146439123456003286775771227435660069001850782566518768412787142288731494467182045850745887847344312661753655141713906291511246368958281226799881658452635296355044286576544556616825792203196985097191808324506438273428553838365761596947842938458935288959354981487092310295446064241313661287309606342987548537176274785184148421925099745103719393557866085773948312941285436036949222781668537183721391273997720630358173973032777813056283421863728571090056207332847677894584437750261583447734671714669324364407955520151333130780142430651205810186707564072997366203668982732871419003420328825898018659337418924589358341243508361073585201647572603647442524273188716462796346566737211998036045158716726607657952413449302915208401910855052600437363478611846905306484343221861673992534369908400723983048434234203865995995543889661992206544451983695011739202725186118197089712582326643075186318400822265433282680527641158635348848848641256377223699096424602891215518997087612285399456991676542856044193335017595114300643877623885758784635246101078754848826466242688326130343194529238430134557823375337911622356132017815708179786776119210042257935048612724718200976705826951661679906521261130038031032606978375935513926108826287684944721058564562305675968131700612670668229966866388445306588729545456802968332249440667516485434619182805099693224609317692174101232693660197300371702166265998348689733214098389545205720498071537996720787451357002061852628951666297445744820042298731562356169560544883885947189169470863903800319777652939135971540554599921669841045048238473796949217514036070301087905590075182484467750170027657226385865356291534674706682259699976949619100483304275606902537546398379007390565936357965165850584968613058661151643214088405454637410713938172262538171385021951249155080823765349486186209519907033824191967630220049532199268087008855498776296045590789483200868783810721577548576781473882247872690465283355001568195779535899911247139024664864595973415999077390001244451650345497576381826918909626430325082801181118959771183478703923739976846130146706748048536079884140998279105103555029848675312666245201383858673422449434242323342712051603478944701171350066694536553206508284222634330987029202381546597384074523598784674539198013745772640146054097797192138304634893238177055986105847393390737717015165423852728370774401925111457871542604555462181033399159169674987533278590746428897581083287807529878844806392083657895086910852116873634807229725348454889076368237577995370924233766260212563477478846668946935902510240262248533981325247253192914702058835530706812645846733311736349987173372783769615546737654610997741140210572822334946536608936582016575320527663134087413359775121949588290600285761746251870919224450113156297234946720066557009419817439357061193729502083694237449326007760464678425529700078123326107807502354434885378472103971949710258702382182499417263899507215187639592819464941102389945279334868561140466411417343554837514441352424311226153929569231768905853101231702939256449801190507738375711409087510050576716145309478582078021996374157258470866890614282461054854495877578980922911034792510611450226025093704162502876318301868399822250640633919206800431128898694213390957787830043221168991173429956797462724733375679425255318279576689267595662734665636861325178283625533538713756338265385964469522977997619777248485571914662851796502986933494730506407870941750843153749062128746683412582219198625839840080369859674613876824454085310641587506714377533902819048945247651705213852702606398994149133820051308306579520174719255989150129788272419890156914622938725229830196591784710931372193276593255505393670574311591529580445264746369374025556800909403028807171890744578576222706838589620613126614090627722700146823313696792272393357831107401596520813353346967827651903114614615887690675998288380303037015350358938130240301508513958415805439017684102745385336800626568772610211086964134766923436659027649364199732982809673014141603520568020288153979943446771987845950577134475958965430862803619542070423369448816424086469502326892039724509953214117147275402510010935371694065086966387590963189239459598429164674527831685862959188345974845153870482043464703678259232752948364020146837755326982174357852020467659281745147060746038031475773488924513804492041143938863511366188867580441663575072917127006456037352137393961012339826778425175305071824405530772079874559656890807474985728567438616997410970223498747645896984686398997717270590265162790684337182896861927766214743343507524270604926135353661101157171496114010926777082309934481939642296721381020203593901861835797698425554157937281888043802273363470820742782545185644928717657793445049924286642819944390891864028875765741167958454854790779168952988876609441113791181928869645013574605263848295530509417830241183049570820546083627987769240154816873155422179474805925108302975290474971941747809162347418384821636914810684971555705524379365440157853554464566386186067999391320350248893116737035014918679291992396197336213727032347436386730668418018862483970973344545909575158874593380337644036630214845035851757615570718731638594537048780995332347631918234210717200705239016053916958158229144379265539052939869188845821162949130390702542649882774983918635136320337390534111254299537389034186146480849504536789769271737659483637527599307546896034686209790632949919354701313572296923644443461741991657997973331173409460806153440721081121079759143083283278955889914845907417805335492882811844840745014001661101122104726830344260897894437662912249929730538619266589181030223890006729883298760909811825035557341446679336539830968901467456537874394232762260013594566351637605714417354725131323863166789441941985040988879410521428077788591544873958376157212794488799091187993881446571710677395883214546589190166608612413007064341821214701480723435832403585052459534330968992847922282487700699608630196350213278222417524532771651673741975506242204798016025013161230242965287982756773327396223564233282714028700353236432757666348263147963418517833079731246752865909998968015615599125206969211464246759429572280672651296359801114137048209032699336359174815904812094988022288011040938580531301644254818470389305647970347333156493931686377374184768309559386674517563597217103931763298897309991424565479242385211508773287794347409037829013757986199532435074447557269250062106970486300033882261172959648598144330393356811274712755147887404461821969472945456674132591116646532117658544062756997919376144271483608923739938742763802037987141725187694033742507182718041990022230249194944981899634521927837368214389421403795517270616466883375677637451464254265831222596478732105171425338819353999729394087900456795966174000607182518346610088426141454445549703043038064335922785367778324841998139583335992676428121904173875482916584061846667972828230810790535344459893019550974502057058971555453257482017798132177302770092174679103693291205231554714705641360617823476897348148736460911045414146694563470318714163835736244725197276816219629451910436287841024662888467160439226027836277134976706658511296441664527763846958504539452523075221916868258140763306246093671561718409565418081317276322706864437919184261261341710269974470147953788127574291773796667989714884673863810986709797423000412989211197492726155565092732301569697620248184138107094842544948848208194162721690935097776964934607994195200124103597643461532983451610892148398505761076367250679955310888185268439258298372421652909739149267357642175088713612711634993381787891309672655057592552652155310172295533042298018018561615595233128089440197491665670615724186863013352509516846294269527274361645350407322078775080751929318129466055869543752864953202289196261750270603072905193056309773899214678991252781978188248233520486835636401986387014601294224895884858954643107609039757790006651845101239444831888751689425100044218651913952628991144125522931020242865297504530296772062286479134597009703069919516099324063790034551197160912448178205288737547917177502428916164621497429544214985146123483572898682767609754975192179899660946544079378366794985135821539955110570711730237497514299190122877363666340221833155459971842028319062194964293675655388429945039373112528180620780379281295815783813122681762052155191208351887374761044119681881859705100775050096641909611605076253624909128521916252810318687964757262619418779334484368314351358471574234965496120227259955817101648931357072133146204074640250880076199566279442996348932097526254725958783487335689814255395204567128661543526674117408212695544873484913171084003471744650820972847971285203689159365031485288983887916868709438626443589430051919019171230651084949305909681268418538532407578896935910650925363405312118312875322795377635241713235581799257764656503110835806231816130555844376820965539146372357832042649826164129288232632042481607768588762126583934831360696129456553144941437328557372685049933331419871801939674015147129174536626482672565356130358204350969872853329268415360434564876163952565725901201195849952128687474678564825740934807108708628703224457430352109264805829637849077174017179021974447114761369805594074100839891367747928888092474932047269169881104565074697819759978648684338026452703330096359377402825289851619063132536283589796657836154842340074267356599757480206604973713992350226358289726465793463138430473857494295593653968142584705488095047795447243635810968737748352245369086618699435530238956099354903204867410960925256102039596880144028275644804763303002297807850998928982016775716707115591947179413118811160997607447246932460423790852151692489083962434401752543411001230769174984724042043478814357702456112125845323684327147062018248587675904807718931240607702533271310746085965821607133061597498479657504318102300763856253052840167423670227910718040668741898487092294490532935800907584639246499450577054132333829100790481165413746336346817067103355164766609408700462089860427692361582451364252857577398710090227892230620564662450906539739755220494569509720287496717834805259038853456796370578811025813667845131123025734869128750197426178215563440360974155845352948396975475645423085629034792279841211936176691287518991537855769588077638578277186983395791642298398525487022242075360518340634943883580091467448602289187677346432211023236068258612973307937204474893217703511184549327585658458750200008745923147708170841541077948944679626953681828547434170694742809958986046882296275545743038335340112994749173132395113388722154081041811174159431143274027821102157271807739269363687135949123627705428389489319058621607467572793712726506127390401024298643983613946130566289025221046908547914523840376675194677933562150465047217117667295571695855030009326965338569286445172393850725525840617061421540291911858298702423433756356473492286445199987837600696075127305713661630645231063831661275696887646882947264172989149989970013726150284260323957838517157993521187558748213512004465128316321307765694409252771032939201066233473166085164983839560329227457015332286285896785624379331068825357018128701257198476909663499996409545879632043422569239795908436684036041153451806404213043194259513439800391878911412371970819010929962443600977915302988639365950674900351238884747425727944996178085233699232326035952183919168300826881013208470691872864792852802571232658493795568250846037689836940579937546031923774085282297488136182959763666282619061303631571401517099674073486807017547341384275972546740896522906220918806095388955600749916947240006683012195692553918411259448011922991364256722899802771170735631479678180813045826183622583386540456667101221755370066833127148168641463382981616825036889995649417534547975345174453628351333309994632941213380884153571069044150215955382119256595412606828906582768901384333007858691988377131057879156767439508885215557502723594006521188942879178353080575627344078831517136970874988916073337182755999109169937722060092931443311657365576396554610402692727689692256593265469728518334835962303343007253380178806917214651463771077661162349293403918574527667363500733499558231852452936232745201710048316993043592857224373070137858500614540868416636576769714959914087501466726827527210529620487061965098531411318961529903242998942197834595011295646876381210278931590433835562386272895313551688182468825311845480332168068716494533572922922967992550523260948718382534267693721583006978569780583326642587404868608089828668746317072340224601210501179895936699416637060175903202737958318771301867923401456081190340901982140283407056836734225055461504661707066130604664858328895995267140444767456116290605360245068318136994731025215841580853852113296264023939272734143790170883076559026418462581673390396424401441458446459663232300989462234361476146860502857232259806505311106182342801220444643434579545055881780210507049169773612113257534380815296688412608938386948368462148884378709873891439884557735858778481409766108440143296161948635728481826060062200005084198683383644887187504546624853140747518301601849030379007660388916214013188663998187302804139855364202133071991769288760447833090696824687657723060799109106136930511484124215497934548698243101375300837788753601339713949464345542366694446282065369560580089984263710333202138854391596976948471189143821637910159938432595077632509062631953757515733473532634363102283995071714326819416769094452106168951768878035395911385232433346672597427938738481518197401354262357889017318441615066016911080040619803768955251752196005232049645709221348397964057737384439934827557410128123448504535327938097311007212656407616096944737574090504164239336546538714582702662505014229620640775419862621233121711725546416697764274218881609382097735044722623923693848907933637740722705730582299958502056569830373905239506000974639112273426543053475541096257108148290050778062985070556552142567889228710162474044931799509207589077988452714769430546836886003702999665621321363170697298023116318992672065485476870451229074792474866135357671160405514735265744432677601611353818788386304763674673697460150410996832376995059459181570566706001071474542077077998646366621946580559122001822537680558830544351812190367642347090005921492989361835891960202469441385711834681339906908860825045090405956979957625412855239245004890020123886085810707678346272568068701905702601540580308317115900984933687235202224950705527198800100089682094797951654925492252160766915666191921883332574042278391683793714983401430523037233229720038645164001051568785705384665196088581353546403323679625164696895730171145578445345365876601347214893019843781532945988452379706203868938647030335158745046693196981883472521938104326592694367583306197286339913460649281627515946566862550457262188494187459446031965452663592515902524565042182978194638259364303445336237454902105137534176060560858088139023894127598116930577004800284713913833490964578666769789698766701287813797763671953684272337018634646648133094834283061728070495665373201183483693441053608691020934575988347329915603360858001934092027188551666019825013363763923755183006950799791909427948185618508030153788827483810078019443334746650961953667802386140622329424551881443975266096457080740016645680841191180549599216564219794860073967355300374084056207360044935548124116693288132834544123721399700087049137902725548397222928792285527306035343187739143357408193714956596892310698939118336215904322985946179946203568464853428101964139175311526881132564321572716114984492911211117443030970618024124480028384375883950007543860200415529396836081439103401925045778511455726585496361084394513957476112922303637948663574318549837557105802214317521680580314993726707905315499531644763455698139093431887867832168259697501965726446506172262467886858859315592651740564287231424311241859380476274362343764031691245662480924004807225822098865147221897334410600442565027210752681232151486271332001628152028469411956861662573268483023401428881791125288953763010474006195656789712081291313826353329396917153107151004109850512646901370213586151613305401053345921485717912039386416292626901763312956881243765980751937528024023130200994515707627921539222717479248210614051549796190210503824953671209235434121346006732346855032010997360304979020656498823837686074303833865740326837115024963102997384589525814100049088069071713149295925585473729698221262407670795367368914852493820514087975382662919401243462610302979068925304366631523195824389614305166066358355436982201059861687688952105798104190729118533232847420768007491546146197070853527361648484087164015473673471041169051523481092180075039713591648713656888782329541082851463139942409856413353593194474189248018992612452931952565290213711849894895370308179923057426600999724075634929027989280387672308174932892002335717927645183094073864499476031254643448132709469261270378486606122732588015701914072993629943277234823276382914910388063399501399873785796024713285601386070527142719337600624608301678734473302102355258207398075756689583032227201077709280478437094991416525294611482294260830778651968856368797748949301535032258746022345797305890644024063995559855691912924951392086831361021619272500028095087000251761807889394368363963294336152397637239464498825655209216336823093194202642680818944085653857519637868785204666545801323668487830877822530490387219903904950379508927784272697563308082834957878402646762449047052340829104480507681198412381945740851636356901596292310487107056597290617676306726456087123765123949831736835241080719312538422528056780582951075204529246295130351044089664760384212678036992552355853161098554045741365151709683592423831842875862482587137278440762890419615221603120953738877107259572755684608469633911146693930855536536187999286279129102388759828824923983236893197092087767996433253279700499568250095216438377541970841488711380491315077937925459895006565704215892002218700739535327772548301746749394718594880085780536680071601950311955244571110181977337647446423109415449034607917002225893262530889681298110935661961387142835687394093776710818624134010484483603203555048294119818325102803595642258240937529578003286160831108366209608471044763276392217271106943272138640439605864797326811964390745398154897151640813862409699752604445256342796214215113022005217932664530900830760816127413524429311155507625608075538732702406188161705973741811015563535071151888709887682630462488800943678819830187094280682053382134930238308400673760785692899044465528341600262953390442609938190882565237612154524790568606846497808469758752216371911950626580619676777604090835548729572890255304126295611029080840442464978259653560747443403911308026160777640218660334359772011549070986729688192732743843954813431137535769161703958666178519781137246152833493119548749624459106048395407192065808159680613793802025335756321183752590035603074404016270496730511369932207551065361590344463150770530914091564112712425179242787275233042598142076210162081553729464418090469283186330406744121702160793495759658468575370334655515015324705072411194246199981969196761501165856026271573991189804181665365198021099864808908298997629559444181673466859037417599026389271089682900010483112623435876777227586900288293603364142206860086320326169091977803213692072289872168588837436219491807123371124530385203953498354571573094017365793761671054606867364005661324514617454688541717619356710232654692751633851390210821841896324999711987658564775202431357350954765835899633076041511821087104303698561418161213235543009151370991205465835632345590099268969607927096931949517013041958808205621877726545175882034809291725252245305715054713411569310968421309245386378558397021660294746880868571018706016211390627948401287221835407347947789300919996126517000231963507984682471144294247514390365535236954599273499211262393676049977685581603219596321410206563274760152678144578691881997806194236039505043930697022234650536633019229308816121699435561079909936934216387270743908916983365710995540868079199802868507428930522124970972890018115663249395242024454829003537253702071408724985034816009028767489136181001524336903910217062728893359417626818126679423753190318828358005583947188108394282173082869883544238185527845026238447366164613608670674872650218602602573464737762833017865965196968233007680490148875996669880964735213661598042467685499188026167274287983618981848659285928006945836294312810857194443339389221963474829513628028434042942176918188492480726078059688554513013335942534090062772170805073107563933556753114084885751337861046334366803781749944232822144478127155910054088148228304555322578518804870042835708418088135300253510841612378449260551454248951596796475036918940548268745936307690496289252598185158632708706644508758711413116593661298207583911934129789602189084651740161435243721287095968159696889508543484527822668254584703914392000699206392281131655178064491792147807110630097944571839638980340754671241983916702733503291001960359473867184800074759141713108839242764718550383678763118291136819625799868571593538632436623699756135384786852245336961316552223458563903671904223831461386915612267290560579284277762654561863306067280453730019516597944632762830309313630839067429048052259031944819432864574635631665816620670105690283298861871105267622937729807795954665735910126149194355456658818426307775145880341020378011462609503497636841319149804542308486027176215239624064740416884717378321202421284689457343660717670402474504664069231681947583725139318272427849573148702107463661436951630238587653189661806199249505810419855903013609202997664104820386448809286714222306121406829653717884196848433092822492334580019328972357304050135462035214265488019134451521697134923835286459620787012341367024969360247528627546076030835431249123613503185280228823254430429740444057796371590318987001821416999558013103426019006951037354208222058600909650970385430465794105690347628813522885943259641562682384297524847870136857618640669771372393172101617221856482461407765375841532591609190963734664775477061300277256210977038252730014907200590742473316331223565893887506163651575421694592143242276972731686889142889883417965983685489165363263540980818591156860080209113216800727342655688909589425853692024744278051671786817551720489049721656290489387433539736975567395587621105552300017910265306519725430074723919144386112635918668917680774085416525884622972853569368836353936327535360570516736535805252647710835776667908465422580498629558321660440107169056088305850924159653955438559918308196785005790665867160715995029282753578385567494740717549662977199994864059276399857600225436852940509700310648885053212612772997768584959941563226692916716201268479564291428159663362605895209418873874823738083439121156326342873547643529737735478415163947155052276600070220082900688902562187094287133919143159956423709042378425358694926343556982940540428727951783035295640032393797444348949708386814768253263971774592695811784675117411599125388535326590203501530060411069147418652564967252380602169484653413457626360922822415573617229564617808543587782986878390649178900122540025014425715597344074996358343005084368982121672297425810335425650929937834430584386829916722391431621958896215181331608384265002764177814712486276283690939140914650603676661618509873126501419694639519857723600620965990582259997429646312873457623282030483307051248466035499538506527575143323464865518716062020212806168336004890623672950692175458523175012329042833680310224594235736272040473980317841332211628598348970693301908678005349439765097041021723682025124195470644800633720652062154818484317844989392752694212563647763091674856096366019715198964834344148013806317269581034607984565026752792859937082387372584276284582017521783310674505038577886517816721866119554633270610955251395807819366314273602628506517716182574065478319476250911371201493785264673178169819632754398762197378878628429793184250551441387525733545543960288773262839415898266596669611908362547822943937346834288367703721342588346165910423369134537928933214376368390165163588849088643609374368048759527016166047434190310027453232870532460993488625171395598771336831796096461356831048673988911339359852038340630179472483450170065811502730253079587761344867742490395301181116864201641938932486971835183481315652734941047492113881111489124182839670647225023413006471859262838021492020284541563840986217428884760211234611847265261054894144938441415393632416659121728896703155588695234441990910492841156614287652526973891038466876146885059575444649395407217852037371050334746956646000308298962890795690753742089460992974929170029467706969396923158875398644697325793238047603025698530355645222071922239178309716932277972796100382955555461705849232419795353293043759659653369333362766377765478669036533058964414237983047949594758696552048571919470914465637262648001139789419199612078005752011655257606386707078146492753543424032419604086142507146497518526274400691343937056376342635669926053792596843765198034925226820307361255363517461804573003124932081321017317408057218985495352996621202119835257377788213738909998069867069936333744081083113913602008696635925989025984580985823018281792419620397044231954175163687667067587276590455793213591024476707243584995655027952414508658973598432361540784175878186237318328128747051084142277831077691334661737538056779492411890176647590222679542262245019839760213263144258225598431765949683220719925984823746432040292822322612727613600404725162392867107403990115109485401218785484007079902091371643322695948736692871869708095344761525415744969077128589455611712993691621632914244322266837249735405322819701805722864443505593561988187381254167430010011416468939552972237739852697199571834362399629031378160564281137956863923227422797437362255904913174921043623084440729155669033755619840609229066252287203749080429860171518818545249036477768649595221108097441939917524434420729262686184289435250127598288833907995461001546529135939855275155188641751762366913552533187217013463048366551077248506006608966038505980519868892984919168416799187142921160068099904805032109367167898575169771991597155903745864559502592412709476842695901344083070681275870677363218852229592046945204211839098244844374068275781033445487223754091557035279480123307685135144215722374501393975499279165569709019689307799794202449128240869082043351356815087348812728434953130170487039745092918748510293345798635331637938414295589291509041249322254544935303873289154886789110119756794835862249099804793536918338633279078846660026644093517015995639281285974338540371153654658514011383017799038156915975624232279381815909446068387632838527173528480384339955222993645628426965132994337904622234585382722787496312948115375399544016412621284966656563347398564092938229097140721410555174071398793171529593285964943691969452253990136307914571741891474863631552794855939409230998770475809477960545201955266814506923932120973296659778163506382345952219217018632253294169365638093925207346036709623183392392425297917336752459015764157015560649172001289310873872925129448550045470552835652790042296049480289533236209117566828819126469134483492274589797755240756554767843779348845577538137984731612918937609871427221707776353046608209666214052138995576583761519261982173297629073886660207392966172106027156409186878482934167165263988210980133450536293790520826595610088601060129030145666618928554377887769491760178045054790507370526384407976861087131932202167661137669333198025616616572378096639801835628325487805010272304678104165331595503538639415317429589938572068780426390819182058197202824328749513386144267233766579316389661589873032757988098308033996273956514213191279499129531437191800963290381510430259838355664753889067343102651675861028428910226894214341005858225817704016284048543427674157415593281071136096671242126733703978733178982135879313720965373831596877915037595697773484423698278851201125610601378527546730578087428416481468744875559577641860762623865465511120830843850399673975185339785662953880294308818631416521773487201088056952428106031929992996078169533042356287108881223156464291831424906028441946709457342634440164953378454635500215474510872883290374689674798788773118814244310706043684517326040709032278358721511720484686265121506419859463818761845043868189627614176211023504902782773364801127810110743215354306875915130168500981167479232585771265411173926955555003590779232633434282588412026663195575799101088581572283765817494284308182861843757030283659597190642511982314029062535099986610222524091755487739513856215284638424534433169808279631451373782238951725030233664672571901112044038536926461407591286903502327111838011312669515489148988160370672722989308538755021785554830642895085129561071069570681997188062994808064951520629102763140619185956140278178134342002724666557098209025588649418469117831258023165541833529184779749788994918288515629291094201198081135050419467796241085496204448545719226117582607634966812806527860718488766134343982173361646672411357231929935954189459217056794528683131672888301328336658850219593944608491868890893120627149364726562081088537444090734893482115485417836671121887961977127639983963373012415466117027517430165724649438117610417301702347217012770514919683703422904223615470739333417052930862581660260355249236564083716394936693801868610446900583371435802352039864328967515711307956287388725162414125233552906385243975632849250087754151818329384627615137593852600505463551578823132746129757091764144309505629173404700244827613086391765758167833503115354888683031854733886093534810036734373317865974280278586023884192730351561827534316664099701528976160850228598057983937569100211147839138960874822009353956560068537161328501185132831412508465249711941126246725396034841941140197269204490302893504606916178434098635972350198688413770746037270379319812989747215108071923212594986960555579629110352906667745457679513151118044643576596443968846389291625662240306115706295923612935915306479734998323424919816408336877225501143819840003325623102645236772603116492804974903666071108406417945841730090710231500315806391102592850784875641303545462301387177739299395891410367038564729840486549575089410645835092041095157262408403922072160640153137206723071540862444769204459507935466469812678643392686777435737723157349458653149049003236840849388114271093478052894347212872638771030025910320920442007451855547277783826784852003377970042211775419821521601692667354067091180283600762700826939644183409152986402130307127476362129919435748307985685053985514162694507497427280303362081084783836111898619584774450932629398428036356552974716348076785158510118729248163371045381881340696150587354184773814579542173135651233494390162256285391170390131310165929865364700162146179934115561221661478649867074595279853989677162499182961813517296920211379271073880022066503460378921234933902693322740275807416258081794692870445257138960158513450830897145780745040026251505885367895604308959139701038917496477134579126404339313937376555977774152746253313249847639247070741556106520635129536853343224285635818139101169277878279555971512210013113944914538305083293591614583792410873263099084557051666415596879796143519679954507656255713721711573422299410578720004190863475910331906995208085880625268331251226028670170732256288482432576211015693033207948664239948797324755663656319377426362913993762896017226845199179526383601807634187132085469006408149877539501005900772001799555409051623056325341783675249593550049637710755393187421475816388690653968312324163814389885048498742080614401103969976356861343781544230705703752002707721705127897923420637617344242670913406958461533777811336585223956799975855829145514067668227400553271091424650194745012807362207843653185641908235517864588182198922667820292726649490903245597801347574400614162282767791855352797215098694231816025994251025409695785704597521658659168535584088487601761831641623101706333199076541097059405915746913059134570605201139144646698028703620156859925281843402620876269986384102406235161345988110427077549836276552844135459534744621023614094903547080865907669006238075545771462687973575077885573693503435383006066120795155538479769896541508495844386461800887415497795873071679191265190382795982267671904225852346916814115264409887097786854074090462029786834748647517120305600032095111707165921409319097218166672422605757317950609645630255662493262230304159387474078341200100264489789182345741376273833728505075642462392170265935862515819519074376535485540816145029512873552477861697278997441814766925011259683702417616812823861153237421557373883272476480578273368758207907068752017775760432868432443655597774377559732734838939133116805678608006247555242412177641569132290741807684240694981906063790133880629020782063486003924048610446400142260957694859241213172525907993603219947777106812986187799647833909057006222596051253945123233444382685263627637453710561762071403746570323643311829887580901160891044054864652670411973871493712718613727893876959115271334043992030568365654184319878780643783650842872504109125174295854233068915708663680149030593025019578165918761767475304260182220157117205260771052632536049248702601959020529992742254637785000089117657926597750394935278069908124151986080897212778716815432141369345493019932782566103636155582185632104621385383774299758945834823053457413401476746503419314178572366473184878309846421448986336070892616728149278126909354949341128564861583207749841060310072157999327812544068984121916554469129588124757670323979766863453861172142493791712286274016019249397133814048058686336042324887909310686653573933033928943025429129084578950679900768443419373852189532911079212830057187492661330094372240417082048516939277341194093326588317747855271700507936506765963899708905637206107445829219756100966522066425811718062485491090191442964987428592918753580936235085567675764809859809248824756886212484449080104548254827135653070712627091692986206101650517606231736109487313541182986946010245635021426885136546266904510579952287650603708801329493035749392136733012829971314087325623507614403798555676462357101200878289485117938725654466299830122000961978255728564352022690551372173482957902545722913772859946680475764712226267145628918537799745284948134863105706550543073141134025825477613825100455998810988122216419512158713553284321647212573611591656436468542283338130723490263030273676007232143023738405467076081481026930943023572518315099076138327298269332224150796173377308970401569846367383522340539867332557371592269058130475343420295266179400643318648193817764437465889285844656593570386296168858398057565163319214553557586706030777140589317376280206610458526806030148854494115376032363203384952159216919497748353470973279795748045798017195557082409523707587171167911753594540101750009510962148501180091074248045349058182428474915398117521392077134682019661015134893196767927673356781165997333194717097062109453745203998564474382393075013425489412729166811957057865862706467724223918979900704028790702134171633222232870892013269268595932102991850954012797074204080964200266482659930386484875178712592288344495114651597907743731211804579979138722651340788365703411382071167384593943390759015996698272703542653130429560223770215851987198265256704183489040087401955031908219294060882961570366178307872645932004688192653594537400372533089627945924709468745758090247493427072056655807739215737491045113711974058101528353865471731581334836516697177048654970620996635768589475784625158556643430725465341788589292050197426832328062250691807680479233088302058610151481448378524972329531892790230962358963883227421522052490512396799301385414276042485906282647330485835048316989505917792994275411180045367243187012051909088878384638763804282054315355131580840917382129676656624970582295178972752940695164497884203120462150830777384094649780908007021121667383368422833296365455833611928087521000839823610875546898738987988424004491892430590475636319482075229725530016299177535237239324997972957259037788089282975028297884390360227509802770729000231009228751054638466681924780735202136710995388586421700177846339832167375218405110422084472943985989273372429921871178678985927560870738029300902899341813564716992213919217526478613043587632063339736473811868197042458920174277724875098212387487576982173359892746311291504421360165378434112330754817353533970931285003831286252286028504232791781452466830814257711902681537752238847913412208713791421822621370657456263559725365682377467206155388741150736762888378586568725697346188099511989807828281196158872970121309357762442341523940483627396492894579988119315133633515322444803037623291153795237208664732446651836539195505037466681772707502973972284639827519805713684934468855861287046687504797103410801061982386653256556533228752753230079681797991758699748442904764548584500977748260441528458701769409819226480532209907739473039826408539091079101951696619289091744182975547092407484714410878242304242670109376954168437205583062313969333990829588803612719811718431547567152002894195010718715877675863916020266393685158659322599602478876291593287806438847796320704491197261177754647570552237376876558091294214271248348499777911900294668545273297362016361323270964626786904952252945859380395228710337122667561830897650985977186937074710180736419010624397982186692994565107002961302837731712792486450067298110931110576258304116862573558048845013597738065529867425219283658152611982267574374010930450329461342714949633044157623129077791294978256401503552368778683263867567204172542328227907133730348920402428030930232990072462781643467088034197228828053310533419270068309222322071341285629987507129041490454347917529196674132627043525879819109013083762444048092396769297731456831391032870608410735995529341364338373141424129998453316755923501871188472758825801241174117891690329580883569776058499084356247767968210439242940546017085529845860643651536824483493473700251574085090549304255781953500427028434009515448614766357187045697031056511558536370824905250241478376883068870397604999001707489016595223751947700356280737589595000448096405655679653332833506729487004293024153064569604575436604641638821892107854374456049667679118647051487152133392783765299140581356512452995121374237346462579365450433127659615896062455672482548689084765154489206801148238844206119792148946252818859418169065240811646048877635383326550696126960045226439075973971020526150503595259676946619217258117585584387961643379340218017495917444559676858926968562011107991955909681480800120402075091554401925827259276745077210414718015845560739385983154261443734737829942750406127435773668862464643018217479335345524511864656899378605268559659398139528303152034902900979900275566636563131601459638302391218608473265211365554387648890897340583453946064360806935138122057490475930495538962943278706705338470020872982667690001361611697620493345365633119367424830035699394269753600361750448663440159083732323785151256924152840301451567504818232053295164946159491448971383310124613855494216439350789301941252532686598688040537711736756863668798664957814210621397961371488401940021209227796439358953242123278177005251160887045011542125040465149674420656128258572508195449850683783353075791173096902486705718091840690492349235867516013295226445691413764164233816269293296850305182347207899644940132705038631302619867907710838695838202386495560156328496549043694277271717199642918093178276310436478850759477245414696107385606639586050571264506682690327543305724498282184553061352894712982341985333214900455240924304223750458153458156068047237623707578238059302932514786221989325539024769112768270730028445552687303365292593088519706699356003810117345255071185360608411106674139368645540886464401163288006849305272631271996749373514540000511832686025847640103247813095414313217344889844177545360562760289666296733568794715181191326444977087298118992451950946750700926848858288686797454087626039208777381101190196858588122019925078447535078509666568355560169752706737491427805910767238323011584052389970909095060272208015623287333357342788697501594950064232206074806111653762698216162455120055188459203795316150097596623476867058842142375182661826677373052502951707910708846106740772887342084309923919120453161909540879603880711832285151659703880720466897955525065152373706197134712315478164386015495500907209955139177778882294000924498447949155384718054087271161012675079407316728126525348201964478094264461562541720703606571762562421918725007866543386836393408877750473984635732678328257801202712882169610794075256148697522554356370932051176544442455492327624274314371700663445480860674569595931590341202279314611688120558322894389611762754323213902613509555436833999135018615552563633306994459218319178051771356645303813298446419521756725081217542009234704103643124767304886168818891643203965294523451692784751559834478364225775252115108529263425946999704524075812690525136481747876644753679681330960131807495940787433965008801955533892930985241554412794903366586334969385720226014884428383108955915143142531037204085690420304157949881634851086974927126330291575877954037345821228710470473351607404485143592256424463681741866081793381787658415179814891183841511488241719986687167573527004095833456619366897148977064302621901356055638477697352831984637483923986700085364364503979281805075693388259055228729334113642320306342007942417786570069506737791665834722382803890762438813220666380424709008312265205641185127402375559043757141702877026647274162624008621225629162585409225754717347100305472259832001406566686832237282855051965917907525714503610746611480355612882479062125115868153455635680832677046690323990943001241605957556214345844232101320145716842916170908380416430902730204452273239258520415979326427451850012863519060644860680071892044279105623740158822307350487432147228434517445452723799774916268354367625660295646969161639447647145217617198722024264821274881388070099339655002396385290812770741057619563833671087873553386872744815916593737227596066558791019666663453527146657315758851358697087320217542916080356631031200525782387499044415472428157371607782191220081419934278267486560308178740557560159384936658125637887124639092109280148152764204229234074120422897922239346334619771218124186336836752254082637819039051079742973160368603665851532639150334709370391543106892498580147565081865597940605511499789136259397556155322594970657140315276783569243270897734832448370210068387821311125025296937868400193972254213910578834972259513161898563548057788755982803968874463482633685579065414862359637755685091056585841311304283277258833590363773891099541402879559466981795517278837425942444785274169283952844624832867888457768296778938686612567322201572785592168579015201789824837205193994522623711735216539719149450430953482942916396969045741303784719345303259140392422576891845467404593843419120797020122877105365527121992469685309803284612261297146597407000442736575069022774967714050496891231801109141784369250655923443854809278623793108839104161152666321014232266494710307007564203819960659075697705486240900109492959865724993392977922468088266408992994702848121280803678374237926447489788924124330748677199060411262983389600886683474295067577530290883818268051001448422891827584796406070976489783999992195033360550028665111677233752147650355085703450451489446724325648283310428458571440765290658820953258190817075752425814880238267068957410231914142833933220150972722465092860580741624033300386670047580761864230126152932263700804907125256368901122485276973288836732058295889745141151656924212627416072313753717547323928551276429113401765860542012883131467254392858625974833925108549950653984054936112740738026875606651116840742793471174491411079571599041753856680397301585456156345031405105110175886777411603698162267186147051585183779902545400972517030439467410776959372262585131152033191705529863175272543293062379639552535608625137475649751373999529180804077173174549368723630924029171664892665772211814015629275861375112692620210756030465050643120651892090013068782903428633420282644954688722354139824490299788041040815072262382441593961242417368431261674094552501863972617950135726252998521975017610716511435032111311096342450079755797895837013523700083843094905629743393764524040908168888610931237656948579236609666616748434503792849772336663908214393848148724233893777203916833059373660094023064808272169345769182064827633729644353726599521362196986883646626712592906195674715518165658923933720859065915021042030693967429039171399740157444011875589447911299760357833529904268152153630231664957196239087023883571228996158396686678864077372003531524844089724616666976666933119406104632248796091102178627310996406409965257002618939420996939552498205575815203084989299181324206782327026169065514734889197783240443035597243451715300486277062563826389248007643691047426121549117376857226615218881630089462886920510884195821295694323864246014411328577013522199857828282556905257107970186918309570190355488320337304490033502961894760723525987968794085881175013278863243125001364132105833647795900202179598223234859564203948669081988539218380819270435577630826887535756664559483509783408683483216289054077152319392544275566613960089289112448352448235968687470553455359987686875315072656529784559429989068665568230362472767783809452201394268024893858213509399813220468564608420726388639373384086410813618965844162679122562532297683792222335329374053395793357656503937511864007858999518289345546564282192999822133058363047725219843007537907592944348021509272076632272711799599948825439029979578936979563230939424422977006972602833987907044605913401223183143625052036536805311160393728728208173272385072108702220313906571731247036813312670684130675135926660976969558050292734106928199494724951374560077058972081317572871531483697677863276315599957137589868692630587402890209938329542801742319139549401572902290280571301189182719480013839714147353708648958193907088801422478359276341573670862217097955264367277790015347364566152025064851213841788694443714697328910130157495656528326227604159194006083878315629912057161701694334036588289228244997409023520615502791736159068995549625412552224588059439869842953776332702860191452017272919755094707287728645848098168235263277336678586411725086844840878595871182592254715732041012438116159837248282961050577127827173757407072778966774087585617001834228676998699828760242800562710316851539392591557369656938985492810316821232144188269312420271222793381491885751355830072367884250124050782929939008461650857943882936123422923552223553517987368442889374708329595989458658529972102228548707481467432485500978800502900680967166035833204588985303582777779834811605613440142241411071842112771637656689700062179844202487255828689855876079218836151078174182160720781614711011078909489774852082014531242696505139399581255923685020320208448227948321858944726907596944886649957602278940250217804531637629621246319176624889530039222501262261919220536064202003233882771107621905606139263315933496557620371933991287291172352228545899327559966814666157701147871496413909108065123333833844696033376474884758098347455381508018254411236317024806205662456787353417054687292600922259053831342862997921866726963929989582278209972457480687194191240141762314143969692219856481034099475320950541962462886505964105624368245150218447897687690104379417521768827349155455836627140849338454403362959972605616640012338890654177621898922668301474813005477734280585736361215708279138593954280767219269325344095973498771206939755764643995651346149372378765760077404100855828765841092976027559227124189792591299516354681602588298838774180755350668614173099608919717210043619830044668652418073189650214274411269815907683466422260524295823369441043616525534513785468724445074022677123838335988468805077332729806825762152630420684063350977282412464926662911517922566362471614066812045593471543559840217140384260449794357823993456248751601246498874379805298819003572716694095520280027912799748298625576935846822222382399312136170970579162993397776031978923353036730067294789635359296256712711386612393893024522494534168980240151871557991714809440730279581144999438808707481708283387985975397835596118039653386298148725651957506318106981719487643480208013794154167094281261487803317175960245986468087146843457179797598043114653264961643258617675601645467239557492461704870869698654566083137004029736656918367211424037852587945679727011831114862956358881143834062392224086094318782604368204778572257574760227052210427865408653038071393802287126415242744385042629891736409814815250174738888936377843507474200396895384504233320388542022004118484768910783588091308019891724751356651275020647418914656121351849966358143347279200638205273895106531361293547167522684854115377244801326532720553271758157781836696710253212358658709810024455740908894209062043466115645130116953619159036446892759723440691383529007936420777661836782469986317777164394044353658129680856851677235875212257374431645121263494982321367461055399307186501285457549645271636032469504021799589304602829516878072785418507629608441347892793567907283532598315538731120889364813309496197529191193123812809847356601219297289903405529901846239798784516363210449364331956628931031270093698777339435938661498543671647504435643564714872777218381327071126978339127042863663487228060200624780310041643505914628616458105696304083286828270001103424334676892395174976946536671559849716929857379837286582894647629534819080748583491549230402738144980861121901929840407174523888219578097050959163214568505637488796064520534197202397175186794794744506437151866722376585602123979502769026511460214902759345350431422397649687494015535669954879548509845546192435753659640798454927609417696006331367755756107938842345490047373784091086416962651033441788893089434169305696558720380670901487858103050734017748547908285580468963424379408041452116827578242463799832613950365583859393356358618070183588555523577157662906509006163564221802381758113084092406439740032797117506265680452408884315076566728933038782322725932774049573353495635368921877421536807003591036306970366815275937400756464001341969675211249630059617080072711091888383730886426374411059281249604052880377122919523740985308214167856237376986715164508058794984674602056719566759924571593985824893156715839905646320818197722254408285634814819769270407333189563669806665762032495874413527076172411807008853469165616172770082157630381759234792591071363086243267281100999133336880772827513168411526790258943694084104987795822728774644454961488705922722859592545443685650455043016785145230578492178728708374982156742931873501778863201576165961144166979956247275269850783309228958152218182114635516970772034335268323452382679681522112275245562334374855686501567537906510602704044447328780762441021586279227562263561666491613853816027732350761848636404023949023157854839192022367471764313071228563863786673199363257873787852519630094484318583188081266454310823407939546023644929476773271102108183294502881145207216804561525179874221342481744516273456981998390008755196140183135288225465324966347303459734646158025109300895017484375818444369755460692915957065834252435153181226163249029726296307584248116041412158640806041243016154389434709872771987834056145532945155240129276163182773529308646055257550783478329447020374802778484368254277556179627190811749408019218045181138619225339132510322139988127196713766362954392727755908639274198891048740017479060977227539229958564017724716634311562077852423263956837939190394438624790126899257400355225969512561805616693720970861154869574664958533087080021689323970072601176736926660895344916466171770936050841624271132196543327403091030804614767144272040742546698871213258021122920856121020519257746568260917181267733770961992420378006167145949980374342536063948833638789664128246179880108313018186541724869082563136232826825476077320068930761576573681869336604629176105624521147619653544296701019479322730942889302713829528110007911542853590455582656993407171254435032027150420478758906085677751330170380481930467571821727513960592852475779718764403701864690855649810059466408801207930953626387775854265373786222378172503353036216624605910063116617552351618867243864130657011999334402013084999924922269371923177219641350011215235846042660198898806800353558879048991046258253129447585188444571615233189625641481798741166602154466275154934304052864916271775381030830894731362563637243848554623046310858362617194457761044186789046624724032643603104967294366240426618993170674763496168818179617077490413864830815745616486990613547506993916126396603673219473653699415065674972657989361934894768057359539897903314484155154531033199430344140115239175986610965080933761276845232224623393731989728025590145886952803216926803569390844133760834887415161663012236858016555458902101761945719118567039517989732729237172769542303163716821689848661046047906397338267647397651618978711380695634916057724209498853373551868093009294575079750655359865767833892998360025465269598226119495760666146355144689702206071003702320001719033375650593830240601196201149542686706468567838838538328927206714374164882377362031354607208119364528577007691657587071070678261759099254212139297596210141587340566063098499188834722930391279847411449764736252811924135371755928934352627503005759796374711951165978585067264751067251277459583609871153289708856165505972564400749190244210037877118607297850343236717897041341929524330438527176218616259060236965633050818230651476398578590771007572328273555233196795781039715110101354934073500516091072595515371268524361807330456296828406219785752262978354329558228176521879538435356746896156914981351200315838752438723043665550637976246591702947079312010949550541717802531060504320593530703134125965531874928096605517152682533083891214381986064896465725019617392568550682971384858246882239191138819122897301319667562139210605960576263846512856445050193503754046317077710626828191306162188133964891868506133893834572227125878126872142905636149914448625237013724264891724121113596826288760100000133677148446180588078255092525073841385293547212192967736130084373965795783873977408975285731255537695878280148292266239249544331145478569658670309409387750355148418373022323693470138943182882669580644073746709560768267086184912853784815535919524675553998916553036046424423076841943877282021310190587392462773320886289400345861716051260749273217025476560836242381452190331698790803532969095678793027816430899567246150616309913735712991988029440092697660244592688271136529579746452822129990802558202207516377132011345484149833588696882377110755386889293116149455390595832983578910511227347095015044790640368773331009123656320834749290805668903058602059479702784190108282094407740361900935520277366330923131920502162545799808546786141111063835556550110334702546888583374643063792162282748954717723344323990829341060349844279853045671934165204201074708151384388207636652691513104156940157254455893666630419984223545070706217381771514328125056932762117995902749857261099676164190055824322778929979653995814572151570379401378035783315183310221618224587632111255805241239299290494756196257020937436337253013965685944798226375765284088289189608160262695582533082140234044040575051735393400204777238252493279175727020804561607415018353129374496198061771558036080354032758540380410485781918551678884635995953868993963719572644508797677598224071926390196605476289257027578483483131885944380981598999196656561735279318481494237213344344258785014389292668068077341898907923009928171997570785865351297852765267861816300603371076053495463186586543463100408279814528345083388668144841530917812727992862043584037801260214692578231024108127183079941791583768092322210073594316250720498207023330408738110034505110517633173714737452650359191870982463393064211819930007806089185076102268012223571708544364749739457041787311841316693556485619164377985098120803883649705568136884313762867323315006186308805063543687208987938330942655933508719151603350364846673940330334054655067608610591996807153933197119944060506071682306252722772813777230188321196870838838821655591449030333719090873895454763549501045553187313718294203045402237444083037191331442552851135556988164532075678125533822035178862054808756072508585070715651834288866899235722190300381485867923083586849146242719457623395921520260497120006568159362858994625056650185039129156532195816188661933377651870287815940378377598845698378146338211609620355288433831241867241618811656542998096781722878884186272567759877725166980270675405139632852370391265273698541936235180095155618135223618308128646782173396553813422005226823683363610647376215745186052500873367599605085865205160339872028686206661437249118084314763737335799983329341645701808683853743902440809211017156072087964184867237739911776218292711573056731256013625662543600173683727629985683934649628395854664406400975846840095719273717540603236150311231669690436871603009242117739448091513013449410837782488002883991272946910194635263615037752770236577770967646614525692718433716551094272413120710910164213131917866941114172595358335522696471937749663729990966998633775954889278696620330496685044951393492852932686695036302740407124470543890452417779180549451015221283258129000049173135490198933498417987122974777108521012275119017678359413467456146388433340527782198543142028319057063929937770152238831702918432473127428481961723658129631698158502012120658529457080271182678642165221020227982596804112066921385250045817928022623376065292491843407209909961175821240081723621541191081119882620201878702757768385749105830404216935908112627821051364564972058525701700485119172844807668579524640590380478498981544680965421561837665710281270303500562511462765806858477770929420052791113190008502087677176665566911684221714654960078504707332547638435765069367088554397200292546621661794025436150207768646383505049423509104984834852571784005678816445558258099716424083338784544937438954728063696411936207156115870046313918259239458319320043006270265004254177263173575849979445078564817859970263677333186851532096743836001635385239524219830486026595140197892746853868375405257911291245747274841632394539134582733981154783961270061262761292746764976199904255799442928118660614411401739469851068978223149241005004857289042543567842079552200368797599708981018602193057058891221100262085599386072302940963360671972084736976298983056979506759169998376736352473747569684750723289836485726320959025008072905359128604608758184882294618879608675204907530950942525279845560854754657902688701838066763612475478398924662909718501757133290255006139893863221450258080891304698037707306492696760839992128834877365503478888927623689402772051271943868419727816841336613859573488991055453170953960420031602115798420319314911015831196449680211145196076880749072384515615041639597909153774325786947932675415869676250878616228343464021385187795879686103482756973917431460084867599326204635721037285389036329668887403280455993576799125972857264279352995526804517528588556366009354143153633610999845815446313284663128491723789053528358025752473879449948422714361664747890879572618632763929763915779555204892557157547523941986219158293588322517618418296650351208554555419088910486955720613834030801054425550016631647265148824467734605440505859557255948802210747086010115676389784423053105973266671861914431096316190274292084946292985474540804464559141079496766265752880207569315772979809595168470698278079564963845894544786861572832125217398474570034025978085629593924826885344989091383108522197902896417745579931328880899350875489906053394228538225889295421432164510682793339467438609848052102103954337177331689444128813434126452439435057334907466985289467005344290282774614518120423409406702075068617948466270083228012381725090364414316553847668306560713682829660420392983065516542729481572346026456031432858844331403625409712582833636918349109816857297038450564883147646157867778908408978198659900383734624394342167929406390893116560142346840346550725572627764724642927702932595566459205303626883247489859135731008396271750614188854298882047974910809915586484666988829008392277497215873949531043216008485631681154046842921407843221177375159092362119279114097616931100809179860845269407356868757171444745917141473095714430200853277496909532765465365152173485908119583425301496320689658627127236407610038497029042570579381416223968521724556379594835693125071659663783436634018026089055176971369308481192489823455435888282491265977684305823511410134637188969450598106252360122121997546387809828783226604757570470611564386691993081731146584077183397681655853132257130060921234615989006018073094961270542800192723208130803224348216791353479574761197359064507702494890718540816816289175551722933794574777366422325852408047981413359638443505485225196372355309000001922930903946872857866422755967448389636751083058389710342177289792003243160050013411353833687827099954842782540915623490965874365483856900333715748321583991468477306201168188120296111611083427923662784012076609511361692400575537479099307935489499552062303789483194810736562623803782304517399239823710893868280623981506407088345131649904434925808956232471913939133181965488066670300162189821753367850489423927915858483756040242254626284498615145546139936810019840105153138551515611809779976963746653087742344616020074596425290467299152593738656186320003803612124503960517452149481256771659225305906620034798437606782699625332542823638339455053233807283165066388196189101266769064737463651038752996997617526028891796016379786739641808628299503327207475566551037331430230991542945150557506544452190908596430255088991822265991115755740154142903024999274007964762826592788532561644949315238800312082002261454170698102638722406983199480085377596249036600952782234632779723071430320020875000410409487217154060343831986727717531050245950047335599045716928551990210589143027432150265795412330109332046510310210128118554816115029299632944455319825580115848307050733099639075431110771901128360864092985459060025221969388237960602710780885199068390322886151515704383916108880637752119892690295683924748819788311018733632097912134111677585894577500058267821802072436778767137562827203478648426054400579519468355083650445088338573582808227918029862044199553345860990839618744850621478102813912832206467422514727922800591186133653658991044282375225997606070536441725574695039497286051382948719634787903444934479310459418064662169027477442548483910474539469397477616743572192647962787966481012116940629683117800488045409814835280345825360758254368087909710734781951830548615274996978672828624036487624019470221617876318696170734050900534896453053050910260785952463645045794304727286190882600677692969951719146656150777403751383188337027768343280167923170701941075854383262577835067839557699795432233768674251275371538802879317782195214699393216681598364878114267459154298183560068931631001822925670147770744250452450366533066876135441598600235199491170888449367828162502337741695410544971784327430211413047810821334372558210696590952874217814168533058969774347587673503939136801525291560516070648642960099024399966112351767999870160726563849515216845477894589872067108101405113904591585119910750615529454974401384548254412855398462883510061608739348876610954555635426259114568178586937038361556084597603791198679338436592842865775145319553069830952487986806674796652226484847817451917393098168863452030356303699870355193179209580378242511088050631994931381176006866617955461496685794253984948858111566316194275456957792540484990852738974748361451307608804642978773795008571247362234606437443454273596469197946943835774937788605269029178089705389525812502026285867877813838251228058986858012411262447319369202190141851540083470131778139063320731268032461666749685668233255170227628583027543932391217056651749373337379283625618508960874274115483194951343228122659378716920439104708492116500623939534754828919511571389489611814169615303749605567363871411023612239475614226426022421720522579649361763267778649064040809661259432756127887315013542798100805632140067551745279120066983534649760814971296190257939959924462021855360699778960343295632835454777837676561014324243462535491670552067200185995458215835376707921595930548279239681917417398206045769382382632165056860252617924909698308100975744209426381761910389620922340369100173202515975681643537943905003871176750892926581397976434205669844157062000983599436218546453365788343742490344189000292380415100697363592778696211343057504067998371667323282195663488058496884544248657904534600883123331406383994989756078667170188243363870015538838541672367835105646382948891655828462089440130339314008602462589982915788400486170110849182714002748459687627214367730841385777500722399432053970657741809941530532605410443500474600509474548728594582801632687530216048064350301011376981219223179163862716826897172466000519649845699274368060108939599151131561670316435375473734682845872345655540928544052191604873961046276534212931532016084241785781989418630161156384716098705589125623355389592511541871449084811433807581062286459733953405088452468822930745307863643306246297626058961466968198704488381208856120771621968435438960809483650481448922736344525974685661708408728683516555740162269385724432210281337984016265937182208923575050324542088661782628896191746699542469103617430584422147005463957559743584125416233580970908043609153868969565819082056364052951373338172662650779864561948681010725007123256043523176489927610696198151788481929425462260106506544794753812611419493066940861810288533418671309765329096055160574908068976315615891105432798906583411665617537713653443409747552219420189840314022161046587304298732642028426727811581140971316152850894557040000211783332922696185638371546290193810246437599066162306242039977400318988161300824137498908977219484950868801053496544484285341558264161294813813181885140858846566054496742730764757711355162075550806773737709036527585505647783841989601580225828070716463281118450992655262076748185323742089280544103651000540809349248129821469038513492885676134520840780590507431263769324178287270208378241123569359138963955115345269549947022607357276795189828087578819082735419785054656089520866305774869238106541395410148488264291893330062665714142634114031894972477521573983058490378943868487313712885180365570907642786588431796198969148611256313434899817292973948139860813348545801429168893666959799777794898234261176510442145598048631497624021039676466092116156378907829949576127261777799984168005542704530287807946689294877055652234563645809787214218535228671273459522433740533829687986106696307046722217765202670896710299482321960240575592962396132128721521782148846472065143977447499920269330753391480088466399422836123644723345032800002032461423863031221703913261690754726615238143894135075225402880709704406016766068841970026953885672903168587371596033763233927634414457905438536659584658386611437387915157358782283879926210992131114578474386953534201649657851373533435075055803374832048181834827631894752527339978216605679862845877335475906550985055785214723254916818398662041048202658736291501939580010888716323367422478829863687851676747998995810685724857553778255355306247601107197835102650220486529791607134922291564128759059202121828926661663116706900414552078003822906393248348296727906499828422566342975107566935204358079288679187951660301264698995822560375055826323894976481700167048070606462830238616601898843151849395097412821326226808425326746598622935411169834959794563661540305839706702023442164307179477512786046388031413507423323775089170915257520621225798581362818465011173928682692784497625994776195415680621898424807182891425517066263395530286578193748099424818986385698810091624717574137898206135131194224991690749196498613945103639996506011664435343137932139330991094470115993799186938017752211441987628331591242272214264931747651783455436938187083520562976841306529319956912531624408176681611548359074440216555970473107811349588103859699065923928105920611476680897675688854934581086188215607818763095408493796543635145232047620320276299378729069966561906073257413777512949429250392159558129759629955279912189678845865075147057032340419818634196554574505156850384839124084570840353424513940990081859311070884181551141379849196036518400269000216517508284263335746310483410315571294209468017875711869141518980406079644745266188184496580153381076499655180482208705816470023896667998710693728702204160555060682086271056315012519924530013269737429676260275837165177821525210214283564474673404177265437904136410569146841143529182193547420740949015517846673285725194332539722065061721458920614767870135670326601020176585419975830065754700427800817740729493934871983747517479623536556881244320934370131297659509992167127470863251441447921159627502830127547448634301578160498086270456014445883478009411294829683517589933049728059148182501867268785208085725863806574070012492705299425206929627214913196178624194117256210418136786562087329241141773220565875225718700565104232991826639513318118002167624292354113694829207712667650289340472836201555411858703234967117871102218558711401919718279069281538612228076023753389236257684668663258184114565991054824989877134650919829604940470729360472902003360490007752949809272963453062598648436869777834174648687682222618075710286422808498264849019746591664240476525371967095370276343128686266128863109582571312714525474262567751331630748601677010064751737668052152470994875549867587940209201412387783744420449083334901553991309235335192332271874638212365159351761318247910140721448000671777160917625824146912575251036414863844446867195659802796314621361930987922740395735479710038301635373109967345980259131860990959470773583773247153114938835695220497581834284231060660734032364165113903400583943404059884733699354897629825751449135985676187768649111794307846782384936345284847283852713605910394759671222075967551443715370385993113957808442639479560910636626123084177672350582841115278135085896923163290372255125745012281592528965303496907477664140244443646840868372454237604189959984839503595247078094079570041100163555333700011576404735718874951341105742970539512868259542595574641536637589702071775931166055756899623807132630439931402381581877997082695699735830651145019574986530217868611508905930245923242808390182283980827920826162733651787515221562327358423424827314066896614753854553843418340859741251357335326329059461289379342212400456744309312141684055785124442577586351077137510839172425296118042666457301430056948076221055927922187552887243955045844973778558759462535607537499074600704506673807540469568124317896867613930661141666688492898841039655094303208817911721069125597275288547738945545785330679270311985234846215883484444612471210838731633383140374982208361066856680496964531237932953937692068461450048652023952167322146352873930862502555870988560951920531675804099640769927720338513600315835063987908522354933177636779870223789471077942996034771024398997861490029176111324413713292635644520951685194036959519884248011186730816816292285894820357378190571269509824495589432214478227427693387410673544281921970062275093940113499507102492778825141519166789725646283540378662566836801392092937232395624857743734406462026029705770323187160858277034811240307997598509973041309172599831100850182217859819421008684492406746149209214455743039213007231128340868822536298817707094534602303275846454933922731766458023315721350018910882437239032951319251489896494142840412476387192638151113531445140792296832372454162632784208168280014154703742084881593934305015386867490302596950018226618506225518339868373023054243267711722443574606331319145837932392695616592433077506028608560559604925442061167744204917106492777759670332919579051085038338497098038668928279942105743972025879529353644072463931362592925628657592507097274919292357999965098775729840601271819153790838143204676644650047870752900022328833666984207488846141600505744391096673016658657911659762561248924758050617071183869202832023845172419751861946635095717879515249306079898583050456249316154230051816735472425439469225159985096634896728312463779761839959554568032904178855227866864139490803783302864377024541568966690716925836952007951019504447708933802581873796553869664332403028490789153088854948844898944859302531476900659348380903971576741108148639431291506202065056061723211483857508356867827820271884588784193366514951500114266389572312192696251099295818128882052722040134192567596083570010284560056521405765658985283697667105331325910401506790220886501193957290148031522471476488368611794189552711832532522511563201036778566653762881681702022986047437988200560153211811602255978300239863061998728777912103726581230438067258063354640930391666168222768522001124314011601208625481334897329543227572411728600983145585726722278241778569048368716840262211798718634460422793987152455102428975380903368160740586630266385800557395472725690904598596531042904912766351556650551357360547170036271927682835785852210333092232343591475377616577835123745524643182272469520620658753934861124696880121198880025645957883904729438996623415729065930122323863278383935233414100172809293248164977085462699688311763723667083648036319878233299388752059236878730510394098423113063187115854583355496910323953906460882314985697824986313394406746363721475291064221370554606785112969218414096513742531000393318832498835622461238096833842942758109713337480104880498684075499854494241368919281507004579718607142463631472105021655107436865614731345957708221223885663515873093499585228599094586201261491164664735228867350668112031354338006270668180405883961209951888645937259798808823650220954004264226500767967977458392921958748143746263153867323501890459995240008167406893815868875326155550212358829334464523776499443774474781184280182735260241609682630052388572697893475441126439962843865779553700426641220136945733505545352807700389586485663108058331153641192073745550451765113157377747764196374535882258024942691314207059051694365982597707640698489634934859671056747367078808687030409581451046394684704258279987016202781421363054905633250312465088294850143610964065071458493078898108883339456943413898753716978452787062962912752653826635614086536132557486045426996166817744116766795134574535673243001035191280226932664575465214527107703802985937288303047418159262729831176564934294800612060602767826837676894906977103230670316282347984944829787147076203784910815083400922891187689717217794052100486583671304989339054195715358912476891712326442141911597856903110137167949750642960827764263645370776260675751426444218262247191701724461180041066197845049622950964795669395828544438089809739532868174353592918090726648795600848032933992340501916500154715828509156711079237653419211807242005915021192399431278116196058287739522542705627857220919597243850491440722856056028249078254708330077263900548524627164474090012295205351236726757704284748081994086090560021350132565164039257367018021633868691200167674004352893508096157320122013575114377930910867629083256787003261011319355175365501835796247608679906367115870218590264156162919271123238943851125682666281985477698421584758794602438453609093673772836331906390208934152372278980817527357635996988375508211089079799147671477354095543273783360779655809951825167474744728390795981982957293342308057669189049694667217173228609287972979117950647379612290104492450801812650789074710868744668805024110826861017828800440819806521178225790340481980074385557450969647045237765193987633642074666091683503798145518723807568947340424429246513129927094242083055595802795364310389005727497145060047009911357739980247391070577877549665532360756592787000840387732510083915071925400524716702341370366732716238233693869575134267875430118218607286497806022175877136449653263495527828820356700071828340724415388723867859951679954140410156492152356292790330883188635770983798491144308931197488503632821914872419745751572906549750571179804384486399511054452359937671095485494797384180791877971838938571650913321341633070528454367226412830895723111023020974477746443980914776883944822787244333038726921114896730730005248902265920380212533384390926196179775749266862633303759408886362841966151838315284692922677945972086076114737730898869347621256095541817210941488109797474079690869347088898512650170081156399811951816721753876916012483898526412597045481927724288849875145236390774506506556514267563797302697606661206563767313387506716132517174516169406561849287085137617243307763025559883867150469077604163823690565844646456824150126898438683010174450530350413199842270251363503845303911998775880132894910112238981538306052627627133123736105571556867186386742729168532376780662619593284558776596654666758702078176275285218834439471044319734311328930622716431460902610994907840997348423115439862453010327760420308170517796923862320558125696340713122842794497094344616694832773725733841651719945087820387216930431903488778121913399984666830839974335321153627739967438840850977681608504168382337617590546754228307889187479040904548238816398485121932672988916142985132703810117694988376276444787279681247412302386473167456462023277051046313565426640617773106689592738449926790937585794823751565990341597085894094590362183505287173020977655633630055644299182877429719160696054234375239647991654282564737513083452824784760880480746116200512433179384323600913037390198727264481612561413195282345691475349293339912473390824650914953504631224811611162425115637222784246198582668961569950829378479841636456015669930628492553756479261764505280819995468888422589109841466111473732019758067699516920467926380431472614028960155866721343870444480863090034875540660984503476668174321319868878562699547979700484165028131053304242192616486514753943690274743683037846797705413366474914019931357218105053950779363513402720147679654753412017287883279224030982819112330030584388094169203395959260434129815652004176842886909995704653512158299928109249114230060229584872020198050609077121037304901013150623000465963836684604136784500252410226482090115579220204233034801669524921573185763978337817034643552171366508416425811059540683190285186450052631797655100770823098493372788984153891878585867243564735068914758443214848996992117733004141755683195987406677774546032869454621309534890955444288105358248984095733449025721111514185740385735352673845971349127860234521357325203171660922829155403370890538746416189720449096238173010030181215604882803452005981550280174646226415805347865169363463423692782966625630251038017176168887129916119237957487465394837830999709742248674197391045492472637494820366980029831050597792101436739207618620824974640340389720833514288866803896773737668933502010942015605184981666852840284760354448988954154986501965595053641871180440621662453903064392591798138124154196024722009570101379640345128767089959456431363146935617449337611615366890618161790258084805458232646046042288877634263877544039145019656674879782359988473135755448641463398503620874073127814239126496386984889445183711103920009393194855648978744994552511542304187721480240580793565887085746894459161777948753673827642804263018030842370869832697217775288960922698451693309969297124233876940604903724174267668544769117546016770966451843982163297969510836686356395584138588210048012276704211801079556036269811281808828803153911718577354443964105047841519260339294288045126689086015828057405466063768108069536515834751615148676954628797290506107622565888385433499545973177643820804736153858531135149277445928497078892345666189602526701498637934702064370363438593861949306332398314035931076556615725145692310555700236055322826182264102018183476192953620130593431380195150785966440838065651801989889480513438002407282391183778186975371238903628971282094134145320177314048135775315459624409834833111218464136534939598810166898952303419399052879676821219814559504973095950243502553696727851828888661480037262072802730846346624557117215179911358901207336797200120740448654279417472742664723235611730243870459474617383967138051486929572034532226236045136000485880201417834725890339689734679244272021798631965735447365634311251074402271033537089193462646561256770732743264283318083051319814365512904701039351277266561365815334740490088388437263881487300158264597553498412754232134401978305025475858931397004981662642857103160962812950381940577559160528880677886829123507804745239804914857666119519472852302150529118546665080913526819688596772180242460455491071916505015679577789596797793921829459251751751271661436312684455329659067078772910369010643148806566741865148946414862064776209618505439384352356840881617503004454463609406687151844015680602228763772653408996636842788809552447599470916443425757814839921442860790085482128594489605443824951572754019803793691855515168910805831726052359833995163194754784446623908335121385726806278422674167446490886059118401571576302520022621167785453398174125964835612432259506903930046428911092857547031873907412716557179525798865777927938881860380446609405904133858242891170662693160421308217651765038830982644451083029943199157549114905352574575224112996867173517265682343016002966721269567678089605189764797063699873886431353563054213453648774405274792745954937741919897836362025910855787939025990435931421813738901720686580570502161846408878363939489721305933624329526953868841337450423145309255926068055407937048512935461714862640312141166598080542804397465496252039385088145233374124330894606296736172272064070322336236363956104710780572110138232992995538447158362615842842032825691849820640623384605852563014430242388472493119946519258833654021772275720949572619346143712854506691154064301759364094257021343092326991021977303300070997367659107842903209216679681703443727747315061472014026770763729748665990443692404911961748752589649664810220118989286096934901451948655289048260904873072427681022304526293860991377887394001997387252456393420375643859277985024330201915857466910233425093039598816967728348328847568422229023861114269520347080586326226486545890772642420861843881647270952336057890084451321737899880280315018460834099012967957165198672573990986232294422853329372600104437116576070888126931480230640623735842875964089063595403441325091993224227613035032132666957679072698103120672960536568109582423381139158774444684999210302060921672771973893072725400371181484543179973714909987863061665124590862122316555579822451475852060753506849755456914644083489751919805817041921981446064816438144098726212624794845387858850571966752206654586199666465747686919539053372634364275923558177052382580936381484613869366862769638078304748274187333108206309905808577436740905361699408769009719540610034900652695465335209787671379918620307518343931580833026417830139003061133816922631563790794397114318754687093959796111136040801083263570806513080602481200949279366472479586420114862803870910078488069412882351752957866529853973388997518281519172393824289340539818930425630479579961116574402776882938469755202743113047879427365895806420783788293836279151260727589341630978794925625435762828155679671338297667433226555646698097376789203311220896683891873837959444631190115341398820236837802570731284776945556284395738205789552019045158084892033393627279784903700790265299198246989008782673567359035787370459869278195256213610818646993994125080435634471318945329179699175364817745079594237927489171492403299890792345593425244640313137881741771707288902726052029676976482485407274659677452029563792824713435554699640248080614539692654402382584988919845062947867835044154794590290372341163812467292885398559944729586564991070384462077591835100769019180209531529438173537254637334856989970879609501694610194313168826904358789216543495232533884910527184654437873770171360405736747357847249550345802890518966116695407540294869193454803606756727869149940292106557280881107749862414171724464004187042754449426491523308022164241064301914702733196309666714761218933951971984966469799674567616014110853664564938921182940672356845689092941359421203890031886591697594974140314145673279791177110626923139100008961299694041648043559418853991451950384709774260745218524186459126958717298748738754896009941921207215620514670827212808955611711106517645349992219449168064318230851990479823084921146528568160993847939514195551068753193700518381584184088438386427638900868304269717124674987732393148824882821534135735593776968087713766989103757852082188982017365384774746472428547372140316222674190688794262702908967400038947843936127724113068065855265442168284757543661628447223231233488449977052704176837965355321328541288805290175169086632185665186208590206342662560686730400401400909312174772746363299880035325906181722674121825550640584098289777448547430166215993633963781075849023171247916856639511679855318309028057933366742225798250986336968937617685043527166326438453083366428187298471126016010470751884907549326693568147734139894434098831332521886336251017783671517382174441004035657122686328038141467922338678059036684575924341924623315278260514127520908177787721955369751265962242271049907878764509398910381551396925858454932629080266274042516541973248802125142795000310445793474137521504755520192827662561795434852142202514786908889897409102968542472639269576595096710513940606737617901409771863020920113742414045034802864895144557833857642288407339442734882813927904565353910238126258927520276756706932491088520623723123552470353524290723264868478238798990437100023848634341943394643620460196934803361052447653553282580513956451648206829147193895175418754854748693059195541241166522045156286961256139378051102294288329441527380679886324876678165006033768443437521174875565622892053716992870327049656524937846353180636523976507993365100058160974692223644169639689244079817254718542961142627705074811174009507467081894754057276329338905806272565312883739322243072468926934923297955094766565051941922960262969473108799396020807772393860042744750965185818184090350614515088312402151772093672019811911472306623575324470619260384586919542757446014814776758540809475218257507556680191183914071410172401640513447408738091919165261135312159805012612277262062703525909412824659215008720511258099331314371502108932416800494564721158747528598263505176365360616251630205939219417041902094053493315484349390612817446335338981256837583433307326725261395754464080597708488199349062346898395683355404753658523683205733778817708567936176246420553982821354517084950130294881233501422030031548645370968674145981640286926421005921410287103814615467760614655761865150423408855091829675661464782947492739020005900771797900394280849594178449039027730184614792845845327794033867547408632126432887137467990877018594694392757047273876344388289170345222297122343897730157182332397446026997405169525380150480636992630491027297043927064796682051809114543393855182651480155325500088265011769584183563543963637372450418850050541684857369064081751856958111258438572585954351729555381402527976552368389052440691367449323650845642951055707118338522575591844047749700467899808832791170555193791562746701825732750634948143555736991976752564393282345949676268662450151050844583677778749933651015668325057952157488571356708112610536786709198096610640498948227351883124725829437910088419475952007073973590881669014747314085567289326638885239636296890544687233966718932983629220139142263259321062205653646136749703684833293875519594657492955220020334959633787107220491304753365102578085583163307287449092331451691539009161101078618517418600646956495759721736776317546726565717743845913700972544466148711037712287208460263731174034762285941477796201127722352414144339282176319754429295768012679902596764539353825146857653967456280777643736927865543106383821797417065083017830897067474529433295494392016478332129848583182291880208556202007130271191685052925641275423129635928775139929691235350116459876565758306452390890829480660345531603354098156610339024383078157746629758933446212752591275341777326659870856172506460766309886337510383044230569465519598958650413111141309954860323077815677201436695373572321109425929471377743392433583140797483456435005969166683250821458734084371337661797374394398419908942973580916149201584670166231474931538657498602416057487392403390349409726241613857234880874371525245488619977906190107839241438447342388767193672278282205177830500293332493455827268645905383946555378637110329340230391339703726438407363537024103875733342596230834524980876107758327003726573533471243082482628672453602009020918930579833424597250776834566995854736214254242703501044871693979054136007943091581724434348476397995619613054238825282121123228906898663760946761119061722137266791130274061688575177323729379390121264459503596946686561284076180890429228555611341817708085635226631233316735190827129284081432064612434945342185164452032700733980097612539933781126303437802008330438099010812291422805321892877582084966403023667756781302644288316598818172667286821769354106907745927846447042092968868148967299474641495044683547530407116663621954299689694798573594413315402975489617688416771130148165201473631959165068810101009356512318844486902465268447903722277538173840558541904071236364366745928413852009865023297340857253762239307703168491992368801613945487671236325153055244821252929400950772649498648315264008483099125567071915764354055725088468108786425246838319836728972063338694047595881716643365348948075661092091113778765083983607719056824124750647170372199490614495270202768077790043520978968939325603708404143784974625046941450663089779463031667744156880872590404510994817507461748751088261391922464432310729457982357675998826918540724872333296080573612374258814648929833283547451289659466759568046603237095879062109062948987335057614662088005728424700026196968739389164807438049340991756845364411844532279433726933065703102867598734139950062452353350481391603576729297032491672946910579015086212448212735626229814276864832787023325111330767635785855071456498544856028304956029102123713877005304539846429930194136930908736657525466562882322453971531432543103697790794541889204211539103965776030719885455468207688866222549400753719192757631388224870542478373501979048780092889211442269945170952343765193831287877328680869604471010886623973053034302876858575783460730738796409645282724733669353333575974228220399895075934140167003915137637647540802989611614167314879851858002327738867068906852815146355264992912098273836873832283332359897209544119851255798583135944277616742725045975829810537100352443859877437221876281516478048526011661678552731139462356900861063476000605111782976715873440622959288752414990269824677377205589888198833367937121101217005644245453716942250381991656643626818977931829112656043156521111001523839899828667409281195602815375026983500709662280524022828901630626836388634751660939910913672660020455026534666008059511453621937568556650387101844537681977509611444232502494128950534173156373510271269318219427922495581649235768043077532955577081314462172987458332697270398632701207274662996275316942739135764627036251874498709534224984455103539319037131291713736799382790579724668474382402260846187416564288197886186747720893924181736426147617029567807117936749281318838602896663793947791037372122680787607122567859433641873336570437479478867426395201430155432431925668833555637469829262500698981066883380007457068640377694382095210770427965899533957141762190292462876371324174090767151766944581100778735450377408793059258570001779740429934693817374535692149805138615185115434124334355969650925518078282837669575515037178039299520781026631212048891705722115166563123819135088071547541261642132598080947665436696776175558661794485913092039192605190832221442533172597034552903681809454953571216108354072098590998154921435620730930899898695864103872961000750091472766749241354351879629655313682374205590640667231059817776744913480840609832354941624025821253099124255127122798116442659193254500401846288437401313839774579803538167647722718597401883663180224136865143184625396202467514808160691592606796441184788085630356211907484842221479808571977716064685458188353293137917560656753719114146096821469908595537071405445041137878818240629787260851044762001523705252715249867124056383519049621512728888533291196404532308820111278416164950890264845938094879802412687912454824698817064209796057006249908124583303122415990220052043497816249995259213373533397960261341905029481718981873714505205059521323845513310465869100900254034275910705979859128859218830335956749793880511625447627136181457972885392838913581122195137790258963320671432781531908165252177873591668748719505455879501875104391697227748197914710492211310320280683264920392050683426667685038091658938474152606866414913074515671454582960119597754471977088691030088927200488533186955349412346905886218008582700416534341373656969069023776208919102279162018031581254201225457866815843604150259901533707733495315076277924164127647243708530139092432611981113413157251931522275623990277656989340023529952574857897985264989513389560009404748847060630038579063325142315855172243959266733049979273677945536511716670657466278043846586496542468400600592969627783931314028580421313970785391874184131835105281347336036319303176168152122854443479792451928388232309597001210943108313248039247547537358498232686067204023509294763395998067394006431145237907380678912095148738806589315181987289466571195989873348967767296546166458538945640841215733895893219352993624137051367800748151182377516896041293197229324827094722140428927404853142665044013689470672396415560222185530579453659335440425544677783499312578810407704901725001014898066761167383986858525393629455021419474668076117614885975367944185435431805754952041808463408551821609847260723460880762701415632031386108145906927694360314129716724354230369402115648681011101221036223384640015487937186182896951801963323627469033205324013377076884753098935559069156500577530640904263981374728454982553647505917298633607147534389883816998896248346084811333289408039597700757733475523641978218754940846094073287073567640720742379311008402489185624064622993819690080201242232301262305414332425697116874914217100940593783262634084023872325635378124873111301224666357009755061117036716792025754810744973453480233376724814805123427695024478540236795207390600651730856230672967843515752416039519828781926862975120750724089530178896260833461440110268910383407749217154249224557432689895271334669500263136002779316295727774878530704113082021450948968324107884945907567715339704184331719965389741467331806676063670321990145086230883721271513442242688245553000024030822997212075478105120234490704586511767153489132033340873541504413884381900179613475070613430283016003434555741433283477804082384028589957078859719935175274466440734196247839380884120936097388259888218113500763908039571389288803545271372814018708643245387972889419708833807745351289777845136765938870956547265002434808310615882510274038948229816494489603618372562274422417824016328674573449201938598024416563288774759647917013156812787126800392058019628340341219295806354898252040752210743466353529847238980049777530918488777228476449130042444457123392589646650353134790607157509096668744774390458727775102042422244100296247002342854722377855200490938132107562451438590863801947005924846060714440141553924920157493126920290243392368432806107301194776933462869160364402835223357037260289361115171038487407513203882954855412166562565257607683981532243590910382142526897142044598344280200858072097547900653803517928676347838778837310945071753941006905287283678428612351962207563326015883180752765193579278003261811911595739318913071103551111087201521470872289223442977479815034005739542977809164788956942177300392418054315806456810540308124851568316835647703630771202894375517362560021810952810632548985436061932863310784791829802634705919691128844689629105726876118778924141516047044973121826081082358180633221596599824699250722183778406544577071924799110793195108312403441084220154904193905797700531667397594401337155370098257337400120086155621580660166591471882530082988081725424834562165685814594822140913547129039456614862597948717255225057557031261432351670740678804071839397390336395659414504446298595096321885699033470989415000884666779896114589616976923837587002007273613618884878485261454037842989733641816299114324353098683574743038030730197656037008100552648258771155116735187370338060111934918297837812539374105737873550832134731064841167569374287150452421225643333553182056127585610701948025795390057331172102586139091959482044833895965564732161138040387578306174080165298463049620317780039114920083439057730820070275042821230939544385062179472466763978701357781647556330612607768522751007949489952992634552985131306762884887491139232637471740688349171989929136478217988297829204707215245559967353014733809522109953619749100101852109962550466514819114212261426058557426311013740656450767287794886591969212812287368221777321098251159500090660118943298245414603726679175924019858599363421779332012267464966854950977246097342837594045811793916176652779353543132850670972488653191697903958027554242544674833509150748863019379550183368683543445681285559204521046737382896686758960470899381439703972603973154335032524116895827888189108745557880240930410979993834082777993280925069449986447284075645914051673130629057198279513447948859965132227897074713767679948314462529172775114500918176805296007622526526059592186631851440089935035902878884783673515985256054266684917323396490209730878881356356238352357894771534030555629875495304629492008430879006059554882727788027605737558331834211846961107700258263724117701845606041800174014085175367418286335092883853041874119143703400408643803484529015712112087467090842870391047978111334479503086773422574552292135399178732593892848040329859032771182843450616112561283522315575766813894355598854398278067255230637783907535546678828881696399977545811251998782888743580219153365035962880004837742230469446338502271587925746632887943311469564970692825610121081982738283611837316761837682733680948098375194812027561970121669312571965353056803546388470974057251183068367778456504752955991115322173672688570376809292640632200233183114860470252258634575094068916073748821561323313179537572961222614512096477890619774783664170061293620340803586108750363754817000007678302753546109157954353992150470322216077823941643137404115482714679901573337696692522472282810337337119624685722086448930239021201767796242575079164763578578350711399714274045093583228957920116643877810896516348364994948310804787770166454258051008247570021318348288575887442560306419093290546634520294689926659536703008283394046438125003334005849709480990894106961755942898808500878873716852086721691622604004312442962573476788320050155774394066500629156194638810086141512296839263073340204030819292075485971890435468625676169642146750669764040659839972728827592467529907973842024127498177003656580885946327017066691912447560938454807336213559472291222411580176001925121183720908886825117857503003626927689692498433667517088942779370391711515721562721213315774369813496221167255903372625106608341109068515041932473982520191534776133611251874779366088488600549605010909902052829965363800406510502959273829508749620819528360769737430437932852030723961455146405785625343738165995747078604875185850967162513875376418975619942276914665216411713977490783571736232939732207569310783919033438640936652772522315230405187577317568209909380199699989624634904379221326158973052888011906358679767353920589117666014092052309918558620637132297104411172608509338349879346473659666764081103575161255325357913074778227519516675117701838507928615666246693896251255797223463784786768987053192892502025505714629321749891343832135711579060484786422111391835644033165970713213711475281968612187632419648524090808643163443108365745980296188998947712771661848993906595290680927189663187941659020029641793964280421429839561645661480297830992715232632653513434614213688359414978008378087279750736472909600415788303279322774692961156868766447391759454093589359203682803766471112951252364721469661896620117907604415213297934265297632740037407910337388169219767966175699936289127589825394861573094406484302425786636235492796867607094390311650893638827198393108643576146648421776080744809825008436805310369382749689312200383432362107926011029311045140387416588031998487804883865556749282099663560363543641912216987074203583682094367534277501577430578778944679078416277316713388746307070937159523005655119404223626578646005025644832427054616267433068195049497676447437961624496912847064796603294973350698858019706852666243398280921748591029510298898040752866331649980051181014655253359112624656613486395424729737639174478245289762443224887789778720251307188396216169863773334575379222857869108148886884157861701479525013529776289492326021336974420872464555043792457991338783452454540111507300073561632611086179923862404476116221318851214443524606181759580511428366607611395191171245353464117419768342949433353821382397150679694103804633770466092711276089997644506710377302922033157757193126097418962345061918672336114425335038993177769464901546365386126910058516879282101705938925626342206623663344330076913200529254095839710878241411295367206621455000085658711283074527470149118620519061596042463926305176723571019646832629589361958323957405526166230553062526430529840381590813977929224217120005327496869651270048420756315731404914287846090727216566412277664533299416782441744347281194219164466625842412594981893254913472476516064040320807334998215881159301093377553717880593255381746009557312464045944968279906165952898109507999323571764763304069510248414051897340662404530068192891587803956282265320276573097220503327794043875254659614220771112233624346226205211635038849929738504013721347862099530157850227448948951108162638765534396265438830622489153498220979055454225366495068345069958017066479915276063586502494211915799489909594251983384515759116408450476121624144112089792405618140974626065740338123936472457057231222570158267710856558619831526196726431914465923079567097927319376669092294340624933533760752084861274626229939004707044021511062204260576697477669111598628996434507263626575051767999940152892724992188852145934675230462590014158334179067409191923623755729281318698491954940909933830287882492116269759358375126633444865847739729188415408608308421898195402613566455179434196411545858550686389229731964699600035931344253559330580535144624387280381960909799109274519179039518527769874854005013755196445593369063400823559301290029731125713760908149973032904053413195539189405955233485724302469416887771112314376645716329044844367118453361097468812006476208457186077168897786476127078977655495235013877386299144946947560962881240089301727473876525369366886823584269262431814901209358206015852089067937304110341916782714651830950852234488569501575483686792010414495547106013588460146862600868736072972289785376098770020607781055316762500046668695969751581523669317382729282130033852578257289253932284903557084888357159953668536470517543660683779553726204142750688119132139925900990696556812215470532004377380798048645142854559360930914431816740210866709170293887605851740026252066712164972338657404590502368342946754292564444485376224326578447843933777722160279030362472667333261020252998694107523509527891439366525399850358740800829471325809626197286274609267127458376617924259306453084867724646066612920727654047571093522543056999492233659767252525402815236942662650592861541965219603019360175330770495677490276868314111390439882894257193803726306966671316100820302044633454832903713872131092136170623699066125021074673200895798611546793686010152320579972909081824146842889375098012402744735141336150591571248441940396637379136122813421375733677646773537890425447388592696098765429649581882850756849506409034131825714230436899829523744314665593270239106414328804114877940128785412165989207625550461376108411377432894268518592223124963027244351787208370425881413276052511823552191659285436582275298591414565527964944519312230298340682448277181807445522451770180102090946065013043115562733813201229150091685604156217118575047028763838828548136977728845683097140716426992289079066460664523662969810937156718526580963198611931330856780979708690527242200439484984208187809326999685510046586874272926935996559067564956668192404029925567720416889234604537110364461018507030985517714208593595316572663919657245376821446312947426999114272843069397491063365923614644402453299350212620040119945888801180574880762771802938945174615190691420529094004093198874492799583696338768892721633387826499485746404495516341743842915874522342973635804332378436287660717233395657893572453137012830633471843937280906215668076475952295505071088313415130402499425138482924648508231169663417852910086439431611305992415544664422008542510283552728736644496637951480473465797100799067343126888980633908696325259470626448461149586468084022557089329310460444107863166171098150945774743370769128545690747631285457891055587634537314527730142131837675497961028386710645405982460087383887171870768505916281128551548365840418936860315305695083678896097444787492568255198825976067482044660880021541067227649266473282938357367034686126506737357791072903730348822556496649702410679539784514749246777835058167401139260216742970703775070754001939539809601945290911471333256657003448674691875310794652247003829423035909530187544021095982845799411910509332775910357722934085989733723780580528941706801926790853024624929610830541571533361878184161314748980536898196986951261098921526862976189621376530632912072167935653574328229606659168898148985678852721884937451945305338099900697672868475215498990232732339872437851128145452183466606453899293250401540658469910276603472404677047954733856484040930728207936875191426059118047910309476617230723488457273849432609274028983591474272396786751491272943916022219877266620394788402974511532785255361685743076086600943243899476347891044369142452743786897761411021085116887899853552047069835208429361848968224547694992151398882163558253536807921655218981610268521027191137587764687498956040812029084194516938115836764970201855792526219212611801752588409270545158662583103864684745480623382229921446349583885248887382836212527040714159198044979754512753213541905945475914744909436511462361075137588086640310039633060673128520096445776586775046419702026179816105039469579984333128656344700568675267053277686169573041044128511291765718763507867036288909444214417973733654221123204192766142792754902906683042152347981494255045847075667024657800519990719845704051439231508551841665864208142964500133260766582546611281384956820713330887055353604105535444913947139917318698053499176874908963946693399599915124881246948460632997549127478103858563289289851456894105755789716741135881578995828374515556106475752117112107480782613910286265637668176879444328879200821982047158675218659502193835182692776903258084687897327541211831891095100844456470667904564837199732487668578686682146431849085190040877782991104793998734488927967614646463587600036199988162248904274811164821208356589663253089327288363216986954066554929208934662377801956551386202670690123905957677379771810071417330517885697184445398856695990989730595618800378194710262000479322706652139086609591025596473174895814488623948019634231611127689967659720883998169779738827502214254628969613599507886204229698674068603918114305847904776611901125604558553058846165836357800094896381585917277227002708449066918297747519234166909812391037187278619360791567422739167113290402623779867115869529777360995690717117851975760958711685313902620872877848682512835024457518308159902070965269218349530110994810234267259256240244921124725827823488606951110598256699558868606549901734210894616980872902474593821913656266026105684507425957367839966112836233997728329652191761297802527631588352155612751154125284807627043483793189718724554275537710009266667936961784266465840226241916872820556243791771465909810690820421182322305593191763282993720864488732431401096476526888471187520666822693294923386264267885963816128003460727046345158617219696484467261017968740970282528774657682751613670011654510428477783987255033530684958495366037666078903956068028569387143475560364884623306309453598321582266217488972513836495175439469295323337411113439162202251596644815321817658405742958320592589157701162676327513095767956737707953780053580983488171760863840439409978636240969273780044022845032644757551955975373536309808792796331759986499783353921786171992714309400893634807613812152755624062639354442016987339526466749248857633672583753710975356199223558978030578933613070028853114289995424609668180344037125928756919056216548291367547860865496546828250857998781903940694908566010778954513204647930593794378343470058645003742143785032569667525498874809855772257465725648042807726040679372501367959639489606737561288141284324894820055841521854429819015501254178610363492401981186140132632464349600379127694481343500194930043130404091578849372777132030680614159989256399377038346920172336110487861606143607676144838351184344838540690782692422893931088942355943231256309319569247002133286608484498861320116200053958545579039207505633161856746310394047070182125837366059372274104261535933217778725751662834851477778125554286447556156462023893911052662741520174688690095956306513144400996551317786116504022188320864066907896927623819742379486521515933741002212338247103662764193005488657554795809003307009092179853121830069656285813660469392683613933672383553190153580327844556323451520516794480326911299751188671151492434990043380943228145497597330304511142749698281619907528778925490779019490598745739645945323596122887869272304532218227731986904492446640066492954517623964847331341986412039580989319659234351754448950394056456060496389307786841438854375448119582617267320573920011441669761547145754416056298792535505857394485482060256814232556984771244324451081681516147492565955631018540189969647884794411677938183433073454547927812841676934751612358382333333243602226840459293957551071947951882747135114999328239718885685093909544349021246733480145690886786769028773283665620746518255968955318585454538214337081516859584762215471990286566241547191488173348136878189146367890807534830042538200386439575048325946719472222199574459491981818162319726875875877499386649025631944878012488304855911056371657756028688065865019032244416871398040997455366477149491839565427336850648197415722079016711790612917252302751244590470446546174483359516128453754609940012735550690840517893882096658323003382815023250585576508249209173830962156237904677921163569318313886684464342709049972434952446179732332698858329929811469685648056097293223762748798581959353493742608388323606453589333413829346556878849601590118637998835123518270299302977979780538480087170471735949654920516066918853882029913275111396491106474503557533368009583822303660750546407970623147769203592971749846676419432081935818356007299723777960710447150005683036690378786873447738499686139623471343831626327406163997250245789528367818813457359811335042570872038087425954188827361662512530886172124876237796424991608586959326990169803379602151978076879154740356175736262335742458896566328251009969985854986009724061456664032561448067078842416045374576301605365893997859315006160942221792209009052869296468066862513117638058835517609139400738317838219863006618487768584179516089002298156028562994440510650075986485963040130983341040315567444839316096973488629902959160964245290286608877077355316925393989149809984562745911983357035583656435436418102645202876797930779922696229673137713892956657990097958852004870539676030307738356824860123742289886189636361432226206504133352339753558528164833675397630311124625354716159727470905201281939634722580013050706254145199805789971458351482145353155229175162099913739219265515231614010994172515320714146329423474869306960108759727001378467402629350368167232683192965474496447994701847407686387833880710328731484659019659830319845991526272613482995361153661188781090499367974655732206340145148030583190170397828293463893104446612128449928173905095310692259675444775239290969377547828858063078532976760750331677791127989756362849663988489471456516441382627183755960936821227145169502170987005891113956776010765956694676644192045535027660649041991800044439404913921437478586006072454276328764056075746556581423146629820031123155009841115560783746778180553691333815341630093130688952975092283283741137924677958905750208086893661471892279925495136780794680442509263271568272764304493159606807636861147793702129033545322614311888502996920806422670286203394026836839436626431346817611204935935286860471653329627866958843975697218008065295943865951812610696726636615764673461767964775074073082123387807065817029957201661646581973926622252368584973557678119353620307369757457471749635897510225993834684665450079047644922312223893081054842172819662477764926823553150718716972476117866120484113122121089076313143909810124941698907340783319875506010798093437840895681463155595649568421836842634082384430569253013430848399385185958493696079555248763668690123839237053551459102650813549006078610643594739598627278539023042913696961304473770578240087940232161118507901665774456783405047166676582244124832286687213993033793422686051191226911954230073957431663278384358267506386262051559261647439447523783308971528138920706896329816623565499668696001951322518426239496418657349424988952374157206893881609119794245541809888442503278851112657958981011145188369474431080634536483438198522017688692366750469126530806978022250206705899248410447091779976662041758499054900812423719023050933386636086523296213544687774878797864141675632203914337548846589944511911408694694169762548173893239004219512895925517820102324860536756360129055076732349143988483902427065445471468323114543434674537074969033569336630602794562096750200460126353100345480594157088685443937171466773753619427214998208704807142292592907001404927790385381351277211808582857146635630894545790890850709594362687661018150487267762122709153695154730821175930115262123340117939040085911561785963367668312928102757094001440070041739309660356931896194395538648731525574054848422908826375239687793032425840154527302785863470539446770419447482145752469459106144631143663736427357774640007060920098710011211057537169867174395130938191260325825611975629549824499747205481464413915522357311321444926611335472986428561266498794478368449872621782181662612904590953693189876670183131248101263089591628005281994706754622979322747117213311621514427827981589565914097591308994583822035338206538368694768204110354314949550570821003900994226579971398264934154149887388704595592701167393903348365215401075952410445998413266424541526479744410421896752283598797734436296197787373824461265686419722391932236975286817706516969472537646866012147533298608760461475155130537297843361838789004585953156029650354501822959366117935662803626375224538292140662098364544215819808115209288873498916977374940155896052226238770633560458457848427674795199321457884218316644650895207224365315822143133633053622916594267834378374842317890877650354302287072916381919625732709069686750718096991324098369944953803055783695382153093717757629253177226600628169965238843477674172761616031758023626296331944720640494491347173751072603429578869313424092885645716215335240862778373322115743129000956569199287037506400733261665713693898351147497707802871670042755758693344088553004986293736241796358280989473325740823536616115173538377942364057557698573788875443004017231719207337627621375439494215620983669784534030851232090173254129366075842902520038031005726124663848136553657831941733367174065904394042483643019228075120947063344013968694475973029749620506582712880687684978632563050114541323734966769739757763103828523778615384761619823663556284682626456950106229279087428045925421735671713768622302442856768489126197612208900145862635891577921694148122266741532472547679031557458401112631542382837194179338164229215073898529879731559354982135452518297370568454206632200675199302748133889613014450141762827080215149890967936097672068175225658410353026440523823727833153350152853656579773147077841858035940635177267299663138456475912924942528937485105655781492280926122265989889336626999916252930657327434429428823481797986718216013167650916533732824466872342613295793316612582669828882519837141756270514696259341321298234972214470685196748667663807285497897145307611335049081747174304662614786675272947303945805757725738549200245060677198975416078075105816140289726045097159565302321678778097816185404848360331485284839492192111121605568158891379378377185383148071025132631123407147582274384556433308102470815126871741440263957673677581453193645822439073598258927599006133785158225787075040996149453123625670860305869892604999770767137490425218562720547150510238789796486345728593505449097538014732230007889648569223577987121763863977248433222904223139075602647244547952562278057865913330344192701493123137955381015647730885284133158734319549903576097437230695554534712575787799445104846716396875026487942608758028134480906429063115725344470894113131145160383876517129217383054869873542250606654435438529864192353905730014723475877859914614013044555781662491227095019353827649265781165669743283484764941753446919614857776402000551648681168309134266491926546499126516224553552684294422868138825923788283577653963296895288300080292146029734121615480974756824956112477324387627623159426469123688772015203490998215843388159008210859010798450238116633081974506517642321148144996939412342090783097494197415903389884327860893788442814585565284154427639853491282432308140547008187005332009499088514628733758122461677515399670214984379881258415451089916497612050902325387147840757153196747977062971623704996978340972996265091926863081941715626315739969610883660410937499303036231021268647322483839280507450586801859191742957663853875080991384790897231216555445444240133296492115569518949000979824763085052872986648242273887466564803224434017777332140518207040652567383784546587566432644408614685989432772876560666405907749175852734957549307308509222473798726335601609534373731059912543477186029050186307050771799755391799725694104754879477340207136200654554959291462497487986936884245446318375520059866446616730059538390480260209326881926827752713687629292667439397934221431652824011279572435803360190360816143066694485300504079524685544078943975833681478616035865708677518784988205171186971121052743974545941566190578873564933000783467079864680361557939171880841306661728207604783498101662481219520662460448540807814307082015903253064828543669890989190460449488788886233972684704173574746006173205714985018264085339945220562967515300101334750326110247308087971081799217394651387567510348893809632344770301215130317522728106535831625832071000846461968246446068387892041292863613629557400238734484625840049705613877607728762175007875875312665671695736520350469262784204234360781429624144501579482273862865442522356698377595608768399545673104055200309420586994463807130280667959791021577475585112611174605303179794969138570603853324040622886873833507922320838652459185204121763776875373376163103636833555070850531405479951426796922235151979534444492885708292284529503737377947764551969228860905267052612638116244920539050810019572065906844972921069084086774365401455015221505981571237986580451370409027415570803687782456613317157818164838889363191670770058711219483693200698147090923630655928650240973618015270718952234972015874738306209030960981098022385160056297725905327259543647610981383029705697595295918609383137224812717588938157955013701424077171660410213702709358528657681466781023158472500735770774628233545687802116388699704630674855135134157380637616738914811800303375232838330489006464880313035811411449618135601535771340087249912601499562577013812990236930620103019374816921264298289247402554165812207354323756515484939709678377540190256540481941916969934490134540062109356373368101031067122154558854450165079091534895073204446849866232557279208828834978050792300427816496014988747894109420749712260321627314311043727325820229929782905829165975348437671370418954189769568546431912794839290005922084368502898201464726249320895959715663499320070539365044858524794295015117836406043064041729452605131589029346809505180345608775215240072162608005361875692778103812814644962161094420942481270002546866837586665647390163619770417111247850477419034772280057784029312400402908277259029353577427583649694952545657719186693603551319983151608652451012143519520280299940048147853553481321331263010691355828158636531142370528304184411760078155645914414256136896357758190775634649970970336331830073350353983539332324297521692468474958316360761273147525714349396024978589403324891916832358946394938777618361098003712350253271627827630680908573202262424247514956111228193298035374242035589806902898612559707414339242429335885641972775422208788155982936228538556110667158324454192821122645037994145639258600070323309327826546010299726884762159320470624067633597861227768619217599611783429696048150040266000702117795190868272928964512147067144847300288048873717197528714616084681078444770471736898275489132643727622627423720398064065010922776143747078090358409066819111613907515616705801136062232783431867262962554850785675395355989964179699086192292359884919764714078712820245722772599000809945634103251141295166809818200049428497681344943902530724791767911941472330777290816809810081500937919051810817095086453325248073469770364795248675780544264954334388472823666095561664346959754384068470530075963510811075227300360692702085958961151922316482097137552274344436784993878446417782523627475999345321339511107018013105679013171344042992071732953577728002989611664105751130643673069616925278664931307251014219525421463382288656289663526471139160282728389600138805007912007791441302240915830581363643563699477382722666090537986693690420632290382518005930278232565461890258729941842926729304702603219997763788895353980474211933858157704599481130082650024230972006294953819726908726433636607293215210630237297756556635528495107346064471908546555071409788172574392171155588272456695236793881217547890904240500081691224318295435520425878565609539013536803371645987277781567723154999649574724923378501216581476153176557738514557090321112736246539380016461258975695369536616311298633880164742262354691724380039832615582522843518325750599961716100955620141707920193015845599500910152299458231532437207470893795970816459314488532325661949600606102624887926266797491178151561605198414159185754189178975660113388762633216613523722477961549046132724980958989015839063510492233931088943976918581090517383483502399284708060141641647584469795152162992479431230885347271024262526115632554957435312735719802919272148582262608038985469419159827549650236535838247253474530429501327665649944222259136573182099602761997890245583609121559573209586002952467316424019531787864640482456343902420350076467326084296427053832644793016839920484504764987332418254837280931065376463925655892522522671002152807002644729545695293098651685234683827412087007382341678782858656554104051112987072302017970518052952305392032933135009848831153799372938935264774694357105630644816949224839971437588301520850383919805803252074337907380557984111446277779679565162704976443964320919558216069559093700365639223833454848761444193196903656392757454448117963064186275012268269366471536287868260179531838922935839997480850415797562242364691468381028867339977379934539038987060680479259136884739229963918079998525561300355063044742327841515268065251069748493556238053586864246127544155051909870067117314942741079016338386931043111267800911997073910748585800582110762534383470977986556276160108495999698463458370787064546993978145972692871080214731957797424809269382647264470105259895633763108650535549791012560281066220296740691715993205419799925541165595413140259512448356233344918606766290380017082022573361004622196850615593783125187021325489879626953808200643390605587086620207751001610758131967159045014712759101613499729805007764947048778082031232781880945946672539107916313537358804455461849833584845661716169009867508925428144631900772617467906784441151988633224029158346937413796188751468040467216993901803081455095287478922848909296045861325725098058746799379095843227323350391345436396220808793081513593725400557200798902015640595503695064346547005703164456093166298103968278101383325214227263748790772877205707957561480414786855631914185374381021972792829805591506918897802412923996583062670530614144163669894721761616018727841364521461663900389997830419425089404927548969730644310333201920615299945540436105006610259266776460103742490452280445068307691894411402192547884461130738245685728089165226867384284802612399846800262372998610010181346328195863653378761571647046238796547397970145431350400980387982132228681695210225918790843968676540434939172231832510592681739076292247170354469644355167213902669542639122941501548106138758502258877395992067182739229468773282653005505986664788714081277205303256387845428681217984678462460423572352816347123385422972227072790935416020997959537727232879546196304929797396341999697702677734945724561725921018500439386961692819621842692478792288181888780132714420907985736515834369605031113352229948981453865451510089862169939834592222705926631307676262219559283649498039681027141915645365016357180454550063609357295801836034373475732956048680220061451631216448128515388838681407322650201222227038761207124055065365098551260853786971984810695683486575830137226122974227832225372543012977644098273953054028007392888582692621399999588948853313868079254976950425816620261091437506531906073634791336938079231402744724979582148886132353782797811387709342055753938343068932548601499849731809973058332452975219030665168362999255095438855193265243705030261912477672103256285116583426584480514693218073438534409707528720356285739677163269261897984579937431528273594480235295007433548497852444919819950412409599419861159793290549671867457618260542581509453684760600045339026295947926673542087596942503969679471640005377027972595258570168445058425032954778160280225778290316954647017083236275925917493327722146935636856972535342000772723948737733630673037609537117310498143225727349656939590544005166669447362610942866656349834427206163154710121830843392143475841983537727226802074380148647627176954403352472734373323590691971182355699337214387502595113419811627981637720864958230935474002948950812658121572189890781787136201005517032806679883304801146092596935128638835608862863082790919472365881315487540543263141421008837277806446969005620579187407627256171812777487007116860182541222246063223323352374823511171719985180262011677761791314207295351430323790641538228377180295451125495947330272905876013704637904529464658261946282636126503270273848284815439881856814341252546117482801620487330219577635464023294557177928820239788693798197302660036459284871335361097416949381772764407213331325514244832193056017585929309396458896897083858402444298335064751052978478763778767415215380130822077368742896946401947537746787436302990733060796080029627557706769271022749544569471860195621048693736463041386320862271039155483898879926948705131172811115298504101606841199631789217366337964836167742931706697310337845685902664149383055661598228715178230994607233466131843760222166974306278532142525520387163126569610586830162614241139844195843798328286500060825608334240287705099240113179049656366103685637442101439279314242275081187199047568745717130243857966075867458262633904839216760215477542813307205204027206479865864958755090120550457514768247533975297929783882745987175940873747448627962674365409576611556700371160812538799418689683800997171553124617709821050904219776227612578479812476128973884950465798377697720317448977023039069910613055920976369592567501853713670274694399457555738428304916899478592306317952804168452737604046653735590960431933557549366724988080772688461654490511616956390420060676119515816721672991389272906257637340879125144848868095074732038551706367173335992617112649400936909537837787625011918627764823529607515258807620577349744694337372733331914336425536558343316266054682877242053080707106687591611857682338402557095597542530844231970397418801817883172385254161062357514040186948765460332142299107590755693052459986349363535833903693387561693733406312216362670720906429180526155334358902888100075479291787596757471691458841408458894681869866266888227021866226289938950629396030230683350671209931189037890352690019809512109706466939506562573313963311818388458560312399894209825776851977310554157591908890058626071545450286078410914386053725372729084586917144143558813822718985205460281449644310576568867576034746911253521344501544862347677707641342246967173104855535554570721856469223540895603283429382912664440026165430679582436137188486961435224633937905638124195682654813817952788522748237000981013768747768073923483347790830018788302942566490324462340469749601009265732505674559938680412488592554857547278577947717984141668786863712464302106386288454761020212353725240558401844673157343388267095407994651791111551085093967966791050491335130502881479375606339532353132328822978336800092487140223964889632528819516024135420644033282120923737870770650779018872499681197920090159053450793394436034461786924694434997568191970599874522918595930760663085162190775794964214198669449980589216727409775592861758163302425911956108705919973062944720174219886044704742913356963812494790577708053404920444621630757042096023199428119590974787170790174066166374238479690456491769540872498923880539430089937038224536885796792614537465691896314932010228319387129829073122871190769331987598087685255567763355859721835036134415797078931865458446049484864085929006512304196177004292419382613161133034417370945177691852187972348581327957521544674364498592970877913484146747335868437010178814971850701870242358675944513105575158715770954554443694326473489569483123593822315227134387774550466199401073682366850360613172175363687515835819746070767039449189129770960533219405638752333346853617830078487003839399104303615711040177292716074394294177115288030077984092973875648551297851262818568519983032802632028710574719104882336693040460538377930313235421629229449389841710751695619523153014949059909085692746400481015985227830783317248234902185515361696000912216848605664390242237714270815610774863912497731528802621282450637589492307297611210583699301069926012530210084085706661765776713469922067073678171503753387701623939836775146699038862218974503527565312555930448338110568978468514700261421146655149945984848487899163964060428017753305557889666444380612540868903843912528180468234781889782766106679483890032574539036968649831004235644586459338861912643409626737736716545886961778417045477368609867932074048539223514250972857972934285128901529713795122990751197952865608031685814212924001194638891893774138487311469631712579541585866399933966234727954531559090767459724623299186494467224169573380369669488804809400314715151970138612401374261814152997361937159780084973141276672617170477771479366391891726997075950356869086712680317452228566226037377011367438835531869687941431842519653611608897028342677420323371030105996730776712876531879847840167673411312118939231449178628062562540555725673120680666097139857940929100919743928873372346581728130669117117997404442989749871251672938647622015706604775774688901936187976067363192546761365975263714741726484755818591359026475971232588377570281718643250019613368601627916652371928109379663203993873684606605536891525042465461785344050849704052647787676820632333337441780995568740447216909812251486889529843105384439452411646704269297259435014328266925681654796818719875912386026910067291627978450217394592827172109385862639386870053979917678771289032802976778324090508388695949382516132548762596829091723897420484668745514700206163730831478713398104697848538180329183951710025213211199781885409157688962803417388252324041031460987549301871378800894199386031184481631275083931504788216585828601703288900749846715564563719441976329783527620103018571042970919619552404072623386755141899230798557448679795823598131897615613249568511978090098361569663912910224695256055967259324415350525956163106031665855491106502100917030499078412684009754938677829660728382163646936632673266080678634947085418618401126601147271568911390579589445450095939042512091310216009909462860093488157944166167311380605879282783284078835332994826018101707149643670728659720137825468232584603388725581779574233989886303986778779286140215346250306639860503778649176687643039585983290238537900768363966294324982316424919630542843670714044150201807883791214181372891388710418585671164906675314633628884706571951810618223469355397091127432973581594942450789380176620920348255116231250198993447465742558744862830323632550095670649395347140974905497294503240671660403041590929055963923884886352199809503132396162997315144288420588692606726231191493410370102377870691679264462318160280650500605797147302436250474775823207984242866485877086452888872193659663600533015662648710833325351885257517382157183296539650722691280241153597868681310849611138609127483634051415808607625422373468004187319925063656915028086543510225202575586488645169944162452407257312981078686082396587081579938438664180579527077681460113969815179215024404166993559062092145242443642018793020956529095040367751125561109804305773337403602922852885266596485338631076976132448078193304185114308185729119722198192661732631645984164694626545019826182361338549940865868201756677019543856955370962800043928405965928190031561052812312087664324570016586690099355646422514142052936839639553739274116381597622453909011549585225041034182771656302940571287805498776459716885941191540964393882339495186981276476412932473692271723812991109670654185936170999639911188817992851027777426316424329316504818945343834625032789500316677431770716271276022018619954275556400767389190704015342762152321779841055367345425471476897934159455446318530941003070820369907267319610626504665655484082823212633323683030422429420966252368000936694452690552068033300184131793191472165943285971948649338950349384928712432528034719122824307978882696445888759302535278055313284246267977918262433816253208321580531486693404402445518603771286416817843491016140434885208203433554829252013586114834045395768028236186967158560598157738543391250784045881215943415277252788047873479156972814968303446552742148580256002089104224872713404280621503964759131016850220727571532730336288894552027105795092610822973615654887357191783905954481565833259806764972699464775214459410659516674166509892884155591875286400540138654995909121599515194175822295907274144477126291622802817084572274938497649866026750246968720045138187243209939561151776336384462768749656132812636073213220681558154585046039442716613677066604093076683508327802422630106814286676717702593701393672095538863517832306409815869913424221995541418653798554754689552867407813678103038798608609426339709059909913294870133540274837463507884024370522910755170144824435223766301273856938799457813479303316187770987647712090638147728897285529058683656682699588606057606008484187814592950679542107642506158591809160064053531909999781681477770752247106534060626800567150673968653303369766798386754072013839037097781649387120402770924421889703894458316377692009521344001984576706938380397811056603586311955580780186716586828355613536204821265279010482523219964035803283251845658101050029696059713224861797563153818496687093069723370609445139671064663918463279714192499304621245019144892392742796796168713536171639315466392891066960343914476960914705911141636144707200091737789551363753619670286271683679614582484478108457618190064239098976836314578439847462426775327453307677140534384733270338563634256852523165044405323386154979932207812075861723009276101857487190905879696338962386898470273077899657385182923578891084015156787666826616316414756438569793431321337823245877818210702168215285457385489059175674703002112945146441118583435113360439463247896098746413222163309468190863690920263839854598909681281038885912260545478769704192362972666393504226051476181287905841650307759927239254946230671876480191169479881077267344597454570681808081951568145420417737836243014482430512549894120717637299719728339618070582247279172756252947010658781926194793068474929759435964846725185090649974405826422848415460789897246147264152755124043492930967432418522975854904536127298924965684675129922179527021088357379477277199119918535099542118466523653465500747120393830458592503934098161509490090734178620875356536666637213364701246253052845700578137369366647987269961327965676044184103731206720595314625632724402462147834075711214163707529862810135829865039342196140013824440021691273885367460563747911255298829627210097942092135421827428391239518134886789309896226538016294722774618138640281806572984489818755734716986977522599215477196921641567466415107237811539796247368138848966385706119892001291481540904324212144020816922181004446507079912874389421755167932958351102968703709746138763898251530601094039883053290217024837474285922553325672138331477367636611582999356936429245848239502817365985935383026825038117544788207270938914054121287237009085819807794003508053050924750739791296965953957356679307084395453229009537390673953850000755788163731091497511576189568726126894719285891078477774276150642770183092027225460369222718880382306512249248639670730052656745049534665611973655631596475427785892335145018892971382518386224713955629283710580328612471304398180176561211812376041946022331050118924033421691638337033601314884663653881925605131529141271423475800262506595938468646802201836604805902294268581691381311662976200718969272145295031156385271652321727294012856663871143588969550122328378014377096524926686586053878944912380287183892692254106679944127494187495317265401190045452890061471795795776447045672958394680819009483362318590532849343452820223561397337309386978641776388396542329960915717552276036731992103494534995296332873043656657699843212403918486553490682110513940958243275728568756319940403526940580196847649348653788980802273724153955471016718260839583816999052041052550408326939284420810744528506264797674312789254016773896618429647663950814432563407718664417623797503325299456792416099719818926539211356836209962746975228803866030039585958442137207714073792178478567714661028230089262768938975821436696505540458939213440296394063044879891737826496288137023431603461108659413372149652612212904551849686450003431558911004141021470306858122871009400192202737347829958007844169539399726253495962892677856747723472605092084398884334254400991509401535057934889444206011149140449502704481050954486053271289151648849596418541483795390241182561011821393350946136391620266955135877653278767160588788260032852423793930615925016526743646192358012296871796525676409575484291225607096255725769515979531043981347157019299626476814823397598390547302927694557783051753069456054924692977137338976287407888883429039299949400013331948852857122999677644155610304024437050070847612619005927630290168396965073970455573888443758399699087404914197491112656335049114286930660575743462127754336358503361023984810553576335254125823701908442080248279136639699829117710196903434250004885373534108110619362238854607959741794025260554232271192913423994984708900522417084235852683328676837661480014165893206503432718469991576678809949355716065067027099088282646823787005057961685484717899406967637476677099685045131693007767799628614119131129198117982864413948842028212185402060106031495730788788958424729719635386348214282568292283105639669144665897802650855475890526590744672557785494386935344708120082283513988411065014937392395583104830094555553419027404976108014479327026069325454507862813488049348527752059862212491926650766563390783514847724458029617767485725554086226206042061135351544038799052059723185962978548090735145308665295035862859334908118924276690435819597928454071992530220440529738528220162308609496361338085833502007928379522210619889233176782963110109734053545841194489936027793639312166280619888362113131371803992508328414826124273690255467630453429791114225795274965641064439909658621554615749716045686850762663623173419110555370284899771730221449980346189576773029140734266567146092050277894972457647823525908593572109288832104083132900238139359464976128564373922858019617523200256890102175962836914490727185409396158223158965307258629168069845949385362493053253453629410857035950661765943028907980798657522580061721388701137368769232649262789382152198347022848687494591254804748893195340109456854592634251118698121729289170023996144280635318766751090675317843602647310036290557271157988250040429953124227297385223542340555725799092967445779844715901883962868902873869124817087709980846314344821976702432096558619686362890100401618991470460671145841423978943489957836917357871416680845668517750597961782146734031637441173278442835966415655853238976215317813424004670347813920823895033877756633131763132116770394543980253082271143864809644128629718504650762020484708567917384284855438162830878677216264940613069637442253552157302803648485839923751302072137640574298571540085425690334253884098598926363348076688206499483474531945833646477957762731696097330762139029145007326066662369539011942428939097523775870781220170994608624935838175176264059613201344039429358487781108037740009269721159170958007757720714815868396897916489646090080366409229040239021372948633194075492632773060990589792339974628454537897458929505638417539975925507442983675934423325908575817901341571984488992692920482747627391157540838395312928575796502060029873491110420790445270525418681210072393931226516414854352038025384136052045646719549689012322359967477641590477261343771846000120594404780970191282557931578493573109691368545088780849623909563631490196507130107055847366932647257515978388516802990782015670706845897005104362052939700722739955135760986242287674552005400586723767887916270903602924615004057475421553918313083477138351096300571508283039836768284529821162357825349900607034031960155826645921190581844756249168592503089023110343263501871987305637766668478910307974220635583542779170422684110303504607030239146725599957405474889824425032172974711104064565335310196495500109649765200797949396855649885990985548868428803231183501002691902974898727930705460321237644762070730152770026560724116921012814476619306645778790198415984720056294726404348459962423663066059602156936271256773316825098754338806360415661287768358002502245165688408019501773978841944126760916319498988686386028028076505587345506054849446203786893724762210550837057867591737978949507629758968889735905654096452462600429237234945273047903856824263817443340527340921578958140049873518205103173898511653244900994277877245130412116439418362554039200972240456018887074647171675895335692258011545660352451007927810780115877837366679104179388440517094553825902738259487373926590828299546154596907837512217433387123522496489265625222631154144881522947421852925739378623484200596154624874891699600186838867878862873735721439379797262528645128698011334318624581477139093640479244175751362383979458488617510911001265552912411220451694343863046781748497384478650246813316182053056208392715148935187149129661098573158239096373159264045454253324873114111702679074339450556660687911770651478326311439207373226211279059600487790842378590021897872729944341613149815260699923650359975345786837317869564951372420948719900867299088651682738734862432896318036124667498698264858065513672946558924950759474273269700172113070077119045808779790281935924273184101576053637962298206058940967447831054396565752743418293544794550798365579793671114023111021411410369221919673873923977879098849953207893083101037455359689745077530849063055694852281293117392199470744839874833980075723963158884562165360449882624306585559521100988616403742859828624719948554587627481606007697346840219041893340047852346841777246749544968507385664347944282610039642595267802066090771395037947644606096433566924388741766149407808186288099764872148316239976294977352198700883742919772812805905367430492020165273077249285179707816457570415899118691088514799331203055475875292883714970103448028925777208107193775548406241963307361250747561307397990559784547515068556280333705718486083173743124200046035716121650790932237532474230376479095445284321144589582865556334669657647173200895807976899745343595011565648161056689280834484851840950491342099521545243563084145302311686589427364729982307074412606779042652278300219097375410281842047448046772649664758926255054848538652094181549204923277285108143986500943757872697735486842047241938155337140358805963766612458362590101447592679051595792282903384363303026366515641642883939890951648892041939379878256786297496164404647965250652307637325214402598878182645433362536314398350064233990853911509294482869248341015204250446416211388093673193932594098351825750755537457729488772545184522763956648018145681385740735380130460250209205648324845770890085703457931624277980466153914304208166803994291051078713801354358714162953730656734608605952604246438017117667240661469536446148684747934008590696506568056731244247650852256603118541528500807240914247606491552118676800593358193938734822252644054352523141956021964798924267205036073984926381442530819798042200817942981507087911498527883661957813716250946653799008439105912275087583543457160144706677330861669487735169617911164700257959131819975831827827790301490359988700283381051457758097622878457142216573251818552802359592192859305638585281897674662877842986684881841874924172763483377681637669984507330283694227747469153270392010103726379809272656888382931436967061325553338156947417959205266299988538320487982926916268600376131743808846775393426632851569768211563523083131209350911001406706875084565391273439500801666917988273013152578746347197910581301168020269614406213625808608003729446971063727748145863805223601396665915662526934411213540300127594163058051228519648343049999190102164157267424461877662819824475869365767386630528172356023558714300246569219035329036165736068334815166364923511790002538081859963749021944453797812029098209708574129695227525674378544834980363941467374092877554752825836880266090939953189537245155398819864502555363876840112067362623949841101810794808178971814294320725545158138641271993002292438886299620847385298841213642052390779111445247176686533991729064686515231329349260281787883864768277679240886473418315612364059463318652920738050360029823287302757587709078338500347601831000911133562795458986074439467882208978698821650143755733879272077054390845712642773024631544646588090956750195402637592856814684925843168303607275454074914332059299181877614986294606927078083190244087667671823114517029256809594303629081430060915344782527578307981931083385710883236362440827470465258122721315234902544083174712646525148411143615777186496141636164520765279992329677317207235582087818055293402120311249992937718513923411660736698111995703339965555930978987727708077934750522957385533830635598700991315310636855865751800825558997534903219362330730366477900855070177776056123746945692109956419791929707025139887174579783803402263567621523228973745842890596081694856826364606739400163342721483374045949409427404356606179430674278505406830560132497477666912376832774493885570204542491559096468471239279456355716964268359091031527252555736842829296490371402057710957968656410994155441980206596536495631907500217985020529960214380468268995041275777101744384803903994508869616105909272717009269734857922874035826666387363159600715343445710699160966657847278712347842472435061063480526192813437752468158035287351320063893260754233640829992481324910376669664108487172781876914919193864018899822231685534581827096384879331285265860161363171892295442120099922749948351257851627473007744674283222904787846221132140679710969389971709422337279931772251302665535722648947663466556676870620039901502137816111213259302813779431215559381995837278169287510271327244952743402781563129488706608832818379307269682513960093837608467016799612691969393335472872335240556857437501817069599870426086254035212471879671520655046297134674639669025534460792002037411896441397868395957868847927852919591642056058494685603240160203754168829241409634557298386391330557766355049676562876204532600910627880148784494820426352835000870600058897672584761698799885266077122466418617403881774281028958718302836640358211674103388393198852525565634435696504621102941578232381449387847993519131523501087802117466675129635107037218825345045637226469481349270236237684242164149157417653176695468223766638472574160679357397586981267786115691886367660537667805872089498870682270626117237356521983353944203037890976296183205047897622201150137058097472400305551179693031340783375726132736144321101229544540960719423222016633681731149048457680169939973412737965484525765967039494153512918180029657821517686511949701325042289743274002399349446743686086006885682052284724131160211018034817392535553222855548356855790320898366521509667261217557286945296413074430198713513010839642476885835795656310823316787506574078074527662544893606361293141612668729099647564559110430257480759871272373027851938501146625048706833961159296475880792190952392889455781556643504748903368979667820821108973958861948148203654363239709073351638762250315422606679070615761011670718394650081038368403204143475466601474740268898852914067265960791192943217361308981590865128726137135943847025530645106085653720534189582122026875900821656601913851625381214645910444133473909211466078250768693629339982900430497698580439415256499446381967415671645491421502428315428318978985463164487722361642542285959449741717673813510474976420752250260863677680153367319823493355678746636950367177976354326545577430289179575870301889195380058680936528513983967109998917690194007761981306135719020010026224320221715667035958258804070685584625385064636833707279245470121976420466702098975260973611760313841776073919944037340635749046573679963906581417120017768218109706833439783542364552803039203541246689313076972738947849595611318624424180159535552170798385200307852187030274796092474000031134701329380856423901111480157386868117051700289946396428353072599055848192665377317943567377939015165164047459694641551315015788617219059051817485205558455304766885150103305327940507803001168348209715535481190044946367167248927808343928362947387917303679588259373457234865695141916217637834542963300472199164421473267369588069981794877019779219790819358028331806156600206839948818091081979592176503433662566969498247666520467032245259249353639363429748852076094105691712256274988360093859690519485419711818350647976874682485763117538886793972944367334932654972503861816597570029040269564901377941817533971967091395194662580536170681102972076445022270897892514305023174441222340486424043332365052645411440121204449898614468710713024761744709425931647554705768376064324138592746295693567060908318956008357052665180232455695162713467673274261581416081776760877661837421141659263740097737394839004535733598342760135156468181283268047275562730339836191503860086342991441812221430679065519966695871195956095718095514332780360979184160839510404204730970381264410456201360772593555998611593412394273664380807487074666065536816180633151141920964457564780164634668075996180318786031062782150796290007802848077969325933741658318253459322771685166998683100804750724263092008481058246594548216137145909285365248317247506483986671913082062799138956267521452535517596935576091235059067110676561615318732854791746258698847744224050114018912128266191967745382453167875914723864179886403195415502009977676387142083330575705610528413836944635833647813845409803891451458877213146752936079253874609153043082425017023273258502606140651949931011843776089919510061236032776659416832711419885399731777872132485132211869463164942133865838798282446240740507536275649234929847158455803431044131368534575815230467015423451027667848509547540658422276654753225017949932033971273119470498229425552261708345709962101312552867358962287245642908131865596357219862358844058185592857593997853825660154495646675514271819561639371511779264379863276982107523004464399812372588670142849926888149084199116007987408487841823000447617917768601516669890411530466432852399262328433530764712123906666073736565335886561554972953520561274445318741418144171840446920672176343131531589196262338524536353944155863498260596429594249920764645042439847083132623707644853122342886129478193749764587282537720609767723352716747231319176307352481351892648981227375227553332097532525547447139311094401059410989767837557037873803443019132449825909855674564414176875265727230448127383626669684942232765373877185023044018225107555156784968645897673604901405789408733370621229738934118785296920382942927904999797019329633868514905855345947919190651279204221734061761392243817249857325156564451366872552799711361697571318025942964577884536436613607975062087574098668429545652987241350202387260649340058801421373093948120191235976073462105013166114043939462647016873061302513081792946584903047736945468197538831954583885006447825915694329518785593443853349721991704367834194615392013087101076040682751245328220214484047913509458521564963803235552349405583556479619699643914653432703876303036113041405824101726394310504372286773584893560111978271785100507106726800796455377080927949266508689465769937253552122252863732786438209164256962145983181994219448619907952439380723192911502852887347342650356453976217072113580366899972443876129943758630896914038830916616628489611149244018923314801974751445974306417991133511470043217707899309815810920046770616549134980541445487733794351148182818731522285966238787007497327153974756012822249502903602750289376119760571904532920357132003696395738339541079995012728346261434284921371662592444111240474922552963212933382736430174739982097337698355936136809110987881065590615326394806446710011963810400958250975153717096931840182851689474493733708705372309179277177405902660001365998402213274078065877819835585697436785340998420081663629847906905078289506396768837471505078375670228018202983956587321671288009650539148688646382669117815226635876773819686403591949627176222590753407297606463214496000507965796222218642133149617165649404900844943151856747767796528309937307898675479707152272064221754030974911221506039228561072764238519794243093154100428285505420485295976554957337732262643180207550907986802841053379667735594467047424134537456146827735354058695159359016279303307044852580970298247799648380349957335866135701655234940401654989390180306640619778713306353276388632212034268221891528195659925621321093271497582651646646231036375304522738934069019901180995022973876939154581998970722397955174934700165986139260137619621547665830284235753605707551319538316408686091512284178366344417161014613393813471161224048537041696591698734819806408188865926753477044623916738798664181842524680295137556107391915992394027667567744190690449836263812614183985627818221246672307578661449478325883697733889875016054965521926902262068076641959314030676484788009023596508056840757652564838766882059009727559961315084835798139156919815182849453069408817158046364249846606204462423752233392407326828015046603989632979622952071573471347850518283383521868558228967518035319880558054484171513250468620612299940959734403495282226399963876338903651454486256260704136112422586020102643696350427615180458003551910098692551161217227217262884890036894645796353676679781833016664129598799856820551122749981480705806191100213962717883718479102055021972419621940040161638587100906871631576547601024207842289248420792760732365611873144232318339215207729611389817803156158558456291678619059593715969353341192112921082820219559606274574104577152161024796086744351517673333521280172541341982290105145247978207701553533622815291717747331382981676239856658811986644965351826729672535318994962059444605581163799440527414235098098693284672931417943268438443239226199498658741383770774291027984382978870538823029320343449334462155646711442019222900584010459351342842244947690375317221505140020738285378554271888118200612159180850187779845189270995502636853945694731995750731838059978952527145418143474978250790342276639585781033613355474797349192870612166190820641645595609962880837585313218817590668758686571891009067924589734934590223290130222777570186210935159315389815796008880692094956967086488304166380429350603767749147498196178411572649149055290167776356316386742002506161173325962820305768068519760095518640246890721084608749453281564600407252625789540063557338693026951537661809866886435218141668476089133543682828635004189813206652843262457323148610593107801577470993238656726733973665457886853704987962099042199689629141990842036375901570611853332035294553739344841003098111209223482405484252599461091821194090897163361836539927172767020044571023778732433596770439113758099017215834288628222146738654483202528718074903675221585376818947593081003222196521757889837345409626252691753321073349970630200183752631474309974616174636063525926281116573631706408067223510135961228636587686928288136624806142121293430915583194198877436771665250146265313060018736970728183853139368597703735498565103145946528913025569251355737501390661088765846869911949860116486604598692182109619901326563556942527717895909378096130237655768517797582267085285524991823625891243853018297119672747120722805988627268362843233703452212948994787894616219348357486920391755249386327876458147694594419819219133243969972752945486339125252837974513172884697179930697383491058340402448961333999294910502592714850590175005583052513625928554798965127195236414568596074871922749898888126312385847732575436004657100737617303344452651226891681058882633957909000214810445285834113073899355554879061027241165519567724900885841570758632960330080025005183738405239776296700124637925265713588522235384158095717829403056367427556408901755081789972074334017380219989369367552793879342687238623785216902452960308924151479833539362039728396496162292631557643804914085700892918561544644788523742149066164788465133333922007557273427834577552799221634381404307234776694212419839208217660688521593515314942297721720425177723197860596408563950713569520692249922544302053632143598160859198685575905970012107115177637944030132389262973025741128771862409139458197415717766154380864387983991351584032626986902934459985738455736236861614588201303421141693513674620347367519888004645941666847549189583748003709721585377001998501583119663201558669449382809239453785328882201298667740926363073752843523031785084661262608341564780139496038308249394083549162353937031689180357493097028872584809673259247200966767860368696168910464143839000040686689267530070527072925372437355827525493251538835635751591420509466819286208764770724251271033607782278581087123095537859307992151352879933871697557457504889629680050376905949302868829528103727010775746773190803565588524172979391019645877546592839855376719903087113232813121486027029045448101966319642188457889132317239311977728183437956216595885479168340292340076068341890354703817250820295307128207733475811183404173646780726572802901756930547314944912313670658599595820807664541141670527959160362107314502461095923373373810972035324105762240198860685992861316116673471652433652208418754753355165608618806325895866974931181592712601308525502022830363157807119219255285105382203402220329641398474618840573993922794397378932734952681184804180529256451171507618858687960369233597413486265907846258898693741404807494571150732534979185395419948065786126484538961277495560692865679212368410843172077124043731354361830825941203279351724031364586848292041593220591086193661273400663161174344502940822294717662575185467036589060751434579493000189056009475687474046924125956590315826058909979254742867791556605576879943918026799339388920016166112025077774788663326068286579178528459428281159474740323093832871005375290748980303442462512787192140984122937835751569439063662333782126227513929518100147528053522774466454874904811585004044796676150582143456656774188149273370404600345572569130864507596510842955110090531094812766407361855839200669144854252929094107006532947714155293529255313357377724377837330274129108207676059417968060676054448996540724347644402427022006344226107378426573228954243492849015580690869589896123303405459956956425513055596097416058746162499347147975685544826678667855572790246095048540000476742133872775805117374359241105580108706350506967146482077589624768323118676685578197691019732249432342916188176354558223126340392726010012625341157285937762636750326786906890101685609332307217763798755103133034330633642006081799986441540448249249835884371496490578983190457915433150096682438457842117194796922793063529562624663689749920021605650563086647005485605956347782207439671882799820257750075003166821261025658152221326805346541807667883813518906921952153619362389746679308357568128324643764856162108899647919557186383121001888350550109462683811146188771349856173758388058031048464126907020774364322595183307455656651800301761592203729552930361099976611613188664196661459279265604739132428768737191498249660114875215882320657683519859901947671984735663248788249477265289593980031315771216940687374616346655133078027141392841999433349757116812048818482192843524398275582076118955545011701475881108851298040042587243896217403928312967761266671104780661719810955541884970782349583022055425897458621677313383435746509922204439972217916728688726198638588786265649273084333630780840907190813072755067136084194210505026474705831680224120331261279994852453409765843592307171039625891950242426379335685625167415582565845746311054319901924238849973166064349220228226580067545295155848055598552927944073901258433041475868523459987103250293872433509446251425106522996209819868036913723098801219031599705823002454861932517423545741012129379935393764020841618142150707148176126395884845074197745597748699258286370952719174520640331932366301841956073385661389343314334831813131088621830665113730765449395843870749653363923371319325135991453278048329269141569425221631343192638260225642954514264754350320269887011974371236722861468353947320696246022804429887237225518197768333413186605308276726540387668960133150931165996975402292829437077484280877199290620265224818798746724561379840860904731842195870710994765583331878969726665529696948158257363986661995896015355661806740828619799087142778879023330598443063074846561160060906149005134499597045821405344570784009837921868910679773143614144048777770273788623892168347946975222569994123796684591080425816890622027399898600611510083242774443645858492986990935570026667727850791801419318570638130729313376902098058586086932813356214988377935862098388982116804877678166959731042024908757568431866617060940801719364394539047293920935722094541408638865148698142909959621185530694021667224635964286914852537537904902808640713142268248817186468447983769814987361734827703150099667467756469391917753697078979180305759099138832818305259855381132905531770924451893207939561684993103455177407586805183166756136211466553559168239213539316699836451537611207093958797614536857214003087213668245551649273092866061551502373461963207639816408588390023796589406434783681288199559411672050697019547212595530709363466339361708610800802008450051034063581247538893991757516157392091456220555555637980856720726089417223319562599521751199377490707111355218765848230331591979860716698689170704619418750028267108661915368158274775679435479380040139543821133920346636980452977938437119607458935096144003570412108937153307056280065681839040170364735239621435760342141298960674263988951631195215205862991401954434287730907913510926546156596967518941921915721891935998591650819971473052267970949674314155464245441805276601530019312149497488910089970344341425337041599377285522496397156925208933805322697860136205618301185913989405301307898901083958954975691751097895691822539947233001423947975999023099511063515664070483469740834810144608157471057732634372857774175993382201075036440609066515246925206695999470192438690814449759850590603604629448820321767812649549577073612642433006677587282004668440486130733537596240418867563098919140459753077526734751189518307898324869906554229119899537128792436747408197392748807077211014725117218273627922811745615360159132159548587173705257256528099172776894837516252750920187049143119771769880543582206490489236842123586400806730903369751684396844108302725630706777032458197587246384649209479872279916191038987911772665890302258213843284095424952850650598755526631426028510769047770099629391078000323672520402875567576879055167136692573097000513868829702365151238644982036334356150301162863052835740966874796604535684643691686300740682118769392108662256638389239843636800558660404313056334443474227196281039966239259913024379965691610742197621061267530836306092354773971886434872450775373190258576579267281313103472077499221063965716089706441657907770480072968213942213499614325613453480753056155511455403841903694697647844484002740911017654958553478446270783689278341416472469207089755065129824285260674717534124472363176440416176883766509564883945192290323397551535868348118750481454184941543864964867500224781026898597589635843464483370413371444899508435265045851647966105889105972263499805161095015444662693488806819463717138440809508097071105187483442826677028721156829934684488148675241262827440247284914731842330444103845284728302672956795449874774159063068824483203426400778711442928827243125474094780605116637041733902605635651583042996413668597771055084095683951462701191511153050476436446573632441563440853037825775671724993204267489096287035482276493681201034225110872849561085335609406071968400222670403262042498463831557325125325932677301830841651209849944222788368901839390300487477700638435616435890038902070845673500563881825359995359871397061102639286518415469220461191820873842297420011852865480762384969320408224248242914252724023873665479056803820026287125560494131516638499209259579477302766895152152760208329314299277763669665287805931876022868293045358691874502541206363239742642684891591089004239908524035881412289250053059170954243152586545501929720104474868254842199190473202917965336806472044809239605643743299627133813462651900591398456369319270501925842665489873610580481566754289133806431062174160991435771345907728708977138690619586670841602066170079314849798119575753342093229877013852675636889765427379152681073809426956060134100078693824703086324383897570052617394064955897630665225543793603382327225135700446336245376431491873247322277552891087377603938808770993409194428512982052338757866689014855346633670783545767438429342436194887342713161278597486922424787766202165489025425553851075914620313757026634173709620263357330620792449064237874198457531005086921382338299180647978433678001151367170874735531283341379292225435543294051141848366093070105930630507778856583786136899736476715564309195537703663047916714723264749626195027796539762865131334725524889119764545420908477746421874380088270676703080479578458546519516248451864535138984093870949664823186331712734416818877262108926812733179488355295427342037141182000672575664283725923067453863654910604647095332003670316601274048397594692226182662906899204662392791464672786269576003863353113289364822232780922615441749136722748736891996423328120026045488228829852439821766420181474152832807215503226172400008063845051836074463113227420437261660185664523500291737021645041109593934551553582691336715998585075244090084069876057540110237663177304763610608760921298493913101507467094980863382309199824529987047978728481936668966929961212247610533866931812780683527926390064098919834199397269179663951806293931698619900146106914555016339876896630200967977084870114166656142559692041720080741710514704718290073365915988378090020642393168917775119309502279469317847283693461391375670517899614354398044058128531437681003384982570160889223878731292330353688246197495324141639023415670836161839896764915143089936461459926034950282427078168957157085710058340009600900960880747420797288869825843417016410779440907519926859006222177743558128794433918538757946110020264072018166170396918885662688977288393463220120937425627774922636490852475064842171544626895231281269359339009496385963414758976648373101044123133438522266405702709154603040871079089296599616906507238299742052724633212019156565413322467988388861675825232415463315060358533603623469741182828532881442776573393565178131492686624669406093141146033712845949263949685566821004530390108857903873329938129445058422806601243930842680207776570649230670014055437946582281299794357704920232323649549236247704981930277071367082882472084532269145836238777218719946440336939805263233599427284717319272517774855594126671327394991787808048146452731515717352041849980051260266997802447354256789550518300973966569571761501865830362985506899932385365205096429195109615282557501461958889549838341418171309206010316723335185543306712588754068132274687210265562294682278635918135535336170640918828784835346994677898258354977540395962764759835949534995962398434065716380822074761341088224815959000852901679188727247290088020304272913348088573503305970808849865598247852303143909338039148748939864815407066426024280108694964275631980087127649888456021173017367398119640292435723500855657857679342988301613632568978984625877873247853286527541315264154926203503073489999718260320509032404952049133207549687874483854914813827358913589757991365649232281328386945979394837687049135430428760357207555871155340355261354668745124450396858776642006856818690782128604997351798948315782105920695249370911447306816638846513351288114370804152209887046277954788998731929270884558127996344534562971124051865062607104470417500786760181653860853735367496921348163810565693864693350829522100863823125405624293417860174679047028370345486808710585393072218631759012590523794574027767253047756677450115796605100525817048650699083969971130576583900134882827465526123877325279120982127264342759721925460983215559963601281382002739268851521917746941248672609434663836274635346736242667985284790019864207999114652070289817085101679602523998988467014658413046147730323407403928110554797401899781711528472320648352233399554568308065411333398858548867707147132648075104613744981502918158365822740044542949633315682256020063568520871005149734252428383228887280283595486849271727557592792371912277319274121197551927394758525608469495311465632435950909472054230579501769362468923351389724924413828271047443769943299772254751284363615941968983332271833949866568690899457033058614738469781027281792403835520830274772115517975396740853269746496348198218014499742029369922941217329415119955050565082535828202947645594828655570775749524470943547012244075715500644638720795058780176431023161296407017314702890314033264688650278565279576342945005820173203204908607822011807228775453865943455009709748402849440157674347972228926623945231364204974586994499123085728561416149435043642399361389793035494799949293974501182296872253344583315557164197072259805640712966950747580824522045182952771992613360357523120129072372523616458856573229252776859149582264986494632178893239936544981826291405566555753721698662808572746648273460645563672029798811344076556362673698540976958143417714906256620058713885517943691855655028832752122772679394956450698268686851731862469213807960304027544126290387820685395045218017500759375616406515911957611415013090262867688424924434733627407486956206095536032196924741846425431991044446538920498793935723201608310361185198847964165903607101800436235169264061780023199309620672446460591969588089598481727251053222934727048548291022614165399702853202865019504435489920229806369156450628877479167810005742441356890647804695863134923272335742531298223486035792164523932825608615593602130750481732501040215463632949676157154267213919036330650584896400509601641865889147477121037224429889763356783765458337019023933453309197675672572110528454681174220592378363665803395148146160692971418003323732464782305405768827925100814048545449165115564697160339830530295637541291674265564052301588528312107667681102937175686753267704224931024736975555520756276222724938812143468288806103223340237271329096470440395158908457725271562002235958166599316778986348981986812562384058114157968808504935554098907587051793352123302502353526512965431782090762849625213076614540636460569286975046446879699791935392040902726862306304526686550271616064669014014830680629292794905539947739020038374474717182247832519149018952052494447054479181740882557853802802539036783083645062757839888889998595753115052890008360682320768692661528924027062652183493768490419803567009648804057671166541216532070491952980692378924555948238867343720487183473382946614768411201196646534273468660236294606029963008459627372485061853360797596014104000862605368025158690266851075503018078633202462934426780527142143758800263381861256325218572689403403561663252083997056692354005301993775149579929804048834772023696158784407759551649075847596232224370164263746335562716818895935249179838716202466754991144441601684293028015686209614310260866506529057166658141477595521414022048089335263910403251849610966845657898583739960956022293381128142791950319232884723262835518610266069906669931731899993396449798399731055923830186603697744313434068682607040223650818413910333915283619235229264020095429642292513175540147341293178938200101166415783474828123793626555418836297785383202158310980320439570312039248791135755181534107553355683268912655172135455153800387157429197279598457303754869630182287978238180705079439563613027072072985764844965692478184297224819576730996692449649578813247931420535332062509386902903206712141653333731705635580036918050896632893762086138991693621157894342037540822906782509242328117122833011422368783358324993381070569552786588067129116157346664270968975197740191624704462886006494982494227703278545440177088314411397517547002541901908868071028203528592708927299537880061203186893824057699191844159707356900768005513000529803120755537593989985081640912740327529535833148342824052684355124776367463653387288497690079003577989676460111360125480555295713872429842599592309772673060623542996453663749839033941131435359425150564016062548660929652312608349499893192390094681278842267029402921487055851859257437886408163501942122400001489876712804179171570011717012035515030723581944278325864471751378612427910124088260887237837110081935491491362603301457470917262280037517238529324155143802999443065857981858369422616345284526391555895718554822299325165782355578990758616851962371764585092576653852868909652598952754041727825830466638183493226126369022040204152049872836844588820657015224423929360966529113600012812024497822282964786634034170960651378491572950984175443442976453708131791972997082602532052454369428767008743455695855373170363595463531368919577656986118829901032118908092103449306658210537017091223066321120227086486734987462934742882438975681500543454514132544354926929590150485751368847003878806922296234864094844035603915091181109858839150914274802661767921952936661430994239391542291226925815785461587031395979175480893325493189936180504237069657577274402926724718255129116708819069487495126871102751478687288004740174765449413802715103754214649048654995054297625258529447233665890962048705472888099079820511755935319846378789077665610344967080355747654837350528409512083371410302644272626537571171151942120899791469770707984013239499475806204030698207506065656452941282902679744949288647868786429309598808559122848223313846128714015493910205346081617184757814176378628129471348603194260020862244332120341074814087212014260408773267758027833780614612909161682213363967023846860468032502362356160980950733575090856865656930597361021610830711323188114288291225776135038951970123169523497560059266517832986688956844176850826208823748645555464771031081454097467740370351481827183891738716883484969967719437744269613827525457172655399517036944203184384498188258991700968670248576383317352230613085735013013202266066818380807095996791631557316257683362811200198112197453434779412974630267240799630107627098830792550497762447727244656127112650290990377689107124766233058609149383056936146905502784936897840125748951865554436622794929674192299572553159975242376311210940268202189871934904196463631125045956586379049597061919378852108157792212081246038445652875691991375134879034558299811835604594447685485669017920831120090022678054613700255305840463904634662454753486325373555681921364615823038704177767959728417458863011200574871720405909775847522875479575148370414802993579574281407698258057766533709291748666781479346538572765442784863631033442012792728310006071374984816843639320323060148856895543826879772591214343037020687563173670190663852751914438107506752446498003562146484889296045225443018515466206300424136470063900639462480312955498935606269474667154138631203903921000191851205847023413327627081252182687161124275732784278000129057135500892278683297043876342360229365632374916821045507716574677191098447443282940587749122713953832747093989393277946827767718397864699536157441930046198830814380293981271111315531976789636903842835191300953604227944564489692719358152917462305953392547766128247043869485014979703801385921970461951932700773537275964992113419916401368927407741597687809505552076132736718068390415134893546798288881278921558839698385568102724925437052454453873254287228223912751109539998591586808746393848924362510670204729451590972896183352661146307726711040442816131648592864631953079668318034672247695311845415677723411281278890451760457772872715202045351027636525731335758760827306234132318085160600005502673390449845533635147582984273353988442292802579034277455207102612200441921513193030781551034330762511821383424430204825705289301057128408349378574487678525334352387048402211234855740792241880018273447395697327781079208592644025107641320642557251382372373776308508304512550102156991219698281272950483434186510998532801280762879138472381818619383993337526092612716382752686138192303838691296194934585730475831055113924984603452803258099876861600637901694330717151737353149847783832644307539133559399065187290553959604899690664334440440765191648658210770353046243392850818901860259363095458617512864533744238397999768632182548646154165726045062585108003490713597871722901452260150122588848789436574224293344995981273432097879589292501086070741690865751412295376084130931040292735547511001107298069470090154705845619864979022672627224598303830799976854322601876259159892886501028940512100864896436304077078816444081152747350290987434987087138261754619282825391329443080184745519078501235250281199957238123407147077849911618820884686239203811168403430343406080863273719894886996552763647306340539941497372713767573566270566591679927453276224904940958579750710361425263520605612620731558590841966579647838592054324113458728285875638426435841105250489584136025296282076014530759613325833449533741671976855211383344393964002039342466274015172325044278271951627679645779874067727138723583039067424275413268282192287622128129118277588975723982696877671417693430534081341136949333833020567404542033708435506083001739459617431442985417052121602399504565642052058438112705474201847358576579676085176048727584891641100183035598138794653137300978628852997810745619745998550214835445131026491092641258364082762428350994926722039761026575314734185208174172312041259364076697287811841134779939219928275008190108589565939405647102697564143760253564275583898144921706368985042771695432721661418291944036049658997799939423916940257552775825229095265982833658978876778924741166011721811571958932293812906320572626723915354816014190290177686518278777155239348027531035265575250992754919970341305900696001909894422513342455131641256970999118507690639942175397340987763506147015250309965102729503689798170499110642909063869454210171008021630327681524911593762364371284306531392950209420213594872573135451249088146623338159579664226596159204046593389154207155128441411594723232022667611886511204295964552094705252572859632529267142744849237316432725386759016058843668004209524256826070671263895414592811350065959723475279449939083263849168017446660355731364491306250123361757837005743876540718964580901949831803423066762996749329222077103020066852229677818758001199968213681366297587734600833808146785000359177831153203790562338697699314740045083455535456479381456485654020868389892280086422024617914234706031768040409816831440313279616977853866980171851920223812547519160634779805083119173052322221649886245067791824856435668856130059591835214922951275655159111720057011603440464627391556596581571084317186273031249388700231927937494816373029551630445633636163356342766315848443597982766619375711811375848447107016617140261319464478167579730094229266896147043344748082579936910416750581581804639845704343898769234922772979509577073078795273844331111274488597676368715491290147659330786118213767768343233943228472713450770718499495631154833162896078772024812007808863111001381196190577107845650301519621485817217251363907638772959419443260831688445506876840530109076502075488822835960822729159031397238866094594513059390614687855854755661590181277192012187946732923372509090039213233088011594847548531723518290784354995343589427592455336471785266529514058953965015828562911946016813637651413032758862931357320460975733226398391587686872255747935436087451918194889899916122606827420394916883999391937909191460427001672394237103870250094225740049017815997224244649733955434175917906436034860470958046827432422337445592226281653375220157049550814143687270104486927966302065923933538895607517002866251646744767804744159438819681733628257850901756003272623900712856325218288993433128320741518381041919974679965397125573151422145064372530923664862665220612804777783270329860545759047370502740281638232694844493644097609310851726056572071231509011902450087096951658413322212157110884002734425087913463603357586123251204000853179426707617670665796430778423517185897039713824098560152544176489035047319785527417450180391310627316908879677366156459442046075388426452548691351255776816711838293978636694977231716078026733531896079585529438915708906805388653020146035473347593627305293684247779908705560111764674291048643562083898326793268600430770910184883821959084493843772144090399559306752395846598206823163635282265696453783912111062806604880147069014616743464923738172561372314887171397125003179156334495140135783607407766956901194571100253862246121826550923909452454567582497731038122872959495258892815483089176655346255451130304875895024666563403802442158552298352432742888319753186886789430030441626509769391917223509949737510982495011803974926220758139796488867194882707498037163803150022721476263486351124213247885428803928060940382689228708499224073061709422091265227103482569990789046153273949229852366784412706715090061707661334062943564394598900757298901249568865849957098254888972851966208452140315843579138430381338155043631062860555691967633889846626047410305324151202315003957154022386383623574299832447370609747338594940874874941502618373822122246591695819643010401148308156967806743505270307671482115520513550301226097663699530086306385382494396280288051417452441307536483745926546020688442234306234342418116328425289922119158159971193850303077327658726824586637669389273888204292279088499275815522142051091079093193801340629576078844466053643624161251396719657013802932479850514405828842528196865647943379921537997538500817303727291785039918344798645436728278435744795591376229929020493613522900766861852318783001228004898466887221628385825293083224521512653857416918327788355625638995831836076680271523870800793445915173929688114089259648272208714755365601807055987419114204538407662499041869442113706459047866459086164012746658234932611355367284103279309217271751988419470458293142409891064530741371174037472969880934857050854711501692801717683558057869996313609964306137949572021588159463644618784175560716509559962301654005269892960664062027584123121839309883002768269649382328075819640994086625191524713483917450245667485242787498520839008815318843270872385623926838651396253447449370286923432963520196262478803288417539983819190634437074581370680495147514913674076103839569785857243051060359733221306678718472068375437990193534294239841548072144726585731811452056144185091408633477092099008682230386963436791856669695451954663873701350617364046875982499566870427605513787399398922165819825055951532670951396846115467866247310356894420760562722019208619604083892036613903398807411843913233089190643632568549661121142378718829957554246285059537973315076281288574790380278444467307565667735040889019984726921825860450767650030052550040128541323377801383555065120537961664835147148895278270939216583949353566297566163817368077737495605196330048340537639695328136039228070160244399571726731102050992457426412233550520602207989244735414803739524087969961196241044795624832399333778163484463190164421361414889530634844192089639998946166288740308624744417386756229450176109798016700900870127295677365833676587681178335729046658307694517951651866684303716624477502156168547356494561060992521635874753636460228371291437738810813461329334676278866569193050346145124827316349177400705750937838100690973957927221295632154798249721249365199440185216479250765160483978419356342239548398153470364566880129040151995430204912361654016866592585592143675902924184901915533380451205633792906954854187398762353449970103816430656112810431267452902075762151161744407612193868347234561000749555826989775561658162986405600858590287201911109448405174267745334356534419273138479822110280340296416152240137755001531907514503013859825236414684675265657912236086543727035589850130343133385594486332403363947846260326259886153914424252473729853786374065306907927392106958377035751035861060871717868481059221915210960388442553647457604971656440752909490945723998829701232074110576207695840945955715234386964069110028610676763582205137869147732117629467676958586429638637155210016057801792800445463348878407754653439938759081125560352184543395287013328393719542618887314223315627555875930229023683264139392874691264082547723626020738911019085385419163283484085220652930536667392199556178486431351449015927085242492413407460893985395866106322217336192135885755716808970030984916537306089518587467766634537606717366405509177479229974014773302074523720008937911075208851249493654199119556636039466783798395733692553731739164218887155033393779473207019133626356374724935862673932273286932524919758195059779718736705399555640746239563126014563184800353312750256554312578838892167160642218343226906427459936687864284901141367039624331569476638991689079824641308094414262130763841566821977985983969025462452599971889049052152881279228248207153910057920331848202691769237123114147775039522226292922242292194431212522953679134409461387691107944400122879314547139703284663812454416430205713705538004015193806404021744174847212319014811364000227432504886488646411694817969805358120636723442609165170486642298116650789722301118441764841770590529805254587552166498671917476269466857264437457510398866582183247488599877029295874913227673908267842440268800182656405359195774835879096735678268887866378314007852517115529329917460099018081201759131047220403297813036609945401653966283342440333624193576882246634074558117625373913640664583898428511470776060970179930583166123927555950238647669431046929901394679924689532981394830849313632527001420391322677756270216027638221419234140783750181031800683875246631297135503365400756097174137153415132469442996044584450267202041244234216187778164509878789856722702444494781161881716163772568190037533129620329310115602816799215410562355029446544390220127495175181478316088059755302935804282567099048115828908904562935121319433227885529861377549028419312201475748233531137149317897372322913183375931150090311961750666638106769157905582143128511483211333346976066252481021907859172366033823424859264165143061132761161844606504297127089104238342022815880942624325522631260573387986916766077042953200939926062329693856722192136098646368826181403037113231238378208989361617024852144008667035230073590485613641151268585310828343125357842506386799618894101817734002508274298870127618019779387085834906176245898656346337568815359585327012380069260251154710717817080515717324418050137931187795112253796374255599682599582289942225131622726156045308735598130341663074190301553856744282273253294155592942800043693800049416149333125767810328115264240214943403145694595455619429561801286509018838504950256524438536336281849267274354629174682188821481575652432404334460673317595162848869768614844659272148709096246179204101460577388758037251631105031938602388727093201175131528430447613205186970197320281568482166106138097325695802578869661611230604749178750961301839195447064983657890119084858802692761258034697001252877064025553283543574581391453426858361345326658322508564548529441967314899877607322289954198463198245349912775749460638270982547064834942555531222875796759159628180333406079922046104205904500023087462988869697761518301810994934463726971647490697773161601131127765249723123298105945098537864516074228853852331282756850800305514264985926748974191683030759069578403789333044028452159882034989074410679236104884460151931890836730837488538218987542530709119676610528961900870468499967858741146408237380520164462559849308318044156770631229748988205571014595937464261159884970056810431144088976860664586420888524971410182183541905408632579676571535025418968487281227681512686751571404136628187075996547176468124287526059537772501378628129160126597346032473686069413072777367839346986810348908881100897643858232063476945543769404378728491501846593498473560353328415605905521013067601747430093539861029997738281708989086173053743815227433142722519926355287578005505014908265636326387305276037620376425235014946091133351961362369284183983395037581325067428387691973668006007374138086413014972118754340468297081936751195622049544369476210700204656655593483420527297882450988466423752330206926079149154289902713922547437695498307399927872200642707489628147494286851789259235089259522922845266583995792789389811647654017650873667285073822730536037933026656680465835315899073979131043844198214962873470977198001976827787465363240107204258112196707306520893320012766495486554009759374986214693727902244310974834944199743111697425694905378911573154689361615881220363037127188627212833587260286757199957512314842539278983212552557216238344746861566135888051269691993092228032995520071369028986569277711014155239955537465200889217228997335488849622227262493936277735600693449331886097809394410375923478454585469374570081344828478807864092420672798186866830465920859137354008062431790666552383178274524411607339913359474597374877822388119182309216204670168391380764041071211121802371936795353849931615446406945501721286624103028285104753713865846836694548128914776046279782588357077037043314836574887322442575113746120376594910390061226939570825932825433773964806619771850923581816459830812533808100009313384645502572753712471797069000454861236314196887950295122976712633597549503122025907263470420730843450798975133295031244126256920769250990344449746700616281380604038489629276139323228575266981671861987378518380082750294542582871093790894875078495571019904640707423119305889701985046854633532522075838234235601802235462902298796867917248337123101902003368848861967671374788456441107990643766567303446742476922457475122870706937159259661532196100473874473341800663730114293054116868568320547103766203102795201227758825132374756768671992450680706399387361222920246858230163623076897741865386871829284226339457725765887993095016863493632479877861002487023684125199405725357158655165289103252780539377420523534774046260094352277085154687422415453458365587990889550527175985827469864968308484625696434367027192900642998297913201864379625873835534621949732825280175415067493063178626709467126176580018848401287940785081626316281498782854993317570781168048023891463346337074284582389582917044498848799060932418713101238481879751687676908109677712940891971408200051347070824224478997457787259419259900920038749186361297621439410120138577298808343161089773068189004214809429589086610563652862713285310687412760602472545185596461813179611008360820758741038778297263427792002903441654442706980191077203055119026109302273670891204783968366476520020775043996258631037020225745668015449587619429917689066457967539926305169776896390969225568493519091127451459404115206229926586169099009965114429040412524551420429062622785464619045939057046203626979944136119122262982546315605151818541119990330661726053982936032328839437772230466527342640066415638942523948147115574770710944077038640807947839302785776694050831614264913061915334201046026022363500753198081142945570109999122382082449509429113419352122670078024085009908055907129983620943656838661463911805331580905277847330359237460413895453464322902537753028540621793382213664498330429303352528540256310941624384051997912724495126701468649750806255671794882788167472811637050045804350989453115288759207706821926020631246924519346127910326976090037951958531598646330042673513028573821313275143419556771210698686142837997956493711273499384893047193690033384889064643898608451037677308110577671763862522187261595042300711795123786781341195001060182433055803763816079308072009181186618692820228045063068272516814679750847636929524623769083769519733197518571700213079973966516262426661628409961422746674903495592821849923457956266451006186596396806615558655059270365520123078956806208019162346690556744375837825422329176187641940559088536000586670669874080178791972465991537085313145736891387324929561918048902073125918715942619341771454159375479913945617984157277562757173356157091594432824777999603200834274210352968832701543039126663572485744554018642414541856397793143967696070843966092841422791396655860901243869607418735414345484242366328283609331061236859117810067665986447536093385689156083350164485408384699999633070673665085994752242870198955296494937575349257377804878835576409423160644914216413618549891348384014725560755533692942654858907314850044971467941662250454548272002629455890787509668636377158584051153286696118134658075040590302152179373221171593077734135868575725438013825491263833556566679687433625241472519484368373825988725477487939183847970638552454260625871498975334790269856795632785008572873092005513142885735247682677617393119457430107201660630619227791748940446458279855686619228253450652750573951594089114616301920820616470282679709643458458922207554221277896317615027380186967672376492601084962146270892585107575261022469906148940163942890682313137888708004135796266775057440358057061655956455054372592110767063102438605808555164751828154500344107247597503247488676513235705171985328109689129402278492229358149060072793974616669697293473719169916663289207913224134721017181395515627656709836476291127998516366002994388650392832676625861079169251689024262365644719985346692348504588258319027192089176411222790938718321339376999406251142033953113495246366078341098901563142026189130905562783090114882198056678547342872989216998032188296168579693637498341355307508675162698066043646608181864186799750503380358367378395238405029793412188964939842650547332409208427498495947606857223221985348282665621388281812351367247610881001299089919714495019445088238564362087243722765365959617033845551464806710598689854162270037500902777232624985245783388441979371916350498262103005191452827864294393781342732621701182485720940034816522581445775448260113045744791945936831473492101823997229909487931442100221672035392553683602970139966540533884472880750722699704020195199182982176115694964007495091388640971324352025404682285861394093332255153042838664885041199898854658413721506016022651218395427840327656057987437490892159807822065577808433524189074371955591033934585904847024807968584008037431146578004772271808852180167617234879756178259588173023275440269332143677716508964645286418037031383686306953392592060554091054649544916938988498192288849413816133801202217064454174218589226567234392871535351785742576104852803044500115904605051130872133936765243235552642684572816674274839741615652049973901890722317266687125630506807626587717241844172393265004022355467342894313019286607260084628133751227295355437195361146420239705196130532057725453758989270225591539934566279789031188432157685042238803248893868023234836252614507236974465519835840739759303351343348809865049039663633410549028683356000842042406400544252391711237651611897474269094713421291848498786479584681686139315074353771712005582819735639352884122811353214107910416749805613669017063184170976970455996017771753182936180140759946529918391165893573941804408062977548982353266210054164958340367497390684459396414813926409087939933712786196933094297724015114601775078758818033079291938226452311536375127581193743911079360035325317592540310059316823497713660425501437381257981767512629391662388039152405019636566036864105207141036295702692117147616774368127516425751866354167984699622274845984486294475833123475172652042657407904850654076748200755690091359230654917762329338399970813568560933068033044091161716485033159058675023978809217245305106823783857590613785423430990601271070672135200924613539619782558338606788669287276232195732234524313508168414915196434528290113376024061876268074020813053632082114104234726393087603218001901275560577628864927758771184773478082077244834417424300682870281289720954532457150356797562303130941295374162536966085887355374065250574019401402769978038955990024052854565357747028888491733019013135617769111162141057303957469060785827254945203612798988030472388430063987674777375437561470384143484950414054188040046912348857729375821467821013047397180400805358086353756323938562585063771995980714486208027193854080076930748626371907249101113926869042699485904390238398005704831948777865039106781736647606906925941291292781414894121775361676924750299460205715148895889319700790647486643410105442472473648888236387784091941080148525736004498840345714224101696780377011021809013904943266181030461078300538662511211592231394186847647377377007271009399441911405027198478271362814624126132543478922215798178779966990837985519436637401429204646568414078197310831509251309646843660539273615586868608709651396519912767227796153491364204855373391794209236331623196730335277210998222222510728502348851504586137204014143344424673585084608406025721067569620026350899245556657370993623705018677559907348397759498651422861727497932594497619525996347459124916033483760187030078308781070335369603191728437864710414425368630763774047439756521513042847632884575552977190789323575150335906094742970078695220957931034824173757883985759653143512479668835387902008345753517797319804393777902539318729596018769029129590881140047307460940271937699624645545924903008271882910055491674903743938550680891064670891986869467821591362108315103536904409073295804057627044253669260954226215874894568763096847128446861115923970678323122560874681125992709602617675639586280470212405693917565803522840824206777580092700598212809271968447222910777207340519917969415165579896558805008349565043726788603092046597721005086569393428202306021017722579318224901382370535345001169916316749973372433255175765908198801784518530970920704089299386863285092558353889793908614876218080310919953572638459968089211829693596583591466981516074376747410417719054437594674270283112771581178226096717883346846687088669536010449024519138074010874782932917604514990606126388933340039649541928700567249672883418018704359070199820613560936414809843431634339831866744262129713588495065546082274012397601492155714702882587381093211498926811282096017380734523292407752006818693253740727569669867050138642594695353337885736994817176524082434731064923683075076967027648543379355112267806454079802769256104416987076907388377500448966969714113935870771058737397425660109620031084971945202113551130387681680427183637766578531429948370730540084467287330255067362239066639628556245520012149788703827878308790313048873618821825700065498047730255231116603376887115517977724845957309609224261482869046085882401325274351463169472408700743366530167541774443407335798741852401271286811344736357573004059298520457833481438832284925113521602333888486560422495248016109718722501590370123335234784172633470367806394145815327631075745639473638512184593416469088611484355619825163692300125891563398514061156094654621543792532559020505988184600114563390939590542516635105964684582840329753024123639613316902952491177831606065578280673834919040122761871151178438659731011403304120830421554407077347856604163244612850978368981821240059718071713837251188464707845569210388733530810087369858725714600801486182400167563543806739076251185290950405334633056717634781092335792568063439856025821537120245065952935016444228217015538014271285247894858932298483205933814403599609804387084065810798904017086745562223720457070480983106824690963447300079483016583437662379026035716340268837381571326246923879972891649740556586822432497508684205521180097973206519229074842947079149834433227829979772573331128020505633787370648012516136281627825152277163391331535796389890720777609579010834032304443319334553897666467132137354218676549464224899969729657150907021693176514293856466721124416630834651738129391378479288368231256388863777579434868761026627594735122419595733820034303810424010853176777418979333787192293573284220250283206770652566167924300137872831329661694188701931384795099225991582427354495812721193904711514021684288340473457707615019585879431216138515059462773812367583121815654976962575977341344292967468210984028101436885649359453890645487793261560328572850964733619072073125116190856283076345365173458534437130213965342085441097904159075391600715454400226035411625122347766214046722141179003375634978350467977411970218904654303641128795433718025230805163906389762141008558453578342923473312751029972547697010956768263232713693434197311085306392798567616422573097780525365341793619341887327674801538171623630294166327383258915440952000705256717951602367259577234813070562507523126356516205659555867048627089006574780665124435086176297451593718886998562384654885023988339168224028884135935240316762232552914938448370118436142242981635948459312875823661991253196102941103312129368720275078086941979768019488497760415894196182960299892452458424985079602595220626300107823202644321609454492597388021502433649058202155942670156607810367986802075691704106834338724644209603774489137056426848473273794313948907042701977522714718412086409285831267873598425930025838395485986596453987766106666755105336176296068114525210929948176580504745070661000757308776604450439390905263308618723673079160878517588919471257755868545734387421291168691543515722362667493514423037961250383041473381465279991982708155760742928705698881249400111338337966638770386354800625753217717807770708844996285550840314033710206004573001952379960727645880972541519058716654541656882093377385274061019397523327121553549996122018527462543385436202724852757824738505559443843664564042643811217382964964597706959942668721841055195091515818279594147813198869733412330083603089428039622910448099547204302852833120750022667211484267230581503465485612015715470496165260331526032805112912842966447375859679706348833732707962966434257925365058407146489515656350200290105767035765083489252239958273851376811525984297252826867472321321563751812805725436488536071075673768791350064995475430534360173813057178578168824924852778636780556516489891596102107633099588713728308265333991200759387587825583805481036374525356451234763473044398763616110048654375075531284907384966305340853796244698085999252082284667357563807915875782994769277990644774421362110951424487618404039327521079379751798721853787349564618143663544843051080915062209862103885999877520248262958776550594399570102772218300494871972427196910880738058210179660987249794101322236064126199455776576888514347195048448727619169864295704897489911897680929818190205994445714331697499934811783267077033759843434915740969319938309625432594563996991623455339921478646034352607976771775837444566622728070865776504936054234861938492463084458851139053402345830339445533659909922084915869400901453856216309842769955505133921753898235418705090031724469220541444312916265844087698027098228902120659401490311047053083205735891685455444350945164608581720269376910957100709580688528592997786968062089125953174241253446063497329445181930045708942977259307723786244282086689732282856231406395310422981692952420743382052721516460527212132948618816674748716496404518543419171291063208251867101219329571783622771649460673631691203488870610723619223818402052368099038995188983054356789190298881258662971392418373685600788329091392211481539702237605733662942600897861508814894240891872824736583556123148663601664948099863272754073941799453938634641154039098383792376258834345180253809007042611274543479887381433756031006740642463845537485605654803430086878682076555396381532373666739959336411025850149541244114401780444790603930998593454214834112150961121844926645876937167580658888958969529304886929725723806782481527997981159375903500830777847120035865617191401371580970395117144806690455420871239650075018598745528375147623805469708961155748358491940074859849258108049536515321973857013504264474491919986189256727400274512992453639293091056712246906370926393313225142842488491091325138473801509927443778392700888675580270273194312380542445501565762023009945657522083891387695589307109983445953603353323365679928686080509256637457598732684557059839282254243396946096200130336409361864279454735077237716539181729729091894186637944063624888010301397452112392594194436419611191712524201331522736613534539998989592620964870781682146495293847273682481406568678539156020439123086072328922807347671781719248654370610445039726112262495214230415065854524365085161325325705699516646113888358517200275574308768447822730179838050325954287397981420229907710243520552078562440213084020940818555149445204110912752786336387346785835517948261490510081544366256873039299000165258956334131824783756867039136989276533971316647125683986327287591673564042290023100483086475877437716640779705858548098139053207283081116797969104892783914055697109133065518047228589962224188559580508383036192550196838808084845909793592643548823377573534783398396858399087147015533008279560387239159164830524857990664973695771826838626679388220225306183712925670679945507561664551375089647885346627297040090577994773745137191638591006344976983987922510939074269433716908429577760449138448683468989993528546885224876374123719457941552727304797255707285321707700045591979660349474447704174011438579662716288535423367932105720661954433968199504151387255423582758617215615842689046793575483442290442171775573690706270629569468466504556361858202235560360124532580837501901233338044398688293817039294000978998142318023362040461336880307768758212550258749774464927267268394344587315091513820889736905436282010222920376225384681759266504453059394622085690230280511325402271847094891258803334174291018456619548772321432027287292789145514873631893823175064044588956587212499959074242812488965545300739359080953437191732409633550170354293353738892144855787355676945506179601979071967947533144646528009065486031285133680347870323104517019862994402106604191023832190564659330465062597197489321961706121385648695487736214812259620382442749362920805323548159396367955914996731901746289606278853652207243547418592014261643489172922620887453670746336257255741583512131550009177519579471633633655944746831494379208232714833050534763846933121825600820160139984739426698301788010491469559149895681632373313677044232726512481714720352872389458978356421526005287189305076686556086574713475411358406172414054795700558419033333277290828432088232144643130233299959125945520983650930609530638865902135826921385072170278158552797701782464747568333129801355323547905330857219793646147642403149570025599135837447411789813642171259965795369267044685609690735211371761689274711512356038887016816055522504579477810419155721825456683415343708453394404664589464262249404951391953427198853942864563535700568302988505698347147072706300539306954012366811972988097839024524653149198758980438922082416610682544063456384314785689849099662982616651983511620780490021811609380521198552211510651827190261937316563559527487956180170084079268851518647838036329027148691753445855441715275523223721134072343052559631551040012241392492946498757523443748466996285816550907054889166991886710287868505377797998083828660955523572679461233027625197917513907470520984435636333768845380602176876628471417210334080067980867894717568450512509076236178784345287163126443830389171835091667689928237464453301575909878415701429725176616991295061189016335373856862352185311530439621052619834355843891226673712222421425560786709615465885674457585100479669770124317723795456749977252876931231306831163845622164377242605172185959710120092772305252299228904604928921846162038353054128691366204330011175937656135696909930981737853452795106294246227134639241422181688944007371169624057712965232670513603152042906817964385134837922703370586062588831906878360242447950622559301906775353886767752127040675936519695169552084817298547556060921573718506302112099346875797574612257936633603480888535726408514893461557995642480355792958143827197569697070762190783505002979243429619663228880952061138969267732061248287448714657881426156534236459455756230498957957274659484845845973091306767745128372996467687349096950413590789841327580011713942758846610016116903296872993412986141618018623069226328488098685758574706820849240172046489924221908160698353200406280968198559831009795042202636915502925243945936465929275962837262745162333877623965344323406790144515160770599860013285468301635155530711790012414103243032273379893227279713921531380997445744723065738020490243236332500903515254620500242168693299129036958675047609285887191882840991000786395299778003925375324111033623125068544144707228440391472294992406216560613366296816946120512148052963371821532164616598200324425350017643815263324329141971630038446114570459661099312065770402580651648396089600683733559302236369341790330474796566778594499433529422531141707896623342547838587290325697332473804553642796003362387946705023344103585069149834379860635956533844169123759584365111493585782482003993519260828287817394674750761360018268239469757046447856697276726964086709461381142304977618304875381439661949667410936461415665375850262174542971310682865424974451266958243644438274774790435542327852601966344601770591504278812861206907631615027779639073217916454203557588263496810468346299234197470624340497687341224735546896357137506364041230088204660202989025557281356735695831795032896139208972692730809878277786584126577997401077741594896441894390569532045833804232188362102443018789600779604954622205358073424439295509245533922844004980286456539200842514601512438904500249749655347387792783431397577657288510646783639324441346171296198761520712696293157840715606808572434586803927704135554796275784635378349915517849380678830021225928958711102551803452418126953633699399692543432722397495393940974300706052332696547840672901271261920393406396598100154709389717953849807223032826018017660056222616092862947859653968111197833385600051738689527133254220827004452949283547508770109351674625004307311097488056170339387986351907408040129278934407777832200242307038573676476177558545632468561025717126423467875435058909526798228809860875683228960999650966195299950228563315644730339259850801644466491201168709328762795145819663690090855589265637447003927925842607369414844277803938234178245236284641758902895939875819735654340677530332788016204260593653976579680286774778978033079805891584259531773490247918211856785131349901687228635326941649661999577885336008337959818925110882792245232257760749684128614662142465692920883212406936864820836331624089595632762390301725367927701059192926705787888086977875180426043332781475448140809902754275732695870955080269790861455632065785560086854516668022627429305061389846541638681074416107845244477296780641422477670436250035286586236702445431494262206423753166249222442637503416589709034289605197757833702187008436367135982650081721223197925196460539229553167299806378717825258261077078368480732032995813401183737072465816116349646953674437677936071601250469129512128179482046972804560614201690394283280260889035627085281098711033770203396608868201681177946790923234946635751526409051554762928010495942058646530696708877872916527819630232663671459783498573509414026630760699425295097297352687500591419419824015230137975409356936299067444797549005763901745742454644515631509108695390377398209612573231347939517980967819447146451108093478372757270835600461870447815496340012439345842727635851152186405375218253462591486548350480363112367112496222335546375481233552586687168342621670393376970958274277561026643974972215856908510273380352237397632607418338659108671013890965715549973498172479991980933060375232220078402261080413515894579111915032445524495584247359718990227568195161028296610082918622877063531901735095627241651507327340533174409466237290323774777444517130391869544443076057439498653656907177384695720471527209079443755060744671561285061333008559644175945013053613977929044862984462750328230402867184369049961135969039592029275653710259980986591351749266190872868914022237977141867712487017304713445263937117241795213714342758655142054214687136649989291048879715549043456767403493431923078622693211166442566049739406264950926912623586312317975173271024807203430833694889613580690547368312679660282247202859266622504397131687417642711455996345368413397480007351729205250436782596994262024606528633686229621007599253102707324667894810831751814300895449380226289159515684545179952808279433590922130452249710233520201096859658262180603522783223387881527064624678645957964497821078231044469376543487968090286918079841095808498391799130829538098517619203471336724459229598811084855650709863799787723287467330821749707648495617942169352708053256351939092679089477831735889259412301292432239892676723748745778488804320211144372702659991720144768460564306466441901256297235813661108831686492824504881661814527440056354463559955343645045448499784193070749099826356058781466578338213118610268449356376795896497710747078463742694251150686253851355553474506029210522962792993561873181439702535119605109229615291923000598784706011913109463180181260136981688875303646880731068808393260731303481920944955886628677816544251486433530382162689540578888839333714950293969969035402009239638654704763290781506070538356625933301776234953169643587809749094358294410798754139405940430870368815734083222693088993980924575170750406715139115875892650088620669171365102215478646961377703487318107427345783141890388934610092652680535451630555610206598240747549619801999044773302144641149696785754814759585829543884725214645907917471442053731356646312949315495249423091353496603594474287313233337649861398552235860505286931988322738402841691639656560714188851703578432729185819019693986994309687271435486937688937354935980560852834315071591878142658087082987412414044457679894034051723870361473289819606026416175613690424826917875760573888078047527222821236932962772230968235825081663520354792957488220765071654737444579559082138055003386853274769565726468922355986234689971974899773729317704097880295767196323110031756089740120306730949786161900861033084547767736143000404702058551636915377133916323199670444651660449630753570211472856147379307850491965153482447222799492493193795379683691412287611811979091397247171168691853315218062971063624483102776333586011725372248859314262634213677800833306354564753887164088835107465214253022425494416455499830233539726265650846258275684721010929660173110681745841142365357431962638001383546815820518577841055017114632923566966393794873477069224180677353189890669137594707350468629468692457408828079992785905453740852280327478179847292874738871398808369659313324592676174830624857907461922721198905373495986928562733489870477830536997608381849554886532719026889207500511159707891072854298045148824051699625938436696750873423520253737213938112004014784444231925804787848041225910639150016759416581740705448705559631005205196388709365628790925347471875720681390584041415311349992254186055033433075463296188441164742369441209056468675231495217930895246075015989850561751503338417456251285213869766299588697034911729289478846378984354268347503768899411314685787660084464748226998378748605879201380108139723139712212275283071184765060522890722706213363740499225322618041862960362081841399535359455567656628039377535616386382255139175586215547112071554653527358477137944868920189885139381017100967187454331862785631986133583655415608440252409565730329857453124072264817881835641944027365264454868220330396614043781373773416805221516611006414248886561537732422436111982593774457525234058896238765472838981418348874216561359809955270743507870538803153993855371377647345306751106749797943788764950828083032866974177676156937917912182106324372279274818158512080278622040732853222921075189876695876073978589513087904792999088640365285727956499706252763585722397034428313131952930415803141677406727045419603309737401114868858325229739558849291386832512087198730877696487351387138639251322946691689263677535627125995823244048142179501523540909057821752146475666756113200029864560451367900101540203967738534228374188544565066860875840944070836062942601507193286777229074685738300701437103603297261740170513466243126932009028009126338757048425636600510205075134489637343778376139322202138425524982346421616860241820191057503296962126690727202780920893498811612043337393861681574327419362196935127741882153633006530306820343942823902081292866515625852866595008182383034984990789457895611949494663450622899913153763562723008956022133318041337123665920285618413705069421458496914591198767043628999641426553224431317066313535316379321416227558217193653444311826318393832474810631510341052338122501777674322468114185343156844692059420683634323656755545197149027853644341181910119059115307807038529623751941938115560374401419163864674806818305481083994202263458566917076414499372935275205094653309832474858810087297633150941636955373420649426262191361048500543704524140111489042690237701427713947019416701869231088649854898381136117097983307749325289550442322611286816387257791385321702529229581957078116250361080419317864473967567794548434542424711348253111969112397179486044296626303503524535825297244361501011104972014491981491738219222005724709741312150688368315210354378040580521840747137165743018733600676996177480673093790804319036414365142752765063782210516730993504489331937026006640874506200166349600017039872343127139398507503695136531716761185833568813148254287542835897023099505024835302340100317227355546941463793317651733247118590494297299247618089030884454813651789043543875155435072182299338795643623708903208856646545046612786173285024915105019609615555898048188473409922947018911692343575975466659093301630300170463909149693280870685717610125053061919605394520727237288469490167115094405751134818959151723333330455790022917127870057855274946052211136565535628410309731719509283767350421356331974667306447104348065062129831130565099228693917826596795204114295141920739702830047655018489977967767475142375745807091988354859573727950607015878678340756790936825224454439313311691657600076451589103254391466997817262517041674698902706780656568090643943422012158470435369246075835570823041584137823285402171642451230357878644441691155836449156981065991078130290129662269191569918769266071015352528652659482309458324296428419808820263353866103560590075620926520443629607940509737795097542257057982535833118144874356236018004188219957156956800391653048221123692958807267802265232126245580782920431236472651800316964382808928019250354308799137488537034388962752352799714300667289705576518538773139069215565543852874157301249922393060738649739298272770280306668162836203793817188531474070879904213388967379076978957198472277853779665068701684524267937196572307200443605669707529829177605288819307878608899317922945729954772792464250639818078149232591655235023932279714289758152542135150703090699026241013888537472398328487654089175126539995651721997638297266124293102396899947268108532960966939318758057852810114403316108918472230553300128733016243351390660731904303213290316245191566003122009920462548738966393642812189508851925530299854234277829784769179611135164755061585427165797073069686960804636018724492331177774765910748249192830257877630232566664804528571103932227559906858820384610811256017425574291835691206334696649196576919639621624369099415704941537407073206202679400382545429703606963193192819613257100788554609216049371437536710600290328348242349342870197485658253535688478109329261695653828786399631056538618031441387803329244023684746815650007263963016097011114913395654996912367757485748294559154657681864086721193691018336886137185918444774670041962491460041367181262074824232682738822443605159839268557152085976684926897914217470870080718301773386552109300976076587308131243461170064532044545884956205815767365648556344692871520684257288372228975854597951375784339940863199818642906088897300780105208223190664410193493072273693715299545432955430233002917048019173444309351222046499073020698172834931503775227676384481590391620551573536187412303981415987988804025759044279628724625026649380143568544954388287258776278239581879056957363690784840466793572875100388691566536734372475051643981765409451156348662770558752285405557602492996628448994960864144304287267381213651207651265132140071994091036900280704448901765713921152570888198219635618220606998481479697889532264978201189736502138770573180487610800883316060831949047466711560307549787748041535156841143998667207364666158617008908211187194754403408690221678973294450372038502154694308487186782805148299129582795246273190725260773621279598262268434588739719608193071756842400002351790653973883591858308148668702692070995317217773377315270072404041303713674572919181124336809557678325128115308493217618057883573204514029655320905948108217779116373951522267466674076317581533101409057705313028226790034428686902675728194658599117780888548137092829419107336885374852754801177367706918754026285938596504034512372686068775426209399339731752991281383501259682721396357341570626828018471337538264390468351439979316678735727763970700508861479242166332651531626172982813715862174879631875522110093996986966224196916629864732284179280974097709796874991483122966042338343966507058211418067168668372555293340265494774351848346748741612857341886152697073946847934241181354684132993474800192437386566713968015976127356916135543707140427011073021766358292346504084517067926503459759188756585193873846013901077238083058794953895847803890931930098053190927530279905950890075189255627010852442615595851297670897298240294654716911759076884402019112957510496262517749125080729984372157180648784473407348524040143482090149129375930592006734199745975937536638561925492522769537688275751032516310566904998322629423381777151902115618885554035381076296219504730024049338153290769074654059423267288550642391578405040117986018827832621560139437919099017341564750735868474975948369473360778515755878950328533083266030099562790767235361195310257405807447264723515053313000462064051916775600599053615013356243832183831600990363200792407175198681219663893305358304595431740737275010554190236193604954582220938886476331765057947653660015225886626846014757424690354087052983443191440483075573670662979440988346782805262973540874449422313275752759998485710324443985536867157968191782536575618231842200562931761608234908228641476991084660192247170768809045744698989605444288963119102787205774657035918438643190574524452157672022147237098785158699964694450323416676457582027658504693703660607968718248631966493683836709064443110711004803658602727337521512293025850250187451606066598188741717070073106218563732797443528827519604894707721290258243827175822696904803180408634934236623614146432716094016688903807488746493069006591988463423903605809862317521367970512287858084358366794825459036880589875238020822685415673934098037092462999248849230225089263305181492649161300563880442688284171635541094441101404351720960539111779060393874016473939754712604749266140696885061893239290735521098233465439264698824766644495070941039805805958288214597452221060690594336818597286924288021296715164301090208881577686494805832267474327803290468042465172644581174242158216684145064913772255245734192891102231216727661727388187149376620980641694275346610809587445840842255939182388151935869673984033436653472480094527611196033847494553053111259432164914803099129564015132778067364351829556696478585049489821514861560462972800647791608471557407633878306519084051589173092207683122745121548997311237165136398845964788281764467834843316612591880665397730688029800449964433276377052327076811270348533482712318090376070408180033644751463364914992446226767197414127802848922817176449330140258746801041746988693176512500075706715395825464007936781906511308904296332552500772238310734308752201385259122197107414211730254514454545905982628215690324681475184608160230194816054549380272312334870879204568737343771764474764405986784636068799246830210058906205928797087847080035680545484848581283908438787758743527323564162312063856712651224124262476776023249623214956355369489952483438933151897255733493911598515998442135085944287625883956511989814283294342727804678730543360486149088299618192380756815675784053372429745411304590478349651714067920874576644496105906102875608489877671512040794465513022035823324752528732509890360031830293109006145005535496111905718593329669167824014892524013909925070536374301051389702961863520095949271899101557444060080193352949957833194400317559075008066233059498497988212673708824940839437616653384503027190342120660986883084755427082806193598230566247152786496160964204461646967448672573594583967177810362314497637159489711474613591755329458473667458757850999176335928883071669002312019470667239048221089477279250284086307310003148928265618185348928456226101395399604761140193522349724054812593362907009223592259663220047236319353002590751952434586313843308816693292830870927453510116510214015809608464530542398335864926302919632941589425917457083850791128681337133670126180246246558753389773610254446380283441949479424309973197552518399967986807716449338499194876960489358206026586405489847777362750975847541953937723823594513187351336501448027282285845675023683739422312392097031109081863149952760850870514537257571680052713449684403954052685982469551168335718771114554699088315037244201012285885928410937564101873747692794458785401678018294774174689992565971156578078975929471065919645939186219876556188881406858993772645464361287412988498661226108247810681675414866390043864467529849064559551227742649568929411936320658257209783608332178781747929284738359032602856431369018395886551270178382388300709261282581994571981369145418039629030564419857685940316387764813245724490503493839135735844500672998317402891789607222299698343967010087095308036946836243495602559288511969635575088148952721138696996460827752086982386589938732967815564587672144300228441972132550758931128440329111229030920685625587382945514631255969272500884110112080960294040912509770586033654982512305484698971778414127811195218140187739862786302903657120716485753297851455762542928436684367253641416017976651566058383662231495463798141602083081702014323225039674429223561927443936589903326292695548668084922563761645341566446359825976561691689526066048583346119038091570040268313898548518946478778127327899043689954923995104023345077792472840077627417287335590613150730824662982940438477028767329551141819811457421830825617047239764777405486073512267271563548186430824315985212679191018026445131733752059843799207612331578930771473211162081174706792947605919467596127858929642983924262254571687625162257893620577206583809005477882405019730721406809123257977367314310560698563009011156763297596097406200217763899034989766663685902978999569477375575024536955969933781592824522859677540836279134202707932711910390836539411043144477328287669566082415056148029087720476423757062907238473595434725347622791270499913907684283913030286298237932463512055668766131431068805516265030437461288326647474484381770682516447450008662522331867418731536024006303005762698538080807637498626115863342791047467221126405173619856861949940792705085176736415358995594652340270568478409068936322231930216336552134863386562732049359178397252556583785413479008674181705168485503365291515116035326190944192103099985573695551880165978078383780451692337105957051001157255320222681998313182649871598915078160117276697881429107583655129127428190879184753802278636899176406805025979910602156219320972739585357399852735636561970192305344279554907864817319942693730703391474098918634183031420359802640395356561547079322591248686164657104137853952524809425913596684077640448007779595384938931834983427750866673067593396749514106803850090743441950497416076287221184773894841399079559096583096284993780729793546753857313773950709739994669684749560445053432639637940213106409155650647363931916980290773622641399533474375262533604429903673231310158431487977616334054123918818634667641871266869705779619310299983089042703501021438275144522663641450135707011382478809621821462114613740657963215498977016747902512064034976577912625783098403438662630317606197036281831903795503937348353781237146655719386465748597458355653905988960919534775252672330197480394701944285839898792362187161952329915363009125517656145503459534525142594944036119052077430648600998246676664351933836638962089883932075742361196882528076071178479345501655539955389030998015668575773708142933322434599949694091792415733775220733338175433334475242344932476868292975849533181279206613763404671204813590396518815571784230054022153784584258054755096368300360695513765103572702519758320248207874713301568351561682991375438257066224596517538184839359104785107648838028889888419577209724272879793583218511816252228445720932084600156137311560991067647065960501077156481085134685574262476168818591502506862845894012351813106459729462666783022273080289430365155579154280236367069574531805960586295720906240447598793068499179392184981955088490132723067710425733949039266647621220066582571307049297422639009329608798943382630410846509451405198277719008559931499479568866621205912889487727982479015772350621442680250922287894808202639330556366861675779310515794037246532023875117714824873917898618249109704304583077699557589634112302302844455851070182508600227104270550673807290405506986203516588602576053780192529704821606291884400435047922894625720012647259522780025211703400073099184110611848730417367701176534333283822329894080156004582329295202009994953540119463894659820961681767970285508121175653867261555601832115372143840952480690103974750335119688274478710505217770238402870432875196265619224668895244269118545053046964735293667338852238373488121131860303109670563825372171450205488282574973471563059779139072259254810555703661629124800510917020188158546208973246948310153739766962753604689893171331276055853166908109191987355431938975124041247128997701299889816055091613418931833880324725289735408146788324194100149720421745673688456780043033821206151824516034918707668705956302358145568633050684794701780977010188047099926144949045576423748588204096240234860522035304952073899817611861020192445836927168135865200934436281748926679973433655395607637629983516362645298693833005582573213656395748363941888555641373853728186550405118526428476307149556434541487054695058644538265158148576580010492290382010087997396753456646954124746376908828264146459100283135461939618546113870959984360328797595980461741233263189407669672056507114832677649695604625369142538809145616674491823726395136982347289769991867679283840213789852174415466598983727022012841652691244474072404730089634489235074710381631345007656203180462927019434084337152381877180599235825093371938065666906426488375627016759457181763346388979381764836776112156439879832518674226812818823026989745985651378553431771915033003965412990695612832008992825384915059063921321647517700227580006392900536429550234135249352794890496819628314552147838999803950783601561596521485092524532612597953147244191924839271577011230407723085633762642040591842545288001633457963975985374407679867888233107726025071502407241630527196507912854485435822894660335406274127733271227673394909394815100191401237109972607005582308319239778896598772331328409991289094294020529110640934128617528754317683187435003415217197246996181757527239491231987906897972344074423388204337128596155592473133065514694171861734115269985697077555054360072497375190104671944810255150967040988423426897261567610057891205450449881146756760218335104219594183893498698188235765166452370185335417297732954162848456075813113627583536553142033144242255305756496835746943587237325917156895754211999580765760037813629207554723091846973646168230239825987273582790132230242785405082313792995652251354820770821674430644712708285899240516534302235258446085833507804845698997529040472043605356383033485601731525880394030621457461842257256861402752290167156778823307937390739075272338923236936272153295890648458233088780478996654984210869538070630761556922237336038164279661696293581801597732712140043053275466461910277948048663175772166539048641558615404253407047259536872353793970141329567125708786188872475077888282455815524069867305245716131375842927424261593730981874831060966071985037904904969357840161884441208431236892846875696537670537149581908199466703605185841995911136492253105797045174397919002938671661671772016718971224167495968795570010489931260325730550909261986640607179086661070322171590221104133916455404563137517793409653338069888100647656252683372014085251059763567714285998205874432299645410174321499965111848642539062136537291913856127403005843083586380821930450871108523009804114590966543149410525975414251485018995714446497204617843047711511322846698419654126560921101555023670468957972678345814465338578253969113557433249909467458888829949482740220155605731312873208618369015408184977188120825076784146369491961182765736334791756492861802043774115913565677449333082420029622664774794314042171666951138719329784208083527434435459330473825459944593613288695278298337499188148396442498028624273286368906323515636385588583397896964654093534630920972068071597223240564559587669818139044531847564177466096570725208028591044637641548011531550877289244502373219231932822442099010985749662350083284096236589544098545308737695425633174341245041710201023523539475629668087793814004409576168045917094905524640211443017394196530482357929126386685281365107615705219960790353768352292969488267872119028508760985209754230847473822010398935397583599297046718359066199453918232083090341485280562097636983151391734296068500124272084482890891264496044821441223234224812051338897006076844944738103822300886068828350656459983829526792953530728164878806106170622796162176433389376264503160402365429984469683203806240049907577891995300724595619261053655568736949571021341815071638424762656704441450551466518525259664696450542231516617011906045532001794278854627251980242729654361037278361650333619452850033209652091821642316955741319383012029645124243442958486005990982816861881094636375259407569001499816649263048273626366398251315302547054301705009015296474014639987997939541759272269015171861863618151222679898575529148875031420627483877228946496005005222133422936799083927483028868048390728440332893252305718349223673246043584660246197847344302924006195737334358271362161937990005179781817076815405263272863462844777764506434518263878540458328765317790766667300967530233343989102507320378227414938307147704149405530819698290891426087872757660873948289153715514366336095422897125849218912830696862319602890786870892329356165964806545266583079641262682054609995290975448275401589565126579774986689538948684920303403363671637533554335004554495872142746830317130578977624080662360703805147975379498275510768438657056689384248560448404544783809556909733729357370653329231059564282470392114655098774947058604773357994324423705688835780034921790431909569132264654226947098511170052938883477394549485818979722485205068865332075584100537318795646615193616636093787878385849502108564744213125351684359662678416023242946146314221428578287368916890971225841771059857192867227061366442584190152364859941140118030730654710234741609118723672913179574680949498442335590076322615382591433693416589759273661191041968984197660664908428557508828560591030446035337668799899539628252873310734190819786459288991491162703922021873539501789250031997849927437153739903234752108421745798943625531405095815796046619632789973602033130561402512663353587756331324827864199562757345181182916477648885980606671788838852184561069943477319844778031729823488632139144922800511223715492300536844633295076443047750398794126409503453676981901959173238458135443342924199348434051250827916085944069454511810322726889323279159369763097177692700103471638437046487469959322423190429361848566732912858528935694455721562448221048852037439859387097460514774963316764614520537425564607450530585127248165295987225196482813217384848512500127418220410056062508081349756775774179202836651220265091396699751044114661465999950460474587426187560698974935991469867644832113205953302313849964626783516331017342008527793630151474190296949290492713454372334950544256912403485991001591465625818130280906101929973095204113066027803214688756001451877162249906114468196718446141631431766440165686744614564798004739090066314082273307903477316007042062027007291424937725740931229028188654846140745232508497310838590022275666485627931989524768721673884228079042114549570327994693161700488838351996392914918288833258758931899128602261413358981907064596594990154040222058402562694454067688657097593677265056852720105046647405199389837036012626318546719144675019906350141292353000466376480177094609003384603238107125561871540020037455620334674648159635798693798269246851483762928347592173171971460215603222010380102642289103293972290150185841514535234084187345432560371489941981023445728438311536725270787170625805652101112450752190720929973265857742323732278886826935194996183570844943157266646490298820550722385911789524668237874703283624302836350888468568542202727989134334500788135079905487140423232731451529970314634583179797082987247372593126398638703155418801153466047827402497839549660407555095258072537547918057615396612749365382812798498055548173117660296117221918249917983870431390635818763565161736243240255143454687298307149378514806344764953456805856818081831250961988181356274540378389654180765759546946514943225306649170077691339620155952587105279167669492469302772161951881335887534804339418859237630878635721021356154412595402222840260265297721014872428819270738163420631412985458506698325725352821883501067023626119584746896824962791424697118785033796399264902487371571188711535010086496156161479213924403459010524837960822339344334069944614885232872133849923434409891636776764352818594013362545044060318667138589731286193006933195355955491865455460719747339384818874913505089867559147389826428597377767273098243302125834471506113342186942347300355798279569183974604352335945203556423430974585575358197367160399692178396198306503046014308195878654830730446423134046243627578816593156963136905128231911215762106023178104449845014743905015277348999355547038443244069098282230612884419849156279047124118597771195651661116265732199106951584013370292671862702250148022239255981855862682103416154114422123076501215386735126849282685595927146920210659969562505253581042019706106163415004897971378507005334250230327475545348293140391708907468754573672457314859843374756254707618914615843341320299071333164796189276609386734884595649094085735187766093409106173362799062804121765473751616958155134310135438444745936099924472228127106738438723231727335497483243690078765958779745905281051532669355381232233682409120802734473510770036177106416820359895063077862403909476497885615166410262866956940682038896365741689420244400987535424491160111247527944913483669367876944110352796142127786618910713715290527553676823489385083625793784162339145522324401946998375771669925082150857052186402113932683633619347738220533066581904445665889839148243024246727526941573872279268977128373914308543265190224745694585505048685080299497452835563228578614794750689025056483753632939113934482813766521380087221875179121512796041296455330353330488446503893221183036621063749139757920725556353002368254633966921267053472717881538036524493660781654001218490612633577626070018119374378558193284890717088395684428096370146121125325507438063965341092951604868792935815399570863689315643810936916348246540539312850495017253356262852467843864244279687892009679057610320189896811598236096001961510722156105602155552873146916119350511399531029246350867126544733907992397160679350290726105872804834431142650166917808940190596170482974240738571014967583495032667571389828541056808782871308466818274272247746934219081260495994168835840257439230097580165614006027000769122021878188021505491059960247493036714602254046566622075438851047456658023985703791273810805467921922217819314060880809804019856936514166681964276549478778090371170043237041442347180633736941908586967471203013165434988978536691875405423841196318471483163000196585508615261330036937001861692153624890236664384456621516123951992119261040871543982688194945392581992754108617369857649332216148569949394215690513860163731244228613359983784243749040896330572161925390731780400587333840596201057459928417841037445651500986614092166241287003471265996920102640136460305907266098126713770225951187539484980009633115706072040261863074192965598780032834928739121425792840756455803571463745159925301028111624601411397938973205775277457692803275313425025901798136936058328146175631969226107525566967558789334975941396581049940973045884657218770483140349675767912484091498502736413802795864871162460329852875731841290290696998956274158151438226697827570728503393095910394757720656025284676976988026613301533033161605129873323521948026954208621829591790734947217954340450022628731805238665295680409315517920709053359304501029598447743778741721741246593201986904021643464422326398396321343999418619448340630456099855408977044946177561071665494048941874327768941130959572838007631182804894909667253405628890767612202295606585466212015348401465709236636111843422299227738169581953362647042549796242444594830922117677233381654395072123252366714700604302806665725167944167385569960497724120070967456699311855801737481602056708076515786662958271121850437098169587906841333298092325641354775129929545029041328376936836087637760663995573116693682715609950552572494723400819833096189570565149839042603643775700610997670530396253898316582503275726912236597950872276731471752737073540255858951552783475973735528546098898597704839846125479863597776569480683092417675019017793524988532239791892481253324497181330470047224540233935516603871521496446051604868702262851731033822601771339465317283191374229214954035790265259684182423285697471682236158764453349826659975428966179169443113225030133408483206036112197833729927809599687700671649050274427742625820233384325627819116524941981183619032883243184304967530477741839760976578537583659038960586763183395927304579993837785131300405350354758392673450359461654416780296306801623439010678368624997813362938575417712748293199636732321188507439392824368818687900891089693029325825617644132122616971877414339927266532365055633442126038485297512118891526980299752089923912636939023050807372320497029076523125982017615086925850545610784845785830234807669008876073664348745903332557119245304988882369568525175413642134826859850123920447994669837608238887321704927313026620647466358115220826438115273058624714793688346696186716261963972835733027288381098102077491419423510706706169295244983306760528504491402002386102852184177807981728949582055240729359762370315875851509537195894845364055636359782571134582862694574517428403314151049666274294928887271999872694678864382793258232452578074999834375696271599638037429485030560030711818222825209534626454287763526073211222511375043917597998413145070206673613386020734269647026218791890498258282055139041171199484808979899438901891458011480227445518318869168475853716091718103477791405884938869684690776646994037269124338096956009392415451824595538491173875845979638189454566057873614761898285578655891066590794263024732513443950836836272006234596642987075458634210785600178538503092423855570143356189928055933308652268385540524354519193407520210082792971472062777054848246668861138837626455125368197642433035784812213218883396357386403641397832454945566991262396340871298781965211905380376670700740867445698753584420472987484139490888102888014453338595364508787108591649455807025335526660872763789782427984894676831714198285809547219791038136471331932425087946326958605995520401268727253553685964657471809703164935074940414234372174220212060050598936095846639812213941874059629387734257827424111541007924776015803845135560980286132410226728882944461597711882090745757366376758401245557100105177253294992264541644784624346649139011401148134759128110216654788047439883844045994011283692529354918327404718959623200426242640303364809886697703583889425241215542829638221256150410954470468296163551882779298928960566395615107957613250467676685556039988911395222546916569604390412912893156896618925106398112073364425797043841460223640994480190801766339772272533086052934698025152592844749218382988393524377963476737793145427898203832124243676297745756156630242273312073428658466560210511102650621890739072113997190833835873328787777720370157754419746846575265526279102228000167008712194954855388474307878839941919833660923823121100671510795390763031687582885566633802879871222085370831903421255762040214765678025798973943301966639462265856712328094807232146397486244481038663374003093433967856481951480888874265124982067282191123810144135440495436338756777505076994847312186029749448939572501286786272300171625212953854835144806632207807498877174975115596838743051120854771498157291921787593668798606844782817092817504730522470642366230296247019002436286399805861601603361055367221090458539311453250620098200104744996431954310058088261473674341510758580745891682358634042608130931429698353461551009536480122435056799366469783994522713236150706005465934338051172600546965039076626524173680784655493717710017937777352071181714765937475759487656485210574416141669257400296258545367485525919454328485075633156391018595475073427295210543725956825922671507721124441525947163764790933236963610518851143019792944635934577374633052030368494289780361578786191867245638294014848415628192756259566434842369953357116259238076851232605863301616711011702570373699735483703181057493801887003867878911315942825355438444495005913687222967622687544508556730158790660807348795712292918285196617865180318054374764828567666862090124916484143916134294990088394684012703245992398758365227459298100094788559163953147801296076974567128727049040248489258726420483598541968867554040960939440665465707244858895213086387306733389966891255732108327718430432139366060671818105970427483663956655862005188398337279632436260645150070658934221821969319032900926123471333940945200475344556623539582035807225159906178677965066790688067333134976117830298800907060926961275032700658201796742870275496726681449047080737158566091316569630285315538763155386955822500980348646125639210355675970458426312758386034811329223446345703518924263952527643734076263797755261225713642886163203482238022223710242586589514692518418393453128297622384538939829680464984954934669380954514863246573714961079521540259000292211281230406531513243037826316460226128348901481054062773302424687159467887633002601158789619657209157343610730570933413788239882267175838916736202118759761356990097587461594306586323168096701456103801783822288554519534627434262713824398889913777100729686041988809300726686527120763585096802610842029442152886534041883424116457595400071065090859021938935830628683378422282571387878701743480761854731283849044550602321075215360193016803641525497995194113637921514370614072496802383062715075459465470976266151315776811455510270574524250762555684381785896731693533655354118692066893703115813077068751586580810195061681336918092194734965769991064134474596260449154524627204571331971375505586707203089373502233479885636931753453875205055573712364242180745019997388396974628305560695018699285865173487205286442896106110637636237464188764136215760918643868522867974032390831189731414252131532511439349875587337289218423400573048877358407115136951244687457473638215153304735755169066591915260074625859373148383056158894832570459142484368168288026928422384650279261420546084424041688293483588521007845338628255384201311363093488182504335055453213493604094746738416651726351014871103510673160095788950360971723764697118328850500223814659426859688505477136902164404916916670597911486780753324964912210000971386424312423838134330794484869279341667099866649520713750522528298716412645593168017842566301136120448270729634494508550511926637047202598080333538695197871340754985340633586887821932812785454119517346989319226579724691306101632253040760105616973395893472246947158697677386704110558831530814897699509443217849389936263475749265099227558285727495712873203470176538581844466393728998859150404853724803724177834300794471613828176034921628047655071912262088273855549230143991828333839507567184826260741579067070279113352814799726410478574259465003767786204232812091598242287274116969187353160838716282131945402625483448817883119577903072361254197698530174788458660015664389142158684127392230792781467259407079551845088284560396249084232906093026598501378149280578725218816659817301359626271918158827582128487864349122409876566943362548738385429339738608393902995410979795711181713715098248176744836054662196023564354903233802013319555795682181029077039949739036883660778391020469487889701375971519108745281354559711408165991676736913670738772454923938429733277044092925834995602188931873143124336210710248027613899878826751465930062802292966084713174744229136598911110508325247842168021440425431035186671931583554627445936775877309652091631244679196388709864519376152100529380862912017444415042778234898093295809202181306445136272772151981405226841384162408023467820062167572480455739631508209086993205206465973419435795719472823216898292063072972978278631462163149229532530562500999956565268127818868648526948607983427936310044384919764829091135041025399193234249369190714590267429508615991034456081046288248607553289846514133953373272207812157860237970197967092133884853767374880646407348857067534539536757546166952642656927273132669769073739907537674798740315410296874333555414529309602044944372829654289456888650761988329144168717729503179941304021220810727879982743028845215244676927373906851226805078753556534063989556843133781532969700483946809236651131308673043240128822215587084224616071946486024835676112534500307266955066989721523499345152092031662185218435854773921442426927001203994294750094126275186646123697115762958006173756127686275935022509697060073695307080426320584226060096084599983765758673058631934871662775094400733296535275337490399810270383015504517709003900368305148279621636820702395233560669825573119200872104827654439180549295769586279694187446598102668167152914757224396781303738626401122556112029861524866511351570273416190669887919269794362225179799293731271649856729027301009931287063200468099309927215706421329673599105253867773484166716169193336846378669710571259862510679727505984409452306439561172491162948339957311089468533636425404436690056203341504385956276464850612176342833657321655282445426603031262329114494187325278172552854528133779886281139623917377971905067242991375081693496277800634235701617043842963068807131166420379571072604146558428742190879147855875107190977369320011908435591029349705025830321490296772952661387624916396548493719502278233372647712486716305485586685580024337808185528167455906069617839602151511375248270490541693885269301063260187171089960437081329838570430515784221813262063898363277625207323830362551617704211756796031457333251568450341408535237761133560652965440876609107885521646216161764229977582507310972391200462336984226368481849888038498577306613096536674711427883618655760887391963139806371751154614129971919700487161294765151364327030756319841476565113652479965260680993250409445945608705944832205709808479449836702009692152877309009211534392661586148788985066970140015052990107039439613496468417416994015272195849167010137848470725126380208730787134216969177514357275803034672065726438172634242544400393473352624458043330303954358644656349755440572051206580981661838495983481752029306165741693557882005262138527905379225540730892059532239424617286636245964733685839459840854894893591049865713302244542785274742729392635524358916070288208485223020155523929654721053859064394330397323889894384727996035401252306547669671480921790432027583616646587331068891189274248001219713441841405786824024871636749410154408045444227774702821338757354841233144372738254941323865045585906676756245092889281954756047180434654447565488772741102082469527289060247544005667462667913667596399089218476947184426291882714004227605923182934712815222761954884980729196194084638336878793397122200352000889470947265544410836748731410062263975711962403341314287408402613697416384098785478602403998202912377100695167815467638911453252457060781793240039651913784179337676881774988412594540383773460084887301793452064157945451708301927166865842008935108514612773973120669540613251321045350506638998025806539495401657209679913243797196148663611323690662525261550610814848345003323595650899913376487870633966244867022361749730184441512039460453540988795761676521778893987251887472487440702473872262360856894611666409657057733955971539823580171592899517571642790403198602625137059516333308449369574646044627135716974554422807867378376754269968919541932123881982498971317365419462657565357084080935253634106984381573799620443990625421465406230822548911719111814172041846392526294654340295860474421806806006958580681708163219155959797432134206592056163318660695624456456730296879550277292513593326987099566875592365539830031232441822153080284274999175527232697289295932497343601999466895095927753287746331082278683426266891123965728700757279756401367903627504464177948619294241510333258545599088386563198138906879672382866933902474770274945190493365225811442867275897909957962776558259954986995844103800120396809765220853121904482897721844078962248184310660125868657061083548407706113796410725020206490571596137560096463338506248455823665479190424319630639140203157791323952857524541361254013589662268339570337616411857440567150177697922824402873437089558423472007160433386322905691182969457355698590593027129477169192179958578875206646214894396355785764649482747066302481691097508107107794214370524374086026664767118509724557358864885135333865585163652104941268138298033776338221946052344349591929380584306039258531481789060401286104499109988902784558778954199202725180095136319438627387167859333416386586010614988536791235907767686970763865389367436235883588115356213143600116104839260414831008534531667773708254877137528279697332323421832405329507044356943431090058926121742614773429006587961451158754268610015667726999807714171676063913694067518536639127205631410313208242373263660660142254155443457540478780499967345812910491507179655035683138753961338225485909030120245717796357933698325593665408640044022150201091188486748619961840112704016478803390602031328635059144918958592955621443432896173480374556866144784292370166991900094988347548119424844814944902655058896711623867264097769712685614701028789292798012481839198087764672958579705835435070727434123910378512055886797629585870451685083035605172907227541361086433654091571762168856102393203611877737456942836289769359498254658669234840104623672980736877350590801755600489577609289688476886197409465749118523122299373351201454390530071551052895402958078204382812479070218866732766714946233120346301068868581514769608924298373791229136706280255742823272973614211063787040904570705874753277531445280078296008640500310642737834770510915820433990112368733535221660123807930085368979366324250511494807885388335857929457496596431830528035184369786932590289977575930885499090811292290973388755767550078587510930749846987359261178785411289141094792983018902659199351581600671440345170737998747364595189779063664632640293939584077799530738079374457639850616457856581725787672879178066225667201363260362221966584930784579902278810660545487720817133748291848525926297621842462970633172449176121056040140399860764703898541421980606738593054063173354776531197526876163210947385636940994662799475539439493361023667940433467326352256032598391795234464684660721287799248280380427987033449186276688300573880373225005753202120154564529677414597282241366826631240761951565996834547392190754176740196723695950543171552325373325422434416334321504113991343426869357050804938762962144434603989058728688745204510883716881402703134192893850361227555490961808571521527428745994350123898093481072213617796722509643897396896334026888152696433430866167478043990528344217200887893691185115334886877054343429860595952505950898214358322864265337867752524633680430980343617875634855207882417451054802800364143443008185607482869149513340560455035082667408468593505813063189304477676064366684153124589030284773859041280200786107950556542034626560018987613392841254708691835401325335370320079358896212858312934609733215197676869016864302910190603819088162170030549759790610906927617555732887487876896468755356213180441591160483112194873222796024403068358043963237228442359568954404431656230212186602898861360258411526949646302421660603469634927210824231655651251434795581441598116458072924705023052999403926218926971699432804487498172393270856359478459952262358693771257713486318449567433422680373519419342594316852504484093928764537903951439927316532777547633610216003026087054447621203190300607373352623736465688133001281893365668549731617582990677934794817893087584018122225345468428839257927962075784849729101877395820949615910974571956195236668534920339178938674150047960333492062467706713906491730575070656576625983279351361125945441269907320651997306760652304508775873512926303266451573511374693455869650810473588436684921468955425549525469466413232165488140601375486757596613576370884227855348125863178792723606067229828088577049831735561559419191744899490990230074474427287963555743890995742219574059593771711867903884887832083410928070814923285386897452568994215064492949904220577542906733338230654272118713676747589074023967036589938730010390815977708585124886693720241103789399937949527461473454967769345716631521856401278952638959423124942299171129547769669431369445176899689812827442269083224887234751137774959990326182122793098341279405434971335837426690025464485084923479418005016608733614019217139221743844561221559602253705723037929902712694781891081048601865403615492952845355410373576867220902417174083151091149056751067519855101013215858280615803474471577435167330969254697986905578917291515378188500667231353738161336911901400392894486473407227120062868002092471949692033846488340194813157574808309011099794156776548721631808999574075026131179195855555684669028318410084673772035160140558354244982261061571707182770087335800083142923307321957353928310869744199017754425390728749678241329815446360950004879504423706392593245368326331592817990896460156710025345443920795856710519830793961502733713417530568887067212031321385897427125818225142196738425536560417324651582889011477051733250321725791721211458701612244178488199360511386397864614270088210382798113592922750724130900856346427653345239731595538364787556310968904714427349576841515236344225401067727639535405224737377383871831678878296700007510860821964395855826501304922358275170205666515377783192896819342581385998610331203702493274906957455798715052754293315647337716403500916823842830524678961338124939053741224858463103026296643437719514089674301269933672405281862784790057997884576327536735699012247479332061213253749252668013189925259559257706538013118926629591745191383683697751812882616387318452901317211456766590167956584775582796217039177542704239253994054015843075520344686399304750072119064761697165154265611886545205321009243786541466921205143895463170903683523040088249513155467929878441211404572883201500821007448263180254958561381819243492477029538966674277142536939130724316698999019355418819218315536472515099518326703993777616031374492854086563357298941633606217459174200687143273192033573379446095351133562485739131984363031285970529844093663504263774365032752906273410912408803275854770737104084597542272453340102276449163740577495014343857467861436253449065684227627811468204617520396527257013599378389034126106708466266276431280787856478842008803634624951242536980941669805156510374587656363405686582093294162932955451561351530037899651649741404019275030776467163819841138686061910155263759562558387442967442391647051164424011789957696451066085021997404087117834457626158279035752271622078151688748406030699868679073808976817072725977928659599823234302463542376261844365077251590376220133307293330975765154404831247654622896911397558804549410756521809179999190473226767754047843943377830048974200038491692518054097816387076965052060989899398315637257833080808124321763940395232066049207093550365464773823885816778914418133799706223383627514492044597898911278778293644600033965340847323510758171175626149451513016671372807634529743425497523156243468609780455344739814557183158374283602686045130425748830516211320966915384177071005160199296194601056180899429047021981674498364984704770189251688833979591314830443368410871153319110118137864103414902893937908758016154767785727780093001255105072483084444387334848814254480215602346239829080429825256207400880106700636732021948989017313903734323998244380146563728200314989245333188451678136644794781909242078080061203095022216462718519693951480628598716107377036186835633153159085525414861350635979634968084727917045632981262661963912477669011067351632796538702803504864824925790842843968968925321614835667135284195076759267921463664932649617032026037883854729902637624580635673152339517502276387503324760047760869812536131425273425319539913173546801715035975345256699766754058078006108513048979443009410353921675413056365890790965593128899477803009342449301867737956921522088835972245061270030494487814534949097915036141002724766549732401975973979862993396404502225517386501417855131815858531950599643890693629120341344851609680931295420261383381835444041610679328597475274285846077491376336069869138799560769288293495983900245559829363488053703776183799589650074001399857160144750724589164374454868141969215674454840005994286177848812479835766732881937290038821923632769389074194439399991799467898522269816260790705473283824216860357190513024216258006534618875790662268091500645776929530340385198127391475743132585469804289838449886540070802705168352858732532570451768400410647790369003342925720353964088800651101631106848926074339399663644191781247793651002326224569768115551335725381051885420288625947082502063437184559372252156803595588041508286221627730112416800249014528029318278026907848117229969447270039966682858526121930893167258566386464624227624566514217654183216329066478698241178826362176555522910158280901188283053704298107563995599860883071391381557088547989549191590547090352035871370764251911429500684382514058758865675457388717451066782752589826445582755107390601411091609614707192934420624269475971982681459028558228423025016727838609330979493447818265449158500868250521625243181777041482285362461687116774750201832287577656038925273106928959700168114186915067282438149729979563124252140442009684301190908466990691081699619752842823417211495334168143414200679337782251291068996415024119858328472994312262949171701004799128704588700284134442668202356283274847695855624069363235713823367866548750887158492982123133780279233937680064592808468175240164367056947585107103087717131021217964511956429112748769033451611682020089362490323118842503202354333811650974727765581873198532720119102805812124719109489437932430557045938170094905692041689908646746572470233968267692213059268394172297700369171761172850707725215097112733653689644826070447267691470823426023502297944940793929235894456830663220470147739087684163997002977827241454785636993921959760374326485839678777381721305612907293607374417537831684657602148574819892320496000146148201676225081584454638314714540177227797793881665212137828622482201381711458560963061188923586810710162976742773481953043882793695345107469589826350682912896344663245357116374132287522932184566021519356883487497595348077208629701049556751113941838059606957178489333526051215279534570279181589253863813155041700247601379630083173331379295065075141873907282807437646514096544643698355119438679906885707590879804828726319206232308196763663733800178672225935505655092055332744211956221909135110835280184065539895495228422516505149719214132855531335915742018457641362278796758617737793638587681229945851767601998808019865892463678565217470754850508779054539299874845257858280824293888815797532738017072181540467390068907923722573436876167021569140690041382980255239615350378642305508211410823417253996062640612394082232407103269202358905928416394293771101463372913189317108563143843902938467970974771176816304399785531529375599380786392170557243891967586552565702669555737145102017229056616135325184211882397325728559333643629250848912186733778885746839811244863611713045861582697208437062595672781128609590264673089299360658947548538951714360917313012860355555022881335779043688953172011873089829400210023588758657951716163579132239728056684405391562955816145583761147862809078740799603849244701577382646642942524294317130801696516487981126977694603441183938664794151709161140633340528740155764433419430651552159880390242877315713883660741713996143933469797831418927698826207048829413580125464916927484791048103593951057355014056894724553898634752120394607144430540824093708747050142655174344968235399148185207821669234729065517362015485185412153112516670485793440084703066797315689220228765225292570379213335284868337672048386955231029166773283086899141151167511715942744766790297110236193428160497793054092410533109758445581022223679335140087686924844887246793052870684859033272563343236858131547783010651973408420362293738802680547749263972745425715014781304101449681134301819012439805542722246307849656915734541578468319511207004340018219036266371330363397041766187730379611537538390387005293065072737435570809348459366090194704758543770859010681975387038824470783602007080315743732912774439484863920211094352588494794541541015010956584949175320911361094708250216259105462115448618377087719603949559167544790770083225453129428607004025197398298670798473333705150794288850025653766507278782711436674312463684248504897719186248404463501898562422431947136431561513024324590517769790497955267904930529508945281283171111732888779649129423507824354715618380181290503769384924384011407412668830009563154867136237706351898188098039543613331155885913228107251105766068906208725694446619023236758581581211221692575334607191063756295888713216717370920669412847319183120376431840363147530535245115323343726291736885737941332714985138051992748504126297516459568180240564251420247262975432112004671214764015007787639878289226523783129256761169479303603912100000960097100779534390380964368120215944170504496044669329879289790224319980400356250256365829365722260897316071855476042564024939641333136744102833145426745900811615494198288543729001362986304142620769763161340629094232007369140379519982902417068332105205031448411686174767795249911562017876390208763243733652580100681375940385924767884163932454499810243530182258719543379878112765244739854649705728582906742330431762392042242643207629759412344564156932293114642724558815640862480330895207656784283173612691572518644913219571252707119509640298377526416304294967693820516081420647551962751970508163857702760999848627947868303251831962565994333498338834315274947482257873275296630935902827007289369377995593825959830327686519324162697530807910325238490124733545619775049426539521183999466380189360411097347601354343856219071022996753856442923581728138180565929490160477918050359438521821672861147781680472401043746291210310169473339666418040093867071244731531562079368702013214530475156947222495057142403605477964312867025777053733777023778437519066882196432701668716097497003677483675681640267648295843482618563635482925341809195865069600165882064356492019918067617967373722482231036583200419693119658618329190361451262939960609890839339135393506539344476420644095637794758109572893579659875699544824595660592171210748461536852596106443569789609950975306820703862474654866601664690395912195878674726161948514778588569211424979238906323147735010204394784858892493035801631727331842142896165053091083994938025803137998580092587390377428418071709122777194818817297456297201973826837879167292261278292931743454154247518112466651523904818086502612931477672444037314054393685436481137472635617425122655087311849459233739002089374189125173939973229305592482525854290935631236242652570865742539728652398181297434203288232701161253433830491048354754145613932073567040924056989311683700306954914773137597628896385059368377967641232179245880751501939671696392643593081326374289220310306456674158946859134688518520049773836976577226766788197503266326379477261956789556735926705538366269586802498204554230959845672410253775775749637170363125769354467913233122527946523498323907463012220379880478446434630186194198684032482247223862595942154895192745757258276386826254585575154152542896898115966366394254353282922093279246643462963815429407319669104091460498486986763716935495941023855563478828341642797454050887185054536299505824092508363824737445384769448218141125203309835258722687843661384731239828818185139754583772850868828519440451375403349364743107247119908470727827136701628283934848233279980476939803459774567756698883466376831942710395472565021927364073137796269552836341768916099290669135493253614816710531963955121310670238012217041301770605850567947221082182730670476401139631665084784263388978682729064115266506058237820598281045995619806298070361647275718649696008029989064835818363027658242398733264289429011793050500217118840634018069906493233103395279282638087583494061358017161909420917010134125571881066058654514512272594444546676510432707990219859105198793282283650968888273394792017257110803900141290964827980275963266442742046811805328553007847791803565365928570054935148041629739782969947114164537671709706402782198776717169561616541314315543310652032195666097436082830288518212968800903800283768848347212531960562630424112500072136647529249783766427058793151325855879810310751822086155428004457333589574227239238856019137945789913262249744390774874986763534535232783699198451738269980194850256625773448586741828866218215118404799545612638032879118439209235634670287353707603770571916861138037275438685316546828173588487015582393069915491324581756301657747152724162734133429369067281052469454454729861277456848022088846054185479397162553219854730681181611030474150619585432769380074796464319142496297578415023297169599072889478857999569754016536615930043319911522818164862658289590565385821472262124117276113236701334012171711201606859103698489155593103412482706154532034641038923779303743279381983166400719915991564946445511394979936770429219601008475887116895198071002311635865486207802982229228700638322580012764128658248378009044556968336359355944812463868485119620127243683382393882320221078083398190166856258566918108937371014824517151376533384699307008661539966838993963513814280565164759461100653608822621481419659173664851660786666081502451335890752700559361247858067241806257186562414314424515300996166839882085354938887273200694535887914893265904236835577204118916834779150841949623283348002697601677461581377053964461684349595477827596474686544084993146315449879314182918116947348520672859711523907198282063157284342373779123859377846517085428139556658666537651880754483836716864309653846152202883891616688596483693653847887022129271280122525433206487322050273375659308507773204269513715115626422221502994786851666679010189654294056877127855347702822518354719491668089684416809012246905093437763052835585916543869937330696768232561565494874559589664963833663605082563534875023966670248829901766309511395594265746449010046479844186291541985571162162818514895894923367793577215234936862330207758359812168274328901856589890791199587655443123270805495411671733735985217689903285289250518617734389899004939951858305163739164735660386534538784084454554731921042284996803530078337298700693065811293026828900343552765450605384286958357812430994067194136019704566462215596745825288415972432910881454627402598870881034136723001803695801155746271824151160125707840930416665753742743671173891374644479370249917289822885616627516875835218528679968778067418101534603891706419444340575197801094278215577664652387887563993207245429154166353478286069796001351784905711410688609569888221883283979359832467231421568228486855173980749933530230575161096422496649492133118631279452258696629342722717210192568086604566609783812251853257297884108150083889245211304747086433901215375829442061378340969862609671013724190894227352730430345983024316562827113507395847855966324900764489607478082125729737884823847515632404266612879171355995951548273869549005653181907842097871189683050164939822895458008795036713928339483185831481506729583599247543542414760293357445299045619569572384533752159735980108319910193634608300470928074309919687157680277685054610962640085257562866559674466104895040906463514995501248271840828612055682824325164987849431701170077367074186289807428814760486213603044756643424360830231643523975815275583213130971691080368545616584577401167888409478069930805142398981050100200383399372895907194459676924832722027453314775098071337778139130754401188049256646973062296119832797907663942621001472376123313775861956225726949622874494895681703650543375023414743027791640595379366840060610804895432695332974806438622699132231182190943786483885530617076541431625545727792520784204659688043291973677632464332921890436360626897356714421594749213066541813551919507511076450411847610461406132557484202600926812772798698270867097483087793511289367113684865147145636206828391488056227363822429416017230381428828394819920835255399578086050379605797476603302670135934156784940261769959936174328670863959556034055773968453033155133354484249961267914101006233165789082502415011600587969952321283409702706245315261334708137966394180866563917305620862217250173742889602959942332400895421889794792427045887685303503185676072312028479938897967588639375363591428396951987234355703632339708343647925390773126801373047056363552751669078234265858496679184536933052533226770933191861238586261407380699415191993015674957633680119768994851207296046701022530068087826695935918485702078219114178670801761948468085722918456500312058624774420532229050743055120075451098061478452551391475849936405889503948135214862514156839235405840894942543163620059675121749369881584742330723688205260265951970883590405749905753656335640467975175797929964128070051320631423882726168686933869603199536241012353908673786876667272232103726762626847202689923161135429541024575534809902776275459310493863153729462038910879442703398667591813763474080441080651646342164248935126477445384120122693400625446272863974262116991159580482099908447510282758909267798496281874014481856645801785897206580818272454402378571041164668963706615567261562578219868596191910908113850365077815349999975596900010080710270961449100467446009554680021171037945034035772633454524913854343042600330813280996651675182607670804432360349981175689586692819404882441222333155283067670162373821534277701462579790311394697918501193494748391638315635741567876384661158203205595710100431905214531263921140647937145407187040672489933312465900360136534384545349754114537102960909500404588553831482548307196132308145115165360163952416268686922362335257312359723560075326069206548229612864024152283372289865265891680464684443840318014795774897631924094482380147011887496290334424661073669142850507786306309422216963242494872805144631066230293159686282374957752384314290322925938892322510960812816644310365157484863491086353597572186180166454653137633000701211181665599291550509018537648862885783624184540480385414802534435988190776121497277855601290453897663225808559815012011724056300096385550297705823546622126650394387453877583866515886514057216716103429146863211213784105442497354897635307814153822084534384685032342228065210403583530238312287886646019498168017997130444743785650068948025557226908033669042911148435211439807014207492542204836562478262081852162739036933655118707061214611917267202165004579463242273868405255390360216428778858031633735930035398950278875243016613886888535493759426968465781289487426401640916264160272544219435687086744477006471293528468922825635560153528239835446630081410692750252450076220022977659278969381361287600711587507186912334514460855731380044255566314456127567898905182687513953921792615223834696381850145251650248907426729755866181561663937069161097632426239131611483667352933204468463593170218534463917657713169303452160934288170202994719363650442443613085702058714589786680626051040641083489162404986345933838784896468185632098595388439862574611355656497643115698402448513905109404517760547657193726980273459224446381558194595257858605567675646958563201111928274085529348483584560157004817294181346679973578146795072497624724772440112722904192213948533757635174327619337010085815567778291594472865311127153282531373384893910229412805310755760271327031811654061295472605271416308008743518877817565904795218528091379390894047058442098955673373807292493936578914319142612817455832090409975872491362329691706160950332712175287509737205730129569700893222491839105156645160401091767748538349014976759935001657170304114078289332843810152438809779838407436436861405236388973858000103869368538335251726266345462183789614757398520338873956848102729070327333793621949912845108122962791482520038726033143818604317860979174398623685465561146704065216924952664930466941983808160088179336992063741014688309040900597653087080314746372224556843601209457819088293385659515384069477800953936215187775318875618577457222907080431297751013179226594489866714192090711058613869508589199574860181193042331834067855085726058617364307278091319177039632726226101481256882744180473014902479864127204558432901908730452747602619715276528714799174389338064517673214122825586916794145913595873150699995538638569236485411227782935676899855876421135660459846609424217830794327472018121911772357489250648791824005196911053432188292121359927484174538983130321614056230224473003294661559773114912379870997038934892538292052127293997317779141733571761239308735868960999304987661710215241708190606816333984297551649863001975678657705921651003376495118645610110421481049689559744773832426683761984231233135495664984886532312614198187920167492009478569630906441021234020176173329027835137465499713007103603148643497550371026202328088221075584560300610469109236943408081431909316572591357556037003894352339376340039996434278721904738500347041143667044359405745607418201745406276848156786801455601304312538175430935192948407870840211696405750100234783334404573080562857473866821267053395723321211785014663662217782592742497869204014641393612001593980155828147159961392374810098887202781960121918769438665738315646288843699405523954831962959306087708115136079007436776555019225217370596120238963811783837577060684325032438428641174445000298127987927088908254945437982857979648814772944764185551111753502005598104599198905718655877058880326997811217611263925374559219065364368058113324564707695896594975345438709128214889010465539757890300342055701225874964365684283960353667591176913905308958572689764095904418593173807097504316696933067823667912565667844548383789684451269934253033549703707045374140443848257544153903117279270664433108797894635370595010480618168432064556575987416114455838490823998974644076806868371665387035632468124854877865749288412123120728210439624897532265148080793906138981266767638487068219513705380670635250346951230866224159738261245684977624998499930079606931474066330999200042299194213566318776624694986623425797675059296903985975073757113936470102277829163229379475673789301853561007261621912630858986782446881674812628341078345936784528228628353789409752224462197924268192911713645593365229955814535813477299719678893476178735145772406662527373018517233701894176578020975059279030747550896385554853631652016329254796576856640112945488093682606802534509630627703483087783196161373072836947716518417529105515456858005772986587357858207360484817325793329742640325153241946710162916993730824109112746759898927829443857154227847657455824549432897010859951567511856026643076914672611874592508659326167976542731419666367254241044890852809828258980631719611711763046799674680244286630659064629186957635193315687343819719575446249762222515899830057223217304033704561044806212616250572796658692018496420195178247461578236273286342872980794306632652535205696357256330860054469961681483736581697107365930253996266379099408791595774661148467901169246684008363293685081225358956635478981751946275661958153406511557936322085854476872225953947004680746426262031649650926037513767985782098584551590977032614689737419676010117992222426492006822791725472262576629174077735373025233489082707737254997472530578030580128791162452283293322250153046600445267978531245408465670379313668619241957336589137019108123694890076523527805192995554997040686310969432637991551873115661407225798555376411779256149249994726929736706272005084260921357319986254371796207656027724576922102564271515432861241573735668182303882498497919339368272447617253245595640277306148694025002671186694290603675274722317449129585324414590628825145844398986407922864673002408777080399683601071589038573367667267661846396246744709030860852813829750426209218305833192127093630096704367539599827311724109484642659164339128328639546826600163087995430869816200638488459579564995781276585744371833644146907829266149935066812872722057666310982985544568389181869024425870139859882085964700539181399317961018789047537343039456562620838801721456164338113416997132921152374257057985936702737263464336444751362132202961262639733870741509049578150007956065484662956871494825640013774542928737964704860890857192031398625344319898502228433081922676411505143013730680935664190685284977786962922785364546505106612597427520365613741454690783240910482406222764174022991163030554050308930748219146806331127159507887163649723102273162975082640867484696902361467542317123532742982312175947705415707019059878967644454291608587224505365929037335241084940160809056107040856420740456724699213225849218318366287898605144788013771728656382590679076750555987765346787146228675158101813996863406582829061284291149631407381892394031377585585814403580701934526832362762305985394004951747180462759814489255783581738637488666575809292385024911943994449952016811401426858309383556500144853805273799402755256212698369187955373979667438116953298723075505667073631560216984871875040626266073713888388093875513956072155710128432002149786825038121160031360522592586918394345056181034051672883856078619460563953438401734962316394941841176333283523373561326805770065208558818627436277061225298759038886105874562229410383931171646226693563561292562860513474726942603775016254113742390645193479996022806603409462803700341342965758830172187615260255661991828671728979591100294135297712788852431568600483967016796930883084701275474160943465607155509667618593805898737986952883907690924507860842393655428763604149564391341890949051546334654465624541613804024989054440194909784767471468967830495062680306528601492880362443003306036332451605416521441547658496523750025189585191593607443172463480500272346686017151148809256877330850694366059717890506590533567080033554268136832553464493974065543216018936877399824557045073510342804011583958591009518484077810885130577250766075916672338820870583546439070293102772522636730208154869292503655524250033110683292142360705045014557136770955644948438883915617952961893572633223036022295007359698265494262364894479668001804602206224980979546171978664234949896749548804639784264897674929522096012280130278673393298661753865717373028061627999716714085328698648566615082051442335550792136828221067919487712468266619445391686050201638056739187390097746457837033198986303581432331132728946812098615676356393369802230744114000136201589048546721772593605624754321932104547570948296873267796105856473498097218701400712499643134117710118215497060117674155477835632048153202290913158162009215157745966747495413322110604417704138031063499448653112732420250058977690672211998717063003021913979745801271400997781548906521591570034519565792237118256755279890960092220195959028230092891241360444181941707128815241633842696313257703055336831701367128578094489288227048904999933006930722670436320701579334876674561560819214757882674070283571394760536874474737686576776717694974644279649710395052023801846853242647068776265107677627022505163911157074016589638488460616417211792136803424601544902580561905676884932848173720734338774841356116346902492658272138469939824121817652244360099721141402480628378226889773758070207557615946383172088454845186335037452397820577326591139440471456866908625099953919844928566544264161979808021102802329556039673408722183720585942352792018290890284634082442469815263763098989499597216011819081322755055421674589828728643247994060032717401425715601938735396712424573102352304287933380495266990250803770145165770149450326645391604166406102031992725425963847326041415584844123766547876948074521795631150918443652362242163426417957975630732584835658883299829379976177848026085346704292557570354757059788778142642034354919625016759024133062233882543212032913984144040422163383667250330570775133375435967722118002245901939196812515893727450749817939367384957836216968223567698439070769211445815858599413693497724464376410000629534958028609075975382635047659921317951801842096256966120158292489461970507481815664982217158986165683381850257311377533317930974535038464293403100704737779907352561690507039978510500977723814698282021038196405700529461086348572566387010596373315177759195957172762081709726550807944556808868283519780304793104288037391035824193579364190232127727589028866100275830973915793464903793262854786166690801375403336970252993780224728991664883976848027857663406056829716352424459466715600365986016233443784040592718542285314607679522263443912828130512582833099130601774122800939974175617944404602234563679374616491822084856253862902561503085385367504514941469785729228330029722127053680504895030359465174147506782926664834096033111927897480074891360501177213937878544684672905358974392759571251489410772287607532952680357677195545842922722234041552730201085747298092460434006278721820182804176570594311416139961047890668698650053288173101884179873538076698939666938918234158958024865368670679606017530444557627302840621244768241808994543222478279996263150034715691855063174674868703511408105530886211521721655995830554106452726013083497052878424270447117745039197338673343843403702041863559636573891711506039174394608139815686883556410666403736992369494099208119926680116636234613500637333063002371698127436524645386267285974213326034290396528218455595632490062290802265146159874035650880899102046258258680530919275788469804230866867580419756291593742745805169315565115197525244469561303903155956943867403227256682157168940841029723946521962709145442818598044314140342312527169850380848407562023210674095574081192602631771574468185547065278114416276694290776251422062029827504223811983899646241334344530306079154682143666012519197437427088883735973293364954869716465869294832590011500910403966570471306180470495965332870268390790817710872351878620947176954116669547824258020931075717678008483367587887657682685714835488480806112229914081729994627778669772348922729090834017814802142173435503022945010091718044181979070176525016331251537866961157236303963845867989665200081357168508714564108811590578972204424944459545768626665245242761626195529129724644325538741552464731717691044634429273123161839008013775868508751732517943953779494354261585445134126227256613606385219845513543907566344275798509874229353095415000228313627348314509396788459027963622134138909401554836468844947911401478066797151343454801408175936884348587944572263615586182695226089217615711559776459864424763142242861120947232991642052006078023506326938227298258390207568264996303816118363064760132656942676046986522978551796801433125317578263109587802188358816878268821513786838204351917579165120216493677729094185993596613939434161006567424038604031470594955591155316415150153958762370473883956226068727951157103132848556056812272458479933031838765229434423639820361097343279643225917855848053703295648093192684779348363781739036784669101034822823626680196991463554593112210892136618434244612565123028476875776345650300947575803118985622675720547445044289079718604993667140209617242083489001207512337665047458848240667007592568853461789743591327067941622311420525821067897637761059373070294489162108831040449469832857572712120513260633576082637109722468069659448703074808122708583670772259420205273122597835867511012679369986659559171512162920795445975345340633872645105871077539938357431662494319650948038399724219750610591403114311984414522241430063270943871437259647248687031456466240039696421011003814130423885619385037375991496477825638775359447950482882985946867892364788036920040268457445085431304017136999066379478263413082153186489621948241847707467852390094051616734525155611456750730387923149210558783568443387348069207814311992367516829607187529880805671842586842249442020696084966320186205106653658824235791324741778856768799592795390480020235872061856550163354299043784610446940524912443372314837685708968589974437006041127732706426564973608132806481362657539952745636353957947292767301953510694440682445095228055557982819971528774999370157267410450655475355480323516004926740243274571005142409038603543875066990502734241086798796569989233131178669355280484528787553805770026796939453140843004824490665599597687953271713576576267602922393853520625790302303298527464335049902112503243550520657840541460248120770290257240561409648493345225792015938334096054108286064986401987094560909564296949761925776815185862819064765996355072635877325755716526757452646843668873579783981012308937120202916725646405383522077825246592682016127664533046332544847308824073536233074622748588133686063090212651970037587663163266951938884167240335684814287525799367927058628913441373939506484568089476431229217146864949450537192219528181510663294769868495936292501226644707752361437815054208599856035815417415299593167466485302192798789990146414464690622845704497856733471660951703541958910026007083114893530451582638071286269237642270457571717661325743578348495297659067140582933448033276143872532841958137949989729588263721983316241656621872989212864552470626780010511801584873573230304809904664285887213367442988901800387596119022158436123951279750431563926288422035013055089392350552930198456913685532367370710030595467507563818637380092640400741029390684252657741914325155575377886152773056076094188572727381177006285630879799145639777545290347289375523414134716188282028295957752793839044042691824646037780039454555121881588421377590381294783448993132104370481050891820794850663432469504678537358117234905986193207032121238439262618910258433324505888637974650084601531495692874233031238793459895926847137980123903009841685438656113809859433169560597795301528022730008488037967359123273559103240626115349264700865483190224364016959465980783251831650998721132916538402511585848111236525760102915761393794443807193818253030648448714365429022087595720553600956137461759543196177310661883155926167472341218763423862925881037736741597388137306518027975697892497798228590949755643810608007970965029789108185221437096207240638097652432950456413745143766580146905599491690938490529025110767618886030903990121844970379435763474773689900354873744095264393599992266025703782950164994413072636286436119678989506419933045784077127746784670882453425138570192757333965942432580689496484096680987085263052091037172641849937907971716393961986713639429176852650805956177034912645950381494211642334832184004199072558996160370146804924527524645157954474840362586995973447763912450857038293411413217265359625702749674084346943405956228521605083219101661325742710595621918666851019922749134967914320541757830399970704790611162948357176653000074013560691048163315357745392436764878133970488870749976275057320546832622971758698865946277708176502112273947981173207888966321315684399652315698406915563898201916731800454524328010645249243203607947893117757950218468827510800503953643645149499755156732179184398425160332939497692743949385426834267457154373152208322102185267927349776052170741517608545324396789703979676314556226177065358046974810987528335013646618802059248967704372705694109667363691571951085592418243526613610936605442675429335192804836771967676384014058608614936226534834095611587825125178690216218900416530862470215303188008088542564255924334547041071903514798678461573018904730159248251435126605520867440193186303677458372008398028224684581881965438142449067415438765872418988300759379698100756953932261802516410889214787155339681817474382174372017045257236023808469297903017256885525121421724676563988443786550466830468412406541138031702621747662101441819775252058404814986578434620919259688323637174128544403609956577373269955830837884468083804547617258279889144672498563390453709420446249711130964129581565290033292651389190234439861626972128175805093850777184942814197818952139561157994648368641415095719682702654705336900593691595945053878929055209101709575348052843363010305295829099359147448252995671033192636330464689335295354794143228252111603339477052744452136572843576823103149440247218756078037348480674081274022297729954643748373811977094219768544962093198125455086923679899877239206478533585642454994542037090551012432272889842772433259538388344185522072000908274542051488940344189708629666721916676735147533459668500752331733361748794846706281523385843952300597913428657102350487452508004252929788105517113944424781578638325139298368031886795819923605691804884589070930878914242295614954520131436996031309661182283553018652786063692879470143487277089179618658348699741121622730674147257926535030732353536129014475094126199607564158677249725662402059799091399957470410664337322797682502490005145724842229710921906483133955048990669878189863116348636671270699567940746412635722181835660319729207450323948404540266304434904261164003863489641617010831399776370998414780151687189924464956246788652587431917624050865566827276516705211909995272219836047143078524715476676761396006704363906426461696644904954158112663625353220074400056603306652947464587986187455603661116109628178253193604388863813234007913451161297359707161873633914282991143409646717816338858504480207258474747790287751340361487071980223411234588013945898101029461984790289425724875340356775066630667266861963099680971256304023965020130715215804417254176203141056108832959489928330065285359274512197994670100772417635011353880723733643864983942668953260971229092926832758946093380095942935612499772401068091880676862077732727469805929034864321790015415735264151907219043273890803692867566303295584875031640870214014837757139867986603201993990937301678775767612400496885047488583192091672586121160337721073032323150872321721118064452124606827150590337722395076176632725189941767591417468400286471496246857282620022723466485316287211401640206930406817461057384108209285494064883552637742583341318777014619483719211245833553182311212463379317617809980600545736631612344657214792163571744413108733690594529168992679463598453774494041696961451960833013350566025670322541015533989090673720545352148441511822573739357664524779533629862636500991465713562015257470483930482039735200591365110234247941871270747661215085842742364769708854964896546395713041105607704744265310414298664119138431054933809745698176648956634859127049787199819330900719914539738890903607249472148074154413562456762672745722195953668758421303825666573956072416506772165634623405790432532726219335406006157082837594571894192083299081533604404558243394152212156272024060244896700582834971862847160743843187372289448205011503645614147933487571800756871696518487102231816120613576416374829514032848696322863533580179288100752660741010041482990522686179296651250406178259945292363571484701839628443313101404361509121096194370416038874006438917987632600351066904842368885599650456334368699048258847262559246501953082508236056097451729746674132909410672365150209867657342989483256664445800314518343298459175286116468330711430916673907528874929139434362492841914721682472231236272658569785606679782548461665516748439566864889002927150017436260856972789576199998730076981807395317475517303668820152468704277295658262396244156046302168007392617898950802324380104989253076429407424826937185897520506770408820157629769431893356261988117921853379506646845665271234499147055646285932973954734775169576062328807491920061613349374500625834376475942167239401637702372062848780275683926139588987073899842939949811730557999330779507105078033894289345069700519764391336465974006967549582647264794385781903095949767223558701432460743632737986352106265570966710776926864070384287455536458276957353053579285324091022750217312182339290220734805192998031905695980556666169782133099820848515765741631206158961353003430770249715126823347626960977788713525037484686700411480522758618236283002966810362653169615115146446427965904154339064427716201300264167935920882980735362612821618549209841314851678618508412369821443346245314743712586088913275868740001769023598168998751697684821909967189128139351626764238096840307557571971923084783369843415726204168559779594489004583463888585901206561869747412224829769968991514336108517143180537314546218033992326973408031980434871103329183739775300522325968945548012868894280269625549332976996960769739159569006936261330262495917550741894091048975206334128094188446897968265674337464352731340032784731362462108976128850739969612629498263904128352793565018305395679523623788891039627886649021047338074172511529398489306019072882926966522675732265176207193263921890123602044052184199715884208849298326928450260015959932444163570570574379934694767783176066821653935791965833892797816122688719009161428178019158499094252068955567007862749500194621435105290681227018545009939593389655119956210802712260954380197911085375886919411353171760756289273455336953905863330595387300624427499054400245114296236704920051597090938769757813509670481481912615446012913929653661556382260129939123023934712390889104926998771463300296466033565363614960580071531725400693715008199875916641477584769722076390189077686895633589208350442447961757796592057901045548781142660928221180223230125057566797710418548131523783346114073924478740579379944361834329800607267576493782166510065777380809895267882780195601013611023207625199549109014572664314790165569732705004876643561549612545850088946267213992332553491642402148887810228834480043225612373889456577584925098224866333767858408528885133281292407803118040028705823885479698639996386408067549682341317984010142457596331605643655671322687815341678845341574736851823388543629947452571077076629813224391932448758333525172683054560060592635608631362293939696220295683737910889030313185012724708039731757069074090123307214354123981514327185764078685559638445656923094264993358787946709217594620924369862461276431613940176012664847683487984693878766668688643834201655054417968066130788158421465894945757933238035738813936250514482412014121357006805987161319145115357286362423466746033592085891239986693168803602558459421791527453984090780514149371783928552507076268684029099041592636140253953073368970169843545823342958856357660582949074256158212326067816535203526319408009118919816938170587953164960047798664176325244036505854407194351150324215517584894667256550887109434962486737693771695340119841242658738129474368866675474496500432569487331575419911108173185039785920775180381529790290092718065947261012265690612632113296749225379499280654712104035411631525542680924352112182178208785452359392598921855073974097331629769166018776073898729153773732731467893049037832755456573751945873013295762320976992085720277530740516525395584990989787344409115565415456510668084353744204122933755005563063114675264741699708782129206424030770078287357938173802845299826724092116163753126993471070674961998010002669649099127713309128289123851979006420583678850124837720021558227006579060286635976860574362654102211338750908585154403453650689210768227230861821556456611690942653408140756720639527738449181468404715222169707407216353433553652102196946805623148390442672477841938105141483016642482722211933586420578951339753725875427606106249278797352938994462156535674071683556268897651267171400516874882033889562711829640876932655592638722013219860059981588658673192550244467007473740757663805801808811848510700774378714591403484760008795122012358586495129299518763812807890756212345242802143402345217314168062849407104081125823630086906487379133162482923679048116509515612916297723086056840333187327472166206377266215192444362912169353828350938032646556714500026009659834434823987939149330718516201163549670505270396194671151662713444240924405078583411099044580804339749186589711881530007631777678405763676011280146389977948859882031241964796568128610403283767049603310982015994904012066811927180139828471149766164047057689388216589157396376622800163801787390339336479023255683244578500396694239300712266287834116890675786028077585287374357812017307155610283369938559758026605630913842309639365024819145438759051641503809708480198955730259122272954238504928168933697852082246897459090577572952296921515592356659928629543463913531048615421866153099837568868004031991040229850300344164333284786991012257760133313618886451760120423807776600655578820513105538604733647081381832418384020562675656027119127594669573805189523998598046087510057692428814679321202248026144877134314564326353538269702530509337146698730846396652959115969263921507977878752845757881992757391612764003875363706494058345802362591957020048440678639028969603558884731409405367239181495938276374562204047229130229509565519638242723738617245649772557959617965561800554941265579851241721933921032848569800155408611878073388362763831615991494444694891564104151194102162228472087402969931505487760922729886808961720974601818349859882053044631017565381850502733391037815280222644691060826306638531234992744189496112583329216015633974880561746540558415610728208729537976336909074977718487152724702413387814457927433156166757850835443673519733258364698109108664560527989098274561056784567393711049808983518765946421864139654468679234933958519273056060422264397234671630380872901609201605415423223118947247978102212665035980449812048358826547607002279651216172686256846061386496097485207905844313838898031927986844469812235287931111522069880557826540144493816718722573749704530949298284310655222055146097865834236490124380213876829769805001725143546319449536863731582095376339722558737796397986708810283464423095914170394608003781966229285362198662754092829238979123369540617141649797417722027538683681791972820060925409348909052059958343242351217319674928722080033904422578091124859001795395803216064191537693915093532612917091038665171381778225884188966544049955747111414625464133227160018770428298881709404425744393775004743485987434352791558515397955999227185579233053361931647984880045244487403147146293642798095105632801007465880624551453842029803439279241244292478564273109011999288190086985440629612100450648730838000606744044694519465939727925320687454862657910700350055194745393582989038492662423915933362697271450608639390039135514518146334612058346851715469077820480698353987586248260958962112910236472800064492911923120354085325642813330582752292693126535600723661887652022985177446438922732079877438876101857135834901620631132299907540132540626081791216330664563981659675757184016957949688174623610429700932145134407314631740666585133866446243708529390625170682004540195467527169153839876248022232857854246611616165659229281244614947118089229893509748481808234792010327543862679186599938892328623162007501750788243376552537751431058465799443571677708778064580013188094635262665940514251348198617673983253343657648671509130438658441184701508760754261918113448122322745134170957817884314156171914315695248778619101845766750995068421659428068338093122507489825046837644206271128270656358984257887787547492093706438008000337119705127748593767375287508715891201777144087844822872326689328082823879784942841221322966692189763826621473694661028717507535306915554580731043821678661853794381398212698928129385742743528615417019068620705146227069035052208177067329264104705778325399864663388046191998205539517723971931418193570456502310367433396915786485321043973679751517719171271209031241470280939719687949959131065713012821003571269175688070456485920850653552616378277758883653422801232434859640457406432639557610244402661929289893676439044604220586025664658976216389596190570137950707988766244701516133482482834328169628954672606267146991825255664115809454588410512464194438322427544756899125701432563047316976578764865967017661990554356411392665846858395875616523428008238468977504510141273568202307526234913978048324043496761555568355750634023358282465688383506365308834129954583712357547811956165847463489012514403537635152416086597317002339068802888968481731079129901543870014352033055029726864595280285832064381736111029381077755601544231959085843471430528800452680046992415766092842633765869023244810390890841521455816809238906973830610675517313076845826438574504407747815318178208237254605260738418296271350814657759915455980323757112195685566562432286059334136532012810387617932514466154909525241087586617961514948139601892338832563816017665708194550863646614727398654843605963073836727361148415444752217579199607794353632611875384522242407312959354428757863936753004511891964254434591425711038417269705557208914426209811620490633235739385570257296368360930297557215125348024994904008407805131723066276789842978227746079391766400232222288867099242613135901747274752095071023522076916129694943476239119941694119749025193574423879553977264174006742244861656233833079493294554072629202104571271668028432209802893313373739456055876862548113158542951169918615844495228587199813001299516310984651155288083317513784346660274954025862208143471261223787634503751745794427920367243188213172365061588562002089381794061214533843027102197133785342248456199831679699158689794733968193298348407013148226299471313707135066430448670498168614943425974911941775865954997887716859508152988518106496342947751277418479078515550242698236791965266996612762416175657378094724221971517494428000207496589539295881769032581001415714187409008427158532270581746543644984723104766843542063821289013820136258134678872667246244448657674508013510475866150273509780946731033738325231065537468155059345893597829726251844591346815140798039657321541594985751544659977293630696545542609071283676217874074424291254186606462540607446649961558401510971669973402335972775424558279704232798938500942897668167380331690479658006089099827739571177196955997059638446652375419898031998239723304709487173254614360239378702935165796532042610867059663510316028166524437615379510765954685649348784392657870715145443862933177089829092005041525935026349034267894722601942786359352878220345798937778683509039794944157647730131757143269618567702490889893641536905675616128234551691239046160331533380522440496397646362619865832153951774923167966323213853967201097979516448220128950394325493684073462833828874276699537798306510964758979666939739572040896877461547086888489565017860979248708250662258052266470262754574953442145744918011862048072299858093804646821299549376586917810301535253046950901742379249693730649414851282072036486814323174250106056140288317601120363027364454796247424681402777731648784442897539748164860146292255385087485603546840852540398277727442157018817064460502136397609713361932047314621582732679033461434702263305668463706907436313193381927953159125025398133248855599800855707069051673013140785157341072955227773537084593444900041982508483417842073130262283637831308992774711340078348342990994185573162812818617616715531713319017974806935542050184392890252075284540533699146990828075713582685865752848317407032487457090292816675355564813056781774857533848688363302009034882647692961637534882642723307334961911955662641926120731689358665779108548089326688248744126517973835574679671815542664092762120410344388237623183835012403278231769399373551803802086783830141165503271062206383930660689642622350194500263398761678123876169384122019782668559629855573038475714721442925880706731864189881563410346744651656837781120409506826972322548974290255563211593883458023054211934759040371190355058046038941514784482077923118981311560119225245914996856660427015999497292733597488443096990762697049215508746213368920987232646882400189348939099057978645306784994153550370191232392025745772404778065525702834542429532428490424910795707695944033640325414210322983822637095816757712695814425136155167687017701550637523420849877541002870255326108249709347388090261733919324788840599386628629904326582577014280331100558432735228617510260888519945812640657868933350014043663329882046765262958104655728757854203710298671282136887190956396236451825316237918223522834067146583242217333355524255503361611428458891154041434888369233812873714807563062814459643074934866191616051291402448429063569607379039379812179457878706593763171056894341598243081912511180742533403411725464991206123681392364851229105269660791408163595147925483049508829046742862868515368997484414288655833751375646886110288055239864095960001412828966189728179801432406191952399699837369432957435075265015789179132486149627064586881360731296219865211462336144446586621022107563903992761944849100923488351592281122769829717032763812397241078748821045258599489108618725467686669903801767766835848858242293800018841664208867125929608916302211186179169413710376912625077564390348043564500866289985245155192655507413752097965218589408896158172996587337593015727131008127977013407483854315577001311051837876648146485941028458570185279226434832951567168927620120786235493381501550077573650939038031639168741702846301817535847579794003447049221239893457141219042284940759198337533321784190154359284500977075394395212985797488658235817178195391369571093419250114711799313240071389536697275801028312902496989473896554057506206684631151635565407611181243180097081704820120479401949754344846497720804186199799885680785951181720047157956231402134999301191558830340212304022991069065490802417001947911451933326571292775516494859116705060975159854620919709660597610614465852371632304997011942506661349008813156642296845624483887925024985384095666205031029726532822260639664478990318112619960199880875011150127107819917397728995890992228473414843606266988063197961420378532181904434749337662453204072573580492012209472772226343884099822458546665396243780158320483122572353177037105061871994993734424911472655375538744811997868296083991426111194742502140059226822004944863164459408829024705936809755205157802674968412441456986510352336622616152581002094787830564329708155720551480287563154403040426842304088743061442571669149623283232624375950907121769233173863149907896215066663531891642335599476162258820325559390422600068409121364560204639525118883044693007550153250199464903846567647714694436460946100218000289827218085755420938976165430960595867122130977701774291762622026032171426406051153129964231419531975027263465374272932848201356889247220567056894383551698987642496113598642261957424789117374973968186987146737261536677833957651288423117535307293116579057193161523564007955801130706428133786570813455503271187876264624979471069662610696557459207686654802701658212766487105856565053735722284975183094996932781728151493513632601208233241195514003122890557220143094383961065791557456267318860865679171362788681432551498858777271946981581112027332097957993361153919190544095659776859564774328238834515760955957608607358860676473849389434986592701213947508613302573295529589418980233526340079406431910816214902724936594467715059948985996244339702278010808335731324596963466437085142377322873636148785650783136838500408594018594164353594390116860905296611342088277295312647268317666514767551103929684504571702152140061136289514128322113238649181337260905404843389073060435167505072645565340926395971884484424111101435550006130408451521897862650821045848794511721769758630785345402544149612146737530040290808890428397824319932801212130213885148689206691686437796082547569448257303212426048357131194404301151438227804527541842747684273753662790255291917658387684298248503881322922097876936044566869762972420157625751861972904377283609206135064445962100893582403569990270724034072717623402847935589034419739238746096978294920192730476451959903596872055508148013979432442400658599470661921320365065976426064623241837430696957887304714266694461810298913018741671098717294857489509655006434728825409926760081911049796874908974335897266524192721733474696257814960327852017710109195032372415154932563661600196394489901262940296960315036938990846851334899289308613812528939631686047017290688988679876492907974647979222356084906655257054480156639265906955037231216296149724963402497223588084490260566782531833968052508731039254663296719255463323830042932148351203354993779311491411778832444108522012370327660025006326134085032280081611129034981401222524683708083364237198771203253052286683200282656307931306223014903012130859953523115886396292268269658378993160708799485283227995431937713256824558615618010135978631813829716069587966216042478613668101750533701157532648671083313927050075639532804593500155692630366152205180317965190434336527403244248918584365617640164197963748899732809575532613411648170475991475230539872350458462806216829981930508029350631698461075217460183301674991323995329969706330775050368488324194446916505617081598258909239107114062113756683002085653394631827047905308475285733381400891514442275306163972808785280747133183412250481510874359028693438884336086135939225408763154953882013543782061323462303408266556136500606607737463972730653374220908955670229362338692875761570965098878141073783292116775469885589570844481552660943569142945628224778498380569827572488687034726334462588217662685724153909052256988862166536188095255439385746222290512844384555273502463733565667502566157022684340829709987686839494770598923113923350995473393819297543264352629621675829710207779252231643943912413426690642472530080256848548985661100563352454782588498619307528164986777082091258182869434320234456240534212733255729494727695731021617545904872801677517918374359804979235095998227519612685349991495802559202840977862854013924661936513451341022415301845093925763265415629200440283603128205127387061765759754667423192211232909794246883014082345402135656019142672783219071202989990374936719297425248961467174627897741578695756213868152658317053210651043009828192379139364932202198873598662874685124352156598300069270847819747297715580098133649070979288338535813403790100864343675986291612597217869036755779453729510561442397463105812625006992940852484298225558726089599697452785244829392147364658412433721578799534770451736304262562399001375430716616359794264997432376133949061516627001893482903491624440269101897641194361620064222258240295858080302264197862862080532919457542502784843492860277102913072189040671434418343795013441933833761460665348899045164330742039961915044519938662426512162768406760025512285290796029509814777947578424145655269926014204990853483631251790411534892506514969994967993158175352797214708640679768795660704761960905444895027976394252402993009612471009855604808241029829173859678087230460625982986299739277062338653143928979736601773204200578513618709254775081752959515691585890750529571184131411921005675318682162242135209969848136008835774670981704360836423009587568388709561630869413034292700789375218585193555503931755166896562567425286256195792298220269892279639625181445874229246285148790084381500446629606430169672497840212192362526400299854088417583308492901944386853414778335098408930302793573975385352792496042827353565598481705482898508492858135141522331195913724077913146417079536815087739064047960662872132503054741185749973571929574850504580233840039231777785502613126608114136925108560871493808861352968946781653639220149458397440626595912137344037815128012808680772289858872803053835268727790222877335198953726866621925384190858357420827243492291953270081191311892312694998550020806677382452996001241062949292631007255272682652249989120442690748677162166918147656826158942593521347144700138960243876803134024048318371534305924917302522180369418177183816011137923775663958376400844466630449125148835526674918225858081947940448742401994779425834023044864325628778320709462486365656701624284371424531363846542609005452672410157453392945597021593707568809377433799278353346070279182377572598574077020492324403485393178578834743494892041533423467920724531195604984125564778040080703275841050840687715112006998452777165208215921544113445149431574230934413549758552377014228807961309300303935522672258845449110982734486759726827369371486640276847366675135628070073697869164844599484588553915591336127061252753308192476988559987222479712040441607382493962572997012882777305053463571957665041180825543563834278454551370522573280442669550109450552048267010087525569500355692536038706188211648970112380426466356140326777382691958568113900556487897366484225430585268671089603679557195405233675710764527619725035503244948929227410820048310854421074368260010145245523962224364314242277670534519046404024171292468226834591602703026591003202064381688708317100442670221119079942396105093177918367309131296184458972671431505275575335331483800569051177970705470300210242758817067083586308231585113607767188123282378223710240031595453829773093314811531057868752721949997687688070079193380861157793571258011710434657078280477745755742559962905757565758570892021127846101317056967081870014005577405208849507512061994316630251617828937537992309106142161677822905746100009793343266449047569343901647108584796446449125679735028763088610421224815211743055846404601376201777605850430516639873050267707938864142096264868018163242450460045422373279554942756350015282799590761405612209464189061024153217292347346274308266539555561201336177793913037124982993610847242539440351019000744707688123631408498981989057840108140463423390784150033550364871787891826417829305424295620293649429067084560967946686914465129201712781098386643639251011150260248246330936802466636581623383316529176837365292391182762000455772644629086499391628525824511624675734273601812630432216151009227610282633887526918024675951800126889800945339448804705165875705129128543024469440835712476647668104796968122458737583022554036854601411007219874987618622650797555970808131198920139523913136791194894623733856668408070817074942847762475330456976704468492072791701780030851523209536912373615053894784455955810738680469674642070286217798913042849587174609788342940722580196204061386205945480699941304508924975346272372051651280259583033744068275034627600173480860371705421910600287432645865065274336581550575443622341094623905322216465648963371171413710537325885933444155187403679415861196742224925888301895589355257055423928701190442754520415677113684163132807524730171980003903536675333493453913613658536090188673134645580579278593380434375238102066933839830005671395255392222275002397422949485374775415618517251803366510508664953389266045919240361071839388076292035569312951058379672504218681454568113699652158368057367951462218091967316847346845004169526979296151202988495715255239055238369807356689537499689374413973214363244603769352216884937034399550170811909040954422217377238640638280326529099294852436281711918605530772293943436932336369627372662644078794652936827267815303270354529871268428595717350777700274573005107293435467262691666542778666862548124889875888346604627201493756025595541877477858315994981397011348101104203659139121382373289340410817205566649363619122177765068889938362722332643495586934343162927400129119204267812009199900660066662113429149237264838646940371725478810235814062220237047196677583262063873075265996551088598648465640840964985100500588090985119109328034589031971619291888392251741500075943840258697802881535706189867934934129292059065658275548869425529616054948451138715261824843114589506837508372215587491019055369220220436389895162028581323299939709821620866453797104238696467851353860583245969465519533949486038504564401204682992880248075221762871586338584422678424197499406885097633388434067244932003929247087858785107427839035894879967941806678588208595834974631250712917220694455186944776479438463082127256283971019496166416205472754585834089413052676382993294554543923727496324869312022687787007926831136452233163148105756618431768074566199893054050193304319689674268429348017344640014258278363296832506004196206941098815304149284573343522336722207765315475391451114379792974078747116249096597320895127234918371905476181998154619397148089463526039764101051766692399520679565338805655304211606142567567049358534258287586271978234572990506452754340670640729991681659940191166506616404182515292602916880401057713734701311727630787496036876510237533816494049198364377745545381008261858654689806474478566357887123366320189442601970762443657187280343398221273055391532602709457859191787622890043502272900268599669391781874283920636442995409035424270875751180423920109361503740316445483483405122648919007568207620664590754281439959286869100508320976952213706719408844560368678018430753827175753948114247868520033132398604663077459070242501952472433068344616198657142481168219416765606391426881520004240628781932383906318212818819259762521113012159341151580057702351282857513460104063201547538988656279215684798798363947198417844710547788407676391987885056698702208469626143262315992436461475768940187332802916543612239045774412387565181651805685272434765819582526576098243298864806026945004524569400308567015765624678645843471689442349680552718917502186851128786799832686930081332730730146563024244935505579611165609965533453506091837372097208563600561000532109574461135936092251140834772735123672203011954562867705729466148328652528188130557805405973248865700367653359482945674227615289282145687961867898237028563459006759862387486262017688291169226918626574469811678332877837815328710069000150319683012124672228932670307135856174235962633520608747457855559147430476498727398477573968456148057867025039630377058126218718597387725108253580971057623014197106322057076026092139481413655409214308574370834285598523057554478324345397583234261852156366453447635006508000345113419527594153234311372885454968790867835721074473471812789338934784840406311303049249430415717238541766076221986187237198845617160141714633018147089672308802117720466323051230637685931856170533729288454342885780683813386808839011591628050401083001263645896696352918852572613332217033111432392888652470273184530570838278835157960307315712514112893944610799049034763074780274052525251256475576676602551697022861487455811733940051661440372169258886675291997059284378649758426745839740450483304013607512648756714492570860519888055549217111587846380163693783800240962581338729282494606531822057292141280812365136553646180523308891742696792941196146645597190186893737730339488927889233897843000683017701013321895677919926273349047110828786339452803375969595691440463510993432542666243182150481578556975461953174030229759083698965644442263906564585452649252215853495168156913989452526237059438432315080737137232113667786477812950477225106526388612858577282939776887251979970261314586004380966935902448118043750818019188491259785165228455908206483758077379337152468978383337405402180461334493532044025212592611918745638318744606139844070251278418917690951744042520055801747554515587299400627159849690489760015342607069080683951117021556185506118321507793169208956725391414355172928675613540712219190020252392857469407069577920479363156162732907440917697622144324489366812664730302290580786883085702580458069299484795268651149726228734111944551075031938041384553592108527432323956993371307744597693029868528083835029809447785170008267073713484446395719970317530087759366477623405387035312277134220315575639653919055861877639634357270618838264703145971522588135397664463605211255026169009687774257122859774810136749994131873199914309221243983414451597836958548433006213177159360161307500359085199817950958957654271027339000289007403802330575623813764799387350885581758733527765603408058142618266353822049217988558546207236299839547897811047662257714116685476953756840927480604626112034757484439000732607402532528590815081013002057644792236369148022608725748513697449515995163904497744236369679317544949922578908585939093550440797184844082810473630994837185338589371551500066038337777699234797430642956845433042430551341019540887254336680471831387254432267310662992155254739488602491997473621221202743984055018434241114411879618981702267101755251596564922912673898261010210923977756165566055712062538464511820379835489075006089656629278999528995093310118996603142659082222394554804471417618054637332860270937204331211299456102441375600213621821347774067030489426595338963064823084493299610027531245398792294940046059053701437635052467140371572680924054646757337911816793911643094432444481876912893529450852903389906632390599406942692509581868558742652683853522136500231248929318910473072137683714535119785669997202236944711575850853174775726958663348382814999690940061775053136343607736650603744709275089247723759799592717196667989431175637983393739856913256067825505507237625485961103284431323077865342655614725960289343829942006344163145990888579039393545887057511146115070643533291432378690921164063992309875398302300149925099941645229794619864717362828517454651534709286481133742808286603429225787891851856627120499796809061912586243183006362268612697826293373293028349675402663841887466145381305238842264395470800435121333573579561789536739874763642394415351276840194515070958883423838487103459419190355597684273242818849338015234910448019969163831199451828130197566891431184520286711001507785314561812919225079589940266683754888575420698780720772665261491805705720629601014844842424180353735843603251414352057749550315741281402036947097853117842397819027625076651997548600877107432242503354880285683965065103813772652684495429732552261813495079263020143749578528920459579344651387093490686820365748112423358403831143279788885456202199836016686091118226080923964703934516995434504071460972907818188455204519220495989049881865866744396578942034227859806841010074324054991065522835747091919288103497192200038446909867251311578134649861910787513959102134504738430236298998169582164594225771409299790270200415005403813955988094854574744903605229297224039042617400882132627772539702845003103007550098822167662129953900902826967061925152231044336992885961486372089503702437998362226014206209712990793892469792487745815652987683750379926481835485060232288973990522210196903902977065514550368615301802084696155889391170504897662090052758967023588285966724247081498726518934290903902642538937213783212512383309922489311822644650440130331058036218766554121376071058055051925125004616077248010224996168459678909998482248149865585682192064281068751255136160198862980714578408721872291280035849554193775977736420704238839709170228049764196770815747579047680408952527322310129252802910872777057771652559732271561241209470184408820403100732236159760837977476619253619001647013864142633965527815884359469639900909895995668746198208855848631314131944433714909157862035426643564159863079010035343757438730415441503463718867250928872262601623140345111219618995384239192649737180174304345594814189796070021916054233053046632738317475516447810228294573606010750909072177349240052025080790548038075130632631194209436135641995202577032534577400427148356468197259809028690016466391457318032050025403835242061493083902825173763094862086452430962295209207041879096684720635270479173120885131251330566775011652626205488793118888891169878582898606323045849765657986111817564155145363755041622193615556595060133924765746091129148496665534526599169312976373178155174821790096298335615247885174397823459482693037922494462341931130703637026380745407551717006093763214771250111304593640623296497642042557876219284315975004652419253885692928401135649151488734668341707269311524089380963104752463568597428466886818320138419630308185504390866989507255609393674027245800594600732353165018839529961376129656803755424027736432111255944819242309496190455184870604444967002083747860264342339087074192197063972236668204521762482017911045903108653103493128006403097098866180660577997837990050154614226516918696705500869724241830235267100844610881575745189925983132777808157969646101933783942968902728965968975298262269039820968225932746231515369413836559144326319316359134302676098239135235499379565839618789578439707643036919274632770905616789380385281481372360267380963319566971124749838184574282989449923278290405226993081089198952822360566218591032681396108148807421163090953446812207104265117373390443040785660062476296496062671234633036930141688227683031130500978592021481394574939793044178432898169361843504259667792681190418976435550401213661783031572350057669936824859904001975139398629957566344471982073962383799015827599241988718878854365040452763997078525590082099000386569905543751738888903062626996626551337764434763390574833141028369580069740577688589340581399743560151695273263637599049441468824508359385073610095914314743091383718222644448870039025649643199008861348531091825925826189271906347481535100848976032208984910566999956633692182705687042540653196835874663274530043991200643854328809448702038843942696815496201201216173542628679725590667563067221432512192935843130464559959682909350312106753318898729765416531962929164970839449103882923431700605325101806403360287919812408807171041045180321953364297353931436366998728766610038388583988690824682555478968410331053136506496115027011410071466501962315104864460685331995729694349650897755776061062896257288685992367770190769917276052927881565219625613042043496068517304092790272754663033535906053473951575009983341618839347614446029539472589311805460170967832672108780601997754657110242894822086218171362968315218920101868230739641940029480670861082004965751873122710979770596260344868177272379911189676107708657641846989083027393711844284937247373477609602984674613895912316192555466124185077707550036940653888878483415559184448633590753890990655755958231871745780023158699023149279872182534968445753988905274580573463427438388531952556716528305291406766839783728963997446507409971554325342520756189807058669429527620033736910443719912817652793063738465127842923175964229341994650752206627552119258257978042371459037336909045498854386168080275278566204528507734272192199619954006023593052722811679134407565295968278014160006085152523268215685913897110841011972860668359291967738176963788278447535238841638307709716912045926611907714188833437608070703052015030000348758047416935350703246470072332194333343731013516761854526166114840050329330935801416622920615708637938840797466231524601142308863374375939627576722521346620986798097754138954912007505848494442034682403033474365750852850463570101308284813722653449525701012519816976495869066577227829623570838364613323137100092640896860513568221669477814086749025410915486889054177748726810781610564603500948994203186285866847798483375520273288930610072625156626966077769537685299003711855885962599927357450452127901557887425476425323691264988953612350191342556104625745332292886984769685659473617962628642907801024825183411521412730952211530721609596285779426772741179331474715268546328243189171589909890014666080611222614351098899400771000725296363330478452368346487318979205593124198931481048418843516068781031932095293114686277272539231399079062044269771290355379998817918933910130022387934149534215378394355776185674251828819136721737305946873908939565670953553854496430314991131834802802633012894610651615380493820794757663386211330357842304690049544732017439973146017944915022354912661395312383876589233116856632704108299131581222717512327442690636512537835420359205379836873056212098753617071320033070907815382543888103024156569436811621510594551139437860801900901763280229378815835067998465609526884070217988074693245485934938087715488060277489995398802501372917033110383608180513929614801171066583580149887083953130564155429988413729681933802021162324316239372170907682633149770788002440596504734410985788830740652823990397277793044599863069187591525206948584795535326722583760204105228957705411845257548821247491968868189971235415121911166956888201006419974114560226553564175088917217612187176136937356670195491532514780504950158318285091818966710892676248067359302337482544694753269369837118162825711256929567397123414925250076697313906904889937510873986732425594326464810859817445036940233613867172249609681136776300468167898769474126542102529758049901708025819700946536054533550937167323930123899974769874474818604421179489521485775503647185847258626530083049125064234520405697861091886719554534338400964247963588114827323728271318947786008978840481661749407753831527590291021378662858133281148692082637972090610082593391553361981537035910859761221706001178987179759712246429499525116495751733413087129889395733335930843165299100553551526221443179178655429796948896428715800931216939155955893273810477050128989321029347415083917626467111148021087655801565421344183032117706743471268511253685244787265196221101807116083780220432213041189320098070360541328190621254767376842347692254786228883324062419284046351530491988784967757080646276118606720940470968165182984371585508891920796341056971221930636726694250562095840238605252385315349346668230502651428656242787235306383366280997207831520997187974537053114142924313360855262605884691961205761534477439600736443313703142409281189182063189093939874343727406752505428812632794582157113623788043551874060925292846990044892545576044227634722580041431237285652048615158401233174450593694538065390294338657997779633583493668245780030845312059489630995607577724794036267393226372908683191994089397244557857479069368583200328782534070557100804371108076909410713211934129489331374141051577388708001750309699668351202583116534195825151842931638913573689799015739824439580923207069606687633738700246232483755113108685363303334018069852860276908421701402195726067921597886750034916273722331994943364664762878437465181987071091440030946621698731067701018639121180466623568919792270272221601371664237944174555860608947024597679254058112018533656409186561448276663491250110361525451081796313913041529736900898757857920245095612105715843928224707243445317993700617480331524212951787776500656868837830334072151647244340949371956599514893360875449695543341292991370654500702744075772647713054568512438968089068789539911216532449887990218521063039494602819891959824253337071119264651583945672500321075343561445158160274595261343223393753492113425158777514408274654642334642796301992432801605017933542704234383090317624948348245616893080258663984481534561718452635698632530944207036577502347545351271340921093726277657470327425149273972435921189596728954142684323564914706846554671314271557475047832728247566514989282009637522036187650913059131949685225703579761893666591520295797716854448265048124351930235070795300434495590512959811695400371938608423749236425369306554102225600311076582281219138804178474578684709997479432933220316640547130974562050813789192236682960455407875443072043532964173273213637469179865791804221746012839363500441457351218761858115195051547079132595046792845681462714178575309702791944736564572884039368042102446965415081262477497051983307665020576438416446320921495440367338495474421308055092825337440827959959673307060209165244586151941096442628025631316921927569134415568831040082224565795094905773864413649164263753856273339219446072250312960320220980194769941305029757646171041338208198399917078298648884868704781254152770456221527034799647005171240271240725409669343060416502314154860437164991647774569407413325534389612113939858302805402544630398575666567826392814317894506147017026417358784367436151614295943881648047998463988415375777138575051154605481860808672465629349725193367042016296583213133546350689836390832203013886129672372760076583187866860913466778423991530643163501119084647580540263530910231709330969796836082907786088106753294534446084123269542397043056879046527133202987073565242183203369585948895770031482892141590234801656488678895403334073171684148663630507894713472456903186255202782663293496064351424152354235402315127737015147116160001307643184158092345704041963006450334274300527946878467320665416936901016574553580950060242051887640767192497012564652967220266768879474071964646054387406737874592640342806620987633494718499370699842164493310532186559093807391122683508109125445058264620549848424895474411988684216211336095687799664581183531811817803035016014291034255245463525273866517832856563145233316108779102395817616170148291402130339555130323431037959527396215666567227998583271799793210317419656296255128882213860050109842887573564103763973630252166504856854576485430014535893211690399889284295771699050090777175275906355271078973151982418954439545857657011650493146723497333443097727478273937770863748047608325055456023645023568762232525682138440930397075217158850234973458189120272558330066820025192413500080281431999139868894470295578065492725250665425500696532569770690633243712201334196692967370407316640300432141954671319684680177979143577000628942929594822134072684606453187291051454638967639761065121485941898010733558434130052983694205789329447010543029295233666733947188699081860385551554225545971801299562629319077931768895217301876743476348575642813759490722371403183001340513854058738596275923267366733760179070407296558309185683840429149356880613320991215360291185066704820241474177538599738779103632661859443282292385573499588347980613500072636367953436955455542759085755377517406636414394415288980225601473837686420227744580397964327640736884273448997003208302672588665974700755215037199646584341048181296460786631412530798547967188182613149302256274810432498161452878627592159066935007404631379027784421470748546400831786052558273049828629545785642680751692498984797153351541548628075244058670354173647773348395278524694557570129814236355911231379614378678530166254738325335089217858836941405066428992051519008278079833313673737032271068827339668762917148343587064233982655560839542392300894633272196522638416337238688959519022448417234249517232424976879797336247252595561312199779315777645421308310713187370097920274127317618001698604126182399608409625665810881117091607438959134656582129570137536056407761240451248217231730701121470086075864806133843166265254323792844390104829080684162166300519145517166765171584884559684656828063851938230755169664772947038991301349472628701063815340937478754532770716546239210347832023095212295961384624548656009445638031038697923009528455607674414995318685077874804396983824673996882828967585344831873797505411468784280770691750819448343627199125457174849574188029585655250408319439470649997121254649489783011638100430116911537131810328993113950381713040902511426650976760204776692364722664714485626995322306209459077994280241332886994118185092887513714851466187914066893148644940802615992496260630367531021295650262348991796251206683198686693051380442321000242815827961329338421034675303035432268373495268077125774496080197988535224939873675169805761370844281009050468494105457666347471641261733889697987778003005043390727684986072482064497319765393559820656674090986353362811871336308426177703109048419828627230551933702045147062958545083738134355806206900241089167125950016549166008719883336501301913643673553312072984706811771113426501469144450830592627618009036709918923584191804518212498446161627586216273045731723051348589019586005634613562167506573225805096512168118633142914943384035251753109011871015372135974758145513990959265634868902605007442186484254662273263141692847115802159408749487001463912887041462492008927963626797281466573519469522927850899299581828754340856291132278312127232953972716849568396180245106101868965864134195282882152546939353729519209112484341986942518381086302815536773212115486721370765296384668662524870608006300418777442765956851796613522298594390380160323157700993380531728300764136365968080149940339953998231916408854988039374135086404388945769297589930571269098399362417550876498042786327176532044194655778794427383195894832704569256118063917227723038970636923472225120111142235782748610503065064081443052413734381538740936791411039325153625272705515559720239343962258758244500997425804374410485417519185113846605413288748021374579931324964326091868067210389955510554054858445750504747107100167656585537885981487136898446431386857317141375769243196475866452929300582703585241374651052034734934349875332487707922608745727182536053691049893855053602170676286977406644349821093385403303773470361567631057755904005983774280234073921283409519470509810839975820987481403889319933722787261405249881287249927136620802837741866048736052613937759495577897588650455260637652901988894185035598848032572883864279065380495009757557243807480196801353476413434864442903418637183033258734044625494585267857955865817310560373697844279910222478624352569288906509981722498520700828472111944379935844753400551273491614053987973693234869191225992205214090660023735133484468024226553044206572011695705584624421851805810496423822687629079768369366896494786574272369232548407481378072132787276466473580824840882075494801916004995444975644889612386685053922327076018850715530098791274669083576133551718215058010079905232505006401918384281024578704918762192652375128001977779726850397711703708431915046874814313649558305447617490981847889043997659522356081058493318190559707299429043743453030746446519643692173253877136952263087547208770360477861082578610036219355594011072350460213257035678488924643050088350839367667496955360179259160399799826163230130086696195187583577592182525787022245400325381615865290474156223290836592578939312177847640700241330561600510194736184982625815165106492166237353870534725755195412383464398223706984672793661644162192120578976653459434647216380389331785944409650506590431691371341397294049988042836949359238607492505257090511331303241422532966903362852138238475714916042967838789895884045661344572778854917937376211250131684732196064584777694509136813274243539685983564737221829486836964992346445551557124045488560751645508910484433223092676533993152152710202083605850958501662768685122263965523116067288067011823430538251575356505776285676105127494926281954546427784646772511657373009333004607527411638261820412099683083274060963950567878396654231439483079352892276265591513985663353983875937494098830029059187553577083865966286800043525507007640393008578877444323179215581107180048959533152293502604447460298241467468771750329578745771405261658102591348733351194156016802444924967676176290506729221897998824994456336714031950065820763305240829635982465379341873486711694796599913929053681807314326641639982858445759677613743588228310151646677638565256481578470146232853502788833799059927254947046677383733063038656743339459037523069187752843999581967674666857076842301028198795158550363139882249134115259417650576483434959978298507859220480015216303268267681850093997094488056484990499537062615672060025399904349348639551668798739420814241598217659507638635112463913675247608456437717065349166077913000985694521672511375614495908075148616880485582519252891039972352759880836013552448873322704645816129834776008898890501445523307975284981789526650059957642088179105727556491669059370465857841325265731138806865042588601224489964782220884200012312682639679393229174696753009022650234075488202454335611529314747176587772909066069527852296646161780193313534320389093871160435382315480268314663846173415526751232603057354482200584815270339215054895246589778529207202718654394522775885571631992760925416471177735297898750730217184896656497976366184382268781359462500869489298427837262882572947589589668243993282217080418544304539577545478300463896153892257976480708182708060382523401652070535358288763729707918142699892934532889643384654958667673423249781431934629727454632567055579589432358169022584619645258851203504505495457608726858231460534604064013565893493582921965050920478508474686091218838493947420087964737902555015685816527044161575455022026979831033984233436873869803326795402648356982783154511920075806121498382944958745061877526478288677778911863501189316829187649313927447739098780177742221029223760949842713316810710280420969370961214496585159389397241383594300169828155510218184976716907418890190538211012444791201815120194662499224993934565665436091360697932419256485094341940747938871689117064274938327887009242928557976929006522967822543757399890907130629958093459153131670951355079596952322015357573565717244972984000535439210149420563598735290792857768798971798163174872036822910755712024503174990741435521929082870616941154722686916029024780701509185320356542803336548333348489458408481212247294862871859205199272335028265770818309154664404978005959130977534401065295340473404476037509367118392057016890396407625350718418211656765542545935885990100680421357650360378136572980171449777132741996737322666370795643573984548474985308091698638231322540658279363252187934757966303686841916935097158893217502846537867158196739372389167733597738107947368095238287586231648427803422497896907691691373775361046614359461478759512853697226974783007847748931983552565800943658991518665608836240645298990040389345959921406539103869769595853772678096575481093523266440672894630792050449045472136922997796447426818737255205967814707127086570530543700718042963504078648055737832768273887159451078157786112900073294912248183461574439444211529726871688154270609893245991699706967689300669361069430190498764741291023054414834806409199760307907389726159607051642020605899120489285294858219098602237388852964414834926368068573709986513498554195771681344376218024756644631420960185804528789168168618356458470445900367333609448651874846954202768075208076477407536178850134381403023172642919172861646250790941180484790400430143871293939002659500998527813631116736913042648545861405590020701376836430769485216785494805979748629920316016768636546065585728036561416757843115949712522475344182978546658832528495589584367810590992051297844225768001955412754950601469879959621126591135917660579752269577262540340950440768888284983902115425110289092712935978047219707186953528988418165282561344529363324696800370030135485384124573270119169042253706568214998167091002542183348140518436133281336388251380463275180674380114350202924617338796100925458470836644163889677540116815444749526891659427837721809744006105617595361022639375453823388240653385286807893266113509240092625377668413913982943023265128413172096688570121383069827380076503326377733978928985768729989843104056576155915366492577700248264678151029916264359510964082692614074543203872222809390986076055770442653554207103536017524546614891983554447744262736656599558826290156095796171288289795902996542687882033123764010622707774388297456046733489573388008272807633407039339262707215770352184280245188339110985310092637440385882159217094214947566744861404461330918704373641159515945829749997528956435201702694290722800922658616502617836698872142406790829943717863580625008872274404202066971279112542326189223793889727478075802174686113643130755902925073552574595772608772645151418505623595022707828562714691731167781763130688978678873444787071112879657933328972153566285561796083134244113340546331351931107574255865636880643495657150018761037675836890839428711616246320792859783127108764234247426021465584906427650531580000471994105856487449556730876440106056895785886330873402784393822393908423203676451744294250186017841945970222797477586996363942621095315996066196542793625715259691586306026289175835682605214902783547011385895551692065507391006364177876115984076463858144572559610291939711867104867108583517141509907600867218312318615679784252907233867272930967417786953365056429730357546104026572015526173628708940924188726966945309977356669521394636701784841299909793678206975301523864977910750620370985657603930550372039791951978987409414941779348065526788380120464412217603909699283221200462217738614486448147818219595490463479959912811531001941540102509954944668693748976936179313293778305925771976450642976252425279595744393579422439616781980011897709774317563147438075696943021988856816147484620640715986755668155110236004253750203400316599358934510862501651210665678782744120911051086276812734864475339696098517586982878262237137668113369962619330837535378135863475297805042782911235732520226253022692607285551431634953162752168571851171255344473522811782619674891083384601205544967272882158099837178663008494375792967652404700675563729900950694921679517506240171286511801294326106755986564430394386027098355937692876347195482829201963131594800972890076805171621426021243246862642885420234140092330484791811417902203606830132890848602212537041590777716361315093564118469718118931412030776052457286538651694317279856100077198056321598399712888435658105396383426264237784376479799948350555516536021498486694435333343522322871316361539550454228035354568751307763033970558414181909236087073026686306445978619104942990632951256251575082366003868953748460325813314056950708168209370158847233280491144031069133230274533675091825082728428908936376589114301357733933517538767476134744781599739357106824308391192508436898053497910909682554438034192032005826616803667305569920706599323386571820177767590962395750466270461705233962239916028747107977581129560181348747884143123967385461518831508769083095231752796669727709922071787390985333699888705016560661952065519211657597347389202845138807150189186146369081099128979810590115894904237818962306026557083619383634503322234538306868372010056503199075806197834703678479408562450118084626114012400226149995694656087364389974954111985794810876991519892496134414023051701059392196783140388341766800105371693610647253259749390977873666138772106870852244908466942994819782740873603038564356591462705139568479271352809279620975738091139569120317038123396447577050221492847639048411667350304903015695485949527928077037467245036093045402256204460391569557111585084809608559313997389390667592102394222637425407155355646043109086907157782708472316095788783357532513110127773254174844598114121053603309392128451149550564959517864842786284775630735713357223598602149567574826670322321859031241279587708765211453877228216437072500185976928625508062921219008480759387780082904781711123551176588421273828402099114806910086114630120108664702531434803692726547972122542724118517859242908292822839942086580485368995795943058861156600314280587865062228161507908362700598797222393047460781072619023602960147262985433980966305289376167992763198643670523642747645395949937930666314216123994963406624147158628854748494177089179402398501853309463142003379100717782208963864866999268822094683629338561506474723407510853607466834303848786427695546532668050484037195331512073593003520476876189212153110409572290887798398910020123642852701562361956876830454908904550509764250335327368446913879230077953894567336134707155200702618696381439847235896031106763429307780141193886906251339596539234221895433034716914539852454702723743688078383934865978995714388265189677516877116765667055433538888565136285484751811065110889983428396059879903278481947483823588192825167343585659059058981824396664024547635419912931030157632614999453699655820874075424324526627588594433272028346613895532066970969972770023323390021670132829528614203561397793979934365852424028328039606386918994246849104535489040907222225183614212537706089129589093189001661402817963410129025444036897360436685862973258827271083106897979554664602298992022103178895236503065717786634980162832340542584347825269050696978347667404229245686034974086337704943878049008254061410920942148953860243256138927795186513826315697939591552209781479562889633901711075786303027856963127873256119928730889697785256238839243761975114891031253119189083336496192505325054832353735194861522125804902860326663109293466116917526965296281712662292015903354656319110196357313173844713649953174736590112641460712760918319334204424967848444294979346050357982550526911108936903109320136426764059731004876774606225850513984798350052386827835903455057723166522477717491187351982123878746427724892429878759126455082190831457726996926581893442868441583945748656928166339132298417809808909238607458897335242474736351699812330521876553623142469908067483471136475877586289586218047316402326924643773760196608862964241145187096462781055144238711036870668585486027989187316619613545985316909908577757509587267758284274807563630217490822494092827785521230645724249403118763188412417598588426298550268279323784790493063717972023922179151163756069435775851126841369577511545906663704485169612779882166010315109314724183470208490922353830712161602000785273999436275848890076614011142809495992739625539386198217173034137239303235519873061122825875255573124179536480129392144863553320504419260353794370497085320753322744667806254295630458201128141460158850412927354366020531210348766717234773927830103245742831529897703557417965286504319860006285116326269130453803982768887762443637914377462529676249603713406617412436992178131450509127151327063428863785984626767173084439517650446544803213199944584379339732066278982150306295404653972487418877763765464868350718927648176060259715230283270179470375266649486532117107972997174099655347358889789752549903178336859871834323997342843310925633451350829577162289318963846388297496335992963369294086298981600521005858578032161396445318752042428206719364294686836794029580770211401561566641065961396906637421285931597026152701320872914033069419392058511246897324391558338417842012265154369696499142138672893672556654729920059594989446495318378173449248602631653160964765326449135071857253030209740139395719439819459719487732442144209511450839794573957308959778655056976417074998064722480204425843548337052746454630009226701485342809496952174301774696186857007645056736363105013921076307856378651441100866133558161747055448581005994895499969115677193681929679942933335648235376713771906936128165774352170061862892705706097348574050937057482245929282957508776252802488766457751097464281432001726549070478800372606916208010744462384396940453403314944614804663639720726153641660695576375678341499632931308754705836022661078269103740851840391229531997191064298668120741105230889661376289115221857017272523481785147328280923240781458125738353394944943442296200261570771743052259959694564196886843138782076518003500154987019133454803260623231895544060271589145430536518301995733889277330960789373694338686916989395395406290008746089514183909545558592035931021290883284370414894983286700205212948894622366684090048354864789459676440948254998144373893815838174336822816986463130323944220881147383156251671405368845456323611853029773335787591930174371798565020691180294718415962360049474643397117917228196135003536622036233999039045142804255741373163636250798325943267880828624438358256416151396149037787359446543643571322335916338476084853149942439461790731466031970757570736600920137328601506122144047679484615429497519546554387396123585991247926678316715472345768140127488834168902164484904581056081132812490433647046932512259670836540097529270207282951493417061173703327863770079416337765416374891896159378846731317106007292702160524272728381145194486334317777258585676189614971681731909556274049731667400649567145784082359082233624837085266694205562647650520430097090068084122106676963506474344648029857715516551148112495948819043240960292078130462373916878269558912238495482541848417672265282496905244667064952597294544569910366443410881221278856016150112275349082764909132662396022302148481858885695296148068803018654253199618716028888893809336954523618795897213432646439090942422939908636223127449479688507379762304406085457735020804680393973701478345038464071276924406703403607015460468073237809167969151802639335536828965285031242608245092038746660578227279204234138819135688151758445559798378276651395679931065054560793473286349357126508550601784591487662872894737145697255178919180406504411327365497008396660414584396481540667371914638667136948797428243047396937561001540313052942444585747490355298514160051101572913878979140772678363006014418279282199202505822527695261027960464779402337748093602926475740484343463232971654805640455503653469027914368521883992802188998531824968936897769568941269147008039019446139908871117094765181314649859805011582567648336640364801724278872037556950721927368195768010650289336556639489041420116433237278596768774393071905574415011670293548634540880198288671423635089271321119980681150501966650343412889543153035789810137377708214830691260561116696761413244789374791125825860046327370078165547058560875305442523278313750197409726878097824555982181951495263508654353426491637598213437487727981829093621836683984567882733624050698608492520249230847966513061701504519812813824626940643389278723391972683042925218007542666490757587362344692313012958315113857966146303675385495923926385382080483040845713016871242740774320490621790804498580444469922825412829515999131645864590768670172950794468857961917315829078711326416847313048520154125903611607040195599823501981241113254437229721719433965619137443663145816883756800605796021203333383285327626876402413083370749386067805629185531185684201529562925183635835250958344501113046566171537946105797494314284709999016565592654372368935388553736981327098986355804028517670887552673229371613988287409225030347018888363815292389430815350337412034593583114614293431180012502850054016817740098832943240150429522756566542464258140262630641042673724444248170750229577112538579260364008230735374049318115819675342119833676357824580069882690589895067417352079192267977008548080417687558373382744749882595257818101961179277450524469756284959666142979365598877044327531397438054624472312992840263856920635850911608472822343782462256935602351150457622059870752374545860093942118038833604957898060478005781423485799330776614550621497435740886090995648584475183049502675095284254869821477497772742565732025273628089191233484351792177460761246666421968755103901776664310225754368044279329533653038844339715220578598342357177321738144788160969373784168782641821686420668678583736487044530069886008894353121702750963380220589294271859071543037762699556953549485853097192467779086239203961700514408997737173076750444484972715596866532661343913174742430797178402407771956865137248609827151947601532397327656408684443608670150137272033912867428319725507022010989878453198255501665488515248668916333627383845127502491059149354740088087366219750988915307891767033959938447564456616774364430361435099390783166368406362576710639921983992711630223879247349591928162632659058840345055234616101650185510825003442154501562634251188094843741876138393660970508060727685103738759670359718271045819479584959943881668537926694162600658207033243490219547145236181247575029190157912069289249418583595716234625453301314148241295686153872432047354278539153565216768578536913553682228289031394993100012644832754682741001581531540672937075136980572251998204047321517948054163621161901531055294985627179442339485988631905880444663235048972527904808428883455189169214681814195328692275336455482325082884950320328903314011345117169458348449110869666259581681841472250809113353533557616755717340339515637421596133821613327259023125448747635179112333270073074150455655721243229181408680196718669007952972036102865328404167929989800664577092937642892956281670724094259422638130503064446310029895205995361907033118444364837279491597301528192033072460920388076980893217956386064844860382038413558890051445317739095345035261994434850293439559724372580731820093338429433663761727907266874335327759071311965337171784233938324477736696566372565042370799482014132693275227602400403409933580712600780374539230734003633313804813159889632753682026939432347601594709316253555429476276223922828177809102578755864316102246623512995253983548738308082777509806989741638227796461756778782231123797617815698456780646867291155501527489761470364275885802684044749917379967363365948521601112086876794051256962151335223956356919170652407086712860510150524387071776147066705980194953921003382854941632682987559068851441256202460282292227188987294812912625690185283253314839929365326995368295925417435637610352323044417488723892307261290153914312593499992295149152062917883700160703639441144672660404811925686650207279118009237203081263631484713908258336291284387416651548714826998305952471060723778994405520761382988718172699463607589548787225790023424345659171002670604904930133803470341525296302392792012308424715810352030962207919429467108972420172093018456438199396042172730034469342210638696539759832838894190915231372997199407572880236010755963915035922155706605769471800240968756255458487004223438008620450378958899028939571190846140162895076877575021408836213833179238495289465217393860974353361559876790973152909598737260984615906253841239711369264283163030893359725742718885287782274053140994836344263900912093959111646654380591301130213506627288028077912680657723490088219733292614182930632716186629894930964154847209251713194388716888744336166356384481176893810089471881690161472482393622628901895764123612723858385064149738205100553133243268025812175049225871399081959373297082359544142726289253795858943401416220792760281059782740527196848692835067257816012956983963501657902286795358162873336659605896147369651366794689643898130678998061754067618683360271914962577202571385837437465838796277553248666051638851382182402949093344440267737872324585463116195726649363088494479240146649450036928727387811508138071602394648925439588189847643448399770311283954508306330630781462979138433480051420012427711437731576215971709188239655650256034685559097039042533110856398785479331363875960931462891634924470700289522094750948708733534236717222270867494294039352444637513268509362003803014561291604760966427355515262456733900945617368754123997074533385654864644579104064065626053780206999785051272706556638567421598684830413551844923301458165931356219854618928789294169667043564599550275455411226305585366213171638906972681808203871385355901463614375724119595434549963907027803842506210043751576621810433939302748933398718679914951632729824102927390267966877990712258365600418864665598444862102921986601696729077881597220598160470349221052235546886801401038757511539336131042674419088720525421437431839767401873218247262152479156398116257561408305983983731054599452390290620106572420085462725381800440473972540766428031840685185156744323252308835250884205422818426222619860073771708291070801234596131230008069009963217979599663791257518732543850573909533577278229350422233348638558476902492424112209014143152322621146453422448927570790625283488707855348304189528036244356937257211985272832410240152239361801943033566911361514178323860788993359498469477745241797759345820560539675713767518368641256666612549914741245892198643990971503848829853585214498003623749047040615688452816996032858868153678627806720455119480893419338399296679912792617749142429204095936862946793495863859366368505747417856312663043078123184586843187425755698987281993061645868950099547008509030761475304154994945039838100430673183340256711889554320980750341403362188622548828969408810519095105644213360883816365442572939511020185297597202019306640072167879365347035791384987083414645014538746521364913111497618805716671950660093471676909634608166830317775650278853936768753146207474275402696480855083695097550506173540855216206548908466639069378465246578062616071765332299892021387176173550363344037002854512389424877435393167711643022016094292076786135737578645909429318466413665044391254839017518630864794237696775080165326462834743525177309350549729831019819917801897860827463144230334936713999517888277950418956663465892626966285936035702394859239296468013774466393179834257172701783912069320356072116849813716524094561383008780000730503054679494059750122607061494927432909908571375210898819262749993794719342734443962744789394763752798839111449520381452313139242960985184256135671863814560713202633413229766383177607564784398426608480600482384063111283998417016827831402250897810534391293169784241517505075541112599975604911618760338195522726161672066461842183770880638430590930980480654271084313074705776297221897078071146209652110864356739035969643471819693282667782780589943054946886430316758484315920946679523758326717746360949789449666903338404617334118992282132918911868035497228015234794748460597996188962093378581008050281001683875765215854625149386089526260961017910817926496388891120954824244639506889932461876712223495049795721502161071895956193605676329369149118078208205690520910408183396461785949384248715948142726108120189703223965418777663705008320732864275967941861344171621115477422265363732255567388397055205096096895606796271303919338332865028999023051553969817840070302597428159253151256370151679080327242219165715187647836946967032499066293720545580996347450192902597442282046003995295698439758233883554905689308658857583343650838518885062840229105013557634303991580669933909144079119773234728322618469305647730688154912856710564924140182547597665530093593003190162338968491787053825170852007952106705976028830895684442707700305562323585634353373792613393129192147354521157062235478384798760886144976885652946973954035926601464238545661366483240760291440342795403006064509807452398274687662061939951091789334272926384801322061054763136891675098304502218201469081503295507788313312743648090723764317935569969167830500305297000946491632935820110064687900555889855411818611862207159398624450434186543847720380570684123457109495558724104805413674981260865825020566647760649630151735231827550155704335377314219371312465844532844563656261190348715195859049382324636387432347528330089196627878363005554734042891803045707376428795010038076713271899927988613380660034817722926378206718834625976183411779423724074171041733705039773126498054057368269538655351367021215792226328401876709600811706315622184053000474338804860916098663791712965460483101245039930264336315726550508615269356795160694984417580385771998089697547621430726928832056885442366987718860202558948554515381415852491512255939598892682879746787158080174102263763669497040952539626635988846887465087811257820746910701303048699981307540849596020449414383537850169578751059489700981431004429405195839939174811919657882889558125175226974343398506714405956458252518759022851996243097464368649439098189857722000287713095826168723058175226709097239790180126227089553954730703313281369735950897549391792270677172509213411186346201638195817770636904332822035160717008467519838957161321669144483863747189981273795787068904582066790987014060504215286054713246368322238737533536242280036697620632960350112340657374035020362775539155828019838242555153119143239594862524232739425445908268239677427667664246447630660015841422148580183860914059673718427694939153690495108213179003925713133313547923851310191027599327761596125161218046385637931887361383408319903305928904383683791425920459360270474824412911776612680675520698541036099305950937572228032360088249574214081824222797042225126207296403480552584479762237116662685875013749466627035223614222539110843532164623865939780374616512888028037725278835412840318829398031959216419861369690104892129545982868479860643580187357176976303755470360249953850223872178872291231657695426485071736224566285028038577837179120286818890522458695492741528587646286790318246289355835579399691234827596048781056703362592978014701391439201939707140782606606599451991297279284298002780798963942061538847188011639125174748922606132344001620659438997809796684249042695770934398215895176797533044668879979009341037062968688022143724201408041794781342274962454080123537360491467090926898195584281839846953384300191502710160046177191226693575659615026533160571645648212659376472197073638171984513051857162729887114120504806217484726923936937121334331749807325776055670186111372258746135725230160074972039226159704829640417397187533281199064434857749275286655974382784869645245393297876329535128995761235773546214853026005375056132042262376346447425138771023168286887582809089381509383946894637409300318313579861594819098807398985950635995853274693156590873995813671786517157310500275567026089830841222388765788402746340436665691259965942847754630647682611118195881920062600432623017949688763985833186281136494374668226939289406733978012332664348600724782304037332664292944690184971525081906458491444173035942973622741727686550432824035137095552042371053190692684797721394541238442524312542857251598615784178440382716654585939476991347270740127438759428219082639304783030322228072566295904639363675423668943616656384698678175016531778330558827432690865521036461844018080757128573886850068677853691924369794904708195354935768278136525430832773185649104639469375913742036955447718276669746593774402384649159352498953223022721290063754883998386714774763072449057680942742385146964272228742797843706858451900596799354920059229109883208014956610594068254338290524058903904463044681387249020785016834381028339069405635356650273509904651323035905395022311139998394750600088461278276956193577423959007528795825338559972511768281370303601434991317522203369980309930250761360186370832820349553682062139104979009393847164625798518657196389073110636280179505054451476619631072655676785611819000386197310286660034358567875429794380042505702501254077247837246878881376456531898085270744500158885515030007159757391944340157832663979559913379040843113381039585093106136722323587540628284121264130775087794329236667106025685603152058891582045703764209418686954591362658796329368710221313064390499263724442352745378991994895786495377798447453325853134794906562856416245330935907826699763791160919925527866609991610973984812080743392457188025307079415044554943808225353349499104983017657101746326045854996077549552640844396198883805951660695456787300316750016248250648386058695101931674566432477566194084237796253235227993607386108194915778318477691867578870068437152849171363099008712884361892564252116663300690348766006557858993313997966834423116716793457629104442221043620266011303050136464260172538736377302622317115276145467937191961434293231968702355969969352079122432282621695633068505703113527218579058550056662729539286852578528225774925245791948417421577971785394626833131010842503807453722708251893461137467974423169588699794075353900401057611095577661312869771020156154537133886907096095344693620401706909607483020384369664580232004494246789091599122598229348840081534257960781846811583877025843238707395585683436778710547483630632262673195123711904910608489473037186437951901231121365707413923292069353726955226276904888686113230950737032863217997444478248796324323949520236887340341203828841319905741261247064151058513073604205329138502719730963115987301728851638471547875810777240145430448601522657302152681883098990109326906066891603001801448357676115721833645688751487387655144922954478890171355717657897208258145444959352550644386001476311961032609312314617330725807368372366536389034260740272812729890708956475145196957458644284229929622633093969416332942609015101042301077309140566628140589011928155746041032398913851073388312104024058541138184365008539467334460333146835903078883391475561314023637910320811465803963799878098542175487047963617954463742412188678108705212947852270177052951154020552321537915257677431176567209082545191596213874791877069709116243123729588849250940115274724586655359694661793684808147098465845043001865048183001330235606843265148574307173109304619687957568122349072205320537207739509397068798333707162949286647786869919511311555602156219457280751501566681310896488751928966468310297375280879944839487658697400222056805421900155239341015107720258616344349564886502506576365247796900363754523633115025174763430965481400261598533819498358630872625454242615397367742420116445304855882936830617972393836200643890649410886761400739225040109401712889647721558749583662538427636891941205288643041466741341264080618371960467351574511734856439793111294054161493237428798417785745190397877181949681525893040578732960668753139350776917125822885911482657878213823662848915308470658222820950809550898840120141992915178215350915994658501784631505275652969983517158219261480353903018256597526097816585007267015241956541632304016213125719990391721787686469419436942448873475870906989966301480368881605650077934326178610602204510865129472928551687189836384986524839921559447099076466958671506894896151681363339417181012513099600699402904140150410153462763932516340767460291905928585505758319877584973894446157196439311010750126977830736933882901043915274384407348294873682269323170424616264683487375204395533104041021336575772176541397599357674571370509534868315478615262591447721352586478638312791448256013875261192791041086031457917875394633275088399951732661397044844391427205815603263944073715045394557640504407062983185169195728929424225300396295074259639170230601261248439203543891168975324990478766320673357581931605528638910622134427659917848237730319322865413881550780640483749111744844275457461057379160697094662285226500383903847047750044914809985717869038385637239781312321540336050704797391528960489813365510169305825636056548782784976412354072091258587864141292749168540682250129839572667625645306988764217627057453458353759449669880199352130278427084515926228004561776394503178447432208840247869873808802360098114812320423156533032036568053664242267242244149730129324789938156509445655996308157483845025415413819124334143579950669217972932769404462326662589588022992402468637956396924323924683181396477001997368554801266249136980597844815077920233577941771738173296838305070520600408270301391011203567276758614440609100064127856649592013067693133656539321340912386015100356245139927969987997933394062000236101433938101529213255253493766870711381841073678534235797836017542079205250830242384512820057126329893773905500281423014143325608101141623607169326939706337172006641239774404031839450587346022943276965706654043800752948680909958849419321003085458682854979359574902436740230594001474149142925350629872872073126330088309129869132445218339293135514239295942112818510752160988611256525724370570733026543233199114738233451900436529278390946237051413013542988459451050513011851773293977162902339004775168065345694174148026603875234494730263513641433465268363900447450163953128805292877976386664740219859761769616268117478580514515067660269697829686816170460836189279583762048738255433675498311834239842156755856307258509164008486466014700749955644626362003514554386900082387867249201774261074186465068244015582744286339264981898465912420246916197893002710557815448457128807336424064365443275637553977502426391187378144109875565368102852480014517066902471188531670553289321223700358737498014291958272432489218041873911619734275338931185496040924064158000906726785540693425910835332164851705284498998890600312800837562464747739119149898000117893317478082803878555398036423616129518060178772007334282657426448856611721632290286400291657288422935185724216090916695756197103425033466790763663338992694974386399563070443127278001861203260053832125840851848339202724542968552101986298314056333329726877276122594437303805627133740473508394650324826111001087060863487697470850466363194395628485517479191089348596512367023423834446093935216562946793294265068899597930927612719381733262900234670657774074235978775160057548439724666153251421967784058227365821979965314267454631691339663219114447105278690857876347878561631888338076933860389564056850839128506014727490070392818062984670183436548168223038442880459830993246883801133945606064621843260787522202381023537447893413105983177011100175247798469616244077086137906477086186262808660509363029334187128712883837145060429510781961876640271535918679492962066112163944816142516814078395558468101772789394546685878525538285740706540593793532194570954290895072064387976173954686900088373423452796998078501706431705714213872178550088443345544580026529297708781057182822282391394217214066277822490641353262522731131624016550013449825090813985217847327893638478109681593360428824625708253108128331071984232070985995675852111647040432955712117147299602124276126572395952294268868648882773069931899921250075451823376204954332989410554735144421274519856092076061857366102481691942846510362811606311911846485304846669617287515772594274600882281857715699160396903066310389402072829097957811906466172628798753435707346990850206022099233853388720656398648520111652611257005487119083958720813726122464310524814220371896792090520794792431174222246609801102648978830935103405590728097005509811847154019379180667212751957049401419046732146923391687574838008970243329805397787595157158580156751583535235084667356811413424635241354865217511942148838529229092734503841239606876769197784760074915176682284287910865649945815735575637490269442435845791513849949249573628600432474177018363545866085980048263144637834332817318309111186621472844601914815444597529364844286193793765298774388836748351978387779778823066920094761608779483202159484883521787300849760004277056952896786267530907117317159506148230152815124120418399728150642294058468290850699067871548385517978407180808272153097513037805264158384825514909359937145688394141151738398498714883998886422187048488461662327384310367836670122700218913982334782592587335946083861417870662239473997905128655532268995203500925788546783257826112624757697322844729305157675937545666771977568707398143667308586258275725823696012379090063890313763985440910330110480739012845704229926526768217831327448961315067977674919826372739608911576342460059999346903990717833336339300759710553404217228568781826004011354584040519668326999902214463341801343942578430949763089216753074833049785145815401812448867865526377613841507007922623417739875394837913591178657690440279740169245927707667972929062987920781569102834493667976581058675114682942201364018117189286783504320380105085764960982001268536445802683451137065995725268731018041865096600474681202558569282144339884993414133254664386271582224680965287391947436548827078224494380981500124854942158432804536201153900020341537616058707160937822783830265271762814363280842251862461825949459555633350842452265884016167277797685531037708827568293648685418228498389983075332727577033346399658887683277676317078274456561171231102049062376862404931256016179455210108754694562574676606656562535377355489100569370434434493298734974169295192635018372178258289635469397165468435616922528639022719204190212196480786011210593875691177824473624264768294036645905662270054731786235533061333701760686603081412819695119226072622680093291633840563329530767064020255026818387078029914551475771322743086421707713261414202572718079421921739829447304651168313800781864127553574823316076658969712344144679091256332708605399930529633071619988340626728619716921907970801412602534993383048822987094248696206110953451742808663785467488394990021886201919668923124295896647059129296602424142668158624510152006643249291780924493095174285729488914109323673023544153127365447751041474918170583822894576158810515826338398261683333626619722029002755222396743202254637258434343921460836018406994020248651309026331606132529944421538310300982965153128037001026864504127268080457583406796720642018542880019559923244088464185963004159058942961343423854415714274601025515763237514196340445869805782472598295366495779904308864097002926542084744677052567520075273205865197818408129150476973506725828969868995009724316023783800061587301015207331347738726438532214717152090616436072694601802922785938844976820171786230458301894031457441212823522705851623958019759275649486234511021618892520638667600307605416764844891935804415369356322286308516483497654964213855577340085428857981151093657772320105698503546598620699704413103586778285624836588620541194447475685557704090792681614077572393165521534141585073641891249703302661793000943516310129333591824705642994104486842514019982581692629066026368055977960040353232076594414712718946732379047568899257521984328026368968151233949467853077240971121392531504969047814486839634260110935791070234306219407083733154288908752335565068418839590156892123071787465102500632013476934645396771696095565024007220976227480927497003976855213586181609982660024486689276086750486829609077216463642469654180230449680557925075502118307142143008856630570881896656815564614649419571119170202494985744761023487905661399350079708978078505161558201634216249562813443278153928732459582206461227284638170144534182269812838329949154641032552669375185383371693276108536362479068779341490049132517105419237109722295207100408168518726934653949957388141678583899567808047372227299262172031504725129138204884706985141155030383771156681912590640483721521327075037704343919616522422906952210537264632183625229574513630320009751197225077343561860113475306267940022655627734353118313150897290571326222947174229335047030802275214656982064719492732353679072704315161996383295707312938524187200448583695960018520726977371153043956350658160172891401974674725250909030031975008036590632972880399933931254851318401224665484694803647637625754329418526050448664560771147649360952254989887732834133797423836455097143944370173823217264888576318102791610074296262803097815686586370277688634516985436366782333515918344025402772727642121807676447125283335357820693424124574078164943724074620498160037680265199880596458472222600651387840782889329518241257863262906942365117675555532837901293788584347754489948324312002898213917382378518302468468562080383367254518165289479924119478776152601970808733956521733840648904375672653111916962659106570320785541101619503066504384265543754057596608167450713155797681348920345994738166209674356183819805231714357647258119343903746931851687968242163043907574390117266995626735545173480469918637772467538143530521859054033504118409830386368466798226470720913155579709503127788926364915012001683994196263137997432945098256641707520829926170960848586057724051392738957083655660768717688458379273540075854163686446782295437337941174743232914062963457578585220884322388939288058800309839475349309645481848631033212431362078301130307504950852723770917522129793461252118796840741539284653713643368593086844989902005183053514778282895556301701180208926507582364350333815618841611480550398880930700406959951711253464493136188575575396691546854589753279152070412474353163941316207606469532988561585771672689923123174071274691449337106189575288585622373968905383310545456881648889083096111128650166844456059440144934569162897968230884081427379900222175976390223836785129396753338326446086053623667302574746317947185008659088425240785147694653202098457365364290628324896794253770024905372406321867893384809669458351686350374507467978509301743489872186420981498032567205885994782576425802905921624377106684187895237898644375286879565215584448958978953514099660928752272081905543839095611955301556749115936739485526844446124867891806651032791135134463411238325091441935105217508581734139017273600111373491617999407713851229069206989671755818061786965773111268690898524283914271240857866057480308157183150963771533307238785034083728067029981860427023776571099573657638192549089399188659995778184754932482130189253268584090094135754209625055919515686899247230311578512484737828718259697370815316111070414223216680761874028022127854950446452847834970711147866966098150344578510522850597846408549369337941304947758848311370980708409954327869598244256204154846740082368946899653880426897288602343615488815539750366100288044399529102824090580061259217914838657272610844016635153843091840448346323335733848289924281810121003649367991271553498578343149523064931427166253025538932148369554463268217830312935268232557880666432372140614555236203218991221132227499349688498859936464663184165447772584971141733242568540038511718979152493077069987509545773246795674887940037788821466173869118045486071375027907307096867661880468749254496380655925042333720130789417479703674494652727883161005798246535005763145106100935291129824057415089115076704388411827010759104791286838473087949982034576369584895104375142562420221762919685903337000385946366634950988324278864791878611922194873877422927261690346884895192048560667913699519423220107984755285081426590338843220140582336191432662903047556571113688771622960751975479789217471998489199506272609265392467712344732137834410225726323845777981620787587230320312651234008999753917365218008139334570397782129438116131390191959414797767284955196081689594176765050421653370957564144491955468971245298198461084262876904664504054061197735308405507007504069634094966781561668890833563430809628676070449213490523303637549492324465607600341143393072417478884208534231039308780512738930962237663933485426515449020626109206404407150555335412003771881802374876977631242222370745999572424435598098855985837666021343132600654773550386859907873991714451967737151702844362708080866650904479867142031614650587743392427048490711478897230397322436319591270721656494565603053912806101203294485385279853599311606753111148192053219510857551046707347277039951780993873050793554020863407997941374616847605820807854867836996101246662061644466246801279775440599948873387916510263252684209064622292604111493246379437381432956563566279246918911047400968954511501833527744576267606323724834954775339517898232042334546653784927863536845901774559082524738612292786293772357405496378344114124418598355608179410115938103167058832665166393521298808212540475148813781964693220730899177599535807063896046880306760375165087525596346756651726579251665642518715770512017825403336722137445345332627133091299757585273555979650886266636041630010121038156780353255544623535576463607261405752610018613446052651408790319654849630304576162384007713549421370661054705603444485297724469899825465416710397706585137043982144447954449454471884503840593081012321211875146787953257022175733536641830623547215775833717208137730890169668515494560121392170062805786104795281313722777690995458541125292435548024667006265873063203246785104427975049131747356342658034496058576914960754607396143779459302258418572567107916297102752538277232964619602030292468652891828739848847734122125293506061154723175871928230396667038739877699501401485000705743877788424018820564780113938951127024877156529690383038498111721537051579676808559996575853385217460629010391736774157970178583898237074316188487360246844901044871685261395063904157972665403527382370036910398406731165875189647398018957032711573894802837989203837800256819989660229146171232543150234586723704252010779907480769647258647613779181222525435719213238042099064303097633202635654990355202926407692948294676174131723026758385976737951524038774336559662093339625782401371822877037573612699463468745731499681703278200833535764781555857493490570018943007985969522856588009071312117623071596515285708555136380965124545578959751741398226438024656156922489156353128959271479178851461851543286762706373475473534673617889435848948148604815320107213007972359624174317009462322319164483676279712231162943903940188918131743126927553180132614311493744569904733502173931552921298601415945168928651268431823095513493857401030029057559857034675047640819151302271959060235479727001883121300677573964106253129980743133804553740269135978744399352411362445163680752507563827647563322919548658382097975437857008335552208795024089169871054278244234966126055349522191217936043697442015557663467232125592740414633446809064931420877827231061930251484845396256794442308916388409786062502659600021343692918352063050691408061709407928086726238003801882354552044171909609678127193505832832272987969157981246454550360480241347467106011484249275016920179515877328550695852156530995560638655998862131333150352639956463868398461903961935410829865364749967504972721144968821399307447287231128783805457378396079518019354943718969675795670190644863185735484239029426106672006967249248483799534910068037932585690369044828059686604494576307213461482988514890685444325177543406391563077332082659751079968317453741492972814666332045436507147068665151173005176305584905784933731433175108072762699990863952463194596297269534713845932688012096569658429364838228508303376435029699840402578002587148893262668438672277613654956937346162119742788565057768046669603834338417755571389857912464452562698986176990056037617095391445988022097048963801575351187225108254682359791551892929301350783861056555555599206199127058742874222411841405163267798430358650237115343381207653538066120375540030082215073867308428513350241496794463346440949828986027513264436484598819098684951741350790044056828645513385269345799051892168709073371786890965555801427982005110909997377186724559043507469245646157043712389908549724289077540416705064818991008115500205709200694935817922462558826562074347025473856723251739109448660051895483768247989049087315433617495712377927275172566216100897538174750803691964304893480968561693125119772702007548625770541552327720066565679771349671187915378601074927965597606882392647928924965150182674660541066827900174403369380612294416134706477614039662301531059898508952516696667497671404452220754700767134475414532460176835861842046900493041189604131628742655796512684226055006924761049882320479775964169883903447718435151774926617252355149680312885944335053224526218898590761041716287296589493915934248398887186408064425549771375501916919741435883957835760524590381604982472801043243062132771592004060946847124786694515758266106313486675558437366259185161101188585165966935898020151029184689885777128079653737516704454700294271042973060769435072988183139592206933212099526849029119370786494944881833981000384392715450528854629012371662400461032733959960823363087720929475322708523715594975394514037103073510656323172966724396281025968557680652210674561373050261590997128955732116572670569560554192890372536200349464156385595859031125152992716177997605641676029112385454854849742701424978576253045313949864393671827598976026995626552267782464306885086899353476350671533749401674505225587337069302897186164874976109104538944923254970118469410540033064721992982634795580524629590119021675374232851687727337399862219844251778622865557860236950533782918540675049950879616814652605309368153248916205124857076070188305155829692099843477826877972457090717874898298669852737034051596808499297298794477502013602785754462883280416155960334384077602822121917636032284832084357504406651784848374868539391453534845616702748245902996414770336444051882503154086347698446728404993942451880368970280343466179051524949064093153419978857788128242934512896469296870514447965836253784279096071149885752140843239312559312055022931920905337690170104899031867111147056963484970579867796899295678617306272735563115768731058492102977861617770993622848582853488080067264958153914825359360125146872340658047530323218074346714637216909767801287234227927142512665410977914053951334169083461729765028558724120023182143313849814372502757913603867471275358292237174503546640616445464120939625705129305533677557499823070937349372357515737023299685508856976617716419063459612486797540051021868873831571109426035346900439183217299753178731780107341952917499624682681301582724231438424343163877168495314451984458142723961123044224648567218851071322763493420303762230802312872822450790437937065292322578113356713280246587574015464164157709525546051286242077702624810121712519370991270537873540629922196148956347489296562621701681322467593447119352983978951113856185050353657684653722343698261000072942629602294272635570434601308052039895845879272182454615139371170996610543100244503499784934195065918389169129765029633728689291247763949682997032339715494283944119784691645058989082019891890423382424628383866687853179090889971851193155365135337695712746203481827271824192013711191161441419755891916191571156204417669419607482529069835754032487390542366298100110083171413889190636916496716773046105888649319525167008253744883393459119672511297841120514187650197111833672962164571845477155301036722995438273435045185334863794532342847512141855615758776606864677776565584422328174657550334590458396283315539014368663487879691477216730287537537489989102655648402544895755588948588370054489487204934729524973479447744708648107594067633389804646905491599874316972686631458635240395857724775444454476604126370055255038252308476799785105078251268150233590264227270039601528154560975788930158286078830868071853102175544311263004721886567925841228360145701477431926631083961061450182225288415420940069072936323072532828237215705727839025756819940854427588896092248429662771839961393323997485552328068301738243200432453256958359115591301129323195663802539827161372290448695540787268184497724596191336441341065652802494675510089012667388663060553917027515770493469825519673928338260212028454778690112204331553779618617666284470439155598225283257011030535068412172566348257982403349676628373674596652863335833579749508044196689131297170711525029700890468240629421304324224685951429770217624099453855752626964142444747469307199344116474217847613969430217335482221947293549112617154693418542034006778815868170884741264888128934203524139453046692205029278963747475698880666159931263716199631558743625278701998273328136127255950398459491242448720898409598828453804748940150554808472418408496763686482209686459224631669373404084266276616554206655558383948173558552001892395713607485481149099858826033022839430424651108148740095496670387345546375952242797314636249901413163156441552153882661765984825645826787719297863506361477145236330403739478899995667182210331164274222451848579230472155862114684072578227195068612521267545070548266570945442295239317937571857026683520214342862776314542187169593070507679751988124638331394392253218394677592234579326501773768525208955611467996206338485896623895431315784572954774893199174336065927873288446864628320540685443716439927699218035387330038597779816164092494921968607239299839549467594134483840030790341657273982563871711046160600650843441036397780736996513940985779942693278813515922099886508953229708847940184743572825742838663340017214751095164416185269056579653720366503724826760508240827520825219110503889302683696354084220578394508213523816952063841629394061856212176313637535985926288265860949127112048986157309440526699831481387796998635388754710490224390601302770641926684303932728430606227128709012557274151133512506257168515250229846761179954308278434909589384550791393050507692856516359458691439800081137430001816177141946214662698429549369199231968967359659632560406741125354784412684216866212156339325664849038073115956943225384393367608088360809860628505072547391753593152998472344533929891128400369195719339650471894467420720635843211879552885629365442909136197509302634877270473387271736609665396174520353131735531169581115797268590018988083093542094004209354154377962149818790859087179426971907019375448698348896357181690271060745646438567845755242034913724092049202133676750387464218125092866540909793680628128822364474496160540938122984094120922588765683512299546008963467020442470955998381149181199298966262770828702284259001907697469994902434263093334125761838308318423794897127579624577354897757583631239133577684539354382898022672351232379935963525829062387426714527908481401997039203730316574601186878501519853153662722481384012301045184169046313549354935699083472566638832756437313683282543066485188312177429339794034051735432931629516002937135550966587206717184036798345741390561092532097316791197692117054113993903229232314508256265535034646021730168155078524138268348603593487715928260301633538166111062216764186784049497602810194512533820872746519978040365975385864932757506394645759526838288084120058100830552865040156530063451028936238474347921279706719500854566522049623009437016437787175078590475323487737375217918400493620151230091085380385257477977432787776548450016825998701323684460966496769748713746597228451135640408183280494699984546596973011678166978767083849023537306689943361990509355874384518737814361211921557267396541890565923800039100611747966623704278564213343417210669003501830425920845219264575162641924155022440999285354671115702959008370712691254548382293450808129627935956663239784319786690077597208898650786937204990079626960339244927529293422208986037695564403036022030105573408496233560637831908090258165035824252467838393662646136742839417754809686559025216914374922410023213292630475311702966207236184984039419478821646654124286605172654558736520780969397351755666673689452984933610826778245122033551606394129876706425137065748465595096750419406041151450174500742990437822661083218259318079976632429070729041469009345229613799813332212341678183080786402842799791884472740787693617075042026889821181562625826137050488723611742185843510308451808722595958545124418880632518955451095858319800719154812680459237693957593624761568399420222952921939517815969572569503589147307215900952582453043923229093541233076869212981608616011809867274911921649069479161679101149755640831338225275047595147776911203944433193734355787905358893933923010754732982830052609146474882652040428227938840326239632401673826741763143077525539532463030681492986677220311826725543529414626711359229691094610917811498366011120596999351868286148758328603592435774074612632509194256446135967245438300620348596872601710723569257247506721148182558848001872609521482118726903602799374746406068841214092607919684974272138528342250623934929268988065189788215595786624923504764143005393191221086775819154099306101030234296249366673540188314640459577171256696336727539127073019662823236390396417484671372969009583352646216280526341507076850397919593250880842930785054012788145814714789792219747918492480023578743002042152822926859965036380709109879982177831519162854453110649795559795000402893064461346069861086612292108926153234283060875030174221766410238208454550586356599019920500889169363837748502848180411530859111365976087847459403102950861298952294244204172153938477100678121209036789806444185049640997866578110825124054241143761842880852094370659708629261874660465100890317647890693916183278471715779294244014728408054238227744639183605403738876854631321608217800093611089410420397171183375022101094797442003457510939207616128166447756813754051284434366874855258223645249973301732467690482816420166203099743055242680132460901433228545671508077868462602331643557228956254736297218544405934989614251332549131019869650245034803741594815392247091747025442248769790831818578116884039566670424895588937145090623715932742949305617366631475343683057313217245525640147808545338376581401387938739713808418876042710516628615073456360005634368698907192962648012402160609137325728195866982329261186651539910121871201614488193264028092057849485513782564410977733662907451684449758875703593377992598676996781239462464631302323018996005931984117384575560949410288496913203051631372316678678379501479289811946469565242300609829807383523797852170774655156464625457452924304280961457466349570494215996332190216676333789853073780582803874568393902632178170990788500194620327568648677700169745086894285802551664323906842849118815566054900380367526577361459281092959284476756851700013087442546472206740563024450085172293187661013014422447758282398153012525330612400699939385370329657039759371525183939110169135561237818000942383970157808082542851326929149992451199969694358612336344016110133233288308957428551986278496365852173420424658915403599001718734811139954594744758292416494295711453978090842504515325923731443592577736482381214288755391180747364796241544454688563181874546401984194146466921470167914552955613164737790915930181869424144924536596540459513185407540292626113759756062013655044638196135950716165328532249598811441264998530397294273557669276916536202857849384501583806044778043308952880495166146994375316135510911035946281632066162304501199004029733670799503916975105182748254516379226496416009252688502808908597087516720972338282321145376602982915633363070756236851662712575943669112948328722089884902908605867358865100249945755947033434815624232583754822520139722335825338163445801053380020664114419342034151688631287907549849557414106819097878003390797447752739436547567768385368033731848640399900442938074436842688715849941293414147950938107460346765912928428056855602555323878637574955380352340914138529702830969272839974063705376943680792914546561299594476164540745084500988786502624570836970676966165335938199811579596201387894543431595595497580797082347168782047159122640113431461398018369655586925655551027793859849161875515501079521403619775319492026125705843394540361829281713981296596926765634424988428655998775249028612010192326098140991615042146523456526129598581302531600993047493704253428088097085611339989710628725464700794157959132806001817270922592391970167050821276450627698396981744235311044957812895955134457492377161520251088427332942691544560610058391784001548883026112877061386040068134230646164485776577858103665791757833417348575785625086760553696431935699373634727183133462689399018784531431903327148398834823140719599771483761573154145064413177403557647833496013133653059160521945132430541555485121470478436750061509844870656584347815782174008018718320441758674333775998605636297298137410246794623104545699153326874397218384652214989641789497978858424054520432124116742258891634170150371506448040027595260937579335216187339167027767964923682682465102467666558622079966498707406978179106023941631831900773265986727617965557585334055848507348036948993198944863133630938147993274674473636019191467831200386263778138781003880905729786578052616711057549024758302938266403658435358260732512012853095539858960547963833501398170059141515166777250903391618782904157325502875869173938425440798618321420225073068120730696891029813482707573079360297238278255155711476717960291621170880995619136518447810943796437501848328338268556561597363754297043646585766623323689879865314100919476164484701734382714995323693218652252880455455130900279413086127933071239312760892774467880499345014163398681330727737489719539007852439547094626904432082032565091093212097588199012696898869039273304960535240361608728082838420855289317856163614093925809695380483944365041904489722184796443003194458816594164053377945063429296213559846576570063953865804885882204067295243966786888000836491256113780328183046651483765545044075206297694234758632783130052670035725264288328543273539760835523733452780613183882685186915201782552761343646537896116927483349458201232730617595544720483407933792937472277576684273886927678546386086730789909365588413961445500100854842613270213366026556153091743840718627893687814958330974077505974754473922105517578468574874721601962598172702636039216292938147167052740362780907935928239175912930226642885123846046506401235768911542930635453344882486631748838901542542656361726245032061165141873748154352624682213201051092338622074599613170261188674545030540026128535958221128720150473349588786882187171787123820238175711047837535801081822979680592894184200669255949376886806873719877594744281241616201702993924267682241206302665363994007603904521389268125181401878886487030023357263826491305963343780883500542887110692230469896352011202053306662202055674284768178209000266805465485186294558808021986036609888061968378039608575125775777614307430046164761965071584114410780033283798449559934125893808649639773705703243316262728109384489656350435477697083823106170204407579834274433285075112695630468845249511834647700135063112952176044714021311170026677839878114091345183495666380521159748356722914692642283158249572880297456732907617444828132887538305762565960715049753313395447134809108047709373532994361224330144637598568048723447441656712259387725528640358233108782119549840084555954510770717304827782329197276061871587854531733821452854232476629316789196279947081751780479946061692700912731306221037677878799615807389040442918533595569947246307861384490762351342644930744690741832123551926082431176768095381590832871192218885752260421195588336055957590768395643560295657699025198820155208049624867620461327224755187419893350156119438299866152188208753990096556299266671505185539747133191830927959218747232821508373411513514064182696700958265242954999118717809336439386354596628790851942585758159689323202372400166555441965005266010127045752479869196552560083264984953760782764733945275502000492100289048627373165014723152496917959085584888315782106511400599615823784819110498165403909078447401630584637105986119184772711796537916487730565743674435322169089721547847275205453156415542760522593797963460813618113896516990866421598434398625072177303343621595397666035617978894398094232015683194433991102747211896102374185920306468906666566794344896382258953229492295222229044279081162829556322538234277229774240526781583202261294855234555778658924755254972148025830856886899436013390280079765951781613512989421400072338792229396173266965363048286310335852387605893714762331460172367683330842860923563602227547661638712514299266817951332491796569889292274679246696511372601967120752985646096609750342939364283522335738649883945506658002471981495364519810784576072063175556586490860714265515391482035198529483008849159540252423281674884158525687291787173034330869714433410352400654882277415034489118412292734448514094551432986791272851782661419317616763145289978242712212178731461912119347682846702769796575147956613071381314500717510772340943027858263452388129950425459288111372891719458360901897523352795139207542709661433766502625569697408990367815775871573138116943048895180932032978609173633503663428252428512268022037366439540172406360766048728876198203996773350115547820156573393048110803536057907591339671150511499503280998450793825884942869331590949409564632344680479097000777028304861963597124798625919108227657046234898739585654431254284531665119827622815234603832401491835077621032156316088342934657812273661978349268419472229446728283279429949026308585666274179114652960619060598155552141277037988968273569765538850366215611222821088384446314527077296741640163434552374791406426630787379570027691243833236837081036923063942290517907327330010357408143259015579493444971197559723619967002604336101348580817510252024393627543958973454842623584970496193171324054671459038534494964994697591406368910748211874946027837946290143330835190503751963319035270739331944139245612593921310482240586556560223195818982310703847062133639061016360147716308027477864916297191569552818120207139502804375665708388284013405263235110015947533097806679618685031889528189027946853068223243197683529094258578318272557001731521779577142877545272358644970494126981491882224468267665821892560565249249296304961909785282425165635326420125145147424076297229076877072897124193310695541493465801849217209107855378187138798461733504064457804946772693759573132852617352013559353165634324528827799260819896350365007538185456494991729267260097198562471406908044010572097652437614466696722100844635185013947240404066235217920422190652009667975216071972678332814804990516365630402167806578595055295622136814919354739759489692756342576129624369904593994840237499265526643119038172961019963341208451518737542600205378921925911272529745110318823472669573350510111733303108602884820471965849861939169828821428249985577636806786179068569617268093779467872014445056683935735340064294081032918529192619674799968961779446000273310370435767091734816323630006545486131941796404079699467014833568621735092875050712889667642994748652594063961050518375666754138084101989177019212740721666719523431257897573882140363408309239263833634766044426745781685326443024858222412975415515275979072940002216997146657095424744842559808557126808851631784165626379483543658063456565862056731450885318366740131692728332911859493359041560705435446238253875697062503221007400522226272106183451359007698591672135269178115624423169013844438297942089359692317486563506619345278014925418776812528878457836532722035352949863813186129065172903883195294774150226182707097092538102095754650833515374801937489676935250865247972409193586023169361814190556716586742260520789515801437034137040219537444349710795333174720839413288315820578250015096540166099149236637602253501103539726703127627134395448251117011477954274540020435868704799173303014072363348888101849362832841142675387433494828265702457633445042719013026555746552277494598344010273534456991921187146574850984964918249006245302032053318098020177770256335349601189489306346667619423644461569398400656624606302598703144986550827436139820854692160084064965161786275139386861458861728823174882460582669775449700240040937283958792990400133307612548900847752705019108329584675623857654388621189580087562763997386640678861634539351262383028284180843494212385296374242375696455100849908669581497562269697371924779665081922138511395703596156032312647717933470415583101387352587346740640446620641872961702942289722450717439717261948055341947639121418947294929272862423615359959253953328257531220647798026993759477313207154486680675350655645000952469111855206875623484431328561383564107025004915096518577888137841139993872769979119449077864106367673022091311496424729485972708517836943464141746905205224268009192705203170175305476475771209336810490414547869002815296257510238735213529804910219638608468686455411426367764783984064609166266437442848911691589024030011713946873704683186824234941202829808990863161422678248130536375397361648455471108803890173069795589452580816450162836567242879943502405878192597574407254613358672627779552507607068354392949332157483903929366699981437240280488315103873441555467855363414561163338053604365529026187807659315108126855166633471552561617279962940618893891569722289446771920496756891791418412678102847787162880288456891336103383195051460096120159453284012478496524578396096784517594862576694282267513632603165768909628505268478803249148742495798629351454981925286921767053127586044784454802833577497555358587194880869604653278779093715259579991957936855470254025265354694975365805333890424773661546405144313244145107418148033170700240645907560012952156787627653629543794953987136556329940031578321416823080429902116832805597423547238715040285454844251087278433846596084609648250407108490701999957072423770636112990818539610151283692006593498626294703821126225667853031029135624950563591465818921039274602776478867258584916761770733677482124381234524292033920407670785350155483834109227227396864095658703103901195040264213423568401025246309193439449537518737262240808034586529706339888395782646681813996246472908754334956345526603222706155353143123246840678562941234005402608512850367562143035663116774411217876737241838344842995065506443239992891677208277348149126660227925911684879654928677711354828367475958287028162126022000845839883844137279357793030169356893008761482460503596776830610823207266259370125225098188138378101737309418444798662282006514280461015796304234471432722979621887642221462193532555896924644526590611789871266703002138518948972125895003349832191098951852614635183229354992838886327080983385989963392079364229214125153219160250884320476831542513717501994828998839683342499859304790876110240013300455690564445493865767012563625205980957960069962050365230546784071182039103786618975582827266463229879228793904762921061743216290836088140292647875907861020773412562482309110837490812383460116640986012863130023190979603052058901728728168315784002803259442493304553347206787046568350848673703505105753653525700654727919931741211842374702377264175847151707386950000413015374180898810308784375822236714563693745517901547198465865043401453848686126710809287774282732733059090387083149248751666220061332926485077897496866694921612837914068722707382572751971064032356671847407244245900060413069033469018546205149055005327863683018694184374050765449350745377442565078857091066018608075705640400110634481762297867818865434261558357749621363207869929683187445958048224631903736786636279767623792354130141059379864377012499772067277777602923558145485409050466918515683365399531183615500695479239902039614144905323881108850363123564298966510064643801429016767970612161477655187413507702310369634630679793620534229129113598787106965215497360332472787889050778673715701077859932959987558567983463174920499560711569873078638108819371531378331816620461284280287432509144053135497998917194128351664994099661080454009979789383593886516136867229202884576224682238064482691150639819749314393955208303332778613362539730205867900354512408108838696078952250320844433470667148284320834955211989024842434189470500508710734793089740368870448488872100485018118858304999496841103505410903191884583014889452736499396058632669288091610270259813542628875095862166950251096502000213069682163586684521203580534152693220211996385965711908463019016855036179911369767910462702175555163500618341921214518224997732071613209965536078110575102366146549856076387829909749395115898235600974180651649349226295156931124820317935174297887209400388989450649913339931418782707486829414468668441621296434276930649290344123731750121612636730520497523872973604717360052690981803066063287374365632290051727675303330178523047648612457597276573837860090287985849313311939108662346116787093579152786346301727777793489329165581224624349751515041733244242726147951071713584455937261406059217062518323300378463717995011429716339107479982719096696329996770559635839281381757416998769355449248386137490438414677492538430988122309456618051520285737419461119089389779054812320033251851954478473299653493178206039118318888153834862673453443161821170995059197416722321857552499886724859731009731869552991723032939869881298159912189730468485369440681378688022106791612336238249101214992507693719697166531639627529521471199605151213235693468078043342823500137761904876068762031262820807166393567303829677798763705748614041123059422200350618150416443567916029968382065117967413972489333766335753996413366040848436228951688532414331747485139381097825698938518645209322612147455435168185150528674822061172475389487690458582616374068253174472453215359009722253617275461882065271308074362039903228272197071967807690902637313106877030473121199711966567588261929118614477509183275487768612500100638681440032576644054588711191972227614895873932185835643123718758003439768158971558698966860206621647383640684271478455154340001960922108145969602567519418057223889242100008587213078208238985346356936301656927341817908816955550959183508749714723449662456606017948307224276778451683496564591643715427145497273482815234547782696074713788418516506592061597174702161959401284738490577147513605288864402373279029179056727715903816355672051009141072048757310616841203295201059854120481189946785174491799826385783802472857204652153542498587886377192875183864868415554873953781515829568278395147483856187233002312985467744343059137364367643351292533931249289015809758656707690509563975212423812934048712317093486757986456605394114982865816439176626468567705288337435233990461874684840657218161011115165291131869627434427049046238081764116314175969298896109505141475633264754904928194246748395621958762800125485604261702194867556522805538606307132593433552527984666069881393924753509043838179448779305740048760090912319553864527413079549242855696058889497916893036614480312721897847353811920131732083214438077279334621662152387066708711849936149380126129199967336704155042691175860530227566318505763609850984804707447814887952959856179199102313966972932530203925667568216978247998017227506650730095758919843551391443806337133113355920454939809822986358554277566819969025738471024646290346333214575732754593364646742881419209572277522004927705659003854281608235576824179304920657864011569362893405075264290124105150474674222888413570998192754993893876337425582237507092018977618956813764411256067475217615054817568266903673487193101463123552178547672679872473004989124397049023947753508773347614389477590630689034163773028894389665630625075257498841924584488903646630768604157892833968771172573606840189367994803806753552330184097339812384267233518068989407595064622291067142813471682285442536865206812380101990367062797029537925061530819444074623319867208033677516519992821405188638383539142507304473784350401493069149588398266159680485236137233962985256068319110583401084097330819763475627427824581872773609304440029011735128948956299180311335207400885695725610306093591551448512811261256482590981708403641279508028696312639677624882313924205677579331102630376860839056056507464454488549238957147762659127601395349717168333351011277953764344607221663441581099787798642010087627741083677574580363840655081419599031986962564143838076571667250476364218730876087676246037093589490387531158691552875917729897594707671654104895478580078338815083908653409733438860404522687292261841502307261823664481431039325338360679683798828711491427187138323619705713948216350238001706964401359204541853963729150729045019599732267824707794340928350616381506580415289759075063523883395277880938030267938972116771327171368959709160420181766351924908986777618860566188574618623253586392846690529272086735469508531602909982663081642472933686756002643593961748075836709891367516155460320387937610498158276637991477984405786045841440752857624659370998404359379744542792650757268504712440128595106509302996026528306325144917515157372776533391456082837964816432846161902797171795375584040055060781643182546450102407409432772179535910890424636159070984043859439054628489739629212819336930274542094086992432268302511565783609065500047082743863579207889278987486685172408545845607897435058745043010654443594691342103002780013367497650512236031218306774391502493101595767132566504440989492737046818183407810217941484876651761886779013283173650068663360310036645649223808000076507863467771724875926478732424123187852968923489815432201805504047824854002096610508456504608147115555511266325480924607252273796011990242795755983047472880134811703869427256552215960083386149516155776654763797396120435403812982800750200149022235563493379811405255533647610908639633921827593309608398363016418897868487961268687642088316871242014308684106643679734357255389172181065320243588007335969648456240903655169852343284300720163662888056757814538673212504013034890450420631598883527455159446418026772480040219945295820535559060050528788277818088852679111776046522919500811856753525914370577683545789664013943392732652655032606218488748657850283472858606665947042367159581830395473316481590044185266019517424324669689049565995950576078221582101885638659505365731623287108711197115376877155978749594095895361198305951411341240852397564543022523266601231460187772967318841744920609274376898102995409226541067820171342576783943132708771592015836153343141864991484303523823639174921420897579405834566930424864903308298248240395777381991019116326586149618923674841058582942351186164760812095399943978966068073905216215345940779499640759755951108367609937527621576897327153833360624704967068230412198393236138530428183819174220775050542400422933762498831932352876100406302216672567742664237529829992582510327801963865380639386886747628387818741326478880981712589301985545694006794214157712885731962535833251488992353419235259712403583784122928487600408987202885614802479030600123628901364546917670400976426990551984556936544962890765838768457433896179452635353894945547062923978444296829294958424636889046886700544107127750320362127974827911475990234006814669865095790970667966822269478732293097696454054451870828273524013581536183857257223052424740723718547155175656880399326954615745381063380325919009677599928211131882901931751936735503457343464434022233254469845571426335437180489225442518012255813580603383622692477611807411505780772853897947165667201471846634524864836014068046431950068691072426956015351339178778849297771977704347067675717280008320709296551805798939263564419892046467396042079573996905489030749055181996147407371184920197910743020698158593041004961657121031609793968188552433313673932201291840724826809424839099884113144024843637505607303484515043577694745153716936246689871658762742243424387810987650765979345043878682615912116069927685107181970342151236330544646119122930788779651684032999983971024533583495979448193801297714662563332725011735093248012138446507979345476407773917543894083925492370754283558013262005213236496572906922319852582027584044394708664829912147521469915990603955192515384658656685747582186430626035203116698299789826783919911732847468169050931605650667923354885645363529619485273758928065401754152694904114243350928387862033524149206211093871679911648711211577599083031142788542172898504288789678098944322310253311740710230320434089457653073794747960163348455409721009550273247474607145971060626905532167021133896971014323394559679450620518158038350107507785366891431136539546457666854838098961883995557884905630790997707041716731475127983335958537956580292945452670451701664226698600650947766703974211335614988250322304676511086467860270868662977430631973347260791736813978767858644879405144758998224522774171173878997596171447265292703260938828910936797582452954241981496095885576914325944552030856574232808129615465150457284180710669206260153284985905093760643035850226471915784577719662493759684385395319709310551214189412585583213398201058083935058000978765309721470659902455093378998750149058581897810073658588726142842730635948883084972689919211705880449691233245871214285518884493855936758346392110657960529113742276931115120912048494646303782118714659075051802114292077073260215647812841529523497886939136671466595610640124885966698544268207557378956331993225325527940940076553601683565375780068238266492191800839611266766533793330040866172410317226483301457626411905450865137571884229182731007322415037294024694582380660652161839518945818067245695295368651987973431951821152748965323010109945725640574439786053390326983362282068128252255498771758004337360306379198754473267918834228384183359210909027580359785688270963845562683015041036651348008104514187292917477666956038050698619116672506813055798707604476045748680482435817690240433109255462998876064966478808500329044399897255847166513270806697318563203656782018004091399468095257951322155624410917297136681603618871266680030240880709804584720018280327896044246190506713494542855439942560647182064669847107317404119187156332149553950756544363765494829353282283708320852198512731128247794954258135195547676069367596785016345803522177070427255241881219294519113032886282471462000838809178432184859336757289664565089999618208705811955437175926666940219246550193939846596095577917644026791726373444357967568280288126429953166996407067606016240217506120173605139603973684470175430811403037575534555319702554459522128054400888380560337986054948791707999900440699933045613747840194958678267923858140844304813377714209364261808859730134117549130312373429801912480480614296883250942125812893338941939344955372888359373751967431363826782652097058723444247596025936163250144622996748070026644032163321794203871625491108412484706588009718773060983415647639532753945597620503265265671955275665138048565394189132339903622001682395163569448154918430039832028963160754387970820278722738912280607948023743087434030809738675574773105673282250158432765003208500803260423022631208844441148657486493470352838315795433714324949920765894472543262356003526304121128781382769496807426538223477321637558067783582384720156834575260977942983886535400584007748015024634189247187596583814608357350680534505177046068400185855359510486972011903211103325445340104490143381516141791271819466718105018192664874440039765787407778650467434053722326508341062688438480442989192710191650922925325911521543567240718569618647117752283384734916231113830789599124845522066561674383819946219333380160450599212473886544285220015240587162155589681819838804221801614015102403602307605580038787158118862720554954353514416461308125725982426336666728640504801756013718556019735015797328984523874485755062163348200321160039102776730782885210666761408377971968513812730919901115078235111924647407783408062189171949001486136782304119787369480892738366345350811176187241083244372429593320573879422819202880400678004091676878635159470520073451918092445095339606841102880402142523777033146312173422586785747971303283334585800955154114229468401484303411034666488062399476810041533780698877277040712803589359909178415045222201103913571711093909035707264162296086048913337069308352866989618409989647617440685731250646725805564689471901828204108271901151259740554004717762465181506575205925850414659596168035788788447477187610460989049139319431528847732528754941698360330463132523111680246670873462360201644227150081437776829203073940798492647971564574739050049542350235126065115069763011283531469070382088002197269490635559588642329064438852700701136985548346549360357780362250563732617512653242351980534439724094082660641093450606380595057911840320123402641692186377924006917587745714673881352199888719232640411990051292154326602662575505975864714918394786589866446349409356492600303949247094859837056049400854060693177601734503044942034839867948565891030711752162482659481912007876023364195526975918470517797580132438869704604544723367858339050898245047811462975235288907228390865630930951765072168108402384555913672595799693526008584484631456733757923585172913570962176979141484504788151292329912418227538086744498709007586589522940071649610895067040147113847715973309089935796984552679557500112256388877465129906844682793991573315311084787054848226394161038047954226365976987023169882034965371860044026865960070249734161563817699397095810773037756862887727329943601150775566934090402537109935342484136064553736610200347354280795830112516440608512063808911514442254723309761926255330310712384075900687035381208713349578800844510313082513414154595714553062067477518622164875350568054396671598766514268282934599863614888457232801579647250764520012771479296479021268481477138812957152617684245933584705036422004463556475829638462595889742878829573238751191189489038656813955932890809250535936950783698693201901347297946644839788768856521179395681478848035932016699344698367336711423053307905905889607379012372371918985442690614152946109373713504891918620036723820100200189387534863792471325944902472759895289509675877329647762082286453505234626895073437231598633295503991127820909688209619907473350059474496223722479904573715962981718858456135832954917071097890817158701998681351476234638023772009462620049897782697565162420369426711875331256110492586372743762875603554545985996879449181754565496623630748949689942808245614579570926038455632849412558830762427132377777874157873949526640169164921125351313306257705724149649517777947424032540963743783822054894088019031786131666329641893789261307255782836678223664829429416038297508906336832512062434057608295674331399563209141328870275016625775521710991774893969358196332557094473189872839619552561900319372508521562189368597195405672333989319716778287502780562949737341909729962671690235753713124343355239957140767107538772396106641047159939785333715468067879734142872281421995337776588035091905899771361001456484061393460867593310858403550410537359090102429899886176382866157447213610068796876016439175383698579999078705972587605637159415254462302672763856319674017127721208888806509158978174979327472816016768015865529380635129325770996653536214090555421990229257726351664828989917328107591397166634847621810090511646998095811801422526709844841300359027462825983281960454125082685233353305687666323687001864770713098259087781222159076205254554428432466454284924834689424665710947817392994337652749496343995682083330311507951889081182184614378005782946234309593990848991917844513556613230907548056037793131210517549137048473914880125395789619149892969542174822884174871378764831511744163168324829854534034033577928897789382312450105044503438294640397603485402257736217480520343262635855043017983937416281871119385162585778381664118016214378426061383904344631803859911008237245915891339016123104809972336184934104010301273941708387949325737627240950407695359573849171262675549767591953951318371579616427133702157340758279967033989226456877401957888166355300162142077426466676210882853501719117938662845998893036981713753051887549641115425216275978877332218486478826590503983744272063068591902104960277919234204916249818733855596767453228202907758888006979936850752596502830794724546329688479511399526935538632078066003705381889851744704596116404445687300425911271810280268984928251822672713953347948066013038015447691104062188334962458439251856719274350638829552496754446891241955677322025070192897459489290069311348204881465067657761424643086442437066548924636482609068953649287415158180781488027148254774227595207830921961890273070146720303187950427224465239355244847011332397425709273858810376469164540277885516782823447067612306529079069746464049334823081795957935539850877929543161565348931030430203964236211765668031908719093318392891624276950767186441810989227640001106937234423384455539711346274079988251313402253189182514569327920046204014527657494893021818991312091385414121876856851387511961527939752542724190777748693700853310202111859394156873148749797989140229218379247493453524851116978972977197573033483957983688791923443438283742124451046993991063829715461637634751373515462799812314129639786500048754976492963317671190124817716860237181987767657761891125869051755696326512686340315843335348731692030200629885435920516714127634921501256912403346508709433911472029029120484705589169005945526234343606200354734616707307562291935451030103375589867675758308196989475020071507755633126856026981704512236878489757779939377711646313901363908527308801224508702473640280961392158211816057543166669287112713130613455866416248284658105876317800883805741182648213290139412311348798092067913313465325433724254884358680122398324251315028108180467318240620436570839773717201986221426130052561357020050315206588648121461728816590295363396060257189329730943922300137467839605983862293623899955452612026430091929651771620928476957923865505334392189331525474232718231130859965778357902495145209383944928787149018023918531341145519251366416978481523304908021425504646531520213373203520474930969672716641499173331227346786329051631984137253321513695219728714599521838559634865327904962488151887873643180643530120668550022001223541544340005979412341064611200156342326583476051622130162321505989181553705529600817743500980366057674423692772457386958169749866906803944636487207570726970651723537600806291352144258646139482424252222603598014624362011435733074914779523928818776312788122651437551239551374127416006367365811444400875068138078518844397454818548231103863152578255817511027165618055006669977543352323544899435454016360268295133706135905308827314129944757440599094733937287283074054092012702614697568837532765588482842122478249965359553182776800143337603932107778585744564120309369426868009311008796162052185943087264667268343888087506109160166515912397889460489506238294740597112021680469550188648086311485712539384736651892054527952670807984825079899833803982605086996023076494800182001014784263824958911386117313019413727057620744113198771350406363498353289226070636405238491001138644277421300542156368261545338269494723463900103641880718549837064644960866021183991740043547724515177313850169719600567425807865730190073116157194159064234901282470735810411785266339308924172166392267156225232621703304133926273019324876300022161519864293292475480085000485421204448249675731449498281096493953369521072284394016665113753205402394432267013432241151138839951763546042640136078712815536411429453654798668690663610580422687790424287420025608543886404189755155986862395928031553968242376609678130177929906698974153114599405025203671297856600208934611655952883322816276082746273434364555042541900222044887717801927193351975815632467512942100420291197896409897988907827289915942594996524472472640322075224532999415616546055779192502136315370008892808763227877877277617796227815674933106790890860717790284310193181832591246299129343506176843305458462358824285455200001393596051474558933614408917394630135800221760223274657289181864369004636795917730656759429647064052885615473415516531341360180636496229881435872569931577832433432034299714240062947863876855237765004163605338418215822842452401020698500165286783205344028358921578434252201510143304748717205335482486220043255783808473298544737034427376272397647905527958164783393514468012245335164007234453044261955995396127665535274917668958995861532042069452068459117057797895681822928600495758196777416378759190364840915465453069277578243666508731841992651747514021987133586204053821039832081251663269536249768380483613547074149968202227557887047441267767515358861518354729018977195399982460642380708199030185777263657436878415378603018192131922553020651405087953144537686021836926624509081205048014328987888851001568240505406700293434842252202019710299473937515125085648279373367346263663676581964345512122216895452498706167761568603246551673562047677839730541241411741123963091323381967101339417238328111274468983615454771055561694346993711407287640644238916700952150194214554937568357853505300800711139095985024144230935706794694039521803526454408168633929439409234108360366708390645179591207628723647470537073689814858140824862176459539214900016633162420869090362183629422008029895099468549761494897190004347978275194170405649779663911397123535706747662799610564047656383079522673459851151770479124551440666816015937606505436187909427630719036079019851727399038024118361162426530381317043769823387696126944338254750435073046328672905981175164696910576695698967068063108265965725837296847461016727202458599030143355614155315421039030097031290382511404796914163049491537242832461162044505132730263406019623241320634989208839187840812126927719245741167927584841643354312863078004285956094198216851392462782846596537561657200243786159276431180358850113320862502078186526651069207265171489736601793430781836558209067470270870981978983046190326970913404665594011013150513064023763924570458224821838150567664953281389189200243395969148557665089227005317814808210989076172582775110003046748587904674937506450455138501938002098791997857114993871803440091136068504530050679789262616602885839806072418796933353296600364880982925852640585484563437588539027092061491439820047676534691218456669397939933104979179943689262530421770968686423518049568466075312613930784941759504239818709545451670445662323472108727134781282075685083466126108593262083830545080813552445043757914292251104633665410360875877070257384102134719313488470410574709887167246416046953248317743313868665313311041259221556469692639605291784130731625863948356684469352742593153217779143114789299109458209729569334960674682098060345842409329504094448348499753836537340065082475561768040338513380141826277183020673900089321732488563217927038012591170573272620996231260963740538333464493531031368629383609189924779154225180380638348750571490674556414948571155592592075908912165092676379281332013679340439923161400605515068007226252606246531383625509568589612114145690401140743196965713540996809659147176296010405882452592287738613388288048126090278647959613714916376197956110979479873148560841641065750415318672722614252201912021384484030657005112229265728629684671957561503987164174292330271609986183279359002968797096956017233254224168865422699252539241239347609689342569090337232437384111377513927127797936734789260391307197012637209535983445369721144649906978193397674682499621939323552714431291578927778943773425466726832561835291039762045884290229932313047485001620699666372133076856354982476433027397767808148915136791604535978414962771833427122484013535651957057131748464141913437971404657266319981308452610759263374436747372539781118243669417289657154908470862467436277048695168511872331795167845158605371485193598233680481756608683497628052098146287003768065948830664377530626363360988192454681443302940974784842533093359632288806356005323884101419675941532334325002780198490877353855127168842303537268587430465232618577754509889001928630854302332484493459530652516717375723112590519561791916079773347035411421857027667910596216692669442622544863997590726604138495215881040824671662445812738045583797222981247207405533055891880269373862254371414545073723881924833007573390393073146981680643385358287770463850402731522768511094162770390460834012960773794649662144203705670175993284189987933937273879982334619907318049796998369027185971581695682088683433866477636525007046060309335963825037001419992403339934703038007307335917371720162552090593455040781159047473180861789389048638163360841938265009485592238352070057054269846161509576866471891957201033964490459072412051927909967921177612182940732339747634165091173861346495009796059365357570149975736231654299970154808868633270941358835095960613211064945765457916162094975548416345188555281651809522903867344042103460970599504374567100425146357736632963269895375143731288829417873300589214499539079895241412953462802371455425916874564058793801202538702702493599295281314811925474043219237690406975849725425480608895992704614876996519768038668746720494384688613253471437863844060897272425192834305268367161104945141938206267847152035513363421504991325856449796670001364739992627151052567537674938729034666856359458206289546523767096067167758836243123899821249007560016979415379395678563981511263774847684596342815599375508413737669422465248273419002735889397080858332250447853306628035693587297842733411833077429096768615525667220595855659505901208505242381808064010146349391953161232197518177569737829087323216380102721928862028968587782729663325988169139602068588389762593679702910548784538065451737269337598039758563936379505783439138087300178947444357222318628156509632761082818843956040685342943536672782747495606131639289503291130795808914516224997602357042344126156497177384103723199656360103691991811825464380389627869934328969576051152201878882767878323090269405181104832310677032269770604859239932921390719991115475622388459408463975816265948121269672207119895421110144382992541882800915926341102329398536353594591486777020972873468858781324970134880025726610033356717562022668729367202049470705763338615191983520851405397974523455073301156508705179774018470087390722210761276011045792432365935277971179032364465814063715187121755942282039571465963437627983444802492414775010476840279250202556799133660192457198848689715721384909884712074011644507392999457950862502983168292779319186109763324224071429213146865827541893933750566963092780201946218229413661818316658681092988761178354753278974499923530557187835239268697660589022825636996226544947328566410730114070336113697485087030387641031247153057126037255884563894562585409933263431757519689090990199372163898503420597036373258223618032732760739311883573799572914404720185034597704179453267142003629963623095196125980594836942050391128434210114177289763673110721179800349319229657696557371914379445833275049376690917940152354935090099670555308941155148705355062448566590965037234412513926494087739326912767139450868900649531165087209660829072435195558455055302957823764685167449169992453156025271351876126196861252402099135788613659603125700784479912748517092043186481790386797377936032675861571631859756215654561110026345927897650347911827620481897067333931411494310507051325286202371193098001573680938360408289217735787575370986068601142360995430350844573395891889941231959844895505387134939542598164438320372667946880424242128324152942358569450091688011457977931412736319360868845831193703931920030216815713067640493176732810319754339609230540343782596641841537455666422059817590145844494343578383736869098006070668292740134681508949768727821265531754928109453786064725902336608427168399516334930720343945862341093697444310844308841395421007375827972194745492893146087022438781873925542443389625213771604957356410416157278812937708024919204600405639083289759054846699281007021240005705432087121176925498020963650332239595755659659546825321327281281883726787614591598737170380858794448588076454875498284740570834501280848419177241673548510007677370434103441230826889847382927483099214248655661277142028506110011388179927078487355026119278048602604541970790306389810983975100420468809209917544062594881880933271551859961438311778804905391725407293283048348146024556972986075862873471800447449290687856529669058286777051457926699082948481948725277857748636579100486890250920317183316153316515402486628921775167322961413007847149898345312283933532921516651637393303985369513348432341767395337501061903326900377656593214709429956124280072556924616759567968053307369626328926821482500632487422914198459535823166930782799004204027606969242128453069842490733316769512329101219301718810638233773760048246141874927727290572761411184414908026367843750178442013065731733903336501875075056945112741347907000486720626955435944080509375290601553107405628644729363188765359898872988468248465479292350208061174570327973725316261292042610354904311956206966789850488556352943143049899854630739253310821354396000306985651304520277184136488832332978659625980105937793763698976514528417125460373116967460174228923105513781151125815284944202706414829710360647591178424204171634357480426122372094796999423340256104723314026840874234876305750682454084931871254589505709959464162605186841915238449343771813569732992445629255273121966567788417648700723737863392493010099649287877383136363863061856014216376248346177978816775817232179549388826941543022185048341789647950678822537459777356377433332954525820256313404870071116341661466098532953413525136176685353711633214889732337365557451170183662518530858823628428231575999331025869432932094400282548781409423042443344254449852469943421234025218903755944957872206812048482322717180155319914301773017450918237383924669566001831893723216922431881737649916794664674394338545908987201430836749336586487995033807320348236217345271437583611680998492696396836513765483542739837286565737126092443393346211034123010717602521526161087833702307373500725673278280943873977755498626561347631976165824351053309395272825135478558329124511432623162551226263214740937679726784220186684979624109540083978430349528765576282958042754148748448977893610333775347973904062076130694866014728190018723433867721649111180166340049772052472746592988653404159701794142239317524000348159810205909558926408412885152853798765158068918881930257737030092316163491493209547948961946655322778962103385020895411016514105715172052004539615120173240967657863431482396322761335470198193071120663554587087565156816511075071460180054748548470690918901492534948620554240563177503247997238751444845402162209545036822719487919533660001180518315816247138891603940104080465588056163413021969725823108159209174667517825835498992338881852768397364704008405315641465846169974615685769794656962802235734663971478702139543578050737109658403210867710178715040959008588086836227679191003092649708307437415685058489466527310957107116405650985586659739185128785066783986264778040679201993970559493785170353631268062363554983957990714870344459932771509700237093391440307224015586434570670483505595951664177621941120352634386149179245442972754179894388451187250164213953263180434958618196120715044422268956104010724725610957883985792581320546567423491025393371012908248753655724151877118233471627765142826008102283111924283680167049831546009097152313747165398846178917135664205756294986200784278135012037571366091393011523025779380572532395487001443892114225014340125160134881412904914334345456094147321074156591505825158024231231983843399142258801896252817025635058694783556013134347110368926242066405413373167713210855221903921698845911273460008549681170306436703786671130807045837431840155699774652745267472549249064080175590122292155202564823606829122133558761084582288576935161787974930373970095853142395236695245589026982713668824521540786446469043308645823873427091618188532771329487218532338042043567076691803201742614661087513192911640902236124591978807493021408050299789350757420003647960969247021147071233726880794727855519795622147941991590494685057037862250010556194001737460019322160007299102458943305980627875981276072542844758098274087377119851875041196640964222067350726874134951929465546407782553677742316963071209831868194296857984176178049984321342948887916873775994403224092605480686047389632379798324836040292184396493881298238558704440610241271661408839598926482372495886491092959585801528443258061963136705777095674999520359172625134056257536631024792693284201164513016093611324978324240960692968803853793530088652129680901882307594055210877740103199743617515991738311522534207535921588544925100707021561019447301374538471163119208964002747974356280924302002241704862005321088315973355503634352592048802988797849912716704490647199775785094860948373171105526919261035682318818333590765065527599601480203717092821441183794901769088019088263947432504430352423872838579356037052496654678929867505015050348232852121963749993465782840887895646497313234186218510557086397278295972051640929164077924505214635987327841391849938818507612612885805456009611184428792631741302971190945930153769221784959741856354277907090352177173241273256911918767877032317717862081433614094340184343251155719490694727195738858653699592407555092102784910486906670556833018686007409345825820045433646887895514599266854229878505103436836736301186474161540404718191765203090440757370647457814725070215750266867867634388220068445827106981853344533488392156280642375538328961343979635374804699663058577489077408707465324660557761029753133507638700453160562470203056139337148292240977460411939956645041467011033424980493728560009392169172503196739314622685552687606700590232361685264532448770841850953369772471818070193824108117221455237222141645897007123313666839174337003422768038773529128972632489670141268607957304849393060150153001715653942104299030838163601572949155221196679593943792521403537061734183757407587465882540273318298463112616924445205660730995857918411261569247290995312777136126986341742755034887985910190258007611287379004380527264580500651540653425224321831080158178587246649750122125668134750090371790369303080827775090623133013740959274931627204781316154714292665024721954612953144584109853953307556044105706519756500322657221197150617540169622905007319876984636402939647793910466860547075642334930118264980017495050473599271024022731894673683815776926359275455014600627184772839098781942148423617102387156728230729476197629037540491621802277240328145482424928035018501273627600086284513930581541027358007250469431728424638728868494258988054212510032072923800026606479942102154569154250663030153496608818106088726503160986599602076492045289786322410275252648846996137067891871173597966392701464777443210105440329272992346078463731276301720937290178418843313778351864525961560836654119695284835772307819524273969634866287199248216630373632706801613196402250549865533045256933842062685341679945769603146898440434140390991482190486571256563441429162342457496047045040983156629214062016838933062431738726921536223941792473592676287663842954785234735433492344704574909851683665387082053405574866739973478284649662407294935398609114706246877278483593898623361481447262134843551521324729814555531130062769426472135328304896506420860447193789685667830815888291146024603224738339848077923484812316257047442696503930526664801650068356169021425667523438740810674265747552000072744606476896914766383473098335752196160993739782798204039047170263820304210462842135615193517054611339321065672004970240295238460465927528936527513471980254727278030159904372062933559440063046666018046891887095296295776988981304890615062840577254887252236716116412101810037774041626202555924417932489148478273932033614377853947808171580936687698916971010081323962813200480645532497377171825709717435714246234203105145381413809406341427411004741417263833782231601266488591683800311866538903152344658459100843044291898521263013907308987096327608640109961012750664295516586626319272007954999806082331811069214007904091088217504745554844902434255606788344508170946472450180200753810631973870999140416036835808004921272158536809990177608792428928019913789072816136601512141108800190682224517188771575847540721877726445362601986366329924634070974076675671248620778561740059563495040900819411937680593298421441950234650171498137488781965407928308738622209984631463630453411425359181284407369015890851936455455446774769305348034966906595087253473886753256218006628743653153017527064955744398642379616585255678470858838900538007706993968337006079893282410308552506714584575426290364598699750838867689158531055146104102889406967166797514360124950749339918963012062486218268784157554791369140942287409616061713026847962287211435848816306090621263657226632243645478556167739452587760859930985657439419287339657065679785360131743319965541406030509231906169539160183197903998795562405213856497799784460071691509277087727085031437160626178326981014322585498484984926971275594911858090374747449794023259452699356867844358764918963141804713129308004277934120100824824396942389910563987742876526189035258672353722679440420673221807583762497053641150101816757700697988761950119657882851819403857412402178502868199730875474491458524210204068304039170447388217373220056756242635863789375146998484784434596698970136272675982649250630036117722053751185882339156201369121431103912294797151779867061019962156962577433810706846425413907735945717109191600409512634846287103593228302176477529565668642212740494408419527235492874852240270081121075999144402174852415051975130479909714242102942608354810279416532942962965635254649665092479731116170686137261580003032420090381360610260219776278665827069969767096418483608545250969210188357134661911815131589697190392170700745627761763877903504544403843313562541072659294483260820851973777163422702949626195759353671553546968412495090975514653780527512313181200443838322128178876316615777381829412846539327159716777201020527668441150241009786400388023418904205026177760896035063400586670139162038278964557636748852490095906029318449480481278997879799603717424703729988050376164528400631027246093759987733957564439978461410640249435486487016548340378805868513442027469378736407905291181663317778614453899997100722192268150939716324714674042763688570793552433861602100509122632432496019094197599307210775863042546777873024782065017840562578203363427570395161605115969184121113444020709326579300120616764885865579460013866937415838413495617781428460809765162206846747666517634486064469042679945463285715410816674246143418834753816173819061457636708095957271929561048147655823098859220301721516153393411867118756204632982199396670517795186106531822475526946426722806552558888976863353072192926425220157365079883870776253295466058738125146461288428839205109305422884444059071180992036490003632946561774239499277679394347379024144903886688837927601257009323051693074841311602523489365611357829770822201522089953421446331872202273716650565061004596918704673900481482154000494729240847747532175406194169577968064254728905930985001550237063987539548461787033268866127517742665267531904552879474700303577303367414995958558309064208650233620081938769974333273920446568256448754479156130821140047867796709454787012692659571523997555676841016871695156038495583196654303048780705115837226078575382994017487582990006703911202328195119851845522188035285083414445495494539331021229330051890752605943572577172352581483681948110691053657606280754684094033904860461046212506212043873524665205830895721925819230057407774211923851242332991152264434169251690967212290617056500185512387370062963886675871340713807218043283911286201893510485979902866215067072453601821087378685839425990865465451884890516000044065729668872352887833124740751383888135147077416334762108534291982014205918199295751170399361925471278597375679469693702462116876793310239452803381512819504562894931920204057621054270097711981550384068496534408247609311646448290962065617442823243981208585476658945165509990997098368153632744773215800381341431793094283240299432783168773594262448318768965986782217519183102739079872772593312346584725497154859032382605604801741686368351447625885661397247027818201217447100956819336320608969433415533269399092883976075948157647395810981207390220794561755978803657622031266201651283948040286434147209387880206922085867093619330399534269038492548993861335551442175592272648061116104509131223880767532777123337471107578740324934446371130710628885288052627923542995570065765676566530854677416519073699115182438545736082213739095280846387128919530623810343337089533813422326627710716864909844309335840339316871473011941729273543302194436869850307139085811501445814889174672943235273501192716509956628522951963525962561586115556528195067484230795296688059750880217360267419222838713512687773116310175249686513318266629442887626043992256744300822448567384611783398612277052367570277712639900012352181785279248702709905374069843368592841173486708813313564999720615001205164681169954549974993413736285832463381556999651532317221478833319221669517990481958360728229739996206341793414256261546184277604150391819716652873896151723869546385308082943110916848840204496446554497987952841435410547112160381380349352863991899198753695222299657545627935311728164342894318900150378876504691520791053512021190175876487095556178783874320181969210949359943121232542096923425416713620941301233749895611462101758430573822415492290748795741363179773792140118508455011811989409688435705446514209341645116265312051658654432072887497252501086170096852267719948427251266905674549196252663167777442996996307605605073249667891891617038784872196330498060569559165524936664195332012482210991547853062159114747207573451449585453707274425035892166278451838507481168271863976199846431599835373841152670727159113925160569698698735314091598392658232984185731446436457548099623076474222583947658710021585364710383528795352629018199439193668639026463919076802804188480218667572195128738976644589590858740414339677451355975671726633384510641363526423784885286480488314934234192018792084602982096550776302243215352898420994031504833885335967608136068831787910866959470023795133445019835656686363480745274656853794136086224313099191464085822197472230361516566783788937128736444548817736450429360752733777012617452469921802621169021932253366948108054211589064240931420103778545466935775833260269747098395248580819658907814428887550499629802410026662018496625751547890267181961113880751244017784245659687815921716966582660676099868712745065577965083842378678090545102879776210118335216101350730601705994615148678707315270479431610954985401800518629335081685181425368686701575122816587501959904839832146691661259717621731686476269534847320634687059980048735940434915567811772561949526711133119229914386247026764022489473370949542861693599227280911365702623979533224981468296397955866379038416977074773423276396048291922928262976998072865023009196177490587342907485140687681367817037658192789681266111460260371007935807180817200929388714173172510129744046251918381666467069810678753743988986492514481163830870193664267702067672538458778761518278443237726486309151429056043324369382138652558770062815712105768713168680679191581770208193799705975364499533639382115929482717298971115553186863614300001728335268219646508182855485624912555343794607540654561636005308497365167218665483041048468822301169646224471002247658568010932631156134013518628065945531969902633230250649153491788756469248565460415167159802071788655987841552764110702516224001266768965631873833123368946836314492110971628212888662474631569476767527717714129293235840784957916090747025471278944890240741732018137538284241655181479670627351614332094550903655619242250398599306842975139927286845625056580425702103923678018155415839074138869937514621895422276925253676045569772377378861456591029814050071300265268996316732874934475207000480409684865416522645069798112308961492924331332766360043701757657702620862052584600270362787738291473829741447177844538156241875368144698264141812526638422118125347746062366512227676896314366861338303104711673276496410990120678711528397472308840336404646406565575861030252209110991559969560701192653046951622265366757713645250905453583846783371159737031872392067580352572866036510580684856491976381702787291282520633582524720442601985913362006215475887817468467860732775327882780156803483460931539762420678252566813039825623875897288759689407634645823774977536621466700353529472708423065656732452997161420387938290299807934193958732615306142477780438368437320094661018174022373227058001965155884718417263630522318669486343095226255609773544131111155472080075821707576008931292471056828887052961954110311927255029255109276221792099790781423182309854279681350304874071443428470747999885120839026392708442411598801117337532513970722359629018412435163988984355499701660326899204979219691270978184703186835213196244009594560294765239254139185575189142224004378718089861242171618499377169897024869250421437073368774804637910263602204215275399939451628738056846587809966389955244277267220289517846292465958078039041098834559341432445651422515014749742027820508561646781917184123680375654515284034843956139259872016579423417405825280689540613981093314844981887902413468837134927818647795907648913752762034533215333347207153246401417821634709858552439628465246642769172824012763330976557359893839369149837363264982448046347502409847362012161121425876691522925236654886848090812118949326698291742850822298355612993100504434404349344899641981873862431125216693842749430929134910015916667373057609610857554617023105539366131781462841667298589969770287466354538276480457857937250441712168031271786547567849645845720243022511579560205947046514802017520129954296064916868553430359839999490275225540144603988019280185966240689719696015554547395285578781341248338579631020363187122793892484828004192717798321298245447942372145929920236982467462722315395353342621056488567237265386724153577499850532296590201428795011184674937705896397464285808896766316504679650651237776554972903744110720015935572534043500786572524371231851985790828881701291531570948078689506568638185462584919380814518335113147461936404700431910956901850120038028164865042721861879579559020002277858542925873663755622426105790089141382783811161177686785106441420154140739670231698680124207163690866285025625021590335363147261994333709134654536643474642931521278910371613099184358077202201273153125582659446429223156547936824655998114280409069221615447545824567037891409643071254101129416750080550129706203495123537253937344625386861702611624193816033984742059853679786009917869512682652029879462847210692356178656240345958924084084774060080497708572268812495651828188639625239145676469759242726480799814532938715958754086140297470486850599087875521966700810913193426279199846831036184247746061604024054700612864432535564680089204444697808441959218893570596065504178064975851179450901003743397366947731857255401395402035586565849555892526652000469592246888039127284927768674329016233455377612487222980420547708263255108246847399089612344592702495746682538720186808692294838874921831786522640362225091072128996640286008603649802945028869734093354672936214022054734515246506860310338411753936044920679123487544939946719787449947398787334209305139682833427997227144144737341732944214249202615842774657911479531530009749265138700887467570212730136628915188487321086000226205282096095342541251940458187502048837862790263261012281109708229058295052696736350638287019997774871137472793929495716104883546123082729393165042039434622089579939474486406337180536912445660128979987550590124134040479915049844839382735294916277956490561586666508332217232321039397090761356171586413029755176772776013157746993503932049496903669234574526655369534817031308178572556777749796514023791949408837055976165793453699702655314654335837010787059394408611289785126602781781075285159880011522410945815985799384086477351598450651675134528733607785200444386205489152128810190561027355543587744794976668306643936173319238871578422805591954417709022436343163299816648272005620004764950565311592591323202634607706519338486512034039591165320080023125632342706855715728159062474168850165258512439157295410910203302280868162098475617726432195906152523635735517089867616147334281854301020642593218571106388219817191056283583765279634416903362535870187834867166484747131442494290103020890930955400783396554717611426790572642978743460989265927582053182289517254668695685296463684098569097132822114612913612739148660822134638987293803498594031300387186754900934848435928151754065988816289020597165524149422987533344097172402951433061233164368458613914586721263848479732800278296682621667863625065108738977098519935001414250002838412800267448169895187664042353235809891421291848580747799995657143850490006690846129138813558745901469822624563088351762936610284079878701025402593525637220596743833398633555113516086599447919312052894413473394780033672951074982411319363413602373321084946144971004164410058478065214768200751626104974609035922200185611394927647199219778478495271261435012056535163769097986459856118858079008306276121272663231781505255437259840299550438219694934251563308437977286081966573058704007238644039712065833558108934635669568549250163018214072260362059565017308170385192162763230569554892275414360670452606654189261950727162003848150335142593457022949873840492866399670053611086384411214278235019965846363266013495081268676903323436166335645303645713350838309739388794147765707575496641397577718109749176001904758372067431396866460557699942425105837861058157795183913725847427706050250552824866468546590746551861562533682800992545142270162453732113816003705194937581507058548663225956720309061307547759998035537450390653483457482475503437556386873893309074873753059631915460071874273826140715357230411383704844743382836819675705501601250970784442374361877731463667226191709599827979283500131210350610735754934869437234935690616187935428313729496035035762741313936845001039479076419474296642589802358738171519303967893308473001125892324268856820666323179389313928539771128041276811440019680060645946850370786929858475456587303154573229009054111280628871324168093478058314203438786964851653347396749788284606119757835721040835847784723738716635841131264309906372107145071925476092239310066475936066776329036697726748311582572995151563229970334867685790958843242565210576985115206525902860902752332033276142489770171065933751827270884295046111461574462191911545052042895396222833926003526491917986104829173379878045563630834800122682477398379071880873129379381035024614522754242248135237503929013886973769371027098316286207259283077292169674047202257892928604284892447007293196067171915374824334159682140539358818216659329625038178426613618139189917081555766331275741996384922509812991983689277495801691878569531468331408519437334860268883498161724240081276640377740420999204531501297790729593805953878373667379320864403888073488465520825308927595486452063941916514918580414376228413648746935696827157063074995712656521734534103195311199548753154308089553472459300008553617230646697087340175419807533765962296532716548632280213779283251654050453614937390643052901273427448050461105634103385743104511673314064062768560158372496028792714772085770515402045224903805794304417908433271862914269262172374607274772213118986619841342896217842353613617231343931775736397227406755162127289838354529561755739890171762856001678671124651252309325719579439656033647060753258957714552176796501229060434510436032016955948994194710623356481051209218915896833640229698646731076577366871646924701508247842109479003005860455176524003690305107092495960505621898567689224684698286142645364823486242764703240938852828637456045864188414470944199003974338182112469980068520619512586646223856727634534423610870637499228085112455688182541548509263026739995838866862222174390974926051589482407649031877078799625841651405171283673198726728078978541546014436952697308377933762327881894716119042303483587611291416217605042363096248562803663186776603768211034292461929410798205438203922889201961223931419729206106958019768853751230979344823620600531102773754749517875093881890211338509029607668181216591741592351290646771671523076667017289693759178937284634026685375564151959676455019629291135677760779178940434023599848409928059944805721423076309588204055547110089085356091991426406759672340624985607919863681079154584102897555449260169239276448570768589514217988943733345898289297257594126097618374576569059177828483042132148006499994982537648925694521408739304489762671352997847168146220938480683621380292994316976829708864814936527806664813615219021962022717940278440362787301895670537317194861795481094504261750331020047060605558696312716749478162694566094711770659718893758978353513348164846733117301242301321172473660003029502678680061246168851408183355400967618492594802990217444595558967141178656173432234585488135619403190503641906398095824240588886452901880069174598559476273508678736399762659681257399841892120806233635191126739902147762272312407960621484067670857951684575786324751587940462626369933854377821230481963157968193725646384169733178989924055638050656806630530586673872151271875941461073126985041129350160080674719830307657584259615582400399257194895716142820231878507342087504621615974927717824958568611224118253253764629343076786507992328854819499811579445227873248250139845283707830915857042089377133659157686054157097822735137866144639030889630068206901072639227586845768267136121530804401281326924385601630398132724246907705576237754940095208290488210047603290508585461718208995355317269716489143576789436783787647703730948715547488504001333575483446063298631074758538252325056039640940500413009118897387827677990351525288710015610469105119799743832267092757431858062218563634636074791693867775041869247548648603878660810404138539436208097033701920026250972940005155641235089693289717251902494662510735419202369465260388568042311570669605089133617401064827742581575201458331732071907746595348468357966104573929007227973687334116363518135642134753849394281664330408579679255349404518312627860108308889249412638097665390460832734571925746943122583221694047780780019858807294536439474044728857436220617458850106413792353409995774357915619419171314498526123159211656976883887630229817240223275237489223973270052384039272941223982370634363398923887390765557485891904239555595178200655434061606166975226771978131398521323639337116212468249969043702002163444330707912545906428349461734998517351373299396110815935745134631787746705188496239917699930582026794029219946673856742407444165641958859352034429191528901779859909032669285713259724031732143161477462200888943028473217842164641904985491566868773046598445570460269008346303869443717014221509470114024579116231483524155601262649558006868960597489502170141219715670302978259583540627077988315080066774039474674384897087131141190243215043489367058487259071257953244018489875299956759771326538064559816842399182107700470353414773700675320924510132267960818916687189704819259462244240359189418264704809469564349403883637814461168152079958758560500880998673616568645046387344131434236792820625083467056378538960206129265888765320333360839011809677466919205941415238486433220774850845114884628698266206357844173371609965190892349926639694681170091175046155641957671290840138967358846082882400549622733100812866920468227520752418890478729716892643973918534898741480330945299131081540463026379444077057512552464257306983467914670206720618575661791911668098984869471638515361851910872314635487057006601601025387159532259634281465791608264673463998270433410942506307184294882188319160455213805914866384586782160362760366980923754054656144952583807116122503240925044102524744809899831994839665339517522236762740696925948098030849606146809013489190389143258540995455797580483782392962209414791982289747797635406437938446044740886725316909537300363642214900982272282398331591327903209752025566207974886713685736935858750502301561795775277702637271910360420154632506442854753427025416862168706446078777426972531635225225730993114387383945094050964700030333508956689632574866684683473809279665017751650376910393372897855263157205829084325258545045367951484506775264804248873505030953289330308511338756651463179061692087179136372940888746166712747781899670172847385694300286141452585676304006864400606251959821762113636454335736284510912353500715919166462263188084429714612987710708851649148007034943463160986483072794472115346878241450288790708993229242497301848157821828261280244840604904211619279323879397623700830940504637783986289454655390956719397933432181796261410873863809650176063093776749571793195820194896584642886116181989764506031726396390916544479585725431146517421414923769020780088520422861911756216899552632629743319565537022950169179760058790060585700730208979630384974998989184416192508875304590581659183735974419447237037261289207967952036652356867895656303582410334414351873420636514347354617424792674040580829039279688600902862428072826984438907202109406838551031158876774099747058928000110654780856227337280532630553573147626082442667692757852224320031093377129170092563993236535104321395362965655940695717188007622022502313163492418721949966544063082205635008315478589073936906542752139577128542193243623172270109984535759165749576870529009743690173177231832621809383520898812291639321833923670339125062613471459007072444754374055426067261991525937704312596293120532170410753725443630984348663409995535902020459577497191257752547332400161125199524409192535424370864917625900950003283695194709858446069269974690629465747347078501428257710913583294023682189711961308649446248918586497826719443478137043555154793905283581402571539068605482549832970213202329666428644029580814793290330955677874761982925834194405923537430417257395678135359889532751717105107744345449918757626425613054573130467398634753166345891354290327895326022613793452396776002989409238782455727094900996074518483919949576374272103982776739650601750048964053905592931281039491390556835977786931869110819745323342079028269617381447211608454308620196238396810847985246009213234155667072568884563211944279111390581451345621639962853090763813847577981505515364082538598204916292556585758629561362413645230031348698705432175619292286444636153372779754618926517866742068586117354732313788996964432844282284446335030981462305222437451580899542549822970573011262287711678482373761928607962441372545275312742134038665253474631758890712614315489234906349643444101178565789768717507782128812836825961391442444316147274478951032525334525387991886798513248035684976969320583454414136880073919106221192166744691766113452789400475784437752327143974567222571347920922127781107140819048440001847049498252021510289069525330637723561515527444957483404073679342378403987836720930250725183648945107792771407259301993696534443999940923905469099302352205117106731487438904235534213438995101193733196179313740097851772593248863175841349914428920809150742715919377038712170907464837791780630137626704149437651338655231864294206072057780923894576941469210526745034895156621573830906454918282175305123239472052874883331504315910931042407059834007877224101249601859574685920256467964642703630758345679882322819241934992228830186294118180468951687809621166790315836892951239171397587047300224448682987427121872654625246012206029793600726773544580482616404639264778796790493105103411030830153082214391753453986974310376874282842298640813532516878367904589358699063205501315929003397177573131466647855760342145115006013591691819769342715762160721743123355553013426030944697851555777501667778889503037104670261658316944446721286924739595520357218793583435438576335345881875793181112114402805160926135419129526488571095658260642092790815696273096078015064665731241053801453901571641546867317429607257799247673479034442414975389795514494929894544712558450970513364135874369476590476287539093891518144456006699821660505513846682200204434165156074608507685579688794086332238781157887166621856563813136393568408857520380468710104413357004061518161271753638671163016881651613984672992263327173078216524700428684040908518927640078991216208380705161066150386500562163951509593381595203272785878094284961873070171468645143735471323056012123140860353181520320241069526683935082430373278429234201261558920629763112043693455274130613121349571087612141223582702308879171153020483030043588064226083976120843536969653141392410864782835574532143059948669316569608268442020864264957663455099809442645769240541369991337835114121984476763424177398510432497666437803909809991515572178245352659458599782611726290822167815580334260329082003443207560779271961394201101979713184410239200703645623894121224539321059380124555802118641645765305438624343630824551355361824508955958601577369300167056255541893111381767279309505368595530720225593708552373733171030535766729151584400708790577247414191683348029388623279044321788131677349229082814309938364616554097869289717213128630987332885665715163298164675593926356234628718669140942126416193279786978249444645066642302198416140645428577003697820924566491293392991752365003880829725097678658835339451402918350843088018976390659736959454772537716164953211087056596809105715710316579632807199359248441257164664310235495612228164782011044715747530139687987150579264110481979533968635498956902077841078789512630745617145050911566612206802481148705527107628107981293393265860630973143086688123275382162202460122696339665466876182179486632186199392416307169220172051994510944454290928517631594580134292201329801800696107908708842859421655924400019361217998095673896914414366402479115955526629403138075009102093964208667337568749437403375383865504790906312375105019772428019965804011639946023699602338007572656680429335541760349167018900326363073616618504355920103314699380979617300329553651787463063291012775891310914203104973655011767674506981075416181588566650580776241170323916103036667209658189992147753982952875700921490788178522664975356301098501166931278139456910546650719404938442798383254862884541681970260080725536584831851779555022109146300364730837902252884732945665161566748069086939498102756576711815760756920863196939849013521150902983403002216927941150329743919992779305680049263608261827231326923948749456507684857042159960657531935709032362759943341685215923786181602088271854590078150035367860463695242761603885774842010409920735723662557073219204658679593106580538741951137696767832611783246415028504313961211265641568115801702508879431055423331574042047710529143657767815408808124585650001260619141873374612682608600763295540054592238119357116757023095299124778789498057762614511686437586444711125682207993989689112453866170461135357881810471906744767018852362762498521192445380949095812539733573501056382231545598980400848690796351633878173090351225668701830003240523735237320465870477754238802624768716303037394287091886547513998482134320672728820555878016014887889940031065647166737867258792302859649385725452982039985676928192115064609326525395053832782002233398789459158633581647253937457167469185707779475907454999187502070364869426755902025156402967961019029629941072628458518120341266203514306917429638043060368402766680272799823047550230908521463056791694042041139153980556267004582291440162540047421112932490555489623794189775041982710874957416739939333647237362962718639201351558147704089096199015621894450922650151520950274809665540433031415318822859838073378591155237645765521706034147662037484686564443819922503196675381240061731277907650336750588699200666372581297595706999304817942159368167978777347639334221182592899404834969849101738739771066835091447685473302330585017258249180540143851612185750555885115542987708484537875699572814127365008019841285593570197311491399393906081404594573832180646107235844920983328565174248254441589207461828565298025538960072116038555624627682048990512820612564931174402941309638363308232645604542137886046224073663520517346508678951147028933722265140102089857889593672257721688182781315333810707888973282316432157257361137208906110914090961635348120479989714549494927698151851767786811559197820263951939120564796666385593229527236098697987261595622412155120982480556540829902329299928883677069532004694661508423627687719192884423302850570711270362825997931921270438664890857178621478090388517653032075940316824585592302635171833067359282503327775645670395952046444314404295307393795769720736244291588419244331462934950649900669548539287800464073743212210491265437728367691478395470904252873445739834651522990619645488639459541852382374245083321690721483975805955270085028929288780715458478323045038608001253108837718373549217255597283533720021984959647794523730528178831715392327775282607437392363107081516675957132204713995883454773943137241238164420838988395102603080499728623823764322965361601069001295967734098164066668357105754975306391392760056121309094050311641903992228787114751289526604393227054626479877942481704553365759484391465695085938636270553996027838054531437636027588196023347645418829297099839553823331801717884960811649117279993110967353014108771843434728531674654070358446762522893461308622940742067776195784259047072355751927944569497998381529835427155444136769459265270616765189542223969216301101666271024687785781212018329715501204327622837582586408046757547082434089730611504941404866815680964144381926663248245527691813017662346934549089897459644602655669590189079631562132766809050549809055009172954880083292732541881037525477325284792368015661076056905996994845911127459987031606370615827840865729384361977489530037024885392684137026003946291448923092290368503741271222090121238627822102475611481237714448395843621553170263186762580441898813286451237059914368707803724733979486492302112554802045155324805228552576488232175144632131570481061094071859990302147209713852627975618265958557319781745926613786936144141748685821919388732367545420301170320669299721773839162789614792836322095655966147590942743782154732337876029260658646870114887906360590429169134318121070365269497111979609581633951155681802174210414261382532395536825253442566856280086431448365982017341601560401155816984862057958802626748585933651094457155531977716611300423566282944233381733186512682495837428933831480790451347804801834773421592007269762913107941375413665317579877741840816204366153523695465213016771143453969683935755414740772440385155333499122745791631653559258277145743225786596510178997027590824260252409518188907669523993830079834697169987213824060157296947962472878517059451837046323105672957044313798754872818870300116138727330231620879845380293861973396360228826094112273404668590212080885599596135060134505071016378655245373873671761206266083617794230061485763210585164466732911329913580277649679457655628568454383924251264550274390620298365878159493063822848568261010292819053156454096605638668570145806704814462437282984804384075727182856778984815742968241724519815111128829733440037272331077304751068605388310650646147632145864908311587896534653355659177851681317724000647849537537195123132207723533388436362658815090184177394671203570833194230222634432558088304461026482428789115464197546840383210852958549002511978180058395672431307938699406405635682378261633771571197039064446357696526838715777085423997463088814002746689386408392487263669553011469848191777852114920155353212778226989643816253379367218944544624248981838651364839383177032937024195962585289693678007891225858900955209251293673931475833599947837651529410427570436619595680821584458569034178332946905547983911045727986031898038993929211682958230311353656947860101157501079677766612991054965160983571004256743003958358507997199524428989477808978958350410013151143139809352957889789225520926189871457188004148288960618453028487212597500139811605640450006451616370371479658590951707637706763314380745544114913282590011736048271787294891215420793911704228766409396960231232281939522142991709825399811297428922280641133844698493121050279519438518282554523189369280695903537038425234184519110966471013351901290162889529672097798760230258656992657940255814938841063084088063932089367988833875601199774175411828651720994243621027648383760977607443112495395614410111610102774319492272934751386118900138889002660833087909881450733818164060855211591293058550383098347844617003590666473244658039310087284703043492823556912899002785658072703350763138128935779886719887814329852531830002829216342593726559003841514229447539697946200363934405889972970637492618420364450142151782636937840314145063797792329626931171991317834231031398163375208567490247748925052538992195033742884753678133615039599225997169425737082947162893964579467193653030892690800058023821484774548943178368116227608464900559463141110847573708819904571759416382460118296502049396791558938822536870234552846010490085882501686328313057289504900366982197875683756026952098586773044651636766583445191363296552005509813224245079478074584831451589696005071715063943336423162197665535898914501392980722386400816179635724015513162646757636679622495812599069963780462640782242418285318516161018855030388068024519624901361604882986542128922340318958040658416723199032562288410550096983803507609171182616480689824459865518415627462279985419026432102322683253026438039871904322086093760708283912652810131599584334292887458909316010282079513546234804625448597648305937883105346148997353520729022000567192051377102294607687018139484733165579044567809580607938308485916473726946398335295243386512692902590903784242074527125177654980015431482317429862023858086032779012802268644188801697595624820048620060999954268583917948927628182463915436512567793999137996207547985552691262356949236723616624741450445498505304554467064045087367831481128079671274155035319629838022877988003560887969414852758985018390655859588937656400902951153309275883799970444444936113465370247046323411451557625397978162477270225840823311124827861406899113424960138030368775661213163745186601850846763402786705556937414747389453622556198928716546547565989198391188458545895248698935946709590341205882363202849301116013963682379891826979484791872469015718732547195335431401083797289370207976520149542200745594063659740069844594002542716044313343419800232061068156430373330675010862455910293948844505918848443975291816660136653242528823950071204562436098966904156813433615389391775782048738693050017770291173511460055644117479261208666391155320169335649974739080318546915476375399880567960433527763304702223813436305128382882322160685795696122216168355458279618118656275359446170172634088866066508546880108838890140403722132967640326694514986288696994968941036216771038802150997948813553152782245165708289100286139433069810840968283768385171526404516330143040978886720671486609197839933340118853753881819951939896082427155913210724022372661025003911355570619062851322474029557570216810360848830647398343926394026732286097244990723949904712372292379812158386780268049532103683633802677755693446733385683935530861609063468709488374998796366452422825554198530947912185211252387172848219131797946500443898451001776998581716463801614453137078810958476171617473190140437716691106294025905304543812887851495424166972010631601586108353084996748550201958365197764050752932378385612911945235311855345222884513658130106714869103193456347858618987427893891959073763805452599552128391165750817648524351075797324446930556092227674770022180247083592955680710729682204223016392441883193607356235268365882220922860542517737068791144773060126119712014580343953409473542232869546185445108326403007570482520458882487533498821876224806923615190348585307208757390724479191882172286517605764523232714162368034163467469087160522108960084054009148245370531814315360218819871202961865920257096069258961249353366624636124072961204115876558442613473148249751601911656191283791336500014272315519617066643966258248677183895964401100032135565892473049920664156303526497502918859906938884948987728915426206683948729144421533359717610298368255871273020228869477154968308115164761375296792350281903783151721109744796738873248018755142109563360790367884339804447177888136632957081770902596952723374710362916607798159774687934341246940734551213119003511779851638542851003662224628195013435216863949679424286354803497761310508015514086913484970118171277514312977448451939315995141207966785630613839523793099974797928306755814609967175804989834003119638293343700064397142277561967732901775956773383903519697169063335737181426771476921592810935780664067031836299915528419252953568711790907094914519932469475726260683633350058551235794865704435154104733719203345808195503121761602343037168790607467849067665854113242355585085827645317703694555675075276781578057007100578854565603604388690728669990210717500508974255569965633534805468633503456662636423725458247257557250919061392018082225583526454996002167563932363959435535244616676741557378253348318137701508998048054151610697360285756213883078555045142921195558586322685196291892241358430707874257801217674028440698193309486593179367801541774701836268770507997862556735112063935538678220124564065878357720824330541388278382251597847907186452171161314224592778360422705034789672960477077479231138305301035336862766757246596311906287731301051565221053677699225090418810512385970238504646216752247707002476527542182474474181816171932214927225295586441928638690492272971888880296655192364041567132833965149097386390746575249052904497304375735562889967235321286209537413448248976095453736211333250140604598685621154160214687702263045907097028304959625547824370661318107908183253753537547364267975789205411322451252619581050949057636178777286802671588154473677011498512274603708678624688645689709020674744404687536602881060676510041442558338885679138819854815574933026952657947693470314673018811570377444216878834069385622867512877499455547407031868908092954889933476956818948080188127493198655578765507188027079342972545365637240498472467397037805780068738007639775515090860888194603315067947852912118219824412488681981574434609483194014411519933869555421340357138963294822063950150980179683069168232074934697252726029388049855743358048465040399019312921265360344441917155661987426404912244511680579865430698691116910749993788198086820289111791562990900131854315984827482455790087173324301909386782461977323058175225776822455326617314452704414488855399792928899251044458285190438404409980746376039018225178172937556123790965003581995068102577504416747969440518776076775867168480612582775823606178283709318254423049246540282806785295117020592555967726549089380547990386340757438045630590373838745297076706868739486845877419803332337777460220920199948374941394454144814331173297732971767297174223954747291551772343120218216496549707342538061555310739382327171948510833919597591673753286516917666475063924701192317290291060133548032763508868865124218909868073753421228575134208339216345374422763210008995444913691579159849024779526115264378023849420637545035342597549708100794212291294114331141866581867739818734029165624458761243454200709949618458854977589040807373456841408347025737981277031666784451101269721996049631471580197280592711015876700325844517723190401470486770410915959473426362203134102182614739824071831674173014117993997976943119016974827205065499865895202091897214526643853698986875560179003724281790108523145088405788985281615586325320271511796465890152994641365423601207101988284915149724547919723191464847027157756402291261533467211704855589626667364189535084278595908604880654024756929916639331014069663695723341171210482241956689336906669555295819907987196455442233248719580062590289793241200983158671395861848874248917925048378932818117555138809664335036682327919065739567084254541452290921699064215045488252138320237615023931507741015715170986518961919800761932093600468056024968946050466424462512871589148345594593854405446150137724218334266812132393463020901671932904027350216816287215970935839743872659734675130013297875189498247109135754956115968877335372199440265529250303098217311980195966056753666005473544648853740620975552801420900750954860063765123582063833705051769041846803537786070621567136753955212341369593863708740794338053197193351141466141764269523706441916074496350223192991451182606756680359014919689331192591481194490715790448069893307853991782884599460570557631659951949635352884519457838094846750530303570445041636004418030869122539875214020548677464841470357562259091812762723941407516988710304425736500982686645093287591820021426524222535342261703128691131406637291801192867800380662618381681581001753971549463760948161327117910715717418740039533411779087979294360648876259271181019405072948904279142198003029410846454218656477681446739628043389574077099488885667163802398169083465668825265028690983174227927467812658232023769401109119028713613434374818712832939598731948619905188792493077811189181801695528162839324552686329339651707979485769867563309939767713232159171328464340370044848644104874396098884467535975567724504263336218360123638545273389175167088563025690603428671648911004175040932653907851538324646762375562885027745527263467076647548316777244342629436036778969318181337781947025663371543283305136475447909403435687635616343937484716279528990553824602509247050492291026183555251821750929653897071269111737564433596052493527236782852187832671526316976021863198696917578268310789069378760631483621843228977864393224316042810082129631963773023713419723179812245890666097460195214253527742128322726827766276261798168093324235378306280164228320219418474605948121762746995634664237882707374426095907264592663022950297631436838201168226736838537454187402363431049825638341565134875502087152355137234317706559803317904860066148078998458002504226358130410055089700657498811153131687719690307594081429073783013537706930989755309358716679176339583781334708682174406692379267879028218528783776047559266242503013353833874945398185001127624872168236656123775093997762047187129731108947677612600010615161693097188269093426481780390534422992890360196821956810603767976140368336897969071593704964847704913353133336953807525126177223779328364881374603423645662323930781835738278175825498625453058431910649544361799670592545443691630155514397224487358492592188121359916786153950516972774741414345761791420649009511284053484406730127637227649478464493047541912970191675343326408402327314986355521238504152845264964662703198508990543309141303446176707418759650434523900838073487243635619750587501454670570560084853643814387379558608754027191810086448549712963670647921447609398873018542423556068832152607540088056436951685323408114187709352898127824536567722943203882447111703571862953282626558880641103386032624854846093647967844405496598989485152028639520976681535887311638703435940336678860916258722301816912065337104183050381440929784011106417038129392374710882491934639577113949854998879233425343950519114017160415333380200778032378212429906672492890615731304180779073287049785266797556347820134370109591173591415405800290231707643107707270202968018104904620865640688419828286790471631462152060183276405499346071022386045849891603307657002772043699742626478169243774097692579203782498217352068464742452149778145785405539739392534129362925723063638674662470707532907036757365575046758049410080463391757298241479555725477277578611543686611703289690182366345232591502426832280392624316867092434640758283424675947338148497100117987335695523501785486506986326653268626245680186359959383811759326123268260323989764516950568461745647623115202176586773988104753179420149465623706880392072066968777945468280700153729045238053203298227271518617449703222843488592178965547436844274001567216006880332377976799180148074758004836457858640730379136282135392677100820205690073914587096459797062224873550254035924133861378670345424926720044675229526954748197376176344615747318312127531301535134946776761076513574037565773118074435832671779880817404670612570759219332287409715756874767894616427448982836214451776014536000939259401440173686445790443351100285815546259615027084496227239210218817551285820709013153404792841049439955430977549776790108591494871557030175523657576678739516798291139546338071032377226653401724139615934985017076604019553306321159937041780699195951162150810735587656795021886972693815780867648781678415576143942725480739445718765062297842528966244923665417752898260706066979231508465519588369479685872527989825017271780284422380198153323558114882878724750067233474476142142510880272803512927516414696873598111997778814243056000028721552256373178349033095274431871249285499460154696215176508957814401081691209283413440942336277525118140808376839387571735760573496828693746723589334229267881957225970371810509517504195798527768608423041040679710964975667701971547298682530640030808964329501413282155507476240311065725262621493614587548809514040433428925114264157255718275664925962499419041214277757169061769289066545824853138030919244480020015793305275918393812781415784161188921808320566759514906178086560053359705841379488145431888634311033582109244401401157728315096878752343253492870817110235532072384378049305432194520645255438751459708350393444977302697951455443754752054537413178808315190943776899752537644554563190789286037671134067950767646315680621297575298748468865875911513624176028057826342614043108473573334928825026492018578405423369785950703528175852168184372960500463083714891196843223949250510845448353419407994260303290637950292959062778458963181876856205096969592264094061264372619028036044599173854662247582663166010055698639923900097765376424548552608926864660787715947887844586375454520992723221740691758834694014878215079064288513529711173216302461825195315849976123334737123542196690013549843972226869379102219949704988971649844820021314867044668065497414881286733037787799509413779376046973053402370655381487908204603493011937349308419491192953272754124533673253026648833533865744586040078730196861976588644553966203115083605935519987660358272882989182801642480930950230655836653509730084732436400475380981211964436284072279592908681050405031673092465950184052172541679555214873241998500650263290004505913347392269873604246864504378551045551548221450228709282786780539470604910117326181144643109821909694244471061998079510927425475677644420372892799502831844755450574927060083935243929369988058043178640727433830383510826735693121005915462197467998365980206349823906140521263615208214925241433496267683932476381976908908811620030833907198160344207752626845002617015143032222051273291204587237901404273445116145699080592148847901218587339024530463845495664153372577833569074557971161895234756467349207497122636865184584856942079638442078625304851147772299324669311755403474175153743524884895700832798147877374574818598127063571463079497476743927699279479128098062809689598592760805433691903628794966008682870552058534541564137320925299418245556162024467538260046486564658896214884202374125606900302259847408319937114079892962348005836950350094291616037378297688645499068224797421762335284690017190636599677818229117406035089670220398032408694067686613974971643767447063630209729694863361613494506876283179894916754396883365339179014999761847408673963827655219455239418472502003278789326916372946313716416995706414785202436919750886062216534609684871625614609398210110740156188874623915911861248067562268753647471992275454148266862645142816440259810064870595809850653706727037065885263784975207789651770322947453656554258597097539726759431371746483565844176997397657298544276166480603445569843098050417896049699305891593303471813560206105130421705452236687192430152662205585219339740532452798777911003592385357111845515360381531980724094288762641912642380003167590075249114649925655152158924414276897357405512829099179129502475436933361243691993448495313509997315923755626748680321562274742627915866270454332204327493568173665284075810734261959467180350125175595469739709213768137549182394917228406590199052666072675932706800915087709139008556147184048392372340335336634599771325285799809759400691492182185464267491603226749209562173851574672300542080843051182494826836530636206088797820344113765581686271978058568658484878340948859989309089335125811766043704708864048230658438441911732909244170235795386554433492363513316274606341998080617282400894127534900517136552179944745116983426701551098962654890445331928831373335046329036887074977068151518395243730621305578640190926625194087189349340989856553000377566427611450856560636367002085776599388351907968500322470612735098904243800506855852099467462018092785665876855403408880432533830376674778816171462962903744971339613039965517855354006499327847968472296793209675057945972156785165831217319486401648820160688408093031890381248642327702970628300023287875579687303030218638437234410582068207940309631807260548670503051501783393302684968269534574995696510577420150207168227207391121444700457937756380698281382644119455575090817907259347976823516146463329836623649149417872171227340153275780015702316967352738709704505179251296440985432788070610829456074230079653267968010647173290349988208017666688825894490350761278449082344638486002636824900601892546013454663955775262769959625469189930375486945524366671103884565423233307654555187773602561264105899962664101867513991147202411992444494479365718601184782597996712991738074767162285350238339425440545686755263067035761987031881929060976243376218700892260671922184825184072437912099036490368210526554841265489936684851363372371089510226640392226021899786668435963896987338206824013630538797973257096131311354042122981905081625067031778033822489353750424384878464355961755162775263378714170718512796247995871417630899985250194986404305832247088814867174251317527823243542102996299746140283538307449345368257800324991679949843018084570517127366680779053669880020425030823362635902093333633127178269189923152856358976420070936384134568526871543404887057960154898997770098490448570191047706296644152316662048883853686137493777049230270790156589697641916331077643658491469341840755330689732970750665715478577421138151691413427176424376125387726795781770852283768626201662893821948352445195858831390762384699302795633446246002252957713414738548728941521665128271212886636405080679485076908591115780792881150810801056368351980330884114610790944020279811974917193950674217300558505360615820307999167871579448814968069723685347236425249198683576280472415129220753271754697081668397020674580297907820379619868619506467892689450153693309928141779541918433629544079968743929911642907373533921896449798201324992020258771545116437344785504702641570826751764787037452379134193706465997471229641398442985280901882644559714462312547966751017354840912639330976023838931724553666519314636791608109301508405424803805962439209072268666982467116699028429162213033186988206141789344429279280204625919368479443194290730633581072283455520956174902504635715726652932685108464862884133776182046942031626062170725970383017184741134750207145316916330195516178206850092870703011011459646893721212184646987088081420883312285376740460453915557947955530395647032662450261531844500506967892772263892458758816445625162136343576885586419738423845460028775780342367120205801792612195386137194028947924453981993348883395522104397772630871114597546076815156694187961295475593946908568735560346739368034784502113032931483166022651639662354905221525542919383502360799716409034595040825140074437806300907087249919488424240600491543407218564101807399295030473161986604531117090489015989988139419614698480643340759086149716233075393315823651983795189236758127645903336559785137395200863259838721693272328108261351477369552818480023885744713242875481800664484341507983318596258250496997472892878166500186237499800818168313932448891190115187146741398983112339268923717261071513331084166925366863237734288606007342258086550711870270738472734061132731481052610495370331010970660058679813628182130413676907586552125073362629885691900710393342345055870928069976858564199490982327562306574982668764835405374366245504188460533653171419873181346921650547308322501953537625159602122076816700401607437088903167045302334537292805743826654957633415038568564512438149860223340961093963283113078424095756681304252980071115326767735245421501845662131077429591878392629788826366863773214838363006313486540611192828516790525694348797226648451421290556406434009636366402880523983831092893539146683862145101197709420133311758126737479574702695048677205836774845681679506850295537199563855515480749085259887216221896643226946155836099614994344825099172318155772413380447355527236483676558641848701385336366377556503760785664341203278910937413619675285313795001187577068690432139461244716480329881284416670318880997324878644802762192070089685304412482044407629354670704075152423228738752717039584214388588946078955489785837674515247170919334079324625996024055726348223982932384620509611853153250503730648027240627097930611338959156143456684897403453015129398256683112183262974470505569329373484744619936283728127593596187005413899343534495371136462604775160862372180416838335556503324201989777958512671063349946595415830135705495609076775863383921314543491244875356592409558222921258311386122777861276660284282537520945535466995211477127388906076418277259439163293720799665742021250513187276080775072516584957936968829835958609927070502673547686583701340393401239462704790212694742402897505267667016695152510702663327282166958287650857763487346988504992992055096820260540736206174792330398218346497130383908611431914549527820280084908861266168708609356923138042688995756544432938599965704764254399548940790759319919281307361695754451964487026915755560419689491141903310754035756882204068427481371117086537122898523995614509050987490824083060990527243025497672306914308924116463057181786847175658129483335838077403347391833430041484606568636568115100827498372345945063691990916498540037277514630207465464583624725503526970253098368966529279489193209913094598299837975720495658015338958361692203680452792358330518047030326027538541955874011823425350737179895905090725412351284289997872081993629556828854553837596348669422873107950591765848374723255430708787170547459757134009675621998512967498901508726063437629585914041233670741666741565419001463754841295374205781729298188556939684245291560994048321252295284831524794154796550168764831087715794487869753791065085654941088316355868211284611970071414306097376921856396096486781924757213765651328027998953180078479083556583581908448601060632754661528318577802763618170184716427528904392573301549641962305938283887051593286699673973163281453418584959413405380420151884788518926773246635922667464148675808069866840533363461905681686107525994023237680795472525013532219431489611151830544786649237502479032075091186576201371511277995120225955818318281488902633406677734985672303697017191495199532776639957088295197218438149394919821001512174024626071240215123447347190559172376477742208742521414885420384406235222956772440892162713742116175998286148844136638694244496581135722272277340227829914504190688586382725463681902707921232624948291599567036644802515672389387975336737682736605497046352437916797121185173179331582602716674772091251393871246002098802627040419197986626760948648832757211298033422435602002765305425279467280188439172208917401977756071030213749902871473027728345167949226322588630199358081193251149389198622380299684057924196810852900444942845878237177600104705961772446543560374937605788173324124192831605793658890654719961493391453788959047743142843066511707940185085231521287122838345590789201039939813290292611095648739746371118016135602670666789821018316196178168723816626686457684284515406318068383169692299204759860432178478826378724259428748367657170328366565796571262902695089455320934581511361585813791285480339851970448802926632192337072895064523857567294820145817090535679466916366090546263671872014366245713201827646474674976740849185274373342255563403408565096285956710428906048951471809835667285415044131308615829321120366477265955553740129574101986826961488940899562251328865119508593993905180277573109791751729135950897040448239033685057879170057884442131855926264279000126094176678791433639208667433867570019792732278709613950832314306703817827556276573955457711942934315586695661182037947491149479037011099533911262748966721443618455876778093642094217432449419208732381680154794730112043627815018019468406241244002992556704044407146753814798345779459018102967423178170095054694185350412782545385378482174912288787696297044326173644570979033785828434316472708599525064143642222323690554784408989484616398536787292813169636597581605481155455803413613783875581646808018181475642770875281004199605033021787480101976738925859503836476331455620845703316435525211909606382991796395060744402515172859252128238656240671471150375477366982841094424808914696974290602321399420237645139229437439862976496386955540594335192033931013133813115116842811479862221364817082485013589451741731968977740106854156690720296048975115808852681863555224852104055341028506321636419015096199844087024368351878491415625099913055211673722994470490533516786224226594307871575892560424810569698635931563590501313953769800682825175747101413200613999434897215980106689283362770621464775324416358473667342539796571459727152315975428945067042762612526332148844795170310265732354105319475299992665097088038122611261175308084726884069292736505059346725593667755404972535485324559485744246057669176896071307897712448598356972870645350887535558262191826451820339368791810177003788356571662011036770847515819946084963227378688974795283619208206105539436500605548282850972321061295377287356528965658934165628489144199319368600560001289614867804569309993024946890887797188096590444510079061901988318474207331945910609080465858144338745732626819946106371290503175141227969783869924724693451793597778545216535606086293981667869031065679129311077425339785946750567615098027627404816538496046109060817216066836787336921984797564853188031924185390210109523885126793797696210869203760254865710797475206144020662979368065378448764404871870222276416645739361150188458790421283802965714953028616335175018239889177693669921586265495241237924316449415053235855630665554714440588044237002663680585667083353021838878719581050346077687734172732098783109515332083965738255886150825046318821326664384469375346704221460337611479787276411411228631007046810481006001924674448795892793038578682147468488112590581090395172989771838195363436934639417173609901617991007597543068585116878436811854735889354282191083795250297806650371980256009100049510621173428516475257509304754275513631315445429792838253395700059956437719279777533698561440589682766651256852680236653204907517298461966647604442973102621074248433511594420177942702278708757230772001923085484957614350105401545375401680585464288892439855088557026987591317110970193936942980758602869960949737080477264825341201678405415076208530313828720998120477509031878483098755641811297513785233888915569129669530788974895088597669284010501651904338269236415123286099694735239216543669663588467693920165866941733533381263482168186226134944148646845517350253291185640711012391353599739505993458432064621424027121310862154465756886315777654708149148251711342726846446102323828156838125071857506910212492819373002677479664776370709777683680859050474384018431746128648752324149290344717896932595295881876800380001702218530119138195789682146125728348275149976667157444022677085754999500263990381146434817082288008797471684636288220908610266535807874751413022286938362785737714251388064500704227005479932264098355963443933203370298691780580677352653651735574447920699212686848336625843046262733735088509075722349242897111715031987542443223761994227855558222167104370221937837263153959736169891324718821308867936607855264959380545106803250317360109362409044520249324128466074875307323224859373218352545574934181454113171265346673748245019605717932352405949944897904482500948969183220320251089765894985350525286227906732670515640310320050321877757367042972978583808813573515874693895682639359761102162578874560804349751745783959463396993530676693808022802492524930159599836115874579501824942988148892461497885642535290268789173689375387870477671074253712812131288046595509290853891536190511786912599371129000399928369961667289868129022199733647771365230923412151332559750395791112899508111868688208213016443258346685307228034387857774035559149300590727226221480079146837177494786458005020982482187162464804689224538470553813945293638334166704730125608962177370335410682672784780939683991729239373809537683593335355532712588540511487142429055798522549746075799604320072391312128892290529256123248910231614351461645312686164731211784235066823194708211849675299917019132289190364345420635305673091693067717902437794073424335442801717079545458287970538743003419888506672172184871770800557299202195916134052921704304205117884721426954115359451645267721967665016781354589045745812230328564204219425853690595262040909171296248681907988432833397448984037347726186234949532976874404737687138990573050864462018204123704826694819057492832079940986607299190470703436337622252759004922794902788609304495951072718532278083660604291354304023420726738343727681901631257488344576814909478208374011941094971112968947864080016547161226465441548659754330634385329524573618613021032986091976116760212704850253380720817768259803938080200547064291992690507659228069869648305035387346080412279233416509150393677195290283195100813475924505557323386764959438360533426210958820930811650961689705751968328063300096246355588405154610550458939206162299997308086961397481073601794576314937775467972214567291289445431297674741208975623035967148796176433885609281310529706668318440663195790074808388168790255772936300633922966909271765323368805961675879174226548267639327058284641322988236293547552508783275231923130847139897424367779972178806531949485868590433468720564176092814736889732089418728673848598368464699939856750258901945283126397492152622453955999980542500826281502860413101471364925110363376879685360132966978663978268593499074025509089154189870803793238714718554985174180694708655354993407877664807644532565913253799947738049236399457381748996041351446076404764871424652998271175917776140357572297206707067462165566724359863638145867703083295718935509429699688651639793118229230455244781733420727681820178922577804490549925690434394299493548598603692352827880126322411725857314863489870458720214615517424946254654859102215258576747686651726363395533512008406970974633712830215970707644135706757616423202676176055960029378113469673243804375073424952817560059159390997749034318877208793702279094132329939534694460715154110395869786024993364754433453500771605195122383526173633716612536584928873598357171110620517425740438602867595908556637861711083278407614030235701877011743452805811014987851377578948881438247727636702149695235940382308860352836891969731547946541389487213597176614953883862605159005360161724595308130128002096928267817097852120685442980239037694122906825639527897032837826203602109079776127351885333230056283082699246528548114887889436662008631229570634152415317216740359031247328516460299745644365196786096902889952916313630455254026227660404469959197165422110358815238182692840334285159780109658451050111314823647705007117618856438576671047164075718890741721399515995722907082170550702175112013245612296312294085349890863094817334427542851428381585980721245617528779356145981070829827305179675245978999997314866516780042862140054373877983106431300418061021213620816140673043812066964098314849077484450546485696347499746981560030911912191271552193452421037992690179840881474814106803673188884734956705497072412945615605230138244188832855986138823736410911220593020694882435013378792213297943537507231286289962570035335486143195028471361676280957200959967716566249677470389839732990242837420825419485773896021278541677989162604927852893810122870120388711462672229221612520742079589914221613283615728568666916280243107330271884022798844528237044545106732349603322916455511519514487990725495245451767568513384390674174054757177514577845739772202868717082144140561886303855488058337060388969689246944836913958476878736284206180304529290569950801207307637572962891402392395414838330752649992972835659809613579513526306283198200559920141845341132743748962884007603083724665197749881537722810668083482655803983061872286541552879427531788811096126667278596322697382047226458393434339689509535785048469197435268072133743014580221730828236814629941020213466299579165920895690035947555766735021066067918922937262430487936696163007353825633946538569627823168054894894595186279111376005616460105670264778485146604887966309684057752943836184662609211372087353396313519852710889253519085610254483716954993560002044440015669566507520915965987727098310303930177734020321419732675677483870505940924352088428657170650860171846691078602066321157489870938504688499394050950256239994519267469306207588191943619347846506261017911316237686225669897889616645547929063849897584706259264291254004623066889548074479842940659379795111976622554509284731068200630932939952591028409578693935069152952512150884835985642930269530465982885137210755487742410372304323953795947546710905377539612701642072310686111828507024346130726646940167532580013869238026454517290222223165462579356577763668403059709757743386230249131028667450313411652766334225304567673738708050932836299222892024659370300312978315093135147110570181366712763960623664742329550687016025714279844547784232573334931336913777585732488639802163125253708940148647236961876437719232748019341493002978594555498387616689110436943724442222539115315696213876251858620781163776332722944556374412434873344315673513492135378695532010336840890228492564089117006156293774353124330120310803239413143522246525922681129790898080606567875485841212060482665678878109988873387645154767911029904821963878511062821192468144022580212376619233946439607040836015973997697045725955209615723081226883596865795044532615486742419005265552961263353319219297813222693460029444247536798966628741103076166896189678204652603811800289798198101349693976739600946748804593117983415162944051188604541692358278312539140794130778735817945366062398107917343913521694717707118315012278439754702179006251255991128822911062764744346551620320771967915326437065841595612586948366549275477896742574350101227022932070571738900271423381973501548687542679753492370913851991659775552397852647023049846511686837534596016251085335624892747012785134859135902273997914354341754256206320416041935752147986698432602265242214569710703976596145711422952989995031217828633521823948505949728527942324591905963380283135955949810386297654198881233885714156748990510053292194477799124729894718129296676821067397555217330112656510856080011179779810596979360326968351294831205117076411215603718028821152777483370500963127278543643307134875218810286660053850918555459687544949305636822809305936961961476743356791372598219071123503918722199332746894214709803931386096946585017984533099174553033412737258089161553403068905207232719761320482330640711934508585216359094793372024038239162155077222783741274901171690628376614853102911951793114290821450549320445600843619531077670491181942931767237680023267358416767756708704616109722391177672209385550782347836374233772565849928354926816959754121781265360102321508989221295856990223536814107628052527875254175162347311966577585618820098145819500683166938704866002209540613906636240062786035301302601100407854764341567501458628977989245913743145273069549090467799306817352932176458338024505365790961734682837632830266535249519609839173474952413502050792558732225624009552626563801783127819464950142068837181402403576407663339169695201263501117764214833201011839483717362946102343549062700862901377933062585684352962173486570201892434236456348702544493831451507007503594229442252532959363831451145736102477464104321946539624654794238291338393104839906577137798295792153314988563366155959657892953019414568554837589220324008711063985681035056061740227070127726708567266694766414877451979409542056817860556508269661630492640585410530051800503040686385382834560469853048603255968728586773505434208341575698866605447166146491881106024389916910529357768399103267251052151292344763238603241062109687710225492036302538288276381541770589989295327044985610103666999299717854461748321444633707870329519163854796970509827638988437711182814216077948096574447819637373331566244036839533045628089982389751256858215320863314383125613441421533629630174821405631573986283495793239385609202404354437463682834299113641605233157302906516116394841239560755898068063120120945741284199603027986527569527352410559208571766909873296686965061202240440361617988450431473885584739604510593852055197086184575353454316532915107299999296491122804777307552968313599018171715456373005589315279748002895459701427767006197352697599235296031841669640752050336625597877599286370229067016970802177954758527762151913173027447488706335847910852770821392865258461638067982264463305673016698754482858770210273936439501898288662279370447416074032946847711655710521134989313459412951846169226916829755065308356271137402150599842798514896130781426492314264422432837753895516516170724105375134782140753794714208045272071198600636177766827538082311842434810487651376344391460181446056293624777846423990667993714747532404409692942957320065996603284550688410292118973841269102992468095976711481921615858872795671678916977915263138662864862908798529621651712360558683001633695207088537365898612763420748626201132200499835356123539232686397163980759422276458145260847740167176578935457003202243297562512718096570669808006695702297476126107585197629604279527598893310438479945857440727539684425893942310035871593747035734864264322456809394541695313272542396172826237953956404315877400035999048403114704748376155269337727665861554771069935562064045886785856089886585386959141262856216047049986341888283674115764014847267705714173954553690878712731570674303661071971153043924368993381872444310658231770707931580211433977947425049644714125742176760935100268208708935853248354655555846537056533129489586516167910697023382014140336132226399998945117770116996507300489768469132390580383005036715592001794198463797611306863074821854763652357737060789482119627509690284016550614988258110998495816444701049516951634353924738139282248969491539937485235248592778183621579829367779824967126386733868396167918789803325794875133176176695046888945132516364416668706647838441889357754357451740273937095845999858118417522764512574975045515659556935711724515746427977879772263373967460661372278957135415686586910277828459584722897265882677248905932281554846168844738890022771419789522776977217301172310384063893185647975337904400369483304211599549828156521975299112773049307613275588487287933042519910375359417355590408796500016273034690789132953945190126990728056587367598740108649814725153276701164225089379475050846732122739006363397142998083236230381158159645813694681455396917032940867431733134358998296542251074628651459587073690654597583143841284379641789504096931465116899571637677177457638066597106108861671130517201941863619659726826008818839748274103843608754973209394964035357281853611145599565859337708618486384979529184314909929406958116367907667189484884874825902424484545906887567275401007551479325871678631754195764370668636479529569879558956476308658608574059026258916868542808578207312768605420764186381817604409733723362933865872372985677652378544411232903212335023502309304805843891165932841648631194587984419197141735847725455640017958978556998490397573440081422872339932038863768225357268084260046348402458926845118141750231155949645384955221013433426626613685790016072633639734175934167506104973808529004642112715102063666005426290037973025805508745274129301918273402022124627361117333425378673559823692407674974963874117286000261024693046801802435768127075280706701526365065499046894324155366233978994785680418244584375237746580330653656091671087112738243781547954228058768087627569403781236619174135903163138403059045671528493011156205784273695761165852652729410341771570742846491238788859026517890912499536617058936220202163171192350209169809204121241697177470293218692720017224809458348039292370099618576045546321043050672116432216254565721243407288888352530247532721084894802640762278332236908531337504154078501614053247104059495385267674102238257536518961558658968541296878804224975808970658850292743125700392988085245364236736243851320937376273439498183815771564246108845177808639732051367729895659625216565777480401180085426116707223632109352982269915124290782311562766137979701953716746371795973858878294731246821055782306319884603741020192751974780093535121454606429671973726710110991215561572689784540159129259542085751687905672660184119196080159014690162129786440707494852044634145280132345364309289086049176637299378344417359631385122763224977582215941579858224803100453274188081893555779255933424285319752529215481021178987073313571113614650132061202822644294305703321372636378057517218364931992493580773876374212065326592598687772755205250392980257703788717047261567664881190938145484025431854399579680898552761138516299252972461980831987529206053392328614041989813347412936221615024754741401630248054817768336132456010216178438428898807282454604660083614951597895610349370819961969784311774791317310256091352982414570494658214473127138882070174513793774134813528074672501823273731530100923135343581398827061810045388532182272720766685592284868978179541154241752251291334234940686072719948578186573741599671688453498725566836680354356450806051671384310536786403782710304792458158395807622969414440245832732404860460932183316798509244972139946599889593834038921637517012607343139434979691831387285976432004440140534189811472951152767330328064451621493518072726088648775804993602766535757479949358602322786143010722054217951840118860957097227360980678180811938679369195765345024199520372661326811609016955340980829357109305856119294184219669395539526942305675090005877707452048187134860006980943754688972893615729085720895646956947660616933566225651909486587205810682654273488483635548962470849401319168008758388074432524936121222759348826622625653356376597905100669783825788461028251761861326324069590532092805264898156480696619410511309244129736393299678805937212924152154410004207229493148156078119782897121823852405253695121377706907847715444897425850015786174939448778048946688782489002742914316602479319694803667538798618639362298320235682024516740842252796827607657049346557555400498892599011142811841000103659890419601904092681776135379346042116677044658252281125017525420864081041574168692032290808628755774759293064064266010129740194336349857480900769542822235413524721573949377237714040965360364078082268492886425929448405792727059978912856358631087258097608117687743970058786054248276370593352329368089841878251653369214883431752294772909683183012270729507553000613063886717842426857502211984712163038034347767482751666489721511707688676976076029021046622890146525746126747435285316546889890228208880593343507745584764066207306587912228879124180380528194019710309073362356708164101323916162744982240069162659407100092459224051105523403421515546166855353258775910849007004874325522552752890661417352364345275031318421579508787383427690421893361242979733874651095535219190202438427130070714824612896095716405204004484209654575236906253293312034119672424145796505902658775590422647974431663658737896051848734532503388095639569118500475781128964456980490309148033779082282822517345817191712321522161429483320225841631523220379374102741837962981190336558542257938765774921252916411293447995365447380983892112229670091877861084208035342504575062358073437747821802878849334505712595267674166735580256183782464647415841958387982383911215675023035078376197867228355492164674905957861082769730382139147987728942525232352356453674930675717422971048226456291601094241336314921564945466589119784972608071559715865681526064723954406975562184288684909511618461459816395679105210250249623404101341403587731685035784199994046437630651891359856310484319352915838293052702924761371656666448310558909941721724763093180339246770129738379152639467627670007025667046526240563308511199627256985547518448966407430431263708097815195543762805268782893567898542855162835653755812083175021526387875933971282354753259697324877354771757323807404647373550759683346379098870832499054541660750127303869221244581976662347309098002025213829927685824257888267120208083932441481341441420342881794519915175976670651567600236023800104832080058922217051992810128542124210365446397144129340630023118655329080634341046825996077239390803238705376564975932650855407268950740387584924970441862322646172128222800041093006112178763007184309723094521972513909775246831091501075170268109891132095845983762948888531802419003213641593199767808296007619771443927659987288981511178769166620250334999209197645789532969357782334774538452139715653918311988597479837936328919096484266375259772883478885121660880716069232572100009778194213000189376309806721018111974441306329407376697754119937274892866307436148074650577683389157902456968845500670816371831667880293776623007044276711798102122639674458633691840438127055082381295630974343265103564172815446023770955452613412957658766761511756944091187042017699818629060674247233078556212998519918085735254907651796419590976159733409188494043949338735232938472855346930134818988053302722770810362153187301094197570585205415783034567535880820504326121456943470300938016262137868045401914154963017670712576043612192716736880121099886275644908024258035622067786753146197660946906229294503891420998184783751656785717547251437876637243806459702791518510798485807078457797826643819468300985966841050379667730820129693032539912947311988714389924973803914335230818076900074156622933015230378408983133011558602351961948177606838552014320454760665804762231837155705133832524133728508548380144683843590359580114429271345956805918848348656005607245661280269313810497671539564938925055548984751115681407057230414353104167223588623555383503945002180525310294040336457483779879554228965902774375327532096845502085325247652190296626099665939502436272329382532087570800223576631241590434908370617433926862441800751137083913661541745982569755424913219401629990612111783549110784698548304513387730493237237274685641929519926875803899525316541844570558399485334474817146222509873197187616976627209338569909625439056064975789187520504323858054691100065176369071938317742864093866886566052674690194229367202878969716193857416943268110134310936550116137302558568957853519021793445814346378899716890958009685231921366041270092104667527818570461596247371029208848557483860118346559593784358210927853517075254935818782339345980088179833010030244474165252126209949827281478246619684131709136549542160797966851757383046497351927277224671357336634732960478926464470793630167739940056966919401409543283228259635181757476474822208862645588663271687423812119321964260496371263751751977498329950146821970947662956335105371911200438082039211730777096620188169033666032590714799773882302570690603431056862142135532226881765339129272065770690044808444780645416132681974091692110037155659944874830234650310770616584549420957910554842180627483242165253850983609170597242625107531931234003495221289479345894980130445673439100240635183403033405287331423312761629501117739612988465296106750948840316094211928518805944397002479175925167736291027920153896479543743393431494443125558694119265657199524454453326353130155060306145036485701075839579504015724558398241181339856081170789831502770731547424638370144720568219695383817277193062857751518210600832660349914008984705877604236634910102671033904628209660190042237253451988236453618147731964611360856072055174255310573379654206068106198317274774364480581725398997693723710908722026157323354338786117854225193988605175302783290531526687588482736579125383267403165660718784218611233619688114834204684870996036798478756618841418700017805035671166824044393317041391881291938644690138591389152927741859343821897065158344073924761165120080317209638917617399993957895282643069686002769020951755243398382451081805935202965486581629792463302421911218108542468366288144289409209052004103236123681600453031486153830724477766717387847787503729643650681534350317408554233787057763183261349582792247226024112438927553984058339864732668385794481585379865427844290842457588466850092751547196075950002077580859629095316088145457004148739251820692473491670345513031867817856426819950121316132316421675539186188547850781709299978916821231942444659779579092938685011600728098913613849131731304334593632445204888941446664648855954684884624737191574182960691357116817929468597747603805505349150409237134379506130393230627476134496696170701422165365954503997319524925836517558762195471540257614326699811649487730936970426529907268038563840097429280556161786639376534828546679553407509925248906960461526051605766167132171312483751224157739055626026630429743500016194496864920769619828085684700893103135694903831518590160625173610065592054372074301153143158027783940592724990802425661661588704250529971245775157460244397098218950671224934810986853167670020857166424839136849752278198272168990763468377698300606192340425137970831557460239261114380039588364587175523898842631945489523497857657717944754937472514882461391064988030203590360353852285610503933048580292641352812971026850953270585072052139895405236908383563788457416077645406524652973501883225505572992359943492915925230122428296110829937254086839146438024621196545040854508295729999214177914813606199696449323875452471171290557754042175158119167062058762034555777086825752827243500644269788844698070215482356427372430309145560307263651305793383528835711914650222759849252014331765543923624177285748855459169928899289782034266058857814263095293058607827726767003390013071149122442255064158142519917651650389306262526008467735898017218548054442557503576283913811627282034045388222153615330012563214748416893117487338705721321514943099660425386669460576613098254775829758025860656951271390007712153602834631135306426080435035783022046510383615390525244586549972657537416081743287953453459828077006321597762720910951417271726260608793534861588525584903662703628691238779148258158254048496929110664819383364433033279039768944035172140307335740979994984442066787988958992943742434973414604281097075965002119759194621516026125502964098698437366587597343873205514674758810569104835982063241763004485625329566790293791098230934070805981122215167175061007183017052149458383639156556383308175887038372809968817911336363732347833354647656913447551782349245414723883165748198101368735390823766772476976904618216859216995287166994963909253716211138193328437839991441018648500787165875303511291234134937055609684088999998487989258623498302180190515071328735969604674662168806606551260783055547150432576984371682743279864150252382409813546138601950748520553811520239841342587657360373307776656268834471506486717260868295711195373599189462537401948396987355280747640126384715189052517931308053725184442032802665922768874243127255509644142150982416325322967686788491262091521744203795971706760563295891778817882190305392015420393363655050162927655862966239638318083958139693668877371691715443443562577064273858025558376821543260678231084021574581204916343033058583454260916905787932705926081677421113198593713404575254010871385903907756549655216992953823140955054659440216705955901211637327386843710335364614591503632031602775488731129800389399463718013933582324236373760470401935031889360571795212101888639963645458242831131711002229851775730810585400666529773010797155163228791990505723971004658601884032286708053365121661760680431247834203377016882058947488006883504015706919818038863989918819562521306016880915549535221488476838884766344325230015884563654444367052129429232991578614074488311998647635678604267430717454531408521471536237212372422222760227441081171209364393445006778933965981950115827677930226503978086865503174816012665039118672281495970241990801332064425074360072037274082074855212533468762902274490635842606295389260535238520155958756843590917311041912348837615520772817115710112771825896623271256389658666566742446423661012377181989817044081827879422685572509763310260840545236575029761336372179087259649478876491018481893886426475019610867014947795124999919168803279673997223911950634180824691274015653053779334985951399748417950532444650025740896046705878150380737248510716103744861051725749633470075886817231514385203261251508152480256049414342206476584220013977044434815104006362912175129869945678413666963330191724795662746829006943810769720082195162577008533257655808382402527096577632748515874297352465041787010934408198099137835697648530689531365218440716607557503685526598329678566144277168036300035814357421980973252342208053153960075733211262787071640260014744395021571185308488895125279335220245995690143756600588592182382406763389299182761635631080665543020655171030087621650917728305040863946336663233385739791363234569187638041039265014675777892682744522919165022062950444971620638913256008879937950313819252707180963572412033790430950583056621704186414147284301086999167649879637290814755383348379144886835572586860726162529374520023531541038489625618374936880190509544756142315278219835369907947297556359172684334195448108254101557691302972226508331608753698082371700299806404348380520385564355016933897800776035185160386712325854868413706960325505723016509838423357137975501186812531374859400559796195003004760962349742081223888283590440846105291975320516542828993469492088004001376302868925429471480566111641644705880897572832031431390653309577931078114221402912097282286533939634880717778386158126162304997152383527207016603194347969772364890995803154382137901509386106835774072632401232816272981337653423106737687426301228233494445916253281961075181299949730649774541798902896240259956668003278846230117172066568650025653408507453432751538102508807755168121376758219553480594038786744034967574278563980857263849825454647592020340344079554786577355063810347163767059667729141825232580594834060391286169471189674048707573521544722234908558292801796830558840063499637956316715291782694607637664415102582944289424071212988939085474347385976165219295050045898874247873797025254081876360110487794435551798215757212168737511892574476695424802671396531284305269435925873310350546561445490685632972385637965177757371999352145478204510995031188960239520453076023632233563471263431734428747728613371607654333703486283790228845719953773746998305469624701454782819013629458973595559115600598090711032982801298838787038187737938453163506876915537630861759346153909230100913244116220643056341956901183507175924161355433776122769016270966820178972884325845395482112789171894513419649373958887467232515802444046046300834324929613053592078700162148915594797742968487255560771796517042310298873588612561184770149279070709988288010549549505207482191466831955593866665037538036969277806204934848197480688818207643215688068995627800573366416797669466405191773194922346367003603973614498547746943937705372575553478845337357635844307556788891795704552767457961617397096128716023568943411723740111283669325206174521881248931416174238640294920201024391822006640140506937808905603779939587594610282883025554373744491614986283265633244675885024445730598542972656952891928343759851411548808241320380628420526835039430238560156375738318109473568671024720011838463956350668822900970797096676049954919849555526845625475416416806864348922410963827775449170597589879983520290192519860923435696909882562420084125104221943906111222341520799437304824793907058239328894393899056052810353675694879580625547433783344501995395647644464326747269428242842576172712167080536474513939089133227517855806427500153294424159803704833928637268765137586235626296145089135226447589985387991783250259143788104207697725084081690738350093444740293149347436726001908464629662647446081884672423408634992139459619427733544099977800562767311232809356096786575352077769939451180548697812925078869118831577770356582089003761536630667211473209835353862749418550384972271761004635744988138577957541003540353036981212848858502380509184138803130571200830082919109819081534083972662763943672534100485107166127913997238419640007956584922777263137565208000023363992926124867120883158436780118716306731234250954425851277013545437192576101345796561663757324099826820575386257146968430328823576787470625555997646363868230325094298279934229982193213408284324077754359622770250698346310289370527344977391825904500511763367875642178617392453714188646616409924862417707003213888840658745577084544074075779271807904938777742284790217922782712640186217453772149509572882837211847030429639062845800156998342808024474871780500553395562271372074016346021336702692812246985559456102983552372384068938984255823899367544168849741838666362861069813770673411444822213004878167987974656638907737192251589073313021913270557101388213031457529442668163425955606320336743759138288745291115906735829754937121543810485478496944718322625721367124244583622612772949482877103155025842651683368826977687047783608641940693759269406288303322414887725314145897766942902967064134545999934786833457284076835027701424679763389473015319804570362751694998686214889918889679796013859075014612857808000773899823061857032655243876448188541798145335672894957858467880749395713000740900112689418492279905109300719195316766490315971998271923886813379736406806198900909571759015173500960801644049755122129191182643275934695576165788223785466398144837048830693443776957218982606658710980719643429191675328879825347475196342013100414342284274580502206354299028754072448078927778687383862079560107924053942575122240957975029635283708799648504791708329345374711406267874027659615910717812455349245518759255734916173654708964778147047782701028393608601319201906400742058293149516984454267719713048128686339133182846610393286379837239299106238554408564552185066121038746205068519908220658056056433027866108083284465774827522443778159765911269408096139984281874695227075299857961029837287038450908425037631551415844883319693383006843118634940360632155424647499131522183507731329430000589474196012874555494845668959839445452374520334162311496102645723789473809200676565201683883164627709724340199938499842663762822291974868217289170142774149398423061260413051517999609982950485005189550328908045398132551259469472865617476349297661953636213720800027228967538979499532955057210327949175466009498588726454820085657608687156463866777387530025737675222836427275761099612546141869572199946803587879288854490715066101363833004295414599265421381358683754697388947368553242711277239526238583849187807808807329812137503674455722888888980428546134149221828310214106866988346278924609860256838099881479364618181946078214676210362862029908950716948265333730588487204437423762435793064068568968281126020204792841324445915097394194547240671113237228386519973000175126635753472816674848022660984773397923196903662981598493581499566511383099699282305332836973698328542829348725396559524556031708910127167642747028579797429135961728562458548625573991985870165478845818472921495816539566833188096317141256283667529944906905027476318450584799057890728770832589817596564679415951722342106057387630553993697510755178020133973347571884659859103484069448725900133030431919735671329611438242168101683338628961095468462882926428292408662477102771377828786965302521191766635891201896097949417326294905839675047055886501002648099273542246819357704243747128315468492599540751741149033496922294466323919645796480614750657529993677828141586576600851931898888448668407556417467253817328749728708406728197204959522848670635845402666311991091083233576217157786690443645257026299268297272174797820779227773361248208997043191692456038315837643606800090180678119856981966184291156078648287923196957681831496452225857573247449517988492660932113933848396080269883322461201643359578283509410080025493781867343457889376835823634375808251171103590098026571872459319785139824702956293644687289558262015427639750482639712017511944694735120231306106924284247891912627347074193157825823136453917978721668093560826021281104453369608107788721304139392619693021982969066554670746088302694345433012920677657659939720882377692825837275336946147494319946235249985264102085823761204219222032669406622096181724183434628465342352030833816543950810493875056893785491263883412611572267743876688987980305730598616221531958470663314588490460180147353263186550573197093401470256067403358459197397957705496918379585736995442925451375503022023294693030949595390097933122240647891432215680939405649044233909003088580008404927870908975850333720104618643403882722731029502356798448008047560047319122904178732469520921485022483935774819703600320773662310171516713552066787268017783173801656768356815220900419734574929834305305419396066015914714790600796889018698644978685917143374391592629540001898570271575536959837568408804659926795019179673349610258575063862896796281115971870642783155875202450810866858717399799827886097412838795353968656056938132396314192846715110815951791078813446875178084636994705241050582606498686434880366410973415118221084221513172157770403672945701413666159985162608408193730514567533543754493639893890275437667531449062373190453402752231426448379755461335078274080307719606031851483493547939213539471833903950705610095198247956105278384573499207725407189987628305591832627069659977607439363373468382408511113702708252283487463080397970536543714170750687285147947257709139620941840713879008052661623531234208356922082963798108794353025115031333684339995304746200135791561954242827856516600976270481717537700053568639904889141129803983672263600874267537208958156665833360844259933433164773812732087136949035431670925437868601018566573650270916747497978801857591184379361472623787976036838677862181171930750004092866047057284291109193110393536328381639352777285266961776147532081448864188772391679602412618059164593512847495290750153022890622515414269797562838242204092788931412497126426721428117605539892393090386691641544683794663856980912840808239283190816203793985273686373975816017276394330676570427751338096583543910739368829903287592056430816248633668442183980567777707553202558810207449791642528905627169489790620305373236381772001403763347536466175914891641449767807768599324815274192381854821094682369155099003656687677305720472341799365372781873097744839103006350482288562029363985351538763306564151236107205708311964250404377581837489906996181139095029248168373017703524268771994842544150282117474599792575559472362939778028956439784165797484941961601111658022756162049656163590179750753252328703776211885170876977268611766442252380434391305852933972639611431807019089054217724130568245807081915404080447043598822577644294475837059670679434687710514023177472247525917748920279478525522105280641866427204049431954267250727003488640324740097197075549338371564743713251148789761660310861932124535456951137652947367739497720626311163239005704091853092814335132400918393258956383478067776190767547351169625208441492211188578081528352416224334507630233204608372627917962697072258533659156478041386816956499313413463361836615381491049289366971917895024180308842336101266341341299458925312818082484569529571163213690301201595503735908006953809691979862164001548461740875639259657860062558787923543864129650701846248942588328975956654599812148382172380412904480238934410696901477316698615679964837801532091680959501068111544010625993891372768907541003011456863136113181831010948342289729191829498405755614426233467260823834175985580693161984896700356934496953869907535815196256934986475381930956383853027340188356227489500011067223984706055040195997196751883882601868815005365704545466964747464938209621724765817020570272067503705481566700016864826798126563667434966011740715390140168499888418905283473787173876303532753738815263715921308242863313658748043108673203223267743124155978304070502718104099076398363282718200001564358801326090670296403549173417925522293192951350747177455624018092938865596454206606664421404061332106177262430705615609277500848133553894346538724400413875022778440520467025902359673560998369349751653536519878661936702903545991549202720334511401484218358209930802917739394814418566231724328622206339769501025469214858584773071808123774504155047808784914881608979091790184914474795353725960194983670363735801550205874841837794525368434773512018025737112069144951838074626153638317862333792295733868688396249280367351478180014573781911802434791812006053641060491704446092903440491654553275607306895257733706623146084817808681664213577305749220710798741222777006751146470445621814858510530254988805404183306424896816806109594101762717756283082831299962191538257624631802581108232582271240576538920742090890821151504000853697621205473176960107967279614913925061081644979312331064573888406477993059217915517264065690832670688717851921470710067367234413875378962942522714927489689749551892396698979666919354235444180882021176603079996578956998221250509506675438663062847928234809352800154975639206529493392088432537948341232903473189777181477867474524513176720178789408024512662536018047276356610195225407751148884494106385420562377903552266262005924880794708591170574221083037555789480897670269681352230474406131145453066014016954999875183200806102805261413567636657508504730424521976102070304318975094530458702508649533691684328198343900130264890486393136991656363196503551259738963616578336366882273916563549689214230921866944644077016521037349985429463216332248538796984855090580894396270059157057096382216295848070324569245262458272321604923299577329047320742236953284162571770722695217107555942497983306986031866036689585083991387563216917819400954345042880212060289887757228873047297996757215999168167259008232710824359752589014864883489759390998367755862612317714209580757933632627802385819637921108806061644918151358477049694915791754645501639598252277204730163061952593862454038823032860940636756174291924841905835056978755583189895505588329697554300954578597574971358175097722055282833362578134195319083336195620052249843323244599446859026299393176442217335406949969808287068416954688939273385645392458652338940151252519974032520916459456352846625167905707572076046032631054930863874578305299880070576984674862123728547260546077855579969300390272215839248823919638794225718112383148005680763706256400082740795042218929426244644626542967858537684121134289814211706837102792030060177654089806570977105681284334197387838436266110138057372226795474327641202931428557137676164295488739080473455777157285925079818387813087362660829690542536292272964821587585720489948348822357710384490938649934718040094783796454653781154634747890060097240935523816067936928364007478382922345155998980010992216791733375475356522490716480869253621208984006029504826233233567319206337484790391629444219181060992736342930521236670088273984987799704613341788128980772394062878260461113195344201001594124769645132085597100788308236864947705279288576749637920244993038452417878393042535272480181944541467605761757498227238702426945283905079478002547042486745817076169064809821300095366195839088929228356257405156180470032037696001007078947909718204614476174493783639951329837914162881406547724371889213504025347867631386608835701071453621850623863954228148981039466533000605844427192274350879624799267479777464142342393885337009927849443125498228666437365559663337643402452561556338243998606920672661379556469831302376350041032557272416355769988511822551621020505267457612430627358417016818817017870561085926092347901634069256020165636310420889168985656995303080652885978022202250891398544797238834574207181108426821236126698282546687269254735681677778821270291698198673463782251240775989561156231910788248277573150857103601476554263683135283401006480608280893061611489700375876588165741892052896309969055081268089178965391653328473500252758769856636435874793100792593652446515223272933710517878366876313822305665447529901893860676034760577008175711718912830500375350034082313149899434958100194388614372661549034811148073102705618533859821300759167907029445114133985215874783883236956264424906143826226567597369038575149999238705756673517942422718382390700631591521133837927187899916753333931095056873521423308396750681101045578077814220785754457493316619800318500992394345253898703522705034333603492675540829738957844165555433354708608330650021079030062984178857562620389136912931175500057536946208399666055531066765539623603402411541574773546373224643270801765109922818719696409349382629673020233277032954782100559576248999915161000129454779720288278848797551842691289676167373684843604826617341236161493309743895738432263866069835637358351245288928763758000697561014824179374337308408111041385809170735554517308224052394730533778354871148356957255282113763990952725596136243888131285272839084105292183492145913414658382490241323168189688158779824817223082324695315753848694589515956052777440589693102120771329809502512474564193495574144526258839107420430693843028183188695959147261246335429235588587324948584724141037468684630341548708239427743220262402955684462692870818477349618256237637661140324501610872475424264639142882923570990110503922406549759846048872002654906614639338276531495680402157384291026799233833610739898231591200034361503348794971190807538433105797582197326648070901249720354305273025154290159228627329455702508355319472975415293367909463359572461779976955730191630025781609006783735306739698391558851485412245832487136588370819659085377171750883481806990407770137083704132672103599852562357623360198429825783060780785691147764465251690821628582821620566934292797202382655588405459489229043947277382931650478322519960035453587728848000228258915475398482739774000810729982714602566922299586285797386268406899144125838260550550948875314160004098564447566869980256868224594342555830969010940338081363717732494510408188912029685240510686854682758809272453124648822154975976380500300639661681710154261463016385090598669327304146245637198445446724059000512917821140958190664512689500271097828582360736575499210279198988211375433791671759698489351389378393016456025522114967192949820388446252031708387148883893892452732856900243869377060329987209383825807397295288688876849234885101390925879842436205367807792584008965938199743557804996694719934382915801030296096473014212495814972289383552068443919338408274812417307403899477973521539958735410072752125556333848099981676322571611668232479606351954771381894505040854666398073105218825223124608580363663415744733621585653740929483768654308621480582045142308107459060872610416136191791480344130509151730993427640663149364687842142120277733569958700368189670368232964840488780317651512813750099193821034596667909049081114483327509500331169921990903520130132636290812372805214192809364108362884184704717490052875277858116117152121567183139311451175117005327581210212768477561447227065306666547489115781304937280730739666306764567898742427141941286743794014834395256890615619971776009157181006190928186241196289503339244926578919893758947877694925402584584552757996293711178676306344142243953317794298224705032529856060477304289563684694281122330401639277259300548206346832130525999884844223162690012047811558960574630981570578344587891061505722085605329633441797983450627995573270609501300835676701204942755715054227537676036339863499407069191823476787234480464349328547269574854376996663366861807299935081426713115045144566178647564508076812841268206863139803811750241434388731737827946819590278492143115724904024408979281745558471678322569939596611783144576728068239744097646748739792009738372630125717598622786058837904683102732787977615006047931602971182474626115954488538167646362393980298584687981719249989934872044072561081532007090520804051466665598218697762388788702083974220086657667014765115128575890672169906848881384039299166784139794989524066410768012021873375307072719927092734491817087270237489528176184489379050881638318498810943699071312805993232580403012912220783952033792349391640553589037519481946159778450545030537508498395477463583049417423973076508584961569716590085756081594407579009458745503854461214134873423066129941255136066100714985815240651468561664684390393394063785644067364347599284912540756809291080945663558604372292630546680953750184281754127745546608377956026489927972189651568821327705026112447786605226262345874872406162226991224746761201118107031977252115511649499996459060375115816434456381122440773349906695249473190196689938595557892751964367787880279344290255625919561486358778927626227427339131481351353413930981548401940208780031010975165571407958785638879746266173934387320867582973238374232870943332110232871346532759600433497711465650031574523896589796879248960888985952152949936571104993458774966466798796807343854868588971766794146950660445063383578663999103491045988981429612040329376911096952543506231677671518004774582119389835390877549785097046326185767096413095480049196722552496533395691036748519514302139634398548103195785394714490442050718596752273447403595156588616216750669821069145880863916641856746066374160352447853518381736591130970396325520174128015046167076871373597063525815603405262989049108885232996063821595889692892445835319825738139430595213562391892332798742455338219107670950797577415843112840080963811914531151878421027719955902569195363339073821178870235503046536747287123308252003573990457152550650733149063293019088138543781002958440727216361992735966196789627774530128802463631782181811766490676388019375777975048997856875733727494786082124832405272539639794108152536729832523461492757894771996122294966273291861957735157973826800020291438387299168474044434080234667595557981418228016686633447512651677849378703098436696254832337774182332007959597276472548691094055762997454889155560993896407248497091605299850122191403093719392325685968166132480131099514269785018989463806963762339276232318574782286567734381221476966701663578878320794793983849609091937592302848262043731547460037336179864759774101547440094271331475945681074637816117046179928850375935613942777872490331728641812541206410482681866535776113295312825362133442867542708093335819391932457716923023730428828332517179671987830602304666724659694198552001968804095860081691355127440419509318883884257631490568772960578616734597703715095584101285925432104967266845608286606121557822892351746850679314538211605502719966889065318865816989995799949143078289346971334769567448737439378935675754992038586379288266518545418634661434882201850112668200014444786494032470408120707327602810728418064566209215635755206440611687007506616154200364683453492303331152696215235559604229696840552063885368960893366695156829551679151575833891789314070850654904459329536437636158170083519819933680021038432477886384240081130635755895324557485027984885900309673355017189396070396671257441837542005252456394978831541014440165772849324501650710207597765722344771761225434027057619098980440189416005478219657697405300832863250075295702438062317892590507921469298844238021390355619617887533703574604613928767606375728429944467872353620012541033674970257233201454943433346214352650438475366549475676792565499731882964642316691172383324087586792464424493713010146343939086053532926570588067546705167837041483911372614508829546289042068172742623066043956112756664963205302132300075316472986957758754504672938468333883546061684843332401715794861784768082434446444008019631081846850152139965195376707861329884707530997809638587826100409765585652684724237271016875111667115013116495655941174682968666915487465192666031118829038278561397282466648997894939669083134823230624282713462205402732838943903037876579873399547630062160799904324662460815530008178961217880655615467928645281037419977987979871166199448226101317019833536913436188207396759584682506375021327073277583478133461639665996761033542212619065821081745930504121926065396696839223993906702034072829615231652408526907966186772882714559225059404815499240558182682154963207005512321076381598527174570413831929816794445280113564942902473665125178523790155794334007618617141120953832478026975458731673517097714296272450159755434256842465646708901194028341871369318221712823910956236588137353981528970416022297454445520195190575238300389222688834588543534728840184911768470345199818646423496785455005425309481435379508410274010937198550997474274036601901777516746474487766804040585658827113663531430741313961454073145888926303177786168908401764262442145745121622585751386905965663202217075880800907964954262981596295101696472894672741641149204883688570632437811757967660500200899741089834553781969110932598160976319443349632125590690650886175510018559329516266903842254883772914733445913472633238358104098965615470805710974164954299074739995084376600766806174163889986504868764962869348787661684593475194004084971549549189662391917218021803863902441760274651431011418223270429238222520414478397491599160415376114053455772156183685211092850940778127305942918961385542283784173879563932735623536992745902936324889411208528321125923146465657394664529779026081096785060636361628202297092395206011692963546553480751920446884150598613219473916896456983080682584654408583912817921209497632486497096286823991622471451805171289260909880649262226098775097338928283522241346442056478395983279030196731841163236590576679706661289211180993855660861645314682052282997340210774864920476429648191760694918095635253619444024302968609248400111548866858018683402323648886586811938395337685311014023913724750708071532806554861130159324390811894166453619190447244018251903303809238937477809413071204041478201394595381392841096122894447910758535768834476045741127474405941751555014352222943867733434000489373308280800043610669968466272885129802851577146041212774026723062647352842467519219398988193080572303005450940258478244738104699073361646041535971541583506838705029241490538661257761004885180762348289761308022070997978810818230660185977002777796652580751785606324816276812334437320991845355116819867431989682246839948964709095756080096979262662876929290179236170685020087681854799789893406253110850146145844875392382197942311086296358369985421441995364765163472501403864499102869271455232006600168666685649311636440443067252920291971536192180852193570212240303730605036600455350566142973036347184570611272987714168201870190112072375114656397460563250390702161615685205595017512397721159968604551767247042987364540568592560631785100188181458888424833799469400102527280975524312734136881371543335447628926551315783469816310161071312657971149266214036646133874676993258197092055612831109904898734155975712517096658930020203314202121245944408924273620640451854749329805514725270944453003764974094624083853773047252575890129052347882115103563180847786188949544966442073338254579434176582324199112293348449725190470848977115120199066772624085307228060266227866268898745278489824759896192491352340721958484802623385364442532917823193486032064977864118233248699223701144393317727752909906943329194149966018793465702593299844680708735920135715431869637557169938104469728790312301054043987279016339920239683341677791916421403749912842651328101566635378471865747117188151775504069665956027332904615699221462715319365278996227274599433768205810324386395630502881972745777474050991008459472183523145400238749241801652930475941740215774986734377050548097090729358114329869087335410832222833563154995752948482372925096336880616714718092353870404118617101516740035988449699334871922340516478247314828567847621543893641042582655209574509042814449874039237684507354058995846908713327514854590616569742156629294893163313112039697775064852025935092821737867328439339652376999336096846475462026672850919951071397862534610628232085840894644715827188698156772276296607806792541329821144623101965581020024550327332792095858850893753160165641720312473328926766688945395096346987229111059069706727607093414587012200389607396429060205136016010782395875388162829062013644852147420831052507759269980228845285362486059947630472982677941554172872746663801409503420566410780607517115086950841893935799592185775069366330660946330290865754625916006050615511207141437280726432273057249290373929913660656220828052875626414023067845985867322299384775651727622276966942513736312335953812647919126032434580215657427764203110063754260315357133274308732064124334220472951629656297150202249387776530991732768564717841111690540133193928922965122645546329211955925043590329077540957843928362299169117866458953169764351555081928806735506216907114325105684235714712997827128309326874275063541164626266046618788755521343954410784832804950310849831116003583793768140851707700593451262303132914382301046616197603810759370697992965901070321940718109000694242655616128476440424760165080878320636876849576155747336951731651542285844700069911135919254520849160866230469360732020821038507836635391262383554899687327321582207047907039249968082795063816472091988809128172402941410978991731536172554220981082332335458815764996215182537908775549929242317285010096352717955515290870862763802036390527281933122905210005462703564823725113423942345645843596501573740046697699827004861786108043910343513155681885467503428265168058943076983228626272553087888531325598923832021330976333171140081789338995467374678332482684116953986562030253186220383873024926597481140127677217731075261646645187488324238930290583197100290307709560810917297284485934600408346316794861460018861986712993709729089178068770944466855799371028831434069652452454743098847181802288014075637628076156070657348171507227199988499505747996187690711225133521176100414696059021231198111507771745200977727075428581858612073076215953004514964440935412388318112422873693522314043643683933271754711633935029320662839162916283701623518551211115788375616746350363221587687052702931992775442555218906001649093472108534252981925811109202112721937193638407958231529387015064756919798342318897413607978728987688323216663293216671248977506092233607958504979213165608926521199737716484476973356323167023603978694859836612149793063843008118974761328700526416807783397359852940235332888967573602406909927566764956929173684386571292963932594120582749261730455069583069896959041337458477068321116405349646076464561090878502459910558084329791454974277478625136390865803583407421810270536523787414239984648669938887458333448425999324427783946101770594582609024521908846347583683892557655323195473425385506445255454198378481273977171240634390683247614967113657634502806932486375951878199602987070874104507429697123594544174594613000719990490650632736933730905964991351834200090461342537292540235958825484973667786600931685466686681330604949379003668175525187539688204187322340266911197374455644487852371187680848772860836570618344659163360423896280803559672412353400468037912338588289187370499905779471076206285248624519995291436286302233793001009281890705211056156330027970009947987120439828615985948823159094198713624590745373171246600029570162516966591420893801544503374556244422164059203909794183837535859155118683094662007612726982822526442218810483180699121706385894233586382968409084876511368680014381411943898413391207384446041123306166349631549806912826431258671998329031696267793900018640284302570717142818452699767841790022617603029884989436692258792553039390407176935288930487873159179629508370398691629820833089136611510684404159940566924425509930763925257254040519701845489297822111312718390121334022739107322755934280769581063982932461543592122709748616776101251790504517045252210427831052430057870639533049862820157719582552990210087048679371009101507474503595293815219805038597331871519788976735173066943595234638959636034699019685860802435269109179165579281064241035807750003093800350245632226421389630083973704709303576322358421278132816930830263535495254314567476934220863208438818360749864381999488888005805892193979799180256160271470613753801819418978899805967237526480893464460637975713939065426914143578877976777136299386212820183298215931213636522767604807463589913384496329951926518458403206935695380856237806981851665452786816375625714208007427584655602164898298001591785149169099101853918769151514522317448572251839881489528640076011594215375874800166862860600859961652142566767075018662279611312560962507705669610940677154251982180779049475770888077869489259385332210897230028444682150687208197150165826207354851332310313012117621885874633139355625465056880083518975642609048212773111791446725269132801583390932129396456554255639875173270425314064337151899161738694019844470015894388509440878452452985591688339248654061961755996220364745082970747904536346422349419552005542861484640362832909019159812332114813625902996032114612057858553020002111535885353607192948134339807774908439872738585290980057439512670360520559957638120223438725623814971672366255380234361950649160863456044536664147051837473364877090216630338866595303403416311804378752029014510788033779840623141970996864431036688426756170519975009323345251417509727037637924406520707524006784337063231284258897119060507181448723272808887643283609659121845736906632347272485258498749365165953902079678192347673551766001722877187353189269228954306948962053644800087168249272312604558705913860803414921842182944748948302011586771198414651518267537311232431311917835183688413811094372800223593156719126098486180015533799819039093580989546445652517693929359948613408660030792864962665869258455851193547464642296437149094335163175365324800466756732282095045867795115292019774909033802342989053615626576124515655511472875514852599105195465237957943519463388428123638734127303843289403322690526484595955894224337321403119910334614059548681284510612123799735443412380282446168004377577222418261266892267507143833712312916248263417327383328720036458381265472587297572043040189476211718735757820124362537823360578369680484976177154606984359412319639310469166142321141095706630099487201825210619073148800606115580345082613945932764975340746557680523228146081837759725055931085774593420949730824132870349459418419667524969514238823155215925458177552424120228396194795737042403711346666991119491421794417343740125877710052672325290191570872528965206719193205139096683541629349206140824890039775680434454921881135947848999443397776281574257835368737668111069361344069082614855633515597105691012229927844330477443496850022307972137262436520199696972678101320457710076795710170694131827331630568099743940757351145883547019202408754875131489587543083090007351747102289338661584026518663599142452081262999160886681090574859079772894685007473644991093083888317964046636847389410039327670593098206643920133072021903254051299999722669617308862739939791082681072504983135578327689499954917248120196758216499693784144090783053577788687775331659226564708009319497253598469682429661502500353414220741522931894621038284777000381494811671892650037532174690005458725211148580507786413869448931056948852916275151281637658353807557710705574229949542786326758871001658346172730574000097414050966984839812028110953144656420012509303550255187809006214181155947606301384613470902088130987256012050674591038410352825812751970904256580116070222993313398364244682702929736829871293300524407185884732002082718773740745625523729315811500533474382173687130840129302830887962057392181523521719031098217182293599579858105316829425757039870694645476990463236602671983711958972479592890944718349067604435465570556942752426298863654389852235163425719136374330297191720560342675884069109854840195442930705291862902548455134742228487068385019364876250019073231633748989797670269397879821356957170989673751635408573669695970113767024024803077853744867027555705783675297556265372951366358627167183586059404398170863963280997792029828070664925372731763696784237020640688596621746409953833868564486663605393353650501811733066419228673980615085878423086547432066650021639670934751595103802361007480759658060282664990593007819598409134436882115947576848203076714727693938466530890443468616192287759614618909358166510898082073022154089379210787160738917656944413649495432753426996048233913219489552955736088515837623665526865555858964057397923715867522844729953527888081640141390025274877812892046040274114217424878871539254432889306444132500190332007427534023053195617100022677951142556984097872710321229023917868582781742509658619819330297298698397677717960747283192232003825039108637411412953326163229296329196207497311521886942893170799088255253718942164829029759887071067018148978377016360271185715374564654813955877293879133285463433303821437887949718112364670026999696417713548539108548692483798707362627156223416242662901705894632546218658510446625510437808177772254969125060987507799937522009427050690628042417639020434684051361515229688725005564641313549167368257573600769167415636543162537767326608742238556434606068169425665774346655125881162407425203404493599926456907078030042416474769889770408739062578169874203982904408113455341824526526049398875296202492152506706396942731709521821617596985107084632272688272355735966454268262664018995285581480505197461158342506872641710261805438834815207215385926448571547067655767536707382589028211429342683864190629399649529435954333281982860579670421931136179404840655432767188826907473650967838981758864843460730138202125219592376376626468258487303193653770251922844202092052211606666671120919675400575163668562170050205829717875314829361412181729067016987668841298961642408267496419985931920441588819457792482901667198097516811723828841501494175393741322241933295450653910047595188482954280228150677969752612191470815007729147301522121898397784404125283200072328480564945906946741429470873386461216823561182177387399514183080521246453840392296924473515741617313559242139379173125021724197240378443764421438877737575931957343110074757077618469127364762919873383009783891778558420775236416338370551404750821748683978750537985483595082493529727356878867641245990415115183028199538630080061186367675799761290503115524820526758967889209726129660751366871387465420214008497928928764934757240835769542813972004288187982786040305567952027480014992509279223648626297232580864017028540323457530060357159411124729234102977960477914449634412208965722351490671051476080368129879836130598710682388463550514674185040483837056078343987060905665620477828668869905404910693475687654206968121676963656394813633786391447063489539529385890791279075338193488037887644853231236589141991342971083551195271979576893124147240255439477067810439693673330896674115426983344662906804029221199459969798742373382325016481263150450008194755825087103777564217505903505819551458507310873982158371855745266591911233633845917622659562551488991562481656292309478779972130639833025966194269061118269491245759727338981941982655858166984329227013327707356629829645231157640752098679555672887451910931973966680397656446401472523086602022705672833295789518857894671483097657939338692879124493795610942944631078162010180030081788394744217570590886412451599348524185262789131124943240265924480348204166554222101374574571705392652737628975030096398806072794709355007090630337927238989498843464746244587248406161455493019969404970919447000759238895959462148267082325582453351237007415054715172998118994074899317256805833901906385232041311051925111519849619299737520434857375500521978493403053513664425784416710501962167853298026570112419814285652521337466676018403196149671007194520556098733621534384782247865826339551458404802433071498777351650170103063264964479653618463473323916474303283677110044698256591226218654369122899005779018943074108780527265723635322123068581687300819775550735507778627273217774011929180294311502816564466808949399608332950007296813975620239452813403409046980040652981613757613978012389302046394101991436456099392938051019408061916821232250600910166874991741368012668290711747806767037536542581468079082212863313116168211543691972476896567107972607957597460738246911970543073908977921255118185914696433591601989997006800828762370366909856048032727622108901490372868392103799222105358008814911752154226372802326307827254264537475197488526099984633481051043732635732273275393671869730316012907272466422455439929162141706585831483732750948999120185125247085763646479396965871736281359230296120051737400568877876794882485537440401287578445917663085085793353532615503476004185874894461590227624236523201499989860824696610474301212330162220864932783571801667302340587813378514657559474745067126493396155368709379905331069806940254397010340514806776692826757472171478799616301387787464386109464415391268796407535966757931917864849212451535505456391220281906332973773849111288144980263308934791467871427203245262498574256629165766210215003121820835045492019271872973703762575777209144815737670105916958929846997043070497234428704346812194000734606834678655932140164160213176173407158926274613239124703658301628743627074678463294485226104733082674704785857099640804026874186325179058296178680142483191666785451495404854928373286025742592929853748708409656669693492066707621252213640769059192353498479172709181612818652775117015894957284028853354241713168787955355127171054287392342621972298090106723385242663667840638427957746215625832793727522408486437385480540391761628124623461695822708133389644424178676279482755295735225291166578282754849045281660032784312341482164173019637590485870916809675274856837193461045653356507595510713469141870134104444545505397196191217826501749085939507618506329852556645984085537193113744256312902969263418763054412184157995120493106827933592412401922675440153788061552345332827892821949951013389119114507214924328074129048720854488784944285323530516934634792084397718218898722324897214423528444173237034148161988242403532288596276460259616126637265734520144097133363367528342767723567754686680663034499586774564522930609034061595562454975459574395043912131913233245342492445697668006597017329682448563932973139341895403886986271300350971076912169182073643478058231147597256114776690029675969428777771434529165647740880950164613328168677358937976762082582441200812575490220038649173923225539587860350282670527586453894598191966804612174437587720824029336121193914185241101323312969514798853261279328879976583596903563237550192658741884312064972640909900134611736315586646174609414542664003809466150962715264099094028406811546716935445242953197358722860453848936013723608804769143909326083719313919302451139353003533750762764267061290677909752237267100538072255225068185526815187142997557223808178527707230359361715218891276135657301724679323121270557235402890878306455087825344576776625275609507811241196346821724049984360875563801690283815432682296710667497829668799608528174805201765115333509587418347857855691439703271028904474269308690453945089166129004181533997430926665199806499207645281224589704897714207611610163272154307794327008108121152717352024996308943765971005348435452083039378592583184108507266598536641877552776399839562998434069327599426566957716591440095172335372873300537701199485706436343679895496488036364462727163021342559463520465655893887423717896261585397375499311002049294324169978198349114376795577746535153497102787549861992531529244938743387293001002375566510052241745032834731792909634350957590100997900335277431897691187565911163087231580143931133883380873834509279187413063010966128231824645825143036635203043694658638566460723476186750385868201686988555404948720705902655456226909983373796732783230277076456026402364570629527775285676598060792971245529548414124175084979256489735454966836995849906862337449250259566357696817450664629914699403968364862010293286012525343491063525360501002577338970984954756737914318515429353159516212082365445989014987908323811255136911246336972416049143785019861348837361787584946653011514602276895458276812416074127671127848738019766408512738110759136725518262136044601678675524448690954311609146804039233006507795972637126711119872715764194169350109199191509191977114827667025128202603028096961794786549264243316969674241997115552696964624759854208646965827749396558527275781264137207940019422655356039017093512003215034010831295570167412173943594571444568950737964807357507241861301153227926714321538615103691055614904339335228716498472684588045556242135182120240435076199848197973765297576194051328105219797468930607140357046549528518352045704434858057429859674955610229755289626005240424529577375321618544430276741450569701260273204663152354690413049004645034052181131040739764880419777049554122493748958112713601368332398159385516170944344783717409107252047198133842148129396285772114277780516705058862043316441816958876914368335651905879677464948917131292728021146508092307977767816429498354962403703348213612299831848499372413248960909602959380545095433224666245106014224706002234029157504846488448901057695267758358145592380469105408031371026364698222960562733546367546282157018316985444771237034748389881483280033945742861165329925457521856426315872282261142871812221584613693122627755950605695073790163421411868562767528504715182981890701384718243490874689639240642424757001633374743767265946225066226537351456652481000194195088712628972453918151620064301778632206581360448324214741819138121063197849294692597102605020676551522615876702181833619605433631899481736701729174404298732194338421232135399868043990249482469325658085150856669533676482753167887220651663334066769309500877420827495761439859523101346925209676547759515965530484263614670414287962154774237831066106963995787256272870477983497427477943460647578444376521108367585640049578289243939281471262146808886331768316112429173804602641929562292172682446541712895021739563529125968165038714878724246014904623285700181579815523872991367341851948463480777315458549950850722727833139430073873845331850486796694752529557420661997932089281024301996092220888420341210600337515207146815362109668820502309758715748017940976558430001198702959226794499125740529749156070824850729467786026350125011827445020192459220955682819297346772185520928153929334121243848112635729899084758111648912643169385604542578219212842784610699795254602918422588887332703702572413233386764894945392211841921380793819379330355713842821305938105080297227289829298456685850473949847351215146199104942739242847213218056180463958937063660787850439499129507224700265977055631332726754832276240653824184305432322232694240024209222193188675483001902823651919264685120158186494281840077573275614614572998725679481147597824698179454415039175355577266833847418806365261944329680836136695288971123112476095379553572254026342084491847643564501020268805382635931187589620338822820933688544403534106449350390283177420668091892290367012664879724182659191225906380576722928005147091285383737509448961757236911719332371035013516266225304482084136675866960453632165447923740240887424200717765636802474923802510413363833413410520988136697944743823898316074077963524069465093031293566636318411049752427042671323293449555952625868487243643666196032819791303432400440571627749796945551359704824682903709556549916425899477523101790380831739231273184742611389239312644175868845398013395077806389588114201573789390603214757446171597709161365604712382762703202113676654208585232258762766341068882788068093673191408847873936221752617317239191422510890910446681701599024845992664675431994358331914986773872730973681251323040083130728602110158947511562428605202200809822837252648459277251478274398691896738496727678780012558494173609245007225021572547791596691282204059715969525005072153893153217223083442620059843361092029363538726147562229122081918161834330574266477619180855494951529047872456993919735336078231768986682974324214674676420865453235016882159529505615642245447644763693087632881841198172061623239373053033166062022846002455200656556849764012498720862129620795165629068273391636029874120535295953074524552837300201135980180559923392485151173640780010457566544595781396542551906726234765543361049284001097791488898036276386722263917350040612240229002049867168418042090730164955777945060103016727859405891789142524378360372971412830682609976639110937723191870611008731437571772933425819500225439072070445000026148832017051262917644713397386973828451842657361611035194194795824564829847847803089138922934288377329699763158263076059472799252577755010054351729118594378558047111455742521410082384271813838126859595538332418900501242724815097270633626253803290704832038787260903121950896363115827284201966500228857022706545974426436127663856193882532363990119556213872929036937637394382848433453536418871827656648113901442264410787949466115976257058679578072022647040149054960768597561712214979522313190614459283512321431341194255544039888193292342226784501333355707689313195285968724221630119752952406323113511950660791437617881291263487454652804986269246175736181378499598822755523091780566134999333308998818014801506094581491772770430814194654561291060043450471795183567853386105516701167778177521626866003234439004563648745882000713472561201886702030278676287072851313234286707841286538931773764622606203866819370721425059211473177730077225194713149119012172858033196726573777390772802413627321294650254506059314153193446706288436002839250264700966490275279367305826183367964691125877823237072961821029053188356257449101629788417306671857929523308254181481890713918592850082615414755762079702763672581701571820533038607005817347341423160901221927140863720932534957455116300523665985025827120576649862340125990820172940594863221842035570138887842777621855852403105745411528234660053920179033143188929321396944985848784569218424816212691710158632036233534963340381503184587851326215289644894825617681844336409887551255254343982027923362177851432879249084800588626729723548321843445421947726418771772581483261057300618940600939399241017896093791664966340793952453846088593276086440208524130468063450071053785753019236203753047411524952727007791524975992197571299839301283404889339149581642923346828819601344543025862284275837868725387876337659416272119009722784906024649985192205421553907959945582550320673201882021792415542192283775708767380229409076946016362161812466040992373902616221955860031459663579208395131065588379406510302987044817568491224230539491202495498442738634350778045957189145185076482791361424865308812445109770530030134107982679723793893300811336255884976395890255171440547020067133117384530284384999964048304301243272960865699237136408861119586722210726957140005250256130448639048080190500110567974442652424400042003583162175617235538105204599779117797913718973533455555965809596833273236562251149362452816083899153670357389317236937741292987758136263633027765281870633884539472478764259122987167748684675987710745988581193684143456604154749996912655372836437928219166272061944222225779471094038819229404591989638954721656256158501244073587028647946495506575230314595983893779189620278734957172603910849344592958670890881025820053819642128487378118526764046200122195251549319970541362805033278496059995783905531976546200445549556302437956220984603015688179805994132491441571628925018579247194199499949570404248324691310244755631482023015568459564511572442458478731437200236113493427320068373954606820964387849691349652313558301931946478130075378935145718334717487286336507452593746350061124314986564322626996643848505311006307522819340712527309646937733551471742261585610760057577668236496245669063017916577900921269239034017291231626429290194367070468238562457778620554507448404051445054771473688940710471002593511816627262662262188017955664469451002260199596152612804584390149929856895675107497832622687332857345697794982554252323672918663641497662995815900480264281913826302223147912669524659501532379146655260854381445489645041088998476459267603379463497078408082442268381446436407137337638224926219524102442620913795285868983143326084638317433305394000877571911264574334449396631682528812098985936278632246835627433481618057824927568838936089765312657991860800603166112829525916882881984533237016842047243955559329935097112260044870921690170187305374957523726219760098486549766452764150740097461995588451979231289607692349526284183194800926543229708584448773692732319034556714423529097064529060782683514731174155611160676191487640223983538964904647328102623444295907687891958009591246840356832441179888081424104481863846686151116993475463782499371389036530535651843590576667508218596099013604513696836207579531943357186695303571359505902076111191423137437159852753404837492112671523722687140547754945475018112077466762017240907705816398937173687897614186159646838906945414070620326261097615844957112697445362574807506543384966572156291084601415800448333986641626842154003578914551455836089345673856334272997406829619897904358298871544209406083308489488849672654086776305693159930736571616684711586053592443823515751373213592977958372601178022051385212461790031660864003768417357060096931463410763684201000165497224456783358879960870658748550166340800823027736032587706566697340958307630570536678289058462111423642022386557288662999945189209930617547611955769490720097301784336558760891301035919315846231380509421912148046515653262305076396651495456204751669721064174275688314459869136736111026842903515133438335345245371972889341502207509162736953325136661740657617210911882523063609087652954708027857137531863995396596974133368861372747904798876971369858775528930933213164483583534244558335089389815135322331108485770133681703260204368379800951833325362962943379858951376556304241358905801025506654492147427887642970757295277036384292155359438249613027467357706403110957174794683793211130999174119273747747587162394403455509255991441709665475098381780605209127607205702807778350541293946098016223751443937396930081752473626795819882487762629471210245610320230044746792180038123652923908979899707505923950246566038071747897939516494115892105415654236159105212559380124857961585439196079568394908025653700485064844755138891147789636604642924572722052492612675805081559959776562800254344575462732148205151385068537690413270937166131708524153922033556046282465959431918853554063884468623912623101369983277474800684582687273723844521562233346864613468846284242594065056870359652133709902290058505824497226996341850349262991975798613024138876645713637374447085558552543146460927672154820210896113113287026082737035805504128964265629565414713857935986271075738205766069091400029943988919093100028006699403285732991569144336268558472284587210632805433894900485039579306948815639169396522494599662597210044057727903550024520144115447570571401682553405888381258584728020871988515540513420502095627665400933222332791044066673155450266732305009557563351478729273712653733524457916569781975057706691196825740374797754472662997034229396278698335244717023000716648958875827016329734233251621887191218854724583487690047051034385730244313611660979650075366321822372511356158566811669655097324481277385781498142292700992544025994861466814301225947155710036547976772182953478219202095950471295256346068355616024731310321560541563375869867290454528256445747279356365971468790358913759248202210691780947449611135856000578893098588798598996184842631020204603158863779813829627386547402464074939426439761367954109832875987931639849554589843982174720924700092988004159238773856765368186394382836325807543320991960805805545843117897445851890614133542363097486716136129110789002126868471107435082887758512726545264094885532727128873841796145110499235969889153959797530250279545676856513303411557987970908572490791741221410186597103494566129340102259905357645722918901356776287669312111998525932905761585871912894207209500210322960210186477394586395786445675818635935270636546013869248413080988587358455176425503646271879952321060474481272467364482766570290307492047679717304949314419340245908068677114085251916727051895883651281177965205459511496988303334957304860818520018413552525939974806464010996943331144761281725026767149292882633958457327265788423577830069671895623315167830355649618971872304209197874524182988405907372167063210744170777278635954432583860744697855534312856656926112867450859231673039811911264617217692815533930063583624891273331104735398002277528137723319828802731853434452987678148921647198427298250940734836339809411958991198701950110313085947000721849013310824753698768292504193891407834305834425590190380739691667610793003565393822686052189403376567162272899482700594433289751817263963341659214052464043069078909638101984436525453118604829946332257209299752783999738375791311866447518251285103546369514565213124526717966293250592322304696075998363512097168509537326315813638079806017571811513191864227297970453149299477759594505752063954482554780294051241690216039808458823918804895343618713612732718953093714614860712636095219969866411921829018451813152798937649547885869157997683417749729588279533434089441512937642587807414102482997858408294903150756366350870249680508012395559492381933633999936220854005087337644429179065531264954095206070010334165502177726784934485547250485208126577130527592051591655143090631212205049722741967159766877468129751783747586402492549926358046886312785129017561347805427118660783324110698140008304424781104782326107111972869188078155520382275597822425435667877224660201945608472692762408005912562553334886560896354789615706606258321881879664371399106372879106453178548157593245698003120587437907215377331302475290606536149442830060757123620106121576487840640975068421105421690019267533264103420860806860841352429304555326484955486925418064363731224498901789944277914236923744578082679889394392959195899538227050837648048911874404172204711894707070004692006644278939193789079759771736898722319506111529767333932072907323797134629960226096787626233591936928715706223462466127826364009917883322779960811464019017572490722532612878373605616821982648102323461826636459765278955383425941761869096262100276476014296555694991185981796131058614986457199605270924095436569544291039992527653472850550036947759862105197331835392821835396220892036892655492324624069090908527086008720146467663786230342786843437893151088592989683515164212712767058885346873125414558209756656196833540888795807498315239529279296676629252939102189472420599478129244636909452266274375191339715616316187574822241175966068550061714211349745686637681165784607383307053148072313541433199748825100948279340512284651053203962931790818702422238886790178199154025171408943774853827710675540677376448016886697552755026858288729688687937016113055299835822317147925968943897979329798424822924349633269456893999172580274820417273054157770883219035104825086238824571958261441112579684289766291394862745697188446525622909614101552128985939420189379289920417986336703053047353480601413579890699795356949259602059666276909030450528427753812626620489371248753187528871562278040475736885571748702728209689616823200237862920007785876315869315682430270583640628326936260607849199773438375849903710822697510055310011233373370615136577029857235716275337167742023586775479527602266122388472351017822692150830106452907574559165594614676839449741032715990177573444340924359965756196083366531604906924484550335201322406866488308395475351440732116756503587125446571881125369118595492398794947574146952432574174548314318042511746803109541768190656150294987049311329154020563307586011433512571567994244049707387167391831202089500887930851679321911675180545536599355408118780489039615838716880781698643668494652995889500555511221557241851296655945226644168854289561782326473861116293031016001176810604002400316455516967348099821724431515308695882422115606376351446870231601016933726115412631691057840877161358483022709814363931598687589196819579306255014404179183647190856294068386900454246651551924187868200517623561716690499374708279054650046794900646179946838323876149043068855792716621963466997775658903599926752745181568030389945315734769729036632198992250054668064283081606269252886953263777530751541891384699555757913794623851924137490841459451860042688573732366890224092890795021376318537330873125697960296594520685654027207628008943764131684311247314498551888526305715858751591070145713466220586235800206858501979204456861514920415482618337394954510476581475871320676420933842574144737829217740929321867272870044835780531180527674517311604887938892963439006311829885709408385947820584529211288849510353430763668037473516530411072518705327215138509275624037819250505137517704547606348973170523232094763301580630430205108319017627833054541018840754605297469275375235234873975185949990143999892554697977194815178671363812710186811582587135267567366079478442770845354575350911865234389572777633911773199498785679067517428055623366151414937812868787245653953558618815436701962570217098880036433572679802837901983579000036454940605525644966409038302289239978447808445591390052998968285256571345079238815387681689755118053933490044931865303972578951235714733286373782692817727525048311712331614829167847340197273359263804224821036392838247715856057930633844570014390413833549625281983475553404619985942928443960599775924831993642639745871328146969583176405468556922264858392498133611359250772857742980509196358134467669620727913955938975797836753844025781060171518150099866068774371568645823306541670227231789453443857193715476659841096430256840940908485297324361749498002456341524201396889248247104283872882272828294320184065534485282289733875337349160307784816734457682869458470866156115181290230352408997647502353145659170354501795925700409908689936006353086057040876785670893241781659337044638178707189961801506594439294796859175448612017916074518871577990168724164439821285508524843466580106199409438315249728573336301642151616996190809076818507076589522501370051181407857487649157610503071550357148962492925684746179581684974172774336929440734236110462673358279324001717155138338927103006379396297022199085110250555579723219025374337177056334556343703506235360683068040202676399469588746567153402378256087253615277870982857704285189540786878101238792991131264823271168524151230082640704063340022910133890816677494796557991987954289771029376605764056657268033128245311174519082356135685708517856278812160086160775990521101805857725482785317178298501895829478889691260633017913841714106152755349952595169811805949399417369506436272376896048284487590707622688970724534075327680243903224112270188043743133123561128889704250915863159049509981962551179556940270139469548912657300381776937566922019667985309787158326107277003118031862234689983783946281851454956739294813735471384861438643393768453356305817362901586105935871025819155301588199743906767702034684428936297955542348665785740086996778551045534328022787058092485961109118614042473436947881897667680784832218702669006113308559887708431624085798684950391261886105361118047235533434134496668013127466293770527495460080624588256646372961161963133627676856784512009071402687193664379960259162232041421959056063247249109697371371211466835775176616539258293222149121148022987340161098007476593828720881928625517979768402657483891474933306258419245685938880754043294685606212343720696563675907733305031270033369347718245261831277814513334074886355825776937618685005482180843163198822389048520812980914935513718701514078017832026059434331848648393709785381039173543681767261283163754334813014904029822776238150442896415122174282544154495271324588203281265617834329999207009008830638491264332285997495626905509192118345455005925700443570381757611976459882945004639339644687201344371451263775846801018261233345826407951133614122541709176300185013185716513527902976407710409059971924757428177099750287671704362972710683528776814576508242787467435422366809241818796207937744042463760936190697445599830531406142545483260553211272334248750638699958467059028100764838055716769143179760679968367799758938295784326232097944517216854739310076510890206282395411421611911368134750951315612414885864456201216496486814319186781045591285372196001709379485095579368380884307235604407347026862584824664146763160258641664599441865279599944194235306582413685810543000914978781760697503028453857626946613903901852214834298195612295951849443457111345771359883017722051941395712633224207245655479184732869642535489318355138422802847713237695214311828400186771311920004510045585968650346117582119967858826754809432496379796409357670029455072012699867095970411351352261795190136034908496220352216036850911233349098422051350087691674991225687142943109356483547567412755175348457903114257146060708682495986155305321130163778047323668960892420464911913883679334877825197945824146459872748914176413041694276856399624026308674485387697600310453394855237918798455771321433928812202391717893516196731629743717995775319057784208953710215101101090970119139527152297944106484265286980260713813383999537255963587723465192393932107511541368499581592446888858129303501316820949710461462299496795518670831026602321468615197112442674504561313745993085784810292914111592658472211063160982796109895052656284235002018016954941026666765658392116033268975434617063441493394815536084045168801568566208555299036761862851848979899650709927347676480218366711212291326787015606917156451771646447519278182560650511440827512956907379391119461004769847922924313944123822758881789989904252075584076074415835710903039510514748822044395174768400233190343969159913274618492528892346554706202921406736946923604833304595015131657126978437569010628064898775154660430696180689642251617959819750061910811510287206179987002377908119755833256843979328828818231952770052274996937046720153336820197922681623229775216828900606604715227539584139560405585896753438810812253606676136118406816789465704655409636352358324010071532370721436037405093761573932765232047409620378536360366934814450069302535351570373881153321705206419063883486462028101768065312336942635900523321262043690194938621537434726514249381074531227982899947264022382694946533058460302733057611049707483762502158833137885936452374840349632050922250009815965056854904987631149753200080512485728398161950490190531297025975048263280904400373788710400599868361909882068927946215569862124234703808635327994879304053371613212012844576142589191343183501224245106599010758658103250885625012484048332298752662964006973187190034931057095385013727556557743928345540660884405832418327074741832840058664717795265472086154799519656628067581781473912912162696358986161823654301911264377679632307091940216988823309564930085643406227815240272950056750970154373016154730752928190554316642485352610975378335448726367999581468309514119554171282501898215442776709259213668710618394880231925499413209431529551988595887321799336710179332063854389113096398093600399652659536437878868662038346892445949950596762368637551637891294463258845255559418948649375703063323233528616465246046597791709198668696775624032427880657283021777331109069366486061794196573874718450285582271236633217728106511873338381888911634336841013379940184565967256325796628912159431647487771843353819317173844127037003434244004220115599274655044173698748821950069050721742410327545028148811469771512269269266675567069153944651505323873113855483644889759228585453848017248356205792200829513604000686709975103380148095016449402341435803624416487874778392128840957339435001204872404380591655563006723482079485076158888137656631669513209442307383718777244199524802192977387588681016267533562996822709790003140482523595275733333848911539800321946397026707282352412492884596033753459218399262404171744881918168141309496507779194600082279702001288964713173504452159417097985765146657016558308060470097876967609382632982490284275362790258056001198226520895335568361508652385206927742730595128133484197865003284763233350907961099816593759009547919686828891602143691834448336972913139784603097679416560005054004225754994592069051492866350982035618592144502079074348881737848804251317744937252178347972678452801770183278421114090980860441844581250445121111573221833027638523676649883002710989904068174615821276722846055183974460372739599837779299097760711025414133183175405472171531546625710649685354432031395895009666438090047938247237973539679163640725668933253035785476325346343910414381489282067999279707233485906050811879990662925464022778789947164905962747623815572101596035975896885457616361715053536673918079988777284163212296693104234232383309185917493118703891444045921907710485370510329933315763881246999639774500853161262330359397667951488169617141560763730095266205806184473758311743086451552368048792586404045467785046280085143656115414056405674498896743821357449597443499418924042662597659876294966114583287296460356676705684623773252396169023871299862445985646305456733006113150723253745635133160665005611211420804081412752502579428829582953202458691202385640689581867155324113844683392429388834568599205204826279456269887279367865507162264095372472597425918856141797793502276787439614753843251871653914286458961535130043976524292705666429206423536315843144242849161199036950741059931775321891989598954007740592449508014676651488319371907230573200085145084659812380490752375232750579039425175756363050672119676732298159912773633972377015093187572470988595815104415328820108667909578552763662703211264651216090423413239827583556628719405760809338886130190509861974841779177239314204349139706013384526684822544203730238421794507056386344366917008587739585883769877868821617171478555252806583034677707584303745117684280748705402643788113819489560939005529735049816736867245295439851080093205955347240563767691244301372006851756483933049520865165754996253687810411127132916963265580109858903006078867437530851155340844760340036100912871704358841499035335087930139280863690665029805598141025731506988895759954329787938047448910044221065789139120103062554525708037325545983307755379461547187044737494467842440094372870133477735740035331666053738170353822814952109140002390002013729544838575334904889095218417275617963831549471641444630289407231194939437419830172948610782546407580754675297123938398682076549762282521005643308163033178618194984837723301969640221476619237037526264997915295386708246341611446543370368541602654028724883287766585355481020464876940539867203784055513470441372590078384196911481229786368478567361158920822063168794261383278150541969449998757479274918945747788245722787213508280310872295654979170725528762054306469520521058847474615513527058563232504276309017514768353393302827793011409511247402787232906887704235497698522622819894609239675874572504598640000877206695591239528718413608312925431763861258249312610108886483647577442236003868694519074746672834921672351369758936455762323927945051630676441979560362379700364658691178635500902921155549344485159027656131590380717575609632439694730725130254251960459759071690835242598034937592296298288403882930962867908706753034777548038658577130632907704208676762317757081594278825205914620089724530150529140964554275385049248037155232056228006124893811469271906235639016285710411929902375022683671291527839280908163818440218632924062320124815736305441109885309145405666346110850746698054796167551432466244928561650521864058263529195662041200963809474156622052321256505869140807027069492819980037470616350243999335656644526548180475854498090819017253669773713553988868196890879734585347875685739810954916153725157101883584642189695732501154373008843420649603558540605744875382309017523040482182919804055562794218762735615284348962659710675843271108729063313548616470879109687687569924154464368631369740131660701698634870072612958232079406816227241388161372518167276277943420903284556844609011459241280372377234203826163904479299869122504273733377146176505232319959716275828165107320945652610842773787197432413113396945484699005435009517154341264791911611238438773965949700416848160080961510867357729471744116280766717243523912397101691991162048352267031616104533346528829269066980589010574627449648971556354212142987563258212387631094773130380020201037835509516265872489976214497556815305146466981574078515287442094112328576282290043802501064916579690527011259830602860363772764773063247051584889558642172748527800324176401555487882950167797721370703204538707824926601633555308097113852028604681384067569160305847340842079397022160814734988061203434681824831357369485182190842584991522123548107924389860985382978718122940449585820840526707558636155272207832094298585724001231094771186873325571197430082424367111747004492710509841189855093851623578943311674156738861265155826350836831344991623273619280622741867734383199581088087876332461402296827319880915309934580149857961868030044050726215059831369418960964457368246030958264960279047294451155613905874231297429683405792448688601071439423030580262440381289417576206616692271759909994463960481454042691793503186606896061860240852060359270598687811057007378082954962079841933387011752515045632973159013740050021106175581928229555351811856283428923863556288633059925119859749330907575286524118061803976809885774826872032665611681709377428396722352162435831919481725483366524442667871380382698610065437862310935185395693132857640401980993819534256717022061553446335748548493672685968420620275650338380806734370035488670980682848266452118645499348623596344882379122558476348695174095468017607927775981431859741576602553075161439106554643237152922073408528486110975672572145121343453202904235891718794257260363987895312384825381363916419107051672689382159680569424638963008273734446954339897674300331609207273734537505386776943596427776072305027353822659462778559065404182311575952915124806895578965071429372481281401543834594553535332670668839361631698830065789611561540508419983931115427289162410293882809581555045163174870506434867101931897323510075909090722802309783633780920126561213060916294357641639607744253880954193938077470936663929727884241103842021405470043511999577416786757255018992058453660021028495637187775167330959569124773170176461365306911569028816165609690154396200257821788840654269116081790740671206718622826643913321209112218103992871992630049816598447912540730255696166994812416601267675805212576538703224063333465975432637150197870504399324400782300961376103247312023939402862289415444639088276012236521911215298734876017313721306312710955603587688746733065066793178951685867904876461624365363889016546942123229605258953820857402075956220859811692770332042852539691403502626291958065995043477170736613302978922815069234837240468469004108381222383021893839196254451856943704683391188021328105541003750844699241741550670360212825160531490212651922236014636455655876079554670217995935326878432946000980292110201750071530878649392564537924789348714501037889504193109465065473107373518233078772115762845121345460096081930008172571744850624219007991550595096302331139980558842378113072125297855323455268861118882743628087052670398535906770785092031862921391020935459185263500351539288907469230946006960857855618926134667759277950627703740003533618829862039946262895129497422574733314920989705741627573776782652641187153528387895442859088073318425068588139386166368065587679368664944304744482957110802711344119440676783844424931729428023593635732475189177237903671423133596988645598330421150991883016765878053547126373992611134359461954539642019428711292018441285985039993629279951712299028717598989236732223514673048081991215037083086436385987265139226500980116546132310798748744417768227724223180963594248749153195525458589367700479928840840899449970431746819031945629703408689369466169645008012097327568794374704155940259274276762386063139528459379572269071445764743616589474128199411662556182568384832112100092748531528012964561198303828743835999862622538187418428570724648253738235021846306434298693646629296012901106660714997846251129689124892209190333337700609110522167820694776816717809166330445280194047159663597189361706728650703961794228647438508520608756373879249689962954643751906599322075047722743254126292890474998417696021744160414467410703030609309420247733845577279328487866441933311306509961410118536083419298943725322219473522811244730759140065661265084572498798966688720897863747909835445190358998164498277100426451772154621024152615028617939221617684119322950614830539875351766249815091413024790460224544076331553866108497029681539887164107135064708990368492666260459533560778565539223386722086850105779145226527934826269350113648590564139181567175046882232926919117544124954947062455632118211995178355788682188245765984735335991786182801227244406542738073919026669601837991886529886644558372199163753438167294301250093932593891835444393817860681654738968511203275392223603958100731075948906931020999135768631468057438323195607338629143211984569923777711708821850750791170952728990025756017900123987532163359427278704854634287448999413858552083133492744447362515256991000935998586023011556553782573948113079195628542204220058486542164471354376583186319773291152024096651427625950595558052196494269126597699357749906622003614206953230248296121867354715379880038376621016547097804744267731968046666875916587626779540961328851057366993338919693549951826247775309505912551320000894225525397435781302717779955854487404833480939556345183409536667763724358327851018941599055113404862343716469417923188945930176403714361659648602046294913800373325825002787473672396167702897679395450083786503521568470923580800479652425279358585446662747414406752666208125792962796019420793310017271211043416209483328789979776518178465981759911344909204362939906089384603157343215249976929524406939726433333540906574329875329528183510712440644534646240927684842669621599084030277894440690428071807457146412602524696699657233168021599652495067083085295360303117184964907898002994010682718861575065520919193414877158155901100401969984657005512791036966771484378076252284076723285452001710011936992458445350903573052003495000875574604449424932720093557652821943222009018561236615501449569960825906465653622163328619078165427723040677028878240302792992307295052493100370432246965314178111623166984956549528809246518195917589678772981185099454823195716082266930315295717688275447034197117238977262871576668090697172287098511252905931583700291127969604668717612835040228659638777753081671370297109919928149775714831712629606538823894015725226877789600004564418303024589693811618982644273611596849084187534667215008835081327250999120903991740644042154399977978467386973505219091816826990112648226683640601359720751544190961082239843908639792580684359831237907700460466343390397450772450594227110835654086448774760179096797453867921053362547169723972608331592967404876982819754727544950373405171268142253535252404022715461601520514145894221906184310739764673351713910739078181396355098502169113617582397812266004503154210877839009613526949404931327657304404794278335757711200626828065812302601765328440770064101105172583797889949381019682708192992066818608054328475582219300777350723640335437798636388495739442217665877317057389922868316213650168233573544465644139667664195044303201376266262165389064465470070840911463569049586280525950577782949904942918599461974061198116703242744538533777151630227273234294219323452634601922528396704394152903357984719135850301899179032904494020335673700273460965818109657302850849997875671552820940897114975211980441164288485567652136448523530994171448662937912186437936659762713291578700586943469335519477054866474256332495495990821033402265447913674041196576946456234417026087347443175988051404919252443962389791734263209746132744232310539446980118777982425686922475950275745116521838326122281117422540841325208354699082892216729754794541802811102500606746453740508101935584415219669208508376246311629436267357992668004657900556716453427225517939988711196150334086501786828145372138304983256971336559328846611263868428791709217218723107886424744241944893146751514395858333304823662068975586005092686122311565461064314669632167090797810832443401108025985518967668594252114039671415713305495093836206942648355939108289115875388044346383224887314194318957024945936263935594285468588418543798893029346476378029576502588471599711446259275617003939581870750868115319579890974344252161800801955477663195010668017253789094614024216460857990322881308077193624067645104196382373543312170297637653921503770248174281269244034542174742695598512640294882770459753398416458511623701770423830659164874425507014739300331976755703247009461838845041739840223602679102143204100534003486727607862308210128994846498370278994024741580235476436812031871906640597841110825278332055260044251704105867526109886994910885035618053112422049662538801211723174346239890498959731848591534689632495267375967695716108098590218389679196415354206019294337183541145727208940232268809649541185671086273470326035810314782729936308038239064857852231207838448301143841152723361186988021985686044920183637371790273517415716415555921399443821318057467778870540447749268921906276218127720245086189662506766549688062769710682593532962660104934069045044895791643866151455613750727961281039235862687056169926611257895305617618958209946659010427823936266591982271104599072465138580810765216742889499121785722310523045833782230259358534546804434942113687634526569893304497968748592130917218982854269339113451007461058238204231446566910405197917191551400638621612954533779780856602498094032025254513215176900363155148360348299561719250640405841837834088817628494349091156113694297301379164704474764244047444725813940812339092638307182729651670280269364598666954446762128365667201811905165784148624080487650713358398059356119852605740367366589108489990309555782458730302205952591955084066415727689955350737540971985187313500265596687082865667572676741168539136577794227482564775725887458726673627373403237441484048380756529413169931346174913175513350558085568094694926863457028733114223105166155303925004063213102697132023511173928762255133521316064152427914854992921043642371610729827606787920154402559191511640350604179061482609332664686131525454021427174950831792762096296274113978009884899703096293286306866283945304581991430037102231679547957677652049311597675073885521157015580524888971729500181822279376746906290561283168561056571730831753826448599654128751021323948584672401254966828726050020188581505832372801858452213336238176793765748125431704353545191368079672761381345429511056418895663446163305056877575644274722834619505056444866517743074265020909730189439750078319178561889553037467776108735911884077315545138926292874004954852017057576367579013738136787740495790669011004861493233086147196730392109052626368023799395551367693406169829169347897861115313988136826241155858766774456261128070551662300227252135444995700885489371325875149061070865482068829502972661445510989033461766505467522114064580372957374910505825026060048797080040669892822736663737380722145182557643756541739066382466769890418526417870638653293128259778637011799131448673662062116066656383857189663599919230989438398124694524309115070364859539305357858549619224729533705715195887670731362856102266749079699868164251596358212228381037323953924250203540981904115514210946479959404530772952297185084257441791658840102279608519071557013793779655325225402410876201593198069125078995322928110096616941053380999351892804424388206418629702104147033490557835603730673676234843388069238397888469086816688577124646282178602944379533202092790788307840403305978462131178170816672456736530477844690106656287891430587945060974811382412287071969014191556757731926501851648361764247035518206389275953620023779652271107911280255403641347851609842114445036439671023000320903068427058372652152635902901743368046696286969435016852295003762244311268906531511154409144123943624704213191703929082413687284878621897391416909772929997383015549954049694068225850204993324410788033158140144939665878709330968255307957540998304994199586695489928437356589742602888028332235182983599486912704946134322178091980070595513917486428924127462668052072153947696451427204288375515787699709811392418965069908326794107954485931458005305349951264608536780951729064182700029182808061112990868882683134696670851987094382771339148375313916966852674720374328807043316678377630339637151389287405298694541197417207405763584527499776739123329300770993147187693710723721946330433028349824337922840967606026788555516901873744635881904696493084792535660214346195786599403361738117958174214903592625684867300742432404514491667458277063568616723248006328073934798074571401220580822921447388882903595906982989765148119224252905510772509323659481146291713560198442666490242418325502196488470305207431111777608447586131028596900449322654212576614841198301196284036752407734965419397114113155276861445921590302963430562172033407540581755174055984377290836859889643119265746948104125595987801124641388787547592991408568188614524210126194661363044840873732103322509256861938054270243237148043289443085523316327355188078077628569500952144677246894970415926131523869358713830963504861923357575433435270680548110926765545744064877778711770964380658168410459270045848341152650676935942116796241440166400518669044244088001215275450781831339856154177524806378686341909804102591429233631922846732505128296662299634085278155028765380760253081493106607029530377044117350905771322926827676343465348666402059408223689184816020544134694225303863180635149668934160169973456657355789358555492220258790816338888584967945392285126263219307889680516219708707064378131395504979499032291795632952335939122213942289620506071757056121846579540062429506944255398287961540988988051024450779447083808607162546402450555978459436485730707099508696571790848616009228722754555058029709627585957361960584635894244587129459600573511995084787534170452227841755088497476615123102920480503314791048520538560721822896906374904004927410538332296720089785553672445949451252959844816102482506707375827652230333292221627298483007308356859559266521670650431807082063872961927135622850390290051509489161589614580557666280407120108748982242964402920661050361269679718634382213381067642587554871851602200793643469897580637262187001302466885608173384368702048228872445583075088889554535801907613887007411131186317020222152691921095422390101920517095173372897521681962003158964857784843201170170948661701722016985491507373017234879868913962531036372892314188948781103087845569840068797604502253073161565526221873854068797564302465885766872661387271544020389552612749426563871169722323879082348412673543459255548902746700802421458585073096740926062477268178170804203132601953796489265474577800729207759396663950300701371090530671441760175223929272878210598866506327051731535659918413157807891455549653312905390420859809722949592947388886597254723668549811950899272394125487341922119432300725800921301561960675326756834520692298695799814640417695243284140057561097157097888274562461931169633816903179029344894360995588041295087106202932675096317269968465851532731499824041663217518469330967906938513302284355621508166839216517851877914007622003974652961187067988674317673651346459394887573412329648879954936188491503050113244710871433412842128608104034212929036251222474121376062233139478913961596341665118777509895665104312897684223126133928436726604150466919866416793988388675983138614124412410196288393899026399990101786388429678329701705470752160371980463155725781468392947739693037057737583486325826287188185570926440750323380492075340833260770815204886726207797073563791976627818706969281101586176476345160099376299245057770469255711768892641237893414763403833440360767208196307559091733674823969753789868939228218184501796795614586442370218942058338997343950368429614730600775472246039242743590572035186401782050597462994400711908693283279647053322731567378450545627476424888311441372524133238371077719222492778359115296951284869424715090957665011104840739608024598520157987695579690862891086267875191153398881670203317512849099274303940943121431362294625906210655436243040108396753610104789668138639874946324133058838141493937226889761132649640187929970764788463768519879315258789406838444135817085278975351728571131207679336836735843080546073571073438910249946885785653288715202900773968578659300462184216323929010981494156439123425618799933354791593878804750773603310324020902559875758063093729335862083910266690799151820154551833793905988629733543022136649540718701627472630600804651849661827279003629532660242449748917236639480211352398593237339108621243335690923719295531306575517751091988588091309435598735798135056933566708941805938024313427716049467748065804050748494388263511694652363786322489052049146634210418020706017229030977140913226538385267366898952493756501432324693894045261714892357687103869842096247035717421186921755857126617627999101017699066356451744160282762497315286412281636831405002846754865898247608176132252348935964075673578489098643331287399017574880923068347537969241792917554264674547279811886588787413233692986155343001682462335597816323693429963245159348911172534478554412614479607949906224967963565509199266054241652680145028395523896744207268841847752489672387359695922168291893159992647126869351774243274967134342496200711460812607419601943290259956674727448116584099417507182536860602454161190364130376608432943407447885648354787624809838985504674979026923119358543531994998691726362087333351872116312022144355738235621213522811213623252465014422522582214030317624224678373590969697551962665535625291452004357779664041804945918132247344481335992438456321461338056558342656674947016714486590043693901295384119665323589954617116380501667267624870564100035851026785559215276303113073737309920478467759338230844720401091506389447972457166671600434722153692064889815309769852509395335350866002181953883898405514203436666246394641784161319274456932331580221406828937233974776505988348639153755727487475374831858216297811786200461824909450929087175610873182331581839664442934870906714537043226971608448215863865904728756369179392118961441135994405512501122798752223627944897502754427833169341818692586658801684235430217817232897395916111628693959139196836805601937298229710317646782583024755712561202870043258297051151736950187090449958225220690422200830477523476703387750571320264495495737889843430941155378492358118353277063802692602830425019295574068233859307654733723658641556598527997099324430903226311533183783673486563624487172087750545950484078836073670258096637456134872935181231658426994619466267085347781454383299361289417189788905745725339879553505389993195822855506166224460070565629533752285448031440016529712497411670525468781766121478901427404926683107790552802938709194982245687042121275331030601037856453812498884362415994129764407365049135122064726696782115761498829068136702480843036300120635017856464085681271749462652660487490456343511600505120501554392579629588222873523495113003547816855817842557536593429379851923818583431110041028233198517802513281214018228336814634393349850973676300849415237021559801645797355429357423129857611875178766895968072950550890651825633949305735974139935936648098538047968657047956695780615859827534039074259026328094908245508618410509288284961764438647542672500029920987671146311066076662062301479056576446363322138202969208793150366031187702359498630332416744788744122711222807943492048240388337819828839185275725230389952258694484369850148737706079039703196882306822144595778848374929129570857323561620948989033826149730121528177359422379594219230668662055735185284322183875197470055638384300691407839595223036622523433900941632935602932424413891176078879182828039516238687926456973212928687356338432714557855131595953002267304859763311992285943394930594641328617249571362217226058736620227338368606610277112714339723577763101444620812204948235313072248526309097158568899405419060199934443909790480676452970248310489349687672715388716906989111034972561595533855830987784946800668433342946256168858611627519927477120667822283954180189772679813734983807844951415405059068531573861642807005025146125469445252018509567582713415511844168339499645397327494011306151439090563017882167270129440869486737586758565835885232725753628158305609059654036303998412053331186829171366196627013231353799341949644507882894738713959936001493879535968948283625821380790140695573798114862526749835078265189065597020901868370313383093585643176764381709205270290379088218757666635202626728545888942252212933776318240465185780780605009328908809541182921818113556898808492805598520423839780049726345362482608714881629490289631741569216930046885706349429608305137605240641490570799068440308252166974687034130812947296154624086152459162628081507266237366709594479119305303612303596830072188308213647603171541137453639021981866886522941343881526356986602813454258696423986266239671292646044608752174263554778279123669018536577709399304888235590376361860097603385796556768834710906058643296702662066969835794741209100196319225987290315499068913289799510103439699733791730454296263406673571297648258539238063872866989471153952938517960506316231985064335659704006725310867604137133785382933949694390809372744260478929709250888151410799927993228874858139322332231782840179703860840224346293317387400772006842978731500849738057232787901585892218411208314937793298509850975904841536845137020028474563964923285042974880572022128298183198208241070601258034022511928167598732617712884030504780469129410360448861828801309506999524596547224829221255719759286132016980841723246241476949848636668796604509704777772651333206806658164695262592256513084649103740205625595929825350693487555836877968666440650049954580527170198188805298328547311225881684623017404803851701679294570251240350003025363086978933876267901143413492725219952296038612624339731302859161816256500528777779187511756230840634309455200247938381963746290385501767561372396712640625254824076800229085606618173897064768140843179920577542800470380793475412167770570879875579528985476103109786522752820661694843749664660826395386714832053508636043777464400084773688055529024280175274256848423862233476944206071326274514879223577461988276937659122783208333533972895830844499427268099560531089704834088485421461475363266111027477311307648129329412619576125743271296168307047936441665617789331935506723222418669073219405045695967583180723252544175504330077601637444262334663255608473795155431338114259352652241052062663971121722213860273642570993570646892718705475610449047181702997364612688895656850763549691954273897148528913428644376583032373941250007580079363719131729485980143453606233243972479072470175562932556667907287865874781940032118468852027616754671904977878342913619146509903109478468172394465750729164568871291229632035708610057947696796441034086752604637048592178051518463774839072288993545643177276482068207155366226759555586537987371890588539635917655053081265620169676889967621507868237894048411414307796316445978186007880042398566966914277630915615544625421805256041179468644795178355165174671640262605102107086544705262539221987847380077777277519369614579148085405469707723116602798219747507363872283365183315905075169274458452238113559868835703883608979125382572555637442401367227776293089082198687243885762696092182521465033305573703759327984173657457623467188400430922556129780340397609232884753710098898216812608408668054038790651424736871705142594140744675785533050878450583170112606348389565810529764704358225616666430822068822040648524950674322723180768389316011461474536693059332242209783671261680364935266228082477114255519151255471551561323838251803286981413287772964963406062820629634538580918974137890530169365080212513824014103155109614520897503667407105448660473941897638003985907375940092277058629434107729861634481874180426657646566223346052998788469869436948474816307855648707632436865061899534100916627667601234059931766761934677129242167257510613405533886246179274690422456564878347710513222421962401894293134671848093542392600569309045543988129775621393337179963837909529276166444279939144455487621101106815062875057285026392365826930064175923227507750208396987341563978239587127469645238014383502485535806221473726774935148710035818559131137689720202319503735964730849389697562310663558583551494297419081074323798222892618535869560624343078885690211604922462795572931847015896938364100367648987028594583397181708070859991192528487633075280389374766455388014394910095252681896165955510920382143121044103791886561616333207708154711791978782599009553215603271207976650669631861083557914683880898812874909945250758417379708079810596372784544066461680425322347740698310436249101990161896346614552192342567917724653378389640594578817926121302067745927665297951645484045206314057004968318047299406917589655303265869127177327800576817103406270427915261805727543303929939741621588309718488241014113062273652190331612353187542772806542833138169374106833783021703211735963239953885599799310409796142423455449699509756239688688576479475968031593571431828043866649299307640183145100842570065833440217957618625413922217789418584219995555478506355981334865544421934824545859757941012057114372579099069469392611185667780329683028477080952464984700063734620895397244030098139979246564511588296495077793577841415215263138367207309267832678502469313779878726224081605300928870682923451481780700712447373418587362587482112035970108329135062697424103652118950869105368269760010365972830693247491848290548386863144413927454134048904330729893355516306269140570948959584316231562755055417112420199569630852817520012640493603211593321150324187346629076790177539540153915399090922896788328511665459988073037033985244680099582555864079716616709622955760357915859361353556933191019348696392902532527437132832707059982759808310887786133259927274099812246971533561677384341113667866389171866396309037891707539564131787061191580593221603266925152955204256852934078355570996648753098313428311295137999487477921290169148449579178115331953884512966058195304424500408184449816071461010269041333098400105247872118596733659450233229449325013133286863795979227335406650268031777642227225469990685656792863319657581460714551743267244690938012790036484455049152874655205571929561732670345987145936913395656000513239371997042358706666521457620270157407111687910608399821178118731847744561800938258694675814887564614848654545539783455471691117310701265873494259810028633467812042270044668816069125316926738084621496685555050689319428109088334431765914960077962944952312855478814396889945920255265420070695168990192980897412707771811210625726246724289944371120719390797843171348714202341525613508711451432661369291961240894100728436015699910491085996000124037108904384681443621336322195545353136829563203523557282923886898888150498869055257417821482659578442257532068496777508701729511648071426356851522205914758697480036511124638851413268053856984440402636343061623582316593779750405647745095156918097752042042653400388772052377316582161972964224437165700046162036113254719334857827706761258589584917406709166220986058835077238545086603648011728496791056646334658293137623261129910968032052560996469638242095771134293098257540591193033346787357555186756179117820237843222640185787346437326478059115211148905878129557460771904217169088223219522110234081292422570781634371844231682666541255576480038535750872834326883905145881744875137471714253590260965927397388849922756714088801498234593769090937981369041879058724382321999299014674857288643446910675647312678417104818874968303960027845053394541095153580656264557312112095299097340881747632308203498461999488688989683499823164441842035396495944219922651406440909399729827962696062011362776860427766408770971134377111515992162630757379486271060956337506322498784025195725749852391035691509794012622803386774813973384373375601579755252471828696990966820783761720476920447913635627562211772886305463340570284279326334393947561174340311748390382534539519087102067256590255832789670255278403159209642335276288160746519169759776860203096974536254148793177452032466508176153249648479481199075574860299090357420967219885688704472965771962726891803323989289340612856177321239191539619806554959218369331623289969885838810218224838055096211359155807040794908931088022110076796932434484418425532540376443971250815683308537968105143977380537032135979498855062527948841304262180417085644354313693962315945374495457636202994572958020766419162764706169356708932865724022244778900675627351702974265188223869473905717849903715178379293761692144458182760121406792491107106096151360024596677161332120596348781809851291743797623579561766882954705795876015722493057558184636556627544575717884269915249721485222961397319981793303939827093899649280490421754157028408072539272111982537479262127325872488955168079661963088389472439735935665079741963327164963803640643261284544762482053477023100084714121036658969467332863621854253680936308506065982778025552988180607345440588866750794859086171185114626913396575263763190514481457363637435397489430192333243644981825343538674529231491683853169249385251782593086074057685515009458692868577196596451512182770584449593337319673503422785908830734904247760692644013555755190743684839445151149074687977697632558608662626831326688223733130511288255096859690033015175876117871324579595397737585860992214552155929265479359327887106524291037192833565610465423890000175737173694382645008518112694132392757299845509413492748180154087631760833864118888643758631196906316826511192160503661304412829325173969776414839305628236734148531853864258938358020241553179385206594690253217763256000151261676831248471276147288080626637503672477199704816770119298424510519415146814444683239840459528729000403264988555966091565994094783433869417003421275587991072104399180512176029146888532159931267597025104719009555359400144894473068494459922671551628732686881932830417709132208813062654574570795451033957179934288755111932166421457250613480052196441630849968858690182793842786926927587842250233993828221634620246769324636713161993753456266875914497485579168493875735149654659573343211590221417971368477142278055004777237984468704517995187359712886670329109785799816489789414543771714205857131947252802177173084814763028789557108546771420144136838066610373956469873129057717458756588218559861223994335302949911357825718723999087574607006212610047783830063794491989002806776798595886909868118380162275925227601138927396625859746977824270310434114976918436417041005645308218323959091943812279030456761510232101707193348809033132938732081259835258714932898152932857927434407402487766598215209111044482200906247508297237862253523707734805317415856567364177353515027112362521998175972177550116858073391865661862430733356114947924215901140737102865704618820818622203956190028500396170700583523796270425515086587663531640871091637943404849701743809952639440442251180937328563540907137336285172027444325442281522333347732682170654515668078661238264378118265356421581778872953546052200625372241889394646696834977645289679272587214781412599828601064234171896178086742237604073746627280802156869196444389721795230868877519117850640682542733448224245407109353606693699293117820822702737658599763256625422065260280860434051652130452570268271697728388942051531624586266670255231009597834630624295279449431259785762303494794862659030036641401019191970108562649275087426203800631172178794928418634757844324865290015452383924763510577288729595151635616272040919202483800928020952814639294913229518179924233894580275730697186785451774551734549095052818822233356985009058047869985543530505823511599665120061699091962098014071556722284967333696424751016781337697945932508964871573147711112595804047254415252820029466698339623977706497835683480247767542564061366325599472979229892572196457087110989315602572170344495695805153607581994370382967616393853787833172622427724392720572890899278255543181971287704265292530968482284735906599168017871923682735820361114748617269373822948238049563777258493667679224648545044196828264915047916398293544336248757797073519281924824699528577933393555250820751141127540192300142810985569100333449002264663756933668814306257465656645533390213080451858660516292142974967457223675101481129017274549983719814707442507474712639228866974515377905360416221851885673352319585953870003106328984142858698720838556336778286961387001076353305842201801372169823784854889067613286488117205793564116140831863095537300703964756577626028227118900321487183745088077689505065721726408989077829753176050185191501654044473701595997170783324972595642925871149625991333466685063519325572750725228842922564682498241750990833396536836406878011975836414351089569157820101688423533632311531705421386912437722404827413125525271135434489844858700528573005371093466732016631515398483458524483203503943562788878939217024996623441869410269166854058658275778410082890747026947562672183573930564799342974283634772060600078416933897434139767156159849883501539991919726061694026424538692276161336148559149358064150428887187614311471427961753314372057091463018420670688091588944415846564411880876310236138199688301993686118984030651446083832018348156971722264588289747775943528709607105608411039290792821696926031880916273020176245230873479658554263841013426852161992942299681417886489295930878463821379659307548006542421181180070033566823860858722630024799056986317971415676670753717291502664708887827245786455764658965388427800722990283763936321580708703937891092672053748797972246688612034768862259396613622677945369321630394852462498443092556878447403015440106057367379815609483449029546185838083185436886970513147424485307574490432769452721848951501315218864626156220911913866689299469239704608796740800987255462408417118448235898247733890721956951342489809517323110743686490404689780706014950338946076187998668516312757150709958314467581813203080123285204564852045723316960095061791328160049995903371052663253931215725777701233615276760833859096533093500592151696847466569917601288178754630195682535656917526323960794012704646505269636069387271352574518403647979343110758759518703190101603539035051503404415473349216418547747024407394681502866319341302339262782615876603034692881863076766372423466302191221216501974944298424074727036220552517559264301400787509342864046125037901938820947481190986136244070378965803145878633136180449821051895424912106328600540051789820536376627636208894920660558782912977994854036702860055917556649218849087614171449496166955136091882380569078622227172092030873716241712897070169881817050962129293471908671217953530673297839724394060385162515518879260398458814159812963896634519218001967490001431890035582586347467326847348860141318249056596510093598219642783523884038513786525491040461910157025680133579810120609809632945906851148182814510256368345571263843652415206642046271029374386389210819321865823163661650368967499275923140545762746602087154409851625885644848961695993453276344099914304548696061056484321051194672765859165184092056425974633278967901702903507940950477255100655834952356721046099858115349283604049881184793629902760881741524206817330794376734205928515531716019922184323781008038498918389615368698346741681442718779984658134115138571833189295345886087979290961500455422616768555569393774621656568831883859468618262563259164342349592740820478193947640461864868582708024445208693141991466564924612810737192467896640448066020478898494854358352577499653227206427518455880707852978559934956863596233077535153173967068550765744220552446957177678452449141075077551308040743365331042065426935751768204170647628783968081246840502410224431379270566786760978237734525808037026973896088928154625308807474194410049164793911544011473347136283450645637358820306103799109710460683266283469065829811810207883146480316797281528946455440582509481829609262072378445533065355147985707543034712763067563014303643797209460339654353584569448652573048906880854350514717844873907410762103582232127135847845208200510617172053437328129715958232218941074313681750538529176972274703482762616539826213739318163602351526584044304321782253160849771552919472657293976781069405882926443918446119358148917377580572668303384096165394042851623149148205886159413305722185104641562183015597440877275445548393713671343196072583299007050550658923632429199639560214449189117996432268988916078404560993715423005449238576424723582146060151672382463554025865350899131676075148806969694303518376976039128016880658806914468810260690784019412360596886469587641302601095868971454540119149491783194634165205817579561269449826714238363067470937452730935437014160132265403804345013225905815833579255648938831719684857092643734861937480949415533048061891943041933208109003313913795777811707047382353237514654147054845611770994674810382221000932562476302553725463456445769921755666037774149129553838618545072192057973734262880759813104694436390266917491705472932240908881118505818896366078105092878728920674961059807408872026708189354797752819975023436469967873952602622769408637995374123786318115476117286474324252697004181131682746273216571607130825291487367802612312687498290437524538548819201597288058369104870159047421689718300263418721185973994060317527285379887475376206595658225824586684286643772747735185488177348357453350027644238980035256184120529086110714554861409268760152828177969233646601158631613824057306209101873509134786971172077959264924506641391835240057435529482757892849003104899827344873510293129610091838844353245906192582308868652207204160689934970299973273138566598585340411089376297785334226836916228255550378293871832386295736022563650511492504687639904849217221899826816852093096800706330084658161454945772585243605628439438319319368237477584264281835912156138776570750689135524114625829610543124495767157840704072958575821860398370819694257352158945192255223806355246510089352465634829732083948464924314076674991551771363444378455522711835514070050637751825816738136273481785771328437917417072270680831727093413769992258197675591557500160874220233688250152582424910654156215525533998194144733624195297992954977825510516711425641229605697736082272316945182471255504372321200463765252846599194158912206540703908694911523218528622167397282606539075831923392600134172023030015841416367788202059589701388862172255297339471090307243526725112754672110561442876678000965713053315426747418169738838962960551822839929158233496168202897737623097078885541713972936812366414437979574414021942832550033878815338806204715682451820923647872139606818634977608961337254267687336091400004535470859663362800028937221821208524182798224812342235358846898956637508339316943552866181071270431844386363373137760535295746208168708024305836548091454603792298274681193008869603199524406695854123101650460333376796965502501906403782387068216176996912515698521099042423866676286458492003344668166956853274301945759904811907061090947149966935973494421563470563499668034758809583828968169177050394968052888707958386630419830547411860141602956919587159926870986367959002975264904809286442976770416368552135587528979152801883142939632335429440702718985489020220745150243778706133142278372808312692464920942009392637974824722888244591073976184677321524463368159901315528917063285545242526848244864912682835999542697799358914411232063476942490323924339091058437860372686824243843019546326650857841319199254014951020803053405609326560966040336885670873841025165403402289744136059487541376165855602593245261445758268404149319208523028489022891773815605022757815457050835749175725499435899186236352352217078160223753111565119935453896861649393644723948952355937884393158805150438033424442143846069325241896785456282330270703018982627051117358020668386244810776448035027894663244055533257121804316972605863528923775602863944802043782776658523665624360386590067960531602339688454764655023113269302084169496852912298990071358429600215086929145213245979088166432602793658202322895129042328883227990559512566741747519624258898223077817572302911618164710699083598596304475421029789004408924740710528883030305512535693967701582543460427274705369376923941552802410344233588996149359722220840449044541144832425425240285725316393795746678114589923804060898101735798489269134831836916764215369680884954266381758098605426989412532478417350619410325755762628882134007467418594134998808494002706020591886488595244006975407684040584078850974151169077643732796799209720010644441560973594552424632710099168745258305890187119477953734282263096902398230729394640643879156775834706635117832693475597984319714241782187513718290101083099989363828908890596305432201505050914176574129343754228901086359593735363729164686337163544296626874572631588747889407946288727417012715700446657055776164207928887592136831318910577979535910578482240001592193354422126699635523308470576413333892733618351500727867856272544438806474931541154748739244951819446464925900188326497776533014803960083928469158785297836224398015006027025672438338194644812787749890728679413139436578716676715889789996034810961588273582261376165372427721567886972852513970709105801891818061773122407803038684079598284431028914183793556303650157961349870107165126085826511490260785647101599370945175584727422795342486755071736965235393368480308904155163435990339057553491589961441266911517978987004790180647377443523919440795305045507005784596941729121609994967906428098588352079493982955158877571152903114408197977561696345285112378241224505293823822123671874783213117224099123030163447444568468720447844310922628200129777576282896880477406179957420795711280787496561454206544861277136492566318275440517148545782940321242905560227081900565193946833673457128516943714782532171845913597678911217642053488464116999590585091684214963793286414835716202370948429721728201692114402059694120416886310279963329629354368143679608153964247902329496412712405606020514005504356055764432684026243641612464344789822874277480563477891855473882597601152228292170529111032549854877821528541445513929884335308423274941964295024435940083408141326306111153256012410477955626633237796104774918286342292205496391882886355459151170011016316965798011194519418153637476414711979242229748724001134810799030993720790479746774033420625454089280179477367258344902903237898655732476198679648294796236052614138170869632720261428763996808316841500039049308401672202146743741563681673404493001512613959627440281506498225630652692385899402436401559835313595904661305364773504666212174418412337425123658374097981509051604308147069203462289994434441210419694756074004961062328910573374509879130183047756094884250214763618785977909811825870297342617034033205640673333386864068683088139151076215284125575626751004943996355000512080030315023427648424620225319974637824794391141417545522076701771963313922691012500330472682066650431337910976835260054642191907208343554775831962499306466710600186915442991184062456734574111986933276907312260183352636594942433759750924815570583355871637388528284758550074033808625693383106377870220148228650802888952977499650248079452391589862434107859348123144411952616175540943079033462492261604444185460615395295069816748227483932123804594064117794830446243133592583272633958070549790514286112629056548883129716230771253722413946623680173345757842484859577563274300906291422394189555826680510797906737937396269978802587790125542848809244542577684093491944530782567620190669385944179628320498408734158985911114813619159140867763772066117089669073572341323588461490288607671390357026325990605723429223478361066023644657338445715708449728006875164868910958402459517856269755405369124008968317070773374288772188616656815669657705588391965464639231135930095990512069440697570609328584688089190374676944711456956230801628145536864986790325618566209940575696663988254184544512949351751221265921799984716179188562988044568474002804908260262442524411056109434762191847548683286844926715792714742808950121523022147737451610136404013324211539038373190894758042233850874575811619739272950387098330626884023984012855375138865379502596867283695813901268140913581644653947532855944015656118729710614109494969949298312884699331711920487153059149030565313952898517436458479107076919475388556781084015727382587141605162329759046074186629010022014153434130185395253424697466831941672821938056615678185269036244435361825012059246938985241512114047544128123458073614757114481348365491420381548764832465944136591311075555305678012598313212636411045848806158644472758778965518244929265126411762033180572990180057837219962063294818164167191844446918955978230523238921441467312270117579305321804416378257690314656960178771391704174072086151201876442507498975809433847514936661184973911369697343404176759629196506383496093636931793145936445214299276967907381860373917414016877886820430882814982284703498311576552202013936533718272486067431683845185691225810169773947363874718669400147542613164051749873130195004202771116456173351435024937016181315994441255114448666817250108620149104062354009086480161725205814625469341535886986967234096646546681181913140065708268166517508860250791567268977868520835506572068553616579866481803009054438896661087657500895871756030003383029110634088379620625050011876506855043535707335164976850190851059140107433079273296735189787037511877121163367575255380960211815789270315150544718733848047962170726604501451690119207208480034611921604319730582865139370016933822110451238243673123794068798694058403596204992227315462817357669571961902257715863232073622582234861676594931145425675347313025789673966858710335398880252645812188022150526608398172507582011655336506005696267178949306490508623108772782775040627177244129964440256854721221949881774543362611692333105382143119871432436079245194632482663219789832862375307182623155491649428233377410456239746716948937333364556579990604150571290053159592426328077781899319727568738338504875968188288536871576374476875216780911580241097812985160381174711613498640716618675809262102544652965477637155884181077234934552524099036315784385051793699348617497597188408522368766863431469856485618624022142986405815488909252155575593303401758101144264161284871457123924731953738207407756181301953259088704298147784801372715815035640110709726393311794427739809344661275092011218009000933656256065600342273416976645472641282518144092885506254859965305358041934284012275396842465246622447899668874980610091187368839447692918788833783572583657230459133452538352372869573011533564788575100290403829420002787908294909249525850092891607728857477339700283172157253890767478864839475038016778673193831968257025837320606009154877120974781868275611456568753866932451907300245711467278638528869432562224582812979814332199941336272445853530727978497902763945051705009263252127181894949774273409605027692002288571527654176594292907486702155365634130270744591533240832737611475300494747095888888178768654462775744768469221793946990381060477380929170888457549780028856304016883122697252546733967872062052918701857783452477782643781878858781335251670931605363691195272695027552655359902407413010207492556174422018548048683002357757407220146771519385668468116175572875299987485061409018569280634727950869632271106396830062549443288398986722871398476404936616288108534445437269846713861685277829811680056945009932133793462704707650638588103278958569272988241790601133971611940810716594513286608178442139691639577475151593934683640010217913623356628434243687875703429012201944155235149775933566335389436045178065879720367865958306566452461213511957696741836162995535175418968809519465702617978323377248317914989783110684721536439845620600520470712359540681486617389553169106873571910500043993314060032493402992309395122230903425439271825430281558694487141981164350496520537410709252927854531551960289980153073505365564813555935655490148988298435030524303764675222378578556753816832062800604925128574203659680825092720867985087719098196223220587242180598186694974632164534064612570219494860726753180455741095287759391450892051997464649202633343146190441917876564963521666851561229812365262143166152187569400927218291652758463486549689896347706647121410029208560364807100985965946822163098834952973197119061348758441192796215810272839533775151552071253303259446232298297285649003112428416183051064626334186726839577412656205935848839686917817405754619233541039255730862363938963318263162465913184847506726562558851827128894349403028549575861334957640739135902760639453937218825380800378084649656962924771678181678192939498033439694582525442903856908687668477557513078565603808794510590508167187561286186190520808186329196387084790985862579277652495347003269604861450675022393762821715087765121437696139988832025037425400873547839100763790511505801841843648968187583623384459347225640108056652874976612071639328192687989657451067850045704781075620600627558958291661441925531654905723661439844868536489525225586797059525998616946901693236066607603660213888812703179959016910152296367264696145366919464202569444174037501293277354759005876279523786508996047796567132386068054035428482282491155074335153580309614419364923196994018611589603901650514910687758913100022946824846158772985879155469793553647998959968061398303544594339947167802952426542421855590032102872308438939517607322517945993152467167313662074264630626718789903893089329871735233389888381304592571694985589390025413969768619252764608702177334539020921153911955579675191034383027625821997654819193874835978463601495541003928597520795284425480663383921153414545654669805911883898506211552985777952161077994011782251633577762024654352663842454226400959237010932999903011896053630845915298143042516825533433045136915306943618188467067707867686688803206854920128568332816414136511965155943099071969820354312539734355133380142882556200461345418930631638313409165332900560926016297804185107486252897938699837069223964931449909870933320664115040858907852650655873494314884029915095770411366624434225729001708971657789705292322175278097329225373883900506315274190541178672621526203884578800778382653983336440534154001258923249186407883508128742746945588650365353405497396816444544723408070296977287012628905830707432425287713767230529944298862603991042832089675436430980647152539534255528819351575346645271354504125284185896773829415137366374596143832441609376775171241766133440990905118392479393375259259384692396247131081898214355697373153914406601674589816723374973759117363605172183207930388412569815293185233833012071579746732736872574827294689486289167786676623896083438303736259024509906896997525944682099449229115990168586453720315379503506599768707579726088246866871907693316629797384345770922912618319221487298938277808790019858181256591979563914697602849396728741642802212107291486689264521239904928851790289090602472978777655983161999224563100855907706956087480872982629019641716690051510434913852561265372091020464821175202714003811875619984778763453431881408562285064124102055205426783846202751969637925302619215433533968297837877351306322760374036676551119651745330565501609487528712028013988285427041059561908158620587694921665826503438583197109706409007054341531466134365448406450147679309012464216681128051307690427302507276697768546597861001641620753370452469780944812731144402309005231608682328281492915301860934203737472745922531131832483464243747775180993613411804759496286849632592676036111633171104244216193681207787761850001871370126968721838166641200021370160655515411777141329640036573019663989311578722554163576480316325817461843364586801496365998660461861058972983313174055549930215762771768292153047592779987336747137171217842512616059332442358204643631160808670949789752444360827644128720278699113724019746690228901797840084647488231280090279359009557347651024309972308426101063375506030798719662280442808165451040339205807709047963541976241247204122387426243028855234601306618570464173931580233080023911610258682233057232198097581820095456916521490563286507396680140047742192898848630138702927852073713874696862356829718346306758136381107445443354014530389182869677062829375721913420882392499880938526147264911190767064109556006218575699786964961907700587851896741405966150861455987054310172904899561728814273473583743589536695155393983719934512406680765652275551172389215950728339185604174951945120502509339884254677004438325920001265639084676492794041525736045438359835324133871720616055872450764157189104401452896355122391747136857622973920421579088416601962661213469767753465703737795373963834881022776436060896353405294115267837654398913447588515917286807683198740319822106297351749719598367161759590801514574393339274591877868523029268841052043516593622677097121735208989108758696715837033188715453278784421041877394436059151050617175692401375826022030129014604780275341660773659304069623329010468565732176824238925168305784405478652425088475061969947756355651095881868734940698828175911598455751837018913811001566248821276226369542200792172424494307144681922906517978514946518705718153201973413277192936246477775278388271956275149398485644460984859293961744035670921703265833392315940670282576579889163025079011165361509164757092121983031163336873567584953687970832106365172003755754943755127678976383084778458727043110048200645803611909990681927835778798756541154687773795355277115138821077970540818554095762637726567215546890378472149878119893797761889903870737185820679118469437173231925422642368377534303412810254378872095137731236626639742850758534920562407953909124377075838382651982611547175058361731798078896150630519723530580691192404167724173452029412619100625107500989299538495024237613428926306235800009935403518020518576038828696249432607181766793817762226237006098719323151045116529578825511619375811490561782825980205490445984519621445351601821790671223815741280293672964814091158350289849279984817183216283474217091378723958456273121603762717780287568394240306294840233482421765116349693197123176757062401019903184587073960751537109194944077334128689186515284762588614992251687221001571314513345670179982341357344606286150838941800122018961320490178637569181728919889531226918679187520580362959169018920361960318553780657407201754516763384995470299145345055760803828913149109871812033203283118841681593176846611633503105989733417081683384204462202227808160447423801780281317859370821049067409249337949718125274760990005128271351883899749914575195710497992756584211578236487897597640934964162007362019187370861098493971235563412723612148921714057901961951628107569202679965632777217055203743071821792395319542302143688867049119670914801294957135587342541028734770548439611763956879162885821629939110484220471160890859350041577043730804813516101554919415563370558706394398259126532298456310627677999535062971633793431686312127417742499914928850109115824742419136186181641019657640658581458754166053525936123199441425270895115732520352195257100372579861221748096527387766033697615558117699235926103341728733745088238891285549973932132287960032030139522684282956003680004182677664993155654735328448631238745440912776436650257088929367578515200015385304680529767858732755201290653986719246552592002628908683289663908140915727930779468862102193937802759380979533798349295369153732596151926933819934156607104270861408063181221961425156564698944401039521334152227021256000342680808903403872175598677747035365122523743557506900458762225478325880548685423909098827505934584188636778980174685584735248007761615161483152921247749784693672375873146149641967087306332842998798640751447215126599355408373262395763699648250655747699685819618789445282806605117244093338965266509637235286058293536582686931280054657094165638462174453448637267105892149797203595226368100243472374692012267462154040859122293592115681631893016201971473096272768210598666701154682214361385173944027863893962950446566782269083677984097933845569238120510043937278278954734744401899431884617189634376734100218257374980464461536926047839629646347357582409769629862033230921565120794394531095805649816063310234380362430049162958121658562038859430926617866835281031505334544183207684268649296877289858671069778075505241212192416581732727606665652931799833770376386341705589520255705151766177567251772299388154637380243987203042260078807812581242236562577764190091574700541012227949902220094910971093697768469930262556290969040972239392995908684447181388076025370438583772156782893783386370448916888283065977154216638640788546734852511201530542031312793838092951927128371047977412627531955102439230624648203050545835494097597722069391633184675867258959554251234492921695262308432689738071180869863520614415585182100116430503885291730660735603718449758871118796536559752028323019649164965677007060319360349775040803660294622517181415773227607281524162295622059011164550104491911974953651006230762746489345530082571663316953563961827233306209668008310155337150286237048204044539469742382404103776071148972740536966488936027449321295419686840195482196694136797967150092621455635222053113900420108037610360920156550339143426113765280876388128768227487837336817455314043749245938785675552357156770638665173782162120786715434194920871274892234911750600302549145612242588521595609635387665752253266131893035615875348343178487040388562799868696964329617280156224486113889817004433247358709106313192543400828219740800902874970521976639541750531020599923520278078074792646047422034222932768050756991573212213880675104201957725552147179339305810552818706353320550337378228987454218174476806811648202291688234204044538530832145787641694264951311621489429968640918817486412568242966356345538784149995498872542608889364145792708392340145766801065323070122533339227271386113217985514200202795958749983849895051110723097330508476355900760726458264957357663026093410105827524860554075919655661735435534971738168582537949263039981732248409739358029255458633593206876327466811326354111187577165691268670736093266053592892769609291852050210419973397692090842810041804033861275596171535105773449506718092988700923702056904483391153061428571710075913504598922954650453701579415709238465490990223455478264666709737199348945643352589471976282653152351301615393803412360755346819074358750611458009898958108009014218780857623482293660995091178547236578017764454250114211773648643353920542450461220718172415099595217033660961666205378092492584376081372132417607511582214630272916009426743442636370901245564684737226816209328269444950976018972687133024519807531593677244880802119945314410031382652807815902961300368140534160970550249226363836444275832725849492273066315556021597752162227146845383715966985215676430234526100120829494060161801996288562792002880997480257258829151488384211111734870743890879593889675502625675913753755986030396163993958568554872748413499580475815840418555049244002701789496074391812012026898214996587642366301602693524343292041509016939589067570816848176526652330961314261906090673630443596488214787745431981454020515104479436330263170846285812456895529195202703353595736870772294764439377549947188528701495077829646858997278326139114852399223309258107900007405174352523210464615533077832472857194096771768608318599474266253432305623473238964215230178641113377888968112087510561426564721856349085344076160342361009308612141514420772269972248336982311617858867583447199005203871797039755295671591794055875653501366572678301647774920805036947511430780124588993490105894402044421359414232871073585730781037332321901317881293464831478523627851461262461790705521668041592250608468819544461705559644008621648618234614383418418535588516759887941008280435378941903497408191000191555434535891532945430347154536841168193086391007294293239789834694573179877358483483349730726115930302486931057947240245026469935819937606161872081713200035164381829017917546367841652442648454911522966640261260227285148822458472627863787214878332749327174367071271049013225391780904783882337366853105956907951660592286071705034336693485567735372923664753516646771959356192530279069047192271602015910143519818218417883438523949427335188721639428201986835178527328203512399387013150951223123211859074381944673603210602224663510352591540462646942500450615674682470468676742372884744756176686199972277137878009950408781432052162150878397774468499885839220910468455812527271018509590919856794234034490316834219173569291523995375102167817841668526666908355251861551691815936049389327292554179237488949701811634883792160404497884968097262245597629511392312818938022928076692077194355141761796586586075640118772914475592939219682142841829528591757590498789699365602485241700868716954650579557238347048375229282739720602782854970863246669225656097046808976940387605869518583996270078408837887649007507966781521029933878692091458083670350411821095390980106807778393707417524321292552944082541270878998353270360508818724668040882616712219487592894196707518396171573662082885050003056859934720075335062658382516639338006386103172764950445200930695006050236759930759256709919698638612037419534023320450801985209493433101952376793404064117863131049725525229111960532143208158481021278057786248879696689274326913345134350811350987493684387566761638404482287889650962356548930384275548919311739762537860244336421208940316836754889640483944778279185735139825368450858024911189661314999568359481739518968715692206269460509506832095281378674144300816371559994267015668566869015440823125596507023260821401065923767162874246534918059746060686620035331782237006494342333255683214198473966868613982623873096842368983438402444660407398681614115452568569276075789262284868695100253102161872323954664071523786297839514890461625427350355985439822274390087622978629206109323454847066764201212543775978621616965162364022318934663585132469034969053600695413281314794668993257186344171867874496581021785019411272390024963895377473951089027583740633578768659673315483392982795677184060173449770465379170273196601070005547474038708927932293961736469490502246013836209622734851109444801640387227290815421563122342064875130650623147475236985660618959709664242978709943122051739574107432246298749190494021711883504402614795807257991019337088080131537800004273674654865175093698339365708861542907543051921380677531902159214602652468338218401168483792258071227753024633018471812159698598745001434340283118446115921804443322020152661181646298332527073451854914752256066807341520191808308488200503367023989044148772688136182830261107593161201620866607972939943119344931900206206306957675110632139948134049276603832359445483330387054496004338209159609266918829220000272962899237972627391241420359010334854768785244971496619452364854645987359589106376643664545071438183188708123808511565759275044335555093833960862485046393967813164065678302992572145158851452490833029453581232402380391761487141024060087705556334365293082914715470892187508695639928880192473623433987797688547491271577705378021014001518317004656748576510654705387405064345043889800494986185103189529426069963036667589435589907987618798286504687382093022097343600882623981646791373325125408553860440364062874448690619678377994282100992959583354461324973801190817344910609193163534704900707893012205637994053013476550074733352426545098205820935664332353765946137695446292653673904466890778866649928907424158644417421985118232072125635484526582366432751230688612385743408668435432563674217192411053777470518747588360505894177598098900867168983417602478157387713811166451266211717542415924591109702265138577147081060497839070001654030755512947645928574666027232167657033452082679686807641444268888174736937760712501778240236102797987335218940380167979883606673955377543171422604581823805874088968783806136305158403848441556833764592675472250131164644915280647313961266705650155544949240604584058988101596946263882935549215266049742638280173693168722243619945900221830480817272057206204825650970376338579770618990743333681149496119900375978001964616126417468058605881488991407318069486085146040953999200239953461686436363881186182205942402212804109970943844556066968123695772067590596093515227776929294362872060788335110972896481844800715836742055457639895245012496360761422163608159308801859300584338383391434218386689898196038762777450909105665425216405596811495485303624363873624346010788418169910632389323038410100794469219758440397914818438523093643954797556055479251005237188430059554750632782363141103169295837293036728644329175256051456961724935026540172812051376176349277338052102109107195438185991237199625864685100956530903861135298940578786636311535785044809668693316155524343400560122114789508937164175784472846918759071278120295902787882412266645709396377498897245603298548525689324135583740365335595248700428705640633438454317163399969840829936505455157872091071071476971876676901358561709956058308604017585008409343159870216410885069767674949092481725903279380364848343448667173963947694063162936020534533611243158867012893197394821812742698225438881322614706058302758702837081312016085906129706569399917580067960439726911113032396796620082958515338927594377678422328431763860497084599363076092821696727380830967527506881859327164093729164125898881425297971991648501946865095441876446092082027680706051504939193443273896151622128232790294113378910748938204189672212762222153437688964060953472702525246891550047021527523139565191908149224398397942685170543135699342362936337308887916723148047813810150210586244469418333186186325083436063379052544276135176021250831928322431183448851375371045379376656702994329901323292837217396262374543019014654722441015318390300878736311961966313804497677873145312342833444504181540282067741665607795391199035110342038757095452488488423655860244534648743007155434174083414247512582109370581386409913650958351476316768985708710543528314656067864043569565500186916620895471568110318352469274092613815592485853010066931208281495076537687637887136098853607648033302393611912566340393136107471888393649125743074985273552048666854630784229958530778383931280812054665250944765069164833657111130090840162746696787650455941893334808662069772046373107031782371178745637063898250530241038001247036675550636271232425158758880722337143203225965781357880861033457636373367480996167231863039387645695699783556424419838468097768807657346436722712458640578411011420318949380239382289478399033399437640739944449763445734058196766732185185089605030989780663760287665721380211370081085181551353496972519281271315330439190640174094839806866967384628576318472164069188760493193108762103832060131068734994095317472740550310810824532002520376509606740544004924639274941172963930048776066346133892479652620105116520911289331942248855833915642423982253072378654285864855242632250838871985801444063428447434627773168525062549650516105814904473312525610320140115771954691328932318501008129947159379120405567600810036281305448484528499045015362872331066427048342906343152966409873932896845461850986565037056047095636998925946600598823476149009402720602205795992416834896389994655825310526664850902494474602920651907198589042270990908583275484879628169889969862166309781523568254635141817880914290129982745005816316597964285935834473466603090711392534754096903731558291825019505977533088175021112749145577818829886964635623197066026974191229793789112357788912484960321125408628011030941450341642651509069775952590885464859197458671163260833416954269861827754002444180953742454848977662143472957487200144622762621648697510967308846371147903132574118659872664993470118172075106254123444098084316476044222463727849966764073803897662517241281753004693519349631536816632685421905492897776497128805477010776259176681737631839673007109860651038588485984570327550858800127060628933773093324608259970954562962123190956279121814268914663016317083474616023805358021641954974741960800896468496785054268876499094419199071025639722111020421054294070759853422489815248847130579979886906348207386413393493625916582451763890410976806215478719359887677444828539012701746971765953445913333351118658695200011052319459465983148193683861801899053337670485339891788832683745961277586715019327932720864764793502615573999052214341633755420700162258254356028612667177364865949024436609945520540375366938328645336449386560102819331867240785462800182390718630650966445487794382668386716838101657592354469101424741506996906424700959259746934639260881990874493661387303776570280756877843322144784952724856103792333950970084630884385666092046341322516017631526864513541260144140677766339984843755135068558119463967834235587134272333107680606135516357835879008444472731008807264392914618031213857730056437278787067583867570349728351121474880295157721288532943951798600125908408648150075712612682879227460024878824231477194708658638815367005172753418745708271423858296288344498828691763998069273640713186857672751067425311970143834066822345585609450154306765141721686863652134021774882923037258915093220108246949239799024789674747981822090795685952333229613929105738679312903013440559728485898344155956623165927216431667145888274020293181495764295796736912316279750964375532304199344756982168483139057061777750626617446204972058004512851927993776451489510661379067061186496011421323087575189021322818853605844690518291036949949135653014752601786864445042403352638176516596016974662304174825520798954682632746919806884723343664838904532588126393560001577308532051549615212840691579365608858875248021192919564886586739531550487847070238329497511912162566332068245633948020045727628272218166988268157018063831705096802743505669974389109187253679928273853614740804420426379110711708922587257726805813972969473963633766315953481301055826123439889259831082388548864756899325945973665886370943420651773247215348092770959980827776251853905813089236956432514111329805879800819515374607444213884334578621954825986202016826663647180016686809006606966502631832275503867364984500242824679834667592081582647061754117906457440510818236723113598443857181366640819455647393101436610961246711798191455221715722454598137170467880140836396031456185374953922032603077083757632727055373124951812489420763470309231737198005601020689658771345178430917967269964350022502911979498747410168946382476670772648754350232147979721209872837934525861483422566021150693568640425368587945708577611127647578029428775094700644871685234233655869431481558973922973866869567960428702568920073527931624673345392569606444573995151657424712060233557328896649156835014575471164308535935336863201552762898157404352636832788297486552218519132449086389729387341572370540239975099591115534692746035598829767567338069085105153157557705673949952031768374030323675516767242136208816125550436460739379619174500049637181531785749983188189283813319846383293583797310797888627198088364180023186234999855521968801708083590860704965010992496411059106779726518410071329989134227626977553733351512020128174001203869159578093081496779375904271229460476194058173771314897265966765834340074045018112063386710808182264939457464685892232752950739034852544358788835856920063822054405971809968823452349468164521999736643065425490892304938856063480531014608168913154250444959481859656533239796692481162959589126439606562838827679094696054483203502030501878595702957970806715528158895061928327373611614700719219966336561318618771494065130179874005335690403138713096165442200199047469153157518456515213910108878541228030137330437039299396545231753000726271088426394779351999170471762994504061314545039802935706848614295236897887363287264277334691499565294672643255990489916529744873616085006949374533105939412229013577426594325981069851853486941308570654142268263648616439513806363421520521070962218305273664276399887768669631509844463830997336304191664894146978547434594015270157888818165683895348485769192442531142440491841173561148020056468393738839444004751331743983914903715905297837099913129569050639927759891628218059394483730205289527175094267451210494217127672431098828506213646732040654560676131275666005132639396705902810230015130653259539851824141693635824445973178736712449152842693619290927146596378342842721151772591704283811056198818821953612877649294628672947192526372481187679535737823104677608204339766445576392428900216046697346583627906011700142199734906418188568041981453378045111756116168291249528213702321830521969217749762513418455497161458279030338263711071729581515767359196793106496112320112221575101795798309324718524707977554578444672874679077955455506849540344087398992935586761595139678723781721025389792645178136637452448317954354491137810686341894445448907475079719625382397985215844143641339779797259763296389117644539744032355376136185793577398574645198704365962077192908864737496226282491356700666500999441471523737125097407027895797559406559321586896234002186667739402368507204350961528729042900862484883872257352095010215766767931744681157726737251590820904299540721509921298320728896066814801958279185964104061568097610215776749200846434089460039237580880546556286770582732834019582640678295989033214029133666603660802223693838210874087567163007472218778325413446648841954066943560481095205498357026127257821378561680017152044915929208396835696883977781541114133778907158513152902034007861306708573072429077856217586869445893263400585290688116880039685885037219605183086965734950173121669898554576617899973186499684174799676803510192359327796151794059948494571866764754011109599283960010400826231486296749338867619129065921032081582722279859551183940138941230016690578372283812765623560244688081555200715606842503316245019152396357852135711034450297385505396719808740104015520959689634587896681119912262853967655806940393384834234567420525611584721153458266203112483262281352473825849120837225265566789295885438451214535039854861701132839668386067678914031841734876992856699885188458961829734427417987644956255325155376282166359762744458267985957922737741871787466633605051309772849986871964700242733520508237818016374375332086292799998256751627380809786350706512125443178217946968051795036376968520308868859431363453665963566454741683771929524063524743355074069163705443190883144744619389320205153554539935103198455645525936895600767596193133235395403685129933476610476416332139942146743141346926561646133521154575762685684305928289802135542455454653406183811842881865102418260074898146381272457682752530366007235145918366957986991857205545373099940468539433012521361539351777761108486850331501127547815282377374052517286190639110137961220378266480346304317046156994764883691766084642990467843492225049114648429370657925139012819776333783325354511622987193921546097800066518196575401032236619058401849741560386798823471687262810616432910861258106095977704315377717326357432519442575805555612569653653551448823387158083732623846519064068441236150255742142164721753457754586511284849971609538081737172926421475293834807763617517136635145652795465602797395803136671517449682139828661383654315961167334971299418225975513651744128730026790682238021049848589950780714306727779634546045339912822858357815839639418636329064708738212458605682244207386660863842230179672050202354220277936244639549459460653789846575688883175233388100841069717235110815027649612489122094513881070173289505978616467856478434424680723640048858292557302137180169174048471382773112137259744480487393503649077983431564593269341048257590782036469511511888952678839071928929924301053444868550793920278178673787695295859827622407700628163222174677570960148193805035542813502660771315326679654863834784566352492802058077209993956166248395659397378965744336744534009124997256396707997235648174535848347015285014012061081204224934993995231412996015334487666607162065913746640417064201198885127139745449580490319757687244206190244141900741827372050074261470307791769442999578562627764633959245525123371104783152946156885642613827748472658811588262510671898359808059611459781214499618817036122672380138367862267042214194509735555406304095761324922922452451644689726152802040463963602278861960367728223672119351317501605553799762933267038545127986695198728370566791459411486120022043157950359952314886038042946971397809791658342061940692622763013407791881213482232635295260505801106352984721993376714699064148920940438017605648740938229656483153819063135618436703564427528875550357200914353790590271826759243825239265737600457505104330101623819502665277731227836848124003382958813010734681701015876367589746103108365235643556489662748042436404515069233480004091219960777787468128145209170758501559053206042529033546353173272638903555207048819995574928278958945311180422060983288305568287709453601517906836083626227494079916278192914621881297371828007224413468498074157392595986077742330962406329875604542040665525843977120507736230276764076078517755590313485227548319205187025531538166265236137274410055675942785954434044339250100854960693070005507562706909132870538404481566794161847785797605275668267174094911032885507356032763899199196453085738033082886157018976372239090268779344872887931850885411652883640169538125293096250333382707070721754375331381713438903417835248187845634694648291382169018565607121908930102752418820936771127830517819379848473177641172777811997879482258821507749330304779056584946150510191805316868756641198147355290751052024414444062721432550923253235439548172322714900430842017751321422122641142371633730716295521957470157362218342622246686066441150805169126731538975286760885191645337748152674388255226600741132546043940245686764885359188835897786022755707923246927140189251944609936025275601121983342476018911918333402397240366049784736641873895401660772336194413069598206708228265851706630431544483473431594724171330652524116443329245773946542432776545461509202304234125901584232012790433626348592784684312068214048099483363316121292551023760936410923191386404810736879724944688085639413246996872137350946835946650151118194011460667185765188911859029467611264838283873425781590946129422056873714877534658676660938788278090863858351935691743412184852877536785126134398413303928772629267751984609327305541277092928582884486016983180853990945540517384406723682004322529687766769738135071563637459681078679086820968641953132921553945639025130021911500366990873556485790048553781266595988581994830407710253188091379658911877660541834597551706852897760425336089616954791832803808129662413591453167599684852060041792185513111667395203967932984544858986579026403963205623337265028466506415950113545027865348257094568363408410460515120339812258019369339426711583802702781616322906401725266633601584572087882639699519814832140058586266537423220407793550649599736776595127404659051122517924734247615774810131887360947005753093502336405701262151831913756826478100391675710689590288326274802746494612157391144527545142609668123708630745039285897917629952348688014977958688679566680161524589381760261776252153053399433336923583569964127923865151563647666948943253434855680040981949515898726706086661189820156715234134649012240097345796422369574957213590757966691767307605379193113228171523083208827576349128739318808331169946300262377759045253398203357678422108005555602972141749141996197396679131744944471601079319303504304583459037286800669137750366408242009423170688318346492949457931681956686440876964464324725844781361975336235753376353838208487021501908498165219333896744592307241110198728766427808508893405919861493988314217502104391574272935659415456845244613674783820514794589222745587291626444652152569414480905255484263670893704043033528298287239752634530433818865206956537528574523931052600258829275116263294203749631106802757132733789434630939936575343198557748609116922668600053794481463574147072095476855354094941793437005435101733543016052748302579683715656227359835188463908404119403450885389563417549253959172993055648163572504963896944923803404907207426654676182200931551314453211963847437742238975993171622997791811263710576857547945714861599363237236767718682020531416729462685220578134641621009390034708223418894067589642922317930764393342767604059060960066019007710761296682873123111179429661710276688208113764896724008898225367086348848948155774683000828572612024476889885280147973789965423281854956440256029660058190841351218188578976663378231651493856428093358656661041943863099676783819473058605395020811631524603209686713658335942382110082514705370308159699103011785082733262410630513867988239202323342264384427453000035507309851921463883774306656941731096528569115940713717024055670088209402763526003418387520593275324606363370448901517639783529622747593737366656810159847243779547455324728169407044223363242254278338200177739656114542202798602959274374266681759514851025487001656615273356619856467731967184844219543622879403218728887823838586420583405707644166977112851411058794574917852582020271049579445600111771623736385487356285922856731192598751467304442708188444292473728398804309151647835529257160716899453008191142307640154669420797958726663476303774904183694541514823026258673382030433897233842070445189860872278206346314476636528348507554720009483677221316779407346310054750091375015063272831024085651590454597928937688357037357636348831801672879077546869603256381756330982522860390343211202056145868962294251373617567912781225873366277759215690455110030410919928679796346158686749883595970534580867850035828364550640304735801989690144895296839297136463492565565947282364189457519127530645176535579616481168072927554320546218729345340175911197962961702519563416620978293312121223338469212781324544483113758544296770380252478204149469846716268239105097156313898418028401984639807519218356995513291509885339357748494066530336357025085077240730510609362227615178953910908587240676766663949242137135122374919392131893447122197332580530175899166661796042593728286850497757401352664162479106140140401292364756417556452226529589089450378939774907289108291944036197136029538052416922703752804873989732207365870808091125661124004617748762408017951780843186116382592019830423263884649120599263590488023614007283707955326021971461370306905737162388370644391082083902209152973368274511198138267232261123520298837314763360164120275526895409918691606235617774504287769200974797859005220142783467270109731346634135809904903395123987226401515015702663051836061366242486830519083998502755463799149179217355641534119429488445315508470669509652042086308528889424715207100237404687249194764760335645067060016874274032113392606888949222154559862341050936826042803236413975163680518810691592016334428403685570091898473342166258837598041242197943222376326741077435687884046096923534356189212639767401545097417595958220050380280364797156550306510208496669048458565113886236025986071469881215252262972004972411314078790690264168502706305545457769602681342948990325254275065174906568580555164509534698073572585193023198374009047933782117580063271002125849105824087751414736434628962899819249877065744395480998064733855168268380199000017377555976295034084241813962616068803393924539966589199011402530677745336155085660441176133931986165806891198224066758112236462857430979699034896586687225597441322094147210207700930351926676038803975065545835223453175260817745006109800265607277734396856597890529599374377782766746910865175164838576947280720134418972937113202922701914308732286167235095479564866518072001536537155402052681031064053396511352027439533727783422999425441649140814767497154944406493161157736842223137536138287722426721102061633037296333237049064196496464725920932896432730565368493870865620187961996264335793944603335123894322772037648636726734298669888468849680211418869734978286283521847234192448256016144512691344520691096769279683215029572899210884825585041196102775449639523108858336112928515241332920875638290153597966985227586466558461474518264390271305969688540537415466959060288274399575772584260706021427836417057164499111447680791389605194659110025886728831773961633544627069721288706826281877063456490537990630296246659602638606693625525773781940800571941209198397897801401261678897275799178039608031809751192579507104527889919423816203238116172074986942475718473870281370792589494581164269764784350852412949523900434907261139599311758931730223405211916185065324637386525016631990445733508689192079972130506414691096627273674108156199601233861344566097784880504470468796300516053912497718077635563636432300169729076621182025760379099351363205787925111206518269196477873918615163168778301223251842202495024952132861354739095446975950798567849267474402700029766935036109714698993965926869835164054720353936908704118125280200664019382037640732783190416959007882557834740836817854093157899211919311425704428062202946709204591479835841866773630448159926217592488640345430824520422421810510413873274029017506669235571335268249993716699223793847266680093366197270275245117434425841226140566156315236465735814251347187819888261205802583718132012390895389047060163812196027473244672346251009781321718500793247394843238110390245652577461130984623017696605151644068053229242660677820686486481081526359298631693883821335175980121403017216260281638663673846288677946537891481710781696674654695162267081247402129167262526383692050197925033250810640093586850675138552304574608362264529627754418687318056141710469960531990551218153780241043673103974106849693105037235421851225524966121507223266315081286398063527230330636765559842662468936165600950061192871954617879899794570722407180107741817288691364356562118039383507157460811820833285591069637944894160681516618151581749602302566761508347511841623850367219035036481814578587437083004563914294871768888116271809319653510378759412134230131511482399487003195236008995251536574468009135385562943234979464175995571330829178170808886941566953311369288335379327870024569012466545060292132609848280297617571555998515863197267617657228007309159398615775355506662464813692125481053020657364279519128573819318126498047711081220483655263285713823435659023253711155099786514004405589027578684664210330967742875903546149207681959649249256160077204694239701667378029509099463092655651605273680721570473368046574268873552550818206422636736444850434189396809878439176041312813696754080098234973169840936191743816135153330261807942525621385119304445084752273575312133526907707582897269978561533989183029962882474835376699796325602619016783078179131692273228489344890877794784322649417294625943887828463603469203880870653452060015392206520139939139331516278235091782011626120139573060082747269043216749371104513957972511877041428617381242679419635904536888110643010825629167272859975039513407851465851303636213510876843164021452768098124133159288429845079694520627155790696604685289646615137060057696589895314425357162874796550041374134849807595205415954631139565550944299151389225007163671981718711948941457762753479709419729573906873198827025284774438786403978841039177845520137333916014668361893262874460460737074846194023385919417454873185503363352432721548781014574405176232650028788072784346911814080970898761348930935845240180889745060248614930592522891094709074443946379445451079958115204470050391855408656299769854135182323390178884658513611020510140767417823141695125724325114580409966969232938069185169320512022670308418769391619566145986983449329106092374193803266810676849447175242943244659693019943144433028178958771769663364365422210029898703861604257519599535760155046433182036461529095492463948251639551022713177013347371751746163344454507445548848947230861107710021592201745679682357593882609262215102663423969376595605110127243701085320526693857173280776663521757333100771118405054626591358925242316170047397329946403979231240087594962778846815730504256355954206626362004578043855214182762492633038350268493517229417422466215715610482512726987276688732326532373886681929629273657637902700278865505786270772832104125285111231777034102605741024435811434258942073751836151262974821975489179069955164738707720708944013634069042390848787709522308504589890443816333780124772208299636283627983554803412609906819158128009198027805642585501616341162955389445400767179253843813423160045687986528117932951958463831033102437558807437230665164953423272814819790928918654047315397940771998102262148964951744626214689734180137063463395296896440039561430889981389140856842711499793722031230843201363496535882862320804544397342191814365830613895736744815306527208575485622342808202611898419042264983498799712129898632786110384203509658644013683687869453250670514955961632272300260027337152303283604535214732370384629787930490802796068267938024609398389315062749284356021190307830652565313036840709299994993462408638579159738837876584908085957530590915036856958172502031591677611866435592544494784843835024190336737550973984231331344238302347294031470984451997837260232682764671323357386552891837577030353321286665955309560212986311330163842478056995230284338309026911318642651113837989093870672432523951420532861696750640402094279883491174700292360412145380945675305442791419647871808287913110290297261367655816502831975006410259557108697136438284800241111374710812048386326317076623264252042994556301246168926795407436180280768318941370352069073652881769744045505495950742640722831925841785947305222401731771470213021077006552594894182471472592219352809892724367747238103610552211794071003062183631359871708156223385625227544328162825657041598949327632851718286221089643331875859171864427452369084128793269303706275769371811130806199513666986704436028214192888157126993987383567391219757897317687669980216856657931271200700069672100326655912153170943155035299483456635317316067149678802521063465310058610084949878676208663922602840796920993471516352557660556802293700221313150176229022674299526413534257653375239082212097223269253652787930878533467021668030235657394596212586404561757177246251312429809301537970944226136139470187698323625019693548958532521072364871858744167668599942408069973283088489299231096929880496054477257531522025346416305471064233949586101334375169331279573682250803109860105819156129546016467397911991868222727903507494472656528733147701185078079530918287587219363421765341388232309859415015782133208957042647666764040738076206385739424751701085156010230501484863522499577867111791207078285304064293173227663531424088074198069905163199615483401830484076312577314672022724932362545629323096891732238483409212621568901048436922123941193167724291102424793641271436870036887441150909839902997879376935121560445385422670912706737175027389082207942307025979725364534539886581731253697839286104329759691183188985529928492527075373044073361499703114178670698085552103058694143222093008622802993274313337447409149863296980939158334721366817711990475752500347876003986864391202292916907779210903672149536567531325451005842841888867408972313902973016659279744399216581111360838182883035590149715035530164142874907053147681966265222270558495472160758009483485801927934827625104141489487254642676001832835315019291613815299082258618489876965851438110775942188311392425149233082051030525273683933295434968795478239261137063546487136628763531326546945570165719489008853737499338804645862100796206854670891153780878508964461116941381572343281345652699943518649620964324800251473230294770217799263848127351999952295248444173286427228079779802182132877700875243442160399813320469847268150026261199167513926160757385518306544189266011849304304043256092131492459695467038152925419800719041185820233894375606863930230637814222762959675775854573014475860737544512771534551184482135771314649377987727704026799176051780876922435293256162892352082689876057686619112295768333897244010015259562464913518787440225005997618794474034509048732286726072446909340034930577373873212510946877476913365861444627413008622712581430691438774479730881898792161649966697957827209362902003174147313567994051332514608102560553592005228828224056200315723409752031010339876880711673416287383212294253848998965853225544453365517059503912609816355983751905990487823212501269889119201631401257426800014123890632680970556904075847575505811896708709532403401347019265423919043465319995030448828002875889631487854131210309848550986056960547892600471762214460344812182032289471685848324203876076781020651360921852763436552870051311613733887868893565764367209887992815081482503921355855504468298669648684255931781692456590041254841479904212568655058808150253463478578247680714864011021838168236076835379828372385382155457922083343778524885931936080981858239780440880239220424489333932847604196937844335056204686045391342403109846262278927137587220885519231832741158848607418488143967210582128917160126866371748204535315453471165765222174776556716912356479765876771436866795899983693740573068078255266970858788131258030717571448025922528504490944513737866323631582718100770603610527432183063401245922559104373658434017903125043982019840121851867266948983113268519676310432937523609746556578091149381832675880504655202943674504749788050283078716248713251067000566940727525259561040081732394782589275030725587534340243455580025444456931969044100076243429974742462934170030472643430692941364361042089484845007292206178514778597935385123515700241340481228423451916496713888447940419580993328860323293650151806809563816424799725761545842946121772777933466661016713917714926398755790846642500913256767892730028565871001893509469209190084235275145916339484066670977487352877090730566575710711352885305315586347615072241985816184787096985942672752768787357906584849959995717077593555663950695728616383209968715347536707665181195330548264701457757172759080888240750706240912046159825539462099285441317888287019599764443120385546046425448192138120643288009747248369390242076959986710865355807275118189606731344618520835105224275637176127587767918090794984333613971799021391120046327381104527532229933904906753090723944264284704940412646689247027462712836529642592947924520928687434163106952472882391717475434132175940555909020028229285537882746052214616367159012763759643588715782701717459797590056167022654652460876762057935189874472905860773836582336560111342239721298529549118372100642513197738923465642187884769819875606236826327611291711016374470583519164184902617083837475268465885937107714900217318368986994037768697705463717636073313188021799311772206966791747559392549198751079031503170492242128980877314076492146728648466733971494510807932453231908512725491279684095373508492401686675830411529947765490363678371791140326123959592269329775664126060676394761654715526679615216535918784950584551332656583198357645058636249615868335720834454100025718673773195623661993341516497099057655616713322711924793145904668927036399900887734511175366471608132725880037963278891191767385071505818069892862091741258791776050491897064021333804732279922417786092290468307111123950430994920382681156246202971056655187406065695401782692615314331326101485603439280259074758612591889469132395048746053686686329501813714484646350380862325339629731982975863874679577010882660596887016599206463444503176011776049403849924439164032099715974358353165183811174197721146270334694574344916193978922579851358612767863377587503676438575568845596526026370695087399867836383705794033819228510361194429390202015090653217552661601081045425565317430272522499770230989078554260594454940318160752654028269988883443084917878070492464787274499032172768779910877275335331908156076334103004187284199910555848893582457341984354523212549856688583928287344391169411799467356269055787859645350214123754638522114820441204732490568801872218231836140993582973730171464313717920667160450236809465107539486571997096193670443892238231736562983244134718897142126239889810911708123398583472702730947407009995017080206938307331119249675471347532518433354978434231493399967016325028895379662275722897264041647299517279342526513486003860293145899072925977510185779121362691189036032230523626977692199893590758572420302588874345759088175850014899775925989218754672784008480129156531286640494094586240663203310683005571934553141223766440582219147234042520918830634959966021939019553676936577589100481332703874870796232720227389354187017014071441637739458433185706020437533937325211508977571202316489783418947448758187610669670295673109533272224091702039026130366908384720981344235328891403988989876950710864589202472768464639009844380014339033623653112809911140129865090421050861689064264471920714792521816748480213153875512727454439376552320388982043031741580427636089894678016723476642921190323631634009364644661905399856219681847761765758438811093949019651593353329146903692492084818730039342467642553434515586281335271300767390602999624822098137786831617702560480335456405467414052363211359251728174191794734926164073096763926489053773617921682708667835924406877700861402625646969326018612975316168727238596283258073874361208538921242748716343336537168472021855884171560765182041271481957581875172077884232618319786266595961444351375873235491321508810131566084506205050699644438084706751058281195157506097327886157771366355102191871091733988925021143564740517231051723411675193763132655274433812039122170010771181056874337270306012482028908324935342018307749121305768632097195499949368377913751153677861794968788778053731752801649091770567903108663972646627683535976459217822933206294419387570647847589809110750690128090935339692831134117557833937333917077278546326834118258540750574903418794901482453571087759323973456827508691079831594317620072401285356735934755319077668142504338749390364982088088814903640823486237715085978711521101759813487898167320520185580372611427027326995368776408848064676331819797643517775565673957026914387809690775109932337741720920671675268650684155070475099600431664879108790865267641639140044795407867693561161356847417072038422819831206876436196135936995791195555938193968030326316232126665692060265974449995334006395189276689162828114423421984757145336071030812930868939069959588306221962421974912665570696663217191519625975209607615210367127699472678437899573571307213844016145359237437122434249264412008765602043789399674007104122467551871207714719804167334988738225418991461173569437063446759025087794490193211003066673997746467865288327068038902322281073407447592307587721030434942858231318626938003197273913425882162300805043432485227916786503135838149944761676667755225495422651554416601593747136770506023836421113198141996481462146730795888984891545085616952858182754680610153415331380509660302813250221926442390190661638620517850259052859406578352474766134832036807548131613004011655823259324550362635943325199556569487892756546532872237447410749788707055756450562481908080654844173444514599190054816507693666835345640125656458213588235664859706541326838045784476072032581378227994250356006940747726797842160476219837599982281113028636234914566344158345009350497628600901456349375543156253444680777893094509336595800725408826098110124377027941749742963674476441601945593641977027131193045685064745100662790329121674376790184593274801890538062108260993402261399829317244433239461764330729705617487704643929602468521761267763555515435879779803487037029626683192382106551918240976889900698229826619244693083673879141810536902915216991553534706200891051291544060087089163844428606278949720463974972644606515566308907440182674762917186945787213509445388442621403079972484071171381635915558159911311299981875928446272031606219999705923665254946253090047259448425444463139920908791107637468229942998735502160361298759267268860791662130162852169252540751456724478311672126779647802685051584838226418053855080401550071917810615411367791681417303182755382300313378300516122860050018849646246116239965701552565183345622420828282834324346976793513600206713761243994396519329644999060012782130170304481752804350129115109881814533815001492575173640221294200936406345298966859107954475839991455898194033442964423935212255184074548806932763727892421847562213515787630815467868835925514177557574738832493178808947448920864038094933433009241439528950174309711503344141728778553143885006855307034494270458569199875922689297140578648476437305286064655762517925064194927632447066882607042105498863715267304067013745056028353015124554947410639501292204498842744032734955007367253245606233166749420690671455530782032248127992193207207205766727131805085142898687229194209855205752277912636230556794165802617948131836084037572144345172392261083938480716578980327691743097360593535482701910644647282421017516630227748472005133658511338744115782254314285218480998456317796752980089181570947072423958080213232311481095470635322687856707106916891442441517992135314385924466833737682608467412142519206500105327172441896535080834568174374852356590969298729647501118756570657006705533980841610833597710593591811388634333473129374556326834005664789027081384355311752243678303637133906920458771977506901019080609394498643580979647263012410479112545062552598941913405913963091425203170156075777825032173251265940998701622809661014823346637353636960846246340461273178827749860815100006571301904129140699377973105930538637294775563643179779636521509779894023714840430459478374894218477342495076447630041115644461537613681964208266447929391120943281272981973599912948921198480908531548398912930532433695038016324356750218442166765601046962558352339445844525945612579418796870791606763659233358785283553973720258230211993977564238345464743111611155978635229006003449892377822976934877332939428698496293705556485581210694653198056820354808403688061000357596882582968978481992700613941495854594925200452160003213835429421052294019309513831720744923709329354903139081350387243968865491667986037481502050782600599802370134753634606300508887894788016288140613503751747151542740312838528140030603552652121060549783002506786213230467948907962261446245920262785053943729420790790336775303321857731492014478754886773959933579190931655692738807860794288664334386939062001049578382082056587128216581352633492533016969967344649201085653750239560455829060931654182618869813404561097694737057334378356849978819725365098390194129427860037364263900920290670024619333620773909754005552069067065089122039118450143200756195441338318308036826075967719857324144108439130660950608962584677479371919076128953743991568524426199676729141087571732928721963413449240314720245621697732018293914345881275109853439820205951308750068505498420494330663338232537031695072395291700786894017295666454310826157043444428274315106774263107906809722820227415854557371683086925203323320625568756792417245013375231169288227469175535600502191817311114495121036225446117086756544904967892292924372720673481486922173313515508519173378716855908995740090015065329902201473472070759046189341935883708637077264841305507111714867137382349264824532148740638261271474299889224050247218964037822363842541579623969816312629560883171137467725935795714332782248367776900129653847348623860243678991786358190001447605085845207643309710087587736934802449983491849727587780597628271711380862051209088942180604955592738097016799780283071954673037116531550089758823767559715570822869506811615868827760917848524934696452135811215570472075235618615967498291619662625701822918439360459642943648036014782629188773163179787182441718660637932747145578924633721599460692191008051453835368604431666764941619052726384754805630924422511592137221842853111881423799039407437425405418411436148126067050649805373979819758860317213343120172399062834441434591162982795418073311455826423245989742990790528310873591078207051009197503707099310590176346819749483797828538987920612155807623847282355812129047350884589161141033190692270804913542806303918311507546719772169903522414306589303763901242721583265764211653601341814010974644632916373301300725645494855208375114738657676302475846262161729315133322297651500865733698143004867255059396334126124016989542536110216206842377288454028150865323768033889490235783898591016030846101426180834263181806656902232172722148201014416326352241484227573095437400966200165413577037111288054596926249293544921691147185570459558646739431358693369953724865980679541966837188540315335533660884803327572833109937195250514882308662549428335544932367816964454081788885094822238381966478716173682457023489525489514337842271059767641892208815044957139707029031550259976963478022032607675712400719099043020451857144373038851118583180321483337177874478773304111200618073493964134867608676904427829926441906810419475941804752950107843397713629888498562812370175653888903122598101136784951199291236450296871352399628275184236896850633258365623180324174516726449484553725421541150094729478562471655690394527655894679155209436300351233922456745434383102563501469434475116078383016796158523073384264540449086238742110188343819255867548782078907287224916157952578676661627201989981827255448643602948057643643109491609316396483949403789027677784245626489068751332367071907395374812895888041572062091335752759780516168437552769282830780400421918377585330237158097958898959020480184645470282575316869387190791756021034446275813468355567101063613608732796465860810675234051054271571254227110702978013325694030120841123254441202425464101493918373361010376512045730864759322802762851249679171958571554414698781577122980189986599742535123644826924484658639891037530546056585495402259694752591435970270650278215828396846217253962072081861669847897105750746450321010193611855761978705376523610646908084418925078093084675801397170780489303083678018986942057707953969704560763730236615221672411770751732665972716551629859220524610623887429419519143988637432986846403323069603884165352878213336150984973478337278221459630161044768041855207473163971086808222294504939220362889372137164414610484145094840352415358938495870178373608813310175351219012765719189737655870146730865729854959838649145449849751861284991163129522570404277988631818527645223065819559764238642332933052232288144018106955113610146031426032570177202429450460396745654256492375928053533785737406466587075026654027324739954910220047069052178594381325480321429103552052000482609734534273445912095706782396812529939694171989840874517949756627342115353341706921500013415368259085411579835555306490731977504893954849886728843252281123358682142153898083130130697943584438750052538361498232028680195727480542679189497642737322635451868760197244718081350327947890607792666348400693204441261003568351261903675014285973026846017839015068476910471132989257397905929403233308781671670271121146025478031719864965061141539631377970517704367041929596560481372473521046230817647411625438785355414724786788822270883847575685042973506736227878606109925637362446706874355053724088737840546232759804998873172820166235170706214784022624272310529031177202188874896563912038985290458770935706090533401368269307819527758830931809220133737972411042858575247550589005184095359431621601460828297543844674944343175911561662634917953337864869860203506314363710642564807055724118502624614924082791347206778211098375412861913400013307425827804203149428683613717333560737372340000094374275281938781601120668703622596730669511952206628711929128518552055440841825888654480348266940466342730048978574449811682049115271775657253900563341314051743837781374023547618983984509757689513322147000691568886287910596436263841387584026443249093208531229653001330501956871292157752148887190569304657250239615702993779912274150842220569693416462982698171221392874496962593791195141665854920042738807804983762779769479302007482272648841513593634504872688903124502640715384322430882674111819011676452036357615226700776281841276631560984996662173062193735704459052305936442680506155629949399411661801753789996070846886811284957137797953473509044571153149948079780483066089386237943182310699052099025677212737745945160863472274131508458472236331149010366266431768818420273088619971383203539712907717512797020340686213558838027398459152918183990191446826194072295617022166806936395125736533912560477322912748108291637394371625986519876508431421337322171890174340425947248583920466609307581873848595946453164285823723592749195249112694002880294421396885103686968323977337713828551456692665321335644588868506948171728652310007168827178456089434796651324620742207617976753196184043116580239008554941776917678150537101385908990999001560586759132597057141771206004569443679556389870570535483924589186412311936988966225354137747876794058376340089412587495865907185795833736219294180394745935431696793641703343832072175119849654370680059953454658911596877644277477088100658544407721247291155446038818262823757803329015671993333321601310926882262446943497217208058833173318837913596903349489907447295860629475771916734675665437763916638442960963936988726313010338221805865853681382495569714795347526263407761959674312063214603152048270737440094281405719623620442074623434192494887074392548829345460353241690551232005619086581694577167955245031242272234293287990202431674722533965668213505240667444474354247813531760089618045947316477962807553761552899797515362108313955942243362877351389265306763057820131165448201538023089929480914894678664521317638563474814343363991673914522735849749980218175922846893221077503167358323405467086714892281874699284594193611644136301300207573669044489356923815975411119006888630661607780020247583295539148725804263513370328658847730319622983013061452536916764364918926856081901155002629232692778768870036167657194400139993730209505023109324426178839555411513245454464408793123342250900765209542533779596752257597030550315060449353271248744016043487336231344811314822539108908426464614571862663692820642020347473456402129896418478550453606026858193974336204052544925958768896708819539794262673018422905164687870026055091205213645460133096093018804080888654713017017098697610842291647835040614350228942770409368959588843755723527050726041782642503202944238403178999810477762747878751605359488689626665272422116950709259260196118280741170734935835312898430752017258319099832323116867329988022507998779663574173172939325004722528487467128838466444750596543636082806920702833944788271420902636302129491866266515908964484107596333967335445261882814507877412002663834232831340435578636534737266241488006220876747534641098057803121216417959667044815259993123688170726801671808890434665355066235188336020778335453926243918176001565229383194455078293993264781256337403222516721243965134223073119037624343863334620728886388288552737869161881290652758103014223881524781580772103966170707051153825254148950663339441155413326036841750725776890673907882631061593322958841615829876057306702113201485677615860625986961328730316904768875969894689681340931940979237833854467807065484641295663518093357261513535036152874240384932423542620103359285053068996297622003452416661579713241390261726939211509340873090663043300152955536514918653053201252766296091434706166297391693251361497268700842221971741444215122544017986066211720942670651835784924753132660024233935050767622774983727558322373526746041889122684394755821341203146975411679598673437916753785476202164604135829774308006309368668884994619595938036835968689164750497431021547905183264433264706144257850074878106616624509827085918887046965509501565153619486372715326028557341599983496174861244968376058346697864227587085554962397516858781110893553049656666237749368058613325818497803376834848288329043996409220831587954021367547806173982165975115397311105435481454806274693758619407558779092634038308093940147031920823574642641457161903609335923733210809681307683161552712677325003588943160899193945494216737494792808563655734061803388963388470557331718954553070572731940186749211191547061767705869359912831857658385748252429599892210276384356531627603118046911354972447201278705247483752484797320390311245362589531125538719976365532887276393478723150650164229525869640378295076521072295460952408445426509876255295893408558822112117131381535732960992433243973997934619571795933643751496034174867267082048780084216323945045030270050008195267271515545178355180850005265264931492794870178539080422926206375498760803897314543224150657215574265525881755034186359815088655758612939140995513983001382713223327052393177130147864354599528761044572573979696037210386247421133573766622319825711062580492585254124734419593428753910370292066903181076824257596080393513055709116221030092126281121262571575806972041197556551289002633819748274002184275556311036467077912028534086559698821033061675101855411049670887990088419528102147460073747227621185439923055381029936980409170683764747225245826495055650924777665839833378150232404769072616087636970209333985984325070667049665619882359536771958487876515661672042866308654876872204420774585754188985493558105925735886322169339092350903055934632293668888568459679044852086846533370793370539394548054063859974343934509910512200921709150623662823153000775046272413198782976962031361097927344904003127535130371565697213308867039413960460022656683302328554913100703870685383101528520089130251136535947733066668055874432161801717738994144564967162459068923373104575326980326669210969338125002458456126640247877360472545355528864189337136979518954674770003493531429857869832068037422540645649704300343536516954980420896201655953706224528468928083998293594509559922086605169669605854793172020040850058195068697029411042028672951701325575163097308671115382841380012935946825841062846200314596388689789992339774031561095814576309452393337378838854192166651761849077020274689680165718784151320048445332154897731034644194536293898800690809878598587116908734439461640044967480351978284267618500514572632113934738645802017872681926808708705911365665243774379927155593091769985320540573648340706978569780341030662930593626001433772787760128405528708811804108404986809113310835872499113447468942707840534714382533137915637632197711217899022424604686788003704889428534562279208566311775992635240226567557073772910785690774038805294600874396599040069853413733755112777074770091992025904055790888916660600668532129321898631863846872979248077781272500513781459676593892285399606919035377401852846185388977799188455773651398564559602154100716179195628010095565788568693146556392065354812345025318803822371545702309850436701786821313609022615135903038050100142429856787558204249123220991100925585320582574106262619924563435250539583296327848964074359195290727312097135546693026029051648399465273773614460378499841651828812298374641776341843307676737924884176418507143561203988812288094029213290871694928484745107279384611876743420768691400439908370812964085322538645307076265557617974196865212682265910052256227570272339252682980543141209495958804293964015142890117149331867222693159213025177860310642112522196852312765838335766375768143896588688370187217682846871031089450898214783167721542661577406228502595587447811310621011288860377799089002282580720278140741711320109934937785013325121435902697145697588827903906547944488589683012145662991334630166846552434960777008731238033125703492293432731149293309127286539063297401194122698386162718837133681552658804922363312859117924113931643050291949289429658431174252052286595562789041328954886906574175206100363446692216577895869286375244159688742897573344940980417979808951627747376682807095787310371984847633277226174084760538444938206886144020834659277202506586612094606384671639231340887179249054046467461565211571661595672114267308485370641416981285481206937975924665670598928573765702597571155042648819039115858495241602919956159409287917282431828653307749487017659713884081488322103346479029358050226531306977434421827446529040447039947861039841630480679876748654578018647062157853084015743730265646515476144691993522717885821760211604013349938995272852391676010153297762894264505296884146565654094348072519344475380179555805263111532422988289845591840655956589607219979174855938810464400597053447794168460961108183131423735240015199550500444134546136808336807111719674938851889834978119618525838254472039052825764809669770587919180779694404192353745734849628645284781405275058058708161571719600849477833919692231798769915779300673055054628196815347296566274913112265581007455178701831267674006712212455189508425848519640968568276310480128262280064670323319014975164572899537948452574599962314199571757500386183825771018752514180238413237482883239289643742350681219363059254275139943448262668921130670335259168549952773350857944581261016480551493105062644771685307381276855778753529456407035690694234926639868498768695363821586430282535624541566390705941226474145692053128354603800980935740148151562170262168758520010044289569992359366420851922477371362651827410527724107965176046063219389392410773178006297885471246497595787487252198062752970176854705288667639167264062955948430841986857169221390547741785863139664723248184118029779175616906507239067502915211260965560271925670690102844688849117772669582590778109384723244744468297679919865438215117273960395785912989192049642467772608228350011717773131369023808880887335730567796335947960437015063552479622502176938805752315360959730560762036706465176977116846638207441903775565380787959463471317984418403251487560123544222019576562853322842555276484769517988047903838984419505368743970463216629119657718069578754137137064098668717410381797689963566745086284040784481229598113906869865400715506187311573574610195764291965948184816569063945165884803275414609507075207307519829445343271708707542141052995845197729350857841174039992611871576277997939423562674679372627202640929721336344680568818022272402532930362860236128498529476027171551020619130752154590992919279079894162583261565196413841547389047476689618712288206591598625952356527398636532194190672882279297628627568018288399756477689807523700454846608995639941609630935071762828860336576977677328173408881877063693292325699101042305941384485148622313202423484647795960123891660472867602605639678258948832331218199818607790214324808532760958287922713650875167789778583368176150710524724827532799002434958500489826589195288986270701840666433544846240976636672659958540773821656922852858350884853801375593518093413741329032766393978853213726320663288670597900102022270496957758561616084208921357448302000186746912386087747659456440930182774996470380550584673722412009744858079915151963502260420688961262144063634408577930332359530021859214797397004201880688442112709181293188954985273680019495762908566513987663487208896305466208872943152566369212899440479180873536257012102081928478779531378210949265961076179932262756989619737396351377367920787032239436753915188271517132415646380119942433857578994173940799882787908517467108375853849553962565410683770243969254164409966908751222837867315892062177847418284008837794188996012042847407552883084473415328729790119087497699126946093287601558459163343730205441664642834185420512095096670201506384858747042505081975616855669728960081137888334848319218414031404612795021846422795147406274317967839929086762990117787894193670602581638685968347852130406767914483913176754953922100709956426969296166485597638073725153655312059623180374196324805798306719145449334925358235715860536683339527377988488014488532757413921276865631076341708746001232333883084409284957539029479112489709754208111500922321358409677485998210575521467319400208893001687446567633227288727657555414297728123738512276965882343162736900282773217802122923096508280704204439066070068329457217568440054602390023864802047687192627121958895059698117556009585092458412354309569767418087103911354325167944180181345374870271322986786093561645572547590574885921101250851115238179683691815108955476742947094301996003254582564871955072703896855334757777161129254388370660493438555440404468141193427384453291930682013301716342264700799520639302560043816562783942538566648142255642623346704616714375414678028392664825375779201016916592311739484297626559799247303233811414147111138210946452795473083382946479472695099162460160876211554171317178494198315921857121973141039196423481276247505048604525111888323967165859364026461025863250800220569533272481259144462551285540573934609294595953483865728171299646919280933661875870934187834763310993571107061864326847527287773265633553476642170870397142092886326368672927479029689075995308150910137595321600639185096488830731048763112337223241656054154639166933005826214876033284829464920662033449815473313633947903035917524687535238729505259812529640216703641198350859121260253900234284252350498053657669218222020187891471009609111938836025754801919167336393026600409106275386288979973616520668547458262287053663322682541115080296694863301464088569486960207849073056561382810786984290395911494246211214520428423336321273353762979220355961145942246300953775207488663830346889901627960402449619413529929012847181175303552550391165325438479256486721678895662565306886419913504921234009566772135285781327568772132401081841894949507939045421994063142015157481074042204244236602977658683058547024633666733840246351609588751304351728863944612050590454006551332278892343450912425613513567044352587099487248575783568857482522397235829015912775696653444645763420201252698909820241279225922119632088204646752106882862242070699636916719203811242794991105776396278177545228812635290945259711410214695390277311295011797023277436411515115315858025536271132960003438750566915404409318971613632343653826928592465114966103305767233362244946158743702993000708848286423714968317241966004095566181410890271240607528770342965885633757417359089917234927997728977889670986188361786256924046631420306274855692205465839589411347604043030063155517727950690509119000906701678382184956780850012309565982736507669930019617917312964161036344544489860012029566971111137237466743884101147914500633760918025436480860867624257257613264577969960471889614416027987872515768258705426891641421434514876695260063599432602495753091198533804619697010884067606362291803852843004155352725238608009899274181142116673046004862578303827961269762449102142568755273416721428396213751263370573843070408667253898095159290366923553361341149787842240957919661713956489661547629332354078340151955286363710222979246841086550534755805293233212407749451145051329625044074816407936625975038399855047757335563041849946630450602923496451623430379746514347648188361943204834584050418262209166112873920928190492529746932448911886261531859363385126786733198190129772405303849326260197672695135311320632477606281611082318142656421129576783480444564337389652648681668141734276762196271713063199429780426971617428090441710024517219159052327228791830293050759537664629835514439507280880606604821311315164875617654372405056668151648369777683468140631191764694575798971057276968071197809745582121735548007248635750291788694528708402116565690618420817797496603902097580859553174774794156190719831775254310486123116101503174996722464065790215298434267257973799373326238814632163709806494602008578258167527148391139896875607922454152619916493884400532814311793137683574274115184864298563481303040321805751761097953870938568585340143866794630677614657322657224109154046564060379727902831624816286170898536220478034221687375085238855827767394864162346264783820018012498813046185046740958406072014198003339523809958502091394888043656885961788520017079455237692176698086145768269625864784232761203984366873342594887963656310778196622165968829492556155713474767038648650786738635240260516757990062129587438600644728208176446986120046596889554349708338587417636224277022667593476500730903885930667347024481056375659705036975179137411752971298009079892953041664809942917027917281082302405714085131829699010559865817656651719238345012717818639634731329714983039626437388341949330737878815191213519422612782399197198439675498867907559785317189105398602230194877720958306022405005168246789289549108157960592047398280528805131140852780895284249959687404832663025037530241058814303555179304041033062202602116582412433707249672041978256604993594125770977348173765105642760045781909917848906435080339738333294169630351658369311787269949323277335425275083863845646695194995394672014906193236691219786216401318966069722749182936142504477099455096918096413514585376239482429817493516153104271543881897811615578462098800000006332766155432949365764583285523993525236499743062156363212876006965425672926637344986693513784954281082986579635327758103601442739800034930613922515479423758911964086849441511267972048261583552725990262625964322319685417107821439416355469863430569830492627113456297851752096385815298986175698324950680328521147929549220071481357439419980324903226279973613498294204415577289572231061495996817775870728398570945265971417632270975169483331779115707027405704591314404952890413094118223143843763923217632066297231917411407409981577387860445097172175560294326031980143741883329125075327832859762923036131004162516061162241936614791308508819472803634441057010200269023735702486308376242194122998540407001702814794745616855980683082136101327317854831406593644250010169843085076923523660002456382834617339450554309938377327451915421349031531564132002812498334720277402475823305529753762447044967139363068944470550045424352262062517880699203681556581395441055727040833069796289712320190912550026864093039375428479603754870493697143683105583862709917544546576416656267638851622529562769502903923521308233259874386728551090818892381177574711103865924617010187327238003289736304289344690126709168927394320546922334490232160898501586827557863664821166740301396019100292945002436364181644352499403854018556622415905415358399192158029970198312029842990344201160114932570514835338725261824083188528640154742658579446704316772084139201702838268652109222718480844553717414171918841957985337117737708872170109394014281242557487425300745565861685015094648501925981979079477714152638782604082743223117628071817853531275880769121073071463297076099251614512270214962720219969827641778106274078857202809840101377495656883439547410933916809492384162043436435264157132853085545522577314682041394818802888883113213237485111063203142705699799492921831895109308419796499948883166443758699051559083182013918761954964537727768422377417694750330780397995527018801916290850699585936238736860292215567808048933936077994100422749240576683716349394219692548456897306834467835603713037148978167571387724961396229465109886337420039477288550815850232893391488197076519635134065788978398489182583087667032050523084252452412247058681672398160180727392610272744031578296913428329351427249473228289174554338497054122415060191542737966264812378467703956487856016584192991390436623051267076377253039508109404617751250687578645263096010209864417186656837589727815096240900132973549133723935308839928477559873505687498997031325378300138787574808046380286090252722081732166573879561088976378760266166850625227002185485402362951952756551013819952247416794087013868729995986202893560066937598824053585183039095699982291896963095926900654830020980890366572704948971403328596326810499573882322817039167460108023700128159782835808339630476785985120213903578700546010522480050571395890197950874565713501445005305297029313359706337953272459831817540649235580845047454967238713763329393800655304357035465721727849040338697028281950827623603913898325771297378450313494918436407660382405245551527929926196952481363746087307193807529130208305488381996218411353759610061273125248392019826689030035864084221472827621218343548505175701185502246160134344158535762268922250106867054931724607543961694160077350319435761605156274346676006393556983657762212447306636734445049191110519567804315647164293441256262132601993708520950998472648848796406057666711711468620627197499209983940432014003231344753836725902894335285167801274000343760467400667961149765719927570107127347841461358828017397705704289483086032825453481939745104753022326624551353751873745086441129405088899369199511349839717685700241653976540212245929838008413854207427522339959199408930467650188368788506348750590991688819748636490634517402226216839344837042272512830500835192480507035262594740495261354610763660241434806111892849252559908593470012571545228276159817900902756445089016386934965343031360980346389105920148000124812207245412336210207494862766979200274455242550544243718166092132275661342468403231248236921678466130990997362944437777962361852417997839907611631820971073133443623249666113628915848303237444396157833903347160619584716643116954337686610072629563775386820665403575830345126535965061999087910975026170602385004386275521854140382862353071685711921909248651069519037132526990857590946328016873003169570479374073566513700716063484125354517635212622671731249680655285096733692163890299247591119685969638739565037541856763579393022773160246134715066879910884198524473653293577068171797744665363771630372499800868158501969732482121559178856841091695328085111007976108659774086054289282434473239676196258698139975231479706991307643024784884317781622388176788679158195611975412651016641970900502092668956672997094301665613277593743793054280988533507201548494019852410795782233755195427683547148941820981917424952333535097758612609408440274882617441008348792262362475677340491647595875812694544129297193163463729947654220723040814063753513847007614264017841171979844080215245791531735159725174373373806694366744430990249487348363141840573867401061518142315973838951877554143891957121857909289396835071208412715822341935279498681376437013811627692136905419695642470314579608578229511626844252523207265997848576455027725075391332235177726623145777860946089936027487195661893721465872696776321175694829563872480108948972962325179489358228751650395569470948134300174945645855715588429077504802042436150275069554915063712648260333234586619195134572722011838680606479068367093054351291802792171064523242641374479726245222842672071343540821658687864219496930584039414466544366361621893641041593478948044734311389132592202759605466444431481622610410568186241712789634667875376419942642037019247994117021096794920270973881210378660671218281920377430960152220066332857502775777707793067792596360141397258128977190176465651822697147580215083386704794150988436748550353219336263067238218371803638086239867166469882914683355627654272651995509226563696039208527275278468511259924597104371435521904874097739728978114693887295761961374270234261999672724968873006983187367854564529704059481976041258906643827567385439739340277606349186356794849100871041734998184742721520540703390723695496154115443399065619269177060130110022178750402611681685815648705166437368799172023302532445163148390050463541435252034828925057872088113168913449170385809143593368337805231952727028819781884049305914137295131282329828273929971593401468921518474470232345329535933528482606557460129048206703252041314089423377509017683885656070250798784853988119846454895913979747233299794123314304181412367447924481623356577017855181883045410402254544964602754844867583126132901102518941900684639488828515439623879679236332913531679834398680639942067828989129402617731603302634075110654709442477008044397823082887694171956635707124298318859929674566669698673936769651115680769307886901719220348366409868208059323680114583318117395702127259904809859162482317033017176885707670504069168301253501440114125390294334229665036904776964608815958350493631896356512706624782994269122199364294151629375492590974417242801183866557234717925814583043224985267932780881657654888993025851568309428704882364856796133987392801895283484967923809533969335787855694609719283026566485248619595432576402956735104688701043992035459548708475540373735070254793427796981743993616621987584770205241680499932559274999975704308294343190972689040330629039841922801791790936917172949857377650889213220568349641103789152624405593809114039697826862861838826185352538343172973732313701019556633714977620108499824056107573368995967371068947623514052804101548772932478114300180505571236246157663571527337167926472646599934296444077617229370790872107370076258524028559003698416963117388968803821949435067171729595177152546273082940403247644241529188637247550070481466341041508725000345548606555250340384312763681246921851321366841689450473319317840336150762775253071897235305514742985825460904374505131905628650538727265112866015280873736379352107513204425200522745945181643030262481439871918300562163426564967954530106495499489856593948076551721111989112159966471719111291515923521291544277908248505915597223797597928610249333502063010417666049854747527551592776880549269601564244435845563951500051394501472616405908863214187234132488296664386189263919793311287119647406515553173728473109348783866377955886633366621453355949564046495653984422417058978017409028407944324234220438659706578702486702365200912983264530305858399100104556229080134014378647118127983150727518061414086338781756742275106394137352804634137335988823542331750126487992443031247464606159536763871122759942182281914708123642861215461342428921337913035322462818375925170590789276580720656592395186401342071102964152269180204914985555542681904780051093331437803966338342929024749823761083785038194831343714983423800673841898315502986402789032045463074772945357930020750355978198901606472442759725365093228592616726839510316342022424257292029800302401299437986030769662594160690093091576043937849591712070194740268610790685403386132489863740599124723889587747004561211687618212793192123657290087252071745490715221154615327147111763707886796509915725822567487828571377816299608886724718641176241293237682124938373777043387808727748396431382924590461061780033239516603780969428664398063852948087986416239278740183579973228178249203495640697763764982742102165353630436877662390581274697117753866535854872295614317273773140226779085808189689558607465748387902202377692416574448405793797942479441366243344061944483654462206027705343658538173148250425366524977090388518055463684508009726205271601840345933358418739479864049860134646180035245739957748386029363778206112207600616422226727773270550268259053811958851118586852734136481281075877889410120915876353346461152979269201125499734223606652048733325463097528723062467279472215007262361583698827224727933663810089448501844875270590443075250459349865105857782629327235270913097927665015917094911349834361215274031060498599710469316150284021176708337959989316059617224668206883005618710204632500080168694223907231183462120009140797840185836489706552120875900665596759160609575575348923697347216879941411830779519578152416420419014768657315156141144400545468896429956043916712328504632518539798775344015251406708077434398733157213571280066630939806100974167043837717464784758744149147321722025147255376196600935806057756430143431847458115778840635820689584092928246561088074067960413462336480863865082218240679186488440879876073695295928382401154270539000912698727663790906363785002794313544886204482033186049651266466090138034991836318822701689695505892541948157734851708954805998545549255708046233273613648977004031632552953771720828054177688104659460234395629511582463241040557240146125820552030241078909221195685083035717122480075093971373675082788427614376319737274659786610652576360803561625006311377995977463889880357463739452054423220499051154236375834594899289585318423901399450497573367206302402051155752232509970475372269709608806049626025272027536511693806609728071055914588649208956296660736303646172490633653763953647152818042739623479409132858324074119897919920822377891932992363936183017831881832449876812589451225265865662013795467335188508226618422282812136912086292911416160694401620800215846782890308774513979944029632171626571442837863873255311002402250380811707581313276168014329147547325433887443339686240483891016743148117025958998850437661309537238319250180762309300078882590726483370764628098383977009351528597558671566118298112434941610513481974472586889910288053489594469044326170441306489522918984079218679487969269804347853350098908908299329658617610251156817796765621028506748292763462173006664648197277496474831612575896822359834238290339450748998194991993915560388809744334137663824487138946800816640611935517092327701113702650907771260056144755258840472274512969000191355161742068042296933224903473885613431044493412158883417115276953663250048131836184801187040464355358203530350941799970899281364689929780446647431098758128186578387108185047194789993204122463906034185417685333466174651101246448120011942501527648230339135280633596942258784362057244867921221541594602469897468613052072131829309851736545438855365652950977201631766372691879273750741042983402625625044964211136989369000534791124446701615094111941803681365171941799573937973869237577395518769649517088628253400478550599802497528931511896582200315668866182737296864137299545408026766864953534681060938185981900207709499890298477617199827353979476796285661533491910838962233735635560323937506555277519018582317691033319754891258032278891581076149381864488066761677488941136414403759584194443672743944311297658345558589292348769907137910957635142385328661508718112601129651550032472142327303152212864962528408417441923519235408690646995443879273273086332890149223096923069203590306307164887095299638667797962772870955252549716033508536769189058164713252370441468325502034645087105922599926595423221797973644093419978196475467700897042372736160111848599867113845729411368072513304038269705489988938619367274744538118137659805754070837474066645858861445091226419315053561039278960099181942644556019756222972948942040589766506300788916819912716046819729182664025460805065557880654980028881650609515706905388278459712486301417236442936189577867370195073241763395788001083726049689983300872461504073870157565061949567042038814408407695155531004085901984049571602609459208640802372852339635858415683996260133411212772413880779320694406221959393140504992828587144549830715328407808444709982677265042531437057133003342727671647231786040958478189899101662954231325841577961063383316681441731019527417720353101203750505039936360578389033741125283214787224413698624867646801473097599792531924741296366538455471050508994524768575361582699577843176268869271982333717459303890621198724414000052374775270537145656191505023878476744295140338801705396970396348082746938086799581964168594385202811827762051923512385119653093976150237139277696651187924186987975717881457705236814590799044091174961581862168497182130164318261699699140337557337087467999169385618652601173105075207520260129396413896605423797512890107513785159342459468843835147840717106684689920523582440578759824607199815860868263855560768445150076504583547586396433112615017311357417685509188869114558309732420214128106273908263184273582879299178043068074257511961785348237511117246171370778236534653569845197764567434467713064327689536383969268391749212017767457245462263219994003536221798893117014262908398178980924976859376633693999202026371524199810915426896323950462579285419538151342245497929484488764930812822319239323570144417967765926140876078972814170483930850963938987003534140391641994266752767781281052041650566517634150869325825229655129716624871991443303046012674699221121863592967038157808221905330854514037800115158980451439709887849639536479652145947416413519707954905957952276540540617287822816753254051479262842207746998986293097599729953655677651455161155405719571709150652435880415325351737368951509300269017546887185488559049690174380211063371913332924666486704322782181229686953424353451505061464785513221404556720622276653319230950116266157588101788186932067966869541794592233392599698365587880595089237643223417460694947630354833495934914867040357082576205302109514748652095490759686848485914206941850513393819608541390844539514326734624767278136532084648160476219972587120235101053403341475469727136830029235191726034812628281474805063012934502356649873796400538207406672201152414764963188716732899470379183377520028064975457355126738611617961467383996798757720414806690494140841847199100418841290937626466048366743599633854088465371704488541375426625601407167337421428871315350410049550641218093419623991714809917561467438467562555031381567282253631695182558625842743523766802222938836529493311902747549807236589799739970245569320563280352419951798792124345282074780329013577843267208450946652254051429571131163427841484075869907122391998610002659868908281054069648413362283463210828958701331861983075463863846050033113912591549201236998351705563535792321525445485244074923826546863194487134996158633567301849495531186289943959644016032575644558856633064813388178700515333531413070120383374169051772081324089156873424211066997316378712480908693931604303377831336301524407838773757485610119535050675523573664392225960437733335401377187201518169546884488289616457927311907035099962560453214850502488994300549347202594402711466492582316733198633414795425357944596019399757976735841802257624584423477080691776397321241419114239503090063401217800606625442540342826519927536513187360511289655846158312115860519898039023819701278848719576776262015618881906497571031607248451684057881116784338417325416203247601518041365589086791835294002538410371875797969951930581313765419563598906723825028602832747438484656563930488671017568476952500206430654116922566261182159465490763134341917768419561148408308621570181480018423868118410884461564186208354231691412673195954545623719546939892444097303848991138006038704845509864239559290656581317796654033196603016764019608003297888208134822850461570408548921067448619132821334094440976513544818119411141073720765890835682194524512198700829554438070771891537549327939983617178968969474738136911084110194485363555718677871282607177863538290062396496950749113820980459013859535092343924259776938649118695438167424951639516775885007557979777224018893781052001405502678551903516904033480866984828271875977649400337768455467081693777828400373880246833975296582580907353632617631539934251990606594454151589152863833903349745700872108347078566311688002812367915793084696851340251778207152458955224280010812941891702765304485314286099295876853948587129308842545107222785474675651715131286916465018581548542609074754904979049459817293464382730581650939168564370004201206119608355898263147112118814229947465235163550295605627796534217962618132563430464408917563310922489081601926555561292243601420165218128051995148611614791928649615840485305617653423861843169343739263478137126223122108148454506099261500594162773797321764945855409087300874581200280331313734169411263332289702914070541666481817060845836780703288755545820161670494266616538156480187096021433912545604043034531711439102163549667732543815091776256504654226426117645135369710118630288353699599375786426828406125169576373708034671416704014952407340023276532481329731318661557213721550630442146333421343586066320018737453467364711191400494780294877103706393279476938089976395431174532847949235250820768654851342144047779358232917477722165807262137556620186844171206003424419839078890488667575781078852889662583378805136080720387247478474012262618239516383800452265242170730262418954801522734803491776455969824958267722406855281728637727358532735408947496588975539543756754516465584171251429166042774102176846972242708089651168879247443045875492315844106405440234447362924954244494048980889580404118095565397782963964543226877549042165307330325214379981858256053779581931877163666092948494168682271310720185392006339654230421746009317929526282595754038258410275258401754593713038460009480222576774906723900623581263341801501638226379229011313171456931495739809078300147353677059713142449394190839359192343507904881285236927546000091029766219334265101349680052757081926163296489735740437964136182363703722124158082152792641773114444741635960593913241250125748368534262741862735440681630740650796569671335140763700834817394586818405798034912486390881396805765684517955152748743164164613408502951206334363686005928380229010263226046628827193117086010288587018992584870903635271920125084270548207439536038680026665251332166295756387385496897832816808088980667929609376115226210361842052047245180285123863349721866472130115448454468076760971256821912161219036472901432232535896050550662684746318503518481589465071247099056294846354458048656627813289614851690142877793922418421017240747338529543175086151813667667311544718117255966722479500934724192270510613636854107879714770116422912042561598118050312160244952320788205965852836465238277570776444400638398637689878879332887769510085178103972236162918516316209395738754661389884147794604456231542993312769863961134877688726740402480777051776709555008022798440187382337029876364217432248498121635583620133457444102018503211781913581116666460127509786002179367813474157875656860211139579223464155911519327805818568485850325496452305648808165780706226135762610101480005502754081159497054806863991162837377883737034550259626977970624050295341530460474195676900857749102188546517210128146884311822498882120535331181342645092676818447886419386311253544803597089546382542557512727282529614539947600328702393695812964914185226995137775201538115426384683402390438922898830810175071745042642088351147662284633494041011514285875945644546431704748905401322953177630209930532951009261838682828226433802194988507737947211817984647523399434805746880019070450259143120834984258189928114066518204852438381289504433011071663002139274961478337147862298307244107199758765991365506227460241644879471428372898401852012976189956294566514999679024969893405063138483413298811116452207190349205532529599122082543973944807326014174446438009356188157456450284708301700691756828654360385747004768244248667929953829946550549683821611456358911210570616831936738492528926681498543202437394643269774210616956868006337813442740065907140147016361497684118765369274913999271698258714902637435108933086862845270641074651397720377239513733708170780491248703489214763857961266646329594951281490122818844817715271599890836007241979988506228588866766995715767120064067725401412698857062877935253163826103221066696283849437029357046265198946753552496050579950744966280508927346874717332601230490909561790949159313559702825485795465641312229977621413555451546334980281631384279631992718195840981243202875881248833909621844240553735564912823291233086086142140957451568932087234602551249958562744573133889770635647628090627772767615338140683091394710145942386165836723302085387790720520586193952906490332664398584198128382210929803148297994603143273958419142440027159305363535308184101802931636281155629134080324899888893797802735682443468574221754503117114943978441344595596899692737186894495911688526767822170593210693203674387383852165821064875607998887497051610052842941202804268859380269965381294702631482935735085782596844817812869691180245417388685165447651044601425437185476920540201709963386747468653870203249446352332455628287964538780616526993403783913204615194850347216709857588315518667670726126725935807008389906625449195538317037667597638544040405940314204513625094381685198297055861143116404539039243424353741148333469614006251186284247635745444968768079203251352545827772487935129220719577568789548127843326440569747369306689435677452319314822325968182511498896326627267883295703518643299410925426119622766133491976825618571693634569131962650935111236610726076439763508463826880066178467069270391003658528948739805871555024092537581647447883871881375053249830405747818937250097306809309106957063693660826144512517687408182383972249707176144372852200483667893607117746900635211968060016912183629068051939678587507550603017655286589193769116081527975669194049381367833914943951060429748455503956834441617014796695214748855327388081468948756370797152739934880919159647743896270267922091982602912105255317020564195641773811391576979634345776174198521101212293119825970034395411058398946078957447929771277280940935631680013022871917873031577256161374059807795110836072330871365311839635018673319383447305229983292073975897392362951042131971687201290942632896062329095206623847505603021604644329406728393839062657713047159079734076259892542401700260946952573650892202533170535785101171257195499469406176445778417064881637092066694875071330378902815243426552437062310476592299972228741118476711650543616476914687739675075926684864928780131623910787123596165094231673013654504338097506261297655873290105133717266012301404777877278303301127791673011602240281071442141279768084130542660718596187569801715099173569647019940655695674077027837429191379144670245679549383953383414639797264068408558745820691262918577942031355629181406109044149414990513795858005364075747932281956957335694951826064219172513309598060971026222437678294921520038281743115584390430990102724577949916307967376216229333336276061796388782142645073572767743815150285615328966106641646082747899702569656026452921236862482518608804178058505580996323855783880591406377518258725289479176039447865258896915431680735387702708675915913419952840488963569934961899297849559325732945593237106643870428189346113780822082354708876830279966602577346622158669139151941722822911041836988738395458131159070910418123961588317015498417124127975421007429531440366761480058984873745034796613470029880082749455272807394339914371177841444517170082135929091871557551904342968538337346733287601272960498803470665319413309272838412833168715609878532766510833088243111017871600127082268425265694108423975098609245858320680675484250145232757285336877622843176605094234193390323875806066992975698025891825343333697264888532189508822944660995914555178305042897448846817698354755493387009292259490519108523561816495714357000815635888131094580330830535299239256758399340504612477481293291443805946962776919502675747712454909113306979540171896819215841098815149786465592890727547209771322509583715859768097297126796741959615726048624756863389788557247828201941468530810338647736219386213764441423623032572979629301189611858561928025914050967968602131210518400890284562710836311674149952342862977584928710527820946015943248690357471593320155274802634044975716909714311776226216632769720509795022311063044142329290512059993739189400261359046222019842711148151964062469782052729594494855476595875220894982480846702730719413670791216186185279352093123619029673125140352765981826374740447542051304737642353404021873913896356973660730018276965975828417237205241057007193131212943257001090249927263477525921106316620391965637612848618610705252869073426252841357573520226695638014542162853873591594543427263582850152456275401449179727679712919893099880429943287960915160886368776629814211458250814105561999873673704127169485583463574567363283996524444517445841583895656972007470516656445602278618671506812873948328714831566148796384780388581642980059635803391792597980111658276275298960269356446434679869925336550542407443998469480378153177725300474624869499926885846971014472696445935191355736093418723680147056091433058017749583390104883508912665247643049691993779779404190777096176253509898863101932218622339305232908163535354110001782159742997378282028450669895798342938076502015424168113536377667541826808992804080789520955890292728872648354227830941795155932608147643257978109469059823662579636643916372326394104296870830266930912563376169011642891848672121647922233115425835914007362830797082903124266491888909261204417582058606705324419057658676210445712627723053693978583961645376211699126791592976835204904711827189860757044860759044182855685621638222026879952598468172959381778327371671947541964709247756978029582413424715423954268778250922642581905904958495350782144143217769725681611141308976149270152695472495444224388841244343901618543160240799990522149382896337520412830751529654190807353304072243504374904253574849966955485001044593213547621219980705549931508377038505766496716702957113303001701364613585874383415886157184663514564154675248901403173477651396398032886458474137834438423574359823743415714776012581723245642475894591009199625450191395482073556953565311324210930529684207632346090063508551534892574452676015076924876708604890570860319052705268029236644954943777578357306465622908300167528702712325604575682059826206569332425579672628650364780951597087751384702098881262633434316770226954991574691753416680896708254708345504625092738278847395398493598634108747523260044084717066616504846729655577629099775663421960179000073048542920761663268803663002734232524380160555804344904542918426346076079232353655683545639334808815825669715443527749756403196008346379137342860134820431514513420927221739460516938353581919964618161552261622194005515384808165811998338217361853983654674533606762496212327359053014316282314086699442128474385054172883314701962866501632209289613995343615606699786770960444047136614879979701427480606975837919019473115328502342149145029243816303375169094483375646951655352257395321453201664297629967466799811454420152162862372350317710356473780161148003515639588909694481419585376306245804556086561197941618264214404780752677876561227049985864928453356402019468019529992153396391978928285481473511683429690617115428790308678389315230449200801382435775753475083436216157526590284832917208172456727773972491515073214748241685144184097046730891734968231105071496866494575855019285280349031965196479440902643884473316934903645591258275915227479154765143835054001746816862423649646348475793641456347429226545681382670640223167199997016408594797189741634462818772219509100478881337695051149700115304885487892897905312006975118547404824312007531675360611641867444299553885697474045729970219159024583680435533641400364097792347932912268776146239130352287763472304655445869154761686678807982273966562422373227108957363214671527761369000928552705000328816577103630334037804315444898484328390028895287272284923533464717979334919060899331496651665597415299761927433468134233245044145392432626039717460444379859631118536689314860606848106735335428494518517259070412793910137358748646300775172112809352142360404497798584284696007199521415068969687768986724078198436804213329956548755580146999698338551286592293479287366230660742402975061670884557957768125904451711030533008224074839780261727144333117413599642071142745381260883143409988108908811658839116389767606642151972405111826766562714747814455072126721132530169420514758170544562449936668153560809709455681451380822914922071369271109462172219704214375577941960837223446051223675211778967976170206566894596423475494584475324488744921307310140190141329870638791798803691419228846456300672341721903813409796301797365604600741141687162497768488600739452285539933419228150476797916912833011669169912297324214455975062794285866885833542755156408232010037535009325324302205732779279326359965754459516347105223614374045961318579843204211709656756319321698992361794385618721860093223606385952873035019140471365855448358284589926079978728270078905137528227062031606480254959386191935658401169872574310441083145487401544609853361873245766440584976176565390075176477387118641172422186952936942384895345968990951241852761212290981899191287146408420224767433123879239900908221776856234241186994693656738337547096904871505881531388617797511524831979502466093992082765863760900719990758743809474067645306532424395182861472130537514968786109880608538233516115965677001107853212581541010704687674441604298689183755169455175579184182705293174420380525633151101839699346664798593060189060906543019705144631938967756364886601857313805822385214003427495861253628042687818244928183569298221373508484327036304395951321540289209116364306706532119061888102977735130242780826252547212750018393579503092048903342872581554515941975948133855870572222760796988467641154367397131796803132170945511994723043894373426671712917995203883236088927843804136266169278551723037658441831814345847826524526041491668958541513390107968198624513898176205592697989088973934868024115698827897166851648290946759153002057693172764660491415377319465105608795323082951381216785635283596893948725329913033351134693227301415890257396588479152921235254566651372977966890984019431617512533895199970793330377197098385738615853065049274597851751142015478003271575292165987499341855520489710931978290906923306795511354063954346371763047943384738402628495735933535660965101168461190357983250441933316656623236671542787472256195016906368784824559938057613056546549867773618123273239841087950703082177883767983580723681114131579393164577615920368566667521631263886033523008890082337210982695921700378483994150507921313293907658631554890921590524472609289554656097058582105336907350683710420744102866066595503712893228278021360528513275179300217629876825923764896559394754142821817537120099896348096358775382501879805766242111487842385001443050302696497935318829586958268334989781795208151601308774763719970015694334279073685466513810014588898908812263363147035895300350529718868430044800021441333001250719469822184267280774426855716526991914634836315559916977014656176111608732059935390623147829110062032438005669882966384351735994122800880288729142216842285472304982452844233738997697453700134894097034847578133103594931047671651741031680021748298242431901473003068297652325177740138939260512957637007466449185900067586359246863083508513678474723990610467388378533422321359913369732036064273370675743988393439179159626781834812139672516461400456694725273109704115206867149241592868297318438160192003352416442815231706189276103464676052317593168473964549743397363624150688999417876115798952928175356835263160219030516305904408342159549629386771003708864863841315997917131463438982446386854188414880938681120013260112288659044730774115073247766828575414851165743482500573241110591659715712935189699433130791660394144495006530838034934925007198353586473693254340745446790387901751554713948898451747552348739813554811936464618703929250280216788299572375636881651336267715250766115570925919445796265520531215835043424285826708559444353782610324735159930746576515193720957625005393218616391529262530975794579958750344960714402243587748016383909033083894217249628413633985642601710278559703473999838609881444505329134282710669738947822210580489188265654131182802192368320629692042970975460334203449121859539354035836891589515808025949012530376755118677725050998500192217102932139831815060521484278684132557090272655568616250917283640682429368992425211217773219241722378084129945629863560225670623774748960778610821288102330135617473590040336550294453604364959458151214161292355831539623414333161509326792825490130297708662202845420061841249645559534401985630037687771788597117773838299252490433101623745294814697516695900155746033109877437200927067516368801428978936482329132558588061530174874393455280227338919686581709908565483310346835547288246645903221898084131747036647217746222474606233868145688975361723696804503328010724230001476837608871328180045392205202646625985333906843669344782965012427550486731632603459343910624207700980203958946679876032056583179586147087488044503925592322764040166524802596053840697083105757364902262098572103260967207823748771578722833750874261029455448476384671364724315479389317399014040438136741101870468970457568030782628693508741063919567290836228680194936960197831726540244298223193745557734241594046564433426811440953610361849270163297995239024168970755579886704780408222525351166336800204228558322761471631163325830966502757115706715082512175668123794082818779553108144491699319861586154336255206576543567996956296345094455681985002033272657591343896499957161144827038554297056383334721635251827222826519621772221993920378026251849946998530374146461004147817836613064663550384110981394607842092048894472040341609915267211941177052253057626833745897828989386210949835708533432105439272337153232019630444326603418483130293368794678756659958091448361142302271117511865186324229662672756074969718473102757274613169999273307351871664624039023302786005945968357122618631154792870013739874409519727434105548785139967355172829879483067144995735209920749754165446871931981488032044088129102876701753292231370740168701790227799471703581504516724484145379311680263607704313686664685679026811921726220767123818284435270057272614094628754847374911176193515697700778631343531313722833179032686831655959506339574434317719767740712881370387890769974998530863302259518891797176631609364404404217598636825033287679523158568195806837636837505177299628076950504407546227876071689808405993655773531600845830286837316669415668637290921748077989107561945164107701619895272782729713929471988786558558643561312293101001729600385577774717529370504858933608467745293504848307053474829143477325854631078441561838142701766995467505363245670562818701641944761505507851319381655615299360409344100147153823258526341661303436650074465612075220527370108267823992504021561924489284676961839236565707573083390885006388921633853564851643123528152145001737779949720419863428888199935934020557928984365680780582124193026955285294274959028562627412709586138088446903876810957724860843783240396667772947582333199020381125610232608207406965144862509821130801064044126236963117387166801522712517817673175323472110003928980091227944970986310945127207479851456853198727326577197575897001690677647915230342362804120718250443129497743637559114364659940517822897670421661185499557873278217160169697888524720973383569164347207530607885628298447863207186965765259177629802171051458058730896029243685328245522937996021283387531138248639679290360074243855976206842483190019015437923473660926725848643591087797615600854311593753119197055891823432780518225259141781189206774956465436278685447795140752174236598951480517878511621630096013142688538884794179698706668694325769037491958593968937588443896325073352576678187721970942860186033006625061547738402592921865840881813660944090875885481453366925124226729710947740689222157646780701395441246004732002093052961257956409568654720017524591754645109894033570291763361731112056982540194025902704750056148299042643265482780095003090479868797014007208705690994387374938026364303442754985157179167296364615554005852254525720404771906810047178785981910028121296989528078999238522595421213543572468874754064671825673071833356339260294197852593402763632350461579830304522546584699477758766346030988798202299027458410100133286925961247639623146584372295989767599449601570023349825308552536543370946243683570504604564214207916382138936967246067042917831678799671820358955865810524181919088556112750319130371392206316677019755179753093998864082077378978492037906016002842289273850989048909279576724915156578106507210839983532658850141604233342351451829978027921319414384173459158647877864823078608573294281734150563916124918869714408727043029782639109719348359723076630194483929924924274319125621903577614666854905281107330989288576715400566854198646011750766789272783277370538151793109722053832675818605637727227705600015493658094539934845963040002431167246330960052150479916196429312024613912249085236253642354899315234127055612548435915591295547334406672523501911584580120005118455864451300279683100921225166017158319620116202090123144747826794849268095126938884988723677642098010753050083906880473436917185808337925327316198693134391209134695093666186792088960319981305567691001279475353539009940256115848531729722231614153669729342814645339298913341462668106503369976195599629951834672234743128964169289548047928108360772215380018747575019834261243818602100697542579168341164459023057394246085951169378769259767092038934813587856886915488502452889011943870279861097945060564642001814325520931283389156622359085456036969431828877148469370370569471334581076887713086842447732591837035420991814685155979072164685094871960265592012261826433593456081548228160461922570283235871427814323106877458965954422312052861619574467662021258628699725210843768891189170205199946339363626026450930412218560950506323295982435343279768695220343237720098884415005010316193615817528146611602621716216848517514887383395642309516263056469119402790606526740616820222543360071722257256810314907724286241133508989247648858781046529920272324841964821615448807482123031050793959896799593672700336233763484584940198610574557934562921934924461200080389348537481747861504176023821173388478141317632057564028315752753458244716867743214200199781588926742770407026619756396359739243641578873953809851674003101430016707836433367693992902754859097381640571163418562069624795372757493356312635295978710000727707554052605291685579951079068526208388098690951675435221562207272704791200479192885347006075676282077194534614576796425682139120182415256089211740846845471836056617639073201845466847133414944077351755266261921752125227297802445098765499411697863782347541438237170674849532258425590714347661132325791081589945587176840327725637398790248359452476325912796621076705910607214273044961870320179122152719585952721772889444665712953849189218807523913930837947366825974081668127281379412046174465474329445295674442987396429720444918791517001564558408239815098720153484603499071691326003903411294468555468487534475273600613176951750274569910090538728755110403089886820742608636029700694494613560224646548876205340481718838955153607878995129894802503188197412820753231168620739372154872145572738247223291687359560354656300527296442228330592192185933018930182975861210453621352584651183669511419650397934965055587782735306819382206016685059956602980808214875123874362227772406368958664254499963734727949169129203321515800479065938963011265491665724348934016264095651079966541744500810404684006060919472290974134254616795514084843813567794753566404869522189662162269233810250182048736793008628089036255126788365240153250628425240524501566619781012036921490255613098732722692498354828460908702065363268468104441545974182453075814040893681650529493850594933083673889740653781661597358582703806799130082432474966879643348381957046573509001988354651347353779683813754432852448459788424885381998600673842741500767668309295020882606429684485388236632893654250650814185996336998543241689653671690437964584581556716876192141076559901907763123595293317602774894465274565474541683859044325060740750087864891639562400789222912721524222466562905881767041387794828485613358301632863333264116066140425347625407844580300418612426470817898039445863291928850387728656298119175634813033844341537690513878205199303867845026693615937826233329625648825496216293150760918299024842810807797664526755136863377783596440562561118240754237252027255048935495465435175417556383213290003019760706755569989134729556903688341321926108088113535923852774139807965634792150916109578463760063215425223047622726320536296359690647810339943849713197329084408003046413922956664855838749316920102916242073427368898800905106817860695211230366976004442694529320018287701579056339887421142886017396754985384046861821961636800185836050352353936396481230115431520383680118966157355551421966776410851865591950874453702593372328933293585551628930988463589930393456747042733360600279549023154299807075377138513793558681400699607276638703100112912150544496184934560493208994439313490537948883897336071928359181460472936963460949250913199365747600358820427401073288971559255470124647956413334725327219660349433780967398930352734955655005910036140167029876695730918933503106040747449487370069712687886168331354899862270079935669584912952646747778282298983088669625494500703763168635371556278686196156853543959846753416071136543049701103675436221080042338733776142088619202477492575994247594702670860277814454489236953079972412048808515624275850255242169232461323873085332086785295033740937732376007980467404849228971771611205317089236124346989347538594945544145542813173097065715579699868400707107750931063828625792729606997423008657966705034084650906992189753310216341135393992683418889313615361490391480644385384488312421076089094890208813953929603218277627430333771063368422656650880634715073614647842709114317437795773081558901156786654220359517583899264333932083376957952792607920383721758947358846161453890873240702375026418334793040018079440920895126201321684837414369573726624199574764143863411213535610964046082698452933362657725846164012800290244087067188340532136683429014817832521140897766983406720900129857486036022025332371952094201180818638500508410357660076326429203826883450208452485469258656106459432316608592589899875369700881736700773459070672726357218754179734912002035773338084123368485092961417252754843510244092061530854702054837906549088000734242709078593944521533051540954337100650167192753613251598616151018715692855520005330179538798486495323898256771696884821284874094640141744686011708156112619047102025883186835471251666000751024864946568392597468319710704431062044763781351651303878803302814705141235923588535799280252569066831887842485110530080664576988434137308356431185569369221212257017389476377971412801780223927110863111981588240852372695401473051496671164099905085012217364414607500785954279006803970388961562151328584498515076855147267023524080595516728912432107848667176625947255385808159911153083568177013510259535853425764678155561815258532584458151475344151807390200691495858906019627762366994782143797661637247977451951154883907814161956461781660032604477467438360785059571973734996214307059427450545501030884772772131620329620701608198995554394355251220724113232720992901735167106547937090071435860320950638766597270021377197081250881511958206225105061626923674732639955102366164129230118434098097283701440802023117726858073940401902956330950018527964726142423859947991642657920310500677338024322069596728959905335522451890928561427678101716539285666883507564257725757045504416792808556220693068734747433326135875437853066171534190640812946649826162198337289578256632539801091050307090845823453695135123002681181079408124018046521424642851900950075091403919694465340078501420003956364018791852212905128850144315126276112138449190951290870668178147981642320450760085442023921198009507133837585409703588043142929973441855278135244342263765844884612662459376862324047876992674153317763510115582196881184003723535181102914971503836159616938589917631437741316506543241989493405435250156467203637896152737246200695873252369658174756661150089728603696591754965645152750282454503120070787637634080637628866678538267343166829870631512345949391889852214137275860605666404773615662362036042803560424131071922881536640553831996433885092815136862255178282815314248520792625628167701155253126821833012332823934922060952342197340402851939070960672518432862721270346108165226589613028892683926410738219923791876648740235919427954719085837352926503278483007716520614222119793397074892616716033247793027963915537276371160701543566441825988812141561515858860657635539589209572325972272782556392839885627493692709375679985486744803270021294816578973795823488381847174561255792713235655940611242813271952396078431013547683866101945394825868804822389816114862950147627945954906200153815649896327342254936155192574585072391987855727971217614493693593913010801753514525992960549506456351004412740362741221769306058647513787536957134572664581461093048756143979947519340985942571665044394522672716944895421624410369370034522804362337822765592335177933082772460422510985689196515133365034576125584284470384128702911613123796200284348268470086610877608430591916413650906841782307903573328391132766669437934452301279301768222615469881625930544112452056996617939569932985700628765776833701743995387504192715510172697042273894299580497137360311630761293730496408681216694986682186918281401346834137879437512889686735044132956955323810518771799650045673749948793521313931986756458104998335812822481173074472533829264343256416728584374425609210414364715404997271052765387257698237610168931898332647380775420248242030515248643811106138881422589204866935201529352268242280988023056242582665936969785080242758631265422872148277168530702498477057317270203907996042425840828244303859783619556051149272117405890405881692155114282609019458832153442228226215817797046631207595131881606967748312195092874695903133632176575346785411024193679430918998120020858318491845291963934397927362097375141775743103169902570264093789167278241740196458527304877537845499686415547065893752576443071691646149418429903665009500050375057356147831119587945612096989893349050276553920746977749491344088324484491466160460258685451871359303683596887965497746123104698378104966125780751513602027142600141451709169887413212049452935615604668804768788327632611715327370611233801935418821998959233286779557883539518454849102922755077306336930461722505162287353445520430175711211105539579619608274503707429979076132433710234198413876850733360595061182329958367550270186833486164921071863524124269843161820977607787382500625925002495902685105817080521374205491983028415576758756131670651633699773917405193260299281073906042564169194205947948033281308882826955339998861637635186795907048630092502484052449121317113208833361549926847985867908541798115194179208199018608952947480684596957674387391295457351712162508170003231269326082782478132578103858155105943063400148056220581616808957934842420768394302242415745186148417151976314260067499284088472281546005986792121899350343168714521216561581230326957810291293698164963002229495587200982786192055509019920473197964129986143757066336141088038921240406251270347805054733060570748119730820138774569637844375215696588791271922829174818695164143298679333493701852447421447254128477110165736326283258313175087991019484634001148892913992679806329776260799159523894530327367616448556554261871827873887151424582930622591574151283212806466611517934082888123705497049351163216874422634434330697069017224583842774333720752339286799494056506632324548950353092074392434576933875079684766583051957614763723717866189507990400922666895631936126436748978458991632810732839448769456556642090729580600658056200797724912175794717231067034383454169030216941690144893013418775222732685803899473628370269820068762161983514738103003963053942278485948252458343970059182792107943718568663655704494755596751927528375236824534969906749615209270905462234423387227459283181797531424478713242086371597863107388699224973668501816583435000037629852598193818283063417456975521771234775942997095086428446894536926145276993159321977590981857747852196817333152652630225099745081413071424603497336167657429225886950422285970490021242299519828522133469738291667047957149508424919683777344733844847949410479583237140563555896628221258917539515543014784157175735141425896367354199391735381010775316546117979333995422192481989289417543436578035735594702153787528324807173502721678789864227602324554480513982644810680728831889956450423052021227423046103620806918962247673884759814893817994813846176173337444796542538899954313982246599737136420549248714458755820719599191382634860406060846958499907830821000353645604636804512157253709519324834305347534040366113174179358467749927718067510803639996600169944577030748710209483916815763405928964454379326703602404424001188246436622945146424349097585534677619479307669527530626616915776550660782188369980671691437324461379988242400568637945890448626486729427404290626546158149257984968119628467744421053713540970664786000112476957003811943932205173221917237566704334519844258769204214259185992741338307464604815661957398037398247307116406347296155722890782415383320107314593935947114588286718946766959097582758051511384709444243920850719595220501598517406433442250948078102344792204761074434629974328319011567095692329600058254653471268283204714876056071944862096329282578318739928127675436510425179077188685693249294058894780398570172297151391337019641933214165389108814277650387989172058483299138021541322041355037168448987195390924691804599068390497805700099208356420085446021396104405177742488178731583028068597662790295026343235632934253289885039213166650016290913070896058973871179225402610340174706852029640969005676783848274508431433610544891161483712557215329838981086927009268454522400668979450542676822027639722890855676857682596865098135402646213145504739732100189654366912119216286363914684101893170263503300941011190639353830412251665596072316033388385072387539841933417751814831444913288295049081718785845149859984283663357102730127487197937091593002299461656030856051431621099624869428520495316842507104186280446994442263906807712232415626446934579816956900135551631257636184191896564878978781681851366283476013130638040132959898434364402016652869348400832368834738631336797171866598692180801788213525791669420992605396440657801026369970086759559684023125036650261816085053914595627941771490483570235025136602897874625312600821953912865819979892717102859160797539165659101696361478427136031398379933837516280015032053978094186091613236825311926696962800165584149969346930444248700912761994585647935549743460716018472471065269956517770320731694750031751462141862645121513121381040900095171068678074698730069979118672589723718647349410942779653525301320720021789904355534435433280167301707735797038545979296242813332699371526268922257734110466379698980118494518355442375394590472496419662090066655306614846955482054105520006289787405139222285817674089454560472266685142866241077504153300921699015688845041735124460325496233012059921491862499932943927624031432573956770727188671452013030701248730098538523671248660746052396042685036605953928928083255575640257398945529628143013939995823182326465427403084525786613482240443489107965801888728989872812363242571394888282839414513876143277160006435472863059242125588124436889695569369552383066230130211965227217980243207389630845879667492293487312990632548877546139753303124950367342331626810003390959377908524912504746543889762249912533321089013135476895890716089569241945477583311271994100993141895305859266256204094941218814496880888613940332773448191368392414713770308742634114834165454734377904394533719572185541810885783121404668215940435547921524428897697178276675517156680709611178422265185647773916230783123154526573235901271297285034064898695807698845870326694502923868426027466134784850130136046887450108628712472325131707399011285398167679783420186774846150624142524308804446353024831421082346083252505259381959437720169215336804713970175297391745736595656060492775143191998417434574639198504209615043883886722022201110961657012218684665359200647920818531643901142475690263484697228076808307964877696798846075966374321270570189598473038887203996157132238274223685784186434934707032092114111499117465811731707571256205143821700817605384916160959445180224921099031660255838913020247783518676877314732890898343205761820915238152372965307906201212132790815650571882978389719418971253868833132073156437629591416181130394401188005404449928041587585819631040632252895477998037365087889125158223468395904304508076194084800779072481588528958596438559145932876991754348122756897915618475194314953658703991164227048094474850202868031096925821962114168897201154942172195324794820259216668860428887157038261096713408793549196210204864268210887039294831523955278989239937924929867522697918615487718293479492602454577821301245693206733910159062605045375304841933028679592217219264166733757494562368136109015239218878725096237443139792784913617467222510743000382161224872975500431350467564502766281624032408195558412309588988563608018343902595047303507056842353886201669518700907336287596227628749613430899854620842174144959868890064714309073882113784996819506536884182829307030841588591747190001357182923224717897383172726542557590067487214528795852869395196759445135192785561266210505752956086024057665630998318425331974260781481069145272014391533432739373094329855508344696267723621908885288026934775371518846702434741959751622253878788043233304647928696872218414857776419614644218254413504909737982745344509629189312176603240885756075124256446017621057746327938286902849035464217370557713140753420385784245103792795953071561607365166250083828097625732253823429428826280040657906776153442233969432452565963887558670767374699251331240238420216132819436583618031591888101227465037062669420567286273521426331574641753740001716104951671473389736364490902933381910076071580651257754073709081496355257675854383797629376469902448706301765830068277051018143373585964251350203580314031350682210083883725120711645327764275782394919429234241191597009460241297868295980296214641472825129734359280822073008273861389286079827628660569695452854423836918615079705389883127294372318881315886627995411163757933003355041678904398730758676316840385058136383581657985302878328100330766529335928146582122702219847073481444582608301700854641692424090064661488434870561845348269467538291650879028653709638346878471883663635361246623147590137579078376965432053103437925868633903137872561082723891969078399223021251536063495280542008898173113974698206229961397196826895092842707702045074390372269373917953515929730122360420023517965499060454797467691301529638014643625523829222307913756238525937675442185907387109163128515133950331376266750975501599972938092962829559656103694483061867471822237306023945890991689537090851796225472512012221256759817354611207159262748800712301539324242116793248874256303320708103520039545761873017195849096284040299146030598754466553307699046166060044377803115472759224611750368307993590859266520687053513991352660769655617813150431783759065611647522617305211952026189565892014251028678681968899129428445199874528519644301449846282145963050689323051424390282046043611843314225110779851043519196947101708773359412376077600557258381132211325204817686227685213123543540061416201770748851788707758999078125355454906289989714089821277120886942699024492611733870628970941138637874508319387122794447800035609811742597015200358458985601546881144584649404693400631884050403165012646076531031134742794334232978345474262936053250673751655226837664651053827361728764270753902544180784816479955823158929175714426256500612214406726238276243711249934662756580938544277214621290889435648867292212039462751678534053023420065732766704660005800985972325199309783795740927233909994353166861439132065250483176378565324848501429079312478811059539826518223619853988714194111431622989817415897585657386330243327090387086894644526801888112305876025833124636429015103547066630347203485362189026688141560978031344896824964775075700432132800478051285461877494037149610693776733736941306141455264802839134740686124529818262783309974140922595844167762846458894468546545696753777550831709823397699520681257645402877214985759239733678274757217918939291156619067897268119403665346653166100362805607820303500096377863590745403978564062907406369645772406393185255235474544335597492379735612873689364372278390903108855448657662376404388538824952020921018590262199903578088074373115474166007905697174884833061060331156664805306576939890042112197323568770020072765423536218301315024845645190518424239079958792180904752153013584760408907163689256531240721539233782490186749421019828494697609661648741805318455541175593341386680069129970978972059391957725055731055185702367044961782773710104439490695083352557643462742609600943987140872049298817757086732606389802342084219916793891476401153420005876848643818877486180728084865087002300586172786209174221931306136937176996991277019337499598419138456544554245183332805346051111164326124650601879181039310155989016530103560964851575391033919056825598869307139959917503246557355704463830123426572084867457023850919899904271435768482244266141522373226709227061154788926615771945595968139381926303992851677841177024873160272324617017042359063683294283240452272516873384376800201039870948712350358644838696329703049941909529696016818896715433945893892594172940310278112510409392831992845943518987026522251616319591094619475070984299336093424573279297367398275139924940150612104356730038350516174080033560731857704810953960639536188867473598753726696199296562000461877260571530906112168944241823532634742389649631474373035932933002644500544484438569871802007457251484344105970822781547463791071925066667389036133207508869405561818813216221056215759376429775579440501381076932607310694750354000399530339704073293533862069275476159619141119508124332151432824530970549892740359758478171499571216698376817941341261232028086739564058023537810228986416235747854123092244806023220724431882530381518803976568132635086513014711451966526717152028919678340741716653557214844521110129213110693957058525028246230534223791561488240002752510151778402908773657634668732182031331300920007313715756587770228311577793700496534602469201026086406246360272238092522171431345599190916658931198412479002899258842878377767879763238691764308528129804501004763426097399214706048072382712683498237567377322661146697202382227831400698973349541523499709024535014798645504219229905672019078262276661305762634944456068182000607845399832455822277987809297759505642513431217692276802486455272644788108052996359122492051767893046007956391156783624557831889359778555885611766234079452826950290958341549330405711074990433356967550498560178792389567235357473636491744209614023401259554670985145095174692673729209652808170438247341703802313322596455302328205042047879046551589547096144112250265247522507628066099312493059922813644865714516389360859767181341701880780675539500855038276681073354808019051150070039800291407344592547166100684630780008853118256381396375057279644355576666514566982636117904277762878987384776314407581064075923925683722771376138122360472765361537870401260870393604799747722052261010844083655878703748546642273950974057393620315004275071803653163563018964918488221022302612548242132423445939857929661101602836211307533779214550118143440364972825772044480407684715893587524113319056482886517503536727205056268953525690791201649387182639683292673144815770344675913662237972255592614105316168032803786570309831749823235282930167115659087284291565301938323195544162516353558629830651831310400341157956763282962882494414641565374995647561102721292588263201003717009888713853239579171982867956620246677979390811558796782467800886803245275291993215337700881991615574028535756041634859415247678308120379816951819209817697563113940643604919172706264795683160117680841038631204156492432141784862025516349405862046152177467555833465656209510455525211246844424858324522415851111293744114452487347694946312410527297731561957628864200161031380650317095846794167757602216363294084173988041340142591264512873760883890579954608175825214545745223203085083739301912224045372980806225782746109745123667086383817361549624395840368155472885432292153399049095481557908870614808211774774155458989010368133294320195408993535817116387464556049027203749611487091246925036130747919906672944351731208948392738406237948792365369415236968002736799359790063914538854208638630325718823571135287262548447352042937578070639219337870087902022514935363875393037763328316800456881071176988706723923041977611172731863096056298449647012428888912075071029373261585650988334144377032996697011733314166631859519706346490451499511071118878607558827235932012559335263103332460832967365150380905931640236340172111625053002056475883739191164826865803984458339678394926615545941326705385596648014107307987225695091467830278257876266621264574085162636601250807956521699422913133690182430872117247886499276007975171213035344871018330682424056359947070676126802307341837267230347821137446757179835387823278175798843769294723099541761142049445910214626115829582659411363011266829118683155510759784200290953590828083777050705252903177677013048923184647043101083360397459272549150289644643121289062245270022537391546846683357685237711774011401030784220088684164060122762398984473380699048547294027492276155016844737050972661854515527336699535495613111118659441681582113108336923753546570868310372151961574028924971645107934576694941116320837146299019473508475836658005261507907525549884372601599682790227469622462913925529761540791303577641949138349385451257364609154202330365646871479797377821488086810730186879219398351205043066712727478898290105007596874155011565685336283309823027137198451590381705674512533657728199782907868436312263756441930080066983758556201499674455377380400669756435367993617349736798872308055361282734301955737717618140934030994563892288780990032173445288781539210955806455931766399624265402938319151165576361511139079600521113436651691501521367721445685490866923299997378641520695542652173180928754891725675105497457906068904166694819299760251675359774025007474755309550045278595044073848085139118570108447019411746672494802935901219115193108928472953633557673981883951551302153024143247542693640230656633485796544867312358599443064790009186080010474682472112787669395710354803107976728891243827352253709058789838555801683204104174340495276233373047324720199898411876549387451403772217183923880245241223823811105797984557353438999139863984496735841112942431494032654270019789811398840396948045598193988065617632199376327137213864858691872867489563719011188609506397789626394446902990221336200112580387513852619564078921322469760621431592554504551656405104081656516457712639081817802818274783011851934004133056330849012623849298441968141618315617531638293822913871609966353154699020616702576778393002789902248957542392724104826465982783063808358872975848605071854461214729431646345795280399007735456038581300584095372046374368296769995818368452429412240307153390956411574796696697611116678035634013044836234800984575994726142846573455031257089059282459605186008586746087938615881477769348136336609442256204014309990981187701897488364074185504594574603691700621664714709183743676425937216039568708000112068175306953847777610106339428989024035037185819542534216045602422023301874624733838480069697505798121801681626011925525547125177827398054225557807008838568444481725268550267409315793092960983568860952528552783694903479077379858926934555471390499471172058443390612840803724632585086399796822551060175482553120238359658335873962473147143515003016134019803339005177291534586032990863238862988056750932547383857989783693933475563335734699348193040828450874430057605443185528399678700134297609498337194001757956771118881833173774576260113352080209005486316118220629425553755755785395361786582134137908873536375148768813341563184898717628843871180058592967815048696059166397248293533734552784209076440466910005668529347807183197803542772485299888298233648179293033957245504781666188657980900281928830232683312102505274435696267203733291875262285130198315184150078740478474340043831232480377933997478034737589692183688341114824502192574876800563904553312387794059103917052968267822094026227221159717238061407973687229956350450538080087289025604282498794252214072954908909911401252865843348698319084068201657159981254804455048222088621193342155400213755543185213972256129777642146282735066700881644396083403671285743189848370559847547827683723388315460807370702445633574932411668983073190938073642661458767174525493277539884983642676871777931508276225293732230469725851868662405259613232788532769779385528662412479978765442746777405968838436879746674481356739125687868725632221896244090341232948755624250579287990390945424410785597944496409684156420179946746365421821865087007494536975207619883336469829450912041000838937635687810645321777314243652436801147465064238875917562751961305256495739839361665500712515431653854399132728289223718355911937610542353563072354624591434009524931032400931081530859984722593629948272380751387021397267353720770238658931211262204148045090214221366976976999786731586255232314187288115934398599064273597989741024495743040534840876556952053724021048332469612030188342204919561208148517680174423602844954560361274839836074408091179352841617698815643107190156650683445750115339459976860572796537935860728248355362334035016141434919706220377397296577041021388160617009053295462680780417828320350879804935945793141123705298169072094666711211281712588423588773961549987642577130339148508945672470879419423355273566191864853360145018588432311063872298182954682504683427002368078833691328511869128215914838653078458193564779758753001151497070611373702535605141532101071907870657452874466540055042967620781606430899689791236979600479113260133227017651198427966830213937362258745125838535211892213229393534817353559853344723979322767247435766710631099662052508963931621412829020593412776958437229333989830194801163557654744811232523888456061600406853404808533511567601958298884933793993962177529097215314476690917577384553964212975857664507336181918503016109093410764012438263274221664416136100228335670657591466666057877861959993936510562253392820120504075190796313577891764249373108499816909641434012994295254717213650296472347334182418961861908196232592781767715962091483347581725475002070333974317613322612328218773662341082541874379192688798411926178257314204970403355329048936348234222263057885383357005142293909640902863085618789150954937938088290566139867212144841945891405305620226621791786158153526640804350065532625723909816611856520901743274109312054561966005968451558043256325070595528766217200350876871397326239632058805338520193652128366664631534597352116078145196370273622103670364716707047517009446847469981081919899186285746713308499312382700598224593382064039027851024667302529547583869598776826369009134291458523718386473543011019469899694640388386679632472025472137840542351804516218637703731318240267136406948156413580236874171920706540702140908636227726979076283232440345033957622177923992291979660902432282626532992432666839688771618331828620914408222781967858024839285925554723785425638864629823117911697031064177863912644609574924133216574712849955651750061473739345342564136514476518131475225763975050815915413836638107313208212475207003232025832876393141876828083816900466847343777042309848886465497551717039375983070783214194596430727984884423027597332142027846076576415692863510997885817755824904660413363269721890804841514814517085371053612400272218899999237074409297462045026299018579497532737757382925412299530333612236859439376853485577575665757809947024202981826667956626652882833716006601635997392999747731269052030435610663138273946306761724144021639768273127867877470729692657730752687966309316691285947579545315526195695767638037365950206901480850979396021947259063143798884349457974855953832327822319367109353029801531190284889993144007613165515681086673196167727570080561776354025461543753709193262505242079107762760439566956881600054420834147231970452174478135104260085000707231680672903004572942150076302623921650334380046355521484964764701776212980048678068430146143073147198149386777424239249954398395070848339771980009831873244278639159251872885751343474716880081847379201539764205565296575464060716722632699706973295083483021969376163355776760155523582937285026985514196990119707026870461494430711933450032776104163695505213322876127348694882694570938577055831781282321053263587128392082202704140650801601012060483864354602187777723473704022240218770339120192015993500840138965313084739665119300070127250766674152566298234357593577679232654393175181086900177039403297280436586878909263880469534825947856562527440083096773887134252822357527026981925580252614268916278292812116614253183686036742653343528949328834905785350084207855383774873866277525066442051826071761955397092428500056686695960398739594513557015253149083235941285165619203769091286091673594075669694403536641834002646376026405231186520085666279775113539701511435446513231235652195993936101925919256632261637510588934779524183667793066359131564640344820161584498915659611231872613018914368264023819592531672495798418491168751049025599273556376451321233611141425889553885969166569590003697575607234449167895488967468608924908353269579921455966645523210703814489720885246034214142235511309403093164573763947317544316624215921327093334003342505280117924481030139652797757589125139469834075139987733686881749841674261262577503921557464395658657383432333363416783245722527954420915990634003673743555313096873204829958678243536311712399042853487414976542260680304836917698398479115405938337015872723635766558166878263056639950075254659619812608371106802288614988055926396879296997593949194884102401485462032671299770917964665050801197702244745856896478749807300935869725786825313827856816752979980959373470583694133172336541780186412208255694684602464066482900739239421167779003661317466286758169903748960336998800281530831727282997971304009612628425447605490331761006808185189969665484825438621780653766228788975683572578182121718685568466140696878747727731691158241514851866281485651426540373916905552284837150911880434709539473299374077715469163398932245567622091901758341433666680854067317503134280583637925817962096269474300561561671755073517902625825060553103715961658284160794462626225177191982136923175390373721029373456235877900251514571415260811656162294269983536318191154878668532960762312120224319892920748431730665594287197278375841578218901926594451532117093224027833990201494911128891982729562838041973254450834970403403854571430395606907965866703758507751279399093231256294391712698659220961515880032537328858818997760305366038008534391832122005357199471286976947445148177168603184511552881443639758035182016251642192200308578245119307789020099278491351163248726247071812496407274368086265449702045613024060985841979121366283691943539811638802690904296862572511069053669360851479999036361662933852848434493734144444793752109040982309086655564699199838373520398015215069996418972761168695075207874261976218170645377608517355094707112724160614158880111402636749633954038449216009555137573268564947821355732669814203835032708343731134858254728035473877739250385890014617477178675056956089657855203132073020401832999604388458268896189203277954051713325471442218533508260431705410005452987041890969459417103219435665693397099071408680102586377723181556441433077451747567618138093466903570885493055581294202052042569475927399639595282807371646260998987813041706788829309815423256821249533544398563921570777562127329434236380069621280872260649160699343044470752602994372329447178923629266507345630438883884845514993426007342113745810141967068219003708536509235349191337061039087902471064111522200608146832500274501352763924807105888177909644815142087431699580879297186567145479329063902424079904472513193247523287982871624475482863840893495251938056123052272322513811032067699201504548789672356846334004921266932359606650784090567923119798419047913345777088567204721045978230679790326876426782685768612147865348068501267590140173345077296317134286004399403120914168505772127523201794106099198304180039549162676137033708391551986694073235782478022801229396151182968024279782309194037896428752382103874101031613770192216597954024818023090010494730446528632955039202586034704289359527647281366840909719266748527031542036465469949636648080160195812423265327091149255881071451969257719050394257796990604057648476516724256921100494888576866779426915888989781787104625745608483624406651943189706778771933501674834776036312018539961703921339512989239458154084781330529211578480046701818414662853427692126722863160255102608200378777560027367635931586791624532536967707197919973884614049074855029390109876949245610964830485188098267253021378831560831175406124396118309000003264386784358044725480465868797321372724603925167757215335909409516132965867658138859993554935344962953468477945092839753586554410454103899109020322605814135886875376264905148390232579604162466427781049339169567153556491020783682884534534821236218100617660735813144026539494548862244181409514308740300679240185266796600197044370863825228328005290169034598605843714566827584035515028203754762469412265124219559507459625402338550181040377103521084379189645917871281837930084609067250070664171155954160728080957782894307675136749959412624735197981753205579313613650736246596185067042548349003004124932493607061246831833205499091217910649154229788677546534831468186099250287360263036066997580547944728498840107108609006152780731529917172456131496165778104433881250072000919732865766032370557615700691674136146953144301346623139980398304607010770561206997247147889866283650584474734063373211010920451074567620208495322981270748059750212647436447837361455258130874077481590115239752721005627647604878368731103064905276507803920591048169657487837908950450911724742691220506120499540091614011169075475024291913348879889504966100968089988645446448804400636824255557507666961757881674988393675469710857618524762121994144796265225711497725272234082150262615816832854337103533411983774147986022481755009819582594590852606999797353823557789578681579715134043888618763135569684563054967475192573206782808093587974563107774629001113425342738744880446710536758940191613512365249175658033122425880615723156105205333316233553187714683506668629915624099275695311687658275663269789577406957855605074314955009552822650966252302574266290331995885556042552950749967817928876527821703726292364031552095238574944133363436763475232617753060012571852736410643074962505866922334876210901812343850811880910386008851791329544584459165198569805326029777442504212731933799011488977541507142361159240033350424514191026184835741834559003620655954808138033397011454689552457973425816731441168635313197624045379581631102784989737989119891495194323744736312149171603675707607212392625382350617269526058828533115533220614658933919468492635907017987124408026579816843549211556287196593099449437070925275086979865993461377199695690896287652605394772121345598608866751198946338632438652413192109576443694709751191151990826611810775914708077129932536808871459979457514492606787605134234074753709547692278676622263032873240481530032543815230099771504907561254934773801160923937220845690685889102809610091170460124032414613166799570527052846709288538450798755524129958592184144410468833093874863913042382738687246660743119006931458116022729628570252372797925409712584485220013156943998491008768363112444326436057311952219263419972517239232998592882299971222584831440251957407863030241903707069430877950982074990979581704118117418029701313866681068509954617549659828418801554733023631364252169999744362717261819925245279016009975657289994951714348885929868022665486043784975259742667209979588357702795556280709591509303713126198505571876111183908403352539728249726064341151157041459482831320291168961898152711856616068849695193309270001346280814899455559587266547788448026578903513748383086793635525753528550944557294947850713197499304739738866157032971033366440438366732069258810986439160058776182671673521941035750741918096071476418057693850953800084855162384887757690252595604744761181630652097750560220687133472979525529584638084940493065461145541933911715829045660805268450641331364186393852089046845476143739803035791588887862580617074516865789069372273775476231554537875369696857379699847312262283718319284893540321992459746341179620648542497907227613762002728581105798191774190887292377066046111774370663462482383770352668745600845429679852257605009336053887650426163251080568520759119764040162558437043003060100701236329461187064450602100801309625100863531439350451936856564985032323090240530439561302045286052211942121429678568867849254833087261846924996071950022377232966638251420668649653601207913064215601932038174424899265071858554829461879425308016224952591036815767192710587952916021937662066128416895834069599113639866738197571602015220780362026618052520221621733703633750844089552458214640432357561008494085495354215991976412948494766732642043735222957347225572278254260932289747277905794390061798980983691478600214299638465855119037926879932124695556168377119387239531079556190734846270389626446102261436595261808329713609704968561933153643479281481925903689950859826611546758292049974995640199699721881810297559029871789654783086854614490210816200816182019058856324011925228968211025695988340676733503837755425303681552220668846249268117626734556977719822846791659732652745092212405653197605292158025839643537584907103798258297031003110316663813012738903011787570879975714042779338592957127401361320081374275783940376122789399318901656219649634684406967368830312633585123388690896979712344895786364910425823682449192516495875686131627520852228912008812555679170417959369646393912345767399207918036899264717088321183155209629049810458377368138431850978076243950959682278742972442885866769907471747908899792113031644280009434461087443196625003627675093870100497887991975829254292073772332932151895833069898825251922460723384318286002913094081645224983660456044537994886805134102712232016327771951549447279897926522906940061910353809337091542991916194017447894770217530564212520711643004587875231169921022813223974714759042341875679656246846331127535093010070707356653616239556050851076250307217052371161520341163499592640249452644011928335105828224816803914221403542489542973195778252513707374740309689940479966386957636097001242999373474737478302839452163153318127553026668034195324782715957281700562369407331535725057521248231601285919629916991095939540021131044770827640188298364354341727057082526907896086866387370017977949358657405064738807622969287017125704545690133971233935410118789461897292174792494081935669090204591762968125498657010850803409857063226465675419388953411963685796224222054199381327104414578885437065278041269564765707974573789729562353576109462793638397645602085063655072977969321761210656551020904647185494949055429018984879722461211255342788673318761797535927309891397520806728634136437414071482794421866861264647740622138742081498825449332131751913543137302984899903965034596541927261045084760134866881976401479858248089521802639620349252755931107980985238085521765796198772955477400728074334272103252591375578707174164372425448703576371407198041260297874597604967755140754303504649835359795930269258273240092706851908245077904626314065263677348063457083231388720396940747702831352578747030823813562489461348207763054462437199559783395131010690807920691012386036600867010889357940271949366863160710661254674252834614487243692801839634306250473293133914120423912997948658502325504045220726767900251622195344715604224621779932718830410134637108741205219718265577238818453716681310800177174634877108220322347596656026358851192805162227197890595845687295089174949813256551450581400854405054993564376691141805346460350284572872155200323712486251855663562984315861431573350272511232562410214044077541378366971534227342848251110451976272324181790774887894895665101994501115136983475447183246602386925485373514456671270499323773103696047688763876365648577122308145033761581692411140893789294208663312388354734166843422239663992832086651703452306082002910143997158774319823998210755209216181561753402138979274977540339805753947372870511780826103758538106526364494570156455734684319860099390903114648610279190233567448091874929354712945509991429013866845215613815912152001208260809637667316361961325261596621328706650689900542299281838421979581509596263939826440081479709466553317869944784305213933267117986672837506274463133152060744546329585493511764941188783280692922965584011319131244613307403941078491906286041288857727644891293404355063378025737304063632507018428217801295357927572215085454055866699762069466778454739597962524076633446593207376716269334370030974859818904518896864787494303768754296396692664804008405022512622397316315214556816394009154026807772430920044086566726575309992988067419412173111936087450817471277014613782386363266584161456169647731730327210472389018810604003505582625168297945401039769725749563700478722274652440390030918057329182340893737361972257116559110386995437130620459761089688966556724133296120336888906435738976676029772352827141966707847460902024816973829237400767499983600004130638460455386247357901829739488752934986297232617791602916752312055167731267818124146921187537591521423670931474288812693373012614167322133326364846351617968794049729596205039150418507121712937516086446218953752060247692833319893679096659284430674924492130453903365904814129397985977041358249490996501443755211433767774029074502459821726244349136271750346273497785488443421386451862427416408074086320738522126744724719013312744243491757177132814658036687757709075775022168787750491140826682888349027618953320168730354969791748564604920938009559518327581400075330440900915999513547196648661923201290930017828930672338758781034015440924787511074613349201596505341843338271473342167001001330728649351364217527355584460635692414135842827375533491186528015669273784124587950385936944177948340786208945107233447496624926277640585174157604152753093850588045161519827172158254177637095507422638793954436629366109644876742209331834810710201636373120165882400464511229533353165396604422197626048869118722678774134337113637472008609905076336181989453125499078660491422496612247966161856092941509917353279106956740357299842281542695538495869931112672358851490663045780219984511973086855835780263807862896367537978210113749097565226861992222209768372144476215407674152412791804323218508110110584176217190327549293216910898269638844229122991293545222643499004635054384746581152228660271738657631499442678790401028109991347907487045864931504186900486272823974213572966927458744666916467407645022301666841473594641049539690620310791623931953373655548709377034145554049281968996885466602285057467901899504925667768721853849476464019905678757353590279041003239750421314897611374208816662063406711424844159369618571182702596310231955296614743126078621936359185495795455480277105318624315838280420839011878900560368241530279123445941259319954032413544738975089093378122374205689113816593358146459711331305720664088153796306543105356351300936839600488863567207965450424822750454277738971786724898931958891606018357645504198231058275297779981570620904555336826141165314303329899015870130732428646404431949617600063452405318432775428275105923373416964714770594322641627908153235371617495814879639076203610144539114903152527761721812125189533190352407709552723213807656110218870127369863139155548159187278416891959298260088181559461300328297214784383978682682970355016415227987682767365889450809956891838159762165264547235983286601589332263375773525091322291757554934479243108827424348495686044666316652335158699543213132242754434581821758409698411981049686705240046209157162998531982818713769968203946557851024600706673177647115141403295488281968672228522866291902785232650359848242936132362371179606630322811729356927944105688505976699521160211712208668788607333671203016761215870635032126810070227195944385688881366506802058625184489801863702643888932017495404438724773497054459213406226141926793666316208915763532353334707677954515171313760290894226723172968697015257661245112563478644556138590533844678644404260501406912750389245433169677864595773628394618995017258878061547902676002194369166713015633221865348913086862466498251577067912752685804259895165906521914603892770568304982634276102853780336789739980203697230876223333550727110393997939595147884579206012076051000830180013373180055469863878355842938689152077739043158061456316788825623267177034876525646553400147904004955446641959954576389154023687042869715113518679099878884407980954411866641381461987304549710371987045434169278029482645449428638063075720559563747730104270237687969547121873341071265432554931181411733269300424915423943175166431590506568329714931155058793288710137651726136881147403794596607889559034102798724088802698688584801443869039139858567340010508043778814605720526709529815923107859357075986830471835143971627963624119168387448142351404074345158659587879914834112122951085456275644444777549815282515656689882082342987244238580843992114676830979287140865255321044231897696546408560357146641021927369618241125986383681028397933135745017702284639011260648022732393759344634360704783387396439236072770271718663458469198346277183169179782749000242701576528682054956547202559407381924373313515065207036711253230782292827568794169571324115177616921352971313122893707149318217105833330031045415886147611763466372720501647686460800894848999616637890087488720938137575099436442240380439074872235266193234388428787040040770584973987354149200242213289903025764599746273884525104309294910397995047156393007558452291572384635544422863046805805770399794519529633160430691878133653335853478620700232096743919854306091249399296412405599531092691187129453317374827354210529914023880622451724222411734659602952972715800679252564250294101604698717413388899219978257183194880906237094420760904347807727046400688849604903812545657752383843464140415638474559132180413273697718791562466042462634445085410256863531233890089568475421757575671065233155708044606423439825841045455629513583339526522010496939364393924852057869633953506161312504600762901847472125334718468457330748963768018300728817971035693676883888030098225181781725556967323460462405434837256855337092437752906176605626882536191104905302411682550500167473614722375957106791777415788019180934007941610524242647579577398141029555267424227197367148172885101427319192591492081433738385542427476692386550057283449592655343876384082958673892545524528599542447922122264566924289047118177267440603923165407102171770270857965317081727967194310733580661282001065319145795231584726206244697927615992802979113637266740060092235504294774435795526885746307865004469424416600741137227989995234577951814673643104819540015707682815378050775600737487848998595597963380610133617990376390886820275230340823270085593388499880962377281476070630604044240848773800272362806216570486593499938333686005644708917172071530949929604530793373448144253336067722590568426121148743572100022070250686776847580903605793663034067513733987043332633531259930648484303172957475150511533538791275436955070933285473456612379301888514337583260961898726777073459677908602111669579933494461019891413196816252579141888928393670456002362685358019441605765056721482096580428567051439961256256992405777931018913269260888314958928904945789610325897269602872762735599368826668145171787885853406703793854225878032490771789370427195732313484281409230510447672226031856692955111287318375563376324506164280256699546714598385372846972526212225153260158530729014207721349401033685615276584896419534580612516835622043342468497167818197678541292338360813724557161214947040771749621401824654537708351771851740645368368759949824419626438834798702434339484086069622973511108080865176557347923095969750086187385536817855226753647331922010946914055326527093405133695979114201968757599947255717010097271890834619806255927643595942967981923235104817098834890876501417933832087384173561039995933947004827789320665818466385952630235869089084045808786939493184579653860921772376083745190616599534997170491851490437673706258895073866883597880882471903143937757521625918441309229298509892696014450852979454817045214088722870735421568451342791082221903035989531431393152880450794613782659928208962216836926812750931463762895471989209396173292971848129973541357800930586476612647787047371272353289174003995765181917039273478639288395073024404381356830928536801522879166528089207946350286919249338892193503149644503924912045883657811867709243619007050908383889033055326458622929000047093194583199310810220427773047378989783630157568375171272146778718328032209716943437625446296135070738470915963914723284597584382073751237430064110070344742201525837640650274095085295657970004664169737219877975788717817774789814397673132932503848369193318487907563085187869674577642598380612262745325975340698852746771412898003995821607487993590292834485468310692641408290428546542387085208928242445558790923855995371070857830381658836296150751869878326706550601671094037554670196679909970382795028492483212683820856066400752428300009816411967371953253839051204184376175502963857933846605768640050680366579703038236025866501595775297742396107954538478765161162446266608384510464781067311754030213990401148287129081625212057147963350912618403672305705745489429183910323165764490046749527698081182687636103083135518741848686038235600103300074059386636096342981099966642132230769932345011801104637041524963007407920140655941381185015374340612735219282194556283383933305315611617282987003451128363235028905062705245141797182614324021424912381886102820139716374114430498105278110214924361508873458711861238594910209301588861046887893289309715178098185737729290957258273515802316053284416091255109612101553013138065321953827208694139981403498712052464816062095735986582743589168039879518857946628488364854294558556542778040711370280163310206346128741596645852810262486574348886832144450155083954126812626968775377836195626284316164403864636236379603034031057155183833510893869363581522273527643451688769488971913875013509577877051140872187500448754330884095733268074103384543914350308987909763624777424844468536024235728486865749526748146692672293979038794251806963959655089326768267673698938095611058074575629598489385076987467790318463628667453854611855255753714506065180634664224109609575076492459692023956272689559200030890877000602692637840775772950394103442043746794791245167980368741530399407368278711447775750423016126137660002041579820592657134499127996587039896037662487370120210221128447108753973806463589107847868763139960233016815942246782060045731959426639922790075117580320802568830541089459473667558212781822186797907371797714250554635469432909862920556833698818854591889597326046034524884527726556326495556453330200597393449377192020974339132672892489670015356815509433582848654648186650586217998125847638879522634214016883655910383238716725219145298578844197381740815170450326950700590078182959778769958706136524419034477160875372009468692411163110930777813282775440169573860623114954898960850597790849593954680941501233054907369370814056182947364592026709049611038842545547663677137622927593365500113103694066035686437643922789747496804688621373299016632495068933054196953245997656986198712459871280641827629922971355101593992522056748898475643867403741938841521580672400107533695269196008203230027472925324953620194282464462620351316296679559003801444836856109804830647797508650999015375879214652700473835922768727489715809020344106880504186112208063745626023564584150398426267097177691353828712317691563229282514653289045268468559300523294457168584922240403690717926793223342246542559091377271578833464388422056254049509805973463608742981342394726879714814952557070935773530334515898028891362995135630561434022184343089357874959164628984408421750584350698229041913250096915609092114774220411638338061790714592249514044468009237271492457565851184712565364544980239127308649448136074192831859685038456947625754980041741542585234726119247291527124204024402909919260183330646893593601996572943083298295941976009258228753452672823162813479170292191898065170986413956067784712773580522909163404398687946844100015400082345061655188262952619710729349766868825233153825274987805254849672664129773694854108915679076669529017165801817959845224116490014404835339352624106284374285813968244040360869750052310436167991844391987853297171896957672331316546619333870283510615920451632320683260824694128716092421296998085975012914825470331912906485698399833389855253565829505181453353453758131457759634588131555260233980629037276058074659639847242524000215388682719384489070590914511792713074601272939554662632496039382756507252984184585341989283331205552810972843162679707735028677580516546057509312370713002612501730192635065906030053449965397540341213436679744876417793278109896712673865376393297266038162532348023376930460608720066951850139325117292117253887908699495651829905205628746649248686225672563574203581602598547440957592462137367333053056693259732822437903140326800211018519852439458742526068591919356260475636682368572364546984101667344324954109078615213101545838381813691277199575027712349324005471615777485721497169938496670830181948035701106719455309090195170646429100291854917205410926639359408605975843607049289596758542980888964240084347148753041080373665133548842296978452885401102567678648175256484046941007081045920464273712148741677329413134362456411416496775460152502491509361784704532831639768834509136531321720331800594507641166139570798045633705853227597816919227984049034362728105671692239304894708611453186185544518059738476927508321909324681331432485275630018668030778523119064632567552477817873153528092407921762844500331175847814924724569166549328738592892007600669434006684164239588649759933380213629164384589988592856196437120993081308999158204338421851479782382710361475692663734656180077581672635953418999085414975370586224117822029763385260319687427769011630659474011971458462885636609918712478644535945023449530875770610781796128034445470392328862223557720383828802733590644374164519518230520635278899029728031724666287711394730302626280545108413496420147640778946751837255637888439387195553937717447883957057149505398501172625330177421895690038899091737374453478372411648868477109025839839492488981506432668535596726706806895963881168901473862298945230249899548512870467830140607109451769058099470320733531593578230334935523722426141640072591274839301624203872411583024602753184647349207957803388171662496270735524856758960550853413296177315367016994690756001284557818911333373823795689090503080399082381480214212246932635918998933763130589753070716349773239280800566788770070324328429470913080716336979243231780766219636748242269936019496466536798233019280318422684755966534982887373870560436625884546916959115396120109109311642243600378891130143703741040049509585089191040296639902793532290250639109843269114124515142582793382671664093013136545003006536433149215313942251185875793293674290123882859940480389784114289153637064574999153425161052895688389759123225295807128620536055229803847075385038668537267969822742403051828591839256620744024274691607522847539999932066440600140548213380550099608703913748364264452921728930587919747803563322489407960108984804745833567816838362126082022802894315641756840193320778645246153804922552709442027161724336606566776512085535254410100134853947136267388969471318844661346645909692710116457718031770979750500392085089331784254864157788606823028275891626325709886568345886918895477822874081196830087149362489371948711230949996340719089666202935031280735455677516703310443890839979049045582525284039810315001177268521790755381350992277672090470029740905215569713508937658983606744381978971375600458320097155305182139206687526131080656405122569987123525975644890140002780924706643649421398508806445599215519080293889497567829354344217295538012532417695041551228877955914526494820042842914522565469316935448028913112447449067830057594367003404746043349437105664417044534604629996714161874767803167456460072603620935116809345998428974054627879702240133268635659961700567286208339189123946200996599579137118269024252569071211823679900431202775394763933147989734043953415445837503598832422333716917275892684438419636239577077725649895738771138713395655758296860173434633807443410932808386413154798211259560590654374418386274587518577185538346458544879199169618150996003947273893481664845210122527089129668529775955137990337407407536714146141063836247093954677435876408693623735013621649627856107954897148904652386821820332246915053224822736051869316712783325059945896472161744954437353232568147163391019312239674128029837792955195631390173105468129240370078226833639828268226565293724916644106256103678439258954479749031627696601434286618983414041065843755216582903549936742033435109232513460714607132428905544327807704461405415424488953577768199336828256122914237280399289411427843705819708892823711792876184262899308583907915188765464884181415236374422632954887210815610210605950364265514875782173521723880014184288221077583872637554439335851411541946708829350331629195949031948084830934410560445092036613072809801124218787538852461749210506067012241959323331927786223957901023715642114298865600966048805839466823454506051595508599692366472636047277598066631643724435704931084952720203007535615498705144968616430996609626073643483338733540312769050282189769891158569755634554764618139055345217064148826280287361448117342857898531147149528127645628298665490379555110159962283930151173816172087825581485173482943564333064983286677494826174701451995358145260981131845225732174762824145754362285648613913439144148821168477513987712085571492585589101438733903819249704535782495298864866566294648948227272278385753578580129230052632980916808387795362009476859424008579085853952558264535683798449233213627389137155818835463974534386494309100656833802104459129248234067826131309263558083718554491314832766688279785721179970916591238722226153376985552324273898132970989355463934484757204982322307400902036915824452120912994850436523888537189235955977492825796935953215009131925178673268680083821960766239283684346780540571983246810225865829916551625872398180025532307208814117331128462477680341965198668782215061948309303824846683365475396967175222219309725210805233386871116601689057582940368856947976516792986148001379978288819578970568115822363598848154179138084915675127275159370628331058716374712721045204566962030269466320451638022671227387062558300583873675911487281534405824393350199790696004136981354788419088491987949439856919350910205360374989912962475657479424576774635105350613088629085165724539950093434507709549209015393802688443792579935867657535912212173164643389316456690298719719042970176322058802144007875694400566445671603336935048736951655317999675738065315302109109087093498366913263521217150342126335023469486374603242759391372643203448982247697058939565139147365022817021580615653109293101717964980592365471709551982381140816971346184106748304813260694214144905764430841533490111121684501444716809673313255365817012477910788210337521072331793512727104242687438654118866233403652959510452690061374307940293938073098375383157271811991361006491856739209767664584317717578080826934832739244039031592731878776444942241454154310850694950056498760538474959147830520432077209542623398135521353708012435276946182369302295217043942413651643730673872903991436619594096737421579439930931172250187667034946693022308571258103689302803353044265179046526878898862153463588155496763373707894548569513961241686038059520223550807793364554957326765630907337765003545495319201459422737566922190966941727368389107035966665984637390776167281467996913916962803999838411375590690066121374536461514336084281014152035372330747125549050673287977960672251161079068252790995466428296270781080346578112165509004492139259114152172414651608322942633590977618004906751485284624476400654174826056606769701077271796259450680213892844740299106891703846279541986871257431209473308144042269641324434849351127786652142930003018315240567014329921660339565766273101608196422413339866819749611177502694548256851312331501441785078142222622523407849950827514173918907241729248042168327775173536555249325779942490231962301971505861220294683129567168302524349861478187278117177102852887244882735371642952477291520667358450068585553473599299516141639796408883936898237304086093001827493955587756283338749497362685689326305953107483748441423740658905806163856961982917528243896846990270345814389737391613267329647666761798433980614949250562298895953106140145743044748492935176155804306634785109528678301640153702140369880398394610308386919224346782079640960032852693622203057440660193034634525150159608801404447511122167396490397839054693599221353567670513333195472593088986910956096297185708447133240367530803534316068758754174306343049987250447426236485302544056288579765757027128084383025974263191903162949922176683945211985207495091105625946416486764754907216978813232182295912207542288870128933612891600042469248114029548201180790579470242856162693517837718431498180099742841157035959556087208409897443898178964995797289707292483332523109472518365020395751295481849870766696486987923622939496370310241505052402484434430596094327278924283075651631972500645498412222918151358924227104074362950969849373066010673540344195941293777317215300985995502303413690191850381348041890070150285623828730179738098586195803788899790773037586837542974866147843912029460102178406725483235432912532405792932809076321419984591935141787508754216193162338351563214171631567995668276491753170247917681276147436259940275754438206809712925842612833453145349917683887251442953643744519035448475251373681762266133492715576431297223547726591544531566140190348403516337037243531742717073805377192857833341465137470355844327885720801490980176980656256956297493909482479676602378230812127939032153401669931868970792125404324984096134127699354421372236911544265765010446279913994803888976620066654620384478481554081779374813412937005298162923392402138063328693259164977100798813665478426613959028411346370897678073857573067567978220111494273887992645040499513420330658369836763912498372255798795220842280507044057806990575957958280238596436455882508333626865211515429256474800932345215608415753824497131753782382879242696608212906509055812611638838092472061277779679173254623586634483804955903478881905419077373596576278340040084832859349343663322225337221091851615505154438478010707030002742650584159905366650322007413625303813648894892342581743435914727720412027986501815184257014075253846634137250036142046126857133360968572648785797358592697925262763155387923863332461999712190897392693878424830534694255138595391088589246898510888253662481475075413699159839046160739367629171856653116599044868544747247333085794903129803662873503356375571571663455522610375048000749634839309580902856628692000190391181870644115435506200705051583779489589139913175277218143500305656914615800979382027098476373363695117928767690671395038492025653189151575324692575888141383745929820315900416836519212311123404614538373596841750032408253904217235599309750081578540681030573295083697996719157796113713592950893485918727148072305828994437005483057036692546341710733192572226424520182768379748397156168576656803280418643830183817198184677250589643314531177099831042121042628549984900479486712197075007450516676671691605688772392922805081559858809486332242779130857916755875113869474766688464627838440859677621336095364776628589263752758220902649506613052629360355142262030555490546556714166651423972511985550970213278543631598951194598879533583785851993079484339059341455981342204000684484563656109966080429567521042512941694957503888560224877465898360339150456409529509995088931988789661793771085155066714743605377772988191715610568892773820071880743382275000993528781125159652347823092330567014087623148945759100961428998737414492694604819565840915765987280704310905037428708611727442007034758118751170915669258034822784974294801849381489269783365102362449336528274046465571484123784671257729388625946385571654214222619362955673369428179131888512419605976926270538511710689678167595251692587122361389662735491444540100251905030172479893268170263743530731474240378611938019449192108656970603535477800771396532504535691310876570435836674660825029548412208165300081860751456499796822681696162281462803482175832338878397386196590379825405796055570067470062036707935740185768504731292358329746297891953777862932061687698306225445455971514855875658772780275893764327518346461029838801856672650278804108868666706966701568719792324646070992588584024049088305340671079111422377878474637546478738614221484826924384590643782608696611533321028157882551227513243913046655526800437272409724417003283057832223304470122748690665945042652424303885608887631966840101178891633201208473178773070278795552891361518603642908809403897979165128590275355772170164068184288995017477800690016174769785671842087219892810857093830057463844572269560284866779999710711336470656482753076360138603185506126317715517493554886821888836581127611607332448472967540290233780982352810784721127500692653202183056584222137433113549290887519770958664808892662731791391264296165841419124993184504332901423938126718565092983701345034162622181375961159545662658870720840447096331055219970548715288983046894459318486310204958815857374318461009767711880830591575817298560250638805056583855533787875051970666579377848042041279084211285730501204914413834240883252873526359284844752732460916781187336388854313633583252420014896284375637847015427788246374967107851962463818759740329501760311149462491680773081679817358567201379984766788445958876441241984166872490733407197606443770644354576507715244644003545193138271123353998648026638828159978583619514155084176247265123067847639007269184083151035229117021726222662825331222917398383816844193608896231553785527143757703473162949351203191541787459092709604919491552931855787242796384046878140205202545746591671788682537261028589187207595604887004386125950058996753436673724326594706376979435227675763787717643579859009598122903759696112711424058377083173423430401365729724147186106749945900211237108482485068372281297270154997912974553302922386932131417672842954902468370189037296392684125396253237859112411173650415055443602729940786920055840145529598386352180925592447500375705125673878509059870793559120367438444465200399929838690673024787628115853771394849827822399255390829113955575769831195711472265211434374314734448048351475453529153076012132329295210847068774893772077351909022820865162382888653273618399020585221641229257360653134858373934888689081998147134765837604397164980990332403573779008735363448546925520886641576637378840023973410972634469601426565236813984071980526473804934832232522970549781318393434398106980797639466621734111912625850475541434561136831520481493651492532606327935601549956022959009492135219377770574391544417651303381586233734524015649267112747196941917176999796575365480775945718826150250350202755205190665318409110379424108707125495893379304371699777042461233763760658296079327478728908047377307376624195425898288577452432748889844180969190641447032965676767648875186868409069581814161803572325195180786964144092178526321915953582516669818608530734340069271868230552336289326833496664160572942716493709305993519315680493471163798665460506494185639127610951269554177039567417029275933837469345780136440572651088202200246029099081550089863428676179214337279329031318093284491436984493316148943021049778017272523965646391383994017302001670417030068407343086135096735862021057559670502460103610715180417621246374642109038782529746591181645693815916736854727241177787995622070689796764613999319601804904837165329626382869268577040713859764744090730372187678357451204050327683167920107657167879954121882474900164061396076890068208837517107539563512584816551875608534408782276535924416894898538931179551038572974880792546210047462476823345588588383023244628579274119950941671159923452853953112105508905065932688786298014071016311270435750557313290457444401546833002645672280866624650018170527667061816934343091369002714344201247307157984631549312797589427643282193870679565955571027303219457243469318087019913904960101851050759339795613843636548819387917469191280751837518248243866003771735658065909975458094706112324806105476414473308048206197159672412607128932353376876183394175340251406709909400076475678415390698885483981185384248536387464889852383627937756067299632257830653617425597799944053329836124882412170382456968409922793114308817584554336998778516222208708588947882155973741690474715930889212910768427177244911119842205674904406737864538892309956809446247172566375909828828819816331994219015867468626152429989574432547358182429631047750964593399952328445613745400539154279216956090550036937215720177644906805890062507175523957738817334162328623280663929141588731740928235898158778557544515201772162166164677158367764006467055949167952956762411909942504517291821946861478713954584578869352563662854451609455233141527577806573249280086762303127676862381208190548787516358394762472392684843839006711691190117647814854520594484591601662792345242215626768857131936431707221149979199662254658230364118163459358243721923996989310689567947113548213903075499992636369142005112935497514706466086826395056458645587081651599701025869892111828018774606010179590836857226037665006463873659180315422004359293043829882057473132457013044923923439508834752143870584753425332306361266569984292400961478833036829738089088782516477698402195829263440183609610716364320376274483531227339021909674075459704245429967729783253462366092923826993539300653801530473183889818975268253580972270270093750923754247018967623824060987220211470794732847958017352824422216556726296065810071136343989792280177539586092480575342604483279770648675991141540393649795244078933066734686539101870454034086575029129176760835899274386653190774581848021909323626497666347367835515205659076556905142018341112950693149583819096156594002221666462494511893549209979099089145009618491230658498798038172480436480829551300838560722562717349256509176274253298082302860143343067872080092918693020216059080177275014991759697164484570207792462318739783079327211385643693593196457959980303940143842338933807917532693192691547159456150622441637451360611214811535110510971294667183204790603566480129823163421863634866210148671450306824539010371078677884283626722075979311925952982648080878804358294527481781910004145991155306122843578963048204711336066045242013240989614490671969745618150458112076538341254209807255152130963671548684341557132402046500531339214570862083762217397356423024486452762418600914670089877237137128518928508330773811010207015443414550525405344849442318635122296955323968531548081349940259874124324011081994040857586990262055801686226457591717722546590573313971014536488839252220393793774918513355289197946617030508952343773680504505147342560449335177262227734594229623316874922802584283266606107814575942679528040936370605768701159968569366929510015498209196867458815376882060009456709446185672607037504437055965309626142753837119866578025206639109703125395573072620499442337130145898098068087463921185128174080192896112065181505780743187517180873604862866454664969247642815914729244596678309849667910576248427672769386828365523197857953379940596385262347291925703003599106029931458273079091219813557636855346849106873623799061252858559118011947850913692535607110709870168886150934104068387281536973686917538019017147640371348492144489772279896415267327254530104296566686959368911455939209354443566415953948162226952907862675190019387966377901782555799833458849888145058844066572696800419248111806003840010538563736407170399901760525090389849863240382176294474486276324662516662327020042465134071641000423670281483458142832936342327621824156175592482774076614820285336469448496558400944612244971473545515186720153605301039105459898371045034634520639661235971357929736013955179890043389978204303583291981370393160097365033996351253290166337817676736318257317543889790222171641966271639429133138752999860405250543896570143740093598249482326202222271991253984687790742641308720810995490420902735327508975568538872617372891755921187466307962398971536502230576937129816145461496635975047438451711803560681103659317269499082218244638792996040146721951345025132543443000968346549382775164385967034474888579912140317177438140707110162141273532604716740684741374893998007476120925282247293495650541334951823113771386743031139534683827374250186140759053498712643653525110729136353912830627890102588648541584636741339305342743392863210609118676515001647315870021299839738583680503831097306968748004340751672792530530544500034399358409777637455207853674641192494584714936869078602870091169144730516445673492771445729118846619930721652713683189808321136251646801577782926968311998157889092564272125874062622327162009916219212303930174342567899135660260418277701736081483279348485635177854559019912670740942429476816356683716667490581369843540629661114086082981971637340308933339753459450989556712257324139272592383218852984399819410427177383861071360346895617194092525546672914547164799526941978634911991574864269881273476422340885273257706405527371149669154219198676236115648197198626773925860728293787263641265682026075762828167952824641041075650837514328775543826566394725559819148540959663298202280328783269691125405875096015330158593404692207994602989743658574030464235501300148638058632534957195485528361060167373116405868179193895027993874785852895412719800677089483026119932210841606629915156456072659600695778216937102380449147414770422276665786926224432808840889408286526764047713584592928383601550177632223766833941733219817909313961652064463630962803507069396209803165312651799180883238132414778544575624873661748187547116935264769032437981631055039773312028838862844553341347371842246300081629156983706952006604020640035064092265055428514176394112325037810859396128246761023385872038351440557685442889066729229634819774872622185188485720533638465042325253672255511292142222832262212404530124969794043040505701513325434900337488034765877067233248513747445985729931430041473513641869418947449304000933847630689983752754304663747478096154686593348544790987834945798751632306109890055964879983633262790661031811334448327389632071243128593020523192079242934182456740495605706485379431287672828397499336432297474925244106623479148933265814839099136061581125090224664976009849248445110648011333681184408712894596440655402277375611676397972850518113048841760093776692091320585081147859084178654472269911763915634027882973546094791262745883801727821841836532059002646298534995362274629056246937140049481027137639275519932579895325754266616732571014997675739410846708600865926735388034468025120909226059722770157674722307526992990423856415419582037124612293961925909527820127077767692260742578335399770362594823795534088606142537832593723450619804229295250081170255853231561955862580380996743984806683626994040683521800715688148744113492115145984989704737724502688674243999045283965700879200213055981698541638892123604048345835921062294736746784176160409224916254665744913282356727741226597365874820365543431235847888197393047429231287003465682412736542115044434450276748867545220598757133370742638924706121533093843096478063429954264217248029168934247174380779612923827951640839963271175135154883060850112770313238832042951642219556308907279715888839302462552001393779453477094599109691231408261547867667633537441416971991543222615515582069607188304586003994367816986584208328637937554220569880441857940937404103043347112702500164283169482592493100172895296756122887288758464729086960304585548285719962621873443091678637493065024637482933249753517919054837720744967355341548850725844684134867777495501739206863897790529522061488700668738166103899662798814788751250001678498344031224878150112572092896940735836112797861231194393110507734231082647252201362746011678769327511371476076915410490434019827454524835933473049926275871133889530403632451842670837058835234130880569451601440663977315596987463073605736109025182438643937777504503043079129100361845174928769067741273570668058903222327963520677340553598002865794665895927291979168434270164415096839536015878959998344615300103199572385709685318094739376617988577029316851950410285246970491247648306657402970166418190748384574079384429271251331960332565269468033321477428343907125714237323500617558951842633029323940760279877458305655367975717675568653402324035190169572996824697322351524570231873612638268714473743033049951420768887360484198656072172179996726686379504340398122290019420496298777425239551745999699927518467149236412230163480951628100328439401671907467724804876036622714346388968010732096667520351257744359161450536032048801454030725629576347814922405341679075081700177375991103325790523474171198675730534962114928626559863630015041297230528498132386881635190078772077744757302202566738185099990123882538421845462279154370660663578903861051910011863950818317884840065835650056332995073140990689948596345073024212703351660210061036519323546927044472973380722972597151111441154907983775949109669616739820065427731589231097340447218415141034999977587434154431939854654953727478636398842318299212634863973224431407460745941298734105673865884752457916822797451117498499851248916042642620428883381392793868375976018290079516604301817508000654708125568358921651101824875734309642498616943756510523203828590444971897631394469304802391600807360958164537629867475479544964251322750668571801159169256119502675371394086700939065747056891442373800856673180976130056941633460893942090461301097891124565439349705650429673660000051637174462472913088610125934124808624855720820407011541390780634762888258476798358074789651205419620902228186318289243507622697297239099115186000603624839193531469552255172462369532943415910024923477163298407542251832895255230127337805336722076078770093999751575222023620484655639072789047143573232355121961584747627261876727839952998205225814529178753928736127329699330375350936589634319458299632068310168486492332188900161026104635738913421136777840446199099643632629379553229924751221472811501176622769806419730552187785182177253557246039841418984177363046309825290315077421568220319744777604027417435309401739929723690048469525284201710880969208308374217556385693417428204465627414923804615668419618202010058548096299021055820930583187614286279749308652485854609241867148666286140834527768377765530827657451141987180249551220945686211814249312464345993606969148075965105069733929867201450817248387284753393550491336834413449311746268754051376728270668461368485950685449907287648617748616041921983843636526658455405666199502208333864870188416644914482720749320879092120652866383357670375486373725363349340331857941606825586869348470796245355070715002525608682094150063120167799295094810794118679557361367413932284768731370713207215528487444674276489209141050137860623277770911035759445229397171289293228184519271680782580896878645212810638967589062831126007898317582170294332306278211031741294555183250796801394748999975533575123438405387701028294480589938052100149841469965749698089178108014519234318062164984384732303170444456069968360205583209739007833283501823436532946841259914700153755893417292387937611546911859585006475813662128413564888650282413248627599624682730915979811526605049038055487776451120728103037346797366541071415705142640159201094750911297434913441442325077195626301361378515420208215986180175824234006565678883909707627840678019014927916159826438638678722794770159867881094438419678483939299535016299292995138140562190624389199704213741459901764045681376464352289883463966826486599401827767723406962338733118636386341216397770155534137521993537293370383901705221790449729413079307266148717096532276897527906674261220476295174931011405711611623691099321220676231153318168252614780816994504496241855528689022923480462775097769945358924949261826516139933737769544395278654043067050203799860965371430525043016124173338129202437009683273722972590525564069182416566521587666953519306282447901191248439687748590262222097276778926383977444054488455962757207835933436439407327520027718082317833556258807305075153841509965563291937260096428799883594269034636695481805065471440421424704377172337373583261344372959741961514011493532205322861062474047648729309686365749657346561038012813469663503464461096339861350350981784395521172530588878159208336682783159597348503931321219609186588482272085247495716735191731845164377067119693663050692424462720128142836443971608231288383088309373208049133203284431225493957211751900251260392552413771765104859609304158300221312105663068190179961426958897888816056717353679349089078986948231957358965077404789355716200026988253504317130028231497213368999281283879180305957695343094791788033666917088820182714505791853075599566926948158680963062750201690456413976201593370068649794127710360921177955207424015551501345851766190008783023922850068429008124640111543932569579892463945557668325063794505691390916897312127560407332070432316350065320125649822676245740491389198590914843127550191122689711959425830470838379645724550527745901525861356792038277221379691651271175010319142379728824991294978041465657548315975053255393614633805424252845949837648578380028676740481366995935749392084215907704562700368194907619619753319063923347987960641374503226808074650527906549280398945557788831681569745933124336350962640385645947449311093881122867857124810844844078226825655376172335725285699885543421118113169210525218574087163082406283193001750794945481776829971442623252634376140877306460102331612269920589719553861802117236144908246273185953945414543539711160095607229866630065115346102604652661519673576044860554833354867536422710840228391780981775008378944598026944485160744474362676990861812219260133858657243592173642262853002334927291180566113052640473728053666816526837400991623729070678898570262968572754793362907627421749452072903132656843030321756315392137213469402594909508730204384660075345730738536449785239846695405369868790069578244431434246978844537084615604531017986265227929324165340376572111510634074879216800562795825622049460060545930683200354095828762913816101712180412687115035762490294962141944250611648252546383260076009663388221026922272090493657549241620250825534403544992893157953385370719372522377700857184808574970871939057163606896395455384246418936215273183512220482760313249626627685362440131302403259002849043443404972051602552350264842004979385704510229341078781296810630518361646548264053411775220962957297875333605215429996956614913956509328707011698327959888596091435854049928021711971827969948801996899428479500879529402935570412738608748382508150015566495642299071891491053331383666439926440113035543696747035204237364140532962835886516724474354308401256019940932387721572587666684520057777717603771696329773380586799174687798454018804788616880426085993757035447731338675536852193920634487474083044628888475826258840109546642646507650532358505352706780674781913828310022693835383609643328977971166864292963045934130926869934782409758992622323300137901244183022338331420868916743408082780649335922534775779004294272898049764191680686894682201030816985669539935915806703973396085515418262264270081023891232140438312733358996058757062830517406313388467076327677861241578750816428353644409098587985638274493919345655974759239698700495445790269293762911049554335657859835480181176675600244134049393695275071521175809840091532741384954661319742058405989475261676227760573460817202516220526803458267394185297976123032337271935174295825483041627557036608262559234262065165461322641286967833670790529600200832741943115393658118408088674223461361638817191522813469076493851684021966635881623504325335127901285239591493209102975576957219745331081187469729781327896148706333108209805562501780936272478329510650073651994512304520227984764649132000408359295275572802618642036223283756953061958004327131455954026921861759080947079648090453956640723370595234405018776685133136750481846341100609065884249073783388309751921149829464020230894001762731235890848966081713779458041165847220698565653301569610275309565456418987684703448096374102327704830955110470641215626832995975505430537214511775227999904995307443875918271526520631925033616520624595288395467902710479384057592257703060968809908577070874790873691628827322698000501717846591776762239426317894773868810149149433941215305117666180225278572140464439793543633881373628041149191334377255827864076082712831870969047169679890099597173773804665417866964830613206670953987040237608845945584454337111267216055654255362984324623686518931899208710997118250421266327812031718186965355699758126760648512901217335619316659869897431575135005187066516084277340248006632444919677739352865464296995873107800507746441038158365892047762829302315494694507703762601090624229223768165744073447122701758698211225911944663457808788825743272222965691595011074378349937819927967961243449530611949083395296821927605479298787200282273421071707096770981356269910737768314517587609840275098498515572392383877220900612333858316354616613681532425917039004428810271681853904488272682667056918172826137767501197110048046862160886344191905266686716342484152334752825560818057177717456485898864683561439807024040751559393180444960892080437410046322199857529009885987390118685882600111240392504242856001867733817997430845349649213972886670121594724989273904939599557182568185702072557842010207410372302563779336202581090075237886198715818653067432524307023634376434495278877365041479868594474981224900647283354761837990834468298652893449839481550349353846370562446266144531254201563384447012861915524422626873125285101524499786180791020098205145636505930865063189792834164079111727245178479115695879707366798670800940967105688169109910626259527819685647116182656625182457239931914351368231833525080083919219649200328278860856947644684810152412632975680277379059654310647537904552639591492770202329985164188414466176867058181248839997000101387270291992855832751464872797689192562650315143155329970375435575763590479828516621871274960656827232925081537673043633347316471799559078722763135966798059935213438383284549316208109989097868986315958516864094028636558317885359273221979783495981059033078557641535280156325877661539737926401389417683549899337845204931122003583550561904647951427196578308172048945090288092053069690088359923817130404484289720278984119414285518980735342222748400490626191273980317145183721339673935273296860213758658388806788620437952133616276796622675002538151129302581098252209447117233403301546035976612332068102960662098160629047657687275584994230499539788358784568173005691158337863730725335695697495969030734469573833976967589204900146570952634161251971377585711856237008195843198766384691459599964142006756267222704849901173376231186462400835303818941734146669453443893876475820028153761513943285308580539869916464475215920994661633705690267671469032783793737919293415972261825606104606252080843182067426201010670481809665257487817585224284921843887847314259049262116213888735244226778414671897917320568126544781895820840051596711050133760829423711134864086708109224491166471110923120206796026037529689539341871619378294326154207899507370214506059458681627872781030502581279520264074920782920273447991025399066942043846377098399955467220102291824376333296506007224910007266896415658248020272598420556993275138411560817211374739111803341614237639501651565403002097828646702073366508389096365617909060648906541606028963355721546344651210990254264331451265313671576226225923228680488495966714230184302825449200428852947500565114580731506167080567298955002285796790194683643970882548214473099195495732831435720337394323026303711628782795125684514012727134115433856881829546572574549748191456341988503027220943712154458324881954768485638311742260808992004449105522220013516707415261421878558473158913916040287506071288872851755034282797597699575331118102342230143548043256353434112069890044377576836048321025599784860208851427065454234906287684012314826863957250958893774803528333521637734539922478105054962781560387084492348341069558292219529120786198618100919183550290787207749667269416457177034497070365723128619407502688865211737611153529316347370523071586477640610844375738564733653711193927653234258598307707978004866486622862085354808882802617011278674644325123568920724771847667511420040222889321902323408435062253736742144976645047777219978559274789148137734566463403741298203485381884278121165210171660533026791784916789860547228055571074455943256397263386936918504148568528719451778058999835289556154081511165977210607890123521157617819409551064115877509130157212241190660015493336096140837066654217618854893584701976157061538192463302344979312271928892006083525800161320106830596910228622131795597808899905596084408085448467482467794416558634797496738682235207027991931176833007236606385991660516321383312030634831257289357101201710506332019994944163053348929129071402956402915456024747805110002236049034426149550274050809947544716366498144922101337490264777358584512904579132476319087557158603351146729831782897450483767148785738924913160749289184556771481205305469287608956633586478682086023643454335212622092545897060204957274571795767626541273260126917393714845550148992697837650989497545725792151270168643772711693193087217221934444085515175769163958246733423140498047168875437273895007618922077396463632322766834485709272934880584527691528147027986035315036162492106681601821795610754920621904702986269162841332739125497781931893923899576088949048687142033787014633358802688818916883566749393556079381163905730760605923824879262698667151014566977413214157436641480216330396996606561955386307624395123671087022454669392863512554743665397332262834338069819967737905708003964508664610002943851998298167830458483719397090018738263581192253030375534785639975459145347844098140137603525447529692784961870470979415223335563053172418533416541987460726994697432438973952427319282192501780947733096135380812610673105111883710407569027019739606521008091757406138164017613570887737199950905275897353809080766615606403864068389771813357826736350704311361581081134452674185506337895631516093026948055097276296938970911702592736730757382130350926410498768523843507244890828646145161287541957630180481943466617440532122666877329034343374013071809749323218077467058004475326858305453649515256949238805561856640583252208049108320695218475348883394208404389548201085014325321817119934333176355883872301398136215145676958296799316770351212948984931214354328068249596869286440268687181572724816551982772306275222890129928975708837808767017110510680420155706570162163162339431302761288057409638639526764537473935217150513302606013742617062633952269409214705349686094851570475567044965345042643691044547322211635543482527505855659055788704228995638214333308578213203788513761674086609133642327437762351203366613552585236757148947852280637023439216291290733639354851505497286427144482807786633887571060496464763645165868539673713676985430981729160979644874527103547407180234015243131957483862171699481580792481605586951847630467569910856625854910241262892768294851506090031334021229213608514275305204977584871746847855214227193517214061172810942485466931641146700618494092061489458115636850865403400131052137527195821759220678844140263482167787063258540199769023901280130159804041902513685829164115145269477802643879920603424462450543877061427071493598527242204015150168307127507809199521588277729212478363356812840872381464703667726210847156577174427599559661483848400220393810427918237474053313076881564096395833509793333017914162179664592973717968355106054536085453406403174430232513507785940449026318668525381528990005897475255301286572057037512392815926222299847992807244359027063175109841323769005931576849191530872827072163543207545468482343609776390685132442529956264236921736641976597847445764355098514736414042051213095353365734415496036702291874315778282738422885890603258674843656084210629176542998581290429403803831537918306818951329594760892015506735850061419681299309130904718660631999724099644110134403430774971485220761190184288667886421589209744062604422082248707975406801338537386565780030257481300899169855765409380903591730588892548446182918952361339973736760295545887299300582170181240783365237133104936913691175948404409500616076715824441349673011581940078977902163651848870535832623060030659515456099109058773761469570020121629119421027968776829188184727796243875302080507543348636218932137096607650770592926571747645078360320729112958138446337533355221926616291818802483089633408530805572482317132324165780406551270626861378647038471717547342509638998065075903146201615324168102052405134859879239756092380405176560947675191918400522122573973618895205757802869005831759006802307079570055793104717081338324902934891812624396669124105572207439455180352306939929427273802875278558726175767829611024936861799134809331097445866412850712397062154509000139176572405159452684069982764709114847479246466610979622462548371685841641827968629686078027676864200793491802325859518588800910916782445408271047268241601376359455635761203504517381844564898119229140463138868185312556299413565733189727099821622212838604413117598062578237270886195500855683974358818869384164673853617510652363960230133194652472506333556822871708135185388252682098064736074600029216116413153509084348749670413456442982880080823443377547818411139401997045829697031908313618313693149820373967116672995083795428815736651894121693750388229904618170317163841986684025832704084722277412450570901588575334507231812137965941256886080626390272752449619956634027645796616569690889837720373155683967566939939166596930858612497844754119828670527572556430211426765470914702637954455905958092071791519326346249823814904042221108333581621176267264671882321598567784589223941392513817023061768889355763923573077935252581392230745148327545289906879642820209957459515909653835858025718323576301206065452563145546614020676849507103356274271624938171314942059463665859331164978839193518950646626353297466423500796557866155599588802115137217241728423253795248629460710376174753552302972190863305324635874822897685905733287818577140776263775146118764128445459378466036216865691456745012605976050817725212117359047146264056873219644708701896507652298076950672310427842771800664790170925238416352502894050973662349135894507910665651790556940317762999001739065573778731721243776012297008560324578457609150569353070521039590569027235988360736610427478563263351578913798249983466697107162263132333964740040906422126459740571842452335172603674018674255120050269972595313889946243950686321382923407076788192476949503732022383367232823305364175863339742958314782363271624737798965623989931017518692388494298698500880183069755043784083338033506193508848834467037582887288595882433336055428175102519086492180818568856377541411626396857339814257879249107140914359177930219715396847052693912166615442931623623460574409244534514797769902958281147934219751223868204783569143749981098232386995840542072344997451491378499248042208468421035271105735741191099170975439365256640524810517379535063610896203758659754756991371329872421639428604070291989466671306240444773454624356205951664295657957335854765851371323364871560742639442009642006004352957889421661587954018793462512873482914167991086815764893709643184163750205515406237948526688399111292988080353579159139698116171106569123316320188488406007193805938225953296112438805364384112803310127540650358940058913547064329638102922814307415006197711037131607952573258622179787759146217594875297431264333931221859016454071068169588965345269704973170946369630719821945902994872202370705092540067602552962070789029650151717959841110797171692364493232928288008471095055853358302507032418580140809624398189538121452770931857265179261460008526452012487364503507193005269549959963072025054255795831742244249678730009848101286536455156584552911719755911717608440918446841277926973762000991603426192093885763097707864902911908288061967121180086014345948852842337221962869419201935257433802887468910882488472530241541123209957913354449913150656178976868827340301770301889441059506987882949359427627858501068208734747021816516480770582853994951649853043372650827435340671210653836200647955577796142830537692922711703824026028774147069275192123464214306666887207612063452157982548397841674678682659423727242195395029977386196948277086629470359885829378457767184444424708412601927662456650461525274536907536422130772648078158557469841432757053719189676092199446258235112457090271849902451551635764836342879884397807298457909871878332784223658884475987478195158431502999935250304438835504341774239814757956911941949854979538774711074866091615107576258794836064931166602184281806472287297163351453315492674856038239560619044019613320112232223294942863074545561740042270891109457612989048899151998550303120964072858453498611377200037137021382006663680979356461360938037339591631333129935032820491515940570101131238375907956171786651747713319880457362808316530794049212419883067592784607993071369220943044734624095123138376988582055242660397951649051439570898403955082594702568405094633652560103532730978425228293138418604799421163386582883057521266531502255369851559547456012799924292127291176918729662723393029184786282203224070939967826768369503600074970172185764377006134646540260805998415873363902241285716099361206886847756929403533595448292936787948825957648106306885584887381072487705047442678711991364886305514770240148618720638866295428337712692862081010967745440771005601787205991162952476582581920101090748547658375834325053456034530391385335474855613805573588973667912926373713454092539779915629629757180046815238537534624872702535589164735368953836701998912808858554020941596006781272233434461823475012073600939872686488761990194082297621011140855419283278998878134843207252700406418351623471335747816775738570359952704754290548492693014101461512526460682451434950226639878867275244024497871752273958590064121402962579830755069155186890303778217426985417674738157513431655016819577894671907160098908920885650579261913749989959858468603567116290908826831415266782850751510851345473672902055589740962000457214011840404302986564987580950998817370165439815501375714742949878551804065245931192443684115863900055232266075568461114718659853052172056926196489825599080241683837688225433664587071313909891206937838656147437816829641618402010535149647611779555122057387352638937193146329894990391501036479866954622274303807962867498400142287853415776544184680782231043197569889170740831064834918456166698245242152049124662986870104596006859486497039313180825845248560551056220482779215312311485052038938063747291136048360828714035645761465454281312132569711952562223360553328238782470949553107380955046148126060836620065768792766670520863159673952781704727247733563972972335950959149213046837213605180298254176517796641300960002518410583577291381117577459461462794243291059670050000212092267928318964291953719908688364859219295244923292139912227136288716145423771299023589678952923135576050766510528924872767013195925332066841921375059909297653836821972513461119169871552961099313252074489082298056059180487929483093418635380268024028508571077205448222067263091771287751830463025590251445106504678745645702732967584094560798438749749453359813668082412641935767723331403303010505419588824396116923306594908283434374174446963792936592612834544165736782356476750093443003020881858251316290435687507071298045839819673382942989225542748430420021301590143251434424094948318477234015336065761961516391177867082862260985114352199512174154107618245126017813644541262584270023848650025605599418069203988894102408098286673842983165480959523453142087950478907611974826772852663508966400399742647017701475663824061148003611154849330568398201153300292742168151700960974539128443302945890220882784778257021410305383151278651336951033700581433102913752539460605140003907873019728936847280195644122969283353634448883281755322445093381074899389995668550073402174194037342605771053920361821782478584463977298685692265972683977358539725843656798445938926631735012303482590307406622912018893051060676317613769224580473136365560015250881346833734844313422879783250650553583508474522249035344170479121166233734856573181189084830681743324536471715564041218339775893720824435658434970554340358974292836406092223384622729474960508661730955177271313067597445507875801475143258249789507644648369280733940873958105634174819897083410711356891760026299551042561719672924784954565588184216015778406183139781814524643004883656587080720186326312351877762064371079351440482334124568018735846361909411698297476114910368080936750934346139206127857294439686006196097355878241403202085992885957098027094756042396805184468963820096347999735593966056080241491874591642759342036984536169218868879842248351344399293204525003143917639596628831120437412250165993427923598277605151958918645954500215342683663983412630844233519577946631863368877668979479213056961625595803892326169127384222500499540543529776670460256568628132957766338264856665305794928022644329596524921080477602850767129685917493747605845055037405357976709658443279637737045348216096452365617209279868413246542906039245084666704743251592944064579093355053165472417497913747317097391238671519563734192605647629655842152088934315274097652673118074893568831580481632313022761340090400640801477715009818100721672029261555798481622843637618413264129549620421402642612988953593065151836988512087862515552665653304792714448919146136147467173173805078397362150008933317488916499299544203848336532628268616136718888204589474815141071104241762979379449623217683622727127548801779845841472269277197676131929803422382152537256983897228894156060010753794096892754845140848471083550579335321914903552125361359479666947400572175404091887728222447453492511600410188582652142952679743459643870270813557433421928336616681297648867417407835871988249223029096446896890957709179721353161737421757240932227913856436921501630908613477122619389814986677712905706907151342478855636395814238170344932443245030848809952758423108090835434997182627118124756955962836321182772113810814022550596218098575678893581764179785445237734091721807362726855523551433857908323355201178761054206326618147649423347064679406793653766679443538402182721500017340917774485405088372960661562887576188063048581248416069267274058074187339050432783789560108230230571591104108667832209857330619019567648601821519101871007547107074715938845615447853744991507863667578220072268685698133087025266135939907733770122757927364926388523635871093411914789348783496799538786990431309054013159580044479902193712663257484680574060068591241137642859714590966913821242203226445517441142532491098483464362434593186003129962392447143532556898391846242357336586423572908702094893990597197968237579044430333149615845126679506841391358220405610309464197964591981437549597569727019171998252964771414655817556763889399961017882610296350447599496031655123538436683451330804910939838019548347427900584279052683063112944231896181019317364089079073847564665405232398650987749700512510110221717461674627746745808810476587318174977050193501879457725528486700683532166445102342777275899072988529661329298204556235894188269137420060614036281515246037015284136337417490796173338294416329858410890360648751300714079447075711261676353545659461220824112957911546050678952388517931673729504737549207481356723528793013849410700692410361869325534144453262416165487978072113779820772386525782787794141259055371425287975767907545808257668975706102944029831493043802896020398473264563914782475659767697128705874619260017662864408617064817158862510438144975126106516256447248683869692758279461835571149273727126513147052827143512060464070763655277371439648185252847267249287162519299637303798849917937773868236882962382637052496531299862881018253235517094983485377853625705402618036225951326568770470254726706074673434261715062494176422735455333886813502807751777918693658036069721671112987074087780023647737188591269901435743823995388993689887102151659754173358615501187336672248088376675012182736896041893980128349207278602975556482587686771219853670422594224801202613285333687705413079261460803022732352106135754028449451983085169571555615636269531102512940558666937673655896191890773506834173736795413662750053523593008246457236034651965763883253733539073619873666954735940939642105199887734471911359757292715481339385257111288681614044681992365652953635928696378780204702954245506092856159924700315433547294350222727614916403845997752530455540163460416615491860619670826588309885989968613152211866202152691008492482739637919763398234136226274739706508935870741522630365532942768229214888287829833192251256643784250440999002521317048768967733150693039541253536588310234750230762435357620452210900100098835811378242758462628620472862226309541777713928555932814141569981330891201749939890491935410178069612307817312671002065281180266497344457859185415088743739129015558469411865920343186437031212182148380919700317764838383022042991638679408552707560309467011407063265664861503604729212856961259275386776884344678614443831031862532713047907559894731489969227305487457212953106596948562426718282810247927199557868049343019518586883025470147032444373265801658388159561936976262573844693616051830090658868969751169230497839055928160117738018353694866423710448752367950061974775266301937703891970985513059964087127942461870303602133367306038749665632911161319857666475204764714778402255779123075305105744754209194970006390972730952940771621487285765472906823377492144338629648208378837362765849859475716522078724514155261523375777015796792845173717395825466104835587767047289617305440139089541725542738856014871693369203595434063094360530696964856674542860312505224908337997291370178867233945363849057626677339069842669772983792633822335015610332887420367383219614930001693096370836433031352211534011970071371986003094377036701715319486546902021674605929700825171656233434240338582439910834148967691796747443020861579732797664105258094406614090186628059599293839591062005476970940186845313144425251173160860382261651180129460768191420691012103581243490751367481205708830415018364668934865758221492939293325143824824222301928532838503825286788555730304668309400479814753589159415721110257653892813581611132365576838895103955001121174346417679175163112556379117594630065551921388800349899537605488694476131688640443534242721635387920172895517707597245725580646476761465241559469269063614660565352313644849207150293377045800619262634052056764851425149310329114290289762368304438081855709550686005602077564614802374960437465194322134053258489319684273945538252916378030221127411993393371079706113065776824812432013755035685949649510769830811646156898383073973022077153469262002058760783004506746307221464619319253896666435033523298431872635500099669752153961486060851992035902242565434487261032406818403966260438072753784243682702171698542253277725214308220632002131395639388439478099846534255524278199936515869318694813731681491798268986542906585538855579682090067457094310332997286972814069157818201781305026583891842966078427462153228897532523513969737157085022628052109636358539470337338770889353026741965865608945997342919336446195817255122753066669406191226150410050293344153369773060989303579841626822126469814962244337002964033450558639194251785848227864278351674776118174154361542659566773727820384375429981390745418545172093797388133444267632532588937943916497309754396982065180607728512359535492301154122075603336282683921001909535330374709850188218686591492012489952345616318451404563010090820671206629171422115572064941770791154727272330516188529513919666318736209060091245273521452720832643451722169323906366007867809056694852534336685342840649546703738025943199423865594095502772649600034888404327458692160815415369106672029436764849112822694515147695774002153993878956235955655662628862786549357136187426663701029907866320149891419910884297828314147831993412029129471089832452381268840257993175497827058444038461308747311482485786219113055128088705004683552645146693128574496955928802877538396832917657049267582142943561245654271608981821441412162245815623486248849575955162055262252327620465980586185698594519625878010620100207879939392196607004783400602578207090460123258488399400260823037209774773790995533208796869346571602347326869782589861841911986598040510541191270412906059316323862937994985396208130796459312754473689921121341284768870676869426708491338960209371637655547844880858671853293583167785023321838560865314974674025477754789542637053412660405268487620201658030531235861177103218783660481385488712307344399757435284443408240487826199454475290656457317737175331031206381958991048855753799325773246436784057333285784834044634274472964342283587157775661750132032506714936551942702058987615142447130904057920932332718903489102053838453857820092023873930596565355379191516368255120447063639867947712518002033241458959245508799760323115811598304268442586350944700943061730108646734805721517081523602453935122736962230624873826357298696722810276427161976466663802456316451633803561967071734704382553761644983324632474217364973375544782729439437314679184604866629465268111138634627543172537150897998110100335934692859554973265925631427880943911414154727826169233475097902782751933259388857591859772769297128731162752986080393335623557905311590514519369317371536671524225186818146010668852821609313032930764299986478719137986437856031330220898863456233906656092517923029787113013139331843928285701574799290890015797486156187536062021873240418934159753997217635096406182263527222453941084286737942125345529572627020072316473780744180095492682369228108666326640426006161140992349050107674633511592331829107122197487378397632282814439828644971797726912947964300959020811303797197082467025901303732628928431934598066200211080891683041944044282255981830361968578796447019740139669325262231562081368870004146224658968368876963946512892898478233100459319526075655525437822515394753480363361028237927479267255247661618848875749913585550047032963500317792189785589465711439249926025708820796957021007818539846846452993891864335150671377164308469777164061623900725917254800647430183082710122225840524359878122816847270666583816488122242115816760691156515607472417943751277712993233012576107932144538666123580440433642087664718778786800913472690009587177373756102260088624510823866885432123895307381669588022057131478128157962891026475756192370187790339879792764967452475019822311612213558250799413146174062664631098007553401445317904677666752821393984000965456591818806437977565792930431877330374516286466657038600210632197088544849261519537641222344947660700229499718814758346423916085775487136313299665579600650096756339586333008593335300294452547569050624456910698396961653063206306081113968835580723667872034604222902147206665343150600838744731367562807111928487527027960444210012681237144576490460840227490015611276241566483068312744313316478307796749273207965664037904938571975462334164190540367444579646123989678622249579032785620505231505084557014349401771114844409036841408999030002961011958529183731843977415463508006612274828070283999674338067839162410043744531149410239400927371639844479988981380018053505809066709366579923026135614293724218615210665788481662165171641778833793747978848693288978763486983385299896049539790822491969646734204612095854473684841073987659937982790236251556253431665234942563649220903424851134675178173102792147200147790512675242328747894204045917415361529500192766856601927130757881673719974598893697468514838689769628239018558894161593577236686629698201265643699554176475883044505901394604264371441088381559168993760714565919873084637318230752541742462356172868640258865362693382148645316291776267237259571376224688268821269739580242391979679167423839101134853115908496136647004688341398228621349279447432970597331649764337444495739199351347897646772327557041456791505255209552965865427949120276541300304129701263085381715408909385331130656182992972378369204984411629053749072895684586059251988110841402032152276870514434003718142034783695770741028039234974768872490199033046927692508293211504512647520154569124617342382259811031615658808470381686731386848704753572159042137211284843019787272423511525339745194429486294688277555483747244420212359972972127288298020060907996054830135430262778221204997300260376914500707549680162324290278840173658151707553625639566892527802144452345999867461226467524277038034486994030320350659877406254360759599364897332572940279132719241325987902093755148950486570882343793230260641908377548377818033486247256558067106923579218554252439576878702459049435172724649477232316631072646770244428527588882689201649681286419449475899608811087641429411973327543830190945380589830674963542844386694588669227935704532231828603710721419443701601384552962568476379034313102320198581311139640136245383437172307725117189901388668765590829095425123225224974366730726972151250377634391848355386394963494092012430437871716714139206574354156476608818148764889233615460651358447015784821546216713479976239928911793340018279813265005283281902466437508777634665599984004855495620562381320238447720741700005972408259498072985495876481261401865538262749496909361729859222659054405453168021452083339714851105705758141770916529112001624855056448729472977242536433283611509713961992664185440804334471856327904422718887868617928450022156567701596844870120254039991137164770205385569453521259378236704056478650847696244687660754654654853505662961475589191579229103398237614531338842773348475858503967040617413840798622580319638387839412159781002611399179347755986778673094771508553693240089979914684643125402975443084114187104426241451005394255235344045605553841872323474617829172648996809744602377237488854803201623929876323296879177228084030552801221805915355485523671490227082071593807420002469866603320169158428923867237306831766327964842296944245258428062913200684236688854142195534572536366402009776317996119488119914297558074550548272140927825852880196185108741419882325827052778652451022551111224820962896424465206869375915447335511583915742635058403186737515560735347251806236585739951661689103116220751302747327486225569653569422509333376708898635818951610875538098880495157210285451014840570358473158780381214509637762494527120039004748529029263741545688724159251589066708967303548581867439880409290180987721117401325539400478047960329987187778501261662172517160282887412831838720390602410236365181249824008389717720169618095084589148793767100301406156637021875460694679386569121526277605055221758802271397866758610831358737301108922809301390095707807917440680530059584619992341634945411141884623025924273352299964045485282872924638194566491064453068925487646840793255953999267182510928003879693377385058400621681031038563217604337503286216393712942520700434833440195963796961873701757949797988232510721551645077616083474527840095488419370801494323802458036789418138901349215138358462503725136717334914541989466691148862017648098725682396546356393514296697433304017352624717749213639655604708320999122389488314040610641002065875300107601638797411224059046460717759399226030188894540527249996057456221488139742713219222779052423299171709296832708300735920185705505718902354262211724076848148837005728310890241108971516265039462385313053155137591779014733114758651092444544095317457849584428442843712384293516566806204985551915356928504054057724763500532945028750980433704743568637172026898137357949821562138690561423654486388109314217668991845220115657316465679524912702344498188250325149427372556068708257680391382134145938243029152455070744255115203769572797450749522721259957693347975237723146706570763872997732798993672858571149136699857235318817880682098423943953217633985920462108385031309211350522770937823004687560706506475090439147496643788487690451691604112477693386179165630399892045230410387942615573048919000980427109270888695128588418540930312474221996328507882058549751980377107068715951714398987989460663133553117353772810585115031549932934996303629807742529685970802019069571257161034711268744631672235174418817961133830387019669978535396521738216493895997042420953720756664824092942590941720057670238822361350685107056616293191267651803444315851928445816676396795882838655505189141134287924221099726886498326957153087607081350338030695272883592980484558077669756950151716081500043679352758844721416357561490381369115278304095994496882659487949928686533630794739803407981568632241575275309465238215324584905909327263842115736432299967432193584906637039333208191835038654266853354485217714595890065324413002374372010010191474544780030465660590298527793795872864848104637957522884714487492003053436166567061586106006139404947889926350722505585074352140811541029623325660650913024684294707983066346449551971180550392056022101140035177891797106764153098143691057578163878979372224972301171956776375799614593597455826587061795246907579807080850053214613883031921684665353091100514419777406790918695309099367647110911874958999931358933430201172477595774394217540190300041597043246935213752094469322556601779286676070010324996374490254604584329516179135995778523711452003326363733814519081522317276289244857182160598056530021182819842282875533938898662120354494524247517279323200147287796353549520348482497996533178077095760557761416948368903508027050446398778414339253822395436493636460565970885697716037881697439916267212334398099298572633913599985275725552480554194151480598184254990626563362109714433149851437802064769119261618589954727320297694348729788319991385992792636435962035342796639380662802265653133027283006734184795465483908387977347062329588921555525951429692735301975785138040456993257047908651708272805233897714454180883564290853833593495511672017644360778323032318295561138647861542512196388099708382769868017356869619236843909051111069769004859252466485274583812800664865111467036788521673864547932024336012905858957922653382822408067862972320040949320338411061330057417863567814449729194280867488017885061697832574749277727397568222547239047340596352141798646239304098084123795022234153381378458368914296255760582410085726383110592407219965117933770986225478915227802245711376973165750279793119777710779367378235583079765899292882424701487182268073185847694983757010019185020700939803101807783209477720946755030966574730619835570727576876897129612041139606483482309754209299737863607906351680782616742813684035661072583339396739610250346755092363015351151751526476179501687863851357616031322847069947378255696427986266743651237590035475213209430485653198705244835442871972143929695796423830851554969118454012725534370846663042214267428872183259731784444102835098619581788733916356271772898324573631877016353550307422515946390261734066279069832371328978210269183239196511703658811578451205684030655261333335397808087894172992228284034111917378220960582949036784134663980227351179278599823151689205684089141781809094825977770832516339774452612258272449773054111991622166701332158403960154115300184684700626717163232872217603298434976679147085918161722000991114019582732590500022120549141574196296675161858939242263135258987695033137484856082017644937475142406338628361982061824002177100149845472150616650597559937532431372903341619361167104892304017917562190612741901591097913187478649396130119788834307482105965702596403476352199854765001908521303109314782351611513273554182321931047167467427563426133614915850308888093811974547529748349255285178022358806094432797873484754460863366907874682544576659354823388268544246690643748056377118276942476177139403948294335470912806652852250094632758646130388605783852834165838209978589588003198821492204381196208415848772602185429425518267538128936386035234598354393595817636471767931980252892743171037511292712571880234639677399054720578184848654036091690384009726616086230800612598392530900350955258377675943413368995202597806669107271678312148044213708123141581842665046446486941855876819152513999773163112274331496615158993930788564509556710081097218435367282257209039777072030408901691522422982431631164968835027797192723943561435922127835147782474508271844767778056995726850991852808819075168549962726922417059463430245941716873522813550845372035462832522910512898808422879912574132057152818516667873881382918952592040967493255533925757042686030683856184645505469820520072205952343519403645606866916364663071146233690402605077374886244137495587719835267498386055412373214411470823472587173090672330939944969708386708890864658835017508931729659055642326292072818073971101495742227547598815492167505122903497722471146798303025171355854086655073108378247105436129995841207275313683984219548118864432737830871878981185442783417190176339994272914389671266086610885733361492976002045862865841618026123845275191411615311254929816715553060154548876459918056417186985343006548323393350510880752878939111823327449448241012961938084680720695876296163278750926332528403457421218301180469653669852281493448479717419654206867775398736835652613396254207152893955776846739349785751065084280034904181744503074325643964993784383891374768271696554584546232343865942042041878214458346292155959491103020455394680003312536595957995732634758806311640479251881083996373610277629465768143919516090767410510418278451192840202607285996122797617380495662582332984294310575564505315296287024605047917323724166834958333904477254061260584864545059895833364005163588117475540177133204778352997664882696281534789549477120031916623288600219656208354982413232221155172354339445924029828487506876359481877203989439119580159020706105278757417360346351403303687237999034634702756898937647386123746099798299536187013048728006467635474882339365280545087136843039808576992851875662294999324465381745091713459945311360808158111071764938195558994213487615571548996797256289881324699421869592205953761821059201485379162579895687605644277287179068039966606626080941604693241559011439251514035824469402630692870239288136371712510201495678433756575196058776166961134688652805190648278090789709075802611478058686227968174915435717676337874170659079199246653041833735201403837300178519655226861945190714450174756640128135121733857212353577074392031407930549194763718077549870589207233974914305820840486483888408765473793924591135838684234719403798615399881833462392981691777135854432222564428977386804310825351805915943960972655620643849067861082757234355086655101953500538716285181447694232084478971719250210158990419395520598849487285740250291949264269648017727070996787766703847941227982110126659842943749393194038466581346361961771369438347297198068861547709510586093052990002641783956112509300803858006610427449238555021823097265724084985376901994750835485802739771098300708533604423439330216318387124908254577499728812776759849862961065622890958017452816485273041551321798943376489586687494892886322294043835456911726596124021502028197768867894421547932144183627541250028151850234031767404579257657939400397455205791379915798530138322109862245730717292404875747836863318904509280412546500615884835543880299841239124182214027800967358036542583309509603304718782019388961989530489064121618985489068014141806507568581768150241038607275162426451415351221365832182918893454977440557179641267962346396552916099597675540078183412659765477354808219858626161592105285103164206123201112695878572578879650729261547822426570909202813432994454197014636524016500549246748464962670427998213916307331545227425551650232177384444486399938258424613870978188733623677169245932431724879038043613359332000935058686389658477697105748839220540393129077076616886192515622038343627303554443605041872793417788029148761580042734239176905733372004659825216782577782373117004839214134119144641969351988466317496128132725919150838529935980060719855394205367290199365491364176919474547636322912694956262491456280666433958823685765063470758449419475610679412132983674372710142170313634997742750482498269079615127587088434898130916189470906342261073069664300291596947048935914375582555439781106826371413016856742969667841205394059307410252935409529364220269657613721356474973414923045491964119535427036610024274831910598887000705857195810641231413483732838438064180779242323045926410657977232936875594314906806777742762889693536291764965090190619988200062331349808632162404928521432034178011002622700348684497135716124429314502208834033944187303042699177419871573034614418532065144842621035239791392146894833726168293957232950570067473078329627939079089259213345980085492022307753179123922386984633029507225410305768879479153013625601400545275469887451759496795604065309996343613179208089315364168494413094872963040954536399507060151217062998361678636279789346959534779661381503428607269374406424426344480030150747566205684902910793207511457978383453630158658888729352076944415132145622726766999108817019163254474450414523326859918478400461883651625828642108834232008604240089306444484727599625679647417787023267875293163754324016845496815794248965455465249425238634533864571781874470844251316480707254995367218322515630058985346216915719058426506104185060828685342992184211765586900012296948731083328672240829115049776228474797127434378472169067549005417156459353820829732131120988086408952280535407870037762807908846850604294890583037784938255652000792799918801796016141722995357989643503634200055432335271806731172218658711922934302284316239417896586754320068017974607487893879408101015853307616003080386021841779318135369548386194349366714505159079170606898785902386058364742110947896700634294357780780720403455079784042478538380661158353314346549932124553783237918097528893311610583597624421873333653891116800618281141756564396729476377699941404657607541919035218722812057046114564859095130399475545007249970059575782846340963514515785923664922919487561478661452182837740383854287732575613243527580737037708100132247099251418092368939960718364726050492235406161879051706451054706998747822541738064562965889742770018939340944087750544844878782711699176787167950143835002416914193177577199278765802696662926560716942471311084863370634537389949060861088784249786211733696580377947691128218428554900630057713683791423506907036117812507317206273755084384043407274155037838557758138925787624595096654345841024667984511348547434295561615758452492739213731153522261783080632489138918527123299195980219240077945952945790529091602789012471306395006617487962527430178874057382272396911611802991346867852371352201537921531827182297605593373289762115856604880967022231482880070548067989601181290827082029022098087613214942398487626858794055471152136423628769721598303774889621035037593787965373059981830543889332775452418906507757721617766524189327847325722244686694642094874768485382554103738450174054408927679029608734374572505824457142274045558515200972653523860193809667886742704106214851006931626323336979045950598752374172293550371505548375585255814056404009420295157896590057549291127820093445233794502803750341944024712734117325796674292914305833188536713954395467813773918784614354472198648919053714412849057531205129203337803861145661105772860637501054893166502193459473537205864768305526600755856407345799514581435681117421948309515248290956333912694963027136889332969846779257696187026499972749891407700321701819775535282468844444202733745757501227398337905196250631352652022703394552692541151915284527715691882013242903536586118768263738943309027478822176745814489386616111787362478259755981090208148797228340212653370842634029490610434674598858346403348666306199191988553798895983638983385879940579420914341299292721913691270949517939053964362748266808937855039940742010608123494372098652130529342654324453189562566688173672464504287820774534731105792872341633174642365547833263874331442103132153922570560501350414240144979190715405841375516831646196922292361585551235088055651173567143486404969369803354605799080945305325688059406644620300100027327467646559933464949781920634407673694822658218433804090119213667368565746266958683462148839182320725154767981007729862763883400942955557216739971178206313258297225316160419343707220423540808986530207557086735059712460987034737213275586229081132444581484294026015706086451885919141073794778263803601967264993869357891077446403295812965449560557277233805288778665299120791315795620987488248545922120612005879086967346861766518270156086866869626799328891504324987452132661401655237372319444441915047618412325095901008754595329475736022804279352992174539257108102458849567634791879113047062829004489668679531532991372555218202994648344203952049555469100555276339909285660899576348863838930332306389246211668981662458052905782742573149952523810439778082602472152638829425522494569402917043471549385695814734967774770014589160901535465464146608211878011090803662354256598255847295439461977839579709124229957813051719937029274431133306707632962880222838696678638423265628662581474141374648736736045193893106474721154505057351903111145816028100206535181255861262882516084952850280848673865308278077928193898217519165535855693025889474603358521540884914538844550639849112425035117022924872166170428144731982069656034392282024746386289527444393993108036168449866210030965453895428731582955856432634275856476772228806260217445219984201272356927931275309043909647518673725337135140903525412029944894644849077959177734303735249141814863365566282728534986824889934694265069674061989798235672745003745828445526812545769810860412192737739966831814047990780176538718748282802618141089909337558288526933919990946899678691829620764986330212175669476045871308608863001923098296538531468206132604086725743774924080412044750294722181794125553610603025262903377464520465904351189636081605470876030543466963037751142053501237113930545167318063042120954382853758130490974712484302523516908240970772186561868335133825735562068907457611678458307529879713523453078299514099539342643895736257429674857078979149365948730013016936124571421973321757815438456921771024467740457011147998860554294175294776095812287918676767648399461554101164803079420132506643790317511404539732751243893245740169660485265724054336511271782684987689595723293841873668208467204204092929939721052909476513081677553395749142867860267689999177331258206817581394378172725929564309986834455013201557548763020033282535290271074118090356608241206282791454731803660262020613787227663469702692687161062048856167310846175301906678044787196037745880498360522907081614193629216016833981449237056641875803335252643624477189767715149657562371417424809481816486568974429899392849971826838510873046192612970887784794292268837735832714577900923946691027076662459008634320216791922186608229660044296449655349920655845686092792853216409117982072837720673404246586750706547934793140117308919598617890864328598566954391650983996150952586166316183196403521914353386055560525685593652633649605150613135439655646005613757016940035810642402285705427463926722711683680950684458706117755339845047931320473357334312406607083306874301004522344022067784602312608665736346633041076947193359975565059914014574398832666559505871832510594413159099554053386118226697838716345340150259118202243009483397297189020270080586783582975959967104608407646711736130883606795817746417600691977701668709222005264678022998229118906743735271687727771016726177501793662001785976103145610973227595546878903056601678809409304063331282588980761250884428756153048656687922262909403920676182431701984413731673994640857495014310743533010166327818750210458940793581477632576711600982208569675463720863567913312428263258030548842275735451128973965302198502325848896592752287655707229309191904295351722131078826724578160043505499776078576622192191015175409407161512484480071378763690323931357380679741169617622456423618735158968643029318959378056971709440466951069467520971680445849885052511693168101444234499563054091376815998203960444163825207636795386389985158307689437307440353746504039374806119949926484558196820687178297149402373349011968254058840061316352451795433559539129483801209811851871512330860771903197783822875273682173143135548788625182875715584986541683470059581403033848677429873658019957297645482920818354994834107684753144471558970843076338561763514141691027378150358928672934055055009610768325352427657463352853689536888605400416183238998377962463845491770310066939442711128494116710747010480927508632600407051670783074267097972160146282651148391981948194777281407607982409529974680370256125979609543968439583296572156766764838361649638273920764915289906822102126054007118821064217269200193371043012154738549497851323252280091897532651979886593245829905222197355642610037662561818993103551290407245903330280581220568716757742043129908751792368309578797335508686102813796771241470238145776357804527772905156080788754214301996429594740024689861040323681322285872527932438151672054586520188899490254554786719686799548795575388024175949865573130722544304939044222844313112873175571603033057499361328547962240820644991687987047909660005619290449465633551680558187804462987963075806093489580978232183580836791891579616488703477356074681926035179907994130722832978713220702913209063277857933386065892478166040285652593401699022572802855989493641101344556001992432587312546645181634594990571634715779163846347234232252611245974715683905093655600590469986537570423902164014598173100657259089150538004440457086325498522763665251547286970185893792378183386085816035819404003521638953495788735415163651691212764741555967603109553326903070306962509154138963833993250674672691220961049694601952769949873028708275807256980890931469543229766349164528297324147122288323684251835611908266591814204191840012659951051153233632315689656808745448326935734443879491356727318279009872478569376543487146812131582254819007100441819630864820434464299639275813972935575734855531928246719186472421041246992789050312532066121992692946234144019125007617409523077354256017530187979206103944302011305848355290846859746491949980477943639709397441884262270310618752972057316345447889106889795314147112753209743586390215928264794612499965949950886943856954138476556395821893893573644301898640463094550203728102889552585541582501563483183335610082534177901729930628006771036500660616017690398629565171263698936913269026874216437993099864554489983893933239410877221985295188648349375342944657876262290557817698051821609900076839923031772448761912128699758759089300837457771179036468133794377146702556241850209380876160786917767086810283868252166026885098996591407305265272402702305819634677762166790334371776820654852890681921665750069765669108043078900809372855244617298970982056565449920694064741219505899444681987903526674980372467076357991897463773769734337487579393547312572791766225219672454637500726722684955382325099356718281549421701796415824863784827170527852994345310335648787764083366285539256425078180074878044261917211278306223185822338692144135214685026624884668535661114697018941081554674765988675563972457768316068453228241276166148913817582685751724025694270982672069326916403551380544486428488372412192988285328564575368919322647051217382889232332923098195122435986015334687827757677274677167415146031684974484684636031027934300796867762840007798189130036139798983203522794223602943641743901166484575649066928394663465201464276997459036002925958594626462306088436582377416395845312696504368026430774397676722716551951662009398554353743854948825506077553125973546751321614548466786175931504120869525124863376532142831985592897738581448490813473610530797513563822882683466124192678424327174774114169412583434953278750754070245334779988728777843501903610332085852187651599189052847546573125600221147027836929278362917208956745224809811234274875009095795718325011932392786651292497376280448933410621189947979109354566271800509498008680464294384740982934715597002103460913281907386008245434728951031166565287399085327898752954315301483096333370340880394717783918408815634383212524747257097410777982381124952901268445801317067070845050890401144264244079514456837078812729714075266823782246550557213810055047659688739546657437237938381766700708046572738569504524030338490357239752439780383081435611845733060828638205038123620027779983265568793136246773858917849406160815352644021109017714474219182869398702092661752428716475287966069406135135789980341215568276389267168880138458172675628463232255085895191144373035260372614703357452510409569174584079716858699912861784396389318788129880318941339949651622834424214289561076078418411950762016081179879428735980037216694096926820458257448398669229847831713623749052116003902135034247074111483962893358759798499551733618078526636334258331991067089746341129627390028416269865082189679222643346197123496776881900572775529502750248296417636489857060356782310616468450446198999824808258003152171391395937336024811109920167676661259981800778045732637792219617616468233604279984470295703689360790952877608188924968122249844157691919582253764141676538858718125846902109007392315142835125334040131823866765528561048642401821245009704099228704050449878004120414195797223016826218288886830221408565383318674477394046308119081422215663590991334446958675094933107678028104717800742557555268702615794057507243637710605466378136928349221634826838580643937404862359771110003862163312646157516625731931933524513702216023625412985620207049035166889490902661437421449799503606408549111212772611805066760208023662603337142126716024957542134196616372282758784351635172849945203915061526478514024266296027197968528342737166578220258139920239849252963875225822831202215176675360171930758799712108284292241685777039086778969578901464435335004188999914401682678662780798740308376606988037513527051187484427361054948906164698634575967142577703557034241803472091876311670661298909111344879903162774970233202936720477397777538431717532325690638475259540938205752730299011576776289386134080353372103164438699215977146295632109509910003302374553025347490911204012952872290637112098112112504812938280375516758502000786458951353021246255586945258072916522784692232932629302738798109137758970988144272261109583893011891027999352680316903938264071400912121037706137118939688157792154853556007952228070675841828987401977447276837852003541319709248755441988352234665841580135030930491479098692755416418051733775516457831324961194089071973601528462937877319918770115045488686912627542031723801346891304066853034593954793829241890749284027263482993518315525395648212444623820384180017661406558212289948536474811983321073934449065527987891681699646955600266341880967988054052085516807235748778662335066877832941039417014986041740183462631932074500688752335749304152901391631376924129338174529398946914298096855746140882036925655890510247054337939768479927163587267580413913466346262080304334380297309857835977700902485065458215461635580047481108245575160983574892670624680902553677709389750954912177859748850246892274745446949380470664336155537047600012840938009528667068308024746687664902589886165674365119596255844343981354350164172063304184433925135424741290131199907023942013774265918574006476132399012313254031285257602829859309222493138097929040403153595797923361095310841199235290063397498005347247020688192519897103154806505949227145869130062927801582709193340904304390889357091738779016969371435238869787718341274058730682520665826148372189414771232425657244513463639050112925881431371415015308160192273264627806464339809242614128461895915716300682074945728141250406239764552187275100887085377959358778185395920085427810658035083052530511486876988310758397400674236825961593263709192084061658193476117897328357611041104970967973218545051547265173250727259587784244557242559424786299050116284553071695533755845399391327288385190032966270991127458253714544842917377054711522987024011390290927853865053601165516685726161013730790160639784202691578469846838748328189161905965347580707240787205337022727453180437355637713926735329645267003964667110946117656450405755157635367142113191161830037410487127068568952259286298419958432499904362461236797918156048486314015638346093944350152941885387085459560864490365594399696498388005080140556028779142884173164367988252288156851428233709422020042230380556220939905310613120851298623094614400835815489377450691409258297064272798167410603549299474143237031275530606146142580137680845367430803272855186392018136020758082515520552745464877953491615545770691626886737716788610817595044915642306486436585099972742475286608609923322636904532167082653946837043765955870147363157762675740564698211812942413154594712558293931440554276571296787059756750901006000396271058489491318801455887122593228279604595525426838643494714827113199335542123917279864532762454713428626663945515828607139633071018122840121752339057846239075677856111967937915901269111407157125338520461032715604646687220500047753777521451269957952417469064133056809169962150808442276934941381151793793531988352033300126282339934949038483683649945670938226873222390429115665086016570995833300620401308256906281678813962302240625240795528119980213368863077288472627037348869344528429237538473765474903376548058238635342295340208614718021356174187780196562888620181091959984400470729341434889837832903302227446732957365134351421191054931682580012544833303649438692378762259753250634709098857597032597225709072140685711855820502950067899056854953356494204355707741047739230911313823646798602074521047151273227259892153380224467649759731710143259479058125013118364337815277589789086004597326796597339169573495910250358308373243948470184166308732686310231538749234645791697044329288864974890739564294081491725719218930254330472582012643980050628160137250069784278896027911168126199834698757374270589688913229922104325738136552673706126834235666872793096955759468823074750916407442568162385903341378017718019648098458963914652828160444510907584677265090004705376420874425760343255022100273696538427505393508780268449450455404676283550757009604287765845975647553870235719163540083672460472999380519311111000758330570947425093218101395620890515402185113816635423934849629585652288920396674563726321912061589292142304761400474200760912077995940196697028874929302369152144747322704618336486604859409068085076396434243231359010078686271302672748935897422638652193289262778594702389780054693645425775787559897002252182970347896436526286782610128655175349215736369008938473122625092373242770387750610999508367641598392152466706332463409586411575976552356297658857036788080523087491711363938895419114610273906318329510237498219502989389127572416321808997442075029061405134216163216299621366540392957620431293536425394725611161136610599651880172042199512559600799497245932811790373169914661341717083917242237610168246809301694978938336762870225350579386202926122184214201509497523469750626915663746154734693634590443494798810102097753985445612727965910764621412858894137240226308048390297825757026051508943468229715925745801577330503801557991053426594279230024667351989377639126201990473273784378859516501713722442607798819267007828082535327905626558011051939881845340732322329568228796110946863133394446691184576844769910353935342673133417205433492168918618752244717634437012797392843223549410458196012902254465659577819901037599375585364524683530119526225977579323869122979108701960144124374728600353909267920264310575645888231550600154361228046361606733877932925783226584547450125443401068715574754802493460200375750370140222980823860507812200343151080200894212574590179996800027513672202637247885976688028674786191272311110735275294906015037011869554675649086824026132564264161094992887535668698550586828300698079802728127597806145087882455258423407517323989237582537488562914157213456388353775338997637605569890911089924409312610953303780016393971509320171790527358798379377817791718623783286026190630189967444250283821665588711038720335370702929711400575641217256017158447339466736347206164879780187352386863221540590902876579248323326198967804817356176791696930830635466887591463503912516405386418033535974211376580962057666461569995281639460605636211164948664039394312369736413361278000108057134595388384114386213855633135919349974251669525507138681669251304940476026198753650913388749003587247226050371878356539455772186820518145465774254345017531115264951501655989146609237274302008191019178035642467300273766709855146133466267653989974430988997013477203277959136903790569925023734892530092418436342520168598147567229699280526280178347055800440830856191352725920014223648368100928524005931955503241574117307594693852279732403602875721961429243092640657391996942411066458230144153764108866488793003280504715371117564428643213408591990311651464986178490695618588891707090168448131235885494304194476752817684826533439008972798163035143222544762539678206016987892490706073511985441257751261458705417614006238153699911106693425538387659253224615136633458321411578245006038705030125204964944508012562786276642247253346972354710221429401326378324840421746989168466343063753002429445365466027492166353808443064680709649911813497905446053473056474178408474816862938835456586408808065046159697426118978591810687227897824414750311204322117311217585933685405190150970908555129084941872969110099540784276546102086928665726522177212670967914393381463966773567657064346758506442968707766657823911304312605093143867165046629967781412076892464152850228795885377663702752368699110847228482885397029756894410525952409076438033687234818337663775946474191764804164689335773247721407401074460513933497409741613411202280154641220616221687551217724311623970352756000400426442968867572505815833989233923370416285916453295767206339021822091704557827226686465856348573947237259787417405007731264239061001616646369378263484545628542247034118852267410403140164549435023223900611345977547818806752913030638045386678671024792609679806916347334277078177448285111972257263831751826465737712417516672658968985939151213213191676510761925610735367349240154138122668564117072308746553017448361420693752089129420882686915918243301457528315840891667482475885251136988368121233329173122757161647602940882916977589574388872173326474415949884847279580027910014740016559192302658727358109343705691488871161943133992774059271484448886486915813423368291719292475297882191196202270703298864990981758604925215654426922471208578881241130573606723042069341307107056404975322633011830212460395921021076629842873261652074535152357397629560402538365533801582345138057609922621575603146441404815003510569191564066360731037908042268510598012361864465605155203975432956705539239067547267886122203286095343425479497678002050506895023157654514755754168165164689031241326769137444479053820291088788886098900539329850588214676227910467401915913051559913455332069867723242339287064184641919933282315814753423522722900448543025314475569868527593812956980276693897262974393853897148902831273862338925205522447684056852344860986386191964476955318350233137675436887454694459412152204565309023357368296454677218221079145168151770325960831295878294642001478451043635489812169223323597091250675788277741010124002454199215286124118347236936938773449074046321947250036758188243379801596761866611509833137089262376105428600350549781406618915779141624453604258135590977993265015772719643809662517137377910616986523219905689670809078921684802568595053691567982262335325800380591467231332544795981450013809580778420967866754489173673781567085350953062556847135300868030177830855169693344879320474215090509441914922256147491135378212658396751282328353581884811943395941037888679797062184917761329737941363534080962640878238400402957769674096245265265981533021141703154783616677906481927025036271062125511926185774292072009815767971048148097720433922383584031628470874290604922824773610198555101812419200087822896949424833612105623081662097735746870917974921385093767139598398083658315695407452605027956065521745611702255696512885693854551147835794737969404829336764152700257544791453931432907045429556073730214541178516031474434007826871577886196441842630966241326747445871618834105495244171291884761074062848046375367806403270064138600152400111058124888884274276298000901978612671825188502420590105947005054113160796603925403944316702335311132057018549876384753904236571259053331666495160964966855950212276393686569152389158704581136156664966735421178123022121690337095578839940992366058605502748073972468675843062586288523150586403832498918857639858671573582167494602787013352286550352247104847593627966141733087633906241512327773441791997979876262241045294127906254694425162644303617561655807468596831804819969912760272771827184220536966404290945376185245192280552202580009786167301910557475570160120273660673822484232224736905585952963863958418117085729582085957539327801462329120269484977783908366451655666432692322701053019604420577920308875789540409940017907880140519254062948131837009890233660485542741807028212612574430766472149473392188762743118329265175710109241569146242583638382933348891434701938714254419083845898638026802952094814844672967766213111320133067344420511157587469613350510554007879011016748191718641497439375789032489025897571255859977855410213640551595022955169492981562419588533138998254141497081795398200726068136335001126436412034574506720508844298199786193559931706680394873972319726236185487270179223565459530572489044023316378369489814667525080672375780942587093785149027650151206686294782153407618142721614253352466840078448302684016590693052114670958507384043727138462518237078459204101235026390694980356557515196104862834657339357309397898953477661309817119703607794001232341662649794607989771724411999240271564975487063819806834226280663547812986679795519155467752468305710380467284144051777404938143407863263282712830268613371722859190301229717715100043363464381193023324098595726118245467860889723361494461931254298305668278113655972315494258578408435459272944138714654631120405493587007343415264928711202062179519869133574932913245395756688809067918031357588598452520928427510780416336793343945697358300880853692268931362233415315199147872980254449340061090767309703538380055515559156233019614255760502400140579450386164641244430127673702170056947562543136565666432697078672948324388999370270092892637392753450883063377170990060295787051988610227220412360356625554606798218047855271774302963381079795244950129734137854223230610486244776234314537213261163043789109522636915680483050398503551399714547117436599095145886181594378587741599676879446266964186100075207380197889248088146557572029100519568494598821458700778694058587386078927551898848614310657686812583896925280879969586477059033097801927989831376140817304631494616679031949077974982751422570105920295149262102956397459315325655326815050970369226383316171064526496460327679008573374829764522687548193121659906722121541584722094081392205496960798069295645818144043678168214023011361737654621815785693372658996267151522541375191823563277243719561431675767579496512165124742466399451389980837883595520236552525870807466649950817028360258011486845012338140111955855886020039426605104802178317995196723641690105050860296052312797723067850150408901713447759532394572752798584633288214906364901911677284692074605207346009212875926125864469911043323197139687940333782851223148906987815959028150961877558598299047800229962712920451299235882503534062700750591225633639368192296254341650715967068024445507107209315573366524957913400236775699736885213362039981398992931789537785208658928043020044651466679131197598669498204552946099306370220547417515536901907989539610506204364074279060245012805912126071423828141764628257780971259696972937526195080586749224702004959269502917609108493532709054597040834907534102285019423606726389122269162794627616519479538369635100189619089119289376159841180098856195443619409764253326166418349495563453343720116584523857840712411595075225290517096969641781478649461548554902180653843732638182213263507656797568923420070985829584536636347505610541962596049285241569653838122367880609299849396224324560029947359400696135277201974728439685587559210688158020571511526671397467729487450054518696056929770685221306898343364137391491239361156926500717412669315584684392504095411928362079644221240175239440814286203595149274702149481622412455243194408209518768407852076199204735000226499721455000326061283902890052215316941128695456263452257383334386392545485298011590496803036358425862072545064508222685582676508362009134224844874401984152642760465654301384480717886075034245209493016057500519335368369429969893818840774676408826661055941520356701370981371358499887244244675004712859307173779913598213921721693399667887615779670350028627284556535997420737134091875237314265274946912908410323236084855519480598728615527973396517198888812117421810741925827502152293888324932658060495100917887063977353414640126384299178229245114628102784069589283967090279147131668703223107765651761686180248547141462939968427298640392434856518988214445363929278937755029177283713156036479205219401028155591091720423400388955639433657505350068768881497818357302948881007830637451698538686433961256268616051836494823225595439148960075232317346015887812627796508015613397760270965609851814374912351419522408437640591435773058820791715293774967135236406137412100944749874294580157201902001600641024254795251594172540595694217817564775867149844422621326608948173280664146158516771302601942506929115395284986950373075756788708781423471900126090625521651023121131715732930789288196629820653061627507231573246571899645769618834308256383023766974771882424679446503392565428455388192014388237022092761102442055827725366571348153613600188659763090992173645690461032388231506306330185971891601128656266566259120125869380311714100659786152308947797955531036788713080653084543369705672146464454452052713776241599161661812799231423816113854387107198096005561488326325710786004612220524503628872378150587522829186610142039422222769742070489031664372404341117272752761873955016129197168819707507039728407607649438880973087894090841993765281069140584996932764243045637000532359096832690053964666543271949265149510201348054218161180958782738771753972618834753524408749875934118605398901758734053049777635578910427758966100756552304703530948437982028786079580630907586854832645276676601696079255171848876791763412472622781193159996240830639649172195089863981895540840982916795110331864292950165225096205247505268759467830812957231977455803424697001949330084186994420653608775768018015679262289824723725687784049350492172193926580026105765050918740785915224631291553659489959211695801278432253149985634394043655228723588207876133120181540605431792028345701795077367123696398166378890605880866447403072152906549100913695546603758358448632652400028343473218422582112918053210681067260309005714307270846526544191367126780706698477122654756778057295286591913381338315761063096430042794711417400932504154845943585095448474321807522375829265795969544834373156768535377021506748358931964876014291326164369179160190474945594030717837668297022499975416587492021988300695045540848936870794897797118933815321472339854254291684169105349052202936639427507394680767723288777047964176870911388565725636455865540206292173911539036421963716119092468681582603731181282200296770041047506058013919477955339457494213246922389979132364575104310715167436583283983326880047084510943891798227986719477076261475359601773333527622854474256030234038684684772263574466074270022883921809921883312992415915766583930793970088946961472638166879824167547285434578970768934103558575537938313150242601483493983403021229256677974400470748526366443575692414022869892140543643721525881757551951502298424224093656887765664883945010102749475484495792900865742934916258707749491047589783677638368315852444149799121081209394991431995784307724008151800301381724699366060527155156913968313299310740506174251638671114802012112621736313535876191881580357047547629608246250378306164500608067300049226335419250734345678169861850686013486919846868324957650932500401050212049188620114020823274814792545284056997063746718380089310210327397572559153247317378183904085225135209956989134611471765719122637366929245824886767081410209933782741528494019972760609172643018894921067237235050545578311173409983526412860126215731238690822425983432085667849698005041562069154409593090090563408016532250496755701678906839757342013984689884521163868877158837830994220659213281835965058689655012352316525574808003275195060862742397921396364613665858624879076286613803292350221321591439586508763964559620424443161069626561250783675056227473474061093637126831561179112805680046910208479210389540650486574897253391449447079302362536456814045915116919967823167633439763271216295574846353084786402584979123653375362189694648719096231961881842233924798176148952166694950504144627816361467400357663390288151423258868332409406334219487408550503305648493293203608450761886848858624969273629829068441334410123825326196584481691240674468095555651101428834946969517882272736003411361395188191097533001588029600243719932446714543928328147830990639940161215164956658661999539517963208948508763486368210833509301931600091475682969459594396952476049115871384034684207222519523461195237978860239234755674791457901813125353043084541424427143173693809065723833701149459411090961827702454600121329137144650516467614365901020392498323113681139801335006612773322184453360591757579610744857716231587471958059875663977736956554496880327402787981338933862424143118575544702693140304845635683971320659027284745902880260472694542236773325028631829886265458130548503212424651336712014675910611329884194031467015273445130099336501524570043354516238345208609059709949777350335731871150439929450498852589453533438981246911936423703344707809830361530436599923062747991416091048184102227985032408796296973581162560999824303221775111346454992782948300629849782104277123292164615191097806444306850490337759470934300107400573890283222509160750193198925140354602259809365133344232741359752058270455957203973169840711007051988533380436756549855625493308167101756380050698584004321270596184988944865177143137909866508996767040749181211116978657391791011752296957773890655053777176833902817128924436538837825512217383826417485798302953962588035140709351772127601141712927485696945725444679409054806757062343147187563939903372917253713093126970156691625590010507689363082402215075352386700364709397780457528300820109719591533431807074141141679904020774275260700233504709672749918400755565463518827454200438590022725467130327604274232110124877624156922418283185353920806654025528060040832564585528326084465203555706080911819568825243569052390925838442832988164547364613589895921687748158590673908049350394926617381352366750372582731730466843478021928263746335260778377835926810493561735915504876822156957362569207582437328737155620819972136932425328794568502509119346453659862674293655132428996494012955519431357331257179682782354426573679638948404091909850460202688851713182889621580230558659566995512590283624394559139664179757775016315106674676953183155489162841245730655983263922296517420901200214934642421737184565221785398132921779852376517006910620518284445480379216640037652698359039545984762244801448894478383045707392310483800495162026327259801332778698018819619089470612005414259363176305225141324624215932182097071253778710185850855865766447596731319018379350706181327399059401685999031144298447992150523301124944481011086537014592198378614883834213891543613225463821813824119137989369295555789230787072043525383130393011154643805927992632439730452864263561619545351761162721698658537872902354936975316729892641085082459634540771097224741759056483180412751161771450704657625929491516790171187967816414311489364534459234444061188216153698644532152878367153991211236700423992375840109488660280718919410850057059628043747349181918545235636741313302138653062300735226456440202316155008095596202881021037568183356985601432533775274457485944121097673386796759152635208383639783948153175015929511068638551269930186158360928246546887255468597236933598697214799675117409432113167234324436551919974888439742026880627048072165211338878491503437005849869738817733293147063203399304872479257013732233112802198244806628662460229770503766339283606631482582881423168989469187630022657218781834858659589891433893076115827406961392334366021319916363410641483169934788798957339785340745715959344359114837667594539827622464108496982808410868067225103970685157688800407290739623327365801189778006004954245177531334506487185001889595514362712124977049686234647555483717776008947271631290589945773323403214659471524780954044971398954670324300715731746118858264777846154231365902830746912605051229709206241285261023879163645441550356320771257655455241249184802374551622511425082977652342986796825490227181938577193594975202575945297526443285366851696679256752903661882606422962496675253133604782006579834410858416869262206306150412619236413112120969241384784571148313321534932950077491924217071908121000237245356086592226096046999329663955406020456847697845285649483595418382074005280486449457584619271751328671470882662218785088154050364818332780052221574698810585860892372354634302307114943173930877136916785239809473124575180510934743217808401911731857816337682723758776655564969125481690712080755679093147897694750961897766178781792226987961654997908374584619033413062612572233579412645285966110227625980498960037162756710520165219191758147496088232449944902288574982794039767933649332611338259157447204680855332199992873818718712107335766024140817385379237558895546310737990888603847333213086232623791380394810468777382459535483531230557820792525373399271609064397314259868499745303822610494606075327274333781321175513869696649369952110313928115662699546213144700242462484082566104799405294909264183068458999746793795281438827633729177207012834248577836091348769420187570871975064151223475167819890257344450216392412602708446776754716800600600403162799394171914758854901548575307594199968664420083764330158478578079207198946749847504518129831393096003163067018812807214733766716089145865149944990633862724644980295072103822220350623927751828085864043634437190725367263666731901012204488412344818313515337168139876997505376654961764066568250448892313404908413251869382846168746084844615394591262968880385367868162461588703245361269082830026289357999667059133996372627464826236344667620403008283036222992072690995332577105642806312119287441947605479085785954981612520386592293949555277913198006457466796885371229421853625066550960594342869617062391536413414789444236435908954536490488849341084808770265638821771459091389037288365990271436612595602551903743107633306672025596182892041669908318345817595422746221244351226078911643442975281732875195646055859734965664224320568141614787504582686941809553351633665543375182437153147872860636927216884153039342635112852824456132135386913161971556070025274444071748313324185964606848274892864980002544579444377418891621931064841042362545811167022767771975845543795365836185236301393474880493092493521229497905716301095173422694427062442957217670053120092393994380412853218444150858690670128999326929451670540372516728583978438647532487352821973700696440668145209406777851208737643580378181158841037139382668731603374034707399004333012136374064066721822743287906741121810698296825852673901020596662155881221055234004103058008885572454668384424835153949131354693235060247558255801278731970607717937869728653687859821984172530205403277456435822534802327373773859500181094773130166254078572117467244295117509226078617539932142567399074137710915960670574913135262936046016894385772655919283592218688803099807937871588813183955835858037282305765568561479659224267189437374184083053970067136655958274590309487883029321972187193119990519703659378600864146425129198078827874038775297842841115588827497776269002446232854240847902044794348277381295690566771423251606171741592129296175489262901875441695385430518427405731645243928200605143721277371315423592817433197760117721976734838518295941965717879816356205387656528839819961367139002843802851357887071561204122245778546204848525886404708506887027477700157235175650829841402542869290425633221951535873169594633235747293120113253156626146406085485536038366539052034658164055591236497281598357245838508983816747332322098268214455045862113938282719404497238582638441210335030607332852240411262941305636152325561767975306578939754114071508155017892628996633059228315637696947499186750111756448389078834150500472906868936029251592718094781461510936115884946359621786992848139285047297188588127478250535524412605953816506057266933275837931678250306310955680504136193286400815136359328125496390831935955295573200547683266439851186454006154636749891514506544766651770341277849857679690102397808878643669586485543774302121067071417728555232804075601831205613562167911910915500362277385479647220008564863439044022218295620002757521129667407456847218565829754242745033554361736400631737156401949233094537309113029010902949184482826743696860591009360826755292946011306666803747660263570736824626975207802620438004796801580273575959040810281419570315802765921088487612441117542830107177131295281552529728479075017543319405299401430834834299655359747673147796059529469929750346132453194822988504614047196750726900511975250513378607000095929502460610642658220869224085521324514647099087803326384531848181410201972415904859060615628880922083583881551396394710227845219286796117835208122725579629946159431516499680675210072027677317134428445720155515805359273143411555835791805760207053813322447145320550889393941756127216538814738143896723052888119818773003359563473780667569306173628770921276220504721326403076991862434193077396285362431249586161007142802640332152715470606983430957562180025008826922040741779192690805863987465428403808609690575828754553358824680165569265022117166831337095054379609086065549286327083315332202814760687635631167633861237039669588321865066503905384681267914259915396165481535226772279181788447282597162096705947193209425388002902492691610746348392210725560394036003197725639141074454751148427008504251181207989371416794431176586229204930824913510213674221147864739330371156679864780507322742502398654685791461646097653297304760189112746703432387989012002380322723639571777821175585950451727768535705960628751597573932750360908600461730858502530655879505629410135310537360257609503357724577812406838909815197297392289639236973363486682867773247556053132666148355031182820541960038490793485707918246656635126764628057714706111317719394380728977091081763029884094101189988592517700322548058646206079831963479308060778541485604723235739959191521291505095953686595723754198349891402359977617803175397699070774278069419639814721942235861433556238387559603598339198300381312078267447695787559039463651788879269270099565600926304929451489686673525041624145248562914041171824438779527683263817977005821980341736997886635946044648564113414646791407855081493887758128282699696698937485115283392824477465086789107328995015867371579289006332673089893636826112377072190054261565288976508537433791301670839749604862541853526354116211145054695147853132653786269243625779044950893218775096475520632417545437708548038509522396629750289802480903158418991165608501970962560252378294355355032843559695804532299006063191759177845948751310572463819251220017088410449044223823332340431307486344410112139261184716785471902259265965195726636204569117950766123973839235037198699515347002454134157536057000992440175256560850999402459952040279990880815487256549917083871950601263968207816210494942648250599228715798509668596038510186469452554379764909073431133672121780855127945482449592667559454048381594344513878520689343711962948628449570623721302993390176977655502118269611118518443540506808331874056324620005193728892951827131579169961861320753642837703762925031256915669908669773508536715180453087864579539352907503505308552889061114853921466258663224386406922688012733296689150292423426159671483647327207449819634055487051577673617447693078768045049128914314374643992985456218258148239730381861262452963356650813821111732880478572055033841939767691394281016741450837154597651513226300074572100491552663666018459927795655235240802137312074343006070521929262574736297251742445975589623705280313846881284524629941869367158241024941515225749133138046143083510656922436148776281971663933430684780093419937355221489204187034791129612034259886982583285877198594314892088468719513972579628216749688985429257890613512551291351082659954287850126333196552732610564333028940590707668697421459837746274595269774569224682395963254859610347972989445520040654545730364805459992656481198022688061548366800878771384961032948030503658598780010052940244995558232498498149488506894148357437417434661103789605276805746810940135825131859005621120488377689467586486194139700014654157010193859003366815150157334498825546336603317120885253357106808643993680075483867629169534949970838513146583719917289198977558534651104933882695334035499036875725329458678545544662207817842027962007612032393635685054297095941551238026904304956213043065634002609595690479323121594177960713115777952857787920805043484492942838231541628627801902045869233727421669921747962865844148058905352260019446667331165387741029478511508223130831855621228391251443255205822771993623598163267744930462361366535669373935938564206741583515550559481631746760662069597049854403498408558865889559307297963377439531444186331324461582817403810075503161466741571204075767908762590943643550284112164108384284256289824895397525500073998900433758295765031361831210816212005466635329564890793953384576696165306826959106209626231096609673673686238233483859031861182084892219319128670677881463351042524171886097751789174167592925899834462561610915690370798475357253992088042255082356267197899338435998658419170246901788504340365786696175352889477037622480119947997855655500623095000326021682400663573754602776855780175170223500544798421707698292080326638073491803313065224563258226313187278294155652055934867905476362271537154745117775555726554574064058657427404511014842621867470792822361877435989546215505489555693371824103077415021390248968659531514740906997049777919301517854604283382769525922095964007181365178235327025972476720212547054431473580713897508866962427169631439500613511778914067242642449849283961323685838286096418865537147767266362519925011390184833247122656181281535349367164965688288651922886112053136309249729237375602696816689547922772969468072008680578604509101210013907963901864471050326064035651015791600030067297671612858529148599148881623066724211717163098325166024213330903720768654998710864908085897252599428385397751675891144020289028071111128697784952229991247481024916824961381205631321199818952576973021771839676570457346956448162079891841952302325335304093992226878836778847816865806020472687250529340420922059432796299919786830422039992981959976983048649872887927612697189365403794244730533090015725953755949840243209081008460805738704103092606015544280412788638719620879395173607346509242993755984617609765569312820467703149254282955223851301195599430371109713350880469403753536250895549119644436782067968403549477776946207122019623665407575148564054166397351952263932331322843347327082436917786361442801150771174294007496169055983010796846774263770030667604682649160931552266015000651630956336790788992444457123798308511881091087330555922997231838810087378444768804460625179264205641340098512800888829913852885613168597936624148926858146820060472880189140700999398131579375194995044736850543575998538612666928735153754333187188874189797116054351698119707410007055527753773952039011524198854614268815968826354784787258846927363189321962711546812578701758720464507128292309372223848289264578015772572589851410443657512565556874304361987640569057491061851231897152268820538073508695769589211636544280086155356610757945315323293018561945838221710613916951028167682257497583933951206775340968953653115747198455048672437453738434559988775494170540363503005456311729834870033684206684435300826481006158232813657361798919148322838424874745243693899636161505218476587206482852657385828525024664753222337650608299763424952908783201308908066021483654533507130316477245445174027236912786062403430107445178230263806888558796947411864295493400804283537964984945548320202823227618799587491912810237993352697240509172634285979057978350275847072359534906017018729072972294942823117111473451098045052315190021398956869207516102398497110174982494138667754105865415768003035437013534414357687654311094506309214801531967896277911241627094366604464552544225475298278927791035197772226191551359373864422084481374190179172982959016475756498611757296297261769272949130885337066451894992665589649593071754489546970221213390499948064889043165035385751139363148486692594747064640012269686540990656029872674309122445092236387010408992379938246794671921693789415353232287192104653515435306694222468256632451681899946700539490280577110065565878498023592270404219121817243570396394988108418929185557247068553944074984791702282525283316222278818843004231197250992531116122541926943252403437074904446277784477031687259420310186885385356973131656163850539342703838181234881070194521514071742948641344736646666192466050251703251876217877275211174545767122541548376584085101054085810185359576413705116530605779153567159445499053497189611776470718993017538527582356049073591185935510979929327352906207396759632482382551869514406524030025080254628883188440101924183347253414294239596294195226011672904355596518972193306868215092957886083619746426583337071626176633233505511426490965052948659300711092402121532990134244163471111914538745350763454665317861353372731730517789220139530331464217035502790505820874808912808933598964201431857383013269470324772923506342671930133376526293407694214940241421207803434033734642666781523637958152143475140254322317192234936613088771547329739037524992469789044291887965845543986176414548846063390742533700679898848662482474292942719671180362129056996464768575714528141216306251833002196802315003774942041922156089619917638328008723585968033517251104780980868159976296176150271573258654181288338627099249560988190921509259110625728783102671199284162303100469599799391976154831271029249810573696637761232170704870817156791015945935911752052768308464992223041912759378709397528894719358053929624323881718079879927914929878134858068307467388510829364957658698052892006580442523589205583713406146161066379096101651300554315774596878041543221390897285413314443207004650775915075054367743797941112266566718228620861997125783212198917749620829584668836584566755748819587917968023840529914393114140069154587822092123960590784393223727275046303008605704948137324185912807108609330006220731961095529496749968420468166679906908171976234250824165369510562715131773066342829301046859942098248102541980989024567864012824735994593692315744939442577569621803009735855556136863888826707897917272979650733541088290997101148774662651841303051097494102602920992874070472439010716000560121789698779909395582924705253784602006720217015977255237213563005792406350504086793767970799296863897807694163493257471929983332659755947424465485422639557390664155251226157031068464277259124290450601216789859865321676429689818851169937671328200117346510708975638500609130686157442453752175035593966639034502067032205459747424119754553874570033819183138350414734423887016025944721435337169374937823174955149980930915428706432878991994795977896277420345709876200160581074023357923951043158624133817525779930718968751266839923074400211459757644990623900663897422124806719045668674991366528477046771332276162402403959000898993707249867003693432786620155645132650106861300023138561056384914223969707404654401588323267686111134647168810196307391754232300894335064584038124616213329588607596323780482531319112206879169282648846668712935015611547446060598373975820364136585052408361906530853668808184669308854272038768918623538896391265181665507016095443260212281754670057645851912333108001925118881847289181742061950146057856423053359043486280154138074971531342431597122762012931047528967727231921635256049414717130340209089694986444708023376520249497638507626770727690523687964456231192324913646177364606983520545376192913105549228076674733232071332485056036054911570627958877201974997666759706556230373159210177728132086085988515513521227994297738907609013066465813629296288354297848786465181485160118756976746144759275175866225937242269638320230186795623217800473690943652512815542549645615116835975784665308873953266108107109953304442026001988873063033535521657901630069345886532556813889751785013983845604113756239754121117083379230394313178690455369668704802705431366456892602959965630418318586561125710679918997916161616602934811186217309543245564935705278494637863944268995632756233974597052691740340177837762342558330264403879939351794327245858794151337321369277277467918365998984908019781273774665896942905660452319368680443776391426145251096856502617812398584629557575970388195234982480895115450359172218569063900888759095217468085201549151520447505473035889317830386473344978935441304026074027740169344447934727946885509970660509898496787505497640247713500772651203755238927277747700900369741515603603424463185730676123034258786477297296988033486800172496877741087236599832435649457707428829180721049225991044233906139421378456555842797054000572666379762602670530583215849162053226685477972637165881241064476131149863666014999834073395934087936788085062388592147701110953632035741094260943919845377434525384320929386266711651748440930915455228169086488960284454569833090837292096219925631511491853923477788032414122312987622718518221051267337355332743435065978444218453912190976631637284385152372312757665114179921341393121511156180158524048532692662163297220242376611536429182846778282783882445983513349278253148398518672995896503285922401761106826574178752120381814699559741929053010027782787423688801260925141231623543758187677040883544746535204721320503682837402228592090111479340564465616670031716387065794389186271782943991058201473259155753885827938158764862418867829475911743602803799315017712923383400035337839393987181249708570875568974626930986276259322177062437725927827423404863103216410367072975230358441174889377531491146608127892144696322497320014416307390953828493550755781227401147774037465807711132713192576813327526025237407851049177246080038588032041795572561438656666981718751838786087761757494422870878965628354331300346472790402921877184090229261574602910332061926678715697055294411846560414810688922274255186161250182420351200899421246532572517703120935875629829894110193834397991870173890977542883824053931189801154395181634912130926306797334026769834345588245060786132221144467008540334732062286127094257972380442889306066930360663564749195966313817119397560766064756470503315324578552172473545407686456035536204564755766243763044764331871513806777687502568837850971059611629252554372833459622790621493314981055799760353710322420394138064812983885887655506018161994108106824873694596085345056229542880592709918193114725155156469727433014409972261308144958261258295229996674109019619549392104721776552863997855936631113662576878682619708655750891011061330030404139624730565774296641294525292641994405556841662127932608230985451343956022570872846281977526844553480893784249885042058043925017232148096787572597916777782693177654545075816979401283029530628300562258298242219958441801341680544570492021337297851112585215964623590770853023625072874991942241909218490475354925804686562240818386992631095259130148826482744625193123856265361629352349988649067278846987202204040776412094223554058887823281598459520689900542144174321420643351086658348893686302234636234738900779073619842521647990122971822994505819551303069941870161476724764999917257367298916352725117546565813478795695372725097548109140719183698131874519958254319257320004287957832343964028696347138472743121488758243185227518239897251159817424889549218784140816423303115377053222809264073728460333014117475981910626952603063189973151600444687343964378747793938820379095169882781980258124751960744914168930611886604566050975299773371119399056571814286529071219589134619112786466272145364021179897770036482996708826452712057436376810304880647104673054739053755697634666742538293558862681678365996786926551977417824659514463591066075639059550638248416041878019928195064339019882904849307944181646340116254168041438140299174334459457639690196642081939625167634566329144481804298244938767505254425205495974783399032568977528489970390279004663590573079464781520143351675246105044861500728009329006477173481223085333911997501677376970559632028717995793268574238881114316951031004643887281185988050397712876891726076266874325587031688713819892383836909154198749565914904567810549273740340293703244610263724688175648286113569803242128284647699892773832896908122770700398952643335105640932327268862167476067036655722758996947846992984987308137895685628951372277769840264312062259187205640678561775533350004914635225919027277456931387731432839070428744938096273304583837058028906324081406547360776506746550221512106248512793272909019635582631239086978208550087313510282099642944159386779720252967488303724740580176839083720557446184577114524985559749851253580733815010679391986019531965559650094108504608041650167722922226799410586501872250477365954097298378680600512680703140496652221358846751122521917490430012116041366288795710674967840182424638869156826333470785231825224274469061529587609163622017139569422848150147491137163250842201343360750976471771639314964834854052989770688967192624218196440927380351865796852158585898587748177386796606762295775994790611552169207951570688866663777872209664957706565601709387077833466734479504468443924990937180348556247966595719177319843554937395501311572180849490452784356372419738249131921442915450256935016806934054385436034081453883263180671896376748706388507541058184340761947724684847730559497718653719681892242371072373538366393601258314992760732448398828433062298146548263739747594576043218372329356311348523112512996102257448905514710270254045864626194371839262846439245140743160176130117697640986209580234554964877932868337692333484384815795133736116789485968380823983985341923453743632156833042660569715962665491854041555015616881545819683079599634939455537749039123973715117149753085691381972906496905734611685932566589197050669029181792842090783199642855529998944086591888835806673088631061234679296401998578668248315969930003216243051514372628296882644534021252166252229494603475672602679550155730135779028105937808700470724953906123268020314209454134381608011053362658852609110672184359538064508358191294202387178871860857068907143011337247738934279418399694344179043467896734265324670724353198973793724250964056729246791524009062364376135646492367268409728278357260040979817672017399368693938513011160223473383769623304138321381426719622195269930171459550474349726731849683954693746486588784297978873876020659171686737744960879412099535980028358810587439245390096032463368081696284599254095324996590362736276788932994549555610152524992263873096886225708072520711060955282800178317589243858258567397721219722295889295310992234093981584372791761664067347481836369461052062256482374579179696001672490711070185746381062496339899890116267315063986078734516592103298287088742356005873745220801422647989877534599910542587045529882876441756593616124738119759912522634050954885227566897308240576217862107477101984139151763165371133835962741967473236110296018971081128158415019610470577693444753296391710547337886016775787986817043891266684314389372007082203743918091936328518974340287826058656382587787192283451222148909308122142608852148457097462609676806149522313553379156930310044422715467719796430070138777018432065048218638169160634435183870861710377713584366613066218823647114900633229524591010885735410608517461928250526284718360234851284890391275381624657437869909137248904396481503335796603457651688158931531394614079220130549426317485803355240417029796970406455916564852171584834567893447570800417982041805539500798766873335110611332723476735204847918693993178170556567414059038385759544382780514999089394534521719356409540162850428455949707147264880166164251590249700100130103033514379316381434200429724513077633280150696160678187147788599119480282249291307573785062193813368560086075921456696032694974393952717771317795506445780914849903638991983703461830953104615848284392489559614931619016571439988381521837948061072011403554042958739980754994019499940159789685034440224624691213289271461524396176371899122268554574712814340602052303048912530593381346994224719121989820504530864658387370438887729504291876105474423960039803639453062853293842272638263060418797930417432145302098266283120094401863426747357016337897980928633677191482809526198307528009810275982320784288767169683957593765391277957026292652744004347201015057356781325391052881290398404493103413706254830689540569059904584320570596500460360478456616525532149321228660738614287042920456423955861879185298828898155535252076784115011521718401579012181790241787806042720797913120954844298374294273982545353609442317744345512155446002925725801492654630176345662998325241240986927969872997520695910199064815032032879334985604362076793860076873055196306247350256616518913749111228143711441797821593291573455911149452516742172270984581153624377258475657510251683765904078565738187229994123606329150632572713262192359929973707357809999209854120527108731244453239674404074372574385013176542916746986703714664890876556719925321654864133147335403078061249319372800629987406364477500200132617201845306634801165917943768058344249840015801669976740806392435689978609973789690994128465530551892924741561012420071256894091961759940089346885871610440411201094198591726496466599407011911511212833228142113921477194143718770467020603109185581522003087933873077261589993108104343703469656422944693861946430022353751788932732560572058257607615973590533480760246942650181485553625688354810842872353567823333445462536664993508300215066240585580564318972398369829036072426471594141583226339436100590439378383931581450240757098138551576448976464784776299162241934155019387979999138935853363790617152034839641846873690652434275505041882845591422149731665831053156839584451265227854043967075756924029424695157787755783159529796515157659571884394162143299867914774640836737973335038979070896683029772488774755718791931156628803066448277274557366489264618220162001101963705827939983012377405296346321063718706631676395927659603462717282727455933188644239140472087547083122183853276154108532983955131020979791887000875204953502782972376943745443096894330310381007234295255324832616631432138423029442860740955532668843316578724511299393713825958269489969356435645127556351248550699807733806396331696664143674953553273251276709361364785106867652185890105945822497504798746789657958410397554178041068005788777396351881976416719953328916122590050216545472798755917654870423897485369519580185129487723974526280350912247033488313793759072920731016709270850655198261832764404776909963414808340262956620227386189994418364267492875351459491579827590621324819711662997128426331570518085288750662563931651635363755878590974891428271660687326019129564721681553336261522231714990352797346573417214184570679338198156983794232071960683564405314453270732518296205301701162638904126743800532218128320442639337152689084048339640626017788759610676877517380465106558240579705342728151487679383370132095855184192040641560304875624043613447454327128378133988430544420687871876059056593017068495998758415214153811652384757477151282054810641133118179565944639311635016623985965520255120334444004931287196515034927152463330204274147021671146386113518274819058428208560838469533039123880127444171424116081837048628037630185119162877420042190411549440795339067176341312724711692959472469527736225553667536728174863881359015763831007020748320976614401604332475522344305746967982638144813575336644039665044425659440802676459192469810029029761826526582714647244723634547399144160194461090955229004202243686347585949993326395483290438541459590992641644678047346918683283253988684151256522667111491839926199527870175229344994837762868162962774377737594432704517284193645596006503490338645422393047325198924069070217957162159826558384457736128275883486435801306505620206934691096560786734375142323864230914170130719452542443507307351762488689214526860760654422379229085111680277939323458965330325473858444386767532609829298565853708436301487653079744892044190581977580144401829463499251925832545541966266449612336735315895959140022098654258420498204483788053168117746588025187961342577030025128432582446604908348745614016787299175725016222503450083337745454688472041904805167363643146659355535270991963472177952703612277694574006027174904908636224321340026934837797243543318083160207064572224238942442651613403624419730253950568786492525245809718740894369102288529882957496808966030776817015828648022160239275447491910634919828811474633213712403603963594036122776666256747019293727500526639075645950933432418112085719531532317183527417509466718095397348411012568480882812525261778935589330880368729852613830579830444747679487673197057815720237490926516646385676779243815081118290125322832911378829031100508525633382361827730485815523715247351412893277914603560852847140342140898255472150112822817038656977082729541931550348726613900143146158419885254407181472597082433816386638799427710925174311525516019908665062545090442724868482939689886421202917156018737236710822673620639170060923530178941623225542554859761301372522935935695354426627360937594794377502595071049219257026489699016038152764946721444543046897175570566759249243956598883674233491271554299605479585521763891756433218247373078701110955277693851204224713925524087758132571055434004341194019700127477770069921001741812142481643654664959579423114421950534161797014757845710639304142359883017486357516006108022613849026506727732011906819846510389205865175166422659733715086883803338097921698899106423065873876496061509472538270691404469112987133836285483988111871640269046168591363181171507286692938786098174421583278253398015693455144525285456624824080516076303612188100321102017699147584893835882261123937791624718613904840943412029932484736049932969345589690887236872434437035861909908093231811831271098591046134271377261735045762774359757708744007418593377216670942990317315225637908939341895296055611537162393688033103491694833829985826560043467372880841326410719879822718215328201440903057724622203403625018930853934362408441757073865384683683917956100850198547180873899142494028189543628289761542104376665452150679253521274691278969383445958851520042391864169122753260924398280433320342615580371817232003524926066482956195188337176084495967184181198393756070076081630571390203976028761728362381833282665011419599021058467198704348170020048613082143961100667423012492401196527904705325661884413809102690401805146102954959564188414066614375134592968544488297687603927816385125630184634820793870296124903645865264955338633440434132409539647934048614767799965963241732970338800180024572921425265149438098337136979999182173449418442224466566188895642007446121656739324946473855940974981600719430350738577380643272297366951183315194690181035395645983761871597638419001689136168035831858751720847270878213241012857782033066303871868608832461789443465105775507829766060771263600317852066551437043807101657347767914014852947290368642691393372610647045938383213955213663153706964429352523780902824152945218815366798220534300860420397969342908172507727335517755470138755629137598699678500065275095606074989459355807293170965893540574922561861789405456123603864382390132544676180219489901736873045429693512557029474483931295984042631008626709998967214152450381323088221679053300506402945802869712545024977709220527719264402028324592402268501078009083730717002755394707484625556544073616498621247107780805846921426491339950874681999631499200441002774099851708250545489258950777546311249031806148108653493058479483551091463772791492367979341009703907079393378391194698675399657500110276623712373361271406839638631872986153489588167706773128554594909743574597085743311693731166898500998066063839123855748325357341478632533603060675374305361272185012813587240790400391930227427602536908884444695174526922426830050947286999435281892595942222390483934643354086547370977913787065332263961359449510834836572989256620439956785163610434937454277152489050261076093183324286276356273717495758424846014807528382227495386141793454069908091940068938398711569901567737321780871671008512868306661219361373006630880611034789514991653584755013570992557595544272811949040848681351723493208578244115210341581455541444485742034790424496168402378651421865625913893407280915965452914837985944047125026188973491593346740322468563782603607605655187545824023676797352515029240016666653533491668245921809675486671723251696405329019235463490841317636682317644432194557447090518361121394636556729599565220952165931659851867041684977057497595077218109304538354037843913189637821919725672112781942713091548582458147369716733965550812724361375187052102969685465396261846702912145316677333201140797881437112205225853861926322423104899823562024756337331531958459409178984740082401547703815586715945466261992193566665073641434386067207601390169051702664212063277355916711480550931499535368526134405501448170852973435641012737857886061055518618161315395623963976298152354063550589184696916298454962417214076747757804179469558360814097916340849961012274526072605532390902361022406800524944011995369231090350525308730937692932654140061477905336818073524293588523480275019512004527424460691397074192396938887708549813714992711939245892451215425377047823117811286170739859690915617715028232027134142546802356707491878696143814584076036470331317477251003051308477997780383818486556375544500485259842602461931825974285423626967787490914554906488347095426056134317600457850123126970125832321823395390676776809803008460044595195538490476386741459997523437622323683339409275402601294797992985052311618081584718749121390115509742396950238577059412202867565463891756510457154246872041546454667450017649166645133743798087734418059943740873540132642079113232050674631327332849740608719707490774087742904283818659405639587397428811976574007229790955694157343741939704194788663047548021021830397821154516074319260464963004707040566321323897195743294896061668025697056680887959863536291002667443487055318843885016284432392696430277135797752345213691342498317072806873610227350044683199967533661580308926149613939005610712104998921499973660903695032377443150666187960451556953824079600289183735988771434717123393113860398427074093747809514322128096741992246585279342545438682581404171959451692162058128279309068288124727747844902395359036700236942323749209577249714299370051350886259293045619358768068696495623707900026534007513602573883185138637006204182548946806332027267332081477644556974619789870595775022840569943172172014689670924958968786902941526095304176081425310821993174717030039149133270510808358246620781443621332828818841380983372840038549878155661607748702294896806818082602617948514641454865376028093812378905293833664021622564167936412033859000388643744775818234008825095890647590543698230856429824157467580167423510326898720325746411722499628696493494828446830415797773376474902338508939278807821952139022020832075225899548978060070115649093145582500550371515133703564201410939745328123816077300609304957617472552849588346392571209160690964034350753541754183875535006379358262846864418215380465816782405736992763607183323509478289332204146593976284764480092485319717382381146315112580469525991357814132934404770305753593323229819335593771548046631380309813936534887557593860013960061449680658302504357605669380217139901081080710702517463579602007696511111352160612257387991770353848043676168448351369604475210937605459180647390835451921582047211614877784370777675962664005959671537398524855046267551168430042486158671542590294949441461190222047235310898133881142244026503599203930828638667190240167543401618271443956565700582877154846386854393803131389337251808341867855027700254776679866019198944026474814175983594815813660301475311008932341935652288023446564993974998082446677877890384236266925547372024105905268549339085798656079215358605025502129762289021373823712270211776039183314418758127168114946477529513424753041514407103355626496144097527447646621803943300019443370941737782372765974041864798254193555340751792814484852822474139609797884617510307719454457515204317299176930405425407185197447777894138005235643437074406125739009904824888933592716083639996373580626584914285138830014192197957081426804415132427511854465258964405242081086985082968615690214531773640815208161677298649174530235791080929066052714532363744761367181744929249920940458921694212908078517136058147038102593005274942934666796591284427524168006800606902662281621347485390568037432085041389914381009472675116732266882892254379940210945083404512016240693209122346485306084017324338091892236934860028957153678317623218910904102186901810130451727871025644740322460265397267526508935219686492120500205575047749667162776653521173755043708704869815373388307258068111846381444329360480612013650308326420970465171803731277521770800161545200490664104483304740083857722569320432957232679049939725681564146999264073840411340680327004722018327615426661106373535130543474896636213652705092608624858951263840114371726187388793514069166187216500029245799219570854611912133390322437228582366427047808539408086586678156540411385613838693932946168290854497387123031218829013530914078851723258702490038141992823836363344106399444002685244281897629685599162029581670548455348111000639406362628375269018405557532151257650135570165624368810176528615688937399540645152983071153350311316727425070469837010380530970812463437413338060888977092725017301919136048104170503482156089811761287037531337462611909875196176020771989428362648619294826566862203772541700427747551531464573325992308793417385646691928353413439707674137080722170827708462046341486717999963594825462643874585979732632740381084217270077158130081433229168845645357492988737925063822348285053423862479654845840859418635591267487328514167725832428785746239573647610714341445847125808728161520026110597671248201395430574898559376209020882271292424787257183315519120716464162705835501338443634467187319854444398897435081992908091183589683991489642303731839486221785180168555165757073081749908681596175880214166787194375226793526092658932296831819239961506319086245628395287291679749462004028227898782711364735758885211364080968898569265283887959674869248784566042695283777156332651407444555765541318885816715859517176653881001297975835788588918667668934561950862455394940932536998169045184702798471284328794359922239378850381044693308744137265929257611600760555586402251402915805320475377193582110615557813259853664235999038119141824705569298758169045238916540393605468945850865884244996044302570365258235138753176195527189746268513080398893411943350186935956650605207120256115894866577609310896997125039080835128752771041528367772098713089594459823809647076846321208633973151916260770875619020654442667372516757054495043330219873270571967592503154362807055234154906218587643386096842042028952326991677741816345799769269551979314558849963366267672285268295241589335681859858213158881265091127062057256879460764849909720188869663514302870111012575925866502004756948878797109033602375834376468260521979600529968820586726965715901279501235235503395752844997252249040993350958630485786455270452683919430385340255307894812272959466775375660610227474888406530030727837759225103499224522338655572460367039388816048302521761986264281078345743404894320250288818875042665810784372473654279037276170002514832688458290880283519768528909686225595352335550182847594343753679890727478367770037049479335019265338300056890775604184624995688580160075342874180317712200433010635451715354346586875761759177116304142101761113062062446641109026986201471470820020773657005799898767735255220595937725601394813737697018418554805167688356964060291136480307449411797074909385044655616285529092970904622580496201374221866157581817255702838568873003996172557670046789304608556064178160107336614272455384621516163433129527405622184423854065543302214114243930096688053940186726631906192584726422696841407645162923603623034437405737087163441952498462658186248467517760733920031704182670181325425880387230276713381558322920744292428092831255095734800726284052487306381058176161099307255478350265730342825822881885368341948710719752405155873662921312680738128681197364287829094154818360109941305131515326679977625707823936664285585943654927379186398914942320914541657121807485511571822067488097020880336981315065522961227497122853044941768154871077523963558803473537664383928079043087542275585876353807463250761857523127070710018541173192947451799480961185103368366313099901475885298405247529313604804157658338270886529577987494600446407242354993153786806727238637973892924357734015952314408330820064070312145622017587780133769836262589133104378330098140739404083627690648536044651504682646131093974714061771218499881523969354919247917888086974990681889652907424835848110234662366629113367317194594492148613885957110729365781216729190134249012921383373522003343653133526777662294664037612531600935744632741886590313699947309661495196699444451605013616885244518512299617783230385403962266075471855780017700648946047915160261014441312878089091296863979327340097197249505571150741359148311814619625690052918270376414806352066635645180416637595467929434925473031404597181431071742510485705977089708846820729071197597041357321149681645466182826589828500653824598762873891986725427773431852494561380055584768249754223152862720449374241856973120692592719860364141868316671620549026475725846553251321986179264133969117623514448269666328276413912551381474003316747740604038460579276517353358431619211892478195842115560903794794413185711455215424250800379838388739826949600104867637175931742580258926818628943934594125691312966428560269845709284943155326973294473212993654553052374654063172688494568727881542423887688062754048068052326263959566531396873970742494228256944147976117530988620999315195872198422342080662503042019271237450393014589628496913793894316490644902555119456011668786289886218664002914415285604358486285090702526913147635158266500078294000751953427799547910974319389150491870136900414113279846578165074726920624905420079256235567155342285455880630777293737803626717685085545024237259049445852586600040514869649595090857414020740300081265950611020174454903388407278612238055153789373875864115338252481027973961124291707433327318271821821332105292711907109445929815519698341561173914249540340078756677738333256511756930289191990576220327007648472031036856938314175835633689328203185660164146045804695475671621253704191762800224451959165133006920437793190432779896020575724682427874415834463007536105333099712119892595242623599801183683210887300896370549136294792520047465129084570158401445627630354586577793109480741931871232794610610548365993673676774776479167100970944783393174717965016201464492152993442847260388001401400428135239251441955728215516023591495260507267762964956228539469298576189077927553400253268507558953572882148657474036008830000104895923664264454821631289995252582551189935475290670970123917269850282117055442328706670860966039325503409843285935508659459984388804774353616826638602502012237899215139559520673747304245862809149989131226957610965900888137885983739327134398096882107501530225595585639387625480254836290305402320515140823739296040807034486527563465896755087872236431394194229868807310860856574786192703632174766550173264214967467184066306042658508814128327580569408678918955234798726040814988907995187554838033775720082358933209657713812320712403181368494780526019353586959546695085261783991743329915703861502227091560661006081517560049628715264258599829660533321665373111494767220365003882420012741140376766425861340663124720566631423278160420165941876827965629204553611663449459153969373389533856898840588612012566348527379567409013292085281270784509643899987711611250447203677724628128371845727075645458047967422093980858325190706292532793763939538849965799664560304847199147024432181391194541758616868820235177016270231945663402973975494261509837052874313388666117237868523987085925986745868367154476501459704570864167364042255144785410216490374044826354961140786349187614351948248116023138197215747198822082836469878252437297156325628992677837959491918992057542378109086478774895813474522595837752752107190306135687489143426860595512577962649627303675230408741050225797845558984078232539836372462709243760846897310408137232232228040735124526593417452808183913725786196345862204107658402884942306961000310589943387319687259999218188223715320204936183719500707472251925735388631965101856043690374273631428408986846238910980672633835403235341597752338558552044572183919029250805124799240338767980989001308653087081826181309383021388830814715845451276224019387963994214544556194906112258822439428780753195163369060103684635448413287726960685580299022712156320228675472795680602117355384524679656930671591388062133913258280679389143345484977913161621262860380519810895380877305689835479634435513877093851184690729254429909622703729960722347072575402493609353298100712108730451241098793668799299299991609753085437051139440299692618595496316713232333173800346722861403705079556256456088016480291946528009200052419186828174584658000500190497605693596162832800955454872505543867201354755011375426358250803603078893488053351223982014765076613253450131822347718133052332547000069252123381632076554671152903576661439307887452181184205400883030283251890887383064540356356900150274628645432525370723882675729388463603079096576817911031514498962546670050373372401325984457695848318434239198370917347635816710111618800043802850669318771878143664718823947965296539963948619060713870973263970759315917085461484097799541169886487456413020439028870500955766618086490398186615726594808530413531456409201093758762869504479663773590841687415590888766939410321938061767686024912286792949170317908030492423786474486716158739364451355041827640861414287642858153803555996499270313300890308045436392407188127841750741024672395117836849865675252730406283846278220028254366397129067899571845752832941728820673412485636361598263824421161959533898307710939030271761273282712274639140033928946257481915986877330321011656362833259725784754470915395153306557535147051668069555402356987705082279009884095500760026264143103915526874456659274605980887272405461022690943502876194249657405553037168988518469127049383114630600040906172604583151084113241167908130929357318905783949722320367617115085456468844758445544814457660132213610933644523109652821123728977419284362789747317707404785937123256605916291670859931159977347479804608835227707297806905594980319801723529141557142846219621674033178327099085860040899473328299743569436975032101123794752852570604187439770112923424815674755371169803306253604827682512867454374459882707703275722767397090818333417734450504826970320655132342936395327551829626695895048950802905680715058635351898645402929600458580400714306971016491810392289223423042780063013660250608562673590176667617170899719914572190949978622902584308967788378043558607058901032987341138495979552615097902197884947592046077984887888926467055989131333403422479753880635158708444967226309627162261211257825972414132350555804978764113402687107408752238549301553782138722010980282952893480163820157467918266913406211918909548452308426592766039819720329827748496660292117486913057615191539910360503749118776057635025723641785668354788353667686020164633289900806206214708976228629651734297551053473641717880687930506546293944827550074868969573825042206310209855305309810722840553806805511982021680005204685635778793077749413364996798162824958339081863859851489845522974328016560312211836549018530084223466162445602923692273549590167124098516296930611257625349278664927157302335063089412150011719184253543331191274452143350741027480092410369238056707150132838150634320035669743830069369541135122731775822019533149277278541941333378414887990885670118154833643197726327992889296576733363385542322985382869827091380950599101532506413187336601347440803734336834526717251610517398295415466664598705970313216727847002859488522907984287598517841399436335667350491285726502370588234914549149026502312581082033930086016545464526830818737201440576891762558014292919857394057177052770928944832802132164218298838954663086294954197674935132638708570506944658508256038102677700554263537493903677034042274501792703875513188962480818429363017987720656533325739548821363196530219144096660232309870255630463293085570557014846346208591712615980840053040172592257115358347925849415143856835076363676411191767572049112855042490414806606146655256802786581969813173058332263721594076950600237580842828688429870991567917223643671364821133596785356347930527360846758950713746148023308216070575972995626917523194566680193301902435572488559590312160611632145089628344648527581417042179253792938937824127646015597994595702197751722969394935202647631161139329380693422097705434906847627540140623801467658078228230376523140632632754770449527877012341027662909235541087161665013683905047589463183004378585487062403927999449499572274802362301337834762539601166908300922040773237640815507878541092902280027066693182008047689293342969124607883287854849703301245385491924354955645645250483035652441911984820552612711423355404574908258820517353764345050638516917635031648178180085220491881548413920243886992531575792863979212501603786006847232854822244732673525614246210188274580658577560177534775075412314350629823087540849656408470047113152332661002571992553800719388046411534100916272271585780100005821423311365260080338880475445344228603937131445474898165928677584657355829606537551479228393391138024989826609285725016400793614168296940103808263642576882535963553499964390298696950504636013565212056765735538386939478236696055087645657809619188993524802291936312478784147645352253566723507468446668439544208493662466666126196198913052975518870813138400212003637671568638640606510649869597507874163052513527851259623368126513368448957692759156974349169264549956659558597591035002702880609495782118975023699148732821878551085695250568820940574036706725301940987479631557807742098827455340918967213622136031208763088730795827473569462801495454823768760817295510673762519745230360592165691537156204945548058686244594316823277833102099357654513874886055219705821726746983484870145896252608744599429459807006335441650515971087819192691541997292834184610100743788585894034276301348483592674391604524294838078942867596542306019462276619528811730878117649053906018126371346027431360764589758681191422552842883463752696025022375275616882346221425640899169480138663054712023509373537315557142316523177270001969093884509827120458542678335719807569429015288316966391162531311482711104707931109150617239270058481837556163830632380747023432502523056040339190940247351130824193524470510961110403399546355464123700384818694736550498419710990114274133291272046795067936117794156034083456685095014828198047244523914667036394626126630648796141015474026101490568816026633176595257166275043854854271322196253455264843244044493697398487439978075361713261302341726760048290380074519181327704758197586863811534419198966362966580979213719456556603224260175892638243524194781018655593302899848323895395867653399793411766217548237394262371441210556916082869889742511633617560585756946844532921886286446893629499809832386870559122858503762126935079146890359418851476088768777262001735308921245469703497310151178269095553433177688361916250156802422198852928360256964739303911578411106175566796599248567917572052612561898419241181060997720871173654066088194749916922858423927735926902988278376816530071451422119117195921508354309879976009349877595956468961855397039873386565533652366598713494469741649243802380927817779844265251925095754480804155264215948408344875131904093642280298459791824566427624449923775244229318575907371069679438662692703209554807395343562684295866805944426445071559341273374290786255481794011824510760615195566634247197417041192575062639452011274931414623072536458542591246503428526255663703459308099299583815860677993531020284059489607211384132170795058822985573963188330462149181398127403376912125161837985346218545955149913082263702378463388654539072300205398372601284006592743349166314043293445121800230740104603208559763446021793694249053364426146590591072833417013433798104034949501050027997566542638187699764257347882409366950370357378305596232772801939669781129780493175464039866331154689356811200768397200605138389795469771115978825253772561077040642954257583713374474940691271010852830742159567101051507777360295797391242866037433882616121797412297614874590321342411806190355564957548188965020176364880471218948814624245833118119606599137622221198538077646977835407258388983904868328514990760859556074513723226064851982097842529428841876993016728938456521404857921559948107535742404521685870543417113397560161132335072629748996201852701792870247224600049834963885810470946053155345834854121558245104439811026098633974902513605385082456620978074636484031611793768820914326705796360836565337787938054889127826194627588153791927061453962107804484076478260858069279900284996693318541985943085746871695569939525524970232731552409470159532456520093212230789142175944097380298324643320822627054327217895775741145155622528332910488226052856328240463232998461459338928429313725884624804538751903608715193963882522532577162619274809291799162242261753389202228535036554344734161206201663644769133458526792526187254442869008145236901767286551100934251120497462038877925032939996753862309335803481542158047059366891375534716373004656769709192374127568371570874962895871753191464657642337844305006603629002061568624523761860382382435601247519540048951051232257284312091122310158183353607126469661950944036350097810086671064165942816720737036029052735603168223413333961312480756399076642115980429503065765338233919761003394924428878138548715769509576549834994896524369197260321459365914587444948232262438295513195782242507113242005534797774572521657956936459596978309772317990542470454668821975090332465411170863912302565389658143050398481232536214514197626633946009164718652007385854169642555247898105923577308367502793286402022404805682713167925834044820217001583475695813356959239602147867267817162545097544415657732856605784033767378828068392531455557499912865732594448395266352490806015325837022076629321032448268142941558739063881611510597771259278677074770342186325935200589846440774967728759442819756394655694342518474874514735779452923923667113477003788357637452951411875616795066878209126115421985869429345057971975299795070711495810797046887378262189386735489969386383693223125698217583038166603989351939240949201414313571655929385625408927401519232103752856680935229199416943584638178843066442237230361110236716876548571426792371499232382722961548968587959404985456391887529810843101073107998350811118313156342751454654974211041745323201568695005572887392338252976505126669878324762337375435062901846033767011893312434348551675924165066047014013005191342917705282850032323987276802714116985732108755998726398156050725054574475168048220906259207330600912438279587185363290318373230130289585906485462471828643474832459882186336559383762974763078534231209528930495639226228280484876300821276101509797076038298452223178651826001432713658125124464645443408160424140364192645193309190809215339092322549797089678821422779690890873099349126889166260805258784279521985335704859410375676939224003351520924169654858019955262321946178126638242184925292072653118210010552358989811824961552896439317693840771131306845159677559474236325916364882532746157809602164651680332696735693071588665803909623322735465759798790654284155173836865470638618076395395801108418942878298582403415547037392843593284897285169291129553783441535658879708240232220811900770312153220941701847805527696349705853534519815580509781241329707406484854084786544079485709292361023514072648264238500367287462186160613032156363718955067869582438137263974820720956560418786183581234556521545041140258856657102175072982743299417472904500695449610473188803679757815924272329718824082159807636272521904981626684428928094333346610686569777212013275735624047092435326050086367516559887487123815189722783339193602739415560600782737604523805018734441914799722455995213663992094173109244019574725508757695183990601605909745240643677021964227921388957094778222131447935232260057803210805816461548064971003291798985198393640647537766609144271092361274841811883886157467145176401526650008429797345399587434752355721266814974968770232898056108112117573437739005655261804378265573041317028216900337977208567675614998279730203526530324470446077863842822556016488859915877604315359307765681345363978866795908106031753762154606452055589698105181093761737175022623667844986165418273041557429157068743670213495014823927379192255121851221218275225859519964822716844808787661871805777866464564762661516676652770662661972157864323757294425850002108968036658492460750460154196229238550352276550006291336986660886650895147143849586789863173585406180952930471712079906570722963184929867695810828442177453975221907448735098487862514957595573777070269127703054128652983284151581601893288113275145064992245641995801903581044597122248423941550737091563063149822685556217458387554092384164648308582153439562667314242850493228038347980610961841794178885435660372197809670214468866221304350080741920659228751374492608666768928880470262624420321662349522562552407656653969957810381091065899401490201912088880522077092688625369143423630802847334554870666250236959590313078743729055851845719787815210886715888730631199494321157772090963521401558371335820681688883555148748316194790966682624263191816869234953982814973685818831562235121364956115332631607310213918630643893922156926494770463447432671313429484021807784302386365785184045962568649539687249892992096078596124129685740004846271991050205811402934150196440128007131024065461986564575410979503792346083824667635399272054474554038609954324581318999101222443373432145792442784456712969398566780461346570037338908415594060282153625535247267473398007115837520725093913357766452275509377496234028050188670789107722496367713470042178199384823586705077347036635923993017005889264640007782750196542793772804929773785364226714687178691065852053969633247145670789823275742121922440813213488353616201975123299289584528417038918056290778418909775753072964525162880548925618060423978631516964111598605618618904158092134350351051917201669461571228645080367883909452555769421247772856703149555273879884209626826533483279516219945145708111192806303351074571359603603230641044608979273227456229668137668182964906081328695047453588558369723585180267445370955140153222509519645123703253155765769979087769989589490851459047344515447236456371429389397424309694556193502236695956230699291103080674901265157975672848366842258387134235663841881741015410031857648896658885993142402605415684062755291871537943212843365957654375103673367455019238790475948107169550443153322015209864853449857238298531503509544184406165885947325552892362103414301129519976024133630829561419503903177697475947161281637976879582277229737917327386582229089793776885616649631042580093030266170412510713355027569061910910037853075898226916669383126094662411671342959745513122900343512558084895939417492955246007375776628935925245659718339349522103901589213981761949729413685693784559978664794513605216903951303616462555350890530756829324957951135263863873609731158244420484706838507919765841148342432159945581857069135146915636880541578290743993538907428065772234768041093137735546294625769794745056946597350428909745412299168264249738834998992406046664662526266362532799163536519901033479000333542173715456020985588735174949766538823969132975521768151571943739830339297038045775108181615662238063898872963063218190141039141544255777513014391464598249648841940512694804031285239509431870488889274487375248179355711959423402790414432770061568259335026389132256654493144758318415899835987716732560218603036127890920229249725738719871365731693869586374052121992078418536005085496280243048398338096060313901806177058923555118074649014194481756781598006698652173885424147502653405197076537812213341471601106744706118803144155654152435897721496428464767698506203535173363201870820392439528190207320122228322520907113004534716180159627775395932673814790054578703141368245731291091982743151104854021141083232543182928569471857892540787514570387376410599036658621879093439541093258365240937901677083419741459694531610152665680969280491033709874039928665444206373201498314751093201761168483472202073284304593298698248865794702363703061608512396606293700525062870855284949792471281599888602732636353571745980832305699703820143563276091732051396169578973523076526722812583071717601153732962931569356236012848441419308358950677757689665211441864316116360591559899284167764417529165982880818682706737328492951763514951164980973543244695077876477777117732666252276434936597464792588427632162799778742636521529704484674851980553445434817922926689881815521403833811688860992627464559057895702331441235622051152773404095480771608320255874664375464007062608697692538906542895233251433844267978489950719367638801508820192444345837650567294819042890194275373409806605363580582075103625730244665605826676922198877887140717172103788871873929000806463753252737234240821399355177515873720093878581059248656683202697210822902155509629547135178882825388802348021078509076808594106518601082401277298709735993974201535754158733219576920962722596757916560968491168928230104151393637799365415710461459645958022109226828934413149032911292836052594334832686394470172428589116763040296417199561785494835662801102104509417174367870873735195155615912159827511205340926460823252497374171390024227816582284257992543737739941135905849540529307069802502601662946469724840717220857007504357460840123056744192047042314290489509220033900366759176644021279279343136085499263645433826531916646667312879210046873338065873999118686997663047655993730464671970257223033940272046596237161230956523605291016949365314140479846885665215699844807336534806224745611885195092023144693613941756684285141631025949430282899265781901363796089367691188399030214718912435882345674734932968671864739187746603614873689015229371056821617865019583724506630637244038889084833789854637629951688330770747537024987301662411173442585867614440191866084847262646338076685146068199710080022547191686934889267018846889126536957724565393263839008867530427542489984692732637796199542004201869242459658134243105579059092647383405901970836232798540781959316094062470192885573340103974672329429176049434876846263182829069963223287561415059434511652855214646453974587419501201768175791434332554414391028213973716007480629211634713428771668839498919045162440942043664036958765758819073456203277902684110757381744935418735047081631690498447515468936272100749951607419572894982988094209146497466819379920703508463138724642582284969899987624166999023473141561511493836817577811865521508156064384137044876205245000306865573868544619040506934706357732775787261082532753849660752374080463318678783417100796706445947366361598162465008368770334837628586751081796510641846950433290815106437261273135638936886707668115236510008694222024904031004547289488935277294958340279415682044858571632171416133969962460296593431458762937291748675478099649747450634471047671065516823267272308432390883976010428083767108651828639460617685828639335720603660995941652572604771703001484078205804210041885316995065159286685534476319054522287560254685252143947877714721221845775897302961299840747015628274248574788967228453579169801465524149446620740781966405762284806474766298055810089137148031892666414470456648488600573181380881968497393822455565860515087000707392810837709920418601215169912131226508126916671170904509818256905618410197747501075479415797675927136765104935478796290227988221603887092820910954555438563866540322167508607484913739557052247144314566812122654755604436515688262978267740852787612670381474752357824819715464027303793554726724176321858718238179895168214899587936774645367450011409710102688342383471136399684221995596830570680011129144640166442397496389393015495831458241050166489395077968557985746333541006745609843384766999935445806011845103488387931276463159947047898073025157367291144486973786302430564300616683556759650162515891427952149430411180220220726638249055987071981428726024871316870608787394981096724164490841844445394796264094206276856381955410789851480865311838006454567880921116743064668176638379295947349854794493803940262088289942478699098999571860237527051696505407739788493359435206201203927174925164088498747950424551098223995209975174582699920849985838878053197956567068343776236109014030408164039350937748792362737322411072390439656783182242023943329088303231176672078024399060598282933302391223342726974890698825501891289831363786008164272505963907836701969757005083220133525456264569259659671863319140950677068369628457246526555335104722862079664308044794146285895574791860470104364068231472493445798704724837264080406108576259001509993110183492802689157480598856495776901606952019743728942436002484380775920224367881982423977078433805836338741308332376256765894066715348540641638346211422362557416422899926444996873244352204741522955019423621387164017053132624085553647694399845454742985384400626973111220729770367086394743411701965341117447666741503520027227351834786311642548245496829432467633638048747591445424686038038442897027090044343967939530716884126504945533112999888604677968517942812607808496968386215708462588521003536725218311986179945759915339278194372630693721038784767034730233169156645352157961582669562144015207085635514289585143886008410860017754298646014739972967150876609904722891984555434350678653952819567904058163201500600522520864090152126079442307281072978779255149136846101393786136206295740683186406523266320437867116472675577085493309811711591762496984978521543704066722711175318175868090130218724772412865568444654255588965282245799117927333136006160513724289394358880198979564875474594980895425814204446500372707106111301560718423115013771033486695604497912200483090961939454962327504132055490916101258035834876372831816717452479039254944853414009115734938009059044001359874167984745800829248977097592071807577814820249345960712548360942217771721896145744702977776012437053946201800688665088505504949099721944160150186946344612817885238581894405146117478774587135458069909436432528274221810949049617950170291460292078627057390866260020611011429427365267727872025540045599008103171201816848030757009889414416097340630194544019895548457189283011432245630122004857125688378929306457613983873793270227265101308668911654381473058161247316060461980958358847047131146524624765647309199686953437111517489899591757499767540520886800305621121458963311014157615059834047186502721755319856832856836715166339003196963067894806847229419948170747431837627844706002537468987157659230639498218764733268499590600363123339271633062950159901592331616505450400679037120446361963783144110206657765363318787825765885937518999537694047031114511506729782940249324933155568756082955438821507224445543903675772246372620511955986983329213667319321407804307023355458815808964549874862267027350401578569572567213097219048883570975620388140418387115197087933169527647321636892154091794908832678951912961492405893081775645831932321316509661755669187259647886716043416208627271427024267409136859555545032870711306358627962339976805780295197238107299428654476094249286270192766304608443269844722299248072153979231825479859042973331287087040315560468818719283257799239906449238095300008970562508863747903393647232708594497837206705470489864977887665478420914278120873728099718878872663367503060848007956591565609024738427468761801287476841152815529609247163797149161257157000404282322928018215299961268566613275160392451363645834538900523502759386833775152723846440319359564645883135136262013278667502829972645529261654698424873299564489590388691092542383686502299458915898135552522750853930177669309718242247831363892102078138918211552487553165656031785700959272763284919244422868831141803147769758121536283822241173290487056912653433477682776345599156011841259724230147649151866629530035240051579825152368779862910484969863367614414133494325498791604421423003862222243317572677065359281632448447632283721865727321694734489644709509000814761404334531225863168823866358434869984359292066731821170880009640747888442386186937371413178144645318042466398990643046374780572123310852415224428383129405036605461934291517659798827816596365737637146168486195425074484819366360048533024792514910815538895998381526852029747030165590561626883216747039608498386363396336069031829460048039996968345525906225351920676665922962533775012827524025045838809974678940630836720694396059002223876809774925066436555838642197738315095415986378728636351920762860650468431742648720805519658195185168381705183297004897135374712374743767600281447116990122904376792322467142202445386746064806271212781866632176269284564395275123456224271627376046673369303959644310253501895907697595751816038872885226236368110661775958226888413268958673994372451670096506688739915586211601676654735917365306256523417632939945456075860751369502888513989648683888833787347191308205078265605759413450296870969012062899115451089936171432933079435594212060008092498288602571476831339496051102917395950965387083204895511498733853356324511403287404301658433004308513192642133109992441817220859039029411580511751224486967609542702212241516513256421350977527321532489520812764868787810569546005437281326301537048068374049940547573701169324252580260439996428735749641981651409402174142072626416061314638658138324494306456971052408849517795922248124594889038403462073550912974641860318361105934211483161696200061182665862547063224917604663627160581521505266689426930162980201634745849459056642004450998366252040772367078342405775683971990537280744375885395814173944923008033870077173922130793153075031163705832228216466374022579505295032277671833296360321994841313125457543148488159699795554615299627606887624256741614054250442133260852120177402419586904556605519109817998527405505984736545077001354558588650783921824278905781418587408822912133729802579051928358124830778453308948314298511285854679329224050148429381725632676951863221463445453486550916900437875024304988955910001317957001257409088092755926468656912576525704059083108779574076777435501839787919077736215919765967886740116386257600677733964017566698914022339824129554547128089977083668878810385133870741735387523187482812847021154209692830003687346630622529334046743171265631711680036354841942478040859881297320432245882116817511865428424453806743365547734555455504127800005400852147977371020310561710866328046952223768816180844705983988400252470793205048234578472817922544864330252143688697303800158261861075731116755126612967789517889142555107379596355374942913868875812247921833778745828192207903266021108635892237803131013710388519360949707146103367102357876163226566485621736074381989883318557058763306673751407725944768259892877059357739235135593554458487296670933199614996965257355655981700696791777837008510849785138588304380645374966984923796668910088550453665415144435704307341207749529172787159668676468329608701950684342788399027546695651707721702049473056717775999575588235247682379649165825159318668700651539473526285283518637429742821697133899072020159440614682695718363680442908299755770928101617736278647800262971769489757499341825376543453344981333385184754582060236539334530043655035643717985585307434310241875776771994761529395658427575705174192001748878102091880759619578290484966798101652613393526261691563295148524282740664778244911714017739476726827429543691571856193561586938465772606166605723496170679477081636937135168220067537142001050772732114224833100409191388232866109200770620838980778146248332185517661606575544678688335765223987984399799263112662635640181855085522605671904005120157738472212820152522274740288046535792988643279117780574984725763195967994012325391370589896869681006703212337797871881970199218378002185533845171636204560742612562227194323638510426259683616360759097917198393702539479222484775024269063161491971972051197408248454549362726634293565609820594989191394755338720301202363374036182442284033568064769510747982190471508656096641912519325516364996652268381195614865653670970767139618500448420675955390795602381099838602877631531519958813879568465485349132393324716277256292492693761050502503274502589481760679396479929322557783348686761504302083373620107728364487487159924345952504462805574091775072245863419087139822459948037606416882270454592613727585478834701731155279461127261212937969610158468529577961357100689293008938664393058950973511482190667601090686680527662864492551717778819224576741057545768996856029391329740708315530003158895928286348464312031240335043093120117137273650267194774165267862188139493311301233185635072117317516468596513650114447994084073527304794833955879916081747579423656577346746609877699322021129865974954873987064486436526249005856376628242281175503107057706687184249046105265857107431695825777296067712720875048816062767460310229499157013014057348774688006578314247485231540295790838262436397184534938167420007824080504349460100231203976666754350207683591546739795436999248357256621799808902864356446553283113321172637713697866759078535531141434250174658643247364426378132348211459848766750173866026455842903411721057369978507024913868117041279855319810654435548626177603997076206590858054657225707440580351309214826578591174851308658169983828217854725958953227383058910297146815753609209571293137265299585528982202195144766958435570641999765488742433919605328611882467647006667722870546435289583141820371216039916753323532777911882888019915938489122490827527645979075872639276552668105912298840898635691287619056531843551623884783889011959242563930945738124118690185582522183915011901192625912780354349640856202296415210891706245843992107222353304292624428735586937783749901202708543592314855436992906303197186569464278899349698153014642866751323881175694251857932536410141630993554324560307520219923954936595311296209003629323654884243352627994234641865343935607685346379196637409352072902694475486148863868511344191158394362565338483933449293337081185749823515859246392383951085631842620842076728175713950711646500128246218265798671728942243003546136447082926578377968263486478002031561657454445468262325884895243470665685065511777724623721851537199563076708013113452971592734001720107539692459178908993482543318376711668022138985999408626867471016150883364320071370336537274829330954048563590526514233237807198311436858495524048710675334551368456278411969279366476552747551891092561789363699288364127227635294212109411467319653067372695797874526535094885668437576483126015161861658645404931038324531159783168330732585163545480234009422600380769399562522220433684370235349599604574732952757276856576161398534985171376803096926363463982714259632241765925435692071942507273248717932733417639058316316388025561642422087088633687178664488589033527080900983185566048450309736311224203237515369647811385186146449359713957808715600260080552218805986312571445608753225881615885818501197836250314566837866552363286059934274291564853226149914516382258684657941383246116968166810041416643790541391885131553524851006119317896973571706593623111657348499676397726158667741807054261047749374782482567598918158368795838127525634130346826965210891669119191558478374415133094020899775788289303489195365450150710330556502723748099826395089971340924340842153696691936588745489345642131177889657257487771399842782498215640259496348706142392928476836977519139316063266869033730462413783624276834122406768006174403675346314079399280466600185304176382637661670855705773886974998664384746893967080362516395369244538075704839365561100632836016704865735562541542843038308442805872045354017462786215636042627582894307918344127363299529701651737412138788310785710646387939578764724623670586209468313669941815915552063905726018535373289432441373569031050300918997442516467070893722907611597035629882229738523648498798902190347488971466857200910704606593238530420840373071980581344744617777942771394339084195268042323360828743892875882198527734030726112274317421130667822624536011661671342475483732798733476760044194572415932030637263900328524364760180514689947775277090052244428150084729887604021292266911813546618826729240330881312446013936118291087381009400379377674304763941266042515380144933408128214533811343234655374730595606600530684066634927284215935532485772022978994834450611665346259680911381410571888286117299679584625377395300381176869709359685903296286782835103847496010432927140012100749808681102479080014021354684240161193747479825903401075289686031043652509095851302648904514448445208480828825818308194557433954465767073491641174404533740183052090518934139372970576925067761394559983192227651694563691207920572470897933812158758409048809430651099207510801641671454480817796450974765741372116667538087386138394471031697890185593399324346849418166595490152410040547237458887300855510347389158056233873547458491217419937182366812870671507159565960588292480437899471526297190913828431033720490658959459266748584835575031644593639890779610129173718569187038127326109616471774762308884572935003821843304198027808921719577465677105775307973030913333131537609178408538863427769348699687772715093090458838012955051539348528081620865021075557453521465806351141079792164495358846629676714617018448875979216294599353795261682656410843490798433241235295808485909184777342440126810460255842698733274773655496652251386462770423458321044111034430404960331128033263062539071510387813813176408532660858299547694236679072818370845742468441062271498445359101430836924191659383363886879143591568119506997426848241205292001257273971752268314040617526607685052064330589057729842706539053343999440433278629439234770080731919643230561344529302874891735066601434977742082895361546038068145963677096272367985836643015594016058267759887702066265013118011884370430750149389962819380603872713107536046055100385853045375517363899397393021948261936880325839503785974111004727342791303527727551043303167825068975198082574073325558475009996310156896272754072996685576661559416808676382410059005326901294176013573876191933019342290038344784998238819199665593095307580488234908822206351542653860708086274028353885602420481805096740782513687903492861762543035705551594867103956774160391752920521627078402692406147405100325484226420583604823123598547195171385160883584561024950691722606843873611850928067538050524116520802063422917954722584017652783667740260658990403592951520800625547505448243480577730609592911061749732033739981008250812173109485804019270678899298825360622674123836204079264566492164725725853344600804832583274069528984226054137584436036270837552286222800734431335060185936112574951454318984992185350158486174628557584316813171022497045732725319242591569615926025462846276723300069222381815591823966276060211013374203185838313289405539669811108031872886499751066960825575593732153089849103986277153053119641024961480132317876587485887436166105999837664105164919487824555124430335890048329831515576643927635330867814151093476649489707040109884598072137411062863469022217862942343151768861006221654835086912494572469322534626458713221846437788527968646275944863766035259686193557728974256558481020958500304330953245235387267256125802430719572718620831673605369047509496774581925540024865222556474685172690187519577648151554798064909014266569610680082126875806069209540820792489452493921408199540432883899143561724944170273401369598132134616063455440200731392874110205472335651972702564903572128658124795495031459626474413649891285696305142085702586523682570046722723264154315075473879263553973559197347315432128616354066595525845165728584468782437075980932639382341427253962661595215018256836543612601192237093848430704281431635801889239800217649635462445751086701209373965586664904611669306219753893667016103795045877396453548188030835568966697555862610617222395954867540878208823556713062269997035742202862265454554939705430565754403717132067458059420613682774908582685788289689692798813693480868866820804621833935480021279118535596347439549731532219617499223532035225890747966226387821344827903966653906794205495835142969955468734292547253334992005023360699440997671404184500034924221670696884447880653106863993169291892370422157943019977777622720010085584504303682174736914033960588444329482655923784533729906906316885631346948574610727632448747115123570821239969380742706536299301928326532555395226364993101013044250197581478705941790684504951625770752292425150007063779533950072176021225893409285403766931073996969103792817563958286782952114529495018696256594403070108802855870204079060927626439432980913262707492519757678264340659021915037601635453855996763478684971218909650021725234567889122798938491101737657923259424523965683412046917279182236694860270891710918489511481719098464177257756883539822162182712927809907599472864077301150694158483525867302571630681860886715526080243913277466127896376061068408378332427272587617153535462871305166339137561784640039848213514487873520259594564528043438024710176578794154402210178090828416317965493481232915091383867854367801272349994469417156924787866929280792228288849314133000566195960610350465590205797096230484753641148415361302327577604232547255678935177110947989966787684281907824589422558773037426815601335529884202538924075284106117939271074075397085924177169151352692019129710145556603467052500454780157321546906442824011829522793917314449681393195933946944274136802902847670111517338999885210261266827737329542714332951247549566819078480258379852236719319389519727969634747390515174055583403196653155923421993304571230293519443932843771368920869269557969561382771511363617908400119272353157943545088439431364093083096848040181700901919365795748963096705950247403221679874365312703814777216615616721533660714151933950797936247359777419591210762038069216328692788360377445140848285045428902603520363421901273880386306469776633999188724822393875656906520336491669844954924622167382807134140829623558221792518108245594205153355377640097360186592352701697550227408032834070514749525229296060082624098163640747815882571704732737429494881725727502094642329346292892904545620969412022796491313957662223604815238601737767253803143669012510003714176586518549372534687045634089230114310379292311432626085039164059009940590468893549141979059111969531355954448253193295741425348694701555074784489815832100262139253273402901147509626752408472750534627139358337713377583917179765446847326045114622337887301483025346815641112500411002181812400699856051046114221112435536237257389279979290284854325289178176368278084237174557664841944405549520523896302574844000734382295618509442094212085009924201296219821949463776778230820443193829203945025420711929017908226183801049777352770504992283292290310709212832740549235352014412229301241292815780024995278157553172438011611942004643255098507286766346446338109864200064773877845767918881680987771647137460319286594081892849607758724993165669360073968162694474407639970560960299599311749631132689128024763668207345899251665535818431178246875947801022248997042787132257337796799113930195854808879550594253389977692509222344202750245944386198230917278109868742110337855133325495995018179290529018782164798105184438557477240259127810712793440977469362346617566687355832670807733373403724649079090663870252566696545281386567653489089065555235660687809425262596675095043364412366334033277585156717828708867275830250013339618479655072094316546162977729678403619365826921259377349751589630469279650190202864996957779144433627986457278538432109828202057770303064221565613233748358842942061223013554395443504017446997095722189538645166991056693698910110731617777711527618490386101329726608948427375681104117823257636677821937905569931782239111355120127070814449566797860224317171984836127107346013569241319848364335798523937473088374883817143191486982736216868874826579139483364751014932269028060500094894118255172902914886769297714708646962213470249745894181342329649257136552424459372978236970650694818276877909554641297845412184570542136087762333522828522698587746297177568068451583329332714022789581314220918608868662497812347094535318551007569667537731421596700943751924768297209862342875647792804920620548657673899851185441325789000066885523439643750455146826622329507742344884317276696817309529004018962439360702103294078377670377632093188467230914587305094229095903375572502378886027049499454120527120154995327431005065953048801597169447324622356282047718759577104071506030155302669144870446644907200379133431811245641662821341058438180011954599360992398735334148256915412650278721909909552742624123330896123041199914320114986200890866177717334190081195009878840374401751484140829405186868405430849810849238312659970845655446414369540228377593492840359704340534187555331379578031447077905264164386224762696704198051504851404659021987685487196494252910652321343528508497821095512134645623265124358462941484080347633542141471098937200032854394805456515717480859881881515188291711937349541827663791713940265763355997245441263482206859506228005441631973895756812926579124761038154639996433634206254125273418630707614183594702390495148666927593176148306197233262493636464260270871810431495662001718257756652826534776033006667540049072867855207860456608626092152771998809932856622069159915962127578371983779319262824250187427177296691441851170786429375924414375191101358850867850833740203759983854710494236899995473864517325471137171421091019329686926698950792719148094762357923469754545871611063291220655529350327348922927413911483163270917911845801402193646940729973911799916857585967039853992874346939287690205542476694297946602169411008642497442892495180907208898200419239615205965101162819235404204176683962786431880392468268489930165995690172258179388045585551975035227244756953198619081909152534004434810611193077001552933414584414007424852956840436313070263128120422651055177821469565674837201456333196902451437452545704326925550006142927669694887676794823167671993739255004901815250579647398421470414539902602571888562665748786925861037180886035479151808521945185777827011145361840045950627218554047220110474927418473635067656912505512428083442109428197522267164742372068138441222027290821857657655087647878127072874716169704594725178029905863917841577765697265623569621996786648215502075053830346372634976693311630678150487450661912134107225008777081544959571675599880386992955090899466288524522799966792381977069385695875243521607318675620616676909321987577525186887513726536032770337455999457374754956425161375585514850134816755312126406474646243837240181943227204103810950762854372416456547413991621712542623614903085131330374676692602416175604139017908920672267846002578627881572155639646276475050275159284348032819753643547620660616382589451839176301355472205671664922404226735224410075096951674977652630656491868811443696156692965461618409825216995751894581662822883528311677015526000710383977387342030455659849099411732632904990321316015659894468212170806645842709430931384874119110085552445208559589965159116125245007917443732511958979562401011385377667586045072709168760913484756312665667706101436575362656882353998589298957272726744285487545364508466719124154776204568829163325785708470105948537745159462347689609806359489393726931216103407414468391300510382184663889705741814678804792480980058361500240594408867488951684854384183903280435527832303928759534474286900235891873006958480726579666034826543965291250664162761054682412763174356556767161352499037164309658590072864214583653143473661570032071979047949932254830321241870313497165988763062516771946343327980087772379229187015973110834974038725721818567112739209262127248586468622244318368523997133874638004914673715917362883263411275970660325757303544213150182192252259000288660351801944997845229993905176961935808133813000238316130536248966105659319671044308858542093904229319597532647387145790157173624889272630027692372709411867808580704158702363174554526184848293378376100077831390157869620836263166976730077714737648633036225666180899340167432643402791908447882134186807259974860822557653921252053517960998152615953654047719730425471699972655323889254508398447876932505474424473448226611237369085026820438506447914383546556499414008235047711590900848425269610924594049678987746412379942277251267346816929144121159732036602832046595957449687689591296968981641472598267217720973331274161523100131877814753249545009058765264045244197776053762763167314443190670538943845308301841281503378251713083275707401013284795267520060378848335810733737236946132974749674373082361369508271776877734108489225806581771300005149367922814552420405221449293882815180132201869347569470762474223030097308901631122475987301271616288025972682493605669233309411563688957618733981715636064494783997284022980924481146812541397550947638540974691486669860950905356735231142028781623532384425675321084020447716795335014594745052704279706717516878430192625017162477119762672724078940431891299713843355276290483588242257393602300609157233758924170542672111943776860228005836636713903116140064134699467677669623327646209624597881201753020635912226430027773196839574337199277331672024985831719856884617421599118567354931419786763572350179000688398013851472265953397702716482263854927299512006923769195742777248705061326076156381841825126908480537094293758748648050545505100389333094937959640421190802924191190371508876669628904090229323792566671990884172425709340928786787889110675315499384890779921780230941769610764730620326147900875745176814865878500312298319930530435243664414091419513404163214135430792579710937480809114297353597132357407564909258825009934003083825710335786032084492493527224055012630678080612301317728873775114013404014783214536786925153518224141037248358451715023777888057979619497001295263782467413899995401775764008443827393880526651048580367978906324124681890014971985719000410594637781880460264373350500872215567142146223642209538941358439978039538622349044166045185916223260491411856852727489372422646841027198952275887264159654085658404956735699329064881705907153630191567345278290060158045436035305685356376440119485137706578035327784556461093649302406693183649839215243838151568263976416818518114743835414860066089737388177667169495190334560722887166085037578102404763229155029544293386994213419025745476372820231055729126604222171672791182618762027204097266883849308758947517681165346798676943660622613944887148196153080253503595796064803276482145104033398739917642305275440370243873254930925305571011765373178410394858057237938116483816153779236364552442462012304462144547388630670076419962714335132997041383355499071283906484883826753623021657761609574163427122267885480526549925157515994480659196205914476416626640552412797964103219567996859704604896159369169626816946929623497405073254151905386289338069800307756434619342538633552278732800291755362504263100065116971611724251583318724824154252653655566513138809066009058365798739831358148972572593235364360640244763272780184240240127053072501439704983150823746484503959727796839278671331091851183127135927570383993898987460986079236187130147150801115408215793326142842871168592334393132881056235762716577885002196163951351891135502997651323686740261421471776431693656538388470888350110221862642086611905715483137509996726305169190724080054698024332675790417597012671181646884635388352181343998035787948874123596710009268694940144915808424267225456524979631398384768528794453666685025961485859146811986484843141164702479802326750354069636500345578753249787764394901902694700445376102521227350245619843425611651207587300471957254673605913796333705172547218859652113633936506927896536794069193823788574601806256047203504851463906931422480313399014064759779247423488385938936768629999158522602205613311641984484938402441156321725919578098911421360848023425195350966130854747195297599143571935195746523382300570647254061323705613846259371477336876392469390220065750541788884848596139039687398429942098893787995724866625855398075590152179949431667256424490794385266592716021052696055312510487226989354502291218242646235962627301035434509277565060756117936705530482662961883116422738106325446646542579298963074686558916164017173802626752506625939999098354451325082590228934383640947706946485408700386197615984605959317579837811441424680863572559118362376920737360620901567066027666264016230995503358984422912203571581289966864433466239210084102449517016358746269626377341828781364364351250340311080032268056324543347413184717228461294450823486699080233445382403875652450296379433006057038638593425106261495233724571609567035505789696163957337839276265547963898813946586938795758404155366166879836620030451870022381415336991978519335740068919060465779795318443195098692761640040091902092759399684614657099421361007206437464573737449662535900821875154761518951577434220262422960963605469289532361171628269752250545561684543450391920801093563571836423131371070163369249083346190195796903361803246603575345525846581631009995676948562777116177996366301889444721354031845262049196841832791036555321303021052018610857232820067239835551191373809863736948089607377498089647228937126753716862746560332601916234032393502324356728883075823290031270287459528791520692284043114420341573264965318990967934569490637357507017156854965358867265304903917857219607787698441621107026530598108165913651960974916788434228261212636871574570060303235324404486102931891201235984918566854726369071041252238817583785449976839753642826523685072103851519435900017598021924111186831551229630730941940457338548253221048888833568939827309881159635075960174261566300482003745976547993341324535104427129468975271802015096390997758113464592326696297938253012485649651072447713682587974593634186337962758332941238169800585606768477520950875498580049337236477452057110659888729692397147841943403755761996915399647566204686448997028887108270033910331922487811242104181836073436383981383670533626285364496302216955917537630664337831725383425753913940222959571894112558073560738162405529640410297916356022545340648520374748061744681205010984493797944217550844631357913770731686522200673700993954303632524360112325864127732092682971661484916439602291590007857010537096530980434512346767812175807613768921224982188789113975209816511268248592095470185137701913955641662757255439885566817930743407904824301649087301782102191620335245164625962508504196089212276418034894206063360023711988240864007232400483036397575302164843956656218817230882019562739026041839386325678873607506778629251076620941918570561990226572020221012224445155542343494533732236874121164371670709819415403074738593997848885227334114076792164591084189030996088514927877199993782585126151462637962642722534299870050325122114733756404560850364862686634050201482516377713858397848852078796198475013030890459172357327481267436512802393606547826691594754071036421035407138533223707530956003950811519804997584621524668232230582342362320659253578682776245914044398241695575631986918316860420756476762372739860858168957747821275732036170365735268986907026325689320094871541771436397104651868419747985428265370879769308688400955014106878051763070475427367152608617813071207034333885647902986866892822728935634714025344831331135368224314153726998661990092955967797878526934206938162171128021010463497570181745600496514788053855496817890551775104033033283564081619796247147745694474226449262858605103735915508632861510099407750939605126719908001756205854026243720082328821443226557160147245147432699904269866441885809843566924811636268344275792420079508377684492473069243675751054327680539455087399287598236095955211289606640652978446422735714009542732985165619266809413190767111077749246612611356129191157756538502931355765765205584064665129462863264566107213946974573264664866398221696955325998453932647123424721555047153654787876431599152847841475681957574653941780805051903493071066431226650069286453507192097382055587308719289656304675327660903391779172365619906569887585165932214324590587591005839661934890097084644999917512960841179572319188163149437646321572553970751775492184196530526393269206906966880240201719231643001196296350236840969358050398456571222953595922517585200069558349047585479283313253641485565527400912930018481682932691610249749308395317391565585749224333339794369224163628361430367504443472123129216983055133298379823048059282863573965618522450021931498426684520559878112093119591220657210547630654394873964934447116675537256512076937396580545181544128876735895426281138022048061902188718451595571739407200626484070016755760442639622535584713843537251190403115110197443820612455448186631932855944629369881189081317204082020972747992425414826492969080894658185834534200324758880397298582450687391465241187522964438879966506418463074901417034727107797886738354871463920652414425428270610740203053261703772722828267140717124515778098187030914975018508612907383956570845409547994632493945843784278041136348401070998212496036792386036398525924937091976009330391753623275735948814108621944161710847176979664420691679229617470618153831679959456854088702317350661377419180045573489857433654452749331220780945017180084130388748581016213473548043772962645892324541571654400542849713316305646883216848732655001038178113057574280550404932201253999128257594601082210827936470141245533668209003717770611644347773062652730983962727265036488590767707579073887203393430839658400834649057070636157017652191732496644501484507783139164882085102092316822700004249979635872436279994238433376651096092976477499186118619132908148726747279724324229093035550861712426561405544240691840194930742618311837793303549591716700644265469403079797462640513315475560250037105056909577799807047370009536227671526177148595289338138767886878634431414311474529066400165768966136848495937541049208086680873315304464678595841789135911576737968985818491658281037564500554030262199055000914170356849117394113242405751084413821993444141256456137863385155918933220843182643503299951743533054642933375576140268372201898111719869834971576249109024436094000701721976173072169214657665512905842358155895882090089174845519621284551750588905955046956091161550893818974009270278139987696738177557696919385012474595291232698264366510924541672619122145066414953781071708425186107820251069528280011335366407032658382033813756299147523628537576113737961174065176925705796926300496689152906007010698000417247203446788219639673716199321489140094417445443766407381227084743861777473002262734320732592193733912518566860397613278750583119782135174827600646297808491050652238807466535716313913365378874649640187255904044243432418608672988109258207026888421102009908977305649072584199292244165594887877189731405808536575265585380825096242774018482130518294871064736822063761639674826544643133952860938963814244483739194021554372498268945627587088071053582784954915591256451403633019233556703266568490847918269095660854293209576249541798034983511425949050151288194630510980996137722997557206721347742650740703733634462365532392765009958805188188260171505854334076288749682994513021410378655841633087359458693803330773217581313914690022457912847492337197896429916889413507069434372273158677825404993901507214639442562066218654256622784457819347796282088629477771578851958729841088559198224040716289152268602609341478922567281118686015167651943671672929041231379639474627815773837463599224458671552219674430905966603079795146640389536826317009609763576016253563290951027016485675123128866500737620096431575955149085686655756666092126021307421569720944164890040571627202075390143984265259223321268188181381806659617687566986340822067545611081876795289420324342362186575079017953405812572308712001212730293854431654397773670462084429924017573438135479560781907231995727678521751247814786551439445156788182765623337417342270329727284165490896010228834268684029526751335498196903107400229944310379014515161035762088077876119754213927702688670844187245034559791616666270954787134935837109902413087465251464063117237225636036188093327226562163905168388412595997827886585141997730567155395734646393399953747707070026860298754438098725645848279006731409199852125857733686348896874562915287056091688743718565515254527863477147549609444106804864028876706096345772021777703353063955405855744559790349009937417270227331211657841932641026115489656903430720299004266830424367327711675210629217429939238372182959714005627497187935295906286548725946569809124668251353213853508668306792685828987647904879363823523643143805322294574433237456668678586800143060051767405886748422922398858910680751651630908627418275914909285549066858157623863391963250551150990532853320541002590159187355281613285744500254950694402879459010635116538672526211934733873590798135885949402865355055047372429157868542371184666270110074268290878702717035293486270833255501129735282450558975929636132651152138913353359354373765053359025578219129310495325870666166318826812801789649640550982615427340508057589274460801840669537171889205398003947593288179395139144802692871910106092537534372728311395248452743879192724513142139267157899305490046109345862539283641471956921931082839281193264284703398969506657380609654808709023353087036188092013165775851334391399242270834892062516697592897054595694143176634188427962326527992433736687073489736582926261228431497278874313230617907360160434654194076579682680011423660646583004496603373518009112713449280395190032858458855839820842027764969538746921807086072784752857584601960871913358853175035501476432224239139590883563905573472409612588229043916769409586992358021065403598995834983236715584351359375356557873157122926521597031011332531876802421641822284261352061519464758601441092127577230386549828788111569420737111455945670639502548769452445161707534450033797973237592363084732890489103511858428918927006605061043514862934245665456845492955383496308246493976689131552826152667191109969254199165197137921319637104093169056138747179986553677599861809070088802609770722827115918334253678244224926547467856628351797535340124693752308190452243299991610779497338199021915977798377843734549859167884192222244157909010072085051573700367204867820214561894158628984603271810859749393019531193317183993752076392597214948359681908522106523250475893042033929440781575292503937422830588053880442742998326625278568682966232707738353597837513971991420288747330007051146504134787343607184727934904375557116169435287966359372942183773499916713652314031953078470732599462100229727203587000837994875572442129964716907722754891718094303311332394107882978821654782764765492899599642588689382061981743134351070484916743866519151074772385300670965052593664378934636374888788261799493398866024097705592544426995167605409954455898033603292265469807481298259624004896599633070681762334841883646829343943696935543854137613171184386351627297860566889409467656736349561820555899032252292524247816542267523561842785330135812018404038083379557815016368393828204616939287329624538009607936490102236444075294731555187710185144786372874268721612629761319603444957760327498784699044593379121711471188162685523485361488320840935638854384062812361536767346866181930345404897252450564856271043623291543705119819923901301683578015880603999340977658758554471713082362090584214198448491245866975327704306268766580711908616878112948752381907498297426703332784274508259601371836966561225558685924181030573519525657043843629049281790032931189509971010693452025140280822513569106033497730083875090720735364386686847012420386295584755470001845996601083174093144795403844172733505397688041216821909753026436121529949414531848159573324943968000712048656717890357525454634696940337591291747225237589526662120066609475552916758301045406559512297149927084432550944491707637699375553041161205129041229295296756830537959709193744131269880408972689924354126868138560397294183628861656721867600412788029781109508245505544272324217947373368190276786294085488867705041745738493231655207012656900197174522989757724798329104309440119594445614521404337834365827037554801664468514972941770842810926620767951486714639132221828916389704089950174813085293971940477370735091175154165193218416836152010280038674437639011932166945946645470101038404219683983581601403036697873716948590526983415374306764553260256114879500240306573464439513909752528295264274529220835923578938117139408753276098578824923680074912485441725328140837740618178177307239694950411054377492010917591361927224659069086193375476396507842295814066538845839292545561557682248600790978284817036954218167424677995882482967010654991798488120364116645774077676418681694182782925990913407230547195858008035768924838743401258526815173690684982418977837769976847011077138765080049154350875458962631026621400751229069163732682774381603999321531872593314510202639367146738099236458391318037645760360111982471176917009392508122433104010588203264492316574163430261920455687711187124514864809921565952145240888610105028803485679080068862448200400463727567730802990332400359899507385771960172347520718145290983561750013756762397627426383777625972442827808508564298549901137998505757518452396221303164548988204770397832733992613316168322543749369419874617502892255844979959946756772571422394723091762212128243110152099423661354203461654862038892782591081550127993464531953059857807516045950296320572442782211009317542988384258890106884819938278995783074209313306834292183636199613674758568553297523954193765151487243851416919872706375687123945118672936074488380287927415444249393516860542263188092841661524202273360578259793103329858986338381380211629799437939873565191773181604389415758715961405177952138049093726528929294555473637337185492818670748415451802880231620465873247216367891641253558672703448958712375167639719134564601081839711874414503927756663908489668966566150529211969842820251565333952613677974413126343442716994018071807336888293101205620553938915855564482728476745362057424236340682986768162766457723190203932966968425962164048791259324166791799603464196643319968909906804861840645003151314021789854988433542972987450755865027818961451220807206003180400859261331216454077126306654524419619024355939162372074584134124432202668552864024510118741872232671959158400020961501805638978200844351107608166848817120437533487433697394770632295584711311572434714030815447922501888644278548170890006738379245402417208972551537341119486956918624506286541579587952880400628429085782662395467677348227481734168794630542372449051359558262720776680922473858810470976451129947838115112663004269694287925512407478769522567480241426476329275532627048758683907074007547782256659556637190918335088551604781087738303206502153652542553796401780548987748982242954715489967986034161361068507535805255748407627880783095687933568799900044339036489887887416890239623421738025821207089484701147152094183262239794136521178821895268984720800935125333525713115687622665637150114113173778892388195893397993611191919271891497221443609291463703542199232256297860053550353882091869176783576741975151031433364469020349914059755238167032625418617556451627847166151425692598745903313901400368072955392661123523014702181930348187276457813256706629453133633066608352940691980939005175900735272327082019404397642693642688974236408463909704378243900713240556581982536543099277273365902067291058348723265855280727278033543416687200188132515171962671820369688575425092048438891747444869998560419974577357828171643364049229832545643182503170054620945925574681295583322115066286541034005147070856112448470131146621318182993307255808427432739849007875419493750651524011770127354650734048562916165362073870416625427828431824743968943201520486050598330241178120182074246289368151307472979686099089584778774109286027378225229568822604724311762386775933066575964440642635407937188791273401410632976477061062662771405052694580235089587799619973374967964188613058503773714680290469687263859548072425502188538688303316551169628281908869717307176845182416306418332996689601728700156763430954468696924764908875467194723938146857307540294441520861094361574579160106385784407927613812167733363114201988342126226796064321000196320269544972058824471301149663403781703029815920829744245034494761362969448675713585018066708742846409693443903243586696396224803610781120057689582462729976465512510026557017787919018801430103840491906010992738528041313754557449934773216490907996300121096575566782606233496322684260117470438624310359000585113196418010236189333932823694235993315799662987456973967142639165235227000887026825304165140363767083721645121534777704946508778466677547264953425559305802206795122133466886496300682278794193323757547824845297285649336018824649802003916953563082406524292542122942773246195969500953506452179048965949701984388373439625805632536080258619119087802030120908107657615943661442672912130142916617597772837015400119794301416190315592567350760555577492615922018150957605677963200050065467840944191144975674751388328023956387777240361742061169068559797251807108718184719702672369602718396102403149367318087282476251926977173890651873947098884431090426443069779874002357610941127614749597547320576358971752539915501782641486238090616744425537258348168431489907709170854023428235920895183105986926512253990336329597875317199936418254792907285995033485118666333730915268617966575989364582514346426929538121357821081837097341729876901408017037990739160929096599799828273316744920441553021120156107616716442032465742569155463822130946861775756313238575297346187898392652660515399829500451212768608112709602905386393696235003313746096168442685344991931818185261251181207469083331292881594047767999306497975076933645519475309895409448949926818768136060872446042187275128747842249794051359632228275562725879860324130789761764736616705765742498139910988285023486911915650147105975392735687076661503990857947685001013856089837819778264185713785686090873098094265125635688122203540694733890102691382727396130215571981661566066397994613672903716653778237776060633380604612631848347699753112171032230864735282662809812590543679867596389896418651514814390850210658042590950284387749668421579859016805778590982513741165947650829994600506697101070548009307128144111940129308316317137186930804745264299698685850891000203230543539809841727677330931890399127642648224548658809883038141309046096331261444626765230404971322568171494913082621351913470436956075440951140290357872742776974914339881362208023769000786340458383967283363212379380552778390044802658881895572123627340218797435057909301843088784191283329658318025871068241808174939316298552600969415059381171139299353824930096094743280956679253018201082124101744229148648287106629464143735293516580171133104617440381590093843265131677510052852530177062967731356196673476644453845098486726618708552753741251754138659580074483006425212558665862132242587518668771986144695479365784078937375610537322884460471374044339745110925538534743845391485522158768555517623353062980040081887015657164022512326780413300098789833920137240087957845431266086892405927737053248889212410725275936945917312977484767786455051871677157178461565160517469444276106213317130716203886741622973706968018659512153437018809032220559550695903198200281126905566036726519015508561858543373054884695692251051989274913468228792227366474135079236972159082415999214569975408119272790585408862864797859946758622559409368831074021213342022743963894544989126078870363292771840951567102345860201542078165028464221564898561631643408893573282195136095910109940016350757503363483487426843349742549252557718069052551967353810291866808112857656045500729620255571731054808469826444114193034301970804180820314556262571931826078935317446552075363488041678790367128444453415071806293264681244309533798234666327203034570986987683221717496627247994145803385055586443446193367418300774110164272039040923313073836896303683671831776711055765633369209173249724669949404389328296150217897119428130513991214562924143238430878026120942077187318598790674746837140871806151536278716135188792224617616469785412245642527620086244036707267683542043019207805026952309222526144362362733835195010609365897426723423264247919400406451560212821451614531408091659146596350579355327762815364981897879537059127550644972132447301421057167836351433290515745304561733291998461143066623529323736925439065001319066823886602021148659151424692176930851411896117671882716297542808042152909325148221834731742718754232656793973727041013994918750196530500088480807308163721931843201958882798293486446540995666767495429312610915758519721653551810078751473297657099830415400431954816903660097315368668756191034653607138097919269472912109676297189287091840959954368975687214507794232822385128134164465480110713884490107124240480740152286748937289241247920553334994895133024297533849345571382971823172928811253032333815968110266826417740268522859187463171208145894866772219242423302612741893652599718502163245598624336085884586917285522194525644789587563918963624680243176096309108145872747423217396464043020857113533072120965311953346420639862050003919546020294331236730219835207748422390800454693614691065833472956691161097372078589795529686830075484154769201761020584693332819112705245024043663138258412204673449192734069055569127108844657026042564765930307298733549928805370981189885693356895413907256673161246638329890546533591201034452635615629097175073888988589320949491116543311486684657649496439317556850554457781717044312742098837821254432244872871232103877861586316765062070201336149974022523372892325075230635600695348393956360571408648232327740304902450514060475361622651975372558545027558146827622029486689185424940250506507167975427315542331913918788343862548604229251662603291929795278978896690105187969489920670099963619213737060975953287499750122830485858559886606273922802169554391641631929219519408034716753306135624479120732890818899743687745005567113632655762484983023896773507408946537401102241782907506385698089728370456683978413460705052506250454385487205294758498200008922811707340815431128437441237117966255232979527832219640759933352155148376141708343644685394914005917395986556679356863341517206525999139115337380537012795834711258030686928709762020822633504129557067009828800340647225680226516642947499272327471788247143096552738745808347559443327494924084089250382220057914411394363969872598377702822846033237055699853165669663433606049094498373358787832653514115054501313053735098387918078842923736563191340610634017167344726043593330644941344154047459510894618903484307733419430608841843383503986504861055454545338836434550022084471157426859869489256270168057443122819032689672680580705559198327434895344243927371359370931272994188599750611488359108608221352964048839756430285848770146079101573446231069532968132561922062261778159398102665652863649299714642399774884948998476570916941885720471379323779372643473129726331346255411954853923047349217778685421983315850261817098181782050648909740846905293276162478846151457171783058870928287787759299982092540164100216984922886055033035191362904906087439063843451612595229783178707948617587003151784852687796928785066688182521331899101408545623003576577345475901473928100909186367051528889598421623731442006524171580879690695500235319947075812848796739976964146892946481750018494097414799886377106891549317228777943598825250857626738782386958482528648917069626479698180121848830857506492775952078784254087647178666545217984998588496744122250955989927344559892934860074710588817159944205764386353619279449529860221198467928496105841434155012593976752214376008921098750802345306637490639574764427705827450582458837657310549868903982434692717957328236373095387137713466313025078738369552828466342009322548149222781892195782243675172146267585935963383459161152283015863676803721505405249585157400022809242848965768214889154345156726817213264480818420440677460928397456899441904222804332821240847270199755872685440655980986662478025207042179528006335628867946059929381678830468641999151961739370278597284185031088497641103146165865879321170270627314651599511672291003799165700767287678449680760563913441890354508518042500367935827979476522698830160921406691163569858719943571599368556964118283944996937401331529042876650495846209491121119906587438426055777062960246035938468256578562721844761817852550495252043487540928724458189522891040812849178576175724471916535235201685929621621438931399248476022030432725877531789541361670239698785966072248226147125245310001274174195613720513186885352660936728678894074576423122224297403363881636753595209845181216388617965494180109950718953803536868817545909296549199553646417987233793960272781025882712140368910569589873350195534246529935871045870624257297965538157490328613544018692853521813744464280205640834533239167896076835144611247642607592062205233037377087559201827444459984830970131991406537523274406717121037519923059952554608206847605443866349590933886180986949255342595434433033595121973959619774761863796462190003835938778837379276940550276144201450795396143704946054550209433401083522032503771851435366748035753736952429416441757092090912545957353579185427026343810309064748874882497360699636331736361904705219137104896737559935030526614727854635926631989355705795080778835416861148092844248686867934602110289405540919221580362540767448316371119044153834449221650840315730316782824020021768758202220818823052395508892871385140606992320669066171309073803882607923352329376494063283544421456096646451023708247992950881674213837040156674219673310847889446410770880637823950004709181093568687232750966734724882545477659547821732179171654733926759240164590420641596360705352185915601137949794610691656289397708718404434328342328926219689064146332130393283375793414246296072947665328646335987947705722496353199426701031107270019953028128546848985775699477512426128342778914362358777860315994542404632046666134360358603066177671815046641817837271375535492371070330996611759221302747002385725960969948884453255992747544708880333281381856313547577793120705388204804570367650135387597490304553317933302251127748665699927053077511754328352222310153402502809416937720681410537434486837634212953218677788315149480558698238037849841544092967939698892923882443703854518695384756141944204270209998837553960662439536383108784694793544992986229266191308843853508045516115700598561531635967002141761205075029574168061283888704366427599624871468455869429602254377257721413638140965693852989483288421789616988178431734802356722914389803904887165824314482492608706929487399834625818206752254077186244485379956083381627370924385865295307041581548463905845611008984607709892300823281709341780213258059073350014778406765489882655829219713242617468881318639154947153117286528476794869355567193873225808317458569535194528192918077194887788416520662131009776094738846329843519053914405226519074596639785488379302578872675110662510788509326274477595375031066113950016605743928002843800023391116597098494660067248630797558657282400553710928791314408374382708117393768999072323039859704432974921178337693256108357202391633420747431231116153789050084378600757848570126867993888864530977953722734778106546979350858568469525639664669985828856276104311731951192171107902452027323320138447367437079578770745180953660320197711436583568547981206143499074871914285546029953280502323766351604204785794221872658505256506347478681701693259798505331598082765649178495260477235022571298362333612453214773439609536137289326777298817165980868671913043167652870107595566341916142263688694690347682569797828991706719848952420024256093093394600314177552346539414675529950150434613243584541206543156075214217807000747206788993920867566024078910269645406864247957130299166250674184005549019175964372219016952856605173968218765590464150442220486239216658154460320303085987327984711589854124527050614355198753940937736787676447730230383878012659169382020161606278896340076640704006552385875555702046121301622781741060696506116606128313343734564337655340047663218254767850992350156376290307094018170317135335221861153884167170066293611044666642466675841913550066679310927499222988652521884150751190545004440377548047077328806864663963890548436597092566186325995005432796708463855869781362674120051856365470788148352575889582030038951536758243842861844949612343456084367216509779384722429893501230011853949205155890331301022624661321850809949500978751968780638315431246583686273161614305743402051172207004322210415050109877725226872255746589206854557677119075949560303876761886018112796629985944296424877147335001394805084610474218705378273470559860410841685377451226212052494563894915401995839192463606001946468084343172279069998430997126799815108927805627250090389469485587984506695553981931551981334109487282670418636018605776891795047020186770752700980553480979427156593174992466354986327815848397693367182455501249328753779097036100730233513598878229178190363722524601832558350064800646446907116708216044551805918639767301878392406106308459572774477194265036452032777152946763949706657564399233513460138111193984787945197055019094652833294620483443307141968083965605315093920753037063156308433996379393716318671866455845713161062973476251388749267488185533686347687539201155634724517976160543378636716053454856100429877963716941153510886716831864641719571162171844937917409935573304447810170931007851631068773126531089520001146473726398285246845603181739679428610704683022913609622928370980659805363198421793562111952114280236282962487119080987869698972013956678257542345202487410484599668464880929970801064356511505746389168695723515798475288853168228111712880003969571994754014353412267787400067731772338106060519181425928297042009959494408490005842717604730251316213907237686930398565164340703275635557646572710488874534447004157743347681647200768948108570408163227650843068029220060590982461219223183264230872247313755048594077672799219439973545728489515812932127559301988293178361850040744507783109884146628338447189279407933598175908960937285072850243321311644986557031713744229080853283610861774935680388304500587211930727383233983983675938091119493376159113493985527305022208992229738628760119884488578613808312268981431108743820119295816497577816913079175415904482709288545324913160096003429156877544027125657711248652786900951765926343546854850946248080734520735252624577309121350429554301471882885381037820063128335480271394099129827074517645055032807055317737262471517934661396205678907267048314000646875365804615022127064120466686307949190225246694442585962245341343147072020561790643554564090295473241477103503715383397094258761267037039351838517070731324996786747856787699517895380222913070705582758372036325437143405100580255854902285344841314305796779770154471350171949155671221654348253951501006170989646537442089004831279623460894783632744103330662985199335162019096461450024779053949947146133972987325396304456327608953635030336671013505475631933764833057209315607725543920090669798626848120467478876019546856503492687612834358258711409625228790601627288941277471218813071267758033355943809851100375147593401694474042071421227014777483917304945782408494339814321913355676167991250062878328972531369451153284390012386860014818088029712068752878108754433403370479486887233089059275741630663139511392366063579620548962810626061198082659153363277242986300390255065451989275105062377355294551776993727619944409294187297115237524871703389196602037202325687762870316850449767516497040774725170907129200184488266049152770301615697878298461591850649054822079351470120633720418346565619393352869389741499919837158900803304813231193820619406485576783123202926190992165558891547614177659817140311201710697191452025145915370145521107345324704442261361512441256523328496807936342380769999989524092436959154744375189148711416807016861107319337313729275405519764147793894065332463233159681184487929572923762164813848729022482066335510570532126775381928838552963191914359952020256240579759584358337866212114753359318795434727661602229528538263665565014321467845441938721698568987637200399444084520395131305748076455150814355245976459468287656458447873706578091529868573233679349092710376041497255368674739324993134039782080802993694344733914514477814969803496058860086940087452243301841009992068402806556085543300102289109113820795734733021339365615751954097873378121267172544848795213729102548165905976105179846501475707093983238956988042028555852385382750633865736668727019760468272955963285829802926353793437806841423202684224526732462615356611308167070355521984602597662127976985476524021627496682642199780628670364097039297859108567549675578714672675004754308079265607682934669061462229253932373079616590330850435712872695976745058055129845932307636729654883714289772596713228864756892033170706245000243898990306911938837024516996029704271601567328146935991711972022144018366691947000086588090320943978358536175953324955794312847361281839499425394975463234179934674991793493133730945290191739318918648930557579535278577609618029162513308804375614969989230721427934722127744045867946637613432788791556342176012450849863945358354479483765697516516376348793039679481608503453547851112946883742509967114084908995531411159288898296123076128500558941403560580446408492678150933920381252061527170726712125197024402708020091958807251672889456370814561407868923314428094805786694455828113587661429920330869408115826757548645073973863559757426845160638757919763636273458435877836967884347176984088312395935578450089182155656627002722254034161092757060468102219260737610722013099508432114154111883007399533715053893542386084263644082530860763214906975701065798077217544103016320182081084585108749212379586336625751005364346438291023603237420551437920852232787521448733116213353050989703357535706318665475199518252926715954438390107532962499205087470696759514169157639918510877579302920589909363877830702246386072361964691419976654838968121357656825667078148795343512935200585588396440740681194274613015557204517669365066053203562421052758151635454794733472937647244440294698879408378778474234755494510460374173507412537995764337011767070061073681218210931721329246345260099899611578883743826352253482908751798986231634763180001168352960102881198729624323394320475267939767265937269592942490627885273503013335644077043307258339364367276574734951521610441906615021727490129740860920943781238358629036653538673177725342932971586721556328341734211800403092285735339327111876639631806407148476815433037989428810337389883030509854070657585509538161000666728143581608803872314192788599290229754365406543058446132895548982063856981996042290850357856474124654448976086955331459118290414864147501867646178832462815238422180292923433733367770585483659261161792258296204572099611910951094295171181880907494414752685328952083500272897974448547057269629721279642142739110200496416825582744618983828562856898781116960018597198330656854172254117371096766943900817751458552695335746836824829789634917799708718284807167141078427916033743013211045942226419195866823428535786846577169722128691157788601974069309699007218772270107731643633980612560063489227579117968589583130606734606436228363050004443960012352375834131006803853827313070381685478903514014554640405566622513870669353008480232996678439220326688490284084449873500891780035515423992980250942087351410104847390345117963863747540294857988355063302552485606942560336423628758533842629053052056417849009472520244120317565623248333690557065248034985398415508938720286321460267753677662040354043686960499215558611335457482978294851303031879609759961897151147581895135117192680013993692255504159060390359991712870114961240084850021634604813118074577703762332078200944925348262049966830340963468424503698336520745192557585452408014879651739586942230898253797693093517049618794227981348622058669321568918868147173481591039354067481497011063694719536808783901982658756551045296183510264816919521458193275865190505081789804395331963376333635369936958499366936195242222485057938466827774125020187286578549878033588657217934793491243830313995490917428450750873954090731657945049293985308968750805209787454301024671110162967334724539392313549280399146081186738747430063421829605229072122411545219927615939679635482487524389885635076988912804430981807786132782717348193864124710112140607316871812561416847272802839581317537934922316236035711031142973339985223579877210036302595745447416932911539333896824950313441458103590890375267145543810912938407767595619199089991306565627716027547345573567408795960411172860596517670581754102089076703949733759165119288015024737220803683729113410700949518516149204571714544420118439636744317802443723080039718001738335650279189606128503134673871433963245432507898484611576161357281285898985930888457660639368601947291998241802454653506212732110187312555723859115404721101085057624128080536451613442460034409865562193473231804938924375918053535848794275762293415079228583394363648558054249371876271213711596006710045402545087688792692079897439176641348871566624929934926575859604485155740948314205953934608717842240302346700741930091250145920740997836606347509798571996389596240682548172520056927335093788819006490850131719644100051483240411584500647058008358644177471247324948565207961903011657947199042789147906183433853054230050637383834416639035575395456420948359833955439678659627246244994122421790061816698051141281662778026709499325284676269141922525966477322023357112731208799569222346400468013817571493176674718957837157819008988669007668721265984479329953713616045588476913123493589590746987278949727532515057987866255874576887114435076469812205493842602608053433700991993422446823226850258341170537886039679073541595816257522066776975443747662509922573912972729418668118132993305842696124904718585127003002491731484643991392757271097570673792674922663645797522774660800844175276633824041988802636284751050068943885911356379069408835643915021338760962311750175235827187666446577376762255460009969055782916714502526222964336009198642382889081324486952444946464597160892369682835986823065307315187286798520716334153659858342480945600745782177169263467949295497152775436092390586554566527512498073149547061675229796328526947824873611661734704218261605835577575979932711531031734224310143776468915045322527421199710402731101070036960374558561816642860466224958387972841974159991985779525927601558931544495204683023241714568670752411983955660402764919840456749816840727408757632613978788393339842933318614827578858518055223902496394992494420696109635030850826071619274907572594645742340956056087610636578551440879964200188040967684851742106104177263305043443782188983566149828118282287650916885595044603079561183269432243109351338286429964910818997383859645136479939478457895358330090290954138107853872588298528571788754226955763512574862292347410235918036017077805368251249275073153362764294901528720418773573223129894234428286126454002278999596287397437668976317346630560309028366895910369301678552473199070366445723746140779130122700290006344522833714694631453247204307209737883597086799875580550296306364007700086892967561667103869256240068247849806509750133606289745384079678905770247036162514906416630142906726504800563441544655185451000109890073408434579801941720236694639261672154018326929686067636355378908937774896325003899414336344383831271587067315318695492669488357428765689159912308866061356448164379850025036044388185227598606845984636961186312933517956607618042128295064893592762858640087107188753799752486746610185864989798557599410723970199210679264894120564332322099381634651931689696297682052602005517419309512071859052198921981685175896470299320708315569424370839922115130965596368226101106392563649389931936561316253435707930785489796423645733338849179303148995095990647153850646834933451867166527375189440536463178628864192064419861067348376715004663400362123228055545114279595756144062368649035320723960744447594953732708156677630127599229070572850735255774039244196704436936668347964965615781943006990064813216417209173929508041234772320195304255474573387027865904611693089779197930267257692551786795585094469188579617025591819301142565181647694730685249630875748479646837913047307967395651190945007484527946233341760339847252553879745608145152542224876695828491859557546313267805908450906012909913416538704308423401670340941681773534922900412962418305312132176309426816759205501469550623694017847111799036471230955877627373210070987150497981800916185144791751805755731132375081596953220037299873710572904125344417565222107335547693403560726006010337791623150887207022898429358786394923894192053914902317375715554447111488530223995274002321611600354625291244522039441112162379758080103229782797528664281835174226947040754396374697309108735913494167589727246930256734173199568424849365908871502614061155915990250465580790696392001108473278945356260316553776736206101634135505370269987811299818368260212463053763655930934040480248432102100192176656755988443031259714974845022141141483398506471487039465459318532704236187772552442222373488439229821385899393200442687047362335741085952678685885338857318855783435197738907732922188766154714721268515609887262749716243160798846723460093901677009777131850451216418644244507536130388989122917272951362248177004816939229146750263546950229674952962657912925180050483662152349928234589515084132305287823309257165999500841997527657985941183869882735338083639654492709458818643013081641459054107310047163744980652320716838174678732413868915160800731210963747184484206567692588408537578801108808140141575501314073825605171241157299199785448147373578289095947030965248861014427359279263189523590860867280557857996461073409859296088607399484150679668126922794405426880508131598306380648787819169539529596488304270394595318065289287874557851866807805331764620721518138725236064005506138404681646101472852858664922320139877931733311701495324615590913297913336311543183547369212166608486713044292295822649562092935885513372100005339048741931683269446091542965736663536981852996708728001905775776784546314178100207620062737254323374978368834985005866453445763384547653893509078375442682143039475564088984954201830806215625786776382055197601349092773946093042748915486258633879676141368969290675664539821264684743757138012701339802900757793232114775181441411135810016644568596037249005059106993087412798481110332239210972691735183331205951804805075607815080736133437103395213392245283296027823797078415794960988666097919861794378465705409367076830492131130118589151942879510272328712035895064039667898499625323359459515473278393381458273853371696593141562460185029586396684597053494931353887149415807041640816684839820410471849314663434401780252931570521528085647806870801780922812717677144097493577533923544055025724351759975589423887751128213673051565222816717722808410091688979121235735176929553079061704363838979888367303237229852551166904962606240195308999301500072478839174074269490185049646835588478583233647177723563759095516717600309872677180893483093992120109184962851893494239899544347400306723318093172266998158294589826085998668945468225979883436493435157600748071553622878452744923876070397052632399329878201888575081045517124089617224844184378880384016302467002515819094914288157858587609377327375601033720357511604753447864817425169012053898239171733411463822369862847076517108040728490928471681856812963431803898072360887434592037697968866622516244505891461964702906026728615425086724566301745972225848722402700020781384514155831328949388117932462493606505135979430065977090693761913083458249035745262345340540854272358691859333467861073161365399363639093785581470608309735104646851068963196309212385899329289659708543059099601243264356710005623111464257966211700922232893864418654429583658236358971405810145595808422113994645710871566067867900593900823331764573788312812435061606025980356046887962073084407099391584105282736865566715390735473741540140420057647838621522656077483696797322542320488102765799114503154337534901428496551122624684743115581743637589729535518184584107845678977380230205517750106108315160296585880094207306842473468566008600699223869265790629590051505181428085031223178334297132720189665103715357714150681244666480820326803185399636107508817519487898046687659220671210419172288684259208756080338068534760532601316462838292617831393145461082210789047608422058542429097965095147156203639830927943609368873372138493619477126661895797023171018863619357166984284762040819429636715961296472708972775384510837741795474370374699795367447639200485623051579449524497104574248423277934192514495950854084584527395666442500242916418855959758197139323328286558176459684242865505464226037992382563872155912761044903767716482821637156091143246338354958339450937736895387607585023208972209775699120906513579823863346153852608995837757020206719491008251965886370104324203344880688305404682424327857227939551359361458571378714283122611369712883712084602556488147158251313254111958406120518334631522148326236203538727183962271253032087306146318589930119116313737432970378772133987440577774485947016379685874777513869636116239135378824569885942352326330916641281699191530396290033001362928236514444693892372293858475208742612541713338568487545185908892038193902230933493516309793644977921947621888353627483538384955021919539721117008812928451231720941461501681530109019671614556326413452291471895238047467487948702624842812245313146856398052618900753785767249720567535689295092796873438784805806013741181294906023616698328726734746597918475443807559696803191775719909758023492160144526804497411816344067251433390064178053190751681159502664236347326071118440193621439191259090379589884395061840963536252691426265162580040445411366833395240408959928843346791333882448003493366854762173014214690890536152872508034220331255054345771611320267245364697081622102081383902658173657271993052026395556973816152174537003782683529567355503018128573539463734185952441610676097953491985702233208746319139853309144897737217733362695454953855865481806516356548091466207491300973486697695945448788229901657252934297010753605575106918089363634669607355506964253339720045866214875006563005358843929547600691649255797440840480052134246849817086874114896343500433270712441893200986063467846549595784117524821229463224217457566102575598330378681682614816412236799791494484027535112920344621944542022097655151955684963911494162013843617849342836905184880842018774225810273761920169642352453896203154902420105102113122912938238998548538641735708627722050749021240135726690345974918689068028989823795633807081857684829704090036353825391720037912414547124294528779597415999345398385272596351608959125021091335563271069914883824991667007751068269780777255625811753188639666393897180729402392591705623536378365285803337086941055870531499347291952577659041546965599694649844432513073955901585653117891801524898784068985204373776833114599628451852302888378913607290229113010092109275865251909706831801311916704562196088225112232630701172511031186339566630931909880083460742171183226108644028779838832940085160239341254073839371665602244158863127026785977966078350636029533321010521312958301579174599274002433941722094811972351051166092900730068153423219956728084527373778167899555050148989013299089081969136862519558075844131711927509865744469280387873965348849781124290296698716319616489517598472886766838771900723533391337767734938451448409961398907434516881149102133063313812215016195639700452021594367485972291983959701736831886498959889258669464611242588487295479299982685153883063369144181301413559239428018464280482176422503052185227563627151926815475696162947451212418846768956286479917222019382082004238549444604274072823652535979863347169312423649420012108323219025733184332164316770479456966606619576475288923177664429763337803572818952821057312276837195894969478933378656426326038871056102741498701457005719087911278183951490946591612993846767038559638584321787282726477976321142246004777851417849707955804270429150583878114942598503818028856351186598207275218452442821688238395236202804801230037471727367830333016516593840898458625924409912645393556770436433080146630677894464329194150961763492912445432006556711746719986160291467741310725562458387109860979528318387936987824107677573474781044352865313129660049987141718178255648742134309623448858634734177444498712773304539801556075193795377232205777379892346269041028653112083949547117402519975361410454815842759649215988699618348304765360404387169614011165448477572559046703182076761597399771697778284121871624437439591717184969402476701996818894260171764748885516660151024924378008367568619241992246114486194237405042936092907257784007038724327555614852806766070186105971137353621908607428755922786160006834510108096619774475414684398875253715520908351217502647393551390591147161520496022270690665469399058468634839382448070327655120066830109509744918379072677564522119946044819666780971919931062904282894878280650985237104709562915060970543799567271371302561079914597820769201550543456253243519968725457490099870984103029924580611825946890510842952904856914703971571098175096679439160832679771042980153593723028230025135463519833331329706048871208656401578256081882618603594727827380471989677464371051395961861637704813565618110643289703299738123657005595660858962344628491076608981322574752663709720490511945356133774069419455156299488688716083563280276638959887141220822188517439003973806482750963237798414925738695854475819728150879381325793935940817966771637600684583621602604300352574988289695940587090914929717561899735938299478688718285946684721240768250493145094243562615150318610275974651827083023213555422778920663594419028701631160739464831055279704298596203839597898891044196999987607673116685718921033343757816272866062669131132283495068935466911449549393278073346289216850288406803408832437510865823650322461514771887351849715168435589931013726637229268247682195464836637717310032960580429475721981430504658506396363597748223495658309082858016380593893105231337696599590999390127262704412977345306318482488754527943394732420113454114232791117940328286606936672807943169057982618368029150559349155987938711661289868314816976589924053268127109051062902745832432536744819756214677982918824782274735249498440642556025300050357443765580498691157793850056573012912230870232010503973859474837164665986088091906037804720812262307485225605375666538421807243863472264891754668811651608009553140465987838663298190424525468269025704051873627758500783957439538405056661909080808959510088444990058537196840242844853108899923700614169938341678569344117138843974453049544582955193106338656623794462391908499270007458489861753855943557449147880372298012384255491828984075193464357099043204404858822495231174995522290540102063446902088249647013812512137457045981898352392374217142019543917959839139883092541314311393121742508464508401393499916549284690075006197599269909876812134324049219283364332774381168015293993284606879779655166988866546115590786746508951667833530314713308758124696117302687165062268080061016291440987867045740581074705272372828078714922475300431055514920483523203228877908546486732282199559417433491609154377931761972802659674333824166386233892455566085782813347926679417283496447941798894667588185067102665573115128441750505967493388426707734348535191893488800071873206889746672594363141984684130248835248028493161146083839118613010137332339683012382893639482706765122727263827114008320961001253980813073696857080414698777813665055341168484243141250695207518662122539261543035656388454825316141297103122274561544007773764436088913029554383990524844577224610869696778409964582347857055389375618695920900833601432319961356890609706192774155654987052230666994753575152579590222368474810499086288862369768900166414570321915173782101234890965249254956031662365650423079539515787986834374988375170317631773462120821710227123182874588347287899177305677560721207043017866449905155738168081228305184943703169898964707592783085078822988855642579161425536582374583251229637875617015804640965667030712444122925180302291164580382087910833139980219322595739074292035210464760259761327994132773282363325123298069603288590832508546151598611674626137874530479588130609871579203060749017598792300060597278022766211348154134809975700195661844539412328150308643761707332594827028720691601797076497293591832316652242887708057276614548283189122470886856790097806311130588681799895994794223232086971557685593456334844426940363635094010512921496096735766594713466891821272167692701067166179107004655980037638034518380947156853673462801345837745112533485673931535197743137322857949025687937166286907034572359463779003892103256781500387054818835842513362653400608868391050078998911633176229622274418087082581043619373005535839166798134740472269063643332165916336194826139474207559237857349324779623994529111905669271111111581646989059981937847961378967947134017254330109743927169800334922478991551975383779876099954824742293809694828273820732021856081100217240758341884573377536081780215918946805090191008052699720921893393212708952841669747225440065718620508420884330000617445741121631763099103329937317989659828033088962877107439706198861327235385185629305861020133141011023065889695625416075236910327981420418794800631890113539930063661526837195698379360752328101145262598892509142031762647905599510473785432772431411904733241582793253722739937863809448672843301794380946817298699650626304816663185562376364706895799316090271215692025736498245195729280353307321330942775931918198924758157467669015654184048248689079731258769246537240502838627965199489790425924510362835718431127445410703736821013598548056255099770779573863288409570106879353018380586530823464022423725940905909626198064260207743865201947026589385479211108636385573280088271314833516735381544918367995587503294500846922742992052189903798037940826680580059693965319697949377886432685771546661194874237427810823536939155871408417418742830264399737547640203409696705252518695653661007116640348176704389861262037842579507439170426957387639393749939284074676817674108192675658098128428012014155274565502296802689095206524377760072184687618730207942698399333485883085562054913160979135256363584640783844220967154101652004877378628741321786586403860472475511631803548380081523383609375151253003934120224846681823836170060204789257536111556642047559535623256920466435950472525711553037339102924245515643792418075191778183226858645052368350230066507241589094338446156962192637606579786369092160190485238345650783544511825869132999857608292563040826525934651071221946247154393058574918090152684225368354845637457559900288552577314402127186536163086429428520376452694818299431601197017344407427578616377630652528368972551254552709748289605112740634093121212084396664181030287616046623751668888118404083260816931156772404750951060857381449919323163005134496909934080506245421070994083229208251123202897210976103504045447165809697853068504801600540880816789340813520918685425816643591855180950800653847814239779468842734284743255969879945762625521705063744740406129835611222316183091722519792012563521268776849868860582745248922529720204186954906163710069917959701760490453089457698769582581414850788942428897820083751540284292037758034843026334292630429963452586588613170685808312699057629200664578842337386978814002580713611812264853802093549940327083467606535278473465372130475891374672249105276879908433774597915729309905785682576053597243197718730338731344797169133844994260354642690855434303524280377769631983606587224177157338243033989977936484921814453304540191306178785068471164209239594167124022954133571480954315669779043867714087751493643970310597687717498499748759141748171377343124396759812770206658327117187219267359687074568860333696424699430051988551108058668059872572835391964105013918127793613198835367896510941677088886913122300783604667492272205149698863493543918203317853201967062621468548073644528191699961926607521322452912865886886365059922375647227159064853516107030966181425388112389669011312632134211458883991171827437965094480172768700424546331976199265099314528625066989516437907546655812061460535350761415219901458998645376963524669752388692434333623164225304843233261465669300769151233473946784727186144516235341940269180235429236795319967909777700029044219586880693101891832356922063692131068002052875150870664477534808741626476890683709106739132263689134308728180229764653040332964534335725871950902472679850283327332055619773972688006003136640524345123389793094655034975991195711606277801206304644236964194957517741837005602961074835878593846943298231862893820342587143560088685708762167202305882857893161340199278188143148603656781027159315555168235049005655266461475817392448047455314884076454307881045679971290686792179194005828671543566168616430279457523111055324651641103753055232625771964941026470785374267009913666359638560004467929765752758430765432895174970703069858561422090112144231672069106339500998270691179760625164283798586763206963759050740496681359524795767440344904157509981702925820644782974786428920511578690719245019585147117937868090840158524344381236582823969739577192331249889125234242067272492521720356470087390774171411286738522272375508127758668558047578195389902418701751628411059870611607308536208844849338322673957797491891697066005931700284420068351921725994927904740148112737807387935684678550244744125530569903292383813737489354844898361729989600838777514933109249184464164380113686859466931804033770050958076364099461475371768213667818915179091387393958876420091702438816122955834965927949123182286520454917919283642142268135453297121946120463531419408724613499938684973920587475803698042092949344738149925299516585483987333146888176901298702154435430149334330277272625473551874217179024009832634450993481257326125623988223975860650020980416527515034267013580976937513672022759430432950465607433777199770627301705096523765014395823144544139950973125579371794018215848233187597708202181892435376275823272379311887652120746800664786796222749473168878531254639936454471878269636051147059552098112760453688149728271418413160770670938814418013334745197504375549264102291100683577306298546235173474278238322025288173535494986581137476155565101539540686777624326541688838323039750908725801142470978132529967180740245004106148886934337397604029910805127141080051481673831441619770859344882145786258320346574795020151818390756028571317105411018876778758042704894222025137439148256968798123199003604592462079750291466281943522622479504262055918191882106026992117109084862337700346137622432737429463094155824348491671040575319534603235570576552067951562424688819808410336542764984716440616298272629607074008678201927858020788545213340755572184348120691536880229104501518391199132937862597086132187538373758115505356600220893958046154594567416672331083429293286716382169615657655212249230460607008674399151877578976978774819381002578409073197792094658442694142227159582261584812146251123779985119371996824344738882577917535304295083204134963166686351199068439684277159734996473540565466019227247815869389616104811038729033803665950380026476643301585424619756865880883797022103411786825748911218908437043697161102619664853059925884651941345455554512224862936520638591709631940498921955304689534154709789020642339735210567948578214426638519619129263944564698847028475419300860571200608022113039883972608275272220237610258160077241507398219397564530974307068097812669977357498960208398615187408007032079735056242696157796366139147905399498090856400731081214705301665770335296743724279742161441089450199433032244804098333291595785968338429299782620529811644397805760497870140700525996701574091684121725493669785042109479867250016323468391201236528523153295166498315227820812780081521625873333523789126816201365150661217399641149556738081782257353187713107016812182569674604474439338545661507504780211321739707481232604078370947170125495996061241381281256541715257177224454121268569335781580229275474156172051124005249025139693653815076729449959430123141161786533463683340470070524832741759219688671720479088886974690476998001454093655833178338405800539901168946438137647373993808844837661838149430841925832386302253957625138539312212680462420023548116671809459982084944546453740264093882956387208108582502497446252083126391425116005954439629863319413047598023737387618228847814378019284810415883611691693209196126222922565340996285372282944792686644797200521436381817602415823008948946118441221387848958849551258936286300807195161742098683833038955721135376793605221118907447229139032676292058026015278774419466787928577816597307010117332076761641642868728998094411513224432816753379584470924794088710003304657076730947643864442235406075465441276212124173126299485140038305981696336950412388205059178216494167089322294785999836427711442055393716593598693486889041471470741983313839674867886608979291747957110865601960471447379680913678332957799436154745483386744364630282253592487410916966511414245910729670968241226678586831694919104282631026673307087681828500249661718092670137406799767888004322486517413233030007637255667132407646277082125273920949887881331213240633202423267609773726583907195490777537175946530528115040125702596758671368270876084177121732455995349420166602157768077141893751170532783457148851614969216953475975942056957304658315949663730068400111278376761381214001483043730592040592032594834124103189310359340320549372901624117781097327800828735302688012184568460007795712404522518235876845922620559323511996163828710639703587839772123763570365399036352504631863418569370044453487793928517050500156738417860434531792818282740117260330998748906393695810402349669363157010315909308645306782923546453118542890034565036811239534784863842584530035439156890240442903343994103232689083502811089652151909888153002513403955167388052194374997219077732626175707641623084415970099591836362906227985633787806672971238680527586324027906564530265641456732848410669633167357519016219918011376511697452781853646331916508988174441538878122926794109455790240339500867489143426976047544701094311832235335551492577343455558069590064730105957932141280643338118641325904239966330034960677307945219419979124868459352412898483675397076345334813334979291389693380965668706980569126403165528621005793707847956875182229809067300948813524372208670357756072112559476121708416737081077990369925628697105806264779861410783890088039776027122336703476913792842210978695878788299273377364858436766445637289347822447284235387662409441810103618164845328450191822250031877065187745863231837183885759685269155271971827218114879400252628087502136381029331109276067530450327364447485376015764782516362708346443686542534228737230404137069586243983589755134984102994294281672751600257184496686025865858235625544295197970504637373823811965318056098028838549462731696590671103182122200173414652063426363376610916817002195984076976430726484948238657548856370675759585422889046910590993780876564222493794236973937812681309013895218687579207435489366789800657195603445537930529811955768300494973785329923852529977103495624635486712426163496273434815338268674500987398144936024485342851114307127655507947930377079081894114168289766631437234686693534305763927397390240214234132799767255487832127216711336707229065540321332883118411941902481591484788297291540405112063255293586633847003143600901832174764575538993654692272750603288670406800726096600320054910164228383309124609523777458218586210684203158737287341982326863286389258764740239444978563249277000972029084596904920242345482330183444703834500386504762312878766419250634962346539351730354220227870421261731134412006484118374279470285138758218119662195593063702987741604877615948400194444296522823048058867386446203090327300389047969655492360662113847320417787350796882174130255682329333477616935755154524083635045331984104199263608286295503560695444117232489374119969181448980097923128513402191058717223014223353190911633168554540832103222081116872903494897705317521394316823037797373667569130849236882664345699232612622610991513859537823418128947846051450768812590656795658844897029674270005446637995746618363304461533578156280124097057356098227461965167789137242070684483039819667403849383541352305925588493614561816742890779310095260769410651339412179784268894444245929266992673266287140209254850736462735769455007639811443611959334899767352941760648204148228853213415640191470571600844694569080717291140952812718500910251132664424064324469565449354252954552185185338331392719385973428169884103060301922541508674210708133458573949371665612818666504977026142059074086736833972059666974485720546587521220882373182729193547071849013945847375992290403700854834526259448542073377451539135095145026140783892464164002329903874212256161310506506380521091570316323747312914597147857570466801417092885209992735688994622777862308962209611591699668539687607011964006530379293333429023560633453200568090021196262946789933974433229063631502498645354253481339696038254165371088861946799084541931533044056424858263108476723663610769421627876675540171947345836953095161245190579980912078667161955254797472119175678714229663122281270435593274391860148783965745466093445776979590424680827599147264327674098697127370011832755753894386189231616223585264135519231854754930234259127793140186167501948119288836652292649890505847523202888809796629239879755188681201007041099419366361421237021316883897528645546687707768422183719051109155993274433914896168054410325789986678934541042613933299003207726267342841406492597629916265051338361717379558905802108500682506909559033982341746103351880534294026026212264590248490184498747457674673443903473269151198380005440427004635791730333121608451370238984283194345248556767344170756291048048880503283266370378768326428110440178977803916313602029805397268833633525953247295930930769013854261959154338220909477646280662645402688015357213296153582975312675536837615921875102930277861926230270894476628262708525913114654525082060409046919716932844138972730497234721851732934080687746099250074741380354101910758655541085526619223970381802565632636427223900520198741596060013373984369685156669987329325042030827059194608606827810887103227394980287477837981411205257548039289815986940523743945538306753144171895125654654692689105390837092342111712834913091304082859750222490796319901062596167585132342624842251375159840036838748284001609067789666550121375331224694923957848533406829682702197023562269154235956253496853207396164801472034953709565495961149262690598714422827359787025986195251600402179272168088877471509937971661732589510805572278455369102849627588598491490377425991121760703716196023727682102602207616865609694019864860641424231030666954432380220045840767474140059923770125042875584872905301248346345093606145873430682564655384955807975262639804973966351323686077411559809393339022158179603421376876412408847433600836162983516956092805694609242477946453356716079779855242821067507142498005415210473716555996152604950057026277584839646352540899701291098352486685771029950306340154716801727813423277263617222725921024868385168597272700690239252236794014581201020886926009657854479451331938355693614996251678623341029258538998492818826737532536693652536799477541384325492334764348046003687921750921372445531934527977757550658802173264112323246851803894472806580783075372157435966784563045483784857310302537249900412830450236354504467606223721916773125171733087458209434955181216754402565097121810367973549897079472418375184287607834048309727804248625122938196557259904385734193149845904852078885069973102224060871990603205065339216597617915439580791194457454277320019254875225018585474448896342979199605339647799182490380336850611323503993038572524167576887081259192306852047500954137701158086786952785320180346872056303535015024726259929095782863100698325890568977633203770154168186792459284611855201114740839888232561081924693562953886327788518923772967034232183883102126465944086805990655204309506501218448848844013273670684636213113172357203729114240579320683634028028978471178379704509016791099363493079490945336256271212587295813959893288652314149137255965468822199557187848204318218045620723504348311256037865715418946692269033141984399811635560019968450981889847284696633774046868645194668515169624008847938422085986137275990768326168533759151920636341398661651918619560394297608492364567193752069732345465350119645155420752596700404019736666343060299107563222236874354743024990696766618954340274776884857699257247666440532477971099759924973322976284880974144207245994929924381888435688004662090951633222847359534003367724658957440597795002200547609748379758954497999261675034974320135117596258510369753799914765338390839657809235495123438501404789871797490812762138043754094270127872514090814005094950687150549078454587297303907932010846151990031269660418083621117656933278871913425807782163074758219469653106533701642392066678362082319720896442139593425734650046925556282832382137333867163064891479401460148019538556684627107395754816783405483585805816398888135918347935782889618203539009855254792513223063541502440337510536772353822380212866778050917188371983820859640831012798131758840592243214682502559804244756633809710300471214124039519920910496178039375013663784262504304576314942133514331902589691314324516944073161905571156195268860009916613306455879143243725967880478792591621111455204149301475355412297194247801098680724063690223323653480917741095413513612126128474076083872028143695586418323323203226503344552267906843647558157184647954164627640245310385130278057140634487544745668847988948035119981360863507990231090816172740013143108723340043575881295317238664410220779169093307148589603376653726765716720390808991991816883742921777699945338069175917860707043734490311581418076404953037646951439556639393012831710518517755830997162191074032883667864114886568681228235905257825530633540650379724846261907670086547474072124601915811095673530420482440418863496083893073627860184173684813143391066390117887450929981274431413151569243541503259355445551463567706710352515009777523997243371249149141743601787337061960908858256818124623268766088344714513428410001423030926615060525620890330082821619595277470256999190701536058243653016540333075162764678727549642955713034098373257035926793616205766731313758545728097195100113124986021041935605169843676109713483801347718288473824445174769547096864025412473913253061116899248808935955051706779724023934568242346335797292002021133278075610596636503713638365024066896312695428705428923857360854452920003318561341540259258111602629513697234393880419922846492101936117996168530082154228060660933075213019745961892392166870405353906459996622293298274312860772191257334583956437215745858031457459815465887973985855415526863478865398544348842342838896753466288586111645065844574529083036473195658433223004201243567749094203378363356052839860239024337906395352275308539131113365820888290187780386024680161892895538539571829677475039198608693886945422716916295010636200612006419672119351879621275643322597740452930197299231842369145200536700540273849509024707911436472316335396397658490175499310605074428447886455989085008460079791475351348812039620208251216501222140833157623475951169834723954606394187986628072149738583740692037808279304549483351603431430417795156858643087693110811282777587892286817372259889447844785292091767983955358304619973493212928190036131407059350084428610646573901634779570294804531876282040961918944821766670179708959003076431999248903622555563961234960266896016653140944782413210814556561717170879068004353692356479225025432790732795639285020041986013225874885630859622092536069969538862970000698103505751108287449172970711750869606055251456484304441676228078903433098724129428935451265299987842653066671492643726784952272511238420003449940829710246447980647877258894673424627460026698920226801560840435636529266891935207115337980072451256675403895028421011978308714498973965353310701762261376526015839251439963782992933498916285102063600824593495978076470505793223228218804010196288751848890102390865830649773761325236196489134585960983530095457926568764774494217228478543924893727411450010835306655988488566728242468590089147511936917790877629444807921996425322649894782607668671079665604573667003597004726118247972888597413965665867023189650664149389744541146562388275975523343258802648579238265203552461687758633543184892799055044143441740062193377426089589014196231146413962052348066919727002201960560205344568988373994433426224878041634931719944801280600273241955918426231697597190500834161016535693397075022395565140679801966316002660970967640700741161204664427914461224158742167257030777994003471386044064088166718723303807462217668752791259053269541090842327891974943188177862681314224201048924518486567233107067204571761151087058586302908653110156858775196819735073656008172458276262327472306081502642184086727926521815580207210087061850652312478251367672468608803694670366734067599419584708678318665666890460869879602985407722164035193540279100258783541380052160673817443677200896433560396985042876018413261940411267894793798267754222533856663986054645102073615373640725383495875991607189252161941107256102168643734735070237145342919032693390022095401746852824290496917634586577617064045476841170226370610979233175096183676956242080484646114790198218686983909793120769145863418151970144619485297333930258986067068263988124869230094590604742849565255485352337003124223944791405112446272501664858324124506689881196857335930050088134911844959779977056616729400746419355284937648301395660165514910729538598767469691668007777710035778599879188617438106395381205404598878354269952975530064267035092697064539914747978303912452121175051600451729375287251471933352426407589571645093304557639167500138425810274753813517823770052369542580149537429008025333346600731528746595409203690240805503778041450925099225595253373701302350877999178802058095305875419202846893859552213371936489423435678877620963364315374092479553155124127772290002842746864771585873614930632634789173125289928198005367068779795936714154477643391264861748685630417973236838029972342694109039913419261123115193325165926897095712123089205196630839096052064520084182604525115668563620378810288744432569042975047379449333098650433474043561044982334535215293056513715101010309648000731266119327687213905088622195576808993261872398209681044499501202392827358186829280843413329989317372467400847810291789876814909168670657065299064852681226889462881667230605022436627175582691599980572343682943408816970413338121125427027339847542249351479152856166004689755621016649663506680787618956689490753554354967972079772011447392493327061507606985162137671324743547754791863364747094684161089033775186392740156767644381193955838486036573997029497239624592862976331764159385403185866343945567848646359520672496520659845706899049467293571757979263318998005285395997001440810399814471695508524376339757448222363911927718981161502844533991392225299542650518272005560603258727464885014005485758467669659877310266939143207403846825529032511475980587059099552570667748681484698812115600864228515198096732573096779618716294727766589275547437284141194170856888005093382985799872578757385619992628117064366272717121595091454921814638747734520602818379161296873186922843392947298671923090433930751148666882245530704623034662430136465424180551685902579574948803680743300065996245403074646680934283861632533756025863986794365637839097500370797447338492536934909211762947827232194284058246523568066641302928461684359725854204816317716681312016184246696854607386410312585380216016381799728487700062088531667967320146796505265664993077609038238684755070574103548095058166919301256256203738358853284339939204091629539128584837535496888238664000253161358747217421136331671248793209374685443647223486008376010832913755725633967286915065255112483411647946115557853067280886560591377503865146414849089469438360301134195812533135957633860774224542553308186908846162875675533099745304397159074800027064655902101971282797779820036424958420431638981910186126305153064063685379039784383059496432139670277298857569706509856745256140825063358316395195062950314134941874271032150343298596206575161298390408344572127456780193943244614316644743636074219014922454533782305174835540017192679618333478893708171086079252046078644891354919511198933229948779402226437679305297757952244915747076579507192030277831639706936271897804520455189088362090886552008730193706435781304411383233907581632582266995721783114118465850127502785117012964328755049486764785314523275270766354673549935991549634822315555781940895165839842515816958418469376500430005945370842504075829921963825082041015262205190230731577185371572810370780718950521786583548927559170292897591241893105684049360596090554215281101955867766098199892257766716270023935123352377068108179514707628846329295044667997925898302827876118039885489334016590982180217218647449689437812105095562532612578744594668676547869824640133228296723616060080026646265996778623480837102171214732831326642430308628804052029004113603226730333658097964580613535999157312027876708539716637735511886278714410278174181238351358741797758608660610121060482455145970989553785775116284817091050279101913999342890140574369068273698918450077181278727857803880176003758125154876280426309162340912779724633880172494236220217277979128860201011329923913242673717059863711850939403619927673189828532264009440231827283634483923737684456223076105129402438564774316009429171798035463342317755392049331631669297259389161625262207135227815168766443517882401252759348952336527773932855992676597366192890040180164099865439564736489918397391054364544434711276015628251197840770327949939307611620236707109797173243854727159068766348079532793463273261094848867443244561510708399954320207002405044325905950460395110136576239527141486778164034587431701938538579653443021769128072492008183167438562303941995274869290951119867500864422527343929319598317509135731426383531658767078292125672089483141869851034066733413462060803244788717602677561478615234412168907943313288391906825948678972878497975767252890580601378483201926378360267656910781118476893026886333914662684811649328457923641772473621148208314529282308841608822148418586886831429856007369814883705448594011743630939650481793007783988550845939474613020935223513093248687928877289762024128109233239506216011758594606147684093937829434744787652045887164610897896446346684464501748984316603260384878145324897257798652639331270555238080099379353701752792345249615388155117863501212795071981956144955149092095660211668842141932702948255654114056553017853604676594305272315315956165674462528826665462291278828813460931395314150844321817969688133403300228950377804344697758290822309804327525702860282345301210969965847728352394785173301800424875112784811597400952605344177730441293944110510603649035037162443905947582734398374230387753548072941398127025352219189083814821582996704196319940580419079280563982389053413671203920501889589232802140191330158825836962905329594397923347290014206154748161050648539159155800530013185843750013883141769794551008196255420391000572733636564803320782806776054885544364435630807597966681537107245518493423509486417570017003488430822770987204111601730801907198369178257610170350196538774655813267280774521920088777095504941794218143560642154532627207048700340118413745555539216249460215671055926543085669088867904395623906079578041525220828936457244894785507915720910083702238662605093111953091143293208021924190102721907754691682979805446815549499157347664016441734621840239772522082935999099220987354580590218932111529800191540428785918617831612886895691820680625894980088911265881746550753679591189933761009538925230420936078644949626574394707101781763561056550489945453593340234087292737496826453122409174681645742093680151556695775232494569433531128829549306183472673084766005066796979576676387938312311361270795077981988020234497378787194176799723662031852593618656449166656875004904934291964878515986481781565050864739276393956812738386743513898127799577332387205229174522732299358777077016238490993735831664928062338899003312764119924521388394116089821633770859192487677066429557670829631700039369269169834108905613082252785191195472556066080970803080388511123552615388467376401011434299334157256228113996563962479550528147037273874046582837837833761378122673014661894567185252849119766013579042323676977038596439603853145670477710704819308167698356131336975689281995762858365954881792416548837265573720600220270419775005909265267119407573791263167763881237578768398080596269869724795822634404405604660221556631518672300473226329327168572088058486972720160535144920316382350039768951804922413672256527754958623026266609654460459152085569751509542735637806276820416918143580129079880752191646923630903924490656418357965254683140843153590222902993525866755908195083864721309598849137678677822567970736669813178838600464042303275011641485266666101600406740068810644361014094985991394181795817418020626261844688006056442488837027947808090828538233109000169628490415810899466326737623377592506693973959927744187652885313801020817281707456181664352052176148277926585047329156355852568915591967093666722795052577701906013578991894614670757590568445686890241895105421187649113479821392705403684122986716874578985426160165862444756984760118320816893997843699945852102328710813399149279869662214599731233301311419430919333041601273672147112897652682876062431788985817121772997988552078826528338021485229721744157296231645079532776871544281720426197297578155058473193690164498792202351767069287081921946052049376785933931293339646646697139274908989574875724025429939626856055419879311169829737335587376738343140880096974666164162471238212294911258295930377405806475453508552205540475436105143992634342828942246483133465016577350475716615003011793189443203379176419766931075756211758070602160650829992026035251108002511714371539687223647448013599384033126818472566470029434155097792363426887091984695657243669154388730872755629797665314021068146397002232396848725851963310927268515868937943552937335789150311543644938901274230912805700804122077068597587640966649149098052711737091059003128509724257490042863600092280466364495390172299937127654636154544964532069959729767324806927875283760727511053100754554250634473015570880930383356867566464545008021721583105175662610504875252435648695439010583745600431516199526611099720296090126967123207118418577586843509879383279631089497102710200000361491057760369197391433527303331104878760123852816275361376119056287086106836922483432441675350350806007324091604312646816175544752614759387464150776327041566027245931487450001204399539149307041562432380533446769028242565615960188835930129390156499901990336426565587892580597007418699058368298556076986195298914804601397887950155386748025918000898890053161405211876005549955322632890477824123222683051137351580355773228209555653712764754933547717495205731175764700339794114742940193700231635890533723096300009262064710828453405033525721811769754031339639340430810422550586706981703039960677566379980770123283251496933108380246470385081109946358776191429894470317310432761930049179486259334016221054694509632025858927656049449339771355771796384861827402389336982574716897859749585102696584460381312502499720486277725492928828356982670253974353415813187818409645060216551752930326505103353659482916309187182682411780926026594728019590644477001118948833233153362100181956839699518563767950709320681191553698214986514962144733171183067667536276234972059718352907200172396393802896848523418666278875576201353493973208810853221382428922135710134819976668212654538526500550980477499304356717608126384352249309917380982586986827259687272579519767518944377990907656833763726056529813845106095444060632705324411478443056925537251944758521940176467987627190203388239101201898465108481117347664909991560463523321684419179616320696560389762070834261184717685274902173405808081623529884993997137957022404133410627570555853704953626286389399131570790895341305183324576251349133553141836549279399811833789457655054342465245837202541084606451288101333015658997542598597882626268494185202509327348891646271258988700122939501293642638013017301201796263463635101371382730800197810135051203429353353211868907474250993396878880504903741561965032707104603292267340299431118070888314066176588690376551467069772043954068175371565023514561961731400029840272952853544197388464013777311780644864287682463243777906134121025042792168570481024378267588060812249673304714536808781759876520164297160128441793462629143456407579171212869764938351181792119052695740548406828772675487625125499515381119091528494102088077992177220594667406711682734621631054947086004342178577324507691578474696727440040580781197470332069794233342214750926738337497548985407445354627041304993045237269806011450268708597687938165526741876991849442224274621939642382577375217353714426716683370621179416531372197138472400636187419251786775530488047226963799242099493769347948924661565121290128813243438399191561144484850449024164725682470879344625500711755420379044830630213749664981303558312544114402800115166002765370487799872284630928716911181541704876465948533423455912448632642180479782416428051811770802055228531475173477017090223887493458337686139560663254493716107888507504643912697938222028601202288883191737583134117600277609756477047261264556471658345840233889670425430551871924965498817169982712329706469667258783205338395605604858698428176220150955513470293600441421382807119729323417823455693690516659725731689618315764170236978152250840811282994954641368022479874015849077244337116870784631277387214698497689598945415946205566219761765562072881343057540374198841984821997644893171688854465149661681368042792159977167349864396718941670996206780465828048290642156813290533778636902556795853162668664284932137686076601386795314888176382262748759286404490527935332397310120080728657949276200569589875378889131306564329924589665078057971584381236480374215699575933795094032358483009743247002999464386964911843097794058975129430194168973336354645823720523668334061676287392741076778815645563389364124408636513097620126444166803922361572629761167354043012174818871210030937067602770900009873141906749194120764724905297079993684192653656420303887860251816598615155808730791373038932438593035881106685359029927323125287173526284881593544720523267667996200974796181043509724226992417014509601932177854697486142338065058050578021222183022325260616773003304973822583493472153285456360051684375677184217479810256558661375775947822589307895884268077150053692733778225496271914247841820795435683287466126823528368139362861502934498839420419460935416941681122365170164481813588994240907483783440815075689283881646267667858570995788798290621623462033026090934131526774757812877033427699211220865527314651120268081007403089974292493618317114623054897586463551293316242192235102627536824879236310558851730108765681096853640101491936924273213388124148282471412353349604881530759633317013655931943919966012047435960945075592767415073461021006873728061131970416820826048300509161572925855016222716608613162935554985012298506324536001149724949088157075898547536030725080670537577820593178390381858461993686053196601700723219909524967383193781997032866632032887906307229915463115401011506711321466515492016210533508374717807194030650698815561270701734272782765174991060905217990204891421064579132361446613841059269882152929495999493643655650446959775671489528543523805190749642686950118200076784172653017510606725618031633531817359270940358548346097816327201123848777871263975677971812240783891444700039021762488540180212425248756105882895522831203623812749346827706386277826359355343826298339172757680191854754310788756097344884383518973973744400343192603098936034703193590830288468209864925853806741512389969373455462120863206055497983649760773921966264672240385234215574189847471934826503387450652766922894385622800017684967240226159264558534315843364584199858936215003504098758390136071850571120129062092566297307348622083122387016536436530776746095154912045945309741727697529175475308655245763807910439632755373362327682020440950761493722978670906686477098887830745474517748329302804352987526862379640241674472707496509832414001063076690283876738592486701577445843288995454655599371616829550160365218286535886237420129544397470620104721526763801239233330766739109287875074340948087440791664369386825605948453788030092473550399314374669749599792162412298443880717792200915620255538919445235105162541134024888353123805417923943273433630843094761165875992011591658805666371374366013919718854118120724686524309773174950941165619879892595961745689309305446705271525570167843723186237596811256680646330735417574338046432226343920116441269820621745223955209430438883644670058615565212235890840108659704660057172178386709180282638552771793714015166701539347673678602551368658178103554796769696979026045257218694632350462322105143773276147147093131006789529262975499511467113315279188785210573616186197393142016204681007277129877104102317796216869094169744078111810399447299115516265447452498313079620769866093105054283608927580238635112616950747421508243204790556141460028509702339422246831520922467959808091748536504375734271510443128871865559874998367390148547712716926236867907692274900585531385350880342739585148754458975245616785748388318688702362210855516484071065805506472464957804429931088682648407147179019535552632572997657923725051203475763020884761885188868238804421311718192815874490934384090735171639101064745568483992273365019115504761533169132514010869801177782849950068055395400712091248845863022888258976039576067019592097267845442242141658611320758517751570557311753390873930605868884450559807010670280445860031455185227724594273068096351035768137542825456427954363225405573992206925966373687244931751752928247540191459261307769291025269173475192163527440458619828493191965410263883882086879404436104335316758775483236923764885104127146606387678475141102896027222888361054119825823760786289160704259634225741856325989814917150003627067067765358275140831307834775992598744739881969858745349624297679131714106832176259920216859286778886606360977526113888371049268383784024510311934201056494279201426137286788597491721195791480379033436363114320193130678107952177452240617905229820803186171813171932962821715614910723918911946470440707621501328323597366408663817172765251901679526314881547272065022024293908710321572860523806578287674155092776631257759427327843892573193898318564655226394057647930321648052185243964178956125574565528378967389267936678555927241100676674634304090099073836774133480177588982846790593734345598568929479312088281281585262848365828176727849162137339546367456200984093923049393063457925557337306968604639562385450841620774884192363197967401218571071795732195139854223422000258674974673130292030565076940193240885062593012369662363877515968065641740184581582769744128565236305106692562074252236573789524415942231169947089711564303426141206891005959180769189832682488569695908576197924495096478164035202062241649533229582130917768992598354486956926364629150564967467590785999741133513366730097992938932622114391852889231493175034839369422627270988453225605030348212718779237135492599488374840779769764446180501617914012220014439473015171976012883100443773094751057008136817478448449024058220372549087715534265311998241218948874521882618908676064017394096501924628598746908019877693601221129584969111016543669962934507100221013397987796374238275788857033652298883113252110880178138968452411224942981698329071678597816282411663741202850217259651377646892100060288895835080907894184880002864626966912970545265321670971877998500285811533439154137715014752347635798510028815782684049188512135724012701183377809958171956573028410874831101945237649088011267547587787344577248298018806371862970686416142900734304874156164841553686825845620228734951484900698406753664584881737003247383505837068555119825290916168674353900422230696141468405570983648869662939779956172680990461238395208223597706671601203324576763361178811137727610748930173284892349305458904871283686461350564540228927140877046612947023788458831605158240596293197754201142182142766454145760201238395271018905390292015843484730179573723649886427181287005377801046126899334918877445984305775554213955781374333103146337489106956372333475448155621068852403023669348916376216101523945152893430079547984837961953860784090697134506374877371583963734811429126383064547148175277059834434983997324636739381837878746526933978414484141801056845280108289891663099077412788696848290657399018994222484154963084051919599610617247151668426572920153536126550055107949764797852730500728092800731124685573562949423084300145089209305020862103944667713796382375267547478279407830159353646052162517189480179480790721771088733437113614981676184517389039793633030726640860060934508640108539125356425936500323030835236343295598488821278534631402157275318148482234596947703598236522026751717749474150981557991192654266150974284667260850839871220387852540557303816015248993228864160918819520079359049855913597097203359809770160788790607649887429705569691472018402043611655690921230477457440875671594311119718389216535105336596703688492267476637085964873278797798141118126860183880240561808581859186544784237870551820308633692234771341042213546832196499094226782673580993541997846287638040402977369721795853473598550227285679139524123511489646896597488504220320178854668908667798323369519728686627148577743056636307539651007426095147277878541616433792785290341642079497384151955189666503501819171446924814705518327091493782357383082592386335490298166106804491228392263420648870859668710357925741268600049132175084631806283557423947843545191036469945362867720319606841435753046900375867433143332217028253311253044178516030271879961304625802772528604065864532528445295202716536359113151909422457789362927203987047023810692400378285539096927929813235997328996234071796042727777602788528476854530027302124918470481405870763806155290700954664476522510380907151361607623843917771251646663381978410039036067930778872065923027515456482356562197818453399962012927933712930678256062280874702665454053191447826083301373337286962916257303858739547130971538609479963354895357801520610281717406355423302892150359243407707720352670926302230904965077712987172330299301428074773830778409181452682511820197030823212351729225785151848766899985367465670944780162043689817806327220668130153399165877614888362904987174076469995093209484721380599225850404956993889960932595842524291156853425580930266985437850874466475821609247008191338910031266465882313452861965249926676768283989269001805763671170347353114495906111752149456505591977730429504983003657119105059920526443078593210375959722123791899049138916397013206349446271047423737364603638619455667147047948783551007001735616013009284130574435366134922558160220673535700375921221593771733809333425102341905392215963621586741644009888113134540665764839479846094687197526673630687612096108918179209119546021527438315133528072815700062774640405009391814219647044370004444729550161787189091131141346820865535390679946509557104325673020465505192072355308237662140216955714645941325218227445552860354328013840411357394129347546509508319337256114096377438148250624912215811016274939241543434939120000238258684206133594121678099154347298484477495813081349105006713633680695718531588590899397434737458160857421816101234024434040665643957394430986125316601887345266218121996462469650724456894486001479116621477188397558279516423202350796714204892383127497272245124392875793736053150329590256547221908142758269399066738239669708627600468939491476327232331270207965989184897193665509082819222998472952267298494394995109759033971427143606508558533368277343850303061503120751467959984514062331936706673680121745199163381075644371368322185682688510736908035911391058177277011179043864973119499880680976982548947761307644124916360353512093129205533252781687391515323685573200611162739543899174141469335068343071377236616533329474368891332795734924841321686742453133537543377224829419087949208670393594591410715929844677014250888915428670627202612488273778021907172968810321131416694541194598681411842400724961717057739872649754080070731059548548870081381742397132769588623456077670264966528342882867961738848888170947812522241177060161354955488683474601166580630621170211497113161640408517302754941633563490345704583803951180736571388388306761407727312536909654294140558150638721112737767064346527084463969567175128589318403684211076358217637942172681341386174916296377465386444565045648915232439281427062261729417100654339032411069339524949690751520141800670460797427892161711236878178949384958298591206496663165117410261145888760783844652778956478474415133682639099493363954802528854830824784444821294124720379100253757476580976019698486806107601971828507187369768741576307928186974710749630128359405106254924214678451713257717323926334007702444511395706725163793189051421563258043089039301074806375455861494089545549501133829264475046237086791863353676076519401468591508336571502152642410737749432359835985676619919100544068351608688417431531789679545061560865449204354711604842782013300298079142694130422309099628968589866795247986941816445448405265468037839772277247377560245398316604658858510336043327023674564674904971192596941300086536044604896657248442894714091164561324707095053542303329191947050454198051854301528112802723650486024545531168134823395045723894659875589067751662890114766177837730451140811636673596551071438469928355868713657854984928864601656909392196497307316089926515058675211719141021708693193434106576289424660233685882154537068737907750071632447280142314628376913783477611700035495465552235847716276810273425915024038989891986754946123619626516951863285338621834159474929657971338744792333790099428247766508443486175964823196854783288622145936074528710913859418280731584236700915878485465274662142721673516923715324961547335616475310761321886630732787599792203802457970702320616276829551559316069564732687594533726538421241313844106295715842013380685526820791595270663635816129573110832873980575490229108522685776289581466988304670083036875168077066815503217392167285683544249845727820003417550240379662706461995021348105965740379544362798636341209949834468378074226147690619378169077627264986886573783905697679284504211246624328047094550752115332776717297728534698584884646253610818341252010770594539404860393775826422498799864121046094592781535835962702665958106192941947606412975257359248653473426730378091945571925473021700272929195914446232938142902223386993495801074023887983958076034670031245525650937928972783235904381918324681841963592638255695013049664884257047180954461305981914701104448152989291169454037039989782188868116516242213807499363878062345174068760066601219409329749236897109657915912862500514064678730154429506022880481281511194199759343854466727894920734477808581394212299319782084213919679679058422051971274516404150098341360100670288034241025066656595537410218512833027979269617005112013228894397667171130275616871707288827834070754568735731327779788281393513744318939689016722325532852960247521746878443426622163409949312731110925545018358749006708393006311625574145187877365300782238191874119193299055666673144629749066562641723400660135723937392946818222158193112629424353879088813423779662977002660222223713069492110230350437933541541119907426953910643947469640523909351879672833142106491959121550923144560843796157177990727662102414868555227519496503451840781255500660767927932095825414696237844593131269722083923037772067589681379721160884380279657929435396594755704785180700979277908714024785694722158581546191393558275136784365006547685211814986644378020193733638243038885887767296031029820136941765368102197289795093169425282059962772240576015606497343560185184052970650609993632203173694019816371891487798607217912673390316494861848101454634936882389444434478317434617990813248309646793887011853432482067572405433724826764011998120528345560411224700580588394335255037965369152651960906072467271588740451888848027885813946902951591763262270722425607951406394829380484674035153950180126753202044741591856724545388807054642831256411447023428115693895599266462422943034913936423001515427178551253537877619583896569424961622759365268540088832813259678465867864664371121908138458951363127819068279676778379709217766186578138458893160430471509600563271424805646006141264903827880522939587762150662590823376857211778586902846714420441917014361866764573530131356629576152085417108960832196194274687730202563897774122863752905848374051143336673055068610497344838284703817236637085769979023006658306412798396392212136641857351273323226153868150300383739330104886691940530343487226484877292523511290698957109196325131759226405552052672574791103631540584260291150145685437460533361682763363240543938186632869861710620916269491264767413675419254605657574261888952652648157918751407553010020712655462910569894597627290670056873600492000177919140271590767518053020001320804911637075629066940639611093707540962841394833570975070832182166749818959779068487423357943767575809699496073717708136363857404097920162338137749827120068873294272590198154922856544434745175817371945458861585308991546275791845668667860497903118875562977058063256743303344601703053625345838314866346957974155830535778471856353172100547086840899526077681494984388483183036522542303189095201403038985860410056631793841694320387505692149402963160259280074758380975707249178818217057305180840644914147589828528789145621029725689061805135519775643499885258495204348964265157619830835265155554691373107109687131604824806682819599567806339902464714997063203368815912608113680164562124337343842732759124590410847193528050188507593845725262237808821410231228263548754427509031529821489500078474571054039672132803573490696742376863980964638801780845244479899711334472833130553956819021290302426415854753538263375694891563828681389651433769829512180404015592063943376293881498871621017064699171115649970950070254361723941212967429059880613397175006162202432607185043320850071770186101603999847198571771282599443394481469826954126778676269313700566645225608226224380937330062108604699691435279355560470880801787307807622335750125119955558123473188007084101687191396350704082739432458323009794212497794812746551435203632468161307410794465306194234372538415099268942205110678744349549666986123687808287941538585325433720482188250379818069411929011440973478603479266364126345043377811032211891255327119117843830015964021490599373106300146667833929005691386999502050215077888260724935750658794205181199877737566851149795366709248397199867117979753158272097261320244720012319581180778571540116206982383151932004822889283383067130628663342401933500039018119804148547674692191737401616187631219417466196674105653930133549471596638756021761900445471468362895004628036849486212073261254966895909215496175482499896896153091109103056816704542464996344011705796110594989024740895105248199177605343396287071176002093285721022472314169609924037020782629971087744940148640423767123370075981906476002366212676602677185280134371144321888720632246719645440612159491478693265186307069819002608406755363720211580800585948617961835840202174239041482159313484481637640515882436166654260606765789604645770800744126412965293863922948833942848838345737826778611232018686420110064204031857851985475869560784475072609033966009216520126388167986547589358559876571418297415708553905584937134399799314246346538417957343199013150704683723923154708413063374106947333754697204702417887381261945462005516052243348663238521326464336002715873491789734446859152055314885437491472221820362531289077390358324881399001568725679352346702085948697687266307007060507304888704438828750384132947159620758156281185588365803390195468897501021508840552623100479708145965939223759940874423779825157840174960383049003253620088791828552226785574013732847134227327478555184659881863110298172356024118876060304855131488983442402588217960073694927357648022480156377902351499924318376478929369888803794153089905005149126139256564354848736337966415004425912818742407487615315302388159996694903365864859750045975575755637831134119013497505347434460205101584382955406538000919711167123738408846760047707374632527658015447088578883571491590440559139118515269534164096155437325872157956937661431619176480486385408100628241250531436431456852161646038955709715205418813816350571976286055035506792848552057886738913815695929267259440771028823763937419707318246060563141583775916728187978487295422836104278522587983457571196610554887112537810416108523962830005778267227471415782252607292756177616039105774840839299508547798914701615198370583392294454093446404803692182743484127459693493349759714699763509898418677614095851001647510161175192760851647858707701553918703061285745919348158908113349167456419076957187755590521641007779281205675551231493723915654163385915739298270389708755535102478860979507488011563227666620452523032066463921275175998242090120541680948433816451601271234316841362215286361361115079106839354066034343493849105156286236679460394517841731781766248762474385258757962157035662456194184038723473916470081680594859731690292312069260837690611369118032655794021758503973870390533934008594292826900893056320091031966603329288587641993342560051158546652192733054074824057855457139649009976065861750428296746726630392095139872551916559355378214516881002922795914934493750119960593720733502959643633170861765833292427501580254948173076846038201766150205163213114106917226008799203098449176921722173465245935857024415451591860705422304259464779729076966095251596271242460270062279515803621869975482753552171053444949592857880678818616285957732108245220770119030445216000623689915931477778282660539129392886257469932974343214830714714625625898226598315103685445899773929228456439511196472717804712736415763041685292235156963572709361506571287289651617060605608690026879265405158031048807985664153704808439083684486641755160954515987586548579946293790413436921301657849067622755249990969173099488510204393400206155734664932198770509405766834679201580951459551152279965884951635341663986297720449805858398357685180183583312443329478351104524477946769631566857255441843328823240957149519368793181569965842922783953294566079461813233553213985951430725948126564813840712764245968608676782962702502610982687952134716691034870091127163583208960680240986629004631760036176939745231512134923606074779274967064629530585626258039014839294393669107696028868891880985653385087739266477633994389626477600192341950808478088403289216650542065708926277889030652500697105323810861832478754616563245761859453064265936863006652982413546844191221857859759503825224909222445789522014934688150651316940033904991793106904337223031021355554474678431611105872359362756596105373930212835966789699911978477435694748108154367047072677068000686399896025069876684352664951558567780641724835080904707942150246908046196555138187526227684131368870031805883057314649894695606775848282001851773356323828857666835077186500272896633542603768458001551922710000602707942934327809681558332545990230968893206873602503885045548878494107666668780120666949294508773979757024678195832771718072491914052641386144057084244513333039159456612540777075868287440630542837242223857244627633505625320101322712100587527486840631702538933181535259597963254348171951548963148816628470271698183384236691204616758142994915353514341615894888528847295422586774265780111717413581984630206636564940788316100156979787467568384711113566874276440175196949055479612551087389435424780507235782332415516391726107002893079819330604711832984310775565434827109894540485298700056183044643943488564320520655219732099477055401044537551847540345717609588694808261990679189663139634601073162534120162809454329631999051476495924793865089251583313292168362328608852095669972518939806035077570572623566370312338673882847718196169706535249605487902113880009322885076678533542590384299858903261266938215660221359433418762549673300160327363874898789126591702696566333566152089227684959242476790221111319984069787233992417071426888790299043096147860415189830654467667837407417622201044073114982871675331394953686197314027568560448469318163056895936008614088610752412892925975255717405616600625575266340521803515150173558194656970127266347307944905815800385947692371469769240926746459800106531118480221659606920999455465679809969713554254200005482901367320011873599477160884404293317366579821988753147232123409661872597366095102941454202392336159424419956154259294900398898764217238089026073950415237661766925639629410225431896684492800365639857301856493302924478918689982726481148944342471961933480715131271389055816609615568385345881162479197843663107993105269504519255399295777976007485623049206073353896233086997609731308813545293921457603617608087006196002597052883669402026475257323619627776565287211707030250076658416461047917428430839502681244049450494649308613224522794953094606213301632593334322700014124980193542478094498579892993493397314614408325116362599510340289171461458823469151401067807703376503845670489330860888801066289252558579196472621129454475759430313104245359206345594847643119159671128743472116881979806669639679663200617108101433801117942030837633332895303911083125197257638363833759759586915783765799314177675828351376074001310465811301927598689960752946270401773777616862671702548522541464447972099336997780918082334031931183084232688045418967923761914047377946893674356529906559744316574534490431848616232667557424853274700660363421904541901884721493209053665159098279742503710731926539498851954907655060356044586142134212981629048335349435819473431236373407339084893554758924034859489894999220304407633121933778567091275800171362564853737798343002877410625776852090978073412754917125084630820361317301518622565290900502800315977220532755381406752631294997179799638955248099707130213488012900592720322989819556884370785979735577583650283154680930703768670260706005716311191201723507357027322111799621548258173738761879133415650048397654080115942172813560740298363032307458604216817206513660601868032351395254798449116516511852709512641499766484375745486421372216118801136680473532869638864350348792454735998488323639512516869503607465272216686841216398670769249149344345104565900675524215691787867262189869330105030711089605468322491844482811342701482252817243037413265603644045344724897335719789344255264902198392589691549860033685521203099799796823427267427016037884515329125056562013556443746579988196384899465829846690300767352876657724407036870378991920090415854208802484019264097589387520364330436423855462012018574578002502237490786893078400635922740333948427166604027132938040863371029382746372373515228107191673528676472788730303522082982319834568038791477935849339382549087189455394263485523198835085639799540096325393064766268758616044960036423721725356020555072541288310341284898348643371272472977143213351167526052899025298982930228414494697243650353095051034283962916083052554522604407918272017973147433266117382080342721800560418719193851546349962880599171846913845589547519813950810342182304821559575398859584612361871178640826193772069355951211880483954829845788401798373026519907916377587229498736417417661059663351802589413672967450022313109051040891859795427699159895892074065951160730819690005816747030721505216364232335484507587166853103299892779205804797395903035808698220794281482908131354925078795035280157781878395192761467170645065555097518819701581431067018194631358395212064554974177248328438546599232378059567847973276832997589481941947092177325330845782988556411387373907833211712888303200352909581751503301570021218889586305621217061330996632650863973661500194118694306290637087320904463233579558175860123606880201377552487111938784107888280983218226930539699385021332798712537993815733822906372534543752519789112283494820128898410239929928908882472893453874669164691560192200558026178088643448582526317369952042896823780392603225347473816003047123186967855927027472107844442259710030206200447863162024624573029218210555645595678233860722351587727191472313108086831937008218174765342411535346891745223699456973332632085749692328909287354541902089187533814758478613554056523356023413615435195982447374562993009116334594804964489502734993347984714051816513825554437351062583819569646084459816744735933839327232175974732418607088375915057565776321718768293816402251128859508281761989406030442011841221920481043109834964574314478526100738356080413621764518192760949066072442529960803561890592694504032487246829595849306138650326354804096619389662823312841779144567633251575935662894724400591325193445569286404872156185627996314455694185945306528519083094050283197837417468316330422427000014004876383265191888909198120366451421962878397298589469526362306507855738247054752743162289837991529812998501627815065845437135834636690874628084763727243479073865259366127054064010977034067038209190773982415552102494651191604064621541078645048624522748473943868704413795079202572463506195068394143834413419014373019847527228974328501354320399412923789068566365496608608674782438905909112745203122472933394463248993044155604970140970440253038056905847587587745321459469209080716301786009330032793685786960486146297261566265411834603198408669152118004028647438551631315682376119385634288638578942988629174879346768939948777415491801596469512326299314937649045641753732470888005811342441815189430712798881132712141283081292384254952752047930615791722461846920418460987677826565097234067133991895264738159488340359777766417473839388028039125948685416357529452275747141294761670516139036975530708187356035021616090760399509359240951747281051607363537096311794722675382784564270470038142370588917607559001518123645184395157709015075106580442380104573944916732392727506569831815775912507725209081065721279402187107870045304125209096567470033181459052933262983777898250961265228603361031381740561017693868739585398621805254785255975539349205815776332763852395537836469698936536753374031918423104394649295224259914548808551612497249933966316497687042117289376376502167805679597502974172261874763481094562405541563037928999888546241046068937816377778821823246308901729178554166631840242216107709253181881779534493366295160083750860102249986739413651438434003542625783623451658512022032954168888208700581213398533491281305005358370874185572544059793053755859844682581100757628612075275841015745716315539274868312210030590657586949489027742547323038877717674833237448827555954499016991697474916182628991561025714674659843294967998960226290500737698582884794498482302699138505738637476368269139706626098859883747518694067574195071446090111364157226208208646857081335633167392929633313441876308700736010527508070253416724902670524093616252847809416081772152429954503284304661322958299784704864713762444338356691053248915650476196056810029363347803899625803793146112629793719851731088566598555197715883532859443391498214111210428869307289507673464663545085635444528468627687141220329423022175373029884166666395721800282235707858390982730234383326766384338884321877164484907279702698675628128651757321527420627930224162174937072162476040018462965742857723303289123225318306610063694198997611659520397376286853766843023939519913707885240000308256944827506060327501453092793386505091554831646909501642041085777412217080541077941620936562093955047724285435855444288125005257253696138552773931818992900815415721061065982697580265056398148058259045923569927810657133710284147135958821958475693617772098745713122297276997536927298838308505121418126356058925654407202810943432928243043511873092398897750283781812987051305234091294350067292433946387656846228460867548126428131457399892605081898825572515478742581959836634571507233853180336853671285297178967851731858949899096302295277106036704072172431376895011295239910251916861935443029793745453652802980590455891019120967598808323418672268982960442088368984474668023534195180701856526545415315281584085991276029911963163502799156078439010778587130050717631182102009424168600642976974039286838242268177504240518870356683503725889905089277469940256066718671993090176349668041642366881715618037571427313071540764075973724224533891983106484578402744479395541285956003783249299644169445231080530167416749786127014795945741573491394679966183022174009533054078113137337162302791797172106033731089411387633951226140647170836747211912821833979353920110580636882912705753156556887199340180428576997761370910181266387242781747164880970190475217838429529149178999657520449345415583558746227606521759686478643496141741748914345043947372817799627836935231036385111641975813928680713725203752350683837876989232832279903081315933838968918410847382600819193806006446297093422272308985928360090950619950282955796864405602678330730316640299344384065770362587639414134325645352777590235117926906348130406981760200809203946852684328419971247568734050504225200175944626040739484511147433285575825062116732015973757959204232206176311704061954601982376797518593017198474186792195209748118724722552223665179924917637175696539280256089069961916271640882889878223283565695277590074637261739380263403186287774192281093262247127135689062317376914276125433771237022914323412157146072532003649492771646506839931809427140143332504940764899255139782880407757605751087868656827282993548704528373856521125234923325637085554793098468644305153848059770638748025539068369841741863996357928028881671115656415934997497198191975602790397939363023513191421750774754001786834331160241723404432644148753944086746374386686716495105611488330409190013522770561646218883693881473986149736129867473174857357027434541041908957299663602858122070253286635310953876368476922180810569934728244845839344361156608798710950119885386582575971938002816236706548212449652123546101512117852163786802780227270593439828734203439733770051161399614226398643882134481961532068754640596868938485538261152494228034682654535514014262219694226197796686743670235874753325015805766179207196838671785654737257519739074227100460970630233660714974649530002959240581158338435607008329506353615718166440576705324073633498832582958392323400852485153787778478461529652625849164252001624007966650479425313343013627921147037232455274892072766112969108092068756929420565098146470608303130229800553877062463874324165958604528002964572584788252774122008608093341179448208875086423000972195051920311175267420919169578996784960235644112598515445834773567322397175335812366298601150646772388459726258103339176650786211905337805312802277697001425286441792261430560636888085236794211575825894967458424441188798584673202563574895258185654052106274012249479064896047825825864198170725706433419699647972398718507389786433922333289614421361535402978052655772963236429303008989190198795478932757574618345466980223206810441005611627488756017218837430004608820657990061856084189249472509774328182264027877965545970815482578273527445798862881395101022005154431561796430318077183848759843159220167121895200107093765177281468377031457210933072323407866674705678857897910636663513442963297384379080507427752687040991109931772906520913847744891977284323558874235681514088183639076635267690160867655073723876683806526503701588068473979291592497856229787331191555017926039104695034841954296769393456560669055214789455899403371568951690281577043976532331669471827127178434708166486144524887714711546503591843724262924148560599165188491751817828536870284417660823488913149364948832522641290546003069585237654926006768170364068170894360746225004847678644483247870582298466748543585176044455957814836444125156236360733068939366416852532943540983307379489064826540224713663599638772934005764057727742824454961157836065717835735854204140215403338429835341921391219784845296307434105630110898885431082619354594147077354767186724023523115985870204021622153609419264571877518538428158439669420786751377470938367784962705642922409123658276356652932988531600142870224604239316156493290309283432359032973388042551723705030041719018347411664612612324764036276069967454902770423204465250875716205725311535523523598892140881152328029729529454275032504966998502927520875102605147440773276755792835758248567771824827400755261895824244342271583711111507380847950851390082124304804071353568104144536214417325205114233381876516073035714942995381859124101066469822653140090791583406923346727212636724169513964171210987707023972998992174012370765847600599236162433956308734178165221694773437091429714211562569052587548544511609788795378893087093490543645048165497168178853273740482249158338398774967611756009281444192141173489715324437798155418761565444381257656031932992822977918647381617032538705168567047002812707954951308062974563992021347439210077701849513272193621381738934192551753439281857521001015461389840234212048938289805291327322596851537038235893292861213724947303061196025834546468469160158350554985721127738393800928994322486753119628624889567203067146823283916603957133535731364173938835272012460659003788906804542237709670232490756634498668379005085072863946745300437765231476646377271792908392819334908771749779012584690232094392603232934357907032252402290647947110699805504595225539219659160305062414176990152040776512999224531816336062598375492158559171320507271568082599177681556682547989012935819100906085367722822946166013751190794629608971183315515366516209012857131326561106942349236885626467629217469703470147399224403026805549698771535789934737008855195965599617985200942069296698745816606327719696822789734024460638762284038383643974508734576743161227334211773783147443640152846115610837150831720692315637286597112203285555233289393163417014331732466477669858199020935764709522488561629125926338354884130858853639483243165735591254763546329502199638171638098964167069780731065082747515867379938667732475619719480524412185989833966872295899443014128016367017765349471216236301595498122611364820988377707605860441598720576000287757638236407660229635993842037010548701456969980580655060475177230667857528909501617286280978695840491193607189180137175785882011231798245734823128919943979408430115028716610117683968226311805170033268754414158965590374028793725575288716790505812556090105821276327671320106154202224316630778459578137183068244529103672612197171473286093871063109366985595270228267299100720202834187918383645848797858451675941078949028692866123371812150193039715735290166050400598454122775820229222873481538665709822040071393220863093959783699667484235154380687202879344319908380823487437224094006314374051065343698776571943894228234625945289851948728879460448247649666649670132586531899468484940490722984879821648241412119909327561614446433938507815479317983925823297667171751257807386605052612486997670183051901048609256508075401405030899169509460131984468409541822023851451612120168815238721554698670299271183751657141609411529284830316308430800005231075134732197117732396353399894718727048002141684588062091086701631543594831497178415040905473140208734297517613101222773396840597419908877992587190455047514217098852064562605965975110703494604926073581284231475754264346248344263428655712161166601247052650194702294671843706057793971539478835234972599761796259853589757461699802931752977901769520411161563755531520728096694922883192200251632473171560616615144591958817954882265653363189117612321649443192352645693158514272979347699036969470598954979376005054105694239615175400285316409089182626912946635849308922328147404726385046170550377021121080854261419841046631250515357224957582800956198786099917939553956590882182170391082788376514969059385105335811330976914029561465103710144011925009192198956532432591842197952097162114058226648442398531646665368855581908741614487496469069547562725706756746903927764426478798032417162840807952037345009050588380202112922612720724044350527480345640458283252503343733355849727382106574116389028302774440611542120511439561858240765088545241626152954425625168253133917876551781655612096996425986893701306723536252870861640080271490008485555698681837387759141998175288098202676172679964723733443714154297061872378366416603929533009123755555096751479661889259500372166180322555009595836523504345988028328191438830185573944665660927579439786592492784728098557424477348551056699566685518133416051979595483222039058861997162125406823909860287020631571594395414680739088092149085572980106625055398361176526395366393594551924660143664185836818667950136338634721761508619854934257258516467564043099448827232051550334499054994185656286444197629543876998061296689574360416896252388734069799350782591537653542655949983897567922848131419157874213755474490394036469775122560296219898775968359143080012554789032409489980300589398937422429523358841278877247472077886751139192992078111258803264479124311458784000332251563000981091847399244208011281876686313498136876837547967854139728739933036962184034614976695121271391497807970724623059367826050549154193914799402104053386498532487280074794407486712230490000041310475952598934019308438427269788531842823919466479501691630656018368460567203954553329200599470844097586838321083628769459690161431465561318663284002617819416824427600459203082381663094375928498150411740505561486405384219175124614792834179521816550410606377046855491043003574588043081782970318795745298806874364678938628920896653093178532470942727279872017041862829455796397483952322962438314012342853544685158254904864812887921554816132002264137722759659691301711136467375921770673583581621453767380742572605516317887639740143866598381977742150977414848908895760356038489375829841112329914670433619147600397122213081119974343242532451234680318833948648341111787416716259287715762564762914866370184011105582382263315968239081092623312213950666215080082950669949880626011676032720097222518020708083090074757676775646021979161113847326785973326467284917335422748714087026451956916544979748713152536141641490981294689005308072399894112896506129647326202937387929727377163033155731944322458718776198698677229631721440615991158701578972143308608012705176432565729656656420105865895878773424354887351943583345183897238553441529575156316508713002409538361540554327540669244215837483425278889404095295580258277201152433639090960487731283385494828401060921524005034661632736557856237708068254071589832761546719269641689846301447271741083753288806784017289119581296808355907768152313117439138723175884858129841860275943212634890766638446637836711670884517150157413625815200030420521077482990999051964620887016121580998736644637385297614386810250155113385641073899334028484494617523921177681943219055617031140885264976819941760722541125457755150933773950256916993651119902161833102021717691801339175699050611671792040499874143348592096567984658130784069959510669290059628804664924699967641004903978675698040076645457629378132004265551765951226347651414591331554779908019983992974702056022014396266922055427540580522034797278264769646385693534290202727557526664801560441855086114808594867911386307091119786304436740600907615722570072059679284086561540200513568324762797170505432822992313544039793854825678974732133544984512845399268961272197246538797281942071191469962944178173190558617078290270139355736497311685172148665425348588973834598858877051094680816608827091677116198168611038332336655407828867888307480319712569969723161758900776616053952151424694301087081128836881155931176810861627575724128797919222914775475854741010296393238243450412492879879215909032106312800011156139812311644603043270839847076240924385463809048817608276937707754087822141080824173281937002244341832135349777142328510531799056747822688245455189809532077611495120421609239056373047698396160752956838973096485207347443884537718923200198834361893504497741048693482226833650690076660809049462067610471103031405078275361715389943611896975103619447843246022066810000467027136958628482338775432970894423472035506324901868117260259210428235629609861133178287162215884960438801160337860955414793795801079794983717612164606068267265929256209905575996422743015437147331423830536620275747160318474832109180874042763831851577990179247684742847554401333425108407427635634505638510517481689186428824576139139612023473463491284535637626567341725131358916761009923412686123606998039498058313272267825398500362928321296237396240706878773593002176513582127699175386060015033502869305451472884165094017046984847313082919666510236650073027432401096869121589937791063391500724815696622119113846375557889236092002318808788368444240296660046691296862003889009736354139399084104638200237114281124441831706919602162209401997024419744535208488266101011543865555098543161666042726039137752343566456396878136088065832254562970567806266071111575736996132049308573932150258348769680483980988593812453582671061490530675377891691170578239998598749438259722450910251945706640295613679465022534849989809819120861016406583606633118237164328664927288249073167469436959486919329531399134427715533954918781925989119916563709833091533740965448237407645350367729390019567578220215672266673582185747987895639349381940784550156651661927513399134771994290044027273353426044170917826485126075691186372973085535428066264896482058213186843290176676442619666109764505597269741590514269207547244895243589450087682310371064710289428214633968957692434615978199272352283338806600256228747666206586398824528703850604960213749231877940653087103894445966558311437229904030511144995717922026596634227500788745254133540165583093923607655939446518998995135508886727600876439049837513199228902438676943248878579895126932535224578962786890220201024579744464198349397956985504595104089996471363407030911640697410635033444940563959865687707628743565479861865893738183773657895550560854021073096458245889713664261613625956862175470252175465641583437861746404571173671744219231163945899624164667403335779464101813050094701589440877674364753124743458159632262054160523355539693192879393042822020652065111078989292428509324545392928799703744021547932155831092548511035056825012129784462114607494690191629028360521577378374240327989029464274781032449739641696412749145972707315396036354160660336645391633893160119060303652572406381261069092942582566411034686693011784949618096395750813725440791522089443445784083744975781172244604079178009059297385359632072940955507882762534592452961987795768279610199351165411337038271698848139221087150692484673101792742990511522127347631179083460617802767968473259557928122513024787881495204191844839104152597969454898254086291445728992922742622659831465314868054020649154581410755446515897959304873826672336649212624689694705611783845853021889438581641404372703719742338521698410446026020643797191971695194711749719884444214755278063743227958693734121080221024365832236199835451029810978705581573018223795949786385447715908776630097616460348136628069520243449566828246612504072526350447617729082969900864484417506413139571460999569400694968035847734238943607074961364457837992811327331223231918498099486428053554275277292301951290969780717434244032374693291391586121156196860422673295332666167832163527145319772397767721199091200685085318489431741160847904928999694702327595429489197105616162127736207827033905169075080421566809642970834613480438353053424729500371375891195583007400538637483292326162926202314569853416078210313014725204668631689817149236833104374623385537239182979363663368981085032762213666618250764006775958660622778075766852274681965372636413390301523861472233464010774435572797921084522127509698356123592158252452990815757042892303358286978224274551848197021938665338341080586050874132698387367177429545741699754377220089267608024517391762136306097950919043300589581739137425606574091004579235431432139446239516178157515544644586403916481742070343020588726178701190653991045468071756411085264978553706632518860973247939756997814723022067707758006707137776554489249216962407076669295920158661353970609664384403730158769441075019098021871072057615310111794388280551249520337404578770480966790876516071992166788226947854356930453645761742577084138955117134822039207815434293286726327932287610857428788196808706796207527447010501810845312042251556481177867114868623134021180295901174711748165677911774514275276106907587415871068807449256346213609090594851878911804697078125489551926667263796814940163722304708029183528505112017012132996513189635984581030877995635663927087586656696312934040467267469977338895670296926658955952399008793971626104944057477706337137999468236272330132132067544733402037547503846049386531917996773178145449497436438255782659746603192124756465362979982418673382100568493917002639751058645003275396170324830351643578933366551543560304319192971899481120286262505032845887167044107828675816077485611377775580439573633358947091566073961624546668508642139021801136997952393878109535681124436788899065905643624747023914667314283917455343133006917546575380469945053899227277735918865145227909637675839137862343708315204146243689372079337837921336344532722369214847086031866633259522995656204560919860337045084426251894196060474830363736132247272915494954032018850292168100658138259656451000263703650838100086392864665679109484555494081913737242585167724013352473120095428024909094618502175381370876735877667307695264503911298321744271830943001294870890285370105914974638724295662553449775790434989352143625948109019416507353663227125578086004952426152964544513743876453273292726634738268637895706168872328665429045238903393765192002818610111765852581429092905863605577763017557597758341664781305565570917049707797874325705656360206667965522175712268609809248727675812014449203313558960475836858717649641020407946569968546599555646903035608640755538344248940393496078838416648930937263943383360254089922566261148685864197692509824304583353407221988563491523091480234879378377623336869911439186334784364106660723137213431850950912331040372498545348715400002984783920997522402441624343740479428895833516804597798081918090542391629638529507019779812477705922699886700331742966169511356123173447484669525644490397419467926625749437799334102598706945516311990041487800347560211738458268670045422358966895227689130870498092256205035604928544668862199657924061978490397898829195282225884838954224986128589231923515317996156497493756247704307651556310976419006608591712089646684035554998087084615925882580699817525031660018489387835187743940280090577903357384282119779257529835495952824759339120274942856643266352840769394977355153635100403356286666927152524549459156009646815400847184281501898319321389525968718505222383834265932766448070223737919940964601621559458586343067705936433150487393567175186566473516593815106472824885990020733969856454795321151089602752304078599078693434532102343783663581298220401911481881170393862745671441452574143964123409046068858741627933822831609900708420434179448078292038264342747938802507890126174065946205694742429777125872959412146125594338413605587817082883743707083580906363498116841439284517808810614532651863961988423206776547419506511625299249840281478544700159010647116994816096919106980730923578501674589289393121780300764599329186800205092884021062700204958278360478270416079535905428869735635541682510961563586708484541373646512525273428311383370401779819016770875167886938797229882604174098921587141977434648279603516790545461881515965343483244309376323097372667488313028965056044023798376862733475411809844354112933944042852617446563594625803231307922333481906401107561895051106545454427132246406876799476846784549765166524907394667438568693147392413385603324452177657042613880904472240304890724638241150390355845851079404899539648935029814014847848829740976471548414901929793414862706949780407087386113342280728745587020052227190346117508061491071498433158475754137684920967941956832400136536479154640819440370663904905993136963186168106525786603606792753807601446479908579612485739504104140191481800784756975285523397800290059376610525434001669055369037009612403551965281089372265993578344208505750547858567836968802512980267014210561415758475987132269089779351454398727410245389015215153400439274233555460923053851361914040823013789325661093589631512273214359997337985717945014873968816695253204711175700317293862886117001784578147954175479676694059163922849614393198076072215967743555979376069748925059880295300878585855837662462978288226298477283191358478219665547215881537136883400846998366519599107181263386297097435570367018838666759198831147992750705103881646944750061214013092605157706031322644081128900980146665878315574584979467355803927565028409877061784770925123337564019539285546968519380220990159189151379109583932174144507364613454921421995879291041097812394411264300457245982985577558273140057107161401638258823147169967856764133241662362992690940801365248897629597416574737898456282169774025662942720696454064638440841058309086876624710056035595462114402787595641540512467208885074203594204745715859054148478145473431591155398563267353967228825800942313337215065375024583087683024986137991909439189947390129186641015231034375975478464548546600602651700321576808383154990761326874100241748484397951738411940150740819705952900986171752898360233209307864111627557241757424574096380408397930826710662901189863514669206828577380504366559846905782795048617144267675229980285338351459225391201692582269754233643661440301174787242311939607134031675716066124967636523615288229493355443568195345642280756054956623566683105659507435188602343136026937407047642084628127507482859483291363489751702313148051760959425042227402459748333198851111041652195925327898548019071426920868896244255768122895814625496088141947779458732182763012912114200430107947909302470656543804025361662719804181743756632626225972028293924203616811080106205596639963945568563336705628615998604575248921800466844357147254837878754107564368343216842101859853035939788733462445354378533168244944595857941780954062805303549298144248680668552110204352978784357000579206149442753577676216431982451263296853862528706806221612658439491062777397736812230221003126961337792876423017847531833682748246002015504038538165107467266259481028448904844228347009225781603896751332011514953653003305738059131940669424307810381884430592458585568454792443061655532052013995679286190528766261230278541452594085689235990957998765722939488130824330599942999192324208976433025775101531141126493467510607053758124600274092270410142632201971627127004176710715708942748407176021309429259235748987892688262036888063431638512768694545304993916326316276412201280190646940062989146305007696804350296902466106361223125409451542726472087715238832325725311290403908286788868314992892939138641078196832909280801342728444922132120300628294112849252127904265862805537194663014426490200973308771601615189695135397698997072250410675523510546617303208175962600326993025945503840446501708854009242974699375646804561525936653270887611690226428845644766501696606403427976557893454267286609029045308807899770607334752810391548381326930013692705704253593450285557975248856857776509129266149599284701664620310192253744055120930203091889465385664715547528019504867436423998474328552087162413541856581304775452941743435599055910610509153691505532972934672534960338531747183205584037236884469541380376185303603666284053908305555912391876042423798943898589941765836929413335600673256993887789900647176813368119138728793345060750555134397945643100854955972425358371645615713547180727317479232969453729375589916968503028707048624865399200907413603044176549280080215269086138984962514975039390781382743845692400221285793061542661441212187609389165074339215032710896149411363147952938811996500119746549152588055012350619892659750471035612926149114573185098377970405922613320277153003913753797952538150907826787474163777024891545612958866792529866591338305985998110274558676306035059573969710190433365455829449735618675831441543644057935198112310746677182744005822638537950807794009593762417661313207177030530714391879370708695121455208043147605545021431466971905783529271915638636552660004682408299837371754095723655288334577900089301073226155488112833751051517643262711938830248056965855333494968838893795809750878618233216900618215037438615210013358551769096750380540970204920931077647423463445555604364216854713884950229056923290107957054527901230227982103995894937262709867817752840324517485317879502385246698398456604974535860847033052462118255345192277046244928705900625389906818066358724741137560954563277723537905422461881222999544194722637282593270449185366895753634069155683506338837500046027743691134695105370213814443559609588384729546715345260715149751853412847305539493195809049473340833600648551538257779025319991115297550117701700702271992177890048144137094544318268951179121844633125472642014298957993205492245323475285141600421525743659713831354277075267524008439254601103997957394717666090788566158987599759773415846375901717810142455595768079443958558521171107648720266673479756555365033950839999477921648465540632233013731283870842151133828117289299176520453514112628841429926197533806799715255267996832709873566324284366997020148349667298042123883720777524252886830539923020945480177370007037325146332674724365720157216330010625595193391519400416180652059457465187271355712518093829886520094787705961535471704054034952038465434594010520348789946523202490314605540142834755217147033468556513341448440062101911728121568336123459220510685518659221533126620294561086991217093325279960675448750213572762317248683313110310386229185380139696789840390875424875356939053975249370252592416724330072959457121619570379081934398545316545037449485047690011148146776170502211567629412186690033803620341670890871701990759327954925223086361592023807047597390254480210177273506170955750114516173141233680651947735174124599982755450091662974513229220492574442513487506729717869249095546654227775859342987519421562536719677509906382314696283916531456932202973098027740713006010055146516144993896113651841833292660009109663369896337965088787074526553427017214178340398352375001389710946868223555344947489228673169949097282069267490045878066592812842390438528106281823841357510284350954250159648951473810411981017422836500756655928517439806702612809458035570752302807961512216770223015801762586818741957629010463267967209320921685527961232930290752867083318813072454532430777652500688497609859568061817874299180284810261715069871609882839408036760915123817228116522918697025682747691140897686163562980110709969942403470245546368187708035356552750597234390495235216992168371102976598310222267567510532565841348617170277114795402840095183093138333703386068303629409271151582992801013376690711327670677124800493964616305439354173969409525157197065066810360073627872805358073959653824543728445274143768116836257753297289607426177170575591885589145722723492646356021491640779548575656380017209096981908438686711272028945191123996265772674305556183536706373220283654521224148777254061767541639379939111433573833431244051469289656692414066233281170073959625285830725979329138031829744867522154611788603496758760573404653802163932409150688985683405142045822994979145529631828584327152961677084278366032337165960854405482911553883313462024188433264182040485540258352353977650063151179837486589675365768031671512883362313319209476261252627274502514145385461132934857837125798216997472436877812075958874103314147565042444825264157372041458132022898483259763142744276072022097740740092901546037911318905057836984854351235671126700902828359579094280416121676877416560405939069045551205510138233015722148551531242585372457116996953494859536418214798687687331257999410377726518410598481908493692925973042771675403985870916374771215032868318213270278897931142975315684298098016541362119227098598077064385488567106688113030581834346221753633462341059820587281287251749895336308101243424202184853385193493181692730460926612950750716499788080776870669458328100519806211208176276051505086718800810338535580389976427709268597083210690265053242936932271294342980992620068810214403317536915398620387588670794702334610997365372554021776109384962042013168279284977319505792288341556070701990049323157712779219930393885005202305402807616704858676220993650856657368983582500384716721480316771053611612619484007599713830991798628371431816404137446524008685706961232174788438355763871780926845967802578812872504017333173176247379652282072786194658561059748019223208662582089724154606272306126665247291881460716304183862179077411152533391628188109769046593786529698736497080514270002643404010598147096392837760303179391476296821008762772543504626974517499167986327681224602211125716573111022355281118395923615113118485805209454265439516311026648525079056294726047382599813764168155731029025360237058109853046652851947674024681977831992358457382602909739025809445145279889476337394893972159442378572166490646056164259864862458592320070839465845315119846549210232271725221433931718597268239159265555697167025742171914709973024500491829664553210481810892065542663430227991421036617618499997183689312705892122079490129695672438459064772842152486507111775021435967623378473361535573137615799200915469797583846953481304524870985154763749804396681015868018911234925247197737467763053288199189391381355012112647545725504003188395273633038193476292101482457776346891760322108791393361316467503706613334583366215260077744476828038441597709611195064824510159717149605283134837728795866934763262593865500018962884741417622169141629774769687377611853740466896850432112187520540124346480229342287429329904054309821571363328932967255751619028142696482227912084620024426136856821129417475593851865137557835006546030912690524022661517529365535649526265743280959235311171503823117825675695057138849314300876449872055031702893411157664265615145986924597456325349844960760869631895701633933549396843704245966917228072731187234399530046574328785219442979574371881866603081851877662192557517730156976762048537277487142585495540365090089650813428358153611579159754914386562854963922148309761240909798432104734602026474818929797669560345780100825664143023459738403983491643264310197510667739572355353988091175554491181487823584485469458207269240708721739010850736877350871053517930129447944006190690772646908389770712424676715634904852004649542957388213145419747453506865610381820083987767486509951055220272774781590795122394456923310139304998405811325611100897278013785798404249510797182371326703625261818551457486726829350814959871852880882989984135000399290169979390634937293083366221630132415258269520961005375658890536369712891776073998095321970294492057677081416620249773320740755521438317569877165199967442566166005876831336527871829696836503507349924062655227791938561530819728428203102748774438432586984740141308164488154312179702434182011575609809042528405798673660704189846765910091107881186425347001354033631146211321693179690709230372574577562723268619430905497606116293389538761842575927217506599691457928398461682715443802579519037014081821989194459803029918505227230425542803496118131445497457400589962005089702986163386763177287519062197405636782839484846033600739712317733754693674612868205086506748940886582855304215220812925132660338079668977477281119723493414005309414486933026185972521305000168431508098810800061660634546003472395703998484772297345979681869633496020855897687876846097014624421864141999323859800141959442079808373996934807103961116508086737821771910357729717786200623999962665913343809735200317101428849442655079832328960493228594319696862982799150818120277741124227541480131373836738769615544324480224615769669990313933984139084107389577914593917239423646643821927731337314892450109316786352051298984812691154640014579807967717993196824953338798052343477637603777140266042183295968068253434818194974701694252827417662212273567677450775808568799558838914235018450243466180853793679375243885041646929395675385568056609328334778287664770839321267189465048069723646873594284564270689901068730646431324039876345603204497483753274042088742565664462073533633743617439425306633163472111099494535691143064347790045548350075971720944318177673314639545508158205911036772162242202317375933936975255768834048688585397699895037215585039737604323710705411678594181358344026012407422789074503797988795525371293367109299781691612796326578753024543489287508020611594247291609394132649998174067418534451320020166830121030990348931355869375677580129327766677668188954170843818631897977038732185677393587195706138058373440860975973990604046262304468694035936526391812432673326149087020992509810404969585622711017943644461091005303629252974604929057731603018536937335315217271582563790394757119235883744145218387121408937138460092174625154849321240452104351181521627651484755119265147057651345730380915212458023330892831117156732586250088473707645710776890804583884011695846259895563434259436183970355354458435366957104988735429833563127119161314836333431804312041471446105308350621758996202358771667410884345226088957666976828036927566292067887647745580411246571472217528609758776722786715134765429168792717869046054797344619848788740051136821479764426190678952677058871977346469948608683670449331125378866168354251447018261962675050089847142760295326540697082399098865272616462715905735738971450736062946809704264788811678315710003302177628958666829202466535549306064574731077494034191413814912215458894518819384393992465596688878544218002261804727274902099563956409671954943118637430995093592868534329825075139294589599419567149137472859929114614435693444266831555201206043664419545476332394520868863013918629097988537708477472629498062055924031893265200139043821026836224887795259067934281637867701700247261682763119129958663226854638891342468553133443783853870946242615901054424471276636117117496428877757415001187166218270988612631775263799937217064556655522369227610760620774827512200430691132498719568779970479921485741267914144466656817804976815059361404740839383870115488710219605679444476316330234950970485984760095972851986243822144635793688707770702831711011015573065864882341674203755853378760976463528856477852268903693935597606129488121057362891530743671306848027459306931967738003178888661219481809803240741923131208077681140547187020084302829880516813621441960633085244194756492914925418263766622714028607588034605300136630486891431114865827443490878097861518500623968579260792045804221391149778136773188371192587778621709638908731055019788720219274602156976742880244071416047938256105229908341943614896135422137391392062851976276591764930367920612029073266994737954403606664144315486953782421525856381217820330084652265150834208815127724740683989920653805610894101103048071110647214465411472204479403009560303579555804861053572668774460943699982007336007634828276230081952437651894283918908302767292872524590369386797045712249965994110074378519951822869912841010709492126629231223182779727433909215430087832387703180948370433573147276115809289212420570276832137428190024284374500292395650688244281819575877308085791335725130198147461727607322849006920828068296153012177690678208594146223419458087961140587408662369933181164192800202145291472545674219585946312124479985710685156538032679316098933610780878447427196501707794447352463406014064355360448087050477548756215042192172787449831917179389749845500031202535694190083019611261938059491447200008557114617781022144523504357135427902470353585322031765744391447206054575931238828781631900273857304356772534500384593315681489771476455057836725968914398037788109747103882426583474853276482744935102555087800075856569661981728203960727540057486301422943735176530482023631534295747408719501111824223688865119789000414254978385784382773908114042695968319343350813982053190919872358585771759846989707384733330051121636350929619354085318562718642079429239356439147297969146735468185363477256936183445195649724907918611276800866508654001924937825252091177043898162587222714767154193159785338231683671770563322110470968874060374945034033223579586639593882349413165471533333071461633139921408604820046406119117887112573391338649199985792994419108749311095698270305171724825702176267308230619317739762473790215248415359284983256125029109931618568140386303161671354685037155192169089724613538004520337556951546562938189732199266100246976605526808988618528247079016154830918310150677028064649305143283417257650444785943518350768272602341858109361435023872060113098421732752345674415497663234637720708526802774231313346548040014813801706158573067928582500847906862163407032947630023856715984341979860874318507828648367422161256148708779593671635246657185962351275359087855667812050194075821402667144231788264120854542706942791680732916189690790943964315449368568952965214137292800077219303556025536232226296530783108608823299810195908684565096151403364951250252856933784234531816819245320496433099157817895781650239847483299949121523927208039904748936806402987812902441622395622253927748960948271590766823145790641285865562817279449862585631832347155353108706951904964179391298200253300391596133951394081495966166002907908906858726155599156313215618897357484918365129583909257223881549079110459062905788902605705317162713227736736616644948339204128055158989316171517756730283071757572797526798482489564968563229033246982017572278810170764590521648107539930983501909362665615308088352677864522538050872130589440024362128893787581423026851210514213947764472571645613776284116975570710658082021694713700122117141665660278654391947041265023738298291485594954024103232812040711070055804944052578382402467474483976690319432451365570009767457283799068301007034832157001701038543390186389408579724605565801749515040623473655433444663450845181822168598117931099837661409949677413765934829039974169429819431243572134806477629945558677189695293954660900967019197923924837286177263064488356578678829361321499162194216402905343992241580895668047659075941950157400333243455146105907404329037148885833101685729243185876060915839313024851351022213016975733754144231451933027924034198176215775263180541912883297940617502598270755719948654598587953096305649487530113199026723775942280949291708181295131597135750227906828390692587086490638239002701980908974727466057716595236224492267659940329392847105618959807862926372860051519024417949356209627415271630052658473193075888535158921387859842802825139313027110001977840548631059822854530254558922413333258653485927988917432824773929411763541235544957466526073698612233462211448883977039664277151426543561908063160354546046239353854853329953082253198812836009189775783006215127413779865954193135923917720064019734727765278273298399510048575422987818727640297574689001726204814000405941484933691304177945755301923560389222057889243454711902606326372373753998069381127414785953680990227745311012797794449616705685712966055580447626904640079842842925366713409239248797907227038126229781327198665323154632904815012300687219010376406591689032518521190542694569132312370965749927731850170895145410612808184963437454153157757592809306356815701739385857564199507751387000613331496625979831966323971052414704670807430220903085443417880422230149059907352498255729761063424090717858785311465300628836063034508551741094076894008047749962559344901631213247680625934422337818425522833774684959014743112419213144879534565681113266891786245912530459165555580441163160397821185413048591532455089951998140164160954749080047543345704706692123705391280427433589785523969317897254912721315662147655952763217881583609315657627396907579824013123582963514613802256501712116550468035576728039714205334121245168388297773052322214950952165132365271989476099888508821784937526716735787983490398905810744794619481095963341809474770572594164213265604090499900964042773297865653784867455172252263544717170953876419008951485259881287252637503071341603657651701002362621100548457068307616247674006992791918386464605984994964303101630759318487075933800021160253546038777916124836840040007902211510968092658422845326663426424651677232427841488644657633845314314913354112461271372216922464157803453721173901488771775670198207748404403836320207317181382281213564669046557164792622228328755945298461920690398032235787414234285274805956674962812232288552721355898143442140623967668660000208658051698636177621825462369496059124095979637674857007878328545106527575636006326450592839329925604134772063369298964669177840905508562890976726925312677418712491559128179865492423567052117012258875686286537523145083391402810986725692510868110635987134585995487010399224985122271312533972527954563907550835546453259285212440702637684738996449644751103026512532592535912801031325275122839171935059474573270712448132640577385367636666721908909880696123870599238659701861591220071700636441935287410400719338225677966451106876160969438572876516746585806915834340073503204391802634999592620281455049682188605811525824659430022088471889059345000760171761917534295269147069000462883248880909268694262782316339166711240124938159311838659235997605981904586508540704151770734479602576525209827188043130968801384162828717427797410460061774585712073754791695763127516165745245316933863522657270508190370826899565109503605222814378538254393182311752119503530165609737263900088291028635350294114858906947542045890641106921295529506548966850107821130783177488754419953327274568709853694472459993308388093027535969139561598373476673641525578139125492159553728265274520369789965993135446053383477555706519595747379810562646324880646590404482219344139254846909257277137340457320532121690541995362920307135438332208262090885878630701091285066856922215262724962521279042293153694382642306656712313381726314158431269869423639574237593530468453683014980166687705010610920477347834985042601525307293641577481976696876273688914825084964330957909464737423617341971190203915050218487928286268983846439900055120843887598453327415816574210898979380720590893519047524034326259144760372020446458341531932665762921007224545464788033533329700189156245976301053681540535543595823066860974525066560365416327248553075107805345067255346822566663810197447475597260113902251998141226238128134392683480733264316197124949381526561504545300011825796400521685757636436032430880624467248645381695064144987148616528895683013285470248252404149739687020512482597475809734546448442391416528860306004740227896358056647775672448215465121802246591004163836168926988560779889927910151377428992099584797019227167531869151956984096138284331063951386752611210749996620670342736839427313558655748221323475347736473402201947466169809986403599925617359478392349471864346959562028866426515298249636719264692762269720109817238032521251368759346196017531736722217424682011429780158111176120165896161610774239312417224122112431690003155989945544053631224077786899368524274322294887754888368411285640338038660746240110770103345838343198725016558806732136740412231654932187571283380391506152505011648414662726346334781577300313985441039615194531346857160660515633114937393544614764938005229851657996372846359405924262339601307519219234052154991275049111712964008257331443146112064053075228099084320289005326853359264491735894415348306375180846593169375447727805504277369218934227667694429816407672080156341809510137191835292169300845522343184885434009513984264327112123754675722415026198719434332835275315402002718463486570902087903094285130367127836479089127153932661108527335000374932669349637002608144229100848228229193628349139911908930804955464843412953138516754048516578034104083631371262754854092399184671546270057970643856377349239561005594885524733784186769417890490515689932412225064105706255281511485479371103184110726786725713420519995308196739180853231936671731982276368392366020418816642942371994048015625674056652483168139382241846050517087930417131177166972793513778446713109777171388870510091446487670749664597701238151227238663237108408959789534278815430641658055714417408334358298633438491371563049731869585594596564969307518219646451947503057965866263118518229991714823411879554101125832600946591640037712535660442951222239673436453635142593811733573807661216380253057842205629940987454018224563568390933417064712129268406880162215284725621626195803097592890132606255087595762576633242902037435207458666816795326801792188585650478965327514941404776072085084408800807068573090656777259950891150797393940319993197384016305666675171758695608818909503873070521101572738763281150486371803678924199340451969102619694881814327002388262684209445511112418591379765532233667944303947944210459806356239752550598594557373824174972753216712774714995667146984580649673136641681536992210822609537789831247427745781081068169994068651551429546159995592723545736377908943964397586797578604652163205311754504540908467656069363273475429735605465202809811889454755189816088025310377794470082446373104651276969308200829823188513499000832846808453185288140481725616074049900499838416450162651777398707253969393814684514299766299178858866424561331786392457609427238831166681231193482763477289356879128596230677933960473083255804283615258913696742837109526374935072004517548525122387857411277842628612543772373782339425527071900073643975109113519376463444123465485050638296860252724682651599155735528831389389902378303632172556915631747958434875764393497335354593586550773178682815063761548772651111966248494461858842748645671777583453791160189455786186288827404634824352852130397277582406688146868539301386944577128119822445215921269415934778178817420957225152607137266759174777617759502517041650591124010410584811743372397968115553759919835042385371680728229764649009308483721551526237840611296895938898104183671120131797714647006950220397789203905944729625757740059458669293428504881801555824498179333255183109276822008646702507694134515136591644185644669136500276333811817059196753629857624873334457153121389738890099880385655910003534906799635749135562013680986671360561466202474966032225569416049270402115863758627388614840404752831776766372705508514085646938243293926675501290386360707627428739373332717982889538710920417094381570744179022662264100572132170180700178428857890038571702386706890691172879482986169243799269630478507342522333003788404772747132039224895298965574311353909555017179192728763632363564510667917012759386840053821548952598217760786736685056045031480098076266262266047203005123619301436916318353665555319976010457707918657361316319246609995851563701843145709721965633227554281802517032897723738086049715588379965064536680735874475311058801812584311308388909647748027068396439565491051125897760813145265591645998697801843771174546718427991935373950001465288022398887175744111053110827341922789925471025984877392259534606277771310382329656704677409185455039879081517886969644419061306487246898786059559491551265630730952602503057077712367003980340696993418257145778594594380925324292710897180871663097804278483449050991939589792641798910347314510079522089899712048460905059193953033228124422849299241238122850549861835905724762812696055849112342829794467281507037596298494026563523512015600363810828186317371435286032488434876382390058512751513551602572455380181608619463865835178411998726990127644603686082289409592092891573871062288144322350245573807162797036820000177252000795323546242681436061267310079535766236219876637119430712151104168500212545947932926667065596990046842382326297884980495433234974279180529257536144965425539980031142641912576437930004029839678463846863032279625088786802555271284457167114077629963108193265792181830425377952478809975687919798249530765266458877092580140065447531126947122262660520768301673618177993128352184025207563998067383833766562677202103747483497935841125054721221533954727628344654144676972814433889052289650351773801654265850935398271808480904467245997391510664548426712030522982707041710506929939353339300983550622374525416849456248409972522445937800167920517880569850321150983974334303130542905870120727503776056593844211144761188843407726571811578327669410523590063592814805010110706799895608773245434857286228049723146793240534818294379355266531811591623011074778357783843686676273223065150082310604679930240872467369714239171258250157650526825825246061964416361917021977936555116899620669330146821049249948302144390490060693230086183461556124603711929048594183038450698223020163211838674768554877767954267862457828396543646513800810848670290060529024150254154906123054489981396735482716215088163340545856751271964213481708459787268684146656971013125779751673840722076121784207619300032491584388910651950534440935500692276934535541862086393316181441545232924601190157992076923403212197751306806830780050564294924162255583849687498606707076727474140580462706420694520946461968488584037444442487287033226702511791999327805038669478166289006845696318418978539511131932479907757832776685466903178473836541455152569677353280112391772763487744052623946303348567699127592944503212331466066344524098097794236286769179393326099530116204555014539366153501801717105920092573593354046650773930837718201674592543975551350376477320538426894844504379608853138387813984611793810162247040734110482177072635062418223001857478043337856458645508984209538362375422539503913713965721722025739679277466915501668340182118364700443440871036173274057307999058867560095269603688943476073615287873561011782656181622961514383406636439398174844812972945778416668433249821286052676285187747336940608655453653460792540998190832360346726025886808643379917161176995566996406866460635540362983433876978776224247826125945855878460150347105541886260552711891431764913491913467925339630129855213694793150613989620550535688594096569337718960553580074338577187376910574334100895333485393472937004598553101057768321358401933726345028037297555171044592833062753353114993379408103565861314455586876367527944748937734811647984295766908158657761369571601583213801191318347211950538836548211606372065748317202110219653506602665427120590384023530845887642442445304414339394458026163955314811874612425049212602553882777547360298366393937085497515144464066382637654786947747949962294615670185550429968018325668353399725442895254975024671377622194864581031725512483698185046242773454948803282010107091582316585243579497522126591498216920742273668624143994141971909121379272402889869138068743377259483580295815087764803950323093268219989070328394604379768847115343029141671090881931462589794580601700150856337154060729193891741165993533801749407577149172866638750691903546283564441730975447621695914082595659786807056385169287014499473022404603530818893760055310176327067931487374074543647359273440222785171236885067571970777579792218674734842504171619587548928638837552933748033028397587173054471147580584036429055836026538306735126663612220598893062348144409533033152334834815038260641158800179721942528901187733011223426626754086389920729284848578875909894911771062594186506724439166423656636805696195292006090633041275973734347229744969968107190446616814187429545499070600922492972780996022798013384658640738071063991851470824621731546028181302299284155398825219465926625304731356326531488233332435139602840089583875151162364036058872460647809552687263685898843785853248884425436849115689863107104784073904207147471535054323586390479550440422128522354236330685614209155373341867170274296927835046508753158486424514477047225316452489220924455909157463503917467529053382279425984911489317520803923090505739397488847773590572950320475139811590504347162909938009888138249139804404696520637389161435648041655175658893192466020896953642163511329149065484300969465085364751790269563867254055296523865892632643002338005700350547821673115285391826244703406781892509208099820210413968330924573996975931262636972449679716988766138065011803951858706070821868216505714466444643314739968482127105734542057944745615391182873439724854558577630673752450776847399947530404454154445374201139332723529218021040463683939484340193068215231127868424314000304426660518369709961586267501441349170452051397911058030027622007446565569810338467788428269739222750376225494398049970289506660953297812265936676947881026077712710506553487595413453206085414397261889276297132054529508119260057069956679984290475742505253705541669936110564025316887625714790853105123161824730987246060473762589591545361427023406658252122593673009668086991015418346432910190132492362695562732549068979983421405909397350786438887432447965532241522534691920906362330225317697230013123436249840100210622639320086721515220523920796786714052376467679036424031462398340442870412414275919144857919106972824681962428967215661510979197047174044875604580374243966633545124098479611944701279422638639756613607121877830828702066455048150694083966107222208500012741936530665384497298279682961849106249841529091019554000202192561516862095325932266040422918235710444820700783764713865320531362630845839949900654962226800290777891182112278732629881726903709465677034928671350603680068510600604449678101268164687377923276777464767424876582278390121369710344352576290081941481507990862974774031267732283640940958932418123345372371086118134858461186336939760573626499536957550171204900336710025821660725135583903143933130194721689535626643719239802619973375197814707057007645809432097647114098097819532254039625092036646554829048053504752147793765964680826101558286367390935299456690370602632615941856968454587957784217171481699488804629015663561149498936133323016868823545899792297912483624431108907698852695064672649836791538754404741192642862026691502689865563453269326910057809086906442614071252991151320019681644331520046853820224140935134925676320472928969902704124798285082753389125756564065705627392704242444939457493755498557473486733560642255517323571697438244610353802546697757080144950479188965512532479274179204591974637605332933333272823453414500738831114619693278532829655238459600426417466891560253100894833227638683402604316072939645710759319159752962760842203507606046726509185302385409116400558954386211713253755398020836674254268590692769407027805949304604065137823574964399190945579306873705633085824122901566741248597150507251953206338149284950698194514776131263552414674739420992465224850404953209507114020070650765439636411508331449161133757613810607031288554158915973326622058714486129018165471139308389785427829463874361016228139682329072449421527087565365919606169001393056511265689403258380030129582807570068964423924729796201537269185066528211312374503340952039465945961325452228228070874394956325773687887612687432558969625714368992386171759343812791213932605499558510582408258817802225911023687716732323824095723969738117518688973443506579229393119878593246163618835091881683811061290348828114426452100622628027187580499564987948243981268621377279335598965047371744349834903732088031484502217297560427009016920983264914555382769063961633048947387023452337902564208709502250500360778633703986764821779014272429829976473983068276043878977425821520309037791573658700598634182650842250358585521692496421262934104300591549269626010758571122633041315085986559286772084184419500851889994218808522481544630702778632599981895069859315220847422861688668441361952866965038749497329038106159099053557036799350995178298198033251228939971162902099082996589573888674693497070898266390711837208743340114489432881964426452990653122164886267574156797848740766104862422810270030150764037991874207131221097601114149153524830986157173385468161393730576173647268876000211816775658936227741655756606812415688121862339044997083917534020652439903451049154863259239601945741469519219042343074228462320578731955830762290820713390469916039779877342138660942973275687910533846200769303772895641464621983237725729877564288273089527083219725860746471214989529402069711260002282148155335528634110087019959399706285225279722836263868379611963556456233947040890017763602789171155313260467265753060715199706885908384526528867645146182043069859565320567785286436104791243802254147000458733266621198158680768288747882738667836510892357470788241881859992598182404311156314338632869159833962413541198361385183211967939724878818663246345909961598116383866287735773790518679421674969921691002526123612101370524299907426830163016909447355474127166471407031011389821632928678187125331253470299474322483248417043072544647942572522463848270582240244590220094840976425871618121502127943927665416208219530038213157778765965238689563095019302434485295319978675569679288093193773146801017061072500394854300823277753218973960011853732119819011037424187127123688780492740175553670842644146459073940913247051370030993727108087543560147711045610390338373288304941815649742274887549313933731450698431732557801817586507738697250913851502013439184697119948645637520428878677894626171013936357709705216453741600568455827854574688647081818361510609976639797299271751390121557466386606838587462918952460217706042054062067640081514731281669779979619144335499132809723675040154954564192290705403304631009570019771307830113033712848157066855849387442106322278504188125087152790761487072919536957412045233461993760748737465941603928219939774780984678839018385571766853146767163279549413158088566221942079688450870243810644631538846812190582591260496998453468716485699758225571418673237082189139874666821882282113705777320198082803207084680777007494396650290048082850767027252411559987173805744406670555498617272691750406383541995326916428148544629046175857241243476004553798537316326880334442407998734942864531269218819728807137098024043929271291413133741450929310717660142572800664929624359859439659000349043955864289501765624592985303237095679588367663524848807426431557695856038554269063686416491331519340451394525498262054467668777680031280876479813074856739865492154815985663661993118104475853138920481531730970314795312681963642435237530290207809966189231491322738523410988090447447051312297904443304454795934003235172991058904043966598143902654522490873999380828635795975253717500530661909530223986220245520118194429046353397864597270293124750167583845745331249913432630435721599406435927435012767687058564799098613586650897581096100238074497673696026520704186783917991022471870792054193130020207529412457236653086366718053847050084001784282292196251906298367379255873472843733280482397402090350818822902936629415568446320564042373906179268391929484511420881875784126720707114175557952659992700831089228365032859979484457472496749019965250408346966129733165793712254442630567085698153706063371088649182380341584824514606318271071818235953980137922846844379408547937860457688246000987140484407744546394311943341523469324526007546676564904830357826995410954089706898821063852159389863959845082041412908032302233589874976896925555997596095283684029048146881591792316579315814746289003950901883724532398152794031671105600803613529702931486654064184023715713630683924412425849534777003251829160044580283143240910083927079593641524397428619929557291545546348582494181389253111633468172478239486769868775189010140576728495307031504358565443575131362375975907943318657465878728912810820483576429295790816562313308163778926825092209473459984255688975599110640228752567527325306403600746006845372040866551396657103695884829565301686438955363300500469122721651891613530630122469350964589479654430874477732408048335522177088440839207520994358543498821739371479482752041814919424894257548584794556832441079883236079935519843481774876615086346698860217949430273133752826545910327863938418592319182131826175251409856384658588679767605643085038617971143310553255770687078304128966728877864455036457350924932534258446429191020249960129700309180404850678901688110841699990691998443492607987216696479228504899706049617163233746154071888699823165036989480766047472059577542405863490815616671931922552179386656974692719346600845854074190160939844984278824772443952709628439277696627565724132092067914625031628357034425791747046796454343040519143591948406002313582709918265983369698887203469494854686160672465451282149072523695589673825004609271027222922755762412837316483688887517671052006158730598270208453718564278810677566765250344030407899688668040016720612339953368900907681272881858295846537943133800077103390514057527756256695344761605577767673657383407706568241981170407124356927541594526506863873183472512881671619254260315721069617848148447149786058230026971857968592452101449663380659874441890421020062150487066233035068166702455929125992204453115941077686076456895961321456759248531791634509906960435574406759212323036935046389024956547936335154187704037506732902649717324250362210695047857611411601373702755325145890176396085784081571489191916791793001771790316969328798757881276401389402642132692280971554486941648484500728067912148660630488046578438178576593892718649753343682489053497012648031453563216939158889998311249189894562260189922222918317204836086449553816903687394926783582882505784128400904715711849215156186298172125985632195779423471053265165753090625383023295825107822455495523424466695963730474129228403725289475405914324825890237822530380234635450903514706659255951191301412914281877483098782346458705235758656517634453413979178440132660719731742449603950286218727376538951710564022809555939182902442615163950791373840369385718862400166184588378595182957723049489428160416698167162523776927110545205570809309217118667031312951291763573168962191760442891379313847732570594401056693977257693575113037763679465922326318352151340680486914783865097456792042424648768095370455352533039880828344209399963989431342527139733714561404366640309146120108698916864743196229390824482144426405276737546999637704994882299592721224021293375503392327330697797315085592643730922172839685866071577958825583509676225795301903414353552022894198837306706056628709813479395136146127611374542453668031623727298385647357876597844557290100740177064102052437342058414631083372530041756410113811905169357321668902261018709041337640521436772214426518554545541906897135559161829863439637317744810445407827026954847400240153231453019022233759208687125811553407699144001245500940890898128355732815056101682811513815658010197082124570853369796225124557681279880161546484660480687548709322963560619534947815273668891706390112900957559902304019079297265489413294409848826026190464106646082406257870005445025809193427773118850507796214808452083191181767113977071127867498484837918963956069113068180459771633908873245194083086421913505911910080169839560246930836411490119496440960297135117777770445522792958196610948168327178337795358041146262067977086512554104847525266679181056707642733511405739976371041739396805467847107915838082289330823458766744272215032065276044211766550685349123018324418697699229723059045434459558963059054412615963732551758674598524952910578028847541694847673174143195959253278527867587485898050855289456408917929092305110789455667613720409439541019992606299122043650162325585098765782165685204497741404738020990708940586691216243650709027667762950417894068802491504535633211602984918710836879587094124380508168990132561808135256577327598934672450140161490464295912403307818267313875691811420029699925586219488245521312734486210267326146270124384726497404943337065015900379401601507188662715217010101434146872992665703969346255193901173874450571357368795172882104907049900212231107292488106232088873622950046628213851373899193081319527885021419714045383543832610258656788597197867497717723010639263431961994509796081852370640205361394330143917862312685935550812345394780112172851903234953909692842354192559793628256125630644082902145944734284432592164539623223133967329118671907333776847450809687138338385728844471283795761419614393843043469336451070099372169589214088583493614644633030649150500587137203609350832344152855404415322264526937549311282034388768454495659548475654803367940950625014834575605387317062852055446367072546023472215466469852043717390987428481219986177783781604990230426182849492755088167052459432801903348071363190947818048953665936366100814494462793851010957670458355144249128630960122413038947486152653869454369365581782401954157964069284665224488903454438201006336070731802917363827145388849083046106789822602304235758177793795180689999198290230531119150073565896845493174848980505650080770976484176132529884336028023143648723398196320896660540311302254451669194320402505350285611818552208881056371062264414209640136731359198394221905583758809993223171120024827752192686763513470137979182005641485626954120228011614241550257135252479304709882450978909181665624075386044752220533461617295049748266699627839506430698988364351199087460685250953192964741126592846068536047937776847632293664070401786895192452672847453264390053694867892227232709953847655638586238673223450594270391366325470800725519268863501918780215329500924741029496757369015530676061914727753512152043004348254223060196269457020658443175194142609787947509673627174875244932937286425087061675838843853488558859107353371762402539444877012320327627840411620986792941594904604376438900686837970990075073284962950351475944485839333334367413929770769076685292704040287423997815765530532463094702205175068893502537975355594437065076619012175702701999031586102275961043071106428312710250155067335710949354381940560887603714403005765383499025040917123923706202123460661232941378111750892589398102019679600201256848442299607824033756074017609584811213903133597826689205846934176323197616259378214307484813861404614196163055283618297353517414701354165286299045094514456203042300354785175301325999370353483915818055471342166559215512387411361079614452874703110366100252873015270027380413804017674937411434810395808184904649223391938559744364852255623310467938974993683101565786200650500960254883963012037790736965596624506202864667545180286697096004091022792301977573252631205663016914824833351742913597747752280526120374807623704728449123977764774744059828284391456358822037898475506183519162113113038195529556231672635661366770493547473265231183261879075580685695940611028296992408463115997662749402799937637272670430644969569375243703438573296905480120181499796615210204244913523015306178248740420828476887078175422686727369830969136304910453955287695527292367804108711739819901892520873351062065857693750958709910470815363579753854539543258855710706605595760513275556620569174864392327384027245234977992478059243048092504976460123814720395280890249563446965066294164656605697853423124788184606004277442741208964505154535398750624109124354142026960128135910143014872714766208421745479727879625284529168578123772417137074763028226166112950103308895619846744259127677925713275407507981505013164431127526992154963281500522262586252425982995757641605416207835426159900645462997640003568677146158485487906252270669902173971819427702501219215520185181227404062157435585535894968997980055348924529613947061263198193648784810217994107093694447804266325610408900258709999211339497975510666904355412992019787723489206170729498209813292152535563353377516331132772141968709759146487425276402849050167564182280415148165338858849556019727193722376407073017965939242389149143361591846779259630437340600998443123921593959197558472616893733545647481131945138164163728323497573743300166102914892667974880008032372273013937146008736368124370619505463514486576489021032745788530880421557113268027881874733047943388888687835647031956264291413069168144981613005199955967389264128167374991279301107191987599563830868624519397793884357823442348052026902615073384862675147359233843313622178019284746003672868999939637242630346124897861707233610041211414397982038444799750257940197266514984910283854720153380418806895057059905202687592054114340684004755680553239270559073564564723995258875240809769599544653173705471998323422616576060013268680524008850256314913547539861816956837065065240481740450738208105307863111201300835835307745615191450744006201509529591438252072354127089166548863311238987755109301563567121624339925055583385955487512100542004802608359346831046844804669817000562781912248077283630008244640646838601086308721746034265766173998993049927162269388521583826408834113935441978978926057042271591842554084754851969321086024885162509833340568968306410835732526789079927122276776270135483958674740667752929059413572771525334381825117872218593985519038764889030987413760846013122790761891591793034379895266689674310522346934654319265856681442004791394997718304543864766892445282205013113122008081283453091974073160231735863862006085591479357749125683107867218847566164887425293158143083451205522973398060951671795222495192063930225925573767932522927541378476428458915154297130042085762017814937707330231933869362020195823678994308092281774863457951584096018884507403281662554471996823950063912132478722175237311832656132222645929574280092007207136788763219755391544677074262465258488206048763847964261513239537588295147778786438321706186492598213404707273911585698563446472889927304036408100263484276002869135105101774323212717324269519651658163087915948392371404317760522314363274104912743670848656470318300914697819718694750417204751415394301043327096044351881537750938205154680789385514095018599348904704343583083870215937865195635440804165989055002469432239982936212406105782353852663065147561397997461838948124050198761273450132919944652741843000972879308387111693886520076666625331100034972158697734766177433134888134695927675246360806520215156657693390168467688789536058402394887043988217728105414201077308741989353926542590939061958429857152067396514376832769402278090697797364520959145914032914772778414472293767230473522920362880408370086826965018622492169510108466137284458953629303424394511412171438155420132720519762377572919788178117670839404333839498988644740785156686077020571955658542177139690259009329240190258979934707894738182752736666394675557092641854114013621164224072896195258050912406256568662476403629978576363804603867196653511550076987266400699334693010389245289598124810974755697291053510780718722981732756017652475197652297516311205334599747773590378106473912071154288012121603902053547966619909521112608146720477978244266039302417056955026537444998325256289841603836091450575089150086377308139941782881204671600545750411496199767442175604272592155020414684107965512752670895546651924217786915165440331876342118112891036184764765526357637028661371195496521842340874620366852739478365053930495304669630085878639402090727209892571829856078401550722847515193909640147950367736308715771096094245012746129746629529889811551442585199015604473933632456191830602453904683916230454355833548217558896631229273363319220225048147868727401347642842370603919145135392081611734669759601760741252992309540796395345981087034894853024868565995554754419059076939568610647700233319331045458881070024513118117276463509889381977309788861287715548109716799365525413751785020760141831465107394938012212125515589881500617755842195846016622806916136368242985770275505728969738011577931593275441456079762435201144511171309113698558445692486239579099515547997652814081768593191618243528604825291961750723195179846994358705064233391211028967968271518272173353069411663925936599179467475664248985734396492205909966635678241910918612469670893683265213460097000518649482208454345673294454773324378702437728639511841194415775930453494238009072421609894765723644988750944052277152372291850779073438543049537279619444608799656760268423191691941998301652913602271137506092815025302891871355166668449378534493763259385552065626504838745574412616015424971863705761168734514027070819890563283337409198121980606916259492826438203924777405049386681024206398088204909140733275512743495536235853664599843557194596451397590669987396002596412014772803541175222687940952811179963544763323917756042500914110135869812847810714082963315673549193975895539924245558652441954021479346579758238767044904357963329246919375528711392222926765731722326627618087702997793494937004062297709754322183023256806955565575626461769173821146112942937986568651127486067816033596083320255239139847129292672230903472604477796759989105944176623820748677551124190674553945559611487813111819452639597839228535321279350610549886286247051354586609747052898866323070181647255059159518200262404748396906900152247923564451926151437424559936882472055832311825264165695334783587339275194390368712524692769818970720184046750036265845803534241657722332773683482472210569132236041961091648869184616780669402283606890259911978758460331470542292644082327539796967267723530540387867634087247031553609694338687987590629854517007829190317103905130904326725195933949653956092565411291376992577554202886455706945460440348447227847917613407913044040794291257877737435794012875831417847883547085465759081748857053059237935016994256799627993022216994876757965806033156672191279249531046903897694644488492376278870072175513751295747217707464908591224897971334723822705347428700603609749761055123523699903115486840875106647015456758119375330707368987728675733162624057360873509377870354851825132143346472049334675914491661524986738821039268647820210259054444059615659873120522948064524773503696274860148070668981845644170741601448237010134839391764199922262076617071899628975675972172639201770824176682029915623004682164830851089461995853632953723675039423834394346140074505562248968688298690816092398357710512331224930468411871834820023827938921445281529766516081636927312606042575819201811042982714580209995918280611843424117630579399803278286231981052389089605518031006958527351428615805284545882892898668003861554281788467390752879034076431532178951912208248875449557816913519074609823790022201596222541869966496248817996653926181743076266565312268292925993587675596650085845251336400097116234993675685867898955259234729648655670558752402211714905244330446961684849886488015448648711057025869007871359801666999960401479965877565603306563899580579333604335524978484289397044146313098243224230571105532190536513754554404582685248390624879341517705514007807465333556303455776203608327778048654166420766386586051851546492016614027569926571617616713119478737603353764313920956972993389510026402989501498626008438830485220554149010394678356748811857871617938775106468007533106948314883656090565017495307990673624579507121805943387105618097694711390975170996971983494999889766637987949871992832551214685528305090926369802681966582663342810826966945716329629793898321229522260723286508539588879386075015599592342888787254363818150178306694662641549908759273548101667658140956660399331315433432500200625714027971735215153099234557376103289562656664973223972158111002679813732230505650895274473638665277432933263495414242450368571625931842677611951267173622761092211633464749184784580414706870065432574673230556030605247513806769804606486275040264575555055492061889372756111232054925513573221695944214099740351684839723910663929503688690638934978395396162359262995986561868628434340575809711187592392450305126042458762873124383534037500198723364836300710553253916152461221850521328522656422563425707005073787741881026549440524074776034946020072636826208858752923323558207056795600294210431529345085562021093701250719360208175449420089609992760254496045408404209361047792381135750728984025613375426848299286130235057272968667805589021781765724906293515193285850219206040068377533625918665649983526515794236432597708508696435573299674856137328676978764457334793571181100732693875792074056535422253279967051757341187711984283944649640769124582298844705439232976686455773761580887429897405416964307490771476115588586060550940893618688858493669918337411104080866183107613069850271196631353936953619895523595363743360704118102936773634213563468867960043783621531619483391228679929936597519751882843179893593346442552670966379692903327616469668045283260179662004078295446355834380576579045603470317973464220523828913717747782375631075293314436444503985102268371968044680860193862901238911094175122540158496531924998127218358366974551492018505501144864175906531079131668476279172371591894647554296532965570653854615033897968487385339640488723727522098435817719413727024067634479253855286974210044866055212063512637086238228026298547760476299487151824402052320575356663348127428831118642878474868495500776476308716599397260155572264539073809801393203105099498646607068690831669621853336006453439504360955127869351963861591094864969670325834261642360605224642253153924071829892307429916507279310063594725673371325624063515774927668262107332287397711066087182048153614015590906878769891960706968102688610842720610195237258613054422782122736978544354405188196281387837894947029502118993436854533803913381045784907433713399665880364005241672040699920844868640055696175419740845175669458020562280535258628896525836824396558794444927847145739679422497446908566002276938311870882698055313925603276573435200913008034402044742837121173043649234404740825349531366363905618929208923210995588747404058387565283441897262115755332470822744320218185367985611744567511222600553995150613958930923474829199870209315204819617153307408633789653090634533329900852896938406850450032054379062075005978835402636645616176128476136093461889276985123738799083185769608971154083492785496590357276372633611931309404940168452821643252625371756687769083774908595789890102271982114367405131873517433089401762275732003652778235783799939291327948912388711607325855604344022339507610779203106550691023222140127976246922715912851978455131863813219569157201493854666096959432529109003636292492825148303213977668226313197659492148415533434499844302085752167247935483955639318587843861151846622491168872092279264712033436415314416512420272324959176684896732207139579729191760756022163477811804581364856106943453991593116166570139973553069586618729400598308853865116904230802127221183114284025129121604722807265015632621869420313941151716686370416135237655754551690487151199125521470520115952735722433534277791716179527300720148235571659001637883077726155027497638786020967428711908192643349012004913709496898459031800530149779586910342026189091299061425206729692366185543349373305256605563261699957191997215952720209539939871596829083663755369482534788282005294944075091985592628863302262767248296475875742879405857142380947048344203381841860697666900555187232174023514471254690044032639887673181053106494128588990359353441920423274021094042390041759484336814196744256974795567675843662523821935413777426558669446760592135565099373620699743414318719823449920793339792260029091971831968720253152670342511810983664218963108524198330008022485104249483994404070187427245422362007577576525809237203688791451233896857800397457367095149467783036165032070169209366743698622669848501470918192525494382616136782623312935189659617988763676916143463597356012089121385904786647387257981330113046571649646780046095528082482628827096445989311967821169048087356096219476879706215032157613567861345602258919727565616745668105361199417125665962815922430570250834869824812173379564817405512721021791207889354591535364490272739293843730479577841887251301608855840939035758730372592226703561503218563855148261924082404853886311923644709834901127943604775802135647908678312187283747570905853679786774845906914534852872919820569368898812931143028358899528710681382120671913662063951588518384398680463367771364859948273445015424448551511450182451133667583232042146871651796928063819515645072604477950411839522347829153841929930279367670792016156545592621677332397135979278086141505552237220338141673331122158656289036377039799588805336918305851282472714657381602268806236133099997390786424672724460724037215139401879332924742513365919508809421271236745226851983465938583231504854586963657347275877220635698018227382896207038258424811240418949805441743090303492601354960070938384627371037825360771948825784304617608633859692921752100703464814575581967843321458706060329972116016306123491277059092894716057420128229499501431919055693576952661790687676287446280705053633313663462968595052420724656826599962198634630799073644183640323565252914900077250652274786264502969833125802181574510800995941007347913774989111110514838159269508433099731977615263557962511051194621711290770802409279904196871829327205069172812277791376319689621485400614993962068489513429151705188269600759459160617502466059675551305278724398990776692376394331786118843013859470431062245270210194522736823964442901325808869111075411541862541665216729784438672096771198124217244391595134342516863522913683588455159580283516888045546253835653724941702903110030040288735903487079274040266938330228913003404951964001202364366234993905796949283558831957893288997512762725406648310383572365759151007928935453011965530526324497041658824264089084242583173302667665689942482964963769505849715171625799761552685127745019705710152413980294244229849125710821392289172831723616305261083203022407791587151446387188259751755725475754048278196225818419833904272454380995199003137168702832675136342806899640200594399745727871726389242765864161084014718653878585192375095735231414976623013777752123665207476631320415706884640646543907019991605906497649018134686077092163402489090356853791575181411899517550460449337949249227393235747248861171028279738102875104529645376060931240787949828181760514112529482883027863963793770723534970036952167371049876994787808483897472225879218248619697709286085832674767091015530408233879636312615672999613214153694882059100717794977972908010263640103389707772290378303766413285598300475217150069340547499339453555314365719116605143231489182979637996996082313514351748676532722560292862311757735819592167810132009023835400385480075919858505646160020729588870853921916145446123173284871718647445304210984607616427202837215282159694342029110922235676088156945691184592973621480106969223111900993901728578042764333939784334015266191099865765761803149927214988133744157454178317627552346349393115069028794886730645911193253064285204980927591585293527008903772244218165642374787236442843357203851009111974792876069018103275245751629019112436119453085829618007564048333000494277242806125501987847789127103581125225551752435997539774377011982450177699991065083729487089222110389631208198737408276106563123492334320486698040924511409419456275626805312046579468139799843151131050102768594926742820363705654186844220101050853171091596060248177788438465122485838356368749888941771940268085250429884949563091209852881274116722960998572096873498805373631172063858853276011574746608797320781455093942995059433136206683167918959486123425357733692223113368680896169007604119623351522732692360546567212732441864141444644094899973985811327759038961114593161550414071068944477095424103127999039293090010226661599939339382894307739360985105584415347755556805419955654656187351467015788600858456252188726233961572148760012574989753709168724370109113482529838903529777537993295114165022943246079973846909669383761709927260851910945362589490181866945954932576177899151156101488826588221492195692314567810446585612493133075484495909839558697653942229263511696865999793246794211850601239623387775437848824614762040429601560933239562886333284153357184481460464371712915677617862220492932392642571677995057981213269916639114933701631904959050014549727065395901200516516274889956073034314161588867600670734169222233862005581199930070199467090521241989757444114003661081804150897241992716875800571027932875477844102454936587813258263931897108530791080597946815314904957506124435663491728059597600293385545755171646036480512755912242650375038273767227546160425043010295454080047461704918535693838922747380563190056225989815196252993632155272987134295218826651753419427866278582169538451362007163007534677974857201830789589318515969365924260766031788164496558041637488947359888052405477993547587481435542806917553207985826729880462721284728338950310294446326090229931253317884573635837071992313861118594154621813780979146247279859088633213614905465753769794392023679207954015033785962898529818880715431028279558020044609071287021760876525331965105698106972554450742944960849865843412184067421378573472291225615592334144563802777584850061711492769856202803508649128770840889265492141624942556768666777015201395815081832262742155770524408139182399851100244740262641544666343976038421642025386216712160717727853826811157414441827307119587384656653973333976504981717218725214106209771284370697427746296306548730673217261203541220384409268501086623845671826181662018980853084448806354574986492352061587756434925215119891343884370985248289860338221570823969867175422700041808798357021013141832753180828106540466051606931720973084132001217063014706383510268103554150746826232809332089484732175546956012285632342628259257588224869131307495498654544408617339098684946809625886924362129048546951827375236696354191805818118339590311342917914849038155372894687837235544654214603167402119044663731938574636222150585322839905839864366205321507188944284850657924704169886936117715039959369981802198219771936438550926479920884313176955680180792749115275347363331943703072438513457281366382084543244046291673607243706974368301494437506599858263431450661563566557408292474972768671115930991209491473740559921359062253684980932661904386948145533783715028367108641392281879281552604317956429437433521799715000473985232025675954629858699300182310147215481373643390904898216294578012658435941321645199472458342144197345342681963369445761848532007782222620221240666260884112757198146517383164404808631676070281859837291747985789813630953392515714904690582334674539456401989641384234648843211340371890787932502587977384806693917907506451759142357301291969841179516900409197371782616088647690378013427171998854456290786994186376657344779407892212288680320887480335419270127070892018159097213083007407850630704178245064947220371491255693520960076464985617367050444986343644803034747241439621517230059113751012040446375217719211796833817510994702269373590184370158560817602289641263042212164569589873659531461581331463412069888766376924155495343513557692279842474308801889538025882942049383087924866748504062389456561583992420735648440679950332800821599893449394096438588087674446738577358436671919717641292753709504509262498851709634103314590506408158553250445551025660435527369033249796222542738361227840189605812337409698112888598621873414070774244439087477845670963677795031040070712078585562408549831334103108536946343944824919828733131293312445668275909932852722338151263758961729192999306408798006601546618782258200127790824671283377193903899821847689367126960074581557229315539334719613117783466384349685641355615507051079821660920434867441761318107899888326503009326471254448782090215560796407019977228216207453299970005616829465311835007750622235506676627712035064322651583553057777729166936909407931460392297800592865623663657752976370201273561511624841401643710106149263437576206222823849365287004353046853466243606645469771238873379221943849253077466159056573067106390590614040955371634233275828650352945063149435014540227386375513179015969532390184882153577048798646809639072745418598485046956086645386371044187512386107403157618091590474197049691896567387256447279605814193873973374691045758981821578821709208942286976960741732259323709847490002825039019346159930986216082285310464329399680200847284845595343812175712529629925358791747847939011234702196426352258650444437125141988548851552987996314077816661730990795367999686479568081228150486792947683408327433674579999454330888071381648988344371071492837386081207877007099426813925883429502368858481668644665901123208101777675847914131261691081965442108703219067772439323401356701951951061393231815711165094264280900342280245307659854557468306160911469861396186941500741830231928212098602707815656271128071936683710246702599131768366843366443001375230301183372539811672010138646623729764406555021171642115931546799578664692693359957026933471689241026475596112848351074268751245305470401865747159903794169474731788558976586807579851260329046052830709957788140695563805760422205063617391473487487322723455295487533721927960003791336726897815448305957860925067124730623899852567303529238340097079201748757714774291893263447925605259139125698501351966216737295746073044388127192816790266090586924734889228314302635595180691595751508539162647749926699643997833724968467930650115154974109847158461063823329480665885319804986683042286765126541631395541378409970887103341575998951670504263848335951686715753462264430113171734181016292800612291274381915890636664959032372714603232321269954550614477763190501405693745949950958581449923815023300172793585571971549573349882493055705033769331198556687630725298601662300488297666213027466466759871012406261450636097035033679626971521607525553736514462724982051548174410748391013781248541425438630626331285301935547578659403508701725788177386623756672575350475602650075707593001041864608764735892021508782121376818804424674543963502603235190822143983907750354623296739761238610547021523178441809249806476538507840207636680251944049769712808931414076663192280134024363101753069725918895500771511884801717131904089768257318392024089921654404916658209037109444952395827696920530005251793454259623422563937526413336743034533184997120642689234182304292575144714750143506768552239155362465481688844345628137542311992722964048885302389210481088535918157212857701915061932219517218201175641730842085050011457510656790418622148336772593081418567093870754783579130439321437197462288555366327652774247472064627168515692338962842558113477734364656998951767267914211617584833359452554668441424885877192424799135283524980094026225960430114311937733571113580602393514305136199087620814704942603778536457717795171474922844292024628410642889362293426597403775763079479464301861813330801679026314432020305425334108278909263562848947976608103699922873712659447373113022845248169180474672746492550165691460828939134676724936993833797279157572633869905481857096727873923173621187692460535492875541648188094786743556786664740030838411374401700796854819066019540107430733610561887606291206648155396529848093275371204007442399403608890234317053164006860211669571940013055814108793289409154441675296274014979217765399271868316120393943211198376097688663106805220588679880614988690053739102817346769875202759540373392238217582326148344868073478156792854912450028097178721562539110102643255343968309619375199546313516936289628512084421135163449085392884589844023197782866749671100112270984041313233949215120550284593961764359570305342262985812296991958055291104347851784595788384162823479200526950063775767058220790688764846337518222494167924695861503774584680965026241074390130046136257552650300543885552828321375791647763009235957809703636247941054020714177339682243228295144629097167133143055725422858896124692692972353619787853067601372963192744611241396781973663235135423927761230879987148995554732976701651690632459681118844486999452968383346478732667976231033422405771336624567654091589762784840365534506186520007338987570898017918159675560111892881869946094549683849929382646518828333441491095617184067107711872738702884883136246591912199158316003056565697603132688037245174707206549894298197874399800836553709526652688921470172388792655256114674740273624711824762879222643096316561889031750138892010824511805074656234161080454538895253968307226917488540412029610025343645675651270080734340831062182255144461332181577389894322411804494315737147202145290608746202304335226090679317960493813932693082958706803517898861089998167282729181908495103101544563673119023087169380911800499093783268980985639339898512955679867848071969405789520051779726485789306613107524272401413620971193676175175906916340099980783914578519303652866155211894734559844160186712782560483574506282805570156232714580055733945571131689367486936632981581650417654672356395805695912018315719378995883305643371002584685689307444371034713494423834006956823107585875431731272358147885009550035756738252940430908957974356962820538303198936701240732803566273277328941901937287204554667151626515354310463292864169489954527617308958682720594672114925280341130163966037803712534143408645577516314914093679581938534811979856242863962529613695484375617201031615971913480957041962006975083313708263287654266300769792060947499535907381839926890371056714304447190893268960395229756500063480514501935696536666872011113534034320131572250955074887888092453490021776766345702195325753259315190662768763064393462841769201465585991281140303839829598926913608744093846816906996549566707602102175076910637284715820287485432721766322250200647333137824612589476670013389560176606274564387115134665595620317022218114199787124262296741696042908777616722260568703823657473837759545258461963693989004865672333237982940952290293771152817292088459036426404638198410215729966178883097924343609783424219629615430886960513238457965426487178755366932670485435141540884139630315591597647094672640716591168985490699861992728349535839332262047586322416562663447664471993831340879591308500871733758563226423648806657683966975983597276033763212229901039316946505416315429487833763367785333817969151589867319416186875377006657533136977713956423689128444271800145648490014193689482355039783283284813783751192481894000423979196556290798130733074893903460635648922141687657064525863979245944610235167817076547679750010978357222394037873702607594234390423960937789784559048001314371178408636481213681410734684839499062029531800712032430139502638083773246843392869828551735631710243999867994206703032768416780191667996768404377201260001484693430033962263452046826204704492183949393718872158506989721948115265046451943586799044207020986746023552637576474667183580623542649212012301566812925886826205768502776224907102897798631857345275610750895731903691037357977749425269210305260978104869857227571681437250984640347974209111298910419834948874159596578930101304570782525783868574861965058638214821867465475263148468604057313775549456720126109374521973439481090714001043588465428699963455757303436813252776133513102435973985013500064690363111910392091088181064705980449212643629261685698078291334805282764872557893769938572234059352477097281735271707664070027763255608287568188889960143536744531236023620704982019584707947342237105453915446484569029811534596965023725194895071508178674124798975296145847023252957336596326010959631220037452167025630664763397892680962355246308567763162979141932420999123116937853836558552900907569348164112427911979155085005605726592938812039398185422640746959425699181794857929635615919307462543020540014827323783109244122489569858554281522299336638307589795880420017461089261548118510576103615705412970655538244306803911944994970779857835633100773643570135290970473418266503744740024575327062404602232085389343615748716297753264541233685687859923933716625424070950151450260891945127124368798836295345858149577483805268236581115197324999862237829697215260025601837517843052314064909488483252874257495293253371798382329292473948855910955066345653055268783519327853923139609109974742305299016489228276044130034322174686437116491737215867399898001340099336982500292407403160972675105420199887621366878493724608414833619289973456722735653181446939069399432305851766098701688075816996062056360198597873888382772049090915949720958387531030592813728743051823606000395845562685008945298556898423734702266816070888614780709817134021239450354271176431447665113443791460765875895974100871290271095037064786058897671901201989776661454755936011130246993640151575359265090459956532509172687820888946572402844072416979201982914880412039234389080286952133492876944313331274959211543718929823610610454048977384203490009893942608801135893279138750970641846014107277358071396856938193396411462856507656690556595241244384387506131794597830215818819146648494422507443356177925785383251602922050694274422465863565830582399921560059522048565669313639244656116720328813834142794877830788077213940866997338157828564811927070772635118778441451722504909073239170692906490546109586939967174496037016100917328735628316589480471546939681288272745553515280210863567106370799584685770647939593280341295631280337236460875384550252878963298466686372277140938734068064560041868302621192802235953161048117755856064662585192632572167632501019989882030939905803904422721469094076830211270016119212000798227970444209349066704580511380224946222458522767962418648753872704052179729981269314668374025057261022235073616941402945880322717589610577211849902991364602580084664963316681224905902109019690176060795979335078867836840844799538442262007416911871607185295821052243738785681123173508002048900626613253726568840710311028242141723060146397976331705693560425320428063686469443049015968499987862673731242833349812875977935387024961697926386558064869174676117857198016171834437995409009903789516257593267586366556613345804067929795780780035006205749575445817813314382778812347620394735765188562447037006445957510742572817412782483464933069157876007387137202975570591482684814459890581346530531167338940835004385796902131854736183930048564930599367962929624910331537126973035095632355995910774155929036961504412130595415582816564144247995356045183471195867827801377405388682196957304702390230132691316241619628296808197522228540682737560881716242643555576043914510569783256460102979281461861968594556286459129832415613061656775043635607808195908309877134688359554416729728884436051741545014557284862039611321901378537138659914816590589334398501683515952821645221253871246680471108058512165693247685799417367247415163548747859845421066053124216943412550995993293367302622012961345799316041187724128019778333036988635769203173269406624044866311503572367309565632066982126398499248654691757272423811679623571724545267854757278231378283560259926145486023113710551049646383828350784060293439018412673261039522089818055549362287819120396849291556355834854238478803820416608705887424363769782230178207019008165719053186059082547307761497365824246690039746159565108460032919145011038855435258644135563769635643067749587931161447085960866521363270434133334017342951055323947564125636929919127438977174619780808136881609209479857148288354805211860552899976697436578679975466903721438216473987103529698666470298695422267713742918956096172823660553783938717970988101645331838347763384382227956265703267162544637611787382223972165276981399293520320267208931405365607362083682049742813250842395281436212930385330309140063937690739980968948413923331372145336933669964224471545105588909458064268509491674490958514526582153035686248999347998800220744510010949620582926023927488500764718840119251452611702200245123037642447186642289141203248357011890132244473272010194388278957662875000322341341879909478735019762652529827528624002256471035987539486494173700530293496074899905558368013410468354606507285208535384587979650145894119803867495450944533950102884615223082489850437424061952584167864460438807698838583266775641237894980085967114754718513794378537703580615019412264897925394129245297627988086788649839119020138991284459628709443288704377720527334750101700638518398018506485164916869334833803502415282256517813553732511509737643547803684728830292913400792991221599392983839836875212229986289479672230730241041718574466492959173943405373925567162029004047994020866429599489510675457639904488818439694975667770887577507288404074516800164457737019565444063373147213714065332176169317530420468196638830654549065455046746597032268895278992459774841591521532002375223786657153166271949360782178177815463707925956511160759478064970068489499644424760393848690746421199013825694172964503019770981181211151558052785045026976156774787414938168964903318011000408068105621860133034850745576975980210233107380344433649724868891244802035279534667582036132386408155069687906438123516178229708501471843234506900806461401129114867129838260090614019750779148062027243676620034792316843558737174353212500470222238682113065440898885684269271877939384071098635088758929099105923206138688742434227032483178738394552707282495162798437579771293261637398494934314158486816889491147473456397377082961611678187444709094812967265750601576533867144643375663076511532074106393247890442331727656972349997879342391925623421546825348551980796044850309369341016692269362173533959437678715803579048020232973607074845295167687003701949094927146897159361019944988957541195688011161250802070262967215449369785912633399966714387973283449435841825212203939853581934648224665288296585874852441957594935855955175049836103891904541136026249401470331022246493664295730851950972542422493423865437728800165661166481553190904544781261638636872737018672721566305502257769373667668904895645387864625474488499039327908988740659980594110121966216957380120594726279782046058609369709100674133374629643198166923202754518633326555959092863782826541435296247520601175615634837677179415892423425247651378676558042815867822513867735990371773033174175339746780879403494487295011732721207222938497301547972317873221121273353358037586560489284447377166111158752628111498041513930628316254405043539182114141847703427076222893718140420167379387166268910254174939267302894564526573083607372664491957871833952208335705803269887727559757768857497736700378196227700613335415829908867897792370365787839812459827157714688772046351708064074718833019311340778849558896328977879128810093100968595603935572504078898766620341924917692111192230139214373002153748599738225519371600356222594215839922414257172969967929106123347803449170109009936412015096024932024544975407658873287271227675598534943723259423696161617905589900497877188360524567907222160015234075403049652239095899118372202653096178495610585458202366835280958620096114350912071253451464045406442570451732172169848232472895264382844346619787131847882202697790864377120944417216202992771949822789387341043472061710925337187643759382135840610470657158656400202167672203864496937393872725411034767023840439705510507224391208795751865611935565647820863820949659456903261935722994537968781606281198484485706331274419679101293614920450857500968030907519949687030781241551302700160516385022121487118113925744050285884863431015510104281889121012116860465301657341918536979675022457143862060492909175873277526978961765950808842396124545920108750521435367055258830656087475990161708738130969199262867678455958973402388073896529221806486950491702758879239613978248061932007390887463196556906668054519924131458206069437623384278954343314391745045091888113970380552858715868659135400628606352403521199155204401008938031642626122955173553903143137145021419682742450927561867676887210205094235101695928588130835197315187912972162460356857201283599054551278566129449336352674993747966761360952281631838846574923328335680435908416346049693152926510714338227013068267826755764764337579074599484223622964420609302862990776523177970797197710283546323288036657481502968664352784734280309410892903178216138206725175214476556848723949350569754175618235792459311211615665725113738432765141029805232566713520139730063536800575881120918200058972178830403422095153509456135419902331318102590774033092265096420095585922545012144426820003507676730190374374623521251268230812209804511080004979314952597778442461066638586486778930548944225447811622323574096481296004006035369758812754193942222407946209886828389789089155239936553083638144450757984556202254241840648566551604616326964824505598490437707085362159411366054891983870403164392415074662841097123404426456008700911925329429988697001852658609159742987336688928054424820203371009246443737237621110762499321206170687751309881728444233321272633839163329150932549948071361385645159149905185889706295094996453443336283171381650426726460338396261270203277253867460189825928591360817767615381290909775073424239516426761739272083129223209740472857843852808233281777378521291808874763519329581941393171331969449390519561319376855065777777848111297648776804936393957099413461443000661319520663488190091649251464394096556615567531068058127784408841101003658119925920634153110273715658255659518885888765549451056879258747418453434223139270509932514015381428025872030383846641170446605932332072555202174044135735795512352413394940136175556356226814669666515346629190648088963652870128841519444331535933641486166923417815061924861530830581965251756431633849793501277599952645425302228235357895475880848734989556296947782801523519936159626340628759244966819331161367300133275856535087742891829956149378803417751243508974155004055097770379532209984699468041878786218004821646234074716846906011883605154733780445645300091172984046775860975200403820666214216629377051022988965323599656288302132194733952848286350667588317626506571522546389557957556116081440620247677597379068465110722546244576057441421611087270055154797374812267830387071618713213984983084112342766136508835180528018569995594148273956336836949104625894365743182296469669263560680554223187521299295245688061217373118454452921570470372955716525234286461802912136041042638174076773797142420554454761111121611899485438335174567698140837987894401869801870477508463335422845641101379082773299242995645502833723211933567845963924450679954479051954842199654402056340412197656299069537618534748691017340988623349595117847895379421363281237717853594544810917593032745360282026263407422630557924392707012333463242642135110984695957583811222547107151451018459923651238803962648324009328995312311027935295424585202699765139467644864704320012960844937965742737164015345078032296236990737934988130021840199481914989965443586406604905466986868294203410638514202935677289849477834280173848775400984165034321762259551934888608038291423365471721150246438042284109728023088302776045385942870195228711702437550155386186619886224360672553398221139122281376785566686317881774260953131197006925260213653836679961346430827519688570498636580458009240669961973189731281861019551012876028592631158943998424749799045849566444985205282989236009924613990811929343577692777788705739852451137750324944490814210253892313662072092521525020642635172406480787085334648997241982776864887065189695359009095367250024560432608927786102612648167529898592872337798742335493548457989813482651040064531422050845083878746402486500854211249205638155487368980635069145598524599220776276039801427197528440389855456211048094860691242400681839119126329078624504063167179777814846655919770858636101368091532906200316582499811578531636429960347321052939557720088849246721493720828283687124466236450475584240013193505186253322947486939664823924586392070002816518626063632109108069882520470474663030686361558499715829751999351630723727370828290529869621883961206957954884607128565003385939360184704202492260718852440858871825734175495867474842768427656626231425730979686155810962124679057576222991574129851101378223162625573803427437758708785809251389396710896977662750255789101014830202011648747580876400528869859928765885515933247672699198834427568135410981142366622340328677058541299460717881348599880956736939483149849905946263354623342193831467601087826836759804519193745961956276585773364374901089965338941591617600189768393395873398150501634848510007804616362374956396075660577616382913952305693254063683320457598348111463312827443523893587464937640547375716859107367506135524186362128276266972075119072063445564852992987431624170599014755909522370021815787113508719209500667285949861388873831115073402185263775701152832036496270866314092248729299172362741708360973518853593991905818411183344724480806143657200776150679582390442038671276866070272427252277452201385629114735604009108365072368902778526384315962067399934727775128721844191909255836016060555614033845635330422844706041199852779786740736026976577202062393054080725513912193525059908908826809156462863725993560706456951830215704383192280577067161450143970986291216495682090620169621386714827251481611589331327952055101825825787111464092755734632198198652238191757523128828981636297223029664004049859717358146076501960546478374454900631550280956735742774962789178922537333065667828902627612223890373312347410972587407817810160293526002456010263497322766500780446725985490035928185163282354285503496312276996115149680174252781331020763498009946570172805788187243361070488306187027573200603302795718649538511231424993677298217647819831706401689676046222549499723190831882937926463176449114010063043563383665473793235606960922458966955243648040444485756606263620610623266631093660677472202480755938198320243904565029152419707095786461081286058094877927806165984522476089981970290128825632465122440889606376475700010110235490151185599295910057895914830318457573377077391372457564211082644365146086668523761121200125600105215122593255216026662291637801189379380471741697059132648202899610344479072968742773580341980850433651294041090533864842164951648279411105779252992689880468276074193635585936117192852544665660654345816331956278677640392586315277365488429026397737336157352743783464107437040079310244177235735780986795455237234119417667181259571014178263502093678341393031859005617008171670509508040315419445394667506523574735550598642091802809604540865029248241939316874199116476537420223986647438915048544815064990526600250799364027954157919286174584334315029051185916664470637324645976234492991499617192039423965569706218065510997770016984159417144180939452444796361967174973015213923027945946005070727175009666454318985962544916391507161845854143094089186593974613785801194796816273051654588145279343846054484963694207147258706130955490485201586925267985301316640767826344766487796689461905135464585724648090260341341174617202106544258723606501687651054557081619589302514598168665826586808404060314217153281833184610214872608017995449470944022628590886932525567785404145462242124535424527930926754703175900846971923221694642594102894984976553623412892407492951101136272295169394304703970455120351949615734588259072816720399930484939264531397627185113903610815734574413590924591673373015649755948302210285991023915669600127542101775212885138080665876702908547755376514846603344660819122849138824452140907927870386801201098784934364349498241320707125861793348440066348287410185429643061164811079425706467865598911042316875201333782246224144176300252713102233937333233923113623589120843881614083797162871274404348255321127868259353067755805114710592771949199616399728127962009268359785490815451903962854452459134692073663257577596019190179651036425453111627502667686819735482356179765290390285503126471757481037082272779533387322229526455342451673979372195745225002544998213890488043982127630283086726657827027191250364326193111190150775307877565669861898094022085328612433789462939744742794195021110176344861650149476524871670403161095580688217684804616788092703554639728763464214484821781233723173407804970077297944238502079568817684270556746277285966848758425739390031596603181700671154827482729033560446642698591778947590617731262478781445281346464794086266344433401817592382649769195144917203916123942507995205470684100837932386145001174818057251785844438377083250257029016489186779582771932055848836105143772345635677054466656345514937639944873945565076269120469282857368643478964179473691421105161158853724746791629764428664924038299177575973819485179613517008591435363497221371376449949297289024649421995955622885556275231712146209745941795629971666798819877940310986178220860099588027147986728486293507724015633634168619582259804910749672595197621098016685317973057986420129516257523691671921108937217995446503225967238694411840604151800362481971215068178629909352479932027099367936060057224037925278410477088953290877827749103116617417390554302744380020054666178749954404479624697675251837875165275733056946290421476219010793338301252288670403369750035186918263213609257916709389813679920576570581141881460817109070306532489991308202750025946421634223997367782130030052931964371883367335892746127520559971210697482943347265095991385127740017690981118482378390929781089975293075009060047111544514127972411048097530036235000312476540709289023896686506903932545331329206430311999108044382825421864646691927426132678702835352327683952283723764046247791050799498983054932083414268802692708318113070530818426743767540832773186501079986567019474101630768604837883921162802592583118008975649686716851767332066098316429089736961866151486913348190513081508355477473870023267851823170784133680533165531055523364464972039990520389470155036735015947284256737714136424019268947333960247978023171075483817933275128124121446838335053726579148429026813034520499951419473345942355670933438690419630614985253159299057980265701063622766148613331222844896588938720361650842630577092681675978655636667687433637391693570904039243731159253094120829280445156993495005934586862246931340688850318489765854463755941345101969060963563394859610359024019116031659614730747611105161145980308096966932486129187609495696937385517568197770168214364437142763447120683294797677469512382137948840762021431636004630702568192978274507536613661677718435509179775469599594562075294289391546492025013883843953729616970154927835952841062206104833864338450277166032157522359770376359624610336679418844055594831308832894216271153515683032892374463415069375829154731599458060599218866056145066953919672395360119576568505791755769886901730491788187691467617345252048829391870794221849278489226493849997800596399357755082423608936807609555681813405928363922696060949031396242229285772262947427022046255971671262153175001808314906556740825842857372059234310689085712898172586614647430073712554481860276131123519873671926746488167744444442293181537888081040023089022168101298690298593906879897247478415530432191858711148807115343025462431508813045830284070865569054851516475758092634861823936986290731908393587573990405344033293522859940411656524328323277380583766489998676386351151920395541417052884744452748990624979372604382905084726897236779477862447139234306660961007575239793008699081485702940090048860696204422032463225808515814453707582137583318296327229413827138571674944618603308566779402843976314050972127672789690953773741374398528792056646562717799374982359199269777090552044641852132006606805333724829835457794601437788683995894429405646391931631184658963407266992032296342212432133305184266247037119271490318193920640842220902223441627898718843223348877701469445660022742481612462245612631419265208296707007602047606906775096682323175308427858652472874618218429519009092368131642088385264912450133895378794192398626728749529173068232558737964000123834868264636695733443838878515166494059733299125367617063076440244704213423245249059807131235661308497882448581050083354364784892156822152222673609137028374216726093966621924009138971298503250797022052391578829120127774730044610738103864703017241676131039308433519214302544157069838292109985636398309228076568011592591041701190033974703479875393396133131842386696334909776254633069307543201892750149357079941597702316600280194767562780150826303728343977844846889677686162745784650876246790824279952424981560721966522302905635625537013737547751802516867144764885786205813436546892551003823925033544238291170031207984293798301518299529283976585236683780576305713781131416912904253932035473658082578482048160574486593519631370059473922526925215011225881286684450417976860909166567511462726995006602980729384822367293445305461969689085948791396191067519067644228292430470196330315901663631645052827770117350824945331834191274857826634988026599911230171132049616128342055108044052409326185298409163910210209854110101828986202808617284656024671774735767205542212080611329838143805402543816332366748008398064018039922358943446328759027479120977308324402299764940980795805723865232332396560870743172627143151440137944365075526294834980885411885260143284898502552623482753145118362907321700612782952311996255758975287778785693401400705693108859320709126616097774527059554812680143433278339118499211755599624155759336117198198996896766173066992568338512400139745623133815041371867746493379761355102982757447558365837029935540469620423303373414995150537909589402333959437042483338400783236103284700031531781220550923794888501481305052646620356438343008169734676003620490266849766561211629216401599991930108359890326921050740846797431626852816746123109590241093380552290804030169990564536645386541075256201748659739387758719615059551216959254462307918721144459158326074575705328479972441167728714166998537013306416634887902511638503402139927013717805498090738483951359027364704216997330813345912644920708837722589652176131915925672848496614017124487223347920363638941961179088062237257299445550237411155669825524449772349865494385936441655408413590047595644849368845888712514007667502341634422813662510274747449764579476493612432037343581204490702121955326246457883095874195916153547698707818348625612182704360190899035971562361793032663402592554583916024893140959390983517667105838993812822398822560928443877414203204082380731025153199174152042114962493620351333562210176172248825260326106917303504619463635958051635818050148395318383698944777650581680149689450833808821072237185531453200765030727913626178432091305446890522846302358244378998627234052116582758228245632691495899384087189996302054102750538279812204163641064585361299037575981626292902674064430164269019138183481789666561876428382913896076580301990332713346782534263569346472465964919556262917839880389958703636150922550076778722497288937416633486724640066650128881809640661014729034824911341682247851267147502460461814042288876356245522823469074891289951805381007368780837478921872546166608930651692459374018651395340358658087475773704276402463365763706151729324326426272037634238049436681360137654772751329246205387669579539433995800461565345779376425485508254170141512027792791052494943578945267768639829216663176607598475827550691024810570437138218716377395035751717188079587520947884444325059595603936028974862260785509662265007992476593256561294516682299337744164682249231423792144334557201166511222299304808078906992227315710801829459028797745745816510879622235594258506878272345573618448728209735266184512619879720680532070213752947141756421641399114186544067647911781955577633989502819511730631946999203472076019175979918585980753902180222839397534902033288885035840685542994608758258549649827758426879895684471909418023654247996304254539660785543454430551099045778386283669287300693675875589783801676114202578790613967084457097663582846007686806069966191851821235439625672932941255818690299363974483841507661655072497175226625995626113968587189747262421608477106618747211333929176628165178893533059563660150099042377765316580915756077103211935274323692779245766394119848529293683768095537212162408388920091002681717066562252690956133309206266745936773584222177863064928084054947830789118819659389555150794308388719675987854144064057682749130783197269053633957421671047914030529495075312035127874714942397763647486946772205039001035116114417177061501717582669877819590720547019019218815182506100145830422927491384685936105302319035585416087384800103014146791844421749257317098263349431527425660773205323415631169025675422211042287935750441332691641058923554627109935413550407069770293247980000980524027013047535308973631596120297315872479162194351290778321125243036664301132003959061629663398207265750383226564734857059081972767473709973592288450279636839832864640003318948256296427552739911048924316785286113926285840303162633296056498109081242030835962580366385204217462260510879831385288409045559243725860003015277986742097555667177213713610949731841102170063066088799632556061958321952346376916967293125993320347093532208769714202112160268152519605792977424255698331490825294075035949022399677719206599504991266017588382329342925268628397803621063718500739851333451770452317787361624640644657869416970601419585845623502527737469212644967196824670966570163894352997603455965950242523089928663657166135845627789936507557327386203594631325436770448155858257175536653243659080555439867174219238665419604239688090210645637600761318299465280694118986684734936027249072765754973624308991001852368141706262444204234914500849366787709052578861621997162272472458386018363228426721939712709345153223312461427616596365157770623345145311426400719806898100892759070779593904164453606253898996852299877870936294759337904387578770432625193924907323018426074966294857907219211062123652611193537134847714322226320055708755568151527199797870244497886825067870017260467974272670967542669387425987509055089755304681040309308932265418598593771625841149692001707391906483110219009922726729306195319468570178131958568492556817773357121037449308495464557271650123144767143302551789818282694681539079459504454811459312209520261395087503333128862174984536518639566564237517948857395882152492976318450374007554195543510889519251741173648801637381073895937702127011056186913745383293276944925687644241691211745815643147559170384961211539924294204443907047203136596762422094725006397494335912181116715581089306940526739837861886295128732757910567794029728788477194251501015945032237382696533553814426632911093210617866620679698803951402185497025400974268608229215803766973023353186611851348524182463153806273167880453278313708601400175877904994320576796550997135290013840072663441919424565118655201303109571922397791962211513161678793258911505784436767577643680096716477916166318132382968642773226819087789773454765074033092131650346477686282122498330197027847254739881081064734130423524083461481183036056648532895167526441360925180839368416467207792705907422396709922801462094304599702206010542757939279375900281901096514801897687289900135567057163663175988575010895690200092362471206564060719224087459632349388436282669425512488345568052221104850020606320113567019438766907911209744501644746118297320375017547787395529903113310940868157159596399920153604984396615314469338179944783032797186912645794554205009199494375917047890569567240362369647381118584470667040582461684394213828932872471361471973133117928200927589659746276349565051189085761058369810468414993049599004711699843494967799953415650637098979979961388305172643555888391604732110332338866120094697101947786629311333996460522482994200720543096611622924061993273296442216319967087657253465729081908435043152683056179532596985476080679611088349774326845897788527659842245488582719310907989501090475477714131644661088066320257891998838513425368524255348846886537678344869381985498124868295237359623740578671452556238453402397437224703603197587730354250004381358710306172393370483294695148163118582119401487131514118200476555383736166191699955775755683123557998320189875201667351921289644123604873432268465810635297532789584946423694638628827266080813691731259215874193081630673065920589708276103680336417937329087957924480867456545835977345114876413516820782393271980672892495039882322666666750360899972873865260484793997055121868028463937600167584474175879286711819616535927835003822603711778527996848799803271406177225058385389808017362201575110815986636900111164129502917339154725751286091520356087010651334064451650782486198328780966923682811062956671993403504516296872838122609809580467094817485789285454530575822084211290112982393368963043832590714752510462136349454479364696851099425295562874260286427981689708260479515272526560493514723258821893507381554272695050154360162752297877035889787909956750049485058494821216740960813761560789223941915354355149153935427718391060698525696604662938163962292956960268293777944613691767119029902068206033171168752383722483228042399445528831337962532148822238123157429156596764984360386632872718236198944845670860396886614285600350164746939921338200998100179532773707779447821036353483520651684946582213799781486754185692428345332613970480527132192590388366018796443518546098780137602092191761940161167853512026939477344368992588862231152744906054527218120083278317149621723614167514380704992684132285893274491332731042799056125691431730620062326064903315823484888503438289866883409442904069833916678467807364131168545503057396884751108727128109989283675564521584190178874013402024511913528407748659336500092836453318572424412083646640032417890238806560272524657643345187421000583082594099474704725524833434840263807031415879380318001118323373984546112572896597887658371281272229439681304845449449589605824543876465601506704174117765755259935973392089580225467851892573262461300946218578283460704243227816515603688682006536362511125175752818853314764099763309341756374585657701177501122561738930251947345635546255027277337115843875114467237946954954142151308975778107012387865232895850420108717857141171949467695234903196901539177996272668049328055712076109578749881435957857837776973991205374783005799067589607765316980175730334748846563873395859476124631592646127177975014029238455667447645600328581229138908430483988703384916495549884377801968163820210945550916186703319860730099907270378902318519036589910629761504666001986467444026509872234536436775098570967051928067963940471255872850287997730348742812024600536818987718954327197190241895169845685819215114326477788128636859322969869830756759828486279543536243115093264881242867098794137613373151617967339640337290953294311517880748698606620292202670914590986017077141358375544442182535604345431137998847268394417304796882255625339307928082149094510316967841951066844903566561699613895550487238667039457849610172473811913830296402460873915907612893149100006614600487507514767460897633097013440339661619967786516895799806877529910491932600001208296261282413280561445097861955192767327853752056285354302057280486069476940846270894407820923572530213298423695384531210406239739208256623672560548457197904562958087604687676644443063428896074547132792253485609632763402778062598036841201872365734023056206121631436110957550808494868292206395818962742197678452874091493490305095206142314707985002794258187426720118020768011235414371762235434737562614245007447159455301798334679703767559959332791069685123516229070498699426874898546645365165641228733624745981339557662677062548198945114172557000968269045211966100586115689976662170333066368833209470490183590902852560490894892394094536987569555063446860581812354546889456925251770421606147440980439096793256957210733650317668418494501597191740014131768883967575267425948047663214133347942453709355556357466057287836739087216046110249830135481112507863833202398760516387838144778081855931181660827478437875951188860599521332931808559487039826554305856567185848157920569051957355614871855519927481620889065297399727026082885646532887128579399422514310871611886873129514443854865421306111559242425893461009355624580655623798653275459237298712319028106511214223915088188511824173296218232315750108243094327039795573351132218754266296515447105168109924426100986987034366933899553072172764649812661189212367107408427291549215810039723671167877893601799035122892839140794687836096140690369099351931171839124422528148703125544356178286309504924401843932122639614277516944968456929201949515394438966298698997345772687991868818319268254254713861208452476828081792550547203110914377269722719355245570014634712913607090818162624670261374893484146331695932389634888417853690148929484157188725422690785237986012078623789797885085274074137886871013263313261550642889096875497745066123347453502631884373962821299753451505896407150544285326460489057188436501990310517089355417388043397811526430862288538759283190351822358371753804974448958542907189957278041908752654588421163012775851526063948780756253508352471182409227003522234414220926919400952410800737501649199667014617963457047533602171197361950330076192862711429412181103576779672972163751710393995538988615349568120481885996422201809915889105698152017060309900125341771265022845735339470631241731058306750626323289057672889637294218497467375832887102591696215793078921508705139782278584511889572301134968582586729964523226801252090107224859758742169395906393138559997200059728683881540574368976303460360409339046602563970546573157382635626436981675958714347739165218334282221148571762002796058282317092542914893375778580515062358378499991017110550516888288342695183292519163746173930752936768343885805178927486169529623888536831656794120668538559276186380475744860521571090187065754543280627603702169862008758990729505306707657498021604956577276206965272602648363818451179287991447893403703796848942671960937096747534175078765089348584475507379671545520865256796798792910509514542777528963557349175445274345189221295125719035698892374823675993924706770437867980795520429157223696822525576156330512033706581308779850751477670415214990453003046959424489299968104142663641331817109001841728805465741963911170060599049811395491280108629131989327515388249888424278805774372043304400227951929735534914114265178446369874533673449206583270517945142271770522874067818710434271525931843826771759228887948548251409103624190917668228349196737659144015620814221113862617146204748537861004457999450053004768463611878050947603232533842380806414714602087706663609459549637729142101858287777715552282983445149486213154550361570104629817819339754715676952370464038600638180033562226905307743470224057746075902734982295154654460721337754582984771246736407934639849342006439741993060299669943359027714275261592101848536625648876328915087244713602394420574673926537966253238497672954960507195436760803197249048508581992302290920903700341537004135495461140507663765515958419147925061034264395850057603790773546401919456584320378652391012390101936877066437615385209445342502230493582879808919202226574281399196804935102314781159689713140479783209335094437097115344071891091504104147566011475953274751597753445568078940616654151804277870030557359965673730961642233955794983980679473786953695089196793864048173781002040885211965013820115350519924818598252896181735194382847855437069552600877714975677248264864706863551358901015205413710960023236770172928067445470248694583702276874731141860504031272022460158453323610275273589646141778934420075013610684090557805796447042600359330080082793743105727360810513623349733865757444415216077773688504404950248618934942597274010411821659900194323259206597375669484614770344091420025517748956962571208187875763750144353540880726607268251796244256569219742664053547379528327938117051221845917517923936516638106267869718243699263005245133499668501105036617731971598216036069773985100724975058099627190296778951907012637045430728456827788162580709970089912836261373971920833024087541767989430655343188777011243229343445934595832110067418987025256844820049535682390229305663141962622227264548804101099357384448114123607723984447997452649752200714452132106185149593346051946243529456236561810346813828822845010583952693810154430830858183795289960190514483576388759947240610834741123965707183441824967155649171620132235351276946542927008593411830130034974951151537239881077778307766774789539149957171064426177099297731520562776488371984684956240664865894894904442302655905680442873440765373300044703624011439351482005650245256634369195319642129043094580994793241428763885061924256011968804165971835303277219071709747658126006192433388310946920943659189965162397606719882659055919161695945466040583442443551012069312327862802388960259488929566263499074713525734056795943042600995289567381402284352013908000196977482651019469466113568257023283400952631590522255130449992591005181768267677330873918659637977416329764762361042050950416876499186351245761212253194387581500222559847770042846419889073348768381342623117106760992127847855918773655813825751024762896636335978863858556690499987099254679045492251254317224249573455152275330872672615718808876282117555142729687142217456995724498165895831566083903985011681617875099887628720292305820770954374678723538069191122105786954266734320620892512591884303806818000974185052446203752767854566543648829511617374560355353755845607321652604001799757580185772677918958239674761756989987611240678223142034848572686150460669686610650335458064090332678647981836264264104442051411168391009417712753957239761876912456476720792222392432712536888492132948498884311178175397994163027653401467464511252903895005169706443700592329863459360001413923173320938529671633654694202638202954579112702448279754369117405425489450267073936656615304857643282684001663277723062807288931497181655388885522026516164149252911796873655623992814201656196598301213212172159807979046589819411140253273507475594827883852941468166207892434456558459608765807824789917433019042324421647140970004006272121551825406446341218853666989906893857043331478146656621745917411140354179111964498747808862021024841797566110404815963311832602323293708720413839620506637585168278372335510346597742096365887831774276160398883606570894192188210033611601147991698323484252441733152259867306042291580732513204648641733074704064189172146107794812757250454186766022447390975819466402950019289650591311321759100231854471331458301815080129678158863213395570629149302403539818695374446783189332926628754998765546815283859946986320944480183823724396684467022489721543170152266503338474650415132607620305333615526019133566245550562049693052462223220544825774409110691589420623339969390066804360787794406179572237136971046181731335519958593566413520854863055555105717956514858726461774857092809452515134863529471473873030824951693532090232207700834522183362511530132481074649419729150819342785946365603186193617371049120488330173412898897315120995634714084478807765406588283472881498527748101950625490726964388053349958348603174942206224651923817711024724433970377102261573097349745806300053977949863593362984625540396046145764490123118748557980612485511012687436077020041873667951005832088684276544896081530232153345767759401215581902864672661738639834883129581627380164027340242997898001977758164375892351655055506225100163280148587664599590677308026181066617121735602639870505308174899036879813250550237197090298149328951183663848352025788756294056188858318289960460087140948328806390864233476548802019964880873016502695727779706342203232516482709906509055598418696500228817928168592552443406693043295200128672276508143518552146834134500286922716124953641832304448854514153372269764882676595487408157965058511870321569364382753105883565669709387250219658183516893415631266243635492944001265289065228531479870694930283939928842909408203530583088115153697186659969530760663514750605631409073831018427612996711786445388330519781832429684494963495558545899963693205394982074230722114186248899355709368106723978950852673962354906967936031423718483575064457005786843725095124815161130833567152823472964018568749136894198911454898518475961028199160606273992478987686268165318167726338518600053981386589106338627262405132752415790836572030626748698018107200277261656821198171850247988524214265525269609916809915576037490416694592887746347329058776206837475226238505140912968410584410408218965804691459807674794278634173132478133675505504013854957465974107418784490436604170937252796387924346902410534095794910773408085521397517469173152023804868934530410528885071089114778956435874105604059423520529430619415667020816691624804622908464442614326184889126008060115909689966196809412784182898057202843298535980657249287882558007817197162273058994050730670538203470111510947154819917499204222583425765227476268870968432974561241665169281954746517236420445044728544090852796658240409018715603753975865217792889795587193650294293961613418074669568329060040169543006899128679923622224661998523756101737198389719596970796022862241649279381747675363582838556280998644269204770331141625162921941848582262093782141522130295615042461348199250394857750794231650397002346779957849904165793349229750668766399126378875230453270763666799435324534886062512801694094032510137751920685277386869088660256304339557308710983432345115411046557475608503659403845755952656775506924000987046305459495869828803067747859133782149557795685001378751380587323186172813540531126573588346874458192667418826492713670213739102174306580802764369007622124151634232129628141464360256199140167668023501684025219358712106324406900323849239423090082110105293107232131763704001605477573083187802014029672230103783260675634201409841054958664353907308125118574940337045991475718338832439053983186772365952130378575575679855320475379265646918275906598551186055934687009063668008411699839782063400322633705539291767553864974764636114139155826817984553266445335466223730172527673612851753214717948021783348774972334093049347018777973483490780554964830494945729599362048731992625544330778507163142992601242929651984087224766965383130720902785961725826591785341343169618635588376135946782067117573067378387823740750855014011557678763693455371150638915526784203526995408448783122926771135769524135957002997829560428274869434766471396811509271615862452009112521258283223129319568683278301811336520172193976946780418070651508557399567320227358266823124801231748317413813716592396003352313468901246172871352889991672276103555964105327283646834037708594920673449903462881879792955789941091794248110236916922222858761363879624240890717830988900214302532445915848738684318919011218548072469873745094142145452700693278659518242104918941954318102865360805404937299446229552871230421435502581932628813887187288143131755627107650844407884737250113117807411519513385298849265322867903537625896158389924445818270313118799629851275724365143904025421037449762036347442076869120096030504657539923473182953008402747831819052152554072382934933893430578190885639346765416648209778046205502004053935901417108864812943710955729760348389359968546691943990333284702463256960377624129269059560414002707408114031631757891705273705242651392695374012879992311026358852165309479808748382284356229818332101080337537383557084863491114696808622593471645402128666639269277220757244671447660405448062619467338721655382722027526126779866090551990136000158669871443171124909100588715768016232444291641005803748528092744952367527314519461583165692316751280810946236172288038595195320986109252645407284318047987890000619301787365589447284584549060547582756961669034161409973925579425283515702929249409375689844129172009611556985535563308754654755215267280264065005411735620484978647880130559182008713296286866607899606179764947468484868275801062482510827264548232974542945723392107518405004663342067855470327146688544550595859373880816482227577992202785091460905412427895097712633041211727943195953838280224966422105055418412666323296836307577006333586975675333621939670467016166555770501012473049282372817211029525045105325507266517709019178201608303026524599617320020035587164132006844201720244164475684091149736846501714437502415659874148312197810164561803711765006726588396211522957906453870176330216288744186539777030865352535838539947574285425817548528735556189426566972826177050480478444927236360839156904123355406237106310455412622866763027623601720070518110101307134419121822907934886108474310892485023352038823643382123408680857765538037893702801695201194696660964564600814918602588691311510756203773495902409371732755860058095252937633612114785485929185519490420223588339930173476020766283744470309348597433564199716087573885577836898930882178106764911903177052080806634236962307597988895079155210510935308777084923564870773537708935063354645763015657488543738245754782185656783104036227815270868463198095879796347065387032483110520424542491481741967932919133049908567162851634199230449199402539561632320314763206638617785977565738152029468942573371990596845179508849927841972783126252641786358719411825088902879647376079285675105683240061880229172288436370439760640394724801186614776083008180093360716347495140143844397788837364472198011954783079784905585249273732765436544117905454359860951450955541293486666359051749121247008974090021905771864117144729482462767586957574109733329310663009263808526984834588469949136877603212152108069910020364029426356117316134184204103839195682575902311376325426885186500785663575342588203488768708993575773185446294099530198006810257214534371722879916268092728599162007850940678658986590685103510352916531696588663663258298489634583188356753140910761437339764020198027876672172276758584188640693385866652927354732231526215830352507440643211231617686648331614862721102995228480754121169709435466126835154294474417725222702919055140843145068002916820559845625376109344152123171664184253455541065724524554827135105364694835456567403700436094983148661552723784924711153429176683460663079962529615294036279288191118492075959944704591439344228886214555611553380346281095423580278940756306416516780421802499837148554761755183146588599596936716759657359232953863219887422802037568880620744123892914701821562981151837355626982479956948633886808242449835717985945135724910370627600703664557755821544369849234297835248492644533406372954185445736678265709499012747859576624888257484937067371289147036901148049776598563071733839793046476934533202824903709553737177900265285362049127824555503809480348206143165060510356254602423773990461316592450576706232544639763894798227934349819791324033094830833690374224223586128755311607995750324929843083891363889531716844726949055967457862917916090006810382599299378503364881288532802277767292066362344804211025940971099774192651581694168764761283364610774368710689992282010100065553785224645613130729956008639455280979014718451685774996146368623838550583001492346538759361214346083747530596075020657250813943760723011141474980992989798793746981335148145154793548254033507907019532630572585285243290473850394057518873457068406518467882692744317103105085318992906526875378610940191090286044529026653247404482889224107099019891898589486006712060491058355200092830318430810782351424963824149466278537944111409007287678100362445206603576090382152129460036370890524370692687510553347640384711256376065639054480720061661484128072598082399740806064743288761194935487409335095702785817912911632256714387023772108362743830156633069811176842513370292079713612367571436974846187650721251953594759119834688900172881003381819646002721141801378492916711610916692428209046067919063626738639558959576067783195549428106166125056557385215833064296748166089256868175857827231889332481874639128326909065597831387438122859375197977193437918616473544772954013211638249518793568354168577784834305994453971274612938673908130133558363150113217820145292568159974449061931320177114914066941523751465247155003214778403365784635579060294167155981580025456162609667710161700443335355461533477025373599536751989876467819091446724521357964832398186169296041017818610032880850161707104339204881843484484170951235462007731965795218944653449318844879560255512270234036780217867825021483451244114069002126962071736606422387365880003714187321413553724891997225912486965796446268639458774403084753539829670649534596798168371057251306098556421857950008515349061300902018369257296680873073653719243559326591071656888229263763842113439478917648413320103978537224078539677053691918633767336826340195521148431765298887158236484115332895409062668811143334392007851310481308114995784403497394490600365990755556468276883787713244736061205410793305740665521444729546730024917051081923535565555579221227316284929308749819246156588995159856451350419832051788281533946137471084950825348927576970960291814638246668443980338908715998693802712809500785983226148647675208412584261251565341069772427170068205565118255767639571068978187010183559503341620139663244300858900026293674677304593688424871567603932458803804272009873731265224769292886392983953325653812881092827773433407390452576077994182205845429920463668060169733246212415941081254086977984845900131309501921691834037667672458429078253222777162211080727924184421439015007207363181889343330569103654386908841272829805162677970437830158096841579210906762691396009003908975469650214970845368186536912694061839124970010834952208251510758823172261189472792642278461642838680888817136898961855159291577958701054411662055350956299505478770719064761411168966337373174309091728714789929726805507578453181167766608239939583098281241286669598045759703548720009866511625427197409093744797756948454513028709929065303672651972010265928668698613639580121151982034412253150900302557448351577698642655609505857541666548273072326172645681262157643242620734877917369000739645364422814981058267187807817964650963857322417234148644529646932413061953671795266845968912441310095067343002609091167648849217890048471329786563821290387473856922859799216505234459927487337275847522825577338033720415223637066336499276557351708150244521008192283055457153172950108719009704938601764142752484736438208786603006874670958117243773940982735916618260768158614278456983364246404867655517307360851327573855016654482999043432183037851597950225360930791278099274622824851307649019517710734174354289727089528015493112045167088366029255911812614434897116106929951329637146864204912820356423899492210990559475775911298168672150603891541518913219421095387434204107226750767041544028740735767863773176065569311087620817680511140095100591184305140479324556825590627107349438472566765246532004501685300158896377237430357558967510210002866660041073550773399011195597405534722321830449315531997561712407493928184891474392209147587982233153150443462232750800195120942652077699604641897023820089848029527424305702502019163492918694036301494181269709727362327535780866464059228247200295791607000923769648954830896035580863096088260276245177712218406908701956884268079331753338100024089223837998671091803549234475510191329922683865731845600582323916078351709895824163144424771225584148799323445067495717911204873433710466099836472605306922343735824827997833289736258555068655171982896485234134825059828576393785609741057753477908271873649228822523611684157589085545439001934641601130460040856641633272833836307351176783318143704931964749726826273183631849719775502271928671384677639987500970649713201921740856381410553086657666179472149393196001085217946508382008032363721776048578978080107303313501684726044794903689043065712062754875491363189354285583103894781908258831789393225711258254056435245808747317434589379099923589285681613449344627683977205780884745685160982834318995828539229160052947576414497516258964094272045160311368520738654494943053318609189401425634156669557577113061534122571640762747989344050674684541277909138772569289610780220357759597129544351125911765413765692245082623152077166253092944458556844773052612699684819732660804565928790025072008982489745497887764052525206105311745081870471026802143459606222528845884926163382759022010860383950230464606003818941294795395060138826466467477684306882573937652490599466477968146042566377015945517475788173535260994727815522424817691087594108590614987647511853692959548520397180824558438459924605261040562055514361017302429144756068369837378727740186455374779114530924933332585362956415810284638923019005517057862534350446947257376853095960374405094612849202634801193499571174661262501916610038645260982013644770858569446262033635463776755567547930460020531375157449097753069270447904774422938990072357808439975977885554121621310888465310560822709578551360362749052381805290301323617221457196272705265804495340393703130472827270463442985312809917819924238471346933707899117749710547043001667717576370377837562521300063787589893736532975421150429660180396491743246051187799649862821721985263395903537480051255256066359586065329571004129222656737996270075822415180180784099246993681635736279694709699656302752889472903084370557782484049947221316152711900141255002499859219141816672068227978775443059380716897639472121235467148248949893811640112979156337988997781011083364073106048731627343029281390699979018313945281478292201395426577401693388371803192151032116215520823788790314944559236238770399707465259212717973325004117215709243596708383835620268850388362283086660451651302486688927612014497068026934363825298904792142876015922807236827519202897668602670283351945787831361628071662671518035485942342610290073464177235756665837391093133923262211663617679266584438772949871927015121404361956521177373668454695478455767637453643508724578900540111405868068015640844725777202719201880378294569369126071596291656640856311934151845581776133245128247671570098222838892802835566728148561586095462635859642934886382948633795209598206968231779999750350522850256777654897774751641690838181776760382853908243749487430097447312199849349608686463168628717799686864597098879449185669390215090952028292351315448230080506003145850852262423382817298138563386237113108602931843418400465753169676865457607455311485259761284875203149377115547197536583535493534046446719528388193056403627396326028923323625228495010298177940659781573159584345605191921712156458298042384470041376619978809301204683893158491464607435280947529150251219041072822719350330447757737082152019665563729435498618492043168612224368697079572612206905975898289981670820381971781302652879158393070568807734027237612361576342592303716508885319236801565451224709118067622274452996564204554001886170520169344973030996341066136422887611889367859914803933959645901048383158139283411614773606176807434513649557924774635567979001432662934926346769225991431720822537327049467718486982888651665691248160678150931034976116659700014557652437202590443911490886429716052120862024735536563349802434045230377769392604456850323168492975896034151034506328560331097005895147056093253787497383316211965428242249336047448328706310477931973457566359024475774220569510624512398822195057972663506958518027281860186210489341311809520065052880377797319162715801871330006720489344145308378388870657937710287683865289335366804777382599655799928300319398332195480720989978042645981175597985260438424939850386985646303403649351368228375668688997597091821149029784196341405862563300558629325033167961904163583316644213077567994724244281356139515464164434665690542592343065527620830842772887874362193959558629350831427600480939022926064112304754968023667921692987466427975838609070680520299447688362505338044658386343582283597432917236787538433951824227753125037088526131186124903624524700802339133739941024238693827357203108372890199928695477821659048895280133644250866957104354104199540479578843893253825392997616044690848542960180347461371453944042587059698966131414306237480735331197164261194857840055387857210441992727260308071924804442256883105388078448103116877919459822479323865120201691892238683597082425273223376954963512532821681783150508958945324405751289541358625209132580519859041981473274905831876685668727962060215366071636020250837626553712094423571076311334085600904342291027774001365180608453430429592309311416001503042274356800191492060497022627496423326104264221743799217070597996365155036627710588374538918577102621349203368377989596011720011363466882918898886922015180526301495487138927362086127737596606726331356025657023503392763382275621047690124466143212181444699681674906163689767575580851890524116128451237151418028220960962646182752452323927415065912950798717282860347453448158399192259676473891850624666360201014199441046566559442779834740638447148224634819402268082014759244817207367121961864296333770898602261385895793291569496138224082519717936869136156079543966550253757099988742501687828486981768443861865311737344691772900819272426307461613284936092883721838052380808993293283150432832029631744557777888130487790517337777497037223241896643314271248017854773214179679739438983116188656229740646203927361023769749825024934785801075204885245115027573692525840246162509139969172394122487197703792860898047698004302929216319383668690072931137883070174810967914988066426039100186616413485251066962771378265456264855701490454518588836522367458984366136872297790639408728631349194798942030327345925107658534418275415418472163732682325003544702155112904497039060942722090426421455624048259986209970370812254942489295115552793108932221506052647140915313894545960776170758768535754527336226035221818154606737514069020522161730648195886685502061623258294339349928924112839234380945486371680750096350760689950902209542961254987517121397816423221894147736281474707242710164804664724542714031819370617677450435902658223867286414443908149413442941498436873163881668501997954185413217936048663398495169946118045407074215477024491970616860059196055106358199624145106813966548536916143430496826182563846636139173094066689684518132050745783526988952266104418657925156991919853323277655026296148692896820127645552802839291826824338031753681919944541010112727549922697404730256161365638027136148624978448351920090511102421500714885373185580006604852858616471487272410793764217189050560540222455902477173547739049173404832553108566804852561061382252144457883900028176960083267324715758868334379901030361851006701905672783062104409942221878503020483251746577770419522373197991198302684642861017236054963094529286039133236744083525515889395884938276603853509820413201870801004325744640503039119557549571677783506670213535916294066540892115711354478265607030825209437438886850869678808312882562206768595383484273581220688816125514989510909129514348935284081777637404828846192046129582555326551726578770637986535582198975393380666752922750798940333851712969715511472766664455970770816791598721989917824655583595098676097988531384821237647202542297955389917532280167457848427506207491610066792357179519085035447939336465567795371626279312471321743397102427778746824396752242963608157696293110355252885951010336947289893149684229271604937102873050934781522960619658470422254541214096787738512586721459785167784083227769702306714185533635350835030871194343605145015969279566823936525194253194278516510380467659376065111856124054949175069225136843487014158191579576510747342193001389635168768282965742906408260590889758411232841698612979233946932448660044818020675305698500606357616727720602107263475190175126210058482267058654502815065843365609270156893020759636099821548808565687403731317442246704847896907510306846373731851176594544338576902723225086563341444877475540370502358473736539996516380792390646938605918649051770985449290867529836433408104149101591783258945100136036334236099435918111983210510171139726544725685564354037546546523960769745716461404306111584374922723649967549502175834591793034980796672943888131545185097213134289841090376036857623990507858489160350734692362807505512617622204824826929311392306002930845575002469181313344767814076357810855605847038586404627375051951249125307958101617879856930231815482081699047841557691791158941605031451018980099973993709148102000225039587983279434484502478330650576154844346283097511350642888140867347220555427565076870139253563596608676111881000137970436216937893789071582217052384839376461138547287672095979767990337200089740345383554530222200482483221707927584977595475584942868720937229033559252431751822551400024994650045456451327987314441713130525834330661765570914649071617777472061480237529071914029181436303968759905731193494754801087571508830139274378200968564590438234607799939500361371457310952685112232313416407701199077313569548746629358374176402261952831050385535909730021280007847232165401691734450665936170061285716945357788881006782605178401768498297771298084656957172025376953385811845147019087211615690999100272539370567702002610826531226793956298119424011305986589954397017854363558858642880276364213324073909100631681306767990386827063256775918023879892570491917327071215751155427455545434916651896864125673355183589228876107239851507980504435319065612954664074410967411141818663915162957523306247273363608954842252524214810365427435517702716906724885411357792136701786473925060658123310612127558810916625267856922322660729498345843753693389199390273109180787921589268754529480127978510271827121878264774887253863116599805528084810056907198803374133425779555787510431663966258596541798993450739729039697879329255932189308974114410596078025709356840994996614224808313910310969285985671742416571452168672363926002997417926199820905135965958866596861870092548980643085611866106517738429660638491617464263998351103475699544632665953189145319350223121178566578837122430655767437119293259261286154782098065306136223769457792371135118892982555053717308078903679622463156940729151952592893216739073916712654730512852225039340157415828483508397389247804591793873293721049576058176788122186429160857869715235394793161458196151668416876744477591915442807426549496997102832982393286259499530529567232043673689637116453066172997864529873162530997193425700363048426982928738642563585285233480063590382787031821212643959501431013965005745190905653037659381141812229473200473432316287800065557649592427775307442557570436976119983985786937174375585183969628485939983773238379321193987491336382243814590509598555135106732660261063720670694959431021333818626472761912591731851834691596410556598808126658787638677297556060144999120994366762285064783338270524853926933198626310853198823184584645054229537951491103967558003971063495353877062081190102193311592199636830834317307097601320031787450693406020738130514003949168721387856026285516191784823820258933349178001641759649368353507748916083763099231395123985806950791451835133928696634573178026975191467916875622455884546895550624470549285055629827459241855758146064017390082580344350041152947576499884852382725083320810392959692511347535487262511249118848290895830472705422009205831475152343593428556822236077235078831005095133901762012449242232067636589299333296763121671773150974723111948857222423029787840336187668701799773221143512139387949992414715555727912796286769872810199937913155169748002427636400430504257604317900216447613542761525567776415849417643605635803038991344400242868700073060239941806701072960289015929485656876923834179403869323250056928446800859286271282049006616821423236196958600321167359956895860618949371048799386664035835760342603998419154623712246580420651298156278294024946457914944971026428426916181280471576917591870967224588662292081277231961772690201837377751575710950357503877832512297192892251985357273127032438506478755365954589106752209120196733211594614931543613336023591253123655343653418767496875213544753068417098923816191525634178011379833576700126090706632563708823235599204479406457127647510556006035217958125146455459786971643294422572165852380332212715675351972885306011817260866847954915678532312770346036937590452174367152621120578597088950467650593200878735516026587398015498054931856580801989885701898812594340694670112522711269417200966470932629115029535457216596431500531739078648515264758179568546193301380965155410746652901289449182673098168555830855640204222910474987343468205690103482201167895193542710567153424990999416231523697439219682977824167542099068725389770245883886058269788902630629118846666457110506546375237397047451116410900527944638254720993455717458545196154231052048775875131186900545420857094114731464003140726668724134113151342671358413443486559690481441084751322964989836195421044593447668366271229522951948614699291555644559824987705200278431568454915982793110976700002974854900249894222548759261931346231433040203177460506650811650560055589373626928887313955478019721644272528451820587017826046046557437512958799535034552308353246683172652368742971467570601465801942900521285081507057628937556236157686626928508323176578542329735694443475440663865222619384220472018751751155785501657911080972806908630399008249974785638334132314345354703605635637661996462544185236365746836000474230238995555469390015948698145097527952348541210265083654734022222283615946659972207653261139535023042405178718372937256870553344695183646829881556299055989180902517765590348923662431277393689297941095168881715325908951403450593190447225757234726697027366658344738448169704320196849385415716464960912658867225840876702138721902720053906601601620566630225568160179555085729558023082571971247075964475514665236653608829734369492260458392545041592383313335857634890243809938418951602977636603965340573090128135987608375274978069548647435327686039138855475664840410988723903911253674130323575358502449695571603027248519692996889638951379403554366810804977766619099684059410561715095711341370784759165147489661839757197338158335116944340829135900452958611595424680682156560410959496290905711085162408168151059158994587538140879734368859726831040403026336784706677435131468494926941661149663333918640032141827954978322885365965288412708024700537627843879711723394913602839411541909991994672643671188744300104921617226676614424776432672188649743569851021866380269530008415727832056082159483044874271938005967590597125879312546283860723721978136403782221954566133665903622666174146573141519449664349925245278839944100265026531765280965175116357687754635504437054565934999293840071839639138361949369858260551003227655588862152582033070168761952063875626855100371318520117328814973523581508653820115828368199282036975306051244194178341623336232039321849935547993617247844466218827734200942126264055871953969523030853295121720661254426629680292072205684456310615322414761522199292531379849295722523521400150353338309911856821926730439364300601054849625415431993415761095929925965696915552719123121327304579654810251747162225382541991483681809445984262433251721968373424661340791705850616600698223867427647846767182628721561999958095584384012716970976416411080970299939106673427011730802290695916055318098703227612570765322083691029800114599776051698045956303603914785859889592894211717915785953683796301254072865153456280072508877023330335010493448673317246059239353342172310196255341365171176729149813966087829616982086609904654216599234152196984249002796929603844023265550217079471025584587713772421029104513046089824727544023978974064388079004508184102439176322014909096608624136636010163581153219600174450974208981035669812656037669033563553081674723762224802441416850806528949227312403593323479886916142665984489463712557660959767268919286859125989793172706835880585914660449801988620209859625727946826585697864613925501106067350255201495915822271015577408208600554335336652358842026584043291024031586247150265701902256553206640648565142430680275677531846512696222414344684377459986589586997927725363783494368689355812512066162001113075351985496829412494245850456308063739111402862671683403986581985154954417368832157370236819463289754331099794813096573390655125802697313775469391603595370729239008499101327369709006269188511665948459095441121858361303988262118993657016710176014925194316002495750630478477334188901374275942816638371133505749339201467223269016651395798230699907617056817891207672163207472515382393743996294654263866711415336432575778151053502534143171740489982670267548708908027186682124372248567887606148785588834255922310979594329893806248377799109557865027337833328814294869879832167902239494685035737015452628347718716268921320135335118261839250147879755760148398084750434350889565533769481343088812635908491347488412516126492126331781214805360150563829692094367596365772293883132020487484391431178164437089794785819830646266007137372071092339037897521656677524760637330154874016955167819404787769331645776411184359395157055856800203170791366267065904381212338612000012038066012768202252276210337715316906372224095016041275566509406217706882171401798944373709857393103567911941299174371621775317944893726383744354222523702335855687294924304970546402940855595731148469382151915871643378121198097955343868030161833961182063496082328483427839812470875849430057729291741049705702104718388721424827645344534397558610725883768599458675178138610011282572131940422072253580702866718649635458159756810090829734795011818394043039902537944308784605260484290884337926332927068483060920708958503960284511923197192274765301130040136981806756327122691749718647428820511807334236338248612825190549147904906957082640347227918959490113349934100906594554601331627241368994558055226819575942807683565702326405303783830527359025024363553073460674697983780597868426704154500153069522491749980080108196557269922733257369946922891735377697573786763588196215160756183467764332202795608836873875150421240492152458913106285680957599139711121301545788230832166654968665729061932263793964377571283124917933909374863673687754200784805414373053372811159910882966405287407728443416797178192761665695816108489716079790934819561436506199732543279325076148411115143829725890335057483257019470913151664775057903363618812684279424688851286856932228718740325932166457427501919509827206761090115675188254941610920868047220464969581263717186044444599134560867532557436080729519011555655873643211323561870124900087399426674504039632813435528502781708247560912871106322775994824672249721960863748571226769346551227356458355117963055486259827816594221629158052095983944256094300742120643990011133926880182434755968420444506915697887525436073609783085342162230865886737392483918848393601162492637716335938380261562863224744096861853047269418471708551324020192309597031201993873546425869395767580840804510252480244179854035302099585915294481327970721399762499954228862116356395316773357684733092782955322272095459012511535142277052983369100434727482547972730863876604340517446359574052941416262190026182380698235792385253356230522683817709811790415656836883773049266183102661108429019471655523839991694244328902122634165049167987747416908908710166896692890941349640719440158204326464240594194094549017332628058932510238463693108712789077347034717735321789125696459169305529973502437461298921419455841677868797960276718997246911531885812026123320980475644681028039010531865328358599469571217440951517207778159258461976394598605803995867602222436519590253509011257375570626002706141791264025671314474877952183401832000325128176665805858867983673105882938499141807585329818834175269164073246368901453266150622151500541856138144012513239034410003614855078674870002107547748594232275307092904736033749969738744537228842560461519020298248429820271737402079530726215195491722446739655704209407530859618780315470446557711719402110070658264204397776204672712007359794515059676777940643913475998522387738024102714716866303584661754556020054817283171076313330218182957210042184637400444774527694566230154465302543380969517506690460582352518034454292767000039659717226085715498880207707447104775461883440141535633235899155784356532803015839438561718005343585317617646899504766694195722368041511835194873787586919082294123448435844221943069623920291193551734084965356726557611663021448074813869302645635002655438661843170646057376324234086990778130752583090141288434506199336704104888474126160984498806265002171903589590499050749790212229617227081316745313996180727128867915215171290214762278016497339241142946357188065120919403175227662709801472845327088147733820732931299745029522915045925850985085992794350069398946344214382984197420167509945045956896194864565178176228875936624242491916611293621414564848457285460874899729800391019204557239007001796981396364781467580747259705915317586684379813145049299092393073146440980215812094879562271484122089892933056460902014273660396028695236473857508005602913212006837041417401478900431594142685073341632260529753268818461518767135953999675848007326916070420895863348152011849635513610013256367170098723536437384704239235207795609729867044896373279888512249142530406107944815290723694387674724707034094238293359205508395558747323496132306087192716428696501418294516278961731272363206850153442511952134734727265410422156470356320083403408114586578626771690041614561682662092615536484217646499137966433297683334326577886976388345697873857790289384220040245281991751914595472651048730882460336046961782602020467384495892406674317591021520274695131532954057632430467128064923741375793506116820887653039651247465453068583575880058981655419644541316298084164888856509795455828208245557875075736764223475233855883491767792030475642826803998334265082542153541576881359906881381293929101451747004743921400141651820405740699492598826545033313609116811075756434058318255216317775948346035764742244632417639916257778484182182479515722481603419461183868002871951819836897677583979185637970453712512156807824326046517682544009274771097958833823254091223377888123467744310704068332199087704313129702850845187510410820668940775780141564380126209235046103844893061243551935138512928898478279712847137717697398207173575036806992482061209003412039686176859502329645279715887897674263010792613300801412963444709837101247212981775859031200439379686122765556766666546291993257328553794870806394799486528775593392309364585818705123342460243946359405939988022266866752744470109545143627943488781128200893265098942902611798057426602331117558973233768077157392976731286508851168733545959517447320771976193614685754537052232116469158115000143255888936152884437590204792510054710499565662785493391217464323107953586643227493353705726416046055224350957921889966668248314045876503623241886736107709812376910823818391278684209936404926452441395264718268399551424450702655730633231547932920575982837284593507405204343862130902367235735222945701990444572910451441916520781484364190026345078701052452056916334566567344761153345274240000117279848479161876433176876270892742374324570021143903596576429867994771607845169297484057979442460846150202005825975372797523581041818467131363735100447520174115445910367527801790922293536770159905372099113901233483291842414497198380727493697874120325336054453738094927862061071625934153069182772978484289383794029045599232516431007000743658046968192198159599484838812658417216171271169785951116861777216338766897944040053988488521761698790617777779885613159516531729089253386552264091398969123846589232789976260569597449262404608560756907631831217515011963601075029138084048536045191474060870291391664210184971675768354871901538229366047824715660345367723030808600911320279357521159209944370043594247485931115339610111163784628764471661540888152935175881767954749940276795768642190654566885647081227365180215566365762592666851364020966183284840096559267447216827858306441576484472235142374975712265818724468643095933678749120676835493823777789761241178558190935234208092170209843836606230209969928559867655548809107840202914414282877355836206771666776283792676487875357644703646175209669802030927339509808687861797858047128004115392826414381610401908675440350419461924388596535817952035059697034884070205781381186327137832387962759809977228969263933326568073452858012910203400032261726771358491804776798744905970748541104841150052350555238136642102206927073541737709496206001049354846328934812891862210466031817218536459618841362978976911494008480098376165240489295285034005412395163289069796596247637128080170620209549587225152302476773047898463413932886543824588970505375572662554046183252076672544264403880888220116774171172655827671074976920195379247727720157452233902226735381102610573445108813523014014562233977858160560986833232992143871226074483728065228521192293652736803673723985074507176673806986800992976246445218812223137476751754006470712392241519935197593486788211372577241162449592159545788073200354960569018089728910351562036436901941307670424179637562588998369323738033935686376607629046979146870117538493474890455909015527878432229533086346096036121009557126238797354457614813184823253784144121048918931131556847187915652227482906697486064559683143177669713097027009413220741154518899388638781949374950387366393861325023910903327973428218530530844938887991315235378800966595903446313963061131964605751477256197516670827426608883826076303278139715287347597574320423100247165698357645306936285696410741283423560112561502110365051156985143627310401321375627250338891372350858801930734560387755898791564861416683825657057777520314536835062229487968863323929729042375785816294142456048218056272001549422659049449762917454518526765183553495693979095833412832389858257093805750564408273520005040305737453679154365728320784238336470931537628728848264370560060469045726189683684471072929173259466782443726461293491903929185708241137968229637399215553813433529234885636059367134999600474154573012333432885007900654991792959498985638714517639246857733830459804791099270021252212778493167589321685228757653886687729618825719884083588679296491971619659818301262239548434026036380990112714110469889224356696302773358129172599614830830337978548795355004933660023239547128267522336168172297180406889813183704498314595766037845842774129759447813939383439438951923932014085291924667914214188224712091979219559125589838499100569167101471127215208573830680012586983426542182594089174506218537804554824722710371333657337187075148451568066801533620690638588865908341134508819848357217135468601172371238496404237341218479026598007688196119294341684934741158941002287093908797066571633298283216452434613574882576097041733951109106473351513895049771553570409574806444637737399508013670027709694849807402933794541560203897461067889007458235120711574021230276633357696240909404024136818901930761894387888517935823612000295328078435512011710696308997357884886256488180079078240836104410584990716470972812424071928062887280401697420930957664681709017886818099060191424020238626378220690989474607598664920742725539150520145580875784318554107222042579721861727461842590218703659588010673456628490254242410681280817565181062515139744065985832451163383689376985536701120801607563516164321344424872543268056606966525230855973321834251914686965005910002957384522844138287294137188182132190931151067355866794734471259438190802000527959981218689055411043918876169179854665334401264130923099529307397808581192979665787857237640695896533328561397877686760117374317855272546640559090532275313951143276768471604388604543197131023525464241490974607451518645599464935564254623630237200122395333147986366965501288529208772498277637513570327106977093294267933696184964192108189968844440001421416592161658766259761832478063459407979488639368556578247478202577431864319239089660795940156725695324444186855407425503280489916480569757481453323504038363677414732872185829592466156084492829092007913822037631338907218409248572143563523533836294975702870960380121937479735077872082765608095140562942558256586850324691958503958718439406327568850674849105207737278791634579953349307857844837247881753900935405047205251359808536130626241027686389111399659667764972889714800015776706674926526050909866812976769525970472419845200898710463516631343206856400992187894736908362796839270408839976728973009076613976996935262563832951357218195390771108365785215011262392959061615479387129752711266383823799987836482264487130920345988376941378824142868325855504283227645886275951295384095822735033318635764048016615322868358865143894065459818409509899274610118150081206661294494320986849880600090133558272031441645544538077543081197174373706287543978269438459025106904852410289176494815066349618863941247284810517235470530206076390310821970001083747068266831262889670886017090835993055421142564663703429276228650710228483868209176146691446903371282075051584629369903181031262851031955316023030587631087675998725780009388882575062928063557587841854233568324864986026050858622477281924312095509211056387034102252657207090379313343925512508358182344680314224136768923996900254696276730874408345978016171060542050598414265167813702738398442456240895217320769433809950696534272279614244787562649079487602965234240001178673132997644246104878744437098491428445640462231631184029320374026782359533757064170994069676573415149998804014532222034546459997431337679776764706381112871353845736887664303025585658598116924706655874304330834217461451416793074010436989479960808836622368255823649727080614116118807955681987152808631224509724228296688904895675195643942473857823536971642336525158988746805789250470267826520854501799045817929324541685103077353780148730899510501625872111633285472068981750341622584214839792355332279102368009187194886390799725583505564246426956809981313916345977404687395679700514376417577701118361406340176209990619306567249957712720203003473244556391984798449319408455223385692596230129695003722154205672804598736758541773860333975207257136897997425834847956310007902412537296358759302664233557351540526990820552962009406935979247866804968847937429122886818447744498236263503235126172845655017974256986064431763632541461261206589810328894464774467381078893787836625428841490856186504350084774457353377323822216989080400344650003855772327824763286278189122009692708926191261547057996266808049595699358395326668992619336331156139033604733955600563010372810719286248214639641107354091413990901662858793432581179464887791407710481654217425077806798040406728816745035049879661862320160113424440445667513851915834602322727232011966957917110807043689255422679278525037462466543481953261423012854097045018289188687849596245256918216660193067381569226080926485456750373610201743021859211793417422189461704429499929161048369998720523074551899217692244802056808680858108807412638848408677424964380521218123429152142788836383900445525599248418058860277396657114011817193044478126047431611231582412481739401521348942299355861171225349617747962927197694468041446109523210946895787752850003540458911274640750733092397097526208672487293666772519084978635880846090293123686130487584788912803586252954165581121581118511826415512200735845070307381906588527980103979127806891471118228061442141534446212136518638167346581700774187951295195490974015153810649454928184482428655097417774729288216580420561835518497653556390478926816477917317611535709679618250974795426484245545206934316852152032778119841234110200221531628197571758652650783690828834039363984116921628034426441866107440953535598725968480482724291583923005427953013648208957919757871549961702215075444199829988062660892096429129605829565053152970435731315489538334163634839125287940914249302303726502341145899156260722827527672925447065735418615333340507699445593648761410003096751240774445328147093205143450822921688909129116082233993778185779550543082757551883257909526163697596128704483715675386609286343800544154886173287072114675090384465871171869894467852553776646784505041431082357302391210876739427174072427061291278192080673653318399056325218664660579467905665379641171070450125609457347102330900820994829402936481326400604691134438701394527148764101427996305783566045838909992902299277703632993761637215733076254360094045943780973886158754389216802076884025644541819861120553195568027623911755315518201715461019470364305598322194265540813664918729620999444174288753490178288117345566734867349411159860325394535479635876015501175218668215904339325630687190254195669400159184954863896852161132384139816344454166133873957374343829229565383276231245511706306335498910395956076525417539968373023753470481827797469346134729047450980955585894949475169897011982984586767212649646007931884868463919953512721980248103357615674420253677514039179721520526258830963105498511947278158059175974840090382618572796422029586971799580592770208757178982975434381972672745690222119731738154169368459823842151455293797104534646380261903212199797059499373127284419148907577137480668352939353111583557810665594778097276370783805258258206892816225416344404371610413962140464891611469475000076916485688318002348873105019758645007620346013378071979021305427670455818498986473003750592474792408591410567843417822750510089606769227424821090217758716450680793904410223183727270165330905611659204645141770730332419714967056031462478068593875683896989857584810515399716797608882615377601637693868803694844457532584895221977860047151858103645306101899957565854187989826294493071950886434297226960317320849255339896587724954553393650978033268367772773701071663906588445523110347403154614063125929607764033614886319373523829551230856081574854035977363681376570442100064753802694524671579151954786026469560075008927790310393406177539463840312877148804482943557858271977288990569952756636557329232772489746124202446804067210548210588080715710149088377386424549780121274723361213188769119565340859545280351994757842937784546927915629008481803070632462339801316950159263684556262930741241364051818939830681482782250187771891992173377216369229901116547456608022924365738358526092139236448837426100310836797294691075478279458453651616896814554946980662788563476631261126862129662710577651815030747062538496152704593595829508206843217048552259958799469697274782102479284942818925972943551561815270605584462420388694791704119347803961561637492895956203457818464428493834669678100728130609102196218808189984342462112327282116273463884102215880163231151725562867355049644296159053896786255248289769521217770410628263375961432101261771951854805168732177716645007670591225452754709848744126896919269730658065531364166882369620392187462950649901601725112001285377881595802092110696822711572190503915768768034595164087078852610677392780120673811474071467692401454734041436449375608516525933491812578381573581080301399612835099521891998752550592690714369666354439366851348193564716844415570450630808535790050871096067478919651490051138111616725062697122195018967135673376505263241709620102763960680424555248659084645307787019769707666777159575669364104156748951231145456312186636627310798454413958184438592506539454301278352492547828357149149683890472022664237093259721544195600767625215013653526502453299787907714767436512081631483092023163416720050386395091445251334036937140016642273163816360338819295565822604080952440373033067797698285672880061582692713988930544550437264268616144985023162481376118219798892558647450228209778848856186706757073445944842951447067229178840069232067289545354504556632231893759356916155189434556301393136323051155320842581561703285607124732781897704000824695701588305325332549202375637896553779396349714656926615429357717695850013178296279557705560944665225080895943745579302081806702593287332019241425703342324014746349987725394064498003039014376922030050119621924140173814966703309826161912650044888472661308925689944178241718166420679366473135738520062411530756500562052995226852566874395176343232999650003087673907854097286052878302858990590591191377090907612602087734488095180991100413465537619858516022771983261046235384546744398494948166382960326846961037053194159600420986396137592613965315502375464443485612521164628050065893792518034395237907793783660985125019531656270051190062195078778441543487102936263943580196352914806029341531655801058747877245516690189807841192510781801829419912624540021187192308013377366321715618186475087366251306784312027202860937201322785559093097504933997123881623031705788517302433002480569631655122964187674291212254082342757189988183152639827934733924620160416602858919973046262955783772104458674557123300887630622968882348959178976263209941672969495078590699392013362022629686453855556506842284690581196955968500428563919153842307761241634267453588595582892121085192043459068919797101142947464311244525261678020181885792478699394787852131138370557215616653470237190085034943466853590951590096077545296217356248520311397212790610185758605426643676904950709673677744760157052647779204077342603199100952726874600614703646196129007927352674296656994125018084324168314858497136496755836623763361177198272312972040453708665862029698027796947803755779760548557195141643737332622529192679167583323811064693630440704755762512524946333505074834959988721702820412648303627116354345542096376222879249174803853802703097521463383933127852558904224423012288303642905726212995795640885524096498232263081706259609731870811010310089931270896511234006540364620767767491633883417094223800133266040933818226240880580404064186393516845008673913545089104918458893327814261075241021247188852910204354861010818711869151698302426672588459737674909113001760730080760191265269649243315581311614751647307126819905158193173282322255940347119140370880892531798851622115945826578934652668950167648290638486145624425498644354637514023888525032759299179900172555973421581450336826925673208272871365632362641479906260597216964404032953692447806023268429306794906419378126547764748741749513064727227252505486878394218848760125522713493575407648293128801171885234165706595307311973011316971479243469652730875507324662078792194586807620797419782163311515714417345601526483388076568249247279988018466774189369171404949497839423082932513912102699080026760845555793950195701468714585665121581537964840570092034090516047030626380058749250994984270775380454978181040557460243887757363867367925991325293341267875044660129628704917621202726199729203001572977062555281591808915723305992899124374046985233313218223215851046077395932230193566778003525277684991663556350530513371570641836122631212741039356076526225504922843240707176788085051215350460958646243704389825341428419219113734321137366823254285278686232365888870255207616185023525415019986990471107868918150472100116673218592225795256391737099971636403670982416182319949384749467191903986469253090073759632157737031750512669321292208684476199250453155105752695130642582007980636136531637233038735755546884174977485543417178486795534528350331761569248264223687750921687119358126873712240428954708272087751394028196591941445261694358103034393191964953119281736546151960730526719106309465441366322229867762995573795570262958643695408562319504422603966983855247419038376449398090398510297495327349378747741930402149248162585146731230797701378646198414599912529468659347569865823465991269209420258560364452844534727643070600691479298728784492131876904816434681471149492054962936327694166684053555727577815242936577643545966369354207689261423329128418792311628234805670836326343793023502774048852169427033691059606642953328592179519331959891539670284414181468296236171329833540338535010619024562711172358252717612789310052723119009679021478995966962950236631816187678504419738242024101152361532410355893639725495902348832767809801056321649013054534402495156827556123463836805633546481189882356550407527376763720450325382080386005772947554987895310359136930181637966050721038474067821840869429154133209114867658935016518556868028718253703241962487420417278805363202221119110784995821397236187660872157447741531619842162324956285985553935995457705143588416166027438151946405016680364573827507549091520370047811396875868861540059604123055775413403720882366615840493421831155962645594686170060827331576767690599662477658746378783856109124171971504225492100627414579797363799875580788157754094953527324812930978472471094278603882346645023608307022255089777857451263207671066026760804136904824849166996953460668127831622149965714508143590802807512215068807992274635429993094205491900812848837074383398651521789106285347881477059887246417222691038636199531187858821842509444173070133619193007567124974542901050268534452615435272474779784540167093998611948240411010474208700088419603470724757145195834002968974153209376087030201076373413710952024859456121388925841257785961102798311804251896873385036860339508203227118559869854189884265666837803839462536484818187707481639660127064658269588497653940595175243417114937194725477727447573520858409550106803914628085100609010478159313816218809034668957872642355679684066380821061871064477561660784577156614728394564715000534220199165677363849796172421823315880046326488887401077024640069658157577489390180738754683915409830258559620019011966184625791440584980952134452389657875354326549038751459579399142784775340831281100480734358866584023410422422216440415726856455846074547796005606953144580380916978732658998475487496271290603339179236972806291689832555896121609078805082108964826008825909720306786507766599773874195352848299700782631893038504130397129908025600465545457381346538783691452299851596669305609755683524809002654978625545755069223401980809782878027479406492447464420141172952662504700634674000462124626112407017563833645900526904483125305902097251016879591354624080315807700798742266312704191461649260050469412725597253108899302410501528837557249998993358733615929535279758469224981308329406663438438100579994748907528516182533752528295952332007521268069545549617783729664371225699990270813579893068319203502902856814077493500916671158838831784452264319999726823077036456406287907258759491064940177077657753948325250404426534815552412597151608016206532466034552240070355720140083809388871913843205768299580950180468127661765129573383908080848449735008690768002093760444307937211574416765379058022334963876381405528199154629177416120800639196190734851098839995329859095856449849558913480180957446135225264442837292279234300651305751186826422349625522483398258063552958155181023285896470602093599651104349140254395099898437031462658582764961262674876838612485296423333973676049096987795130477331705051672662208222597828622247697153347146459784905734381831662763463859228194090465629914624164181511403749190124866786951656273805717591656067927021020794320834690679216164252456860939319109979444873030534348317841491474555041537421731565465946730069699615520399679663431812476091756961784224965896555797623203561600545972489538833877289785962956264137219082013291973725817947940355245532908736689841960501917177894456967968043409940585231380215605155418785786382538582132609975384851840669004108022228299457675915140012515568489492426133213304287845433051798728864981882982987473588170640375737627376603043308113651255608376957157962572195925692634221838181227426801298246896215170913051830945886932024248151178054392213291547387533779590171729857288320795742822805530116775809863808812244270586723149175210571119963125304501553089856543228317522539828342876504691251187990284544356521965714537936003113369300642452592905563390453328935756258667218089640989448343874032142111481235005485359265387918393395320038564555026194094281841435537524124537110813968132960448404669080319242936938442421625060467323411555215416128818752153275649592804060080555315702664221378905438861056826077280281815199584989903262194906059740713472066428306980213040820210129903379389645249518855320432575372225719372108185081000194246051528548155907674079752844397747423286909457992493681589829029440241853374976962087729100822959253040386713680103156256863574121772487713833407838705451802934240074531545592143728424755770380845037020571013377445054226673065312530302753606148981167369740691429032189829890653372147042403400778574506673871726924406854737012957445319648065683712341834019844741061798420105931016154717596618820047721782115588786967272929684026083107403692052470551158378132238408936697303194846533265407458695085012163785319843124662856375870965202493085491163152986339205192988300009888629698451047375572449962799467819559042925984749630989998707408778170359538687629557460676046772450179472735669827997481928813382865133223522891180602818580171455157229581736241699799949725005885089369164367059000511170923252941254983073140152558075887039276461176436697581957451594028155587027415808825970568195764325893714318126676396419632673950226536154343115651263207091331345518598218486405502846585959670844195439663412066509152222204305293597903240344541260357849017355661873848831952448005860012460016257809386595261502483998238095478231744320315702199679361774606903473795498471397972429668066156142726810960160737917068656863048053805365277630168691083386997357249365704117339103947273758175774973077846344353323175584057317732731191081841027193733241732513858783802971946360714786157681461266429892955369378670570549129283033736229017341807964264774243179502023363780687290081394057322956532755940184260988328297134890932212281396821556673847964607017915259016085732531778472550048978271066197368547930852809548528603057565877082742977597239906253004256111288355741351344312931139149350488053892412748303181728727271800528161580212122463743275786622908330016701755553401413223973211276676162531977271698960119795509486394327907095063339760756078921801229479816937048766724515931618259781898027281487688523424733763095759154538205090369911121413435757968103361153878012703410345275342258341972389318214384194259166644785400564343422474026799903584444813921062636134612412782824061393250549886417029482739605692580027025804516604437429610816836625540857697558848542501868950925212416132196360276825863718321405581180608281950433522976018529482642216171980102741150964680004670283526806789964995928124975453783583073903061278725918026590741900246984115881524400329817786974114919369616220699936380849347653445620489656996003635281670798226765501739179441337152765429342120107111268203369183666194056385179405788856857024181156215212895450972751015524521876637886560793206565307808796103955212474942264321535034993248475626387277285253272749561047598006947113979187952479285399296056521694603744234819176606461297366006858490540313058173843547320298676496745401285646247333124096821018238526862750784562754197761438084100270921524776555215606988847501735780064570202365918622293340795534054037682649425811305394588157134902120471420912546920964616268877860928509569532386254160688779918956952669198467013237673209409342508396933416263105583733470121502568012578922847449638314315072097893495275687617298716157953222281242705714505721850148257500158623938903992615497671515844939752599615824556269652288588374652241254242649330326023519068239442288744123507530558775903199650845711651005720506175487658877418432048112637822113951499546665041467588463480402414470090633849012061653649514828960497619530433823951607234020218992280176805957879055433629375490845266760789332088615935792517806834853180338773428489324637027758136219120230290741698511532715734831639175075048815005503503250494170368102268028655764492197859988659111465557431047490412414241661207298910667171069269442750985849381582687621958143915067162502982829032350830714835412167648986963210379142552566559575390387818102483492350398034269136454096415718973247171326210820739800859373085125516014782556033460099042727144207413489717591052127566164549582656132899575070516141410355987788706002917593665394811779169793723129328021359943027977909186759651314008559481272989082206750597153288923234724904033931335310946515028548727618377348870444484466639002031677509350096406108493017408031836974240295996448940284486372906184087938476321518161220107501452625741016347607808322777727870022146231303923757942104146057672791333802166198824196510609540941941007520466682013892488946401109642060251768655174366115466875779945150220514765221233411905164870598720804778866080478100399380842533619408689705616414838981292509359593327648631898907601752338314991639965126528560612181864582537070382084985483464914286466762274886178552707295364337011838274404585598769050255320719804981585157482035165868142125165167637538601395677812305375204987535876058303044668668633182126543716718487534099145345931258862502524023418943472928642337832008351753392099493512734423358459707504702638704636897765315167710385237992908586582085146699695522311602894846350170741108135150171510335507739135047914288659971778467772771352431211000320493434762753909380130888863923216932964748896048664591554127213825672963928556948556313904516771300507173007124784848000130019419187002572718636233700478465492298139611771250176347537792332065734963775672351554780646495133530682962377774354935056408845588075579811837143297413893261082048927408982003994295247175497243149851759686823518472244833305041744586380840936512618993594164803520696409611589115322877387146968144959142794875443111683696537943458689877687845803565686231258802374362746235926506475516196939436572520457333621449585624892567744010040812590625053919554984250455301142854544183545802161865747925048636062113505308428472455870952731720694178018574114398568643170307064165481760080751021847911697401487903473822147770783147011774122607763840473518989157980926752397451738500549740899416910666135951681970244764872409550893636592692983185601857057941143069959441072974411605747799673874711123006799174219810908414978847209669288748188303615636083392710396630068386595237265265207929372332939050088686846412588316221937447411418064130611819464492704872162298269689693189107504378762626557308767828344094720924857482156345819749309000916144648685529060838809822136440232937830396923483312526284513876423888161137829998834143536036036456783036746716900391726637115806084816491170264284941226614808284363960302217621400855803053793346239897667321455376628184068404504430529533219992355993441953742998065268759928298587951833565200519530487064121059393001662282746284454331744614729853115460511464020886772497942696506636665154825379317480976551876695175275895415718413500829769073651982525669516767984073427391047483865625750733864086816004225231775519506442501086851918242013728253908066923770160405048273450090261397647062076312749257017268692414784497819650059350082024455525857496449707052245973738895893322596843567716217730357858340403003524198912394126692864082251216195385586490504067143230145334826400103640094303155668785550774592909016992028030360922685197977227450016389110056339084133510638362229382310095195519945544060812319486102578836576442785339228490514217384665297450326041908799283773044008596075707194473672855252504952437303088291619490873222282413938369279103568864854043108838740201826832736571562739786436689842331907973445453901053947351673944877274609217489175913311371306009691720540163783723442411275857643764369072786553885870984542409734704741751805529532635712930622482923191504611768215051342302686586099193115719150391505081108420946842145486435918156448442692601149083382103378454897635716115244290346073722573919410525877027427190557894620329369183195268736180632348769380257146807158289135787760211771178211332046614217650551829624574289760537143607292699973494855229574770320276396728127711283663262710756902938918518770404371080487618777571259501860576288698028438021633815629228949426310164100302291535924601233888669913247078393470896907637375854497231483470333575066936990129137907942098329892131814518427064907761329160726710604922733827799001501543262466179530085600510791446459703798442567942558641903223945901782217330902889614627485147393105444276875757360552752911624933136427642564596058786692349690058057678044416076971298362530047278928562674022881107018065680237892721218812770328173109049259091305054588891262106698561124573222855312223832007232084460027039739306721558714455182097111448265914267788294684890085602067038540884973085952164884381104253415750798613851764099857518514841153496277123720997333875197004598412569703594252692802006867167455483707419606845271091416923606677444148545707688957192545498446647848322426959755880343389630481425192397142635713998676250273102638969969632159326304597782913348199525947134699282773584755369597433535503274465680328418417206428407735315270602714374988646244495590635445940783038861465331718400089473186491640079100387085340035720874891977823016821859470890309855276921027782451498132096487931838719053316669630940627805823831853736856656043015058996047487113155770662195728039981223405907738771968592706396803740590337092005886530213164664328262598961358068970496179631638311136461296573996007494528134806922619967184571241008328088893949320017123018876374075543585276878247644492599339296116094079045722131484861638919733353209666390759296918436467867649451389859378762061559976988630594654938844899364791173866225245494982227963942304521140131358758987968140073850582861921113300661123499168016326576260522435593929069081660513200447040602087852892533935800100017036473053033835425896175874218032084317047028963651092813137220841100657173849165278488874589909032754816830135228455114095046266724159763968290636748320456538512867764627538180860388146570947492343643887086454487341070474116538298851917527740852939939526049727339986565931366117855336734407698145058316115074205794870671280113436997728380685790754370959294553094171249989505725504879276206244749826843705217592974009707085563177801985630257912511791951265621274375112744659492831050934396459931947415773765294084362385221036250499612683872375296659066108589120151317356822685488494191374881793293207225184624604977797976534097769508425160096457566806630471713588600107002781252522382909616948308146525908933645226863656650862853893133056195217169060561077886191624227868879100673883250334595340352637435191222697584947695212557070821164312035902357869657664129333182116848577929838873068400314959056066089346580621905910938715288754251949972639199777678251690831344820541270486688295423555499978274880959623959592574503698798570100709606514572855889907671076421830695147316639463615151966505913157967587767369260288280038282794638501704651412789837150241709130172516775451576138630278319472785786483419299836096613844418986241064663427434632668109403001328202753516128073944548154888354967536233894831018808273684958751164042333605190776098488100204085824682984657095258374954147534564914622799429990470892586677561748436906428417612506721484963798374655712461434000914578662793473525312259633849317686026304670015522323486514817038546413342945748081215360970769721567956041019993686492669677318301825247327874818728224235845139896743355197570313848716161498323245521890280727703430475941858039415548193175621483506966290942955805554374041002099077188882479048195030234770573339074392374822222185595061024017927673996124163628219962174537876075988279355124651393806166421903299127276935253498071146582094163359237314700898442312614673428762870228358257303011271107651263992106504327468369528599639330688664317163241020684295618538537975700127113402310904577707401017826587306821111448129792006638150963406186582011504555800104292637803938912758297605073205681888554524267156899291528028488989856953388725194903839824917516121783593080462765852588109750207939919733566141108616588437121166049478364240151269468255471676487265699050876472918333160040822637892651004294373648459341786331100230583821209504782191504698723825952958532299143987995948880070920789117501586709534121860902746294787728032825458250602322648437757298665198559524491220718709800556594116556539064457266016625371066360850375941096122957237969807546217649385848241907549439696006043705115569533765663892161562290174025845324494369677490358074642759386109281779787710784198607421887777653194128430202737562995120711962604218163012015742248466523605360071246138664932370220874397549929735186124093004022837856200140095881758195043377075726902020669384001790383379107349261350460921427694767130959558834232530379612172081044851079300965354021872265183060684123454531836837491900821001787272577959594396429886352839120599933621104228197381120559386466217090100437759223851097760503290741272766018185377638029598705627059934622947415336328288383429094457085785387060731881065299263064723438594037231150225648571639580920666773591315233551155919567520075019880053119303037863510265962007672141751105096168028942312149586019860571488793217124339267205028590302986059684528959297276566993831503333657752303720687984384664741771900254566385096129203702639006392783601824212735071264632043773441059780134243414033424550493478607804664648042484596390280147587392316568768114653686417791460110846261872865627800687210140491095268741104966772124333275463067886231017932223436355174034243067541865155672608040411044386635596928746669410744229630684841819168260952831276739493424312066472082271644303045999420121329344162950522424404170894131409790793705893269035890587067180003465236200450225584807337699075186406751267233459204176390024984839797522323681527148653075486808785629796534653132945834251431807490648031600927972923258904772611652429129621694170355492868301842754640087398228375908838298336164058103373350955309567267395183539274870642774435613731731578786468684605966461003382076785889788146327123995891131031588171225330309778356513210220999947945074797814875968974435530234266728848134778609464173581274085040699826374546276977188588073431178870228187453901430763656945645124211770492710684290885681579028906000647495665013791535499388970459181919080208561319289402592432942450051936107895639903860142219886512931398644147859203657129676448078468963061937354517710545446397735628144223837121713875058937375164323418104710876493612947903847279631996608938296998749594491970645479046152620497604245857109396203711276175862148686926609767695341772560896563321394565908716552944595171810351864536476010849937313443926757095593548050015006004518886971590228965122311906895293270601739194427510047432221721308996543207499972392514727481083210902398152299751257003249703327045221073547544812490819041351100497331239483366748711004921015932453289077848527417436567451467822859031255810274589147324585608580151956879004919012739666768209752274476802955945329347830456003182805559659597888681343092528777930887086943138274666232091853133457125574182377268933549560032394338661220946726593824294805123181359836697625518122920691969130683462465275581908437428197255912687972965345549950152782701621661068407799147265486331375133614038653812320001017888135197391792034527498952131511625591697489084097074038375648486065728655314077315569272329747780981126490161169791285455723936312819753994621151734504128317329979207235957350005083097547210085630312486580585394724470866873332948077047155588482942329531877506103870552292156369078752466518043502854015639742205172020240700431095086999889099110332875318443840349980848838671294506545405571522522482029666088186791906349884373029638016040306366273395280984334903136028307028953964513716975288617689399890931570517133342524913273708263932244742436446710803392285462513550656303969403528261472623258336690416770993811275307804276061526107722175437931804206806297648597205073871432669983122071438428200011488851553835351107806038040710333441825684963895667049161358211519894027396400382960416392334611861368855341917063691469532972983159501781883140799055090121618104824965507545074045819890003606035952861141956271538413893699677441307806401443220288659523771843193535543856223917648884624445765750381098405900290407342543232068118523518444593149784531012090840467339526482053776226979638290735856384121252335105189729718646175990384205378958477971892127649738670181315949029089033579689081272342054538252766572952054479162461751769358275209171028289117191174103107553842711493948308787503085025343993923258768324217158073641506085740098547065094270163779068677712742958089689464313730544270949178269958013436944531780728589883679405845369163519899903430070382546625419763219374544633271118356910654339108535014158274677462149072450708192270559664498296891082020057987044569071567943277604005566093231594385176483515164855029735101494216635964864136451359356159094170903033302156141965948425867215622899791641953828508871580123014165611932435258847933495146020737979547540962551298285312620562979710295572725445085790508360511458399273998898881797319528356210157294906013096682267143672808952277901200561750234366728669834937906629293450656101964322585535670031589826657387127369369088228552458249215558655276829182837101456787892792761863941624077303250099333404060210142596106713252460527392911093023531792855883713179923580694690421055190796165719998887088822234905831398116060467769991108532059210748122629458780518727017547768678482294774791004132839255552254880572473686287916633533089054862737925305366505289188171951365048597212006589956291673993708654724190563146421234341491837900784831075507247393108198954061760984897862781322765600262740468652026906430591711219001951565773186098298425888162173120896320169520968943279695213351699195410235693463215659431118022397385266588553941743418304441310208961842813206044437696389014748840559556834435500052046753761400705339953712522295959799581552504004046046592863823109821699010681757390278790391196629205980543075670317614011919332767873984118177737145374653918451424343078638283256409650798993486659251150526054937302278637358308109495090690632711723909108410434412728358152377087411386024780778171267385966922853936169352775852596878354324197211640114190712061549946404759757951679641434644854664414739000749121410440539062540154156660179224310452283940220711328430031169312263073410189893124935464954004954864334376246931951490342233232041238760961260573141487740774905143069927695449376321048058041887218762957111404177391627553565775945600065803673769753293550795106002195669551589247130600093201644505750125033740132954185580994406613944289529918064210107650818960296913166886142975624942509703097699291403212605183832381374873337883337029582248007722140001854839005554132716338846800128962074099045572295818436898566780483049623133217006746775676323748828677844927558873759925907623168287933791516118640929526079992404063843008880684371726034449941308323771658381072440275247236824163011192978734596285679672807772044017946748563198518489848734540765801603311821923867279317189652145606610990319234213669084372203649426516448558226565233557029328018534399398013004855871012499986205655432754084829101658403394428584384784002473243483358984944681386942591879784072157708377549117861049098538432349978595877946642270570453738711963542506384627133257974266622659395634321625525700186897981181217067598639613133966721603442808395600581477941915509754196076048459882074330006060423745962736078877093846751812218492063884997621374599426112912162510871770025192253381161278099221997559860766665333685031293241973078018618054582193602698705079125169691856058371367461369773734880589334693818185048651458236314475565535550253762625470013393427661012495817074791016363785596253255971931818190934367949383614532490299652843521093168685494586947972818575176451075329225390025368322735416488268616709175689779798669841424663216211052111975643109096514981718854597311963455348012185741608718261061607755854368621468256742008938395791027150541235104059838159429241999827105543835264789925664972960713174980188588014492040307855162808944996723637125802197216870040238290656009673885516894418425856294179394673991404806116063710274747730737711160432172580440035554680989429189447877320179678286898428427696214011306073999911452355502044420934531469019651935262767468032119772351408347946475635747045419274283189478838584879000414434212198956218263406782268756512710974735017821443808025094493750641741217885871417719412191347008338252492663131379414742464281711845284270459380943258138667985447251058717746705513832201184344454023682060178678843727537407059693015490990714502239751833717434907934447206840114282090365019272853826612460593417666205256886110810707756250631935926485688144095810108624011378113049762184959753181918621153570978000524462857226318980014634344950621656823872755769592572184499149942864372615187623976365559739142691938942402891664939359093252826883336420403702272175642815657605317299078774324000756613136299352856523290663189036360774041718498139735854875199087602842027572759774576845491821213149568372591816760445341949082777270117047441585059061816203897873756317481833412654347857177126308285470419813659710222259744663404203679871750477707050757073707086728620993160865121577020811054316565798459358499838976533904998523898859470240066826340168296179876334632750218562459591008441501629259226973200982748159229058141148666917217958122789421629797456863765821090220853997994461468975362611771203755924748719082640025476632544650421906137839599949754553433512329494649721890619000643400450607583222689795018633511434263167871702950436426379102118479526268811415263138936931782363537749921571635588951599545012678542121648089438859321573423436809971592165329183342462607190166120238378592680025844796843609810884263142161647740405822763992261326895863372726090156321677636959537752530220138226838484818077950760824893377465507428469794316403382247267549958214464792859589434298586014351000353309191080845196261771110368977963559320056344423462396775630924227829474794097899203962918975004962720963467596352778389099210240588028466548679262536613255574336632827126912642752755421839504623503448108416074371510380337100089097624884720322906811064322560376025966561053859599213609523415531637741130889483273990000213369520064365021725160362695018991025030504083319716126439639321055285306764071806146340376276114060775024958033592175538354526356277347165496399850770202127126582414392014083824354292482364865572812390881140150584983131982292874376772229809354425152977255833475298499811977498991470202945731646582943103558636186267077679344941573235492705568584610411650100669765790491714748778092753154783277251752594204417924727930882096551926739800611305176631582553025954925393083941359081861887952396545536099506643776862732595328648615102409293249778429896069307537202026606881094692761881596611798871999963147662610022982180574051172827716257541946830958289116037546948600622989518053738533125380718270409084593208582429523815065229174327843191529564357554531078150611820779416399491079762277752603560031071973998413684531950649584520538468571671092360045896449352950020750221732395379326367716380539866689037526114188525497819340969354965378094544384248887127412125220718340131058501980949787219919175172303453476639327678980147012072779877754629312471619009495806479657287599884108943706067885122740361808086331272115684154197422869063278795256232622681587137695224267184770623570346215293592946321788185537609499063280607638015277576151315578747435842709580380877550940744626566326332263887297599764887848952098183899811986512700583370087330455434555499387521611870322701450359211718211753781215107570841538340893231134533287384763528369171282652750520963601577725957430374214524332196549766202195243183505504674436848114957055571560579235752715515036472589370371664531853708647675867238142339707872096796173739885234314896165114739627516941903014382498382171738189359230748965494574323473308268653220019625777439848844214529046386583176559395227472050850870618055141670420592942280785020470000439020996084235395977710321669709245420957356868718076574915772675770124937141295711175681380273732351487797362672365262167406712843701814729040961750880437806359511726013945693186219229150234016273808805335471617043117886329728554809967426785498587429191107776068798888461919218620760785206877838832023177776660145368654345628193919979053700639471287771260914167830657005343923172615049438487832691304988605570627074159050936613533856121481169767213426395051079060090841591686257686546982233962922917479453060234912356995967422566768750931420903315983346843435650078420520150672699843054902549076720730793480941344514936454688323526841412749770140578378922279205426528579316893029487080334150736795925951960103760253795912802592728908088819587259104867879495716482328488545043002062740964981998354460157842575076756238763386461385328527168467469247242958343542080332118178766267702285302083467313093531706849975470136271353450161174784207175671115218702797547675602690151520134535763466004735058672805239121232421856815037774322638265519090515302180714881809114626083200098896537474002575863884901390495148930235094924611147819190987961960410202865611269865261195734983698481625266515735479524052172939717214431786096470492037321826911048120116351358946872024167255261057901675587827724005966847415213118313528576196424267673387562534539503148314317007846645925552731460872738090746382523499241880647644645676229495359217495615866206578922392227525799736678845789321986582415060077304022728496444155913074335671743822662097803022971614648117579073967292602810929750526449700361293773276615442338683696486535788577226267079994067613984848547306446342631708643706206091065487646239095338360163603418376020005376557354313588298151453298162164361028084112602546370202812829003216844553931130301106534837806868238054441437075378496220607863114315518675839581823101681544302017772434097584746382170211436592511411697835585679166604210027662427501389579556000688672388536003000577740815095703597935986709281094588756176241882458157479089899774269134777342346159561481876982766048561909022168899757117573101513017362159830579463989032347702420394015830685862974051395207622037378954376602685625288929402711921100372854756039414695023783363913598059379243829365891759133403783422512331334848185695442253348326806382316842245383948100199036437825023345266069774343091078680246967323811121014994989544341366582955456380623157273856023523377422120307691161562905857266945412984096320867020701597539375782340198043023939362168451232426926480436833015702148182309192563290530172932450254955872365419439891369185191577527746975479725120249038896371887485778601776930606753706298842335798813014235001239811119981906973224021518659685096687510931715129837381084832741095634689515790319956487612609198507107089504412833935243843271428438318913633215973664501284758628600616825141990525317663469413831668703299653818065355342700902571807130469263390377347342883295523403352750203255877591257523410640421209102657167757116583235693612819792259850724718033728122248004547207093357852851063873047064531986681995250051504799525426989481176363208718295613362327237033845153282350591402685925627572048678459893398372149802419079258640074691598676975997861028171890198001891057792934784959182779692028820861685682580926651266050260594851062583069223667771924029947091877356741157096698203274526829622241426537710386297681940721111049599002294889110380277708716550889947511829109270844972769934765525596831812548678863395701340862774612255704030797043618052635979022255363718932406526571980675823699208853044457967997658403934178375958714759705689852964682237866982959863337322142206955987405078084675436001450657956391562252281711847441196441608556390267000704431091834664162536142799014576062226386446634573095870977476197470817531839853350143012346661439551601122098974444779169114448666043878411047819797886569130524402757029393278673860282601625055253049554077325732909086066006924699362042802993344214799658511727720669049349264877056396005226873808577585724899828596251479140724725439852828814108445098074628077986231899954458208385427186672771087647927018425587447898453735582035979717076862473330118041327817851247457115658921608210256585739610139166263924524131273519063152831208474534266623401125641353179325990293076042835797885918630440920679513313126174264274910891746673650478272464413497468251393815817434019662087152920516482861091117616712892458642623354732466412447288306798981797222818344120564043192321138176455742101383775993089799611994337877526630843078629402486098368999742365204591203653624790386628463137920736937350667395998967531800590096338150474839051952800484703710497255524211411546368581701945184643056448012542524732911532939262112698355539972401086824609466172909580957922295372001778708459690895109342763978572202530236514482966833881427904960268759101576817424687018664668769336016654051547949550798238160795928926331009971584551069916829204395066936332196994235218788123273043378465595747097969859489532051853199164574863215226664425697522759951345240072662642131221447981993379412113962905040188977576060834111597720585674968301588201756575040172783973727429687805001017171235911761104861831574555100112412819121914889918287097454131282203241490416726340979763618994754217109068551826137062735527367879549973498511277063546620595068728208463456161943383701669756219668858681772437467023682192336679238924005293008743291009388130930659313077341614830332108970416675124416187444672025905107271276651193507571994255798402248068571015743982422094949655321151392595419691485820999893293733945010824269611928512662041740660902882644498952153748481852442409039026915986411416720657287373843781498421143454086170075750947853634350418788856244321939310109837986140066513997051600636580519328654632800147949346069081082771572633981238586613790659857191027598357008072167840768186287409035068007031978370126761979869521400692120816078214801773541944452317987349488065422697426648953597201617898517063390713439726077039666267650943426539639916204121118940887135513775507715664370644332144493043382048786052527591367273154888592325723254336101572483285227293251787335322386195211912343039335879209409629345980409600486696526446507924389562237668272338629083122842809413368144076936346794099147674752105705717703881478847353474554065041170755982919867185897110173083779440201087430209617982270986186816499640369072837238516469621707269067491936434710712590801712014581148121811531703524574217269178416966125708075978805483415882839481401084725251466752408970952474051222732032425493572746996099528460783749730502855435928376035112166373906108809539730689532280092394250419635207961154518893725767398500796255469692178837383814001860432377080453989870953896935691606095474802903899439222806051385595733917546502289777597649710867037976585142748324663824036149092868371017297985420003994688781850290251417441937081870489612354461866019033946016000416399099801767572984374200748419395325804922666012648974631959646438048025238351004863180003365519550800102175060080937514177233338017864124588288492801686782037019336357284717730200914374352668424274109260373217278832625282331552470654553758653265235698106303492967802552503830430944917397417569115711638274371252237933301921542218649773626454869458822883053257336221261903909909634279024021108510373280947483897092210475518974990262623991301990040745984482214978251497606464038284150793470969445057610883754905471276410776984158482812497081250457102536607353968647512948052528813292327838389535351838444297334719028168741921136653808168343839690788523428139403052265591517002240379145541807174052777584630392246926299835769702827541309031476245417688856103757930151515518976753855999152580001438153988184252228135555683326601426551395581632359560670761737409437087702821285838222275581498647247367360137524325466235587911275225359469731669783388896475318787697683542233559555076156698860346646068018984392212904285909949788115758145953852213510728822345803552961128499111743310260614521311252433506593040253572335141400074327359879210107943291585333903769156533841155049751147085967350526020841509774709521140742858309484934361143546645362161171862898718345561573477664470232978254990982626384852020677699187360885731595078204075674510066625293147951221273166831594076144821480999958776074943695891657801958141075208179477456258904591821790114253284423940311162205462941064491750206958491577932763973298095560368593166349401490719037464377815101141201488262882563391224020239520251323393085199756469756660305524069792384699903138198345781976440569829483434418657289917859820358547032718734643751999300850866761675206482658340423688808369520874288230266629347929486428084566992598585022016120045111907168666161821394436174772866063456599928132328964936734961476105600794702013354354630487741719230733180115820784040489952272224654841197649362994795611790777870117313121300283194429869770819011411524653416562165870230654396997284732749053249057883497219665672440504311692120103782768856145124475042788435778888806435590023053814831742937606367408743243032369170475735801513294608397554073121437722991526807069104730552389448003908207855603060351458976923908966436909340698132093397504028489608161721254746722736790590365429497817447851733799846814877771413692933289789680465615222730760895497297413578714126307535655944543840766890248046984193624437340251966186429865234492446876043818829520389634025139177014017167889262274673814167944711959700536057590642703716382460672379737613272602772872806932549410150217976768420004967332131536721263232312801264411204544180384436143315204600922575122853264885790327743913465242501076976231286136137786700386108497053754228020899891177307906824234752220561761675677825419652934358651318175915963946897855251088433101260474089320680529543263038584276946357106294047111981367473236318179523863198573238884408741693971281244181915180576159671037595171759432879267315867907467723168120234579639686879372498957129266624201451701823222141437873444502870202837974012762466468394932017338688070967341542603336314071568534633423993383442875418886839344602767982306579399189805433426196379901349414851533894515608438605641386956832874429850153196559500606278453635007974147265149993209305895166175767864748481559238277418212281447996881046726406053850393968850161626219565531951773249873489852174477330992970735916031109225767532974924819951109211315647901503770627073366477427620339768972026859826360117330506497812883535150152693244281548828338983568860081098394169612056925228267196811554306031697302799717586948398229122552480533736559224878546597781230539820680863614734368164033641265329023965180331454949436109368175586456466600816679318569445560002972320754407586246365800136839215255159105764231283254276323742109803425825427860586506709605876941760277311802039135126922443096523805768872294680766489123449880275596854809418257543390730265908146920765905554779395452158367431070640757527239257115377122114676125205432483373356351088776577023970068831237658051879029933522530887188718027066062888501982327871098982340410981375429421825464331068545315839256246842125938784100261559722412586465278455442008546465611171694151952528989991666127391381934044199486847805339119426015123290810487693543281881336313117677015477504577907261460521823641843922022374243185891743084371161073892687322943098418692372573526123852848449197750307727229894279461205573114759884332844864307828425180480723889647518533211416382338177714883059635572661637015117041646402373910524242807825055302429646547335842269028600643558202716796789195100584640376657623412300134496788439151180017503551093403580114697373440495257248863757294621013956464889873025253319778397374697847673453741632659150037649017445906699541005545018028866276501545402070474736531373602858238196001911325353563499324864486982221269273353891600142549285624962054575395422685385133142912530604053279392707827023692395892378695936849923450814326115449097517283860451397825074908793522502339046097021694093773539489041274138589727001659821705061958427630159958867330271880467650101710262143045833104961156411683825842454508273059649476295069753742747389005990061002233830653308702119764785724555552773634276715630907139749729144365720974103948407541262464874246608777952081421634708114372348888753501436245742883285508004370147886128388322235869354413564789952809890948913299540292917874271652470186033686484119892483667260294934385459202355260714905348890610354736278918724079693255852113796228485599204500319072961429690552930907563488181774173362418633678161950889551403900234601981724318357183674177266807017426601340044871571115995123100660763555117511830577070875553551719461897359660441747621145760068007918892945121939394570125964473208680340533464940664047886329977332891007388885382211470118563004698020118395111188004750267078890236192642529804069970979531847723990196349990834126954490117113573874640174942263060543414475590212783635134899522292142734912026974984447699922879374090250938338785529145991391692548576609839244215573179276181992137007704874806477801583817350358445815901159797910388701135024084954598279159284959037682920862265854961641411704651827560784711229396776660859893328578194846241564345855130284121590538083781895303163623752630741980169549566653373320764071667387954456961118393718118128068349612315188338486767495356266637816422689115198744738310480147059695155859063443871628568708731313604733460535865288485052488346244193193792431868698921601133755467423812411056672828700269144077512850138745879538689578731702944885392557649733465473560483189668606123610609365080155794449138267903590783641639016808732571559403220427820294466229519872434865319056284927188745022986356769811892941278032934576501511577613105172972291066199261834313764841373403163040644400725431551992080359143480552367086065931484978980878476001002714911833948334505817351790974946169079317660508139054424245831332241218129495897074498831839258676366385850948044144729947026203140896114193090270785830178238755671302859769058379886193644581138848302904385855759158377727207381294538326413182679289480911807788980987839299383970572650579333588866002324895361441563497124812031015016771892606980539837803751433709434608185897232478195573476036899589638427354780931786577470821069137656450371916998394568118427921347391235544326999392837834620592809548684223491140880615877062210574899822979045897717424996549781258286917070668948037627791589336655716294708202119192089509572335888847825771022652745538011880029026090120799610221604983391533994308371042452450144143873986414886963076403974760596516365406754737508762742301583846242071832225282127472238999565407382498604456105224261791902553055140112780227300003289377758151632336937747432785774947277911702528499523259370344166170410257793862939414792808770624720674964299957918074922453571328248557891254333093234157028618352989328554111819499866195612749360458184599973151823975784989202250303945483075317436259209793666462897716981706971377465581143708478805715889741472017346018140222321229049937619483323316741346194725351792186866087912329687796748993985541392035801124364783573989750154761946464011994984182632563314329895790194144787510209041774779850500617250919418463026828193898606976499203827926078985454144542955593166006822874452040503128674656093429923077895172436965388008701909095541111629014808521549328201911857498121695801976873750932763050203788465747517535980157465231521144253606428330269992384496038064761398965880681955244259739946628372011052519034775176317565254799090403427884515348741852423092789282958854834432622335681444787964534725928566092303014153421725600120327462639631604397491915296595041722628719927109922205120007387325831434662931177103479434855987841808117107329768033829183058262362643674918346898636832087382182971098164251400306762521394264695083775687039602269553814433840652880081668675620165812385644420194834073448319850191812952655936891320101601818376840033984592875900458060280555058922881307715267285534904937152147284498885901005414728563962563645619039012281377705522672788601478226161327121253075524116104247862054676496092292974601935807965000618697737466916698390846890428571741700408013036541720175878648059009959121162910372234737113440158816965285871045521469621044981650611472052055779361352756108090480208270387510419983659512057037569025396844335656512522429279335998955849130357665343957750175077052013766569688275913435349738362865516956719151302299032302534175284873779446731849068259006159308719321899425799097830755473190788524290505728657161554192633796445748134251946571242295163827972464869899561065926050698097959361608494026964849257648282002731779511680195852088127953032013800482712814302002974370998831999456507445159945589039889779470535439084093101644957253057658829731973204056686118621342994758895164596247539341624242449892139233999613306932460636456727759602259500414125410118375386064620742745220904028305094533717124653289794841301760118231581390258576595498193106725207093751814793994378187950143702047590392079343023603781747421052957283853065816434336939137986835462958229046890387872211470831109591228626006262938768643465252736909144959040431952002658732065395024515118424574268054632587599845885471941005448702628830978694309832143509194836503589927832600884178328428749634525773142393769525033736177718854792366232221504998013713488483564190093771446464953398167526504020336676711436598856177661318697084542493491363622901693559906149299050714984293835240852288695452820939001766047428125807944971431116322291055836920356873844705862041469241481975867429632391428098614778858072231738091916521374830813750977761607248546730193257333892460046019840001045526301659611940411121854451899084796660442105918990846939762678228792290693729410202500935393415341606321092857096613463820236788715264096803962720587395810798143571046291615809628825996488069495707915665306031042480367940239830273239889078289503371908726623526261303757516828757839327765056189072178886474955858500422876372938552184796471697075085325982549025796638318993058862306878662528472094189006338514340603711886825926764754509079593870872796615268115619573727210518248329365310355107706003930039406029759658427598234340167554091899159671015927285246434557646127639269520993081069408035036010142369364238644730558591754840421110985314786261540240801387985845048361722832538758791059394975629773489435911232529383855282418626919032141626445174828164310946110834930617511195253793722006782407771343409198122413282891345585976987277206724449264759042559463756960563842074249294201709114417734148875652477554339884042763205968339797870315124937049113540601420211643356500439574838268662692155607405000469887647919964474009540508964924917435707072355599571642365805476072938240684960439896151304688861512646972240155272673327228309520326472378246759545912574370681512939935421452943043558682416674650079308756109369910946120902181617467719124041374335098136564359782358997100077678110231297082204079793332927698160454716118967197580595343994667312890000445021780888766927909519193630343705373406078809563809135258317473873282062504047979362499470815043305614172047285399624156310637443818724026201857093835399278040981601601398968885241358448347652479809063469647813451664225529957482260439595317930418980961883506439648185398566277340542039322303881789686537180282007482345939235397213191718002512019632514325564123397425455989008168277713044897712339191396064395033575014865069512719129758722015032355731107775106078005436496219236097420313862211755714715345223760087498034008489038602267573972644797335814558578386380134608247166610869685453915130404975013371087041880554015173331381711398458232708538712583377237222484534932178850168961973793039363067121826202545088275832786569630182868410267170209403070116152911702175252803452606873952388931762751150245342284379183326274074785366074420512179471703637704317595052158800741651398137368558282396755893830694445537515193513300868988678972396764881450292456841730597008807687743927280687690761935838349226475469379994384084693902294072005015623571723981976089743069417696355672849907014478008214724773157580249710854686619345782044562589868966277208747046996848141301596645506648250818551304871647406510389847545496869870598845029057268140608612497331885970060243101435949932902956651242129078152651159892316598085295891306122574319478081787259471713276726586384929206096278060475852809894772491163763442557373935496791293116073782371047459514426507023504892452636398375401589652022997784686334369756790489344788701510902867043776643441000693583850544628377396801306810261989049586551372037638868054001971714168253042956071467888381549303183233854955061178922668829741033478023551894177656254899060116587033825450684666039419121875475218281779743677100353967988724712021551657306617178769083494635540743301179399654784578386145275937345159470349770581054170900037927869749871849391052307037172681278701218810124103162351005507429728648975779348801006168972717625423434421507860470071007318276351843523730609579450668959898943590664023157742512243479741466175651894123301102215297767973341174938477566720957883367951494510053110899016995413830219187434341251399568258494022767736081866698604670627071250879821218292365863713821398444366019737757889275378589355801021642814665586852461907531370288193596177493150117706407363962355232903769288865812420192624960313951812926778886588156962456563769072318265435529470261897694630850542476264201238525138837538543651109554933748056670470163906157549867868885224191300388993090550514399478178844930430830073104833114446957764476625601930320471188128344137450733032429539590159918736560036680955858991756354591262804868162880393890680436090639938607764856695318659451728809699150814935502336779623975562488292999062418566775975134669866942363750006481011402629341071547540711374062363444549512347757681908616018294303919186279499170122431713338328228468987171016892344628673767556561879593525668024935616212087150063743568554524975627987992002503492759734826324047540073761028709284507641797638941006822568508153788743913410134665472316001085746963939806945873861034517339040789874572824045222009108147115610950252499145090429113819121899184884088278422840395964519817138885645686751198557260357778921935254752982438067372928533756823620455319118692791540870893891933270235874811391772262158169891824365959514699019409325546547052791687738480293880709225219696849269749156698144949331161112613248846323744720150675238916100244950841526909098917658466948402205134007090988711659459559885686661506707521516541951397826878020638398033745900863410034009553326298278490189835653730728714513213029224106336969344899959208275553181010203201056277393182397413906149328547023181532653935295760538133953093715943447431119443810323088667672712716564180274329219466273422281320251968401653571438254390990787048470837485728493126298660127348003851380438022867051839957061284455682834141218270444172203453130878374324421676739714147340755728288341577233984565530998179514073387588872201726603127401158651811033049785752051981313655657633533194963640662833256303712275103607248358096409495142323902445284728089710073746687112162597381407093981064406764228910016443455639444557736484705732028654319755977232824820016296747769118665552390869299290703145654231836970558030732670729961941316604600979076941392641630630999629749195975356550816293588209000855697582949038486670151603105745159927067380136986658803634681921062162940971288157021786084331713818817184871311592323333655709692172882058057305676661982221001887905636961684585310230870134313389833982358152114891836484560679047729576142654542224291218569979934227415857219091655059765930123041503046704689321011406769056539361951470160082162706997685638270142836967336883124789585209559850193542292084225798768787675784191558820270208298329949173181313617071759880402300526790347406810257818898661365735563457519761014778785522306538164959317676368311033742154919073760817420137295905702744382634690846404379664349660122829227211339853486634733817568193695114295989093247673732259976381631369831918146125651365780233061562962226981251384925004418118972423061121348927906121573437218136916301344432052967565344263886760844932673960072752588928107453096906666184938794792066291474417286307083227185032315666937585236469414516110336502416117179370529203365629910164826274959199491979785230305324784233174210994091698902462827704386944056657336254992712209226019693644922343862184971519246162048842559227762806681477805616541997447054287480890828702651649118204376860990778886509263064863222128930604179039307990065263160595749710194908435935586793039234462153228373217216781996072449118649170477386175615242988141194606959504213859241102192424920446209417069974403291275422769160729821755463366544705325129629525755562045889897597869761142113380220713245413250435361357828384626522203905896285311184617584688096642438729040438354942245972091696034764294898838917147130701116320891850784124220985303060572784501179788134497041505792218494932164213780105215582852034515032691404174849629489326721324380140526641075435835221558679394304975544877589687244398223375173227388954876223083228974919669546709108989852240513404817606223525882322001022443956954683025561917211422742070264175739770788448519551350748384570492950035057059158716283599786046303748456306970861596964371388462300384217459386817766221247244393849220023973277504648114297535432027261724416772311635132742715045973950403927656916031980195980445566945883516080097989708242753979709493442143042944240679159603040223044749033402910247152520900844990278700317891951407058667760018528954401102257576876742776271194411684841380879609326977374057028890645282799188083327833497834837922711529919735682271269283912615365073235759367512473264855110441071729060343977403134374771554905997221483761643357316399782719551604947835418653346336338433104062650573660069147352607839257908083112791800068458511132216959404608958090656048425185479910809910151214690201370163828801095869347318360816687984791195192314705288757804326587698397224715526386305304093356757557021735300791133740152151879314074361580537088335074158415016290307931199086517927663554801655437244843807660475620570541314348514366453255867426828305052480218985435570768148554140339086582884788302092860514548682359564268695704282354658840135022643996812147029491807658708744826266057153649552109882882695708961630115811241616628646003154261007175376601551457057555838332165348086877891627457502854322014188271286548228245667849837704740484964190165198118924901718338847208017675126901740837200499054382195504396209812015963104439243541821240759977550606571586530823844321991191014020527237430890378290246779748918774219311955312522901793174955898785007918054077936844249443241678384759911496155508603575097648363359240188739220971528750756126914108408810574874623660011104680151653057284900784743791350756200665825703128725263257107408037934442636533818498745173149246383808414461689089311846140409854655167938335153910612406328368742777727525299669820757968868297985325713002906089579859714093819492955023347721155886404535234615029061454042327758608721519733866349250046650320461506390527733029402248766028008090026419895340872433924513016783899064788084316151707263933473298765203444415094657207522986751069017795476143179170103920729109573518933362313756187697246552013757378720304719133241753170299602898521257747227421814412455196305538981984960631386333605474097427961750525661523383961188557620051035386497370892977992356902438209373012572704895809801026274307435642577568589886990901567198271566960430325191803674025651985869621407189281463491818567466415459396069286531792627857562398668274396841572583007994341967128000571727875373312224970405159773482668440273266971252786366922096356030784745429546025640159023466586414935980764221068904087289805841694987152196675174526431659976369775674438738007068615800162141562727109965346676590324228724158021164599641088101808822017772089522687192233598876465518333808959439744965779907788576522707641481221764274919383290850837382240967615452640817362370559762523647562763962946331657172648323400168471996841646944348719187881437760642574781810663607575088423014249967018767805548078507561765918794659321355652801559138450061838809631553868540806225746768448140317106361383578412334151767092746248743881526323518216400788263797968285538840094595040067201713209769415706516569426076808553212479346539048250274538507384316389177240893183080641511986363990058447101660219322590869821835574292236757346871629930687357805977499539096738023651289112750002262685317592044933166257154013115486564996223735473967621153736730368387255267202602908053404661816878964089074179417423753358191796132012773407847341313556193288904784377467119419175739436860722091996557302926077360649741559096966310750359785370291288985045932542062740532634738143990594537719689550680289840297816283379920283747830927858721110720668661055088468575638643868670272676312417044528497060834785015094856068060494778022097867316372520007702699856881771611623153758003286446835894056131186984611673717328887204687976989209368775866751259518304494671426507806949644396606631338983674836543085183759919472574399985496412311384626702582568127576646080919337366690450857403539434084260028527727962130706317255753975633511508195180091908183988427305121196080910237046329886030680523307575833546341699885706931303046409880032753061756705978485066569301560429581709338462687533413115799152114239111705414437187879972296547304100232659284995439658021424836654370229072341654771816916422860000905446017510766996501592158514445189913639343613604489315445502656501101045971962680383017222085841505126596840204609283751827983544560482319133644430446481485908669075091630631901949199261390517110601877391938222454221867327442999285407432916692541108429462434989307991570817149571604257114009136869828925884062997319970092673483169984034663668489258965178341746265800929312454234208859890667999879698458498192513936944334090101440039353622210494522575311733582417161099895628102613627037991380660159989931890662741773551118952502298377541699494654468655268264241943390467485905170213583178866634106666037375419488036493199646233776918709036511647483285097182179187071393556127200039174779229802782319974997631970240937389814684656228758621839364445961222901185028838572264063040600964221402435175973909510033156312652589038579528278179252869355111942671452861034135805650164854258057225358735037087235255861906030407456955092557924542330978557080381441569061968928552933607497666971896411594935380901691238224938709140533096727968125768124296603679354298045764304395023117568056950761313463817748151116359439792914699860416622009761242595550981854889541628618415583801065294888053767649746999030794883651128474375048343210828762075650475210862299274003568694349659392102190366158691692191014187494873829729637242572480018980014107802349069633612144532911846579816364097140228179276442929898477509792310928461791211796948693995626434817568697245573915753205385283621179569294355006304076982420667145324171345789193148953822068978644595341708740840112605458645300794986119060432732266490515988768760838089061873495611289842700887120701806642993574169358418614761002462975504632228349794239004619768770796719920718692695110949958982276821555792814260598250139710758798067516491565751663039226979538608259243432044561758883067728274774056071344699887047769890083069595895314976888937443858187107652783780370106138390481634072768250065648259259515701610047085190333939733853857578783858947896047436893263816977290385580245067935549043203477914279049972459987137267781382511762188607806263381245409627403795173372119809358040363811334444054398109812396294218579906267034640703745615123590512332024272267755154981939377951212696507270718376936435095715038502657858163498596439128911403654688304171594984565717314613566109176037971540928093332888288031241778543487833493146497734603538705165606073192329036554433359184267242195582116476622755721034237184146033294702436617002422168292501709153779704896530461455745359314548569322061544150434065289231605388367413703664201331373875729922181835312264364454070770184414748568021177777287720483400310055846197072898424758123998573344093454534870086843919526539212747512661704211015051074397504734097249400345192384465728606417446711067310648205571408922248557842725030315206082509286806484563370973840870963316409411662911955430163567083318846728391741957830231766768395942769536576611942480913175902091139250690429350305951844700492465982362501813160130859007071639593087182450877652375857853314770962462623909715135122345116717599598497930691913754061680268424583090054394232080789837668942456415285278224497053996566031872225528051550578053078607721737040736202921508986723932043449167079012660010300444475373880236468049627709866535196347949921708594331489510754648190529605255805084113991628502972489499038954871713624960962927891745927408197736420010369776280158937628714206279177879489169539928900220306332328033093018848311772966444718007604258309772431028541770733977727561586666748460662313092726039975517319405249133783591975964508977530597472998683049316416185401358520125743041005598536134370113090030929149820112206511925698820539362742643485840662095358140599431607461750169448808962429653284947578827766943213815595855975836664329883912703635980041388375103760405183087707649816766344968542738546319779915487815345666258222140427924041744416608965258243774200976054445034852611356239762341873250265879698216003985394899029509036221522595046604069945671880078221427646423022249155143877299761067796540510192866862611093831050114088726792939833542007906535639318263769262421828205662144198026791926527248635728208017678905490504033514853475311452587283165133817524028486711255811505136514107037875999905045405491203706343674112003824070305035506960933736409372164547449285048126810961431836184586145719819613504619810647235749007364767630956162209942536553423808998998925072145004848875987740576808692492398170849112550499264639563777736103651495862979652651066835878320876211761401864059562865725976997388814696235859970632384238091087095451337410993616028962216458355672734740691365563739314293499768857368914526855307288926539576053863111558920565008050060119844418058453379487099868704656724042934779592169674556630406946565105509869091261969828559844289420911150213138846094205476807186828794679071892780279250156205678708063407105224869315375739065587442712674108186060070489990944791189087968316610096954092056860733170116047692901826134203111125624185768597864912417973261695109959558329594157426204355546614062432592250478117520070437525704268780778573729490168195880810374624439979203933528617133277426719455402909709343484853675760213003523624637028629508077491683258876049349505676846106333565156203004973257320687517474586681433092829443925214266754727217359804959503169664874855069003859147773842092748973212220753600134513154478323118459783959306337824352520358819455452380879381718189323406182628436475768997593155470836578172537960945052826288042781931577966415208102192079267835453897197152979971611138799785732362567657563792674186355441760924367921067476637485035173234036334792140178919961129739233828297532820842140539972560385116426454115920053820440734450183100913115742232215987623692044863916260338088897037900879398605322973786742544458966886236710629274654281847513877517899674094261126528522909704281289115160790244465602114977627944078079718937297461919750416025539085433353921438983778209174189434813138298088608813174712114372378002463487831684482269750409287181154226169416613357980122828343653176684237830295207796848981399825023420145201692734103395236889291894375962732347753628202980579726367225856135157336561839051124783340113671692416595684891969490537708111566679870519523679436570860365465592718803706878641328989653315479640347997748576917181985279634863731875225056417235879029204713597762017389396625178168821295411623555155642671778077889021373317629349961259401340512873930074830523535513822339006896969234686652363273859879488354873131179754304843643823275375524045359334340246310718401200425431475250318170087861429304251376258402915574575468634396195367166663610878353236929578949403593729972578297993185875682213303760534795824220660224522304804656717661172017869917056214603960416407442045984320141552762820165680951149747600326053791205753375549284472671491754637582525073420738653775534947105104428842117307394419105606013922575833673129187053841067807620459478742159831080314536328091374543376512146993667038417710124136825210281113784505169339653356820505549860949188417870482710462223833976870328897115001423802018352158648386666413140086383423765134098872985685507429415664867731580494920761343335901997432091271557873465232995640080129546203038528940173923661183897463722760285942399461960106872265878970776832082023663908806884519756430787539787466536795106373128454999087725065734045020645695649472776649818074764249299982087322920496469119891641076671696772891300200724517153932942264722083226891084449664936175711743881956199133332311314081502825343430421104808792684714844883173258186737172951150247126808314418170111000840855008533119898100084827753146901592349516028862306903190159013274656466665061173128090086443714711595546952028113988843632094541075827328386313330737341151589263924025860006655837183662217561261460895921346856415686597232294473480147009952844727353374728114237995862036410167992521917093405693218981737605971849925963775964021463954321739926649998216751675398425600162740138644767744188093662961242165050466825156510315200690381538542233926434294968942109138245233259520732800207949942497942225931028596193041462608019756590962320135579230807959684069899236072135240314246385319064974495053517955656440500256795905452018969066425583084712087346337307359085251658369099554944186053454585744398469528707698608354425603294958832642986521020634623901978801922569575969428392683444787478659374733238797817638280881786679183311412406952422463959805562487907744582177491623432868455736970468871509238394289408738855029987303410376899771365641730351304765597668154931289638377392023644910725363939134811002090168009651422180484448474182849007210917238909244959734962582412337500547770955586580529840122260408877380952075237219504100735831377452803263980527992617335032727403032128059254873489794342219573014388202803807032391833387209864480931173091496359871912034354438815522327798744560758476953674208805806353590561510466220788130717054543497173863187502004790766619498673910920241999003719323745051688523161413374347881124492993407598847315609364746016848286002269998785642762520279077170472597872735799040693084124436828932689795240703799141331514596739063527775649169387485703730876998956961365863062251636263645221387363888774319075883938100055593715193886378547069842365185489301839441376007737589040645498066345025742069991896765897902966748218623032295725030543706680045726728296603609415151173136302900927364724851911717021436613745642461298651203958309201804599992743381822269387749659956319444372413025727252545661004551624302978196956249258563933876502721209084038681922593379463176209766678381730283743065749587409388235937310572485434889405495277006181583477461762288051704277128834972885369302897727652408686547525319866647805435282101826619301916205588022370541609718774669807603645040032999031583487505870441972878395570627050105856267333953107382897740639373507287602280286492856829497763526700758537153436362810072280391425801560069096952833098965364454275943820009217289155670229951991469571827537334262230462423019107952078885959491971872785986580672697146571560233684733795676639425292985110902103548994284767290616640973254122515243939215198252449894602746120893783907031687516104033900023132957481170268888534273159792492198720419948333138372664659848161255282788490184360322824005180234188554885756832261795440544192607328818449862772854251788822728670885529298070655633705938048108816934941783093393452660016266740864144546313129755526653399103911138757475417598027023797345159489931322191731435494064362442862116742980250924659283748562036652515904772538821763389850421437459361479441928970772514073269070891087024940448872950397695460299185735311935856654780207774515135892852074509256399692724542468984555301634108010491140840255515381532490207675138194281546320504626004321553346828369573187568147051319095759629120317240265699698132525558791273442332456877298705698326710391853400814788361795283481587298300443575522707960733324835668088241678053520087306323680543585661223843267360819099843777902584435063630927344583226320703234822764982173316047138806455770617614374550801271495396614903990862402879968835890136606190516454738353325647699200170736095854982476953306967789653410198696408149193442717744145371298501200392144889495288076047531613856452055398428599484149570393870787474109541455132454785997857834143187427026917500143049690841412841543350605541081655449737184982015803892037305550396357738863343464278738983367127131616223733118962280505631678077254834447256506927242306112686357037708440161407193653969972400115328496272247636000729532528916003634136849545168528681446222433537427098950812688639781675917649560647564900082937937101168215044420470427394116192592344837223665150154038889818264053072183243949474989962257675725436405887084998860038823306188499401503836799360451332233577289082962408021659981036293161023158874096649581848822985453014175256236398248119360668311620714370929787775177780263784274208249355554508239524016950808273694091749094500210888974202524952520278799403678233899876896171820805952867481599121930230147986374262059115531818079218876056616476821789439612979765193558551898824261940015536566027081109485193681270443577442393951386416569541645504001418625224557838277431724253045780710820834190219887190070002396291119080987129916918182981143460002862167508949788978440598024989863148769634717219753930984121425520387650571096581415552005947272963307424479026429383430014664199242570852175525695268566604939496123309602768253363370773552533837087450319715673011041897659629344640085989198279465826122049258320098125207645767129372989814684751245286452230009221442611590313405079673522009523372380809147759969633028671934503893397855522031121525320376329242984375044840116047220046147293481608149609929226149104844596194773437623797272914749751228020424158101219900920969095674745056947657333545941246915502933364771345028313928335201278265267225448143394743342470999657106105881852176046156902688196804424913731315283311940745723067341808041167715607216368988552128135688609720771839933652325017202405721827932957904666887482353788202697121111974879190898722836616305666174565029952463284642837681739582825999731122504629369133448407413902920832907479101633410591209030019682627146773670745816707343288600161335435439460539826700665944842929893425571448648805423040863756177012441058384692055875190276859803543537021296883720442044254655201081856967627222327564073530899682495192132131624497136128500373552236646015348553388003468549542780985847187326839094407011614799570014941190423211865487596611142259212026724646816514413373724903115556746354448456875034697019027400097030958962251226203348973798657361680710683561790711255394104814898357337732361269386058413447719221810906961257235577667845425440175003289105744408822983325867826613885828661843839543544754103454364712486345084890996991694495074131361926485543405788304297815063881116872713208018994921488445191587980890827510801281300824710996450892215441892142635918128761796354687358544704415208904208086870737752008443899119185226969032626278370295593154094552570062814719516883494062671254570469270257301144968564777579375433920338420526490622425186349118218230757815547471660717683813685995545300514563674056802358609222771716420325906613858249041217152300979572872183946788824211745375921375840998485999739707714008728034418789206828690007660145250460657624808310655979686239515665454524045152086871525630868591776100796316025490573301793632141069749992171314420075591647794051903233489248656576061028503780155473310721245192321250492157706790323114417800115655364122732709688866965065761132403420874951649308508832786273013715869331608476017824442086871356747527198932577732999816203062779600427504794492305349971766208921260660492999119996268384620212272479990252073457161906425253273111089093094637775112465949542568684006318012170656332649849305069100051649082900612511571877969397493074911384328425715591394255252605167073872200268128368486908612436632181057816208271323399791043846060157626367893180052702989207965034312589993751464639440830588431942560491748906501851818891057651087628387790310941498772956649267177514148587117136184267522737432453168093402958309374858668164082079785748962500785775390921080755055561259483662324611427349365331986760861338998732093025118631597783887162839174931176609158176204624542535190177633878931762591989575198007247441127556939081761428934783536588864135479866522291279652560463031344447075485913632620440837826814714267337959911223138120876425321758894834098598496895118286006801577534460934622478315955387564347901191538997035423012964381758005628696052508228252859221152042802948843577923945378483721873432202343986318534690627022799202719569102825610871769434704582325175526930872135284329483591735188821496413556038664408993264089948723352115686869399057922029034447421798635836659894638834134354168983661591187871536963337498906686872948608945997636372464556823283356516313514320033258716525854616054826230741354436010151640111778473902397271023365661232812141624529645240017990760906558227343445508268538420222470161475083282587336096197701207515027729708195345098059986853524934942723834818786099961946133509643585552207847558050537866998466379467526685591695704919583280414944398089093870294230095882304628326995227211004774489086029634232159958374579182531603177134195109775669974358422291509940659264344610974868415108206767686683406563134317204535478968784029584905076500821977566386808979712506803577934787262010108092876453511121600943813741292169976840469115378547300863801343203459728628211313290784386966327701722458480551361768443676367718694218801954139291757140034870409259526788015569247529431848775936307454438901474083792346518932397957132283654520286453510044986448309254509965825302251137090549479123591878312750479573641732611656136149142616210498746698342020889581630699035187463472348672398286894092688238249850637804855195471251387250251874143986795122857970639329399605892723323766045807376419775443113215984625298351821652440739189452507435947691532361253420851345385503513432999341308643666115425783753098523120751921001125742476920714465550561460029291346276238860322087715518175982529257581544064814947563127104765203464100961012162711264410449578468487827226037888796935997557651403534385439855969821441363190729773960914158156779754447305066207136686977771563427395449682228848401197805009381049451725172727191126397905102355110639716584987265420193055792497722669522308066344965009183808277610845591261797160543900520329506706777583052448655845403955671555331612741346101527239781467792468112200732149824523326901821085043670018091415726437140797091070803254636499440439566158787100750508215930464441971018377145310231181533844589692506924234499989182436128382893794267430120777065469575539036624961162706543275947712054953605181967126082827096554805385173605335691200002594035095247946017803419041454276679480047925892261051071898814940660475983751877689458384922379023188279587119317828679897220816976675239680759461140596101323495318039150341056832243599582775164943635654941165634232118891900940820934045956888295328092731329525858423528845015151253660925254782506188745711317134637955350990225176255144172325032683130504270684568851678875128824390955120565853351925818487527163583861688154441154537764854670717903557305608448708329286145071838076848516935219355886171219658053735236379819445619413649456281472183061999837608003877507087608556642866042941362395698488752589207724403345397823209419424702539383200297520784238004119650254841758693330490747772732188169255390388343455930083482736160693515199196181961197761526622647246391993546292875535855094159227063394628689982469187734442801883214670724844408908176147402311329905971862511379468639482930691719306546419038417608286438684187711724836534605377629357124023473798116000795109049806009031280921336246140434433911126210016012096664855080826507620126057986258644692241682038522081011528942971296469950065054044195795920250137631006627638928411666825711577778215271745155577851662522961047760902586933092089038817918757734237625921238592381763336246355561044883398972731190439876736660561973912075689612198887495619042712708495059840183404275475530215940118763274236433252353325396479413748279541596098865091782564252105038216692751566084527908989000655685615415976131964151715188101630697025395121325251919696471630184108186393042263314103547503446960984792382274301188355720415587709600423984711147554186526637550367689141806474510370403556615775435815032822745499806106225927720735790255074902071013031260317975975599325763652787326990786549963375069334424274034344102993471700905219118420584504553815476581219417127259346978309948583920141506544197413722454341475638154919629662036207823144904109790958457446905132322428800496318884133829906053133197737154009984651254540018454691512969865859101091601462178567424114801554194812374106263822914913763534546101116860384583580090259807640181186387002612907286585616384577712546080852823754718195442340430274974576229978896408428537038024962240200577527703486901908527797267722974586118684431932449841364255902383869334625157876016024081300940906258908803166757014014656885063626858436303918729923320103185257763062373604330339077295103052673384050769733857564471023131484070991451866846184442116214026683147937878368102013872064034733798808093120465366984191263998157017914023889939896217114535671626971325672336276558770077820054391684342529781683085443493950148155381017298419387585074667679268917372410881431382609408188974741420465981406881813653723746883381017663988013962783545416879274343415914711646614953001859987762960945582177420307934461135865299030005504253854670657222565927522687643307804764314593769826447479537707706288324818756785338450779934976070342146820226359337307391742963504749522168084021645029334503491376488522370886153063550011565683263341050710434128688907991591465747536171564085634771201726000549030147337640672085256603038108164771641337914963384701412944796517078373873944738899345519724780056450818141918647425987743670444764966379707566452982973074346723055993036953373882540610161763409815202785594786536533533334547381852253048119228468938888045739818974960619560497013969035858114680360596520998268039179170021994106439499489911779785945938878551146459887136938891330065824920891731980396371218415122299962251089775424393807509955985417541433080246814433097944654335584399892655536893190269333261954213885897409271939398089118550974317780593656177203170835420370067981747516065325567866357097924555985614932576669710765616139303516141447189312012796216549981609508579362059381625575080868615195544611554746085183900675690352151767703584754377531740985738873239444055788739676972607545800135201849467918598655036294148678827494097665661545765447887084681031683677799370581347594522044129107783269858959242022543454452769423315831302717284313548262341961390080479735051516263660073830136017400061427931758383855815034670702529792886654550496742169015100732744195512777158352713731984890647159973375295253184772519558649862225437178698709945982637284815901188599869670095716362070104557904462113742228226597897786218407087078460843644189090157589148134824310236410982455166388644623819630101401581287584894572467106615045282988359921124282782735093271727110941200578462970610790135535183276264843101338868517939721739286932615379447071203544235735990254174160987234174674427031176836262415412876752497859049529109825529090519093157301935390517938897379729337276703950111407856421253826727897127539290262930781253597190462874706216741064122530431197255131982957544010930659750085445057027818770036487816885692034553484576349671385842539848277817376951327934798790219016249854545266356618871066246384952769411028804362937757041488289382695455645264054380572036789009403521041568519406428119918797876668078792922209159864871383459522081677963409003900249124942465566759162050483258038405682623521401802519994069342571461952779049116793907996603394685072421302504658900047282372419088981096533710534021973184578336722241719274419738230549313805000324572619453766606588436269521813430023599407591234367660122352221475333157208057057444430572337808154508134459489821346136504997720345724496443452181757370944029103139312503208689125334302771190429238815211805356295343300217798486756455947718347823392983074934709592380224677473471455593422736562180928966624436346954838971698421803756506363317873998699667109432897031241849370887439136544518681869066384511659592085347859776123373505559975578410243129420366229467733102862901830312701371892104875272837419232413813393746253577578871758036068530347637905313507549353928568493454333749752948228218312521295616833003167874658096770881235741427708048064362229203562158122817746935024732131143849062022186124780226044154796477990598039416889718762396376614717997507837367557328077562328519716655822703102077926525072833937267024961295818337353583693573804064064855510621917098990087044463361749482058368395608058212028145278464137807114647267247855204064813017250923323251981820861448938172604943211830767530032226781978263081442636716869788006671664397481669577057525910985009690659027971360822345324075958411115302536896208499712627573554466952613236777705971932665293275609455759595079551916000621584283550555657913505977026867096194140823799888936373246487927321302022584678291236070382259911037381428151091180414015871034063613289973468130526145925509850948546964455263177368261681268437134301516228545490358305791173526338154275789010051893577456513038115174771882802456778134700037420715967041441977711417286308677662035097423921049998144013824740574163582749734726515870126877864905562589734231683791243861431192676359739219164906322032022376954154841050149174511334387413102349732229678360662037275226944815270804499680942044157338185988422867683631207112939498532407310473127476339699336275236650532143868211168921318987599140795159116788416990961034272198310623415184959236474607840470645793874262766738055238979993545811705090794382763158151482774464784775550267542152865908806850301349916728637568088211394039064806961435625381833415418145205328016933073529906416965638307392532429170292942967718904577336030641910386633952682011605423729783409496597834188338359124084354822891659906932280943655253311925573523105601616753286291644452838288046599121585280781445035930893153971222389829219804152557429903071141586919162846169682475554851048946372303354828786121690726522589869000876995159507622377182461918150740780439925193641963597509540660434965197255444459063332761565232017298701892841820157122983584007669155243970735779408809193146659466699156576221011605945563033877183490956124436093504401256969825516811218239719756420086026319022629889110753103469880694052287439458456960787884339379750447784356310242048615740461170199614232514718157600648977369765757342218995768446375831943328931731208059382353748573227279107725458417284952086679946014636463036489912611023271672412003884758557836630249830233413104747161277356678633019892001228007597418266749163384282199519943255550642463415651174615071998714398952658657504420234951641939374468798413806436968912967138658905640761513386937604864650508347049069974176075050404646792707778500937794873599881078061545162065172962190725741625241533457217748461762575636464691793618430243114219859636460181075347870448747236013343823126262995668219832846923503108973615062614808206326381986004750820770200630628364795469116199432151723890444982699678189236920476591719299474369629690404799504828011549200667655500235197751764779633842898738120282464876999112167725034538241114304582434093556828215703817247725798538034482336209290519132079071811414792895598774923918212149275554598737775625350067917587080624747730499362152172556756591351335843054507260047321586478100399740455528538094390459682098183243909352846686380835158951690139415280665535350549159831370491002075329623569666003430089532374519204826870318858310727395078486046231531858872016755942769892090340643243138484629479918670527580768596199328217273068841105311419717895950758167084006288974583238578118154160052622935681863507855427731005286251531995855986278863223107728158070447383899616271691029657490129186911940529382884999232598449464190695366611346182563837696336443342918442865074406606890135067202913607305205370644052683001333439305873431600479313543958043778842151474599559941504377021829004237211367149931912305703199742667930130924119809437090840477861608575509733168917889926390462113109172047530369529143342944281285637609431577879572034525284717802790507757011561976758432465882387093382139297815087212897251695120235187956942947179343863426130602292014858849128549929398498127866928121139704065981451801854013017370540567857514461941922915206261164764987530643464036340405158293983823501733849821964859138150218456986022625919123497587257133663015416043032814893147193674322295515969457050428673864504744611850167615824939677771140266795980519451643440589189630642262123945932791919488658870205908853824424006686577517059356335848999060032731151601454560815689839925864467639033665110568393998176240240994018576602657976699401923849257877863403013727655702687362548152641799599443218103845231334025554742526790241518332161909209737598642577995757871992433238214513098825560712426432629790680458023132206717731188202128599057576499817636360797102661173516348750964799267706048864382830727043743002876316825317993506696888684023018288017512951297938785243683573874205284968529806064652522631663948359668193094416948564266722860174691220324855900227479403047771906559465658957293502798490093042330317420333748787765939187346178082273029719597411806113193983041332099519874394729875788918579508916207727811260952866475964804248592381596963731232591019591374739226066958985468469700152548836943869256916991997323747964331691500734800225769195463042619369210119325526542479521512175110585178422639223694114197057407979397472839811743912082231953405844584270028805058340120087384413927057959361920735268463854839371337525360633151282777569772187342683942720711209600434331209614732826811723823013484611360094504288574368806927586645726832669731998823114774246720488359731358303327104721547671181360243089467572048212707154113190986456012165691582359126025565190545858397251841628570610841124236932745475271663857085894397845254514036607410067265886223449089822444185877638438604057635202464729978712472833115735518947871227421305237215609234005193007551291713157948925446982113967828625484796416781003980577113516297604745627902183464011944713799332868801339068738904009184235217817645720322516832782636855657928818183302339763767660480099947102882654595219679475792413294056099092107345975785352476433663617129544789451303980874583911422927000585037011126167157969713066237357651183052682643928314122313262224556813763513773637737216517192239619597295148340992307848714663100273660518018182951810466144912951978139299902772060796551841166865764371963958746452007192992639200833282939224804759458090873494709981986213745454283433957791684814665997627522980480553348244276677653263605701256468837137446247050541158094081871410887349090217190233096108509695250589047740967504858932359744375852841592818061720516776782359216628913164619151210330537582612753975706956299597583228075067643495652691040421019608806886438568984561862197328115349002028558206966158093833947683751909421252768710977717824650060094924097042998583413567040205894462944021922993648836275506563812105067277049791190874854299509442862735550954668721720162612028638906167145319940937431248834944886382203206930877811940520606505254004867835031350649956896713636708558644614432845183663677143391193973244107754806791142562489728874766861055636348167324951923537888267592004365217406506156396387575646079326342000342295525106055031958366781767518010024802346715970954604522129176002123069742217327448687803320745627999982156292167751283228281027801780187022154758614894393467284557065020532836258613894370111885775740245061448187721439209107590184962775711064808834254210058990582676915525874636784390804520012456931698262303888254327474051207569315090470791585072214106055787910384466329413735612726827014649796441007340274411781206289232270988962083122680821636898454970455126036245463780188590581139586368203861475200094766777578814660842765841959819308736650997384015388616595707766640382582291825761030309104916185613948620151865281819497928629719706121692131280124222536997696687796230126519296661930968708539600700103731743203419194270044827455819739080449593350582763121488037656911376269550740773516721782972849004836190872764971086827989124539906909726692398271620043126079074576991383654215998146476707293517817824663326828156984552962840692079992086422343866780744300279991418466459135913447428429484749036596944430751090790421596254950617977242030610237815393936183384732921787787982611593404750524546416765438243659960506241217880215648901706820434292699872017631345366131550612668993579207971591013858079648212364742019785670786886167859113190894663634180299149394193267541515730284535147927006563954820874779307700929293164878027447498394456159702687807716978793846143217838986002279588050429430237349654849456442103118358420622504209097710202787716292724005141673264673539381184838412672682482006278295972521437302721700978265953413461278776776408532527258675982256117346823686631839176085195869163351448950713198795566972793033750275405385967785979091621172491638238128535991746259998207323165514246669157170226731419697402627643103020921271823528214334832915702742020616675483743805691518122629128642277352599504829932416495999136160578453598897313946581784709989537177485704949897505670236930687754821674009782163597188626160838662773920574448465622503306435574605511342492711429412287335079807358940491149789901371947192389884276954239072357597297869176155008365407142590037852842975109318404963673606974659008785336790088779028288306707591860250201575294834389219180233687836875427894521569214786703797732068596156136868454854540578154673971086426897850867501022477391858812527305890909762842078123122456228730879277806062337894954270710639293631814544954101644036101878998645052051237504705215262659772343529121260284483035562584231809291396213970633764349319414266126008537512515357336502010017352670557802352988647736386902695908009751540910687123826759608146846186182494805852164701841426097190200361548164613541755254540625299666304024303240136252870851551974032674244343490431944123513532047097680821785714859966657171217404132568324519599294032295907092943624622358031058389575117625232626368798690140033116992050349629817540915991507294619042581762732748997157633813618203229832550112086525148512899705811539138537974808145095553555193680493608276800991035000926011356061188836307791879523205535085116745543350199892166841237851470037109917628493923256245711185950182220548220810026393739178454813968413980635575291064392712329250381783172477385055440419792595151345531879084214681423095712332814486614966427298480889037903628060764618391734197892860145968451941421538670475975476395061479980948370398313028269956928782091767914020341613765608064049303772367060461370986301004059682787147722755042396751375076722271860578084599767967141189376929592793618956449291174155692911257840373150567736435679966947114122319174877598403109331011498711971012568847122138163939944456739970452163860706751022516022953594563920070136572936989229338442137804102620650874540180319900008376591174302708939300415450094095400214746891104222057866069615529548418040475423522286231808713710793342870490579845605456103327810136520033787683961307835577518400688774405803094508134635011084379547437234943659645254622479268282594106978743940551845315986152046158113006450568971432501930519109850834855269740376709763989317061697518491780248172776429981821133265534014655251248572559334415504170127888573043307792658301710712722922891359449063426359282473823234722493601935955775322196199458168697616940405978077709122994343133659114509753154251023155539765349984938601606889505388174840511603950938731107601214184277601229247523096072524649206177309207389318431141515971889434852185820453646867155427367228061085287072153596108462464363730718793202513588616934460808046722103686569944150614566691607067299430479609748202911643400634432669833982336684131828323531417447055327080955894998654681408215457031794721870333742653224020392216301828807492305789399448175444573968035782612445038017478721562181071495599081715451943828245238629116955086022908924314273378257088312067087642642924655699502351205800149710518353137572186603678200981251102736139146851302666109862465078567682638717741445015103162274874459937212823624020389393052553294878068954363056412323949996274815664720346536538186617708112348580364766882196383691038099346152282853657296073831009650179312278691940370132838383151358078101512347239963462959154577453436072955967608022895201451131580570607255193194788963302798089444669268486980387534899956099330153690891794685702814141752853646458373424237565489812729635076484146399804740548609887806777269801125205373682876786586714794781837589109524215941107836435101629417588925828203414596998888012765726536898553779003133305790674380713154480241314160700748783648832832630850099343204406263232857799340600381458390754493611316338947105248280349534125910201310598902690318788934376984361438959236382684381189343000694066460382032912832121735919799747999722667516441392782845231461980475183619298483361101863545489281006387649650873478687861257292832075016478104112075723049518532768861076745157585068388001602186435029362762570609210482928647548114866058035839862501923883349405748391991125835486394803371169662307393767891152032553664117146302447463211240782010920310739227584385027762247710534979304340876820184012765827501660071702702198437405129441111851974144939865827211640762836926609602567197759993018660909431197096829036344511371534799269831973612624778681946713659239234621503119254144295789426466587005787821677073717737071128063749391179398224414626266936329889686595124466697916176843778426826128030218746376823809254604711785118789694596099648666067714652449688177375392305612529331531570313241275065039667609935324791357061312855936476690688262711663839348386720969272369849565002473427354388173264525243561346959012790527388210265589969975136390800735678330072579503601189948384515693270900624812088516701846666228849086604056823849279309970063457983047134507656534738092073033159011164295770560843306719816588685058193479332802915923311626623631395678646311232578667734054123151931424455796840336572221033855762375821927664975550074219506302673106612476283607198824892949617806021202652261715900977346847157688320264889790916326357473688831254347338389231347967605176916658997222040879209965755825531229558351297855743703986217638146538703963378015989383339868617635942155389768698580037580812419518793410761251230595080245928353814975332792806061043828301874720381687174151031299256579050546132080390611862742224820945926465096652624362268642319977107292089628858887312685897983098071405160213613875544323504374724596401322271573341248151654314041875305910035425249863004266691901683710221709342068006262085432669507323322184465612808670803527412296606141392766647073111957837913243297137591279818855830087277258789841691759242389962163213617436491985299002954836502819692134659365126269944830427005099507180926268821608457863333283491046515751035473222201063931584765817475395512383330375264122230141032787700257593598615154709408179506396726058261218235029237380796936662238331561027521264248894611819443701556330199013210219645615762516719175387574243553385339928707926500231433276052759701930516232500477358085881815800321174548787268959821655285229467957512927116906678379977269125006132964465112559829777408790865790405111862513306660676372953631062753726758754372261040102684496936759416291588965759298381499894941408004217262373906912833880998114423725509045781760587515287517183598340361872927589939382736917784337712879036345921098533817451679016601580251164998129547483436085953554209005929436033473320913066261778829610298665316342291459432016760676515321949387991498357798132310464149563741416837310966275621585924108547691343210856357229142271433921412576641083114762610825105575495650287132879203282348456518641985012325291081102133781169564013927962084293017500280417082178954453307957338018606718543220973219675186184376912006296153416303530284366589902923424092627533734813491248714787928970576445538122927123014019638000754333623789846232247927699667880291887021482351985767960751833048925152066536921878550392728162343976865112937000448831816544188602514939312712808010796245127559612199899516121142841030487867491525561863142717874976227445138846716385659791211981122444880192964163552809058878662694235547903260856043714735118384781454167610974464142025529436487924681441050455025049203012800984365558487346534754013760241585026296434707434427885040694660068902500294431008713143222612349200386638021179097805488395462531843522784844243710116733436854698024175650579011382764406591696266816999804364133314075843244383130702751305443132035968390567910885458653019182338957659546030368848008753055113494103034555361070999990659798043512365657379320429350554926043228347257405927819842806827696404570975502199801872077408792632092592527350063603511359586790069552686950336774566999433021144699869797920598455748899982993915707787219665206682702578666697787342957224754223999831716876723957834811590605916715844168320097926936232296297976602553552456508363572513622027262676213503717266107615952204191210219001463996499703539211922710792307759304047331845135399527308289648800072237059067966841794925000368964086196912895075462933606133776016071951017606002420488513473234585319926745643952344137328432982170090191302524792753232791717227292284135954266054808965677112593445877511654604124334723030017401934251612357254377005593505908763207696262145855926832214046507631824981526316497258124667313942399698896634697834765177233884400263354359975865741999207655900257211824141935052694678406455473984548938531392212011875700846733818633095110734400041417074686067361728601943181311458006026168420942357297614884596701369482747735629001097707793700517417852452928819964652835410702892572639553603198614666248660609295059184077076261463990608515028308769732172949936632567877675625498489807370742289221246714213205659168066538112942921064262392356533666156293873048447292944949952867033890279062944489867886706156245513539294940623712686031067476934405249240375819612169640664058794713080407143356406034452949184934816324696567883687775070428442626862754617755046801823101266149284556391525168997465246088212377457170586639635705811401314449261694310284544763857603049701521314533330152124170180822187936803038693140015563898972386768737395165016024122140164696153199512159876186025807686463408197653736844291802971562803179505176679699436954829042666388961053270928435424315377603998626266126997272874632326826658505203654840104337635984814015813218597055514486524361719003361640981569180853852157652863346001965955158208809197267536968015373338822461159378261929893781959421404676371446246560719154655231927014764423973351039875994943486950752382328676459793831768930987449071524099613741467389018605859369680087745659086645945985426412698057786611869739829690709009270265857001704220886816591838704960337186818923854698972124579090008367009329938219803860994666469542167328322577177722607790901223579396024552260217178628888612845604610702163065207617838178829729071391513510198702019954980602464973271268747168527229047661073975749276673032720574690562967514797093416509478258633763932614317667385082402455566998368011814444566665303291960251741090584116811518686613926690893364715874975809574659506941318140752225188891411162642608838493632494232740810621450337230332711332573607780308816116602428326578517773813688124480598429019149927947516907913528483335722330532720157058060347877484672587611129603659987162351340488551703106719449444563896684808082381169837806262686673275487645807247007849877515393681834768274747432113006796554124761116978719778330887001576757507856489367098360622822267581138604745623115710224336140351144850050726516968792298758246877433901948515878517404221140335634190584041258997765983933530239703101159475528454691832364344466213155996038117980275881626792605078400244811636892022509653421763418544880745787471416988166809911076361607734514430518810977284883027733889873292163515730545734112189837676260630966275487768146105451376192811272200582286763983009972019293263939602637933981482303717181753293337049752533308570299417173643070423771358982776305327691840795609255098041057115018848918254109220191090160502964264887359672875408439689848264675289822865569680039560679288834612413651035607098301566529888426927949949446510876903461247662471719588323504057423048191681267636816269306093275988107312905364402009595628740564327491161030077388155995442960099433502954577315637266820514918958738142949739662975628105806161760030633604685891613456881872741494083378587357182184281625268461124042231953587041175456667688511828621478076080643779975975742109198813664049093584888196224280626328201898129263967656015199544830527075685140729042994516191457095036822120248193924392088973794097914789421900662903081921828493135338389114087359514974806385612373295861608507088608463802623773253568960722945719653346447057780012335854069016231650474175900088658215966684347788313474627053022473613146521443586573928397164934280755450378402379813850537060298305150747060361312405478289779982365603705876806804330861236767372783117125919249031207895059496346690920358213048164863542087614134262441680152044021277636421096799784396400493353618872614723101152624353165854882983319353897491473593914538606946681478389231643607635898443478577227800435359390861098900367600633415732925368029547673175450754710371802386529367626406450745676647288404251210706847224744227487689122881613204246493365933670367392723009220235928119320846782655701927361683814407664381533688961428743181503191295034170437945362905001644417615918165033068807833109700594131547577270139049101931859961476397162369903775466348611394138107354505640254524865282783177455591207650057290199666245796667932920316116869120798142232069410222559563471826277459736454073597910454765010123659673249735337586617410950708297286734941058357821294092828140037340946195124857292084898397932287374843424578781082684079362725046226718329895504334542510435846666106847224465258146793110179331863014455281515851286471541740297824800168045126953065083656952685332932037660153610711642214794435004098895361004323584024312654926233201095478891573060953560860575431630927144393401479425949725957712579260687040382700659350216019632946871907477148081241965825761919975414843694496489266620403098575375021448812805258645260324719361344438401582089523010704379376084679248314670277595354794696663558989009771600763088481813689952474405487337138004122006308871197172373509335448772032485945215541225164395124112856000884930422928520709450926187949372939125099438979208661821387546506062531842242123099174638453667428609867123929534783198143152961348676497962651058390625190448585315182158939284266966591470194385119557540787914262899942839068572881723209783488196119874864230991559426837183143808836600191534856532465189200647844104053713564492652359210088380348753435502119201908831430968887093843991575587527561162253435559541232086871631110848832959849494230092683527962412659957510833602361464914992092606151543667010943112627503736724975873775075151485413108127656375450469987991659259049431050338929675859294676147313678187471110217761644294391406185586362772612173528345765562875525040532002553322191026481272575470917578256157498530271919532248703416728099220381342588111599039217119154353209527981805484589631577536495117266488189966089647975805316057825885015075331285800916145256919443359230422145279688179272609255782091881192066140353078956646085937417322600494678227726062044203176384410042932603087076448120598768076788385545358008276443467717570443809335204330834918413956351739851303193251633829289140731563119998427730316736088789031236978415573248353823756488985340402081807902070159603594582268038694384604088004605817561164746599790470089456157591409442766318722305036494434804619509221009994814929921990702077904458744216159563736700003871026987561266486239893138825539048263202360095533066735515328629299825278017450961709579096539139594611490423816597155587787225302208601592301061193946321535614891002385554331350093018644850670682865639666251671570600862385055405951656560097452906186866612393076120376816217190335152459675855189602388109282202596583085631945422468371837593784573548481923475283020815049133919549363947124112528329189373892623241206575924642048871494468528814236104920996123041605507752288095392577645962412838530729078765188063254882056926819820988600539411266883388674084604247148722406807909881386843394529635682571751554833058214891457714911117722656204263210799644046400871438543984460899676762318988070466684817650976393134826009470694067881015309200930389739908835713261815621889363005630634198569732532904636803023292231063152901419703767757082801471645895836738857185017732111121586287442617240081946196142140355635218863876427314948343455469986519833413518775348639494125003376707693732410901703608825626529642427758014195794562578988303051147637061638409078195947299584301753711053474397665111350830240944881349067945875511670103770360429120111519583195485599856912182622138394682853776033700673751609633649549272720374006411465179429635488088447565507631695763374754832325349367368559222408731217161409609862583883145047571602424618106079033250035410952185908990674483566050804673315039400762605127868285364203160194016299703256474803645123151010260156436504272540669810140790459684410894802094488329386128398010477459740555952737118145189097165495639504253496033522484290273946991721834782371889707206138540545270827318444720209650524501149334977528935435242149398846270443852709444653790645104245003052236476638482971681846945983172562257642539150616370441667526202654995666271265901721497742195969319840348318352580459787109004264562928867450569921402612546875445917377732930876558606253165747838224407198165899542005425490138621536605968500580371047244746482030683012435158233718163297421289783307204695194354732730362762781502218669878129815546238730493653735483168747466090185070610321450150194056429367317229906262382324059642532795697391392487084632237505307163537176674705928159222588194820850903154897032187374832319239643574148441404017170254468539272118847156956291087029274314806459028523187659818918057616922540238905338211106047517564528360640687454305622798195721543124737557134868795430216197442907230341663232770926578443015560360877833831540663306759505124160566013982850818270488883989118394178601828170767223454315300870015679145205451180273950586774967311664563401998750540750773534899602933171741172126825900359361244677342646652525570814288532347542492266777123462079596407041071711332242701864240154919399991389733637736702401374320779757114411236556186829613719457610634002702796232094282925475824937800874955700509633826583394110621367427020753534122560935586575534278529054694872984013484673118671120328300144803551511635395102189561308173747261394827237255133297631993226285587006920736613344260711765905505588536974413529834208699727867080936069760010470847100262948167559711203625439549375189898663371352747591143267238963044066423583619827856148048909889958409579534434823905516959058612291913221949770859221655913234749240604666349535366857543711488320696805736428779337247574460896924385491942598788299524511938542732555029650538320869921415701223715468885506822128070432502624619137279186484995660599482839459960436899930888902753100438914349848260027841478125913814447768380082576612145707093145286266407705515938945114026722179250906941758204805233461051540902018428438335019743972889738119170917244337961469851448622015250854955517596375620347332967917786197079059493787279734521534892059324343729656303453935432169418734647763689991080271922918841118434234509762296124257562000870369480702518572472705434888439713655231347417070486417537133325817043948875876988881459731543326611839730324561970752484256890684463188209163883471717241112273407022956931609093424274070920632320834775743921554033526623520258011393177239738854429563477118865775480323659670370655330525335031844027134323934547295486809140427342917851252411724723096085412661140612190958857641323557926435950057375870562604918007036617543478010304077676198523743955486522930533135492502076379751942125448160033109308113668408621344219733967031677840980976159341356700081697127052219382363679665409005503240198259377854394498990112687760485054965652447113146389337951629392694806962088489036252788353151262909436098898317194252794945105803220528668522729182019446222885962685155553422338931770017016196948500206276708062204015440366438330828045190598088700944190806113205093050281263310717607857768172295808488341628136411234942983106990994019926390783755507044388285500294115466749100840756098496435635090317517834506962057648102739025746621640066885405115060520802101209019273635371432276996505682722563399770359883974397564428324875361715022292179390529686377471369508398744755371142907900731933557139303612859207305018488036099836695989902189339136269807034933177280848641728095427021756816342929553076884517334561252126601603545760322010389990178646357105953121146724271699011585874975853835911269873459421418155007516465731674633417530345828441781255330555866151272480146080872457681211856201560065585757785324556496773839495962976992911774246237044360146419375820126451150323615839036592342946094161511577890454523061248350332979777988936739426437160921141256729815260967992391750463152868599220530571742686964540638400873995224963311707295896483169165397316045346529168149129114627907505901645876703830770137244839023050221453628870156977127280780173734601509438495472438112472937628284862166812728477615095726471526352155878933531362097408398165333259537384467956107741999552698498230357862949433353435376477198202905794048121993679617085940572668689769916768600767662577801995992725404082605815459024646835494000133666378362480762768565920991603608855264504943101305726887056551871801451772724637391317462244373963901001634209614483927493210112121455671845444508400732312530350531567848234808392580559644386004398363736654003055732024863434499308799442751242603838488347031910133952338632740146597201482561132399412007599282679408359757728117020909936439684252383095004437766227593740964276260273768845191359809117764605408897627871288673156213064451431109531307170711806215250252533369675328181109184639860442942729478769346338939732374215800305823262788744225814284470434724545430208714477629247038184589885158253857105527153875445613925079464789201833436003130412340234337744269090344035804609826417250161520297565466820806288012002550142288565114448471939505762868369045979517565277721755367136403585410644566544988819932938932666804939097636986405165450127319775657755451556906882133752893480434260956646684083655907405656151486423003258196753685658352425474527038135289374064491413224368467676052192208745360114479605601290667321063216212448233535354687452329660199918279522432099802355853025238943555549360844506433466703584945987099025783979257473515194340682560803672045453500763799898869805608912758526323287244133446383050361548753470390383473762847999706348959609847022308021926919853435633293588176390380302626551879127755075804648959845938110294183718793222094764909780439142485758316017019528121498499965359157529625886124214993997702408516759258823876249969909054485447964954501795354229333694248132808107275655412025953554364624544834900138598837992925237240109368381567230365167874782542715491487423226655121322469277181391139798721057383535012486117079617082880975629274482177037622263306390168666945303784281834690799000453496409747697509380941464769842519928167800299338537826151453477171088193220069295662073925720416839985055247894493704240118288601076230977073199564973584121766795472855871120071048931711829923205232577120284069856241349583100521051631856967658327084875502929724442497379278652541589063211771481920969085161655645750836463175301117620952561742964525015966432392461566646579419325005260828865899619397543477896277252767386938418395872167965103166314924000880981229483193560607711884014333072902595352960173169073516411717356322807843906208634091091284756756430527634928596428704991684114265243437832049054780787688204824796964085960665990733005714678279825917686320531320115964196385522116341479056934007231803596690735737519069864242620583000282179698640276332111993799720721151369660167318925250625356176059139311354937672959149624070182707117608190274765442793476080533558448624764303805743885191490556440115876151596602462413380489406544592194659188915442840902659570088541993707484350604083599005221584709510443038434472054752962555142315389407912479917691375333158273189814417659222190864963084437649462670272955338873862463879117083578404302872278418765967377749304566225538559805921461035984835537192678092605376092054796383182904893057973454005974950336491237892811769295025794639658055230436187103153582300196431137746164905745195310735323160738805013093441188960022149906885903253262779105583710286056367613263255579098710853571245774572820794874858515092109720281409717357814502245763721290666497906618983505163494053042637925866633876167941135974275081676924779425930292103675497858593905505613542489548759032247989067615453373480092642559331390039388897882353812095378028082082975797986971559788061865300521325160508660448952245689012343452394809631134489985195684823065236559651007381148982782989905940816304856337083293395292551006655863792352407034444231019350839307241050263581576272896281625761995012328561350920994860437197678756707062671593464112775543240670075463581697115689165456602423064256427075617804591833559722384704009985574756652455093004015969358762704416601691250532494636410917639112583910945535362735284463521460932029913647269363736216795812103429805023768883022947728195132452270571568644633725739442354992182795868883079157489308561713934942150144516275796363220818946987924664151117679590493937072912292029140730117792269593459264276473656258052197273404657622676353061357011925586416574637030022956696929187571780779538496319124430933845110800850288537620201459331649660754282652757723570383423668169318060955939651545374281251592768923261411316710184460582675527270722174962342078750356552154094278568082419655158143709069220808010675941900356098260315683339271383025373066691080202536089775621764907633766636979366064166145229953364381217969293948088275142188892110682655310724364113716949048200858529307359599551480066060722110919927740381934968879567479394243483974413627438950143050419752998396869646395418628342588200759883620335170941092347548172161584331997437336806118179608590841082450654340939330174838018209325195288078432037234800353522929903370242734555941316992375372313163400627625458557436949456695556658809399611848932379076358993094560398140766468333335568281622444455238547668423633023041322307256614698245213685649651224240229835151206400205384656833216964540316708495224255489449218914148497895853316788456371589098279676937229173614359031175881274367677810528789738683083802290771506137556074938388490805082039208651040607497364440872237153558131242227038318925895658296819348996829217145485942881810371793416883222205758060975367997099076998234606623143760350567004261775255352660566403610692910588893779443731170870148442871955460020077803910643950892894952237022067210496392320291251237546994064227507807346649078454106722475583932741771998383550156452500083111937706271025990268961221560172680361710713331813981430804081286662979412651766844537481147191526129004973681794713278437571234140258311510724689363416860821405278122457378396388701279635344384124984288149548067045415359993222213667539619939783653383831069635983997588346385477552156700767114840743083377276693815955137929531100702935018205970252241361169759213154753265198733484007803357562833690596063705199711182249136995698251231589514487025929903068282485603558061895895474206973556444772367273266455509022631449322143347040567872918084487743416759642882874919944526962926410852863066578771524838747251731869264416895103444790014338017271158532806762380086011332560402156368569680628716466193262638791411142408233062044453407785098608429551176601279054288124578408619479500737704692687615036618963619987023236933496033289502077476994957642969899953235009465365830269756307652464221297784724315866518827073236217451923531984565449035662836831741251860046335771656254091315584042371294955624288346080744943740417689980344007735202935744397063249556468843016348641655597012336145772073119526831497070631030908843639760921084079844677291280287433012887079888331846949746466932225827905186876898183448326494033933968768225789634942408582121422616040763409764044128074577958533019803253759021335792298423642913826752345421362327714186533995591893951682909967064903228996364798415085537762741073306987719813720624250271748080822765447308943570330141583952310528032286913237182249083714534906795573271969083103312178247632197912702398974144338206600802922593719627470078593031875052348463368638287448703787400667726559529178605366694638035567323420318083600085163495335650868989607561407650854711703310986041257858301127888542479848300925723951511728344002846109991950500507818162323939412682476512294121749736015717757142554967586958977193916643866556698355123634060177639819562786515108313921288208478930168001541835225614171674311208062680020066646635628915015168108428104307676768121452310093875181301740263760992559575396608608644825929070170012884230288387952834284597021108411898408062468979883178611552748828670657732882485332161375701839091766229487046477978560150693584522473682336978864358776410110271533642970579334143850443165739081131151776926463291851713265640398559375168957986093827923560372605720342252823453960556572841872353920633238010216612588067763319607173945927945949139402399315235045310216428639325288628886586601695985309790389369040192560582537689462290901790826443117720564932947550302411985750622175680355266770497030311245040594202291677641312201293195687542434720452287681847716922811648582654167842251122739442245073671755856511688951109478656219893198718667841141019444473812614099192847737248542765115588573175219498247739282260192359551164717065365593784215770089594446907098571584455757830611487818898155423317229170292998484503487567004118086352424469722478610407700032713787700872142856888884892430550637764158878197851789443027058871341380514131273477993223828265785344926181198665772743243046488988804619786466052574112395549827709684462335167347811978504661143731040848095295928880720099894624337229444076866209943819510023136801812304467212274308953144142236141516267497258579872024771286716409154672680763202291339255844662978107290680085595482771013797181555722541725306813000211169908207287436223602103922088430475467529018715997016407385553207331706454409292187964570887746094953857526004556881124239867788149673188913995225209545163889805846026665801210067115127711121170432428051680608836566481634183153253259999058758648656385184020524675711214376333355367613849827791243515406676616127800937060262504905449690957019828232957655437515811858751519736156968055961935703461761514805796376987527356328759783910379685095021613470169571354588592664380846088849097638476361728350605655953629350053488209645771978329263655525965025209260251765628012065030029957599179556792847406424997333531732773409219746420002476520721265462278815352077997936462744906587443632186666426089920817802625683646310657976332120673149912201365953605538045687056993653098055168770858949502157941107370137139340527244099156472544803068909087831676597782584811186336738587436223246684669677780642875666252908596100327791579739687324799909097746222043813389666782532274203890566489367677782166426200499470816055164544351490223374063690029122865070379037193338159567513684066367930852789576602392497086971071466751238036168427470921829282006524291406437184030655300109502541939088184521171029827918296310594359038627041792654573548397117678421500780531230802111217977654850938759238260479662176283907812822855513168546042396923784059587007149681567473812180281044393217065428497781607094033069365376416919969150177420354642375043947032111625599703087666909859236948221189089244199875176254550127301863152711556741655934589323635624061643776690405997615486707009610559790856372404999164662269068185004000042952942751875501571749948314695454240133026131453347933940818248852996564688739278563048769000481423721307600945860206172672337103905002362492158205241528473780855884100619685687719485220780229018750927911692774391421522432897102930192119170079817813347890035881842124940780444759281668273974918918771380759244892006109155406069596220276033188451307868106764438897338887881370250840616940720335403771223381805015107500564766550835994124224327791563684862411825306469598529254789049610193295377195684749688046982513505572233017595786418393445761496972613919965353613128040089064646918877219686850616775658463247620287229990890487588605474135304559837402295586832372429074858218089346582079179055704733275224027692737950007513600117405841945866562984942956180988216770162379999700032312030701283076397131809740905744320216959211702995822153214357896216417283439387384558778045675332680319640415759235522703906662509687164608362096994985197702239754008373999916679228010532006680705219132939211975926856301287205507901092099152721337396361110565511910392236914615353282484845385753549787046250181858438257881899734880846958985708089256496113539017188973821606823128872603960385506652921366575212027338139675640357078988232334896555658769414366483054222953196770335300044324488502211069103274178731378814138428167596416163361913562598596153996775266920491774207396196031636360454972930895026765488062843644650152985262684573306914478525219809052073335825656578598880583097538717618991303943821956092459756323333879533572821467900420088404031705925911642672033489401692098214217953434390538922556094850322101590479710708369815898597719826094615430073144107944062750703801164538647183990344403010565298097984786199474696575921504533667231795728831729561676537380235894227094468715789726344705041541378732619108553974437632462439778616402636548966624766226034708652565899569796858167108873565502002799461451300759574838606917235377413879986832947065941075155136870399632546330290623845561595966335436827102157918085713031634961048789302002047179890028927872174794350093335267844049561055798160569543138433093409469266708879214447772953021914306140252805606536673860746047006627027758131501442863180467401498965906611839322908538506070383288594899104584647951384749396571195638318583742073168055324164478640819813867423598378180727303932030224275607027168927847248639915775856286868726862800902184963897144380802912419852943432368069367871452789173019979731162488883992208885304695024663858349929677207226276739253499200077055998160648627989503450536735247852407629073188566520673041273097059928160698721075710515825319258258910211196685813146398663036522900449638720423196985144846759103920276715514411276960928145074869659373745035952965724256258642052959738742276874406909635337206972606642603411989928133028838466190001206861908265914647991868947084318662022339745237551827796287948540767273098036363141161496814302155577669361478401868771374559064313169173361309403846969586425546106912447445900795118737778426575369547695507712304191852175367999696165015874617828222999056390951290717822251779394351808466662895154729246410810385482447395809094724035385770551760438590642368952263345991048314454315526023542855449256236630194333596176297075315395529178661685116433856017904572326208990411372850701424191488335540094523169627468078299036474620638614924347280326465113367751766511100994098772903603726529526952788136125838150094716042210644770084121899827666936402144987207944212942926731454080585269129048213174079637985994976790094213949320730262358557116625061712814826205941690434626649457304486914867837939013789549758605200665839248826543298391416423983201106340299295690045059718477546822222884597667081504587828823790843227246098727053043048909675041642368306042063754598712824726791845792539929250424788478765622827696824392195888391858199265745590944165829836184539913461503509334211138738923006671942263299579361815091576930268522956036609824446546875829473029706794170563640447133826458121957711339659145594083591457319751892052162294653054560565819723943178860403586056809419532777193887483010405943456461804945285255702120132527474681145482787414006022119536921817144228822516349864390918188948682711369283271503033002587591983509454207298832458918740563569262132769883013631793972816781367718266586685384917299859321079692309012730686278631566577295726654321338837866520032364875448309943105354129443482114514145722732441555737069866853203270001402216064060882358386513264373333784789948354124927454255462237067928719777911063903726174774918746460449778350706611116323202685384950899881573767326290765765185437363146897981362617422273603992891562253502383430609295199070962009501550288066316048619428778089572325552303949714214371151353453205257994496726646758247090234721792588043952443136023825065067566171161827283035761209769891318749834659983411849015607157799043911051483019212695672763402050856989285464474472172526840063979194832611115510516603436693640905493000959512944836899696492571760641782994118429369643801757023480196762828012252692803630788862236720570240031153956089634606280369042763801000247458583816694562098377688599799457519492664360386277779760917657947820465269200499875668089905664934976498716070691932354807227276453066641124538103584697738875452140320882839846652558896024264636465035697886404111885138616929003367365787752710145062911888691509324438966011815664283616986127502079033535389634932772001608003247969273253919168882124146768944901381314837823488304986181274170489989494216460949855937321071046518410290625236822572501787002967426741245020248277165418696182360453685614919459950338707115189577722283686241355453706579747909709683249696503999589911575843014896416457647532178273315488617179350960622275742533866974483150802294215141595854978978276059341325366431250728882803525052881771178226198614209820997528025193741774115127313612680118627012335423117424741578561647354938036253008261233871700568754680383917098640373140296635424620742205136403066518412259975380559265661278146462057079544529341164565975699048810509203496095154801011579052581560481214373412385398567831530725143885025037078692716024258641223869019643500403048694705556767326071291535863334306817900603136861858775765638845845726469971897865164430775464590179914507540860556404466408604789874995210425150717311008287231882067340421635168574846557889783558939657978798839334983323145011769225920921349940581013442709457442085251309367666413407202969193391843374543060320835457857888715860308130389064506569005359543036247001159541082271752647850989497287337198157931927028723637534466875456040206496952822295107023452796331240966641986894217806757511662919228181348644427859444741580244592140498900124483292499295890730939182511782922228460111667074330953662983547065864282867247460570349207293417427812412572130077307826941694171082277166246131767757076186256473619950556163448924173357604926044617586386703602803409341308615975910865844600374664651980652180772109950840596227648062825023345733677847214478844194040620775123167587300651433875601551231110873490749547859887218527457401434249966590349437638677259932466117135636747264227067239425991262787588581221970739567616010797306519264288304683537190676219020149356742699092347020638356452348388278013226370915408166779151116248688295333766995835565760130361333599239491153977979055472795193289188922640982803335177830107886633154941693862881150003717485785390674551526180796017920282058272166419594927830276659783278287683783240284038286199220218359812684241270405792250269754642226568065608485158229875986710054407709682329126502531122931084680066833417351535482326616096439515348277179487726351535196512998106173337493999412126136833581536504501607221569597845847717179739560905230969293267961034675886019613905218903512707113655533520406152268813791312284418635648681754933021049326475523807616896483292380472368685128137217070305299610758787559054295071575049777880994177293456640394663425842355133007060584311174806922054499022324114933403594374425070029420619734347673704461356360189680538300589402951674068023710152131766751561139498134191124591437522519854900731532393786078069107592813716662801507928163968718064967410734222826977943526101601028954239195427917328629283686637838562952403010639756902214950229057931569634278371803989904156523635794829046742768777941715156907943948602942825601969644205887578176994079644385796559670669705203592289680562940121951922827314688538300687442179893491848715967762419800197902477716729005180906105205652199033721453713471384891714388275721511679951852344670112663628394694124023380126277685426160673608313888480327336314731469486739986878883691377278276278170463016909647528112848111881798516562473851408573201340053471049066012198590593837918794049271826231622966870893663907542039944606791099241244203923844608386944141727837822586207355175937978430725403486392395669559563244256428975091839946647292382752120736360272603140713894572147397357527233854012562899044557586130085999965872412443625466239861782843917156056571049161250066011570842823385279845414531705224602730090880782575785354947616927108052787607962632075330106042816301553739799216574685941625384319691238352244191143423113742980661624681805459549333176837049769422623846782685192954272099801013586524356535500317223253101540514586977154198746536215674599215992041807193434779558245209744348557852810568163745545489673919553793562636909045965667692133190265689304460567248336843116414089473082125277459504895458010778231335834811221487741048799343501772066214832011696264461716148556541559336390515605156187760187108699068704701394093824253998012896990778771680030840906373468195815354851040347911700026001915514149199720558910698985659414490567203698216172188295009105400190432047805095395676516964951113282068782863928793408453415771690034153308529895027379946948838484918804637579252239357932437881473251693173717707508136025942896857701579689451145760920955921181058412320288142728390718887321367834797374052377202391470482057424192643306973547469137198630266386327090357933741528803454381581510791456712919689288823595205912578191745423130515986745826619616896683885860470955503512580804798311679399815173509481171996018532179106159714892400809078776098402975651700877161984300557549762134935353583977961169236194332706352346797531073556546954266175599025244779084807385657604182318312370342033950705335010862906418176043285930610572164840113521150908605908099328232212180985629468078387782817820707363955288396609480339216471978730774089083455405754798967002329142832315867853120282222416630318400371841423011058922419609748841941854663873742983745472880546574849558678175958527399077236082772705967842963565638267798821731557354217444792695765289597431398355365559956692040114465832834616657069419050732247738424516258818080503168672802351057560006813643506560969935564993317262755711059750503833737877498755277276160043152597349825452829132345468448046768970082107249370712676353048032091601527326955293173917348423657266735200524610164234572116918413391431414214550882936351130608517827852004919951650013015313393448485880981064377943600135440325510625063336766936439452872852476474989599880954704375686578280020668057903328349754260779700145861012056742728844483538239818483971767430302989940206897745099657300153741339966375444534296259274889517921399092505278199223231152214341115709785080895599875192421549951163828383606314634014019768072094273264752844533967831203455455589957170881185854175452650699019197420417009323612644669751275003497934343882967068220262825724519599600222317076244586646916056156950188857322575981343531983657643770491150668068891312914568229425386151303008585936696789039208970959067233267555856662715953762834687454739385223525653570202950308029879923267013875994087046038762359556177749408951420591264875769773478371927413073181898433331080709860460031773776218369970077119285787307984966100923966119319460589672763625044295720251553595503603334740817345350774479255558110307442332473255697041920139834199247695412721175092392213471800871729448375931394665492679415662264871434961043552921102293448334330901091549696377089713536618102236888143663046635496288944000735973532263842690238617022644698248444202011482043462363994260232067643728940310914436461378221250572629092191103024186909837784735201971993956086487291470453756416321507609388591341136668742050493820108914979306683452208974169238342156143963758878616835264528901697589109808513002243531505897800512538323738075724544844282352269312452973833521781842338912750066108125147767741602635665785247889042510880709423599949142803690503475829493888927685128426176010237676335903939669974581566245516940704130620445188433319716603364702645226883023322424882626622204643430290404598364067790291999992866408000489412687817405534860617085004380709333414508538840093679473138665798628042607761026943697078001354188508362549634392739978503076044860266846461860672261386983530292685096332998369476153459555649428056422997385706130542599312976870793190536717251673404184714064054108972152009654966550926554219604881747646415714187070261352172271162047071954343309829707977026883001339563423906296655963737297207638354812868873091251662551662494781234498075312592328559255612373636067524759773065462917605147702145309992045299506223358048801109170488515959717219253601346041383564475694836515174782557746288543582238887071659900386985999040020837437061984526659097854240192962336311148704114663201899016416594161931065258270508125860026237503898157423319062097407660924412703057014185238508824557276056604856139069183995563707840726021865860069080620417919438128185929315934378349330746230808567116198018020957198605608344248813473153383976215754575674130807703230233851668330503075034424141352574117813885787149253644683176922374567375518630776461575047246225133147975497061502544296545830627771712259602026209524145325782312884359863449480500035918723387523800449296142174908093538487274195506535455314207210578700691127245105377486549582760988000099643038409340208740305292025490147221457713660616372880632246507856349649269552237855456651120543213361288465480064715131457097694414290432494023832038167110571894396014675810835335927543877242006399938571973682783273326362475899057213861038175820531669031283321165872210636149027340591515880886170608484993780170038574849700276571995751482823052873013778920309717100690346654574411651892965068899711638965153125305862647884781040120470122782364607731180002039346811085830280453543474966761958192303153705915872559080088834106934857462027535852114236359532028978922112365937881986120999094982856685576577716649512674249363310211239472057910474513441515185200583066879010611925163527183381637084885383651142159489990044599790679505153866413753437728316424793148674380676914170843155867330148742138486265638304532071140358541511208065874132183734861415746102107184142755329332879169192909323752115721887963066995190226311985535831812037417678744648886270189159348333463798654472747756968356211543156562087989799982308177389378202840003491931053415358818693263352531942918682404123172614412501303612334249619142975446757052871824327973736839573581427448269879694901588204973680305376595015950723663079204780065265279489199060510220468833138032394488671339593394443258517821243172805742812745961693088889847874985908764716017296020047571755945840684711749398979503286278833686075430510149017395845999136713657712591416498544911711420383236511986637789530865336404442360291403319640893685399417045347200904760950450343231457540861590698548280164061920419498252187255794635046959411416130518237023345386090642415487025440868695023880372346160099072347833503240385133058183008263423355005384844595908468899965303510804682069392069835738452148279207596681575465087774535629971742070024737517847355779062654793714683254155606560918452074383917252686833505924119596815820959819550536880238714939554722022686674580164505706642722062405944505823250697765890423549256263160779823564730300659266399274407744731665305597660435279879223571813927722870686982555493630255913667702236322240882959705765476302625548390033750345661062966171048126163166854624898328357552169581039537077699788430870999311542958009902888200203468192438965150287383144756804466651499845218076751793327660404475298002197500078345525013366772203385916714491140661597058650719384559046235823616118606792102386592281115813083583589887330613196608384806651457560600320104026678412881766250402530092577707457006547639624026109309035143939586590479924414372302016060075945165512996881401730750046034645561138348388032855722872616601903719839747881284574147486314055308297581606831002288902056732561493474881607862586309430281284911776232535487848394991970227833449441584446779743972448785167764629514576974069048278059114393626617769017363722731847455720907551779941498254832296174948643516259909551702328226938201130747343381226715253766919675925378734111647957608401359621307321615717477610661272749753723550600372389272988385837807587947893792148831504315480905031753112815732151274611622846233940617812134054640983742582752003929372555917650692693438821881100560050999430350099079179663853681474359785110291889022564200029589107472704747464784414647335719341262804552921696475002184273766867131877974973262459265836337145111409088624420576570918173971329513614010581566899905167635346973792431073398336060855719943471671235046126521288031299843852613593027030901056583980101160534705930333183269405504787072563182779998452154256568741569561281397917113165702255971924369128800124915315204253324367040948645862440926016892861376284305573596280832522133536995750349434254296596177055828480031766070075369676077321102241035392867558086749424487749888105603063900884793686711151207329139668915095314126418378448795750566866091316747900568923273621030247919992119105264745663503983417841968872423730559641471759883818911627478096726977028885707674732958771517964907508752736490973878725052522944434763580141983124676254757105129153629366782540263533516675240131367556320755180683496660885411940351882257654288691517875768829739459932454535353727885550534952829448709244488541550498998293173328900425183956618199952015624359262409280806945792195797931729995725111476196045474284094135519917561199938595102714963997683740751032916502992995321061578036117809664807170619325030269989669670805310083015095665636327778326165914198540624978367008374088953223948117476061158098150623642828272406222345349395129740957690792424745316516152812770975402257540569819528535217531594530933557949535003998595754288814990080673519669214047184694915341279436368535561380755828359162408130470583149417799594162176850822747386838707733197141203357131154135839756120094912818367199792503174089860535736228531415065245784008823099110839857552358510025381653436630970045861271262735037839960807974974906918746901578747971972408434391355290013685397976469481331950376305871444677590699981883748268019456906645367045232834399295096733078459191063078586660727370311594730689139598618229708028580811380706911177955612426579656267475288211161226948286663589585458092917927084063882559872743091237977800387840170709573076373468456855759147686200154295995718829768982160589405618518138743059511425752942707537861779750010331024099186557708475345977824285104798727043440050423768711952821440908212571107905411046352135919723964574881838283218928103816456822785878514400840153743357252907347744488482337254934353161874939881800424230010976290417794406279918042156885258691378404118000739986386728999889367146507235375348818680229116499483332411658007117422789000262980424223981375722940778924892449427331133247264047846627545679322274042688424411827001445088300913791733333312581377326926388411612471035873195418133818388200501374504170275602202884484272910876555081303601334706294217661482346873478149592052614722153763771414664657587488327046533436653748058014764923964303521661571675868584825100604152296388611653806580075075349553114233974552253497851896625564087340085481777347434761997662559296730939399978224581874166398882541424713662523972150005670160444376473324398839453611395848346691625860446629777202557563724254106510127543265897676900537059686529701536988632995047294445435550748750141979661373944476257341082575180457638314015596599919593013527998623093554413383835379947440652648793169245126149701396618759822998183543806805387920385174530329838758456813571521339503766745731411724759140286026154483435131029810817378215174583561085679815167760965925642273326581074221134868004764616697603218968763286651768445028979207149673804995613949719368197425821523981274034555049172017358162600307862548773301937013719514257735381774156165771491247544341156153181763296013445577233458055315443189268663876025247773649623932269476204864899601971417280626224767238684159752206201393824626174926194985561258467283422224490835281778750361114367497821459199790272080902806512695433886613842041612289463257431044504854325572795578555853609406600944839096835780921873500312257442893235087645449300010268977693584289290041967854577110973417293528303639826193470959014442261744447129716310021900337650644141986497177580440470199360735443208666376124279824352066588090049212985565861740925699349347759587986838635848948322326183087926472065883737680648088049901960513702791249666085053761953080752460001928522443601076661435637711486163867585553316169087258482225064316431784952260123073111385397628436293729054183613195388119668040087176006845164580139123410992497834278865033694498344372069008614996934829215119855036968217092667854101887339151797636778503638575132350343222419198866114239558744933220483196644724306112511544024757353031213475368853310435947134720840970344773554777889206794775958369185131786132003724412915668110218173611214774692785074092727402259866365009679744092217520721172631565607852586859143665812020409487223143262658471862642770555976282001292051884235734613210855182449248160316884793134398673789413505124631058022415840541216254505100907782556104235307806546673511184837484376466370184196019141025432961987838733077387699541548182989695613975989599494201114997136381815718843853220523893050583135768752948367078331373464103768044638852970061671596267935795481683800060637952717791768753415020961754671159880120240437643965643498899064912237370347192025579335080072479293904027023306577531826043614911242654748923112841734749001397605264489588062672308594393453859476426910107031079303233420613907934595654840980655610153826145106002451149144994966633636920162460338224737727828013488628990979126238347364862282396878383109487064528833672318328077467016281230331118397459803090912135711840538420932202354590490812610041848245057247197330780585453471035870831827651180745448577378700746364528541198565805950593481314547351775438496469756597670913322491644401870884135466293615180760246645500953254967484638141906432083148901154341951166754117484622968895742744835785773413907163546441132105334637958584721543720281073316088889521392237411176180247450899755674412994726659999749647551835490966418781392737519095173364216009307108962428541191471947025020112887412104888473413970954287337883143321800700378476860268877650393693620230959020672421505008607322488057479147087843916232139227930652524552249113772920902000739659193276175327781920138179872450049838636828347751213369568274655473892478670860720508614843466958791784245141774945050250136653397626240360790971178994538858303949816607667770003158933981486234171789924701668050388052986874622054281458305448562039258618088109145442171106654376919307511965787993961132231237843118490836185931853935538003760863627586018102817589419006746052083504559018040324879168819880876520457115815424570973737495735837445617438811641477098617054909851619347421154086246381846352547678764251325306098124191877269441873305746173866700586658725166625734355691358189652386796500511213789886570334645984220636547682471579786032258508878591972234502781913803768648838214536557321911290607612870250866597045216520715027495302896031074932649833748022966320348240474572642494726911277096386525910271203954020444843837181611960316033688508831375274683824069077815187506410864600365914311174965408595281261192590536074558276624487793472876437935745946081621381529004622258431432276603504648723695758832130468236109142271182477348875682279860857897456938735110293176228099377311991007492428093896873842990140615359446814258355542362896426468592556427055753513438972690377139803389170408291402245290364580802282744181351787059674086299090704949117787329331177908811041655696418740024882830275329938016045310851918115331143444986019804637678799491486402329109191429132329289961177022028472887702392645778642976052246030732029462846499734372221266357952658167119639579730025676748046063344914083007899075732861105452481516487422969515524103724716570634720993955398876522012273403285418352424024608366162306424333274271918298931142474539351823792454884108509694309866437933894631548188342363182407773352645258185129763902363109566381912704531575577723286977924427431688650737801844750700588578778332065503526215329651383836016856401357788965599264432739109620298609385587823495443749040305983035917514500723984974563159530618914495950839540978454725575200349456839894200212327859276038542128428138355486179074902202786545436415989101291582715334437199339859428098866224723973247794127605946132085110591838191840649223579779731615304236566618541050400753296329878784052108554564367900313234274314846221581633438558030579299235830756585958408154175509403570149006992503584880730824388114860752657960433348106299399289201493937609917427526582850457787669289290392370386585679872010133565716259707006167923137086797693852105464115223158500145984716779185383082686906281527147403199383556422043202211569526058580384923251284684123613845028559692661967190414480162708640986420438221701146992195419760489663694848233366595217196123333161233369911619560228209675445392680305395713606585489927245730789338035256093511946922476692247612467968786696622812602471718959796409566630215257511751980262521302052137744512380415039207233514415289674173541234645501167491089197862324395990912046034225557386718313092772004660909438967433576947389085013627478146655560269594025738393974458753243614710582494425885412895525508901608169847148207577295287772503291450637855923623366060229697152250644452639723359383893342542116105059188111479975542904644838866465650397933679385544943717983766139994532400712750902991004739862829502917052558685702602142488348340707086761908841444052709642915097292227661117806555522621438942829692689953681735602354700856035435050059903579241328552544467453205524121709408529742907264210087733048518798592623883393784295535408459561977487017495917913948800664197514494184817730236572406434409925800879157172527306120131794091462276298193751255327341035109635776001161642107839438408374712607165162930049557392024457170041448727211898812037126437905633529928041309794049527937160088213319937442648248677948774153941340333887732869516504343952959915314194251872490893813602447268655634711830577542588803684378157582362350899799235074522329785149359426337026107055849400813951501047617253172266803004394715066320564509222209876398210011031952127770959667278107508907152766143630455879845595294374853060361984857179476305312322570562925253119632999932803910668292776028027212420116419174580402277764260962040612170071595073495188414819667882340930200881204972268902493089821969837572976818542317168980944270244789595681256759184233903118489643437834653693366825463690637602887899984557791672139768216807667971310476033017466117430955305179612910977640676239505689490964912196153653355075113448929633214258521684547296268495869728334860169676206495723737569590301581395126857974485244823009097578446578646535977206804032806462484571344803208989897819332891233496050448215185148227457744089633918315786668881384702366845911676249131574287292771902918027483309756789237206108432045590982905258689830674788996388378385371292627768107011416885817206359243654496210028373203634085697805754323965277369931034099169646539227894558559088321337018976860060453233320063706340104020700889081664275398803673139145746625757874578019929936865817253575781374537391687354189758781474274723470115926653141203537133457453332093304331795765312349485053550372415552046951123222678905512094475909560303557478132143983401387220802829960436785240251134195468592854562586390328891480773509063587033250323532038856007390714528791720204895119960796933431555958825855230393320655529528857599240615686604861566541978933836293504456310475484127207778319265851538947614399394713383992430951874771744893171198643946233972365402815401688852794644266378550138883149769483617035176512480959282882545306860123719590666839808871441498181610630422299430090579598496969190717320034373515359523503177879326498223042205680895743632988757188846335900841589405383883487370913343835816192397504587738872492654929274812889808542238022381965650085002369374185364430398902135597680913163603855787217697409676173680176590906314972810173116077193670093275865235245409168771267983938068121638434411396207135659208754256326018501829033416851680879569426654953906696254935625947878915773084856296946023046850874063894056566787346102389507953162683135951839857775280016102355593862239574278321759108010905673335127033288558581111742424923480614775505837654572928255778448591689255498556962851412456819023005083932045661865067390231841125602193100184751333699591264169304300843996997972743553631266778515955537846213112220585815333318741788788808318299477837281356692985644670796772730280171012113664594842813830452231357159704719072998893875165976979212006749667311291357737395277420703289505810572884110907760784258719451349292876982696379779510230094643179821635522649068937513545681954803719374707299276993002906343209547038343694573437296002231550913641955138924779333214373018342882298005111122387942108675919972923175512986745966643378593777666011377693811009342990895916779685791099288341198504128803558929568405453668484544114159688257833285670036269465256776088743939675353178155263414610098397581890661779818905539660596937780539172260351896671342644568823202849903124449047824188697169212047066624027620986005405648050129231845028849357979819189147680235493192395335351824583795828669234096853387678173924555675853866883999659725358520214751204942903384245250866562818023206791856590327410699872834427343891168722067156918533084004290787635403799250758060931272704291732816545822142976565031012661544508185833671187781126953200552154136895668219347435701904465766892820525433489551738587783885156343903374499757141395225934605263257773779877520006985845195435212637428116001464497883628386990945494902890898485570369615108320671783561951206643286784297191596602191477487769359264177737756589541063278748050290207750871879897213368195177735003364215103525647740327031740225995945363488950049368632788750250796404831594858115321771004149874280197907809248460860917701845876286632682611943200013037920677662514479562199643378665296380016274977939801424079003192341841591221162041369536807549271179514768333224146584206078702587467715887232167643250042831653127512226149298914232398415222761687342254355025511577236795220447854996810756036200903962132009440516803602892773678776321090540275515858362401542660335560344760562176840614764956678649799765956978493514186258896977007981218563571668189529339624015299168451659367907013839501701778958658715806276395163427554898595865402000065838630245330875438830397200895907171882424737015939917269190477796319360661986764897284707742473539576354752900269367842687848409359810509526469222376301766148220544351412466561971358533882239358589185095401131684953862245893340742282837378585536024624749839123655830513267919068612638930807106316934325019844335705497393877660345448197326503786114170647380328208724289821052406189576595370933829811516679702485626150949767956866557022081347584597030006942394375021788715581923786433963449520161242503381158958252096594079009197836420229698377610034403998821814764995325531760769883445167052341724602050014714260233149378699160622951382568222847090761422077380185743690608926479206504418601193957639195508946250210518996715451262115413923475139322083592270403056510720296728062448378327875678086156747436409582198236694308941288230917495673876901393065862989930840171322579474193491523082929955085655657457944980234750156118061349624371915490242488888405263988444716161643024630256157715270013215640468879265924106046731236595896580676452378529514755597596368788038677168186912131843360013345350256711239320172627250620078041785670578667952362211853401628535067854657341311430940449154682437255636137701198291170631161438306437290317254696127962331848512661863427275634472151546957674446831948483137793448082044598083370099123535589201296574963581718201701268316515383648189540237951019961247353887792807570196501366569888445711335726756733941271967686233001183282039758271833393444052763260602904839868409246506716941308858126682027160798758964141717994953223234568694597515931687113432912148132510941520508983453512264884132970728235357707100978486316277723495961907677489033758606742818513570093148104020251311051694055829179163894368570432404827245447500632211722806037588114473885143460765613922971564686506742060020409890233596359798236116154432977429249527715737706379214815205754168879848242911565788041070906238700531000579988608646649778044142020719529930835354210695464393390663938800233707642996079156660060070608265619784008443169505952419649209096385687960585432236172199293073098208983884731341121388827339937226598001146970573509376149278274472333999794863719406904218591944613543958510676252780493104124776829700008255017762163546360223234950344074550764590673299378269448316807962788850028904028653038025060931477678803300249942159594834281877754184728878864648338568012640417019145782597779532456890468301089355659522429923942024394251457666047118397693696737184851396492541802993636778356656478217385855857909804240737406102763571214319731251228501426187381510338838324697921550776106841666360227426699390081823500826130892546097454406027727256048309915105718186744426323366497036845262747497402039156063122317343219128668223576519125507113202257029527813204098003369209390599570249259752464146194205642190104002788035666549962578295857174187154225635484312334887563677193878164003195571833208208735320626824674775097074188932444531569159662918999131159859527097961543547912435073619358430776658814544699427684905782647327032265113928598066931783704226407696563906353119474036498312649927153353532398933201415548615004926159603954278835710396068289365891928111888115613011934623502341760364864067213527143948805779155185698239642335958267947553788579043279703229650043384584507533275423890955496377375518833462963785680320402129053454045980919924999177716358160381938725480359757984191856932918046270269195928531568242028660568263136552655443476865719820759108742825782425612433661436451260769163108070154589781519964646049468364999479312126174066859937327252759391385149604450588245866144502040047951486889348309441601443764005406591418878073687188093810873265973091588911789760942954729390251800528429661203336892767671121305906210071463390250860124118126615907155410774051605639080092274900286047323372194995682549098755774670662536461810971218462105695825058447994106192402921344173921414476449738538286380528931614632881583121558210206591058797485508485427334167026773989337079383130751863993136367020050586844815841718223754239943619456544015571486828762536759458889861094401765710433443802003980811356309741114779106591587280885865765588855736467874609095323273133623680364403373582307355231657939953050016889138425711219136882638999733227851912634514199890067611496634952013926685042554997529898684025914393052993168052859320026358118029887887894054703417863615286109314857391889708730331900259458774304514565520673092887546723025213438672696189428330718964878231195689668316236523682675621728765297328370555225453819984334540277609591045765921266776227862834328130748240661879855637004251678953224407673378519252502082749906709108340664212657958899416848514666394304552354993150842784210409896944483988964721619478845360737878209875785075307366669560028852426214794640600873867867333308758578871342499043990508961038933758339535779662106396580106200390325634329779797136640745245295104672766277835503403491224346971898276500070660074267694455296231915912763681659980904655918948143729761787568484051576595387672889943170297020181278503343262251814007851872603744092559446665505379415570234522694710572381468370297992302398059182501969069716229551592897385685021129268447358685276052202410940168541106540320927000279565100679747194463901106425995440238014700363423116919025062126911826498134789119345370935047022664277566233020688146037947195883172191330631544530806144874520648605814933490214478253318175429897850789289906774277526300706869203043432405154752727290999083052648415046458752005418829016811880835264295515518137626038883152359176005196713731306947154546299179854457896874357036618296918661596643026177567019822230914953632853410590235177258748912753119376494146276954333018354193421991229432317133321026196973502665195147691663408560635471419180057929440901806460729534789297336791895347017353651097402239485744247169461197694885379918846237098863021398033080547376092461800869907580892908704004791384502817485015896338413355080752358533956189626829806099549312275922894118830109897318190628208021988419744939490377286580243654365936421202123407565618760742223004224676415416279682953151233828985801397286678088360737471803550763825851789651820449129427021695646917399121263270162671085127553773797386547293474967893128700353737925647898462234021192936444926557922398543664451703494371368053996510906442244416002424952073642594217146170065824489604720387390332922573358319133212688207287976558982863650426375680128446047893055428471156983823638686557391589616426340942247118373439961603633338460627716733710644866555712949068796169822157412029121406276211455279507937435270416462505528284709733527361742848185978589830489291070035873344018984424903274412705536048459839858936740900305630520019775499626994425885877780705198647484557448204686837360373778899133323459213878674594819620730513687086424802804544379149186251021002960792939085460084672175992979769250838406636869508159692630237730208516928103505678088652334013995284439120090326760155090986566800449640893221197825494742799420692762812025394315380789545799705244519763131990507762344611452446970671658112192763346519651072314773439254167149114356815604396057574196213385774673041788917883859560643146973821615409917529984023210019409243980426309090313839977555570235707507296901381289214386669053944717673223803671782614813905723020310250250456652985012577537087911640743608433132414099097783497712837756026758604070365967013579576766929694986803056583507035809292491711458638721435821518229351010204328933017359241911355170105336892795879427052392434609812956966911187295570339282689406640087951766705542623634452113448053486189419623031507350924579658756464431351959953814561895858130457240839601092651831949399262247929799358251088879603391169458474844866201075252426725032841827689120046389706182117697717239296355958679316475088432101031171062037032311928426019240150610822170686431339030956947492658949983353342844296225372058738853509026591757612834577385906352857375748987977714851006336827837508853993538016452599186260040505054148176689895662731361506183427027901472439719854269926061816029295503557494084631388375166623831960716038721912299259195247505674386439481994181495823969698686546557992424948303432107162997238245668419607836454144603821837073572605516713802430910767945589180818968999702330494056905993341232537954621065277093506355667478868884084324972346196118167688340653673384624969679814705282374517912663423125516339439146640798213102034473266799635206503283434717480180572318183453477086352615997597122386800158973861290000700392078071692134707147541578829604715466219545996262208034760898214097009776921441554063469994207483033852839636392655972993913201982608468426877920141761214831896357643206435818922974346563693177158930086407423239915383340411843463746139710766473208061229241490884248274016657799809547545640010188225606823120138347790967164988968888448443129746861004406085003768028637576979434083091018563444641705392614801901947498212533023729516320854636846739770391353664352492812541092943914775609758277782916074240311740859901854862175573064365382835125306816711011716962999399074528208472257150534729024054603012491149698187866858273644328962445303378427471868225465193924601739214747798183968498418480249388367988765109968554971066236381217758283794460162417492088830116694627044516692628935366280660105596533289269650828404208818754669412266193632646293382157138148407519277644233576960353895134285862399499227563664347979637084781803052673145692083778068431950150703763609145291133792577283766442094468084590122343272676877760536571253484683720767524701572171935644946772930776534189960996179196486207341589804743733421919451732150595168199195667002674487189712726692062240283959699421531866330992165531415120514241226816344197507987700041528128958347776394000665659516257604165931184270069556533254953660268438303699828072816257881184052666663202295246372307291371459409172018792385351312070639048605580467994875581561082169012809245037267873595210653758082145796894573385626164534358085682094996996197820089733217227633960258237197938248380467077719176979552429127472754398429660042158030814752497410326963143009749627337965337231789302107524638267046928599900928914122986181982991508414437670685064751063911529890916872193718675878901333889238906820809522133317107281916893682023437562399314762248108021140544346325683983707261555136047756387737866798027241560204758780715481041698915149897387252917474779213439727144481794586883725485899227797140465561381866874539244411517149726003426322435941018546270038966969314123845195927461961837155095261453943534663368606498205067161222340494010090878448739675870990113166617844624495174929622635918684203354441596229173157818391695251416145970817358184026546780299232047418034474419197369995506603935640772386206758127636288612006625345958151466118697770944444500765586837015820650897377989207125029293722786093082070310504329309605968383255267823154443498812790620270052221119419199587276639562620146866766969779231087807594354049776274082643099159861134741018168985197034605483191708177379635162330895284566638272115142291666074818729356038188933570802404583699885472291140159930560617799278499101256924438701309295103140082631304338389865731996885125633884508090608731447230500666395625096577335886201833046719605175282353916815961201998961939993971517232237044372948148735976851993383109916005559255939044389546076906980801032774181093956553819291491894049516558144264904212559350958012683934856562567972459750913209710556236673745262725364083603481817671452686039506632602522437478792798774061080765300636280833246886225634575756400177691423784429944545974296708836667390884132654901843645713189724431399871792499278859184388843931941007620473535171120602631297343100783943271038544977382656518329876361061320573959663222388324837261848054112188467293494987901971881338936582866325514749348491758493328773608193302862600893083942515472327522028969675300190417631582134067493052718984514804633358718961076242545757316143713442683847834610880638453702194765188722414980276576233371305079179953163057749205109437019141241121280976337592865162859058493383054564776180831134238306264035653990011533614501114126754432340392543903650205239011632554955605290282273367169471229606179020920045730486314026319445880033476982348825112389286031179975740387097376587713168905459246855405937126305026705387145375937566354087404224903377122244501929921901322923962332073303635623716998468869437323199400198381840571324231600258303622613493371697521248610203981980210251077541165350613761845380828535928134271163833210398541666697104295201511383524830477323352337952563729292011982506587592491191222280789616834632607212694646470772407246494055061487291533968101253012379797444714871623183618556988378539028670529405001368387174736550673709275034447065763364652584669006841441585847196609602305430782318396946575476721767227733267632832698927645596919359685722645030816260920054278815548406076367637547054590394038083910801080505653711316662968009242334956936904466739781799312074513974219783112673964551756458006495053866639077477925450803612265394737676088031560300925931101091791544273904364349561990773743588496169348330526044133334632194771065861466955268805879275339310931513130627898487078741954181466228554719029910110805164203230604179053603643356383006577937699640387285848782224522400503889537352712205574457254597358183495731259177429983190913088713779944903118401969977545993755202770818848756983814388538612601127125392554236529109992113205447887015659145434016445505754180674209587694311469194243686221898891295607847334624148798745439878903451127197356375195331867877154215729028417099596947756215660113458047182456338760825051008543194781412335937032915764244715988157523383045526692613052777295108518904233938386837923588421978267241575580197428120526703456775055636389025756798034003470682793086778008360598898795907373942361457554771748025986170495242759942583634439783495685722811273336796602668050080495722092907559248842230046608719648803764851795691975716100968837250780478541576073365979396083092510559449929005469497574772666351218241359299165570768229474471324448664975498366482227828810309783177027077071019685336098769997250675780492123271611550077537402034827537122715719364679109557904857665180159614061832360988011216403501162145417520286493467342662137905294056346314706407597680684340895748114461755497180576957851208162095206013573309925884260037714731047215136167454810591725235916764246163904060289991630836824138484965385749102037029557742995259588531439654587937654869872564255806175044027657009091411211151240316164280633125453761008838489460286694823197609534321599122440002695311243028848450379886265209508168401254833337392274469335275657983826528204701559400844754562832009506977042715231047780562725206554410403182494796514362476759221097935584279858118666159848489782009022052977429634019306321964178649043132426326334779858212841309950201984374292424896679027802724387081108028751375065686577942249539843006897594176086234427147449086399036531996701437822898310615124713296592249179986784439686136419279497503369975177539692806275530752842579687611076200308966785754434574203209913039682743041647651215735793371678352465649250569326167057457394305695617316240339919904185146462429448185695065782853509100044660045917273684343872331081366446361294514947166145705510842976554012673288807252841006516816341871061949918832643621298958224169196814185776668267904390422715536263261570909530241865001167652781531855423883953903154640460392703673406912961312113867028161366572797660649998394351118648455989298680724872739980563082030329653632093044993894804172530032576707548062250299593525640095734172570792668823815004660262806893995827353203308323942548583444575859664332772050070254973012195969156951543610163270782539520092919659683761998412934312057818030563599940434614944187530576743123608984454054305266585308284349863342933820159095949065443958380129834993505448885798703261487032794616733245953104503566642602073340955711604941171076015254796951083389673518163539340356718704925274362663885090634962923551989767338766804988533803778082465913027428743919092205421081474841831059348987312274632972366317621425104788091652132830936429981721522298281426920335085375110470534090808347005600828706435797250954489319847161292602527838728935820642420881860963028121688959545895244227012880777841959222128236173884140646457057525358546632222674923749374583758779264322135403350710510948996155803250348389998810800131916514231002348426722969570485442646939327013067571213035665802905745658103390815679604626670653366514228379407225241007269148721952905077621394760416735995566640287942781033494305739916992989125882028728565273766679917340571587765965268735857481900836207530236726283060709167579953200176898605412289726175459108175527041245805749850954440248627206963462813832188298434214492964638154823426482136164877654898139393438453884333176896050859645590926614745823363848970437312477541857614225984207110927616645973727133537160894527491495140505631048228506296418274966380217341591341527999591867697730791576621448002713933724097353584057250293001766670115364083915593759417461722907745060858223685292555566074261290292234871353096364177297375599336353779048355307053441815239499202573778560374746331332499514375895960378409122469085098339286359572719022603356308103599106271520858664165987424584254729564510603049142878657908286931889251664474807522872013911299738543698857264839524350671631100862030193227840554500634773041831620835841058482436034244805666894073675199474191849222560504152593931279639271170801093027776556625988452088481422154071442750423523636540783049185057953984568436535311726000836170248016159301988002066685955226917006366087214413031531190682076274287935309661337088766307928369027945357093867745175522291918524024579961919418780941855379108586447386027168151609817644319038742220458312610066206078617509156106835874968791034230186272718871770203388164370734385953225890520978499272025229002705610274913604952626288572964827951471418019410998471182388926417461254920574674820435495363986087874312169003078401436474678862506655881306945827972773911204957275502541955359301237244035451532662181841953218589991380662603668499743923891973766513715864037910368749905976829267120520802126414131521171271070366331377601355769008887822124474630406797996651000048469076477097389800779284605950099566641011719341295479819915974893810338357608877417899283218090754051210124017614254789048992773911727850760676242249342348491155497601123625921287764333060663780236168550978929980293271861056788085161362321715457020718758741445982404051225878370373088740884132799131737987254576294849638538611979851318926076303336121805030964884606744023863442398977462843444844948583948919095229560507612542662144003118517682964911471219697827653258429955284947546154778853615814774179822876977197780358230810018141215304313101832905436041183937049430043744995619299752571515110127708355889342380746357105555132490832284701423904782617157882621207196568764589790192004409505964211026999675369284686645745529671945027779018463186607311647827494172222311210358404790848419709355004465913318043718217145345972522951998419603469999609023743645373035467291460522780873289485293391569029625163839620030266698125055837160968110262830642701383973173354320983618556836096944509399533259373532241525545129903620698019800615549399248390602315750097306593447247705978616542598228591302297183325591954713744178513648600905345169596330920555576507634558565880972248693328986226231539110043060747801607846381047078193220254856223466290864919075433109766135576593756007959187639209434702688110717169612722629551957466700439385871153710143412872379416109679697371202620916154395000305918336707885432982753597638782688522147578030843763978901745130073809461971484559411147949117346308413158979818818605578326706489869010245839217518280987801998075683364785025102543495048488237181843386506257764864704079893976794013141347550435845393849724432385362716232012075789243512991128919410602521199448548627213909386996882118240598894959164819185495583065440181283001007994940782406604806964047731237667196954869831786830109879392016026297200237077405013582577396240852773922733384101385653900559925593101169488988252440303722634837304801480330905046713704804174385393443754862004301151070405203826987574852886026602970147170315203007275424287419544308109230926599726795677870804337769766616601857245417560057847708528855513257108767548597847295324203543640710302185629640097403558648918077419585839828685840720466885386986443553270706924113186847768727415637528784326627382497086376756282571711634323192800085968561119477778778168846741443657936531442765175948534361310928109182034441610192937333404218873271347907906496933352017668698097982407849229025587990619782563124854622481769383094138433091865667010377796444322977514285232612675306682974410243058649494677814015624722037104224892772795605800690825018140949952780447840196372153727197497244496253328092282537499115701875603441639552239813719893106677607634694355896180837907411966239393695867114423416012817774820377985916639502728688493423205608449545209501053943120115021570821132657005655772987802249142876450334117192130649041876538219217112625877985991469159926642412818973031327750646248535628751177042617688584386006013709233564977359246556540288311847334810035814193327289496270280040755234267592588013761082836383392804791095081025974875009843778701609035647495600816287770580658321187083745126170395759352003698381397232405590682375836346870891431656502361080097528227077683350659085599545250289961325770985191917745376329876286983461142735228662714067104223252038253409128304620256302303237147272644986452074912326145323549770251673403241460952560183597401347244235635895215713560993900942492936408389723071029857460319553200136337326783118282291368595094656487208704692103316352761186100121725410868255214490612228959202604396893307410191235404451220944270248460115371134055240543856637112372729606129538995188257547007317051389212903378870226234035890593600227724891183537587754291744271126347182031342163561870500894143678978473167357543601790095043876057691571013596944559762114932211601476897197944016124355002641479062151128351077945089937421783859627424684120193483941693474231890608348648521302925231980298638265079572851680322469292415386517757665391115666011147306142530757427161471737558833341322514604639056645059984064142892959318690614601963552118467675917476338584159163447032978211844829354645098310549038963458178263570164477241421797650476413995318922248249965004747162066580100145986309158294150706676126728650475542304742036386280552586382825470994318741967716327023173159468984570409507913419043027744673442480951317656420466382987823113132565084635289390792945602977861820530940682694629111087985980622143482899107264103174890997292246544477874084939433071523061201527912824098819364003912993239492262273551708849488044847987148429867733318721012248786315332925730637281135436231291039420171431771429079224619123517579181500064827852527559714312136318351078354788021307474359305773049457781920757531895013488180399281969863688473003045600358126777352668852714164422540845274122450478440183676656643199865699639602835388172894205019368887272079243832816750558134374080385897710425706156360593998260912762376517000244829481138237506862521662798253610180879014839790823158522955697863532645718112950566828427654292805646956638688671242406116730334652351383071460262432780920542729597097393425511223866735600111246478297706069931978344075702107724214316912304998149425627730553177757569715921506289478963061368549472041748618755350076093052540121064557157014821680924093196408323524771492133394018683034040479563133647648650461445003580964006627769623100496864346695908898609072725895675057063114392657831984131776077106562526174849863556968135627823451065666950958311512524810437574498626610445889075537411739418512051055194953489379090501015347248100454135779102889021871831625089987745006119437232641913174854823157701588506308555719130696711205466668267092615383154847101757220012194178742681002645460274779755512323564265721930048807921697704624059210276325131916595018956126211577895638822237113529320952765204798407039581132435681379845158348667479638513738387214603826414487381695849645100848395029153547761655962812163913538578778065202902289071697543852332810077387673332192992185661067297470751805733270367686356252610559012708381904370508503467718625106717092823018399429700353487099845042343514988448553459386442411140728651830818155821094712040354149900731612036288140356865560404606082916836511611711841828059017086996228488265771865632124188321014344928090522484243796524421741843694913231874032666378970350675652935573647856173671288255633897246501819988668801838616230436720014709102546970704986498530853950333199351046493195964879834630945005911181189513194257440272186976741274969198744270628889716372879834170778535910435410699093826358212958456886907304584964977749982307797960168589931615452859474776555073824178251440025085936948439996931283046729455986532163938314093415994979199459199548039859058407682346799714035567457193589957316545654366433956836996067189644500911938293299538009259104491082368339863682338333269778915367063070418553044125750162970148979771314470379136662967370858634264422688114484521967926497225385309478841781449363242399124217081411002546272070590328597522689471124141617794018939286175199100652817354669329307572169806264373781743354156146679707235049333355334863627712953442376923568146624432354587783697706320866282098370847070927822245570336356481146522163605252957783386614441928637338124806674273130799223542370575280682595168733283083711947473378619094475541663128488710550842225548307464424413740090250922686136070895894510837673090896431708148580920707381070674617587882076909505653175467286592682703555929929990235513770989768551778128448007971450901969608062764628878539873682907664081620602776423272014032706777311096321912369037560231518924645817740741021615463883071690345666234506614801451277672341164739516708344843036881230553769757815615135298504528951176941383748722824414923620257408170126775098509793893929513280904724936892814380504834748035874360155539539789717828856115190388609326641203947893560870700453456247540482431362216473738777628100870631940871132222672287076576494317284482539191911136843658226700848085155013448483051959070276583538247301545301401565985106833974262425593900326593808659982038593240370888496042017751076626864640972524873992515490864292072291023438611319432208071967248887089108627833581440737781311095697834711553992870866654221370896101911193840720781395594918451538275268446008312045415878836031369039165211816839791666999918232006276626425831891817428174876933717517900409800738499411306096384800463332195607924672174634436515374644343363623499519619771197235184383851973449299035621271532487700520401138541527650193779985229540103612532344871320189623693127996927663826096030262389425473122925806700176579717925238867946519043160228212846814603825111092826517960749482296664870933854515756145970657436394354779826005193114049715050886133969235472715961631167693064222310437822627504942885709425068148620544990728215494565312169584925688614005488921793356390204457328854134056998888795805616836733324853235862760813841254808944567751943985473014524064833576004893007076549563973329167101045489084114684037876540854020737338364870427577713540555456540108183577475280229629080317652324112550684502398026790350642822802372266728586698395758971335165434211032774955492496238124923251011538240283453157317938682977450273105891110774430321092277402978509997099902994722009984035625568282114862913255198414115761803408750331716889187154827307917663033925530876638608183768249082093970659785720578802458212850881921208912647612630271900012753028904974578043412742839361245017735172270300594546023001389785520627667397433142778706674080968872230043065954352246023307290632761627530412731862496415875060815361243594741855759865423397631718494743443907257366400196962695462780319008572143249626098847432147861041620336763300383140514423834010405378208841556266025221307312533850317768647119069910156030417547232828089078114963325777340734734483905991697711524205730658331835464034022115469893897613728810976120086770627470928159696078927131036065066934615966315660177108521821546601911342129543683369647642441248364351620871710761687748241549834302191432502350924986479410843371226692974483505766495397126031045992448914897363781845586131028170048148768455935233197128542765445116155883562850917453799765989546535734936390034936618442280353698531623927109985008797879402447523601360197198965937898944517594483786772329551972576116706344136920525314268067502075974661087375764273751930900695802808746309072556953143600993576258263543616696182246698217647439387695707492087890074249094245931617128474185969988789805704165108935485782503650339535714799498770786462753503995361913870803340016008452524604108273948099474729171457799205832375014843582652291973893388949350251274095989919596319312293210873857955141008485591117287239464333887051570090290516532194607448431155094313436000471319179174721672483692861180983987821229947821369681920312456082979763564466038567410987349564043668131614278700337982578219226580292568134350708284399892361731303792741997458901666958388881075654439297315900338196123804871740483614739526866045490609020177602390619127669261395185345425131967719237154719114541403696679368497445547163250710098318371348855179359837044112940055009753640852569755673945331837618638384681354925383950780224131257302791104812591326562477533846781211414724334926547000500473483502170141751940830633069646428993371979306837241941241713950816267261503315480489154374003394385773418503089189258287567819386037944196941995560399679397766335581804829085203576926308649655598830847150623456635088464262027835621763479954806017077682517574265122940368411643163401962134604598363755600680101659037178133555970020524048606276963213102680387668318640962656375033058056130992318461722137591396924698462670033190459618406728604123711102908357705252788753023648770157105564378128411832946485027224473307863906728023654413042058487741166826056011422938901449456330826946022691851716365112842548312029048668560882072663377283399449920601335026645712050220034886131074008606828588019099665258424998111970905789915465200993015517965837871731093828944690910645639974423043544229153539290234137818240555080848270531438868086664447956797680056384973067651694833733181974631553464099541434667365213932587897591220152710583948029181441351037550879001756423585487286126877512057520295958279513327057350338190841240813594142397943336146698957400099393453757868776846184847297303210251212358197642455834133019414072976960392993418962725389408910964395424247275560475984897418756521650274442606449246664011328667487155872313997838323944691492062814349588658809171604534983284741162706713515201570836597272863915963058467109747590032237405749350312808288924921870619925632757941850417060682698569378195353631017937485350518381702661454005400012440020981314358105343084689746275812622614880358111288677009002850118536955435416431468344776117959187541853288752991707402458062566061912358872081708993256617904705312504693854083413711587686862197809681567107371748483039789624911015317237095993188551359021497025362378595197983148914526483030658297775823942431641894466615488195480399388254719100421501829760135873515159029125551499229904103220926464363925650905783481203653794747389914810461716521725904045731520107454108790022683103869387773439922591854190131213103477332637025954665673761109182268732423473566326458889503863671844163073827877149101134073200775349864653946090670429181178130970532395773565443320451451769257278796968253636130777940143833527049242104641050172642602660664581483087001360943184108701318632558189927579448580585925316929951660121273846131297567631610636021250532335886452697937052827725365425938451207319319231740726917561106781451217967658583805652247558866297726956513094830871117644764259723438060054758112850701649025982736111416675483785015620538250624596744560909274749156418566662619970147127180740370305247711877083712374035725873252257706486429515535369950401740109536001780850797700100610849483639147808394995766192830531491451372179165790865307191533977122871877313876980921441494168018816803994066968979704704297463059857285057654347876619899219045478454140205526038478313369221114236305531605262470414930996605549977895947548456642538753770711469853848862253480508583676452123678378676068465132908029067335493182492421397167754861496207199380806127430149084285122879077828278072369302908646646052037862524227220217095012751166018686013163929888094053944925047130866939866770382493229198849792089726337115338394288886660263716551974558025256284292063420659034459891966103036466244038095436574505630007692330292202428243014466332822317965929973750061512670802966430457060245301793053180699373094022974695393812673470331746564667070958765207534389987368447973596821297515566785635656910116981412704842088729542499236158619204250988039892219934709863782594616363076898098871453341858244504400549502437883566856296226107570854472738941683809286291405572631218451517141647282407582212973723678599323258523002787212744577293737430306429465283018787097925777196914107276268209242846392064280100931527902441690166175717273832862262668401784431151892164426107697540110554265187412355866515431586880200137121538751062169454200964647628621530433127923691321736558133635706618798252777536582456660899277698185710138952553018008088831212132943737664402532533434638637703649811165389463001263608786823214934970355368606844573913496572639873401205530105672927367760309109390484402834481661423486683390471179533371475613768326620459302938741100285108790946670835674670902419072197755313690302042786569390313151929850484651970318883728421935146502210935243177571322215834778677679724064719525703259820142345120919617902217046159563080831584740043875230127702799401787283543051998184098161743690690505769739316851736873023981727985570745562126897869089779388111602389109343329296308517073571105481450905609225381041329585604523528062648333500281888384153371599457472379990546721679402074945675126897566468311016584220763781148512696777931605737308746224992629341138710566104098023509024962454113088475554117425794570595767533685072138842255597060396191505729608154220614890465129372911323517859843483276903839311192212577506088479410706685349324580643357240721951348202100600167442763486526672243835350351625861183790814954555253414484374504367212088447613306583821154826695977201293686648134043288916609504390732631201892238083099000282535044673230646507867955056270910436384065946101939249305411000157616956867698193837282117227588039049604443249914627885440124900791966889275346432836655104750645547265083488088871121321976599399698986591798072960326462723471803197866080182788656272160471631842862101249540083347022940873155739004437082265441796682217621296973660202843817452106151797498591664379368378938867482456674858975865010059679501274403760846901790719124885200179916526281710510225079869770677245660498838389722203308854020592735802855818410139122885095527674651717429060412491779952338231312404230761367207354109877867193314554463710176424674506995506489556769101056654962209489842041262082244852744960893600843498161596217742697456860305296229017268245633244880379632072926468779368157082431778698565246309248266603079960955665034738035588001784294931058007779446351257617015194858002472959493186918425330562515668806714498072446484937241673616789080207506139240917918542693719720806127070494504188493786300417418946245620654258716785869621294991839758660004257869892549387702828560294758228203862680036744112792046406898904894110575860218637798900338992894928948573651003270950354474884927724192560691893634775247265988820095777244803225662835515450052575204698642967309511705275700112965250351538731547590585708245613659627797377949213227202943670019771606399194368259818607161582906845722215344461577638489914147906474601314741124807690905652557697056709784788303495697511350723291484026719645950770352728545585738171755319217038448277556393406191551151307370297429598831284729429488805861574105103537919934395631082631036830111858317426462505882437583906665104245650771866565540418194398910295082233216635247432086211670091223522319354642863098728995215412293732459994428344213695965880745673048905337304852166352738951107770200499692904309380889457450191350223260896092548654388276968360549739671333448452478877699764588341480506998469999491635624590151148763672171688667425797240274916800473229679954918500600551331868311848562919656632556135314862661100097861753537783555483540193855984099658459369519879218848534791807291200232931134932636902717908688916877393015107600180119816232009805989673238901181706017611440798729963894642055048572818452285539379456345300840929169924378085309281061993215288015963250438160754105360871228010706915909841564857484540361544819882945287231578014476495690639359386120928784524815885201555963853401418928885268047352015402204937210098529089609860518556211169341551606199831698611500052370147572611413382461589483926363461993757258362770878786096740115679917743809047171270866455995428246936786098080777556286565932585439835591020209441200269604501981178427240393872735792243786079031287528250771939737463656210363962281316874113938278302204059309141050278049102740265060244187276649448911728291158984633119923119840449451748499656597054441801426939446772603011891064970910587988226217377654842620657176057643925193449530952919267816787770172695561194736212815569547938265266034316759246480154023081402895312463906787812515253235573027460344930549535792497758493208658898722867234222195507944101076408059892938075716548467253625435912314816857038910269395750635853409139644630239038514139699867008258616012500510499321817558402247742240644136955915084996879480776494995748552853124919453955481244184955051987681524836247642101025771277623943981343920145250090944442178516492297915025039222182428672368593541646948046042919329947183611456097617463944236017887316259142492248600224690756682065195889409117268701920088345527258888529793455881563671248197755817483833725690276967962151272233316917657116927778639267302289746329115301080799974725825226048993032426245531293349272452732856297623058785391529111904692037006278015618276693658949858355578454957173308205341270119646871901697982834438910386665421262493026832003406105753611682380429336504672486291156885342802416561502689572986109972605415275970931741468488912329272654695734138122821373117068326971966977616643674035095286207013786877912708516721189523856479329137158544083646079623463502088342650313936683270405320633353339989527951219972909891374770603132612179715212802606227732067499705030372882618985966005379036793323924275695677505520031168094351697735699490917061681388416589449372660559831757971389376711617482387328733169770607826512325019386433824688215035366265596969994445388730890206993017671546039874579473033163689379285157092401300414907418925229764803894712924914843806247149344081323697021090153346815593743804318660416470225867516927413155201033689980114993647294464721269245830154780447692576761076175610819940560961944880122655302924944741404018662883962771744653750748913504310936176599402084871888355823846900966155600458014059119755736953371778468211153635970592913880005082652499086331659995297303514295613014393953173069959803212935379589987687286255998014629243692262595167387142633713310148202483545580707634224104069942261623566103604353239822838978432139133610989100836038539961732901845384131154911381787486590195223122530094791868159192250497368415546441712264092925332847816362131258435493671191230839523927120533218534867789921797570711942510539704498233392031887343975427032239104450762134708706132513993783556356490285786251391963968061572624673575455202761953395339922045052964463054036402462064981911812061132530811481238134567639156934175016215048470888567027591437273011317444542971073329890265751598989269662827116338207263160531279353235569890395228014278340073114195588420691702290815123047790554253596803728713547664744232725112374198739511483511794588384315337501715272442197873582277387198406703734277949686201692212589657419130508834194875997061116872812127044199111080397045283761521538797843188879682211948243877618995537346362429539273906657501178989559461508849598042280248521194231503493130975350657359258526122339328496873948386152174083983463790255481670379381491884675584896363399563162556025585918781952526706025805433367897704469156056570294426941728849541445710207106338930599580157442991550140399332229542874656756826059735643281324600966090660000941837541625185543646003765815195086158448238193645619678139492496046018814917465529106732158269401499048981328129847495256628513074620670278863671314406699320914981480206155115994011153828950311829577072497343027806156347028397367293934750588536999746501909085998022297609334759831378470410113348221511538413060173797338844018438914585185473342210127829069291512951854707935809110198411567211504871011709914206759687097006721976580866345103066187390971370019658020787444679778609249561900514644020554838010343770061339850553508043683792649580019645840723401960857505722769773898001415033490381109015199695452281368819504181791859976494361120978796669112826992040963886944783618019505128305344693575789695443456987127716752438804467726269456964004830494350544304857558558072983633998648477345722595295809371132922866098591042818215914421176080648147818061754543339960575020436767972098975580532031264638422061634965371415126814944736441907321972509646822315357076504225067991159014229506370514410108479134890648761531403712477078015906387985770559521296140457495315719991326731046525798096738761150357347005397000844268111318298145585015897097085263163279440259606632687345139108780947690616653943298315367302357599962833195904173780580207882433948011232509930978395360444982689588561323117775710531420865004966816715264013907166437304974966663821323390460251855914729942021280075727528695362755649349855740065058097629011365789442575619847145590933393023980462342497639387163697306197167742258609844680243652112851608301248169646086968916038079238114463233777610500378455982300130008037173223146075013972062305483043646024384653795117768897042318899046062110468970576621793149579982108344594639727494314636469817884974723253641551178826542498396084599128502165433845546783140361741686833888320001680143885046818653135397892873364162546361513283930649244745770554562650033063668485065404042561993009775424889953258902779104595205141748565619408562104767957354396048820822953046823163442378573510812442006235371058338225228101418263953399835446868994912109127145486819201724564450025038952958308257182701201162314250366749926508626890082140906154631961189668586985172695764618718687410346201589948582759709501528737413287665151679401385008220798948993834238225088069291876321277351795537159891844213586956465054265182308281596461395373131207562081695617457003877376738713619445428181937085090210179691161215797514524681757227510639507738541612067696109538447279738196286283519976513552117819344662037353487917452563345596823116034948321577253846286840474224089926217319401752825442076024943685195994317572599171552794925872585978509782183394265898294127387952071659166724436272276847507701053449024750957525330899411192246304926542004330815324871541826864354143117654131492082309712968472732213520595007599127342227528319012052744668966849194263741313903382882910189914985294465925976639327549089216211577599645082814171096066033174856544488383470124670611750402490643833162183212776414414336094087686502629270667666193822435790441755401869948437297630411594480849640630763998158268817000791162586907558851058247771629244760314991536318252885481886947611020921922053587138687396012731821712572721483046747418805686804887683912001758730296122879154626236083204212889029395218336302816734947785240441878917577354310240801156550867653958401446662634831598243321910121482386038341162678881908630469258647457566200821252096492429138898949844835373831293005261758881160769214099501798634204471571137149726251542857761258154254313080150582143979566666664010037985999855588451640218798590862882737128157491841319333999244798641769071177764936733804613916648032914955636517103465942209134224915777696281048434794605356718024660426991675384427112300836964501406142275249524512797825321900180881003809753330967888091947684838947505362838712227689441782494547889254930245110894127023426739351390293627844574030663389993663818244106504015744968321077882256132155476750800824814183154426365760300510833603142402304394436042877755217958178797689280211851602917052157893427623119540320166259304944453233297016220717489225298743703253558468671447489920535723496306146106230251548706953986411145620272950543497714079914427518094312971130553191772979766637513428832990629251291410070256900025227719343147222840278181378648848019604922573672771892757116363369836699381289978003051430279254504497659007922388273169120061479302422177731449334749363399547700577151938639842000842913520488839908001471629904431669947687317191923858718029070743625937444678458171204368640609969408009692555257206764086232303512774048144339078198066257245273394008199469390549350565621642530837150946886378796799874560213172599813347072210004852919644211675096170359565318906101411367730983080720246583476970688639596434560386135217765878488228660120936774205625115826292534703054319649283481779420754351769366090481153247220671290800481912328370226876388087335790670174496630168301057000908539209436293905962882461537598361469382925315107777103747236038608885694349117028711368708244882365600082530787670084496886822253728495934195901194104932875857187948183235817199341334014571699216707215779540577133069855753362938719326239746564386079315042412006139230816860392835562069180889925742879219674452677976688400297497056096438871468868480802102799843339783812712380252422813984034085159608074682549364418150392239536932776398795954765617271282323927440560232688170422106427425753845601764812735558829257664275908795124451536118673991476838227567521659491052821862165029309545754397561112608302129608000178105085716344212885075375547621085756723513381685026685404740934363739103881362906633955705200290072175072895347184765518391130412162136958204715045629152096650040193482071087035541887702903875020810192738408533935405597322994575295579136914792028923179167613712174016711373663387442272524520258611974726617261998855907311077741355013415464375628496343508288367512320778657306688590437619537766394925892188303181095443724349826358136075505396737180458239139129134888124249751387683774422767607469237343272882337864893127458011730269199830641537280972779344826026017528374909482160628662093836083541077750797276191017957148421374069385532065125075687448530253988223035905352995657058813138445477746147260075620434946942269302137567686377947971815963227941122803041611654233464503648111138443197265342885511366634289750783707979788034019176414100769635923856589894835154084514919059915278682235568687686975804739069757931803518940168629454642863850240455911346468811601452320035856558156192813273223783310238778491970329374393032951625392962035306618033035961750779667296844555086359004109181464918615713350301619492176502836475831731107237156789956552433747392115565906533504528077765784570825300433494364060771617646206690180360648816816640062295967637945263807328581383124411638958692937653066449573472622385677813429655582275262901472641659601314531359069190899186386429686323831715640560591020762482240490168389545524769111677815253612841988141831975695482629056582348975933789089517279299836296638985570840275390986029387898495389279638449904208544141616452378060471422746566282011584677143583489224252276681312004377910874062883076330627988202967337781736923835897235137845649692746335581054661124259678153282119071981746634617949027689686007143505519137763967431972340509911358724848790654015532016358018055011327182803108747441804103412202920892459720120193486833117681151643600999786348605703092523856346663947678527580929662867265077439313418053065388302018229865588628719857271871773244051205081432168803317287329325501736190950557799688662766197333065566055080286740267466265806003356630325781634836007067883869465337214139691918837805822304805668132641011002867881358560265006035333151627689890885994681773257574011715150646119160457310380568354497143741967790178643729908051160353960731669184762348926934672197789940257544129972139251248435435332298324313942490015241581690529107414190790567453147497982226590165401037720747445808368382327925802315400447738959240513674033933293337777076500394467121470999594025979389440138498807775597204301066316440607595542828465665403833027320499338312355986298938465773858147888457602471232241509416397026096550317947949151731550072572954620362279695400686107938937364262356273103898009236746769555792755817825044915685381148189050112466993509353652053969983476691617258872509414792950597449633319684585140855383862693000107303133465039498021467486811774929244258890799317298041176712584891637557309453001248247555010089749583372857933299592206948744187015955065537704468278072502070727924886269571978467351663566362120257079598456577564422499638542651394666514219956711815603698223357327754895893185931071917259552204015849963570018900791045288880570517511886855346863540791528697180304706917100343438406884598159481752307417077045821417305140518415858545973218344560776446971099997566417051714077357389141405801164975950087951014702066394107711431012578623428859076257189143826976606388388664131421417328746512085187657945599710320962255024334501573910534499885427412781980599819549500604205215828041336046656746326787474395404790836186254552844925800095273358721029607132525323959479375785141250611727400910958028516370220395919122409511890387562923444048725997672186779902602757736429248021124804274422213558729062601429496410303022330041484065389931348016846154723295107737155677926963799163766867346985944905081423553875139865111756924920536864410062959560703908616088852779580537944445865998468998074815697408722646261554377950286943744287412980790276453922498753295085474602622985579151513961390847031983741302526576166122094342866196763002457271102320637577244865457155494793629036957415464211398005709269221420694457056457261931674882563678595162796904919386906090744343370495091157103325622637309487781065702244655938916021541877666756190517494348559973022452994705871207938203369734849987380979499835393376474957220752693741670340419590706913730928931280119728031510331075750202838582688266011753755650456892603919679836953564872693286342682469431180351757219027220821025955060246022882189487857738506307426009568668439137068408434672816762786390425543780738773093007742684077225653383157897360951918921966487228987329580298432852391289666248624728902359635049817011390254165359453386451969268361253842745736308166008734238755600825621484841813567700564209754702053208492885416174775024951203662524976878720225054413968172500496761154754300718225834104254978429968390379310474403641575949583013858731337969731923616440244819247424201561820351143491741492967752310501719064098413171991322414105250917640107506982922066576623230494423411515447729061700702475405999469500048833049704116602787324161074977867652159430093361229353937999805452873128560174120101556347587669531876929136051033098285171910992679462894448429363445315539054893608177034005952277517240984813221813290932015140343634901140096180301770484121190012181366431881697573358227911801989557089366927204421179936273997291690254703185901288390475003582648174072750334066387057466227819686233428995076600880665079180773669264735087327409469811046439079527259081024816730351995854029627913940895159836263114467378738235099804141900225289064665457915472278408942543014747864323501943501495547393528020850599317439058512780381558522275535658051289261927187374398958155528383434028427582290272529134655445587499836169402515779061086416818651542302771081527022397395800997164332102378307233156570017205783818670589048297775155411516110363250342029369269458170527431134258716325194202367780022922246131528646878268581599704781079456456135732665456478039358013862138764778959435975980782008504709231250390275823401339724127744161471359128851987928940482482454154284531027441926158436229384364867510257748232844747557429057378158838147078482825312243483420410637833547547177408928520820618468454903373556985090961684242789742605174207381298591390551665427057276333736590205652728216667281787561563791138370467285637455477571146799175847762797180211737453329585810910068519548151338922317248572201912096848636456686941255020744523122770548143631047516333757362061056270863230568449334648489583869624979293424086016828042469744274322749095028769726752579929196334128458614438366595521020326429665282764165049751495637291426180719636483543146093889985329283023346412447895989404022538858674208273827401647761362455442700403487184508116057724162488108701089666452204600612809178507965519176321413677271619837958211324901033884061092385661471580057125307419990181825917938465770732240764878704799231767548756850054283882589023615614293355631063165230181529307145104309171501560341819755493793065320943501984206838679255075227965708042056725476799996316699180344978870506381827423360080246242738168280460957360840889308424681619053358486106898955394657207095415826102551726276818151477082206947602940554441210057449839377998624831321867946747196579642920059031658103892793554189855127715952929886702848266715770707149103228114769690544624176727620874136485024834259990311595369100766039381814394945242551965136432144835464655233428470277622131776286573438531419383753203912350797193774687589184618450323140755374184814203750159542322774706743525546207391906500659424739116551751268622552705175348748409585170111290123396201513900744721471712667593297492377639739794635758644348772117360891485508988342490256594082515384694029570185556658656468370844789001348518206020279043695565847634289536818014959242255594100943651333175773949967180447105814197806181323013783879831944074704699401939081176200757309993667129591291696332140497157723192598581561300758082858452912691827007015591879287991504663594142164859182842199993848684782911037130401894817850704990737513458892454909914465615719521102985026307963025300994089337270912148033218034020113686188829148414964106741292024231100999486682634992885720081371456903564394380856313553702674637613270249527604637875228390076592604830732959052057170572203353411967461971668697640035289744930873393583977599875288326219958496510599456611571161079806508187864307754236220470194957677800512416523079637302204147200017784011976814600808576240386804871721604709527619981446043013823772079923463640915349579138116701129289229210360282775966166716759945815663575925752215785588967200454446188630503907809178537189328739456569629783600676131656557022045380295943062862819559690770498715537376942121064261488084393788819359272436545418749662287374071912093495820306978919971658876454651272588047290456523600556197832319457554212863195561165859371487661891238736118711354168235248765428625600810840921843256846915493557134616236835243229657009657067669312033816748011107702241740585574707460631673005966257918030677813984468690224296045376150324917020177367249878592721828543923599633329470911627795326717791486379997251668289898533890082294707655988620644922098300890587467807938023239362687984157412201907495403726415887075235969832762648316219305414604429630898817691556195707548761549446199992799663181191450210367702390770974086657626715556262038099358712079374461341737074770666741339055290533993032220033012609074052899092709385668492307420900877974440926992240101546297640711932945198530371726044126241172919909720904633098089489218721773214443213442175873024917665076766575459437495427869359615485072119304462558627483885133151616431615347060577747189402089179908047021414983184703036036262834315581614594506825095860157669526248608067789790131670021753789474081974598707198344013032038279759482254315166839069868272082356832278255978607732118922747949604280948413965812659102841161969979341343832562641611107907948518675098625624137517850721570615361420086866427749309644563048004715708810621139657197177040418368183723112174589044061553873953273649776457340018576562551943236933682334329935697874504209083408430614312803104777042622106039328293751429851569160882169882829345407778908257439784767977652890614195575557652402701940561075236865427173119200210564977435224610421743821650853870098702941588091120687313988990634197723084314293402996918059355021562857201775251925224940005316395646630950498134578979546841285548566389589260008405327232223136239910330022117199080550136187898832826636338107173032991357219956827758145535760904043233472564153650945467934312945304856945289925309460832582096492271251780837163077390431061202006710707293284978557838760916128459455427745567788440412570299352677935532601467687947052623498480936834740098847616910853298522280225156636887115842643892905370684209824633942981702982342144253989772759649258024413381894068075418286774307052314173412838530268295286708318777043668380901118416276336918326841495103348382588831712931435186290942576703333169095192168619718102067921686358199964519456575124413439666066100915006731520969527444305211235000696166177867045751886953970014767460311182233465757488675243243137599577352944299991786903885210265591759238922023926612602913732727419492313487430840415532006341321239622824155446047668901503248905930384403612963570819317185890024527575819025073572535852088949439911594702695172903615229831379561455589874934051941774819942765987055975648110919621080730491582627969701447145473081660206658075817169912270714082539292402094975780165770583110433474024833064111181988502009489571614770881005471413983038179708887615659991678959806486451180753161299022515911175366763522693699310399581009282065996620838447059888125250661906040282323679896343206605094955905807407833938884367056236145502151843551824357092565393011825785915731658773732940951047810542975486458928901367069017443224337115642384535670008649439142822830068198636463706201820979499419473882351170997859812569347397335295393720392258582025267453599453788648284129683776377390081351888627073046118116163089658232479509349104166114826018261855137367613756207675411271808787909748787162466443101195657676567103967434006547568217398744996975014200685090527222219552755313617438592677040084041801754180204362230878689922878630176173546775008116125872436718010517891911534250701817886563281108290378715485251888644343676325206920584242052161829315477246922953955301202063278159132578704103555864821738098922355468778125473848399072630033994403535806662331424113739535202490312404201627319581868424636299403848436807005235109445438008647841602343621903585341105469541200826405528370431606279658607824938608903927641981873128001446931570494563386345875275185659963290115351259794779564120609310179663857220968723328550256711067666596736458561479172310047642635296474274791578166472555097976047870954926014177760401127776878405007193858113709961775100540513237547360503138831186090399870586878352955041616856640253597527859394440692200417234758229725672213762178903697863125521019802897434202733063203857207001493940202074946992142861230155419367901743320615556834384198300069469559206280331527563119363873548091452105597080080220236362599615037184181433228508769533224412395137085960149689545165949202468241324903101288577933476865107709126335018683550911572823815739464003172044532931804358390681007957945964965191321393813182276470837423318445186557538598603121493434670782929966167317608415511009800589998129127686827306509474318041172946408324456263372220140417788048033424089429544909487993547276046227690352207895996513387544309776988978864237810583475447313921238472129379013279271344917155408562555930620366011647990819443020350119101901026709256318046757755537749926825075618454249216492548549903453008722028213669569490958985012875423479104640410626753315213139055315054599180946084688148931464731940952743400647508549378446907003263685584717705859655419322144397174727845181262550443857821284034904674169632679651869988238546611751277867265021261788957625961957745833399781684172418886482595428458432385575501279758021209397688238305600938473405258240932563932000824398332256513642136719884870223464565170888247961052959551380402370039818875416891182970216295710708810580015403558705285289591882218196771808281824998622673860784463705992147511717231095374009528667328858188050216499552363200498255743743969216012680657578514758870047998328207689110564324134183908682382259375668391137375153953612610510627175051317969764072233699118238820222753900935589726652394718698606468748613527857917618873091744158976819671473454475727675434444452287725356337521729133979785471508556398655841705150242556284971551824752889295270581656175525921853179021478828635100123221671882269168729056623874466735026269960322470033950715881768202245666498187962521402174404250287916162736221003484199383621401173044288321130997220899317115510200503846696827705852458673475428393962636597058015055176486134989540704643865409778487358586226604971384989468409535698531311130402915596389893747289755801458760058247728278802776667011515163409490219268374193985265078360120996268690962138615582344050591106052963915037375289869616850713686873963192453989267885318049964183452273377735604606368856578348099128796487049443057627146910121812339744824716814875130574042956955706499537392864604814787993938267146655115965750719371459496476207894468081907556286680964126876431900264982822904014192095262137908853488861908028843237184837293849870935581204457642568982256396026719477235392630538024133768575166101775100394854402300757219091743956449191861629698605113780827355960440701114598307677976003323731952914538954241561096691712374587991188690156716590118376405923538974635796948197052653629571369420552232585731749562825380319298752879991127220056182074664983276063831110336134195810565667453892419182718198798774443407486096710734695054734472940822705074819302754309996923819954275568969367295487401260983728833882307125280164845535008946702848746659677938595361273866864987204412839741565527988297708288855600768089322837770647205004194759845088953461090848987266630224252947590441338438053592538949115639155226153838810687265706088033980242458242275247135106324783783900582505161713257219292320850252168432116213373658357344467703497208424618965729894797256366798552088761926394190502435231433798841732787969094009537669636082604493499572208334054803566908668214519822866305856067197428144282895357638534484753095910965172258075780317474339679601548986714266731317220126899895820824092397511623346563830630272645837211546839615038592578864557353499561222776562875518871699304095790348271101171617823135739450239484690840670099074356731767477303690672192135095044139934916621361624254112006002410888569159523638994100755584539979045487682572522614602274600511941286462454113746670689219209977787273745357018983521266099574729055024460601551496663740765126959384401184317242658689241919361530964638696779253753910584106760193149898946123373019904291427926901820872003012191598070706693338970080681767201029806876182887157402088029805972298668619357601462405453733305073950038339515097252160498527743565497620499344840441076059546168766011396693234129503373028673343831181416791471708071677865648621852669232434520455360253790476429732506743009194221807158912707448827964636181124484421301315109898198241115051733345162947120172579021898997084386264289446841575838219692812985123250942390137798780161754840875217479263766735166426105768595770842125352513451292558653338513330520997304866967659510900677604278983150034597272962059716455626845699053969140736876053297877311075054884718173831730345312524597114088487127800655713076483045105425157598026990512639905523572150367580313979071890594606124624689539972955991658576372559299018370482228582665907035224199360387341500393450413019793368617817285915167765702335781015174974571488805007063636376665524640641828025459106502987875755425567722892776305137553512968941368057465650000495239792569412169144645163749402485143436947096488624951516540697016071261677060526254785182516448352432822784046134923575604928345422300962708916802101708221530984735526010562646398045627056088543577156816337903080758470206716570594402616382898429457205406980637905405288806199420929385372475167261133787223778617806730828269593756096876315778827895336332233351660616675840794965011975027340479718939198639142688502991868215747865360067250678176685011163323236587267277242793622433649495265014236856292342092486704514157408474291175213637904021484680688534445633716148015096785118961785661348775252044903506722248839235992028407202793690411573692827758306235955535913005216672670924651132213573877085807257858927896629016420170988116978035792722530134439776753512081973164387644113416655621993436309965540285656063915973234147396284330900361035765173094124811839409507986216170677523457127880055691481690384673218862361509770108860158970968630675299514355716385921238773173575737077448484891797383970580622541806071172263006335532657331577027069190541679375185931871330325489515287845359883300420979326063274541014220394130334723298382700926864674333682805477138535228762288540055110567331485997314655495462501232492862608532269179494547004049945061295177887427338714879647989723301215481943209270103480695967049827210924214339214008840142850148841557029412528212686632245933873068708701124568502531023954353816727535643315089308535821884515147787566155509154392389675012996978714532707392953289985050556915052353878688519542733544740575753371613443971434668135276203970715384016580355580718487227773911581797829210263347770025300885585797385702527593752331062337279520804044298452299104884822309111705934158486831980050358030092736845511918381869923832460883413068058232581639606776973074702990312178335490055918790866051199483753423023199303833781640500200919044987001848627901539862718921275084525410988503385188602213146415076473024770564527567079469778021797360630359267878312043067236543824915670041999107443434313892168269040350416440064802474274180490682678103194811746675389859115609930283663828667469617271109134244085246068211210919498003156221579356392411525177098953330798005574926756258965389108186121683251379421023513753719824515602254811156989518293455259156327666599359758449315870682298759205042791439445332657214449560786954288050794316788462807235219243833395127180800058146276608756039422864708836396046550802777060306921101008602578702503182170464529949297141749438702082250502010433321217491528384768590091213633367129740582298408225034400241765680328887639530017459021010623602520181930953410372404387214548455546158739865421016056922818713678335689059175317814323922370463710580088902442758713282014978986571416405083033478164319751324201334189623820184249387771917340781295455945836115473102561128585089420217668726249840753153017428351932952658963906844360540898074998648029700604413479498461049513866622030665747950099253476986158380174357714074265691798365797099549050983873572834416459288235038580079624796331474484100004755678951623938080226004364737796407134054541541518267933855574649167182376592435610102702738051034897490110473842015944230604608251134762340510243857058263798126180828172454408667088945219237832407320323435660661848804165831530927181642399821105459945625641592553638387038583724656981652475263038962555989852883778058016268249352554263515029925133122200820769847580822228014574345753736956551540288687822017454899070080372422326388282704007652660415673321990370914624206898982326433502018511235602634701613185743985194653081664729148391047528526815422700041629196561273250943873428504258151561427462259529249209174902744639332977627488605907340269730440881007364235916187058775490780539957023849201598667403704965922237772396405859848955086568746846955435943278516375016482264697776828825384444670071861198437643094632724308736865537717639494388685616426389575799570578541302941406582045290657234110578669226943077109963355674144146683982940865515696635905982555176419725913706591394868432574351054133572508765578124960232076154469394823151687727559585147633814052754933053497171625442411116321259581180682016418863285050795591274640394212032628677852769683944487963567293822292549333075895554477453501258024230468385552214920402249202695533607415353980330791329875281399095387663171012934944844815643365088567647849992935402699492101860366322193763436351837541060305502331160428248907227403178188079509603550171745247141724671330153955765284924857065929076741899977733701658009586869751497734892879082609332356763258486046326915945806158134830873493829255065634086426502619364530217295396252216226266009130485050309832640094163002004759685907002154283819791054018986282235157381887266260590495323387862969861677416507981398182023031841809132676240632003358137271390900054198567779803371704201841570487571947221407469375476660712914128945586136061699239975045525473980202748288127297136347554082503919080571711111497499041202713253209297348677810760758800261759503389629213399268807219412431257336281828105462411166686837097430137716219884005180450634545686932651309334397683101474245671782917169457473088825560282134131780866215343223528294621038129039111567340873663918283882466063758573713405033650059885363235852837114039029123838816635645566593563364122450929560221660991544567095400237719757226869340623832884040073513024305655815159340171128606909191117081622689318889361103031370813982964613346437923340096838353097310267107238805729221232605365036819656491126152632589418580181371554029103237799772408391511245623144605830731676749288606688376780828366928183250682132897623564953408934688485080182940726223128507027456212609700680747055332276904922085479058327520687155620449344724685880807942245673290623900450358609595590921642856273368336642584876598497226863430779980627291612214496792131390296221296331201129382426163167680876951790066279936633552373008603093249422254072179742985703809199010002939460799967489977225484055790308964979166102795663413208178924781628328217825707869342176853411881846416681115658223701288199350343860417968357234360296042300544272774681850266333864853864346386969979280324562796834437155575612060929786300504560061709457210553305120888976374336043679622223814741682555882647677835193602830360264880794181890870413537246104468705871957575067735565956624121306703115889517002709204101173316329587809394704176519185001440095851903886135013771374713580147593839223292216065354320670621744525863222515231519720672321054447377057351295279331123420402029089886301860639858848186282201345756756662888636812499341767744473852000108327907350979314416360606347055256241656197087981256556994186385811499307170352227250210313128655136377161130967015447866009778239730861749243657602419006435040354208287029358230322612554462109846975561584540793637468363493492814440652474865736372989135633220658553510811465928806143012372738472993721753570440000019673174336052581758760356018451647510116592687490452211275807003526946157807289352741291617099501762132967630698455068956545271300217970780539094568090129525714592377302257820900972785473713974372304634813724932483781272420241424427197085113780654418289939545888161948491884564579821057901441671211990740824907162051247836226060424088915837463943185597952060396120555096580130555968770522459291404198274186077472196162267046246595459785397671056225359158179116956963785091091859812360922926746358995848939534177315861874511299123754742645765392439452107117039007603323594333106538484634534264663408549699902677133560611742348768522151278243014646115837945392575747815413339989950097011413042433784399016929133761974705719606727869365759092335390617590752137199818824401501257848474999208411755599926298872510511496230544436714996343776917033842820209461884136272911539163701451019032928363075699730533640364559301171174941337405640024516865069759431489763162569580689916195163856476367101805671266977479422493124614533238320278663350280080894187121296620760808821998394183009482582360173120786805500213010597896601013998963760795781777610578962886493370116072802021899129456230404332491555994185482787849687578968621543566499022831531320627022091893433262465479481719632505051349865589336270701887566231981067874773244762336810483965127781640096759608032391321945805584567698312968469337631936828318811029352794387713774762592731475022132814411959646578772262440954268258978508868899808549952913384795354448347982726132830292208145330791115944760382225715167867201530049796622036506071349636417448260624967484175696326210214126986556873245665762987198105970167589755642712479563613701778202711293042814046354577583877430960560151964875800590296671735825227538102018005428218420584144827416205498190787762650693410732367891446698990307959567741818065366536598270525891454369268814122840387634833388327824772612993999210593672999971357299510073788091954881851852736757646675234014975249485022157896791198414671545990215910732161622090284494053070763782353013369376266278523485393936303783813426962070484429967475741003544172685703927006038041669058649125442727444348594657456882667356315965969792305408663276448720302326536593598057777123703418475932520136712101730874370359016919681858896081729905279651450269242899701059239236229855483244995689733031133593778988950157562432628419319665335280945576639793524893765405419836784812435712872415763702125450821885804192144248198834666452957672358269560747089722898578511806700095610792279526513310796469908678701815328488280758845813515709984290020712134067267338383599384663050922223378768334540241278923265802417849321248535907075117542894586326376589335858585792223887594855113869654395701970511145029932394651712050474848524651139343506404858514292320037727066024507671317752092272384039047092841980527692580477613302304509823709698156927204831348965900613131189948712526039117200617015959888353193040010715797748088891901200602616257104604785743567179713326218467154909203940936768111049811374119170668232670751744062195631941615618535123480852675338751015879130392299590486322869755423040379852117376038806257728078841214838527606589530731730394190440892482613444911411331921334030686033987019759103053545477605191308303063527948300023292461511172957610807706712823261662100970293045222132770965419168974409851155081759087677293123785448634596126615057263121654572659646815387788579962935483522531872012351071749621951487915481585832865976664421249611827534718791345086466575959576480795247820735620829468589430993036983619222392848785987474724317792515092382458009641690844206457438386649622779655815298457698452914555016822666389154153366617283354541641600039472580606022553000188249805823322243806005606600078413157047343011721232115787602016286123592372039270738521492306141307345504535089949105445390238679115672074867363371500063279584810808823898836868272322517429774318131470153305272034003669880620213003388532423055750501911223909408644383488813458820204480210010764184849006676732889574305408193743070571931048336794072544947830523681156744849436199789963884678719329057661471204760250675271782188804644549465192623837119830330675264125893077782594674913096902687189157695995555841053095381111955656335186576514265731109323603627522618195453079349554038370032556635513042064395445100955895213308771620081908547622180848283026617275024093609409063179081047902501492427307683561752169729549212977295773875845213424798955022940629990621645332202801904522029898401160283342683056850718187491568278537369491025611828893353150293143226825512545148744708957621329640338439576759116657809065709122074005970180004522668723933820746348884921889568921740863002917835386329374502947303468433987043186340337561212728381888018676608166346092099508442905885820802903931302816645331688800450566751686703635882729533978943333518724170494629260864957002207278740318021504446748550016478475836023833183722320709076101365666201345693455876142754467286825812933311186030058963318637088504796466539577131475879653112422993022772381029622776767107020020771590695720574272516473017439328948953293484184951981380507933548017384879734407858487961959394380905707333758724936087978555285058067790149295836743385245893207788855707055145889479977965062935816771905998306009345383855052747471091482849580005799426935217208371775921502815573201636375356960097187116405061247900351733354636406079024341449307225821456298196795980428109274744279469068805260147721456136586162718795439353938211109505107694111772512360852978230086369377785045901943631011224080198167854731777550946606828316433721540100862883707826255128237089292067119455994709849468145512474246077626400937789995481721842175796078031446210590798454965673071333807834552124065429087087369760836206926227557812040794690663784428282931739495649686031366880197913650902896266599171801972750668011929018571769885837748264394029697180620355805049596464812497232173993514753917801959469570306834852181910327844102521886315303485573764333641942416339129581660730301772606630894623771582470385653200723622865132713404809667988404415026770024763124968974329527554794969583275434873649898443252828180039805886800166492666662893300535077507975786432365981200228673133702041093431599010442327918874646611608775835476751187285278540695060574020440623779024424572502584238395643392543958886668817282389349377043820175258060624585439966571360921809978949128068286204185669950917675212974803547709311589229736646809155116556259222461962962832547638336811296044386252968132458943700537068732752566328228130320745739319066808500188883568038759144163306428386865367348088130016942105198804591924079379638726668221961796380730358115406378425720712605128165890260123202858731631188910615520632884486240461319181082575706716474799294833758451073188019088817082618994657392228575104206948015632122911384922281494494309442206054952158753522641249160936395749674965282208182689284866049645731272981385382007741854747006586222051333662503001455171992675493716356051729850155060226386522556701323233629929710526511499289640555239566471881518559211964976644805423438922565444232021176095481805672661853288285122017357037713167095104120785038376495408609659321088142273427014382681533350287494248180331452737065879998303540777054724174453502409917839364580942583146657600341925210468734625737619837777727262318425874155565360997137970968130870012822887948501273343800541481407322938640618978523973708173075195742727035362724670060526273810948376124432301536130414793791673931999148104802333480887030752546582706131623600551315769689363855473290042974555739393049429467720794150094071103888653737054529963114756888444147561215713743217463834165626850673975413576761111677479153077681831360044314730552271458995033401310392950601489139302550555927106260017076830459873159069109911181499905254664508507865710610352156160717161524406631617080465842042121065614405784225018057938890820353510564156553218967525205941218090049870269174903091910128534848457682882001043648413285510113622361793618558078422802787740474862918944808372946209467408336429809202196284300223304290651158981023479264249375191130665341570432772041968549475524270979871383993925745088017903012220788705172933256158311187177097258052241856103821882536578167595554421141312119345681164681282561526495372709200626266114292145918659505085786342941873034593086740580656242147126714220247522233487092492984069323843129349745015887030429989934443632513493916815611346733366882523241698949957387549791190641825573412735646130492345399484222686125597803047459846924199339355830707823557360755707212121296068017458424551764683314912371153224572977440924669243401007479210577652411383800739639934658299584136556740139917648216553395626120286140245534614072146857292521331978816298317023301809833276463453858759319302359650216747985123628874100232204398704327145192970401501037333277967304331645989212075499717936940807858511941139699408556015051701250057472002538181312969379000889929078555759851223031580665735749162493778083798612290079073903274163123154404166970007481603178174879319527268873799202604771808506778810797764390942935612849287734683160100550191781463261179362829544978190022782047470238461414721608059890696688203481748563950097977552862882018071058533877633301829855652068923517711780363188829262501378195261190232991456438997793882939153866206459589367339169461881974330497153496635057591653885283578277083423387683657775831630982393014719459153908022446572054670456687645595705829685397639486157890937594556048403566462904687992129204013935117927034047920617218757224923482695778051558200415521946318989693431796186165446615396751657636422289392126563405502822374791634045547550544468898641433429832038543645790066060186974412172093265040564660000840447844070479165463632538822370712389683565218193670912994191413177892629149897770311150273702877571709261258282760966042158734694686242089505707874232146368663265720580476292958937688417543189029984117179259332800574340934970269989394107959020641850589757995187398031318768807215366795224238115763713140957672655350343613147166539902720227000998329327356833397754031719589979021760079820062298012310520998594396249602756281050473310331720704718444659346220717562807695646533371871809900709503659941248074145953071353995060311996688265134812621575940092253630705496154686414135616211127410747621207625186194088588958963654395158014077176620891463262216980046596854502959689773010792871324965850373871801493265471206149833628227403066136915659436113278341710081467375224616510392886525562245746889987179050529462093203885371293587373122031363272158317980942335447152410952249387010401836696869864376874440233872080338677156029985912753489341564727238365544639190775459993531261606635151224085764718261086755404021477371328157982934071289962670884274067900762339703353068602731840944547009456050739994094090542555188150222091828455133735063113553938353032881990574891551254118214205677693332466911428180717899080838158120166570941375153528943936920572472977656660183873410187316368196883929867311319449408991455989625064431846153857598785542170401404288060571802858042177971543252738225861525614766611295471163006500372644823541725998653412278882618410585487599532711503592547286398436872851232110955723545839474077156451236634916971230918095500187791114844676763086990760585108098870721080545189574576960632398874878891459018439557414375293483520187974179523960176678517274205902154652663742771227815237482789493166639366500087565291201159953760927280648541037345436247715911945903915215972019845935592875128857085076598843890267766773444406475025144567442679529328160292995626556035201667238493572343872503769007152813303718876973888145158523437393721563957105864275490891150800785947577135411595807961000631025815115127858230305082430003706995873939595715488009701747366648183006403159858739870955310451608718234479325132674595066477323339155532180321815218168953005012645382440769896689377568156206245600211342482098551730747837707146059345484190636494799543439616397246189374583671101769403883920527435243697358093822914172822988407982488612527141166797923412466885278518935306939732652566662919050443012021999067612334790154565505803391119203600236444154772066202462492256757365646614053521206215972112469840518657676741697251408676308792050410932073102707082531416620652324935760415355999818117616243802759987383981426306909870804220412016540416740481003352877643777541289509692012597420684457219147257795279992253771271900157749254839750372835375729294252507846733937713891051376808581619907065602900343175331428478824506277525728897533516205735811073489319989763115384349431483115922270239176497908433409172435230965162032966102011746060007823316362566512276652009104241664152025198159753868229175718742812666468002031602611992937485133692043316139969442936928256312137437941139148506593630754711124427445721642635460402772941844033536909611190549775421789866939045066831421789808393862450193998255063932880919714778865153719449035762300523157736795804320349860839471897664760099195670555240493932591604131884895944242634417713762778792335569549228561113763948849072518928010773768265216128117970233619906823139579233591857645563718458909709738563435904756222612947666422739293301829857173236674721054140186339825129398389061552161777995717462583774552501058348796594651965727228315587236427646717347876384172367586635762744733584115713732500062630588099703581011623704273496827398677361739569836529324057580182723526931869068745191147614659986705128004211464790305840164445906347491026431577221204501424122611363535834758365642549606454174440178016614123395509051271447940746387426310378344314970836896349561079040097554277706499506311371532904609123435230509081943542120572065407042900323410963162670528978428505921234483587322970995774486339742904584656136101426350152193651805549399377359343757578542245122836637679376799713467353668911186759950839816761806715891945912014367396451574019602354492628888766194014190736349885755217462652715572176318276161615976966073461363103587343136833742889847256354475379441248887241730585608653287476526960004975147234888935998008945498617956964522858569102025766556786609360979394026021565357660680379396815685054318287731823405157908545741379700528023408147416942577629699966667057545315380575568492599133528643184438328799051654815665494724171341078927701839539005855965102162134787230359591670131904771566125510969211867825532298264743964168205083406016688115341550720229930994189604573001498381289815939373973354975209161137811798842173995888943102523193177230474666279646021118339629091654402114509212267063785558997790048961511901730491356081928363733273991113773501811998250218064494889551005063288187124657687589276442513563183161063117701269790986429866551308880074071097280809280133184206685642121590345073137700865174506557806739482369282081696906131095942721448968782330525499234629320302067049717538698092347495442482909663614145221288363128066022608205628517377802155501142306442411456540082423427419912932736977037771548279290412630138387399794150141039316998780024434412099179693151409151381272057146049124682937637771850790101779557629636716004329929573982670372316938983167685027824209962851472381493568178095854033110355034439204536208361358861983422949629316164884265754413745510638552998744884493052694086528308489975138389326513999296198221619584476473582758810281105539043915856518766115157577281854983341779385137380559555872540428588974229269958747617130478887803435149019801014210020261943338861829022861933751655212572873233757189065513384154676528086180517656688210935890600319818948185272635846368464254806680066805192586293427888027350419338856063352109346978380011199931736829712092160350580229646421725592526193391398563851940493003998674839256007260218051791209236791616970145359637434072113156285778094302625601836596243056612699620397379946422206574734842442692811164477542753495875765834490883779770243673097885773276676267238925938992136877291695583292434124363934386846300841910798981241149234685560861881243383028677767504219418534614675820458562309921358671521739773921027306560552027845473325145216980769639657862545824451172319241022985219574198438685898374192591679111349705482943964695346728893210798403935198557187411399707652674832442162617745184712103241305979146328777224228316088439750596750341878958107918351648150975187316307425347270855281398308301941275199666142554394744722823088340893776262874536366210755562804603463720652882524126548891007289860182992564227298550802194660066949440385424833047369991494883241556561158536061185281259471552866103552323635726744226507862818013790870533940196670920409128291900163950665599334682730884995429008195662248501268575610150156815313527825941848933719489993334093962091218259166459087104213107860013850526065737059800699984025734347305824660386323830742756818826133137618222747530632852272289305276398709212169298069524218919747317374785292625678852454706681056756770575079830851668696059100469920831468899325225165863333150406747548657728117522689607779568183355548450292017290977659666630978361411425442393360787899279032997121145660056535922259770087818647668284001989274278648424346250004925327093962271344959215739136548943027763194582132694567827487689049917018877268616426234713458259629338607888217507983785022394941689762192790028192937634480376138735992107086557326950199416666007375500132793002994065794157456441322714910006092962203144320660493090582928784329514484124194599711110226016791783315937294179701342334724840724413641134141078718362098180138476289744196420600839537690995109077669537150854606833876948536325845015693081330175321698174584594198320658620701066825805793895901332417545168418163011711703514175372953207248927123242056317286741275490432669035628756737497288231089149882181173173206459326928579821945329184492032981431017878452857347282074001089333618833044889798034079105548291287533380302106332686205847775613217746277811466716534208564576725791342985471022417908725383520805954409632483470115341076528942287038982661223379635225546271506538063130118992388692504359752217901525777728071729791214903272572754883073238907510236779156336866259569993919797325882237499364173709194424759531595800871572504739135286888845947808456931733091275350769348111225225450057578649769950209024588790557691492811610847613908802509824293064419808472386206939042029109997009442942690922734383740094332341427040102333910320002996101927973227289628952717609873887824184617905822247776270955234898386237193670717433575858450928517308645654856238082687087863045721226783759383756615572209414971266200932976080621563936805532295870825411490539147598387924521794496496908205531011477901849953827744195831960089041872255801840882060738407173236793402989115903686616086367085491298707868208952963921244591741517942710966908486624694942171154147462939658101370556214917490579777272572199479172764660605987625699419451938656880508006844552207692764701038027083774372038859456469495146622530667643253063638738725502439336092915846633421462469013554506987120549690260237197874800318488523676847154159962696606582379781926792274484926925409494098180664191132646777277714847290563996687682593574580687587791612600602710301225800779249729013269545559348515997161882593132946542535664516296336199486223208942137076589853729092100608508617296002086531153292143872068019693110800774908359421843408740362591228646912915160969829741726397496240891198084747292088058716826379213449174706361628560138175314540106046824136127986018437437821689800386020970227685833400489818474096202824762678466856414918726886932014786569377790308474047029947395412299492538111556718220417170585419185153126633609948540313390506651154566676868222008610882984244666130960358114679538961433512408005225980003174594043269860423380476419318199847123670642553201164379468672997214556614959279984619400172117526779002847092120285361153738286483767637517569798466441813659957311508481194038331695694137438423196510705032291846426156233681247901476205117781776973195025327014682659195409485042586595107927380098449553485673844860768392631272594281575944843887539835371194516623512832468576407046419957923032275537640791610532379914971029295919422406168404298724086944573151083903338425795431299227889743470406856020760207353625202851142858623094916574998866434866655479385412147972123963343702123150343822735822472509342479804994794459989590631044384174807502463758403433265959378391205010603859324884338696078699893753060879220370182655953486118109196034792923945312422893964717638242975162515467058006827458773827172614232783678728240050290789533804719856793079275119673926481375795255198790574339571044940027079995509864417851241199601718727013858292474278482605605569570057409661996804188175600155418262132685431782290924457926504916945979285311225846767894292857145566994294186740739505228835767456376280004623812357215151560743066161966068042023970882426811101141003423987656973037841256705824166686239475711430507503784025994976748975786691206662181842373978535083233238135415905790193045642581051514390791931602050854740728451205997036798158140313534449467386031765447293982798273724976236243199075488629118539690762739934574047714184597808795555468667568148165226625760227915868192681023774704560733438238365317734558281001804129298261024070767299871378392969947096821830946423909555314014793100236637702758476625794442568407525552991222583208821469800840599405414061775175442148789035890930188392494005237337423791771907419700864888105868456876770471581936184720256017750697681162457098675201402196914708160219387880733583400072713389984931740371459572265823529233029916359046655733796853008618158422741959135995791807342083967552366270127968722793196384801615430557907768801171994974883099172105087731777243683377007263939344639889037640302180071858835435221668894766571540323580739878768449176537397407208847832995492172828543052247259927022196154244802199772889909182856757609782278418431268733911532012010897123987858170501500327145396599708614663754099031795941503738086010736970838168329937919688591323171540109923592012796704050294371275214163573793683591815729283373971646958781695737225316074166730469193592733793039193889603723333889787223746928721437243736553706620744894700767505926683439173870758753537749777656930160489525015086724258832331714808712729368428953390204226387736137684517828083549275114840431281703144611000497007455131879034334286834636145177358718736562674528419973449128462845074745074068240804903286458915472817593978630130033372519865001561478128144936145711362569981786387701828607238227537315245261362854663933229665508094064292935790846757393043214627725730276913077001045954882377041030224256917869619133769496913977406056925648448997065342481940902332125079198167087198790114322490086544148223508169548282409469282946742141194170887904477749051483247192527935646839138233609328037401784368022061529062982297172997065492423375723620679474269957993154740252138058605753954382985710465788678325694819371522508290204450459576254096890854699261303002771143525782100169096492688627378699003482902646460076578359860872222771564921549066212920259068274040376782261561836637923434104512613233281031006457369976486595086100450378192667760387800642467326435791826822089489636555722416225023111084488339365071553246323501331237417386351388890030607525366583024931783874944178398935236507545215031191997500385391334107515690786338249384728741070739235012636852885064662025566677365855675757857845534847615691237552346595927148334587843545727179208745676827671813358335838805431705863480689884979784759500385683945049901347925779490510492897897098986622790596369501430093388865064750611384175880050359821183850633731745039212753063239005753916603066800338465042104327978541083832521473012261064416546346768901033319859150150510944446496211435581914267628492578168074789673159579386025366212426746654979941626530295314139005982262419814244195737673452693071400078401619386693225977788319675101870719346074922014640808040091831738225483124095229881942765755695124902885319433297225923861846216297440186508337120166413270971757391020913600080492013213050548162830129959223871369800868590411321222780881797186284203819205705298537018845864133066683321397783883102965642484004671103306254506649015393125704834245145574010080995071965943668450025339862583563531404112744440071212434154863620582326192365940843042297051083215309435055531476848588421056118700992616789846173244748854827963051388026551398365201770420636762254941218485089856313084733369643742330135123110243454649902202089540774768858870889261104476929370299372764154192016646619254493183378628723038824417880103941445179419168968654855806257916380146220994792226594648702453830921177045256327757799727329508319951014552417239028530674968923181121176904820227988297032993046825290069512268959298670307331147079427266135600490588351418687322171818484728998323933523225361478577128537594312210950424674884601768874774776457057532769870287548369449078193639578747964072325658506532290411004067860736042001549587822007045795964624009115279377906194309515026505136256846499757003414736306146594016252396766706310912883467145374192652587270093593430758384149198527675774044112611983281233396698691281841793511631572575139458005395785261690451150618933476107717340899124216961688276201715534414305584977604860254832051500021905768865515049701193552127904740495964107704237148842294368217474173927175148751044128312775185000050522539650068119258353950797650796265590038727682206753478409478994033488294564458233588486013262069453648401044271880090695128480829706880864192765892650486562446326191024626859031071552477034234369260865317115888631454371517376114451654291406797718729305115425724768548867945741238075907928461556115187114413180752751368813853816608174178618962014719201367568561573079147979240250733401691060492936087996418195833281708459002772191798475944160191820618206931013256011991456295899004361012034172658261620274113279652389377757730627181375299442597746341711047753059729445507085226589578819037660018110808870744547906213229246436768707925524877550272085434828229302420759228038252702310841492968775859320200265139485492769617987154496604404955910115925528665493550448465243161077393472755307021455334440935540552109765563401081450398640441451156496333609297260003722793090895607444012769229283714450006022211426945887493607247560691388821427113272429795194307984306653969765430657628779245951506425641129606541253098974481440178572089373661612776425584217220706602273318904981996332701518187312338789336185054044734773532494314139627194878324154297044964335527657443436385560598456954766568207984624897014682939787513595338072120212148325427986987826596001313205170748530899771087898864691592401278124966364544068631101695473220810558464527773846656184474639745441981743182415765540284443790122710573214664061914465237417524534095064695765960309838620078572402927050724044827883225529361604524316969530703135054792900132288339503496764158470529130374841092574130570893623377796912303205132801360014006740913906897283267633518076095785067665246891030343625661650951994981361470189616034655244352727244700997717577017103789309111899107698150296667685031825305918219839584729747804197511002059991028880452749493304776167349673245671089378358066406883023832808776201733090437028673386513658218129182437641196183083907821489186658926871884569121793134930115826022582148353070377623732537028512606477397496667371880208240827488079257706692561634636564442585626488107274112112415761582761381383451896370892436007177457883397761306918925549371866779012401969439596526585559590708755675043008203433880240013439404496578022173048740583232774345953233318835665001305569155780585568483848437032224850535237079481141894014226336719705678032030435945747874248162521921645629303491110184569958805083727123306430508056700357103034533172987861498860113122408237533267083734610188358092293146891322241646771202066265594245543678710439330415539112344693703076561159504080638070089829875432560369561518332219252669215258800954685319499613658872136456734864411581471183729877224229066696546127371540105190933602900289824730884579371040309097896876055125175408825186698973084861519356892793954486443084495426466504667203523298297878690002375946863200676204335119202853381070068861747286216504166756442860925494722016201779146912477239067290436880325573747473853973153176800475716252696200410085533258301703160286652098281949147514894245422898506028089238392893673044571544616639525879585752354359803134475834713880806887198587572168172705536750398702515630947973905150132241358091660088160853479679413579183057992718926268445073624960654282287350700093757085848433103192224082113190924854292906804906689099023851558911016532170791557347573914484744456364843945811706878068647244261521186100464072208637365622906715739133092237357234074290047225131754296294162656493354075685696942544935567880162466650695167142188111824880816508255619037518104195796422426194569528727604349721191137435724237314367873479144849841347955315969016870230080569554809237349524656354313621089046593068845966497481892373892207856969517028653652749888020469396735289968202500736249180272696239554840094428768203148547689571043953018720259555238790176876467290697850662774665418250975872964000944320495025526916052120119367921173564262761207535570443292067175701231016360138326979495199855804968241187816867553726852211276354813028548565640034354152184790686228702248483723892767908829315588924607958235636483630544278980573836661623780207651831932863969627926002534001675149405576417804456817329882201171620426131844012465065518280107122612754110144198183476374899226361229000984084077471867037403982320119632975409825746006821280536101017277876578339536992083366284285168454998426981463970835274513520149294239189815292542365424957724969613659161825048121145066565922298329977607086757181622570682039311513878673896929528152633243273941574068153585381280808477489467317981967727412197510523313593381563406516468398955216026107745360158142661148539641242486066768955439772548146180624818702762937043420294857346624891525005448810456603688257392451699774715317954392809439409666186516218733581247458549632534478435368172989171210966859977047535689301905972864058442725480400832009531273347918218633385571656690853555949489198671217594056980301038510331621633424143904084691398183975564336590138788032871267183897373648731322973686752829918425819000026888405453718938326896298418783821699569519581412598675969174680954523971207079444442500787267969661044951443573111762908147994230867316376560672985920593960045001552523848517747992005863992296028029362316285520460628249001168322372250333327282495061781226427657929755233958752732549612151349194800827004805686101915279689853508851318818821052560679795061157254450579764757499939692380756925673797768987865561897286227677547552134909397775745247664773515963363798386403187521428900930577815443673942718233778420888894967241081965470743816378880607440712442215139670982898688864945842662578359842179894813912722004428679200422870320973391638396765203240694790104016341409626629263633211383029765741552706556331049846462803335180861747057639133286603836257110658510711610736819645022374401175198584223627111156187769928575250133209172947769128314093252425130840918340279525217632697520773320145791724038351642961690663563709342166967448291167134500484875131111960161214348934712439636821346110015939431362300604015372884831873971562689989600123395745237282118576671661787788246208973605754675792328910512971744703602099271861965571461190532935604868437522077529901065062041054440437893900380948062466431089229559384627723833680616847796833643050897016190191701932122165501473959905394086053828098668088396668996792200078762557772563343340720177138577589695361923205091370146846474194338899186863453602669756962264909924446563331332151819209050057094518236938315409131053287261109601538377708645753300833386926014645429326125744377430566934488731738658679659054807396920030433660019914053974439973766905628422788308657332963413819909674002624055648202244293871406796097475060432938289609062432471434191287049701581564470145325484497464899242682949826749369920482588188112760084718891706800283877002214036479516520862863385251529839717733393153915147309701566437370180497599260397279986275480320962133682666884971673144965706622343635271045067890895474101042818327997331482788616459720169124706647325642818998859376998992570098750387324319991033729991480753995994337586307309346930306577115947183277388644010010388025058965003050632779907275514654754374945936875669058002712467355163425495649472112681892649573570942738830221715911532592469864363019773231836538919183771564739400595642154195696382605491059676443456631728281743884917583242726205974009709224011170159809444070473288129469745212768845496994043163281622955635740874897203081735645070520893436244239251092518453902714112673585877152122153564319503618846785716578238874334477438694455476805357238386093794025687068716275423588534649435730009920716263950694230016562793438851327915855539418347886724732874656254359399455319865863411229009647465221342947174408311128764309513088596761573328438142736240938393880478002196059686844235394151336372724525209368008629701504037545634740327099118168722567258785543792290366994453300511301579470255351140093821428214855603794694043630866123555843854992783316966972673871691351042594276026501900414193312751473968149224373882994291568427604401893703866131931402456902008055312213267188433520740582203478880600132691097316140534639926811495132781894270932794359400974836822796282151998816075071494362005552847108390174699825592186147968019772094459955506938635961882839002963035968093643666617328744665426977985709550247274606657860764967859021913379074729370358933403519849195967531075681637550903625378767012045303623522929076427625808127797193464181059424374595311023190831944700881976287589312556551944812501901777874084369847760230731116181530594241194885782236077227294048070627757850246528249892642456981394151077388780476833216617587734895629788538169409298073493944218582426905548413399231871360822991912533719715240057501362950150852794345721644560029545563307175230129422872867384215507981207089929260611319532104996539375595949437660635395686470886335182019493185101235652269203527251322320509348470838355363576648467214452060695341041330092162762275050422484285927328110226622903216858065659984096067741564192227899769737087220299101531154479741235148325960247546135421102460456404631766928812303334647183756369157547997850422990088038144734793633413357936258448071573703455632726519153939033993217893479037914159519139323146008193923486360826036315442542833684366695882144518246465926830735155105836472964636527576861292769258531433667070130218869483357353490235541283288277368252600136807786136014606364206455110773910296384135453438580909289938513756904817858125691768799157628767469418552880243090614477060419749372425465799193344653977606848035715396115221947996669768498300773380543012436086923139830686191934823910546138967678629700390315138894063036338574680517371224832665634976401708442673544771921180892438366561013483352180723313668906018598577776604216683636530759281412804245676709576451256544414932560337236969572555026420560155007806985374529682961043261785165865953432655883611904379041587875855993547358128683262445108390203136385174028444541160470375813327857160676360075822486371925850524350271577070179649257588877417942841239083099957347946535800744362437110812925763633758380439295083060239024376875909993179858260056711944717982657759248946869682595360964449998148471850740228240188897713728490912184348878739584447697675440425856808583254490458219764178000042666970441680613602747217603106112269721468103523648206050641006290709931719008612789835358398804625194533644655105759720294624375601624259548050592991954017672832944577818694852923607952270590595146644269784849377847290630218579987971729170592819867478423219643643692952882811888086696476927460702554227067862772890158781233780477174465122872748227286760265668271922596421576954952989878797003248567884696858825381906319281519665138777573086668149872174890628193051640644017467992254907938801875391424466452104490435620631035130857677352704436982843828971468021548880887887740235390089289858660941646032607371747728016888718345936293225169881789587256336325346796318003711726578911900141482735486044762625674480077541651806703204405259733977579460043077536064129447236135083095130289794695648716345169786943994603854282353260384819602294445332464477426874406093803915748201487369596487226741418285971467522314319303612536578694279014104864191994884614680687323458982352945316407521488249634159911676877565156604159939734044211139499026816706892389357224453485011398587557978712529713697776787919389559449611124283486418816645300990157009216535108272695688787362734402548576076547635894294547477242957385274566290717207955448349311994308722478400526455085601217385458062455828144979023997336079056540394646725452632770658775866511188807777299621476129925318585340212363519277818418595857126707882736819037617377763203987683270168794016669447985134812928943113760824514230877187236996520775179792832514483974213381090525840484855266663162589260539412910004375027980984926121567858122835163190444519735499573738252757150113776688480237881592762222697479515304671616636903167836484424093188974542659829061778670047018002048928898519379238803214443449224091245337668438414059484715604792708663965920879537901207117584036795467062240536884187912750824423463350041298151922588591972084906635160803824566377416190705966830327763846815593742503843314798149313128756295693301729260779242441113484585060203648999350999213705657788743961216969867121230267259648682838046572001685804239031583035696360969683932545339198289959840051591610532810017496016791458019391718351821945827525405721553950044245811133704326495056454560049028136013181880254416868322705645295906752323349836581340306439919443230192331294063842800918977937184121593074416280582383541945698143454224056440752584480313154185305373249204828526584853322259623902425199143364765410803492988775833654245212576533180196728986873961987828461415140727020937262425637483165992187339887248701353119945662195040739259908413434393311288190436462223423579212553775228015797270588778307628477725310428298160470577218242882536136336755688670787254512398204687335839752676778651294912020996385027519858298082548840172537143295817136993848504181533741590422339259720294477447365658890985923255418233047414726539278950624913689349137291749613659801715642790325325679034343730431843455919860689929757124455798764287437818155305289128352125707012849695535026655000092886403738627782280201523392771281356128236775210978216542404583878977537649879641177452729105188449032303169806994970962648772153834550754624648796713662246129956701129207395212993675387138549090639257618600272603774558350396960621616274678450455533795992058298263955243311575790589322097114434765072742489975161028547025014795449743637936787615441105387232088291542448443780438032066118145097610714574461661098949631050946931262375783599481808484949227673652889380477146038794101282390191551646956799481879849680217922578848741110167106037163760486905288886569861875316318187803210971145037588589737993061157173744418684031866858624114799995381278071928654117282535550802907614529190154779477850139629767146432021010545293461380037933745524531495081193676505191282378075223560671228186265621062192807917361790816213323128926756673779776632228283050324111871103675611314601777525710782069050282057987644617053412419804278141639270865528044591742621869658901720222987722583226657591473692813786959265509658836279839282257271582689871336451694856169805366348847319610958145188632441362203747809553092830642807796421577591269752067893897513765650462715999481305691235830226155571046697643591766125075822782656280593145042875598099439978933505652836080049528117595324151360745879457751298503765638234436158389474676748162835033858871519818337674159070109973969330753450033028074781829436338684277160805156330786078005510779838481166380237502269733607381045792101746543853666563256390531582753775880806686321132034425472428855396821145591746267674065547132504876247171379249535855509688751426778719942537485614560279639813314061802864412235751552835038009488274914496764736499512262197814728487849909904166651218533134955077995115766236670528847687485963893710405354739227582763842219099969298923898276357899921026118129263844759831674652911404690991705388085132257371341474156095108585726988469350920123213417948284992639185660193741206815169220775105742875558833338673762623073906954870980022811793905489127612489498637941422509376950992888290083295317489125023788176170451199950226218117530007174583597562365787277623293725958070688295466022305164851576967992334433678933120875972505824040980392739290547079955991183956933841158902040765451026013796128833433770809726170655405985057255518907259289662212077531980014680495905356067511953578310079177949735663709814856170032515598737443109321639237701823343173114493265141629763653392430225474103527165263538496581855099595307150292645396481296764598201555482816393855575252559857049438858600651002218421563637631695822408692604573741716734745695009364789999388680884106159350805450343336921658205439621926432349948922967530938767432786901469052360744927126722919707586278051118692036676017680614125298476649839259007763570242907183664782484199830175517724383725411530482117393330533416322625441445915732366143671605659842683079586697830611225459733118252206984581718186393157571173153338490855596232834615135326828899152239289388787767908826996708934515515231390097497159936719664940944627136725489376506035371852788526695321660154472800576925958008004246003912508345105569875439225438258691277437844478608601252894727827848521492227536092512876846200329312203470876535314041934589006419218294103726572934812073423329471808723992372456361192714646961155327920711599089128867865429957322145469549229940149242848740132836686395319737320387498204215125128956188053157850139108043819057224855047526301647309625558925343604882177551688207801211632797797186129826416742805357325948697963950628919174834544649011090467424078019671687696258044286990718233530298507298865360635951925702425251091992174620527353655165655741238587969997105092314790588042900972706357858674541819761172103652627491211664154322783184931482419484544019537181299013304315557785699157925819031529409884209481313044766155038549866203931592707569262803957854452241444328924407377785164724932858780548864382872612411526119127609201937010658366072122303519999261826206801119139101559482454870416992102719536284600517740099227694935881880905697996318013430129979811346288810544740674968432803051975953334941105414242372834699955518755405811558787717442966279717254408154862347390463474192420712535086769363778934263653304137706294126508493472625728913390451099143821482629942084749219312629958982355120955640536531595984739856645621752192116253658757304396587504527455538755270313669360618175191048210622652167514249272489298827981523500930778536735609250538303180027317500485719826235401057296982292402449020302830486777124951520396738248314478412393747544385360000164807452072967556793927388303508436637506367019907850355968233716333991115712406510398219438687384225612512739997961831448390425154649298652427524226376339050468638970088027904658633295768405178727221339721814166978661742492240098887822157142110328070025621673719247281307803686998455565945538719395558754961282791214406844371667290605590252210010465174889090397691295617878608230010471401676676112627366440698247579309794148258877953247439807605706257169727546546708036152205916944712270879100592877593483231049872805163587651686836579832939188989526283838391390830108113715726426162111126465259114854406540444469324436432734857762968901126089011538843943814955034525826956566988160731090275929080694843611907893022427637848738887304593724256234604413884740679648165518045105771499048948961414498019402222773557680328415335660633236116479576425357505916415184244818926537063309219166829974465543533119874863523629911159396964121175033392393347244225221695981051266900079755065739994571342174753463540143465080141184218345429330500178036389235430015528949450607380505526317983528971398731328056074488913671840026814314338379457502688271915553970127496055324842839533165856124760092354279066421029349553287042599968317946361879448139810858268203291455188431434667775360128334004553497456243088516249674028988179777112596121516217051679640011434138601726724599405008978099030685353280757747728228924936603910004990832709950160875410491892151153099720280981858588592940606806836441678374816251358496856017350964999804929876831940935592139868974273104939532849687505243428481959888583585055084522607487231261869256496137541353537836510599016158903634467131082542158620064404140073908562432013841025424914387128002377878952933782319807164749661349270956182367188711925021224199297136446069170250098862975750691543334069557670480748147270982325456065896383015195356423253401495419483065593452559352043380143988626925627174017402773595014824438569393392319306992594027030125831922843187848321461366281596625574627639518217769788147375459658969526899329901535787074753106667935741055634388103744690458048063539109928396788754477882523901927710475646624084942545068579984148561290428594640318252982831998617358340206575848509155566408177070386527995127239594848841455031733917759604250640807699612460227504854003192395348971213832927209598548089093371911714327051626792315944505462443115007121840778453232536872812128769051493638943272617377140755572749347159022336112008013802253051521098196924881962463641670668210735394355715106373650839882789770473398283947957448898207915790382343689143454643681747540865490985301013852725163898210668481480123841695623764199893898203624866029268608959590472057895222864895254045578634516408683228962329624991056870331632838334530034444799884939338258671652967070456809472179464767453957542114404783220304826865799860505990276465170222973878487685067293087050031764986950066710780284916265382338618378264572938579174611232674020288398128328773821785601136574261820638969077345540275467394414311698379946620298321678016431952999819563359657371244585133703682075645162215813764945344904016939118416543435113829084356697416992363437959410862402032419017905825930382573053589222225201837351878616511362352428691977717001093841777756564379094930568900957081596658104981606258760374958597887807944823741852475396733293219855050466192442746569607395802562552058086382635350887847787398514012673572883832951562213869436644982207003239579064661163606474230143124998739884443634314387956141245134079213007207355443650282032442097449994326454832498573352232928528830358743831882989702060600126699554584510964982771436147888640911374146736576177300882743314795963084053191738341364756616713853498259263064396585403491254319391642109700007532466511420135196752133286587843117093296715213644252239232706451052079209262680575125676154177107559230484338837424368901711691434388112755717673914403397899426639547125886787549219538224592427936260182898675672327775996414262719211165342643268519215120718682783462974028009928590571844363271386716409489883543408128168029094801182111564339050926450757406687046709943431571962900162970819947410395129738738220054755422536402564186525208764160310354853948546019296370054870912743098443321199437543807164283282121096846411905334172106231112335528196821534022109261725223440112906708513198001965767363869579025958951765847005369623449054646029495312786498310181302612290719659604151171778475241480162569252148429255439831361147792494755043994491330627560384987051396989550207124658359779752104603075440172400166288218505710814128943993247456159097322853714782849339666733833163308110532402458946737839232230467696939377436506300782071938690614998748768310610611698620181577886069269938224462855649998223239778791326395777319214996286188952448570573907218980134875372754964704954142153780951004968992611906113102737965378867086359049236743192951719227255753045695966515685479629126568301732358264616123143009301021105145436449749734416795585417714583504712740475158021398446024401969288980962304632313154464156967512280217912978885863710304906338589113059317108660783135862383518336532807617766382361152685009591680605830196364623991260149919292784342743084424778825773693521087017264323822456426743848559751692833087734884641148494936551485787814961029587539474872956980169068496647309962290551514506858038047047539747641041736876946666444747892781088133174856138248624574229494864109606908090661103769024783614879835661787602754400130038821814530042172167622210629460556507307690571250626594312231941968210096330919681749738043937805832806682343648391552652610072182258206031473780994521417504872980326141509424773479195857813322204719977506570281423843789523769624857762921170785297754705450281686820794563799043900687223994675297927844142464207484814882000004843507563858127717447205660218356174060192521341103101995789009360400824778762180700283839682843228535211503322404809415312671651062873116398991507788595303894712716287854338392577829126697652040793854221861450434661367020201450261421889605405220505958716680079515362899193765353827268293455458489515196837436302707180908287874036782481262556961195917772459186871933000812061650810043515986450840521269134209340353329703580850030713577345207025646170714777050254637688218544019241133139217023572791171167347948703361045131892844283443888980761392568482859107923243213526806734809777022591417049804668444522513371114221971551512991820691268868415358771528175725475647311248231368415881546033273077591751009153404372428548821236453541032992435227206269771046137826190378546035267426059903601784435993571407072330154829744970310303699446642778680150156506420279382956822033559682010418475134865187697019979807516397558793291449152530302964824844278218067139420904670550549236658720245688767765733277355751816788441399017766370868527541223545464084674844171007577795882017137330921810396112064343024769122775791324779604223443341596735294653711518869714540729224502251270926754982667223022343687013565258890796733227130814928092502928844024506137157689984277368699187351509465016508062736027989518817411239367680217352033257036143169595658318990037167609347209475641577089949000793302150454754344861560896059962488744722953895302272001939150883057287928471426784852006404310970444017969825342061840915802100095430183280283141091327623581661365163086384694976232420278645409800084396051915700149136472231621261178100375723921635148261690973566878352401370764173499908169078360709464165244140048139464046060506852859616343384322470661126996211973807688890374935019321840045051804422171603044195519142648679112399359589148283488937553270554156924426407996023539632454376356623493168873503300859950946692671500798795062862209595442431470257865345841744150639391699444787423495862079339982630615271928501022830462052415070904933324976663431862867984179687531772836840652126332539151441656323464994112125759511135598823663444142853041729985863047584227979440238241536586998027401578112712446755040799833927093802266978305943907440776639245520972796882113101689630724076968374981666717602589038210312433565990181662558426941451425898039698641865040163967653330819401652526497270905414191086929083511830960812752362397492861866459345707289884373565526478676193188923648200307979990597811741141115908207018139508448391387556222439308421231344145868100246664252155183692556225381728800872019947822419999866447295945306965431468684162228436427252240206502522641377559328489355129174888582763825839808014606121349265655510215705811364307772030095374170287255317909397272365246488794109972509668288937213919435531269223088855415749153804358249984847243219183114926346862727363086738722444896365649713635991163750986138405494387202741669147906016475799644387346652824169085126001212376958882588682377487906338476524032143190500276219457445552167632992588023315983354904190863923205706068654888936817354860830889645586783009770977348544904034332171648182789785142501036803744068567997739673219826315295479240523738937477185596527904887531188601777113229353616569853098135763522017773251673362910368280732839745378897174049549347635331267619636475617104656666929200645837728246741177565708802719144090890737911492060782236859939380253382246438226479745596368245724799758492870271329966410730318523595051239626885958253473649212466728475934678464331620435892505992196301896119574542007032648185705185806086999337657950761856111857134990897874352826313623862607948046391954612713761391003981445929483503887803976933356619004921326982878375176108978535962064119208553684947200407547893165543364204411315461961753231895075496979818785371881848199156152219745526814304818569815433158701923095915561719419205146694225727197756402730997755325296479966928383241511362255203089246378719959347206745894867017509722355562760969232346381009280984560900998950228639742088354497629325851433552671830797940271611805986270651716455505557479999314028864771190861384308396404720149866795679282704170610460687693613134448342221713574216887677315243614458159468754557900926231213047548853357672107561982905756643537644073204006859982831297420764412213583453690377168703179689647301139563812119163218651215563873267804283636440705344457303861124631212969691110300739647650437231556682138765927312021056848481747387843148493090346183321248773989628261135661584744106515234198881186626910256799850080806027708639660813859540675808652260400773813482300364323759840154656169584474204100455860260461795403511455319927433237235289605303656047520081998611897260699400625479331970084842055837758920442875782775707424611581472522307067076400976522737593321624330286966103357743620698533984330087174411575439617571528083058700908212726425502475553897224292857027345294038507025050220816865187341193479165049456938978555563725425437657331725489539216429345466474279399619327817003502506174066962050103948062491503910208101859690880666211572719206794026068605795464069724223565843775814903803459695366518133932902755576839815925197012841324240754867603376566025081986121047614842739362939488094283031562604149789842736314596467689893992237156440599241172950869192052242534409825793515279795580899289256245588355582085449491799455757980532799966376801938953953830599141923719580410323737953095989388923798786082326721770428079900107348460055903244626581707834309503617757227570482987899746274355352373188176035256487407973610560177693541785259501652062040706459743153050983716424245114378527397963920723981581400786494778918865460058146460098568262452626865488120160446898110297500574307532569010497301068661726097857084909020658890151302241846956450346184826823330310307569843619322818891717325961535275747183483845473404253191634308500410433187650774206505778590980584789265715247017473218807269290826006613926667767616080679627394340946465889617208032178174137796327112959854508134605450701064648784941303011751780401293306146855741035328805991734936907302765599626508523742374783260777620366925790506883122765149282720554723440846903227745056948782407418450933141028379007659426877017513035497172518214519401565374562641598493792001733188209039859232043127821573527341750271826681739296414074210655963529913657300264426610775370015757901339934910680713505168053674451399893252373395303958488345017317671598118883401903300602621323646284519937524448944341285225654352046889600150475528436854527024706414222041165974106441406066787306781303743596485354581368032409108860253815217246906928747319337325794393687569678405029187050293197594044048075459349322666872404809904953535118585476858094301565225395929377157069108077167958537130793487011323264561603409756596998607896610040596535415565215512099973767530481793575017984768119281804992560383899237804125474599042895456485696128575245308100781808135860040175950760831134544447491383410578137856548919362240126861267120229914876019589505416821572347736129586372427478063533546442619671908664825374033985340880993378141502426393238392536300259720803694728221969322022720872383948451376336263079731204475419019426829263743775594265405232321758836376118317868330937469135801862024081176543461939807396604562996637438753013064990315618681710906130579104456966829649245477277395787900876958295548141479695735733797994776569448624576583728407194436663247067303473610838292636492043511408843801969334963600271035439101418627613276183263643381317136845612557993222757782762602915985707008111892919171923633989220099514984368677917920155691224005818199577434905780279895481080309835343781015961977150371377654144006618371663380507403050910422416720175465650455703114222952803082341195041010182316301854504059967092365412064470309173647302033887204850961802355199946514101876534791039933847118441398969208769703182026408714964174617136111826024500281485281266844867429856112998951970873472406132207353860880012698184843155074461929822872972227420300688200022734920454027578551101307897657020697382514279556260991349068093689208432144769446616740729790276577598695526122029834528934479459306807353413473210328561363359668602185356705382491155897133839381555237065590730619525328005196294965631234886371461117820126497363933843102337971171299405838694641238243138633956490508637783548836235388573338911189089484270657491563005724547413624729518372625674780314027268371692542287270827747430999977141304877665363168965191565866898167555310460230646568803563876935914323885206066546902793207232434809711166993108279320288734086277848341664920018069375740298591037363694936216609581148777174851744146520810699573917654129079632771867868564360240669249390293328518647761038360764674054019062670637997983925178726416927330373226068074317621199581144527887035953628347237891717502456853066679477868779818105221145484194596844550717681258681294806550133110859402409076740422960623611575107246147876123372537925737754082500677768568290184871732271384033176916527500427235369364545288058956986299245122822154150742318913427916186053738573757247527241815424454807815972666348169294612949966573192987116153258071798665298150184771227780127172472546347279345610634594934159785168527232837567537696827330199048783398862904666716613148614435316464021526639133160839663913166165315649621332045552397749987269980447842076342900844444717548255557124255492873737407449684727103703917119452817502672479302251291283407059882487301977622431333729560155941649037895692382221441580316413022325657644578543122172465121567102088741801621748505689858835937315375353037733903214922736720282537505817301049398273097085941435473600168565689939685473490903866201191222104026603551513541212533501430116204023978375545431146767798612663578935906400235537800781550820428554807899918298119974936323994304687876427812255087851044623300537864991956116018782308041398169494229457007199932767253674787504472222941377189773024611553869627865901356351843883325398165998013868147996229663736821531580200949522280244528947395328733763832492645082433317976673286222073318737184848466689074385789798853806361377676545583351352339242036934322178969295016808164577271983941140348135236194574649864666819029171726933846948992196631187297906483413222494811029044391246239904081634087036216415348327103326659298902345459020573727867711915315627056196855163702410137745474879254664034774255627028947779691314353175158219484541247738701295816845261748893119558729419069070201498112475911026657132767684075576192849917811658631343265949707738676068996537727504833336745361095793959602798245442276781388362246866130502938695105026105580157220297008996309099191565346209622760122238399744829069083368419474075851837209651042938579513571337198885062011743861271423510789437178348778125448795948350662251163784035624758212627990340010821374444973179897605914170961604401540167296429993214970899436561601098433868549846974099836611742684850495257764753359711080627387706742549391444730667756865997474297009181158479510015906595652615310323658476671008699533482832376556338947124796021300965488656305725697360231258269133233873144105223212019887065486193829377296537834410638689842781344761913283563836467871120045371842153747716434299237531478159105534840963658746188489125764037728158897451393114923941343673630901998092308197255981186585095405204709643033821659856097706859738811496861956005037244474928699084287426022067048911628433251210026532279628436694347635177843706805765652471675772322919792013450416603678822441716383682500172768346585648656501269244123370111766611906502795505266685132227034425990329966371573166778669139739090617538808849706311941084762512302054328645650579596260061560855280247936413649619077842490348667962576574792211839332422694768662928781313136526268632912619304555750482139130703610999402925426811361241485411396077985508003027492031734747454841599873440551321003294112231255394726361638927198224901931735182093069883886068983331779052926617753493346110268197929127500436274081451602964884542943906721711607192917292430467071499871330505428106222353603700280832372296717652155210718645453311603178374791477674087444939297944367091062118780259313132358892733516950268466180451511940704147962464566342869182051956080625551177396787526390181459302626496730562431152429661340355199396186911237157201865193245003467461469927259895686567089260381033852509997256146516856524906345873051302409461955088361864417793055856281834445281533841549264089834882911913358751182866324271379706270938516663110934284911088038237078395927750146033193474872682352758111954022426285646888436869222721628103165247911656040586998987758016807412517517609152616890721058676101325686528130712386139616864358603469130452997270799933050554699292185699569001675975381671219966648276844051686075497327311040958230868144119556450880312765500935117444736717288894645349320041136907147241946812620075880932034280600027718391019791415590549781473577145864808803622228405759333109330684973312217792656445002441552360114914365162733523869711138718500459109011277115770410350182819627938028140037722798022159227672571509401637152161205243594994645606762011422702322839404237676307527314669875269292451202719589807328809717351490439230498066823474255292343994002062193982538635295338477655053781169782788830676747066136188217644331892537788302052608113744097511035709142790784031779832357498305011717739878008572772495279900746507257319159827395683587266035589892399757164166449187872237331258298306070807138714237299066709580486629285536613505299863256764358950780459364597541743843050449922768564952936161034474901674285167903712352031973117874855377772254156855073707865424169358037684465657444300267461657560576163114569065691358487636360757370602408041447774901821483647461422755043903175295169050695371813714451447253839310874774607452222284724660244991293084970931896386260392065988525941869716893940055279433396024227167858793515310011442263021272597929266620665017394885464281694473191784875475617608580403543787422838201465050897974459058679348755862599017606986315227556336444446078953313043165628165684246930950925504385429127130660671216416558851811666908875551731077999785813346540362250642167597498671105171515865139809018684252001504898585962504434594332706237337300981634856809130060472135864051397135812832159451773641736908889394650932368265421817721484552744602011238421357022813031986942984308610797475538869847846109198965038497991622255719467025764913689620605079292878582286553797859932523770144695032256802196738603582873657798383897992825549605359756959585511017928297184858170459182550482447032586355759623829790911215143937002094585714041337001722127009394009505659812014686915753666180689954687751345969253830967110913483853785009881269503618494761217026279132819202096188896940473069464047534524069604388170097577983442425463956777117964547376313719801228045690131831304216149576923589340228726801089388892429863166554656218544641625435121368795864385668395247811157302019746508378154267900401070075471330151444790151814789277927750383024856402649280388083526796794078604553819235491621080433251197278046869231287704681981405961140959962864831517023677921726973454505936435987995727546037937189167840256224672625955452570927602563663403447229409321513939690850937401844513745972984956224142240198356909295183143939141856032027384205630269268482441115329804539492027118926878043579656165269883479363180013910148004847963608318726537396575574294158050672592688004226361123668143974730926147801256195710007199168969142637437677770003727089571878920073014031991378008601859389512494521136670809141409013762751057906386397852668338190248436575536090899326525337601575026878207068776559990145595547566451848148138260883278486713564406989821930823586775955088083058990608582176244438210937325142240881986145333062072735158155507655489209751206784349424110445048734770793647404374632377616600684933498468328171781044000721515193840920130466305062136759577644362411120792419870773775128572343385377861484351891069660858627834412238629464205830647717170748315214863389091453327350040128946011201396080030543828294197307461645766567880723309985943788451968631399368359763434366170358154735459970386172390777182474633297707637127053281637316081097203044483217266792124411393311624836329261033693675839242983694668433311662448597055154334183123659480696827600678879862224571545690755897147596624057659317370077308838299387844463441085142913186919916590609614528834967761573913218988418457654380832030719864199692309507829049422626209520094762148406570726074891225878126553144834396950960176088686124552754526213165804590016823282939726794268854808408098690303474798936435327057687070299098358358151847403483277203626553415391330522130889948822736930587215457897312156435997534297521029780334349258860111497253216236724449819962339743966089023626993844748253435939384283774399942074165809059934369658251291752293516654378135246503694390903845810641718388008622523842845751340906318024206223022932203639431028003454323590506351797137356847803153829319978305855144444154985272165954929368927786400025048310437717924292495371306233295351201167537806871902898233522756658672980239682666398235752614311160168229365531280225009439429918982046217637663417539126477643576045322832472355808827372920513369775640590433749775390850867735333459774487721069499700616485643960171079257680225958774884968139342865462578064129138223282682049910989126807120641550439921095297651578716667164607865208116406032328391438715273498046705085115536985643620437088844272313159225656184695026364088250532492396385012816989913826393613689874385855318457703034849985779007394707048114422098061512456748607298413534977151992733311954329130133692213025705138655085047748369931056778037459211269247053321652347140734067356903191429958444362011230770203843533484472863183900267631071471901767748348133515604530175776064281399714591923921985483198782522187624900734995232970711444608602101850897372380791135356879995697513173325414713114029441743870174081630872619570347034328092189511625931518347046718275094422311605164981032594199431336980020386556551318077468450636775330898698922352477925296448218584224831615789776453553821912530962990981033330641399203919343117611961552798968820224993742408525384744437632300990123792203208574553515573498687754777801940760447894296046720192342158579346711810444442322699617549534799745098921822857372416739042237225885370626843780670095940405425256876951797763258595320361996327972540379274232768373565742923281082150931471580442525205912751050393124950868151295804283428686919305960393356836967052756815537493667447420737951714564721749806783173721636326842754770753376677491362658963493694070431698753476851314279786110754597017309497784483888955748079843841438512320490790181260066919411448640317045062196057548162721869308651857232822512461276083341675570448264778135369508460250221081459681117080509450186631181830600906919569360661956069156018327267998836207369980166807143730488690481177177658073552519942345737100123212185749618783494978968912406786577391187927919442572145749897920342548314823804003789170925616788537726970622607252658112139483587981627659371331399496381800157526049453208879047737907048668330607205997120433342344445712055584501116340856036373471496294147410495593497636196401564622430887647144963904547103349579204958819866395434134634009780551631233701626676765287229531685463010534951334937149483325734961822871363209020425656683363067009133794425532176169463233321597300181375210616620474290302224262192796451588757269285791094538263318258690771891164212716225180174707541304119577086922376057312006647897146042389370294006923675682220905831727832536949851230974171856307680931371460908633202691458302039449319922381649190111410584003570464930274026921020460134626212366007274448208551911740382198744780929801103053185063304397411845205101230880133879692480341822511936455898380192045759441861447110880215882349257046905556488320857070027162691938907976993054237023341670705754344705404642358788204639075400381255998631651382525695182907993646200046411850315762469216258352387042594143479930443659727461593987400422691768782025363889075262336121145991755517577726696835367924164502611479507505060319355075788218989340514904683930639378423782999749857079777799118913145137187150777143909795837740240679187604409405526093418942047928464222549493739992383358734707175283203258296722188197451525755645573014301324804078154630680351878161017635464291582124853247974656636477943927100657526179616015933484394396683069810446418030542111011167930507658734970644939644311888736564972621325816420699071789047109862474485314566250563883023618664638268694715559718333914859830382367417393584953143340012558458958626618391613046069194970566558452793562265745906838103291404365251889633031765542027134321284458732935737860425849369038687553203863164692887345939981872840122426621903111771187046107623008978401239116851214681273531455273008008907865694220658898627456226062903901216385271414834207523122274401110188215709911902810917313897942676599712460334960310904708543465546606002635819541450284522382006738586002018848943894490911038444787913173010117598806795849864543800442649156873093676670152284710685120193794647181676265078399270314895018372496564923802827584701202144949039909825693686893224861948431321404799124911075570518051903604760199465074196527793946908972265153894427465138798793198941119762490689498271116140297340563881828277791743769851500785011494435429301725979754604275030125723829599477379910224276865565917354621742773777916031958539662885940980322821713354409508222638794665487204862046473447681533149293267889021334708637386630171008372522589419902155200972777919819879021951684367611985521845630745489229618306186402138127943289254239822140259196741265302653922341540951248746981442130956123595556876601073617800900459501676588713180844265882874155785282320945185734894750843711841851037001396267561295212011697990583015585343139876865494139764025378690955144390431754278095669388105381057766685644001118289932571003115701564358076703372244878039162124168443811398714161911583465954219440405150180832691352974968491288508781747305141080075171219878825027931204400428463340379821417075832782098977912753030178375527786057206826493452465612881125023431069545457416634770262812177520421224295956766985769886401549063472246959379969514576002345255564551165534573785222745279809573758371226535184967063010304156829856834053161727637811033373452168071466870428081822158125286226613539845136085269904778944186727538937364192025600927310770244304772458981075235628763081338036985912395642077065875073058611432593683956081169675080012983945705410957260504691289897116962207617060149151436302348963757732652701977229870810006254112387758579792927952599162896242840938153222468995163206855010042409282819587578234189482354448780502966078719055243206036133462225478480845780198843928223259369552230234813354605981194402917471675956299470180925710991439978468016747144280056529176453904895165087541470658896768326530780663217315114682450382360331889524079046965482922473431190147688156105039317243647193253344110356945821917698438094059841712657404964953264405336167989632913699027234608341565154687187138021346489971332537208166214127852998799433322686916035811709373887227127879624484684362685882022944020931300625857614668133866685624381745795753565072311771988447530514521097902545018520680118943537263865759379475304884796880494691356594313997147290783393824452187919109835430454996002847565615624359169058084173499750631617168178987734703262441144326232875151006860383955815907797387999458389288288561622909824367563515538051810149864043206804776608896384076816975350416090993175856736725800206088583755569262777727608365073694458359183012648429644826607243831700196676708349157068857268139739466266431847602225618412538020364377982419250163119328197326029497167812575355315117926772449586432945734632454713026294337607704155817908076400346626905429965723673530193597462184974250862228144050198763912936375990681837220492170125474876763999968758230156595779227811083200854585428830815641127713112157254345328455101396902971404999785462251923247168475022042155618224962034979029184898295636048877682725158778299118771367666908764168036530525435832728061043872451483219607657285697255291180042968435953107753139134767422222956510257870142732228570441270689238256227445475161196434787879093530267231507951333400374934473130432183842959935628466799536994071559311753082844929119307893007478020329787667965320664293365946163538517253308848604713058460331651750316813809140303181466886678841084037913510426116640892526654395105676714038918915607816530525563627456437091658372937517656755665605144020177265898279072645003775250833034060658069074176822725711286101454052919629440422622273246192799647619750214091623652000231679880506928800328463816027724291267857074775065289346414779799822500480156285568001240860889195317450699047255210688526690824931311621469247888702389645797288722360455004141802674201023986222305425886813754825548095792350552185386102576097994729809234768555053858886350240385888489293463726359432702887582373288603890586143594034140466998833157192193234865384164190058169070652126809012074289800126308228031762506813827127184815838565845209167340618226875881092698197672807034596884471841320780242829493039324099583594880460867913779605860393862552692366489898840149859873623094128921445727529765745119896183522032961783323705235745662271612359457934054978253879524574215784370704136489751272094919418330788043551694991483521886814978425093152410130959123746441976661789320331235930713961107518983751218837045256071057361812063175290283130307417630284118613944891771324613664324792438129905286116718355637188170119243454119515720512715821991997918562629449533215771803153127416591505401549572849550061870490775946818188813446726659056684178842887108425541660719844974717555083099166415903345672499113978068053933055452286686858579027367063133669835326769685324103160688101989399010689969432545952824344073863588027411868687236945102744648773725568827116823033838748377463149728495590303877914152483282493170463234721253866979523300757377933318035811541485098212249993938369846569003276479631990366365448447873662380434611688401232427425393450243571265213573228845613346778850566040406730121977084298925635312084083954977054028273966810696240769560768698198023826692703093597929174045988863361671855048611351486804172020283085668353460224904145600350709260901576065985131705640381778592310075519131392062286839057424833013028889647068225731601570149168521147900452756674080288538282307376444420225634191976224605076013892541629027061624848487881106139772536022048484665952450718805729710492350475365735588614372924512061395244187316536241745768451294675872134275553256608111489252690339500107361629222456213265563330890092046166183833239916174796100751125746373518799897122118049488888442847926579328258762252887999145856025995298775666700491365006338437442732661931174230890634904772746205158598117730783654844709389164279751064029329771205683058333141954727245747796946986480863112004423862286170955242100473268727773492309351486355888440005522457759089967544035832911163326238804610400717258302416822100492231514826451796957219749957277906402290998296981281508026395604232579885936689538850885612335461212789965260845110624734214465352585454138378585121512942707997916924432596615644500554553451315588132508191250184829147985862688147538185715390341966251343246170220255479665324904097940209553783236453697891504666405752056263999911985541696182845597576106513200634587746436283854781187855093149407212981135824228328083034501720194011178300015529041223657669141532480490692601308053124072222617510393775100477138138375400413132842822358198991509625708220636220001599062714433969616743204927592860730181998229330724917859847017701925439632022634548464270995846585019990543229301216835592919643022157881372475675532432433800284583280180229861112786539021583141952392239619522658135181832581731835378770031103292136014011598059254170757574062756023704120367048317506635219138114096812979406116638071745178150877414567106103544893384702289579569738686114092530769347809430149474768857029664596752269117133644185963748125527985504547625012968329160142359865059619367309866993416772386094339788432007313376937912571640760185384456201848427361827675649475466587227879938205955376451314908157155752948913570881031414109628714230580105762568109707682506943878998570842239035102112938978597734329215373335460054890718554566765312098969614542246867271259017363744158349692638155435920829912412939415997747988123041874783637503078252723456047752121108116129207893139231313551845997877223168235030004466275921130420656384006337444966700416945903868471379014537457373122868337817931612842650629959559565214440169720253783853591729343999080255155057414082448576038930835323101982868529210214168099017287405621385579822580564843776112997120484360777917981210896177707417674811660373703469831087825811671121802391210882311264561218154390687120660269810506705108473374398578531319294235995463474650667659962820634255330766453614936343469596785193249205029989070150684435173444233035352537369973579371071539576355920671323691711497660051919820104531305797335315833033724985622820716894291337021912243684683948825444952752337666648171652091442810973893821417896973779234192298642734549132940267350010900824681202255644839224275132433405941746418920285337445557884875853438658989912582810559768448216043854978945292455558253092458783731218026654342368529978443243950487886195943289170931415941022955129062424791482401021380359819924257645741943760122501309721442235189216414870961441384641993407472711693325532723829108703614478604363423247063414841237894171796920923767004942272179061566030073924006425756977504785091294405755026517117016252712493989106831559527653113880796041938779074339735426033522151966740340889872213763719414841004974734648874521254962586896684889952431800406520983902149496484886775675348104445927570720957354023390827838255680801204644107715479104032766802209245720241148810947627372467243233397768655444979013885521536327554698596867586086983597930013845138047279549647315430853130263958125625980801299194956232116047508023910420387250631285588556670647310679723593620692119655564163121088748243261299755467158047506136920026532344367808880287967520470888471283290684821648854562596165352868687465868309923190859853279816033944686646819437860918083379942553148665171458339589545914220333971793952179221004101346537895832967789320755756250872253351128366358934699834050213933963861101642749983415681211598869328409197394955401227873667088253601305131133517720387637152018532254179380085755640129274353449853050818610811801485229925045632461061152261449959977587200057158689694490966070059219520293522751247188657069590126910935330705339087024091028744368867932278499387892798817740271625545585927870513318358953064075986542878197169412341525192504375078841940885544874796917935335404659062473743983163004262456689400753006850748979367563642306313790415971890054538076485750185122309315492392762591551643151680928083140900607363851492547302709028014089046142044081516540038025722200382943999554471728764491138679545878360107830293227171377475818009141493639542227550180029949442095151315540283561195973187259765754807041410428152864285692741182192523822911447408129661927486925917693632367474532951759514557116733628030364347297329623898307400969446498422910074384177143645826160119476994093022205510184591429631481450232640010234593049252921486686478473301092766590174208943861806391250350837814821308391942486654669326246255697813680013367908540145136693799086460998280627627496039300199083747623996794236627254911296716132745889584057096552918158071708759205228604320561133519084900440199767533082610412271907800378170778254875421764015127061837638353832460682760219129996447022432163684380793881219628870320065788926500541397737134258570085846932731338726291027962969291562042507225347593305133649512660221550208369639289216318697536126353472908540607147376115872681785974177439951117908882693116816893403221871374808707305044702223588946714416353621092135062610495771786999399473940439202308665712612953557803244729473719171359096133916247675316210458032160709552038435255033076041995537698960682534674645314976002738026054403102066714426552575429009274854834307059085179502027339438921210773354748457340736045430710327988986354383377292318377328387409135470970534410520619005745781783125445595118455111464367152375186312478199482207997504152540192269840138994410626711901385294112211984369543525098479626255001393228183515277811824074271802832767472944428420059575382452328080190110571539489374274125473206965745121392397292511170171126904064669460412373496857240204233060165181854952557216852448487023723609331410156527102073387949345609662877556249411424586896117015016586461655062546387325771664586294989416276499713425023339146439215131070883780689832881627491185482259830127302871448881300982785774591097483862225650579116182821344573262802918019085701321280024600511726683078588019962157536546329041387750270748588007002998789363011577011586945685147332581727557615165817330261285747098333893718703757779200928408025528221595207202613465653107290222914835717640650876965318264467606232709930515638167095304408357966466627681717264421901883894154179963010505714150176332666861124724707196215068519125807312984452020100982561862967510069906081603885531958559627477233128628764585322612807461241782544064000291239110389944286243148758858033001559048358802219198353623207047409450340241877484969823054488821651415498133011934329165544977357827618285836881732061643797795009008448313829700152665968361022698194392229874522938876234538577084281931818801060471422232305215212108078515432012169168715923350037357683701197751479916038774231660365137150086901329642924413350569222386347931414784305489976343476501422167694190572037662466346638800972464054161804021204398082884447740325653777051776704676231431153818311649194925828480173447457420090209617017552613003412877353323960538396423467251986360879503753279552034852709091567752950070420905989746851267034299109550539276539214961974754182229956474268666258297925383859034937365872328694903041895952917716489397120006098259647450013446195629300955301526967765664427789978157825058471191304265704962375867265016253648365668486934558018531680701003251564296314028226720366389092485439218390251418776015022923158624684504145693089928490466447141773915776828153456454852969811855268316533249920625966999123030994861518613986178263932862889557343666575674940667562124558839787015771169174358369288532235782078754299012049605299805803897000790632446109098415909099151318239081791606038154628275544071139306567891319657683269746771280644427077242025823040780776296712755345112598457881458818333795979972313483773745719349998988922717353737331748113968719233456403792126676626553431585067425419852411386640971011154703418552523424127577215004400218984440063894493274503165891873211768918014001919098243211107225476230003378109542940323946863234310255715390521069457568258266354071555654709095040523251777137727963793576205547669792357286100598987188920740774892927825696242283508175075903016918110210400484710870074320358775650578794201575322860842260319358537745590782912946259750078308415697843991383073180395176384248983124319943750057293716485689950362041404438552162682017286733912867134988828656248078577393393597462952908695106167172175394886854485933648196041341635346578634276022434166139415083517643041339898111692749927135845782659322697492789001569059626240353014672461801647866056231961420487851212211804692033107344923885521875393247327427370160646579601005619854769990058238000259069009597570813847886485598093783302906871097554974680262365627056059275835292007450484329856713760816292892642546392940489050297829395392884525829357234193221330696631083179859637449271358804115676626097792131521576893747401180478893317679500301704414782612130396156449773083710461280452493565025456499712299323266056025938208407738088036145910619928664796206874034903838800346220663945499641313423775972318310118055536362753059166771401565906547060646937787169846114358857187650466848546965848707944961928412538156767429895650825590774066929447700922197068346632831666116681223561797758820607661309758151859428808480516135685201795727117965805735174346280401657739758200478354755228513241365069629753779352742085570063230751447033525573966393685846052900395072431567073834777115823247662072445869111738992435458408783460406769614678986704591193533340456353627944344411973448107488425255031821335062012534167537916932516830790926450812921598166331798391236250998860095081341609796539728835466279836666722172018823015787013255769229324926611666727076583989592211306205665197709071477788398205974112641164864742281439123840964636321783328567264440789803886007779176245238032054794725755360092694179696766980567940035713803316667597119545162299693240335286818684845518222154661523640829185307597206243908363961436458691194451353366476730654966248752778579397047309201021689717564120754075875823038244138430410456253589457970705465343084965147110458050662029836069846017660547913318628834113640137629647900813022497735423529914375196338091603800528191499478443284053982287749760943574830182864946027730197165997433586282185799062353502704784426229617158826523388257625388623531306366941251335181210403837805939520727189962869524871506344198326260602132887911769257504638988657282310778146752089713821743589067174292897903012571327710315721799774576878616157677397254721971312892206121444404312278651753353669598156865263143652395710198204895426711230197651019594770716158622076274311724952681905542728083440317643532501591508080248457440750425200676947211392818263090073495493697929208588456264064212139697022910174608967005002631482601326580729646560303915526771874916456036705959806422826480059235045447660183137083195627277175929601029644037423204602147857711342582153802921936789835900840442842203755561481967662158960713459485488863553222548496009298683755250107498544550099522124350714709600118361292435467245554443599506384896321851945767942453252621712766427241035055680089274387849481837848955406017090083700270019657299794546192361231779998636907611625031692065697589364618814438979839735362235147479368795494457732215815234672461219251162183909158772115702437231237367149152438789873514890594312105253179114379939704890600945699090263869896915450430921843877737438047995678208223576359789366187006826657582083668487823724469325592769330367847998313253014688895681031523414582511761506208879182914117174635100340435012813108429753773167685677744108665852708462779372178973585075775083316084035947002040187381193943989262990352816023984732673163123984779831563643952613607620868947276600287700008600612416557069520120686111287057206749456990772698163272892402523562413554781656953312366981786157055434466656275970446126212351255669072055529429071445139925206854214573397711764110773422222675289522602731702721402047514442171494095654999341427477147291368318966237085774772285759110792778875776714486701664483163711621276419236185833392008584753379198911687406908134648552615721243613557571777425957331752605236949313452399188114369914506577092569108037945580177477984988936345826103969856718532497924743047971671117946707881796732073590222910896525383855722056551726194260788679090937354994081422520673346390636992200678172430398303756142964072030598422945873521168456348415224410949090768016380981228550469744942924820170510837048842510204745949954303643424251415963383846619319556409288403280969500160691246312023530799819738275325190579492612170423159104136582346950881095292701550235833159369265564928959746559175877126602085299358553555275342683218936427694023302783975520618257369367135611777781964324551842040961580182714242976660330358282356544226106096468655097104254170608773417493423466687768645224478852240052761789805814377958086458523598870385291796416854995719058962815770501163646209949368814732324698013758605861423999520542832353113926334635552186550847864694479714305773719124240118283895187404742173568851262801828353519005750507422547175857834220218794961493355697700866403760492074296414304718183854649594233473848774205412095555328815018608372282331147979929946618253249863850013667655041458579372934425538529878034910399040558112638355299302702300968160967824035844996670630072808937681705120364808112930432761764616485538972094253796922217478924923299675867485685506275969683638162597678603174645474353555731448538086835082207446966934611962674365168879994114600984651584085194557438933114849016000669923481513267234000064482530075426176642019940487328228270631247439496168285195510413852075690442081296195789995470579626419621127038435319386275075211799636113786985974747853778730412540272264733801031026670218451425620858024472141024603585665947934247736255121327844351149269330629856878916094665118293688224738553318229334209633563141524607274583288962038726706075110503679600564747950960247377920499953817876384562445649486044965406941154351063232337124152341758019000241463401316655824574324593092322384363877457402643704316401955407140340627898589929449883722109617613212254947773860515668200916648290043565162881558790788865580535136867972316720539397939284708641644852890504550630360835965011213484530981705861143531986366289249473133939068096348428374334922465977634556475058404742877752941558568177401441486861013919353861732942453203854269640210000022582883722045938913214594419582358044705780150407005397077617577781366547593254997853515817174087272044583845508047091582963567247105488305987820264006017767493824427928838470387130861493659787436908315435787162242231170093149022038406100116555297978336707654767047700797388017697926114194438247623088705515892329547435429821977756028686961184885252578600760498024660001148879679412455732863133920679216112836617191580566596510658911859970002269423843914523872008256655814311412704022049564385497190724326092450986064129340547172931889735715110054002447323387267764722292728250601465551808116582026145705100109746181020379467248995529510256809111461103737096843141954833465007384641187067583255613345380957661977671901491480814345433524763880574902776177828757038873128780717947222874486726030731558079071673604842372389995091627311243249875757615628969264314717009525136244752454033277360321910027587015668013704615720363001069258013008058901516369739789362186895264002174568722935582991350569837177995022220902237251539893203970646443829818956244613032887517874024037236804639433704222206795976250138491879384482664475154833805226563894759193600749152568709691775121580738220162661123458593292955122702203713043557554183569727167762153393588715324840499435021272786646579065602549248838966455684341695344654117603022673668242659851089282143718638056644722665682501460087192566855410026095440694318810081829829786255578805928073964175214153461652594173592790600145651979835773121506898254091343316310997196559694225690530287305855787136927355947277257368526178963897308065269377023785668342953826224046205897873718666924165367044448643711375260349986420603653029455214162642795708164114815982999715667035355800471185376734356945116270073961862170173989463156734747477159816198598313286701360762643175711273578243463048633917256810367253024798937315022164709491994034210672529950984771899586767308820657406744404703361196069877873240166150919313081886233807289939326162217248309769390950448743103570166650028622655489086954756519564612692303266058529462770414012427395438893063088534618844057237291626870526677333760174745332421616686617919510665139459049421732859688383436133280460814931453026869058490186372056400973645273276621971197430444854077112648814313829489608676652123125029425409245819488928922338101319787737412221672384084277859910255069484633587511462588365832224101732868489832259776398631491936663671938377642539536160615263210899122022477484736141179723247788508135990996492601531014051129641754921679643834480017540671983507647362062708686940782351623046851241744796501185609612984335487090635946750913867636916653479007197107689895167491936181198603302151391387936933296227803180426991028107478094291153012224728316557184357790254936954121580033980996537858023135326603701078367637120841807068379899180221115080875000851554153949759218762930391016182239857807016406488811005012313031021282482219478034903711729172002958318220207664455201506325722288728934854789103208619046986970949981409326823156144388765231482139981985214817694787365642737072976477621958793651716553767569441258739697541976004192277638296370567103423715585019470827313302576228920660818002514651729731341672179113586316825664258622558126435892071419988029687246063340636303415819004329802118510133710781986490301093346421980741993513190141105615803642705334544037653757950619704561167254991377483176158667444293748788758114054699744897872355964341596744321368249346784380888823193441460628590572292827415674657365048201134344201330078588638298095044847063880411085332413659977560662233029012886840908443597036498821811563013236798775343187792090989436345608232823579038776449589733756787849900163452790406177036478216624480669764633983867567086118809785666214946422935825020026644921946315775125790692456485153926740818919652784737166525329745751920169982058361401045745728585369224483729167590991978886771326443955258939810392365725797890157874784833476643105989776742669102816907574338063644111637185235160259973246242933770000837853720144170035347060407845295598154815570628406324761479252869697112896362112993329436121624129522514173625514721121798599108220305599460011202194170618534487686722403532799121600699507540114595688110632999002672038291678812853875278780157358503184213148792446602731152231901021915609546246513595932798191763363920155862380920042012841896605276121334773153764238651829469113191384040272092360337239318708218074398511978861274691651900946494944799839982975402405487135984654337651546656401999053027423128227695706958958129336629674757689663553692615218517688488027462646230262855548656371078231164442917813563677291022519098285866711684520471857092383298105263639615785762351373459468436707911954135051124460418911962780028075501419081147252971196695622078706545922032214554453141574176478305489539341687926147139438881037864479714969520074352667802724477175297525114123745776684233261033922432130800664308326907258955379522502156552890419975556101629202144387354083212748354625317169644450940188732798008715613439636811208188485797244534680696254328787297162243707272181277079084547143002829156874292195113208746381576646351157595377315030986536172520950725033633011526538481211909468263397134385515360839151237016031652959948316857794848417672797320919816190848565910829229655212596087525642163443879474654835950651445571715374419210389242478900263673703581353969704656560274489585655101848279008062001266650933932683772078461430919601687090138184250369806541128392310475410644638173879174806448103509679915411932809701732754855382892716854914839591263554808500411869595478688320263744914741152712680510734965910702238498034083684129860037879364050293473652397515835303952819646760988939525597865550471630817014293609226119344300983116867489398185204475583805358600939582730695828890152226254815006793045690618128002802225816180886727646264849609890147542880178259766191835502893775218041995596097189344895547929908281409977941813886906349445013553402532592165156865871469354081854074161820394496425088258103557092050807361081192887191878852960294120127581513668961636420670855574388899363861527135760263733382615745083572622408796870407910348921234052701455968729817284361049679712952390686675118301300080153026484388834283054795229151744920599358381584234929809563929434686139685059748347138284950301569023271776783718737276538277979737700566899745185269810197646809486656453952463134093339309566577038398183285971615462403006158331176769495358338953110465953976952949243572377423699701816031843212303736392180609229241229486331564626770140118974959801965688484892881275361611651944277729161485215388488735543933303889645452815165687935449227605439365347294548177626937471424563374049307439812094688035068262332109757267983474245142517788751610006533850730376252832825889054094039344645930195822516343579636212661387275298008501909492122354819995339180713369413618201002479169447520523444227132855435721768270584780409979644758916955763144872429575056042615543901429285910580355835488601534675332071109522001188055865906836492455934476014780484724158757448485741327541909487862621666053509405977081548120826202459375278201243747068353910466396161068925904534424118433439732169735874257163037595056506520546604899397899302862000671735402076675169303754465386250075521173062075909750324319339957859541236441004966439299501780424597235823247496238454970249569276841151623975151949423189731025252368458598474290293792243945013629606379903459952255458103193474378207479640324629717458059832428113557042452708136158872177719025172502738371039026296737376908189060412885844787826482049343516628937314827318688142000804759521120451201550709436258305995240284864730123513742299025448256074664858634765235263131975653635016108715582111920127876832127736765804088175838911432955320169965814513214896784433059960764824866979175129660790115677971457842593822681098402272624081906569127453359029670023991641769498972351032434337855390466320551080653841465832809106022673021264784920200545878151499981985399753253180832202046041582601713377843615606615647701797179093178003767820739637448772488301488187778900891445966786054340084177535764574468661637640258983886686171526633321383870598792928341334508816810213838877023880970048244402217294027945431186561870783948590137276416302925597470584950555304120865282554370036256641432518499471008908239606446401963437795003500906887462086739371197024819609941846372185481546546141491206958697556578086792072103157704033174084069068597939790763959497328031881512110251065538145115473256171682874007822001365671506037336238456919871411615863378089710275221399067802100179691318269815817301970781650350803866810022931464639747488795766755927366984705762900567455933034282437609879509037677346268650939428593262441507874251885737640372925609477724541309049257475600242271433957619788624456291297957117378147214621999768013787458013481113381290483389353647181126980833966341566559416470343011635842695359904985484556884811085467152090072472293262044314251862785744096335024852670137037621769875831142758030266519646176660770548439540484157304611024099462930399069052875085764680738686904995034319875056475474698216568093378395133919606541937471357462108933937527208469210050442730175844006094516657373631903697095019484114091745294616109801263422971804112725268901792182714338260358697970025833656900412343296395869299655678865607901143204241128882605539025883127399594974946709475423270529064018638336686839759694157060673494702429008587972996052543498568796567639379955076037045866534458609012412694487223332869825195993754039513958674809649157221769084503248533177357815645264686688392454489887758812142054152721395523621253114881319484015858330488516215463810925201119397494668778644400556109521087569267811275045265336989006901507100293547764927248240507627675492906319365531921990864718500741424450596995414297916909149212891352749495273805126994456293329744636924352807280821188228691165745590682614470808337387544352463919278408904393817806363400135942331417057495602432995438638931038714305005689060511875709928373268774608104160000754440054107694486787603903849501415090308847079362090192973189379330171291795391597876867441254852423712493718402197524318547204504899226031184930353307639568836463794498214055090746058773270774719862175061104393520960421796146485166337458143294108975364405870435177425907804964129000251290725441967106814259240548206798814917601445371109152165337429445421790455038983666466110031453195534938560998811768563530431996059627742566440724110611785173082547100136573635002329346089959259589695417593810898764757564684649917931006628510657377921289297528476508650269946334973511058736430369995680400565378933098166535585976009674291888649098212364346527576229165923231858590355881580657279389396194622901728917929961245408798073287456828775209572157165554190844484515939102019185375607575578341582859331941361693790590308372584935499140347042400495331363774870185522016084737687539764163767439355947281851137384944446408845027850233906021361116373916352503707013790735327520009663102032538657190908508133978670284159101254465885042698236923925346452784118068386915816100087062604018692617692394623084760927529466977349412242771055798510110687089421102364281518971199684381175176901430126186712935454683801109469086447180959305953527072864154112098593173809442701912538029220897458647894336821950390867649166270247391207199180932550944909026664618751807188232491315168758905367775455940819719940354817355969827733219753890456240078731268951957272712467817857020817871948140184031429416368272291134143699645688124267848076102439198118752214263091242083833664588221285072275687132287717418755565781726958522722085724968302652419298357413588370521499066930142380430984886588647031397983820456902499553788759422165297750842677629306790848171094255127940992888822444293354876089421832075521025321441981156067465438539629387922140782839835815290996304042738893977492077951939231015936017162451695074843253303361529392660078983100865976815990675213752243476102319363461745150995861533766757117763367397892232129425394421226290655507501390828736852805503755537163670929929265812301942260177037790485223082912645951618732404159332562339237178596115183544260548474090323769557230308572911722830774105735660831299162996955055335700057732161305439174894603104647808416006951186680367634411980195676956571030453289442455418749815865320443139725348065898340588968661686973982958160222268762045090658803741682630857810768124942668807908033607497762178757096824494285155474454007691534672862312626211957682269481327731172579204356995587977709134057700842336663588768159290179709703045951591738127667834525201721424909258068771234005344889798163202865015682163736620606337992924520519989199058875786597076176068478587656839678834974912810728020393188698595648755664412691241251868718909965620022785726386441141445450400287180157224333183383027102207060678123288895975381766870501995307337300325355453980955027735854442214600636870942041558284314237446740695442428057291019137495777105120878197682026122358985057625447943163891962399680234112713383721825805146733665378360291554682259032506906586026326340719979500851127820385326197358660035830395260247457293101907436287800868053379468176558339549666646313499495168288602448556872274376102527760507127238174091769265833533412717404953067116364170101011086869141399067259025955066948407610921389352311147482436086885436155548507562004800759444527583292553243566098254431454903998334527743438722013537462205915728264927776147130313528246406624014099927408232040790932325419557358445286014185537011932161972177250926660133964903168743197509641963846013242001679212356726477143607805673211146557050487643835777913390681113631325270668554971759928154761853946270113272381589263551452855623220762248338322387312663405974087966614716693708835087422284831410427696257553983830794260865901303561680126301574305080773810214412782962474229511670479825842291907645975500992515801511991195979109023870170944697098302680846693249519974003948801204989898116032320533409522371911902872619047538414093466457252385111762647788010128127289280749053146038781454952230936291719177148520553623503237267376321671250067940005256094721231442251794668847084226645326573915878228202858904741891728856606159824676770059251581173909002192370520554866794251073412365363335666087598050104687187448027019533524495584402865998973500618028995001049268658562536672375661715541520041737599255457097231681470734298608596138206138196649202159909198615106278530954942766348095122422375939809855581185061832801290637545745111051226469674418227144895768898045576227256536756998977283454254839205458401216391023024326964426254596697876507505240462511745947535863052394077940656168100633261765984226608757578801129276111184314193724341217801748067284266319289399771209335691943479926604131698048724729972263216424449587004022030255037493037499028063800400250339657758621855435392701820742969143165404331456996988849917204760627487800379850043468600951627718968509011238451028185897612750675540242813674648231206278924206919924145553182763941921631002943889343281251272766195084746457644288241266542011475066711318629646220058900948599730120176136358468512488665745252833820856840923143892040879961151483665826541456987584915929130563045684910847969755961391974497559180561422641721866157583604248408522448314968989133117495560530163991646460974869638077801002893039905205478529930351215840312840986196185522706705478951805673278947351571221050750774663165012019987910333721356647525645968557513102490065712792337975052240286031241016498363318874479845516549195115385258372853763917379078451271770443171703147460324403220219282737799107759900613736513075085382326687681483222886779081502837451062726674052798359926964684581383692299871845930429651025224410826369600098203584342413202318881865590532267808274263752543102124047278099181345787013070174447019376176881643269473401604298687983266172561844314816302721568752945750054302772846512405020043409615700953639483851967040554055502446794171312452360819038858080753328185083888397737443223641491477442839762586025709541246228825725407067056172688044897904698991333003557355562156995926050021410322346064390856139519166856701567342956839943919546471932166603434454283866587981888870299215543872256830391075384162636792871833708519450655513015752248625224145597693484286983208257571983224216717366582847289545628555601453078368387783974963719622112073291603936757884664973825337087753406655203792619075820091441393736491514415223943412754050517553551660241883236896922376461141057883071454207857559184734560016439477721178174676040956046235044562583694880439677082765121585830431361153768456958767581692724506851782513224644820821393358628338443123522754135652168864075060393823744660617159516054866953727987337592124152672849720467402599804203019381363596785100791359182021730001356466798102191381766013547747472704410633066491516858682073636505393191703266539962488987472650197531124528598923913726310901355471013942526009228310878517352482590151628131926401249233108857480332304058816327674219158000041514563743735304522173704707231800737816568354248133353722374263793163828806032071591716891443883514861483448518344243634936592363477162697512734344871119508164137268292123859949975752299265733205620917823909542618125410401845789630398148564300466654045663767645258325356066752869709397594294851967744149570487989234746057786784642466483139614056869940473073562004231079315057405273350043753686102480628449963629404772943910816077512223820631581661586409155815530912100429507931850470627120903978689320285696000564621643182158243269810497722760126445281441484365399719006024609987481436665799760013891044691486962536913580221997590005021528956652450676030264567532451403690762516986033538938373821792187494495949915091599533547711998282782674582494793299300282930106827714685011230550477051300394205376945790238634335723749076707709277329193151177920551695152700893147187389504899618193599368002871281651793147371699323399857071458493952396745315536190675988355801372424315534354343540340592860518056783217601284902215543216337043220231256639176035197764737858393293227750020420260041400203069625602670028335414236898072148680212026473885126515374432818003392425283328843969946155934113448483057383491507123617208253764613573949644775839044446066312531713205061590957095677102441920915995959538311733097746151666547854957540961214634016503844721196557156769736618119810433652655160988421951492480708894524405655868290719699110634051355872976694341194208407504852535643523463466833583399308820134509712910932211229262184461622298858488789074052218721069636121593291167538236986690419728967900910173164267792519661942874403743281041661375186516148489865333439043985810264206550627553271986992433285174904588479422705719433723049980045606207077414534489862119583858999877073681528318035908738680887313193287609307711185587549576894069779307581300456952238117689342348917460366373609109753359946224823230211131472627508121278820710239754409268459673301819067846096145447034668687398150494704599549482533858449862326593179760357198242183163040208656493897734493027210885228990730334633822257456746700477163066582635096384560798914468594375681305029152425991763670704999254305349025743126070714754350235935378921207055913452079324736760109658303849010831768741495446283008775780213474767745721598376735132310342723367639228881023714809711800604457011229181261350386401990315632259052220989949401688412067216134095062480319460224211128287212168456076060322669340557871227576565305408663147513637555376074069550248813206017685772950784908053546836651728823240315383760172378654351745754382016115567007349215887071915978278577584201228292109750978301965897851001097133746087780699483258517504815374533888757798395913349701941443116265120101419850028877495684223103284399037696087187967890000710001850880298833683547327417996423563461148387406157645031540693512047437700613560724913976401264577666426312975070843176404243436684515460697776366056447777380636339264956273812858946398663986120120595419299077676371603035200099794096307257038814226627611347663795174831454641605710080654209315709455446741560377519546140497204767140195840090129416223652761270699126476924227844498143472784937723449602170252408113449966111890559304746758665586277185711682788618279512737081382256515207591770649649638620598572835621831225136591162145539545945672867977749632220497458750153667363662179415053521981667390516116342413937683796082766416599108227436343032634890875678316887963783450068702471519091513850856991418810327562166610149804138351760836821667967554184028751336290020777641662534993298041744538336258981851964174173150656818058323189807679944297585824189298977464319170665252634579338874482035417847993110986875626214482294154212394156556581674341311219535128964449808170699559078615147256721821709003105957748605060994638166184863258338411724278176328095665528544796414774455822856507893336931248362131375557373274643958319174732880548215219804681187486145893766365073849982658202629375929486876923388980015432908154489381316712576141500857117689939255841848588889399341513155889179403767243643334220142477026659428439708427536345403511384775133335952885002226947793708547364164367467517591511539907320115021292417278214627697061641173199523278731913046977143909410446855478453287465321244241198992867935593768161451159193923598177419510956356528656186407356219092075422549722852793188915883939968068815478776994441533042801629915472934005353722093755866851210019143130736959913992523495859248458567076034534590896303652552624378912680362772292734437343029165559638444603878892186062870579987831329203037420139977731724136289098308937968631988029929366018682424525307760631076400291388105135796169537426030573425991389854543772898318662496246331056240109546334352695672751431957017733039892340286588087985249861502959564431389084873766191403333280127946347472354757091507241628628679183275618053065415556524196385560260704797458347773043293134851291311612526394421692428200431965196942171262756651192760598149493428850744341295624593245365436222337296801914853947997399621577489996350332267627740642960989832793628003110830945097355251556056406992880411947929647033913474904032500527551045728535835141988418773798798599672879852126999305019788570479032175109476514677154421117368380597308418306806823575122724272522289292446980906042249084818005306210963791054768095208295242072149474538742635690322261826046300511357388712192363187438179498493061452105585452590640722894341736900065948810624601954858665547496674154454947569048923771685680458291115770703593293227885929209508684737303634025848870101251689079329344939175461934688434613243240139117730442703325128589894071963172725347321642338815394627357341115183909300284322874837294608609556933427884751154897219223853745233795352258697699357980492589042631699023950212516368938121446163067389928557627777726227359603379947274126400858199639768541470108571031386870235235004318907746430491578969350963988838182837718016568314020211586214774546286638571507118765830875350471615539164496651996101066002222309535329522788961512761897405098154150639427813127345913130424060076524102469498262414831722159552140833332086522824974660088481282253954479944985954327313802975467977912777300426812249701567457530633390373427530153798299018116069858089785762167848585512879369408997393012610366688064442923077491729574891219362203692097233936328779346951665056682346634825278647523413090248739291263518608267394631604066663365232361648411853089623073956612552083698372903249080216640546046258066856176435426935777693173350820287116098601195657548629023950660726499818034115599006313699805584890789578662325324496932922930849483675812705940263473223334412977344303486420056228646026903886120182270068444705651376034886453289849961957005797654533467722667528770767030781997508157150427342599034652198062611278467884580341429463796210348121988085269016659036248807608681044994043459285976695291206339461369597636817618861786101548208443100596899968651751666085061826820536804872875403040718684587544511480928292570933060341545938028521535792504708158660809698242130630013256973770724645434647021996976064380662916476657121420569522033100821451519606484392202399455615309530215596897013930133556658025231175516295144644972595008186828638123777534198824628075896733203112387771285139692570220936688051760706007050008428401335202475320816026960724136820700415216611392342013841064144054921914227055613955781636202307305695120625373902658532602278818489444061827776511154247614460655482410224109234758933326702837328207627113701912706426307904622875480872449217989463032852930828068373589472263881710165777701640913381586921653010718676380413080018267457286350090352993175844873199503282020922532923588374966142290555544099179397530653510590690218408310816071312094943515256469894063905195673181408009045316591692126811787872694321385429304059647610582123430314454780069598524735942918779555498161041552137283177645994955044613094004546179590552814874395962268170319680485742563409992597163531555411881022849613413608919079405264918255446593464259593662397144487730849382951984035163404117739315205629039638019789758154031095468361477750524300974568397435682913977658097426536508928960282211076036009156488287256775159938558669043069518618772139177141900959058763570191803431431775804753371611574571810385467649288993024495840643376205056500550643800521605504994330327489849789195175610189350430137448061324858044253169814005515286318330918472846208283219405986411993533079232617853027329156319845524711526710298614430987550646363649590332891345923225581812415183688384732370182317160251589975955369713995266438554325325444656785970134490500448869480080605870115918053357153092235979853250711127412927649353747144469389261984624064950326713294826501541323258021596124488364372885883867547780744687875090120084242547284879430186307315299794693252336865146803875035814498200991060942160077775299501263962986483305324874872848552062492914477250304289788687355957531142259021427361036961759773441096898115806032879148639341058836873338552680963270833519379695095687111048802030350425256231843513867243670058442398159452896210563231578132862066256275865134268185425294352484263348533889374371126757361543296649897711045688620469725263574404238856024674117401465347071644232536027432382011678657465738910994324782262889398193679462172640471365628117168009117021003522440186115613840252744947808660714782912915394526044266240093131146676656729882508580547338891546070472182086314451319409896986230162823844687629486476801629426305645539331091286622939963554859380079265343945502972239162608143415065035204641832847507763641151394507805252334766549012627712925905979102124003180746696818475488028595621120179422173165215068695008365163937938219518933151639417492741259338192196923131253414583493982310187900321268461963282431844153468165194467670160532398661670026123307129423789396342423681703592776669046698029359761277809472793554401449207805252276074292395325681738700726276216028739939935512657321173986579995704785260246734098357177500362791150321983742709584588491677872233336072728440726223377436805058240914670190737208750764276934607368516640147158411491054521848137443851943453808469167622783765051813499682173904041822178518604278010408453097195962196843727109215724268756857758585265290054802017311104708119784719078406837127508657004604981029245648930577859323309255370998427162827384760585548309838702285803475851176036067212545972404140117034506832101966703201862353802200877339659727663767955374076448108210108465606476874982291740175349233845077718134561048757634960218268981615908985143939797250283286665108042732197572649615106299962075532374641928865721960299821357985275350744802724808641688187653631886018494137394320840517967317973607622595472660909319415496762369714345315120807533094802289507867590731080723295404961519039760748223000461407114389156261068501705282101845325326804076358722739349102792458623776353216643639268330361173032649235118166002446670438463677184132401417773172756118133637901639634675672375060379763334338698432753381463904495406497759536634357113483727589042183471113427978598433380262589154931536798062752627070869857269933797628142439431581773165331367953036624411285937749219288682970065312502677950872391290770290427298979654577237637110292385615443573549446840799417750690306579928880376196242131836962896967405278727808549244596213971901909205262963956992749443645982460370484248378104879696776668898513716874921630931847387112471796187571112459540466728148077952385753627392216788631466608340471769260808561379612183745059506587157623668522428827316469495327017268171152824451778853011817165137142112310220004416902607587435018711944675954840750232440928009117445295944656102175417076058366893403420184779284845361435733125831834305560305045038556834726987542176608352047216705702345982089885069617504483181324131851804028509466025304290569818669562143044838908047033135896204798591985895985940588368239492915461158073864095847774136258020280386212531907487622277754453362592344216507754844836693091601493066338863742762254672779256455804912717369939828205754132226838427377771920481141101631152847367102063588524292287088200784786388766303291544912377992723885846300515183295209575064708974443952514263978184546753993059787199874504564568004895329959304901163060613881598776142744794543790217759247303661003716550995310465824579883800360569544028160515257129851490339726772540676261028432687548179164976638879115790386080729359170050033318582301529704745610425429231354360427734203786722973088866255650288651116268465788708572141922718786210759841347459994514868277529342350203482388583863778240146916320749706837957079275566233746256345996710980599102017650193393021909266049511361967752252010286195516254883656866005170254727555113052617083736349283991580897005264539934310730652606234838141129499724371054616586121373333408614428478908972554928838818396589921653624280425312540566599857491946021000836732613896520047658632668298060802496101618190996916412566835381428878558460971862238403732613749823506700149464902330340799523643191479259020735377220564254039095649177321227563314394497448592584411688712487445661511805164944254582592357212958537925573664335196544756757163384434372539664340296319348238367975540218575436774388415092341876779676259102762741312860781771887242641788557756994933158156858590069331359969580875881485634592084992957618387823322774135036457282665894772367643162728670089821182903559364157862742362005049397725214475161754478205921037536284539477352346022653754105018750445501096747886837524700483734081195861671699878488449468531233871701956424804367198100815345475687940010795936440413186678570405911670635853818755372275302033689419700732367340662612368972972202254412671034888998640615690538831124454390955145121120349190450658415743348302280192288493350503285158080187878271223105494027884832336121228637971385074711629245894351757619247117672164298918715891157763668041808014615848429077652065813636334246056876569304845801234266320067525494871956429588997920621548465432866266865975159049616204490462770868753294403296834316086541149451466397815672070131760989928448915024501880076088377039315593628228987450737300977717135544067884249648837171487858778390527225099696061377879667072573802934552854871354910998193870107646865324209983380856519726417348968710569184194233385515657898499476239324861804931193574209868008340969622029745299939791665667360542023092969254258500105031343368779327283669220329366250325793975193568098532018233003953516576242308263250542527180836987665806456824612405513071248582172741969388966853978195461981810630351881159379438961539147156465395812127560603072552654212721013170747745352552917814428741576538637356446400343989953909833808073931442758678316863850578255294398566184168214625181284962035579552999139663753301178952959541612056603442097617375003320008507143307097313316774252281118205248453864984523776047905514413056712294346974922433753754883978306885042824281012047541473905938276424335626252837724955838237144491266263527790616111504322739271640488921687067804955429519529530100570596555258732205600810445602436678367974500350406282339724419888665197022143145670917841868431178970929736830720105217311850738046417429192110309756972265631235135354998924228471615487362923630358237569451863329901495992974335585449177123493902620787301410291632741267361699376286574760438656401884775242116061472316999878677233394750864770441322535089002271382616277746511411212033220749333144222138821489375276943716082679177593991623228663517352815076385156967310406450060738324834560719434283046040878987316291457500624650781865844351383429254862935671939351855198098582170353509176768205278171058338213850018439737762328484440086204216209739301055301720547870608046651431289814720756508623845043839398196999949652021999993786598465730324590286682513167673288113713474995103791262777658362903593529395881220327453838518245379555215369964200339428205483538103252693586845612895554374882667246448465694535800620051879104734385959974231179305162509143147972162124269695158907966361912536933180686595449671864779383301921187696102525284133323296879477617578092995660226998551323731263593760920429214797751336441322136905936495373823821097365352757489540330243321941218817419517937869504462230334375018595249100572488084408970466926281986316279649138909126725175907847194562061034512070260590575774562554687478189322219809844471427179963147444583578057665663627436926452545243788923030399847512633659074214262408830630872217952711119158810312810504498890929745303272602253194735010641074102244684942693588761162058774234790713978498553223208096325679010446296007769363185606169654380199516951323054852725281125761999072189449063316575459499693518553879836108624883393606933134343633059749129350891580254204025740700175803426308866628667354398960558333498361282979012675568900292420316761336432511764839515174416423003608367914577456860638954986074545258735010942410435830534624267029010932153647912484518715436270137077607130300028617001113382722303243311360227503186748048697719492692947126297449467551771532205200816179626849730524714440868021694902562206943131055126132202809918624160370016569315306265666013076745451249966670059010824573881619810445003898423308801201506948436821080250744439541525005404755064148903423898294860809150482403136754930985370560002104145015172656268783703600649682814978628562298609080422144544654009927571399891597407164001669757514627010810049572053676263006417841748234098093269937012776247871820365159506239582946673618680660139578166157521148104434869031225132642068632820179874649345813062074825116050065931387264382555679082294251421619089309127356848999320783115256694874990320807110482585516794624249175068591949360133351193722818725733420349926264480563898268343186258440823125749766462544139013608209623480210110539908658887795547435321825447116145931409413228422248144807189106894979402501955015302164196718458670386524342116261911406445529625395419377097261778771121673028865155603191568282348203573962279638105426337386652458351499569104953298023446438129530191342588542282522486024243793664099364574726453091124334821834564230353003857463319832372775325487478750899278920555196730892070913290887691757954159238438691857769344008226528459097572978380691613641772861912756842661939894217595040342628593993318238647138475647107020293459841393355510287167225454098439968107806503880923323837996658436155637684628298972880814621303016421111688004609719455973596881659447041508347823896008935303024981259973801347759184828770620240276342709591176113480398073745741045461490290806761473150412857445821884288138674081247630867509841565703621625654667029980856886042694501018771687100157737403803978913061653654916834009325328620645147970002950034215288012251188292142952092658471902243632169338878390063696636531892145594221110739243512241761708387861474991071240269519300127005238054822061847404061271444784671219370620681006796239783956862867657818473784875846464084106980155272663940498208968784336363605581531264904008753198111464718676037049946813346205560350581862526148427000774583306357805351467872553279279450477970337994883832996671928838076511823202971821270203015314748027153271939976839553951630620190033509113020973504727374715476394211517600205681667223073965728050836990162042602325970425200210085492789841427744474080621557499656143274225252338213117966741415247966455652897806789043167860495525372588442276699742340460239652446618666635663564766977227861934718822876738696741601902387921042656958268022444146277706057573605563198411153357631560001758512338479114424107049207298546084876770490663781202504006100009158713749797586018664803452426213726667696332440708867328378528822120422886997831260276554467652163273495726275841319624353097612585581638949226958122366400370230228207100574793954695465148863867757716939354312627841007161076472522619196287731671083736626441300790149659502355567431253829207117422776165426016451831622248621990697063555574186451902482173806865158375983127518623379061817451738687618578736330638138360916722879337234820867387896706384376143017441352002484658454736231369175932458946518712324365115613640513771766474114830650535604621865726783437697741704789949027976427146829930287001268901101912047686978210799289913955364931524787587643562947614595764870281670298920536471859267041016760349876162376970391906881921417469787173643064998249975184518888669436521862629292075848632382576909103767838694485385618792847415657468367990706664925039052080378752844171929664512485598677300183132034723940942396828643536674829069957163217177684587595225230227280630764274779118558505158426041998842510356861826297461566691597376815294451905625214092160333464999261158457652893576313188315020917120113831513903655573819803209034754091840925776979384746053572085072879760829301768130017467606105019920647010570666799370573523476467791137960321829956450333011388368830545809700966404995007107344849445664370656713038544543271323123307009370001794783888618416217361338163662855468819090065936375876165979562928649076651009412163954038012972673078084681997457418577307155749736650329753935950197327944225915734828608153130425611183451243088486687863335265467966975157533783187136334168613856724287742362646234581421879222833342062929792435194157994102535382372484276741091688209746536403880998945883040326497500517851666716734973117579413233589559542495230923192165264197255036725826534462762405430513484337601485349933721207669104674851632548199046352542771751928911022915965604096885557134042726784744771588229195009674751496047309722103992117290791682450572929123325414744724909302538082330414840991597491994705842481272446894510396938466692043322714028680815187122208169261300439730962529870392951726473703989943441442429650170585017002590527080834988534919792664916973842758150923431103415546501147762843205800985934773215025182398637646213136686881472845094273211892381282643932974110794988128234838049496636947521532761100230876904851876988283698803499811208885574374470816581740597944905248795331177275583335727406570729984013662192737760598784123753151018709176206212390730446404923697084869039962357298331706469836116457683721042209393308574669472947648746223697922431025031856585880887553937109656993885924586891727094472720254019824339309409237861681966999341849862243496693354452765064187568187696115111987211634214333568769450409402909914179150211427260626759709105240331390212996759308998317596419826060164712339570950847837150278952570085615699336206823253439234862155242878453734132711429260530045289813689645092941423024931404541333276502601504484052808613430032521588405549491283098653711281004796802451323441806703461076217425346988595495966635660289726192233073188643293474704537646722713036051106004325131422416380995245594148031141349614412237678795480699216641440739579164532170195649941159466008355359474492997251676341977236769338730614307609916323011825916150822674895587263532120546917310431149429025852565817141310808722495877730771956535479957150159553683135096126271245688173669962421879628764172375939729052200105335630345095413383083896201660731525204460560532467654451010029848270535173683863602489970891193230364508080757489429933181286731158885139958606274474302605707563130683261030726590170292744118694046756686041011062746741027912034375154712873253471834981393601737018639888342432934014369467047901354975230228983866749651691534137629349396580616020472449089138448490604234266776336500683579575600749192466705352427159816004229234388193808178484502262638011447429037533511264620641805732991119975701333007894877407334998441807791378280828330188805857193088741496134486687446300029890923619446437794648569024856364084368073435524594117224356428331684362010907591407333686015671745944415027248159309733745264893917666731021145574880795466320422396149169331444576064369605738663843461749449323589222392907042516850613595249282625542620834306179896487187864753880340676901255395987706577724209438307192734868469652980642909724986480248083202160428634056497604941467632556509936854512982017086244424448785991987448977171263025736894763405175896112891031068879250473766385677951703307566093589157480396298857078418712799733386485733721940128245010073913932969482728261751161027426739377672053135631426957678242904219198998831436757464156737728833492013915441881626296729106870467284417585380601547538464399113910647754432912848560052419195756674600818517947733986341629278215755931352727841299506723183161666326155765830638272234713498179718070735320044127844792625312530445928727840759775425740605117502457173098980193145710167213247639933596611479438524871973489235157118438696953220719203313465898375603960649526134495735565825208687292601738341645389569553345933162758917504443837935432626059385216282427109058416110373965660908175172132757083593998329406431830049420637293628678018531451069282674575039637661391387141542231703242049690634879501457818006743492673577099978197309005170865462557192769476674498447286978345537811567960302090255969020308071075518688379236744118428377144346234059773151735347935967227857154821548931307135586272793804242332221414540811257535741129448928507587882268886158678713465281870336520384029367038864193570187200555736615843641750355506111121797366229593566625959330265782700175939021728622167437279573209951264360813028917050392229068171151965683390739167594278892461181120003392850033077835712826154908847014749569226395499916643699934825581716887048883822663590859902321537059910303456864847973465132976769591542311744227969904275403897069337442453394295494287796170024736760215119364236146793008237192456653548557174074078029485623036882334240650721136777077177756426721552038480436005707795203495273761277538316355770229303508792939387697212944950885560578251984305679268720937075175983371072368119213822321361126094155665402471770419452948521336782737137544553116586575484948873123610922113695687749344632491078345469843186632223872999919858676112921664196134592903934541514203783019341927600464864398438172343118205863567320035269901872219248450899911422887839332036195671641752928713302601098911980546994765633466307814244963885091579819052893107827386701210831067483481529984696966712994629416791320097908691089998765841155441409096129488160294206969066139809301092891461558105735571731558116774675121275786429831439612483163513621763697619544834067533192007332884347930108581317040362399863782185246288508322349805466627278892291051516876666329106983095863532714184732236447523367267062202727606732596910628552049740370880844358137433012477649366781942357738033854660633037002440023286444911982331128354298285810224959204010127522541712786912279628630338155205221840857033023394487659786177423485543278713411721226604973602293820650334425420963784215861545143051628477952530360128957268601085457510794583880510332949124286868802361145970942471212842367858898507060311728030069397343211147633047731615053139730054651734288892939058255802537112160527952006281752027109063360117719121635152013895837463127422251280468802414339876782531384986036822553091636299962658333441345003482966793750860386138152896349001710927530916547369832438023280293265443513917802704832750412405817835948068990858857249560667997734622736965462764781421883631890238406437309727817231331127801285217336641575410033492939584344333807405213984237185720188587059313103452609175484338808170593664786475200162606062792775154950768570055618966315400590092896617196304009979326657886579934867337993464208487664702241196160632401291332417537125058122670687704227507942868890604016276903173030007930223031182275640316229822079263415192472711333553597015574728733946634166673871078744977494160716559897580364066454273590788764559817837101816023387952302466322769085921172390321711246555320073304092868083030424505017353399055567847390524840111283478856981832815027831848657501495690017389790112265697408734628855783511113253159083199415184428774964064230477555761494989187458283800058115674997997710184220434460506554168995873026029141342238681882625428418798192095964067694990881462481758980835940816847666990100814002740661162988919293052016555308504262962528778649510707001877636104200826300278555251345151511868690066994182171069039471388956504721740520918129269245166695574843838655369034762241236956518915667344809636628794855547149634643366591685107845615989600051652890838025121644313105196429072990168360026019590039909302637551896546544277085736978857653059352070149425564556936847644613281472754148094432573040544911590818243217086499330491636417197299821405024191359230082381145734418743000354574893247228759433701115666106261046440097348613433315329287082717905242689391221873773082077735935544291328878674616787171690954542927256975050746385863039578364698120308805304967268827883291886729021182566847979166299445129256722842737835087406211017937548766029917197616726999109641417441683485521249717079024599872535464831550982167131198352419872488607930481131060391341190402319280619370945020050904160924051634995516291681644205830129391404623210914568035165967994563479282983210334859230415053926720981724493938432200685479835926915417662217138629155813204537359222114184000022766614489753241423851340581265553252268410955817361441614660868600564569373035690783882770125297558933146710994535143720027054957237692121734436696927127604386555576372875519624793566650886588736858250281375841877937673051997526875441907033935943053150804411881701319401119661106916960189566441544973445442827268847765060948022940538073504586819409230585929078020506048467423742141593703735426002416774280117978666517940653228007770157028054043245995446164023343228016511814778198716598341691737520864082859852931492423014111259311765506345933161296786257486633596124009799301283677164433868964729491086294945859513199493033357071118589930324738482886885965922262512223354518430983060099289344208627311945289942508308939466718504692974603904683787312054923009926878880880903279065587800383562419305107648644692210185936769401129338362559595263572285125499699989627533092701540827265528024910034245641472444324898092788212206848004756908461527506153743780456820756443895931121237437563189174869889403213692092471810766190598050303463745367787772266569926416247682742444818888518343463666735111678444471417453987269512011614469048286720110089489038657384652897586028685855551585501351966706009120861593078880801306587971506309291071749496224504393488977482501728397678837241345388707322681731169943261026124858974921101842019933972255215446449682607152881112892813948337571492652395273484347532271129722764417304550577486648268631713139916054489707633758637296836605615501912559738375641229874832411417871354624378946982337476383282794113227126189999884164624480999897027280636692907811435255180902765054039840016767596971974136485288842180532596645267995629878539250166178758899034941804059973155560118480412115892035653635674623203427216477870921619885676074456289876503247774670635687140207151068659065847790351651873534135797855541477305455144339553803857261671675830479500077164578991434856631543371922272580486849952542736684848940686608652831211721027252976438686547329430050857581500827009301222222535294006877396590620788337378960294384033692930491635179496322045812031854380246925743771873081841927803443045956836426159173462083617729905313983077019713263540636403792725731641524023129086603434049814031225173653507430375775882107000024683151599421528889856175326769059464448929134347270480874533308839037245737706836358141413193515360800849546149755334287398948846522625096819550044156196402162188298680713930515436513875429939201496842858473893224210692814562276824302296997884615059444073238653556553263341970529972882126234242382196884661467802412003272453680449526315887131804122620325462410421675666672976257020737966110003228881241747378092482029119935990905865356990711699191817778574490875085514418041989970736572767744664403616182041134512054555454573420044060565925731913798617217217576389315845775599570163847216240705384025385840445549889794014925477276843114330745215406823313256349654651586813734626603699762337475298507283101505478086917567609325182678729050138101193018512695332182975379012085662093644147337797381616617175931214377091082723812550086756840147071573868524555070187405505132106924749434214248878293591980646151923814500924761955437501034466168634668028210732406166173313245496441125563079207271447312119720229500329831724117264295570479300716416375062675083156591458448498721290736140730805583769825300559643033215579816473792398286365577129099786439773563497314414678478239114906057805217107042551757337540810329259589535443879502643557445177372756192711337078351802574810279953676892308988231396947196924220030023348549020830423360311128369788705709379594607895923441174126799338347808803314607176171753533886490234982149125312190732568944045780400242824308484319393058316355176833577462277765040263774440062689401357663468601264328953955496342880116195751915128260566521000209316265935558224993797635641910709379884773581474882914450736656754079288020689121488924207018031950825719431503646836151413205679124923424444184274203077714098971744933862928364374880616365053804920352941186463045625660858015478327656582534608353039233049234430616012102607057104864287683234974866554709759295171731227150800405528751347244366264283764572386309585368232962559969240346905589814801805535617058224822570224309071732311630619174868270855526736937456744621831635824319101766014779703007880892227441792861867499870934941850730366156725986926551825996003529540628308850981701119401009521701456979371380599269980587398912494182500844776478929756693784239077716924016939236206371738593793517977798655290119653012720748334443625748467046734068932002699314235171647843595891179471983636104352258097939117068305318329547189721407784536274150512941728682014145375446313051156443443460881873430553697741193567193676183377086972994484050846293543414438256698578961123813319260162351145295892431554808817310231194044210286552055768511558394091617547824346295474311523710302390472498110138808365164031001256210790614791965201488181052782901919026452595840283823268513497391365851667565943229327130158987279310126926351907601609216153938593026514854303208854389312082326060894093706413470070950487010603904281090187262370659053233367066896971090580217792198079749379439912245049379503881317560776922198726579209328753100441904515766516765927933072103191986237218221014894868559977833786893474707851001675267885509713019936164818712477424329132934340814727569070924332353232675386000359796173349057277569072721234570128957025853606714927884754434693545675781695926027005812706399172404839349706574828832742490913883130640477894484077374315364443073456429791268921131695189292663355458683310393924024473907030935067239999525987955590707609499934541408990445051390322008550095934564628132814290919997514344245036540474391667289595284351398324671062607045436225250215369124418635820808127248285508093879755040556316490747075658196899130379939703983480762633474151982995129576132611582953599730962167092756980834353322128927339677411887232002573586618473739591311604012353880537645431715115160988031727177310725796613591897431556941572424979443558839935750124875202765664946669947992242737938641982723232406489747619820504066831657560159608624576247369781592719613342271976386729908991687336263712223526654109943008146952683521226647639823697193357440938043425019000972448212986161553677098697661982802805059092881056880297271859952309945056273410159147815843643023973894842118512187755007827719086814186073627107266216438755526279657962992431166354572957938108359225504827885161335190551977481181324880467502849435491014227406989102140197175279596354277080145059006091635291543702866768818651882817019882310597197788497451307133465316787447662831849466543988736599365746849393991072311339458329621129244535113083807765626371366598791129004688681042809021559255739842394060209175682852511310652836074462258368585614009195783661045131981748764520205457097521645509475733755079764496189301399496514221535288523141623812315186484868934741942324050135081627715408890042458573290695407878899282059367527346861643247166015867032342447695957628639494068863112742822594287266708545128390433807158896595666191414318417460495159833794633224803901404225215640350509866298709734733279492065336515314780876902128499142930433081390502615237972995733212925433887898184738546449023103359766526505896735445610304187344282605634068680469687162526052108784161407347764089384679369784732036180585385782598825623087911827534204373999528053541493404348180539499964934041013294283650329678708204796094203399375915046455928115404839818412285199297230688482386546453220561885112173053371632248900061365004223176423594420491080909230057126750209431735401508590533969996625227561438688492812716187525652464103038114993683467788824924378793712659660729643777935329833037013565121805727712035916481738941468908706633386112645308051997962665074904207864432245961682888386753607154297832975819736809730232005149451289612093798099088939365058899147719017313073224010673324039736853950780747533396397836841383463040861046341912662556046637300200153125557934037686006757499498187326967342696791316038866235904270187940127333945613381896216643890135953397484964385325351660622423224202432613733265670027512402938910804188813802705881282093862830949817010959958308726012408106397630036833098622472517961701754361584240555510436963627803202251614051383830015817483505129976018304765270746261822797215644501903895398504214310565519563807668736636366843780051697052301006265122807568076172390189432461647639352548757920318385603491825808384603027242196662809121981516125240863911606002051525544659425917581146251410933114918774314940481185248821245882066632321763066033157445376065570138158701705344795909043859071305307206301515551739551845145851601020335183730986502838705321646422903723451839506743242928139524097851863669594647425999582198180541240461623011431289727459727033324415022613175958488230051655688925190339476937469283023266809845753594389437502778817297595132706649958372702360887358268055482530261216061342403071274783666193454534456907937319510847155604204696948461352991277436630670223834765977983782769129463659136818174771078250351224339022346473159888450825007211110565978175496932148564727111974380987542881230790956806340172921224465555341423145704879931306651110528421264063407378648663975875000235652491710619364631091389863843532501518988940406917379022276578575005931738486310662639555667040822869421378267355458303509679347970789694458899817285265773771438218504658093700504223912910238644746907270140946632629240272144210617719796154670370538255680494973228770911103563985763045290053696407746602344270363899895593874595410586242045362518222307188210370176123836538066424187245376619357781186695906999240220568063515661326239651047463457257510342507409582149980261492915372305934581896648097721143521483496480157793818678792300074321729097803568501730405073687486410525069099286866613106298230384371373881676650888832684587802441003491888182865192339295990993208487387367742702663837668071442774288203648874690224326775142467310350802853282876132887830709008432507793206422225061947009342050336443264545246950513244846629209145044503589061038453258503885650774917430097119065026401963766806333396254964089373767110590365036947586957940366330112183535915751005723461863563145723034560615895070840020193126951235397256736919486153349687107761146983635301559152753432027510251823863812868497260366899994298802386906151617910505954566387759009598500222687296991288786656968891475497880614854435333808877765821071241309777922761573348982965586998821584841245037048604035289657809538448141387012828137958139019011512006823666274168575372283258819410550239239805209505833007046506505582122095199970456209480321567936449551386483624376924027123863201098617177111897778940130521474460278161348651290659074124648403192537701992476088864876630876263787001385107496968035248735245434893358203431092262329095725628916774876610942091940294417123523665963161009041041490810474931197074654628092313062989708936791045665560332048465776481899921483288694438331578118002505602125409311978102224817955067675193149981818445659528465129987094356042330879474171426750037294197673077475527873810889027360641496114859643126928558045820676048607119225804902637148517219596903790665660256325890884959871308225019144760108027129063077546027141089899775906163937404575079347249756243176216764510145523406704531542355709310607229939110901785779097177687956815374672823146852700947180689705406429776388305812920837641393143250818434740293839439052636909965739220339395691971528773263386955338340707325536744330310868554077855761995716214022114347397713966444748332501036711563028487435463060013305759313859344372168916251952893214370004675770450351968442203729135513961156857935029733638045113619664038805936749016588971741769950037380952538719799078170975081041862834632575842775318338379985855528243917716561404450698941457288690867513251554966694275349426823108411885782343423304050773575560697845905814090476872475971687550252494733961965386770096217604843074745608273153788675562467522024957666635588789713635985878054233963905143883874175910226579826778069202052722832049864859956986246835033822891356022041798258196481781298544560621583560607809791785516053801465672507352457388061883608338583319753040649449273534904661146941836403473354587528477199694485800841783775533317962435870414692901427049952078951081039824849605587151102246265126829086807783696191746532737854647397527362672647867456771005121616120449866229425693733363098726153531156716071476771397832783198890494159083789862480930087716476059184404256452669099868651645872869618370593614627481393338959083144959617059954975555714825673942520890086276384946063041260524257364392074530171483773041292604218019502957468532116308666381685644126727089332048246342389613347338137608058947547214904509649848602182845841755523192007083627098801077525704276081228192300664017596649313131758562785579615987184485917657872985338146591888170441445385661386630159935881831048234792884404921893531037916334760667749296694491947204312591298238418781280105117011759375950357367521586144479528827361054131493245092934091461848560578731793637198005823801797694420923048134657521629574492648896333930574368407807384465736274563868624490211980767976034883019510280422793433795405738862343250689461377687294589466322444471608529274651621074361648954289175138633143129217504010940881759318720684844314022616555575972720747763098989934094335296932846746945534202366398885822227528236443565790566904760794264315605710935947524134346908954017769266811696485227965892613978786061521776543668372542568122488466391241799901973694650163248471346881282622485790411512426352806002854003262411468062893970216697677322805275625687777486248378558928417006755479224990774172796341188526025994016675198873026527269611096468811908851769196925626541556475079554191504825209427856535966929500371275123346835131257406069613815877381326026029760113607795136819711939776669491196748793641256660739475505234027990968947820690009512470843588693900000956116238300912439977787651624680048860164332347216594317466090999744188636567291822857418493360985163967485340963946622425759247212088680534098240608671403763727325571732717064165701068270253926670042890497162753223862890009508649039617351730970719384878400314968900875035958654187560453736804279058878759131762276037261663398058251510653163388410184096137415185972647229708789400162009255454599625663065643788362979303529752672588143332953175826934720463118217544681780137001979339715200182240450197108062603996588861745390660322214871796492660328207559530432330063461526920831881723025045455755750810210468247151632137531609354101785398683227091411186460756027126329330007814543052603721129609805030338604928194435947306141022273208566485932023438773069301962657191024073565273009923753366038118734922316676991858003647417995965188419904921385197455325740638272461280302962971417444221134768149596230145221930432057173766864238760969451577305206900351056832788550626842824788368833144827579839980303247388486239557871201630259470688383361690969651060815129003918815232735026517282096320019347607320888455564549662829021009575258130090241666792012143868034877205090019417766300297074464301350304040162564903588303080013810862419081965881739144922397689679293389995305853243080917886903637421956273993052478728177882234402913548090037722822192706466939402988581508785501556671291701412970280088530464776326995209738266675816210859142301044798325421692967866777747123371487034273872874296360435495018334700220499666479416005154861361159510677290258052460801670060792151590135943082347240087290904252230570231642936157976053902542079138452354144037417921260630711488610096313404126353322589603898205948686924178975903357955406041625001551671952590513402472086996052652521985254647784117827989906618240002421732229462568689842769389150700752671798215296147660978114378799642621726355443107248094343368776823512511993443496627995164845568927364020342156030751338442246224705191476735726483066271583587224776977234574037532079198034588070068091172511269295381518618001460222131201881796681712439756178322351103078801876485703856180922992315802910904973500806822471110999591460833436116185878893399349089475219410094770327532601752546780595164427846265626338322034600699657893891617253469630934054847304867691116472054008416211262920309443569777415628396312479811238284373358537268974188618544174627883276053512654345093157822201888979291274377823660382122945512305907198459206630653448947646393439209405239857456952992817689459606103802862010179496875139064949227821345080068343344176007014563185843272830123490001011507040699570876830551433590953603433047034671582352072867444357360981530093917426540032905600513192243200864046309410414410755851324424424465859335759312503446778308675245909839910209628723334077001735560590656729307115299740982848266361779649841124165878395421784572843714926959022470952606380037000247356410135044927103028176142091597453070025843336155808422404588879213442412761804233247186448818085995519846128475185356809522771898172463497232975401560998737728309229976834653775822168086835966280775896728534461670648782142024814331421838733576126859808145487596676165442819637849925865856858535276354870619260132860616536889157490139886531257991569006163029100636024511238697678460931060647473913342237683688171932966211009386811768661394916106758735519515846921569536074399053656480930047905441311769362660342423147813720533732503724852692290761277653494084041882756957351178419988671541976709285023042301147807255785743963526285264834519506462631163264426124214395838916193387092224403918725021490389817957775650992700938245503275247306929795179953062682437690461575580223230352457138353402383946687949031807289868775956653409929386146855870780724318905188843389285716259375580345406480083382906144486427075100558386904742117229560937603119337331047560553382132686065938079250634666953117691510646755382568189477664927900509680315142008230996776255520531919143751912577150280744153977368430244284219083135231618688733187500417445286297921258040493244937940332590467565669997809453199358285865215878909282083659853583801517522823769283461743370311683972476514290833655848988681383131447215655367141469224870862045867396054591855916080953739213366501919438071874328599712786212040707409285002677620912744164926930792186024287912336345519399555806999702669108577566815991695910183666199693720895943662629332271306997263740639886760308149601803179942089648681224637500029790667854271520262611487891738103639453344392868116377049919553967629357740962722686613349559454799834773959166482475906881493004805144174074429567820366563773650689825195462199680921116330222174087183990635634578412412966831132418186940938704932117227268663343170338568802617419132656702417362768850919227516439654900356549280395985435671377309356757038939874768074967186195260505698222351276885451116188282993143763325216094588397618705547025760534770580322725318176656066254322655591819898817482158136054356524951474325119812813666272948538361633467139580488989038644651250350693802288914791151027187730776805762871493941967122194518824300953321927392031533852446314073875333189610725304846058597724408492265066965946681484303514566239391612389112996453101890283010774215645534686039867339352905357396483465158007124255876841547537754038961716229981643680608399378745593210284932786382990521463036443015440411012419654986699220371382515024174177997658646974825223886933737244593660756542570757836926624519383990589204120108838603916884939689255110396467608466366506035653970352926820942655475187535269817896157276380850098709609434335543912856417869972931164207130581772920129079698149856777517847490834460368012732164455785314661993263418128989828401847149475564369951759594486016465736784505508760939900744714608027903743683482161237879726890500360061960121591836689029368297921801897204793232972893622473661275191569451400236478785486869888351022943875055420826438649809259457310365502317766669860294121804421754028444168432769312848940229017231526335597000986104005561639369245228123884781799560956748623840662754984191363524502343833242445709386873423084633411355390309227576758013104901269297525429337113062474473282677523873485184607419077399217706398054320214027931499770827472651200487248786436376394346521776206146005132398586998933424662650704063850932053365707142410521438173756742834514463614144566000457110632899510338847325679322217189671335087867164939595586728707531417655049674617882414000895347810393371339629248876629624911807592891270026539492871868483940077904780621249531883391273209372525690671786140977482469548936666858823114749064844859527853313183593221230882986611872997934303992796713928719544346336811124735348721129025958919772664318130781736893335644925750071734641860512817182664826648185324344485933244828248496370215722591964811918038845024535542280540623506866903835205110582772219697482864483473382652279266841238418606789076110961141018295896125088050576949558713719187567884252278129182398638320007035396689599881393743745122836059522704088367777801555551611946022093439627506001627334201288655396735285999406552862826839099561135063788698513568512847166476801787988557000119965423747212401912231408374801484428260486405809520048583104019931298164199256363302701888791428307890211216845408256061266785281220424485510081659524850512539489566628868720125466233051005829392013579073725342543215538293354196627456997083814375807111813266402572569611431045915997977951169806234828679029944431777032846263112320980857836650531703951419847382872224575852337261058461267711642914442405358622390718589938614497069326188979790883507864944876599938450204449988287166212609577945973368957644077493348960919238169421447525808043791634570863857120572649803281350097642390649443702351295983753192081314495821406551710749889191524883139066428397064436913593422502515065200555916090455999661890083023516474809635283494909058425780510538009120556843721817402753192056641779139526576275918737130482473914585337881166614231651787855859987543849896943399324183299858472427654210435646847986136530682422859320270331870515288433767807310383171957367891817074936242966368835769926090602220289933535470522554765934679663487875120751221497449697921398091083956178923378625456811467367364982640232794812006421431636472690227856992333423048882320036975293927985843167355375722406632446571787066212274772334663594520432958523455571670924757020212657898099623186460884783942668149657776002647403079422259546345409860773614989248643794144588709238013817467195072120933037812843963748452947097136874627642447124876942290657951290614453495430707865994499916024176111517766884648462358673920019117291662294035518350457787871396345126905325937815876914682395218410842597091720744179687195831319493563674304213340524535336659947647111095879038503354825661870325674445161288577663359474560389027670852846356685971789569927768228625071127413456345841604847460438199467042031377828745489747624711820959281966757690458524262293658494238981779036635531498335805752923958933780950038088409434199691504700720543461339134705176410472996388837267356997485951252986760840289907264014255534592718098727293969289825125358984984431152855183992967357831635117210359064879115263289758955426011751890943944447237449186823238009602123337893749830373187120141207920652795646149565662746099263858535286795197008721153212351110416030098090838814266445859688835220500925713933642240924155163701762792692385912408778974881422915475857241186603632791885534024109431884047919357279992622937634402369632475341648328673644363535601412918322840591735575348765813821273026266940674542763585915120335121962508749220679786078034050187560952699686335214347010343410552678002600027413780848715301971137999252868050979832394273802151070404347276635235510520868182753996192866868397136639337018553515391379402542753809354166521910831158884877172843872875642082088738527672383477318106123807940117020766915714563400152167923631530835064576780529789264863713656778696196377525074636848990437814475414378095288915614334414967551116242358447823824100117458744048443335334905652676956821846023732878298375661277083874541980011071196510228084406660587537830861147232401269345255240456674057387919337431867900202856797727618385812484026453523040787455526525405940894106457182693253136646985504798549228199568935786737769051547059656243497426035520160489685586738391141606641871165574385006908833943755977905981261472497016835579669518342473270058439770631170423098834390595474341113633542969361236442628066242685371828079143298461459027924644667060608371649445770593784787978046906591502711570763520193372770176205290529387556731689446614128577450120627681266679987900866579631273297760339449182472696750204358411213132562625676817346116746424275922835131141748104335623502238376326415227667495059193400506440863472492492253189466470943405584065252941068689360161722805654995239410831768450057734859790175558613267703204199215776418199405961753534097607640976996131528132748440881232474977293322670818387718936228327509847337080974923705197412259271829800658978990579866399083420704178914751284477879212113058222900134082455340402083136820182688052465662183969300747546886192541323607298169673061446594357429532274464966358644508201197155460936671712237052765957652730116217349149099508032679851910079150178408923889914300736463700945265334205162478485126487908508489381980156201075277164204086284031409593793456820042605451174306938994719142660426093955275897321072525394913818057840316483444317816817427474455054826790752238077308840659822115662188925756992750499582411338839253505220223654818492937881957004352701812128718578243524105878036086021843496710299698502090190383253202318221472004367517076003279560227149603827041320989746784040612462105959986570563838592178118831240820629229470237519494481554962667088470045541745617811985532752140808009537863074340422649989031098364467715057388838612654880998638258647419569176931742851009278898717536609938410160168494227227192289275964194283580926951091710166373790614495271190395455375060299076761240774242457351247807260937072138548867461339857865586418150130662338511907160528953648447301065879423407687276192416702215028675500942325804301189756239430663099030032940242802239198112416948285799016567656644376066670702275864325910749393721008957667641398528136013406530623617132565731332900599770110184127214101733676251697350030438449176924366618119121284425776005444904680340230940629268200994576345806476812874075514481070004913567412090670245250931695805084160340856987979940703801856667483397447600829825993344796465682481954515824588008710948870453596698198211433132796827435086231442081840433200403868428517797871823821225848234171332763265980443596861956089425276160786628872423687425577174424647990814121438689255331288371832413705094364223994584115971434258930653719550312530404645051702629234090951062689850148333329744709352698364023384320621931100025858652583402999632935310425629962940738469674689330724108352992926436229087992455431947649147381482318597012519851386231301506814300316587965224855371062125876665684232444447668925512061972273188760250561798429414562570692533965325527312454088610857160039567298380060320699533274068061128562016026356059447094115174726920208994499517294862823385498543544288949818112064044413391867584452917941793891334554466176284396912607432949269027534582146173013127491447586598842052448605957151561432161663303968513276408950514726027695422450094319360835592176480204845684290568384121833355356868109098781816994313157382953207802173451854622933519441020384573972011365023498908820289387864178839839852063492285848998866717301981465528837063918567499273307298624158076455004101999411345738742577360437847406280107353492174588076796631981208876216121856780093421441016556639308636666680828642929209948180781272199724978115443427584310279574289750077319257128051889443791221375607677242979091050310309807780198275879509319708951117959829152691146150698328439346291387296678304319321752111701455886608166575170580179375398364462288932217835080336941465100083871512734623935204336750367871712033390640756408881531796645774165465541593754995261198833364479735123810075279170090200831167915787349735078395448625850863625453307176451503179923629894459656225057430321022992449147609329851917127584271574045816801969789800119247117716576788443078080607186598888556204460330866188304937801862348219241880879593702358108277783488851920152575702108628838332994611987247977292894507835880031285637729476577804648643882752004788583401970799631224442559759454153153546455155814575545162535336196488952715451446686913177126166639416795701566671135141322836185780419478202270111801446064546964602928230776012579621273490554913440100369621964878704388017006103757431224790141912655745688545840713382732405377147987475306752011257658621122304162399988101591512875690534813968039988450894995422854128169691936227337333806537755996434272595408051785358553402415030567814782605320886192976553689083388748487505867741863751665393460987781236962063271766093780539447536492807543837616542163243506321186908711448577185571762096349116353198618343639962804470692409916746093773806833427211775584495933998571610584218517210509060097381508660510003811540794668905455636969737474733448788831392290285704245311673284456261594943176321961420373328795194410474750051728353516980514027118125961449091099061361460126137680911899496028936709389492144939832370736609600041482506094503349546109144387968768567646602212221511400779697078711967530945653586035435305759538383329214026679036224821176614615525390680223570845770536134052284780567325927275302928354404751933547325462820489493994969333422248302080171740125396939349471361752251672334713747153095494229862343236984042765737940057563207513128628145624519475558542377742929420905632402501848492696829974339627415766520239573222019235840915383207064932856465053024102879725833420327576105684792550843102508325293158125700203685049208039339372410907824286995494601562542655323333005138778562511257367673587103126094235729195687458582371733017910795473117944248770953577729967927500161265292001877297259350270955712383705075499350809700078104843457847635406617265110756697411826643392114933889932737049508448093182756595361483807189363296346765804723159682850710881284813669016399634065358617229303054766777637519083404788776055019099325693530857131514474591196775798042265144466860342321320358244299191469886063510729435517042231235405359104329101237057980115732890643615176958260457286210398961635360372427011235353489184308246792521082221258292035834619849131579537699453987649766978867183076035526338653184314940998310152068451341709895822404830834340496021225959201225534682421740180062698308354093322390305742660297270848906299945480357199675759591632938079383454542077389246064588685433994700745716606192817600711249634462048695840417279577242747666188906221381324236240919263893432506281520748413092332828889027992377651102678060026695794634508315487668641195128144503318113117754950755601868002891957963111925784846610331428540503149050338687007694405275798403827833917238628303278419305069013208022954800770894037940953611465087311881506302983486915271422308539676517530192350155810625800622864889572227689699548330181320335508103545298789301297120734398875602786001763834629936552168021738415863675870824981698710921620698032264384792258661652972762561534687218916634267189714991724270302139987503982257123425674494484553564789000962791703748634125340371824511174904829481837007780813304037107279547008902451187628201954416870720031177153339573062615057525295031966956102437079749019665430084329605665321506583312209018384956538301957290300505221520580431773364540189983832254200560005307879473869164110365039735278200818332607567426590160257977619132190396577670969808334107624465366686903513477718049190916843584923010646130413090567975052573125945438839380066352625715526655572602493200814515846205292259487416763813014070343955046526593623613571981028134007804810104448290244102051706823445509213452537624044836268403445897555979362887951107853766285735144602637303449318974783338174990919726599591455415922021267169016294582090345756227043851224427035981651650475914658710257357816226305955204993782763795109247552727746738430906981979357666144169217703014832354552439526105683602561420357136423605932817800606521954430862468553406848267493340463009365531309554036056332835670797510172502709820948839802499672240709980358887691107219969058723565496241413233002676922514654146398763954870811810180363676764868591961643520829012125443037029973666168218962654968315453992053684329604788439113945924910072764278786403091721063278578699610293224683373585592531895096308176715663834270181965338381068358356169626332355181163707847737909337521549169099040496369030358954172731918052923931197200059739944042780060225374634228238457358072729162005279178617405971103341682783208022423326591496115334537594369485252844004144323032871036086070796273224866168284879781517834751033427693552696905541373660685089035769792912308357377655642821984586957432012182447001345277746744433000391377461122233570355570089877357079174669000783334564147159947354053319190434857901291782939196961547603804205446875169574914569957626796619228222808575827933672116197662373229486975737762431125079277641906771024258292300719921204547931382504395130687280545011446654989303106472367123189868243706889432971190434252736246257028324121205512634412842703302853356930041075627059692306826961627899007250947776816604353328771327424890181690917291597736808385110425853875585559434143606181331314551002321927838960666385076563842704304537315643281811362647385631008155343524691059952015607905325557485264455212964470140718574198289396027342290298278797058227689721757960509775424397035809826201008901039207806322214725833528937447951277496329856440590832532787550740702775348935261603067092017739759442029375571238005979910030902240051592018588327548242451597838884172002009770298716702118101727633674357468639486670872023613635074526744974924946962751548918840058064854909484661122126632561532344084221425880464866905932412708371272647639782040971886033739050774130386829281773465633118321857011412845424209136071670075459834126740152858741862805516609774222604742972843509527624817363226668179641004968567636755530631991048218564074597546351763753330273435871770999077679905979694800192870343600176462710686290328480554833879866367377428116678675394522296630313588062703959065455917434650734462646996290152949994410145659292682641694539919172162567716953761530969672093963025144298765307552873091620226480878388761806775139701938383621826458186712673288607923830384602671709238218709149125571226557922160211102234383298957118717849614109461141074806754169794133478430400736857243914722669035786508451963124362440032372747775950252877407522974222368031569802090902900429448302862228097070508185178056615250349577421896783982973252065157789826416294417786612548567253116706208678575034757759137761744358011481761275491782303568965073954646033148928694209671403637849251806220814739810819490428828229070042040500409071363548877434284250318608606050783855568377310089371640180674582936029436789558041451111880208915092156589966010975242359157792856802766141692905532904659698570193708566208919414137868219776744099462925385907149416035789549339008151904833497896931733192388719788701328158002623717426872816344535809763221106939813762409700260295059829887394430408560856558954179127300885584044548163526754607694731348576300131282525339028353217186982945681249912564602220321491863421208378051399466210103521020268372587158360304167175163018122657971066794035889364473503155932476764549781976580722953913706108123496670522979003814784605317674540817433694624771870301249801207671942646035287464822795473036056145700332188614884156630642912650992926019507124639301137171691060716165823259675444743293192441827372368312305448297856325389276642358549972422727480629325745091443105179543370143286960324335612245480054894169642664596782109743897413279299813620816110868679413228474832275341291504339948522333162740507480402525278913934801466856910025555423476529725027980993226676144369499097829568601622238547341819992048097830885876994391198250920290177185504605730266343153796471950008631833338976773862032952420382550212089051011300130153232692859777335176261211369165301706500766777237309169387986750061313057701853265571586336678519549786394669878952909603498338367797008562823963100318873692629920176157515949321204373363679024626291242027750484414440024885237347665795905236523530377550205279337069803138248218203222664355246298993283805635314186997144381057302911134358123187350042025501734141278100642277408346789746503136487963753716676089163167849789577186052942026323356917237243472926860249556148237853369313961928346971271272143912307427822928387891912747475906999332756576941781010154180124945005686879209676166494047096922035523401932340738840969967400123081834317744981790346271784387544525420850244177243867389583734037599078356200021017780580794287645623068439178210460024225513617357701262041729994876350661958359529794620742962863603811039485015066330861011907086974477786597766545685033728421344232498885840614450156534552297291365864040678249871264798248043639289416328675939590059697495607222060300446929442351952920981104707118469675752035732784060193605676640756420279804526847740087228012567211452901850551899853175163576318260533830627959301739477718137614613591269237647566110463526134123199690878227540180339519661072292813205783272822784514922938224375056123099751130349576254590309464985247769676059140355449387978795911093874827025166878723907999868637675952622854405454398222285625449520357282472540150993420871970487581538800532013547641697733485807520658976642341836311572930069988401677836763150715626674392284231399893333112577805847710434342233557443566536581503514957990651271403844438970846998256149535666411805265390145812921837302129471351311948961731892671696417035034832060759143254534594342011281144317196399989505822208111166571713575257877545766241469651139105243442680364013455719333878628214327960831430663487818993296143733410995905423209285889745748125379792894587797928675210661514399892742059539368415432320016908911682204352946079076251358214043167029564800570011017781872418363554070381051323173283579964088120061448545590608988701031730639488755898755486643567689253116601159644250818856964595378553805865587380932297880365325345958576805240303798948509042053518541531219101998478046402571207290377601374429161193192601875634558353713593216255665541542629468208732468473442565864277378321320994199926292625903547822833950204682395609611766418601201248265668147871109975302807623156530159533568470223625576999163515890624190830861815748182585977229405649840439827499107577329730065677573058882505015153859213979507495341688382076615863143047998918205541122165231013481772890471894541218202222643149893978800328273179551349183939436414528168949327617764890487496775954049543012955903502044968350134475446056519996651914632791258145578538418903138138109834157960477540747806063892722191443628207306338780294954474471928904418252592873013913049921430379698977957292937627279959177379200394944920910049898335641774317700705830613062479046418337399334033408150567855924779781305502778504918483709642217159132449298282705066167448130204126893102567674508693536533719614495689122366658871318303147521206806632493152803486020599751768880333655632218879798827164063223169897647539215138050191905007603442891798335108024035248083807981903055714777009659436095865085923357147510562098536336237281309572881606395693771903510181185356677025128262824474086990522928840458686738748614323741504131434690081257812523701520824965879886748256708449122642793945760108935970416071343173105952475433709636240468410580754676869978722737276364640187154925761575905295904870496139769406453995362596259903880150961895876863011958490464634452674005929066985918304513521649598558926075677723210479519046530597041503979746462655579754087354067270463341839919639427324863026127828163427049828046553669928584962442154611656428388090193666778292690104928845760796718458404894911452840006236065553945513238493707263413409663152998566117772301231640767281011967706744471530709291689925597039620639571817079601153904459632552757377055830941948148557109914437849538810904860247298873093504822221250651508631703947728582733011805703962861319777755667838150725399286412585675542993124964392502160705340259922448588882300762584083062236046125467197490260958501528419118513730760577933531885080696735007097967270077160804214582668262914393375704410196703501729854744774485284711176742133753784342033584591991180098928989188581498086727682658098949418350710554084354281041613375790187258234766623029920991221781542071997224570169536189475737614176182970598486302109018109559952173199540039148587914400364302156025138947711578880104823722000535750204845257308305774240052727414045831933497974334918251474239208616911166706927308311252989627276269776419914835568566711183751785818191977188976366727890278417980696080881509778062509923948451048977694385833033679769577441462002494779395631956291252315502766208155660935176028850514138790280922665825869556151190814249290262758160492017631787577822096241328478205206806409150979603661794108815135673375623499395635400172317762986534571223537303438770749707902689073965664948426329947627726575349692190856167643961146143426278113027694896312984100691494939048891454695905437980134417884848744118544279392214940387762763444899625449314554421010722790278049263572201318204800068035769698072293802107667047521966439867730408009636168706089845990266993959614905971902338863635411835760077942455214430522519939347938255337271741467703348016231721562189993735263134577294116952375545624557991187884156277064099004915751345610714914972121709565205283551885406708666549259057865908544505852556634729736020138479665938173347691555719014426703833995778288324904975805409086946125526270260742562747010508851146839388069877341874474934455828429435200641339436503803396834728408230565742625662067104866451165556223349123768558756019156146051551878871287178484280766833145335674143097045397428988884190074478090838970991796404533408842199596319612972398688179526663124580220945419313851646790673549382483721271552584291800284853364062672673976787569006682278035332339880825726211996936652999567031548618162922879709732880636243537473037749770937433818762943149170972208841138123479175844586219464756620325830445046715051045603189321531064092685838261357772611350832639523197474045503102064487289333379350614188748106751970969563741450021631615634779563926619879633480348065668491898320249608400924883020629447480883768356651002950692347883466257230442629852741876700990854479361098775996994089398473490500581045563178510435473890205379692657472752258204037804220420015491041931203388604682103268546065430557761346868775731746040968293105242610262620407785283350295907409467670885948904703436366797934679477990665456236247683736113789450976738809624996476983921083660087796678971624948936534284486047560733830218562628959051658048868971037986585594512046061976850616654435708718697875501641741312268906304159185293691456618313429295555113936590886464411893853303826540802011182335310772683785435445777712731972356813886562067881207775692555001175459316643831672225450832292593381866013413228045076842420497273832405767880853414716336265204885084565118044574831913734400457109231427550071512064125803753490088018230648908359945954464203150230454616101099040630120166027911847540065354191311023655926625705273590427965554529982587147940190509456263339935375286519581616279277465700075862527230488051476060177896638182409903588520912082028047258726072186914734507350707955741931078606504406120282809299064787689754337297892594905930633515704310902136281523864376767786888057041164294679611922375665983060359766978116769108214976844014004689368757853726180856357947069442636519919091325189310313078117748100775418503653800784400948633908761876012089990192363018736889648214040985708480747084066019168160096053767133906394785774649687145297780839019009132895653677655714492426329544972005014255259217262961102593144667027713086342950519759608234615287176326818596396688968510002130897419007879288480317442728320489346124669844650016268135322974830279906163298950232754156640935978125104815194652712372298582722629837832164785118491567585689955538228372200629702552141985411508830637501568455485674683394303175877938540014098041184579892927022448975857580687844399538988718279653835632369019094285814776843631720345919026367941533285721610042973462617571312511072605243096871819305272993910787267711162752608033041444979196071483399763617651857187517640723211277749813937687706251802634137274523063932276240862983266785098089891207714815296247805626609588247837571017427091869396005466125191552637587374838386922135699047040547516575103820605299860253191406220184572525977178331701876523500165493913559850189195669062919868601470107560813077833754494624975839876947043016661770087437316979749150325592551260835928107465896424483365330163431962137844845873976646961944910432071286417297895051923417300148807663645700456994986513665632043748815651607756701955923543817634582588632902175246536526208830312850677471823597997225560633922602913479556311513631046824359423809996580425219898754334059613504214846838162780718410871729347125188670912523381883329293064758193403098599064886881891382560854167741297004453392794657952146624299246826582329881870429243180566230091021137054438772936504462419862738168669188022727615518261699801065378926600779588215769379722399938616822324314279946821941341386065077298106188572728409930966991501315267015413438479681199161503713705283870914333592080863053176851846148791489274729538017964591105887575459165126682214185102412641911069360531551213701387664014249271629798824914038173354688467088888004449941218673026180321898760509921321081184957906904562177175337743470397387488882364805437098864044517573461067129348453688035573804463093660882382812205608356274059967513364813273772405990632769245637555450690326144536885039623672350668722709770367183895307871682952865564507913330861756284841627165944312168589541646590005245521117501712797242975416625146960631759397263438271743402942857001421321765857162638744108262682599275196983269305018328441694539539195843166374107842772779966708841685220434993433152795735677766411258224862726836451746345385313837909261398454528673824240968553164584279630803005994059703773233622235285156001834022628865935895831741774953301061909665843901129115099611164847251443151358983690422603246221951819606787263912455451601463968363356715965305323241513668634512519362277146441411815570517932605221051958793906478762767852609192891387100096694824981641772596629051951914540427847596652105614522045099723618576993125720618023896068901903480577100301761301011775230543393424823939154316044625382778741469870970891184561438027736347473522497527996437739753724050895423361099207687403032816289418633600336240658144863378750228470490501293986785494529706001899915768287755549712442033848350799490259523590125385738949360589693785756421226369693127653916549392673830778329312753901546815255492186488140729262094080594496167900679541542708044401958640222185763135564276624851788375953468963570737787578584571481018804259913703450088749106597993434464747371471429993256900800286710654628728939670126522570907208782573745555170500733779087486045573226673892776790212092833844473439576639244146423144355992501928529289309574615655974916233311933875157113006093632515473364574253084146712668835297483589364351088727669594950386571092001479625618331970752392282996489068062067741255671590426395506502629816931315997809524581416977101557614813530454133511366756281510648171969716229447227005677486175999367733475961156717671648675537611917341093152407052813397919594550334673446022651487307883225731004714373013808489379391093765865226786624444242879539079571752544450686070996554633943447954477342059677105263805618429590061766481331270757340727291846781942396369923114351450501218265811266413604829790958657746796343167937922570000789885070308847929307133258909599509007095462516504749202252731881774481948683281264851853416753384947460467982959011925906728987427257491558397906533161576832250564630443526048239948317053668448712865652170094867902146067720116323045510199824938898264044386740033449341766209174984758654513160789314884223017648884802007230680607221305319960039020372288702219732650115042614465647104942228159271021826123039055009232541411267136100705233968752559791249034034141881848197080891403625309912999380829390193905242887968048223326131523951772104736108398608280396265872928589645770267281670375866283312515897733146453568993541389702304239791520378466184028488657597465199687938835911133691541479940826439090554517333189425246326826142370225771759759490485066144580739804390784856330234483297201064247138223730386157695333247411449268540790677243429483214439161320328771339760492685860900027396282190672757390176989898939201820802003124980068575706573961404739691821320789313845216071939389913264710952519852021907279241292490206148577796786470882004211315967445484322937730136290369681415414508829893995093308981464578610206118767955493379086917594755119439704770711840892400706949989245100840741096610502484268351335671863932042057120615873036183402374068166475460399087686294176190811189835936255012414588695383890083067794366743815839669855958806277204005710049371974388291101172050833174404450888622901198982301795458420556567259323003073772605289482022516885414661196965093331223723131594000656617681503838341585110524314623252849562462429354398417569433545258868843287243477655050496716723062417341445287622649519412245975723460195373287438018749561972869353535530732197332399658166048231904758116062498073436214386624015095586937814360902807491751978365414931636540187228919098777727378227806618752145403602703970955063178085275385005558830834995380496833551814865465782256854420250880712945413154115912451413785312844435417918493616441200408631184097974329644693811166349964815550231083861432228429584830781692997020465075298492923973685352005400076792597906430039203633226912607629826663827440098745875850638253561546507792488820402298264553148639399011714814835548737743421001915985318721878333121383602853961587148107003297473280114932065073879797765144693487684206183544730660855985727940637577115818580323390001521545858437350008714901600584422977115332294208056717270837072935944252785800895897337982846028104333071538404086611624171629905481370640055399604362630297452657058810785169973717522377501031375210722627103834235129495555227674233474887251209782889784798372956132287821661906729333301356714255583252761703746160528399551269239770748533056848756006318871208515819841438803688692088009924941930705775464815039761427788944481813035002312094280529576831155400304558231887854668029761175362141745709840547936178665270770347808297571079389829360890318947638905788721970260296629156114951701398235042275672138825318895151970700327722696379995076660737025556550473563717612428922477326353815747361233388350513776979341131936624890824012258937834028483502079832465598902832494601617321684984726126541166317548053911751829646636905516463001177083631453564554472264525865708359129562169324979857138878948209366961859151413736447581725632017451874540074168966176652014073089170398666536607754110597760906434096996367069905023776587563620945674572079679003666221201541836551262746349683225244335356014574809506959685484232390276621163420260487953919078938923285871614551250938256146634285949301452117450575587411111800673120307158970900199017954279859433486465512002002413842412449929959467131901671667639693478521813560707570202339358648649559961522096010004560409860059032915880847987437892544533129866339741736844455903905368832303884920968588609143972156202412769711248384041906177406064240394897082881060536034895686160325561041751809546040365324662387670694527535077198059885808354733352279898374434210026861824035564598869416273292157084123160953254810077082634152238852156172055427049220453517638078102833797994725467772671226573250103981085736971136595814727733474352119339392082857553053486263392884619739007676405663605690427111883076668140863133330895276926313873810162110291645638010897555402402419655209202699620605140085735602604541085227992497417716049841094371557136267866410752393689543109362059546687284354438143498707907667722217582690469649043015138476007634130610132065034515255750557234519087914089058732021601392511725788805725692134283734870362236217254034637646682480679603104909735580845673324141289953540234881861827122738872988042835879289350724156015030044007360908326462155441953572844764436534654336229925360895814096554432982053530414289017117093309739035716792872265472752496793279624053930779772978976384941447578349371024106831899395845683875273976636917013687406192141638128078078947220020315291684075908922078561333842276170454750522384117111902438289981285246146316081942842962810239939408898215423652444855660188285497564424556042514911128283062914255992436950909060894617135907937191823494426082491945216813825050863001866522138656447182882858764731932927612037821765824506889729159325644468568620170532436842258227763212434903196678731066339827461576814187926756168651536379722069048211057196508386906562810887420156804749073059486465670711824424785410796396150090656266564728326858068226850605909030730553858352015127327881159104832063561941016970013198047346038034112639984393834619094870058806549729639818300522279615756420190211002931078950723026972182930604895906959308162557675413174244511597399759481851577086887720041896364333232289607858624747184944566629590138587186028445899148774478218015808671752258791278978198712999747320521514546624195096067704337807644817832622531639566285166526217590126824395006612255299322031163466095934337302851296026295352316892634897334375999452802904004820749764018759551041082581226817278349845313683698727543755167621983820164195322108174391044688384452537784526246155149557910931811628973645350779807614019984536350517726359110509677490041916347034429670604372917332210048630609024910997355627591749015309162931741781421738500081400007877442254675135535672007266305719993520726968863898053206286092402294868415913414451548471430707226650473169990548373616708703176516373267015593538384487550628551272077695169396069055135530031514865123508399113715143661729843588576902775835030332607449749603034740003759473626549912437256615169794089817260584693589545909935792476704801864980626668133305041185882935911737837868579038233687020456744092487141473656726692567229049405404062892577630232347533987094103977350365203031298448690884103385176031402801519712072660773453399306008173097210279587984307410599349788926119212725576733726285662478302206644334167891979530810603854475162173441256939799301765001306392613605296356005648778801927425875056793132821025318859223793237938755954045703290875540582884126690059578027697986650188702143536685563799555237973996080136860314954345195172625454182969259509701989392469968812178643684279598661456541181614232720468531341878280852558153044216585876554580799139169312745049248902280983040745850443144675243721927662274685449263950772098734027838261408363992277636246338885101287419401978878278331535330053696580777142243557724704534228290927056381097237238170033867464160521349786139124950699988422493768358672165850171750061226117631359580580454127475583123747368498550510563131867058508451780079921146109728887617011979574599415495388602761916793567649759652550210591680421975454000109152555368723721104168142441435994738165932698965107464134679563959832980792570857192896985524628079750014372973163157278261065674738393694412052480629299278053351072376126182667124214920770510133346455425898637382288582931604022532497355795732796762912452886735591670452283493677103807615837077484675139258638193025692474609740688825531997697120092614666249924275301221789565216934166539154973977057203338743779386316665277553699754403914092661670909720140709804470031002733849302008069549431380520951726808793885788388158834533307818264641946675737670636713115775292183881573096733485783620241842374009304885276642383314278275623135824307638687368058771811716320901027034820586333535527507950199650371641075917190986900136295164477941988591377708552328326354763525681829069579514930249447208137082236996792052862363630950182287239768420469529044585838404926200174101473666141094715142933472216755082485417967131434074318627580563551680578583815531824954233327719083475603503452707182475312943115751073941113878078370204866171861277482216179247176831008737824981571881812742056060758401404231433823317384205093730554998649929696657572090675349655764745567913497503575173212266437213207664803960824946487098281429823052701433082783352415538488480532813804429221236526308749668070754487171713378234955571428788630609686124620157207347050740923534797139089279491165380803622188725510058384954845863695692157853624917024965825879270130078166324544046428337533489437249240057920661322227220911531752315795097753689083566085520624864725563656508829868009377606599519538680264886433352512543863425639225589019493399914735967448789774013808570624554538703686105900391834599364997760052927511264065859864795164611056321302832233592819228071699209771889814579791053323370161723584031985272193061940990631178560344030618014639858585588009216865940939263088712624926861291808572677906559099152114940793151930404757208063489702033549823692432858857009607961378789868008437235220244840383746957773549222075518083340496512152709473315369816876802779426229057504680310298190526826314903128733935877147120645459552784143651111292009221433628934339726842555542056068551417621772190449937323525519932057002637981621391217292694273141451258875640039229869430152624043488498743553351789772597947208156984043281722642466020309561608740256645399207928760713959142497462324035547138615772281405169433383940174065426410433231088714969230907604149816366380423540722266768792667168591378138123463996056220425677068926826743354187842291849396890090833444730489980813577919248430681751790883557584417811235175787734997733289862510329804073954899463606179823973342551129430065704497715209102454355811127875497958047254886793954445157053646860421007556584869288246367464427633405281690632390996185769131269683403938034507126255347684873688820120242702432368652594747309339854296728230746740392893229706272916922988981534334807036475087623065969054354230508381946105191039947847087604764257135888427855638614216151313957716403533877319695237102516987165868623405508552050169016732604946951451289705819293565362829483729512856262371551464965670683488193577728069294423904865329212279418158971892312975160884210352499165561510831352860636515339605867759119360877293825761690363467883828234711188673847328777424276464310682933891809646411711540888241443108441780803401194081637663086231659287854296523217738612488973463598797004447895804712284397778780214593873300223216978028360904368407307032966384840736052639881853109499985929578632756603083779458620064346282517966444754893323218475812292853905233083397717742336678695272929512793242508053811301587423446658125102920526599196025193970032729120949610560457613039696594992804360399784197848090468065347338049143388602008266533676357108572881357756951048088556802146044247700225907373802689293852817361909175045664915544918535192300395827110709603491703404267848893158056496754598139030494967043144825233287631922832403708321647498434176249915168180157009531747429158592198527307821276582603949007783616109200470095299426706326731125716151666804071602899986766013164026594880474782772596979370134522165340412019603898832588803589771615120736455183715194182595198981962119145609504502121297764445878508146459460795330691955663494194506412198064499015746415368101601079098031381857325611606680409800997884936510519132331932917438904799732373639264051881600531801009267541979507820507531947931822737501192354713467142280374405221970601936568621077080204148766312115696026766796865615440083104437573812527241924550224037811953341490068173639673675607316845367610329291677938307351705070617702705481674980352117710357461536911030153600662264042903567692897368923728193805024769581828813723049843425121219564490854864278719925320214885263491013968029960318459018731034633214669041684268138510378162501056554351367576227576784956774448717443563676412338765268728527950070182338982532382416077677887860382334760430900760188079879019410547008299276632038054467803772470128136623301869926475794329036473763599450479307524026696546922983113037716963756292531907144255720064551516822627212518636052525789302917081730335388890205138212561810547870103139562534028692532739487351888070142318121341332127548450764854520623361634655419672020578721810844960224378253678499050479709608557113117174518935855411536033124759520924403442639772173121189122452804014304645625140999235552687308334716675347040086888292403837011962521641611040733983895923248146685521434229343244477539196274753358519855924394057765626139484591954282494634192055005657403587464057969659874868584064758332820448979819325004767414803087026085619132847169933019262333624658170978158769289912042965427574711350812337573083098667787551987043417221305359316421681121954958810915586838965996443348125066060522637567412698553131431572612902266921916385334171979293756459645237669592130931514012380134921817732728219222275236733259290127518228426911387478889169115748635576792761634988012540911546640970377004739865416682568562067995146276487374281705242526438153001777586941945794976780810864204251249302974568002669449880596040283789537669214548381769936259974535205520665541173719714349181568749138667413498792717433235226209796348538294356514048651338551207411039808466630434149245053096969904248462562743703988537432311507674067515998105562058509379907099101077641875762546905096081389248198183412124299070100794326059485428718552811278242788788888576476726065615845137591693391593187406818104013144599870987855223932043952542784170002406948283736203048146539462520510192746857080622928643579250660897740334819949883294553833213560334733982320346247864385205911571548322101060985179422063003192441681080703764821820827198258147954589679570828363844230217775906582352904390024454684517128811632622140922276210103395998899792515595020260759100574345589925464991219948700639726510135155254863009214256215084653813502516821248991293394276368074029804569864067537971849023056244749382535278257133689585434330007794301381830626027137321534496634789377926983830691588706479668641937767994903790321637928607960524950593513471310776695912241869800356110372951887721465355538571000478556724697725748933492548122395936308541367847097749093364439790991335767829506417130206196762905117358719820264751830407971944902777905489393277517734737744903543425781323742618225900708716230627505239437616718148275211850283438183474233130465676484578236191805862469967436282931193405663827641461316796234176384130235039261488265129532510730056429220645202213507044861109156624384408396621276888344449702700197347511286290846104734829648840334596259410215052259940597712212883248380928845325775318623283058215076225375108615351362089224947750851966491596262114351972240671297593483549248938882592109504544543034702860693236577877715640524355604431377717150843638619950217212257546996296277643277159120280743614371367351931708389231075089007996693670305435007654696378895345288334274424961844318670849744067591629356487688807816193776017644850326098938519432777972390079228428089346695430145536346589306026653802076095655683454082558093632919537633837104663749239619114651433123626337381657810548963979655807474137344806113168536978870072293579195869836868944732525972306283216518620405421997983689426193043961992028589736381691282366970255053727914655267497867872568908290503283840259191752829374054635279805259625976069654080772466614528307384723542167942203060994117600432791826344885493952799195063073392002169407469654403942942433030182106881797281180961451267139419614096023367344390187431854432946365913269194586142986535950555911095343746157784532002320402437584877417730622584526795336814306800732305206486141115708412342001708084995877841422862147147457857368925639485962958566005399569604787725896173685953345311548295319441289999689953610616611839440880331171576570445336600330068404644354565181109937172531738169299945273488657810064386421861677284293242449882532965022338152714223987859137830872729932183449244700086319588647816603639411375948019886649978553336842359018471697923160092881932935716085778770978911819377268925600961851656354465189807274256048801603544529875441111811643387586590371328709320457386775825434395292805121525069014405148860631666181318361456640242129121990101815667545101669329615139458104046294945236560242456986086229445282073898399774131020392680585421733581355930580420838263608864522376285356547812591855292302179283953879242312640377312210789696008814224012920456703409332900315683370484989206154344645031300345686053853857187570279116233383833716116763169507702356613238220472827725059873368007133815788393514986445730810741858283047458403990241958103102184886448910263693595472824526985851820110374167476535346260017848896980519815023277725439578999633330260311770756724324324468836668670776014722679571646918996348924702132244842437131396668500698543709113213844068178164315738874764278929538568291949567988113281259482096035582899595419969050936992099481957458354830535132343416233832771443851848113319890865694135611182147525040417605638787123670504000105162080375375628379286195730854103575242117568158960441784760291105047642059945040023855044594306864675566534825185591797027052493359887557515868357003992212695583833998856421012491799038635292896373620068884351650803800357773776906273447995547437468720249860102493751594121683572550184473567662140010865885852520627352963473944358989999221474646345431983107351079877928070338273175524485543175271108074789159723721044956160716651866046492388931635692307930915583271954253667770664927846446330154665409307774662875112132233227233878053148264365725880466069471590319233338146413540337415022700653168204050737703439717121368186628455429358850202208794849245558419399450990598332955600471565459712438675588912383713020781165102515419356612399379812952111941961308429964739324068544843800532428538590341129256086922310032881060126557373376724885322604988899825570186612141852029470238034853558315223438734370131524409863551196153608129551901399749711174929369807935266030502101769826153077274727244097396198627357815501560268611192586299091960623116002769740858695742991547762673052772585445147660736703376797413291807793808534234707431423907041691024377579529134895642258650981960387537754958106604969031075008426221984891804722729373115328445969966957326448684644949892482981352230761637808570460950999172980048750824222242184443904795280826557167984012428912430348226605031006655821883181364149734643984896760385747475538461347972364377992368527876724136972033297036815764076860737155094643769093563908931597196340888759200739904060997092058255605006894363667565803602450103750671202175075717698199884982482133059787516314364372015562635212398662071268362692987377864030229066131691197246764572386068875103122745708276801597380007660197488230393068122860333613551906580302349308396261608163548954486976616769076656195660150432325852817108115458337033986727915963266312162429062629532653495482288827766363442214081898484153382341514463030386570665297772137268843682949315488935306892009815075257855582567648629118655413833340040582581956523298496676054078283852128441796256939692995599771363539329703322363818177436645236801543864532375668803524486511090663391720497673147867836871404110536930260215458598346299579842193050358400228496822556802581160455586660990948795266295250734016621049524665495410863210343594396037636986384670285505409847625462242905268811603788590323782404141992762156009295061551062113013477388647322733857257589057411740716183210729767468464096780103624183573128097091374109734824782290885355748191918450111537406418647261998898123501855980616102311462875420411013757442312622530784584584301020738396478525106321695148615588475882752211736351761585383976413593138245123508092434455622082934273827185349844125477650023485107027692198126407612475403314782518992979297242863551026585382596481724060124026707049155307533574787212123453145656851991490887293701403838696557389210088289449463908100166438001482054283543903873372324954485121592400056192332544470511903491964602473079485703835328923943677452440313003395293269088175789942687586502168581151510490416150749366389633815964934044570037845295599606332791057919025483424079729749052402497430945167016547086161656752179512587403472259979061123338887514142639672833350875624585539402118153057537953599867176262368348622593090257533547052705669097859910704533980825430044878915350668158819057495012717588829812165608278617322581687494793974092177796212989084354785161362183236209379559967358725252116015437390966169247477822480672506435984667600428246564365524814652158492674582621596442080166590204485708897927877574794162231609611268386375630872298872718372902693662421571617054535560530081542552915956071770398840359436802726627975279215053448141133364954569794572733871453827964938474328396457816726199519590467130839133381761864386709095950290458538614149087805046114584134013916926878921006821283881512463334320223058512790674079157014828883936548641478384539320997035977429565028454086433325694920812664903461054488023969665553466466390728350306091828870337965336273229529878740273566130229021978582269384880495663452055309964934434891147341475637742533086290493709521509419773941428980366301290414793292489997454886130281302470379103914069387108335713175125230239670263067728933750816930158562850040997451751039563175139376735768085451425347422271925645542498158208711742229746447445108739062761672002912979820911599437253978095897068061490126609692120721384729932185937898249659779154936118347335021730220736769134520954299371165653690810519286991726159256651663747052837907707723008348812469644214265991785155378880323585048352346687631291364251536377027624184129141243204284123425868666055752634049746179261090181349659536105208986256180103099986326629275598101480232727730762173670447454642860215326749738764362788471461471966388472756858049812607097012858501591082680158497812183696734684124901355012852462666454430457395755311944327110450905687888674860006290457019095871035303047586245855099788141430573918708304508668611137696002391645469700620793279690673096105186007638556231436300273427450977331673906586679829304863029143242026357042137526110464936136492106952297814083738942775017931899113371617930070594193394362634961687538666636931086881193375936371043506374292025646861798019699278022857759187657229453276828843019176852507472208043804304457270918118247437909321071115954844289289906943649914930292637824837091150166892925022501267116961249286401499469515697762027224846229719041408086010961179548736616388493685995404251997209040176482200765590345665794625911765466184561695587243766719346879326722875219451785915600804558187815686652626662177504824538958279147711704943636009056184225398812981999347185355256192972719594219975039369437015534577437084425923237181072325321631766657174121727317704965024812839794743871629546619237951460220427159705671628617602883332317172148182815479329009575548469561026739201182542083605408478564427308107676057038269872549128552169168017617398912741444861283340552812019824338531427359052257445740133799637951818731352490382718184020037185144351567360253176708928002402806374527204925056704465902050061373486190725117513031925960548906866934276087970949897403028502457885075946300931574898577026049920999791073232863953769811577789376732461030140129719558607908761642328850392548358633536431502787679079867649168761901362449219952891996285377412762305348372876321776891432868318825485694349091985100671652592416981472718771621925689315169177671169577193600962296199199868062811221413322214474794132684460259636831960775073515403078206003559840898543085242016547343234834887023649576116263597090239700839144822996731492620418203753213770861800635407132159401926474360043147745365912065460128076112010958330223389979058158258639180324668193934875922669187064612159602249621163825749803519254555468637843521376844918109291406009209841813294536166577798116729797486097247554546547276174593044447318759816255556494367597188239883063465779983461732888544805156608388679359339390446392511754149263764951764793359505064676936123909527777809187363717500163478158657710506490162049792582786421758242331691304479534406473103722905968166777769515008720242729814790506683912828889090530161163175444779143320894608199586605293627088067417203547496778748375451399686821255091948371975283917368162728728983480614502424924258230792237795014421061491605420403089218718195128348379298618257003783047567529020087812546209162994110132622729561491090089863050782264889453826905567233568433316956391402548951309996312973051621836276742634513827285554272683227562439397188347715581222829525444516543020987361669904538122631744952564883380024489640541532470688094812320707211637865895324599010771811239245709550242154602998176038519502419278021049487073564645866018929593999796016357671717573552282713574377895259597496209127078978175444013793945618812560981276800394406617820077661011096501787199622050417707526253229136583469237914502253462067561479611176953199774524817190905917469582767335325441210699550118075091791589935670823754411084652371961115194764981410875710566136330986231426939114580747952193277127477520459506796333103255109701527727402669285034614958077568331290511139880591546988109423020957629452471629888065425613171158707930766835831972310189298638954930899613087489257582375760522309251578101491007241454178553257878086637809970284146101300023462469030670297690531580713533044225484104805320588582664899110083946707117153225805353037334063139431621467772224361417443381635759486419344676137440510459057846044911790572266347499831956479621412400857120847610405599786701149766396793657152233827493301477004637562070936309179868250435420033898100221583363693454276873304083968245084380264047639936792074815837959280801170487666411884322773925017719867854999821192525212741264250484272924517311580516923980370118215815891731230223877788922538807273893588651808759715677345553167813514022442018184992303723625699668896816160651989657592185585893567341001464581020850969094774810714336110524117280669267456010659644360768287215209401439025622820236753519113913954191702441381956529156324583330975851162236680481003624366215584725125444048569055706226343108037148822076918569271838451646154768909622982468456789563361893350145277904851859859734618361653259913623026921129252482730454047777382329574103339268663546453686305099647614312120734370547362747826825103643517171150717741642253126861796029527760371406884456415250236509004267126249910938643689053975417188793984752979986760923697625065415940746412302376850587434968804156311461190568474207239372940966715994106207931996028606213759106097516330885930948894298467882692451803658394780201602405345621665925275219530669904578336681014897296124018959240314155668337003355416421350808496660853314189019745544627201338152668581343154859063833996494670072579929901086280817998122414215623416830164931075429004365580867426793860928330859948636684896075076675487199956679143050973910928811013431207652216762174281544790716196471948510383606588944996292861086614527768222831318852696406992403687524097579022172538084340011297951136506969027194888417265400066538824715294990722011359259649750173163514580333934854026744965741982363899961893808281283449875341210155243780645244684410901944404895212024808589612197009769594946112438040539328295713247632686926307996932051532070622783340909275990870199428192582910241711986643466205990944171127873979389273620345466520748314427678761534346731430680691991522620608890336158591938287464139502848724149487730448979942189401296179652108365049035328135966024197622247837375981490490862121237480785865465061978900617170118297683587202387210541686785546788217510467422251286767163838267554759930815197242138178878549780802326236708580617666201271520163101003301532535837617195807120770857094098004995754645339880024316675555665539400473062368133741015233525827291493308190299121861304144580141629175069586388411731255459972550987123262221181291607106210126320306276492472997933317078741322275334039099961675957241440578630270053466436233609875913743060613688890543850821614682547985484279341139684958837494717831410060326371652854929851905707629954902588729938356866416277762160636364367235094561765126322179640814864188167862638025722000499338563668034610183400558500952705859735092379919495614051069505863574159181514291039977915011569004351854948156022433431147845781084612341736337834874488971062068229778093279943946180468762089551592723108101744074046606413493714992871407381507114532992579470337050910576689187225583845724819799600142940252685047411095243708286970669039527194893009248388847418074356642332956403567965208190332227714777050792275027502812495405896294340838373782773806261162032996484287911809660107446221665634750779376203469151927100488453757029280138496208189314860040753727849943602116663772354000158605746974164292989423293455551891446301139704350525286822939217497877223148101512460120832985090217399026254622516802372386237741909822944798299030882361211460620923326158389040941173017136505567458559957583177455974683799373985293865958291628718848130351903224116989036613119584378174939243685552477244183429456064550636520100940966914550627442425297309051778557633993006059260910763014851675186889844054377508487245749933501371083897072679395243959649300351959065708675097789413150807300984405505272910840481011251933413000180048145861445181410239410059099650064915937008087833523647662741293148748188201682570264545797059419066932056392045589255690741635168247135527824927190611033462981831135386558757905250425378146087124835311224068553973093616421466258490626140578858107411052227183272013182020193070983343066442864305970866379751104746156428181243299496055631718566530811433614793000297050667146311252529629469988664772905184131791512236917311552524736399842751500227444315031940561845565754253016359638251488644026595801916409585014555233482207437006596901123230885431388702059260713634814673451112468914931297558252166375860343428735324289341988719394946007755906760669107263679695614220317098594575262365703226141948682483504210875472144305041300446271406435182237224104745119685948473171694803868790857562703127531740531930424729286158784669641347930431889910449644613962852471587700725882737318495928469570472589995373049161382425005504831645831020614062981344178252486220240943316145741120844788350702782244325739128941624408528688067824022660293421677060812472884987119725624967017445777235038382779974345745560802548300713900412433158360918080473048944378873664938679062784696373502394443558702317105991099839027590166373161231581045273650729533832924197570338168046303588289614017524481151659757406738661369817502853502222265559756256075995390979556015240435230015362452182178568754705503554178964300926725746739559673040406608267770545272374150319545439564638945620674831437696121768275069508129585841304502106472347423576095197242187278523841756766398848296923526451802442420692793412345364673254598661909350503127231835412864057490212692210658930532593341376016586215639440537077465996687461516727857723416613325403381413666498031194777220594894607044957972624801057375143318619185844211832620866027019293617358108846439175054256854599669251224143774432430000234345606542596884960731313873364990316381625370678875837705248674027176741010080364020164789630395326210033164665625499062757577958330983210598253144008980451934270519942667654138153696110255093723259573241770307513457480149641345269133746464914831112425300790195898097458635990817438512079799363532140627204399113007480626714495671609450020003405278596403320397516559617209281105851412489975148591431561926105815386335350475138288300019009181377572279620900526159750606874170890427453904834881229640682389152221588019330125762558929771192796698452341770755720972206854032633233963623204410818240933083331473892830213206705996977741963522690291129445277721823230936317183599961339524338897541661187657254813401398447831058837998698159672028921566958988023745695600025617011447158550429530348086181739069629161941406326705587624819920699141113373390331149217105020520665648566300684115511139328773546142442936024990688644014906461027807127593851374309371794204922214583113777789200066266787783878832145550873534900649479520053224977480547576632511423715165143691751413033675900536260326634280714015749799857013369339606222884230264390454573915334344332551822972877147130402077431195363716245481415552966129756889259142929475140103077968263845509441154971379474703687036194101233376735255880571574507356214801891535018229984002514755192783818423746080587886953896670459039622913578551056319325245013054652580378069845662728709413712916806930685419095639226153981145035101393635585893295268647628343470393639364384300672945604906501207938616362589180181204309082598080421353719827409337865379814534532266881001216756160829108756249745521442391776836251369242543960916891667551130114154560966271637422597032591355279313911230897274802790820351140908340755731796469043810402743778064991945101930179767989568607988242648586502517045835564599523419768196339575432845391192634676774860719401260847389781469804830271368112199418271709122316168149613551184639510238015348661720853465124523279587111311337539977068039882261430591830861670570570605107765533831450359563794130302186755943198071143963202437351385035477390520644461023258920923293994646975037192495582031154886205476591485804197758116543047087174938172844562334972887735822476250759954916393964266070912223243037373738248682172648809551673848329971386683564425367358601400125900954485340722414645518057917913917521045744579170848420650068464258072046765861263120115442505492089756130264128587045106682389112986793822234316338211067097496244585910067815309445805514920941022758071415420367499512959873071884949990308571132185301378014402085794745171580436754405926725677303856900436004533029715373744742668220772227500654794262924962901155867629178884952690758030287862171350165385941911227279222093538802811056475127348635302796261242973587053854504682971066964584559521686856788514692542105023118816907292090569220092424711915636064225768147005594691784553364788966543478364599298609355035575038953954979249622601702670502768908137789389365183777773731310292911001152739942491502216010777338954980624963973873732430227947378548441363180177555368889124223306731183176547405510990008350432803376906743376142157102269355742441212445770342579581449814888134041861338710109185579627147769882268764611377259135388627529842189414652421952578877512021609556172162411048050307306840027716324227739652350630081468312952078992160657011679386902490715460895354773780551942489344655927533360166175978471066062562631033941448322308313602651608474135524160934813997040789566986771376771083549686909144487516691146955519378514141144092821520623561799219984213341510974025174414989941841137639956702027146073214380093146514961461163466182372163170999873749611821762583106305923762578832036524290119297520299261653717107824518596636685165671120574206520065433780262559321619477357608298169821736248854294580308614753962786231306758365079303459262192791127372792839331373412647686710317709883182079213062938953086342775712333978206037809404638579442601908180789271344923436098511610128441483949388038973727321501605193105684824047638485877836632428681817292799751743894315197899687990920149249125960420851535623249837515113912479594331247155617232133094802417776102625041482536658082771417633155530333446804002322628105421957933855037618075188713049428553478650214521561962234182353759859616482711160561233725063885541718078722192670278783127505471905042880057282724769798915875498350162612463341207464599732813804463408285600146273688910862551323110681118262825426773867500023562128985955303930433815327758383353223098871521225627400321083970691563383524911282489859442491981316364271393344084772238492435403887311366603456565190317769560685268915340613333240610358155093098801230760985632206712984904308630540808532899345669031095016149714326687046369848924387098527760982976921036467111298257612129805491927527582677741758920658648343451841378818847516920370171970290192327531910227178871755741049740883297987342199658723065756708262772077685478484982782378997754355953051093454031073804676394261266180294856722829332888621503161291697471813299294602565075102158330573187149404779739943939507195459986489264670703448020444500150717034099823749715655679375933320595600682134289722221381683242191901966836075544445665062150072448867968822365111899572567295026662189999743080371278006755535614003544012488701884544151358635217809564624960533329973132277929860961099616789732382861831978307917566297445663488948417505335795478850623193430941147482516925525254435461095626499943172447318962152974526676387594711184099705856045283337899320481402962083559598292748484913166486955092213154631291850858159405784965712956977951068529891942417054926572989184938856230857779835673676935860516379720106601620300852799023136000532253496684405843971079036066666728855863846664883800346168349309257801593642492271936623656800239333444334085396330444480311186590218294632255000085145689847128886852224663326694275688083743198503047729253235647777921097946666456224866566081183278430641333877734046058031722579083430143379931884276468815400710871232031679879405355750955177806720620903266322335864476094004674338534361620522233280274233618466570546175773369976874260900546595451588495608668781393485596675703368086951272790597852680401598214100200997228349410185713143519818254274515682490015075342719269952106812134255077667181079892705881310127637954579685457265144694839204279835185279051394901546678556861090292761841052444169739021943473593009401279167318674121736233765981238325530762777227827467474524090493956206148723883678592884284071331540987176363225494985291420001629461609145416144299413503648789507824158833671419312584834792474794387582738795517492432326963961550739613155564378740313524619684198386584315518672353293571425478135531885929132784020861808029375189911111396512895664663517468554176980097341232218010929352546974428132797999201811967933843262347038349864927953076243896156362139569616116206707325574046431543957682019095772113818188240991975828546622727121130160628065921549462951847429590815170440260681503714059227840387505746475683345545757050250700058106002862828714681135866681906454817861550983038332964858021720931329442282918562080281752303332146349211416158423200021763207031748620437150721899332916706706307090515493490519829862070605990829796911224007614926211877656523398071308716349774090256741905219964415006712924590409480946972257249933254925804913937777992274670701047929957103090912959750541778413824833995555549619419518039382678503962770170966240176927419218583325850457707069872681966382614510958902401486803483306960067264824346717468212639135099900765516279197263397959512524046773269428131281175441853370164269666712954897572848665514552206472417579805189558537763960257415346637882873067194527449738363100428670864944009277718830345662863891580571882249568178918816754683574191959567788001921361386407393794898963564299260931384721602039526871303981452278108196333245287327743736534160014071945535668039002469472038907165409465391312225488453350697035811449790089998664780636502962235053934817114996255324010814779826826590537938805532774352775159565701261146268418732062623780359229258174797765560831443999772155543758707602016765780574516575523703737565781317989547780426602755400783533483710907014999442134442497059674449941232952939435169479241875168528129226942135043338206655821545922928429728090089859264861093452175848436759160124227004802933273220011776195973905443264345701047514568406328575606150260747547898053959866990946248104724415463674779639530410015586755430826778569964892552280172990233497414947852326142327439435179895669245136003344149738794623987211700742846701637575271431269706683016787073785954058458034656810124946311604884267638530945277767359584626390976151520514796102375281077483262534711961129916566824299522543508136978721067463054229174084260548245057695236663546029066294319023866240287574787286739698628959818669083707910305027380387029805808055095418115404812642373808463266693530390619756469468347497749539282161866445135913414097740458247056387647787180136469258275272153450623088825273706477454435935813076854227913518379568796065885494856615996993231352586540390762896318897631488992009498033042532694458603986662447336022500741023730146467559869291038382991837823606764885863443926116132622887489098702916786186433711410125472485909322558776115126264818622488838000988681588780610379592758544435559466589908907869677263545450747920123723115857203471633552806167526060123123067499253773148566515109262460641678620942096211656398309802906421271435302129190862855370281466691707557963913637737860704036942490025840817339741626798225018010856275379453953856540457173206784756052047639685455043264264456357885228182873667498302043906931838269280306231856332971664048433545880846456330073477441623818893233614034789684572060768641056483916826568462519010688700432537027879905148038240050775295367940146048444980125234792778867533120746080299994143733816332730412596843913780417056450553225267094133027861678664864001034891694838433153028996029764420635030176034480576491559082466184784953066946517321992739644748769239951160954960150713532923782970492259923137890115610588089757032674275190027468805542056932728154109090694870894457389653315723985574340383895505109748112946757543711497523557150899358386894088728743934545625537112142085651359100360766541955764969125709692765045022052853173413462769478309097317309301701527758313276825539068781232410599007389225215905456759655794840378148069963597691467353426601361334924917381352189944256204910021869052684848700821881899440691052844605914147922338180456878074699675708747603514422814295073379184001612217794839947132378348334030314208896489675752391983867129024250097816385296722859582038204250958421878314319285579552482526099327901426906724464744228385091099083394174514118847517419218388491421697766168591627147530207769412181504145763569747622922067257541085374881683403882987002085825693683201958605945447621714288092513185292953278791292584821781224936095462793564414223480068576354660716027885263863999861552439040112644052265387730913796285027757528094847049011148868106952623173419722753526116940939524216941486171653796012030629731621497350013656720124363805584662596532931979911285062104205404183101477331427764938963924309471521419686719639961071895440005272639160158816250984874291671717024052052668658715299669905386861066929021086664240129393124740804167513961234179530872003596650605260742926541944861600852249173769436772286700249116488740122701747744125091769585939806801137911783649207485367362518965850486637682560639263181143856983694282203718132427887501593760030295358478924116288819276299554792306702716852323469907313246511612745743627747161637419130746441391746970295362624461003847067963044755875545456197115345039668918775107025566272498001588676235269139007495000523528104517373221740218798537522059020238629679464040504539237716635487656332676828370835265460896074818185465551806788671096513330809879630833313224714262203123213176744713638174370430700599169120220270257474504006925212290081598392812098683580511638134881750594183933388270950776789868183158311604309359950891794378145898459988667047629851826205459082971980938945268858985688982411692064847221936780067033048757228704257221530368230013157285199940939703950716616074611910306535022184535359529718782583559769480260059102395225031197525118234136578298524380183299525103706269219147136440506675808628676089785161680243373981545545117070329473220017941800172652532312395096420369637901895198748592832727969519893320767932180411058872961790493689806856276264280069826744402398765845590342444921235079200118994823852674473662209120939143859147333978544753462794251166386592381897537276901892503485211260869872778525878197564709681305874172677960740807206296056639857913007684011782386422460465949775367729608786564548772091614832730358274452294262775621401225017225206112480952491855424468572678664395076801432146250866432123301496899766019445469555912413922537877724538928549200918535492819870481515689216989831202216179528056601301399951555046216274200785553020701709812494126594968518878644166319289913127471491813067877037807685858071684425357383858635323225923026571240858316964209272592240898591401584706667360288831818537458575468049441018104444036515873656144010312634914736289798672853658271939299843001692062076220864453276798110551024127295183975518957775334377776633684732817492098931637966717712665099753764668262049356028722392715097986934000038037965202318041712866329053585615095703339426057771634963375729271565683078566924616988706896536728902250890054161644213827839674964481304522988478680191768203456654103519018102255155448213748521206904727357710409033817845435805529292608301631827774319723491036467515089370545690630244476850969215006837858591160819707667232753164275006287234748723021423447357062034706453733573387666894087631032749216079278260606183310068158421671608274773371443618982027388884784587085244858289177927613640109249009682213914962161390807562527853665829141837558981620970026873806551671030371493497836204917498913451176988900900064299780941954809654893561442744951169325740443742488748980847543006594304119883409219892600355466764633743124648225273590551492609750914830717501107469376879267958011095310186776670636785470366853184617559143294740942031614723540773636580993403876591753015104175148280105943896988326696448624540054467180610834334897116401167003690762650538883253847727470370079034378395558837783619499474784518063357244349031342161497240608510616834228460827011527630142674076123308817038174054892095672602775726659361175292731947730653974967594860925439556848551684731363259076221524312325147699199510874587098626341604195971753176454593201538051419251202040564445374108785443775737895891000240059446485058806588082249092618972547032214590938601596161749627882118726274991209498555474154272512449689401722390605502598654515793442578967765135389907167549443800251911382802638967312493592415429610347033090275734071207246669225318971531337975899675086692528288963390130825637749097582481144362617121933468098954611872862852114055934984546818633144567553134135154174227514540196581890504583271059664737425606016652107175691385369570207325221870021890944671515577269754119210015009538612375909353290776586405977723359984414652219851154095056012216611111995225099831434382606195184323622741896525144944755402474698933362775566531598971698271426900068071409236688006748993336473624398530587385152730612834938596329851321343177304122139128673039926180119208533165053400830731390841574075245610020536050747429142219887864369092783714727055005430145095620340614012698556288997751588631393409720207971552090789911674124131467367378177381221067268702454196629273377644957018377107752427016276224938987346534038749246678637353538573000588642613261582564519036931211150868221383656711359865898772766409550481757068555775051170322326983048078655086007917913933673083745793601028698929142158570549535483554236069736927079004317404136763060272539678436344803029679127465609516418600266876858841626951812590890507603646273716881044699626552494916222828584238892498267539461878251744209088764817926690351173821845231627035857979790144288162515382078357813510706611491844089864752139434985732316506944042148503819078865278353724385365073692532199966540429889087304608576515933801705139817659115044033096374713406668617740297695138776921142307175870947576869454734283264298527794698265551252437474704441024718383643895014879386326461291886078358905397302201517199085515442621458097697314083731151039269846088781266877124146276686687303368061279842776481807226496513750596023511033578568174509991492635140565434546012417059514618293959242642755633324592469557429733978360350837643983101455721132697445736088828741267255025750301673236471270780535019599856496726214381757196497652121554691808618907186386410304463246159036629567337051871605052269423701456098280875556595352793377980390820616329860764843297585894268280039749921180751218124955941579981554093945340566621005215469561878677726165291488492179806263002867541557657199276667054641886808925411120674079817054761273475063619879993512597729403132989958346083127684189373675102040625263464116187392034941368315570581464763737351428203010355092350878696325721036083710792028669576898780002845965581620262306379237926162475913205165778444698752701045000015820960979412918981187937212921615915763152216694284184111997779731281050930709205270739763134767073525444018569824401848513198922024869432653411493113387513835020986955243629654701738927828245558030469617472905221865001477618748271238330249041961455334283494066189415898918214965256128741331025381515893775989240677587335170526474063451106233277589893319741446306033492785352903557883311464104527643013917331142423835296800719356253554434528792041683804588428267666239031259641275118223384242342533531266621506936539981171221755043464351219339874864576593422153870823450244637015106298048615564650358204941503524179021241225727774218354176596318745262002897053824993283305571837571698691363249257538650526315387214562033833088864332110033750333691439510256141938067574855934512387410229323018092862689770539061698988038502583271067653530896921910989359518333603983314847503693925036317948146621788712196130956308461962846450133147308800514855190898171004563325786851533978948997418421218989386149021857674647212087517482624045097439710460536656148502286184351306298710491522803730458447859772088902569589256872751219243104331006278310043586517046792199473322455739968406644649927936506086314136143101241765439990590584811447589986325871579820440123619058018549229041888557491143819979537813971822835256141214526138755578171777386908943004406254438583907850127641146619741030632108509344553410885123849025118766779806044980872739511785639794045829706680828369362076657282197714602603890505717315693753131314084218741720437540866684544422673160529015756266444135088738114021532699636025848318236960922071663085987020065510135059363964930699785509616992136968404585118810463686429254353798839307178824172024047839791992453119659597874833204978241798124018436180041062230887064576213937837260583259884605702002928695245964726337415516879418626812822651721742196276340258691092800012152031859829395321358961274793398169170436200065504875496212706085550048424618106467460867221313482562432927536867285274067033784917348982126168617304852438008366622350308662123498031911048720680054885811921494436588743716941692597171684988195575203569252850898047413772191208773456148820364091399800645104509810302115701259601368848829932146319238623406387172177926585818629338833136048924732762658414761151090155721930721418170278688330817678750422338959833733353359236181179738206749090299122136886647624859626106666252004848209350376644017762329204626439721111892405339852074668375287862135797967887222152134960345593484345293913928778732726998992454365569387942257123623401101186175775567334835598690212908895907129962888621372284177918272307958149211537956976041274301066872660181743890263567233786843090322473499952310701977396174029964858910902059943653659644707706750728240181849732327966370150964001289858564310096900757981524403752415495509348826063586212449489548882848284778586796662368784449176981604355263049435606814450099694696503472938260495945140881805935848434166887150880049836755033486686156264345666484434423795261939600002369880371489034429105238605752574074501527485322554756459448410721367391184637067005149319097820307318244971604324098377401954020034281122340244171207566965713575307262878519532264641110900148951783507850580783508936982483606480975403645612209884144411244187262408397779012206522314113548277468858060165926773048886620865796459967582784542893545004212389484791308981552911220504390214770879609249712293388305242148500338840917601485532643085006384247661831558476076099888669677896585830337207457618929123114120942102085437018069362708331482844022536030876567213400440201143471863562038360474059052433523976541218993866492044177004116226942528058006920672037878853866576048283389998193576846299404088313407820157542581272305926513588461840188149841717932953864362031793637548452029137891415044123350604886390116749904557606752116613695114758521697682690710272771497569304072004767810728790796547008107433056204895196941753243225778482051751277571152883424165687836867358250393358008169544714808606124166995874894439576032882949407770079603199280901893507555664187199343800573723623334526702669842311369654377119983177621438934909770836771862794334522637211761180522278506947360024201469557414388110229868474210877631676875934927152049811361186551606026957185814575099668281316083804021757149017748078197534790645611286343903368421377097785162665962351412041231884416231173782547165354193857585715096485593313016830741506059492414994544044509327532796712960364269186700971250499125961779861933258186886543054115433943422698021638861834368086524797286617859826307194650210338932339996686629810622613915085455236833235844284325257331262903214601043008524892941187292429534128247825771049848988512439142489482430536423245858485830327008198192144752678844110097331449092040446872714987915664245166254657713121334603149684318300031079385091187162348421829453116602134999884363862425257578649384744764040050731038095009024131686398565116327148460417084014783369212311580398163166864140415554551838569199349857676585154722447624334952490111335237150406397417339804794697711404983700773604351289041035381042482424747604783597154410713458022974192422622818272808281745658456723587639239009648069349828409684811433762769495137861088307057898989412188048666821631086041124712701649803395574239663168130988062747659752208165258102496358528304782766680698935267268006680506276234672468482502576702203188255825473848973135484455821211495818819618849854297376319469445645959764284117624127294281987761679912311974162710658140417508657783945157643564412807378687867179545930416806572656764816416496886273918592369141761803593191582741813208248678760663643539437073767050383025209199960103329098335826249309552742444275787024386453929070018427323984035122063210516731023854505338672417226102483365470315046315847009700316460944015562495716486673946808640283151763761662380678697375193592780777836057830375494869668164804236032686157107630325801204092499430337246320931884660462470160559644427940561861292970438465848476589815012313185532144973827356252081765246397651270403320681316207469550328730260590496030488053321117792206522362881194077597982932860387269290382718779584940698029396873653124177752715992512129877297628880771632210382662465391353468067015404534122081442707436284061155601481962846061489648990019847135389637711226307785832055697811056721574616375596534620710316121705202102217732870936517569463045728424805790300760442354323659543566078662317848889500635549942694902276994179805769192353457997063088381635111286949663638299902314372051141764608402272785381735450239012968089972453169589113575328571942599306548846065268903920585105529588630283875899152291971852459507265936894817397457625761067207710978895468314103991145264638374322672425483707667030581720496920203099015152247617480283576514288167361157894274269089040324039963125071821746156126568076317211130198067823976205024869440251286641267953262303880410012152139317587192505208953894590786744649409059968362451071546523854028057534771647828628116627710547413803535948985391810524769419881342566744984663098728901633119823768053166078888934919332944325675116209088614232492916050084090537908916691327197744339589415373895909854182918719540375580619278103662402671624015582919794473661571460982573802379967456644298564800906166153742524902620949646960854214533179303745587495582584461856899419513694871026009473613187063824616644662342336389962481115193546025261997676863896985615187050260562239799544829701611943486739250560365274536350806956363509449019058600734024592692234433868950620385466681666066929195700413969616389578342392378123627634465925424202255617170237834749797842439433787205387047979696047827941561207836079836919038123068769645183818374902156409668620278721523049345046010510803508661789397989675090902564906804846029272246601053576800680516935838173716620559133124774615983385252155684196059852513362724172520759794001904001563894729433034464072780997385274286900460485309770220240140916861919169027446586928911546368929391203602366295685595175811050206194773009064494763736811837450366728897116590309689048670066448510349948957984942518028402388634159917497785548431928840029150340953169099519363005117703692549027693760106349615080033555999944100336819926297113394332956586551831357223126187321810574115897419071339788063137402310354401567159864398172729645175235044432398717793711256654314083579518082112035950524889306094056814469312975580047226643212407022201813436300960262926605113709168479210203783302329346769582045515090987976565061136653782389619641327831521755180143372892928308569684586849704819434663064837434214268357998337518850263080449418030138704186671376661687786039700734688296452412428195465623476026196720832506268040915616563837333251549862736337565937072795997957105995626647086434283527502603094274432186153988192958333228804773987936774813991510542156418843416919594341237609012170076609192328037897661052474270655495538113682566788340278875177286912554120725645327503037279977303079862213237595076927532624542445000422379185250787986859435002545992770967598813614062667479651169381944470499249865122139711904086586325661425517171187840380641865490188823853193394258008318795729800431835576478896558413317836176438827487101986681386616002015781549922050202434392936680165365449528896887031950360086867605969004858575488383525675065976771466027839950781980669531778038513277707041013293401150677548129623492885775866390122368732310665448583684998091307989465191389525141400618022917088357571793629331148340176749002380655804986289603532464658468565457299038895112202726614650482794406829059124904709564919189639676693682230710114150180263475786769958015238095379708971244906287936214558835542758683152351569981600257478167445564104011247641963439717123924720516355144461620651358787871603183530971183133913432672778749810997967781050669241590963174236260356058271549558738751664665644653389853873761235944461602497429525044450137005146682014548509939376377853790049551804492353375112242941838035279221047994167757588850320970720771172117369377839758946835991981136318869292381237259990225767022324291315989123995036181889570432506661655691676866531439671541344697839873899649855238436910634269189553203386519450399697606482788153453434000124945813737348232367719490599299991722712865536337862766355722961809672372265989213314033168039475435555458904407907385884998682360734455628073711650972685136330277512563392270663857905915021216031826462778736482326573934765807145274348971174294319427820261271878334429894104451905242819343424992062942516940697985629981493763232454744569171699945138752581560742439506509422936385099976620954131054773915423200524076540940543713367522487146349409678588354564351106727851815751104073140021837263180459767524390392954760667825547479501270425912466724518014339541270192565416671737221697854368394464911932663634825815693890536393808647614980052447427591707518040516327459246203649590389986681535406775620798656711138460682712567834762913926585283718445878708647342288056667425747991278570086663836354233369280697845348844740984821137331366386676170075650658406200209085650773296729746290568490008668692897792312121453366732614515907665058485349145472785694550674137453001292826976270566939392667239694800035693894931843652187723616108624038863456366007645043171990425316296725506381946321567327389673346519969507935249899506072672777958107152007065116890789027867035628467532439796828367368342449042237451468229269714432487752585957088142219111053163707576028342654583552218307880024373218258162959767946184057668498368487548191505284114157165624128434795130832943101521292352837035086498737592862940889616542424063902955158628404658813038897212130023983960238490640250926502631172991382618905554231901352158415721062219361246310639707567758559985761166610995067170330155287533431305726551053002314143564327705273360995718369967758148022420170721130442024037869728756657363205560497079630220800722552107405661898638329419961060968416356814956786633704646531158136557109912055590210927315744479110535567152866106712767197536363940671838410217678962105661388513618819193742318702078444850485719605058489613282365633067615215766134944959866256397669276098744791475018300457086188419248382373205275562762802554608445076401792411905596064828127578797241143585611307136018557022712328632387494754044159541938424653488690494722433269515576085048948905755291080547480514329530642402136997932476166662505094890810653184176138195573869525265469949901599172475036231443692124822535544930881546059183378335787437714328650380889684364948036967001607699300654494209732124934986816948261094908661662290276088412302345051139859127156820916182590298195434951761058576536436131868641548804819166702382564508411271324041430545581035057632057728930398836947429008920396073980678723095018605630809417610217976679859407908573494078326938273839197426206131322106599100640750423359829870535725152358835328684231700138496660315218123587812097309773288063605498694746560375528272959958076044123976486388824500641622108609830729008630932646966690406386684572300932736067856566297203459573500204850634889042869892994507384060021177942882581722332737882006081311478656363344531425938071856670543291678444408680851222164372324672520727884649468847648167344533994505321900732980116323704950131582670677658623902653009155475646467003185312394030844392054046794053375723537933746647227231924780306259256627557716645131569322715277819749011191916186959874315062713694541741698511741148662060009664423983244138167312910542883172508449316818547077484916626074374770027534799912181396536504816094903034131267452410655981446266815528725939333983970886654301242071127658022669667506352842011856556656669438731116781433024094882369849455086191777965946892952217840887913497955531213797822312885479073209548007400758427386361767022432527283779057452852467154405037027233434976106603808865543811537464654609043500092261687934114985066498210543039910729686052406612215848205109670715338086531061250056169417178029956343028239317076856581508945195856050298681149966901046305697132299780278860056263266346179637242700433338363175028740253817314256539689613641308194789166073709266043991036674519790083398477504731547409893445401893795624427159702096219123619133174047871915318545525685523464327587276706909454391238429117630033319249470267745832606589747131138589986823210158387869704506954207635015760309352417606573707976707954522371978587417711973671164831979428732837891508910005720128869253045950168238438322036505121891160967978775777683037134218856508831291044081425479275283676249767665596718412279698922312653654649372337583415343525930887283153412772078074910844164959821012496890466567910834506261031887754267260639745106951831657223472020593310366736495557175541591573487980978554726323501811316298983281084364514486113205848161604966564957968397958373085349471825729887436794156752571492726338304385580375759050086487887545140956845946398726601902011980016164623953343064962913963471982492100438497018777809215227148718392957427967337374690571131562665965077345042580885669397695681221504160162795657001519691845738758201773188353867899442821171086933265871632640747893526544279064419574851648501892397609973909819159990914880003714286302869411711577162862372125697594248714881281269954610882918571696188013874446469438623877734457692367923528468086468914169628631194531667347859841518227933781908667896499935484277620227480853179891208595356130866522116189724626403567808757412664853939096556336523430323129276484999609903906221731792164062330305757950873743774610885902260529392606480373833542260163325496228624020055713506854544557716273233175373031967216351860701152315652032335146144253087180868453796120138300879866521258139699394396406685045685968823935081844268368673155693663813401808377324487750014455891427479670369407635150669805459437995047583094066984912860784828033716622479250417766396928167203269844550601670280096318459334656930127784126723462623019718501224068422037436561503549665819500946552692640886688102576843183563726181649610670706487609514573989016030553977006470341390723968102284128821770886083356412437415232957958471410245350080729141870788873873745431964947541949201214288771910848891612053741926118279382199666677653953074426308143290740626644884490514626646776637548753211434745894840517842450100345166848290510508224979747062740864847028340393160695625476806471844990023969352290665026744544491906603515244077556718514631489967783181062462349510697963535729184372007030177094796225092587268708012147433942048314855473641574023373576521630275666772171040937651728256839419209202784755912503003122648140324144128137277882228203362337438983045189040119603402680591738530759409604998220368036748122602702559598083721088325901462820312819916313837043431978115810727660304983942731413281237164770953516818808136778702802983458003155787322610794655719519795373696056563269039832463268393863181248964957347657443194375522248721546668456347670945925731225225778676054358422437043548148517566342047465215447857678097467924940979375997164695793173997378952419357463047300733468378217264109111630857948008976041781595563449389948248954255850402714274852039685734132725267389219932405034129167015389550952911136977527830585044509172685336348966363909496475115699926756039760955564471971359043762834938192319869479256980485248308536758951779491382527113787429451962706164432002507508888032122177396118094017369453284313548531353860139746320479027803419304990592445375423656497930769484499825984792537693788676643361569928678025071447293375829067337779650323208596889903407463039418047447262703219566865432131258897215329999933509014204757638675587050503621041573230636176163327814326001929505234156967355827860596903656789259249093704042876862560351696891635889238124691575841720104331365840747541405935108313101149809485021750373447358893418819103450863470272905514203589565360474066905604120723357679904717769502155912161571751966231648159376540304193477916874931124248424243280421493093283791558449087309041497274046862435656660824919623974477259820691157095880707175321430971267390571513381985011912851344958336701881847859416233365449755701959261826425996681877795015865038626345540059790319481704119170158815653195708684966054529901701376325501206097380594304423359434375603705819071061716380605862631097977248543743538542106161461404496864472015623050519780670031762998437940746701065141965591616589786509192159941338862312109656630416862846684444992616168848825170214837324779748867323113049970920026596473279162293861570989941155581504846381864682834156925908737376229875040398665379922159138198609896543632293179013405107792115561675638963053938632086152178678073786370708491608745988969323207563027469170065385604664627534307422532049106993772647247554046147479598412185325691449001314150594262148807567750127517188536364267708634417899168604470345417132942430645743807419743840961558366878175247656908586647800724875030538820777562957266928898205130179846822318739153362246029342116248766189170219444429846409875933221412981640392669908307902457160408596578248065666256641739306699001390396339439944391306471242960088977000172544711945814904713644001707436890051156001683568824019898105426402715013073198116512921800970227385942045569167742442859196509885247717814274184415013551469415587488360497583011428832622317869998447131829371858282731906764697493198649170561416287921140211170257865645685671303450370014611682004664727652735561050704458383400507847050031486830514854469908505021837298383243029194220400427477605622981336891188718794438251885230632929965162614126049681576626735267576812009644046947823482532125404982145136810480755719595095694700181197825175004826465803157100896751151299004967009790128496566491811910313680000267587169661070913192473662612763651957289299694964667080723707667762112000792133998671296368691930864213292679027887961074626790952650271510742234453737768269578794125422056558670122320866295879410161839986932821432976914704976458978594257117379219299474553992129668027946091346839789801676451861466018120383802549998337419138875779059166250854044193926363870831070291640308667438336361733242919144361855810479399891124646349052843844935783863895197988460253215860356909119215768588811339055946816174130548941944776185450090758678066422797358672928628275659453891162900633356049883175130070132206617782759141082454926238606278566382935745282785932753346379294683097965526448533904306786595847991729998869515144993374665933456477986285793935166444078212871904314874729310961290645858707092981338208033635563150242335915447481629175661944753057348227087859052445433368188718149303655942740910470130742686662559780496460590685730504565413810089637515275236580924471954656492240316537296698171231300047777238821144057748328079546189916728468980405530481798378378009365386056101244349887830115218032803239652197231383663381763173249107460166274167762714753495251887209511310615803015269894423926957950596264474107743450973349180650317782306660704036797279284195575079032706314974317917715888242894299308278964497277625076181248997350939754482114808271597271212476668508101092739659989608228324687339639098780193483059973562137696242646788610690857485835235260025165974093353300898969373240875961840401206405959148640101628505111368611255689367522368670831229165498653483681067563394009758886597016368869283043370818905482797335206653265991914794555247607871802653420324859566750410805938418887135924263837438052441311744506546984525729636614773628109607396551495596208268594861956311228491828350887324397382092007532137759332811050449930521543963424678356270136997560844375537640628275323103450344351789776271661913425957233538320588370033860044506558216763440369955070165325016758608812088798284700974004870755832399036124197002557626285654210864385456648432158272107236841563945534604172391913904949071686976610318031525760822917972668886640090954081950447277253643316848734138944606041791107323003537495894628803169383425602702105265172814878016000190008222597221323300366486548656896608222819446702998135492110869373905830320943866921950000385745283708910514228535516281382126836153127874703971284834181734683221512332871944526714036904242754221039193923432722033326806511025122791285514562739577204958678058912947943779667989636624381623129266266530014769153815491559250713519112233217586257733378015964114920673459518908018533470520728568514665905269617347096499899752529592426992833005463764118172871804318253945095995956820559999886658192389077526009597233763634942460304352969608131995902733815335839456391745635645744355373378139098815473777798904043990334815149208542508711516430092565551836909347356288958000757008628250922002925731060347140868382457786011633438289506883552323320254286375950749982932327004148745423696409189462683262411930549636627806755756453430661938996366427414017916483525911746231015552586092908974255182167664292548431970883800350430347629743728123212098418781426549470377455851141198110134797806143224437659213462903723596333480011721562657887608005126067031768864701345548432599905171758109573367728059790554803212964974837233137395032550400648787756824160802491389339026095784568053717487922141638460044219408974365585528673346036346115541516165958914983177735830429891624077312168555506970083695468062122571434127946593950242652927722406072446416405358881868375129129739429141718708132263079163272366617804692805230353610590339447140523252092330784208754489257231087612269902050599275451039832604258716657916153923207734854450980613759727752442717108187926967131057208877604732204567341275787002894414415927942935843724955475311541523714159157985321716117077214726203324680529755059271322247125900128873520967175405196525591915962896676681432649318979998223797620202873249875602115819901245800867008478086971202096677315170092373900254765117437133023974540294910877720491303971954687892513916180558874304419613128043720291197492382591349494007646727360982924530378197534516397675958423321017774195923126337183166669590293750156106969010150569292110919821061209559317586387619350937451720930829791921508880447197437351922967417486531479590535273030217779063403430535488148335981458977224799090062320663853944081345002356615652640777804403728071413507602935024458789163181570256734579486263052011997168185405681635200271988868621227725806427690269931691886597910327175874190609823706861581474239415573991905900124088856715354908503429163829799625065315375643575600256163259694532213647554984474624393909388513134733481466696773308695878329056584423218516840653009878701908915242654539001202000544679541306376618936591501624730456396569632449380801885622251108661902212507259093804111234139233703047986397064038093265356235938889029085220206383429360330093423152693530743979269608167888218330568144148664937497346823837722924905159103228223012306154155162778596097630150089457209645041594130286228486459676073623547947071679002877030141773818274582810581293761201936811700260902180493502461810109585088319637030281838815822820272835767827090866532685726805043847185019499746840893427016549766178992448344722981149822866348563653758324516804775365292803520087672556560104843829832935943638796275602497034192938230399254239319151433256878037726151084275237099961577673164809489725321764689550895458501439544286116237521262315376115792003832185528023837630103170042281132583939343950558566025966439053012776300026358729005950312848154501005054586622201716432500791953758201142169684440801919154595405314761552888670662624190497264486560441049234060893210804501317694803729034546596048967847140913166803714590594775757258029439040324104012753434192348705683763900566037773102600020399770052608717724513246287259830553163104619750506696281308263433548598200446481339571909828930928391366693237106933289698051679416997708504739966907215128919570902685758925341143015802061437986914816753741346972298150419212965757059953388819724241307565611093465148401279467776452493671081992074738317231665024595445842284371212035692624095151834844104979232930530142026277004304252733117524264948420533331494200647872163179558729648597078425435101382260946616999242985161906072756364394849574937480423690692711713646094802001375222569147547113105132424297340054896633341245032587415532401665211936379686627394377576917051696475785673306414594494728887735010829733580758403122170113074406611965480981204448407959417230515055327971579386653264007460661724031973768951043747527135930757744899515259941811000089116336871836002478910071309543288860199788695353402118189962425233401939728041345962483523848004532807043385329674457380499717605251232807171550256131110979641668026974391068718660363424219440795979025597582978086994993390875746272568644762816508816463719437632793705497487244474369241047463111886825984771886979353554039058466956457101084590431122882039413758162564173375460278947202770072857987272418219414464034337177059623324394478930908246476754973790374729038603494664946539852340571811594450411424845442885428575556540044013372560703258899261969756332709320681296612158411286894762777044962213481733850312595466261795874191751551684160280407496104699223594761064552712343096340779125669576416503048674189790552303132036284436827094964817939181006692415757301401715384886818156520899901451564799422507960298711046153327774151655487367035353186361777315564573981832667282290802324705934102453858078833061518272630131234501081823331501773711575912879345768863972871561926525121869392669545249285855108433874902117626501620681088340998149374870690644742682514825109123281048830731119166558900744507371296083948249148240007794665931912629791404094459798261339460697126884726778436743740286347002056890204434584347614565206853440346840116839911797667872820635737614926151611925421988466819365583887731779084730452057459537355316279071221166909299327208701542854956857383617327329246684312569704528395506787185477336419481699151760410858106576003046165032750518636109097054836888340845547607809467550571408976720944886306770083304868251259016921977327598548550758143254717604483539237233231680907860270245358245876231983333054630343598756283475632940818383475918679822796216262629315893910466768930099719325980214644958652519106166419149730096315331245255667620150848455768495359139722655111745071693170344059293636752208171511313620684513226428911797249314945141187727864421532335397289682334057090985950473037479372332133663963744394585017014759837710187634795294145734292741034190695038616272066148857370364161560052127656750897931381578312860781842382718792631287019380638183478199687342988344863503237949812509278996211664377817645719617413232059607771473864411290653687207645887399252523128940244316755419410773114385307938907035089596443601533011306814264723195628296365569425249981265990022807755301331360799375699876852714698255600657836523773797424664166818395175125170820384398906506997161534728326433923409274874009115642715952624009147750999174090386344224081798301580214455156668308258364508651488168844995163679150502348021969068633423355211311416572386152934325958211609286831314293923830527207435779132665525090818932817849520656975183001511501836791362880151938550010534839521291507481478800013180654323390174837031127821057529495852973320153395823993386322434080981090670979873460952028679641984111474695375318103253391819050442850593592499526776052960657692862587660908196656502703597421506005981435427054386521957648815505704614305734209420700255670961693170031240700933969468806654389111025437064302436879567846670025540703064126304902312992526479993906591110041133190052101404932593295348144000499022723567829331890316429566250567839619379978475497347811024463744075394746834448071838841163559531218518709700013385173575243579364767684591243892342009990451440692565862808680809563874620242506060490979253630638086172547049967222171633758544759803539090710897602736897353774515465747979915822518125261511429462231874401311940625687622496316388051189407245885794243204152168554612808027328389771064318168290692529743203618773863788101572040459484872954478832397902068995909808393685571650256399170146456273849784259853670091318439877799248116118728451825632629842660261634023812161879263127202554411754605613900427470193713269430395590107070648213561845872528548006042491232058600678949748071208016109369211290034930725824050642035393765558539983613143767696400400336046865899624750466294880266965032316052519966826120811256106534516497801957531962949648057790875560601080325527480307288729857610977872363388031306838627875404443174897307959887373280888695013701628989346166399193328759541608266078436944444073881429531495277915688878118915509560748441070476340924406330109997911381432704368650307740034270059875785386076762113745403230240581027290317950593441753765331498883106913781092029538046716004604411220066311850127551081840434469982140343566391258107372677726857208124424090733181868555615846162661940205704113631113725828815233274849370087837871293867079986999318412958255497105078042497574415190343918686859705172417975090045380313407233440449781667888905514896384436776288571655565277274358346965450779363865717201379225805226003437477646083525348733001109950735265303323494806500570288195674818851090315763314875749198367500657580931184715146604172586850270432998804257241304617079565201144282750502380392428306275570850728076040626738160121356363099027135105789546648739691310086859213813074036896816770982106660474911394775676948018487506559733576146389289241172412167250628721460603982096168491227451757119509813100137700611325895668690304618495511886418915692669825714622414855635152028506699438168366939539415094028012208359819637027314152038259714153565781964316787986913157242978096233226637539798352257719218595274924067304021059935898679674813835262740212743191066314070295676799279126654589513533864791524101968284790879181504339859582274027649249300234340033965068406763319245483439304875290938237671216811703302242953094852774642453550679416738084966689048871004902318099772643733943201314734459881615308271623886344887622708939504199265754330417735700969186336313543895230143037988448472918426326348881818365096420623135386141301844076005352349019417985004356260044695205690167390184827908907269642000043148297350440127211199886292730899104833249933608071161206840225723224659138365940612128961726920881425586010427575945696341448884604177883794355618255705577463216817637483121666158780800441247404594859816965307437872295779831602283779909411103120340662678390960383978805797290488744497763639609356632549035238359764164374325350052902341270670386394032037917774715190728774986700164556314810994963697673413302159864971017542916964300410505580134650304811189022068985865575905595190039638484378788516662147271479818320718985611221680890506363268467781009410515253911773083802095064090055874186450171794133738543430229597722965383133006676964508169482983092806861995896800579372515083317763900036987887161820664460964564489816908554894195718376319598811348417342126924581784712526975412015845408755423411487909306506589993548552689145698476617818689158538829442971757546227104378711035689796272271856447350815728822459697290299803131942288811851568745288669995419180313257273163104097309606406668582253868019853943973362319015772906939532225732104922646873327777261273685237685461769391701993955189284466560677566644132471339247243113991247740752086938135457460181299738368615812570235528493076693101971779649364299247108177621194469791434902520509620732861314419160558932815646901874022230074361038789730563261198099713807105234158835579666398584942185238127785863575468229631626530942352031029016685117313340592886297500095654815238187071664900775734644140638173568665236240704954086112177158035824350765828326895171070658896253054771503252898107955895193373470002785790496432965438650335512156266514409743609469188200941790729002347577644100242321682460456334794205580867563843837277209018906009891509534390644916628275490483365486543249208505620567832442795162659445265351186639488197973820112923697845576903015017363681345146477593735958772353759143508285845775951533732414944701894838357236409196610176907713090482673446067996052253874315760906298932313143654952265481838718091720863746636210607943063616743514064415318687371260581613104771923890924398925162219114177033962239161586627900955830299176255375633578936479605041088651167695091329810328039440004197468604944012678659332321659326155071420075637422902159035505320214122637985464427016116467864058847349944211510178865943280084365371028445267999087472984999396592635448472413701116702516126688281815690798232900594447354827697902914269818202428825379920912607246364029731032270838138646558028184668079493217852453569183991088141266329446790695372196305205338587459265182832923802179341203865715024768105234841430863722276744659392552124180246014156471552048071600429252286448945688102753817822031993223474215608738096478683907572787670434513610872035275128007635485254934962008041124626606045487636445958132406748207683715651161319967638769038106075433789789519913889627946566609911959150660494458507433878776838161708819472881094788488189219074565538949733687360309592851705296371180720696928631552099683319487709893654389607460651449515869387898304950967799332396723208675395435858511920662610261185949181515767792360830407196445432966700079829665492963064023319419169834004423479423681341157060609918055055140272878442522327041482931978567033601316002052759264968816736015340595273716828183369749926978135057103570405730839236139778987515404317315939579988689652900475944780726373491868775968660425159373509561502557429612328292308969771888011304918770742935296292139861682566634109306660260864312871264403887229934808137723588912700426229281956128313467426530577339206867893653629502824816466720778453776007739318186473414572032497291185388356722132580237625432573390807147604284614380598437639984615732779560390460253942703875894245574200558073637473151103905237866835416328765360159380373024679534909186102492066139071881456195316032549690324551099446915827026014408069312337198126786397186116236033826491963705054854740690910441140101442714533643231986625536235357064483569235571064813571631553365518135751762768274631623461380211021748843303319042881005209180003487470724076743828630665862563016500993229008033677857179510125383071502872486021869461801622554060385400900031525146547711300124018053290448199083267864852953860557397531146780036047157084311954182552305777779930786817934671753280730284615069681830176963720127986943528973587084712360571968715829890849276292864580719772132507457714380531289553782919217205328295020306073729343795614259220011414270117966922216990071283986355178487681257000723902714711794278969644444921266076790804766104813536852088151535081185094294513348676347858539906437746226948393440911008401836684207116776109343406186639404577747480410663029258270630459351270574352831582465008048675600323501195089000645532908336591030068177330971211798579177444170075400865451449322506123064802742273441289079222052845045463379304165124717005352822226031009907913411955706726307769466371348231284883877399288267268708270992835862977817205126522909698299385326793477644907884692122719331255021554277845002652500764749685797960357002243156057184861257316736902523004709698689634015204385007594738173616391530113048319105585889329649503252294658982217081665841809598001044609563073170401059309122789041905403258219537250352523990110274226082252261444579671298840814607482385634181759777965784798980806049951884198008256472809570322901026952757155088246359686102958336953385666921345928302179591812878917678403257991844172410588182730977881187704889434988262001205871666568526597112958274881161515529446834098766754109514300439791220638019483809067928725581318625624428749427003300621008003628660129637351359246276788659895645460341228457089752769291225932511356040366520260704928328874760706320008834683030745510936949817920453298418459907825165551725558347152537857844883150244902199404102384432095395409472631720854463713290286154144699584868912467657806465957649180960481702397542945235357226637868589728213711723103731203931630178832523666493507617024847536352092013088758394406517734247121133712441555768345333886746404180349146416859299563369685173160552005487107586969627096942116532623416598069244868812274832293128226050589823064695531260717974474024503187840637822047155874689413920378539321792055382596630807407320281918268566070337658110926264195478458232398297262966118165014193055880147670658927920386910279048004234198742354752857432220444958177812446774516503167402395543374785407615446322581087485823260335526276371967487042440046952627140371403712479734290460400515784125515596598514614192561544722945409969496298081205616105163638840549538623787068618729038105327978036644544951197352191337896536733982103970938994609026602206855547807733201533952081044189005531354577216399608178087630086692421587105301352467623963663140848499287515113722524064021381082576155470359631641823483420709265228187098809195821289648796898775256636248939578587755694141381080591310634893869538425811206410631044140346566442665966283573818475350674384080669878953638033120413978788081546593599893469219097674209115761688143877273964158128159795968395330386827313573557714149427283977790104624141382902263910693650425166822854412441954214719051219672165966627293104181426026190861109758964581576086056306838341777395315559700516873406566466499264973497644436008444231248748384324492961750368131839456382890628108064418015288954488544109184226078997451135040052821268829407640866894172799419259679227332291311450296892909776041077362606966133776394908743942863299190499050381524203961926047100511940367066058420799073614766211261961195910624971015816498311588552891596010220034116874617981064383426921256562977576300054572271281286284090542810785614862464218227796790013868077430786384712761091956564746283655110892894174716152683322247850452488248253485890922512017499812126203919400130388363101554363260624617371942369698085694175083114018284851678224114678017709690021601621431283182370469148484752524871289467274025779817897908009619748688857286776734623356771330774400287258552801858993245741163371914978603549839460749590461802533495589953406531567136317496349518573420025773216351983773243408951290485574466441116381187889095288704722551237408197128355817767471443312277642811188334014073979601768189028367034097888257082929732251748129245283150428510175917845170384210724739930708355400915479313799914774348894381292916026573039244623306036333332540533491857549368609924388257170719705558640536759781167070382535403894327846700156781701062067834109734575436957178788873481177737312666333047902720835749619254298137831024859004618830262983033959754408954167897098683391624855882896911180091324377048966325025005188864870751277282354849127724315234423202004065245398596419503145628428206227242233212209994931832071623072176071716002892482664695809457524694484082804611184428697549445267215855454424825361620036989073335554989718268021218529455596085264460240849284309425622323142909886880434706741894841112757399853439130613867584957122448151647237549844469421299000174808783084204133704184392511511434419896165662667284873968745845641933180408177467592200615588711624697518189055403693955002046127945571459219246971654534060124795996255709545619747371268199164713072242797626738776201358079958917130302201746761963277687996101679033978586214043173462712525177130304367977596416959392252426624270893636398008231184017123881864134326363518895586779641225218425644539120487017757896193693641183477692254232751876317350329417767646331561582124171369901686996078069050726199745198690507803029657653056301634848148748045437630557107134806051836662294348974867612295540504451625778365019425961274839376047057420882524745845561365744987570499627806553869446705319136343018384735566938369399481036925962574202581285370410488707912374817220785209003529269245841195624231476867802076817479162617366317188162223582134839488068047723655129227815870427025421504416349166961441836572647050720215367504579099615814081455850029549921741023793508721747589291453789268927416101556046844025443682413958377842261214055842171391725304755645652032698145036567225090610970869006679038098140190944793411191641256636795647631755639082422044618280086891218186258627740503519996050334360372662320347953380613295660446598702342910352094357935790354105098497501150615013141741291599872569533811216589810863213101783849618374188895147633348152705313929153308429448331773282635137555061977618546137439467783086353361834803276940328005840484665150238427038171263971386066626389770087010555140778027327766542276145853328009378385124270636891614384438233345477146535016382279335960448772522711360995500063253786137251565889906942557115475358139526436799762070450031814531399166603584971410071905691938314288538396905784322832111085860136490844261075845515189832135734405736875403298795532838598476382925805465783923455203522924974282626902616514566184421369973198406503673514986091260377439395616615174807991990818092959304410930852076211158437078273346089275069293752651030625307631343467545917589379243264876377265745612815405603692730147061978659331346367914963769457305322280799636426107834671062690754862952460754915163046850288660797492469925254696151108619292215143526537132878877571578620398611907878735183325772215769925011141138032992348876506910116776747694466772964464469552143993302056131408973120027286391780524952196984505810785315281844689452949975146459537343255921617260091775125126660770646803447611461625577312239088497508269448535632699602800189673394560003975164966670023534145292732906394287569286347609659765251349885036567568807745551053231492032600909610671142663343076609982379432913888010952884689305998367655500197997981472776244325665861113344864085780968514041755496647792647923507583867662345759869468576817508205060409016767326524159366713386684109806263421130894388920037369580428906363281224943837077875431896905964380435228122738705699352432442742350990854065850929757506368057780430005217629173415549809229696985877103254782195733769006460751235081260050797640335883307227735635606273287676637573645445517500753681623049369651815682265821754504948254121940347805563551548843299892719355648481945569023170012529616902875133795321403289045505633352398872810073013157462176816267663547993855639229761672181898432580072380919524599460165924436845631205928615230562116149872710752798422584279087908510179921763538093976334709743152808394307452727906624790910237935166423036403757332583648494342046764162638509039174499598824232683924382312119109281160165016237443013059159703001616668311944549680324860888348177775189418979144228475671328878680865375315557403873321284439224582747588465654944945588687743798568099326264138330987566392349578252883599840526322797785762444676800527480872788592603115854325926219501660845972484029833329227218209093667400040637606563197825078368400869707003472277127126652498134563489741719153307223082717200551134986633000172588460224566880946586566843817432419897380852796259369107253535467934436431506648612308867445539559936268261740876419191621048586347711951629154809512605809719661093512352110586287283493449468576659285886428402555649814973997290095862266034575559334665468791591342423684741027181266977429929709581753433358752724704710837972709735421698348234638267615062083805079110937050667580210304104695753085905368625079665161476011388399189117249282665992091996072241162283675550294880704552350614711812713278976512351192931058373049873140101535511974164324808213354493303412081974318104622279267227182574536403494900948287415621086567749864674835974133470016881449099887541607615887574244631445630463685778497824218690742893445336730504030740804086388303791405484308048328600278880623117662711515251436044210638272137016651963906542476585500922746619222572036932768959712332210989944209782101907014099459043380712325518699569352960884476617260078163288283523384577992980555402692934360462079318055990149259049841549976194563480186486739611429707058542228083281376081554574143645289464046843933029959005618621111518240405305230481893898495803705051648486451483425216345154197802779415592875855941156307004401801808980548856981602941029360425296350184648128967518091094685404925472953230970265964714214925712419507058053853608473752733703509659490398893014073333486719748495503782708472587089842589704020649155873139182080103522507219317261304191025479616209229761266599041206790996440566672947026545904951229736145612947318525903316315665642367221108992359478533245134005603647882048763521738461222395043525242769396339397963298167426298315171961461749361025437801991165940109065905201840154822728175013955948528755740919401639237586669957293962904506584903188423964074566187385577356200656794229326980314972242694121966629096904086637466007621871897666414089030565839766078780152748649199924347465693613513488283136022148799928221601978340722189461297263632706769838021736947289633259470595018078638904549145007989020366458068262329658362143288296770786270908572894268975837331660827871194229525508247907265149092370660906758875411081508001672309393436511748058344223506854932967416496084081472325809628946452022899498894692796458064417600256363408429045364889003831890300084425160191532392868936229693054036171811993601760424157165318083646112809060714097456303313992314739350478504763809917058386904492130745208311807251517238538099145642569276711683875306386999292481305842912366076168292365804337712107218841982912471445320589738949475641441189033266160082952385997433368573591431630919444395038964993665950973340296866550631621833983305701226091373835163576114699781120420271347029147051699592382226747988693386327813438987144334886091990164713992218371921627671890701194019383407775716113863324061514327157312597621382921476665659588274257093440229805321655558398320111913944393161864590354115369404887179312520056604201568234817677480673579290611230309551270091924737758079039807576171091252040684810116427008277085853166724225224379600809920688514467875753005640269569484043036101820059183345886229729206573142010318039526325881622886179471061741649082721542843044293217211229714454881855955293395415574957171125854928943671957939514380790940408663823679602925819645954882329211683510682953630150800350254965336807168279586968184803955305203406231283544960164913012751922038445838578276899634749366191331823412387755612773551012541585059680059115244714087022965192204486199001782509704577447180172087667589958166381674026518741862355694194885217240776307941071561061771289100687040934647246327867183275845963836288229710382034228786261026840753952423358798211933765348091380230625291290331174701781382391140289292181228315806222913319140401608885436244152985331447312607167884875762122886561071880079251232860117723131684379681455801025806372464862693400129713341609323602371956566504663361967944585955927695575789465885529078578679034441039609309200004611089673478941883273204553035228782298145205050566184099283102733149469305436519538494112362963957380597488770426491101039931297780523344122315705436737141580226939332965785350679474771767817241006441959845086242258769227863322880965987964640325798448707156080040206243723035315451644102781607910118267397873175226414081038199607083172614517048997594244621243849139240721321803876307095647118929914890760258815177314219961206056833140082815270864937981164363342214184451773369041567269929874799402655868604586287050084530183648457172729774235318084946256917294166198276986997036405016342284284904408130558393772859846197401055089094555824474537009462198820598361945562911154670250515933662468105986455912938817723344596027585593470123254445510157223342632586396042225749359512769858733155167980942333334542964229032009118852885984647533777736410997895819022337980728458390989712193467960636577680522128583736269516937473666392532877726056381865311423543419444293897410049840137339972069821277134936734340715895702719792336219925387651734987267652980785192046987619302347933864848793248269619642327752300773486819196887848109013484105547631043193587822325220856296768682131091069236382783953768561370942077980465542403485487977236475708885037866729961827665296661891354890058762020543146194709886405758213607855177728249345344262270892462043567384976233521465065575933520338988568806763031863795051159734117186624198185441901955869975916769248201719711299275426229786807437065640386244907072603595919675232860468747682644072835542724514306575360049187547936156857922056037257071020045830196680141882084586079048600715019034641862213953472986687461216684474462985644949495854669807542761135640380132394720003346672744911919953954265551977389262987300232258826641144661833105968663708252720884324829096082108481965685929308173166234806225968799732198988759748449545646925526897320000759336521518406998832580695074463363339557385662215933358374365765711127950913066240065401562083108870762089045939532328156044036070858519470321618793791246887803723872747005812095954306187994845900610615539325801915866209075025647769084998674094079633203228285645905757444120521365151918400936063293584578619338349634508443995625890532269368041779350666077366822501929286631726508557828393363494438268555997677160398678900236103126632225063256968754197956455503229493761957096932414825530632016811565194150391544428888017216555710878460036895063704301998727769845041350778245835812535409302064282024580338503664999246534520463929821724123792459737311951587442129963667864779709825427694769646208017914305601862077974574045406518035263233150202725151513590309562889271366080027746778086818892091814050008316713989205822599343608142247492258222881720286616691307182912408239317186299532451190365774172978391630660986890683064385348356089502462920416507944578623323540459848672040698391853622242331549436869969288725300957192959788259829567100611916932707271177032189908855925591705706263157064831287310276870881107268516092257082395838551052080536437225620390322770128512043057927693826966789436632285426381287519167639797149862158622217480196973527811976483206669064399504555750166016585111446242152506653159425005464966280749877179773359446353619137152677494103866273730383741118169626564552647045808650860417095934931484481637744338776553578496459846814806744626536344552453314483096991842709880643892986417676823433137664636886784741080098028707270699355401397767561051130843104836406227098071388878081622425935382848838095229408981214922262857799851588496847000763742748970789214089786229973442351198507193065849849120048192858583775219935405190743167854362819210791366084894495821935503516161661574534717778068402385151527021308518660119448269994965850432816990655760786493925353069212337512701651924219077035360269941561486091503952762296834911437010159524903374975577613189365869576173055863091039836501094135271350057877519558130294599585128175910181605943262217426999550097978368570576789691815587697432982961748907600334219298822526551324579437049512307250389136585348806391635813071428666346794391547684629730247493717523726623607555499857206210850519040229212434941607070663075611111797297049693115077323436239028981221700438745758111705676440949022173651856744778970027545200137024651067630700266282564544810282977461668704015054192075245340531717250311077796153606017177949206697455273120393809748749258802822777141658696654751984398761961624757678007745095866031982815279101714246754147592566150646554576381218484808333669320890873666913144629701013602746739940642972510577952503015625457102773620089374989558138232252391079067823686242817286368513339484285426619488735833665536792991267419878639931159612857594114075976499682784839732016904960519547387160619207157155772638429962336139287228952192196782244389394487716561400310855876493157791298097672073339523331721879319201169338788271044342412333196832501538772198536827918342178504987318369016526631273874164146254133848804536172283329136802154611601827843442240542873832983900284309985416975806523101929145800725288571752489619993531677625617334343839232553242877227946065416146129676309212993158969315365996361771728404887089226357777432092268746220899971573183099842979280563408749529576757429787361041447824234274575596464564578545208847675024241681126794380187114808984620275157359364599498538441274267379988023604750268523217526148003709125733907413983996203317351280261164211429986703639319626553236683637848117348492008382988042121751703164257143675667484358582484530161473334642715982451755967773975953666567457237141704415693866615110158016555700443076730000246590018394137174810593449760323969558697602806150166345704173621823023027829298561298075564262401458401454383590326855763351071052374963563444282695370314938529145303113185863324571592539080949782191077111077136365277393850431974943460982715788378315793336556053427465856167339376010957981588720620466454078435839647270520699589052208470256465127235555535849796968394332191567454834417009906054542824640863854468490370505186402976350698659607068841862789712132464097213498548817757031341849204230252183488663549279651183835588977470802016537997513762108553421465207970393756006881701052092240597794807701534501816906516153565599321259835853814526061000266034902685156710265633330358349645301857933456967816463789527711282780642943092846196753052803304259059795798254751524932786915198938597101038624038288435411059060223705500264109208607315194729766695471316467531452210229343889087646993654882088665383286588869997796478707749602666648186363195028899140450513851807001308089691685481294987278302922047584251303419890396366004439651242014414830913427841894740644356795954252572842368263610278575072304696621620816314590960240928441631991436757595027426674664628130183688295127604642223133597109524440036897751872681205756814031334401749491941143705756571192034649269669469060721190400061934733163021114861547167184863879469557290418402147340589228771325891256426489451255063413172701743157525533741097735241564991339295492294854328087602127362179919605221458622217146164862158720564622903037066947618297678783950577453527874496272144861622466615430685277522114882330679014577580803320268070899787994293219117221388342784748015754766142851058512268098038717117871466596844201626961415329095133879738274712394064166443150061998554999952175753782420630626582435853489581289935527576613743269607296808972304682040752192954909520531604034396242459404764353022770301439779584671111581652234817913791852167549594942020415312175594210273270288106687977326889109264757640091696653076621312328317122364825024992989232810622534495015594406239986132051024596091605138366576246469775046831392744739727242153311974359943230919721485179774921472071065311352061310583107481843721980860827357733324519695213922005547513797310040592446120348806717332792139627342244942519899756738319336034665610217776393136252993558548385007585466576900255678467663694062147855007505496286562463295679680173326369490522450355728693605674636685534812273202138818976209338359220303914593994095057857261904921227796788467412248711097758680735258888877368573502534761981380218316469399675770854372809473579496379735002792516760608037323366126881213174051467880632060382750600881202717163499650682882319621330826833533461544436054979969228450843807144372299573828683566138812531184460269071119115027384941116328510709299821518368913432286364687490996484253030306416267903666380243073867156255885598681528476538425145364216085250516843158120809056061809363529404336005849920837912659095728052985546022752985800994198917776737584887736907198550726706890018028528621901623428059846241221481180265330349967501099018936780566144541634382855933201932291247474854161045921545384576961790359792881508286591608381185380468021824775225650011238082526823208981515659182015542293577166446412623260567559319485991791840174648529944500599073940434715422493456109766530484272343311797173653629325877583073506779291115128811473763742404718477411836922825054682347459748642874309815026240914174989677986756222040788871067117364275576941913785524034648822021995164805042704959482816274595548572024085258636714171407555214300797459741790243623371927802809345887879807204136467532329186319189367655403818724477653294286775364972059120702148602747104611756145149036481494475879907772598903374598431323424065443924737850030394620250767077111609944269775176749612659105520548683630321996441435854253546203793621269192388419458528629105277213680966202129209937445066254139058412564671471551807257681311355673231915747946723766194003832050872214555434991103727950992573515667816599193666454939454689749492084060164512726047383442993133668716501283444907476687695989191051426236227349325017855004885622935587368596581707381276872387892258565536457725803264612871145683382797656157780586596936424667037429367543673374664698942798859591447187326628363449962400464258567955995332145931592721127259281557641643873104983689372446873520678331256683386414467327995780935266306134303658660923579623747197926294474372120759542662223190495287095671102669835640974307641787712377599438640231169154728803304652156059512596646824211581757478249949817539024453754935234189939858487374557815005523386820848539747316194469794586479034777124958784421450426571995692271234532500789912305466171931028965141106387111492414158686831883151354268903877332889581807760968302136571318619845105019987988688434102973979899449980103309477441565497261357343038488671715728851247563132983988828276455140783627550147774168723312483653250190118171248545259636388556052467958088238138494775403991638654237895694451226939362391725067590079098210575873528714353231447960373297198460705536543761660510072103231256513509477076600262771052494740500650952445095305941118008565832651999060949102871180915662268846146109688734107734625879292701769067249088768156978467851905909164111051469444336154074708262373848352013995458916375202693007185001545957088418869824169795441524744649430989153766833328827901812569833699261968504687540478523472954932970757299238731004538635908652928214766193731303926515555022761667152635996408407805758485680553093702724762573091986815154408616130172129181446176919263488312428251048196940705926158289410537966831462941135197871517838112900477464966853477319071293540035160860817261611232828804238227721061063445655718875186550856222656256593848903180946433797833257463779641634690547423119910172265127491471506813844917566015560508491628115993698668607745723277702027303033889931114145900413026263819357550151032831715270419143711603215804393849646985108359826473108445646245809459420296055595466079260542518183034833929079496097200658052946088605016794432774380063903326485751279023376789371454471491379188835093519263724380423135536598283894874433894637531089677230491815414586697174413828797739467632755551005897398614782886636023293148396681160371907858055452862630282430542130141486897225522167515312172964803490005218908806788855368848656467451545760183462283059566275120309104619501092608837047137217131119506373998126360949322738769970123641306320591744516472387157000911704897217816240065152985627080948099235557054761507232046398772161721182559991712433819933669762642737652400227823033641803974411562486983137873071515368331812061302764267444227458559657470163383409136345068930953817279943844732632149466461927849822296762346219903873767087846183149413915993097700212438622773602664188693724431279966472286174160103369831736829783471411359993106774402455199473892118799691205761428849973854931227813204154711082481724878663671920268468494402008721604855526205151061661879974860187794191862748045869003907560717065478439307153030355114629229768972154793775552065314182276555890294780463609026061895702673325172222965531882183645574848063114341339966751971878888523692334496519563800945725181035303941379350752818276891943423345838579079806621058356453945533518150236845859011402581058045219684008269701465701868634751087587817427781159930181066820466661655918492102468297073349978591455107505637968198984683916004470501938567171649104237489966895478841449624544076278452389176708533943061562433584642617769677818059459952942290962316487440645713006538437743549769143689563215046562736226323239934362024112996376787623145712211374577033793946861828952826419263125827272071551570490350007429766344216127489325745286610614837390873151640364673271466975381853703202521681474603207399288867398139219972443815131377495135921603182789278086436789567677754293402235757793179105707345878793970789724341342005148324642371345268688224731140931745372409021662611912083051940670643904539164958226409308590822921856876574006479997040109923535598730066849860684717751722609751487967555482103701070449625814265629092652815592766781372161114038095486627434093470271948236136495325359148531496022682186712298656095425302984169665150998811119509644860757863927311935500863108495047038119373527303717655947430345070136940957505376656913505502118321159870837537221418352734084822767686772322898340190470500941670623057079689493515920398774494335092101735721102129909582057165974836647434291139674265116511828312206963533115382849926126901508390276322008274974969599082638328556692052797157877969559752217127576404165976220893273341402707953800205477958921597323598593874954502787223900170225873123790526708381909612725965509278793181479885411401335855748287985817397334871812436256354084089195013194747316920969585596348053494722438858541097385981918080067189223381549216132749984781276832145213864333258867526483982346136971924790506349953174957964121925531969456939722260349815744858019442899757391169865374863710055455866052331365860163765519167030263243577839090023714320835054870322743497282000213288052855145419484340305780325858316759936813758920981825357969374188491464100044618815501788124788548401447167421491138438352137086638638515312648496334106792038304547245648021743915748747652807647018742322087411156824104631034880793833992130664220706442094189861390993190367822757025716516480387574230394538123366267769560664481147894056833807195476455928934904035572315652233312988175024147997827387341380946288094105159810421771943046033104622424885895257396817543246898487770301219988561447714938533387246395116796142631467379764029608442149971013031535124517400955680422909516453452243790508662593153592169593179699639648058444237382853619122755420096372287403974748251633411027736489222766727826228211050057457847596097687821119988865366900949413901130146625300562822401935282614176853795015371278214731528232033797494617630885154988403087834622895071200704591666124784315311878150954424834605698354349453651279126608207053116192525524859956767880449046917073979587669309403542116095213699984458767273717482422232964753543279119556854438029350035426771838254733174908904317820334765940275522018637234097855867136639078219842077482485189048326539137763460519804031474862723770661204364822648347952240561998429642298888310778644449927863244610914555833343971375583984411834102613876742202078943329655255388682013403142653393027237599270672613949306503094920698469444831498335158272006561167395934392817081987144273998282506898273017519186370841056651434944856585366102232261121119868369754506752853672145622482161175027336314845131913114679695440258354458737330494489340732820776047974580584521279588315807508638494703967942971287649546614642576464923662974128500226868494755375673158586784066111819346917336015754597619115419432699790723706364596377553467945191831097646475222875329896938490145060734540915189702927238254855388444403519807275091685133274283126350804983444483691446730733316648755824868215540507003462311091200435522795081632064750551031668712351464424773641774572532797237563854879338105156723611099255711944217986844084365155898068081698393904841044008484710688469110010945182123672336672605201438965990761495805164020794373292340709773803074956111735240767223732854384801802963835214234901506218748892294803832678149725723374369090657140342230231332650711593831369956975139496614114047387845562002005969699449463929971678731497378367767208925772470083985107449355613987999792176435852174453907388689814719153208456135688889081999441524193905956521828252846919351080571056815083317812942264622702666479566147654007408154481482061961201921686994484728139322089883868289923661820925621956569008195900384757179577699945671248478406782073832664863840115319000683787042762378804265203221542675923403845017802427830420887570110106640052784802086324473271767048420937715590359289941724438480704021914028760931849865592373843881470364077805515114195031699758559528800502625356910680776548530948397408955798312363921867483122218927751654470598309907305348650709300463368341579112907254051229063313331213370824298383122669650364962944306959063120497515603056990240691968193176958162983326350792797692096987805645685970331871157445823909674303736061480073718067641175882530754080329010685659315810571273035982416495360463366894832094065594182861394357560962196317673554239400538022845761667250715476102746625732952094365542370239214746817186896371022521234259790699113959942715087932379853897025583170079679728506403704273432843922099378579266319676572963297419586001744718600314894277883881803295496392286246755173632741135356375520947362598627019528975672630459564709487941200773831437920211960737661097656488660945478737665880656606223931907904001611049026610124913890988466946089065492797889988952553433854705152038485659388888310407957513007523044649997339831680827773470025736266386779559126592353790642982465529557369151290993307685551684060197143975922966240556137182390945319938219942414709580006120234257201866278930649039544482528888547859540006513857333300501274742621430324216464137927655517422854024987458132071068327115069088085845653722567715606243740537812349056681767525256867416506800374932887235794908019188737267444487418485768095941153450689633014623905278357953929362548604529723972012917222040524440629847654331154533133684343673792958028644976484231538404731844789108233224017016252495547787108215873409045210043446112022989345276855032386397198420566104188861059619196550017315462322780488571438662126203153869411006797329291846623093377864680806588085765027068197928801393615916218290580042593028042982300326873036460022519332694659043587243545648431116396596590979777489602272185090040820317039685444626696213894684678683375196560843332708510257920913326821934386464140741747479202170809726291129782416712916152224011667404315049297359408661234536238862172997046090950848128468246596885102483010003452910586276421248785875231962446531420970090862937998545522865506386584098612485231053270003468128765273122901528295406179405145648802019080717658382726666865192951642402675447031087482941485031845167872758401643391186288756873241103010332533220687427711235199128286835532492981656078452249661202259667590893181382100291914678309700926035950131328852884537364487383766173634656458353968700704432057915064030499271116453599168485534856363850681665738278185428507068301440913763958729270830033666722377658574172725175222672494471503241828773792867935738955358501012857180301311668534294066816231777226052735863473394362623284300123116631550955624041012624123947173220620706737539365680906660984447113455425212232211957454424220652689851210559236346994584444832528279869620571762397620729591010984670495475298157823092799031821393368673238560494630339445908571798319587853950803133626454299308844677484050130266706317634340659943333267640012674558441092801616611186943800389071751520269655506727004563720699599441254453252042663253558693346522572506527101446900156503616301983611085103169921953772716420816717132066760071775477725290210361449228187854321661922537275587993258056259316201378959517621607328031640149562921788760158132792539796492923676824757915997526301452957574313417123340216030330196091302541544193607814623897582418484693861043779785964817442625040171878502975521888158619654647673272609156624391809552506805805118594999723874840009130323857463628410904268391068390376430960319537610350618009128495256422219158253234623238550590728823272313326128204360893738350547381632262668240054416743283149772686696298408949408088580449932112688983479973166954194991319034470694937092623014810056607003988480908882823610890597502959509771044210329903197714231545933908927236980519267507125229092895117346405017205301334512045581559097886395502976097634154125607395339689560544618487898830467824110771818771176653492101726737554026085518513884717100893108874229658782926676567311649011513116650020724694148677917596538385526012100513523049957554794609646165998524214914055547966417149124480544622447762595737643050856851343528528751111938851255140509408451347937392114625501441142717205509592481740111336961819260283162163216669897467057912577025766327027887444173093396637387544243701824159660876475539811396387317277404767819446986882095076885391267055678261245888569003629387937627895660177768276721127585690451842744155686028728595455410396388996668404796701670579135506551221697176129425106138497190122816934710410923115441105783144870129181930388883609856859859324903240966567634128055263402975356545476604769065715069240854337150818427384452329103971259349766952826267687210515603860543189434956205484539675210279418117746400161774958234645928878074317634504016517065888100884424728862855742680696889075275475953360899466932024256166431648320644592749878062956446334385265013094625609618826444753484416132879472397930805475862248032751443951482518032156582023679722607605692103486583538605794129909348243697034962375708001281501566672372594378307464632436650223826473616282111174119583906345690932654771930259526634253769704062322097914260016255499939606013348400928716662175493938091433220986478617220429534580447713306449563683946296029093935019193143134604801924566869060522362988587143321887671818435982960897821900093226753830747899678146036603404863989441009587217944469242529296765639835051394864795972487106141674405540939218345008761898365963253450516488823665035431338486873720995122009100190220462082720510621718835279035444105548281559406321663846791506452874984418977571698609122188786941961720162805892238612470505951013346060988391541408626750835610536160950422711118892310794648121990542856784380401448619383430330794929499114078895072019873177211785949067934363959164651439110961195536679847337024700275916839322371736870974083153110700608633356307698073807840515061708651060756458275849515819685307393320095035803845718737985582864518939884598428971314451778534252484210383211190750225994818341323213994983471012410730396284618906229657890774333309226110156838195742817193741696646210082768324273122116381183626474353763397117906374891910683398288331129977095574543350312513206268592103190399009343367810067908089571912903588774691251394268633444305010637405914041093379855783179193802186624735250935701263922726588263514193702513054508869420867160280131640576446237810473017255437589893787525821315753876017232674131268716703970912079748550705732512222726962721094174775649394988348632456610760139486165779243084423825853111205304448169946932299916627049773953519477049520753379209011064298395313973706245381990239343615709527888314971913340493905784722758118413988542184446982205671982099096354025423102670437342798464651872662720448061089558005431334069679372818787422293396215405157449296359368150452151662897257230981763107090231742331700931336920147681823549814400651225422198099490095618611534226145579150595980919174024794687262498659477916664901253055628794785603779386627914610662071800948453549882672364798210066731667664214850543475282190174623118680479384472363153757489584074618262903234208228935108342595047129168766910887713357599955566585276722307811216441920588609187875609643182490941739681392343070943620826792887716771506600476805656847354198104148206416105489702125405581035411513255616397176684203510058478816737093917507598509200052862827342755321625278499823357114616094993887222757896568129215297627057616466324636447170840936236290277783672893548692123417122489560043762481837876339275227449682375874680680836688487122055727735388281566053252557412503802972799646566059403449384164180451321385022608762098674446565872075910008512024358078708703578301689031792047702918235461969895286018700982224660791183721037517144023445384171137052385925981931227699968488158356875766599343498943436617237671069509090340596662255640047988896064260162811869821138412877448137994697733718996224779098862641597621674757420907325138215916400876104338310044014085991873187551418122234019781028873419818772082498372448985371438546248197320265862193991468556501928825266828824923720765288220619477909956121502751270159926851812768813430281005463553897866246082680635107299114995777417781214391621833288053072812013850202718161838964795192477808887581693441769432825347106181786900416579781017199012565622572369281529345470470663102194423127677124693124066178985415402997459583067763750044709883609382679530179630999551352632052279883338908499874543418871576278463193392747302580890236842370603163928180411678133413724521983163108804841331745918173295322442557522147946017060108627796463194824441445073561355266543165793632828283107532763656070524459552307961677050834321702797297858307238223783861749202305289042424515978853525633231218078799149450840447101929351150418066561484498733804052492958232881652773649552477630396433729568340811863746869610020552250883561248285285955142838594272972521939182628325070326997075139921989247713099522001485980742608358387539051190645694408925640204215624444705185001572631132383207029365471054543398010693672905046024152587309192520628924069511560291026740419988653188496064235229609315073176900230386717096652238901270827243334024469409880881920657021197680102383467096881375090933924982063526483096703021862814747850006828977144957045578595742796913470734804180111245361803201918089181946770395468436756107346970440942288727740389037272904790298780313395265375097021533581406087842860794078907352255094795315089539435275144544870096206162007819146488552447143348868681553851523103394865543071396631282433284410504937170605247072786454309126552821114573947712855609265331993466779873323973905530384770453481310897097767775139131180031753353452787206276616100635913106799763401688602111701774221959654333579758919968308405849723221202172795390393956494340047274600825922924849190681220681954657745594979655345677694823638873130273688878420001274178946692039424489103525623361434398901037329598303709437424529744976672012701772605546261840855339078743447973600747654003845164269804785943196570014083519061330232523658354513475518428490242329162023040010161739790627304858236344299553726412200456725673626445285805081083380085738903443346953571933671586694718574372625312125265576352506556161304023251829938505171098823638532221923744022105358741652979214799769068530446905337242140263830177168138541213398604135135939657820475665927117346267852687696766023816248072529862227753078350381196881501064970862891354931842700340117641754086995783000615177956822045519111330329378795099790718966349294869738315864392674193260879164366664984718554080641403601375445249118693981472690277345706486950677693093876683858219733950502402134677259454774811324748314053869972584613376201916311437551347818614323139943137468815138211872144817893982729066666473426394779599781277909393100373440865826832698276890734468537690110890232729881491763768595140906310078780007814487088230670352149705099283237054983828163180671404933581580663971108694987927634792302525563099819339169698399063714593850792130319781227889432960170926303434806168751712378594802180282310389616328403148908493203996554428673796062490454006817813659996757802955914416133819583375155416107862693825232274417492173209256648298660306816497096480862150918056577301736093937567155773299074583188232036073976227315138157726124207247019900570479195870690241223046991533716562487669596727390235528985346138984657219006292127564231022390599905965627070810139386845880312136405589286428392464606879039463775302487072741650380748149073186771944678186604412730580536283083011752256082227147116648903010294416007636296868112503169355233390421683423451722255624329410979947269052943757094894910032833699196059591194481483733548171449383128340712545902185168988045302841705682565456075418788926304985358027635306627696758736984941838363654742069062846533969830834864467047698922567412086990490727317600377581916854837916591479282519816375585341564651742547635684321973408944150571096830950864123195432558862979489159247332392514628856172275137578940341003865951612755607845045402488703916930092863312000040003948573968586728391306817204294446507108403549771124438097139099286305335848254292414640708895959176212268489962121625930887856235614596882462456925801617586432381908034944060429177414263721354218545880556954874352843232939930481453048253435193731362767205392255259537927903364689532872115568165394830960094114655783173173847673791489406632771402537403052628132666418501799534272347143635542501984765725949545069478979684402958815552101192640797539644654821596805926720496402968933810802166414657946695693580625531057954740820058699826921988652901683059819042320484454324525110668331875747692496526254367271345021336317497789673523536844721811404284186069962308343381671823770944111795063511875653657957324777835730921281051711403501916205047039583727236824815913410845874114414311933469658376984288014935816054764264130193711652006351829184669956126471502517718249934113335755576863151198899835710340301257127997692344924165119595137359204699351704365139839199150792358903224333214943006754840706015066446974409702098688006771378602728641951862518521871059376619485855012556773583772211207961093803559889321248979311271566007039994467660849041999568508813753165724122222970403871692916227567707506863802350045486282091343926653552611026461930845017787361453370438640368576349674554371057096382010273077042045921480521099106599470462808432845404888897722042064828584036819039583537199293885210324240086604995836512834186714341290083207209618078661030668906572919144321506250840659399072847603462688078451654070485008638323441602225381375164561944592919981008461385868075063082297913713112139176428568539661031651520989523520051406148541560507146007892963375001267773996371513953564695741510191200753378655347836252127598832067418547223782841837944082413685237370421779110997188912414913043581790080822958028881398811976066629353406092345367598497956709745822169035727755806698317771936869818834760060563102023754911086859615342042227533534422716083968493248804042916859385887523238626200422527685344119533526527897820202912196971930309221471544065128464609174446958924534681128318054786964440129825159415982382068643624472488949460915289418261101820201481720228649049686477806071126813365553559422553321807758879354951913858181812873123860539667011289178436533139472308399534060364576269526608378156136707036007206170510580224940109589777974960695772160553764210617380997608743647841553988524277960576514095636833573865548868973162167173934730635455447972733896797417770651071700916953863452085516402451005469677064232820675869797090983495239715905577355872806816675505484047185973759712377491402163191477752587009621531191675764378637261550600538908291771140898492214496972635705297237385336509772849980447725713186164437076571421227908691518697857090585588879705342283165314458290681188455801499580466928181597429078518067142832605756205046323064332526301806694030400693194337917713509621664446784018066805711688807834765139423151295961439707521788985825766440768758897687023933827020483114742937374057218435997090669549271035059174539044323965134530456305512924130790562956024216557541346146718116441600841371301996509894743438718809481460431841585456100503819555946693779618318686468519349923849121585005233687671552843873840337048053286929633556600934272881724249226369988893776159461647878348581825539565265966665222382684629690092028163363548610251378595740826325298100249206026588441914511118575267502447418962015650644418484141566911657435252987019699687880694101030852712061532216571999867786166365432628912346675913539110858780429908264688686729230412363611890430476653545532122861433310174586997084755931113154914527230342150962450384799502629950222857260787527634909714498585447781482461341700791828286177010445530563645395512640889080416828331579643288791261857756619578774141814850387743726797480564459408300027287992490473681632591132614372648164126496621802289407788791152813931072730218505239725548205411974614349741446950249882277699248323439944333772641668480162327503660242817567632913422273026946827254043884408546608424255025703606383581330131637865167152165604858550670378505467979481450630319188446728570800355447177856674183386639494925604277759472101972581917161371574794183382626608581909809680005124171645841306019037071576151056963974286554199328489648135624895378610953092010961193085541052026130672531855881567462156187786071198510502367398938650410108011022565402401418797600773815087221649250951347038500987754308854466493116304217155360823090780007563820085077341823335734928780294844400244068721416905204687330346498562036945083805784420729416936973694056043410365484130111728636803755874002320074345615658010711499073245288284373802296094106719432331379164608086703003503045454252138797941585546304950441543350435860798336161591470821292685080889163287031548592643199427870183400601176981620273392625762192046078909778100169667440296918925146586525788329230294883734312540340379640580484404276583580208315696612823219966591186212327489725320370808911597389891535572014501120303042741878238690877393029443504555689919103377441409996311435277453714956517259052996853523943389889409929873479436898095325155233210971236716824817829115107721464136597956394557002046090229412878741745050470125024658617245699236697410795892401358811942456966660156608804438435948945145391291229051717310340231851646435321539058473923906353770738414132690229831763799711251758772947769921797519148949925538464879185018418577325252550073693076711050644434791792180052172038959802377444705469861145374844680414675283708872569900182852856918526128853300520139084486738989848996336632233044442655626225029872776981359891674435096619531023758975697223654871991598086039241506023466323914884861085808061527842545239173300935897823340649447541016550416046455012654667478832266071820833100021269419511527197191319209850930642792375158060282512155882516455839606408423128661928007032750591555462128660691092571720085321799101406331097418631806648783281012053134578800292732884475489716016427702126053354552989566742872020637757416083769551797966256734014211406102533038198301248060059443396112646371503070975130070854787417031643360495880989593539703113150889637978603901452934857668316940813920516892971733942225794526238212926601150204105023843169192435501529117124441316416997657462006526519081553765109424042501219081756906137805036968954228708686517108732556113456936617921043290615074672303820722991639612541168591072614032761154853534064644396892836342322739326888303997929005287538786176320287252793966478280265976313751207812018907862097355746779543335480535772313374479682187750211843302105172128529969763546954025930053138672998012981454802229788505940303191569893478289926156017343755649086844514371360463485081935260650395071748459885256517556462036039474778964177124118438981847455773732963730551407875317880124957055768477537771623868291324108677165972123531174939378660090143668753159682277167820602125301773273363000251565294635533578474575005105251766281726246983975968565798094566891536723717718245897988993306562637069563306026157345239439805309214843312182000650651341133981706161550343485661310469020800119971673875903966638952163506775547199219479985928769387365018615900021272069615606046147577200555093463867455490436659391120015487704411524520500186798855930268691058869385117145370916789273634134826616626892068262905535044819537727541753146686253090476398190821814736992089764292770039324744516034579665097286753220844441546908938327868134934032334788841932254110383380384133998309227243034287396378877706860850801732929903588898416029696916057168086367327237101349305340493467675595450386788408095062199883122786564201490981862655456057221590267556778908241934039005413427076210710896332315842397872217114167037287697343854676372689248521161893633302864136687556010849434412435431222862115604240704371384123308866915737096183863373920099291157029568008790960685829888239943022864836171757303120775361108500075706734545592329913823134282624070031284911562489219232007147708086260900455394243322842503612021252962951847180134177332217293625166624539261168080209685036971324964131109900750832983185143865798581797893971629373489047912308133477591815223931364767218790814022790437173885305829213590429003107049819014465312642906606828179419308774982203585908226246400473305082164893979725840717727203265377615902810190483088079359809367483992664907857258154599304882371954727739148016122070160092917802510574496829392719223961884967374681046891039727387332830258116094070912076742593506939310735154026251852549697433258970159818759139853169378500534005906289075647129082851818481943755890853775919135595267637673255792479912994924691001404524961688423266530671717907810450844980427951905761016690931993980676817853487885680118107550799228829630891176595288349239388977670703205219347404546343290537053025744351982208572275026230022148172026631262570814558196365074039280269564419010552726644127343711815617013629166605118873766869968651036867047926020579868185982691544061811448659143432612777778257057748739842520535301428517606696208372340333112083790130498162915315865397481869397213477733951149960471503215726176809848553667011278798916590279823384245696351090484187782206876666329767220032140504674001895027226268848878335124210767079600333023432102361266430670612121662121205265148285223473059671748103912084243953571574931741299154378400619067707792135641870392317334120584799760567830955346819271726721606553257441276441697209971734238531829327214561391373553505437042523572735980074046707592937942792059360198669725593368394165478598795949611939327868027055379056864544854753096435720409550523957329715560587708173489935124028373979060264078347982799065046049941554526444276541466679061422559576797837575028651830189289268127913143105948370212116567772843682132466983888694113669405333527803753320989906972748285000748624069045784194374395559335231803469447020458337883042406030595009594132196714118191422568965675451940424711093585640151568112490944890104103705074561858563565857846774541040596340879341891861374923713816951026471168751343498696039981931012408142125299587321872567876460581297551553579619858186988599899516074768611932571414757089258037662090951784994825378597781577407475957211500188620025191407087739753561197934084955403932702201284884495227539492843266919873879602068588431879201081962803881513012820668185267054301468366608196001862046557513369170026358163526808954071222141941589220086549239583507841004723056969532753749776502370000953181383523575189374358170184945496965944338557384669712971137007701044472147291657907444710824532205707859291852033183881564211690337021555421128361673349647676612589933706342838329164089252231188296402664857517591444751748968384114313027573066632902920872576633731627593961170636628206565437808958003737849085731345100237171079706718886115005579936115352051305500836592204529190686536091657899590278242816204206629436516547902800589596636686538160941710823811941384938120941844532191258959815753095531995795340867532097737587940210253090322123857682680411248749354029408502310950052583634596113962052923287425705165439936669441231381517807918354217178889614393082479858512482323681638827127363384571124949790937089157054348215887830094912283954609022415038723326941714207018991381716253720542707988421649015716130307473335382385548577500491641717947681704704885268515757094348480719862065347180379110999922380789927866000326662591266089750968591973239100818172029382307100575534488090312079359831640975966287488082338323479438068588064785757241847539768496891508647122249035029966114667990467127951504261243362343839365967653198449624862483971417933994614006767134340589592024958109835801243720889608991649582259730360704821374142452545268151992413995195482252536307293129650775469020221472306737445450125467254534059084609800371564367345289941167602075685027456873930553399836707812545865719628054058999252189027339139848369152988747422596952076404832153611667428275342327427619200971663278939840670187101049680454941630373410518388642509155723019313830493055394308929264215153907346773279932069779169434496146491651675935329386554805196529741350241819270800370392247946850655541690470767159742336139671216540517259660513251397928701295478991879150765468873157282379810505289242372977405936201546723336657317305357456445226667873833366428253305455169108643159317595775852567674771124850951804317823569905569343875535394485487768274372060058299195816630224601050539583721151140266200211344724465599252329894070591041054814707865790136592591933333257173981988936899454019334817486531729695453682007885335399870706659365107275121632010410170631332162592582394381189382243746440323830863912340363620529599775602351416774642129850635763322882686450446868901175794374692285899739963831394910176034472834726203289805075546223901655146192739108125206487172534726202448540718154875481646984566751474843751836263160315016046323441378950250388003409839679095301711208412894754409308702315061415245476293128729824912222389658893548540680848473150567193090612286840495172067442480568160953054015874720625520738913138209938749979879132794867983303231712125068655631767584536612807085473833861110036284946900754905133045576097612151730827870329272313491444002955745659802411518186042349842200844582071061227467310557809466824522612933034387825248498610625728230312936242180168735957586165135120246545305186874497315815875868541333209250235296193796463032882325222222159923297854632230506216187074939268763269077868028829606440464558645716163472368640681483454422734983552257447336142117258377410896865578205929300849150920666446106706995520483209699924482185757983058076582644024188002455520030274028430584117159631364111764301783532038566201684687617568779023200870376020846725345152035865722961319889814160109795069083849934718211625729682077422096812687527141731251251400694954086638626453944648163387729577054522749714207850534298101840340764035466349095868002036739770583301745996323099454691371404096855933776682524016426344460486909042066244988295155011401942901112887763373954938853271355771382016072021330488241807492171114107601793772233412728951367582523787316944465124939752075644678717374183232345794090528092276948169232979848009529147789731710747014779832818844512468054202719437058851921568911633671444729037638419665351123738706264677052261979279222090420090409083300153605492346982419638627037435651866674903547717976163858483711290283015343601482373499145517938524061786666935629692709539581703989032582892291376785205186055248571454063426733638989283421257966059337280471829463773428370087889384115524885220421377948085336512990164915753822331839705539968869889493496527194766390419054135799167153175495861490738443303596553976110795578823192561996173914900056635144182996851085870382967305993885989990047355200782856667633618309412321793118563677749836760789668975103514713168369860668092838156501438295317450791631116260479551663763923580608330707847535052787031804839589344834135943222067470794072774629190728412908731581579261724864177292464818545596305006217424684389833753167950046172442314675244864242043894760031257471009405865395123045104450871844000400779090765037143531218095182599860738612422082773178210961419519701289869738667361078893590297809812016412141276964801625000446390669054779566635726578220473444152292986188607109102500690322420494227683479048501268372722817838501397932294030045003771509572376045001252437787950209944304977005557856655484106150894761730514487715006323396326485220747187216949026909569676351380435794047257696954075250688729569323840019665898805986989974632191851017929864679446000155275049802823274953907202211060821291648370746436615594663366087592977536583407602751608014464656735530748291148513794615407741200235315519697100008639217813892558132073162044611784376399258254719717782530463554826478353988629992599788758442040340771405145030155047634906602079046962938726968200828493427324534733261511309943849895999328107325187828858967134295786775389494460607911038648955660316252369282312347939369972052502879498453023608519346721135955041604002921734402243499759632054790231797015137032741355107587691715359222614164997677720916906853426181815807306560957548596306895246699995644898302274228154540258539477209030534010143294630265117806749002707093104067516599182346416839583585505074767934047056342553929235880998957737931879692127670662654773913307345168856337629802755359966436238479211395104032971486706620793938702606367358485866989845785410226274414212537555878051939012952814217420287085337753857251730939211780192441754219877397444707160655032363134829544425683921281637301884738536805510912432942084694699602349993550248419989592255164530899383201762451097908302806349603375142165724615393347432688957882439482754324691058287125190547998730171537670238926439572220266099719003072822972462641281581851078598344653720295983809807113646553657172836166024915253615998795958944218038176407246154814739725648353530725723227548451037790409391157208564797477559278327219925199134999224107888044689024483190221995981042930751033710998595484274780556439018151694467449596694927118191800799064267701861481645006393185189400660551258730621437694965886207700240918482739520050140739587720573110478750786918977002155633340146179080503109710926511791749527855898917357509132849211841838936608680583467595917337955455694175847210472760143977106666766855178734869021866743896442767740814359529101630451140606821425302250881185966325923012342765901776720680207163678196171339279665643813397389631458504482607842832900294918872718180447511261666646694905800609974043213138009278154553888852048187877588117467981626838081275991670813012732719027638160535282331965489550571759380904040309220326268663722376976327366517409524475688655647848133213176940155052767639477353228135160202237693423699483386576096867636727100619366913834132686060640336615596437864284498496385586723436713724240127725921949871385994946667077410215959981495471520132404485109466487971788767428524788312419527251842348457639051277343620790622815703075846134450095058373621738294205874161351212736918904492961081167336926407583293987691623073315268659787219985741267419470436359475742856455471596781830964333108012873527263456836675887790749034107114923898606885459646367710357200510752841585785454893884141601293241377113044687527619999320319357488246985497701273496806777079094797515983313058725281221934724458602190805744057296489137661547547921870196733163420728992608365606306784225837272141022444890944323099177402146256843229866441013285137022114035354365823023082751138864256494829328796056523674644596673233513674188187313266049066134414990842518747694599782801075875760282794686677871777220591878444160639030056702628202910178135821446679094900246444841154801506048554721303519174327174358866726852550904955723256762057706238493023119756525216311194958558888417701248023738453756098735602503784890371851606790097639952133112546946601374477584936827967184699492941264207411833305244151923361891755035065826048338156437541027446556430355875759105501018875171992948463610645154271146773998464568097420075344956802162769098932905142053008630851358276561634547637877270057324856683042860246231234324183747573969279672989506034307521951838324246176082299977450444546036950291128087338611746320038487709064285003195517361342322007448781371267700053210114269437955684894938257896748965287328293172902605283791614010066293654613358858726776976958899980805191289413435645777808089899655487143856654330783020990047021305649109998054788458248039532100793109062329062944986149788851661117022708896068028540323879884803256928149631612328186658127170220747702456689301922290197062763673250486183952107685133736563610549255521926046581524607593018343593638797411131275181466690997119848594895200161087836506294380337353290257484372860571938625140313660008813444021581716377792290001785060992972636629217888159307989077597444115558087606980415569951050803302904805498745815371234004129696340222888750440384586671607279081227242114776322255040314199460686959967785204127734680640760631987040864803443250295909590115926369336624517714807518802131075372749084672144113194845079504921660778158119670851695784487593498206561380573330568526352730052742169951118558951821265212072092957824083713681093230903448307972458546301305146719059727133554583938527019526000227261779229464594302966277456054655300869252841204158099138839740887394460100822316606231745411075548093957351205484217840020744486780150015962791152804152772139860707979522293805077242984797376402481312960346172893830230930970520675291363931522185623409806521444029695861844026417436817045105755535444760409843350175044762547416825203417064749171569018635279731284818680705993868789656659921465711413614469523304371628168307102148200606873466026795618321761238859042203915142267585466108593124050069143648021515477235285814125167432833582570521731368373563152541669326781034689614663548840722921416226359191642296522870542370995818075791442881222260397386297783913746354971484680196862867247830701440753780403198567953864060726655565555342489746191881455192133279745869692642975123667526745568524730770399153016216015478687550486242976199546243441389939672693553057811609269725303157753485845379057041982400850952255905378185741357781491363612486379497287519339614538373629383670307116673632065126699004663542240324267922286936780925612111520525438773565932551805550588937596726880080035090258221274509657278482566872068147763054121757299106823366435120186535454211576383241159586110385420289943327100405437364861542943306272909000867292914735760968376147620948459859183763747866559935381328071016881135046057111293876726376593057144925398758941104854410480015721723905455601583110687706376111795275210916627963441150424844980157153309316722374386904943460131004549371441075591671538266962646945757958054299538488350277049583949895802627295719135185464584906123333103171843443096631282208141314138762142459522898014918228351264189055372471386857099052044072672650768985160204055854028467021268109073260067227155543183338647549013341854654875741475769617856400703461188748430724782232713220662420682169894688478612844545482174269465049394086303280469626293866970279496026473829044907367099849982907034475492846254206727897793836429209769162900332941939757522432959830995921447751472111352676948618637390528711650921671123983387504034213518041334452371447252637265142319975382033822862938256836811498999176145247847119236726767758091239952105807614881114708671267232638484682667881230007240209847525196830220746987114163120918335491588173082890609611563043398852672819340585755769675293500533639488216140952490022611050580648910868132485526605697616796797879240275214552959694704872141664815845559856412159101409192978996539067522796528812286314076538573944768005714943509087940508347975863910938169643794103519155371048015844306136759068850367462816559805281523490498542207433768285448352832530520155900990266597867238856260857007965750341528175833789975586189352570495847095093889393842445416271465242495238508323590858088256991053612542152335794346907347495816006340446682553993756700966520068357744167158159170765887758901816707671634724414733295690393588892456000855543483395594408939882298620129031113221501504493070774362705697513243528109031163454404871227386316572893922543063544604830131864594275373664011731397359745395444415542483191019748986726152430291195771734903285656328623432881964524688058657754665093456100915200886169638714597540718731206997142410949199553823239972684437187142683953920819978917237063492547344865269993591829782527822193679176513175230522395953901475725986018684867620383621965630689961572188353709774490313166390585048851288159251701998078511475143790122313883809694725267953237230978933853062463474616374600980588116094694283471069112978569896395465469455295527453622035122866425876984308190727610594163578447929343508452748895024864707574677789135543330455610392486646673968843596061717506056682818912590588716530473969958078308848989919418505872191140284672538383635262434386221172359679767820725280137962048673459737422040913858191589927408252497382786413569343265328458724934409430653873891941150189955627583184770395826070296196128207907722404686143095018312302517466603380582062788416318114797824556599259919747378845578313885747400496656811440871718952231799955085345124871727744616669760920013229676112928011488518553868989093134243469340654293712630229941749923717703698299796586760737421114281856805129592047602501089448670579908022101153348894101558688826711209486415390005949617212087737397830303749593033924937603388751560696163163688914454126415090069663589558377217120786049758576598575142642158699290858406080437861733116280381574411208498816601626997075338954894105668293948129406785762217683302021693746299253404751715842643324082905295672997089729201497506958641506986251650882581747608421496421567463289498002590656707447237937599881321349456595720453523427627641605014253143825452963459205369826769896641639871843916556554459584715542504474768011081845487946237435900545055760237446168677646892166419448376138190499145693166171489329308954806847029489984255127239947553879632865580120393216848978628932356172577287086803912624883317220329056461756417338158723034462453793116499531984232565715441232708081861355584022329907953859675410703007685247046923481127358397547510174961559746073218971518500372754760364376192507800392486991279083724515175358527864099755184136915911432817476886408145970305518610421143781916199432415266549301568824762192085671892206052362775395646922617370728011657137016008158846717753299845947785950927842900536643968357779978528007917330642327289765565082686043687563179482646039297093854893833522863223156137089393367416602494033617332902629105730934344307229597273939316039311361031470407943584168924360490557072541611131465176468396885249779398131675855600613775724658425558169655218341399163155513264809683210031762791270285632245478608155768405171990336293659884649275439762441954630498622759154050228758694224629315912553383234414356012613969592481941424383643909021014555415996015803125119723999439861027898936805814005023528542100577696287715403006615263742493709656181129828324777478545091077382706959823214366510861157813585211936999735319936912248671884209372143273009718940156915641810770547963061784912892037486772300992931768120800917599177447477420677827108266597494313069687911923732978296856298598199778708620509077001536581840816705512150028336647511269475748725607806324563587911847322522045637543550238132593139459597432496644691068377764189896774490070217652678004611924200226819701979663442770739432180311678586129393653344757770381140768133058726055239918229248223494070722111374189269013547104987337369592836448799426195003098413645444351557392348441544379447431002358098936267448730120073384922982754847988161906495960789141386799398535979393774776747869697368698458029724952274878067093660247799173014557579110871839372949188001065357926331449447858143973264578246619506692926843033084195509538961801958125040503090902078413454566385816875327989077528009219280011606327774364742112633522051961646930627463202028786839998527942712399446137053779244890361271998533064328832120668624458869819641588185957300289205648297020259152455913575561299759316776263774649181753602092946086997894968095052731574026290954357574922959193959304148687420707470757122365722440666267539610886395702342937405167427786823731935425127204776512968809315027574346751989008504553189376856080494654241597041017712270053559848662818096734036631570164751474151740924043483379642414081989682208836562298872795681228105515265740270591569605921743180469893273427153339476866093409776524178695206930833305036165531039685640425334538970184054086500369778292842101231422603064926399284611525745986763403554340181154587011494180525489342922446762844886937177372972151735836117000512793962404830850783154466368769994542755896453827815261064409522367864204184203751607496935837381487265991462776646066855074459041173101824299622545161713717842444412546591937669709728055463296548471491011800771775882565346419366495322693880298213936644708444089734273725325870514669933779111576432302630419336466537145172376246582560991832089084430216920229177576173960152732947474727820750840538061532864964366317971159997539638540817225681259116527607704897085525633786119205039354060576060290548509533592810445201224839392077364408429385248985527624967665642392789050963081842559421319702358993964389873687431519564617725050642328933776908054035448285098087407915033579128974178470743061662114820588313610431268025923721859002892520614470519105787900948087480008330232853347183351129879224945598029566974663235289345409094558597827561687699794369682931846910531084345150317141578233304961450358927389770091134812603396326055668354749524200134084566798947051457421060435934843446508370820345717354793711136561622164646081742874600896544913427035306491568398845744578232335008895353131830353947846224199751884930145296573563419015209066481603508123668368343510004633102183629145980814080193647414819459646097879940435780100132711380842867436926836862484592484831499404428905785999036499183474890689887745395636537328641280943257045997816764987431139970743589501887317142377081841659777782820847802487220734342742200172192002490642718763552457891068685897112397803832637186603112678302534124151373842639907650489156407322895415663304820545511023634926656950947295720846486876510807092105591326438232232057443638472911145839713834808011832316061174045361114839202935703461514895740341731609445572043396255574978572162095132413071658276701385954266972660987277317651989772430869066641039828489967325078932917651689604554483599505473394014662873301117140085294768223978877383464057091667965102490406935080502939092709908502301816879615598291549480513547443498314142544665536251247649935195612337666738938659423419889809120731695502177079225157961328528240442967535228318671341860526636749624383069634713337342598845378361929082209762139079890530720713475692822693834644980455536603254754934316703427425262075133656692627531146409418488499727820228837654935023249057503851791653273391919428184430454112012160857738323570915813912133092965308510412772245995892085304913741517244801579728179038107381941049879051443460480680783233825097877001435040218666103697112509148082810939798973208866145364157503996453623546074942404212571510259946917735723650347110660539911769824018386922251093983645963936085893165053016495429768056150984807661368457881965536125801601265267885867860242632099771320960950686556838622590941172896276784513579070047783419092805905712997100094040695857656582949088922633026965598419263569665661267178880715997800932218123654978812355837911940118218292037633264720034656177600439673324922333973041461267056764476504597513100967915977764100302631220458915622256110648771070421033657981161272248311034762542648510556188921815692731426583911061438530972018965864570600829099824406230558298433609386696125008747113547343142155134386642237026841732204960538748203175047755147718985102122060280112451645733214202307049317476072485255306878180627221862020988587179073594015781742644246989628032220533107893819314206565484726371079848709221788012994490505611482280960068489689750903918762394045767845705683833779653725334912072142618716878615365531031653498805665148898437519216262337868478367509119003526528988868427408615566734677601742072320644670137874709609887987216478964101778663647295768012322161359031247396445405935970966007555346072308288631524314202900220029965411466325801483984654313405610204478266560223863998156507603434972377268451234209030230152895293192840978148524861259704167349559725314392113872926619790215194697230986548399080371976109291882352104308796754535225599785485526406408790043136247111042104199964776090259817306680762169559497465184350802953301480835329972766285965275212470401008092183845346655297853761031012796193470039368145024418849934233033785894723686572073002490116631170035235268284169209789023110760460761865693664656005304532518093313193624478322635551041814055523683317658612753031797179334012631638128201627294406556769597900528813804111756101159329803730359513782715692286459609697979692519588991290119544531219312091821900791784482979699681252603969862581750116575350893695686169587502920560148489310497904085274201703349930575198725249886137272457091717444288948775909922464410509899072493072357193886473016274457563393339582830533236833049861195875068680921071439585429813273742953097599977147352198234565096798847612417170150342950053739241328775285402972720186809979209763149975955945819453386186386692298656191466744595012722616762097855977900907443650422179998370844209786941586222947108281934980377662195772112108879356485830757005272786711087168029661981854742764529993952632709447512171813141998772154689147697962989862084671391052068905299701938635267571256665626990179611562259849641898786335136041791794780543205848556145810456859382842777719802858805074363080130352140854088263174304187170838765880494294934108122393127084857011270515026101166084652569052796179627291930642753267920966174772905625765409432265189880918554045372913461766779172616756450898044948901721635979647489458968537256626714991448785157657902311851191078245776568558120028843440116065895322166358846074935445824622553415610648004713939719850595639123028504608121209668186136083881635231592431824126130343373038892646393490843385546018239973745555421904982598416767444200748438397290768848481992160786117788872185205034677242518783784653930653242429557341201560046689948748603921119245230847046230695525383595437114927088810605745342866894682280794024233242506129613756199126501181976927965669512309229979471425258575957049834481802537248621568947145666865371897328495169763929551852811037245069708304287967935856822700903059404744298124489945446256168565668764479200107521430805724431065381794698656363786110779555667483142696046951882200420634386595250373920542721775730902197686130092400717582933963014245288608543688633095039244192031530505443849224447189212643445527379843317489104355608213688675448816730590632322334374143964361258112701961599801891749121875262482800420268993747057334514408203334404917490428757989456159761212413423014961963377758311432416605846269608964582121377291724818792679685028953385122363360200080582084633349005154333410862249279664516512916000542855231096005446403708994268703630453892110277152960519412700633346221417345204172619329815852531056384025701813496604246417203355773144387946565140760754437617580007428519621260947404791912406919702127778419685630659038687906412852486059391596189593113895044649984274001885451277895325665829446998670994073136007699459617244810520132444874256358433279300673712261973995525597167511292910090827838950242448744446162335706677341013115734546293381629536324288175249159772365175223234974104485885537202745231543049014640881957885278213435754499929950562630522991446071319610735193709398363100269836026311056707971792253146193393698169603458816015003270745149079615899563525411908611713154782380265488394590455937188038694131042510743741779136691254907094352645926473211908979187087971448009848890247806456081959318889803177355640530744623792789817604873775506543442418596614194478816966357267283605809597314176338352325794700277256098652583636406201001422302813184691859269432297080358290135062095351686067611788891084237557133208731454902142228559506429271381451006945296992016614984848811000234812389198824188736476293073725719480247352693554494210195616050152438281148574433696698695022720471725997058480739576828870034913955236240540982487827796345488347508317625197896087295001001581592352738378397542558538522134075902497591922923396938346772770632498713991880161023343483777913490821728484738059629031108373970681855237919519198275041984842569671434469652172342916562593660578279447304793153609477147741809098485192744995531725955382103694364102509141499132577516259388997941730500839459888762719351484902647746763067765323916336981790581214816736614461080865328408955096173739756660065999526519961177632955196184793545644657790383054532226644703545714880765748532865252774131332465360269156583829117600453296046520746723863403486700059448977390560265968595532486824000010591111133655537070327108349668795470535800469533948541407095058525520842139700006342565327854167255363272053385610865633312955694264009002169204759446477106187059425080428351111812503897727115139235838073547715739547459639749425491130586792096782805837955254099836891325627970333661552485292110083811501258071685304789556722034990321147133819362469247104198791311894508310424659656022089250959647113822035337096952874758594979753374812153419706277119094874358504175630250350674002908047100146306438879901503324597914568027633202455459373580430261150426501527415493627549138165542230483897431911392471317947636676643442995397412627299711664208551995755602487337671415822269011436464238649109476010242119510612123883143101037791294544942840117540287360354678308026562772065448827164869906183111066402674937547494265940460405966388863159917889697456137614752057177988253006672955811480945721613866411292867811438950909382355971248158530317579438459996281566157085511557389470279647558621933978175578619463516846442469654886067913074460304630352464059093896729871440812530804214300558793202979877591945268709133759995652837599461947523334222475769108005088385574374338604674335159979253642885642691800511204280442514987199770782430775512156913017363718067023597623849284683493538833343327855543584664046763271773951285871772722819960742800084998215664664643751446113811131074999632362507284997251765093048089063174257578809848285736566551904075617900755646299199719091600030255890653985678710304541017288824656040003701979098607157306188547940922991549511155633743910730157642800187672389674368477582393582179509310056631409699473555643245183964903973139131733340924494116857315574758811922103748797778821318302532851433350386613418386406472483993040370941782235544382566129380380944301247919751728601767702351075571522819110675064509729718664964536241953767691403354633025940075739283482036028752413849820208102351468004110701422335411290480428842907123160450489433352770744545657592707433474589555465227956900450205010973591112293821065410475017276375391992243472327305608711821064085227300818345769289905870459340519179811296584957218554355255055839400339583887604277338538575469997485046115166055258723637600175713604024931728151541772623509309100201032388854623170176433505216970597937970421570928990188132945276687040811744239470254554379975688794386899186400903783960940109282293320147333051101859174756887026662726424472653911784763074650416214475551898041360063140541942498624623730884949918044797707687898428703590429825623987633214475779980383649497039248584694132573872239790833207566815209001931175258451693193471919616026546752882845725343321009031915042257653954528201936524953177859080067326801997691938645918442113454938954908252731464879778569589038483625763724014914440835372111933143748326884886605127474710223740394328305618419857194971331985618207421988668131196076659196495750733482103413975206739126297347601176825052984818172942103601799257042373597700705520285701207090779932797869952529165927765605933930399378167518366131840086854842059614530486851046304285636226919028305572288218888518783286499206539697600675968654081000813391693138920088752871486168398043406861024044017418341206839693627601602579345043532140070304040840785559688494056653646647042231000405971827168653256413066168696995829177139250871464675701538678944942728943651018268503751416035395010642877304674749480790842336643664769950382364764726287573971014206310412567286798682902515916446930578785055384485987492514134306121667629292146892291641458969339605718368068963226508350737005340224921439080006758032310846162351831085459987232572647588689131397240479407102717832494011421358142080713020695386925052761264580421647860417590984685399843530255863032475752764088263967820400461661078191409976699609093662008289493443834310124037565296104266738252507205816899264392730223547597584737676390779782793624774921072017268869757006912788221486890141451751054903630859667165852987094980205497743917045038401928308545705864881630555587741867345103724935027065987999180862929045068022740784391947771184388578172071042653699361948175704436299478445999682959174421685192662071260727907720810539631427577176509081987227178295112130588327062938880871981365516706140184591546652811522924696038018820116649131585282867049308460142047216205590652463451568689296873371003987254786918657968223578776787117728209010787805277427143933075363805024128706126044310581110418078657774850043591116128138448209341138753790209110756819171072312397310131125724977954929192795855771158137289762203586442187132029450521378378250473482894460863579296968258001915662681401245716539655844253667114021086042639063832060605117708026011147202707385662666895280744241419471923572570632733079225596478634540283830521952745118202488813355071302294416710009970777493124168094518545343390688239459092617515087992125054478958314467234757582166446909481111296435847350555637601290775479069177346122825688674008044960981052943236170212945492440816379105204133787590333747932410378011960214886957073488242163510851642746830282405602039489458562787708552758500892257683501935622182234836984623064838309407273191827536825171928354608415527179763694964209785162115589704686074689230150402480361009846647813747658616901937863832471315652998522908395444196175392314564874378175784527919336516023920715028106061670254309236475613218917517630051535857866797421979492661721095326720934154295353771645411634780913870899796772860265732283861515838112656225815522025506740754070382506914575326827493252814333308849645955761672267566632680168939621675029091529891408903852360930828322522493362125854890800751747154254669071900701740020418203945181449181398298411314309899176183061565773846418840832481382978117473816914636250784071931106085320435910439275171521403556919588375777451075153086308922135879675025224905356963337546222405553935518377412269150576357657833944625840105750017044283157269297280945403488724245690742169414285970505657054079608209396673788063762376065186915588159958209911667074970176666433216002459850172015516110168786261644915974360442207834844963200632455825394606604727143536403486361502649631687376716779819307273525633719325325068775000884267688367476764620934890306917667829515054385693381665805124953355972253656366656551807626973984733423851506823784356510523558399293687034320082815783431496852185041153784277240918130388591415196524292560304458594724204144434430387773502943905932305347069889530048073154193213160625154804344728841596344672355393957337082170910606008494773788656142610864409942279408290229539931861271370285427868834379678141954061126576858967809789525223706539401303466236487874015476331148457117668474289599195730840782858282371030512165446334402358365537422999366922871068129747453105985980400090383415516463802147011557965652122086561061782938231827280973375029394812932747828339148995973539215679716912822003549889426315949142310269088562360296379853449195703359082254768152706194628419777221857170675644097147116931224548639933088312458074513730500816355742237321711233639059989313034516671870289937484703699214706926138977666230761744352159919809769995577635470098344619264970266736885106613638191187752988942546742051497327844395813669766296307383907953515061380415492333872948078776226425948002948333707807103062939242001948372379000429105590143060263520535271281198447083754701639942379362150729303585077740020551241888032689208294202435329036515368127192465161172191240411464341689178763154130162480840704817103018341266878531425660440968600325666473705338244635438254788927962542934901053306068902470116541397183311795671772726493580854622196306577910000941509287960461263997281828872871025333394137587692705758571969712597818224100520790939863625803978975833699809092310194953179983499836129583754874056976691659062955709252046324135587377139197165317848596111260345501054401613391344462224414640817689844661725467241280764755997991044028480683946925459105386138928529449716235831334651391584636764832467748744169156902929226950507332189698154645471360737558932495384295342974513137115465518987369594888011917174935703948124479569430357957698862272577137579052230308628301981016846292471985390754984657277499160772262527465644358597789143832497029963036669206544462132580991276448649803398683105371043400009852202361341828312051809969931280969792289504221994713013047628479935988299800607824891493999413445839441948646881487673476460643246883199780009278369175134951533841534519632089602019265440413741609263185869178126007967539982809137415809357932257426099575717254386102506564914369827261911551925616358727121672816709950654180359233638719781500126813161937606249378181396770955237669560466297486842423259864762016607018994902196431654988010804918449205092516103852182140537337154987860294598818839806196141716381941592258872387174265703975919553827488067184328200833223216415206427209027688548397560497228821739525355529481576968306324904998610469055830258439009413336633027168423758966340483163738349336676221647143665010929632176320596486836231645498801696167438980021617816454805289205297879269701393859684533892917287419993740628080014160734123389014049935161271529217496020426862290334834683008931354869123261545237767715364778817982874143481519480944629741550435970279286745338838277629253033987677964524679577369624340829252150454366040846475163662730616215067717922033762328535053753254526643414561075524222108242796241159116771214054744923573846482417154958377526406232982850173967010955382535878897032387545226559127791156627873858280044135811750962346999600508173969290978359595404849679082995005489558531290069310569755394047857626467775329736809278269173278775725286113094893208033010382471258843207170144395711508048761191185664610414853222188482037632967759782979857176840128788670847836420852811500533016338077832427954274834979076344298989617194538335358711181642536304561027760223455704505456278795768414088993757973976629294863062517838701217199689798298226065943816459684187801325199798071072691249910282277255406011286543190177327694929340548650406797197294943068932672216741646834523184987288160389337564527895259780526325771371004791418651135077788152150720358649141331330140686812933093592751044772590144849618918894992307324769289863779266553039600580124572669690831492758321276776536962278992326493692569584244135538094101496707084134955047898528397385394956316895365967546465123303006846452976231136813737232609594849093681880700332875319603990821068541787519267308728832393413116767193189384285204315958030324431852107136877452003917446876919954928276885241555518351146490199406745527119517038477146079317459044689208914405577829033935998651546297033328685700459806514531364426891810705005795348829862750163459063918090244887141836573940836527187227171463877458100024124296547002529883713139569095640345077584715486558603217429697553628040439561041960644452828182714357536928421912895560466739503497933844646874380559770937378371562689522000020581021298129007864816336671963160544068538101978913998691749799378534381877200177160233806206162427714857729904510404209772770438949972301491868318911994928661710598441526294172315521579530327049907460810476107622823306691838422916794326810461166215706837529828531453102631070431479722157274831117405859007790528101524475023639125333449854513592810767462312211159759707917355540012010605662399061201354126593214419368361676868577955539288242545587232277300166908404812158612489201120670253456206605698731943998498456235602388078247911611531586179249894564895627950765251078438338021850448677386419475818273773005086682752286958481230208366656850856653129181677987713188985296278431230923521684995712579915861367989636929224893044718292089496972443076094531057049812804004033579532142054024313356064467189205419302724313856128309743507141366021174569737752846798461705949793205884744438566995074734712187124461824718294764086517611006095508325368304905886034779223658500246346473142269259468974047260690410016528246293990285812842325856008853994722303696327734400584411057454963738001934536616999425630147416048459996655706568450482256932151738239806385436620435980730072388076778909094863761379969936690912095221007524672716941527822898278346938562598166632867131828156846974436239811905909579564279317461432071354617620866861638520072351177791980758647311728049553261998415057481356080705850516552646913007019714829095024019628981524665831386846110892529378090545677804798975423942899606860187938991219704000048177885544423718675151532982396462665383700165023223635697491215251659103132662095824277624496815029578765504920962480445376795591243599340910311705121121726642339492416022457144803935828152813809225560371742334320530959028885501988330240311463364240054649358077215966297164021106582706689673900160556164323438372717003752162979028231909568126996403078880163177413097029809323987768569534504132137679349406299222724275921468308087076850656482402634451603776061726782857123839068302913907710201026977251727959154682264977224669632601845907721758549744235275671613262228478305458367023894254057059420547329670559354685776337059054482297330560719472172277746038248710339137055429466079635987043097662431642527014444298539760939922595089278878161201304400198636055314813460506829248830636666621793308501268780755700352736212270210574491922529593547262537383891954225621255249676043907904335123114448693172183467568738605876188392488266323899714188415681978543335384131200019161122777848126596712055136242520897638126341491039770656116935546536769272678984481816010200361455646979655897796746777280270460287965260068175403738148799453694531496352831265374214674135552736348861323707727998513840678466537259601542019828151703473418066743621455898133324716081320499410102609106777496656139591691261687532871350084399157097701397619747237360325094873090612131193814826604045629869505859093622693726804547263003598207546377908706386113793353196226173086242337006534395046733403123253394429796985258194821810954334080695658232489700068874430350235168270167485211099181647783068035642764061411289635738495965062831031244695545237979778544382017404066635918839619321344179503229286016526470254276332588580137680306900693978953513832967967613151916683313854513722815667758372793155475478120543666648421623901368942889427251754346773384482892366559740423987010496667845660565005984145216129709483845510364263863950584457362825989732155541322462516659061020495868704416800405744210636990206651265897268779721416544187380719895189755678443267111401518231321692166056078393849554763223267394316669747019196098632260491986049909425254992943906412827913549939068232064252879869870329243349516305892166052020057707251206657429899280876849657473070226918822892555679329793538502029331316336875879043047944664061437299615534648131034067775989709150606604753040547497898590940386061440818066993017813677562093978342533704302261020197928282508378682295049078510204683581565889642923855816797003352431151424887210758083026491669278710860245758783096828329886142217208915354636913877114498238083849481232817242746232836505695403303671526413267130809080591169040227992142629607915645450977509972887033099657283233228457550053323308828012342516196636612257071065007675401114440459876885606006334899984231958777489388192120664528379212852564174691277960350455523666318122086728339395014817761679060598127263907362466851940097765740247272509496641590382624336996050971681978063466915687175023070234645905145334611555662222791235799045229836922273395052625333000456009476325496666282398036943701526068744995593965251485776576262509602347131798884296065397500425094928693807521855283444548754488282512787361368680687124247279818695115652337851145110602555278977821652570995213294466861257035267833586236495111138024346091443830526759093762991555491065444489521925244915845632064549798624681893678343160840256332396523446446779043840275504997334112409157472807643706590521551333906484856565179938693021698081012770335512503073468231688715828989064137569584527659585664512076270200089052288575338834523628676743150609722594512467285539773892926720211636665052098566072142981522508793111442123949233183444801433086851270678767598551510365070492699482563313802932485249745616990000307184075004038896448902842549893357065216587093264057266321517497860257068121867723713013236620888753336937452889122801753156126388727765189358956108614017371373242825686504361920133141860788858606348428044636047226895707198201224157129295379828092682324629729300002329912806487000012344521771898269647579975558460213489102675738883488073361848105641565543728323802719511829805094151013463848289497006452879939380199260121183625243116808549494813259680319814665985644324491949900459892257371796778366650785467460639389549044731591696011857748991606914303572337582609711302898808932804257647813766315920546223005617323484064936763104236408552985387474220649494476102579197683399110453368437312938816833158501628768031933696024983912598071580117669064837072779125462031815774655236198722866796162841102177968938480773533421148805546136562642622567671298182678566709220472163220739214234711835530165955596456676824549464107550231231393146584837731811956762119898208122716482233712944250887413073393640967965288937643318486362355874676960068104841673585220392662181983389282671280596776387409745011078117482552539017890483923088583905183530686017229389236556116907985767324812185362197910058302427600473319840605268372570853609716265915323399175038011121730839259697712991979885566131549261612147833216796309084621764625893824442371771761501347001497300560863865161492046988167357861055669553013138332344458934105557395310985396778785420233022291210788883265959283252629099666508065468439153420257092602499514730494184993414879908882051501902483302314049503134191870611250193620048505914690331697539119671503314906787996822768559779584640690112723228514006015685492345660675374015677531115194596632757590224853546167177125219423709646756053790640143853720055288729698795513392470222100521518771125837261887697035238499250199913573790863147818296253823166854190226061029230947924461334285649006920660364135112191680444982167579525259702749509974426981582214672574153133007570531324629750241639792508722486831268745469163798441974692119584334152469701257347463972344733059960435040458635432061192930670068511189414091500354483612689262243132038202899794438155756585363999386569342069172040586080976579653001270420622228487070090573067315033186721978795033294754051333224403101507767994292832173991639487022514561208815019593116394855171903075310863441530516434584210752424137500253341132652874829236510356628299331740304710171195227864651638229387401954763940701348277807124967420375633174191447986415752395666999291185541823223027821583641607712685944905959686624920506924816252410018423227361351630890911064170466410867303790909016770846677682482117937981435239655526593858112039856058713758804918552391240945641054211025541107298756947886574848140432673316954890085050767393942344101127879915743899589508803279776266316841461392077634953388422586151426563135365170774629610416868455844678135970388618132159820711592485592684963391186408353816957540776181247125848285048549735696750699049750319268597768934747913123320545798870807011491911744483554077079377375934601801539900097214399685106016673090027770096010124219107896633620611582554068211727795349982940675040875326071285653212746174840220716867342386048008697817798999144026045128797247579578323409983319030170067388802411913574564886685587757098897397172307711732154343565363378286990497557489183425679876928431169310465100221919545484036041894637593838022988959609671183034447224806141548977382744858965418421863938790352285921800492624069197673498020325384867361189801583003526853141951582677533004221184443009227359713433278751970667769409434737424916298675569543631855161446249862958903629790154817647085289574132111037627804114099186668903142532641416080921196209237338064019104313823579013851427808106002390175528358895190522245233128288676312129326978294429754261317662295300453941391312171192137513500730508068313000069547114958596389569525301283110808069740911112725134180321650973269012119695708970262951168877357812077555079815652324540105804169850328525122960751517111553916452284021099841993944465003623128655828359099905616879998988754708694779338891355829944791183062866918589264317066242097757297792268904033916507252004687466105559958607091252896420643721682633773778745100948785701108423262970396904039316734772858000022772934419183830952406179600710044314437255236278630485581296310011374859057454277879425668057559971743470270463630107873523300055377470477123466094156093106895592007023322004676360202929150214533330260750868551865884130488772276613761804957606713958410045033055993200623187671200049844810059454716528894155124423758870943333956945748860158205009116814825001115506025027644472073176517359147560905479245335013490789918218629588161320137223253665845045494980367244327181139204970860240125945419662414256383962444019001115440021025495698474215405914440808204639477146391130396407393916875832291633409276969990827478200639917379048311206042884444348750992601839054206621708808294910932268701488026999574768418313715786893485225307265062102356100100239004779090082414286620117369891545070761354807074749873490168655900028349703861330083842952094456713711364754045431725076414284006491985559011359787342464306184110199543917346105245944868218407671138454459295938563907694625762062380375397989838550444857177721935631978283896951155114410131176224647749712056963561300264741964068430547356932948381820116142662771158167160628486753665121947854399988353840783229413570544577404204187614507512095201767808527339520897088237217319395528651803787244813849997584038133960858119033865136765419638768574646759473234465858446611598334833660673899663194849871763008128838428313923338347763901004685953079711674920937945239035843652807307710446518610759223104227771114331945773803692043637446955648420926278038054386333854441638142138009069784215229557793891153690783130302058512636399118881800811330277495595722914969785168075913139685338307630357621543164472351378418418589265365438710402485758028902134468839273023162661217888987525154404096448680958866179612346586939558317493013020253268447255135066115724052792360572596307455444956846725265395136005449776806361750149577917706607760887709550206490093386325749436257155090020330948485310373922285730944059131503035933326229260915551542912918451216827404314011362866864429141728437651392913330917141503465174472472802706003634961841391291251172504049206978267656878701385475157539920615942730613936703654817009496095323247743731309163022779041942270161898428938700194450195102267575673616358802826350930019968007093200434260085210737510651549722265153765962577049125738978911197606762705176346622368877857781845741716650273307492027803368022739145485735044273350862156695285728519092402421931703788603970695887726058976957399680605033223540380247235151600880483155961931040335567983870493906549467476426324071457397769734614498486472658094413988768487480690532735380694520394590002204245438530232292900381923392440453721170852161566572518204701054944293949097371242657727980562146741711903695527133476805091351801156945311841513890957479923513489958613479456635244507661418102644261225489766127091059045230777729565838126077616637206724542326184552104220059487476495455374397363239499192761068427275402733368077413883286614213931855315410343467444152427874502155449578187095196689867769453339899307384069278768740850110016294211984768314258529478325524061209542822316060800414221830947338544488327721097499246677169809360572096296641434592524869938364202712703043548875440656740123589152554583098541181147704035541733993663329121634765535597277377200473559341219436173113185580691157782008864050128288345459189606564058682467716529024670026087598152763713814346820749031911726076217113018644787251949147091289196769530416886089351229040470214911139028026390440397438124706267531413017199433970739141988453257178371204955693044387256790655579646380533797448348267154473472481020561473781402753355114252841201956920076878054503279842446015835543263035648390997358999780029191816936515116145404279639945055018564217909596544533084890435867169809020794823094739728050273350070452084194900196045253372598818661180069688048677610311926714809854043059912113461114174035427575105962836998738295736031078031698241310728189890443858161378597599529291845757703908019745837754907531345732505747045888222289604339963700042816830417690554233617235410105746328196738165876057946037656156081669102213744822302450823132554666457477040301336870894175082410402386501080092742984322076050508805955969044738854670615134436655802483678361320227959612171274765154485761254790899036621531196641796375685799818397188593913230122144394255076702157006555920241040293669236782623325331284841131454997925573221502493657223920321618735467653267365160042363572954689457108205737541123431114734536226374229253198458968575789478916376142946248228391528665942358337932494405124091492902247644947748995026497152254606289617882867964747935210050869218914072565009992669695339643646898374955718058841070419533187373101092002067155516225439134289908681211604311429550104108440580283587474566861002549335565555785735940916899852404300042891051722271812476921934757988828142159773271972043999025696346870765990314351976496854814528269341644261514052553535473183195187554907701073786480966506380889186146071422648720047189895485825944770286395301102138789609265408752025859515922316456484782101907368350306606878905616511677383523793311134526553586932503269704664157547302876824745196938080522533533290900637364370080340872399134618732453024657158203268161963806765021651039667184518808224879461608749786392568132057455952337965479765436314657875797335403100389795143201751831381930116266542779297895887502212686530205321710194224976046482448782804009366138903288472371324599411981863154462830117860977715681427418093583603159461048689610339239168375110578751079859058893014358703964255547092468030534154007856167528567522438895434679975735156675367672353150204913789218163491671274076102421344305945903200496276371280791255569253288810875217982172986485595249772010257685329693195519813152780011367656678096657711895963892515423764057053204714401496351580032298887521591343710559476892607627216755056551704256637550618549548781871963406318111046856895091682664283501042367414181968185416545049468879366235407909321872595513731972924043938817152947191963269676674817088033888535974652776625945159919223993790318387001489737360541440697326644021821375583618389866283751813402479851989699862512975761940605983882039098907709390718923073957870816423481976939949273501889134748483147378020536696588030551844965613439304763874831261321153900554342952533579907730993141479330594917823563506300648988375965118287202890528165873766191279103619083244020382351557496878867446398411581137104602234257261383279458249753472413876216537929327143474073484230903027363806024830664913406854111173524653011345282891864500891480994826182710598942743004764706895112264873953473899082197203952570357834531379914559442679765098905678201212759256212361775932230098408455626401997175393496230426206025669838802891258200674353955101725552951767788549201204194780980267535452111621522288096851193126268457539148773573700138958503209733826580429216192555980777462461859796297777323436282483995591313717917024158015227326298792306417219424721865069190317368944255585740207517229827572544328424073120373609789899713783516651947605826906333394666145639249557364169690241550008599044239724827374765588471733181634961924282109472831148340415157771388876096509833277771650260513416161142804670467003256105754578719719035706640196871649036260266432687591903215990928775012647848611274362114987286668762550652001724529595439563869260068782920299303247339948173518373156684448098834594442219354047618413883967456464797460847412128911643974449301223170443252794499433299892920413693953961222905414105965385129616916726301219618555455765478117909839488664732964694863219331578188280514447105161907649393554073722931772339327012763264872228473991183151889653166870396439950466559679471588644522049661268291057190891782362800705477674138486197139319710005395399257008548167784957798627815300736799549677746021394714842224230729383508601139577028374738960604841113025399959177838983728780762641938331429389762681769293719723176238752955781714649182295564867490986522711032446181744027093554563542339752341633263514073929635061486603727590813511563664504626341962150196252205451511947184693252155624930411847108661985791977750578815150795166738094484003994736928676849524275051724024970756984820580717488108329992404660519269545404632472189501512363703951335312296195904782185877101872451296685591125662457152033636416982655240773205146313686273129897757501447955762055548605169834843408678399621637363717573106590424994152791007744936676485919329133886094383817473138669852521356319176288585365322342138775324402296308712480549942169287124480092601341631480377667151447739719531116226674951073094385237880127030957326775801945509143269356178421727987791799711604336819263572227240351863089024563422019833949531252503304788324250183715503426592959463960840593498010015722191783525137246536678186286695826534728558536033927827345683537402758701319355479344845692127115788614494387378334095692862938249985719721423397367332190796270214884639154037576230606106994211049997886647343188845280526170924534912482211768975204816772194376404096325586921063489796894538488402235240771403161696901899573231138108776572818713533147255259810935269722060727570022423572601639039531207662046096552738432485249268533416378079843024651704143243122652693909063808573038465070434849423870445291451057773044390062061297547649093694287821088644544095064700130885010147516091365877021901409240227911781764761226530352417172762511663989540247585479579413697841153306781805352504443191664554342171115903012232851080479474258911104997611235982264486283977048567950106448151635463465370232677108408752118806978572315327641155452842112077465899588301323001298015300993222198878863696594990304016581810088817869517557267396871711453259990567397393657925583836592981438112186026121103984193970833670584780737737719230171907175867194375817990600603714079873449515440783222507705673394270789110029013998115955372411445269526258398504232217531314979874669411083185173945154862316775834414168461938990598994179706220114977021162201433808860258993623980570415601228031869204793014694988488977680842939981943782856934904447376330452260182083028293557085567059181386465729981479621306711773721880154654651666788802720365975394338554627918582356765417702950233416937322289214371865607607847050866822461056589757873037924414728777467995379565074555568513038794188741025555883627734495729303127007091112776438898626378577136229463642981598074184248358305703463214711411613058790535105211749765172169602620518973968928195163143197212623801993185400739149151904680464869572913273204115579454842384365982866122995055453169423579606902451094921735162134805510016260386871665140636922982941385074776834000345383964167124429615372660660893324411797115650887820079930390851743165056480901599741427743874195167072054411560462158931061641449349959807210405972176890870459197986137762218150451674330983413121400455308606789632552356081172196315529270994078758139183956611595483894555917610343110897457557826942733646225356774164948629127027958665131104653976422162075031279563638811108281135088468059451876308431956143238012813786560656311803458791689745609119266428857191667841091406549478570377358462402874537954219024132673941497370858036452187165913838256495255391765551096668070376188932413987788145546658720640129477872065021394771695392294021279377988535236967512944796276871082630521854888825418220212087880114815388487968440293785274227820570828355555054254157681655252938733935893639667133978304431435923265037344782805159842867282115599726304466800041233329941382051320070558921059315085491997791330809150413388663342680227449211777117362626287512823882722396867307368745825311463235796241971996903448291823737113355946981511627437993776512238766434696289039026118831536198345712483127328548300568726488843875519246686951143592919555846297286777897377654313323352771388565986236483222216601856373201055255672191612788475593801481542073473642987443465200320234240078424329418502930770409414512153318852691843799902283039073339945455271631951719011581390479056076284008003404789487432977384849774693157078733886746898205459720928411670288417195456609268675622144846298918779903927111304598890132329600321079163762110377775481634909464318672212216941338764807659923151010887215000705242181214763393584721427342705196051643411044598209854305478440960805817818605017408326897008235677288578057160524613609741037867324519788379240922167203280645885878608159128281592900191011793335464202140826654581005308279302930212797189906996284827434135233051830444274448193050750360450514058730472761718787100007478084288298439339930496667299504038997227422608932601599376562325479042940717753642943644640614711994433614556133254077131270606286353106023402163491557738452842575277928108557749230446435993488994499101063533401054358184165826390756587049594586607777867379838752437235692752349611730688774924571868619972488333622220799213491179856245776768745160444863312440671639837653386751286162756262678939389212176704722743029497066511861299143833521984093047671358246290184942649404615721473705588526526895282009288437534099036817410087818966701310730496408326097109176717501743907113840111376655725434102783583337747908081973379955500045428554110870266016833672650472809303307521483423966932220367054523306646451654341653546000792526505198781234635668651325179722896046320438053088552601564483318949649034297918808515588546117159612361367339484902660681581388096928925785530282877970205736371831119748909075106398798133915166727171233040283438614203465813286601936389821875231572595448821335874312124841352198218638071503817296154929706109854927987572240356351602180002133913663864230396518722528487176184712887240064734573303734836981348415266536994765162984299747957856051267576036686067778092767247112804577199703938617069569209683500697523719934104433410326490686318993812801424020041842911329946602588901790259558631963496231384631935548478007911374224772817440674756180098219597759921402637345988627613191704189311105166468412279323391676380927210023520379071273531682117230122617481339938049265945957512814422262957576932606222412599197001610031417456837238877762887861995894310229860539584571594255603208160052097649224351531351883650412796444194215790701388359290364838431008809288307865104682693822444552943420916894676048942947474624916222353141080216852449156222683170463776546046270125424617454801983181675870118909822284131530231187621986647788656225929165752752555400359535022841990355286216889285666633076907488419315354624546542842975926065142971042086041544561109855121182932788541570716438918123167833202994325543697782561412315879376448806457654748776262128130649033373159877364483503742948434074331541256927897572382879328559590574015717474536199889834716012015856715413835965638253530858986980003680138937330452116302611024410033033081912643791198824748886305569308547371974703802825151051128068063293463545194449010189476292621963990220721453029612909802856604265377727865523245398487894755840877140985584413296464499810440834347334641495788740361516012361957606608746588838844425229681250868898628322766894297459062529526333310215391942419895443101532404178075580853459212177819778045642624074919454739961813619920757098631120759190916649568066642591566238115515641235131030450907312687187242589703317376523731572872714575184977592574211866171808151641369934140317899975249352904114650432641788742211665226920577723790473875682589799007052200256092920610216593256938663397754291361607681999543434870981047880841707334984286373685776261792130072478540314987151316109138618395507971455976167107484598118083212386065332966964801905106209809387088963932593569556168296738540354015401710241958448078482019239360764508666435266844468568050016949399145295459762295536016836879998780948030043462339805002673591813389607921778217202587112107225655636691486665214289773473039141392756530582300189827859953571607769746573069498100061825893913479821320482329323080146975182102370444396240061075490997589202505898059457569313824329723020186890885106141001009151149460122874948548147858790482377268563692153927308514563855916328103532919551674960610880071070882938898526927220066441540252391880175532125393369015471329480200240145012980230116323059720228665617007529372243770534942140919383404370139119217000096549165295544565578141952853363605895232277032478225207570988167702876875830053036368814996757193504014452303162659662997664053813747419488339927039272595049942013746604711672215966643959989119732807468148052465458331623967914840779716806326569191892674865001927781484959794865679525761106162301388747517692506232763914385086937303286961533517591509088232403293292522580373777495570902435259967850526745777119699400621722193286614428568503279041927723995009245170806499037865861073314401663719275666025028809504288585675123395278577277051460540066753286668250833144627357558140200427001506314158856357602395408821238347939855327777180536438999062106834928556758073066393745272888520305164874294431452766916503683000015329793837708837308327691927252166417105521155695850428259184135921842219509755238911282042107819811258252701625679981595078635260965626606069387321385515035939660788232107510505611835819006648237223202290009398875990792801219719619682553377205419138934197558616528458171316639520965102063850988967614822098892138165100730548775119865646607682644913410404869924482727363097394274756828737942551930797492844921922987109489122369392923132477028531855274215249079861904678241805889279152874107791522110063008346236292144136045421264475681263704125149472945968717819052940711430404768582950005167695079368883584221926042554226153639022322070257340809014558487931134912153674653446998038065559743301370340500152447769618064869027065656679428840522503115240833337068715761619239510501672120233924854871159624742345995919794799887363751932281348961784035052923428724270001694789883222340422476832554931467341253270812038536445211571556892963932092300601896447502766046756933564850088716505549919175955789520306250830483943119579991766143757736689767556975097160229516015490067376312761348287212235154822127236062489618896141340680311889080953445460320923012468977512719884201232788381033371811944810006819662655657776896636134921565575469921400901071629440877766765949216997916386005317578729051255963960104700515943690076736836705706897806299028385126203377043640154250921713024239206903884434117263377750934044384266993486203779418223836673540552241378081562515562784497680422116444930219825321658302109462712879564777793642595936175526063351001421482842215277928749905856956230633858075959218786622896349291676506869788135027024112573252415708714026909739411421202435619425591439971584111532016582417838488574156056497322657597976947889389610933204927128202909508802928553770846069254581486422197531787931540651361394203533903025274020237200453817529848913003687537289509326748496266926714318641471304179814659722042173443997312978491516062054238583393684948595383441263124044923227350558670020700224380214299019992631749900806060053089174619404313440795033547743919075462093808120543572233939374252053394413156417245136970434312400577807067048657553373796039955007972890369473879908331746355547561070623916586505309049460966573820822316294917864375735678642381843504205081727158991829157775172466708840093760482695571728366433091696761913902679965716924965835592461882975495381692649244251109171738746794985259089254094242348827597406607715951509328566925055185856781164190929633752578685978282334446968415113239539046566093270506202570466105813490242676050640059852366984672188680222563183440259450704925934495630587882036214046575899507670346248666708622645506270389446299981535633207726210733959938539961695498576301874210362171209853025986885625159455902906757240305856948047843378341194500577895331619678621311776691917513724145173542014023557032716049055259891758935844054993912623245542636104787792174540426383184257088756648046989342248501102557630051337096946639977327973517250573228033157498007409564123173343405361715934844811809506991987804487548722392539888446580076060696910380398143881049696100503940423142980632235725914138322187662925239491970832265777944568670892761432371368661323117202151518466660011685679868302330321834467036751628412262644861601821064892281342930182551585744534173698160552302052051558669176046229278159110458816212259670942059996523431637650605229456591651526254736777353448399531045038365512750334733993116544301821415007297476846963008318645764717710284944945783165210917369515779146949985481272409836469378916289219862778393261539267354885288809159448633308830235615835099999067977798371790619539562296029757865628509326074235596851776994539721980465517290097104351434780791853533913385379912103543221294139801292207338019583285507979791485580721795641758388375632594495688759210030142667823294187507224325700262438935919857386324143283549613777374460447351408142008405543972263922976975925366656392027329364451845997288207823496346823148860733390032312318338195428662072388524378932441973537865280437822461331520282299896384825129121642086105463917788745878263380186578543030219839295859312990493655300497737810797270350791420587686659773980602225740989351443261453282150571543441602173064769066662950853034394619261916334917867323935142182982741800514016882080276154586787959941137559479472946537923531322122152619131202357879069978112600138573749176449766672893600896603190957211727070895844855707301106091974520092925079116172622190730364653913424082897989178560527427871950611321668867933796238755099883317924620536009182163398763867346026748960152396261158812830433167341012805950569428900279716539891409965972399885737432115655232440853525472236704471673980000303076127329136792915236031529841445307992560087471626046108359200019669741087056560917360933512988378589612510405441091873128427679647854423644271440738453054544891785353019994203990184229778399140312537359355495883757772993323467919116283664144471894474834007392143300436073737414283233169782935056154012542169462243723169118029402915332375572270895129590386997687011041742730838982115779238131786292714462910284360321689324177138540316961131530522578030505464240567057249574163158282866439968022495417175014216274810175208641756728866797681117411081676922998985499448267025594529431408070480794840869057021052811930831707890663174381667613480920078295745849263957991304222246642211033525886870861618600311734759002593543165606435286160618344520110919567502598837686572568890138800368465682954904253231695324537146315934543910182981911728025171727697892860070998700504280627311422810643387016745427788409641613222633819698597555284040300612849349910492446387667789013123701020385781324009462502472544968051806611031285672415667559722585063279823795652900274249321025557233153829503294125566192048731390100022407657396998659282009845599412615519394286623144614086220748948523787201380191414363006669974938569865109211955003823119668965555662668154629527797898162662324197130194847585205804097552024289739084287338953944053227584060456527465776905427799386166606122370079398428161551229098018143697134176610598608463757773113640163550423700852910878185517053582274348983529611510950422163278557855110077709410324360861233800932256212476566668111982388930259237640483453198014793278025234278806508042775792914327719484482636139338283391112092032049773626172257984443651316308491326542165566815290584920962514559491901157744675552842537757860430582061772124163735175852893275303515197708189904305763427695292723971067593779356724964547272318266665230449499733696617651640304343155897254506996720333466167243418844612419287485581726573861885355219143510605573940326392733051048355789018553828455887498974084027835692419040861689795650403981410463949058213274885376619165132668935030088724685596691965242227788365637877829541053439137631880182457174059741354928601547081067774122948387679229825479240227766952391474720338066928978582765242913730368578571234229410355422125315886617078754810093887224252251632323825966227320130845962017170043940637740416596914312927083533923144868585497256387749458555975483776135604657476187230185436144098067721972302193696898488735687135627288056883335309553629893261795107012431039158873179636753709625315883522706800597562560467220029882818330783269433901115058763341663799410604842264429180175038048612884652952153489810781962446040021858546965065167023688005148406875003912904968019114417893826024866878176768645033443981596227907424393625898243090227247023601563572685290848648506784406975089840069424967865552723014194114449366174578464593426402958193974705399765934861340876222943254007115866573895044263206051382997571266644455756003285055811307843588361135658288151428557057065556846921985648203518525525254509250593875079856591912780757494917691964738406459189196455403933762453438041402348649413879397607159562093562462251651154526353872690208993687505802122115159619162970091894778354381829682824282068596754716564946494470555190978975571459617672572399304076671289282863108655054593064168004223609806193137130164113227558014462315368479266831558359443160090867110621039592772101462493155151328302184761847505497783219191142116634858326482757750638629217125955452518440158702701052247974653833765421166584959401110786888638321970078637280578881093326295547655293004232686853223778063170216606652739540944450789234050173944029604581435971154554938630526986601446216957659659756017524301374012807821727359192808896174210435948715597681194638295070055208657656913525802064697509921755699460365332375581850889809089381559934109705949477746280349182180710358203425968340163568715637764821908813958369787955027897965016565655949864127209692751080659603347670883581986281634803053625380320304729320354224450207527803662118450035992683261280576641086182244735221875547765357864565182543397589871201419877262120251721491030181336262897238031396136091458236844440239649513564099392515223532467997837703454139969039568525851618784982661013516266397998971140402864188810176434862267146913594415680555698740063219276875196298883488455045678795513291988401051714183340137238237903250013826761645541855346171270881084413501902027883075176548541484023418015269551983622927762674623804416516233517280175754235520160744669014872007039708828236917509627933995109183651875127342414454473594947712004385871694703770115063198352467466784340610381975351366252459065205907405692613158526063683617685690911165363811316771858332968125458906649134146773203473505442063457718378461548711922999055690068014531833328606208921079177384538704325814029575437557161503461966188139476935232276952935549555725757995627636220484135801467794040072737759819082927796030977559875831367806477065618323872358430115992604213507888023360475484132242325392737903146079028681560485382236125401107170898913323446600291717949201517403561211496851630754480803500594178968995461679899310407733883751334399828795269995161614197272204359725582669844503464245052330664741768168757985793155847173254198450921999573263946345304459134095213060961429662627951226496161745170178587429070163981958569981529746140561706884459365006108603172604956984070116557533769156898453000283646454689949162045245468839405117794669145522797121544821988229372922568233536350304930934529290033090737040851696110905976828843922594832908878336851489251143396445099325007725750568813690206219877398750124624764879868803873187584882316357344684301862980202135822655409927894776895538304879107733664723499290127531002963634081970570693681974552650929914775603430039751372785794622586919553832876400490584042278835559644595534975039190962670573715440128790715089999672939023268092438462319845376389781039699730246887873353850204619161339094358884354717336225199275056380779655997586943769003609401937443689932363254121062353381830384839968323052589571691269735437997083514070562781809704252335075646012705858256268852527958280787864686636479206504915741699615984537814059848443158782328043026315524477225957477707562671874435841176161990249988224317819210628475578674556527257753993075693642496460726270653876277822765359441883609667220189678894544235177497294937166612478820676406225335878030864883973119725724028063618651384155172587246178922141638248914828773359421530153506937569612610572604058390836755818056473788444358731502725040810652966711752144248487013184780388297011235304324198807351750355152669626376900923066591947803404338268904529463384659043456545690555967981006038415340108363097702047508520318279816665590153678759563144576238508800711745554814053795697849029001026216764264696735936854910710111982175889631904562261869963287599545702736939068113196084879424839866223920433063330855122309791276479576305358848394079452425883129052525502034127958080652548060058592786702381043541874438783385734202348111965298749168847190265148718519732445127789166735207105533564719927558967691153079076665829749519151945802018795621448380470677003683897615858849966839350793849845833406618831868330991149442101477746073982357935490521857458659530849261210125202250738072063498331343064878270794247290628532275458631708770783642960002843070637412692003856985343001214840073064476392529486099256203118076159552593551256718898463147662886338682814107655675817859928668851180423314813148849594424149302847361360111145997939555682670674365290111367989061590758308727231670299514471637332183820994906179926756920773732680332359903891436269037773804637051815699635995042919931983002398703243614796312170361637704763814457044482420573097638121246597721931110651802097079457762431644530459318079097742304498772472980998722122048432209050070292713443921564031901518889801183080790832640252913907914014417180802469568322582775589126564021106770388041329283120748696074549719158080408574296619213198550537087023254850025815571117587660494660144488065503788066223651372136153461113293049695047572438833173834961496943757126089636381636092103466853504383009922754188708123403192012523138616662859276375771197802554679398657333914804904179780281631523851598752091296555455735648519474299225217526089803575561491454846028033603707845164323833677978325863235883439771966034781572967498988761680222613306043498981660308014891506376324935777269132834659390335956949668110883841476197232845510752266682193836972518913686400291603816612036773539398080981047917746272199738791761176173113841771301597657778237671559956354912328071634711014052790510545874070000304959796034874374374714339100020619499158898096807821498452812139028702231266764385846597883627408179766671363987753049632219042593306639059515099042592852480192970687124345851970916531949705616257756211975707995337369377797356448312057349312297482356658433966487768839384521887894760720756123963676650144439134126914693434211237709485887278827380569644476094648357008862488780783833296190011295011411785003619672769858364790986789409595123785887508979586380275785353247788407839937645176561823517194263586881078188256572471936146119860359109958576562007282590282834521064081586173595226387138911157020969382619455437970598353548858910992132948946630708417136913987440839352764199024482577711713655618297304002056525028235075730717505363733724402374186388859294466908575469928859209627115392104210152122893798911297551479954142506005914899305416716305204037257103826738016973601893099154401967869970183375302007643671821459705818134992203885205895312026603672401349163590923482504407173938741713485592564730354854927352126710090577283674770591551055777032308110517823422218710859479982620319557727517858813529413572430211950758308860962517809994569176897410226420549595491113708108465921748593269844057505166988665005591570915892640305336049780502052585960832373418596355906496548469309514024143373435644345982264370500067004134912073434725452195751240736787920799583293269115755669428125843673372291837400294495772821282365088904076607430098874236513588186494732492859369604490728112902633197592518127731320485119994320182323228739807979435538916086756769352668501997978108490175883641012527040377098152363734472227048835216332895718746745862810253618496163102521687511340181864822945415487003945889446597295484302462638315306907267682341213288285427631205333812261058427284860274736649660941064906778863957047745232535475183872857556781352154147801935716714408818150086975058445311004280090355706995891198318146603831564652198412068606063189224491379464314141785393870647360925249278493855026529655375347579060065779270541926784859141227145213148710991181039233093843482554690103290848667802150989664478141560990018567922749318659153407299371603944564320681150130067503488604001602505206241490222544385549222613092437717248335665401505266235978148188418950775173907725371647019356041160320965412156386070042569947955234400483215617875285401175468939124316652118229842258402310918876561869981208715151540069170099719454178299016243968709370831619534607670751906362851634372452094792360972940632056486376607477673732877143514752799840780716692698337732321556198593974360488335646013919653127546801986792761941916366067825198746320134255385700985685365932740925191382850186155349888896291247086763813333965439613854871470427158713187819259143548706407710310838875509313941922824135726340879889428008368801030796988980524948006586375859191762399738786519694694075796815455263809560072413125997696930809232523280451730245153361194357681377203880895004505543480186816715268526468312483828603245202335784307793401420611866639785584115744759701155980738299663553379550076259926967217912603839131209327459253635795107553933456724613909445188608065919771085690954010610816224406324478171867919526284932428887204471356374235956425917577558163936313736065966788888526352849406315578952032787703893019702385264735197656978136487916896380205455706328373188554765587211184154038113830610867097407455295660110408282609505989575665553106925817002463921614458654332427824562519601864182375516213273279224908470933861362390439318446810048969720541988864833350846256156736826087273298327001813475360259951643408555908464103831454234207245072281495893321434480832257867965091575041987952272846493199444827179894456723414723782849398345590623109565599531187703934925224083503062665897215617749313121053131419262464002403726372350073149823239833504122347310331552243235492981668459999173905279409823532063668351687783426328960132783755275980029812351607282408413914032599513062352260067874871591977994489756826385315500549735524258629828087391448091130103826261286929204706625489481415071485179908438705577381965567506724406606511018875647645129036186997876710980105599511410366689502000345865048402725987963634283131695810280184374023738328821230154843827215625808099532515248863949411173379703077606893019351081285026337218092260304773577438423026266300508940431687847778080587863709020355624734506545794766044395857810522083832113103234676469213592341366585301824747019437283981760702955792485193969312384409068601397462598595057021529564824455925006364217403553021238795852416162290428513254745751570258747281377748919499122282838956143667368098302406536969951008401221801372003507025820023214524797110338343616455899955742803592701232193734828264266993927427483560323456254855490216911697323991952721679803567510010640295506261662420405397199894184532779998869657857741668669668319142535044143685955733514778407987698075770747759542155411756187249579268834937859824065739841859283636730503029847138086877181911756318592789299410562161418984237525473559152449235783038172830104403301754792501275387397276939265090030974570234511590641945333100296819229769789342335632280367831129779523104689888223245322755747808998544938871638510386400018880894775774043465036481729541166954438431390781990469096631491210460350364581865407268097400774951226507682355321733145883138696058218479689117660894311265443455160729435781594988355265506828529945410057965166274845838670206888073421572493630316613168276599947453837197958287516684834182239918857438632831425228815575974314778226428638772558820984654278520280651580002386632042643579277208859981959766731653909069787109755066555062306966880843107136067764871742390470990040085080121496119547117256196962488580760260625364367631979583688546437090615738863465778658303701190941615257851559534523373705056688203719407783120375716403374773480204940479869636394315636414611709675765350684132645485088703005128197513440323377065193357894565838073779507208902857318682689986196385940122978832738481839728274298135965136293292396459623205462639870949367109041625320159422926264084927035821376692824333977243345236184454091543082298841937996512916076087727760249757775820061151923699965426750308698312037211022189560187366219129831478185992783078013976018682816841338871998771684267936735492139253952477656142691222322992691551288434894838951500291045597305143782861336989236811410738084187104899152542578017024266215887151112117529348332399150969199292071952477002779112090843289290808787785233394977778995727331003373028532574297107848232425619637993770394158015598055631272615478638787268157250550174051058701124901179980576429641656236852528297489913888202950672353081193986954019908666979608159954141208130548149975584429088201809316878554855131889144150180991647234712518684988296571269671939269036014922686745212590518665135611191523457723809542215997293995968129189744919948083055586666154954195395827547127950949901013208854626707400088458629121097350439728228903463172951060643553608041436571121224609955665045337460495904882670251562796951662766149664509800292302775194789665028910600646798936153803388877801377681230003142077422091577650363733095711263261864544900561023400133735066192560593674742288697215709179490409190502642988531000311996550074798003699545838924078506124480426791776046514715940070334623807818456859760955328441986454380303909907360888606095973258988554576328676874885858058417395223342212767494827901397519706224747009593589362436577145023880664261530555682843485210253711063753866431039126875014532591922269756410198928170028294611844036068671851176149329589723157793027444912285658838923103954749743178282272945857699055041337044948515768341639806943332237179612483951237975102466947619629636775957803231282604231103550404673649601038308010676636422009746001487504877328767128961791305911521822686350026304771987673545365596530396046708129590163878012603923915144258931049020466479832174412366786397072194962855321089202085462167904568633049789165637283227024041269763256067568883147460001892929538641780375903530158154361615816163706829294538700837572577631192618215144586010753464239387824021951352748800247305360753935862813248884902649934344971649330848721270504100501556245073478494979422708609629233674447913271293091545688861809254244138495264299644498425024555641145969402608027661511139540649887775061425767073544819471978364346525907642845660982283696394318073047554333572346618121980221092185703562570059734900757944992233310364339047818206453006229026897054735778967775557746898443455649334064853611074577632730126378823850916855483932755526231938481159210593208670002639178206435881184311106342176133277454414398820987781562541692569244853835352124651342654504715341350343586392213316656802281810231708811657570684776283415302415174076602902540670644282415096877031917970704497490375763216475256040079738048365383610146227609397027125107674912882458669024030378323450058040631751633481225795969233913450388912990248010864755444827545647586014328157578461017496268805098522076183446863547862751857564073427332491125143911500243268766281564806855090758439003103423536115613793756998750073992725173290055608948424420113772440153350159221147441097976810025437255676488637096583840693588185839840491683154260517507406321221466818348465918757138555789030819623193594117752168625019140709326154079106918433507511307705088591990008443274728876917574462153374573667765642875829259609572763575927132553694458274138018864921546664067613658451941682308354499714547854695099499540181290867855667755268494538252852618175214978796954435085652448523212521660366663382925781689078656916892715045882123375187954882804626128437078443143497079507792870427236715631380708542122606471880677742728560661029475303008801087437632390995256666553912220108047467380998092468235612472624546136220389849134464902938154939969823694688339301659465961472807123912336506440420886422834323176995263011974074221301844096813847358846391168937998399189310492418635392185766006783018884599444216391339273631487672781553528344062719903467706655579058498684212572651407957761950425934152524380342165657243623795827675450431532881706236662705732969312419141040786600752869628617981890211443154444900116271011699383475541329390513519388601060515395846804063923962425325049482008228563184266552743911626390281871040918505181712712969731645477884953484043431953149628738110095752460175624714653087375529459505120525362683710110413631784538359479431468679425948061074474738001567893687718191568208491015936854167144377791339088231046919701121443154680332040097485792999066269866247030104355900131094801917605251804358597992103923446263973846240028460394999128486481687529437710071385945452992621495746580557976789977844138284332687245282731605203586965949720104633338900494451331652317668546365899256249620042829344584297132130789456885800038027117006046347104084546254465757284153860413032596885907146783371548315534578150788476549421787815729370617624260530136193539185841546005155667216756554069955646040819837021680505109958164131989335275207546206776594620739924202259066075051399790928552521472014381186235622786561854534651989114226502687375456791010991222804413847482477327890342176412427095443090015288925300333217779889508201645971031535051491460782808006971027642146007470403426817978210404467681354155989955942363743035028958711599673398370551195208841832990818217606039683689653361405952243513948204728594522804617239443863521187785382843972684576423175210697956559315172213560159924629594485042753512083666108496183147467354913040321019079411218522243847639157024013319284316847893293888647088599687852045595838904973592200498003895410377380790776636905977315861904553521368677826679035080584004738839672328787905991047995753761337176242984398620921239347578958499646239609634731877654587070975016930155278646373539306776820217967583292254897881411373674885939656105693544576915932035495017038448805768642252912288841403236611981802682075259380101777441210071047103206052136877865014373266240479965807823040736702283264669019454684933566797100006396598927957252220707698880884728388471372152800108829708686685592761425337654929432413595409753769524010952222982667792863722635993382020878620886212634510056953582660783773076126336867584793317670593834600403167947132303534470786122414617711208172826166417497891008127886390505761039225928574996123889791032199302936930293272271645973635908432208925329033692759260931364413772456100382269761288682488569575732019566234758069347575545901459934017437395186413490880380357714774536610943244491241297822299405040812808924224883917272112941240501450107151148719743049421169976772971570641153970219642609681097098023087897555797157788084240518723694292599297136653972248915350120366264214804636245947353394529877867137119842397820545026185986277104616454437234802189827410352000319108319373599698286972499927300486442825471152229007702351039407556151083887461778306591840698897178875646687051693323942662968668210102976159692421154272720431045491876868814316107327832870766298902406578602909699510090847405806441327260750324012828759621661610190400915397640964219116551517908623223864177556862416725405821554088761676693042492889745267436303633382079435372689352437140400866384624953275397263864652902383805181710181032546029021580198093531069336349846250531634207861993238940549158673447179056285343683645209970293419190632356140214329513356130873266196808849194569109538099344525419270121461998080407093649591407865161222474951827168440853775547501997274528497891614527289039992162964880162384852271527583256581582670350417908546433474955691797848594098103250550775919634749555212621328452180956661706999785814825309730170410401639096263330240955791351931577518399982163803852576371108159347201482386583480925065968324724700470751380189591040782678159062720198596394281699565273196531898299844803529756192632557595245265201422817150188939222855948822812879586663368162083961499611398890741065248047991040507268411025613349520421898500201948898372966526389243498439047318901116114510211645461335129772237170059484920659716272840781352789404362470494132077140188843005375715542455800468166903580538342256463933656863863088391702043022148529185642797278802268716823605558649101484576090272544187861866651831478787979476927291100619886128309552705925493318790958973007371476475477043551683530138097074738596221186377549453005007955479047058116999688829732107538019127920737816335370485381610864410126984288413174576959870034676493655432539869675560214514642000577697604344591072946001377601173876874232682094714043508853204459512148529591840072852076173050245374940133073079430205511212548508454511210757708870251589813859560113040877216869366482722904096458955091247414071943214336130096061730403127918102671302724993733968197976313020018316186709057064715240521702538370488243927558077370856773363175634634576379242019657865323707112303617078434755644568712864354410158660788976129647365230715702097130214155835848040311578223982198257579993293795341185297492624465372692594573962002078769169436572887315189366347134583930933224017362663950809202718290312922598683489875344171947852448083964862483367728414046592609631976557868711683887777217155796584437519866144852503072008353648707349686239381407021052240287211957048322651824856829548749278473925073394718538748751980405127945151749016697807151701041117823440322884658817813821111427350127214494542779164476896185704124410268934682662141960091384987226377212971701351958421084621432848396339498201912611430192420627803679067352392487582344472223191879556033190910615803763448088603057049798387959315611429681387956038797371845659511253191140852842769390684732864718239208651227418218898114713317970575819294051105816450025072248258714575353216108974391913730233791621869288997799372716613523923972128180154624301517913561326229613060991992770645557854155325881975742659087701885331236469259072551796408215853477945847068044995863228709398142133070085384038348915625160520558617975995429874641043074512764578940450408526342426824005684799828436901458506353363063712919294787800261486553370096129448161811629285606850682410497568314168960503559102395847934229401900125006976628857300132312485830712209478423082445630215717859940396957150528883742422701088619619014992921248895750927784078024768242788426754122849037578205086423681207960861807035695436874658429980629044777837563206482432715954240865956489743868511614245680643580398621987855128614943285117449239523353152489410535438321264655779935331908928696572119749164779255014173251439120434602573950310436959249919200995477544885216817303696531293090014204540880209512642447320605629839038957955070473867626632759623712359238470939211632642965453881883675566999691353120946328851541115047216241752272917202993944241385165545272524069072975290125983504450750017136638024923725607964549211248780507296284612379493760051840407809977848748903000701399348215579684894708209524639765471072551030138163352622447997253300563873459369426939248051477171555493124398167806916005536916849966790597272271179947637243478072789624801656065508243252363622465981675007912822900217604118177776240359326698927594991501445648743415333529402973093633236714221811022167072734577974520544624112832167508228035308720549146864870274637260232644793097059267982403446314812467789850957675182081067965898949555230795154728912190079656627941133327958065520025048136835061886620745880944853598561297452408865757004261433693774882842165020214784478001189057358276700574530803100708560207543364714588468162812615913688561630388608691349549931018124483058491682643426303902785094886847909652235415587248073106220534486127822665798116518901918980159738833018463571045341494991219030564686662288244145162296498498247991127236423035493573919445762060619413873760567962063696349805874534331773539229588770515316882298568331544096498810699229085948639616139609515084494216758520822811828400410630893267231428217198890500766774505180101841083557606100825195315497131880753816076872881318263811945866152980790774705937643916366556511252292421082569073095926803644787016974103982014121743574464216867120413868732925522018496267533863481444768322938076458890725328269472608811298824594017072821904817688941814317635774623286506158423554022783333638450661185334774685490191085674853559155895667116827106955675571364588592775412250785802333929227471649339506088498275160459871694656491770080101011512598393614231720316651141581977281114209957633560192796033514322821826316278710447554748058953109562780378311672738635060636604148215121829020736517240241695737531415517284399143390889762643897148566063364529955874952866494372394183791793555827011976667118403181140022824422945592481886610075959792379874257068892539439070835556205983916740179098378989504840491679302353848070064219794061700761185909043915677672826389395704950194161465106022009189903480395251353530348901188130209647130123507430068828700360445539432749802179528096753081544290427156832650458053396276868517761474211611792007542435924773539287421022438903196599845476786561658938383599313063430207391963009732452895031092103407760258315296178675692372149530895151121452064524099796084789510156987995188583060644861592934248731122605757482627221384829907539641499093153336877717738212156161229127757771922533520997833264726049718110593809368211213800430106464612036479615625469350794239500522309749683499714495928353628263980000222087338397683529728608377687385776384624237759970983776512709137615956535708751184529536458202055273731716775093175046886043539246270807447938163927577556879902016503181992074419109327470026853749551915224017053636910797943856503602857433524439124272043531583162155720798226971868878361383861808989914195362114269502119444524309874896042297438854315990560799629576375826151764771449152516840965891983681519942894451722259604573342492626756255762988133200100304531449923864611132091524257235456005695280622085185266810440517769699109962600208155157119350368311114070622823296023034672315033846713832192890801803555769323651669509104984268729837650251694257295488290161792860890631119725196937312739054446590753073076983865788385404208556822483181293567398444097339669599157004405824856426285561382398964280741059424208066557746435449304479776523397135868259112525216205918139548957716821802932683748105738856692312100304609126924941757940540420638552946345700041363457318192528046214296781978195760429573308737366191576646813305294821383871088142653315975354567234295081741389380996479599172691482716567861500973136629180752149760022299013093099750585402624417243312111557537462412369058363465998680666567470770099729593734769340985058178181393531755781176476281569941693480264145435336913218250510697101223161693101810232604561128381017051890002178439142763305634678700288232393737747968344263925688877179073330177864778250716938217422174887631816065655965156066820085481835556380768530498629518380250217451771903029712245343238416491471335661187034133649569382518125780039970929132751206720489841981681107024372248569349417869942831428873538821627737488020675675356775507176255012708593379885887991522070656274111885717925258448035132640470143236665444880383575091517208170702175798729152124519562135050474795807090666484970886711411221868993174738017875833954095049256943139777062572879775611847390457162826301247748962033150603778330457411082489183264995586658142695814402646119984893604772215542395620027905704989224980544462645965851099314463719119664808112981009221465013620870779498925526266060660048872769492014021162874587947166710786970024128393911111171816949385467499618122445656688421766562359802708627256252108054448593112505671776443820963398227020083331768068960096889687851429422427397160552316241437566751444126804549934944772520864811917647192241058501615731934204621650403569080002599671069756038835869163410717901752655955235292647145593036325555333212137711740541420571404716748852968772113022765545871873502489590221688369794246783723831017414213812423605861966430200319245422541847029438612128342048323190363194294202424013556666546586058914521075760316422862112396150421221167047780684460663227135837276286542835061754035695449670300903510726492841031897390953549793157261406568443937574403884705805521233996844372914348007842544489969278560796495885052068053891077810953732764360102482251717851809411572072610526421787246339203153354680751283689183981745629743937254993285960252508155509042374955794307667454535691617371300856008456840855743128411778986340699403039583063789510271970218430147114956209177318728272580667322784440126983595696107292856242586973081775273035513336571358687312084018426399572783753272201037877466782468471152073957405556353178358262341184966149896919101822480607332905864721702812441751964135032255546292528092745036078881728213971088253044425906295112821731821512499904479678041942725054764312250172639202224065672392946747533402308376266010266346991166183303655036805137409397796540852776211358435979817546775323441068611476055777795546889837067717995221704339977343236686932378229509175583672575407921824382488507387123954419500751180585156771907356765292674466984924775498349129226913018542443681996798122008593810463319648371113418478150636843500549497614532791414229548152407835870203575150310691480230977642987844598432359035030009357754157251368862508402391471821488990165859012020098427201826676338974713119958278836128526407638080744572743238306240307503999740687956629808053023990107031813247283525009752862808556287707345691064286113156715044525985395911986318162965925964704915833334116420388730570215611332504585558484535502247917676750758576533061804786016606021248292690813022364402094575366210655050867812045648454406924874628897122546382491373682400191816725202789057052390286546432093789236346380766152541355327735697866366804907868173985292944691731060444352666152845662207278350684724275205027950861294678801266223586500890186796268589382675326620627924000509010911926193201079224703672714602255602993025545633224802765853435009019969852329142722385985085271801860580050097359194272400930063719988934972520786275223000878148482854353107505200710164888942373430206725746672652427229895487958731148930371245785858947109164599946991302363152621363627252005637421860956858159627907921149130117357711136035313014576036721114210085983684311900615700148939792767653395322174596280885473491932183862536972831858594297107350238609817453937484868567709119348992473593307764348614532727790881686535147711275866872067662153801153061429764861927274730701147009236293324307995220294247516156532573063254723779895086294526432339380595516953535543583493446951838073139731908154581500498748807706497879191250041952148365796750444579082502246543843797761215315754575713885318520276895746285043564131050341660785640896160679497696843043705213864392965556008008197308157446804054354113921131063902310662262165126080246430833171025436682195760943094387742541491660061179640166722320319800050206660069992183628207053980862363909250354745620071198748762480939247614918696215616153347700413017535324342712120105031235038362776779499226084280056636233388986532764372470260044623633241364054522357573591842985210459846439239484110312773518136390845877681735636100808707207977925075717880013366246562506578790409131389050039169645267505539775082857128951367979955670529768668523381227148473486181601733822782738491748026283288304423341014196120568079106685911358795942357984863638435346780365196075779886481612576331506593297309036814219384409563839722265434456112879077791365686960883576935904782836242951756255711962029253513963254342769896961511034915330846884154358959798751565116973354038064048920783612688211466226396765657555355227280166762035400895914916691747037111956876942368170444384243272258825304961823392765982620570480609178616462583168206768612767373104980648896690926680028054721475415086296816075863511774506048612704240184651818470680779826592139739295830650782124467925321686879784956175822868956528708592983032701474245390512127942894784072138021414097580664441664387763624776194585847830681838133939004833813773613565056083499330881634062425969905980336037097939164367384886629864596006206152459286165456424659216795655663069509292030222233573048899154627653537078232208891058738151802008192401735129346765023324872770689420404512987056814911234667144592403678001398415296473687205888213974927253532183261660829031069086377715195210422173178773194177321138835047332194140824886032323350377826062502084580244249248543615220075454632410488782223168017254373474823949431735992601480344981418107261387927964472680726752878211311515819444194332898331689620937865399287162184479789942259014468524282842567857850663074538131350553765400106282362405718775686158359999461546188589588855513320362772261192660690647312734014071514340210698564184422814504917462857304546994912646252226467318905746686055276365923274143062256575659098206996588550741202757279961739996012347892506077159367243953862624943706792557332169539116017390146870859542678811173574539779636886532974819091703479914264884904190953225794713532423889470663264876680216665722042815597705728473610414194323315701803067604721970142529716875222176303107063132085051613530321772048377389736330578175096151879804971034139972327393317992200367898349957917532692657927033821166157111384803543856656314935670539361870639923088712038497923072851618000014682628029010096339718219538628281793434647666667121794402339608202939184622350498743292348354391970188535550604123202110308520999073401350379474632160337142261957520422613188826411500921857705655167195521315926893040711000740627607910990996371487520673561101876007678304294543310674133134975562972430900982816684113752768123222198051801186130877915035043961623338901155306652276196192428603456025813409220205367646342212128537412230617939750050671675282217586988298254723412414784722036926288621248588247308250087067872766217511742596187599129010668816871599660273616172902835688998923719150625051885787225961023326597893755282136816437276099605609925293936605168683725288109955969716810611335521934080285675637031103955091582981995671716102558388173109699067321151977369207628275933826250113527045756519699244719123907067475894371615865662575898447113137833667874657454590258689614641973046929348753201276916811132758941538708099724871650478590736371038980366552409489099152882003481431444969462097742453604076661274726167352104444966079677269047122356898668406220265495948026771139450923461096092771488439411994778204649260348013434439545709217814182292913393502609701439790561309277150968354264868314211993769597880430580314619872005162768670560783343580507261738320766103622542059641281547731170850753586501072423704703256596744758554272752995371529310535977329505823321577128497152711797464787864332053691749380075435225480140621017933710968521415169396708669543484709082493704588246953819810406959160700225440595029876735319534714156138589266075334461273812536758470803959862882847619677210758640438678938139679528367006805130011041828644389362632092597749085995442083958652605808541714312282443330912661829364544352608201882915491904859239293502288561514758696537354481492455437263168892196376397228337582743065139470022335431715694869855443146606032105136907813228387267843358231114637371535109536248075447260694507047160208423264794963528720436116566924826658796247513412953809312464543229353965011409423204600194717550363440134113330000934845035713220192675427703952237341945427979591423550352335240974600558251105032735348290106825280269121460084296876090325739178204332590143185802917778805388662877171994656638029169972007348107214924458250090175219295484942287834198492176668439800440297052275904711379070864203271184983755686479803058475885209737966450697682345028879842012123779447503681210820664766768150756613965653118153508793811092269838882594925360485857965897402030548344780455273709649347550472157829095623855131640983817127808820550008091592261164262816634973660388097818614481547808032964318900600970372295772600934097513482653452218862653591105721966859882637491449897462282526557719333246923499402414231175330342025288343507005214697494595048213830740487855873238658596384213039836722944025502092355439239315444908105352904176045913229024824906401014410864465476099932149406321362114356061743714218543878009027392746540309847152938235003302769120239059958700182741589253398401884512595880497702874459869667061299030253231147560364352736802518264940439203843525645439784808181508464776586608619959797349489168078017012019211784226885109655858289774198685396422393365187864016096729336650887286237642970923925240980917576809406468923485950157885793266120134530727781314557374426724173722722542171093837570667705326915393021465267346404189331553916500732062707263503917732343872809207435786829201078703914915659926651561177959193906913354553606601976528210955524988380383629453011097690646411430713826644336269262349879736563411927876588566192589395360273296092709563426886139796614403352819207578398646073618485094134314362214701800089142321821595276564915268773938597555242125293105328897112009979990852192860747914566476182595763663640129814862716940524197360473788346777693049937330094256569766224115873143436903681488642487112513556816067094648144258827715394114713181272058146735901351383737036257585133991909275829692572297263485834729659718798873637276857626361055804328672083937850064731805548343064831351526398880254673640665049660743684359229766391768527421150200615099208873983095351877961016707594639382146837979408512614409964433474295557241788788441048487923749892068602236155434122242317548234447313301025416194355366493361584642062832699836254396939488298044825634619097101165751424180311324121845171684059561832887248409082585739851359309448322719681741607388695301336705949724266008640092174945142756214887998066827564050560324496567105604549494684397525314291094447063726982083841561164261811823007339289879850968752813889292013814789848674609132920126526933874932640893628485638719204360592690434119323095829155882811770907843890252496278490952265004209511902605491831247469853639673304952657972700671301132691831459621463718156654176139486573101525643662598895395251723789467013701662673720864923493022705761902252080512120160089573668512143239170510650396327414223989420009524649789812678249250568559550945037906417947569727201586834838461299890168810695882799899189245393336859490695993216059050695514628031847336364000790707858558089596378394575330416834153022425541599436642928192746208241774453953923059191147849595680692114602399787605475578634177161586897722559435855155256110670034097607217328665725174756366071747131215662004470264317626119157216520677713119041007724762763575366702529949066730374372920525112153046176125941469664897628547586410231618689943423479959881638003506191650841980318390009677596182021520258310888583531305780928084503356077821543683936613668943768637109651359726992010225239891411029586427674487226046723284898619158127615453956090698761600346728781589825624876697197276984044750334578314693773263557900580122085617570156828348144170670780674065772381917703691973722775033980787827466507355910040769358562189900476695212815428876452766112921102228540652421487996763462683325891491717214909918270623971381654962333331708386689014918096117469481351728803220132252073648922092148097100745645114048887627257992722719860897288545494351205139283848826297372951395684766922704570920009477815697054193898689784709411480587057885371856943353364266216026282339441952969662392755452261945966252225121918501462512747088061914713158063650707247267235902132356316496394387354672067396810725331607076661447687998576894085329927526704123831041760293355721534777685712771128935110174644073579414830447430129589091223336790958709824979262023160113496757335711554756703116637609181308232237753041431932115923098363525448526608908556993590132281905990024582017875651466776684098780278990886351427399198920288548552776733879261637106158114549376433468292007467231985031711328854687928724296490087073794938960603778573694803660097077972191212562331635948307541607592392962199148371755334737104348256473088615791108419341855875205454945220159660777134325270253842884901380197815807125169258408227251714650339675791800037867053535391650811443109436839078155877464779312565365940306773256169832843735350547296275823270777360667288701025896995226227887396567342077338675134631438478151602277258327381112656907658954564001459366287136687131756681908315453994215312937855781960125524268831465531541733879859049319868062406946382543180954411506731665954123000946106020869766507416935587072786259269366245924323384326089121909482534198080997560230950683967957009778280787387912326882095627695051550223883522628985025383578869514956872725806035583087319731932897363921011939220723935899905255003651430201835641752689292844691616706312317254889851710386772293502601899471864729297672281910962184198618242185818538544573402019380194998392614838859382572981694670515344020794406645401759191204314800384968490970352521555004846800797275335202065730391142720347387225356253563951075422470377442557238301755940811299463159085345427570167285390838018824352034631902012489614473987311145592358855879437520626083051384359622896652589796399335919490695971520386647091464535118264256963333096060247265343588155740014813149810955121781340147098073389510771141771665397032784507673451389416711472283901555086600120170013839976710414905425429503220869476906736324479947168530315770171593907779775935385919372828484097825468664686620780028002340491028783355185379186634383636325385206896704411414359267606843143646979856356399858942705744124609512693814430862515718952954545363030159710474196519075184796469674827217623089621343007967597806503625797490878081359992965464876049078684594416306109163329050662740359651831053565205168408333245564051592139405976372167618732992252001538003172553503628796241640062337272089557176529487246168356207176155557669075293789434225489487420961559872679689746379028669393812589124554937320316420581637110289948167535310481636744447188904499851138030893371256730227467689109098629277272385721979877068043721539690640586802917302334306898056467042767187343200702423943818814669674778791759799370039264943328860714871981435862530087328319385060414852903814046736184729254708127362217714753836260320816771162204520681023573077930420274056789042227974686298423937269841380295476561455951559498780778683586410754487211772848926337105798668045758702904460457087914134696471764431877973779272648995148985181530308657694910387451932948063108366014671449250182792362417175953991746646181794032837886123508079192093478349166306057126962424123798239440214097032625244470802418375121441171795083767984907762971317497341656183124637829265740176463824825434113413974862737735160683590511324604594367157307747102782532988001909485274853764883423629753651995385812127134888485064824445660525716845967714412435576713531970689187069552801332386024823342161250539274707337706968990737809165380570311326286836979363669095290320241098696771709475825537419973159906777355540142095179412137182458685898127743261182766416619015381062249639266684058529149192141368109403809236964877089993111673665526079669662025236347744768213471013589271014380216298252461978387982027307191254756547469783584320979555916062925006000191765173937566196764715992687919399119308368231378813993668354205544197208906226252229641733045357399739679840196174868628298591721100177384343985189809003647994313388987806632617751528412179308209840872816860789345670659428304193091314916010364532351718863600594869620243946542090119647573010190464743217842151764474779966813969566282329740052233187970292074169289275471765647889480315519550827986814608311997100139967965244547525242978734834073012522098159332459843495535959713132039148306207847397083224807285702187178499817901125768291523302413942027774657145666316374504004131174503679150325606708979931696575086963253028785896289379152494351737701309046597270883615337273623218906615397563599148383004586422013886313919881823101187918409819085810172446589468924552657011797390718527734581717917454567522620030888838898993337433900201773145317495655595261554959325407279277870977504875363930786187666607385002778422791888108030428442057083155327399940814040812760291691002265683626871391998408822595332916111852024529475503211762160177689123690894932368158568581128423723214706846982225760388153756286180877373401844659937111388653230140096090076248480034597791001732102321399365523750470106616673495339042834261032701102510987611470700336060679425315853350268661235159199183562146906365846822902552888048823294984963940439254316844468901105992278398695711892927275896908853300236189417077080102618850517343723715865382585898179452949054713755578300963583214408574874396449660257165716650112176936714438374852348027468479375174536579191958740435628876024941629691368338150540489931398253527390414579002252793520009987061847661544386360778977822299817623321824739482226738807621103676457065343547013702838233223249248204091611751123508589898806530562712897146044037073326158895986858506425704314835684622375346208595765626528914676812048499666014356532741216088332658566787230576636185110608972071803220164871503718137944985872266471325717980722591564616905322617682535633459970515255217546869982329177576478580926485913706367373367629427468149583835161056710434432567768787496246439393588652610172735306194637228891235973762326494596084930732641182485336493526980558689693359181800572532182046117529326168411539475541415258309397007119857589541073241105105919062641816450568169656057041093214271338937143043583140569793449527945295258343229991893530912350846235382178438201545299835408254753461546597519647353905139087249022843653610668680238223874968637710611821611900578543400744043358133567973203749632694047842974759558695838332572438552685192602282997658476322302180974279101279053707557161158894924863624123264601323224703895426221984728732114087270790981673924032641870671401952468086545600188794709000466893829927438814546731343708349497111653558878447231070237274400192229126699201443840752170540186842489378481192615273792195179391715233783250431862860730512621845609252422614747234682491747288439407099779605253992015711843412960750347119047477713783531889207207697363050529963668403408420684402541750221270221276504228676227988020974677644354520507449256926688577393162757178945771887422576789446579923225946778346949561207840247863692547620210898137876132384819952804496992839691770465968708296548124458700919776198264261744472015510326101984172824041107762402558377457806426868936388921920290045805130880686259209865205078836464896763032040600686173578216958449158612425830633920238170682747883788158735590531794433687106260336932364360823905055922694360561150821253354535280202456962354324508815441894903964679301138183640851817285439340392713684196407770847822369568071769454909136118215081215843344844925439336274365562933053071661808284738356890906583710535547465642766853339741671030648111186094165598675475996998143219740260320319739895807923517955112767828621261553873986462509311254657892506085626886068688979137760420751802808211958947648073447481744558799831213019140532845649522802681428354022869066736121831134961081765199044607910719719406630082781910916677644700648488235906938923886410029152335757289085519081973667123321633115606721588619594132606882695480850754257855551800680210872707871756562846896910170079761304702394580613735605390062404126703594482454994598006763989231704450288428804636447856715662707633319858589741501321171095601394552744952070730409079922172584307926893317909766624638879892893435701684506037139978927934499483119549120553764490122458555149709885004033623828982367582550438906622258967214376854979383195354376956565121073058238101525430232060714136293065862103749318634896286685764365644176044100424051966237799265253124822330617074088396948600499513303705846077912058065430587860402714505438346214336980516548971909590324272113456790528242527570411615951187143485837124964323183663282854136043034823803585410589729269519633971185383141617886221055576713866159900805466141088440531121872552667034390791065955626978214838073878560287667044951373903236329487465467000345088363580401587837512860627921336561700551005043152399935342679037819304405119594448944106537450188261519040505414187760273021090600509685189639892536638812078043371110570910589322593733407303984072592647884032969123599025139166546178934333782096410907916385592949324205172628196058443012256379689637148745156100219226891419236159356364667248947718628121387685495941038044765930361725330261239199876994359645582660081920658359257930834944845356396175847160593027509249124545039557127972173669202803474459874546212992749385541000951624567314628644259263132969366278750973650122824648289328557428050703744707876100054319688729673488536300654696381203714844341341903639307262591223355778600473664160485316305784024502353012857832379537320631401972905833775659012013302753372128614107358090192152428204968716706811791615472784183008925151987770725063832678264895503356261299936034336180034203678313659370110451244018168921089472134595596215038157432947605937043603298957383644500456948363038072955015698234847874387939778776381616377688144420148812013271174407444439565919130057197348050018320870465035771629433577743626030200483818870214176667139126912262256557800162782024466531768520955221632607533578929766405416946852384558323258941393219030870853122738444930421906356799049645756810184617607241912267532935184229766676257569583957388539792433656759373343263297937899191628245358124845432715169602454058621334941316322090503063126232620045969422852998817272603857305300986523679188396532219328084888693022046060363643422629761547938398554039669960988682224702137161377469325194507359922749430432433975715958347181879776603420019645085233487490502686900585585229288761064034097589992001551463440860781739941380497730433249189841679773470212534891539290588336167919773190564320879678856271915894678311248410569280716577159058779576480755930506839279663368611442394664095397208295208484947189081227505866273795952876442834670603581603151262367930658657550491980127946879132104047932181804132831934163265211221346344559382174463602125140336379752351130244182389773302020570540715885810878357800266942736918995866489267178814899603100776832937883057606402443654607872316208954473111034241526985629339988629624906150010257307177570272359637303938291063853424460949528903554755442099709525152988201516848032039410345443865613073975666163518745844005707382751966330501911202326711282797339817010090560322439725677752700900145804299649415990133537873300890065816552449829301927538270022616732610583179457685728610219744576776157928592287751988923330107381968144910627067519833015294246888397953782166409613008323033019491132645678701710758350222529650927897927299780448420902797744947493635143420342780572402441288171365207183463817509190467030953096830664179982719872719477791272686123373819401539018645281333792637083755660540374868340269639152561644318037517681013994915667534226075841314879834237507608424294908667485900504850452173950022294763901255392252434602690656284592000368754236576472762569710012210448955372928889558185887048025309207614868538512632502145140250491758999191202241155303015118044938222224928207191086164451579612064484586564882667280283514491812097429378594754190434081025316395405237999782995849588670892319446897877297234710504939306760512010221043488746111585708290595645240745526692428497734973365829255293312348544506224486130649279141876960121801379266441639768367345436018838914350125663549458111879226370471880205680346682298823970356584107029098861844763333436881695378514779611870698557117629797213568661943337654860860186164670347913352648156533694317754367445562205713957850763185745284165613827083219629396147901930134402253152460466092678224681377827689512978652600303077423361853612074500493524931318096704622048715407266474326537958369662229735345151600228445440215876039194675153057245345803042588954895679762530487945443753516015888894260996527192801799191152155104503737336098971454759659645364723959203166067689999840354130885066719587176878105576014714544529137905574083055803261550569780312289126247779618647273261621558435613069091614051019147927789886428062173390248827343723937842846568731319574806896240999305416970461738453325125784406847738040400689991851830401462768493660884151122692167333429833318667405534244339509537287574305683454086820862458368531922788170000530495187964876755155829109980945385096851812723339641766364430731076979163108662571561122640080830945851815905953610287542713752655657225549387062226598294025705423791744948171761501327996223397982740129054855759212155924325943117857020452154952085066470332561791133993236976112218249772293923934253112245710082856319628087753879831358166235703170117942917589042095335191453310406860125443408297168642958983601524321289692584371570780325990339636610275044033878717612956917977745940227924354834599402776449964006049346942071788546873407681358030203452222777479791517122948719966914558749233679337259321486029429381035645057216296037637309632234432916648706663298930583988553008771315867230213641079586895038873991053019724274151982442398510593648367028675520083421298607738443563675897670044906083901083336111104020517998831510019308850993375286637415001462451973125964998638467088827285097810409065851728105510319628709072673204960890900855634935970287863114715091874374343123742820151472867393574249945841848040738649116948874620876006566697281799900065898332069090279432790267399049364765393860702953791228025675826015515473543120264176384167333431675340427758670895599430308779642742863035881617097052006296078139729049428013880971996043666009895675471792747180937757047331966816076840248245603037541726165651873665875698820331291205629930372468762687715564659638499445802780095068351014485832528807351253191086131613096587062498267171670241450969528186164262121472923611445666696717638810401844366044046435380020086292075772118179170735405151738538234374074121823525445470204000643482371616146905969668852931795556961683514023196518276935324816701728147093855604308548868745451146612573590991809298264864296537008869953077224081188052281990879230702884172257288750979427188031377981326659012206012521679010692701073760512030877257546090252658073399393433836598733105868443401409676062367771026810784453042891118754740686493741955053108593357812130323849458599190349498792292747648225664808853339370088690437229235897853192842243659943086507679731433361037816938880913727308973565966391600533947432702221899134197892815492089828488518661132110423275142040923765260259039489178018326536313762720673725172869953302163669215069693202358741763881477877610273473792256358150628622780020163089792766745455179608871650977992887396670610406299836831645532724535405401447584771970541389373414638267771439341838623882477244140003832838493610299658639251046828958524254385361920071050796422905652691685691544153704677429178849341291779353897916318356971039310830010416555113349286489867788828336535148840727742048596512474405603859861359398150602908220622262124396345706668521909068407726498112887393970944941325508719877047211313520738481782032741341876634632166262631188860570904568517199784640708021174965905666696094124070319522094802538391728773333128518823226357103951000413309254680709025575348092998169459340398111605212706497990207235438798359665777176215668187247844312741004406543484520670729385649133577400220244732757540716909773877466940206032938010249214934112431150839101448495291803422184350389871761106980439635331596424564500441807673096072823469619863127347984745716199862378510699588336461669646668087792966688324681875895076930405927786053837780253254835001966149364413250768378711322901788216049640934417575440542214595446474519253352003404845145719735553473208091998322720420523719966642476785792992712563715232037576340093792424670193084505271921452949480144604781408924297247246471026629512778635682025889342962304025562101511460022451992100810114002997375430687531645329415420053983824178817369285423928547409687462161909588418523720462028334077750541722854171724709281208978794884410207794258552217110629969424747025600474058527531844951837034276945601742915689003665626239367273678223619585617712487480003570168782599480068565457510661054454933154131029570209918209074284548004273744258298118456308296883641025179805534703606679887740859175058501515144904138726624484721103076073280464573063910983724769837191939813843995757436330936022601708788767765866355837990417572344975494876772758420140097750113439567887072482177284992089529765103286306983089735132727286192284848476393778388202217044828229397922585523434946198197843523899763999897726821266314493029530798182038700665014802811657285839289393176134121579700566886308011740905115006577666705042110620370871055056159303011509308163794404102398429426531693283207565666597487328231529043559806531539769012700868098662288449191677583701111475329479346398436101607934747547964463036137580755497375885189612856686427560751211153756757302101763411782996015669455709323385585480109292395658103904663427273292342032319197644552134994885816576406602194568635234139725024943326319244506717849505693507720285973858940350536997899029997618689421149140730694235422874493920151632838765609119126088764963987986589490473679070045698797198687289689731920849599764560536683044767255487902511535466931313131342344791278797262557699212791620076393331844280027866360340298866080550213464406784941084090256918474812083653096113242418871288505187765137870873656781504885411211902730017641650551107853852536668203995309510968302151540515211687811424970643630712344523454315605585703142802328742088918132700275025588355807011808021969565404522716452661942300804473203816432867824059006212670820801355633523557883018918220451749836058490136190271191983715020989462802974286270098655228827478332923581982323938300773008540146685775135146148741930180735504002954889698743444424260286052146800466929687742441702282782105315533482692367149356314491543358393766640161487358486046357560579245123556110281580556838919488357758625995073047743525119954702784936094825597810794207593591983410592616469283789919531133287338575595517547344593219728734501793139201677387488345345119193224179179454075839301869152060639398477405482203403148508222975117776551684061853761856667438945730882910122235601739753722999954971144021718050044443036974806026873418037975232941772418177928130885641189802097979529241082473640256050734750774821613685824101505842506951588288571963463245815766428750893477268012409342114656167680484861593930584563717191330995567601906735854206642557132357359254522548414956788602018825306183103590870157228556288560710727066637047305657257395756391351260400536465626226488997505741524125388985446194215105284855245847020221593723111003471429231409533278563493699544091578329780056809021696632666606633157491760893537882594513111020368879658016376654849686439345839706548397357306872686204964356458899727363325663705572712419430303379627761760448813636330958824668433562908797046580861066359780924742612375088958161593139704868091246411907138733923708845737528211970108098544698500823554217548869681437747894260709881574868084276085976025058270703745659221112477109279891627385387325173580973323244631938308222227221327092052906344313112081001582480112517650807280290824976940038556870491864051576985000427056622673858633940820512525775802717701342174522004334979401270794689368408800680990458081993828485926230637464862973066793890613491583139384429053010464961546756115530981986635027334932171735378660923262090946083827651861942952301985949090053566996264480405222279570986631100746457092880902812170202352742531221076445562167903366721951067085750413947723915662881385662400764595772791690442345852121193602813504621193485061951433177282039636258874446674181451316020497725941074144377630846941325148196760319634985184121826947974816761796530748173352380016955186406368770940158370726192752749780406225524387756214184645933655441430772575712540188982410008727988776716744715297129274212469928765187131739279869011974174604530083664837281858438212976896263616012755544056922956478219487183672375036524264531923010009685046731508688089898323358133129433579561734802507596033897489475716834282651198310230289922280180915464221930371981209712840753286443482715155930663425508828520078435480415390722359347642450742627634631722641773299490088874722197418595956110553531075583634114396999233950840737444680225195199656236193944708921011329150834314744656411706318492107093993040032906074833362062070847682497197667420772956147976185840637497191609484516101799468886422019172845255848128926422055845044722197367320255412046223953238737683582714343752146679694954703995239635407493197825259197694448039018974410509607551588247094039777519004184403827101873224338967670326382009839983182752476856632130396274271111285587475309712325776759660876088799249376620067866786251741787923236254199713408624791576971026913153045577382968420676428834807939926210173061892843864495615430005505356895336120480561521826229974135864780566725229181470782167743444202722975495614208952975181938183466475265261171458993507033197440048535173671166418264817035874066872989829217912364559281766436787073650881627457458530497683420296674551962003319322496961330842333850324034757892168323441450618650552613685701071651656047372000854343736404318051678137175162110370347895979093695073140695621986236269185904577689671596388850135614793588805095215025094813746336962184847167332106618512933676768665935229929356629455342503993356121430526065475965679733699015039159545555900999358562074879907718722991857424366206148702928000605483230375584141562476160926271968139887999825896960656431436400403620540003936113521079662201235147548295002479091739482313365115513441316629297677029077402852176967596845164595795834074128603397630060847162174910608154314439288132802267351547997658444835368848635248225096612788293899245663306768647677452138379129727753813461244620980031530884539630014183048635474428008304001639939511538217297567949966858878815777549158661217266235431123773939137093737320316794801418186722341167266927548983642367251625498019854765402809490464544209236795797837136694424836910370308619287399708994016491560724813601525842765098818684350276778706915046159375590343208543608148731317860481976626645409225984187130007006096196787092486931534146712236763507581334901082028936311027269336986112410651060695189604343929669655169247628200214797158521063555879027982457068995698945555474152209206620036860982913509645352305297541453672819117352118526416052160907043772265956367985330768233004026676909879560894245105915187942669440450336762145545625995926505133332865916464869764854158850691497154041763196435826080880784956819932629130055726708934288771149111350322056805178140860999788316103646645158867213490064004125159929717238736527381459508224614890044983660079136311282174270465928151898967870679599579277027013554124945189573904075191209464419359892564240590694574854266402178125540223015405201620944278210796352119936485866421630260527245711130444232224221192346301943032120851063652615273625300922717832533767414950548534256445896300040676358993559116797648498049193008963477918318393739599790304321149099204701272819230649880889039681369258965398406936494357773661405968253908596296337861015713597083360034080946469308744033901202075835322315669341322568635775326977701690204818806087321519987017821419888676907709837115063026507302135890002032101260759102163768406410063766946159921480209591325814331760311351334166798851958305896450275359435417530689494371023755999043660581552295639817159104234678274330547704899990570644589184490235880128004074043177805389625133561760084989091650680621941456570563712842845558343493867415482973395270461260335825788234577116452280845457371649693799810871727915604728490212639861688153005495012219579774727839444221952802532763415775468242811306441258365237862094290917737123696814169762804367987708101418127451215086503531478122130589779819321580016875756831113139776285626818477560392247761430977907629403842715437819481746416926844620996583906941845091639266555726280339361795664619840852298978433879529038030737130145728265007090431771602770631218811492870026221882778010978214171075266949663174872868285624880086486769560405834495463905252136013598953364435384638784994743178303228231792019234053458467506741357923892323705183713904275498251659684523122169629855225557925938122201838024554117966309128903307594866788210573799600076950609742788519951660063281934754275836600793311613537850656342030836353018990925785845014868024354656409860730410520166082505977256328506308433396682515798472678332193006570776453731716812692200444515165815340299203613052715825387495184888950112264318937103272248421675646360790372801762214282667893986362462873738894398928424432615601702163500882114093505583768964611287091244225175599181054867154660420586026032199607899075141916067048851130324623917414557035069347890870733182847636748253848821734041058602959313193436772414832095738444011590024841448067905911507871725928965031747254881997569626089700309322191731736079658385303761661551481186333606929735539357046363570189590014948399914777618219928550611257459317123196471843202688650141832264580589646325232824271281568269228311089600555075616048367977659386019517240800175393152690625451127634671985545329659196930393651336289620888033935472625298415963908433887338416364464958907862297360899715654818936887278537124886289338963891902370824744892201832315912056720675068995084055941799235984975641545766995281231322228221328897015342965448914097222397626989372523427882837899817858602213584034400769856507399111829402067097906340338256613985433830949900685085358247584698266760786194722288723955522266589328202452339548762481262413374794307226114359827406870050022199577716640757828386741555429176054339153015434876608599147544655724948848993085865967120522711180502860015645948675011997044817617958890376486612764338768980178399937817537594743919623682872276349061092176717808498921069599102522334701055996485665134711987191886676484558440430912475864870294807298844651417848378842078140216269776389296043938577269313642330398433007961069505538609450250565779314136185427004684730608824335902854460949044510049439939808932606078053194408459632071844618546049310686783003586829014859880146319651689972845232391228716319828707829794703482063996384503920719749028925411860489757064225974660070557885741043711981010635271359891926898235548042340105291516960075282099764980204908232831959866271254074873299351683566210880990146382432557198557585895609350718262059734608065804158184205283675005191036493002706599995657222933554079919105908448626646174925838490630062200139956580828474910934892502592935458992538454020274697398573179029687716017961198804073685323863007860799174543377561244159737811094258385960533596184238297979880151217033948894656474773069702174058163621925278740801634699571996627413229331482229884340029662256173307579426224467603793787371213019068606392393671712344548230618281606010698925902308555762011193544465483738967670009895117431383634013245514808090799036115779246161592041770312642671420759288097459093731436077145926278010097469536894967821834202048509471099773644894776018595301880591350735039890349889854543809510996888318566841764629955015645426057186730510985560870100031089776075054357137555502119559797353200658567207511629442619106015908986465298661647908910473408150440112532462481707471864536091199868495386349782585530275544656918721265419330983838007495821804206868926751105960674364352146707264422281488956755436168168611196470049077910709959297509355564851949627573183847248776900400012841666754067030214606419423307288254754839677510420203776089020377063603923252713284139961035567337390421787127562074857716573910458992710597667329284743486771954778063633817505265945008688337785937973295614928186788978528572480534830683327752444499753684941927600454107238924439438205423546442533244067000307541478777462496656990434455672642587375002481711957234149969312567284477598435637887634977083391086074422357301066529424513908083673085739258223616656760405526510588847998512798521030864459525059741805480298794673411943513717486853118451144994679003447953844220787462420399285123467610395465767579575736877290351929152509854571399497489821529755553517927896956944501704172291563227512153318975371627241273808914206918980648112993184545014566176629485438974463052889140786283445091907200483639277711357102392121447759424022837528964941502204832424466193755163310163946555362002317622002709021146288872571380094795944631738702443973648881761483934131147434186092647397023050059093175069653021233382707782783445703132140256699533879828263533756210090096874092049573939146483930843891129627814107834485271300904861667695005930063032537664558348265765057215925049869802117401802898019869827744293182736584631612909655209403886771093110296340026153533043077326150378931542134068097996434897601109218577357724837406962983122468173687829444985709521772329211804959664510489571548220841966238005559080025328528037848943767902181712519833779460550108597480075132769489748395707277079878571167637689065112484800693810651754241092945418870597618637671835846843030919758120808872996401130435504684228057531770738402366876390271714518844422267435461138513026446629209993211890908330861716620279468095326585614640667203229959261326605166629560619292883101903558603836064810694590528621568886129800828910341209435549789874623831318339350923908239826670620745354390673678786158172373658306818899644789866365180980018113812744481283942491021624331320525207505544322455518029672771422757454767080128322370798910360213078974304903163338016082173204008528048468220002798231770067027144124646778242316843718973358389654919241142125055009710319950363918485773305849264414519377863124337492565958615974907327661737557886796451414631738106605986018103167523342878583968567950884888955988490668221084995178723719937840179363347143470432790951202205033773976685325457579096951359406524157570876713689540162906193363321002289973328643125182909680983376574963914188702585615003047801803271882911091693217509071644323397510516193505277854118537986858779903301332999010930608322088724300123897385154249326255120734014832854968533396562288463354382406929375800616615012489789192968013031001673499172855476686484623679417370484614733301082548994374384409920156062066325621682424338520869321205255495664469454642197056776922461165487501601629829724191690903585222665469883802139568983708923406631927784781168117818129199342067842558025601328803579870402658494703865643950650658452287856413580799060019240767901515194016728235446010107928264695538933643061012697349158472919644335201905990423265521619125936611702596945373198386669657207206125174617406157569799551396991401755742577816964290767494228325781434595665483657180352802725961076656290757232821079339336406909178176467294461139201718804300824516399711341057696501126580444536677025627717920678010491501643282980616362648510034131551946893475401606765216371868521796223505939110914993263669801745316234376518146198876572274934633390540017313887821985538719325725061565821514576126411062481394994274112199461122125921898800362653676030660488107677282322952638256258199895419162665920954903369138193586188151402273148169976405928483618275208754090728261028663258639705777967378492469298883662194710924175756417488427008092035490635600528041810843585157305446000256108709389965005376864415615927895807705337553814578803803571961646088494816267612887505772651491523863971029141847066349219779956455088528934237829533075659043044047794170060405373320302005519693178885496866611424676041850517768516121636014861564294469161113934551135032901640266377421003824839777174714438900146338617993146951330185299086660995701681570628363629428628801138406548915420238562289240236917537055122458605819334084346759621455478897985949192794015215559090648776042052337761519537514503178867522421158058985291903140992678793168955385131840781683809989004307007796317354052479835554302018941128050904806027063845061228091289445697460745597652091994759237157373786040749106044140740911909754985193237692982440235522043156790189678860350800278834143711991449329971189543942496947182315921609679189694568875828588914892044675636649425949389096858690043442987517246561338516761120277694056791920426392085386318844763076421791916453835047285347547796808378535951380531394183633718669662244229018189432733555656738036444260684077290254170404220928141987878906290441978098290428968478371048998993841904694812821648303819076020023896358408363607799119894627609183236517839606434218571240469141437337422738403862321779853733565297413598872607231274977410152262929004038979042981635731546921317062220516111778219155890082332460136337306847658871328993597255023954431736813671737955697969148339907424112571294291959748403706785246242205223265927171585430195907258231999516235639601963997522861721032046549895472839937310769495936629320681860993941545605884739579218769661496683957607228450553972433963289086258180927169851774829959592703969866373707806263557132713744208897653615045894879811457203777794035771961608876581136577737480235640343025818482751030624564646556101552968319197737500832320732216865262041090978539519258639575600758449275900468324268758301922726415265724262036825860689407699689728022972740177416156098264952069237760143460191019208465128244035743345972402596347445163671266296392412850529980246047840480000728997054161145617796424224183674782846215765111939327985496329479038504410233964054081544881151526378898039514522392904606825099042270837499151142300221084338358100059123155608524664325406987657210515793707876899391658352338108945684505266862750322213552016638194916487548072075956877092923109185798594932877489429551279227448640651167286719423030838021759000206385000774240169550183697492793290448290749871298219395102379939860537526701693787046914215561154339528088052848700131302730490046431778357906726567840731395523952917874117100832422205707926586505398749892642663612233327466226794358053832485595940351805700788380794749174171294301221672921391903217584062863202152373029642597882967604415018332765830678517557637662927553639939601223716321902057730872266978033508735828996039780854974569086951045568424346375373274346299656978149194355672629743019455042460872672206465384170796192757875534151146321925500685366104742807506979875484135270742689025566184826922586724303906376446305170459043448822019960436728407027790389939397855111965230577425110441619969883687095696340981677958277270083776562355514412512361366175155029443477041398817952033942023492906839995744727738830173560219837600840032058209569201063772377536748750328039350855403009098331453009572766755026103734317705111525603677133320728913680729635737047233633744274080085132948257318916888428855918158891778672872531952090958005405560474329974047331151014055862357246306708237716092829569157991044528335079413591817920120372659650665744291712420475068435334092745774763548473704498068384146699391605867894862570435113589599247894521982427519795416228469035507343517433450568126886429073429696727966363795160109592988119165374105450564845844084893638482557788012888164544469626149420277883743401277194805157386866494439192102371842474182261619855752331539760286755087142582578721887922586292679771606492649064142885566381531903384530615684320378519898673344371993863026933087568207187307184876173845591316310565634972548821846391403309817793324433231629378323734067432764334785944382182339723511412681818343398230431658338217131724864674651452690557188072397553785803639143286616038302046746666302923591687380061096464371417720714839482410805116099727849198741184908688838611744723890529316690529118950052455355196625203667819309027134490615276599297045019155286923092179632988011434807530312746851230663369596388933436875777092872707658411865443500071556570380964910222825654090106559048488757214820851315111986594580187423590245861654022829598362054821527153095664974677522875885482520354265252762822218306485699229606556822029107460381994317478444923099438983998352416696864661854818514983060785298455197099339677455161550578319717099777186140862407159919178944592130881792851938290163578737511039115662473608464354134437501574895523968265792393846755828818336072202370017879760257157426445253018461413029917570739089578050603016650714842156907213054978841553988557828995373007183770332548581562124617470481343690992101215985676950202977680715064308866005518520088302353022543126062101913826446339552157822692168217765500998991105426238283370040351630490769572087043378503016758207487181345678299973871056459843849495425464177503249270200992227049329819325884073545925616053157855488848607168581170808943360933475951499107819677297163666976570180938011273945312499753160709791931510304803184060479252818018280517443277307522325031103189900390038018298055540009175252610473344522400158591209956173270944382750093823608159267106399278746484843406212494235117315170508238491469772611511229617717327414283925661657407446500385580479461578883458871189919313590099557223669714932128967560702522819111378487167291460523152189622172750347893222802566816512637351489419219626468909996494581118858151751785498771629958980392555367205836108126169326636393087969032090903808161446757541864740780208367438782519391022399264695345742287852719872012870530337455429420750932651949764456055428379293166148025526022487694886304117652387549640189626417718174353611868570959543022820938172160155403654321090789231077908824671420958364469977561224374915807709432820528527069349322322826101229425341700026176693608651252290287266773039186246311781377487413341086966584452854449715433086619874508120087771382741725114035363113931883621025201067516122685115272129206057020298799146375067007555495635259514416979027855542253124593161911365712123038798478138264044072828827931976793560527419477156348405022738349703385426277504042631268624952777004472588963674095338887926552716117339935915283251989973944895080226689601111465468194516830685096343506467096379623502820885963044756508957376324894315311473524144507664942919235924615513364893614426541706689350793084434653810285074272512459966761142898577109198970932756089647999508948598774921621358729149481670024183608983579740847156029165928935453166896586878253457009046050178689643961050397426831307567766673966825993565339737199504081389301762742885399506949893739606601959008893109007026223768938069856742678861170268591756879747912067565911481925415506609421840091224662197667658040486550754109233406269064558630750460383873835454626289254982750828480344724936846981196380057539573724668318732592356662733081479003477444653961728923331559451457068003605185288290490781085115616645811568658399343988591094528844709188450723077713635081108526112282907322759049104432239108070301723400599550832642184893661631055549779109882763148182440987679923651288473491541670753456421702949911595225040480930544506391361960601278515037351926508287452037773990284110905069239672774460473330312180063512493621935382582843923974550427378377013789064804873778123739452278261077810836864733101783138951537235411868535664663570389206379401153492889282316573829807644802892487476824773320429994719998943083088025522849859939519862009546952251731870271300188841782704086110307551281066169606797214400328582283039927621463919055257779320128665181154949725333583324975418530052945841991555711981430672185421765923941241981579867701142194083564596961529473607545698575870715911191184164762186961917352907419566784665690162348163610738715858288147147277424201589011857851512124189982074905646336133190303069167069447750103177711564873390591620750377752362903369678748977276120567716711177122152824859290231751514499706101084762581121099782490710572600380161372389504427543865747940920500046201722228103425819031147880532781071505943340390440979829834728005996265374982599587728033604993813252128813434332815634793657938617702469388815318631036386323213960576392963682387810030806716090824336063304921379647107404242816712922148934052510480284619872412495303275675353637711158903932809249711512925884299230579160054149032807190522001118542345108887384093810709496370913700291692565045274141289197165474329108615159873917755790355239675722316645522974365310695576666227078072704591350751468526867773311100223210440482347549329337622351485999776120440236724948588979463212446323484201059380333990275294485437761800172921806848034257673215404008930326713715019438778780966806941211703678263652398952601329249075490395224310089368551521559018943275822603331418534468638013899076219359631672900355684447547150543352788458317804025184334332974393989417772615056659290429242971848128972555677897222079368094892582368298689163804367936723533595833040980019250913148574127463366974917018285729576883897358762795206104252141713403525130980911446810822433341588733379025934677261141011563858272899455602586760084937802858366415397797387775588089718324846550753388052039670790151755048888318300845264826366462423424785350674386661302140826102515599194537733974852664720186751450518497628542380267501959008573542585332850114210683429451557504388725258805435192555349986786106472716684080451822420484403274702891514146259322344327390796957168853438572550420682463255701911848032578465875403688588774046393944965653238876238247377364790062943435829851497489572200711278421034074176471799840592737623242615464908376571645452654165795653171732384222919441809247904039167332163601567229732132297423472956519142832232407832501522386874946214924644460828086060213361904510166826232097690966800855756310957929382584601219898458814723954547381083271521600371471616989750899633957431617331454322750986857901650674287810208158738502384016265417296485230182614072937563727537774224907945676764170580859055210331139193139223799519682634216556716709597483814995127748283874551604830241388951400762755916392503011640620485241798301912518935764052212456973759462704344845667798238401675546385439841547547759474806903752398591585896177123063997181282505425616480753696409913652427933972707802646812448967269544951405614039874592609210588537853415713855610829855141626572881980957124119446844704290173380427840788046970185609351113517674291066807931459564488823814807685492301056864639683790104339631316119246172106952848138736215111699070825159211036893665001653017101347919364997150536624630206850523228092100714746893741572849386889803149483850958908238930267289706398024313583259054366561973900093630492752647525705207165244449053139805318149445131891029792482621184308184117283351679177340721369388027972363731178210310965075558450900003637380933957062727247516255188377581499609844250612660472552504585600893492807012815886977801824181591229157618946578871256456492171384869012036590834828628090657805387722416916263021357686463806915434682173251981272928597234614168447957513332221578559120586918348853812348824134526184325681026062664476130046363584982003625735609321870073442590431130867929501757428161221075822121354810830737698394366557262495657555527979691283676811709999902823260855400015247641690896308553949034042039117619310811197299080999526027082632905996541852246512772676185042949706758880007249806811607323895183074199356542236439380000506405932546875322121559573569361027493627830572533481216322132306464759977637810317070354516309432480678347689893297019866147965616253231585735219161801435853501674864226705378616225865263048616244895062729048552734052666215785769404639740328055568813756845212812135814295327186092639897856572541230801728706326424160270849494803910971683494537173251798423184305981349181361291487689854337241773173166974711384113150458627759015519592689876532921606571401413099882104034330189076689651171087455212582066812620994224948097565362525356398359234371614357517243715929088819000628951623240341127650421190986496329341009215422215259562028980039612277126817683993119410288160332895725653284341084095933726467799608314706705903920769168014032012505110737842037622484316892794366132779298583356228332903701574252940264512726789576325450101144615736471005179111744375972277398705202131433554619268711367791851239593147102800868817022116727441771544991331906126556277627245767751379709007782513075603414230148542936875316912472600136996664838951442508610212520472518262851271210504346693832153341577032502835741778270669170936939004028340824654266507514534526450833654710903349920694245045089357802561397972165354550975145164590524272609502061668765616195606661113291747561562931555566518598122631543166440099520634621562936947596496313393580578963437542569926340170758520997479653561203996003633507680376510310829927186601380253346428486896872253805277957972410276676603546530133432056670183022961193384638582615036086321720093778686241331474135678903922247730736701183586141796021653640247130826891509541185227383065496649960714344135254001967156765876292830445978974233014615584760772549894335126650032659545933662010299800154516750824094162871702827452364697570969205651238642165952800678575516846943402646253253955002747460109529263625525719385004552033157222781123114283420126434120720114217168664479080396757252593471155552624984601160518745205290876343164111067258376271049615048117704234859981769136795054045732344327905249222085187587685740568727577311642971801898034325003293376944495699333344961842162600710347788775828320221616296373356155299942111575524668988655579373891412268812542738375653724681746921015163071440102259210020232338002367820456043180479236043544273580296455968860850856982089858924239185225351960736911803539760178302661478744373860928939139146192093392410641083376486978001019998410010984198361478323014683079575463474554364973664312611532437400640404505700496560602602120699910514720339894426081143728283750119368841176492496205342331883415227004589775855149321105193009446822519799725617648064107445837362955320303501055718812910566921430521457912088489246608621081460113811561963138125528205768269300911363212159941518636257598623660253184944182353926375619080424696787884788851558191766171245051424050425968856766195201621341785875632718788561361948945203644546974813590915148756184570254358292596953271041625212509653616826932416480482086040623811398322583440288357975987212156597874183472693084149521837013758508051433140350652647229363778798299529255434084261143234373320290106071023322766121274929695484353831625245793526628755916963183323935528087635542812275572942315326223028724520476844783063314340367082115737253657836012530454660934946895960036159727891773241513464937957492252344298663876645494239004822993628236841180635180783453327495594650547603343651046575762670306432619970105409497716351999645210922716549297085420048554746072397527249211420319841944510707932838119368103279401442421135265599472951521259244507872074013994925162996111429806787439503194822490770812877181253555761632674447109990576893824829363843358290705984244517344394404247493050095131335190813152717224927652483722733940743680442984317848517855127271069017258620899934196915165685004016492708859463577820187768979920063767897321992167520857437187460583636459224637914575690208152909410368602572585010015196841519214782197686660747177789490018836479846057124304334262713257458519266287359870755858129801269830811899407994459304429277960136744609092921160378557990317534279621818145708327967974402788870778625249330145872956814427101393670118463267122602582703559661522911329124061437996252764952948261086858907034751423573686107219478141348462373237079535106177250572402394321124256004866782856928874046921508044215328426460003341122145571675441814275274567524186416945062729499212160346983227082856240284477993796700503640519669956730418566038011091150133230301933485158079918930638490045459547391547253804805213010241934748144260737143701690479036333641176876242033101275062765206441644204346396060260476705114613255064298499867336028081575252048553257100300580661403260179729209703390480944697989086372041666626044475446013558227192218376053784436483176355830460007678173589849907247127618042507772260775726625799295896198752313450681398333837080157521414292679424941482229329978691368205490270481269057465556249319327770250427269215341809884657926753997630013763118358977522278258495048511473810690327229908682452094261742842438511825275234844919985260864229127450783108405891872823797985698579228362737519784015985316092695976782340046032771593481636480688173239066349259907836868823761240792488281907273452786599839135463978262754563213948514699427911079093528705114425581173336124173814800943341310063983326219542886036830844303607800061721953402283620600455175794391191734415124571082054634755868102539064199888740718155233710566678009676276825064348141683387456526748656631966647560228739632810680806213684365961006611522485490819813967986521839162072708907980254796270223823713554623955063945140871266797997636047156501439233334328957067948884637888640129932326028318814803937492858062234335894336045317618644289613152712178569685279817492130180550945862112803386769782196171315417713841879178441364911744838689441476939594002952269560355848783998589593046896644358666449295693077058711334405925278373393838107977698926119881179942918076278748933471824974998325731853000626096076084709847073369849288397551874455583906435176102873985460318342498939805680349978161548896749014986054381327451472350104087482280392574518006602268191009007626277703442833558344698912270031924256883439300494532537062078211865064623097016888616971041265986878772413294447365945389677269196691364641418241370721344369205805655930907535472059769277257499752347858544264688574693015571317943752235917628579776506991211349284015742178488486466001635366087526860767293261555417164718387461858397862688402006164232820883080916769892303690951943693214580128648882290530856103492475006284426502682289329169071101947247465567918248782975275200913693906652852586776889543744574981967138869626131253937145156771391281126806118038626011656686600073810551585659796842554257103005065373512890973456968049573382694488273478397763381050950860748385961407669043569589972660425914166830882990967977953785198578107513001045663549473931506138955368287315868655080972483110465915146627567871266647221234195622129331850534944977930108259892063352250973919776820027807012579389357173020040336188328317255988620911731970381503040712720850693520803450303824398136734632653927856927128714663468804275002036695365237408043209863263579117468913400497858374607883281492119777139789898732736020409965804279535333201578900620495635840870387126455720260410043523581385796635783318493282216089641994596633488596252442409369103997306255369553116752098441217350016154473173933869697253714180341981845193189565751909674356423728963544023808596199664966895704808826484292222545622917156165953376948445845581603621899242197586157645284671627536360597483648348923599494148208860570242641247870171879786580772913801452751393518178414200173211510016318415447376408804768842198982682236006337114687873968240464693626886148152403015195186400619677849186474112833619090493634156682192791195825306942948241395142564121190924683832520384150937184896202059721706814132990395741050440716904265113421692146787142002677913759439033581965347247157439033364476559610191372560160466509329646052560595518986198414259734678043237228169060381248348803519261396781071970783331977464979373410776399070891116182008619201935436841885405319216911171481077457109258723191663366050152094166575872659679899537987012309199726492148149734878233535174747889675087265798988714422487643968319797160034472699841988933515106025110209484347443542827357590041428664048574654019797466834957649254191783602530526148281326528156060024079203478177401142554362358600777235180473204945210754569479532944943321311788115192098560518551751372425863799197360709211186796532101801772221829451314765031246565820468478332668663272057667756701627158276591422166111973423137778289444460195341111728030106219326853557885650801535680770576278510555525520194815158266937843386337499785542655261901580141414259779789842976318540658244027244785889861856123301268359286880440544923838725983061154614251229208007030702794006672307087438870500856530058590532881537726344349674843580466425830106691809228653314084169452574648938476627209810524941787790753350115556128380945909738772440571789462974308176408153981983412097575654418573116569121163413845655881228288254401676636341734429884999092885742801525532129003524112993701544924760057042232852749477334302560104704933084280155888685179527453625909282195587577939838164573051054355879007154026825925799574074106599466967432030699941383775931481662146441732986224202517161439983038657101257608358705792083897039901224677042842691935242742268791980827649919378660888594915358063074748042830970165894034754932527354542042250100816918277391755121914959219717575243895226715506326298090790241772253428973505573446100945506908993851162771441619614952902242014868031024303688031482372382864738763516090771935521169049953108800724851876047603566486051715095849139322497148631203143441195413704607187937572169996219559005616208808969737768324212783268827873421141272463059115831725251607728691010933164382495736771670056771856544396798628202055637782271709125756284308725683721037077345098982778574324199131741993062471189636762366545174967215008106512400752231046105998874599721251380608431209660368469547925862376741806883691969537837581748507186675406025383935288088696849083973490634823709532955734356245899519538800078637487391555164369518042343274543764814117528234028978463699596295186490765329195307896745374183144583060782919553895046335160730489123222290236815268097150526206532219376480947871073828745122949623499594784199967559775632426282777174559302431245022252961893207892663931065516183852396366438232910627157217750964232390499547469274707667758713121904895046122941396513111746775051412356147071276374837035554412150200087863376987816666817879395116990635903006802752531634140083536052387908057076130428783639319742558063510319649416042686824992101871911949830139397643568994547629752567547212475307950377615271889108654853013390694202217227533409364143156071566631940733878191733850885620753172511181924625189950759561876539766418880821726579966790268824172495211197192981593335855950018173581836280258347415887131184490157029788787364638209167552149399882508024954832610944324192920414526914747059704956356020888673289184558129208061224882761007581277166339979476412594259071728255342793462368999320816128498528733793065221568441312459267233200242788224254172718789111250498268041317303046486440475729899116826347263583613390939713498124907238267010123810069478008887268206405217512064001657031203161714265232998425701309892211248559581327934720569376619095471576032072729639364773972585546040059243260396052672449365566936039398237291306658224860905929688082223275196849538847543254612714408586941718014139906100775109868861204993536336917842446171816339618858576592224586527892995801966169050065166744203996260183471793388704565334202380928600874494230153118851566152415974349166997434643895358650089741076767046115817402855072615389832909266790793203420735839680517788398242935535699391360270608173255235090601537445817339618014744016754272746310059314923455667667206519233835285975768629429475628735950757892128409316878647141761211172885628781848417022543432439057277620474974925232902980579436834243441986831177117992977330538408315715126586583391147451145538796703310777263613422997264267030286095038274379175550455117621729950511393583750783506032697888010721664813441187496558625405483110827335905946878618977085386511741717956778994714819495939557796868548302348258962631881752491861110532898301551320549241329580071033462862766981804437029900720816737632169054907886746681301366476189143755249298690317946386000951859241687230088300765267885534846869478216811755736716924531585192156476518734774856829988062110520448301361196172071955838460061529268762321313756628571072017212547660325558286826185865012936716141659571662633270600866625178291883817240070656814993978805638539972241600242262583465192937874271806997092453692302967436775119043150440135747246385651273771081217018692707325296257483185035424999771904239090692304916555606848083356478988463040926854431261946273816001774591672832509081985631699416399301683286139316942925043905359880683082339484950718918627717689531663773390870459360233232163027257123953160153098274053922429230893077107157589674181687154366308837715293763282768330292260429648537584467986097959422763417127818296215534709718581881496219373557177873090811700037512655295987118093189042228635651506065276720531129696932214977664387851918367113245966191314955453174860034586294788030353428661959671573633891541506447341750671543219307302559388342275701494523936015266852694224362723014244310462326380273375742199605854399464503516796372937765775728699408203574233681545055532796869002790885469936828662572630010483228967918816406167771949781654222540414134354413371273132756502390281101770239801656000464092888124066362889898563674150516866325459096533907738937488086354838533244659412365187736151929387121584688792840522573639827696065466655354394941133151992344088502373921045955513351537103706838590589880941864525889018137615069822670548446763873546366702578770811157271407160603414343291563653614889768470849291940523787242846648907364736441955767482980911245887715366044112232776566026124862504235188451820044466288397865847174867128343637424466998008747487672054820963746681512059347664780587452012601022458177870733539257202194158067759194580399183483795123846587303680594218531564332858139661517810533663400121373913381158992477523789265796137924830498491411678344442531440725101868563401815582784302909699555283068202170055088572316822779568090026064750311519572772883548791554179262759466133320027648732115064644205546162678319265529889698269945550552291096549389314126383479947267911520930581112177170017774108944872758739852229572361559449483645841312521839155684609049408185410462817299098276834148389372193121141533414146248911149148282400170280008796682434528110569167160585770735071703022247567106915852274625977536028676892576166058170826623773602398778830326078700669662860053061306024459469986391800069424883725784793795965372793695476489035198515101122018715536504432844794170886189076239357992271782190535636535608838223164915027782884542807045476546579061074790042369840718264477254571238061469822390456519551909263262200549173377924970787303175500669526295590162482259193454962942487494654893912359230725088056192619597526763792549885859971625043699963395998585398329597277755184828504160587494833625622801424570650905845042399184890660429903287412168929083230547552593923645728338248259692108489984247928635242532495037933175178538098897790773187410084987791342030377698689044109512371326394258143540215246745574491543892046847477744307467366809914725784920372015043323888814242762567729042794024411030303855763101849471705222066147383829476406296579460808439421731055050150468202596880544943860146741948045115981361064302173841041556804184130609059375929310116806434771004226916937780333917742901828909982368331374119732795168874193935212093033358969715516472943387310346325800498463087494318311992184969327549606017249301046738386563709729339491254998611795049301370953449561874748176933847943407178455848752050033050331445850677009492903670959329705125044851159450916205663254165160256734745991695195573624843233777831469500128582179664303123114552576672108879188719681826716448640052915936991580064172179996136101593009067072088175186869455488384750486527115206696419944639867235355576500434722476438350869688720349158501524933593647861187037038718902694790453606454134935192984788202981730761540797421594399698382176711568403848328440016960469177280345506030799165685581822507805484099085925899746937456835586005288821888672289741157767870006504046152399472729057252689030449868715500527084947976133354530425146321109905461486968956934752033590294891305653341092076290076629138242304139863312496766668100914765610752975922973476615434427080577788731123978568236927527988200902018646306890125096198894047972134684669732508169998819526929418032482247218708840986292490535322184853807600409280572449596523680783773199115992598001064275323068528092987285415278211525064423965073446507456121241228682816423164391765054207548567857423792211171420471060549020884758481332392681915654632610201365964149911481629490788085946613132892856750279147875868567970261484615553488384972348892750326151994020111665099206895981690747582684934029385119460866397009917749111319769353760483457884011263342234900947952880723003623926312391774149681682851326324948804490592224851400183907319358177741199400870303920888312492656578951795569134629498556107752125436095472708215625357458435735444027434709918097120886819131236077010433892037969091418844625189721122898454705292232969725054387419863025374289102128933319121631222135327740631540962405703278853494779550262203104665006752038345300975100851394806644822025847468509960571457383337723177233053738121463918619380781971506585068048520331747256017628507817906838453754287699240368436808286045334821757709510256549683949519558355064288517112818684623642034337912607084049537547252152576185984499204610301970409258355085605624669920805703490288211463600505160482280923798436290475058095647018242244395298170591493030081028221469079760694004951487518367278349656417313759115886136855308074419480141079719013848728774854320852349485469521280121635210908936631173421014355275406210664225731467982947301212687604041987017795873878374252789433368695170928693092639987380659808616528698915453288736776807047758464807250172699593135524012176990153677830197339032058250648821866031977479657090088605716053442384098612319430356337844521405298659495538843003097554255518811434639362122374654300306931588017413126018352164282277816125474015885076777505884711651419518638591835478227141698643372582259365471232774533869588217702546056707523072145783328636310994183109900108886377437703369708714402412225485384111333325274449049150756219335752586498822083784145828729576656669899455373113329238190392427022121208709076980631610877299383383610028815086029451945691981255509292408229282566653018318714439327857754978597074413472496785833964446492281376336314789801817313439963992007455931033260278518553756303901752073289695521560319326310792294325981513871243447918455774996692903106071434731632844097512801041383414260784306024659940663603604977799452784458608195130191809382895999503568128757443639826324086341694333570615201522046445102370654039477086521821956134666233087806626942834221684376131930626511378713812519977320578276405205892291998635707478027854429939964999646539676970311864466143464681556920564662561268201701666673232314762467584997444656787592341897110549105890258373815849010572535648893492658107674352178004402577782837736721411700188433143224483962240583286406780150083126215518566707350122461065197745589103523916535739078563169748907035606024074120238454259790291290419949323278570124767351339740662620446064192374962859549804120092991448924233302100980125360353146261529311407698602158910548538099927805461653439485592747439857114037984549105095407632227001949896937394581741686342417050436543311326793597023490212291094090756813271453174789135234482799846916053139693935787238142888479966637409991861736173687513322528005831610150175703374811532189835817749100757932227588178991115775580931927870812591235489874572494821333552472508144641782907682286225259794913632402438617001079129509567183542462446789690600466441254094809222848092281894416840559267022588885635738609495557100335152451596854552736347602672667628904528908552526982080043664753502026039022479322330552756181317970206630258937642118571201174115790891141924781935958396608127006857293888568441440789191933004570868124862971289861627678168432370963430496499599304639478609232430937145783917281498077265894464475925383818050338802866712818067248264193133367967382404928848625906667518904429159333112676201535856201074440031560523325502659582662846130842878366112022863981560820764800853835611364186815510880481530320495197425065155214590299612396628623257192233013707621467423682349525464815474018733272709126186993334874994111705771046787950223758465556497214485501129906176697053425443445047511654997393852238434167227186791457533881283180454679631062505605974975758312010604562633451574548344899748607129784036432797439947029602785098219400895401566087663348333271029394724878449525507454736483474365702871773161510851393044199165477165305487813753645319009554148450543111289695680442929712401059759308739534063334900858912806440964075243072992481328043498832990215108147158291112502294759447887473582137747475395311615984705326930591993332725920282343114021582836205466681738640463439076226217050978889568250955805074714755404497051559120799487439979789463460238524907632896850065733814209202793253386175773300538870195515520885889107351134389865180995685694111282764394826545595017592092696065251963664410701190217952472084137450390479595043883038307165248037653594700980075285459006000769153203781620103173225238305124562273762127084689083191425738843917328166359792950891884694483542566579999013402289176560062050114270422929819134280028521974293375085277403218879490671333166254427271637661376062042872216199830598339500186849632276737354995927704597188238540298867752935082287863561119563825237990187768143506176203735302920627952319439652984295499736341520517831318914468179055859288288621685308315652140917424985681927219989220394726093953606987247627038576539204414106724507732484221621005112842315577802940676921547655291430366628619633954029717790247926314595630783266238797557415242339776030417315893194006635646062218175009513506728029676199794436245193878883369481107201372378395045612005713998929593716759307002310712246714735366329507134455712118627655828359614140754429796262921068221255190113042977038947265448973915623883996253365844489389776754939693223582071416836665347679070180635444207438604733211038473543097988205942891395754737175245017650046220730497266728885297805041691481832130035642969012336604882216284792848801835928404627798139118930355207014447651047688184047171930291600032012128261598050432051305409312702948146708533229537078736315206317784012363965026044566868468385621617001377529047238792290956121230571082109776547077868226505636305458745337304961655463554867214637840646803822663963882204674045018040478337355209042813569210369924138445130148314622316927732112840758699937953177906551857311382183311368728690091935627007108344337667633293599889757671921649786184055189180252293691773382084933652453703793555463146123561246874662379640116206628232999167147166025539931172151506367063440908516340716426881530018997471050688255433007822212251753059834351619248235732425644524655492869151281474840512283887829906557392062744261281786883801523210368602885168654126971698873795244062382015290867550584766113057481700413897612646044347764967533798818338155409828719702094412707333575574643545953727773576831622999524391154288583682729305960933953953510340530154328819755706625813537782617228286638267611194503248771144355969572288499527899769426887397884966944647607617685202542735124697671456022060021977690479708184082393865855302658431587735174244950167251321312171662256301132481850463549838151162104749254145447518822319834110443724179020454780222316263214001882671331015022991828834962014270118608668057058565378330977747395640551734173746445028039309878058373247446093790044444395986270430498220821076697201283271720654749009085029585684046623360087426355434137490489791047570040436795148386451667650487600905544498711594170473494878283685428274588638184281649248066069863109620585318939365310082187153195984202065264251125047219888314492287173140273643320465674068321662814371746532712638066359295486928202227178594326332124715876064645911454640413717941318845828977539117846685625513425233248899715769428081681917039598957790584263986102095199454881200554802029818769968571860893822931795060377777969193721859021248995767522920830520357033556610994660214018977507556645044174521581913055946348073939056012985236284162190331257646403712393749925240510740364872572311259631297306731950438515711531225838194435334836673297266503362705694057792358157898603733060141790921778214141802565502732586172011502144532576707223770437389379441421952773130348295238184798173169219142540430561521436340980687969084466476372847211008500897135694263920614940680321788519263394519045458115284683837606767664669488352830929779958825908573068565458206276532147690107891178128938330108943053373282885391823529774208864633018997627143382874025850750710890804108948155049098622097566440212182406694859598572007246033411582998410416647499589831179388381969430556939875279715787307311946154248419835210631309499016532380738918140860143421318552725023098856989309284073366633998927022700718408365201712910392330058328226788209692977795641830982607874089190985441845222659686497932196242020934362409329593875850302432627144568617333601668680872191403117477820954350829345577998739737868763424595020063857601984448462049091226385456221290080841308121153814988165167757317436900941028480106673168528614722949208396102889921330652701892257147779988164158467611024730103816259246678371434873450717694616932209471424407429592913368680690495510111982398787503730576244935912015877773365459858785803539651985500142867987885798022127223564259458968711171669795430877442959415079902987496908467029987036181531040572014706713719771989025702468216033021515237130095321624991300637091732699105292287601297462420891260658205220967107351853922914274292211170452971019768137463896168208346866723582950188430232413856394121891873543254489998246386747353772139568947310008440393270882958384875541204521164578677913117980858704453970468604607529755151767914521792247094987351000058465106677927418663516074216912192405814982250097451029896872238791213013247107847138296073969099833553888386102688913721766190538668478372012411906734036573397226287916949347975253134003656727876819888923880319160080169816118872847177705231437221181110987653242199191575902734100237679100440074398226605863825331120749901874060870652381604593296199567173817891431704326088416260047839585951148057465394319327908574574241236330535740321154353425949856226561080928411645598496379079299844451507169544379861304063135132852280526989765199652960468757150317856050492259230143940320057559300108428885170159684203489355172018351109083436034190513770500776555027564856164055875119370277231696665107456595272535296384789418376422319916042053102224152511593005927534422791737332510467241305646615930121470935068613347668597816540609055676818457696011989074709053811205684244246925079154969322628703558243941885401644270242202878564593271842156674149705435874900238551659490192086966203046901931095827752834332784045364764608111174842984527355189186819736646150570496909084657662250379035630854754125190151192161932955391569473966307996364879268953767656269749735528317092482613490196172544057194292704826955408800122183663201135844404549149679959292198999886262350063745857284355278879966638413365865789219125631212710415822444033417112663148795557390697515703262815961843958922040672876492581029171736348383985403391225019251239065193027946288782868480724280087150560099970852515597347795593415346379174751937100030339241214968820624700749224833592155423007400466050435781601105043987965420331651083670874064283337630434065190192845221922528886361217959742080071620464948630603439216739152670947459482908279941165152100819333897175770233536858240235999346813857404623166772577264582974602083550043057662639782942503022780804126882329216163005675282948095263212097620514968692989107245880825299278401000934258141912630950405922729812921662121436242388169687989210853193483913899402166013534003890386072360685581249495865871345731169165863961436594158016410770938055102408143143986279023196448039700359253232598985532390575117723927873429169410427172540576338259009680421223357619893085882327375569014071350174141181233417150844031545048928297973459238846916665343925038660215837364484223914072450440226257470293869632264595149017701779261651733223808301589658244441598026010613601898794437947470916286724394770095837683663921658283128373612715295302035973045657549301863446335300863651708101975299454682236073335020452173179225901015303432519600827106497746566366190412303525198755982304979563045241515552971673572472658364057163443750766432623133504370589429049535253274413914701214442387955158749087044774244223224233436283866069996235627459933397485255072684913634532687799257406609211694989072092305551613525724813187061612728016713924097444823768451520339031234477642675878295314321848390796067837874430718618504741432131788679689252565027392730405868003441931619417236479849438405857354241903872432500361246148534010847390672659873379010995555485175909353984076727168534628222282071748481552359548967498713645374992671887404022617982099507388938289031992921081253839424683845532208411846065571532457651283748138155678865246570340245769783695926542826336252430638076025607480597026545879024157798653836722339516778821784223347216958276600373231073820090807728517793107099052410197992187911132965656726184491795762206705710753530457391552421342318385127702449547771229718328280964259822571560182110739639854115544735451920456950206937607135863640317960041000377381260815620340188981919600966245663481313874665471374383634081863877629500999893218267542808906671328869282507026878438478941151437646529184579717430393657265374876258726646460153460629740115710390248575375488163133176216367894853952469722853442029893577938063573920251564529834832572580240139325174996820815509990351324821595426615402143239713531587835834712691659195709775664978127832216039357583967082164107901807712239972404483083997984485538457037251416427473311038106883986083505156909639115371053104993443177831354921849487028709734101266091819073705467538208795486352619426089225347678217082591612474716724717777041768770727602851581144258879140566657454640917302697617838143807070629121634742371745631317985292129836584199408232041937239962918223386113969223917980450939399252621095738119211915084021710166782619669265908052050115811661133464098991579845875203308543223678092383451143666319771966050471049092796870427887607347782086882379832481633186034087873209479097871237736206672276506647513353177252687513803096770130904413860163250082836806088995426716272674187767657499676992932552190138705179254184773201214668772673394170618900494071656944430941139684339483922762452478833879178655119216398670549919203321523784724933462614801701920998758285122473787512667419613809656260505568680590782145724438742817620028184048491574846145860294083277357105889727287246139340720823527213602480509235524771753045003880563286278038853459999667121051673214194323180993174529002003984965910307869756520690259260013555173924596884684594484992203439455801262258768374169149262857939965876474625447849148372776692617582694880047671473827861559183710061028644180218219832588878269841748292634262806029281805072047417686981847086889563042578006041338512071316055669989588610787505298274493149519670874020964166348127826127494974845805188757423050376971958458950119430831410733678691128065969887411659426393385934977795717418783160613011918265616211254061290670277405202774169269082222647262242659235240811558117297881258098940444619435235894133228481759918006174518827995037814140710112488255689533015722392658425419104257692488176281838757562661500175967788585704865716525851570412548227767031113331076860065290649428674657869615280416301671511271453077463537092428599146149664604707868067637840169816895770701219593814813962356391477547242494739979949416746808058647946096442172768104022494464330549050576462343327858837758026108164260527226609668202861031625248183232964168721812893450627728093710153184854006350812802765758174681885900090967057267441887761088069101000538443584271244088857257437410791573166021812329555574649533090143887649510316216229658003226943025980736445900645659082895387251046725262559499283915463845896166908384056916160260775821625937705579451263937398599414879986784551634930418331621939539220546298185986179205480848122873366622417251675223276581243328537028982308751416693019375177340211829439937377768849471395240856990014482322133099870814504468371889050847031600178561643840794450328229529635222532646648756948352702646220551906890877861585935070765540747650403853410051961512324997651275851442224591823393075182492735119815262422981288569465116175033892177989806175198201795754785793310488804038134518186959274993774606449369279402910067766378455651772634506687942344991439267811032180344583282257717171084705601320764948621667328096877787797693882112249696621299742844512427969497687710120574937712976323849505443870850789237454333044454655330957967533983019164228259272472025262917671546485339394231145065933361015518943378977269087498836403948579242850153100050818040751591431930828661339214389071068462614429083482568880582784186852574715452435187722568007139932908582311911191590423500472780258976503828542045323828607921841416398929280427671982361908706889614010352644400518497027612820017712903120531423616837994670073431267671304851085866438264020156389125017986413817562008865174608705286189800368845065457603236758005187593948483477990566051252920928203235232731169581942301885412195862283715371030740870071345838401601985141174856636294192539517921716769437093171666490628734088415359031725275818781772802360229982313617355171277338340502508861874704773962702568454140657208014894944382036841605573862460048849082265086852581968815640998317494559425099094868920630341867550790045561441991159149412509671508915057948171447467468260072630892987576171710245730890358711304289972452197431899571406826333803766343405601130712510581452945475003472999844604005429495678203539767121395117298261046254055452705077048165638554207393871588284489573349646797801853297345191881386346944012674929358713517147694698828742016995913474272496285811737855841944659965522397403240136679195935267663158470337120923369277712536093733442236359027098695351856422980173660185232938038038893181691402614205390477598741232526025827946143641299087170713708899084778981021621959327898994421898890285253638546827897839515203353684557280323077622875280613213594163318371079025994946228420759795620289880436355844455576202635810366376909615258892818895661395777322680372288717575981649694036018270963664530328374190763287359696415024332078405178290587649372682741215633518788977917836645718558487614235314063313368828797234819634256555205168720660685069549325469075298005605892796913686960001760307028750544981655014409713811543806160165177445263030246384188157323283368528353692412588271158817792005889090794006409079081558071269617351937692397015899164031496498398350667473036134546816845771795827965295661536733491314609354789435567456606247375422230321168831505195963371853438081617330145736135570599818204462742470656368309863703677433703928641979741298394576716077060772854860006700244315919386529515796137373357727610569122143600823497407076030696550768667624720820942747184814178962713361926471900225907290017460240767063057337850623216977400789259496346503066947500865216397233944266542940204916762352142866563090148958148617190049698874030050585286802920072667858700984479574963892855764666454425056692875005788370434666233535627405619402047098759172228291904572738722763946017864500341648862273049297299850143532565270093626190183691322668808810376379473388363823363423450387987991820116942613940125997288352577421966821830493215262759753402466973147050112381966614226916031042610105568057337614049066864580740436301233152145600168392363492652449510689645835993462954483879851769093483096242981689479349255045359533065007410647523950113116291536111484907591452049500873706697414206457620002932601497107643072422243919464334082532939664448578563342226942921946897208063628965368655444669939049808280154842755614745685222742138685781667019043364420481661471296207806340094286360696605348154633505073224035788675160513991050111278338167036560684438587367257843435694453284633915454936605632620097711800029872147970994050603700334990361582585633007691720836519071459460614033114699405032105253660570906909467225338954567158604098123335140606239658667963026087809093841580444218600997657020666606569833943085147961184071787367845169152556357617151728784769847152960797575103676227575014380242035125208114876700236795607176046349700964196645705985835191351769763490874759383250436972552781637073801343912080680297923087403773244288356593573012997843067710943702346543959950641623363735371734987307420044376513862957118688193813972891122507143055812441976392563424877296508181974945846069263617056637765248459108122497086734225833342150247556494702328886095935448881966108242160512911788537578357795560796679934039028829343345808285176494826799858927475817161070326381563176697495278921132890851698222122160355613485054834868785036672026854972373862398886586648368053787145721286202863310213044215528004137978896939499054299516515128101912837120645977209152772615479370593711803701997612662525407609716999876185716130050998351139089731420969184447402485639113879222324874125301289568925182275705352994469569939815595592951251593261006317397715782593888515775009189315143446252148456329976665131656183806449690831755849203844905282969545867734704222775386143364581522354658666705135434000527562678691621158120174148289393013833315616279194268232604112199841767330914750299018209527985619855626374596691001358227652148072384011638813391727169483909116638062987617956148975747613969588562069168719649192179119980889890000920439858070288999757988804740766906940661724230155149056944286535199028403610791917957865110518634903589942530316686227578789702942819872025335471634420248017261832053336807548437203197164482956724547303762813050493220252503772809425203002294397562441686743714232647319876476738057264039902591441786472245133710271297919867739274734999633900634305575681619319427954832089723161554553648296566428575632958567385910374055261233651361740050590551182160410766675717352890783240850625752814779403484248837836620397180785867802173167569634343924425482131333762528679217279662945704834277993462789122114134781613529971875757116830317896841524405479723027949434365434486328884640585341605330310792520406364809284018141059626616037794371016455068540228484671136645656019376121243398487680781640398223307557348201767901789892027688431083912081134267888933694953882717724931833785675581038955320909194717251874144067839830428396605147007165418829561032185418210297222328961524805742792028548414055560815373159562282428763425173388826538912207870091402753047699590819452495331268952997724977585475825973722459650786228843152813919067165510399186860080023649137763521954970266785781785553957520827546368760400513901346475918280918004399726897063078174808750062530592011991421457685958016333264393182976031336146859543946392381892732181999865405547975243601030545073962573022049132649007465665676290017528733036619386238919024017197522440281430004969344185251467346567331677392710518047274658956316926692965932356538432911122631312148963225818277949812385069678948350594657507150937816748870404758244851816753361570938830183135992258938061261827407751965612396466800760629818968904017914668458761446661353796254842694351704103696587339545944258911709678023838364227326538083191031804624091069053474232041614229802473558633781631508888806887229773506306156347912121963183568710047072085638934532690524432985863875708258229078849013275208697478625711671791947571345102038848261017350998929800090059842380446617697474874584174725179410972025440243888418188683165077345347505339704450725446595261847485878217440761025398554786714936594104651278927559158371914361891419297237314418186875285954336290261442052555189169400424284608795389621074486545405251940988134808415809069793412986446536964295531428145932765242229960434475916992991310709669825987808601137431173921548959787050639598877811811672877918387594279251780994408829277633013304448296491930994674861889035054524918748122262514569100727333004723849472528051307619190290399987191106273414595958599146795672658890090447881846058274583115863842044120558664292283597976107506375745764469948137779006560619260031834783810068762603896802860715860676824044158690623610093214857370211074966754452755241042931798228532672900633349901861143745899314813274090058551179798506122686049314719367437757736857976078286255035536096499181841442953809698958195885214878647801210748182794395944928574463117980865750534341641776480205944041471221241586989859743203969160318016512016965163494642604491031522267846714919706107856326164173838613103335178679154552135379947473965667964791332101525252815121608419241494872648570719195004364286451278678609957757811614639353764585616872385380469780666833622651168720933394047354598398369809141123080600719922753165105067050605941462022161816142288369188021703503772727264268357163277672181958707379535067761413798893929617210344359962074828945171171199030035266909997783571003070123866957299927402542022140495767621621219332761283891230422733396013940846340792919843447005037254147855474422294159751584860007864170216225907740766516216631767410815252938167481683165348377936155825426652257253666393167804199579247128091790184579638684950629617338153684028434529852068336788195595704550902607201744448633694781738511979321907285171118073728755143411632237065540631774787697506865664273891872160776153889872641533950707728655376280328085131725992382646935489627593948522706266676937989352644780566704472801998601209678718808767265503976275673446476498799366215521850410510609175708604005185464747111310499538842491631172928153053732435389571669411532086625493029117236011800609506355445945183494253690017167742218724604382373776121833919896846762675976243651195263390503134901586806070887583115176687123417950924203008465308067447767373056855563134054608515529679838307335396752598802237919278159135525618409836603026692562930986496121781789147105688926471059464820946054131861881260227451219608054255656959908464162239205730769731125193925838919312781848005611499868264427382390749943070194367996068645952111228110958769660863718851303161339439419958086255703527534769312492618735651999401637250316239428948201606097364963685381032198986174562197369207646969213004246133978226506004212717617143388850055640935986219781587292046144267509741754222851258081110234669724816423294962828155071210435032745766502432943941330002277491560373889032590929252824178682492107135249472060071217548563257120035338137624960022788853751814138595517061177132487919861747017386357354206043331889751111455383517510354090825553463233912655938161517859574363405183930585975486610923665124994825325463340858825571281958641690385931736737234822079024491622599389402075351390919456416239682506797310657888919350094772066151862896529876325842061757173646479781435069925820491810159735260861790435015342949102549486023751012558452932588005910539963669408705701117138315420976376018473064885764500541430149969883535467722634995446002140199220140491224068043448786185316408586375069389325068880009870605611570013086797330069673057377497028219470982078431913193688817047800723197044819182345151525963257802830524381021354955924768439987039328978547575257129993611462357583220739007892391573399801501469450400460741515418500106849583891218191784495193506341756658035640042946412953823029339193003409060588001129049559687597830647492202865404514673119400897709894698190296824745684648607202485177485092564115063367339164670911612709312442321805575334035993494926687983863146400915550189467758245378177073142862359947635536353355344039188096719632419860592735136989616146869647031447569320369534369128906402414931658697587821752729422011715850039501841073724247172248213095453935926315283366180545157390934028360253260211633350674854382442243274955182812281764904809678040755965382851924578666381208489249748840665865642603164280065839679451485890727614359733605131459976978023709742690926459851195491184958353361222019357511133065499459552158042924005247552252168131780599960489536841455418948345510263550784669445053292916122038858336497116909599188280087177879581851881559238919894404858121500289882628922456646888519826059066182059284646649454350706224558863666149207247919388118997639280109064050538254060086247192919439604253997696527341999260278626994224223986085707460814492723552476059433688366049370264101882815352819339218353961893598057707780220691576265094297516947047462247560162349477930177723003963520902770605266643510140997121886806522417254073950118230374499563817111298133084378438633144817631185133149386457825659416328904011367850870869695985186235481906420486191403890820634373262682147758633349357576588221772812202268675652787121408103430700101687127219066717456709008821670270325307455786742045173840978354210412447162164207655715694744728978836843492084648106914070635757309807612154944256845793238723857354677072894896108246388423398106922975547754550775715255067835722538515871265956130371520928366971568724750158413501739653726595614234738572008387987960908853716961602989416377864649910795965952547516039299202177191772006350902751732154622196226944706147073614662683687523258613311198456729917070391832381070216876319934829038668728369870691296982514400412151426225306050138180960596618029599263074873009142554302416064508377047511147059484014993626203846839661460705142107814274063937369366948784170958940997730773161741161607222121882288204046003374061320358952861488495569761745120912744145035347824045701020150886558949555274800877543741663192967780317519146009312079252820562735445246425889212952886229050773428822577160354767231407411146313764769843128323483084174020664380089811642904055467588666086226832874939619657639922729332627086208534240235080670119569680457673620141521723709641614937949861100475330541932167006908317624366088510962273258215998091698671621575577587022109957062712368487673009055157893743630980896410343518752981762171658112455553697950204408362486029140659532207509379331695510032902504412614264930108692787533531883604304390128607677407232629786865365973519605662726644282451632785747039215326584705641087206864774284607882539379320850962466922992646177974853740233814001712393163425591773990817789414327803084499414195428814444426851284636871012687946932562287257679060386835433080035700464467591625535484717253986409856459231717630526290030846178866443890413792822438643767145488699110043254139411166705911886425356819611356634031426292727045103989956101440041617368608756507213187231536754452872177475764196567826508682459572663662515860825891634487398225087994591598272842490744214730260198305158715205174833171981802422134669335440939119501432665130948061630581326719201551728873884338925168827380138370849392210944279113737652024137098692025495518716553062778568891558844280675240088499271232540574454211629114287188961083978536895903540374786187513439157466111736288438709093038546219660080719767569548887152569926589077620529543248230381247578140321701901965576040172086048153019569048862281792956784445800040511163926306081052349805518447190519818393696543342260374921004040359636244989028820821468534240909967102153845148057181528891047302811676999730001705792203009883545255717872744313353858603186729635223378039442856249485967475758638780380758614652113757742973946196777925947897039839869034936388996416591312571996268652153188425378602107879881458303835371802674641037952113561455446979040950619580627978348850847842579308460555280535804426166399904922001025574732214276246323684024958978281540994649233888072273847586808032062583886368112885642285272311783917586882661260239592689481402922212469889400248669502475832071309098565382068989016042352418686169887553196965450747448523069235141029544032636315375015470998834554428784400367095459037521527721234970743625846757202425647880464298483936746879750148790879469106690665696413320500777185791097162658976295287184338622210697353860685697793223477978795688663091917172107363294652921473894074700722294291587349881585724270835578472360954642482514406065949740036936426677236194321563627097924857797188106107688164982090942634685752031620656849430588281369825371019512783517268783944478067854468451480820091335385001750109754324172261594805338576948278094816260786298975258619408128380790663187098810103462397995289122718538253921141931292065754516364064209110721280251874731518211720844400250946661823649113592194148052458356391937687636831651737186526645964755107710016919999996045314146461910407660624967855131500651287931482945520658753531080538648046894433679305362385623827112303877058399720982769116477571094813806484526745103154815996467577676553596325812285492539950679758891893766590799113153153869563861677289847430200719263456376609810171375161579076393001980403424630897059224122026523874265890544794149266455780831594624834411824767686151588933677088349678567948601016128777140850451872748274794407271645837848821893939721855376301107467470195433398094655334308301269396291838301107315573191186580707397647722887212535063170575010868112900343262842837048137297406408585967493257431508417591849235401078095218312603096899865231432857197956226099246137584728694137273033061881731067459597243865715148383874564089631828924962652925934782707264149692209538149789729387773476447535776804132839084560442242980919154219037940867679442142961276602660886330751661811674238939920787743981189638334359039722523815440891545616081854365367562621144172362869049142027366680162947031567022523614921309024276521350128307524846876031333297011983100863546430717501680096735254181514192013878784665411421603469408111465873286517322100007606864927890530439191319530773920637792419423739832854686335656379583727222306198224600172146264792531831122143954062668705652035972978525798093934861471196696074835688343658662889156626615016560505199774825197519583941522496961048685195999189712461965179297523079459843483899179374307396506435469875489999373483245765451424111264483843762251121394313087698372553025528652992948041546979919916899610301307213376582269919634660668451167840540312808788074436738434118869534377795753018026439560568101484178250594288393788338159122673293345706793966838402235591272910066213741980477160135454485037043298450817258108343083440134771306417985657415186833168068414578991045667443776624558841423080855501930966533892589147950067350014861096986764955197698052395958179717843297009092411691597734330872401115164620999628432609856872752842958431780344370471738807959081405469935448863785516277448213413108579737080683018030820955100663843598636553973081727726261816377304549244228334952626146864782949115379327325078753671551934255738021197622915955073811720811069064472690518372643131459248440671662574741098130892985397831762552717790870238093120992892437930955689155402569361440217002626645148060269930521220201063891309820271941274489145730932428774602876563869075318412684696159117864125337871092534268273160305659849250067938484493345277455313342964371822197755352039277966013675369514448742390505631463334682141779853161967779193200611630017724744540076425064523268473303655966178533557871104739633578868550999733406721293444924056687817630145336617046499871602453923391561423671090229802524219981621130983025369376942998549883820686607137730564529655780036226621303452431219396370125483323022416898586679103759931868216259340226044043472929248102956549763638788320501763325573512063541950376459121276478330852808499596633474326129978499570421621098054765002463952721407957001518675109497138970610710569856547822899369991085495582010623786556424542133957300937452920722485528757326626024934142181584866840204566158181746447541693403292943681392499411264477622979899379511523211258822932728976163682601560944129766975688343881981425832680614093186420336323510655526662817229155418596621393558964844551376413799070073870360785183390191686700475346530793742387736476238670666975380582486181619195770295326441400913595684162810910459227645828457724702713225445002751700530912881954241664838649622735838699485568244310666350703710871544442552307772080263366250750299592233295696132063421520356165916298263923367498689705344854268209913760733969709799521560030783346901714316164945673472550839289065001600736711229267858828912340070660565054557602257847249944504157026921247095537946475732910630460587627123400818626057461528603578873356205004538341224944306366738473723359646492913658279068106527701810849377693817133155364806644749046337450056103932273266498029982658815048338604884937869542678202647232656832334931981127498847257000591836286672297889872922266970642517734303336952309874476055810674862574318375566019571224829388920021237815640917155661429535615958744046445808404332934168668026898689887450091596446192860600381595327076154686630052401035678301822972282246981349759998378231064740966220832199574557089754983686490812533264821120582992026985664119398870226729800197229649427307914179440111831114246721203112617566426403123978053035689475797965054432528648755949613966507763948912502854742186589084812199509684746320966827688231388410614627313953204665750236697249109427139088785786298870099541418371704146545697350846723719981984563978943506291149668495254853876515435348073415591570345864220673274492405415021063533646040979664126473247396083983212305939522055674720569593188404025659404127428824052423889962771762704721689215530862774632147906247942487426818378857301414265070102655986142874881852599412579766921999586776946928474643963805434935810046370432239338726166376217858577215365543690748843661117423701073437855646885674009436424228056750692703652272252722494325338339173776862848463683826869612562853903078137693181235138759592845026507107592406645810036414207679186738141318389685155100973711473089200454226017282026435029405018197029012961264587221727968395165042763697938421845770349206079282837950549970924896948855450594068444001306999956101629283607718727644556121548601462597495639849599536511674151329400174783231017691216112496093987815347357900495394952098964141050366204144713576447253718677350104065033147815476167802462218079632377327433526421562091010047163256658578328909294977542614337839592833563471579502487234001893262669717437400506095879684381999260723109765819947901820055487183865748266387314086764953993218672777042265488562741488336988664286237113395576344227812056226795122278173209606090999689973868903199895241795689041434129416969420632713555149409198436607296021124974604111619284737548879073174623474680305181011848672043025623289090609114946523671341439042235018031939442771386730801142544527607581179170722105179281497940196899334348621807747760051924798765824301023795110124035958172322791205139369848528256540628876675399702200062315014612025304844269769809054838592231752143582023842687008150277544629486318696830154720937983715422799342070247132610253613830318486572854379887034415841881963610969787083657010442407238170761286082995589899054676747073946430723478639264186912400097648953418446168585695717344339696382208160068348968037280808377682443945005624103538200627075727340152336569730760321366992640466106793198521244373498483468849810097484116041399001471563636559246228508882426471047051143427097072301165407950446661075298909003862893073202194324609757060163847391533263201093338989602790780372334669625280046202855418487361749526323706623468312459581380837841125085838730046621213340311957113062838477652706585068179852540849534876362903441737765500724390449578034545018077990179411008721543529444122685083563419505240185861160653866298636040977733042828681518926437494421315962621314901247405451166644107335868690696742962847544359714237975014598549081220890632009650717756766075042561123387381942348243613852851063760027448212941249053690758457873479945510661101033875506711000413582861915934462343327790009508738673240317223259029218586269821263287827444578755003172112453386013016827153369392879206051505114294366540530582729388449387050415992637499079847295149387229045249559134028461906529630041627422833398917176659199787726323010862233514717887415568721402006855573668010766752352177659106227983630125326816080486186381680595211936956704952621823603383272179807873742324376948015481480068432787872091530784181059776703548506767456531512667832342977534429843822576681458397056425730570450751914948757820358750841042231465974326362227436111867522669364600484458682605709048552748892191996554470731659337337994037077340032601647527327924559138011470118041378894676878074225341542697925203792588143959354464297401796758838441733840996966539566203812519557977511106754474896127424253721593499710760842439669741867687198757090457591616353086401548638891459330653547673616454947076166728021004264243659754156144002358624697059859999226424562000992491290680604176595707912887285821255903887475770391088252046465040077588741785438723132980778766310037914596250736858993839805290504514168883868565286282070800317670032753171932944260807394688482485630544872481782822312584398685512005409454290776878731865209619694050171836171347937728686821622247498188538113181441795054888884753273187062867812644874025070272814988995621549782187694313599919701047572501899439543671257418596497324723064231028314346026574177901668534807539242569808484283813411821062887336887461252885945611592229937030579448053195822926423714257590478237869643950308100263435933010004650982015288555990240465492997340468701068366829843475610681474217975188776195273138391719674162486226337467151018623620681987883945767437790074387101478368968774060160093647180456665932934927255813370558011737546793384051215632653507632612960428023247161974677865149779135791904356288614658378022222509396762105871004581034243696478397394080868659013220637241801345222794455985667226818865372769000557484288232353534852075116674219028603113809775613456375558810586857940433793346906314001591449323446530818328912357929733555085752032322835975882255736784022672218355345386772843561644229359007920229105837407395838286454295020835028944905100434957801749691388326822553863262148971524841314914045198280184505990354780787206104631931668565472094886632379762369836126529038879174478205550521108536297578642481597668325172051820966004556034313230693711859630999768029017921039818811423982286750712047839739306854422927370536243626338153823430117884972417354195304326854192921711196495603843754670766871136145083688851239099107029090030949034690855524942627162394885732154685028694004466524987589727140020219976459920713111178497266798546039509188650388255974170846069263635475778997141168845218364493309791311426914045679890224486208657631396736612867289798847194336741270111485035588854630566395676133045590482410044909591752433401179378665852754682646316550023362654144464032574361730876806993873231352023399285277248812210511130563308654489146987737155119019259510585249278611877312780873994305370398171430176425710387652864508440054283620833140423611011775644821596483531327035670577482276806776347027786003141868153034598614641410432171457747593724323832701288770026164872476497470802867812639461499279295617972420367670326569934834332761162563315937838453715922863269111048947598644899127220631389860245343756016083935376633092295496818261380988222444571702621439547060175386108448884947810415350397763542825672390596276608987166794686425158657889877902078757834406687921250344273125372759217629573277158352537071124287044498481238656493637402667818370607349311952907775840021665442924027856238670848360076093132625747681378665072494162556268993140287452078130116747951519745202094905062699195616292048675092194819057071594555967150983421317316916613112124181453576503166621856787648645031465053322451373441202819716850126281398087393412222043559062580142551985053102896395518723940639757292278589569900270130910307838115053720683965479061997571073794810620906418703681182768552362446154786827089380200958555062984881748815335615026946310007937612494718765304806654069847713279670486341758774530636884576608136253304221383467968831959615880116827102755088127023936626904721539328619932646018286981584738638130812391919695180507455369349387613358154713483344660605314427120818739910985894517204910875934097505743390713086263677327026595936841462189448646706665047349967027837652358090674511430606600809071544470358977372878123963972374990921318656093120199949767057956593662601914351660221643960668643934617065025616479950908643744585689511852478169262502722290599161886482491298234145806012953778232397001021339878777518175003385352811735334687111390725800391905980213601471392039452723908797723023122337921192396946819137273012102734773846025200379891595308783165612742148091790844875302382520971497666998304700177758410991380815243172638760512456133560174812396225546871134774034667261851651572253286349975637026385826130858336446683835981552864882312822925103680102075631295459090540901691335228661125360061810656744396735679901862583887226650629560641697239024326713117887920684880998331286190746475391184256655895705085532340165811843794600137541103335554438714430660481295667752866854605698083210263960458106689909539194920038421271528992604624292979987867418504426941845431175356859667379921475255658752381723318424631988552558645122968773430829165394622283557183813325494520464661984399537558158405060625866286752693774731403169762944805796133446262340624123854983213951668336807554229797673627443113161231365567519139896845193537589397282569945497925330899076760639266989176950399588903964237584610639579774145724140812422367307729360467073976771722019690056169741333238805128308589484494192011362116188532328240455683052360824482760012006265614416358352612292450223190286448370417165829609349306628586397693912898390029754890883537995553523650195601795810252858393072825667166839682602993096533951926634345921864681248263376651687283533712129916858439086874857081482187374509121689604757621833693813822229511855446029067282851522040081131669945306276822313382393287342545102393494764157242843388260008556791088138140385077189842821389798820017697406558572077341011502647727434087606907004125530127926502837470416260660833483147059538212759608894762516354309334834409625366212884583799928085915567428880413921949082478473418278179240558703721378898608513519242804183592727121516616859851534953261351906670757111214432374727792165213666564565741580751984017380427578800988500009777967756398914115806882645271801748296648900657353596674743648077825273894268754413926865008797864442283275502603954314981813336072178712712223030416943316858985182540813250033726095581950926396419892688725318760209354641460149318239354267088566402399962592611762810021244947913045175744430641107454751351576750034392694167468683526240917034595712266262355401194085309407390638818710385245221179711320584465365719605952809617953057345886987647801949293756477775440222376704390578073143267472105386528418127924911725257036494968665362908533919899044767428565885150536762823369191855806858807335122301246669611371487699270938358588335650396856565647055892131995869694657875110073660513278558109243771621512560112820885205751986611717723251668847417119674470443917754164692386315299979776173489310719639525551725570688031246806716390524982172519519214897147948907352870119585609088024436463840148442359951391008124454248997096979886228064660629375099132694021294080515732370796132195324551222396417390444919148872472447646649527774248271780276017142626402752553797967273221473492967994450835809236136276268453838871092857965735385255427384704949092817817479436180633312384577433397824677451441549896357684759839302214689779793145621832021747777838137143969334711425940129540437399722662283597782153646569607604932350108882670620911476776477522404631133945836850511877863864937882471402892311996103401058049123885994478714382405804423336064548651845288840793096464453818960776132011004614926600764297602735957362097320728689149672618741162172465296630242333382798998246560766435070746744250113334305374895074619089455063879557503560917071942454042158099720479247283756788233263076700740229908310287393505759619485282449329860154579551258718385770603580128739290886421176598779666134460814735200294205773789204644487049123655814057969974138726154843018815721651650024140608450092002646622371156887935130358523782223526716178059426979887042183450341651108474215849418121759682775311663491176430741194077922880950759284026100251678514557497288750079449145201614657448162861043329193145161605623008276430396871807523364066257522841596552746430657110663104949602847497600108432798699164451924250561213365068664020954760641000219135750041030266303882467911658965382324322272301555958153799278597052390706842129796087561057149667520149289694253115241857306671764459936165458466933777964400359284488976822471596381146866772770759089717821760766023018452078280188509422464220653552873863831365977244171389275926434169668623495660566793932199594839073037927544172292517953837130938565284934271661671393244016151228840161413128036164902308621517981295922020865087538955292928103947999301989295396300259557070952857374074304244916454541746066953251162460725621310499585987788923405086932187028432194151051339216272419717488242912624656153784698956934887597284960914908226746121087637532644200826757227344818242505324907512693124991258637195915353707690224390106871470577720173110810766996539343447531816100281722741195487543627676373163401771102534875730282082727815864024202046790012275920325096343825769427950580255003799035989555497285810875900351837858231881478831898154559062458791533857555778341015905063844487934794001225800765754740679503981004340300459005375338652579061341786972290020371519322629740730194353197967278260663784474000354171864278120472367958600456941764394686991755096467677095158963157676927880404670348925171740862588261744118950880140511553744431368895858283585372755864216759846089781163761996668232900987495590988144137789019387122841859251345426499426074133263363651571126735667822792883636333326544684688352095612504140543825510292841856441428546854619724475842511982508133717458759901665106221011327162664016134983806277818676642012639223048331433842366766891084905375561712399130906541128032292450940114706491844365790489344898999109786339801055385023662063629188959885130720471769743775943176252710306545074644331320390834951456568724730303557060611163871336377804867475797101004475502884576378073469115050054067995780117646480139914375754171829697280422290325258312072378081097792068600509983915248422011809623152065007060411810473149975637855349713000223627215227438342921574469079831427533718336172916623107808063163621819757015672536305208656360308735841149880732615845402984329358779171621700058907237208366337138668897346136402197148509344836236650065509035183412020091949038984445166970084105674327049743394792068351656046025053274029592606424640027729553428358804894490490628033909744514415280390425198308546287762694752173580789635796132330984005053446078305982450575660934275062710451680461574472046754255613246093246932687923216339341899947137718745030670587879365898973646332621967649325784109667002719014037287227962071237256572008525119242796087234694270239067766736147337592366394351755179794142300147142398328678319752867123563764165987008730956016070990138479529963430708613412145419916123581458674287893122886325063837270458247393771482723448986535300916730081636799770754589274882390234762179640344245947114113335392277912397089660107141269843546409490342029709968139354106291119010276522877161217413399679455017922397659210280900562704441795156989012980442888582284652150887634335272645576924842513084754485566933538577275431046296451510276047542355469014622091998208538885054059693685853508705427995521183314001389085982858357693794678968186090590707063474256494183511894160966313120754477347765493391374750291647002778738365158632966727860715077595659911182279430839322212143865572418973755018958465559752916772295397385505005648156433066263557823963406632014972791168726478193159631487479728782374991261211107474524165070425745736383782129744598546529490230928203102690329586833239937716048763462394327004428239592732257635493607486581620557436342157042157391362239046584628377575026223575044684602784833582592824746343665128840989041059986556125490990451421147659345738722628557981840465816144756910361191768846456789515955946434174454957481211073075208127836157556205916732529278591225054512179287430460539508227033363099561451914914887368824403878451154143042864347155097420709464919328125533253726980849333467334441327353677064015275483312571110109265317617368154857857939826188749879475408723465648011527308179410026141341913697973861276929820876850899911760492893895640230474255664476408327808732929325279473438874032852160106696999919043940048516594739012950001972042596792818383721038377371908107103831961623207054449672972386222868800723271055447931093145257139701803156587552858608876365523332614643717546077464153158098448078537741335376263708757938181057484806962578205729292399139009530739396755588353058882424141848505940018049268691265886901930305770572254484093925810086380155143237384667410446105937189905961976570919524288505293778512950020363569085087628594720237124686989005406450693058975971918151325149926540142325094217504047237537976606450182599315673562758747462035414414657587596807002742290890330301983825670129429816093167319741357680973108379628663175354374628775538656262588947718145270718841782922104180547183137164667024441361791542901004088110052182981135096158208899163091555819781612231365965682144497608051190322592247698929489148939604527025269267382115063246127709680197677776308716235459631894120528845398326214787805792053726283106130974780746432094463079049387054546902053021223752902433599433715762852413222690142443109394923894708221427785602215184432983668322960232290218804565881407981334905779028544959721173527436971008248958002120259257965692724969969331687224712853113955619080597514289567187790950064903965190190248569757847209543474596843217237097358245919756539445330593691799296378071642539531000069066818992587618533809805667756094342992042289899883440651397992777239443450703491300369087253605656416430094709395383568534201068965476869953097271049053974391485790089821843130702176270462197542179359509279229028473774647957458003029121182163312577311159641964348204918721586495870847912392397057088172566808949726561153411040313081017370196323611185453925872222404857608410756838045208538358898750155553823943480201113545677011934856352532301188568373610166128154498078766996076845206399617832262809176041212074698135636795621772771883385081913175054568731199239816229245172748404189220980600556833377852244906324158625640420121287764393102467409515570903493769484673091109877502676078340594819514164008818115669126537792790191336959992214947065697167620175333447804338036946756909647639815241447402697268873138532037543300043319980951411846684770431724402293945385878816877671181234540545671248159889198139231812463800260369836829571909671797760749521381895132291268161158721784062980164384505327571019963367236723822595789795202653533642580772223248102943323499213785181058995798204155849277429166136035299683643793662097772896062040990025299055161805370968352026614465445728188110613309425126678681270525300968647386529418142177700196916216541437034512770190354966662491600249142524146511615463048111212371859834203632056417855898171364490081674103238750573536548701154307678045745381782116760464200359474279112763280749098515332352409729219943868042211517794354854699430890416319949426916009611692374867288032433231894654671614737336450152590855406088953281908945607051349368249097161526985500021344118662074198235325742564198539776051008186777846186785632949714972427166847600026679122265373334422882366736857442144535373414720478465044691903177495919687859292062119091271057449686582919882902481488138813058520964846979120905884387583234307004809183607716383707466457669968998146119054242267030255785811123472334333622483307237959332694562578401136725611207254260825188858214818007788423377811599537367883513120789597950951821189107661864500149803662224740583690072447548237149060648663671393467780747518994735181749210430673722065079291981540066494241549443003113763889139033266796758785141798815129442676685252943868522802842856863576652716847243640671472121610382466554578967604553053102306896673165742900324205254982334035224993327229666200184409182500397472579747582359644157441711683142887096974169283636896838878689862683350357166027817364264547766426747000419902273850285353465121606746090432597249423240368191540071329718041407207922978687683466440596674003605376233552302886275648971964526696203650392101929518132105725718020026234942971055451542766925817149341825647517383796120573406050802326324158092314518213334428287772606391099497215183553453281853338219585652256169114173573265122582143016969793669790035510862760663035837801756991764155795474578712274354806681418232883387116663078308635735071458470337337442971815960464216024081620022799265820479612135016631059508651960692058781660130821483304004034619275973754160770235852626412764572448259293218189772419346641589875466305545533428092937212439045698494576149219100361451658829065369991368580264649523625229856497454855918119365444337140400733572815299804045472533684773134807571903073293145250755213402330879361479959618840537832511786907379988731076698447974036201972239177913636102142676263814087263804069066843271179337274517205993335337839760340146306141778737745385785748216040501157221787914892031131914819172383237558278788691914627711033422170062645751268276438836951735587203805044638111819102267856632051803373760898755635263249143415444120150583929709645762685019758343622512947175218103726773791123976815139521235631332811333329509642780408323220920178652603674715954741527246679142664897204041485490681738614418950749221270917635617689980298032245214785945602873211086354056247136521701881341455541291450830242218301806310353212917659623176532690735920760678290425989610336992176647563202391303116555115451862996907917657713270459127051153046192349319399221441997429833610383877015379734283419891017320245829442859019735572161928825172012324031837959802427716498835618768115463967513970953761941698757887139559052911095665774958391635895664867877671491190465165841615275804840917488377875570577613053882019103679524048876490317753149764002206770783923684673982229990584591531556768541315770547460389184074432427789273581445554015145952942283630543833620318034158600905789052816515016917422030469190052080798925833532049024139832619862963785356342192069463507776275347466109248135274097222112165606700040065585063628356964107235640960723975308626469331704732226295937932806566510255278200617678094359276760235964833892032589016062065320910625439498700569126736158264740378140496191465728248107111725459711336901852488754054809793473325152661741194351709115212149308809779465361701188335754267010464868027280951951542351367039206534480637662748801237050179127810021335286365310676603675558607794522021864720172578980822844040177593361642525575069739593672539916761613761454469633475012131634789220506952419784434716181901137219952902782963919606484356746933713878698624570867042977172588646851567254592657611971032802213265872350956411992705361749555068584583794113591175853775034565646216854308982644454983737900194886887939611721359077928436044841006479327973575106905799294778056484514767608410441338915703412328993058650877971238716522926019741934353585424295902434520925810470319565997317398723352324362159901212010917392026718859236944127893134889316584772695216954946997044945888615113512479924689780252453169669485211245435247799454667778753035010873404360999985605738431362020473424588746233050718309639791702969862148995768017031945075079550943134924198114978012851542922579193388653139325747250158782927651084630025800593540380860350313810364874507479121481166564615822834352301178579448370312777192609884557811067089464653897792343279926943258911978673170701443534614949921082619507677973107307647098064271177876223834644455183005542681158428556534584640985037406052154440338905632404805353023253690433359246186185019181551192264389875280074099567621877647580110046116723576416772947347836184718456928924375547380640113078637855949366246205578759627939934772230840319970649372849054214670425734502476411944616948667837400952680889544993830709710594459901026269233216329152117654384721634711754410501265395674257162532497354493445603672099846876827111685562761423666732725727372171505078343521457906052661848753685637720992050479098308406403468231569520793702390230252172614117132487136885548930366223205094742039191344652166387629692466383170486640948959822661590156724394229668892478099121698012279263367999639223894620897450455682568780602981821941452697041092669424279837021691647263162642286831189424692548768185314011055533262477699986925122857570092670130684831591186228129297401774584555416121540566198696101592233405257982735488144623089273627935636008720202423467557910856969504623333154707489873178594345319748618967584892381117202659085235152160477524658639640252168089239097990289022323979480959907527780158541404431679368651753016887193365040269923790375483894533484923961867965443340746384307334967068671504624406351243580726155909858179109416042314633982291295104599376066755279600623479606729271572941869531456995902571871932901627054671544825655376849737684954431612572808344259403565127734740980620378880156563299725158720809053431451719267912923424026666916103944011429215465677428435803175627295489859897226697899345620018031698749417345407817464232154810018663476160853503364856626928883964796170811122606780899736002456313795438295511069735150312921165741526344265940187170456185908743305849846461558852163229220294498944534528997150468089901602940761655556271276560561698141072580367925280559140881372381121960112134197598770245883196264162518440662099000836720977075459948970791087322248900741320727640529635340655162083518560409137199423121578794402608169088035629863269769236594370335098506543435235945420038758872371615541441097666035559079712103293650684618146789536576592467316384306843361685975959841299872078320237829803529714274646776211033044182926564061336307071749773927296004061669546655682230853685372734278438082608265288911310099180614040442888076884834542734258440401480000866567236143111768955389208326578774649168357858666431405720069245156985464660007490063770239958181179138574985516490674690621574603759885287343277954125121254229231317606340338212620933370318804909714010942964729059087266261088465723704069036419593815455730795986263821008318152823534288388144325653222774010748544722453517651453460687427221557759995270966851781377854513802307475769331501430516058359418760862332858372253501142606498270119047168591104479706610056968776746869345879437173902947337243675367854948331108784355318599864196103630305070351951084422650099974461834281376070866659127704324286509424087388914943995523069210789972682038833675108371256250545173772630853624901448242605491866272160477123609700129935801651614531254938820540353908315510782620740359989789273846347920296202659369569426501296191626353107385001167055015119347455560260771893891229272869948797512465915297764023407718742320808471021146844739152911406191465625834305978671809246105525772682855421630493086496196802197319358175523437242398132811862223582249728233228643323046438868167531607377480551375181468344526797092651879469201086501756133014923619849068756056052748405083641801413108956403673656848149181799036874879752351250431865942906868856419966958534421426517405606584564484239194617092731669526561387815050509385856511062365654726182940387558197297580604986327199861468536976916726056542544490812530209851109474839802373756864131247074019137124840551777262635141794622893204159693239404209348814186836671519153029565534203636933930931288600880970831811264760276599362001676638328968910423619618596934694818545006514757435452730994010315482275043410215618956264210113438320608912052670741389885617652835860927891123758262744612283250334772413996963368792752523627322112864418375343717613590598512148173338325988579020507842955330716708806176335638644326459283218791003952916792868926150005942478277930150444712659207286344908896406286222286088975451778923658021503483964995411754572725108303607706584054261540093361297430522593938585064284603113938680786246619814190462574506985250238466720243544150429191129136337190050485382948022149782160571975669009692610959609419621393687466128162476342927591721731236958724746923776716452230816554826797110936000447241843678623623842788186293693201871448771384783680312646654353583509789514935544460336982339342029724458480319726108546621984653897366745913187452657097540054427437489691989055445211395155264255728181527640512334313916064646874452461916278825060316739089924692504284487671290596762712538289958270698156973605414517114618260223413496282600768971282712028594484995411565849248641579822685721922006101988920388609827836335539774006380518665982616942112529777630130281801873450667455352907689816661896621460996998024608325814924911224405288676813806128011461951798184207765184856264289116052200380216895615327581350431284823905011171832699808747782456640023160206793973498574333701423890984291026373016925150346173522651749755770212422798430723515477184461759804287202796680681627952271769833858282743598533544987411355338694518753147205706800904580486489247018420720232316398411880635832105774931067743543394317533022095794554249451881788972167439538794017363559577264076958173177812672001752112764354282180452661441936745580319830453648370050133074247548910586428075902852706524638044823000390071187350083101557484843005157531509473584069647903470922896818479526369904773936418246693811689488786461909850098347979138137752019868899314894775372499988995639681367017709216210033089299610353084821016449978611493488819666879140062339014969610428544964321214366398868309288728308333343620263077639846634922058222328395698719785239669845511941304552298411322965040827379285413711557893626838572712984424690670437346087174866357128714760206519218994572432984223221157418766473577588388496681865832390858142235798089122824117669659088896601845997999404705495835600472006644232811292401182113599800213422683531670092191653429608065979239910117709724648926291025277371859416899436656636107849129213695559527917450026578151220688595641026197988727582478777060163835785385580243180296484045060255743287008901820816177258244564057721971435578174946152556095261511859660244215824764700454707259321287957094974054376024174682530400508385713011068794661023862311265239392051163822278720151395377093108783181452924820492366414550593206873953209877873912340508429170062642035216562707922634374862461523516680483107547618422170105398835622696372313240747925111945606452818430346853442247360611412933020346224958802663336200619102618353325783896284147575214972598852845107268587835796656570318664928459213740595531525043974441781863126260365432144229491026514595546701810978603621650408197698928638008679151084615726745230944189750239926127823354816957191802834204184129690518348601441394132435203867763171927653307344842998151111447053473922565235581054377610639628876716473343287412992838864421077685891869990279020393657316020338961206012464618790414132619559670518265437950124400315608231984336965427468378787276703455369329988709016049316056746569984176540800252382589430098180311628098804996149350312784476679237269988724548101721555873762741706772658148781282426122295489203431800314881695155808489489227275748643653629989971145034314416558634626683494445653206204416338283075036058043531968752272734760214810503763549492751281319037010210193675262838989234898289411671392203346117540421920180062711095386310025896522813399033619423526990325450485871733974124121071376024603246416155954836089106006883934340032694094450015726263606736501363521447204313021556196391329937884828281491583258904638649332865104050704853586931721676944377359668089379422651049531681058443109133262744378641949017062755511124825864784988429513652738410178825049998318165568283398245359558125051670376297290841596077818562020523818862707068429709613859517810378349074825813972781939911688729234132315972263250953802859673204016950669693576634433099126557268816861892641125321563548375277069883217852371856637207181373329743706783230659322950925836993066166412075947837754469162192171744350041567294300131521131748526577047433144798622270947193243047265094490781003491695369009040004949616632924085165829146677937115904110745401074364816934821176529783985430195893159671225331848582684230715099294106862546718311663545815870443698183456859153595569828648038857664170303334092351963451286998722406570007366527477485401798791074161593468740009289323463174760026759687345152204582476461041571967383778725424230749009105481370126249591919303840605473687029961535020838381403192891794961304667834028932106141672168898570328013483010267064180170479447205215875213603819745042080459506690826270450840446548505215320742155589652651727716629373947673410421486203485797833655338767178191614527530362513702958267455601441996663067265773260437345266958729655180681542327492895445836728890445403736173796846601519826266920408388773533486158471293488731414553131627877427471021579733593418394267544793442215267190706285771987146710884666837750702778956847594301394076542193905567191203928793020934732198842527976050388700093200787535494458787741120462023101677288249282791304901443518459129327093421399240054952199761472223816186697776995757905370939063146286265849868420967874704073365822425043337160647690140490327835694379219386074077770391398785651955342640379850649017917083907434051779963810213013892248843539040500569559010034615266646902221648992834833638909281029075800726794292571108998530555035822884128241822455469226646127583450982799846450098902004311521590821623860666641685356244833519746100611405674921555547080376839556406356218777034445006152681634941484159185445288411158436941160664701024333483182454445511435566790136263842060238588434121052579162412013948604319015732792911409552116130956969917566310501648956668110910222900495044771147916864293901781610452683472856612178409874657879961953582512017694997823177757599901658061586064302997955355817804871836290107872667144157789510755794403534391373019110677701055273069845761754208087780135349858337908899123815733901650124104147111119696413660691686926154816791148775912406516280827675906662739415960498946814726622442559247693927950041013685762583025056727538703095762917819472001214535646693924764452980660297409249141751131608468276676738994428700198306255545336903189091105010452352816974396337621880652016752736439833955432378317670493702979201766220790019426284819352851620838452433352527265460329232353389905746858709179879151781410466927371147254253545783189421520741856574757312110359849232015983452109341144730201088931095275172566529856386123589449556880050166833721319099770628938651121940976079016454951473863545725426762062949756594517729155380794060814850868691760560851704866201738230971569492001938021060847662686375310738767354233530755790387232234443861834741718024158346194312113065959850639340274323261699894306681766929600329200569919988746928598471201449095980344881557258311265181738953656404072427633989568346271171816064597885368076724150001003057457515104577716664135921000852524200174876982147610618649470207099321222266625140758398610263699636338481199982688971143317452811451634329496468002503115948679993043215179388659048961809441313778900686144426154534264706082141734275402412850259898776819779182700419983472375236576910969358447814421392574117761716658316380152951778768153257695791852847547141550116928805167703671863350535313444985705154718056177629897922247777071312350021646243204616971550656467962020846310812913921979375772861051954824625659102928626817644039528900309891139402422732947602533770417429819900024529153659132177210868041256799909899370746104766121478679497039009636709098131905394836785297511633625417118719788593389162536001782499444537094489547809126330142402522273904487436598574388620565517917418541261828518628342807946035762332117945100495945571880450173949852375115527132109741210889810420245311763667119743532606093208340986261000430562179152469807466928514727438866966146321497283753905769404656110403852090766432225088790592153807424231191773695585502932537281646234665681315912376882704546936104014444737548376172301816875140819440648705737660852527638534150789582841409591854681446393149139289599615763794423099814200668803154986443973630450333021502733826251258076522930708538139980086967823069659612305500271282397321415354968020782177429829011610212675106008480798541897520078992730160978764392181514159612769683620752500907973554537290033578747688884083106565590336596700080663256193704511377158070798322687980090719840125842475081588391459570853566958983289831273663847806988078946292415711612656205419330327336965280669925933022939105236008154341226135577379853552367341199189967308689224400782807738121861502992374717001648444334839179270805733702254832370168701418583872660525492220033761688194532530765710331679499702954548226795821329793246754666821865606967862689093669561451681485960358864106724934843188269132041983528373575812796019388501119581295670584171338735487779362268673225554589271867556289911506122551833040000515326678349660097036727958246051382290524407176461679370812202769841494120920110652899279814511581239668599075247396129588824857831192489630672354311582394430607232933117652988471587113825556864278376308884519408000589257664344012404383825689692915839256741289040628511109345262614764968889637958573896522709847010266868191884668389302444936732314769390546719438704028197077767940687188853104798466088854223751939831889677779462145598937992822045716970047792590872351699032692671714463864275229727932347046934308759037132168392680023543139164508045773744063271628559481614798113643565439084826842813373807842193121016987120033391966267240022418204538180594644450273625881488634765928471965925476572537463561228856287755487026962619309113436841815462961597419671633191946255673155239616711220925728951094196500449309396878742951209345040111670829433762896655879904423055710337387416599157376502574697801773995754450868425366697796597855509243634305830428612042777016177388656958719907129879277383048158481174126596870403871254666618788128441999708117966225230406619499755890099707482954627546659883478135369036206274220245591005273397187539409239636630504000351308072543158159138426183129601091379450003028242674634867146174252370485219747710441030915068245532644643307784445192551923510755909662963828617678909093882688960558217789432177475824620997630247499044712691115378598810042833717708070980388726419744710278017002838989302023725237069673738842047905052147475729456700112427445668617895093277324689410267841822146449314176993684400036182805100234305311514392533576419182299803639729838401197399474650606738327867483593833341927870311845992028383560284279040974372077571559925005896555550078425699687702181791798136979309469462821943193020175635679148557925342326046591910792697514779703487752508553440264397220466279841936546832876587619287323715569300272439020681585386051679851975120431786642900286468052649835008625922493187317859026116873711552634307490484988732436084559406143069073130456224669347268334652653527832913607228348124655357468510830838794045934642954120091141949572440333021779734265960032783302170768764787650164342143667661929243987379592266012829443242158746282647327675981390584012336481283736398575954605564213201841651265361150006132064322355614956586569758246937534480727009881006864485472859392730679638331001574115371139169673600077938941193557205241848865214536343248876632697537084755548542941536243661295030784840303244222758641145979336309446673443311010377826151253570821654178701406266393470544754867752097962427745757337450525762637050585978859429564382737673515727048282271037311223758126889279517775767374840372118031004831244295883828413744409427098721448715176281784080400264857100856768645793805857751729256560711328201785576253912588240083491912427501742043478379261084915047777352324852106656067231406475518324028202690052494049621550315425121505566130731607212066945367920446117285224954476551077099987300180183496552639707567336030336143512106033206445919095707668066143314983879726412234691960578469205590481959579047084511396043424035670204682291421145420420515706647729656385165291250805926071131478270977204072953130882209534457472826872440839113648186890017531043318969868037977698385357895259653468257790730689558942554567884261570740109701562448315549624074260274400610705322937472819232767392576274283190195524259761926156451684267043016497349559121483707760280796760173520025918490344729380006870640481380292140143459210132729199196948185591596690716438873250389668257951601427177209849079072878066635091259494035462084826955178851821949285298841457044962089478209715750519868327870609928945106984691327752557999617146607284846431311941805484529924868241899592218269353249967044796838519323270495208680580412834033989997512410963731461739358176443059905199678535088790118549948064857365646427468636422819715075045951429793916958003387787779895499134257743319337865065424124310056482291942894041236784371086034596813133312841516115594670068793222445448263493370694551185403742535562607845085732690300839701198202281346044731504467775300658143414251752841941590526848756497486788932641131151727857361191634816896302668903133261532332079412130994708330589280972559848304091355942267730222502480605120163846811759504074769149922737166545156137531028768154610192561592948902798506439090818209431869469108881830851161232844760747762075262204191910595903269038628780309386733017147408700830626420354007729720925936298966382626182816900535929685588918088798189116211964731212671717867542523933913412480136090191845754994715974860095489687114942132312242505567075385569133856794895066346534786924322587808624325876675988407634738150904549889723547505149512019441300362966843719852052725273835060035310201862897298121441940015597335945349297153607942626253931720649548864090270044808329875920797464018633910426674142605850926795135726939361279252473352274391087021683541957979095112077227490354885384458962213945742962071299973313159012188845217967753345246763697688077946188403578996967140616515109471946084704346851970148942030011229857830393161861162536213731673876022882412676547360549696689535029701478018473181364471039011241407167183422888714914599398321701443843213212128318533769419196335243704029902118613388225446512259543768126006489530657933166494188002777102387522499890940451162765259408055804042334439443413154671363067579946729347106801900050610411296930873200416885798644110345231491670269542015336705262773662553910263312941645372144737604984296241836929879360835355100281009589773802734899538494163197911618217053769447915952016159513960961239912111289627787302318823447565980447582346558940107293631948523892528677165642688544202168293182442363434657971316965254625394590034431809074246509599494280606219609334484255202713615178859243113163291520273415153861461642993218814473776440123546965595527540027622399448955522299070229919238541971393038018430306904790242756460935484540753372002925330333482769846604267031357160361778611977801971499211210227261917386159797194273441245114880219314384118109159570307140464752060607698029553209758119769587329282166845857816264824574842214113922717506379903351646632068558075187683249973150386489051878997400723261917626104526930841858312278583110664838159296933210333105551276851631680706410216053307891260217707972536819894740126448370497723717553581351466291833209566347617664959498723546797933461150702364443187313089756005785758537466819536143724891457337483978254176205288045824930857272549189392622600269045420307298354491578079172898963551484549977387154464476766394940475052075197710199178551791632217895354490961332294478947015317513273183770910023236622580002405583894170671905029914008484303373257355547435490454598906322662955004023019425625976593638797306133902620300626414229944481996272659713644211351892587094530605166980869764477061702373577007492832578391942937905473065056184411920147132042133826539084664731807936444837643396496813028256781783462562437794082704870484393761364396368906421504107417172845322520280571436561349972991264089336558428403658687542518490841823565149791760298063646388513951987704326641543863776667158041285405305940784135986974608243156800021450825210346509160076137319901523179031891201206066731978952172980464746162338634992456128620983978868299402579961539550481810201998618171370870119285531586751077943296837877845284724585345204787811051922572122438330936558680772680576709506588043026703436382659043348821034553407486131644172672147418969297864969556238998371443112823875819162254217737576484758897674535144205251050959770963957491055510114825783950157807029576760623466133074030947644862057534294621475651973949108688207280941672530813653714082006069010159427314415873054961345825894309740041192842944494535570249957208442201083924970137898228764934174699368097150750735106078068779861478279976171510850510560773592246078111722531852541153458962814129445762981188084093219204392170753411981637430392794482444914292708624496757298438636241847216695520134309945437994736746246232028775871509904504854592352428511575657289553840001476450176455048769538675425888402160591914868300949828016842230591882350311868101658669081403377044796613995659448748901083690249897890266842858861047455887005938156042277109746544353314102439179620696320989803512964107936537549112670595378279527382134006259112003787920249830718412377957726892383958946236256853704545062106576249379229164861656800928753574594576691423236067945770109403759455061070200907455379897058778438114581526546570304549459886793909003907681527480095347395507944104555926620122890700253055786717985503601210349335746792416212570619770644288175762168161866124694577633858066540025484683334599831069797018866030995102209529064918822042625017853397176935492196801465541446462839978110493084528820187691671691991298564179536778417771971481930606999340987156090659040404868937949105573359281544404055848974612980179689260038670131752254049176413334911300232968401868727876881489635058482698927197816063230889210852557151044119143780446464134066789542561478185336570537632222042201946378127562195264585289352104168391801908193024754140965105805815548890519553012061794212718870843614515769739329673967640565653488928891562801405152703443858018453625744651581083053282150765809244268921370241527957492412975778706266612949063322729607656863680605040840558562499376359230770619384033036875445504164425529880967686778394242308011963441127845100877887314202318577914357437356922180116498649474158500121249504649721398693554023632651707770620263884777596696614112872261862557516943315008652713304055759210389907105417314515621173574130019208543688425991754040201108929005523301556252611716381721236723783144458772861394527667381809512887404558336482776830645657350480449770864211665705569698208146103305089053096265812238816330490671293223102613389650819299676828178267713635193066926880250115719340403344982110864364633275679481454419502393902992762850922130206484144053232434578994152481975752596128858247201695606353306509504558560176858388123321771827319554822527956644010963167425018045358812598220048008353845220151245565516741839337980666055960359352351387860195730364559310734844398468656847367802909528156667328199461388732682963825735605298404353679013437865232321213161511387011730911865062764774401220095981728624675410947464276213086882450573733300090477213799652569266082681232923371388533268418256910300998418674633015233078057343341150617887922558927022825661733255653714382661920898084943359672424567223247578743392850486563546679264505114146809509427906861048414954072257351616851389465902045036799017493046850695989434636643756303878747631845154175386371597845497149739807923683826833593805633255814686281132679419116449610925405760272598011712257143255781181799743698060189594936772851504299288956358906296851962267037281484063199037400689701711367512796232963620520988234727990950722466760169081121206805100609635282543391777929043805718856547760659960467812956754504453012776074001250679843189980221583019515496817649330613977231742791609364461292311624662429818436355050764973157731732762419971484138826159528880772675467456863065281998491160927958208362502329424999135379288670744017102069022380764577201256266202820698241759987786680878791639623218983968273106756981888097245445052786931657441070993152574892400028851255429369111041083678506369908671121176396667314938520972995044127745083536965369120511750947051506508849723607095268301317113205226302170410397505560576254015099322476739297108171202507184673060106682899890054115526051576185515737449542869085971817949200623382806283932520133008751491069797382584304647242354478883986423202646210049766097968168929427454079904678717181481164106826905607333755183014369180607507263954214883565056114110344974163467223539605918154307785231919326891893891082057734142249923425122301531106906685308839759018692323566933271103407031689403718530133283220950493046918915681690491622453705882481106492668480374112994368617929462675529496533529529310318008926166563859158757692322406531353202052315173271374426679861229559392146306667755421957618553669907290040556019964762731832297289238361072369138266194121756553809512071521292243531389853553641413178246326190265978411859803540731179628381780025567505466294008081369290744934279903792613252043229439194063506893560543568254472326082139941176777124682665666905166657489859845575662394611796579621071688686430821280027090317165956936307953596568234936275972142770706471138249279775233226781195746467182516961067837173750582972185051589469790256744628171206839290145605252743317248402271286938795796605170470036831369718463905530841094650975527906989108784975580754647849799295738612919394376178418586267923097236624587448587473316111566016835562923322295354609918084897615764214608885764497466785240678291561811376486864933225031057237509753790336577671112635399798330852152764938681435550433394949886607094056572869873180016097943140539083235022877915362299566818384682202201364755202626777937275112483157789673051472790520241881131051063484178860466149734199479318913750725576767553556944098200756190967112146144705919530747118349463039820699854348181551126126395357277283781381541510350595121978645895127507962378666436040597074948385172722645239560865404828699875019435669598074395866540360449451513222304401200849892589531762365819337812490296880101879013036253541496315271154003062820928607189383491165955673909510408228717724405754054792604314101575748830883791233046060482878181863524913601676592570746442376215878163407450753333258653012251502350895749838250977950726563092008338949172134221288896503310212271014474588502732635891697787987490486728638257680005525607087062790837609686678099298883806073292627031408999658655904714629733801868103141233020562171764951978335210177546070490513482896566046603172635285444932548150667196451184083415040070412848441247221140979483994729644785162323546227179832747895199206067379215818542332969078856373873051848317686677450653712996005196729849851504828546808540641730567103197295096543531060632899226231406075890374715564179754337651613990094002985126523917912677849974670090868134028609350947664317141781169384922235425861287898756738175584084694578294221473239863218039296921408866276278494860665845034486947737899791696801066843098328590077334499869586419265098236591770142246733130057718548506070973714513181401035163495050637793681861136567058429592979749241284260901181730749527186489783708006154596067956702871550302095283059213238547996929276285166037031820236108322618345185588704141053360885151640337826411706386355090331223187457723865296124897796042266206021631561434113204847912726687866637283424775998355143667801125754096521112283097225181151886321574505099193768496085460348302624942810739094642609141268349684258484755161686314493524038887221885531026497241591036713958121983401005232541951217647813594989761819773877964945595090177682662894861068000275532048212142374625435224156867503678238686957364954247679037786316716156673527563514483384996827978292658366296344918129563825089400227342692824975644193476260377692712439709492393480266836646856694374575868971569254275208163951750308559211284565872443554203236236958466881064915374261921839297558725578726062732814361633338928612084145920302333652900633359135810892904309559620265623560383750113668593059598485506054218777098794670972449961740544218490264875853852913731749341679025579298996236477140811267880726483270234967790240622148947830126586858264329371403338490046496271451094827509270366919888504297495330427006114416542118807804731511158981282923886857742158183073608817372316110811625097446762441360749665045119918575838118433126645587680488919139963987878873822272387892238814708543001819273123232084033751507606563001488384672910853278713254453835607644401658624954564937445492803979286159361541634842665191519748730915401073371814562940424944188601276090738214964558321301441392235020784566394781515635421868714464004583997294786415130872598930372375920589401118635997916328766251026596969270494223682221914951169872611817235775659151983707641780626459626940154458579912923098704037344792731630408430028263418129952926992901674121901458518210905778705702387697545173620375717710651911630694562951384758465515407942228975821036434388135259623527749970994986950950816248811175503707422775378939538336303350804530073085985503924987948708078544213718739705284415521538160598438948953623010756361561384514561589477208493848190057043757593052992596001317828006126098448517486682268792707050832536671062672857673457603372314205797009754794590601367151923371673602155258420743458444154191164643744056394502340391334234664864544479381297593416988476014628163242129529731569813355120894689146726821987202861532345701957662744684543058969854756295961131844202562604520623860509292083983307745735328787684567639028018495389246169012919848399455402719019004138230660757604279630252144660570912013251486151756103069899975509882303479379924455750566317358252627652552897753145846398177005275228128755912713126698486526052866809870730615799615108573467495370606855001285215122502793251913954387889672443997018117857573757396921249287718861020415672481277562975375813090809769015444867524404137960531955939983489632117143684992729723306240114666619135265217922941905346975348402913036806154582156143669478562968800009817466833232836741372570461653223186077315350762603764150373637548724295593426883899271025016351938761881732246743134651306044899906968691253273262568124536440122003718914278686289861394498389587311378210691420583209357996044907543549620142908513496175953579380851002993821805350291644652601004756891474083431345780639541639469130514106367540781120605086764406737114466506058496931475655649722023822046729963818388801197937967038436148933089028072415669892723101465112908559287818783209735931188687841472304337318236393162726511737657887670174875920537710093478796747129568770004882789553943038777952651135846655124503513504099015859747386743797738186729052292725457143807743747429541461357143892796724677381818598170421309888334670180821552086139136084690478975648429771658383008914971213091871113183871889244691461194706143940761203065430325813644838984385669624767884159407319619957570104157452095911959627919124205022901392085537391501397462069740400478295376915111958569598514449571621762151641808955294316169934493335222439207827577211721625771891232653280096937884135359590509382962762605443335626696469156020235369105256902041451972655189906683934478623014511066505268206550634836974711396073149195656049020002201035938261057910537682836650136647798166967491467458395299393099441721391165135948914737718343515435769215644576085682911370982692051653724495188901386159289296103415194661961733962933843822693031580288290802364766827525715277113220791134225558407041322834508623529932364351596896672643985971913200541574212814323278108908964401265854864921551411123317869044630155039727349425159670297863559155767655402467708936867331008281311535958560559186470710275735294501881313552843291631682323931772967733993166590659191578707050703062599990955505471977593835317652532584432852879010005661023023498735023373623411628458595972010636172065215923515236186243038766013134283485849590304069592758243232979199226519050834874019023450515670427829236212008612186807164222096315453675258883492029731474842175861549915429020560598700927867021337041339753323719740988011910706162182151667123558935758609159374109207217324008678030083542246220160922436382209380080239575147006756946324031314104792348588513174891201681844261384720180750077609001199745216828373781402218300320451115861667193586265566259822076842428477039690979459115451268961778356816519189978528524423699742852688792162396677270817749522364758601170376329934572857091659715675643197287575677630087092353189635976845615282339650964538234784112067307620715746297243864774365183943365553831001217388567221309748595201940074909659359803435773665080949447290677875627720088256706217952217002544058028535087185406764273051242011103243225251700481469579525622471343455616100405718462066183005791981735289691584552013318675278360328247083413161941768881965443767781639603415949398167902828570639570859892819916079340007510678871176244800385553586314177202228881659371893679426021032882657349080717381144172742950265953859448138993515901782582525996155219573618085719156315359192441308894057492615902664555919877547030474946978414771696327482497928607849028037256450121795340972039867904057948244023208890063440650766878539293396540925322296519593731415521531102736479673944727560567951263362348537840140235279217963632203196911597509864706390175293732815455137580846717518982757268657886574398891120737865125017823842456657726728574798741930214829698115720004201794881289327317619453319540225498836233650485407238354294432334194347552704398939209368606776682316414578080457103536045961879116099974012722802765342307904618127622434962240488363814805347718507405125076936082398355880983169309936619010994339194362395838889453728715803821400451821280818248717563030734043326087204397073174049416005718635202982541531219580566213776852287251373107371736326742153386589037068412306177811609659110428267408062128349752525094356696152417297544317447138903205552324898897653633588243934430152768859922090850144397188484661139181094181572792986148833299169594281117679871804092314860602566389724488280642728277387043789804738437411938794194582310751968911446522424526547575571707364202213101384971985401449581419884953305521796367176247008105985460345714644335366634341341934048973945682614725146575013587869027825657161656532971220664497105018995434581845327742623043569554121330472866489065503238647153869566193723437327572430056674502127223072539746713248072964901231856034461616752126254881257730023126025627306712787205633946371105492539997046620373888121986491395348608108917769227973487997766360496155412899433710901673641698603314253343089282378288710623492909143814286643291480738296716980458272451223763853022632937789114828512477627554743267373512686898703116354611115360515234256700735414469776684276486191768209462270928012875877543713883203945396560148625855728206898096796178422656861631722484949854485380840430296903585823238041824990088484234084899622638893089780387352105962826060127108499213267013090592743521248810544354070716102051497346178931336467203324184924955269008435781492982397861198478514318868032764548081005431430575659495678057671796954603456390256577145756244490526543130430070711794541406629887858204250342629424763805390078861675003875443933468717727127183036149411370889488652212389887748747713863399660051530304674552429912481387701968701347281532703116517755892736963431852232500423883382516430901134017503785304222641484347090471597058233045175134322651526286992004650102648741295466738083515105677771475245454324259060933985443261477279529641995304757197330677345145835912838333289140138901600209821737697275700553479884962812480016141299521927240187500096749088945131915418012825851806099774410543926688121008746561400761672215107007037659022428848981702102226332386887069990296960000454355000858402479925752941122522062386627787961819815589189472957290861307932256643339753641102929014521285556414532559463655164069090509364354653971335478513295128180460531831371740882577063995055584281885473901505790308900869765839594924836373141031612829330189761264327467995374221125971910475657288415456183803521753124646097733962782757816446278785065640488449759676238233494358351240022022364973817865557196752937500597533192725204448247658549509848902768959523712697098636075229822797249124662454470790012643301474457023125992904179390933026520601354344462116545948622418772468954741284390781435220514609305362501827409950352027537735062950199948631653111226407435294944044512358183824527103848007264418525881082272394899030634649826605489962287746019370789151372152717148388890376529537915231139627578253323446148755162531115589834996602097390096909676344340375053006787156244217445549084253346824890639070397227744029552769863915686946247118424101305416221140068439166914394135766279145519107003083359729880536491132832264629235378373501268894719023848567091998212003076743157641101859287242580509178252744949750531139744685363979344140602206356880556901982828473514695654216760445919118332445654734942345704359174954846212491685292457778844573225227444189088418618827826427987398314550617068393011567293566277735266128402449111549323803500436945732877256917436843850883284255820058263380021475855300341000323385810854811944853615421913359030196225012183289429924031196001019418935898704436467811045702993969275444683232426775461916897293245573954257637998596400171053294621509779683353761930256054114072302754464431811140634548256677869430787190570291972183611067227759053572369707943032449050299191999763015130325090386121272386743328599733719028683857896308494470948134463060498492637386572959904761898218109097604165703823842605111797728932494282751161774359850566442358037237854548872883894780818553266030385791568960603175885866149486603431038923011548198560919703820198385953886798896301327196455041367044961571697422897717190425943155258384409749568041384274360630886161728403190114676968772464371580237043190079886124620956258170600323392863578748315889074929157320277415945777546535201457380443275821129824862632176924372759627808773949537313003381263276356256572963801720632042660865026078761164874626937502308862176699647173891453206540827663763300053007104970735442215968599029766206686612997679182128500504041785486485068035220231111416129435920263003390726129825957193105903470567153666835046254966376237236308467268778786907113873132818619142274648301871722260618745857560075607209020588383825706576380970710756775079787736265966325214624935676099923261843401424775583492544362433962439479183332121255329903679875028581769820318448294399932806639339218092673196300035666092076155390459788130830123865480238171490851098179552965596366168716648289636904102921050011629410887244474596747751707510565249613126823436254889469787598958097243572054921802098517629823477478262495817016150586118710331711339956267665134533712133341315265592862685423918933173547350338607116757888223490832084083265085539701910874692379042117944606145126250277378908370918670034143701620317167377147945571459028632627118894615469399238643792059212008327765520974534431492020774399884562082566218910214637819522897296553379472449541757454946312671824964781914787850274050406754665171906815882776819849714265534451042630598395390697841062925898915130409488797564681295866444652334747016095781466511065526534588701606277702283346664773469619978161847551419245876200511719586149208334932721331171913543403407713572113204628729927620371974786323519837107704755555959437702246380004278447024139178835630317437255156284684558964992998840521262977779776586603471167066977868211733463531235035357918069196745445342526792976892980632504070543694914877935753960045960265736002069725659563673533884714385695539508426588401126404273771392100650859124679500965770429192880298515943263212052639491261143234058229865202441405871918204922340893640369863346457148296829062116184574925693860195581658661995527282454311900415238027018019816331070147424482092343976705782910900788871694976013719137499717286472532674156612303063478811849429999849471277027427187694157596320334520984988040543679093819666252511938932884078724718914240404582199508762146818164312542961578642842566633772903780131621443927265444954756544316022796646841374643635232698438180799848671746369706344008769923997591456845645685318288406349979855398269538437597719770299331102423954383798245665155342859418168043617982053500099514629945490110791556172675795725560017678693376900408708312088469606951058071055783998101061368194704021088824806630815735557592519451224668174437466917552680233274352945911273841389629040745896211949660451299289117424117184346967061104359580762913902593735886647537084853207716888909123975300588130356492513806303171265243819585744265752051868960376448569137694598569969608283643854600286940280924860962116221926731226530263087021210577643442320875971178214532265191236948210200181704622143002831929070580533537333437621413077031114116398278251335808731651304695162876802870712816359865236218841939190739436814203323995876125989650245535117778680825296065186950963666999143069567402911216609555236994670013618384487160163113443211718679068640043009027425501889270776394088531829154681317557711910886631245357834871310623821917685422324390506774681431294441281159973201663454223625251948404095607766236962575495250955946215119856743305926545331537817181337339308972320813845701507898392260714740066889542965512359618119075355931044952743804656008438014949996243620429724414778994731008078231343141491366217678762251293996909453513575514535966077165196826375673465601048609385122967957133057946000875873361190364683744326969323227150308536811384648860579864781209548723560938261548241016004290529361917183624746346098235937097302163144172255143569351160092583269527956793414782040604474424810670558763070701089958530019337403113942897553946442128420536412658714834575423798556640344707383986596381637430190822931298703065696962005408999264524163806931749841284441582649617020897568855136751195182837493627505223923882539518181681672056433965723612111109162031617601976614819517306552466824480954639180206003239317747474027392842262131379848596359623106865721966105430398143463967608622657887041711878281512996684268636380024654767253574316013843325502983059238014597602924672336721694858213617882008430524907076631323105117559960946626057873736483182233309124644367433567909146678111014588270215629667145845940345288634492291510090318738492745325249409410070992366961345686259282744015077185476947036697297501251183983743510381372467500134568593464093216452710418913688889894028158525219568513193491103933266951780367768757099460478930848364463022937857870900539363233048628026038001486253996982991658301630872098987188589119125369578537982783471198061980899139949292651807212606208396471256763103457837933744797727827956455980320103694212565913894290707015777981557762782023919181093722667433115290856340066655358927085204076978635426460498710657444241914126648792071668175989189674578166839800314030085140731677548400307805536751305401255881503529920429460661377160422528242325967326210264480073996963057061816289741471465487870275137837343128720801653960513918120427691203867607187286972989979704593227052065621791465845300337678840693665829475843054597495231391419812599288051143744407113138443417613928874821500627395938845998331344270282532958490920811394088487145020813423159321704068492926519190209703448477932719909506217136753226842373209357408143303990276729162984052586660608043737659072222985841230217510522489762954739142740880954714333273445170425611227565081990848223612153153234989020620146035483285700441310681286346167997598277986003566270438032782228751019728584975561636400421426619348160985114350533215571042078277924504488038858484235052645532189640082280221125282055244480661464645131427729279152096602718271231162041616414924681870873421591041032572143087352140751701508111352307116642887013935312732811040026679781320297456668954904451498286464844550214735207085765873794141418086752883954747733898309696905415801778181854011541376557244395994518635515393637549325804968543902976419355810625184450668534216685815081493421061117181071488033206616466945806306233156610230866327437090316187788831041463163137771151111314510057678769901948017960318600772553071433430260627839986730616562974632481910017263173776841396287400331640700813436217903109006264912243686240938462363724454328275646906759501475494775898693819267134327664597053397825240819932043230738601285945781636808169009400486611274230040593438569399483640246136749612580456043689210647178469180512270901609007840516975016675738037388020565824085736053377866435139450534458375126223530336524173054688701103071389849631480121054207324199049709294615631961675341043921168572978521325395694911181018662969672579421680331251230509892972990747461235758595005509605001531772025352749184038957079039358143297854368069056626670967912070446626288699007434370937237686165887484988086385338717855773696538097606325482021993402237968861254989920551129664236466652043197955948194433396396001519552230106849443757111499702311337927710970261981414625133572882250860493410027686305101682918249124867201553314912204584025373650601808992124406001655593489352418267021643114198386723271450657447553585543430021852175460238854978231308536994076845925147992979672422013778909600973078139983029363175273836487179945221703815912363467346836010743746735824707939810428765101546969983107313597132887685908253329303383055291909313219487328042456346561600026466755428704055645546547950016090149707575829397088276471670308621161147239312214290141641379358238182895764716283760380843795906121309466774714535156635266531643855555523809730056432406442171527896917767845921083658985842882563121169768232248045378320412208675175364614831052099031590656401377971298134323887205011144183635887999253164927083264045172321619258288821021957826930445800119304816964941224473124496955243831728161220638490204972620403675866530437568002644258991540186278578954219376794455866270147747330280134665560583161769720498841018262836003136457586616961426682814807227335417476815853178781316249984411542194041455559801439566673744365424444863835464320162389551265443692870860193953948629316758145384869157142850557162475594999860786988442982275747586058363737141025701363774049364274029069750680764512045637629059035154868038584742738459782071857777075558549155624861567238207499310546165195145459086600461677788298210965964442076815565828633199755730275486961616370285518747909703085619121223061608554383638910180971771425391026432978789412244923588888525061987069682250218287148060361861605720738581006235000984816979793937355909171841082893990691544525895553817149955980349143037057783496273497882382468013817752967679509550570440092038284083990807770041958438063066750568651688466789302752996698924098573416553647319448638389808196814369255286193334413217148383843353880879050253130611606290809808736127104652681894413930210318235380004696784949304671305675859389401091201990402978257894651340883764437426973213065158346290922203779730855526906358636177079150959007066654154101480914280303475694623301636151929706186370280864844109619337108680576889646802200782016926976028634393573718172294991218910623685535754290255274103002730137551135353948912276653779649907755135099479206240611944846512002466947010985811329879213840916140400026250580103425209053573415846509967607584499267460429138179502742824872498146819727062308272010729505200303279168957661525446558375204556863689766320097475608181704458835695338201288553177073136617006144391019512185328450486917825371238469409226648309730123056531514698331676480375948843290381652801804180466610779458682870811778972681327842938895064601645695142927231244275759074768671970592941883348372810771483961310597653971704196484342530722548506469939979484525405140415723014277548933385680997867538188496768139595245518957329623003485837775093773400560472128779843604897386266574026909033318722969029208741493895796195109826623760523528963465701997664688639367382166380624328156930000958715318097559442108122623022281016930612790855950933306739435447529251624078417267416488263344888627660610932432397932184798228430096706163889384234465605100592147341115340578595758084800562527791414514222496179555435411612753970919710678610196228389248725491286377296696506555643857147288959257535185482671007515816850413581878490523294724155012152719689282950451805439583389185813177822709398256769412955969391090521787321412086622449148109499630007203932358146896427146334397370450589428781894041083354892094505537169705747219104519972465008183849035316002645349438288923639560499006008445206646399864701727215568019424133439851298189518038677152563172897744622233738017625291877444804505853133138140643348484872259259572273593617888572691746687305759946334028084319971624130905167899604781779296415522551819958692548302084243100892740692078086262075336016862530191503022315213542573150171831306601132323691702482983917231243265554504728086457821789503571793489823546542636406122825822821761937451217385207991583245106902186849964957730132648589507186039335726098885725268833332012529552851722753989486671930464814791057220322277543102231349012880266311428892996499770034212987640051869830759426658845246804884367178249682597226133407664979340432515639103270632754150784684183237701947173764262026229152583005279919650925637061439663811425313114108956675186366521961995720554300232672922027317269629002448416218101405808029736151445791280633489356028491992750000818007409188354853921575025128913512312711643324332787020239158913071628842692773206175358691648525263008696088843054873092212697942145200555478196292447430776078148450013559434564643906446836441415884156263458683057998567131553166252859807134479175363775834383596632227202446469937276090067589920221057971833025852045760594606371828139504835616642562896891605526266454388157128837951145423611884361709085223825412669508930595382545647062497385138298302802035695930055712643235422122761979369842720531413655975913888266701231250383424496681789790111739104889742898381558664706406636072251971935571181712439589294588675643354954573037743232297224865899833339805922285703661119132940907050369123382501716558338722645803343761660575319882304724507496064793771291804904414041896896841711578381420538765470599932306585302294370001836914513384438156238774590527085106488606847487249304784521553825871733324477507428088404584320003401150264741965416717851930542414761041387139561319868930314676465313240112302353702228563066337975115415215496014066950607802424899673082016724916632574517216116109014567220010661931648534803548588376159068684101679784489119460950156091150697890934784195786382219316858862638243297188105959983572750137755834905170186489368539950171929699548079133525512130162293051684140816687022131936475545950703793070358899020128961063360467576894031266717035188299273256183085188444082708117589108881057216884731888302385444369223670414350680839001089074303583110718866403188571367863493762499046507778839005748096795473457664412252957295690940530094631116571823951679250161129267975263838246763986157532571379702995619795916178475521814142995762143993946874717356213123425572013338400801775792680501993295465879810645482104040886828305512667672954443663548394440670935460661152117879162739846041866954636677649891176727488957017250559797257419829501675733123546769586158281586183476157560832814680249685088139062742167944383283669062310495312622658505829876841560919463636778270834253254839960721372895911582173062114774281108424799643280488443260672762661415418625630904094294027699792637690927121228461659158495989971208528256538504307687507984780903363976456186731414063413727971811297384774498917671768846622074974791905901876375937477101475080075813503059351840177659353532576073232234925068864822871681214465276069130276093231033501542353187992468058316655721340307678010645022344835933218628227168534294925334127496318074789766509104113497908762798860678756648187812659719412997981164132583895763419283692760630922063865973140147274482501031866293116694602097280423543161227566931258092366746433961527105453949551563707278124883906982736559273499298593801960569763651846754045714901745685983348472985304868862200516598636203182302006058312671870078305576541636381942651371254667463279447120634460609368186568764972397930511148278052465751314772659400908187773634928586553041248856624042733601683110424220069540187285604414073417546397906111320986630201751249976820150839531049924191443124416305948704566225405792650037897117163346861718245720459959974012043369448469371066102717466282464059747869049408140617161742156738311652139951576781859693404804406831758386255990489988310040085530438080430938310723200094120995874330737708013235967603402575145874562830221402654390431176598924613982620100144803516384613746284961561743862754219609143362542296730716739162322682507868437773543656798193228557475367855876936856410759826322248567404881549636069291718476517496356108880446921809163505528412600616953232663071578306132565802347409700185726414542786990293497694758049762305634854175884189473521051651669298570250061390441485285990648593522688498874204240842175755683477350438088348633244296272298643787655841348539484144830966925002680435460561276345907123883731603476222350413327430769515189810103767496340842814107556695006336133517466177291513144452012633487138008231494775042980844142248555233230586165344135047280651257528530563995302534767905041399819697222542860920742150242571650438535736798750559463772552958204491119020742472944401488966123192057305869272829992429339649161365859212672374451084961771498317155889263581063379924328188502694353194313783713563119489589177068363817883604611703432300725061642570007106034019774766647083803912913690603235565248515795003735656726023560376277801750843030056944639777841848910232999013303226184633597581123046784092085880068000907778282693017623634418462419753761877733918511743146921678389428796690646171574757012719076778130133960689267678336604125129562655595485348431151938267771144010118344873169491086518818405719465082326881991137987211141624159630883501207431838540552528996598821820356538275037005391352509678364401006605720868326373661608170826286714703725284053883938730251366191925827897220122403110940619102516625791554595677313324081318971638600994011619893917760742732951046257081507554603028771039752646506991545035471650414459526804153288950747167298726629254707573913606501598909134141957213817597405191960384475322690792854302219272704540293700922313218836260249757056313035537864743233030653886311659984012868213893113124132229462823949503725111867911543114941010490576824163087174344824053872913311659260632566067116090875605722179325421077067827591136617312929389425705357701241841269173625530352241708498576130290674960539131706454871362196996425776861060189719808758917463949870560917847553452356993539421924012529704923142930977387897801988749723037238787356785029440296402187155092099494285090209738947959740430977824540938682541054755573618000333551108202280375065679058633542059704702359111058392437911635489680927598207409179792087107862064583490781685973783656208964705484287474312204789514813165149820708730326090652912027787402834708333976474295290752324536507916907470047250528221622469635327911811240548369030660228433322177382713514967597846538491379523567790415707432543297619497400869055712511836485239119147727981281430701164366754733067791949019197562354871024903727017883556863941584713439331004691804941446556738125288862805317375046224033657838508559846538685619083800220593394708982418858491063630876017828708599261934239196609640050554132796731568087152520632256886518682697305673150697582033716480598391639184584074939732875977989836122754908364977522666342643557724966489208026932926424447834453737937154078873312053662525005276415439327202929471282125737792163315336189787959986318729844853703680500029713774744871562141946804788484829269363103864570032196622161455585415517464625100472564288463659854947910564192228846786880983455460919315177972889606304608728763692902819171068303421383817997179098853882014992928934539105534742086717431721347500290329212361946016858152256618358621491163303221336128785213138921285639611585905981245081930848330388484839845645299991527117582820888110553106731101387874266933396660337224203593588975267129621565265651654237308637987339510778222899847180349744863823707591206079569686029945573015478865674645700713790624514776362272293094637750733124187226740144827039983853839035170004244610423925783998601028042709448405941580194834620052140233478494279738988911968745410210634130372604898846455874324708965813989576811869755469026280083496470048598506011910458752814102708483766292668988285063955399668920389511647769786075609349633372444603141485324197089062372353984021747242400380704429328506278847714339617968637672140076391173737295653102703130371467584032448610699678467985574782231880337527159736146916731104874725279618878367284013084304767223748786644808063154595214952342490911918579113350957900218846782045975073522309483747793564939903992827213126003118423102933799754470930122831927950115170592458725804197810990658738923218081264987152744697206403418250483668588169454819221276007632191444087502854701571361647062238316831682536314568598760546573981471849955378282940401702727346702508772377900618504786583383109758770910951361753938115942048809069169034979729499554956094743379392168664209301816200075141125653711943666223026099573110359367868661011016174913533051562892067700720882261439855742679489648286373182444768183684215109190496752976534064563289291506697865832203459008940717735851110074413680179022486776425349092041689649725372492495964960453140408817387029057679778661423114014925378250904551295531136535884155853085303888352398852609590199917190465832814357071013641145651248410077012863783608439169698978099264265298891931032288481616396504891876625559172633759908801216934934137871136863447649145854201399593067165629971107649712140197797475020395830195111120325073086216251992504047396640640382770441893351178672284485386994157136686001610581934636010278095591984327461651226091113090620699374303844878028718001279808271299574800069249380107686392227371267507937773030889017141686603760159466199722719395966275103010421358969419081263093395928623068195105297740196568320903830765072489043287145826884594830161320779244271788545152335453992943888843969157136889889918076520428640747205447096583548785987331869706228025302950153228515124402613445771771243213327886742204108925793712712584844023246992024682726252878529582442260954154632762737952646843650778854278849117566851272630550382455050081633731957386749556995064108352656699410353004641962787030095038601407568527986797383728370319449979419289514918938929163207063007856168122954520951624048407394308054406450406519099562463529641627329885737111898591336064705090498363830699122398444856965191866934730404937663909103051030806862732006437022765710767090449937138251524070239116766164457881510816504383649529476234899077648269098925768504000089112913514975224363471149465089479290414634797481600097042155813189443752145519878652614699955472566046985504790096884886033551358112551509477881215172773698011839359325709970077369574278293003473979105802522952534093250542425870966199953055061277825902523729896108229222872830288218772799475581690624796229939043135723687286375190809639071158332551983771105778340200155506899239880266224130844241945291318987035015814427929239643957631119864402460577426204510428086951778571644816332722545047612797376885984123023963952344831195304318432405162049592033613018513562866710420798848910613796962436999961117997639279619077559601332413683127984675007332211936905352761968878503065943666084177286572258718061683752225686648373735838471765123879446729007691156950815260807738553566850203710073627029136528166016374618432877350642459795359679509777562815267938326321215118598467810512133056010714889793561712300226584206033347344821958876820723926765334320267824434947115601473858727419784036510170700110365490050735964532881809806308174970104624079460081394691500702822856698762179970842614512212671121734241072760700838727792626550031871949014013560783862018391983486007676450720507152721324855765667996711029234236291741603162083914552776646201966886253772529788756538294869456083624454989267535318340994871066195125771786312076338076412117318768318603687681535276771443445476068190664835137610046121826897902345559470785126952710772578879375974515444919638257683091973636311772725609506315320125817080189049866345744939543372307778968786694504532105407938717287164839530373146551881343073166223590978168859695867340371977677143038276740430152635497948235598766402824490026748186305775480238087585529589637396322747190528002738534689401278055009894876167795875244101743706604011276974445670488420008951343145534125354611050250375739275871913332657844476091177680573857688165902305963760687344826082989901874592888078024613215982501351192659452018725056335523552997905901637537933312008889262189851752495663613487040014147404808804481481573547006704591590967620045910334326159994667955538078442126293323702074749331781991871952564735432096394338547255414891598643403149905068079418473380670726556640112271303256295401198537680850687339618486630911669655482268491074827546864415133758779760470850914139867026943097584526093809638041694597005579245178847406741753298897804945767180153664762253496494149313469191210233772240759407415018304623587027421495659586198045919353199003209991573750333037957459386419335832689964437539244697567290565784175064686866412182594174043335877408469784388593427642416741029376049723299765730009024037019716550016285178325837609399559464942691950842250589026044680267495856607145684906143981016063379611521294775616432101741705942176788316647179111594644161394716185727733432739279355285609093453770541948782007493514484623552154459829305531074871812891707848726655904535111108973462421274718343135980620223163218690176765760338844405350847750013620519686015575833564229915627483445881464369267205345927053107294294574041186034089431659957711649784647111296596178935590282354394677123228746030944873529972300312780809643389521608650013671232617699063598522301741400825106181045967458862619099943238203560092552080764971627454222436823431360841422469684979950541875027089731349576008604617827712507036925727540893941893158483166657092298719956171031532682116232815166585464216405311432499997844664219810192645344416713456408707277677401725995272923046612383637742939722433017231087898750287070588982768842830926917387097274757558067582261127967440860462385632164802051620654416218012476967452629896067147846561869478015023346440963464889707133941515627397855469965334683223580801355907959742162548990147587545027990712908702351828442670590406214549770067440147022278868227333986088288007947443542694445888767491075239597095521671318835432133558360859484092110379513549266576160602062347110775521526254946983097508983243764347896368887873294583053991093139459737369133416732313570433168598192210740129005571252259101687919270459902811829360054042457433303074749598850556682408216265875550823971730661434200716233610099001211940779621453543356174414788539808857298674331521401657321239655208077731134259894540993534434064687852176480328769627965346099757876998144118090031460586617971496986058868201595335942649968211823895285826078369930351548031734430177674186669761151141375899828667599847902042951009332873664262104961300015185405114928454801039152981934236208548430855844021386626412459173706298934501037497131490173281073043896304598469862813218663219277729446083361807946395171776819691589632274229408151517244589826073744765184848782858823496109795807853784332371630264257534657344252733191509672435529708550239577314448383257595793454889102771669664054109053881295377113292951067773357109801082369284101853181183319242015673165993336304818041422187628354155176647411942672959963590819120494526535311254815159291452449728279344088788182584236644044549138974446021197716260945002945137703345930645339873483688619318364609375151019524344110944010288621249472270015633763731566554947783857857927933001381332544732619245463973404152282983061052243595445515769309222472330145825832734132037984202546791825241385908651091899625846447881674761238024627119699968993813028826519445014724274976682452827543414689592130754447518086297596215310341816651188763785023478554868879857699431696299617557042399726127372638358953536693125134822185087500317169746620112877531083524991434813895801624924870739336210238250859647012519887608518137023374391779178550439927146452677160696753660429387008313513159379284773605354823774444959932590421411643191378317906567301635761651891174346498810839030551212656387836074168226046470028251817502707305937172483042035054033830835450542656319152241584448458031706312999571963476775930797721161356712072275663829670602137694147463610327685443229704102389403465887029891046745731350617352247201681023342976530236071017958000603649131966947407945705368234229059448374497792844817603422853420882364085527839781705347511725854624299828282945258929291762526324658202346561963434904194751846533239931483321037451576085007147995829527188547006762918343459523680591608297881181998514881931295829053128721621710036132953028855925272390097596993069690898890253687887193657571899643714820655740503761218966222938366768062191740646124967894726570957302708133891624366881531717076723791036400803048858580421114940325791895137568390562861821251146009781821818720724974663023682890301740940830406495463004159922856755009115190565983346260069873970878766652910210991216389718585924637232143885851219363347013122028702977761018937976231075351851313660945473875486143526780119970640780592907133226110281444760434682321291863442067659824947579598548116270724114955142349703676440326739738749573678962357103454901811844046555056968343429010513279538942940110809539646612587524653657344053652313422750493031396988882476472355684241827890476384105390839304568088695338982057451575132968175484453759148099669523321274199586868550453961058386380344866570789459153381270937953865836139826338980548650907237346528458906801118924197521826958810269488971827125619108738557733002382567029032680988689044820645389413148295972061110179150581610874467966342950020479236343936123222797926787871061950479499094164514426278210917868487523088556569670822595454587445779454419743931945502418945083781077296212357598268377693288037866238654230858073559209029243902938032461020628517192328883726002010104967259037072147184274784685911763895489302502243173386607099503494051693322478086931057133530059214068362897894955860909201513053462780264713628334930440168051095499472541581284264497393223341072071354957469075578048472243430392042830038569093472843084164681403579988917933955755245685317572581751871226493504945769000956984992402601968833354038649274560749253524794432675417706767255972236592968649835633466569496909298325928825563593821390365701009195907531970834584868259528778049237588901458357851112205080245175303453383004428078686473196480140638146838888424776316584931468478741418379935120792016543860528529321273439719669015943163050250223604705188305583536475710373670773897466207057729236029382739841223391207971689555380620059581822346122941411850795052005024664818537924930156994048575494093928624331609645066064059847539143791031730979240311780279009112794940172416974232395677295113213663560749694786557143962641243964545310771282469174896260302374461735638891392462124716442875106423519603541403014473867022203075784698948853494874863922206593016963326408009235522382036522459308326103385870922958178050610921415619050534760433900926538879063659641134783204775184872336832372260568659324519635925233148324154914526717807612960827107286303553136275940639119673328525264483890777082687577185094917844786423312818253255449570404656738636017646480341235552622590266752987346023152398757605195649989246380666172183795194978594483780996094993900073189858083953790390394472505312381512535886783472061025251573075197848627319846387504958797192397456925886061756385257662781801100018664240296802920744299309120999191740456614076299514346974917410001226160375945235067610848013821595546692571243632372713220164446112492921410790653092070759603296011643438872090584038932032528212826538267333532560845402891795173885872445072129733560797682955639090604349021837673168996393613898116906037726845439886593536810030575976535820370085112224418717793441642529291601911312367298675342729413569142398714204698682033278983607900592828921156690773170658382367639053667348229765267865686290923891497003885582113797896889792006292988956747581738888366344700971722204375943171743966839240127057116383878358408268057491113102680414908606736862459879407384687827702667133244212750322582308657072613493634923062384488777864979925569145035471350858732500227580943891497724579829603050978694209732893279110476703074023777685218604611894516388794590938841110543392922759159549245468411405481288280779166502649683560289599941383894524483360625210599001799556174386593067969965795970959212118187660712434962314410216227533343325040803569607907971806001693458261359898174215367235296632719667170822438112575906426484673980612067552274091502058857423679367377314402150835102225666206210113092099005695490628035803851280883091929966471302661466760888429444131119568144777441309528624539636430789972849288896722654375178231435059759257477909334004257386494838595369355181604168596745988986067117375381246941828565445847523907979669613934019172560820344868143722098985042421613249216464132356857518419962917901259206432457087861242307499497727755361842117120108525822477637082099288224143428234490373781144389886612566224985529942313025322333471118345947921809517343600818486157497461301137425507364405023890689296335975579811149520453173278831585475387809261900455666113103211843602470909511359830683345255821798986185467045366270494506636936785672857060718083548225095288350348897548531916861218139722799289816761717098939047509418816137704803061580212265977766451388301583831912786122234886405742605829469560161676067684142765828819607625613475731536993849005919369749343814803432653326749401987514968300519080515856234213179971263373686761928169472982220578269876868230557943103793517323511200558140399185710100404614280537118751085138799609164788373516954877750023470687982275445670480182226628024894381872459375795514347428628435399174875796088558940228756786801955512087746957231232650149860249074350843922283319097272573617553848220944467478642892762183476077654681859749548892499192555945337311817985862668803741696142401223615503679137808191469871369610750006400248269790609590563663486311046759060091009529336040011375827933115390438485321183584726190452413442324749700411341930401120139546471400268421773719597550236861603823827252259255574125042639212728961502766094176373237714412651706135432185953935681584237933583213997134723957449042268051109136652773987182607057313778695464512934377891061304090153783921731796614308599935342593027814620155407861345286822961823517557467006581626918323461809744291760413588534921458782215635403654670285670974109797012649864572408273378368625866644078656224533871858051953441634728382929523987474121301018261764137387411964054151829673699666174196328212873241766768245529766915208084473759629229488325578981058355021323618104967328140336585068626967147988889153108492031788691260603935676040088278497645735250899547914143034285126098564851652522490208918966530669629715889572887437964171890527875264399398632000759891535010826015767947850949819731221223550799184247952125465401950315568318596351307674109842183217488663126681821814048801288760559936779481359003017466672177406084234116640537498814298585863650188448866614669158305614905542555759159440084166174497064573419186554784706869969709340425829761101644256811104218582563633678280532809508873363139814636904452012327233932291475344430216243940946497211151441192114650040761715773415006161208756228799767277853474984883984899303356958705099817169528317975540877848910124653097781743280185456305025554719804169865132313772216610007277879116363071336919940469297393704662675468747290480909734491629853634663480626202608874681622485519473901171852514302949853664522951705731142532854212523621257927286122032634480995286650533357806760798414201765239281886849173781268365778931472211394160999065052276824738225235079217852337871154967080073034403434087338410403600068478173096111538411284062287742252160200406277042216750923044555718188861512484415183565555435119578588837070447796717672861648303010018514452708570505822766310070603927237823057334392487213432255464808698653676927936379328489082736347681148175608119377446938876759174724012159681860847610976917105239703693362381156131871365611416234127975788138844115629800596057030205499442720527367831654985542050068878094675291402658338580000925823737491975644101530310065741203659998719689406209817292241723646259737417611377399522463623642693625638736184540147597391663514782569996037635937344577061853292210666673483102794314189606194591671114540851926720198184987177085017334166931795718059491784502051755128407256730431936670654984513230433531841918469361102641659192460396582619260420283939393094883861038780917470556746266972287528845486659249920973259205883651862820049367907224695369244265982182050157943877503569387921661094483002560315150177777200553611152514155656703690640770154047511930125460836816008070422807030543260509886382395539551487821007195129382314059471318944140267979113363724436845629475393398780936205969338162842247402395183747327213755564480191453828227659721543739865364787708335211277862967208653056356263744626067064383706848365691352011643480550631748794293102735469375959444327999596413759330745571111112555816254938568491297420459076896152627965176184259983918647514227208590870572376483623327398646211044103383205244041990583556991397298327086207947259394975731585152978497319883968365731303452164620868112407013114956927589079216852732248442020358890984546107861289987773572933927340660635427347709906731576197960124471039874187688383123221870683826763994727123425843274684695091721002882532487411954536246043455396626212214051427833729308058365246691367854413217823014272381185515569858568213242610202202217995489194901305480106424448203863884537450262048394586067597174738142625139709889093610759204272969538460182344700608446619211302927008622715021510158076384957808749782570663078355415945060654616660600855655578409113919882732978898554797655025371313521718530421610432769352104539487158524756082660363972428694510043070294242834664126647374622873819504842980843139544228560771256559000595309496832221111445428905688749489431967304247806593566888887714386626708629146753798940503946773869812957086713513477294320302393775523661174392411875738871095183754635872629170390378135261640105754330710255944476779143313747035559667047888679963113650910646965499205563431058896730944691392320049337595781390058974378136595041396931820888200853762202587349317545947743693980449229208129525124908623885533592591459307175403181198911117219265740162284810782623843341492198219427542677517551349834492649325396265213275849350680953308737521388576856321866018691421551676882570365200160522572672983403535329775921545115464486166957490616853387162720803817721590350281142461838247127677251063623822486612445098828690955242599222572831879143356138504407297091654943763366521702150732376995995756835577218320604988811239022839457895484735672261366257089780822570201047938320157911976275442384185800450597442951092858845995025237016825748757839158921005296149592714019680030953276724842398189284689046595370029557145321795638280046190730634105111112748404723169147112388468638040507948148607720378851887472961158384860692630055085898208077621913518050039084825743988607193958168858071116256648814112165722092624664172632045845768815766325289632193633680078805908131444765319560450055648632430353366931158696080384333549600537982472661972811891705793915856300522798726469594276504664343554716091044225905543355370748706733835067847483380761049206322431866299618089972147339371512329963073808414758076057945149096722809453633445352842652070593448945340185325047389575215816376219749382197002163208645011654461818103375631738651552286153794808775106654696243734638884185975991269139140715806977956522087501393496027170432844000617938370954086249665613335630919836563406316166749370600868984588443579383924585656286861099813811632903849087757017890234816962050044149611069113902232572394497257745891782321356922569198941646666491958478046685052672426412747676070055768927238068674386896707268088837684286758920908481640200617918220119365730724891668660431056837114809127715081695860312118506812451186938684065472593771634658053680111973118243085402270305285861401960437791221570308236356942573665621028627973070724509106649415331030530681059473420282669872215216229221236982378742794261393975419099628744634151741299580091818303519306143076838940741895476771906775551192852052674025169442063367175146285895471136474548890531613903129236156123696810955331942294300380010425898985778578348549940474894655448015814205388283450540370587900172131698499707051546613696203230980999645878382256939271200468735593666538098517850371147053268557152326697026601932514762437208669148500047349259783044118360716923257206386488709040684876122571697031545456811608535340611280475242349849902920072485870415290927696805117264195035718470201665440998898661764806529235933265424699426372549835055451498109014556204282342397250083931919654291160150043015555611780780479921966164375297003666249621885209473155633852495987437193282721589870270960239153434325471681462386997979887830701028457787441066471763992854453856176376381590821686130521510284416164463013125800184008649917889923402303967863755121464125174797007703058284492709634890776215078574485243607725422352934769994809954457490940559947902585401579414571666649555208761047098638988751998610634179019578428010931902353759953823728514295189293920797977801642785377734083902298013183600646300347764806173271804440428482805286219756983190530304602963294648586532752170807731393784479438056752579489683248840805427943856525311700891556679123015973875906826362599560534361987175485106253563262273337877973514140082106814567317785353947799846128267312263143597030421375638691451211040671852588135425305059510574888516982899656235809179503142053673696974762459701251029343510861264085201506462732707523165974291288789946761621927865251228601566299196899267892017201904622693223990549518292225974944809940271603624842325102571006102699132473980893845376298118158558169844103423971833262611546124922274461434957869861629395112708018488225962916178195136589498468895940957512434983721174409553046524604640795133311938560083111298084655045599364303939863816886434198017933770204093557764876686047778524155212169403181438777654694164119746175788509509301033997219443824919425180600558868028295395823521797194574542511666387051828880791140376813575271835428360226079955049659871443372258914378893378736607122763074322038310129549875533655393456417968796568109334037253231022821239316945791220018610374626586118222674947977034396989432976990232404632808773407317918323635564456687092354981737062846399776162579746612493200236623914182820528332235020006409593739786203084202869336101245139866414694027726232428955251368690863931928796699641597366297175152001396920575509435676069457031023473630315511815218656758230641909669217484013877577901681966509376118519897799062122937658953372114967721574551149108660799651880604904192631838989259758979614077775116199421047401701136167765627741544358531864657331734863527763587061627529057191421895677430189030946003676545186298658414063865900676269388174832038200732219085546077310304718699684607956317688922533284865864846096678698125425511018424231929311731847183824878674568676242534629605748288207611954164369355753095419784358931584711408230438624139095583389117315052604038939667854597395816211428751688082107230065207411541070659484891585906573984898843290314255906455677466009535281011364138627932457730642625637647687196774259725849671404137992494043349336712264983274188404830589446674181044278776093591480569142162519006741625688954724034132817532121498321592318135534140577840133693462069402015150760461581247104328906090263687526867743938948771139816716840048385102159577311292028485055491531444561113826358285612129659464201140816160050369978200380564603897954129740756128177123988463824350629296253007339509512316156730778692319109509803984200211833501551609700227792814495969726192292149365260787093320359657324701536296500450522558015988020002680915717000560512870784610774500188468703297373686561016813329261930586133899881246169281143308433108589353121067844185587802024944215402375179614125077388615824748102565898114233217688469211673341053490653244416093655166840708594711835640987708912713135321060594850132749215940579284623132894790243157746686087652580192595889393373369462819523233544883827990464443489376400808372064551827783157362844703989618145583327506063812465803902027757971594072034379779921686881771068294831866548403104523570307954979200304346163213504710968397143426455588977100579998478417441458843456208590204106208049782806190156092818002969197265733543814290968397582063926110104151652195186834108582450793698536752508949409341625648803712577697679708768171206530015607986846835561201451810641339753084571291097902749944506967793481159925465651010527016332502656483155238057155360057679276619252567638344498443320003631968663190507224200904867072545930292491952167397652326342830481316051148874966866711909064605828813780121875360331352669535886428287375313407215587507296200619437723835389682557298797650965988993624716395815436174972374072712449917330312650563704511559685113640359767665127938741004019801586491895331928945728586363732801309785568967299851578708261520619758509723670791255997785376756899614901597623827091957017032495658506739778424237268150953292466705742585181665753123355666156383819130163677119929259761085886161892735575606814324940673529309902419864601774043032938751449284741867578647577967419648588067348032705377518491569233575833870551552216376418109443576236310664987904679987211734723157888646161131671532510643834561853915508307397314781203365717421986407920612677471612427751942760381809098559900694844411035775600637135708039459911343978875386486037052846963357890076189154973303478574331344074491941501941713813052448864525653954357503733803568225089983327555867358973149576091471048734989309340982110480655857050681187448231273255147605183847902993281325059678387597659095614723755357333024546900293905165969458345442855023501017471411888320565104816925494120865250358534399218913081242615841177432873641612243352784560065619670496329723999688733208381573479927472084859326141527836018020742104173165893358967110952168860728108884178387705716827946224407669097817924422615189711733366916067126799664345497240522089625749462067085248246223381243867402919432807234791406205545209296403918720904409765562548309703584033253659173327823904426130056915118943794014014542563750266129630551458078341149941629508908088128867993089128395193480078105771075984071925369464632497293505874926572025980284755199090085688102860799752997353276863683422600316925030072035739358240399295810870687564765040885121021223033007728320411711390943833160720438197067275287621060349892962293755242882679579062470054142128779486967354377902698722750682665366348093336039440327111160434675726311270080793138602441593296537211904050036504271045614550177138110487722396743163090358549644270398622522792714735693337126048854373025581661643488552993493421117223445396194992694486619523631659107913147807501062092787937322298813356974612593334731691132333533894796013476612481150391234667364981153796933715565773476772019040418145964306069316601707405023982880962953325113107054715406048967418813039066556429726454023498266193587719702082161425855978602867039594093169677277579049859013091563426078962582565622010736705339285974565865853681711627035932040898517484833683538607627035243825343984036970731064730366296997829974851111009032403385888784634476534704136180631245420671303776856029361042422130015886746021354816780765221392243300894170819605809973850237857087170044817694197089417203821984218063773762584190744095245434017897331454140505808818314591030252353853796846344408109892789731844668791499530198719261687012516704383643159151126075026763058935427991824467501135528801345208499597699538549630018093592169682677736781663730051503914967594785636940825375510164159976970039802830479522690849441388421112199002923685732589155801877839375248276893332027315205119899516951882419465252463877179283440629480536011525986184220276271955093052759042785715178223246776784799653568735130540684080690484064111006112635419246329787749722543211719436278860961375185897657728446803697313922189298230399140444326497775466428259993271741005011556548568037787768644878598440269420020470233321404976882754621228888209916336170545242261472952128072124477040681031174402801374067376068806037654130283277747710376369886694351325166111097001997654303693492866036104680327013422538085717500421847987530262353262852099165165327565823187124601685812605012652534135265316122641181802810815549681441417339737663182574612145467401446969124495501294796734928650335471160725798718293594303826688755538001433941495140837213831419998420470207035317008899689558154003304390859063596985830367631524154121059122093796186916035073386631575134065561222342421673589172408300819512861098351742040398527362202603916642188921253054114669829680997000876563134371857269733585277137410262785808045723770797566114455089721601831207661423378213807316691228385085437602471998906051339853325777528021280207640236788279750870916684424352584196290587350578304630752785218742390774555289780119026935860071683062058824037187145975426128876909707044022479520782260470016880044928536581038974371780851429282424338588947782767667686554550616333153091917810044639264239911097228907971624384385958216916996980424127482148808834034251761875276032708460271195972693868042919707363553541624890990610162692860032803911973058153350497732177016165458398800368822531506081635508403293745918688435406483405561577048025564247617555403484698758125569296004010942666013374088967988651912440941553834554525593986392771883239317641048990470058925539253862605643795818867284798306813549245074807506742210235096398862058793918042982492287595659110700750048202635125629171626463497479808522564666397343686073598308289188619371979712629861886572982511280392267187431619484369869458973353896470706356816130446079080074681806123797869745720290127792311632084525546113209563341299675020770182171698028700088735830463697780802852884441568138752508077082284033295224302660748796853012228824443558839104291836536982238289536769635817749345305670732319219760026968253531131801648241009294059296975917139163445060909116874596583136177843012955411693476880146618723164758448899225151593333734732954233640587099473352047251788570839212978574616167708750780829772246566817761673634995379458869593209749406936334102132223369465908758974328174871936119750790294865127603594719196294555083656726456892902432812769125728939287305318157342481248903532257537936771628543994455718226958181973075188667771095768355748537716358430411598915368738526034769551714316262904826636089847124754991900648382356229243782088208132722359015647632090817448460410298655355515552542999685568623503155548504807588046647421471180585246648566982733568015948590000541599851068012337310390580176377629415540862836402591971803572262442176248480027181177151391823734163359369761695768223222896067532925954709052036851957153254194096079422234660407223741822873291672079616426811008735395886573675852903777526014916109825405271504241710112550824436620413009265505807534061279376017533629654986587771324246508134099561949725071465252004312063089686532681674471349124761087434760909566312811136593136764431235245718910623892639697670185646074797896751800994934775574308070058523854670400868414685562012779691054754798613158690747721537457101639914107897965905219697189842570124497982035631259100872613790995866939504927390075577695656620973829898682655948826133190293634207947697875086855066995868479500514879953622770135137973796891816045167373955208053306208927831428092194173758559782469365695357486007523566143513468362024125953976890033348601860532277226853336294866576927004198841334894155555648951194628499858399737111427124322507067561069319663410220686870380373043409543208373034577588570052912306576528467573762677569114432167978715460933041973799594136989804557470264335586199418545033806656878525269929028344713799810425824633745933871211015933652242639432916379299321698249820970975440183800319571803905668690429706086040344622849457174978669250813605038379295195921782334695804181964684017132597793692235892893577003368510727107546374857625291313607525511365361283140210107059151829646221991535731148046663276564902894714991326286958618879401061014634048017723364753845383286867959979801385227899336483754766016670319026182372364642674423777510035556419024498250117645070245477641720677910505100941304321192816264097066972347919080450635460643463087807459394121535234258089488855879068983078748922272110926736833485719487598160171411019264179442134780807818375262624862277419324767014727920950459347069214115216580241514870631517175678850046665455711461850824819581571461085036488629255944547465745376940442910915180348001665208523837607209732779171040068302493545868017206091781327398331997798177850515528838221249456524566998571166339788837874815928014400595480873888552100554467370791942408731718983153255165962746611733404882838582545734805043395745863042207442451122969160274165765351396636478551363007164593622275360711150025047806531885118267833441899527971103269280338583241613412909294820076539057577228403673674097232083229526102836583750464171997545095765969051422096151610629579693181621780524881703264694307062669687727911785156902034296038404669767546046822636496047705321628764942312625616915628783313331252305992595962975597531094392271769976455244826928239400088307915034419265743668503554565873005237797800986634316814914610493716277564700242494094360523265388005436307669911177458654270748089921408096884445125939473865365662441936255978089075633193465896436630570560710682534419551413749734532644185820052116596979395289225210981035950122150422262214748442094739524499883448593827362947979641531468756342797903057015605748771867503210787297555254565600264267831559794313059887126721017525096302144651789052432966681356009013335932234038249224031169085326171401178257974610956214903974686196427027875457746679076503872816002193856800509614015873969498868728425908046227349114609816494525372883101607358101079716151930252949268730849831536761226614410534092548016517125384247453170491747753107811723880300519564125421264388751663452822989260031355625715924232316760865400234430300947602199697571514458170528392861499610676872067664989721677644726731596672547586330279589881665801275899588090006400095388311592505175282553014859094830605056703691481542493740669112454738812071771680671321664074919944167532969713618911411505389133762322552679206985824152867803216372233780754721082582082161429515193138738247061765462467370029592869108578808659737632597480619338495992741253318126499373661103653281657164388065963903962783299794626929721340754707437220957235461613762182438626916716944777533114115379285454106327213737339920349958577904949189437449668650270728423815088598075811504519426414649267277762247404778357822721647171466415248443738256174016244695095498234942560416744145905940582990378870805020964369636640689152819242741338701282462026841977291211719448323298212676298866798298982230951859966527354897376216533983612213998299191261146593067000711392004717197034645168639225703814177618771716094026418796777581368142893465818983015417864093947575218178439006996856221524852297918231383210511962143060109190143583124926531303982051305751128700975660323043430219601431607964188273104173206371910662346868109794362395150942739944830323412083794677860957143817234054151231599784628703476686493819768752132825831489086074479199093716726345951515205637506613477420695943652307468072948206920689736497068740013536171089523035340412702220735811190123430098828178797112198981513150794193022737868656653471603079053954668787628205533757792740452287203264597177548412698214476111883463482357851257494533447335689629145793063015760790363001393972993896193796122506336888963179419258103153235705584364358050045222472148498236946668538230879761324214781835594810329985437766570459098500151608307829399156714811618063456576923044333475866301154179849404666582760491230088062290103920124939373445422447524024540751194852562555398493154354153768714510887763383948637310349886378021894973310184148855909502342393037104589122159709747461398995423593855018678979197302760304457458587872194662837554024937731465759081181529134903502915125090308092445497798783590547847948851591752738720997867216585381565501885359269306314413267789783491398029452201817034504449461818775824435218999771440403600259158099393276587093181448991444326899409896644137781759326685464940603901221870008243075957872321128933054617388868869240475073163443774772580285818397789964618172520889892889607937785092874263888675385086855487638420328109448978809025410991951878448407526693861539605585094158904918105989023532257659702858278044581000214131893107504218879275491766517085089367310219607444823692125195748147415912899401615930302849525533553697492341951463754372156670527416502447566055081745724552167707122602711116346545195783057760970360347765335679645134904041685596857443637996598925833773042162210707056971347284098174396805848288516026900336911990931020927975898412250278116012648757974651604212766081152530693558489723542031964365733214717701173526831528533381212732230466536995746425793964436895051864126264134651155608241530538073104769467355841062680210896419525059925032050798429944419387383843152782893534352757797978470801729259902873023771733604459247711662567112067958657087495798554173607039452578730245262137972572766699225575290541833066941879834869105215849069984313758525963163758750628512760621846632406029090662623055327108336541197092956746790178330758288856674190416151423247055826860496101424456408472265732048508395030369440232334009690281930026824334894947535327952958958663158725070033729225288540614104407086971894606109524401886434709966853577108626138904582537641960367926768157934971149439506350423860168299173668057355651687380592752857481813012458492372884147527076005943710705154207403786872837774807164750073410854006190109544809397782245353127782771695246663943995382268710829793333150631526100559737769212453284330763356562953216733080536086696333511372181631571387214549245332802193786484949209500026568034619590430179260887317384554100878173580737149923009511661848008630965156851294126457227541978062051214038907933410434140956249056299000167516261305936896549373827790353372259397543823553507227177558799406663300167918051902621128132183983840542752788479246193114836947018991457224990056154497008542031016887622198833209077414638346669522718223964654769925938265742689985291443828628457371967305726721790947516156204651365898844489787792035735300803903668599172302304013797494472217468399375127736505588808621505914258598557078455291607357082238246896972979070227577008347690240144872842385994132414073686906261600315303666366293493005771810417200543323762652647240947357971888064849708180467544089280620408132073859978047685531006573088205028144826343468816278131525407536472870861843598965149977589227388794216258766100583294363374621333564223720869139228999815207432562373191636428151895092475465254465401834481681022141742754985735368260606707823734488989635782121536524640544783811665416582326065785434716937168118211085326118697430214729376814659014505504282913317371092381189752168729505610563782261919723838085016715517623444997874048468305402571953557607434396427633013818671148839522514720222357059803405358315305666218775145514652053778148265577091705640181725526261883693290033705729897823793532295353622504216598729089315151828989021027501891580775042902472684487432725348609719457338684681041372435896335528659813094511176540988961443688592911636932133147421738989881807549837400242451375045966246211796195959398781902097077656472183188654400303895736430511334489826410828722108718573886746653280469270094074118739549017105023578805256684919898056992933514695419997784496686220706612240279342216745834905855879438129835308523243623442974777138103100399994699806747993874919103803469385378521470080827514063867322394457365928307398614918931414795918638525601623906649741417652299130417217962998017863288589381823853403848498765017061164753561658258007114583687776835951943958432381962485464289597102012987422734234910076029037047406328585292939088457189878944853658253846882062054866831738606599049945601416788527748151357213183959838154299011390409184918903504677185144312768384641875613797183757869174059633424148743735966112010408695207698399054385718356701610044743499668850700764498307914082950500766413802169969074295016348430060506819254046787028424204526619356464260407339021674102034102270330142773370383578181088148524605949346023824944427207696545224445160563306419934892993264123049985158693579438631428578757969257943181064312265784235872833727654669862279594325948482258679116468130049690624973311750816645571049497593125325649803626187763935275939039149220277909193934615584587195804119658732297509356673313457530485215941172405243877425207181631427981997842850804786126613014569153164838403980969026483091301778583105816861219378601376570915739643178282532625194956554922559324672099099355017020881624177850206027011166001754753649235650251314031463040378563362943178902771347586275470249139790125757164674024682288232402308088353984178877689396036777588249579091784482621176172541598024014560363398279717247416293580625093912517491052249593408049871943748417655050617510268667207793159807104167934429222451845787274930369630167790994629608272923532950661166450940261942728184753404123835140854829522561372209187432475767292828820495659094887842621106866313489111167367998576616402039298589599273540949802170005629489338021177989737482010032731329972700590865919831853228129027923063365567661119319663698150315894399715018651827649994191509334074764580289299802913512183334064460954411622504366678391456855024865371796739992598494161810662092071770327809253154105136318580876056091563971157046808320404953034271966591434606285264399349346258525254144465487676078289188387388607922615546571937083730066386039854187717488510744869495225398498262757134133002400668123934325389910999707196676304910772369977700497894401147291250627301945251213790587497564293674079047680075468398022497131272976589936119348834183660565462816593574638617179933509546478743601272513407691134950458458667752557896868165992920707191165773133271310719728613701678874836986178861124571084932648103887087861414762778658005905666334258762795670154777176161440336816101120921629132907418878798789302351323207233082674149026842596909165980072833513824094489472649922517098194509233628317726204283503405011298011715279019467230119326428119708393533418750886695006565733857959793514405615299917011089904632897640422321064759173184982617730603464467701778146105075887194686209149631478990494375400115835339569000175573287911517206775782018133153011346737682414456260969358684111559813990506020025476137319372460477983987935120674803693621717833046947263948133779657628100471964477182704722384827850948217435669386076132372454523192858429623495405210785998931797769437448614747842782042084804011663058708230016153422771450261660618635625169108032451883480732681887946172215040231826550173138656891456905323009064210532460806871608237918021618408459718326424079214688428191036981965911199487905317006105490069789980097220153366215077619030836637448870920320525804814601226871913490787028232612379701495078342042940210692363237134686576340338515551217494168568233889690118254427933103034956346394575118913286749713806465893595286644247622181828261421097788704148151660427595522123111284976962972332649162099912307636569915098599959390787435005142464714558512106122536785279351165563083350348739273780587673227698242427293860654294560892836410455686141170914426807052275081187543864162272333795249575803015402782860209658285014614207958205339703532258131390814601001245627052959968321311838073951438502361663251184505152084402137481452102196401389624346841954101764301640472836538388187079783542030727552006741907611953940822814758558426158278451092278040654946047093122258677418010319212282916651786294952514153505142128161790695009025011798121767144894006877301460183624949584036108607239473947357794560991316412875688275723106771886461184073920317489999395290441864064057096955965147639012823135254846074628139567484249423505830190443956408937646727286603144300035953179360724522599799559210021606276757771584541457980462789202217761454322648876503263415128352067828566893025957108138703693625728360767261198531471165267455648242192887274340936196704453955821631733665926793435400090922712221886932645919042235485529882581404397620777236685158522292988479708328554816149965822019106307799035540021350169305545871456842598904055156091436181573823413741226906933261031710407615188984755973070481977324756325872234604262496925798380247458464354981320354814723557222414237202408934916915990159934008854224852087064370955105234884141407218897605739936541444108952637969631042088788063613075422992149636535264183608693929046392257039041958429113181365163837642720907099317764994614621534971344583717111906662639286241694736791064696666134884776556401246637929996225901954020699176873857925210911318932457675222212156887195171995129541952970799243729701020935785610559429920516187224106614067530265494825402808430304206202031365689235753335304794463157591588831727438541404766868421754242865937774424656802544069186002500418716576147715228358910601395030555640736291308905246793975900026853430412913575673945948343180689356638145660325342589651525072972023451702033310610135530155451273942975584653921675014655634419529944087288618289159027827662968880540614240756217629479534794291595537382588748772004788947459647932505411222888930840217980015943418050413899217888421241955249535042493041990538952963157224995436450172653143338565759127223053455934866719838337775522567492427070322972748160973441719981275919689237232942160330594863856656820952201688395930729352172587021751286299598448234915558755530151208245618775883292515303081180410624682791692000712665522530272049679142866640934182612510883336659686360432822567229419797371657044125864042991540883492256438203457016840307931128579296686416855105298755043422103634210307498411118054705720972703662618320684945095502983628457087563459331020253839400332044269804767251290613467549737322188504655084341848563105979156676113823042773820520713685064917129123209442410252552819029120129306465561739000137629828669781126489542393583816881920538803579143217305201395987710947014023717051603197747662195401270591861260910542381943574832921946084203536971365248906155229937638059089593106421418056935627121778534392932312672008813237524257423865142212820392557480423450593203667722383660762792677811547908889294484813783486269174365234097196311650098858324199133349127665926791403353134688248436462947693569762615298832419748934951504328390957412079611406492119435334786748848836470715565946950801565730860006026609341398585272844645806064801656921664896686131699649591568116035681422779643358748156701934809463150018522234167001323774461254835040930541806493757278738324953695464849775420738559242664528248397950856317998566453873777027141072749914671723945767213002624878990862633388427862455782905383265712408544511477259586990242131234747353826683867406795480389306738896169128778785404588983765020691946386297508382074043583887771925502589898345332378841662013641492574333477466864747997290827050984525263082828832345971705800442772826535359289087571591697839955002454959166599956849153438252906009250850827663545853028182057996860739162829992782927195495874979968526135712742342194436247617915795797884579533079307067359952358587478981860631143706437687062620964968090066670352537397159899955776567683736307173787634922604266388422200750835363356302041870424979689818892196033396022504368259075204498524685971656556249118801067452567066401232510679111481365875415053652205518403206440460134439437828326698816011766203867861230440365929928085675013938750050736740151222970165827967637535908305449456209108120256842633709314918545217784962789052557520516716463132315266363673915444718695066597983616335230556421213872228099956011560862896566241159521571763827325798168451027216700227128727912426459122656136004108969696154550768232284818831012202988568017603371934335970920032880977182314365113355588717118514566687242040711743609908212490732257168022233969650174011690866697081191002975659515396689836134054648065287834163799876754259205277479288687332654391473921155124637764474182660695124124140669310813368462953614834575598404448254353288254717999790378881261868480181564185596451255157515804200209936790480965988935143478398329423602121819482756205942184572689800302214681834269855066750063552988389909618233367465950316230067951651604580366662714040642043687509984585066589141678952243290038601090256432729188831266336347580841100526765810600741009392032602010772661374254219026966062341251678525520929504219177507342279963056477790559484645243849906250238732794533000214155546129189233808366227024547099351591974608180872185552782738285898785935264270098167136739966007653277564045873755275152022107376472307043365872150544267929432356036840805785506967868502843177325905462371413911887323086899176724111839740110935606383304500227464140603703762064158836419905206628732734539344136853254700756388070157951791466644010853826396717092508338177858596019418167293577034454716361246346186501754882728060374712755801186267601230251403367769787400130217706877884987509219858435907208620674000482026888832038295145940545815657929960005757619164176268540070444763929961206467896420941375745307588098294621177609315575626062366361601027604598601883845276861858447993672764614461639179194055327926947992424715357848624818890671889776579356365012555440376997536897765323616104795943447163381660941039886239695410231590215464965793208280900013820939816348714070242555181324330949699897848414958570944570167111116004899620426136589976240992463474758665037201549408717256026476960242066569723617861563786243976586183892045847091709969886246434107534721995772614767901189063371637601879751268652587621169751918730776429355569517024339548394870958947034901002847374406726510250424137326209454598498008305653476248910777502312769775014188540877282586773218959873130519895859666789419101078011591029542896008527568141859797868320969191942780518498989236387708573468301588187911493244666080901844967829895761176819450464903165943834163158612367142402804988383954588918465863851005844380906292866863569777433543551475758973220991212784989237106291049454459331019289030597808416575583986233586137528437982605917978644314963273246177378302415394079827977435737748650346809788406562187467469287725725295378473594991440074975912341189991420152806241520460547134168887587586961828156472671189760382670578379890528475755136153450099458048186469238607694183301423308991921328447477130646676401720580345093136575176666371283479841258470660577748376680577142929917931911021508088868487006268803839222425206288733134014015661972956860610756296451855777469357851756960122313920980301671401222780490033841822225232036058140504788387453006733914669012091740902675194512946752172890070532540012693964842194608958443149447813984925772697989925142898080428248518603994973711892906262985638259286488094296016461219902727694205816889500721845203708661282444189673971106959782981969914303429846525109275580859628719971624747082183225980313362650511324870352467785994910065381320969368509849815530120692210952427168032871261451452034327735378701346720853299427920104135032452912990277611872042819341894770113573767029790164518056839673895133928373342832332285072414152181510384029707626449870778334041084053295367676142454141272616892941834389026142387630741564565566023276141088862727385022908481099096566758138503851946980631790844436503439473543991407213226815474982783316625318517779512413617473314130610063631510375065142308298974630038026961586617328428375720780279964535691323452561009743310134278314571927630093490253501002344520214488061172502268543869554432997679722406836438965083858528529752879465103938167757517140502887846641003684345150303123876998152410746633770322897375233155457207856862538393122262446406673203239068187126845017738596935279876813525563017513872830067308330425778264697729801013897952576512824952891245326947944598010119174176653202550546657563383312619185315007344851578059219635420015236756508000564879774296009782370309406183629996078651144076728396336971066901247110457071319702502922287322476751980160967998251351554910098998284932224724269256043669746004853324837329425176427818372133043782303271644840244398717145092856941093500256370131917878301600888382234671035362927711738559389261415637871430027258660086193838447626481960129033678771017195775963617519393464980271217355385973498970363405914128311328904658322689658748164957160911546103976093568460337554544990315234112893046669169939376857190303615556331090055930150753387035878541025548369649009412626279277556308508993779175974598338582210971376332703261184411235762956722891568504916421998309669472698495903718597550376811420306508376637870162539912167576223764542036061060379215287364508821772254211031685904581369973705749730760665044947810237045293937305162665229509815141441987279324424744073395683194900986155989808856583494150132270931412781593125762594907218341046582127670691683807048801881736250615240994985249180853754013077014909275583635651435112553334173517038320911021884352277341612031816689880651333707955089548703118510322916548975016394478689058754700255067662829764625311925022525798777850366630069885832317079738153176726329296246969644073224058587135343436587091144069088567589540057172875687560706026075101738812944813323097266400945812391332241754084491489485991207170633739629859978191682417477110883192148979478077302260554279869382779128364760826400273202098827766109898361162445767334673459727049968798024975201146949504300909470965982582492115838227581862506165523756952407511616685977401239062075686794741422727364876286090450242577973470850388262095872200699945160241320984556127280291511256578093643091905208494450183550529137498035953024266539897133480832785774864980538756048933032532394851201972742475295995777320914958904722795268206214770973126348415917395206408378334101485144397073148327325269448943945592925501783018660280155540691752731769164420276639076726377707952205464161738238439855586798377464509696043582166300897465474636339322059373014341977759476880808403133703168887081327143622910031461134780968761507767612118632339484533196240821687808449336723421836767692683348612092735096009340635119274801445668817409614602074676152577094115221626891334888667335441210775116675845545469323451892382844474041867156155755775937576624005899807364870049563691370783263177614797224734837732983469096434113699062505909597166458598357758898720738144947638462805871120846821271861744389181346520507877043446776637967985439465812537850270389710154241107245563065003597208308360218364063063768525667177036791423907518637310575897441445887218604205269670157377205275508391318916273987968296622085365683038985832416348735237153494679817300934174354738852013522879772570977045706842731413308690294122935850129776152017757537929576947930155318100167800240767138682635076052069862603061802414371295055103498137421243609430285532825446880672431117201738235803113879519978864055927196729477504133612225806288715624876974431207147330377312850850828404798966867240223453069211491998580532932942251597280312438818561050872943953768883158935972886813008687174087470621355510250419771901000031412681524743257024585637151589417789158941600758649673457644633181293712506299622019469070402112359763050710419368436628547803342989132276594695025391947519581202177074774683896148049234486171881904545146872391748767016745769324490322334034861611033674945484891054547235119575104695554700428776270237129923418226148890424631391104739802164979550440494601241857530642266635961807330056059577324684928226014139360583920494362322313819725660823293376587681101205404170379211231270284957124159338821388445652954233753625223052800159691261729267636882977346439699879496015549670160273298115198414829373124150466530775949478910601742332210569777650635760839039370119869368117617054750595744528961479889846911235718402855065932873839692038410633268592300950341013575731884893895810868895340529179212982781130855016132007317830957691534046596693871431423391691440776884914801191740933348657122347651572628552481004738114453738203724012402032335720668317925075959718689194723853440195119384361503061706098081580915683465599912695769056186005377568278776296159149455211503212166356465394443276880945837283288911920265737432154446380388605714584622713801709843443335074108723499696172908307217067041239535534967996050386708670817981453695057834681482807481024335228607912982732607486554903094817937272018997531241879245931939738594031953753435803330028804480264825122648175119425149039071560228918527449923815908107036402311413154108466551561882268512259360704236226681989427064244134450314077188167226340100237059379869819304075687254813484805322896319292824131336290863862247378127892501780459882342222293286394438315681617073566161593728106639416808746400024071220490923797165806180979436123667882844064291210072770206636548345702710972755402405480494554186075049923672332128227233714325214601634993731716638461692700393036891728561562206192202475784449772594170793867836026833377773111333330151263807457918628409248890042360021855669648100797384132580713394783857536064982183972832724342551677879379741807630188711388883200044904912232505109913322093081474731318329266066249549834587850446373700689991662869280536300954058172719657620054043153539559861554171853197373248678254683087883650233414828734158837630010620844271409464196198579046437300041269608471648689835810285481084601599545374012585254463530720746567552739792087341847939021905816917800417037304428265190409415382039216202190921569251846306420854699734563819449596683871163434922950547459652235533441831411503009151550098247739826814796259828887616970384713813016066112335755211974947328439813760497487422892482549759530173997228034979407819736462130220645705261872508360730447938399620400482714216876340503595039788192737065392500296752843870126946949880336755039067582900934414508594802256907683628125677900893890849386912095256900727507994644619246403496316797642171414237391943051988631363345437488786453482377618598187470222889146119882510061528680591838113791878622408077101948192408181874950223330066831402716308624580350263949494852838949924393286723909510984674317522642292587947111316365500676581634701170037275855769803484807859070733019130013354356468439850941402700951368773700851394800763288404837246259913266230698106909770443205384603369500775438606117852921987148214123126338936905737615807825713620496255071727029797245798035171151863987688926173837043123876583359780635817388990800660960536090088997177532202139406466569966064667326099035319407287139794723633229500971456500306814205174031920818478492321119133713545893740467349412463926625991099282742286552881701655572609060647744976625044778402608588309763015439471698147003871441748641445154616290931278837476806151299269015303515187224801554584223048468216547056281486307118191566338063466032330527148504080517789254154529877155639081513945965949028111717831262899979078829474902571471503449720746198866762377402256104474645618205221835274404449944919634320132078282548376793613137512817222388035714082676936846075994951184394706343972303985287130516010904799207367419158211662976638989591981557258433853110868547696470538701916746710074438937900108662858122886448019158755748759509917573707079712208856214576643150649541060746986382568056760872944260527013023255814353158692751107996677847362184006518480569181317192669847749526172654273626850601616311773355412019261059928676838966436604355708215247883489323057840788613656544891705534780774816178429431313476934456748038726060076672342305254837120480948401684028299019518001090880669663663803578125501051851237781896669852424441372078581358353608272167601048362360656002422105504252722497955184413785326637184832052310053094463582432268604151109239802085018988096050648308528232699243434970455424715896067741386231804870153646474419200943051979460721604906689243634297782471431678775050022371430895767300048670912964097985589955345012719662517675336016378138331113866539692768368046539564351602631508385427227136663863954505749276411964257878508186516801414044848467175494981679040506283859757044832742800763515589373469983905726352513918566812685111981127835718077575543020655604443296722520841318388466185424905440909010981996715357431404191893663559221576990435100631064009983903357559426015698937284993868421048094531555272914873817890860064381502361692360231079930067011938856878948561132293302437471332773669488735925176238292257321911236250874221991158686243846096213577784064866988466600595443939016533104761160389481801364037027659008874249546942407470902355882328514594407780500335705178455198649250137680361916976830399490663812531357577218583889714599183171669380597268932966557775255120503985754975099382100364903029975637597872800049129023394673443929984340587302159978792442558908341516892007951760338801602279075095092546715076383965436911125924326157142169435396120894735366715415005744664405564350765094031378430631402398794967974407161552542689375919452978350860917202131347043363275972620236350576760946227939228665887957436690526140897735379175571512488240306965162236792829157562899204975750688451180605487853547496781356143693212321534632805797165294682214538099181360648031791227421914752404063982275441040778994029397812088147337841320123840655028747521283623116199218418274288685477058140214655177243264779977290742120599667863617479128443252023187457232855817235043307011034329455026727384471964756306015048431363971532759853891917470700415988086985905598570991988026827314694063624573624529885652377790260745875681459687392134946723847803789466361633401344901287358501484616297112378300235686225821379137406148443021852898708647950507619667143034451586878784269299286596563042844018531893356259260055406254733520350096664039758679160477382482420881479569637202575630925849134734187247573784778628094060285109111924085416928036671224817692594547198135520488181452550589445453619540106797423101508696878613803713628779831216839216917011424517478061623518459563301636243466443566421405952105982067702853684790576408814114310164912553224122456538652267527839786355734982583284439645026602335219854013989451353039971074513356129375590723266010690296866990247496759460867729061276981130938715534547498038120662976679669068612816317556916293686588100495259955360895120880309304589346737695472591658986265333875346391693539835414996266167773684098642346275673819168327732900075137253454777352421623079256908498374885484070416200517301716992489131328820480255212013071018359954974013158940106775485748064110793071650802286538245662829774551019108625417188829430928370487633626562204866013243180180078271810851233097331176567614490534091929553362026375974856203417912539151437577628687043127508068725270746929704610025010198334970981771171638093838424379932085815618082116360146631349128049652441840101667186402520341700108740425605974392477953011873900172132074797982994446051370703124037525643368497583131829915319088111214741755792652315398450421408814298801120690905207799549959610203279509184747560571862619841869692898073744236698304180010745020097129824455425794284791663768931309086708901251126892909981637496931865202036821196801420505987373319314476098475777461210108067674757983371015158380270798481060056409833889868421609056674395308514543832505206334078338629652364522011686756011806030529423288834265001633917302175423211161103196358262707485750714250179500467707846106756174801947618050357802323073634777345648355489640292608926965553587454123706082163553838215580226108721856971269610264177030450685746151776141586169497850333785914282457510652620467843452559660645491513754041080863459660322220667784583577932241945459611348833688703768876678820876745271024122905533860990228572627191653233098439540644915615888776282657076600131706947679517114055421094159468487633016256018753322221354059422958655615159501631851481765743224606535588369940449077843735232710305000772079203689679362275138730055546715489741617293950516844082991373989314781271194379857071575874606489268461264854225444993044049381119387018855893988219358772676223794784504791677179155800749518009461603221344146984504644220284710881805682006100010139705944335398547243151472744960546098500313047244304185608701726722003670566930158686769396473061926005373727896676317966756402737792048783052210112396592026418439120013984996216293894449723480708357841140674893254733674509894235466001984278509942429721147424972596285427548682004696970672316771771944204498275278002697100725659512088364339287792707533745401149354768013308985496994619075514791560529925224547093838422963537003868718024541061893607839052279453005070178865051101494647682706149704050227402141253285292793704747551426684286445997903035110143830378765930341357442991603473059908484373901983108951656778540219033331169267222640629798737316862639905134106227558461673407884573990001679555158069609326791257713268923078793352768525999765598281453726273710341960774790586833189080607731121470508700681692647349879119394740645477802486208578583871388774771965303752129268019921141531735775978514400406171332067588799267391913705107955565802737482310142073196464486557788953318334197022882395692161673525807219488314775981462028155644500127246667832833835855981621554105540582585868082240701842419374725469794556300184501310654218191570142707702679961928319149016842389938129868606158908808891107716245276995627743973911572055344885754253795490526296133366351825882823105902466005207331176146377187372317657679368268791725131816698674617414606598505725569323477443678950902722783634193328788045993579477319746612492410603206720622168438997640587599212406872023488748450413336070410203573134465090955537323271234997663668056437650059067531901660341959299898841288541263189498913284116108718739913722243865936238516684970753752286430828089147176315939698627798648639964068203911676606366824889070829396981549907382134283284986554885320039671065318424138662766166435232021638105126814272506914276267665585442407884567506701043813320607105281441794988686310274891758485770174294166785357928973910304115799272208724846742837993277091495683282919321299103592723919435298796419271591948480719056346452714146633742931900195238926986182579597508414219039552568701590725957128677020630995732930571627301370245528329472890010697725996240499869016108961369489471435055220140564543458967455987876296080619725350537316493808282651858956749841400439916485364703370726188438013758113672211332090815059652209228498908956559031192557825482429550904500426946085492321253905397857501834075071146551565005233377127294223525089040484267017215463720990623421765368175750294498244801739570912405204166217420797056620983874615430938237958799417982268033940733955912779606517516046973699982650541109090098884603860645436724629839942593518455072718347861805605077593878978154074863356060862730954372521656241712539688225153250271719575916902171978860733803081357377951920207556190372436146600034796889234179119631145883073754113963446066559292621221403483509659525357273285308885576389814030042662285501913273172919012064258464358361332872655138690312349000299284770696864427743033073419189642804743919429875790091329264950160973609040559330621086445721012439021758978211651809865454657164844391606357309796141606558353460144913152356636209309007415928904025036644424127211860314122185422396753934093404856571140304004647129830193775101601537400444573294635983389449737794813525070816300311685842247454198884104083536830568427995001433582946234982053253816811963747881389013570125567618020809195806379845630672103864716963940455972025803097319024161121694970936965030666201875303626849535914271915554439141345672273446342466174836308369962580770709650399331169345830224604762270704148594048139015642755069261980821162579400547686085005694735956446788490054911445204597324490339607206677505425452830918801828768120646519909507688506251092141555476198586312291004555071120285127764044966367163191710648538277710404335386939015581953897401055421548979628642254341557161303131807807289018653696364758187642324350747058908662666837473206597753595801482564653969621363034685493132559848210364810628731188060389508293748825149784651232997918055920524839609662838869355991747044046291140301015722081118121592865352744531982531341992368440444921380035865637313234874932420355377777849550519483640805506805155416511042297249380861916759244181723132379502607078584917819796266687963131870510789797595953363655297180374786971688526345692152994708966405938915570280566446435440298040299661494025898032754678358706908442862925256592611542977416965903562961926009670576545904021409895268392774376138133247207685011142386514827647481689182911621011451762654622446090015474943999948702587276181421307991745836255301307630149342110133619129790599281285761856035065442779486851263685729386433325109609238286404741018962182270136128363812519437948877671717374639458266070906247622750673918757594641712480792026553662279228165865489265165785235064019791831353801691909693746796587510181967036820798985422127754582412652328003498253636152527871664523305731554856306013481976186588343346985083268625876094461025327324632995802383782267690962082355785593506301634433959180121537443811431666257123659108155065304441667307411943409655381773682734291825449351745351520173632734869333284713047501787734477941590294780775095187129072554976192294044007811865526923367270531910590423953337384227373222564384777982493779255851920949418343157846192918227601235552262057200183227019068991775791324599790352636231036583498495568980429988011143954696884863699660198282397221204311317188402458600963789792659635330031659081942987889592728507482686148521606780760117125564743324032874701956277829116783135505280557572235673275595961267644006394877187035488940039811911196694108105247020479655480165466733794489210352683442469428114311745214604070953331006080712726157732244272737130778053779221372768268352517049586988695354835314339820131412932182073976160934344425933561330246319002961620137089335228579264838758989938167156640268018889019103488527243243518468885044222237453781339890602908194990085637948215907846965546015853052512887794193989136967123991532498236069441727488666171777573753899647221466741503114601915002853673724412147488280911209988057884360400968705253572592390447868344158777341618419806372408594422323533583941138415789482287786846880724573081329905588415608043062547614735646823506018929094291962658625182536613208312323499378495663658332006701945598747031805674729384270936824483523448761509095974567421165671788111163110752299377345426384689705774745647124795426124004074313699808419625389424512533572571984351421922382527247363301173025606061559141547981727790340506892723344229609569635390120102726355773929532297301070160282981064636387582746359163194895827615974303923657726254599025137964749774382271498751866171154395603573530043336510393744199268194172447723198534226112826213280853676638271772247490263789838293720756589033389330416057890179635771668367393302695423526949791952972523122046489969502551068304616662901147504578374653443058792676124028658703215757431941581494310240939629608434022165257303954631706209442861381786617461926334413781372159252231161609201606765316802119817248577056153790100147046398590809640160900440550057814494814893442626453383742464895544387832789362284028420209483927122786613439239620385513350304002424732357070127060512186926072886010830297813793980961627607903168653903688874217445978121977069446493450490163684171354666851381395535212307421830402734492683294856774128455492375209432884390838046900767923734126226000954244323408940008513587454606561864475186334777263380383324148383084352338434231294276422442074271493556729887047806336591785522701253568980687962358231460711811833798703069250817537631288900210966045430225576156707879479141461362305231243817005789887648832670801088283842298119248536775810991318761108908250885675556838433636681767130205888477427418542207974768085533573054051205447476889722659591078167743657724380576771687472328254016529828789751578000127708178511984352782351478266706782515467097302860584921434731029544933546780591638612276527032892023115760487808286551681470285687687391470901143425207843941307049908225744787988194629109049178181968903787462339087746212519937286107286232903976739876137156251120342927046039609247310514356226045767281933971367761608155784401109938636670761996483032742279269023586263580224647827818032639776393395753055633648121845694507083386090925733222693740177630635050896358474007039406215605993061319745789489749226368265612581352148652439380974697177551478192492428975523126568621814717337513413921085284908965798457280050191467612220656788088465142460134357807501987680863667648592797948681746137121977404804698000220669896436802852373158230923429157691103452011638184306418240102142413874890923397420801013624247774623890678405624053029725594584796424253945140596268078404604855794071037565208852821073607137299049082794721170630910295782805344813809656734481981765197635450109209872008111859825273605786621717354693060400931004167102992779354056700260002933823747745783926100540146708216706014151986334400659311777676992087788264721245928135015622237077581872715231999181553891658432511179357760848912315864177337255602297083901461764409261255736181457537084733597933715642977466033120261634769206079502888597986152682410567703780973535748018179242544358269962644908866899229583679761225604580790120306959758395945905564273115296801725921197651430551684234543498661608792093064780332922015194448304043616275073077783326964671279516253409991046967627008094293260874594181030554235269768440938918441268294490377863590927230612510884340875599190411119714120875210271455361415857072594999717852487031380792677604699090120906433016159096651530399560001364718653433832300874676880346129175155046760904840408713906383624238788819046102881129049038122478866067889430039716967281828819846665997827512145761196750441683345118617436066862216340134073281208676719730131623340805023999316284796850489312632184418634050570510446631934181447132809896779467913754435729106992844235165643689463036299404112918043901450466415323093078931063098487504072165821409950394967155397900971987546911947658649915192607932557143450395301867939487262308188454236578579959540217051633191952909498272224897790962048201635875868641034798368551887950602904695049411330478430970305719238272577782079035009988632456346695693915950904871615648354976927921600949056357680828591474115441135260022031878485622048979475271607871336169999905224027632393251534791840746171548922256466344050466601146039841944163461428600839974851896747483967925644587560781548135600273884621366994797778770571152373917134033910863166808654727047337279892189820371365737151832576125313392185804318779039906448124497855953428649153100087696952956774655776870745579808368613541354052082986656100820113380663130773841291869040807244989906923439753302998594011523058999683748903289080737044243563634355838626061224783367557104482213768814826894697691371188472601688032172829882864918865854261047267404313246320824393469849085858383316838533685567276391536526362328542659391353031088557776065315972833883970492027723890041752476217606521365016666855819524853356282584248419142189273549061110831412738243289666847542392408858107608949165263614085829620707592845688388783480178973658522618064516938063384290710682719915351054401100395364287813328200182708492970724185131033102815587457243811362018102407659295479832584389980913510656334095034985776138352051130379998876138089283045415965005217920771349223098391167972208382583672868255819825390919495154629438659311909284144869847780241661612767515285596480543011658525867589445726228850736494614539464880421524570732664205957398763091227028775957606671038217562275732099718027205572062000064348613570345187102426359792954041170279559538373553808744993833331887859448644744001779017461939064465753665825308134297274248106110235137274547182285650221953035129596117019236383234726143862447104860162056768417220199126967868915681835914468941798424902339384069240361228035951057357591117202073180907342187595631804411389331249293791282029767204639572419737173019129600543722780466109184782630071655006625609505936914193582040149633484968985956857835593380120459777866384468351823478040170913941203310579944030675837993837295330933063098685517852770125068880833442661912276587457762814447937396969566895802772452815968747832200808050961532857717769016898593246074725492511470569048832185870061171053759408946913248212708795919471273224497543989700597762785595401599831967029162572949003366050397885130040781967941634950574617437291739871872185075615903522649627276104870836475755395744719581448933413449223342668174660699079333838521670278358463534783846314619594691868034227553879315449584882022285340394472466238822022021498800409344126658040456506193404940029310855751548546616055962584680229778380523077520449292513426439235082212520848343876980319343337085973597792831398104951074445000402057245807111477528258369519138186613758723619849511878356543587136595821608001643378616330990962591172662951119911857897458355634411626265553121257663589224856387811090277807659818123553619292412464715565830098993725873754259401283069783672535091266973863174487645081278833830742977095984273074313456863244807794736227515808216337089071949146799878491812135814655776533356574184116005532796563115670727971629068293191419801371249370064131819647045046657512447289939561065218317900476841950173369785328334323992090728656547524930991426384386570045606715163986478503926074564591488009919499043086959347917019151039203039631073614186085247880505850725217732473603275487748437163739473144343637942000834793950290228156424527379309684498251934645668734343462899281355275863705998420102729869925228653735779510464461523153711610876104723126869649809590696979487640207673955033243650274243715452703565406106768569440761985279319715650022001244882152857448282906236616999908208822808670985297261117788307554319955067453577377264982685359662197579241394850181782707064646713612143919628540924469155892742684926571164799926542591366962249920460453038160269859764703412200089028349888249508919836392103573330680581478937397871168321904243053645805965396270307593386530063286691918176047248031955606746741074860493152139059273003774818572828884602847502039918010551699316641484736465317803445376248252209388100732933966602046716900491180700251250288518578457131393746378892983314156253013056529784149353340173478056932243119228823652207221842894679658629288414735795921808852777536533802229933080709495536174545080998693716483363337509892446660206444077912493159061719952572688516227035849570190966009580021935061984354468319493254062697984973975534370407376469023202001981714645377845046952978037964354515922670331915044450902799342500557124078172448613468694969685248475073221969070697227524553437851098909346925957495668046138588219019600580027963326416774104304563026017091843827321761054679104561306883740532158801746741968745177491338828613144584087733895431576044472747339125817550154903237177769920784276124987646034429329931359825385545933651026656095158296722259410311370621435824817263678573906598276580831289987679623426139232594508750640420608582541256112529602966903741574188611946091558201610109446123776206826920126485915040276501753373301307528318871095744654737346922020401174453218050105947026782514247430118735273027958524654532247922484629635954008835497995014290172933811477376018673732438136407583086061639346192454907219016381541406665548252140826317979381096614283237689574885681913520053923376224133311524588308084504770534563417397568841817541560285606378714273493405260256265261564193167288890185266075477044949300747962518704092428107188560278234368196532720727653620778315947567352138466626107660630168189793194669528829276221990165403284784735547586849764060457210100087514394911741247588930647051326675200793596457566842731933775092482633050753308862594267291292981242255112572698251934257073106481873439925055542920442390465216308270851203794399128914849473881974777887416945748638863352585074492552246450831848361983955933136461389537663684604340336303934756043511432334133739757073831931737497555836888593709832779846555647020868443034613615800589681468033776950514283525031974354495825666794019571488723190164919623920845609174168446051880828233625992238793790720861785164806012980126602193221145147700953412552180098483815266070362072296858704970469512172753295327796915283481513262105325207122447569005663112962817003999364357065152577487901344794750596815775955902122190583432585383446910483712168982938458379488932397523636153857188349524578019372793378054861979240261433146419739800243649246822122287588720359747624933829884565611656019082783690394474588194777719650042183515082900550533926981042778848128192296132661750147599857830538545210264656473017858983496305134925479123707201604160767674623498909524776768416800863263227629103008626706520462569600665011238211592010999216476045787580666760901734392427380422465272379376125964851345930853154761864134397369971036021854652930276979078312794749902146260467386736979647530862058916568557565677254794040596644568657902235178870409818259071355627226407810519508927116319437111180056564901056669034630255339503784453413141329200278244430316837508455870207154587593314805014967709229679213297974156718360852791418249107089026503090876412114745492312642827885459557608019392664114585908820056270184655795590642166799078469641462957345488663516562698001209971620725891773064518775313296877604942560628221830816008191898442045004528389496111593469174046764851399874425373387472724919111565071331620582256341656721025569162943654074825652391774129451053299355324791504047211622916317050284188511090097419276394558061075510820536915121942287043622352386280827079796929781713029180421852984883020374484917288220696849479838823402883443145473138202178498759403741226891418060312687177281564026174931659560182132613821964258889724448038524941059199539061977512759847080848213202111321363514784858300778904858893836081510989913145927593295998026450436396100831886938703413392080133171819691040216714046045896636206079457096612734061911451919942268984576330251014685409897796472756713092133756616853337209249013713700405694188458300026861974237792224772419727632528495231859207610245768523485891863116153151293178634361990847220039053211477655672992588761656974606037155425248336220174069018180267958740446187454626828269745440001179967430774930167954384234889152312275248526365512322641533288556271999533765756654240433398011333003027643822644419905201368767733828078740835348099794331120360871570688024650587267765899368871737044686251137876193588738659495220498555145819999896894298340967109741830799934649977388568653066214715676325764101248988976123833611434415187293004097996581642629561124308795309330830863506152426646040070859767675277659323915467886669436884453961884359650671033083982858134727627254650937075272393788226371350480542243908332948232315026740731518377213765401855330076806027724719653520927187103695636496752990695184622789033265763198582783909481204472417203766361785172239508499373736890197679204755957055111593406662174060415477584780236488755234651772196510334254147155798675892369091975793162741686106599811240165410364956421094948906747100572847072446226444649095513801622596386575318612756118433616482183600059481278350592800812520677623644496985702509366503372392258502876602121421709626560985823289617346002198801069139100570526249856274162906666454123656687975613029167556704981693502099913251299292370460872758838723488952126644275738848495030339777713368731689054321382825068698220883285066453873851449336623638866458653333766963593172620760663608573707656820934734909866338410778645779069640175424709940172038876092338744998171315300724288847082969991287104285493479183262131350487047134658044997052506130996935863803417416405576385070991129621563367393706562464711664386316035383683336959799572433923318602827284774530062798783041195988477238098307292003407999850691817712882337263403997051896723313972950382778462528073047914531008858783093748188097432158260555678994805046592459569320184028580209787069236265061607973105988429057171980175103575828329400254013186105442256124339166261843363178301096422614574106246456851825819132712171629804202514093412898815649687085425593201744445075024893414073236185466132034496848324646391605881557717713857991602347216071510100893385742011856727976072150140581708925489393066036625844203278799500629652323153033469615435244838491828753393326918045749013780448794783586473067530189473549250200369679913173786518779718473302870763882325118901778824038660632360656323463368950011554080848818418739907833938462481477273122343303990574874382915693557184844026587406230444451129725786016981598073426070181623578305207312487944096640955157404118278533984817719245329124113098348272408434446827101697231123265001681413597019891882062872064810273978366966144771190811865545082904055958539395847377716582672795842082762052924819124618206704319700778218841951784755940823044102056241989531180572492277382810332057173476502880174168545641329680105197666051376450484312637725953395149824238328437764705900899978588999922169665933166916977965852826024072568552375303103852182514250693931264968284922483653375608555103367405667530594476308971775564410546399456876533773667353936262435861423176507520909609169182422205621809209178534588534820420850500248352928478007783138920111093743150037811783010044937135048636822544726026862605287395548947639726717244456792915804303585063350574596521102780365113034766256621478124241811830304256425759765720557473472535091733396650323956119962820687045542194890728000976152069632465380635193997759737312517835710435103646669436710130904912123357605250558207649756053925979867276326318661063914956576697682942893816650321070466880292952020303877058276557312756523950804906803535305451510733949251872498340326921325021887764848026479648006787284047758980052625754600683656306996051078557560242756777706713586832322087201154800068814925588246655257490533049204553321413141738217495672386027484415206985122404316572914809885361634298658059303072579194729404108275092651691845836121954073765604362372376598391262334508515959759740136012066253065670911250724609428707779643362710027061084748510533560550996287223297075871501753622280352211664653631797944024236919127980366198191300494807860224653352247795622472935326700342930296861448344471299587800002286939229248919977337076798754565478047540870350046056305892335563688797453817598613143130935145115096334271073481735884563671170875213429451077338491544742103753833910895367659733130982062820380788195082991882103091707928730303236157013214236869245775571855299101445263036446460730413353275445710753812482255123518546460820271441756606322602360749426283229443263798616706411123768819940636549095533096804191159222382875757045724045840962628641002181731127626261499678923601691572667085318056072622537295634493424349885473400394551785834942845010095755320695043088236060514286538630590035814377952378986074446769340154285886811781534202939500429546859121594772246019667374423896594189159051515763995451231095002916058490468889719581463653839521070774259661463025102352129446665695866038739742604139655280152876867718653409985888212219727091045148690001432447579027455170269883161596305741858378800223757473156889295539676542985770015957596708014393154461932769200981668810106930481306706487114879682711573546640664544575069050405965076749921377448293710302751347055444407047581263338131541824034323185012150755163943910757118214440215124178995918756340967252291932545785391198516469324380816228997729029813023871608005097752996257892546667256389182421928025827305084825450060110912809058139674317818966265478761479846890699539925682503659890078180550566803666766535799432235960005033767210908715754306469765252140478458207055652655182201538692246411391783570552101959297476826117886297460436764238265726923007630288502392906607304907747215810522864253593763420785308058413723701519263258379802693247483149085206535993535526651791994106405496503484331190429029565643257946581126312665047191300368038541528666294606083163104179670227907726670664594345049604937415242035972631752003257668928792306247821495827210288618317199524951405475652709349504507767342892609764814034215029533432172747813445829945252424545541252391017152617393920369998842418192150759258046223632717846816586014578129399189344355629445520938335373081064295780745372045899194249713118720407406111935549637759566963496085440355601264237436736011097403452496422125768048072408062445004760624338953406873939858596312551316194402465597651783563681411713044914245220795239111506514552741159215547844396944389690213614797864913677322428258290869811931372449774101032312150355627949977567641875208704231837267881520610006723303330984415098232366438204027142035254221923932766351929216071916724373244555438734968574876274853058616631172551608445488749170395131180661096994704631867124446036115303107657616875282716527196146480593944133162003063383292249798036260453411700246104671666784367115678526880306952898645850254607546831554032589706166405394480816138766635388747005191777120019854142031398466668255451382313270476357206104361801934468175001452442314637912031855518292283472260906974023763601945148436701710072286836363780287648041391773598428971613859630272976191478869669422519996690119143265892824169400708200325329269291135618638549604964914715545243586088383141878929536320331315241421904756867425411655543460207806828414457123285998692780230549463262672094177129453844839580229119823952740690594928560566635449544350583896715092600033790250139407147045393454977467568693007674942786759437531763498378112556282348402533212623817161988981686254424037813495505936251020191058834418357363919928628728881071744931032808179412069753091859033737431254868426340096058448684425484844870373497401816230011078670001379294991038276443420753614889978675715444525362117662722997864865932776284759585711390582320104515610602965870302443014696067217965829275569173385337753725580803490804356273529450345984622145278162738922879709596225155921715455198608863341219733201923568206329898935480173517227000195454496817849589331139876295523531673682368107985335609882080438823774659249154344811917846257179902139040224896685008849193944794539629276447737544265078670847199339344884846530943804039996016094496594558026469495101191914605054702408607422240551176326148505176318148160242686357897376840917076492783203688738290010077452036279530769071529109477876183363664270153276070152701054661874086790521608927679410559432030547240963706327641516614323947145944709608686159688068893682800704017072648702154837740551013228702947169970658034451196995786224777771179280150324906073255205061172201269357802395141136092364104009701653524521081811395077322518405415585473445658509401104193527535710997634017299941326618678274392763096987872644377089082581082590336755272728665867950818109190702847651381089488336962117806311644297593577717183001791601103844254260266402649452764350897564430256474196239434790008006101319199080673173101782440203379727846509364958591832394016538086370780366665835370865361834967718276975578004177542238948645344843953910386639066917470711728143881862553507968519323197473541556945224555161388228851217808758712779275141358947232145910670315612623997121756990152597566453001004269786735173193255520601766759969343650955489598667564593841527839401980957768570741735820813415646138460745745218379937154745655762294657845064211681402272146551210943231480301084254966941571434164484879698223874795785659779149583203875910232703541338241848980303896399871604476504361388494283337566023760301759876801983116971751667618894836316480606551552264862075247314061872399199335070214426680432412944073089497892612226147802818027953118639983059060687195342461847322568095952103727452758305253121041238634253702087434775045481366704641995481648708690094511533887301562711729708231431614512021006551611745934975506445072596746493633391616687422536907364269463419544060946586951889963035022011573122753808038341220532554627400548982555974790163300522481457739979684790180902031179335702567824653997861498179934767106110024977835307411947303812948921211115494707777994579486993561255737786290118558370209205164290369011792274258609452907139519722182722241793701586342945476310914274241128375484995734084391785865617023355366561280851577372454503340621014191385853138747882336210870021531954553587936705310838983270404967324591614498324526967598131913520598432716321346242705554865089135297589191957104693942857800914721628973839395266134867779883082942787671348682946278672873714054935181115192977120801425960645189863696044581790502509447513692823134148692089025517138680489948886325252472401558131248288251544335367096139972671295304165391893776853769786869397787698353994029809803503324156410645492447427809580477664817161681488307407536675024445222185438696797443608047341696126488167032433535468774441138325562051526427255762555432003689668463814923615367764937649242372353361541067527023345975172303358672957817092685072311978901407537447208291114978751493406312032537042084031692622976481270116114385608796315443756066272736866623622597791266203914542135545561296859413879364105176914368357773492888975914777827898617131769986128409559447479015719397866653203013959291705805505302347172697436335866267051812383604256900758275007718588577920648625472885835415756663958140501204982906789879157278563742266344972942043957920575273317250236601538205702312093121696528584663796385386685265776554595763799531203372550686230989109265861141540441939747324905824382476822104126364975445005862623228036894641674348053958380633772790832621926333167475450883512567108577527312627453927448999645855306082839881332519679651058962550476436532617600328910445990473894138121303858003757015765718187601305614804317235083448564910549498262062026457895223782232921363308232062753614203965943508214081718428258602756253721962519251529497519747344972961044079218844930491721354587995209217212117049348423157204258617278743902747231061472283869391876783666800350610708968609774215427985670860475760226794381628986814451062421176200090458239026240494367633246944183408106611275022395587698864572245269756448637122873372157858432706730482507725250854590485515016978634471496801020442141903368694767368731493482592616425939564138737145919586333667735530160348776104659417221433119979621608647274023320469552333022201152057167230110770986905439635038502125427696603151511518056815209832052515430845613939277392690546759113513755580166998254482966846013314418927620641967899490419592688246576523676942251879321627313902596131095477901172527660071092382262818807091026756101924897149713982928768685758584407222937780159748527053924264225563536574956522695751115167237633570938455816515861706079916029739834173427590271600757066166544222277274148693169290034324052611907981238556216026735039421045078139945584728990290529813645013991721766521978284592408802006856064732540986228653955301121342173161566778720973549584145124389371372366500570711535803734479934334679425010240387863723160822883772450035925443844797409429547858585804175960300846723640485314128030347250999083269911458889822551828548657439248910472654347860195077758709343910556808903578986612948625211460446423266837839677362239481559583879158444572352015952212869911095056596111179945929304779697968767345459334314700945834739695778677067762993237782142436293685427912999888264913875259622863931519011197602686296507632236536105453963347531264200813247983981863265911558093742521171824992686678959055266157118593063548467092591358674473877413882009760642648754558127765917451415121370170362142504811247507056976265144657674956504963513166834779833028105009428936185343132853017296504870042836359612133244475592374312180788009951885997992891414152047381269788371874390891201886032195715240526461877150422574322825333838849479289065255256069385333764615132974737114153640758004775196747771429914840246387979850414375552934232394251831181231275086272597661250713278003576078466760381647249757063958812064165972452800664778088000903853929804723206478008008734320983490585804854022138423129754581690400044127991945777595345051568462337919816238859046952700630274105814071698772282607963095947744355067292649766908863782846412323807011758742061265883179543429871186806869963418537067792028296434571642460014184102607534343568574092014442507548071017543462993667964191960015291794223240687394968859788715184907794949806974129107037948261674538139887015295642850769794051167283674995966771189502007622189128460815911258207203931566236472218829909831411805865190834871422153602313203740708587685802001265104617235795901368011770170446525366157471967144145408827837457544485093972475665887259171309188188384877972128563191713990541637765736741380832440271839112070118160087392132388509530198185738996184263947911600501727855685162266228307409251373563998912517808878560585990018440224609219211260957484854003072698145648029727321367218427443532350300472097150652611195766526919766009023548432015349482004577349722240259360049699273774663176241560931712679009238787291625637826810670163006304126074750737158724539136654575895672709106785211148648504972714690845248914856151744261909807342683655078570527623698057902393032267714825142114977480985761875225422789153909743798199486142629923911488967479525952419348011271537328144025144686527870315099062880318656952852760310992397670276364951125226405261944892793692693785423181867182287373355358901063345560800770135207373380255325153767814342984780025214911836316145883430958350429691640564894795531693660937722452589723720778509321419495938930856250279448648852284185918759645655476815682362800148372621383208237671307219151851608122610141191488259539937893323523060683560329873599520637670947176291903167764403919811162761320009650481848678398135460977875315488272761040627533921168420839475271873321146530770622926831834932618213763452819278440367100394485486547209221318628195182619251072851402743600004764144926024514069859741336199800913787390968644716041904490304213058163270122262332949350061352473218002122525019661838684258894884345807226104563897207679804275059325962641252722624862859763835030382913229627730785445353297467882088289617988442214347118962050717646129252284400403862422722483835172648899185099875141000886173153958252341674490665458772571850753953102677171019845940039408446899137966184307190804514133305831501300142542049922524169135511721134131441256023094909904348564223456732421370091912147353373328154020824388214104620069128796067834631011559657189121814945012550859826021496037497010733362321092706414581319338831435437645001070356051390419678030301510633427313850169151369650164034533449264846678286905547216605398581568789642155119161404584345898578904234172433545031704497551956543511126649800338747517768850927285638139796253087468119402835028650845953400390484303346074606925802093111538630022370992515888745577569945488748289476136951779972874118887846015399945057110714459598531866223894890789896406299081928096505535703999349332932942639957683965834169406934592813981877217002549436407084193337826757309585081231813946330725343939876523412358096111666183751942011302868607252770348207875543281336657140763411634012862907341557156423507218865569467417142276541282523531091048319310833228740703750021695715655697481882974505064032117965389538548773221799105913893815761893141105748486156980597025588754045304201755188744854156796969689444897902724759110107233751083665559682135005107063897848673670460909224795916346867687504110269236602584539138558056773690400138349066505963442132612589473706562973731215679570773123932746829444935895199485821189736546501736881332763918614296972932914448513485455630000065459431318135529501254100987715588397021614982160365677432200889620751532297542996454274025851290326882303955148315653294676131132220545619356790041743683863553060843456603637146016907154262139349187123741870905817683299615698449945425901344781082562234527960223488331081419224993128305435188329286112838671352145173807884569360490102654648146157834234593861372843363727720212107925946491078482807344693047271292564272733003931502242533914484428499934408157772241561721290849090774228548078476391089380515652601243709737333300368356717034169759594925789347285348015223332713942423572209892611501509928670766240607743116360806102329347474842655843107221501981808339411847553406501537970134405228163629518945031602734331203221168209431586886440510079177660166864350562328232773134908180516325947337754984735079356221912744037161261731533912860718703515422731030068871498954629244215301714600008052588638598916417756962237956621786795560824751432028515389467684848530258149923795263749559487098176732402583915902344096237742316568585228439239814227594956516211285011412007317068080084948053782517515020745517968858133828627029033535443005161655870750859352602649587888783906636897391347591206696475557280259290644098336023755656749705160168352187283986214239193817470593904136451621621989547317906559217952456830742192814702423700001142387322552640566195262076084174551763004503573961148641892498954524848628818610964694587960893049482440055604588179915346741185407672736405776410844804738921005679867740258625714883685047536821922460515627456156293310906299781831227997648173075931689146595001183814694101443816002613635390432951126233541296730562675079487401782782693135334127154542073070434172838800473026344521200943943672082222021795323155971154734966880740870463044060397268980107303928673978725990933027931634908265615654701297351713964090999119551028698252663030460532599917588208696291809549290997272924171369677962675615061488457956371718900035360454595651656409871438321179190380837637044951325287387323212165984238219791448381231430946038320639745172730236192950473745531637213230090591650649615258215062479666998287050424758127373523180156671401788748302049927668807018512204063893226485339340450711278376038790464220500767070146148365649542756306976641354129004192543007163977229434880396246191659329416000380968071549155929733779861356889743716789772316446431746643572988397320891108416269987864955693753955017283984260347720368902867501898227548278843242965222212865560621006725023365511407115201459093063173962006676099955868975670108700640002890057722414798158717575445265652127591095551113441182747397629239493762494600816441267869774893117190126709686197391304355754969152054519663123110161773220011896374735242807439835678411703238015088404995448080117396514651679844124081736774622488385617982872261241913246359846099076613255520681034218733223062982604516019424150496180376655365352310537173008832383564307668439966036861439803127112254035025178324750436643639296698526506645626294775131217718033526181607284919984740293909742405637603462533188425554044989692117908148810654708346888680612233670710802417595321766935298655815956431387954548825876000351806098624865182282293066236394244738754128511394038969532014441279997505914645738187074605648839698430739430194396610910060507310855662951473058213911794175859336749362453424923155497449835019935640636411605042780433471862967085374254277453086337605845007868345452749692971712738042275126426954376259334721619083064560908572007996546784358057869611089058718200918727274028816740038610347346469644777972425261318546108115539020710991562768239613227034599713722553691014338644867757533983577403689657099569678298779654916032101428004020639556210465443819302260956739117239364033335019807368478917149048253978708904552357866685019116809772375653130759295463107845125143690955551287170015872958514808573665449370615879416175819672886022074175456928147957437431535533441263491233807676048246606232170474976257427810436811521023040869594708643120480856471952831645562329874134234957603144736829127092343907625106274800995234106532914543753422221819568136725863440398368145650485608030330133265376871354406594365590637577272385022043187250569001094094265331036285074812303134594749298642133426590364649412100737736555832465921122790890702748909364998629132521119223135110000573113396808861524012897351131644058868839932541203378853364168542226415120149106116524952754314132885023650604139924391924333849013407029227059493915053944028989873661856178832140440188404964289150763024697483624004346395629256352957567919114076409518351605486184899022338432237131203766348419093198434027488015698066093244179272327917531559637117408570907918937429490587023438408550192515584126478710041582545281991103361988434253167476023893460792756101575779956758669395623419691930909828690062281853399925660463546909968363897006315317334801469574123289082875544197787800892453381060718904898009239981130251051881315007594816158508586864605850319284015761136982178115359869371345293966922400974924133739331155144734836003993832442568462074896353994600713770916632877599120902338116395367687957425360588286639674281254254441650523012289361373190579531498510065290382428262538112057287020872247173914944945697457462471499794097021072820752689062025444990042605223723939389747018282082395039921099934333290274143464106231156440716538959536753521218420207019699599312806739383477768319066563017558620004478243411800546847791468647029709209910544399926725404373189187758739871487256753880058341580217243892612661884089767253683085419754300736622272371051100974630768263955651371557036522986198077137989002640176867235896037409105657985948382156856233273285519473858267975082752175860103983045551311439492931359513114567136104261658592029929396704139739038828534225029660872770796276787647934713942906380808630401322172005234405985514439473537647331148745833171896964012029475224298990602687365162276183494117083467595155022032005930341461083241619555255767220406721987992368880464184032398972147896438422477611855176252418719930614852775489745266139965261783342703783648554098615903832924550592323933044824811383882044716268292963353512438875911771388865632298754380556910577749780976582593555575780895898081447635761241110795003035739342073900431471280763983075009269077418002648065588150519305910962367942952667143665223887185818686111655960840021692209020942365649515576500842918385482769143076618353853031947950113279303334853137583700143871655506626483750161266785506329427393625786264161066706401714505002552718217903735655064589350968408527857127119919654928293850241730094296143639800864003138435747019670206745967891822118068175755535198576388710502762313373902199132894905530982177030927460293154447503420305543108976019161564340728915821625363740021278738468037101376309590319527569192743968102388893762821462032357074514320525957514990617045003878137915743452326223359005088800808437133190504758130054589601318921820058075740008969589937203510007972174457640523162563518568320260853305260497252320436935717612473816507883966502014934018944996404484508563266177818408234226326032096855978497996220899433031819950363291924216711242183571307954451297649201324589810710907075468009191572620912390613854807450888147923525544273899504349035034580121853185194645597025857147279189991760869294227917351093504616010489365225657345045727500678928357825287281249911615396160550414016533060869303686585982830987744026109457066107970751087002469411162149810977342401086269451526598707043918094072668296270535622566218078035876536632596363784040964283705587741675240237100693705329540660685283069615045481202035567158207850988207362788034997252315998502171469154204530851897374301029618956371435954734141160091859080424934648751531656257994373653417984056760944141886987194518430305840881015394023348653973856207893153287815585320642184557459756880203120441653517592861874657578646111317706046498588039276172514858632262530169166465521842897636095509496774223897747188089345216296824737623965282633325474769888590638096501870290230272120265989045643115705612981291411390020548604715065710915209359503522328851111907034641151670532256620445161641821384400114220495968034732528041392996726775543562020100163859518677644429240984913943913610883777360978421787788948547986674356158344810976161241450349127424901705166270501862750607774643030015806453099157670717403818561257082832660628100658182775313282583056005774235338405304772847480414319328481881421626019029356578080893075671718749461399296167885868078961085684617718733629900496659449876144185356234530747526432911358382744242186491304449501135539337783958895767954919554889141784703631647913143944954663523929100836700512594180174631492555753251424635375182395541420950799446194815922168691954084578977458469582503197088667482352374039382108563553136299149258375321562617498698245493555876316869640269489094472229380728473463957200670357779108636371627282703323511184208563242855348054657883598917095813129849074845114757875544805340157592078850775540048873129542476813146397795117515800053423728278870715727198280448132367290911560311281951415800917901202324553074307050002325810269437499077483767947391442387198226995065589959559742947075006568224733932036735344282582252186097719669357318701303103010964708892440165646481498899751836504650593784801114788181126363796565448712125190938943634069572477505683448804408363738350366210052273605134947447606245567536793354016987617229356673595253476413817024590290775591080493861134470745246194132100605698727033467878731708639010467348982684237048255195635497182379346281476788363615009834481773420487565650386324544060297714058333084731828718309126171088080618767114909235644608109022350399079958254729292811769286620469672724798986563910101268697510182056737894784885549017156631704112970056860748075853290593549160391373594390557433411378355416205010875747622190686993483464364507378492616702965162251767622029943844889915198263374363424431540462367353135197795208242977571527745116407914774727128727954412283280748221352874454842062490916623095386942344398761591449400635017089811852024941191595389631894607470476919880882422319273716278577248929264040809151825755293365801780322583836347903841870227987198328013176749358336560630481585335052401677266234728705922492508335167105777428011073642026964152998885706473057252993179648700498583788657314535357252586615167660466153612930554714002585658082570009137326861300752858621559533345745571484845088753641948242543064440141490697929374302278396983167433847535177212614815664011192547723084661455508903252448141258037022627003764279306781368600627732293186604179518034340071973708326772387232201563063914738390667129309036801122328532405208403415062773388558777322793498750281093919242640703634161381538317306417452737628236199389564120006460617730478930214834029362962742451516092061213908683481357545678233096645050094613652042452609214859328172935687049477090982517026829115193232981433687338663955683461659616034056801911567207419103556941671337743662716490182387724654700024084047787736676392722451576875550695643921083491143450219203763112502337405962972426007336446680147926541589047375293132267716093073108815664119818998670726021885043985116838273639756224007678153953399521119646599302813727616920430851658776781606617305245444189052166478575982248516076243461187664391517857788728620881015930482421872328816165506307103523882150661208416999872538215296130143667585389430480028985528564468545656652227981090489872813467235011266620539405093183902638729605290998279014687796765651469160834735791348306949381631489849635225471494662459800899885538711874917363466542713898525396871774743652307047694243710368251035816738867913912303202354601574235704990953446460479102326813982264919646857025708405891468532632085592739851179764051108253206335267379380974343953233423947741142229991381424314795827621539392666295733697928498034996872093575123437519809139174969840014731568715457186235809808618745109651258547167890013346783763284951439833297100209532230992044833730779226706500894063879930524143217311974583568915322573998213495330282695444927983768224014256057254739449788183698874824473793570009160787416954272934173166094001418679995073998516982718249987363961107634100266895935078960436000529823255471159974984988327715857306303588997674489098058283081826597877936905718953120063215072107447984005138692614830632393994294249819771982228962402662285943289332399462823113878586240953531118738810341246080503676002214549305397302427723655106197875872292775596608651908030951001032960851072583341165048697578118551804529180847645719003825204931696562281040431259126721999282850709339974071260733661042479203435551266148476834191936119962729066275314081825415817105549066117581347250238899106718488127235878751461060083297328686120886142568233040223061758010453546244692745335185885017326569752120606162506275466583573875925412979720475052353744707785179857603810258556111340751115448449748237356671298841692206261410003608693249388180383373483778662139542150014580134751747446410642241954353907707350783801618742342609910203572024299229556248216587139698021259195785739006036946904633345454644749457037500683001638005087848089947206928876577737723237317997970162295850327747270094281186102614617932542053177298812581128027993594130628109890098671786970437104552091952187412566231377158765745138773988192348486998701806740876182224572316544493524297578958701275261450490136914155080751020321015385356564834172529163172202695594411961199599615958949930284215618516898268739846718198569477084467073767266677553404644888406103756312320955115397836775483348074361051848476432994276802293662252751423693352826286289548489825262123850592137573523466369929953083226095918583780991498910258735201617680643415300817278518096620024209795918282198525278671593504186364237314513472819694819692361667626237828926547221256143891749965495011564598688453814711546148308401105834662172805526026941906622791760478677924383413533807875410777950541058011925597903040231763625458653596969387114738739456774159729671964950386865355877249309175090212826203807833179500099968216476408761378221313537923584815819740833996897365120296794658783833733917375793314214564491487071598385731739608128908046437073579142124478615478100981237643279510047858769236495347322731943777106495351125274315015630863971038550972643951398612920386181392724218519871953530986351241730118309704801744467596071343515735921818041390715942285774621884881343070979973341314339346558622543043051293349846398090749250012715947613704024704400418356979411550823521003864462891605618149952151652619906224808275124108523991827834735221345205893916762473559485853185335066795190886545568474706983641093360346994293334620349787240707849056615059388089285943386731964708938188733917341412617655168439510714447775639012804973237599507915915450793419959526689848486297497033996363646878448341546429761065875398786052926061644237296508226598923254471315682551394397322476585954033859157445675283860777470711730990846823231499246508654676713237740386962757374254661897719313231241410539343453591880248944601358604778535096153418764499982242851123798693847676379578069500167048152605061733653318394976963582477566505666707227222748030127461050117282365229412324956039480420645763604686440957522298521332082671630218590340149444122386496450648009370815111094873516521837576687999840818525612024929855728240619397502583249753294855851836000061971059962484067420695136810340417871206087004653894314038567872347332578813335729537644285221461637044687325440672175490524618375040025984929352732056813889414501471478200798101620778727911224965894700506066346008158102812721223379904815988046851324749925713162377336487142384105986731366439270376476992444990502501271164764340000679948566413952631910337421002405360888547077575064700804252077403499014424619647779731995027156154036157200089079421222082942609647491212822737008735883526993168002471370885427706752064850899780511725071718076248324901788494140653861122902524625837335048389299227311332755920633385025711376162941170125228695104431532539852167278383095707169692997292725931013800329957165964751708173109146601709928871770247190039079665798155934245090273378523048562602260601861509263928097378146551700587434395371263094767057532019981014911221438885512584034070263174023959213531321683266458995664982042752017236041734117082455379489246070676665946203384437568520935086080781830199765454750707282684794626673919533660978166312938126979482422175030359809149695625017116449905259882526958477218231344249197573418588904661868304585697043888587467217961843157019893449026696732460837060812153626297587178498420739163899257971969545710975032049378472283787543684288350255883783988682848605119345874939038505048187936443141670762292326058032179001192269201078596493143550145074218780357867788051327291607771161672289652425691074273746352296418582639828195839661697033906499018118288087212177909960430258164865318417113100267933288311951210952574743183877490653078399539776724145670236808181816193286317481820306056900458265324386007608226250223253512397778369482354392964597820628701137577691379812764973897792532439615393193057563842018964677187510428529990191261847118800946271424121111697107236662429259257727880208920507054753288994604339480327688775527834527158989510594938625277853991407267243776000476872210016580459726171181197957655985230453169059458331105746014553229939783703946618765964709676087904342494980832635725800958445840329259448543136830943881052376815343965817893098522323441986230012749690773555964758130216494946673795443282048077831409562961250990264994346268274321183931457956011721446782194621195943058731851260008309617637578247042643059480020749214286994898414253748213962858738431641506746391562602032503832975736013413946927014596845504526936883729593917400503723936850508502567588277409053327514957149698301239538252183981820441613831573824090020738318993650502945668737203627096438973241075408120507628169664762878925440554717908802957357134244705886654482396339632247581493390889426422367978570585539495399922756759042920461725241135048298781073347885860465521311443485726912345748903953659045002398459743683171367779640642938086411263864031886416770222029015850875429982796605955103235108985683642244042951361193282348762328646535710980592432965078863324752095050422298877911136518221249623474528774511369688421329196694417532350856001085523049652593178004393425373554543855321932567440552791417583923655966418162379652733726321332428071027764927956832764886948105707246459601616224745344429237484612334870698312703365457996835857427571057687594113539416356478103805994483670469576102472538582522476076436634682361735776688418467578476125048540139917925827750539429851708115765998601344481746270869423789239538129812173123778850126271003342393070886705401863410424047723989456861321707365220932542031737604480678531907576092090089372172027227477182324080793601649332372262912191535536062647304912370574535001473442736008126220737450142318989666278632703048127161585611969769460812508982744661001436243872984857657374969267393097914956418668963833182459979657151228313221161465581215463556959353805307225433753239443880306276316582262941588167894782122436494405095862770259251714027638954188580102233348279507441918836274910658736135258563533260892596102057645466346860222143739873459629786477512966717877413709299659037791863716402176182391813953578172535877545132981410814601458665977472669127298200245516223066686402455421803847589577261882310603419911613712526181380638769802938048196125808297429994969210072095292541085364956336860781568531925714220219350617907078080680476292960277498101798271386570877640158277599472586094270742032931899220415113322214769388893147295037194888121894198644796756027505714554822904991352902497664999804371753493363293071813936074495334603516441299395522235541035563585240921191523881341252787189213543092218335222180898680739729752874383236179186179708702067530824465214371525406217127411769297740684731971034379938312094305449216270217751977377228211219654578761891127558029270337412525493158034690798073462376694437133687608306809086210365458892042581041881811922489115547156303694580815212626108409806414498310951219298656691083180023958645608986352177862176523101536720898694489626689476351871302344445074111969809519725709506889160315498272790395861100914465446640531828023811849945027673177928992284961717513490533882132022957894636175587166248287984863419524409841686926787130864866671353404759477893459108921192910664573636259271022851522726698523955944300583083711718312684498528770476433595413734599739136619440280537525426135242575241388631098908506431810871199590300757771960815949244912846046752478851235928481408175183028106346633651755709604450984644854285068961018404760640296006177294875267053232036551781026371544158900887915450129219003321046179689859855787340797536653752024220768766774900777972938139876213616274731705626911382725340005966413013060147591514833752831648685223133219467343207165512771431981630660973453836182141761635700455506991685857721175622760828349668060788640435864075218019190990349939586039876324200481436387258904893110939821590795714464322450196253550197750904588109919105325541945527824514701176810175565814335305460165139070793153578626249913438500698775527572473956490947690640891268951506695392412167017124577865212939033937833452879843306004819542483781638915940588394537214434051051543590251031381938083296617149524364153346422639746773973017672033601991695351357245795700301315343472190155986260300752245254664081091835342745960823184162025597116902320075275818456628787636029720382825677901315741563626745555236877373155227668963183927684708791885625151880353023143159430804259417147002575358987982010250124323605519573690266433310122903632763838457893238989986624350455520453129048043660424664062210731063942769501653843812017627411050271134827904400098592852690955373934273449308149089373150900101637383177164199052691453460198280703754832496165503780261314671502248904680911958385092275919216644267359187167747217810923818678805280809548018113799343202571495130626346267464827692655576880473985237285565185383146011311957457499469469832784956942816257244049059187802304374188392167793520626348230748479337001684342414632162154305624775644645001065304069526816737020728239373782872219416289959237808710866504012274487708923259201765392967875978504857658029216803016711868248361735607962124105614908798460272080557132807493048993591773426247506752884865745736839403447035631325903851909298288125602681614211088834332051399601490391878274583236809660427587296714435640221318200335739268235582891039219165637238427317143380674622840509543352507157233790745546750603703640791269657340626275926130619019208509092979161252190843812966727359151942278388998150579703941421211226290410419435470491295505035588227607567548481810401225023542464693751422719681289129654795556110752763524153376880594365318133292551337340630236677890697086178032249896783181902739838311204136398172317256282140144135009070717787338615720237936441961997456422754181748609405682892763693271319804456641347825899676842300865717646292234159169740241536095315434196240865399957278599658178233679245846458845690763068444605837607541346006458719461314363327170985326756466467859277049072509302405636840837544500903324287782249691843107861631013618892175115012209696402530964951968147036362779182229345317382313541821119690087735005202507518773542870328927737478012143505405552860747818167079665211752212872914916655204037739512528881783465164734709488764316119659829596399446365789513209635685378285160455659794509914117025447926873252837846380649786858135005164780125100311682608836100890446872761809399251715796306111353659153803170931231418405788353742361097453661631959837017011439408572089695373841569119809571283747250900721224156638871282093219788647713666455369064844832826927435735259952343490499394851011838380714065418819373552656903944501424204615858866841742712318907648732526680138460327847075152487016861303533953850444495512818088117546899976516658786757316992680685973744465243326083917876086973905695182987338222251772241600520350474190289158932896622547411497795400798007467034011702324527845118464562233556479810721614751049333136202742345236668066564255418710179130052267672125784279129099020946682149928621575777540841053149538189935078747949207075742273970025884471440147732532693983303063183106824775651452402942048882023202897387676222312551318360677532763126579714275511529796420725546909743157596732153686608134940606230455051584582457226179055570918389665399969190064287877644961746003549965563824198414638277498822078512000627354043173746584008194657492179932066926064358471073482813738632836139163200058360538637699704435986825998425912554790022474161889460015162844510942520388369402402542807048271793615559531168155197784957182468593521081409075742421093324661755678787745336297655792489908781146599082660021423884734101657472963265648163423725939741249754735455370189283882569998623303544604387895873403153758765347191679932902106830859813394716168855335618352498264461595069349390228966484403053192282601471977702826306261232174324542481300457818293996770271633771154435253132557934268054502741100253563559517603103504526264405654232275097051797187743206250780547396558572428965501165153208517569107182786445542113383984793794360912916281939749899081450878111823886821096459971973078427702390111038870280322618778318806013826693515806868409294654371702115470944031209440685659220255449447458033968107815502394019995006507401272908814561136027849052996900653531666194709087070497148502572104464030766149432700141339334930904045452327702938535906076205451244480761341615691491800685953353389538978677473203826410682707716575729716306107649690058854283884034266373065343761877058475430533646463568692599100877629173671741918367986136744095753107617182880255115177102103588817178853608854195166032972620030546652216818910302685973695721372748815078821461886827307134961629224675852537403699211752618551821794931576898955080707922500276331474598450841635942851778367083765377191315802386976974298998728079675165438932437379706707403028828327540254515580291825429965738849485503159466356043330237384073515352151885210302777064393734795689880582733694923495517074100786649540456560657461772081493679894025963248812284075547656809985900989510087349546481274746094615717804735680148996363430944359181532328646614122699329344170247369921210204995838811506566187914244384866750183588666144661879814906108738919046768452423735366092371341474249182169142165119891432591444936299348171828816250277643156317275886930397821703679864459971414974882829667353362218545741164832420001714434526942528205698872221840079980992795236702467625662437771301962297398378143802632563948593947431321584328879151629552073462548481534003231590540663312000779105456193420482935763496884761155259180708555604162107569876685049441688228280403664047333405083644418979118606688898857540381630744264679136667845216479304205036174517043135604041572660181831758490000188903367443241431060056852602935957472795617412023613385414494828844968211562727126138087654604214919296333823756046906504725274395389424027785251703307799469633626721556464851599838681203326523954823596903539285269931230110416013193303597384933543488846023159565372517951651440772990833067824137340925521256119162403988912361086975806752519891088359454082370586383567289572241966161175509154093146488334093307474129280381096190877695662297703859656920785474816535128380530151418442361615277556136323622738181589987380615459502914718653576981199725048549201818589342907106195324803628932000912048382708929884766656343966831199777116060537024048310447021120893729176950844100012875472705359447784293021512952818085646419623760934686757820115661820601076133027381676989062495890521639204687171948857834462904136512306346192853010559296378984095915774004920533754624599428863637698163565104584593855000540402843159939908205313201105971616117805812363925727761384971537014315328197459859827818091458004954163918049166700181198009017051267086512236746492559118337139345094334094785154109120029974594792142588035081916560464541907378592530646638864713286264558986302865901496394093017678276536930839430874301483451659661095203669979316375150402945494315758552020060444984583753747231088957956053315006852141865774061599011582809201123531640439580578544053691673511220142575094488604092444021161570663714989667947856885764280983587163885205550059402826911564532191762854297742114277027402170271053981399477607770451074705625748189965061452268204795015163457574585203001076051505768679206832064107291585271779089322989996512233336305455167551796361592891790192115122625173357703009644102197628076010297718760395658846133986099341714508948423262151517457910608234120016316306186617943686480281644743822229933783815520458051204929456473998487518639992523069496107965566925736289067418784233640504899446998115310023045350375336173892330775779336962811718596915379119392052003668743928349739873256020806573637159449509511521297695728138450942919433019139079340590501595611168332435248317600253224246161328828135911121044535910016707279074142299945032681995622881407499648628928918263060237355314204453700232309612180688996814446724490388442106341073786828398542297347383641898261944710017470983255692773408865467118649325111449579541606507788117506566705496334280439924263789578262595396429649088863460620197137577061382992338006006266145573017171790876452622489236096098971055877445978377824578494781006362722219879796154638738478316389558279961146636174501982648456387738705310498092824636615794690828397098130419423900281407250126566370461673468625191477478990850801572474677154227994297152472591656096097232938848502205586322676063410491616089347936895954234804004638051038039287056150741427990121676479144382063939317803506180706913724934647699061790412726903911391456152861398204467864574147868653510807466114204068631302529341254837704086561266469442364870522625349033880135182303290769256880685307810977380919338475680442272467237852260969671558812063941193428573512045216077107567495104141717032860735933856976001247153426645610761811916332370567038149540040920595803970181383143581699326956584298835736897228829656051960284895486729288288228446374886761615931673099653744346144693376696442173158512007427025975368300185152798259761750874364056044865845276810435722427590168584567403402706105604633326227355819068997804920919070720926617297304121952751285137880041602188973406895445278637316703262373708005660523786130147024482341301416602711773538000524527831167667673300333691467095755346841108973720680442033861085767347018110700888651970617921615769228712881955650837433213287624343374705792792483818268851426600660660171736994410197044133221175858671386756773993567105381556280988624138266582587690870678553519461466624282605083339032930400679370276447104685082943582583189945066956140442819770642640653410661499476026979264300125047102092591820544172955353886550482009589856036186594937435443630654774999776607241124294843742029079271799131626507321620611471482225929787084108072253264685856936227605540359783123325560562807278394046457910258541697963212461458360297656031408754322531313796967691546640082245843961128273003144865791345873311941043971266580783123956068274541382049142041841864377594699124876240004105508079621273072849738745789443326174648301988512883972066928420328837184381296257752139780892150144718477885075669837734567175322898809125312512086704848869583493987469393829305881861598172216269793989236833197112112318361313393728444479282183556917262685333475727649065772112520231791877477978806954571616898275422401631896997007836886460897841295810043901402181991333952577932760872985651890374863407244689367778921833152220882254393114181930152531973002219771083980317467815622037409854526011087695955637657709779453474113624737911560740971192211016060653372770822334511761391446707594730249486735673611848332740151633347248779091262366698287663876796835273855121199571064043643106508088297295376900354685165337796508938364494124006902939097766756232458661170581200360526332036720014335975192325871907861529770508753500879807664129992866867722626687926654506311832978976751664168215564895746291410047905872441263079060806648429512479872781948766856313604437882102531112465741647210301659930673624712082984056791634496125669431147088721569660284002961404836783867551172418521491361006218469929484995668183434565740539396270399433509089540312884060649780676208905272278969195350140012486591801778865907278754205571983938712801796673974044749640570782368388265441155325547757703140561590372781533102575412007687309001570160582290756810070193795868958582665411214366790428136082354541655981720592283209275286038739847380052622377911718933213480395384143088797167294416241468607227148722531641530536039632971654936674636856862535423426366612749846485969100518417062838395989530816285377176575827050211791935270732921168783748852461514961650632046106531936906053596486830438775129490314695064876216022381568134139837665567340935655032307804249644228053201709864426798880011942102009238051103244254860750266140211474293015919576684017312779382575959254210912301939670090855298975153261835459374191333594136255955187500945221419425359008856783463888965419118698928679717295049985616667371677183330086294702929501336691046085154634740285980671759580859972689567868797816455265584440805167851859590385374084742970374608121576914276110099863095422600624764853401339509067294814974427329423786063037118975360282499885131545335979474703712156658330506245016274055587989664106986391266488991790684202531698092456072924205026944325875520572878828968077004860755936003076070457995795668973845141742722277491013480714201903000456710775141036005019313614955513979146624039792922559299915437604207824934205529335252821681327375185529254582962818702901377579624385169880678035227472181219598675073009691033372041237390844367902579497111665682643063189388999640639639013460134614349159916364437140128144466551634196883341687003145274681725055333019578289174177931902773782083925701885647657615605452131945059373248025294972547133666664529989903316447241767301110445058874382013581189340570705940284193656506892013607346645724721272763306077265047491096214864281758388276336490122946171467533572723122839276835110874916235616916486298683060362365857512007010022679512211890497737660222064544888969293592229978016281272086507528546257487088521671335504648990600928407952612090382659454675012639066731455561861255082251128233471738159730447882817194156549886550487859836586631163367833506403305143046675707434487173265957406613585403267953984709633936072228554265297571065553821815489056098614065216842986629927208424066890225201641505188723748024378342110303689195308001302590423268312927879827600335724190925780892406884539033173206730522072727858370882276911351625047293983133259158130015990030683637064317371415859700835536691006309359309174087310933134502665584480639083944783617913585858733241302858826503384779333800869042825327978864139320751814798655237023350080759777291908988872798119764056679237883527794143188801057363763394708007778171398920009533277807183335494651278885276360432630845163877385785878399775805877338147281262090863032618309736675732943589758870237512116142762945657681740215395317043726395409184305677720770541706194089788569219426674570186630854060596897896373092456990464163896237223064782661860642187271793470916549280256619950836546604382095048872924712484253026030037660917587035471711856603042793449298009707051867172830283542081170381562480868254862537089393932819345354892841391919563212781707912203839619507565044402772366203168350643983198910597769118226216003386640867274899030588757567052401392402654837948845026087774840429818352890219709614692289730871704555142354861484918679433785528704344240739908487902729246988494099497905043188009560432789683938211663513828481608240517374731735518838944861107099607131794671990823714728874342651281103073917678510741244945971142343903274346629842811958816462630793524114652634509507346651407987598094943260909745592478166374078768541042055354189720573811461231853466517261364437412351299303768671544561072727698983027999236120633773892694203396583943118432975421985197017987075286183181567875322453148024242235424324043229233772333584589718059129229354187451883770729894438175479387327044841537814364295726513430613546488245981374910729664207038615439572229719381556182201770657989763413308442871741522378700227294034080142939982532785663960926301132995404687134928173633355641663863438925277401227297005401740290805758119221007129946053882207610312847759712427947227725893684357060338943153743319801199569553837742497058266303807296847505999704455796711337365523901539093806612288110056045112126952420472538699899597709568856362579831060315257035655935744886584737462674146794080226955086007572396357253914577494645853292389461736481358624460869710453406172398198878958520080845887039936433563738620832559041151446336371918651463713643155353118250914264066916203160672281734758263923428934964156995820638127785071713305120715883477375584364860784734833029042003985551602781958969941214257324552784146115776234918163623439768707696621610397082256022875613178988413607222280563768789422604979426365311776540357283724672371074538734688229675441691674384968518935780311795428990304231144142171383839963495482874462020653566773192460466748245000882980167503372020805895753293589315924592267896917005561038399032461780414199677000821625862203179559425654727240777241276811344793740151388580813116579803674458109468028201714694222163053216278332185088836022653225362796541331712204396220241820645704503202315937112081851861170656369539419888286847723423693749783738246738936968993289414547321378470699903290442026675353338284536006189478711361801927371014917309046642772214073490550523498617411150744005365095137712909997228688704983963012089432206839375582585224900566810627622884310845560486188714868200018774659612832724656697207827132085329626321446186739030744466976380516596880340095133692031012478082690185206843664131279134398614545165733994655353883756458798506687873881541903386902126624024405609301492497739471735869530279038464224142114371560386963507380488065272702223607722367268324530015928556626834683986643873701143312555480595858942828072213642075781338081546253869235700934381767113373962402879405653540398015032044985029533777938827196783135133991977391547921159813525007490075329697205679612861102491629496984091142025964871834935262110117919575352686944747976810392605988172394798959410593279767064495154824208994562498303568750987411306062658238254169915245887499666348463921020727245155883282160446498069430885225821672286170561422866071844432450514757436962777246566740680084763167308271278777360087900781900052261910377157341210856944124790002429667933165819822344563387798227699342459978030413649223090471027841483709126125018732029117171282139014087671719521950928887014358188744310266669161663394931713801350934384833342281264273715393063954236116303290929033062157918292462985645609349504346209624270224719289695990670503146049513905850551379462998954672844244461824282736189689284520338263383097562537683123618233245715312948570552193418603180645851548326817197349907076369920785402957765769567958758295175823311728267906499387770649333792195723181654563879825895300398059915283567583729967545124747474863836791806589351328982968047178206082559138462879005488795542118059482167881900256875967715034818519271158817512036388774439555987494883918177877028144804898008280305619165787564524167127604196334021703554309489532351801757106779649386067130797866424861292576608009433727858479320078797212971259017166793881458616313064632393530070122503710715710325500736043071551204534247926443816970266953318989593764857073976655143945947524474914629129248957904165162673783911838882284658259322732702751741622739386784153276417053785746636294457697615411474074703386085666755517759269175319569466914742549430032952849610499844171860407554762053869517021223220740841763261974486969711518290052908327838403258908793611334773904273343846203687930879821188480315350688125848825921302400654933059252863804165024627573832989384332356458001399766843363423935440842836637215996113837341427819792434770087183542241917867577381803248856225655905591811718704245416866179956871748009235348138187630305007070060665873110529763261219743829790004058695988155600731473397016341436536378838924439444683413037263851037143317829088005864001319350390242324303817468116209529380534760503887427648560751970248314495448870230088485737081620931980394976803803438422116161467888216683298271349815252520446595877519465382442562811152989290875744743637930017391147797613122596672464848856289207905595399136437009039621537003285035067973317349903136837745991753983540327774815675377918203504141058875775321159472017747841819993088445960202999954977167878020606205662718288843536710836730993257958229038214393483084630763697788905017687825833319404490477944535583762580685691765144687411853440499299197423758928361436824680170325956861025614125757211331962829637577389335975890186789986637575827437943032250480661437415443337692583541402279874589193845767386273346212696665321338072034424719448248269311528631362699066138990799813271837000502785842238946968147261588075213530515251075207746220522191757270037096789010223892643346157648464409441909652881317930425069524267072751712227608658662120159848093868065596344509540043350622917710242858234039641928539224009299256813421183952933413569133696022426930562683279003039751188158442077853937041184161702790637366727369553745400805511966433446419376023486591851857383919038325194194172098297766001489671052256066968127100456500962471368086864977276505457713350101950333108792498869604777131232640204702969880783662652040689898711037851267258894873770014321522773867727413068029725897340991142526918654885578723653991117484783775456795350724988855914037819025371568303031212128698508312034047698984812388989263342081909456270501777736505543399854857976782975254204051531583265276522513165283382118176904039349094216660517181307248142836074620040132105499505739546832618024351297918694100562113900799013811257972814539490729412023392999566392960861862115974034114812619658732530411552905468369563486293025576572752886219523823941535545821378411631496626785942096750725890597768079756312900548031150923172302018522539842745764610033488506292235586270384852722219846588943992051961939871725828326510079000369540767853697112856249409261616308193995203610260581981548759143834754969491815840861456003474470878504542793559666765308771430183721150493793318297326603662890550712614163167532682753842604715483973852505544417673581706667471997244743081210349674958357268235396728051793587900896407736704918453667156786716695584457073181455279639880768994876803997671695057464754108463567042389476272736478220040390702937267660922901173121963748346764135856836220761980411501442994955649389352319484669041663059697926085146818553502812136302370762627353808988176475227649988002911935192165926416476799086710407519696843903544972159236943752370076068138081136088734645572678327319619110093470689405013738133537157258498679397047803581813082676591846197225790149403330407436233822159821338082880785352956292256382610685542626350356708746925784420439722277027547980277897063488859460759005042771831102316992881424161446658339452676672638345116175756086984047159103778433353192604804663782831017083758101755391991416770729365116558311793633358152451661843241938268627952743119415288582048478242138334927878210472757525813810196778875974683837499383722989608078149603571314273174001721127325252526889418074374138341771300089330342597353685163562618111624402761119236699255290304842970888325885114669435111549746868002481391516270963311688261366564641357901659039264503202491216449865516583533537443541476395505257835369054555291576738128450219603438787981446254612335808920296099964863555970477528839017851189804283417556215193440796568833074884631192118967669336534593238300534893543309162451978131800658048388554765468949690916584489537475108250821812644140805548516988021425682930349115585186748050413514833849169382963073662534770919908322156959189917288404749122013900550457054167531349328838904600192509736018565927318123207874027172226398237853313405959429765113805922295487482930683473807418114238033313881682570541099702960855203968655211878226570039583664270197369477610412223101338831742519025148027750458477594550730995127691137871542490597793017830651697667058446659366918719261967151820168401666745796726622490697398373088497385930648096519177964704372508726964845203829768772359686179898074264529210059367057414131666213465547090737179289843639386263844980915559794112510897116170816028582934204370792995075020767693411944507610189346822427547398987830083799538086232115339218171643669655698316071000086165962856454268548862985355165718949435676305568983629080517800218404784703517257967641389228546538206007332495693489325619904160139898308820638699527806858116681191056173500819022209065739574446017648425195259830931344763773250372961740244530220067174215364803924340912901101438100006513522542167794346369380258395868905099917411606092214505895793857965890936048985640500272509242365573330821469329428067197058299313592395006008278592947518490208256643445189371649547457978624800945301696019791599972577813289184165000166464246197277442705919145006930654974387428851413250402254502560204801141826180029194759397654365514245602575653111245326846653558924925447104503003286551935407783380184744493913891424516375865907666975601470509414880370029773521312684403215205763474184137695461759889136225440797496849351775831201481530616482740143706974518864291939114210358842151529054852970644352967302077761582086022396999056086408866998795323787729243690232253279120384328134338291294811713037996398252571592710580418656711747770292711190578560297276778377721169077314355394932738642436793373691555440924207244627016273853892379465340490258622832944346558681285691112048232636576055477797792325628261768465445347130912748193212068540379449446356801622684832539764115492574157011870355823612505520263861497190990792132061696882777034850745257892427938685413651634747307774836349169134757931611718894145871611084497376862926924444570017672467120006201494465817963627543380584885128326843235463500157605885276404931063272236335262601489184816303856181045430364508420317826555514498357297493548218185075429314731841343855949905152343576879175831416902425557693001329375087469611865790122288501843485224878012850179467402382848285092432264011237312377987613012896687651798942848952064028742529455379365871270399727706913149078695687734438616128464825455583374652057938402702798989552834205034027141483857976541597907314177726545752189102003778191709920039469262098408957739826002723517328453372763196916807318322942165064799060057339288778128316728914557896851612572403377838568035386325876857124267490068398366021610772991876441128090752548515218656781464491945823148034973048856685434927121301209884898395993747582234478107157206174088739993380880939686832948450907006552260366754331737964568253289694024128694935340976573177723037373647371494152276924132021754020185620150840152138238835618630497356783467072214168347675986781188679746358263456736303137660107006716913693354523937041328743867124325166229012502095327209394120689008593993471816747683999103241279677321357448780104755343419599936960617319797887898408819790741139430654963528940532670163986858516573215984419107370853337309984886851330530843746995909267142341948991820945020449218861140137437378203134941281594383465632764707219802616442305281576010498108846332682006928644483641087000331635208773558506232367619953729952105605285879998292894237137613887433465571386353113808265270237284609195302843804443614453148860861747984457081389222564964138734867180130468321718870454484114901391335039405337901882801998374225612804053559140905334351627576611743632217864919429310563281357632811736915545638271739063161529993073090840177841221052947292645495826867658078259460059596789227926707880186393706366227955810426478281970809132396427564661670155672670118188104896651342850908684541128377803677726545884243341163223109237815443996593968304082947193057284051268084993317390412962286351771606553472512864702531745702174787673261716485872816776211947801100155324872008730050283351079418964315109171251219417046059001421469686982769931155155048425034279260348954610267830220102727513090127104837464639825304806372248080674756009353969228244833127291420056399703234298311624566071898329362219556175580934234538871234252211961113400426038823779631349385029523959402913314121462773420269038487379454243534246750830456484478513628757539064906752114456489947870530879582458928004012866483137371468998858182354929070623883087215273093955396168448596162631759649754131998703989935838071157348137342834541778159759827764759398249344549249995930839325120201160012721680419386741992327851791414990939709821250277212265304984249035700963657694106648398509054385105682450793266717642903079056533585815784569952620664880732418614581406306324966647736327786119280962116967074913939839460996959780126716201267389229009309263713526876958317953969281165918162310582538831854938256194772608592735093337993409442519725842876276683497464173320141736826110368271479093363576630070128679109961450506690203732345486323208231444451441719169456023071365933965768171426488029760201571437427976745681016384106303561112901745041309106320285680254708168118171019560063466140069326238060840369590059306392060823758002893271924570281958339224691634727055732450126948075926763683197359231656326433477209289405541164622075687185416613747710736911913665271620438027891945144432768662359711202783688601271720816852414216828729262461148978194548573766654908577898611516758929357491755346721107522957443267514963964604184365112133289878178478569502241575108030449378842604010768898612036627690060392353958932929847436486892491992650430012438553222981814872884214433645054532775614907394545484318769853903426720648159950711441516340976656261794693502999224771972028612433519638413415505967046052205451515513815708380191904071223155938226097384403337326322915396624736246627912749418724417144596360879834319842959949999297158525417778120989033255981580138051320981820595058308462232131474498538996867570305431724642216214255687180101825630166119814395915222332344664614790225498295720569581067725607561509815956620153516047735606223807524598628683437686214336195664337098707854864888484635187090015837741439901174955897053068012077936354231569076333599748616133131209871227697823162592902087329370482757481402064701424768786367890264763552281825744338628558502793078916796093061591527123049255954252206890365054625879672461042704078075722978433640623516251306473575962154078551509422977278780259157895125044519728177349056881014833915522568946129124997809287982600048906000580935786206989781122740821616085950125467246403864901825770273808235411350619058859321973135400231064645022517998107798153026209974097877427829593887788508779273564738031572109271776533470778171204009189313056653241858175795490065219639869484815130164780190596200473697350980198907506528111109506237993324337694339877997778954297956621284657418506884872838705287852134700365838968596450617799634987203199036134047445331215525077715303907427047306752392651248788933212497310208752946998353904653044322157734111960777378418472725549077241719129446679961860099164634369416432993229978893030298820490535153819209677156812040537316361083841355734681469563082492574224274616993937837654249914143921592999075286556512235175948903427794702163583909423964429691545154155636344194088121317367513784277555143686382168854508399457005743570759252573629526019516749829474822165159144255688989450970746087951467596890048214901744836593199038509651917253095330865395526956753484302146878605020623434794948297372150014120526354237343997337717241166901754507002368504669333318908222795310213607862210546989399084322314007568321497652489496039259397381065934311134855337896458389938446125974475341074246893265681666525369068091865207005973322752843806000706023029558874907392421797401551596025735759606556952417245813322574420453320103183738509426295474692092657945324817793598286539723870905666388928367246025625271935306536134909144041085114267254081262108314680318147400437953125813199124489185101282951101796619190130392604796484206737219831202747058289950520960485616273308851779481565417746187659455763295539541377645837653506135619525349533230690015519458628184559560353134703674526891914815235191569282131207027808657976601565748003774260086529348506341908210420136328503421251508761591007011092324784534664406274643430862755434675154408682338620201318103527760449545350284142541923903813915822922835012946642769899554916470704325993186635801400232680802465073282755006729973854501438082919493059730595310774855179499586966677700556674025278301884100226022340995696419470198295811734692062511677359333727182727778950016421440435804550115663253979422063579206812731399458627679410346064021114338093116370898134294027513814609849540839490588926221516217975312983314595692228968021446550347598310068555105077637641306094594884304964900077332482836811143186786822717281734201664092360944291180841110187502115998866744172612172913453760322242738518802236896793039308264032630331418910697523150489923107584168563946585820728157319765695328560600044390710898052271520735265038769009410033879883530798352158170068350556753628719044599591514423593992966836125993200109410754283047275387369370707494358018134675602066185231763539158621288636039425863235181195752759509964826976759695361774685041921231060161852905218420848388554585281380350196600527966284829129710690155248033734405742555829868406658891693023390661208989490297317148611059061266442020212939216432803120253572297363169639682050068181578742219080377482373801643744404351990417296555211876572882388658982263296124705173257448804798005968930030639541571974147067158439281425898425352575726561036409282955774441743559724598057715200944398420250964443241013070757802193294811943535554138199077870668199245694444922723432244840511818395634806818182221538938248681020116734780337086674969201816558807036056209077699472964021135409296858320773908880136192322894277188636876463063301531703712769971128133270402657750355978332683876546963683607899084105619228019610413159302308758020469505975339252239639032094946243675212505825735762413226538494296410907270885036275908306372535195469308254886020778330155450610547694558251795760953293151361963849363632709709663046229821851533267812446524628509212577504023025455747861546243488302777023328264328245312818581742324312652400278498796473994497762485622324765344199361654146812998188860825283358190110776575418150950055868746499845453583058785460191516601109200336290211597064084662183117028806940201081661832700444690152824696680040991752343052199869570558027024612142829385788105427863176004814436658097089540605700238767268309254957869717077327402657930632947452645229463537745382110438344495515078853310039605473643828234422635069363225935773591249624828354763592326128375039363382300728746378109039771017413918582022698203127976104244505324032446479021149514998453625466410236473948005194314858436541042460265527461886179208261899728763364334963755106748915146335157413561377974358049388044496103200756091184935430749786934968360182587676325165181345756649081034259474047765232753229005618353947798498189730962649292664481517092153401233585148386447774680057971188879692481899321995398909892262167603445679988112280940820911666280704526961559602039752010940220045760888465678417661640350793535606213465445790281267620568555170432788301908788696348947793227411587606540982591083497790741558414937528021414943923615098947708463024662036057045519834241434369907014688109190167555043425189495223318172435081639026245272313012605898467994366981610961078351185810520796338194465995176236825485191445808298805729269833495892688038034301401852114192341813077215500551085971264625979638666910764032475469298905171555570891234574459616964825759272372058538699871769677524363849649652832028308408055026888984557262146974051580664733848341917575246588012214191967789158491300623220314917575312467831877876381548452941787761106591494904385303045361327397492720199578922444170230105039971509804433896450829028569054139860057849638188097863415713482482038152119364800901961019781367607620504091159434884377309125938932667042688908183622164396043613064531203955007236587994967496124718387101955570123392425122541969014523178587204181167206800825902492492838916465510749875656942624791681874795728295845480204579825205296129283414352605815328574387816651709546158131260606572593965903192733267628850100231037375667151961123122107631379593063410895928894534691589096313344508009162870954122806730146119756750512990500189051137722323032810303229949289407979758259723871627442751060296606634416207980583814005849279356790598601452003111671609807370275629417375530039463372442798232475913649142025294153764851879071159234931574452928079663130179783264618282774179883947209206997366344959335210993691933620445292244709058651548667025908474376840788960213827996244752834650232084709587376356138046388780159683733650828983537757355824561235734611693324110918988030577160183121837475425511632489749513058008121257315966763025861846390752098484402057965122406031248921235892076399072022142783721483287710995853899851071797797195970659273649924241543179158029603298145540829544301187348971966851920961790586537611456358878671758473613103320124307880428307183614321715066520341941750212456101703195615637530888958021231088076348057798271528551487594843762926078857315391152366605812639274669191555370149698998139482689716705322226307748382411012173074345237839344103429102633532638583686540093624687610239998891198704602682636006300832038731752228912112299681320256884651177169330056431209713731350603198151427632564181459409323860976771841795283753101211050234520630767763279345042055711716982585525709671018583836068780654349491337306693620221648455669134334688603032698815651295968337513332717969650459167169669979353743585730753294320915387333852187315112917164872721035166516552962074166806200599447915075590552434626400353855543607564064048473378128177220824009042118729027916525997664825950877291967651103657597745108342717717997687564748853872540796234337379503124653887392837923155580134422630587288594788420226996649490284829959182342674975863625895804340741461947906477726233712713689092597501919404331805617666741279846110841273906585244573212799447277818568864962434816610518244236169878383785934734440637723553865193843723273074276071990042260362623161995438560285009350507030341602848834566824080414453370464480817037713049253773052905712834711825592517602076692471389665638145901998921922462853375252673639168505065319238060853008718771368444134525646185558261682924006908177727578096683518390143111348287961080312268935022834316800760470681193966470529118428838232327404628124046357813003928214282058666490959421168216126832695960281181858861999021888968190908133641440492598078102682874615900861203155828053335377440567840001897090829954127576862987898450289758183810821936160845241786943614939216324050557289205167009245236378091705804791062290762831196846249868881121322675779804407522682816379527580621932630529700975576165381142310720272449696699912609005372859819133677169680622396604686283633802305152497014457974740636312229809853567538973533833781625214487453230882874875388538393990347851680884800335545178713620700520311517963274032324425983433888521685626700828650758667405631327741769462349896376021170033608180689470703862621185314783248546110151291884110326444172693177213687585477049511598375826858831837083352744660787957586947886576505258366207670023190041851653612326239973946287163539201066299618560994709555012543373866421362816384881898914352833160293851817795890264006951334234811553420875772318773513698905426342449627705963765642008411817915056772284228462096902086484321622000314095081412103494187131723390344726229664234639185359348133596573370769773618384117296282991596111818010538633830899076995998130448114302853185399860119047884003682640158962162509661044316875418282859308357278014869705553275159798041457485471962718077579315332424342153555169881199679145753369960991938540796372741879185519102919802337361678770083982568090891302633747757290717225161145233681179885970408167400651146160838364283910204015288019822310716726126461160417870458370112704180900965660059387860141008388194032349693617723300373547253424607980911650602599577074760259529447446843210528500919285127605965848683737453341008438465224225825623454232920156229286206180533825541207573923873295174571391448235926054042163563865633610479858844084597463259862811958016418304143844252853204018870430764034345189551898487808529386936275675774850117500959182295634217732907494624965452082081431608592742903131273950337495485355988446995263368064520784439203064674634097682392874789956934265814632003542139442798745680867000966941797336574128721728550997660136210936363046051486310878228307710620448573764794571531566273575978464221171321078717428830807386184834442288712876297821218112375511051602997561660443998185106421425362364334173849180686428570508697714783706531508113165651331434831526153621550055286928233511478831284731723067179620381319514452592658470515363957953705818547175087512005051340024619495470917538344642809857558417233969351867511744488539238889608194058756095181243726206732606774208851977505036191502199186740559213735749707084872929787214449679377975652823875004227213892620430049432462795906537997621436943800611117560580408828306114460425036793563204772163921272014623576992900276712289809141759765843307538346604109052905478038003085321956996347975958681071996726873643464292019982951253715585093697771917056103871426684813467572812964639555189512550467853890342631124909761108648682745841308774037442547386873913013072860880277900604455907622593902774296854950736720357386149392370037233906404932920873899374568590715076778235699008263168727559026351711611600936127796429306206535721759302421089432182707016656158731791244693695351035636647681447780390092889151390440684460279999813375292678553332466228256689703192483686650458337281459612043847788465585263626140968726154061835122785233371578698697229359781258964585468128703323007271718542051754136301501949291157137692182691176531166363438981190090100137527052614516669562602956549168894676065368006473417614626540370781022434160916977176807132225325929358490545163990864624925886225092466053650087413787359550752583664762227676836469476034021960737025613885750608459986184142331881840141405579294980987015727550723656907910907263426815202723488858563892797832753382487917798141155050475300943195801872501056032268373405935231461454768205886369182634452346898251563026214901951012697856990079788249692187398343824419745270112231193221438934347134351424842009536876800895753276118259527566255451219147823410660953249779940596250682487970004161967826405393732387809616481716120750538098848979492962014670704792594346480535221704750505487112657935993802572511600587820793598367009003705197906333830056846987919525291333763726302724736278527161665770949543887247711431018473617674993772701831382088608124022187164895973737391817858113240293558662686503852708887579915053057679822286367067900545024978091333275942692666236644719571057309563155687313761589281041050662759208144291928778185920406685359347614209672844616245888042431509043037394203163539778066227580490219837632981991209737645518473732967596756450514155616954932922065046596590559476759204517890307114157836254651308375883731879647435754035418461302821946031048180066494116277315953346531503753585126807920785621854487061507997803312112374410215264115218360264456942344695440585529550338031610123779295800263475501518663960443009735547710192175048063175995377633180264783894179715330769717293188626611347057583820334114800567261203347987820052526218501627818213423820507058512928867966108854239978348736322468672134736952097380576053617361314868419782571616622739182358148839432864237347832733024057023315511656995424137917980071403075595133770654942505506658787202654312952710187159196140670028990579136184438784843207035628903635088465589330925183481165523624733265081957789968022503890763317007832589976085586559604769692900806844774595466994816700379317663788709170840761277707856197798169790475097942876571054011403302623133528669431240602275723037815199923996831992357461763411817440947599872143699699086113565593414747212295820021334862764533754397001220657967397029724458578933262787387377312936562438662430601688416118962241903714107050158748926594831980085104337309008284531748533883444839121035364105302598074764804678956584543258005440261995770351907713635545505635433515750689386829193529103293561048020057433711005088779598874018090635609634548537724993206482722276824941988117734063384525611104130249993506503494831766562096543341910135649279515337726944767124999350599152282208626320068992113158945490256156578298586277607085418720939507709214111885428830254087880625074174199170178409520558770736314886874916915503852444276143197240910257707666779451652493825459547624942932768137740546028706656172477567625833313467925676706047215855165149796213337003326758025477857626877567427642370755458117893165203951399179047429347783458960313990090319887196546700161373233437802707226735861865979783671848959669528134034755406183400929797015293954695132839429458121639270246229864709465017881963948373239596581369840903409626887481809598019210646321682928622318110034115591796784468714077949981165028923153069050406615658068339127171625507660231809187847965957062444852691937185864206134734372185377847323883342588956599759499869056551839381487578481204500965347776801810894996123332542510976786967152735871904446113052544669748121534076442656986077636071949346144940470630199293949474819692215733835692729805210801207103919711012843806642869568854838814090754282413588128913125879935918172843640009494002480725263036714759694075516403828711609187171032702971765644820939103515372638327179149668019263184842955009442185387798873402741539126167088458933496064574050693629786375919858682338772152649958202830454399002071840127710583717888480913056486645243575844721201908368440197200754437673890684991997517423313306698681181060249432496194087490478553280336470603096378816024033556082711283254646737711035646192560645650881490908611321927462061655754772155388117153668355798908978638357151821647835436733896802791072589896847217375586536617512587999278696941585372523543387866009783241138711094570585185926132958467014217680229430520461301489680017651455454286697441297398528784507291400959695637978650542452755640687136582391350154044240973220085575233992078309030661793043626089914996748377528706293572097990859614397595447637901860701827324653205395424694517658309001059122949197731141006424405449377983606586945438566351407912565868828446465540678554963438273509111363956177699192834544460958022355032480736323876773274430462891975326744120870847535458052293716138561903403650928460905129988645359798666420745589845330369948237616185832352148846601720659245887591214002891033520143946649961956795218931122723665422655242836549791087462220330385349539035878690959841385202395812088309555674821887624700951963980168931205776271784973355783754999169593923115542547364915427597282719766849948395010947308206823057707694930341967452760127088084315736824795033427663129242986245007412954010813834422763988259447650828215774608769554148786790962331129711459805522631697329196329447278403316889646881278047459585216553366156793726216027543279619436697960320646236441281441576388633775191784335148615969515964963545186097346403590016763996326014349097935025882156722582156334233233721653128808226361767685495332679096986182680688150439941533635190357156738220926536287261288461797097713642637528245859590311382506846834981201934581363852617752406470102997600703098420326773260368167259712203163369645998919816686472149033803300182461779237317930444853889598443079211895772658870679275752015731843913834747302801302245920636655449950056080942285049280423625632524187700983239969790014220550822590433735027780461062070984640063635171377740498408951914923768609323956213549476010443286727702692275233224459367675879853444101860981974900945054431420456954683248220038664379692296236183843437606167019031547246259585938896504105161777037299904338176698698396399748414397686267432954676088589651904131300073243028938761904992970780347760736326318471815557888948663353935695958522187965002814820756501104706033336569026539618341432190176571977799909557532775826847346442209123376414259194183570769183061687161240895717277284665537716677724538414664141225730212725680953102749355644529344732534587353855993467875103968167767163122129188260896015005074219145400203041851980041703661840845487762292568875898771124662427498696949497310206932853788450584353628694581003075925265822751883064469578917808651533661135753479360119176853973223354883931326102949639922752869307980139213790626830441574981600620524010634263646577317459813410829900499097564350193331159494850829169005513343054584365139182190214215610048386317733576416209513750332656915471932201347355325495664228304272772240868719817623806520971543518010408542409074586056027234124494984097266353763476906789706296103342739172285776779610032640929827599537523556802698339845369917533350257560490219327095514474834235644398567223593812867692590402226756989312274620389811832161196310681655468553315438891995336353443378973454574893205960334835043532198114487534177555745003872270256988799046384607155871460771594968667989213956466873352844264971562216271059129254448100370328762512062952882367635442581731260362432759494876979658693334827236776569036590665779671921653687666471256567471707975183257449901267958950300434540187293148583598196490285825261042096915617733365705552392002093694686200714047849220919156801437467134632179286008861184432707515199445408230556756336622981280246090826017137168718671354375990985718197513167309508496000206235985234003571491245106437838837229477338234940344680607330812847710994936147117759663775775982123447264518395964401291083646452087371666782820668980822706754851801122818827497988522668541594042957711741927810837011002677419961102189193484950338207242100856114312564926297226208863321870910969138127682006756805582952860592959968483184827859892694046107947975834756348262584596093070258701498199376217910186208522561395721696095702228766638153537038817723393634511288501686570244745065891503289024498040729478711238348226138342697019158215657398161381800875385576822676805360069407630943735943069913243896005182312607061759091457105090565833231152996287258599195768443250233325218113867199961837921485152825582538460128010162011997405723885951171867085066036042368557194310441322546246356038405802383943970998123566163962106765179848787121778540324084345134829547691920865918665481007411389187852850507207863815937827985376533015608894882592620236805951686329711715628464028775253430112485079777644658015499005072895913857286647502239290183983325143344610244502365164285555891002411068604611621999243165179998843571730549862272054106186111405218088605241690910176073462933903255099266785209989871970739576953241433577733110251827891369494320813167893611447242003663281046914821567307215936585657214765378363189398823021465479184742797200775948168473148670326423583608577062683995321375307395935050479421191444227818294579115011739478225271465745270894925830939516666007690136769005697514088994325149339159149026729768092889720395378098715978217074746071707271596586855702924809011629772435881806360812095596185236316025946290871714646742258822171967519041272295560682960270237086466710094117351650310659662190517870396678546578709754483701515971956035318072746056177426758585254157005998769581225654406309454004898709888744937270604038645618674197520097838558556616128861358345928076170351689238738123444397360952745982351941732392245110552946841432075187544665251987476494367318373144157390441627894843850027333775148784771956936558900344931017866657154932101376246409436353636643857607687083235332105337105596577474211530849513759052573505508244392593885249163135355582742042311676010477335927572631352236922009748919056458604716133530548864137485830183222194561542787807861156453128931209108085203732268403236534804196976235741035771992934550879954632172951872173434037634765464362122807635958189017425375504712511549805219741480227405202337174920352024958673850751036541874358057532936634380337094217699795763996993598870588018305204550250796666318502494307698097522219246993949301529560459017976632293120582918487542354669700986960523977933572067731221738102532542432875947536258473328170025300627143767104137930530427284354723181594152590201445395076319724997687505195494511746210439292303052486470664180459950226277615894668542104959558817748079505700503688618946180511796937421354058440444133595864917445418334296753657515257494058521234604916251485537472355437523521629499633658872582108239811479530629759462318584040660141092967354270398822228424346550972004581947864080804718732662786614969165342336082928672853119224523631112353959770662911977951953413253368257285266889807061293693354252444851450241225074615233052010750735535136838270181695586884249198805160685540961521484563484092124064003690903737785282285734555827185302624196387811375509334131570016396136667070501461497292008872004425299460176944746601427615969251619064912771959086328893802698766929210241437167087059479443109508420588282505113239272011709660083275313069906355283027924823052710493167590328504177360803848387274422978417346160014874256359699605813674421035846400959102030676476390632010827612464988738058833352432476396538298532653844343368646842085698674289278428138272319636529361419498580236776456084546506305218226872909598265958823158155711711815795297056165394765063853925557152984701368531771787646481381749969773186121918933777909663065924800595800205834709630077376776797262855491370532692554834425931469869371702755140171925493597845359456580287670063341006575621058575356021483279800869916619169493823122467218307449595928026572053284840086188477762464477603387557185700827421857395903156484834305439891724302935475990905590089560472978445631748071773813228311701226219270116203780830186823536559088233980388479516104252471455992702171446681988467102302777674842497265871418851175915872838738191754951921932940373054624611594315336054853620125214483590897771678042986618442811185611704060112517202111556764850434502901709976274585433699886041941700153142711723280388912565552386473990126668733488266654028590223122229225190730122956598983991770710200392403244194947003214744853275657844732411919843125670685071788225582099180136023068785255224559270786333246624299935200609069719172649159389632747065850858351161033184481786656049977165938955650491001174879865963702742328417750850225034462868281812508538440123853240748211902293489291187175521405859649694424526720124605381992218234262818120024329596152315222933163313159960317690687817815048355334902478929014324650561503739126923031426799134340538064961148348683244234937977357609142688360009242701404872818494081793061899432109115309688507659895295638566353121508024494801968544983559245072141923840722686875777464182420338439519435797547208323529057663193588110606357898908103091325052720190884393264416670056445540847975353827199447265708160717370632917991514475607570486716366565685941099406535290930437672962477723696606757663781620121784559498777086886977783512048984437821567520926768032607691548087288564261819360424508744995292327470243426725915686546141663560107991885334361944834227947022718372344048161235379906323117705613723449773122785396442529062270528783623441954250335568830914976191726611269995041548339055470486756529939774475137707945434977327315366707204964291372753495543565496027469424347664796726860742958540658336379459492869163462269064156301442152231790441384013840953155550574086581449496190017670283367674971603609617183802398669386353293065755322066329631364929231303080216960036295314981966486786104915632115106980250548427005466617947670061120594014902289411896884367295238531012297475735963797153080309752144461650694105071802059840927948157200534123915126972117214514686838723478293836573243451319776043432106809380957655622007618346114520291461056164215773185406762951170343079565613600788397594023776354029419598523682471966590242938667521932153608249908312347275028100671046214119802747372600032331717208578993160926890368884460696192884743006465058351168683228743383904347640894276005020037737232431516470137780930781783703509469689209275278603533131933379011944960454435034752562950121025073127046052359523016799093416559460405756967825287197392554504886393160658206578151604341359825557426103394684931378792311719716402810161634617288801676730080385077674543038089360541714300435383329744538021596891113783713416768479534538021116794602262850016829983465580953694806764565796530408156571006809267018338098063659887684311992991786277344317780278925606709005287453797048252004902739571888448470913436519026787649803290914362028577414494988850243026715986866013921582274309098510344199466206378963372863467859396781022002522490689588595032108342311263500151392700545226423763951177144006763547302656834411580058637170706408862183073895338305488810516490123094497213546151142841959612705587734124254159506782494695744452751422227859735964679404531852155875948172634941454678300596144407911190202600463822356385174670610964579802803726884338946906293012440494254554382336384289369097170526665824527399162535316665027074898228055272981425164845487382791295534919447138985270310412487307329393380148036395967022291003785322473354217702377311878934962871598394469162303722135876724656935050849642782159318931907221982263691805772172501130860825493082382772538081567290468878072560094278336666273772889401550107974735558343405165626967741320100278299119486020198518762375679518210029523045868381473568896693174541984574481073856123805274304732527320851897223703763873468390349188859082736348536474277321732227605049266565316961334983333803323977665990178112679234170624643355636323060787695637040169371380387627878792203605957751688623709124003537873630621703990065339492794273731041149515586384044163403281018070790179752565392941369117523381173092683724317202745607927086786070161922883556367240565619580088956646689355370702750378894386821182513718188679503269501293903766391659459108746109890928515706824715325440566647384899209461963886721291884857008250239032114681312838021651964411843163762626023564603162533486878564270701455242217755631519244214857018987926768416370769328267636461599223431814329623867076253605804111308329912774202282038489326431409023540968615196484863474080157602606403290792399371794222625621279872372781540823792949735625315055218476348242658851410154279803334366658359447772275866265081119668835124256627985477266240036131322878223824237490957115399468990389729583058736235039489531455251549408250493907291510873900277555693642946254278352563000353236720809390235394502520070559247355058636264644973733154652476274082580962289692008590358303363344780866351755751911140221509871161724325203188857029423900445478567198033502547040221247575828355652948590553219155067840824478717691217017696225407958927917135111423701935826548540918118823091678425086542054029000191971833647156338356034868036940167647263468007003939742388926180893976348283034278079220977553869579114889960048239513384997700958456588001584052588868102074752961934526407233401487300383838323667959294134756670494470160748076283184525367683445464160998953231213721669323385362563239029743831946990579958237544861489494532028736617146459946114755271452124972345843838515440998546476066770364546983495258133864914824864691093869814971613874817109526665142738008796100612098277160624527032872248285189359101428016955210719823942490409179863374554635507334468000990641873045281588751835957376750923950481623294915937961397429708464560537088574187987479899577928899914073685215120585178360913865759250142795098941441919866493498772992280785618831506128255228786285201020611813582022154702483640904721671217040677715977286829799631593251526489051987968889414296821805519878937100871243822257732222466460242860875244478009529792744124668397858883618977975083104864435876435608323696655002989298353125676155130324095121048457948293500681428724506832671145052714085880792250838164715657006116617532003504855366816226382863576946027796039068745778919723996644495286651665612644991090020682320154774852342364238726330832192796955095415827250743061794676067628251675777190013320322245999632298949171989388541380004387562944246146943936865647729706116625664386768749784072646680733679606801253906177946077695316980537715063090411997918289883190973143718216342048645327468786746272773972827315488524414101267382533098015682069846650406177269641356913561467979191688729312331773264802766561383172481698823720371919647977014497159750246595721653831950143240221344980385424491953690267646736429738151703540510654384272526652448925020189431139041335834580714828646873662763032492190532739576943170624482616007489121083388611985802302670598785381630332067838795169694662359173778126071824512729954637647771394895806054483837833837212161467032550672836378659166568508646875418432104191834122041760189588854715983792356895445270438673478752753510999523400669635780102450256307678238304491032960072581713640119599569815202599784555699586083434715072838343221284353513251310159321061671176890019990982290124766569230125769417484721530503807016277664608452260924716842520833908916224046783183880347685040681360110885688238667729100100441821654815589361452721987899968171915210696794398928074306201402721824963218910826249533612845671052658727519924335265408589713663278948048575286453795028447853168856049784503977392017883284720913875202565425196817286001792864376553516611236809590005627681454770795663527628477270550629949448421381205685165359123824636050247210754376354771111388913079209043752371552932021070428535501659299893659353217781959781915301239304750872971995145034559165844320438309292235481567290501903644327703019848820294124352150280658024467243970403966358617982300637234110446712181246115240412098616654176076388755484342552405601514032041319475174636628824400234921521577108768531626151476575271792650626625125487387872980842376778202248239493111496372143831982238127235958134307017659242022827398970650952027871865587430282384167997482938516214025278464462518402927405444212590003377771956062138296069347748063103160084311338806128992955981472064584214767215514545200403078145173669180421675814325647758085807664299828581278035033995627462989633018378302563662251625534123431193538214229112946258183078191588325578102220448583949313731533256640254981001625796386973743429452545020268756440794627056414173912906479494058305104216990353848443375233114402984306153637015018817957491762450559671388870039897368592915192177359811733563823137810230623090909883308787099227589287792283474382755611395442750192727571879700926230968233013244463121231258750041405012839745302685007340552221923030052218207792678883414026087299163962133509148667293041271086598460204304315637429218965906346545486984995104901440901148603717276053657194903943530594509779002056981350641950400498070683492258182977529238261155493525673939113421718157960142999919418043730263426054125016663365921401988303097790374023554720654582943890114473330822957834602984512992626452711092670624957421921484623609197994481206623122658156564956136828273862112548961938971668090498127921994509793827761263234065574139448940242560973228825108259242932586624123633270237648265607787197316444705089313982989847628850996879303418384517409825704770154900877763937508868608481668278157150873948709737698036694958364307391067648293216215830372102778902368025532587518333528688506133852298694775044164262635085714062701551841159169049767356132731675690741442292260240991105324445495830687457318719761668962885213255960884246646522269144079023909313864872059049348039227822274598022809066232155815089294496104134116713598276623206093188374889139144180791269994521262098658784493705516341638676165410454113130319419806671642301254432247146992163680398982049118238700583839722419068981314228044451392868000455853967635319018898382815525635742029329546094220426870722892491206435796111304176877207323014993618605964094460515100565335432610569179342597556245414677088131499048648306559166514121949093211017328776741286944025704472500621346911159104361716555738208352249075834819689744563865895956753881657028104573893308178117158515886368028557869136226162677066528191631291238831176414910094232247129836733779289259559622373855165738094254858288738508929457072447178130937539617814736803673965236910139575273882852094801501702080262584131985160360147791417264087596815879099470428991742975281639771229930695618632038813906756971621663644622349906735118735292268171150676710621258251987619784459661846208825536565992796222938848409120078089723293817925339572524690128744423199741836713074753137294086734708120524098405622843291587274100309063949515167533952507483058655989124773669719476129234859512255999156684887576559627355450119268768917637966462738032658707123157312736676999495759222751633682669644849575399758716480241134526489075754139353492860831284301235228004709646172435103856313698050521872956401541117927029809191811913115840060917811604616408077319306848380106385367141552889820785922820495755185902184764331250224544071550549911603062953605481347357541239802563650436368514385461747113506857018976087450330939043117354852229855939495539583279913667328317133283324734556914315042663871419139689417131151757118583891487959720402216066212659483655054294030490978670728677672681006894040977940442500329424053427261814282351015426571746324173146624560808544270089346186886554433288979545865556829877267889258167510860710674321120747959219524054658544499402129013257607411467578832633027139978193224361970833111478797130588663010197414982658914615772439489933707870393077357977204127705946858499885445031793744583818248090325469859837013134027429673262348711482557627694045783550794723658391341341759442287312218056669551868130398553405892786831794891745549676159476886860475125717911728893350784768785909702379179731468069501664575417551490246204806583482449589311348513039584967232424177258372724367134664501296564925566381362115659986032096646677593553613492606723079060489044205634036712256370789076342416836206554890539302604160650621973399795846617102717107257906523019423388272958559538657708255937615839643946996829959320967985481556613842403996545672092824425659612500763563518838424596045688775234096550645234784557247133710056633402490242352318159169612765663953681008622692764443434631490620112360719545524984469989267470032706258204798954409033399512723411002969939202320225258149290399084574475960045091725671278496169414912360497023623593163362643080358048475389454873902326305571040164307193602554209482046424446329638454306843367100353348957835579298588439653574668662486957406019120505765270725713758197805501110535628095169215934507691433399214315840300989570266930233234475614029759923340378365571292593669371207933432611462944986368617621739580950070529724287759926554211655684869803773330370663793222804216605513123253646207584978840254647612468007008890521365793985575739723214342726270466363880532971744326572016334691372029035496789343424080236932344708481880736694848412725002181909353238169340944851828709524453547140580854041330956351490599477287796648213227456081076617404018221256659348497576122382863257113146052608606099826974421763698263502480485905063344930147038645603584867726486368739256622711138288952004536621115782484274744064026473431033130250883689623522510689593701217833118819000753708653909146976801686269462900096167354948929356033190903446627676494115201822598141732800882049428694312739788637395208370701314743802276598485305719504305529215467300092179394446920566159866983141716758797284202320057073085542783721053359000241679648009898716896890399788962568315338150224649123962415239132925801993277919105177661152248406965078377421708510357972790178662148857328958105288329302017833440520176475776555233148966687284008923821427551589073344682890115228055484064960857222149275366944534139937426804864308287507666541595019733249877379686951778897576518327596754827638885500705280645365564458815692750125818519702322600701761137700427446101314532983864979068532497316226393530865451493004890603674388543436302875393811909837149365817137367630545458660569191137870831547779889856040245363741468373277175693402540840953073755621247358822767457976754871262881561636469188547980871672331746120121080115466942481984672048377956756583072374617611178448114908617004438060303234594739682256761441944900851744884441333724921575345457366056856160665011573428245309471396669801395737273291711606854172191562808930977914154391344675408747014617258485205809247984569278867556986933342532728773134617548242861648048281512071437824092847824546411156665877089506697616589063217596984133353862012278354559423706341926035938122005360218960848175342503356085986926746023965559383575567231288976847162246043895991277058008782780644008471704366398675889425241164553372144067632307121644817727016882758198012641365335492503458412251942426869314694964117907769996998153351459019546672789245586256471685300725468473627957234192983038690913137076967178100373737294255675307632727179182894089822866755163271532008441276836861497798443275259427603682184048956292742474746646878227109684719748871162465527672756597065720378433136034232746509964430440285962468212773139559764405788082973075647247885062706221713378008829255818463516708993178813694645711849291786738068517071590068101006355379199051327958648477083914738175027905552845942746083229615275041581205435736456379671757929328084550249816772393991155833023536588605502406467693299121820388558079248119637863848451008687795281126053223831853768285184273008147391806162205688103573730473966168101669783809481260339800190430445796672630895263677945595120706801311156416781262705616185192613599993308122359407936344342745120996288122228926763965352688894083628835183542365147395660941888166478265115390647592742833439419921876456355038350464652509801683111623419927151651108522307389222168283039086227023727190240394307430989623654005446498688562860966196076288520560031717033392218702321392332171205491020563526675235205837984045329188206052902241300297075559134815340367150344089407116850088836752975648912743452303182277073386895053374970145671678017292883254006783025464370298007429490776669860661167963647496412997426349694085837086420484613203531844607654569811445860084545302993123883825867054310127659012609034357991448459815860597360282313198906842767155120399597193759467540988574222621398558675623837481108763768739485116063772746017509094949537138936304156337654313458538367219355593665767298894491020122797789063096564684695684216475167904380602291758493740117238478495540202864163882910612104079830255020980726145009013515759208482105632396797337018062444187110501731003708735102556768701935664742138231499464379118174462972344184032900982576684022392886783699403395623781613319287118730232602875647053265744881746605451097943434056713624501171724352532780630304537538954285042424931599319708696316526140861321680387330570260967709910845285071378748985834501529653870555823537609544883531028407609864306301747929649045700947398696041421485807585504721562547678838307888826573415958722393010556419446325533636589650921264272858942437356791251277782916682039420743025405457010892190090136012332698034556937828252819800982267647687449811754767400983113507060410544405322671235415996083552111076941777439275715309937139883103475974005160463523046136771068064167364685402184306077283455764029988571939238973902515814371009800276093590692862771127576283189183128330978507358161137104654382327539835212913732716897867328683851294839506464251502935305843232033547491511899130206551250760888106832449711659473062795985657051353955574098556690577059072949861509913730710740903243328130711602091270799742529140809251272814508993536068985248559381030232416857268293484705950663931783289606513693424082398052768448266935472170371364574852877615926710043802679986391132389921973231755535368130473619520958485986481125949043163781739667402267095556108467196808296280986621960746535666926538250742139065671331497216708026183286995435981746355047205765845675373656256229704358052450324322778264951095564508204160327017799924730096424647005901426040944721499306447053222054613299721198362595788802584530495374638786519397651389530938194769585163545806606823070877956107593654862960466850421035427529050855825386210784968950062143797176636174810332811000680239410185717394736021750697145234210053045982109874693054267746959683696046362601518973992925594862240917500732621830530500502028366010002888477672885432501558378361494859696177364574043962819599550014765634411293620476172098282080265892089959604246552202869249752809225837125187087037430091668334886856184689858717919151353525305111726273009194562415607934725739260178140133008186105371450704959348637890305713199250990316963417461544912591035173584009237511223802764399014936716093719176089979041083448398633921491065006352368768976486600236828640174915279216012335341022800802658515182216146197398506936661119965750792157579830344190203242789321726720187843807860776792820345172084449762990547027760226506681847762436084242850119181912127686575265451848477844245729005401818459646706201413520141259504311176831101529104627826704058328756101828076757599859191862581436086485595519947066640063797918234524460926921762584429227961570290124504103990571434801806954272752583342339127089215892181246517058061606336525040211887120107021901865951507228328911478352107601756359019157586425095236956701327045743470464253109658963167143242064495553364831888839562343182655775778700563227083055570694000208957970850771124586573439077860752664773924209951466353141827255137397820251796534467762371768620872181553528500404174890200718291276386708396800533139448529844686769653813682858782469214911205808674797464228364968520123329531338867678184818713973134550626946867209598599360838471482892570505006069530986671931401591747064221662068906844766412550286743792774625730237280362992796008438804376931655900960622143430425455663904271573332481441149019739136814375043142073470859132135284122695179770826444401660424288177946030255479560578650175370827873089316079341077809609127200178388281012854822741131726282409847742697606950826748381547458698064299426787557879865811230346287430233095294388124226216762554092111604309838682001975266134057892075973143571763582667645573438377075359607258899584534349588272083914282851163357871592904154010090079740780463682565661892147131143381766776998343036640118715795354272062666356497936061995670445029360801426710571731714463652384961032687676189888643445673506635366489705603603565092084110020574733068106364438956225224901170529735824900317015495709805222307695762553043090980481443588903047814890547323932072172257794544970079673649666900311222082114481675309036937371417947839632954182804431593971713530484186290132270463697929220202583548903781883311118434097682667982025124026854105940651570743096075158307820554813423339334395085695525720464721276742519281964917314684305999673742190426255129620996758182852498465304881188340669280077834624549025958106408269695464235255295890025739459620021649505009491438466690366451005879829947040558533556538467885838552759248948117802313189520924172757652300712359244003610540225995450827746580540632030366414870977346836786742322273992313834066650022391406614879546342567952405693818331667266635208219483703514449352895875624392449836606825521321545037263077125436397423153597982214693759223600676843223244726128867277704715337797807722904270755627237917237195560945353287962913300242859338622393708203541060135062007227835035326929201218085751971938490176533918085497092737454056926735567986652717599578158505152452625734306618017862455234329054640542879861094038682233081006521307968053678760030355853154806530859487507303975523829265142009089147355816998938337761873246614049556487587069259856356054171416006527235885190847926133533079110934204538930219566627531187357002538128454978629706962217932660986540261075605199426205812568916280559168852338478191641596444023562331540429527405711240295613974719156146152599347554869342026743947938535425686254571963793893203294645300248926693235803559184770860361093912302967608753196963411060289770878440218284435053751679751334241177505200137289310930487546250341877719274771036854719780117224177575613609240491496358638570038410923130987925221925720442496351796074443874854812552314084024322490127886201878324636586124553651446240480314676286718835504514278134585135905146799415424882717056926423678192347734329452876287041047755063215163018199277404384042645707827423071939918527263066044859482222591986799800327249850972308542315183034092579355932390139513417376785154871790152966900695238501152445801380478482089648344299452954585120179518250791607336979053634561835528955959172551285965583875801030182790429469611508980571585727438649726333254060475515504434138366734347151930210840890350135697022236177349137281234536836259868430264223752349027702958205807447507475988854730994422640419249079286325726789298080775367374167901168949814233972592648131928682960434200467920559166117042784454583341654065073400869666578927083540603573662881168027232605968885745661515147071772849370315862504463296875030514263356896705759091102103646474078939665783137648245517360286103262878376190498222081631864973543948046985478396258457741507412240225466840871342367115661961388023739359550766595128146950488545101411242740158465560901187540300335889694727326381487946290822465589121184838835061349894674959359949162714744412951885403677819748391008964688399841398515980945476085227096600535232232137924823039640600693773723635775285106676098313940224237430283326495883198307654757858906287432115546808561721529915117895841235902423647250507010446444813305136401883857229235371697439960358770896974812996328199896179757679810353660799966506957616634184147934358372283960838072881280120095913116337554298230224229163279549318442858854461032032854965548331606268093690148572904733293116374741964304830190191729427343297837540828988197251374062975041567896752064486278258134611971412266187582877427743138495685665895531356685054344670461412154115586635467947211979135677597289400432972721899846166451728777214585468763651634323500014303782376892122664212467712347915778952246350434039539679687387985656760344929913197272543069228139652822933830511983646976529246530401972765341947807010817681475964608569129406408051529345554151067708894419962682844299530494572394259193077533058382474077637082039431558045605478612999810034038376007397384927616704020823663839982632730821583261371208358563371311540081197744175447195452171083714530007738046568650268936127047234683122661147697117783426098437146828883561880081412398119042000701697967302412673497470454962476717535119595550996440302036745366851981677618798381937059669488061797581450085039332460734955955595220568378759080494885910977620146487266480478044484503032252609087399953795887675789121652931458938865043931610872053052515392267208716940267976316879919518650873760100325910893412072862227314244206844351094615567352026392762983819574095864848012035864598261766778535500352996416982822204626539520102864951601180632895319295908218947442614939736957553712913051206136143168085836767916423954386254202456325974683292053849869964152081950016363656858244772047351915619939911870058462372403263435400949765864924608317228286911817386414255833165434259367813294184456307965523691934249775295432287578499908137439306772892414342021172259193563416639893555461571311583714481314503362843229860476533799684555886256762897546828875495006916365309735911137796981987993626394333477283732436627567360767152154628880552437611047694635250945447053796118974646776757033819713658461336328953102786692117666084942001122983211929547715602346087949383171066995973570938834230089474443403176246164527844390123067272402787980907013341276046102583293079042468373901264688363643266844218980326794499018427381687522380564356515051757367207291429755165571264364995241730191711276396252988484069583920527874589538074628469543550119926096796086150878738681363943463092282784276633300088072887587184603522565587085813547164142044866930129603413937493624706480491614330739682382104845994519423416391374514712741887022693439469528113019839572810802683080732024355853410644006309854741279081690556016252713114210231815682806100295125325325517999353625144963159363751425155093336640318771856700751759338367273950949064685737199499060345830099703289399325817484153038454182850784709437658250644314948336401115783319191505923393156843588732459479501440937252317291410547515888385551651728597904629143055471404737696746166255010060097540835568639484435538182489887623422177065044841860254347479917008689161527979501269740384850990105224986397460277802735424706733083900025536575896378788842685125927471046511309163604465796278772482961373040494245542302065483152497068848724905479844118448196310744750737315529699013071135018840282818773147441196063325899494440656968740326130180925288650087740877427362045306675544749688252571301542598679525072322831222032205556174367032777983497408012188417149340099296671035623659370442443313744556845907752927453378974531751898999518903481844986285475578246173207243850370847870617987427608518408946958585748288432901164305851714534693809760934101226887072713669988015984680180609888930122717374035788136862474096488353223258301951662727939152666734730566256350092916151487140499397555030568357915624881901539695935656314638977738795928447581362345554304450306246332312517606235770445428478019582817820646346157780064785672756438436694631529936252623938584254923690324876093414371442418053254890059258745493080702243875976866867956837329215181182650555578249733153423885815189528439192418744087165207804140141274895549244612705160001144019832345170113272408840634079657589576042108035599487754072810952092946915276849404761224434390220241662578527680515814139322861014704884761929470216399770620244082904343740547701058012994429249468873489164160264671059349589593449218286335187266343750254115582716848856097019207458751479942340669590609630643675793528087308882395390125030207994514769554893834909184773627101616078498430808140389350482580824593678380972453418755202288545164774424474983006594494862307178202373731878153626593317178395315146621590976739214687167380259173868808392181432653752422927335788438423682053312945522842623168072725017890402432025192365755633729298747914873751144620204155305196186546322193884976557859085892942538075165918691470991460771267670826182870841236281970908797548101344367130450517676156510766572087485856887195984161125663862973610496359388134666776576819673965326150164519075407762826315396649636170947611355929373586049719089384484634037762949299268361619071460415486169907772170217875523342802806071861070665973989806070653804473974571506024349314199197565593557771273914529713577916751641435661035891803328543974599202502990975640875758984052846636112799090103905500482444435690089756936687579935230595912866491369933162836805029672093954485675517112066142753835901827165009515717326272176477102497558815270383452099103219313615781207341257401885449018090398759985637490264662665197805150219516567380817004834633002194383473185531762424591964194988819195596104786331740155878019116821742444097784752664728841347005195323556257111713739167883527826497178634653421139039154178310736924149887874420072510496975096355150891872492645472288848070938289609145941822332899513243653894264042561946424155450725842755838660175104155535020819190691399573661115466921957337460110104266294094638222219757404008818065066871089809806204035832052891679734854230303334356309176338789219116393639386740596157394715837257435374125443724619442132300338281807034763299371468159492470364794672330295053608280630598237444740747435837038652219340896224920450973558485728939869863244026610364396286122382562015891240562450886924807591867939141557387051231882285505251017650837626770660529836356567340156226636687575232225662480937283690306995829353456648393481524420470779626717943790889733327673467672686118266676495984435497841993847302105116103257698913751631956797399764432748713981822689743702053684212772236102099157783110340719653564168742888062840340073246582250371580044053226990198967908684414524356961937863466877448796039089241319704822534489272589608565582200953425033209391854285995520046352002708583930842597518013344796516401891059379587976274541958446641892909180893589304069494460908361642425116378889474196040452686511055724782972230119990604818277723477879493543432012112804073849541601591626317790592934609124330408978526960991263927225216696363827599864400657036998701817496499034087576121089861091650051979162325007627600139726757788741502481607984119911901403791260344973061268768788319910898762338575440518090458953068298003342047392354435183108152266503093033078249241606210850099872598911089096108896026630449806830337098138121129458365234298982018486858275626769066987565524157835866893711120348806623482466669799303340643173704734814361973672825587427859657861076110672756476271216265516112649772764061462842804620843280468266194870403910178744076850581434385290734516204477770677791347247810933720418944178710924608213009182726860706963530056370772067870330270412522141091213192103555268296608614596041200631799133061696085700026232528128674305816850057957770399509718613277589415249572335899985378404077128754208156464471758318539611961040204438094725274062858004004851453706852207269664349370202330936188968819367917782409063427132753108651018599725051280752323902543973116817873895399114525322095022556892761100667243783283694756841558286713404402728727673281219469531657003180388424510179381065154331715112315974969114135938228922885471586456307681110414503408833794337807173056524236588183808869339501260650857750440794054070411745784690718701731588711253760850781597872300852665486827680229481542041438862041295938154693371125040856794495790640767173449167016186121318605789859246839385426486623070679198419655100571107331619426449056814699209218493753826414037343833429499836791227303986022581787750505128291257429262516611597093294757001082861524996775117020080820596901467936455810569305420478189676864862867164202776801238592838725585284183615953095039567688481940140400528689553110056744939381102995815580370026593260635300091996155644835106373022386228743813294228225482907475773190526826051410152274039720731266069720537047742165588730640774052145497298554292778111042526445214129625329161018370558915509930566049046162320727741209244132459958350827289713959427310429053631316880828919268470487666054346949073831127018278469384264710551906204871994085748408516276658627487994970686461357979078197981248435801210656056518359555656054323073876968999834363061287654858335899349946294753925856398249053017764326065490449547841472280057237082944890434010128187382612164427195714017426519115900716735446149916082805036187025762583846372811747056512868496511108782207283220252856757351814671806650305697869552920370132415230029145598300787207443997334671701181497631689027744362150680350142176691202673535666324642075014855769538260860277845155815629493358871405469137095062613544008703129980950531022161992031706150417742666153644296136547786661674800732194349167516299568716136034242489705091618640216555221190321415619144370087212856590150195132896783591726903314810665653624049004413570751553344291738388003160772672489414261840486225331336171572567619902113304194181197934332563759123277627875499341687163685467735450601985111938418972319522521410281431000868677589848610355287918066853930644511790376198894986087199103248042650958824996796415290162188966466947161983000137210492092043621107899705120125743546982612105966961957316491136734604162293636718427970726725991030091216060933442431155109547269622858398195541476171114772404219749175795526197594805432864219731471301190476435081465896081149668408173087350528193877346444666783639763497410732041024910373818332819082543426927468059964335561627924373780504519059126142035202468526398011910038487736687544921554860120635952194206057691266847256029578919082240730601263818512866295976177234704297778288691749662665801186707439434168434791371383150447401853609948770810004417300962813233936944372787591304267945152171197974695771578487402998784721767770031534636547658950360980173232868180365737246443181266381522401189968006682253358219702420310141265248084580019476514514418360259274245845010196710550772583668088248350345441573973514970739489782315778642861659294739567639272919853187441988621737043470840969165451767135393716873932436336154518959622753275435277394162474039726583581635212006491719519301476459993266313347160907373822071524374492492858939948079607661476622195659216445110201691973716841231775399050983263750051516236044684281793180531460940079630899176358111984114902380160734894694889674667800297123452729269825855965081083411734422354096348975944760615789212751871892696795927836318033170441810123592142438002878366126980672890651742492462745249393882511541963448934500283818125553386364363820735178155500060629219977837455331763447579264469576514529388737368239611864927359496777608105958297989683627910667766138430007777257446245620753823363451186302498384994483300588913525371689621166815438457600986111593260234904734219190088955365861792005016674050167369266100279448858667775494224174001888937457725471895197699661973622164039268732396175400224751637667317035007680067416350444389559239094190017588755725599412516974856948409314646715363455221216220784698979566758714471868967633896598620004983809815509892924751005392924269352456543103298418325722132465564912833484091167381880761539718251105449339296132955988096867933401396567947948452704674179228579849420896658838275798866019847702998763174533323280877414348316548455736149723637600950766358079925400984972633778987359548743564544031534077967964728921310097471710345161777824631048404779251000814998269172075893052310855055796201674874927254787185286808502396456874711604281182970964219345683855596531835892774288705871389247625773320964401748924610926730130189745827489834854307999502734479342412893210305052651902002431779879193918109952136958279820924299629653834262508134520919622101254325776124844346345399306360575187166096738798332243256054860738073939313848373414478713509340926189560458314548425674899734841628515329283046022199484229228189662840445078248802964882164373053925321525919425256366527663911503463867438513559281093281733778875797466854183730423277081043151579100195877950300020449991779892762734426325809119296163816646577879574322361800389379650455836302247001377046125001356985545437649719499603611366117807298192304333029182384751445227609757268696813100788860254552181843519761404275885659950053925819507960715876889398299443374536819496968906607253668048468167555255619356162266523619219116749730745612545018088004521427378489639106537978465543689449047616063906236613580700475741887136744282340344544147884289655802736767836277877184185694741644830986655325329536563390623991914866292225041439315752524749588644141173315909333042663587522784425082522517370234301390922393670946058708852071881113044438423301063776258460016595896573475133452891877345297706701716244511725571965679555448968259519986287030687715695607129721785349109710058217588712568269262116253483653461154521853022853208052625293814114888433158477911787119660401498679823263134115269830677973486606986989320985141301308098559578574295179954328150618693729037792638532134655192330627476281334484099743896622458105799155841764911471373455796646257162313213890016615371742544456849527050427983443718124715523078479175083334737578343737771715954551927981220257897508187194108243802701852374097737081834325786370045391021379408242848792436956665160393611478993612424693038829973527075990293753058232793084180475911205229918893089577869990326472916630127515521762524081566902577728941235928489410057798581485372730583383989642520484245505905759911129215905970355477852510336418355829193785439819700678403870900355175858837279462815679346422419066705966106910933068033209539292953524629094593544303000594779817396523089745648384690064863590718858368869209408130648586453905092790351688814970713789851622274434588134012463605690243000909121425031218723895947765246428267927437460065314413356090876200012349214716182463115602796503015009545577815575121253962209685427667820086745526133998789370866356073060122601341276115181070133533011921509652245993825531821236253474999394806313862831720029409608804535202594280790839305249342449858594137712648687385897219853872911796968681107839341849998357718422727036206021322501983444496877109991526327843993586729536154870462752015159803912185429098348780478501551023218034135842798791874121346535467989115454969462034349834531730289645092814626125444458647449160682365371320507035413319266624509221614365458707200480874606451789175027606310436711624146043277323153060168731100663498339273602258904637835441960361197713703926517092458874841737833701839806117086454718766056344495099333311476720650531208467333405371774403687762094684371288798850606426520769367606190244461865275197556046007959541274867191040519624079366511420073709167374607109088948955409244983159253365040870390498350954869517735410755813803438799659778575912045717884802772397965607445749020680983731797670090277845438599882671431862640752004807941908226365603329113424401795646495771791647318654084229461734047262284091303897920073461614648288658576742326569305807111730431089477700652183843901947992999610747524140578573407796347245105369543704855364817977701716680689443922910201803656448554025632789302372455485861997600179297208592408778408834138675408218793464130770608095558133986995798729396134064938246459217671626756545308903447239146619636045732922083499575423330380755370979596025562139856890365814668081567527524464327772019540826475935811888038664111634657161336854310367384047777495580159014722184873818300761110367490299027663975927589883560687683510675115596854899160224111907535757030315398350963188376516274629530739545714489911077016724779728048460507240011183295565832367374773243783646087103647344340271997783643419773272707904896282899794243448676691336981112819684814774856009162522239995996016646672178607460624668447309985546316101957786993541313184823683264533801204329491755182674271243319668335966447148470144110452041464331402881265895998046405636054050519562221947275015262145725505576628512633545725138376452512786782847336488829611507329546646792534223567058378280267359473005336833857538916017160827082048114773127869601011454438208589531570589863136005278924054034354938886013189043295509979577505685104144834554382572785047609052655668465101118638177244035009351761629380724973952914741951129805399276394505742154324640682502226503956226920914333084224516013528566295445279629216567716567729713367983496245954934511493935119875567268520852397806679928584022197664498781461059150244630723418309419413419788812223000658614797251457849144994419051819084808285197451761279214501521923769414405444288701823286411080272802802365405844650173230424040772520419059530053512472576418427110900612354625958802058642160140337311646820909045538862756085275056516175402207638299751012148760031419930187215536177369630980882112155217437375026736627622230243797966290629685347068738289596688047145986813759775240834061127363804075080227208737085171549850591182198095501349034586914356361429203163243701342025962430517062903270286503685944218052062940108614427363382047200952790521677894071155334765529792955753706658714158014931166835813477474312340425071864865481952109335517229481084901151867278997757365629717969645082417856976274449995960376298237967847876391035412420575600885000748236017223832492265353553383825396928360406446779419844006408657547613313973607270083384336824411082831754250455905881653223417555408461593809126578196959054326856995773681103764094911161351676597620819473870518334975549737662336353362481998150039092341975821809151963312684599244119060496483603184036089126848044020512635181900351909453811059099354139129771217800781891198851171523356519129712401128870454448213411920769469795635052919150811079173168285731670234255452688994295216041951526326921492392558769970440899742638241124632448154013304108273454436757548027873617640386734084353391278385136703213393747452750096262455847452294693202945177320152651264706129144964675566137581309491702865644038174396669085732289946700582581206715108051269995536008724102269320472816790982586150502801208583144611224462597257560296083882791738846554492319866186402889366463375639062486245748138542464800148283319665126479867408908209781165093940165354229815995558281843708052240187704228212323351997558270551198320221358272140886152773451420869590051877919742764869977529773360050145534618631097678747113259859763920770698663953138695296564770457878810466025336988346097798605694213712014064483248924632937997061217002537175212073864791954239251721780165101488903291012096025908335518682367766881095985673922731286057619770131069263843567465328162517167391468005734003321932194419067471256482681984667789504899383697800601447759581648863133945790420621418279065723480860239009520683054927182245126088914724023395796149748183428319505807251144197610565590797164336276752658449039649442918897670640579764984615516951011267748809600479662786823727729621921999511978412946867138224042927805796988145170801658617848306905973039911587678930500792903918119243127365804678150974189157507677383483224780523786631707666667069301574372506894505948738449718582374474587000772572585597860683554633266787558599291283942793558417484837300274765442207331415747924019752488232707706710892523479941896027974860729626098896238881830836816160690459374760997987993077334848813082332545500321569423561235936167971150433218386489870683391070416499803517818209667166958873037407424478027530208770166738327072262110323038058997312267901808699008028744375783522536097733771546603537848673431972815711114666662038137131842769519458891391246514931390201060346706689500445007874061316310151248360373590562038967112474146253508802926230136332500301388093861797734677282771118273720609054153879255232999847581251644528068618563091430482175824705234580870062170470485742003659965861983031610048666485504219727617340938466110671761810863877246349715634110193951578325099952757078870856891360298413829187049041057581196193389893727851988194410213014717564619294665610792295491649891019794385477450607601545466346512373409693028317074245793292081500204780800029816481118681804756940446233082592673190886245281896820207417960364062666360032656511346455099480524694822792683873159891347083194975477732706280087476495032487806935319719787911082013336776841011993094921518363901092433264192542149035263134319057003579222452016517116136308688225860448425491641635827108134558016493581693129242764870871773210145343129348794648432958641178238990507967612584534950938086416711129535886021175567617313657970103427022511860093821843318938409469555425180547854929238091281105120285604168384679837946845419741530464724045940050469084018258191861064983005625008130566488135246995381373897043083811509593957504980379135449404919152716688229313363734930727102296093832843653085548808762874214453065682438622950963874584256909368901562322179379000633516217474718045304857724837551894239762856469876906598845766185041891193147218453985259180907862568134536882253088111737982356811509234667208547269695757294693693044763125271153415163004188511447164504441158142965059988519316569201772552191527332353103738915196623790381666500386951953551206303664338957141318470036844456960347494705989190370952863053711979421569940770143664783670494555284482303533205948020181823185620624604072170351433509834337264041862677895189291968717026687860132465061598758188907230473465715208235133726073997628289013488913782820453524322446511814987740725334907208254543141124783497889089619000808607433564842141493647219401311619809112977777349310700687604395950946599531110662720031121212696873290740229694254566383097909241876617055261579348858887324096172806547432975213265521350796195993893525413103302098927839135960153411999463508906737316097751642523478237202377458618166118280263121915112633527678792775331819838491685367404029421681883982705192639180173651508807941211228239844666161268693753427537509052729278946430305682808132828084605971940657971243812289933986956941489714400851833064754829782951915891224132421174540756546055107385531753588842430605945238019494142810356151186198145632476063376166708944892677766430981002512679219064202491461550210164833571662023661999743053729348945174181225686633835910229149138263666325306220079820906164483617001557238722388858422419531419397267007479019684323847447601135972871086685132459779689771249958237147094804313685681571367927753541483290823963300702856974109619253972017094847847728459199640827462365001973406964178049766326659952454802012585753060756921244811554513678366479825497443953838294227946593167933861589889672799243550056368621334724866625075181319059101144476251352867661783243990722411400632529777191682291898420007021132038712343019702583243540882377591744170306327686209280579460256125695668028113396945674959542449808093835982236468299869875132699099754913882022954953711936900891600985271627128161955886285627475449507223999820197239445439718642815495343005067236812540241079106377726243693787515677743626698567034189688425498415642604847987167752483077178763271961516651861117686622558075890358152040749854573835578521872701518219133808021436978034733778739242364925854814336619894878614319461424151846056928793605135799574107905524301732534373328041291915395310391095997688406119560495347575891054248856123784576966373255967499543144112733889953249505059235730199356445072673756322077706599136861212123426741053990514603718908596991402762963987921423868569141334273577474445687556076286875972875743772777002046124455749535454393249800513454971217813765529653246811475800704155097660065425730365746805409539834685594494759538634178260447472812928382752176863818659285310603833978279105921754473962223415371960788066882637186733414105037903244598474382633000462801858103060095765960153267952157861264283808844588453842420488404235712497171195500741950401143691857183365407354519611929780176734246195134474843736766764497303085469861853876093620325328668007175373371525572118153882311846949917473709303204010863723533842733117700213442681098193322804017511924846308315869211352794652943800599415239440416793677027725341575845198213381413788617708444059302895051043306267300110968375948111330259997845551379164569331331305131528692382189852732697730570086164885348528893166856689190464276884906273617277285135258711633829672446010512506301961336004491802463507893122287684544547024213645484639214494179345565885107940676373265059963264397267285762016536001129563107908597830353383321038762727650236675719173750208299319753669111611466969053822571470360238244916093868025960038524350351876612316071787169006118417522716257205164936686574257068439566084376277276858936296707850825044840763899396006844442938973819994664446294444942288935084829741947786565179733977683847194985266995840892987385814156277466038805515218922294910411383057158601494620603874446473238962616152874413032675564029176379080662160944971141202793016701737620219031676507940914812863991226883830207264774614631363781307386311899414066439353365221026306783326348860446219484798648332554469677861257474213404395094479911110998893581906223992489150549703166901029498371047290068067171264599054338672950248425390266100801937860311887339699886849009902287661926080607456307304794720199690571356919138971188000568052176111431489688669860404536493528883024905446275059814970489653706667553840427125861932022621673060783382606677108586408410118393831413880703829935731933459122577210117525716866388412867939706095622492178559677820464926522935516659684843660344941817005598832643047337061993443824142888631226310759211483596929562785438747771290650433612913906022693511183426513521159783901795187633449400785931102700628426243787647812421637661735443517658619137341284572208542761991726661461797361995233163963295196627723723171709247161367712550586105141469347276570548063900041902267206438867130413724867961231765456354667106579896968835093295395960564545619370338470069958071501190988860322952752390589850247224808678613710712986734293347578821656240400862302500719236741468932699743397732154608226272359460458221262970616611104128566334804534424285300268644601598187383989401544402450994788717828852852439332887382597110021653913076126914448366275927713411094729865503246526724534415836436547080301103484962657814240095054685475365177666041434904320384074935257801959720478709201359415128381996598244123527651508478112134727448197402378472378532780982148534661711739825160179618586862483826406230462187588875148426948141297937597016076199696348637699232176042045647109329225174756652798570578672618408446794699918082615879402545697851990507674093319986963675982353333700701366185195143864069937278463444803486505566215629507268308495979017141960048757166684745386358883575158369044087797882155241344453563086987324323751911895162112556213530881390618189837832036583313625890867766112146553069651870474032218709622329164543700635277578387021589647136281070985093863998532534055792282649985640495255978696711184138776909145641515796475171379133254463589610157992601447592551613404561186242930926988599263385053001151972450565506157125892887875267657325509536950435325649694956021682995409927357124252813612499657149460109647020896920632324842873236632988952615072693766056273248416972750595244371964272749744617080196289793007206439595269618373234765536658125705907403090126021345110946511738843232439628487558346265651079732101933108428027878425830072809939709543143309189024927259084988939991782057894776606791029011744004533470995519459563819878602753874890914403306159129691846319890802789170837210430837480575320855996281364631528453270839935899587023728508745436676401108097234764897741411067025613945331191095050040520503338342922065540388290680878281394566974833482526258052671030469463951963286961043047546010555788478890446986672392843415822883802776726841292524804415543253896175628521210023023570431976210034782868901002682460803033499735092217025672804278545035831458130093144381047794404132607709497180030418616177846671023533933547216320784269356363442965574899683816292076976788506656032608204972452980827693356495380332597949613363916117634072687576103301580477236531380598992754507889744033081302519491762551475388579177323433554982204921222568515979093205476704959589249782560594227139923506771533921973830222788937818714545602152431933760166794008560781378665412111480879342672513539590052299803597410833808484725175942514630729307403094558430927023824154779592517308180893706578467921417389240116442645365551143396629608255136128933949332768641810588257744547994318584286423439584105064592890802802500374082324455492799107137463917328257317119870906906255383789498950464081233932484933769002256884133889864335719953677612537108910029168351223490922388101552275514081668225881378526973417598087776671866216715491481133115377643553908918212096753270504667964563497198697497667805883706538646877990908683363105215482669987561555641726558419891010281933077047398680647722073463009408587134402667978666842294523743597655275781701475136454951291820778124672596332737148715014187540356711487181182764608432540210730802165582050940782153509974077269591983074125051332095773069832048055599811228904902396041010492211300667336323510128066274742086886283947597617379114893871144147245472655889545036629461911741415191666691957512555641663870483813904725928446812542582685430391092672471487223079611597601411574484142377432806824742500574332425047516819948039880348803781644158929040701634278795425870952990544459348001285471140350273978687379318339456925950120015080451977650486427855625332936571609911632186449916290210301011779460248105880080756814477320304243672871146664112891805488840641044709297391720538704589805550624809989347476263188562288326043396200333795527690430176906877020428881606928107168850458207818799079304454435022877584718454702496943898540712544647373381399318667094695491173783561217850378090327541527695288611937682684662423115408859735420427507085350543069388324799585032823137502316232555520665992023842194592746644026038525141032288991954630288000125854962545836437189423055152086383413226274217424007355281454601543887832568920337551165957563432265137029658351687245726321652858953831668342168204788653663098983045654378859193797582699255965706758895288485986288149042333620836077283311744937829671286658812997449638948631290259686060478619092995968179940755251999724609598933071455486753427730787943641351716254103175227924481597440449499619446476025241252278126824169320585980713916264079525471129527518428455883532596439584129293744439906800978195879780789852692009036319154056779452496738860825472115534765532586435614308577912338385753764483213522123310554444562727656425837559019742400435591712641245461782833838723106321979705092375444542499641710992215038545057668197430331992478878323846776342305420998053770257595379396584271171624526167452067428086030817337319454095593584428203632296641206755432557922907255251826794462302630807659116422967014787571017974793179666945235991143775089504555534865652550500323265886971977849596409667903177444707477506600734877666742997513422705852903807393803495898913932042825011434215091402433682725514717946634295508491260985828331306838685279998731234388246306755718331453436367664410769109407187263540801137097244231024117810679953884600267581586147578466185517376042158392493753615762937949307312673982932101628695370698182433852674641179360130919245897300769971121633339374416513047232198765881496460487691064514056323733824665348817250507588206882506863760650697828366340463336373027005163000163263644625801984709342081303279869660341682471021581562506708987351317623209133404560464560502968223046809342104645101876886811490334130732890047063638059750185270249428565323325337155090847415123244974738217777589861315606553415423944773314452280343512538511740064123057645052802332292002162017603950123574778207157181168941759597803530150292682354419013489350184057962578273178903857410824653054410747948944731374816136874672244430021391083203217533819405202636617386739231154699316458940453955883111362637798172707055691429848219996106463920093294633142133493889440147205263701709239526151010481044080041005714203639126051789381035711411174624737190116397605183116896314099006919078592640631293368694085281835646062859408189297648313553570080684358235585822636498177843878330096589702385061182262083585042797432878889518368472453421202885434822567171917509623578688025051900048167573116242708779007717325722888161503812681332712664688268102570951467536067582725034409663536920155964172815109681251316792408016749665657336009658822633312397392049051202132174933364641199045190235041493617340160749552004037771398090407379997402433489519360019393432388097881355151185873388813338409089705472081793286629535155843646480150468368106240980450245035963557117510469865899972141054294072270867018931771728168152052333088775788896286506917162119224639690685442908766649474049993051353589908687961233803587586396350355537104231646070615731828406010058518799803786888898200762925818836475702096089188078482708831196766095208682525338135856141516174222241701717622398499332837531747022142903007191221548501717669221594249907834007537172455795161182472902753441506602624696426696487763398574962441529311030855415919928599641315907925031431552691627002908488143579834071021476548307300319694775801719705059637349082009890799580033972231079768893102036887770800282403919146614217711719644196083913734910439404986168430368313441700798044593247711259905864772601545853824344396122240785941834102291117648816779786017696827684527078438869469674057850219522426082203178584375183783219210652624852852169259277392425602331514405574271142857078300079553465274784699420939992842245521250736869201910060920723917755656349334326691321180493257079404939077992561920561180724401107853573979305185256587336476588802487246977385099655512901099375366921893643032180264670260876027756768152293625214190530056083387590178760790305656833931685430675456504822870345670667047356513108253240450420332201002157063986110031275375584581940755294426796115609818102807857808759531622430472603265910269110693943856595438932555897430779952224891489976004948347405944727653708543521467140027529567267572305119898481232297211066024545103333336716874746588679431213354943123491970449217425225374873733944854904220628338209860580182271429021466969795297101971364976632460163708839728116223808671932867136336144097979657558825760557444087616260073988901866434895496640045534407250043137066144351838523521888552154596240803585737597394375344320561138701261255043406300848272238326074708857237581948550808504241878125576563831496142544135021522753735548018805947107725422848118224287583712020037674903464952677296432603383185989290004563906602035793085689210294232967492741477109335961590176289432994704632839243975443792082053462379523978292066655340509955973018935017225652090572637395956745837053541373381889268625763660121608463182224946852604447610766090011564896119018267721862993769144954520979519956141126606132452289671349984368556923223921197887788429965314615208188656538378375213389361077007234240981380880151320754098814450770314826774485750218339849090887509678131130590602636654267264929057455872379610521421496883087487450398059619829585709880398888328938048039028708835389064439990398058252503075384434639956345330083661045292626055397213353202043648896500097077003179595045571080209400794457873439426849970136259153080826932827433086303957657330334112018376465376814096689673586093013819755808685652941415673519299537121510877400801920124429160585113985926941553312959654846132545892787069274968869885954427837365898295924967555809855246767473335070750923248485812806844644702262161274568201911497717100956865521604573174910153081418227123502282018272600392496724451993900068759663358673410792085328959923286083027329991625440517098796666587508858968605298314152916276793671036536838556033426959763851158219869920775989541595888801740270340037401865735677932766039092929327223883947753316643958033300078901451912472257810352445964628215382345559507097497550155152089875778688595152658005496762744206290601900280647532617802662309760379391374823505624683432840081147300232495211421218117847645650694609685706489401362012057720209375623398468793199017251068120669911431174832483108824683437885689393846427648377593401243617608071360609528381126866089592476470925681823271411726176605883927897103622414902272054687064983308418154748281987341092251659814027355906959718990949908296011810799501383167363433506040726266213940061090416036932847068233957804968736768611937050214035751636380844189100885323055971514654312130852428637722869843015631409869310572268266476552737112901230226962191791649749105409863845499925375244157687593623575296190099800143749012638763767049580664731268639624236439001878704570212891572322651706506966268979156232487558249671390255892844664052123244391460587657701210938879523868486488627043413148128811274952850585494019210736001663613765443831402597580148591494780782274420663161020940013143374239442451394678692364450513822244272697394021581872164754039477967438002976890242508548424377606468925411833103591499632373590814080928548900288259925374521954155044492329819023948264819968183068815448069754111356833405950123483007892497719928476359525591660162542399505466009423151757967556194038662272579220411497557099555497764130797589677221018659436384528132394445257090727750253386257473080666347019088533749575983583324285781145019658182040635123524185338276209502811446766412058559571713983917062550604916833456600770539976921579769056910883081082719482765323524062064764763351391123492292244873545771809524089286924649594875168743220232822157239629519021741575223152024797796919172937090305380587660402269276344509536859329405515912737968945432969936854381959632803229899571060492186221971898613239721423315768735797771924351889041586445343296544317346098478633086034821360777651880231874345163156606229207948165990524679462316363254820764133245750707400113041942633789349772224816001025185543937325435410199276160587611033143122996141497883457643209742290431462202273156492886127615551577034355174919618310230505491194947114683104219532483321392747024838064053296071287828862606988520891419062688749677346840454034664765041028403015784707486307390815853600574867767913641318854642864439598720222492682633533735724351137435668217608099241184972000070048200666465471558711004971740292885839683433911079940994955222718214649306153723351174828260934613943840805416653483519296594083134119532444560795742704455943651583551999396469760691398300086495577130544883142421573603534806280759229565747396801439903943969472511915681576191219434887052535923642366899540766622008611832608109654800530243902037410278172724204468255030108374810568407815396710835637891851927949892258921267537627388789721330889112240116450175726204467961817419742340060778951004866585697422642856052963404087537970371202400931848804673671781614076552973822550735362286505050583335361497663163454937457656331002936822803119098198185811091387787210204866973008423329070249229920116091493154543639142660425895235114121631692240240822693073963263806366980319295674645474078693129484044288301247342368728557682012962661868627324623275943844521188901445546329838498027325316380281267491427595186710202640080772093952451755484595866094418700814189748180574311322170053279101701019614285030313212756841668333195841105685151027327932350768832638742540020569424833923072502966081297475671325000061274728599898298042654670293019924782204918317421780425965376760493505989193531904549899066972935290163085825207202636272838901805358575549418347118517241264310187472963406097331993385884351922687347152205652849748685808735661320388096540147489322722514537815330609120071304463277229537678956804394354746167103682286726353799249078736593492593454359685030308272076344419691242619231857885615283573794777584022504287296114728340740617655362817630251995028941019860098996324801378488828400575544003800125058919548774728684688707761642741816575244870714867484337680403802847401035607759610859995593917454718322760799329617948227003252035208508469773083825058171031546341421997807302534491603811693548805405157772522264648123175661967376322697067862564937966334564863866954915741450173923034785370576769512395899724151511227765493260868500130413692524276478264235485696345175906598075016312663595594952712613450226158151126740548198817310339282837796109687268130366711354707812609707471107658814167828575770947938454912470812690871342220195183256530544727571837304796346734506995248715905409155631366326418442209748938414179973372121590634385587464061106762312284741636859412628182440787314215672173376352535966900661439590898612292078009194131404205685370351199759496686110160889105869212842485052090903574826878177857683789340706764248358442003353817342969106801398238810325914070512381482475369334741405272309277856140211305690268263242247639298789783783253865492400472749748770180525366209775357802026696317141542904639051389032118316885140319662804112368779486204596320679174897483925023371767382686363362380625324100287385511201426162589028324063570097678217209927373205943486368108273823860685257791645004201947504193810716951859304583779230165523368662459351367586629841027161755737640780596207779186900446683264070954504281463818160817774248297938325454864292490422961956508366487392685681374497575892154916346579704774597788475324928116822903747507028668774009572948313158341491508812031126123459440192193969416953096046834736133583151773878752253491406763237585526810754781927405132034218415847858448542432075327850940837809117230131219406891106183583229649898642724798842402123496293086981701682225667373273401061672965629377958100139897603660734432478130153008173889644105504947538547274060888454606067697792099737791388330659312674480120485754904450234339765332812493876773160210042844462729190106893699069737436123703184919418180919629576487269764169664637550992129218602321816808785489023855739675015073507474357806334901838249424800621849082534233400829413350513145857028056422838788116463995069755308432038237408706325919686698327551410055077016163016240412570321109952333720392909802478415571978860743307503851542233099886927974435111279836904187685728476043315913793847633373656931099030129375726181145375951786320459952930278811500710382028691836183039023795773306242589621789309589880693401678655988469716400357266871313100530252612318457955303272508235748603887277513146880064837754929629047665509163839310698495101193566568121506654960391556068461680815064514924132714410011091157379656826203828394658964664037319793198505365505123520677350365584942860729092787535159522137215740865691586411303887211460374969026198207567145623592425190755514864081477675461958365762063410225103645213939169548302294686624345923037054168243845928036500003128869178138300039865067233350765791787941569721030046967249388997484322926044074013121284927640358524583227246371551504991452019850727124095669887974725075117226972626489456311706167821230517928083353492404665442368075673845955038226721793671162831318360198035310444290965754719675671521187673736002595128912281113084886480608588145990708290171457748285759776432147324731305841985401269949766432538486240044211448819436377211403071805195705907625908627005428215727935760112307259660014925320479267179541642035179147610018357218007181738316074835261536279015427086515623530003816951602187719569966317783878509893680750577416986469663231975902041819546197331752481369826875700896888080907119358220486033608079889141710518570775235483741505834558194868376695815778602322044565554373684872634770804180777040501161907798207637829919666880364439085719079875854801866751206761974320794568949509616145506437495828856183770315564894485288169558624174526881195488551853874302611516560543737398555427651902856435376546421462943636402774034683861314181341863980763843071612871779452559727851765614741269333370690414782680906725279889850875388097543667991232455953023941943141682255768248285679628448399143732286019023959222566668997745978854557846003820431136516047922290279603161134416321113747025751759918143253052691227538520149334520115206858238835186787805234342554113318152927113068118806403241237886698627034016600082379151369159744612393819740469550617337817989158772868572681465723532181985888535289938097939350803198902447628655254803207665305185448629627618709455357261843678804354046991971087102867904614056230076404844736759053259372308806148195367704611175839575784345912399304861539573391058324429128430032436775559237057338481091192937686524992015938098552850213761322640277193269419938505035009125182718997996491454094136326947869241676995862394400895652395852747577376691472008374488359035189710809340975480957053253584829377631185960524643503278699241278376094795457709865250187439414227720814460320319027951840043724453423875678021290336748143530823904434849145998459081791461692306657444375238540187436285484958669938543408550359107609416071559948385211949112105934004893525946200258365757743977201508597075151898160302449532879018251050285064916604442547053707881739743986247011256519636944070487225060235710800462138412058482975021334885526866236888657792946289746864849716493186115308095003157103705942367400518332555409068464619547853639042547824774998319763152539325761159389771300200875939415784182693604237334583640860582735446401065193968667469512775655055347424207844027374019542274481315074334848378684300732455826794541572267153211152278797967391228823219877892482580558802961453477332286346999904859888165421227606154194229141697154542394723298164046951550625423043554506982307650296112237260529975465652335520737252515085592028902126746355495487524277163127904631944032499965174098571237598211999608007635154421476363521722472498532424538598667591944326887176152149556841635152874288336836038480277451940860722505268576300048496758170174592749076228203034487247943559048865418721402527363595752495818744969317128605373628199948363341688348820641882807816188322991513678825384041357299743411071449428085862810045966501127659685737038408664605816288575691488209596091526841235482203659200156135652973798776448159459504448445631688245805609492993890520029673294918013013809972350284310033596276746468961896237774142601758049504981108476275455875601543965542995244196147370469702922103450443723944876295432826835563752641508889625837553208031197383615142891408905703439776108726500435572182294496846795428891421547848889682784830079919257287095511635266832911513254014638617577372745906403769704978201314411006419978972373137960850270044914640141280897516092413570162093500949949807974894256125349792653892221338122814550733141476838559711570912008510170845945645094631220087049752147005692748480258558886271623363151871274117850906329847761064876788642442037406614821767447907378853440082690094444731376717116528328626337959393413077743445296230701642558541042814875916665069239579510768915319007493511814875202557851834416369184359678924447988220063473119872239074299137141222563459630652845083226741354252000187768816201820011051298316815080550838348775620984130422912174517746470832832102361707619354184831931112307473011474462521188198737828814185913697547651875813528152377357446193548479243882514883358208907611885617975394513638595036250601754117496054404814306000887681819957582678960604886082930419766671037220465243535003245927343599441017497486884210661162894165565976259066017469317916820754277718134672917233245543984197339843361704698792064520323195728840190460522366421912564799251990412938540324736949723430375184603063624394315491231705144742539043705055471510185247026470399033828538742117742443583562153930961843251128210248584776404148151408774420154791819905334016241938176866704099233306292488108807655845858661207493821413989308492158941723027150352165465469830821936154606108649824398608193459710839976558832055067546354982505029934443043987785436304256386087390753735471448293185581791789527121736331763581420642838461793277982804292706968258829257440073289389016322820021681445578060338216503329614876275773467158540104944191217445156180576957053687248685946295400010065200100311294950371373981748906184421539851337972034621078852945322697636555018882775792615444964485696678552805978686669470230297453218642758551802314706996037642964927883191455269352280724926255701176587494639087120183217952880599686989868056183026442472758984607758105638039129719474538309446063122458199787666082027868991559500965179508049031381333676951557954694364264045736680226883519517896299473385436301654938306797465961599963767553512034054621570515504315441794002942119230816364950456185207704537752556605011559839812266945214733370076319507940252964800191658470884971405923577757374148694213510856645252759109711286110296922025169291752735197870559387995351848257364897847433055892689534895082395776299370966087876733540196898095637789755808704214156308209808997104384690549988924678476980651391935194874598281037553682469963731421266937124839419288256792834421257424864955606707847673906148961505343714361990348984545145906567820850292042195208934774754261063345959051636561971983667720513031717943729594880155213658975802663576215176026439527147191191046654676781645215745482691945231149661020157090584452154016612140346085167904413232776677715371367602061726610968496173807946846842308562565595159744234073685268633471041603405497855737087483017164717659039043937878823838025506889328055435835323197995873519590753599365149189012496480880999145643700296748216803573041918076474975028557877516702912996261397624215446711481375924022575199535319440383639339327608814642622012098768128369335103031423341575783911859292749064791551062205208274410577861032977610327282896514538368689803477762831846404633810400616853753083404047060017906072928747013845708740887254615709578639759558378763539364081947162799650928889092144939686106093359293517727316756624398741696959452715829319864802474114727216277314771862468795685522668772564298307331614709232003718328734744723244108366074348208148304652989567951691174254310422200400808030478641902949525406740903534582971239659204446507307145604807447351080476374862623367511169506521497284249476586235909715312839158096680918731420756945561313401644032135233362027171575800352383940606195983394402874232369592192062830021315847538546831252740639719423156305879156642864140624560939650170597920142291554218904842423843051317525415548351325336400722646878998577758678152987685064718203800555172974906694822198732591150003335446243545964950913570277790130275433431942831877185121700994074341095023243845359599696677230234830723512040390744459026602610072480047581289347129118683792013435796250048676631340891010871279563240763553108986810344318502636068367617499419639671344102882049328488339498218508453350832025437038806240117866103651394141574507297987851918585831181563391558643907072815511236410287390690412272406970691853062339784071233487707418028831370173356753885348455442053118730454696282766309900775839641426176874865771138637062039594213266301534417637783712473110857029276181008585421337947729781646410268568887730341756166625960627984069704853615715759423109566369823179157272032775647246541910290637049460493761137624919788328291443098750261567019456346102597639448287775585327537621432538586334529404463815689134061561242274476503706004504897958529711856457735364995646920493338722438582002038318266779890809712101034756982042499310519538905330423580617745655891433852978730406189703871451153956006353304422973589453620357275406546689542713280730590638960745970772110798794047629004651769999675616464879650873388557675552455051644408352059677398788429520292550271377947122315041016253349215466251483468231408840457230080140165385353262278033812161559492803891086533266888060128624196534130939409293860808041429304360393283421761125142950806915995766352428180394482535163969434740409726285064256264203444125598007673488843433008140258115613419215441759709027549910877169280663046872415318153971531228518803588984901455924699652186434909975464262406279948510710573007348763297462342009211941429080170049034973877308339862411808946010209170241957393350555432122182088320648060901378299827257723743600661352774793799322759849533325788646740883107858622158172017883749550968502952099074801178661453589395778273609360401661789290799352041395587917299347352617714482807651252150017654888991928447378505895966791207516421956724265841457178204188442661974246116251927244285352399068403127927767156225306621512932268703607674070838754608753964833855082585545115703723968013327758426093779151965801643631803667800347114674362718020792568635228269041965047559273450437156295606148381301502284483152393176120519379907132281129470425816626426893689129845770493946998005770149448271616978455828629502513195762734241442014813169513973870266787488885420990935600266924139904935139826801457354091927469208420654885727482493478279608472139694114589910064881299314546454915557792406637296474713929254624683010171621326267115606615039775170530363152985722226660930494743061631669936585856536480479817917376777380971699393656795109384664869043666312839519002202559604463406312511736609553687905072070898056902369876432790135299806561472737747871800429849001243477930063363597681885574720556322841444482035054119493991993536342760609372766713664969563307975240243911568176012633285802834270412973746310883309872717580016293803423716256136201528828822583044946559468494873375618926073990923818870712011081806456410481124342785528691217815865491079551044108795351592805620960189945151556403557960242015714854857422285181907213720105703805684908869529923365894118451369193975905640873451251260318365919072133127633524197702395329542639354539562036217078362337732704150208398741728707171355318009993296524955732401454863922266660733259436306803388385230680106386646827608084703309349756478090682139549440521623342589245067336785969965698790187262468309131022056749612298025222087637838431570259764741763870861802684374940273242149859215416147305194543019349347497964877298155315236229734310232021290444025354661926288350577879255319812378603370092074716067004676730239495252824521392819683513137938366874546567596027943662049274204595294509883841786498935528960991553042119654809187103874630380036560255271617382117865807017813083559444082436896282072830784425067516475945050247389574945963095228710045611003971950102319750795857291856341282379716584009834801121561040282255453663637082187462258851233225053356171882291686545276803648191485884646119458746217195788689499618695593517668192793484075081095442816496840841817703944744550548237845439171475345097310654635829870207109492689990683812279430566397702284607976086215878044348134466156939758968981612257130361756493717983127573016336088149418420570512802377015090316806532816711767481529659906551890793246966046647074048911013244390527504916009398411766601753712879407151011254258221401869280902073839541760126501743954338132810248370284115518412025560771343901472544859336527274105580536563791996502719755316991323720524941724847007407681006088819568238200784610807745086254091095502659468240899337845382894641619771711898373729752039773179545991636717863072337405730526390678547662770302948010120911560574091632754398809823051691973442329686052615933695918452781144948337541768206793619711327854394331546459199656001082079012899603505768267085789259684303913341924147577003904701701730990679639985653054221443061732129849796196505879283380215671615316027365985386446257025810416311288073458521768647858886429259290046229852735538656479705397168305621135485175344951857007138513637157612964948264804108169066905982437751919194599147208059386671655758653520923963661243376399992196751615893896209028374817939434354842397060950669522010471929198587965365834738886280135005067346462715093357120822538478428289344472571822992294138179008552583430304810435767805114772140297647767832036695152145905229322044588508619864731095596210898539960765265761480247745883634803215394985586381180494498912876797191257776521240216582079328584104303240122140393673463073662729353044544944954237328344756524365806052333221783501215921394989622484784753149639760548185687429323458688539709364538755576735909693516930908103352835181180597858610996077097429398657394139371627583670353066412529043038747097538106171686314587645389369597906895280315976971921806189242616071335241551712042226978061777455736620732373947430349310609332575596873659145360473871503499673503986327533537042265885176305534145363170050421948781590834960557935817614241543956669724694250130339074044588186885064653820821544378067785412769658097633492835100734184618763663598548319537199359230900505853767617803651171109557709710960983557774710256425209288216381373934724117872123917094891554684059976402984393359097727662646278817440002950885339096624138245335502332018651144324002662429267262331769113065934136550567653288472819550131247268051338155545426444472932154122478072744856384989652609252596012065222751674937163097220583358021092916654862135904825957192126222198597836127290774811783297193217388037488094004510113200650328114122226816746552023237026973301203603244380853236393318621913168407574278930670313490300685273905490901495914865902999529530793856171168094738798511116428890063864473239313510350331084210304244114698358048024067519395450466189479123514473517289049846340461891836733332212055997722558645592248950543911360537740316192384757652814318108756000025749469118183990035002155516599162229916434815645655750058416739743144477706938385869323368500624302283851387360166821551436800290916539873502356609495413803185239072727594117764547926527854879556137937621204482906101144509205082224027613773812869798608635518540362096239441245658101180113181941227144867347797258820268524391609522651706512321136051221695771908928830447440154914755618774950923378256309590452918098598277351172129398061553455492815342872690975932856800132595058256320747261977899596389290376311707143407413323029934109124035161552311128989340859700902234340745061107125539046215358332219709793415260230237831280416091237792592772440170397396235816681318094165521209808378593591495098218553171186467910796813576796499666292214812882101357366544388913119383515575169382781990272576440017595525846111070579730934747036391839360105653256829405628312605356755999259367042878790743538209196683378727502980818133282083792810299321362493539889494380489789448826074788436960631431352812436546410037517632451147380461648201693820573559666782066428996096721401320642228884167693011870405846749738305789795186169141342824965217228314829116058609963873743037844000017255677879575151090395981881433959501128672068424918842429296891941040151054885757108445637034538210343251739873754533921031798999523523486264801639570931100126877324753448927912453987277580630443422739950843941544127568935295131812896824460572469129277209630629930629450013688844909944322182347210270929560013672213374792887109481570005253331241456171456196771872320632728659767014087050719823426112697972971598504689376628923568128741477923226782118407618476312208588954014023152398642761064160403792038759870388552528455473257653386940539004204684077451417796229462797421913745410550681001640364055499697934319694238357874734894805385898381392490590888816192139957817932435456884726424018314415935962694960335704727463028731095542362996714452933759085538044484486204638534814260301508045812477107595034850328802228540775718757168086069785305571035414109646854171645194521758918446901037280563053916509261460880422979191460551932463669095063527761338671567884439457876324094968486723988992258223688644407142437385947464534915941814613466275226548918894476129766219916831476575336091475923575842767122521163889718605551311541139502979935445574536104311783615581735227105830405819279629722786592086527390417941481219686049280038396507757942517153720814500934987953882272923464171932677025008260994919304457334049330089175943248977200220516298216276310467815728239928801901385323898117919159705520243142925253023122833345455044132743719246762426971325450763742150180181504147454175863349442044343205560944787432667839393624055110105657721971950836027922080011658500072510773427962870199094310566669385171228824724451816218192412627035364985712851255395432492198449091247467702712523812930486397403361094563877279443062960138918576018121064344902876556268835084995079329223204060016078374990099541498079480936401221806672068920654307596917172572270907781230415014861436962187277745510103671582104910897659925902492810470283484270862924350933800905163220476171273368148269147511398449150538342848383711005578290505136713040573463728180286491316468744979691907304363046174020022620549356275519992633751991020020058961937474986555871900645467787537346279282893143403450508248266315689392298034009739721769205933984322030871337395280508951503641146573343957892764735810405456551785074769891163300648001539055365290266865681792350245378420892581292867426293250730957318262206565292623244616784746452593452486670183908785468934097002148177304502315443499443250220844695187698324166057469962840155223534395451594059250657481209133114151019199289678365854798261796153587707720069531665139323417435190120695905006268473092179857462312372150028700622189979763607787269933430515546594297781156019308211158397131163967789703637745700104023715537778905425072806710714473592683460216938778843694220041071675451151715287257914542371232239560438813437063536140325820629035862977798629000347392564604206464100012738992352545552495094970296932702580395109328536882348622013713335519451826856031457148244418060083446111776006291386782101632133207974939303490171587660593039153843404279908552043142281252323706153617237003174856085928753925711062590008140915324354299086749234389048178476777058201896377030271717594077478561943674039044196465095960225309566101337831814622175761181469781676292394524301755805422564409213932682954065250749429851331213588126362102503247708703906327884641050160859520733357735025786530830167192733609756403346258051551930005954666748467865979030900853513691067336038073415631346033256933746858005833707126837951802711406373014440110225962570150375407360225946641413203823113376584830242651284876219416950175846177512908662857209769371127611892730516204483067202380738501350611735381257404387937588367444285003209281135273833799555356202471942389416278514384359532426564367983981210238509810648761588599125441544176013752156198607390221200096888480472411392521066025332812015642666033344863583647228480184735794058379020223949061763338266377537965527977970105615025194897520668851602032786375716879784690217871906545463544814870142536524537788748266147002027737647849464463656153362454747931174710467696758669441117734138123365464566692802630903487368610380454434787630935808597714904190044367643660373017412266401564356821842689912687303911855216080151925872565896014801437972944906796155754652413582754286770584024890093398242621452821378571539291894955674061503159453054052225325757883208367857360311114968386986189682980197677378904991567274926767152410047169563985175793691095503241439661790761162819181229635516435946510063073338423777438513328307032098758959267752002048510209221956980496271449332167598800197837838902578945679242938522877059806339700393204315757769957848646886241936640936724774234479723485655971257631109543148507189204203357606511089645785567297179148971898196412449503969694118085316191958004932387088066336226765950593743045032265996650885847111851135518884058129718066801051005808275087527575388615272389485898963402264530820670650452317800938539881813735334054317212990342514971103242064685290886158119385315664020518024100993508731668534653260081804032659187128769075884181500455237660035729123033643095874255788495512403376121697632119433863109992252030664408161600682581802956729669337898618614019094153450758904614124245792296552558732765187267862799084609658723971678299732335048083841169609050768276627862774128586286324650781268794568356483417420371103503432121256475901942587050810557318826038145234460361574019540423913152607000087463234917340474890774746155669608265391454919500681261162896671017622626125880140756924520911764615775594811128542872885297887218917108423328038860519378403265084186776254261404485168639071834864885317994959792062642676867051901904675223683967892213211527108814013578311604857504797872247263378277762465135795021749172774963242966316696741943011209923452115512483465447591418350798502456827838538570112737805528490041918341148904200652172651638764051795771061907089452113120351803133283399492084765150265827977067364069669139522567470491392260371314370283623652856450999362547209220650963436743102046075755886162306067943913882208331004843527876071606818726757475824149532708202569926335019102984602496798661406197156229737094729023032819590329198714227515948802473290511520546859485761311348273107785143784096935140745976929287352824354918583195826824869410551854157121816610377920639023534542822739857976054438644800275980427975798295141558313311225692512702472993561305162861085634855766930770886890016279431597101846676468195190628987993464396589201293983798142003508314540532204903544849907434995902739283500703044306037696169636220224710122991750805157718049816492286511340510369167949827828786060303132169275530513070423376714037375218843331894517164304607537335215590588130212647594466958426359986879549371205585832494768872830023379343956967891184676619467082482042243542931704525731241140997804598692648616583466046840274705069887083782254939954547390002523330260887655278482105719379868895426973472878196478983669832003770267042589712938788084913073417491103534326188365783001920701963327275944059059665231578989059121059977774108138513086917797417447807841052203075259969530480652530644339995051845116389196866497137019355867012139007348891806473071053628368408889453327913747818142476546477276647096238465727878025591302608101097878391168991258933481192866762534750033659658906357492026039437725533462991736494648411888012078723681251726762582980985332211576436259432511262283988884381532115509270427728445629872176148934063182934998476990238927248507760154491854337949645642326420195582680770400302802749428321404364720998873969464533670118994154193029351800056359081406645656861192456065931325339011978269050082942636264549395437383189438596249227554439907266940231592974141354620851929064790251372392067215474077737931025908377535989851577317096014140859350103105773921731083695393245799337265336155367665274412489180425801498918578635706927267225445703973000726563665652745454968034551580784779375970726084706910509849303919885126664700676181478863564381006514630861723452474233684544433727914837485362551262211707013070216430109317103800262502487952569536853122369739317243285278520844313226432788707033973031269022560954162591772204267745091206288407855439224766658833234565078981080794541194381479934113511369630805355687578693814829636424013533576505221307223226096559641417567442858605869800770497365120956498877162231262100935066156593886474724647116138341085545203834267118671181923145223561637729087838457688357340831528521951773141735807932346715678652760489656656016558000106819591221953495724302811317013051796031815324821574502815686626872974377387291475549806998076901656605996846133047961806623930203275656029225351314145825032503624206563899740887462605664846200234711458150553240006798462144770136080889041019622188727239696262744239318201084269788307586082519996987724435550603003905831458752564764336605507223591736058284416888643098598568435088919641354938370538056536435782764394571208498194275307708786726099164544972820564940036040895925073802499391691601422961088547352025109014704834923485706320218228182759708405521981200662124763243513421910064024250071252471354730868138084695630141084260652957604645331043481560959801776034214826278782501328699137556969797790206366541723233778549474936029651619117072685793920681560279436929415623396539727654442970774821006827533464030503435297053721788042327332412891440158836016017812924756448698322404884600357248602924184551078113924941628096034258611114047300274158095520237580298962195964402108538233672197423291669272106533086897372031091567188534534104449309771426713579492595304460105123852277656605601166455148698064733673188935222265313883010060014104022469192708900657144085836183345222155822154260141777972195996591674511720710574434391686363309045586620095014900192628127678111154911952610761086077127795456110306255456529884589258284127674193974527575767824290246401874375469775821200281218318668884552588369690910160577451230816495366964631419888752805016592739614422529141220234083276174049480227742973190860239436491637872008274701887719275882457259410960346420335430751028083078396715886805073350065558371052580622136631643430375224615407752776234714498909757214155516601551864097648019512568270066813516101986238783935733368241555818306504512421343592635659800997633130054706454527368603639491566947552152660073657805214027387476562993432799453842357128081242129141639781036906648606675746884652022922185129298372813026834883496543020682807070219109945489147198038200583530207424636549518658426859394264867024215291895197774807192092748309649337683147422737577289886664236656252991735326976719162092401699617576112402840780790725896588652907585852381150709026481427966125337677470219949012849355315438624465076499520620497694622356034682690293656236228061307150585454255554426069955375592750277367218423161699061465887608465823106811564052182237541274400708604356853249336688376447088369184230096862547084085864626624641487251939206762786325925843028401001539862740347136910019197111354072773827327034616422467860028069316241492360756448154371765758360619854894669826983494891414044239218006649841038163836628677663034002400666669010366685782083756693861919178896457905865160116203054314824225244844700350220869550181448145663738524481251102342890430257465913016495590684502677430980280929332054282026529588604384742753196821027603689904590144860573130969834351832078966086332756673776018849885376560946180488510669938474064911428688024922848949108306828783622538777172481718054720026750479503813767970076552136381957974715809605560698593916392409720478539678793575852268176798345563440947663218551624820309190040966148711218293123709412363289972438458248159936134078182030493253552705460078100741486960869002361336118658278410366902775902414018899676519905587970106304240043091675856012872157364336349564805269941530987080082562827610235052365388982104709619949616419589614052153561378702500679792943096133883971134012356711961675350167820331153152559068727348308771374777177999968070877413062277310998700279272081395097882959633832142521210262603116759063010872573720631643349704640610956849681269220806495475898984325774942055610128450024754093694758372193806151359205173995589060779758038972697472568512346337761609760459260640959502598048630652867396371259729903004513228978557950837084175330153519672674092165062683514405039489925096407462744656984325356717841701894435737196622423545525066341690017978643058575776674904387791282162635923401702928575013798002042211334410181431403293211175597973894654507183387071319209729776274080125909651562294003656467997740897714678183411054867552139713961961983402038378976326342494304497674255962729444724401725813024516257963878390606167628650962926551973473644549033117578904137699189778552298785937227481514774652710718524315236165572627524604418782474067445145725084032020344433710734012668216530321767653611291986804848569794454255369826594483103748914582402654187921899189209531292056489726397386520250081631301736881544694559235593343734695302634384115433944801550189394265480277009949899636645248222731088020390806765031912519021463777637570039459094945384644943601162672436491830598411876843875682525448310795101586656928299952059276032215844036783202670711078629061050727367283436754491100435189826614681365766326347165167309404903836359147489077317848906557428655628250561617733807674292804245900226929623925630360172164841272486592462008976083441172008961930486915321956281143408390913613664468311121926153228175975817709277062674914182865723058446127787877096620619047211040330231984645211814374771332549770769875337253747756980913842243556948652626582252035212031838699513383480313801205670358564850592042305493965903602275238067959143708281427321084390361053102770791614305614138550292122012250560956532974295366861427807281186628743407104228667883801054259168779917524784512354819974752223767438518947868736635207820981548523661856392873653449750266577003180240824762073909336940210564114465348929246378436841806700338076174166513661538466356444265588316624076239789489924600294432499999569873003805012431297771512364766580510659228832649296150478774790528965361496688588789619824203543936834531003810556792840232487147745646368790330058541427531404093942716706858007935900001714699587714118860074771691824944875617947124845002700359070355261028717040914606135551472677051541260112985609601856121268062062595120325010242892610546069181365012012049919556118608384077646281443628909331317920332297102653711541242776528871485693978454790340353389573917698913415321578129038018203819313493616087020755367882695878132638303567251543118306361184435687723573664627623034386042213578482055179903289046259583595929416496764067663943024117217191190622219886170700209693585243915485447269500271366338955132904799143034639793656923874623812419876543645114530965205043019699242085013622027106686283128653242768227612210426752580719130816763504004174240083965833140015870734817300169177126510186384656118292746963913588692612987213547254997725390759410910715331609357165741663535628382696849716346835269740470997425705107115596976017277803385547066511278440961288730986057773123539360285629068823315165218565404284791264149804668197273127968348466670789822858181654883085649056199997095602962426706057069549414339065027167358908634299933782615853703802099152444142102723752655387804927640753931631556869930066736985666193795966930235188551321009385216551094031994506872887940176512037021435621660930289353876242940460136805595602723498315430368872389988126944638321646135017908610123427368698018756508464537638712042138124211634241195343643581066290704110131112862909465345686954053917357301089330531386828117130967337376682721344677909437028512544819388047482142928724403093841300363675209030851963110573938510596886744141884769795176047004982684939181977900485266822208538568023976170413821756424463981681141851466301327949772654796504169446834859474330778182911506013053006005976139511421398374931321199534399682081251674031176626472560884567578761388124526699593248506140370581180574879312087468203607844153667769820675447311892277469413051473491867124044621167849987155095698194514842128758315712702301533901875607264306621138159034125645070878441629802199048372523038238339303474033561714275911816991603974815939705582114651361499275333119973305037181863174158427354845525350924409134019070491410985705273584101021104118616150216698095802453901226862130746205660860681231320055969032397148678717074061293727963446372832475170812225618399214865933313684864138468616015456719662030669517846835372379237405716681221482225493427995162715861603532885394751978554686456281218652595445029422413334234298711788442226490990869054727653980154645658872495515157644325961256735663603716526396496540337949043399746337159508571983749270198846671738462242634103973323140627622827286223486515211955895429023042539374412201230636976188680765260926427308815229046188483749201232193006987406576484858966532792531461787497619223370047331881133611235043602052039317319653034719404611913475995308214841548023095967118126417587189896692714735772426052871440471714924901561405110166004411555372176160850013142489442886998614912284789372703918489163824999411042729308616167982145985474136417479229344466846753662562919855219680833176290619262711094623142501940198728167343009856504286948730985444152522110928614537352709037729000841385123145581290464649423604004314343924907842764992613339638571203161379852518886207373304768908553579973537913944736092900913189401780321350011988465134491396096381297225285589064380814662837167476681956060229988529143625337956482665388110859619679512315090849392021090423743408722052515620186978622826179228037029862437862275867528453156451509051309634778094163652600606541939650082489864997372419642528197372904707812691136898463863992681605298698965387882775195002175113197302608715474091096152077616800042178080548200771556346571420631290052972485138086276598978222580062942522840217788599281382545429876040068256206741095071278692131222809645606564104656765705052238484502534220633386356728353724729147291224359213891652571238098532183405407419193635203120364710685126847462998220167815757068664520766694390301934846341822077435493010696196079047963358023790378557015057480413785596912905488522832711328066989101946343230742229986283757430523801249429006845135982657428400979019069262730450560802325107465380130608356287639849434952761900971255925144308448874046628955499413578363142107352568999161189317760120887362607290122564384316735313717653741568455541497371108025344792153917169881633595323056599341103451999040011042057681676943463420263751160729286589006027276757178854190465722458042447609989170898255536884411059945181087649123555856657144681760028333339284223208467711337639783518445616954084494535422325761294014392089110041132364128320941719767233625404463697247446255587387551646061527668541199039223126622681042023198212257628685186840218507973186043776634565671886540520465163808699238846781750777149651395343216708440491533423383043332142541518712657795361234211865109837038943991646735726895500867915875089007140419773354396170248156448181960097034377548047952660062969884481675302180968314913060240982116694891431431318944423179163124018116111681201205099584998653890397419350790851788054627066579933919863292821646651670239347946535399042257178789396459802671331261396457073687204934672158696041537017643921587276089439114600778001069856810820681269287229418307675055520866060213465684240390205093895238957731466355078541601306266833665534738643781593813778676806482020989069150960771677281544665945199808883693317167288668042012944014489892613357013019774233344340899380821557967823489322009197701066901236356387670254599366555434895207392644527621046788613573185322166523434568027120405558222037582380732469487892068023606390892179049645062153667906082616344261981029457646335423401302646260544598819348651246468931206817265435175326861212996408374119326516127620408693618485277244827635310667213725813308448164218157987732926340681581721204765691177093534172845638263343750144656055480390180499730720730662401958367389786468342645383208454037440474230063027831470113702417932565306167683197043102081499983551776455846327530057828135903302765146562557464559743086304661779592353788646156295339518146046926688277014565934064004785344029243790097907099516007557197878528914828659022078654291894231489231088311890073682644374023022060558506204092468151398986860457490081544178543675138392052127676701447324197758755763913970155255393299280888502676244829201806096490675254674072522138875727068883368004767935824394900613886203622283892660072721359202681535367750794310988347115062755673952512493349337904334486328597379050897905087230056818528850966723703689144936416731208453488824666446574858718643133823470789004943496914716378494683211930317749453486519547044381784348871698693698533469497048524772916801341795592665640078886219614958124043683056603689031212176137145106054043333645252348301539702830283258356606672815736472677110803544196605187780637599209676321847096112642397737633380526709771758526527104077615505128105957102370720147506349803959858222503409300865256209172526290831381514474102174765177684839193532794980599656563459360070703662828993624946286559254341007632501981241384048620743430599554269526983024490687987078453804589746706673602437078969374553068764175106625759872513447457098023729422748264148126821279173357535124374756417846350854334136600750082442330180483316201314246450041429965097713656852088747180461261034885823358081075189115958191929994722617598961813038076954633282714633005605013347692818308164705095155465130848229542786589741612599642783732406021893170820275740439163741344620666693483841165921694374444698769248397745192961109584273597346129260985243875352550201396430259356752113971852147192766783658285888684934005410098235537738166503144620736362294992373406005318414322200449573833330595020166579683915161399605778474871649590620102272127038430378213732421420602252166665559315743664295414706008081823394778271487322399298720736345360078809221808882923216911435321857430505317103890086740275468211431068836237516748351697331298488647100330633271909207969487011878198206479798349068718323587404034951153614520345515898134296969594432569854726045846073887997584618881081206502468259143348025890093917581500983961503490264266751574539289102631327765746733110233446972415682869807061388257260123368205927682536744965081077241759440183126835758094337387303653915133065509281942810078633146300861242592935705523186008225925148633545237404491913636093899085756715781315987426889156512031568877368468899604371286757289883061479390277267237911889541831393864760235551978197439830636948130703009756585143970277538382919994110679939446897975763629359550503011136933594649234759745145605712192469701783083671060941828287226347291371436969028791543739710011891241801175912365698376767201143323941491706120790755752452200309230497088867400113955662670063550861412012330732859064358261198922017712163821850701804276473264032632425269070166079696552719133072087408563574273792247847378265178013304495899247171272760583904558337664529857951272411371901499180952598540850979692871965341090401815287181704553950822013312194823440221675128756381583243490533597432856192146102883254049323877711156828440684408817980338506957444315974592846768513588937452845944998697743411837170882259708785485043674697836698133307215756614868467044389257997996756104369666817485273476588238659795937524686708492810100474047521045611203186703995456926103913649057515384352316903614489192850998772258443262240152279445077539901358382977843788060125429904233693776650982037362499080011125388888634514833516071740776867827712985222820915383209735534837695137976981557429025291913401139414206880248691195949378655712589812680765792293717594273779398963572931667215562469764330266624607101728575454507769097171598471237436870341388299312184906228479292462599844833407513522515648794812308852926934731651771021851836411990181315253785832639323331135058646750940178452361412233419443649859728948794078839444503246800356197224762450242599816354477034226216108097703479645084266221325580469144819546967916021140654300648965962293655998119910186404791720519648839468203391931265720918974830094991985980108431498601042503617509187684115453807402296446327958366208990130710946282110202900520671019853039647009521313902484602580444605018392030087565809539433338042727677436756696247349064829465277321461573651790556376213578669234294312497401436314197817080295492115109701532814430777294861073960951048798111995406734842169639251571062170213634737241436050322071913973434907996930580058829961715753512240417399674675023827388661548980547560870950174982439078951128027241112721090527299956311700721250477532133367373264154418599497243111960874450972126073526906964775381965071917006253560168612033623329511196284257684438046432632112380432196228137604432466440838379741283871908466232431142618893921670859140140142432634283359508402618404650507276944194736461913667526172490667243657553047280183086028330164158093651459214457214643434772196962330993151792997598392461612550715581553488055048412072498342013905944242295775856626146623961282944659686956170986751758173386725043782492433716131630611035544806099530552034464019512327603940525081210832538860253712997561213018984699638628234607270259101182266390264419289954528404116118489474579428801626046596511688551529535880597732902715533415631411577697392701925268801391583723025757740228922873122086649628262684458765828872256781711885304231145142427535346490314761012563269088705336683154796472649827898332373778601933081371211917007016970195744515199570792975776177286002389643357366885012942506320399424517138642269196169761833334879587707749407443530225481015319137000641887394566374017293880111705669011966504133757138119740627396380460917344724284888387218144425251724655347359623017517670466834207905566609351164608436229364524649067632195127030327465693572757302672036541579762645067532189848725518367682709810375927014994179849100577559224123210704797216055802207953383768163944428078883847151199204541240197196190146502156442395861976641067224685841756819188482105932269842401750202136587804960974352985193119776330131008668787369935829791773406576830728703139247484252053354276910280607140165506759083358313056671658359908434287949767482569290080118108079314513687655151963115264243758613763224452816437178115671570986827442555074874771674233619897581670110918201627227519206442956857798852401895770983860805883127133138513765592588938190092683977771030521269023469476022117890089492145078143393857050341951349376205181545656182330495777548878934730008255069199018963594807751979609057772622276536468810234364653462039318332058596799078117291753567622749207553631111013108669709541344332943774984299044358099881365478812432333904794981519033440417132563670462969338267844388491107237213423419106305955637442216906481261163266928387824645938569090112485034074028770358436493168169838408580260795950385871424223515114053949726959183305913490390967391234438830727805436330052770750789956036272817055693902099643131267955721096150582111338430739296878419756533370905302809684727317268847616956209583251265695371970540900519902375881181347534385293111324729497597507039904390358252947697527068843469541854975591344168815063437097952366575752768187030440676082738594212904127448319533633752954062246010194255599795012568115566358544597479909356042694288120011770206430514006849700633374115338489095168762199700999625983617812749819735970153000889010737670367787108591860042997588383098008645712196373341109765332954269911338825325321444741558952796646130209190312738804928767920631077724015380360360907298810486393261262353725747634007450679378990817528354065788476686859962221258246581741014791962560069159075662805138415911254711678017025872721595932565901121155759277536822764245003834657275815640091657589720028187008122157967818648412989277577160436794485139740544192375871163344198342400283994870625094452171505903208007016618208642382964531985388263292802959582919983310794117798756555873993776480602667776416091480516723063674479553862614659129532635999871805899808268021581393396002816660394979171039966518746477488651181796522330238968293654015113963831557825039417353659619044187026792877561306868450000076270585276021214081546005838377511192693653613495279656122211525309350973465333798791919597700798706381263158442182650030284652708742544279853407701535604660423382046986649772059282331171468148690100122356662387338699751122524263375353453529511676598275643070527496845284598162853354831492795234514766917535750236155249960161223669129381618246452581139809861772262169635003424607180398588361666365447840327433775217387933620320003311023744208382150734644070302095749884868142286593726941651625681612233379612701088477901630514666901767909506328493831447216795731888845968542164767397801053450875794730512246216222263276941101298424578925201021632546177831171618524169469946372913737269872954316906102913948110808657590811184421750847906692867079093690768871630614977724252218944337671548557175037740584469449141482662748652458597927771105782009190317646869579349472398045154761956824709502398748114821800585936536269114762042819674663021091285378884874399188100331692757630028878173725046446428327647089391986218154992144439725691075128525762835747958805615345713385616993047943560251850949763919283774875709986057523755084083596410981459986871103717262455820133802009139106039851368856140452112365360806465026431926144775195934102692640138478832265009547359745355096506004328389616820932980425156607396561679782795405961668691945428241160211099294300197660361783538620722376190370488944711473136180088737840330609988808434953965377653699655124086187791366703777353879308436023049038666827068999720643984688869964328798358867811189318610989481633898545517261650881794373185493356035640869803663558383112450702927626927596866127663317545479166896872694390443247436042727103378078331390946103886840028197776494198373757114771103017776793089660717987315562837662436570592765021933890625286838863696890626774055937286503089562012875982614144789613976585719633066109556534111217270096746940977293344381453048751461179898204684164012705885268251115661115119497357245583313891420498673532014264100535912186555414043450644713734535991184439468561471725901980548187790963127918938546835104763022262867001180765403002426272119198315452937385942351920191156071662675049332178289468659261516904193656331574024148583910816239079275192081234876518087144949604113883455018630225200193237237481918497988549139006115766742509568262861017621051756950176833893424361649858870209049647263002498387326867486034712528388905526870086676202595922564337479109902262611897371250605625993380150518920300584056630545007308222310443855940853895027287510184308346605607754273949689385824615952996644900304058025411501401332662216963862588487017418520461408559983761442214234360022654239288112722053663962945536653544971933154319171198694200660912900788916966171866054581707724618684993336845296878557878672657318665250579989069789754174630933569519758587206556962414028717461912949036135539376782008995139312148142175789350677485612232966708636965236135319336998872132996384832747481708456009333924445756780816326039717195521798852231903662062392895690071029026825379646353220317549819775837923664281863122107015793511721923429521763804273081184460600743844783786821334977494530828539708028121676880952943405834466001413602287483057919148235422279224454483975392347364983555647045744943301699238145926511314839686124163202516993711791893407574727679344237606388560436433125602776888379934982598448419925084823275063937581549238753853582232716979000141490877377211826333801642611547123772927660313380027289686215015754954380939241001548614833400740460968836483217489692251808392546368993528455461688765567349516573314195818671584525095165934876001998583315265529113511225698706898770927458698497408977839633721881776044363591354928035329641995425837396616043878934605726126964172879082996665757485886070644690185885451843209256033475190284152414062607282561278881688626488865543296365077286994881829747262685470996784424495575389461134651458288234044439909175431987392677366342095601150362615246569410918903315222793862676071416179438989952470591257193690098354050355516315590326192746992160021011490381220322354417200399073621903362917978388067123222569675650008173998830022079209516858268992372927596135214200498147928586435609957118439716225799667630795599188533334810413042746935516439149109673990832665661439908371304425405048331330759660996004009933086457211945645303594936675539800958590092403173062184325035728356415196654899055913140822880158781605216664216300508624332406912311963484104782399546284590147020819089699399216046708586403583984833249515219720580724238218872676390465069332432724874508529239528947056926702413861724650741283604465258457257518822666921966908134424021425084484310314755895807430689023472431173664451115986192741122002296290240413016925751970153130825300016455308769787900411297998794410499345946459110414157669862903656005933349793445037954416494664782192581585959283640112217329466087623348240349682254800624755521482820833038783381166287065069179735243498945421292226007446622781726983615131308381155550401557513384695487189129882381057601844430552042566281344418729522173288233382586187656120190814439915341333891318586413000246770888978111101626862316783347841894261778944415824239726097199620184264451330336510791526536469115500741158504156367995451768958290323840465793075811452797503899235861178811422674088975632695135944414607328533368292105984863678531702035068906769001180945259858785937764653700535342777980290669053892672441669189866809935910380429100983420714874735624403072807267949635180173102876250164801529206350195969246584467227319344516472862235489013861016383825039348967441517512644148576156577675972750538352156754976828692030076309393353688898145118239868503799423075357804707450020299649941416379392573535891938842658245013672239073338567834969607887785053813445365274417712859568626865782548559913411300569286604782494354925278246058497535593854849605284163234860192788140965482120692471367762067089624044571548319579889702892525591025974533681438663084900066622919817681894287950586744844838919349908549476813570023133499084913437896695183601933126971056804249220879689938974551223352537615634056271275634776111573836614530208352542487929335857483332046890864581721504923626463526859083011230201152072038107770488288976719373425408200598347168215965154839809049458359691582783975022969381694701999040697733019588662651656645148515389444020249529907369609822667947569294036365246336477008606951621172564788687281047772981643369981121169561635859473846399730633673521691120799593495315548540276139739090244529736749879168944656155264228725890390699577587187127038137972883398518918006155543210588971867990230606370167328731578478408924398266815118815219791877775897645866373688487808761682698601447422821432611711366890106136565157561326591665045612422924276596732010880454941037536688293232907465342063661554286804342308110895707062259500170626646717652553220487050711389657459167250988732521863952460507686475319520010447552569881718185804826019244027241444654873127589222007938210369344932738920666523876562538713471361363900973317803274585162962535943263443895050622911763630010749238037563311894126640504277821060344897776277836395467200124659740804848078782122274851284461587461527109922134552105656302312181416529871675599673591575489902527973042598710305286940101463221310141568387918812668227773324028022699945107035209895140243170395490247019896245405813740275559985372002408851157607850121926727211251223675858756247450608825273609283142982214329613929635728783090005888009405920950439164938016941446726089760898247236813608613840523750718680884066826228485623469071598141181838849046758824468394398300397603294660610607427338964248228713717296978274904984386475073674142696160591773637976239740393161455066561090689287110198179549688427339290641892245811083981187522148694488978332235136373396835955763671879292221726817504653066104402109263392266818255897995457984022383077812106890931100389098096490707450714359849577159421313923959154971463796665752245902924628665823251809394605942775189718023400882457813256873959681364314441482306573162569369167225438931968423964150672995470728214173395495580981161454220688048853296335721783129275008798510866672620531285131872005201083563430116197625549289046266540778061528903945694187707376794880889219842011124191164282981756305801914105580687118126677511185802954693653225007648508977446150015264017659040813279596888029836036006803963811906186344825635622292210104775829968375538651071386294579597946678029563082987328636798299696977308802691056864192226338563237242019139666579414521341331331369741364304001384294984033715983252363933452305950379687284174659173301397313117668646116641340012678220626608313244004737425983134096866162145340994394411897545931549969757959122980694170358484500820842512783908457482142454746979715144232600319100368960940006957051259888823908088880527368454011401748242886161429059742462147305809527453549051695915076304581918761960318994054676133562375919846140659898275494460515939280628421180959226999830090675905810757946279022579792657229833921728219154624576707866188813692213686168830622241029057444808400460147233667766631475974950819654167875411822131603913456405143333044651891530151498048986202571828755496435781632603546469096460780436612568057522752361539220098504503211447348405158694370646639918871783528813948647194064152609145175891906407480018147556697062560591254920341261778951135527416369387616630716825812849971373383204121361067094094765371181770514318908084307122060292350892990081486798310649982895313725918474579276324187049853393791375671528857580860969758850216248616999531221204382404085132922078774825475648265379224337311049344779455628087908248836578041732863446284216524339748273891818198414195554517454533486715244215240597791301742000896551034282485640494867758484153640437754101824384168170436013268496205855791274035094879993874856608985425148446466127081405919535859990886351462306589363495137667494956069239160354197086977311738530649537364434314669316736884121462293054553442083744104058754512364740609638038511801484546107863588176754066653215410511468980171692339769615114934359871679263305672638034946150416544993440525164406015996189232355863515464359569737905827693327763313181904750268913951132293480286744057561719104809804773441742332171449426393133471858930710871179420513959909621917457460261802630800446269601996678202768366146558120745283235544345944456245758114560164319276369133231634133245745565831667619802623245644792029748195760930565614157924914742228470961511006513959247493867925347507940107162429279914984385874185655546716805573694371041634569462949383507609723595056079001302407314550902771621406824253720090367454512678026554750568790985347538942797797882311492242100632184229937146684326726604132179006802751701084652388243544377625226283169688059187748859107261198022728892443660958435255648438782002767948270085860153887019445426845686983402762747451851050209913116089237274337328206058747671455246813357227263528139836563190508773107553468236279054918108721033449863085459268989966200216180016263156434232525299521086379783877595418135148582920557847899970942387862374275147698547838547396358742083313491188660417044738010209260457234898680189354665288499370785129563349523970577238454102293002053023585374403795246379705901079866037427739092814953841139188288601966071448724922208573600681866437753128847519483687695616326650217648373826575373995001714094113702490753591238438022240871670214391018785222581258975027954539438348663186039805698402198826830620094643322012841329980666555462177105431158432252648798991261509237105249161270475897063957949213810999820462791225471882227310226771055149229392995312979224331199571468899652977840579558976360469283994351515092566380913254278448412402358428459440947284064687614143231253374040723536127408914910553656174462848562462064533457931997438708048364753702825479258646004056691253122299955268707463601067640819500265527165086992061386615762750051440963196144989353799340731750965339674972158275127743983257989034852819991879170776855610670255117844078172102263405153423291587635474765289533165368991100230209571934553315667382998663726622372147440126789984632749328640125207155719493741625589585212575165096671283153347702656187855277749871682869621987331687420785552976689054433463704260279594341894289167579418371311545265542597604684088094773309608991036605711631927996435517208097188118158843398016656129689202217517483517026149806085381213851127203427171136342590006556061666526942780011920468102433349099486328117501718042450723704742666819250167758524460844162180444759243502917539206200719263029415081710091543808674432976775508555636870588243409782927119489234062012775673580757188345613025188111052471696662577939172195240814377341967242231183572241443965458016276700585853745220884503298991351488479093023824056319834768743553782004931437402076455353148157965977688614786975252734501477939506242544932044634603831958619461761795721273994062166080853657584569795111464585268642695216923431429771544725237249563267320647574586755372099573655153999751405936800346537610230371709910963685649717584754864915378996672559649310573000032781782002592377943992569350310203699389169870631259007974327039000260762077639125779252923709437133807411719508949718405064413313196427010244290451723743176528950849617652164893503344320044121727390333467546491801811686802011513419149904908438517801012082517946023396958487188546626463476095426755842628371731827784502461710373074279724710237099284740951881357105575673201223713879780774463195288500233912734857084980259154413408260834774922644227926647085989407862939617871297187141788192344417127698500909208851543859770209921322894875313529012274976355657273695755998184008763515891819460820579638807861193990497872413231725859422970219466234626239388804181231559451994776321768503197733794111612178172340468137075249215447343751672220145774719599595107795010857708838341071095331600833518459042658281916811449278251889356977183813493648677068887679017713896866415016989155795074545733600050782581798256679141230557525005713195685343413279904947086986639981491740423494206234730173638530001501179105899284122755011331685041119642897877556741994149237901017383603218663488660874522578269713963656699272804816558644584147477636369067470119876036511138522178173216392735712210083939020638897420615405247100213715158889533513318358919752174867374503480425138202558340445453721360634930352792721368035420415273929705972120552892303178297441430651125491046709352745125172241098458141948008827825043704620477317121397032505922520967808366627953028829088346343996056263431997651355232902173189685201967099228568136201614258980273008575996596396854768630889652625994223547109291973646635171330958187361820898064134956499526717821137889408606265413693055678785190261244840423649662710655180579509081809115186764021809817368166417367420926966902633850914167713796691046563415161517858132854550478834220819519425063997563304639256332552439857071305382964849109165570664394889559725612206253595933691341958147396613671258367942408615216193995693725251942021753637900087975539311950112053255213873710823591569747471567341114555788795536063250302657851849629085141294429509026987244088939154317349756639047841841277685804676830178683728511740129973978089035584482389804282738504408928501146666305336734710818135500760631857440871506486823056778731286465543432291896456048070756816334429309332887820088322858535116683990164627907429623259709130673398738933231630817367841365678889278473610170118776716687009409397727680691178022451953110893833688536601042568504611923274009741009779368409858921128431893983473227913408515255777752793233789062483975321924526888228370173392664853375168279505268871732701990192693051115265604350040555100429530800121403207165275320722580451161163061384287781960290783718013532486763782921689326561124604944612565571074352348016836170136959225199688833566792482047645295487549761286839528610898188499764402091647024237439427743905546128906317315474901006350622999150827259586480308755940764894382647748842044822946692536642102268714650375853345612040811233677035787400392227146980069016307125162859567181143591451315410869593375060281161437971857732621044658249235156974832869088142811826285280328047672844798228815772734626133631963849422055396554547533249317082114764886604863589310065922425462623268178783008164954063646523604494165351803196056453997737980887194124937992300575990794793965083526747836603768290448748133234142974506218407826465260598825686403589743209988132740371893119888537281013422497478678315353144836450949877614809627515659424106642544822937050296364132212772263074113021653448098480321519387459260824937441116395140615801764397641397241273836586744120050564834338816403875282945357883987689274659082582951447783607001503501978714742315610546571603787875670935342814406626159454791736868323196214242893507652549126640894890476071334744397818119562366771025888954707243343568031370051779922837790219984315584097542758830237901230477224522545008556487509829359497107113269742467976870731793699111163120752558352973802392423424630099230084191519138942202557697610335784872806159159815764226202223403170216433125062560875636687700038925277989632563998803193602065292301698931045147828740844192268897684655894801060076727846865585448915313832714131657504649496108373050680667923163929454179747983546427258980311272285249281443150612075711816854349092935389896088073397007245702043039639231734346878173175741908247572889551595010378901535754355451650558653422749169177930446716943358307423237331219462689005055128335472896871547022320513366272402185402386997345634146915562285552500624380728599847169080862156851283532876739156515495668799783350863363899925359571765647188204411773790436429092234641981680478599422004041532827821945192693516684974843408672729143108570125454415608767294329575888978800034049596084843040632575356295722597358887087150454682251043485995542556750179819386041240080756326386767883874003653046408981334089743732994145162826755822731289991272360051361054016001028207839644866296139428793336995269635270385437614835005922214174951773923122682028578907094340884297233127926366221700596206582765167562337740391270000497699105460655769624133761892359915874376713798016085909946144387642711739438809118977394252196466993957558964652621797687855949371573020213113358233546499651017283329028441918376290407622187674560654454511382825287628601629189605874202119495809269784172251230504674314962050764181572280090015709446841178509460848357316415584949560582379292996076140081139842082057936555337941335105926973021972871754589283605729831824142172968973502886188427054998097505359093216449012928229739850021009684562555549657546340271081954776407234545803698974339282788517831608479939917315026327216725957962536769605965069505782191014677292782741607006397086543066637559697889705372093397850251532678037295175928951425529925734342169717237820990133999110618174211518691163682574926780219912719746767708697819263285636333898751090979919429027042863931771936868719115778023675406893661263181569671859137785412383872392505470272397463885591008132134341921902491531401606234065647459847819715202196702968216630145164118208555880410989512465743394009145296990247355166828394262292869492707966862681305459846673715830006143480075694212461321201053233409878567682754898980727260208761317725208135914016443076531528667174092902841336397984819845906032765645905619200791765677404133551999521617275880760507000746982639915695218434761952923395269226868253553978075373214334056454680953750000317695764284891533511866752845322922026496699544226055963178205981029390384897486176500579158053522900219883654023866233796934924389761595723675706335133259041986422141938984412233597206713191137363305234246881541375754252253080585489778815417443949005897123601045956960741206115426358573942205937328801873645828531727886238152170818989932300164947903105784386910443456660689448365810590236785921669320947263343985066720737944500837460099679259668115129641839640898644022032611814108332141352973770423115979805387688415412335411256742287550913315940608656828875330338702427508802471914511743237436669993108869836138558512702114694157240761539168346268237201815192614129032529204169521290094494579785417054259394517319003673543372900746406556989565533090846280633407787544176088682930730578426167159649808841162504296088755750536645297963587279290132208359348753054929994408988610361831455668853139739113943964227383878686193470468855599380812064029714248053019381428079837773959181327785341016680421146893201787079835859634772285277367631534865766589680255685007652075962601160746448824588767351758155022619000639258205689326533166066202960432153548784534764197973530222982810829775563025771280413183212023492729902074871119057558545951681008983002065450610603305437938660932922118762235294974825364740013385805387117327857367530474176996039021832365585477538924841077988431752390328136975759033322937870818066589723787270102548084144599621817563767671988062968642117355089477811223347424948114091384507358677800965499487920760878843171792107349366534936119121687367500810727553213946236520373291893860224487994510343522646589099176123913011380619185052933912342639584141356092705580135787881114862596400070771707783939850130772135815583134127725301665272301834186514102837670275600286697247866672561352566838123723094125116865690239167834710208867673242668521171510567557688777685936798524820127424133702845462824737846659041168118892934695668922504732686720746713052131446350658545102209757860540251603518059360482646787607217349436594682343005245101331412143098770948082642333806180259806135234856686641892496249898694678127990832048028826991517566515601212411897928128770711711958193114988818952775432179343386426757088806017060764809101053339818942844691644743946396088363513299989575861246593365712793062847454109938392075972153599348651469145226273141120605913582197576775970466809276744937865435606150524979363085338544685009141886213209133015859819502235286015045826724766980950213420281860893815028940652232374491127975179474582241293317740521521405585861416700315845881159643642867241739106054368124828877872741085243107798421562659154901095233735188932986318628157897329641165674377291566008691531445846025175008906326030409790260534290587839761399977312756528229172378400430425190293338516003286325648530291647394190724564715713859888595368785150977163630114105291895309146682098099400475891593207286915138670459002978522584139380558923641721084638842240990345395356323618688188000445316628151529845819621957960752611022584883114684112342930110555014244835783868562530031757766810252871925443443881669583698370014753310015766572287669205010017528501230900389638429249073612748114639925925556667431557743092995293516014821778869929576750385361489984409387311273840871175735807980797080227922240589949401536807424626891657400031648617879023174016561020375469599737734282433662435745213582406940616279733592256654745674083408637532386008673809207192890573988214749602266825578197941685660406106945984335843056171594632861037195109686674228631707195325015788055236015366840324166523487853798952208221449464669851543100423733572580192326542514917008345243367806012056101714487788058964525699630963963237230896096524503279397373030592251115469411281285394730215593017497476061207047107776358725923713153799698498450647568311939890000558346379359668130153809165459136447664148277923335509316301209775955963368133832878854166311328534864802342263592928299672410143641076816179133337553255014425537401048795572489234851507390073278099200548671706932758700719444568383622051833420433037488393012632647678591200601968784280860979495965816900246373713977124016141254410494166222668199474636017054672892531034193774133495573689872197326500178300647728277843761594239804321410448923633857750853399851305675422649211609637883439465434552997765871715342521611786585493671477393551720573597140103907802387816095492403344920023695294675186811253561884983771165023316600059431775819970943719578147438554687712086495028054713130700952210120387751103445432574009186068165975344998148726619602979070224785959606996331294996077897947774711209772547829673846499172564699568647561586009570560651568759660879612212851199428071960257328609448050295423237724204007569074827808720350452208920008538755379156549918678794562428586005249340980771188161644912273980306467909614068349022611909316212710451026319001202298433113804619764885661068306113196484279793058025377302996341845433847353453213107328224372413766864321782567248348728710573946343623566304044549135158254987848645462703014913285402014852938133509600753268630586126927419009970281804199190341699170363396635290498532678797238113934703514421292745892523663013614743629752478471970121386500403954730712466342641308219813720662159559293737021858498679624837916898751375001187657437855635742320820326876756585154692294833662021962781884563619563071645671494285060081577003959336197773686202586219179405585737835064595566123099470894841689523454890375336085213437432158837572618892530080086365237629719083862721632769223185403089997590298530168720750862400534740139720430064166326878313817230998301968425326734924051130313635331800469821666929463469191682902764249592151900858350555557795963362602497713528018401529632927481905915451099212879142035820751761334624326249385149401749467186750912723767248810814568671112251516866040810958636110111979109567006539378754631634943295848202721923208950005162672299316327029639236649784592645337041299232107715560628901469652727574388178789538478019858096128745288203052550363260260287827278403943745870535037164805219806947777210646968806785050878879845530699066508411158110611894635876082970863633021472192553740262600130877156009411102427594645653576362280990574333695191065975350110044358963204820398336693564305833805903060169005707238717515706610908061835468598677060566620428724475418701134131907819387410034453439443103542072672019616324271542034250492662420802422444059141217971034047143135999573030152388436827529814689998440394550251776455214935656678846399465036618555657486770736945582659587355701227262891219873778842911882137659884697985766279793610459978644982998762058125454217191253203663083249880587036384749134360328079864989753843615915956247141320041029559547230383118087938651167265686753294696391037046961997989672713887169313805755978944836689788453936460343651606512287372758659597508092648405185701445453367345045650869184652398336183804276647307659415053170253579139462667138831477233555528973985823492223560706254874546833163540098108490693384346986360376372698612224802534542245196567051893355380612671639153595825539483963122433517484140059676816180512388630676316363167583575633092598151636558252680027137359320208725925457482893819065696544884549234141366078968264100416803924109264379593873115166309377703626301499045881709854751050114166479503840046259511245544572699528687961855284210107425141327774770473115689998831782800314850026219249451461147445765551337622929717248039392844656555527487143941890968443957887159594333642030082796373747978413922497212064484095421209175505958740941035036522083054514195139807271931242621621608137978511530316866728350767454748254044721441629739080342838421177331447038897767389691520770208008928297717461468521554787092250348891817952351208893069263560539278782636302781115677680458338895558475932142263497705516763893434796274930778137413661459377053425815429564358744447012971988232632004616340333593065440846744398938974675588801362171856452593403022471815598021563586578322311370414496478108179166003770106827872248355633833221156105112501771773761763994917456055317682256035973386779534869843367593386730889178444339354755666875570059120274147697095603491165179746715251016338377057535876768484849536281809732342963085957745498613242022683993684486841520732149032811577573512376865735947125329267420374481675986126866615789301978733035150213053880839737197214765704919469206760699719071501120069924539112871351887277434312268892578067367020712544241596648261353637936545701963959374450990519204656028713936945570190885048701427738650353866067050237465755253669221651600306801783120851824959991190283767184881226243506118634374969820077421228866813103106504667973612181501731055478508134936829888107921003868433263233142646833236258672728368317694057985673045536350494877024407939272526604204245744693138311829291397403127746191616258909197115568931083198339075840339301540436296306842826099246002003742687071763540137933960412527286229872691407977710840319124960223060745671010903696926854795287743331352588003361027466193820803640494035211938241729378870184573810879749094259720702798326912449023917478275207631020795102588095178679069182097546130219536506338205623575718302449344072059694225103344312263724672335253776899175966367156685733649307313275700873356628947760971455418977259586302060674275569654226830046857134666821213325102180410379806783224710242932977435503863361044112214406351303228263804697704133051691001090216246643767409775118562644251754073653786213508785519984859703360372022640248615631825638779359312318945963931719407393083487482392572071214327744043346978813504828384018743578528365771192501689442289915068799324879107349061541322502817138410183174589710635897821272840930365973817241069134306277400709716620036605260006346777854066033583687497442373717507333668489334429154447119763995037612575270419715237916874145336320722249779534078070319421164227836853427717765688674650036256279256294095566912901045238325832795980680879251935674498783569256333638282552996464753382787291887022280098580707463476055952128318298275618638021476022059016013261473493084234531031801583449669926571191166056089342818978022951682200710081209662782952621016686757090104566403062922522967332760562445515216290901444189045898196784622543073909280322084603142812492853578985924160394328748494247539184520576586415338250083138673554697866779156085475417931815836299121907242614438702041936884561451212616423571376722671968149946493522766319012579968253603222406532567760419524971147576700352338294190915433843510142117838549227028921056411349111057954794590831130746428776239218117345758698180629167114689962393822291746653544929204559321093438959984215664837877267430511320715867912520142860515381967528054806304236306732186029567408457766980356754228012381302088838276665422970150893486091914160745219248660121156080353520891471685636386098151649639373626397092858783628539769745378101525875266483678602621623475256937155768848468058020020037007802709855976019516919616984599566515855217222914459414616673193106498442235607444035929424569625592203493542052581133683111107823355963738980977022633093910007469988575396743927664183462219570845476153226854753849315724671069948247577393692283360511613498498191154874488276041445337870507984813887081481087915137110748044647584243808409051658939451466497505515615375066599569483666925477026898066205529878379772857225667721259161581020705782823422324857109690694341127949113422517142423071789496643499513072488921456288183979138832837563795403354824317278399887966885082727567904204117733635269807652358262256945811392259876168733361307193886214023734906693663201741864302301129163119497639659490916835069681316020129929651302747027436533303636281625987225096243602222200058231344326162702283723357225513928685839620834423091658672820340466455480144086510000648964145668618724936457237636092789855930509599867886817096376104243671854566752500613827248841885771089803028646524974601851561696470428376020281439743063375789796569795124057666624167401764168758134569381920369385467803966849770625046229767330547637442873476613749442121354599834789298034802720895976542730985515015299333564555258188902419890468432733347620616357157442943642714156940232672398803936926301441665893603478188330157330996341233808468254681925434489881458247161744627615577541947162983414670809323793055751866259057192444065237936947642697243529495007937068494033289330986526594691610866340800256229594725510403123764340298367019779070132587659646692280352853074248700598460254156564912125346833428264907336193286571996006855009686147539551814449484411270764380417271959657106283694301578441258897445566122516106871916493168379387372368485811168981194632313358393199968467815304462146473261277940606691010440146050638163936519173833726124124742560711633731406993088519707161871353249084200814971433498661867818155106271456420166866445601669578793165776306833439650985107749895314436921276238793459144370713104661359825768592397331336244848515865628298464409440298905610606584139995455683339815101999405537827024490121617726775230913461924626887092370983771217491903298183524052499920653145239803506613142177605033118370434812872590727187616851320983910218932856671278850618251890051466041892677214209214782276577051735837435932351103691263410913584525299976930984269797871187194893802583545732237603624262327301378655396279061028214749743742357747919977403817054912107231611695363171557581386281707615219447301202370750045351864683107271606593720021478967841980031563694069148357839575482379155804302526991156950919002557060715257145613068507943857839291664280449022071200588863025453794891656302166108847204061470887609897507648645310628502607979312804379745774335635940332299558653765251462487723731877759707826715364798714021394904210459662076529617642466904733020100077368607936577802521917703095566458813769820276779013534491283891231223895279899090136074100613018404102671689677359591450955571256406007501859393537890702883545630405294292755688956643926167872285791272226263451604502289861663592672357390167783267315949000006079373302252093200960255023418048892544336136742834308819009308345415918294358442801902769891963143907076333463415737714067136906468157061333622051119221521004369956216330135268756332918332504057811307208411522728543265349553364122283597717171866810866177651893261490411498355719013024231246781911071182180215538739939765431298997752800188992928404703929921216051518468672617067337791405365271463973232134839605389491655423879760804249846857996360823628787493914329679463957445613437701813846213783811333792523202975795008638025569829569060977257866827664489771522286600580400092907659744438140401065658003460242949873566885268600442820530819822686056539278479771860243307307713254531385361033015172205498391014349750630481719142235218163830851584316794358794610369174332294983476916709622177875995455721122214506880722485977548265504866692550433449368867326968450979832033363834231135439525627436712251917237671033118906262021725594217840480021768513634259893116457859678066046094927099508992757817601471083262467069754422593709111671758840235502135384493956497310867393995423036921905923242357008958830320122387819359537148197311656193397872725937879075989019511667625917960220163918333057028502308868202138263159921063892166025602599875044484933298960944813287297163182623191495297250531775845208438584158049227003849349611752381262043655609856275624789087079077601047959794458544514606416369850510038199341851588676527153786439015118851161286931559898308430967966971172597014536088520166526176224813016113170983603901598827883557786178230357352148159286260512830628146867775860828363562837633096507759702943612468089718675005993817080819195520579039273530916151891622848222633674289377595618737909881122029392925603384721523742749958150547282514451608070615275719742298914647325275371013244745545131555298312763648585259751508294264408952354887829085346871549156187025261174595496588704810512116371238547260150626280616313028058285029848649411792575571382458513522107913470972123929099444951286279300442771248136754506623591378531268936657107801063550926525942867477697554446135726913582825229890533614428474531285704711688929784181699276565169743176237648757183688253133805933767429703044528415700710234340803322127526032976548362572472993311948380564979858967490350189193163560189604505029131750291231326151532505033296382060957026270053787872147463425692856124635726840392436660971948924848828444613154857975047691538546651803963122502448709118506100146382634830551655318113966821408430495471623410042242332948058960874469815743154198670741064336188907919502446205628653767391665762974114615200809676932563825024329955543344477755475477155289626875646033966577188193938187529637890716583214546004216400824434757502304842075970145831620981382122985624068588626569432608559091304964174196043540964197135458916387351025703884122702292501776604545243494006118181275389900752952391021292835231514051007820832971217865654498102502764323032378964204699567645228532389080207427776787123633919834594059087054518199075087200472087328193210308936945712069271672455075450403184296942287780084142086830152614317948472937644353379615104692715140230526554722499838027604548580533093944214316950869264348597609196167074602972195786562702267599596113722862292810080566517587840859300381856350861822996542146101872563561537479682127809583158868093751619495285003728207983657286529551311919384041550839938590850664336346353460662686993926003080009489570017552924119189050604425676929392549942003030000841810556257538102256987101229640224226868268135430251565646737117871925802282062269972070376385018131188426136581129554034068358820383623340458004118900174001348218019080247201037854941940146660315075562806567838622769308829185187004205857778144370071333057932022506689112256261496701624277103632097610202686915574273370928041179072982093062967117160510948257470077110195187367816838300688528787987521282296089469500592390675774984016219934464101335567068014343939755851613716166755266201468160923958899348927808943423802579369144345863031622632124562498803280081565272545803322144904092248017653713280705465691962755621668994160856473811310547650101916696447483054068355799456667536232577284467499044531601749226398685021956278194624730466667714659638687787574169662591923466973737154510485612869551485730754712845766878956516206114090127755944662507569175087400054453174159103644221703163146158952740397167066061925574325109713643345730326146847381718645352960069163366975403831066265339860755251716160553909184493254164296509430835128035767285257812806052101075721640860049186945996741131931899057770770327969392118552078296952039522990666807282240612481373654446725369163290099483282277248486252869628627515517020551892509943920774723916227426590782343957864707956246881376535768658752698465350656788510226405834599405353655068374356578604578888608538349630850844117164247676475090046634636561126085243426731159087507207191276370379239773534875959258884586109784055468672075360115087625141658045529114041546268835388567878631850467791291144872033644326474807338353100901809898912780249704829014734882554866788373356799417562437228009823076185512042989767541155564250858627982136161632039045551603050240958636900641030709037461545093305509474662526442364409786812834324236847250983699316704635267398899113162354249650866044804739563409148383313472718956959971395772009701985890210787769333021109084298946377955820842055473089552672944875270843631572389783936232204349027587957573911121528187298753283152519126932775367252096644332698762208175286639493330533957629122039745270290281705446371318582904874234954707778920129906717464976658790263689150147334971680383584796892995809012166665977714491779600093873427871436016717535901490347777042361800888878643049400446179514609111689113094055997807630861737588480947166654478897763636517203568450450923412773414431912323154164690088149440424685725041861590344680485566595203672744818428510845323669245377401421430421015183076986930617342880104547633737050317486752585223654036985721201912797728613076934402605218667759456503706002330842132066612499245169473697069063207161972378580367191239404737233480122270045978028786534504151534602146958427051010481495065941377204079069955154757066025964965802083619072804609027205752065890217266551424630999894632193486164099077205249658291418355266559600201948150321454904158101686437492404967953542072297727407196375342999690818247419163831345415259665012012279057216952330420119219715948125448468366168741820063280619818508390793659208987972158317015853836123183158113327021695231633052963681893070593123266552462988400434532371415750150995197802959653888769463705935003098836937656814017658146126518392236654746656241969861593866657445307095124808558186226426466693576058401430709136103180935847998853624857165841478977239711915883824154056145796820282472300947628863728830979847522188130056599796593970710574118842317451515230577781309405687108900626082555495100639133586068355812101527972837450447217492577164661340527161643505419502214450004869780914937668568712385597211605851952043001420596981781830238408724418279468339542531610452969912151861668224569941968740503412042869053217354716615875907105082522937768403496614797368558634544975219287947736215334958605253577461014878943568192996865163224145614924909918323914012629527354165968403728208513506240735277827282320568307690453354915932405953416001749859488219013107416584527429279646021880520465982361089222051472310091692701367012662139276755138759771173951062778535168015778707133274225922115408127182415523270725032618352852605886805953545198988116898317027217532677017546235033267312928826361904520729541889492223153116186092571637273554761878083813585197764979985549240720142896570187867646261626152994328193349850351718233271690162187305293349856076664493939805325939130892144353025417083767699117783074912616442185986143497296499219382519460137426482624876375864773189762818989702364877713093566530171957839858851951816412150753061497905516548551617020755331609720910423502573196864579355305830095838111857007901015472008289575308359054281598637672147875332874741023580508747244381595704344747055427826945356469745920757335129950388675427641231061836560556088640724919916625874331957829624906237410209252428045749576858992110195250049304968597143995035377388186533382749529529955606920545628715403227641253090362772563719192346605666564159792586354269464038984884312610798571897137172078667395976015170577602444018598314646110895057294192928025176451098079865136177079917959164524036956362045684431968190958938627893998194044982309071771431502401623296487257614750671798844947855384462710546458123381476906880977239865177820931634367392576165182014191765467372549931492458287752761602313869209481622575645003463022536375148116583314462323673121330927832387325357872908820150291580902901050728437456103011452770262458424441186973281239355115340901991545876353524659001859145401550106626782006138643801267862524500774865742532890460759144471029629969235901483797962825939632185015766921823843768452746889395315244496117310892296512946436142890702280768185370185573461550233743706973168778102395029669522525821907355119349422507367306289278290271074156898024203384362067689445493507780471454391850317284760578086123427884679712156551295941904098803133433131796938872771540987996715348468006109788962013984562638795360098523131872150373315040158137315072755992309884752033465190150413660780379747008809376919813914686654632930453071170950411705165363444257433372141374722194423821983832833137477524477358407054447046113010420735679396576248902020229296568327760600368888852575386492647234669821164193369947882064160237233774873096566349432706640481923240096267578348786362201170008142206971692144998623209326015666309274952509293223758449082699198297493213353420727407999129877195769579495685912162995811114836712388808959044536155123546823507120063131604139879295964044719863535016762776446491797892713102282179201109175591219438645724317026287669202192070216147764334606479044076159442670337578096419258217375708717696164986313133828578159156032374984595381972685590766140500045410024499357333628243408892356294023264075950174423923471135065629333013683714955589184891895568847882557122033757618569176157520553044321114500986902563727841733969131950395439035141027504472979734895767117206337566452032003839608350197562327562083035151706014563183893274634207104516016803449891266343866005991950411938863641062609461686729653726066455257066970400129606620851035867754512871042775288394174361498620296001991287142173492399420980521667230608268029495964694297143567824247055138084500672637026954256895683817721327315349599587781312823077034505278497103904838468672167879222641292634547854799062215753574787161132910795149396246027938136729758614942867062811617719097119133049972417693309894115719514406782348612731627119936935511542764145508529847081284021903008262486538767529429402811973309996208575173651967277719420831155345708503550766409637617566836734704067640843777139984334819685578793673565691467215572400704045842098311548805219917723340212533328338956635834162340064040210349299783853011617931315127366741648016428598676784496522956828134221202679037125335447723153131594571481354957732809995888468942820864951644177246616198464488562261957670272246549788398966924061145632778389068327265413742779959171146904251789826290676879879387224998971353373442965011246584135941832706799937751029005381174778933705195794309689955353609115563460513309901354403341441322997789222464533308806920571465909423495106725067363529016171868306677971020678291231596816331869428486745817196748156331044860510179008112081184769067874310490159428538200460819315302997201848747861350852853836679681775924455709052780083997755010716952348483211361109304606198168347451786069763611010329526690839920765286136117289999717961741325824680733571529103016258630998823138919753005498173140614497859645111698111575957827771452087171696089295666913207157889638743637159115968164409513073477236374063295594555867110186971767849163213288937682312971006366068639913167827329632024758064369811292285875538561542201745495362685629452174423538033284184607065574404403531037984208144731958784655475786614491020535002534725104059257981373575600932886646231619653370437396799289023048644230030999875409478167585143367754921067612531114446408383023114432392525709490516886290127347997392931984605530318003744797556909962461528159456567289384512914365040800641611683363095330809597661191585624879677920634734769815885028097816248881169217571701924264863347221595417236108899083466411894280606253341537610795058175822344774249531945292270315766176114719629733724905685106069138867179790763263321098397720013676188795653023734905296363273694914052982394241829799207736521565819710468180237113621632910820398958210607433063098512388044502814678654527130606817683634888620326478135171078100634931037233742661878974385247505617319624131989410163914041386669568929169331548006461967356614405166502090635816441111525435533101349383820588959150557975149657717421122433172040236230259061404280686205428927218537153197762684262002710954222748225621560155940580205697531916877567587794390404943537889711133568203482527250150417690940637513221327346211427741520890078383645515140999106615940910724466598845835159932467729668671645367402746600540679424701670373432843483729317247601645241104396387431265005744290804744091592271076182881327103033067755715617135918143867637303238637712679436877186157082219815496775960741703170676880436512364859290962109402555987400297596903808131933202900909555599722635290334062899485619637334821767597836128060041960713439847798960371890671178726390745212636544371703369953363731134994264598105816982967298497205218096401682733113070993377596817853480929896305834279115919101374572486549483439269857489856583801693123364274157564910817874840476089729827150268928457002199802526096331725226136390173770555310429056202662965823650701584233846425953004834214914089364395949303943538345427844315950930898282121347450135777059307375980167512892488358259804958482869479407064102059159479831189972928979424153903553168579822198174660186616065285808946456919658633263391953911437650499310065296307116782353133099125766196698364404707757481631889356144225261414287864366709343354752834340460305097143287715641377682084756311331046645690249052912968309146576673143249387105759220245544549658159937510656022252697189368442932453776297149825259591570540130654458753144071210447261016228162409713856862278260552682777466038136222838270652126421712384545326083029644762682717712158530218895420779205649421686517466892541532809207953335699252201331418108692701453775377886807456587275231948299228767413876130103684531020618700942140163546069900292821908716620138201793912153232448223133807032132028087998158850008909635944487021916030754810970245146524417185991005737795772191554401554173808099720592477952049566099472510892415555306702333473782004498363744779953935091109656354124687996123038030385101247703296927584663915487531846038805514475003280119173849910169652080925362561236086633156790322400236864358393784011774251084587947883915927407858574220924615743806571600282074400045824439062274834719379354236089950634734477731480712836054353790500649401000251443859979033467420751840826306309520630594321578447527862713231197964958040189922563762585913530945220652480126143634935048932982999302944263262817749405584177783747295835355790982448298458735022025229200849529119157388243641362545303551916469840908794806494655785338311522911812623370789469269773830670962233605477752871199721082411348880022978391654467925324048805388090862696094563212752468683413135773969085955917891798497935190865118544377665700654509393903345973600179925790309770121540912467950345635973621233530058587020476033873269605185800659311287126062429271051713783389865079259576293336936047718064716367046767035449029136693655901852824710208575492340178616464313087651917202964453905318554616956770439199791741074988655340621083438102611154928247687256510333145934499887098074444407347814171573166448794645088948160931869978290841248367574383977668081195624538285777664885521482283064344378767336729939125038031903091896542047425129858165147669168955820932347525518806229585645477856748330676910292706037131734552710846042035620684423017293428392285446627645756850182493715805399036157300345749818611850177152575033059231110103137620407881014821677791791110056772938397999050722512224145436671108742451164032035949352054024526175488362657316508236719456896690565220017809941192836554248714840268073421784285541456275495901583935887902235066199659772850292480592469974637574640329821743840269740539729466744426119742946893218393620597111750606784590100159275545836794207562073559700039757682562390111924350487070334202475315419861797395871429957490331831372239383020556671243880908245206426904070135268990597287304173007288950479579882636089941949381121958005374186114140294332199850873371750228065984857742790849851219916952734066072467667820789914851118734031858510993957698837054304455335530537490874678130322508087606414601686385371304441274883293514645613757602904392581581638542539565095430557814727657740944875761660336306307234264085731606860097829781700362995767987164919888700482076920007919787944407526390921546661695188298203138136185841414392674412203319152846942027730948216561492129340013546790947127427332147327239032011677213320551097022563165626058656029726869550696875087216468094571540289236170038365425606300668116165516549643261918943884302366252410896565644584925359072106592892811844293697327119498663582938862409967675063708755191180197033501997545858532666387122449773149551605676082498344882942025833697463637710580389858908054345009582893890724390577815066508837391893993226009231305646973223275469416018175047657588672051514003743690106159683060153777130595681984304603203489353006996891559459330829334919857292018956594060367669846684430509701618350870416192180051647911228868621804289691598998589032601603277496481654567146358447694496851799156950548289634836928928885093900793070825602215784535103999263985490513363209220588186571105732308568837415881382762875661650601874631362567440622555509716917987916805592072954681893487264192951788318746764397008491130770109805177082517764487855278702330716935913102335030869359769277409531043235652641023157179749611457720196662294661232053930105425928582912646702420308030024130762992614461177011551391010528914351681781178162607587279332936335402274434685302845569951559093420544779204237545023216642861232883992534352781830583648804705134902488110421784691212554728833119469371179421093434515225955722480698207456558416263498482820433646480526323427273156913363517180802308549170171389761610383149813906448983044789120994922622604275424932675914328286348343036149429451326923856328265913180146265671814018109966823174725387015433651233788542848759659022882134230897071709430639470991175931436828444364981904144349108115712172049184517920174099410245808335618623039660747095803065935061646487545251891174129491307794825552874900439819720027669050265635895640815428733331204663309277488673705725574462350672376658736297360195007756244106828044901010013783368948493646323929039144931377470026900088223666579650331793534857621445059602455972462776247118658285639991973843261534015151561509920165859486916501615775274776519728679102609414881941331415561391313639419521244365411286844676449707062595179351859523778271517393413571904009488386707099413688240486409477535912702134974431058640118219592051629739066376484345708169240820013513678179721015804251370660943168609499387822823309608464614322753337402750269174468047497849965009297446421399946801899667793543685124712398603440848569279531926140602662317844464760516589431649083420032085567867076067147276568669111825454459932465414952605582841182189809504671858824647281415621404437012079211609768778888454711132809895006333830445802052466056476862259539101776084221909329324965275629448223584549628139836752658034657807546478377443301954230399485456940411785377116779185114994179923335475249664958527725989779139014857617538586310827599947610552206458974831480490686566046290615219753026515610639904979477159439503986119149762574074772213529372353241792797968067579639542710889193273673801759377330993384450879687655251342639351065258247011053208087413876699486410120865162355562432878051075303364150356343181141445742402591798866923091441251474412837507420900645639383949587469041283407817379643864907215337992855149893148981881679019927087102669014725624588334705473767674511956619570703772266998884818708318521658076072920159692318776834046140580514403361945871674478117596603434538403597554298081805775553045408657655485318034546454385950203898554044156731101914758966750097557786097647400595354150464968318795051528636984194053312003123234587389594863089787613026615520857901618368082564621686504887089383474349512502892785208930417532655128826951041125021585311507213417284614129049107086808391373510610960002504577416912742221588641237771949442440287873983888695003118074726452179088327051991160275740354418492829016588287678165783217055218355834459464210871152740896135177225965094087122642325501289568676778368406468973918736427471488789138019601654094682030802458779077703044230511187063284384498633397379875676591835586926079974346372395713632074545522620680180701377491795638569163970898757150688230809890002336837038599468748186789497789421552128783552919962405452893126849312496066737494256169021991438597639361362710048408122118445953061686180905414272297211924169382262000777682738316012007736315375972666333906097438751070668781179819008466556025700547220433880048670293419994530165904277716846025044778096551364399403695859493510854764760463944472934843948921051550125318717032594608935274443032349421324475817310995837900806740698094408591286913626108623103353829920936499561981607521812725135160110457624856540526039126397924968371146944493692144122721307654493320729891651659354032734683739443752435852972186282262662251068533290920709335930389505788839331854731300151694622037277403933406087684924603850904439108022617249763764341497810783037086735411449411595331645519250950141111805989064771684123228185083462081127020419008811021869898016782582387289653982285925825697067370214626476825612103721065044800050837019003202747459441262651500325039215733954103631214267528517668637711337806842289614615806477103694255516339362404342084917102279869797919132890290104502725823716812704399282277408814560881941994623871813226665638703287555495091562961997189787468435835543354844488149406943771371373460977653977897279752990846429321743639690845170273861360078771823041037593320570462766402237165932143963438272232456950504804300768216038984293785873779090608595516272203076566522110055979515667304380383455736428558734365593041237556644494265930573312285741333340640433497996224302082964201016208202347288237292524850901084271096060934751488798275780056686855558844943854856147318378030030519890166462905358840390915794406753474122159106990114254947172716605500428881470703495558907546033975402523853454986974298008948321655073849143345826184622657848341889710012703055677844220922554267054210145323762669819410148732846455501519391521528348145638179145332339847090111611226768215340768039201747908335924975248039078727056818486613021891875076489619019387473615745862452376248610567559063374524599427580510460222125472208441318838840786566032247279144214068276528837067399306048732066957136579165269336344063270341324922713545318085720887371421215323944937930384048450948677383211861586548889326227120934182508758579155376374751523665448369966970937166707142588639402443128902910918799088041789808843839680414718341854851015084554830222975626691194668010594225638426114938234611081613530732834685998620582181870755475052897845760697651353629533455561742267897742446391389038122101417297121508176108478644991815551989070684752998824678884621735870589055707387172496828223444626029944413232480073871087730906761162885205995350912143647004140389031346468222167842921981459597793242081033725657752058051678173610414626369986589740452551213514004350575175053311564929736795506920688336513645615873414357225259271580779874425995682550765302563012955758943411503246205552301128450022318415218472427216206276783683231200390279207798150397427188958145563689482627475937276229062761323324691097307639232766257034503172973143263480626383551471579753453429966304372147296095796236310580911752569870761075179285748548002705170726707004587859343271888608572206658223229055792096415658148058570103730476074299239280806929300733627661829751387003704027812498528722281523196132182915883530970956691992366529431703122073212817005530497802449664657192204847848543777289095752088889973297732604083446626455930335040698026352337993568175277277791577097527267466751756131146911615990147647381358712515145961764988486850211704155064026636921911838714417624834705976559798477874003448115516700108472096461090269225778429667005150291471062513039563318313775297599316605247545576816731552856614526807247914021079003285590405834241400208229285959394423286640413028474367617954857226327538052078761659358214750073641658600932519278470406200391218672582672401807047468390704974072418462254953907123205004530061142348737500381151575135096007580685949573902335380053496279903816440070780140887635749889340316139329939731218515912857227320607566387722227856730349631087659786494023884227750813793184244666040890029714975740213404058368797721500091685855980358689369114090245108942209782855229761291093729480241586811821823579670036929514773312392754676990207901464976841113567782646600210594717410507219230944725495390813899686329664396817520390714865331498422895288058168238645763544388404048656108917707590557518743308511608625409729164471343208508488917042728815758896438070515176453377336536036412685041419245680070710562964505841785236270907596815976166891010057789805820828808722264651592506256328984319389159435226969000672262768213144756001445499200848426623185979889610683645411577303279480091516473331694472620485068172540454020393720044146394107004784535545933374924429158811698638048243791537662074281001798161083461236710469804216430209613269867998519674430279498668454208349998921481208666291009164295395612482099000844004040832532974665498161967285091801029980677376196873637042926504334693398396693924162703361489218653564908577736640518657584629150049679473574560768214049078116212943885046337301518101628357302511268248052936756190990081553476082787623398966382814532740544424630462677760261240622786885909513405979103160615675882365986601121985830055484460911080608730846342304358214453434855527668556989132889335151253637443297567196975770337034975157550669860866328984583045894228445714667522738256034354329234702691556373325035229722551193058810062948017779895467679079429732081765098715473645900763410444276740270439676462100250095421479440290099479547324623496844686423105918837562744305694911320272469756918003715356741619154461891169583720803377299481342041285866383276321785891570248498191460089425375462301928834491706572884752668936468977297353367714453803616199884481670092583025293758935924768283521596638661380485013214950163045030997989991848574076554402386918695947874016719547866951492249128328902075345786972011395647127436835257344372472272244674455459322410859782527754156049878888946696509461092217238062155714563464404804140836432260323341417766783886001705201110206638725909424959841364061057407638174556522753760460355919294431394476545477878344889964856702301208297017546543555607866503936963466354556273614427426875248459990831939885898474891802596173053631404631157937463239501029323647184972065659147156056617506323949308465869064849866240091317914945872421859738452118890797136638230534999140896978822610476596857476420758640909641243516891276360628671574276757134802155228238958670650600319298813548536220798133702104370970209790126833929022417798990239127301280954596315865266823402349984879196626035440855055187741427873299263823561937829633172605623278060978864510819826062283064916695995438782529481839352920959060330814381430727764852316012971449052111237612428073582231098171413062603852591782800061218633826233744062715200164852930128014338047937785371509694708989647125712881616323854455888047639113903512453803269944652386387695481213677903431740940103429169662376234953760592308636178490480330576945668604812112782047337625410503947023212823785039605536631400485677132957972701087656054771417087667659570243804045449433242546866766740587689631287681755219940216377800735172335923559314583699217310268972958281159960790692251935768002962511049824061265869447173985186703388351432850288836424372264834733127674367727292716041048978577032108195632657851683630525928681198869642427032294564339503912910451135417768261197676031469802713986811224874798597351845043876659003672542131273935562430338166067909518236313251798632997394433348487261545809093039767774857528140336285645150132998763874283789188544581244164237301091178710454513958187928946906912521441231864492125927145995044627191748547551074571565796949451288183301324940683753033727403512793878805890261561333138994318076962439529977632491940448048753151412325844494579555249178697934115371224432282630429471950181108338867161444405202494807635796472444045111901724243933812705944700397939140185785893503005740832375723442551282364937022905001936570006377347076631471258811131255002346934510134381266436350049318695308784120153590115908281305736375297658854618172261180145631116371459961268743613732153588357347427249414099621541370202578004500538932709682857180469864211230474812835673869194415116266557197715459087011421923852763070896640990251213137354786822729920690981169746236591979149701867791379794408035023876460801700436124712556451182261411040332686590930119588333855973073482639298161684661222131298276576974940867400752191898338582305306689718309273816576380729985844382702286882972345820576640238116736595382729323713522175364205604254721248043054060916132259244657073235801136887358127174493982164311884685879295482593264198262123824489179590254310557842260863840786788206630322304358572688050856616014809944927213281061365435914750451395912046047830015433786177827439204197122152226368514767914447513653877849482187128369919416345457779839551767086439589933998808372303402125334875331353114546831180973898413969831825186138443797854873522490208745918538921434301665082653698325833271206765531830305701414027690896763642778112432142117745298678217588397762774867243110625490307003350404197855849808138798612507277275726230939382901447145239764637378024714812565247673475148791404725241911662265238088421658381807767029530764221956600137357750693033340898841039926238447000535012206292540283524067694058245586558896671894347829497197231701051854300509379399824926090803948911482664884110457889549113140458031798126238765110436084260392613017184953706268513516234553906703378259617807665153154194749816787052781611318106191289016213276196629484792048404678747088659438016583234490352435629058515183147802316913200637073973158511112191551886119732472769471190758280894788449495707235152809545482151557728986744726945182146174828915584854451360700048623156837328001324071055213003205769406487548058872918813410786496313987953254398607814261341588489086020700887953526975629234208010451106319875504943329207628918565512834634027057878178160647496108900045707087599804452896329394147674095993465315402624476492206794832989691608369224126472093620857921483976866431376069427355151584351493563894531506526164744334111889431524603912910219992678485185334247861091306424846163876529501881865325184321971550562716638908972113914248534441316100013018702930121991614649480671368461533886742109036691007652917310980918219678027677730351460027317980992848114462868722670919251900941252786953002967576791937942839951070130630873795600380505398122101319104849473021928299193229185064243105314872023390041212533816522240985366442489760058445961324794434625450491237956511023672289515616553695051213803450243037278054243341089804863220858742573961203650822501265059924344808095493046671840061604725524807229040662716356959275261325702399197019854183027832438347842520079361431611460518025322705154842257715828449313440243614561743303518501691163138346894818325330171162297792334698487229833681212844032467812853109985510104502254998737570838789938326244448112375864126331517005922258142302835534981073273154897964400022708361609444431911252804324135104335566303344729707137337020834292243171097078696830717752787585883334660674029945684987817468451888194295323435567366368472078947128446866285818711370800141628439037899568836966238947709586083809864988480756173142950936781402404382451916286731045530586525310601285053432442383037187080967018600616103497516872506008202108141548833374194386638858332646212546953192654384052175616649834764990161146890433625098055627543684524731071186532542200164484293030403411528490113297050042366197609481878643855278024105655428268374293083970338632444992117874462622519743117106706741203428141803975314024898378797783933528507019629180743387784829976271224970708555713889239176687611454753585847054224575979799958985647469132456847916188724223410410667718671899337274955848433294150404079668149780514755306403098739252358760192811713819307662332466043599061656773810999624609760094675645164446004164022675092310282822491369006884400247341327519558241110601194385109083045206756237839818507115736606931013417885680450573883074095875729868675849561252734962128758960866857188013831754543601860686449619014784198142071000707768796207810409091661995723393650809962267663603298757002182669033889481271312400931533054475322600249323336225807397962890577455597578403230337421376338298313186305514026199128085532774135724917525419264414644057934754082262836053664887897061901192930061844799826157854201624124668456683472881498342056994362950723491121238508890996517963873505060896606906598471790232595373212706726624357247103647684755988745677008455552292416150346510475255906260288161841547576224759721175512256722524731723733955095904439155936830490187353067289912374228228759885683392791558293275174211486910625902460832076756784676758262550301879599088701531311793497326853725710927087702747778487287469589814852342247183142724153769435184482764049758076502240540103347657526955136451365999860530554581873739984978093979215302609833419195202860876553708109601262696752617822360154389976260777763518830582607989850371819409084761703952266791026169872526516645406263065322904396651710096822392125997198896556179384328728664160563000618516708153780614871815991810260406229115405343584381866665638027165145095212387713685268957131499021177467664394299125804802418505914850276243904478508557825746188150128793933249155681265687085333233483959344642856258463172446841070557555079792720965611001212229585090584721581403218865996851286897140362080437429597802756630734139935077121587175519008909550426945644204432188866553205252590382731501041716662998521786264855040104913959757056546739377848490114726273782488244702057669010690210086105163307247311798495847232152824687633993423725039860562467801386181992932995014847039647095106776481313553566236815319119134131476153631970616028552387929520025418176434488079050639823984612150294434489270732538102558276228038117262134963166319419044890773694576898489014585662733956749347761156851952342348803506349633275461022531163353778304602028102215774460652777625743043667174354032586784121497973730947096099539843000104805407827395191863673705692504218294511499478313345547306319982789840277422654500567335968949137260111969084814670629806782590802175980271192238058242285739753155257033427631059800096776270817794167392076310944755458604563425419842440930260028013577839235315767819716326142351668739421564499849201978049572870357995694004400903959855496503174424685844938334153601633785850963727816612535930078632719700452547740041701357812913441299857102897908027413059707470118594907023841066396621671665030291819915636265969986743252348129883748248486532565289616948260802241148787887927467055908839987356053922250117870928319325036836847478453690966483469447841176755453979034533239801704502593771514348486809328725661581802088832215065577700525758532425986376205655668738523541426499083147045708420660017567610818647303239956906659698397887115884894571969836811318006573330719221973097550253375143567476234807147311997272021760901655328293212943569966157732058003908118540926199924368920758791638847332031348703763044915112464420285946032822973950590275512113208158951267955253476073924204255759291863682800745531748378034868484147835981646279195699778558702449843515127914913346084586146583584019492188069913675239771086246176177726940920502306276500411268197922623076505584130058700045203013343034604755592786214952131542875353852396896012939802500979754897109413946824502728748884407326797178495875779040655333633718467621190260548796468260092802391224956301616221389266563042637387977762794498382715834745704023403031850456317154120965620545646819644782174054836701487018181711168743606778559660421379623054464815123742785213261061287717174061146778024579704182305261070344759488848551682636255415054193895354069266459979329578825147761111530564919652765087083258270813852093014620126089430646227585837075422611252440467072947616668317904690747055101978535507874456926942828706175775457375300713897622094008200313772529364507438481697508202709953852106970232999149413485045164169718419791688112124784866760217291880137382911501523336539587138961931631482849045435149107974944212043448052272827671596902908874625569912718063638406723544864603113915165940608921619592701466797236309977725385239076422572249525660105840527077271736355981589306653607409001598471280514921141639240828195590746397765600166895310207838007925218367868753981528867705635413151873480659320770005971328611990262699259822668212885774863512518223031011140713310324399059458428788762981259783069717759661040727419197585813459448011718768380153528943357416572870161158804475513735000915396328568936351231243091008417999019102607264150939363954355296121351132221075728732792112114420176540388595839492944416462683837519279154859801721928047620635480372043875621931732757112759661501822396340897575475988208474571770252629147076586902341055007410937467155702506853620834118507028794480384881770137760816822250692938236464233187318799125916560469201494812154658912538510619064926795061711014786480416616202207691839754180507317732196487336959364145208159003864849891036786343183695716791182737700044948402889410041265043818708458384749419515956597353311785594976595819256598630025402465818426283580333681215880026385446913870553988323074833443953866837454520868152827902484884207306006605943470648575604558712421091578788630584098138583947025575743141471438510467708659313304691367563623483590575129876701094330257182252283999370448020515048192213214362908991177482779886195390006663368888173307008510415719832341217592126433695226539712990792787586943101454247727058002852390468324710124201722490806418128007161889123239815692681250200483712898008795936061266548034329022611079096478456636162986988897486879021436936016651211748447968502086973712002817394231850348251125433127764409475761482670200777833807429022904066386622148587828873908571688821916109414714301995785563727629201894551353522344233418227240982579447347723782669586050719035561985291927758060767738511779015800396911550442710888211662327522019404571619750540060257826009579760723707289055457566239724028696486275606158669801154513535517497348288863023535345091313117137187807495842085535277194679163695897791151114609234351648679907566433968529113281242764040307857585548461288232171298215015497593632826879383511579167036121477207536724358196298496334551480202559122505839255169186449959412917885676186193066066399190748711659187040267807688904176099112778736919182557560516096311657262104178303702214500286656260766829017352526393680509603022493671176534830968474514150081078305015884123661453617346404875131343517319825373749746002567735683597742381462722398524281053130523620834259239665845785573289804372812816542921455079923279316450415457956179261734869257556234856851341811845817592638080017935087549443562797797261108117182585344924897423944175715087557928180125374954790414333986009466624342448658738759772816382758896520329410571881971296449289254056699008326880306043653989906351562530685716063826603269617529703894179457974638081367913322916423103025625483345897562590200513870856321141149907341075061409458268843655221535839183813735873857954865712776521186441750103037888907175069158002465205937080277999908693701511191737014983441437606060655455952719582493555876516419276837699110143022468444297864545087490237584713014054858371719505537491907802003483125241891922251910916011651968599814679172427722145700302497166871414471875431059260434118207650955858973462761101885808261310258312307018100556269949931364986591537543878251847277056928800247198826014789140042793930140369058887344143506711279077363633457211491504856648692441480098477461838001693358701443770124005733818315768136448536570598503302118239985114562965146359549083701202996825761143154413928071670682042154429040213312311146710780661534282532864176590487615945063045603801450138866186847331395370806584141629264548107627126623733716221443845947678361076955506893747612766637117692289573829807077104410113084524009781175641195528664381191593166016948129218574854836003300874431204536570928876670296074535101791263500415609081630640024593959447803719094965480819911591033664710284999455555438114846243057234046678327334936435195070857138135298837464638629932355159500258341516951189404751515194233598038103662818985231574994799321050348092406267408160396993827458470725804832335940676921137917266260234090808566964897682545222565741958496305436181081028929936980904163592088051725121401067373729114355821392409919566779971929353172264100503492435908820444629355401587612175652300305785309422530003055903172385813473187298418234650535289775954714497429246099487946282892506329530857037593012266117273936286374990793405707191174529777934465505502059222813732130209336259115967724118231864133524040213493901661658353211510730226577955707225645960187573670312458503643733985180955365315218049019214831851792701635192242921486139343114493897264832888361812074447052371067079868288345866726876874909544163534258695286918478284593021968267672766652661015423672517703571270452259336826130286660307140777143659224788957427333093386141009084408098509976059578935875668419479492785633477268786784258264267323794997158355229281917251773192073089592975472563936252574822462201700780136263056231438842911297285768545015848903167876485057948125650553514753991843689879303212287044832102701493853690609130921712251874562917804867747548243133862127602238068063438771020989481823408018692039590584404985271121600621733835553928796588023368538178857096264172757395841853009947954791310467016407983517631844682151353325460793809384666906848501384811471234674629610009210648907240352470546699975596549068428586580528276801854663542131449334423647880475712161706746080799321181929824322631485683705742327539273555905697341632745669091231835675229888840826577073811433056606404289315846528215036523046562030838452000374507780370854627815558694551481752151430368668995646688011490455120317236622359755479200904291574634949402761748170116913772386319480964785135336420697625168261465057152106676991491698675262643508449262885573935426003776516095337878712519546019920945525963034133499805918936557069126982441234487751027682457713941270940169471920349354270682892868442519777491645091017347907348221526020157781169173106662516185757650570717393976000302305972380557075344812356630214834965593397701780349774719791150490777569574137979382345641226773201121585251183414569257381425160873279514968574771684818825065404143379951550614680999787738928335411175821468590718844439130900407080563888380403817145244393249890850933828142001516743401897677001437071308486494615360987653259599994320994989147488871428451478657163713805560302502558073485584789281564880175219550805372099918676425255401893507129695083334088675356859625854775010708074035565711857443475803406311507787916957415430116000087263229841515596175567379548588737989644443885207935255262984709511323538530126448782836289345714066178982998728175549531741202720864680100420784791851576703165578693861583955865218424706011291258844747622832856825683756100264157110458144814786331358714408735721136310341255177124689761643000146963850676402020096902348365890092632205386107294689568889079369860331958355775634331474827556751906241226251020698496687481683870828362176879170271450321436621723029347059309478724504950634958788229223252393275855745020012073255319574913803427543039991011911532875283008946879660003901777320726112571092473571780303993532479919867860118652439559092467409045390705429246807630564202463081991309285559484356190725042574967970891214229763177166719029836602658054354169237055060276733284911624879289426359263789636385885345616109123633955240364134314020318288900949495288892591912115258646293624607408508278741722644981040277388719876325862655150516135958365135432204891448307562006943775481743436581776279697763672470096141714721360997403836547664816039505917628529070217560117954151669346214860068830858094119689046116669066923879103763725040016985729597360336559062187931800436921501419707297034091443392467134767153823325356735648448618254237197510198071186958087845138198523870283591467749508489111509903495856486487853959259659491483510235080588707932940610408097212153189263295586396626014777491693304033898134602667401555242228747423246110940246132810242910035282239976517808750990984041041109850183301622399511166807881463329054140588166031358336514709551383534073663533087464931836229828954547067409941102683349402784904296142433086835610282133618373304779976675410205339491261876655199242603184747040329236368327328539753784958416187627739016164985611656237930792124256302001798323003671745634271844708971526473988245649520200017537001583741806664616749946507487869022202707777740828121727304922191049075687044854002746582069932364102439998516558799393464507638977800446735700232328915316081400965315830149851058176356220503002479993730408232434548732903897804706948351895608247214276829942842163497584709323520672573640649882823287128927445780353835422019983241770845105197318489737292890159700488134451423899819042247512375128658605830490353431041448745351688523430344085660461618145288371140021960555019227086803598524613034347422559030916993849664490775473589120755937189826251154327361812155613627834309778217888001346544113994469281364369876760883217523184697012081794328180700691987761739283240540254192411367639467307697829550834184357273573539994886195595160492020280582674155919038318787681360193591469786415759596290407707325831352594361030546261319691854905166800429404514903439448569440428301188785625771724108018417249010505319342618954543934923118473107406720687615474982158446655596902629319701921681658746059699457015439969809452730345332980554120261102541503211959299957607919313154011197425557029570537867866344647207188956566966378178754314275952774184284049307075954225782253371513824905871624101937212315748405964308142699394983122602401661940243921340236276527393541226669518622628215986797486313028620650762882851518544886704931735251366298126390032605525197454586009824243689434638994408836512727926652373263329692507709884847405788453571788817439172187346445122172156140740573464145189763193247198645279460720924676777138129413042725932851067364061026897523163755832625977773025571048323691425734830316161494557835676641824665577829942542418193347483774427105238770659997138963707213493998854201138464676674728949979099330450751691639086059923811023265275249720390045637470194010233859804921473355446163184924123749045180377167906324215803663923566332056528913781077895978687206111227183497838433268303098095959951802397042369996655398011287506412838741201824442073606949577542848840079049110903568436267034919518196099192936466095343035547012298097654572892187468099633147661238299976995249497227906559030091099379699030912786094391973417986888077267159241268948922659239783228775039615826751148195557107013416432493495084858873580255771038281330440515065790984551045726637882888571368709025902533824062361123779747713264944285527547707295507037148385005258126420807258902765308047264726302552140451816019891889752758448982260580543101041024353942818233200605255076584109548181348275570364873714714887272552465017902410370914668022492600971013666092217326103072507884968868609753878774429148092522099215826556021027781092265978534574023486646170310613519403305052071101268969650852147239555909156259538099404507196730383246475565130946149075466108539774955378435213391859730060263671378326535043028754629619867437661578883961468650039660753270044091258416981770334077641644051836537522527041732521377814744520290930573180075954608463263029671535644028635581021626109235472103497322563664848965831936177894605843425867304019531431735629514245468011427686728989503474504865978975024338407714968348198117862545074088773294539130127947417927588281794432248106058361011908803812782806533410790676134133606770976783560695594340499902906554234444984196189087231295961678374579172779971778746148778521965017544180101235855540876302986291836742104031634258503988899929117965324755535639810186620321406212346532983260831611252958358590170745691799531548208839875389894333286544268783112669886329017815051392764056448484764032272819482236888842976179564332709454039699587039176713137702550298399680206673557054892978461052770931321233547848157148576763362824075839771525619203807180167026698040872202340901587904887388939875618378414881959624257800553401786327171474435473815156971508501378351383533679617077916374117826561360618187874592099030621398947205799515445632675062586303162190290687795825347317391489972201946309570277699400635370685718003794835940369686673130584428470023549599961255408125228200499185337913607590482945527009675115058201623710545984890543206535329461920406130313077811201521580568993912397487005300004482306022700978393510550526635332537591936298528865286551224856575915850797063119125870794137392769791219946354688435182174667476966630194849129346852024692884737941309842946327483703766599205092125062069039094452781709244088635447076414452422460574478950092201385175626630791007642619888968228790492726545081869588776928170567889214388145535542959231944054866119800407833206104307697722017222530806296301940365025255813035003446644786417432451109178342871904309545151691707565216768396724216152321976972549629983448198932021280577457748987578524409228527941114415752230922384933759508085903980543488379366199426179380728684551477759592883650591144015593582071771283673017674960412471180917015380021472974778983522119085600032418974129292047964745603029166651592156516406459265340148187783578755374563188385007958939804762782182535122047854782272508360071476228061738436225707904285559368836288627510093761305131442740225592904343052118026152913850667593477912373979997230329826544423372676497947871158919001147023272185768173921735887942548360710756378518997804942081631057786592328617264197265708389838080081426021329628029354013841763642668369826071551616461477133018717207859837214098965977472578815678224619518137550851793367868598804888350256102626282878761349743910126746873733045567572040329134254934249585289301279562894971338952054769968179732438782228881665097119664018452111148608650602360575530579137265744897385621879888386128608828768600766236275809455234220687429339351104536572134951767408319710161094731119060172468497874542947734470468443247147743645887809262893766283539709605994274761428676499351084343857894763312841956200488276079979861798536110752263881147760038101579881036073218556511600656297226207400178793899225211495125609965612829136325716324329604828530795163167266005297969909091250974409342869777764928245639263091374646235549629988555253180456518241174265692086378588628476231542477792132282477032582125767951462882391599304007684795210969374525188203755014428155109843687548974912456193648280217419856013562269467134316838851389826804689614199898132334206645664612571841649399346052925303272854403174845653363892375883957522318989247964568017532811925092359091083007849517359724900476495277274049561433498728601073704241642235620164556935708470281711185921020657713441755956739506753992495115483634172062848629377337112727508297910316367237812751133257432913943849454083410266544420440589980526444572992232780327773844710022989554638354095542449254294608827114143543022816953457978288273009067412187371515856096939188734232965133418055513235782006348258803986948507115431098788882048472606998338040787946068307480123633811388773529806897328004670951607960832815469362706367134745721914681960473972765807659850095561959405882498503021825406284084897477270338991102289458624563658049871921217651627982953802167396318498897725370843903727384550024131319968599681147283114415864084909389916917281804564156075772788862471853277930330528964085784594454721308202583587085350049707737683261963766575391551721895205911793313071671229287509989670763757122685630707481817291071135215837291054815350333142323193353141041575217743000443666783295848521216103598232062545318439480542657176643138291667788723230354937665915670015620920636276515534180990088355155004434465881051865728169625300127653035029724629057972072431143661591040702513658421942930094730272524794458598831996816849387064028995904716758020138944869738255268180275135064803018257389958710647088081747535547233920802818147480980042207981471816506964422766855663100940883247520914741435347996822139219392769414760269384620708833042079002052983286989294859602303934079118072272227710972644197190973099075481141755952920306759690865905891239483275823590162380022749410728571735171778562056724598410162444962541427845640247459953160361584583360739584793267210246458061087814646687496003976602688132767755578241630971661471095764138370738108858902763599434357233110375369620283612601345231213974845408201506011453364822961008693732676711933400196578984247189637281357242853068247891320536936798769067674617488007158105344587675781151971795176435461374777550352081067459437707694863974521271142533537569487717754793451113535502069969919624154468094373298351861044122445863281990819911497314521202158717418115139790773596947802793224309670567698767504281757538870907601670074645304816039039394826311005628433717530806157600296380472047060246623343661214394824924575074058198237247484346936502523144615544351491660680355016544506063790591910178978309052495465545704249602779657150053352170589422851870652178764078242564835622542712715274656357312021668811076210568555446827864363646562298992021728380939294065169074237279636722954613096375982533739155249290901247686752282873913896739841047666298610006015815068433972008470464819329242802352445720623660996927362398074522061314620197936146297555145304210131997245272720855491924103290623280953081491173892215191687324542168337076061569439668781808585252184984662175855495451131682512136051683166099513892278936049576866106264860533348014381751894918364067704395169749823785662566729967536547112657969462184939018626656866060275805093004962468977573529980092076548627716287056293738040402543291560916279396184755533556058308437484231325959613412716278032963064204513769270770876395513113314628157476355180371020666619989684067748326718907571911629960951509450861791772420056926003676688900479792518091298020508174984930758009021661755255240925373693829103723617733647423264327806508700422617417672940266446976089781378869156022499037062444418720015345354876627410226860461667853384249507976498321046286224685601962628015921088955292739781426020704256418084035344238868703612365781888139621315927220708598733738571727387232363451313570911043103627239484955689723063808275498210621358018569293071256855129895475593237200826722701232033977208410370416246323511376273962049389912639388936883811485152863151714882271837226282776512652936060974980621311623359611760968743634883209195324391168505437107168009201149502032134630399252007639944098778901301683743244312659439654384378108737645926063751455099475276024004479472604528969097246616273535300941794897512057020022580290186829831619963472874548441295702179757149234907850626211878393856205756054753342842832484271079010103290246590113659986354144511009700371761352182619533395612893314518863013469518268130976205632759923995964594231772192027246176488187807833939169923656294386497716117300473779124852370231115824498397009500513825035163201189604163870844427851843711741675153926770206096678108100645564954465391075223056062686959667291496531579425576573990860015558375781971761442846955711360812759558340983868444950955819873840037795594910776186540332228541099234269944702567042281329737786931025292042012579212716727564091719222652861083501539222241703461928947348769773646751753190832210441194778373926835852679485127872783553524699150691549475897380805751897018721619652652334565478038090410775596121377095784915938135047653842227354188022259664084941423447725986465137089320051544586070666941304276194464573636067077589288691390589562026694433022953744833196964806605393970887285942296624100347821703732088114093010796496633246086702396837775785202428348385478425103345329105979018327649766560661921745586243407244156078507347214807973163667291862050832373812311773594237894586076992617336121243183739114511184569015614177731247731816164433483003278473478379690388940112340349871024323121264023408230104704601370899823156185137697576647580605553921429000164083145918996736460376123237438838935191498173610408652182159199848082696509766626410863152371563766512474078794090292923307723374406607476542386194002199327211687134424561830553093352447238261415446443677160912126269914092935946635682745395447521526048400062527516379840282521601955280270028186270305819454680015115558465585309112417197618844476390850838338825227719459035882696460713310021754586101703115877077661131178339224369204645550586849095277037022641993581116484053543999061372725326251168108111173144391305531188669643821917066443772623886027582380613437368224589629116974349939440861093042422245465657516796582406722627860429522438240677126512787044111275903889042280751499444903845716097066692447159049747663286430917602459460223587803481527396110241467322681146245545544566733899036946319155009811836461251698540792374123568949291393952057213526072234142406635961431361173210742736586916995050537935242262400149717524250028526460381205613376091258141943856875753715715472238495872998213618347060334849082962192796108829866715150431766139356990384107340048039463531992826878173212554555895655474039116034162800884148988736600194626361986407464021484706766929802036894566002177919136587301260642647154317934329891107155587441423155688949830826095606310718205998035478062117997293906455110545190349861296449640795209685106032442876584214405736062898756299353463149821067194885888127920867946333186129459064096638159748887218410856256240959599979608045582215747751928181378089381168347454141958951553892668739872737903967924079173642254331974753058926233299507214769023887375224699122462094346250293438930239763151488142258614440203466633197323756094447581925146105015156491217542896382576259167628637346285128167592328162072532166983010030997926016369686473340687972799650101870093669246818973374488534485124351745320592686335220645892432971435714186158591662072830160847604295289477850694436666410480426291040211387543566812828127055437148482569812903148635563536027452636018411766836624983573556893824188484569209837029197052415230019157778556752697428412192528003410765388199500524263421164813493180228665087675154601750900655270677434007731444129730997972040702038344247797264449351094579976756285304100249275597265790005370539447875978167015717389368176310151225909265335565370545261459682080942691231977694468704649659944406723431374190823419003575445655909795967908014630302978885305004380535349578870157908977150009432679535452507450012062015803860194923924670928329572043967848009330103413441749967718076649844076422590929590987507101926916454162410255739373253446859683691662262600634280969338668677736142223032282885078743003534886720863833492576538691282931639763208852985794394810782492240654155171113270831921134589927902294824685903500371546238128867809370661898000860149425222012694446530842826546236564343748124196728662066861493509670708561466707114415744114427489671816822933857507526471954673981617055131353634953019735936851370146666523412234874604454220904743905632638631307418476301611242515931061830627189419866345498661677009876065738601972437973126124209189360839228967798075501073331720590600114250838508238802388513680639280362164887142051906015753861400830372735987088001070742220258838243232635651756470645494439691303590300853770872923870249377084572807244465158980662039810009173662970068938586923456831526102057473590150327207564666053880973290229025571005379456215373130897678213289420410807561891775698058362835140948817901800023788467888662897118499432471023100285557546883972787420267683398195582623876573162076796040905854951566648879618587057691252929552833614351008803616757359302896343992415530094662980943806548146438833693163925262358640061059182305768878861977614538498021883233661201135483468915015427538551765314728708758413779883978867418730686981894941092815787806544214195504404755735158098329710800400126650147224495632804541667026703971822618481182544937697208080132383846806561731043236526139441485731491764486810048393102441934159869872461508096955193983123894722462464222879788198455587051383782371771342652794624367954156926677651332227971782829958721473297146929369751375985888605966011657108695455563618230997794175191766556868602633626608726329047703069111473459875194923943903965765316408848904245819972125423427041519877057891813250222839891577710623514205627694042401336388102786677973280423943192509948989753354515680995984148060670802332872179728273220554172935171402676562678167732665685286134264873358227896055323277837103766021835055014544502712066368519059388082177566349236392902756665319753784253144480972813794055220690685018922981385271062009301296326092421271036068030675631943661710259616703274748526100959011788211480185663575126797168219584494185301619535435781677710330029554382239119306491205397100569933807966866796022969615162560756350541170470538333560165875569052746043222633066405183896990567188345123261773584760468536611150421642482345600848645115394087159504893902130395958346054974144773743747256023770182790786026263282810570666694292002576962458843676266663810797958821565835533605207506120869547712696682935479984545454030341182879732256796096434082114472772405953131181472987319017282456386785509294454340267899550278678401672475444803220586776992890609995408207938050869965351780504813886980195092155401884016780171539078661163125012303051027997149708556167999607257019549992379135252153075852221131760492405355846220195990216267655790080449478478585150694940107417474464395336874944656905813391731949434058483800354372926955078204043742704751126885318120639316967164746681648855206758454945126312047024530328361465474902472371148344768203070019715849471339590168049774843989492513521035292561391733568586998319519691738572743103795441862695990532159047689456395855709554313281129635338683128386343641543941474391719843368506393291146165564672583911971274093330318954828312626588675655690736308948249717883009478616996366549763896691120415681699436127930065955770487798206063721767228886039259447003361973978167443351411706656420399479711608191485571505513510963644798664583304331655742565253416711466683467611501363311386367004054875043727266233347748597137266956237520660215784783538523052872175264925568278614642703770536412166527924352773938940971709844108692202170406648468489248729748563402740968254160635417624171416988933054283104234684150848967234710578081870204692821042486502903632129104508432506054520667312264725927339893257980777888772771312637289127659055277929019831591011906240600020803935009431302386082946242485224186295964004261414658616776551841612052001974168269563845140014554694732306012637678035325274660646205223331964009629495574224989112405673313058481523128740796555440165948507599250488261594331675086397412617279240821147288737848270575731869462085855705404742016478818910348322327394131603978606016231742889683360625683485010834412209803883198933665822254498459666748477156482321954658791916549011188758279386997976450559703260421580688000677659916647255526408176683895382209396767327095925440271718940638715793883246775566964519760537260252219261369331002556634520091422767626630188135630668379029652250870709191951499797587836750380056682242423013805862209954300911539943083991854083715762832195360549982917840495678986627754034737323294267109982112832086577454633915040433574849377206026892770985076414395335196671850948998595488054991664169884998930981160261304114211931104421922241872069930230354386693134542994788699587605972388302085488900845447811988338012620689444156548962565599277131015421227879948806306354340932571741785248004498253812971506881758281432682109418595111802486972255012728597579056522167057931371488299411591312997028175672569795620872067687377945166013488014803045929696585532493639643092667970272227956395897991535300835610611513381027056918373754135948941226071592483639608039995692864718085301765234660370606093412681632314734807074919180108674435569477653781950431902473815836427733110221429354263285561127266097053394003616085021835656214633737110369373227542852646789431127868237929133600152861473447398240596166533311967748822338483263150756983455564366008851086046860686679829692035588250131835273994765424213829293291294456147890980933600199856786805580212457581969690810225701419520552369934968738059971172015866346797834493674394830417006154356785818081168468873682329970536737804408507187539811574994337754525686837924978611978385244704983223590795241859213975777101702563321969955466622777040852320413689640165841695148354757764570897251799251359989752942137605550175767049050768382022008803933728168223549430797565436312995569393510617959680409498355011453959220914096825779824298585720865871853721145392765618798321214903165512164701778343609456678504463398062595695739435257825702123347673118193756311498241435879831731206419196747423134507310487323179731777241412460526516717430131105212883418176788590751276698607939965992542576077885977783850216113101827376290750793335607881313861586467588490647362572392620901710962816126072385265691528488328346815023649306374807595567728454315401294213374494234233386852457976902300491219458463405094510987325769543511379059775057256821947831382817611217190956637597464564021603212822846439578032430354263694643576095972449779597549810678858833666833990500751648494963803026321878269909040224136344256958783953404558101487239110697600145500478178547551934902470268789872494298376018025181197816465777125657596906659673366031097200398283032563199766767370344448266824111997386527654503661536455460102444333990886974556599669589762418911420117949641860351005094061838779238123626729305934340883705964510356968563080465081767152411937081624768704052649323530361142977808180637752712385289060741050791573886601057580931123922142057351662996086786991728379041592923234615382869909888135886140793978278915294744579377027601302565783908702688926992524079636821019267809645157609586344670847672352227884519142861557540197278825749744346205846319924234717226858128793869821087223177350086788781666421664432682600148929220950275631124360193915987122025572383218825383970948327779014257474765453938703637531797609023101144379021471720390523301798877944967287718970621829325732783004188428421317974792497433866823453280388003000981269274578630012719391277944305030043791413047130891100771578497537454491977818050030451878588254027411675962140849416253758944791991019874761795979188380361387689024769306754259719383541650468000748286822064811232965542707796486632035397077975856704771986893066900401663147221762694899645485762576450076228735030332615741360306753315173921023390375496570564248302318449738048290841356721867810860698883824353439685686590626920141521405174138493701512014107975678471392598795268348628416511845265765341032962016377598806107805469980239896631084992703017906582282681427571377334589560783163569199160805293992496253459739397778337639930822878890118202322300050886960543244533737274435653986485344636234430878267854287996373547504003662122071726754431157422446258561735594393203010032581783758352684258484481154397245783718304525877980403221983963374506363496991259176591788126434422988188002375103092775710622947420052485182319779279215227133528825085201248417815528144043719171029611484922009019305073471005407257486127573530968859703213814159624459654026606812389577000794630008641010140385933294361110472339944941586153016734269515232282845599810812624986200838920655632144404830587314456268298926493257222687648001202493177357218551754827209353789282668191682326075236274472748490965574834219531249962104784565222609227788145192383807134142382355502714542592744548777246273761184771872425923590567452996649291126353303619567889638140840450823894073238799009188076786316795293007936157382333215507086301816512682977822955686164237028864262175651525856983132805793990890220897385259805753359157989885271981945717114404315630460579116167117855336165640763587608725273063427483116034703171580216381567056885661438640487794334058537983178882517137267840244019509309268178872857491632555644455941742392191214560949795345701932769871374426488556475858663894279877105499717985204506939425614085420430182410663492954074427785967473257877538687420590497552981756705132248999993545739451300258985433695439623757904443878850891428604639925261660418396848527899686835958922597594402360306237226354967675218197502933453509162899354394601085190778331219061198481586081659608142759814447878929465360517436882749787421023559695429492340064916575922962223245430578903675414739788121954591185750991392867275198803344910386991927657654314565624580209410682355843598428696791032094112299996003559091798574445236813168135024336843522730429558235654780534970593091294845886827884060955877292433321459832990535161234491482793709958949491433988957131343273741121883261142001679490047863984773108151322963897364532187445722182676329005504775384779219584330980176318488237018847424465560265045573121943210116703198917755163837055887453819609211093041576461523420695245792247664131306983005414757001092724434363496452804432917608310709494549383832720999447784050581406360447820939971353109605421962577033726270452167175871946440504341977746290016614212107732217938836899817817852755540503916680943075535454052624218132420968729307962023879617582727229734715017174653113439186698889732454287422546604851407043224073731019842273537638359714045211568487274098352268470655653330288110009457785908992059667309560618976247073256521527821435426731681350157394403682316296916763175274392614962139165091582436396152007352269504882910145520266267948916842114306169125576613805755119820781412747903248713428631357001458181274431392598238045707210472556973263781513203621498926160620873636780654291452350162344670537466194250874844932777943777399849944696939444174271956806030314653530528099260385387791392048613728086200469779810708889139740603851930169318174095526450009845301155588882164753854524403933508856867611148461512535276570056950281985315446153129921522657710575505488427197109708718971016453774412334508641116210408457828676934969691414261049676838226718438295281627787090770034480753959599399328912015283707478554586182316788960805549871165980916045830026134979554409656961252812569964413756465423426701749081455617852536007900345112371049758821880878821199446958503738356379683372065832828376009018547389028157177040356282735813066753416304824667010984082869808340733525886177505478248205050933967284041346623140106435980235213783948938045430881166530642730577309118622092918370701271202806009417014372933302321297598045220998164595288114817500084860757760574244551286080471530684458390716199942473947594349578409030701274846085294729237020969139714811469701533357588262477987759352033522408645799128095581064074493575364165059824180650130715859899910035811075242099262850375551109985005892317888732023701342429465204600133801646509510043001118834710593178250725461492513093400725010265135813101779075223114104385083529879135866399070648926977909171731742872279173925650688863158291600084907244468562148016507790653257100857539011726827955117527995807637927348840533567170006671195786919369489968597060421299436863266320148648173953920647636952374450874340307359867043284569324693504925729474268575183838263456963923318032606650525987232643822393673647265320271050755593410266557976479653009978002500582278344402229034842246025005537361246471553451616192354394340616709130638508764811121266104901342404380975595573015862548138621855439761313214305811650426904524544139403825048620842924438144008572020585552732572258272992891072697919716530824369873740329599569858705316183407124350149898301434474521086494276541547556368644705471366232797480800136337300116744179381193982498595335466554513147698918330639136531492762798984748332295137894797277740958293372759535187076802704627963730540529617434378421722500864435300160611978744387968246713934250397729381956596450509167502379734814644802587470035311421034119946702282627186184307166524689365986812777887222346981617417939666302349419911539028914021211079165672971007525350316580769963438269458983990420166813053769003909247482282016778610431413165847701452797090521950815052293766556682915253875967314626572231736360396838738447164327701091483180505279745019495708716310693430079404263580007691474845052824272311425647391579658715040572860060773765026412336904843030764293488821362521185464610188352366057924130099355375411338810900005326242186875343032722425481276201702987673085591888235931060038895747856533122580490157620052434252479764256473245769644838542950761993264737112911191925988601465877158523059798746506577846969355838509629335016132324529735768316323337143156111727305185200457466101605445452993485863875116386181946504148029614705319863556831675905609093946881151615887263666516428937092773328512259565927416629386621877176391051536741193988477430811727650114974180092264898217885770505911498617787306016245984699939348941327285724072015670194325388628131706324794270591758237682237651388073248383092245674088353827958916623657493835343688147064441300350487516545042736889035499682154736534244033565473923088291688612046362784499744930561384779030088888174474894569744286270206818548653352163689142718309394730526942161947450114653815732017617969274298118696217645593144361130796702792279336707285949333884040220189241654267825659982308722381361178963556601288640680730005867936677493128624735247659564862008278938162921187820464223167454099405415652767220948108306718079217661038987044823643957686461092858125204092630596975084053906719530865741589526204340929148982213238903951378683811366901878655285013929016350537940097301411673304877848749044699962576130234778120478509867059143217997956303075596749515676208407422758575310425283819635842780019800871002168466390297114668142419071393632505523957545520662344385264372627529250306597089819909594941471172457644832380296150701392333048800908057105008081056097032055395370574326768091356292089515641256633784102650594362598005442712496150353982698055694978684656440440712586580801986433274797823834470345182513493946874340600560312755277834463505311131763547618534866430111067740365609529552355921033777925719121291725412827215041849181072912794516698430518184076683162026854436584451722297606398526440496190332093641971095927578785054315767138698011346290443774581959115730803677766322187896195641932125734840330636509450314936333573420385242064063374582990964019300348074945493579471422069997516104915307782053724473010981973903947218591434164843300360466229179067505956246908271873448717965194715665400098580010260003381823294076607860888701438533770203680514161807490273244970703303601454272629541092440226769875372024680056086022087790398758543327491294620923305626130519890767093131687559542568948438851880180373588303976416599181950690500992400193085509194143474766453036149981491931327246461332475778615476927226383962299366004942660762670256130209791075841389230370180645278287485581647085655675377332678234400898467009990815155051435600404730384162379567010086639514922399542110141650185787169617049388796881902686159556429728516587163954082854630532268320030620088183046644540593629340587677240407987329022858910290546553484505241379149091591683765144739236159592491183756928120410647478031617145623601008002510028411201129141921631684228542279717211375412881514464200302763484736440043131025560534567530850466945564231774022672898593729701847679572159654381085550295503836579130032232902143979153722099945116959749897697853085558820141427865657103154677181964766663739103798325547042507292701109761792379929580830162340947874380766576173381965822243839663629043349435347129334668879536214492768948709489919151708637663149387713891116442080949998338742527987485422133225712165100807459681628091041571714087250209905987724342064790540649637874410635783857313839481357369364006710341584833204254894761799491833493355409621709945828960080613421272339311075709386145104518749372492619840496646912647800825985715254936904049244071207594799200756625026141318880331889900146226842064149468687992048388364629977727140054503884290899066027102499244845081117683768746692327710590755288423376342626709722576684913614508650210873279088756436813654657699114680385160570518688230154000354475895112656288138196313788133290364544035432632873165965626814675542777024269304520673998338358767639832187732108336179258846367147217858261977649368519168442348056085373206416075009826111851348504962782968275079573845190771726270714276879852794012206799992951056257091162844363660409731632224081733174425272144221882422307703520882880120432087696036316493445304562471073538820409258967649472533951687357335504078111482590755141915600810653612843618904106848018794470833006775343463990466206899860258664679410259264263142702696741094985873814854079554892771197461568805749720046403065462103945424434780635387360474174869608053217237300456271544745896746229980402088955581361768398598535481351192287945422880975355747733985187463337913598713296559973806763697502814501643943209228996979287608550957610338608634513411628492289295359582214488464305111074276482767525649011667473130259885103155773400608922212833017538618890779405139604116669343105552604515791208657649873159020167547894178598477513134898842271457396675333577788027702656727862291416007485920233160914398868530000328723357830030391807637401308257566226868574702425266659911053630884038168300825293103561989738793589600854065003801967004164247452039307636336449212243869744483258404259057116990534321817563244056774612193487032296356117568557674123699671365644795270207168765321210622491616478724994442156407807225712081953875204495253703373558829643006371449904904357786184163597369517150133162634943054885570303909870451602239302682757938430630706087958881167492667234474541408929084470488991112153677400423209314511526005782693121158994890120908083160985658123967438605192573550354076837106888455153006627991835511265288996880772694888795094024126176982120972532990949699564030441403696877347588807697000033473856115655854163161053977983117778379984090440420027102530812937591577004684917934079782238435143028913064775853515891208599972960698804842378669628093885828641124007840489937768263458993555224999089485924830583919793529102148602002054660776669310373604961407295989317231328731055898275135935290792090369053945132680686688496578737581241007347549784676559565812100346601963885857781381333268474776769831985938966135185173980110714812696351757451749165547487252187562540734510083894630135828581676000528924752971869994305816801658485395889373093945269903761375650872671691585523888197127097127412200290324466167072463662489601368169710786185987018051985781112897384824944436372531522509616932199540305440873320575963487517712228409049063506054012832896205457741353352509470987422342876548587307625280127771150361260001283903423271610224826056382564660145743365471986263189240281959862287316538978315554304519935024165619529544685467049220253514072606993670836696926115731257531720866980758808158118445677128704314186674996743260794527034963791113674596486783148802700350383667244851474806689824218249316709219421765370968637341217932149518809096095695973780210382807334211593911599848507012745105905572873402352639071190059773876940839776104561068738651019609693648143246537772639163713067680548021795262743328854881287620907233100049514821044158432424458048005650062229123718127085968993385683956578690506076264721854640490260584854339163566565105404843595927405423976774544110293180559614172290717360616873250512766742794209441272056241245811434923891396318491412649321275685642021637459857047746713220970179183952418399690076587121030515618844807199089586077937942703187387879123209971005613554258717347399016624011526731807263093833658585366866165954318650106999649431698900390850744233850830504229211556449738912146294113892761357905510115122838616099728789054819060956627121130377432337186128417562530799957376013734457611796801269410600559437959758719958390043954515252752765327710095671406227600769068146015099686578141278940034471690183826065344855724005643134068933011424507433853484364221531142454759728595375717815505973414500658014286984571499942717698560383087688943726457143763939000133214525297425416387438275154523359906927104133571775174956345106073782113069844123989506991280216369746672260128527372380639065742567933782049535964964468793854921695643462855629312584813997535720634949299979268754799726202256657777225842800000661170699662051476525949049952357649081226585292855968096624120142983245912785936741525207526041638274527947588832192757076371898892460590515783452431329565485075435468689436090156437807021719947552858124454965707630945415632953738843586767330743597141338053533264519355056528257939673144809561431728904515154697321897934088262306193784881940676433220748431754116088457392502656140481893299779984308644074546973030476038684485785982288702495084530124961035846440612676398828673443268649625788282459794233170892085408952241235117877094726427773431362470849645961915304199641789533915495173568560991500874284029375488616772420489901446646198210765931068535083749637688417838497117381984700178636032555734866890418522839446577810117259041906868655485832490233945679965119000366464622004797640227249952538223315413763431134114252946889406493832949184095831256399545360531508510337517648026300734769322730250480622888956343068610438368310470317587002384932756233956227173903411856806363059735815017764955579592132548208654157036487013721907735958931662342284257381319697440895866582635408702216682623843635508819425220477430888852091325018717781632781331251669328314618816616982328450400159916837646722337828702566812208612111538191375920043210068593634338112993120029257005540845723711542863897431402085770268732742404287427531673766439798161180127856644525666157746308007538788802147770600163738634921788665557604550985620631349472978538267137292740659527335693790174051458278225226630512342975656057496951439914539832269582727410563882450834466156702350365591553126883281274231033901380447450693104672869218173646185544340227606859966008077626859573393701806660423352586874382948776421047727918796412011307054674303287489268735784025921795621799247483283580019921744828517804387577626871860119715226415565926217433449290591734577162097813246921762518304683431201334281152266287462848052570927785241270816605921377151612852858783154920473584158509078364558852263240833066789929146369719743262508785178939824166100029024821290805054720693602781741831722165437827379120135710354582339262797388374005603757952661953594680602981877560549387613822730134444504658238941993328603199827331044527029110005970804524030739841095265478628492263398722967633684429822747706202932167342639614972543132299828694894480864743133534242217393694087206524969540237184614060208424152801826280162063359823773285803152676160418196657633537589690268926474200832674162018809734713600449283888503035872737435518010059791400458146675889530715479480464737625590339166122067699935320329636022688341219014865991539126312521696620756150613384418171415776745342236921276132221101115610306745885866336755269430862513116443060849692511098804803926398065341931849290304061245050826981235589608918248579832566815625042815318974669561699561153364487243195961742159587350514790164032928444923287123529877907699937513450019032428186957621169232539881061229841561618283298504790891176841897213736776493260496318307568712870931731706558399549409395432376041838329895289313056352771191224113532835603870967628387136607925579722115134129345596363994889370147241607358311740471237095332575888139783381207341104958971291128798856025432104660995298324254067215241351218813760687835773774033826042595934005377598349284207394773971697864958896940681899730706338836888391320078254538069557866071311052033361285226270117859082888387911395866006681437413124298045506192601894211775760898249248227287942718098278577589781374680213097019822304412703270416054171805978480924328781935711733041224634416333026364789693513604691220158561576524751660905237375491513285315203012239468066610490987849312548366165141603485080874821572314973128729014511759671316942084689889149762540129106152773159361684990536004025203095064291690652199004804334802884481934666632767419353514066785100172174989440891804940896541851080783065003992943238496290393391359290993367133800367864163626592839903049497089529894463011004468998916100630939812389782545295599388788812323632485825974412100808279220306367428019180313792512659381613704529294332948890818325317688995372587154237470195265427160691872263478359873515384994876684526209955368091416981897075267413504990265185623694260073427025148412371816524487567799322169366212295260425387652591909315102784570622383041977210066044383590340214602853645355496206495766744602570380461030552219526078917872895458870675941907035755294152546117577529211824888647657809086296096579367699181426515375531173907751043603680250549173549537087097487913235898245003679426248696335981768752443284982919888422934658873329452804667256576406782362141917859435605239496522710225875743212249733296629808116494295879038994105046702192785127596320225060311739944722596825573590873267542784948534694144736009292699163949755938223614511699330788103767371762623739649733643715488921564579481519498191000052082242965547740681459164398814283351675150725472856862838866338422302200010353661363973574339509202383675804916045807062930913632700882737183037795234939824595882707184097495689860846986586002700833309234057660272671965204783176216559510273045356923538151364368846846302633756563874762748841320811090523808328881761375891044141206518096952606946996543521137897303290526633240866403117305343958589940355102924070961688611892786280298943203131967172477587430246657226293904841143590744799562062377888904436212509834374926342804195225926856912313717961146585573894259018210426685952918818106294112834822265661940638655434335960392798229517915719282984474183597037746352006580544892191362203772934605349526485035430862615707603057474773409495968441128371792247268524196485249568668272226926698842300519437872020065735048254910948503059505797959838905569297737685002164210707359521138274074590538495298037408929235534911274288001849965632377011767940067126076724291175978192263618295053862042995793600337659312663687130422179389449335921567391935794994018665765756806287125859331317336674838091633645457805511895550614554930424701416910716433080103116373833382636539945018152303910940081677065028058050764546827150501348306180056019066724480204183905178103758898450665739340479109260048417002022939814284189034066145892495394076955945190380620652346676434832690391358533380608299145653751459505781770852977311301274582612073480555649746023364014245138580045360756805549726768702479146026728246762777396709872179400849749151288746929114629458149278749004730795562017344504474437757435920131853946414345615290876667121992711356625531708522359510222150589259997885430738932544217609215431069982337114714651689809116047905536112013075185081785967643082418946113573522684265751002772340409521696556370648680107283139726303931355641831989164631246444184002940270607279222112677914193356704037291520919129364706274235303337366420080872372001588929700104021404545463273569962058675171745202826819867513167287979900919771448051550386315080901496841534887920481722689147641130299512767817479355463064167804852507610212944730713025161614019385095403626493551114573391795190077210613442669728370324478705096030417484241317825793111484867094351920601843638214487840297421661896581630478131088204538425035428358492028206077147875508487149086727972138549015241930085414536493963253895142629535407268439125269015481861028717837653339355401762944159925637244158435540451679235696087995400073180556379334512248519384827209361895793397756426922944910525771976403304262332429736229724780875888232562090562589375388402256882566106433119061304010681875160577408087158274554629217397849960708858734589162354387722042442332477422876387823707546986501313885229672880691950007715676793708368140990148879142234494061448885918410490233091819876968509778417111674454069459964811992189203316189267134697926932353693090319817079336273023288812516853213402657618250456875668297315519902788390511537069278335202233451490301015176360254879311364958922983179949805931132720462724617680288994770407319040603138158204558372028590525329096030705502033953992644778194667249466148655290178382999228588797399504266825943314345166453907895252672765736909967553921666123901986405209747502572115275575544401629375990271355697799748109508873585748969035514423134428807388070629326961727750524046672213669782137669734841267528872931277702508545641469343094232378355308568198003316771211131572936518892495911798454169370460569045304938890855948779089136142146206926480755287585264464800357769547067070125266751694101994308768592243522733589142350395443499954547732585584811132554469898471148956244550422968810321285889198339447848377293450031165138502664124269227993648645824639815802542990356859253875788515344587190819590114266315532580504869708339387593869264725845851038417992794148777362350853975573053572352263622533890382705949956241303957395781338441653809920083512853382534266475406374070681677842882441446484302410458135991741078087413379220497908519687475366523308437314872244182238723491679099300343364733345241928101039000171603775772331860018149278423605222808705040660879529178779290309381588163837280365961044876871838209010397297922505617721600913422716099906601085215137929011260044122740978213819962186988096138026557525647793436103272282881818093087786754149429103860251497291670700650750094064824082583112213639147160277797143888663575671872045570643522410134778446910517865328486411613357244597349943521318924037064515916340927323235648537685363211944896745287781776219309403737162582157940192699898612430787180357172582812226645429540966976989064496727032299199601538651737400261492191858379849857786224760131806573820404891730546895936777309770310248784671164571508195268554720293334424640379173720713453106608943811883266144500554180032550246091769340170512771488494036024167509494721316642319847073964486841511580312780549620024967636090132923031462503031459799355785269816329571924219125380243066086932574062114987288350627900657883014185984462113863108757887559483360593499198233667365468229751057867164475148201127064141474454425874228604645613472311883673830468987630123855028393652312840196834428444822160527269914983118833666242963169993583451918371397455239478480569637459568364162480612343730117652070879791780451591479656312071329805488753368915287524433802661278278132531814726660155710235019786913914977534539246354107572072591448317592996352355816973367479420643846523363872017235554703532383146680953152683808179602524103810915207514832829746824601286254906367598034419486502442126609922481660435098459611540631024909383475643375298755931885467190997521222725652434882075315081055416968311327555350792371771448086859947234422388395935572857137383361365611952804024099939966324570973902917088161005589776486495628604277054125951432423139843583059319437692828489872451307801714826949564448877640624619140482703047552012314957612715533331148628090159424831415898685957151693416400895239280962261920544838136631596022873107081819413177362024851515363075174683532742318699996141277873950907554791798855352110347132238338817420812874692506344893184091499266532867988042744192512891883302633418048674113777765258094518522511612170888164963843005923281947939629534811247341796180467649679737742904770190632795811417509216070156295532898317627165075142504182983966709212879197920489567400534214764441020002168955683620178869930118506884244986509716867510176812060244806303042688852618664345900225672929148076276963079895320598379913460693216812955019130963850361696635486159349177954047695630980233613391073934503879504641589914077550131774734881089959472349080756525929673451976533033936695120067023803274738349309324180233803462888578169829341656644323334906719622457146986300502491791647620530128536864327389043775691941009423234386700439772308141480337535739557779493140151073731525601524726234074610399458426452651617453463495103694246404352730971629494195093549751775366943169644869119484733720449040888994556638595559010526782478734603992765321943525404038916779836690636822200992916549148462005030609135791852223878742602914421394350165423450000284241249540719000953067714910088617482613302798187024145811447599552368160186905955428394447172945641380954090905100659341991194043470985894685416051136121160381227259191080826496458449383402403521307850749657277247155314149913127691269432358735090470767075850717185007849707062851575525385030867921182783532497815118051140567235158351106773234317292617421150839577683862261404936009812139800656601265522741933574258333463387235493511451762780211854713699895474229618188350115347295097259779344570649943966289263837425046444827785310357440724835876106941666397211750064063204235270551106998563955984937493886806720119373267678364183584227369185381604727355828251998349432552072294294745235170486482646407133266549349661148593362264032575094726509805843943313906294301478274532216939966379935660510242192957836794655424961085405426516600672488067585767924940378521302502266908124356341373584365743001333412405462304418212334621698560601388499457300951354119186915866386721429203976538564357076441871583128467226399543894610241929898295099568639665651611273626245478391808557555505182382920431873040185187781437852460558948507193722087458487354307197690018406074780852416640353401302853515062525073787923693848092799941724479430999645182535390970397880873335530979259396806057024265337178335040604560718926350383167258987980147359123934603485188980539464927740669642632041818136261104630155293816201206881325836338202715185399715286262372337342303078878157626218214100488405496835405966554582906722567511996832728268592434718659026809121089901753947196583143994370095973826809850993773158131640468461208674119727712504444718286107346874207185765289695521270721053431946305416020396261201142436106907920901347969243786725363310038812975966833025623855502397703797421370609453263510111055091843146624471067888247527714043499907445060309095078812620278189892605310403134517857689939332847109651239670176863268080439841446854443703224116212024943033649517164810539742854230168111158651313840021943566225086884158017143058982048967696722734774418172765890944225917712645109724779093416715878139282226129273882354535246826512463018252504210453727404840060154282106460159422050694939756377878976745340520426872537081764013508838481015985666599335484274643736075327081160532300022322498275857328790442310134931417143240300616788718693626755666144885327211812312863492314567522935284186268378914289677174627004750345097191114128041775806861587938732325224323891999488581941159840608727261456634322252965057243707537696559920644887700969001427183491306905298669592726954654933352290091476925436090154397993077635415051057690596689128621360200549865037647272403136228444086230069557484370799081740123740435958443785536850535154624217176316513732736083479683758098549356255339589787535714247990357619212925260592752241028330866864851801852440637874762076414668378962584481208043359984497051923199143267018418384065024583524859497502477696440101852367238192668230095571211225987908813169877866914160076679596046719486148701725728511848444481676807481639715840827676701182497069857369496717956987173869938400222062599523187657548411706581698304660605458055085957707168556217041407132099864339881613730580375883351166461760297758581717249058720724570698309368141036821792506144668592748152201247675948108562223606994818600855569452306315760900703221486842008538271109264061118779987191949190608309544254627471255734561872300437712218472547251066639410991786767898508605522653425440939599978128617135251114112121548600577087841500583012899471614504751973271255159716214316436256604677701485771514725505462129697291120689811332595088131260743347300971369066735210127374108778592173492729786574513921112790997293630919536827860277189881950446921679730921385976651575700639517605079873827514715199066691010443102014257677804955119946453342000866789787036522484032037739997846452961410612445064403261272204375715412423736300682938761594621658807630345528855246654512389872599511644689150786608616140812896684156810382699292360327801890917591900240262179823416646691689358184546590419597611550507683423516290574426389067574627955363391692988210719073802811542589925112399921640412957703100323455150575823739896739267296100007448839020254572015872232487587566118877678004392361487763883822603988609833147228039005884559093219131252150407491743029498927640478236307221833053149260306625246607503403340225372920193175355207559976884608709684168925033918227796573334668179251563824716000626801973076426399393595805174534298691836772259256198602226269934718263061339560536310841126868599207320813767556373203882479169837030814507337126065363423476252463383224088285576253380653073764321955939223664587482082701769120763281930770244527952608488879560199181347516435457313350622600401282094862358025717597281300188446894465237607136301706733447393398492788370212941397897789479679857965469116023732551736552133393810035227500524491998879879707085544470354112927538797604841231202406431620057829028153340524048273526050906872837352603689403029437840121736359925070404991851032107377877299606096883300480603141373763768102642344928448349709610270082209145020248102681898057466935246220533786609521561304315509665968460696683442681879042368119875141340669734003281073980948451575495489817818739053907469191946994689308752461882308737299400665394802201306541247555846791395000557681730282953102414064272452162386019131251913282826396965994099243410417286852986136071853926728507262703620926369842595115266079518111166328236540038126115009867999325460728473102969598047432672270862501176112553790408889086180945573852681697118544188716051220632395296181002376058148615916111344411282883481886808656528358191189837244391037429577636772677071827593732406339002113645259677850922014657515663489553815374288494805230792180100606377916413909893604355118706628617894711677019097344217390408111953250253441712036608109374897965113075128046656562878534499930162945283363642310240136466411451571976283914207280116959210447466990150750762752313127158409780956115532358967483997544305285085547765119643941889151609747912750286066625349473885375184485920056297035224443609351026001435093213671680758371876366587874049814861730578423882238367099642460553911991749338847445008753700238013377694135763265680045105671650498102785863500155145741566694253840145998946588095708972926074703361028949358689650255246681738202856848859652870308937957927939593468081274021981312872234721225168136142687186408840209789591235037992166007535336046283597850675607076195010500244419347707097107865163729282158040774582736999938690734883441501197096176524781306888212134054473303819924421069456125588801700568169961928732536004439056056396838274309283086886338337202147755270591899279608110282393677886057058215062130751967429492427242945653119451793524074249888487611806310121353853265259756510135843130773843168772252306908704841035562368121707180260686540672501869471800752699111527236401097100749492247892723131801272353622418787661269843934788047399158177048484273990359789299799949577852936047289394782534635100025594591514894877085416123782468554182621211764835442529310851468854418909871381068761106926474799497327177607167070610376500315220791917393328815770373601821688207111975867552167085101828571740889023049716969876543331986876461197583063152124718183469323339202458876885149670555100778909648417136859518022616144550407863530203044158578809516473135043620141902621045937716007670364077691828458314773507830585455668757862692372648384499428417499596888431157757443928945756005254875432575604009375065202471427999959802602147709815891055411956512040102857547378672493222755238083101594692204221582536189534223060132581342752458275340088855243174129677467913878407612938367030102961819376991541355035944889897282402655255352622740043328593788796985717582303755926887327749655182288260782582160023168810607336555208009843960084915664647462271145568413956906780068648903127063978416737346945110500445244660544136248442107422292438764042883211289300032497455096965883403774259132844275995669930993245985543153151024912903685155790926453913642689807200420207659816821183592741476177280531899508954373507655863897454757221052500987708578504125034316841102743650131675490461038432694899767910768162957750222936537385612296345817950210354455703117815621147596808888215328667192110548711587128877918806276421164872608493983814665026685170736918593964248830240089163596719316296192918571018423977929371844347127564583440720543524984516874357914671023803187463982945163081874582185693462262473932552107461230526653752412148825112145197978727956885658723909430218941900331266241420765311127008142117042296952473418207797473117976451760848295502175550077700306004822178202161615150065630698015919265093712356018267954482554908327733061932789357043051960441356760740118944624143812396261331811727726873448433456167505379843750646918912162451291722302040153849009598210559699792567523452495765356914961427262311891904532343060121766196714849542058519410092969449340372584307440517685224013924077506227990164368391679247604074032087326319890574701220820128045882957807409454396870176244324414702002574458400512691599436314848897250122811235402443941178857641147872510909977104184507316687005112793642099190806977134503462550193154435036749544089980760322973601060546115045262194219845553521029975136907164040755030692674112488761066165848011575780267413007099842432766748389385874783024392382373075602737601921540137953853594060557896542261670298463135524484985159075523886577102918496635050024188043822723593388818423883448638374067561707601758063613611513796726096829839525623045688445984540779161051282780293892753544034499484975355980474011288256214487760890233395276028758928803669748661658465188105372102571541682348408837849734936696153923797877560459753937217568460787009098981406404533309766857876949219865483018206205787025547580319197456549650826845513652464046846646486167770217412166252717697657337083516070782067979900483529867646772614019246927845880689511405784789259918390817068888460413168680298579800179967400007468678080349980685849396872056693787001061728988682408014221243887636217776964256366026513473571099592549921117910432748433966797006289799891601170960558172783990145247996113363019248114276209066980841135715792614693452254034780660035088967775196383121532080981600470729558000910979681741463877537459160400291832163105804929643905052127143900450939684712864336985795146336217213995010061602175019889433179254343873875770204393702809509273709299168229999906351771504710123398681015512655186583934525800164135587158073345820099100063023910743662431888596128290630140711625050731534348178124930791919292420543175707983390416925707090295684888862492746080533374131975757058310973461621230033137117585442978139566379328320093960805419391646010451548447210837979160516951987399443180049988536446213835006871929645748772403277384596965587931106720145640257476763731315311559701312551361023870817040643603117343726951256536515724559713280902842434021238287868662329962348064078178835013267395643188614153224291498847509337530072390115838580358479970406380161524448443309137196715701684981968190872683760503908035366152361833613587523275277372841972628581444166916978989094748168780324560841125999260062245117941094685655826537937203062970953231344561213978564844009007860080126264220934034605120471069322468599284981109009676709134073605222123668863066021141245569066463835262693133739916535936438615495671085415609861623509604558325227164139657394471500265721952511333661606895395864087615808865045568356323606453772358677791599553228969379313969215495014672624814927216034843414541871011788521883841349797523330576973783437669182904736307696886465152815085030207821159173922013324080986228513791153606877315875419565850915481184093910072430288392855030086991902121778272480658477755211087184431600990381234077066324687854152302336548222064757534404093866708941620696468623729697259628292036348876792708001877498800735963298895020321010460131187536283152983582174235053082085316095854578629252829009482080259143524700573013765758924281783912734046011461850755070589085196175314481272554703304565837583973697641084353618044115273127741093564833723213050783688381022657356856830928518482902352891455867577225880473332015691550342516079483095130675703244996807858039529559111366650705716585869769569700898344668492933607866241125257690546459850626807543765692291821197139893151308123246917019913261744931445654549918280223997190814457365702535783447802043357724223938149564366929458531805534181203826855861430243929706090702792521094864371645495418135485918353798124066273705237767759095109246672532169463067880351023935365894926052306347485745455308135467463834611150344041090132821704432330781329710207602884898352654286013154132033060450187168743003075174025344664420599051583577672176904990673107556447490574689520742471837223005374380423340226655546492351947571493601583755459458222510942479730632949156637483404768376593949729080177531373359476135003831798548541603751501989757828085922850712408838857742373140936205856851410615884232708961613963736034966157681466743268656328396328923480228175168500179662567116601509175219657428602665720029054150525013433409424572365043115331832058271028864850957663021110124466226767133871725550988136149868211810499102742857611366698413221424820370407758877078129643850091254220232415914956012528788494482598544160255699905493494005131856005837481851152447111616165852656886968924494721587911042894891405523944730545210893558604133024135837315450939928528928983087752740836278091666050313717588188275997881672166961073352688774242703355866538230123654698401696642811326274896188443413915334702698174281314918759389687254784278182276226788606469928470659764200850728923668848077387103782858672101001281955556383579723936773652508983518654452480511894960949885131364168658457515488227662441670924357422089184599287431608078714935851533507821181385118923112944932463881259592004304654808526076838961210849806491920373230569258563141007392287529713131744395339439323411133787284103183984632727048429126888448014828976168959806308206806761930129286879918238141891479797305401864464969509016309437846222700632918303814457378405524509740848259242994951614674881859621650439842977792984890151611361441844654287082203373422342817326815366738022058141300810071833900257282027445645261889270031226491868742775399022640169940644132478743520829952257890949090366355329215130829527139791232586217038771709663962682973306588167239690666526750817097518310674020155905754508756613562864961646717104218916644421468165451890549756164203966969738017829144235456484291178865273715151023270524820588438167109286191824791102758715654301657482673959565453269750010054970825534609120231839933713704593679520468938262267698889973560797571642481318858288015543532955890126511348738482589883209284909773849087746680681898277155930354521733377883802217042552119649140031835049546185284547756503882400270489638729767038459412244219921563603080456944914925910616715799285088727711920214356095329683269873467716171408863692715036484169542678970769375473797885039862871270629221870888672760158831556057400992313165198190348466625824269203933598062056205620182284846023854543148685555009468062702391700640343091134210704839995870843855520064007576525970023869944730117967884487881975552175051793802024328360079099942000224989924864197528278809077559239017421556586067681025265192670486097560001963243726785009204372286569564195907944123201323113258199551561046628961877403883136006557790785247249196027270596573687030785697202738021795333430051282204154863538312845789304922395878481251555694913040029932861917737243216143364143351427301375017140016727953806129426247605688381482851189139732956707028371672799087113511009689193367648886952377443650869634352590213712367029197094671215070350644738294934866771955655726229982442327763743113102739525899477180471711528886242330815655942136149794282580925646846597737585361842268432278220024014345879082598168240706232650060389029411801974143198370781186635471134045284186379825856853379905255313151710586700667517454777250880023231413575897789573256150719150481755947558616336857603409769952424936054105805536202264846570512245425186328498927356255047884727553548011390141611677448100313549149562423845480392707886319424583942964338020803402943602245053257691356673855890301350314061844220018998703679293322447850473274169853696518778074300977105955570722523795377509686347387713743097496086743651170433452883967698102585344437586813465757767535705639567396838713336872902338143758893928432564369930943631757540098973105983479046166819816504814254973808602834812484687880251969077177614514532933436720082477843435818762962929044305474591934154972093870820218014405245853560446440237714266912990980658444765589493546414841395574282333754056167859405371725634552294766140051994850589299020877078957900954035041397009036140857044953125891283572701993506454989143832249787303004694313825904265383134751724834235232536939117645601946508077072145608556740403322256946090658091481272352549611517789780521228276407804530483082518097613908281143346486875270102270013382267723489309530082546813749305780380107711181260858342815967620166286117677332271687617747231224537795583193179859359948170458163626636633383184419299647370808997439584998628497456232930283054739363038542041704476383225738297953742780443287785282627154511511037379271679526046528739357686941237504288970406614059666389769258127779666556312906618336527530856824642066358561076596447141429221631886874352565642469907515829226361498929978065535277049796922297990582110655122499099260813040729474162358561621796053369869755986015402306227027687378278205087553472688944091313039652452298192379575272416919176904531669116118747060703013633497845790326320038940424087804073281540079004871504567038619815021571626612253818531842887051642292971655961426098834360999726625459533227789123821729052749890563610036082417749425154240047090699101915076451652195619648112439425423841368767312809492072832100236948171903731268227226752130361036870873003013579845607337874045444926417320721860760891270616244907408787592170500501227422761611634832032640487586463150780763142650666624873553977071091916919574577598932440953864093275162616780597583679865699308377592665856687649721777185955063807450724506874688250299895784054695854890346499133855328970262507171920839269393699831948635647199942925243547819177492372480381372537813413987866189506634018999568467256747118774228215088997241579565264900985133109095162362547986891217141978579456223721560472148782248175578661568162697734849378045281304036246944996360164730629548237343023379933839101023686397928107775166288465167711061085649345967764760403807853076486629744779811454224252444718498424975334494917176356037899612984945765419609772475825109150282473645895228199545142576914641481035645049006293850477677375852834694385204328730606197551626032566548515667537541523802321725161837234401552830124790779890222620218962518533182011213319540528350096560578560251593071444950800478143354411250911955304564536253016743061938484327890281156436223999910360328974824328600609820689977617440921224288037906971271089018550947675669730771935247377359081444622296530325308629837522480046144757690547935638862000292574302407503649423933890579854143630783612418248690565734619627614469574710301292777192222901882853150594983130190459232284187681331817368624636706644166860089904554394001933536734295423223844915452680674237816941780846808129352773145317680331078995795723699028779319526108861181019080978692167882023780484543382105128044314805587897147370576017609537263642861243261694966399951784178414721388578779338720382404625075191947547750701598067261516039189000747014998775919458619506533945319510855912196437214765893843752459523104822040202540867549478997022567712573488381901528944440264505991578900852289412882408029361152004353621750525766454246659097095334886827945777662876708641724954639855678186822762613407852977465104764843457361374293943588618043433339940822673574801408108156322039097822676513367203327314285632951632867873298282251013283506255857892457529648641283972550044988002794556442309179757540321446998443799806714363820684208763553453280905373153556496531577076273359281498085807065725777245899885553735341833048500257112426942990213546171002772058572149062061184358732462123040507914811507553985713081109713936808644228706820269828055217855694489670301071456124129618137574994868539190221182970950712571881475405595115186942536554230688447681830348428731324821471259920334413629270029932869649501611090155291861904035031239672995021302963297397737238108684059194785889777798949221987977239405168421022406984338375215859194840741647095915528294995336124486119441114336738306783752609484701396811238328973201049621377049987176207459772003772491249314827524569031064689700416082393129237458503265578272693094186501449170181076051236405072797680720732130538139012266496110441333307939357819597136892880607933843485848153962238434459396108237301974541714474185028128423522878408144527213968460175294089672278816668437991814562628687657680335646772441758553890860828438369646182347956536369304542621565810284684095775985107043345540313922247747580523633658020704437697097145781650818132100247278549026771821753179122764339697432847105465520602147951573406879878204718663107002770454538525036596475500275548539287609191201243496990690086773080375274558190771038966263992475217136339715900332891289285797110255051621761405114996985993737198806470237020075217784913742604507452795407802418150431625386327902997408471885550178621638368252437921014139470786999415788875310604045358008179713163100698292139502465630136631177439115811102958850468129066607113791357648250699579776209679387740307822623761713064731814616471072563988506633231255104988081583191753768617758813448353894220779455312377159557429425223025621017201161348861609972059582767553118180136114213682636865274704896465632757599240815591505285112274441797899099069321668575434364232509866936681289978792232013091201795900938552803439619607666687876960858558363727916896910669368795281071731250718406291028362430781262962169082338989345729961013382179045837411138884968336778363499507568728881707391111418687606445259974331423632065066511749721269765856377975998742674247914622524145830397632631571836962777660906851198741233776840504245675843860935274296619846891680118061824671503211628260823427214720670064472897425487194768725882727071981846453487680051016026765156102929046007406474839135908468455141555679923482135639144137592693291530580811196201232545351355795945315470259203632745699496274533570500630365880090245465087098847251159449228081879699984148917923452232314200274212346297507196687380304478067341236489244198899833462545869185067838032024126667206098500778324587363432490223129235363518642023724479257784271528118658617920353929214437872196996412249337442155185104408628905585200327738018967694781785650679446584004307895644075812156050866142784578793371274695969600456040050902578103062500848290889568809003661183298959245419235707684361615628912501427592917023368183438497848216226254434715988570427143945056462837969425067955331485297113973322680803657331880109794117040193801528116121331681592463157158875279853385230310278127457106140908563875639386479913536050909913519537316208219898788741189440702153232428566345482050141047081980727720749465480873215858522690976674531430372141592224091173639122988995789660239722270245013059261898372177746854231134809452725647837293989902484595427519019323611751463809615440386165201014766302918915858659126734327201188410343495316821319411906962066083103404780009133231775005704923799139590947965384749902119786706539187119396515167926274172906868697556047631461715852773438578360402661330508736943257572994031735884943417759398778916827675198549663482709635909702044862918549167362869253046187793189276712702809452659446964897182434193223989771033367813086561509892610449775284676468387317135571900392584940512368684062401569594174284081106774111664635166419344836023411936666824133317435403244533576731905703220372354616509894841433237329782367678726778994100007829876708119133443694267362073201498548074896865284616309942835270285210008976906012572489716964010204958731516737764944493609639551171623941782387309551469931939440446130866604267467492780654500393029721122131280023493719165070069272465108734669962345593943828647122534923200360776125764560108371034728834796776874261737949433298116329293002388861387054692553846083988350600374614099241888963898652617038034320260678722262688744917923625502929100520599040501748222438054679081229009482173115737172012126237000976692658736261041670073421847629934745414432923875680379855914511618156294970357346096852564445241192651506467408737978287069080098202046621174335868696966271393639161770501406567308735736278118908842436920657817037089642242110466953814396231594880784966228439880362603372896754598351784612054441754437950997288169323746289044973629668936460875430199617933278232043199939416392897053663650360342633464526396335333878274664493087553027758420627898409323085881690630285742333679168838385251749158689177037538303294073192203041744979907799089847008081161447645131786062222081666925285329944179921438587492872246885710975066053944429508014081550506457080660502954099856638141673980645796277936399291286366797828654110583373862237965086381902346015559220705704933260119255712688107092538856796399802858927574305148474014156652187789392459481003823585838732319575991438376357787162626199893994609946191157819704214899032355433712359131050334677885860099799688936704343680766677082323412112982779766307817268893577721125579633214643910372110983810719245425306058670652701507784428390400960725638077216092607248850263050879787119549508999881766249353315900332811523974944638785405807183976450159100498442423292510429003575653665886282672173679611978422943615633715873793001615099405195128714413054001465160536672390248551808041387911657816594782021488700295388366946308908529376509122463302947506718223169368226964607139528965195306075291203810452520423253574891679259600085490621649307622446595712002237949872174428069514913179936808322148524809611150073775595729041079726951667258787069206469708390674662716745063916622003898314303694540037599716541748149598351790427673663729805789324467818287635376777595663247425086022268321420496404948928587789442600281011559418183854204450189171000828113056722626041257040399184089175390536922192672949190411992426760812730767210369844205440228516149080784150561735832616585304221071092241256271136621447927512884339378280035180920907543733315371722201505190663070264860782550201653383709573962943312595779740107857219815258094580306714928149007106035233823898910321492708935167054991252235449110177686685791861336065968125793395192778640529213344291881885350444074613873865397445500968298967048236501410753999312687007409834475872554730558175480238636350859123685551101613087441432221511951932862429095073341239395475013099514557016943640300803776665011937493605754247613447508408369876530448318000381780435343117635749613901496249357615431421230652095792751927797770819429814652505322755780834675363459254504329808284859217985507812521292838891593851745333295975642050691157860690456125611942126511286202525475865253470916437039997180303848913396805948688198741888722241788036907780740303047662292105352835094466503293653552084417988359758397481549859041640547362235896147226336071118577984880081594863763670175297700799835516847580752362200006153797942087199057807094716142118688884304868123010583287260228115005554707077777735888619708576001313412823837565433596461054893497030686702706275860708432434241537659979436287395145533662863897625047495804702448929548329908160349973974553045794080118017809067431646458932631245270240686123359177978391189575609463178551459728437749557036106117522659601273014709920325438449600672523476476878863684107351400559274117560022062000282598570479802027876117652826842812008800004606987016925634528151662086822579248609427146997328502188434515419543877657590157394963094794287457145263178802265096440311328598270747983039467043464804458210736065753316614061583894594485001729709905980862895048678054211380675214527914427112945931604460182878397338432750660217729354903291177085792869786026865949102975133721860792380382115493501009923763660039560210825535713784782181362384640889687687445221214299150092477124114259716955188415855906840185414502763863003201425159902433137691404676510594638146385235126657105529428247870446201756066161546135645306233402071643972644712933176331636161647481024698307825631860368918656489274396945654524311623398875872801703636162121401164720053530800351663967650866429347198923777283674949748842974186507745042260523439845258588483987060390413104444258623786650557353448392751981106214961199124443106427166611744896762924438264972676428465756078878758353966893230013483270488002306448544384659956481650357032290020665817641348725360681125479780533107919487796095568463852078147693379246617425123346090918644705582292243957115041528658437253503670469457045871172673859446329315372792632156235767296116866132040557868095737104360925767743849184120886706491962114637335032756255739843207563406914491752673343160029035564218620505153483720528077413925989662547899663483482107151400252258901644254216452629171195095814565292122554322449480875814898655610924047525758234315625940768639999015778357880905481548261045199265092703109795772970949496998600379388908501253547931753592223990445875796768347845908516432737859100032632356723818708233136841545262172545768566250875096815636662514509003880362945832382632833924235992979229624124780783208660572173328232087635112141332340146048018599680598785527555757130188962481362727306131482618491690124002184013336774996787434395901102633777311432523550362335700448886307508360630628217440359182058050509516308343236046746405585940001689926144976905227407142210319781440665806323699729378652884154269631117381869239018675188188689442039449913494387020747276142633911148143142810429473902446423319826800489838593492001315925402229289835564943124034008749928217325989087687019461884469736308830620702597229092637514206125080925317212740019015061732399729969587077195812204149593551400436211190681693732113588511193956889108168264976863126927319470267200447490594135500658760647667281130131349402217766064661113832383984034595516598177716940348259811838187738207280572350691920199692854852034813254679753082160442628136545054918006312817549484879576706296459474742064921629989831350796022996176118395353914686284314097189258871502038662015815797106276862189001597872596915758078041002653680816890161593814336105460933684629558413461524877285105357596970530558537127018432913460556647605110926811957927984831798390252361433939563305651696051623412109887425418896233950404955360476219298440766376418278993176333477549049884202149191871632671036068911922008042644177588425177800529606643920555016757085935111956536917821373220473338809079462672109331079110495487111305270994798181425237523410635061568225301824058215331947521403406166393624960162896425440456414433619442939166554504380232092943155901251284285556960551437375308720590664514084891952940177263338808559543765843192963223808460608929856856065359014323970567811506430806168662597123746003485749927075630838308003997776258551074361703581009180710723339577638520117515713014910310750017125050950874857161823445552075888642311431455094114614330452133804675092920490224634106954715674269606367389976465107283243946175134883305972252630984606734679913982637415985999584349212968308586148857345864331825480900594257567103525430741209682961211497990930952239075265895782534140354687243955882064600279914178721884922191871478956986619705506148856908445442056248229963063595951834353934376589563382640937700839353962929592502093445062601032677682331331640667273836503354219571023970671675658656484365177431147539155961518165222513978932038928596111456648826898044262082960982758172673159051739510556354653466435067764892076902974139852472905645180023737166407040663986378515635760688783472697691389158882096763591068865148318015999856902800721432436293771784294107241925383107821690397396275273752069541461744777061190427891782936920846357640141125762247035517418737733722878540663911263603343789500778800714941984098615401487836148032065737500992466507901182278359373210844600531181285132063811191817319773392612601006908240793187760359521844843149837999258815968858426144298749736241212664777728837210018462227866559183220553820602878265811607214069461803208466009476100612962572027468087943816709017276254175840534240952451655304622019359110614540418436194722382257089607593651261607949068177120662610538679469877416387656027693786872607949485044005310276369102208015770967193420484679775262927232546209937818698089335581062981140863304895366947100510838939904837771633435883694174061608439592968954792597440302564112054876645872129892075030805486369493407923668534522108168270134391618783916292791288406611521035750409077455055776657885189280836852676009695750327628446468035163711246790579363353007554405004838405802531507417713234899640537756559216714919526384036902159919783294233105876772759534948598572509962567597781095726041306398006858493852389846755451694013007949386612621222916091151879660697960726069382935737600981879429165980413661090780247382871038425346638136049411042681709593248995767933517004534372397159415529222617564233676335318014466993911949005448767628135685451755926355229910695528448141806156288719978739611042186327335930482421673054564806468678998314485888915419701382249477966904846698455897400616777327876260933091267141309350620859841802039643429629628513385915278026051926044836123702198972629402326786950487444043300969184950167924645578241757106745520435828162780834185431898314728429220226751110969901824578617154158417858219777378323175568863229528755093628301660195227907230872755449753306064419085009016165399783119560644877241306124078567566149244528996387670549025337973576858678786929288235493806365564987780899276923657255389983916669034105997942098535346760654233630368025164321253826563220944076700615942744662636880672121757526383532591833614825992159623703970047580324931544307279515124366947941807426339958984405741149576825865996441289225076426854950575527553140188171581161859573317850371862356199512629171044093106236238155400719938698357350212674211758111131891055313925379659221787284787310672496032320553791690992892230695185803645047879443819863072087276708684155269069060111841365061108657392605715313008873163944600535990862369741896055441183060947627696893354853683144755866625547082088824305240179606707270298004475225311393522548433166963891745560919545495838910053753704321462582247215979655762632332978665094706898412351061191723027373344842176335187548095092608391500888196557477359522519676603501881385737968485718082609493071562419222071532760264461510855461268850561627494725676305971472526975426129786255078320926870982265265672944631197800796028302065804032900586098581809776420641504103570783106316796257106368419533877137218302364322345350063836561749598024039013362118985904665803025222257230127688865334828578882458895201304198273810831894787317112603578263698979041706875062084825179072807016141614939582320336642407884565135538068085949928272213370379157777031717439362275196749747796339957667757037824018007201820935017964140511380122563560520848699237219285001530345104524195865401232712596609027763021545685375898187455438913640645191098132298943527774539388397457113390459382275097655245332192354402910614296478668618640823287775368014978247636648905802269123999701113831785913743924675635355185876197371750482798106408570875103185084889364437117413474049621212382404584346382637585648506303265926780552564465956401567845081965599426683487959969408919612991312568418439620661197013900522295066632658257428024061403842343856464563443186053984059997705823136250113216432774821172216335218571321487549465612709626096261110565230524532739399823998005306040002437945227933409623890142822317336347758807280034420787385083307415924302846709492252759202720680417706712773555617493465453517724668071389173643841128612706547894059866214749762568294808743595699419965506670804568135841691511753415617057466828156367220565445595514490776994311288351200262038996119390185558789651396308257574694724664888792283677863526095670664180942541454062356848015801876021575777473428537372817398005751097294339955241484074282397164604288880343566869014575794796724623022058189803690503541958116164366594104419310660098848364054595685296279125701985110524145936186577308017972964031594083729786209114344314939937378398625801203751966809495717737144422578253938433893208768933803086633996952430624318933392980590065733464974986322999406745959047802768365679978719639107124704248106403775107068555110489852414881868324742687045640731915540839853180436481890260157113018096662804242208278528177091287261461062132306400321110002877858111418846400039659409725190815540802864338053961625469944640361254148132426227779029822665891242722708455323730791577023373354821591898634605427966589766171674367855577790846912593595159062101590131646366646984770622120235133233367363395624983622972820756158303594597726106617538495162348703352478446541522852370527920549265620579997171984643228144541329679884270150475251204971396290625060883452060532679301954934363313118315631266071003969457821165797691724850565495249021840753981631081499978137817958585179493737053192958686795410705221280019943711172967833419796647128966377818069641314855799823941787364965855253037481325978986883346500127067943853840949193704220008451879707806327953508074265831995538221026987472477818892935229989724285817182591886300458721369087471649057511221295413019352492521094545555276901063536143235586283999496552654651254869844975055978786271401300890288946729062910893685648746472425541589982186840291157261567010410146026606450746038750919883185731163837227573695837615439895928657158189657284500598973332404591036872634198579946303290401283783171487603634630489504157776081910821013089078489058263962016372803659341165645068186834046384846531530024306719801252837817309623639645303290079380799193428362070312705546205521942007475324698087377818161293848788587542674134068168543947565061828262403023569124827172234029750128314788668558233121536945381458632601950821025166372670226885423549686411106982970758470506724963487470794609472759166422600693236261882361815760754205874531626082978355090835074521553234782513455761710087789016058832551789931523632966243821830424916331534578047479188598503901958175957333296632416836023839482010410058372878962443414995587856164097696043516564355499999861480112076965768168334520777370667767323764783239334283334328186837216328092469445867083953512428288700925672054896564450733186502125672391814536499541835540036978978815641914341673546479557391170237585280286840913152529965126490007280720869795680242291259191327345855570509514912649691595119114356057867184236850178901339868947295058980227023415845063660327224290163479502498098751130967197318088296856722874286102439554109796849919540933941068194801228253293727375742002588851705265566029209408478102998729248447273105707029294987781798593828187243950316065285623229639701351734770574594136950941022810971452108464974688210540161838528555530406015442713056746914808069887135626422840287862257166271247427908655331814196501049997791819948725247515282906894377929642689025501323311260021114638473738565770803944607947279771156415097445679203266370125904463937467092595115604636355233295529532679781041956834728907295900193556982510815992915755124806039017724722472254486051962939712944136118478765276549658000601675315337542533053292307640819157408322436662039278595279173208597924161278987942548540891786638365684299684945395155136315326168486559727623803708954866988071146574783987007523584408230860542617870243872241773164116894709823142378674191717042931073436367202842870359963816485436030917997843821910747447471342683519777016550960080415254487850081872737393035802087547871807578995811393495197324880499941648653198233377473529978783915717009289818274961535454199902198801628798032819032188556902538247660658273869635562420664043720782680383118678855311857476735748146029881612860296205172678102811750085382288355482611982029641345401836711871497861078296781159987814660806699764996856459647369746679891465866321057213360541883068933020211218507519784489770726735470450385456403580475643534220587757923702873183827935056977144997342500597108510660096529365189449617192036211966522561432633465770644615203776341944921104709122882093909247286595080598040509526153633598516363726700155564786524970428302032857229921053229763047810453613399690794364910897917072763975134510814187507902129639405860309556617232584447216893801682206809865783591431330438090337395902108936646321656711294671456039393310340155439560616197366801808151854878160040794497140756155018660867456354753157810115733741886744618097993659357313733454370655474979915355813227161624434016501701498480839458782610497574187572727037333580405786290974634863967097540528417385305342012167447724397460719774161440296030802594791343738012473823349820732535185539017006943285470703698870080966191007413746109951685550498767633905955435492903500993031527011743756990896651459676132720161186971491083139123688147546108755359443502045237719195929038465297708160001951993519334829162534897456266819295020764976294146360589505136406396186052558501805932797293284209987414632041635379275659139010583482437842362506237831416359298808493229026967823754470901886104449496827099998006786474185058498415127577322224130236766438336518489431175724398379869581369966722040587054572026266664416449320831241451749886090047333719164527347354929289403684921440692053565686718653757692118010268998345749939667849791716938832517022834451453233863360415832429509662811974933379800433337792954168886427989038751902125752918216692002406186822616857648652711003704299556042044318984789992536590123006924154177279121465874450314130840322413282427896425490010533861973128537666475216125504162303058317571274870484063078881001538259050131607433070028029574666442930281965159087340703974934059000160719711395159721880082977357952781813148363269477081532843135344406106009450308523827940423562201043788955793337730997847458225676943454550607722839118555748001095125449537411883132364923942913848556629716224517781595030788624753782218481142611100520076474854496112947169700854858435549263655836033766619844862843132929241385871970052924783296776278639737915949099188108401842818605083095339859606955912377137283209107348688661635908813462114709311651647963349286364931626573021207206645439512197570206459477275251700009982313337898623837054782901674138588632157436873552995037839574266863277054096898347573702579428473598747043577451740954645900106800761186085413325127488189539454960853331962969294637132144364677488425772058491968818938553137860351041948939753846468838979784801189444280927133257330819785928087883460571461005587331007165159888202339992123586791933632992711771731133926653213544024208796635080353957333213674463086227177481637143247896246228364185993839698008171870536132381948913103565217917036385027085796985666700465694126597779622797070545564563326369987884095392888879801441340386433923589045060972227981634551796770158963932232828917943754504823351917989913442390906972115078677648956172931013363892158637015328810174810598531986672575816519759579919684226672780577358721922610885659208755720032055885317873775564681382609982005748325794034209275783496270124422292742326285669861165925318914327561468982964104077251780133051832139397935087189028272206695313390547873204474347828296164238732805017708376079441920990857344185864027631962063640796004120452618184023258392439373924230486364846329605184566154535173950145869715498649092194706364695981741897113910610954270941792107985731710675779023334860571478423401291438751818506227690385656251957233870067208612523111674241732369265038072897646842555673108910832890357020911187770473823416027906163460928029361527714351889558412164260840187761645519835488458213906360370228277525879133360197732012047241612450718618979077669658089461426020563971915066308907541769030622497693011679901637452754687845144912712041036571350649611602039106984180932668734190928286468381712901716405541617733011074276465335887734308629977887315442276116025884257751927998557071978068449900234044981302833380543123667579052016001549913454302855475310105317229134778541667845576601670311077497325156468666009365620986353814570363956046774409149127656606311227172538613903896676368337562435695902055560160016123573378306245731947638815952802719359709215592857562154081631696903623703994685668552971529995623706803325738643048798581782977797841954888739624293974753693284261980224931952436900827312033067596673911562756359740871160682988106500947392896297804497206297891819335122815398333556938813101614040594220656220914115709934736707516247294257136820553474119827530395545176961746359858898503199622258773015497776230866001709423082653095005475199603765721113826844996896742485713798312842284796638162167645309376479473410935747821781732953828700620037124222052222244873691960461544080961895674752932795860829463322662361549451895648373334439757684197345990269947280964611138005916446666525008747400658156854397445642612825380699962893434621871726750354635241064561190490709932682158124917586835477469047204556478262190956042052151923947993026666368727365962674096682093707855001608656332109642315997284861482118341018496634867191853705533755790948952171643379195306873681397344122289231680917928946032106616552534960873223077912294251582674598435290675972310029185768113897538395515724904311246238271761442747610548403526045503609411171180080737406423826006525392362384125093899800747239771917135062876813035369047184306006706245178646758786048074053549956906629375258934873179795758745759821332305206302849166532841239794268836650303932830132194764883466666086727068845238731820710933358636656552469072563132651160851856825476926936255722952971066131776484011246792690269069891921892237887070478311698232835306584604916288174225348261553955299213365944623052015789841326278582244972828111308812843483115337958973971148502852754298436727170248864704406515389980273358301025774225650690590264757434128978480746333004615562541271066655485768310405513038420395060435684899088280721441155030872767360636980175594030551722016455957635034045364109451463683802165001641836936258277967911834972394896333839869597084474822834209062206804780321858181850289791697568310665209383035884715703515492252393914508239825641571486170693033978630141448470943015046367533849855615516510655483102239289267790344799000618028909787795578650801387577167619648649057333770775838912040062242044571714499708660224941375740737751205644800371467807701829868109737734944209091505838526525310595032770755017617816983831367105310561636527162074837568542865493069223077540127597419586216619038437625435394583080563251991185501950968032574933277129210599186191004985932482455593645580416931959429290432139351606053942414155352605290720204360900758310293368211079167036559986406489461578058173376092392430717145450097119460261522724120900284531202422314680858376190394612892872734922601888724213212017829010206373029865151686851463631351682435455473408663544842040658331647083165067856329797302845708366977967063001854581834855926478822269895979889714958916735493648358518411792236212426606089530804567305831516414536603248501755521482637746291516048702392855978576085658402247240675657041500958749955111272849612883498654062646990706755590950285826856525816104627132582174054282644982740637582208172845859657081042385158870813442223213231957244663488367662358008611585523940198843390522864797100943850285579049555457448419726349942142842550851329830785291104486369573181445087283940221662248578044961990921882559801718360580582263643208061239655801998280546144128938535624303353305509185026030927470558272891389275675825916132149943708098810891276934731526825976905213952239141602188701997476940849747818772986022595963193006220620631075267734997751521711468412396088268206804866535647619613158460602827695968604413395836951938490158494203757477543942957961892140788630779851732375141500328301588619219973074363005805449696855852601297497853016914828464060321985696535660165424408401973191812626567192920388924999323994739069838018846254914072095624436887474925339051434839772619242452185881219613412713588191842839579423380132088226508546707783402561281129382030442037378318845287459374602756558250266616471715152138114551110907987505573644013203830362178329931778363490249566452773728279233605969632754081935322400832276636869966206157345398703188084881683445767570424490303431811051395959420954494497227039178652734377831316363962833611747447568534151359328446041026718450965222687459642049285437201144002035915263171686638823196533680357438826232438167262897948198974365414225582221892999492331442636356045329785163809723813544468227797823406091447297128493582870742776404866026842538196497927683885120922754378720295489854322450847578088386650797760931168601511667102157052993606178534978684566035703571564946184829671752179907734256453613476280435310559090465593512954361685734278415314462332462544315398878781503265482631713333163365569252982438249620096611657571682253752562051072612271064129477895056624392637102682151170190785378419345816828407276759648259982890367535919192247399899656802542200630112684185308780921952187010301274642945978191374811737931797909956274217034972768219367408217135082748020719518249801985235001061403094856192403645278801869493858950097139085434664703095010791741827317605217403311670278137674352881644657927007667283817078473263212765278307654066234022998068594246786830756009712919863828741791581769008940494629549352973089895873176767282713292856851500365913818451024725929739969478969081939976941215176982206684812502039910167301386730459400062978169152391138646041674612777419369857010728006426009547194501365632605378017601639963926157753086407628667664140016120344858772216786271252687079568892805596588765161517788755468371373695330426048158070165977774954333622759791394497482585661244271062386776028709410663680656615277587636902490042094540094336561911113274510203100607937623949085412344042505791974364268540154757209198232625701384046180954161050998486467361699040040068183430693651472748720184065236072077897873009330687664775589192844441581621354251660005000293495579985776090142932278388250946387254540807614984211945627619123226330213484861474136135321618154261653715434331709939782047949049710603467220629507402587797649468455816595374121007600069296262379754548586410199578294319568737089713550362047550680168675979296630789852182132907795798352809544340445026239496428116727447294019841333813806234381555497339615751139328685451234044380307221469076035342400942803753205132679806825389066420757255618331165338369956936511116294599202748723053981797612520761065081026294329708573823612726084896801778242398147003811797286249177206921073489687652735757856638151640726959463952048968519723037565180328791166628318674555368494089855925229397280506735660225790415807434963991224110474324359430976682568162491682839792422460180550598461732193068485453651287578820369698674189322001716717107098752935685721878308911687585261118408825911339954811772073129934277521130453514027143296200482253142430210987303562226347238749628148434295669185665941803909200896242123548042303359931436757623420463488125803799177309158307655711599767271912963495704623153155729066570765922039734995788417940263282059134984500730635826030522713770754615784832688418567295938952432935297312970449366360993986645260390560373956695333801812195400368126116633790660488753276484064029797734684083261494041376329881659723863588850928995052271922801867581927579816583642103385936077633943478844199278148848427741669374158831632847087129998585759055873236270425081520776542486425525216317761982344528965071782999452415492376322072873305972946606245467707839028987530401337308485637104209985102984792653410999744510969763308213363492995350042577407942494846468342916390807967958788317050190311648154002982722635967913836025947569313570470752775137911155457364367589376346016567362833631318148286857054657415886289644605518026209713597409517844818826354168608384493693421785060471758734980652710596221843372722098833810265493495314735529411853104510193938290971239507637367410124979311380787633785633687076212653474041892373408920088546237450013784674229563097738011320294958054149159101237216470164280029624664948536622210345544284004425044999344986895321214022281066061145092402896337722436009357419926470699359731654900228378553974686849245987551143410690306214068156932571749435747082562400920894221779727826316823451895301421737149058181604857582916670362667499116611250337534129788149305369691311241500741084682038120135526114070860357917027284621904335107724428747384801536365319612656389680656751696267296945949652317998144017818777534750579540560699535823885452914710004024796842288191994599619988211667106570920109109440409810413834033204127077291172268564430726683275642462565414633358910612058751597596188898587395542699905243435307737024080706028312340938592802370131650194986484867949448995320050497075148459805314303223064210090227809989029161377993551379454659364113055039468944344631691025470894938587786584328408039190547397286007944018718918274032119783847687433384473133899825079746830201173736496790499913847688836719486399193397699262765531525101606129432249308902179397430173167043468411683576376685079392800627262782435795471383599115452272173397626797112974054113337853177721954263058005456593836909189442158922439800455712448299674188175619098954988221863100227999242277112159153510923333803370602745925880043255576594198841822618069632033201345052286896759128213878872055638636602194246687210895234453164963033455685910471334641869776115066287173902137013715749940847781255704760018340615486176344849418674218137525356746969385028782479434890985540040682088280685579422275530621580442735206084678207917654713480266650436191074063526130720772370017239567256914653446190690679524671795691033331524885294433465984275186114877497221815226654816831006363302236949339672686510527710008037208740306686038587499482353234768884748081609584576147147221327234957423867562350883762891915464692868060084604565060851429273058163760399690999434676525782735835529367784270641159763066516983460718655381924704559110388626266432314986489501561304235466605851765506215259342912217098192891926149314352700660897571940210104981608392719095446135711702353971358560607093320768102834535316942282392712596828561119709412156361921272386015769307235606100100386803797106938649051627948432142493348659380134591092961551698995653637621319425486017037408875776684259805486473639803949940310383367487849879312970605442560504424421295429171299055930908441760702962181119940430834181358044540885001975827442687794873187887576890447557029073208548929739190521816247060259023563836165754501315106704419215937083630368853902568576953792394722478111272194720243191142024299770010195323193406374722721837527447382918802880327281598922841272372007956946125145213066742291299584479611350584128866718697439105670813880389371837863217331960775707977187288094417927561500912699151196818404783117076783607486142894838465111411349955150307482976803093741322272530821420393810192428801265433279660557382524626986570322708767062669340640621917916847088343303326587369988136044186539030901172255378357925816318248932406492919649989327657785476089366057657948522715262612669236538685134224229945349268126433164066046471170350477408171074727424485594105400612989902881986172294902592110002846360431219509746684419557697305330950828258476912299856068164232528937025519948931261775785932505979136867904597050004940363016918422620964045128679494980283380258531822503786230204929008822882864035992017417199883276533122377209493893266388447104561237050117894876818899840327750697904616944385178891842196167144971109160528659200257264883514557058381363729539956503357698149324895268596224134007073367751097252449507929470354428520299998801275912318225274881693970033971444199846148095709552192452749804690554682441155046104609987640756477430429963011000352191945149828760346691033774970607922101852794193640644605421185854664612315257130057394834936198908545258078654767455381090403776294648335196531555192734796067064106311090703150562094015753351053766799614531912316399803186001510126251834381650781532269097400956088069092649544116996075556339500841856120555574862380625075385436256745326613658734784068288814217094811792878849436846947177652301031139059296851589252907118981792597337566492135438247883525581473532936259843191074497307979828067201845909733343240266338636790555414545957014736849777826645389630205460459199040903437895220482727113692214970738760401026584541872733830828496313225614325671507182562555433487777542497665749823039559713424711943582827939348869267339612537458049991263053037238729556629478990659619730563932502329914100631733134108710692473563862646090797562360277956594067475150431114827791654433910296009273775484291744917146772923086082279158861937545029137183317419342285980744843631549532404475565868158616043215316947815842536943919356624355155003872629714501616130992092620188365602457703977498351908937556844735660321436172034793513491332656846805577981731096714458589973864471034346061993424600728428059901139163817578890234088416379098452633723872847896918658511336761642654133305006075618236013496234174625251615395339034676176082952335787515173763923118457849397479385607081049122546627511954149819019894307510397693447682406147506422116107332460771592757015302189327591702902664946484680268547260369149979738860255702527782720435320813271377677480795576957639025061320300045424376690509161521974769931247790750345038825321203163727842330762940521318100647004892296571095482552750460043354754690744689109257862917024461070566683854292881964983849000963425889081847150308461717017418401990798683613343172567188368711139553400392008004014554011657681163601008682398445956642489233935510463376964142640005006356251303485597334637024501832217911884053042825955019928862263955923598283798290411057184426555073935546796308466989867772806633151874680272957879629636134516655483738014001783710149824851427295014860863206204377639637083256719133991031504804058114648006325789042976781398989800057913095639914007394216418694121740520067755284281616732163274870545510188242780533497345796798795964965956753724845961552985707176135698729250644919173334694677798208281815010336538124160521406810959142816736504021173290587659477961971523553024815752061627718003763567442703016524083964145717285326712944326527987931876157806930817722249937809601999915942305545359081314507601755613548868895429428624497116718614594660549736792919629930718470788082762678605063594936028093882466681255000386638638725215879337047055067443977253584451710296324951986049173482742808998251234297659703024063082876719855881365697632011224365217642906898043049909084020480564640625708818727122324497287940916893383595876311573779762564404449152152127220642525688387751589415081879823188674888558727092998846677180776117157250839479311948456686887232887729909242002474268374697352007019985825732606053290301331510081465673185072023657574109353827758042170019788112399545266256733875170548224990017753355585292312788954982469421468038927324242567681712653508258078030972304053828241952614182092361061870538787959434818197879570133364166974077065215236751101502267885212902524874858710668318118299407979233835023813150067141519342330322620046759055222367212082573112730351221764278249165193074048381680289482415349922425891818558300661890672288888182985412782839244987081017444546421404550429815018435320880304106816066847386069840016019131430564078234515227140656753438280927241934606806573808826784055712600359020662937146786845536715334319704241891607999480178191885481125949243105094412921257722927518179492689917613583938306537883679790235919161643772022597491216069327331064683613171302825290927313194170158140171662617891602007738712803694850371809590495258284652164488398665146573871493800829551271673843517796433950473257378211996009742279051873617495097623155100988923342059927567919561079610999420260008439093457191123986395245286752907404960422106381190178832155460593038794996362270204802787003203028892171932896697444174193943109630910817268743032083670705731350294396421344691333947856273944124755637644899277010283033823004766166608386350243672782005441628140192957225556544214899929342463102055440622061173355145416816695277622206640204293440099772487645160861939645427226520948124929117002827213319853344268745461112476462726553014838565059810651724945879696772157889617689470877198559884058028049372232677132767020816329994646142383516108804361918802567756932171691966968480535660456620256629217970210425017368613396507518458490988833588703466279664253801324237016693403391030671339703689644507203498397510142645439039567190513107991168268256466232421551600998594360921537946926119428875641896813497562207249552751898154887263508424998467277938382311396574025615123322712846034069525001125007506290913963940026018385133188758504184700273239056600346701520245345247991908952741040103801618807436997108014314260296841964811192036861971140442737629975240216224080344744580603113813553840241534468211800887921228993618678018228593545583028075599767539906055326547984062352558687357361429462773518168618306554475683549599683146215249333920712897574932860930864472315886626115684562099496795360672959048548644540545328215684564624184001263820681208397390492176328777913654726374349362396791988515419881732393484266886892311274188975770150471262177258955478476478939611740562679406666968948814796982087285443610998275412276277814616889998486586659571191567847849242670041793045955085960673698652663499544565208697672293179401898819098129721731692292273213254095831802087429255952611452767046381103018277254914762382300863297699569377958631704467081277430655411371316150540617854177064768872926211321056088648629087127039909157449272948943802308120762626980685303074899620918291163746231149185777548358290609138454012092380661462431353230743365555235794366700842265646740997884698193828469701212235591485646007815332132458291070167193463211716533993790839131838478250173911227485195330200374525364527073480245786343922453210169643268635429302419731537991257847970987891747666774185296399857906216576128018281246549679404699955330942639602734418644340093150739085078882395695222609439166232095918751832280737886376531518157858053752886959804714721189569455470396076863975715120335646353402727732638106167511486747300612729734973979356308684279128752568925460508930792993687171032514783870354223184845450060158732797035873501405087276418271499725930162341589626641664715882906608475186732368965725510688227475727923602649410147915499996720493817052608712509624131225468303992124158573871446863381611767192094100764366016814571441140025619718648711319652070021781479176428518323297941189488331909493625647583463096253940093864971525921591659741074088534513710022156503913743978711746183332495499995052759945847549461806174554172983915944406205747026119074610406751623739092517197419138856103184654165824364276368847094270675687624604498523434263800818155649929992286521870151164443140627016166351345216947488861248497488084800199003829266740294877395552911496240065406294129210864572578709119314554884840541210891674050059163343660436356463948097891606078864086185899640837192497715377172082522736689431708597924086270220734210239044305120808140539345074474621582463455596778038252651342134198402903134469005910610031078457141624831372315727045773152801007350607633123844961196795860235302244825996823114249208209333881342235263781559690012578111273427716412501513988783801387989034918792723735965882262396648965627232650938382830217732126072168306759188748862412874979093787700097106650753439671631839131103552027336315420004590129448100344313220334199042605675963988674939378570374320974775737490709507681215436880316673417636100545362954792490194227944750190003858406662577288029872248506721738173003379666957348801390182680089986759501277296218810885195853490396649949268529199313520423803483142603339612400706624758631609338882255893835816900666717999508977177766957979523395670148411811690103461314755129881294277410519390200426365249589921746638091831570961268836896707397212193547648502821063209637654659263017749945662008495916118896299167621399338936260414751730408437981036127028324884304408207889121984702606311737608021203393758798356523736757981027423465379215605768065517573070001881901603311435361708238726918666571184604786860387899865249114866815986206040906914985322305111843123455415012226855540682604813075291066006044009102378488479760585643796277171845973825517291072233250922005247490107024432664793885919772984925883118111662023383037277461700907144670502526899716152515528485665006634052217542955094635658407813095720599493798183195131732521196403965650244378923804194073721403002072289884273993684301335025198616470777982982476042805995522398714102593516533863664149162272791481908020123136406963367926049344251471906838312543249649281537070452248469246004927263854959977889007441223994656208151781302119022865225557351834145636409327099726287624383563692283353388854218827634149968135915998379766314590519437966468180250619921198249508193400262533475644599878520994995348605503495985873116316667369416476196638629467193363708862281146468474055579060214359191207957863981792207649896892840324534374869647832694051645438451522541391666632630653823351813626984082224602321915258651082855762805997230575267816033215930566921725773998980721320134995974265389670956934366461474215578014364811930004198329054979415594030420023141839634194611042869162739342172907022267125167606453721891602490583494022639166838510863686283229338873316972477079472984911762715386205661186011383103942702109983977825231980796934782049557787010806259929331755828122831902596250488287088402635598252820412301047960291014065944026011240318952075990232269147390490453134262629040183523207951771097637142539945307377599859506155022832859761870769010352134411448293456614626843199930529514500656055497844874588684905757459347523636501194612531349913077509291368079472658899668780494129055628445948315456996547394243449145312612287254865113492928700128848040839063660129606815278237862617639888689968110326184404242228481038383515268225734711743784667466250351716363650689114880623564111760986863684726240350797671520870969278548108445046037905341936979738925637177970180970114851217974272381945588827106392411711529078357685034542213436109429462167155969625188655547129505324316194164484088650622483936916013833714995965748755550390280133831251704528599397612738093555731946408551460229852827484222360223919755795123474222221954595760316702715358671836911349434193480792003188258763765486298159291483376503157285129120238807253510148726787789878249340549886865723674122692381600156069279571286496197645523921987837163719888439698682979753896405488126255945859589950087867390125402798769733294783375731231604626889811435077062501497950814633332162464007976578655794799546575563175154911994300537373875213200801986445507608946316064422049665359495650005332398987281682041752961653084460053561957935847611414192703814237492387139952182527547351341588873934342784394963626629146093534712689503636899466441815242037732619432010116212859011731400793888780345816856127050137344662929670586717850209277496442703295492690874939941728957692340005176905301332891100582710194780172850865421609286548966449720359572135206190499397858434224339820968092284785707883641581151986687748502044586317539935544774074392289109064344639950836410373370199093033815349986851433914343209616478138767965011629828329594902594575942859333236283062931553339003365367509946659194598384318899969254161456576931143692492489320551920475847202765466985093319526612065190521698699800144547608256082476942768721991730033656628498669941899825619546896885708984724784105197740118460777746988486018347829413655836042626018585699493754602790301817184628257301783888426182908068182265152476830126540667484023318341859381688387846412366973031343835591563306420328617870057631024278178090326969231101329524373664262420721796364744664747535302198871746446472298459410663508047182844551000220774562908613449635513921914675736112086905859496563728438652674380962611508509198708623517726455924516258384497737685333442350303409694846556311960155966323871473745068686312724960870266180997544187210588479364865129457305425528787884139118866589665414568411513343913852043303116888799993994218604926293740049801559110314188776016105550324231007476497224391285311214934858503153463347426767147468142087096104058548265889743481496946626811240236810784430117819717193502567452442366158387277370267175846989775988161811941681138904748650675814029679921782247672856005837174538663949681846502680296819609195291021851723666250855503337521080484934699171274040437163255142051536553978196990360189711694794944231883248682797388679111614416655144373466704242815697888227257673741369840269244675298424741820502701843623046225862518341876657740920265182747927080462020720590630785489269725563182412838573697089774225937326960802282068146702197477238087715978821222139045330657140015948610045990495061032237142702154915945036866450447965138505129652649552748527679965548896308119782816933784455617229050058846116652931788946430000150463071759911370388330576578115716603504054147973830832939892272444931962669970241569205641616534209450408588810155089598421515501538081733915943595860954230214548592353086526618457930045273082090737524925673140973779888769484931648936141383060868593061348364324672481754389666685482979370414992963460936978981615212034745066631104546020131560934517089284770590958202038006899753708518343635223054747921355034898890794523241374819622373400308352652716602184515975684306017545853692198770320363319103287584847267846485544543260034038808649466647630545908746029134869786097980883681489813716451328290548381340696898276299593311814805777908666695417777938758102667551155347370173715248525678587341417597076041124651672662081022751441512112907477518667524933814550612539826605438897074476465516078215548131164726311203634157922109022513229729100740093937439255015897678028531146090825625376650217337969838279805313307074083693519535822758929168620630821104408167785242843352088699211388993082791563141719060905860878047854873134470961796929347940054261447864934364692582443326952907589927013080262928758118971768866019648959583811670435366118135283876267067173693325975650022744458445637851940664293350745080656692253320371361881968842654510712179093800911749961410485985844305758299765134861661618721064904111006676500598628547226241425831508850810892076475790997748486628084947023417500494303426106468087897251087688742711912014476940924926955460713072453560538729393420208088583131100498362607155382042800639882035498590919226037297088972812143136570589370938394090124267930777306030307963227876537350857436983551638672383194317996712808397865179833552520148613420375272192281897725110733416353337784218519788339064499808573058369319833115605216592055821318739721301898806797222828698374807969303895039552487271734719679816799624149082050129087832068534603919146879606263064309608912097119934581549010775911067491768713667777832442371959394910553165298858629379622668360050124022000875633099941013400759300779025631847988856199034899015154735879871528705450832626513705899052624980067294461292312260679673576901757117627168656709748024346370601494706129332463113395036923928155002306629576775746981987939498639751754960194918978680919043373218088812030351642123224591562409717988034580303574654863149809038008769281369483733778919626588790656746383969450160213120108362501062593045935138952714786988568558074227351942450512700832081241202087856366991348347335371527174614494576631703225519626900392216860959942402590204063479052880538857189882579328555945019726798444280625575682238802124205634668574096598585717931151452561614539052193077771866850525054203727796692090190488457793485159807923759688820998262849225656438074346282196751028736105704216978634799254591621788944411838536023123190824654049615652403121355052833937107031240517456226902308859083160922275778011408663141656846666772976561490969538837525426060230352407397237697054337575401377392120516254471573033555840730021832053372462258548116671275118522338575687653406393115089817260223356845158646640503361436692076688233534240975646009315493798706286760263835588660805925484306729147497276443007457587471313844925177918047370777275774624106409276791936113186626369840607525923962694887350314181020087798511553455094980863713498384718829272975358578083412658930598680802876063421629875791517027021622649345612368414431968411425645645284077186657934837068219689088653242947306524662911181304886047840347340055538170416849543444087404234826761604327483493563935384329809018932096996615201224636991914478795169863157970936733604552449094406827564547832279037217441151371509044658314319462694007839093061148378203507382624321178562252423524478494848576351450617839765033147084658778596554562512179770313711551851987992118790803535890322416879795710979654301224736972545736925953855603774048216609245848291849401454813461392412370752207552168107084438415749334108315719072383794527056033606989202793617919442802659077669268635544060985865323770521075948271583721698806225451498310018900488836194630506687214047139725582881778304539523531590099432418250019805111713164154000229111975881216734964529336756252501874478295430433211561541128769405308573630654438509970098826493056138405524834549840873015563429228615082127932848690847321010149766784270870375921341693471692160813816670448643417265149804312885731070462032765243052660236876137598441991751153246359816971310357585842845262882631764839973647176041230476236241989677905624448639132995049678917116628482570749547009706470224812638305105221825729255518976755629540889144161854787977203591018978963490210167288321566955993629103881673693881258655410086639902473786155167433127456425521916719980585268286477572691903751572765879987446290081149608754659706896826290947150296904751081589343993660457988763328479849810679333098230969038914552434568119334461513219951878898346601511235622455226643712689284650682125119462762219895280065162864870040564847454673617987611586236306704809843613434515383742465668651265919795160741773154182989832123814943490774441478894012950476274032915418416336387986545345722947988178565995315083849072037627571248450980506388200842041698588669028582478192140357440503032441761830831873552919168700197403500825481875793300754244968697424391558046828929624530327817913333762124296774999076495424571387574851148013396050492160872049735386167428658405241518612891531788125023333195109812382961291028688985608979245213712488961636149489615294420381968091273878838456899565004837290574441022626937097098884215894647537193627235821868397983802037213036019038293346889854452118450828139161947847847578443781156421510104817605026108584088500495159831124829199951799223748901307955596598484648277618419730782651214025805780075543087851927656323742405730987438082100346082842202016493852217817204720113322785266308615795621462594458461787585719677103075258675248318227362121770637769022879767671268408311626392836890939989844654748805818808185808292302105746231576275167736800797440676694473327214922141945400013338344170946180517594637220593988729076208174386405060705182787854737213528538635872045891169981158193830846566934952404538458361993474895267861475337135155686855865075233883195720233793642929544763783790530917216532267678651028888113761229520960855199995767430969287266825715045253326047456377763686414599970107925178454582883940363098781656934541946953497803518529763892431661283843684147343649091578446122147735773468609230770899260697176223317669758863421841834616122100282446451792224964706675915337862817717552156880276295435341807144456757011099065784319090380196119750158672085045163346032986946224797855223556215835116515354417543518515777473686310663019928464536278606445069022505522048219750406539585242127177044662221564816361669640263343404497368828887556969255651052534161881076847073376371499049862511039397687103892370686531831334579852423132634109426677868610545989767258836324704390578802465588490854931385661759585976660125555516564215289149703387395613881105117870966228492572661817833763384608019803124776393154663675608752226311813022729920878071014392799110255141334101296105057826599945224208329027941289199902450161150819966742571865768403838934847318791356591781961634366869615165348910266683783372834838466668093856698538386680935544310727012555721604274107962196833572019407742102846107509828362203309865549958833138135280727057098360038677870230885040503153002999920300810339213148795178952128935803378056139403882677496452488783880137993845499539163896237756809275784869281979483194417177786939649806538544652810703658891821039686432324109903491036324687953662977746869156018072338609980105368859450912902819725645578901459708487782730570275500100852926665466220744822371499587594443432225213397840536321971479590038554045957054920140717792093801077707618001177754815357650170721993254890857540436160816860247188681100787430202740386860155715999287596421287477737113628930148871377041676258509493197643015783783942130897384125343723071750365325772369283639079769345705910732666349295527455439323654411440329898220768091369335446540665776217760300237932047570399288987459652664792645444286413772409284408300076474929773014717493109374574505879136554059632285788920929065314478493194067179219092795145326656882202783718196684375131548243723846661909348258332965554692731591135293978989739417022045278060295356633778584933505645259996153456661483806486719468090274196903813759297029543675461591086958358045897054921684043841356023842008964119086090458030857624207804420318739468924210677075449431053650082932788977056106096448860629283628361483503698532919294028123483084511862540516509743084412284566790236909012603481510580327790096330598684309000750152293526722052163108210873710287145215815517356799548697772996266051454283824101178920510057734441403427205131859897980766226904790441732685914701690844477816598629425878532593321814228751114247783642100102125577203067232368266416457768866818299941034108649503875160660862666005975520010326971897461416352236614897187046883031278839564123752862334445090326007442870991379898021021339294703638864395338449065614375305949028011128941470086382031108007994780938888360133965786673769888853357910782773063954607695050954918510413206783578500433725672939931925505115064015220619762549515920127295959762350461079724177029101021287227783003382638674132908891550687537022844551717455454878803952052203960235065292290106230617499371270800455049702015561599235437327175491417576921835980263890514623131956930108839697005995054110780547519476228038629118786204720141251643547665676327368922893683779440174091320840548230321359815109243464332837274313412448256749135404048620187921958357635695768091400520368982213612374021047922251017525798281259112932191057485673083225317517203943875354728243247071004011869094913016923165175234598144914433620615755086631760051124262453850179924562510251624836527668954372864922711400441671262987357405106188294208319311066583225927555802873471934001083524278827834212791992811061322545982919735520054171932002185045804835210132915367912553373848319085726071058657469183261949420560570175794219315325721304062067815481168079457828359160297783239353379486960919633136846269049849231849970472167169930523322848375378981901133278879786243808519287344311826187368174640019203988163686679510209693685872779845821161111978421475558994166325759602030563258855284102315127290315212515249206425854239782064091007030757824370103143961077489445870417171139364502655560288504960324362486513668395289299050693119301004942055872902890482338602606565817274992566173240749946225299098965082630536149458145372946026293236803923303188726571754774641488450114276211905924035052172600153848573184007961426260640637811461287725057927306320425976749632950232361026110516631853959577248645830159351957506989529598660577026048058625363336922796383303543812370408629962318088469221125058286565173184935609250219050487609213272142396770351184212003528464468864048041074304323947643956406580303302191729282636219796950906962507844207363493422129450334242881539568802314488694816142664158348648098769954127752793848460763744897646856556791153558435171535507869101933045911745352965228704522654960095516946609310801254475594078471594175143089882302050138386156172952452828890843437259876588261878771873361349999731326128253338913417327135741804868306024562150030823353352068964991389627241599829704069693811985010327754766221189018412492307519389887005556280828269605019158402127465647263924031933430459484242042924026518194876343613072792451002547384990277732971496880997788430498789074095341042595689311782877991966337976470838073648863988881774668698469134548013510141843438450639524860658330186661393617847540015983533946718773970522925563790009725384658563912100525555337520049112139524585049632237254939291666730110614021251131071021541762531938809063391303695748189136717984034816103172013953081293528913505397476610115972489103983001191196240265244163976614596234130508757393724471609642830759106314759061979807097584390477325120796556097344862329943262299027850996311393563073794449355874652277815824625676596822131433829576706164093139212563222954912672498085478357650409445050761548169747134603766545345273133447778458206523095805188857884878466716915831943056619749991543914287729203952110522033552330659222718491014195872789331644895042508795081783290983934691062856773236169526004494451617563901759806542172179219798417514907582894877952473974710782978385345759443821527937381993993540169751790387747930981931342080583148228479039885640803196268351372328784385598229885781746368319434067066283696398435706539005468579803162932788433911432068168991482607272456195814184922843932982544405035156861005447997418996038787127999332868964288838870327151114388719223247968180671174164127198848556006804499199470394388766047258695528815540597352335195424952887005983379571465650427975321302693669256032918306289166072038745284324689366078151498477072035440404005660118295865406159362378967083819980932114854056155014811741151750097655077206839202727849502151020824853413276011696449244064944464144937258831756939881153121420005650055280802739393566241940789760402431048714035900262397601186596607321645316307394323985355675153346532773572619639167823417989139582160077249826092375493319534575165149710854630454617064371855663264583863943924791244024095287355554548935999147765784677101855481226487253326831696442043638139715729106110703107065185941265254727685425774121343519996661452409458680226822857421714320955409562336052595236449668918322878224565018686529059535225872125469236475155209020277340950628309347446587705425629871618515653672607844062388813686938369992995997091845158010754010859297286987934406566933476685881078138773038107614720104446668212208173048076099797340165573518121696619446701004745679364376995365321531582140364779776145720272194648889598759832422483339400079681270016084017721284085043864494862935783629432764327159206627873697082905859499073476017699788239659021315659843518864808753038088224635234943222380887807561499106280990936205171799880545883953454637599449909199645327303738853688510007516435039343067951963067152425494537038054742137903889096076808925375845836780413872443583388673733318990549177601114493388616276649122690914339136869442972541768719115169828693832494818515839160825709472737144766880121749516851317110287986202314339776097876392952716229757175773183733659701960699608909494043579561060713729051444508748426768228624379617526865096431704577988362800884972556441072303903770009788912978071902051791991975236409482560505968955065621025147995802385513289399066969346012218668602900276924001158779845163317320818615109453831097501388911485990211907987574639451315924414057378988913017968343829805741981689638950907496749637327805111106426185224938895930359493817323132637356641152749323671798631742360709709353127719463241464861770587386495642600117450387968169441766814784851232810114283387402846166873057340683372610716456393935146895091514936454244498503827132904386998914157276003073413146373070800136697462056705810578527643435694880762096984017634482070444397206855753472184312912314995558734489181183805397101322575739498783481079235452875958247052385008194370515996385161384872592093368286615201618703255133870848166942706380977672920527327826825165029547217109574055869200501635530073966961467064407226679337995733897184548291574611465193642307044262288968908418402672725176823508140205853646357349301496118764194910112632649794478915922283156943647392533289793125048144947615674069552335000968263560149682549728839625334071145196473886817928893727143624215235286694712405117668609220803004419772457537157609987306825000302301337418945576677218968971635502934183272305262953577420703240944936169965765289685265029921066383053836117715933040545784706043517314976971319291761155011214483637244632747867896031961673290544200744295570480209289390719528151751046756572909802918233525600828995322125758088255398348488758973476285191940286053472667714842688685994878398348156704716458316241850883752516299607020942565039143472272854501666840441079347750620749104694373951286504753617363478327738481197430289685147187539979503382663383239772357495897664603300318811547475028857533327415609972900651012069789965608019296065519864517800700866538239258044862693548346059182182122948737729555597464415690455439702030363782939262643059857080798424680558052105531986742217763110798982884451273001125813336792629132557837764608279272385228031792263431089502818985080528335102964792494626032176155665393251496157220220768861515937973926046982704955295241585407340201363087537319398438739494578097160125464731273908375489580681003166832387604931443000093629094837547645031920693196501978642928655642497126207550853812099945749706732357901996671902919309644394193330054839268698307396453339545037244003517770975480249637535663058653251354123055177932410254176017510762984776986459890602702838941282110155871557352561975492498419788912434893873525547377350649791193134279532952778850231951825680057024553811475505108074276750959306857026087799014285053198856283521754468801878450315518258020242837517744732224582832288635723778191540465227422703977614768111324834585767114379522325606754503403949053035687031236840949479576601780790085646762998264845991370904262455629762771476529795087062004440581516519330825799109780488333268334859277812306686989720005448583027427126491636883282636690715774158420980260209282780949014075470379305961192918128595491715402264322541824286488309116449275858065797137649966254994469997132461017684302521021148465431644820046249720509729754917209061771855908115670997025821695296126529975915430404246606420466757362322324887739532518207561166950655957729336268618868178564701015470773368515070850128354685218165320441413666768825291153920747071843432099195436938354873584416052465402358682276206850927862217300114872112598994488616843973909982787117715959144005302046769804748013553062592230747766229353247454811026935568463102397275350744316391203253128163172922264263667987620411155829577977659240294934706752913607400792962502729378422994381026588847179691065423796428838264901921362552722944566078621343150098062714815897374266895129908172243903536792676294798824311484319087854816448994260296087091651980727521045240372555029619590189407847083578528961008767163304843917287479244418947828186875610417859262487587443336011146913965618715020591028751534715132794403965266497323523318825280328980365003586536464055607497395311082555413578484077143466517796178464848452578135530162229649421757527564603936728284237538619897807045910590216157107530463472794992515040065126095513972910757510270871417760210560496196874281669614165110653370016469086312876284815874844225754482822235890065419217364519771367021737969168831919376186064349842313091712682532270206416009213996846243107068214347510854511179681279433474148848912437885314380817940793149206817060606967274302622004495977645648415190233198895177144735010621024780121532338749820100045373496894460839805600961283981456178765847753510779699372178483695240815947643472023761212362159581226327531857171411916611484124499362587296207201629087120792309079728824804625875296980590013048230321482057331746485850492340862173325395639246662591771644026215444323046449548054927757087371355175021855642735280021545858421996505444442345826534548103377155099788708260157743466616624570804252444265338802774286546467504755943275472156084814292743616343639731569542003047387889259338875624047496065957571273487579336546580764207481766252230068479513974924328796330834685896113053272309891207591330127672236392354905018069542214955329772849025431313863813386142353810209614208248481949016642311319786601815552297168370317015860392218116363615541878991752171748829234954581490327115777830201446428112716506467332586757954569536227307652453854977524895511206622824586198984539576672470084372056137679965109409537856061425036154125460946343955399313004564310887225383232513430829876225041347686783198939321487952253859500445235723240795648846065841597744285790587774200352819964883332047748569989961163232766948293410010010020708308932400884032299945118778417593709960992532655653538509373132199148517830831665485062984681362875591204999074652080156246349800439449004196180530256927866799328644789228836583244848749608578045981422242938105782140046706613151145596247250433882266264829149021586035931880452794360027833826853072407563333879447411041469607359908733076964363359123662523280810814877115898270227473302160402824137366342166262601684901728520028925694461817704585275343072641944008769555855534497087542114157776554741489404856559413467456569861540486656996496966864367359287378075678622590516854980038225018547784948582426863003731501506603212349501019441286294045890269929538889399823983140006559928248625869222580614107141382930466214568299583875610349999809025494486364743732771710921242637258221481521198595685013724195861098746580256304310551101865364253168422517209791867473365825255045421408273361095995192914908668621356833143475332257364441927517689197321505626728814441545159794011260211538320140574599807929403788907900759909106693588289458427785609003038621438984677975366544361722636548270903310429272914483884735586085270018059611054414043743273936291350792789989396036211366953921240793183138105093750607730546750548147970707546734372170020761253946630945298525043903730670750544168710624523369537427125744837997372715262781117704545802208047698761030114723355280582513704302535084630159661273251492363565249745530989364801511499661321187892116360999822143594144604645186155291543716637184751628660037716427082536240743990074968405266641761008177585958528687579641481463949841985624841130473366776254994920954801696759302267626927068210320440247154860885004614964960766282515407820000339925149831907069171103382141317802048234481112190825748257797933502814395345697674400474722675701779327812341831343680393561402244797402405872372337475002121189605290092075862640057650594276152584174798148783493673977775574659220822158518146266266951643054037415119369876125596479103779625452555196929941442329949647701443296662309960791119917334988157038850718022918679194684417944022506806292137276892655734701921782460478437060189719962856431100602931264693385067054719305530180336557506626696393539770730841903331031157652219580623031005031870210746347851057958417475479981936623524603461056870063297063514826129492987843679935340135183152852546570285062998916324992797378561593146915380246265082644855174113275264555369091140041650112601129797008120824379522603091952384917143740458626405009643437818674640366054118736820080217381675773912926940890692633672758249008745996180405881811664772065103760454853481879696145083099758315821971380769592270065681897174857008416768597838664913792959836123336985851255645318442814319121680739796127497032280410964468650152167276075520226233282798979918219136050724109269285162327026764299144956289591425449676085941482540509078401542555595864976496466227639716207150273723291634201344912879730319375749771865310757517383548127567883190172361348473956133059620724958634400528334006827074702305709637861128347497318627467753463447345605879711640323375590085920568974653634089861740644681890865691018320032376357528413551503404144554190606722197965035809711390213564362890878141540545134838825344596112378583533019497121369947240516410352382049640972324383034915302849023681173403460195934090034648522024031330095593805130731606153204510702570293792623167930901583609079987968689160675073955609854816163144430631229553385286900285184821721029011547244723111748914117050403474163351427510779418150677312745781241620680306412836872566418221842329208746374729749734844033019185982985339587890769601067707255013294143946602009771746955009993577962342134708951063476195701245073594991027412676771656767483374962446302530510957584981576830242883844654374532559117504331228395256206840146418523158943064887342528141617820228818513451745106521681111238606442206256222414984461537124712598536944597256432847402025944192769483771114500732492324290986903047636596813770187860056006645064554284096903647806029036147375572174143916123699019871381150557045298862946522454943274224907325744692176198258007930667014953606453548988294658278672178996684010919318397414086455615392514369887877615177341713815204148108831218049406400580171089530489185723467650134939867770557982668640573656114125052889138274965334176458059842119389638223380524796647039726946158949243610794051443578471839929048800687093246809075211623506663111229415754851898721282340921117878536198732468738203999346113089699859493162335377484296479460976362776531281901784229431633684380201067836405640308751372482803593774945997500137678454026858963841825110663651054901667677414471029838337603997897907142181341058379278146268508767259821482751637408917805372594546727917861275302161937368078329960283174260739461894210323053113647543516997087687305399617736458819515180026509262171009750055723933615371052414018004544182567909605246159421007481082882832982437598749162508039149581235984699045763482450328761220403680046209316437953271164804047910291729992412560877024477857702799378056906624152435207674397596317015832026736170952082265507845988256914171477703960919401132975469896684535852851251074746686174236950610762388074289624236274353356662694654615560348917255365562009654445368081539482247418322005589067880957685153623253201257883553194422819380302386737254790374652398697168536853116132833620450614104976850358869997479800696715042688580565323102868203485627408361702510669918973527449563814058557048696369089615304319293120338024572894350422273809677902177453256614135118110510226338259340864803260791801499373414407949909891782667666786840259899113528243964810720388198121168623814471176507497104632459802974041321968353534684744603219782192876679370266939992869128553260868516660875462523395875387476395276131972229832146621915819750960319880457296240146720636823587536728395140815809699382615614830499804870295828963772978556923108777737870339164143049703512091353586696586304645091500112774804328312929872753644745616525755165328156707621633454135405409886232910366910213316645811993060899860565232917554635049822529966677863203727260070044633874126560877672250556902434625379655670169141497246867752170485657285460217492883564388468599837467518615632679923028700538797643569511096587085183827239722911374800372743391969053428739428609219687666992962327634161594337020088770010366145712993978826652955055360014514762042124143999870093371463716671517231888641620555742821222975840680571418898172480245971345126591978421718943798450260130182302985754166758438975059057966372671754043081078656783185361121432332742140055009794665460785566215949671602846850006961160704039338794708906803921573742102690543157587786712103120428979602457340425638809599700238128270635134256111007842251160328581414256167841932494113397035209613253369970110161554242827955079011540679230417343041786653197327648205953714099488657087560500669894867958285030880761533284031178756631134190390357922952816516152601659988298840567722522749505510137629192117846457754024290707666076798633123202170036078529339149263947825992198963508169171300257722210781179345181516856183103927099643646970478421976844958607238192083032723615421569866010441274290679760115470978675642491470508228895432854745092735201628688265700256151654370038651152050544767955557627391391533785050621874039508981527013142510136732079989425112776778986570042161665281851052939796503317386867506739337487195326024716653129898296325375754579245842354400635380393029418891208098167730421386255369649893720779216783427859906725202979544177923546780869657833462471139163119246990752186399700178381961051264628153900211810631436128132150126315508041854886128827197510032143893715900628529438930664989005851613725235900872084251778130350580940397237194639102697469399393518800958128966133111780371626338362989484793769810347999357091795125492560598700420742503656343501608404939959444776298742420431073561044281837294494722566627303852568669016736936014026062489890164457991112621219382828386411642882660729497168198447412604217432929800081308140305267349703589521949799579176928667642452379505424285518314865812974876093338866455224108230984890963425873728199237197407334521020824532879416453123339807450487989645909122521832414982447351673231713253804756178502647177133386142605312092753446764098453615273553483193048841089392635919744044869452929652831707840914894573828829215604100921844456774176255715417200970742008040175065639960139669868881529951606783074333383224026923352174794557364096263238408873878077322758518599648824822334898845717194849867651774983456457659345394864036205033118897440127616497020854024976206637254962786298304964465081101248132503893697072986049259215721273969339139304604402552965121058148201458773004875155639627482911823710205855160285295174815631812627531039468964997624666971647255850731432302773090270485974737947751897938529953894633939770882765751414222271089939553218295437070048308399259572815002743758380685757690791922237483713124248621288354765817450563406431814077647531694602357889543012840962641056032051444881506335599361309842505749001405707481600244016292490111022071741380854951552279061608014535997772662225225811210964779092875188033712204308255665679789697094080032681041755715302942630193940501149220508348728002165403810357072851842293361801979693296658258283412920636924592560434076487089290865205456675800128113678235671645963336086923961298216474028014392007764601888792846286478968338709739541228889184109649532191336831504015869127822940104494639400850899207773112251451019777432173561221988856795259793276348562043539896090137768834230778657872936868169820297274380611671589114865277497509203960680124668002256074670456276691650392583498870610862734275695076040534613649663963726913960195054958951191910791050574466662024615100412671043163517270224660345601244727860830229042256675431790175138672213005944404916076530105930439582334534242846298147425641053790712539828889305236189690322798400779081061388732904936376010604623434532451471352230087304603410394612152060849161038742834206752484081671475348272504627356756098325054184481105092431053429897017630482869889899696704596048031010266550240123251475519403210131449355052861163428364368781706940649593920978442436507826519859975755499485636738684732590004267784329037917440129291174346698984278757168393626520239583050962786716508342074911883972992254822795933983541872311609460149659786273079002406354074853067602098152339504893592473478971294323454126960886476690032757080497170878820735704327801438016023857927489438504022385473222094283310317559063274611751165077631169838534613167823009025094566748108129553573220671589316718878222967530679350886819961060724120166195300959219942059715642428551471664180557892560833970313956248321390454552330683910029554746504190877131222698007469477381783679085779662328493876543122222093305577734269309071553529513694580828391268374580173945210123998798874491696108008110245653126460158513637832431574124714646624887190664104162401687486289931676370313270820066027475465039578210723248581299890752338545916981027788820529116631590890098267484681397851610520322728801420585373808323568391374505329063513888166476242860087008345702213067556201375570726965466282064524199829833530775600926873176996530252871154565780997614849061841644959374312342486108373713554803296266281271864176964491830330211626557849091940988368209303168620707619023992930065643011205100318225861867174033034806705147634426383103767726951566639007128602233708099292671619520075673394448110937315141697481536097899557620937043058417374346667683446313145675909088394106035021789062112289152747974818501585446781266105325612964560475709150278204812335011488817145539717079911266414896976565863687619212867987672803192342655642074497608578345067744149822814766659637729286984721872817134308288884262552418096058050732813882529082657560115272710977587510245078824362693538277089371545390305862326158495847686930018911242694841974896068534260148730902425431046310330060990875203485435970768136566676206465306486322114859784053659632642878714075429201024677117698287389365119183074974330721052242109155648635214476250004373219835383346730444770935726215494445244921066243099797863541584567719500170341061291749714292592229973598670536099067722569877693138702426640277045011868620443640312557881436039344258541486587650055896130121578529168564065412343042232051506698667651380770310660844726967418224968282835420461759451658243787705633148214800578915934023983818056776797332005411681708242308418843104007895531992449608483370617786979820192757056939488260709238316146492737028445504168193843107632861820238576634989854023033722657834253075096865965870159179570345800611196073403336130605392777743700472670364973526249817674660874868560453543711716028779310413874598148566249655292493662947444920979036186303312496485339100880405314685829684196412744371933163450547222835706160187063942808261818968430809561374405043630992531124095825914349517781454048686230412949746295768372376990977817755346988953264566423328785026471144502997195913905072096720750022760487255060647744620742587945494697841128239313477182088604828272455736752039833520605973335030609926023341826566320245919073664476375654184109019237485835537042461084756929452590440376352923164285922871554978202952418351733485065614067765556928754540989244608203299695755391536784226602076383905911267411134984401655730085346449221236844928713375871339210581304605529601125131927960095014965493647921611333111992268686880356798390252677607718548102058263310875015155260026983073689980346204489425494462202050620990846725944540268759263968575643580551517308886781390083280794586982258663360564285335098927528941633721460802984942331445865748058984039577109071430351344042610404427484299908309776451935930681140546797073049439111966361350588803638613932903585455875539851255442692348972169295385366972875853059481241264446440847558941026535298972539439759207540328008916335304498511911801679853547441941848054577195220157493961919483524570579492815626638583585926092231633882524830715620419788929234059176509333406964636027521970659924747861738000341966517094392327042755756510600627431685763888685948847495804721368036282814070819412936640291996269251788921667947345470858939092130832550163859965793315996288722105748868136257621742231691055325077694889303619066757993324831436060223555036567999820419232850703134819557002612303834449110332350652032988560958482626981839943237637394151482846409419680430032068163860597090412424605676978114313098481889085282554305606028732463686898156682924358199641648624474334981848682161223975251651451482103933944220428027584333306992201916891321135086546138732755276453830941640867572060913433400470945661643511494044271932109963987541238634452532316503642680869660009771422759278845521059342310220839927173639229610867820957804501243536270078046891371737141286234649337613889669152046408776757142708317363251755411077879223075319315230461152914429468478904154754936353352733106611006933460697216401526085283360692948828328876130208736422999669895594409382604313382040057830606228175832535408823908704174197951682310645031983406503773223568584072444031165032763099988280495102865130487641411573018268368927463119347261888940604918702384000471051211146035642205765009030734871276057917056690605399924611717947070542855390472124471464184045532255252781616690003276006708446675104006563181493923887526040812665419037597620693210072055625296784869850282854772611036891131471874659671331218237966741635741813941509825922328041962468906058706267188032545540425608044451915316409230578372627122462695972289169038859137274946783336644634184624440393950042064900501658352364270720539894247540401597228085882397375504317455990605495273317635198202554543434030801194241272932448645257694466123026571836288038665410626578018391947693184184654511692527156833055200251433414770239886312435738835832921132764667180782546957739875709849248415505849336213509290737645875622182337576594291022405184987736392965671703949060199901544625478961036570215365015594954391622465767237227741140361862089171103659321529356095594053909048467219993193712979383305402658745288074457002210780804535322025690518377264236375412951379107139411241101548230537284249984127958119747481602468581685053228391714396206843665469739131723336107872350118153022183842228795751914378497133876424496540792996434285513705386900081254864602873531037550452944955911673373317262678913788985955493499998158617280150695639241550407256214849787134734168192283561959391351215685040159705385857189472692427351767160589485239361244191598213254614176104477383551891523082345812298891609432521002167174206450436422354231544178457949172812390572163726278819806139754436687405894680329477662207573768600819186038450240062747587181314481400813616070829212492566950811094710677289211976113841318801995379612314959759558186813279275461549369070623811262982331811774659407460221129624253206771285988857207255885459084104581578926112629466561943264588468685304626933673024638041559536228553488160960931650403869631242718909774038329473126655487812552915824588691056750540566402824358902449138458537193913341245526983831595295119316502300789971097359890666342038030763890138261440999246679496448296713386725968431565765641215360493895757157163007965161570374738134153063188574008539225279637769482222197152519949429994575178717756141223066838574875763702337274739725917992911247351816492747312557823369300819512865053791649361109043288874409654110277478678085643184556330196357963299963657238095810176703220206993988803511086143386029527522394160079473479580127312150996496839456721558828851173027262680737096386690638663337377404179470489444110795049124642476113189114927287873269457316795382259430230417455526674146998541137845322267711491015580345580760948892595511638993564101945964168143365087393586731397449108183311638773689830370472949106109880522245228574584504461611176539067814162211896530694596101046613211680576813417503537444941001309561814989295822558413772258235907096738154349830486319954439521306866123251994992156425720987304387330395186920251478614554427008496635465702569138404923908186379996087182545772099109767114800133480596069023363537981329287326680875440124491513650625990235486666720613253316722175076458703535408784921166849493698336625121161298353019312653711141264095596802594278516088323120313578015802947808280862609411678629384006802974774619400766461262034887536586379456328720623715676244310724197915665766639104287590053091429823646198166217488436042798402987397885661017878277685379488694110029975497983692641301279953988284020522687345927060295840215720729666724769441811190022780876464172231802138588708022908154857375850128394921011198890753701355192782691873390425372590318836143142107271580196938772814845211627067765328985848396049788356450847519169829811250919155328161771094696101715733591450121977771534784732214066228669012122265999386522921115445686711280262119412279656821638379229739325745683618599346949338315302223843440420369092655981959563658039217969676557881535107023285104682990626950745723925701722849585137785383398977280237644958398769605213514261405572850292401349628938617720018715090275781827074014678006468395192248867009127056069600125727463746241262551071942479507235134524179605252898993247482079155578162981181607598875184924551220033307910569876314185657288664149882980515736034033930366574209147923135864699898814068587076788132435319612689952014665444760123358118963906751484044924245935872998568405276353463089027284686783334860384162729780556467731105499022786664619095732528014738365247401921396125486851906389112335086541863297371165345810720538626291453086933044519377477523590934835361147234662089496107641337839828420520772421268131015758498500391739037071157468343812280632569294081397907833133070460369081970540490324523423666215969683613445941497561029523289866325629336765720631410321953664268618679992460213702885643969544990248840918890435704124177650490122654370880937760489206069053783648983621571128561799571278908747197827298916998287522636241683831916577947772250284448293567018906286804527469044450818711995229017006322272708446917775027177088994227671237828930624231189973804318996471629853667455892319409331382862169759673249527407529167511648331442174259039212398844214911964001035965074758388045849104399822062960159156024902016327341589371411895465984108730157166979591645320894517922611742481028883945288786684118444354798305626966795207215729147674350157255711287510220861959501230040036528786523253144978152765017819338606151076333529814240851162456634929798212951851212965474278242767007371916218158563270271460217427990881315876226425283690662828235091242014712451458853311378134607548067795347424601777662066702639444645738690728102455058072936639640769965131111121713824608325811131165613512619975991831590446136204507832585827725962793526154568040786497179597150827330504940260010103434035316085336324080278830499700058271216237682210673495662424500126659687332229192175380551374569009256357952185223135369602862851307090132478012574405262296823653112779108096164446424882758860302093039591839744933739350993220864172439502929745028193325726819272118058052861229332277448117130770301255762674848151108301895449539943371341955505170980115702709469910747483721787507996196127883659014007356620734863342189833820333464996325814592465955172388856938850317115373428058849085947292233737724660873446501573382653682029631081286296164032929377038735045327923992461885654848592011218100858997431566264566367860227489832506179534996686896900494328843484942272945405936867951573415902675519978951385916327227775851834663802260385866732453663629736965895319958533672887549516567203751178020983504884641459964597614317526961895657335804385104747347230822372956570283160489471779730728319250568241036280125577784736328990331962183669703609847021548595999562794249958101659336299375036564249559941380382074722320643854825897579623809016604598580416289185451242905381558221762967591712239637189366773187122393661207208938849289602283303467258227470238444991127202601956875352440410494372459372979225501339521236922402594636382143366744598816452740917876608506450253279374394548559461562946679398848307621071729926042114174951389966768302103361073570691052861499992123519194071269055193290657936763400265923734837241171541606835175349712447475608375380931610654662882533339039247844979052524505015388912017251367893654685802202446907166896768360928763760815514067440640902194077165601282150396784899578529939739513941446522060792301117047175513418870311960612797602738781031179612112587981136824938126674317802317424654247584859541862802778233914773382946936633161409268578358427324276964753827806032055401163071152930587730155871389591803326804255248664744589440477041024396486496665247951683116261555383048289599391324621884583977926088847065720207574440482707730182257086802183257638387310439739448325968225985246149806676819803655086486595013859179159672829451526873517506122883056985711950637463442428138659394210241959148470929897717970479047442858285080319607389768365927175422843870187043588715595754513153698911304390755594813970329232051564574449000691367340766765254383123853113772030850116008629425656475006674641961908875060127517178613859882267166277244371715558441737124394736070987845100311510383615947469997640368243829401611975976945592907963041184342345683626139936942102057827065198332788900569770755410999677973633701946593539970735917021798249684852646799319480582957023122800800194082715883505419337717896962649200578496866703880665814004612870616419546272944473414349993852581167857409484002593517125478079301696306577800126266545744925258629924102465991783005440435845944651983397034605721013309323472718300821153712849486588425791683589358517790862385870969801309567303639240778002567635144774293916928211172220789734103926092582221337234086127773052140793434329951791162394314764703177904504917080902492894735223991172431068115631725264527447833020809923530464544667101158357473626410351482574880517212485598654034814554384301021938831544381911293452518770475668467118767527026639412087633565341249117299911957535279476876600377958255303504889391416193616910038953236872854596331862821109140456803737273858883595371547866531539927925870878446651850701000117135024744273173100219554914716478283643463644361931245567825188616424548575023939191129041665518148198592416665745546445156768365151505035125531603360077129259479659277200789725268548551010333444742452459598928828860073113515421480743385526040522648876676045220814585507174928092397214106003444690985900996958171527727276517742111516106525709899064839151570042792139342508323029758975192769217438092287261064927958377923594228750051197210874471237205187942730204208713518045501255535425168653331431680562835349214759525767623262115416283097037899981277742144819872241078427260736998909728024471577336902484583145262536239048092156451607553356210887769571499448205047456709349414529862469821875221573355491587024217006535327661584595696713127670438139305032326800463915265458209347919885774139229633995941315846994097634191274672011975581581794420222630945519587052753634900694037874898762698911214575263946887167054942078156390074651797949130379375148526413182544358007112536124637985627175582604770239043493851978466095747510325266346468328389414046876513239216705182772301837837831767157263102321051883003325109691632870719490870542937183298070176804307318286828855755059210184146469135100132537773170699490440885803329843402868188049539231730587164444801425481571340061918953291645856280249721152247707493211048407468745251536251317131323248784145470290038473718083461219490155622585158819329405877937117079672717189615109168334585850711653929301033138877552943730075684664384880711699619781989181980999632566606897165409588134659396118021441164455710401225144382390838184849028082066050825904805794421881910817263404084497907744895038960564416285449873309411943391660939564914400781854563436164669180867842462111215935865980020186533787933944496547155462597701776874625220809387040681426854145145776645903126709030001794840530555802179710470835399700799270475237484696670361077642362621342160987243216730521753411857617225606270105237029912447362091485686389075665631085369012108555819531130113645694154343071890842611918347045987230483663926453479964459605842247978436701568803023179254183405549515787711884420836169813488522888880896232443674973552993000681692572576679180626449618042151649398812456157288403622123308131358628857697813212921229741898569788063196892837128523346126919744806031238170149659328206218802965370837897315786733968325849123034238298457493965752156729884974724836495630061473709308138530303048385595448175718779321081885641671241051036123760692815589302020545544568165303789041930772885096491229550333678726931368626388780810033695188875376928588246490125345946530977473640892223308435334797333611701161564019779238999576831787443511649800298931521046739774249772167999043486856009665105804486284514420653348424693352442112938560213474442131788786572938851176609639650342991444942886110073266627450846730426714780921289548611963936835537296129774177667295923774577392535802124156211146034348925802547721628603065932805928718216894118595321832504909226052642510061011376405914036341434492405396580411442355190995218027462105165586177245294848231242126910413782373062091427856706947519590467981502270445704312110516419876214176423094118876720267039798837564419964208982404938932891401672449696960960517969335358480179180209854192291366430696577413095205620849710964402102781376595137104395323253689687553830244080033360238645510156638640676570958188340212148418213692204210550211954136909951896234548649711194468994955197416357053962672204982995605509403250288317787893173544442257106182436371613613201355127126512645238046768746900811531119888176299689922696838037490629549235746277260457458777226956438058169605083257533340769002652177589545206439857004668872431377044171782288083754909776617234774944463162639923648176557093423255431253667931299759879044423048537980642079297874636942339158542000219992633100008179330193206992146743269846970146536673222680229409746434004689722337314945805969481187999637617705616113438399685485299298183927409557377527335150788784507209267652130012504762680610120509654360490020930566541800642096167279905979891453091891940651167626533672661584448314135716011324445366446512115245042782269778923046949335641919299980015649787183152632682015917269395764193974020781108161633314231637351356774971687842335951451234983007980399549396913307096841120654722499770855526399013380888095466664126921662201970322260669952257682740855576121234639063208030945799564061484062294371581922877593224843779613553960844924565698425464276468447479664892631352832468415669777923201326180270863863317581659180480658311538578524198072603059151274802850919975392867379771538451885193972118810915809028370084437941854102434567489898191239977233405911585316318274726916184603120403951364931895655722370669415086077021172476620096387870037363521739667534488038266443212015361561363735311629384203730224485125612652269828688370073903420787784765054536468425598153218492308640683794320567948291915480971303785715482515606483136297765991011573535655269977177315894087142118220626477974209845180106926677267013679903176966283767816200166021122338690802195960872394719067826049699859963293888707529750455612751121724023391260379838968518616271461326003250847870393171765757256695126585970735010307982772661008739369967211444863701639613229431185322333244670227122484418242633300546109102568063393163843963148270338063348687273649250900257733164458166921721419109274954466363789845723572728528252049532551010017760067834350636239156233541334677784750337111601535320612940652317735124341101603977928100017262760381885063362532177425726623050133187685348544073875757150287597704865618227787731047481091546286400190169239048302660374582817037718678825919622072771486681411696480264864694590079555800534534000959067641197834746106653932714751705119152262998318643157103941464310647313645337304546106250840788906764281865592863039122916234035800403978235384382555544835838915826632334035929041467514650158592786201306089599952090132673483046257618521229037493173896088566952363506799573103214809572415486708032682637612154505957191182332708505016191422399577406190392623889913882319948709258080347048688214308782346672066860029273571066023341337618054216800348346089382628543913415435331456335397113638298446799669675208679139708843067952363216694555481223950802606065280404477275423499975766068360062872047764495380061380284619197801146765893695406523527154287662019109186539423594702825276516094350875556278477927212337577404632700569479223934531972028141924975490526688186491734909495925886436064538120124314880797815125682794319096509420848903831501396408968494822130329750815417238989614985141635149155467426096579639089078836228951674216770737451461887439733212323263405626700292595490349928989873635711510467128751070351494498726783560395019446660898465652788748958038192924394598643668069273920693847713418259871789353087427795534794611805803822320280543195712060739167446652011579854712825429677648323760726925164292383122049520996730198552400022853327868600549615396760362971962743614973091274268986122597532213988209756835501800891085990621025329426718610186233828948979541278841208365027581161535431401081125041205534337375180051282830797212621659535236884847900157015224243214038681327156692373002433499175024552581546271722119295827682217167118073932732142799713588772510466863890027760953242545901600134472343056478305387876958127409351436104867362057205490358205350591102211604992460599274445406455888222798119472645311155425315514934888871164227733069319720057227975183625726630505737474972469156706646372514556491617073763306468260843195942811164977408800845012946979917158140497583584144998326869443899240582005956961152092827683476013484253608658730688135781769186570000316959253190656815872336360394091352346133127502638099017284640792394514958877273039861025329427099870923993013919224154829691158380770878061574351003729076573275881364237022754863096034823607616198680513438827861031144491276950564398809113459268893468081470068930099777673580150838876086470861640411870000031779373714599139436301264531411282775972815333914761398673999319795386776243444640385248552803162674207383106923146530951435785213240962177683209965721356892432714737002375271568459811436732975085398498807493851487055721756844734705591756110101754240355509275906655588198844048037867039955700844570063056420026313400905667842838790621361966827772149595587606980894721318795447282471302580680197033209897943992856788467746940143080408187546344661767206726475962122479677031215937297827183715822653613409003060906790172695213288045606478017909549937361488693457862840249927880812193029475467288705338200249529525997702904482475979557295515564906855787607396841437804804724282785173711220773297468777630652572083888953561481276178562669500060978437930911750369338710180470791979551013475785663397690942887801148230773265637097384241089307272861837083454979618415790126857429767399056340661680968522057430551382559394325591923907265023288485121091688276397873899289578936780753616784393283822066798996854176027768952160271978795624110036103570324289153716324292178134044244101839943711204161457428794285139822840694700530650108548119102067763062117376027706247830382774302745931096444249865060533034241850932875276700831192467380940301891735681292220716083520407887130090207575923750416761013255471616986344220929149434107995816419376079878233603547445574051648625030782132219712741908126059475714715317576497525781882028167087467577187713746067589130693698041570766966026289203787948904860887673726155403081203777410956589461779082950479400306929143698828845065683534924977227931591111858209659457940926606933873740836616391133075501272478933121123925441550908411620299348411529524462191943106550470337587053245913781001232118690472761541568557442533622427309235817996270937436164100138869772972976915203840063834586464462764285834830782218575338675467384622638461416161689469772224058955477006957983862325791930207277467461030773075922963338896570169361422971644469185965270370265982023014488095847157081426269842936746588795252589774723430991217494534278278674485184874116312315936180849352274808758908181727628907006157794965909140283216590577963041694123668167450937201206691674423941960924989500538102188927123670624143261454819937507697290663212028934301102298329385111956521398669378052113334023711942800113092386593096344076751145140475625738817177067791182824281789833426657216193892521397011354572060356432764065009285693525563450493201548090741720818419330668067205923449673941752029488670791504219441911202292676237256222001407966787510470199758147926245327307225638109264232293928569201704031907789982992227932255071964551971059288860476816320574358336947076675719872066054802471667520879690391897131242171133593110777372358125722249471162199507609875470705906739938015160940155478087923879019465465416924012440830829207108741796292458011968597121934602259064932075726015939847800306846352252834343400460272856742235627259369957611023452635651273945462982694781949709406738907889478284323732045796267979255975699767836368611089114395180793625066539014332014566293931169183667091728640906449864333534761157770227533391174942536777828491700305769487089307873261564860917752985076706759130135750887108875894502151056180292382564900094079134439039809522204547713249059598305723812308504089876431448142463491587776463757348564040133015623568679198304837959247581961899126193891742532749624671343143418918113362399670715107566697568261541538927691251624035604998622678089464449282433554993498871457902659801380843258634709847968971977354566150437299969003827637703701361567874537321158034626925227438796369582818668667794487556711400137947698529720207712583398857726057432887688925609331496137542465255194147886572759931863212714354660385723707388876694628301311183522113614039338144965150110648373325626838371993486409209267926193712819483445973619587700975228268995556713968129249755741071437821029233633803235107876142473929538705054071467513995165303537655874084235478057389330755027100683602337799821862474258261722451420849234625025274222555520701540283269893851849123673166383370860840355096526328687307483661011874024849503392597563122019540552028688212759494659220707478215140748869075491239136270561680078162427065614517015151801830708890992751003081147554923575176360806201533260113250426854382964036370451279446929516722396123858145863837190047774027600580585871888652136670116767691865276742836550136577748630882766924462729157965649513009995746211141394252849389861848874112308212370357981388824815380896401091188881557055161479638047162028588620960144578700613352829359375590151441960912067044490598357413726576705089377515894954600672413744503480096263197426119317762312099353141373852937609749218770461806473879957465549419576584603877157256473787361328912722086360283187888701352678081830431662824438711512197979902587229883677898788205301612224241612226756163826288314153071462982331178086751344313393856401053555620796032296170556606413751634996560511878521531527879323388903128327252308738249849068214888430961328181622611430651034101930799609718170538226981050627101170551048379637734975152601473952263963568850635422845169628220555187126568174566069867281463056855180823311705385278184843661079923245582874594198204763777720620216836392376050645414652702210016278447113563855369737751485531571613828804012098091132439729304047955097998687402185728033093630467108406902594677250500948282849273856102290374455032123882395173734306367837545348064154086199107164052455767049582775148669117051975057062550865922033281403693921741805409250013590938977879897629448477155416012294591223790622978922014595553573396586644184953925764034498875710755263172890142871951014359827011995644096506517004309477639798974789996601834209212706389502061017378355928738044907149968048146306582592945472593529761144260082190470520397180542125983155325189243421505652113472479663811355353093621398171890098078083436688660391835537616617488796945431389172654337661752798666557155565266181306624609797711348600534523995994480338148909602871438313302474370263086335832902922420664987729159095902655908897918488999537692204977489757104285226956524619806148486132561882165486712120507765888475868267795937522957921087953394401249118081566339411785770242257333034828939651529783561207255592136211170320067435536590048818774896484653425256451514853700153560661841077641841444926260772026150738623147216557449922552250376214963470280588876993377590083709497360249314201443959052840680506463010327258268711585825520872635237011113901537267745387344348828077276617998173517996779856562779657119819891450404464063032080552530202814445025067731228847719089995347149769688456649928648883667472253852614867522745642291615600781630390617396412426987036673105986538660335934387515407802867028452750083197866482191784027210702644866370358393391195400496441507426610651308641918932629813570041555168473363483152255526039130492809314336286031784200837751607983099321017938099328804542680373665346174306568022801658153897839702233323597077343043599220453505685018561653794243182227239034303655049150053776708273926382362254815741652787395326691033738601136257510084257322777955765289697585616476292861584404976483458620595646641540747007559841513196020022905558195857051389083300613225981670612595741614546913948431087294718554530242535400775078350235459434345970058801896852404064070890442525473114050297776571248599913011173178787431016353410704643685190929797522813567371165707692213875721445001616223818459287179669268016905696903111918585887971650790339772758691341091812908395932909751608604627262548171119138901790239239346882174375832248544673792270735409054309116345362213290491468872273898543243378928950264355243406516589165391383890213704691546526656775232745350662119144153549106571171466017251998590579730812402973300293971834351550512272426953935155837005689800920948065801382438812134626515813944334539726434152247623258478507091008677505399813902144286830188568946398571983121618961282371845612611856535598289491234246959418557943993860622159356790395458645132844169840271179910146061183646087678200541036198998489419302215818852527487584420608369277917444837226946621508808650508996987836043448845994675640828330500079510680874305483210730023040211740530823801528683835782662148976056937710900602972225513294719168991588157072825531990626593148386752073503781483739124809973512578800695038087003439948069841305405086228754404492087469770776760988488661151709927730497982467847308310774994486601508681578738977256094595417133455355297997667795491609263778292273915172091849200368755983601980337689769486628773370778063384666563013517595441538418795239723859694747348131243219178834077271777918357875441331215373290379947887592049974494086033391342740805267554272585799401493451367877707158000345830118386577657696547434810715691032021248567333556744564309617013590893983606153655020092069112295933736246790591351276211941202340282381906462394675543361655932356044600706067016914982414395254260653006259447523312338163190128711936696963463499226206346251193213018971802353350864694951581510088545826169980897607094478866437332240743814721620366097403020422354915831708267939610115017951149635717448648449537313596805705639407068157546489052196420872090050385392206985657353798789395732690768576885879410016794708582867701253798626712836445217076768467643326931330138188738631175712688103203653532076892513477317444665018761760402894762113872516511448965424129389175297914813251279622487246550629499338157609296618352532028527527427781913113645403234455343332432130167495980060809743824181539164738588904611541773884273900002582444763947435466472682698170125629377057132932917693106614539122366841392428090332625413780062997064270888103324797695764140027597020119571036310353978796633608844305742798641279884266454991414302257252414529878857528793812115846293347848786574953891720629296791095351653241601019695912719517297383349649138205324437687975936070035672934651012636655163835889069229870934502359505199804469586457865261957239177314041023718395677842282324489387461582574837030889439742555626540904823740344147584504062897103022696671144384986427689258972999129907126132023932900570781249828652358660042140493248715164298803362401249168860811319822705891113173379860586103771874879327067898154952473524193259981525440976033849754942449037259938228262545837765116409041616905033131476897136425633760126806272407646117550097057252376935714006166920410432757612715264328530359271107316016186097775402751806228261528280781008042479575113640696755460274185695342043680727821841787040954305363549148203897827528777926316612191350484373209617053806578347895366292081677147001992055796100937153379435235599106291205335268535645482599985303217417529153093910494903231049170285164872619342031134819530692541697790404961180232970595298011865916151214231826225736463569278174123878532438513634860606442113411630310312727297305650052693340178687736705023753815979246228155106805028078280119283522432492756688135292077853996137848173354446722447140316895811005288248794235283707254047335615543982268254276240551896631335069144545770332455100819881754897893423355969844807208975969378037800400845292536351796133459341679455857132164234833639625174561447109790616528022362578757405099693037743872284674490356402593783611824395814963418792829865086448787857701354796039462804320450709696954695384411729379208366190038772392117547548584507562195708350743986321717664214146110981693924988072659210443879993441003132366944905715489013666873548552595422829562836067253367985715777890980833513965793215215282459989648462532456971847109350436839856778118681381159644434693634939117725758605417884245592311911410638025108630061340487262790372905380514018775517800204791638870744700540635302583142116296641421206670880279050132397225542138584787279324930084547002061322114188553895804670926991886772105858449094773527215824103810744367851998667422486106067204827450982017983139078406969662263245907825177307493048914102157652157210053967461002593992040784922040352752986683584176614137162054536136301576736730605787146768567040138660890871728544638834064825955114147882046326629068713648198097551057057372112288774155317475410415388887658217322655194686259691287212709258206059913014314027115392179944086641291099104835991061564208489984415753284200663694644553175377832827200359410479997974459807878252457370101339563706419330984833103393690186535323138289048339676549007082182788531656481241022657372700041096495353194703130175612753331482694838665211932785633507520517052984695031674802354900572901497098286510680058233356013895804274105285937554328757719803680928574973926913198402037253755968482298182564104699885976307636191510092940389269157108498204013914165004014609716091017746674140766336003866767410744094779380298426666089460325550356737315610163385650030380549973234313145503724843937232117023328436513206781728086256687578573828689671479568695771404313653882933516422152894389777451980410033697727991652954678627707442350076616437777530146925151291265254809134989383482058351177515937746735144109400060783245693074441845940659148536744731159066516833739801574419993362232623687609067561040514035100497971166202075860565023679816951362351050527937439140993387286719322404092992242886864642950927765705487935632620293304067458063089468949352720761202639215890095626960662518305559317558028327633539265050708549785085010214511130801197268826257046532446115124461963758243407434938272618490931586833447016601485085821540036276514213132108522473774180165060072377846164043993321352498667942371834301526540487207828854682543501153047476527751046166848016604611489815994148161392647116034088921512516183588464875821931161781447683651930081158888445327976490563233798192803983665677491867032722948118044049280443619838291400214650948644039399977034404106447056103285669755831271424830588795270709318394575454023297861719559020123177163701088913384934843790566379896722793590590988770736669616925815899986304160705533673151250337202083486219305355791174279069161138700826710758179130011614693512914061976664414039307162147368043575859623111590189883185031528270520914874573948436715991877547010569384572214561974650490152775163402594358283002564571353115786899110533901650890528166586436582552480264663298330347284194101533026946675968281833660776709810349083943772679579588548481738350548985481109148265731480950152499898471204887819157822422451321069189762144562190325142906642965457312337237319178485895290186242745287745306313249988016810645731617931642597078510594479732746412359247291896858190741772570981166657829701954012746786824137458372362948823498069602907863793685763853521123640423354066129239382665140518365541008288758950642448900679598430794529000979440238109758376761368190959430259303167197172961748382256327813626584320038004393701341153244302224817036786164461715071446219329908800723658441087782881710355685661748682747975173884799037064783670251019641589404414817397805711975574820221179620038990221607659497633076132063152786791467516183469196709173410882792444617877891861668882248555797895590961981202344150437439129798674243828403706851257138910407712617263663246628729046758356295857941917614358574195550873342102686768619737404516757369539987743970928172659933854977703015927163360126441382075919105773324904075936697677713066321123959550690217649514608358873497664312854022942844299275809858345097974778650656897930066318752425271580877424919518445677707617466760315522203979040921638331280145035815660495865012159807414517194796950545187034004372408357778425762796153830020214751474733485253638238471873824016167579970319700265107513396265263731821282299923305282196248798256047867720437912898913659484038324074732296684005098037174832533787792755734983729416942361123449519660274637371550454701144007909022038935760470557569161223845537854991116469302661390620394366750155693516018210053947494042611907238285098420446574209235866186565447393272196021959711306700678103765192389442635365467501967587941620899410275147500543668190218390754383082118982321004173478178689359405389883527832085525013994442291194627834319576258872919371443492293119018339162570027276270483939037881378871021746884229449631243677336917946894381849986369315021856552161289418835808152948715385927394152992197835939679693436579877967680955677461714001382768334242591554059416950092438883715000119362914192380803929205151681834146429298094786840321661118033364028089631130211749318914616360055694047799162837203571570113555855577270174726402815554382883391508411263612841905037603036220918408341602124996631361644983557620381155417284916112163520633078182149808486063118953668672794711997408270166325465008146625006588621596206133917766860145568843269364582968418126951093483656666233710586575187435051177984441549872801359069702136794003998444468142874016459293384893266898315069843576313038532376116519537841154961924414930894529358053000628789906788400659107827034584678664545554129792362915524478170479990526621704975316325742888757185119325719319754757130024348218986095391288517357184884519780123283956208804447632465365626064340980583928628096378987519165025647120477894410715763368971094162444429389214719640614431144994524932202889651778308541335502006563664134527726561883568293822153449474768773812633811535544439051897362583650484897012546978817525499050665214916739158956041826013806013868224077599996914016991704148632862954575652534653037595095970670794595687154419152761449751413473702380053464645816135282533677425955687935176813351537446716776273938080138865644752172190247390783855643747109191947753358322051805926110180628364124801772550019924896419873592298964262659032990001153604249177907046753214895890476863551843288466391755971180119963119214515450284018447578046640763081061867926328798207165889274443397687332442401072956995072864341770199031347750625765387419677898955085066635532519086900627158588388211663368962709041886331332623806331332521189572959092987216784625356732526529536220970251474484701405066384831805660199180544281436041891616557473750251966331703369868539434412782035389289232997313906197349971556033425017455736719908820894950351122248245501537675454880103219858664426111574216898528087009494367047580616018532515569437258779701746646744602378689635477182312462181894462832236212254874502041861538362327971369488199693488209384594483312609646714259232606447582814408880401099614414409810528804345846330969982513169398595254645549655495434546211055903174825046564453626780372823252670766673020461213674193964928621083335118641507768844757880723870502029667867400127140279384176109122290490735501272234087552026556754489106753852268349989806687311793003399397340433758018711346753812848870942827363538129015465236615258870387999657805777085386625607581954296484242588020426014817957828011785737850817832998122473670144553550537133278293434646701624705111107106758613232539851412273929571746573707550230243200963371660325457056371238503909055870888534951592799326707692428848984261809432315884488410989507029965183561891945111145404175755788666931959218462188404844070585540171642215722048749134999016106711588990597750323759895367384811456007357386657004515488597261493398444495338069269417605312547625065197562175665006809935741386413873207095891512359595667082008737073956406449082767682277499814929220766222081301930535480864669697282395931585797871866249459283186518352373269276284291969527153643520856031520407509720867058043661279643571655884336126001549860787249139776422627652572182637959859335461583299609562679787931571173805664544174192661812590325395926390812790956577394531131508530983985927425437659905422830950976607832138847135522012430203096885767386712114618576951314715222123046414140581390444595642269725121650516352959601551366867362920209155182276048283432140999156701713730799663720130452923054775940932637548911804826782320419579830617729809901503925180408821601759332973952906428683972156239776068024150778906810971649227258973962171063854766551980364361305579371584938319280112118999491951709027200354504504257317384992850092506260422893174962219652996033930221017867098012734950440317478492581395016137067344549893611059266191999986553816973525020579874996704107745254430644713373110203279835403565721526004725639236308136933098351471882081220411374997117556725114890255891410957527799515705517219788749683837119478211238634049699830280982482145488274541055817890752683344371486922683254007810061293788234352841902356710491114572505484379617831807210786258701865894076804602408009017704844193402465615771824793049743842049275178704227667507557327358303548179435905517798946413748635661330842014804177297532656487934354149943641851203669262347198500160949932334371210814811127511691464938303859048043908499499922203934740198098155933652700311332104486184119215771630856698230189040068594039156777062076800098836678972171640699004156827211565781295520042229338068369830803531468803578434552551375407606591408557741101396356114095903447437311327287736236626426243985843882837858909263217183042595580760429279477523871935957357445427711352196995562716824829874399098069760369659789777766780922007064244286521408219696118687750250664856578894415364025210948332633638832351917721125834579884832839599891955271973972753871128100652759452526757430385684889387531020564168350483134379558118716882126890064382989103449270088989673758360871468246781836327201294864028110332831708120155500520682516067176914028293447803933582645048998122559410347886695045500831117728341144751792694230798522565058395444417786864482302939884329328848404153914013803357891650471561511127389380829933449587077499156258979136129806561145455206262035920009781780509818481560221185351874312588769353181103411320423908035222143913991316684679870717467512499110934179468203139397230166763320728487543171891653534633825402155439884620972858816786066697024410254581974999762480083550353933408348874216161537440758886360952585677307673778720061332258256417919021583815144126540851740800522722344502320482953125245496635401079516442371887770893985237865544075797333313155564355174560337778455682424305544287581149418840189175603488990225065572700400890631300913180211193261579548355174318344164040089356950639854627125780489315815392052907941405335339430276647816481910606122953317505584677843539766422444998323384064333065248234863268875746629236020334966692857498100425896883351373815443612563624416363422748385160065215682288038125838566435423635421939464322006982051393919614233126455830944056903384613243197080216702113310892541430017996362383022590844894902435822840692640773108322840016026506669874604891743970806691864816929680274992249730944849846474277064329354036495288712453681199795824695092851025198975904796343391128028464870792638950325530107837655508953745656313091775535378623787656153199628941473290176315559976979863257860369118220024726347103578833696440468567001068049250862656513070455244517537388596295845224564772338563615448504551800555958750053838508072839785849185475487429809713176682711865572472510840431256179996822858918000050451002391758952136149977074940414119061158569126933274180627567295795863571996355314533606088348740602446590776158280310568883612109663922117176403323953153222732351709524053024572678087856396120284185466292455839452756780682609466286228651714687594581610797450430621137422415205129865310539720938608767730935462542073453163397996690873368467961755646485681759340164285111022847451608225393340354327584603159245624904864698326420296986429736195416393877841642654399049279202915988957430132436235764333843482990078828755847151720112035493024416239284827477854185861135157777233170411856261102907448279693948760940234898523937453087662481763289219807620850152666094042000369525963498778622314074287464494051913289739144944554598466513743070041530261011824665848504282373014344207302310688053181064217136141197791375177017188943485120839321589864855561940018876134692133706757975305574637928762433457349588111616539261001716013874121894776123879598272776641100310244205653227598423071485689767577825014934983678613040649052269573444866913697276297798739110948769467531490725276044934296658548834929401166245783120515280573759302511795662042553668483378071195424554414299975153371611130830083416883280800277567919194119154353965501321887248812724667245163282214301625145426752928262811934374985319421922831074827083330885183929664263185067630520000307581035730198414460145463230898936468277493114950096667155041888127437591964579655619939725486794642667850498964937150687762227197903100898141472049733527836573506531724789687225961571838250257123910829265881084870457937715812399022905477134883918554061268656696930162738625174999851680916339552060503084303632694113396318805300594824561594757389305646173247559597703707106070505488855101075564632969657643669507318939941473693931134319077357665697582322166689277309628189095661358655991459664334148424033447334309500500392161842897858942303685746489387670372410634829268745081353770877869152926085879702967865287604600212294250001841128531530212852562456029229109212678843238262013683919468230637315505873813211144630154742905240413967558428986361390104770155914929309790150052779449792265719849239842800873635018870524710591343367531085592357223327703248066307421294290259983541507338706710303401084173087592914922211233063867378085623162736361301321536295089309982038236444636403711667265421170542628982251774612042451807182074110252861459481871598532984642206845230981541470782482290448228260259980622688810842571381370252904483359590151663836781605415844425978238459651405945135474118982341921791975105089981662888326611080988785081813971314642594343597409628757804614026947026264880682852179939856893043804464301764089960338002153396850889501165350611810010064428834028430854535572163076317217229764976599217802161085465040806463575270359450558108655722967771096420928221919808185142574754471253839858070700801776930249608457644599919374983822461760165785092077150942104655168935965759787773182807522209445322128586013432778042942418986356906757666297464325755751696946803383332094304233576204514497581756402356666870818930495366843274297056395706208084004836993052055697644726998900462684505687424990890556405924264697865638809514098694054894526500676038251621621357541134121130392480234492320305966211953798296883363288600693901146137193734965800753169566612512050437847543053998347571640732726160751072567623988075534096216158547902930580540408674137518212191721165615202093093378402665034434735191025990467892366253932858178363351094520395534230720789181880710761151963182345850085554599572315268333937431402123683497579430563485624167730009480983902601924066306499433363919306744495272016302073386459199638545691789008239404977947479785680966092595250482826779357002566084738729839928763278567696313124206242131127170489488009027602261644043521504852828664391403291293917823591084326840921043395408593630386772519558216353570921514952676864065845381531306568441868678177485556572913947022105529867173248072240660506164084900129150812017495620503918172341516838383326086819751389184495333319138160130327327932282201494529827686685823535499296610897997375232710801426863256776781008052183999367870852862736365153737093687073099741878715289753430328195376031988478648557035894524997514731699568544336530394315114049051723016400541127671928591349305897996560645170082512223669457167285039171015186630968212673197812584633813144207148427085413081667750151295368100533330067196437543414610753487835179495189453845025871017876413673122932412211758396545565485396777500593497745945992220657213111092964663181812033009017119709137474804446281747391882587158205972866382515922131433857460840075723133829507241188902799357110670011397693341274710037508564012749294157465317778681445612938169392640873729001866371564425737059330983499466267526025518979947899562849187280439928089759364752214606596127807465277469494797046426130953536239023880793938314775301963092366930275242425073828935299515021514598716364850573693574818923806851348920651553900542028711384132972531255349873367695143506076798533856355297649104897132235130613798052870338947446569853105121842959443841632654490406872832853118347316158567452113506909641268835398751725166634533736282325252133070887044284429985005995427188514134172461526094583525855736106547283416403944166371734791645929617791801139614278680555498782841311051942919364149278995327412589102572071772935133474912693853955496282185994671764296067610069771965232377236480151447199790128748195578827681317645373762569685828654280244742965542894301490756396894415084450639751032433442395894931658365033220273282324838401511628759133791455668579204801261920167333708314401226893919308963191824530110566150456756148097421962701682871872943778825981084449480216644548446548896592650745246438683514970830756248295369198036088441988292007348942393264168975742219435339991910304506937319647845497232761635066394930101541195237565151209005882331940923579824586118133710130606025296444132487654016535789212532603832924374648714417023552252505568141835673729843384246699442257489654932855468839476756674452422049525112580004896320357254985051891826934927829653629153345291091816299540936594743517360163513644037584122069378274628754032928126023207055687744220176052353224164828918561523085754196950873865928414742933472878094548626730239182719590413446714471122739447003716069980459342561760530659361097271410249949122206723883523949005740006434868752886818902557123099032507352931320602869665630166777254020260480362846112073376427421090094941083846650815738114459090040329953695817539483742936909593960515897208729071274954284145212075082856216063663092674485291026848437421036304220033721543639057511711450236989463528265234075853795962119635252662898161924088494292419063369689438527596501452481432693455373968211031484824642488027160222700609092094866759811468791785680249244022373116670636525768245008606515126451156068675098655393516163600901431701130798447366577795121957211684976211626201290104731384523217308087194861777210768350660022303344064458414786261414792411425021840012492763772818789370054717880626624353798946258892769161678835433610006706939111225990753193046762193572479354857960516583255202206393799011889904548434902499230344726591079711802281719357929153010586666142576266473115257597596087440913590831273925839052763035572414342553291965885870573211645530706691346513290571224370327072208028253855900291190270535990454596368548538283165873221924627346358528377748005296614997978478235192072376810636681381817203416491636895097018278303660432936133064723721284438173151297454233830814892438092909226365336126210501059011862074509682132489285132649059551382024822489355859606268595330614295193132280159993355530719828580276860067171048298266269690991637532465678522760947599081024114303087578492519453893575078371229977621494932725904237379870905572305418844860344246878452207213635055691911219356091021192418194057256844198912452177797716023747027725767154366540886503190384324450252767238492952191816963914604957518315241668649895742166898414450734866403665118042131733634811813067959845034846303305799892233040030390536546227989696703745984071055921827830249866682917075688989888566247354299404838147532406786995358092561969760414136308168205073275724380061999101717678326711071106073250796215743647202755780303191206722613408329100894472210767742940260439367776115778987314081303022721256883285185829149944006951932101345144374275616820146702979327796247495556072028065725694893250689457652909114099462508282875393216993675564453564051453419260642982017837750857439678082152197146193532844462212693229234086036040010588603090380023505124382004798174022806427118864901609469591831485394632358222405253310441264866640333530802236249907142615743620857460998693395257881527979081975603520570305789367514900396638815565278523843216885951967886750450844185781592111596834129146641846114372166960732864081269854347726764609938464425366612069966205083919284430154963194787613443569876680856170260858737516820877443366581806303061675467953668787018718781581162417900868631362558789192821399660206689399014169470282343966061825922022403554188596800199304088691347315964274388987896318121104335041125432994469325997680502160472368232581126314644757113915152159332891145914137057214114761985868726162321926481138708311177403610536740670298396439364323621534757296651525915178205476309761545652418844241096062513672399633753569533963356203771145449761477631676424547836844497777157388884962102154520845023018047044883957529758777186108000593159662851902537524106148105030534741196008886135352504857700822930055373619632699483940556834900812694563026587895353472684763235419117517853458709113925419322726831242493507644005621223333037947562768704670063523755246660990019956471802483160810243410471540441636845179208952101358591204873173159737993354016998581934149406026495678702780684398965520809655394152736082827598418366137223755928937911451477052793729092319502008530195439037640487193363653831676498147533224689874469598065775232821959782832983485045489245485011239893577957099166657296137330822766448584623691844787670905108606080716136137648596315108996529357286959671434187371977492288358886488821637615701953474120272542740645435831799266607731951683214748835391076303847576291819425166538838493821744133644247689605434474164728571615637450494369619212111307244053122884622185747047664051244182525287098858583057149992236337968538511494824121243359947754091877394934660688663585084198259348470469428859321713888130317387514566458015316920512238999141919774272574148915243210039425652266317893466493043199141473918510715428290291169206702413240350973869187349687143405993446320282821538251413682711303792724511156127321099721413404577118437235292910126873298472140353460058794667860219700374488524083719873233662551833193871922296329286543164212622135137852021421802785879742345470040270328997215965144493500687025715729753139343082964830800061139185424898976827918659371180030911809133470705820306392576145971745050693750602397746743094022254465888646669202265417038617486464975808157903692398433418357269206873240040197952851233356129624152399572956471565195302719367062312076194652170288732032061627609428323332472749333980452609505619372482523659560965357961126775337399537433461067276291476995403303615887325097272709119373062292222418627348367735453965222196847870607839947299897835878740317938364694791318079236457415284081201582294161923775550674922753179077692583959927178702698776376850505627278282939419930518722386432354051948766949141198867654720324620160029368236313894696767102112979497428118027889332422036964081841953608665142108647988445428623370589246969219389760247162736523168253779504337004328780275552846235181512957518619719866216176023427537332211778727662720020531125156159897060176108432481073526985670611569588604178575987871617166305025307423636376457289433746687293807832197834161489263608604664907958520772438300772425656584748088745619568767542629860022435890550292831268889682539655941274193428809602209303509180239157320764073293821378365575491837673414244678683319272856688337207976674629787480809267372532420567068040536687583728741190090102013789881072513045751717672896759248358051436834346399219427632743206921262659641183835513980217584990545654821863183575854382316663358771782191287866866604684024554455391712960092350067184714378847671669393853042560520342317099285415153808284720258940269487779179545179885532698428177647317225170414770063948493423840311543602707249943333674996762293996355689554731534373347691279351555662696300119225183488986737938940103348412922625615730679780210064069972938454665211169022489661658636014938939043908502560603673351505804115700207140775895918215707633728566482215253068556026965616425880296874474855857609657928353682975241031328812651336600692025150709526551599806963218939377833062750166020159844025604650267056776437380272243557971019750649201119189403805630717982600308268463999230102274656066541679267738673583897233212078811114338851869643301276114837600650001820723296279071668677356929952242166154118047797825247827949123042204014314800646860193358906283499684834686836952293610442070707768051530875195786506501726483209748204551070548121877164908160393692712778113354533047941182852704276664782547753497897004932138395003323600824428548599879114512293927382496044021027706500575149962186472108756394094808051445132641543477097243169695113115489979747021504028592546859532133138836501989683137859077655500894676217609386539363698536169116071392556709915097913255461351537339332600914893989951340918609904053441592212989146448828003177970110332368965842775965591185226174905699740206314111015562040427874512246546982780149775920179115425858073361435669769450125082170082714994904562314691091584385390231263053982572086295143080039609796424878299257134663407368831335055427273994371584770280399948248304176123936799211512949628531137102277852752992288376770580742567717375485673299426616873767236611463803962571269594481816067171646318889579579795726082487847229617552160553432106204971484773711173659473541170001603343223399166263849468316767393609449640325439721366305904784143948797991335385478505290793174138196671737955178889297426217940542865460255146669779856353346931984225687203077032535519012863511561366586824304108867603392999543347451045783028676481414728113946219858581589731607947461114702097086938939568926746407925991684975296475964083506742019623683152564183301496222125718246027850707451722346272963220881736109448130019769732473292590692327355986056197465188837055138600984142920178229734451066793021436477141235372514925019792457085501159587156506008645680322576734825048094975719147554882602424403918409249049974875623202329276090670983569978981342161635730066180556670913295469522692659049519898294792618718349066429114835662207717838038792519249361410712789456035740935955690733210593390377520331135440474182883464463403196215484784237742949025121898611855991385889121730882887723008064206685471646448142607435521408908690650218601946083494893760414783300678773399496186054224109261183114920872203991529576769336435647852419861974651714113489353082718012713969236128080113358214237364171420582762774917865003609509697850536575966315539838581567108878429011474735569147606873633555694906960769448995241487235643073592171382268337459319255776755431944737258098855033995325871714540501129264071770422456579816127590091793441663585408823191565173063184050980666886029631301709318217648654177602867489925640753207919416853719398872339913568611774759044913649466244927394826024238217357685604346534171184732155972554051795930990124468309352474026863730775156010376002632331642648724759733805892342384239039367027458932040464873818283722855383043537393430790526006271384319142297011009762714929918823307457127990240472731709319728743479610722161567792134449017508489762468484289840266062383234351428367183578448055584834302522831000085800066775388040785451390442394272096506549518197280413994037020316307023172933696488291602937071939078022688180981578617766099866436704874274971902673029747526298492354087962366261843348155693469880386143094707399996609303871163647989383935843619439906367295733100547226338746146020120294054150292292788158759166519659624821641422629922078821388344841321089788081646416339036108547845609446633407867296564393228673766097954211720938404388547152426888926134073348065804727091814719703243971444370551754158015669060673025200690251588890512392985766909907030809147141012231465689215434192624885292266968343909973894297904332266911079339495246137854904728822467487760706115295083295098178027209295061724139006465364733963402918696362688603651739181844937212945651256918389832488142021703616968204853038240324097181502070678763913201642469462433566831840168927446708212621351072208621487825004651813148417165140438102848748794231415239575843917298961448462278381596330588568559027057241113121533379851245448463157285337656478279263123134058176086657686453823594363628890295779590910999204580400496038357778515053490580111181700482612521150412786583641109905997520497712645118999234142689667366193069749501058041775329407290745378822915395065534434869472027027279329157624876756886547087048737700756181682607439409741786853562204108884892648965823102630501346941975591543607148273601817835228384627573340604797025074406845482522978686273744673134262260074568858471039460922818091893933175382055386905938625793974769410372793817838345983838796234683109508597012243251970435537998652705985843385396904104340815240256454042964936202225881161665749165196510037922541393195617331218805943232152078273383497729600890044892143403307186534255420081340678975871698162827845938144810974558455533101535756550682282612494558147771443065800685959610466138684115942549209944252729110243709211417213855347281481057629477535148470989542843327361092319768713349744743701615109953088475731990228620967215697142486231454817125362919047479886078387940253092564700808427570166599701313166248546430166391539910901794266438004396391730297463971034469320949072737922494796784583872539288517242362964580318280827464914419477446721607127539914704282749351946158017085534522272826752536572846711442366775156447693052204206433144445027904683443842979550276563831609822221484600278668860968796225633735751074848677085771297018759813751975219673753588891589072245057282794119455580829203467388165355306777773081405105761499987216765303213751538068108188165209794538109358717543970598214869319137192115737039178700354244321310080384231352677861955537228590164029627815754835556948523400361842375260712775155249887855027067416641543832772074844512560318175239255949831458144148635423693486756245649739925067804759094106748121608446527327406994207162296468056182244913278844953015656564776854773670018520556122268280361584921874379485583977136659037064686168533504889001522059363657485058049605248001256372304251283518769116633581288436037046204373292067975567408954835913131952979566879148660040242609253961568484085463656744020503618849736704954845595387263960978353749546385674276579406274700725851459812377873434491978934981034513993170054743509051880835041170548506156858848916390979565923926981316033860092004760004019504577328948330403503948029406602047052011378136788844197377949749309154219320528942163548442919997022952457642959530398177825800392940246095648881829810629367349938564075962186868881847475468716649367330208355602900289639984318610141586502743670651070595612814769834395649585512567658495916003327595817446143789100970473054045905380568534819200417388792354938210778686317115149128611877214339226436345741288907691157702888339860690403438592645522173997226601411267381756787261774476152207237202046984503562076477468874595743897992567259537869248900289518493145970824399787729106040285306658336118936059145276564570922866906583767737054736664696038443444684605464198877607632129002722519029450389411496165599179603918926720216630956526071249761022002775541214271288173244598891149041081460288970138827525377793743503405813685359642934144037900617347409411723248839735701113270985911942028745105945777772857466141824427567812746747823900821122514666398550111649536666070504480572733915837226124866589828344680554068302670037047904514855658346407482486310387663227042313067601951157708413924994442379825880619865484091114075153863836274852765084935263656175167883364378773005319506143767002188260672037669906553022235795631385468503739134115960778295605560574134838968506953382588431172558309864805133157804308934565442986192739912838324310377948364536448742651843317404266355100718448723952455361806058030570168012812367621589132325199171906451559374632205990042413673813991331051342551955362867611926534950848014302412574290605877988063171827523386093952012231474226488172609973164713729942278938384930227835297155937216338786478778129876602374964787663689703012846021617729592391571415349814364362466718691243826618342807171908325163146535761486065309786193998187037093513343535961716037469642830934812404095506998534219448874401634870886326196806532699652672919042162841062775619493554676648176230020003170077525116539825485842252757023840973277476905050800086973905744272810894330625407652975583304135251181395520067565951830642060623807776314998927704829604592572057279209711198323126476565777763959437179096279852666754917183256868520089228912618520580025054472928168717513971069529810435269434184676087150665967155863516306981020115710585485083266146678915945950508584597266714839655078876049052497222555889828532675763394994586885647299766101747034271506085694441408093650484187518338861138333218811878236562439769308438061735357338688574625039913270070284270809361394500201133908464069985366425897153634101352373462331642422773042863713267427768603750840942544850641584986530655667826209638090538179989365450863633998867573589327211023316312932405301999136934870273485791135862794863164749275260868921694001025902461802038317409688848684474663838889288133303971962755491096122845383357651127682251276700421921952285479261094021034995278739806433259828380741497711745057799723575824086832218154016417093495736714907792752365368490315823869421423893951177170801498474558358719943816331496275180021078786686627811860520059462846437345004273607099262351659955221688038012834385619331534018744726250622772850611265257721996946730999425828293004020648025076517667811484720943405779968463504470076848525922364423525762370201236349471658510305627280806973096369934271858252023835442402402190914199051405798846780135310027221537071902430350467270122916423142715639985511424821181609414220337908735046156741898040953319521678547435376263779342591688455684350010264462986657837371979332208358302539189195883789476551380995304848026862167315292679152714965994132063903297757263532972606457466983808624049748321885473318730174999257093790496080900153608193968022978468128682417614709087068034925473628683149328975297519417024849530674487165071450213072492191882554035828631573524278787311754959813188508859301391544176531777254200920116301718647407237688059880214766832598394176223111573243038497146243785626713110993116014005083282557981423818035039939886615251272370460974393577501652500162133292737631492938987745161358084324951942219455354673308901687666560948482317722954034610084611543349096065220366804870290901189833431133276625296222783131337696118112401451927754915516974672998496191304192279201199605655293838467829473633514645537338594589115929872282705174827463331105512892332153052374369316270844400616557908438093857653070167258321789948409340206706406456638184538407007125174461729662867625873220505423418181938530239646520490042381617761266938669938658108106608502802970524151298475049585992108727349887786629649400803045202166991565576623637958700562770429070834822487294157229432448205455531396142006141403896314897902602464154534618889584953845355975977189677377012073600010424927126241808705608040210253284804821831412545793731517811072461288816924414012420755752605854018048236479206355491695428917583887802725507393231570907382840368669043481637170190517960523280445969490816984489398187553007365803959073930909306840898381703658735402519061696963930334355077772726349433884770324303375045643210362473068691192611102027456966449622307153244503094268601018600815184793138846081892874391427501091024568988850032397004081906176479473767080818689856120465862981655505471541182585307431362376118969481784509792645738487734397211455953161115597983342706491925923125967422825685476132733336852974585193958575411993274519500062416447742189276268949451749280783377244137832306103225943681064437806692441409741570172036864148175833139157863711491593944717045017867531114337263374135661099063395411866362864493334446228473683731945494324253455243321659408178842723425048920662356274693504434487194795330262832948124293459843766287016258496525541400601106849351050761485451856783154541987700645399430031168102360208612388604393643672986289548160136425096847128057276038904046178617323377637065068928443765774030132457480499813939244216131129689519403247553278725452481570691626696677033744415126070549312034425362469601920557893873755727144715646966623220136811760443076190686579136704951526396378707170261042727987743085311622444123020588763288145941413066801392093116951619828423849269650469070681901807680572586543259111465165682081024473760562488377119156082335464949774554487499386081468396691997081270465166973436086362758422685142802251581799455673176434834850501039525790082147458210973984816288454309253468156642381814775060934685972042578933269247082503521076138752327397825267188953632989579489380359396845056932506597925834355019103447146922861243219695688908394245454787487783048021307587256646460241530171643024625958557113190276098110263773137820195053621601319175898493240622766733802583801409742181346533834070499757972268965510151657014735169786513815969243099124427273102235742716570420599635403746687489740535269079663704845137159238076984194490425520541717065599886645315142376660139538176048737936460816538351212178576414683407389689016023743339766876923476849651761879789693554472957359420975206979249028138893744911434142166107556612093070015140158679248912965964141161197197126150488603060443608847113251820031261458975957187234272856605911669053600627572305102181670251244207123962643005050974960822609461082621929595399543340755552476970652166381112147900780898347107881627127104286643693780277764314146311212348285177639663350518653093249604708942007240264615750045955517710246630207280302608609651631635885109383178469316066515548539359706480644050847240045534147144966627377368290622600700779917345693075159680962309966545936856107037585373930531262453222707920792400734078038955517724937387464648428580210177347060899191816781108386680763366528529312256116451872020682661941077515044111703097639789532668295180367339584853926807523883622561715443583752520889215159028332507667333787486617292334107428139624885284284928906092581001559964039600364054090303611640422876974127267539963002896702699573865023409542795152268762923646345761014449987779649303704349976489286375848296300564167751912929343797923287647931171218055682500228304699988371002271687787251775913051143671957079376680824593264462386066964786693942647650747109114381113810382163612962042296674098262198676921357593131471049367623248954478864732949370672469880292958274240095434651246702348760049198848272863600246835084466272773491942203665841981697531795396554146379681909698403668856829195261405024717266375370297484917571358064506913877132996339516325039462234903750585652818737938821990910248001909705562808245942004760164978970231309229622309557187220314343693159000318190491428256389686787824708132055180489826044859884881472299314344212670211537386151986660677988875458679146612253326624395753755008432318826872873266041764004492940104562108609104829283485915060232894880670967199610468855360811281801618422612485708430554698158372747110435617635269824163378525499215738960327018573319577697548124020093135970477498221871073468586442663119623366612819720813893605348282757706159290164324281537341103991826947512068691545002752053765993031235629639578795325504091226550221422720543711191299319263583299599266451661140899940347694974251963413447658152636405585130100753465516702156433125652821742470407259784519127871692571529455684361559516167755753111659649389765629860392264935811428310435423721454558546908924973820385292423077069379363764429350610790347280794535915339316331115685459119264957674446446541449717510698675344198938122561783269647080623619654716722200582792542045578049910306435969467871778637607337139684219760026369017003169375068634644592395225122490684434539083992139923816345910863645663939178585840173220072306112547525814153469737798887325268074940096362364737660140578143757244698779031364711590954135659543281584601574667555999265571614963967650483493792912817960129061716029521582568983538872066645757064507505165473451294851961937150696223217393149250040088720512853846086986434547873218461123163674004823279488956515699072255544943418586370156887585058057676468342949227351087309255767440834156215482293779542662864461366411595032266338669929738425607273353028852048115315033465693075667092299268240951720674967865426998474345475433377294190617019797598686053593224200223415656749590168335398438040216103971513863079718681712711994885971214808645153501455784187888880105369801019341932193003294275548472927536918939949171843645368942609370738676499202213942838878249967718621699783526726406198956881507869955010972855946264759581366153948570729495828071634297841519083325561763471927795871905030780587564277543636431805327159890035743311563428296859916473806093267514893105170690901579025619268458458378334798994417677347544715587958632179564488254639225133971121339177405138645248741315199841415204235529432630824403396545616965796966180678415051651194787723005597482775583092679772188295970542779373817395430391083633756062365977618882369995621116002585372278464759719386859585487426379196004771334935690403141789804615120765032081758868236600833440213818536122667731448530379058108916222792248065439755021896488644021063629721097701471667791822535300508397440238897985247841301803426496978183013671486018011736467280937346093355514251582860995621988636589134301182945667685085685048785184281549967285431770036116484506693185576500472913681141937380860279802372832276240213054939531517929167636070312861674650148872816571911090927192160456421556760363613944011925606450344285184280478455978181319784449383791388921866802278608192662962326215607397902663295029038735804203240149445804757722507467336834299257765984572415797621120498604822412525580349300333847542524776607680874245609934825475179823394149799408460989113746868649284859510020683630875958769499732221221772796249957377205523563720972415181939776468750511958701196806957236642549112530409810199454854668802254448622580318028641919574119181964837565676026898843093793030978935782371266010700365322328237103529566622886324457234590810387058965330270233828230717455331176390795798742421473018549619112637177160958320624618242528465141477422700225262368176815600337614236015690035918022983170203567381900820905833638499595647213366240233661788530388911698589798947217748593742660296829549962935365960648314778855679776846531157153822531020510467614789840129268997736144229106061585626769868245073949952167501250805073021357329554596785178873017510173630148487192309358073082945609925361901499717759791304898940782710103164845630488828789950570178923275013765062243165181390783232881846694799904890525070460533199823273220204903000866226911847696082329712361122433048086176703542086094107021554010608424882401509829904570905972610861049845704545907747262079907298307090496468579103795955242620706962790713359740753125919139516262940034595692762385940217657134002662063961149428201285184534260242529158414322029592207991505488893305091859187340733544016929434147846744649767965766676799861988446448352938315438746667646833190487404580662871992986341521186088306837677155917236794705556321016225983071516684456499518425803327609302375501280823098581211472279181527734486985681674422974196829666677057657854713237597387132417853281820994961559514577389832314940270422591040259952061314621688041189654887197026361411804683025917106042229561679360949233730116464902614176056431925540407019061057959113583306218501415521324480873895287454039882767558419258714228248681892332101572145823607130574719168751049834989474292566417008847142286649643302339775690915026050086643545969708929124045083244272155782077344336712549193795402932103292987800973227551510864360606785221961411791891180665163319824599612290285743881756693501820141248661338825102910634720186166966997667127457527483323264122143398237037895327211030428694354201118810432245479257106019988018136090110484503275924538643499676633559114196365502242492070480076656011476933107680934636332893032809127413142926888665663586949134234690127693164551085316052373643924285426029918771716113703249846425183826518545785951370337596815255027974821060292966784904285376837287760473993284590647926461294204285503890163868918088192202548793676505143900086412699723040052349355550017527490262097730346264017327603618916240461272458783108280362753663936854864956964313501861291508035879845527409217948553207833217975883412660393192654029180218013736055754588486753711641426408081063930281534787949559653714107845729766242084171493261093607282982648381578546803307504438144993843489658216421511380216548164897407199455772967831864383368423403518493330303972283920023078451699059430300021403037185262410225549774644552857774188416717177937401132462534765020517577933576401208691751761976751888708831885653651309588747694940160787619243937373601383478248525631340685915807539966554162445793416244275437817985767541350401348882651480255542786965734395315296325095392227411359341267957877464375783185017554470570857859321903252578395626059896862998626865668605951057277655848456550333641623079041943145292713253912512812448648941193522619498563158023410824269971724804001687880076915283456983211522452084346950138587396114085307311219547280898459745640475239312560446295306611313210382968722450409121504654301467237564090214097454271896420373132607719741592714301614723330043105114877392283970389822789172414396126463231433635279803651366981999585371670225919609867495691885378556313435120859857461235120891162231062509403935043587185809360576027100352633008951025907029536152931812750519820439124792901684329076766221071540347153815094187217573826089774213005366223342026437216054264001197086154618511556370808923205700535283218041626183286131402000392755042236785360525623112908333279607399750738463852744393879749583115672866249792127732581654753928350057297029612175995872613357716254963069849083122497529704105609536780920098836289336006228428734935584560724476402140657218256162869345251085899379816333615164010262388053622344633030065272327609373663150032978678249649970369288477871981421014592366330497314698786410791648982469094625229362631171660768678837682537744047264250303333168734540245253192122715919418055450295747291644378214048769437599226912304404634670774338770683561699715543055154730440779059866404064286788738814010854840642768974921170939923334037077384266115236741355125492103339264000570252456115657284646648980910876885754476179968275245429926998996830563890460064072664791111437395873043791266431010208093530666376605781848406050204967354275755865282130693805475153348915328701035011291557680077994618800002393704113720074990543893480045293778758729374732513981040585388099004260769291074427172171111504160936671934431808059756871242817656258144129608003074571132849709794339821286262220996461713765275515375019783933572963858381830978412878690602068839704298777661433317629284771240175414161123492130528935708341881041243085397328969186195354385468294477747753384564789137617424001577511138001011098835538871251489688616812022100934016849027715874088652166667810438204715640500853617182369068798666696803195811071700758239771184091138521507033908523509556183978086543186288759240695342599604547021908653425988110072539754974177730461752853941227508647696100489492452009012991525406752212381393342852935090207978622223621619703703649368589512497174876247789951126198867206025608109478904729271312728090346877525007208121981607382867820953924537402307810642041283636431039662323361439616093290045672608081502233668649719866685904639887940184600794304878390524017567634958008010575750443429187427801171406429940501757931950749997583809070316440058315088320316336377918649146051220946559062148853266974974198972451276389846381567514427555586905234864784297750221337254194004933130423815095754026702518357203511381763305984246637636971188480499686636952309664565991954336845709832187067351749777722619363618261631044301429763156124948615004328991281117703933252764625416105751672289704410910008934462204628033741406867796304210254956734935594260057011650617427280366991074768444346804284377301450539157726044456670218365285154865827339711813777968446953123910288089888236032456958356059655002144623029555552411036794000856483993010759160692367080276255070056381967386008789611552257008929071657172906016221095187284639571610990145076085321195379927622863791021196835798441455873111262532416361508543222018847188682554271990109967265741005049782427918265990076977942409036520291826704508512771435979733362377611422741848750317832025729383113204010700050639092492160554490118788596418196284522776083821778942229649217613042253191959745033995982804120133944167269249243992477952284866862653306233266744300293676281464776005598680318465609203941615743627059472181255399209802467652080384350848303922088279004471265138825954984773310333889575306024272181201196046579323203244252380412238233604001713681586986804481048076464418006395544375907193422007823542816030281822150058969527143200165220038367635739199734544040555136403248751565023372853853485913283592668032462673590281277358152577251945829715375313448582711122342480045459836436677194925934413236817896326188085257400229587978796420564914605981466753703787660396817870477720189132174234002469192342112705274606045480792017717342794333589700882034642989289306912416344224675997106351579155189738329127206179186421571722539255170700175514419140176602845112392215581021887962980032247309918849887058753985562799389384759082743967702918253676529837714131352970081368302969317776320426355815167876828350884740136051679163602528644807106296734429355914965378842680134739244708428207750167841495356717516844717838028370090338479377234381260503211221277503793950522861058733239011346476573746926746476006693897972594560924756991379344755701931692417227577134250137735980090004120583916849532478992734962863803655153990328242679063659269868158605859220375781436223211387295405397439211334365396072936164241689308941499313608907525527986303842024301064250350630919959325592310568724116353035223126998526367655162609086115543986365509070259589662973898686599904259116450314332075066730465448298589798450602737868718062586951753436814339974247642736361946296484561218874201263588714787456088670178672142263290251888931046062444825814861764923920675242989293249081350789237036121679340268507161036965882018169554806483113331353746689616542171145866635947872620904520762475087318176244560455903441286969120114748690198384635223187172032412226228746559905977261050877547053968624232956260854698295849953081112465332360983417032417665375613785570672113429727828825750935214900052332699154367094287457410996628615867685406541399185309136415127165150697457058798196840155929052872734812820100646324476806389726016178693997012135145406817696240728726374758343845676102596259319694953209782802669258612694961352490330024523612438896054464132970442562864176372958369065725445918088024721069736089640989549470397277778949330115307220057887286606521821092473225707822669615653678737685628759247832317153842350204739682689010706176607255060951318565237270106719993957274020336294030309000366019142028433757704199938452141853032567887597879415120659291578526182561538486343439102245702375612761906588898854899115461988151056097784684007177089821293284072234817500269165111999873920613643439331138990188990475069696006367520459609982759786583155338752640978211262088096735851880744906986317378341514889330797608310088078538802813249228557270529082592316632544376509339261957853157585858765960900175328210984946310233619043133762742992687926519699507989325552751019734511361223538700609564518446231169922100531440159122433700702090643087266830752477310494588250779142001791162889609252283232534356835352872492586961617828178429375819463487151711131126312216047749181864611801530570815755780863303801542811298565666530473248090662924711383119671863577698584798867975441622460266165691651605238033158294737109229767509480839222899912804783917630609957684873312625886224649945585140975740895987803672103025867735686024202336488802437228519726841182257779000231924077779396885050291364008766089778688660651498750028660069138164470830427245657795357261685742821715258190338771293741844806402783791640648093580422999968320225048366102851869693583027105016385275102083944975712119041258496503819627107295111968399435864609196717950613485361355643572119574439194870293000721104359572323974309117940452930078904169377899369346557713375333197353968697914759122387910459456049508990894697713906580885889478826228091415093130623558350810053407791623097399328815648155953194543730580693398488605634955167326822045490035818508883365622650256257087928673455926599772713266332171087727246970039498794587542002131943212429534880243068922469287200895585429646069058357513009936859173261238498140217312489339141510707129694632138892508916910989676366372370738611588275242878949100339016920482496527142185846998015194931405895054235357761274665600075890194719062733984588093731731432113267274245887369168730130223282332582874819699153715905732688235524241430486451041248477458617274546191140270545607764760049651202363983235571622293582713105196195872557088172870714761698378501495095587595769469296356386844203339318812652620909417678449434735494652033426575565009323878821219372186340284232081879166389890748950623022850307893639625834080826124200691150630000804390811229781223883161117012494981481244798828166134755852172540760883173532773893051893034129458213503634483030235191357934769013675347669031630065855839907431704252789775881703568298861767359859659932765864704392666480417581669961398798768760274747359856856394719059482136688947743872993323001754841441182880819298273335102438771792774531581519472264645321713561784613707471070098715415494191244613545536900136138525841225858738588964388998582831853957512409876899158109021067653273950188160202468803632808274072265266626514156277008700615706573768307292004378350684196782288695748877544531558844102780464732288235908274204389499658027077109134594963560133060514422559255542552748069970847226279977170690860350097456090372253043113907413817205253127147007316783458771473294934179618200222168353606307183963765166956474682536540468018480778500993256664268813196683548646525382753504030061394940243962847029242321865727875378752144053268827841402490897761677512210934836579350594027848392095086713719211036360348918871897581375930146505381083382023555711129474471273477250040814569503434014098978773847663900842272387167710421667041533911370904993681497648374073098335870435103961251198595028181085608030485404158360027354696558018511039375237781380513360491252124931980459073297987559214493614254555881985431406233364645793118547497761340115027357950023508478759810722148768210703175890987703116261515080779279853442933898553429185387519074959465258544619322460295380676278026917836131775627331115110568295329074463319033917707861363164002854090453667351737604585337237294244564748322059441524177832859469233584085662482872640153555939209968240853243670564753889664351999523192573654399028135512249691299323962307000373077956836137159281114869404942499471853078643745093903164364829244885461121698129331069655960096245544137827776810336269297096524913180156419787685313170985459765904418245985334293786866146941265386808665689921773970595549386025559085123669323898937126500142897474979468119296320690125975868102032255632519805292545306770721686672329450383143310613880794021976922208455626745947889003310208635956046695998987107493552762128877889076569193721988610492597257949582001769074808471127949617075555714765059692018515828303292374714354400219986090945348463814416734405989871562168935713682293523882098156590822193667802236163842555142142527497578049760491923041268947237792824287129994608602719764142624960883598418110699739436979497824490384663180675178866549963215189417026579834599981646324050378301572494530480774703897541762816957980458547429692099603705401199976779158001596682885497829584065175923344950431828145308235662841586512508410397021147313065455735761538692556465025491078449424242417110149968194387223454424170376036585463589347668684503240037414088815981804866080454323632263234341702339522638566063976318705524602546794762492473475907298788160449100304874888502968569926263938713141552500509219578859267711718083127961608997335499791001276358263576311891452353265406485158827678718584581752381178785224613131245736923612619157891744959335718267789936237887395350390275924110450701775027794890104505869149389874711555693177489659943055432410701398155107934870022243827393362368009780512933049463909563459713171409508209681794778813460979019559193885938616896745175423823263761035621501847417842446414835360532069712179815224415908873156451366888232925305293126626636473474069354238642981249764046314736962813198224419616286814926563615726556784647382530734162141806859078875389067114446262929891424954468169851863523679727453531105325355093941470354378300239474295836939893133661571418388202423974319523680255135044000498317962332701277086453541725531506295365047552019770785177000996833180457915691363929345369522958261402332783235803895552943419911470076386314537640940172074368147927622368608655781739245920615894934396956838549823630727663212360230548205403967755518783022382539383741956241568686764841493581614429257866629022831320351533511847536990866565428660714215961499413899981588598923285980382582881900130657717476195364975891511991636982115195334075797561186427464138583982540487637807771445733976262526688976609671782779290877636157761045269930512267064768212822975667866929029265180667573065622068862138588343240244672422907233094683891967500260663837334794953840098789830323315832223669100872763846913711557548310301024470783406892039975205431835292336658392432881054852891623070414539014780119675034553812014908600923562366054501954664190173655756449862420046261647935551058879108993493604551292024795983454035604861680342301769544194491794105131359364322761777454381354756887028205973829400258635769731251876987915352803103163975364309827059902049435609748255559724990165599342795840635376458990262592036996889975449900168445714314942632178373091631387684616212696161029100835789068941047304090670551948043266349104420052313927222770137209677922356756796446719146575035382261236606803716760991564952346501608010722407232843430398681624662376608967093480086391386145886465392906633952934869438753637791282291729486834774205569290153261209717546336927998710961018174054016358413689583197332680452353926182678938055115084620278483191264514395547890545949191292887070257284730929813209246794222001972199855615148492028046952020794702914363625486976699547999215655408072938591195845276545240007030026223358554806550719346875676764134957523015872788045984186172078689157766263423077645095910605959270148299758219422778519604473789410210552508889727697097354047564693991926317872953252803652003514689070466160994911205935395651391595369679906576820116917794031472712188993323521947500086870923270518813731797677029252537616735782161932512756925947156249941680058929301062421939732796574015136940707048405152530704695378994754929873563188068817102639508614724085326956366142821165622830732984574854128509873977894857195721592571487202105028837691014756351779219919848862078844053301625896133051756897109970033731682184934123459596130220616335365136481895679318827481445955802385881849455520662292254032357284199258485789777066452482900855894905506375781663080174008958338051062661095591596712420382041612635949948522939761513345606862302072813453923405548745521878764242694829249802545855516038569289810022720512619848150248892054195340262718690199000609063892221379683101175390664153159437472032542575995940384385870008952808392015679852583481053803948624164842808521847551142312928960116239563359324166246179685821125452593004265234709404718405185284308679724753954098160102200988864371301196029287286387367886945523007337329935699223042338585577115905448360637119838875353123387668342867599383075093157263250274537791752594398647882632158264558048004424242839731026140177444202254366272208541091031246928620509872672905764475095261622445774969728777802956200384570968000514217501519856704028002868487284634939006894440190833580511134535265399449021200491236348258979186178405132660719353377569276445994557093701507196887987278654038839426788160461897919617799129974386644630321765143328146171797927056563201873203718786153632073350663399694429268353440489815703795958379642647764369789832381804932227380061574547545350134124330248691241745449298395793408138263057421188909656595027878531414422998575054884079820168526534229132379697376108782202718787298180619254881639717815095714073018170325991957156321763908479708029129377433688602446789835542893763942446629244462874976088254073049659321034769178618829484672043794454808292259224982731841615892438261715320773088476683845369830339385899220439614616231280877302755035188601249170531932689181464292759327259298148241888438995628973550271221870005024011504802952302419595749335375420117208954078973390229245417067017814618062067265502579350226454841088878430874979799910382682055262310089151030036144903155437637045332377009917753835776041630254631318620659542062652242250473114554189669363593835434905639218206766795045161565867953439757941177165029925141976062663129855420130246267452414825714524463015652804511040042740356007108670295473124308942196637264006761135096956641860938185576429470921754060578014918226032325386518370185374339736163458411698552290899864444169373574262836717313816706290251943101449439984645736265394375215109574435934755628773411591207431950640165458884071726811545663607240340212917594774913789296657721175860454833420449195932259615639398785355424362734297675177767006504193581740138052460974888243572058270025603040178141967491062569195322591454426813746475782336022798992861727540889710077020274150746340328710149156828782436742417046242177600072967161855914905772679003733152396873086120275630792125777846180507830928456426302996633974620848173860813678847224193238738693318999709308644407202822444750803540049082213708760693308996726877524790892779699916797806515174631196150709506412509931557205626895603725460475929352740267807347120903865239914394105906892524034936285733570072422356565766652292415148483691363113748129466933922749182933308906111478196820978424223875753718847011175762751221431853895115865661563976717895556881951977513582332787942357451124036687792466527875872864648934500192488191885565687603392997985228282138318195678996270909141490837041229980465712364154337971230738338655392730007456812462199414953953735556027845523647314300852853048912828990318595598045788018488009127223538015658211462647099497966140886324955714960900852442908869136424854549740779457522216127603004019097617218387998308313560516823331396372752016163346828206281133765669469577410171755484410434952849679102765741449727672611858200133868229424463934233453124341860241842642909694742132956143548339912750921073755280407539198294223330395361252162327776886293948726861267858307434375743369550897843440999313406975654215200596916593021557711927912569769793393673185086768633136773355186289012294651937832732235631024371176908919130984365324802515876604716200553018692656539029601749902444599962117478553483891385733628074008464478667729394625906732929925217645865352912881165342776512783897054049379995420848224268030979177275361247520251816523264407932615280583227098675967486567063678067123604371499371082185724789930099934615866886628173910122869812348643964794167868559923600028664148617169074725125165994398143561390067949326012714512082318673125281332892030236956412512801844533361716881668990443654806002227728424597326909756315552379149914158417889312457233241401267094736041214199379088554218635330409723219700002414673206560327025317213116252517164578779613082790475325395632099756218993093276250300962755815926121630715726085170660674600247597522803429870516476797494666692404039024921872956392171298468264817675034957422631977076489208221103091708895360511119289938724355805096316294996876262152216959871674693201897101873968578698574714900151595280301457736619045680243048910007441833841878201113067550156405207025762812958664631904498509710024165266258610183991875877781356666490586015464864675165593569887619422422604275508477558574036200957953276657046826945048758209458319269848343289167444507354349590801819214075310144234418699529793634825620545499718186656078750011806609602484558559679707451894973939194367840626436801634051464017887711896121755334179307066024987623728614531293662339870566981488414928556041653917615731430005861163455993233478116052661751455631056021402848209377911620336430413412130381001873074195864367696960962640016412667736813811417219142929483421180514197966020512601435947095195372528474411942870265978216040435865601977782783422245943759185733714127758245005105494338541662631782848156004104258985800436947211629977244068891923478878020615919192162510070609060675478717092267985431005528683792301628080399603634266016700311646344415711174531625581968276224101009477640320416567605616540061983296043337104800100140685301193989604860864183749526486929484448275138700791722903645014748359943561232353523867439705758094495707449677817985767413189507789658873936626695713911554096304172485000837544680211405767864794886051676326642603849129905302293278102428934105486250289320471319303865030742951540601928572203211400236065779603314055349317561338618272525670364274685972300330677727838571077317283580411714103526769141376983771296305341609001208487341027222463116467132369865819278464815348095583424974915638179136825523618927949071283783092758070509590404115430252063516633139102356944509920689532755823386819550517970084619946820565154549683820251046091251599487633943158640343466397830838281708204094709381749225287005230151076086520827190840291197036502575024009202242678323729247883806350619175026970694356793542270998627575469371673678189331617095831251397891637621463971774468744738591806438547703801166363783077110529330636861878258762381824279363667872399691538362319502998766807285498147741346400333303279018848320985452085325514398522688578050890979136769170256818829749734191299247667335383112173399389006985920146305016947116790807288433658617168044087899086279079898043610162271202063522299719139080044698429475268582117973314674853442761750701425290258934898723580494683572430099199460550226104137708235555549648540841517804889269076890788160548513787531501006901579288666025436419586780175868839209306994429709954025192351710717601534604392019471293192941301682152826456813710259390557055938905659934347383829468812530472263209589275004313033470952297658538022416527313737607157922864918098088658535873605544840028560553052348585981783446490868247431160927700735368289807153347382940175462981125513683144209584770079491575059964234779809270672278185383862342675705789953962801678832784564914130929882381895242356236084903318729183022380725414705132290114342366270841039180008638730472018741479274311368271102393663530693465875857292697780799563843051426654115506219422779673834458863663545540437027871317627629267480759644779879661173942071457801731508022496290608931134664795495432268065176775202797583485207443677517006533613290884240511335711044127834519084822707205825272538054184517302562919729637594859072983437633018423634974226867064010450163754889205092348377155237608404016396090875207163336536205743711580920561950764580231023728950794898697057102535581375091674163975800393980102056552746291332999284252364163677482698730628420775755202968275713518578283708639922561869229657553764327247690384286479186508345741664033811896496098388588812236840087010535166186423175619457381818324418015692745758929647379158939151384634680820978550678990458615639187194728364658681132270019389430718725415499254472249410977714105125991025748829062567138844647706024628410553929579698399950685721136133803983965688346013090495095722707582148546461869815892553319230547737665023593590628614337828093626228295564756954876070346524603677361291551518724648612197589726278097739514645194874081409433399314290183785802383132259261106037303878062447972921119146490703439044540348287084304230108448779941940637407710654458228929437577486853570267595315319594894142181164584324185795907418177427733279896338636686413201025207620867429726721267568155091603537072939179817704871054325211733937028100060130392173504293440755930919465414771369999815730969281307098168563088471890539515722145812175976924127923059329932034285055331815349243529696090365265206552680264386228449554019527393265457621649038437337920256120229619760618509286935408325713998451192555907244177607300067818759082612825410075952257446361748375174874397999436143065347328549693929000650694811469718614015116881366065943612541204149308165001728963377355530491127270150214912941097226070694896929621010047062914912141971899768517768011868328125590721826517827058751712487249454105955289201456827482406801672629447855935198975489533259796589100287893307979755916473418904424269497374444968474273747300871237464631148453067268279999052324946737223700868554978366295080042173591858314663370518986773009826143409525288979793556383406040159212809005894940312535784293771863038561711435686272082131237307299885268827743198593629904442777500509555883168140961812405219224074794931933384532859993392019512596765782414592376600315501675243547043001592909562752837771888744366608931107990940130719699454945022472257682258761759081004676630623247645062622856094737198234767276426007740280751143383669161953509743489725262194807157836537909796240914921956648207102458399977589264192612537298937534984974008365541158840591914063320479799033332509353104089324352001220544441511261548473690456222138471924688363277733631819479612224095532407474640661203726198170428217131147107801477918387377786787591837170627051983227224201127829297769887318862279341125056260597944359141951723689581683015697403145789562344834609347512951846542130244166904215885760506861293512705879629088130822073555704730390579481015166193630069269076388403576466605899524141703864147902880091040300798492677337582323702678989202614014156735190613990597183246322225142956137742885621211917627290648871600360751148078414866033156896423198323482799472399744027984406163732349532337985682049387531240396573538216750756205044109562496839129291652335787614321888757166011124371766350927113007846792448933776619858478090271849274180992472382447708726458376863189386463584768035518948079846042953543386140671801420878129395300228992743286524841728015185776389296342716290867054593025582236899390289276839021072779416518898214356430184064603900971753357740496633252784263512687795936102544351181455286625308362625039968842865366806442438546528860274065908398728004503204943369792289787910713470605358425172700807344895766983648793605412318840370259945304804570790021080296642818909690451783635540593554915921819740012397104668037907996656122857179943506927992226480249013655369401860659530820054410174345946763908415204188598387706222981821079694948590096809545838034236768129339669379607562144667781341495363519834758268345544714821590097243967567649430274223945208092261204691282208000740721344197264466895137262134562740953934103568675907421085527559714759147023471134528034729966571233434016931468527611046610773920561900378765373954486966189941914991713100561479372751417911582796741264712758963667803752408921565868851465190842455655975497311342464495471587716513981300344709617200145987392746427243383298390776160285744900655365562376839784945805100925251562250820967662211756833538981234812161175663624202234134780148469350773113047644316031526072537843477788690980978740762315814545494633933240240024195706243334996071083893743735125256303339731240316873607903898901165065505594985146477518970460473987666926085982330432889771562683651311421346575071508009567576709445479790176386926858524351973902239517088227866494567496712812948699250461786071742791879119413067588783284861645239086313786700987306904182768293750359060843284723617957253025554435561507618682820912621258924026119932816866698870384467997256518799479862245712802991301694721093095196467897460948024245790013065532537146653626680742292094519608962176339789863065072101082751385282478030001306261992864446409058565594009260324747692785694118314385741401675252748098164692765583743976788523421128422520962509596444242094527539825052121615691914576796323182969523429142919054485614459872974081464189741846617813162645563895723882477591879255074503960164074943716712284417444807997368223491929542172636857600702137488268279364872248899571741292128719068742995072536297367768496467149776638763186923741317675530000181309533238865195354284481610852137817980159117583991641114399307726365682452799233129958732172460715542835220727036781337928893413042569593092595270298346076131079419238072920608823958254263604306223348728844170393321541566646013584300064980261879702430031692547134037055120679544901590633677946248650680675809573798633264189196737106108180647139253908764996418059505658684255535331381391974168670903469129507486894606468882786897739008904538247736829447864955582390051148870653619826994781799340816630949519157683971173591903129828089779170210456950666087986663099102577968160356903398586308726509835906094128814423682414351980358015135018317804123454384311907316753857765944505966025700641165103545366191459306956955740418031728088054168473612789525273393242536563038135121756744777067918072528505403122378197290157227951130335556825705181747179190698748904850186772837317176398013923354858421540721362667355641715559284894050346673973767218379515717981449099563839728654688891902465602358933963240816721416824962989407167253800597362488705231042335452577643642485856922678179949833708876054687086644939310840393510040130168736906140243386214142234455150186933951213376508834412466505917400038461276553487823953577613557501085808433576854658824644079653262669296484055476428739068197624947093266941750775066575683493271483167584676229811202426279233841638849705930352010710771598346936632909673571765362647796345588889609246926988197335017908527247391671636967424310043763007997322033620147602698951410119411036323691178913976483422965619456643126712976217053158241923558565741081855892481635695090698193786608232839295736902174217245402280820962625915843828612506017348971457705307573579247463861237545837634577792441911917482734655890766236046049083807091959127414277992616567043883928524787606465073026633439002626330130325407580100756777689973364023861826051461155413567802637904777095405119120861288171745630932299527200124198563946420739218317299131217290727672278549678106026429188384449960069756805841901044730758335672365486823027400639132432076535729686679245921596318123111660202699682587523683297446392550456623549342594985634216077836004883174677252530758818079659510744805254107365974775670332018016129140336779126787232820554403555339911147141641855856061962289922990229484597268324898765026695102844103524351681685145737103338000853684913421822576185481039662279372193632350347274757041354846802052258573562007127421410101065501234076843154476561514101692842964558163510464242497905088164009626638067581195843823021700007265232131258622932198754169493329748468344883010324615538940105121298028744501041256774859089052623648333864186363287597303035894321178878386822671911853321053084705560622996447226505063640399144120570949833948277133451555879838059462807971284760754912034954635685589552782970815667093264546331933835711834851446282481558537433684861661084683254296197975304056927401107378727273031799488421749475991028000649973504483392785510910959592182415362276936917210934776432373189408500620901204155557060567370034987484058415486181909353402187822796697472349462602130077211484776809834578406420636244030491520455947120632093119541237535685651814454620884729771336717826163666020365635807901829113791224591416123515044174373073235449634566442892611631748415750435248475054360670019159513212999802076791552908903055521493422748511487660275616058893866035118790889190413241844155630365025085875770013231102329712668660584937333924496761549472104199841782831654323964638795436511379038910152248618914786125330172628209221349268510782864343411114574378085583813733692398874819520423743551172304961845681174412150685104203902215125435208148067033632994122343150203528227748292697711885223915726722754351934713871593016705566724326232071920555123280056491931219042409682035820431289672905893862648683668591667529430017801160866971461582888439272330167751197360403370592706244058216282408091442951137529094869103247513799688293064903634745932142182433792001587170070189297912955319018612790073502003563459702145992747544928147822316943575516610672787612933209898082459559556103060379208672515948602128410573985100056233920126702448353561105763610841843021937056836831378003561219587091881255498489205616819913470871328476641559293016274648423156033117756030848509993928977319244715651574701988724415201792175395298963027167844690751878367189985025586268894944083217836715390156916924141572590742756909080270950950846637054074942353559910570736143938977453416651896018234457625390132278101330737622788925219591418601274903869061266796858358739547629595907560572801485759449580494625877672719070447036458765979420641872849455888388426940042030067824135492476722897673413833133426433156357276152017665181593224130896352358372360741791665435372109794927259160505009468420107780334847485493965368545279065505703236572352964873581942249133871098695294692392102874227757025254059261347276882264317291711191040246513656830353429357073434631682801201516972393450071273988508607289751043789502414260499855194013407716100729581010438983500833238876074370233739483850413913766599808928582424048463368358536055030363927214480838517486797457573653443338843735785416170150169536880824529913449758817071750889625827182955187964278016760936155685864789742392556123137049086953592553532148850952873470698185136323767955609625873933380691219815043510513296557590442156855670999935726907029616912097460040453305739278959792189432269253342416326911810119833431704288235928374072280233671035469543437635628974757600761866941192248881013904215213681974303266465098477908472008888666695305700405945219642347043627035490238634330464383376218387850881270539722652769193070294566706334474039133671750093620450385775300902182593372365430899592238441644261248636677442153450016022991952705048248678023193233612702975269965673670684410093394884123851156072310485139962184653624837249075097608656813825889799024100729153130991489323888284425742169813092653038332408567413684539614936796388089840030223824865646480199791152441456249422185299182507752751756649127581286667415753526549697483865860676854177404411852160293759517882605747610330596643864439399051845837081312004477884329141127795819671751945755908247439430828979749649477732290181761353196429900130861320700630281099785321822020866064005340626129736499256017449993292378925920372119984990938150759102845638806893267956069450061347499772882200853072502277192017683270751950561649798567708066150123360781194212847364210810041407710234562467940694050655591334580679583899291516167503981842273334714111843700234938829168858757195229370654405945785100134489663902144784555833830085807689673120249253228798494028946070104420368361795754109610821063538097773388714530914725717138831340679086522582161526241695247889010597024004016495666907194694585897438543803533521390746097160720669105452090676072126530089574572976358019810765896354244664784734693271342920737655226806140122536376451113101579907588170730749599477132126569068384277867379630340981256437548592399620248858934336914285526088478433172195848699230586012678028842733094022013194440231424163792668596188870037181866804616558598540342752499307662792355250891758607779948383450931554730108492285081191937492793594392524113517066583890363353239839680220690471128313893420560524916369137153449441816777562463686251486630604211414948497225683281718897774716556607264998427472819525437810074376529047906014163906786657290603883121337590978128069122768241752394831375573129323677902078537627282075264976331275290215637248102800390282201757864573793027408297880027359700596860366927716293950896795653999914953625397482861553950450814547200816452373401172174214826009544528041232293339438877848550601133982156279913044494041535989922542094425312312028239982770159538503766327819242029324446938990046676433066426760913901840488570157913324349722584161279877437420340185501616202468634879768818278925064229689967753600480655392634202316814027418328412174971421794254283113161674326483861248285934968856370941940129783801841417543806195946916041441240543222748590466637352818421408591460370506079408013922793553000166914185499170960145235437892983122487146610511769027354114028769531107506348497765310769732350418745003275505273387391219564039199467156710096457166277711825507893876402245356250621201046486498269978395039735521921679247539871017274332978396832667846684435724331384545268860650670902388637385434856753510065412026049369107916092107816023044499673752483910314969547631486514844215611389018339877336151678270219691294824634264458965343152798713649659737005888113060153768230609059491638442602307319709055126994181708117421149106865196628412728569986265738429622249663974042476991904990326229392358992656462983764565672944192347514506225993607955658678482657059154063333259508304383264129211468232558542627571829859149961745032934159400409317855933975755050644954393589253911121505132822401228425485618656312371285055768353015312970598196151846741303775640678010171198303602242617734055172259591650600097180311962049195405846975114073903767831971566496944246509548586274622313654459768351878658938957804387228749749507043877145602860912464811285512843434126286728276732543849319589818135992267206487160702248862491451508557292104842629727601530682240272944876156482357534569773766363731479909678871289911607402819431260511434067780607029244137918640125679593776094068707217320759487891083155105229303884921310053885524367886312359457948409177519375656909550177436496611495148108371229419529931395449806025952037623167348964952614556173708835178486551044346236979699232560131408696751514347705201157049243828816934748503303443704660425844313359027417997449014770748363158152597596997560670151835624198568038853804409315855598634422664659298428863868101683908957140712964376875477868588030436218684442242541986005180048362690364664748846498393882472004784471008049765664997753185554684768782063665240678985145600619914269453491156951963893641155195639008743964967377941294412650904027633496123395919089806308273150283895998160172746840325003832360923568731280098615457988942343571568078489170931836259848007654456509058286340750028697763388478785168678445503420271347836741483164721782613018440831111178161613217997677491142226879082331028964354833452608477000851355751457441900122509166324137819337357733282832668457061065017718674740446925646447558532885738680515013040248321700174915291193655071385109279910423724612202877468044040724641445892857709687520613288269341425321128615701631621604286896457551848047779166576965851977679123099616769997996720526263960385324153771081145198861267018353332131590210093837082206999766395545568710196524194919489527901425022565458538907033800364749104469336317248826127923606905372551138945027114266471289756240456842919491002387587234044455598576515955669752582276433285539374058910262043033322912965381200478526572519463142832281750358842399180397453961142575740338815779669567300101183991384129929340080108606056564788038105167592743848695381490170487334137764947940777431999643039861369565594673869352620441410772001065637911609811022492838887018712505918616720225734119111104744336509098398075031230756997669781271784428494753879305175210187901398442506974068890571277177709561792362567708549401887838662811993564856856878501523248969503629537420473077078156316663368752694851844370829629561238317910426360069340744495953631271623386902193353423499125896409118002159451466979077246788321808768200335623314237477700661311675502668422698803148931291369239581155259769646311190901761581093746505478937739140676529975727715438631190248848981438433201740064716879821744745666876001358357969506101833750663119746759056526301464513996771412065022551826115103768351450215564311650584891423085463114732553748003156410224963200109339969919773626507146217216254424772751234638946270478473843004381688745755587340985153373713053002763032613684387939542776460303836678969544925353880245540962694379654724563962809127812949586449892915396201098176212931317930977624759940838645741933702837534327012528642012977307946707659809345796716999334671797304370779403512983154157066216237296893922196604203818328815976594197411251607061811931916984662298713491340554669950280676203323303272379619825611892541483620555550996598039158751747943721797734771726508169494718928163429109046440111136027878117353591340397317556688403785509402391986681084633897622011656082881829626727741363638121721826135721293979895084991923304204255138183189812111067713987326652408800306025520088352292431406539154822771264285828340275392145582143556618507150586694207856507146337718382598057312452122700918286252897274550430152981328833276758057130557615009639104680697639789161518194223760228802402624586378670355197461593296894959039801016991776167207514897983665971934192636955215377694072294858344738820044231566224422247525408437058076742639361576932081304031367871916498778876763078550239762458154876399906783089808079825902455439482978471717854048235811010088441409645427401832079105559404636785338546136706028695221119470551380121123054734064022080794389589277346355898882926180095544991396839759423812090705911802634127923028664387302698406139659163047424530542541041189309221899828133426246311546611912592683235752562221970052781636338979065856410474042934223264711365622530726386820031785081350896216902243263992342783369107170788150336254008464462888685517991895815868042813733753461698314576593786505285969574897490285366972419518638396218407028591207100142209891136953240005318859524138684010029210110070389541999136638966901698967008091471488939034866220121688064490164300422122746003756877736071758860977131464775669813483395268457153158143599522517979831297268967908470863462550848691838534222132032777907821399406037020971621359942997315201408234175557724477084880638548475327199593935458436388968220951928992069899691313346862130347708975750842589995739508286307070177581851182297431531375364999282990333063654810864286702737989071722204710829882677594533133157852179041577826719503118827450962521293014587494842085429465425788257117498414337968514730927016059964686484144277562935405573191296326168209659265492201362131971653864668479323242230615574205367590139000895016361578398001285465662857299706405795633640562365598550447425433392283684333990883951984104586621747368198136745981270867830128902724940136993215283016296365024977406236793849703437040115278913010866315127689343062188257939288064135005163249975177135368490843698347683785605331686136333818169679644379891856097467020238602356552621669447205909273255775300260970475614041609688766461287513539585212421597775744867278580179426868034974894842446147423772983460630675020344974551494482759648339921583641883196683632672605234258835863660095355031237540382568041590675936738899417592783698949697962513880051019945200546672687350744631633839558149655943365020382014517565153642281386714583654579890828498389485395491360907971170201431979272867829956081702645597256803328907448532910279550635983957809111137734854659366519174898494171144235921590121215023571432505202485143884376492527689865974530155475767114207799813388776896242500967300674082401404095023168021553131642974305921126624432724425800124787070940612904342737161369916710561677044939664032276608005396590954198226697949599344751300316395799885927682907356273036358942952806032728080490123677485594570635546612796431175518725485545981764100517908567073063318047531237469341666746898762676906065445629336536065368664642716848287082011867707427977670364987756050475412200932465051616345996049848547683061606205108673708541627066477848076253646597428789434328926338316943186151520844586494136376595549515303150130403422286656465859006355371207646682558222663732460204254486856567354395792645197852164137890376071299387024682571735805117671653417607298371306201839402814096077027636080181356744462352282328455214212433115674319079950289165336249083356413145436295541177286967240805946190256815034973201282744309966022617291283580111100809552318924890052081830222529587737051924933031491790267973807749372454221020962895884039997850457027801069897799267720003979506669549835571711416116370662259130794955717360337096650325466583479274615864727163370457420972598129109604014435721028399750890020301440154487902390378538962376796203075624295712219336774701021075170455788560404138412778400378684934583794894871584775602502225270499840974493817744771203936824907068167524490248577801177226119690575452174487004008051179033632311437434725661279135815895760829877697887883609752128533244522163928669081639918900001474739108805903014682741866439503352980731980522181239985729799700941823740597739256036155630635036273432831607612302083475603379376364917855667221205624577603322919508824368259049057852795196467840456408586036042509173526839075831263296450056666216649301909319535006671198797019020419666158780231527045766253504452589084093596702378225676039621765491927957034137181130109904819354502491072354358075510328671147019136104183026861427213353821825209823452909432633496250303919224487434322099527466181597141036977980151635845446250726279351945856433250192473528945929055563796748192378019414823380935881064852077715561923035639676828078282534796685586540216356818528035810863595680795797713128498098189521484026422374836168824421348637041720051408481598858328202306666311850503778508058823214404220201053153502096251417884032317215896581329788533757708565052725335381859999990110041531945097663946454245198451869832788748306703659199065406869966213899749541416797950886921548259509267964674807569122807716401049238665026897505720869348120243281200675613247425742752734759449034537451717411973243442129581963594631516779928567445982430563744338854412953023985337418387035454065605676206813472007539167370278043462494779062123617187683611922214010000917512207779380573790283033063514926140731152779948343568622473623826046000618819993046712739139729831044058008663872856222960259199090974012557778666969396993138152645176084965106726795068966149602778904359522629274170429803873216047958047409304863555794543608724632232558297273606309224710051903300179145456573519265922836153431441281822995922257880567913818070118818496567149623527541400577510737796565188648579901177702763272343933651565564118339056017113643666210845181646256526604772139489847243691066712011321259707295709702323875651788563834438930291100485454013011926691906255084518815515913430103179142724994225642908853954185768257251292631296697146577781866568042211321364813617079677483976097501727988972051290251723171527181334647905680371026962322524579910337668393813003848449628129145394813758947900119458678456752813212496485378629282578394291675397152959043338238535636187633250323644463158445134227480845620308451112082370882935514934475446455765181067746525824303375015903175700101496266162349819497561169621157688279277063056385777551697206007117299065494294712397836161368238813590714706526118033324519662173055830300623499288706996404375608323448031174296046577476403065601600984466083113392935461764549531765988218917143283975598914670159203272345415413696534984992998106963214178865871999462520241224381992435114691576583653615611791689116475099442921384384920511851834358504817143622442572424561077994712945141679103548051429549370589207289004722209653651687064088901128343681223397191840215520955575604880517852388083113174510370701684749730476627357527111614085750373649943507705607557247471132478416101141410350356005547325853598698234257596068547336027581950483045937684085325139403859437008122876054128374043243895065303303004191513366825616916129756258430381818142599664989008001591979519860206455554586775126088400718269038393164542010409015655942357185844054374339695608097565181920194582841743507503809747263530447706470637683340232448603255269211729942342092471646231852527919102604525427388896369732179698456030404116980901092611188215468069376057215413789979229929291411251796922455622485881736884421266877017922338921584775819012498677825746748574045913149653143391789107266441420298890162247859605239098269599720363497304675607844345394979097787113664833689198698959481625597479499736033892384808079017213097211629148239249481841164296240139471993002302734206965089570084452817990127318320548541859358533133484048595751430157504402700290259644628452228875889808807743721939256392520157638615531294914265496903564506013207703890443421620558081943214725645106483444304949707025632146191190702298698472540983977948353165829180082798281961132076866618349299706044494569133601137938987445849042180117548356318314514961312505663149995578928661343377855077068517391570528276480104203412536829022501730120442548452230535868000443916702310481348598135206117607271463333420472494927423123719591278092310889092064173769743753308800496581433124641349384569242255490753205003730661058042102771171504649272697610967154443802905725891564751377217543561348690380582321094808984571531461647370963891431051216825103774120645337911429724908418956042790670485908583260252288472521069382054338631882355983276159163234216021001458364748969233654507704682594526198443346926808357732331422092391316261270133448565040624086858801577424554542440050857146310870366611267864826350778016288339764113704475653431026056810946560973127406218340936845611673344424816033190259133035837271455194340359055791478214544666956005586983944591884191354105514188830923437227395359452397046093753426679350807065337722656486174413279508459716767787842390048979369844644634696589910081003819629737726632517182204075916794795839201034962009410113762071472001436895570591998769493452510115374320601157184837510136479218125207257925323946039749701687619554982332782050732448514109530670999227545685782466994709375683736725890417957421622208218327076933531988765455517878252820900808951113466822435661819146689079705951701129542904508718923087145084614160202968680413727045758505989474565949827603841679561334465318653652598003120623669136989104129981782663328346524803269050103493521839777509000074907708369235114979120498915888637904414567406080434756242834329221873847187280575926105169968302529028759938831566422334948512355496144384148381657429337352559811872385676410786826883887218461137134814024075151860786181811927005770038460803679732248360427408526635413389816769894670404176892320327848593318919650903048756820491831692251995182030215568225414650630691605813604505933168165078900290422189221345446950925615104524015494001078669514246728731217445723245900646594505816311223524357249768510230306018612543406366484899383315676643126232180610396990518814227211867273511389669327721733583031804588600982362685369102173432614849514497290760813261003427634065500879917587404710015911632201813677884039587396332558140800592231984639707029632879713621129433155645511431851312735304901602192010124566514957994520256801414964888696643883157920453557796586296781498508573093627313891126579325912937895457460724962134166234744713307714302428434958746820070545129080872787185201366895579565822819780830823305888473506163327142654740141379332683642884709173387817677976481532032477240473605000260434602509876056815072322410588852634064432272024279650944515448922251260073807258732725020344692232296057378035304663904830355130989770012996141822646069554687561811018281529811988773449075047326852449897058084417792689076523002831527667156553519430693354414864800562595385503981693322928177363519796634941842770298646543988599468701762400591551910573063984264485278458918157731778630376071944259092892849872763340222105387341274496413589548891501972590111691926500618009802614168588213847100272462593082056899263620348343040813135561586327765581769271798435033541669632071321191429463292448526713149475857113729957665167318308296975485730988148023976995976697699323970729992491656723727249593619758640413491399648638021638192149143484120282131272794592257735431937186666470345297066520704211423074342212537244495135329997639771060712231890721561806946300415907981665605451923304286941760115534906375922250218580925234484284030255982551660200651454455984014093380902292432300133787017509648493109585620248078391933561239794728131281364895213297832530269602848128573888150858965369866383464186094859716827119706353945443691809033205235796467177077193441415175537827632423768374903347844879311978740701206059225427857160755544616635525553664857763356500473066579858691532426779802253595374471953807376240843606141654015604228694792401777258458525705683501321100918988065587210440722566485965064476721770796994841526340450681961316664565419197008108839399296911613716589865941323411261693262563059027514880338705997341051444684055436688467674791956905886480760437514351699754763882899360853091762620893923707725118958609413684199616200432339996218493087558819225464596605330035117582820952888400615456977452287158287185598599874023085951530233191694528558493873303633337336888923837447827824326443199121138304830824888869540318222293260336281283112349115728231966602479106879503853317951994001035982499701686564571267428073049884691233140004311474471587615811307423690280177498883877226852574696129113710813494693891787489946244162750506011507123731842919054088974786846640703133915503613822641371310914335348769182242907315635869417462678355570731489731827474901747583544585587098790256318001384523831004673010805635350179595755203401901292530783288742233859734601873784385941198250159994665309171266084483944230945677449961526592182893598074940979593873365577852606015210051409530937939655325604157687365168715487924145699785789114194406618960100718883446151275840873231960103738952093565211629716917724313505295511881133196164146645317476179091230470882368313068317483055830282870458241381635867886532462221003934367513562376755246421704611133248119301564237612662121341946070705809274453055539790537143748322437937663767452164631866631615418521139663907342375231215100594788850311056924962430675020225528136234229365442519271474506052342330105919909776515511968926198787720263787507044568788892269602289941057331114497837926195669927364606783371888524071663625714056871590007995334597118319068789893828750315893119624882584127244038291695633350748156625140164602684190219274872434206173327643807634132661145452005153862553836781420682691235953024185107802207540128675319730259479474183832253912227334115363743321043126916235123650626031045347916437645656252850381727453212321442877032125144087123905110891306566354489263414758287553578273590587928949098857938785851645628043267171608298054462780359161271590543433938075944384429145644042197097071825870559462202720219881341262966121465413058892036373361644058907174174441750351115544022764834468772429044030069885026962203093615806897703227339325703167952195211121920870083170636316948625535796570261407569856166231689043719510284584149475662665702368207218707592811633128224231236931797076045139857021164528119466497749190338754368083815416318423309656603729093158674126798645944252116839895572378240123833581589366513320007561743649497945788242865392653565197239520691917056507218182980124412009849454951867860738197865110441129723177103465481134499975054642108848890282297768372306680267040588760132067172089714830220028843205348316229032203480767024709228216727270549099275505691274365725428311777619502431309022812600961696756258979271093618621313485209448279926263199875703585706108646239540954580315865287858274725996077614165259483321923290761583829003270540734371409322659531586320123565927318745712499371172878666534320825636150492501712487955433976675062830587144322779339490128914846044005083445941020998218019193305672549749138362135553824556834809727762719465703705515179575075538652656493509539969857125733777230599892363849255497264753722556836195322749873617978460311516760704522058914492621065910472134614540747891404779794501029484060392421123436561502162562818511738191421408460617088718040495531227027446910425296692088306607816370123532681328445232522576056794734344029283698936636552009873179104269626763292150177536146328673414980334338744527539078367098703888857915770233181404059071209419950716785167585968146865980428597722892131817986040688094763155489272190662297009755371040219544333938561372010200723668660205659072981959252955600899908553978019452435006670060766375031773443369145456205092491440849922043142096941718717714690068944049240050678313332829692599218674487580832279490819645328013807990983269800145471261555081677946053822099858943729960179868404314632596721718734740265343554428128920608550572252511588787605308539730109873383047558465188168669802467521215880885117762954900977018961632699134042978860927344894217510781782874335729374976662736464713702555818287581417208996453817068139913341400510967419163634407445769227379917298640306660385308563618123427035597475810695474845195178066960266269950657696076030905099268349782498012974752685608622969650926833927454743061863814302617232131222423086755765952984469958947083849746356526295942835542715742620972691429916491658396309576904646677622573495007123966130506591049387802964518341292727553393984370413929290847991252901932645091884212291976065875710961306293976858105471129739267413763556600079904734921284670162859608016339390184165144997611243539928203020419154913191287627512270597235227914933911147272466827049958125376420083865574804494249854642608105967207363569178065064512853106488401956791408855244157379232989828573819663632405909576733106219660722915913824368171753775711906124529672869998020174302025826118005916018687070142624003470641096506696930844973177163862040057715881314834646243475806380238487769426004272739031694279692364275270292471694445047816367394017294334994372713649734432893749004963097156153185688205992908143019236262322834038220049575212103991270494144121712547351361724887125686700531784364448276135988886711347592182039929982611472601019602242989674982386716138037851840969146323736885023789062574826298458895748925460719450913817401342236768728098944298561435829094003539295911985863324811474635162919121897889176225100392973153519332250093057969378955906035324644121387900010535555191062478963782237450920288270766364357992703810190542220519252171458503722677489599174503541983607030530060678463103449004863241172984890925136297060440639664674233934551667594379745192281270986262762993329136191433821270674798105527230250815173887040740955136546674091261260739002195169543488454100609361128695452413619485213508867168320263546487678320427188241394174894856476423196020860781944417028182535035204164958525180369640056646246149390407588418440840156709765455531513799357193912572342202451995775226597126239953620584576173940021946143341342065065814718278600446231545590235838837038527027128203824775118469388211040747354061658561832227752063778290103669424938158912676544491114518439439758939412829358539841337841479186184735176857110215780145151137272614886879397078152233267802801120061823580533818047698808668821241378187759981051495137592965340815907528137602623699371282905776687567866837361135124335731308259712753621903345698822663294159368844605793908379531905994085352946627887970194666871294819435857058424345190764238264203349715558957019325258014444696690839203033646018162606119510748700450184363421648411324411006811130606265124718709112278511995809239068185185811634446592672821150095529852372876619091124752639416070238935000487630733401212087672891451480252234240877422296937685326238259380260855742940670838277464750460096151402900291830133996929591489185549990601848143813863611605208505176118967092128644684818600042080425608341304583065164945138025807608986038883623721223042295142875333927645176947765220918763728069593647711095593248562769546776054892332344256140297500868892286996178145454776806073674525207159801718112829156993820314766756983288372483598392836061531040925988537628877753907609972100107906196328441577992555466182718480065332570342212471846543494336813348030678021221049968430443581750099698474136424500389233336204857212898963993825272175472385401685481087345355265445080130135835162084727457683592967142823052930433167971891437160940982660363183408717814771342245997833753652881564129484861934655199050334771497810295784998661289233534323850254439191899226182421448750584043166599165745200937205366032387104846489691265320379046919292410730204714146504131582963373360094206638817649543078272022516138899062770775014857394507298962036890523970286753513613682867540724633364983502206520814205805130203708519476153751263134291346949848493833047864704903681273509327085251753063388285583527529795626929059718571882661369000947814991433192970787525803871270990241019738701916942765092338426908950627935787442424271193696638141812513298617356624961443260381947702392751796989165122455259998799188656908378411924902262654722502788889057522227779756088667699811112378595096465360465276486797748772003255470325311041771615764154738921600484261234962270865349121900125742566576912485649851550090376030658072322989756905781738987437927007835531409118410668892629931573243533299912923757437397992840487821030197813525539336599114203488354740762289341085488275560649462942186604693656519029389905299911667893065377006812551626730938192838019028459834185829839012667448726295453066746834237876076007795362836979309517864478180566336098388586029141657537960314479592815707724952336687693216187980039371690075393909615584803816574070122349593261398910301837065459768252332308697335065636188186485427542786692279172283710503229835544788189274679597809984477909274360207585830215803099819901241160400448199932264766442829453721748926791549760183931041275940525829551776491522065994554857209131215403342678012133969833321544948439077798057321224926510613189681347855542402886899887352335234803777151635120995212040869165729550732163979332142015455164472079569448035673369422426706862302284948242402376694216882733328352984384329109618716028723140033796446269927148284749703663673025457894342558505575585876327423603152670872990131001824931384714119107084871019501123397831282512860865689344757888342898469867897124888694927367533106887541182089352324921053717727701688489067234310107500159402870103122875357023933095904057626300724566926834119995772819053603697133361587001348676759043924747965497296515092387369142320784764033540051286584295082718107799517154743283935345246233080756244805244048192923134924186753270065873880360550949223057531574443525377080411577642670868390319784342758030710569655850504012508526578290662550581841669489853904429600703184107699294995027649434779781641746105289112895372244887721532049213672911899532481637269087794919679733534822994998479857348601379724500864373215818223223176959535259411752810826982409244014418450258319439392028540376374744357966413324174991096904992399369691620430976202967369292511315205983536992741165169883407723218058259785836348438657344091196310696400577892326339607410213624008673200806671103057976425683414854649085189047333309254586826296224805132605515901432528323163151081167891006258821302279768493487852681250781681892519701678530502684915758776177631857439431494110849642196211523940827472808782955800346382021584048910041774630038415597679935173426567068658110772870703930843680586873853421330576087897460619642874111345491137791060411630626012360655279747956869836915800460637846764647725663402718374156560907304743365291530484206749354360027860157526259632018066845492252083768122642972998685120250693352312436975840472121972765387064084327688343607684680852052273866424891250415465447019602234799493887448049895991857852801576915230555870634587088260448817270521867948562883180704962181041845187474690769708837821460327450812123523568470871430741614034870977541247571201972087396816279198553180360636902652182178536315565434619699735841091097924434089228918986789611400360702852587926948609416435940816299892170662359095400211067252325301630949517775308672921567451677417308143388211523828766570305821720397834574442750583335574392273146025703756671021267529456262210668157077841970717705448144300589682667576596406868268766180475432943087047136164164772245635996880925943424605372636584236139125616335596462374313098866269150007684042348866176685566248035175037980344566575656353414835574808258625156648161818120155534783293301856059605376739504083483887498446442292733863561904879206107646235186291918714867978487506237626474633094933936621479267341481460659181306248113538231091835257314480370601008006350250918268232717947590853862002891103530945560650766526349093737161978517376009322861508329856341519984655340410734734843108272316512132611519384751556451197486214744442189638626813262468463684138004274079245571327545751764100938175597313299171515366869178634521529891752168669550796817900285984475180879000280986477331927737013304520329312106975319941752557095597276419898109677987188063359296956767908104299921803419528146083628743900806585643024949384282147779487604800020152391772548635579185111498567147119710535720181330131724955604108329532979939643931152461174409076181080083630754341865731553447309704906456606225198853775046436181823340898252099775739828339705519880255654273238695387578444729294814806005802864652779218739176265814241183481793687080893205143625419255595721151479850904972118617475288667869525652389401613178959340193089599078586586545149682347079233643009751763449252630960166615982411006332024338827832532480781098223224740295305997635780711884356247491385377356638957617714513467224772657068715439596390547223296863277604792309885101473589278893967496211131816841672932001360643033697742210700297848241582033529793005668509862287015536019578271609656507669094565369958037224051205365567908221692212451513331997219598012303390931700832401726023050416600985936363622268369602693092230427127512218787003768910436432859876075521258253783255280871464366537332752257061490498212516239514970633248732965593347728173353547225579099995963488826495222570374246584291383182848257554807139295050752020619376123544496692348072313592627040682476250301196921904570902619509066628024656597770299123247498850757603304361526237425846088830656301833420710319017549676214060162692373710229409906755948108187831663336914463121668178398139249404234000614344268391744668259649471749306675968015025284552655473467589770884367988091702161936607113323788716576531075661413909958498881850711737427327373141686325667893664895716951008968990502160562969042602564779299415133087077140203603613268899315942974991366788289744777324496144058434136312006499893480043268671203316520632258176283588245271971297570420737497483885484337069709525726171486556158894583594364676044549781657488195477795046761385687273849737292692073574779916498658114851446761663796024233511669222615714881923775573407744197293933773367318393683985943846541799138728384752323502561723894920469127258926232324399932387958619828109784525198379061959756150869935941506015779159044346403024808199601931007887689518115266845073329900941672467814266606533213612537051278474966604110677414549538215850437603721173068036510512851199582504689648563857502094906629557964917602166066317204876372699968898724725571051471591893295340819061538618241931583354702050079879346309966098992539204691833570645781477102627976915678835452262049454805825553084783231867288956636508265800749063294446167267678699891491522499347248917467787573912138736374214453296980705973493581033225643303079570840139846315810367194129374158357514233933175173456295646538299637193647902285904818425884805984850326304460134236063169514190668892627633286643881412352916385117640199024623755472559027160089868531382789383061003998132950693543675532200626505727748887994237306971552105276117702996419887709647199483767609452969711581982873363182977090814440828899657934153422453785175524743042236599014932267888622497249440945831755845664637241380084998633205139305471198226202289423886176495196444953870110472171861235466422704759824535309550895486237156134218568566673158802280983272158995757085430057097334747725661224459843450961226636194498196980721391806228281070663400680525362682828627104456575254626998511057400365988909607681795851117109060874979517411057816203785566260394044455076694365114017365785086026434443696520612322845983455298691095687594757025972919216807119349866296672507944145489347111285885401177467859680433600835277293527636516898000531519947983104850038945756104962985229968888090738981820458311118863052818898600026223367085503047036120025754512861645141296665732411909203946861331939733341017597581163055016870484895512213337307398653659376565509447899162558247535813888586516170152711883062918122368055068624587883697203974966353727922550087266048434031317540547742261728567721363419402429707929417336122908770031167790138660195371686329951107643102130934664754266898019889751215528140148459375795329402748604450095053342793651860374350465711502517930887784309990899466105122520027819704930978957816545392548714619359713449062449755350762246390330416776627797926287452106640487605766465613436553835364365351822589535837817107278140695133756065034475831145428581475682726105611026317805767804241663676152572683258242871866342908835075471740577926247037512380672210765213599642039485141790459515787250201464358326406076379493757099801648271907037112136560715957419228196235160317409068327135897755521464033535877124809971503519922215708261488259570093791509150510363758026517150812121613925880050688709035568289115124435332504191591101101861915619767791839384595822513281479279590549812007642657590297139977921176507798301838706358982609366274122176968965405765343325710554494182949551905051390914063644934756113565254688330070281127979731331469937237747663321082407090562653726268885301996816437730280829507134208075969607559910035252218910686109612952093833037065165553274418557772359967379298005270892357448900361610155536442519292024213066820518579052572582620814564838240338604173925502734000282946895882258010304282076964225864782956763233913019700751866202240083568537801301974608425825283054201031593015424752061452055436335261405491977873950203583430805388293676445579315226734000815113161501824359393522703873632992900561487533675995860455356085008968811291224780872408331869020450486411840004793189915497943419771688140593121699710728727183428801415222974694111927088109288557262527437188936198433573426030946012627632373732598707835263462832672604801934404977832731562510394867017645325778416114090388521741569650208212860122833143378848070557392112897774421782937787495042755661157916891963165755947456622981816027805981841253954123121739601920076400808758912706553702267843741853907405008683881856989571181851460236818528298540691992889005840563583488041576679354684344166307055870606195988308005483504315006861717721574941184860332098492977366216923574749259101146951835916666342665279509103996705631749608731002262945800878260560525973509357402624034025133436476774807032243427885382194206956079192232893883365844362146702163955379694474494608472097808981197534947479453610964073964410793528177906198405394907073552032280698454282226278390966754432956202467049678800402344831037240716566404524585348231284160951957909968547622601477295511849499137788859252201966547795491605021504803938883562014008322573851456921510334090761158726944082924994627574537449842384283403190214841688117674589386282761282405205666177074694167373156786434883184674028940585944398255954928785951842919525161580235197434005867596695683563443245452219360414216415097387490835075232658407144670936750756186902429439356619349092118535343432807577208539636098890301880757269397872489580957551676967098687359260248315144145498448920929592725069487872158723188471289989504546836479093929071365830147782700176026225979604843903385818001942584225310479262851925761292698936635694676776288332380173452770837953686630163447889389761358776847196084195246621555653294016988198274193575057694196510603300891133796452441268727301290699079149831355095510384681876604722668169760144313983339111613148886031546054737819567742240505282280152371511185367185604384507275275282067713016241617205161371051917274040223930078995674298337042901362928553187712338867065925946683751675718533849638935088644368022207175576629263830866138365916291372307616123084079956281984606510472507557253612537007258018324202129546220142289488795136305062424230801164187388464444063184209591741648985608271403872491729662372290823115543205390879976639858835013566723770934653220137510518058707024809531280388615748133618101111734401026312114859864403946718470908571770570445725722044518329383549421251930374441561565751102542041756075240222083317947051039105744555303283459113896383682673046633880505171983037811405265729247095892409487877908213757739412178237344413966914270361047312769680616934371514459292486440549955695012701739317580883052277892763874821600214114081254920521933873123966993843525067594748304090789383486414832032100077405608040629052421218765701696044572441739326903653522543319346347929836040131295982178387117096114018300478469467961910252864426266684263934033193493438178659112824485795307991952263253765389825508424792609999429998738235478492631877711302473514851876736202217562738391283389109661786826818047370003372899994408997398797645176967221593470294290486262280636561214232917179603249424193422431747988503469275289067092951244869554721610919682041308731079248690322811291810038372881781493825381159047659955307812280141619186173229225627841939218464512319237336652452410614860691918202893218366020837771793371045492919006253127256184458884503395632324831433932730856270331000372270137969406239201677526764219819761073455875059518257524690784995915847371016821405695727713267922347583284765299669008658310105776377689410711988735864078875876752102506471075005577539775567483725548962218847076771080597685830236031153135155717641493117274267106095920516622010811645590974190973529012464195231901191900414524285585373952478932282692499244759469468068690701594339124750389746540400127147271119768305816035688574645145903722464904947944810101748131430009754442619030113762840067315627562827570889128499372403427827923378532970172900729264149498316044541401878993403176191733626416236007691038314266686350753308170858506463606846936421428709993040426163687559217742219147504014261823538239258661517472965194737792153200733094662249992402839968772729406437834279082200741152741550776558256100324535522927370510138236765138488699827498315075257707380514988007326478965111600525588876450581574808783642317465438020166683635585101137698425207664331572004893380567681394691542438860734628516449111771127552180066545352569028187028342245435538624855392490741921112205275341281161504028665816138776977342300088889126010491158136696633344227677649234445338496197498419866955329903342035668509126277104336893365222209619670909587720096311655490012860474415528031209928139056350731005541206036591838689259159650254387014785780378441542852903392982497704058480501944179054864628555041488997114999586371879797194129298670161675712240170047454479797895699313277006361058424878993437374174092830917185002338945218451484545269439322573134384629370428244809466604634553186500679304016289521620394248838440391190002433656236791403489087673271495037914789161067776901075217394314075607770184007483532653963372344362595197879411219228656799119708438669601015113845669732573303074922865011516994304452089971107931033957423809247432171190486343498914423757306211666937312671420285759149629358384924923381742683551780179593639043858741495621902154644152755501802458863767059075126798321811424058722276343835082433754925060142485222702134675950552067667998767548969655770019996612177425534169808285817088516440917968521143808142160288125253560211932169289863267638053966157946910060027090872401942479023819098739135169495285861738172574239271417437661832942708223239517989057006708465974021817761052014681698837200753603726194530751777321769183421304091294710136653199107712250438140406826272656931547533893939952353200847651564761600668137793903262633092094514357160146925139187316401843555155117520918771779111006242401486834931939117823033312558861908530023540148797653723204120450630158988265319675745565235556012125180739750236547383661513266426194919844839252344310853341144152211658932900508846722451479387394760637129371704416073117316982046650342427697008925906652075002305320550497176574464134168393483303833680169345275769802469114772229035776941893384174419670741010107818620576519660535673801310093721512557811944379621724102522669460831796427710148287903253972682506760267172551033613774354945537346494734888041416352814679431288763088676514060186303486960924068523483751458017192314567042720464026687941958849200288446295818568576263245336039713083964163502822322224128459841811401338660092124191179936600941315632271180157921898885473998260018995332710467705931698145128401030044543000139464040920021614021178054111376984848805542300586837262874572879001876925156244958280573794154663258452833302469632468580124737256578428444538339460604572180201150034838422056675777245851278795844540487296336954224812940255798427346846858185504217136442359483305251686973277267101774325965007223430490008190969996511592595774849871037842149968695952460980885697525789487375018994310496340327598354084639442214524372950958894312449395194375290753828224092588390650146014280071850643074009485223130225132262183932838693048396814507813755878606616843484683237026590067676936147651262616484167802065794617906811496441984104942504562332476744333284681288012362494405347415349072282821864076199878054963048522363635492134865095340588996763383870724976681858485309406284799180951180176096406167253357127445190934600199187576604362669142542730790293776295066557427373621261023483051157921530829751942428971336384672227809530692848852496320746920569299938590962261979793076060072509240462943637740118200715336764771388923092302535612610734602001592227407234346335389291728140400905892231063559488800336308796831405080370173735011662667145503701371398584707636019238023117373921940852684382050298854840315344656665114216001582695403263203339856073587509480277774124271860826296995974364704389552491657533356016362087222854647519949786227578772645325712617562506017761067591773745626640614456489429449710245401456198884064798212208290476352085195650184649177741716645316973201630679659891214247040760144858081695142844702951837424275382441567230628248501551806565696266349574957704461355365018694699964057164391196054282936074722303373687945845540839317109421887203936063401447151683525079670369621977306406519122595972513479150709853891574971346544835802153717371324301895616760979083470274698343177569506138316996032158971672280925713548748581883449778932218883274338715612732704442120164497119674714626358954105729116934449055907641802635916265418071165600743807879685328084993206693303998499037904211469703072958375444714879553228384110870152870855579573264395398530634041950186467963087322793765092144618467222549106337159824568720654263605455933417258740692100641322901093717983497862852283082193434715874775626187902210881378387124832305768134089996225167331584545092996763977645616582414885808613406876695046817674696648165229003845526262533770848820216642036047312127736133866926773846177559089945014692665248158440258251552710231312894345733104856827779190341654515537376445443170179083993975027628669385309574635275666549040061413559836888246304699920925416933745061718195252630538533215608013092079478763020650772623626876981031109702129729289774779430481791847544886547852559185410672923621630702440414610683472426177554091656042064864855350371012425255822551440099270826887945550592158039501389482011059971960952559479069807074641171574931395254888930225160200780670820809289240613121609188103561674918679640908004532366229359496418386951070705512598184288707129396182392166603510932388876207774196561183023011045131110524438591984426904540759307518122452980483868050224884276342804334379925934258293197283262275948380469925367625350430618689297198566432379191775091047194251404920794374749825888300850679801472763839622407228273040746878387973843229706310646300517341475466771490426771402928975440760641323802188391494184553354836223782792382136493384809466387812682198588039319667103507199151371763693583569576353267874998657726984421202112259024628613029571228087823355294530615843892434761908288530153705579801590165564016187074173049583772513291393615638330331126812700750059113264365040823341598526237593526825114239401927513005135611302937010111917027083913144972556216480228157797165991316173040282069224817722749125387360833589328695227855830336913968148495735322080202604911285570316646655874819393912153536317766990855664679261343166380150130557570153072898765507589878361376090216512663361071482233909341062085355207887715915431191522525123415705903596720587811008514891371963546388760888215122182283187160921129673380808669196754940111437678232487567843166228596897697041835771318401419039390028014009473286737590932984212119928284431447601839082334423469633141445645213507343774797509715546268326960304655113551928367464246747554764188560786917394249051288506752864464984219290356601330669210016497306581048450213020447988502021167656388148237002552846415684348447311758658425171786527822798597070184387974758419093695275965201868454589207463530921186341771280715337078106484633080201084608417803556730273787617915812163733841699247786565605242484416792015374327925250871603789538178131547597248038862847419570923391751942065271574021812498322147404505171018824809362685150549817409565862429030624289270455715319387107926576137070826851138913392431086871741154522874112480373106943862189698531639413323796303644284215780297050905593210290524927366169198038801957268393658893269472264317991839514881854814073629802730277041229523552697104456302519804412094918986792291725986425580439265013051436467848375130533933079760497265577607014931615030907236696689428586470317091910321855781256989773216467568184083742865129980564329166402322035833619545858186362785273499770779633979548797919716942913269540758500203814138433837961956833312793508409869131031292602953473294461670193422689491061709439890248657420565207432991974943334563223462787589492349489257695847151561572653446325304778576113478975738143627192945242933469149803359652695256071467907695563699007565017330929157977940468197849274980267154266573532172145612632798370451790703585925345046655999106919617122674784123763884850917393556691709309220003013179304414629300771198748661198426126766859756172808723056483281598304761375893855056726755616506882748997292739233270216173327023588912437612710159671316031853367181474201296457435263935788253618637039688005968224711839943410997487814223435234934152870726674358321106640471745088269266946741660578817523808802205116778027091340597151410550731688344551464495528385100211634701396616781743752619698560322955359784728161100804908448828273355514449159588985045327925113125238957145464870479901085667604884549298712467615830643426911480941571505806090344408858004230889996228486197561304338493646228976368896413064921663014806186458211278284133579112491889003159554471371382815718047207278270772039827441801590966694135809078309609643011524409507682483524441970132119807990387221756831216765262585384988328603267195247496072656132443331168962230229722634405529851901256948293024662126860937300525426321816450464651832706282309966883310072529941659401645878502135238861769658846384068629368779179119761223014941788630516738566809638243339141796947497482346576314757854961115635943511094325061591171354158662616096911858110196061976850648363517497521876157962964898922279603487129165751904270634580354855216094946675969989698665228391281549859847216133262738810581584297817486689903247988238048567427590067045173703482739356493154343968668428150540136677872009935223795451503916419643394807865852800069111536743790756888119664669687023670627915480760326626108128230370643036500472054114525669323326977745475145371191195153242283759837269298393178396570691716436460341241815192970934413104280129335572514116119761689814722901679994653496243961186966068366351926721874202196617155286141919269780316148606820296878972992137714362684436452533054178842124363652716054224147033019116053030258783385074065323355636627875025459897179559493188257612459934475133979574490806248764606784594363649929638758488388141194853239474680829140006053509558625376851306157587822729783331411135169451813654726759330833786348898298481700161879103954582205091366200921426753422874512811375701063014890447674534384640525821386307475614785563471421328896738526254364034086879123851375042969217417457176947994097670676175107918892606513368133107765101440539743326312381390854268852658444566460584638753860536321671131149379963107287367306621813961039686376005867014833206941130854400562949117587495663097612787155315230517529055062027136638591391247076388642850210094833757904338566570477007622424571143049020103312544014645294439597426313162261108556615595413679172518191158034414311401797552032306714721676616219416992448788565088876162486815450149102430985395671020431620053281247099006227622088837957916816209184022404860791421932674728644470131716701495116653509488605317718996649139972134261437694017943569033740846466588785200047455121421035362319585342768077740213255899226481434604809211472943126073741039020501378203999716022988467186152836912469291722625329936090521496273148530117150113435285761149746874751477996493569319807677060114340216617985567644242423130132207384195671627624613937865790469377894886347432832793124369717443675930754810917631093635951591711742786812953023983383722381052574425562816032572106435924920367022697346206628582036590990282649649329001832536443873752623160177247219928133070615054776662790856572854375640466042657443273950380223623284249158463764537215428085902786213017437830843201873419038036300318957954148443009507943714496771425434871530339204673595460797599905468116229204022159858372507450204284835992723797222906206229637999832939645414438374481641734721818568693807875817985935993940938380174103813167112418301932436076718088182351185589561479475818694698776885886323942494357098334267835333396106374966863460286228109585131100084152714837383089561403461750701439643388529257340149186699584862427107195439065049493269483059836303190668401532677303339703735960977369779676143552469483332141612068049509312784191219813871683095687610723277688889332019785221720401541873749006866374119913993106965322176958231919524576817553113676557854162082957905377575592678231692553229330963700849455395205065724138539830350833214095435163541290949762208774605609807217062177760797426888498291911241924213362892795650242389671477161052158922807673856290577373087554500169517505322194258145616712849719266093412218713756997103730422853564421059982811372746763119670703672177736477260056286023240067913444855074287054723724577006344354465867145105485264935095797267138473149577099129612981060338467840323138199818652299766535771081918561072941015879463495889789704818075217129717807320102519505004072449662191787506807689381372430315882769473713823753374062206631419965696963453476225730284429655419167029824886714141570774294463597454357680820463661032723646247920330202515901474678916371732520963807577416230012418216760003673705176849630168771482445112134232700162669502446823080710520297751341058431525975991760231039575553755585134374046005351973326929914933173588349174870018810138849985783463452983277316626947695667118803278949642606042892910738067861981871078254846358673773161420016785984469098555234097556045712751513404243410769926321210876310712175944782677159209738700633796494380517104725841988084965971730903817575129393715633325305880148978215108620785448585965840360771015563625222294141151334283908306962962721949901521176849678940418012676515430592176902148862826830413481743350463310318059239876443556070083461787346107937340143756542583355820929891969141015733029871768557220249728997660222719544803319069600843070572609630375146762288581059663609857130039429724784077887765213861961529680162431726071709006536816108565024633640373424768791106105439261846618525225512357250641018724755937744946000210546825644087822110788015346890235725576037591099576235503398859198456277260449699519245244486407462253147106079432675190214343099491165398541537056600386603812274532038925731968383482173664529581851021654787714951834945506826933758066708700215351606933894751986428426245522672480420018512527906948942541845765241491774796651130906839746711862096163092967606231391313158206894469584860578473539148553876058460090958009215347364496597617238712568564950232961544019831081332453552944628817305610813267237676982275554434852246841436778044553325696161676877159959860245910887492880707731247653737482137681944107419853934449641375662621332573361242400944774269193933231306659282268216174584986497947229570558152857057980896635758437001520804883559670143055454933580783332392674689387733621497360271777320192139474703978282318542101428288979179306821968832714273078066948936240289614972883889539326309057911929254102303587414943615906126801315626798015527601138250285926109202114396292031514102005559333189521989681055634135280846403019122371774891393501146197469147371087121568321750883312693706826843091109038358143108101995576735536544786467069463597781686152324345187317937416556062170077941633376773191449870108704696617502504900442710718038493455246116272707123858793482431637956456372719106808094600761105239424290005917475495877961656433809895751475129261880753095579290636085759080162587222704028310085056401749199804056621625266349283919762681740532538059262325695511138769668648805898167321372414286138806656442764060855838554344190164620690681256551654134221169843499535414028706641060022082721384103072814167713519166678292690277102596914097520686864207210713774262599763164708238385440709400954306871417264597506944355948413940439775665383742321323300552218404841156600665202554122032556820495208603938273245170244111311977683301658021643996956217653436057384163231694997992323636805637167731393492738966121074557813757179485807828358282177039915652272853754550548355167325837914456075916603994718667697218152369176300051120872441432248234307938085920619773014175088984302434749060253906329316569188463976998552483538226383635264973504181439870157045422316954957966926349144065775102589968908540635292652184774856983509962878981940377536355176066718048071477185172833739432206110130476028312055667614137692445641881017630231033954530455267726976946430585515298061827692038329158027644486803482361021227489860867520246630735181571962448928378098309001869768738844372810308751154272406599714083741699361806510169466084728007357964815095991551162233783961052235177312953115534291995913879165606758537402258967488075419525438993646294699549714331155702010912315011263503091707322484540766452367304191523514282119759890452005426266472579060743798664174574466826799685881079011412052105047453256998617771801346586939482902776938171973579371556786049751030528983542701058969403922163237761292657725146708616462763601127028747959773180402609823543062215678485671512147901873620166120454645487124052873260305080875862434647334166808733838477813108357983081110083513390958898644265298533615439215460640555049977970720235247102286254850750058000921283865592133149447373039986200245169080831079630111984697265394265168509029545719992768740019126882682770202231980674016512406027721759555717001625742676491012268843092330720475707559018707461379310552181040607245296058453165502477231945665037470602846581120287387768997150756596175135397628986773190360254773822711090985704780808175219780976246917047192960523521675261711066453737611272731357258715554696560314970267731318969630932799867400577508243095359233486419211479898717108897133404149870079457331595672992646912119797904110570042149216005650031465914311306127959215848501215240502942117339186249724033230826099728620390597996217369808737734596190904325847889559739126582152832628356262310941644622375720866532892436317204108041903417971721690048060029374471113232965718388370177780150599864061938183302004478888707311462696692117708227891885296433620082756309352464078571057893779423407661428849234179310229226837940565949343716977091217306607340234291696472188690237383650074956152227827505129575738203101165279633567791441429629404699973379875718768889535142347240487143870182318872056861801081211573921079016254062537347704019037193333419874845102392891569282666874363084475016970963289115485292144588063537846710198467244177539574179584611322101911350271824214670462525320603737897332591219292143124672859531315121258817511279146431773669088512582266793635448569139247703093432501049888291033060727471084705872658201365360266233354299245020178139588069929281426205155779083329296212337447596056494038244733224844813814892845443915367043220959739173018158385896172923756989358638486695001590846800381130629198106852772792878342062232669042339231240581004118737774669525737434185323256196984586708741123030320806468261720393782537664573000182107214251532038033355991893369947738409991899645431898472293533791282723443584501867200500550139426405997876985107931504695475140033174207672688288524275945910931439191201908580092604434448353483930280964539731338359589990391331443954180832329066698003495757794213056849800136500353925861615406319911652904980472823963582404874317941118464253722893795769333122407199482137522052090051596660644533574914356250366394641536033860304720957627112997418967105336392089515594433525754821412544682512156330605443052346914162067284525248810790426294467850609407895988471057647419431527961654875157216563025744987847992383052354943835774680647262816263596919206074591484919048377739274491550434302733986885955100189035450355600469469256597301697415119139590204528499400732507655422044377432510967635845908321644264335533454623655944273707634772566239085806504672344835699101166393949959546793342635061871041681896301046000784290216249732338073575970255942284624388870784202484022214105342190427414433951255548454857959619555503932839339008884057150679897751169752142586254983941057634554274853527022574284466091652877741231529831539777107076623815480425208094231724958224338916349829478185915766419566971671449550424565686792527711945492668772567316143177461003287803691400140878583333294862929186981361015276182649467480859016029349287944495999892087631480557937863085039294867110731520454023602466949632232127429230963474478990651828931456737466377486478654136586119518302025965366036439050533885861056557826010660003344899620954231089521731984274036303610344744477565487111317510176472567324939061379354352308598454926033733336173400151296416037749226097402266491651732019015098847383372127050959124037453075637226893385891612612672273145926295551132376494578426368425808385815625240487534312119432100577443729212145311522798352292629676735658827713118809851995543115286971473723398901332696420636500737928069277991693296540253574566773037241735938149493621550083158670732736761399227306567960185158105434478995871517330233989782962820578598619302235818688861912852597925333005069705623288907748115444331795361468017970837337578968648011157581607188221074358340625987185906471498694988152758797029228430632397644886312954242039092339258391570990087387600119932985110946388665570053169281565842501337656268271112641512621143074140002336106210012894525987907979926724240180369071150784739460889692843107438637743162444963262359333745744555715808269063869533075831354576179336544881487361904365546697552259842947873123526992416865069556675990995325646689525288135196587456048872554401957521769123260374791706853216615936302523182702444500056366587869680151579126217351996331777367323946697945781487763444474985778629961761265639019310638982114763940464216265527740147916720469108705029042959797691822667260469359297838545576819422786616229484051562122630916850978685562077991723549134716898857111077873280225454192236533346479933561718343578941503914651806096074713064351971141753861913342415836431911804245774787118507062619375683757944140882029518215594652619913773211370754358249385345011236716536860698212230817505776367903032815041284593791227949329804321076971906821865596259063801952452232765788836884214867084345493215609992092023197320697123446775777857173316630996340203678592934333271910517104021960798026389683341428152619166708275095911768885697500679583934476417771321849309400072000608256549018526329109420544134491908393676379703430713035174711262078225477047787186836788586061630223728028938388206200873004152889216058199422472356306413111084799745094394271441740413783183915721411910893203622037475484260154345810805951911855487822636491786945024879815834651387375652519659780865487793268300245116563608545389296508586249821487974977426924303284389782552307564952369392048246975263861977343277330074447426810109188638190731815835988217900378561139480682202562997045383660507093384719536972937439893190377755149398838647917320584501371165078926800724038496811614093512421301623392538543873219220962338513345128728404878525551158081974438832077108369242390691739008477015461698660884704957116497013096124331634557927288927508727708919483169543454495375027288206935708032880227896792600535648430177699523258050310523065615201979337982481904267812732788213169675696665284761817608204931804964611765268894074074794100361604448988540530384222866924468752453039672585610962825239724630399647906012135091134805053688930179577143016662847491440886571652311162721349201964126984043666853590442490550129263516624048942902908432084929068653664516718635767808633445101642244415751748649694114651973432116798210844366439684457394475368322351405165462174247903900206437257201962412776274901920693784526335800432445474767795813950413444434363381516081916078638010276143209291655475378042823607884436269697140864331195012049663502544541430533966989272984849557912692758190419378766402196288982325675641585024922703321346226239084495583230770702815952605692509046734876227251453213249785520806276571280923269597319026147249306505494227153398311052490091753302092730808658485593913482241807704272014521663506981969237791924561126361704355664144943110454566928485294717578192747357538614344150491176306868009695764893229925803602548907656362394656379048486131941221661335049795640216533338513105191096708013785943973355501512874230863947517514013055834624643260906837837976686908337763296193714569781921075944111449204709051819098853588977949101733990045995178039242721575824495379189210817582940505778142299046404039808776114874710461127260279674345349994243157410082431722286596580428124257423630642907053011969667580530434548059323510378848455485155350153304353030859599187213768556118401619520795386194760996158904274675467496831242689852994244893720484352047174609618534871805650192714168574510513976956861108904009441801955436309008903798366683389632193517355061524594748350798309354576387166819747819837616777266193622269167368641095812217572057959358244439068744806310059512244484183511613103834315850255579073726697955945918198195170694600483481358070704196246092175572405591670869430063896015288049352823418925600102100181614880710825045710456756648568411091365618095319787312257585404781328010392112267632528226362475595643862034894814860428546258275922145402236449267253428128888975975731712578829526774686622220198377930382014874517943115555144866995213728953497245904934658719288170294637571731502075482563702451024653782451767303590088488395989965453378866876689479148457544931422529989518292127957647409606325579729176344083347621823279512275328877609163719880012042955367030738551078866062891108516965589615319017007155612792560716809707968704854619357759473315273353158522214089307415889963844411405905286621022937698759523255955457456421879969747756038152188302505009508369342866593231872909344635943005630584524902315202284009210865949532965562534619318638530399213205095125299223314536612996660618985982584977259319229358317878982279615293090512564982948161752683129845351840757437677287335841305424285801196991843831065199628987139017566735095313662088603822537912685007552855411768211868203391247097367633802326815227314865100483655926496427036321993582500105194105996085380787144888066068394193334774750749703056837448003372798260206817855763040921331882136600359151399088811505671101245737232087528825352732351109325145867884398981443749538268697023095659087930010807965677719046960819324475896434610354981983929221959483619759971209547550354635333660471554038323319902019943274604737492083316117717872093894215173422781329608896645368984950830623596657261509452059680320326903692674892628891233797555477721432354553445487473811190058571531175835820361832474368646878193923222813942103987409852042488309500865604195302158191185648128164908618743500432667410738356765987311193560725691430457498301359408314592516953344022762890148223521222296671315326842532101062931392677528527545909129076192822272427189000510707537231086424212509680414416823749321277069717202622095601790359213465498737795343658820945166556627639191686483960961737641341116309912215674861874642469411641840244115538607088034094612580234000270329849445062244687504329823934837044232712989763937273859541224138667257258670402528435368250783556653355302548053193396861181852427302737329927364474718832445426168450394906792903314085563186673018457522866759180989419708283408752819080548426635777350296060053940365670899770213306250501086700905528007610434431602723475152820945122509626620527927779194331523141768125854308255282584409984008917686478307757122813911986743481136078732205245328344753153838911235406053244706501063073625625914625795627994672026490870992167724902717921369875641721950036964380606500902227435502083671355573551382026746253075647588362197934313294067269759783591760173682950281451478194218010103476755713952406231352165244336449300902574784608901347401928423263059305409246063724637734096417248768790389902846892585622734585690780649733320350082754216663809718925302820330378840522445975023339085026560437979063472367617658342109759384603501026820121114042969986690560877082544028479705548326125727107617931537491424413972948866688075465213235773319997627322663868036836713796322125677792240801197031503522934992249470975335277779881357037046810655001008640723469416433695595347624866531312614789683327677143831370683351876958950316527388624015954447873235456957563446409210367359922074960337726697356265098483649618288657668294104791562552270762158772767709708673182493831866988664149267377048427532994490634673086738729108754816419970599596264190167581259732118156734643637040278457967405647520181367917396574249180161919361819570849808292618129578642873878488383914691870130080274914104873249164022846442886104915598304048395924229127140378145354788361657577714673265725231929685345318393704297426890178259643851956113482170175568227622440420146198454136567826174843685817066147881335367001202406690823763445941982835445441732266089030482711952197651163815485663870609213425920959262854758804046715862529546981885635372722628603545814396932460521113428923479457766987839223556844665163635553639629867373537439119629796998872355655818379160257540245952133848847478552013584412128721922666498950779982057105440556798747640904580345044812557184625796776885278085829801537805356748277315296654839422091552205430882494403099269920636014626839203057784852008693083412288010169638810718185967087731428303890087582691030609359981476321735923935690844909664815549168129147685354383342983896329798375718816498848389166826942099374093334166514821160476120974034590966215357385875375493911860318502501931493910315271653566489343678654229120820666631870257649464425964684948716192162071806278292358493607733568860802419313751854877936869196955538700455051623632973238892035451845697967933044406513213395068929328247963856782093213764386863111514644448446080952860087846783909765322888294737900482248995596699514009796761671447815379437558033570346615576510681810353627839475973839168661948150023417262936935397192523889608829120017371908402745782321167015482231913009938588364297284176410032578958673011845858426928441169170462964467499813480111444458912507083587357669249150798514299910489923571968465540686871685979609998067672613643548591656156391184699319981860533136733828281252795461323843783885872092641587815948561782502038792677482625681401993269834052131685118273356799687942488967648178895184478245013987597443896266930872884817787008890816806156160635877354184803726438063947587012108978913767486060333808949335412291065933261341466327309689160399391947082188849755058004831963150772709067841435182510087678735802252022973007119889995936305595652223524134055789088160500612297889861622671372492130603022600553149327073360874732809181915672486974294710099362261585571152689851739324616091773162436167479641895937198462061560650427943172016180185669809538233030008885030083432408594773760965166676583409716825102418763559652463101765640832933672685697895383224681947752322654534572764316045455175061116892489876312215473883126921827876669305316678466795448150547118373116799131064842902765472406781850410095891921953307631924642688105175439222685297861706154180589868736355524678722361463867813051649345423164373617139868056914429450315638962290972369378872263695355840990611087949945811034989751925161741743730325809662158214986284034305255245973477461948315238353323542071469474769452033660033304169087580369963814310283115749005989846399226848821829863579746744080813645047583444737787940950580059515526344411875922751052594428992927352892907127226209544199819531869905635607033671801716937975293955566317187165951078836886631105696411827810534948301197053253905305706143377884693600067392301422623624005609111803156236335128577756178101982633575968499675405557501896533528637171476424356647055539966435837274429739465009551506157621933818811165030054899208994588789255300740018809390351245116053385765033755989790144771778817057413819545985358026218935908274069262976081838407124103019853280266140262008948306184019240554611058597422446109984853643840644237549882280711046528208977023848605183382191147126978586516454516033119404060517714657144257371192451683391311105978486013803743245278581775351126104712751561941955471735397041093580027979488083723354908520569970072373710378533527930235305438303838998393088674207902324500764967267006009891778225076950426825094388893790145399586964647259326253325745187538978769018177129312120253608984684575661547450686813567319797357699749908970675999403984350761136672950247296694085248269006485233089190408825822907121957667219352810867167912047743532467948599723343493103918070976226806414141933232918436772935604126996172652790766521890596171381695542887059634290789557591706247044668451584989522592357166961680585012763893246113499249101596080060486541494315192551378591688497128605244099815183755762953227688403022568792077247693030474512690541399001034572335896348477662176565794679157327141748662964672873325944245544700163564011059171207710681410986979026474225766163954685510877705731116925064059826868879153196309244097288708759639552458713092198717964635602888434309609363828119772464560558944069939750408723049147151138562349558713751052189037369942662864107512596994569330730461968150164802381630246396175291727830153721233288799099754973642008755049353368524323740258107110488908274982943990270743016181377043126241760911574840849634922517778975701587062141132930961981865165320417710189568207769162735599552115433922678586481110295412040115280501440777261093954871121044210941128745452454783205492709521725698123011738517311433891186341106697336098215995718651986211659334223898770117167557725260973582756577674312491150311307071360159737569214220810354215967708395635156888693015309620104723701014687081498054719706290047760846391130647694286318119134414389535041347798724171837747783146985098490178564715229112370448302571936778909577622000158050296696867694564111521841012857264880636053171633203485007307154991625620103107372257335896934824495027887033723419611510454566585859289042095143935749740858270012606643841933296344897189346140976260997086246268126764226598251973414616736527534336374853191889172647998724151700098359098309027260765314312432005004899531001503970084740650921120510835811884831510644666426326168394597355201291524483358579386654484411600638007584761895465266539356799914343905540735889714052770252726050746860142058343856333068507477396762262930991401421594168947385309185864769871749128559484786025276858194847902180701138395688120526427999608085841055110175413970682912002266225142340849801758271181379463370443693375687350451200794972807575681229471901153700657563975724078347329405368095773664011330490148058369440162907217733811579871699545120290949731316235799835865477312823368206594846373936083197161060106453562394176085058913497752974311850161686562475124825879920267094542433501157271697889025980140779864190065641991731555966297619314691561814730977997910720667715663555683412029782398646784469367860397728533439881422699314753718579002884961664957161169404453210724418954180868922997399916566776097216415668999501801382131094384632150255349611458959900525031028614264193109258717662029353613494157055165854782464412870960104036881348001387053899100471103772238728764964913344375724406996328408690219270812416788664239995257137889693088372816022630071608440045235339883906266750493885044293151896060769565284287969193046290396275920579404884121191397146708132610084634397637076245056766965476863933398310392073046055780079332075938079846657144599796585867292934136394657366004129125197211831760505967741696792134824533928620352205507495853133516157329166682124687598843624297432127910339345095861256615235727440969057350242995450999780276582252317806534026195061765956146716881549147856776324563692628577109660612844460966869802820472118724418880401937883962888497828899991928301625609968500964654630011666771637216080263309462709975004684401569610600671565563912227963123772117053978844268876823780304368257896656510307515338410633420755211733607656688471216573661931051427541705495153844441476568812707714717957964174927322552321642118345819784685150423544622271312436522957715677816110873855072794950574145267292167228087969545073184264274670533828748289207901968535072265856786420622281820244754547925440678607917257649567428980978282435644576031678061391728445129917157189332291405095142627635961920013445308178657942249696296449862854987503925108031103165126758482594108534768837751678301594393545585492746246263353165723529736952980490126508569651454533263823233888074749442953940230231379618979792844666232594238666384947833442125318427017446023824247542308628967602196239681272294517462666659804982445958288985701959443784041593389071944538949645655471491557732967291076537786475441127122032597250452308260197469310440913252057960632435967290757826932525708472142066748968965975410798165122191153282700796355958417231512937666788225897287354864771479344767649904178744644988520963859967614183949147368632326041269945614845855494713204018489026285017004960258374445058560198090950340905169852077050686345450656747591718480055658650446300214181308323355454679118381223813841289424782132962705524051395397221036997415815289914472915609007162404297516502243516677928576590601250430561006004775229226240296746094249894663810651279379762711264225949460783708453243967257296538908309126173675004751571991082610180722524037653039976256770883003947992885644819614464267687357497656806877634023449343879373657378954135252366869993153349215150779820125138636628770635403817719950758794316919799508249739136252873489803491915786665094213260895797828613791639538877507561183106841872003620121227594457884998275764800567579652472625259418193657627537140116338000390794586291442963978904600868954647918960355178780805760549784807152989631639950091405005074903162423178971228168078560108786949892039902295809827048888240894448321110767877967934443829981502150711771241009674451387015046262839713730247171162739181950549680187845561243856547254546530345031975913807599925563216740902889169123629106780017463507486210648062433759838411169910886665250547262302473831319766782197064075123907646015435577016984780735391027253151976197399796104677587237227886385914811495047523077897268333896104191663129117209138754172912303749903224408019210508024843598343170753595739140951634118623060281568180153466317904899596849548696277134454877091544589508978279695495770599883586004048843056569293948488828696409953003372850482320196495536024448632898147112635054892370400587463584870584398408605296953396599311742439262275924913311764742790489166769430068698690941218688526721059036173546107429904665556822544226073748635675144043874555078247738142137720101884576270527339363986311041449166403795677487960535803072778515941436613814243368140015184162867998917372570915931609105164278076886095216391028325713973438240482716768321860996368871332297825993311489468836158673498398604743993715273672622155829824494855396535400719684165318420262074455312784399735327380912611187856208439112967154155701460455661225142325752330673684782997294979322902137792488633008120987112683428677796133906139947281665157204524361446148498224133670563872492640510558057005726033143168347684757997198304458086779101566274005610620947360606253734488372423551707670822030001335273420553079584461659177493465994869199459916781243189009114748478831830797851568789192581193755776927005300037475660265975980246412556416429193161710818878242991572241431334282382133650294626941758109221216564596893846896337200447968703061868762474110976910504239844142208049391959261855713378694163653816948909836886190881645647107527155551142569497494996273211270564983627457957003308215935390760273055346862909928905513835665682958617733253125314365565431944909342719909201778896157090456450416095213013407350494786322853316892158131692440465611512961372291064640764578199727346757012214381951945469613122217496341421552066231600001727395662436373541045424694249015517435350290463750901367351068566762670937494024458190488655684145153088524071445025999012108210430832975848775644577157189927368016152010039801458770481752215436526436018953701209938088472593411872251581137275280238998696631719692058472218177928823406746149711244917896014017815181134927075447914946311794274956100012221578001185123944766350683907754420370559483769061032619219474990833991939793944789745830365977385871784618862457457252999969127071027238226007289838535882209479961862668593808874286588301808007573017065095994332048965422229383988017095452684050364088211113779810601647117908181528178919519133484368494954570437482991572680490020233537747104734968007966211141570051321181063011533760771662763130902682935096222355667521533233104878666234676158452793553031965403187013115032178532673061714566600319295111831638631913529096240906820665980037509483198069459376632228229062963357273376296599565498541251762324954311166312376471606880745403226038894328107848544951534394055281717518574308268002029941572141620344181723044878254883740555285154882852607779903450667150174661548002936398091705108197145885651660939654799595190182202333909353972528307707317534325174277153781146458947198835929074515633282642292530108425670931013387246939256951108933062572642117509896586992420046177472736748753190920117439378745265625912703054749671573081867319302189653566409647508067427215786934778898382207809979828233617992424299298455492094081910289505089323826792718013636423897633537074212693215036029611858656318632779814646138169651325427115440806692127843681919186709095868919058187230819577802737745773074850720268921696431225386069137977620933254661991045029922086243164944621910425410399773175244575316716527022926108387004545427568721824382538425552944391324100103955017317784948985929581055451172265670779631347121358987542312364019779550546787772224350389123696714954104102656095939979025173475903629106859995862962666504018483348493675656660594318723159432746186560685439775513319723310002791472631004086945345856648056449901704936644425635392566254660734473374494648743824861866123763094983809680368518223695819135376951861662470437161923920518454670251819993185970188554821418476174482311422141913385914290836219608731178796227783849345774675754920616678930365776044657722913924231341870830491630139292074057059030797400819043670378253177456022732514175871820313929363213983279131498908994037810545336842464433173298994569949008561565536064830128630872372904208857070739882134385258758686104900584923646113044358934835808303830642713896345185621877370885346267731676714244135023410342633859781325025376725027684583074919804008806118218665807882933763963192943025117809843537636512352567540257251680759370358368629346851844487658566944880928997115943495347019263015897629702454887215578117344835815932170226399343254548598034613281494086822584808229246579759284427248554875125648059433231122428554579806537456515522346840418164882926105204876593691557174421901964341882188188322965719124076829574612699436330945853328635962569313013685132235822452292010085985640366865554423219413409424184045929626898945731240535895381462904932342586932917922683167597338092916467460540795796247219282858723042859314440505703552648173635019940290672781486535389098044752574711749684757494241278980070542370660769353057489240085317104305984133302023049415716573826054547335964649389717049815436806089454374156031261335611030153674587833380225145265136628078615577074247909949308786462001666312946790707733178722983788752643489027181010215337639176315220580964158499435437198906206274518754445475595384410424309616053711338131044103346180578014908295601881294724967305744543310781668311178651734899663609498134965702577163341131327646304016227739142679268544849427068522471847727612707849818460692557113916269212092782197088859774549456049240702774190050936259390282404868230572802323505980928640882434137202242292458549720891183341677626483407870307811577680312805462639537949743435022234554988123606530128036608728666553077370913507040993106024488955486773689542535990963758864022017066069168371524601236870852895747386052483786617527013723801936117129420882527088367991073630725975415647184383217176274547036015940285032329209221640896227860886323317377267556088697002785153297367500426983630798070180913010489775060085124325637009326261302678265300752684188318153243716646139598666933632208732395596953293007343198170656442381667072409574281260399793202204024704974217449313062308202387943847178752039065489527300132336316939016279311719542148868928447200312810862744773103022199396532236825139967531313778324458383798686968406685330335156067625068011980390657907321891194305742794857127549328677513782428593267691215330839687643526218077414375769688752852157863994198091621988365207706771686016933191355943927554019568734120496039119291150784581649176391340211875006939262032347269793563952900643024427813996313690200570630874950531636526505982577573326254115818185773074966154671286713758271820426681616610959023350254082947379832192241254803967158903439556665553834866497810735791537439218558612461976196950990246899608173099220724495810162453226017386882625681170339148990670713576923321435912389360748309572135699005953254425245106681254418808558952828032472277947758710523919308039748568875710266191330952868024864689151729897460791748995374091323571729902515521985770404224511894739582588639392129333444620018978686510411069079228350120491318861002149403044080066143255389402724404598865085848496998297661868899870460159010142382211552131352730830102729807909502696275585000296925445543242919125178562196201236579845474713534278542586616545766972584839330191408959743132258684045445768346380447484561448508826705136841879509161701186048877918244976288585193988986628059672959236195973559124828118093449819346648218206064836977781729679401431238492468990397407324440763523345543963136198316600907997777539121983293877551757862767707988823366473939850084486363878750923039682755807505029316014543000206393146345504954816652199986441680321606167015410048133006158235508589482084520865035567737797338364304823946670431315864871335029415171647584225156034756649629526544753102727703528041170263210267843241581231932426508159313255676343756114267105569048606509954639818446292372576043046305192562410312569176172919009632282566850018314316618072518497637320968249791535309058954159730477585124131828975267557573063665050147232588447194502431233866827270658653855404054093644018891591305765862665351047587863976340527275820194455803976097495800838978250846120849421612603217205086303634022444318408115726446149670007822412216686429614045786730405314325569527520638308152265026396038624772399638042475969081413628702621568915308834471865315694342593621640865860694065528602753857592832915507444750503784783195047794586840160785790013780102966423466251841874282617123295281964562578215378751569031818865896589488406378330260405979844639054899100265647558370074549380228226502494826285017649131590244634896602934017429262108957599409351050759216624957092539090117024005113058334724150145607930132186737326400854973107018694306656808647773592503863439192974295677799234869614139408595284921503765382248284766829247987727731524995355750878188391040211839974953779679655542281508877006223319762945217680353843385679116916578691114023146360842518286613006818626082627124110593875089470159405570280616182546560822022929912998894219129302322290548788944936919267693751684011611835636836030104752896395397080119040062660405370922696001879718741443541247815062989865873358314036094910958598359060244358911539844773532997577772776137136755521466480673523494819124797028344692043719468723972715273768844776067971044811355865433427302873726605525750151003830604063166139338482452320940373368953633741626123213802810354493304501332092151138314651128488088121618466609406210427671580808052456853948904536980372270035455107626030864707105156147729407350257439756073274634016169697363053108470812653616455947183933213767124823879365063520011474761052683508647566179345473612387358804586386740701341018421139787806527895718713284178587491764441857104210680538341037572719092468823221520574452206776993156252262549645999845671622722378511052005772067858429296064560739491471175243815952594142439315675049940207549423925544676765100220822809059026780140313023245934127705573138174622479914234473477145950886727871072161464567481439870118894425007959596017150680292842878889468637592285324373440267973748855123139842815285593050075489622707271063018818491022660493571800267890148070945682691544238957002304023465758168662834796182189728109461508279591873561349165269519773289369379573872862253398103881149609183934846642338250514576858605604914022371504736145263648589865761188888447131836418691573885760708248161135981582726911273257039750687514028157162779031830728579860259684506862221044840593047242128143138430182973917409012010724803930561948923095690173795298328364993888560554424389354297051394248253563190708005135251581029188465398149381351242305217780756522525647135116423637047504102800000769699895333562536964726989541144735063919042794915139773478788014780372028681967060555994989576738507727716079250374049348029062917167267317920868045289508730521419733090146347163800415964855746433540110317171319979618470646831949701405635731624254555907269446912382307650630802858492057380539161790720530718861780383816521720700008750611882654452534635190374117858867200846961282334033468081264931112901777925904617126363498228531225368679221100675243564914703992689361017725118602893138382507741454940351466158158893893182080463085346004304574339851299530859795743082995462512708198592991473998009524244221331383833507329740197610208791235599041951769758494230723555599227974344900863646219935064397164615306079542537578501565284509546145007443740601509792263427600755149640691804340666808294067556639406534550471680093128980670860424318084390118428613447012951391364631053940448560442150749702990662239081363018961409190912471206775629290404301707829918050504078213122750489506210622131699098387977996151279489043715027449396624024872483840669378634233176033799712325828593817636394643329993318852507797721229454499009682518007810217920573243315194474244031303870460494578058092211903672679911034942013705909929544567528158318377941068061152605958533959498337054661610300571894492582414034680314259217335840751747338725985603288035004875258226536729270817634762103109726930418431374458953827613758349052832406204488144337149181757119511748877044328125705766174576698255816248035362320823896590970627488828335857646116183007249871702840324549262166168809550648277497557917690118559724616923977982433524017500418256841852414019249282358556849671440289934709191821684412877623898876097659027787999044062209632413043066909381025575297457042310535190094405833658346060418728156270949953837851614488650855510294055842507110369792764715840067784985276916283787016789395073908806204991929413605655243410924402113858521115360756691651493761476627703091521431551048660072269402482641035596469569886678308928914270502457604956818467957169451941518766977161356339448657106151053703907476692830837676459238680706197304710502985113281333104762826222997908568035211572683326864561052918613541567549281835309371172180373773510257162052439121322390757799954291644298784062572451641762621593794648966490777977396710665990694955532817639286164111746957567887803629518936763788952001560305641472406642352615194548935365755411051896700686685542073898365433104524683504000253767167760182216588890153621045381336263506569470660914224793963644157393033471836401315532697586906287141522559111384331675554904102660439197976964553349371565248497303127731680253851737999779598118549491350225830545678480070601091977305451057713332536468131541620135046943990535722306382650351096534154784378044490883898756055609181108885045104788856291908908762581757156961082999982014427520980128143259986708638738651318354512587306749107483538237413718543663422444161629159414359741979143727846153247656990231685040601434158034827781186086000598812043501766057311835934367233354140650612765085082012874835986802668142515998219444676881453979267717986015895137893567990030899786999643347753721751812792092091253399076815053104424577581117299300482174617249421088911008710409123463642580859751214349668208012074651966314736300425607619664078476781931837006592617835885311121077395145588202661501725798821054060525971477138636939942044565446793572328261936842398129939359058050018357864918575690945792574205682511088996847943160339000288960804560570889844670337013187574495144430526119394574871834915944556383003335488757351898327847584205387373761239224388644083743125849412905301705313862501153323225652647117086840802291118746300159775738652931101438987293941625083186576557285906682011693371738601630720622328991843545174594577968899445915070334913555055301788234445329599061282456335447336418164421462987564469456661751948640468391775750720740305670667022622064987204407899190204895516320784486840657136078492590309623078834060510837833618874271308605457165300438818404451714624950099136957556026710768750368715520766428717848436080209368346876646111823294991147863429832279226710960578669071662917782830423326665317983217842211718669957510531454651066329554784348609883328526926492412285416873284619414462936347518125031930009121638071954737802678511319337312429925562976658085157344703364082766851036463824286789435307064211307203638231170822377456050434357395135616505615091678240155642725803032197436798384056960815379268383439864430221682043462774207509129423628949413826130894846202357416259482785128141663466588182954091285856890073329118398427879263301071119325568719576470391099297653129632281682268404189635051241619796662399281838952436024725994228619165634734168035801641665017352681148716583539178151456389668708142287422438302956395329565370693719923262503126463221875923851747253082388935423814904644463082691973291610981344445165220118285709427175867653166775786788237755747987409471835611517970569395723010766120453333951417473993672213972480310138839553293299884876528998094635550244722302595556209881930977719681794521704147569273406036523912295221259246302353927375169911287975234986085623658615652901433302694054212912158689538044915567853281904642245307124269782458072329759564990732857681597065353135570097392204883658085081487200969076884540308067125353795361098784298480397953223735689154719012947666456052160043059444233252731192668809732036203636395154121200982319361896085341410619089566283741509190839994189361881673611480386217812022350852533779476133276240875075054938420151385286885172174008436671705280219969122733918370030067566455144374429212287964966754989169263793390600823792289283975618812125136060793620724087653730115748188372328487701498696035759629841104495438300275876590197580638281667831390626660215251017515377274576092418544931073398416865175902198417031375733117105841148310477103874064895850764276343951916100257781123528140122963252969776940297363413937801848253919183388916499704325493673634098749929520611893979591302741004685705028409509508415083176715662782628998332402391435837820942453567234244807216288846390408817565181156069033505974185967172367542716450829016244571098793675380457505235499937470635194288756737099447794532102497032781313316881771051361250333182089881323343825989442720682364910735261794982262294728661993174356303270871351562353595264431673585128005496064749206790915696985991033724371411632361009432443405355082328661296022091990820746480788858652219730239380043024417451132323683541489110447646627011019701268804161452159954144060475966478817806174956671549426579706302947468079083387675014119113596774867139939578946899398561364818960681290962188212912950380682099991785754088856399403979686030844016635823543527534356666612099001541656981162448739964421021425355982726115007412341923725927252390149668033257113005930117780051094123836757231143857841592556220126672944784756444856143738440918125100005495829486220877126500614719616858177321438237110689550296525943463961104003647423512747271069462104460857179819106256204066577381724996242568199732570626848060536615900684145859616250614161664013791204639935780133308238630189123054172977827477860358951212300842017524630397814940613587489810209436227920187130335687568695791318246830802697506924015346359116315430676046690855144231600859396947995960340761038199753016095410548703383788875389826674444685777563820662638811784111507245047302847140958187105925217749000325258559623544556104763153732488474263286935272648648905074490108317492395307298546771659399964148569171530179512570910105882139708161124847912606207933130281186164873057216961414414641706763502303283320631243589200617776246648635263588210988069088794789660328015759950167971515754297298491798583391166187229706198089369759643521122548675841435596380721556672858800108314381239289824558905383061055233362881005363622784701808197496694633681950520644097770718272072163120990050549702137553641014613751888123448870513179252836653645293547513102797682852941081590261642447611460790307248532786337529384246087032027594067996116497692197423068435137208433751967189764611774026692578599378734983978741641277069605647769092018175508265397885463608781574551998817097363572673785382053974006559595071403679299039697263761433797041296566765401205367576090886859099166370769451207724658511479182010045229600699165712948033992829751011445770989289900303037099520561930561857930970297104501529462826011252219096024064290560566249619029004671145712331349443917098734648394996156469956640492116495711184669440779321262905790108319341162040292502242808440730063320915561578495467681110821792954871855760468631089029447741433808079002138348187394933739913070208047271765470548024624613589942018612916612424236979796393928645818717375900551400088473264222041675615596607115318256079616865846088352929151936281386317363869417444727009991807120718064779114324952432656928297007656215948536769627076985795179270885389869400922408286909542174656882032347889846556929229385585584704473277682579796454229178282299562425267671160027057132434515175777330247893832008524290357055363051154710618074243352936130148008288295777321610995101165450769030643001123713194543715405146907649623830172189929995422606779098384483149412141878218549319265239763564087295110633115191190621359180170570783293597747474620436286623599324419877224861247602059065398079529858972535771788042724250681001089456322167044671412904402472745190952851981227450388236205102664496198977274573028035210047892768180807119938417707678531047735314122635187870773939031316306027706130228620891213141631159793011665877706720200093076165134075152648818315646261385062332592885339825696742323551949977310127017111846726070203115931026421944238607757707117601436848224616718222974848101925757219754326329586154654143979517686731326561500188783573535371219089896659120397922147566498045408313418543939590270673512430360974412887105282389963440275197264370035816903582012217679473125933560577116214389867695066968953635654758869661046881767168784276611146911413401152716422174726164296282009089486132135045154885158159383196696945638650876324343609188402548205239229557588757764896697035910812786239955585645009503553694927982030232126063175318903588389196419666883706269551716205316993746250576344911536035173842758131999593409541522625475098563407132044384948213788086711856002107269254507355744523679740341354222669567089395827974174985621275406875025149177765360550372396987059657277311949908390294893683202468459134339259306581226604879967768335759476982288317207195344224800884247721873325334874126639832259026783793802673935323565169056309907756344353000985949473220555991808111898175100632212932841975171232166478112457927725488551460930726597928868262011320411965957013880274636666775557222388164905438449511402696791704349863844846151542972936039848545942267188161573711045853607565528546156484109663081414069304505202110875080024283623771327084271516881552143894012893471778571729472634934099073316486861664323012422924444103122326097851902627512793616969035013809003685060994437079593335270789145815948887903331597527780238445496191116670496137628736316221059904966430643189154415493454638128288041466657338055621818275755360979144326467564537162901695893208569966308641329764317208560753489225821390641773689118545400751381710461246005668532979233685886873458221820580139437379828669740284267733804721709394245377504059697825867274859304897742885722752922402769363388060654418783552366844053345740031027700859649208716312365615489248869461709828281252715497791379978143137810490975183468956500667454575414520150968848351079927587926776406276332057789948671455641003729260637958892206984581712567875676979425494385831113827414923396106701840931644916250709409413211992004378285360703877106320103624510299553246396227635445357108062553944819997926487039823759238609758291317033555676649541358425600192064478287990908575717121646976414801671561293669075546206509220317663548240153550281858609231977518275415574651621103687027047604579005270125521134007231508956809603722808120828224929139550496444346560042732923797172633678299350753527753446230989796016826359715973776771045568017322032026631898625543520343593654258166541407384794357998828625898583958610897392952037805412018133714376211572006873234934725574306081347617226223345211316217368444060531403660495255305249458510144130713585673702611566044840295057677466541571391962022977180491648796967655459984284909700699859069940361363987140507878205300732436525762444699991731294051213108337177520895106248022898097388984117051454067446797026844766615110539593579386636369597287329418567055279203729681626994510955225632460217386760508244543964539350650027841668231795286040088506894019559464545575613515870949121442007565729687709439018333313371575562712399064954810830277679523416135287129203812434809320112262804171309127072359208021212489533626943309875952949447212371518955730418961563414911010191732371485018700814728652136523654630726461983681791265216981037728934451177268999349683943587902796150977924592216821069008968581961262324042845380752418398304397269438584378063118653238727709553088265805362555184094687080664074279696948579455900260170874103272510725358556791579958871573617272721635065129555350478844858191730226333024333459057162756271614843827320275555783896343955505720274709102358392145607383729165395367649157787393031041393490920370784558337202526459364529054141258816892292083496593758426155103106222827144179414894305810879772525150547783671909058965874331232378726155255486851743712733479713749883892701566438563865421995061317997698462096249731846411652926196114218953034161559392216733754499198671330252094645010760998477356347049111355919289308664023884157442552152754312537955202344981803299719807121591460975632549457592969814726374693963101516790449585200239469459624401409095877999798923784496696979061643441693728462230017280946540252862379786379343041462957068801427463512313991944845823127482645992357240648445467497819658802773366098304678190375471748984620524076429636320637812290993496467818056349156534484652642194710633304939507477306919813025413255007309864717054590855916245269764163928877114332921639168184651777845340823616924372535041779421704744275261348747527754094074754192429877452159535725651218939775220821024759662506787778882356659739926771207195587449919868422523927102490738047721477105894667791805318547391059682783483682406207399606008632470024438239736942228748313639033258082962779507942520362511964962050456214532850932053166728745301531481741626259484449398180139481380239501449991405739037954047319376942044060988231067966686299773584194457270717297265749385751760614450498602156747808574963799687948659522843168971625098501052984987258917604426796283218508692649314068188286040292476959347343598669909784562291186428279687181069509999481443851692495078168038299470954291922779650791569006158736057714377819033038871565198070409534303962768823283363706974256655571805532582031209132534096377577174581003086922512538023541307852385870630332767759814389971675495306452624132403995476350610476533874105997119278436802115511323072274644188398140512589951536108761557425007861787978641719818257012626629236910733568819906057533396442516682299466639515238928394646304388762834382744346576399426774658308029540605584429080783547860471921937693076362128221559657333393443997471602473014420480107012854101118707460395955945859490358242970654030818845444985532232541304923421360672540435011924120775814639794307635678581541657837646932199116469855234146445806857069190764305652390702552254724591195637386847292804079212242453644995221854100257603575317676300081481331233529750972425505828050604184000122128737365537932725413203747814613675458381209280388723287400717537323261248090135831694223811670773299652193737543400470822880163489917880700315851807648770174178524538017153639849917898414416807857215002215777590112620612452774621678462179002148593876224458048232700111793820612555702637695830553731152943262027489328980805299623131218127622703902469346876265540512361534957763618561192459145936986881171879395894499058009311778997694270220673412817593292970326764956978245845514557586297352569233788643823929773186443758117092219078398070865096501843858968196698579399311311486003997643668338461976794546444535365994430237150066632800938094746704474978952226732418424235953156260694204882598473431055506173225493973472040117394766491341450989305113624368431430436415371607387597706866704143033877744228910889516377226549600677455479038662052339827351330450284474049997146964591411128254213356729672443235310910703699940290672450338887236541692886456974927836988555350317905628078317603819802819124159021254724914988107322093968888412232541116910979136904909350665171404913635500934896942435215174168341778274637805934967643954112391183177381062195633383549683983828922257460925253417634722045645186407314791614385476645178224607233381420531902968173301483261135358978903409208071088179334798968884673268000255509259476574774407002076857302137237769226991941496680488912998176908319074758816359555706320567484235743615149134602619240381729957956764554679186867723174751273339039050427415312317176331804008930491668495454511523425569446116947370736882665593637789647463523373617944871916209938081992793486248406258894700994432168629474702409489071941147661826714253137323940967813188113296868890922049423937522297723828858865057371735116173188625105530385973924505756635592616672147108953931643251134152374407575704159417290873214643982279962167638139788453508769046202468153382244364093849572030817234088565896158432363225253173087771135632985368612538555447333069285215824084222696411682495414657232858230227198435543359909280406644866612632873099331863499015833150889333355006849483160081412846233350762426546383264103230123179916588545976595821968714020263062896246493813763598285390943405189776560413218337167230892750449929354668825154892942475975364075443929201581217346348497963146009281300168345772920339217014870576595654664992249605436466119343765047367321418722411411715226836937674490090478035582682325767090688708172652114159480462889978274149217251624330335358488592222108767394835596429219316764031470035154899402058442435095634235483799400690374103737602452708578723224542978744763989885028420699699055231723606544331727428928255866327694061620785801311613333414685570728313473572608620077759123010987462743877183789578850038654009290943589795166367887912592344790272019774903830978946239292191242072374204562823927023624839164611415299896851298627127297571355914476020671120168885132797116028711259601882581905849842487686319809195533567328095789811182830347730083977843484618626444488373988147571349968142630876396074621318534523580831578261331758424804466604959635328478427489321668248606780479299545906945256252911159673958556319809384592520331820731010209812118072328454001549042972432185829769158706314667561860789051476411977934307395878558766568470611317310421912437912573766169592593699754368874964211058136735975733728973812001171315701484151124843685761225540324909247328150703822123672437001998997696073281818267344749707535739937629861014274165238039480592717667460574175824704429410393658601524294745609859341225899354902676237468903610755525219096192090188567255240660978796944151645221329863286284742232207200729518683614087533416792781046687672863952675919908993424836194887226707753151214505740717443878858653677053802952176758802763622063685988797531817417096409903037584989684018380273428226821286764626862567667575831647469022582586660882165443581912295638546183585664367068406273425407628456178903268611253616749380255935592712608814894991577365642886778015852551689339508015766488629863839350046662334337108306237308986479256741778182080515492510525582728750655005409569013436986598412558649311829055599175039640393000652726105365635325840510023215679662666874192056754000507722504381455725239091121918854057014382777855296524873661574029133582345800986421110146840870983043238258711778312291384838781884832097783844373219612041563112121187881415578841178150356570534863883380379745806742156624443213046130853677486362112336298250014470909457818776174745303210592989105870185134962727682402183315362996463752874828132624807164010602091309470790940503802929448136133120480688498854593545952103710666193082843418393133428912898353914180542102339573271166529861709149416409780344369737784201042717401067573253536330494663520244892411004394091246558217038857894476800797482530218216660884815734413922726563366622994166435557339926598330398670310419723459875622129250261386646748795926192672153970016409158100620683165068606702963870006071564836506246347732132070260279090775907180615205110933709883618238046067938956212197746675048616518695621046792326374322814101006445666453367625038947185905622200957938382190148255585872627504452078928660118818965720438885933072079555163109902659607178123789624239131727540135939634278646078653488585756346285037237077813038323676153137792150188318706022796459842013110416336285296595033902311345831199611562978539365095927421016543821069820010944193336781994283326511746840006084265399147406497719619836133011899656856136012691042621306147296696131921141051753685026750797745728687048799386756922197441209948039805814240977875713517981871461114176429722810905282213136430632313426425363984656167371953801903163609661853976225955463760942799224132303218017178143994790557621645974274369226961872214172544895883179251230112776250120343887229835702177445478822384669258697541622949869345791024854752803276326684745182856306314300791029767460143325663355271575323005175970147616350027471851513840884280176950264518432862044248921104935347355422594310011437543279964828838896163974593006269324208252165753365919465408732726326502315067966312188999814243215645879366736235077117810920927511420287361116822188697671750709985548857123871621459143701621690496494435930930969619028513928146007356496782045280412032780728135815709609100263128529715029423005563177208240132143397792474855758375239057581859003487671128341267152173809683566573638536222446695159421495585751563459877305102436269655335598180583006182078480323807222237430299601547193958474029393877074411412543581320928371387658487916545191897249670693541379582035191086386139339553618194548220550666622427390599809728209480319752233770144262900112951109181074137263200503939868273110460527609293577547812261805733499982790753585910384457981010257327279575858808027393380546685064732780469998839912861538063593370547088764660682527416521701936663286967368686806609834975929124413067953890006896453354965932111240804621138589801945334217785029346558561050143300807379439982536871858927997316001974151247510733068288021500521167925820488683952752976560480997291402569747127281144039502056954157757746340960936631896978030823211753758878564292932158288268667012084190600415317315927904089495130197759358816007764274380028541604720172080591376126649479608116050345690877637109737527540957698052670428362618064133665856535411269944801051850630415150883358853713107099005805915068510080008356977996729968302963889743638172025364467690893984281975672535127479621393383740137091078564034002796623726149216409192831720262521593652293621778631925988059749510840124701948972403658470836925950934095591020888433236142255702138392944168724854595158084955689701595235522697485529462159168672718373575607662622589785152460405102892246635500531812916013837262389009978191744852373925226636399790640482579058329725581818509193747416465552697747386214475544573012211136800718238731263599332447449239960095209117394790638292300606389172983882284152790050733394070306645122455353338599302988503867479063529423585989953617798941486946374760404115157573038920537140758072475245069130086559060058290402087433094713285742649231329987545596312923159908984143269337374805180132688268272447408347158074562313036034720475512058207036117524467211203019674512993846666665794405817670829851529211319644714292443775067991382196177568019654933928167100789163455022993329827006684305927064952551007089535864389280813187799645683582646159966703137428347000639442445735934695455273750620598839401832561861270075525577524392809212415111942100000135184596811854588305183022008333532496800238682276801133936502038109562967722433413796410527146220021474655176146944226554709627003630144843733461318589769677025019176826159221077305988864110491146258918175132211838982472924078785787597641833487763681907663890616017797339223751620615815970062425876533764745472103785272309675737529427742949212604967017958666116641179943760629015147657842295942974333095883463694863225583481706860053363531408486287781797295116304892878420638399227794164427046313403076846665336353044137959338724974999785379497199606238026816650417797771102663590427325077904442172241457610299911472492274095949409294833248222383998720107746410997034757411057177940102828677097883913943138580896883021636785208033449957345177486836021281914918892681492849415221828113500835208271736113732233352484988081472934568729101663795441290477700359969198577408145971364300130810316506109303453600952221296002433943388388734988055503977320782547919772252785418980137468356736546548622417134270629526234588308093228172289503290683896581798041570205757107741884024539636779524410258580204326106615320402789948147873460215378317738089778934156908465773781771255117926669668375911571162729370883981028820994400761982847211978503305226362408076920598632645404207246189877064846947012296036144471124778150779767056217044962506225672115887129776026066621843487339387496543283171501491741425738426592375183950331568319965684098969267992967730604745412680945449129231033797215013508422515626961144161866523997015673298748430888906223574041535118648458198600370391035977003392233780172484692225743651698647785686380111121642244191209862974722512192621591011448770811556662864087407950976270310713883225626747740686097157413336439447480859416112367489026373690447836218705247036400227396635888819617332932483115421393743815198775340289926108826991054308295658882326079510381099934684994516923232719595368662621242440787925095439332524871601787084807331763751174441983400284015220332568249592134220635832087323169285877467267280017977317764196832882517380103177545980272112003734832915115222249066466016163524833693665496192013346188388152867700438058063214372352063324462610314935683127762897843789498732091897770919869296950198034374213285833609091126952187846341347359215746901140919250974542599404289275375795245773269668639498417252018246482941563780335179650103690590113360166429937023496663099007514254699514947174763329594889063557995033254471242501870342885273262009541372656567146307230754753344640263812098704291490288029663120156282509918540358642892216759829248028302819259588359009454882394209335931045142765259435264357512946642304129335028357802567450518187528495430377966582768383432503624930621692013817478128391596821818527148261117639073652511492407175706219995480564431284068743919524316695389184894306344418966144922185476932530048474540221546979725502232647673341877837221996426042683852960642829014690785752949702209071084054130560281461100819286863157781597941970589609111404720185848744423707324475175234189378947476473115925183824764573610181506660443805771798548575154085007437398622259338492553951793354103996792946650598747501476951353084311902341263716334121545801720264288602498471148475299885314746483112262793749301345539535873198321761665626732381506177072079924814906253946986810922943610175556989478946689627889420040946958221614657249410141421836509530632057092901086963848675596915155651948792454150243220169848344545528310106103702783866805856266756660786613186449623578744139110496981082119903024575751006860495224022327404574074196536283153732566273317414504636024056895569639916402673562079780068352605761435698949173287696628254054408568508178879185110786054644300245084922479610353558456595617236135478240118331753391649916084228559014157251958522407646205364639087221685235321785645246853501928032398121248167241049152957147572002420033468288828749345713764881649905161552922675009294943528857961954681983268164275986139734209004310017360517769583487066215939485883981867513003874944385820499007576825354688976686301160693228617399833280291626570950956928746034753872979742799334921593418592290519016882883778240043107711409723734642966538502984558419304603631078945463905719090429179243004978380595860796874409861555962516491771707059888853994735510585811583905020732604972620347719349459200968117599212473640221468908322953256066353563559407749296652343202510928954539604586302986913892403769140641665331000420533626714173235250073824776404008844565484189143976070751489126857627098424147093409990331321728186274262362508774389595567507283643465820290696518972984757310916111514238322832969153628869408741984652088194086626749632124974342495858175243960741068551756379211141594681279532756831004399717473379382809046189368289050362100432219539398494934980572291039629853858253476035830467040178940796955818788007738318967897793487671327632165381896083195785406729704349915112348873762578789659842291259519260704345334002410022956512776606481004550979096246861742092076720449322594886193519597234895194254265773246219414976492276453490847478079558270268906754648380547456550033911197608007442602406786544455830155561069886877635217840682062135369408693205032175613556559343476072357437986742851416333997789629633080538277557005464978832063589682640978812993115523115546289257782690678914492484817119939473039699377462615886981269039064548759640404127760603522255450337225489685905760903473767559199580105147038041975912410714704224508774021305977417810632332683422700956255367349347820626848096969817566705201879295154071115235536607067676232898596679936311988308814341741555805377164604503487713537952394269736904159329174858657013568660901033288746965736534785494519005992185180717369808302815278218775856409615857527709317591549351502393733222220139472469941791748262359629251326191104391555976960657400509841506507087355002891112849442511026344471842852418318494460941688589406266384060298530365289666553855734419671389416394458080938139665906936575049822107505163490631555333786251333760031294645100707241395537311094406120154273315390515175481864944660544478513644392152213564758142438873191782613914319447047586746441063390986562241917455242673361943878012630071815048079345028153051750820633347279999750933455778110076189059608445482721367340347996367732095022970911363394104699861396935260034698104776969795630660992509951116387310503131579120333701715175475983864890772938220168434403834826158225711356440852058109847501164715748760056825724439833849926347570704836262800653133559309369102517850033117242607262923780793541408413247774988296396864445561824747620760944330822540810472010871625543062081140718020342602571426268797118924372933454039414323631006311240133746130786631327331729981230511364716743823277724277555487414853259421127379428428259771719822090987599468074364964273270618254329661759689844695795568200887407668166363438513161999774585995689803598735529183662450775381712991109314858917123400226381980246017160257120720839265299729582257678326703930428674458018558016541425532196242995204588116587540610295639226447749830833830094181843768909005333393551938868147608100452238486833795142613545610102992339740415052860744032910927009612089498589123994507496162029277821377421289736986331557027715121287636257801504703027607449944307891892202843201945338849703380485490473699631086603140875242205001046114742706595089604682260027920727976494322953932424882003033917978470589475005304140043263211093666975761283895911999421209626076698954478429415600660096679421920967719532190753988045971018598021553258526529366533153990761559079980764641974762299757385086949780574535077906020443649302545720263257543350399237097077598409793103599059024438996602544981047942823426301800229762935767093658642328275305462177055182725287090963390872827192787398399981481881402786639326862176349423664501698190310823523001487686938247075140784734248766207118156121595918414060202628400181703864874224345691327015482083742419295887052645892239535221984155725335067105963781943106647792940606324000334787549489918560136522936964567637283498119392040553673788498784415049021621882254944684638859318269567172807235304196695529194124366781027562377391888654736973377359667126360465933156918383243246473291799820688083104357971754937337430824354054834546005092989360422740588725996974885246056052721744140509998900070092848944787837399835014539465267603649538580988832010269813700290883564103054718687437347499011618175807472081291688151229409594918909429475592709914939283413962238645572367866488980021123153109009300868906201052746027661099943651647835177347662011458229064251101832734267465871106005838847174156227906939157924327736739247244884152898770452035506870936177996208039408835123027863777713310670494054460610745248611310698794412508514107865195254905519342959632975486097382651052571597213844013496194713891554914679269469566522340201170549740738283676947448101283153501403820940832036177599958737893562624736463087708112807243627336619628436439663115692457894476259269565594085433421678420349531635929605229783708538983707923066283745522181123301911029294517686199556446219630422893454886250491116479430251353513821720466932605968964025979813847290968012897898532075561347889383170190551610654053445336104728584516932835411535011635944669837677277760457009843170604545073050707517103896589689927886274558141294850145660796979489857747364454376718791968170443040538777039593905301323032330936330206395831402071104275793385633635189002835907342202549615786048764946611450169684157053588471999730329797152694521858105855072442801856028378633798063133901123639983563050781540801690162592512158912504424969987558798868901688859056464480070471677143742804079957994653220265112172958598606681379212881146150813565635969065979172779437957734232487354336709537072379666174947607576910723419787899857714064842835925162201674302146594050506713188836853468304381844885680541062637029384829062220335567715835802016994382983991478525541822900950743320358045765021925016786418703932889833753477365488809888253600531063045613093738057632205895488033192922033864792131427171059223785326822426449100751637463313415163239364426032075818959617780613372746203064234996561691202081232278162517847041137759243982275493741352071090958081683768295742174869251044731893065331004594390082576285973085410263302013888888197153958779549798580513371347195925747583408881250800084028944471805878705409790577485904169106070909602197120462519180364519742385170068503032331183854778858264045792845753890983271659326309592814122163970531769985658924343777372835606171505074042941305013740536174339586302814362184829213156191429324432029186960001825393721302013244329995329188845873837552026049095982566998035211407757465910269169570262453278213918942078110807211584423020699404553086239728974631489081193563458148425290557392932387005860764665848791441047228622879761163882684066178320411767541565997043522747334956614689297910168019409668681170150353836441977529582794802401123643427752255271236648214731389968174099464599679546855122258962211585198216145459198156490269986601006599986004695672381376368248133194584180309852161632674849619988790094768491936018109125297543396391501985200153678915475814295459124019716522772519646776419608589930366571583252226844600415807889001085728181530071412056771085298994585794117107925837453844599123702538239640975751186715754905718126408148951442864529812690504714522708073779468404293133454240135142987480158666360320613707094793214772328605358543798937200215116632701813881226651931461788315217872203416068560500490419643654718189907362447565944003284195487167952211201631177559104585609982210320480115379348326894161471023685727480665475282292200914262879748504645002652164087716386950723976028856984664770679232060186407416458657656889812834289952610228372543768367172352868258928084836413934519755176699199702091230992559822445122320539916553929015051594328429826699376395108162729232010762150095836525589723815111911740839270669951570499068880709032906605872951992416638099278672387320599345101693726642641510396854977070758586661211650460843351413802666123842627845894538248381092022092882133176224887566427063410406990339979842443394372008673673100046281834657699500603909581247721242152461279294472319358526472134102932207684438184198787541634119510248183064206903150834397569938760278325779449927911625447759165967557333355996674403945364054352794205064427344950399708901569195021089437427376516158660761836045803921277942643101052363584838140094121542934279039680852956807632620947072626528361937112849598276441624889504388829447028416412079563691114298187935515838680616674994520571593279445413172210683484884313848117727228878934014490668747787598639224963949954451248381327148624105270696630892543335739943427666437074930017216359157809969233750936923731093013594499896658078808910210868459069976763654118524138625503754056656004992296248972517049885145502123893852155832014109283951722216054498834045548909064563506143120120574681602076271104763462759334843648591715542840416735982969855470025332325898511647133130570653834166869075281262803314495182440596310628774486830169260403549327867758646868155159372313248778204078771597856482005661955366533395203985389769367339298823784973715654461484482893623634240648570076820792650904503016391720276245876190749438265739008934666759446970019393556128096755268869682573645166626831411850331090858700283969292336213301215056491419801151629071564798465729583856484121341279392402142551188558021346878693412736023084232688590845677400432360393421366007651670732856307875150140476060299282328081832670905599807624643125424683993096169048635054625057141256872716998261427300582675960900204989875817203703789526869693007337833077668893701367695554105491731430973355071784715809650504983152836800365497634574689074450818001169266115482003078612188529901195902983485385554769048054919420253168476881968917792756293702593433862832026771737665099949530897714579523658979515154575790642270420763018035179783250392693420582029261786210203443964709147271350763558074226080955773683148582778536400695211046513334171047622758616893730031151665552244764556710690679007066937808561334549784905567663813681411589420847921771772527997941604806896064290719648637447522842331811323065547738100412601313807652911079641907475361568778670096767478239566119072057363696354987573970823527304533359026930073423834301169737928386440353000069736402723351073630174472253965624172500610228140756875593664741917019994696722879351837544687426166100154913669037337980808251152211014273827859553150834317434452894091901403862624385239954438505878994634279434012382207356888121855822169445357738964461485389399998312843103896895260386459817448018079967870229540278485946370577934293708814332041979261352193640958972798034832592665329483610016894494761643540363960380653210123148393132496440879033259386442340113222484694012383987421986027671689558879101700550282619117806455722744234970092924252008428123028895850337488861299474694641067355143912516506813211412385721639338052425133525697309572496303339023578582177103196770622668507895317778592236504158957691363668512341584791954980985070048768731899177886269336220760915637241808469741638810837750886599886133489267565026381928813567328454896640916103009164955166106498314630934828038157397537861519630652397711416695764194592025332011241351699762762229311108700767831715254852390739332515747637805527660963389881992314776616654883245901850477703396266533923784626771861439280406553441543708207157467621026751778814833138932932969267529778330988607243981429365432544265367795108209336352601001158100702562846548573178075353714514347771657052360764676969526030904880279354536281727584853356339839387343661791353940005108457426412941998005240306405696447327760716429922192468566164752283682585735627375686914866910536666861844104780614763695168779959886707337595034816130431957198175563841738123997611686722615057980879239453914027234021831486618717231692881762475170809665968595215108662399077017976078237204154538401680761644416106502795344955536473545213856643169871293392580244328807947172521924378689616364602204150439904620547880996304017088900656381210616531451830615769837758320840471407434378239504305649647400575493604638188056880431579507217363253903638655939572595171154781746799199612395136691815817917928840403691276208576450216036333509843259099639810652303651037647549370052948222328430431908740333321707543427292900703525366614732200552342589949736029503708430303721470979301193839845740521091632859766012132200974562342951605381432239393429148475320081598234662626724772838953869811426628332430008476510426703449676007363096649078314206253142036948734291487745365294420605177730910925034085229361182778260180667814830681290931217233455636959211403931057264010706471311259688439070740802338094305042026391980902983638222383424402151359531279592927484195651120202936172221158569217224970781201657324493919831236057181308478161326017200635228492811483495070959125666876658676580658789485489558269283408249431101126881187147915198898487241295662139911465114092238579657773426645500909300833701729176378573161577673639955380526875116704837177877111946055525742732457961149951167884426837296860737986209453246330944678618903257082812795364366624707517587237299771165329344345745518918186634841105410150942888914441216840667125143371752166598925241850413308039334889801327990866186549067711353081761317373582058552089295262418248898310179099734301852078466342678037189429080377208677243572402111987223137104918072437236025781579462804885514637303427912157158428834647954569903443248100688545505495325909723031455350088294065973769085033552488103128831050890249294924335668435613618669950666925005843137260853906461155391628455506317872615214872992797761591734623880653391481286543044160778983430535951437353116157236387575762605981981156551821797346500368750206541526109335557463417708737192238066334250533501088289648385078970298161953084027196971811044864028116068178668278018645223112669022044308362152403492557650158608572584014416372205187211837006460922637796505253254363745316950116998860130516474593112674796882952852998825972753130043714741909891609961930821355450274479774548598439240692898594637910817926689532131519611642432819404315762648153277010861673570457963763306327940407595794981663578012067989110926152397033609349932288622333399091717616214130054388998214485938936145165783054746458897444374053581943979771804908831273921979353781335926596287422773891881954032431122667445685668012604513831652834564410712798712901508257967293968658186854704891858671850319717367536064144007087267491202848974655841515338794957058835540056577733671987205402117728142185732549668484688023958024772730864835101430612803829463889362777972269159345937139910371833901406246975297677989361144149577788999246186493987923967494164917139157456577081812962350815354429982784465316401975618513033477747578164546145113437041211934604201645163308033198599797256852161455951921064784494926028031566912800935774401946771532483999219736127408479694770060935970340901302812806275465738157632154847791218747241579132922397515142256239334164301472932642271438711732935449346824956905889458506566263704328520482785579204281328331655625546768392297441131066851348636246028814357063463116709776805405666376526881532596839263716124792223197232050532885626406861804852517368954079707333388165575918633687302506656671088914770038871832499015167724773535099337912253779839830292221542795903887207315573936372256853691146814536111533935961190190077995133626939656689641296342350302055478303916679378742297334746409795349457490611824552047847285261351930761982358951619397976084011583162426597145107957178252806837410004690377078047755380942980500998989081159294546127399454320478059896382346475179291669779659138852844366275410540038040540560685107412468860207471015302683919198866743583482162766178556111513191653460016820171236821989046946815455782500616170453406687515283990306786808390956063395705679085604076395071810374098596485477307174005873828869692395694690873839338272109438923542922842391351266138228989295049186841461975760296272057560157839036362467936817171511164079050306639679955766300800362214940069496699671556605929747945347373367996943506145789644601608808967840885214217738510172558337918269757838543968319530338618946546376222826686190109297920766804766153980353861364610429825083137137292838982614426405380135014382787384371393921804545670490627988914275154237824408133820750698304843152141130133285446716957297652979048106184370597435720746171759280990549376105600263309253749830572237630847064865402103931899318443424133982168541684337984704218419819490852319995638629960695933975163350675276355374722800580034375813540168441971895437821952856436155210454149227932021294056753942060870179761298182034091135103685592294013610674677785953397252232361837818700484045314663705061193319807928920242043290902733382711099232086624462267186421737065936858647193559936314121239337406034502359930555897506354027041147014954620746583709778808287382450564170363027827311475010746292496098391666232972492960692611567653962815492170290259194197620624522342132547092507962264301802106053158257673282485835808340648250698092746956951681452406853973491136548122855844106729637461339192538595931570106273448703053380563759106234092097979862207028984646091085120925545016124136124952233078122905815635227055749426042985896223994416696014148953375673119594555330156374420803220412218331657583879499522593544717656036739735692609163305820526655231586296946420148615545729705982458512657598851560384818905107558711412110000043940361699670652120599835373158133236713244066203488860917252210998130491879435282480318670307646100068425324093333331573877647924485604810778050377338951349245878526407399578499188996276129751971015284401026473231553208054386893884959394380611586590002387698005509014055045499753946671801124515585760249622507700937003861542612888443104022372000605281840907776924790698134348098700791345983283709150947514967127225444075017162224423550256739055742681395419427084188086326777086842809362861179382614233028546885485893539965782980098237332987945968316444131314434446545497240361126429378565838791324452931111403540923785386139810468420794257175221303717836529962744268666645892800971509238862451713156135210843778676117844675714071159050607809360797607588826071643566459260572596991823183574735572376413470613579510891853224930996804505901585439898642661806982647089581056008505483287016324636816587322705426007100719684108142310622532701620958155814320921203938111111388756355174607600373384929900838960020992350293795150189031530219249949155877604384588111254996470872266876258287121274503994576070066813825959904520126037452652538478577488648496863931103028246428025285795555928503180799892717593933793535353003885012846499432513502663058458096855728179933697187063338282264968865605815955159690912377218013825794437797605453819597557266445551402353295393083837783583981201190852854733264587277155267043707072831934391429485621911156530350714779279913256272677060040513190414693775374172467631727630100391310235464296585119131046971609504087962259709630612558264931820445509719005601097956093133475068263898354001771469390613319283703248211962452385302593472854855840529482014827900739658490535573966759715071644798438624224357349087391615243890701725096789428445583266809452914470784953519945427277038937208074571748825608305680829639997910490389759607093328935673268157989836162858890427547438439204650088502483234877842947819661900721987160771645573766642528398271866052829933185931860688431739345983253105862281080416632835407402245650199092596049645610745336702228317890499456444705751172578995497764449493832873907355271278537818437159960027403682835995640247861168588218252909575925102727036217720252548356572894123154857500123803047555792094967549136789176540060816875676179801756647924611067173922681112871829794581673021945923071986758910078873009865046959897721045495207840139728196457998951366697525085323539086546288777055527018355008444671466861849532906509628300822516161900640360301101735123462923559418079414436403918768730482658038599020733636156933017415583363203818860132599901321500313852574794262413888251032388670410826918326509927446269763778336056775032005880611024976814396751320724836586856119190246403999067176237705232093986001894290183412574945737161795629699386248703708227705335670786644504225568288972278752801908737909688537417445100085591154059345798032465321618386739686193175307089577565286358076712179653412634821028880869254825499469911690907542192302082688960953751850275491412203314745203802547991275571882673323776130136706049175629122840557245722065606611867329911634339101785639878605377517047856450845529993646634118907137626250907684981517358384631952613738869389209662269639549908670608058337559354469089376075722996622213067221394005751884307944196915325396250691843697106784945823492956037673596430100904852734997177555277553976688104461407087081181097668600431323470605665165499301627884978297601314559739751785741742942089810589393160686900653138381194177878075370649755533705802482515670019752044441493998265967992728158772776901087739255677586656326089339539306538109662195660129944992137134072304362297635174736124290045012253799802461120369992105683773241680143630375909307107286810145498334285500497141520514053873690230716096692078649067219199126904322063448750652276661996905900638636008266334675683649264844316012752117303955583780667376403145723872178627166330202799513940906731802336196479890725945640777669676304757643400269833893837096912317139764027588654544876942103046158160008762455500517803321567715959630348320905511445360305264881541120394868752336941470039770768273268542626103435155303005733599979322914757630952215547460936098756329979506096761618694761777365775476056406677066424154163113537635245660275612235756987313556011889446870610819416983756228829475204263516203333632665098739831906149679514678023496150614948689888819960494424097239710683082207349720165660494847791313383771165070056202987567838066982830759931739186002446199456018705872640836537918405469917874545171712305698988942315824405475554111107945635836953581073841481009356326512587307542345132544523980839538422371588383535458541013353554963803980139518669692866883903221533009848558000023309893634515695062280660470333223637455398006028345900623885769800782669917605867503190264271584018420626219544983408149719544961617381675933170590286403513464572988398503978785190672841970555420649332698294812510350776628328937220203187245000422355510854111591114414849511206807119012013797444474990208713013993155230432276435715325858819462968979736512831735934452515289813317016950897805755135975088620051654833625919449660101646973278196452453391693370593174392658870365497304277751833467332983043611861220662376195599288470315856956624105967564710964050240920328481435847775830994254546945806547499753780839111403829545430128694079934050136491878270015626269622834592699645972916435372257343087389686640225717898473737521258050419501655486776621984962917012292718669689707145913375256210985669436861945366175689102186625517568333852694711976194500721047456713262196053330879768939804195385632103958174787128209282126483167690429222550624052959616546150129669837690613395262387301417631781406669353182375204003673252984496595553635197125141176242768144114200557031727542461527651645284039103100821113317191766451523298088693141207895218902762336721784217642559216499789669474424011146117031858691225067448710305091964162053561927298853628467121660425387174725961839369701480930148641465931079761046320149485218091836858025976966475977723672004955660615346046430226225809501851992127332591477335213717946671902191860313058431091558319091083209011731572183307096183922794705145485154954550036743456015446384654664943734439170187871121791383939762540501662407790879156383506012094966583892794423215653071382186759746518880031178259470854421347084138805551525684417651939963493197873294831037803929842195826425009051345945206809044818675262511482771389394786948125787590431878590280387187338090988903311867262405608284466752678654527398273016493921206901535036961482183665275215983045974254288720193952230514522450467483772294309004475084870727204170954496338853826822007348475029342091953765089592243834455021509144997089178263125534471367267807029955399773941101158388997810683656999147445697037110615517145571149081737120252035606797447867100424163377387579284478679839584389937614773472014778184201224313962945701024588129571558246266380860895404796695741669652842642602485389434002443167923514949664337003377814902367081460545610093440092016287490182529665469408292589981709937043840096030811998321094860639435892986073960994991179890671525806340705561525084959560412687703198997473267541355897025156557998154388227061372566648827838458880399088942705686046679035973831828359552965395590606068506413312301028486583765995452605589793965855039731218458266433539535366328196537049127211335808672880145641829283237534592840309048190158635401435576605775049590878849878487469847204754218445892954752348846766128979241042679273078017572121509810255339524874544645033586876528692346867270064160846286471196889668316394875219915706666060073265582395025992734892221897633882874104209761474484707106083519039433507873115444679835254121060799286431048339643581684896475552363766764198175045283829376229679543308539378551672967552224160576488986708719723123801489611315765326143391390801544632066755073151485710452879521501631862442953179665531093328409208020393109423836847326831178520622010709674865551443077337329525354992906511307250626222165897856772767581775201914472755869728649682409747790617691366405653593474799372279382506840885445482909900378702797991535826415579973852590863497227691882399366603299374543277589711272029869519155365203625066559149741950024933865538166698165703357826482101200495324801190491303959825305188288178629992814629054436211896709302117096526517594452087741991665350866663433127224679307373107047286760455394223377319186308137585380105319485196824884281465643781706196449335681031434049677777917752722310889284545975209955205318973419321219013284388795439675184937295735909224486846876685984733843190304218354681910217163089682686433947480958022934606927044524366418274044326904391782366068360520752600774538399358930060174644454148699923684485044676128882851402542324692707985961734470266202378296982756052927585861550841904818844486410963717798259538333776388981745777257889271822345828625091303185688622280581960675106041185790062649927790403205013388789931117487411182109060985348681354937794701231086663190667143238219009663249086525151874315288917152228462270760207243349923935883830956929074643614103899561612335988997253743747235697205269362491837905047717943189852863144896016108080381623521770141677184263363935946211430723292102654936381658767984850979586842371818591958286013864146986173952771947593540853380950766143702510485914560276055946194394791648711950926631731456813468324123762558767593687656493537493901991546563949876037404582533263045117636765762781510650375308124076028243624209311058771987800755174169119296424194057195058916335197200448226065546033123022037305081286974783846321997666910223109375872013676273284200257343148921288582079419723769619360191928737934055862044010508874045454794767753771663961489088679228045757013775378880440830243604776368467260798024242360154534092968493495192047857084913109582312017366646152348224610028348452802962426790137527352534733380596279121061152974304186883164570028227467241507985261669566503557015153463890882043276097347381177131517482535068660168207548963072631865831635017471536924865708839569595302521860951275614372804192874464521703815705924189591352910721579732246994823315193858161802926058496361921605056936140216934726297016799908229808030981882558459786780900205840781299572418549943050720800285081020730155990595444783841829441901216697600555025613922905522615433077583781627916349617827801044172970052283075972854315959337700264978212245646171925407157353870002779218751450543516367599248570110551282239299693734466317433557245365854344063758465913222124458794681883953767297816810634891563403671590660996179856038546813328018791999521673221115954996404568901591152430638792069520871922251658344933984014387125048149795334208406695999812974283158693588371156696063395025378418238408512146522325143795789603917867000528961532543532519084675759807615680574361955885472323776409157175260460225694408822690070562787993245662297419496245517159398386282145288324047316352031350667507289609682516852288440564420005714564095769961122207125443633266818644160133989030070774267092662263140124902839151663728508397532961658140090283111161922338047481030960279929952440140500039937095215756910709249259023644063165921642338808431286483047276846603520735719225740644911112857229315368084800539549314083925007665765489363039604299678522085398384571472136659903743254709739064998557358657554098206825066410865648375958617558289086199985107742852397388859646765724342148695833411178499870697591096002311063780887797569137794609721713647396008978764129508826910683424521359004875476922407079680912413405448889441948678605465406637734273432254248698841290516753368919732459745833161300939174595079740682563359898654172501242456355701375908042846635519207709423625428342328585415309757105227077963330424983351786410466963699533043634038698906081975126083152599641815897649309823710027006215271342436898783989714056649795033225335690637944732802297666454527432311799768471283769838759058135060607743419233061219186824451706619413944418872471595713435445897342643254194537900012600554074809734388218667921726250570561603118629869721396030888075196035285449110743642893722464730358168756647069391696684407640544620677837140229849666561151392348297560639538618693870156720300131502515912056999081377342702286111436371020458338009846287817618570381343152690892766059853557714582405388076789416032265526256591922667732813807389880248057968522712038716480876114730485544740842973746287618325856734671561720265258500951964665393217222690926059013888020772301723021437287331209767845867235499015518682904128005536040358471726346772005391494059838742821359703555378183202206362283943546853528991826026367592895984264629942500487958518395251550017126422480716733425129066296583392053059049389494101103966124837594020631044750584583950007998696357344079946262339721907513035553472448440959387463987935949764304037090472247639690544100791591237594116178241467010989702036695573278447889310906969854020214416643456125301254606874565284153311642764974355697146339902323131498056981893392342414317177775370872624446280771707145580121626209613977606636141959774994068217768945940375584480197661979492189729722073131003501247084956871523911427603164845471105330788416051736673179678961094314956170256917595524690634856246716438181913759347264322961282939126083339082567644778895852188492033939364335078363352461964876649367082958137622063387177760529205910612283926371107598931630837050240462380610907835410618813451386641348230668815033119850230466135928652174959437498732942114378125341731843796624149175100712047576866208583607305789570898213872591051956153399579430280427547349833656040281743733761925019360241813672387655208029825663771658765205930349449206578809140708921596613420621960536591077314683577977657707205268055851971610540365807795733515544974911713043689514191302854505210669910725517243020420197814897816829334641160397740327889556450727448943838781513618287548015303559429712616283193794499334796927378386665786991333769411308057481572538463228111795897109189370771501048271148085397860511194761838129849171586137248365620907358637051089622529923244490799478721491470581136465610448828884594329606593153052814089087038338762741857554204967032518522561263413790546154846100976397791741632041688147094804897079702604814728612751140553285251135568927838779914011754219630098093629387737299603249556802809201274807113191835747308044138802293921227938105715117949830240940236116728190023656585045811866310108172621727997134396471481843089812772929081549518178129746157204338974654158860914179883598454425626480800543233501085133115254136571897125419723277103133906941569730768232603041135399726961718066084101956298900502642079626291677765787269514985526352466302588844394790574644693597244085060888736949714493019354447226421408072877891521341182657153083365715655134529667852326074449113164550382967025848581591525764216044439607191601404336504110823897874008718662306579605215748264456667063008655376053631105474147558935646381599388566063378335712587251146951281950478523879155507160753795670648728276994123859358180136796577999456982231748994470302190090340555497423792719882868476029417737118150926769869203923070435665050418302269833068302110697660556939033027519160066440248606142242264779923586419750713964910764205314657953895801003629045648123225608988731976043310012700237356228521043165239086675545174773862194425990301735442552664649781005504308954420082418582338177485539385741572207454757155601905705000075969256538010808689478664947786687659524566208383921355906119798724748540508726670174181838619857255049541392905685933879502886055136039095462851880978536627052591288828821079983393223809364168523245195211650538005176056399061628162983349419855167437094803090098319963274780163870498957600264779234583909476550231295636698208012638612688089305353290972982656774675718511829828700147769646408431184356470915378955930261645303816952890200068905506124328101148021797678181545488385631689922052033947325449020850121312051636850360525436584089236321622498007288840916209707564990468124743999157788784702218111967852326631558549643401506241514026791185660234774428961161117807101627023519573443656901120468570803595647036532109462682146864305896985862601225460357864002736811768739252675764527009114167622551676174725030816598288398663703514080700966708885655807674271271279620949814289159500468422913329433868686132661330335814774536297067269706698136854238325492207360126912813000579166950835743758548728697899878412513392827208340177733239160726375983634863581289629099457681964098570853491577982155948880613314305063027852636608053271230608798900916358480848484019913537844178944843284867349742942308659830357529382296482079365210026091733122166846660886900212395832302340830993030220972867085889641933111940485976794039027801027955996968326746296554157875447894716639280091932240323358154413118702778433604663366104754214479817136468235148802315688052933428798242477379895887310849174301663344616887010403770236010487161498768669971528728279936136302558807370256614930050410306948321079196092359487129316467370860977978237978034292808122408214539776416825030532751688504131531642784860491108449129756088409323850979194397162708350847791544172024300798235520611012186428876792837302276145091228669097130875107591866544917163484681074785427610808423314924264885393591390273657027117455188226553671022995001616598951465875187575412331302138985634819199113193173657763082982536029387859230844326725453319037507268083419097548456169801932925315841872753933325948052006546137986617139384224630414508822353079678624669765355119766899862838818955079432909526419350988827725139539757865079812643507877603955078466485737134688912204853776793178031092177216303895411904979824535215247819193301759671279533864228839635198076042237392996526053902704424921679807362334757785219459761688492001661828349883845817534987116253373704600849180814325238747460825096419698015530724864751852039705808438835141197337194251133772559432799695726226671347691595591063139612053833734540234109823969112071330967626645528574256093157359684817470950190857295481200110001047548346598172068866652826409035267747494450914027101772527672634189883472112963040726112258831567152148858866390841468637978370691790463512459446011582948590486745708693848568599237717042755282655816508693098770252441298092254082416639462740419385725588041741012905176913348946007432205102859359614715619300343464648555170928884843107943790470912381645312755664330885178360421658324862216478574622883056310019018159540052521060924250906514907774267974032440062154821721042398377105464351197536255144958347213000670521664018214995602611108370254246437775416325143490700138279546960650423513822352160455319854805494536932194938226327832174928265831512803971276743746055318149491198301940469301307218433199755504310805770012996533598938747652267406787291088462513271866009182526827417263924497886754899074725397792006260297736970858871620691918014156294106792474837722083447869883931160789999465097506551463567800781534669863719292892976399914073284252455390090836283429120205697959882093069799014908613813902327086209908640517735346770285040300004536234918053614434664065414311061080942115535345603869108454254511116309856318410198728039724437670071961625942700646355469710801023433749362418527355516692235794716081580601305637335683702873919184759965644794826394307356087566481447631042733970000668795759858527327418138244670209820084949742095935083887483951077503388270263821608138860255512294855264480459661531234752451866778762764335221192634887544972961536158599502846979827856563955190341523825877176481422502746339614829294611890010702278153268236102872015944972281412153320149108895168140277117709348871173314503622761184358000261538809027787838798360379385738874009551469921838855174219546628382913116069798914034101817188749249312971575191429695349166814770849731922394293661081850161535672601078396793052948972319520847892832746100627509206728875522358603225394713497699120991105396071278705831235335379229726816585023917718007103550402746678383760389733001554444351285614560470626495098339187590146524168269787209061438117670962681936272013479404648261910938692067230496952931012081932977344836270196714868955319038963693876132026285077085792783604906552358799736665954254872487832079162037864049589245014538570830039167154106738877800078596032737036969825372019093770038156468510809838890587743067604647942559184338472489054631924355248940249369503993438737078218098887794964969484771449375040627247501691675815279302803173428450663131068117641917463323619118036271971546805130475720313296122462886032817861867960224941848386432317951608200048784656451477096540932582973367136413976341500707019490758094179739173614920890565687578708822735141644249998121044120561995030803249102601521344036006938278738032789312057054400197104801620092701227018638066685370018605715901088798945551098649191857726142958607832141996168958566347888529876476873755532918756269319102726881413566912024088767309063809799489845925244402059812452688155058101506664907466795470550694641493951489513628954295886301931471147109266816294507574357048473445866721417720159942497472766629671356428326744734421467806844925745912014786177061348302706397938996845812329796019713750653448567892285828057426945050918775874489652351853922608213974997225269630986368800870724668530877085911926388064579484195361733733840957862750473408578571900072249350425098314603299992353961410483965264276503609153472525181913196319709941428893915431424667034413175726695463772788818124772261248443017307359539206576557046801624774572584635224956812223874321788357102258570991070031503765136382085634867954874519273285608221725368532986625855277894475444947305868621727149835414661710197481369878720227559212939798226747156898142522293565917126250408295920244893066114924100855502133577225517949097885331303094791621808460931653556764937421005903451469852145684275000071941499923371448996448821117165482319876987861121239973957025234559839154465983109668186272201506532912922115129383335391915519733371579277625364171751716943523572018940645175354751009596902498405842839643898175122965014675249044580992524616508164883767882664895701922310488596821327254153550694043478086779614687824184932209773017120222828985569258549032622791640304881956754127493321601089208799321577558278651906754692136565158118867377432071718945877702359403884110523300990950190339950105712686196075623962985771174148435679127211473425730732187177049426976929676170460564412840033181946346657408218258208747131369454437535888810054662339800897005307272014336645432403150752548470968450707271564130948139614167778070920259317670214336423852197466584284968722776380636875411434074300654453853523994299828354572731791460127536708282283707013966340317972543305171559202939119848687810521924843802108514834630474010743479639269900512715625552282862599009979995286036396325397778739841125519918241298972903441181670691629164926414279270302654790885869287746860320947963731630379444272538382862204348513434363552054872450594612237003936798873469250256523829170101385544475319676914117208060343260032647596716750184691040431723003088296932963537735791551505420996277281528189834536989694866826860005604381451176390367198690758253686881789415884937664505323765468059900067615696704748138320734118768577593200195522352746439940198246792371050514172036481182568391075338724405662194868910991809240843081243750200310926366983763719502860687325755581725141754829205894572463785824474802302839623601009348886264493955398665716117109478820273877388811712539311741133855152595219447695210954063436751684127125508776726275109545726925630924920700841155806418180044978393804823412688945122825460267788528095350802211787271468920503569684516829468985452319004395924057527706165199968501305298082496008182887512165529012212946000062940856360616870402248134590977111831838640539855118002120068302026361410171596491514921568399137963436005097841626042084965780187232295044779341562896732878063555712282795449391489764468717514401781950178195278229182487634400672931931514490471502818837079468090956935048294022284157300008924729414855840627497301703067627539651475735893720804016734191914335265941825272244744253893690123645335469999036668395806976018381445930152940904110346139904370951673504610141422579747805305903735188742435135406443583854403670395309511282233593251737742049730147653628789151089476465645796601358469070910680584233003428988883193702792350073624077310215471175008454205682193428375281428695440188727858569983232170702470673290257411682516754108522445676871174751564753181097453187755831411965587626931408857969094790265514363443883410184074321778489793827023865906955118276197896210941133745711401270547393801967017155063243419924483636827370789090786424222494309977914737242189402536243755965116705558781539367364482631216468159688948468451638627445231476118982817136387821517894691114515304648921240150465848432729969248399061025168370787119237786467020225335016790705226490236432141086438728750790879928787470820245645035205801713927319097719252658641435515410654284582094911976880245195969909640866130361416988348509947031696153072105108513149572972177183968554344245936254101420903315421105574924740447595802210274086265246269169023453621001908458475458388932386912815222107142355097248652973729538354508983710939230658479382954282131107901018078732506759872307392298370616571587273948072976467054844937142912835895962707518638483074809637802482238139333890877996033282089657798086386217177573398173095124167173038676521690559531446821996920534832257683101449755808851380500882914968693485249049960877093551410038248935066359084266398441668931252904205706988326002148610661058833185823254908558931680945475747483077921452264733454768824257925854063097905560128644869532049137404898580332199002419432945165256816526927134502127798388639013950744916780123650350922263110484464178872799653347229093599356664138319893880210924509481451787158154554061719045948079761438806883473561782729041513646542242072124035316567898891301189156189317520022134488641855320297221714357193334403396459229577443850053280779977579278274309135323312352127440535243753584722531421728375905657109936396619846994715124948863002574883243516186863426090381638234353143393201477453039118546956357823072716997678423463056502164696167469047706989946474076536509502304576193528632870047266043914160700414500950769716731570920455921304134127277743594890600079033449628440514406144035067230964954641137075097323606851990054199464235432426391930188145332633529267407829199140264441379456912345322472845332454372803261743334621182281780366857056347571193554508766063822794708373281665102152159565221777338161277864610134751316388792204398723959631183635603629786492663218503561626929729919466564853924967412126915362121246259683118053274357714204855657523723676395252297463566500760859643751517720860339236418662264296695704212053369475457344205835958392554125033282037301108447994587023653682579859777790744785957051096397729568906831470049365212357692387832987911663613792743439581499626549632850162474914902578857762252042107571566420296295554638412328155763045125283422529410601766753957728449678405412853919938365407618500411251649039001459490662423529917104595384036776852727352123426745322115284987008346208683213258455651628064193168392585632443768048615291197774274832517029424862992772053057018669066006063124643080462120094623038200457760652608378317106155194569395239177804820795539750725399892865277595673593241619158182103137617912503503681587288914265941364892467234194009962847207985325110453372939085815816047722039588331690100656948323497061899923924481732852468660863374961290386585404503720582442210059600780625850574570929789673540218085964115481962989898346115833711356887011556393207722869281305768305983738581642245086889835247970317518465062316100540773424113624791799305544316173072198383330112394342792988459227443611190465374448372495654756400841539786189197029204983844178331168233410016100967406296386865411667831432129298348097742564650635081993712092081945375101848690042927774396601079201272178782803325963845904276850423864499077864467845551192476846933603626061664067968816289952758206428155392628323847770417804615668003305354964932101042611247264601211911944326854702035851145863759736969237156024531125265929183758537691944431673973057560932066569077879854567856626202233299178326575374442464208930185938682577303940692893818963737652760725944409590726607944881423834977002844059747540358749828355759037042739810997345018604785822352572763203626033981966740782547552232704332408534471730665775642099778154748952632533481003177132464616808772443306546203525393982516832835259640137786471930291358231983800897502037255838437201024016729471421677624808047830702210474871245962824839833555911273439720693146233301576828441413780114189587879707436460727709151679940407428393547699368708231407608405762780721182995368932270517811509806196383871534798589438392855211453900343572189052317825453869135957621327634154337008151546270677246200210665520400363934230088069730343754780299864677937093505666278871867417306249275920774047030980611187938841692407491684818278817143228334407728357999884585224610375562853541942996683081549266771842299540161775346953973299456161983892462061264707832652873326541792251252162395857416588082157825793789252205671359701166077234542178578062167468855319403999524100924919002244283804720675122165295121238336359092211716845561914789451176862874706544466231456332771006654323476425701431347381499923987990600550195309274189611406865891773015397164970818179347327466036846155281785720780233721482933647013046104084312340235952763461727644412057961280509695420553079596341809422450422050575292230140074991447675590703177362230516432003387936744527075915540099374445838416895445505681994376481810197543402024199376709137466582773453627339350296836720383941921743841150524442160302970788628395482510980170095416121669569864110448224420289399748171649791162889491856165649488598176303553308190701649427212396857740391403302545412102754359188729126397215661363273457877176800207331332168787902878563976798237189723214673238661724134264686090129619834059716760043946629773033932293788809682090074307956250831564700037839636697979647975653369403197244956465238785954979956233145314947773043495139394193275089158669319477779059982810244441379882819362148601344653804427973369876905098110612964308924913474077260550497971096412558057238021569776463039310756921120388588418318419195583258662398129432106838887582898125403490674362581693434480657223429513172358051688603945304639589135261243977269159034046052748312042949943107575198575600268304163420027714768289743803570826900208871893153163920889736749700410040901070454544079007819289208850673942374419011715911639777943986209856818869489887932924014206526339664796648730190757022099956673621954264720294385958209560112272859744726895477268493081847562784428464320458913717802661039823125858368422076400232809548860475729872679310479615824044015110529847415577243090394316751875701382228109314542549068713777715102791915026913118117839124491498736791687884133079165088653104317900062082190268574054075417645828701024894933461973251152069645508704144740488658328333419300600181881410735169532982639973173618284637161744229632753293606967611489704810272608623667329271913560862724041936563983698193651870814707618574587320095761193914273107018978424097351449698861235090555872832005490260427186755248784296970236911948837414060351783562764699629837211376664599482852283331252550587324458243354422392977184145928247366593644104444808032200907544250605664284313938262210767696299425444575105789838764768168705376235238728597432740634425943329023307673892574596058020109549800186830943357822315454897193747118039219740149153528972986853109551665822548756124247214622789626996828697795770975382748084397897928116253389322168863931988356048588126827885267394351220141604276571206622790545085261337872073112834394626882338319156652705222367439446158061501959894877730272348731750320321970099870825890696949521781076123959104286349374612433798140060375308650329740592212152294368212801816074294158141939162245347862357683188132629905569363533204048238244295806248693028681785735446148669357630993415437595377033634901309203315277328301746611224621566426647560946981774583660809540085775748392408164066121122200892687549513398347214300236205960183372448414980273577145704477787554865429805277489501451522969771055203457575355338064591207710499415622345468430507844288499329539922627239670265375169699319070203962061792396988794476382713069616107383961608296625506498801181836288358549230287540899474983192151239535262022347561948929446511675521148327430694900236314113304360171478202188113529257816613384786077865431013601632173307799035956482015407684686799136470300042077354442141449327350648411056840972618884037064029779647559871071511163080530484445119038334202433734170456264979009223516663951044667116643742389410083658304913990934030751018700466908932065964807426615545224389774408220428279735076021264357388868663366798144991712302422518102106863676657080697620409931273123593974896217849941451562003566388548220904463758987912322268851859002411280947557778069496930129865341602808596601499886139809248985458192696828682319477478078701262102409327721902420410461253867236672632357229032049075508166306328909172341364775486612337764189362647481938391795977646824454988559280560118911272476122631810475884583637128263935664052633305766721514109302499701995095595455765288791357500134584493881287633074334857194737858937834051439212176278198905233636016254540334125258234993135232849622691199075382741874717755430300057105777901585526481542546618209050230794449903803995573132436483361793224160257079890326120752166652311803348827133901138694014981639079212746056384239872280295867371804976685383164617865289448527463818525965713512980320810629459685129706563375192314879683306729397199890162103521398227197883072353547847253763895322773370637447767181642804978596304375469957046368595926204603053853621610832905169926729559799164406812922156999527717970245616429257163665369198142590823535956874395457457084055354899209457843361652776355824128028753849261505933489607867234239011158417343573439069545046965366909253404338416087417262179624241128627049914735035923450686615510855442622917651881778779583268528058082935641038013456012900289472240968781607194733678764761419614290152925114317759077124556276183326155650047512969649810490439165201266721219522968258063910019417302479626283990359900432090132334985228752718556650975318708246713800860834342084263484935749325604944476263007473192180980291520687875367125192435081875284534571041472700343381601078903877756598426422831587231075571380873873158536913364393315845994363639227913512079191986650442217527515548257339803357404117746791712439683599670443614220444614917199236449785797045412221648922324121445673318736960209619715575418284912941483635156052884726013559131401031255496606859152470457294616861178693163356075498700557578192631296779020685212152056151471077150325898008855517085466921411010763133910010744656773324835808872535803454036456408708280860381182211691418563257721699429864598469017430459065565351951232820786283882964987034132624344585645702901502310790156497988365734032427008698869073843120085797847365366753523157397955133099521895906452294466717521218484608207192376395366243710300317683501526226354289371680678223110902108503218077403852327271301194539174074157315207218230573629229336269601004944105114971954232670594100248979404811212975408164893504294699397064177824231709312030575029501017816941420835405316736413308191760288088207766398183509868213592621871625420912363287120654933156407106695054783369287039792841562525219001756118174077725100828110887443005816294230508433352398955274152393394087189189591275678482379568378957055747197847260677818529722982900777292654903392971908036622146847348427673169780413293410728180662651136142646129425133148783097120847074631545760929545463812575740834458027614387709155771138742740027801648031319058685889760275346511918725399380077128281231311902725365869135073216862235740087628915544354234464984694674241501469262721457959787980108600247742715714579634162809571798509927257354421773147015194245599485200794671591459549566161045056036987942205234095431451908141571209438893609330126102473835557803621932966544043512686362094647301018589188890502908794660363232418804273648668631145967245784660109600343377356061328005089671549409427225463202341302972115062354829972051682399258698154885519393435445236841259842274573298307682508204648769275357811191580062421783084291676489311338183794996559760340690291936740199456721064543881570178517157420250292285780732461484965746661958960991238317801656630150964876242972775425562781228420141447016296731819539907398239025429150731069422365871535588990258520057231629261101759967523673179738795934401516865485055642795082778296215187623581836554428904155749480823404650548372191025353453216891886298447841277880725392941988429520204113444795851671655853289813075414302308387292431049271734424119351281605038736805309154463778320447349999509624662843568369518648479340021476923717740993114898689541507561954278181942679653706547573165755314116846739670603304837435339883051666389568983154996768379314366506172191729472688438979549180437307519631783458759531707396378710305940692725941842880737857872209034158139981416650531265603551226312007499442006324567709108716376652182270585135634655277247808269478755245699248569378210158265774784460589847683346717801419290272323368596226744159743512421408393633763271281619978372364490644476026168105310274524241232864326551083370041784455844750106456760148351856713738907659002054445241167796995181859764265836790678502660909856972278447202210908448510438812328249996079041686030521478738306944208567541515861068787875640247879431690459852454375549968373468693506319411323169603356741567059501153409380255495041522732641736251063562487077183357554323705853433151666942743671586899382486970441030701756121876865531414944736247881258340590700004512965124793847026810999937240483719217591960968015908888106350601408176289885387082775902463116352891359354950932766767327675290588383614195424579648541185283503369945446851090193200097208356703739116831763384177109985432363801678779687631654920536281633104843214575813580895679222035779020662590179855477033602230708394867845896800311796289089932931508231856118410213231422425973662892794580306385019073513580337090554969439271642801495673167647142958017558844606730282540507477289098125333071954319999013557118779940580358805560640651130488646691790499013285816910315012676336746571584935268432268459961129596782351424728875122009796707716059782800907750648942962024789567025115029003448322086301392038601427284691116053391645095441960679217271609855271309978658487719872118969665381650191839607334509943112683558232088906078050792826657837855177121836768261727686142724995022523915345133728145082580338345053910877798874247288678790499557909108336471067770961043431573995523091859865888333224926272839332472942916483189225399056497151012245050741460401834119904613075616325314715462869848048354696271057382942380626025149648262996483328801844867227461190591606504301418104156181134014597142044176733904586930039706020062187569243221255184120787590994473278559309509272900370655165694879876512296295018789914729624655938429952387311641700937126188931882084385415158882929335037151306220885822739127190527881047749408618230670835230548355095356206591725364076927204168193147431620950173599052031012230116006463281716768400811259412667163789578098549206692120066024615643743043637386028358479277943577448961637670262267787191488696325278299579193724351233779602001437871274449256519979408309293608459029171537692311481935219375234285269430891019315738816300180820632935976413950168735918538821374340836560071266517745057980974913430228597641700652726223331216985031254830521741990684837816563036967389916582142748343908244072118064101801649497670236343788343088126533037665758708375108311055135315104741062169115153561205259338553872518205369408113220704306203953076575986494709987346638535885009151670876517275517710630900285265981190306392705014374169233789980192311158029771752246381750872720619465823282971604099327797489124593904022891028204768590394892426856523102916584579104759259410427029501805872692873765687819034952298310688245492019466188126939775449016427087201004754400571745069877036416111826325805690938567312643442193211610408029786653825636873425752558336399561367404858196561711129042989624460785983855113206401421781014622061182150314678151631369802732977998893196934009089639099072747692795173373861179052702217365835221856261528719969802338067975263041674281804483180948992676769664946234291599879239600891766295301715115144794217800546224554103289970516296823750655360122118518198134046621562226526526306763549971852493718779263876698934663585012345561729927897512486807286355939292969907504886921796581713052479920380701657917413435455757857101717983089542744670389827298664393275679723012428635371687758661469384465260368296802702475096978206390708903111074565372443857146811186558481866132162242283828773379233066161652680761175007041335564912822629921609229358175671621586188293829296187196968538128762580055488020782177522166320297946076408372479896981683394581028106863955574556702826313761859073547133284048540393164475592472135209929689836414099018125900281835253686500805769738398079860851363901363827974542768361757187125183778258744718704696788647945290703296212553872251062258326533965163442774489680755375040841752962947441137904668554529277972162783476574551541711689502119301258484146366839128057473467587230656362780818246028997232592725946465410916938633927472012824349318773719992598950842952246588081489238339912217629957581131565152139490697108363223506703508668121977367054298192155735707862861312617703834486474137071399824462631741581576182527667416088322340674241649386408496324453719473936381088706947194865614063996373049895776791007531800423276076173784974346312527158027282813715988714733815024326297755822356288077767778446439614162989231226339983141049140510979344678936787893428212824611294498366123834005174381665853050627137126374604328206660967863172656343373668373873162557342563184072458822471243960950526872899013862077075734240311696791225551037806522469915274213867696319988614828546092256624626612707894007266508928194083280615465876912765475899261744919550184617812303893251185352643541890266426974387245527650196056631753416212983784721526869537644543138427887343088019579679089387842778068331577407238144619214335399211002409105321193094909568878512123454652735691068429467951647219958620067964751093978207690184871747928729996456672228019436873998263986705559220731792127666319670563404591149469904325780150888310433006081801963701246460486721992645733434001068613399861837084864194606400610974906975896815457103005868239482370339367210651206495703700237592667153213900879235836507323565248042566077217829119317876785543888523584793994504787614551992065516036246405864481021446048607728133445454369037895015600951959105791276384530770031819639864509739722080633811583275972472520458817031075228982202376868025887411168178765158293420244756638584927377753450551411674075428472526140031202651917507206130107021854511637061755793287032002668630262907523329369134191724647731170900585030690688372468695302171238534763180141404671009493238212191568618048015354765702710181195396887691088252142227686416577962527617345177975169221104707652751729509130725384162898039979347383198258584862812747229385154388355750658454410623247200711978715630745420104460275435625651121512177616672329047300141913471692294565048968072644867939241405009714911744596717824619837620710155779198768158623886346848959352465072015877011320863524161599304170158903245365266549232474355360494790946733467550312829976492474056369971151810149898627505177212135732502656164504862408560145187756821109220504593978980857913831770572804476053600078090979913967615300590703985459056932291928428137199308892494898591538989923010198915580419149765290245300569091897368597528081802699500677917139930374667480825054805405939704880164559290991329545259209552047522532868041499785971139471208802642393031257912538321454581888188262682127061559774485398462590882391813233031897822437289000138037424105649866628703486920329740759601545949414748798271916959992614250820395250136708509664177811695727277304420992496024172667727898534910991661557601162809994035660302007459102154460323441757866983553406470898743806394872278336652413149544734537557622610797786649792203086587419166382513768944120606737015005208480750212584753768482626527893579532058081548402444687325028784588908437532437164209676882032266067153496054249942823221057240769664564297785455196087089858052904521569192530853643144328853000169510310273232759465235751317061127932208771922382416789282492132632619530750243201932129093862322263006461829606865243222337649825283402238646743615351570667829742644211479781495532192665567756813835212243181344561377212176778426074968260635367871558445652128658041147915121454583330317291205986660616800528239328945119774363503049674063609019876086422793286707025684270751244575946219871680408192417820712947499026990484587988831744704894904483415555605266149160170028177990733224611327993695427897349383848248734824957648357488713363973859279379840116700223309596438391800359962877584294145862707296153786758780348693242867133008607166720064958135256283391441900950971800784517754808073976331677450825459607199516222834758393658996875079479949976348830710678346951687235997754633266417014658406551474569407184853457674444000746384694511451928939542779194535991227650860187805266708416470822234160051472327229070189047216434728467897819638364359849816879933683629211385003810984462892859941036463931172710159546028516871454386495096565019375358964541460772605972319917319861853560263286021213200533218590160861035922703800046731043707239399837004223109327099305223361876625206791437123464924109211354741309655087691862094238088479165994154316788503766688020976718171928189296962810151667524286827537837496215466626516920229600813063921846954573493683778086297058089336255479590995486662667058783062140923752867856323094761434876528931490762781022138956984686756177066395899675230622447763051850641927854861275454973583586434530490775301035558094741122392667761740828969736974784609425648229210992382567471032131330381136104592286516173621040051545325435712285417385937413139347484665838598921818786481043950470533546007440860972424974006899589464011007705579311701812264354888416420364855143287950137504909916731050932205470589672831444981203877649710426519233810990406935157512440751594872836672212753957002067225352552958901322248618545871051113595694892017026071131226818807453617139727463331617556502899631558376686490615147923062158054307741099903153584396328929751405777609405453410956688377758564979278521293125805369097760030373950950382920737643943595978353486435803650240884028203065653953579080332538868654801113165009069881935722883376222450606576340003534619427638565383574621264203760128070263660474915085292420425952802635321524457185955429922361379366884269392477934002857739515104378015901006319957247132154107920213124955054940964588319699138072676127759101271753224672306502656380306122527627446337865526775479675118816931358172995787611281475218710528473201413530423806751690290872043804875400405198219025391046104791324988548723742239862208961720301923508076534418248841715483276919006788684738656421878630411060290908234006779058944171037235917526038471581982564096437995903363797473051865302048103296062115752034329064670878135964427065496214229364241897104087896964716277589297847809902170790490236986201361496267238016628855645716207787537748333272638823945831507031205337892783918730719173612740091888953874638241066118507770972019430038064504503631744381468800341103605560587314381346774239960393189523373969672987030246694911604753360199566101463642984116849798906335134847489775497138024279393144650098413876608284427200840260860135979375240411437556476680554058743249756008643786755108333139783597553428872092165396028390481477106789918212668268960767496998396193584540306390274476510151651337267247972199928423782563493544398956760474416532427668613764397064902793528326108463919570920059089757665605768783707270261498616284358070070520236895077132274050352853101348928920423855479417272365210552269045291084225850566644069920670173236197162073917730214705666157821793323899950187069631534173832495091297989681108849010068869847487278874574497325954013789749410073714173345770930933901913754787078149034108059863208934070350364772967640158489968560698398395864453570986709561062385109438210672748287754472398037803021889413951016686338631580442384845087263803394337528500224746390935159186655978411845089782732697939613282998248002650031053372264546184495382076134571999843767021708479480177072562681003553816733179565207813319234617417061472546092809831216636587485807464400106325639927461284168203529518441995323397114865826344462809099946470439318918206381334946542771960135753720411006750005185075778673921301808884269098427617143928198067511082647270377648357612545743307720830909620456043944681553564092854466460008094068641392863044871207985277195912889230786573512638558702937892270786317264478744595293580431723265001516519580059888693327776080393060044262682601022614515970641715563015757541643465928541304592053058162889715567684853939843207785238021833994005212006666653666895050403573818255268194986435817830264550099509335744100395775335488149651722965286201768883071696198113477815071050605555134001548760840177554527232507268241780783684580441716847205631846534306716367069892812574851801412412155674289687308753767970158722662864512238584148810935549745943543204478520370827338311454810770353630371974256355969098509892077268871161854277764785223522534745062281526122077044539556447842132129099397753114477658690164048342104928754459044220263308343060571740035290505179675792527966027259628516530994305467154666465662085581917703031342429486494963863110717831305250820777287998214598831029205610807200407971720586091379994308797101424149349235509837218024514377699074025151075704506784454496005121560108853787062618840073269181490363272378212202652516398962002022199779463285057096377302045237156942043412863384504996545136328311685140161052098966759287533298229298344805755495302050918496073279132873386158521688202745496197437626970007414537219702759554064463570437682880956998541905246441473890269570777803151394266826441031486536122302766379028947393445458980373674092480064861181250830962269989971309292591865710331268663639690164202841176568932875246297814518793933535044470954167384726106315570663081693304495080215345714782400254084730303466388546807125306598038461378922650959735121918950762459246687087488728715008531604082004166349877422107471782480158793976630463422881468171190094343231424084482063258160055785422119236374912404361063443497639719630854033448923266803070953103584061157694906446032450599548786060049126160064837836894738890400425407212139101882706453264111491382519759476916919642278910254141119381455468816030776688850540036909988159036353892035275600895025358684942940715733481489245094556406125075082708096764341519292821160525042251753987513157323531365181447172140250357033561067833149337490234137385333354375356537655526545469593944988833130989585902013536883571897526252381905514500006750349801776737225943258539234263569720908155798277225061485428648435450516013652310577347461530226366093933253139621212386683964343805409398396477846072014497779894006557761813313677384400920552468198868288197298027180115986015598030524097502977093777988308277442107290810287874750819717796290237034652400310850734013035711399331039817433966444957944152835032015607198515599355532445788274406957028787431805556330818850593320530055421729461384896524166440908522896633588455288139458567365388557312685715184916701452739122227746696622159932678848272901168649985120350677995606351310138868470228517590953734048625567655166687379179872786045797194593789230463100674449049182033339188654266265500788925520288549548742143411182788685848393299692490808559816964592799971650505805733315723534420993623329216742934527875997843459327735090122566992116011141714781911889836680069692845153057783319513888896841884475618907847065692604838013782816100837416108094228191752982779561922009100547343542674505418612538597594809403840855236326314643872999781755927226513791336418208426863792485100885596249401135554433255992178817389624951746113875659819495099955967652161108402335874235880318269182931377284568675145798248530709906637627875264470143656986977607197950892013222346914092339857713213894406771429034134335695460757227037084409309612643529778967970488497012541366392201061557501388770229228608903963809789254724386949834674413758199862076286430901058099835728347557942301981350754682288659396229832649759411788078680212999779857025099048152481005944087345143909416967521573308098014764464255406750048851378186436198601219641043587186038624548321934740048072651744349721008372923298190418549340556980811810143572308731529853558839203315909244162253182480199602313391569676538311297096872678129239245346795843714614170728622179535641796450788644989396522011120725161149554429599838450134480923843848687286482294681419300533017504552350586715250751942946800277912683208966245566459425494852609070859224334624038721905517565577993422539269789357720065930181668272927350524018050322266125772451635849232271369722509859316183692398814859483749245777394433861733944121214690230199094577766028088821100168235701780301532363811857359124408601936169586185377826184185088367063833980846814596818225309637039245165426186838803765319314204554004231904927937735798975829610379441029961183383994262221236010096828376144956585980661245807805576389691992773510250332809829981004684912585092208367957488979618035436296322354361170715911990213442532210249541466527244252583353072325418997346734028074353305918936223162030089635201924901601732711457140112944927911345932768080748258654760024393589158746980269261739351209632644737690586908315099139536967370379831694535705638384050177973944863053839050930004410917768306719261412446054743501702293423493257105896329049870897320820788476806779513761426764750987787528970178118760809178500164937781249521437194072307855364383658043010478657325383066468494285272993641343325780947734375605756050506546894657586902944870955501834640001604137901772517609681731812055308862299071705075455310044768233578134914553257104566509763158950630225828630611003115917908889226712956632008717528513412912277130967902199488537141474144056952962748250591700941580797602570095003793791131847646921552110811266474299611733295991791548094801569438535712447787683082039169094077392298511603235412807600543160589435635775270554694472923671702285491267533164140982798046688353093948625979084565338024475425511273175455222099085237436524266595267048468646013093736192471528869503036316105316966455329505089335443208551741245194437709213714094997073984501842930460114389019497486542877611741828794789746605206728252475259977581653217269199892110174437370305017194201099711131624871941659910266907472841094311202338867016825918593790946098945217203158274851845476770402515419857523222220442899462534290697915317297033061794814630093721801399693488535056713231130897246615681455032974511857905372780725641125037256103198233220837912624389581794144113559978388323791461678766605637060445223273596905847799909424940230166936370757330234718650303012155462995242549105168270304959044919067220164269269366491014674391792043408979455640151664890111308680698622245816737827481368216874975798521632443851096379198469949523323119258622557808947409763129964688740559179754015639584949580033682128393252450437874526258879935034187388779949214793357533113131650163825208534075631650974500310032725825355592725665433726958383670486068283444788860116611970266811788205039157434277510850561949634585005487340200829124719521697470762136070351872247058221512937714962841689242993163696810658984992571346244867590116740661516229625304884279830098252184934597011350589239418378358921060570552013657681371440763947676283194947125187097921495126217121177866469468921819601034356647907408724950860189173564774134313777038686266622344137297930421972402398975827374144709057815964102329791665239227436738429072286898825184293357739659842779650957335914500667907767917576032451707372651247730112941910814491457874538328712707189952747243072930461914392961835219303587196163056249542071064747029111997030069729431067234958851775581487372848052789689051790289026045218383141753281799596680395763479251048627199167188021835354383119095708025688678742309365528713806102876741374815164646987277344180680859865422986997303232441926060744375811235476567587972291664438857553754745401839739531827268785255238647948640516091114302800144290362331955133729975963448372446231873844843966799904544136341253208541489962712477587356082028050789516506650026365960241256858494589836900167617742520476006246196268170241150338637844824723432165407321933285591441348533489893767415387624260340829219686871572016772496391206051657984019198261254739469515691625117783309951798366639140246446780728735131812771654531320965981417440473806391504340948146544331570757183596232348122094183512171731371041237501655895520625060701827746528175897828681058793164486819045129606464397977339711431975980728898671216044506227287261218607247672836811271354939717136746609923159755334672638270441309776738495561783840743946390265697410781573977284008631741215838106478066359284040371897291361046473459457086789199166344253126284055863807786340296603898827366892377809920796055280407839522692337292089636573603947510661716469911156391671260451305294036598489114116343165619769797808067439840968755208526755916545766400082633316051240127229367125609529911678041730281725182635557845936329203597157710663760528203304655857481739729496842242282242306778859554006108126606132843131543066149153194647032398118902859696693201381727656950762715465077811818263638832592327578558390025628504372915749206298834055685123249567341751393689196003692597670515995120038948895571545777139543955772040317293686272869881386617341428202749304816290786603027243604261165090123027846350554845316333442871748012698779906510920766110645878466405454959810823398187078941077813815590045780208486942584988344283317401591646869744603554213176763254661412146670660719560695466429044452851057562819816599492843785796335264109828703756706588783746614075553222272694503272859239880211740130655833282997135691008735559734534635659224588463709788117069229057428773391186346569981644671903711392390145437509169014218178966560894146049621219971927905475382684123916390829079650863607180699949372675243042764281364503438539984009198138270169838856679431410262050392243147407906625887809530557290463999184429748580899632446490708836828274523919546145797088966726744635066308069012833822076190583019061003566510012411808977489924152116823876579263124222084412757829458038323121534425203917021682054044942833817898883329762035017819230952593965644316159231617983551691138184886262532004669500655470523748556881431512524288810525797109808747503931957694953795225568645547298669851494477643538703919783660151493741229905910908078006113783081784134325148183888350900666945880495631229397698125966132738879089663531599290168257597422612948322660689896305798820410723160230599305352922449790877187249790152331608121993854615924311886605370015346398662931771037388911868031225482546101131943602883827006054704377985031616762753955113879666595630821625819429904333379681153763937250633585843002997625956603498666284888381761289532713604363736790694073735781868399020802468773844443339180724797343811590648460517236255904539146629410915677693107221521734506079539653601150180254416894379972854675508186733097996500135496452025066392275744277485272716021685992366315755803980279360780298963359782394696292091201977572343236554579513235540217297497597384220479557849153643605108479122291526025935311353552232448790084479507321507967696276416976479505166571428095609170527817868501496842171074837698245155984958712818196730427631735304404580961338806101113524855883792698244104111623759518017406669873523995833943513250672808492287113108809237751354663051799272346496678323545739563230658116588144713954625958701841196587381936501040684999580458006667066022483896864729962717410381119975193526181276604443902505048315954792383245410751574765825347535867544552571715688044026051712639366890174915541603553749842925984807249531190151996686324300149600939992974799188021958084064210361014093287968947799065198932628689201605678462918548271861707006407566731203092584519751693075003573869387349456906368642164394357814761535611202900775524713236696296448901991047781243295514484082982901682468114215356694054274883751571120783814968168540527666869214066674813686907270308887134754786460623061155265099882607942881300213937504172189584299245731739647040804653946837204105796642804296871044649495458898035601991249038767880203968273574840990955102920540910691297449681294768988088435651393587254564086798133814793549371372193235599269131908231378357519553313200108415592633250171111827272604029132097124991056428682906016691210500699649571449612648421573184069560400975513849996949574377695561098841897850258830958423816300998905631878715626341423494999149230130794069550543389079847662126064835542966187014425377020145399964373354119652998335081197373054180734006156853328224618223040740273854779765436223992018181418150037072658047208627356163698050581415774293502917698484426045947878920903470434211050185111665090719002466876036248414599330005485451951487992508281815911868515947328717109254839639984572570322724692983981210666349836913522160077576165213832522012772626616002784760456199001907787977395929597786718496277828353656029929868768524931331147740909646645684149906380808814685068315947167233567401173312923167344443015629390120905866264878702301659691982902800982624091581262772581617207073904466106465409626319028523731701277198452474530270104122734643806687850500061145706946547276546327537746226481755512235959606202146693687871699118502337504723070988137711277994039904141652743140986154073631023627970807600566207490873637671844279248658662334818796736470734009228321426861941220506338799657754837392130784063687312467826984960152356463238055753435696402424579803330022060580469811536258153632089923743313482823232740971673426341268565694939921308975933919655115293280008319226464870739374112104130676041032475529704319436730002479527539801558337176852258691293448826975868822602238714789835543862814689314997481256400871794688096915188717927262474047324606998502822886070218228435891947133462179282175995717288850995586513885600679326982614569848112830354169840356618077864325027311815668949157889428221614830610600745607216979826432083889764418954772263001702610653269626138301669565150958911500327044614665068950460618514290298705961390919451300491515773645903085779578202063096197544975479596623623450868390097430606855146216818178338319147787605554947402670804629524966960472927938558775826167208403205653741594489852880861309732744830971498751920676277347948911650805215877258728907570430521262967506320054172304907319389284999528847497798463469313825531997069904860923756252546937005407295140000607758288804413347605715063588369534889834057048379325753178895292325981019819515586255732459500990921708169881483005623095410990881878279889033307193194893195615887885128627026541627313177988891476939764732151412169724264535576706539081021909365363542575311633596464192868437252124361327456825518828988898686026991355764716223005903129408820419216918454321106122094001290917273843369627000387163669849459527592349170017085999795408758089493140038693195504852907544197552976734379274773492055338331739430814717501015249831652487838001291889971215206995851185470693644342103903422148552116394982516817139151041766212395626025055735609922840637634894524140020303142555649539835608695934657189733026424986280031377554213901070883755152078789302222194096690809531693965393446597367294213390514457678460052253010048376091341709579073353463860499528361506501825926661341429592854863976246513328193486359380480934109452165898429040306505836007310492397537499201868202221725251058832594698592182172815714817888708904646635389485311077691669814310970037947112601782296474807705263707151021380490400943014225816241989885736054332486573880293567762920445824613187313003650182758821071656474110926716565325915057838296173027627006218919676179733045248535595710097583347572288900339287405417437072183613785388128740917436583810042977723312790145398781486793332504206287154396988203005304384824517757016874753750699007763380276491585189549952777608535848343667830101435496344097120696799031479689347813268078811353971989767770090850724342761342240098218592107774171469855637098906749401561701560149925636908042435406350033169445930667626123903800832263011621655513206872488466538066664310230616793396098296727448813445692102062346653004891895845734259114973552608321381609562785299811443672112417444938419517092650210408651488898074638639365005528710653975445116726197973500857624664873444625420987061333556707621355696272676914341880498629767630003737946544782834077992530566945013181159166428863786049067115573187575432126654148764063083667062274854343523875063133329464967984548375499346904196389948797753456529614691522311485380579206648549090516258154344888450664906631840540599412237700009252187344928380996658765998415279739389245989772626434989496441356020016520620743524177295518109747691160436680446923574747087999122850653562674802488796523031685898175117842587022220729898937049920337113732026969756039634220918581734551642676728776379399224830746526895690053367760248382496661853988700653293971494647784414056126051484211606237584179245920964911976981625988602701578674044675544974514558695614316922994612331773153179200952971613595860657741546846589872959813581895570950384211378928538633876230958383659809403812223481909548280260269634709108371340879280283230563300547401601336240205754364571804475371637037220023865458118885283926832514576002352004038892568790707878845874185196783498001486033939476649519128401619236335228164319950910943369428773722127307730397891005602655208670566999920135932765126334228475330569273271933721918594416591328338307175883150994231120881722804130007339188658258342678845644059264085117853902304352975642010845039958119294751885430036470157996209631147918845266600000490363345798246824725559776067745364066367468751187267642525426280585113075817616602130183322899747902424672838616081139669529077755587696529022396545727224630543981276528935094803339910061205956429135449182471247468394898717838876293019616453057491539873942863068326155147170640951625755356791586167980990291586792096276833838804608863034751024363722798511813678689518590906998628727928725738146953365408030229770692815602008185188603876722442958391560470131568221139590067010900285518114451003283502598859124775212080307286680689252051370182953585853109792342002038305310426062307341021279653982187926980362290313280484002065923202828319401229594676457727334720535614611559825709144451740623774873018282768483299256408296688115135092207416423639738347984072145801263051004129169362648973295007473068534284558053059073062627897172193460540005327083281873461983837731427647337234893395607194390244863840396995655976891364850210529110805377486692313881473676036390664700105053494958454831644414247396377630188278814989592748248825891378597564435625873725218300520055237244131799260047621073242101310297630171996237113232987443441961032957749192322910183480835470584939868804281778313928841652309084199654630185697664396135855026563860526824390789832535022684716855995224136357792591498578728349970163594489295554899754478200039902695591918881304331059810362172919387663534943182295099940764046072049773619641637603113051611710776669426823049305214997953932069702545272698424193709416154997296370879896077616436404486090071471994905647883699858861197230951115005648808210987194032233484509228533097427559168230613520558306564942991731324845893952364860982882971356223807217110580259533366300045832922776219391627604062713450647270873981216698876580990826470452156002911370944127918204684021556595744485280542267082327674418374793564075721904321384305972971952586084914102868389136774641013849338798318897494372444938733562257840581675826479571287114256989526191451943137851956202797795172123050604907595576198558362172654093227864732073294081876494081269178010065720372805869327323904491495470172438990982979425103196778037096765767827639639203854180122063001879572368799283586683114893806059091237883704464731917805137775996972960674623359805444800054185887054002019482196705710196771459905349502687632949576038974522161171646034223912185596566712896102648928704083534928441809613344231254174892654772656822726604784536389967241077194877035752735136405573233005121938907225820769021349386030342187287010907741810898064562291120190522376287049841958114355412588262346898525353290523623834419270380209758265899251901757718142414409526822965342469215819778242782910415249964604836139289617414614036354385473897143710264900333745565059182628795486692520966538539974776129008223187891514656443973190666088340767903943710589479780796309112465660804823797293908734608032124471107533378164604040228639277754217928184597786947620722693596844268846317738573258648292894732256733577106589488727114532104789373610814846789694660273337265393914849019251578240415536884304472091699948281455109620104418613798571082583005562987620761254300424255149000952948838466605828861417974128781366502276858214417484327180942976901221459597987218581022870952189056139603170096649004646262733506541479949288069753092198677679577745782796343233048861022076738446305806173918991442957156180945425949717500234004013597938584396755615170867437843315816411517612309438272844257925318493405177281856177800826675858545084352525066443862257579810165341362477372521359591333203236438088787190771358639739278029862088266399558207309332151283335057726167446057268979969479712577828769666006041158743528023649282187011546668012849266942829587576312063459809609692726397168870107992168655875318090820977207996925321881808959183849119241817724275625907485180238506538421428664376032177176744014870083172009764566609599154727160859433927340588776354889803433754486569726388103622006497700938635200718687541516753567799771739883713351533517738349784724231016010733984613837028031250688989560185690934893336029891952702750316108172108437607635066480722561153811843796014969186163552863428033840367948915163882400019506359986932044818563492692582127959625111469546938190654955824961420119497136905954224130873671941290334387662806378547053784165471629299966788638746536070208703147761985899770190877957451121014062059092783965670536716678855597486024399462145795784000869951460188681876581970381500887904623761708450240325277878215368661783102440812306787986992287362502532251070479062353807514492565778245038917455570334792418173173367738186272249293593415113993214243090837336889702835868598959264946035061265407026308247552386349091693673196524011274097138470431955612894577229671910816912456711960717119459194813206159148767318117323158216706884320506373470517755306473375915329378629799362774233222555958950213878048182762634405501930778319203153229405413770958820982407800188220328591389030560842504358365175799942658779476610618473215322014773130511780153703443914791728125913100751793636337779473028266265434700314178698261168054973985282675533141012776246997140372704505328712372501982588395058557280428888540749848708751955692926839307927083829453767708694360509606033925704865559068473778879434960481215172050034387894569362573479426090721728687201826019851266803726380513228496864202543361393140960055487773233665328879411060306607017636100547973633656336279318136348113317396716203158128809327813810424597779524170196047350190630892360777250510054067656240816860668648925917436995056800918373121566248740226664123817805635517738677208578590119909063197626625085299983990337102019520544145306581905202001367826840862844061262264924444746616119013346014678834621875969646339334387904738193769703090551258705574646590018481696204567509993395726903301381272273066282544090696467271360996804382288408136221185358038945826538210173246232522576820468467486648941119899838238571109692156375349132741694364388568002850278120278491297331057073358715992755982880107153177341924175006586514551021730661550942300651864748566337967357172371368536069213107679645667974625188089365308389290822032772974160557166234212734152292568798436800778278347265543656019330823151299752994456187717269838320083693306834652937183063281191851938081658417521497393334048283777514849519592153490363859331795685001540400027830596638903668517017936261655009932340033803690545219669765370925007970613527170282503452240468274490643232809359624013366009758101192367568208159821205102016270171924952918772512310200994088853137696580518722933541935244590559008775310192990898717067299700374532176930266482703180146229496413299265879206167801828278660943528087068914620129539642186687241260470437395491861127144812046988130000232512528029310139904916963852253486989152085406946871822582995258707734127083032998298995859329040497063170149403345190509411460651841370757589779266153499428484945565163196869442317065822888740786574089055103728775710305350343195298710646922198046630434696496478127082462342517909069193843535683249766723074804574818645643529422145125950416302664599505308254294705445848674285968922657774494515820406774305391037543186881279890683440790624539356789900872883812063816997630591577476105403661174066190453089542558371460664503407357421109918469725075854188831939376040849702632225793374805581007148779431080614805614453336170067804794572163917778084637311448372202889100838571703559450899830203531043123187755422139194157670252985730082434007825454073163263598345516759454548638766137512236995008737142396272465013190925922819788914655535933691152469560132034297940266506339476975432348786859504226387174031051679986799571642185311615490438483281258804862293601864868443032946015607977362315256882284383941078962788878936563921790093374484325289339515971979710308876748963523463890746247793819146040560173277147854897420667809872381783364170871374149772695377076750877748947633902982344565473862914722947008836731827921678867295528478990059380158451732939145894306751234741222500023888967149805579657785639194549298240901477661518287454905584527252480488632391203025679164731779553513285361093122236786342373148894299785275752686608285509375835579302107191766071059968861121161221653010458257401168066013754730024817507226754795647074038138088941756025621242172050491936263128902982595373063983408926269047453589332169181333752626481761856985596161383634985259431488693359142914144687834018991915615262394288593598001724668369393464102940879930636622746764110416357200918743099515814117236842068658950275999346233621795013906454109328144331001224374075960646059114355267569350014058629412072285106457176358068682763318149865346542280281368538473998826354784058266564059009993740868906124092048058653283524088861248576323762889563780553214097093797905669821725078645979806492976677873763385014742794763629409900479823149767090523961955115881825228735156062926149195559394812279584580926074140928482923711577300833241733670493668126341565764071587132533479317293095761856365660792969277240907381593421814752289315741548822331891866878547119655123259924458375225372048910926866499504162887961422378630255828147573877225180573592085089150495786615765112542345713790833927812456626154262669677461555452908291385522896469234104020049318672793806309880067182996598628603098464506472176932937808413053995086924512108043239392971338179070188329875217670776473474565735471308131502852429767218335113383056650909305080874957057391913053581943925020702982821495207136757750074673591464226878306590359429379224072506811604438375616565957084667945841813506435310220802136623750603528293770692652915195431046245863038687301534261426357668233075113837310223956764049464859993071999390667023658057580793309107035879461365268192048155698394182305717071092478933551707956260177604498710941375822784553848630263341042152297524380390430400555382448260371809010425915398197442546125618859390948869928693445802165817537401392680328185797134688198909245673236665446339015684959809334611442409435671393805646356771198514011718449956365910363180637716487927819234097014190057039183636485606858226399762660391769000097367537641778327153456661084151706510285140948615546976305189617464849606488660531200811189463262700703415515547381562736981867101478060417409651072846195427751305837476701544389344574216034811750328688700518751532956801193095319221291942043959733138298656773469134006678790123317942514393797497673404609004997023414479799440528264896392066096062820722907110829768057302414823024042376792461389911385688670081571643904518118918881328153318585226641098147833200371519747706606846920969942150761889991303018347469763710728668859874111644295330894025944637177727481078702431384994111242921747860771960679795284740681367347272184229088475347170590229660487302038154101532137755440275930626357939651263232156919377815579899744335111401793514136858221754997520721174426490114592161234072475817566913563893802461420912482196637515898008081783479041379458480814489066937611120759237624575451250064272370848238425029678087878457177994883123631729214974886372888991472667645028919730178944593559787405023911252108881851424846903975070583783686104269650448666372215409154106820800238729639134798263614495408210205614981484753338673084506998011836392533789360044630018038512961857826131138986002535881130837048146653343294158054959951746932465491692342556243810600475939926287172146740924322215233077125937674870360309696812241394518211459318726875300133819114940282091150327946499468263040908099101061861056796972829792697054429042703478853732019127733774886102118380542934416247923996376931548881696835393186028023315284661598140457239311752802364127109161816562620981057164490427521919973361682859181084541752566261160262968068556905893283748093149107148659455841954341177603072042012327303023748990614936130835066640373975716141429480156007473013476397432614593670813157798182401120976381944506339746050129545075639978072540355829897475942028036904703709636033567623509282439532605506465200433027193207605331721381360448736996087326488241067233781428181109684856596494714323567672746192774298014331013214047245437072832892474644785245502299665872308101694038180863689072178667811397497236083604571961955365433352966965935214848981441486182003802937170788523859275831564962350459745913367776312207635794384174075232179842463848142656367034437745442369818825859261021700858787969016134383395371231157309602016826202724567427260777991553212444958915910717081555016862658282387365565322119685371623916466466033169348974357766232201708022648441815409503014271496106952073110876674645181356050222240265898289892207376418998493828573884521432370127084933713126083316759580507950595767785978353969032486239436773331341057655967598967422610092254202657533262479220195219670248755489039783990148299363076579145412222924518568194939805622904643931882734338115259786828859278523459781154008945026340652391399094132054422431480241518444886582775068995304572166009825710029306380314504451274642003661483285891450045402036832268120951971598800245735697725076967732284842354836157591374949683132378117315956129389001745739171346502914182618352717304458942069717943841635400821975037806337071804234878392544366365134163689217269405005668410240456624155844269163888323849686838953159346560192029678460902852425376091358789219045236618474026872366964558667408670920836168438431693415062768297580391215013875622233104460100854236510008723500648717667661981146721559238187758514669976511303690319342931024618578787026710614273832876765832937465329700916514504632627264094114455363981659616847395810001136453328630163085699011992775926892832524012667443098866871233298971991391241307018866244004523206384660443694864695509301143096890844526032013860382171108812698621231638214997765073712908463360422609117010993443236183220637065280852659584099208003297857228137853398917479255803084287502933610065967219963181933926491902983009102133112327441390696229123398931058507328987644505530886012517872461566555996899164348684705449054119802798722565256177995600966659507528258812780893600428745871790028955473128011927929043707607459029453661713050621487281862326796567908704795084711279111334391677734516464172474462833313303798872023440476569929086297881743122975979805607751868274263247011897411439721153620702730016288678949593569434372749223579349754523499473572384754660895238394421351131247127826707349901809141270614929443692845674103166024750352070802379100639673802348472909967244051836092796105010481336110770009803582257154614934725566342422629333680071216973505915138282442763914971861800492214186889147545806288217954537325412132079354290126702937784562229848176642781910438693403531370501320046991369805169152598573037520401277994031073868657990337973576348377242372609393363133655532953797342619835924610214507874195004540009230582095989825855818206364342599314806037035049683263628366108068494462023772979934897177520342443667004015233337073559795020402896187679684412281037613520925273541559369226440279598435905419233211575059666628580294353640496626935601720010574835026091028948724701328890410442829621323036864078393480647951996882597649127725015630431132416245866131604506395692235798295820139537405438077785806915496617896380260394188768108005813317685741980200753369062874270035046808985026148844288910398000513913835223348935591021529568742457629829316296435910081165642510930861462968060976461052838736619509699182353541934403416594996194826243795030462647004787809227568370092737960511454298468033795784737690830663425083800082114313851652991783295122405099840652633401815394991966155563150964053698935470018400678651015775433911727725338017749047061768346767691476355517299922741363948780606954009599275395629360322190514092060004431882950503022022659548747202323550254237409395207202030963204304264941505833507662342355344383853748261014605580711063439470083118816030807179184059796415036106294311528332718118953794856317496683551633755714874791229143548858898388507356189198681599407719317257719553427640713150146279706998632293916162869858188832126290793357826420578067391575111902011155722009875406362590910670686651073153326210830342765457946598746796166805789465609154158255340273565737573546189675752631685139221598807558287192438158923136887821123694798991911747562623191966202654161218908550778750945159619800052115202257740394823485598364352004071364154961399867822979152630210186345889240501754311897392544254801612611980023398060095844175241774772286566579897396764585346623438895483355412875444127541979675196904155780206986356097552417150215060002785769505783615680150115539449373463464969885323625405302707184899790347106655977302236157986399783990621688128330100083535902900595634962284755419139268436694287693252897233037217391653169346664202197868455331024686780430776352164672536076356707746438071841850117360599783383420985211703624392062267477915684982774387761986897599074943062130829907614720141885344753587894369247598118893663561578773492432077147546301483538121209751556356655964394647591383048514433064482529177594075075004895172862439317383747999440973244079098565784913878765121829344485954925760776418534034915659183362733691656165738297755233499551693177251407970731594124063096120193946599860717153270621125288960313071432456417211553351242836444622993685418728277691768005454615661630519105182200926805515734441230478533102844095858252715248706470440169996917864601638182241699986210636946707082691525919129102459979191039639084029072312646393091295706005902396092314763115252057058157925541213493419664269252363412959154329702250902254613906513452591266660392690695939351665798574308790919870787134274551568073737524476255696803815197612339991764485720001630400783923931207657885514817326004774480694578345759408367067370690619305880456346817278550711675533918845253482796323856059797984564967764590357317076967842368558530272054827178358793798685684168934889150917144179590970909645284845425161276272274019573876756999155325164236515539257170931383073337936301003287816959178365681314238878466114083179609891290116302330228122062611118443734133558867951058699444145838574557570685700983097394762170793674915816307523258426415496899062745035076598185556892234795666337387463899451153908805363773418313431077741841283179730757611004166394868784987926584526806021394330505704102839840346683549837922443177302602758912232722777180190833886916665199150184894511366240812711579680782444284130134053953660503209744340822090125774826258952947826559455913098044199802025942631021296881703431079476323051819206081860760295338289171254416325205877052811924873025104953416379300509489594105906555218664459457910044138585951445821512167063490408880383323436772351805161742351925145964791761034554882382356324944284655538041341923194615801520057949205703635400380734116285610641268111194983990491686497518475296623488557284160259917594721667795498179973705580892335587994698130338187141787651430810731010951668998847654813147234879737543711481682180490089314145984944929343520425956406205887778509256857912672258949224118476310298034731098575581029419496001278608251169302670423643925134663250618975727564401256138300479521633757268737974549333255788871714749912867722388311301395012681651763976612998675005234635366035932749728362513632869671636404427930894639908443279531586050554545934986765020938330272714657494033885277578027235109296315147312102940192340540562073251120955756195968393022089853800452717244983267046040963577897096035189538960917295555482315821213164665498205970418685015562171440033386290608340722477252310231422391069085106175783842733051855169102764777565990504948261709419169249546705678974416955638930977073159749232696125885651291418566584224319025412465135295257042973037571423021019450320742544467891121226652388897703221767498265573306851611536613559426973143580298490557924896920019169891752821832699942103334889610799683733588387400810571653931890979997268235431322669829109251756155006931663450625714665273781175380932110677016658187062709945296746535500411198300833696113333962200957228775293019954088417663358745700758475454839570313082661523866721834309040629456382181588704864124131765878621593542508983099104128925123972242172331165988721442914834367041825802468843876352653659780834396777534011132977182053045826060626355552535087734284369774490305482266602419830424673875597137460300342000257238754603919416397790458605370459543336762841931871886181894361472394040339143093315937284174271360291678273938953647181112339497391215070566312417824769547003904292817262271675529882906461547449888052921628982828758557831501559705993283353373011509624815969351151028610187442615342981896636618574317190227031043545296139505832689653862585298815120444176428130974662092612130354781970533654865708627309769000924322682542918749089823377553593543124799735938613337453245965053827740124266298050704639037216128173828464345061427381843911712553690670789450787239183295321008239092873697282367607000374067442764404828891434892623533156138976207096631228862768124108540296039739532174760603777120726731882139343339127244195512834712069308923648034079069245465221977081497529579066098685448036764610079522250612687040472978756123765682247999941193590358362917627189739257011431825459115699335724804468159421441083574847350898095032886289772533860349620012059470574861919841753039829499475652641885339816891276194301346103704304810944753446472773746032040415739844221328489745297254043162983419708139960246709743003031021921365065771952154190425296765449832324476801683127930584572925596481458698409560207137026091681511515337332539994885352161432849828036501172402662976846882766831859329673555356684730550425185332236928097623979125887473709537060279302209624174757190781056395809054547761639231363808945314197819801469957350400343908775406720705409722869107475717021891187265042471641115885396213767795126090894887003886692043343581894082576253624147658276196341243987256666476171161077708117705004880256950631782005806198592789574544660939767419084736522779640885750016701582510362736771964757059758624165376376105282848793176226967583546895005547777639806746239381352849606427320569118828992207548840451492516934462673954204534808125350245863573817460817214684940769848063569806762400424096259128248172665727150853695987125627234289754780665468129083956235005734408168923510342633061362638739524534735285145036460815063360015296246865856493333067246700802142274287512812467359686762648208531992815499396235913037606070327103506714651110202073061482050202405153168806288120645216639482967620885647241405198778230731184014733718420765508664179752841350873914154158695147510626490285133402858499126820905480326186200065145252461629848792501896550618594164522436410253267428186040843806075943185621361667767554130296488341023208000432036454485398600308307173174477534646609907608947556378609226941207225779066420479908174361945858544635544934932265721374733153196204787318856856195425699248447551953949488209312990848438727826965619975796282029934183848197448186892810965721126816744783193265745193554103516604963017049874596405430717008600104922552554312775432874007250204410664236659586302852870304420998589350180416121187625025658219119868259287367934750609636540843899257777259964256139612618637893637973272169681958268072099167640318199870418658252273109597396664149570451757980869873955323124803463092347551512730842877498953750057691339848823182527720346485184490123913760158684656580644143705266690951496069291200363870354921560328809228202267310110512995727920336261868669801127121269459762068812311966624382601050901683013672186986741325965708699094834056622403453303331795017408427645898782842102401591124128263462922926314795877027767658828974785334596902738062842988421998341623505034602398622980245734455954516272689414668128248163323106243453612930136946487238826332462468485566079276588305335845244164822046243782300163950490051592656271589488404468340711544393605743157939077775487198306342424127428481197949358278234413419968782543592770594056909597265925922062066740342818078390293073894213138231897252211207409540307656642032271275574733279736416380037050795959413656577460565852017142148236109977354935158760301369757039284096188481004871978595339841887957741801190112229626216469521521817779582453846642293130322236352546347809242683241981111428225571572477677751963471492854223437583510326180503815491098804981849691167400000022436278462706368975411765965363413851290923637408368519478979924975467995668579566258120091701460473139694318973754815413970152642255267381436804457754600783143835873012312147803412838597353375938143584056864490079988214956995311196130747497199468335846735818199537368043864795913786610848167866762949154506778742376034927601147861528652370761291665892133707163340485867301170803814967010991528502780289061249856792280060899483881235954399448349505746188503437895789835167905733492426450692438964868066983672721950133546045608295856422804763019969841390874993805807617208138086429113873127349586434673406591782984557140473436565707785157441529539897278391123056413110344303193647683247400435806414659876424049206984198906365648978602507192772285958733523105510013001255555859475936563389531902006259940936753214075513475702140696934015762202606229687433588207898880304739632307225431090547708005570065946638101602917904507840295919232666438645493970470297978267813752260888253140316546992247012423943841049023246944039994576471247432229359629665613733984968939414262798018952782070736196293413216764973797372381751910046099670202543316329770042261915988152868970002248806347991814415973573266600771066714540944235376924827193446182067270305348825759397037321725894140245693133285487387766076628469498914050392974330318171643614837878594861738536893577844441670534152257029780757154671825805896652689875714309351552407423626300595918147669121560314485638428086634306798455142511260002745873913350188359276032432667184804015010339907476595379742447868729752059734439999133962355874013543399945260824232950765306018188832990318315615115871656127838584265911596849708698384507961321963852860129269272027546305395827160129364998088926044985587682864484568195071280543429594486915335837896558246223708802133606098953223323241044839979794583418310875433410003017152524249588917280079095266821627376596359046824233350242410650799272846599640190293984549447456670354867929661733222695432691030589444607886344296342681450677557006215934191370641155823251280726576005947317698151288390414967771213910967731093976411309619185396860347837256097200403528606370564844482970873248630395369214625130880701337597530700008419309062823518593870674854093547204521616032798493717771482231363599458540052437557883738722882260725710859015107129416044996509264572679242783933490442992067076107645992034130112976514687299265953508275048231253615302757743470768011251822971886854769941140177803122462173143162800688462656479050800094883566306044017595947527989222789373499573453235025851589680181387717817465919014168570485190923717383305028746632011931623590142364453539137411301857409244745262369794268634439832410933048259865795569214051962680178048266497943938847754603658028257557114870458079991834761773970959185404372550393234195500288824506002950907008250832382046861992432864216949018891550943732327843539233126371952632274271405989302771338409453799981039543764240038599345420884658528740755897952064561531851301140605856603384561484212297572747927001426293849234278546860998256463317908872603029081676077111116616224573876799857750936993708973997428448503809274821357735054510908736738010112861013621603538304128796776684594845725900694576747142960170967722193566522158905686106834660968469862947001006999194178111834817433751778233353047785238327615377355845683773443348823782293944626071540292222863304013170562560337203537385681712246882539045834823219560201666729868827633389877831839008163879521680951559300883791172950371642549150002847518723707998633942685201390079938375364240492134971766437321408866428935306237306443426988662309412702199231946489607492297863128804185481669648901944068812273057724708533719797521544404424946857324118087112959035643376628900180410694913080292299596772126758971237019566041974790296889506332402908637426259272188682414454778281131282315965206294646784942616555704210569816547589690395997959180940884586718038440426109436580480985434795648978521491049424791198469029857305984871894089079033705266444462048904141490376796191233798186908470562849893518246442160098692928866349925526207304670765145145789720616846507407841122053994373584978680311729412996110966801109196778506779103857195505007832396177862069163303367022842794526474930711424653716129790297781796556651740037916761345218423449537892867705517201432252522802350671850813220570862630647172642867818968365891650144503363793752974878133786543949730509013475371694585580426941525898743688911494588844340032882960504619743732331984847633996357073030115559666148532419249576989067835757304757075467924755494777813614059712183408151568677403698622159269468670594228440211990402790961146070078772329094821141235211284625174855182865308871940438320625951890640384701486616223589388061495589040880598848320749319786745488278111995207759526445967659758943151411334979662835405286530727139463899343834715885061567497458022620774677568028354142079813048475578105109776946847035439404692937344027076593151499474109786960117813705836805912048077622002337943985134237884603694009903479779768684224123147334792462107269236059124325723725946390540716664190477227839971812780545947996009860055844769376215661201297300394988369061866935029791542892068582310921466385132228297761946030594213411770500398286427497253144451796860010072924287555641485755150617912698842996587856684370163608699883677161976212696391669642406578099268530981660738405078725891281595466454675746442422691598627992528646831344042649271464160437531508887225308121997858794819688730702265100973959806998196980139350388068837214598575755072020257287474107835724048690046973201280637467158871514849134356319165051449533928788544702314088041754816953736436087819557034966136057991346148942725470605016407282592603094112783502085416411960598615003848855792852795120903998515444006046106724157067314492402125750533882417825768090491213362873363507195945765556574640899290378823997382140664383406401210508781868653579790897273439699575384237384400958025787650901296687234024017829940011294721940335263697975218493069580970259170760431999611332608001129350435371581797921867709883544823061834186230091102729887340466467306949482845294141549054704172273193662175578040079724358746046288790223157992989416275368731265397405536483919690561725813239734766513420838216590171994680611939146247010686348041680074565433329249904194180975819001564299676733916341727980276192151418220245273687882264242967211972994880620916429377160931365597926950634128547509018369765367864742174457912394873990021100449194475381518321787589079399754542602041659556562060910209392651467168536915603241647634031546286794878225411049976701271716434245006031015247408267871856896324163630355201790490916014694499106508264743187108235729626186304045385971152045354051950558335341934148348001454288713433258417243946747386436165755503022756571540228667610024203359981320802582858427436148295476434289970920540267937982204353212676291778895519485561605211471470963101581588538733890445553309298065087295983301909580992040879434231339304158183847280938537134956300946724558525625571688861924024875676250417432188014157781624994656981780234433260269197533729844211882229044596383267486036164663395335925572950805534858501868530075103832525287374029496977187039114266844964711251623843451642543659818023073686990591912220375564578575744443224305502250679794636810381174037113897269933512282117866963414803314563946194764574985172031842444770846811143385287030020849239314323582602246812205801495384305697491520808540744651165788238277607992121064987260289405859409470661989068090424287405398464258690504932572653124750286406171732787548992439547653524384151527369719375743032332431639508045691503987379024759873883601041321476308384227607501991586151242420910356749405362671916850167987133297457012437008805895408519399699881464906316686992241879143370241112867149289941056711765835575602645061203710670961449708335765263498708939260022403103004441785625015714926640784511207946784821194152986977675587893593849306441494895490873532724004444562111093445364825303586503109396555953251461152512907361373263953286613874959935900832950496607957934723540054189897680168661127974964574790986210476141280699416507917662419989312618752002813618319553642837916884841137467913652200143550868411725119880964779441293096232046752588773254409536188762141276736759305599139945185782297862384246656967950019945320624132124284878546195196029473677812014700296698939538882060863847211708954643658968809992130173194398424060704505077726918050278360487261643961669861368142865834561067491210851543597204904050804519961529447423918481384011685548253349657111191628372861759939708450383606127295337317910324109565223134331723340148597033244893648188159571847622924993187835752987015596572221431035885380333772397524059004418860323374534899431779170048625455246326141570635218722921059914996342118425223706758970154472855229415436978919825013703247341020283601822369224990768053464585774517753394769378130094722129529916810995467883937489531004682527129149782498078422620797006365668353426181392626834099229607900890866015100595728062971084928999913724396354407550431340935488799948514172883716490530310119862268240650655972199104025949036284622290307450020492745296126160083477577869622160816704021004416365317707820892591267751526427989055432733007648513239998770651351190780667612333594118481929550668563240872951684860013356744624798130074267923864547663271080905805318932830998442336920497264378743802831089262867951510074174763849256744935954249843599074941111556086847358062821814696804097908398273383218595732212119051304531112642433132643546724662910176217352396158462532689167393750354926955023823939704638314797627812108335673969186628558029462095798718262352605497941209229763677601754424048435593339698534653392573431779878368604282068878428895526790303001301644340330004410721893012582597349403614815188059499366873359022858693346613091534826603722711128917472275012844535979669526476004694080458392215373956836457639859386321002799101972441231384826727690843634675461545011059916513568470754377114234525242172918796693386208647083458110536752623946679533801688327547030930263228422083833979079244859645745641870210297669827386643212713617969348283748863653429663537939406996343267362199545502950581728037671590245844763819293593646146993039260842433741285270788353307660303246324728314227431014570365266894683783930511311002395814756122618486705164934940146354756386984652311940452571361796837065158118669893992136742452086303075297135798654533357244504723797609104694185142338412239988706433440684700691543457474765322181886288795340936968615950293021236257130574219396290178046922471313904864968652067981592505102510554270211672511566007456459139619181902869579196065621785691303517797977515852779972637478126225743166559109974948736610443594591487521042915927622073175240829946810184555369116853528410303360547715357544771989489169889279214278969277938055114200057795849122533256793909027340141407233617872412887124152039675420113886482073896799163949738323313302805619527741767564746313393269169546184371313033182099497238260391472105105464908845849569501955770450914919606912271184972934738690194552911192461552358443336604130394541998327985572012785380701748135479555744508258650478688322504143224208787796798390916200366420586947735373705448195092631411681604852925138263439769007064286731882030986033180215682645139388250476351262674485317503130630695153296790753616936586202260542973699741556983914347696193046103505050544705047819216149356343280786342129153859840043129827958358108343118947561781942979299655990875019490240086701126924201231613155356901466238654163727821129869566998046555010827912101478295760899311403626654448062223364182474028306342508771381150759136068913284187442199688280463777051437259853400434730992976505361427968465864501504867123655024426418151213821991548087690548475241775809894420162827284584671558416883332656630507464391578651657355472748662018549175621434433318353493697483715205730932019526281670104706020128381893469406869565855867314202408480605458673116274658070949135543726279537444301010737414913051196672164970959695261636087428552859732699321940494868784085898852193368303495447938309256093038567694323248902711413536907598698331407610334840068788350181559988565524119394563599552724265617397160682244840722594459861862659951450554251779976003388678450516679610415761519846639283877870584736485200856324842387584986415546058373795841218101040105165960912223703558371596812447879428269052170852380369118169929164318674484066779944020317787090899927026190238124369604014158331021676961277656372009102523356591745006872716365595085271045197438188128349996077827678054275651496433920269855802572032801575249369990991067663601428442906585448003766271422087640290414073454121514996330628264016297208850995859011325990807003202987624196324945122772575048413625774649733150986379620015839048593964421332179808966970487303528736948812168603091697584753004530572187024421348244675119545911395610229638748611724003965211069812527936101943382306066595471588053755095433481167376089985946728088541737548900839265241161386751373354279836384879402872293893120889478447488567608706941114352181261937584556871160520324810339472896565196458854728893847204933552701524684990429766180481225028400727130202317832294593260602356949682579180758404949991139106941672494504908968903946961105069310198901338642862921393241792771479888518244130744552546089490665594285730103556703518217316634751076926833335674559158309680799604071970784692250875289332385756116907611754586372196485514777270063117217685234206571042922004190818768137758852896982383699331015214507447471240271816966850766722459627462378753908331547069267367688658652081433658163129292032796308524529391382010287088769476753344319050376006046112735990769577849785107427240016916222864094638416712760516726597146643045447948280322635954008412615855186204051019848974672026371859263025814023099410788104205343068932870118802786295033300071499412398007592479769126522609006136891683806446905104449753823273508441210837683213367784815683232262930836863476308912106983937842207429641983954372874890195271722143841443265177105787434856406764040768474364835648742434938638981066149357558615994181889095278343406783448625134191909333351787083900282294706145280839465895199003218405249853776573071781688263502966417214948212589566974319683699224634077893115501021742931678830393775599560145635789553752158437130243703948641102173835350660581908659531349085763521399986471793492841598068417927828772256538494603390182769247197406194712811603193690437958632306307936466594907226257803618689949583314448491305725855744428313251457590839345286854210907012964941508290903028967269631923346997084978789127175542363495175779406197078276028800421235616167331879821344679437783562926095524408884455587781885038509516873275063616079816037859672870411549986011975832659052089501053068924406227472406693946228446687301790564558120438954135528633912755849461441693602063230137903771016694567185893458563882827722785387318721029677419226086689501150855532385191275570636182061585190036618267077639455597309322837542073143318195035388382781060385134945527570549487197065053154833540799805225162604349332889823760140587955977681492783875724886739396664747121184347121660437677608396071530189640243442511695758849533103464117213804260076383126766337344974872969553805367812259669434157030822362710448337480536568038395824353904638977386930404690447129709982134424323376211975490774938514337935406112173390470983944860290469418582214582753865069579132150360747126220360348471301954852992020974909217719253696000559151712853811383447867273846986266155057203838119845705693154912991722333179315714002580104982719666228845784967985421547632601424640732010129529244541381332307164625870241063817378199952583371834051359429457441215500488807674793570910786980687426782281383827141118830633999055940959182408034234138972457069206555538650068144724104368379905704544097018625379983365564024941445299863215429699813550460940124471993267286695552395417410215677730257597089304813599939181890814194611321167861687668242652419994838540584514832357134592748254769593459863745947017719941308554453194887940774135873210623506887899206172120228175360345059404776069024115935496872212952400788112688413001646008528639744322111255825846530289530534136843951319082499899596522577239731892191555261306782916732599233592400938342220226753135959973539064299691334577781023048600732119031420482790506644957066455275779472224022992305071185804519351002918223689105248299535995930107141575550341676272437203832168952297117407337902690610012108493042571755900294175670748895355774331392550035981913128796360728075272586950097979571861724474104212994203357865865671696885551304220296317010541886022795060872063390202410908267324368050641318072238525793041216676263524379426615413977544199118053099984849854655115509619360587548205221180048553635655720039533681226505406540304789944582901636462770015335631960252489302348853221282153753329140926306041917276456631492389012290602144339554058856323041962484277849257550419114553193131437855126182335930576499595519627172988969545197346364481973261369669880260163910408191500868913176268593672773157677235867331384211941390468545249680087767109050287124640219759558207672500804404696638609589099918278214108373045638754187586534882170048673675342341849668364545509468538319333125151906517630818999509237913506511928146891809024599377808850657536676954085178881279134697783949984420050710613885476876943227744298025938659765337221144118758644759863818200569897913952333521457592619693856519362132930595064216827875847610285427702147460641499406696546009255687261525732845371933268201002589034526317279862895120373868429927952734595424519421611894764324572926981516136231933557158351692482240202738712826073567833864837418200541803560801627721418054606547319778386958092322184706104404715850442787326970915239366062709550181369258290569066401857141203308533645723154931247372631536615095316695715462687419271073635279604234847839782997238444576254057926483945064896884814427700556595664291493191701701880628510678789151349836074299741023011647477160427097279395392638368511678074383451179242169975723905149655639022651648454090872345304560115349306544114483714153914281625364546933853340294734965719681846645601960994222435795202127666149661993252363703911320695917244758976347098936465962656540748850906265422237299906333428974641481341356917580551408983308477000759511512053578399963036191379832353038675346123974138516415356098643482967250958838639281187479589708646525501630827819909209314804379340665636048443178210866589327634589229667723164075859861022116040668538906466510876441741468182062952733832652683570560736507982446372388551264589335730907547884336277532082947621887464245682148858261843671183980688504955837352510305499901644454174267784750212982932300046614610400597630976048866451960724417464209059085804070876715558489521035056208756057631982013762923359335699913302047591140354244604929824393969664175032949944580288919714997498980739406200838024429616355852601707232765092754393847169768124502871418996144727961426769978604171024263449990075704338884013958012869351696788875945981780741842216619437255699843725734829180144743058979393580441535216419808619066485047269133039244170861704240255304211850764140166639432618202232095567858140036663938109153175463233419905157578260864696503583784980310632834265923987598803612614150679646606248362248120029756054959022509238014149380719911149427892904691270661182555365377717833710881514998125592131034255463923034791216801564937058108565515171679364253405413520382904531918655864430898646398047338254259796102960976924547368620080417848243881587633930710316467818673631434037765808296431520658885260772907519727429327528034407013345730443234237963659045821642369575011035517238596075877015442394843259204470735605221309670405219984800420404106890575033824929548919383429843603793421064182238174241642296214374229570146751086159392035461982830563513999593625656382670071739158304645499589634367692299197025722715319455324352094290570298101781776375215450359195096267754944435497554247440164804731007682606949662670984948784215818823323393017179233515724023969674386977503391582854719228590913957976287412180118456339814611073504883392586003901908469121434335043864102741849427563357359549530269052562701559842963583261605888024726254331311754857806486208855135633135982936168999171151553177561076659508324960420890507529620908181986051525546420384875660974072201977936737739947637021448553759271348278541604491878098578002321873042268328363451591867705767658036562351474808421854549486308891140710798711238785877466971671139321410021373270463558280539537982025141497705099119077918809180351084259328600795018832705357940730643081665792541020330929568677441039433891795820029244038580687991274516430256391027648265467925638776497962847049783950815613505056034039177708025539463006069331802376852246637496665598371920295715551865618456217685923291256749073998757017466278563620500582192649896507940991973833024775248617115701428066435689125502399431854797571359528745603215123926256347977507655478412541997297590977679307441457020632669699231903930705730331125726545653281340825789695875683872461537456394241710503859445294506885490760415202412124451684707511931126260177932103821174437888645030822028048174222148078179673664903004597295900176637560994025369206739119636571089508927855047848464885943397730792170200902759318887752256170780367288741430277760547721451115548343127426665353120400602788264357252036760017141732492186653111116459059606136269532871772963981080807120856202894305376229241140656858254822807354422489393762545575421091968842513480512261678394678261701849523789194740723567155889509331794889593562886512505303287011448217578213609938218700919559736295890981504503475097160057329167082542599791981412877752715094161482767094966497262748955784653238345127545057280773329448259431513454116264285825746750598269029797622220105190670698217489377308919637282269977709392394194555701588161076121554710508843311731426807986940106638479980946215655653901132268362331835735444506910820054718205880688990394334771855045296116377198027747925421715810514514088092151026714006598415275762371048109244796407865430533719117662571176644620020497678664420502660281547802255475368184043187224954341480522998204436515392830993925922713300259749816318550458111248472795555480664195633619046664539194958317879591622261180710853645056666102672196363134300296072440888632338015821297046861614692025201068205039427389221467878587009548534238466086147521177786795008656792744098670756768630995503186627389495780846485775999718276987783120948616725585834019339509392762970800394162226914709020496189477370476198106633393190648703278705798378177365643014119464628631130466441417991759132944659813834719871415750835996591195722810385477297391508307493229914256463461306612556107771336487300032219424650252295324626308115866809798302318503408296379714840678527353691316868590266212714787775134558821788968757761115016503023743671113438921076554179547373493895105829047626848614656168528271670385869091934944186527904844726448329412330086247121935678555980470787141263009469738589963953469540208885348902387243400738208957096843053918800631367709291609996567965200163843631026799207904824590692453354505827144745446262950684845325100270361909835350826399759971664716187680360128910713684423024789958992968538364970736526833459238810663729661358969310963446362533311996415478881197236599056165099230861121087195090257393654798472312851565895445331465356291173823944233829076456049799645191815603983366481722309632203245215091743199341728448815781496231383119325124757499939561597319150721410707967895811152562706572688314950659760200460688773749886422664329606307470138949285278460904172592681881210037850700970304353898980867148850657810478337545558726167829835582207322513690252010816838561766930740532531791648955982564626065533749701177828455961105772642027981009499754239651341296886770929908902042625984306120230878051538058948129483434975229278166386055379889587474346656012729520790822791637928776331530452745106111517503936054109347177295683690934415736479227949808489625217064084513518963338048688774162486418847737025618084998891805966843912186812305716563157978259566750056607033883103460709876023640479630836748795322921998271646383523412987307783219108200412878067888200932618129161788015602904502477459282784290303898974106990044571635897326305455745122186387832500118638168151964632680087989503333704973513900878585180311769579446505065701970756981153457419593323563797866834175290827529247634307529786088335052271105058487054346465766192211697867002465013184038218726587310831753457563429140673940661070113667231619246230700842678632929391677456889662971391041540451648603391093149743067535576231196949260700449156676216918632249239151810822995855595725673221136829208331780691663930391577483500428210957029006782663354195193373533137609608264386329873838460101987393839439152586091821353055696563237917456575078219945869401031254853554534313632487975296441215374850102828240665044906882932665291819135981707985267194405302960168575297450968907131823964088489672074364453281258542430862743597580293521741859706489746089457832338520753220988549868697484786720421147702000564691017210544579967060333711835156126651096133230422008825735026837249125592393243170409448787922235025272952612453823087250798923408176822676221914980751574560184742031142680241633240993850459980588067619326592951781367193009733407762479722379761938099349027310800075712160909016111132542059537882143985761608450987155943129875643635510363816523810299506880190970876183648831232688894200955354031768864827141711416237392101185859370925075731427497339265490005458291757731256868565072047025009616725679526804415701986698318850889865171470315911016918559107218509454076029895699273550541991618264699983086921942083514672226288408834734059582088225222796668199954756184038587679320817895732681214773283655399313358378118237552268106344137973297825193047606497421820486776864446402667207457639941669849750344195764657824060939163187632185425311147766943059263154554051517592637045619293355856784057229622328699836045132353322530895343421033246263743326047967728267293436723882333723832257693518563890821214339728169503484899118973858677600902043231471221090894830507125354216168085662493564190193285845132513481172381766673738059719974799317603885336367342439321538217255835879787119437792193458540854304136865843131215281484298237885641389571875400251274272850199295473178259441035332912700228191705649903388242410983048948265701282343589628665556809534249173554271372702629486043940813025321176891039840578554552932278432660372538421957989321186806723656234014436671286456972564461579287079546881038369955341188499890440942279622755617931535149317617678061924818807457875325526457492092633805653398439961295940415441049300186558416516927938922962181932489701153845193489601491986841649737076452293536643954638568655027381742252123970120634950245694072667833639946795980086761174073114078927197677234387080718125374063522742411763946184572355403270584288800823616915111705265594392332274992329910715008250606017837596559522143162361668620257194334220173352975500785913777307401707066475871444392840134990225422369594326550972503657639015770131415547062652071763015020746111388995023581239835667023770318036266604693707671963040525259894893104667794625529000539571249359310467404792318214035820025200226296824896047898820225673656841697997706706208198628678508973115690466246586935410222157166295802483014087474244083936177051949363119331139726022517785817158165689180854778126644931429598073088984034339528178344016512338514477202616285061338268589748964420719900107039212820708140211019068685761204189659195658078567559669028075087217808502567217593318672790607892404997116067899522798125858197955310963368795438114939997452619507247182112443248044853902546476483898336811997295738317642092580787909484020413799588603689294399249152839637207304674838093681657372841464252730880717889801133485190808815155131132534484011144875113532571391958535176650435245414589522933749170652998977747735526941446438117058521681668721556130640994810001231469305921398470610995729647329518522215872145469492049595257390730247575055215004152425199036733154378371757923210382367944335125349862924629473550950646014284161155498454075710609257407624273949020968767007375802024114705617032661566074106543439635381644889168641148434865548213025615976853856007614382655063054584863386380874803099000173650277259974604758740963240082464880141334719779289030955242677660846057085911660234752310499840378545721177488588820497749666244540330618024057560558416567542249821570079534861060274730672478253866843444368634587879710791403052324327265979502704942646483613827866290087046769706979667749342858877833843366011545942872544012606682538712801359812640952384388594013177544855851200992935925414235365471547065718258328270014552105663193431228105914925108420561630824874760643002217688389422201099298702999302541286481881537264457740151309001495445956672266995119216951127738336531733002559740056470356973347029140884300735997779520557322456215669620766419877014964226115919789123074542559486487689952743796516978194191221403235169619036997466357557783059463200869823584034881997956305086090840666547419550279181128321132129635225753641083027597973191858713163160090078282048287491928320921662602965614237013184175381497457300049291227372575254051810094914679197049795970242290796422164543481763902253919280561935317378648894776943895780559353592247117660522378136386561498651841398288651892424557922017232445116035330226100008628971419216139160717153732161483957980304644880509511785309963165527064369376170424095216015039710111237657071930626105740274002798047572247022222048456338234778546791242823329661611642946835417896039743898286278762758931340384046732783430744414910946033847818383224190569771718358162869409893578405798431932870946474138239130759647495492749901316275260748197514572116933097889904757870791902017266843069770829701680512526852320672415454312834967141961402511626773887093940655618189092341302889231956764792814322585102609887730241124059859650472559310038562522533661166646405397645419648115503841376176492473073846196342230944593557892167929744142774133074918561238721330971499323361882332124968681395630057786102437311263533827818574244380752673413059263460412242272483612764278221643466575660103235318872497324425692804800482661428009602130201813610598313751111620338451906132962077856086824883991179486129053541337952236061688805169037664396167583800419883676709596708948508299947271571729880105578181682247770700615146264567539165531008818479644963016655172237311205700804723900197570336219559853884907498395661522970792248635881833022299725749601665634692899564681987001957154837804340518907995959140531993759047592305356146218195122753354623430150362594917804767606012595316312354220158301074046608427433566658518858781653313325562824910661410405264690742276880505971831687823946943608197062965614036279826915832608652957390381135225059587847164809438025903454649056374201258501430790096402142175222798919437325441992445036760939248677979838665213027612518603355640977774546706634929067677050481896939341603300502272375944654522160395915628813375254421885997081836472086836072796788193922797578366107404138044598560452047456973454192235180436253925577984810001717245724725005019213559940694627909762074289506757465299207991864310907964102047859285260429598335764366396024554803145723227681663404615355009393032460773700166109883382343446873406584632745902422461884217329459761730510729537141292526825077409788604906666923304332698366774691658000857257588280135856142718617952983597757754798966957689841557008021736152265364052407807911203556841627967259193894571438397621958323975358549824446290749546571167220846461500055826925509559576648938634231962203313588182704649588604628990514299914377813611908062898656422707313050389989054561716772052992424091264416144589809288800051020346979174141016442458703128064692306532013229235520289873798662554665902545722095581776740668506036595018434231077197558426509098023957929158406579741612728176603192586070529302932842831211742016301878659935351910217277757897429502300221165276118162044446305991738794920997238913542894254189092822343412625354612728987085303808389123308705897369638959272567024545316355883161368770472743953013928066171480161237954731412435470476325883085323872920759852921312381722217214725374304550955992665238179955046063508473453417305822345638167565805542182842256518234285284141666008166869935819646384972188044976092130073612813036211757615342112528481571280616828138145805022362939676001207097441890287209391611217505388485520252483490793852718358699071045519453470918207793524832836351286420662991820644552537677531736281301250190849795521568914865629834252200026014861259065301052507480335916960220800235935904830328811356032485267785361296283606430932973396028953079851877369639932006521565881382212050890012250187980164966232781538756934496445978041638452309149769815315583618338544925216759512697806468943610519756395716705294392139855975051592197567075131707009361928425327417294216601888574021935593449426051145843342004291445159419475130653193671985714350923959720310210874440265108002325420645663421866731537009650628375502213742919495825452666117009113378604472073751645607009793265802646038986498439491234171376698128831823151954883578817026172572378352421824027783054646180819037052797661091203450944649171452271621418449707421975727904520131521698467323287078259251737752055004088514232445012350654123708152906978848984183939554254693984694792033875168078796750785642610828468867164059547978834948173041310391476752805701050275608303609084251962612176704041561252214907113478982223309512483084347605309568302331806044415497189033213653556428452173542802948374123652632901222426784326697581662891711772425386767358758435981385216951666759856120788407986475972507303717583532780907692351324514887119582842979821419067108836596310856857355117495048961237928600119303832051507766865726718061708638289097985408929874745970388678518792155104823100876529596955908488361462665590544332352898969407384818265146820104250281319373678779521220725274007552487001438441699075893352520740140968051426925422648666841117847850743918059977506577311085889296352408769041185303516330247321777628758986782792795514959382785812334724011328247486443210456645364935131800427017582594147872492581829270224040412321309475166247627066264263200379299691683330502708468886582790916265494399764243652300306795844368598533951929313344130577363451233233191905384117602733213883749357716474503527120493746054476372854371366829831774391878821654457553793329417104980443602505995075790139706162479080811052973807233404268276701315139898567855696299863914348615798629834207637627633626105675360348568636705098438731435514005529546760225161673819962134198636215647411378156700254185662706107021738529888408151484717127372468600580751757967443431339782159545288672236251801475561537163651777407727192690903421224781183370977667304364110324193060904566534474120312968503986020777196186592867442522493771262020884442706886965961594910378089443818657976605711010362099267539887405025497831299509390453415452757113612785740263235912125030602636948204910841670386576045276056887228392085914852492675186648708575242128217348356670404099442592926217145246464574103850450633375936091647894741486280932276077503469741133905207679062234378295264306654568517530905323684750992847439021140615974505973692605440546546693916459808977921427883665029439410008791297286986569094333479650486056142656155861995091568897187693435271564252083657046577773018904617838386582499426792703741695283703284853750354840679570552130936073033059937946640889154386005552869522858278970060515002268189067862111662330039257300231572832075232828408291064994814298295079266659204791735103197438764009362020090716953756612961689129665550771490613670932019405031028977956905155935688215524604495082280941409730157967135909838938754651919618815962986745807592993836386052134434649553443972942975237868546726548862376347664413165470806770507313643130621549414504986307921436288529653447298720382763727280939185059555895026552815491567634141753082630787287151315850353737002060865685267099990907429069503731136774816315340122271628626126730290585941060377497594433996102358014683868429258567696748917773356056502099920234928330983432892158886801733272664896050390957223749680235146634750145029090004018785187254281735933154539038433026315435080347509903428271867247835414011433854995085892077210730502110127334030835554735033636811846224041804442989600533643182683001808105597268519697433733356953244151268822855446003141231862404099918641895653404266396782184465647981220084141483824720619362151900300984337978801031837131632250964980571277573857966803154587983396676528114294912856195827012916658924426137871418531266386132571240609383458927078126763261903621726282620304774626897267136067145947625992657479621772097120024066019110683619050397461938162167842849426467422253886414771144981314189252949439555684028408410482221658532126156808010259315609622293280383559419234778887545371626493455142812091271884395529695944864826626904230747751957254333658677462708617937456808375168485421723187776155881756634435745486988432790529275015483760669067169396481291953862124072090712610824941840325990053415911273257329475590747085978563482344122617328008429674580190280388647661708179564404026067304219143356013769253322857871957994933715405582159190148274685408132557347414290049469224979373282245023283508460525393785862461748318008303664618430417525138688220061704895916965905138598694058521322271774637921079290918789048143769844781055311393226850916096609983164429432156641916479380144334702343153073981073177237891023095480640265279495644557919966921815800754967750268416836648021318451786380970298642960733558784442908235283797187983840188783497254990739889211123189444913650238352677190827749493996367634039072516225182425707454675721172952490503137583124612568220752339859693779636002432741069912271358662613719359109900902686046532086910846200838672146921311858401354267868736151472951119185086725181898806832259719852884519352529254785013463506083029152259092657782938499784455800604092837108943963409955746181446789704037670069315460719672500262334312446581180985520292888047616588532977298525250056114764082950388367019678481890382715704930588553778634994299404068768632749200506732231580167566082677691214864227477699026218486243685187505096521963482102275472517736319756233257466838909248466658699723584745122602997283381331370167152891878309933438635184334387655049379672270648037219299771666724061203164833212231282879652538614912578701275884593797889743656259091041167735737082634795995875643799714737725645127776766664729005154027526968758132053447509013618884249508895712427178238950369930930200668445519961446042828160044035977030484510889640956994099344406664696851159779283943311192419358150107842849387346798991297898719540134037257668658485759573615296230064873086832298879837975420768111540014768832194312857940811720632627986027519060412242346211606424979940696551579083424624678402146624922910442114696479120842183829509294866386942542521820395198679358019375412007024010282623647535216051373596562983729656722383217302718841068215297676795038857007940867516193022893996495852991625177829723760690387335406960449134304619849761159414933289166319170311609404521503613971036816261294662718211361283005015885465204546688032127444663941657533803826114697207110226423344850493031207484306148526892758007100801258207749563954575932204626306605826246007829224350318791164754554517630554981176266470970444957395485034125615258994087357465431963627633036667905466220944483041840542611394767286270694094354981373143224404865183880968173698870123973674991022059562536769481696559502639022942076072196190445093458610386865266137283695225957290729820759373103320646389507562026046717859870283341935100565523220091886817243398289673156728440247112986171114409671563371110398180247017278732074360017642213612571807217120091177837496868665985500412607124480131717863962343096367845593764300054994627165251458850691522615934070038441930938163678541798387540814729399206988841731834965860784740989164581157172543915431511741758751191036949362216396450271464745763077073750291999470966902986565632181886937619825280038837400595682371641663031315158936787253621116950098998396100916138204541175421225887261213593717341689386716266220582920881573221266225510338920472932416981997546952100153041325504385096406087616056676469974394268416448404902219638012755485577866404288461171690901980162769922079509185733731897979787232648660730923779627291766766830111198228051870080053932560675018974192447017980586028844682494023784641448268407274198957848500738717172621897922946979976333428060424252078125282367954770880389208067644102355440211819126076024245305882311038428511117454836431573770871938508399757564792428980815896909730233540690327393404598797894798454116676249800732739095453266420481272124302338264718529040351872539047269888781036148984590789524420891038385215627519332484456670151521275686771519726956474780795090387838400580866032848152543185691739202773217159557108145766875348127111951049774529040990738086588227149768857469851761040959346724548166708051846018318503135978820897596690651462879771946208082908985665062452310801212421265662456876354796142201554142620185332546576513280854676033531937920949639143625740598090079529158224718571039028034780595791613334096049928011109176502055184804742463084218497919582430249308301426977078574503483181078195809422067855781020979381602658998477386316786230703286614244365526044822951079621493662036217327960101798245658932694846310471058391858598336172233218389802131952391001335827002131347164555134928539740158201987623377099971070242014199933582429127184402352144558516287158180692529125918541286214546106602414533901778269346333829161336830746455082900717816202299151899066429296135001894721445958436344688399654643391241277483343266191269784583730459246387172156046272280632732242688957885594689704101050529908359935985777568141031185936408791712705075967120940532819971074652418073457807268816718304967501762285564556964180231379970648350493488353101035421884420175444610092501490580933032088082409287664786085068099629489148723692989582500289576432425754267885726585488434389180418397822263550860643414861089648110987228421203442314102483790167929328829613283629004199533325607084829554258251705007750123135271800339550913868701101139952950704869698092164135690079224719972108809657522648467321852377170671118716895009910097214071686329211327527133380417245450537667158544087270487863752686446001771874969215187182848519652323453717110959941879172158237252184380074992798446514213091192827626998313665388060358724526149108514123250234759293706322469874505097511753853077008320221146020059862100012158744567857133262587526075789417423073932394796566544124710718320897635206859311501614776341973439361630632200809953194652461865981550420284310393874981592150305651465807014202274599010225486532897414787761915387501278352000033890788856217731373406430174973392460303446301064305976900940041300743503683014144811714881154107715622170273939421579995753637400568729701071135325771904048263879343679103666450135942083765954404666187505658754274573974143373649012208368974421453233882263394274422450503686931011891936849188725036695947597203385626844143972896460496390846009950599196515809665664071795211111267704371353301338724965257166137535060692805235585673835103617956767376140463670750716840930990046728847440402583739475933468311024720883696348019056974308040843291422666137325650956019510579658953783457758600598464088638042204191902158153194490313810915859791596720080087865886686996964529273082804666390333633869465805954671694239144802570498860764810906800148421854161810559351024309930343814491439037578430938813071750669990594829105672366156506509459165928498710001791244737796762550042396824969842343900012092939147897890779006016092483800445966657850250792489291227173074511420465862486013878669785895984389821994544321993522772042791630132287890102240552783801046425789768095836883472635937970285406747301416133894433239512152614706415445828693296591935063771212933291119961765531644680338219318474966940263384299081174692411726097961743511628738978776557174895427515398812752922525274626583975392649261232656781060502816854761903937322948062484369178098455075882129617609935538221094914282204879530346022986731112126607863388819990630769003160861497268394704278683275215632223985110835148221798516722266819490774552214537455731200281441259113642442827397376512578842145622269332823793771579953135355609708817493647421029289769582245998381163143578315622436494193008624758150809982640658355583454596936231302783826804377125492563488918983396467609717901666003495820464303879371430544958520278308524278405713119841400305038669217833054086861554331613245872292791810376902786404526320121470922599804086723761252070803383437961213086648832977299667723964144588371188309337645270859765081106325975882586189883427065625494819519819635510724473594713754995149623739803789963691330833851458864566835352594390402024336101003426567920151740205580756323866711052294804172046742433342301844952480032473182901558071654376122727964473326802554847583804442498266740108772863180710783114855539425988527813016131010071311162316236369291228977653862067004064725748515634981346379294154020797334649918563108492574244962487983283569595370604566774433546718771681443636543144389160697665060233183230751263847354482324697284432453828207233493005619700509289367679818681641374471358743788550937165887355126076639539238380628852330593343201269211882110350324595922885452991718413176256147065600645231912549511817115498769175600747852139627581776592258857796215444906398532207939919245246350159653841131636559321136865578160994162251379798361642361188360729201116268111331400620413378920700994458267748875409572363933256978010518892796588354747974340839810159732556516634060306495786685546312285671122306822085748479376894452438414768281553838117395752450078227242206770483317235553239310776228335831588326159972952463107818936464536404400604231947595667840138806397414430150073612898437126938159558778488057602640513078477403873301825279935389286398559915661451514631867203552429400105570228754215333889774402197044036107611064976736891053754607719160303804853768233323791258309479708946882941955669772771154232408426336161638350662179691646318919536922088331976631436051485114665530056845942692230180679127190615344947431942197234932454669191842817371721528879127321462561446255897905919378805770942787671407695354581464386097682389160810200863598156883523277943706014907958201511621792884280259030441252658322366981559995400568591915508215092766586918331559600910776635459087749137754116925365378543402462078795294007860969528960937071723980931543878495358461313326873686789727723185182671538417912108301654655981734536372486746697084345577174188198258165104709054014251164120557370798027797088624915024818270777342166266243239740000193059967470181927365622024030232339476913939789246316339104830276186766487878798833637656081785549194590232984053250991109471418243855918677388637885170398732659802830024293951434042500407256612849878080870829060601285381104664586322479726040791249784462482976807897193724229968144858696340201756699518996264183114202711346036332188509670515420344361758046030860485368614109824380522722274794322504292811877352187703930050953836503761459452856914178612471595903114433835569461680607809922764510205505910327511419619032751485325238120563452723473353022964555219461034638300614111100501766698264825929725877602201652954459906600930422532558065308154453714166656621930942206164067519220396046683042755446241775163251447122649869251676339155106193634114344470716912492676880701608045906997851686252561471710692677615115797401193465885051418837744822502767666638901165634438777268782674275142223830963801128969673846288648819492562949369220767689554590589989219120973413623354903111448815415052938760055339132483350442398949310987090008954083692980554865646024277585574679226433674722757114666190073666876942723582896933210884944187403252682434231544828430659178193732415085851465076397329986152996656810161186171802361405483106714639904278233904885763442588559127342352210810441648045162579701837681827367517767965697255074823990490507183854390731717258622469693649291036167451328390636671192271163938540036617517847444787194304202659710553276761147614053274379455612063183120624297045026798905633438130081512793924699337989525262049875648452207572849616188922390740584757418798732601364700381067467786145507656175339546417649848775377665984480549867899663056128900090562052146268020709558774190479289803378977704076429583964588745751891621096261905660703752509812480923949328526040134896798146180888073775604434493337648981397203375841459740055855724704292291934491457743111983850704057381663634107883475593640539242705588841367022315483417438421566076463918129043971826866305721490383481430616857101290661981523695228577016369542727591902849743981737334276023933652224767579983529779367558525349715848371064356579438112126322525208216157098234501988711139501842466773000885249783126204205490993399719446602172750536685078042155672246102907487519331271382985928919128599239273446075780116417464994492829894372712555056184075661722633319201280006831123747990514921832321052642048745698997768020900382029578201945700754456132350190049171860510057767021360959173624695530921779272039057808833054297748649619265140314949299242491254603745966182133048192495580248186708633823810092707491280338955689992146973138414106491800986942607330636857764330267412261078329443749398368017123975516648904578600534439141146542928043846891210833024417261399170219880640596828406173592131537138676633210061751798122356784062875737084896353751060928942081358284698244551760715285438672034487968828703101345118223853225143445159287382086022771852363394801007584989539323481243555477428681832042385678386047510216615297412410920239330739151513445488505302189369540358147843517453208495125341213217402595056616611774022564422887345112782014650793443134056510218888678584711308679447553477960741423585971269109120871340322262368507274568748235254288692671808947727023801643384406294945578397305307270444478868540248254319626958603159013695405782835075729471543187919038499204192972598123367182788090388283933548080142990190645103289911937099841712480506022584735145914461723465387964147297241295570863509963925198142815215953890109032908170674118938499793723472614264683032671696150605360342193371428793349394999746340444538763047902173419194169306812416247335642451207078011307915529203377749054388264503939182126023016934093485410733078291222253714569488170113169979546545017004218744408716865134488913420419156084181833139630954817758643246857837362913253683024611077222626465742807986569093913667862889819988380374329844119545905704093915299942508058827350938783420015471060353062819213054611298579082171517004510259043806738783959902031323507947141990219898978414812388623374233705892828608778020047428899217661799300801096177599025552823556472718599949578663711347614967593516079727258494454588846767197960283387475195263747788336043590271116430274014587487464007611330196343891797581336437804610215220485532226706036282386138928313347933413714261865602399937828505338785124860473588758655134947673692716171917580416359055071485857465187690246302343882731266388003126628997647610979297767908583410997173972999645694069927119065564366321034699206959663534780646773585158696752802731148878423176956152502086319339883839213489384329606374548289303115910943818212934222601365943284896777158229079778397505165889495642921280581360771931083879453197359869586181527788930138243387532436456125609982184461405682745187806180624410381469464572903223659882669377159957396674193264587181589577750090569335087088480905347988884339787235503660030449888019124420741712832080067089980303181350207118036287875584845215178284733470382647172686137417505983668926326446663201488447731343320358364669880862584712231223470021691236920462888851356453184017615959669196575297895299393322808758401101303467808081759030843080480828295471283124594157386638150534261776059762705166140306925585629155243395828016272497028464208193561955293164125146141050955149698316541442412836732962955859048409407902809409850424943493924886507074212262031238594144805077436033363541060856026726632422721444758631039919114432539149699210314136191739576090116807626787825980469522665563870372983821305066926692854211649561965612659464112636373019071028267405285737090599023531610106957310238123669923242400290601272904248431512085243578888031872892680157435646710581953810531536038850917550053309598048866315963701717052170822903362411353685641577508770421737496981472754130719547496267945488782289775911225230431356864233639298328897957485513255039503400569149204412425216144760279994532557179664331175135036505864380509361803339590242584079598288941811022078527781502440728388259318132967641465151328954392599273735554209905938435840008424997815190710480360682894215651544205429639912296999514055935387427715454468504597899388912500938484529808456475772973216286127461591919482685790620471515800293228442172958133381090124528085273794742382207571980622101572868652938846341532546051491458139638405183277861432322458954753312541044965357924781466723598410033848333346632416701030707295895216546064004891530451925142782423455414149890392093459480331506366633896555919630427523704021079413542417145303372736401177709927253919101780814719383840669387957878816878775810930617007037582674281233127043024342160559517151493924968593943781132754070184666535644125774018849396822378860260059941104901599430460679513711571818193812491911643926535028294613404419427043976208171756334900748627705039684186106888506531816664410519516878807353422857948590429383756677357649903494054831454724415896610272029811296423643397308561880733254378806885064037368095385182070075545645683129134330582916177259446979556033682183348069350892590866573114352644301857192557099422493386551066537803768948532093960187143689069516230278349694150120384032261972168902952620134598574906652837160625793212328137185635504033907419412472054789876277678558779749536354781389446512162266117425786787870684468174303119329858201107601807961204245244896490638250704977944155902174820530638945367203587644696990398974205519052516102993061886353630438388052408246067889694533334995324644905823926276001247361665582288616176087092541055799435732386549058739269887006672773807207704438805512534420407298238442000485714940957893242765831948833414648258519486992323314218427723339248423390723104632423344902567308960302981766100300717166342960434335123280408823338589259339505366047199750285140892950004801012827966727409991433662297672184681397440441586717501300005395344862939066402160773390837750505989409508003213214237440749191214844074921687102254610359800624626183240630811445298795768984765426959622963862055565499436975173905542708137408451305863763524316929637666030565434100554243098346150782827983346107930252429632911531909005100067042453921123416535757408726590074767646399588676843490547277451591872271089837058234007705568092474191520785113431660942499855763474092598638174203456347283202899668683412645869729888336044563235689068065764448181721139205819570440229649130493676575551296034558051661810407155736656098298739811802415848216163635814739187405054472260458082264566829016330865677002503232867950927203158639539110948600009813207107621366409499784780891802962715224846759348802481291195407336954351211579137149441142120559502201635915629778118386974633993413236664179991244023936747102657464754095905191882410272421232636096664388146361183199899544572536672415242692017032869409916912153400407714673923665833451378660406687501303773187051061930534365517918053948335762892381048321063219117939139293007398196785001930375474264396973678852895205248047438558473208724678028924866478378918519215738820078922731696615322944661376637483554730539849757108527066662064727963429276260262701334878433633490102809647381624168569788553148063691944897188106945798885722377024161460374933731441556614651764060067154442300909264527969265107027389086805442235800364362434674124174714191387236006724985338198923506607986214243388254442930580409945198416877186294236678545859335709706284906019757451517657103977986515807971243919648464525563750188252861733192116471233741701079236119232544813895733855296100413502397320185383083728866532562101240381574981083548307105483354059282410351052967911432566823909891841400508967161684270993437143271116304084398168188581843460372752797530124882613913635398007117110246395442677301334842012686634806260943317600029836944618358123796584526503390758975479136504407076360122365863120082636103493161456796068437425761835109542586843740391200165525896948803224035291031782920283086724925838695796836480816283580586432374685110575186024358879827496106344007432967960867285969818961355650215366201458728880736290905964505873085932615567677853036623264241787601003357708303142449031662561445251598924225169333456346606356881687523214907187106284104483784716658709175009453210988806434031171005020024146428700149824622694263375907744263801421465571616402238785213037524669105076390222939547738743096400211671354831562650101204358250095515743039836088457565900867536638431400685851401386045743082082718633616420761777822160247089901485776340918918795356373786020756725444487954903597629892882529887297810806886183017974648724221804508028202619542283304015662049366192069554165191358618048274198081749183897507616583135993356269780191149481773371425382268403485289288161107337664188521237126079300244065057071084519150412454393216130060219810824461867085147025851005060137623474667907586481716045828578601602355586251695782442903970742703561545578543707046607399912283584152256166470737815672105575488743211423169084860030215910096554391195452732427666727402490763714457851812575077369307379843524545438080748698794781736916092239252353034408491832496479282245844903875207340685707985448834090356305381728836002951241005921688892377561568241545868120060271741459904654175967002061250106246510641360743352663683643481285861025699149163250188426041945894245024558675176799347425524266353638934546702918137099665538761723843019189861656045235753583646789958205803973643030547985008373847108911602803630199818297830583147704565994437602816925544721189803051625726494709799318545406746440899670728020759682412291545363506255867155656059364213339132635362227954001251917579799138364925696813653766888648941399231491704693230035286832500809736544159472331596513994248972834130414317287342438638403158519224526829709889064992074190754026222711674964879666510242694140652450859400037857983324793979087214979185370237596004158138514313653086553404293448499942380722129876199672207610396873945522642014328188984767775427302523823500138364154015220635792350884515410488019849991046774439133290252458180001219704596208134403284081656005970213639174392347157844598673816913243380828469389081635540751672004400077324596106982338692316281654305133515057765364553141872467377641001890877444975761006568681338464136506128436876949861606760613061669781775155442941919334002667724185281851576337553985314416459955489003532807126595895223565413947641732081796929235819975860925070487870917403340314982584966963073581449958014812304616741446931777839045132882450594392123560067011604332868878799084894170910995142386741655250725999963946857099307143537923078129871617232332864550563984534130159490604029644845706689118030095503000595287035192438878922831182411778295340476095722578950168049590892777123933879971549072005504865196149825833283026051980011116584706913374935705629479845118409293794840890699761533322624567970442965686539983516833771367525231403526300513101051010898010618932870802199972998621918836139964492404429364845501283980453744901468526375545573831262516594001992264057796251370705151521823667046540553558821888688890870572998956500923362138122838976830830161859034849874652179389595133969737227854182171762663085067682261810082609921097286460146293694597393457407010174413113414232647608662174349300803138547018264339594319076642043877926587669582959344055954392924602766127963175791783705464872931205561670510640451241718160020904040223224918834444575016862245544545580018352287334826075173596691788520256757649971648975983611318300009968967610823565620945422708486176796321379329840717486349572384088152125396284217373284166751585374127778060326305514748188450081062074127320420091803080240524905344328362905615259083245402262301253877770605874174009265939425389298854375278527418111593046343986375283024020481621803436081070536803883281874281635416187475520333661721714670803192152723432846351469959836409908276428745601071115595321782578833894789112645238195356004720064654120163053246601909513849241832576417048928262132064034659139413907738835216754865682352915726996125610436496818684277968520948078957813676009925023392631279492599578679680529302347232056902233793126661015174619846434777093633706203515431487662582352528996866491366742844999129944211789060565558927260695055494401036693740008539383083086442575482243291927416094200390673832186178263816868233478169772888122827865243372705393008802871081497629576610343429934585752788199685029358142180524571079790879385696834888332699005470771904074937804157640029464109312103204639811993510689391291884580164248984499076940060370775270015828541769433437309466568453318027519484430892776472549315093899889050546882604592356545732597646237490712750790707492804915839244798865015331772945010521805120141800516278000202217863387337148060408712057814251508107762536159761302322043145826634046045112729773547609951773189816442792683143995789885341001955396499575609552270842275304485828343496137559165358485671752761031968973263558585584390823284466888593737960283250137777189625729858612642479070491060720757817295436159521766530457589938356775878128828043356519401390457100697182332883660132262438797308885810079060608549633207811028959010971378247801852987426133116908186607862015617738275288937791818951938869671215762017488451981434117492541279860498475441267945401619555221111462634026977334558122520760221191598550351272418374661682868385453117014478368349502895148643569574259484735919156664016487401795670356129581934527044191832182441807026129989645286192871100006912498405317521245054376305829454740043136740862425656158641901754659056873370428505504486804830788643916356290729063339445427412509319463518682629869202100853413276867116048282763026669526296933082367606315902977882591768650988471826180267941799449684803319023573154834660972057852000631451737318196690262330802484651793275936550988016961099273640236849315607952861255711792649917121725535894892621553671076423163704232538340889079037354959209686987282150643195209627415704608378251476845802530786039886462304166192595379156189090831025249803503232859839998272481683399297827319440605839959768174874930090518148481900918977871965603410137427382290770377728509746668610007523097271708537539563859358026318348648592094335306616326859329969247495866519863752416850257880206934088516724030796163749461088715113289831379734714892534264121237528040144299028782006924023671768174566895352807402142433403104922779729679002204619900189001566479568424116105149894954211688198477819643366144143609211647153096077987240634671747238699248843769859841337853886551578439904307133920992815615864705716491555502934370596720505182192335712309210675319699399756810915659552359437256967179922055197766927576759156809459511230572152957740543160236416134654648561764339508015083329747518553959713875317005609095713427375331031024813874434084044909185481747431903871058939980212441071306480028197106785622981441071745341723417124619327664224521100400994287676125787049712528159193110929421737611322428897150555247541010671776134397435976030695813646802175146897771024046319147645049951867554374164969217534527423269556435737307194366723518897679343241615722649945965139442578958727893565148095315225524054142752726450022759307017059908075299573640200243910001497023056732666732047684902607220707491090101601644185801175344939140721324692608423454808766950986929559374904449302776227226527898342772021659485474173518904996360317236024969741460636577400609201543214557335830703962169350300367305775920314774433553406424474505936952526213342827927400122362017934954873057290369600903649225445502446290677379264904413799641479795510927228318546841525415357682804086221060314412237628656285073916116413723341886393608791041634086898312200424987748384501112500047153040753647340449548427752352058853941170145274827603879583003876548319626127752800841479319392448450380741501363002030687825766845875380335395654122780100337697367933197321555694954655223901515391242461789516738679736874929037326226562747146848766108504187263714586463749802962132648869581943513329762185244608200846059345208191704240511817038466433346845236937766662951874424465776499014352281614635671341502229980711546485220253370015872884265288568433072354125969075470494631445580250714503595176777140571273824383304263938405660513179383415509522414497202597671125973174424863556138454510684371364129495312852881229582909255338774962818583202046187095087339167153952182845235570342763323713244686475702464420565170990809449906164281509335327442862256771257813685775162948875133622481496274140973868981290312128504703972591180113800751178948276391105928397139625783975111473566386050487983863519607240766564355472496057171316048655541788879818212900549503498011948022332132713720521661666093479962408673176948303100317725098144428109694981953329571114747944005364990285682483286540363475854861061747863276603744287923349642179984817534840055246247223841927521160115733521316587011951469529542871516000534997492753939413602447628980108068992430665106204172124078656995003097489844518430515059633381763528017018962051799340454477669865696379834678051013246641996726054691786252723322445056822118586188914572841583825273448329540823822592869440630994662539750426881020171655216156948816358953251328777053000628495843208924091709618959546822650416771831647763040690030621165125385523590708814310998916069037368456878636540181955213283699071540908873709231169428194923135247536430057747087998963624561554322555460161222893104539069367995710354636680176610301765573653156343854280094091868334426738494181149743376568676392326139831421105812955656867474331471262923724966824005218644701358893561998828429378684875296046811653589462458397342227250128884058979351699355794216638647876789125432259534856239305016289043467555135483791321096613255232167895622864112278950307920234820540204024812986002405568959034975674049701844515405853015989965267899563493862848139028251860483765124659597935987801755789683807153692288652634725850560399244996783581363512790583320189000522682776887044461861325318348258696152634792133402123408889180494443777598608263410178016841823291585623779289958345484702836877956754641886469714588439078500946651671023497959118104602341433977523239179198156882813676749639586450782077664636043246599608748769208556772988346905816177164322651938148367300219158025947882420326911897260668918809830048646004884879547504753550693842533127898739097870491297690378212584843734493106407134550212724985198958157150855715403521013123885709853654060429604806707647040853457925848981272650935271630076449302658590523062235258825673826693348846552156075109105528802157720010179838722536898205320481411540087714885735259866049945573787121105862030973353096114080260742669808344228010268749724240729823272024248218265728064950824149152434051128734268071388790429604650840529131157872931071990041834543029978453243133585531814127720568921760753190684415233947873224240682693327133316027732747411860328804795818654159699905673193180468297410909576616748505172960666077527269154061355624260005402323194825293491063021999698177037690889503872359329316882607355100521846563273273549603167866019041824376842171520443799313108094745212896074171957111846755131003289877747492107591128766900794731209650382972773603864074022541717927803905120124803280831017729078109582594037768262351987916330502465044126348320603229829956771837654324262050988912103466940311766106585972162011785911483715499420248374896900384649433142252829962929561295998817211459328315626324006588547589858423713783110828729601665369889012895245234755576036849144580012598293516919690437463739003835679250667788656257198253272995531349927561181887821716389590206980647270533905114775714370930150674193301758666987699301006826421957994009444451030596811545942578679479285533370547749817004669240906706779000965856891085944847436744470331066038078491719241715464868577453664111630524820261676039655843191845490044720785066421634819800501088470950531761905307936122054790890786579788086317484272387682658918533495249152041645098943370711429663898040607454971335161724839819604250685625750963868048358282883037150500953870026112149772283206348239605662564514102074067760040295933420646405957433342681051471270758786750260779596987320973276878782881187065801283557266009911670972331437016043681474994250096367527382068844475111409452954670139516493017987148910185859698183732379199077687898033099916612247076184103643844077286089799934588125564228352257977798471266041200892676366477635872044462749110493153027512205980271081121350932087436007238065150117922719252525896563565698886139806740157163072330813381243981736427240602792233354658715823888923566511607971595333780560291005962215163529001272033849761705159902274089557034341870904176655650452595814128904948683326033131189402078410565761697871109569236515473391584058724180502138672533039360162453255885860460734022437683627466363767175768698692620153559034698604947689037255093167367939371069707337790603705578643857576291209924139793980644171288901581456903268949113015979262862990217444696527179072306246910262555614671794517253302815858659087940720784334690562281990730642127200890858794494546576514711881393455102908769218515859129676335240131392149045173753081360304068166643207789846614657504589268533353124392899676287001921454209500542863313000336236225921762119286073409694140461555345118029280476134299091301955925004374730305432944184235153173126773284457314929801505136249164100129950428135936959716963304809931412998502175975973692715172961001104554448943913919062249227296651186557276986371377673077952831808162107053340887388369042961595361485319616701620503411715502533588066114600792351428125031878771107510382662624392137006827221118823661083071079017026472690140832519850046572836404790520070831517898929283798934532412712316430393144119490541353690804791693969728551806190432759926783925463186484070577815303073433013526627038845227478967366410176115291321222039677094512093301533187647619397053770192991495380317258514211001827425119001739172580240817091423233881116597583242200306448321869548708527151687238297043290712060878320413960135484708024792391353385410336816309322600303773844520228467732958039066792284455144349953856094286047390117970966757079387553605214302263593567931694786261971832105945339352430001779263378291281755324108564724963241069873938720650016497225743120513364367698298204346454865439579557285113229078405690572220094124337735876649612364217131380576703220983177256401024072116855383853532679561627265599201312180850401972706435573464008439614617832137113552489625390440264287568137650082431746012521504574960136707246700596909618818771569130895414385906244548382461248141525436150193060101860198431828495540169070920657554465050866848698663725729339377882564604308166819850918720690913742828312262071571469769117244902983505478160431478094018189859440888766345169832681537973161094394390846370160018485349416755417694898694166213586591869951919639136263740771135499061665599585204308158087143659891288284748454431151736583615678778627986991881674589214370442523214045720405377321480000191160633236072493387895252479629982391213932038708288696235563550594042506269607090847676745070592731599951291920033136658516788565029642708659095972116413559718373943113797803704736779394621242426750242348200563603665360102392255894790682287861836072883668353415607827741814215648666176526427939903862459164398895460298528340367145528873326498949614802450283687232969494062262321764884750035301131840311194637582743694534879292433667493556693281991502268461450446941411746361805441163719921487385012483339578446658158382737317108106129147214984818093759191403700543009845972671023233599590635325663151547717394572492527227892690391873868896305242984409721466882649548845066348958616697478128213795525175551063206762159800336215797819970367614045348534846795645645939103112413379466909200883500090239120292557118299766975549210421527169999845787455271619030945728499496423619543336492214025445019662938653155517362179330646209297200699356939401709778362275012696189964895795291750123663131220891765175436129555288633820494997341099892809568187633282616901774590542197741868379095000656402548424440836470764576353100945786103033695697008937026601340912992858371312915406675827067919800038735706542323844766509576087070378322307743649068409183065256666330363337392841328478079110028455903617654624391258601287294142636307263487928812321331314337074922396284425573917002410821600317074250782452272443720353148685152903511112854395663212224285268114083313268007158105420620383109183745192963388729633968599306888414075806532392177865214000740067749568603773302834327353715796413447478660006363441221737107571146988679327680395585372034879438902259974539986316157332358703388520575000336833706380019789402498572035035307981552088031377039562623921439972974116420311744214393686516380647497351452612824496233399888510838602873313556184544655760877736005482875828729285081424914460666636753035693400304995535088023803200849770530508964634327212669882451805335710591278798800201132325340799006265453267028901301045029557925177440250990672278851371036894323848277062120897129629127576327677926463775524974198819608354388884501611202560140183888806489933113403102700653560738859290057707759653664469999577478582266168533614774156352340928838975763134833168450535102245709210205950710084423400912044944523274738373180197166373167281573916622115706741049915118265601189487995617302981457172220609162062139982055279714831079034832382338075443128388491321408453435672003509911370976482527724749228976790873129556396357241181588690077680966652885901442157753657669888678709046263988523167698326459734516170109567335219188187917485282244964798987086818481456912527204952040879356246351828038486176446248528201544589906322332271249701973322836131580655038103068253619618539455679897268820078230735359409683514123602476469278299564721202652069885397001400997504738909397767136397202494942578702884048929107182882351880515954440624832251836220293504024513010681243152275570502151531767815949554874793777446518927289915309013518478190828025232706232549324999016525021127509068873695300611690491155528441917605922290598858281146927983360650598628807694217077240282056357319567526159591585462208591874953407838126489529506824179313959068247249953309712822059017492845770513035683429152003364450994625665837639012464837430411396612138457418151250028822990958283531214534862525108184804303264602148647442014575208218174129397175610799485910800812808581657743448436543794639239604086383360437679097298775905925614163276498136669062642037656670160703671332088691408099566792455082463091007488835584462428191338214173724994601748220193792634748526675097297181251052847943448274803919012448871890916295178228467890261737399119204248486813191358555139975285543213051377456771812835211021722794339071140520049693633201351263133602084237840392056580072930514986363849113280346746994994592446490024818598563191377228712135513945636665112356780923565796642606199534648487901525011610200564028066848853064891746676100828951874227041349171131516290455069636906802386842216811873377399703944165135681746550543855139955539145338473929107592619066794067896813576742573703650904015446694824397716193628771892669217274421047554797957307936846713659632593856955708962397303532797615198429665278003480783123850092724842428516961641564527294759742191765658793181854599223997809551907569160045331905986448210852142876980731178825106167779455184554781377435834204642828798965145467779352556305844158264982967892262811387864020672140220582377492029658020805121541838023649487958966920299994217114314215899837348898131593650457422799355612615184852167748506268860852544506049409653103242086564224185212286374923033480888295530844890484139189691545213841378326561037476273560965533668924689567820122132683884173721715256787639153740625052632337419694036240318317941921435899266219716490570582389418691360679733791246000208278372575666403795722956588892959991909275779965713592424391071446431999182869736789423062686081700942948968216018068032819931660688763836176702952931852329073854679956812408539444439603137456452265961310862253968015914991311029356107475738073299048802411929777353748120739041805903234824124790574417029708209094695104580122364833155184921694617420297248553820214075629166564007001269488063711607620930697444754661704267581341316029971167738946843785887255082136626960693106198102486864121172824951750369449234881791461286407387330165385003203056282288491385061922167428550846651852204304164095384425842172222435807506432224969673401553614990490718205883171845540569638800212164201360005855349720212532138994076248989160243465723658839764467593108123385304362360533576969723102517971483737559479536289756123668010479622272305145851727696694695273016591525586817599534791738771490727255848143900211081389326545527458177539323641427361848186258125101923430370568718943064959690719947512586302528097104686444474563491062769209269790919444396998089378606874108962257969064538808924793223369541949382296662411130074644700390703128777150443866132246674940191205354008653519695507466271339790370718680307891832698268649407082333803459642451896794012314014135491393138246278620589133257320090841517433835250411814444303951877778596593019671869680776369963139236986481014408669313871826616773192945884227888924178243146927915168706828299960869990845384310389574254770702750090800408703350297012188027812214541807873686022469847045185793741581666009350516062250767935784507379814784140148961280891782359245263554859964676096556788084127579424864961017125056891098398324674469054809815415182596428402129154517361988180611494674896261779872355703607725190750461842331338682588833298897821103959417256490865870931382096671006468205656713744916706547542409366579008400758534885904713554873301702854059733393277613878614365354040836734359949816171241668905328183474050525198583439684510947223660752310055424005690742688164557496347811792477865517304930333016112184215565599018715652256038904619489049046963093568918539080514576588684870653595480029750853638399210412464155755638608485450097949103067446588503839877016062046414987008262684576688884196486046605161303280055037010330222209297526195131963325661521146445596625435325502030216370855932356096994742623811169242816714699119061968613302585818649057673256509649855098782088605273491314669731591694798033447046991760929550456006748091109649721792006004573861347967872389622077300752993254138531184379742144580033260244797410166284844735093075597684421052162822674324584886778917445151067698425915294374847851965087892756949288192209892551206161224980341939007318009225101141273745715257923353212855587272038780852448824958906553704710496344564929897374652460429690262005978400836316403320440394329980290133300614743687277323352386539786441218250939626653214353856137202099632932710250051397539169698656389864938806664235103177078250491224991521073630814324132115679640059457871163056061925016628718569368947963066416801566500551626253654336996127485210718461575951149743600982375646755895970898886258486279722659823494190380874210732584273895815146773150018273184044961237709647464267951793831011706205227948905166731618505984835007226272595029904583942866637041628517140437586831119634752283232334197718492486345500798434311028393155583758902873596904871381964339837242406562640150412784599011311815459014506944160986390301026329715121567579414169143548121427747060965174565346603988229974890983965954533382091316407314168710463827274709274247878114445062471227634137839583370119238600460404495275735154956027650037770385382713581370693360981565367961511037405583286701540667632877507035402695467165865764599854590131395428813398687390603077325761317922135779041048295061156517403480159306344409355557588897790759059928279995164158657545623228607151241989230496549109093474769982622465975568846126169754512691042949380559906911059714857353036460077894755058539209377095532856084209378342252514753533877743975363763657580788400116966180753696039591050008453375184996415383248794608182075877472902364586596781874637615396415721491133981476652270973449973284418922701510607019350857017960769828059045355602680386995065375575785598246405162264566315182108000085167430858395493197241806953326429563290497894603599968029548798575256786334492479880811217156739227876862289238810938934198149468481159191383768432617908521960095325853165496825984517170775047273074535935885026996798382665068110287239237393768225306712581181000249452694184556143314659564091807201406597095412776472443134488740881529659775459373907042952465312207591458794509258118285970021620284924523370962152557775066635802801646479384824940008229318033595810090445986226042963686968307566371508073249359134371119809165609032925454090941544919539867971084757793005884990586212714779546387284357183240465799693382347871005901198026323864639567782034199402529253089125363573897891085204015388884050015097991044905336597610441887578947485936030382230220561202351853154364984656449589927422705949319522357350904408680734832317477748217850894237927917227580125812003061754165701508961040896208964102529666748320936693018486012771155890131001764577960052444459080915654376248237343735656780279151515664112882976426624871942465751932578040175454943363690925627153950178616836345474955255548033624680043801639528556028588222470250074010735353773384233863670889776185300860698356398288128920055258427234841147273269196978167271440570186566321589253546623198804440413361144283823960690980258884490016427274524758226478748429700150878813240950178132910366076122549725977278414205169803513061677943321703817653072204852353710848515870024621689752667831134632004247397944605448575322526236140208453226192126239279021302023263825520432111839495334906134538569807279812412960695341261602986405881489356491719434404626272984853903975408748697164177898273296582432436964313602119355746364953067593992344008308511868802583649723134228874724836395520679778241277421308604363760605888769485144828956292292040635774518405248753781535356528141042880516166061924892363636164486389535477405265147475918694365946624866610988185087026991386515894750741119603234452195091783238072039955084480992664562548041179582646644871975093247310903836626976782501758055635653970652363925074368583335971506349041023590478234559552908732136426825357168653854825683667351373828049799684702427974962735784616752861141664094227880348907007043429484823146744024888302285681343081782809455990751182395061804810484112978200077301497909308024047311211443775394315842307254118784834314687639264126705660096978830924426313013363617079031174065570396091811818597889468106226980348743000034332788946252804827614723308919044730727606720997347700596616465504598274819093902407423592673835106537111335432999924750726045781813404738562024984082082408029468361962992685541130749250799978466218748781742284263037352496222194859646318293757886536481056204872908530410970857047911855445349525325640688604337403555282400483951028906778555942978734253437875550288212465909139560219535290703175135579264568568306093837309827086005891043008790082586212691177052166614908118992111903738299626431440924273604768002547393120443293992056982013711426078478620320220833500829286263255082785789426979806041247348949536338906771047705552248061838879309363644328852724236287019216250478479706041828803043162637231978375559471913085254024448363699578582562230659143448066281779908381590169353552255284028165143848362055252449044397145276336471786696556435397821682554341044051226274786526716001673098582808051128568393231447076194688308382951271116120644897552737311685818425032028882218450671577923612669313861892560049161663169684543293245189359032289886208666593564492295888596760735751953729132119691850232187453010051309492140141189232140069997258960289898831169676583141542664132806163166757549205453084623469363927291796805433276685643148439226415166952455828760508822877156181050313486288747717878533919613428086450312467060687505308902733686694635747823962771641062789769392011343382662170812372840806880048496520669854390560976474847880865584588105214242247529249642610288343156017346935880570332625162596335677253957061884857352865517695073742353981177520608640521191916388006262093138042623055281895411178981637373244999543182700062369149769864008700546850057556089289206001479025705744022903456408426848309161727487858522788341494553900009772058546695622980020596487341691924838472932832516025751902448562964156059585361738364170439581528299380916262751181525476694267305951447479388565317476160578109465830520197195211261719234591697478108871530556986421385945620510118356859599622659852094135207283366505648914287717145210487298382687733599432703513727897715515596430455219669679466304898897590135473123064765953399646341943557633237750309795391477726465424603205737753689716825270663053974844417529502640189398373249892311904521512710876258248250862090053423806631228175860397901273747543238457433766409899707879178362779796909470090225507767613117934701115235802103872500478242923236338847148777884980553962434755425899700539115332456590312535273614384531966523633196225882975792834420445101899520073420425856723795853426792393247322299477042854974599487812624122972435264101428452369969228487269857140376791072956980661156072635428914573086685757908320096734799149855213031439186254210367021919812782901809161369630231145687256945096838448767899540275440846404574416144678133330797461661928728054932151798531674609233584461680066163837135597822906366335689752809400084307522887336481700539653916496995304126808737052519603659994581871573214959397122098003397813576679368521324638553627137160572041051414606710832169778748244000592872409085133225184924774412557621819979833202730686295295949542910143874903487233491446126927397705034005137485664212572696287127799543917575382652857145007098060900833476216318619285296869366188603735869050203843967430588023889755016668026299245828538597279736466792229077661679341813850203355004639582657799506528156687630850830551571062350049245733405421626115725696255033620749588524426146405003254584757352016694283010602654540382695780848847792504936473780590277139690269072511689753594081034370470830439361893575738401444212432424715047511149553843721070102861278762974838000505759950241922335687709872304287528865302525109633244448675745407853315068940670075864638634364534139105085887149598640362886950853231836172139979684909747149079649655052125588040449522403481782476388980526717612177166591828075790776439749817597311396357757278653173820342284663184826011776063478419405503021785117867246143422489957714642076994534356738731258933023469636193035820442026509581065375359910755332417496735912659225507507219420629530201280338755739271367215170782000052940355625308637412475577604355641340275245577385725648897356500306741003223662195827118177140158382197810380849895554341324004977866855769948677078453472593031579810298638144504727199099555098127332175186029316374529719662247172717123544284838585617234193760483704355456821483080263730415716295135474258224333160766131496862453328283360282787092195043799479178488057338087210445257147502471727755461531774272629301165030534423613009347073137583496644040518322176793306518793835224226641870436767859735691967904857467522534342749577915941853965955500267788943861440265690660565258112099099284602531227976036407283638098412116816260799862854492577616577743804091149895518564263441907955406997604268475432921442756366767102503247987622890431596895424834705261974040949846502930848973681178130288134908583437379036466549600530808753976834833371980268149460819810092635929279533583798609791202011112090254105150286407043176998181624067434824401337838399693195391276693148644869785633186199112831621833364546311630634113809788889044530511912074509805421085416920059814999232146400684360849325855794586411819458107497798538020175491412471029591461107541319293182416232265892473211412133244840749607466891837990806578704330664461796270346573471991949106004794464717108841063115711846495351390020648146156830026050956014887154929219017076077839713326563658243208937106667020348193146396113563439231094339087067831051795353627130077406889110329134980132414072504877655511331170496439635261521324062370343220022103057986281148992639701904810360632260347383577428586158665997981866151036019486918290881186944472867863760240640524023563465555165765091658307744837986788152481811194513427000169235775581371558506395484904365703755832437687009241957918112267289550837200810134298341685911467197114861582344118039324185937324519168493357147901655141758975595089281081493463627837155745751736712366121850277983849464873519734170334708489470665143692284764596498330235658251827970867947701422956172007108692734688180201075476077159637610754042042390901909015294548143567041334386126717490670907821293625330518627336638107317998381135943313190229864780870967982924953043190018915325424033895826554081707589085136325953300990016323198627717513467289125222604859493686675655109443258306924881102726991978296975984262803609407808401712423574811728472105248824215774144354806465745742266945745040334824571450349005748317507130216801543646411969583323058610541489218463597646136174512293211822864455411749553490435463968020799229814183797693631213837863908028996380308251012650819002357872634132513384450638616143018847171639093368871102071364451215939846134924540949408767951910379770074798355154958703053726096023024409376138542331742553814416620183484092309642026224234890223891712216973251883838596474542459396682050607055974058516659230445987352310765791894659141443596146986180787735736446162118406272174114534883994570924093173172915390370098255067010702799340867588111896772031856485162022463710522631394113344172912123163658891972459674048772525016756211399825800281992429490113676521767906723594522261602463756494179879701063188247298032624609415670683926698433923474881500073300739963287597279902159762279851740775143336408673291810051148944911288850505707775997267030929316052023406919324380619928978605835964237498839875477757819666729749813816977066501422898904961594807756055967608597641250204903105325284136091542532747762526115669807675830147089115978426763264192162237631808043208594342242910055850519253632229929811434209477208635036839819055289024392701944652050269191085317423441985571436397791476654858659068025379933767746401925545690488850345647742319582616388432101781177027993412535556085495086540894670128392036235004243002794978180964319864014290197007968802216633912338870085291163801853980040265122738739761594369008644598435517485377247134885772342805867984836150176649270731565993184993107712538535734891662156480572456217773035758051409789680850665245688175738645772914531398913317783927483714693981722620561489839301844264652655496574046013163865896693318453170246619314274296807441935741200937638047937183890677082671414523300546173306105995959414961123065341422010261466897394136767755509460589163415218254510627041908939623807083368022800029094720954993468265125822699012716828353828080447600293558151547718514353362105285868224208685470426668620448781314426494393957563557447144098533074943388338816792760119467422736756232950439665437028055428895498947256694027780434397113783522509412361173172781683578411229549737746966462835745789290474530065119991474498718573341647345174262328493293811924935341130419934919757769650398532271497623979662696181840314095962798252751025689826910072896055309627937827452304562782932322204215460600500198178684592751538072119750318456083708687789983199513230535146766151265592163168060943874744552733357577662071570807960904588188584284859967093174436484033296953288836408365149807218164369461811523028443668760285033664228970951768720485845053975444013098736934975095572450140587751340233035303681336418923484279978249740449047174834688505892103566065075012636234708790905627780358582346401447097210246226743564202644842484468263233711158069500119278631739107367777265029005617823657153438292963060297497899740804705818963534127000733771038356534019257366777887495443623075062926895265913854399280342095930960370130788496581972359656569993983763151090272705327410646756507240843873975322781695660248037250058170295077166983101476264615724437972515071119175788655695155750304931633631151254885458779144109944896058697785023388564705476290749093095430458215397332513866145032347306927724013402678857405608694002004646425678178411750232063264823021674059559280215335182805084100960919567468404510842845934656257317345734444519260470684363805549660970001541255429425779188056363663313193359746442860060888060935792138044180844986099640339918428996254229156962949252957052911684368481588202647683339800522929054862211513106907521148065773180690064182796291199393220278979272125364225762913034335718161785146718432189951152058911893633466700623689330033475029831365266925182643740543686511827058100881042127790681794333171241006655016988147760283474090494738593315183758920822013716102381540263753212844131988550250416456607335890856447495877977023373496637810607944137771347766668885310180660023789991765133430605548088440651652951530639345468244829669624162574196414068903324039508232272350854972234904737423137603784190208590637443688925382144957429205154354259645406061855361945027054678325503240212455535117222442244008102040884239864208701151427818469552241563054134660803602523125054539278420597499304274443911179400023116619024130062449105805601496192717441617715160160053426974888198817350780721762539752188940298396825184695577312823048705438826254186727010197029806706516819726365096154522318165498568721874128646989227521979124916227553190934448107506820165927714836832778595564788151586229448660941118526800195315435703623746585847909892943717081115553797446872173097255843691019520353362156959047119065767826544271587309244188990748419416706273799580611539559572993623352991880430867590408436443699251041732538033138879615084248905318087366069270137326673069477882247016250066329468449638161146188313971783106331281841907864865511239822983776286197578419782122245940569339406278649413611159858216771160704782712568074586783818903025805895664697992826660760058466666619299198049758054088074683295519389294065872730671736917284535302147842201392480482721404227152150418952633379997987852327519809551810289499494927611142376911875611573895146627364730461939722766357913131022984094405405718001864558880384247560841071899052024962057373912296947840052370784038307692425359209288287753261236269064987206012986942632655312528739427061085185415574172042596639306370957668780258759555879514409165231782712762457456627340286801953747048163764429999452151489285483965398585144353778431779280854877824677043827084607861714663825574912822002989613647341802951636734714724734236609130090132877899769169333483812125591977825693201965329084840881830527155058059748284743829160370481228292763949172702417174074478272747039512566078668494068446225863674466294510405905512974361717137842962591942116879137462522588254853710287829743663860487407266992484487824609592364482004778581852915875407414206723758571893254236618422076558035077651898874588355885424847514988312261430235995418576152465470744895288129890630991959201589068541661507096910288161570323454873889467646760701518966654370746531724859493895750342878032364591854376339107983162264853029971493026897877437146945896838989309491967346962249525502753079566029087965861721262013562381987039542273416346415927672403580301239603354322215397245884117200979157699437793848497583468435050326866152108059430749957112228144786593270883568180586445258336254962711581923429177801565049183954420237441861094639116493790403258666859743502512380452933830307382320721175297530216227402522047826763250302754147124751602829974121848146782089259915278804671888431958218208839952739854342748496585709182198861967258112344523607070912431624138548516347851317073840194929990745112672886896833994129419168191627422188922067913545835089637868713398394597330851551388038884192931532519995713126842404291207429861092271298068090303504653434666346292392648472685630308133033564043025630108197091936664024195538242356921617846343088623295604636654044871009947772295674360083875361343385461178142071544199781232582551949216920786234159011156978458517214836849829542668105282160350931430386116155540728867284368635427462209543103707137800090135178874440054107287321409247648731028650864788485762801798452146803948858703865168626173306893380796529612652800408887344683941781349979527501439963749840712072814968350336167781141387957280518022488667039722013264076052693872310189449721159610132225721288599563278241131765710971375486837232484745161720222583605202726956996509203876137145721224255042716837408123599507003587858837206066036640605011714688219916263975976236610205412769712606929446111993653386190145011803678389367683243523870100858340253627612356323199692608747197689241967106593375800868538761517642672570389975919506211765964012113881894323017331214343929805128164373810263666996577726606564045165108395625537637677631979591616717299220556691692121338406506978385503258515400918917342130299183016070387763023023664180238886033404262115257158385053909581492307126459929047706501551311446446994721237416984504850991773798868417551833481469831231932915385490087235415402422607635001043132574320318657737300640214140978319948718812633561835000963364848952453739159623724035905930120325399198025491027925065386113007605440900884540066879081370561629559290731552221006212079008183414080793299733178008323604979277280605654638005996441294399900305869812784003049981794952190885825631085510866758745810439001907675805089582975581045672695662998826712980028586153940250634782349780171749171215813956134694945781500108012850200953617130292242509932901180042845172968651875080999905527923987631459117336419890752091680000349979207597307208045471630868473973704521304342868198831132209128237605141367237304184322726240981180990937534457162907605291738373470230713783355894282990462767684103262147806019969158959610632149813990011546378478168498236400526008170880511119839790093274359410478251928499766160135334767668449548714498817486819946760284231675068126808694146742499448838533085975634541342897017625102410658968370095044890797961755483999042575984017843457947026720322212738313220539644707445193148889335959645389436307787515022541707798575866178798259461019170567405074441532385926856465018985080089238628380404932756029713386985673837795819362123983670219983532815506757644003237303173815157978647694615678613013621765384951307808845559348052989916325378953516484513862915508753155285251515297896211076440556531933635599622156648152425809468334905139091294051796013318796407341074069586238140672567384597679392489869189028881776949469237947452584146615138099487142248863618522149031552657358649239574271895862658698070972866580561554611475288545160984913554299910738574249755977201421398554671948741469412644505039193083762824787806725557173254108341891734533973180236769228460778144209879396619448500257055168449758077180046484151737468057941351071597618032043325291386326112806425338917216922620924518453763050311105024638299964077898297737317987917394277138329645514033408499563011749705720701481152054294530718084508026355454502362751144240109744843953339440748729089042146520913241572833795780577000120859841568969657882513607200129399393940276396022232513371222929522581560590030803324857330457059963508064404474078730901749094158176260868313415409878909243792190403755940331901342645345070027668405901621363851389758264312391905809441503615096443494165951225329986660202442996311739689675737598580206933885236708705079587184405284340374553711682634830701032936980101205982148933480944389108172866193239160073329502351603720491565018352171321438018495380613062608295043878757526514554797665961051473421627764518708478640619895848276114862578843320684393868600492579768240132349286347312766501140717973427495092571083850184841895564503685454794575301054693191215580959899307362858847353182282771436114763551535074301344964553889244678814640699081000580834145630430058684436843886876159890832967416601212390551478330262729729260328265965542560014807041759595779729305327339134357075099140203528926006398011699737688939624485320670932474099370403979977908826024890523280236237281891103413555227700017625136615787423868829851624904886444371889543307883468100343837314151657307400064560018695176501549913672117526645079501630074718422116587421731490351624170398316961959257999450146314569668474324267060239141145186439073968904973857916439580580309934109309454086302613526931279917023559229666215847002986210602058965056005982084562005687427665070772675771502809870433438196999322028050593508522721563999182823514124912886217170040437129501200582710091114053090913765195080100524832697199930905836926876670420896571933321808978801888676406136297405579241504376075471278172290325777367940826456655494990553582330035183092812635345965082008782141535136976862094167720062011828997497818460730322858915423650988062870434425734350609239677257956652847089512193902297001346068931926014404341764525073137259970727344730048181496483832305208102040427825855555363443274691498389581811564669214737684704506539248542537281482339216267671996419034836784358259291149456536239164475219710296969445100040166109189413487389162684012554351968627235735013385540746543296710187495604117156463142163067617780639361447833727953180114517363547297165889071210636698332364414138204090742187991201684475962647453535256008992631832032038285631358839436705316957190542050261681859706938676133157832248362680739925724028028553965874672471906939737756486003467761189841955608052060109351744665609772744069513919610719773791181958894225773872141963806431636288400666709602041997917065397766177918747644985405828769879526249274644971256734979139521852796060788023255333189956440485062071276215100153546626214482568908960642009909682525026802315077604011815707163303459139600796197694966644372328136775924343636959488601815890741600609234031740728618729115550908715538188424069764240330974668095941684416811775042425526063306286496338453723196143774510750910797347122049815185206992177629086450346444256375862148487964081754401338105102689291495371217570348002979601120047476060949402882464537184146288424865604549908565932295518506327265444323452163053308125289445089861593538604659078324054160320444319739347158395333927580242414322241993466781097676342110255826570003794627263290993280181635164621458542080128348271970052126993167749137744450921809600855558525504613398817262452710188330698235251679970778069040249536467806409255583797126888550751780252013846306867025819992051504692432279608667928071775884989429515484840027463198824773710444049503489197220483315067014131243760793494091441438271909693801119131912593888498385586064615877749329168174780335673990487219639072343039306013375713866569901412453159753162368797855614768622150147364669742121115602707770032686296183455711944875663593579767659678018682861480525140463466074925898388517005050819287239757209662122563590779888572672744605812337728888701755227328197203673612226188813355711817041872131938577116128904661683676246818599096768131753323573879941518479131837380092187889804224075603711324774444140198129788284708589920399956734660262413068737919954969944220515590718429676050277102604334320525035779298773131480409300096100410450966545073240750617790096738708444682721977989222846340127022444867127134021825459858611165276953289981953238837922771007480801220575299748048027715546645315036118128790067919931206910426171764903033485793160898534316988076143526328163101777922635164629699047673555662381260815739012361707779542354454957251270718817438872585738570578933725811011733804873813006937993684281814678586352760546735412548542409341925734256148188553268658752954748795261358036229855469753154405702718306326461859155215841156787120965824323701252634429705285521481613357871340210604173762859282787241351962035578025503083777797213734032551160404457749142130162180076221576529208301921551045916574679128954936589205803204072264571550096170853854224286736287359629722029664960698599590575577158450525314841881236240929351021060449644973412263198867674530033091953980427409091853301192042413135472744790921243299034423074858530861761404179492569053257265951621367012384108289433307223614917334663612836037185546340794598953119398004072587113223035169895404815013903552688553863979048185786793863633220276464172474847239435011278892104652386945309320216830468314538572663587423177880719897054849565618994208255260868891259897452898228989567860904411933997741392736499474028807594426112252641421982284173439845973772078055407607603294253722180908257847840491311405379260011151146565451431169595594987766106053763165764635823238361522088810558911963100991057850353262209826904735435507034666703383903560974548997146992149417189005662552413283745557886093054005897850237399008304879226611971676796221032105258120684226386485269396124538178678139201253247976963751973999382802609427813265105945466427948931986301579573327691760869475972629005227134600164642651042541123332083965165634095219574501015238652429349911122803884669965330090676190908507128874729341511886163813103698716835303310080659664132992716171702409406755121029472346229832988686989682429457662759245088334138374787148990255257503964059879556543520495346952216001691407979740388024152836781045223531974468125269742500623371278582638341676823967857627379906618286653386975912284945472832479005754340810065800530943965427838950845335209829059729470498173013111415915339052378947017690322581426563934280806907675098179497235227549402075123086560924806621402656614844212436771084318726642181255968477958446609976119912776472360299252678511584184199916096159740984346622086149110530321744126447484164302078325183340474550599023117728727995671635195826873321707059725158596384123299778273480898732316848811509963509581055627523008483753923789395184853963701596747991879013046058003024247840383317665766554734126104960857915691500809269462110048594766307403576360242391086311957169183502455369105479086932864515748604052734436800287211904167589084037003114056686602436805405718714542438428447707277613449372402946818121785421624477554137167476693703518164526460340649072867671193107440479441019171354934471768270261756750137220796979291236959519981819479540968641949812329012954361800027453095973453062677725396990736236433266363577777326678685295894018992636300049947980595786683411726468520571021782211460649946359244723638965970807042116106167950767805018359265801086936502419349261118827049407421063093231855904253613913372300645399712130946044346660864154402882841152704980692732387163133601047154984750556634936404846828551504575532236492706124136437493971020031923184872513003262082338622804892027527911720265879492334965753704480537021324643007918408772286916757780599550527019856192385539199638017724836966246860122376065963838830453096475267221621383800270512413935312374158751367865650609389818142475031607984637589049001135685333707839536035272728766884550466994279993260491490862142645518418224055489874603005362178568564242794503397804012694047847297581933406274949411619777688801169166985349266407794323330017489967375366657094488107873831555197845807929800112705513452964689666700714503159575148289211483662221212027962991696542195190335955388221021651140408262570704314293672873537454227843008565242028362670052950146537881795365651995848137600767916870827630750374458324332986782782576030291271538618372372106578298865694213776389968106935173711962874789457270790139094470542307947932007550416978297117402063762817460978489523551885004550424687451767984497340324285241650625758325771229744414458884342815822863948027020217684857933003144022885386063551470078703536257369008307391343943997397380482783255797967449466433346426089897327960160968607361854618509927915495779085845946431909226824591224755703080913057337907407487573802432242286157034819464789343997657794384588013429334791399749618261069257346796926356729976872586936255789390543142493420220663839041588712006603734450544268597560926886135127549484787590451080745819147150945473736591638113082948570150220061747357515164736005217240530583032037062313338161473480227093106944196223853477997844145503783533004363345034297618325095832209565804476849267534010581288878999390395933887189031094495587240615851321534489076085013388602526564689633860697084941686584242451127705626292542120860020984715691452009601589825817402167971762280725397400019410729783106191214824605321616275789328004714561144540563722200655497181339072464853955910038905923960601222613797815130944796557050361620111280680089576413431394037779320061560418944704629286920945874728072110708881100337616940710066454854115585179734147932476062436159648013345086959959929992039465217516627901985399531778844625155523066354396652136856280263240189343698699612348484369900078350530144661369481663735110532227509147894953927190164572640066381694117169013382308184305081612797660848155011115086377349620191136913474333169341096330280258454242173519414788911586204783814540711063866554592432029142264692184590255081319673117424031076572088203535202717682392095364054095547470333160306255022015325011927989460328851955540287113716762985923277650560243997732899348313955234359029359256857495026874187997098432881212228873400504442229003731173461172572205073595513858656568147786726946074592884276492299414046371167320283622181339479871103695300629822302452062660086564545651851657684687184880721971163115745076280208190395335500912808417895665323610881003791108333748897564555826880152763258532477871802154431269277019758477489250520767371820468389220264357216089842933341582495874344884675519402166639735982020048327137152261595639101780804515532748424912483126218128984096001128478919574517441619624194810342482697822624378339307170758593152520407468786009358176647361697640203875928726398022601338382177129350140304370181085534031992209324455680207759530047488615339268733137613831082761242410877979213947759594826352289370715255501402392590398125574238173766787765509367409831363438869240372363077444545604296106161913161524927424672278270501830894839609472897912861612023183256729900008748980830068875911459204610104829073240835946857221758112581861171305436841634510366852514544270555730197562130190718556779205355479717479998635919427928849639932419570051890805994009506458329412231468400690096445730525141330010096604113152429556528730364957831194778717739783489181514539816673005878201208007613273748157647158397671029604601156411715518006143842460599637425627439235086112192077240056572153037219543234436286588013415097957281133860495516105070150064390160499303792748294820309087991304280799602692384101055884949946606523947977916500050853983000848907164613860803759905027735389803162297107398002241294185990582770423134923240075102682707056210202541497052929011424566144828691527838213084376676042262205136813086944019725426523473552995236588178133557308216845626203642101630864415684819357931016438239196435349860172476920505625516731746779441941650525767745245702600194497402433993731022848129539866192456719989592362705062823215895811068595033994678970094811687830355315663309698301251578533889035207735315646547998269812722946187701775677546765665510409994872139934624360005770013277183198352164816040414865597043646584708913633574695350394562830335666268487018144275818294954868297959477083800216093878223749448305027207799618823591853580881591394147817164138390916990752844517520283936345649004219293156565357823988961794779267115421632272416719473450536018877771324931159250644806875430224959070719480466431560211381995510964082087540812303442621221053155753607206144986771024659060538295930631885811157414274716084367470769924513150125990243339973414670854300858237737470718547468929244969369793962969783442874479770550922903022336192508859181288793896539500506749083296003622094841462051384334589983554290284081085144164037482753571835421039708728693888217564955285890240651590801372527352920339990879947072407319778177866400686797456200426455688196982438058248442065909155044459610155894806378418194674085972960607823209171138383394416482221843447262688306434576970523864390898217953121526203374057415776540700120838554481148587195630199017054293842471344041326003588882978296480943203243611754788612057321910194170441508753958687154622296567448432051064272114838580284672146801626375179032561205118837588757314976429626039466060310058718411631078793756143049498442199996949094672087838944305474283508225540532405034501990498431926385199789032984413140490526023061700461986000953876806132169841877576096301822201669049379223980340979609684234542655930440499873864158105556997055406748499531266419698431744939174212415028953310342802416233467034233632391558707056419366865473283971125571118778685052304103350166386287402690774213178851510338180555961642602068687098044533965179265947421756651013605631408977412944001044789759834749490867055247245293419667443203497878346399647482622542466990259276637614506105159271789631001656788917623256018749732942414066242932920217791594819872147756697386854260008084456821938125277699963129932661822214388120672010624368046914952965157715077971992943477784178154065405250225000977684700376077291134251130408929817615948212614857099875437815922654948232326014066508473470998666185616674578091905039427215129234661041804929173873860274986595008302972543757884877022272853969950428665177383417847016991613016765060437236030563330632423231972617771833098551073532438384569310654617060804159697576928536518177028204013764375170240847780285096390221915025351150398418231193495291065589494355311045146769885875551114236458005013500439765701351175226394002128711583711710334048487484195991059121297836454479185282745704185367225728023440007755728302459352400183947606132295538172218464770221919351037699027239128318159897265677018707453821843674273843251884163048583654690574927721589022945547922386234660505058208341843433017697829928146807325763020359694430653461206834773199118673080476539785629782434614716366376989952400254775953298177695973271179656952956160722865448559943570221473971170133569938519825330224076708171935943500442043225609157777915987448207355365429451497126288001429492726816652425357471122002299631804415530601903531117708018971595650989979335292074763390709074358951672480277506491358785820466839877962812462621635893379209341893583931347188129952700141757753077686394481068342757635850769226957465616535644928247888262529857643760448085531161709974316646911122244006538088130788656412992672335613511341933559491469209702402952978305177482224375821465881594047559626508902166125519434735033151425566996887020634651582086843687444694354921121357018397344562483221720279597508980118740556271976470339760329552384826487370749040081577238324978577902427680196090489687988802234864199086626463669610724759427067170522065151815498868669956193993695182154522934138029464764177491982074676500846397880815156863438335284890380242373907002320824290477892867467377399134944690248514929257546568442749408022961241430828797081856996604884616469986846808220866100956907986246098311935094396473558166215932325591845873339116300994489140435249842100484060352950624558201429706950678011948780290956917456624888397049308443418801945883462062647102639974888146940613024159449219351284837292044311491941728942193329057912039637778358144143685888543873772904584479035038969686922912837062573100895450963059982265796627704743539224754590998716534952311508603495587068492120997887709277988443376565475779400677412467267018342973876298575712643820739853414423817020032027758500775141459418727460039284928810211597666509690272834793111950645679452080874636906824109632395477355855400443791474255651043882644052951105225754433139667081934617319153534796676047648052622505684642416570427648617007159678757118746731008117253335922537002323733871635734617890266517166681686395280082282224676772786855647427921321752559624575144918338942094312847001980153828644170261405522133847677596754388198806882724302231905070095554117377581447506984792340486221770646349449908905490863522873129749415058882441591663616519010689119674984654182460156974422128766210547697107787872746453587497695156262605715304259033384904781362608308875407198814668712851391756760218542296861682002791678805804521344040992174332131766886085244228764948390604818218364804336294968316228542742658557506872459173459590474177362818165073479509493464665426599107753493925372101889778556873968996079195287534508701911217287520885663005149852781496553853400500389217856681685581140203100317328718239604126625284026398427831317752760441131221953742608562579534573850583458994654098781007211339129698885714884382526581981988890494978519770987316771235549018330538500948744093004069490315269637931808877023189336418915996355031319862100781087708443205489021193462823486983815388694839557799612383622880113159129242791013619980103933036075760506670961636800302750986876968644021966675761732777032591393943531515044616578833461415316677559042667925120579872089623339481568489276195406535713173896186647669187130501750802457259317090658986125195188843245427640846884938120325834764689136150164630139382809043649695572746973067523926082433842645924318661556759966589735926903586998565509034621579016864428566668065651750298645439307713187107978666992878236138452364103947293488863882671019863074983977244577880151862806256255093400805060978165760403231576831317595256374686667602656299215016253008011311539467301535709710782619099581200764760033845869422381790391901684578153467902785768304166170634430960288168758047855417298496469212847896372227237689382272407282321114309002392182111277148574799341344817172342255167778688394591740523791631419390181004989091525430684099218704489779539781376486819000226687889766189017594145176285877939760595729476361454662647722436880028649780288176120650207708705885527650005750294438903720254269915132651294224997291485458352487462681079539812576502642296115742735188255535832417354197871819618623010724517522138230034911336862337538003770675347795341921020741393661731124371083460925117795466904720038209056485412679492087532589585703000431277932613987512160308627248580326706500795821183205793496849103367192515921745077402157087100543976937517377866342150979809284077486634236441917185625718087431964478431301755826313375207702387588636154787761156257146322260999998174475743071499526296043559283257461588171194140389920333234719641561970646539170766198942250641342823794579285980342801046618176104121233459142585273627226353249597269711509285111484156892966788771031033906726560787811748081910922250411131119552299754447073387980117911763903617572031350036507468120866389817176323369411412342474624423145043307556740178214203477845876344363203977545683565022219611842779553672714373703449971182425087630265424667430179305379540437880516311852838781249476973849617104258895126963786186660524002536494570469898350598651917342647663631094376403840927999200972766906137455726132964192517553693580134952216200469677174222461680465369235040548861323902283885705775093314946497736194977361985944963514745083014398819341338325402538322897756652597018335772207068631433866601838582793141736212908551186531413253456179570273764633851928879881796152638313809886336038951662617254640759497525833941771715588033236282376456354546933754121296401970879008976376370219517222348556725569014515870711732211320286786413385742722429334068797707766196600635198316851438018748286100779965636731530950335847010601131162273506212827508755902152183340099296069537546031784813435608446814269230360672860863138768184816330155684938373913511275162228844493690050916207189464846472679653974410402393729172235161713935561549989687582768659331904160139850248933357297181367560215744793924325183376894203776768310121524603373713816978140655568492492353779115482195013677772124017402686902764197070078946520149020068889346088927861136056092438132394936910599465481020574796281911237148484907106859255392169876564176093498993626564991916948370794169023117220022281326977014348026124961812563251327189394566768818879530168946714341444832898651026642048911303720854271118069722755829390102433575831042689850396559193980049114100980333250728881768714646119567196618103084081807137209846679192562910921660558378350437781551002378303653774400455856345866614299344916579061527290669286008398258181302601041453862457705549253271883998150712575485359594778038997168782398744393999028830216966767986276899418936388613061493877207716300977753537032542729682404495007563118646571081609704471827198603720943815298675249408604117551494631920354224029221098550044546915618816565464996611379942670946360461398395971859969275190309540679661146427317519431693963768734362564831519217731789688646829472749470931289825726829872230195481692305647028572325322442460845327110626131142256292141859237594348065939680640143440606782639867430612272312072278187753094574083104828273246910596685581584724464984367439904410275502896551269889028521280348128378094707411386542179015580092212594352378930554200685511508011773770718881104480229128835356023058286918759208276414212037756060252322946416943898244357118186608036930844483775367455180865034979998736097968083564774724019700145170148110022461955687870750755302744272915220372336518024394193489035450746420791381262772859420617086128293255766634305217027273649104118021042908628128859910182544176451096887930400438312844472059000848414073610372759746171949014681467151764662969611104083351049623265775070841752970978574675395119839310714655235500311456105066202293723802349785689979516717428156263780959573047756201720932396771119511231993464446195537200968974103507665371713757725872760341743238342144998468111015652122567038988562270307091782126982761222247636986028761415464419319022748244658668607513626159228869783398700616956582950639989797030154053670107185070611664195514812442123951312130134397598493776246411060548090913513748025525296197124570841036951168622337802427673535824833036768806646829486349386837933741617139100191198231836661648142429259179815182631630229738733777201876366577949596217905749726899358773494386946596921681221463003541679152672053147100796879254003799803538514694923323895629016073083078686955098892879194851216569465009490237096536219820669264517363228048614577960064969343286394783489261373520721752953535108450711308165653424723950669287315164425093246451570021316538524552651061557754819086721916794135003299097757373931830744938916908057006120635037769197497367538267762432676929716617316297423616689270795346547596286191453369861025819016627438875032019452697166234753698998271312103302645205289112114277345170190530767755347748820313366582658509928144409318345357392663248204560246814755394648975391541772396148562880135466057999625301044685532625888806109982225747605019742583797403718647042991347026637926880222670915206671208790824184112414135229718308963046072581141170491660554395752079229103315784814473453308405421651668418335935986855916495414865836948198901494478616615713427168212521218259646346892964846472061591520811129988695582704847821239463324453149115448394971337571998878629817175972317602305788366709412905750901362751587328663420989674945239726330012912886494758402705097437599988803336839510898184930637415833629087378293531835707495224251878591927804448639213251562059440809582807257949507811813366727956920360060243486775272139496526496091527099420871985365147307628091352498503941692426411300005821108713563668128771357407338159577440608887514371882732750598665445644953540754176390807055828417951146271897298212279841121886243535148620839653472743720939490391757259807042376618712959619612587411023527154801176008438117609074561983376626510179351322377363804445585529173395905819008871922440274952898597075806558017712409735591266939731779754843950732089571359533138944391340680767650682130397461083921675083956112728914355331117867401703660904960727272831404640405662855267622244707921808297226928464879745122418127052612669293508909862964725407765006770614861492868926866656552887114179307657669048351003090919723967311866683800953679384775678188988685515580125598563457864218009525970716633271047988252951428490351974036588295193017648940738145551505730196332395555915983982079938694368758102523162859616417363739114787249736070116446873787211956466788414838997761323641100097131776620293678833191964779860103386556311503105109161155399499067312971449077632365911152780603744489410345285697843436758371832666255022524846822106429739282284786472060263973694006864523454164398809444082338404885891900824476907652572188420007325063492507876321973723992877945156116589508849733137597071800770290700197477276879964277562303506164856007958689877964389791433947944311591801743039771464345123057536804053324249471659597545829761036553603114300543070036305164213867865647203092686625559969357416927428617276904151223831992560113923539416922590642694914547918737198143577790643660044660072804124679080493011045935525023472534546376026108461600010631767187603345480570983541503019755135582393361072995792090480315865713721792374394149117373388793042452710843039614278923867777875574087979211638765350019944900021391303862330772755339818705721900603790190171898620193160162803539633962923697457217472269258275977416419684573808982564259258458005300281670314926061772486617131293074442614089260193579348367382350668558284994999426892636432216399463699450322406762111599917978461830950511056735033326576032181533198183466317245466373701251743074592088957452671748969226040616525942853261186650309617451409951579304138494801386271499196511389686243736303220011982001904434861830844108566617211407596253782709703979717472816881621575496670387723746149819006237477950666794968978942119708883306688139391627233840499856961795811148386004081234081496316322531510538704163336305725234435222755743757990587660281971381998393270289452020998083477651105284376815571382079527099635606383990469261598066059649752126851076254414364700441731628062830842433904716443975421837860073533822049594652390656059683761682836721484574138277647966511343118577867650377754602101361482370164283075606528972288527818779157188260459398595554508514741071249654984860187034391585572527046249968058895565753524834919632957729257595764391737436583925288632749689249984992253735489582638638200656123160818052104648200564956402919303381268033563651913017275255584694148748198879352289177228455809047914867877821351657893903050644424000820947121848106961462193370561688373905156102366614545479558451657996660357315258954471973128876565373319132051793822656516527438618364297695128806212399084287964188394347102743667419220646892307351931388449840792995279084492355014711328708481222715049800259552506647873890019303570131870114739767122571671759851098470586698729368734389199205417920946885005571582593440955808296518988691572197733572299434273573146870726511629219935083239441956339097585527360986470326608761455782672987838860137658316497957415746906772346543918332146124028882790963301156728002152021222050926993780150188592091183341289218127966012362257402530765028974152933428871902338380517036897679598739626175771444713061488208962713411933371897654064312218252171417518039989699843249202012531304584664503483335548842144054395013868615419653377683979364836240335963364046731358205954670623832208319495942847786253982233656912488556174220286656601552299294952040539440309542205183053961110942359368228584270767513832086276744440898868187304690637105809702541940930512035756283854059698671195562662144253865693794759472998049259826024545776231949192192278913431776997199202815744705049111029508116649306447216481211160008550168431800389029459476797903459932438904741694581772015644675213637482824288010183559045933708530782347287075577574713261000498631946358814817258373638103645944680804986625404161572259986603525822339003142322493164836104957529575762523610261067645768703605027513256839517158987116417366547342674851422124982967987669170895970173582817331283997995082841092554715061041563516720549485803597002371658148459793933288965807413063560945196370475511605348457222834451366382728088507403997839948037262010643277546861462495111585876926250662559110995562648199609976538085219550223203464436363487544492216723911792312650836329923940318087961649157838070426706209789841736263586955907544619439867569059157373820822426098715534616194016994191669122579579544495019209146361011798926287698566840382083170152119115717975455672618032459479013108597017182009497638286878423731575705334815614112021383335945829309036260305438507417161600688431098355850893069664635094255936336350230737309207603798359849689424500287474232315805883538463981907402185510205710438072597355707520545371941734820395892543579874270573022368150000649768364975370453655661662205168634845702865659149902710810809519359011723860643885716225646850009039134946300655385010284898128794063018034279019781793393349236835562591057812008420081282264413632583839023932897580064757827836170397727736423872296605491535260796230976117905629127882643243862490741506656294975998554076686024836316991638291569438934654845889296641993056754166229326242800819001871279040991716636938892624146008452312389990407252216093279980500131572343362355561495308472851962285675458284260082281740975829409838999428956898017376257085339633754752672809415998666344420005182611580695118636203102259057250103569161700042016071548980328492076028231963466635068741160393413658943928231996481179277784451289830025903726551939648648696341794447373271401470420605373637637809872463292052605050055206090512243811467702847075258282650790589245176595050029033781675260117485268097088662634407758121203974734545698938639069485191373828968990025945344957439697846513019147067238384027679857181872771083907648539693250337646320026617994276685114340656160358889907504923671132919845687551887459960088141675653849990170614929173161491161194975983656442250045729019950520996324539634584492153429405822323540282024330060096899722128834447630461396602859018185307851472725851056883358707738780702881330796957555094816730510638815690203578241941483895915192391480041629118547635625773646360971976486962261545868451338996027917652848407939303045944842485018303833167259426930106558511693338404936327186694948898301804478369346158217588398249007172038791304729425449637789537822177565055727438987506704532425149724757819357930812597564214756905830629928063924005612725526483812521177002352961718246803461226849344779188039304493257071125222716060071221396353955759484252882722889572252191697035741587135763207635981994422975365472177776206905647547008444715589699900380261302167708086371022137228909670818054712242469098661090004986990991498163838535560300328270532524000830991416262878738174122540089821217319328946188784491316567905475258041462930339471906511984242219533429249173930808816673026365439856005510102123856385128749657994978084004090828462827358855015006731981206092337328609280571754357861037095950154223735864174728977237458600228991076035491291628920699594405065417138425622574373601725477738105128403117717040740848316476769810393939407149524452013178554182856987554479028257404574022295684941563042408296030286385672352678739062604149534993789176736191107897140686704648007436646671006473899250298978133674884205072660954784694534526022684901652977509150309669184302573507349418924103902306389758116310107592121652438439956420420395298970510258058166286745151780863064707550428377203046390853241540646378403755802659942116348721344067615531785265980336095845225995983394123979236831990783969279011820350705716063777278140496873739096931804415976027391494366336389872264092031187548889630857018385181105442125048768879394594906898778660378940602349550534311869583558256055653194243161522551031527283939910791766014978623923555217753044505859277171471698439703601474604091458390741887140255586346315368212641013464265485818165463365612477171287162547620156534071281485676533958014363284184555526330606920660691144753045714068674202316036679476305338727153795412846873519212497127554856972649951804140062986559324955238016904861621687380409395270458184080811902807555974805260770413077644873027605492809686132114188142367994954264212807950822141595049075986148186393558899568091450557259780988643076465718974751005062721681273921973322025450526002571963254988806114089934208139269375813003551106663765734289396152503180469942891671749064897612595052075461347112712229484961648804840186397765109924588813762287858241748509340307426617462931560662592811537666664151949788761802745145235128172972694710585320180028720701859332389740444303376736009595985925217328730715195960581981133961186701662085074497799709924060727630194872119256157920592003719488071509460896502552775881697902579219722421340092559594513819475362369410541007410067485744117711867076972006040741302407863831563390720899204651218673672895179450823443254956458352302269828212774817524965608863111973329653280659252646646459150332278291858324482660286811966036505364946164085411470699262004820405344252460524999895769295126119423841871618189239476475382854933208675430822545256589898749502547749865448108106130115028968843198967685883591585504615313250346493223930320876720425264635508003898059141034135993367949062433970418302708285114379582473694075739271022987941758131045693423286575727204840873511032391083909595170545260859448285971031690342443504738145123689612275540772553345484096970548936087730997378172108093589092316514231498669979371415224872918480383391662936815277421775981877205514643405659525698671185998607982159632213166892098444314669969762016226233432241827134957861026722547390438332252783813186408360871422003062953815585727681300178625296439171788537924073245943181978623305810543637440460602139328079144587631568543568655295793039823079669341032340087724999811558154752601512875943970836488216420951431114367146428753327488609244964625041272953324060289626771476214797469587633711002857666140561924070867425735646810447852125376873753758582570641309724505132509796951554490549626767385780900993285538820221999850064669272907402253672237831577630189580768059438233326622476955018052026356320640293997703584386215696663300203601108059098194136805788155096667859375930834451690597744890227953789471690166962411067632499280341039745102495593709340282802732119032853033501164680478854246493888576859543325675804205624062351424557934215753387524707648902161596642121045208037827245123620063997325255184306279138946388232693345012254236941564331994322726279407209332895027487788555215643462760800009963634966957693997295607967258731385331096717792290387542866528788786852666904027107255554557787553651731300851430322366318546741548106521548144693851957545544872520607369406681137183852692137416404441632029621172790149275449943118106578236437599552796677903350321464432412664969312990875665139205649602203978521515931977309051539535182771098110457380309211677086509208602649451277357728036801285577208579149208697846772026143456065346465781681400780861191269385436516543379885150613403776351760665405686306742701881743663223283058952745689753115603360065453857636104969326524908671570992266867028909606547462617861416593213766705221562220854667854939201621104884455093012793377796814401389844439415091685118036345229298823199206837414937677906578252566122368120032917076766866811291738895599409287931292252483539986360347599393858269220315207888593722670122711028957053393009181044372645137000959082357901720340458588038918333299017072185343146774964797076143938779187262475545964197992495150407872715534718283248475564242532082760016626814885070441611064812732815778483716193090038573938106838982278577334216211418646798092189649186764600306566388923717550796389850257632550596008976822380988857737568088098088548767208082720711604867326935682290980038877286911374903590873031680392942950255238534064819788704204456191926548926166162946002391182440591850831777886430352853114353583885833191920463178701221702930374964603761617523490772818990808133448181659284632268658682386976872036124799918595204849763229957974473624902477983762104298908556913421318780997888789795771098543763266067291683018698608384800248838602486052379482771721899345930383051145276077225989937316054530967606575291809180961280988028553783554597050906260889489227794091732200252025359477013265471528138877920854987410050099941311002243606938448670780966426952231592520792458860170924552526329802224531357833054044932776523970231486941754256394113881704470166530551938833891488529741101906428714326107024261293291001689849134465014366830376590884031144829700619931045490198158243870103311595346306614356024822999052560296150132365780890328148586848910610756893812780861145167442667766082466420233544377564594323089210599099565580319876789281731127362590027677822577864403371741549453511679287585167155126493299092209798167813329571208455976204429514821807774417929279591213007479352727350012084041185152707993448559043946791670067849163611218663424104770285102283655310373591847087306811996316597546945887572386136825168915028023865468398260772580248149545642232973378346903737337973692201175503282176840467590640587074400595868972653104182652857477812302270252699787969853084706637806121670719172590722460462450706353859295134294529641301374051386051029040216635067391291456471775238205094140603355265348047984961701433296846834011606651315570821012174690501102265681799570646670744608358273861221344098239475001582270795057362130126937089551836654447237912352373238909178138718147714119972564218555894336774324973422979371399186351359403212590700573406625226275247915173574398781876071305986393492289878847033580103468897836688966156219804761995092064625681169567052594460607477489492348413876284754672773271492300803884281569676232137223097936798101628073303126741217840052498691089658508616962956035508431541593489365013429498919924117075642176606928618674711324965482303150957619388710790290222472935425310640116448797495020444045090203292049611726237850851437312717656222815982815957067520216704988471803210188873794434459124839967976470800697365248847397940771303150051841520733408379769762082871251219095047771664854876208190869831814044357260476244944595489549980465719175193055408324200956964862186721739347195366143777216574471585684444402378291976023310564096445384953642761999599053746195708176435471046641371594360157133267502549925946248660792480613567510251318850055771089942645801221135668434634349480781414093057789229168180677055889838444135879097146045574907292905546166914713887394180714159438182440930232213454483526669668235062930684565725763617893676529048405219466769795457607115544121318986742122412045630688447090892927097903163527114620872596412562928199701718508819301149947903652132507685876030023215555116012254936196292474416168665424866348556285738193708040948793861175549750330077972200733544886366292955230261413075562418422983343171598204329592846864892424454242233074353378389531366168800183939628722895576058069330657334041752217305167775598054450918768158630306485849021074447819638818926156923389567901659084488370876676878876586635729066645340330370113944112791379830129113452369550290851609052466855020487090693603588967647620328141549679490112065153956413983706218030107086763069790969595642318410309128732559655471084725675850367013192725411003311588267564829145765319051430078776996850564093842071615118221347856795849946611188984179152460484917165475571608455004934520948908319488961051821083801558332221871755224450559792857918575706149318157878430169260775176528035662719392187192641845373667595590907967246146202008399689939898580345223428717207700523954777067734608142215183118208821664301912367187508183494238843003080537761063853178417848766156994523583569241647758694692224741139032891975283648221740819397407881477831180309328481863725533097230524872648765758451881317614066740407050631736240381913798095302807094002328865760463464923527324261256120624740653108016353450886983689962138620297533713533733920166018016044763850438064868686175722259600507298417876715354814153051660226187954395881594849593238387211982229938796072300442451926481263308154807809519788909892226747829415305304798980142604811673512746347897743989985883443216599821146946650599490217453140326955661844882459465972760264735797674276665263291483089151097610551919001429988827260749558176248014606410582401804560127141185888592992699353933956901721796157869310528314266931789726446491329915205060835015316874655801242168336283062684388754526534017900995824153294905646381029152227530171222150512179718075179153076170438355238611442665316831190222359748824600466868924597883610985100706851358848576702482049104195364962768285817363447532788029110531865128833080255459109053438641463582951108643520396270100172285415588764823612674412345890513172569082768415282699640798610322601139548648354977738466970903728737992991472760408383565599820835778965798222273237558351547115821714128813642712596663401605539027750246165704080897051426532217200960894667782677795403812922860108885723755972391803116504269277903517014390182396225360772449193577614756836892903566323019441457029988922872999766587118831821452282880527185866611306850493096934069322735521869000597020356510644377895013064206921516913650891356613939759316885488436166847873253977457935875580316195201176890811983641825549611108812162046830799623547645125876462079913081811726561401889759831612466067165164706707932637558508785504999298821220958132040319992070209395321800467369018512016896872508526234057754650770442832895337347430955593056115819748240327357684629104696744789562851372189118919962057194063271853490986449104386748259882483704467587597741396775792234930447448455032319832528270256013263219966083836176924015552364212664433461291771657401508758189307165123721082147515648400518833103373246314670221248251140638711479322279165840136410989243408181021469795387983292041058118203626924841541921967075416737382251087390819923982932687579191647276819932832185402757698703666366037181917296607083868009426321315346597587439895779354956879378389670743528272842043628137946144305828082199078253363748217542566888663785987289801293243861588256979505151222449340669299599629650055837040817887151346994779988573705299849065973662250302072071473578938347850489102057044599306557860667188259995834754560052554729811765388298118417207876869760853892721680029847935016149907037205585188475904038647368242542416002026911177777908905673169288501921683050858906278647564554540700131044657476608851862664732924419378288668421972013494176978245129623323942845600598026994470410403243921312104317354847184384570688741053332965050295293709782632261684301793116261827204990431942015424800391663026978093356058175276665482563989370476450954023880045884212401568464238003078842102376163548484758442384941542369836416977892668463090876234453314209767501512923076897004241360932969045752972730958243194935483625482661663809900303690389673470614475630212995077046420375271132382407844465319071023772178569879295497957276614302395089624784495294157951774774153490955962089763096068181931629893319739950738618660276917121157248829301493660388551030965931186272850733004330277252821149058312858272757456718759655313244097102617274622464428610439351597295326243898927948196727305803471742067565416132972647531730309613108465134131891350928273221217701883396207463485915991424662383543004380935813818683093050393659470363792878534307570220069626379068697050847969163556912717489927763895931362263876560602741845039956524941311791334296644724876120063311669462015911466110570938137119241813810859191249194618937859503396069048873466512446761201606128385361276439918051907996124047729005697223010633975632989777035438966784963408574817827220533700000255069099795972335787714876971027218165724543289312959951506390816633934387263318367748495543802499378155123511990911287330976170906385658695892070803615922872179511827935915943248276634622613447016165730879107741559757517652655294830721321404685252854067001573919710369126584603751174899466885283535919889606039068015409261020801561193279209353892794269281575311975863482588158782349065151743509562021018016660259537356475135574231852570156140646669064904503883270712964423493266732271292156848445337212611436198052359445563471593773359034825818572735198493046255302386380447835695278214719051014445466696008596866360542252794577244860643197361040831157550113119149608724545003409790265608012653247632796440322285878644765449926779665715099852004180925558071100676087442949746809233097945741984381896077189030459776352033095507722950531931835592774594322146983114023469355487397385140525291239238522149955539080844091474074513090289437664337597951663776190138839180564888222210984396244399444875464877917018617138959449758981365304198901951960330399337679398238114403036803880777204752300922698401967839890522613323572965902149800642092383475419546175174901218780115510579400816840660909311618773324527071125571674228265382614518416552328727115107920956556405870230330882630638534542635662522119335394572881668625450519458726923446892183050872637545572337842434951990331693310107509033190810620342402817631454922569333616011096369295613072630254889520952259181882577495202959747044919420925583971486264844420922702064054183993972962888106343568642999163355629562132719867340377403870327712290139862742557834355636490518362738734682779253447900314011601279546555959780647180561410346253648210455292086461570094425130919662886691498801149709350452401538360746432729870972269635323691013445001037166136813239552829224913533871420583060427483681570476118952804834445881882072224884732192159065176863772777406914024220650644908773581958562033438923731968944043539652318666211501837330663827701231144149683736166047138866949733946824324609167961619173185248407184514966525455422874084357902388396743815164357738429604219169310189801092077618791522648259972852416893538570187753590299620135493367674818713734881971068717289891062454506307991629236935096050142681105646890312727779311336045308061519320744274994585347921923069669522157654229875328263982724752715497292484671792893301017135922999860429274973926403399962014032690202180547681167320074313178364319122328100495219637923416780152878585613779664014022462610761691017053713675076634359761116245322046986257039662907566006376204109835721863704503712279743853641368544151568856910539512023082397307841303526749281084048039183776118932173292933046279903568409819044431349427419661595746959796812846187003696904036223374213039859249863904935440190805395765744345691726894134098807243582789784019395758715778604167402309546246233712216907925210279130113864945811686617314667956946806153007378240496289793256549032401129370037469557692083277703534923685918125279283529820113101242477940936995086874057089434082518746214372159680386172478977536525119932296342508177116221553034035302013974899893226790942343102016197917631778708688329936194223104356799194630745930641673630247425451133889939491081221104396701351076402457913601181083826222438629529777348933942474723385839179637769575212848200618523372036984403727754139931743977329350243840260216343676704388429562997413558462456955650497874979967340974607025419073590927076281465984017017654555059642309147893017798704528813071769107728561519368046524201405987980981963538783188374430179406339193631244570602021999146520714042166454328348502428010011605752407946815554054041859687042547862432631614936815036010376452211073094194504640808765935637045785359319359624909846824695175125156406293765733743867377038906830593775365913180593046015684723121195353981410679666556972339235496719573407066101932214118953747335916072332516639802469500507184126387272217503456286135281006005941411051630827811149244060963320178767945103289936233286446263702014827183098799452854385707182720229484835491545608731007823183958609328735392668310055574512668004986765268818244997534728847740605175459807849060154843679665685222022108490485642693179142408063291873964282034533398869205854796354077094905229477957528836895869508983525851184440977637539994344165308969407766420636077966055938740878995723185619198800383018828296819084436191271994905693357013971514199321635612775908387901613804526950750724759484954274692581578199513533384050785085137952844652908050122201978973716244944907652708828348162589532759522917423001295851443874323050485590453450877832386172231260389610548259334066670542320504471409417001362784725357693247795848841553003244993659861015616951445337596583231213574449456077207203035114199999574433574762706018865893900970757768718708904942949246821213156784486301912061078218532356951490920613505142479506075255832370467615875772656770180166834913595449325100861015024046925156537635821404815855344791048190373592967293667909028305467342740380489986369620152010524567697238360025595663821879934293287370506419756215044752893802220458385541488070368544074853690263725994823598877859248284103879613506538163735426455789615211291114032550896250357660269409584679200849532908453812803431508407127313673555633143915837513174766669037843394742775470208561340309758980870374798956918751595570589649374988103968631798074183237040635630998798021686163045985322576014778938099080120892538180499124740834869997254195237953193639279606915377841450981718507254534888003088780271550537794023845031230800804161441890886854975412295672788392712238514120802805842962998357109517029441918065082924045554413398506031054761652259434049091082450409049806055754133620439765860553116784812676473192035106293659468423619999380622395738249421047289613506121737409929934645042851106772887663700309357278939913723277587810996501057609297951271110528509077422654622162103752682418135842934348851432182305558594111768637090313040944057285167708249101684542035399931349951903690781315954115632537647637418556351886771863390609471255458057895439544134048816889674723838190649430136783632837611879444843136248233887095029184795273842132530394191517443513256427721783840057664115584867304769691846986046808374949835093274755147121888462350198287475270088202813953008720916619762990961117471597357531708085237815328287846074608534830773892281694104725413946928676959113361898823079990702710187507349560700619727773172261991407219766008770821162233353416425725377348811895540757290791963704954568672711531171026793339418535692556890728417395992054923483975442847273877106345019436895374868370880829746343125899013852086024612787785115358097917684173316133035193672237242839838629081510611638392900711909822497690573526732655806253700531695218526343901268288099906089360601381920085377100746825615871793015074416070370903605827263003784342091547388616198477365409176156029576381669352619764932827522044459846289588102310169987229383963189215000347701569020938773604705812332991695673156486274127775060037655317209971570189653962981581436476091181459770366031789090627335330728348050604716770963280834162204742655544665058931546710085462568682762000047752065450516664222936599518807026518650454755621433463748971505130642639208645039182052856258638762104318640733683813231652675534633772666292837632939181358192620666344723467233167301566324879984196220783232067760846535360077243116687223987153919306030870721181966150341909271586426460946450920756785830828792595819900670966757502282585914757137250771941218353060042823916124149507077273264006606445663292205083971708273217890358850421316702382094216813402021180337473952102128884285721560167261109312884587274705055313495799939425005464457427108150375122494134602980774921321543864551731754889933550229502455001498778843394348360978537343942644016584989599888484626397348845012933744075134850395098194386693276782226072016246891069743529343115243867957486620121094398714260292472726432192911889473898126816618262685994198204491171845620467407540460257960656511085940448409961292251495694972398598238863294772955654798997430695828423731530442813907075759144783347490829568368625169394932029859075805069572752679820170310796620329540164126224972903466026251307223501516269892251186511994570455114258722725042746780929233100057289769726359174838630614927062815636235501853351640445307822829480163383834865930846838978199263651720369097720951995274645719384386779705451381895840339681757187540704498672167448930081829462486944570181540486559914922600957622986195118610691155321330693561855019083278059398785044845846209154307446878218548304429740964411774380079032656457693142265323893759985024503929397639566486583252012965530422311016335427765427952546649161726212608152527546682879220383827381826251292970875121689999071762042936179286348986415878514649300804189474475825378097432957306362339785535297109965327774560196794277259316829589431948124707016332329409135127542437328158272849530216566105533630691924236202071055915779755212765770368521416047574892672968523521688544507381330854807429645221563850219939685443547152253757633725992167636582288305995620346738359383746871958872934464514430008142663129720331937166132922339380622055649997656106955209249895510858101532950241147631971917585154172205061673652175658634808455416553803287010977324940898383361968304497929036779003593604401630942799051907833836583437698965616843142216590255980074407699862977899622147450011235983585180837205111736572491156769904568270262087593292951655103232944491138031842497321366807098728723535429924862625849563134202306388965001421072197829535166445704592394426941396587892632427140683363763517736854474763453318703077471633426274889231320161646770505122318262984865532693237798456177128353599251042762797581928220794978357815187974251343868910659287373153354357822989101568303427493654945478714103970457341105124782259221996054717352328575395812886869548389255485723624326894663186965560430473306196873239261961286790856115748642401295196663246943155581691799004101047626162648346145158486052161783709386858174778290484592002000593711416570802530174571709931103097845379216828201810072818663269440356047881473460932333081214557535525936054587068122897585220636312168549924580357162422139357407195017498088504882206697759544382979816091060412678032950772599232120073716182556453508504983423828314883233629044468126095018341910705837298406628408906942005525836885488472231602267274667517597540089536263829117403215173486897424065318474967324545722265228686242771859905705533559952094942386895928300757772754277206046479248872269029916487586345709170879592918176093940949334639533037156963798703530438121540979053824300640062782618694873280358809537224195736908258309105575330823503526700105562939433873079853519740988474562670305320074608766990978785339826111387954302113759533560553383809352920793507709120185245357431928984953900143917881219112571275829856377722634085202158499975680271656446540967113672741934078245954205028632266578928196393387762183847133861689376017796424420320895450243824857237970759335442552255650479181065747926372927505129441152044625320686939884258723241586621496581169195249744009047087007034357066626571859345763309914459186022360508424375238154295282655182913331642233736080525741523948028803986267671113478515735640225163807381573975591361800847315901714662970966820710584521564005027181022104304487678410572864932786947789209943704203923679050248767399945327830098382984279154212423946025794925310153155892209816042974810932991134536317303753883565702267778771706518978036614467393638752313405630020094616210841926495740114219169165278026419871749767460130017355077299744172284200582178211415286896583726628838827672122584303397732025798700484559077283244133037658480330130681891008511384597558953851667634585424052208162240751285880734411784458086034896709714357189058737316761787994974668156961914155180658310325359043546205770259868104847009367079569488868960756365424552420768806440080179736061981264457838863536511064263262832624355279120442438994095022184685480121494089001276758257226047505502212228035463502459776775868635003616948508666525538398575559135496973608503952188643521810025049928031983751113378522585438455969870023495298647717913883324467344349873639417302175305628818676441458185849210901085470476065725540306047260426977989385088252391196308921241760449911871915032511976371007083360510499968128896665270088008937723222996218113134240092567118540135959731075461965197147817370321453687713735248780554375402658304620911421051140617922444377388692173365697325566254630488689745420435799638407345086710096002378558753285604694748401438803093319472111537096945213245404370270512684410010411614225439951189560291070986122248446732143740212549523007168223974225341082392149346027890444470617453710518200052980399249335066972421069272328720634335318967635141073787084861807920826124395025321139670633830296742905795281092808248272950661534541965765724824377725187711915922553575755207470392272674550385508140002302669117626385221227683842402678518784587678566709909318343543182619765042292867907901881113437017780004059911022876380788895865577653560344879765728945716545957449079714815454460729179421167743779276826356962217834669465256013743343773557673800619039084571827761478054638473372144711860762305941963480025814290537890047753407547216686095789872658009511416632266875236254353096471920280572092094378249546562619696312057453228470458214023031403734702660229345550377432778240301554979838831208851302087963430980168131309767761474827258485367714202686302956905517439635786166416320933840318702143231873004156011807623424109863033910923909959049428029903391063617314601995281098341814356347748143603263447217348245156318223463284702258500192104083190442177574209798140006625209836258219177907561515643228068736839821454560748158622321408110813772549238293847857691530620978665524373327924177592669948576254639139964922607253780908455097235791869410484455937865595344959603541908183448159700420344635959731687138349643212514015135315034056565468713660711065151567354825708899467220195447253185273353391545902260691144423976656087129028608035340373118490793366553532012836906841075897327405310784643379580986778479194724959270994701289091375540473061595810097951200745142628514718447587523235640763851158098904974631099281548143037872425236333097312847068601981169121207060811325239447541964203994059755026023405463461441077384541979083541632851363057194875326803087688008892677683602310963822094427948744140866064083342437079435949862199007223457098695143426303272020633196369567619459718743256093828881937959008109149351126775168318767586674750295985471783113699772392466550942263052277786413571087793015780054815897588373650802506115104018773383740898503140465894952949876719940579425278222372343872082776088400005665910475391056197818799230539246371187691541170918429327073547549590008731428923746686126976767885335104558735534131649833213812291042587163304793911673867616594606130456680096431520694079070200161103984800864835409960692863092371423435893446310453602018298786262137310283653696260875299498550836475611991311748134061606247868290091623407626149062859940776261868779190488534269181338136917478944006820077722305032517569005021752912910248729807749668552538867870919125158761931020492702049082941899922708392567910412613808383022551688278150810216569386568486230636800839651621132443572555458559314783881013062946202562945454756580394835604314040808508420016159581288224387635126419569720635409728069896593665934290510517164340533810898634770469607398400518242104368794680039536906760459025547377596934175641416372213758226667519060591711329066263042604939171006471627387909176735510779093674731633479982433207529148415833978912909107648646318245537253095995169094916059290908016075199847731816697059362823701517978861467283207904772163560734628475721819653721418648620813763001176061892412930633489532279503191808281714386494507832495326577105379349125158163753557964176603535598855850138981773170499985821658538308146273679771057316679104919572242528464610074011075110188615077614354505503744280480827274591810221599760094652905026072785729638512524032414104910260122955351119681714125520091074775594866326507705641781802761730903188766180856402540583398690142829748228531460096476979914077321422845651155751480852019061203414442670151392592455614015935485524778353868936294449498074048643081175097716726799673778644088106885214380215174540757731688975583851357181368024931950521827493430921992134421156644632580091916502580990980634791216526612887194048290102473920066411036141955435854578691161743534668789043404551802016799392522493972186182308612251475512088821566091480780315355012450625812295794628974782585976355196240213678911940288512396976997058815636253852679744595736031478736773833450920336410419260284764251030556995881392472980430895171641505856488627932815602111027529551079218663711836338137984597623498505355072128028205812258608264757194784730709179244567148326576957098422381493184038801227609575907983803021715467560997740901960195874930099279147649440627978531364409118537756325108308213947274692022088395257949164895514815087478965857439857190807145316491268229655619672942090061601877008369575131196098230529977013316223229238069676010697860427876559845311517562503172361572913042563703193531744019490835951782197978555438889379976010217424974080680842692224158568043106657673183576316604617709198724946074296065931122473519187662483026423652710767077771133975388501767551160501875490396439199479964410141904553572578949035091087582022835564388663970239839833829048044140837225164353016465491135171590569886488165725649127289222220547110300512531134890938743591946244840195483912356000152908269096372207740521761687754958860830284710601728374503196730132498569856795524547327017516813777341684739340475250825638182423910843633188526458383575999473054581124053593466787621961542882623676327995556214407364519217704707765913888713768429867643893175851625706832203603288508069580974889445170874727607173871300198445144122674664144785448177653014071816469228017450818332525263847001030466374025934119111038366594321744856826149309517757050764482519331771740719852377380409591048233867773525110499094079033283998413162179946460798123036032386686671984971108407387633937793950620424802617509380539587913022611607109217243627167137116341441338900843406613617379991756971677925539662787572847006127426024247722160957300676285554735401440618975528001729689043409660515867737186723303020242776177415494254138366621494478019588731476292315511303104443541767941776204023736820615560095989624662730237581332658058034580256196769922157179328598347112179987151502823926524159307784768815834948098428342554617177531670433518326579070157889278331287071541223979399918097249953208479446314112859180549328657232379145178905572229271567783299955903018697049564952939724456644996947487195520647728211419200001986281071021218506715956194961809161174511973416347492911382440486349475092709008338129796632639710279486624092977881214007351073441609717560499215694296983784938743701071804531174802932455946852650385860971936486768482740125586111356602809919704086695936810966030996171270740072870579205844449763497871157627607248420138578778242799897856694083310335871898346492840745784994982780040312400103836218614444934810024875399628468850176307865852369045426047814630088736210319569859454807574142296705216343795325041245986278347416737616733297016039606835780270807091066020979422953559134867547196571916923330296386936796215174347878063411930887438108971489608070133636270564379595513620940602173163690100995826300529692863411937961573197180270445101896158351143933243013148312735201179617538289483510513618343445677664925458938190352174762928097669449308812539424853002786477571537846727871103989573020109741307912418675738406531484336337663409306321184823933242880865491678362671046922764537791081384463684317729790753317321318147292573168119174505050783817448978511913049254437652120168946589679713491936721347046206012646450408760320530030105670706564941265578120045002481788971015222143076928261590254561594942259604062739822229475233907944409202206584856503302114063527130580311977700317070001053450245350801223226277712241874575931164157751762716835746552662317816703531091545411748506308920922554179953752349956443751159176156336796598950878274376046009068926550421779333387345797641426159137547922343409442612273712412565694281243952845101748131916385523530606829791860180390250476088128291517882285968431574248986280932004846711125932920225465706388333466415418342363933210643315584384240002268341162210663808447863416890132929815312970031579449551620555021030527726712336147034525178497510861686463667757442261069013346587438177591517114391627140861778928685385590504444675490537405557851167820430901558754278352598861346549783782686309924972447681248142064294997321065371687135519647445042050417674431476604053237708233747275414930214648862209703808827326232141456257831862212808351623084736641691001948319780243053753135678280398253870226100323178578050420353346461090864797615861618775599078022223799300677286651465741887105733424128797845430495493308888427304354035002250797239745063931034729818318336374970269022765199473612816315127748222797450385731416435935825824244712349407941319548181600341259563731571298865711690734801544350018120820098040989521807730112609030886812893926528225387525102750731312386870621175401478554951001235372561721770994753429056415614714203756667674039371199180608460575442366970091028166280299227247448297295850984452207908946388919398439114108263490586075581688170834970543074008611186067779865903890438103934343320190654936096011485343905900391114837861111082725641175577898608677471864341502532696804029644743053056824743049319032379331623470583012340017037734098415024860542336063433841012520881143692447138584402341378123121528099535834989204821653835601855804083179239569009426920052545830714722276650444940663151510135585791332395884619153510502408419618119305853612185638623088517745390743899293412949122483959566417527005564265350227927467352912457959603264191931964919224723583991642421815420263048798401205739417604351161207016535647320147117589810509204413730251648077153487953244578774234857179529627583362746016844022153838133608218251975519031587718598629709655826058442331807903231707068977065013848357894201959730180861816652686101690949201741772239364090022439850201943257137717408683474808620323773607361645649152262883158310058005118747729708125420483501233080437312910233619811853663395711647278855948717809637029652730635943656009494989005169669312336858884694194527256164554705944954228939687242162052400373272521695393495990530687284302743796609032795303393833077670781675074739165844959230825895647718441004169432585222924628469508028994864778976173246976009378988081213667985727247467459216833835645209311252246563603326056705136754195005571551750635513723462448324904244999212079719743376363800970751688122492356148273696215060693458917542046048480123260712813843375395208696556612674547194189666597409428314468235617091699841522948530638699867513705040028585362888550259936667773647575471364125482085001733907854819745610339909187477607593463568341917992767873457357677332669249475706128622680037462718872700648115592702654110458860573308802184028684947973313859246292880230186395320778965632334176571256790740383942498383068147778658264695140689211819637986170867788033551589446697207521797201932378761690610471468139418399050858195080022240057798169297807567898351190299338714342595081689810302017110764957799546143118099679561459794186527201484741854783774499783501717622570065141885770991302106191769515121412309067292909627756999234186945518535043695824534298821185679490724911203077103877310357353779943143711509336067521065840783389844365370804667535439195375896029934920933099844904977861945834107143881585769795494321516252957998723483966538408693965243904000995053764201381327023343951656943813627960625840601485106807154645401553769748766566316340585116683684327269688767888289794253395835970629706804165563978003649918812003253888818215248000664379046285486751780638321018543984377086360013666380334307405702169963285318537541298654902277458162842668000566435080063491138933152012338359725559063081282775710953563617196499466939206335611217261811710598559727553666687980611563490596552405703166161518462208524137984931140418228824061246118878942940185501487240326374514737135222787619108974700810263208922338950970227824178994506402103481048564839499827416717676283550021004832429408688235476677277394141183977921229934559555324586819882340809973887607526288792323560006149224494902764201047514373132939302873504090429806264399673461010796491497120366654237958729091807485117563391092694098035658978254972415128094701414145673086497284938231371768441630001559247744630227739595490782502195963736334546562363757402849188939202576317500206798560000046415450300646201040542485901160119564267239684994982365104660953357198242240828170966540341035408306440830745854927616852313334843494785434458528157557614620015810738614711287462927795471073483556310961817103282379022879724649476409814402418988036428215504669963450239316201233853323265598313562205344205458974691595271562606979381119732432562459303374734017037038895842184087240530756796925419804894855995330962553950726402065456977471926294539943274916479326312944185452169773103961361698160112933766209492608640209118540085109289085680630607528153949733245185590237683111970764885206463773260939169241628200903865222398065879458303291504477978274516244145165783408544054335081697289980565219312424369811587058083680299177999071694153867320658948236782987758191503994509476880310664510169727413280627112362877694252801851301501144880950889077434151602711705044759972182419679049251041582140892939875052136898733161020746570452379422942554591796189277885182409539926483013434186251455496596919502404274298657779200618943630759461036800812410210433410019530709344047779523421904100901464693818259983142384147014902067480458516594381466051664993919763169227725755249847100063058537704777824576027840846669444989635173791561832344036333074488400200343073638674110790412501978347919938236531605633196719069115258694549251930211094253520985700834815628706165671660336367834308770227709663790881808506914881630222570507850517304769935909137237791561545322784720426597130283298463580225012389161979211013645344491433603318450366115479047670131354414171101597311290690336251627944733779339160408339517262336672696691890892774625978190600651094227831976477401719777976977771226376116586135814516577898623418467286837286968115609922523906569986446444165537177190488041522812263332109792687806446580252752436512582696088031803924065736485641154154085359042629475287304322493858395547813893345184658737893083461064158969643723197988926553575710114110934523914994392369226368677093197002817725633085357694868567101304292903150736169186137750127643427514953891227878847614163395065827084475244901015445172357922816388938223100815768028827538405213169744436248792922527724695380974565702130481963259694302326887004733390853635766204384642756179921653197015442435477263296170014359899541498352897296253848097695674802320320869891707361773723284693181479576143332329644245934463962297139119150676754841428016087777476919715578210608859307310210107300580426543822298187047740694454864036901287732682570333970047219255551990500752216121262002797564882940153503159606150947514042143792415592103297771676724691478677574268254389489377899138780838214893882900433967800145170269229173195663926404668027796852756197519914318157008101166558546487009459205459483022550990166382657840802712147102778581804393972230370801828616077287624749673735657069237380199895597702064788458124842432025071395368813233983456545793602237123226455102016111437865726514789683966004558723814934663445647356307259579011959750453226145833843380922328372982772419081329537951196976226138164696152951711136302267160296577730574547107516021914955022978257362809480586294233524998797056256219734733507145919491924078157214401390009474522576921425473918455711334714080215164349374760435747110832910468997967442495742495358102255438056417382861086475403634221093055666123845514025541271675696652284405019026402205716073896929301952054408446917145693529620853719522418297539941157279704702945932155098503913642230197691048406428254805371443945522830175284011876768141886931194284748172939082617007539028979564416631373624117558670896100716600818752682399277252866060536888082070568378776640110019156201023791661583125306054749394828985202339177516348655976601181696683340720755549545613477650508420248103044507645480879384121924975785936442966298689418777580231651730523685826889950278981675105900752347089031620034457469280719546527653348910625429985432931572889505895566065561350353764577456916311509985555769422702394465368823545426446310495299128193048323594380268065509980541739288666052273036571780439258632646861025881892978774798665833611878000033154589303886492163373224050724946009867682069007972932042940227636439380148621942911833861346406651708048843261267757065957917213424599387864086472268051208862557831966535876211108144301816703246200082326806115218518881727081178103306858289929042944964996584072520988510090527263040684863755838186166142435550100339898846473502491093478693107444510575598829350203007898256269568010660351203873602854890466959318862527352193749451158411299301757124598027774080887644474582382450465530090656189753409166801306005774417182269213830490434746077531430193622109302271886613621315534890133876737597044373368620669757092753803972902141649577671004868132895417268465723716003444302299392486059633178169734739107890770659282741421667029775934161277803777761992557238887317822428856854383085388478319361736827978087191733280588393179794710913635336466253510795045738115646095689460623343262241749899977366676367164959644519388653700161101776402800618374308093712820552514711945261278337679389072501079361891416500547636764401000014866000492059677557929241211742165553277626098115912657629734512212002753862578704412720850963192258340443012946909655223529223389946748662948028905946265818848278268007432826042733785651261654729535533471705445084895256136963418932783046518338271535362155736766243925774286818589775922938644541679762549023088083997401863748480690498307328754938759922191226940603845400514460823600106684480214031039487181902437497708835532752544633008502048905064643622716596413130130142174058868816482608484216962499222435748655441913728021873542617785624714552573048996175882650593422788486618163032687788314187363890432414959499865324432098713938622147694575074013833307800278495588797718100175205141077224818399656586685027484239909006115471937412027619991846941527748397254900270607092744056145317474067774984929058861777836989083916062111953147233481138861996634046424487154442684188105065182327786372193801000119361723325564968196227703436652388222727369982846615707775578451067538946416344190482636505118247103466609999394284866698874876039846421891059043879779698105150555954083895206938257888927126418829334571446051747957902968887450042727322931093576265608830385822424977012459250152452000947353060606697513819309154538425388068886340552816156300512886748407541001079695989769645942479378760436169427174705142641668612082838296222578727604568684306525226588112329909526484589133315382585994701034795548269742992520446070725294876813309216863018443024207260183623513800863956780440862438175933746148023468054202956897123698468332777862782197146593629770355550427226293887601591315571107454838093331897978960861435129980830432075601999355270658235688546088304340391802983140962406639262876230135715156783799296265380966256186845733089555617863322426302099461994077383456201040719742371509929644450958521485974019131442704038492588905435736073649450492309972989580164438599934474524872703302753962919867328964670117508901228650498517861236930667786044973382121099702411414520072382664045744029366828814612788870975162345121532398840917039525604619261104278067721427906145774246986363728307185081135267593514622196225961434372847564256513565671941645000355606991136914451785862560332304768279332487798499660181948573769346221562383649324411876372348793962693914016382385511317110327856113891955756585956628991315152403382864165442806759742004345899083809648307918190275548009038934872542909437866537922993671465484391644390925799797043198283912215519425042523014698589818712499366150369136957926006897503615718441841017133273910638201896967073304957835764391490147411077279450654288482621927260787949785393543828174950556553794937108684518580411400306659305578369164603727799825436988267812619207082531977812164716696517737433685323483132288020345097669624820492412672076586044819506352059270747306214343534211922856940921037184374266054973945069531851226565513007539745460714074661144428465536828527168237784840362314745065894938806816786382516152053950131974567289307988234933904565033593183838537083845065060752053512171237896907910320193523321694214538804806212739400725064730588146811809900287487722128872007496484025111490855769019919936764289670152806444670521039913374353634642840705663258053322662116481425046395631112974401838732428526409152685082910335633592273563491820369848795419823833724154810669412856367481916950289126168192162491133906905605907830859697241894837966575109821758389378318483810017181215363453388423158089873263490463681008680350163558134287013795338511459290481520490228520302113582905982832131750254610564527451475437021958990199102612473191425089748920211122552742805592936248296011914808395766237443024869143879758369120009210879893329353480801875875177906923064644775675072622939794657027597886759382011012030751704245232702367037019549079500722768754485693781389968597995099173633554531309486995415787318821597365709134857403662107144941208327253227524213419439989762068854291043241345276963157707391830549833259620786985742024051037015449635768040035200725473161905641954139172561226619260184628923720131459499174848530986488714779829009071974876208078618801965180036989377015108875007888096255003401968575765662550554485583240332271551630227055842539381897940531575276593960806658825667985410322347838659099190408546584421914884868532333200598152012140728577266646803482675464456103288448638330494082405452063666619677014332184956334934840169605984637925156540109266395206448578788139225424953878444622680677232735220145893179947112159800201638953820316818464797752969724888522334783500756746693213574173611938277701568690972901084187775531702501009716340403636907529593362476967184965787565769400019101284774674708796882148188286119679469014503563225293388329199194087551184011852385425128775315680668139487119722758768435664236880767948398196523737784535232973331734689338634516311526331341861006979974250226013929710965691820163302576097827845576532960986084987207432324712772113401632503187951361986490052822628288692387669033271346491497152687784969532963254089816653787523408431205588086740297909116412741900585254111105372406512844864171146004639405471992589744483383462331564204576427298351100580730574273554671918323415406487791899447004834015963160289262252348020422412392067036309322718034977067706437779786703114122511816362254451074271841412279989942599310698800596712708251839634762284009936270868310336636110558613527111091947919319695845701238987932240148003158880671091026681007349364259304948883931543717513933699211862183462936903052195943981821239902926436990105337892975336764300080931090116682514221311611919776337151276324782652219162860394850378612956848313577274783498781677860841487634514559631421917641900819691758610645067153776446729362325895576831074320376794392684034164077541775161610620542621032225885302125756939544135801753947351505965362934250052161045175252456650506846237541378679986296715156922330303254058699666206601561891492608455481951046150413405100811643648029809521540629787732125996649517452747034302662049526220587600178088311779844925064117741183588597373227167229107356400115982523234875019933068359269564516870198303009980424777669894939016956562882080613929418935317795880082337990664011901613052069910709513725046442923964722034813267254402158285239405010376528923999949850436335703021549773529417875760599979336696855928042782244127014296245977346273441465917251702853203225331976455651023750965961596766276107292702551778930882790020138315294412602166304471219061189342539717704914437116414253913111993244339891202091073530077291117394760000514878772525475629210868402619088983332131057807223616036373961874101535865744512304037769748780479708966484285167037541159557763986300271322822201712577183663719813037123418233644225149152417421470056824667168074659681383761844144179432429634600056739077674274652966899877238968810415754721322663161943900057675660679267622155037528908010345350307621020917204987329133317214810503174767688564673445834889270282374000271570579364673575282166892542001284545878782145937888382006587498306004401754486341978636494615915521372142482549841562636074073912035358247655766584649570339744137707966935648159470300921787119081862234538103847674714928197762301285962071494584031349390764150485304663074781576173814588724664124973241758466787695882232430397754984045351173868575158060537182110995250243778992270636703099092708887338060789609470961162707773382602722292849738929866633054129959792407785455607085303726739796253786147218739967648640274332930711060770237940865939374982362545812018810074122142186979465136320901505006763989899008777268929021487083506465097510264795018965311190934617020135258050918221046533737085452483622421075420988834555444514306696067751744971861113467955414212069106273678881478152933250128039130887609292563582159847207110077797334283169774576224978431062864092147142813130185678908015005295614041002667433529099396022121434113606515923189760643918116718683147494319482428206730492387306887670934460325107665634473145219450028558727746582820484211461470083988336979628330496616931584746240268839337320143430648313882900532646132250988937326737577000572794304919552823602656299887040896680367482921913746390155112034751182439495459774521022683840211098098321732275734706474876593520904912743364241635698520796695029508075409161802407890483899362470862236678226665467722673098802479495812459612892165165400627206469897421530552752351209829983701925223861209975761803587773578393643426821230273915933694869877906080418156130083554178014012845319260014080995068997497498858388788186395472948403588988593873708610503221429987384552643778054260738143176762221970583702961057950587653175907171835716456150446841045573172513029659038880652925733592041662527729257763821646693452397379333331437435054342824655133224965181319214660252188172594153423073472736755261100150210864688853942766198802899789273683609937794653117297870355564655171673329147106696106365385198462889576637455927492689446454473913482707250427668794409128976671474843676693045115280777596658563472937602914756658436639807990212077506532756678358579755033494467273092334257633820869637872448532006673831298302978958541943818487901709390437299718640127750574536595414149375596375714626739801748967351736116138646299786407700143185032905436242791848895034746369582957796824633583804053752961066720302860291090078368976448704064344084182562469178587353005644913670754500422376946161751152034994542927863075652738536722489883060535240605394992987455764095828063327760467304893372898664010289598703602312513755675399729668359714548834875036135886948586781112259857114902676162598136440498836866380383024272016343418442621636548231548306487054484277149602126104317686995226541668636105425479280944110786842212995876533626590181914274261197775098963235869305661920103741153921553496356252168577842339302843622326263485250433819342536820944929248684798345172637111872747929402310888469016118949322220616576924242945780610407799502904100664665245170696345610254908578083536731553602248406285653815872164365454339722377824986996941927940085023179568081410485649484995178529458857858189766991409694966058966847165052116326850612671762692296775193172708117670170801399170504353309401154158982488490910449656283018842792733750861531524452957455342392431721527101373938623356386130656007561980619980598880294310587572492474058297429183068828914618396748820872603432030682712565230507858785915516505312314424721061693218241514901420349800730693260851397774058659347035797168163002621072085921175817029674224022235646413902507927927788229506488506562001820467388975000800782345984011921685856527334084041610270032535490731658548030823226331326864164965264275437702770621811814456953197447777895146272137380987674739379620258541583407504655246926471612537327091734324362630811807291088180909847877757417645765159829976906180936348583273548352173154084928285002818597414417705327351357919323712090468972518930929710775190759745872383253571328631135264823367868493015767930010131442324137291440009427785581918196596706601929077114767705358302076852343689402216319232389437063061873370671005870980335874357730912297292920101750161682104785670544375626514046720147269669962643544372519769558305025284764186500411369178297632049738955399387432025960492400012908151742649457935193541511520677688923005854843586978520834673548897665434773668632805799650773573244603868446426095478784022989235768383539154019310886058789023628743711884435758974616960988574060593227328450532906588777002816895502358921583237245817923412910706108070713618744586596873868310603254128961930669474364795478588812523886993938886955480577572806114983852857987539852718704629892556212238987733532268571745770070217583028920826724975863977416175133417116162482047955484247059924797554216204722594361908010129298693445445311286855287470004887019914618593151208249358412218202517957848148539961574390977589763347215269000767098831008055066780942446006294337663175523844403448159085357313982057497909898546597069519361490449607972639948816508258147634814188186505278107211992984053099208134776668584266002696613135933602708012099358818283018211139809147518985961409947349585907286694983234978140178929587127766617339973933895504947529072089512802224281834768455816106585324540454703766899651793945686962446166139264743114768344912598788100613509506312644759227645157854607120576441650089030122418731998611940341038462687204029712247690141122343150263668639113360298119648977831805816523869491142604284677632701361649680025947217538668511993362974962110005102173580105312554767607385858911040433536383898759613698882757088328814145729558547197605102055454661777547462582929400299727651326228227497061979640156666269211908956058506073872354862764246581899774278249254085391081261029621432842789538482478632408262844693034295448689641026490397181054404447506736955015590302545508781942567504947850666126922584749188727925463474837554498073778826736684376608116468607561580469423007925868391913073502560688828371448353850510623166370247775292269710081665034707593627293350138876010339499838703666117533509148268427817266233432611049881673641678618083181947314188075975475167848297710997055770504645832734198939577303866644839713313717602187674418019523540857034262315753454533178831602124015455214666353895930666157744797246790449676483262519137247603336583559886720747679276692674417225024348095749732849372440440266413235434627870402951970457481082341408333013512662276392764051458300271347309779776146657101610863138124726541929028546030979806774089469949284663149651665056853653524209993263023727713018915532091357555841318103421242617678609278036670519965389577629521236514726582335780400277604358022183269025466081578435255899703504992621439463686710015260323960089000300919194343920335842768300373744059020234459986103092458412375409682950727980132747330463101232159179673818956830890272845232850316150077451312394761301253036175085989823669745910669620041409039785175986599419145559446335555790628523988100713490330063633926442103775705841988434051088376128967912938808042939354124514596731344548106568214666238953910804308115783516313295175650041693663243159441909060434292863464336840877420953572264650867092276038933071287143301089679914874934702970118504217142817365383545030598445673664157929202931995566460000734937805552795264560654743140784439703213903228231935329087505028070784460424291295584090390291341883865829074797818636920284759306957390046036449203140432464844903329097058721228539912022029015092464094509904765202847763691135958541387932027281054670789264030856968436477536630055615724569558187069028168830863391761297536124595267100945951408508065853731934212676626454141507584039909572163799430144246368043303487377610693895697621169343519564458944507999255671657859594257915891603151982592125241475877068568829222703191257950787995029164368993252166573751353897269005951629089011259161386245201202965671359096063810971483625024914065846943874325969238351750646146020542763997041598040002307322616537444984973563575824570113508367965309987605386381428620915608918166264126705707745948756397093631742618868192238566673197979830332034103515689110091931225008674041017968020063877231086750901456095568259331700321255577899555304359341137580538853228875245017137064020013019673049024476382503916039446461457067789547074774545720311547996518212326086387133344839553632927818785831323962604262464933741072759847981240536705556296739893510493789512129231250012759958144724967656089927742947619813552502177439387687517157490673835687985470011826084029372461325105029530781978689593718910561681091545684037213851353041848853741026642825124928464890955648364710863096039053605112119574340598307619154254214750819743030947837120924318431229992560252231914161827564616254584520769129934536241363327500767281248719592975352320289343994660232538269490053322189619400165927342764858834876050749268767387607365936392067462177549250481611007609554691401274418930550454350486927312475271327636150675603240811791839689290600689134435622121084857231053051404506312747519903072301788246504601860249454317923832341312537269198142108569368785235399385704801606362528702647811799553349745015285479903623075815090577389357432655608678339822914372750955756286712546302979640891271575669017321856430385273131580380777628064169546227728590261104903624720726081191441203209407850067959697132688818903143237264866746259149121674758795023135766607620390361344873832541150499957850592655231554035477363710688044690564102173313280500562145394199877774918904989757534499432509785327779092345257494083661795447632777749051678055485277774483836561874165724991073489103179867736462734283603245607074564823946265869038618392259602009086682307978966467996683847580527945175263729146279920231214823153828865533700554973312766412121831105073340383042750569995146002323137187643036540251288006982485669351099355550373838072717492985757971055290873196379674648692691845523839761958398569222023963834458710168901280270460574855734765471108661178439430177953256555182362659204395889448300468489930916376420699043882371687082894580992771954531470751884859611593509139427266026125979037780174983068215797757704069740901512751700941601111802718634878793061729043434049151436407828935629827174805687352324448693071661429331390484889941750458783189903210046515149342063942005139162795648045772104251475943235273333885367500637699209886853807173968027800908724407766194277113183656559593086591617206425269958370095965711153078414034468428910916189415121683938779313004057773760629427497219342330828955709063933999066170707621197908671832751018732079917745837634129843697535278879401466729118498719823555694665846827666726163467073179011654446448949582867024473094672381627686549643117817190525677137014662407287278755132987597222667468833279935784999120620445189041834627018045434943914567945874957097888695263736642682922227948500574030779554234301231660837657618091609203676265304239584153755869499121613607006057369709554799335318299251278970838685975276458709680020570145708057673191985467900999161709020056667645735071908417761270291506408974311878699138102251890543217795064550388171286450342353456756586838283264021116887856378770632472943557829302758612131796734916221384319928159980104352724470733528787348158571022786242207823808944538205149867905924484904123288044956692335291480996807140561433447555591352468729804716560974615222087936984992173613156282026713720956120774886921778897798298404863319424322308545942868807137052714277081261412390434508531148057584030612361743639484232234942998821479303492765722219073805148264405213841088462210377935594928566971442737434531016200913106883640398892530019561271007029779426433617099488889879790367088039697118954206393124392686042610842476594873370372817398147226351466114365386083224411194917576203062148198840739017736811870204210975272161083271924187969894033956522857877674125820725605687410552402762416114061192883514973161551537988611149719344623965560425453567152062505436099205583398408384054948653446801436979681548362065131102932966186681142317570447992707779530792837462013919427239193675042276491944191981989720721912317705769405823730119376220170407808773098667502308802107069428936020694772551023817621466527993495535866619645077326107537437746748504681733553367647823507198259313779764183861068154493263871651737693278166653607816557451488947389997280089603628823736447945178486580457755073377355984239393238089321328867654310160838652837612965384411921940119329136827131837318676266741267943610556327011369788051368867375227927815740422332452909432976621185873344487269642284515508674990068375128273764266303226053540896657785975522105409537745976022545124585183020401082852323461692958782931859992359758208411541272006476122084728747305381554214847921583952653787477331937913255402153917633850335333346464884458310253025538941217771475208643503913366655876985314100403121229768259700701065263181850250158335486646174052417482458690609483196633596772032105314210846721916903958773828800723490185238614112263107223738496728923557875505756727610741429198464179183201299798303808963204832425563784692842257837539328123782963092171186691026705678590622422082135055157332872673130187660448775554819568687768490682180863780370327881802857283332733531289714406825038121326953774041315778534892716913777751027279058775472175932190063676733669022594820540594625982723628291752391212050346535692177529188723062418061968938117672085069403297654157760373714513788653347895402967782426644286711569492191656417455935534872453509615753344333009687736614167626891604403348344989821767170135767653827906800147609548188668580414647220535364189659784984338533881857288627004831136254643472889156007997668936596124639037928765275583147972534696938354526743476439269035968534859211781283398410423990312800950542320463793915845825482869415832666008895641226272040278504690454318250422903668477564574328999942702658329219778044579172106642906407802678954109893193836319513099431567457264948537011383843669150380185916398958985906848076299584218009515991681269201742149364604924735866521160207185678075969297752050463538451316545006117367134363856237319760235017612828726449193542366805235201453537094368289066190065416904692203506595692728321833394028098768112804159810207021123623608629544587388124244550083615253780619414907554163976537222231850337333171161627466569610663057292893108752747421300063568906350679437671904025635568541483396347584972766294727382230055899623580709450878796329446536757477031977046182539548534507925045331765916828857176431767577127342779729241961869308714980126883285042568009118328257168847028962634669897710724226957710399272275013250281064731690239272638342913272193912845108631528166407693960118324349942840177908492060619540162027603960600852776520364630679817058576510203086617950889966060982265817849562444693911973921713190203996920980279231841809035604418738750453559936446488254483548038652772415127961369406153252418053806796500878465938212377103421186441068693532613457792388582103540083550736669896560654361609672277088281384661321885927682994628662510887923237119164223470660867626974957329222845591444860178734923811193154979636662455843832596833526465377107661445414458200299475325846455037845622150468359772303377747914876261600884652352294478955668116762854601921474116507960786828994520251589607864040131394431921341367946493318293083970038530282731882537637060341077285932384799942937961430856826625165210338302491402273192405536329275995508714961758197508856292224642598698486125996875390350537971337082145066048354308972445808553818061074001327502144942571885845123149671592597693567838857204920020737945854200768648070489783905188628373803451988080231765626933946332274804055132287078760496407769088240282848260504804173537422414896926057289300094956061220525023122039434209224948360218809852799088847045088165892675408582344688144915112587132428980147579903778285153720816671992010409560758640221105701237353539278536875925735171702472216369179147207971998876735928973315143373108202439499052224797315438694021008200638797213335307109236884305161611347726654180443860897797176845479707974429277900398902726430652488360908270441926898021865103204024286377021303065756770894135383748497641073089773123623649543317670664199627003712551600695933532475397685130915866948989732710877531799744358818648868124846198803581933363812892958179124443037321304597692198522533836414992364750904770332805253319131417755512857447690389387435136771448458783553355474855315077430885995374939633202545200478126501349369851659514789089786455066834224763258487873564320587311943534443652622613913096588113038509582618115232937889711236540589359793846748329798083242129486511726082961560595871183073632693978731825430699158329449748696927204068910237912684452698023263825765594947069062673650131355947856987183306587822178710732223264572392531482206629812286746332038605919037166407941271272344072246563309376590347077977416005885741051685972297607299743088166557795307503358433798481687087048654282964013410011435935933358442179286869647534112209918333013811771572356444687013680428797100854109523653235960098461288387688374451195628294303047556024701266778948254856041464727869789617254568992944823566357792099709498921677393823809176590052670509849757163264076178537220292685811653447986147645886982753400286987848765316571292520098792249814907686082754296139765308899827955027134758358851405662620693511278625627069058041463527373417731502129817123534332111201314320356547194611573512829849973740521009574430712358990218926236432179972070325796352129253841520030172189567219738905504809330321385036462307730006456785124194940519830644308950823764394138800457207028132280331103737054517443505801003278624857939545384123882781082554109453327589496408612948967078936281502097258653034076523257712860001559020922278158927936377102384405885964446617224743748092006642500775946997509141549354079026111142118723149580769471988069617867822538514448963492204063946902056091748705799756992720056148009337691661551363698808147468587334420649619762663441308187575045043984779648778125732563020499186233303753158034798580020373476653688236826001475477199169233128490852735416563595230565018340624237062899810205766209916040498345540471284507301489842887097158391450859869799528626204065962293586295518947982744468475511243666052931544286453617905304417541940541063535249937533325006435548387176560699108615999088437379709841162497642718983493205283361942934651831617219576530004434955644814515038886497596680641782809846338155354813300430917101542561041156268444453366210358111312398749994458114679821994033561354279371796575026615501567727913055019492886373687120318792032015779013565410958493126406135673752312115600280965768322293180111489491832542036652280080127829819533195070335966678354634711145205635625760328930233690649061347091247344191266213072022920552343242264195316607783405309270721316143150887210819572622861776381336238673700648161867532225872954395818294107955887350865416657829740647886994576999980788220355293903563985376445540462309117369190151362786135669163092168621232542231083238402802054707507368297532763910179063170746599776677551504772890401028009007505241128301180710395605360807726936762052789260468026386668709751734948024654743762998392121678364155411566021432716285209997729088073830184366813801815798942880426322599087438510274122892815594468134204657342688026437037966303698387890263488719308759092701144359850040486601710968931018953406814661617252319331039264922700077887975192619677860067897399117447287068075670847488167180896492375341439187456590515827444962190203823844233872245742614136568191668861223402834304968545902473365899077001437020761512908182831709832729907215406007443313955393926374245856099444249021299942753438927717858666011083732405094237718871259916708407059820624844436709271710025794645005363471120201565066920267580203022242869480420790493188975212315124788669823841833734730852058224214226190438048305380143254018828123696096349602042676693209776018432817406607045823299646604502304399848409356390448559875881677775398510113812786126107485276054038166776884126420118092007269186290720446415697328028139935295081769296894425865049640716819433321179430470389962653769102830243006002997508678329836883687242414118268499402461191858735610765562743372125062741413014988624281550033945868222727360062558221829430802049589291537744015256269148725554093344324561321970446471184974365143221944116705929273716602615767238736020223227394519882849265785575843072934952155270478519722849815011660941845142626772618422682425030393501013111443988880341324029062171799076663788889060288350138122472506057113055133047423409263651302344263734057261552115946833423035250777364255270625834444643806733977882986607345711497972743468121977078657708594294617609283594781814844880890840160397233928476397349770489495502339452432838360598006531087230079531335545417170954846659900337355834346818034141674768924062910007959760778615375368876406708508308203153671466163036733497332269559701622909663913792512050944811955432073429997774169636468126015937950075008220911266904535542093430773589222602336988454941932430252497057155404880906235023348767514706039711181848521386958434940653248807386812506622866126538715097181259124527256533308447977035437355281533901009204427700045387815192835855706194720600662264480072734277364913868006500592653514823576111289246260627290177780534550763198246811119811482388758747041252515148936049242689252642393084239782128422655801266089995456205219310684909923285581460608305848481182532004677537781531141355673818773831628979762050831683578161722042789958270768183113596276012341432567178938521466222180857108555757414885618303384101003759936259358107303054597172977517663801928471334859645818606973816822951443351479305464991432507078742940975480298420226784216040554880727988945781547663345486982774236708268831757915813433434668611362137931409308161262344662902287472341359555398999509425159401014770831332304874987726674686517760764218960594022825285690751470838920428005447831904257490921542363031788534554329505859455412641352470867594104552940005983505618162370703726783605496418036176614708150554337821264937302460703389361954695493768931206557468797676699260486499117080086333033673889343868463366012644697888522836688571370265313781142506085452801535374315082902627165418024983078679785925697081085732657082964206981961385588926938431583255163416216470951400913942088812791362193606498386916834148686190593326490736605023157543967619354895512380887352093315398349007518032904769328628637928675625529316413492393454614168046159635434099138992101179340775780122550643189229586874184898296007795046990572644273152610202676522143908947928978336877631967737740395391803147051747823702662452864169610779333795469068246453080927273703752207622874024986417320082302164638518408595875368368665680939569436445829833286454493663263604829120813266667479245688664409932029900537538180547302721937497178897108294353557709460235507788811185470983040905113364114475098947043283994204167310819639227035714945599986209342958522363881474427414660714300792168152218288936770307876041923433888358825036817433510239232580875694467562183457714607379574593739906313984421836118207177636181710061125246985867992868627289349247430299358950560605989350159035765646548798271610327916933631761007383996259856834824389531839812668678273929214308437132827237219150457409252093976372733243686589476318313016528509244440812066888585471292337330438590624491430026963980995367837351361916340973219581293527703239808351460076623658443805123050091168745020478900698675706560306913693974577799150617691434238986495788906598834710894445384837088916821456153652035264863104088048174995886397980981884474673940784589813869972860498106812626383432062587184994989513068289259159208509305641030887186443652011229276879668452902326966324237608385374187087858748593703888980122234466886197033701615435300336183046617734398320999428181498048745855968295370677497881993606371445213266642447297217767331890618746443460794695757150407191837609828265738690964197256670080463758221849454558404667224489001629834824378046462431625426773637647501909266880272560759026276279311508569602273978971410412927940919249916401521915903188758601370905303302662676531408077532104755986740579473765230870147794455080463271228095597891637937384916767879321124111470751960929487272962661880001550388533995706349576575698184219120337269933427588955623366958679900806627504205019109013140120884129039890184014301687319442153232707816899768714426261849458730216711022091868237838837946274817883922329257446652676355732693792805706018781893153596310826641436482228631612244224307201732858084885929225172140576157844369963620371477718857238974666902542817844307081781677228299011797607723819151993827721370817628317394890690218200859390187164537601904388150704944755682313051286349995510058883578893892255126477382651747115383432791464023770280134247241903755372231717804716634155914309029503473333793625606577556314727796691901391681425356973507069960071445985391959816803203565584561438897576403000859318782426750266872869765902993550898047793230962634966223663982206624675458534266724715741884341880263022567864451417651843849907373219850686020382204342491985370151748521912468367936470419076204575348360324894448312002695041091986630416938534158277027294454367106562297098072952164415064430774120450396915670363500338482820690183291126417462088206605379568764758180299070599938138601949468260305807005188970612393658931090875876074816635068979226938562446714374981463187371588603365280078706108863160197869386366212519887830514324403853509249770259744746378052503347860259993623667436471320761294360422865030016573619890928990742233293907571501257715485803811086424222956826856277271688447053041694624428637563032371118345612008425691960508070422690333227714601833054881642015251149714790495942604773838702881071086382528513995395170053158975158333962006118288655686183648283787031557239374886006524390170878216223391966413821393192428770946443981740843997146997674233117437755556755162988947310455572397023774931250073416172343581006940265847617277573313151524422414703573839834670734204828522412284593153979493399659442017214277134025967799845169757906304398151498643720181131818033626139022713990837678558751931568987350418929915060518785870871625923792199880765598647819167617428483160024276173056804842463912211219913200304930201795639394311953052980549966835843544254151372152763274000476179464645246904298922157755860754961509906815116859051869800265803820473455093192939095421578790103574609504273022356861936757860932889971013059669727590584828435412784157961428942591992511973320639043604669978015089083010021044578413637263117392366719437858044862003142729315759576374693116687220062532019053452955124956713790359464994878369564194890408692322488825087121370958868164480808637389859751375253773109961831294667528885981819630245811922432525249544442551024962948650779689720895651132055159985509090009994722321467681099314708758449976106768900359180131058779446104525885575454305761274170925125856811211905399999769432828730092118841135037622530172464220242560579452375529887940153510368025725030665710591144134385122386349872970968877884672722235521570380835986598402601182571711201968356130064734964008406910851411274981153227113522041749673200089474453832643895402734347861865191693591639932255718205188826018138496585435677638834533116161141367410908018690951024647012604723458902207670884603039101776017016284093171071056248311553719941874587409027832257959731616732556133935537606219867743080876939224890001189534597689502125932872296979949931972379490615304870579682023764022202336919618232121302104594283511606157019031118878176779075559580692135073764597188696943701398499267418752074772827389968385930055189374747661191822432813947876369022598600806026918467656065519973423483057882586174788497572653058703639941307949906857763984975967511452702373086372849794517452310966156454886957737415025177567632561096321158752431676372909669143335857653440313250247806210089681271110539578716198353845810245792147796003023391526544837942516150786341837022645606672115699033103431425941711720460601329607611271442561594538679277346642676206906915302216379464775250483652739892767596424024031778227220206422612262931880829482642130006768884979548687741532766457719207691227970495944841194223214838205686900926240387634732447165113337842089562764162633364962994581094473142632593488420041373246628154347088605412218180977744525156135436967754362192424524450933477193226635441938280344846876828645043759243608004104696934332215234384886807077676923244520634170790684926981369973068398018128945174924744580612907956869093641645307911573141423427164912961457391253343148130419425093146108765193239989066770193773659108696646867463706356303699513151536511485799165204933521760851414701083553883684381159054832742415460926576990146513728521375671875312084596921888165561447751697575961345350268979916367214294272537235693314775404856013004468043855837317763939062367299383279176948282860482176166992468978267364295818456115229864253787440859910572297186816478794894930360184250611708589912365709264521730312195651334199238770872262467863174526277160781475645123976233405412808553898118826445828639505943057071467288366100846571300046958614795259907369570376099109683885441973424583885039883571235902237091490408031427768445843244946177256686242638818057555418698644850880374157496680770487984331791402146323037209461852265910850808021081417659107285339709743486459983609759994182937127868077967524223061134513586769575756216813007877692330920945619746162930045194634467120834925588536720207532131722142111073716394635157204483859532960656277711570291893097223057749316756943140228439138641863867159375270550647506737205025911629956811187491766240140398275426303569806711697314251918624444321006558739209894737976360913807711452263535442219498461002995825068763361105254129663397082829832250649101751674039170460830865383985046381791514022745306689374294892158258081457392878915590829461096879350198801960476463869742526163217637663335652123407410469355716117998373727086364138728241412430133982869737861945369923601487145841324911538311672236842824801390923911005402142341030854308756679634045272625418625131646686745833300974024927056177424772524659320680096365484915673362585522192635250777965998603361228500913127074316678422120546751283667909029382748669945962769203999195703678034830852764543471146057905229260729434347646245629392251136512652755191042406571046200652344299207803418655743419004791853551002451343225126451717892255421303090147199563072053725758072508233905689141352503579847966412287442911263134973140461713675133505767319840406475306842743959266444311631427755837705870655914171493076687134108605378372726415317353134796076743527615104481262721137341366401806493624084920552381291354041178915401723426146254430659894996608876449180793291972971691091252450360836317899851446323061577682047580653478215699989395858581702310509376931375621013698403212369558003059954560798474624427154440168498258291206533841645080443681729040613660850030439791737093237451255472164838706269445584240850867547121636871076273810318566219342383338691033669624121742900082914586604396383797894087765187227636422753192708043119198326194890233567184944185475573725764610593669756351214833749464235598341403308238448843588526094205758956823788397332690348113358642531376706942680901532055173349474159404454529856827309176359950699200514916497765846312495304702812280463935101384724494166152822770675623134977407163022897294195545454039880363102008706453596706246357817970665366540533046053565702719228075448337775829821182015906530976085078432562114212783107387119034238409173715108677330680309090391509836986232075490531629086445853581825202204940232175585928075190533147697108582146976314621614985017354936324892098429768329461827355429374779306571240561103524148453486177934566825261265524586901450078900671132431072092219567812274341365482347873171103146397246476494398136004730620846441731347930031490125267445672225698288483022727973088008083510050044630823766926357391763633098973410950130550933941807167983596363691436843584023530889125881729584763795261492811296928665517409487609031883935926106467987015325217659505287719760904603139470845104040380855194624623024777978576040241582680889671019685052959061481032724338604741601615019120395916809758322351743964823195342433115060925266833926872088434029688669324766542847366671134674326516975572831580543147019700335321179615689829424892874647519928028246019993154836328536234414299561523870309363457081617738528412850282032659023474650161075315706379656057787751950186441420922095959042273111706715507780843512099481796098180245576914320729852446301862860515336586884494220752625702585229042844933828016951672602856335834177589567226327927459917590678019784624952832851805354292733555648479388412537764677539429138107083621411215983881440385195866856837939703198537770846923980694571805818995912398745144937095602225271467712091486508809403174957604819322924863162331375236347284281050210302114815690320578247249677243697112527591467052969462949926346868022989239616297282178261337567423327525346883021008775274820488594893885074993444178139773131314034919537342955291465843742414874944017218077609428378766529797264432747132107096318253596449734573344455400176867264326989173798518707227393375542238033708258438828699560499489638203627679295731930709979256180897490059529402982341390636671596570518173094125187385225258997213253235541059768230198862787704252461921977121497982448524335550307881933239848969301398766800987222748688743954015899773152946830833693088482718324263908769697981182482117452072740149769871639021554088414851670727728965572516924636580173174633013917937473451882118561822045460509956629986942843506582446448489537845895548613946937849657447701265665186734090307386632227827893458016675511147478258588502039958510089642675638830051554238359649111961872090939975073694658346352156478436055272097242604430214351268196269970276561476799594844779932634200023127995139571037201583244210378540417411418735188196568673103778366470987488875388530442962899161757169488161275267964808725584919455084439443839225673588699076620180469769853681621366001256644206987283042128540621549971099239148067676235191641835188675494773330480806512295639838173282648781932437289297822393148127210057422122509249801391843140636456529635236828169842224783632929393413635462433631092946226149586607535408664176760781470814401641738143350890160066856927121819639778400212064692384278704086506323056718258938727723119802982191705735338693967064137060518587932374812282489008013833915170182447979628741004213877152896610308865329739757834130084874322043401626570998794613305975461345880720543619157895291254668913028589838437289466962387798460573009499243664784114932416488647894916002597423865057616120519922305051634352587764529917530878818373065122285082695187000252012852455968524697952747342534461143562658699049125938990709487781103742300509188709976083786647277465530226696130530968499971719548964648008840895653321298921569546316382460900787477460849684278739030352492749841557979734452676692828190188387014944952091535340934886276004118972005444610611644350846688613075783008178303063616777950907614301116993041978009824803755601767873166694347748582607243252571903301474260734931663291559125496424100470064687626370359626235140428529832736053752341831485099600799445279214256953882399882818045930409128418538234328323157885213822378851449929671463823448201935402386707475600329265218370587595905089642824050881374729631239560047232558895607817018811393831535647495282717842755943571835145875110625243012076392637143070675320150293167871851305952494007421365302463868899787534583559301112222702440060949778067479526709616758785340188489446324370766890693784167006889447127892238323801060221317610430346354805766286959967094136054014540444871846046828270916520217974095775796534961728827919904234155230396391061057109789818420272559773704921740452157293194403223624694276873743707660274383015931499820814132999226519516508870595127020687912421761507222631985630737552373221435102483984075789654114646685345278492298665761193651998983756857380802497638607412837998417109467762224599845627337784389672352655199226739213154823441619895331956693627384497884377461941699326733673748079150034640532067386579644715684043400632328609792626447780481338814206699572560836194386612902103962045196960223581521987104746179994298514824620709031879831857805809942866844517347161314937287106898283371748215922983072330756341780598053810087107821284822999298179966798726392608553227716728085979621676416069157730818307146215070531539040987805760666850516914890349634155116782960131724136348868048960545840870600779817167274218291507409076934887100928280805888143143373876352767067183140034041023841556368265138288185052118428679896065886219797662156367005456562070184709683613801235815162951281895527204288323957393527383720155339079706609956375696312170831355705392574687930304591690281152792401428054093246213872788821452209448814094135936044478251787502221186368901506062363942439730115806918273230687334057844184499428778604362146591057013134633683326400271052869518614023874688751543419509448500120072807547414018862324863681665093924081031684084452150860527420090753548505611147164615171296522660681832147242665156032326430431847078947103155426372775095027555506703941985104586857363390457586997407605846256578125307498264011313563070381324171388882684271655695856581871539506658136917119542883606061572597627138483008947548091444111865706051770247122833709693087230882807898734677463496606686820713913271661706165265320561300365232775755470185025214794244821222805986684764779370312905621277494346699864242879116073362079167845795260409111041432287257371667657260209115176915729402490503449657424653351075738023300149952943750985333571055595871446791360700862496874658541617752614608493557732513977702081148238121893818938953245488235416407337866694920092062391618663198891227070270459004789322763625185192235812472699012275721469582427347080177915754885918407978862280553807797109306763247837043990572516456952440968008532722756410113548043479400030244255950477711619776008222995642001343177428091830332622643424180364394535192062453576682352012113309297352433264332906625488318721022244646836853191309665381881889081315594654306132138569616387095804897836356858482358125378733625880843214089266118535098101634004603718905519812904388985078093112931224176611387859433532472519086566723371867927663008238343954689470225801642436292655803855322503426498350023574435720407928757319987716883413509989119391652840102613356822322908492421916195684499193424764208631003428320990316859601636063572769941204813847098094039040936994295037191018999083130474166688043044226285525705555621090421452646424348242749197631968666793424053269259642633815729872040220149102252696833434102811951625419159283535048168832078761498528015187224595987504544276190066627127259858778778950699715114734661307464950347841385135528628638116855156585712905007563461495746173965076276021595907510687772537187467695904184845606245585341011726591913670353547711106985572833245650390049307617556868779355983372666188098145551697140407674260340654657633124046652638271640334405810841452085139689600408798409386705457914250737861070786634537993578133726845844702900482298782721972106347985031667707221563346042558527026580919258811776788743638286190193535422461271381414283079807676314680339337129991568343903277154270846387915826039660368176669288050106877055151861998885728484609007793443457455129803224922438047858450461478676330868727532283310533610043505454139696986498051902771698921940279307257616342228898207235560033069042792993210588927992249829483470944637850073813015378380683175912755091761116912265508265586842586289999105361037377689665014356859666550404018813759859622907462594368795845693529191736933483441364235823518465845234520481329224504272375152745228056988014823162501179439028659978225208337767298226205111053562563305202488712696027894467353471718047785811194703890247427554339854895218472344050442895141978489028802823612351230805820038757589731188139333756016774305767221105199253022562333968109613941431101240624817577298526329279438844223823468518083490544748023122071395198685389189491339888730512300830336825034085505993180851402443312417228571955802175166453655679532526612669734647809023911678774927937784032023562918678043862569984089946729749348429027767102582649082698200597538306523906140711919526314417239608545766283980912847612826567074131719958384514700373513346812710524384512305328076407751703968787647036423307717970359571142659448242101600028136946856061227972952340497434583702552172674497326406972861424778304073013222485575803056877271681518398517332555368363575023273553633951388494578842015863907766020379056000885277830352547609938285600887657514461777070063414436300526025004986923720306309355518049289834033103526704473815352097318483291933682964892656294264569415330833488108170292663509859420712259447634037016942112394620488035865427233792452323102559680158472276161310097481513514612757781416362114087202596867506999200822280502466620544008430043316254579919491531555749510390466558910955299473883494619829276201170512184467357916007912628223508746960465793919409169646871724127067986523991244603826204028548959522957798667588423755962246987525522971103366929437135249291178367841268373876135182719699603636275636531288406308941775031928556531032693157106648378160803793115142594009020577637001386328451421561142475826942626478996194256542518879754351112136660111513084523412480186821191061838569355685722999041054092823493551825562308067807810027324594876830988715808864444660626133162869241962215836568590468641594782853624180340343911784928171689930793651504589183965930839817750363166106564032507121696983032783937954121761332026321940495991573898048600711785408260776494321368631171315038353777988457575133453868255032395081983808386974848594083078894176124945234832697679876364257207470323344378360670673772024042476082014875656731085703510379679946018852582204296728251652443648652002726153254898771718951182036078630485180011287785988780451564063198729802769877035694918044792159940294312736436803107324019143268079395761932665899965347552603685688279884567820306755381367161406618627265763991553571378149351075491181923611173283089641098698523376205830332425540369467710801220073981674551804653640666626942961444144214810327555755727233803004090205538447665874472308523616279473947773808948228015375539921497094121475451836539877268874358377284854361611231220593589117137248526321858041972501847925748930362627584761162470981340319974344691925678888126933920678447398638745382371426839917064504268289885434326769519266153521227780674675547359913110710782736386945261122477079897602375120514207537564190969052195234670514344573174713337931711892257031561893762186005456242436547594048957520227891523764664986895948177029331648198954278732700538485090460427194850434849392231869708959982928538760197724495264190127504006500370410300508016645105252754251028138334720395138159643894767320666448106832774739153535031921687195154973094457704258767198289224452886916196159668920180779047037084332135219646834936209739898165506407641005577561297606316437206687019216410205458516144882432865150224697340764582088421284698440848308407081133920485085169693094243635839818845337649857951069998650446059095206253444672634008752174567821726079925564815649410116093549377920857609434367845275088988163949695434123938447694695057583235888373045493496138097953220391041349647951391338195499388644193733756762965086898179358973203856182149734700406713891531118131779721079184604184975712741192567418420972001574759097666237757814450416911193739019006829089946445414171666451051453592691828988847041032753185063222842635255351786514933563738188343995270370954564498039339712853954067320512205263168493732801569134111484490788615311794175733237390901414388824518130725516717503794690842182703228859007952672415502545336434802359099872739496423085990705948192679570475226126491515332147586444862550129814636234478662862311507565121508395217060436231242021613599984267445202553930856191332155043799939748527519249647200372998399467973636584186309842204516833311787265596254709942814416650918141814270353663349007356597827682892611515062881031767254654654690340041097762474184467090518826945449924664941631374463946164264015952226218530273725805671734477348439965500580364344689618414312912072557303583530525955502896491304959876393968206466897089392071050832375949963149057382416780205838804939875406075849669233159699472957623742166726377805507309912878192376901492403231453741419369060108765480962796226542740558012041196622584749521620975942117575040564227041959672115875238220436650360796930940302979835074231071398482898730640010148633766945211471806149911970885128219816111083692481038612094501617538416139789342717461851777100891051068220811538511646547233705624097768628689376472041118419548726125195310958912058622184523865093997907593048065974559517527679017092735464457711745454779281545753816554305376741997401476781473347914754988140269977857020634302489647844003632165092195259551854114110291549837507220043612091441488978759903797787554231897974312476109037247353049272392878920049193283927543998931304662996339972146687128070712570026503708848464693754139193526878186484038881176606765205812288105342670227347392421189213598140866519017267978684238389602687529043605398197975905151906978588637001075182661703463087365766224584345682508863900184730806284852659434764781713365715594670532081553028324743698806051341475603097374346267095771248772814052723378769794598765922750612101900867739903237616706405956732764598846854936024449185340566266327343740761871519990834998816366073546946044062578160504358893121321076077838556063534392428576402917590264002906715061025042336224581453101617779602475489828868593791939424319610117551952093012748075134970100979479505381434700067809960862572941229399567639585117235478210322463436534736110731906605133757874550230700904382300578549037246443710145025805445578006817877542128321896951228662392619205177227864164312106101272725795997803900649927698036701899555590657266383737657690014617591886534735293873389895103791001233925149807169172810668153413581459827712693663345290013856321098029810825892101074881167548113166461518220679714504140788322626421640541875006240092132756756390884447323138536819952860885725522932632334392442750635504290459803088561171211730551097669319149732470647002701985818057163354829351398297690415632447454212456199673228719310400742007037216156865235896964433496380956052215897355676104867485676879590478749323914904015112914606008119057340149629856233977351572268578998957797866092499770854923106349991858892489083984491611012679818320626007809536822984301244319506812560780890771306408685364008070052072191495460456541492875464520955056736131680431298134406981048456741106552207674804807610204932812773389257707949085432842147897689617927659334026625627180937694425228492367274738801826906070527421795370506252961832681798686900854520190237388996720451756642049701714090934787152703544975135919069619129343089263793958322762855382269244816972977091405900726190106948515111124576619691823595370422037590411632039272241532225597172446641722438839253455910866857061717290238068054547245741346472976796660308618949352262997781085894011395137783603013982967769012234951042527828532103282477686556610077173963535800846873345313576189720696447940550215219661860627675929475842224153603522987450825094266317654983696303552392999414422367920354610088856780540504018947124678773457927810706520799284882935010073350944052500750636322210656551337680568156781449235114516662889158097087915796665979194488221312944193659373402524789469875759824128273540757530553702802028516196753071978232071206528619850735769740531310667260522252840342500908483204629191166595548758687629961012667709771268108689340408282098091813036905849776507122467215275019822675057859957946780261113298333446985615457535120694936213834850913269932224804665648849333279069152429550355480536758787224959922864443641182543493359209370212822279903147883730037434062761406976135452112555571111901347001504992031572318425181082976641038035368851779121280824402160567244554391387286303947443834070098246315646684769150222790500660768442894674482645652399931715646224535086006268183972697071203044973801576720807471825666179791715882700840181790921563247559914037969957558474145674562735837938190051696810260700718034759223332753992090584097415468806578849795394143709499496991442325898163583085647238722535154167872742286129597582361563459903873129434774720944445544011063115460247054306607865945752808140630049294357503471413716084158522454324310282154340820149493544523876068500071870330013211070401527829174796586439638809912569934724961471271162243345012126023879874029246861073348363333523271952164043687753723375712952039108834445416894710381130408898294480997795429852973240892719898580860932370144127537281040759298792059168159224362468773993342480773953329875611360491455520742622364063869328385069628927238383311742167295718691235163588780183580309481482625502686685324590968288995307466246093751114401827934250111353939013580930626134667396060899672506308046012137295839814038105791368534694526064830934914970434880772257116753571970005971304906125664511857918616936145477634859760185482074419457688666383938758664497411768515419919877501125853534508503513575545001460997975109132164714839317639678482046614503048543660491102259096882454338704619228515552902900802799559912447196315676598511553814050912833934449767673094810992148884388900987888944117055287625823125391261829220370917191259008864933303617605953819392108387345150274375747835355960317537636483255401488662655477888105495913374236581550825306191433242932300091495707557269124543091165484139155042195945732941309492417038935292042656133312434066252590710072027572923708429464928338813719046278531303732570723523459386026414565015148925387044548951652790813480885851560261725064699766211954491211391808648756554363299967539129924011343211746606105404701286104085792442015195556743126908701002883847332407891819517532095296585379003208400924421240957983820612176476907865026499100818363735983039547390188232775648023196927326198788379259708611878460915626687235517020255291530060880462495930636193068396221634521945466622591377467009157920125662527524594934099492257872023157591788308151085191091621276854202263810817736166997525868832223294726939513551973593301491643421461657173548265960888092730511262149839802085875322163105716511689898587772645865572627905943776060281400594525542755281288137162575640316614928947437777804765576141325626518808279249521368151773672393222761035211519550336619401273038414324790720529683563043892257036755655143718454611939989342039647033956199786157160853360895124003228454445273020281966057807083918690287094265460007513184156856812950432950041492538383278053418056232142569360891621357683847363594432633400232437380456060543499289838659851183154413384746730225048163220816027150481378145388069836910922001251958926489051347866089720528840736952076420358216749728457519265118312644936320397659867859759461261582526283252955879739327390345030705546807733912517202671081965632448954524470538280509294004063749755723666775866902835032153660555399726094973429942172559537378988080375979888300847397497374223096188868378239318712451917041913495912405378490858006044990639551358500151305023503552279395535252794405747333446623661082025470980055259762683757572208278583728982001189975268342628999173491537705094881620314412827224812131675088899030252199360881304716575367740694714330242466881636805404021684784788778335477853686901304870964732420700372033478673484152081842298516153626992610098651427710926551573423780796423063743344270192484494849746539359246397112538384905418456463161967174419118383674798139554209646628935947642889320088791823770635776950969272726804306033332562482422220448892649498469589311673197448728208439834066965485018091303661648442038072537281101840214918980540100681848991334629873601586072836660892603161010131018028319533639930040124500020030583260754791362432908534502381483987568101984273239318594865908904308257468923324830032279127380795474611490777010611650742952566094091495926340347376972840025994372601815244498295204963586684184379755712451726461291303860676174957156063705663957931536934094615234112918572787209315195917160384939937695926811546320463597999700679393087103369617961655209493937704189784732908292312215272869323532515919652581759114010397068737260927684423301122327517650265444112248349047680341193876497775055050647244620740420329393096907442966567738445819726311313481682102373937732412797694182469787735021467472239424717644677504822689576304000701627170379560255028210952570130536749150221434131729633225061885566428683448552924231073381606702122551388910410619092710675602765980970660283180412920970255018041092327517402575077646360980661136490879742242090659685088146346831950980874861540770133808059269527524121965091892606695163817695581886499461048540895512836439178645913878644215462926870547171379967778355437277612597687130806877005291936983162422229711840013822767859739445445510822246961786125933894978482760959428606282658184506917322636869738676041656125185953207883645997390822333199826218044686414536310313561971549760427667032929887712104333680746489443689061685689489101106507733592978561117450066237553881303213570020602934340546650921595296033843132256476192788185770818081122807589193331907573846190216807465039385076835932045105465644583890050460499957382517188058383923064588505552458538941353767338453706493369590825947437288646250281374730360063573028432417825805166401861156611224671966694995869569831551951321227404597824019812433092545742635997804258924657059340779510494080552835919333016655757091969837576628720404656090623047145421979614105561884720209257809500954865354807079882733473801630603769062721413908085845342771547656668460221177197607647334422978868843997198306005360234476513070897669473006075972128393684484022553134321172451901593880925011947093210550514341270183796718942179070770039022464492031385881628523377433118206657101402162645694938257747060308289243747028217793794720526966123638060995691756824806429822826295137090550506821346933849773682144056003916747612861627605099146743356709992527284019386030389424750647661062696566539461478920204824227916122037705624036218768254730314688406307114082424830094957390482223190225167882559790634389196601588798993977995847378079194339179567139664317520719451947342292492901722440979950556119799507006273765079726998243909743699027958903660501195268821937425940169826893043653413773036678533340105845378321992112413601149299907859282163827088040279230282836851442742714696651732886248607671698479742342006105120152078489553245774064236652746903235319345295943017970777472490385910866991625357636666495107310978576857210241467146224756334034622005958150866717871520483561252762184771896242663830160355527469065230781627495118614530084056477950357459522762248063121092212567108631893884965673237848801807770624042296796985362818174333244785365370047329508507031675653888351643029658106460352961057369494333828952542982109341282108175789715741097958722247678787685838355905948755690882200547000989732109658945552245362409804142850631478737333272816861241317159307010981899938570789891810789185672505127843875671935135999696210346145294826391581811637009880606218357388073529926236661248334024601543720469767406461366731093645200956223608437002895068325393320144729222103871902298927099733808487673909089958477627574045971422991872255405707582751994290377442268265302881028040178210298752175188944396229742311333198298680873554148874154751301181913888683461753683202174741482955726171628473073485291351176633848203561397988885039675119528676325365050064185786946614607024702022992769433471778660962718623237601653589212870351550855499481755207877814881786021704742090619508899634239118571461221477534423590360061496275366899850304120541053878359422853981706639263903557292819677796033887497431677890696169806860589216800916881912084605247857669002268658909167928640399043611612073274986164576235285436535588841178173884455855060995548231075041407755787156355666332765079302297746182154562585636331104364548780462621172753671430558045234345577760373156367658034275786973601024625774909835998137835499588860975378057096144342081543277628462383822379520949573364323838729589090269838588213623312470236282225205620101921554821883388731576576390939183801628408549168391110376340494210055684146705096926578252878698349971862127899436863346421965039820081310714000283723936256525086530275389273198515405098651093822566008322346629418249469153637003671424601430730205086852492048104811602001893129158525635238460490711891609939232911068222704296588871689210267484500964602067830670143180804944390565341013659289510461286393440401029880635351645503034086893737324317623890558104261412736024963620727182306702721367345030158647607209899575137342225766424315987242655038794473201753219584021015821652588269857648249975087252688968582135586804081287022894448173756718924905120035616570029052927132865614077462069854715816425203878424275822459482278512640019663883829401015773152195767833163169588357751704503899192638399372880175224898704523188325123085804339310293108173339162291809047350592346093006797931783738124917613595866544939627063347337039141723991560310479204213775352870747073436202201006716198345033408292243723109391353077945455120447936332739839716915732177338560253787955985435088746252163166512207155371511535497767933433150944739813702862397687937416938986718150064857654087618089146229073932844383398495584611157383854614308016073682893949399629273119501174563469945389967441087539632307747369768745736454058289945066507569551185200804573635343186344766837242221899572893983230657920314381304162096278320229413189062192025086945115408768187086279518949957311673960755335613429057982550168465135781985450057667225141432955550494736458275925195892612417005588299749276179068466656299409477105262515698604696450833806808644246381044840843561921568974040638673987258586550453035872047725967166309226692740817437610916814219118727484957270486447421572802724643366421106497378761642131450600297830253734605567522873016614429210124335421675041930766245207427726806812652214686776217927298437820337551242305589241754322808024235482551799533288534621182650201803740248215902972326360919994559312125349514561576104781098171834183100576257627083284483476610506277906615871631892153996999565090156249383412800388716824081280045109543276460388979674704675675178291945005132975745445400105946280943961806310576973157007181115632848614100279247758868289088075302109448628723219094822699320229006517227731546655858261062395099395733366838550247127865671543329718714770057905882701812767107556732328845047341215299804194754156074609017684440534112211224290226654709291846204133235811819857490446149343895059489813205380999405418162525385015799739648232452377289485824457266288348528635701221786045119077811622553913082749059132438704672384944517739754410328105757671680464918101283338959267537163940834440128408156543517565694118792782929753319139484357004476499583060139969101776685079442423727818720335865653888098161577108681097194473778868696025988612107435348178280885405580369598811338635901665468845294264718586825275253537660033032633437135156028698884462907332930472006646055557993370696559119394560863063515685693241677003044329583448674365328384475433621397419984959970376510717996049416736194132572544513455350159059536171988029098805006572536409510825545671483719175913746149672558740491189180915813240216005964377525609800283466275624728263060982990433874392201138397965371285762908914863262820231410975597224623619388898243035514155972894022711452602662862157182317062624469744589752449201202614191767786180490126194847882503220679132112762920318624597452545599694233239751935344993667294405893763226068071254353880276477996474600315846964132877362342002091979460904769719853605553990046875902288517016968871463532964582444510545132550834061666321921239298702979423494207121788089152154757411824541885815081914385471143974813932618927570019716687591062165159520825792779553773463134765190964906894812449246557489727306797984370131660205390250074188483962307515841112021665138931419891634836898366070891423165828220864578190790978538309685225625772892252508422050404640764530164677297917721363468192877370276924732577179078925472592660890552333653128244862619471673217772178557588728652565166916684126602660140837503632470418800106174558330851985300772976006307125696988099768644897864171236592261448023435324572939870313794387315065530961914992705133982618508578308708016852365639618384666315547758275116741590076068839064668511837404507296860729364238687342258501296857444480254759257601660278975839654533587501037038625086731741714030366788478939708732489353432465345617954266035843499185236848423285490345059351798328136215308737117222806290210786314662665019157343370696030713346089877994470961703789383197600098217373912694455197253205044521043057452599683264922486867825032988565514505848259165666573731089025103341202572986095441926116762071717821928049537826989031608090661403833904537994247905569560930780799696620373840521679337168017395715998747116244696484204280366005773279319658232752123051313746023628106511905947808919506213881913195924367743771553334947451047548309556580764291620193628637625892279571422390981987871683472082493466170640873222572897551389925933036698691055517807126514172552023673180768975686117302729247035981963570320887750099154690407724500846082200293050720981204779140378793442872696174355868961908272780763812808590213085854637991978012131020596581333747655156980741931015443435918462205784987666742466707873294176806082873149421378693234813335432998284453215131611233785145627997041503255965828398712928660692836173238991332983435001494642853606807022712028223914494546089793435105534893328614811004499277024305490975826537182443899085995980748450703606514247558003878269847841926480322604465874388884026942389784784857515152250245424841127356296605069916522382701512310433845979820778057265377169361954692641817789222077961358671900007130751709542994877676552133148432148333593141973681422185111102457866334106664483832397359723396041296157272130643874068868439931260680201247076809954706101247354998146615987156871591020775427162305610144318642004618567103950503250610586951419726530122331140358830758390684835139869859464162419534301545734097854516527503055471167942676794902718856759145112926554154345944353465320751058624207503458492235084319204758313360531484535463299800534127667950791123661227614349203479056305780637394271953582630724725278154708480839386572003466699631196580493042037572622757626134550466026092229132057087281324435750716975703977773141576249586995131503001406038748305305663273335912490416984613585322133070450826798318444241244693588037285369396604015750424167617184083327531798891617673603388612720477219664639236751108124069398138444726126070074475471997682850309048127634686748271038138352393254154041521578787529803917186445890600331381270276262787624995142588754610312361313319806255618275076537729973800251363924161001400137661436403035331251014141981142911020403380143529507319845223381905031881926561962616326671792672367565916235871222808693645556320206292767867396331696592232118365166553404881930134675294896026655109484499305020659301941145124948311883814128931767217098564139923330481990239887312244617839645272865537391382578260654585022923612401754709836257164843338186332088078016888451988255330965268096717569238305323552616461940777783794925746221021934100289060385980287143500470606539415463112115816267707978728233973122264906956585582857315662472980410941550811035420600256712394554218669558386850084777107827722767938117911393431105041507284742958079297362586478805817869031223042629883535650221118761496176539139425371660376199075856868687262111338770689779783783133473381757297879326781743213734366939746051371418628059464190855305465625346245383694021459893895907976833119073622297381993928813710523885348383928437731097401655688776154939065972116140263446273321364470592930440665902192213022453948094351815045341150984048993713932448122623166596269795794268218140545922998032780259256345929214957477386592812550553223072068801463733941384895887032678313383132512116266379601466411180873999090757200588304376240595408274629593979855302969693031282230326878071933207732534272999201287638019062777149696130981670204075247200976877958761685438523262682850235826361192011678349254389063672801716779211658382288746576895755421908849459787839741030782617342143651201991680729968497872236411784461723230530698248862009730955320045698739470745500287918449430561991920995854076613950628570945861136128370844952271825951652979699901154265379776206356274077660332732499007607522299949515713627773858016768166295388881406292578644434499570106846797515778625862733645724227802924748781932400657052145835411906263036640492574691984414411187618419091055770026332948690745961466810095236940041448700119620518069101196315491607167770501389570778578016079870151691764738657158636729835339495935029631717320480774919554345507891861433905838080925998586585827488376922105179414379683994275938816431279084257849645754788179744424390770712499548642179816996071264184607418330374339604350265016994998876785833547298969171632760094777455370455027039077216696982800172198451626068779555235906080785352461837674087507014013580484182093063910250470683710999370522998399323063269845243062280162049955357133165832569360853340334825281802870337764016263349578468397321472715632065217508070654024191125809932065306879023667821115398116951961580479624873759343285164713808363537667019430640968843251122619195228160187893613757075075518078287832938914476258109024884039568943835598654891413956147240782940054873888652470245688034033970412050003596070009630216681253409585495389427586073395053354963968328042748198267781271911551838424174112304636132384594281547791767566123011988849740915371208511779665179119706511121843869634246001820820301777057290586407556086009147239848002010847727848043902294557268179334620912447561893216851053581388743668476995863792806754737356442791528492873054916882805755482764053514959471010176876842013568232163564215726354013281163029346045081147015520624832861481585361630574107549643228401341332192625422617604054918866550958116971170900787648132542815058241754675717170478578816115085111421165495149601662466318868056849800638431482399476777270540504677428678195429979855153307306127439071880708617599478751991673480103030146706533945721012524518101957633331191178419542544989528930827139332931689775438480305149807141405257297122889112592263346809801310370192006631095772024151835206963422883397624930881519212147050407454657313153290709599015881637392665077217132695684815792554020313316836857526482617179482159761095675008741691490137139779659375207644131317872744340924903833617727318048392611855872245391783677827809845895893206987038124275100858321388589656412021438157568932232515359350311530620380804718649795181691808078932234675968564513518160540099434344556408330756913434076264818216114515868102827834259776965330855714003816792073790283238094032428240114438571442115182210123882218011155906936848981297313102117258501691095583041944133896288709171752717449960692460023608598151797697654469683641595993756250965021300126456801597690557595672535399146602785519342974938344747256592575266805834278065737536925234124005703885590508261022307857372329172668383391139631788297465324627000353469197707103527831476477225478848878430668116090332182222574486146789278612768089835016660471101077931773309676635207344644371760836472076445625432274886662197153959919113663116403337578628367671237516663811793757739448548767086501795912249684514122455155742524838304488928170513458702215592587977383605364517145155648473706421568440348548888439636280802925441187544091418556546308764704243528433744868348329857534440998113017181629138825087011923555159122069600724140169954942294788532893374931869532205671814106565552846010092271205317964841925836918432179004394347158765416174485864491361942059185807164803183795498478964984486229720851999231384181288375276697071637577001289954286921370984585219129114543794907127952864019772433702615387866533990296191313471281448880880207975338750779190560310388546063783513592746976585967554604541964144954410241057889855915963963543653824498870868602614443102691392791330729199635331541967202789699000770575798217729791680963834089802866665835947408756755977178460599391820760754568153294095689249550509721813288887626356078464823299849263767546004608184825979308176810526915369656407705356142761023516163303339378300594216217874953746583084767615823395078619364253753792958798070443800832173959069416669092924964732322559963735512351588259024369284220401208050422469205604654134607470537473080540083418375353295105491267445386810346022430770497050649894282737760247467134970755004289296566094351826966026080675748014339973661527966524556227898043979504113236192536806973283982169785041054330682180937650867248904691008893859208592694758660778767508986095482215553538822936525064944244674631787139500982479770154024041025408858180326056712956218588639904849396485897106186487537801736131499597734421878424635717259286616627364647582973598910302126184879321158888984759040945564751670551752253086425462826249091519936947863502136592122416114405710652113247558805621358830152430347099817450365262215979039097996111494159112759091520455736112315743087901800287026422693355743045548122253297266710913539821651568571889728933650838598356882368838405830292110237150206986873821241854340171192723233667417147791716454267756866377634453768613988505116349503360839451874832198240498859595387084572005784951864294935706164307855325399988812804277674375648575399598402418447990632416808797226613684487117939159384851194280306771093794202917257626613925858971979036524840269186861152419743753015643159907953844158389565956147162432678811090747198228224099320088567134455713099804014134915074262026075051765556869008975497720184403723681906683011227368214824527490475087639816137410549492679851921964563105847532255198004948959505106083494124746190361466305583422921208985951206929624439497150713201662772164440285555929955581816981566746048411738502724598112048497634496598846892105667319746534866722248855336565318893299409039957839012478585551844835797520407997844072147509998495189417557107927727429899863083897701965697887024259442265747660064311511998662305030050874307011738957647816940368495111705408040051208286254815081107845169197810375797538555985556281855573064831112315060608331340461746667207790716433712189995011989889624719983208367405242957693891056801344034134564151045085080541480803890390882312544543255859610575872724056607707071074626817927234624658282743588017877447660948824159740550435026293615221050594569619085732714159865382086366974084573989983861787483989487942432243944990607308046545132742815907262876804223320588348711270501585692817394389056985988950631384556534190056173129291426315733371655874922339302349769693926015260726232716711369576204482809507619295954366538017991945266393692055064627940278551664753301611297394296381133480223639285559320639529271106334509252555429485612002643035367534071655882956589178968929251533447265494052604305400601906736359355542009271260938299141898558412169434125412851449794389003771138070200508580903363821299875250198584327940814968871843863245450714880889091322012339442040328844874205193678871767807094199424468201963726420404568902965390690245510227060238553202909907338437404235695503634691856906324946285085656094848098799700716521433016067799401950171113404658617765467614331798749338149439642060718942561302881976090144190947487251700754129217453369598198410248531381951600447210060705166488128760503614603937337892970971001251824245794426675231329717292046908079568444745391055363103378001964415290015105159437485187259566500856313667563207319766788327623557993015081086637502675996981070557016900181713886084455338199150505698818389343269613855814915198943918727231584040374196675654855754994138191923684058735637158054510974427675094930426097267475573106797674378069454353783257977849295909466026858569188734176324028017740753618992759868029188999216537196302758812767235750378101171364362735159593735633345403039189370012392745627423112242334009946568057454963813626630991015726415088765235733516607288032996474134815200681918789037695879839086123433128393156242816825290640232607516772628586827962155252811299581048729793363120832314770976661765677112553668087585360174741185626846740608644359659258976270521231317986753990162692985590061064445780369018486964341722626180295798646747712409577666348213632306820215599555087532451507182786985853275712233093897095647865251898822809630948481661640911852407964754309841462111027319623858554951922830870194930632338727295851187231056336357160113902807809023545629850494020012241438987453904699322269112813411328387309459938348255635083070649780911167148137287788279741061449249267403141280356601164626751469969106847930720358745353036294008081190085143413833188695825696105694024173497907439565658821928905886637904039498404324718371589876248052379906155231476848302421674068604031978136024901020460370499012523333434249194678415004071224706031577878508692657741806022204710610645986325156618939527147659357688586661113967740669734244104684584453300923076358405414833850756184208532088840362818590577125753941580932390375229262492314070266570923853185064414692434256847194784764458262381418023602698535643374151544283374462472936932820453977750812861630911748101775961809410235553186542257986908483810278842083412638219992605170168492321505473480252442553771044734782007042260587626842407348004564220688425974343791960822006118444921069290675504969457691597245425679697876645148968946723952898207992545338771400802028536144549861492165104517525342638888767437482100779263027589261132502235239519283074044122395686383516189737664618305225262604067543118081292787225560389045570088771177978091658465754579881892417269200584885616959832621635062222897725499297173551831106927193677980312887431769550921606076004935181964309419345362769841993943184229283351363936954893920758839430021085621790972948250868464316247227328138062523969284137534222055542843145674369228465724196899595937015589223027920772144384001435673324864276519085165418064166261044199185097595779003683891278330113046087853909220127217903188568999686725087727795767459529905133081699224137703054003205503200484801961801493113267437646680181612502716635381989470974121766053538616553371405282238739041781992995730570213480570458068120986875264803137549947684442158197256281782474021244254089790031627101601943256486699195773486844776150327860895693881950321967423299902370919652231390849449175348104564789589700055707932956650378052189301657327169331352511760082435513016000312708153916435658418252446976177169583581892310293758002091344005404043347071104256482010154001311509985963036443317098345949871895924510651475908104965742415781598471665171089608739214689446061639119931140096425788339090601872994062710676553552758512234144038361572908772462998815491345946740105253456365155517309920463472943957118455139353434608869353268671292697067063586345567504816694103445913971411768779569064963637067523494361231851978334190505175546430410934913908388293009697287940347115783582883218357910889052588852693145066149695595223550929358251394614990656029968115222310627172410400221140291569366536878456816431736015948648923681975998600726873369704558794079551416893997170683652052411095808111394260053336989849305777420695675962049043434103515543211751426267542606137872919464260368843871394927463010828224096334711182030146130024497995678027450479897485568319657347682510988746850832980172340211093430523342284002100083724417671246716299187629582231599909313602174976257913797115495383477257070211702388926896372525980579915085071934499454253341423337416132307303335542944831637561257215085174560997705626435838853978667312957953273393262615216245594811878313540324386575276614268672637773740347641526297772372528521219900565782962631269978806011304914865396415641775387148168554827713187735041401655219321805831261628589653256869758637681505964414766838097860301761076308618341637311152993433831046953583121795250404076475991903823572394631725208658768361281596035549329032920407352592546680458939986138986269977616411568787737126064912146650924985487697125977899584016970426573266155207075834492434139335731384982438555896007693029420195398381298168773872779350861158977979123457634622315987826978516898339542419127350313315084733085827956472700152605484750220025746481749111112205779914372437025390824769081782120086097959570445140933528756261892300551568079699821714903673409068646799907387890141685695723200755418305513118175730793489526220366945840493778590986211952196847692941173173024860372686145691328737756705339750589280953865904603144578395525146514502181390207787325783550643984433546807582721210493533876121049374828909242379150183962313905030638368813671255801994956199967320337108339922564288763423412610326430134041148882935547900740098524005889387996538505156464281659456512369628756005546812547315746302020182565681655250046576875043353631296082652954077817551580978347815029069390826695053133205699298773511494192096572674703634277433558293702544676403317020148556032878763175224947894346746816507001272925352996578521681048562037982794717753946678747035178000432204941162084543286963313520046292447162187065507452027867764266850955630588346102765046290877078248827020759646429045054668090333002220930558222169725860443656399535632910067542344835950239360795187533729959685891150448313129058424062413970199289194665640303970261242826703117198590108921935189812830857530479835786046927442900364067916303372184843799027597561925073591325108870526814178686132872390324826293028594364087580977719669601779006580942557053030716764921213140415443635769950755283073953802114331437837552326407427518021933834111037501181359009738476700719231252288872889107221606570512786888248060325283915650863979863482331376401774526423076170605275060035572579856090166126226263875225900985347400618478392039214850529333100233432319603783595787008151181076655359519119748526995225652831181370556160953553088036900872708786195059277504389799799835570279227084512790219219683710508961537167698281205142547175810153441571820520234722284734018723972360284947521666831152300946572245438997426911573384668504820441361501449261153910494951945079244989810316984977537563619096134642529747895414115766150312674384865493878064455480806781306906276098552592928406507658128172642796080128559114206030273171458327142222104353035283999330909092928269653190880917804739839839544741384666908562500751266176559287968583098383298312212126550973147441609602390020662591570335840478485495363778227165754909510228689261915389767262303451653879642571485594424947192975794377590093485020799784072783851943165919124391340054806016171468511649531788324192634583965245219488090398429278750841918152686843870834942270796814754490700009570450828105097313440298291063930867623250410859576930028332553271260100277491114493885705452971213330276731590115708242182659210219210809858040995511234840065843137699652547643779870480152214440669984307886555299118769747266762260903343370387188012778323968334902142425358249860750805567471814892411101529218999076015417729298480685162785025297955295823667249886199191184298239136157827567264291973957820545404794748933357954757240339504775940851907106488543070381088403910209545477891239646277020065574706212353318960282207422557800472542783446150621397910524653025351227822319825140070156464278821816192068177734792429440963673049981097050169383983728394025442005701665436314962221723561794100818319656953272861334362982302188741657958810418333953969519227588483827628759784148529371796055277284118829326518681525370152771937552260973123435057147082059245816582938945687445966629070326899495318620368653962573392670109045194819769156073690664182119292395135549724303920848398588214510025698648839148218528205174769244837079434824045022174569125924016388512550054814811524408886178893099279782906446841257229357362421298807319608983147634880318361566157176400848298853246807384927225323310213579979079186134965772695551631963679571798668398481834406761158934134055791683388463232151661297902751175070377027789615175087150284061353371587627975361099088717385891894253635120310092583998342175468321266093418212613336653379492257072141561496327824461893029908801251053925771786017671462176347097795353385589505783485904383836955135846464442351157134948385141020071186460457957787566676395097945034704030618834991763362602647923200031477781396874505481272692406291083556987938447229812637029851115407671289157272740112032665443447269329055013365891100898332928809478137270821136024614731064486870344406713920278685873534057840667820727999098481581947080218820771541544314624516767635113632087388414128434409987917181152393793291193830840057312052191447482407638819688051834946075259399591975724590488298573588762977702878759647963638148134796843200931539263095856688870736998337011968480199206501152673275119302083406784942889712949321148708681212669243402851868115872592765326610714159017574070745357651962596183673578946991201515197535401987065724514623095613796837995703778450045171942307666271828445081523019468436017297975908126591030921865903400523461240231230186077055245164433520858376275642805665113967607826539108652280532871236511433732668742522839298045746937975314125990711210554532263762943893807880162794283647224484614744911666261080388931226025405533076440397623229488390353103364815591714545411232396108427534111972748501018017143105834011508900712436653717374263165848564263125153198243583262511554204261963588405857513842063378933085034400940583302005783807734356231829161416742335421504275176324919268668473063843921981034980223133221618499396067138355673601518317522903311157506127264530101339799517027781160466256679353601449241403850853386113690219829381441293577690090889999319292711217995880705267188395145327832528652224998739014844579295474918643097849558165695632183634879602934416993545432767190526498976326739917026924950516716122195372482126148186036508796528847230090840353387953721712046276997515858110212906879404191890373121441092820645951926248584680619545443647678124391750020961208862117107507164745657141198503652067824751633975483081394569404309319093784312829878147397365610252162490540289472367026281625576536798244775119351981779875405719042880334958740089522393365640714960157910848546051502750924093856868523248274006833106927912424917366096014818364326615229892001521663433072799671351991006747126306609096520929426964824679604658653270733582677316735033571287143212975808598222714689826965849720623079240651078976641542209506511965970171009676235436895943281464579893505309498051799380183281694114816036226436569012689079024736375907696346079642464331221980531287505256074850002183753843100170954550051197103039098688052566028396982724484800890370483213570220605638988337561284884835145766264251614763418951048050748896665062956042510656089487818535601602211911267054354658392654220531132176394514742864926642839137650099759006435384696142764515114916581906590344440499679724581267727718283490514552975118557962486055931812781291884253579299612179316689123807486324004064792922249027363104695266510791993561362180197767459726611013596302200265717379409502433201438935097002697707948830711459912020319670852005902721684844355079812962990465189142922384918552322434296998894784661805374277433252520031809854547815749882571822216647940881021037922582576547705201132634044688525393339040125697752281871099341315085121089313267876773217746233087868161298651038146989354759118392756579078394504279329769659819840114576796366867581057655368202510088882159010013404663983598591953487146031277626155620031462493183239019603839109445802517636191038724276993567815262256180971284849903227450684667579196798790789712045587866972986087788004688700033107415782672370978226762279976100648799597894983369614843095473918243764139852239367162428933445028809543695922689508681224023135449727126119348768480789052790027026572319172188854133681286533226326870815019663073492096108241313109850312678807146398077539526853896837162958523795169613181972485672361114936446533501428090789338171480582541321260630068523059773209991475567962263790852818701513760039679324437340934142378228574513353657207217448160048591394888643968029010024917528685176412442006400703835916366791465439777404284535757199484317796417911563881874218417947680652160764741314511684598888981707931766045296357641850356248253867127420337145082859360701294249843639911219614317295699075303883349768427041025933685199823387406347436245263753412905312268910201872397354425734895851008006641443176186115095943188840990525485561180320048121619364557672168627384834243217975583581518405263735418662827655353371904549252653694632222752233568816702908935716491815194831492477262111789635371818363008369950020227639428004726712143709547260455676196335141909566243045334823476112177614048219171737570258855874267123380353317056073734579738263396554482096796346514759076201173114060322260125014208355270947920518503895192205208820694776476445207036572420556340654053991303148546714573519123920760079112358341585328060491388203948849285515410204171182874096763190736309770227494857288031029537133294276743404903720927366822034653764554691699991263362530001669931596894383073726097767712047401978500242365863997979044991170484188493578299777941739220937421165517767629002445306984418717886848944380364965690725299722565433044296290750374380952244366993443858221207966645471952650929880069031197328450552448608999934621475637973807595609040957602289235425207059889419117129414978478923689693084805875405493828334366765649888360774342171712891101196548212927301174346040235385982870871659861926283285270681382150396686576856314591339569108963403904194277802896994693723656301497127245669905084597544614284845605663061830784246111246098152543967754069735014808947079943553874147453178786911916617556938663282907173497288347637352764369849373711857261412682836848996915555110167366414839137007283130998042049470523124963063350672016721205508118603063855472267564724409917062366675775662642317733451815081551206455400966020042477404771253295561888795002345754259028074799609459681608880528091453636689457794975066746646725043094777143572991467425358719939372596996570841243397244740628576436037719052499468640327895394700222955549278126934175895595442657111011245536971373332625891072962622661967522110993643110858249152189606114298121123254727053430132522432122233110427611078135485441981528058602561442243500754367029263709717079157789517033988519085924697826189101603248848359458761488584064317851964943058407333756192893010916601196759128682905860453031147708053619355841012247782990387340348538720935957419545246181900278623897279906587772931628122018549337271562269880361059546647192031588644961698268159640138224521126301098594321566553991013170928527547530933661442138964499219863523652391825171632905375339240683043744146704773853527578798695660390369109395890890002736388037007591754500357458974463793914254918757631127912071975012829031981820614390784663992492442969958685985302874399270517952200024823544042102815468964315501743553401603808642250816833861927360136331594648150817834304614213677192834050691046529856547560498634448120911646429470917224680117810290729931106716538096968487225169587578604895666418324046247535471106049682065671034903834613191270491198852963709720601153359751707813052482019586165866610462330278166381604342497959796534508044553219871285168441331766302151412878066533803203644868519824050803841983691876793058473755840667777808303740690036639592243655518150529767088681730480099626352217014652632497755810308351754747678073478202688167861232014321212482249025838456959512348189107178130518764298420690170167534049802389513673014434066059774487917421681463773548885693316603871283388883073116303932709332274273136242765831015397859331216670349300923740567399654595345167149921824143321105194121283571325451388659523212026423238467020117959289027248032668501529287546829725732433054350747010051020099338167185195275241169053795335620870859868137819286689870085695956414760515053017685888940798724197395309243112372333404525344206881062919013210686612574315081675250272837111169838237395555639305035200798976674292492822450144780373628641892381085547185247822558886821348329775647103734482987986373460256295678079109406396708005237269999904174323719176482838326238575374040218906716564390631124481451987961815215878042194518740775344053641698667541358966532511561001308376471365057433106813018232404891824559067370555422494293360068015191581161756336447913725629899595310498518087425303607010833289741182775207938290190088564634275837898675737769499975828238748338635083615111415966585167474263033878834526620152703436188466700497906526970177218535758505328479232367514309099317557164654183079764506128614491376437381152754294706205111000897465251918458298703583268569440369985079970173576094469229810628885044625803759539736278734878459654242261257543441935013925389635260754622847283935244857282506034244566693996921834308034413942836629896342998270188590899800291069525632893095894716327405958942735747670904369873174378387913625839081306150444212571837822880174301365219986415996435078801079284516403337107804372075258612568906630984289944965288858264795436895607995410189110689489237327061120584348598844284019276854208120653019688591137711337421308583807352758396475267638206008897483063930592185928753411161466388323041138739340382076556763923299447752297662634043574801535131310892557715298369517287128580741480276832783069326070130567605865426408669583549301116446158853020157493960709638922188998061890200603652989458167939219417134205539587221126874812952228430669213177671776613739147741105929741022926517233514804758205348925820605573631244599316051681080973699575946670151277112063065018628832183625840377022422947958361931665040827924969026532547610680616781779322823168988334966379534182141564638868482469557164312184118938726707262568906711995254032311211484034760258035480941266362777592091359760164091666612789157304568515985896462518416027224121429123448238376853330137755341340186812911954490435974911754474325145561977173085704123657450495813778979208544266532620417323834456822133343276169428664024080919180385571474464606161413228032400098858953389289694774238835824785488433171646994199927772893365939664877648078132588228131759231798915194877287654617381233262648965441806953889634316271534344370707676731377701760467573747345067367158202498353637599571540494185957852282684221295648258025467224304458076657765855705476562050812114897753693888073256031244732588552445769225626979908777259599829261629234609394662421778762803663451800983042670799650672604210112599932967713936516882006024348828990519151815768872606066813967711483021195525071300466955786907983080597013899384742901550473249352615088439814885885636010765066371533684801413974579403390210819775378506263987576291670427379558583799422816367598799398892573773134122502814552050530904549222038797828775083813548400834612635937347996792387923602896199571288032262896128743130918112817096978429336871868936288492521909621216902596672957125534552833486044532222670486993338926884785704253115619073260585995744125039564515438914398155792298195693155101640316172888414307958202676638485481134541180309804368531679980474762969948972119036208259377164058911325960402156439936191991679281762564487883370801240919264684012180207931296205316709996830711254973008084671281741887530519375275983222730841873544973082415801833176581609140503466285523807894059039108829651566435783183068315259427946831358732922828136703877771751913362766851551819390145806697240026078552351605422514244294702729560892906869287639513131074210319235632951430968352819392305046772044287384721358776565316257101880245135819252335870535542548519956712286114602396753663442778587665946020984430801370828047861668884443813487142214382718035766285272552843796174754415852887278624926538567337817741930741081853301866819370839691141480576408815989454522916807777311077941145154280677135040842393178046226120377559144515244597779985443281321262908704737718881271820789647822108086064454263758949011247757196391398486249046710270429021785778683689914177156556680176523619546611323754049700861511701705058899985843473856202551558889715811694857805196060987839975373367228234253661008812903713080908823979711878830439501467723016334486374621300512965353488018496606163429821191241626193079873981253169709326606815838881977343115218354597271700091841102508059515471314157523905892753833737255833549886768184173517281636803074087136785833044673535260195751950336849765880130381834520975768167461740430682921135833814885316305989016269046850760492543038587783347891939493003251990400932146654293943725537626111483161187353494810863403311993101110373447324549075916032195842861872002214910132248275213313078088570749026448641453840077185233111258988211100248193519577389606837343859885095703043347025058897238161785533857045991148158406439535237562126423780632358140740380429575787577116730449586377100442677835436390005541321953357848005038747761011484887562535414284195629452034758892549392452910073373312184518525959639956156928956309705256608552610175742012388094882218721666386379574077275743408579106227047000197466971060793345751480473623027134761244295496141917840697576040736718058343077556434336985701806930166199595303945821971253366518410508020429269687310169274289422314145668692500207702729286131943285538118171007057642404947851311822797468404274885168271795496649663180715191140203371422623439676275932498754327144307820896363824328118991590367109870099414568717155199901140561923861856365462394838757543513285309065897633228830596296830851907981958518609322838532441511095996374454583584000766348533453288659255953235761068054362495981059222107197121150380661403981927277923768257056754670835283039605447775217510413372532553385867563377396978794030509584889676521354441266912063201074654739234016663443424189964648565465753253523075705269408151951292709019071290861044934384240285380831114330184848239333898959048110608847326675326456351711366442646504923645015573255967187219640239231632670504058754218360107906054563401229860564758384485603832951450832129372891583072376256172355658888500764754192266598386056273205743695938773832650760605160443506056191315480429468916678664709340067976761321616815304811178387321102762143291602935391668797481829326809355749891691165367008943107988367281555064646397525138470616431931558988052293599759239546426646134073116126101836854054208074788427458211674251687923913826950293013320933382548119992003024778665856652860028884486253674442550287344265448963698563140344520943972009670841174375808464523506994781518010955120016102292982461960445491846077832229825896684517566852363519446693176442142302265426504680542144383171194962579592515678317943593563532180462709612620427746228374208702921170621985268548822779656636012845005187615144227856963026390620465528504303481323597423763465802358332055321794609420961527925676372666019562178963835812152791576405087291397134051909229928171536418177919104205018858786307881224272594850166531460157345431424314378171364423011348010379554944227116693403830903724700770614124498549428293459887695502909370940953938128061074308544850536425318827286320016455375453297505246312831352651561610079919510819821975135725969384190590581095708908911822504356620951392549706543027370917116378047677058028720620971089703521990639875363336099395124416548236757224495958022428344871209684601229471066793686822526636771150618780416513303425066868167586414794454221233998943042872754735419335072194494851751333320068034280002979741043563073820628341414707169354757901256511652385185869598998328875523389747741850994658666166936658920327739926172794850739221966930728965673240112637027968377330545166268652367140379893108751792048019717378655379404720535018476910363302384645854922108375487916553114526887658420142688116989591569803353343419535886885837950453856570862370033547852449151356480461654693380224506268655062714027642742868339503771829878219139493237032087822700254139684966006681495893247034540681695460782780853047447878945035111571767805303907519980583640061362378407486916304418449527627923673529729076697837657289311324496316696254106765098810273121890321488248109553351156704182716565553338764534861421483266461784273456493656517549758807807307825607175534591008019586453607222424413952018474050885515215821259584942047816078235330331676529003937927375886067073600627233686162969563071297518349240955685072715294210946675998707331167411877020817985271947413591906967487729297362927084044304373354339333990651379264694508787067068791467975404136065934389830731507005144681687332040608330987242762519828395087174513155634969460423908277299718052635666266117409958557625607073104925411579005649552622900908155780896354477224208988507782290829121840634435252238735989235617370789100444382895878903277827117931198590673221950539866783746108110253726163015827142246315420048558409400469723128522809926691355367475946315222100546931413585250847884764526056866772379792660167755176852688131464486822417996056674325348779663461374758049734392454123048730865217822299898966679931184347119596658359766216741753835435338594387219882163147226584313211919740392500007419736964925439830993381287102529760822639581656087283679953691602535574033475422561016185973638311206067067580398357129187373303052095718420278661970738863177740504388974592917867962868804634073672637833719227743615019064663687902855140966319477913767334192350686367888440336155243702014121124669843966480284211126141173830264119900874661706455343319212686746203171363909717893951258018521969657552686803727128737105809437280518551533701908085153744515545230488749890545573629026145212693345025316945455760286501838794959707824390108145138383940755593380780864740923794897968066242073116262551118746378652314552390155067136182496307267260489584189842514316687817063957596229155857084072077676410463959630253513384049950900447071777094237331841871602002461259686872791678722814038155697229024735981492661334924090220869904088863349033246588255245922567001668611557267129153722601584021728912319899788280357605734497431650889762620796998242467931789336535651829274162886121653095484383140470823256704989712442258511463697158659329376099582708707430637518806032927730031475993217953928215545893251700027537243742020566443119349359463457059052680324938475683560873659712973375608642898424249968898809235166438306419500861855154834500820470189958112688851350651309653439673494643908469320141153149706831960350284512165459987519391820485123351420887807588596832608679903221392919507138383572472290265985388633700119160088011106214911310232493172967209399560297233909998583048779528506121127036714157304218234997901360719845590873953008126549615267724455667215533227234229287626985242664591503348527100116658417403341553932444047150506938355368863752892809786353972444372160840877245047616308454931092862433199604963343677284304742727828672994523740154951584081225866012633743864645408853956830701459314857503614410500257528949913967220696651674057860386109807585652672272699134974404289369056857402658158109079544047379697643559035360020148966974009417387234603495613862784059699840177178583342083139903792795744037374937775483489376849572522618100713555424014235523665853355170009725505355800008178417740882683450625074377738322515529860411604088386221310222634442766728868747425620975591502431680512560457693379120644212826159452077579272841684116247685304233573941885661585857633035913437758726334887200574386904496370313160000554234001408401059043870335407558907929591630275791815139784688223026463515419000675609219043996740752789830630693655762123708503922898438190014372596635307531541430012054991436297240528008074950394550278205482348066430105970149113664333041616500133143951260018432273810369582602097888639073189127628610640915081028011452504490673734001403620750742311764191747434409069756393484928075104102380214533582996183226898124217197409905313831014044154651227095282226544273974824841359324031090483468390187226342381630183717083706710001834521945960019196462535767690656505696393730348807053356987157665790401967181372677818026947852890091964930934671414894564055029735936350940083800395471080975691012750061887350440006018478147438930225574297279080097626841788720822007958830734312640665798025904271514569967619963015622471524084252717286780561599098213468735813934710064685841381570936959250053564402854480711406710747331026756671071893205012466063617594352407024975046247495109314461424729240510836919776134888856948062277453811189741478987496097681446560563672420510803622248587963914746092278990351951545042312748143470274895624331450664895994643659358929064093136784200562746291452069028053823266134020958808411846548009946133651164724922358518233407123902901625698488652195149547008884350086725575285058358227558646857711831376331618768114460440037515557608652715715311617103502988734226204409674539519267707505823086433256986250241401334193452771825114759873483507096255766774887585178390784080289458063049675485266330597606756633106075079361684678607145415373824573284976825252280387048761466527337484793629348689480106128674754300317950860566287604782440610176397851502353729756557541090155109307628195705754022657803997585236789865627609026200650698794050043682378261386714030231659176591102883391465162319966381606467348277049038184471517647734454668910300278569847119496555334921861981453334407713374821855620682894467093751607673003283602186780666633933920015263851173333389936389946602832465023595746738353615413387506363009643927206407708688918614048667822704284871103963431764752023068131239339277401423413471153101645321537776135152173950784755108544910859973998661915879155343502683000049297248647370521866102797821983413023796029505421990694398687004525880273029255538550994551482989804797637525101743464099867576901092109245756606991348455219605911466218464783257730957988407276655998124749220073526493559653809531553316633672988431869301246620653398035326272297767202594407897846987404542406042543979020566088293148224413891814024836023510713081071000855709640609897895259150620299683171605379684692456006993429379439417007787030453364733007914452297993328195920544709266644341454673014986636724894955554405612192319856113127635101832033417144256187665554647321671698913429424825019261878648615378395004471047338359575939772719500802822192223203071028118117541066539298740148000590425788958594281950037746149385320037761985376822655155909749851231151974870237173065195865666451448725565851233590656719233677498485771658197564725153360299803345498045312624562266942700881148343365916988212912505897247388031665358338614513889135258575639635509973414537570578272647217491465847446903738777982824260040011152138758067016079082045643242450828365526640530660076573174160752839974585611458571173392833699028661804540800955524627939201510741642073684101341262704303311491556574295514407788372560718339730347147500636069992670927166122484770730838449671504956470893912938090175773775656769293072715956955460160356866303456593784236782551369205689067658590765300108282754932184189014684152405136862284904935714759806060542407963923827800569544260400802630917881355854396747084555527438119449994606098814814350227717388011098908776424166898091635020386085704434558246282610783029904141075794668860673043169651632610999686798524981022405232162284094593180229590825970208607376031259892551454973212624342807665166750081222956917976695625094757762137885012217832876228936825729744913947030323680086606982876714326500266657457736704186508181546174186051990330516282800923351472902301056481362295321446134852908953598622971035643670047160625376847128061791551417261182250583360609210645209010353165269329693776696894679054693357910614767489103567838351785999880974983863680761252231033785807142899267475758320420279022236915702599451113186267637500447024431948220956148506566181035386018247783634113818617589933153861764410409134761466896005627872205442583056764372081111172890423843946313421639918921334636291158379906487704513850703580866633935648946743511722637854561427550034737566385494182477110861559410978853131366588197024976330918726567114465245743297392044452155587910951529069109374002709552863949946724664880244797789525940748964686848459584650754732043664857140938211320147816202223150155267806940298526799497206129374004621108430678722181735804036102982071853369299396277252246506244643328932515652316208905867970973023120733211717210864311160966370753144624729692301801583219913130395992840063260952655003819710512531095261931664527154930567343849559701143214877742856316506500577812440010395472654982101484175945213105175579468680197054140814671348142943041305703034918859535707328674051555070602206567377405317745654088531653910742590010341902513504000035075814837355454053558799139053732739365626064744432608073073164076374188372833029111103987416090917542825611831552117544568202513183020134780705431642415858903541687708168157531197782417955400464328831242076947991840102095421914447645658177265616452523798632522114171829714813296240900486980865845014024244993247506616196254748089958474706901206053220143461018388690493477085695712447770214690938695086215916488838857929303146878198487857008132953901117109665372192959291972717715949541532694550040931795594594276739558717837648720627582338322126470847395647222437757986455287309720795211765802004505558294951631303431448547724290219844759030501387051748231373032439409974094132458684172507025032936990844129303596865191398540172245805888498268613393615068450262769131160983166278859848227203618657583557470629447908740434572052419963375446803821438517618994374630937858714040843011809870236071164216400626923765131208320858122968131934062846155555086900338405069692488735353374657737344893572588678550629228352364732032470990719047280400107938284710105633573896848082788422584263503242450294408006558913695249033470754592996819741642514830611280182217654035871234401831362022450289415934972539387034325866267129446486566270368642932985855586601413284990486271896923104161436488071240950737924879295033495204219214756986268586418005589510491637033939436792296958005293126350972094806956597502224287741241136244918890029772142108618737669898180826024709655824715688975738294270507660180092735615233850923892943004553663408265391214973741252225241113643217742887296368455615194303015252538913737954994227075719662793734782070307229570116835384181063714790202885867373633763355546748582525505517671361547034084398456144770483299807103020348193001018184984856382687127924796768309673049258767033530788643854044101349663112415254666461601581080887239522403112475038328381584333704971997069019778419962379400397811909774251010856737905099056303910659918742452411255420293592916189867835403250230267996132091879049212934217028049009066434067982831920644832910866536556448236755133960468099265380574427272210562537388635002621069135712367762023499429539517398411048920065413776608052043389802089045063490012165157950734276106908772843653598507819983871369369338182846253444582774907964074856789508410013844262812690841502491831461127464038761605359584708262338545725045675315960277374245351568246530979518164583007461643848264589194435214199562446406072949834645724912373000259749359833737952764319064061882816410707522278595105884419723184920629737252229540002915610448494201217142181554417047110436284713959165164458752165666178675331524251139676534013885916379706387029742427548564994706411860599570454715262535150646499709821892831483619158034317644917441499590534697163306687545961141134151648641851309114770028851084306096644993956601790067944346974237007426153239716753034224919780316098052521540976579443242193879545751778231610937900659784334612217187342757949374990775229502502937455935632840792613415105206275629164397814532265688207127654721532249692671135608215208233934699143827344430695644600511849452792413665312495878800610070172581022494437818643249478682628342807989139915699590379235578125242506768472109028203395960714814421031598277317565025081788928437873002422322769180620361407279607521702513443707971899033611376411181692351440902261123710897953788615010763849448827058954328209736671835060857675211240965176938781126544270546119467648126228798170848852318096080730829659783563941631842916031901214577257850223451284319845152200008961199933031238010517878053030382282500003457749644204700414958426960848092482641241499170750429651320169346166011256439048221683507682210900856756282383549252894706627368083085359857154153192574988653064994978820448820513825081180873959215939301431360267544522294587951437714102342930548184688816736779729872040967931686053068746227139523644089507490390938235635109637745545434027175609199447860888306617581223145138704070981512452196474280889902813909016952844106317983400885840557625630794795803473859552307953906877524768038781790523065837552847269951886999565256118343752578975362106213704729780068579646094776778157848532953467648075433387838450817250888608793966655473858562281693854762641205052187511677994877053919381529118037735109120921629355595620941114714579341119533749900133435953427367301878096837146151980836170471151918763926835564216648698285285798810787556502878839492437754909289612967944156288270874004907105992513192543829602402075660334440529926311306573153356871779920454144792263640725258339033028456400978142092820154387647028833581383858315411595501833633278258151029080686631325618319557235625399443956922250733217500630165988007015079160921206920205517030407484473168442612774730122307843933558668837126397202900013714671699038758842833175674770738302537213958455118157601296030514101631064526012816975710134728553203761933249313303011006604848265038673054066710502161563974667354728894901920628846452154390457064881619729146936460345383785309218440407093543441778729445442849720223368492852461920710119394098039673881267086757286066485650965061203245072385932064978122991068432794993980614202022960993242624404036721163013469032203871325282330826941982145140488680223056679471094262862369933692645084387106285846150414948759128024557628913999662012886508629094066017895119136032990410358540955481912209851377216087876233603225359485242447755698895306502365937784468614293064349109050416860581673753545860319526893573438674692816507318443731771600747603115090071021309056614508745020564277757744475098344198991877838834010684814457932266319230404192775368258213619495350389169815696657126397370359461008456095995360525880888043423677751150230620494146263452077467781302236503483771713702664561557381134455958055125983446860981695041052288111315509292411298428911748192982086673364375714391881467988555948568263139680139109196527305416190900121894555735326236731576185799294915132023136487535523005268251307435322622172708009891815257511721906077233370481898233159518651435970411066994805506477561782482715375202668270891656803393652439995225690721837992280679843157749276059609794484535826318144880108568604916298770551300373388224292001398785323255842112343945709566430407581477928285435244788761683789016288559527152971138178186900971219470182292004399736044533422940764055570423326976522833740363202910936192472257529945144716756263904511950551247049423968687360480780935213398205841268223306342576564799511174809158269632257258163010230031222777831613419857190757487740787153811530653641663154917934576455508257016890385160474956569808616962121936637256883970042576287239432178162978189050652705235752280108399226655232303946294436640387842203729823777146415698829399852122336382025620195757349276662453021818598172411880228008561364936934347246412595157569955395796891479982493358198726103676872417343636590926668644178915924712554604055492636169452515633988907823750626474520584861804584001132865962941381688627936648949455375017506551903591059501760555908500810606729514412262730691008183757316458020309795724758176238309608518503822091076499468706736970803699255782873023512541877521761627174687708239065167672548720028278805751323981737350359483404684698271755878250375433117635204741136172431016327453049440275905280425554305851349633110250196204382108403200780878906525903752262665437209407043620670981445268520580597298849592013322644934868933832242668682640098369260516236909590491769601587712024547290667243866805509892306725268154329400028817607392060045949824479714244157828312415675890969430802913416625873134921235875183730519525247432136349556779382906735307547008836078638940283292077104136553880893604946824178156935347847726698357656240300608481645384629387879195572285159938771436863051531534501314400633690847013785184029382249598027437131137231204145470651530748763874570632421364667494569469531285283166384672209244510810738055151252720909313702110634366286412370228854556584873690900539004156426886000944082764678978881698375822784550817922412844868716629208232757053072203708628778381664878502519294978910966693061855581368096054193255403102338871164402756114858065530598086561268956725331367555350271008390293446515024585232208878717075785304659374769084921262804637251817680941078118810789337570469259498476548110759867981397377979935742574607263984364119334848123801864687396675904364765710850073375219898376795661713523152816443784958833010196357909771702694650246511960201759616093575730551792810421709528683785246802301892689192215746761194608987891242521553655795911746516350866022518249604887616281432009641589185742246897383100653876974811999744580629449783015333199059319948327779398304200013387931685644596200601235474154207896766176694513845364491500927342890002436194933880814276000126734779863115152824980299540976898762961721307011447994497528785010255471593586697128036714603275038465400552763538254431193443618978127298443167068649207104026679220741457131980324651452566004986081922299162458478954176096004175726292064580876669848399171306045090187981586736503954726513568619836720715166109539291690353290941808825500164786536312686021918721566345553093358882688754537321669757520352092554214932245279481650564775765705639860519572831552600935307921960855836888635688845036281713462560240551683343332849100902059159190952332886518948820145986889100229183804345418603477902744441928324760392448072781943266140529035183804733896152143675524765796724667411725441710165438719361082461223478701748777105651784986707730747282397429931387414701036946370542570201999243712734162583365515512322385582144484954363377228488983509195090634467802456117575580556205649495284484996297352169219759594988512981769528352137946189408974721357587613439851039604725078982802500269047388920740305435958871291514754239930559590572336109057994451169718263520009909838688523355627153167854766791622680218118768853964322127309097559626061383625086661125013523452117379607030357761721341476420314310760987828036973205183202541659864205436914001340026383241132521210432111433104505023531906689988592955893894841890678747574705382841089768792599240487996275363091367812310104656959542797346450428967132269553308939041358625025261671879410105322550060717553643283763570212027541437519050987256365724339578771033315826559268557810890641709430135858604972693235768463412638573382488037099550916561150636730815107608114346715134632277250392673615675142247401676208719612579881726116394839718294031650637892444065686814417662210075347251150434486642719117660436384397090002954102468694753030162347051904722735526774659837540939086555488479285260915108653174078362221067530560835241193685966240968584314910119961505968524272582206309079321990254909779786753800848236824708483254299171014949716052847831651958976523422515493164002172682195766465498121873425230949923885610818091301664663707580580961398210592551552564918841001799997575373596435340190499154698933893317266488251145073666587253403756120747398770654782092179267885753145363239265513738334830787286126515196105574667141050279153930213931228864735362325341166826479486616461287211859633980984858702306264221174766152534683022840410089331569187825887565775386682371650686981420602092698639074444018750296289639391013003448842115661770859887998727152840873492295762098332868963781978308467490019036824295345591657584322057120521306260304093245793304558428493489527127794190670249478014063465222800470193191903695991497718979218837623558159519791154503349385973467685570263638277411191301336462939137525284556646473979313088540199710496800717727992035187487740344460610749570898626982051925981519456801969087436129778998518821987899210946173728145732126915802433604003861298307050914219592432284051659874769130509298812160952194624608578321118771950467227296030018664187984546383658008346232865483006550671072090163113441704132652043492420331772504087800483369457998310479179090260763993192811779353863857904992896390775387482148824668792331079730005939864988826453507222769519036695622551597555856590446990112538053889271443990063240391912422983994994276695877148756483415229952932765383378022074533437738813110415600021882896152406307995966271624135311387341198875888377962722267155009838160340697556290618120721986357670445392396555038323905603454069581289442641780978861281141076570308804282432801781515016121995886042664126160838878790408435725632191403869561737592024720499105621509528457260519932487680210303689275343636847672158481877527111309588222281785438177372674792126083880485108616130121133486307790398986490010887688557644915568615742035675316649407256543182695496322902483575011827627912937543561148350010402702937053453816542662180022811945333223121330371633154031893604416329325515757454255398340012430161748558533077769098352182930570041230764777806207794685056467401421884120160693787660892306833249378373430352568568100654165848102528571844152696802884251508725756277972212309679723902293534634121327656582153477220811207673058679092365703608653654821393146653319721501183807823465020847787898755786876032735240221541938258571314891844999088367202794867659454704510804487804331978555593634523634949849698789634875635716447935968370005352273516953943486236831028356857562947304990424961196937891879234889379785042166316770954696341495974900079838783171793885356531859880909759531039510676116930984269040575100591210590060884717427277554505422308710566105304397976563076915900254038409609754931822185968217974225550014217278264677847982094256566862521837563943965204286526459802260188300488099219952434562301132986684918219192630567043239188973691781417159191542216835088739410713933337716138503636849351457658196785077310905547208486597009413803583738833266120616832806398493215880910932801419271380783279856156589378823672686453854104630583497015722776137407848858372272637041571399113102497459075779002785439209743009711918701019699645882374279034002146022684929702096847148712796208870669111056751730692676617439692339007212432078285289830350905850280810874066604644299111737151411323404337038941214235271685884156407886127110204799780841762156499890117190956356972312882679866562670199799090064757654881740030969962606123350546387114591946712653362597625267102533214692970948350220575778500257868484800220119931488865969872400402505269741340890721646945458895497369068532927867689234836237931334686001998299745380163071276173197753921776169837281150624843914135583294306179404071060770214384357161923117877784026476023850746904811361981425776852278683248593407140260289030848428007112289430422534606985488336713805079223020475691487498799686582595212911705877502054578338143456527028729843954570055258939008945569492453239748550212658558628523566528087288851927080255871098893886062320008647411843617269718975106777557557595881457254897927529738146347003584913443266025573207635763287656514880231776083819688365895377845311525892913950485092838956678100124423764494175793812043283278427024492585013937812778721865105742970230204024262721943307427059074291198187867551459533753384836889995620399897325041953003320458366945018831887250838896550753607427030271212721164108591701773113429825334466751236660462201122236677854066398517455668828042690563989453384279761445662153843019885915501457489786063573108840638694009843721638056686759022174437789134985082991883830455761164268314313228825148901676182362981074021245471558262565597818169885506752960090690991238656924102954443836670616893127913630918190106321528338064680005303555205426034929398252849275032196896243703938951165304667991365695615575612651770639510224662446404681830006871051654133795536642410791931719989104408955896659621413629349815038759075264049641353180258018973860201157005957591247485135163297632620840097692736919320051806627612723537768008838939021573472697190386555217686758063311911584027992353703852189047420285787518005302985598640418156884799086916016069022145093741920117790830058616681106799232364681532795436682739287677336115335799165359250809254044960429610572446391910376372643567307829074206557731223582953331765898382862238668352311028535462853949100557178732565119282435328961352915340138809606050940578295625769401683196499435546244556900617342534693952349639204960643530021359187983442551453116759188643637186523914299028440707252764906567799440032874353774043401657614686458696157243696632371587282369596512090820010481192929221936692115337522750134587528794064146646341874393910748285124855641918129451394290104778137680331531288551213511519694490513498792314328465401781475418888509089416155544274272221198063434381940419751262943749541528534549762402537271899130922995094185151336872711056666922972337827211042921916531471400475850480366972494832537569664637846029369567885022605663645785566569033462870421813184746717468699511808659751077924296622972551844285763951228854256013569814755871738452428060148173494756334567516968381190955011888530049989675607201974783991977212470133392032636473017974152199860322499204728351794981837036624567551200176878881823363671655259930775321449642881685856694571882204125342576501853358041446634334473538748837695469410953681842364989675855686565190423525865632228456853939434430339111977337134772705142436243770261966195462474638366177465520555189595161262922054876182261663049270281271759033750482556450761363673726085989083910930609844146138901233897280611890981853679392789486317027230936336344332456904272423149334393942902038749537011133272371444970827417641221557771182607954390437056992560910750037270481576598979306261863174839018234859167352330451421845522065069796176971768588284894222686562749129959261581464925552480880495427044117356372807977808718558035473559285934523344982796184136271597220849306763322893729015254837503436141348584392906685844246627176663724939523008763821865576987261171687648548212477427137513377356641017174123074812621938456512045486915964255891530777912725258095952111238371242184331904913934183701866404256298249575081959719351217732663554542456355755426396656275073024425930180093893426041464032355432410837807828095392806802310237560858730130474109364316726987315131031243187426121989378299809424908093716388650258490514686393124778835183245443617821950474565441779759628057364269200166086024867058365397277790368384149322156195311747085967895808683421529877675116057115637428777691633368655119609274649440260087105953102071751809109294059328135546535199266403700691754521693794557768946958847625118933094783106411325499656665979725858317062210991241900734995676482581569848054513231832126575343469426738019063451808907892028614004470393578870250616751686045472421931122308235538117988734282144880395630197486666994658557604720993855158974173802938596343814483686990245223335648813145442180517580164731592074442882504815316463773156714696186430918009549111012508547534686560851985506570047502786585857976087483270097031214000942106131966014885833412887645153477739796430212572614299194539270452957602847514659817875843438932513071602817129880093110064737730742390655642812900711277796171211910433667226537061152743511892539206955007637459042884761426513792711892825608836776798501192150019538229731960328140955413904790848626598643507211939251057662988498080041634314158848602168738464741521624348607344934380525641168014942642535403418064782576844559700617881306104864554693287066413593185949215939199544907679293951392978327713027762425139047066193407763740768428102022037699535454296071383479067481314287337350163881650912805976623245938176330817458111070273051089835386579489586252214320741457567511161445486328671965808593484355373654368646514596549959272341917739188320035550114292370890703702848711054157497811293125143997641689628942168197324778500806586285027422208004283281724748747439102852991469318799746616720348725343377752597117391423120785807352269864337712842550302866658268977496456022926520589487078884015401794455553935752282960335811961957504504491935752668546262613839770166097080212152897824798888172781750568524232061317586316071403713595845848480133613660667604983591412080434811390541266958033236136101057787910068263153485631811885218341490268492779372912916689558293363984168395909968803150498143618378807432017771918670223968386275709405077605756246863134813688986168062775553188405417085662157684816925869549147470837755551944042127484432335785494520025564599036169804792666407244918838841532619591990260960924202023090484479459677695489058718644537283625203987987177419070717973788242037087043669801109656491069182601493277749072402611014140175556745716409653377508662256293784929799743075293625533172814476118215459196827190444361191006902497540811193602261213360623893059813458077009939068881016922393568550572816090491838540124963325108216266516747904602235056131273302639693968660565616352427697168320356268582020339098319922317888350758693014899105602157942429398594208289051932228724718119512851938823924418123994675236595981749431866735746350037693181620511735100509743773458979671784935316676557346469614960102108800351892622723865484400649436366271977495583165042924527587851377377154537880521657023413651117853306222833549141032444812807049007656661700561621239041752709505318504053483384864424686006276819356018277984114120019582916417271580916492378068233472366417369664099917972121545015649924414459123324658709087693746557000415027889877012559101635318783229705443469791867724895920642672495390166635034176106168871852812950104214586657448480530876767784184316477878813882402881319216941763816657038908274301075059936860006073702979167721235554012336975326686446592662224746881455842178600186658806332129912816675704367149834432870355713248809102670704766834169290244974330552313285385053249900774291477166380433931535763329303322490824525776260464193190230173147060272364058704827212907323707530502617363946507433779859863292285543797940930804792012980468904706649169174667511896335140132824751386782139656146506532471196031593691256022051632604746227452324001589859213974952108912451752785346946644006808719716627402771148783611335819249687248842534277216751871359701408860058837961137319828988212045235845676422358784315281441188477154870271937961142117337407724427871392381532760769914298322640747560627205444749054083681350427180044581743244217103366649253145946230830174802171446832418604508623728748299535839121233408479236860871128487831854587382155189645252543447281092389037221166408764877579368037744703069566452689465678384325941304669761661462273018486424996244235576880839490929978743668828220930180928510757413934691213857778609718375438401739778484035842412664105378514276916130359801194685131976213413955999375146230460091486966626698127051039172435347163974532881540553008705614845797151583689731238577781572302888679369897980630456475163289119673105120784164014224783326259625157552484079291203995266913870064163620801786178431200519446734157807100780139262070571200684335647237535205438899137234755520461362434314161904912907938664543651793739131915779410189310129685537533377544789711109977175693659277631169557197527526239727103929466652470065643707017839583595513448982580305515162176207394118553953692395319045493553902584426400734460396172166769016892695794833838874641128574319173648122384613003113311084004650659835441931269560096792170053418757386717442499206712533188204569040348816762663634023845448694959767151714798820817526780998683779111228353463158214202028614192585567076303378239521561016504752659974785882002171544543979031224845683942864017735508034086131127652611488905296463188019055527928124222522175442657108918503294861086075711818408085282283509053362056104711036220070749512265196995937678274130251055935813893295205027111271414047296360218248165120938188704172890852702801993401837309957223980988416247060761150120708513936148480683803190517068456538466926422141548691392946617138675846768090467913211775226571841824324523022452418106956869679186799618987800829005907283766452393981947456798338420227238675825918008227470247533067316428805284775782911446491991064886889942146416961422250542416054136792704883019150584374342070535355156934646032631345176656239114848637988644176351232123124550308536506472933673831697468017256866577595529019863298122010643834854182475680648030492899984519672278826537268152029969671757985374972846140922565609482248348634641635955758453638263680743922532673732670658185912869843373177100124682761265499417546080180659627289356753804281189096577230964675981557853483444965075745782948410786190157502773097648317050889595131908672974080139807787929591034538140382889601428789662933929860215958142971974035675185204660746485582198123225030562185119491762753611168730213721234562191653597712658212377150427448962330435078780599258569836782883285379438873480151648861321346248521730664595186632376192233401985757472498262468523933307276801946126596840377294206939389394727416324819671265362133978569937778389451627476036378922279695052692987330182638017037888483005919289290848254212752516674995992143709628389023491141162649260416365846316612805164622220791358076326691912174208088838417372059131889847177730082770511117747238661919193359051052561904851182518924606460518195792129144737010060250328455663427451895329782488359299653649581317612179326998790063338840538142793396429272865039078509453871540115623053194445944117076538871275649934470694444449949314202863828615076952719788835417014957228424216592679858889243214385954378086062787666271246194288738417232953813153033231592472837539288956550026062156945172697516937958980773052232882423593441273283527327669015840763259943844146030142517047548799444261570526824257078112069106751045619012163766811792706652592475412687767430028080443055715434898780501318778084778932178673934087123937179502807124419123450535554394303998874148355825860051839243922403214171340521837416686895764979662782648395252403175004865354362562583560409807085512384773061877512452194973686802000262656466612677178632592314557051745316128668274621484269341369791512826787536325828985191196262109768667958896716046924867200759314996339457413620975104363307177332587676461395902776971642168991723006632536350014498988177251123749502506007685124729712284583412435653006937492147345337607392465569756445044514342968794118131959915758994101973537086124939511697222540928446612180413823537757324706884769605006676123963369638987469213357080301345094495144299858671952878142768733060800144059340908842491914790328038569661452351153662873625818809222669391980594609724857239794279405445279201948324214016444497172359373740295774075971847054951262657799734598198736413129627696454457650514371677084245786753545621797389695279434274989079359318081355355091214065798233507274679985677504342656021211973138861159398037361205256015535057063643470742445486220048669399624108201428277569682103149966585840161967987144095580422326167585183026348234206949944736573559100018542300547047530182567700171778346072329203649357710014267376728176104178296157048907876056931722433448446806515569707875526844567149625583988666059771486445123167049112823468873236466536167089611218220275545599106079239225136053822018098288164493651485375756016843233973103892220347318225480503940786364779881338656215409461409617310712626079682165052215457781755942314927430417476887691181424738890440507914200228791077233828981584500575628665281417333848148507099243851415440064813989941538971695338028913473987876034946154514741148607252815898876705551072985000093255204152496021989452097157620367957696677106766439565676625059500180641556037018524086008779796110928228806007124351735777850353864414595739200824133584721026665645742230995550109624119304547963033464465970604033478898549241716532512756323269666868621616521823123327835293515580941011837762041971505942692597899026596253903177597472277305411950244166496711364965762419885873361514002313547286220693380700915137904277056815194935731549120618695899474772609058404900133861717759077991019644530741482289156553557100206082553458693992283499760350731092399136791293943394457802509833980895512294924660886424836183053527550930475584211867259323829806942405652423306357957054621173227231686037209643969420581560318856726746904324132006196570200715314667411646086260245606487427609754632018121250074045951802538492993511571294502844336179069118977474251392264362239224409609446389432252551047262906191601527296166217831984426036040884361891917976428862972963378252796566298660607873318744333795939450667998034426264963644111463877638376999404375162122581780696870635938007546255803560454955488865636178774784283859024073157531182600157101098887992644484073297169211387775182801853471387870500818785399633820916538284725802333538941918771887036002253157296675163977132418726016949578038753075905124824050489158707819329169252724682203952256105085881115895791463178675644756463375532735482797029456361739399551812375895332706735249523143931185378319889155701935767148409363546804199564920623879515896640402825988391169729398131655901198185574552491872581762758832031431918151661987944571138554014421101170943828273338746735347771898407568968663884579620620455897842427320621068088101816403115777552624177166393069742925873996335890912692372438678057074579241637552128618150445946427880770274473390013485144671612749076824385579835554485751833065270148567741379560849181392538315758772638075194936399900300696777658610482279696620788995324587429432049733583810650034458866666295315161419477424846318900587650108533477514049991580505399251526761766837814130481790685394882972856163349362017495198580102360182081932623396094422911627958845213272149234823679658177749995412269833886284978509492410112704353523339657159625704647162521063826451780263180753180680067641518561041947549228769079856818223204101528637096214241441668899096913504938251512811559711739844281969780289931806291077960859240044322231920327660383162876471199051535250221117655609229223730501691437807084213106239620071802389374194186439574362524584758538328160546498120570303627987930077454868962572464185965220382014851614604432712698510668671150581057423770560937054233152714017498663410264249499590382837910615064095515323912168479311764767995497461254802487435171226273594133742253803822674721720779022359947639639405308401657990154985405609091357221772882022159042181590250442868454098640853142757776762448464416272568620128495774319398385282636468859843224770979426555102893832596230740667875209629255438197082116886337165806625615491642705459451220681599951316430226290184267202388009913555619715387788272326441757934936155971422201222848829040813473678736566191290574728835626198572024714057795569665305089149033644103251894925141823359217103029468300866833434809800926302444694723622933554997467492127751994879570186953582423909835015836974283360450080309424997995208182685107916574568532568187160797955335344252010948843028422362179595627211738643458975749200274581467915159311705940714397581602305575262850684631611045875351311646860093596616196697579800972617676803203035297686148266367797044658194463566055063592163665267626712855478359463859966117281509690693182836001302408544500716652232046920375327869561015286906644860203449609933576901783594576927614263043300521374671685147887975915237773847625353435752431016893665930966363520597567193564780558823025368042930798622908168294359598331951628237391204988361305028652910620270126623246288656300068136460294341921817515218216920170063306166229864030349988907872236123180280686037903993407882203565262157095145589337045556308967665109505177739198578883944664537209464514279487921410065936294126984529780697314923372318603134476886227836647878140549185483361468738649019152493752087005209163414646964231486669402830605102349984773908421603707038318841193142959737365276737772748954593531461251349331512703429930733109752898621693858695580072553316224382087447906288636427199195404138831067584219265409771193724576310718925329826559873787723711066735952422644189771953873126811158900693835006870507428708050378609287750298119647257362157515937244021176120325376885141331929361043524117972562248783470951263210154928190518634218975138639406436834964342501544088641797717124610563745003751018529512469266258026061163621175967221364566760931918481926204730616554199128271907763540281084235857313851146332055734456137614091750186240107046375146619414650313231282098825405546729652407533556779804223802032357303300609814306271532753009235431519257422203133965234504214437847259898930367452043335794233947865878758119027281400928020086097200296857900795820016757738119143367855315913662561171727812465858200579775441613582372384808674792794129025330108608226683190563961716430944583508495417400357173546262925000241436805023707247406955230180954133613773647779550059949562046832745716382909977693102290932453481101456958758558724746927706485315260878828016933403905610114147801000707208507829514952731219998334583810642524455736528942039833072213287396072019133047502380203674896158056175096059736104628498509683652356400151761870229242330619196857057041668002091460864157751786916130718811320640133117334596552262922721746276707875197642333695404927619038908871763451517552276525636791213566185203298750881463167886681237628919308925308266661201154454910799310481431249214989048723611048650633052733003568065614704071606812394273661370367502125487582939138380356583407131742104616476824526572044662612284153156507589511066575167582257689163661720470121625063014439050077595742495458882768350824365052729245387893330297724344931523889616933894265095167776730488297830986321736397935980581005174652550227607897945929190779854589933816993616372473100761163218056164202174604741785552926513646438991728230765897605245179676590251387072367713776993898715866635859558718650370877194477554406552488040998701486126715545194085671369300845987135874758205260838761691809177993611011611753120382103482553605174576260148752832926223432157229897948214347041343989813526409704003168479808097056102263529060997812724484669298861548647687523558296242600105918695389773789556290537119336157127534013563964424563079780769068574657479404882061059348940393674430829592833211350020813898634732118456191693528816192516864564723554392004109639414161533075670130020827433363663098183994520403983406960218832773511324166307010237221583027339897696754619650302189150704489112653526581627492202846538949723216714609406719011292581120893825039065998531801085218063795598022067121924972253640066827919019901869317210359819174026384447578774812215432465151294721173043497531998253500936275364961515871712605999092669532183706208316180003511110371997480386379721503861062689223001883675523521005341492225647314030626437271585884660793877601936693805830109789258974593965050651673442131278580078338098697405226009686428407467279032699191542895635914425591628034552402977076959933372750351225081308287623934764116531924773235840713627256621425355808518646713941796878388574819306959929711606140709111142317512500746178956084953359853065365810441157655319102765998162670677999343342847912656839105957174756278366016559463631581900649038859829387947845697562749462544336542204937615185539654536684833930868815706651897800388383803209292891422020227169076106983983462989731326150421300246318619318929906645819233302065952587805957174293431350721040860650190769330949818738338735288444344243757784888988700161017679137296682225274802245485859100074800636460332093691536677455876491442744745939698953235646343482717699724976352728742836155540145454136932475372400945772760631306237571316401203777386518271069102071178330364889842624312571661142609757820117450973662913986917906579142572918865164223298448081770012182680489996345464556496110455335326295267781241100703543342628459352123225233645082789428151734145079949331724534876398199070061100101372513407067236212687734548042293136083176651263144776048424914366347784726603042655504545725490831659118042136587876897486640362224486354369921771359583768731523160150351906263485283269134438870863600456342311374143487306449589728939382025366840387336247456066189675975194604161153511539197668839388300259638705290519733262388007944207581262274138393751849805786817676740874081844688489400855785538359650488059872752731033229976208239416577064795714591624897319264231745829397371811813110997114252989459902956913296397461260270576254899869600267476029267371370421830588178580081229306588607370441793950273208140374165383956401598215181989233657978802487189634919694392849116647470992279322122366160446514507868575959607445910025580176871557258724979244136308645449651078397624800742333635766396674876992248730400760192688158879804251838960030314532074145796773858983517479066442319277047634669898336672602627914806510402291734088558738316229184510854554538980017139180075733320447093276995816207290835675623564409457494995234044357461529395704682614575152588886826012763955786506172658758166354465678191556321302184101966078915391381550915732307866590535292136117323683100654759956376170527917803172104875514462419846769751518811720930390323475271713128616446961245744007213538133062882056326719774647465665976724153253712084122600086373890320386976981001664361701974565778137328989134423566075698033252731407673781386787345384144520257218728452565683351326581388409681436277463405066300543240475281899782886364323212885012991449128507486361925375452168947036229753132634854365861576773588345472110649052240930041752262374436451898913872364658205313196546431382839970899376811284912885440603593302389539469080123503485392548703497509056674455378802591404585489585964923682325455453059979582742232536966950600982309211467509263826058738054178163680983324258115652523014537633524671992198429068786041980402578446989639243681371331132496574466131437667484568075233305913598858046036169609272257519355283012882311890968142683001518147296726540762736806722173544946015404659473174654895896372158265557622405347832847575372112962679783749823527964483173075338740655601025403086433236758396445872444732906530109220559105317479107714908423736306646304875644883917667302418881824330668810927910524575313161512323925476844327791830503444729431121540071278281987439603101764636406458638933922122167248374426498175309058096824549662723044386830044301631319603823784006166933180119779637981644438630151985484407676377751263120819029736266261083484107408545696971378918852404853182010135480662107176887531841415766927963490294271386449859748963926574474717977280509738166393377335158611363673194640068911133005981623267538960238955174087086187614291322806233470762358306458409759466547035006889198334902029855588871304554958728154451031424589683361887004420812637815962190523217250897018271786381131726892703682381114104266730107852136561008670214453847927599029019350713642492436442760080351339442660294186522977577484232098752427594467509925132784182001932091341314001995292870816857316227200663946533065220547331842001823296300893020713095055936346917597315633958836919857197844872724563123997336249440581115254298588087299311200069405026271548124588707750433076256648452285899575550889325850498179531855254811231483875380995004282135680960202282366344824638006470994239817400910237265859879426129281265209767067229170066125780433039433186133140915444424987446227397154896996911640404796834587370535167686498465371993419717703648553929878639320405073112643100907667401367009346668461396683518176500653753698215870484807041083735099028483044629721774203739653813006350833323075807529873917569798618901929355984493719327631903536425316408438496732766938232365259440589953748814529504626394113470793966842143824733334869694803132734102665205425630092866857299893986410033321830602176796534101978343981547530697522746579436318733838181320127595288159511687690692629164741697438782576026907695184576298517963769209077972506457702772982602320473757068011458860699745185362710315305713306336340390383213214128478852136892286906361372539538039707763030579931958641662400051048970506678409107626725858396320487896001846313931952305372030524980847218945835877246760417887202289783388969508852422234409723936679988902465266138416874376372098523611991240448835811474884292959664495181564165705491197200524582210303657255467705671961284943058817793316332374146680727029568150362609669563432985162400095141842490295595004806192800694479781852217359844112208228876570318717991345507490694947292169261736861609902802376786841535177707137443059453685021390565728015803186888930985050675572542636696674589022757841712990008693576824286743084738422881075303912244371397207388603672734844537525218434388860033161744425322688786560637257006592523818571522158668666838382478495641748892774533574916504919481860926130324014775839509279164789380587121648850092455142779081673956484190728839678680321468408851830887819161231337114404369912322688134600556599394095112960272498611344645410926624407417430523330023925259398723748402044221405222191291302319729188046454752709569342311065505061962866530855383469917987128775870835834302020336326427206847424053561325092710626205348947086692319902188140168645199727074119468279864304444452362737770540696592597538320721246967592722778374666228146293321065579649372897950441811685531750068165049982255989811082120389692646234139431101405391020853869821037677782840240565251100498336031361294040946519594647601981719270532486483960109511954999080623575369688752844933139616319628770339389866962758104829398847214838197147018409820943960698961648219053649206715005935365005802169431462940034967102570840870372230205784011960608961291087438363009376905526898581325930860570854364391421028951717185032257253854193611286489217661483840163858515480198136298401375601434183273072434587370773919364746931997723669507823382197164206705277544521219637536790706962225313252159881892020951276900160469461359310992539652972197676052481209937288611412227205846838092292923881546475479375271615117128981714256683805124294341110664250843526868833587984234859424821969920473791152625970743383992066500581235738732192795882226181039259183536005590126781685815317133952129917960044813637848655980356834461912033406141115741744694030179555387482358009296661995848110533181884548143705619662910685233622517525330614326840480370818977795383343116747421457180378895500457032823942021355999937278834383980415569586647747252128515405183790927846922204510061939793924168024571398379645546520551703347524209514764215919360100276605103522967446304619831944176433231377733720535079761927587219108558113339980517944179607894342823469697618964995825404217769016800879375475734852830844328080458402768460927956421976725345394677103840888473302466081465009384945806460315764907269377035566391957138706905097057583539313401668554020914798193602852153292280686245574339396042797299468776434350612673217926841301086227190837017688817685814773580476261102200804081346543069354318985686594237375201585619648757886263373667266719850644751763277102630757614271741060676737165208387121258743601100668676790940622872460522112976056095824603573267402782081270054201959045192748918520995724211416431033749789741641479701912124704634951030510284970283572975904486860128963856144466043583913077814781825108457257528366028480144173824732728195266671131348867262302721057761809038779216438339563777241693379194176325414228418871761353394759055705606659037965985288616654052681916964584412090526818939617134893033427935888691775860761520756714276656609331611179551529679823762830732864691030052271488230803735882791436848391054907860945672159952493201652433242703839581271435214430618480397237163873392147216945295367749367983891577985249107881744207128920858047394074029640917315322639987591826858539360038351766998259969047131128442639670250327846791893687262783909829455683593715607469812071572698960422642661464917908782283953795855471700725612432453671390564176686411543575743154480327133621645554190669344215351965687993672501225786270140863928057921363587104384692213100114525222804308808212894937901736380145693391198495903422916127350047738303096740114574301825047845692013107203277948257417375511268176187366531737140344349394941994923635632156233630349635840379143534588741461223171103133442382896614984579796680906743823624921930800617455422219666277972037492903142908884426382499164871847762186949071637440085348285856798489239326930875074016023014509144512644873233539394976438526914001226700769589706897399162545289313636656741102404099332104619478005872444967926807295652054108089897372875596858356442883901800534535678690219401751551397201460869595100568384856960635755197066301420012937125928310743020683547327024169702230226334034614379671647233540823203053335100671987220068582210957829066315824007371648628505035098523336677396339158807119558389211891630503985505200900945790376353093374128831083383362421961709560937239533842784095522627556982590328136453978149846768503207819517118995236787624135272428881569321132929801025904417051413467992001475008125507091424962657068589903250155486090652296480643814714316102291418545402157394508774240867666009848121323079313294436663040467361407960483841884542079877426748250858138362109739586004229151535855266137829216985658498809705126474142360228903181296622231497812584630365225451631008562130039979614949018694561485824315092331090649749555688448566390032117593796141311274880542267887225759126507152674909105382349078987937227819882893461787485602773796812686988319217361922958810597904067993315513810923113093938089448510414137837604942963166191571817546533897260932196632844353464965846639598109495159836240447974634285388951532955545651902959616074592759960380979911889188908624663933927390295244138690977294947997968886231591225304752008666310383521397645280917490773238231526018366837029226468715839877034816613110664262452808791749837913826660900362717212818235429212144046648839642574018359361664221795348736227807590778932709529780690888016660744204492065567308593598303215946864286182976750815541664354115715779332840312769188651971434173513015377954497055564689680047314892663460378437229779646462133054082972146778987914159515765363946342126701605713935403975935688766841681594204295787477592200648954620425663561867458790823779839216541070241379635780629637332563025403103242705816218556421789949480292137028115204810475413596034388390947244456487766719335659676097477425872770480809932893402138567888545864753142156458443213246236880448230995578965257534318148871509165385735813894851050977788033990468925400462476179852411040919362246488323260173979217586307383625107303624554721899703573639756042211229899123926268213613815933860459698255429704508402827500939034283224557630578271493148101401936768331550790074041159653356419430458460697466617490106194283792651076584370772494557668216205977750519767216450273907973375150053443934142812993706523972709394491376814852556085033495361429428139210292217549856184873816441784356398622027901220915668371537666626424864401966048474108787595684685844257767831609452576896702524889406282504608941905578776846058171424866587199301625028690441228293889568915474620035781411069581560621184760056114060884126766719933980122341266951764420133805914996599599035686752045217694393378119341082919644539503092367095384517035317702862100185689858460141032426074523030381202783667999303527170508309659890085643372750793460685383123433706487824511961274700251019281979366233575141886314371929152329275693600249098536942053864226959105100952874605677496039027520812646925451920412013916840793983761850106227343511073164534368993727800187795433501921941062947064567520890482637292816972622403149685948438825822727593769437233692193093474795254580191715073927009040686393398260044623130622895756671169849419931845673331134873166908125495773655850566140578585084756567463183265920124671078831959537978429632582207566137000986959112918974330023845035229098804015794271345143541568352704562514925104127083342859286053390950293559236925596735617794558840824372921950892517006402699000851372872086252222799263696238033725625648587852259121992035347751761460862440027499646639005454980599946322808237937481207816317151511844817683368974340751428062077210921541008111569589990596878010647024933187580791836644324755031998267292257627715051658907991418353601527567045312003696759192400102946685878479829259652450444221219632454117089442313360289662302707788971633534273787701218837400627845907216956663743093098352600847007634828214631692324538939391383364912169343739734474349431840779191341734675753803530084688425019991500148684454593049228952568292191488101616511302505266542908411421866744539223637424993260797862223142894306911699897573233360388204623703208835053732360579873016816298865657950388188176961129995757467132729813112108985485311237798759022238285082942138013079905547554675810559958759311851056167902423053638824768165937842824727784780554177296548632990841820145440157313820488610184066711393368237323531877840631327262090463578058156337543401830061129554862095032581829758085342304458232465832207940025997364916608609794070272582375546531774040103244192638694460271064607746530923991193562667122610791701701422560170888143831198650606057503461501669655343234195958082469666065285477160198162837816233239137216750938126193196262894609536594901515240848786656777091384318568145126083981347935737425705570664576850369100008539055544150903937076613117880920133962793963991890466694293625473531023026725064486324765057534257195668651875496281859433995204976761004624348938634089550693598013482054406975187229593921163058019043784928840075749406702965793694360999655926573722012840288585643867206817459892089667534799529301122314839841629326183876383470738282143532801056245133222301638666483749532354686723499524849380683436166098371563571518698179460175090940177503756984603009039756334374505538596402945309165261462321356956062859880695916774977668968736861081329262979822585236219627185408892480955001339907281074561545936525279206819866443702029514300628612651194553016382959214172193747682732811810569222637319331212253784536912186945696926804209095237006100037670478671477674814377825098591797297824182316359895414013203203810196144053434894307722959793209530755734272679638465577607800118136153047057044464435154671818084562482187882948500613444501342130335318444168261015957247328383965096163456013443612494725417488694743662930587951541614509340937753980751540974316768251801273436840771066935035634403065706044079151513382468967272382328820871304361677214375219966346367750082829220125243010076334610165747538942314169224378188763730629117251448356252153804066655351861348806746143739492838906886663469013567038575372227803482046918866716034785942240050034982633714485057905070933159654155526377319377147328853090242741043451639338253101059737980527265424506621644524390460116649441497602480931778720989428724914655487785410899737323788752703912849100175608392240150907998228362221133007911569309584834300149350761340197719793587586381911764233607027852012571804834200643909597604865091670963507039447082728701751724406560478696693819467069209501306205038662047985661737102357716783578426576503228791590745872007189040628148558775073529011175078763706488031530376431025855672909115467143494464310968475609316137089226673332555821514656549307384776796888302746459771848910723329292084075923821095617004439676342834567457721034683329079851279502243153309281123302708204079150824674882785635624369201109788054136537620237659012427230668138235172498666598668008958037836824242057712247715853586160868766113527346208172263750830349637633558695964961993066289265017585395053097514302437822884753513464468452401705275884717325806190258017895383430194608177509365493576649315724516690259657765177744014222446200031572549738335322844397542281880648876648249773830706163686108521057034962757230611880484679185487258337608377326588854452938311496064782756968513050049329963713303690301512475301038349530961711357649169621107305934959999308540573740399820729947582512272294073247173730868244417323183274051223172697678665466844081703059845936574539433211517082721366595193956867066841498207611790549259312244586193670315729349218883084716662517303428113859870579871760705266009496330946763822589662224619773917391361228613966133612209495620746160745272127285235789014106137064310101250800984023087491672151560087982409341546114898358717803882802900801111786325480822852428230185220175140542159314903990246001507902718167128890301969143975890147249261542096458956235915541608039662679643481105172032288634593173527435175765127025460966750919975919694080733974024631247442041210275811709412562852413423734756173687679219801034676842060221386531851809331276586631429826886002996155585197286671296168754078940569305356957258004227534744945405662812149025293685486097408561154048155753798730261183094535696252054849848810489196826040685113912402725396103650233283820674879443064178537911694721653332720675043120352618988559842713452678206233436002885251465914022569743884062302476891537650155571224201422775892334810340190998344526434762520163062603648662917713002905033264293522991343656494891548032892198966947166681024129941380669035252863816239455780325582961226353065453341116337933532985670467489254871854357543256276558963081302752659885239516569196254358424069150629470883974756911461207609658160785976413943272072067981557235714938680532748262236872644189968449968477954058335510008497512347335073806167512112834171215358706115376349333613259309593931024221794155394953263610995497568656041388421253269038991506210487549631166113910661254595486321356959746964015442512565145167379781168384229934587433080645596001551146103521132628777488994784402730807416274117464451618132530677788354126481185885715991320903686202832607772752439540567950515318741259415601371321971706359646838671156403513974080056714735599882501641742274473904552201854947243973895975524655860281596443716874267464785776199636281389236389079221109735950233461311801560096080203071528952900764968555511681450625227711279710375407623213355729835063841536153624018187614884946157182752374599943659882274262929515884208047728225703658015603388627009796841001883973660793533759385152514227682844089018176518366648524133532559367856812256411133097708837781655435614945705138572955479797107647326162842045430791922176838765660926207337727838089319465450194290135313638900558787236743826321022858708567592527762413411409822219567542151400920767259233324682371033203932575254153248028664027426564760100616644182164652991635084117051319879966420634591818387514601376156532170268120870587455374255736443869180631393324896319638799104114832660665714538571402438290435636218215511619472100615359293547607279202595153678121439584780445489552458882246408212370373575317894356168222655841406968851868419206729177099733756292071838553244955839556328659869617071559499508036272073612365328300687500288939309700386662977764044330669757804393918089808864111381577140779442040589979542879055743474460902582295408255113141966054183866912998006280808261482181998252003440938556953671089803161647568321449979433244280738367681007399608262161342669316530459738878433058888612712161552467275969865493251063078986526371250135358332215339714731588210234035717028128907406377585053973537351233326982840849987690794134408923719563586434117483424243709083064502472436864451409278110868458420115455918045985759292689096250439203840573241969594286353376882005924036113037442431309359011672951670030917367129119553183679637196682633460510676502556257867111899874014903951051640750038653267378301018735814766226373881221606637414069602126208392265057381424941779881977837276757588796391820233447788635938533791960435063852101398860104045818128301298560320138181873699100878329859188747201146116975060340510582696783734232575861729820234128519133353296475405110648207084447107661717208393043830264632808332915338687607352088514516390465835447226642741944177213993680713243795996064929522939583910205493511562700808521609182751657942942730180024958144895444307759833111733672087329804250712949599641905216941362168952401211766368030203971199831383842623847897208904209342420834060635268590645902356682134475780337373419626782927718053713529326290752474345427183384559858785683491184692873065792771259649201401247006949118397932084869417782269875409530656561016422993060557791086612591632414661504304341026953471345250154508728344101990674503748203744975607858561595988106860560386985113143301643455390012993375985647731826491345539979746724777678383496173197769229131366830739676635106259507464764970041481467209425725467571556157030327139284436135900845306066717843937569665262089374923191667043580181441533903146625930186581127388906863572104197856518933545960997627064169688671244954764038849246178801464715703326321803992360553020923943913868360069958916471295782344049962502906758861007049402557464261174309016791669494874762068381837903222998878117003332871257366041884740877204909059699605849444467029177062686287618791287245183606502144090745191469547279486174660390300549878443935736689130580981170820000896003845810879875047872371114609839002490012655110926058804919375348234914567591931056899513246931614506789454320161746640471727701343466085419721524920988271528293684702607251130132124278324103005009286357846377061701422737991737706198662595172661765372667212987212915986716315324358313382437518535647108844250058702606852203386939735928213957747702053262082792762886590471370976026559906419993676520240919911647926458406821013432566340147888777447478305215029644223314444488404377155691821147126995628344755338138727452247835150464233838617737329651982890111979127810924612123302673071850686337405778729060944237238339135747458966650082610848775471735122136326671360181882184816195289092882304830471604378715522188504408104745776134546291285002275728309016331850092177620640151330578678358786385518342290465965636505558417605984316809873998454001207327053694527640203060334932070967030229629231384505754085184222548417347739288541656366861476043837739549004618807948595724186225057665697938132214543789398918215852752541516182889436969411287093040305444112894187285304472764014458314597815206968680220382327717007945826050178970175050052857574314361063756910416087846538066559942111400038861863118227304216011285354851406654608249555289626293663746779291239794919347758314518229430324159414425425326089425050709697346927410260716481989762789610852346186253145056973125407178383140110707479845652990134881538339253657004069512059802707532452744112687583140910125549721616143267481255152086153460974882953187283362261401099602002930184416029841870075569029475743981451696031903226974546321772825042627767917064239891623082905872502952552475313098090921399457844474333929461043091769271156986485432132722683026816493531888241096047354507847571429118300495828263266510076299118912779097586375756472518343284889429232436937547343593359292786973397129574247111365569670042763251404118723545557557281776256227628986439640103958981346549896337062727440944751912026798819727111389305655906793036938599141129832037137361716185297433999636002906125448059333878160696861479655097051379412126113500757784370056749271104809273529703712030943231464463787698629580886860093756920747358865525629409891202292213964977459844825757060087247623104540845982917567451670063739139143419565567079759759225384423149915004156335436465414870024750993533475266521446615636865076953604772762856370878083816473096665576513902862494802461126099790905817699864469761440405890248268293342600546185704334359341953790992045944443155969429274075299191216124926175248631634261362514718820024741101234847112649601625600970819892956969973410696923901366905647178910245332252234793234516041564901787851211015218999419778402334360957790673855167231657068741304559031357192873113686192093965954425700475684618052895930085092671817073699400529570818651527727994903265162623398155075567721803590431666619275955522308023147755626713680026192228283289714059442784288547634036026454260460052456059530583148754594543729869456242533298009040751463678065148956937300998362764349043951536813119600379497344477740363299060013525059107617730015865145328219568834533186365809921388230314549199638064972067566492379721999356549255208886517503656499015663361386281118771557360430380638871338383717719089605380151476721267570072541510721459648574759601293443992679242007471481903980281431317085425648064162110168473533938552589030049157807072405444020591875629153208921978025613445981387564961211022469115584522742217916268774385587263936477304607211017959132035407364891330387853976660524176942585504342288785453428434970632705564369112153982038779193409966202827019750225536431985191698677014299661733593272986011475348894696347862729524219806354694048982825451176382943350899839012239943562074985281377215365882593980013203127685091873790473360683400695721909836362316682349634926985395713838982472028187395488552890466461423175764400963400724987965481335078505717432323237336961626325103656911734280761541117420200632545558128329233367757534544937604247234529061022742370905304624322931909892611913511957294467916443510577655030202469953551170279704612856056940800059138722849680933975327863006876431708288061110252477179793146735176024475279168191064973716129901609307001337612517145633759819878774872969363851470247517604757938714546088383077971231002665043890322071273268090183915947591379759614228678659301838905341118535436434970225020830284795372531201047824463198273842951677913072528518930217571779209736350013212968036742972206099946576422872826352378336542680879518582892866797551628410727523468522194696672807205555450555662740452469260508594872747935771791658728361284944415459914773618219377783222190552162107293734127236564639732334909477308796555910149948686787039394516614398483582028775226532108161800120539272647591451234799494104326674133571760961640203683150961700315638426360533356381504564116571331594439407240102852879973942659382751176217482109415213522916793092644983182563505829040277118503018355962090919361778432814588442164744284452454189659840737485817786061240915781260887011770779284360257728605741858904933102119421377643641508352300380185322984534425615332863242401059161536823664153268242381531620388710254024339290636985229564837625778070827315873352313355403120382158889071246502718195302510676357973283125898321747051610342461126316959168067710349585731566582774144642402736041410852037379821930446405785640672872779207009832283533996787222039361737461905358643538981920399584516477111365616555082840355977528272962463161463593455624461318560587461026812822607835828448574363151167101217842883074631420605005586535860270006195136048173267553748549717577307378746711569964784652254410788733886740557389129726749037938006389651898589868152833354063827160130188739811685612621234818742356587336805011208472892689090863663655648487238241960538065924923845086915431158385234951274871736835585596473605822484191806184221991006480215068360496691858612533866077366541563571697745940988371720526591387176936088042530123357280568498062282678374969904312531680581653961254731464016274706587847738473343324832096019954236951577208477296972518211023380331140222391292548879517762385336995296177029792534278385948105691909791777661592301388071833875910548776186887930700495708960184611993803100484553163682213653047750929398622278551749827319363354116069020478527220242690306063052372707586580279442058543482205680759507495969924695307794491322489347828180583488117346307323084791601681962170685451855741536719785338326767405435112647646983062095038306463790689147921226612131213736134834030116545102007049677219662974319948330877272886658254480344568765831358350065118982197972390488284731180028416110986401237888898812178293363153693937543341251171657463802949174009584403140291222098945868557733649631498700424605984367062153623909886776875885320738153742782348288967690395253739462307992312309352088959824759140779274397979562424184899656872268284679214422262825140220951839453390456360632725226147668471047096866445955381489293400017039418047427404973120217885845349055169093353143696262781316097256324314704604451401111010959713850467503314801058885519770931094100776381990772572193140841364319742681487187697237935198973323657640731697903229738212920232203244200131842805855266568114683776570431830840193090151503214773113559387890142578937534316848533307923284353819311532158414691235100837506472125467110732175747826693074144708180958434881190892159563056762720805385354588336299967097548379489725308041766432049835711428092016112978228611686358404477076424447242016045098567802090541915602251027723736023012987226932367764965214143414808096194904359045303362370695342271501975350427541772814207239789238349190951648597108652933924123715936497102825958629041368059008145742529733563091918832634984101549016230089571971279960858693639366871740936809544557771621550884493566506627874984026291081427038476238947632096697832685060433113315809777419730931267524466280447535926419427648762398224880423944404105058223733230271900544093177530453324484418584186809544593678917651030432215921259576173177994259171513231493778394011208887516010548262888638499306450140078578254351399161261204773524054001612136374844548825992772164480254854760827202462313220142345724189391026063310360904931134749668431086767051455883839840110790188348879035424584713881399678946910205371122491738720657718083062483242676638279968854758787112952006657784971759303761490756412585662255893734693982509076913836886447699490938760588823577078241281732256683665706086969292207509724433112893637338435345984800970138076052645302071019272991073597344199435643906323925169253695049451426024233435259159644007200162630435799945592911059409683709280834310749829302271230323902939140988120188590861636440782437905239369448345867266904819196153981937035850159615158647538256911986745470090214650937345730387891804839916526271306374591737668565654501510578181601540968298861699094037782201113148537072268058336733613387421359205668890737780060169136599844392757939976796345803719774171064567207176837417856728011691622677717626883830528873173079980306631209236740623389598106187101742798435555611133932411125485406629832899915167569935844720489367098275835314456434502280931945513726384351029900607590913887533380368215553843912861230862608147565201678522235572236036438803978555804539961616780756353371413883128863885146460707933486549535854049139977379988117653936697759791034215205668391191309241246397750736871173305494383062088350761658186135901057719881885245939523503743291561235722547820151402478012133768793380525487555593518181147839900234473708806372921332848677688926483043325990660125792018175106586192458364258633431554189742305644130143519081290758873770021387721393696727516742627856238302174853554521449687834596411849844541575019090697489778752034408543025436848021494362849011922249550989705335484445592745534245340575311254366741704944827833102932883085034640537747593496382284575521716421939937331939828729232656769623841977744950355347950193646446247572237703581648361592525800966711686227735284767580634710766227015457009149942719935672577628898727108263524955815152619102472980162227077605211814202490745057578944021669587482202108067091029076224112126961933210211960160395800964648296101693131493577155907731223592546474300080193434392652799390127249497017486752628547485329874076873541647665716831365299659326914500728607526616649923369437928774261953304098646893637987333306847080311239985537944747445174855984941812141475570842799040918609383522159316109316099990244576319635151322729669918014424420905313592492212990079883655526197559999953271896822824841301056252649582048465146956803387643671195059410786978093898251569236068850215719697335575975367502722462899337708364736958194175143446721520232880914691302919723000355014646021099019664520353673317507706256338841147843246790375234477047077666575193485948286173692150583584662233272278234665395838218610276158498356664557347238439299012045894225107220330512111717745121480710680060807860636144023499152574514976605518138912606836525189850817564456010796136035256128751167855289704409217309226342278509290499473512707052124017967711173069914085822809104261287245331315538832623768118121938989571128654977766365139205507417258764523926490023929913497800458376166946017752003307816450768397341804979422291155598743836144107488354899476408624280184206007584906671027185735138952779889702513574447805572134462374231626404824799111061565934882354721380816926800374141714046616884368698272444534066520419626079635076358035742591714720125677773176094936594797645659362176692479446427782588090937224463813917634883187465548008710327031853609340817806049496680508239038464400904590804620253525946878479445165767966885659291687382259031005947293545247540721462414128400602729193007615440741367235175483373872710828327000066292768925597567650784539513566401936888100729830293916673697384546544096637421262232149293948298942526812206268381894756328538510583263997652602723084698390118367994582442838085931985382654629851102726670022336555995080881053869654223837877297844443015976793991153942838133224483816789587975593333485950347447002023839453920559731602874497488019516383730433830033656897468758231483135464335512119989787027864639830124437264421248042116744284591860277108877331597429810036883912781424292474978115522403904406641699134537229721465029780114371001470302144901410820925478857126061138154371367110906228073394589134686354678976066737015496226835060238153757189219103734179673341822248687013941056229064037056673584107404424062403587716014310546855048497240156356401052529182501249686282457074934585888818873104549507139727321115589809787209389261595069964993476374514555409733659146003376099852536576237955510882544091595320156610426242176724893517002471842683641651764889494405888307190924232235156825379405928074643226423731601911991064900047513891614111559980235983795763949152122751884473280080212604363229910414868981188814194154521896118930021691220545022349538578535892031354527094109706345597274807153623984325651359145193333110481320024935445555605087223820444009671373448656041430835735630363021038968641046502394721458493258586243588307691779795215658787984070227695051298904558516537105037605253748603466022883802760129261892557214354557721039841252051700047432262876041566008764527560571425382937740944042756376844709431406979588435804299388355062679088146138153423304190033437150486593726103675159937959497176282645286751674168437523348903284074852310241407194099586932183882548730142105687019406424065329497598258147462105655161856113424799492347327940443018807259611426146338312928690070982676319564023167119124615431318662921079158350087244898771730623974667723453817108245387734568733072114454186992999106785846849457425198396715021058432277005480518217736760206275987340541855473930065721172901785005129205105781650599018236475441333905474665373124209297379605594540511415112346792137508677208961338947991904561907653384068549176749529554173133382271959295981845597973886434234230815969322681557493501778838152250348005892392383018685388226774496975618840391664017252186470434477411757078566293035240221970507998711838652785505471880775494619860424059473059821910634961034792796912694192202943380773053240122858277108089542974509582189828129451193765489276415693727205594975981974915438182309704632539228185391183782622238874986058273622269455579820743826824689167165110849346902419708355855991813773933072957991823777745861003025100044185990656293616748337762786797445570310259029719880226114907512236399078852748832869856678886803137197458398145053350958276822721615215835204320082241520084572559486568709374299368145599305639960509465736469903311238367271246618296092893282858877797269503644433032308015830094713624685181357647121964713861920557764047274407845299289953501077667991239894288863043236160897256517934787912500441897555299944184035660500977552288916414459714875336608830959630683060549311810669881688986182360596516490944639634018858270455148286040852828003439082344477948747320633015203636346697902763778411529777714852606989329279816195624948764938444008416698984083601699264406857670141258730808074556633382352723752382493976305200396823186168589127978954311870275205917314884171890087306918315101837920260680708907306039902686199005007229828704339782937178771105527563347909979050458754549954711785470098335523818090457717565114060823118282194903433088802953891885601740581604090520106182194767440895664752430781068316023363073981068564167361764763986660538527125372159427800672081982309053342778019004980837620462083006806277998250571257374884250514355464013817750995566008869887073595619076448423045809430614925560218161369926905702693891508829298742881375613279795251369858365815719760333741477983125842705763386742964097041615033017496706038055944548076728042407052058031601266247440367854990661698295717627924940022339854781671858468301306001955551208562113101330811558476265544627660105189293230862488271014550472815296845861290955515288645754025355724072847494388592400978420520041001533677888875499340013920252670161993408666853237381083331160851233293391942738425853244229691246532479596504287442304264438351785836671967080803273227954124438807202531003140323200662937169032162128036839389376382319785882968280628130607391473597538512460717499614496869471815180329771708136353649855681804691466180099712912381784211935890425154962285880274825185061479938324650813014618777659030233300709330535405887798427833978800669125984039821194404940460658516939068443537722384876021659686883911795923341487616445267208858497884544152489061254120774217358224198811624268294417641170129143694217111329917567047780904570997071891138479933417463495601338719084978363754282075481098277988093902213940202237334756336602936415428187758733117778577505133835922419144877489855287357256776261636781866221089653338495676804972377482503173577033769922411070145518398575077837108767284829214398830995812896467522309743092683788151821653793263719639676110892594907876856463915226683199280076833566705946354731723221815644062763834770963549593916571176481504947751528586868211689714425538012596636845708866830238983190850014287361911708244378837397154151904382263346372363758006179958988948886318686588680105693420031752098888716156043435569760403967932435288437540023801242810300925093454612561752434726391444672329630145216099904001394256782134547625843706054275980628155846102855257279263635868714466340875034072762638647214164780659647687980827726988339852507954274569314845614369255696596612404603380179562045046223935917592162710836295583160794366460442902520833028870042606586875275245144610509449234659052341015879801010108311772072936913274177112263147727932328005927232791754773509660920151082742269933907458787978850215662628795205746778639634544325497657715535151496857791187986764617126786479270158646739378140086171146992035683242389643082837066731377809522469074605879800632853650215577136340282714037213685530654576037010059551437242382286200980930138387790603512373156490421678925090248683929151330950635686930415568540885469549633036927879398556251117884833617318886905048761119997989542154278929141137034716014490766031215645040319331220461061879592621104059327757181728941324391378084781793843828384215951306700766502039135484231362461792094415418180980366786101886537600492982602378340807349334596049277280471065096425301356465790375511194384313063259456143538470170964388428104526223533400943378612403362801380612209676652158158788598693991955993242073727167200050475065961151179371894442555648812486464078818576191989144354347871842220943205681367105950156395974850542914570789755521693339725085705126606241344644385392921765628085457339593504549949070746768706332878279375580972154915627860004477629145890924931048686763641120791898828603029054662408388887928936222507801150645474496688294269351149773049946632911826783554499165884806350584208211560893783464109277255267215557530351004696689183884384841197510976602531722413554511622224787124283880821775068331811163203583299334044885831268672225795899248362574928956304966593330171963183595236361616619361321656985023476499055550662529075482302009308035201902390760350813652292658887638591253195139672601431833454925667294133288080511645058030923453525508593791415955642327969652457026779959582274462938151667178496694451260340007962879585032413689396040996324466496960747360437056269176785958338787470530658501105640947970853829809341397900438714594600598151107786370493284314636776612450223979442909582339229638701021616876027054520786689578068734558448428253729179036794332011977617780249429750841705399947724482175788433213858761566310353552003945092795781724475077124796415730776301064638159580375850256730799483371198935692331779021919034044183962798043185971202094573813835815516838105274347937724151364285304691820148219968616667149888687107363907109468316041612364860332808218649509983871144238445620677869735909710487363708594358446639412771336013568565792441623148384631354338829263386707903323657125921556887495251746207980355402638673337721921913427297259632922646567567415830263267321672118988579194838456218067836225356252169550952456431425295461389122047436641187767102798401338875520578909290762879350767801404065378079306019399759292409724825005635942438795072484165686419572908905048573477856323613692826471950641421079098979487622948452715537624949524226484404337945964657980542431236465625350363766713989993598864274498390666094005508678303136944894769281886466823379168690888484726898991742647498004357105927182059317612979061941311833573127734548533772656267222071156736855535885404142525461626055561468324359527514701101850910032476772028300681419179943294736272736568988566338431104736764014156956438045565484939628964178236511303366178931097705914990942275131034138335002077660368880181546110643674419870801305143927185244414249969308859937504994573757393247129814110740970025699194043776030538404254719402404465483149282917860099931788825652839520020548629564146892127576793311361972531972293247491051196818276458895918844147533325599045547458060168347780011910040335421058759216236147024350746046538911784553595169556516955352264758359203417753561580495799083733450670835878829972708281732522163465790690014447553565190951165751262502451931955459192526907427888255836165628547515723253918708359561058201629923482585736018418088434767443936475489960802770151970724705774273682866791296801498433657941177140755471637865529725007684769054369177635381753912762075995451954893107584959018170464067934518742562073146899589654971677848114220763698173520408144253730504361792898036672529054951140490543301690900624638370166652016636145140635387231263128324588452143093927850714816647716513026490814134022872683829111250073186937815196953469410702734067841548526018236286264909692608625828417853576386180757657255318976743468295383500186945617314197719476895793196246951519976063817865921600065310956866516995190828129285388863758051995547604234692018905949374287439258142306085942579728344950039434359042860931409934261521789118096576831388548287498244489256140570586012904066029553665128313441610736557460066727730269506279207113886399216350509374964292332883038523907039786056828946303763886690964038411040754742593436462575386409673508411798066862501801100670149040089520887783451953546171939333103875440710778836574695132934275800689884214197540709348231809140198513217582995965737254452624384664641518703169125970743754011366796873230682018652006559504913055633456623975400848827042780958149323173401084394418592361219826961641025457441402864628963053223261193212956217528809521798091696804204946952602805834962972622814888112443354641147375779895238231300392458185704844256932939071923635288140776714886103110698847911259751119609576620588441108737242221989643823140879028089100297651721006299738438135485965001512924974823257242369486856203927711446112710378227716780151752744597775270863326376700395827087760615523585884487353551018711400564699728152861338409789486919382295787007717145898935021697410969109614491891805738292623934772820462542836409347205362670843439896351420555756719223355977753893241283667681731508993420728651145286660047937551986390659555571856253703529165788020500397743676649329417891531794095467691227504244066769802541272386572139608770478085981894716170619193286069159909244154139512351815738254620944747276694004148964730052380471974889703091210815653482357960316020353252314652748989094324975809127033963122846160131215838832260262758988030799389265034081636759861428109228949127386983657370094586151293200612405239801607340045478689272459739593237870759194093562283426627473944944554461486800244049325067272736728432205841280689319795577083775352472207281461395578592883933459787251926916853271574519265317382355793383560161920362309878580908492402133993621097969313722749353236569657690991543724004581192545329991297495241656103025216798608387757074217822189268609463419987964256749013921077246863338545420351413701484355598673913395880960851293651060037813547234527237679057368489980934641443736605323210804264174118010775300170020167828481435113325363579889995847943669352802501956631307683277870122626433979699926861506458565962269453005200172862787253852697293244014817747149302442287353699162969596384314848502785183081718513084421232167729659258118472624312199722139941787205202124607057249755688134711651653682054069868607865242471825698315968438218840560522211980400886487275456920673615636290088549077473995012251469961255521216758177534647185174866419349677119825787319021497787187861503372580114742791286310915854882075493558895386747064441720580551808948980508722977648278739421599871609906583270057703205848761455245656377670015469460719686518264053271776392045786536026401982712794730622965825030406939509341649803573976686111713786713914596716914833396576790053737528027884391711746497250709139029288729334667486739061118917229579237693428032373688779142652580495040586854031434848217902528759177009677693700502779258510533128844108166019833715834059974569272236034127908849020774684546864985573385937402144356758791642756471734537142934008405126769581088081654042643233356225167106581007900098748527419342222281726549477716986990002217824274982516007767244440701057358713264864129851683801299248660990460121852808899804979667450920767988661137480881194406056069364918579448862571714916325611485995358488956894551380188815247131435881351709207215396784139512863210125622493302303779840462867840159303070428294382156024090915356232947644172349860062019702284117340160925133364367642082115637868506529023348046560320219240698407926658541524850530719627233293653076798300706435911993663832581179660536832373893066542814011822425056869791317676460137558301064607986993046114570182830111027769908135942956888182881960859197400718675433580793658313756607747446059348485979966387618178460829702491367930138424632336523215557583158861893011466469761955460199809118095142054385644647059112229711966309879312741993218050101601123608957486012246072461951102572226955759768775227715542138852226346042972044934564369660204354639173957747306236036969655058284180604853887744786567641970430748532117492776186065716607680167093257162724461091650442755230418934689863022902409027930348323407544009663645114254899901336959751457825529838245557738970836625577815621192555369453379530171479069197645938970321899623657612161973768143367875115683374335365534112120072120537203293061942099734715274361250961010123877494494039565178647202427986898148348197084642114551440810285221593614791855267647879677779584964271441382470403375872878887401925501049633929530167860276176941347832536073876968257997285442500893400989840643959880858281034652625710444782656512051917306571679026382850754181757258546263844165089206508361496917509050186310232067389199361008610903813702030480927238855813331591532232699563486118429562354436149273276916675219064048129470847285262941957864722956679045230985888524408924061659060172872229631549652281958662593589687667936510261600726857743532734784746100905833136698682197330826682551666075239049707554767345148676389134508735995122310991758360509501710074339181288049755358778558407929986183503240141873416667122905643490218585629083180354754691009061099820794151956154405931012936926939834774728660552694222050003183869620848076314930021912355904819552249141268633108366882276639400775493567299554686699512967535206294950814210061425248912964422928044990486072031285214399822791192492505924542373434670669632493360132298074620940644187602342338101093343670026417872902584687513938280568798701923226651139975313499445544898835452925806349240101901336836066938611133369753996025548163628460334018181361936944642364883065474796713766673290912080016411982611357113105747060430826779676493518280686843049858541406340511707758427653740666917203275999481673725349986886898565318924051500650784311142262226732685880434400798672567750297932361353712933233468140905564135202889590675767600517127882101058569837602956723016984808331910110757923574711867269787886807314829996299443572573756668062461800141702791365864794859765891163855090875974172680956779655547737129188951873075867792414332914882236273826514644110279320050101457560895029790586269729637200338035649835271896840344523559617200118323750336517285871452211425560834258832443462237549686790001919891730530995294474772363714379799612806377749940561143488499241245329575525857824771904885842714983880585771006313473211055523674949002095912011846553217051596798434440424403080224113126735333312905525892323753916407200558260558641678153798466461314809248785854160803074297008430194203010912024873190517560245397543797304928794525580886952999226862850366757909410448185786809371350067845263027053053535517283618393054021317351695627239349781658753279220116190030824630486967016693463879399799496893914070883947470793449885278344415469824608210898984551160416396928256939878131347375435881998365124901940742247727032004167040233847894913630026134006071108333012686430227027259265626462415307754507524533066571528867859266744202164756377323892941336962805801022241421468540069116727203062781127420497834325609712479718440006520942294692113936463917595725393420964825210066891867485029020326706252054807261401454928303109535770130447091621304432578936057909404102543181363840596720829916616410942970992422570089263817843043506082036828243497987584642786483113886105743957989901536564600291296181938555103991942086859446164562309055891436107735311110121766616048314415042162638136369085680192068164393033471839099366059519854177225277326201233089321502557746807341035368997295057607661927028884428987362401934870370132638959529903035061433334521626300271528313969577723223144427071189496023509738674823769775205709094057898054432097288052923368316619414169166953659432692671868953435986144117290754344962089316468913594633049913667269636473592234102290385455900936919195599157535573233621183664142903056667329581656906551180640325843579615210885192086118599295880689362056728244109498158948251373904230847467227708950236749320027788714190509221095841133536635796133307689352874715350684600774523044264237239447606294020822880941652629194495476214025894896787068327600887940818010493643016566478544985461820143065289929720670002812047151534772555959435246098307808537444367006311409021868832969938346186605716001647529753957527139319132450745155292781316210035499116206691944727809620216388735630818618152274189867364857606846814046210968140859985698375791967088261189652220873394069800173757260045242650290668783471431479657646700877064478542666886417820003033766985789346321813934144144798429227615616120035986992079611381721293624049295334196231948136636962870150555999683333072801349508291272667782205512962090111347983765394185736192432795680240051547332965005166510797435655245536098016563123455824742216852293583469299719096179557296152795837882572874712358755055999643686890532802333163943153175537531057135093594674391680998141529406167865175275520188179742448355134278161537337002967339516108918129645094772441954574619360703607164468988284961242581328101063596966129101019873668434509725782954325242744682936966012978459527497176159402525434661894229493072267042353056124623675463874957478100636580984126030112489079053765167525840011564439570747916978662350257605414172000076342369463182787506637371267465054996018740540104895248941708501026278850307992902099298205860080453064124385300743910042527658272333546569229990891276283028429488931982888369845059923831742094009772481893514833694198574079824093697173596807903502049415969822173921844998335121149042448653423759081658850642144622971311676012022561572562288058677037130300258448751009945894034159905608976640119066364573321729663361583892706140391589100286457433789768109007374964247960181805361384528598833011421529595131157177728373155052496109832158912665916949944722288952836770757375159896084993832402733478682588139351494676221093960611274371838991280493287423066175695829031740363730571027547967298956406006066472537893816185568957192668248244857514953769109210932665169361676579239013415704804684880206991372893235456974521097226113446839007672370316806306417935570739186012974609206916317233723958301348762747470123580552203801101823718675786232868799939011103612804925640960588529332018584784132756158810393416727221244754955615591587830136281986239883464001078770738423428147026340247522194779848127797296995988793053231175023316018128934519338639745102239313006196495844494217696643943935403947010740887777303393816932487289447375850090627640435117295427776426308844698206358799491999211411782790958282995468507911711711073683065531799805431838067968654702206032619999892306252152092029375110092554341269317865734023658089721080690578864753936211310529664869498535415697673057427204805893378555203447000237168884943232452709374867496320533225423893817931003105856358658544586872476904057787387285318789550576017561646652854751954448634682168415538633839092425963993885701445014864492891221294300718520975575192021674450144173673839432913327723309428666131438542707719129596795046682535872526073517187132129343151863492468567355478606873142157043776755472751652202403101743947487167427342828135551746947104306865524715673114450783556587378295373233417865063674562869784034264190545767762718883512942491663847868781448216975938681112168849116586656918310822319775776345570943023495572749821621610855601858076345991010962604191391797691388266857265812010224075649424662930404359844150618940195645350751594978396886879211469453048959687637612153456810060920826575294448837724771524842423317899800591203686618516628349646126431937194078554137269246815004797173820967791440426434820387597972751445481515338288954532780002172661856724505442197912473093711392698250317765225671264172677029234643245217318525995532365094466894916759833984097689298080506648555481669427391474233443294743758404652826996478733886784702802250643757434960145069380595733825465559373634874091848588913875797094542989145437683169788311192010210729930348749591472452104070358051859078298560963921989910860384902855612595029645404477789262592712007228085752581771113126434471449580623773199229750942958748912092729461605530625660347326762171012677847109998727937492520755356235704366548345978708256168266152135479733909560709966890138048554438390390936079690635013823723573342271164723822076513329976901081039401762030135050997961792088894047949546738198066602413107564741521796444108603246286202563412859336214983648177988992973708205265229147499059841598598158382843424407686404976669177245097809438816017981040323142796252352988023176034243678147908914008907857729638813413172675632986882540649041584378182841790660188202908283590073265876293343603747634596963446560943578026317433328082306426580420123471036532981944035186838347829563457371479788807675997172670521371928765517244540935746510720648329986447902102820418836809341812643676147620876814645212155217538865636363028707277206079722057300197583025470891773756797317952877885489754999352405639894496579346048522532368274155208509057499021711367390970185217426354909839814500788683348112390528381023957604117587704348664454625342979993066217852328605898531436973467431960166270552296517162888420429976713743869303489807136616872219582610121848447983663396859269877234252384744197975982776287627285549818025735455132265821606580393402368540745434139637165089540040634021003864629108358049273328723557094657138624192639851637322341171988440580453942104143113658955919192385486364962755708073728454928144611133876011703124694691425329920910873635640709628850134407268348314138225658873179430617882348818201570698358356722749900447024893124004225585094631342512628270314983827408719994814733521993454454821575368093835416663606005507611238832289095337283252897771309822213110332072647434395627014641270258165558809420051210770255186632132530894478819130219339486484734227699157203598508532965809922603231089614752144564460882831448753790374320634600867442538941591223725383871557561359389468183785647202117851781975430752362542136168247049605268495429147590926116739451264624531540230526098788851186227579707515590989358435805704766369427183209062635946895148560075328455966569602811042378350592984288264182604844237496432295756087630086416581612507019008183265970872298114323831212588762749163441973221765582335412171173013114149383733996288297973576295561646706884821946098255429368538572681667444501917306520470880495589867404881436422492364782333611149072627092271409280148895585147367714531150876132132242616070010786795504029122762931535893207481767876977758070236220033749841108676425953229934153895390769488145179821390389648751790254995479260560167692993978295387278094409203890746102799486944746476153744385564751113054743269991243509460282455330060293217153370969368273658326530134544531366413740629631004550955132451237021621484410426855388924441192840201141510321004222404929500487717349789060984731883558722032712350420372301319276096974549917819185780747653056058497559709533186707288233129933932911740292043207422254073809418157831182128398860643373413971737751760022969756628639144806611040615370335506791099507439166059290727502601731983528044950791192482574321732133421406382584916625900364611911284886234699650583239903742830382594294406569957877652812345226106814296740340791192925584397070211423104317031548046184622189422804473031764476187364290666036010014057884390038957429244276702094068072815339801919352330457034856856368527636421348515357388832185814984534696210709256830924940220838569383399584349268736550742271831270739555630291312613720120903544433602042184223467524558657450636215576465360641268134354169925864603912717785300206976000441998943276408111775821110201882935360390679778145384414680769395926048465385001846008014127796349231102891372791794750870034451157936343403438163411799849466034134244029110243621494673115491531882135933586102506137519137402500497848248556816973627469133361550169811352549639455371468852136234820535158730383317502794964802374487775153539065597065194824780464109666162039501299911766726341953450279224679928710853303662137294370737992181433653880170189428591986613207244066837078277596569284723248113680833637067962179449383947041925427347467895947010173887262262885753457952257755503983120039843139230168543616248375494780657934878280445873843960762016216255622686322747492516989811129518611266096983195284756134997826910191130570504278041138337362567955083673465848768872657787144252057472069131238719207809459279420823094139180616202545845116099147445014261037608681087761090225293795058804711574465448022942065905898760251779216828191434115731946657413178063828839367054128031418914635399847626549560472380424590574825537348174167818195042634687131581468458806265059530726990084485931139736661977474409276564189277121664598218078023524276792198059601254149497777676654470476414468023746816550619162688372860060238435185694612138170591713039812177593941673594216597714008502032512590311843412699967838189344941055648466874999226588088405646437425468449565994990886225081789243394849567442038210526740411873828639257686061476083291218860896213298955457567383736948536211292751625091502550110772502777863094240466077126800401372418964087714356081974325277074965070546897416467161182399749408464742699015643460144079350200813879253643737301428150776743578031609739246256070571894972952865287870590939429517740911496596150251039862158365362948974593197946930011388789259550297821245126720471016766566927160789146249405077598765881996548073065843749048256796758815201682828819085259038379040073010186397995877843314392817308892753195161679382510701279197715071010129929206130883238582418863200531239223536551049209157192482740817734439757840274065770703315223306252437286691569676176948771081908475198654725792957282245594093932711839364816801604590784679976255249368531582267728159583817493405780586666550242686409258202986942074925351966105004652210173105219881800635999987553536275105644272083015448211071397874067697054242246145244703579903993871441869556576588085146552551999031672657470557712858205857174195883256630247084348703169044567970124610994859580213008380951389865374999829584494766597769260245417223193119799721246769946184294468525495116940619183000961613289354420558921885413367439238517007698625390617285080928689060561400442540020012104190895741932816137579898489203638276820633295082792465686843260695400834253819841391366259312237727234421805718026421517188160553066351289090390416201311272758920891257879462149132667801771817639613909089339241855494132573491319397820996125338014289434193989065041234956571145885588714716371788386119282693463395115048578023567686339221014479357163428175324235973004041895823038253916662208386721506354323363397255431530877197126185612348645697599311377766984970654910011775679781737542775036716802505397555092631749906537122757064664967341896092693105262840419971101432411131917682893058712857506446857361281007896728827431003298822951265111820071016841577145494607156641462971977683920631237462134908669816790794676573474675216111504404209687985886935305101351719101113169464776133377765918655901430123528996026902124008263179402308464213464215395020377316258244442354765568240615123624465485720733003064990521074397924551959595801835820565755088931594275256949281156729786116762513584542154082329860557046141091045623115501403087930993769004720374874733800346268405365943956673237329874023387807463958841363709115385296540650699148361771654212922618637039981151505337099434201057394616727290782452215786899943393127626729536202718585011446029077054593190909961210593474916094629288986622962677225435796966063853576982881320249775465961002780901722625767850896398340146978063565794125096342096437008670062786541045058877035964718326737352669976432682534827961293307799894210586287336738512685596366184466489547645783872899931929335615193356501517035225370449054852038479080375349509158515559474429496634772966367405829807061399866973710951416237589165154543462468260600717663687320762937524323298176435825499895648939609582578576320820079024611199166894215538518185534299677760531963342284530558050925183865369727172044972184610022001932570467768781120945927166799571451340670547201769017495912070047892802657108843270136572808596701388251774046045290591608265244575627607892083846019894255290244675395413659312035222822923243300059585451735571743818414183002333052239703211882815739119317936955301802366589150054998669827883023508428599354311423259422930041194385536231476854102489228057725787597865025635468194918988694840248113187289489040533882758554145490240641108866317456493522921410686282515724555377519837874986124627291354315199705389251404500198862397437173842925986366579046660693462664208685089489521862367963120500183339777839867234689389580088176172575040918263610700867016546590827173330208465007541933041737074007939155942955735221225115131155773436793478675300514798065268004372368155446468165667027390151796540620911262355475451860085927442877888401503837660637941316475473420043297708478612488033546624728012007142428418278980609863818171140511869483567150857893587596338566476226591014723542430841535443095114082662296660311792698679930978345042847166587578662472527658054285776681204230862849794093732684869640382248805669054473834766101328521899058313782788893372457948486757245637291428018918000884363438265898272289686463767750785227712130191319223972670429695714297882687187558195594628635835559873240402354882259485915714437618603848240919491118938206460853502405012771958835496359051911295123655366237751048392280777823341996397074070380666651733208909978913003628085343051819925493504154250012018757295802528693924650264711052192740934465997890106636088289080601994408372683186634165397035575695259696306211523906948885696981970167010310196855365185096753289995847604813788488577504866628343984313021378347989603387516720156191012333822743966474819870249625511507425586307969798468120022414982138892938456921868552302359593064920687238597828456349570475482625921878671753032592250835842840605253430096971094149157283646413345914169858940728929182892674940094661154605566825475804643048994296833588353676594301992215910861930106393161354586289012422216251345715886538324777440180205025310367226836367907458770801853744699189503895580751569852956546814377681083288661551531561799700930246468264804665401980348492231643566226028849375729057095973140829314596296946079833563158361938558206006292471568808625477489627373344509696540469750330878835019007020561939699741996756449242112500387614227530840533491357983138923050439073143672883906090100590696251273413887611324740644254232399249633199985045351407493353141248871484307080637905041410102585179815204306750135548088738152479895943142600555071253627804667816024557738908083467165423649355321840342650577718137388984736742396294237399297954907941678219651790023253184234924962353722479699248879961927843515414947987804543430434028050525556053245613363521942839356727599362532994699955803466025036532954112991883650257406946983719702891762131912143096565357112504826230166474644263805789699431237605453941324802921432700604091701445151812143204557620547492064184858201935379519708663847788478975422804208864771097842409155815084257966171894381474283555233442380557146465929758741451937965451088476093699587317974870735157181497754138352085150558857402268463700695449278478724907548677166810176488464120020914855083919085236511856681945414720276293292836270883276236063954460591835559593742307300269469142827170718962930762558533001065121040319057585612254659238948138813167632324470297510954477387930526432605042482064783930187843386607262259705823583764573723205748904042078242036910666007256505887602989937179724444809833641681497266783138040863211256686031801843534997467781784857778838006542292996713324983916075567554728022396809644066068957573412542418138921495123223777051238733069280495191061108588808320663588677153592057173417611115750104281019549945106479760306014116265562950482344906425086420655951466338757200700272926952384862304484831593247094531831411141591941786075798364033507449834772545340403964119089984535109488400654650883397753455852727948150609394915252081921005543128143310602780390527518147325315638522857182367039383697340300297894161934110174344849230591602509643287135807115869421109102043750430982434562279027004777273370930261368363417908022173086763052617826061266589939316438033971986656898740046172136850783147999007358414858923983241379202232395668801778354763318258399414360714185644959677944887819876073475073411610320560731996992694831423243810546732797476668945437557179351831045536604156840413857933285143064173976834680922636582139856364143137815606295237110108314514516997275101617957154820527972880323891785392643837620273282621423517392811628056961411756508086757479841464337773855601994671351644284196787352609891761388370930731551036238246215083666970728993731826481943270774356605422678082017116182739373749039402013764164070666001979234707866567919060075714119272378270309012819620882768824908723714713497917388275784137664658318282717929179355031392409787842435722049717370692932716071097440212969156235772049841981505926824286591501958510644201026946017189358194486260590508768598412363604464060463197172085914566957000637437105571561322226269256999214583168034587449128260615945847169707877273489406916307301549776065726124053515779941749891987710682362290521118898684531563828243873982962542439873221439431839948909770161965701456450001305016645666496584927424794972797650408405895101255967355331402483875332830312254708949386249509386022318970628959322211807373238687773269992421043380551077198849437369085124310358987126075281870103929166380016705314074349332277029378093309871828326463740428619213051174508975094184962465238951903493547692075067420514618648224479926659738498534667680096771209175783248206552780329013353222883820000578084205721505121205519091693864084544559706779291926205377041112546342189335782407224402073717555096176968231577723563003012272809109160370473472712834355984638499106875810369084215097114915860318302976864605811982391538912883032954008690406550852526245147120454336889349063097255921658234347666849175470422454193945829987770552067862820458145625032143374256728721240457553815141824639282453092878802052440298502705955757301784619912608811062989750409396604724237353161752732038920326796855512027501316581057394058848019977467449209614207386103638444562375448022654201311034127970609408729973554418351983255770071606074675378758639082861338123136503228496946431694319212422295316023019823187765638204651089965426554736940219724447045915141142583445635782017749408555901239084701352446248899025969744745158197629452500995758905507548797619336748827153910821496467456896809855166939137772671458199082788893815711864115991371653644953456529925011114590149098856724804536926236333808779727227108780627289897300214271468366830137854274663064683881525257903177762644967200718262413056589995403514899654594285425722044932749205731720129992701429680016637220354347951343207516700403123202251157487618702244354796605054470247490724925633213143010344528536325537376055500032379991252477801581620829080422983223108844339578128396733476190677492787138985458205349014810486541093068614968360214064485560902138831327460858526916377299600360533748160631951259048857191050384502686077120000598139800493904741046502682672848809117744852846017383994712835397751560930845865492626153025281496156759483204744327741599022600211260409479894885665288295319112492623261463575677223764512961393388440885532452881725768475601505508075175257310215765785419336522158337214868294335644642674322607411966596169060608177467454440328420556032440586027493133481847054354145149219685512628364951238482040713641328820883410008260039223618956073809040889037526737873256828655753498884954683221166058489168836569458139721652894424449526444630982027624918588927426952303791477938407621374640991983539460411036172812346237173188548522548428637148147476332646914566683490958535568226455115514896095347047804512410644369687714241962681902141928010618570306482727957142615667495986048283110469760772554829464706309842575620691247835398051458771040013565737451016261329941059397272626451171277505143843525260936148337118987716064510325805047757725645809895466825642634114743328755134467326673029798693341752570407874553329638982626616581835517601909185506202582167735093612066372825245359524892934485498514922419945421652312972240033778363397397157487145682839919816838264738177943701509026514909587556750579245613816746960201115564410466613423763106601799119932804376706421923119836838339810772900831862910039712433605247965863673048830316466211320577548821500908658884963464798363458883560604650097626883838099903818272035948099100159914138683080802608192800123788505003356329349347280480181757938584606994436959024278009200863111731191908942378827605156567801408488193630551950036837634235482568879055876813509342391326263226710939904598438014921863283479011831843324711175056032906325228694026253740679359418527060613775296250004611896355579852532553599017551611168943648462818729264664230497890905498438826309764233066059433701759312088348588693012779902363707222499775764513435570750404612229308437591931813529081884192543215680891223091920535102823917199421070089594481833430567515547184544009636403510576761464341977410286460924622684845948078958569758913753767595670623081350368024530358979019167481152975845571056939192326829923522569280845318224773499695426558709039612178481068516208825784898825330337640596044134552589559241169405342832992626089052226319122826224642053829314482489369019039974071433689469717356185587696645736805379735075269260705895950859274272967252733531168341309187259023500302490370264584570898609191771578819969048053806186297934971221267276900184952125541118585100437259575433352929526463597965138647177660992981974381591990135495505661074292674947170785380348401137433291494901191155600950275398492522783861068386325255956847464034342915407017374457159003387912058550675827953538592387886149535327933421860426707893232035684233475453376337821205594919520640566569026617130833004515189087665856925386750487343153630167046274319402947075473302125989736757516243523150197765449786353179585603325921467547543492853179298010272030320895853819804315845899210208470532279582512257670866131353093135791441819264263024626022208114470890522976935881744089989660430142212492006252867093507760032979558054744414376184350950321095766861077643496815487752498724892220220291431757926608316754207846655144605480875617050634706668003614260445336271800464398527101923031163528404454639501001480820629091815314167476794647891234380528117047567358479747951933068175733321082803692645863456462499704103197603072770410890613572055342039717431709047382845458579435924824698095856816880307795019914223240700274972006540867776064101341227020423067333513570311245316175082056199840744153832146548209066170195636223115828016840697489776978510152147176714627609021229701289121067446091573356618480413926399813253304654311938585792213162950498974607877985320413015990491546998613141603200461235630928659034562375017558791526680376937930334970467974864878154120644376091854677937371125070044943255528748551888019297339160020514142946080751645458097929307163472947803999604938332095462874057270947117239995510397406052667960692390372394276875681441097567607663121331547765021856957916652177887721987414032685644822419769775080274224867420849876137330479844259518612960640473132673175455031926120673529428283834529440624724017736664359348577646247407698513007604432134056192081653916510355094012755097819672114947834372279995460326142332130094047191127868999715298353499233967025455541957578753841519865144558597310446447438395457246891852069423287962044506630906342048798626360980106378734731798700867387990474755109524220531680586109510713111224835940051157638214256372313077292710232221371475803140725092394869545915592764718885899539627321296476392283227369592361330696905430324142934856849677329192547544824848879007310615617794269344403674126878139939112549961331221526624021642964296688549133433734155950221250265925393753288149072644685061075924305838616116740782481713872500597919635968006053387086423428877784276259937147006223423355622106658916688198199613780992375549779668781837087278370352015218146419473455899720275288474109016317208087219785410300203871370128632829856344195722080707722307753100637451344670791111494407727328419370514166815616298081924987107198369291215693621851819192418356742361893620843207914560494841469146926144507961170543219501524707205312874150503555803366930742734022575623350591344885931500416028516421423953186020603534917193697596863159594506111585477679547970336096525817185425888902895839619918756369139964975603238685342529908630017567088227777378031285983843121458750007526501809898968148511329427175429248397075609003861792515166719263242081176405715749134065357434113225915540086824884848295677522315646052185609036974569605331705377006456805410562780089699499525467792547765209248759860714790018021641595262053885068495209485143037884471102222792309907407295828038577944774633482697903359044382536610070653341562553919662925151052079013479473603720927613399879244804064528541785966755237942019891653275672455781941057575279065855051519581452896096860338428506923881857299391321601992801692870570386805148354681882807046149269214888480037537756691680031643277065932499610765417793381730342709981248509025657094008271878973965028885019956060459673152393396151270776034805173216712794043709837178563693190316371308903872701607047210340836339849592331033091188413610340290206509952968386190873136509097705698333520113561978687636418142315972892599170941725140586518980434465064287209587735381141643235466454595974501447240021377131891976035341377604208381913561948056272525091789610631259319612341928747231196275981381082903081046250336983137072079962516644582082825063308735781944806146211013159474382333854793631443568685031395563644288535229058414687649357269566415458631900950800651677260201099325762178461795846357954662656253462682813247476065883381473867597443278170563659400687126904475910851446038455331236310655215679283979365517636799014986811321902641596486039405959257151144659090945255579257504426112357758656317102985044458107191321710403826387680029119781998151180610810605797492577509393118898145449467196680805790309822610767872179080300992587726000985669469745299660259818579989752555376266840875729776429291259369838340886782743038192890316440052343972359709813407401828611987900764416679086194338884371352789963124211254698404833915812530085007733172850352972111924293004913939715628714498160374278829678069231311321281068593570480518530496040621667833979806412213925428596219103620439379871677416520894815634877128645100968966467083779351203501201834722385944235606504647650138891854510211844861389168241367970001399893948392865282693215568031594021974612607382672028845196230633417459919483638787389020353869062003298873716809318944456267230964479423082607147727378564441393481715388642420551957410761929825719790595099274278345483058962285157221667039616352874186302005680210678349085450595244966636762130009470392704071796565530224103674687661031880627058393253422602145276185453005346113703990616909855335182500724085870079995395753993226658251957243101697122035863957514135892455783080777481148150579867454427355239233257903196381430688002005851776950866438663532262010415412159404714931331533228790825735436081600526074962579738979654925292128184411436906412731052961743979113668031950154235336926397918892756044971897536234105900239356879679170918809156646677339286699414903542380354905907595193060485580173082367151175200001639032961135668446816683681329595071951677199173743095592220621305382074718554407008296030004321304173631469461397895917621082912221081690081442319686598990659312513272627068556304123298633947455921017386359982548015269476623940647551780158779700547531741951929684753152414923126549554214733325169213029930688148575180604772767667559913323928158358157498819027828102455674004376884112805938740469550059957358991531902332800375355299302542168572473560796974715971329132730118454113803341428437248423452643001749653013429294437522040166769705460876758282036310400795145334818147614990158498814170511755926532210348935276110005518656607896394959267262968453558811816397118137381435704667345541288922637088036043233620461569883092611810821077457181702566970436176732488955563745574852097839811278953323124120980909489777893432628045617373532089234443552470613109603660087351880039168369663984372090643989960512878706264549040572531926541709864501650691820570421429511834427288250044216211531745348515369240766052817812907561539483832976125140968720588360916834773491772300206395711121266903064499921028288497624812517657603563149510469976141067266606630904149984576863925062180846690741966911565542245743259860470262714756569670023838442328514585986210774919176885679212125370589834964425414638537484049710094253654600674113492625659300159617875366688555102034865233768777913130974421709948911056011625250394413144727117450986252940112828238388661312339942096841039670027465701238430480047816781733442365310566598103670006099334208098144484472378555727341392606493145255057963541295951647493098367980929597928169682665759906580075599599195477663932244324340655769660793545425344015556579110692223838812505966319810251691904723404213582032984590835080579790576118841932265709785943360043681384476067843724698404102927666389158109581634714913084351452705511742375345914742269160915386451270258608246625940296425950987546876719419461326495175379387602233808195610067859768524475945822499854758123388062857533373361191742263557802839742591826585085841113539881336208286863900621865172846624428560153629832926424955928572021353417100679564727716359038180908946906486084534099808274535891284599678009127707009583133278733801040769762069102960696620180278323186689700007789752160319316510132057854380149546357571943733711400615393707558796635541380375489583126505924454099630609800698088033497981462406183297217090810253731668421061107369624029941193046121704943396810828763400083876273718417113754327928611388784119962138192781856545921039676921592339506337865833313362687699804513642416975766272363520543405359078125429002750100767806216844197652278044333141274044312126223719847809296707587462771742939381683121968071571366588468135380497305754433491829597409553982570414400067022036320786847482683907370245852638482093567085108019611635922202402815400412507483016047731372790929382448550881311927326003625684622322660964454755969521869621372691226382574135992971458957824571553347044722469691753630312504485482398479173907919593424310258443597836789401697544584255566359968006574632451564433349471366562061440940484539216182895022784033275953789747666209994548160117079434469636332894477596409471074663164961397384049882781866352564337766840736499830030717741834893326596374264505774405999671868865048652990566757146116883017096779719206319998116181177495879753058634157560131726231448006301130215117356557102206069164982715799836739480509832223157648711302018388083223749785562580977038692090354516259088525377428145550030240570597963270173513608071756097502543036045553371431960654150303349596230097651356066874754200279850701515489160073181266548227277035835536331518505917607428318367926495641204973795010089917623866697392157306041566671337533910485722789264412801700059466137542002371823951870147037606252637269567001767537498467766084453035271536070231274930446954746279124516717900448875482837669074422449915162165842444563091486921690287556661869764416920335812679889248428110435090826478407519352407112590265641125119988023783909413765888325506053329609733016912178034855244040036645436580415777454896203610818747925823185279351658510246434147553853197356254241027220786953705568966398613359443944069388848323798836843025507096667642150494460781529845801995844448240232366695765815921355402723733576983482449817104120640482550661909387720292128749827671220150691070246951337790389114127148193830964998132592759790413871151405837464553240895119848444218399275633593547693165204726953646379861782564933206731417207716601207535524098758671301527355627824600613108256591422651119723319974345005537215518565376519871395084078256503504706402749889596309467930076425442467606678005015998091785914140608173405939040006512172713034759150938217949459010652147453825759818184925224425685552867460045322165908611634641513560838469208900509562545042353122821000588314201333998572050509018507503440914028652617904579423361164505702718456625141103026083609122022559214006758878813270772395204647385771495263387936017642775087634490359683072680853349637871528196492756411789230229778245828432642495999946981344455400428830208456709602902603308529665571665280697462061399309847654056844508058991340770634498925727436601452447317942407219665902882313051850583261218480072626051272249933851749451384984003580670362160203420954659857908749536285291574574669681084568441945462187970142024336517314637237954018876909007826252535150564898337908980910402329632768835415154811894484837266442719780336426418576680214727530239577322713135629382801316891819161401259693357868003132815669210649140099259410023893230656046240727948749908890796831448935257595277941419555885452393678843822901945567454191566555843275905352755865814256187788075570505643457931392312468218177776853950969690762799493654102351830720115974117917330292215288641549748384452459487466845087682666549917640725042505425175186820923168900694799257274146280551971128528531849781681447089063023882395354621739362759008600205174508366019783569754389261472910465399724117049473650680211748808260644215385770221532478887635584578214727094936209732303032519521720731606554191252839997695537364565897627507852426622478719968437651740529135098979079651862140631158205482517529941044937403501002027095357912381462116583765880595922728377711584741415013187071844273897090270632070945143499107666447107298365134815787562404928840023148015450766172359006166141711717636196772477008492794559670181613952597805815245888211231247576364094493448732156547894802396954139138939879845735326460857625799278669686187532646049184850870577139762878985678307220643605851375024329707792227992889943122492011426694128895326275157223354770347806413478085180115042901045551891916548819453214407687662819068252703880456496600566938436401441094098846673326901255780435895018964384831705641797231997511410521781503663883986440973184046581901574859903843923026306149244467780499158240210014835669517646777891443189050242302531433242061141562662866349764650041463474442534035942342006069305025043923679023855479635040464345340010207818809022329924852680423796859435837467318714203755181652793066975151118732695005458477573450631979986970523955042247833167733548185915392434403762906870393656281764953998436867460436552009427214550822234541325487920702122486248330064260772369932661486809265728776272868553275835760433840015262175412452910428272148107657272231400635378722804108806536772299739710990054079786494845925486549490368383501373961788255331538148364264282692535943349658059828113995188276745235292826422416368880767102797311028635352835986510363166308415254612797629887205446513778246695349290270888018765504368528825304688687799834350687281684010709867742667655437731547429940470768052918140189367461138523079061884514802623460312456020941033613018231862046784698223873369711936383043008644552892699148011739000094153653832879436657052171388575651890832292275504231200099696015939197995552567469518282768998903650213039965265484507386000590906047803689839712747070594630617560764013655117648644266947064239695749699496790582953192039640025293051272350884736175671546073825039975583894149230142923967512934329432337841423140215027366414490234515715242322958192820840918862625752452342035549397507345792804431405554013175517280884271806706100631782861640948927825027042094618656309779171189501967135811120213064810975831307837545091989068027137864221952397698792254920056177417094390386419888192042668934694643417182168665833060126389771560520728704383680068983404699411684657332436136608336020123992440515007567955201354643936876933015083501271003982280545715888768559396815121251997138181993977426863912103535532188961385965856601874462393363912569575994616208079615163366342053075014936920260001661263157032755819885353218251604063253701837403580973892711761765824846880657511771817146556575551455240957427799660760225640676069834310334123546306868190231997395860297383100543965923911473354293570909795881694350140089927195618974698514569010587977275367348664734069876612068552391311540254641689181773096775457020971084834528496633491017364816246483463534748037707332637340442372085699159035341229832532234185113882722622231903150211455405085927250255689426199094511019294353389191050202643314168463910726202843458088247343280616174366006882084563043539506752370989731029131834205388444404577838581924936705624684894193546681151020159520287427559679482242912131096375510535785279234672522490989025722630558907747645513963923421486129547480772014598524818119301620259314058562069552476206754898641584654725085778531369874361901642054211923110072426865364968775970561211008956321506371739923284639480111509542660781872880134103901470666222814595623096828719143870887643355889930203493609102894398279790951745115815795121300344531212029362817975234039325863620754794493466358018810968906814656881041043776346385592038148171663214559061886398900478591503637734630064908847063263420153063647161073338120513477896400230545453311314168966211251414613384958165306785771963680658559134083985392687756106165537895622341858675987566732169976823983438973695870645928941999553838592401899586226674512530381666675869504848939201683217728933149846087810393860744405424367617035206580372492170804444034456754915697965014207842891019355897076645607276824861359825733214312773536651462021732615150741339580064766986065107321455911860189066931486266423559430820333992689092111753912266648595859580626584736226528231493556202123982033588939710726229644100709808994502822701680693871841406311749144224830078053707098179411280238489448104901821139680507960389709533610946440440366003560941464923341609256513126913008049598921765791896097437068765643458804718043233768825287790921077694555960794648690492904416440535133589038704546220243903421685932560971956446234001437854481038014555221351272638634158971442774406147280521595661368204866319460407842147142625040968732314316441442865173783289510877332798977662288199334940788428012590810841081596479334497027965475859051292327642173170199772971197811320010688958975191548334206815596689600304845531106850157880098752788221077342672743831303665305464479721823626233245940066918972625544946305548846640656034470673875098080368137097839717867178698317655952188185712938456975920376797117764339621704986617734290115354931342192632126152275574382031669839849443081413609964413393075360210396642504781430200080535854958300130975294679806545937798242884400747592223865538475669146812157353135812485365782360085510308040560976582325506061183296057949888781537578102622493407520692122451814983798504589247368809784525491085709828550566359022197099226592048016715124198294074490506286903929179456010412968109341436275228773007533068368019562580132844187019005261913914835668388995287116960709274211517912077942855571607522412140243891574020167669556075147445960342480865871511882833628714526581048820006810945130077133999217010232147967448649196052575175926634717033056429479280965700669470097187610266533421431823745037486844139394205809942348222216737520420552876259723653113509341966781301691728701972858082312538867360081301664068016109656938696350569492212458658828996392714617489332123000637681449175723218049529776675869186422992693528746438128128084864521051001443866332348410842041518513164724653609346449168638730680991612854039124631650691015272694073405661589716546133698609875679741601340906350767544104419173740954364982111649123703170567626305433987682226964895361193125760966942763742299539766281535008240205500036350897603255804236378509377666005379734558187120278544304740646277639184923320944202942671932807404554806148116370551863467145664227307803738289122571654818206853790705808286776693456884590520275927109847162910508468096670438209470782458721607916898260417491235277357333967308181188826763590580069197770941883478320846688507668445657607677092408638039650238478152613097078557746251938330532193247367237710890249732126852560751985831734218464462706174785861840981303290835493101501744561150147567259521091231316992146800843762382794039895423537705388154480913719977077215600773451181302153412864571390182449568845974151360904708105659412379791570920648119277278350956753626678430297266082727053384920187883998787457542418854935807020372508994867741137607285299999890396022703146153114255106159404451587303920854403707265285998453026463192630524923796238094827358831441374393953989964892642490012453361121718660585159328375445540052297294713216605437798573476790496004494494929670100576297374995801503387301449630194328152488935963100966361172537618139065805116312527052481736486392032302983285518252316000759419782323881202921408371152078436651577416574875662568385552466921733789791193955697207342167818904381699519250998519078205033488346302921272384591652761831155054975444569583920967347521396643000544281949148172995229470415602390952763005149046158013740593091380026397180321230152243003870864577163506324692459091504962445349207917126737401512515787727710238215839335257809771750360467349800180016979847644531302918958200254845369032361459308595144975784332314413356162520034962319292430374216113868744227000088716411434880515606201055450423359234406225232544576440036449516124170687999146952983788547844109902790072260838976293867460122330649483928258196057665913630045492779479121652007681119862363329236451586890733439605358939997659517272678099002182070601979130039081361086664813738576540856608956083520818207278852899668969206524200989123572120477679979532162761342957946057907117163114875867464055163771260204917263659780041911662394466305685500090735148614790303567886512989394419525768688502659683739331741010659570635744078340126991368083446852547135744991895513263741628969400766891558048617866984751233354782263174916826583899914092043495200361443293446778240410948401197072051660915103207234949020135459930986906297149155009204254606911539118797111314513949149868720478999517638263139273609096709168039686254079989605459504816290995633634402495169075775982773561255671953360431014031150898510360871640185612958904843922625300835962817188670639839328325373819021237944829323661068118463276784655453643326918082890498352651559965062538627789061470081176605574478869116947508202963681686685280501823439818380589552535155277054400291735910080987645146099237747398689677862794737565879943344059609706343763371670888455760691742213468332428909066420068312904437749836383612726884654740865128776790508402666866048871393640673226748792411878822178036867081811855006222892944800978088399902730409094052188837706456097859841607521521338083701208841473238087566441246503652425733117218983624385524234938246248629679868885332707284804368538941017012911289919733348812213585683440367261572391184325206956507126519408328095427683708808162318192209150957684061055191256862648477267390953280709001162747817417080928669201723426497160889001536518840844269648147864008192846693749703451544653445576545583323944373994848257922355499790255768706294757240191848216796498919603969300707526622225995346739412925443486925858334416895946327824001493928261081256933439359523716451025864572413869477893122088893456803755165986682300495440602142180833768717241524614344288308126570962319838963972992667935869777715901128677980699786974602617829071186145742886766023597751334331301983839583216244577147386667766911491402094486640057008211208248781717912559397476782652944881863314117772007364093886707778034563532249277746051188541159159149670872593164586108901017386860381443475981580422425475939811171553003823887786340518781052331809199415386522544571011185013198661593145273699908344804953574083888018526921579494095969033314419754795268692575346680864778140415750925392533977107645956874464205824028508596766063466427802204850575787009350487587400694414425364837678910149908243335811069494285502329779608473027072685637119193886897402572862843491645047249653662016261489262499009961154671701428836291736301092420981555672541029076535400904517623723735760027316287447693654931694396877452726610001101040442836635467388702109120123992683694399832561517229370529301236178194003487635579905229539883576753776566011080550970600941623300448421015835012184256667056086979224411582313633667076646049977350634146392096720123083453733486487475711388283516241464081900962393348045528394151052283913315233313165505739111505427315326796083596791868469722346218231823683271795608126686898572285642417497204888293275618705091046402960506896088646406645648329024044323246948683369786100440279099768811108027920106723365673762627403753003994545785928127958585906906992266461792161653968582531701303809046529716589623820561454253273538769673122833394432823290005238152021381845396466249598519033685756511002856317042515723272721992144000231050379606853381075756177062048990661500590857014610249155969276781339837705517235067281297758510599479596395757782172298433135702606077141157342539282350632935650733855224728631466186861149827511497553452505778806194944380190593640374287138630660542999184253029184221429115401591354441098222612363516117537542968761253362820839049165739951058240176025631349196578610802547485841428313652416960352586458812771558596505467854052443801554023263224052857309429402741335745086225607039968327373696555257639830007164461603355768126636787851966080816005242201703405844866244181087195037127337380234892803190600282132489235266672459136810387173646293051547325064819683975777694471852831741605759686980326101119268015885156042850798627578870174936479219373666236085561799399372758565287784800623474013110385590443101798615661556591279377548375523655462934455933024839264717738838794836097994592088976799218884712297499592352040430282610384535975289815947212428233400578316633012977928219781150337472294740462953080545791337664085039652609310030851114153366045507986411568996069408761223542885895955719644644408615856016178042804240821259929016614495460329530296220649233491049450488048578110377109500932062887933057558373316133917610760773388321470131649474986222318874400763971044984677180397629736300981095875703399280491983761236234650930342273969367078329457187060990638280571359610483470723885893189764648997093888687292029279391002056516192883511610680960069048150172046863407655081614198288926470005365408086643166506970318379847298496888007945444242175471753656634599606135729907816209022819477433869127674299548854009895160668521749823375042940213314295917954857828929407446761486499263882464290768415199383644070454891084998629127440856976731600169267195552820448923654189182346518624501737909698043349094354991063567488140937599879163870027273872384178256587531749003939776450349889041573364344073028917396825032766259295310988222052328372627000506915836551713859466515013691888575701348304522275431472333172226573045737984179284759375234912676182946525327896013431398241796211237076709576584339513720978421970829151025196716022013221622671965797961813055554489679720055068974744540899090482560130462991258472869795831427255471727889491460926376034297933166650307610529242778340710143461577649590993268753449382636431356456994149530130048403182955125842273972144478663852003326052453652238052054668540469719976066784385376555840575682824070702545166606952079916407658981581030143959080847992005129829900315338650330035589680305618174227946275840378360005130554884215802456915797003886383840982963741711520423115929925677679801095326410507071969938717172608687161704767112136323962734180696473298110910151569144798298122732341081254125304857758010705407154101240694043597065790368695074241218704355156397492809560912885241977721223834244091103229487528147656653103651877513791760343692343246419630959424308378912496772027555046230725779570537531539506286061035962437035635993335118638088886187187533615804147327146829678470716443933631139803629672836552268415225587971209042543764272100463692529150385507074036787142034561803132759645644080421281068190421198459274435749359599764800413492102331911126144145022751686624890194631101537872032904354886844633829827587342607039546085763026938534598348101331613771998246986147479886580782045011590964350025272759542815727390068704094560092179779633285123785192747172546178274980090010479958543822043880368189260187276056214684284291212935082707876593605804761559155044000116080921978599620757777846430576551589174637274784233681750172087299064769160467297157580258861610877326324851692782319941179935127939331854601166511652300459036567411037402142062333468709112325748460366235959924860184252993140244270154406115303793905685257008695131031714945502818108948214716831585965685730128458658998729722529631278858612572769598662009877931441577595515774421498441515224333832528737271634640190381074090397433531849858548543454624377634365857113189437996456555645946766920808808563137625663434441614674420783299593203442488358361190480272698169015080266283596465116368472042402680546212350742444180049948916779027117593913043281003501892744940725036187339503492962098479319577801046950623858957354038036318988000247684106527742372748820537388659772403335012201796259313137085885221972824730897847302379962184199431707640095923180961836096943431673831652379221544404626514165154968547910565216899974568188596371129163461773396433192103636453396243505650261492036890290055964171710319871637359466716637402874490635974702099501249432438565130089764318791825183594858788790171891117694414212068986796107613576025403471908819226914321929446740747671702833445349285676615336662833225605412085828358885564628728539664113790860687806843666337044772233090784577105521233035136288566122268832066677444596589677899374908594119530283291434319431312414830407196880019587046438565839366618008259863102025758367578136028211084370256604468579554412394441821494278288074508573431093445569579446359142962534414574534475594563991589526925213216744631254527892134978377730730312405692047016946148387077229656488713797480863895264870796564412393975875654783551961887377332872266209465340918362711029929731949430625830062954603472431616611375605331702981675439514907251283847360110606695404572914294024295397111954153867539895941810276388391832732868854160962538385604222785592881551737054950909142318767671876285172710861568372548166271383449296721572795649865980983598344466969080787471845711930675058261268198750184426080851069564866783670546203695750938425072863048311629467629522216564499418840865215559906067687627869112198507687694669791622044422941108751526091405790022662841897310026859346710306421197655921257727844203748882221642498833971179974196075967464700249513917622904404031099904746518069317161980763212217414021014399349424319077954772636744665346157510107171832496963969973782556980901195436694973614035947474865195815746128760339519580703251150390912700652223370296169320065899703501077735287462636076407917613396939215050920392320692832802598835590092841639888740095564760550395847754880831331146406580687443225924976861894479470223444487912573286942517247505495017909287487198548629674184216638197851354312101018174902964836145780656525024884721355574100732732918388554991790124324285881042836174861228531989404195700753948587411286583812157369765322067939739362741209584546806763035602829020857952106610644917335661679661523516156735802806567532539766574103181196484529602322542786190332716604004193309031774394806868284018357082568620702634899941340982768496743325341323972565854963923929127381379779869132627531496744129530261519348386649754316953950017017812556828217054030756980691402679303907218016201478534706975336213921180648874468211152362829852108504570848421941927351743500845967161716046204997480584566349143468725648557117362054138217060045297936043501945952755917913846794633685976076455542144640221422349950902042013925422811576561119105426873717119166428536141623010947971148713412984372555635868768692302345169003101259422802471328562992832304234011113191239152168538649868431561673828449839746077494169831838068854173775032467026663299061844117877703766384685027935625964066352974929338497836572956419448326032678099658969896133299377163232555239709699576975268143383507484480134705436511731995129476814772117793829087304755161296179250171072195673336458616258981262213533206823946534030324162966186449588306615505613788505104454047690299813862429847711650668673741776545145696535754128022743888895620663119914422828952010493709596841711361830146046660929561572463101320048380829257703719637178907166436247954958884875089417337065790252727385981352568044324029175522115472689340913066716800989620123051078810354538127567666899219322456053761973374755745351860263919255777366660074939802025668852492875139185719109417497679078519784064232810013020259612520672949422073271624148470391316539501441869523323325982717760209149393487110693207350271478071085927086257076400984437292493124431866972056179053504711898974722586909817695960275527989019201967399164227025400316695517003984124592528037256671360446374085496205768080325136036970992242948399069607465121843384948125373824005089289208861421576617757992799412145373980180011756480978235177001956207283128161046080300332817654722911911944213349445547967383607167507340365692482128828853348616402162086674067404351884504433703724536466034898831290722247206148367089640129985154058552873067416855840267690394904363692302797271799345650042644259025386410850755405018956870937762096265912907864208715191372040802797392550140768526181416093720164315877697994906665896986905682478898954948702912722527144612223423294199358857769126731791321017534953509736510510188444661134352433234019437877806452325693531474894539049027953228843338702273132526151136366456555687016782183911100115397191139777785044389839204376950438857352751207561686472166573250734455160564096355379022813118468575476256849756937062595815245587208542832539457095539438370354313675613623114175870609105233516358532546159746823285343370645842763548287120704914552188262819063929494985703132565442806737225990808235800296013357267654253195381922844374142039805844816674795564966047978093781087319911429859162716674278213583429739911110578279115941248931850240082204816402562047544338471033900659096916009992213928365347077838531424754077842440428506487392078504739345643560057001227205177342890424053385389194411786955208974861764443969827280331834419619423635035934595703748002292275658001387717463111809779107324870831306132110049965545501660979656442744199942661242859756596076180138613618150841153748835395369906041757878740277757439859060714850192935501584513846231667510104433925600711569131047945235995657987241006255132319399558545779755071862755877077347690005900651695986799779605015883048361618986097965718119546315006374307267350091862506181114849496793373929757306250481612108097993961788386394233851404718069592116707210878397221469307601518137771286450880164435126811471133097408685026974860462480341659986793977283901936610548809747251882648577615767706742472234150244374196904210464749282956850566386438743530155398142170349490433453736136877581034258052405213567996963158552916592109565036336438636556971829224021287413518997283488834825554221009013465589074739751746327592123698487321798777822193514570749213253947990502451625784716226704542672257821558863712922402665131152784943783159644895445941979672172013104990149024907336363452563002065790040448140887072500336760987722385091731027527324502109423404295629284184819042702681130898858044578714729620678573910362575411198382140551772631615593217097271747809820571020547381679735528948438062200667140762225006236274388864316148069093534949700198902292271180266087350591376456620074527919440732021674643556592001950233461948303781738482731214115471930348186045417036530037849885495857675583131493986413065817220231580658080770624225797479747705522796724691078281131943577823044232518345534313213691247559538054167412253142648570541896437312595385470519506499865084902321901732398432034578550798243678007585383668737083140641507938480365418854614871234498652737505004997149403720634109829836299517042940019032068381753153304091852933037295569654798414905768344099236902776128886377515915767203013591353553320563854126686888347852625086917173011364306110568006622103459795219938335041150685648609373759070957421700443342736618929521690315652162191437027203774929918669514592439028652528720056245021777809777107089942939633811195948760275888183570542364777550104990095024475462882493166818445711055864285839211623339493736740158251117661479387640055019440214593942377149796247132966086831883978015513251038184037433545128897313153316296233290567541158458960053761263257596584875627840026631674243245769836057435196633230594547125518776354545780021644057340379990628264256641431585218310334403740863114676344222773380107555261844865675548047433879325279960532943710235195109811269695700426989337363441562088037346155664021338562552091736355350717143910016859240878753124782441172035460675452311693246411787746425606947783731694808805635904167575701170575082909186536242395008898316448456087302418725700508142635814166465376652596630063849106990251984121675417519819325031015747517279282553100334891748413596564547069132990018365177308048347488157337134232974654532654433967018237699302993732152228862060200242742193277929095964448361583532335841531974477233997717114170668931069288546511978192292678761790860941168171600270706223062221312519622536458081984068298783844087709741787748787705923283445963729286633199295798272136993547978081383081019448277122687677330025669635988526501071641774151017955623731108943522580726972416787348097535397383269378812053747248494117394377729411757317376304904083331957301624756364393058487803856052948972591883514806772775718480888249718909889814418067209892769905011377808434226409856663533549497122079945425572175573602555067852127218737377177335838405006465150323723543464985568549707178838077392668014684407891554112262821755851866315104784980305399311423663481249555674167645835059159166150160161753132160066378006039641152065707892915384858403588358565604167701030603128187098691265999851842973999043292037584955765677398878276414890434118011093541137168605174500963138114625444680126638693373011221981434244716743468056413860730555674321883532584822299628040149552098366727554675856969055887511661415938539988738715413735511222164416312257705110497551655879528035814615286542775068315229871924196745371001085743579855262948746386412156094942341073235847019130881361946329764393806580262171547054282780233968203774120802846425220554288172000822180383161276961191089844941216187764015925222588196671894667964014542631008070094292275633931029798591974182221885621632131968108100162329497523853688568281911062658896430833607660334561767420025600412242849593195888479802792480288038160207691549529149272724916323709019310775112550054463772598515227994352787043441117765357431580752649212455197663838245843482765470731614204873582070757270920594162396622801990726200306659158169010422476739685948043300200868823839479664564667652086098981605455329387654925651979830119616441259731167563198979882344051882974071555323953655503941595532168215092288620900254383681421949185953778379668395195880471363834109506783800329304880958056061306001314939089688572322221379488270599037876882095502738034145948424844581062133220681265614492933406417664170771265758806791894867782887496411960420151077482309847478367584479215250050319927663718754180421296983553701187095169290016686492160977424000119734989334776789770496053732689554450858767325680021826622569238148193021419178700031976519016021977278922484455445252660295918156822560205682615390515822188463489680302911288847188007305649306886996912870549177617016374689765430841702461156040586317904039424085173500831058761948239951891225661394459875083384512933419666616192422590475727680555482891315978179362578140566017573414602686393153370718405755374809650517216146298997608794395331866805009134596562356212478644425042141809541753764150058234486941718763353513612726045345988893903232841494865475218386004510856303881294276832174924926627000449683471205755167559889698660928375431858093885375483372178100778609543503702489540893799652600694054926788628637934673720629252461811487989750287294091045876042189785517167650630589458926844810672273481279268457963712119910283261528773142290099285070121543070447204508960147427747764383736616179955376100217451084920555659677201326592422770601842974044459381870425919813052368749456087250459861201320339907000560091119861635135933606085001102719068952720615373976109722987415476372920126344774639063137315944045105848551651827540431777873965595007594665173900542538363688009515392059823144863044461629790561692418711869338703945734280762586222430726452525120283492723787391086213625689651527488755400272881143858059333529984414002672121639729448098357950957727405758651186240947724752496132184943200174261294775676901135867826879855094384082239292694829076426441417277321991232586648026370603698972191620174066868857075316527086711192013391627687390027189057870978179332559806929280041791796241179506189730341471896173184210255043804286549675114691550102226310589335616623875453295866252750661721470701600864644571850953588920961805285421047942418419831291330472638977543913678799090396739374968035849893389558556410205109507275777285095504125808642555760078728275740553030607878375682130761506331408636611726861481362879189124091227070959085851805773034524479569269596624398423893315085984280193001057007813957917838703560095934406216237043089295458203129662123663498521470969764069884734935529091477776775991103662746966814500863552010945849734250081145919266173673678792291107213797670201075971715254242397023070408398029018081144959345297549908453825925692044377735873476981772508960506509708617773950883926307608899275545968923380387866077937921992500392563777567975282814133639455860034879172059583190957828852233186585827488669937365431862265200990986690366528695571621714068548467954783564290568450328344575882357591845354501784147477658667231459061417695427366873094580109766103773008153712780423667823817734978867858429930577789125812558618015505857349235862860325669296040785039104254013400647966604101737592828316827376726673640102634486426832419563154833709127980335419783451103582719261947353979072217851721765271850658164800130924075252367663940674468125421496693518202301539799013557255322648624031426811323034642358577176795947492602857121313192107075580877782499918593033901239038207844431670458740016727211619107715533077040325201751252849574976249057934158777465927010618543590287499564769834936632946468318205247694983929520009030208051045112252037029670475674025003428209691600637756295516023201863973482230300978999851769871329801506067252113825845704418839053999372150122533195276907204008703335489947790571297421425604815666254559293149623909759965647522554436787721158366484812834953979605668687988965727521284236541605542319898670735943616312421722031567379989243836295764424740467861824042523279935488003369018961105674216722921046405419431616145006955033317077307815708862822932209786849998688203768072392489759270976634419042167261755102710322560495449465181250447816027345558847418318979955874361709239576933413355044275891974283534655745852325653717626335677336637176098732736062372885815055066234580219711014415476661278651525208910813903777251887528063808511637439900888039942150328383987266998967439531841654467837471154776659442737368195679349822585107182820156170531810634805394906932937720220690009712849260934499450951708929353641743330471702532065581904736498370642101217822725759103460863580869322193415973730344644029422687378844131771189297310741861524705819504299561757997517811951661847325846990704313444835646945487458240831435195004941711574502964693336325804077060991993222428835824581295046487862087594262229827882510674858844960581276565586724849550491408142647084528954188017739474375142469721303109925111222351133475631161224728288045445757152073550196046748845639145675976248473222461409520227555882224692623775558332733314406199963875470613941891413802552239514574390231966709736069067261349386873510375673778066174000507079436685523604688149811996742933407872521548646392181421825258434596144365331049460188089804563369847059901824712369291078408550602252694109092373599957414351468622954998147403898831309081847264611320872812258565778509571872077081077724672676303466346779283922370504267066073807311742615983088258396732607213391312208805220575482682687312280499613063170495572356218556506665072704604173419805054567095923750132921891574015355767110490166324281588047525167627519177568578728824318632135788876848816590523662375820999992648377836866228971159594846147234296125146047096373725192109477109767793601170308955691885486074872523866382175182951384726086124282567129391895186585499860785976206970281501307713636939211913448429293449583603534155020588962223165737620217193470661177783785899778821732472649434512784851592206025713494784868249809190109183350832472413615788965090991042092476157232168234544662036030467421021765654308701273518372034365310053608196195337855923324756157425498226027676203340796694038723123617038969808076877980119383331337174406661033482361613075953023250181107552450434153604681448056080322953556688230588170056167637593856648346292935594044780209920869112004476983873911584086014075777358974966321056305877265084338097909596637015908636676672468571121409929980153765588077903171925819892201400554653608342535638453603341623837718617011437884665402264079818809848334649226023902990215466021379135704767415926554461519968518601711936127105480018682278340814429962571410635138171886363862998005119650561140346227227109200411649404754186928221969768392427323493816950503187376298371219195807252206816447992304182814710230730777279782789056210501400448429488068168458198945950131227236960544720913193847153787918821645520704045872102034137119072765594598685727673313283989030045523557892714764438774748283702413397048567271645213829477116025365455442728383497486872352753417836571503143073963797516336297644961791789506759735758222835212699273499899952901216834896771560887666177748307441744724941253778573185041460376057999519436090118907554196719013413024037564390604162798187678516879416793253789990982523032150127572483396894570033247427315450671136343381653443267159507595516956856028418799452151663301300327891699486297792467890885314002612522209148231908528562241755385266156330115753492766067176602533147932056518308406094365721404325113430879741361482722689937591898983192868441773394261868743041756831158936573818610915751548417442732659712576729770446741838126864305183917957985838003615402243038202091694229860770152515998395555654157480507182120875631123843761357396609459193370428652522087338127878992339922203250981793717653608219893644143503113437782339478245937070047913100330704981077723587404884331915284398310102991565575981782434416374633062829653684644960017373976154283744600573897687148120109022052748653706441539340521898417966306421630857347527991526141037745634263136780243913868655311500353149502813954749317125671725543869690966626704132921454752413170723046320774443086547899989786165554794080979000410477221025722468502384022480612220287124339484874653497311539682275078184773124035368596371193728992806113898640099540535385161152671067719927312924557440241021895168491040863204993967736004206408218048727783661195375257964085330436274110604143493030646372501064117082403565262295296163866290464798767484856859769064244556387787414773453555146678578592775283749333186285896066678604211961875413634364165192932704497529386953168774665221034834766105864053643125043439287817703323101802078799139350239938881888742365562495448745271479820427911175785126413692003507091690058042587461491394755669691319400600470182047261316320409314384828703756408762616220226790204256669653722120612735510714146147815352557204858074253409484460334703013690814744358902409296971741451094595413800855399990805948424665666416405680614425831527217391339012825933425093249063848772380173313682918778343687318589568655484859775993536394564992011446465171255939607781650403871253922834450894912382479118401943430229312915329160775665744673201942916136526807080560433539889790387362431619620086170171209576999855995383007568544201194745017605653308351216128573618019641675042449802305384994441091495118431527956637321959044249921008030371889615218345682538516785621559470371508323748998181887429693511488146915842567602823796505629141038674090575531670250230370597180586871709873559651919924117562144537810811720787594415476080946759969588796890300257104663577066273524339241491786021614645749031488150772823067279370329243013984689273058812529076837879200987931424375091043984708141642564561554722050472124403857081685489711545730973516400861353508237783042328649858044685976839585680368572164199759033854677331751789112093884786078336798245241767805839775946734633968769636470665779435851387487105372484626122446050238196156598711022414784735445140262250855381985581906225391505798181832727447215486101876609257639091608573799943050834619615387358254778891829343916149275972046261498524151870508617038084456292792378032390989209077762934906921932031348565017517910336205254942213054254543290570790153805595181247563038553810313990894692432850420862775437432265422073786012466922729046404342895763253453073393072200413898390564355738126189244110934771182276337366076375724602875030288533980392088167151556422937617489183770055631205114521650567003415917360628234010128274236425207979739912936758067128132041436885895501951899395059019853343262782621142545894224833853086229351612906758186643910495375697261298451565607823519797426529986812241575355353695485027712465364883352612790828926165355994980321880210640010586711629530127187816129055298292536857795288194371096039955247606825586015730249986305436628266325405658069382223597742922129185393977271330492811110688613496284262874640565998107049134129943098350376215571657310614085239856536249932673187912369017126040702067704537239333176272019584309955895143738679982673785842896923212463009452493718143480362653016544540971180126889724494722059962864914615014817617058177111944246265821855015246014722632530814345175759038601787706400278958473512436556254771844419847845492838437036536891882848647095579023348011420037299579932687410855780057853283935977224298048141638108210052446050690898492486254906962387448719228188522342714122461989596617674554282383172466481067305726331580151761041005791589921272153738224139181212896429023753533139980332999903653507586174753066362360995005894998688070262553646347655437826845085027391273883058178611016289393924549533609988468598947272734950729409334147119404947262271355307597476734740669590475953313215637737047632947094870774700155883998761557467575371740657175799842951457169884770992551773461520144007812523540796939744163351893464582628880979091862196500272528240461041989960515705773743864092686675332368324997617947915746299587919355524850518076542591754256028362121107947718642636003910882915672400169399040768490935545916690824394527852497727028542145970600207843251899214330057127996420912670615991249889239891715904785547663398289314570051444939673675540871343440439294935984748385582155982126859852144142178792266031717021697267831760166131489447784326781649323358311334497248852670409304005587781794635025153798321931394670866693433115806856276515207265938004250334193670593456811157504522715453790384774957279615675631812289236193495783481053298377211901781813174575203852429436395813204111913365271501782122609317041031424895365004987497431367831136586093837574586415088102124637797201457014785321295031317021049079117820564644716134418065831668651404313622282634006696652063781184128408832600986183396292900343390432659429192382773881539356950811176078584351986906474266113056320101751160271057838865720683151730909988986830092764184742145311507094921776281216067277872971732404490253452865924947698768562447883511141383364029200179391411595846067872061110162940024274132533160132840840019872870431377882661383653341116606876915599075718923665143908669241798190921323548552949286689789470867085132845317670193491148117718859756041949561111637932973165969233155448851966718439663032102163526498044251070660516238360597543829601705836973701033865164736778072630306316643824367348088372980124943571795971028301409073583054118918055690587116905546477426287630538723570974913426928292458740444319841923473746471683241737871913310561997433962533653038834493677187648296189215996357683324191748206049837505137765557920034399225548717171095287038863458322453484694772894495684264440365591650087837912845173682523309827826792355481616656702875470273321497657964763843923982416235620501493456249095232261983662393730914452746712094314153945007721657777257291549954873788328585653390712873874425232626263729227177517157547405845769094830346700054981260991241655419042366844111152435848603796500193041139817680744737721715564395717816568635493586745218549037474618321413035659278930035663304753581634741478447979799860577369211939080752568179687790552465932998408812794589001412148120347358776716351989347410321710759236773703779955066416091443062383033702039914724029221085465577528534409272121126033452927150020805534326913123416218253477044776979161662803198124474616035124498761509724281251938132847718019443413676707324615585397154285062132850437817893279749753290608891210786721886580758046128404322969818611102741313872133228345518075664537169938271954794688301235970209657485521650338207667694950980068456402336574338140271556824026484136540842038986957272889761365090080128742245808766412141252033964570307257419281397239620609609007293217276231384458737435992540988613988854868616935497623002411037955839250823149907730767706660161453675173650285093294135774499380285456135916857517527388289153806513771454921800810579442470599855345675550132575117973989361343043973405887820843293016119312979197308685914965235376160322051894578938564096722054839740054933111878391815063202701305809628628463623180684857534244023947227036449402310585149978727380255847029180549060629724184475544876608672833674404738980392714286567896995943870937188183721996703292024029739429392374875180840790767891962339104506642112397392909955292237547091426497271902779536295907695376488098163269040454746263818037700894776916757985973603226632990642434097483979570529357884161314228668630529099227002682498181929563080074699960412587092918055399225743693103639585044770089415081518453471314318427005376700688759414438996114713104016871970100584904119167912658344573858501642870598051785153053727249575233822396618702896454431211777086917373172929651890734307949950164156795206561880635432939892443713848117819772624020756300562990342803533497165184639005699119636191027671050243226519601023366024483188880836359120112356537849554809782381558731025295409843000985569664985962463141889273054821665411923907464869014073394273085284622012908640242028621349641861995097482692807129432363633745391895959642169337505476309660942104657391521254675499871199350531741278417578504875601379211808801651527947027248112346901759148676651079543484020970008226322083837319406759130025184981432080448254888811087988723545241283097970373939213352350179313639638425829237565967278088836057257748547955119133683241913448673439973194368123949175607329258191806329852233327155569777647746623698514050549411298268937011657171873717953681174394587085872267418115762823947413458369210993461104389820484377987188172775151339283394939206685318592342198400649537845716959021310772866779742283984531673762430421965384757830681715103665327584865650495562939647193217334562351579282585976160819094173156377328235998419519109166165796906622561012606091085346734295875811841115621780446439566194504683012081317318629981137780016749736664674650334148839949234623664425617059386036398455672946865388080151347224246563830982367716024747138892638697464029439428070583344787801885559780607535559620353789804024369948559753654972305861200181946845652378738914162843730053181196359300085598004369772244866921904183786813818138136690218059459523047827222220081024189134682518200194069492111044064749822358993754383732275628501901555549851919877811191487487250687417913134722889104001175065346050059632518379912096826782408617515497125906582716616958716592303109705291934179804954803378155925674358426089404637552063447288732999251701595533785633066578886343970569137812990407647958338881889613134122480876565491545545013040997548738079510044475632713078211727629960791869553997880589377065942457948884776551804198799419904444431093360315970055932682147441202585832482182737165556907411621618602845217808396036526458962397438109200532674822862364649035839940646330456792381551443570257852820577007491347023579972710824750370217342044820402025692544146336240421300254801697036352734410588130750846299723713433380963262187594219382576854069346425911497645855743763150158554612779076652291067032648336287140503138356954660638474103966435358589974425566383340755000753263770541592399280792912103877614295873945823666331035615436716148838080579195971210918978750950207648217654450175929263893553388410867877149227701448884119793139077859358800119430920899370837364293010336226768401287730672900022060066860855116931542143694099386381870882902979554195051642238587852906836870495421650420144332811423002204682639889836600697061976944805178056493346110812385782133968512980106351554771025573124548513147694577714515418194302627901569943037675884826658949298448765409249320838841561799927331037771166114321196742639181488761573440006466662924680321203120127881917648214869250173516252392613302973870301516189275428790397823869651443706680482911346232173786277647884443282971370683532238606175025636038035398668813477171703085688928461300587173054346056701844138134952461439044122442824805422496173382183118930431266473829784960932719920613519429011834272512287534435768654705045175854794755984449245983239968043057511795065072807788326588691975850265346644096984962113316165669922176519374132044891573145411605257590150784333291446003709920624418907292387834341050223797031262750191716590603334354088217896049352905458882639452382977332476486253775325275415031795447859789444442180314309798465784376616299573629315330462315461819510086556240166834427186038605800147357402815127578094581657023209808178701662799502809527432201060725066499923377253632774576299270320863462207440440321979088299493088393981169997295156882758546645681159112199408354020925155950464427508965111494595768345529617112231393128420197037799714057368221150448470546306698963630241262739956446657909045001469413874940513252917461996781804493684442580990638396032853923337328809299648405584909485772045248812960901654450938394651528313864307146771134679555137843694338683430762544494097598409683337807478242526090414519028682621345062637305792836363407460155701660378921114106752316880562900989504746609492505438299626844193116912770927490965156109403020937180814745836095764496132095076062410534045841663563330201670842048672080137675374894346310398047057221495900465137517796837683491328850107596681765355243055290871095343005277290016646346939683688289454338841538934622279319224523700401876894354226931340814615615552878401980928422811928923904392287350960091240733444636376850357295996961367565102048125164058539369318080453410619343077206344058438597288330872717480407706061393833086314205018536477792424324618048452880749788794391897313552084108189433341961789453965444770324890098717183811969610403577188242537224377167641868159184619487669682631977326368857044431627748345264432064075355230263448503748012650342017652012481493396940381219216415054654544869406560571973581866992469984109292955851352767868264014021067311107512180049625700710068953652285973559507987354425343662076728911853680746590907168673285074105330719908465782187246583345027441983481451811497208502036574790926276075279922753813629045471664974644959040661837087150708553045054407674716731602191377609780462035085686156122785254082390616889127784360585344792009346430914310509261906513706924423941800417661025394398883781029680845373004955374965757883219848026715334651234583380861329221008290044258793031066320696982433879236620410048457128543905979469866779994817792801810576111398886933024175101881810225652174118933582072903716817296669432496006358726263231423798346522089976706952559027462090523199319993022113197362003669242026901135123258971645059635483709285383310839153594349234957665944615571768965019548332708500572927606350695862576520438561940551381729538899440158389922202441480210377095815762382427780078064844744221761125273890380590538983332473759607559549706036495031863666357098358216480447862564074733399136575931529158667282216580078686231959227273492281299616679026391100942837132030249656339749548203333058244176136665379962553888245386358778279369300426864069935049566778262973901501350124080794891700552169664406856113248536496117436647099690219865115774331236533727907470087043423704201737017790715638735884288408206095007127737855605647173379801606027478075812401651258149695154323319965437309221562484825388551517041840282490127287813155637965705545057777469127038140254283006007014670346106439795667629649427100299401811129517098896392772167031749463573371033704046789741370624225309878519984845855741739669799343568982398117748866743746332191277370916775845941974095132495859624485985868363297409848113172165722656265397831855601833854856632525166076869591576608082929689239904437708213263981013392572933047898782455197703310737115620494600415902252943037466424647662433218990129420947980268995780127678995135477021191801758459667085920622236913824788270647433298683262570768484851122893302031738833731316100187393851563476487711026143836658376617331541702073531345887160226980549019100201735349374146449572016273803653724491455981535799079710762100020783745928225415491616908917934436528504642937021325552456485245610370378693582395334009319138147004027972930570331882310172601988202153255257348015896441044098561526907036067449072978291767108543037149670284636068887564521941277391336375207661426807336527228317878007284005529793072292361373643495391353384488910325658649368138546231285409520834347581589792414783371964371450820665800322271473780645109145620759364916062838962121910777024594634726473022792328296496042703692588045621830598752268626467722791212419414361619975122480592384362147384975126667535422852190991225810880245187141217473823457914024705890456204012290438299681184274789745303317561826981121288197495662707744632859856535103603432714613233013327626500206027257846281833735263958226470870253479949201399287146882992977118213752020130307458279968134418700017623321336429817556903935964383107518624011990954123612464721166139610061822223809590675292602270440155259719678052298729777278857026616800950755995099737620608995179033544434384883297701021942659104490895241262376659740707751081358802030462457251937931309350327821599687766477326505424239249250622788631910384438373834842846862933546189376437334593779939209758896871073396731136940732848422832239573927310025526989659147140064612850610796434068920079789998426576558130509418699251489119767870465026502735461958454064266762022547169699923543265941586418713411295256051420291250725672671508219397773966317130737483620023640077231590248941288200810029014860610383386036687394514972872808133283252706647653874654787377590570535394327457843093536125869281108092490524136960086350315282914687077144405781053276881990878305425635891831155978114566615452924788190663358265546077422855036970836686040899127242656810222680527796025931196170954341081391738082999833930919045946121805486744326032071087369048034470159418395416908965853333711072498326732229356985406630888245806467838689556101192065038426129227220939931667582081269585376656343270032126231832865585962124391320065445014997673160684491857952136306847371869241435598620569677436823562715179338055419173034767942935032846020489789742238529340397752666666659850804056330265813043323629981065868426212005999487101947213717808542564277032135992189617111643258610885738893482938348916403270273846299183367860921692386570958456923083789289777578588060046187639863098339383876639940644013758718317475162441420743019898456414511226070235432781654858825646244779461521509795026270540313843554829710158492794243213161283059450997109687290197899737410816059203880230126681588137163323621201235672216761908072551390149333198187181400608973795445657035725074772844935476251593389806660811365002764474049347305740249502611496609785563463355127371521498551986407094018771668384038433911653868945511397654649261430125249126558344812635715179502385171935912592469598260339568392693708484867950603046330361577561015107079111025747387271278327818703112461215208175782366138126558242752399685145710408026843159574847701678623542088905921425665894290395666176142371920196070706054550042780083622970793835422887840081951826903986188852359044498245216559150175230563650586593249337353192655890652036685601567086810878914073493065813846207140375010694798630542705542266182785667344241197403442633170527973394650871368226615373552050690853435076173268903964456059201994803996210216626162312559284943794602601114397693551731134141305381636234564872320334442663172657481493357184849800770818027560323872313554653489309323028056400864133041440961705562772369204241155145331137085642218127892745796132789855030066835762710639453422190305285009299748567411728994566074105432447972393140659222416223682265239334062584572718784295002577645914144262904907783809089825970465819459612176803486287444406831027949999985157029439548666424866349522816842722444428721330320665354740000482940559722545383839472900173146588072096286082944097058675289067475099076606904615030831467838999157605211055893444554410361463369700803364271986406405631709989612183634212506397286572943238597931910513184539588252539862795726260124701769979910085602219703636607088227804333635361189598933999880546672555468481166984144550190011196631007874699656871933489973698310171112022238180886182125875772652972455741372463910905312791557569009602422419483749776584732350729492335647353752281364802453837089741224425510050292140922719631314407019905711426696025561210334893608185635649369241741491161810355216034280150118700087581686043417047351795035432766901050689038387402896447695075414263625440204087414481098859133567738787653509107844248703665869671732247225267393937998803736391596122275757857129338564684716431828100183591006847664483398166522365379830571849709396449935501682846018290051320248580385497013699410271594720893984997981542706843570415123498325238256604101629826452705199292419693766153931323612812833479125707744290975979094520824034133287626840656448434086826247586755116286689545343049310709383513435933035568800546917730211332328474354750322700149436635200358549478314753825152123458098272958708272087682427070447111440607277043237668329471794625043701546651294860721350675219971209731778622100690185021344525179034043620570234144795372697431532911150076919198389199092540233967429251118672052254495887971446122320187211188154258050497433271156742763307721897955077069572174320323065801057734495768006272732138544362460395776459111285534236535043814950015055427092854275825309902483272332670996118453365367297101131224833204470441932940169818194368125703333887185231263175579268930207612904540878496980583041958298887392437802347372258183983588699945452556117772681839987102412937444427515543542985602482997441510993941397086325518021650292410670429533829521191122327776101893433956224376273833870802635283010258657658892522729420423846366984781030089754893546775456764099767394644849921514645050978478253903872907608960368954787623127157563022950788237532314394295244590952756722078500338947321078614936899984954541548763413041663448449938028043412764570158509903382107886740935484556093182490150493411603719806937006921096323042523256241135702090653963045501477035543088048811933349885697858552290516401584579356931466899829372543753604952931068656086210437992589478403522091156155250870331497593812804585078670499629176476526820962831990468414442757713466817835079426367194707022452197688390185688588408565394233110033301423076987872954245655450014642931581807845408590817904192491280752918401005206030188423602765347950541525245824143603881695868468953602121538221308041651087966352976091968219855479367880523867906944554370779391245579416552430221916238547776403137951997864508181707845550663646849163391926763145493170532655136713441768069023491601960311539498063587255622306869235449192772809493230679550860839116753300648466562250124567969043929643971506644386740820648218570924696387983911161949698796292296333520906095655432591387229472066073266314760341055006174205644750954078359192745795224557625135619264703515782836919558989863311508843863732221078303857515552551359251397408546073887945743936337620373990456941168735860629301884962317421511223849810737106480385665517562601031291042537625289497616467552893646467394913390605755073725918256411456668244402060567021063647766545694482633144703392275557228269427973431633292197536328528552895434042396173958857674175806660194340674816002172411791547746980812984662390486144960881747966725737725026770569824506702570364824979861281656994642148894423628525431647893909168007591431736341643696858623489236296902871488932012609989891894628937284566161627789950035429500751422530649297732670190994587761127625712134378708502438660038464626651642597761617774008976755488327049904460632187001377117530941369250994503440136514857126893398252053212055827822979175708089991701124671081588621085668382786058745120910730644176616164100448956403307566350791760122146060795487691310520670356614094268392089674487646437247717637249430138581923666937118486024702790431437352646399118220704841817801548244640004393863932509623012603003572880952107490961455886319810490004936875915221004512859712617370487676712577013212675059363914931496100320035931723180388601546529693284908316978929175249991390675013650052939904739996316311722572307112266561804150638217290275386672055457037990964148831114735063824877264352173596947823801330396689428900405870929447282278908318729355980897466995101864706556258959085851832771199089522475332146926857489217583391444497847421058845616465976069637448784941238274452701497062254178996224416053300449489674952285416060840348405722730732635511691962318421126337183690571430572827521960076948195070422145777999396188296190413174565239709893474194605752794945421855863879559991906156056317919993819569950371180632516380270220881732212074419495242368379227748239248246652904665772180643896776995102809938466063630508171021486555803450099402078857864720321870697681584294958159354896857695658362323867720012805628130975956229840430511314485941587967465494865508175710618394267346639269047217281553034226432646136665972741303532310798195651779781058541997575916105442545328287611903509845272195520338421507874216616920574556010622206878379323715308901986254167487046337536763333919019497850518050953668598126999151712978381554554800839737055360031051624450282440215691854048740793505257508573207097019711052715717158931166429868324315081758147635154757514080498096787943818082594782201991296629906620441256075695068583223555717578648607989018495057895821822727092589077465639517219144364917105769825979451117589721966239721572461652822080497069340143796114531056563169119846270981699790200377029661131765788527976528434990817617045796659140056067833066187535191311990313170447390703240149784000502550053963595135392575935460817069708994946601992504923932330487869723694925858804976129947054347484883813905290822840510995722427680323799408803697769187726852019047645775470686843402147028792937377470324840781869170856552829998219921849980933188860674709128302614767855169236136504611670306525138195729925944038548102161180225212618837228899124863960999931471276530605229904823244829118809898819452833923767726576838449114846099168642371873035819554159966168728233308657707431244162664360300162447507584731172139564738174353747794303299274850735064385393040490967966983898335935813536271360474178452108621065328660477795519793639780156262291040596437546807884472819903039363710908846001153122973700615697651205622849841971382605558394144317952257569951662986647039905380859231686698698150793362104084342261765345731601781752441228562891759913316636698018745689342759577048376653429734927237609809940979009190678562120256439518588329380584780575812619613549132063470261199124311169461591567755855669809807674063272598713368734676102537194057572166976359024203482188832376991393780878572754413890545479482765703723788164104560894364534474180840431006559382056689870958472969768892144050348720898383538785047694319658226254985088339150240965492101426828494149101046275155890696836044500801033676440384075194637762510028239823950670301889653685774489063761296784163097584493203595632027027882021820352279949643501775430475983763643649274719356705301828014382268131774205968327258150312230596189084632432920776473331052069611447036258565322464473293285129106312204932233776246858279689626159980660959965452002848129454169909038389027386575240228808187893433154395856983271812094735248605291933710944501354072926734382286690499239929667628638092209638318094831299906371905085360371207803544787267883115467494431526957221655343135206486253164112007223580102163386962837013398905101789805737560672245412592912928317345718921554809511111037832304318985685625598303588721629412539582355949700566064536501918467133171423136712894709342907161964897691720590198977499357886739640255939972433798195607943373238242562280248021845030541888698175901029540323397007441488858197848895590524158683685994408590953253541563121421359480249568401535197177720003667900767110887519325122918065091606394999281248817763394495093200796494335674760855900096430401068840025723770130119452546424679189865166002785144793876155142142415448053952513099870705644321339759945654784759857866738933985076267873010757422718311217747372680920197749724455392772002834638788740412517364239229924781377486042184116693667138660629009145202359139487135095179207571822556847549491001590752781080207885094451439581396715978911526479962605184998083029037375280963514944190456905090813741204574010868360203242191292006234860434038169643332530378042828153590340505134828629202499590290464107374782776420427707590551486041916483900468927155001250449501242675233190602786873179767528153034493382931980612935908025071041582223331171113098508072688203525674109656776737002056774653460203239318311784396863469415364762537260590362181814356595722090305784894408547589839363847725853334534325894811536884529412878212503167891716679426609418424571594391982765507878551546693108838460404685113078508751320624873592164831889421023811894249079798775364592358053292226065796231906333978691038051605558797788366741521506856704702642622453341424454368268456468167796523290734600590436222016121452234789146823151435498956179085048941567737494044320170272032571321110777697819897413904352099669901641102200419843347500735172555539201963265354524531054860078745086807319067144280815185666466505032310403497496191508760711229073597715444711284602675349954533630992330353632529991206862671763017397958310445202298128509052688499497455389063905749124065406373749284679198345987773890278306608148339978240794092262677550831216359594795916694186283286517521778516069931182225939109471802533537828403259924217279108893032288646448234681140578061674063837445613053377278609465104734452841932043121691561268332555998061858606580253388983971571331609925982751128771229302100687738248695188097624328735674986759567535432742317072446496991281757720826402163995064971946383394507263501934773704651598314379156362751029940657201811871892479637181472338674832650671698716779568254032152851271105709403857005714417463787049651438940448457601152824286877938685818103127491324265992003003727134238590684133447109187616761166053392737611130404680257576926322835878317284928274399211355751678808613431967956824743087411593392964064383932854054366207879487522021153184984793197293608118615713950019900563687842604074393076504611931518375527993533285276552037196117659090043178091342080912052212969444073806444187196713849982383772263853518368146878954154999938030600975346805677673098958154921659784057428889891937240532807419288719767912613598856053719753954988493638670929386463822504340097865654801506533613241720505848210773925847692637102350946947021705021527037788720393893425839078224411703461193813040694304791539124009961501796959358037728197647094895299353992117469932657040268931757954007300993308769540997941749160345757068899899579198347552193345744715361357623030893042374063919748836425596860012207191644463721360990324096178871990934916137709417210431758975486053264749999695597712041841696224838041927307674875181394935035357662296046459117789198786471748219049290403574360725361168624460854755196691395442364867453670543581254457728768999194594107967011304775913206307297598340589673623899107295062086733827499424718255572458459316933642931988534828553453443827670595878871534846158114717870568195865451223760766745512702681259443469537093926655164059483610621024873548556531870338969056495684143557156772527112385422911380702846491480456325248750678136406846143969455738053681192770178783172664347555524895860825231438519873175171273315322639594258258222090766084836832944920190322990044430356650384174213193858320560940443019644084015311675593478104094182901011017243813604201590176386830883536250303835439559411420531103384634014767799742767057503316441446758224019782627351647689211791020656746679446363364620902184640409266729703241270992232087844404955819191052185235921562628612279280554141848972363551900390705122348558876408688724534335715150325205451764796514903750175253721642407591006589339140936596822037335412382650719307266880498848158633479712107831019958837151139192815622640397349657995697384856648290075626492026073360618498634808308240381009212426428859928660038661546648854054119154907939964677018626506325387798287682201992518756393585214303424982284025780334245397231226714322118453481293608512095395187399778622713089719179397017317165178885489586888605750492956946769585091347946249944311242110342785030713399391968054512245799445536838016659161628637350140704298069572345803762441374629303870551757613589480792675982853980544816893988711238915053246200056667309630049449718657509005297784467422592740440546634364514232661787468755731206283401585394336258480408559371230291491176614354327056111860258905664163679488861496949937638477510963307363142463863018652069013617423732973825533670481584401942415141837327461883149152916638004483995015632728645089226808568719137131506919103268328249849460493096321921316393697458288014274816886674579873947062710678829293632489393246074560864336324635011011950931323472728125259144884002745451148461824815336254453986675989302322232151718547129262035425259668714090599188240118376371763433632196392806833301233063906976054469751349638119128337180139776334073290709785904419668401547270232663445225114665880386422672465940981328956991014461310148893598531760205499997482342325042497960734172966667865875703394082982735887641172866875148706058785731174224737088723627803970621415441461672066437903055005192427868321918594375539660853312350065355217111632733367084849978759114349183154048868805291519430400650746789790903696465122435228746472250994169357885373106057297461766373433555881623911262291088493905638378779440746439010869773884433837504416480608005567591581898681747279519126256483881081220466499411532054081694408659527082539174151996883455949663887005385705060207857471493798766067654171080369574872524516484469634653054168745548637417865775164378125299983145507991125854252713080696253676142428807892610225731956056866616275964282551005188141417048529866162335339605183629707849358873825145943130014402472747672395120635942989774924781705807340398642704500067717308143585840429553680664242696673262241728640990357266774880005152980793964466142753139919668356848530084905051510694489335929313120835317783633042497018611649922844855968306400473719098828881628928026525076246382020098541186847906032734098267687540646526361210953583077240975088175514908298989778643093460470857273245631537981582784676807650068719786778014835680519630064820301085128286631390380278372497857034696408126677190289078972574293342891809322295074639281374458723075438626241626070504856232472492338591538147432732517865915148637291392346224292874625158729769646151057906329026998477327421857617177616163324300720536531524768924227188922725932799339833409832923265257323561453547584958659418206478265157943591564136593054096347120127991174458424924427584856644850736650524658119446001447456720530643242271487655452119620473219281976650006343115888209131486289277069128509441975333027374585397978828797329478529338335040226208018847160010981655690323652812043751727320784440997720177647695897975614900926649919562985705359491832504734013580423853736411634245603257549879133342757873053047091009454117712114911568362309138268639719455550184717620864299908738981419809423476764553186404488124048047483595672515081113936723944546508203051291906020197123473207557876135258219354702643574418412154912377818537425971221530549048770020235047616126206767735711215534152530742601900293262159482789311297281032525733940283915065521397075943898070889461362025125784614552849173485203291018319640046678192056506759038652532104459022143227552981951486268799348234622095827452552868723064795470081872538684689683398788426798241376033350522316922592093335147102989570895040622678496136294161905420697254870174059183710674628240229207871241191808094759230457077005007082105056754929094416128557992531314604528137814905330913947998231444443596438745307932221749477075183834610262708867896985976619101528393328277869118518510380575940391372992487323774654673288645947447488497675105395768982790081621318744502816476126256354154248644454199730988313300819351298476617461003905841281840568996417365956140478014612623707475223331593582186484946885069372427959700696459701092301317802120990128748079425275673192197822653408460794140894917529232280180101054070123540549358543108161281216838705673220746539570323063885542781763441728132183770531566648322102065376682792814252038401175934900586699048737060505025529771685971900952429120849489947491702264375017126007179567118241027863746665886706819977990414498084615069847513909206658139923372699058955403847384626506795311771048607962988040856078613058584579112184439791374145371339893916563872108158495265100743518981503422425065477344354788390786741817382075866493669692658153841240821287486505846543082372940332083495454565496860454857034564237647517113570013200145787099613046568654556268094172568204211513106054627577012308824855952591863531438056123161124200326914007310754351452224020828344423792685687100060354182179175150496553052979798903998310075912136857011120890907486795353143405607320514897913150978601815896567171563831943824394813095445945490470777045489519590901412593787634968203056692038118220236893787504271176654515309018484102773550386911988694635320688678606347192450042137178502476798710706355654688884294182922574526987764316366987564696858143122812045079347353163110129948404186125870574038487964144581986466417952427780846369379713808615617228097878797563007826211667631085166301633495086192021189114304285555324952523942095418846298152912101929446886237958313430274821160809577569418745695316643738328350048078149057065812128415048826502932319612314261770198157185353377032066013994001704990465041145425287865682218587156117308590012294943601852463561054019503563105824961217142078847748989034134201835491470435824768094866502538465775873640375571553833430814267999558222955199477781112418390803937611864633337881441574421659446113324581273589911103141948886051891232246014289837591901773536439808397194762273745255977695258266021258322691228312253870142478167981576742920969241629306491041763546842275868859751132339907045617937299228487582431494017797521789238035799748616594053811274890265230051988775191088291976578110672423777819383941115124545610702025443076245728414556378402135138043278686389516986064971164152171756830048207531176573214464605443458489469442760818363122485676494084770369250116189425352598859099972772059084148981663021965612815938282347838852274270586473835002699198711809538112772539617934748552644382368017274109723194667186359846354207709459026974785117769408532744203866150430195282918231251302086445517414646588283342185926105015038381209631448215515976464279382877390406812982990570683761073463424274735624420135495648381573732759559646293926718507726896914330342365135214244661444515882003248842034105734153763107736162027105306237039344812585969762525807360175610507364265084499020916336153118759180046321403996936962745702509133911836129789323734193688058060843549124021098568322718893053138258121241694974211676685568173311387332589645406667224681877687950243643827354908082109276967142636193760453843194786115724128797940447830359395079014889655306537641644471599152633301599392592504324683320948131206242941398778346509348308962151026908434120718325246149289536757173326919210241483462046371417812427380682823757587304520396797457158298658344304408074875023102309316802375079910289683762958226886743764886219121073006543425071005104029282608228183561849463419995122510123433885395216480188268535894470980745957276845693436063190882149260601517398157895678391102969715044078854556562572915280925363870090318504132819353294568153340402071760980796899501120658517554936007323779732919120282073850360887608927585527445819577348373422183873146572504714448618561091446349441607948104397988999402252895079344592836777438158953893704852659972376192510941867763400544854496803851007183541148969287849441847222735736417897353247125934287989948950284587886771569560890404677373328622592443146601425276370227043442551440202187200161925615276778478993335321137023852017934927107684628377223258607358416802257417171910274082473486272685387587374608190683123350724230573070151199598928518513187682484578966745799822790345364886736905677402966442636024854212933413525847221283604987792167385920249506457203747184633418834077702576452717133375084224814440377161016754877878743889605298910994661530165808160312843288312501910466234799982386016023241715568106302305225549898187287681434141368457971141340340602145156125045420439589292526142514428650573670027324024943110693911187049103092216852946642969701158422374684495721971686991617832933870894531086916970106977225020893654268957464186674419425473383085257609443109603778742507134656285242133575084448371075506699397346323348775502972380176330788347730671118808299223941912897990174818341069191424919020407085658151005714032708140176117607479330209386419220785152990852952555217490117467567823983729999995498090976350625342728403622210546581472161948047422277454755082562041167007119442677971526825244141176486423893598467241361989323888911807721760310369086253471973130087131779933071650843602449262950501794131803396864854826982928429332758847343816309997839867388613251378568787637854298673730785180382406395733876923812012863817297122742295773085560248670975489959246554318233597042909071892209314953219529785590509741337001667324516308749429699953191604733866212804041688983704470049128601229052895875931912553947617690123153061229304205818849640647413628927983058914079042162848886086555877304979100100010817390258143471151896072416995432392873670771445568345038552258291926124350292779657706975959808475821243848783272522631332536674055398685012942791713368505718948552609125388538732916719713686951515136353080190419574858998124590798845797018029391001821406853444150597004059772388305502236569588524674601851462177424742482607135629452305162255101433236263103415725008499324470219934701150563036885244570546365472065834901579004559763582925125834708818442833887762771798619013495742057864767757519654693880545636192412558220885738783969478974013973361651545249803009504952590731677870696011315103337077783868592819263285211084386433418750794724887369180367436706171367068416479241974009269599428322889862046209031174153071530889407155944281842640087952151116951773318743085238284750158359129770549424415359327458397541838723989101866674341854626485575236597493498633097755196559694574609855357746221646309682893773324243386575639854910310419840719159721105762770031481145924689341841470225382746488745300630136663432245008120609212885418835493961600381855758292178360887135504718029402991126443767891241805193868689988909555003030307180687441197638525823102640999899632407889531594778917935190208870198933602539774666640998350088206529008334023946544385140956304699751276256480125883419421477989284798719495497412881112921839515208961377883306167161603325409798485942554481902041091159807000465490023116619234500083854323974406461768250833091874647761694928215520492725754381296129503500815268687789443083828436902916084789455582049492132935692126882287284296527963516098667740417848060312039138091989973847693737306047173651297140850561869801292108892360336808580686032265394345494246835520721765928134981896332193330053182363314244773761369316708131039877774967196696298960843905492742023470037908269406866383537349612297655639489214099535856377620746136355971713533079147214793424753037705043815041499493704848138970621974127397486256212856120704933364133447211049180303239390699434189585723970756151303084456823056856343821179493844870853719713614819496683333601764904041288135142455388146955379293921898738983451772693332837448496015850109164955898810096984777581418373610646111396698413834703431680776571278483297479425000545339772840001893521140828023078252900768722926954981099215590758429391372839914863590202444021136676293261146456551788002551279485574242802582798490052387857671968332197825074606000324654455971730214575996781251798406977421109772507780589848140740823560162865369674196770535916770686496581262481988071281416608315083553257327601512734957293087170101674294252212248689842399268835374755264550311043447045263544435954340566794576379329592207138943371792460871086762382081631497819734683047765427807622725412825861559659180429285347505078501372865176161313374331528395544130003714385914319504810857384414170633381715079228830224075171606702245783232314359614532906168019315541294487335884464523853008280970269207558341646206480045426393297207417026404911843840683672432785367447677989491286362296340414920848143625489291720639868523902831145766220111617580659749773125433707672769740121962456743358601929566863665191560309175631620365669546594298996471521253360645968928103653415141444233859151276335819340191325239516115114970719346196016204719901398329550161314275276503327470437286102780421143398028539022272152132945257124570811332575074035374967064913460243101996566903547762498682933037227990540346945079966131794793512135929355752730446567902406028186863583092699875656501911900119983155052496685244465316289640649840758219086889590616743110637340083781586442205946801584079692746498203635505051876603256564214429982723339687583860070801815122914852009820758025570792666082301970249822582057653015948708811317587703235259719801295164924809700215315127070932314056322595920056359681269254660871438736574068689347890373368948263894316337122998915248020766147732891317999847040613165837662858832747698741927567463888985242179412517564414659709784492958480568853473453111001924187252437477159940248679816361701693645282419185359644257621015730121102106268836941867883366729319818580446449335451504782016933348485196922939498849371211375720228959165956669497267845963395235192073566567003730281286992630056246599092473028752324447854219989764463167601742076475115173988010423517274778850456577894148706589853663367861261246504332732286365846516440892651272611716354449716876333393392164723855468487005720186421951382712949737827717293294977360186824988686260080213504456148462102097481213740276882445439876345672221107480366125824075244859474339100708485983992993949698789496090360219652355936086067790464011643632404058372126599570172946278325727897610069272481114111939513539181576244770635520149536189526964353059875852143581991860931223997542986350969025179399164993677377153041143716882006701647033142541515779101928631974580469568416533176990123928419607370104549240415280282992909203632983922103168089431184356762522851820244603605938022602325942519570452020204788976055472669075424467903727238261839255623533518596795953783121987987499696345323761849942789389945971183866478685346579016819737353700865932651720476546524658880211363099694773555312659277089420378608609955431014159020767365708816223622517956645791038190180306436972454133245412408033271074693753223962484132406237356851394223131659585117726173447108519860631844690065330676892551842995088083124859142481048925523378429496065252657947672558931235937074146335468635460099789153165731671387448041781324847617272229957338769022067020736404969303349820445063821791926377422826665841759268850826623481227443267735142776175714070093084842798053092457576359666239246834251176636362094129898721882098410885113931391156669510511450234290108242749557235402131875429818099506940650663431578354852638223617429792239854583923866164983187587204854129964188831195140300112425207735235110124654196947005593994724435401019472273718368563658012766043502486964479514851920480575618878448501385461613505974229992090113900599535920376766818882850235471738037968262524989031332734675763254531540279326083972135682224531150830284907577431629819509283010811290634454333907534983597279334477440943751020755699039219167872073855505758269732600595062833853624943982381956473327030559963779319014532712648208710407092278011283330447787587143421171220934640019578906697978590225086488455711033166693630683194791523809415347826155184461811507904582603188497498098410525237938235618469116684275043995732798245432666828626642373492242564152316107881843140936343020367845458458279384849803681186278374864707841152629085445919489221071377450754089309835549561761618198356054198291317523642668350632156037188472440980818848255345734877868113763941722637575369057980731937563393927895387304457076022144499315338277984081973821242116203285501809007147013006590836156262982554427855117823684220266124826189256295809980625207279630854082256336614605857185245896277468475526567877877762215882493833452772235794937282794592135642432326345576348537025320847858623752175427788538998088396752767454473944520798044283333630758887474039882451784076909794099176944878895125093635022430104264973859621145546589798389283813312202102762101617356378486511092334126035876069882408783199384501842617242137123729762471843879699246265885446380705870291709847211559439820175394521087121064485547071406207585392258384693183502541233327925501718814142266937630338607974209134410519460628375211955923659906507220804514985106823469078155273328303374507151953991778594288585158370999650402697797611803555574166661673213687426128655140458930601826044390095072109892874431831175248551084911611230212749015004987447196531454841418262374538879365169756980198440463186113904481745232535700131878282577291030107049660023324564251648535194957858314348535689680299819492161110174144132921252363708378605046744032089730254820242782865530477182224054462861348270674001748031108623981961846122092504895467978427667529992577278233784070142577068205092714692406967404682619230347233024768145597125624148428105668286382509175513619287741288963613564813375609727421199829124657011264103866469238951431744724127189571756735864439982480037422795306908523416421953589839320505899509395684152304293699023156395295489400291202395236742089550752640947154767857510132779917621283215484519250976309825003377392512942985839346924444806902955133418351599523396756503361997559673743093585120588622750092922537273465627808389373270441121573788672040348565800092199788586480775590795752487238644736204122054160758883443698915763908697338058013200419678560136735176129184703331100368351640765832002548078021366377609823499570396274854865137491770090130149045396092398338258775813786040675003287337280534252824879747701384846607232296697593693505224163271966089087639335197705200395096015416211801746150307414042539573072996108839755310762263251191709444000935196276259195724955660196583477673685062829498982697613233723283812334096106292267235168767335538511812319944736712542862410536531780123570937557227736811202439825467711798052446033740090955380880282292831119205629199995485734817475577481059530525334513026802799440893337783469704368677221404179148961027266762383668916342134860224628834057641837593661040193146477953374977639718291131061861258700409905346431062876631850617278713408850661322458279354948433302176568854882198272881217899883803530442939003509649363386432948250040759180071392244243113728806749184081843134309967936800440202202007559631011155292633427203897782136583019498366340134626894226040068998648765880879895654455368418631503996312341713800842216361229503034296637597474985761924602302520247528729178668138734157601475661670039111426420933086744620546086788227905395052119373845654427038509472977907424866008240139446489468585887244695268305395099345477337803687031680480540157577238185000961524569513111336305513082641642229547444876697653605292873408287031740582962051472149370479699212580525464634101873115113157805997330308400521207950000636432664031953194125168295560074454834374335409924274990295333298701181596437864118755442387429135131766430618763681981177722558250612151317661281673071890625015929495911310268395297534263407352635882759056533194747911117377274740396656348721136556507355233444098255902518382282528240505080812283723328001353344808885912724742540984716752764267871913815497833559741273026084040279640217648891093955252258712577288091832409852498547969753396789139062236634023149667353047380774935507875059962053998512597679753806034714384313357934996043115535410051381979538337593814282226969841654969688903091542213291699147935648135957852188077809214385837557104536521639396352235939279473522150813384831802483713994801286355754184070935331724584547896815467806412138068958413853516288153121331853622983720542430737386185599023908295825417989990557622488148905812133837880879674220984089250998526978270283423171373841439709871510436244988264338770956399665366903933244191757546447958564388441125010383551946215399740063014914501090517344639556921225772619414079215172194824978593165750722225359725339339650379956596900542570657410465554194218104003138817394934136502266259964410295722015937250765532735831793627818577979095161967965364790597302061723344613695746666538616950374316462991659771260286280144508102451851032637191648278358165159422153418872814361759106045887072076049275472912997452547705917873482446893611848128882729419430406828105900000399895324671737864020057770133337735724830582520402949857971107973289072322746624745660863082125816491862270522468581453640739087052860577252845312167849762143143900286559893927012970506429659244916128851979425500726152170104089389968405627962674406049985287286780366011027775603346115192435438279571719695277667396233364239429207094898440444353118959257141304979220389480209984281411335281649688047502254401745882241544252582407624020953423925443571309508414849148134413031690585479647546783906601833074325062519832434364962380523333343075164732664051330904730699877459306780983091541227799137494531533061004498083574615923785360182464581888475443569767245725269843349900167662713821452081390608704187722367581826182382621416898497916470880822576449353055077629076147466195571618701928467569339367106819272142852657877450667451186895228931751125153182181866188860529633551272152997240720020851688020488880556574619158478541969563827798270715688713627829594020372431640551248916753553044148636598875378454145636110422052166676859664254581843965953458865294738132435641736483186733403294502814799550639729081808419422427402416908764801694739773243677500285226903119905692089303366624144446074328121691763809569556909296704781720844653424207752392694022652064764882859049204349024452975731709621524384730192530086325945429069201424437161246821133207998854894208492079940547009352875035468704837353766453590547797593483651983352417863776283975701802489627104533604798770845210228463034248045389960872386453221997498445264908365041300722569111468272305611716341922426659439331071056054770930243463135295709095915850657913414129452496525938225028262877324756986037499072869173429331721859202272520191753621567289253916245534175561398231999435272671043398956186772956112012851976449053194485827432567247228881203636688425823283418185415462706530583592336451207268039665329566239082012425247190512133372461704918622702811640171424406887455485000105410583760263564978550829257915211302875399780127958983513026846865884224318659266651503856757448467973225052610223990944295038676316177543916290667940439227116626040392938121715540664845068853563169470948277962498642663551805787271549141789320058620217080560648331619211643143665647605309535814703723234078956715749307990274125123015805225257348467270787755660456835855067416386927209362535389700158537748133834603609041827232564423773689173843772552864364101195675544471646642942846317964801340788855119216399505608479335759153346295850494946901208832531207636930646086874393258679772656693240429698452071226066386088452300772938127418196641910067767962723253359283575167118853879792185403167098653043336922251003556905051072796671300127944581670563769207696331646362439459080924375887880182140156593271975410584192928504896933197088399590725633470622335182696751047519225906342838653761123999512026737567443754947093011092590691023440427802437656228814370910072437161166630713873423340123586436508778733872051176360577987094144232798564334673467809564200843116992790902515484080778892211138862775914423046630093338162879575232261493089594255839678981163039290305656560928376748351379702386777426095743199260394953877306085523593986564829998566950095032670325818608793682183641578719485156288392795583679798378296334598838745685531770896812807626393272039465145494637558612362453965820842932479124904943320294943526139145054195307280464962581411585715767403069451280596051706370285575520307960716591426279613971433380711422031445082795700155843300447167510794541328765599950582744377083095573473147535585180835430120500944038398109571418562722074599228539968173244045419715723848081651934241972007189018591142761882726213448649498831459056922625960707906090832725090680164743723161986316387113463242688538848012947963602139112310299317134745042314679453647977281820337867281574033880770284896394309979957580431838728323330467028115447639535916078081083434598391077507053353965520557137650010577579339940875511708176518976057786358080940863804743477018071954526063861891320244283875228920074432272791209042352384943975256974749198440886534827807490670010895032424551717937773247722890864077763377888902106929756859604941889640064595590967015019556278413567027236697212789685825411682112938690187668064055760556416834909209574239066940692321060163284044327461197860599932754272920024071855771307086598190271173002777235863436727445073286347331337804850840569126832728092398345392867319222592024447270865314150611602472575407270289214775561139705654015873534958587947370478729517407214064429487283293601672719286190720158850977780865796501935648996689812622474591036912234338564420199883697012219358654913279990469209160949684262503511451545133465199769799425242055927508900329909658929165834313014565077684427531937600524328932385425634891064966325565603995879096610038382374656044779724760309904821217799645517685898533232002896982880762180279773856989245103707984816953492444510436386616179348411858795330619034983289952111384474999270096447241210747329745818963069000498253294577952854976165730125016496198057773029864937390709571666848772999525108709079274247552209743562559202021425287692299021748716629984852821174127839156651501518600737395920267823844603764327328909621258639884496933217417212242415034765765103920843195401016422157002573510976341009047849722794806463067628593709550848403333471658067328655899361339186635185183949308116214257131407419776809576758597320605369966494290490113473830110810266710089573428468230818862278761962337223649363024840494852228748569830387054621703964777125559138130142239175883767449355635907425366764574328671606206414918766731870799903754788166195486712012007961048021249106313101864375819484688012174162106212969074923315030672443747814482577995113677763723630819986728023340433697588439824090744963681744848734023768814009704713629899225763787227827214985499304537593159966429380395142361021010332666617797670216604786214860373906741988235748799186032622440576338587184428875155423909031365104362487697702932138993425347320453684120569112241439206972993248740297849232063220564266714231671342848306085084388968815785112577200928877538576867433797363073429051413178123051029935349011093415005730881935688461288239867461749443649859337150057271842908770308602736955169225654868112507686193290817219114349256158269601738321251242150396441262823952036780327706068692558088846999219511972413886641415278400292590296738256700039157462440997177469195990352656279247354292587709009560920120569713516480631026096302731898123689202549326407466526416306765034098138426135887108537853509904860068458230063173751760704867693759232273996177581095389612453680051221818314822660939008590080595130728297427342263231982225656809370847193551929913687373674926751016486880044580502007416079387660863918387055910065071522886220076209326402713388738592363852886766678332207993901578377183351009775781754291579831032679179864334094602601021046060240777168150103949724589095547373281798292714801465441858601560137876829406980554144159561135953592658743434785499611690473514118879987739865688514006210458509901048399924356567458531455678024071553543961323723395592446156126379060959066648953055512083322018074430211933790542356248912498580983709562796453905643750668883819431836832215178082065109789383758453664057939128560296204164076254169703189655269756467866001784038200372931854261508509706718239437202109584762761018397426694621773546543419441381420154963921838563570916299389128420663600997862975562796492876918354727080383855851300421683364514210086067431200717953477120509632657041306530779600775333820115505304856846193931514146161131265889819961603790464930814394606876355640411402827940821031279400589438941629973453156679279440451695269722736609381519940116861575586897811024936584550971319244055839959793940741422224577173114564740650779901651964238025733666043075863667735913799903588920898976069757289232902441786101723787453841566122588252629053613439327121560108357218807635131923570666634128849453518736286737581045134954423789786552134520809491779353400305552472893063826848831232040748070940205123177948310923430499494896554384798216839302112912496333274855338603999267812065138861986647302683998847350532826574818232425726254879896453029431707920780211828894914469755292298589045641373119659898715934004767018331164743704650206877525550561555649684140860045256846217721029636082667589765168500482216548837882555694886370516958117060598517235671035397565915668561010426162518342828700973731331928310674704976395259503844446306077848163705279618680656058530130347344923290274291983906974489876466333300488842468409704643678375985390608315406276985535118753274297375168284375924077498474233560159361292268382345027270799734070278927223514859016742909562866794751625069529155703246210444419030289400944012726938311135533726771039580722335389668033341046343906744487735310693734199773497453524890658054769934154392429817127491660715672896564822095427254970331266071670679502331169043140576262179751345819139609777043634465021086633634091126747529450527074206840224333082944563476865662047278540521229160322454836659415578384140729105035833642233801739157104949838406800753982715425117889620163442933315635800531931027020347337164902491909840370256453653857848258888426854984867746957161422759820751741262641115257680853369155221372133456735925139432552517210097091313377352400651212847064806873789800729151500821719013113782742743197799348289810678586289231492763154753937334868715465185815148101307755507759714082360886351587693160519721036327949259931374186831419510461213457254725328958526367113523740471242753003632547193010809005513861615430152090524799336152796748913032807394535586860015240777837876278311083327541802361607374161580560545665594007418304829164967970886351304512094305157424488398941233989866009839897239546532423392187124418447926258813128572362962063338205730513493119371378484428052077537088599433997877049511791405620914531199588433176557621452743600696905702833124570773403219807975597430231044855699989104647388220400103125762119323818202383366887888690001468737454634624277193112119230163088277602082681297797988507518253183756252033314097014312452215948562607166132449944553501571633766927730733433938224591783092628315625613687648858861372355562750575442123074019601330650847915464620743681671581593929140948600703397662894732728738205115833376675923439299032419449615536355291417850925928034602013188318453058843353541645203363327780366737820212562859723729079446546258205700955738300789242198803909578304029690547270037809545097043846987176806112110925091264052162377420148916506145053627680321254846752653351295786166450171988244825096887462691264590423422196320190608304240483161595111117568297501038792179607535070566886927450220684889130513165804116429631005514059367646473795428469136989833990535062260301288199171585223992304308836065556760312542534774178067969528553910708430377664547975751986655543763262111233008340450972014781725830144078186924838488649743031356092823671066647358351958771278273203555892098433622474173494731562506816151639577723449175742464268047421957410482046510824998170748933991537060654169174935250506640601194061187860848783311838623612549690757168250298550653129344218751899224931873993533226123221422086008427992973323794216955372556583525981859716071088370666419849090452631181653600846780136481437931477804982094613392510738722410929599414980913120184045464755276541893647005060813384512679574403246450855159016764867654095399397626116917813621300891289538522677721274937909662959781668580987749203046537929405510874164319467766932085691531068486966975286337798069044436867739472106754484667514871953713227724833425401056388296421283450840238648035566683740890224636817257873938846677104912223117972118065106870156001924513905519628446480133491444217556201975489459820634663503152477918287921556751199817755023668673681556539591576233017447625568360724369143764889771367146230208454476761600637650017685910266323677633855507639073490587288988904676276743929545508581941095203931586194172144880207285748147917760344927596439365615761087342878235979646397908118183911112504152348610682515404012224934119704969773363615671547770015694472617884835651727158622481227279854800910178653713594787684758263351327379890248695337009676305879073186077575117239061573265623846800328183631228196933195114605802727177647827812882364833845904002908414404344496989390821547442896488391817187473457598462543742201414221990186393333380821611861332123245391243757033279167539019772273703812431907128178523871896971641023272465632265898164303719176712331235996397464296839113057864645720795320855959059934485983463133262667217542001040501947668542255252183942120822732348399520463427900539530084615407495219781233907277106740144012905500173140550259252139657043648933643637891637963089017587649186250093396717723041697624748567204823733912671188650906234727348935767400372811308692171756648921837619601771554419944801761181673726699884790426480411276127062779152594963887961835733842085439367367975329553160678798488670615721682263855281033239992124158326944811321995300294783339463146966281600976158233954737976756924187076283827450591717299208971526634023244903679964597897916446621723347713537677406117234883816892103201118263606098381875478532059248675177818732206609553662211255871496581833075946766866371585471152405904076662914142190090185046847727622686484962598996268912813497350716177380330763779946270278703082199896313345265139112449085650385104794285290020154827534289437161955090727601922610184682221657817581847083551715236772461795574945332011969314702134841882889537454157288468030796349699683971897173730900558245657268461955183259278286129693632287447521677215513758113639205762355047107689918360564152250623828720923688348349916206659475689201140922995989958237232920098697207793419236254016470265390070334476618531807064943330828379882486374103067953854757168564890371664607275734147270269273771527245171212199769416403890236512055124918625762491411355460530898916735255975126933790502025452551527515671727812641000321421616637264285560259348355494864558961125233938842868931974629158691019967975860706700676158859850139983720210045586661956224573573013076941580936281862782080091981074171101623089804797145111302819309822755025819862591268109334713811347238825685842656531915081227742608911434578800334845705269319079008951334628734028989975208312082769473116259964225267780926893774261812086922218208798280123953714771315191619181034583359046318523781316357534834792213532982436283668580304716215510617969753909316211849457245705752856415201880723843217005101888956634834600949344430267791287243989486937881465412457056669035883259759298284371098844302008777518179828524369620244031177392077555622965122497455891661611209810578046594656953119561685340468549971386102288191863349517539262777939538040357680543542212312909975931299040661345524216555363005969355681651763484417718705746007006424411875426825582231980156069774339185838058598930749073226178711160459207962374319880104971893131315251525196561269977126700803393046011276978162718953554397640087721550944960258570542268521353717656722707216904300520546482360688711200637946900811511493861756613567154848493699828307397941039942260378527199124224407081114504994720778935988492679309895031478137403412821976512178976426365925842155803312711443853973310898879494216688919188075691829476131312336457951428015236075647297307455987374590284267891961816117614654462890071326990339484790737861899353671791402668627008398843089707399862027716571668293234152712756783856761626204225004839204962861749293763968193016842024258111328024255439124360309390998432729892997514968353440284670718397301497938374724252580053096892277972381087750812522557704348003793931852797704342838777910046370625441940605698956999376630508977283161960485939610318606992076760202505877281825228048592428451138131410707746976857218591734872829282334815689557747351546879848041170417505379812951473731216376945178548625123660977382098664387835928266523230882820967384827367105087033925433381923271563962574992463813276461342994925446907985103860229340598656966320681928679115391906510329984402556834826416004343548550467511499422334838151273315325829390379336625951639706949985751850583492131206469531538284617977282750301980388295113309556013457604996988594961488944451750699436980452189174360729623915121778381536035370435600230036882480853825696131031577826493925409223034549886823164486961108974953901272210818314734135825747047879933589336953667927268128274338057025057996599852380785433155918378454259957618193455186840745754427576493822550766875732560137252753495036666197889696139208748765170507560514304711920849139520953699016210242484786357291576266649018322015003805802169221895237110832512311415530759329574010884837994160080242591809208131575786367023484336477909776544622261594410997231379972475870484064699603738828679564375803301973349329299075445981896960210128584865436173439999869092993352014554254039163277957719368488241086847233234323770517761656431813185551726473339129693023003384196393498718655828200377972901363866696091389401635606453608807756089990817669372658213706818062248592025956772535594339637194006958355950042213823178982806874445597771330371305379087033124494942408457888311257720447524865057442502221903081591717862530565013053637462165575508276039690367690086205133488627750076733589036991832325115780680701208516610551524742721129847034581691364375049186857394229008118850837040874562772093395778897726901553002174997359068411297506102257318053645921762225553595501336077465686214922447759055192103890531876310588797768479184746354371936979168711039328588742871089119946819618685891672591051986133856884737196480188537957540983422297656323879430027273312460559076584624591274996748073482650246517105462883053250752346615425508424006013967493867393356535706687305805726529651382045049461017608134462261473044650555208209238149952909447547883523281186276225004465927274203276786244416397396452285060121156319812569347760751707800232350239471022444779396453894574292157215984217621726620111373472596053515239856079277943204607977254146184576374179216454106887603668349722126017549750206052441631274229777583100372291164830134354360916445014432041751186789090592716100418222113146071546396658088215296106269642979203239302079933303022485010934252922281970529775229735240460048157196380910591170255158659273524980344899407307171612856106082012277117938675979105927100300108554333258451589341825993485469990371191068611493202315478679760652979440122723771353717321393743377595897565583306755728673709371741604322320544042784491570800275826752150892920180742046274367182285466449903698272665287756958979269228591449201945273167589966959307693949748228510232810310097044264540581218639020578718644088160471336938419035848416718673366309968503856925605741282784088870568797288489862281701864772674399795698732471836476546701531894936046766287580941906257013168809457499035465506045749010591740452148424463459057710344361461089445704477263406368187134195883036266294547289653498872482682259274121663144667672963212237690423832773342467659999019137991307168868168695647304783817936807224235486700266141420358793425865088008329184702517893652209171439048509859535323231742854504914154738269107515462362922661384333543681482578156286351647762613247467285592422784153589082435695147391102104864899333593900576590850420650947043758115851985397183701792956924916359210880270462057246590913307202769756391573245297696198792297744234695475809011825784475940039560345760361187472064515967327462116811082090654515028950846882578083938360288349039999299373108079547036203525072469375792486382356785456603279883239239538110281494268586936477472030891202959580250200285851534296334304601097395349875848288517917208082163605192267388306704510271731972161091179867992509802422491961714329002963521997965967798926129034497883437897388286404066285827809305060654712321422892701627585875360358252274975897015986751770655274092941901564485887082592563268348023135250979576759195037547862139272218265854667237237829529211995425952369586072756559226561509497617405110225336943983414781959485075925749288867048344844529640964805091056598743585648593164402601804570765830752141278646845512920458968555030314799764658869514273735543763476847134068842950442231670218337557307549058655516450216472248296972700419517089606350937114899941271282024364043158434915329178563133952465532637889709555415798949781374795896071564816037566146594728164538209036170678175160559637090347378857179549548500504275495852379220331886028006090914316759626638677489688084949160501795765553223436626099549852913459566012808888394602701497272300064418149787679779908564387333925855656690848128441925039853602294523102011158490856125741141145930180974046107553985882303753062651618196085455435281608629189168101645966064936157018519418865081659961243988491517896380547338070761904794526483739878248823443598440650340307706066734534674449842891415389897034749531307181403278391589291693888899748064829916280855087962943631163989343128030192764079361754880011948017359082908693775907803961168914193030352810000536317518037608701373184198358584503145836801893916053799371193740501134142170748050070821084910870430718280671169220251983746034145083508192083173191030695237875773761853678291159867712946481458512016449202379676514508406855301595227996722155593457931243721119621977338602760318023182269484795882331452398019746645379535755535050836051506971638715758479248753823470650442091358641474373441511229412375357923931762080269516759093747266755031077868894488466035915366747011298319936749951670914817756660731835155141571737515205203882115822717378381807615714326228369190467355176028018755955622780811757146933323766188442577129254857805568128906754521363793625928168706544799098637102027759818232745791202212745634340742949445291120675426027742114693913003661971371067177845412521116619066354926659258001337098502220687188233579209318812006727062737431516656562682470625054570126050379178508508337317111087956741338906377685630275496191513454780059547096110346630848970886435376839259880519582179209206696664643212326479188558439598217370908997469334583476953973729437636176217241542674469378350885318384125266189710445383580515692031531786658769337178335473650914976669309767868074843503834053402068834821952547062128944458126870095832794698128087969653040397010489832187076019073867631683100490657708538419141702757292218226674858531357380882126399627994167151112137377602289135441240707632834519481083127668207767002418921528437533163440485464354982292250035130676264588341483190115532903546068892829136186209960288805240051945340499872306089727108455330347673612064111054593084114239803076197796338090793403903833873116955505338029772878751972126449160088891808549739202038313480548825530819347671251101830186708057139754965477711783120886303038597985802803505080082398040699437221813326788857051323476356296428497536974834186393969866879499298626341722303069883840274759659081241861134216219672448820816825253115035866953363998203838424697090551809362073975824537044968710306162899980971542853505077610093636114733506200544043389735882622279860556108321924985402076171460804805931449950741099310625384428967785441554690019920571521068333742692936257284243588348235391848128105455787763984142956464323032338967256624533806354203627983545791101309896406968148167739741676638286932701398734583918389362788485362277034649207420932917073968438718658451590115522905735655538969665685290532173963265554504767388915609299977779947753814371618641137462223737550495413419179706496774994323808559082900378534642591928485418574106895453816833035235015094844014584862868586588911635461828463771637623421124749757903744023399926563666284123286035424978500282279560135733611106904778138744314664161963526466614522424392614951047967644911916039062824926695199233751314302401744960690908270658830743655547178431026534113543922176747372470283352579238808045814028525093540656066642034837583652521625084839835472234884937413289141807194171392519279418976324206044901383263902767803880762173527125965720052148750469394752169558988910329649484824252690816694269072577432271803546525167518748153765203180413054795297443180801456662358117915929047465768863874124044661610963678854205919576797578511035679147587597282221969542607651007633470047045225350141603625605455647790855742843876382549079222092407058096870122017345928762428019297920785629196220169077623780472298483514691428705543485999658481776903959715440546215974483566910959871286157879338598968608747799468450502152286072210638275336134387734980646123503979376446917358411153746807385648771399518910097677529691586536953934751845878782264643926412156986754723187803736953647310074304454660918285597616492687671645567005235557226239828540034018936095595600790298251545376944024195197596359960706440133670017511920592358555555981602804847114572476249246494551135073852763835435418728131420883168343155485244996264476770320522194853795683126027209932757845331273910047089924379903352852760414384532930759291974079056223822693493111118759641384529277203931586856591387054557048101423160873836216980882792481732559375888291766180376343919766151548299468461602997926724264228196984388669906457609257482249936075799870625483213465533637557567256969618623373192289887365354840589240985623370822581427228364248745368831173393777184847054305903181499224259382346133614060750569042172870478428875942186559250308618641989339444735238064361555149655812975226411194103377733365089547949704511097076239884033203324550622781684567636536157127515633811043181495018473851115925797625209804437625005446406541866808275121111413924907488752347776753210132768761197921816273192068475296682340121491701161923415075109926567886934708450692834123030042084535374987949305904583024387725286458774748793760521005100857018488711748066325138399110665428664860036526742407896331951074896605383723716348733140346650392081401898308302669589871299412931128382986822240433060789697298552654958316184766199661750374807004271680907768776876769343043086148334550520905736362134975995501214554878731569001316791703416127803914273167382922232604491161524923550720274213063908439507555620187235131902100618974132040883488404722958631527856837315468014469070184679474318719778654056204475999636619543387206626062176039778240723626250436028635164736088289817470539822800670748045479937346185921761849150878622810962178408961148429249237392619536877820725255115778621673116329100318594664480031078255681265690993784387911534342791692409949283366751348522919325784362892175770378190294110431815115285919754024279602338233948007349120169372261973154290432088558521174907412737890673382211084229042768071657731139598925486332822685017061536633543004509747994622986714849782643548798559866943887258402785629945001289476030785766359861796843724113595111105275317943861130815763719623583524303585707816340476811919558968669761299376343596450038260961517410427172243076303231517234660236072307177447038776136091404235781048714540660908846816467884138236348995436118284572279978592651393184928609958825642475937952026308063548546032319638401717507352517331574793128481009383306538714210617261557163305713635971734270068452615900115130324961479869300696124182191703343789181735414034516963130269774858698531315219943278810034020753715388822934208670820852487706182442249785653467025641489376747710686046471794783914118724001336733898505741387963673045928472759017235650494511478878705292985900664585206833990159798351370771328927271441391897570051018698047872586668356646587895899775652214189230732221394245413717236083288947661200060020330328323011215843890624393660791237740241138993580139213276946922467865149707559571300697538750137223472941489112379223946834346296243487156713206608096656879020459731883796278277017784813445532115426608951893163286896866496108711427939816594689542832410490681509309470210526326705449947924589266279403889230943607118335698487853812798649132742118639809822769528303237052471981902983793374361025800230186373181795706873485564633010763905440828433947532038009228280242693113388625119267424898899256576073548074467281728844249450609996403005688330580598935954608380164988161018251809729158607503138643741189906027330493005653294370245839636495910000569331431438952227763734580900819378033414509289035956201233407962940806932453186926195406284910859220652015578928954030403559642517687819001734121740655837512290404197902629473905463299317229106700813809932083274264941170502039237041617381885618724975319152942380742268582141411687981944824384730381768810729652875959255856969629442547683877910182481585692846512651007639746896496405205279927157668493198261751916868598650131683434652111870377738725879760569912967545310203908573833542185005411076259362730267370665852431368430412536487888562690097667275686116305999523653278056463082491657361889795643349414317669338201665507411429766947384665667222864800543717208793849251514706964803866159503751974071820799253707950419949743169862783990984274678266378965722762467779881269974864165227632031187480719898076365272536478346029755804324314509464392475699466779600727886726348096228557520549993825449818542181388596976925782476089741738492779991970354189393529126634144711107328996400201304539369282608759088051874232082083558091719425622770938087368308494642327948163408806541254366517732444647443802195205970557037966174210406848452742391193465415072988600743128180938181130379297906357866402840971895548941554828647045414126658118571663389506069979109885273954285200026611028002061566188707068926482817118327181709013948388416151121808012085366136812361416859397580535567249366718255183319343679610110163692068790908944801920075547733541658158801908823213402991955492016732805074010549231633673650874429418921504010843036667265081820912182886771930312943703469371355540804486107950983929583140225042310446704278301395837103823676262445844811524884321735532469379573334453121994769862021966228269686065474956805831179095418691254471710801154818768846001669426350888296594009083726010583067903107058668750080335091329484572618233432315008915537034160491818214074152252818977213128077086385886399350448073151321690840859558556921207076657329366825399258806867526339173873833715968948635671553888786665927186358999808259193639863233465427569028525660910996603668516373644892143908777682372307974779477694273114530601648466273843859034904502038197016146535787580674227963556063016019938459713099688311720345302032850200060039002405075324821604216140605025283942102250455330685135901406023267495362632759090157219571778988409368120688184012590531285143545481724010736203785265180471887244147193367534737162727675504546528972421860179529412720366245074976484941813828955915945527969223223066390737548128293783544380398294547867129716619166254358762767001066991968912986568880706323291443089823813203543348505636139108072018615259724615857279256007651941541106982159382493151025693803226074450371747220238997978382529975702807295743987964695474227702988609287241743022700608886073957033820991988580546483515234876150188933976390682825438165398920768750528467882087002707299568654140358019242353341338824537583723952975929418500127385526802026771426821579155495436904146031057589407844549480964578752587404176509800018558376914159692912368978242524509718007395191575411898763258751516079023241125937741305014795768363673051326268456255902893770055627042065527006104137009735615451384519091349593595900309225931926362409212083584624581222871135967629609728145895842808849662840594008059086249500208144543546698432380679024290108158283138256694763514089890065850311882444394436695830219307897522846947738525335122472801312496859279825697828284358703096085238632597733134122270354512577240435103239970525536738051130045602511395247681205162098556807052166344358079252254736419513705598109695881540441383305013338948099679674146861791904525039261108945532805804933260222298790968936143670420593597412308824491262122036141281791296380456718175868790241650951156357963859710389667098838556949954747122210190246201430126922809771741859881930903037412009698524521671844752059917407850923045220752691242487455503295384202236325669156610685582356772612537326626977281650298040485105655288357567490095172046003576257039678893263052190148852694242664598893561439522382012688449491833670099342205273082478698905224929771984265126521801639345486425895055256448536202711733326914335293574722432057035475808036002432926288819744821208546080283371987951298668201697969496651009659833303556996787515673823106430238376343849287530390241668789968075715685272862370730517691373878896018324494953942940467010876146161380327100317469273436076519395416723153346777787189064598083360594757442899719966909659760438408105143077947650040877818690368533758046875444456475752023411613147871431560773468370987302966065450963744642455359454177692273078179123783990948331608136092339886472155559564271961860184234442544444061677721405745061873213676787843639284237250292254158055634286449245795248606295483418605084726341401133834499286818544931283501833663770538999088281860830597226074510144158369432702860204280858680609286303194866826997919887648125690054268210761784806199001055601458403198019324627312291440366559715068205176425774047693413954669176686351809581129817129777760451671182942017398128586309488900473422730185808038587869631807012345708711701519347542718852625275463393888428434014157171027082531310688997295845559268519252714103397616820251863072312168769454847700429300916738927293341390098428637349961805552300104012455999925155026744976088058457686992267382465526945794257689634291478352228653808257714300335988266261540584051499234259190017733167384543619048513323294052212136107072005068116440513054125705213406605753914707466325226897488244790164330163838452806494711642808799226230439630885782498350404057121208518027683293229538691690686184975409463244843191452664508868154888106728311611959384092764874762011919195578248057663800163298256958094461108233555944119491968249337069047959850658173120490414552326277197597829456015977914236603838928626581173608422543539766123855578867766923019834877634940396464144945010100998689060980894168243309942934879153467016387532728216227173730313652492517557590726976472834930275557130694273600893589883617217244300260039637479028189517996775878994260978326146660985821165159183097768603656426336009703503145748581588378658340298728523123153274282288795595508461384132763983442186485743686433067117206000003076865046987787472808451783901091144169940295269685214553373468397187188868059446067366432001482681482816213222631078005247961384543605648399740514660893400391145590820465534213039641759614332350920015922933253936017323737768565256192632139022025101331759134689803977662672726806421567976753113764331006111034690484599112113659617357177464267178343226677210641274853609332815213905537745385176644600846917815779772835875526019054066591249601794909365188748675074137527038676727797677174025052415209204728724788878086827961388719854454274276097431089726681195541707104474584835900023819532008420480886320077816669031116712550800361161266735107785825630557593306668559753741384582245970122822524168137671106032995349418993153360192057367352236651033593850624505506733967579228560598816336034961940503699218654665542410685194899506507550019983495186117755257443994409307776056660050999702382733362309472296417694734056792929516411991597585324651220923564023695784440156339704150412241595217460602732642471499011984522742784774145075005003354419900553484145455623680596213250471445087875049325154379961068678544592621560207860220472458291826492241286953379444992961472784166909956324648839970984610393936738139313006128106500211855809160169697184784928380399423873724346747543405890970619943431817026013936986596323768062903257730973453961348269570896528827407432905353936259690104047908998300919067425903356179005391638339698350104705897472232416700368388105278302328207949320444110362178066936249546298221640099693021565893945678008071947310158876691136834807933572833709670568123336303417155302969101405436905193699344114349903983171206511229598769867779555718027703589670191250221160734163059238868933272036488301434359515382338262395347875856861494779426993267380637767860382215812361178330935487472003886379047848551340766450539786460403069959711042403506918927412735468642354151128791241788468604213551700928245409693934506623867746003221916685985266294689166121262493666742091933699775485355374975391141625514688035016062502590264463401546986972986664489634023689218695569209223736015208151988672205496719604551186925357135070137088031636022604062833998791136085209080280265932122235899582174684393722440897225640868314934136296214526871649017598469580525890572517365301786982764508603484904541077239436696763241103051630940942522032102427691154733858419846927307880461538045718283868037620086821709657477878413800382232540008113733044672838287827345780969961506468361750782805583825614444446959189952011461200356977720504026672619714934033855891214981151391821644109715405915873955541776414997530903877668382262062649103474438698593907969573117931179607231433319137594311847148989913039562599166595480016794134792497429035358273298244841364205459947246921072424021761695341254250879630431822177212519990467594416355136668214450453454282681175439521700481841931045938130636515701398938647126316693861626228784072386231828860110153791046648288778031731127738501025243614826284453083347682566150007952423688740700474147721726097183004763703041239320511531820534716326084460189035293480776436205316430534633248224289445592501209813826891958780136601265400338703328847596109774003334963907044742090380180649685668316490501734559401413623656011638624549572695643303475460950268813314215136360811354438542183110385113737434955519128137580507295246000058087297710070430928384650682037700583231620264211462162367016271873445921600431526657576659475843149759450545869595501429518292152726285644166113830569033458875309388481608721168300977755761732503816476489994379387221771107533943528491510936805459775946831080125845242486182936752271823722805842786098356772876030234232436352763675666170922483069581887361488894699084931796564415716382609841866921128971108048852643033981893110961749212211390374014804691328255361295758709304835422176405339471014546803159161917198279862210276955230686864348142022185532352742845755018251215735504795460633494427796522619633156753025849149499401026429093802233897834221485335498824059854673821940777173556606846452389804714895919998225609635831644980389157903755088819986515380107944564091705969322784611335562180272290210049171195039761656842685295351501971515287997882910131926181000089418879038228789494129338688307822944596083601036892973026511290403614547300992660302571582776537459631613225239452210680172920806809005560340566836482768957986232448472139431676935344305614460766817006315041603793574955858948782729520566788534804711417199646177990647232939416857310462083512383506871587043632902328732142811630962051396935264530412149697906942555403627099926209420355005487531591256096745172738255114789973113895075823427033504558450557202049951315667390333460163077337835150486537522216577096560181429739237829047519463670303469099488089681486440213389501603739228667172296346890486558801403553537597767301135730146556917981074157543137053491834000244290261157774290742895464324191362847408675636699263323810252411948987158811640985602088130925160596296368906943168336138935354901383681591484351356877455739844553124547704057263144200479520897803371532005626885212155208965363835655703277795988988341092909936684331747328134932135991895873779959300514274210802734109563084588400543240196476700011372733689959615411976597073571303195037684665261195194151457226954253261066369075819204061043251976635884331086683271042922542642353375997817986091631261773031008819397740495416935176628640808557906885461948361093967132104334581390552576830227026311664259812660291816961479484789129736434516679705252525991535205505134566209237771792114798648967764273459780320800524681846551938085477209390162643860059417221402672866565419940240112600321403564573779400683024571408893412864460490736373921825975556645557338332993120537685810610918359771821359354956353461523427031211401158175056702258373588098733980605273683888345615383864247586118978603210469369385731978799465347211298833576046912583780156423747678123087087303071032849929326880157328908883480557748707084210903462980551298901710531618946455179693943592860290024789879308664224821519059666801716720988578027981580631330617612099560224273547527515115349708734234745658232742145768104702980660491537280362901502267334626482878397307464125548052816955579814629505610895386148840689672788100989292267445978159083255109893896530749925848482414002530375204878799183688306229795299179524369690029337070009786925055760605331452832401883633118997950762283989859482435038135536764453017839364079097429952599600351123640045611022132660731896347285122528444017639463658138624991579478391172341006684689446675607942891744544128732812920351818087113706234435611853760509361674034631794497772915179491028725421000897454817201092175713601179448281276187284349272168522192629341478537645048748080488650601717443085323796064149505044998834840824199507482626204272861254063215656563106752476062517856698585293880571605066813982045940806062871002377202241184050999770556523158283408933850565674781559441464492160261161739624256555935776024472747045276253576076505086709541302143106786307251319015161627343129921855378183752987604492754095179979195368594902224439167889850127699062111889424144446692139356202921943755792131208826436201986466709816938733490806572657809852837448924423221727785743846878615873490211867029490584149463753224899168407264410397162425481404315715983865352351528701646100902564118743106051228004090788417444486414393265075602914153178732336665321178218612550315280831999774013670334232525098972661909103646100668284731451787089444594996215843628559581045304652978872372445118010425724389468185345249190935069342913891352390246377770991279880217847320001328214451876167198641607801421758255822752616767040900426669215922219772486364009647787959381392771532170837094109275635376424573734379362485858284863581963717072243298628832554934771791347809074943740496168619299316687035810167465023157691956141905966700130676739978289304044511794587470584355968424707521498802272186981290794720576708931236127237532482198541399066721713722290199957554199003784572270174486509774019534958868360844297956364791459415153166161747379572349104347474997091169730271005815550097303023443428170732087655551771013127443417607541197813050218004178982813351194733736459128481875751494498097561522416405611652550105552098895015413752611697046689633043850025005109178065467455220867593534314981905919378232577333693225580801885553866286796787266357059344495471498378622805388550376013152839044419593577384962707697506882799827464470743258159493663305017300113829947035831498005440788329439330109393068217588780239667253642088580081182456260639738637319140622943539000437869657029865105907507387543465753791630944661870399113826678317658487388508021326454138762499035481889742293072882673442101289979346955036275703204545962012815876322015692869126861085460563604035986412787204925710020159647509202406988389434479737891057253773015757379584592168600248262697476543742089318272418722632328727467328199810159227989551796074951255477358430421086000506171179474426957407728481898430446661650581453592745494691216390053969347872404989726328006785522821216539678010238916556562528557646180769846551910975232975192401688537387833648986047909802743818281617907542103063324706671150797855257647535021945463581045100553523182787995888962953007634629687288923516728668048739136035864016055408422349645716468422019352628605357652774165525679890714002938713160694848980201857808979369509959502525776169582420399141077161589089312591492297396045546845658716243746121378226121315166349268731845175000367406872096679261621381871783096415558498908198854261869500979045711564823599742360358338110005370689154153921004105671049240105386376001524935982887647402129456000063210048190525347896576993112198547942601529825220498545658413032839543777183545517216791839833461767370639712473524819550979072506868800482210773373807139817528940693275409216410738030263179924380301712006985368457091636730582364725966379163742571351552721225854113115957709397801491134603847362344333711134630532084029233473966599159338028970784010971442615503633429524881160643077155677892860545782963853587981345610507925937483355252271767390445719291196777706689196385204220589844361229511077560837622239840462297652294046682932525506766712923640075180565777016837781959124008189938010406466980835905974298376889747252420631506265968396927944074608089046330575916395483010531295118889628886111019716486524338626693635418195695168506745931992056390343778247788666190579136523037164834248778740203445081049166221904306076153177322647383063768973969781344477084663179010562097800467381383261522441760914435593389141543718842581608255203006241776839137052351942874996957286658699154081700129675330191864362409941241027040143850928040526330275978728444645970887075521470142012473097521072055548417537398761995466767475473255591894247373987392489897413330623916116851391296086968048410341443699098754605685773124202298828789444861499465016581646045828684880023364575452568399439427322876206251403365697576698746670568398717947528358743454550854930418609963908778073272114023799824324445938583429965833296822197578848739286245603681656647659716050199736460682066014431545008212378473191900519670079466247029546516156928873464301114617917556978232280422678830342395760650642642397075452399265537145377365785869022614744815827164168194028216344646855125701479069939148900655896577471747532554772922061802747068398478382696947110258034850984493669798768881262788501718542954951449336563527391979637207602944374823273858495362757362524603148413697187307523876499291337081553135670325979550813010412740997813565568535198487170480340637292252741203380262519279259072722263442250289797561077692561540830604970305743056665440171824740266019145119817894555168079327947331935288517419982022948777647537551533427542326925758525690792498720247268095343772830489485332226115259992894444481357782103566195969962972246172398918288125075190043120846051149710872330294910814392777956019669415975494756117803196531377762802358135466399103727988517213601657308265289318273129726611564339190368131055807563663215071489132906499047313555475857689935812213838063632786274341805365013684528903708186538508128158677701287132848292748695852851933674403297215247564783135181821900828454834361821308459979817846950682138904207663652832174189087420170257579986813485776052138811789357768707741305738906271806827562271906349670235287797215050408102839835697745839360442917597155118769319367679519676806163768958651306015108094858468738222194605227892069088903203697853814637190923659704567039044428254616500153189793503509658940854317780032143040773842593351992639698487798209533038573805082669344083451444458518474166092013866291553182246020480751248487647105276729669776511508768781421320923343902983950344829311618590200537517244338463857425488934830602907937434454674257711534949155116256015334652121905240454706889179758512218872524612197213920087638599091102784666111431485904056842683977567832935432438143586092460624553124693663030484641374566203231201586449100653570634407064588487442519167319614233211648372532595874777156603359466995285377874076175828669425419628995927540044925238085662008500321678409974716869334176511645686191847350214692032668077940354127612251610525262820233743680745496230669394169843263204509021392350360267912265159248258346873060013279268894124695526153449239118859235340264384375433258425740786291346210339740605140491190813108328473162430733015285821234596320858778513265055358863446131037538138023142768526629698089274624301140055771059000017486884669343749469606540379023833661047828452878778004005998534737535579439296827669170856018462237960539941056119905143655529805863915781313184624449392115174925756119549500548502018227615749817888427248961731817638994654096818947582955665707074396175651975732859052195239456702842543301423640500299944393397562811323389242478716090800942876821496399565277693259928245051681696032176046757506858307824835425695814217021801452413869892931440969954679536917500820782020935166982095794321756377417468526801425254333111881255656308849603536684877637964236023628997431114718117683504022006952983125232892674292371286665897336639389035560969150968157023115108371416786973696855658072513757872647476371674673892625678265451401805371052870019426707061841293368094590759269046884632178018286389164099411810262959681724222270197989861150338997821540134083923316182385084867800991592008114117663919206159493465538669592663025294653998653023880561757783144123012018720296117064592215634128125562718922617165035150628690549883385280435823324746463946152024023308745216316802161188907152791552516870307934070014546932217276082354346921849029188564374273776772076646336663518628232730341151249337688487349857510134781538787165267002814826189985337127898129228350734747522425835423071912382821619204836672815868244714220048909544531236603715479175209935658297029511463773084856773042347193713953642970517472206950124006804887068762919043583552741182950088427082619805736690334198230919442366345128062062148314106816509669583483469648570762389713984438270307201522676912356484042673116592531148567788770248048098563890568341254342198241068081445157920494521057522230895282724217491449204078946586305217372649753434191365953123807315522420610833737601466396824956755072242162477987254043465857094239324148464409128039610076001804616370682549693317233611551240453542044175803973133819060352284354235401594580191503960522829476152283457050094590522104403058860381809726872949166909466376999522904063799778812435692485675354199254238333509233706773478374675454185875657891625778639707666417259790786663532347590246850443600998409064849755481932846122999025342668882702838869630831554439106579376580476707228330935068683597054687127637138786556334227322506319005536027882997126765544118264228937302461549979671092958476574833910890579583806066749725941623614904524805179366733105404904598789930131942649255152853709558077129639325426748581435840908505548041291265176774505918704564259049347159539860891447548054429979675574771501708109061746665562362642790960057399676577277905720658388673974603123386662919373569764718911221262081740157925777990417939916872025875095209071531184077210357719686458482274099650356252782427379032433174620072157263997925483746091135080581409151879329395922560723994970577437667236660879477717820948963676211303725969594334563818184317625675773877667566615307607029135458359233648233227486988962637581825052605701471023734889364550822163584015200942424545198122575014192685757652957594604305506424730073855830837470947787959792861060909982968776631234889438837179016655598905022733418224032727952397123734595000237531818214880324759589891021308885032071986736090562085701729616029047959149917981513885639964349026545557388664941298204048914476985547090597610311651282400486373882037736443043205581468780779740079085389583389971445839694617134096185060928690215521906489053820642143996414050056856041589341413150656603177924319013710293196267632431750289034361112763331885582600862575557882387054732006127929527692368298993959637031337796303734495759908349414035967956199697816186429771507425672618207311094010523674722225384248344368237529709016345463554957568577607326706133035156852609553288093154592658987262712624862171132266807082284868221241522698094626857253204745159451628809307889043181155872376161010706861538562199006923864250447641277905056179335330650643583843064751344806588834428168951219340874229078280626774227833718780368144243905252307604191706345365362740461326582655796649903930809729830710024409584211709468104211531238729367378495022264422206402156421124343620427765607442271297908541869173493255779084411025261854507177927172636758566734286692704997545454860980872707568801650917714111143185175373368267984342852165605489271404799207740707203274886448717768672148162439295657849359380662605766382533671802272984148833777778806483871363613895321660123542155349154296943962031357175027379937563336716092248970191664202905569860281059543635595812547724925958902388184557227084164491552585897787553823373660604007324790661841202636914896414138012089921084988154047710184291432927158510013063556796841529037718174518404607908317433012904335023523926578665211449093039374406061507492151620805458238992733608392863379116441544804449360723893115637064615270889455267016349188584734730184348263783069196604986617211566780543336914147134685256890923678793378978145697761590249421788596420189590688500298985526521636296127789503376458550707788041843794432038607468805032347905650879733489655066692109923521205422906421460326175493285808626419390228773558969740873460980874832619298856035866552228070004067246201885201404838250587449470329564789732965304414367842444231543722338560049520719578751478092902914357173630161627343956212520216062065557243916905257075894523888353011943636835313283643258996397190527254550933627015113839734978103737322096373005101211255100818999736254179332305356732025816416089572828383687750172108872925999914473446201579547713677527169088770348039130676629487693766316802193372997809076043128411201017884772265837466434441877313765038677872647681252139537704994041048068685681167372161542819475623581723420158111668534354933832660083293751383931874960348080392587108024085980097605732885459241708936657143105806521168661028388584266814768411163437041904754437958580116601728477635148564970651672559625047060092950197106498504299410028800511167307235785276891662365360144634333196892474458813114690950196824513977097027364589301923162022331321122964472355822258741226304986719271688350961961791303809734268903877587830600041357490837778973159473149723313692121392124600702926066634787835802616653429454847245714704447673942284350310413791548140410534877059023817923631744342677481243345420608443857695424765051923484277348686596701213019948346548657914714058528623274631706359883551888923038629024981000868329448682502605705659544916237946693171498731714154482913034549574456158500921089501281536901060449088697042800361651442230307510627013809205309330267194425896835974104059349656533999282169893130760883428917294366455858136664415310190469473871144594419755099750832042536095891048818097426433529321553170277568613070073556810772421157766528158911488103038783802193975510986611992538060480938159191430812930884878585885465678665887948285587236560231613190474760614679535238549108700282944270537211374767749149085656505848317997174827169942696566454032988247879004023215729525126557223218488448703301998067329758619283468462491521452625138352967286561336401945941287620775701077766083442094971304195905632504749712398945311507244289414953466961878204303194702357932607568571452381588100172978239882169455443724133770256832714908386582366942367737810024142823101930237633489176394849377256489373093434303420240875706196360461312493057564568726852832351464389647659124191890221588037370253282435468315418867209641641117576397418758314608442591109746812431018476053811058355699910461286094125981055104249897380593070646693363648333078426733614293935558587682853793203214885687660894956945948024975998627945521120536974528672264794231036283667617159821668388852685449691993263450394399138272294725834888619410403779940656252561615456292209927624356018519066600343880698069950088671808780062901131442906401040251185239992808832959291212337193650160703105056220542108478234771085052938777348278811469401499374088560034668569888183282814061311642613156455342480859933760107750187537475063527769423858289292250949759956234586146297472272300179096251535855317887669445419000510333138324179813536349689123956128916011081140742486384108945884843763924819470168096751855805025593349357425056382470819852813568693560880271153185203938799937793784328866471321346960373189328801064387150344701461156087342176433910299344240715430729359817433194989343540983489639342866685761149760114018843997457516905482829055631790627280828704184123911240201100560726543575613039846622355987197417859554262539645877162910307222316335164604157956303668955649449173154204485632120270964917735785017257289018259462741175133888283587548767859408806192492071850542599937023172915663821084726289162879149463866175509868946052708181590579836812566759097495637827209949016526950250843511877791330445576656522304362952891780488607365082925253130750472518867115450128200296410283590902493357808976974622184356323007302146031012530724616828310406402423496299123027903719860861386022876576490303506202678384774499905281454642967251987961566553389831780466873040515084071935784889296209059663270134864125840883592881582559283680581136405318124173892557874762531660417344931385031564871000715215547513807307488278859909399230725193394789857657912542047620707192288758656811912409792700930408241826427983493235861750748196643166083650460114931752321585795955099447493792641003361345276632578705878327418014098009420225700615034786116517964797141908058363364478831753038763556139329232133659656910139279024081228238378557748811672874259379837495065498526200267786062262044632682297524600187557372942837069089711635806174057768629646114324044398391482510062098611060057967758794759155005857489573699735780017791360059311282901108498404198607983180232924007767220979507381470722183447689807494251519905180135417783273353911593612322513891182250517363674189887077545596914718491559385983951722644390748661375372641981145027805369084946484483547769531656642350753730277829008378428316439954725461779107459272236764365512759223250509472818424663686263931398612905403564373494738985843980555817235771066964939110045899951721961181441488632491456105973412434461777220145167822814750655170773300942528545679432740560394852287258764251927666373986612776039090592789715096596219267605131193469637454481323101820786511063177249419803975168372412996327882952875660641912978936339470235353018876309285006297519203039126814599419304130189327307828581264782558820045364130378315741913146033073869490193747969831019757138730984388754762636025586704980404365342546391441739234045024565836725233417289708385133918017929746021415296229054243513866605621691004589082930300597333538480375779965317199601090678745105529323756699103258188479885493988264038869394918029576723706837754374200309537689824971749129461508873995234545613375672202634916025423751640529282160836538759885428935738423513523594093865484809180761548140867758708508196855960076374990898449639189466513299390663156333024876981816502138079124424915686638686597807055610049539576011819557096494099524117336137294731903187986112738435312602141516915218125684620564094450508167766039534068376358826946091795353561537860600145762501883690367645728120937502484858328462247625506889021825993427356027970750444750122024424342894289874873477264202940131138316828210835527924533571708127884626878538087088365459520382318703728984921427406323371857475598633901345877633524486352613449252860046280315470305285536474534392893230368087349204931447861367073301637378007558239364560334438257865784378407167225116619991248080793461884191260025940673560294357605702541137906369114720173084904897273514204682671133338838038630299974443946265740455148971359794072446546973765986616758374147438373764356613082031150841100448529315805339422137380733933376418753037763134608374972579094299955699190158365319784308052407027021964491882420156027256217749363719965531744131369430752495971139764230240190683688120374682938645274698500981756987821270219593332596811697815092129653804862943192315054001400729732003661901045153665499906071646448570257897588701358272865154602787677955451103653026956777251025559654020159998250105377415748292525070883189293457805258286524006638307293493240114920287585192053557535093511992434527743814474589808610087024942020288001570177086256968379751383646048283874072265047423914642256392026164313239460270813443136354980137685427503568169027846530835408059619312564298928988064009312968341383942356466905986326375390614633696891155744806727657009728127194648803410086249100837153051885499563741304440876354988006655932945063917225372039535930260255524735998980060636283600857548624657979376572277695883148932763522767121313972510037495043168250705552104807189213394291536313894153679012462577490451724572604104026310833846994693495726792855569950283448313437011829617099368402044914223020510316539834314307823539632777448697900741956605367076600586954382905426814798205429825249431501933728564303628746153955063616953682851063000704326358471178240712387902997254483143447482384263671168407968197562257939675270402735838603479213305174069113567477813888263350852290912000242777996338605309131519259769485155748228569293315294977557780857671003300392164311233756180449455178023884140133103436198290614161186096194554251035875359399747643010465573265772407654831005808297800130158642656727359064080873663186861407004975595887341170568254397151097378046283282558644831059793510010842741702290697017550861501894603583163946964264573105666146104894278566280670570609311742744441833623419009943600063430752522887854648120412966846278602289839528677169675585416396593095856937039481820794822308732138527843567754280649662581824725445279476112305471353809832503199445262720024903892229783523852678473520978907207509854515210128996571095108688178009292240036278435440327499807806217489113244451653852803581397159861409902396785841269887607875462261708173453715450319057534380639558922730517817726069566345972341081119621647841275596065883930376865583407454319566420678320208685450702270232106257130754319162476943218012588360558206291001707123901720591427443050452785582598352912876952895122337967002846463158553107669392272749524370282432882778186313210680454286849189215616571636274585345645925796347622343419678151817508047388503010830080919587536750443781133238846951617820500531443577922247565710914641767930852890639062000591439974851948475161580652708768842255734931373378490081880442540319970820484063580764696912034392807757890627666397643463037703706976085209034769642178244758016310443601357067634888233406112740579515168733169382178877384780351240998652057647210290520017034080947950483474521437500422889876705877659697610748219837216355563780439934527167159267414215429451115826784917869249874335880216948467627350323775953417955779359523840699918778503275650197075429383105200730727948698048950730996766719017225226211696073557925367227117131698893452500331465060269605793434477852912651495640728016881238864231434342500827083251516173213810684822786541648940687945981807813072818580618848939876565422940380322351421973648009581815780820302137397853762373173998119163737071618689179626014036300394902593404286176051886929732458105244203811704779693510960333132577491357738246980056152336858867484518264650398223610009834863054410422419690407389692495575541285258647843720392466722667182856871537904521200046980611165890694748549375462491055865244884661503256427582203845082412465930679691441972961678079063859984293537920894515293076847036060009357777549377951924373716367399986248258034102903409021533351931969993438017905876243747647023778930142320272746368952380471023686543058345563443971850227786520464959219975712359699796983586718038763153081642692553063237781125743015693570271389026532241023667298649768210529073650749535184472196596644987876902832264248808042730814456487063644533271522528799261469900680979276375072253185614258733292958684716482761455793504457444982937540163728043173400467060302933361438399892085085147508145799513275716997976513157316506930309838958185360392434225397481344105968955960076923165159719366737546720220856462563066250725151066216944341382059183507387282698704202533042274214852671236184348380833995453347497631567231855532868746176499616908643942776168836204333153897571777308690339118890284439708516638878580197963609239484124304518567784206677962790137725334663360439145854830162602926125712631951426554831351043158851240208459895488941448468658849981702466501624243584586502657237963832458335617521390317974858561035680921151524389540328327705774525043281701822886391856403906894177109183329318974176133211555852071285217974337744553041518115525766167249627174303526317059035920991328852126085583581362456042904008245647479523724736283908783149401898097436740146961531288770496603604472552386082910072248570638070921161756134929630316344851978642570121488266734718638171616889889866307754427091559519934406705019129508697242791864986050335484834943615544330208164877693946488115970959651686916492359732340280563651782517966924302948669017237068176195210756003083546024865566168682027051247867237967742897030739848310195392333129807300305245465632659563847075734574920667591354555930910819778041355792670631624934007598895971652044103209779105903888099019483552665175872458594375979686016879076545806655240755109365680409515037595011458594325964898435482535834464117042886555808880565527011235301043357467908319692462512986936432185116089282475140182666996567797360342302767921373577391028262254888803751457526105898848944835755157372869769627446113344616920503148154204495371782588182289799115158097852851999704580240351032977723935476970042107275840472592260425465236504660540757958908746050412858580531501430105604371158665934543243878278587294427643779458476745555685010007808478938885312284845598881814374344503975736226162485443048859230295174438828555201249707397402191301877660142606127740959178474019535907069211652044959591180307973086591348181851539683974909830492586499858074098055405933365377660932009961575616389240950298480544714625030913017955361473969066855790315503567875744056993054105974053479642078189661226094402108259260754910839741831025813012156381105610776767060516943915237813048159640163008211338915424689310682931129878164873060762430718650573090182254394555390460424855627813162380644209927721421230787980820599172401434736408302770260415615670725748706507339979577536962331141996012500160148923325938337619255850791493970850682825055456829462877295761615389057555657601330112829840109574302074999161133960233509271383070431071065165477279404393778559831452318368091140999026955703930007361497754790891643120039920563716845443542851013710933708290986289420206893829367518566357785956703935818337173775081753686492344350126327834265256195485553920793614178571945860298667844591405079181874039650332792140321477344735126658060651558758179439688940744700342679129846634497418930610509655797814543484237147039750275760319459360054931109095701457861351003913549485326445719887952990670836127115898221559722432289437130144843048630659857607758563645761520105445031715966513674075801024638340920645821125657854716658700360443891589322044283197908880580748829475515917088626444408666739397536424319961906153203093213366090055508295145087153778295089489427700845153931135491090490786975288754551335685396656691290892142754216255769616183823962465616404549424307019646804325748568970535618525568625664867763674236512604927356111880664961439542603639843414907079339053023091930822290158394029445160288448077306716511310276557099967518463034898275571566247580847987894158915045780968926154155398695143360517378460357725586017495867444856738555418909593361409468443109477571574835898938064017301358356749758874696465900549159071133874580524165665415266797105649216831464211038827936325650088583911641294445273368666872446099270698909026712879787994617176142847844510369476707962385174698520796181912102324357758774748247586446629767168919409476123296958622254506171903270369509787470709999278054564432316251522279107216021802066819551821049492613869904161694744308784815679105857758726066229175474191371899242345980013424891447345438681190659101577763535069624296155281551407153445569203750338417946868675286652415664632891005978136429293936490106822268579678554516210344937338470159423383166284380517363586910429057727734325171984686081359420898693803263187543535295381648592521988756522586776896931517339292024063220369340154697823680353585370797981073132041666954504749294475302383787824982451498101671217856912998430529546707278646831129859018973615183547309763286345429357333693751638450278143744977981333473274132673329843851427312831124831667452642132092099334745980957792974035243336450154034902151025735078198778780118638901053155824699284600934656373572042203870078449176892754548163444835258628748624545385682142717943578045705620758730276598938702138767320031320093845172148458130359889159715182359777768374846793536918389903480812689564704266758492698346072748560608179307118424877247586473605185272163682809717916235830755841681032612901387104703847871825233054912032233367903203414487431463298179777135899673610792741867884313496038346202860335891612222758920976973762711142255198311265616682478929046070273522095052680544068633820392070352141665506604691719869642064961148710842563491662092279501492857830984116814938821102262980466013479210250490633883148931038188842232374539720462646825438145988399215496569466555920230720994613025603902887060114369840594911361534943105670419341263495682541295881163210981431972608264562371567633157982254770297072225488992970588958644531782155995641248249318175259815303370704253495572154052104666425492975005464388275958602270691259777578772900980197773192777450455129178148691688294036446613320616639574580302039578577342272820039210883442730257851315270557939891905334907040898055817572387871081750905254940468690351135613233261685435781069086107765833162799482624064534625081486047843892072730937493336957124338807440374335423061382775313332793129896375266429868043466628461874261855726695991575661546008089563775674101482359923935664304828677422282487860009838182763528461179965555936331998420035238599219712779182389915199439869858659078182911819938048689676268115376326488664323551172913877947155989930006958020954871683679521844702091630926041914158143321224437666477406124015765622013623555103501953861256200849008368775220484045955600418331427026277975480070155432109291675989828343550041398741829871747596799465737741055513890224762929493538268450045750478918069097972609504272797176267594826130394693824410980303501774997019783934257073127825468560221485938395806164117834988657878578901062202519774060158635366299167138799643614104872550439336524633756229508889013174248800029705842069403633644802120085155762288005112722225615229222898922161406379909188187778300091355610373817760421227744429984532703918279558528736779270502374494824365068798756494068248280803156405166153523509602473040526152954924668328013274678935252572266261874990905020327007026937892032137177929736999692681571694893526528398791526556105373694942078454685327601888078551585361391573065021555295761644976225759909894711918454461261885892365814317154227741059891122369698410248667844612921952703889240982474665565146092765660627597863036871300046951276785567809876154127555228025936045926592766004573405031500809317153687191691398297082051555303071980845441469120325421404506769479701724838739172749843864257696665107635894000997836914818767899280833883208230427758940021449545381407654033500959865341566187814055153420192289247670044707701085882451241190458634919320500790848150393214261017866239798700315802138500683419595844530314342917691248786682866487661946766239897241667732427767161784286656272787423094152715090527779217372160490500761243642538739391607903748669457947594092920186426906571667340324675135075691027474878831370561137946786009515392123745016171013112360013602336209601774962788160747238342179970111397662583883978252014062674188031346387442587439091553896571093164227171735210862735743167304234465320667327987773888667511543857158214221941447184743020905606378390381897537338798975857801049285929465566031682039826033215211608182893346036238285587714959429731326077143460727186575222525471460583316418647391820622543442383316298720239982491118133686182416635828438578009266081450767999673408770851398775229573702437665755380979897240914908597011671400543686978354077613466223741153370825477610852273266589594367280955976632656450268967898397212276446272718697774600073268489395217257230820621569721511409652159355615264938953887374875575196853079564501042992103652339724396087130065745770351047768930614799044426612183603997817677934447612801629735660853644577117752922266525275178577219083532903003055123825670368829454143673525458549587840319232288832283363087678407590803268407050017429087607074242031805267262847982593382554882244594389373328363477904906089925416413056117631572058780841979096837273067237973006764558983762888689148866964180828269523909300317162963333909734547048440092898431851087152451519427802473976835491218409933484634221386849974223528077493160595368451765369687101129009166724518234196546587148640424096003588856638470250068426800778186172857842972864280464806892158496747708018996265366864476874514363118015551456857513342174165310585986631510699501517492822312022490004178448551723058583232802328369793776925186924701826295144728694265993330215164555458379157705279765299528145443908092241557127916134017620021940844704565290156236184643430710031649775839047553017972414170605999593240499423738213349421131750164636670292049048647558525327973068372510852687857810274660706025919674782797089776550683294836669781314332380971160423573243733668942107124221668579223658267471959304756700249362756961166558808506728337270651829617534020930076566518639822771844270328872989623763632108360114593390423753602272402463172834227767286278616716110743264956889891880676378454960734129626304312517920607071675395392901566894528771401710543942148713520457789031777615141872648954659650782381923455147296290785898639266197468101339852974922386604940825060671949669013414248867432056651504809273583263072464596232218943723574977413805504024716639211582656539360858359797315632276009347859906452645418396698902207849251324419307135342116865502054561105411174168986295588092321102057749941211953378739689306717680797650527268659361957913536563851248959098798496180434910472044038354017320951011892992866059668253231612738287381356408082750783190054183869748219104980592103097528500292514234519544839144489145774030812948325656797643683093809472954992985187783441773448907507402335093845551142412923505847031807482365259064002674519768294169994315553715189104106156143650942618311238566900252149907093188825852475209788123569227214188756765515241869081918185976816212559412742329609689333324669425256062560413083140308402561427963772696887873720702094593446372335153970122151283970585408535571058639127653668071903247005769879317220239252310611690646072327408796282952930851652116432471573273373189725238843917850109856781758596001547562251674962507028853721728031101491812263415825694626192823651450088013114437315570754465131690356033209494988305740822715707478045357966419784284768970334830269437940237223904795566754993121865183659806075346698862703063239625070889595987853623372352839311269878885872969239868466497637894775682578155316250813956792980257100454134171274642716529616891895929416941284874802239663057235290879402121906044999460409000412886817723132617305151781484111351843702909366162867853612914368597898417457836742973674752372220015365828762737103662754216564950992550706175876872618981369623307349848680005558490218570944207542325281585264104752612928947374509265993948661928966938255197628464226485882469255387559703391322771953446383696786543905613152697598556356775676581045164807946968248856169034956821745718580109892422751603672967964408370278375663717522804233677368061190072356543466365849741130019804723791113514128795291128420363230114946674670647032255448330895762827862463556179325481401306364716836255839653036412815113785914809036453705653764971543245117784132673618624320753039016008648548963313993919832411990633965143480301748299204150829106006285788070171836704768353980168367000874670822844897977741570016751020563081016905539965025775669640571596402570109276846573596485699980272199887312243341834888257654672764776426019880747646954049338984992375863137861685868784977768867326174568087374540443999283089751603920791871731579289540754641661128761419124157990992569220399349822288257505344785337379582673606993825497784777619256813799189470098776795826873038006982399081260849203591694551365248689804479878118490727472573004595736933269346051772051847061637308052157964488701226020747480554559628781783191372446010561737842378287339651716699663511896503646121186884156756426897783759353630728536183126677592453458025135670397578987379047304492465732861918885221515583395952494300957790533560580299052844826075603495878251265667336391403215855270965043515266558195037088489831302680639910559613360619289635683626927296342075809556427900194949292556143305702171652798537499952216401583753680290546532013623227320708715690532835555327081860414525566006780475252983550262205714743756161383977334951090772805593963198677023839714314882749953483255850191327332900076127266483694432959112151110737742457098958358508011834419037313847569593570551065394388106343677932590687793514414656066463461009248800814736732304744241133146884538051869042042439838526889756125148129509286068534241237210691232693332082010764270197687313077795097942897919346327400969234552160144467951127122212802537264286724000786111412949029399082258973359440139057285089377527560298822484015400804086950853745604601456999371485400482409594476969147601730071796778581420041733693718636018935186360180341383235943049516116886543391628431694535547908324807891465714741651700038598444107939731941659196158008449741775065626131084636471016884148685751884163814277034318726827215553438603128057040828854211616349692720525746057327629885441477214250800776862145398262884415201058819534159574512783522801152482237581800021877135509018974238926948383239467793321471296164484575154609427918611835749066526147101635700777988474361804630486217463033668475149976186930961598668599765843607403607202449090378431846976035941183479015892004137589284879389884667739118232261243053967316026619068983762501885781337450304020246267582634250040986033638541682588387981313685809688807194972093238243725349526769999377136739625433621052119612711794746775678398227962527549883943948287261498238753838866904976801670299744098316698384334055379137646891411629948412637917735796447436908189845761617164858804866918195051234858205340265515201913189723870156782631820208967084596971998465648284633304068645925359744564480713216775599971021907620336346713513665238696133721961767062428639817188533243345182772446683000545702539256099283445548234853143878092924394630431793664968093902142765887489664057455554319993973628097807965817382854553488875404705616315547436019838794868651841888240312455997058772851248081043695611008057391624311542134665241532826743260674630434757516452214356698893383668873754577975165767617989957506656305326466727188244110866426948374511505086862307082312372419179632193794106850882412468376374183793126045606436059790455842515347961839743388167183633176332613989463233836156918759192347129010921876727665638882526761282481238660408425074994772611390669436426569332494637517296919379898826830623578237096841800544577010081273029290120210399327924960130877394416634268377895856698027534783802075646700958524637185726851763510046863475986868158920502590550885608538122982199962404072847202608676211991199553439641415761095848583503869038704864678082891317240252480518771217923238878371342195756647236408750398614994148428478219482524503132449573045682108640149460894279022669864420766002773422580132231147235770489604926352177202504168715616951925126799638237987504841693635140434053799786362421063537776464784978490802193491714580121546460429364578913154956075850078710725087228967984248413183398464970578416099924586672704897582952625987558069301969787874788567006785426505435029616383443382977436087552856106751363207301284548024024100266522389343942171900321796970124323471631915405266958030238659662724437507155564727713771240011196124524385516040048029428233209611755170766413597633290225795689152728767117037740757882093937961810157959482061472694710846602128262689271177539077050006937798153359416989603256595030137561560938679517452098369151416622987894794917674390751303335660917775422082448996840618991441402124600326689256683083166482150621975686612722216556970827524047756975321685094614550906817450477544548224863758180001326271171220829338048348573229753822432364526456030720914994884877132481301249621578926885826192731510391343550796878958838333320608426190678808942623717949971232285660447611933472257478924669302003150297978588123221722079961498866063639590386772460494398719001406103124121835850649619399878403191317112461963019595116730787844779330320791677066527366975289735197355576235143864121541319653882316048403563098100665468965659740869496326052414795239866718478857117391031478507801347188757440468800435326804758558672913301393985098762351568528124068774270902751574073435181682664114224932469586813080274133028549455711202402655783226189007856540283269619838950807811279600645759648124857930120479522856047340263100624585856132345404546917813796646938073936672422990906352943695959844593995387891417875458563352192074208851824672617358354499566687770128023440811777027190040499390051743672828444592382681749656969733996372199938366435987668925040038364938532195447261815200577289329055861318517908195181895603648391459254254710863429975621229448634838019208678323387662623864265332294998765095076643796914380003215144337647873865844012979095328654108995261334562365679323532235659133947511509850135152349142020408658202647250933907176552804660893337047021130582396462310581742480435883700957481616238991264504631689409140663937426688917330130539896667226730633965004676219439755171285579004097693440280348200672872408305832536060712300820688054705542522962560701542817198159063069380842680350854852268460371245083421186342137156347987590148756263505452619135192747501877301331899951941440083860387116059821610191412882668814897122390545519346160370544175102131109211964161700757713223473841748621505648595325457267040960568174756222575971144844310201714393648335485547040142482345645045889177346693586975213799013194133548513483507612421817377926699183396920784140137152764845877123568702585083567241566839422529335749951473899576022294018266193999339144434538902589499515518754948113472204395702638304625504112958291252397807591428201018554393071631367789786059529614634825946623855203925152739131003713625401460649248753133426669012000882311133064960937445179378448524808442378882788824789387185117108240469115286679802512318753401821256841829771585854867749787702618458828510013526454259585825258983523192243612501220620962501891232899140777672534041777782318557975186340136304318736564493638963828805939749112839856257506762523465048795995918170518888551334058258349197951830892064768332928811332446239621247600962821153976539078255170798639572359253960799335412980015740661552245720368831441506645483597810166330566255273101609740742459531490644340497407125415412154251451418946804435637526452578146810173709166589464924992129527074178810128109104985989939519008445614038413694813181907859363253754250627500603297699099072835607265744501599121569675925167871091692235308640709177960981120359703259236182901786566668842090296141016286323530526859937891671359052663947440370617805775731269670620815771151110449360823818329625204467568026430878662897393610042296961433908724426632984494468726645109191770868894860532198084020894444569562322738384486981567947905231422238383368873722917601734673093419033279916222899405750907648650751507511228321937521250022447224067262441285611606620382466145274400725943069792859715801678277680457256658008243869035086308769377187355278321716816805139412905586484208819935403149546961081308820154842347355751903084098895639019696554283374919660133188396748126155813873566704288060670234557143760969802983885439596389920648908302995014494382242801033426902044115475472783234601547440787387340196861411057089932989678117521134385540624560494211899432691059420397081307772166168233734623736712765293385715857000441468813707065674256994639303290699909773613891434725233190250687131814798716438772532909645334177690190983755569949380724059696514116408013030868497412952403804967880978722331942238573117491113777939619044554691570011928049634326974806870179084658819700468041502532216456365233718868681268979665576253674217097463951814652718102568783602763132831271008918531409336791024992641662802024454935951164398526514692319365229764736879406340906135001320487200192529301232084157893423668243184177342542472582517302775551103456838062840044918282136147058218480611000968948682400807003487257129187462520587263201263082160156040097362997908067021905685854195546192410410507902322808821341520400103104931338185620827063729877484969036367650689671161031382899562891701559502622869177582872816435509242267677869897022872302321981592731711433180288066870596627827277954181167284235632561916745169359214848716069534672869973324916513992584018610592903269021420139540503753311314886950019678974764826549468311051095922254613011786724198146822497993635271281799777595013392139668035301579469486054203402413607656589742036501030735197461259546313701228141089273233780348467861507964368032279969647560500593804943393135662806905331339273185196616776599078756049615632632779325821615038198795035159734071137606386228213563151916466268458331770848269315306472315277793998484105591741595680263082268155133034291003705275675116370644939014603065050838300669463256558524812667463699407714699220311310830582998896938470043419879024369488794805979545646496107621684417555852385689617437258373719399123957287183923120309244647842259244341070851101208081486173210664552231474086891093636644907212215412486293291686577363222016120265343714007715705197012392913167600247027467894802020767396634109629183830907854276978518086719502472699984549783374381765698649905357765544144448840456089506297868937920080312571778990860939891129076858644412406112839971011643299260154885093150725948783019373527899749312093511846512642996996249955356147173398720712886742564790072535772668369834011134148537925539954862090211826861615843670321881313587726378981892860663729925821635621855941363502084329044454435350721946916068283323493247083898614309224560537389567633102334032982556344303323555736406037444969750475235889265301203871662130081226699622462480672372284819008297595159742039733604631570489476377371146464206616768994435168368861774181751482941652024441613473698326766683391198310819071208028171924393610439689962140735133269715352115125564369766932180831576750697256237615810273697209233006849723331668273694828667284753184777352741212723189812405531356170116116170569762239661539119900268239323293679037952450410367168707173632706724004290273886679985499275517414896873655210793757367195613035427651217725719762191897284603708719757465432365554960508300504961587330564743183245297500188416808247980921220627602650989178867805852236598422797375431742298878705262342933837103809703898581226977217722661330387913283746785878969469147330475852100896900974578982315788249784614609078001414828450605043003406154681089200871866307333325677596080310981701837310615576217864288275080517902985300189667899575399097740063502854028880907076499702775724662815741052025008820365900882424044709352955902020148268907650566407608801177942920993744078046361862551892409075170248194817698076211871292345574481624263802368516561191505835987816967901814429567582568196141120531250025548388490132054111615046889482689086036024880159926081664272562286757918525370465459565314589501868002120357036445973704206752906017618455587474783127600643717163133001639102033518828487520046275015203983763199589930883842319969857939945375100830458014829156935509901045921910053416014313088129485967086593037687032283917669204865217702043489245915099890892767921531803429230440845908134960379542845484646288888819403477086304284269750362809880030848029464442474965217365394529814183979565139536671902111765528512780709088642422592638856021847910866022850471769117075594911136158969846905735495430485214817119772882803570735876050491281691757686367102497608397942383402163675769578913857997212182541826554509018625163500739956564555753968572787076622986564288651927523798839090457651217310253398505230050497976459621633320916226469424387352635414043862430691730975301070508962466588594112146994512005048864863613138115484002554566393468162969636095956074454374762893396126019775147578931183537202295641484159841276544971418575259761936427823730415379603035160730501438890141989034805568283306474576243450478492241132256585725478760031275718475509338365348118722947638187063761469933894709480310279532781119401347303844380483552306118887907167855066159821731179493134662236596020866854187291110419864673788263599372774175524132592571028052078895010710420462260171895142057175929192376807605222040032792023113580067142484450896599437010672028854548849301521346284295628022166850239235045114096165166306421129530853710753052617878098096275833776889987494064323708651536507595026027531833493166537961678268925973240013515426997884696092039098597952802137312318086987707151539400798448066344783770980534053774272224285153719901198462921275943888334591102612166972330989448518703505482642249663271345227892498557971132392611599874046074860147247074476972314203169026196165922407014648487239644113701600094027493370994494444642533748696862651702510386598929838905785022385933058210714598044403118513183643987253901807463677178999092493336596180101374556196316164803104093454163759936923440319958571997591504564491145727142983042306583459315939949203132332875046004942791377894785165363429146231197119696097931307599232701086251445323502031536858250595099928130119412024143861836021801160497871293837616306537394667009807489144637164124176172447882931713811454128481257446845108585284510122519868148475331599350631782785317068459945601263363981564319354961958429102358010559186812139187044373438913957593945393405151218404771136434276284136462055450874442659187699173631386943531912226250239948489425848509568426993817124198265674351735808905093724993404965962188713859198191335953966441598025130817840333752173041036349125090469859822326344671388386504444683480906468632035837975378092301817539877098288184492839749407122531240155100562724209904485760973686919144983704311106724219617681454929075294306951040411615253869681828780187252943337958682911859236968746326795677025595593878245672867291838886905189626780975867373384699143884099509395445967082050592456451018229227049457209249012440591185280676187317330012394060628090466979627689682142544619530201636732087963080401875866243996648611273887472027541368892436954146410470868667837554217611670458526131392156725873410025330958561793415189196879805754786939306888964213067374284132162295613149936926346799164669555760748970837967402067360176793337612902800138792209136997410165094986067608469215566973384949000015956576884791803640240407500959086224018674145441936837278592119459214582478006275627604777328534208668653699283001249493211852100164923519851049226688193092358475644410221763773403588579216721180724993993712953192972990494430081517558387260335303946542986074433960905731851397498889526256976966600026659884658970385545091020326659230649170547573559284420154167252195002073127036771302543057909972480998967102942986432800476405422317585494911755367238935984355908232799569219139712076007073397457344078424754824189118891129980345808805935350352819557193816366999437698392589016379681657571259329972389851872390093596837969694349579629021729810901271228133800175640448441589592253789788143463164752659246659354334395335337191607990681956076712892199430923302049858723816968337450501350459592004544229273530698617332803584942121889443565994005349886166952865036872811140670807702064209674001690818707481778188935022520505591226774416066629576154412135740318969155356901740629455995549080941834103718801822257052457668824539014565358716264091164331680622589812673584548519213032526247197004660308978669252846941395079026291365714879010126667551153576285906280409020268070372560744027316185269946921514111474448174326533194616614974754979461929432759402946996938463628937475259812335476765691607377425185498119727630171527575948118338732838689365996688922563718569369307267264339183927769586296127639251986741674746165787346916216522358893800901854451996302583998777848877811470171553552819472370290192876929651634446835209364760759197580133174998337512112419778363866005943616973079165302230349329797273905237529071022627654444508504112122168479380028445326389353993997916795819093921998541358037489267216345991169865196878051498964001462345101263855843505341395855981241547901215057365713993106916191673693138998638672231434407156964490677961322853426841428706960016248137016195946098326457113701435589778685850293978616806428748701712055532887678873540939467133597837469212535793719729012592579797113826441584290394496701982491357309577522540000092227811519918697697418019324342924731696296384828797279370450706908008764020242821410541988041735030282064358504132112968026925952948931970436827738850226326865630865770962376532751892881826563242148598158664627957365757432849365257123826700865977356764275520833496095677384682504019489940217280380476892719866113749137876629521952524080691922959859015287804789569810978239198942004038467443593395121849544250337151732726341039847817396285019696576989130704727195755170418228503563619323034715926638354523109453008921949912746587610036977393128007426135012652520414867588488073428459919267894649359645944182834624973850447300950817590973178669596054848246513856372336245086165790635966621290992094574601901826959072753743446906059179933320234071738867279327351639026683490221255493946612828876431244767193103802009939039144525914030511013540594025840479960755448819887377244647471529481748263168378870861283422366675037204402740181795100775494679281450153318396435650782547903433984949902537852821633083332215368631044359571692124888504670258556542938927104084222131765186083281040507426716263199689859691365459449949814018889720946462153105098565886335885498560241376788219113688638139711671951218052100195674372127419131828912100516883358487090335893184188955718336117963490796895481953133523772897346700846220679645725075730187707542753329712329621368720339207803807012322398028394335507806739504837952338239552839510583564327906069073177192529687204185007997350708914999265056556445635951676056962875105343850342940001545700307692249679250499355770479207938030199309373179135641007231333275249014231767542768191989701302603169336385175671240396229449846856833288404258311639728101889277688910393529718913253035898390209316115236265304416514089730562574054372853603773699602549192282520898093998284408829271429437579128297422553071839678473275546337456568242354258033354904085066298521168232187362908860062021230074391162344008701088186010140105715046964398296943114424229770472224426522416421490791348318970892708059726524443450498477906016638347823453909367192883906106366735165159619014982867760403417943144665370742197361530030857201875323147539102450747197963664834343852698991603372383009439612858634123375315732540728513293939462139351017802803222700904234092353869756353873175370071992375122490496066953465307652586771873373659733471163113428874897473886558865320899776766830407044200942351931575779008611751255203947042212577540378813411353670673319580071197198490767517091911733682884529632270552507314014705848408438793862254336541556934219893444979124794873568081398563480528733839954433111456339988864494136723143004079928398164966654498496496668349402605583966407996796838248754709855848853044331155143747827790712798842424402291659578108599032689034492835325968002580314055202940415141664353798120651637731503604339522766598446365704087472995456179109400545959033334089118813849417553865241549521348736877075140644178861767563181884485442653750135211988939510366081722621204832936544060992404574358317862228908020458347119302852536055074345910654098922222425787877577763622148571708724689919658449903818443856250107833183740633400896917201553909411659430598570602817847796635620458019552534423063110809249162181069651997299686880692965842939719919924074432245199959439917115186162829414273672171831332624880998298135815514169183219355855419567868403195871526397667130317523717293497601007295832794963842116155052751454735552097852604932860882502180059188060579896640402688435738277590865060050540527222894736575437307534599446320710371791676486984065109439623311857126506084156483789983167968075962388580023147997485636130241412235658589196655658317813929406182869231276643350528123436424791729546507289390278469546312584876077539461191140526229721959099701837715520879104216093674984332846264536800848344801598083254407035481752758218718988905176771414436576445303053589087008701365219128033862589458647314227216135028691641449564167762036584427861587181792099697063167900013812268163555859986731244945459264558683358085217671313203756462271808991071008488067597552731279723987909628635883862777676307350071570771654016786037890018172061447857459701413352951388735023966132119902694423251540960564579287118781171747587212557663193878461454334705986707016336336776239457110241985397090600205057619435931960067364162472236746833861072439695974478639560440814637387822509280110612627354906689043191523172742335728788872396468364990208895904068499181825538794376494222832067175621777417592141139418634237069399164425668254918226178574322981541360014719954449774825575015544778161074151260055520295536172672927337025474107130084764386381021054951684432772177614812518272089896962613974822412941827470036136107062478338228450019091069141957324104365848911230463788629231337322530635128639219076757545500431704957021125883478602858928877226338315685837164520966370208880954904872675001435444189463242387255282891287290219310986447954883229216642782347508263306834277951068474169260576290380893189380787429083825185167644958386876681756099196030677140088930416186068340450837833943205617284321355327151174725059136456777192713978856058411770291213139693529826620586596635295078683728661088367996954759244377724772743828525894659907071791873359815604219596702545084605107189336763239470717080282787029554681351885617937750264522839044394513677191517065043911963076589947394095750346006686314194229159549393507117473496270589287596404897870700536048563315163381711454528532070790893950172141496684375354309145914422864877886888254147120777324131433268378107351462820969428310968606289997109526999135363172827402927733723127857104632317417266980734914782585859296368397514831188187398859505262255970366327913532664967377299633303702521416036880171945741090629871158772816225662996094042834295371170580314059896851219211137542267162660956073580418757841517869767141735336798682839692559568424439109481903304904466331490844336425489116594625626221563460350256955363818707366707643723181844281767142247873759499867523656534139635057502175277275782365267922068067012678027573908592842182348601714041317809763419869968788465692703953914913761833698311200134513860846987319533708579227665346978089358510535939221426362700738455772002977687687707063934588611600973228428247390831024398465148111926276161688444634711475591193038487487066329390875740032316389824945300337472095164160589699216144260546923156372682162062641134695322401552186694475242034212094983103092397317752930243622696960425968904482304242564458343736088122515432368751255349116610694462089916652672860732631655932677000019664501510165456940115814099694334937628160608701103310672707463736371195089988574126457447900844165868790258137452712775135272893268045122170122991772450223109055796935405886830644516335975860957266530886757039305955182996215711887135450411168515750584169264007297769713541622009228894410887512639141078261802148851868124835889736497664797118129875855362659216327846680855525822685176446825737149708839977313076306451012956607964654623976565681151728206730534403766446737038554996456185678803124897117460322317864953089594200559652773997223383873404864393957212935728477404045772509117370751499842727045071583185848923191327688192026814712903683345940845936880798122547181978895661535094323767235411876288462554702237262715868372331209364866753754671808024941115737936794462015470389052124156534443912539620313922068287512550075109528574786936442386768141325307816204040063413838115377914754419462132476247461807477140719959366735634780353204140229303770805009110246324362833617801888452982909847911799672203031170103808384357753975165938123877621574586820794171891837599431391183661981892758115288337895803070979066019209851859595160865862799688475171957604455080702207906881777286509392407226958476016244944293004278716636000747503691632659841421174528953932422520897940529428424928902990694386176648328759353109742781766696002409088471759615087929282851501791584397977909777675087887932892890484668062493350874030604232008746258880292062451821252873352417272675677069006952748054759579789011807829891818889613393531409672095333178855862136592969001010275908488302033371855867177962393511535438300447882022255558059785466943610509879164890910922916400370125679416906548481142452961047486877548617026702135711277809389877527070146283257225605724609798373192909786139458980140889356526547805265227441296591081689218446423150050110605586712942798096019601756415553981382979040301831292991824926844428533708638318088472994461504662570524232807812527849768067847423193047173416110279439608915605814555920685850239330270053163960854530900272624730573076426787041082323809704667004367723793075557940744684574059678045610541336683656781200219015984742747574967356453867998130889724201651262458060979746310500314142540757401759803898963138222102838807230614126537833264524687510592552514362644140296741063768974034259432798147502740918047371823142832102040195270858784456255718467673908230719284551946972684768978546290036321152553714133442117107928749092265152862162746933341121743333477726407529524514518027744418626571767253805993635934898421818714620584811329651356782704560790673657771519098593202491447618481284344650383459425902585411138446147669857018336985028133805432531369356602162635421891787280947279477339794078330081370690011594891765802862666379503037021302423208676549155170426898648767516321177723938438635280946090804899183456378840412047618016458091033257984221340457000404673920754747144266444454120605632260022472885730793435920329495372445864096914142157982088646082682543208424827672562771103530922994661452268351564935633102925782415315979420001545698738193343481589705914813980733425206295784497003920185878598413662716722678684172971961502294445269523626599070083472451328124266375818033010997544902145666191720642446246032448733269028243333694503058341344303014422360200386620589070607452366200145916284183130012861758334303597555086518224930428947520212870577161303687283236487445930976349594289672551852005846894781846728109039305605621820006701943429644890150304902692320845012999901341277125358784658601829451642674912329270328641758505697613120727860819978304765998238413154160479174230940904937880527848567458889195420756289455335888302414385140128321209014311669194366833183448783153736894146515369259494384816320646149433787373194854958387864852677258253207361868495357146343004870730086400692367794431815353862336003493793558812950064422726350661303249337905663631463066850860145607002771688881882482392959314281987583254572321613092298959151871602776583556545809687733169612870094457612624952449983758348490136436983889963324268465284615270327041762582318532237265415107370220554391515464637007338293297337669279000842325317054919358914006378312803489429885966500751659174887894328379774426560448235510218656022254624166305541220403665733671647289103106179068450912376248711242557873946444198687297083038200508207519430099444474120424621797874274720868671106272482936460531284728611174055378824309127911325910161044560276803733469308637947483249011133274244135281375706033823958210741941776236987555762886111241714140321530719901794915065801952182435719590224365921320234380502267892936055842389368873687539567788536940378357244574028772858980987410440216055677079444061458688614613871736767212440560478399571702758181399047483791244979965142597403184626351250365543714357017370877875592229671247023809462581600517712274874077658258087406737830116898563332794350444616273934646967375023672459063729890103967531295337328423483215802540725313467278253961044856312117468906045426852241977309723561295313493184945918601060459027094070396291402811283860078110703050019505955694055448342506414432549264789861228245415996183214656516105266134480501447761901660091067816917855871057094689733914094598857339468216927061206472099951913645420184560204214636927085731873123519532225342252272180854239920632839932373141939364133209556152410830090222538519305460653290455884394271683437911638804486094098323175650135933066224584697148969634405083871512996476388944963552703763400410618304968030018695892530700877232897376514817021405646408680665816702953428122564503175398089339917634019044651280712055798389360904165001499246906315341220985769141888808467000327692117307848535392107409629238366336221791160008568991549950343496133838833834647065527511700775872358049732986422943273573061817831668318794994478253500316759985447704412342865021883386949403656697447841573332259397963420855749282039046347208330553422460264030922091203342771769932038624692703887541031931260550755161886505418756999499336560898928241445453604852375861536909522938309570594121511108748432831682350137517718796049882779872594116498984129577332309996559298653671925887096788350377248199402142134297133146045052701058010404861348678198001450239318019001059023783393902022031386975959906096012355194222606676655489187093319200965573277443259851683090892251796440576425610609364730039145145986384680966621377535829579323947136500665772397367507549069020993910030238270250602254426676272115745953140867779082840451342100684017122436729635296136129683102258662649050382553778810777102249395746038109791498698329267570664812466201933173964889681277638733077278272666377525828658742896114895746981944437135993513866726366081193262435093407306152427884601511678993057550504504935161506262985522906537878945659802967794058758248423104630178353792824854084647161005714616949870752562134718612868617605070833576492174365869921327475457692561739832156606178764198408138787257549776128363140319947037636820402960238668126860640933699541300747090443389938331099145531917309521758255134919965964514419318959271265705793114954196921715163958576431549658978881377351911470121102009421106323870799987386091447387372430009997086732836052542086239361717673095327176991271055031233310655945772136193349347745768645018114531548008254224267712880225931542494439558868866420349966474843976196011072570952989418926934569482506526189780783329349573653089966630781363040451892557644847140394861507666118226086740711563869421121733232072419127085240455337117361371449014586630972410307302727229658791025205269127641391578649012837249834195458790016471477218955406182684861424590324618186457596674201211640851103450700023968499808840311358101789959305379973163229882981516862288797919469858134833292304129357271348916388317264673449371929424080976837607875055434626226058458960355139939727293554910712393245495287053679479201198441999751801046009577837826263967551085010501559493609494704773802411651172617912843204467901830502173719235081590909503203710604715650491113343667188420200791912200777105566230915875959127717708965791162615734373472919052839816766989195337621882528336569465029932439490387690597231260504033171337923922282277511402446197988394141139023881891964096496929321174696835323692589845844512190017517173211057669919499099250552999919769802649601359408419578759398303230653199949838599806144623122433963102473466785142498653982139459081921563319750238737461189693836384254672700677606530150499754503918563722458187342880947135317278138385359855119721932514803635984095362386109510208282766417688949760544682343006442279672893081633440015202449885662988766224921081052828828426088068157583958734600711349565162001560648930822814427649294888852578474849399679482569183562571309797477344521174873727725327632588625603446169577592832746839899721253504598043533962649167309170821250678627825409955408567847366395462302301762898084417155447634126927301982204317996525258143200784370917290783322177582960587591135756314938039765175854823274996174661026524777057254651619111503227333309846991773065366054058524240847786530613776348963712769578075137562778520519454674826762157069957600604953528926101131423839433115730048515881837701275013080548749097517213461897160028378495098377045030707337780546717654423846658162141888576173460243042964655622209519367284746734566807136887864355894491572627052610263892026077000756450588739365140942544838520643017046275243979242449916565751677612783082488624869746608866252966541322648144628946757387520696314995786551914199712410629514013070643284081619796633964740685036035024433591765507909343486388989854867906861836796309951188553453665741969668712258153283716119901061252480570437832842309925851160913803609743699672782197978704666871688228517956592098093876144052549210913118209079402769322518012081343401617627431562344322516693986645082355806043029268124353940698162852841886425403531174103386292775887645952860717625887319914899381649743820539454349409336670877428606613866718845225484021176877038644143720736156833888275758382621305874480670029164217877393158226275921958752524763144476758333471426216499094274328671580992081411748564657252163469929109656903127336205616632013601500050404985104378617552230973223560763359699423281239714678708372236912806214272156299144930428508643055160874553720775893535428879997873765575686352450033550172218167088662245955153928032850385519498814382162752612370401711471174507901022391762953758573074147215634140866561061225800326532974435421335035922325722473957906438260804172510752740646506573606364430348758954737682107990451466747860840876068392239468661285416789890449805189828078327976189853367519711576075414762765998569370525714676406141992952097911822545250409828162374437180628433261932757770523401058830618804752366577473648235916657953351448925411509807864391767946415620568091511257779906739977722685403072025815801836458678692506282242841698978713984345134265859100940760528500755091077320876428798169774684258628161867310605068521247644087950129849442497169142988544646610760847250677093240389946445975693066871622046003963015934357057580666727595929518997345027003328280401769415646076442230503524184970597600092075460431903955752267333781127256521064634325350314153405042779049817408507806541895761272870188520400889040952254953841451139278474752743590293144358984293520571959144688480068390324688331847045426520566132455569339192584143138631987512854570256283024261135837729434203211538293008550480490582068246428129521502448009525586544368656854310362165331010774590334108926843875195727498629798746852521263948351431806509684035655588131894279610777778962414467459698056441367924030993367675057219318151379526345427621443543315105162059689267774689338263136361312115272113459293897211597253007154872423023816975532727988320134496164775087814933527872068877538167117130389207945605775097045228254083042128207102312060207681343377774363877693236798208989118262085467166089953851416497427724194514580887837352915898314902091316561762183724138092621960828220190839706576604304514559586400163478807676556346243494964971209187205440833512851160575811539337085557684617675499627479026990978238751246641092635490757473095147478945259982461489665268520484405983993204473567941385775140952621311575266583409308567390022124167218607405772931070197264477837499329448241594205673132542111494053387483277368278704777061312829551433562715074044794271772157596080570347703863779692799970289703638252403326904040855692042210186544558227345230359297410894558633836373330367613189855989365417607289211360303382096155172069505524903719962142024888050679086681074349007076603809984650775790350124159246180071426054946518177739760678535351759084146436507164336209925529665746264914096763144951386720992842621601400903333989654355087443400511843039681768619246236755270699406215349220163794844595899387226002762476856098313603700934615615753837560083597315390728578372597175365577828942326439077260777877088007571277062762613591725016402407686341087004581271565947115499792181172728781132276438327114235162033054181675380379303861648899109430775301122931465476742443389340263680443432022768863573881021628163050640091629570889700426919271849262501772565580981563484006487510979656360595428581860514498617824714352880497875193860435429500868528366944066673408922216869442249122148262679555105927845236371372075093118395166473161031154654828932051989908062768403306842259265624664980566437735749282861505420411420869571412721584371875683500484015814076376333129995770732515439591063635480537909516757293864272705499049702658779473004418228005186999157550609576260846531196774922574822319248043612413653869506107844785856520453915397413758931107796827188522788614195784770735681766206676713784688813053565022670144615664999768638105982025693692334824939795398825868902565325540798302785934497992634464190530371340637322862106718221373034641450042693205965614354517027876823286757204481828351419347093454639254415766463591496376329318472304880172988627284728736341714204381941868370141679980210619058047618241882804664436693810399509422426774009746427398580747134881039716323535864054966502416478547527572265917706228395848306125009976051735226493710335992706137693296780581584858605687232061701271140964104291180184440092308559377839288641754496003345321296823391339329809199203710239873861002844394683885041227181662881588871457043867509684218976190523691141839640418148882965045098091390113482938072438995344331064638048817917950522933189488519593641553631983874410891156170593288588061558415393996576049995132537168082471433265892612895834979138299595372943171455491850164969706270673370004255491021965881455087822464299948451239893048862387013649043258695720401021086435346704723851935561521904886185953313525701158278659152767038661671904144717368612419625489573837115773650338270411086403804964323124631649028510933813644763776238782290134278292755959523134300351097173347882610605530076103638368978646584679153773881629610005078918464234688211582157789003554375081147987749548843084129098282281474349020476538074135673717087324061646342893711079469976673388600432293986265036103946500833418598129991560137138287406159435622878849955094006163813741769127469184242555258874777488573829251804794319854160078477555800618169839252576669258684099786188803502954029819051245388590554140390227904489970167233288369455137171499458093216689995130820784157321241304070475996433640521439989558862491223349349888603500491156677216747988697167965762145201115024814259446729261078680066086811312194877560779303663776790382578681785711313650158502069499154280532033817836576268486011970011327334499480340688362835124423463416795503838440740350817594160675649487400488831098369506368207660502856861014103366286529833938023727657367672787179513914356955984039013549467015199284154992363681377780761140923657941679047814684457807102064521989141145994105139976763077652380696275698634518213249025802209243816710596303881449110267424841409044133868708491622929267332426547200564518725423805779470085124481924037719188897986162177597095666678526472071861815102418485268096613727594575339742465178492469464436900211097960583027079088374227874903436437975197210421074681376386515198342232043299604622025329455468890706405092889413678931926833483888553914307842547882147661541505291150393869755235646848734960779582014415174097289904025453049422583640900917409055621404893740279698223928169485814549501327299493539105027591123590960584783508813911497619327025751593143312043076748625153210521963285507780717581363105681662526440680081720427197672828854883889308735748572447699881021306360817120171505264076409896597220534251212493390135107375180505116475275426391487350023511537936242546473836795045127083293027519145060080928933930537151211693207838228322662904884776005505326830749825675871592624048928259178179937742538856463855462896684509260700133829219497570068761742953451634591765262098293312438888022387912080445468296379729766758577962472999190941049797891329648407846882974752642545878969386553957243747314720384193315019639532344361429659735126807687783827893010793396960524614706555416113107833851250501683695263861181190043224425653715950469461915490498575325711121837440481027565608278447187353159603672411132043961378829771403625325255335174196245318813398672194453813257694070711784606405171226682302593509160609139936739886224410745564874171179356791471981753150722045645190044275561053671116557389141305477422719442426443588640661861179178290015383276842150171660259682670877528530827437226608098875359447602472106427015037176968168404384229533607167934673182346069773912835188065625508419148626821273742767010254274879225433764539638378498816649642142807300993068029514217737620011758955657961482555792541905903884482154444260113487377690863009277925042746029775102940044749786032370786400944394518961252595406420874117292781632696842604589817060396407814398827621480751688934427055666867176878589765386455843505420686975580433976176681078450304242481812068802624482445857581917500918556674693115718107164140749087530117718220479228596355466391152406446451967485004630088348274853149411005727348318111951972069010467728558692256382560741495415981266618979516861697072065857250630472571660004744187220974437571545380134701421362542870109484027250278001207923758067619385433507442341483197801659287052111528687136569477919622879693754680207299602758478215659687754232810233862029215244354507510005259973517470845420472466652781440880190646360512746522437367643818567163464402633887197175983005429086147085509536975209037108365799827719602309916297176406841903226154101165287020065083362653559368564571879792728101324241979646338485407251303636533600471800698995250876778614207537522631980813432368831529816295607795872600753748281332740333719929590570565978101794672089529716879021238611144904803170419373009657903433403880628733659778538970164598115491081299730351007824221456743336598378648728454606736861096453522409514570754733010305519157248598494758768562610795990386127661525748616103525614948705602235315810774430551300556218740816283500253054649687539052274474837268197403691432497810242929272393240104902537096597165147287168484229168455057094876427020386156858030273909465739136633648970551635620730540904759049809024083326106546351865040972623204881518634089815725850502697491512674593242387040895697708200256635324269831848117308481254073529153203561858574841865628802579099289480381807394276285589262710254091705931185347665524779561058678817517039185411644174141361307563182299309249026503677659183532827854665795640588557675998434828840820048084844253048520120006723824012165340471357484826598617786977642978318106727892805336234388849529077158783680078646421850088512795887731077658761282087544916959927762520145072840419904036102947763166635287571663457550080774394837294193354881003762851360790021084426819388816290993215429139533652700398210714363260889248470939842447909648732620153513282747645476645027642674128082577986002165883020625370856452862795261055738557491255500883760002564872064567361797698396062932585019633770838886209149493627399824400968879215138925910565058626798070400729577582481802330092013196420499596991917363499885777729883739226393340223678070599904192370807030473125366637263966116280734710075616906144880201661527174042962390744943861210016169189049175998220962251293570851496869045333134873631821898697858980390300606673123090504222709199759911444684173285429341294955672674715542649604374274733418990934777922875520622103863217725306162293261139382657250982379907714467671819010720877121901339891275834994495223178196199537941927799556379061341157057334584311181367244129486697798845189736803034589567554144251510158176939331402399659269366625993017454507137433249616606087117209516801349753465655850071281622004041460331455979943448362841909103346388516102680920500586326811902517263303023212392666046446375945285255703991764757745964892296346476857424948891492180044235164021748180409580791604926304833010485642268084628966861582045475746551588388053411876599637310847400853653756018996247413130524472861331531350318273937711509592664513506955311340256481717627907968226168507153433225482224300590203169055651450577133918135295595553458785205434072659099371422026202702429333860184232151774175070658812103008633469237318151981511581990244662794056537106522392269668144430859685806651646271359332287710680761524059443905745022308716540657681139881112089556448265753722544896782406317730707700006316759789974748976984496243489976091548795283622131664748773888057439387230100724491211216574500676829220608713256765573840431542622489468076136910021138411438496018866793340455427374349085622963636144408064266605358285949941195262553117417259353911890619415769873558473728538763910347234356386806392750991890058511305434755827055127496373372735867713652149192152495400678917537510308525263842219827415898726698205452023593423221462019507105997300285925421706505076502662941133065660647308705820344957168542155347119455299166560381933532897941559014582360368830732630246712981637701085773651063880799737339845659996068928772747538431168207449005558002912950238502873572517792974732382944103501754245250211572355463493279866659538942409104041059243049118242891000023883123533742969377125332126761388960347008863959970257019779663781971347200147898022027303028816951933253745266412636209793174708972527164571903302382658135502906861288456952865791856962747101633939630630611336614504490462793972332417059103045729922662750730093811919042719132377940710899038869955822945107750853263677265408777576754262911944987475779773069869511720788520629255303914954137354533659648097313083671175775821356596147548845899683467885801636476885419366539433492474352312231035118979268773512076266860815772840594862889250486776489249427551341976813896510807224885473321486642798271055809539963168918051618791372157799064856058113770470108525754433350562113139955191895364843340883661999778185403478896442271945101823177164888744818974616387537980169510152044416634981963141288843215969313516077372144577219815990023632738696973292176913610641834477924028458146684649259506822166082990538300861261490416882827126051947616632352523421854111585989184788012706858077435881727844782703750735760206179830884130443599132938426136001716877439442904011415863894068501885817165574411398860323921805556841355634149498616082731296582934983310068105936007173480246092747377087873266010449947661083878779709613868228002613665292471062854845374908098033056545532251178100784056142134088879168747152285886120866590766021525813262225639192945074361303821622944544285832956349058630708573722037038813380654974647044953687786003511501846913457874065801571932300522260619125314641949653186290999971582001642374702344994949729752584335646218887196453917711873381854113873766675301089292998604052986492851356037414641277197665637666309290248695422791830454173461224163498000739894380231119566345497796653245623526831003353557093889806065351487725163096856364888336298543325111507978008719130647209734343709821027962823551846696822992694890382733631599436677258960566209217859673404141421454733165415836287295007604087861744285229181452887743998413920935148170033535806887148329325537477788220268321132481375778502928796982782205345345803933191780903257724484390043302706317568730012841721277227302869275479703820891889020827957530915421521575862784279863947442790381786860830311220395374856950596840153381099158126672765153731399765173393647357658144030715470365813890127785738926560373537704619912758839183391253911526924857919578739686782981153831039427246752525740127552744763991634470062651192182808221913400214042412681442535035340925180745744816249375087925890197853875150529777981924182881959377246876542803366936306065282302493494586187892166395887731858439262455628055753988362772583600601984245677977894012211752565413515051949267068848097485699958475146494087441129339743682072036712617226834109747461114438322771255428579180295397542677404675583404987558697613089645595292808835183396164748343498582452116433048098333535364168618136339755968996311128227273070353478277459563397384955916891316887203775752348556458843921518507660901071824380808058610252229597418434894453148598705583468790155002430195261794414624497896321893164584153394099355495865234557455818944957052467932161778567544899565743531724054809992880210525319532125814145168816855025615030374649896057096913055537912194066753896970660499196832694661178856470360490836472623630039194772780285721863533700113304425700348146556184404963049808200171452181611488581217738176550781521636551447903191779712642984530331958568914717754760483137374015351022644068481273973841410225824550322497222388729756838151429309200331738035156480274538432281309032282713737323984291077399506198771009979869236064576701756626410220398733420793888623427156156126669710546499082048140585708451771660658155064614056243594347943307852261288546661332423422470542226636818932782605491293199831830651987211177122032936881943050582901654264449977005657981825814539452331954547211391684179763980022756120073084416852749919113914711329231439317466406644672431131296981264868535411058089431028327558832333712374334274110270017061431916236286273772811152539644598065638358306157577545041758119241262743273801601420325612508396582263582326567126538241953878988310931085217820126162353074365954145153285288824819434804114273745568830962497323435867565758706008683237034098461642522028832351513986856905706046461452319297720211914652630105549558628593490537152023504820388013811104811276725107368709553827121242330162552554632193092538219363345351570340425009706677757171812757628324835541129135874087250896215054978130333714073944960706485344912857175189861666636363040015646341634366865506294900930142592825704959489035807500247937468812082390045646537623829427712072143548506635632757538797218351843759527352540488438316166926528802828978745123240858027802693026133071970193942182524903970144555660184928717730883930836402592184969710825983650118589795088666901215814259604169288851032962645572291847607382329184191302211426821071935692481184903536815349043865389200261746501044077414851422692513787913776427999041877962961800046382787989672819983068246618188147266878215439716092353346389613742931926203193640934565305911232272621848492434760887572115764207884803059147090286436052366801364486681702275149876362694592024204982444722530352600896328552831057932861166670505407462622266467016668610372865080985742835645272919903750180528828531201551244619895439368387836092469690642978904752307810847360201308644703625270968627265191169367840759129267864395765250452271955882692210671072462968787583725813576907583124901573834201067989781219402681463542870317057487941151863743045681588230015811972845921106158130837106481872795402722149396966444650422799047540063212074732451891700216448325366582052009130812318435617747644903336680733505768736929620105415250469015930191064593486410501352964093208448555909978785961504595087772071035282472180400948918491512144364767724615436369115295039574731741154663762688738197366915259728952889544902426788804817729802236382451143439390024363599933942350768075183176931609458994092985792375738513755162736559067738057856941577466306868999377223921050013577602283312476814746328716808554105264316640832458230937771206736192050532088775091119737948806108764314097243997439657170746413001622518773165078172091424993174847161023937906547840941285131920544258030592953031171223033973189051745381411152592153988347886650041395810845872212480299624185730837423779915411862332853406139720246750400971935520103516113565265287571022367312382345335827631514542790846360178023817527094730062130436771821992073518956825766931569738474073373027673151509602698581474575903379961406848192358664215124574979757494763318202000814780323768038315696099534562916288579049516706171684092348576543598158957974711760271759869389158795380243270589054632981974354408187662874997339334895755491637224966342724741835778801356802186979574276946963041225136980186866130840832447571032185848293248715273980782487919226781827424169433813954791566459147439997671007600628061259615694371191955666111465187297703083580227014350998762506528396772930159917174794698767896805976641624575251017675235022236165260150690431671175290105600865059695775721256137068133169917235949417809974526971717002646217445259943787226329031242344242048395710128225725809872521363249116346047673382512327529914769076493003154502769390022658038119698542165927921301336285982301516281674663324952879806624131906454342297858248740607807462503709959920625020011294132066188611868298444892554050474378416239421351543493787368959226314377695357045678023369784743479759770754431700421613609038341227610308373933658545184066147234925180030861918487289784972308573052380210880131833856173193486851479012402710981372124346398906431998472004277165610272897167952906446954718427836374472633807144514562163623417603795901912391346074204529003529656220147118669372502614938624086123257939446926615532044142186239359106386649482215528266747551949609030542895060468775961899994591216202221027574384307455666097307742066983238141251044825807547132687644440442035557192412281429165102631906099990348136765306313318601917894736277956166692631048874197667862063076947663746212707115380528445016487746843902486102445381743583141544018307885339048339842173913474581633517169325861522642483314793016257606243120275208098985036949317335971320029251307293001222367455572909253796165003443853367896694915181461767479211033783137853600039046184785513658273377005054875269719292479175790432453090160303634407945951949319632452496456646666629121157103080982834441691854511053305484148437778369891790057178931373250673758041737455493236882849531061341520057969418870742077288342001626452604719445152067670590103403043558092327474590511537093439350919868182385135629188605694748406917806289900205116572288137275183669371060540867382526842711737627114809356058883392034006477502440314526537924286624300957397901861550842602899388582116302386224403210869928463207464179509286777109512498392940635817269061459768344198833900872059118034981999486876069895124919780319224088335163045027796126117439948193951272573509978331735145763192282671120860580034863505707583800754472043467993246374406601922038506892964230577658526377287510094563983046191833190139323907593800363385626502158251158345100748422095635173827143209754869989289760446246296449538532994441255859377778162750961083060420466398994530812855922511091428510001672607434116875547162026994933490578845184439410670076876218666330665205489418056722490152534495267262396559088423461183428840548345772150575986279485289251174416547477072722872674935045548045249657176988288787941613835466017864636810241335427053084518574003251280086562257546083600829191135102983790002253680709665618406489280404744320918386508485313918852977304507559603358134492736928899135578086194259405649343427337583118515431392813720390972502507876220731351759447438417499621704680750968820596700975311152757430627102533314317297251710384001839282097378175906980532557248365045277069010722556053649351847512262746742969434889895619758931879812226780683299862601764140253697514347425274223035254712838033899696082521788971690544144898753961176050251193617996960209889637833975562956819659996591537970373558436907867705877829162048249504240328228303899810061064853835436529668591514327584169612652675239813425563976816758823553292479945137132588688790396043439230147922724335906483672953858028905610297719359359499792300295259451634219683199991302967543318968738038934850167591123266567496132628934732214366945843728796409557899335412097923313633102125145576740558039100328844194893635020506336140161250887695220018138498821697352587285580711992086771329074941583778647902835040152848144041003713857713093380540775044641799750077512423210676115070902967857745555577600730779957977753267968822561526938892683989884188922653257427129503381770795730591092714682998432260481855100426347879390360095740603688555087533156817475538895052588055058919128136670388956535507116009325462623986319720389618815325351593849996035246555302957809461188215055832501444609914340029693041765901561751932023017015509931358207056397165074039571583853987331781386786393552775115146768414782499440581303664708093494938931796289848847032434231764208127484920496712034552691449804994880042832210687731146057774517438813007013955408619108924739808548279453471960183329839489752618307149863963909205034305793572774359957446007267792602523657696886666138714247869398025289055992180787686425062002743715297677955108566903090104016967020493244895545431776336567436449624196084430341628166369234980029170553826280086292502533390250101446528409717574451959550965074093928692680080124813629981648962285966549454133931040245501649796998959684567231327163772747797644965900139555047699901121004830579529221807599798170775597654365566651134650396783196685048054433686442316333581050653847116424427574911372542433478881612721942481212552450625518386411450450103457516470653863401876602993018735271587742739320012299161395613943351960491461291752375504369531146344239549440631684887798605387208298340946261696605086805151858312107150281462729297937684319202370383637415640144309006656325632389300998074050828604090279565878672180657533618066451980931866736155413826120907159298651416385684576358907849432451234186835279812848744327410686700942707631017488000181350334117003953431218983927582760457483539629269658213734936568995510998156296002235516392658889673282439432715831797710013306714412796931997503996745251746951958332217565698192566235315649246308360181421947724528554822507331397618423598324495500693408005396390720878121471498226814374293943748306588865396985943668280976529330168625915900661426493178609399635517111965441379139476782538743597318838881338813593194969739218116151036949283072175625228794603601103791252106888988063718834562946191285520358475546715548927434224062681924890783162045039753159275294618402947510603483365234819612231969289587329504002531781934294260779760903430610980349368647827668640340200129252499044476815288095752174844988502500420176017749880430601897439172442499901127444479062557555473205752626010349444251601690751473421562858583879179717747552749208407515789555995504243210068749223399097409423511341306106501184534595337221770116462165244750480253599477758857323096009108458607526985759284972180619947245816703030596849908152029368180258925284118401845993280352471278509852884051612301942207084535816248380664822987147410600644832813012664432524309246602832524624248182463792238650521728154181878146222774643859624984539005110308650777766115252809804166660816245104263878598513411412425684655776049746376365032990157040211665634287602963177588563724301521290788464535834267769999129943427201095164160903901770017171888569863614633994830996045153470233584256084049009113892361316760635637160741792265623336414237169845923624379241415047652859481335305905718484757339704623077191114209304440669795073344104976581366617890820184977266660357739654372283593292076408628750458782202852727158929898744329404172524447443318688823299964194970401420128043947792063563189198595458473938876489251309577943406236565085183633278417517525980976173471119754532969532372550576485423565646033685490570946750949373104291956943632903843406790881531305078533513495670331578829123789409153124827585515723701678712995798334136137410080139672099589113387424316111384964880473839194636084184730242620803051223199987820537475719649075072108463300881134126472087663156694525274871413950512311781062535949791986729798677572621747713054500006320299325488038301058934484259872153007014734163612858546460647687683506640091323169366564915919301923291528731245293047792481298362203175957807135372151950764259846256155965920091428955417388915669538919243702928279047726836718976903012372772764412651152317227171903343652591511307377565400803618039092018492780332605016865896924045887735408368937319279406095138190956334200003225205765793201938012026468449084746572305131397502663311880389568944113835340649735426940710214854724770120709557629804575030232460855835749917767922889068227934107436188138890678360358224939858127650465127831928579172330716801588054590681290877592743422407255264601057958558590844620861951979616989818018776414760708784302723279966751211974976832689764147101680110027933331913188054417114360808848971642505791922849208149914233405734635122167244558770236714168787748927449051977503868308646781068585983229023156673395521481101111570429079989521346601882429416082255116244107187653388882477761128566887947818510827261829551558907129877652797497136015123958184847996605003929535649246088972108824655771877503306222553452566554503288693965743661297647683730595671471236137380598584270444215607762094531819803883951601001493070385545311808285234688683290952382743620440894962579633299345021693328739693751531158452827739786353768158642814369490638395494034516502622559044343042157001015311527916994547436679776965044908699035890878327266912782479626487845173653655560338757909325028049021500001812280443371817379116709341430463112573999838110773793360034760192054948341549383903280529937748872637571826946237822935809474608398691944384947726347790746468912608972380817511516562924639671379770775411667814200490036741542871198613041426287930550374794934881005549541978680911321615540635207538012420341647662638977171626780487910476835249519366586441479596407885995215614012102696249839050282020458127007226076631451742068075191610422430285131694703422416207203114184361926715866659720017744896056161048606743245879651079470983411695554197385890052869367042746633589166373380729283997392300582093692793353432482854210084615183897502240754104357604884734283777032373882315630556644158845175104870616775452413385993392215594531835842838490676342927895857581098594057603805154650894114288702068881036079546408522675969677065596127151575809506033775882223588054153278169647812871563783158211187170783746054076357244896163344800736972796704664493218955057174721260960283274429515883806490231312065546155046725770172611313475329373500338983723637399133235155248064488304472323549621844812185328984249764294778422276960961269426481878135650587179765069726647886433902866079926381854839259616731422603605917353750477688152074899358158108594679774256245382793113074572211081076389772510616137065124123156280121325317106274472692478935161484810211645363816334444724508750618467811935823863617096015396189720818501676767077607178118705885657049918985129331150761880622920130954895359207887257496022711389651868472063570641307091246780371327389944575127795132234110286321417781157862957373619159254645287423278993063644302269124954602132773758993730893210728279941651772599113392171958426793630660929726918128838792017720733844088559454491572126632479790322052489159522253120482485726327551187290549920010671531420473701649223199676316043801509213840436289335510202711691555248886991296795529680475957295064977502692781320304540331291358063795178456740228314611742533675781176327450027091345407373590276339453528147107941444864219249212189174919461409147702756302383811895844658855610509501797621692821307551118157683072847386783661444483904752947722684618612760571616113964540501890338932842001123466929705192348592724236155721092831292017150707657759999075145548103298224655029720878950153161855141837600300804204739123454683020323441390338919787502146235460073974991659940511784536282942772432504081010781684267697663114960088460202142858538485017409374578008077874827202973030996785621916988453838732039924019008020488242283822189751309860900060670812260355815451364859822281038674776811889114546652661343176665538634358055890626268186253061077349736382180297729666809428413308098435370234668055723094965452036081958716144039280724099380811244668216506179811597888214133078101694280904661965129274743361991594598242763571015070583152171007534933711559120102647545791230796109695671182855696421788636978626960683714642390753511138993568342380463255145985658615368424467196750531678441671262797765843433098923705545792803322435242935202168310212232332682858205481072485497508439495939997565777603920292188153007195672519709471494953343417300129248693289732524764768527336775632585094193718292890698376957633154691180273338551187075481141580721115742480536393265903258114253576358687395774798411587781081919548713735206720405296378455153272991609501816658746529884144934886063242046856768286316985089340987774478097299425990669613773823743444544527957256119935832061991312684046323180043466930717906861740747081343780820908266446632380484108426353577743856441132910699540957422446301850550740956135509570216535800008568701648558034126029333013111798371880068082976070931991667692697572439352710634811630924248522504313003128398202368704737771714347027112938478877414878818389038051884952431937615255815221107133089578733736174413879832135721372861262532626595131143625044681696028555153654574855553409033124878851906271001913220831790184888773036040141969174573603101046937579004111581069603674161215133143711650655301217127287257503271030717930714960768071114590776330790802963747422843105946067863795390258126296163797136164246853624673308477423313468273285241790849032061773092380929023218114333110112309156694188918875642320107796991759537002081449201200879471377952566439092122035230116994788589583742025783372733983719047181220930330313742733549961757008889603592608598075951329646409120433066518078218347168103899009918428662749903242856660366444040390108046453585891920146141147348025994172364163479082086969319079055684435361843755766644599893645240357366098446468129619178641875688780005538347068156798939501067970525991853852277360428246488405105841560274651158354187986056412451332944078514955485378527461844595694526716531534976619952545870754504461652029574687830406474611907489294331258676172480174230112583410779976836175654756465469837472506721603355825578526184380970500702572006192448409003638724973360577229450312037331451465266283002256687078468708445216171884191522544896701580207966071760245217056401036986693828294318800567273150330699518013317031785639184505403371861526250422555479555432806379201643226825043731864784590601693845919383660172013458146640114496529385625874420728089576049996009252827332206642218116272820192911013495951824122871173780974534494832590659953756733319424900894743924657900846828101314738480386684655470313666809671785575186077666230953969856909174110092545266237714810652620175051398469854500653286122689911243919412168541380250197649832335179452767433333242531947762624647138294638840354552201420287490084836267558385721170031398640771939015287806357911639977910997406790129552888062741497262263837365182131878064236678601928311311675553734507070669186030784789193609530169708931835729866950424944583454179822011445046066544397712499224611113936157145042588445550149244305447378613457712700958996761056356011600819899242155039852180830618075305137961490455629549803707852769494735571220153113052005253447733344032925706441699345856407578469755724040602127302652885667155066391051835833356963126420743474273903883245357790053998370628863933953543141629419596995701749687263227468557906986683239465791592963741414847223139248115164403340111135390820975040162742172301736119968809908495015990513180816221719360439336363162753068430472975239727565923476547605132218922186440058487739284567679506313065027593804927856290445136477114117491736535668777164425625125519617200216926496271319047482772037844699457739102964790478064388513005870774853398303640029771797445797995664520945872580195949419770376271905935625241019390517878022898101835949435540199854464801633194986712555668947498663751071302261127492657725080140451714617105110504831841382297828422240672335852597331393213440236784753544967913208224635888011479510026111614839332444565465040505074736452369869764696402181315312586387704623692583087579893009577925900077846431604956118411699833471755499082775691793018573111466156139891763503337935205384369201720433954275330786227166351532854532598429238501097532858789081989826830900455142351271096321675949095200407356277488199229824425383240424642228128166447604433111818627506995042481413277849979244365220948140466190227897243120621430057372456667247861984188569738309978524566762255123427585344668575182259863305349530992761715505533208478121328777561969280207484493775602570587075490961143267071287656427023772039180506897940918083690876919106453457923389697432219190931167910614949956459262273966336514763483806889999220412334060544889014937779989842181660371908672975860538182396503731722853599490794253293010267104672634735600644719144550069359042914449467312312535567381981266385313937364476181935999963417468764814028492954542910189683875131897957828432157582835856644147662900123861355986735243612179361316257705319668868550681459808733268054108606989641253521706083268556737306290633177476384613542590941192828140907294920134191440119714788746639191633243990399556744224053893858537703847564014197019572406322471254342844504883745920137109659243732879427882691098127724948211843023235579173051699949300715866671980245051772452602433069276905068366410281879606662560436903419949265197259798554375746221631648760223739081920420054887312460932462059665775309745726530058236790868938034034649064239663081951540466673176978071575047782868586087315121699689462981128848385760886614369910857033261784679669307456191279622222072102666551811416412091331642330164158243079253226859560913209751017097039736071581783940762190997213774764741378678120322237752804719437671025971595859153450675278823439996393898503824618996813426221140454347887745900146378187281219131813045519562306234560997600679982637994818648086869288758446684493668542684222149915471875613279328763126017316562821350699631179306734378613260320635924934475089343576681197811423088231565795425450954490281710947278160487145927292846155374125517048198603527908916496577366927263365273363838135425788425186206056638004344031305598502805888284464799311203998992285231246090619310630904014198933064888285196199368203195945943061736615075520646816167604023679019488770373041210450116237587831683219221675077861212944483144731701152260291522756859786144347085466503483288542330315800051064269117249210715554919047696378035021120304980680785772607047950460876836674320617787940797498218016576291066835413791518321303298769564458270188611611586177772074286903656883835625740168938768432816174377617643695767251050330010143534810684544153675473323023633949355553131013351106380088033796394708033552681914403091731759109164607381945957970475231906037460586427579508493369596476338477737465443594028558182956590042733680590352376069170574595049663734214564780268089639202113323597923806285602187866025855725370542987952273621752512027927952434479966832439493253090839094936900381694554128520555642745296563722279532131431439784142452815470476540010272721171147339340454887570729359272173838804719352899132151851832562501628330307737744779414151281648839190112493253830382614580399341970644610034194144960214060204272800564314208889283335582488336392109149056661797000448475045600067574615084800281308592519639149768195009121072782608541399401838340951000930153696788186927374464154986704720357242156473117461315836407182012973220974504082684550432853089034292770314163360253780802220470565556676234688391518975225020792025627920109883360613143493463914638985876246228110735508882873592360833013812322917026294182011183001934525376729463161989399388691542780415447675342066334724900841721540287288124892551693954316152196389837912287223821340780494695421102243178650579044334410036448914120666092703346840638763871365725093467683747294205736263476142799485717376098828083761346935921150864175490868948898783273345879128345562955869391519683331853904318368170292850213798429511896370239353967034335822455136423762881564909919753648803201691936882084651074103912676728156691298265318543099334208527294108963156351694599565518446166797973372170926876911796291349261436699539841712022890177952048180008988454853227156046164501580232160739291458021632086427971978908920478010145268733878517850765524138550084423135964779599500518083239304906372895391845952197104503998196149207543239973967320586617468805173169647570620199949422534962616803341582067749179007632717714562729251959878763380253378577559138761694466030248973381639457002221686731562533625750453360418490854880506089149392511192530275372002588221795893385459894590475809639706270089596595863585881517052775364753677253893680510377255863557915449618179996276005733518159575130972323681215977666698038702563919230071266022506620981189769436588504770959507057064680916224847779719446001166122089337078924202336417036787925139856155976908573306847175845646553647130105065492550399688944969744693109394985182644634547253024503982823529823531014408757969647198962197629665384209782869472408799725833870382444125896790591569038955305658495127981562387839536222209335634298335571764081959910329321227992830300910926841097635086371182496840498428803455272546149331081938865009669037313974247925905236223127738946493050401779168159296102509785536078082065254775469301478847214014031841564604235598644910036187644253033862106500304327780053571876484900925422100928699076080485530386320612133813610683153454352639271637804013463666291135390725644732692298828667922620314843323600944915684891748164806182058620909485781220956338823773753220703302418951303764421063815002053769532303575933365664715185861028358066359498337698796286338723293204413926382737787679788966746155370889740776064501492137866658443412354471958065604287454218803706405297151118651597961388435705650489200792157474515591036752157469674039099772690309477678874726944379942859847691661969908156373849509383718200190047795254162320656884619364082870758398833176811070359744578720590642231962002775263354216343407227773390876177163633436545045208982043250105012047978118879780016826750751044911252728498448409314542822236254609896725428909422721726194458638287389468226889241159432284966821133243974830568615746076855220895236377039785452508275745075898241231266587989975029481281609175648195782623768607793172666584790796010580124894640742883545142913192769629633951662644581148535172241377486884563774390145051066916561006595873846821894281216056840155008939866417917077925452945087116340473718978007170484302472515150144328843795599765287575527414665968117024119937918531526619073869303467603205542761622630546805720081498697837251855595851957445064723914404374054326105954705065032245939025950364469549659398801092675130858627119490577650464304180958998781205588127022324219234881525878553222614556354406928263924514920625700852690561153760420506345139869648473512927956318926277003758654328614916657354053531646646735490459786129339044224522512637082089322062419085910955561673868048009880106279483347572225031766987554204604281598317396194873188545447580401772549925449761951146114414518116208840640747293127591733698536136850975659641541601878164489921087089279662880426091982287440986611199170526649709662422626950155628983963225423608832398868772471418417871035043161525858032245972364578745784071620030306383941136916945582919731252704710137533144270660250898741843525151379560838636369787877117590899399947539652805002171476633443041574040417471729275240125091143823355492544727466901953936788976909488434468810513956858051785546903317053461693913382639695699838333840813005202936246113153117731009942926378639263475971233420490742978260973454090775151919530294795493358838890347901403037789689473209331929274220839158006222845449070447135247383258910378704816412604547110365667902075547565394510366988285520907151807004466760632161111621401658628196098262642833685284321831454693152280203836349152702839418510977027361515090814976999461220421011198738732169559044962967326249494400276512880659581554442669020049363710461053563532877777061609132336767157429722927679182912570409334187238329938745329407158390390703552271734377034717661086021260981452553847072333386768858617625904704014678075895947628475579642571295350218543228511204347937847456617125929326781551442249303006366731336500856764801691573732632606953717005065729352243613285677357462983495263844827881664729392377100862041398066646790075828775333624056928068615190688454685282964716666106731487397289213624263132401199478369130280743668597252534545192225916481627774194431194079329844343136252169631228942486230975523037669820414758281992849252875027980898790466492367379661744816719387402791318595918893552139421742199251595960654222273999892973045148309898760568475521782207883404652905945488873007669709841637869759537353290383792651735716392500437933528888599808846195818466409405082534629504994349047684292929856920050940239961685882954643969964989608417586836646922745236840847788527894475127056915102134074082251378411114755268440062193515179468233225497729457336994473394879195512101687918685361034099205700392709139438522812188080233966600923939296081912592395523293448429903182382810925205657149303919993654360827460140261912387756662006311718053546473771626753033965155402962529728798667447168239836831023158343641633232878607813947115194933708495966834062552649304443782079745532648145702599840702886734653006500457164502182858765349161204912322324120851764686620514735788536679129723529243627845913043166231723627928919378676248879967209798169626752983319632804989764391253859058844974193994396939183499085242438943939637497621751272437072878623266677285630353135100814482877017531988575759848681481352094283904020966415603359939224588263260508767676257484267418133620296623870239600463897536618987986306607287616080205447411335407167585531805274643198935413160619029460144896702827999194205374100866461753904402677066268712450479461651455187659055537711217322674391845063393735347005961531362248615720627111961618320854461449916682030044028377784218919481103338651681468667966627578695549801795278561599297921169805352384701237036293972005259036860327331426096043921865922577808862806175312975077897035229954362873772985164075719660854507136335648888407712931145339612134774088507151384185297050697275606317311127414751435469537767231724163136945750429523842610517549360060068349513680284307307853812866362393350598465031733827894764287659374255107444373086826077986034343992299632798434028975496290986701564652181727353364929157672415153278626383750216594924717880724117930800835293465269738107335387085976147555097979075849623406961622335981810040997964216907892600975763459100489608295301902271268490729922052374543971762453906645820115421961601254900859301137013219027641802948158895116301591843611849617631832894862498686745994004819998292965938947374105796448967141581587620228442340996545730729609425076028071421435255897128707545827627686876595466011605434893764889090847557636922334653837389078399889736742727920164750027300622404118175462414956718971927854669350141576063716862413953852022340589434117814962586609755341098469270366973713241532517538382575337987184300647082891516657189120238826913118017712607022957851348378684116832089697513460983041868355326036648792481253094205774887161508852069335156282393989337199932408593085872214638116266013116163965792701798788763610328282566533459369487697159770111968601820161030090828397455173636822986486319215296783485668751842757471058857620100076057302337975002943033851677899923601438180488464934561263389265918713252121250953208721984643593552667646025206552500231956352259613529412068400914942318991259457816585021384497794811793299853729648317931978286671928705679207150462304863431762076540708903476113433496261119020347678265899156561751758492265363923863492408167373912015681708886322841777434608019943464791706509658548756469527860913893967575111339382404430672073915247036117888865872254561658817469554124824503487330257642676562444269936865000085220506331603875891054694530941394785624864082708844622790668271158562812837928718981074912882285517774182826592183768869135348558624148836519575123237361292837701772324831963318956130864566959627238274462520410705911945347841792259883366729424238941981250104668975430288408219317603658431983554802670528296139593764249068881776074471432899189883659686016853940952410996103616974735693020963957455538326204396532065362344628794995718703260238199534455094720382265532441069153047471124230407272073497915791734939652709064113175693461282481051523550047022303512325852688878925996891602955139519470365717279254580780152505518110196844289996977250210438591107889980403451188119103844505197853456048563317302196262797310968652884349531376058000783128543940759037336497962377020543336672237428721091342458320700791800147399786983695682661844535104700373751817259692401177762078397819571916287440810918346792083411361449041397522085563938761953262224622128284621924021075739837052140373628647956678580374371264519564309111990309502224872420351625063384569261471513557574325286098667357425039572132320592513818522507981795682072380206632246582277535351450107169583442289420982819330197451968027226739417977059255122292563776392996103324680019547418319097272700706276076653451257446981830536455237370224848589697541383455258386643126290509037395374337519782412006149458570130426795135738887704849697520329831607183212971320352499306029030512964552262005886120922674606074181649174422429827555856223497586522951897285974372170496930546918038129995968262619793798127612664224920128757909577901976158966824448755477525707843540851719739976508952247706721228244974964067056996448305025870414056608587007017957943743335192104976382072101066588852586808212927943866061629047074033747950808090455625514551797802129398756902114928628812560333581067544520598762950249120787680507145478006546173075177707671323445443239794470044809751164055989509908472146256709202370498320946916691921534658375864039512883529689598922795879753260714604841058510714562293940819223842728082608660444476360499421339179892779579842098511878887699831763281739825127789470282673481881647826718673516649167021852423062723002413588606505282733447328180887600593091551245642867919857139795730526908115627120077516086905753712400871543873762403036142566274345627234634980815019975824709074402936247704388875815258869169142592728380731688967196742717580546164317093381651994251901380603536319897955487240550837505136358052384067417732339999684434741962380437600492896480005242160169635419191018194502412752818367093321684916436844013615954395872808735380197857658845103821910815300783513969765617651138033783656342862337622826690384168342818374610154294277991387077159122871687181747869687873909324580367566577268674877871601983261177455194530173536406429931095775694403319441536451695372228825873972109470851679259702046956231554485869068337300142661577613953470952472375598104821316835702899516518835199488610593202841728854772364901000332289223918214556484188258286492414554402005633056333675375608467217930441251974875569602736222525275388618755310550970880006481213079363404678919860218269938113308790580365132453372690845344156283682704148887008415345491758660856742530765999077729933963300750041613560559656595419468163957980352504883006959724466418256734529526850898600885550716144670211621777467556731334899585825343722218991707212156735377485358985386195648596626084013617356546936086450975870265034875030934405270757033910522582470927911561918238906326848480496816550900561941900557695375442284622175655779924315564968082585871742305862965028273579715527949410200691743880487984783442384384932307588942658320363086480687875472622181909081939279480631792831524466568652473650166755258284154316679504934877956944010532830247668265153578723479489994924258549145334330960724007016579997597845223428034180582862926750444988048819279894179561241260557742217834070363967435991273442681460765008900377612753347111195562858221406267654421846294953196966171963217524003592517675272818459162310518436656630725495366562883607665643269298250945461378069399157662163655201015017629970105509646264239759520934385922602505751507128273562879851301476052124118748296086492123987797705963049063690859915683562280846047932484274559259098644285774959283451277379217205756682676646798570118996521140032750763426695843520639148707822295520426268033397398180766222891785299510364483279282491343338252227909859566123260518642087246475733438633470948521312819234919537525256534929153069952885684139474795942451930381566431555509099385018420575419279221728401408647117217610736961046945116479211446253763753985068404298822634338200702110884968972308920384927363727458738748262250345519313801323850799219014272149272492330030673435129892906572672046467978855167748962903285056864726527166142118332011606999538256301969334841869181652517880842684830321845544295845917404159568238397449666084047242430388319189018132397498646912033583673177398524960112900770210206002384449995055626612661825422752538942416798411414583098843683435093705421104465270877853675379126663091285299661914980772750091744093597059831044014285824140631283529053403449722339889445840906148506738596344323275779213129386805270652835439685831191410140824882814265406751026776240295700949645600838393143152244836859683025631029860053054760470982350840084702386718922494948000714205217838975710315257698879617089915992422618654727282869493543176759430161278328133000969565419556821623423936664103376125782410844115929772400697179563574351011016126489492279794188648066993951254605646374036481067584040376631213580996997369892245507615158010706454559609613224233922001822438240927158591415413126987662675591554838970888334657200320667754022018098782894142648070575418404290928024159074255975281108003832131329942842268169881591170206343579409888772459672000002806831752589945454444335172248975273529809689800010081494055432345422735090497425466931540192156452893551254355840752863609309238869213508542445527398401074237199693757568090166116195010831850115704642670152739427041600045765461619872804336960590274388885448948492935033508216215216063645476638202528998764983979944985196599276417771760511575786633072743103751882464539326373028299633078809282436643977561367034385657420606858070744531242747839787317256093348336602193825381703142698712529767028339630445042026539609000177037944537651939299616992726279240190546312032489758495303296851588354114569575069781149241780642655798882968385575916407267871762950064900412059298612362021712446266919811506503669107820510086785134631618924757908954725996024761532451157172500415207249842852257609285465338709179804356659768774448229637712342342854666166975548245591391031722850831407693406739141440310095964854494368419546904440929472505599189812589020346167420292358250303816213494891500551700737718856827493611633579181207052824176490106542228876021054219149691199959658255563995217434857257038041392389410849005235483994104469628306866930021115032507486219942615378968779880640566366684574485946393215730371699460800005833423634310014237447950185019702892919103783713071122748445956615227025779518128795040452217452230357722958451707292221914821330389943103619297764032236223532142448289056460714422395465524759274181905689768924895237332255687706821431443892118822394303648058530328093311987749176478698029446106172473363956924733097706358005537374925987600228013627102578990993946228160718471720611628260276952005953219566786557224498122609613844537680396795427676487052177368507002115659689872857849354566042104153234584188019111265108088115491478498714109139152754578922626126681147424254446668317498803270607809570060055404006988013363030459940821056106619527814368273427437968987567003083208061070783463286401346113813091227712518147525575227996947725454270519579442987577139732984212340529653193392991336963803525331018016602284825163882638865225622476383616753983794646647399533827758434628468757466546353930251034167649073975023183103822315412852156815115011919237149599104044872073527372809390257145422883738886881401644531160930279943316979941262242056591109470640866914853799101192715975101989016883006650136724567659539298700467005693409044655516101335415961102485436350721038620781117889901869460696087523580713573449330459319108502668114115927304494187874638135854291058477784733643605564407710182227905721387127583070351143574027316951639351402241269840806643965372692442258076960531481121833008623588070693932239965383189075721809903984483587413594239661246321469197483845750107938122391239327388218019320662180288142285777362308050361052296680201697043892161868199021055798212303527889922148186880989204895133708143560107562219560308360866567514450568724770114194356765368640010417934859935869191881347901820705922016617070321318043622585048431893567252722746672789106406509254150580027945514685369970619641443072799873543803560349677554733569719564686288131124919675046881907541069221023703100845995046505106716876805468757783285637462387195263721658189667454401625667454754048606659142014096364150622483739018946781335644921109656657207392301986623530422526058957849582759620992952765916823736868841967937863439333192611559774801027983460441769021689582492903867018852935978299712900707160950569866749706562705976191549265802592639192005710827105031044589382050770899916644508978197055572243334278952172768671713449871100622544745607990967929489458341562291230616961600908083245292640226994257331291762906156162664087578460272157579894295079737438675834732864143082383165431332305387432573089489521430505384805766924011527522656358414731724349587552107718053974854443441275477105334945622770995140074663376753625272962623828658926589247548527387911568342918624805929842440930795764921159126439678599681273464645899118125668129829854060929005834476795382846933149723257131203671620092338508279103945627459615770108059080797893393920426567484373834768996913791089341881900729923144822952435952852546741912361636489925681151921157666963381672218390978193269071788793376100869892336299979525830503426175091866121872170546935929177764365647749932632898202791246694784015447658763139552755382231335023410439634858190874598210957589164282775344206644601905957407867705900496153290994519232056528457750502874348561540776426516337778561597194538326067438482645539486344459249722375556227214705355999722848149008144309909319075855526574882758355450158609692317771444194622964986771348201865489112300650444968034432460945013688372588357046199373777293059958213013960990105830842920837672058699515684231636270270504746833224573061302238222150566400150617671849012003233245382441803296835572406690666596870891875697623614780355335742899814995294848862676223808214731274495056649116976984937224171795632947909303244167903384994907661595086515960114373336539790992825788971966597076693518922818904752006754787389302254433487169969753235072855908357685954308030575421015711295095777261739296245395096878675563367368218859900960903632761063462066561801023020302001014034763123762835836192332231702821984824582399024768677633185175916830086009815832373010873141780942134526335068819430750739035517909117253201536471982929820433984756353672728475418933838326084397738638566479076339119272924372259699003421373177446668777480378433348318235236939271791261306907224542337167314113143711188904928735792697847865367767691256322189824443282837941629918344777072564884567752811750508506726507901766107467300327720845060253969991533802293443475814631758697054235579300697154191240947497511932837556345663008152497091298496798420007590660529343389866704460185600260757179167344959623146278589234403690594687410254761660408296298290958317785236845175848648861487681692267044132000150383554552798031266904066608155789788876600712562201095125589315157670392878082517381189525407482537297769549667510404390136298672874054151050552102109400701099612516372380181006496151053900491435379690501036258268674918078565214545292376160599833898745368715577306967293481179390857349687936721637133259445698153385594053283131191449347513184172382728175001582066342271357639902384792130185775291235955783557983711797289901478327847971492671358195199713765514267095246579001804203497459201338681973627880885446926110630716879230909674567852883858252735478154078401985852501744127129131338563304006988764426484991436404236611613393482138561980673470277117750406636552279384469297888312589172241544049158201550450413154595818111805709151464370431373681454628118663649503050722230702640660623510275532763152991446096703623961943854221987180225008059555598314864031000952140766699196641060426210891772000494821248153015062659642629553253531451328457464368496439727237616163794603458571652665574958469801644534485914589303824746251096978593846105786651646404993177777590682683513817416444164683623427583126275172656743805121547097352678639380423462577401146603310998337118229037251064363184306816359368279418482814887998168259269493425897017297260635123080320537746374949288513108242752005703429752565123438434527108354568223727512019471064290309805769907930092128744768686094746862831052816343917154502775550569768072158198729705656624662379470536421266868226074975366927597869028723132678464608477595541590754918473756987760071551147014936082756909951154609330740335330640246034332165304582709723957251900076765701022449225285567917681851744234876313977451505122539488957754724854919380715877665524198226636487392831814698149306501524441141956661383673612055754942404538902332575145012922594531133540395446620656451414207796764375445770548992697533891855445128258005558556575377438259766613825785121647909453175242442127468305078178250332548569515797310012371728468393712559760342308151756271716843020511862758718658371936539667017692445968447139588316679011699826493202482075283240174450218982223232842437169843496205937271866057445016561924620566220664295758448175552367560524022883789293979472181529201806869647301404062573153512954228925217501804703006087703876346169567753424604185784646932529265301486542134075185247275236509860355457459333497669753552075480838952440679121896423034314116953983768416682230101028073524007323652389424964566861573664252912515754202259516074099188471948916301356859895522053250662351191722060355141465805877237911748859592796562557603359620682727380677118036281611256547146066945993926534818590730976820242300325362609537285487632703416342183587762044080538026733986408577704604274462823841419131904157857052950805406650805168696579455909780255434312036065011517152662848986018608178760883919262517491220527279553813598687586096894758140103985580958609832401422912809365609534492628305040371214897153267823560766408222875645672090473362890013477326744232382891865856403413880890902264918854479474642331566745546577479323555640743753723181186558276175474114074879005909130755106154090634145218412695808168977072890053535077949834208875563210721898112058028863650688121970113866635275871302447194270375323731875259701298945437655081525158479908887987313425076281731227814358161153847255373596527044512037302513721674501618617603546189421273485393147392969811345402530434548779219594009714647186196839255168034814376842046932370176975682194764623816979766772180334748888045169893569904953443591637539416371760128458822584622875189615757074231595442147251364389337980707117853186604958710880775184666430291901531595229713507360045259874762313587240841493628073255049306216108566014882493838103241635837809285110338149370883510202401031085481326063063246280305331643035722988885664587910553047396218361669764334590006237137502365993065839252907306134566394401328479510410401127826711652534245946111067749184459782956765629293260383064533293298361875877852128845989234156485974836679021132024651421470503881557405614034159659361898986500133762200021613638617490061440120786501194432598698473005186251628782977197809244145391828168338764072878556636220552454521207030448806351268492912854255057520646216265761354572211136315186176255008797270120040399626568095356281845966315759695009004168167395691587638369576052800131112641099251984332165345486037509522848646848031815262037343315760757390350350773587236776832998102202312029073500865248036093101765939638952901117195109383764331778684235534156432475955834033053762113253297795009220179413082315409422690068832059080839465964945395123179333924069122889432656712729686692040776714837672913964176474482662939118006319808035333668915172806272622038238138494064288254549581952810642292028353066626014315736163304510047271957433583975154585627463282742235291809829889707637591682252459197773028755543222049076933160282404190010966550310050371294830729403542779117568910296734288935569863812904131043323305176629253904635952306527812381902266369614446107338204655944781474053627710547471124381152128217913282252268447980977564413195926638144324728935100108969089823633625208679078256042539188215397222392042702324783728745157624740035183485400630185006442352084651803563507185224522266561017409838256617423328259228175147171953324250924827641300049336420003015995053442780301895657278947516426348537113990681535712947128772294596235329799943421053155969045627876495180334440420976653806345251928183145486312216814116121516971446904967274074544577932804112977246366630470908858767570193454652151328326049534607710745379224779119698383204127022219879370613183355593726810471219063529909439257625893652199014533337004508864216279714024096940865114961334407105988381591160157654561445320037292340530558975849990348520407158839951113848001515776871055156300886695255445941642550704714036423348076805749967835458710385712080101892036876527809154549718568595398696339052735028975544689523330690438402246020856631691471564116662849682120923396531317005710869904077329139920700966588082018570482535873395909170495046597852107950099226887864788454011961427269829470475507551058042490610042232432999072798863323075972702497774639812081905899458542831599436652514545730843657726542597928814641645443709994547784063838752170672309221809811831530202761291004368122253933669041279782220243974538628722942572863349341938249040014939689808034168836459501191760252610460907326577093854918787054165474843045758561744614788905796589009455262416354471737212263885855985985089847627885852023395272421432760812593262769173559261101402551395535424733010010989504562746107437922264879883160803591581545174478201619679219520328280415919628763561166835211330689719943311093525871913531145639058842540227138311319246341289477743707519785758068516667961882438157039144296753219044778243924861818624574234779073855252160565054317878100452710158024275070247114292076160269210431852078591900175773200402477812047527199806212823969052271780935020911438758133734302467542532187724473209064358200375811076158839457789112298304248322947600731630605531760713374960900866005595660742375192839729456131647271887170094862486925171357338920658750111642097577542583497876996121063763264536660499079629215293016351126080507080645767683914961130742361218376903994510500654322695219722689950806936874591061959282970864483199425577415340433082089615713080922150993105102408091946199597843633156353826108896771539061376793228350669610465057075536468877829652561364784324177285478775152289726896443552606201519523834866097627507226464929418053501422942579868328496957853462856469985414119553089675588781529181862262047865944755221052072677861155208851424063240149567274492702702914387442529791414913146686092982568231174454192130252218242482107050806917829412025841535619580832932590208287971065248652673634503920174706129669166600723542885649717695904217480041365022304556609251877586703586955600659764410021800326253713690562325295380937109219175455023019470049953000765760561859159775931482348499546448935682294903585961073407826278023876931688803706205811076747199588060372289935947761406453047164037785768465857147634126065846945341280964926235352357715723645861134699887636395638658306257928501765180690194210403357533594007520453956257712457620927161808221812130164745377579702456908871891091919992440746211030993171317301329384377874181083071272260952451000913819059289158675164270951453479651116128477432261059141724016549066348197024630988048375218633781613193538041214791082736174242469216716183873951240307746060525881141991813651260910017727143463260933291024437601222443171491864351152523327973222696337259026437429281915840543351294282409725435196971027701235193438635096049683166849188819099495899658815532472369567886637791807902688294760856891341048383203105564582382986409698947933221563430777632575689786647496150138114897435596268860781142591300651667682328781292543146225261909109063514345938955083245077515574233013319535590705711792618069446391950602992491432256966692434924255376964241385716104020160987734524204385132517131408923581102868889049336697562578935313269869272749832787221827940146296820447484474543092707247585136517055219723317986091307871574662105845527663863264532828532816560821232309601213534710272115097046797115186993803634099103453416109665251285877608947675650092647822780522937053988165781444450452857356778805861524646572416300214883996861248885827984507003079163804942584558784482812559262703732405704558557489853362062088866597076488940894182590835863376485296294717584928497426614019058432040176759593380476537552235199085428793674198723776546547713675295428691150173094254991997461279338700170644482004446577336693621741517432035894056714140516581792290953436079231809658457356864378421087286952591016880303628929372099994106633026119361034289465395373500355649698529954582576132509950601080465567418744066117072877573886591750630048088369679692382009671731515108052820188374539763401027483347443899072997283223318384901154448422366270185292143323483561577764032121414886634048507869584266991224502527557574212174500787094878450675487026324385835987004999429555633049535059115739499707797222931601134822963082074332004812865056383372725443680807572550608811425931979058722927669124322689888485481199075669267534377515304377061337813581866211743490917312719859124156506766733359831930691149631488973460819620652099916273032184994565759551743067907370205186924521700761475897491668669103784015334355371828219905682650345210657869032501023511540942096550402854262572907112659871656119652508853450927338219357232872727530409496604530424745358070990343023946735050813031059788712012656353423408255243482340975633978534933269556414455315885517235242705813266184675667740168226419528746632174368331890273046060336357320058674308529456820141833310846421054348200593854427360964983045439747229632847061974084573821410280112650909345256551549082310184303703694828944163578041886026397124968582146295192169384215987104231667541838316110257950966281548975514272229304428740085863522730775030797772951568065845174021623062790642067612741028820760354601041851572742597137451944041830157775183850445292307449839254218419595921278846160498638115804028018019244263926558922072060447796042886176146005362571773346990838411545940374251705743743318602378167983253620786188505164239139551940231310621141820881494772309968273115357137414355020475679526095217424126596434543032694150620588971167844535506335837489700028897614880413730471734954575199351770817180089613627880278972802518889773949922348835617245340982993733316871521954725353018503837154191130716767398927966924405803792803304318956578099008921727501691448761492951984958651349060410932430573146225603275067437209907908791530969147225781190480841458920304944665838190019956333011921457647041411776722266984923574657829620119047730114135853479456929463128348520574321006537121485540805343221681582304763203575556102713547337943935055658080988138402939885260406528823404832248692093695700156042837683546158101139657737005605950083211518182136164235939957751697040488759356843233589985074813985864000848585417343625285585922839955750426118260935589132324037465529434716548765215063370212578842798968849312697508593228989655762824378324959654724249330402316297410941451609823905505802202864865055169670841817059066050713799315384512354929662725380307553219671922583841391324700189227228666697362625813228256888574246999024698433770424946044646716830678048719045186378463960904345843361446956191803311387987815136287357177561656776200498918820086482953890397908266913170837035408257911240150240275384707965739283230383058521075499756086483124006114861918853394089685929432494792033326722806504217290792131155483664450596653004621473111186847835844140960031428979085535203959742392868024050383242796677055728917532590330854742577271269567192079011735259664094939163381093308419009824115677290806218286648251796114212739194862208671936305945320152414434769035878106773685938753087225458668506070091623212228757705587863989100131626525678057797291855638851303038719331727304763044510078175803348383979786485301366622914546566300085211261735086780571011735285156191367123981159309244555671793077901120511197095537043102175062326276137720271260184698791382452484756572148904333490159442162388043640260204650023558334403055146804748205378269639934983907627886094356740336819128657791273559345610897118349661878417111037951626141037652744020404805104651598046019839297623203648735482961754372441277412345146485564864257939579285237346455577274053488360148101058283836931867859853630487699770061742915327846042270776515721330332282292579139205530272080543785043726397728856337117741853939981591592855679651346728773524480862454995235241881775560617180093021851049384753623986067519422156147631088542322863900231374934484005800588134004013702478584200181061677338753106079070713619527572374455101871916074824862337113775864769281488806248249008058616960053489436932263456535400119835767005319402579905580742085600676344991869082325147282812938972248983907960093875629262577206844420433663793474669229901377652657846461660142369843444982982966604301733241432858637668721674422928732162047179559851710279937637094566950897264528537494966747585079115911264846821731312622478065904744490994160890739278963503044601238684015943541336435233326574300598027654215748533034806282761957504243150138655218467262404901605034879652057034495156351083041787252465972652735951168538880725078097332566138241508094083430092121144660973184800016572131532525474251648355339485183785539606723499780145437962866685646499142439592231918334628072829693958821261471840959623068860803238934317125648269217605260367019072170875844063632371338587378515892030367236254838109367074975685062422670588152598949186967360624338321747783265475406695599104874077404783488451291572121562223366012520772499432664868139295321556715363753395676787380342985125861828408611614059379769469398477100648090269204028567344955747980397476386685454965504613112611892770634913672503203397664608892903284313804833824052330358372250044792600865700749773932940605566285031815627055912644177278148138733542113297576317166341325804044900161377944756842585629763671220741223517940685830117807046457267970328853985127880163796554061631409059657493247404551681357902717419049889436986024835561748537016536112062004050622155095293002042073341794898311413695534455496250445701816460472029287291124501865741792653099739463645058410543518235219588701396970982916182237411508790351607708072513771583707299431998036679823995237482788817792401532158133250746614299717552184325756796784076391713064824297328058685481615934231927595780000894314887390881427559508694758895941101593254546617999400048871273708695722219643180426625463944789745195634904679809765069585979400509781876734271390352340337178493783886600784917148314799638979169817084638529578086541988651538548988066832227530504930675523904765865631286401163452778384669774878421183263784088135453591891068569117633452619596177103886578995156451877549816216493039612883641063248723589554465364521174082819107038154264946862082194358062942383487439569687645436297257181257401011066417385293327008770874065091586010529651496152127998245674369830994142126902527693591957821823271968128811244923785187976440136617891310068466636323415772365226696805188178855400338735587539212064216637749719151025540788274476994271288745001561180670578031836921591426032252235606878569755364978926764946020806868191440389206348506624442465221802086873671609771537365532405748094007371203761958581818823292824622997645140056340157119089728632804073186184110963472239242806338626325883169935419036695526143206642228751845154974720442704921988273785474994034068911266019612681035303906701632104524055210888598227863032069252691254904897672045166097160571536245267707348935897960628675761632699210577687275526836124638575614368559051649527163926805667397468191515996215744059633548576558217535828328108451232106182592361116116616887764171140538499752334829619810429208259876118826823094786217347545445007766089714489489047978533560489766449904466775106588633028233006347078157460808282481829048518481947487218886088171470111565827155909903190651718150648877617088704369727642646646824766116551901746198056767533943051788917563484224088301893718759445774311674865112029525081567191567280479763530886022820350523686672879889501971785996238748937258447476879634731734388981043512331733018172650981917899849467613257864658802766277651652604175016408223562932550197044786333169075767015932360866908150053671420074368706215465362332032613726602851786350993034913201851380788646734421223217571638028448244108423481969673587657065085104673845812771435075843089437963690344573851433752056443253374077470401283937932609988238344009970725272866314636210042359722136749310988398501361709897429516097743689160893075694984543844259202127103713257783537751664126544216118748606116127630638643056436166796486527818240884101549517716142786453540498644139687464148593074133783816850291594894248082283200578755146875216380117777787863576566483292493795525052346849606481441278557225715630201914947182933322749292588760744414645465795602210341194970644013926181383182077346743503717006887007584737431537317150073717812856248738440810900979349246856493964004620662235185992472784450445279168710005420398388190679736206487954283656720118049134251486193197548577232789789577827075344165614098038575663605341824131848548388366714767887912393354367708357744972532131312508950049350763578686066316576895893289863697976833735314343699932929054672915318479031755897442720780251976003231644515882804069832712109131517596521374864394983064423769442231587629617924304129723277219012669705076100190764181288982509850845255130720552342369008305726898108668348901579223266941973764179994277283590318669368256436202325076460239453464919164517628364288103896698621614122329992376025810209059811210429911397643325215532074379112085776136584653557565528842138215275822079636103835655730408521991425101813712495785468109661126707399020842309951694589795202415001859468798174523977205592480792020551549823014221671703197002430564652462320080550376343569206960281549728057972584209511690322106675728743536721829452009958481353015506112371360846594559452295473718765608661274493169331855619207073761842052331934578574596668995354056397745671672814326276670795263362876108988513872422971598003376870979200832528823344107752937596730841220302742598371859361817093366471973345629185499104618841831294275249643236413890589002278360126374565783523728650303258908259770155108084429448878973506552282787641720512638293410363540696847217338404520890220291949089436056899642860304957831460550250603465397818501215452052922920465230631725527278730129581806663035549637249458933858842591198532783377536570339797130830963129593826380737661318533283236154679792445128169000974200468921834829021023185972689239444420831028689495170121082756710615213842065784512395988928628631074546269179995153472407122335890744461408790903687604129360913042008531271820454408320330147498100222392425866754901298948227393145192024422795381952185594920330410077134794532703234827674372835927050794669090497159636553019893864670005829778984491256293675189391888640967533961666526882520226926364282451161684352389057975872831042432237824195747270354678049709333371416413716320966698458095404359895517241285766759407965031992183491115096349253597826274050346295208519381045950465119486439924274300338964535754400351921074028764580800577526439497348900549710986956783073511359234538242437532390546655246213096948570342095935145803607732292849725187087893156183851140515148992723633836632034878706496620075458665700838713330921805712596469148797227411331833157346170550525340465604171659574282879649969438110861321609457321397050267326627594146042139883272516420703704347941803630064270682521034602588720523270641901140538417952987076793512245326688601518218563813249676365285381445292949392608781791123670633102570365272867191881559176801665066282716118368047426351327844263880900271763358597130523602692292563110079432657158989182384855985031653827732351241928365635112542125923956023474777823781500673755531041454020539132280394489948845877331677200206253316114433373563183817994092868984659348010443241974850334532207589458058565913090693461739841811864796477943650622706827491721055670874893669963942355584631025748081945604378961031499596662586959289003109824455153953944756731120055951410115920038337545820760937826923416964428710920125042226850956508378858928390792341762359416545797287707439261761065425915140518726795985486730713826965133291127818265089244909185579256684344323086372376153584979645060464083236165334181961283939446168554494572810350991195776389242606261353592631376658159348187053828974393068936619718821454089985636033624120763767139619948970470222409077173066804394825328395444855018943861154137106542823073290994314350945082315281902045035545605521341813937044867809287296414800139514560575623338278088456578537744166691088540737570869922827127040337301581315078289170814816678578013467088623291564089932988655812114031815198202707059037242904072031687861865280579188550138202779247623885180924334027378988628337990081371257653006271103365645844288492996683966074342829863185502696272240758507215422627698152841908024481828367444414222288742297090485519462345873031051795958034364433605111410052098394460333029595116148605516246429025275959179200308039070024129865793230416630357755709863477267284946893028217561709106196230428918235009808872953272658604130953787415839673443055309043685669525757116217478828665495619633056114207300342250609358735426157372666884381797508098588853647322669540652797290781338697015976084331383096512410867846673895950378009149086726318660824196985664463184139685245768324033604702377522776560250128931174577296716773133675852478303050710228927454178584524036639846234392277374924602324120879980019260338032134495568232100501969521759505040238883065677507704092731418206885277877856325756795110614154313576271406544508323436057972571956043998818173963630586204194554047353322372576734549889015208905044630767275684248536388520113280313132768458678373261750359033986486458272828639430747887407538081297217551651499244578711583182237589547905831412731473295545476826422907802239046862939832719329306687438701081672775422415772454641431530087405347157722081731639906861580666418059451085660472022953474389639275363505621937966894049766288454344903092082390055730228828239369387814736002289977976255770539206459451439649165449105319348202019011058188466473806212796928983278127686729531501331601027469044281326103438358432627773665496955741175855021553813054874962206530048934968700629288330613592924146161984824620512858372320940932903168522838753788413081756918714623138285791194323927036219774780975073063577223986191774848327859700440525907853544445225528880475872129616959105844350806956999286330938475297764068715401176240973748473345314934349912291687585147040336163275854042966232764205011550462513870116043449245729515178604856849087875377485531211266347819537505561836467933971466159617387723786961168557482726882200021638668322558328741626747457294461215875484517359993205757377411578234046867777859401554863478115925061746563969371195177036159667079151450767946664988484715817750749990066163994559290606751011420746662581555655014170105878617577783704379067676381117062987722034855540124420560268902916325664486017307801372237498956602380508755605135844067580253976439049934204413306662156136341299560377483566362656310979938605510063288814475169303539052830832476340909257569929071349193419151756037477152396752840722750186076436636273460052716565026190212914156412968377679796995384189303347988187456379543289926572068742342499159995243973220588042167776845707815938433783769352098477130773762899416355614197359047450959357085912418122914728462756836561249996034656793934200414935644459635823404008575218270663211397280190171842235591979163099738369338324024052884709427226235568970241993091048412588069518183461289187630930743852582884618473523350375170379475665004600592030279289920878421641341271201368460715518071149117679959232010231684366411122873266413649936431968092701155844661289959462772001079988628608918878394616980456449884325336637822134736631491937398086789699059515911141809006710145044548694964480612358387984180432921689695110311764288031871973775995401297249758762739158679149211137270214552164051792617296270906296743074863544324564878900171369982562185585872342377836514852216283448037921961683343179654019082894291262833384747355874641756247327397489198610011631871135195333102375219864156234615568326375276090948207459647982890412920466154937474842531209160806213578794788181208355282892803824734149524459205363180487007868313060999791349656464032167271152430349797148329515944132657985229567778718513637047266632959397385752928718363631749447268964213213786733257835196061488937687789922466343974458971380641439480968500376008536344942124636717193359465086608189897301000757387890165511508797267922419979976968402939900912399567932831890566198840033654239841243243448398323396585267481040797266582843175144883169228160864944529991408281082908224723973524963731555299980830834723970956265059348175372203062554973547368759018459373350761049099437986341654791654965724428369017498598490749910731751429732349193240500332537579708974491220432893856400659720340911503437923253981417294822585582392134714223881472031156482308635100335166917309485966386153474863130252127720137746654826975191873552673532666461114193028509534740616126057770832191570768745142768711084336050787643320059582008373866500946674014801068945349128355065847584534374306431704689233167350900630732526939255812782757870636483710377661965875540468990725677871904745280462736057528500823730387089231634473565487703180260873074671210646799983593743941230394188761316905233715087238891746246655343996818100365292857937829466572845327791963187343183440869146335094177138763431248731241903946486241622308700163464046954206671705856445960416593567383364885339726062328369134585651627167857821359900073021917373017467717226531725337851182120087384364880313529576877540705611504411855496965858192509692000284726619719785095765309983394470386399704814561400687190677215023941862119321046091402912346058259085573068493804709817535385470542265659169806505409500522988212465861673844060130564138224565310598277096397465925583176021699676524078158491354983898585971855223294510588296629337316216843702312899159491251016188625218642175037430853364129934199751978078350992205514951877375838060487100655783765072838302019763112990268168516128371356926543650228230327637718918222375927870472645139913732784620324238670289905255624325771122239589869408503303673856908584580338321563657634988294143561469797760238040266897492554897978542595602669475672876350699279065587647266221834998122253830737619912196022156346804941173798197286641927532049942496937488575130336397643340266551303063775079867096558113027700108432412594654445987033783669766188512288205118599384014082354361290593260890210292542251196405752379818621090090089395357284028468218435105523504392476473032405673549104937105323509284741158416034124089606804780240355662657957610546721994136579047287548995325152899502586682896590512530497193535445540473302728307763089102258178175540832166684913205160068931448329198972870217218656435361116346229391514694108576840598617826377055123217172522370018787061442102465453364985355872252094735720472528239229324015720950745444929229736405811061982155210184900565762401222646747901821869210294473297961055643348448015496032384629221877344777745280334818324152718767534644759226638272701242355628187830187972672143063700484164182318575578854172428841639500882452631956167417084442516738733861640238065551281643108221178801702839338775379280756733365143708190549283032822994867625914778311072119779120421797898587514850426630631998022670256523147731580277866341632477354425854700690655627511667137210243435514511734529662314094524687611001913387601807442323639264084963368057850643246787461486515108499770411427461185367117624354119072515828585120595096637752922491127213095856582533426400878339129344783320603616059451702136405650444404272699762114019387619935604164698592764715961600762732663036117431480301384528692735442748112933798200560095252040746067938390869986680250922485441212488580074278243104425383672348558341128284661632500279289665660498000263342194951635686877827111786782721915575693320159489928930823955927846426886135761460465948019352675685610368693762297935765164087010932383365979173770359757147520866448336751440704381320863158111346816334308292484455180349682386475808042962623834895199461774236598196067970936607920759384434727209558974755450318403162993614720891456351557600483128972797190953804359559599622865375882066612317834411203888259326728322301994577151752279457489897177231523803484630838076994544924138264074891240383014718393808521704710001767374578784097198948861095362636040823472564323790535794943781390089219975738879169623269199830836738330561645759826543792165140598428407167225630480502796657355705068152527808726826457217943931651312143609870830832359813382864300723349700582460764355147291802832585794378290166091162940019273946553362745016400329021029382588290207934619594910078270095033012225600082012435218441700856570908102154728853485896437762317043114308907259136206483298788390588147565505822511171063741751678279604043574864625047595422100308816072067220236911172533895889528962313280367231131459087910067158978124257733644972877827465786805471314052548289973844920620652333030756295257155965193849516354454254873404560718704117818305854629999672526193066192316664626969361225581986425753683206271848437532562453903246024876072671062168725667403865350427135925194764898028946876609449247330216555422935721287054220434608370784173079031620690284465424298710488544657605085418372443803158460139797876279171820860084228060900559994211019415796134213323354537314684571926598650872715356484859888079641555824906204160212016732832274705347943583087571808546182400645391726766172164508516547047458421523926524166045448717230810424580885854527471932717528981228057192583543165556123697917039158416335336434733807736059319129504914011210538638934613395593793496183007337481133396824018124419857021602848600325465329828375006870976670011356396329385927731545822669988523291743382629973341153119151878667061295590951132108293077465728119169667719708516647430145380573330151054482422024331933890354660353828074727787187941065478691230680783179956081678910076861544187526588630493323561306976847126153221950710715327127268517284417022785518194214158191605668625562050041804342750978565513648143734497717083753439129189570207716300480233962298735998077589026715897844516701193334136251223272518773616721935542509118040252574745549657494798398254108594820997126515354332086584616887887164130930597993905482081323573374743939052781809909629796317732600975729589827990073599840122296870099193550387197969418202467824499459738381652395644228154265401203480674276999075288886487033701964861852322146314194264309261938625159333919532684176702534346905733307388655204976295564046552243306823926782129042200745432486529905874466634563536372501457265784217620959392301076790800842686899117067393296915295541987028934225753497572274724803309865771357018443755973294877536384419700315618802554544018840138613974629305602884703059547139109559992348903616041465408243782093320388588911286299075659492999711042411106975103848987604964155214079071501871609259919668882414804138055319572372078637028466277761933785785283186763436762731622759086488780067172770142181181543742140552836989569048574524039115157732756061295865307972607632203681817391990030779180255534223129195715812077382038916838947723895694171828770830776520878921850805968875956315253492921686961674858772361131247434642970469235535467286358497602141406492153845697918220554987205839249526185053122823186065607933867983154590274070825016994560918156333702886456370278036507482856701234092030528184595237949058458559759102481805563223146666479464252224044551482069071241027176166550176121139175034211495475572308017468898125910556786089821619389143264789406751052560407892192474168283046540781796083515348895306770003037394763615983335263555372177877785245598961193201535080162446163653797309143637210508254670575413169468803116300435644404845309633969157642973843013866350311112065126327160100407056060959272184652127004955176751241378035557351083436360222614054149420324823541166475809669852571410355565108265236777299005298728814702642233366968345141251175977813878726866342449422740539281367618255958238223258493582208960813566579972286043922545276538524830033008187573699711712063652603556715681755125075636729062826726519657575911672228568631483353339013314467811156327435844861163760117551591588114410228909172304665773989400296493296353947016407598270250442982636394242627641921892614937196109735362834653526703195706064631853556268916841987659313484305183375027625998289994282383426164765537003723334314025262286177261254721619742621513829669477996589665425044083940893987627319828816431025835341884196444445086559301578440496915403700227142202598540422020034855936564306207102386338977909510670786773270848047788828952596450920539726952735129914359547791597394501109343219972196431236209354631757258247477665818975185819222929493154486321913811812780708907639906294932339990780767846807261605249388166111961739757379457600045805624054670809300414405942966342098488803568451964624479080113085634880854947985810220465888534730547034506073760635498116901770741945675131165490911307130417724267667874115783695834459288854620905847182570016229476593095749814052586932189250622800521479825420523897091411026788386920349138626289867643883006047009680690827445793128282098567127559768820477887832722055138500634945701343086390807385886724595216385770634885910104991717489510700546613130518318998550346848932299726761791891232575319022345356752198507491532882876917045073005770115231376187633556628350935280849061520917917172294188591384310173721203589535137940959119232486384134667194921315748078396128855285386265643250012155914931192937590786995573967938934197461379187783941051272796578986112758598068988542122700964207202742407966253110459374752134643494262336711733612614415456940708669091570567735489586886733886752588495472097878857786112378165939053317554809589588749221796261398012639482849198706196298981293514554864151821834617416627308353830808384537664984885643311488474613418734673893356088798463519626389547202248214295811065314349778441846354453320454430016159164537212854636953477868706399002878088585953590949183936555105629125670060104811748958979870215100127832793371023269710694387112414191324912846762041858982214652489817520591640959577926773986304986635463379169545680227253916101353409274886868873359949201094727880536121881245824205861206302389441099107700665805051987413783898451011099539871186023425816258439159614676345043300010167060905827467927693542909258742241177825409033007436412571575573508052650195656119792179662537807341996723370574914372151343068887946113487661874116540980777364350600520026880983625212520134978187259533973086994217016057750962756218774216601622511341661742916509182288157213504015980628601678082621387641628535524403315397263083730222165551654761385535318868235222342932203130854295880011185554154053325553295720693718019923005961182154621570343827154722668379317625169832760473100381916335877097322971838013663988928122034070767709495523576962470568132334910684778466283179086114054699225004074004731978339020406436030049513997006075886701190925320095802712788364298283505433410667130832570502347389556410925027792585255423427549145039955207443314682121095451909457052345540457736804593491500559247354632620948571464421430505612474423444872362980184501006310744170079144774186026172629672503066571213072662752972750459388257484407123235350450372419364915013141287475920613460344891213616573290478555891912522940385481940155672224540177954837693195730052404892455523833844121153726635906474334657261723815188647080380379366246421616449756776426395264603026950224079974389261166735959992921872463802572549656103444018533151873776060502552132460817267201361464388235660959744273081880005362404131736836917422479798329177944071747924357671193882444797008787260430064111887173703099749002248213988318452199014413026205994461554795344179116199847490025341567169507485226925743977437037701883269748802210007000646262753084361798797263553235306412776502260257567034628110166991914004243084553681597670536813476056637189618516174041963577366497588399981762184586629542561057616075734157955931523453015458178562348619259458806957315992814922606501373704084300784011064268865149172352637289826030961606917973780466280981549499289636211357717905119773342240755845450298593308940466915602909897539949853652952135225076291097606880107884856070601815138285213878272999453289851180642934605208519415072052099752831499741895453866965066196409782426248351716434101547573781023327868920200838255281035507005328739058641161563266110628854851848538932629858661645398889370221235201824844463876278741470500038721801789708338462286464199173834968437237359276382635935898191053280998127881659787305314381302938976945699822901283069013795871243170213596367853240672591980222076500267669185952859147205371066151063616866370144476255791611027252848801962834580997034203955044850908535508539081908367217212975689274602398780288306372311342217104835997217964132808984662736508206517166248405467760223308139231587126200052762944870285988018269671937669455693363339432788152377097497066507450483731176088338926523771205585623303398178535053271450806581162344940834153430768962583496027253558598581646607041236926374322569441738192657397496960379288356287886357427882551325516783329348884415192558622492734159922902855690603314808686253405025030998592950310644617840645131045969025484696116971117481306733355275109495712449052504858759915658402749321542064267434660527245859157510118111563074186548859377369996046353501651208974395045764484900132214011775052465978873635463024916640617269336649046519399250545243979279032393734995798453107571299627259016781931474032833968594687856190406404690677531889401936143387615852994488897503970723996189412154812399746838493882559454817823959061443779374593180369916913840033220970161492517658251926329930199713842286175603255343825729309165091725158406380076581593883254599125526091538366848781351275897143599924098928787881440994802876361914236635425587719075028700605431988650829980067693726130051788414565033126928684725347336042220297203619858242061595059381653987099530831289754571974410047829587871446540405616583232966894558005306081197149433826212369925067812857813532335385349608709561289143251552283765012700648409217269843948324711679945793852472359092619349207571419436340605562124415989347112739863730188926303251816972346168793364452333763778886710974292182072267831502888316051015801041523950244840853219607299692085105795007198960532182818861332830725448139129731910256389775125211753052665500488218497975481829942946034947473997798966324065126415930989472701219427840375149250364986294448245837627920901514774585506621287208200283077412055065214194464851082682695238053825762340903566118259232374787251604714070260002002322398257949736145517677433472820630161994925678675181421200167548061047396378594601593699001647945333451302088547797758427053786600694927031440551917389628424586546982474564764364691502936863592916536017866907488655233163986493973463413098270342092276555397060815053682952224537651322144976127639220290246892600891467498686659362161800094047401166491382848288885056143319201254555859046245301711113505412929308742861431508399118537828779811718027965129261043465700870895943854907255135878438739899382053815399552131916612947970499643714477522331851387307318719727582012472904448665845284256462787833755871319313053069844593337832515659673038521487913804935020965182388921474935027697251500544833064253157881456367983077184390858828195434234627615737545778509054319119214139417227082536169556548677098242178843943469621160800560470536670520706734099183477120626004746604550281304405961484990011000313185645148496857670401939664512090555330097246427617985523649689726054968762002631701693450919128587017436009667976317714353148221405299757788833266605973558426718146756611904377584997353984050462029661885483623974584586010957209897615777235242407854876871047757307128887232151075905961473671471281021626242772019080769582982305188507881906037330715482009283334662070194852245084055912051250419157651029845212280286881031520195748960351986719717893067025291229203677007637459949393357103845998583377919505646096919358839756973475552100809386954659137120022613600866108998822872281394412064648324225216539561607596453381828179945781336326703614218647159041292981415384065907355688802524265593756351799081474545337522905957228145770390665365062484192673292408804911686420259919087420642152396449187358728352692823598669852554288395916557761383460939527214664752453870682927701404887266881004059665597840819290062618476638532472750516081555556530952623856323463663039756747947118388215071582626574012973271846746175779590612858675659564598882309470750522202179162143097667827543264518422418400763011850401755212812744882544769702925231588637461026270777525383751654933941241874072455469324695649436278155047965459696891853355001441773631860956323786479079780233161705234295312751405688221372693581506025596649554113344190092215341826536766781709036242616357887429238164931766528889974902848354608888054084225714624351378330873507662904259540530083992069592820070702480923421533121048752739704503743124793589458184884284916598140616217921714730525180316631147176156377952088144261000975892666004100143045458167501621876189588566332871863282123637071728701584318015826162193479143173176701057028434058809034417076026256292068860150092578958037336399154284441673045178523184482329422983218599382679890505461299211034760094060245047871896151668731736429529341520322680864021767452782862521425869987847146612323318125592805706289637111235738918348788623202028687735418505884641500037242275633137089144648299299728611427542205512688122220375192322942768059646089293361226064977989060608515765530420443550834261293680652720475175356007873340703162751664826253251802354719952064485287382700248440461490021849684871918895018377332722729917923252530348855288947866878511885179890775767005812037129564838157407577804390263464332221686124984884348996213209337067357541079863763761784076007777281134499121752884112481343519387216376596515846319485681831250263031274617972498051828948110980024814137374568447901404310341290274306043158015785848180081298733172917188900073687607892187848337558258431222168204229412182055692092588322690178444581883913419530435533584053505010852513426458455349843442903535626305064059556215490798545510731607186461200590839697098511484092955277456206420015484870521734386551536230008667433747161709922404763141173396808823676547576410579553090885849585917965532376906836215720011709608883106900554569883593700215748992224510561520282309969643589462561227276276896294335247428749312021032647851950834810058167922410329655941296474961062686439824490799627659650851223222580819585390431987713705678234040053324565557455603093037650165149335849768782195001998196781736365533555191442898519857455875519014458890737292105617014122307068221826978227165557349984483905720917433311505786518096750013490991239890152649889369694668517541393092121398654079350367548028380401379108758942815010384596045603793593849283599679466387370793549051296180446197076073487344519862599795243767651883387262450935847465635998264235115477267260250437537651585099641866589090146122723768397625117787837436269746133013418624415653284331948904175820157713258389752905959289620914827789048340015782304285329428155143189346864358452522079003889688700685681496075592468447145107362823738505112376066489428568336272208214882165636986689182148060361742621226068267987427667257696972045686736553024640022437076119711309701736325821189844208445996149693904731847365525669845271760891066245628940273514482786176270173018134440364737413546984856996426882593534848496238887169751952478547698850915155871268200665694371522746591351817921717110506273192434120019931650442142556225818892871192019704086250697466542753540627967037641471044578341426049938503284918780463554087833138438919462715647593481541777336899838819112635838389753563508925934793190446584790855214435395292708235481488864831753199875433835870082917508670178930665235643644608595825919616950350586285322285385651438402381448728820979798361880249430778486094016494380883817281987644842240467757039964679156704086711058374320830338398588006391676351927503699564440933697194054077813841213575425898446617381126311356536170376325117414337413436984239267810370302093539095784883018199487537666131230712685710047813592307405621889857124313827125002760287736250824080532513889475003726844536329028071563419994060196561176595198108796206218353250979890195880676929024896910150544998693732288303678060668747192401221136525936663354737003402982682093129230911385999006484749846409488716144764041377266319810579066800249530588980333838060171499063797923235803011396101425100480146297255048859601158985618975039111988839604166534477873006040787128334847118206836065995057205376745672169419401354111792981358768646285337340192395064925100166646626925091193363955826129684224260362124963552699730601249069108612625721658149657021766924132247579649116326375644545301638837114036134170710046366542728091260097777776665542748586059732808787991467603118911204716156726406439485003133331278966324680781119890937938758198488475629653194779460501329958347433983236916313943979790555307807217755243278837838786890365017489871168220174779708548313277413804390977055894895076687801001038666886040708348380488071796284990424922291411917249256059223123143134911853328186440160061612059255970799405819117376416900350177249918560079624074210925008053551613094443259654501250719324590398309042232464545468646699424486831387774423220776005514593456801858816923884237147275281002590247142145212057612245595397231217489715192492294852892751239892882763767090497258652742868184742502535990897928124575648135541471798353366346581673765702537102451057898611087076496656437866775339264531849043196466801143927849169792582658413149074298040513177841303038710239127662873441782741973172930096850485112791869011083083396010454254020491457405313003101503895393799189298774850428246799923054384434116232606570035124832660050651254716921747575688775102070968526448692013692587069356295894259804915294846625306687731584738539403866522939227470288926241528699437135353688701513611301343111629852388474546320494830169934208255639090407438559675084435574602682841231737216821792205340365825660342375826252609286071194816146370917623231226197056201240726719615945419118369689371998003634466427155470103781229370388662694570882903725901954525395157120482131480018082029154611323844605606760742737335527230561665073399569242413638138972049133896565847375250107030180886066066733408077227589125832715658507737181446031088891379001220207151555809286107760018004859220494964432518853799080364527858339531983492130811220745796935670165600043844842741882810695235471459781325488731572194290185834604468984550874836783903998813899693328215760002202847525674797935406916568737308423003856105847049507059700149443974169615155284612886164232119940879100285353906956662958703491406090438105051172984823407771581237157827090667141938393074733817889588207780412976082795931466300192862129340212232987686098557884726556463009769906199427011044210399247922910441961022856101529666740727991750055011376364279705385852357280616848009411395159464040750472032903968001666809246674225910820495423302491552770129511621183085277671589365126297399386390538718277016777721087033219166895796574093819503208320663248453746314643710477006678789407922614870608512251238379125321287711812219903906611154703974997786242690591163729749875646305460123674204859510875981571604455962033132989638273872355651508936498638773952825150244740249979397906169774711398326144547102970009957104738269869300777009788149515959782803150504154578337777920951709521674534000251405603151598450830593759865794331411477078301905161601010358334928496398779238516062055519175749714837463444051327695393077497062901889410138044822192993609856333559373881684076870795292502613330120772502863745361471617244957374710934332383383926023176157682243062928461111799025092071279256873232164836049700498623836536201446680758411051681416582891846318517319883458148200370911743617680366338403969722171718976465284457502188728034849322838561683855837750086513079778392066904257510997247836904255791528640186563516698953442173421482283109094742041243445815054771567456851735821601679200166670658249908524274098522370210121422370582913055190402222579181124042466112913745234418193467328340486567115832613013088605325114107655508714367683775610012102695249674025717639810358375753005226651383785848642483393580824186528036779746080828009376576973373467129544456900706157866618657380285854961133215946363705923024630276572652182781675595521629487177701981678385973074635570896070066983643292724801985760706214833278168120588514150010966410254818385247725752527976030336783016632597570366047736113603082582716192954494206316775400252842491465950043126442257990550941635722247013944594175236075459591570058137828021207796894014513385214906109660353875300916230499598368492017429152927680838883042759456369198373098028315723842777621097241036971120873285833918880152605555514099130326780966386040500087729672050669707945021770272222060956944045091487782980203857761518558102678472448095522858124229539183940441494917193790993646038250083975700897295563223495038965101913210477343329857687802969300083544971458436356744955731597963754767632047421594879480082224804559699157057304920872494054043197692280534657602120776321987999126469723433753651280951664625137540192249200550598468715210459660283890140894483725183629898612928257259471738418016707312520539789684808908494494465636980956371780849199997084669106230549041483943934370803532840399856465424335440899666329616931562802440354055117988058302573487375981779805669254579123184749279472217285577894225879534873976645996189495078455195058956088972411393325741809665282727541802692213246064501023013099496209374106174939304561908531537762563500181883612459189738276355937340020579263041167962295774798272940314649537311147741592993565006689739626425164093760381916078884556051638519253098263814731547319820677760518949826040372884154221564663076023509236691935544274849615710017918666692820958836069645204157198133031872451223825920704022745691718534824258233267593733985296131916620282168902565841779200200439228923333428198445984723990090600692112867797086999174406590947600636383872282067980408864832840731257463960230870609368229997462216261503034179959001864676105096107847334042767500279820211668163257838330963771237261249774928002315612737913836450674886581076881578451202408940914275729621137204924962311714046293273873387034258243345204590379090605723330829297648144721520150319822956960673747137987801233453480572057867912637222917029966597751744998719996353017806877214576211738572477352307116665704720511083321876365927115482513675633777660533284625202636656442699074150153210577048035841785847804035979016344892181372666248276291695378676349139257062048647995182608557437393710026514100248725758580417239200823463601247630737568418295172492729877004271308185166436529410750420202691548640378610995860787700862650672967621269740220194150017982476703416773686256549353839595839552876919056650782186357346016459022922340974649653562207471677443136949574990408978248867069909240751464148346075999356508220331893283872060974297269917975352241087094406974025514722051944788760324103494520047003824605917542184483120354318118790822528712567968375506554217199741208697920338833443773377669115553266511423732883177793913181651330417861433606334415044566186519054590804476777846993726339940994414123099577585994597734551644893784295171630823634962488184724224759936428671876138870297167137180829713078182920527849036311417491150892249659772467227593375176865188658341451004124438191973340144799662630048381450586791657986193403458628908214883751386853280551423237714234763522473288096518526978469163827914286387400675557908631944062909346752173545814035754621400340979556740604217360846935251841550528795954155402905350430619854245852831832228138705440726661165622741268446527452281405525655913394135103848466423850096718111833593228067428412391128595100141615523920009625331987078245066963399747539061008297225393805888057438910268671373311807660541784861592535835424106323536388423928451363524606820080802494348732164011897682441431654733687464762088753491956640215463423291485185646776275724918861236271334573017218276666743751535743680640468368452156352838402836625714666670594933598981579434332758066670869624932813932080005596074053694214772954042579184325150018471782220896516890568185151073909126984170836329368871921453948887206935553646861099387264218079389649763529153735201985297427938538025197134928427338228419197959875335537640988253182740850351570613177594619225441979478213219897771243046652301499697567012306411250451476361194491172903192111855236648364685656868921383559007359709444701613044600207860562204813671678571994079914630608439141844312616491976741990785939647867053464153298873590607452170879373063314645021343004797414939499386782204040248724783426173879587204852716162851884612545053930929817111176732878425438469974861896232827871045605157821331457162618701288712425898155485934086288247216520069344837299291656579442231027175515726974142321203394787308691724539236085500529154821989659765483944328002297855061068778875166978775305701929507743916345746936986023632671719111544651288522840092372470558923291585777839667066648673296029695738895577052379641400226448845703853390740563425529480652580478617242792581086643595650982283721276714271132487469521968459128212077993679506796129851820981385016546356640968625574328156566477014677188107908710427101109099987415606787466430504501781133715040663060881800324600053428754324309185689671772391642850213026827758558663970559939739258190861392728173469940172443553251479205787623045729886838989629840603566955929565240954949601203078987438312766221625587314501116362090449198212646897308714647415111490276312701299111125288923097469807793944298974234518247184118786618018991474341337521146673350464481727618922666381678363454051245439327075612596115151635560112715318172648521206810293439077204086940079609877714503330741207794588930746288613361262277152591348692063397816561167218074096029140664091353690325305633131075819982236282821767033699486261560225401266373380681325053242806263791597976116962837435354513233141780118857431840900125690368208682494804807862308184614851553137715396436072842431581685268827334509370330540568804776166766842863826772183271288604779427117505006601113831873542223617487386822892972595266691453986315269249478792370541606866671421328934367528904850907141374374340492282027725007040409203427752999801547414487971295793681251803270757282768380293325268560493926232866839054311431337664636848758064631706592181427223857963682416524617228837605610647211618923579467041985477606697627527358826631459692514095645029479006598306336034919600611782008986777578771254466326401030763330298842640379032826672926454730041027545307783484733357637462109337331253161499581091275346140008417374858148653304126737155267013564096400005465924591819152100266835370905950828656670904633989905930870611121542969927575656304461565539374989564509377447638589662810578615816201774424780124455305127886491904693204894082598861202285172321838129871429650818957775742977856479574981447983906015246971062782574504361253916978014983196147824918450010541447668644274593188346201454966041272453436883382599955449022530650249101884554894332917570485132372736490550309964176326991173058566569437248172324685019290125216911482585287534883163172564472725798917019181662708822539407878823423860842758018283226223080702409359009612206827104151675776813311895096915346778630883844428138012773977585326170690523275509953005341820185729507689894373321880640855922211465987464198693748795690988478530731822679097909544917055226076545382028622254330046710356800250695413415576099893413776081759293968978656958645617140429115697838599676382050998505809606972749786248977253805024816791345459183331910828983406344016741595570388404905547049020915421678501179997339293264983598357221920650886351981928488227233878265342322322054149999927898943641546116086909283268810871371610203442601041164883796643147069779696790063338881613625816013750336215157423130543104107175602137597297679129079858771124825121438767303357919820789716233920591525040604921645889548693923361942680257817141051185761891834455059135490806660719161616609896731384747546390788844847263807967657764685895200544050714297566611307630377593262815684265432581542473173813758572274077079315135154561871655730358380216290541627219622522552141456342662960065045223813515844324729218731865674393229433261630659711322697213740465867054103941005225303363032820033887259273067695655811524509706637179842977230897253011173539317416656095789434557458229324035981737043755432256407704457611048175216661554457708590624562758766867661630017912375535976680935528539627841946300335975266838348808742902096320132203583706549082453642155963649067066858383130869016543691667333136336486994075766205004885437953980563447588934354326767783682494860193465000062537590608352340820017884008823535554763547505608449431549858499004968672887245672703398112424564639175117949309960624560205653897358356081807440108479961486822350386406435239254015346570355102729196244757077897221379807386648492885511342519947688594167579472919181495162176181674194167043999708582944531860577646854204963046877799164365244957782921814102005194476285546812310606313447585691594347388390454695754152515671375388578411250824229347662933843204697861614495582925677859052680835570473022754562058919620982632114001771464034820863279793972464883265554215810747884155236011645531530787917376607078935652741157087241288831821021316775076517289253367988829667923544256469196950253776046632697391107165351467927973609074124747333906348980742205956374019097402114604098958328497474155712856054618763229719264161172121672275540707182052351396258691485350409184924023867214088948395069195505827201193142212299947257355210056241406331806122808313106842602015172725246666969439061797887120915431620075258509196340228049001993787528188887465444566650680496730963981683994697492807617011902236595996991032740388915248770647271982082711620750604292246777357214972170402594476076651149261365733071909275325120002909943263544443472953364138519448593142019071022263533298036477020414352885565598382522134084227171165926879615529249175923923909737290176954698189069727584416267317711432384648165705925256366995721173048215673459793478742100212980213737377716922707188180116984403869754846788887333014527626689304125818936254850356300620926213419892220165894655233272679097525901941675158217364317555748050728961378179982714430999572036618264060256935808356500715480782919504759593988958806821394355826723014583321945270361252928814225831125045387630913129107679221462994959189481103477017143285357396093351061197657285634396661621326820543063717504426048846193292327659972117313366987415192859473291376899377872307984985088525046336075041056382896920572448462735917243911857278905889012355668149041408122305507453741516381471605056660681915135658752252752071872318372415450433288308917166690447598406508955954618369930903133466389325865496471502503248275260115898711446951617459712772315403016241707042553539449608001932690169077727742462036275685590115255364077190499398613008198595870804609634955125097260187925192351961325323889604481070388127407809742275856716417857724441153423696448851045917450850967177141670501287113456101573846983231473196239688951964738149340820630804516737253952741493079778925138838580225127830078307651946405780105024223721926814151548634074607798511967708666711274507986360606569241110340773292214935503293608591915516922619502889779326994128023447744540873931169038275879991872096781401713949554703610702334406226866069870560970047866041399187810581442885759477877545804675229177643317483636784722003558873925319852603145559646038654801903835272760881977421899732954739294690538875435050923698872141525139282301402939561703151560691242725326392708250936125245737963306799428044917002401493152363949719645960311390796296558219209950797062724976951705783245052821275595559561653285855457733479525435578606661752564839126528800363766794117446934286145931241845537410833773579728763946648048801644277471656756546517150326039105200145719459853557112805936852041268602200811750029242854886885063427511116868780711239803692882025367498806418139968612233725312796931205223797023568037966862120063233203224577652681548168417345049906878047596343290857272860522431963781365435576850369912615662904286565989556910711532860874317791535143803611826941418397468804598451559310677006507918508933663020666988977234096044238464952916335934708454341478004066991852674829413703342466150596625013849682550232875384845303059450296190709254973853813313990264853298668470534980943685601060218593825019045913589489698772844739323601172984767022610367384099148204256480400880996903022182525547927831036380294094785972104437726328115302918942344865681145758679446691200502819205355520219414802730955354093408347628035084762117712464740886041299971723883699911713198194152174273545511642816841607573565541057228405831750791033669171166784689819157716376763478371790094056878442542605970578662104735753535361742682730004618666187584945951624253134575621993665741922922254919303629701595855055655114276805809607039313704480909631437136063699071754317127746023919031517519130849361006263981455330117997366221733494688221445149884636420777072854421398734755148702883686442876421551021481924348357092431731376583369846223376224799285535054809241847951216116392695748191831842099177227936549537544151212186229560254970404587477006892457370272018212198133375454895252042959696291049946618187226127011732212643878536161256234930396428809825374271499157084394622217358495652656587377280681960667257594571361149189174279574887936889709792662166690383311375319851721324460772982867294734120241778708546387690113408450205660024585043053211954480786899079175035739421204028532698070836247733463415241330575744215249050072061197638060909757445455534056427210009237742471088311078089624086284508970119570870897021568079630750230867752867901295657903920541482247839482877064808409279699894672370742393102596740245848694918860994499278726176824757481439214668294832840897664508842574055725613633544578202723364386598766863230595378451242035969339821007094524492151077504365717692418036453839662373484466063812093934699064512129037148792681762554189624427873199253237150368980373607578486728141438265184406967683751543498696498827307737258412132936740649652366748262080899277556169381153732350567989363840121383737346972636629522385220969320631322979059851490379485348507000662791585142715088941988536947187866311255485244684475877379441309134874240208788328688539295857366674457314754697224907198115920796436043013971014278838983607086768005713457424093645923986723986582350122580503763698694167380925066089148153130560409735336968336812720716682187187786882950836970771660652859253652753249349503966968068405897864660573905155310714976843277800311284162424960774186462069843666087491277357496318763052533517715645697787928318444147366696766209833949797161467263580177373177145173997852856697928412515787518103510821175499982384952945008469748520084730088458011601420375039470247133656096686769857511320879620968523466185166683911512141550509572603782755011259712493689306876521529157061930484598409028792058267158647817404025955797553251061335148259293397637385003128536103508772361464910086405198067366625298041675963767564222534161054030671765429788347860118648666222619916977171028748499903287577191313510038018677746133133573507763156117223150495701215417235176215397190464112429170940047203202297831724188418788808680875278342054031755216378648059038061570263273657779508688483182528915627823842227064320846902078034960301495943987339645156776063005341616751101714666446919275506450025906047747832021113957846871699382315883729500997064250951920557499451314952428069280185668871437986565507332783709150726033598052632845674686817919667270533048492397816871410164089878800308842421751214433442925959403549919652529313160797205034593770043539317197059546515895698678769256520582616833171611978763192617387232829577601578748470821632331711599370649676642701571612445892431774535301791850555533804859987511796525954451283877497597760759127754342016946390981006227106537801664464129608666608280623156406190360712222407962237385566882438111896982900693249165121756227273272781313736450714443843813991997965536410231961427031658338447537100141717542961049180762245043034632897706523779185501065199203309743495968626689103450192028476763875886857853803330997357209183591996443066858496498669040130980689745930834555495142253892410593443566575285374791093040758687183015067339830194327979644238968870354948408438006641041416230102314650910991308071348481921228686917623070443479909642361666703612016387550629626538839765956761657711818370071503923495672749743810385492875078178088392064046948950309527929911902085519717775475749281152231833982210688462812283944861578830419057038536294394297882395999291824279049845712158740555364847409153398043541154197726726514784861172754170285220795397256067236401893740133018941110462086339709269759740624665765844325239871584674558913007827960487686036632377391378916224206887954193350764657055128019504740505592679166758717671273770082221530400777125829193762010024226610389621364463148769945522851790793328952494731035313859874943008037803775512091649785096663891623207720541064777727265189314661682769338023573216108261658977560026936677104387194093705581891699846118732742541274136508759393724305929357539442084482957965028944484885575813219101661852207754119520835597775622020558294972323266935708735732422023115971937523250243989101519060812913800029232261503532738614112543529870407338787537924795693163214811846871761745019782083486257934048036973714886761867812181387194632260477556489653274076579282848357795027628901343124490432618191564408173047344191045415745810064189645573663088884479532192996056158025896629211599069640076804582691192332426527675186152237641367888572068634561187333849789310545980019321134076512332868819023874936606732569853276384354908377122035669501927516882421617714936454687112795507136073797323694263645520978007508238395618586642646692338326573032679982542635515417880567910270335007460486789268094968311934532953966690685287849902392562871025650483388461721187537517045607007512742564916741881165447701282704558925954832326645609215592345892223052640410692798838469581711376005884433635942786753970496324932529004470700029608953184918349874913700241545715478391481765606129794121723340055404723310314643971445312899828107791243175911931108467946141218010232126865669963087598845277091469475419276859928807175611795310981969853999719827024918507752474916923074743308659119335999943429129037445079303869430375313595242175002886956857421244774749572195172549778279170055195412394302092597327207451017329684535173789435225825866376325776414755600951745065713835196635244919048961802546538328512101631277950556023822780657322450233925170671457508967641635053017552636212287954298765088933476086523936689029712907283818471917522076065700851009864306899801555501232294171735513777735932705634466708815952907676405089608230295683036202635202553233034226123732072185050886326119721909893960741076833143480048725469007034760423270497732540628835466514478229227111185390687313664151635713723853336920672103792645103700161460353528674355523928449726996485166738268452566230435413943716401236561194769689363891573958425736987042063520195515925884403331210774834692691492544006301429172869658944729297643430513404792764242180133618208632284851861136911033109247159557061662591918176959231512877100566848949953850299395367999400023726072353444689305520936521696682335803034766450235117979073125607739630254855999735602395415581468975410570660480878056836419900865998693736073453327839299113110814805468463464313819881609070927900548173320230054027025369913344597385578640416106038947206947350618349579522448606702691959227309458326255160644939705342826144517970956219756256725249290554208887161565521603848070370681244600620296301255282092280670677453095992112172901237727713087737904425564691153917925344788658100285665788796541891464366969238105089828114557810118544419508051036541702621709178458956861287678924922986426528253840922927401464904354964565823300925888268322324185265307159044989620877259929023082932086935079554938419810882682305193540726564776089348053264225787528853993499044006484052939611306952116493005831406056928264384776961497499813848899585224333994044492682610738251353528348724633597161553432639709310792095381424207055073293443740947477227388947142407152137427410970020884203428084905595763852281315071798621580567006937584014463652056899077330611068049597384649883509263526887009137171890898605025968425839079256519288336527710527699552737888665141210663030955838221382543528047790280590899875969011805422573281027761345989628213705764888840520139035301936438301215000358637725578626122238268043608552260783853524622934387646351304763529945677023310231530410370876008072989788422068493720460691363904620030200916118075991655396662139316838250251493802444465807907391180059345034275783839851211434134621860852536772587856991156080101225029415317125226004522116840207548607552917138408297285280103873743929352722157794777476936179187351189303003514151694574090256071319619891560211715634459791378932643275670293961893785573014773167657388079203322722168799718702002992087354958561828867664114317017791383902671312565791094238790077059754011331574194709540058868414035108762858234654761514901665121612700937434008978551908532516956314772321320702179354856786120067104877253027378895449078159323550153606691624984494501990647210797261782410466235478722278631310929023526665911517804713453917896870670770704341339345631920722678164023366851705880690437532584743585760101701589136516615780552349455526435709253611277171543725953267375428504035249460533116489787963584804514244186595234186546385730903355011300947014070390269312168044500487568195317922391140863243578557317873994396056271904380831052165423983884800276884685082558249328541157981684963638450717753364149283252918805310060029787784950227239847732669373300535626998380180504949668384026955946759203788883728215289069524005532972167268511696779410983711091696276492411840854900749730327175038893708911468648508122591170557495727414766675643252521755420005146960997640826269912771226532638406520028404855144006489701090694511146568989735745925689556614210697480601170871212621463109300546273700903760808167006761068585845387122403740313831506624768377032807763151498979207220641559530174043548891552228760532967562609529446216416842768947959656746273854782411902616744022054430316248402379503134898163977557249109797068726011740413531156908600243647661599153855998295854335110457170089952021538968624912154220097091485041427617486784464965834568504451630212138237623312844908805506098454618657984465875649252301723345662887721814398623178369194835692404295368247274310603126132537910383764986991478346627571973744856906404004705984402990188804531641799915447696709981916648783772121299305329034444776136760247000830365801310102694626543453079133089458204891664563196131677297483809763523278897201328807951158747420998775766501103021571599594449646947347209154599009671937352949571500002749643676306501741032006616649160379349400815101994768537296678548184198271837701759145217222280815468012575741627394472130375423304726128627352519217762780683583600137381943690143834190109006120721821106932059231182735796505098574246589618815679933277083477673911891668977878603967748228752398182400145076601894225223395727766610608375780289397730592654185062954256463940253064126288784760100693859156452786746268749356917561828508678635940740510253493220862469893938529519609519027832433288672465357611157793865679596943220261457937952899245218267505522775099034771226770806368634578792454900563350887987475232195247975216762202556469030994487394590385956570960800715003991140729055601981954156713308276310074682960904640322184391833647448684924780184237753393073561178673200474296489003999955101273769396450038957069751679627239718583204678263350969092233604408632024763424662715498676081577480040760028487787284688900808011185229996552543724794498051851379890384892453028192515781846168833035707521428354258532984164551701556192404114705440586865123064710365281246024804071390608798581380335745402669534686099438090434467319027521937852397845574225498104719408043930164537579879465586438906748059310661098664318238699786625785053425495009426976342459470321126234188176536384671966791467742320795955312723586869865417449170578790863156263503472366950556285876243077405773584342105902349077692415176852844633710310730524354989206230506351845988373736737245652605626012392736910821133076606309163941578997027582730123306660412490411230347170022904872427171497335682498055661365000347034122781590120146407186321350954048160547342770632114975320283826678140838060364088229882861177171061547574969740569198722857913191380157833910224799165306794742063540310179834468789603466558146813658268548233083625788322479338276235782219164263258856667996113079517964852539366784104942929036270894099582684766797811994547329929237390808996655578378017165653659119747049478126976070879650445668651465625902733701998778513666561269595565065168771932137243730706548204691595386102444470542549799769906232555804423695968261515174464347359574675883936486779418097334101584963963137773324800312604252109119621780671202883629137843503918024029789582122066822452299717937572477072445886152713454273784254432802062257154865894907646023298036326012870413544933650164895914251127543118425657575123448024309017830776667251258926969699843024075628254362769178740035232760156306525000448660833275279741028955548894196219310526395046586458113445392374479982081793361142897052798164485195586425652280663700304676663146877672321319909512896837190761299752464832934201610119288886907108335460470511530889428251462410713664854287301103911577438151400406152591247718468817719751437939423141417982477046936218791476009980337974566204375363784335383819468439395067501656810011322425601612816992985851049495276238520638134312401288237845991238709957971200780379092119044218464682281967628675645059740161829041474840414616459251369326838915404312856354330516980248761514164590846629032159148381277876269865787375503555251972651296632875486194219019066360315427826298003572530236977431457558276651559401019216200692778469927586040831636655064677083110824389615424150357562646335071099110974647970542287783159096642818124306845843654635721908114717093326577252388018726152465736440979045484751771304971074908534502188736664282582799159261333928183124618595323580711277597034838955601196288133031274155581489486827187508389475563806659718456196207541050373643266310673607406161693450874199585072500707818556653919354440439568235753964170129194963023465220417496595719285517378088828196660338177499053837972079951754554479430047959050863721942280945396157077415165882548466568006862155860562443279487331610742947802665548245561014703134204417804026759277298403115017115034200609058519365969530740433697641904493841186335290718604800459697783071944575710649880661701172646135165922892014144812195163325149728030587135600999655128721742598855748179998955068726232942180053340562785672541830106447232311045912237098846920601449482062024906445597333397822114762566563247844517222628030483092241595766653466603557325911073205708098685085790056719970033691028228929730100409474826047133798959418328806942253659039248320910173362135541932280769696060263897510819791171272663570367810557510632098759560281647381616685897300241143100795630234722942248204164903237131821099897361235106325994313180506730245073440402149820277423205325197205706230223595194276418033614079803031789218202200533244516163344942270702912201388147177014069420568724575180174740062854125777944423494953796472818061406354128039492791107186884569082068913530785871578693049298815467147609156436901259882086409926855035697142411262283046505633617359614176650301805115469212677330050914954668793329166734730841426943519352927738854898133044651473997788918922199645552227961809451259455802572198709043496525196738727715766082096152059697381057855381593271656163030578411629854563208451599332962890732685234935791698434879120070433586904001831622941482315792400367097472433915370064743978657534531999532822763271155239807118842328566812774315356571900199999042782707159760682025675647338941302455644181021244523723081955343104910917904898208158970190019477318745399380421026345799174934736215884738050656574120803764376922812319420185948616321626565925824293193001689594882036380654628247014584184460877507019951982990582754557296679627988323970260808892127102812576151578554166916358100618487017321495133482532427149159911806155239847581723727784223892741374206634288883244089792388184559456344246684421949211996044370593343479805122713746077322500467436660262870314715737966844041958702390585908204897340336165755150464866914304733710603883285425588742369808059044259278682900846904989725909666163359034027594350941681680489935619552075992553299872531732466789840309953275284693350525553797664395887063452833673606165408648577513506610095306341529958626644726130307274014526087069291042109083922685551264826722534332518481089452255376873906507325903692613340845784446926929230757553541145164325096340300847232940994073090760796014858329701579054170642639073541069993963066634891055655434004970501900949543069577631058056688734686984029443884897181167209977344614991293029491463707795337480072856318322073458483605168863154957516762270750593721165613099618297265611634963045454684858842458509708786969302238571137561261131514365448419182756920148312105636470309780104104035542033472927945396406216400178704931346884534013684862143673439746666962455513172881266682828807994961632682805223239083720220978306864127827842573649689917001761289371349220067624136637473256062002286569389221482557285991608389885730430708191053130082049896797762684189408440287375495575623557573825260582107285024935658615659545189208874100326663767974139771034269683483533230896439922136404244274161219849877246475040496236970891839925706951229319066474930303958043641848183357396835673441490554630172461901837073724919747372223345702234474080153256342412117622031980333018912155138143869205112032503850220362213869845983914143081004694624088866364403333066217504598547209102872503417753570253178065743148748730977254141898745669760106525905852978784622669892625730622526673966382255968812979754659521668058191822533659847805023951557616371159005258845192642799193501061459328505119132885630592110516889563606074440968371064586081015779722083498723995514516698165624924579299191186921085649120392692108945829305930751830321082858542573358843189173230061515587131894348665209472451193722761568485886552414821858862737253865866146678981034757537925834541558906965602186071472439274871085648961636371712784208006817926990953382801929356822995516714071976235553655888470229048589686529510416903178358897700589917007756215878554405838594340500105426516767447600799815658064219551513254954586004689903055397412422058094661209682105328639640814024135037150162096017201875791335916109518235156911525519893148813386981780490049558019310886087085529926801630020630075160897710033673396201401374176938159041359751956813427274006479654496782565307343067711080480849964846199924759728609874842293349570705720460013900177018339808768138077101837351767554523114390543159371549763168797599635792742154779908195889058512694556575437553012604133621142121512336527710622523783530991778155686625716786882925186907204932534816193676907493026027868166166631992993598827906699709649093274604585888368453251227414474292627573576523645507554415679572388881828151328901313751998424128319324750676404558706775533318795343172670766946591752785768293475563090423037888905944804318402942001636524302741604173118553122271611629859694215247753801731572089070408137814161324064365137069406618952567650734282227667497245737056005897178404689928622906828263638645785489064467438848001715261701513609653516896897545543790371544307467006641225653364036511362588457362426008889739008718915596560691304370331233491712941559286028626486671108839537236052798496737955807096750432797714935711867524716264424200249533726791489453347629338339873035020718217806543828381100478800932080351761756168000771947867674537134305934317962196700275921447754141700039364739053432651620308463673679720325625121048761228667114154232144862495604643851858820651592531398355155998197149118596020628457881179092134729538517816501498764223421953247667821445155061465125559592744059431184949002498153912633214113366847704526866748545578471185853534143641901099363836809898092126743032752196835110581161274232819849608041855912181620136388955021301123141317588774044832623924450713574785751405482049635183552854375626343681100650328125142931286832334321279413170920202115276054718988171720415341033381542735473609529908742665519862306528508827925625421312010308881136317923701926872437328085436067648179650928893934687331305173883274597076820492178248582754131042121325474920274570605577008857699642151415741180247773157561783816010487678903200337755605425836149462351630231422996954810092158817564129622856879329347033026758921913574402281061459619674585661161609585924977175450807984706344018487949978766503506099905543659575591243392083596401074986349841040280723587441658007399135976567419015761706371108237148232670476943083239406628283923376297495918036226941908759828961383352032012402994788447141159345223718569907956832188737503580839945665837580808588389858592516964532729659925088902815821197492876518958749282922744365312152144286971825761150936992451237961622526809483094010434844996703285615853473213724909043588836039751382443704859276562069482939592818573192671768427569956322032436755940679446847148871156014656432799259536212700127086714284300405799048218622812497305229687710156992821994991558353006075395512500414425473582088386764381850715938063976965625824547330786684240857429274619009298082889419567689789259008972154372809369036121432186922391946696438151355399330909653339578006859916995710846446159086731983973153550413739660297555246655943349265718810641726718489021421663901694561517890273032660035411581719949079580074517483354583009844548594154239646115565871824601665307958373201426262971163847190077657741487547573641263149753715712772618489658338228854475617564596619766781411728000100924477259980879264407970607770897954164979982092484791695940113729750842629295831353408620152988272042854896081566512192959883268092460654020734000184391405389927707884837051879679458977355212093104034862249532544812644562434198854682449769588529204134843987619726352992169281905632948985882022515961799398120940306882778684270042551498948135503303201700860109530203321624103631820721019969546015059823306071624871312946179170088399866506211051104005952984827811937937835570785075599271597135827297726735196587366208805470578775353031462726569633064862074317381130205480802351092162421759316540126789681966218118687148850773285811896868491868693306964468676390733390509718302436877667029931027176854938781667713263798283523757169298429752729855788205930428865527486764872441519859897106249715129903276705623516584110626204698603571649627676129985461375512952347124540083956831539237164209091041312400877209272196542383986644355302608648351137528822430601643604144917090475708286528862665483464358657015485709041971675095843273220455362277675676043017309735228761141057321651603300806850228642455588630985342626493017173206896476096335079924016408109914693296337674126254876759826659368721145600503957670990367271525835695023994994412230766416805844887397376705328761578598603503728452624953615759164013412212707585899878485284792262408655638278973693502539604994606198489446006781886706460122658597093411234074366954999524785561712570615598075397486406841228003922117500489234097925904863230959399495078839606510981278733353593672313777882254778243377163577425329377898498566767925661709470631346465597133338933991123008437245963304027255980714406883819974696494392788994390013504786364298243303650481606526990227914300511723439334946563047935155594410307636111394442889584370255800106900451211290065336233972231779963552186682755973172849213692353466099240069611432403128507371956576948358690557512979571978506404786833219788307129374199081009658815373548916315439487184619618525768371457281335542867978661646988096169523797704120777385111698661598000540249524348442602719252924084389813631022790013438901453767374940400469800313192530462853967758989289130043720095675420215893094078541206575776731172187808345466670588341409076812225419798297242321013556040614030459677298628761755940400548988992650894170129935285031682533216101601054183847067555971186244051812872783727709869080403694443505734347712782589698337054213177544449992242043159428743842954868476779824978758233535434767293584640201806809567930918450352272141609411913282452056065915399282776737490496243196253048556874545363132679393219554067488412585181080156014682030046527314872661569907872578544790271565586836406131226117993439538120493104599954640628342568827159070206535697050732879518410980593807895464592007170741817503179815740433497876027015794068814884366757587209906592162213422298097806960216871948667049386809771310462305526625359874115969952260823226630219624225816544128921996382435822008999685317958953164350673603970508770206792839589597418394795469133557942829826750925454359432038371601857907377521766111838494272947386584763350431606115566666963187249403555599075916487716528769419587560879921359951977127479397469601863366602749036636323954787732383256621388461258270312310690385839044464305045128763176423198663969641692422911060006271778224187490462788894916037745954944361952528858417657438365585566205546104432769874524132193901947286244481673341152951787839759824398461154383467402503427886054339036641737254677222455503499173862833390697389638503987688995517687027691415451145103185938198843219203987661352672437046376167044972514746794840065206934091796957341599760368099182476463079298862578966894370304053441357214298361172595015208962155245001572724356821697620295759631089424886914400418498643941436800795167676764367759352028686883260313179177396721108238734491038288289452343636818407764537223162396673367479078296030940007324181672594849304419284101138730693528876568912914826054462880543718562040927536228436123200938940456127328751899001941443531637979418997392742785232938171433552195149796743520726066292184964784989895930775899794055683038113973606209887765641843082527260016730686282774881874737587582437474902362900059460038135458373887645104439006368286221319884947969816351579306231747615361036631117389038529315828285496725544246611721362953936249122896576944188198092557409111364433884335239320137261216712231788400998455739841109828158848526691640683129390260946114436848751888881288126202757833256638456730082273248832799235063592226423325791650537541175609494136568637162709411965127293033510186588156457424896446558657962319492228772135633935219076372811231191039243632934035819621840670818873883453088934918283404155121280207863855789870254978262090738274022283956270017839061004335509863977226012378630020842316534074543539121135112705121681992442382536590907882933174955027068438189935127044129450744348900216907362999734777059954610752043080353665054327763682939728331971966503374216962796710163536009086350164144496545127191322934976002914112376353571920096021386416568102225992713754404499246351414686466172960984270240998855284253636783846202220729758984318530442178135481470654011197676931887850405961022285381856926262220132608490108793878484657772160934042609042224668093636119648083211135819882373870104713857170673327717615061350392996784568950104206624188854774222771315824687202607580123544640907160167800743188517297966110833237040682245393792006202917062456114541239620356129937932312456799898529608999568693911901434599915064606888863977722874934243724855510987705868324494374561315812047833561920000529532814416313625952763189214453802519503853572688891356703467203042089318198169395474576026162021196079693955110596138165029173572118416438738985854982177968258691809209435250402392688772474551302034309659845403936543497991281709284691085216170998167801507885219313050176746646402179513218549519289853735617909407873679129384273451557995753151556532721197742362077121653814645595689509488987675983549248436595914720887249989331170247740159681567974860059657505991334235507998899280401031426468888313309075514227681198304723249810480422387326892421461554925044203224921122234448371064120132280494546514805560891217393430229685170514785558924943279834248748177765210072401574307117683369878573591166134616939968831954251821558346972295658869612195811078898752700678821094241041170780851958830739131600460847811970904771614762848982977552242512758965071041184642769759045077663998344105809773806349064714800075079697005527328350381444770608421212535617088570623877667725113130760422103704521013465875443168183862972995474740354055156229056614774433122611941847402776048689800380946963587290907166716109525615514613646049888354223730835733477502184599286691612066508641066288300186305158097706423338788943691548614994880960794683059973582413320544826403897542213734508793855846123754630201261330008125646365267252462371860201144300701116767515317225766357743631990670876524353703541018865653023431147510023486847076561736473485400291013664437063508304107128556189227260370482793372161464589214855723908090863719353634030359477695901130134950122480117575936969468204354464108368576825507042329421501252197724943655323986991607422904314512885432307865793275675586295170651943692268937460114046976171230655284446353933531361620932863057960128514474256584476856520131059426185784254884675386439502924888443707336087188117812536642483954864436750602193785209196773727583915298159827877291359637476867236083279385817663326950431358759520345596430471287440291374047638262168606939023518024109354099915454596604887114692944524232458678120689713960372777353443564807525163738772866507719916853430042854342521801981774821030146346370427749779125455692745316301996785120182763890032004370758146474829930197038664211395654443625002374825490449893193944580582320392290027300600125275481715256753570665262225791281671209537462078544595975269455479394663515581165383364928918296269816894968293573177900663715137977378342871243411496718445212943332081983739561172081772071198400338902557867071294346697961053767075863326298845871307657231166808232481910839099777962807125271583089955350075396013188212722564306482547637050776737835290356662220372327817804700990865624085251204208940655620153034007265295916455365874993918085028450384050771732347146520897301830649063683275394492506653406246998047461668459869975767268955759244680944675948081947512979441259670790372915018726410601792143403735151598700527520971816497000444732718753433001969989797077508658185512095197811003680238173149777664229733837365979006138281310368223717859881932614183291979666512558650847389739049437177003584884833616334628154289064099890504036320576131706249578839449173280914691360639269977653607345585851850734301660844291954389147378747142620520519622499110739205289590931986335997822602540879040556191441224363821027301493464560197941748635535684668474388651006472554209162675134632340785572586456200612184223281049099471524979702295860776897657661446731825146241563232123862028849434984125097231664186155286266980134549225060290770069644036166175492538901829911581708883043448515236521121292342821367176617465378711170550523840495656567472305312805709667968189620898401050505375371698398802574425382288018124430720524965341703291096299550248200548000423986593553892967352341090701251027325822779909043065641475927791767572022679061650359076726126478774930107132840117288168365606298919861663032508263809029740736069326037874655790590270209036472090080758552352838224301623258140289072923656578858168478489321888168495774240767068503784304572796162750454242729297511056320543086126198949089131727990234540444613298070164111692482278759648360649607760393475667331974989280284617854223209780392327647275989888543811254123471489013555030446584553279948957196448358057807131950524921469791862964785850553709319068576427890314744556933968677066675315350577409202951095680384533397192376886852234731732813735649602182181877470127443580793902622783323495987693359562561495688882129011070814548649091677498310468597974016921667801505795084590881700672500914402899313002375815818494997548566331320788077082784111770890943240746377295445555987438642729387129228050778858813820289585743520731566581503709142747961174717010224053891593573861412322932841975200981727968832950070062898055354822039714458523854505754651582180176181879493461949414860942177434720218023426977343685042338998776023394040879090968930543663664955434281065859168286861335300401438534580300177586653036312721471811347234394708224531634511515644482875826476496614860667397156125739451749506060925449123612622024179948324844964798397720463943268735824029664665897286581455916081864911353200558218529631436414482102955813684145308464424149085613711380434803112956795313790342143535734525635092780891192316019193575640425231552867719296998767167260579637863473166999968915299261372103821775025638419491286887929765592539935973347850101349875107195384085401184645154620030264249652456104409765446455582899494505908455340299084809205007643580699506539659260303614633822281738215230473520427094802106351184332071057788029725805592987881629100874282603939257838094495640241148007569509258250565429463348216287213515415800546858077938039515765490331987043700886041246801663516390362738363183308139151114314408107719986047231701814390201002296653557995777137651230013250171223796669666890985353197393346644979774188645789356043384707526029402722005232326293841826102348201821823338233706610215837086770766892760875941275499420754827667966530083269962980146170503355850123140921540333683006907525333930109977866082815722426393547079757629915311059030755203185668015663688681084588697145350847615993617621504948967862055533728183784172637682213038171845465936136218868522531830476863991887546681882088555312029016208579803771057297560942977006478515596979326989751028090302301035694786757272335621989222611380626252136591716090868700567014735405024806952148222980691096678905158272533673770455406525781891843620051060435678781144081997681189945085275590789270136012809198539725282609520974825552275026702063517283294619533952355073774362734962249487954551012068958825648220464218045125551985748507418669141560778861754374441969953732594417678165194716858641574068126455174209281867185857451957405182565450632742483186598980066091483254395569616060516683831281662464521943021882826285903410804277206175529711693937183738167230537374848182944141994820309259531837763574207714315839018783778608398058224587341303870510171018821138464011787155504039925877282941770910203206604350159404180590274287049567289826531959473878218380957238858565084631203061851273076715048653299093935199860892035609865786120718159336257674972175362549847801604380682391088511008178230002478592012330305697513349014644789534474961872159456756207798357734519163330093517001186016406097667812741086094165456922092127702591818174630251775299574293048698885568826049075015760241570086993668961091127112225793609088090807425175008605462519179335039643477195351910515442283937943443858232021843294323389223450917030413496184281392244201735790337268832576764808751195689007902186239692117746401744310959978741727176402352717471792547387834048686820357875215488079391188721880219777484554709249845343002584415129528546917395331364049444171564707106618625316777046474835424549008477848963967357997977190632632393687644304325895054958207996206695581851178642623146315228867104271455919767372426065470957166167603729542366352796869146145461674180813271067808497829418951683031132473625250821965720190171715645610556588889015006792460123484110151010252702546644144825982043349224680854664511739113534638504805324023483266721492344484993708291730721890018395971847279706158762333481182973272286359340963311103017580155180276130013838931626162044435275976217459697146041066536192002165999661339626936842060110251761915439582595783917934993822372941567237746033652617627590363466475131786756521538959882885246596263550950656535980131585490318090427536520683753774618756220626980668107951325911379879765997403470597853129069945253258159664560015230575869672906956984221982819615564195370870879121273992302704172851546321897073966258696303849727982177219275172684070523587979030718009894222984667616288717061488505406428142997149487146124706586991355741740180917011769226267440412334792119185626766835979294501713179964019063909268858329468333808005878706803349381588782243029968517578197138140392435317138543839594410882448404909993913361973401531878956716787714222904894698430750726876414139909145541191291720016902896383386749494060320576927234073511568264029469690722146846610839527089401515355143953675214198407888231759266951195604605146425762592782217207154095027316579414269950260072268063269939116890439452271848164000192249239545782216395659356604728646613086264072724547281847803593394423146053206947645187950472733490483165480752138153526671395779963339609541754670997011244132245834465827431686499413627848998642592251798469524764120780978359780957743571899963012961307669578788179865976045764307267176016303889903903160221829402466837569408427849305035891350767329689434494767169031821745209433946584552094394974866971973330932552319963341121663853116795026899022906100656316747887636462800187307603493302194394187656014954251524186413736228225856144104422318142298822199635580700541820287804851170313324144008858576663471856779539921883389449657092581318324226672763089326630792561128532915487375521579613861005898233112539926754575677724957638826725409585289885050013846340478556382886075284496300355473537599900223997361650181348178737355046823032329780841718910655333020154146556995762893624213376538735572845962639427337465054854576375856510219114408362415795207623266162621680035929831271203805341316175624822328151414629613976338565165539853368901400696499373847119252480013767104310420306745501344050743144721794440177025522329798421406515902433774582525782412002634969159130385751344541555125116265586172274271580881346254207331142409288963212713480469323047953275888836521975138937303798352149070612013393771997388059134207541922973702516143536451779868061878378807002263187853471905980509631852532178978502382426210196652544883340728724067859525973274386009750026615793919668427737744745978103421391570904933146388263470955405751461610278741452672831838459329187174863452214121360973201600658376822602284205116861620198824018034660873484142513053456655626743144588330640854438888204439950845088921187234015988964020421788856130796439002878182994270178391490705047941181655191221623326705674232194994959955906461914745651246140552061805295899384726768251540873262130141347556624230399897689399007254781004084665317529163090447257620316006651893321434897752051008483539683938191044011090992950527844251110828477695135384282109588978027166339137541002652721386516926130738245767621219915584262736514398097864139584244793328009282097630741135807099602201916716580955404006258207797929464354053410782491099543844278661526588177239010106207000711067408526426364181881865666657485751252959212176028989579411564908913361076013664888310194026765013964497735298302593103285658923194277343270671147113997447294926314499183381673077600939434775163519971070428268877284578069521604159906254648655376203536152684190984441110740426930930716141217674313284462386900659634587621752443457662374867700712652693224646888877193532490220565665498018343389262367695414743008522311692761319539483170022799794525052913983640496595765392658860080086524664179592784747134595726171248268534069951811267136492066031476962397779904143459176250533752721460943865715821292054724964860590003244973074948612195207431797601133891172213380580401096324773738100251389454445475602447551006947681416299928397398002686103918249809553623889552432191381763243765162128540060270101403702384564083645250259578939840396455191699276864705083213648950154417584141045448867036558405144687438622664869030324090270487595032703106477030905066459827469899045729703505257036813460699314941180068669505914847966796954043033951452857677036010757001261603636212144349782371741195658416969783104273930460788313538922821850564867442245183904366910584369149592557305167043072703746107701863642497113197404467302044570301132527268450334612435305611193390892705397646903962724826600575586982034340661931969661777307436180861752892285150514411131773341809045025911819897670889050722728744843452157390362482447812685389268390222022692759105497711233120597587007951277507787421120188782831189904553280026542173658254635739050681781278360013027138244316345415116800052336744415136227617123949123088690021370853896710080636072172964564740467335462585265951867500626456775148959175145411643088304569858123599259658004635436007816593080283948746891096482254904806022168255504651641439732703060259638610434640088101349152532563583622512430350040798448670332318207258363529800835890461590719648164168521966846199198972639342927516279247524838429838402826449056076683034165707722220406374445625945559716781402954191353538124345396206815837391388649220350557557107225748536975971678229265268476090535417272169075719138307162651704989203047732007885892714936934392553304653891016271487583836673093944224320720396243903320835242070643578871681678116136139346822384204988852212305465085534063824653519745387124774482937879117550895788364035242728752954507724716152485609270482845046044591633622899090503324472255006687807330603328103857563082398183842622199724145952995547395584545117372841577795358849419666401282669660933559092151485926788665959246721562422253638296672471956019589567525025489271445042072712157336668198284325966796929144714530793145772579968614901156202569473329875252168803129748674620995398285075128904824515646490022778382760480275531402726335957593853757306371362236595094995378904790576047793269616036018201316513302293575740795391010821755387628234275258566652791653565305915345091378829312995807787040167962784327880342747857945934629455402267669164227454652724227633546818080147118746584745343696127743539892040251973751205502941612648900378445030552598297500202810653615484779484192584990715986118038621588647927042792602804560424634024392560639885535184682443055188379463984946634234984962725566250195983984159056727596679251603250703933291130985967124659104749382799493618542730048214832413599111997311746425018154815230527889951486835163593125234995525070166307192942241569658606370304061897494570197816006366195514543173303287500911353901670797481549366386661667911367218821225612298407536790196343744417843175676302218716007767485534075866346528072834262180510377404502536554003294852772582158048090246143064222975938375203278855269014425975432529783379158678443445217041659852000338580282469577695356475235046929621187428917697761915302041729863152683185254312537777729716622599597481516674354064525416046962377603630737708406193626830409685317677494978351394775681127383010358382970466878809097636027294675728733956891396588885257525614680339466091574556341971588070228236107495121934419742861748131921152269793514972070681257061090710877446401690072782230358848595338433245420860483666986633068444341020379871563789619943507729898435468980742239212125385311594433553177782716740963695239710145098049986257194731952154959514574169338226765524202668701167001448595524795236966415492215565981866465010882165790360606728332887297287417537709621818294130069765448510541979673031116305443750122882165464553066710632219125409102927368122717693542195521855619967700023270649946432978620305790450672810993467657085647148018691173738006943918994159848266307007019475280837002378739111079632039144248995607631959071975111336114253917390672405313024110672945616238524436928417191561739276686659130998258060210305691896229930249058695309022378909139057338272579084008820143839854418458466862758639172102840470623247592096898621926790138441200715573811539005660084946345651269671814828492933327097588437972487465412919798808495603465120198877219820488901783786119798406693802656474836647826557969973434160870775361709987275097339234039330435015598503026459267583022678326641762234256863127363543157672783320478380023489222796582641177001263791309867669999585452416673461109771896279241978721212964790528069629421799104726505753088923380102991910115318067031764749125238090584230540376433397690532499134505223930044408461654961936495225361934185702446154932540285410010498356350315370767959744061654847260913810906625742037712112617636192576167297088067043580066231789353825706710655485605138488759918694842318276530177562529773524160552396956845393156894499420268641958708586307666093152523449969452268800896821414421248918184240808564398922319758090205964519389745173915219900750477083755193884346926899598074155837122868832048641831779925755037268383906092299329871556894402768260244992034016946265129285126977414885427866206248857823146995971861843702071811247482576098628512589789337051858403921208826634966137791483310998406636481083544607929182189018065744291438866768083640814639837611567331358444322134595480708232187359677980246551125495854883494422907261850011856166664136542164394080721153734429656577892481171259848386346517323280630546138564643038007055651296411169501798740102424449845631949241996261987855015181788337261717310182022081615260654474129149647771714336259441078885486570947538794527946075365211250380673273872979944358536359045952172032269110127243079797257102197269574498197928785995986414207172322530009160890085438215555639429326737163150710320475934021311262143781074337062913568724687727464988932467023399848169345821541553415319357694172392245997942706534890256223715086270328812334176760042029022764144546995487450126234778470316447991494335613347406794006459683770871151930143483177465703795453444550029268026205537082265467818123569807048134391597698363439590793882215218759185486113548037944512226400163212365735562462115561258601839624047937179631746957319401827148285676065422899852194798930031802168094382075086632736419266404083052985349315957040020163395362262734975452287623877229485940496925353328444577806277225034684248659420789890104232487173002703937507532743889136952139808198989555631565264761709129607206758050578161953919439713614214909174000454727005275987260081855686603859350459767387320877689280241865604513639906971766912538563975236273384536291727626231014006161417047957817152722057402206968740647749864203919625584597159927636927656702958310527346231411978258370284043450594265313076756866290539099818338009641964724363733243925520785688274033301155553538372414717704539425982885670163373887003458310959459644597438493437419621335798600590595943915558565667503232150522259106535522787718493802136781319409643818338287459939412338212241454912765348980293488476254187669323598572094996864522170949200107012305761786619114602372277031218874672974352509250463367647592698629769384328189596335888434006923749087399258274709326238370860610480016108330656450176089043564949346763209408982779509628577071143353587364233934241968267080288056861215170828191025125452195605432289321183036743180307188153590103057070243990285832549933269859939168599596531643834082527307272523433030381049315479791010179741259395661007609379557485219533906758580519312373846624937393228764308977347617333152201721109705802713007067428338671669365900915782925734561925573507869630135785445496867874004889088783679148444165170661279764933493896688907515311517505571938879159456708853669386296618808664675518809955464857941526308705926883756565772341276929440072233734526431721084169272942992445697646747454000825229697897422976152050875063269946508196215019563330591848217630472534194318649218510250401360186178038354475647160388001980372757279764586412002329266830471282310602140430015218598181948369168949126031730980308018845693692728777052200939515662958145846120620720982716884420608795314403998298519716774966013823369278201073094379445425303774029513674196400005956353327119105040742125542075470858506571973777744994476406483054586112169521295879035422057642823966910108147633410458214206751250485471792701194594741710008295941529040993881657314218308578293523058710725803642265252548246472859086491520140726131854585458794539292031965807872052657363994866626947908818408451484723530972389685550883237512154090611030058294436526819953549397907068551998214697913307377290460815790840906273833955981630322467116609452280720966806082252603383505133942796215586169528533954699466409582094190961831594061518545262910011281647576550519808123648619240885049425730844263289190078312732190382174112101012213489202293290810130984630831773573727720212658436805493030411625809875304930488229200686864190166124780194254696349068315856834926434364665792881834767431097108367314959794841668439098196407578899190541329420485760923487917410567218328906622896395182137895859195445220388801997808759362239776512374133513695444957438440710493903162360756141030658644273679670573651103442645940702896942822237876681470431163307850597912409780782431006692030652254058609968384359704712663995854564233292543006515393632737833852368135088434173588968299742671074201064898244562776312293805467954037527066782201131560370949659407102223349109628439007719825090364461108324397896970801004615949984657474025917024681650287114321761246785670543784167936590584656554436119955343572771259590726659469363644215795042508769569526108875113420596075850941015221525085991808497432079828292418203965941820441170538961587005695405714815557160098588520723025543546019455944985667454125122587505818420417521949288411141936636257908310865809987532631731413335839479957540427892301165946769569098863861899974902985176312023020657746404053692962131073894919856055462493281474179378749734806176751245462164502182792152247038499035876275307285557540247427742381040930353988240509525595148396074299552720015647656879904409804287309161031945935734812586277293483878963354678056830451022214346520977676920150938905638403183077722189432242847697363977942744381649979617632338539598740000917477339734780255072743138626331461046392485518041834477681962283075396978065293245288040167735804270649465548324363612033648539007224670950987336777141565986500672383886331435116727453281437221057858166721614371249150273931635466757942619793073343022281063266112313654679561590781488992740850089096408657497885684749011190215511889511732393004989916540032899482904374817269706781362049440626591448553017544752271266822865985418555856341914939938674000619210657131176784495614155346450035371180776590449811223977786020238384696559746012745039557952915906184856350546690190578239013577648573642417302126038688464747968382793062391489323224593548219615646337788486001079284050281647826735722285112815266264959618762445599225709225821312230335063211224361186448171471129677497038960116069389870477725805491193992235676768622107488676733510449627371167956398921802035310903708780377394599383220506710116070681727464521180009562036801627387446612653932354838237788437386993028034367282629561301091102167796638802478777050633633539877824308425554090978593641885561901643466557949970065996326908469587769905966751160251442884389888505790397811493206381407759204290465313481472234957260174411360531970662215155413036753036751149419057232636357203659629731277988285826590895198405043369156924531785855106509979216791632580369912136366975285220836020436858507257050047343557753191140604818209152784896210206111421977486513363174132360077634689863560955511446585324201856263756732842663538987471233894726340682661704186719412548293246622256042648889524945980740846680205238139552955436299879632443601403682037421580865525277396978920350242139946720146311526655167530814549118149763473802708751256206312816908998019944387908942060726238953753560420600849343627009253855307657010945431670489801950664621021476522403533826995152557324123553717695876190015612057463460999440979496146361766880813358733485467361364575022378202001924863125571921620496619516005332763805397905716716083503561788246425795934947671135316797810146240766007310588108976016364897653225138937545377038410368271129169445123924388093117739091267994135247895787722955326147837824532405181740525257833904727021642604408111720077243753026674692089172650298207769745007139648702682746017593167304201291593930723906592159727508332320469104015773754030889505329499464762874427072568246112132287443995247062764951606836139840667524459361148451275980476588405247190303559794466654469227862560068061232377204696032822992626549198481927883792471971891353939757440211349066903621242947691052711049698481554859907341310400204311953639314541489324395887772232322001173705520931888266577421939353343384958637749652393458497124264987559069262022996399038533573754547473194603293405093990441898958164986206132274737490982442256555947996235116093768676222325411407298098647684085709251321375392966634845915314769376879618102493495755412762864567718157905108823558763424246699290330864974321790380839009304493855364891136232337182293864679996329286334133676319417819745612999191972455168064779017759430807276417213077446398980847615719798461151356136417223044597142894730229352277983829687687829978107102262554433828225018037457121984938987522171406377462534589940696209429518303368004283560225805925090108964819060007556546506834779127536968400186336226891215866439535982159512635585011677644959237293521832731384939259590100088786509735495506409524604852489479370576608398413757613451839436385882871793134350811496227725687630034839612780415163133970859264915983585431288846559647293013926615325338212660785970003288733304300599965796435711858382153144935034101439806554425314217610814241487594375743126685945782808899865265348626919195584922991199291071178355111000770419163813139956582324504006994991180680840981844595195606664351708781276693015115443492788230981792651628717338977451653649521732025883443806418890666345226609785791625592794657285157868078446836341208191263900124245361621678843096545726193665048373753666822318438544537556736953697258619787498841380648265283585816246823612399871582156409882744229171018447378524228800532301691746058127878251520428633237884873264885447151535157197927620026209576873940950564625388929238497372281655857660173692975337129622644663035757230416682080515295499790713979116522922583965973567461213090144065285790500707080741506743840929943531402783086450632626767421819777271261342790995683199213970037350498833109912312982454814721741847030708723400946341400252554442835204621652419215122446097984434384180372632788260819343253270081900057549985279120395449637221000022611748511726667911008055104841130797010437749217105933062147423860949847078490050676639148013425687388927173152433373003573231969475886051287944160760204921019749964439202717478414701523946237614038484854260704017382824156550709728646646555741302118091350010500869135628669876586754280000378666496424560925457452788885496038261214684627740464764241672393846526827469591371998023683361760419674409257606960276306015388937448378815215241137630646325478422236921390867682670080127159882074234127904436043226269231619968604467741189689770986243928391210186797079331595859835308469096475485049758063276419909571519329792495430917170319992336854281103911744032940193505650794913194862096251567090450663759378353061609380169653761489484466303649210719628086856016073174933746114118455313498185298077183635997669137102015759651637959438002337751089401917171432449731842520176242404065682315248518503266375471180471243454463456801207249498564472713338579362650003500595726294361171408690219094322318212569421358610601190583837591729967235268337561406269607898286309344205462821118001578539037250254228436741398468606388417987918813366662094010316210636024052224873000271591828169802677318541892345840229899314829424543144003941371563103456264502513472482386236656371815064559081147902652392702989088337354859657327203849566540599352230859828458450156067021949607969006790763308929840341309143091624149134753153307848848358825974896267115237486219333773591301340450898480113385745786678391283887610717415115263539946900436186975590336308570597374120858932426501198015437335706781488993958298206598718987894143152709106507570295379495972107183962619247145105473843696146529533896075155609948654846483159376379091559215849149376981833646115794610895084563436946078969467346055302654048739198897818265415577515375231443898335362066998240639628616736164050988518456638846991566771437152763346428014165802790866215656465311754003442069538544667033202810369594181534848336336109378519176702093934168827026451025489298901512882397163854340922827443445189554006078531835204718645770361538665348848293662952647473200350829598280892899307757422244155445982338122599358826319184048885014708392807149287684777859383344878996329606656399041904974332740750645444255970544003520791684489034191764792847321922227766009587560159747739808125557798244030055893445602479520807456642414809539892492835840067910510203507080881771543445060459330985426620139380805173800776506222821161682370010057515413399959660891216861207694071018505462481556992392432366913571430807212790659562205130339091440145827991183029571612673641011857469865754412524216018975644347722515892472236829168954433551273010107169052432152418524782835326619985880064502304502277821315424103590516274723399156942258127617434109106811226364963401211036164335510841454640841889302604065856544834306968572817057533669620283955061563183267420760589562956764718569348353079992040558080137156208280699344580965623439898217088121087771297937326686953206486563462592978466171325580275248040642573791554978114633953954387831808370356713937777404076761934308471551228210262626282179712938124538075581744050438704009337237410012888769131523824230212717567141613888388474386499228299098157536123498382207505103299755010068570998350912836360561284958768073145629237118150266447749165268870311588154594993321403428481329349593288834653605014474515556413345860804844424993938624825586755149972708355070277904545876760846651306090506520617834767646916547582696479330854840668246689144010239346292620358741193843067364135463864241834214846989562939889693667563314380591354993299668477136514216294680568239670189326154718896805073896541501654467583002669663666167418174374514064437685060241159777527167847527922247531109367758723830956530615469121347189256183695541224714324288765291446962459766200011440272778766096793654355102238661718439380577271519309400598185697293599036363858363768189023740264789383747595672762629708104217081057335862435984736817030408902725820378953028568785274420414195656744455157357160326715664603685209046546159217056277960476964640585753862320432446649341229493124701778952544223281970099951465968986472621616345430655941422119328470157165662106962380017155546151239872413831690313941410858007663429623720169095726173626739106206906175541046114802278144073921344857907644326858549725859878272298698037799546008521921921666038154231661920442130489958371508892619416532529020523654149939966737565919940268461576626373193650004231730962869196462860257458518613502976538901371852756521215547035205786148907737766113428003941387100333208768376097692163686099351333238287927921920764656675085726227813717320372298537409194780822139637517283809770465531879997907689403380415456565722648118746618764741486938000258182114139252708891944299135733913526085486610995632685184675006550069357111858998525014466980626554465158276542062776124225796148077707784749481146570469795723520068896453528824055922818763720016088064177550670256276182397397323665131147049612897356778033323617603092622711823042400505085387123060661859982829890684479015539622370231344710446595408115487864974691523824889305746217042598790819255541861331601217547921820008439248017123046766054555786558339328354963621335503886542598272789638980389016216075483941240527268869800528596042374945896382681503110673685579913692643377788977766469583780351247772191411748058733619757344363727207034753647721181608635618722077015028668573811240406083901854052604229974542884224610943475351121350299232746244272303927543740744708262262562545509343413336719760766884970878921580457811391571675832030937380658048827009612738237186383547484591841839420456403842408533413111524352469323486990182299773028605605172819968274517722727115821108776871310740595721337417646606604242992759699247463947661841758612984069781353010967007469801249546599760294827875352571588770404743189344162879940666503086384128352190815563407610773007710866007794183707848375641433188358509363195127429736778523726507283402176203162825704182281141198185125238862709742469231956187928514753864415288169805283848274240503315110150767462083609623861471057934740948576721719519125706517265001824452276776574837613463458653900616674384089131444371661386261018031836684596215097203668571550942190907255176768030315599642842138346183119262456855068371440271391995589936339734147816473752978226553643546392913011189648493459019060279076919891277107615853662517828201367731245967466803735459059527561699812568253604463364934701260317228663318295585973424749848666185800861067460789727016780411916129617656165544968735826625909717348664265118625874412008716659889645895244961701992057896019571539034892603356879659318008722574085185117238927698939425797762760779656272813454658645971955402070128880310692174456424735436643207858843209088461806691753279017734889346808494499137963449019827723771567467326911563387197296487239423014176271813428616053163570184388205511129092548148417205074855626260492377614325228833456191171233465247389361603224444727605060818388576897150046491428949582230130291309080842060943698390117684147014458194244905162778511188414278788027256627296081659716157067721675799616642120469356355519018120798207925133149109390091855002924894392999964772896635061584212225059618524881309930783274327015907774200810698596232585558334871366019595043916259602990984272625862639571124544982777604760602443120363995155202575169739002498522628881964307151811227968541996101912561538767939766422037476456163187483177614196483980397838478663757584654498910510214429319543684913038814709941687614830180679271489509144886488653952209361213626010261037689015706622611096845693916222555561718665444352040619092693736410592999291884643553980591602828876731280825358645965297814520335841834533405049431745467570020263913256432834353188701061928521225376603527612016505810797148114917270217302401391960246245802502769828382126197916237618655886713511259338309442063432639099466943551910318701839876833533392925701811244324806257990871672407659199398408501654353104430125906943179660241687699493664407562848619394704601758628926412193831911129871616562493658332836855395596713378260946689956810406498474139321845702117293207821798352813872158085176909205731579558444597526507177940842322617655688027409805707331508359866034835391068895137830768749031614788141035800981817590171122354062529670593409282164558382800201295929036694486277256794272708981390314735242924842966116621758569156352177871829968065355657951616313157517711739552898094638705845016810783303290722882330627154583134047986672305634321938905334664842412558356166300481051351152197126521068377604363647159660565830172209231530065074490629610776722883504148592717271684056753539387889313027210632698767781212027418923327491107489557580820472583557114314983285651975564005076423157458101633797578056140585568140686189342506100769652098452542361510816713188938672777679464356951261536742516248867004041289896509317854397431626013669437743911211509113393208328387186155059299039045552915245218083567046930972832131359878866004245210956332897051134983381369280514797411296849723652712641349761405410471737707860204339410378405689830081156919643455436853456383359438692292846046016450237045146635727569430693733464985104386755914999250957412859483942961844106258025376423363039826900311205919518689303648846713112263430091105714416651821298900437237623985900145000373713384770983690132963795105564886994029463556464556343353608376469725975072870808927222437984423479998230561030653739485635689753807302368182636768166778992972018578253737843618115446322028925582550060895050234217459327397664000821481967066290289488086941757979733667126382785064520070534892410808836701809636655132334858422523715372557842790742619044653092051550945614401266748993504634306528712146101662656808969790445611548377940611368382483517133005691027856494106528536554899818601287413538796589517749084687429123252139329234374005335676577556340706860345849496076653530451121561030258510179018574189759273786538922600071529234443215439938772932665656849066627268192190011192773448534799935733085995558415625241949460402167628363089013004820304873055217422151678138471405943721983383596928663837975655915142450163833877842221116292224562935726658444111556235113018867752512446182634208993006789391926465165225439684392348388870430012264616863585864128550548943044344958435118684765020309843033200747581229153792168726873882195720633981918060644584224805225935899083109199718011496877005442536604451442664243244870019648298089842212734193198324898968367179029692702210944748686814461243890721564297922248866190909308776502025481251574173740325247706203801557254894520694678640795881383655685652684150717459570437609373789570376917910371908866798013052929936846685246761079100797827666507891380372958086764154908998406972152242300274135950237784356647077161006722715608813309124553438242504337324556854949130449568295646875416226812400304445853854245574637455141915053116149769178477027851732265353496876881817515572551419514777213720701419416597556967881308951433077234439450012273184065243477660194327810390899895862330945231337169157489830408988572655370437486010901633478865247719959333769324236198374819977013229128982174722599136549443785257792606211255835903205323922029132833977765091883719407193193667710667431018186443106750846309065903106449053069755376032661244098312113990291069401523358177391715741135384293996711269166015853657890691009569321112298650541195191198252730718561921449094772929355954617002581114643971408855991329880080124075143724899154571738933886836750170675823926802249194386127057388879669944743918662031765756661991717191808728817298560600423596754057661782444905152459651282742349077430712307535142392163150533264130391072452493858222024841910392384572149166370768454739906745557531682334445280699266849507673753116881150825793457555616549303613577728072400585247313394229638294104657982129779674133539372636460798161236625659418502859368147115366093698397455199522565893450856005898994052401369623076727309217380813216479150929868080615623258271623250016063322693032518279203448453172778410676337987834080714655207249368583447309372379813051049336582946982084696520384656493970656156723944523937838934658690591954320360504582828528978539029216409520700726129142502814483560294068887931199806985082106717354486600015447909650754184392854276950791300243207113281257764274527189449060117420476456872744663014131104724192615537765873137807625438836111816932712180345614754175116058613209833207001956741903192846480556404718763636024447921998063844385234249107355508391897410147497744642483568952311613985412068372372511471725502246004222174841621962946668029397358633802063985573595052264263632161723558128311615343568899163564100449831109879879598012861275847950142619713845561865618836152580621980421952925048095580878955196271507673738007598620413220585940340410671174872468572009331235487184186770958238205472747708329331792118475066891936239300151867828727682608822414166305100830773726217260867917199991236823439817270046942834940091872071029113445312105383257485115171344418548440690268747032389795895128097382979334498376595505040103870054763335646048876819685183797736787145265495668703178287540493999678623228759704601006942558187206406373863715471291021602210518212807323660652022070727407616700344842014850659636167871922102469275309601413947549411765693689652698959632122769273812681929927511310395747815442376964417833441243792075777280531990618510125074029593896950501745464359369590366725310614839919369897275905058678231177564733470967630275364284216752884331056415812166852055786459970219483344593939395388415378196441666934582186244380170111224430580574287292096330067757829033790058432876343420738981576930782197238497757640044123913670114973885915913015523868155633863528294580448501926659271971010750206669002382415101389234003358585066772993683845490879450111786669811767354949381397894093759361347279885945410378207469526218472208995562135040249822907029898069054475797005069703064882461391352716456958240762322679647387084512588167718837316605585466277232380740844621245735545973559672905842707272061237408790530202716767275506083905724594721957725782729268380937627841868921704030063784179902781839565490153091358452444116032149907409213835602525433233708733071106033513840283148187912789467545032263207433291072721731547987309418335590887253593285514994170397979980566731395384223078689867296005502451506238660857651217791844085678710193279595171632960647211479775314458434831622944504392036928015109325146601295707266914398449839560189923925767345763241175643241350040770896127921974235015149052504052080877627788596900311118343198029061883724966040273367952515184235914728880850698365634810144444511055998744145111629987621398400114427233539630552680368505606912929713422658641824101311168970794759737178655145897565294687927551233523855004322731783405055215185448184239734481330014403069263078322679739393441561994093954531574919016199180781635826585630587242466221723452927034798676678025157808971866113342483494024874420147555997761480481964927010751082084658087800108620605320624328632269176054226165026337004675239214806133653321014675944717940944214367357576162087018086256899991983761513180074689656160293204372943178844173981534936338621622440960973798428838973853178296711871880802603021265889546883827679858091855766587022741823677763223661957816133348322436516464097202057134667948597506005815336902690306889030343406461225960039721529586616890390633159159445074200981751499278326447310715446031340922854498859890095678658100746425408747797939848252339009865800541287455833482349081960311943186637474621830320009205731488583843255441013819286859384456790160116606033933871053971275228093455843269971343495527025451540726899985778696155093227316869365965379487357833317711631574514473884313788129898300746917821260104589351117120554288130827002238054433411426524254221839330192550643372588991156667966327369834131528751972189630331249200796476311929514557218516154644678759686719162213125310377324861201951133310072111882655534134914759319210754443689036169873841497729392878651862185074843267253757293467478894726009484882266374536305378668893361874467083018472697103317164242230787887498644375267014700232122347727323494028871651006272994788457947730765231110492102164251981679455280708052908725871087036790568662578267534981289488903967547401810032976478178969314774388221102934248270439443743040724517518745899151195532134631041861954432539256604773245391171976470478930245991639020968002897497348858242667239666167751786371582915754423814097054771446882109142094233221659752695045790412137611005730001567324043800527743386477355189775910526147417170708787080766763772913524519431767494634541670185422046660847882377908303091285323967090305796211067877785542235577046258587150726575092033355864149399335488653798448450089877897413116065743618049694643539344723991101641542573557779093406530811934040099095871956909689706128999106501496239330793883489262193636625744685102314382491255703006028645155551793766854035239931670876577447173170818764200967849146304948185730779234919019896728499495038931029191565748548990733961283769222153842214901930985489513656709093573878595208731303742446931243788448972945965259862678110161489973159661158497516617256883287442746339817065655540778994393522274579059034396380662011262348403343823541218043168985096888767882124939369705719622878425271690453126854819595438967372298060855484272895345322644959126744874193218102565837170466627375986319013407927607429732582685353332893662324042102054202769223604894668856302602590599996232815834444873206408954807613655793401892132867815337805575323115801593927243952327789923996544011036285767094379176693863299669407578106941040542630068557411519008255839678142732297584495541822743990313018570764135720869482660619887619331392269470078983520610930989233372333239118343791034875857813788077360808975027809565420704909930230399921690745523161543143723237446236425573970669709373122683961411128047170406919750489115359898003486243724502299390472273100564180716385718782119741733597304346923398098012956267221895008576533815467966746842492221855059920975868742282549179451485241190165476588827292639751467492430659401076127881384590277919258412336356133990527787240247390910079630231492680255219088814703449896667448707743948569712812299491591369150402096759136537463131140957918685596772459913474458456435331873980671486136705446894227612337916354805721923588007536271375113906512249615997203283822557647766186974559611395538973929132637408232659118508919402202312871913361853009774812466190777303689561988611565574618648615017406091208100097911811259659847486307744404328309433164501555710529129722468650984774129765642866773345833718584689459914817400075617297766657588784674230242728481511308674255981792382798831283744337630216589451977017732066450916005210212221046261120102655996927121254233946893254160193707855266778948648420998724728383351092029951746568776119722008181634851276855681523638908661967154657230205829412778477114524444619319858346348616394468966492920535301088993319000906408046929117228793064287924741385119865894095655865798340439252323277692201200408503993498872590293234216885879159357628588643765031625614629728981509708637785360799802831508021965110265956416051414631118356372853555085531495539322854173873354213515106612933217215967838440801661718304460007181378899585046453540886938059178821982794888006999391902296045473131250490603941815159130758109629697522681795387141369849980679331271829999270438006853388198872442373197185164299342259714727161420192681056976514462518294544988322990397765988935916786395350038727103826360006714224276841821327009555344952222322131178028751105883787178866893159002905166399187355442699763958788322215012862966180483854361051321569923578803067019455997293211071684688908733296266389001149584031346166874588326177834441776977444911120011210577272617372261963301071874136961986358599066014930120168689023724379636370443766619878990101089324915675957766531691796201815134202416248139632142282981244357799305743483058637751526328640384247903831034010929211274326095736446397896774118021116422159655171532239606918962277684127775476916796393274013561534449769342951147834587946380579450217813424766857467909935412967024079264709489536817846409500995188474396865805396203074740167430873345950478704627328004014956790736634131790816752586112885646538627948611266471525516246268205418859730137347946719446092052933492640824129065793262720964939751382183551270309921657233796871037596974042063370564046749230656100170172703085090164345265515947646384848232725479706171299789201338452478677083702394595059042692254634400195917815125813732795396879688186927059396959190917326817687147516354698990466347827601270633189406512299726639058663870459536097060577660188953662816603071901233674474919601669879480918252708602090170685290562345599249371382093124077834556796095985246718488055705406956648225224899745208172643852400335880205721914210426104475407226117721264223241111817761369295173914217392965868968272249416307480234760641222303976039463422038124551432906635192199187685676789338219849387771033490366722690837837553563805668159616623863003305283107015460917600140295398662106292883038543014830457542155187512099311905392279530853253686417057588579447724075010004373997826475059445980287988514323704538047261446103879718392924698385382375812617631132342817617979657650639041426963122055504464221918872327674544479637146927454790711203441976994298773462619879938476453638023889162576062039879566748311220704230832640503517193863413849207292995344632829620501495875269409737906976206578510047325062741066709101385268674178896364218981319997438696330460173064469098861876874002192280244242521944160916023830801205509725837582073699660243114159843735505665920383338926090976300293937682326743503795835696395745822639930085486210235051731627984262546066250707558910456044817336903076567658476824022539676883804936352044968189015862845182406826248991657087550529200002718258237061657289562998637894443609682051199788269052654139652071173187469661910824242831559927874692571371695909357722850425258131288033227218956434470252996399466780667343850629063046957661163609312700250594891149809628376589154623481056377680170309957993757452435695545503680672247247935586834285119054715322680439601945463406783159482817924385167008356812102863077119736435828093909898036601050897276990802133737775938552074241951883965824376479961286475746335615565432528328341316608405969409300917616995799876099940066633305632514501430532533624240733257449356904960098648384560229747028528562296345416946573144106200780022744570392763686852360015135865414800052740866394311453447805650314064611724205210838116524726048043938891318779005497483542185291937103823955269508329856106203724170455838073606050829857069607274473547893009303936655981868861341784802764173534264242777242380295528140300795480961451301436146739737929127956846228033544543038510874673166109056614098999559493794112576344515085999671457481664689512705660819860596782270339304482225828805235528759606533513742345385442045614301869895253012574549423116298571296731024901505772022471668464718801688368947944087093469345542660705909292214111200607140549369707133118898547813349216968899730981019619028874270947515585235897450662181913827139799268090100892924952960371029707337273947912046515426339337061209579580641393216227816641456293168753383856857871110704205244674607492821466124122873702527936819904434307051130531184044437099970797618952510932686713911214303272722750485040399772285207718707876604298504126782913681252443016277452645447955783505438768542118123691982507935935395689491662646112514201718908983004612029337068339085252033797242058408762695435396176848255176970130668317910457263515932272301741112902140359573451019094528314778649139934078628924672670177171248947149399720876175891590766836874347571592938646274918750670237307226418660701861434720048955726354762616421075907052221320498253867655560434972711060391023994997940294600421322649671967177606749005215425777069755587756624454747908736242443621221472073889503012412213580364002637592734018154910880456944453557026742942821032300663044742268136708266610186814179996749715076328655479141335020514829737741567703733176112563686197510119462161652307760361301730223316679650730403222404031941418687098805510764977018584085268402710872421281761632360725330526748872187745821689772966112346605028792055731533107024074602577354422560258388287832124521057784168668694467233357699649827724822442221860495624661449138194320932677258024725417528797871354749727366308880966480784824372664860652520207801323115197410960946256845849841332756892484516788952916667044579188418738268214903795202821173525597645316991764358508425147961292825219519189380604232002122364840883948526796497232944596359161395173756701492069053411594576459971388634437259016821146512337007431575679226565064104857768843926445914107027647711649326390130021276561741088635011091082249147062600293182027006009693507728989896762592769940001757724429237702913679409563114192615063232337244651329286515436795860580739710601392840770956095299754486662658461992693789131692463987983660334485167381154442508607948591598858526902813297652383186121634242785204875406776940984819877179490544384679627144766314135421010301087611208238896294938588887904913620271379022795292955541437273306307408481143165767473533998006367415319035717389043338532670879360969337117824843672304839405141492812742947326493101378621709137828328339821059400811682713237494098244385265503201205971317016674485775603732137795364127547304513360508151621216241228454964988286348944305619932838053907243757309546619706851806817394823751455609294219103383564399888667750672828648614184061838757205022761581984693162262531007669024552735644232921400579335954900202412527541415469720124705721719733592358126937559047330074570316691793621939924787602896578572201928255031575383836560817750991178540618440308028101340851588743015630302292758775526908288651785855234263490333521317912629608364816146094527729392263782561678001587715524776750546577310944544071198081343978629969512724761055578001027097849454543942832822376313048906110402262146482755235259390134935325811970241832152431388516390657152349748127323777299817069854766040542490358710876125492453968723986164211369841902502485662886929930744666804604402269230059373955502665649266135186461461492108669875328893803369256887468442350280617614325064024294346614189153780585585180972479714981431928482474979903457431186828913722505376416294227444370662608532673151772377786915431496823515993996715548942633838220493322748141252145065339144186871203180898668380143053588724279736249356557054262227468568505232041168055785693319692443534658797213215666365038236717220189917137868500449893654573286622588732688140881835086790736619874129287401200861517224342362269248073171924976367757859092193651634961471790921602611798824700480823488719182562987585019443266102845524631213451259287178434108353670936706452522280967339442029675013800334611772245229293280347202268955417603380264448036818827282737445275524835564412067976769612640478272336979863210157225595816394126190877723256196445381407315089325038580566528320887956236049102233770232419389450072702342312412953726479275479819613887853992800813040843779955221225633952046938598175181104856028560953769281658670267005881940303480656442085386760565964208216935056221816652550120997670429518286644111633543008518116409401627365664478567594506623453303061033290657716195238315003193184936404742781808578767743011347865455553931138080693857777262730825754430186287669995283085136198087524343323482148006702858230395151612088415855033325725148746519955821071593503641436560744804831501938488629777545545908852746511160040751964826454758081941488212154317514659126732625985094992937030585160077653121049374699238366173028227173994674626478179809997583399431508405098687140102267985806708508534685905081637240230820701979299057073525435613219914314104924600444800645014746653042703204041323473068658684406850310277161211899898409164060734241310610585504901232140354643163372781480441037669608949670225282981984106933752961834608613948728569875804281838777644709927010362688326082558702991160636159355188954098821427793433795109624197241885692231258059524150359817593685052800317522701659798273514788901077634861036147894853774047861899274466475699322423217425776213985593122476498029407328113115154898703994606235716223977981587260418467649634262914656821334274911919598695447911775744917390532691797026716184011288352770343735006823097336454031273566442354468717952281045778044725159023628149049182219203929821400042480412522958059251633014481787200727389501724936837254870606027099659692074009453194803943651993656650763501830096713113970251677471331659108249758484396688065561460428142014963028355549739412399191773315671660968030007257628250799848321625770105438793213182847869119831632925654679400845428690279227472282030371530172353332908360962785915579124285639745324216705626624549375198256634487758010694765644432353281810105195118561034657433463106602342164987094244196947686937356067006177575863803298890651586092938650887533901299616479798996906603579292319651620398295703014550016886727078358117324598465347195902094981858604803317176776766185007444417489172333794548470107938349758898583257295432896110498840929391587124858233404639892682655315335564859740290992247191320707221992787451713931284898900168531179609136030040547215760279504089352213362431807781992004798978372289382919401939575611243769751006299467078253727801627420203854183812565159437847196166278168657767841245261265377743396686262190122396178943522690960448243248777115896612097647754487552466162177486287984106519690696064479829732447459018402266782638701353590051375183763664069852582698958206890686043006917759596407526755346500037405145872167718939818470026796008179417208769690468586585423671927734618605570083936165883932767255181341296132212107211260692582188824438411862972777953529480697282095231394900973737216036285263055428796565230226482363152063330995427735773524446826356878889422474369020828815828294420163853522311547450723380169435710846973015180813113467864491423977204824097387655531296160857216371000611697071404501511708565336566097909552242390267946690562529051920602811553911603663728096272747487513508224605761678332387356026379818578435548115864993355475796312000143128171035122710429123537330715796820297415746920775530634006747393365386902882853019778339713317229173231692032149215095328740250265735967284128565318140574414216647320871305468971670790491431174540681677962024816619436822000342836528415618970916916060040263563291937888627012453977811175481246486484900566983846236885704635264402043995548280056531492422780421705211981245062209647088069540422837097183604999341154123726986165511507960108323779913642152432113431545711748650049551343784121328069496495329419398329139610149547144309479141974591346262035898936316722244582637995785505564758694263783125037601441182063433257465683379270381154848531169030510770445995548834799545942247630849017118306145749239611876335073378511358248603697490004128511080251842310354809637662808528060957729283630862486591392249542235031922665211457440204561698992077668264653625263335446335518397467588400265959444362820151495945990312643486414169144220239870146236807940684250707529516814648073299673824515038534199304288402909468150119674486084655097785987175593708141008720121529978360788254912954957346727838727081374374292281210312043297380241231507036423614076102444344726652846609893932009871813203383257225484600291014187190223269317594098040450099008224415673541948131074266056957689172535104333121011012251026366664936127806865861118406748704311381100059152343348070042250616173240976607190630263361376040129868286264826463296944698137801334066013286230771288921510965526896429497357092271193784303249694604883280323600507920160138219593147473602685930029900355729142253955163653765715856207117071872732548493895474413736478096507114103985900294969350261913975586523607364299138928653317907557928343482004523266985129766317615949040551276151245485139447241721291821525639513311711358965791049496376154718546390271549650813325828062822608367980091050082246032216864086538590176847905236010241645874960559036540773005853348758513074667892106524255732343952719521804481064729081261648979732206100041669971744578369651737531150835000162230082156605955245734042703493168060638683686802522724105650379693118520382372559371424662457090440593372817736901182609079826752949736316584053498292789646225559868710087929917233346397153863971034335306309260254012715975648245305223346281213767678160767268073416291562991398249455418776149525649383523225919076306418166856573422936298780676647067476074124170492977144075227321792698376289094144889128442814943506062855521796249800413771265048758100490254655989582906861584348708902686460802816976693378806918057580664624718969908764006054674688665525078585087852274944859019742840252923834716153832462946433990854916727395632257218967837619989641436411500144359803124108546864007863219132713450049002678059583058282132978186686916600891052642431495953730745362784381270441567142349322020719346086972210426749837282869494376376417263776431801220722133928926299087902690600762409904302821757478641281117122965924423130976527499950406749784671259751861867064385974133645510598959990417206831878550432938033588543588521219938389573755172980808354231458513661170399392351393652068744929527883102863573319115098403676456709024950810629322108091017077162983982814539919994166641833025496806725610280966655658462013789158184619515416392104912167989543494357835060058905220939924622245324129094593859450545170481127856532483861087604589842870588394568662482925618060486504607627660105981021200534935341501101437505422967794255242163846237923706897726282465434548106683411600373898721125877593434133026903646129096874471073115803810222830241651045638562401398838065213629145381378881606501593975474186329473678595658903114168953122719242108719326080652009192782361534659813907890041568615523335664539867063419949667046589973267304923030899026618059713651541031716213124401371596036674491604840934862071581927581349021909246359070134558605585817031086320914944423357216071949698208192315714240973163524599443367972533117569479450481663257782304769296427761292846662699891690630449747768317141358952309830729802940043919196502912080149568396693217818488986816980452216141508439594474825197477793377279221019248874804740455961671208837170063442011572346056559189902194345365685947611262727919440640059254074802462879421177392624465913813717181138924499377006087516086770257050845088389774846405076052037208409346737236201777155025676798091333563070282116874900619716019122383465445164748898063985384938062640351335889798688891274479433125555483419631973781665385452590876912135616253935411502441024072629176424271854923469516440406457058790794617866179978931430753726579200333168486721106343526052807111848067194689139583828518339526341749861365884647808059838995924590913047063654460516992057509709380274407876285361980450458288662586492980770665871327196364945815971399787390958150359363018091246776351582217617509210545082602260087552374781411629053144050524544129391114655258535666992775932006804462511981548524072138138660391834347010750298651698297745623114766336939830888248175291479297113321854200329776293494914066371857263639560728619390050753513983938310332649791135936623692329485659281766774641985712479070102682589699880772700815654554070858676020010388882909825832984457346286697177154590017015871720460865855301522640263510085043908296954288596601949202426306192688332853802861703451351241555536729704436516904148815941043709958502982406430287943425905144299240384056793087824025663583809296765823763812043774558574473845330785896393837937573026731694298327348002294707948153923419155212192380383142635853219177827289742304901483619229030550224909965061760111878462443470990764052110253669248513361254776250000281642839136505105154021828920422884308116838681335983480457474655532176061625662338040639161585637403559665707961814895237369206496610804577623105673447193407261353913930309775403656545252266875582652779062256850212278832149716568012852499671027936020902049389632042837714552733978006785772227288597015515444971489756656155534803612804452837747496526385622296964974521983039272468014615862581324384099880302675987726697041688940673950386703117374435822714567044126907578132109681118803453069837145721802705947928654424940362860457092782054003124890538955507504841857843764304638295711768490209002868673523585247492257509926015298845965988882525479339472345365042081192169503080701143635187598928318490274400199151879810303267623587019011680279426441899938721654378326918709507985770881136962709790938192511780036787198990716533266031736073800257702559093948616611629635934097113089295944003581660293156433021786976929842990361126861347915772619314562000154747049175672090291669155489227827871517813958962535830111963247402307267457136161406371341595778212361565564103240222758060516319065527836604759753497250385374725001208518157377251421491873259627706506599599119177456023733304855848428081326446872231463650051123283809200764906365472732802022654498649333633551740858034578483474809831312042807358199824896535706044026773133407013348641518948677861409906986965611207006316080439107720087928116482336612028851661012433424512542556078220896311021873121616308393810546114114093898349385216631731280110193195066270330102461950949723222087336049923390826288881966294776796857522167785070027593612686380982532741263496544370354476835373254682806304386890906400023735631730391435723113388894273389849568865192218005932471797612170122476186792652037236331504444800806420921957448393443707076189567885884909563194646988681344072299330116115998319426219219025604153882484574630861584847454747047036792120107413720001195041313612051105681861341014265846485945857362103057432101170660841191769417240716024314855515418719658985035602401396551768358765982339612426709950609993718446982673994727894117626046520713967439113161054668119913249799018968837279483394937942066820069967755091194583950258202834228399679050708730958875862103157414285279874010047752821107312645368552267917687936320401899581721789231060494628102474007167493961731959731716166518807583793366599239224464582498125729683100029814282481488031099588595878912049735732711270658923628425930768136975787364933632249736529375049610436113656418426869714337025551264208012031811477440328040149842612897526803554458538394225442056031062667229628452961315655074838874312636522136333083479594694237796116779601871557546908659413667813726398053300137893839623289294509444422973105034137561505665847684737740485314875447863789096948573893146273879699774339144925959894159803750164107546366189901834755597739195456518037235219149957080673302888968664289516003313157865820990183197833037082840228996153452697620470481709030759741819212011193368004891053099975338170175749041310938472246919761793505419814149868071889867798176368306701510755034497839050371820049393708325856857094644159697445948655576145102205976603127254863599780575271889288792873040590361285022232016768001943826577494924007807397091990096740297285694655627834205894538300088420442040207926438404682614065851809956045069442045224786435771259934144037635283592413763671400278189122279845923462575314346006981634883803640971659006843013514998314340844993590972007752984944613572578115084723483900686735425811349949871634997531957696197535090502586133140962535456708425338482558680792064485933557399877457705205214573603527407334009238359453964006613239017284944630426581384346546431499975540216159080911510092325077588538580507580200034034354392111441298516326379501509436136509714903033771026573908923846956206439706095116318014915581856878839771745559443936263960637644038609570995218798121643655517351598459540700559291764438335306453914153053607059178558764910882760797292819511449009867041490089111577426845541594146327921157207934233813138639414128615786128320494536379283631745113466283598811589950655569691409091006892638212852435673260613007742108797542714133543156769400529379280408635289660140371551939614991172051035421837519668611779382345724407781409573143798806692166040635792174090915858060036047846121387139328012981914881520536678904443557335111596706235527738992429362699922683352662841795494670852988390457566942136206698662615141398419463192714805257943945050278487940701375447100534885582529362327376154088875341393000381850333707891155659536397782171595670054066742333393627357822124366369728118505060970176874118861956274900394358586610862855748352549252167526836749537334390854194851520737595711857609956043480357394846274029777438993324810274233356179719523805536791054019437266352516225949282458552627168315315475627707761040415043229208029401000620904229365872350173592268773012162410282803922610334951325093091893809800647147598013633107293476287681255424910675223063547042284899774530632567826940188591589960755633685931249886403731467222040247897303966302240384553993917359889137700585772703458061190632674071515427606823546556991607310041853859296036515390443746006910934300656200217058208884528231523570529614008666398849109421433696659726701801048364279229588657512980420792763478357117385346343730302731593401845155914395468715246247326883908887858665959383293509592603030253895274397687957983520172000187560746287785042513047672597968640962286113655611855148433599172077671757377369361325529028033533938708253136141635634512824488810757033206826580716322615207881747075379156645560429214195617635254538780732897786252602486654429924415459472237991764877404431745969525811889124695676274475172568324496112835482179386489858995489098059244727665408712514212263237032945141328561602280184508690316826837409024215268155986229701327810835508021658290063576248030337202395752079053679272273164301448189464792000229096771667227575891218130757217517887348941083635994506502801154972417668117890208746696607074812894959479329468175123747517561120526628386076247869932189928699918831814355232752413250356984451157793993510927339959742939678380062970837704370144094509310849330222051162726936742085337525029484079626235842587713708537051759758510301479096898317678953522938375087711758615207156122498429869286387639746043129695166785195893683562184389215461611377000320441731950989612091273548290463486620022629381207021100867787477109247383049757965229723773555294094487710190293360891821048190314684289034358594528814961768569752867658246580691177066079229041190641723176948003474113480688035162650721163147833060978201397576876305293629031775075928360061617923272351220196075385574408940239055984306120764657933360056344721708729989683215559696212920614333666561921156894471145356774332640402032417006387780801766581588417620838045879172494615839375779014616475418760616534780350657814910067954467633230119655752530570957426066920358939194378890022397765516899448800477712918019815585582741766632212869441102529366743536930739376822379168789984280345515859921132147748633809953287272218573145493887138103441906108404394439296362428469597335902420644393306472877414196088778036751041558612883409756081350609487987565935273513205507039076353734158252900742651419087569198564436161118552365224395269939532538526256095713141536913398390987678169342459072905971951172486049913743009923811932208301041754630125947932542624687276163521077542457089503032344461157467740022578537412011496196125501608787748624262286948783581563970622157779512501327219017351500977697957167515456994879997899319281718810758959360746686573875687921673527311865249862538955535004955666854358832172643864317137076208041807316670368622186021782880478155820833532907400396846575096739258838341231318253607971061161022368213357147967135934420898032278268697986709282545349286233163551336049797071939640200121889171151355222740962456220731960191438498565535510553075222330464240800318182102089221774571934157511802626921550637716959224763091302829507076574290871875471948655833051970781949470454515817021909941838254203386852065100170381910888293261949255698093149229905188569530023519873747316047020335344732908817296592913700312000379872146911980102122796152143893854113671168888404634826279360683517309030288848426033542351026188524994351678420586482556722737956306967358963343625052989243348847564921003176414207187689427986036149305780059806861353142677400632527585136156848227838608282175452323110880933943180128855085957743226346750567674320899363855267021025007512831838581257059168530237815298624666185535421228506907482845102165548436385146096112642340862035556942768391647008675686548797515215733001743937461303955520511161668996866285954323966437598855104838684874899438317054789503453223450382641683400576671698547365690183815080387579845552414326399801194783121366626047476569498259531274183086144616391464840937739030007085770219173165171952495491370061638404530772036665616705759109272611929463925695864005951441247710974959328481168105725082764811639849825721515972549562460584424072340782082399724154823965164065704690184520347628306674434156560580884682799613653426957548654441470386715095183287539251772855013111774105958794608820129066971582792985547452206927839029040347150568311106698515089012147344837314158573364834629924923006088282317229824857532754829124461309928793314889570389044316880182194890179151006215275466809257365610827332900620194599193837447814240919486670704650241212081702063757381583080515259171215056463272923132475953731974324594378576882032531362671819052987984837827880815199826370170553288876826974389696466986489721848182193725503953485534169877245359186029033407529157550873397329410225445803021906977110383222025100555154093508045072382964293917387937759126802569500440807515130485524382067487426318450236688607262581785256319094411474544207329211083868652528191558583718421761998499088700989200383300670746000490769251820375715803681175769096698595372449891745812079683021065081036027475422060598945834940056698148909763714887279109348512578184973780021312800049334410373005374398999352187772921219820555449338159007294284934248202144373922675915718899071202527094365348843136142429935570670413328351430687422941042666433996929570372528295979421139495367700318089175289530488606133135191974196646233574151979116871204000180032566079844074227379351401824740054057592561491322934745923292082867381334170698189875946180067027059968679341254251966259308165041198764834826817962084126797264530104248600169074867710017617057314650793190546112084129430799233602785250662692642658762081629079310787032321311585352050829689398800422609297652105932388446128973620765310603913138450196071423637959837128048974388161705066150864484729439180061818281224342276452198701495431223341771189692914982123069708003532146938509983619846024601023154137481044070597756074045320625849743770900813367063174694899127589679869084627389577097835797782141823892343963666361323958588720319538256754791200380134370941443597228571171849826354591944419816352960988361908276901338912021590792178359219650771197628431851922114030942313469876203319139001872237530388557232419464606497467687372379375908316663518949607879029277225066942510338125085560578144927545746497997915708850883892897231457012787830740528889200540545274093529096793449951692908972390935691557507799263746636871193715259014422236710052260931355939792519499992692540589277819461993623987567259736771437195012200389946098994793358321624308952195040855787078529867043352778156747775380768767030454581301694325468050215508547476722408592303811762477221861988523356012121253909113281812973883797894792915825088471682620409466855672161226053352512269236934690421086991941079999907489359940414043446585159769140877697177506679811476813768668857013341221794395730777402601988847477533810205666010961633809711631956856076345315548888172702125275545302698093133917932544735177527861304457635432213677003904780883271726973133161936212807429644897368557676067517151983631386175851175337141132179613497152177764476476371712059620434614274544139212968494166885108896520686271409730777196638949119835960815013073424475310100206954776366879273986051431733599886886817613268463819986036868376087790404097220313977273425250481996204636999001942084431075367568005875652467107748447391630030923768328083669480415045294217354256450073442685797133984256079168030966570410575936943889003491135668439670785594938683449960763093383465109030110197813630973942689441611595240589531727557984380016950647078323842485602289894916397347079664607146044509009840066398824959804096588943021539010672992940470604561127046843441177677669800853726395376788629784035100036284287656093875927666996212498673997520162843551814825724347224709005501936820716121793380671926145678690288030223620057814016961253521512011721774628332532102138917197767642164553833012615933762869451817558576695226638164335251137262616165073841049625095648795423008278584155427905990551723286926849536766395775182460477457018959728445783283967864874355641593240943778884359075025109005978801411307922533938525258418143902580942055141497738297052322054312723844108871132558929837059705416782035644081495205161317741997874514415923166041185025709475252107484902997261651173972062981606247213075502879848573542762987148828870088971446052966290802847406015754808055878272524700287336396834223647542310745569224094707008020272760095082388895560028864940846987789314901554628708977810604808577010043509534796866802404020643579680520429233505873661653320784789218795991600973041706332729951900670787991654481846731642557688005122723263274679448949894647175621596861671087498806157702643610493025328428165001355628298173170463033107755063079032146679444033870504945770225179470171481333665192319387993672088036963207541260444940455709372977881267093490969612145186945721832367507289239025639205246555352062856475599600610983351291043358978312696842168892155241940801199382067752582418308795125867173652392335772617629675015694330797742019299960371653287783951609592732299038790693662600068428264723699676965732666267755494611172889263627791491349758759018344319810284576911518410292139222588308900425680623336566978908603580012976309225409427391850306050778293706763654998487481198943778488531484060450482592654836984254673641174468740612545292650810439740551987194263574251404513566981974204605555459640109061235071556079284309462427823284055589065830409805030590596538406732535978468552442376401679768721290217644762018417794822833989329034911184408750544970481987713066738036664486987799101426174982079354164866043013713366289307438630956961617704595997366626491519530247789031361274866851862972501449055184777250840620432535193672148929593161688766337785230756696510154516704757394645453820959001037204755840369737716567581023407383611453373756684025468618707654337436482837538595052739131906530368093343838238509720972936157092991727158185991372354347238735806659453392188490605904188893385450197474851148359171522640201432816392957262390481931500809628886410295727783764934617658487066455323930649551834824169865021132442766292672772505908333326029874824873596717984469846334976740707248384950701335355097853467363948228463843229953910905599882217603441483586721652326303143138047410240234630004953998898215987048049201695382931652416411452417858699822222409273231121497796310309251084501427077316670857893024970940632464436132714175946194685917721778136369168744049333703063888185916542667368981742014499907141883717132783818436140281114494026598731216030082892099713243511006312547786017097870794123798109802730567929283684401790420792024694903282173531927400160755944959136019453144573236067307268258240722673971397068509490875723162661551053834489506117651056276267182962787772923898737044678190616235808914525909348723673173342101745780059108761914363993044364556020489219578570359214990759989884766780183327632323833111301422155079442823151411103485715957893383543601852253918757153121644801588531800414864136338838013900648260355574407702090832586499178886327491105616267260775076839206278302865279610562829035797593104225717328943593164376447257407402008428829380388887610222138399535553563914600042213460438455252810511754566139663027241148847210558147965263567584258425113593422987130633125889360368121553207745214633066100995064266196274910744535808309043954396550295359219278217298151627990917996841731104286391835708614354231946093161669959776407324632711933781178436875153986565299052986089362239758518862660522380733974124262704102182484440101618818562786340146502294609088826210129522115486102619843007987391667190638951613367125666214746460470722498202879720227266138680360882591878847851443110700191634385576050442327282258422702622149909704576826983468462841085947565008323306004539905836273916028139270137402776223230653562137442539674062461712127446207417570450034787398835270850375223030769938497314593202570986952460251572036127392611385531885379046197472771208143354223319424899653861398921353921726085925773811135625779933202759590080732723290698522573138351231300943540107963976066811953551340219067034145626381630731261481770597437062003725421037128897253297337215523714961782398917258126539558689382994310350767168940098514779015264454290789032636962639442794595912961870622294862801697225929020284109735883511854227181251003012199226978335679643381573637085296505452490166072539942618250212096149140275321756730755933167872805677479683936407791835600644660781601129590273642540462861358643378648930058894548526440455204707764737681745659306518824466083225376256133033461178848448867384504744987998730260604602811427881278376490702288849778630895785950853228159509079062364918980742282021142127514502414127454248843899375600765976711884207293282935503615556180245067087361873886239845644511817767202422631332238965142743259066625904393992095615990750855435321884130605990297973871399986557710290394814831055408254314793726120820640521429144836965299065866555338507548687360391213707221580384760132242796978138354335330967356898971563361914745589777433389273511689382493520143650478161571813917496648467691410273891954291843361692223871648284485189426412978332113639343780263398856783544718684494932111996053822288094125200637861380807072482256692721902323952548924425889254627033780696765672506348459466767804898903415999222881247362427086465407612555153969678171804169655400671516932338721745925694592788056566755236759093549944138368377950723185102455973798340611320620839942861904784279711231061311362068308086587327796550890504495814532070660566204264785083430717977682760163717189954317634914730924904975261816316949235252349730206153755080553613243320850743919145675618975951352039391041051868705655074015224825031726699654745034518812212547339137370869760848755058189533883621635941066703259227749013087048021702462987763071813005795853055333680723626484432692037125169384764355553965349577684533474483996272756855305029566255190827311723432249765312664923222501483233485214843862622196178668704518233714014409048740871548559968286996003620329404859605150406871147651098573435230893486168318070856781533625291141869710735339626670152697548963129311016392776796912573338806287435789227289725402957005205165790347208506862925695290139716911169417037762670931085849018613850467679297781169109699043158280328312355873222084902408508177402966510759411702282437277933148336106073418525686684422804287399160719167917036119900684464475069948237665277326723585526697555729590319612582767693976802200273386982388796533934162857449400390676581808344479507597886792475705107028451305340684885455873698579746512940921796193317676683323069833720403974418214565930521894800468433917242386177966469838493926997015244934632190649633097362952015873514991567337206174383414252995336954824477792724742761499848451576370567087788848769062939580971680576630900741342141646351744641191553793310981620278968355623776226055777365788674885816653372717698526321191693693623693851487658557994081978168594326845558304864372869117937023867628849365187596327504586318982026013598369455088326062886331861210623845685100453226656796196623568988888941175524705882199315789655943846138336328735074115628179610922979589068100413174543113957056840282784006057991667887249514803019392499182854692213580808122704121419667128449455192871231935024779461494859538242335275581073248457096289100827826025506069454251194976561790811646999646592959866528489813690041234884807882695042989693606896702754213165241195005244270992188781540546076587998037124775317214698690666423288164434593123071285693204324269567983574849894258480696290594019717548687202464201178608990378855893368912251268142602705130393812910208981425358409801967668532803329512614658514661978966358495854414384572889434347416040851514392598806658279464598540006831917147934669010623727291624597832962875088902078807834875111378214735041034901420700052837503773446357666558101301646881389247063349092239750247767274356130016837953149978985987767661036039445351391159411160874283433681511805322154702782402203646859226919548574195764145407243279464367664254368913647098306002903080835996742362221316383556525767220431907962693115221115199936765469516216587715827199020140558426476235264437037075623905234974014597898030351013215764942695132716642908697021278509481112023161079145645250396089426972117492695884135412356821686257237493629148397586485729354664338237208032751580102818133193312755775957385459537182843423006202248024525799744026716962765201634608987552020425350291871435779073138177121584603637589056417281909794789375280414159247489962773991354932829261187942461231514351506663339641565964323361267159464759372086511510722673426857437734912102132901723756390123307899157552793246950258829957835254244345849339443988498989384732910601249638922188634862702297725789976407314901790751335225464373684607767243236932555416095003488419140789064007253883508466177803864364641221118631536920134872209788047376828854374988452897491974517531593225157809049783642138792893285275953130461634940402459687459569838962114818248472625828241824043938629089302882591440087730850627821249743007463522173273701484283308922502011652633742456458690746305797320350727150322494516788140302724229498046788993468684184459565001193634621765790926256935279600218518286920840497749519692260755563150013362538520863418419069461802083193327971514765398511141763385081505696358882798948946208345100185647167166382949868351023341476097991346088143813127218351537732501584282146207195295660384585068192171336265570046357510656213976161136200299245498376527612623886086392936339555899861653863232258263773944755004395296482712494917926131962074379674891133998477090066429584774066876930876586159225284333629305267940002428974448755015706293539872160956465237918532573756776383359153697959259294297047285045689329596267807361761262516984420799331668581747507192675463596614707741442491218615897476253600198784381466367130909802655542937587561441953993631337282003821750384008408004884685046137000490359582557955001697520258731939704193964899501771847427143581282168763634092333501044621572306620423106060514999792724969098680799442531635290880709429956708766553837296423512123497691110213968927860729796149819248314036698010933024164347205852285775220255799888060377890814677905280254076487792431844629723846311848809159072582814072593650236216372133173041587636527032508057067359391794154557004446991369078312120429466293877657922302701433069764847531081725020674255656902680596867426152676771101207536846540804162178217613139934730339473449214124949232717320043039296664754708493431991619990050419104916362248878854150261240322217356070289926503800157520232884865298277191653547623443026274703679042949901678124955129334164356637732089486014018757504044120420555577969339357349673430715410123608484467718704980706171144724115434678527591676664814368367041520547382143865237006342349210833307475588048138795071961437660831974908601095352590572613135425749512803492112321522101436055063996033570303280249322562578623727347979903902050851925696711571904915100251998985250557809948441728713855854110063843037463229338228448718238975617622895805478953448729769235331156774792655042030650185739719313347504929713227648684569930640094059168367773873383563838895501386580067522042583871213726741553847156002235266228937929031328891489182539686735233359535451187858370382404182255746373820174124757264671154201934444249252896501621728719580947422158316087367693325437269027172924442386669346035434178226316346843036845637048206013497550484140052463770439737927372038963800381634879430766455520715934531061179457108788338041579356846963163234685230346903628201366312020511245541663348489292535052355247864521376541927198547707238989801936091532285161962262625840614307481878747225420078684498983826259787485567123233041540319827745903698307979912931479305093891191521779545629066736939135357541269977310977132996437845619986330544675734723915848953398127989894005896623079353197319800889862241530872341920682636470186702349524137255406627515478214344841040873057282434951113669265418194086226465195531470173810620802801747756221671882189330033216645008384022589995221381117145603831482670503456421164436257532320212809900632456685267301311281644534962902139872630991783653514519749253694388116971525420496359350332150065756439350628115640131474962757990575172006493419483638286310795976144394817072137773365604423710303972751643898369706732806758860709415940099884932121542356469992573698905474794716981423693028816628984528623026160454604883727019472440551993352614371808843298868424248473664874719677340643562849286938229273277489247134759276429563903811931096877476574710206077753669815852987056311615483752403778624239182171250824758119695681480674071471897445808480914868813479158189898059746388761400926439422421828837185112407726015795298592919871897391819641528657866321457232149248371774913558925083996767825599265517461315354408289630167234637607449043419151651288884138152401542970891136350611645635470944958806159411467965093692064090463982744155253745348008041892023356532650931796476971288749752347876220774480019468073252943238986839746517603858901091121706083641447664943028229567167118144113353388449862685628099654148265116777350113570957859953823288487474405412552037610879868490794048844128259939531651037947438724913619935627587920856491319387907380812566794469874278887377305909114343858966094009669189434948407428591603575267423472860783843952294784531956690840174099216148205769006914119719018852277959582681437640013661746992010138399760689096656100605836305456264411598960542988172029362952836149201499694532956985798307937171405601445357763058098649992336949441475607515666035686744015090627081055266525072690033826983821237682367765360105847969436146185064562898788150058023401165456826371934235351608339318796738285999052243136387780641210387918651569182956633498110169656767205518947030945059467374481557005748513251770858532420068914557067896825000483794859051790651196454015377399560107182742680005627635365235625659846606021452050377704526412778596654841839843938798398297288905995997570335786209197357118155319977108972843160515625445387268992646065655406031044190882343638236207853707409798525050165455981245751950628941820147860863671266967932826787137586428658545516189764919546443455702254956713264170664458625269236843654577162956747429017066038153628004725587112289495502561964576948170118397602700272669302281550946740591550160818956498756937849717029575103150704064408605139498777204884556542881110836304701101609785723846093552677877902601833965633444791014606547963169505945207930462950967643131501222631762938624488196402495923103016585654628786578004695126600948702589746531511054855453304229204681985218799683380313631033818801747127759796754775378230324350116895860056833262746882831005671191103540259597752663508459706280476124527137026799430297308614741233095061190613681426032652076333322907092766570463625898094556534004181303868660938012083498468821425362120409655632616878702139955796902181175976331890338940707171220639943616046940050426553027270730675810882584307682249155485451570516458544588499623347725027416064452143725307461685128712275559747057551733775194840997978824725401596986905225364181935034512691487446154320165675685494392830681881648011823251334136610699492302003274012518672604200920832341468519102874209413188614918937338511430194706686938788599355414844513378215240225782870390354708364367024703021579888969664473614968635234238390034078593529782908444280763300256077301726181071551461740977911513328298127982806074495599875368153695156560881210466174291003990539821033855237684650153682756849362605875405335738538628434437056014679611917943512470629182326800034593743888425713949158528443065522226385686067931581086930242100711561296903100126367792501845024601132915280061718321998921112196599653772588303319066475733339566881821023491670098380278637037649721140879008348571007087327259083073600355928898448298622270357042797375448017695235870130612900093453300830144862229502477478084676591810482530198539472749945430475613492437183054202228710008702688254363357247367177444289277507375329495491984144684816945917882484601513305996911172325102687167278736190678462520954818214410602151910595958262590464050207880295784614531077574984930390298855864065414609936282336108055711150356075140829023572845687118939550554620474203198678211267596801086045621565828077770861116328221689819657784222842190196107487261010240352605068508320755330850714216762659880876143697997127630256821542131968581800142538950394068232961567544447384565223510756257835752597085220159385653153468494889148580463152477953703803137591329940715937129122943220472997519865263873092741455534026117047145668717384305459379931320164049688653305207688313801632803842840488397551178265451270392851306082885829480377014756626215026864940967192987581080037853538733033866625743798147619938336130439460923806170561501405122398059674150299685287528007666589404769527260261043471094828205475556282991477459475474293112314982609122413510054699289716922530296504540616236553948189845208492363687854673550629551739919282940468420761471940436560047127135973560181157296164134498170119539171287977196046333779574468987694175762137067726727254843646854532320925163490979497023626590726788032384548769259401176589622705377003065035271427727223789872073386665010828985908400495024181688002867780848801426933991057827078540636946785596012600514319686805747554832124325941573028391736406487570203717376192364974809168629705576194307757499312381421584928324908303804340240493999581142638905367405339159501292590856670044930559929920584670466980741596217822728566938169368511856464945174245525291349732214581120916827473661250882377258127872623225515482029155102893195507200556060776070342537578487935719550376081837127347440351072557085650186181646248444339240066644204804561592616837338266166070122475012342118949066345149865289917844865123311933255559319349355950272566117421211716197702793801959802830046329051285526450111762196442129556784200638984043948512255933265262338292596862388584799501233737838037820000598097406994229682631059279203833317045564043057234487200808655107202948949565853679886231161267373049241993550228709310203974184719658866141175434377505444066013751724174247817213236273596871242303909050587782191865424593516960306022891543146523873391974176278579345738713224016036830772250185699065072698739105821346245033338740101251445974440904805383786577191393588496785140126358004294017387166389623325041666147177015032328175695407953848186244537618015966453305230115948569964862023448874756361842627285744744388400514023718757933795048821725196886164235510089142439337966835400665712890252580427126678292371501632196954012143492942185628333340906812354091699184817564278381857504113447574617198475640817140325480176229003253937554674079706445881691890367187023997698921128439698048067955189928920604971906128881957008818401069269407956624184638331850690307252893787644404056129372844812407072087631438289724304748444302160575455282847020654703686713541594618482906545286066236787486988845676356163726507797089007301763270814255801163499093141172496682887374503777317184630351617995857816976894845238845599876394125610068806093884151809312808859649802744106842794334544853172695525755512310872205897909132964512220041504562108579078354881814770376083989477117049251551835634682184869211022243286637191344826853751681065993414271404343791861584422482264813045608280855679952882637317785233460275064499434469961056555591320365019775445631402830304470884711090653657722955885932930469727333629329827195118580177034360104743088874379006751574047092384623080590590447961067835871421394889213055440975504465469232356125586644668994653564898233996575213127953960095304935101498082249092200043000050383925437680963457523186987223015330630032920961991110858805253697810434933171889357126951074726952251292585892616627482627716751758997348824846030634173713630445472292798706817113268014733270499857574115751035612044685579175076397831941341575209875432065357356861176018673638162671618087813673394680170078998197384894001788915080494808096817940304079901544283577347059475897798129344164787751038572584251354702490305924814228833179542190367772406336510278258727501831613370315430976241530701638072019626309199323530830258248007490834671032526902488850408204886566592085405849032004693060002828873681228070045705431263485227485919816140428236280835207449680139632088970786590573554999087950267045822544811894557259762032394271414621611275074897705658352479338492317231990284095378046362030661822620489483666590469232947700271473830365039753701605288019819226098636262283741580509597584307638464000322133687706210587561910670883182881883488932622180865223953534366102103018655119668689394262417546993677714157701846771161709110775673249643569175621133593437864139680642361788598136547459005613136705867224296432055098138803537848615389868996747611044639105705499430444680417286615057036981901170048160858496740175760709826555984470268421313424532561638778830692350633804678588980807935690045317834849657497097080524742126880998172587520447999772370008928869241788885636599689683309194281657660533019682149272933497413708389905778383817364249620100575897581098177045248641687886242711687249553484814540517392399056683747326249742568364958949549339771908353718160674292863974627385619869963809318347139968433739696732349775866837279469857380945042733521963466784698336996110114177876191351879612484346081036909238008176613778456444203289843446066069933060944503233628151537785104326518719689905763838192341494995769122039108497426670507249491361320914569029001585722503904281185629425759560519931168500532693428154391348120032917695874358794187503222205046018604636471401103148552341749645745800056248995546431122774396138463243026439663664844232762523614366142997338067906385619128848095069500625517079524359104154909774243988769683737710894356145260943741989308684006921826061005533813899451564305271753572868448067527347743043873500808291485832729146010272275876797832973212219527272903379654223894984886484684902457559955318934861445676263290817394037345617184965471474906874538910807613456032362130276552756655771788788206118743528836072039478914019664124249033800270920099799775738459312035332158647927774194792983876054197675045581492769838560982493316066502913497459202607582823362185569330972715471231045291793614341841037168801299056910216165395058566695880471313498717577199131556613467776599314536754798340339521606742609906960090726135766648710582929710929983439438635190023684467845729476036380514784062110291069871087244653956395423111238428744971868296959080962376604847707461345637165200845484202152621635366814253047332886158787155512472932870012474090097819334020220930026050261794230925655410500002914301165534617516516528966666348224399349896485368857686635103035948301145182613141519147099078469359443380133641656596232285817802863689857795872229379609074550672233757253928414071670450176259687682782933404818808959852343340674842488975223333689398946136643166622643027098569765312934174737984552077357609835401457066222707962009764331535922095559736625549725917320736398901330178187609233574459912609853313001255181203031677147640615493940744684213680619304559136809759683310630692280085516268187241877337045163767368199026897321847013232288519171176281784848312613507467513404395363020767332722533720487600979590132827754585754484935029799209121131314661204265401209007202442278058881108423006071165049289145598189700867727598822207544956245374926639720403506431003181424388373142019330449981902398686141805239679023749442730210676725547054602797049143981794426907647143579205234805766573122110031552493997385560015197316976004468686372110494983604810037392267593014016159976288967806357115644823230098318104649540141949251181655215611138115679539032322258168668426184131212446190661649278780905780883110123263464951697272001884316082123306773585354388582721996429495992068506704418201193663284841769159815462888839479107598953658065969943043025008698125819043342321427339276791480210124543252255929660030548759359606771186757038910985581648264669436539422383022024579766072147735560849875584817106695766191366198754164137692811940058530104222232355055178599146958102932829746691148229072374706089462115203668954765700468955768645179023538400482637674118546329948229844813886662582755875696752167012079388872733615321975419828860970547249895781289485961621902557121324728766989563990151337288538290932075538702207454451058733723475836662622129030022247027439879414369012240512800151386067742911230177997504855689112100901145159848216877990309820180036949075457990906169372891408349379775163208224012472135936066501758106407841371572226153972571106649147681436974664495555758116859201807475000724560498714732146902733202849563973753497068818577080881613681641050005414778411396537616659218856325156575335733894204549109428631215478355820944004864294945747898211021346223699469293989271045022354300473876645924264273147997891959956883809939612136547944095529184690365944436022417919976360312573632531864104432426719878983809086748969439012896349480658789916095109156994525859746124966652219043352581890532389566595073840674010246313372943837006229928880957455301613484915525850753240215654079168675811498231651093354146050543757363406192358143228150590900913223965815359485768397403895701805468772462615285111282459941500746048464162910126045570804327066830063423721973173942842735313495604300643906568635452355997040855515323056169096581107781420867889561462762477396541172342243508085535955530979061473688720405533994338171739185542589871707611274347302983775479533221351804515453048778564794757532678863368388864582108470506883090255563655293488884404658207727908863942750116006895142044900343897730653497019475429220725288368514371259477696973937651995148375085036486346471201959092804508790292863665256188522799193025183571388534560085642199234778115775757273352768390136535382422376750738704861854480670955800964537509930016289116633106031686797934034759688722109091362316378085429916016826053413914647520544236501705226006899598550534639498158492126283949699222600919844481266825942658026706646977803370255252731446642324283982487743622633337817827791285670938665090792898166735385471321302776136670851119711458876639266845944594530510799513876652408410033653205809267013735286440252312105391061176994246261755579415145032883622029601861068083694499398443898926441156259274839156477067842698216781664016065347667946584617519012702054905486803194650883537776286399000706381504677825684875796311209701119017038994838625012394300722428736873887454756654681261309439648728843914424421478030260164919710581221711847561244322586365540197086683349984580118477153386324753289065631236914260925399264963315255761125431746110839772114835536978356590449613306126450729781679962219554073943044922500768207056181462392185392017268918384676177248633209398640423299921545292643284266983580987890701420060113758601221493185890955075848897077212620113963392903828100379665312865654282806866493853077771444582573135224411869676010512592980922928550327527271694306869558798268093184303801477494510939071189797807765731289505193424045244399197585622457477616847057465813902339196155963933792430603421199131144628331771426673089210292565313590681112806499673709552978726001280792622002928264483702278738534086853649621990820431397877096761006262967499103299058734455542186619305824898105753687434167893834239802077369306731285204624195465127138676770966206442335880872402763857666829670845509490441241758921269973524336652765298180090143861782524100779950091694175441542755089803490785845344953057556871262961518059224478898282984653663080229533869744666197499161346778626744570149167432155499536036256957605113186959461998106665050297299954199970700596820811463306885074495098063683371642031937116244233842074532075968688667019844048321280311000031512756234552509310089561971515964054739669611023636464032814537085373180211046385040247305694969652218191688944485378530413812273593582054989965907429094148009306966229977180541613939736796291703588044982742121833097650667470242437572418276472801291264818266018617447221830404784722442049348840745080767939148661790706719371309795558290673251959099220107507982701077733756965185250264014682733510226825459278389525800519292117440937223782546152865336269299881762171624185948025981170072266657237221892050011991233280273775106254643787677603975489431428886634473815416732631921893693842644592334434314100083719940142602699622320984684597622891034690260570898704453008677227757125284749277055094794324587610410860440369854176038553757338727430932938414740284737459672195765850370252778293514375526433184548294323171813531228112454965790953608789656458157503677698454078398975605876385796507218746750547212861418809556261202512037056531370575902771478886320348116313004668419281275967365048703329281880507774317472617423346743989769600475892431940836489470810997453271946125217738899966662888917726633496450296761255329974837576553694342369222714086326290763690330193819030016452047568726867732040262374044728269598787320075799355162561657752141465016821334317187595656202789819675176811301867264867859962008696725593861181817148817649856720571291027771712509222185861891157713370721079617883019961572300444633263883985738380048738515962408767442615560747886472358182749349206919396293624365982588234020844016733293556404950871841700161879000394638288742911083331816179901246913138801482201496189337350160016810191537519663829411530333117419785216358281492647547020640324503128610301093054960697752450419521205642084164617227542302123131805351488823246847078657423287344867578844540828050968966436677407349627024332487072463832606274847875592185759298336064926745851338017010774981980988734580542920182894971377492355812004913045228340464325868559799649252202962017735730196574459040619548637862950159447658128473738010316419813361132731331399218101447585433972367733145855895794300461308457673642169932678181488737388123255112651885803222879239938139724490784744722416462281632531559700136677268916564894935078060178455360178477689240384388090606396526146845101763277765772525517995483985590727594505853065872577148679529128594150386445100165570673539172476727028784885064327253096225503670378085570073413603940621235559257007266084749727853761411070658147200965344288965231552448450955183594205284487752966575905171079069215833716114194126107396003481667411608156117785349991402357156299254015645364631796756180642443942962293067931194079813557802860062017358728898442249551434564309257538051335030485043363536758725327068909836135127629237389610610732874388267886186554619750259912960260488634269845446601297765428304883002602596065319222154650971359167082126998571743274982687006731609150780841608440586432794750379253559293546771594051645249429480533904292777518232533446700079464795989993535237861495060179704641497872709342465843214373804162538020898414457515246233127456464037899791795901588738459531979876164799995537453766400336959323069837859403814494632624542157205318466487758976882162430414767231823901921312861530358818518464111287645077427593783518110439333476477088496673693295292910658827742858133676719861110435534968508550587388730164943845955735077592357355896054289311319947509171238635046078053000968022689384356406188498952630309052241555646879815489273891066706502442016944897202818678174679680651421966061040917157641507005270083314893380968159325431984499896816441592354186700758804941175543327947391678926061359443278916531248702335412216620710609647347277496119764784602345796480259678534937609543477091138477848880429400392641425068763401054909414548940504454855787977148271906100071573505929062010756801897248927439916092585950074844125564198238920562175079590695659125802962426289879478515391352841094603411094070180055875162268865889231838748003436726406314009927210063130741277424139452432445360020910304999780750213332231123813305341398061327845188123779547841542329298837442906267615909730515328291345320630490294953113428060682411600472957731887777226426310262507271403821975493146114004643960673650925471854845139549881661726271974777284318858820096970152410881282718198438574067459519325712553928329884968665932496150335578703976462472940920209253782507761852225097643521419375282060647206911554580169413704432534596234406904595905719550290420326390724703386913463939287030190817336317005845231428629661795758958030796702736413757224799083982033239609861640952397239202303654829685176841490397610733290987633956631593803958764887101788514792807781848298612393603295753606638382768448325154800158160481407393584654608265308425270650933539322471387280416660748569660826065594916185063958489483220722874526487375503303562688217473327667348684827384506474538532878354207903498511956235392147595309398117769030303969143673356798313514351552541360091197748194854534874866188532405275955742558342209845845915019091457847641856173084112217632915746137751663790256444265568107489275715502268039623308649080764393959221026157431092272514540611771182086183976271226389881864269888790944782253367653731817471601158854322915814170174618417490229217677275299293141012638286234262924226932620420084175406440700336336677194579288986715635922796096497316580190945730404769795929498823786292879558363674103236976899598754473942658430980986999921076008322451401888469436310120730901554538701603265447861060346979153131342268201650452136992019484382945912319834095007417947486120009367955134240074649231825979429466250330987140890841023475355319339819960609610252600011517433200029611257612311465330657904765487925445194825037326056629258522502160025479659151418620301061861383544896986714993903316296307945940677732766024357646200837217151274098311511120341331595685307406137629125216192435042313218379625317603004476006043960533694057790522473786623576820298012312291264597280599078575701324079968323135508421819428198199483055929944353212279039133456461136385359330161433089772197606660881353552696588156451446369439094139281484928494062010766889133979719867672895727937421235526543342268980723426678478907364349232780504977020616074220681723921585172327746702502964792879994103944622928784729176663213960011431929354533334913821635937274020400508178962254052290965265428761479301059503181484100505281220881848985534679070910378817304928909474924927512134527046558141779274240897384118404383770211343853933885501726905626715708136785822237084721443488290120720350601252283085490372799830929785070027647897032805394942587057861379802386620551680029930969064339868825571586840394061506990191110470695976813437663736326175926294714865670685664787289526725783252528725932864187566352895724306254844681831998719516322804836268884701640245072870047713040459600920225760640680126737941936899625320556894976517112864707854397069523357641614287676049904860612118615762868761737861578954008892310970912303765893214374900403371647894608878305652589701338935949656324050858696461224501170535041184103178758813873358106596273573580183929102911028520051720502497139086982851592807385406356393266054285425436472783448163557521031427701243645064941724218921868802481130211441514058470861031966507225864112990671571765602973931991365847538165146923891024988587517763050871881862185864896964254900638209891630917032682379888640331948273334778518338312839483051207621067793436320996151452965536301432618972891526282458030154313935753242168057483566804982050802928641244689389442079916080316026570100986903806924927158489945155408662949348383389001817612783549752693350432653314605277791324028483958127992515519895702168358658200140500354952428223041364821946493818437531398636845015313862787812675840605170481906523883884301278103881279207057094406827481113676685737597481794531048944486079960802187828104825259417776578361857791526638553886354971229320678272203617197433352277402274110427523653852027821134759705131842819475654514130600168999741000305861676637398594019056686279242840968216790493430955749521261624221774419545240340022669731968281615828803558963376052627952450911956659695746346339829120963839555172928433312085260209734427782614329994624224056069821091341259778158480279431172473620023450235546865986314160348780314320022562411141973966579083693108790908977748066303096227460984042792901278218441270670442287437989349434255934839702940398839190830788097446947469918060117703279498255712352510223246480177309900854459605800533111243764649217853829249130731561312988687281127925214258016132245614300926092528698645212280221565975891541009720698985108180674326668753659249830213061866518127936423785722581199460972719161871501118396279065829096031937158851590646985495101530821261326284446648067176465440025116595744052160863659673059144958514255641253163979102323235812015318505678859378479494686127302795867130121774453716183711765935675637508898629374508585693040733645055919341212578943886557733462649749016526027091445926554727348830192432164894462441298582643930114752682990668872309116255132573202281487516303451215480619715378964689938977364366165512287258181337712572420543089838436843060053506128106723714827607910581862981771214271618437015697623627177641926629382057466446509329265245919676314086603829987838132031758423110799360333517877971405273404531283027681787725247748427492080430894350945918626689053885852723835648585972630107110431124997287455538645207179248977946428801949000947257885897445078365082818244385033405086802273689340103838249253302893876467155191579659471343230475803327328163686488668816943415234296602542415313768853443060534087413315116369215750355394476570877486854906950417395738509358218741199963545435017163390830236747085017386503435558633391723518802504612524326533225269661867273829479127638220857445722151732201317148617504425756409251611511063697934051960711387730543116559637979413119122416429863230577693790820835070348654424782259253504647901277764326929716907828732323221249060100748737816229430535713038951639878591599225066394892372184928742999869665319487949830427758981633672799088023991791504911235523631236594332869271163056459755604299534186102576915935032566196220624169706406748276927223398265267487012704970332775666497503416072496074563640914691666794081648700675693434325366031194923468081864797430294221520283999647441285615416546664603436705175189887559464895737852678465656977316736915760087991392401517555607034057882018473803460616406158323859178154532910243033290464236826344222850192022458746421675532363664484242154761157699332335576764640797339415450186947234449888673346623727499867048137660148122322921720914342510537267603161368007518514984003079640549996283589023134235245895723589156871690005976059825652023115914936421246440417659743211549553145316422742061922384122863277388216817122411815304150027081669622940140386966268066969183535379093162345426236682546842225264588486546109602567246541299597782629037597813759475222978867973198798602810202689668999202052655622852424419190674195045299857447412532183985969511804493254694425745779988248766581789971130569959197009108377123388247043500169922262461460924977933771894276578932440850744624892674494226538470213475406473206151822953277639272765905048473073253708841761311090925683089165224837159002617160637712767069780231012221606618328833628719949629331414573048251410277712048917894840770539690772289806912306643729782290424621591179188900313624169971470552756466124193098970464791204373126350106123806507461619483447628705248856876070966191452125172260564106327630758893507955932777688274281609857874526989047843577508270693912330542884426780166374473112023212996854166535695500035379662779591113302729489209540732111621359307687556920591640462374728928659551123357691865096783756039681039091747899748429241400769018473308625676306419436444489555852239733603066480620322119369727339026353306920940051123721495133562996830340147243965367070428113331326562294752790541688410704331714332852583662133973930151204241207930225131939244324779682225821887503013199146222776169350496024610055480845927867290584894424712651988512848555165083850089864166287569566035973660028076812859945610749060375809589352907043245049720353368075525375662242158988196100665854003116630816394330705639998411235561751362267771237722375584676071113681626429322811846219615152326255091362294916739448671233837213195043032709947684674101096128167833393319422648451311645948730471935800644966302791769535656410582175078153854504647157944554081303739831976194725611036077862844766944910406643970735065048699794671386186332035540635154287184154366414951859290186082675205497732739231034580237755618748317496460432120329402069194914871855218156524716931441409684731017075948208581400550945344691461752219266749892985628647489079972753632469058780481205325960596042491401294195650958179791755828828090545667691749208432923284681511267405134693431954179765719251482265518452807916630880412486156436846226088508055409234278949137942638557656105284319300635498346717877591837935470972100147004064533616825414509264397845014693745622261480984232170404881408136055792207454719813072240350583066762466327856338368932894293256519171924048160034709284696860844569069988583095365227774234289591314463783630781503877587608182395509570281724173700741095779004195825843739741123611336115223180506479878872009766673123197869581755249104796320390090703663085259276672327826222712618068245532673082651429754942105239897811749159368402439705814703830468970384198312593005287938115216425184831562971703642329530633431453998611428797093069905250643311133484456610138592301876282171805290975781296580548028372570165094395480068761373598662756547854603115499858717629105915453718651751200149204777652552986485469896505845211702359912295230852552035127225077856288455195584781882320217527560402474897075316927819652848965616346162884844670042256784454052984569708864179761077040646177157253655213566043620692041528212130084915873323340989932301267945507797710156211377891026277451223230411047440593204287951044921446315756913409058943498654755418422900346133425828690173348969808555264121140007184158830226709100955575086627590494217514450341012306978403850711539124126330001518958535780113505688839035133860425300616471058533417622462360956976515335038982102965478460576446332460834019832701987318071511666660872318011145525283863832351566403434779779504210646687464976877190925331785583152192108278220947343251832151289027412201608529286939700118424549373339740986477425096980247590039484320203308342989051850689608097274158403567061513406434688631462714049477275627738549478939902867806733665922930285576789883183549936942333432425022919432883015582644535217223187431190811217272000120250783481256590650740052042977903064866858064276483391411650020977783132749052880756510620807849091778429538509600726389484890080429067464372263919089803469513875496577849311988261709023976030630061844390683764297531980463227233055948942007796019757949319693974307350364729820634185133635544632203666634059768366103166676298385125762597477384939308829095571241044470363727674029221272705000218869145052332753187290692392715359386230464633277916228551757244427369983784063814997378992227111790153337534435095796135451394212261248958004350511868992557175117260680512706109680578268127386517029397570923167032166316879279674625337746147941559865219314434843382635144361358396682729136937417213121108017268927135676075758641665845278278621978392893123177746191352306876074152755241872425735040561917080294414565514918158317400565639427421455793593991065452508957352412249478778140496021236608650460245458703332937942415423858222236584479901294384126647431865084193655448428496853307119140561566672346682200946261157845127974143376863151330144806315126733441305360754070358558816378174225681697932121256679776335659144030871337136127721103827849272149906236163009485074820092385586075482862234839043568937141853798208051834463530839665239401528879647020520980365467974832850043917884199004844241522956789148605438276271211219805331023053144996108057182048085240784277938422699338189621286613715289823094116368654730134881762673758609424366605314062507760444818779294897187481152669415036394833176038601579308236372393753147622839580844146633658944650190668611499820360625689104861206822593594331436926574941404430172718286695150000496402059684389694222380525765682795586440721661052695942671707366753998425535365019524619297448550301338866140950530694620368706802646872342889035355564072418171797936432521871096974592019469025282964817507899426182633894176171465743704609547317575368265340590841649451847348316550471312435168087210289586195150122836069441932988441600969718272115888175248467454714238162518193827559545443497418936567838387038451273788570919731102301801728619327357642303253645248091803022179427222325670640177311021471059734191132479303682521515515242420630030508964654016743037492646671732555072239132332630962405556498106628183348501312872687270968613033587358079976227131723823323354122945032142706692763005831996858037247974353142424338720354398157522426398235363339534370890898153907677036909705254888574398343329029517181943461791916137935242704582471467774726655555646824912698671083657913165843718708705679205479547484609592389741326578387984684063000379653924916854153586598779218731662662641344955858986013860977282658514179827254237162591508443616423637799293492002871570594097026685425197890995257840229363517697584282608461195857702978832220043381384321800451520311642452934701953402233318397903171213446123713341588866031206350496482585037201691958781789278605699781561571630896390850764356501990802337455357100109077575706517179482336841964718815084188605224968205642001608618021065420247745824207032970704616924255688313150341438523274120317694121953963570714350489632625046983945168206331155577235527598676168268917322564176670715690939745600317760359407530378935172783568863039584800131127192548218883420703693797783560884353218832972441507679762035575714662267669914656273157789416190390087513718731124762464979523851238623433746876523204719166525583874345697706496125363699460736767126798140022462045442868956553493530955160055656789001400505478649788888193071369194293700481583368255904738057037199652802293514677043552606152158262746185080537758711266299099450957445242776129673091163411534470621443775657718314250711584002439527055687210232115537785817742332590149674081878853809142416343940997175560198555185889099404834603021080221843108292426082660503497926260324899221689566390955921446940740137275716536377724768349512119289448398039158797872241577887122967517190921243885299250986026394264980427922666090011916103351496032120916145503838655869424866324003513339139538481336503008837694223438415255007249632684948419288509381289220477234693104001785576604900341989311329319905378846757267891246243202923571033479347459430858944890900047013751292597232736573972683604753049201905782430043592994856219613101820285084638197229767495621109126591105141221145828594110817879603238154127294141216994879414068145490224578153283456239649568444703002735954980234793800788163451696891155764421896358962844820236763572373544601404106233468476041560338185151215806734113416143761112165911439994069265430273099589503037380276573675280184614510384879486063527975041461566260022600192942297408973003519804085994957701687774609124315998645150976179696363916590297112258939994789259494636182962163061643500555618792519854389478435373159973004139552074678211067829339926473465436080872688862215619554170296381934220340867456342223712716052053077277961657988317227279792579674362055910234044487384471712003505142540112560486225467771172686420286558998903927100290217120033574415818607453050732270626188593556066459487008487361618919897462502031376623082068869509887118840974871985185884045941030210061538984479017681485224512124789485989872247149121273066847040636066252632935695854465993542718837638412261793485303352452370710582683927808391194168787088585923746287093641099258736030657220744976754082856674349380841446881341789369152000073089047002984479612210680053068747699539443389914225053909640102325997043724550637695024763274511833887439534207116827210180639401780593956937723013473911733125266066078896017204650103234925971178119589340061135186402812581019502522773386439571070736200250089876919211355842779170032799986326431741146093265009190811050075871413605113080053007433993039996496966020998709405103231912205172644571041930385141043246254900022021327166606336091977607447822149813683526770002308680858248485726035008778439626324756989366962236860843466440874139122441686073853804893256295065643309410772371003699838134359132509249861936777009398091035275671754190195575112712154363672366458981571653481573855424019231878337310267744499212057790888834452437671438697505662880350140354969255339979824527965703730619927100808105053008260960413172351770591905124060532531132574571283681633470360040175272361554680013362174669346890573667527947594679883375553555373717290892506009642091994802612277828988178498913473423048438834877468421428298049490651210292834531539965253478246184968685979505720192538700803375760433957575396664197016166116368408457809441567078473215659778321352691031177798054363516692342573422945704858441393110627771663156527596148646349402210305042802585469517276488636679072737194847114007402739339035259339388057245615372081074451765072955838719876635865427895233247801390965518938136992370249451651163490429848475819699286514796526252989966815800164554212699693223807064923141536501951775280315825229905555810201710810364993285676370757018874177254844402298284618258014050980306534423298169204337314107315787687239859419498943833065371716223784625260088982981427030506867856880482897030381128236752145250126661149633266485217389098737768171626668605405455717814889985269268353919577401981258652140208880529699830318765935446188628760578151650088201878622364316505855001901296227466157168407321929919760333389218547970197047983957393808384568346366162816411972895745152591904204215949186143125012619229014343198717533486006115447067292727297713314170400771846765071658681539363926168956094336076969314220042188142870940952103270064043298035483956651772743987461953970958601387835122467664518643080697595820440307176372928052151210275222118331793462577396540341975853486738899912110741197636166021622577206574844821134711406501815689080076945928430289173554952571278753015958080732520795192986495495641053361693409505013632758549611029172517771796421021004674443513963175858159435395430629265812376230029425593465707881831358000646514154316796977659722782645191912012819290703818353676681559049760838179680788690661547057338879838795838809781113364518434758130631575504489525323333251602070992235704693679501025273822115331539027048984165758823022952090836917638130096237926373361664865095322630727870283111972078176014999140791838755949062788595304185195028642146546278665177628582693492370278686445531777267207907288005505463842126072766924955992491216267290939243035043700547356411372809955812260089126264962900813851194965718732660742449487733294924488674884475536729862961522992459192906063732693161720140503478132048333616883872452958013318839281152900721082005787808642630453187697141214107460164430034352237200508769376504754006876285526407170680994041906870300409596545469305267690812130822252273990672741891078315353925836616877870079858682349738522939102195369318963246092941253838531489910363198218716675422843664094392437863164294742284003887951135116636121813863894990158576563108027698141895733827895198698009241825260686652107607441912927547634721715322883552763918136762819325355648114103650811738873513019359390267695125141286219526104666972915366349229310684288515831770078377070625151513861361236055890225136592584750207257673788301548601003344782186740181236880091688961353086176993255281072320905241929096822658197011015291227653298372857264856710546839973355843689178519121156584806073393437837466834210055670051097956429488780261180280943156549039590978828327670453721410114826952419230622169202913014987320180996674083029068011792603948750825001603100969855358810978449205382526684175195627683342250762748081859289818937898223717366810332494950930470824211327877731126414013004234321715881602687681918499010128194220561361468400962264594972992206793285639394080185693187263222152993188103184788432729728051625923907516797379123315231352916378587491415316318788457950352483719569254087897238851989206065365377490801344391933227076434072826740244617824211287595232009760336137661074173144406482006092466718155366031226926143364567573612785675886864586104873678134262255985884884722535249824582254436550329652093315626788112877502361610638286459479468249567571553183872694384519262929947435584142413014207755796041868095777241483780813414480089284321329772491822730312276300742930040485877067530357098023611246387703823891523266459240290086331132099011060616716375683479133161123880932464701712990719389481379877712816609805169878471331047957696237756549693284421415921111147184010956976177607506149600113316231292001298596131905740285117807112894389276464358591769581505514311482177829994466560513690207738181088101294513641341649639864507420788185358616340286629287719719411214041632809722064378156644010472925223938128730073683634998907364902699771960902275467016675997845021655166519538055001490342837015083014227818476742768611174186635977546525085809661315200322741691636525991605348429079773646015961835733598358863303276147252209890824850567026317713079015518290590065369701500381112882433873758395850884428699720276510925607349053393780277142041210920880093770754253230955556239114308981138086121612916693203305024073346223531728752073410886496920920099536802882820904885604714675534079490245216756039599250298191475785563932981840458491458103452558775880443183555569613892986006460671123914697542899457243585668718979530251431485221637483049514199318535463177674416425649984590503512406464620256325365042480225479109659390313103450525222589384794676441446957303117043504241344284189454995426699796670055410635532682252543338264555068550690394318213311849741365635752827119225281127092139359753439011287941270848534902973564441426353401286050680383110217104224299608231212761207211224918577750286719870648097001865865088312569546796318116233613805668643235416456217345748801057476640290160713174109385464785502725192882297432308158345484814746489641851757569760131917977003301237462093909496443723303064205489049357836255433244189103475452385737223198040824022657668621554246883710900779814554736778222408313473760111865601600082521478049243194732245650520496792018858513183815703037790703803360288286338989684065736177216797949446700637586104717206329263400137999169153638053413745708820632072523590264853199727779480020698347531917134032131971784822774685047939212953377015617597577842031370648828409200796125786916611204762446333721759172309043495788241501565244990767056320136550083936231543989006125455277420529593320661786679641828133964705078028521649562194636534352369176720329620186940413389423452837636257001313743032911655247556760692742351500639126491503058928752020974830049725588260400760427995827097448792547658657699479120219872595524372926179983983880543661380827226535240085041056530464130348233959702270367609599881159762327193408086551183726397586564154587315947620479226497473718550866391987784348560134913666090474512079465213784879460154277774078951527141904182077552305135459711790402390389629401207896480695993277818674897384835487801286012452790450510032424431080603604206168373625997044079025608531122586047892891585397991012687815377451971429501431153128875301105320487031994933606365743193328338849805283890109140253025246167632555320353598069047856152889394061845092757941793389837941503533175019000701017126489320995438203367488836776696566156460192007416386385657500761605174102990161787444637269885930540628624431930124968434487113525344373397546546978221145399806316852038519939029745039013611511721594434522001273726147911445742073331749759406758326740994372009569247373691404177165704985789772941825954064073570105589730789584909932410785147143702486160669394628979038805927580854481405818142091351133339039973927093344251843975053376133434305430469974305201714751886688663935517441698232168599081656236650844596057449701720609953125630192366845820699628240226756061200712520035919027583644758980973423485708743046525940223279075710328014970127140564202291779010805722533986826291900602398700572764213338864643609085469988962150236674654250399311871674346148098436346304341793137902080999713331446586114954663313693441884894238044488023588797700914334214700080857856472292837601156728707714819951635277335188205749773364796552115554960760070658550518976925173738566706497296176718267563807108332718310346480403395501511242229281729821240578100403452565401920032842383586366996827834282352396397593217425705587407637174044721759900354566928541670595410140490070495027931277683470724271720804430244587303791183538752266643371432148479722167827655329584788597636819268094492249463440800687453891874072699594811473094111139483675501486948080653133792592102805887925036442411641185163942971525529749855405325509250706450635848078442924147152877749941666970892112469215638967069521394425997097046854138808802181551521633788613293961175402017918385243524492432885514386701652145773183227597525347832417636690228410970649096326549801222979080609835037106415591943369422515993794642899890807066335349717453872246410650725249935392136328062211557450228423804199146718935548591721456679926919044612431123568919594288578936408841196168837693448442281269568311767576749244191639863895603145065273982857178359668890336990206600772447666522971598011150008853056046276882490935667715178335565129737645160269476442939675149930042922910157423325530757379741443111414428256437102571840672541769621917955238493351251284765140566045362248881788698619876110551629434053525747540693276374916809575692092791389517119653651423005177522495667574150062712176207402246725590985387247709810346103458885164601751887011257992041097725352215581851531204520587261268919013012465514356205397180146986845864443038272565592417193413614173200206269815972120336086929062971973481927170247466816415065892123576665149650437715090615625113578454152252189935760167724310277759739500651770335578196732156974656961730517556383214867923334681674801180370282333246298506475289971058354781225197982694929196861135536295553950509743522530766809363463034708250584791042742769160393296844055667395798059551782302388821796022364378407424254692001182425162671902161989521555127894495105851466566865259539096015266225316569473000933510763782688584379278444257017931542187551258671688190929527969411992585269564175718344448953260755666305687169136523308402067732245081885258738379010858336110440034595728352259780317738715006611800617959242920806939775123152321003325530588238101394761182130817190315132651869604424577938795644969626309272185689582333155959899502672408867867154039970562724708583159412124985806013649775738595020740469978371839922296301614540307977742803916778023940125340548944416122200565640934256957567194722039645577125769551620665530658953107637897543474322366905771342029473557685116826972237663478937445582156510810169933712673450258061464954231292846958753379419346230725250533909406150634448790593343886121039089962870232656084867010288853482080980954219883334467827827830647643422381554503060382163724833317389153167339841796237798719701107435820226354169998901474180891918053083954503902433879084889184666754794372906932586629204060696036684249777089696262333744386340846773478359914547797089905833900263543761712074811868397401762298206554874978340938245224079328232732970571896863371578613820582259536446362355803709344043134720577133820836845654372594815403340418066799985941115120799746125347302237166949349707635583391752996779777833964730143809757616546740333636570721693425443266771428812391638672006780761714475800617088126831695392986819070835276813807251596095176900123150175269925804768503406166678851435638134852593862217967533271330586091046589896784319093506566605758450520985198874212610934153787159619075498378081838782540166601786066377480749049460350892850225971368339640920722317421328217597860417927535451518425613820587749672882561445844150961559434720680922958291776755093695838724562398088382154738068796630821538919394117839833566378289454630107125364221498687724642142797833476376603258096657563399545444871293020257017080514526237337891889902850969966043351348405551863903264723699901076417098972461771870159781349496827176574978268881933279942537319909755662844013556075663926189766357731812099834134587842053780474046023605895063158347214295689358336286074926278914007517721309626653878800452166980871399038637354960413262317353026954466324812964247900262265480124280863148808228948306974349186819236013748695175129705112531946334591051949753517881018069544254378819701323427160034638375658895181602686169722382530003345591962994001271978648434950895301878325213943527833942711405236808691500074033621016950402892103836167733918892056792468884607540768601545427735411012620932488154642502146044682530980648750541975139280192210102022816939928536882945845604129458268073910371740542063414512033974517677797702081119355573363421713096067363957986599944812964215229043232986628585256564069929621292721980817917435166867859332264866677809481514811292270099279776724521938012845884589939587444953388496854136631981243082707183911568049257784438671774132713792414716476380237768619769623098090351853522306870241722765325058528201806584784743320084094689181930434290398495337560463241428227816551411526414525448502555940678952934847480603756023310153355070295543643660465988371633801116849631324546747502119885444729487725824961717447595983304153556720277023338977877544911009652356538773558366534137816490914704296464445257552309004675150453336149827380627868045881859686947172389856230353805758219886812103864718348923874768503561612505951925767953028852413350857379713341489971473627322641870596144661999087463383422796955846931470809109133633451598347413575351503982094389757102840516011849350856490505635944585102149672241953920137461844278506817008760595699946025052891345950893748326793014134293937001479623381093695892186002770463997764325955896964405709712371604759551659412280423609110087116356033356654308742425699735169131906717331713143823933579610333425744118148601732772214946910197242018955458141185813074294424207007590336025162746280984388538867172995793131780820540676684048344292665608332776963100827119477533150871707816735015681305430838907513070244397731692207442798164946298733453500937848248752013572561421580251528316830569329113695204711995877434886817110104643965552411496070293257944351308137815104992995231967388923282691359865664870924058553958076516880770939887686288703046619200042577357777458992347534823477439158106776564728403619056927503821773874666451891201061130026365749095385312247960701670510348322841677537885175403536585234211302755050957756899369143416865393403489391979602460398162009161523478524830420019304301860652644133904505051208619660464067366192519252907406833997760161320311213077314779109469133314600966638640362785057091533156952283892462568056881081418941320855735390218717748905217019227985507398652189477665041078043038004089569984812070052548076929976235454228249988751882818498141691032922707064008766410016783221345390358300498243586603467643720320776276198546326088629135138996184491745378107647775533183275113421212911347751907247514920050399054641871755794132803700393072521956515337074701694711584655986511535117282575944737701909159074034835513747654401643934076534187980468873724381226247997827455754205206046386612239684331249522015225071963469758300328032504781294693305267344254068574519159501966234359867018996756332621991922839721026394815463964374662946627273290144106648986760239284411179132454828022693092757892104111119478247574234054738981127201521528856230723572026063661503269793843087902633808029903406633432446437212569380923623627945994380404172482753380830060908598093623758439953227841184733986750249962786422561797396359071990113964380346314114741305500136669128981734533754252056740340431494117793741962709775394177232274107945185242140565258551982200429736565517169442426111552163026310929917915750796528663692535961786603633772997392015587280776756219561133164949437237940500137638612258792901865038803240257915590272187837897701326954214861771216638978120961441483559517914982029729679835854753725646206172759477372754478371411669683319524093119195294436589198679538052889619122763392287517639240208300573150420617749360943055676015966735307304863943197625314600890718858432410294166315504856005512247708965974695923903905059259895238978754756191362856421659579001892341679763914816141307686598993670893564565678333966414213449730621563135757463387562832077584679503768050650643049352156794365766188352489922860047472496016133283654349394833842369591640571169140535610766513276759185417281861639469819029396339069299348162175049844846365976137291731042243357290722316501036045238454294162663325323497977809286014370682548419245244355335097435562931512073205870663357994534135621097928469386332094695958589552140399215102207903311523956155743731980326452654859313877739400753882007956378363532577302023400631554883747351583888235993212920853733952923858967780087056144812186635124164937639859013525722984535758315194221238464492800614462077988470330585417627019986674287490318539824666273876860177070255557344928351831480779010836630112573591996732882570713808121847861392815124893492666113558509706417952436696835684581779282431456308781271280768524192043623882871431696015632325280449733776898963295858008269337438041314875030977865732534783390681587151665506821616920265002675362845290163393524414625838117655364327286285185908540626551561214151500850219582622679528493656950399772212969392682554734859348290900116212095127473782652307394678259375100181464011330190551522877829566379734991708226090012040105654113914377828714770472435229479046046612492265800883287787002869391902528541889343877810406976659514817416566554431053485063178500850936116809232578272879401571785522617561357975842064360354007336766229777647097116728551515769381162804126579212154273007277968449931690405537673048964220998186376357059850756693244949768659607112617136740819868390744076704048197763131047721663439121596036664686626666955601138248147792257100251716704363801188908644388041587082718427074073951659921393661236277928294141326220249537826884309252277898829422234943960667920258154524773121183248974736026713391405885948749677588944272064321422096632329353006967699692886557650181583680752149697206456994769135990733905974250951747977125637164546528738296952122934706297676259240653305285307165720153696942863834726111497756914805446084692578758051002685443788902979706877697239981933294303198889859435261447128673404001099769233614547499914141502809871580650420180348278190244567103615600757649112789722301483597684347834525686802628451670481009019779173041715380979672575519818311890772173748920347115682973356077442127250070648661460891997391732040180673945775357437097841806781073964731862386830073625705690930448536387118124813805409032963911182845292032253357323589841869141771297341891638700329981705589373720849756276144614533564436485806724597321788675980049422356059651825672148701927302875163771963379579242932860934632636970849044374464788200082458548398507814564725194179346966392033745212042131244961559063372375985193759817623999598526340646469973269067816742880625898632459076891826799270242139432050940363003261067787214046458225036578914132818300349636956654742865221963695925090493984918542903874006334592060194549754709849508102068344733187136361900983722007738282032715429744125763607996654016607121424799807519956989168642450392137470781455614984831613010949684307501716875349533272360106453048811657188287656917830012702624297340029249470803626217043899192132959930847481768224326300004727053316818615929167180594875520132948521563345189734082279109098525730086069503566047984154993353597026789495498060101261519411989371210451174827340551917158793135736951884402607106935452210447791200069769810282970437862849362134438424078047519698542518758626559689356108622207766938170690739406838466057959392686811610527191246245629674629814945081713713551076564303077887748331057544278481587828971863340472067166489852211412859840916843614904620883258133781471179644029166705118480534941701850759031858239515731004379547577950647845631714547611416167399067369293359288384062734360614646418022731550792016107181725920115191344188070992232389347869846246097875354852280528253692794328175640352087288856200071393729282135737862325998892415544091957600312065125661412373101475591660574055625172910555136109623439657792231092415942592304897755586501181759664914307677274228810794671250952528545722839768049468732008928095882876346216878837027712740259822588930771628649043928549448607971915721765871721845484273308871463821670355672946298674753181903119223679669066811573401727914108030431356708784737445352193926686073132456284205869389301693199171386077868058721812218277109580713418980821798370542847585389380987331414468854294274794735955612701257621011278117173030182871167608182323059430957737010392324519169620869166676262539624101246396568828552008588244083971024512150156405846887260524705316611659289328086376226825684349787229131598119349262812940528608009056966931375510413331176081644206470269274497647920874815136489675666191746371595624458509723189012930226391721351145930087331353760227853365949720100416900668137390687903861341521860786097396332358329478918677665433249706335135758132088338367771709561837431482162314655085361474548895013109919021280378194442157196076824762466039127523545763418142425849969819991627191536897464365487134506213454143151827187793950701881426962837607471913007104541547473204346961469970017946049360598815583337703128171157927934233602938071092329951089985237555026546310283007156815608495577977305862742121334739638839251466625800889634687993330544233257482247797627137095503802305914465514195047997746781797263168838355778661641667476373455137776348049457973964634786347256595946065661993038314840899334876487775818729798002354486682853789162902523480439806761650552991031955666446335076021484637392937351123611124936090905618398880592981255092944574565147888264311363800715606067185531686234053758091400824368295126795300048666803626825831822293921972009889031208964972124697396298782726655404982399540451468683055016080275999619265304530790170815825965966415903267416276176853375014416888314836265526527167574745252270830426079756742000517031193701110788472468232554073348146324351270655847574526798626999141939579371324227239194293799794202906372949408566513767847502826003986541891848440602541753525822472921150861136445518305766423045170797296354352221581320064054138252290989887564555467359658877547392446524431536760293340629887019347170658697515231100943791690720937197225357669521114113655028553231710158514856733116920696841210676096981904562366136692091509043382621095497520545491107266178570063042069654495648009053221686554145154431016896302038717230914393934278959965478813092572645997531919033702197847761374029675153807380762267378179101668076354782560622549014421628182479780486009025531307956618441486985054982214297612344443294108903999499072275563359525416964798745032771432610713130610687464206888747451739765525623804010544988021795592806395007439448451955789465272335322052635317678519413300697546247758685613840644226564991659541212408761710353109021876820676637979953730660705743476265828804180786262839809552618025479194600252012808121505513645353161302534475187484523735659035749152731896522082212638679967859112778599378676042650218296481673047168775731203149103944408154403101226197320243913355546467578479258208410481593395062595398209432399404019249935331890745039469737904248989237882121244231684050118255698789156589643175814565063428788894375313702141037447729398483292699479771287184707295993830436951537261786098630715867156724729198001141782043370632893513782605030624584951201576618795883455009370367038805274215239150513525266984583499591647720968978445422434012623826663155184861798218664731733293580520727856512097018759195538764700732118566578228828087964314414085081750349577416691264965486334728945480648742066851074358271098536926448111072739616896977407555609058273082359332480500988853650945812458052253793760944507155293399647999947683844919558381851302603027360940153595406288890519263252766573945635786425471122625267792565771732852160225308268301414058754150400821611891484925418935768251655296691071548044635965951553616100925061061748676578723024877216434009071383313561133832591465648481493601065421624760081049679016276125680901448432674322371615960578976264091238319659004635513432230364009190652868557466071771943837186246695999716954593271923295580705734532447777383583936042608285918238568501621733391259122877145668999223350846491559234859692711245306690527933436725669278526670600567852607778057917386443845397702011319639868300231986383450266400309527048785485019578257514552113224440804773740569037292745494282290162514852975801495237346910211860958160346883145001705064226881255668098169554698901154802165894944839233762500288451028869080910655188908364807082416028312934737865327225223450394042148639233232607593585519717310537135507773471124421335819747681548484164153772114729668345468710511402251373940786692147021476353721027391589812504546364469839313453260288257051735456432554266226979056014950124418650346707732708777071891425539136038959719642838960131452205844738059116162092883030512353771119522252791151996966849710669738744272410113835382292552580287945275746678576889750108200994428182088376955796764812904228921209261285254486913444367266916844333056920639370294573492442409368237023495963613670237109960301827933424760900927041856108985174043714254022236543742830171816930553975466290819489175902093620275379617294812784968327366055890968812870291174962041347713757363102886194347300297943342291756939044669332459020966346609295654589940059604184306012403363417231280372984913827035910514619941193954479913270592321390967971054485131177848288171146474742451493870674296183785084482699942008864831477115331093971296606239310579339202223912771397207044740168813584347421666816574005896460234761408137331135243996568791273744239429130754237224239390612414195638231635217427081714361637927264881254878242430622829621035948778754998451020037705780995505525527111125298541515153465342842494129829556835930406251285552650471303598933230502865337515280361730088388406130907902654465863580706574040105814074522689130216705047745041763170054358512185137209552141186898062105273689770783288605155443655199412747893781860818979776122782260968345673451268327694299389427187077547728129279138324349909676662983443495854777908952280824696443451950010861090320859333548806640362876684517527393879669756169365523104349148523071859884650999066314057885710713394504131846243621457707103164240997410083401905364255692521959108854136012911866625712658378030059602751292259439144475336263728154810749858602243132369553165889393347537000101132247821333900969370874186637379628610658103191103989127689993169082147647166790198549924429647527209372466425246736340778274229943726432720910985309458304737798378416245148929940777551020931023736710645409161365194129190036155159678228198765378888133902929738729917725330258537727347660247165654665413750116401599154731009121629999600874903521896394903695804571878043620418316282927429208816255147549006705014118858659656579378765819139106415387035797103240864298443555486604725114709441586347149107346301819221841532139225084241991115017614221451542883260089022655814643126408177688573875514107367638998518538739084479909355679958668969533761724852630071125153731408324033918765391667395188583896650146604824952643181803514350387351226604967294972893246581742542620226330387700501045203308676356657986497710067395541810252315227690798189641430326552206936255073222174372037374859746890561706067799181363246514971380095476719381343685985484697376946225116637633354889183212580889420873953738143310896004442567830051503294026793650174818798007237507538844772803048074056079608092650529121207039947832926287637769914921863225289040293382253183814678360256619820144306766818426787870745969393878742246782894217490083593170979536047784571132052912176064187022794546680816414615627931524223762089688135256539039259949586060752730748516033748881245390429524585731294796216963509888714754385347071783646421599608787773751697033137338421655389143261710325439017365197084960177560417325223038356110929899433749543157781381091472456501908864358061229421256947677580727960720997725348423511346488150869938374619157829911258113637508171851429929776541450564448981341565487195162888536602907312550636196442196869227743433872049587180048761328450197460557677339563187146945649879154285828659674249863131987507085643447466003695145338779962650824801520603914848180944783998172246097162662463703900073738814941744375011130179387751253010544556845708529160140560611131583811773744104038931394748879816604462677303738443925855083197124249989337474140689362586601964992294576448718690209636658894775956233080624421902711601631819919300969293323457450914365742229971105035400885706932684256145837839999403544326133194129877543829316666540438069651535498772654796157836844322075173759509010552199212463554086476800340559704706455363874229344233211493445766916968736560426504460882012635091165535216950503177349194055960062660390906770697064337722580435605086481056088759079350083306621301745351768675568926888580155601720249083504152046634339128226086852460504952091801594421800213363241888088638628571576408532597238018358332433790370969306007113778440325542642236857813123515091056115670370834905748285019534339990930625386523287064422721814582126019428022946561038875494849451531407506021703647550352746725457666603386862697411258224054921450006071675245407563372297386734112027578425098538594200663662984521790130679451666412092953036759816048430102095988073239633633105546481616390395248144978266207434681414421881331870787684775204116608821344942561761759368327567843307580340822755089566999711964461659991202927129065983858668164020866552963394064339758362358173144452773940372155344029118701849289595438323659202721701653966687921509450150909111289493409946607256512191791920238104481929669477472548062932746001346658173633061535378636488888159565625608891054861161256524111513044493080315445900757326447647504226191719937787371549356550320536888336464885960875793870172580798173107135934033866542738543542656783127318370958245744949336314866768696821986865495968673767024785293769516536994887173746701576685991911880884497149551024867434190689109883493275276476063398139709270570906264327879810158274153279656644721922070247166220439827962621427469108180191649107171290046536074148094269349967716143627716876459269273275981399139752430604760432482811969281754667614584869600452925766997960048628096134494362423779856292749577919905865365804658965848373466568605510471225100315049356799895175693819396229351693894965100831871535714262533096250650207654313954785789281236013562722139347038248003438723812097955537345648917685017262691248457191370530486125737268857300048696037233403882608057743032272567659999625113522239678614179547892714794345536304977977577773302799041311713997658739406536824186284442657164955104068584052801931623068706097485651402199605098155256337372227911712453627751756107706561046826298461823113626508686986856815503860014923223484986068305859937233326038070985168504300255205063509488889789733481287649862940665963744002757982510582071529652205953335408301530009695233434347254688951492504547266164920946625749504292043425536481703108604922333085417825115643210384452780094140456349624559565726080716791048358473429167768166046390495786202894507140453486256684538535513021322730068336322228308806867888244435544534169902573268697277044874781234590501996994644010616306124998240818259812851663092758482199905457985178636988648716533213987833520117734449559779257715724863711987968398022020818889455189377449982843276455664661786022752743766683962792380235027745114929099816911563453085468972772061220715577862179669648807832153546214891349695506676244443054778280703194614764111788833918460753182256134309531253079361846218115525064128167251628996587799603168396850245810878823071285180598709957194056654661635486816630462430690402487739554398631922759771329069761210642917854028542173939784923264140533549251704832470528172816092998957015461877412391233704484716824117498611688760849477390808852963499542406211732152646073669850722907902821019369562686314731842705666451810554219500895564854025998437227119819774075600508330192232966746445882249646235450253538019094629090711348388044172452978163229804421024067405182533483329966847830861935541115024142170020180731531179446792053203825679210069182129201831099783500506374416882049274259990744505873174226647914707362168109985957979705150691878369910373452199266834162172862706998331598188235377358336933346590634700845553202169878952388187647935271143060590391748195949704289943237001601570719157627806063538396910188746165194403788130989423179029568094380159347326850380200727596389807347052702363461814891379161996348554159458650623806514338803616603824377889971713426972122538609766467506997052522666842766940266500237085762017542795002879955199586568817322819396966271321754727257195849779529974192081339465244752011921623053654553531250940455643585797183315995180767354669269083398281847756619870430686539558353126283678566814542967661791791512583654980390786972572327980487521189027298520824172424645252469538239088840237105466939752957051192336712523408964682933024081385491220059130169233206703270783854974564936490506322182381458704798820328020639742303394025624945872173406857477800800985561939161453322968063966969227218850781519873356436856035666319957674056593657276955636552807383748296239393172749517455699457528116784276419856524434291926385056723659747153949805700644188528481572080399949905392801860478747025756563703738020389091434552283037471808787296577578825566469278251183632736464532844760264233446894707676467340382343614596238813437564612908252245069572659566225729345123256025178910121771943246083056298634452439099960522414469243543775522692427753196481769259202049231313385618935580879113695613812452150365152888115067276930666684091139673975017339947130433675199260942515736737139543849132084180498730544428927249749002051163732375814500399033106414082993599162700843736439081006382737814496768743465722059926003759288286727835863347670197919187700901933994345069617964344307640668848106171467271261462639918469852630225465212104254269212805486356998139031822328689341028227654888105018571503115328014901979326647793123294367560960260260762867051797025495006279564212461841390794314742732639490615653562498290096706608572252000339476043431774667699168877362784740697927770314800064768931745493058029832850311300778789122622487131522618615737392044169981614820090290605237785639550102551660785966347221967066141303812840092551479292319085873269108807196736476913557751970619418963904505337485905754726073465544802072183411339577488951062615798109121250869848905556068190739559821964462408155846534423782709074947017692082698890181558144338028711707981308338640361891178999628036901758578703564039859292006138366073319736120549419405710212223788119908801305805553557678071423003196056085498793489522599626101441572211945696584445376412835909774802268404802636595733372610163192283002734383963566564049681387139340429974272408652232185992182815505162718314406596673790947452770924282896279378141817300962193232266305890708832677711025667377754687839309776887653540870028016300276507640927286218320944410186847109622045329639857835497993352688987760077275241549169212473286707784889033611523610585927171494286419950220798470417645915542565994744361428887529473964590590495772307385556021425403040827137610256307607473526568999780309307992010827121201638883313289544090942261878206044432378019175021699001429851806922827331068113351337568844763469877819685946841113995316759321172633336948525595882037576585458444256781764535761249970930509267502370808669689551299596669631224717761784946218832363715864047024104302388696284480504431600501901343606310331860225330198577783365704984100264393010065327395953743332830508790059181286756944367706792116007894480258407322252929411507558880969327359798740004530902696714379056236651170279077765556473568404145843160309759659522363680942396857566027282556744464382693684221757776698532143968825968327170373975127798806101883021462460471650516683772797637981769998726410480496320887746251504829575849232468647793946718364657878937279729135869920484678831833176714123144784392211890939305374946129779267688453523623165315596284651062646295884060221483308358658523288058535206588235411052395185603198335479689852965479382409583430209143403417218847186906975916979382567827368900521362378280733352282830435676212394465826178035190944326321642173191561847693230742586178216682895685651611979541312858323260731743596777469386293881540026911885050738313159786942276391323714456409591271814759781017899448846529635182226283735847954786661538549103405015380851619735750345056322560970140870118456962838436071542972895597502901412911301876029710765585104089396398352606374642115259612431077084798044969282377325710359122617816014168814364694286970606046723530035958488437897908033204358382735244923892208562045605519922789054919716022728852615523969920343371580810928437160367406611023409445445123085227412079029666893545176089397863717769550543449199971636777003821142264922497150840005055256733823055741081489007245057854539095434862667729782077890683401897266755109406431536238400378490396847350568476771425423946423192660431470642216842149783932934989419421387002797749829677679591947028307011586735381734794174785110113212884446993653092678552825063563415146489809429718961418382310617632110319177450442664231656113456858545666298320221175977501867382264812990524091653984034928702733140353950869408711185094659617127676712010825406174919629761496329454845917256361363964734565387746850898951530309436963149811354249841890061498098714613646172148985650098317945099738165538879230296119205180788830218062252061132220239467529782654439968953449707440248756715184223949919215543986524137370496712923420901520597988676210438762330504130718816990731431389798504027101409716506619655654494411079620926447565716816674489566657306561324227039989353140322650479598647198007811267057158808814800559461228722671900715272114248361952427282015582214554113229293991869948465599479906635812510588705751614340779805779188405067596464180636125693715376666310558176078216263331693527013372723554470427721858410055968961534553606313751982087243628581725683945233639931937848419130816831141627350477488080750741335178334717087701927060624243399348594708374100321479982941065396874561740778609584730359558306315295581868093731488125596314306782486127621008357852862974250588051725344225433584288600661580539894012180460261108207881908899034375155628800944743037734422249563329650252034968475245055958426830971482890190919201736927809161356238918728644158059025525421579384630849426371919243464131974700424866338580207866288449896592025071792302145409218956084311902168423625760960941958864147943270093246733954829921445937507147440385403298231968274516805458183869498408508181358273929969441215956722905242622814085963910361956529114735144217911789399168717464936721044757975532853151127462684658817617249704857465455626941076966771052793723860398645749963095025558361835044039433028980016826611846909228732379781625126927956398162761442086769474257786770304306207010281614810799805424614837399048265040624726533344539765825397169691120868368421029614503030240640025759555432868417583904121438301130808084503604340438452877180595003918910826930927828840628461353106661063397109711812994643520512387470537707997611833448078099717847962219120407543897436361721617401479982674522376203480262373842452019141762031362769646618870887704186958369248918367763823600585205978748177137227120894598438803213699413829081245660665470740700539430166524747753153873352026536013196632188855832931474893041162705750190858300824254236177375896082626071705539500039980275256613838974260275778195423177990823880243572894327988395451232138241787782030325100289511622915363967303847936226172132588074638696366402293720851931423377277855286362028983223200719458634828907073608750166931285960930085399131770719835876485072196277378414803655150650338619041002246882611393854288348740046106928354104847108836375698457399783267381780460094949478397628616770840453379165111176818448199593509720536556751910845696125865948074878284899528386815010119067115325281088885966032697372801583886585937120413281297855710411017513242781903118498238077342660652467650551060765786862348825888175066297404290450492217084189209626256840051568414024379278849670328467298705533957832000326322888663323051722838287339846407442006607472190731891370725964364240789562171221702587586780315694155450433409762810402927457048444829980941005619369039999793557391154093113457969976495627896906124759166385234329085337150470532857781273942825128581072755976196907533166888607297362394479493209353471143826549341975518754239296307841389304115658614055287007547554357671126035082316695306975600535902143530909532066240664040641735965569805322074725161047465170657869715919354549850366623561183098452252507037199115278200573790246518182690385629625231883155072976977166811085402806306543741739894314387242231357636510154118912433139804706008201066093966396947997091724148644616206010241962119191899653314775970664457266669014826778847953510427104230033475885375900575912112047824482154960871209454683985351067894807450969718682655367704046966673189016387491177713371649119070943643088846916187082649868765319314027699179981715691077933784315261299049984717171002382862183314537243340122660138861653892814139028132424090064308778275381962801158182611797156975604504743629218545606628777117025224287126049786411418157003502455220170243563402963968006567401881229801882651999455421124754336617171683800430712904281012972084065400415680687515649628902410160019529051411402458280317241339441027537336729441495386232147854006556757581940318155296762868832065744644939626796374030046462785414410312593865351500017675877280014932808165963361492742658771364389350245474475524970829832050938376050286270850869924061956561427908505340820295284457068635678668343559427148934644764515939053921988635813893445980848199729916758914865054954241119002670932757441023439863284449194609265376479845288170282124926898924981477775841224925628066396264995705221065861468162989258152032833094853185976040237440665979138040061484295227309959418287689432391792390269646519231433856714329789715486349835004945946575289003213761656565198005668018051506098512287182963733288524811520165415759907288558590233472224783316532320943324061765401977460448169510692135316936919019738531090605891587537709918481880543229660118273484640225157169570576665741292524687596460563494368793499936203978091122309537710792081810703325517584519071589842111593277116385927026746217538796846246759355940912343765803769354250493738798286053213113956488829450259362737989363563876607373176534743334048984290171179211388210425344870748935797430375675742468324200424548565237279423461416223915509986611475848470348020401514394639278075048585300030504918204847123549525038263723381079344198802567642381505470755750192932929716433961514606720168515091996869363092910259127777921411581258099964176582558730552866096418714738756299909584782963468753397424295721305485749099957523777978378180941632351659812041536654759113823737862359555538909853744628445664047204896159841894034002660909156744324960401139522590234764184690808200327696741331467855925466812924083462251631129365676979890974591519115440724358918546815488025780553094037307419672812193655309194263172085948071403484878364953831195052959824556821408659063431003185205691745759615343345908573977011553602142528779060982573244320961709491324963712287222485422167665712005338873099361305455484078483492021488725812236045598550091526347388580660822514477625303695914049348318356299236812720433172247652563502554317390953114729179052683738624227186953869594292631767090579415600207619757890573128284013025110687738383711588305025490589035494994686169920668078579658775761646753125183940082257720952804779877621522615662933577654091858375336119464985656538879291916483696456890657154636489177268132747328393050989484164718064674575704377194397724948867287778775683143022268828956127140137059600639598297300910511796315439663001673526192302059412598842192830134533149249911132406241333862760448295830386699687269166039715464409843352221098027195572692811453923675944765733565599097413954332951850367565244430440140596883445920854441770238109829642930623744117151179719056529613117836055859968695681310617486610822664401989663992767059015189183075165414744436308540526962180483338853318681355369401809130952415767625392269911690923872832338031268935313261375814123351756417610765456075458090397555090537347742610556464293671285586498551643904880557149674095627943521741078143313843218297695859605139630784968524170471161908457400382056782971291567781901137560388412883329859667651592396047750984192603141259925927055093844107028313712021201381086487630139625113976612026079737146210072937112772393071753749329617146181123126678425022536122617208226818071213092066953315271589832622500633130940598025852532942351563810136543887142506271325060368731461073538986261109218539099824061495907928288649330703753723774953223533453139782244278396162878908192968073189758584869531539990337387090746186998481875089459185798668477159338902092054774563808641365068735433347731727009905615642342463652641398688355196888714572286760788612144443866422950358099143245941273319821713752491065809373846961188124390517416140303384463375655692170398618690154865697424633693539819118916230392057703332474892429688327555651020180819730817392019638354127874710320773774189188370411804766789304937242312808207661635833875336394181791610978833458462269474557417891470185622182956655856101380740691311640490433136706649623234234100670516817415711571414785800040108544486883190400800127903201542677692414609400336552045156830223809611586225786827613076602688839424561590986763498715436976368405001784865116912338893135473974166552416693904879730287551743843389029867342001644130002856845774170020395857740479993757373304425668279952643703512690030496295025177946516026176603519904586835931096856679841820090937111203110019573200328801097445391368620049644691162935694229186575667939763511484083056977694562678757013582612126916178749798956844801440160029208842753573093834837855219580075571681415104529065726660690730390878130003297161348161970098812196825389656069047273441406543476497637041084224844995385721015360137719019029672031137326376268385832740668768964241235957598331539520596809123092259708830056248160756822686338272063855179179961293379208293204372293815639946448297054654240733049438445747303957730479652206768398050911620993072303098548518381482524127794323280199232963507520797173291081578378317455273128612320458253371234102766418543501999853726776013715784330893205092117896892565696293227920455368975509224857938974915262699084587575347331809280834568102934314148273191544226827996734644409166247380428584613239613233986737891561243329689776207003128432901075061521115372824098096766642551380873387170052918072074975392205114395205914058814342707541973419556952937226335609211670013681858212710668046402616008730217137430002326331566900727587927493107486161531825434692545423393771124741555961148957011916138129556277401104282107245948088349875560166985783281695065889576113051669816640123141908300689789738769505059146763344262918663312593468671436755875226924366840903014830050267011661943783806460116911751846248734258518189260696187677410937540866905113734342237566823355730328110132810265166513753936025509545563744386680935512875498136575921191325743012837974152119650378396498037880218465119677774976100635212794805512917171058134903580147356427696093350369861928775502908796311977574233376338903219146522204077246024227211760270738309367793256609356015011324725376625816895177032333989025838111527678901131738194880112523213486593952354444478543911511809088185462923828828926519238797834427811654274304330063310514253415292862342850659023390366051971746478324245430949267713697839986206743997653231597051009186534266614109786961530680995181536653243132376714952889999983574170422627211721998737076031116365923226945644135805841699389971861076389435296413568756221767639689155975707548106630804027666604198135178107055786141505101583022594607970114921169481513370634131929217956147231513485185058003173084509480835707205906616070112922020886623346038615947797436815185299219906919422528217187310439078386935656364484404375915382795620537052523514403249822553949511029925691531672127533910769204231394313029987780260954873466993873908728466874377980014472845994932649733693177929165968442987165208933777078864815690713229905375213733825084821001571675008391646290733595379624281892402505294795093986298839170215082628765058874250732536843481607459385822549456205006799236895084482387044907101716414038168495514594701761975673213909735136349606791597485654439994734396526220540017926968391221016459767372268620957432648739215756749080859964150120017930898223867305262807671937366557755847643948175863235733593975043735912588491192642267306791836508717901075133131375213645113115888829000094217461508492304709172433336101608955596220655048008793749593871923211438382629136125584197821933599624416058276009339397609107493337845890884658410258091523070360854363172966225427838705554091716575375567265734715694358170407521638909895849314743134060273115380029317527533543757668261941179089751676567953005973417955480035135987359236723535773334411538386770672234522817139384758453037586978633619497881947325305064297694752431427496125698917768714588102766866378917548711820392812146769786283580922080503999892574773734307510079621777895372887603220078652285993190552767699580273875727076819910882087116507611447745765974878072815781722722195860377882924536865462722305771219345406639827463665847943828370378136847696134980159455091248057959608978312203572847446945764561589799378141466151293434865182777028894058778086704049399374536609508917289825443762831460170355424705075752927747969300755445334114852366899653374330803317636429587966851181760060729631993490521803954083951854033459778113791046615032186279430350167083120111485468839332471408290493112557595252556590373875792486144833452702131743876446900576212927594136466498910855480054730804046092001736159140343912372878947041904514684391719287395990364840123122651863883680442951578170310304786871583561393401828021166131453872641275183397623419768772814585805663396315143514260815862139412100103715480310259034675188571257058876109547366760043662950861096473403615393400309671935944281572402379763392313706655374195098222322430354831551759308881997664573238536035929946502513964589087979786919444955383381078306865064308580853380706264470826625512212534206826572604747003307079547199405743500192701964758737646784039292475046772168251634852302400219581974425416540675761078483037939565750002873028442759569612083247869738484783804508224723133851180422895407246757526776314252839726628188320323285565534450544008302424605593398288850393614321913745637914178505514344069605584585855383164001941786220295888120735906351200694613716653402157210792392876465674466873717150517323798646418642359015366925128675230320504292812480129980263317701513905455726630225297812907055210626748068299398624962338078945965243334811075827422956290493865136271196393246951048158244581354739992365847271962733967244666800362538058645777268195831638411354828576920491216776572955354380824147025132484532119067822123269471687466539433358787287484652721727734215281898733127972664197459800730561640406526876537693034377740799966315171372477038370188990588294865198540896971798930759470756151320779200190260283680585628667964981429579544963299570674480857553844181424805112052676471404793046916025835737997657674704275308715692998913989644106184739866839662421012234941592487229507777879090771703907073241443456356023723933685012788334778996585819392857140571293141811094038578555114255078211993790292993031996258671328442277727801105580966145024452646256341663762857373533595194914291170780408146407990740232731763883989353725140343749387360241726490348298405652768913218658470530329368617928255809642209093544066304782454029934302565813917828945371319587009954287098640088578580667461956455227683470680126284154834073169719585863473087771935696249327227218620016683650788128484704545352649450427608926454088956947230079613650067281965073537475300244169607845782071722931142237373008753885357872254560057314530024611295794778480008488453691891996588720274984115231010223905219987688573542143549316732994505594782670776341414890009072756307717589311333092853701533230732717614600199971504671211770478182452017523790796663922314286658983516914981260214304096661071739980659383912724012308190846602853678359722000622595388367087051583896261520454580918280483548892023448673453070263673463947919211922621973596135907454960308523566351867562708820203200713642231010050218178090641375525374723261403719524086094700937473246785586769650616695767642705460069975073110925180347224372075208021816155231710600931932431759627331806694013110897841009328342617126464226741197707457852923326778590813349018574886092513566788289535809901988838286807731262429696255524794415739183504786170102862291615551121456286724677033475880311395472702797927163061166797901869655352192161365999792666914104669597343730399447301323769283410314729510263551288971502085103103265102537109873093485834754100973624998938443796489106969957228331078366832404694650292877304999650268142555717940188229842694279546573060506580125038994360420104585411430955144900340361239878056559120809961397871787284425210642748556587788938735289525639940293930990321765051552254368509795762314389949741098801089595295649895326602390005675334020007563952653286765805467171258480114088080890297521337658779397801150672776497336282352054277556137164878332176350425585247384726920760029378320165817018317954668102432950499150382080167463241390580782072284394458979532829957944082636424813210951865915055576293493846036443568470000216742817362906217115103333201521993947926326432381395686422990718669247384045368563263733668168273691603876504754002278895204961151587644057569170393628549817307842791912056445917323725133822454814444162551345625868058377735509946649139453426991802891304682739020671844378650762826769282755704090220638401692783991434420970275498396589387321815009699332331071176432469757303500282843366578075210471637077359381552228959976180777270483058369058967643623576556632973547187931789527047285331848272940162069559272487002480710071177115880479464174596489545724658393808750393368792346135379351781571024376016202879406661080148290719514744324269507624060567667002304752574256655867728329198248707333187205136247139260429400368828554347871887809708449215741164681855808642746205406630882916119620348678062756359492983010841555634554533641569540050331420682318121980553285638677784862401021249865092686029485048665481854567238506536640828325098613445544854117617331101468059130330566678835762598276246476294569682879704987938898161011063152221935568501653085060692175887025293409162020179787570203641674378829951263969516529363725914995795228000865338839896959835644200184772465520842990346178415356159369062317315831134865426587155699341769294995217607704768732181939257636744767857920966722584432591941698051303832421484835569134030549965075606524237823389998454233337487795318176437831620582304672734742309749985762215117451012624168962937606238325584952412295220333917038677656304993892836732733847798124175108923359010609822575302686295367135959531880295728207659782118305795253216539548337064206217252322955702913358314014057015487160416580732507285852007765664922275146784109996041736182078975235111196967427471811442242321914118642639417885211846952376273158690255316312223482114495083360537300488765263531613232106398155806272699794881127270431680762370234445953260342669829862833304952496105031733609252478211857219252474783879545965226923949636276608211345230258380064931458031310040968074226046549206077240770523654459448129841814679406526953395395723037771036016304005885347904250290198428163212380963778480079549748819623862267070460236053453362021266732085648845763563742259012176016894641465813850753624628274946266125339327188341211416123189627858027009411477998508166498475775450699931612252481267505278220150897442934665625617144670898767914584407136327966466362749110405714244165505922872528137708063204083846062725621702167621432710811377722027609312693516856385036174655754032362621293901889913465564892459977189134332375899563902523375643476360594709564260180044833449740289161954802076016179454035210367006253793289232839910236986405980311612589069621514149693754364861008236530906305585073485120987292466988719495553033836967539299009165130343653681797158161700709832062705687241327038019663429466183795165480703887346108835852112102599796120519953864216754269639133469296920953263263346607601392178118612461902666000986895310275681633308434618336956398586603925721194060708595083084250485232414887110321722330181426930108856655981215820583631096275785671950813048086064859311481182335605184157916073048320568642394258326425050216904791650232163437221624348836690243326738967994172592367934113844272814966505857035608724128949926712419840925350109495266432373286376785435294894891609054982195562202975214835161674932023316459329374546703140319793183210796482018090512613466168048932575006725687696322203694171194848621447377707819061018428235310296452993575605731599440002586427809799523466967893068045719200988229563449467585177061081200717265054509866386269592413356958688576321353866975981803986604048698351451477410523793480837811389725894643372895631857130004193789841397320495011512653932034101977250843890555868097634544440424901094514882312954388488017907868711558606612908596628268894354154856816200556943249126479810970261016443217411538887275481073002549412026934341909340031405064064288094840255414658233406466830952029904877998123010156577772476260484182575765348904386284571267353895732086454526669168492515047186273368901417630341841990391123085276833431962466036455425383718525487166590580931012203433792967153619325371618798760577255989612404703388665129231895639304468259689512544192287773904506245332152322727121120720914916872984476251958749614452382200711577135859691636098701094851440027154338168099901213937082024738377865279623227818445999730576983805657738957789895489660397712347993653327157923709926138338217247790651300290416021547875718847558847339949076142055742138600375055592846456858557107794062287064021554490009564647047562402724634375465666414061011365592656419292251398865515514882438544878649977413290887381326420469969782333292963605858525076164386090774660898944657727764096514559701726613061075502958347746453265192201891634995519755662611803116393373021860491844179359633772012110674478277185465668512368104566740199900755773415384129048469586217894595312539375904494593330165227236898840374985794527400903428211704470484175001467092250000885887389984949910285408607286785974636172096987502606301966699573110282712047520393636592691495421707550797914814707001665684622220635212613566880077100230252820824837579825639083580239182757118344448426367380273848268056559533404618933511208512971989908932090143556283394126076539296067966652567700801502545340511861111136266686917828251550620614313355184895347472537521570229587904686116282665482681720730286805572083383600533546993006571374780046906986160627254380838700725070499544510477840906193800226280979301830470969890444871995288945324445451461626191601961002391977731882133116443179720858882311663054518504961353796729594038480167997063765335361831241751555243082737504673883837956153892333828304135306480545126573918987314844633872901236507457504350918285663831308539263736399099515853742794266560340815301263634149963234443340307764493013136163683160260398542050644079444926641414081965184467049460298177010984271736641586555674448912335210098590568232651412682918448934978935960487529894387797009104393428649756700714433461743687270472586380816372202882538869314416460662820824708662594769495940955999773599066243979589842578820652209038303711400341946535044315164393450978686295976098755423526441787770989589622467316038086073871687531467592424213060532278630721489345407078730020516232050020808281577038704780174500885944152716439171297032023871875223500599430460407710412076209970661953483137117768681850624495163905966736232947089761602895197862237827144274317282512394403959645289575984532533755889615615666849850180777826500823949187628594232259263734947889856618575473422711197249536534706177772583422613861216160502375365831979351238881321750894094150444580424716544268434959813292263799321639202079464712292349783163683387855439475061022214876609030450538529729577739895591107197463787350472008121564767398062992380061498384858847902023680983961269227724098890764700765526912569217469926460558333462150959771360024559667232576802710927796832876683625420018155201170462266786891067611865292164168564100080666155130643102309029735856074923112805714336361766647137035957901949123142220370939580398071809512338708213536672444556836904363190391850746719944024172898902722819261145588057274235756268910608589619017656999978150333847808553427698352965118388321065850741734597791758402126469382439361996698483661249815529698034541080518546145582050283959589654581653689206459895450206101167457009397734509563381919729110211966818378016917985706663932572879970649173175487518033907364073958119546417410667265560856896377843734005414462539825699942193419361457352543327751271463359770087757355716375826741708210847704192430968025734306464255963240981142866921321597478037872016468964694579575102148749139261284650840380630155317177483554558194582081814090935154032639324918611101577551788818166707952092002747513647113743660502722551299195710913525616895504088052612052834623384070150989234273803304152231451541465737966026664299715897315718236944513617620478276033454795806322406031305659395567717065848034355767543668873014020091239833429360467412123361672020452782774412704971124921401762565062985558096927282879829060847717980014515811543805497575069836521236453591854734392049569072195701953739309432472717165926764751297025312726891659907373393451107416511233398708932002462431791867705007570519279989088345924379669138840548553746528946344423258128487398126697294254567955483362789488371774224480283622013729520332351489991198146799736890069608924423951512022048303596448747197755145942253216085250413907405907684702476373411990536053443866507941731814365503463050322276466783015358784044661527860918910396505255992137928064575135070437867265659391155641487562011603506622064137203411350419176803066369404524076958319408345035779915979331723316956389629068988940950328035416032922308152411798206183170995613567947184339269748921709267392703690830471655821819728234269712643304182013348202903503069600649178406217715118676672173708629737852148817945784109570098856701926297171546107203287684177657731308734603852965484245101010541429022321415005372254942983860209729604258824616879935984398261423553306698259104460217111793244157133529462637820124390764598006389112732020582089860208985414513007218055630593589767843834494122100414909244325921058099393407582372979176094246959231369176695749316071187423516777537169849167745198462354405722221972604215067790183784707593446774372129211445070891217093057877448177150539421615078641233106717080170631249312338226252149506421478989347351058297212429890815009422722877154097541396293371990948458164195231266969046186526892426557770105797722679269488956475029350348347512076046228753285511856102851044159654683696274203663983545537772040656876394520888799631148160178077413557812028338981955292137301551401495665918666275550363145984173137533259932597428611382768038628880404218082426206930291371506517566923168239674199530525615619130159390301194999870779347061529897238168764795211110627800137474104372894223778034671438157873484391133730356458287187242187614011445716693791694146722001799558658234284380540572820561235183707508577317785770916639898168062874533083605991156329205847225588912204361866437678942080227241786094790014840931637089946610657938269398429722685936174354428339394258146260463047741230871068089325830372350542883029830940115491219299562260097591366090726300661693247034327142344973833887245750628399238081043283220417598572854730873556718729499473973245581222579779998127426188781475362575388821311849320197010124158993363765460228848108991472842226385672655761332269690149359480483611206828051854190109739611411140714015227366007642792585435828259204992170035194822675657590110557832779863653813356387681541139346366942998003310946886432561971663677452096981927095373277506203651095878077319591678813771479181886470482697022907352930943524712713965227184080365496478336284459613745652395176095178172201749296066086399776690602329960940237269650707037731957318558792464747798333566783256679382428541419553465911178340706729330113781370755636297430281858947839787590293788332606814154401087261876968859685347133383061378236335697813319888143186374560136466020965462685564003968475354617895927458522973260453431455007839993262665073327131382804444617378367589697491456445570175773736046644297841902921915975802657856292948454011514987072495416313459797108913667934498728108365201888350391461016168004639858802862319970891607193317840398918213709379636770707058423345038386047668193277862332693210552738363891397498864736003215362633849387430650611551322849699846854767982237349782538213072691063344696980292489345050508562247420697582024483947303480436246474771414548248886242942422005324649633269141504825219492227229991431404545910705899337871503521938834768529316170294209917259319356453117914147252153704795858590333757344556984465906548950978696763568566801925500455244639868750128133366942923408958698510614625225136678360713731972310243461364927076025594528361129998020573329545752923021209232910874314562038204076414782410438701049670567652219743119743386077657728997535089703237087039535972995773408551891252674169947300069602697823994919719705327801548629440888704825634707929743655074487556643199892094678196476179770734747879198313760685146541115554088881188577441555011113924209396262742565934957944630075552940082358160105611117337806712356669315355455683302657285865444776273566231072402511132702541508401820335873471118859889686715574485424793806946731066419697240423182660450133244964710659199321618703784711414542379774147969404030062567379483589351544092742332639072375038618818737882859899132909766013142782370540911205974723337041219017135514882532732754150956623908726947285429452759514105950288797239827443712224321722454820012806595361314624694893111538644512986083153232911519298897971696896117199070290266283843249940596949819178269816244484872382466258586157683565977025066415500972936157906995301000456822424820076235458853883320527242285254125181935334975493625755333765585194853462291303344992975326375920380684898657786402892150549403635104904834726193821842492043174697852827859461500676310417133662843453455936274318428551194248343737797722943687184796069569394699351469829642778002735671496819903472926216011794723592811522324494840023889235627763587477750009308772795561884962761823520393957333946156607049077137646017802722335709088357004344314668772605563780050206434591524419536871930448166419463838744321052342451958611436242048029394245714689016339917172315999342729447875426712181495961597007298286634916773922522353710698689521829947970974681335578838111949365930892427590105231008757333664825823490576477881134092332200456930431537444291812090600022623309004891386829081737806160585297347761723160738884788680115561823384590763887494626341286512702969371053461742766152091645043945515636785841057228175893663692717783841798020895756067826698241820428553203764687947641686979315197838758734728603235545193184800478631222582305832821426128154893504381231886995293642853741184775857494750609081784691905252974605926584483183641977093406935787923340708905723534796852552059405205782701454295657712325804777173980434778399560514318810205615234755205709969524034348495816340939534364052077735332894309588180063283736555663848580131293105840223324616388721560920955354240608510890574707101131503183583806856202012855574990876262903407667556730452578740698101304908055467361406558086368464283400213034238309719579639144735740127097859541396534142355239171634172319915167229974143428975629861882363438422233946762779863814130510963603918012475234644305671017128859866119862044501316542204578045757546384882810637584118696094844230724321989829340261657131991622784132669107160828323743951384762597027312291534789094137914675426334634454900447160505031833779219060576870183112687183145737415402262053161086308867885885462885909494955222603771913640977317130572688329875247250834154848891514880697991811298593732835539711323622721998562799200023121486857053858718693028867282515635692650900391116224171262130888186742871949199622316756462409815213390888328006360824418901404015522040803027533962326576610458166647821730769958696085420345141141168839229583597345675439336229673840689596406174812476334532030157805506978268562337812177360355351751754487856209917409512516063954366598188168013207752593327230217174438645878262156155684522345761925131013065730632367312238671802804894906411957541291052654212010790280549830076538762224609504354205450398118781702356543924144934162322343411373848080100660328298275814582364027729780185118303992789311398200157609932588166319748854945956360869371442840951109100273657009312881682935600037843381219055527002349610476824629072765108584777445865189928628578412000865089069198673800731708000302803824934865928185116562403023445455667979863512275502224323418857472848737147491743721838533175221496918704427573190344799889422096933686310779391074764038920094892689448603327305039436908537970737764749284752382318867017076296889758961943684153443512250522190930411480878303972435324111170892788306220104942521051459982031430972433272689593806760974172858791332292073325430781834857160660669311415654701037795482090788373540347542861120988285261233656249906882623817312304376830318006854086348779519266818574881383235296992402780646798049006070150184913497238631758594016422233645364876036531647154238478467159516883248880138610309715823330815885217847918463352861476253879086624789209441862145546333994875825646084249899464846309923123229480865543816899520302287669410203985151354733057634879120748836814489295880438206817732711180073841941087691711120808277034667254758158786623695007759001742925692010326656967336226409175980168244791559252264238484950853318122988077804518775806547958642918468095764486987200001383668523107761225809106553830651057125248508933701985435124000980319673264751189105096901239663784605352598825196721826367935519398189028253867144960761292475116294084186878667265223295466664588090001947384498634049750156924235675765617354159812408614708724230604634342805246873589247060973193361707125143251787657581553976016830583036454408469561533464348164268542828366963820533632857098956033239081176778943415581741490797358034977579689217201482165584898677493848925235944056984815197612854488535168075492787019890607059946708877232036879295722358208128025173489095536843203048431156353507036932326102254408549116234671993978011531272585849551679839391617753283999932581971600311766955226273187813609908578051210834098660313553577572729791049064909357688625660637296438073638734087041195703971353132139474430179399051187459126844056374078208353994708719334609774443358380200157960598662775282507219656939635548672897655379313283086597885660590731219592576227602455504229549441341523324211871259433535413313724251374349492219228904286402095737011765400865662463678344051601350028717284982412293951896687819244697355103336433120469069453745807567572647134687736967986666448890271465890280120653716004454910908877607369361725205012042528069863803497253653640906236056524087925663162445368983254958166880575416093023086953146428194228824120250205435307438897769239940723745906001148757822145304452150810671889473211701307988481511598722424092697222824707763423989120476234807096277286149605351811846670921809560000213625687378645667812532280040509576638193589902413102489208042853221795104450815787351525935689001542720234372542720638711070414560524130806936840830936442944144314579490394486947922747461839041388322032792309809634725141900485964984375430804202661035697468095612023853504839981054261610670953563928742577483545730229084549089631857593162553582720039986656649375904877402390226244447574680084090401290609350298495904251751899571544582188442504985857901425296750936121738514005328336337807766012377204097579703127809503536315020572873078404915394368802952771850371962600546195459953885195158516742281367434559529820172785348304069861374461366223206287976833260196738370105102593371453022473012060795601839149329181953849619202443286701344709799390621442739754668509351778680010421324261655415375259597550335882166631342897160989378332589934489255831350680373556159069141108879484406755681856046649563885230562044422103641173589400517259855072186468405230343577975849698807446639078151946020364993111343646721107822567836469226296549590539313500318588063403172476795241145419559225258843769570927224444015156999511549973192917606216070381186497269056374212497503844612751482107670763525192917408247489502976351066974420570681460526218490360069330305372822801241090779599615341098565809306399060098084291209151269771431854124989373326199693318333327440593013572510529670573259738014851574035297571323852174632303218656294087247869334934767611455878190088291543262655974590926043619005639937467659203188418787124018893072996684384732112466600850376736671681441927809696470127666274906113821990602079000188975584398055507921713546323378611190235833002059341292726054140288987458401831568030765403196985680776424914376384355373728396317692827677797078819797620389613695497250207937833923911544743505702979022773846917942681562010408868989790986029685864499201330543441898073944057422274083353353710372713308263632538312792849327066815721157689031898938787278989698151618778796127823935454151418016439547788708573912270264893348244349091957452064827905191020227284042838580371120035013280761667430473291077536690596223422938036011189371273102880806154838936466420844510256458030856647788918770174337153393516273057221820414654511698872972946511269050254023607201105914390458827535175679979926892881541805194069837724311399213189803502349570182195093724159545113027787488550522854658235689139901329909371981745874179194399739827805878217011526752125003983552689443213935557358834035265455550843921054247625309344118331593667880551941824205948410204652114330228112673080476896507302206655949754759555634691148093836736629637053037702452082497153959549268908859304236320298816175558316390062492220544765750552382673120563492075865137833725250368035851039233342812162457156869366673957907182721466252691379751615488794017964952665324112006507466992268390118047003861724238126049533507096091259742284323906409314078596798525694043685264440562650052700993104428127301911316039638255312757907767232750675756730263194578991253089038012830515458791394200203988817130944971214074780158848675413557862322127629820038413431901804385273481376625269266622874399946858144506055017997681080001374870394187568552880399073337341837030748110706053969450681930937284791508570166635114025423174839640419069343231315032344809030802946308630867820396892867207833676561151265537280298822078234575357294873539451961310526662710359441643167029185673953302482366290889742059119634118647797383553420221310008514100321706014882908518446667800293122400396993291493495514635824807160634959104262490111497640549777671289982900390424310394542558337014183632901369562819266968729737710755249066673618589934548896653038251850345735781405012654961703027093451779154110667968941287398417950288152825590035741468740061699234400455201767247276216533401904556939796078937320196246601392184182460803111057771774124738178700031537179472994103231909047440539010515141974198646156942571170857152473040040116348757162767004826502822647226232392000384260028236338390638653582303498228639473742591459252338049961572320881922414265825913905771645846435330648295519601225704536429681300650416186565849913289432553833720517379300058949002606566795103855446457381990454133152596247875056017540684207591085872053918889408068609751889237329046739454483850360823617666356891085389580468244182464924961166718615231808915826077443762180174567251916575270342121610714461691429322084402944074701063765151434182832777147064263377649969944980164305702410143973177731858838790544000697992454096930606092720398061000189686292366851042798844982539134987337620464330607240719833955825632721818447703321434993891733167418340460114055561036032258240767185936906202987988494290520085965341289696883179049552794355747350044420176420153535957527395148308468378746175013119757050708101154121018386826201897826664019994649886961035228207004367596945597353250693509294898394112062994127876131804042786812490974966630215162677647646726953260604740939856255037655845958192502050824353881453938648343097944170532791897295891287926326746583842361302149380269065684074076171778800758598392128818385903129396214129386868937373124191057342477471660835442231448317431031819271984541507283562889612992245659962393237090430972796209047582075009948050135535312627569955258062067559318232513724676533487583673297861481562580853803934305728480185645188554315357488507871487921866469564512377528877624312947624860602384529899917158727196610093575774770521674373359299628983168039316073011978397301903599217670221438777306721768687160885494409198438944918107697172793232749103160911840508161468664677760361988322181734959736547154613831162054136261593275442827282470622619669356091194500848474196684551978131254837280152698331320588574779794080640022651849612368217007446304610422620064325114179795971279616831056497943986751256269750318901765413108974064386013859080155827041098265913029257378406927138520115319008611982316178470236322480231812599817599177047477914870935535679974210716234217637481328683309248427680797354336169193157272139144313549449791883098475566854190798362698458998381517051174404010809733871871885902033039205662187265478190123066824251110700518465775424419212932165896203256754352784316295687340954693238968359408527395454411128652429932638361340227831110904914264836486079935583365986889269030223195542953161281607625973550447797619994574019305133111670418504213334061604174930023809398790413762741919302153313691294758128539480941937764199186685549410996092835540004333491601979668097129474094195747569081612174213983562606546833748297588545071338946588055488395261591649462471001923828143089409763547322687217036590979292129356553053600248917433596809050673797527611431850934823374268306392694107978857953616912208168259413052530007331569472917588738809592020838933416942076929312006063257995753262782330372923777257756220114091474602454464519787828572908204511738593599317329943561530446956843358572771709727551423682582403096091525695075184085732968689120624481534612661905879072011362851090602590946224753041078084121314804315448662942452336160615336157876788197821902117224415585378902078051697969084422278023455509093289559105462916838028294180901386757377434006948608173857292954592787481743815409196213170427236753079765717128594420213126205744251474638063914444839767442781021300537534472643532967158565208121052506973285229537903414101795827143088205936634190968353480384473670995389092539766693842442972623409714705947011966418862014283726697662447915314086806255087822779915363989488339845965052932468076396966063546144255716551301406135138297031891393356828680973417305049221341689095094277174940023943405257620836056692700793768970204319496805405495635672932216748271482276953850596863544343235538934941404528667700856209872076384558018168938895041023611522786608401365314625812333521979241321217134400480788159409497509085740081631475010269955000586742480330032408344932783246628909205926261640311066078824472458422242482311938160830734150982545313850097223637035833373963800223601439931451119328327875031523055376196425243895277413519027915894440251181862680761702221604761995694328778348975222592322445945645524324865819138447543151187841542567885177931440645219266061367309054678800181675981854017807956373596862293714424754777617648728335534580066043258640997283651531205066691054477238962945669747123605520067669872765710402048137439454101792227726519360229932207839493598394742772995750873043134797185182477512896910469291829855131735349391838291042612697203366657434714732283086903767609039532297136186078949698628460390613714261565140908864128111645065725182353540321723075881513415765267418284749029402668947318168410537978540873464127563450637429801938171622495670211963569551523283021546063082646143832964278687993247487503170207885375179096357177108059610647869059946549656468674375975898314365450918533327326090722173021164520182648689038868946808226005370228984652888594279073365202516600811454052347956023539576952737771481999746109923338599611085871200104142126624656505584671204674300096889688501297593737261327502074831384575721055364981503912800275816386339815189506937203274716869514547728732961178456511831503396702392112529557615546191294553435562293042578847099866950239700103159461465210227661550066814026724697122119405340952754031805294764596550881677735869782893258104053837189163076890898106293345607292437125949089911979227406354957620850561099027762305832461060090535235579777300345016848809388820143905010018637236638195121489439423548498124701843634102861661571716588643206053849132808058378815218376698982158758309329168752866303083906336066926611469466389734496800017405008744405482308604635526025095904314221466801553510925277550050344365871164256529300783092529961714620534447500837381771402601266570378115970637776781672577361172470915418291448599451664661297589066305637263616381337201822747750598381663858942063988846466637159421926325209556156524490373116773173175395187771830432291525347093483576925903801055553884074698247614161599597336288018804991073024557005766109786260446204420662938002062815288502417397401987667580267791346445930799524633791390328494414308663891263912320975624102254156582290004592060476397500341946694660606012868635236901405132485935994528100275016957855300756375934301723572103960648337325883540004563427467237419801416628783526758399186353706958816095718266037332152527672905186112183569334397690900062701983038006888887890208967795968365256589745046459353083721204978679930203223854177896740315286698676328002108054071505975722680002665472301014194061245514845015528389693589552412521699995481753729914471629459807163455545147012712686742771725475622667418096582643937279271459267800597147965139948922659570873819248984422753777450448591376941967559485460237518883750537511134054144182887292372388159169725958060059493436966627209512233198125065784381199335882586751448653174258207175662196437800967409018450232910939011184080143581391111223677998591334484231967093161812987020792972622986078878240635832935073521425720613806658422490532713569382730636882280567747442812114228230998167044822997332281339048218678390435772670987548022116402072813751931607888189737621567996042376811428555927236030250754938371236969560856155377951096436567776470201082705955703843995772960729428328812727964035914671169579287832192243638233373252703701397548605998659120633785620812771318213470304049707120034599807116957014013843201501993534284406119229070631594525543470921356596022040698013804555127956723338272040444005110489106528889811174439035432553512763608305168005927068936921401605275390732993362828837330342378948485221167089973811151092048522757999911344286761049299294458335322732230034267803565484035544439915883745515683979333140426586535489045676562860613387653981301242296206496970989468751252010743612918363462911781265704001758137444627239085463398739541424778126470997888397256668683422320154789090437664380703813779858627511911167211344497733802684947347845763972070767235893544793002238423205920768647118659082609982634969093741106985315011592729104339798510585868061188944225458541115561289966849144321905749091672126531556562707397042019222213544383881222895478415064292428119592291484842425065790447628817415531502765649757969619687129014584538719190001695569631938600201020321145344689819735277488371896302144728217628241583562270346106891004687320144226078433337372168113305816535946638875874686659093336693325859212784553048795906216196426820495075977159608760553137274568543632504396618619319021189022771191182557983877180784252345139818271997560940088735020942285076335657730351943894356930485869115853400730721038366515587963233102912265840696042085345592391321299373475581738791401165389323442266697490836961697004939809432061740666330567185295765330962220593798943214917057888820635334133373312912553742917756038404743094586458038262196300510962323736987919260389704368900247478921090346299082059912358413351035237304650764519688351036270531453364088118343826478035612551953697628946446072657458113009338393519587892397807184444316750734694466317114431764165595914997908166803191157903535989787046553494974814405663820892076886989593939854481061436500198999573809443946768247264795628286343226710059631360466334729737362594786143978894126124173151062087359361577472450014839415336469642680064950197750521572977119545354182361352666202469505300230071593461565154786194952783066402266797606871741621661048287249236645938732902134915634592074999887635335888500526599095240464363760796585768089071483983083151358009320912518675076161906345979752835685942385321809046344761316630084914541503172123118678156509410023287229572470252776130021147466730822145687434954344741181498520045890061733022817675176582591457789905216297623089453474691072002378270523430613066484292206509873839538924832452039378047330410009750183176908005130551466677863605075412407175852039118916167374427780550532075588363227490335138162287151727697307166812206199788125227196339380007639128396685105097401215081684514268355317982464335907877867690832597247016032230800159963121259477047942789944820136164711246143758785138682995221428444597314445521569074614608874899098884044959050659423826262560546209966242393238711281026513802248802347588480817681727898213692147333105954951455391170949745790171704871108157074726337578500669319548379207338969398538764647659045759141476415868171808249053067791857570831851666673760418416053434384886513850309942679584082526737506888649797293776648085958848213422964393928476152483109353294348767232673917275392707838629201601827013150261978595969010445085551049757266461513825736036997011943231902273775279547887009770341803389524496800400776226936153458389093287312587297286870513840540608574982256133242697812081381607514664350030882028825489768791884777012345389642487880685088181317234639878719250590229078645647690754116227167743826185178577445147238624146244941784330623839009074444046945765015673796824620058252100823682728096024744921209191814198721158911376892439949004808182420408189912749656245644237633171481720085947841975264983689675825104258667453098454655086820170155231997205064233638628654216457077974194252909795441855093143368310455843079311039985744868771585269373357207015773416953027489224983370481753758938418629753189237114503563329582568131990596595398465657463198127374823129821258366396928844265806727775910441512041947001205415165663653350894660834207558818521852023961321164448884501277664298236317876231619835217469142553741076311129990127702904269047751025421020152899659809063575449422229516454650893293085089905088001061893960121257956927373238456968288495823889126847437759669899729066398900165725937962479788702019128442331561402450543014951253760124600750927286333048827729196411393909874061180682101544400892881919662683244159735384970269200810034243801017025477537229530669572201829562806561305081897603112982245014641401325509876642858812584204653423828780252486513130147212753786553025074988601685412408200548333021985725485906207619722144949818452191166406402946494750593436289701631572143808752816307412562688284172614451129854534864593137965032720466227891416815241797703955707954960597107676181165539742162237528304073843033203534019572108639278875001075068467873085217824688166746923368288207742863870215436181219227267300187848625577746579921699999592774194994087397309649427994317121539424547118246626218783850832710750395807684008613009579360911332886662748580128677355797492920654443737403981343224160008362483495758230418762550867627708986337103934307737849638817517066866168695986193979752913029480345525303351425134317134961607718526774062527699158252328044343460862525014390588188933304243304666020757489594537259999437128704179697346658637707705257654081393665096429313298694993090305233960223639166575272536290056446611537122628521415270472900454977255820929805776093381399696598743466402134190660510427184499898362413304608429594490360762365028983484871462698058192234871669059387895472178154140292116536846504089694591552675946883481952525548098320266819635349263157825238757101589661140747375616568259074878433694749036341412509841081918417279911503666568889111360397534263840940881122822193487325278918063509184228577270218191068505205187491812352985264383521181610762480354976496798965276667992446884800959694686067242756531279916203265332876334069291638713159300654196274859017465257647775109250445420522287733984339227932211743315222000329787944527143335758531766060806518591143465017693036407073382920507117759907786763199224181097989537638499922648044091055833950181226287041864204822969826986298463339397622599252394857705824419361232990781368237430594874908625516093827595290058116193383824117638007597364336346940976454380024545391746602632546736226301408405938005525757841717115324402869129710675571585570488741884465267081821278998570346134430905818680853886329157437740606103631735299271563997564904198284051240060098181357177397982322684801384787188133901114627653121506712398203657088639696454837661427761244363208207825972753948351131026483330679030299946188811852825290102889359470296117029628779764782814646698565658612934093208378464395888650816787953007015258937804677932287141750287869346479149747790782236140192809773866174947518146517965266068905556024124415459098704464426016108136061075658823734524398431050073715366668400562668568316852341287472688207651398732280578763596936693720161692565942528200567745503680835438674442157635280420409420772083334332020061867072558881223731864768324010093812553494303451150594967324124046805092049607918061743470340862683881571557258360972713482789576642546494530191204591670394770657296656325141203976135252658887615447300544113152996473694174435469061366110305426873472274522498014702509764852516877594181060357637592418318368211461857875369681099036415829119400911059243759055475208377207324135266512336381533748072555689297013395822791351010811944829027076639588647988485345707707016014333159342741576955054578329516397204289308776176452994752329141757269443318040715274306418568716289205539864888531823244667885516157329821328121236139894370759227692967606811211203819542107475492224835742473466458706178191698324816386532600754086271117068386683575387366531989121346181041683231886440087931397618201338925624757780627200878868456401810570590894276339870208877626404620322685337489964559579513526711656444714798851612866692690471581161368245744423108887693476739993947619017679388999520894496320295411830251721920922940617624347990418357513918623887474802143912728832663542325477731832400535143574389264434206930491905096456830026982775963289675962551689328289088487583755200207576384505551448267654962782027070829887548750753874222440849895650829817381489855577372830634653486280626644138590029653734165773830764090656219398176702655474642110846302553834747750851814109793997405103647608177338070022185650031767203523114334790375061575239240062132697079135030573441080799276007245149652847079283597621510421807602841664358854834323630741225328139017158339313483332673841458415876142354462127332164488546492239729390259388547943853915371136631016471491739970270436439461326256678927540316311636671555235427001461500665091879521852511023758253263064048888014658135130238282960797277757528850110941528257900261759007519148637487911407933039328288674101929480856058430538330289747332790633934756599840505155248419797153026252034947854650138229226533152913719478765185572636168926651056221643099230844059685674469103667023264620215314769954174727713878751791762785505946432775754079383620929790508493556408790513665975593944480309508473673645520409205887760021789324500613374102522926013588504499676501263500090644812440888704035183154499930704329171046805357457860035105128033393856694351444194184870411063376733971028702362433018181859417053498751374692836955916088571890730515840517948764295009131692482558004143844525696771372334798180430562324722055495499938199518470243891925887066990206967032097233855163237511126332611230588181262426397418670466510564520358343032202570133938225261340717747301185093740649575266634065434361388588728058590051158647415294049952443484630352073417259368330212772173481085425791929854835669856536204399420891806913314179087207582875989425928822167680823387310691015024351373671707552868194420402455615644044549475388149123891686890345043136352906639993896235676225385258316045530887871401755776988721813171953509376582047218494261822273108830643022581923818353316622990348107459734755149374183685165953910176138067980694679971688475707021486658611898980250237080695310387898544129328040780546149040133766053565261396584661811030587629606756033273944843940924806605869089408892262485523910913558834897495470499714279773729171383540191073910603361549554323411812974829950518496449142336927087375971383060715692745339842164009466261223315169652871970977804209717116062143622636340576942576709798639634117462154823399753534682241532035153361765418553455036771920255128614508092300400409235832578728289361071333050267937373995188977652903949063664163442527702903223896069529300136333123426281934636696312709565626185201773548152362805603566924805716729727241819499207260054497445628340953603616661549703761024949153378191070729082784912025817418059198102581344425474348800786755344226620465588555168067718543739841291956328210820098103123655973982561480742875369521170881385688283770970123489241593783747183752691928440850647779257919535562848795131791869132782380391576988678585258038035860908739590917434196414883854389211334651828408047564127213385311473023658481344601553252712900939231423451811585250858623972502085205661386120618915089086951911884303869869781882272761329154400513043915439712226995061572938688610751170830210702102125017723837759769581790560283220457144757742341459518772076184130433570309295089620932432544957341010698795221961308196882840522758840327807450867449325576316235786942963642383673663043242880079335087278248959232439411169685061894142037437169246478820934265396251653539853746091801545301230666432432858251469114830554429087021152209481859492950780069746346963016490915246996176703296148465168503588491847712703714831416175654883214082411645531436667154742114172485806998963478811209728052077511567855201351068964338420501116411027934818244570810092221597835696204422982336657930410618643651828260241125516302667693317645832839233121825202142531481518588244624024184446716368687012272325371418524277498192559426217355595529522521490774587229047802699115881197544762282881382741407164415760747916561884012325670774633694057166862807070712946324571767797692404493791435224709519755482633971076330858397216143702623756724639553601040987969463303223971818861684789272339843695685015177550006349916860067881751688564562454211592216297962487754709431061096874287932554952747106615602693885930396580617090195764129902244192918718566262705221659934138614412351111170270142865865457438874042683074983275747835481510434474039480420468941427159584117056485340197128523828513896133359053469351459281364439679248637175780553620487741777153142893731591181050669635876304026077864801543659586220412152890419473989814755203702670301844113028590071906461428766242994096425700814949161306494763880825425668009687085551621782827604270045000729125660676842798473621910374861748964461982416244203699938020486190904089323205963704036687830531023115892513969232823667895470572235022600708262135191461866937605029134185323477758315686246403827105432234707458209591816028691295397928420866013268216315378698850110124819427944386252960197599697078121273576782389653210221086876575110565200771411432618139513132266997919343628361156571457572627477675418406696048333750193504694557153448874465275764699729610310105597194771887160002160988831773732018251151595695445670788601451734967142169023840946606487238242139602215355397123398086294148039356204522225822938122241839964266876556503107091854727999342805311803792950033669779864630688322754533224358552883837917367392147847598891524260774221544711993958528985237857145257397804509695682273472595135803780090302005029870583822822935282532595600763923779551078093865969335503157142638510256407709111325776515649936137248438859005459368302035815844540379132827204921501048787017520830845603744388546587178862444501735451122547452705181718798519211661455893251587502193687892451577824072339634699142021792119473016661008434849180171269999201715840601642855533656575472997166722082181594928003887352728978443769531438725401338405127511985034770263731677625214541470531289352100419048676993999401813258191480447468336118039813743972130261556556606309851424498997339272229203138635652081334066999156014871523120047942761069263828034509399254423682326240437899415902934089974932925167518644784192255105027593750610120867895256704841134494918125605515486901931986394380245952667837377264190583279970280702216706250854180419829288854483614817396237098562761668343976152978571945055374326888921206518818400851452032330785299839209633085770120876062689118747259555950362470856742819899133741966977723691280988505918711536068393831459406414770254283782675085020811751361754555752039357688270591598239654953593600753948539884695943990901527311391932493525746430616428879920892588327680032853418698145761396926507348837824852744449965879622271637876005713525986417171494760150812230683507881040470590606063102704920815212280906233905685826031747699262549347997840582893165353201901414175981516358952870874262441667734564392943507378984859719992323309195436488413257215044370379877762525602529461066733996694719869633707289639380136459493231715919415542327313608797057524781229009574730409021667312049603802514537979558798541244315318212465829156679001331125982434596267091185750797563541872202028587505678829647548870672493301724084365094060716136542410321043848039365618821630545787155206850647975242064646625441765327773195909754749364298897849495113287655396094198319073605680182788759494274817076895429547299117975162241999565886398811247962726403899377765960391988683304737989569760270434257178552933559544980135782005232387520889439833207039148634598304192520070183605693844715245429727580222238945974948533191875500230424982410672920889635730928693612751489363650902423431934678282280998117330375741849447444820199464444455397662196772706785390448882490837602672517836582317698785012598875690721790797056449200981377764959870050215774822489334421697494039861315364338548568321638562590391700082459707552145468646021338434698191571814557180301452153464696041512880381037958313625158542266307023001168742888625328752209615201661894228098898181282098377070532493119677146638186286221244271844030992390087133275628801039343318876168710054284019093626695981949049461763169038675867045007533108090548183216984676658189982020248414038268847785040344997501868502607058834304436793911992192414149754349102303259754095660924088345222651564437979874535219285570409391629705162346580209097087232571745919459056654155670553653470621497463587645824564491833740229678114238288425243832758451096692726574452903067499615289695939927401281798487572369771317512844433181569919610378773887932877639669245843710668838600010643928703165886723300510714561696061909276746734007963583364009263543034175371033461621295789183013957672775547741800287126855735763599623939888516052041528997459188641442390912693321641940498012750731825760123670924315967159423177502614684171943034129377499134381460430635524824610774085338108053531747673447536231231223764346415716172081233189143766828417357664900403127884294726000575171087485749898775950062233233649306193670444893870201378817880969810240302776149757975378629060204030423108806394928733021005612823352739985467134385423890800617471242303463606587513768317829081493268957998648978132861968696466271393529358393150014050782665067039461070379120668422667544129727525232289379634117827547264636205836240718485357811491786420647455519334167070457315678179763088672310861098925391028557375358756584557198244865036982449496889670166251642038788929104812493155806590467590021200073270257053863769345013114649109600171268934365063455246864561086328625300085137197851549985586465865244774126874579768354283416179289064819507997029383537146377376130426033901289283004732410022505512678324054183658646156631711121454886499316411603418565673609008079024006117546459800248848382253503437118980726046143759904060422299799720271786804115802910383964907866684142532635834869866625865959923866136085264999705574557122488432747214666405551787816947658562683228800528787944329796798891650687317949838852199358589972063045312662504154208635785997936396595349802797865649184867289662807792950106450782667471913082821152140564997095065940228662045611345261724546418112737032758140865885807233079953758632439395404563616307327831059316203246893257421722665583672743205559956736511977510727072344594703103298195032904175254661372735762184755707553661811406205884183535500012131839248626926666860809347983784221583899413995604970517658616412556518275584301180605688593535274942255449822129109608919711262922878419092027903663922363723972927170031686586477689562266122462082632512417626874091543503814926662120299926528789002141941642668170154581866808113636187634528802496144768922449192018076826518387110645457917403301555007062769077432077177602681011657788420871705782749075035558783987361442108489603949330553634772065106463112240238746183101682127879919188222338043139465393510655622612613152169272086852998338922189050561424706750440195659494448019418874117551983961970526829708211735724619836193677052375214124411893289161220307896358015635852572060149380964770613522502360006874269649465075239771528882107510244828576793459395560702006747247550464235249731993268729757066820988660335472338058807436704644124371874100419226314656150342377411137007038400835547951841836319334416602503411200590580330835919511722936103481177816905078564714148012513587626405761032039903208628415262921767306139243992180211075512651000750227595156399836613561127598084765123040640752259900983352631105362963667776215475768788793252594056755426297031675324234016494759505188996708852707183545027181902270309236827617317428744528551041883910345834375152513322718608242434522390636317074893477139794437634050575003477808967912013399198982371611354470269870593798965061355289548841768309012535163690304017573563298712093445130981836510891763841472354571731192596798334455752415561271678706924597347311454517753633218289208707070970335272213028981778536766585179040474633966484655148256818025988914075920765984162583323679598690025376743846890592487232782661174028402812600752101882715602875588594208701921373155320532221989333748988858123862680220774117681812017561673884580244684921991515400238327133910644492344612681797828958057459361657298162486539468066307388155705278597054885407739793093308419333739236562255125316437256357259560117310073558072846007578768971367149292456643450706507749759826587322612455587718491478943573001335709535444303548302239652950987222351411516241614441866135046206543594465809952125778412528405577718612382269280332517166890050709734168916892309367072042974163504880263463275842712274974211133609552460844813969300219715620214887789692742776988433392556574870034366712481593936922383773278622401441373930745031909585317725342568342814614419623323762966541228152988481809879233289945212207098393206707302318509398346396780139073111569680588710202165789846258635389259554239997318945396228407954446148141951867189107885563968670984979612143639187263960385609548748160499590658382180328376016758688526814603104668126664228506931143284696037932435602421093803825965455388535679517937701405135861420557474932786688638911255544912465985511744817791944218741737762569244401081027769757030082445779098159597843309609651970464223211196635920892436945256154767971390459544912566860403037535515706696068836235763947260265278158242993385923010564726108431536986671355123487449404202868202990361336304768701386712368790303160166856284297574682805781563090878978028237136473951158865562420068455890484561781652442913592482264394046605683478198968987540326525370254342477418045046678960633782790865068624659801943153478520856568942618796187543699228496760304963402762542706908571900286596166804057872516585190245680243255662370378255415119287177981786338340217594603091113292361070884564174047460410197196054600352273823127505071939794615862906668035231531035392747071222643505325074809598358507790762404827499006625931770939169622386690986818779643308463127691578703303402040795583973579479606652213077552791983277026796579211261728207319165276299079582640164322364190521693577522816850026529711568466551722261681601419795242842623640707507321818433668153500700082977844036317701182021313833164011818843868099447229748110706032827647070021178654251350882499244260689078278975464279501275918731264461444366736775110825211051932039100936345935141956796002056142164792917928218099872445475120297381119816122712485287164671504026495950177681643357336500978979803682751968086994245556625099858903039807358054749832885982395147852013334826847228892765033808356628615260228826705474138749011632065595912121087185751676706848713707336500609228559545371495198625318556564878528541380650466223650630885613175954665902363098862595053966247561679090056010566939503301442606364952124743902077059390721017983010607227122212184172933215036163620014994806433204386298113488294090095116608465272047273205294709636918563574316672617256790236146857421236400410884042495516490853610424585110889879983725286502101707172746210680923128372405530417670469912207248382795637835093745378919987240948781847527686313315407961677351224516671533547341190690585115307628596841862134505912118854771098344025298321594910924498459995519603900393547705027737333433325633960327689804232125328761338062590572193939402996050950905014668743710413802048691974782150664005508260163224218754748600244087148666375071753918775473263145442012140072534265198811535154715033035312647835631076891527988468154478860082799281820175475788109280353130577015037803566854812587894616767783540871407061476859797648932428467582328686326378846571203583786846177962956951931471660879758421660648759898338186452471660227233492034081791974539964569082135127663497319195943977853799912404848425401901975168784497044059433350701065072774810606897955586045499842151258188635734004493283974947719900728984366486892449436792037496110255853564970703600258994853348825351052888501686591228363207283676634055439549859669874449889528868099421181577302999629036545379293626720282980679072068135279255872068273996654228296927844300251757723116656722524657292937569664450801518543188740370384887457865209434119609983847684676476696710318690575419323202464047573373275005799156945080287150563787186775291237537258184616402577401766089213874190282307554670717869603437308249017984186201611864168341625924186011200882674151391988137532214355061583618905544903310861669976784715932410471852962561221573036506760353725051260212509005685255674290073927712052917693157292296252448446015632011628528415846751825351603629009173931200278942287617674880217186377592855941886265916836409417486605993039832954410373719964529379131420853407327578254986522474151663498387425966906453227062484587790662142283414794121384854091286088740546965771311617700236637443036628881626215047287286165499251990390454427901840961989606965866301052031636730138267031752290130960775219434582182011691009951470691537898752015860234117278807719760951991225976964121734998306791164244844257693519098406261306227847881346221051919131870375088712752719372221996262593146949328497678372847006418405855092668560095466547633691119788738705435998163416710414496644253611142606651674979444910785517900208738707357125688776590514696955386841957509900085492306316003986473780035295955665283818664927505185613632017567137323721738339279177122494739891887155466443915676433401412253634538475674801911327196815404063683185066447990445357933911133077065272272995103801894945354262708490733408521034945168897803069397089653897888723041971986457577477097434972294413927120110202971685963345103467287837206434178240297890216519982645983287796250893764931893138782317262407097149254235008978819249314685241832241363394065678897343684818197858807624031367500212659898021711746913580403163607525811451527367713756423935816399891918072627004557799469386816961675088466210290232513419350674473948123633520140724662312621402802214690561808849530349903557192936703691780299044959075945548669205326518809651340110543583966056899222945989943953571959044897663230079617464306186036116568232603892981550703469349041709936988111809505300520245901446352857722311775104738083259150842755527395378228796232609924561619249737094073456909922950955433107246063753051354481378911332011877034753481886618413331255758892862500404068956062181019847601274317446374337076371949069599456129632699602671524434577844196515964174094776668049177763134312737620898570897726197346465832360167535467386454984111134944646545831528407278543751581808193293420670398000516286435575045562604661397614547943026326339029800921884980738818275736528790241331754681643948536603577923251746687110096320866386201616080512479370970946810337414581505069313983695762795871691333530150722511908735535165371464494390809803812804167234439021324564090037258443626410815083892831272392658381403850925436407482712952529736254059493221497697200634026849796015379607777297569618451935896894442021993313899876895217473592780888513088782120984660008316459173748086511264208978828725033348463312252079611853127966216494071675392841937629549079518810874733128815511682200641585884062516321994613811240534042217967469052169988535409187581496642166665985974461683783851690587182379524548566217976959107191019130398964220394017023360251691232616080378243391405740326294265373314710140151845623908827179380293402555347346892542948658151004152078196625667735865711144091979370328226955012090255265227816771995970412391852193959337864370023965728202661233128663894907530112774494599678699571275119086956886114218866415445254453687757158000245004190987864457523745757361431000425478016429038122304682188535428743406788374427579841933018425552619048522551241840261975815305433092011488587504959151555574690349714676179274770379564840337963816647097773221475884317955658053493231235888522235308331408692352531222278570352655743897793106326467086775890648658461391186824404282580881874244923338041402110596227976982674464247466191663754278224864340387648234127922792877175978916197634693678746101503251364378318584283171774177186308385356708324187311220053891017932294305323339818510266305909653724708729624398836212191730886385548915634765164169025278554189025296977520640946101164344149398684788726820383971824982967056094283814809217730780220892299235325342789086429813389684988560235108205768252823996915714851519474302558543506905736440981588827847033697087308780409005658353990718918700979491031315129342175542816599809259789964092109145686366837211853975447602530198207150196113671972633666690415037688773684709055435587869939847190653179716860122089318838414649069508810186197956665305630109128076929454359695847751922291562140814015102206635492064790559258723818488916798030955250667606753765825158616934440883382637114927738823911393007730902790991475197780993066136075822534516023377452570129142302079962656518643974085869345623085341176079048386369720632198227366584057530147552280164757736029368570068251506365691995570428039533859331333396655786730847239943644939680644951983203565453472491770994187771421961303015717385124512624969492735419168466589295887826803119850582188316293569108567352756982369573167584525210676881712743099474287734475467712390606945895474045219419357907819607519257550212576090786414778814582415978462432165656903882746875682803099858461822861681876554293661495892424674721032710342668147172708123777574251848958140153076811170754090838550205613465233656803287405174237311149214671694193655096462658159499455585790815523526588363513987160432839621995390516942020894894360761669216108194991996283375415932969055281153683309377876801006191449414698606427408461817578504009179721799397873771258744717241053101191679900309327537649430073868028921393083746082314029431966243745505757217582194430363090361081202175347490858510921173391470941655376766555636318500684174297423044164214527713947430314096200585612737735031064860103797899613480279105698622402298898107870592279182485051581813784853913309021216355296590633072397489251010127941839613061580726903307462018906332643443118140203769181418966237455128096632863204618364453220912552194873017103399250901828390528280117335078788153674822360197932792005218421320703088272601581534479542455076303324779370369479245460327200314528696164059077624248662090679256899321838920919071631660145271088981542290508636215033852479156194191131919847657333580120156484983379810453200765704932646723777389648470507327606455273205679104843398220930669535608921536710583028671227004111395346326398635138362926492719240120355451950187278634354526084800058519691868589296488280813149294865289488015690207178919408460635308013755949496094254523595906841667223689742486093840734961339595444555620665355292847001787303830311799940207580471325149829092022689588907950249246606214979186874672295036987530442571035906878624031914617021493581707291724879483261361650928571333949657503665420038037924332346362309370390218535077048893415235336193602961402605970535445587440662433523314075674793316002660765658229446479266349248998026755813010401917596492164554085871799814129882617515179534917421543311515914515178681454707794153305673136951011644327121948661691767334110591568526672984198467323535760962358287710548699941660278341407666304641447274492771326314860547380189966265751071660405390841129846839601592577688973348658215792467348460721157601909645571138772880872498765402739208836133148034225705470351384757230884974792222633475514279060027546363294449894411241600284536190965133561535375982035147159792343008585375068472646729155087219636514045269028865076769121159831554722002777576332587830789928687733498433409184954141253833551850193237238225607875251784022884129429934043877846721261074997103857209474184087327425744733669049301577736271458229985312403204724084746869424873785189579463942551766100647736862317427926808771128448868001583608337433321123425889202551080948443468307813700147928816886903281638325833077380387557076330454593707036639443117818221736417114735713643369250791873288121813415761447088751934373298686669333794965087399467514236544856564074522026290122606539822172525686786840789241400623507854762288179326594643764141245970983518619418879139431830707047461821600166744633414708211873141895884131583411132402666326694300043009762013751602171293517269765350756075429280890123296020489487102941600030956165738167508442196629612972414070400981418428047542495301904567682358550664318264153530022658865515599580788315525709153202608484071303479562927673112828256479214096305414763426665708580542673207979191252761142480193542373385833645415725012886196809782362164194874460621413297150704812172995479726829756284301649726877982709535163090231462947161634999244881064956198675475788796843112697490368527309268756027010410791986616254583410711640684469171872111440358492906651260809744021253535984383681491852686587891409197260315664571716029769988830115993888151500048751059880504773751283383730797156764771991223736085001198334206822047199513370471377101864827875429306347414529523154574599772715289366566722067503893172158570368296210170759328587365583337627730426168485774131355432817296360017942073662678232408168159727579001348943085827809880842731106372186449909556637900491632582359337347422136324405283936672898789565209639808987348533567203609961813993553210605224190963474319853435092089274666713705038734272093020652195734145401674621903678751715202917066456352838990778865803509941605923758088407144117538914010785983313618800785414579129524092765085786777996034812019939597376300042598413392338631912518897960656113271222065552826863812160560110334377412218076790674234519551943244107498806533751617837975366865770324198972215263206537850514347102415853104554195367743726377066396769144951825502095473984284009418380299106460064645041349761165381276502303902422362984791936637343996285547202291298435444668137351333001194239465786047864364238823237504341764724088778568340149986092246516297495181419221553369054040477355737953586744480107007891968730634824884423825415297950687280672306411454404941003447814764491058634877581709001707085625662131607653061028621677074493710705804541099151111048887673422994278671325477203194947491727554825629409976975183050771953753308354649172759852763644453581406621276935521835349597534403383119584162376515831237774931508912100849487096108754176905073065389313793888026170660976372170073048732254126696751886484647601803475378704128979681363005488603385955095350511528274084621407521082441420444009013127138601460340635311873385942980545847471220692087388435643420817158339521714333156087061293940031269644098416527956901818144235191744108948116719634419129627554453042132002133558488269201872357572333966813053952370805219990001438522117081633188918818656428384899588499678734159982089863882104726560164602729498032662081203515592393309702628095379014200461353523379706816333385610930152727649731279263388378699971698414943365788058590337283353964025882938592213565065569192197347182215978637314822322081812376333442698606473806671795603557070412977014601100757966329688276861470598626092799254174261552344514126502306671149369990389803786410958396823675054876532508077458722682115471780409913371478405733126076477506742315814201568993264757260228654735491901529623025102622981295815221369888241853056270038063949940094702274089383878316440471581477083282031981163265134236976246430575922922231821768265770567228370153625744096338455265191541596150951284195812787463531702018009103352156004374638407048392376065774824376749050469400214584552468587534392330791354331687917049083464545163895411996163046933430492139225148245215084526378498622134332135132601774577910842771812082714645527545594075040551310738312057629976348905353863437820814879652635239335204177255211375530296391744366414237832129095799428485394297840725339745831741577238114765458103261674914376558404726418087087758635135681261463379590734467700164985028384198252502649418493221049835991173113590625146054326639860325581243381580201280796866176126441236417751845548750444478881068337848019914326671112946868473527518005273193817254094332249488052299295170723125096920663895689013769719798378840172039506420025125899854992228164862105305477637870132816523263715750606537376618231453736344405386577910002842141942912408893686972841692602473797344839214311606996785695125622639495201781943468759415898872608504023001934820748946612353979698201145156560223771651794041006291860826347870244322319643710805289552868379631794383807281005916438277039070726477930039861435211374960754021648560402317423456030265611574774906923961948755722066798110636464035446647194862411371009039930132400458529451813488150078203610460484916703613089492571910789977851752207675365888341217571441611759316617963041178682471325202166339095853930755836928520126537606164326143012226889436216915247092817047779963669915621462225572053254480381812379810425315104918328845659431312280224380494430680525123385704040754069041051991919952141678916870426506695103046792867126853088185036800359136095288414711083594862727038499633630452567234354291757182790649250390093216367885203805735805481356750531264239248169480148895753545597600308138787992622970344705786383144447352973105466721204275586178013664744955646044763394319385981605235496053737195828868702463976315363077923241865651644133313251172861337845571455636568669204619009188102251682379525426066292255408503200961858674239115305029625557272485160321430456058629086120893279127415334917357599325230558721860133868529192461180641663258007502950973033589171591962816249013585442314092601353649167678254787646079127871558410355822277718162589197395037140967661790607264799767239131068552671841715132038177531024974071767206755826115362482418562706416578425150354202482821540092051582699315752555729673592514121396774305130048068492396463303933743548215477743166332882766920997393821645047352020604595786827267105318635504235229148533202565664903066041286641674719138794720490467532720407137073778567938294457642255106172055707491661090520440453827206819630460507598812898764612920120305135977862822435104021040608267449885347861960863963651630625150269154576638053527918693343690889667042022752505611718108433312299833383865113727394489777788485076447640542744870296398423173092813432071540884198139564598642898914750086454637819964218626282236654837355188892360025907063133250515130743723848719053206233723082661326328882329199151947656611141826976093279831970126207354283020519713064229282511531637874380192595732064859554188245452097105105368070526688518653454989605623522961608598885884591798713942385258984217565703950644040000963175900487300092432504273568447562902594612150550986835245048309044653777465370107536173345674697832785464961363255138792667804621151853390245362771558404966048896175063015749053066952842806201404021979318056608689627360594141980046205783003111737495327779303602550451641439877051843573212365098147001397887376971818682741295635860046173859945765921714806256599692518991936728191763928483092163998788233570152613954026026049818770723931597031040583181421710368764927326039895984755438425667149908421117968275846576311913092227261076822643265415587998927671114674559121257903350520286193678845014088308686700916970857791536318670484563918107967765397726725040575360596875252673040048107227739515041673691807858936073248774111148304662221081927263120821226172399248401452092677615528407294712450889299849514745667352903711083288869657826858180442557328734378367051134592321232918158455875636897404646708924676357900346397574024567286434971591148724287089308341512212130071267460380525860157723089438138960916956569820462460198081358905931842632239729620014424399487697260316685938523757659254950172208459377318343206881283642538760371377849855735800420029909593352943993187804341227527893228496603280917362738334775847895625701575315268218958970028827501771310277625335999501290722343834437141131046526997324235914606357581271890527314869835528714041699993552887921959365059044179894064733472220918546893215553876759975776839150391225773621392328357718723446125463140067443337426446993842922538063331630346130440214779959112363334835922533785794222986181110264871054525652688517970863896964744226594070568319010559932669250866500843382991503737907147154175983391223527701833213248764277934709477418318514454634500104290750053192226664532603675977393895696800821296453030499282664415129152339471584282020560702035678665022945397168250786171567474567454513722715753978059884021034836562328751688306726175543872812057356421054467318723786378531955387987510459732429289018486994187933111157698026347308631801708913951853841471174827213146687140329032510554500167538057571625732948137584386865773634604276775690271446865654391279673203448056189824227249918903359134279460096647279833842294840481505766693900456313553327809639842557333404797560100486135558767903063616197912206494737393378521482724882474827492668647916015271175057941940545224428682425967437806350974707543917934287422086381965153600294828063848012675392230974813021977819500747169999650301012287065245038765525560898716256005246782394123344055760624525874875364318432620666190870613016298611927693433629486726727454685409312475577900504477295600701749116791173940847206337191505493111366817528335196204576422188673245421979139021614401234713738528226435461758958595916014843911469321757821139783030891565332007465389343223428122092284835658174185466380681950174057159745276803795157848477338195447952069159419977190866628334749571688323146615319981862970124046150506866541296497534330199986390248496317097004474638523302687268913963187629638812102715728563715451208745700476340193213503251153602424088184103749976181623583472795664159783650667191360761327396035914937046290922341962290219543750524450273014127603038646597879012304028276897903948271866675947175007865599146015315437040287322070864945305523724357844327177913305815408529554411448084053743715782434917581052785262907741344649740781798780270863438026242566663683062811208671444086239695355411409001478378952586800304907031227267184984584794186790916823789076130394431863587195615900038900315087237849744780486917455721178508892193253913391974553763425634998886987001662074896748649892932446358504360929893489464396853438457054474591034073771167047785410703628993949694611531791839124445346361878481958800312777384110860229686161413522449778798490157421207593906927848339676126321012812132723865293422324452865321483302905803055790951768503355904251778621273160200545327114858530219870466388846275561338734158629149407521457795922812188999828164488079007289994842430291994367206981314521240472491732904306372310579842606983819422534483280289014482220046596409503966509571593953688429077896361309355413471348186110255109366750111165192170133419887521676174518103236404721429179214931221585337838871735203022034245921243569957547570377981363010336816517170032209253833060321688698989019736978307419739888369642870176955033784404530936494241333293558597001628529624368569786965838548527589019599377544931099021062963890833826327491754021685849050156169411980109911782872509332543789191689299429641791212153165468937193364302257479086039304555204787595550647840261416062276968658100488656538835611285181771483561730350721658135718172882556221004847898391406097130484172436653674848642867702063175861819390161124152468885629603157953518516522922438484888169181082726198493222120776015029831104436945794243370699236885949973547530076125887763682381885419613574843348867575367812437762003185268467244700522234839309450962251941115976370489356187855666011393480624321190920443106314390574756897466258734528977077908607717446137581496741333269182216088525485843739177735946493374835542694652076784861219612523807065191991485503697983522437373166161037586508440600667041332645988262547117596873910360697368853885307604959226137324339968540313102413876700788028463093768513789488857135144899889479341364140122555608454854367291916142777810797830530453084157464408230755172628060383958732292839506176345707005606208909600989472134575905806038182329337384192516378476572833966885818251352715861816550954386477104619863507715708257603235927945043157048367098174939886536211946327300500039237671906405419672740413141392155621912871292160096741606740220502423514760062283843441609227355060140092131468441306731823867291509574636607548819826134837456750928345225187858617588479637487824915065052145883210076677774069858881745058055014496810957507990745824275924405800391705614954922229471958501863197280965498779420434881421382927616247814243104512338430799169490736273090577312841607201992299607315622527352007887608489802646063452484716877663655366730042909750899259234756799664928058199325711125787152527242630043582771652803493233570637018615143085242813709618988758924800405459826871522865323685811885569095015218626946636709806479262470954130167608713424373873835733881878871276308897914358902779188042774473421161693356736837292773626001363667586434191148810925806041611318602311241612530882018608329956819533124069579614500981369939623114489006478794258439879744046735948760301037414133440397118784184471311472863840895743850117845878173601608863611728918022280492028003230714422296663869520038707682037554311068254879690668311302146600753143603837443122059785748295569399712353732386331615566965321215083141462667659454902010557393134475585722839141726080506655521434024946589576976978116111974032921412501426522153557028018560670873780429206152801259216502827647794631387036602128000293263558672451630915530168606297554318578845655402515047018202470165499701447984105803081692456099079233157500366210367479249903491974660462050652484463524020696672791619285510126809419112702266043049646179442870140330656350303586221857642246720480100702974980715368281272540748455343465889019478794493860413317330621644903447810417084586702067719049488005774646396255188967231311372775908992126342291354467918535727466705715027076844592424839171688570150358946614518364784477071223586458782173147258217913810498507190337428441141114318559365343869309419918467148733320594423066847097936018201561571567781377560955724127874683502613792662842946800524568502471880776647720683891795503329065381190362960306152489708913522940067659482670142924792435998238968677277903226693071915709138577661190862751260167988237620617805915652863360975900791646470145515196202120052149107207926877902364155718294911950840989138007943375725902188240148322856688608798033466845272181146800373733236756677973992817768039856876852236326670829168436620002744838470489629627887951853101218661419013445478392316408045521708992975158419216411872809623751435247881389635435071932083925823434598918998618452063351663501915544519352381222946039515948938769226009281722817326396840854803139850653646437282170434336810603481085916704928648990795147757253438734872094681050102266861181215922288425240786983562755362801828419951348495000211419632007336496716609647456895739923406381934789296200243053247622442958089673741890410235995182295373181608884527836039897507719645196661496600577940385531808331343400986606364415928977982278714595949280400945600569257237032915442368250460168378397908180117910009998452824492031681195081908577461424282965747835494277344056661320419642290346132119493646342824516894256028829436043326430588558186927183831337762911254970452643980908237715841891386315347655230775846206480093750845777078529631039456601496323132336797511059493957879377164247081096127610795875843209194382043947328449507634194037262337364954478155841262647855767285228084181976091513191511226852339235283115725821388996401030071263415971512873784197247147735824387245851702496063362403084128995888514657624956412754527505340451365113946624589494688460436743418299104015643458626237626839935863338082987894101944355314206865539075320042058336150138947502248801504235034573241373694786698744637017783647593540971863985489195657553909099306591101710382981337593357517149988584848357172428698589998110009400071682633300504540523029995999442407918681678077507782363953564583602050511046987433556831986145372902808421194728551804733298910681800093847393733232710474792485063455569160312345227493861061084977948064178527555148720521224696418978760352240884568303054827513818550856228673364311993259731822007257201879008056564210261874479962395719777955427043721077947978574037951605388901631891498577341368704505430038567189759646253767345946638776962548178265206665376999124756135610016668270869456432345436329373118850361946819458666841298716108252604796912895153385851612486506936020271860515365044490721820908878224610235870939191664680542245871444203828746244808208541816645266541417813034812250723684137110709410376557783308619043095841745511395260078013254230715093639398923608638470089564574127318671834928780646974134475447366714202420422957717092588707898236701812722366416512244207689843571563373144147091889197743357846918508679385105286482841119241442538503023387238610767220122412170274090736138951829274466029935388977214301523971405175416085556136222390030104697865975437197379631778187728741408550022785797744049234463437952400489833014059220781335806988231356846482216323285191441411076658273785596320058938876713566168933085696521594598320927740344103225667814177504950920138578382617277386956206904434443922809374215944159411866099958386048405514864439520519475390749559592401118194964037560169876217923283818800997651528786931211121636485162582370686054828088117899224514887936902267792289231266090864058643875254550024616874469746954730453739537579844355637755923826383905372932464782945596011490799398964814075545506602232413437721395477049805744428614703974969411466483286141239708791681392434777959530911322300641952685199889468553987807207314228691017016154493354985895582309959982307464140180419848158539131183233625104544157227339002671215792881781927737822051438074843852956146402514144650774816341882467450047982742615544783322738849378851620915329551251272382698330171306780571710155717788033874339428976956630952005727513580705311991271814982147441293439848991488458333542219596260195502553600924689425420087191227201255780006435754578369287393784593127573522529315161546404692708300348676496890775187448082910544816616188061040167855584454637010338067464453352525188484924986917431162673295129274616835971414877844812912593911751266244904673138472602076013604387382527249860337786688416173097176555262669810400277863606605364909101885071614474291395266220045432241613860990214288476708594613345151918688855456247909701142186618664376776762111823560135943840352930582968998277324501919938637138904353241583967752142145418564257747148670829314698500144005312028674006724717342320802052241589918856841448738861284743294766414713311493006085360412270507168233926201280968208121056838333039213231757369755333725052967493846827916935462656474175353436329967067044117954260426088512544943868083404229888885192153122074379991880675540002658469196343920348438351611527571735965706950977618266222657995976970658696487681959425752218969248388587187538186886741747628738387574002787407881144419440279990627117849940744037201022398420643489697201948299681151030846323707096216949171763834178199214567768403805175976270542077965740615261973911524937786584307408976808151881421488454308718740303654000835446609746703850577426751465719995744590887387398565239947413152369827208536458285683242653010802171656726460212750233651794895282357153044645242616052524024894308907530611224576387144143061732872886149826666677994638477590248800143358736733434185918491841448236022298395307074289398088932925162314161570202700599526150849326172114772288050134788256742187653129849230714750387926606034241936339128770456625621971219350283194244725174847452001030669971358345044546922104328757274970056190155476697205863121347402275368149163837957499930639411385418559627336076962039533396772514459430028716688766162798972859631898522884858422789414536040097904510897811596534382586867291784653808873770092972485330902992311808574892032675063623611417316412198055842473522248558223551513282440291702220553404040736416195381989466013803046223131737918994006128636959794592919687609192450448088260701845791984701423284285451516745413779545624913691063414742489715628971780524771123264597965245190196819240006753412905095061827030727491658345662478668867190739781291877643699398949544953238878500174969091692847579033771573373847253723472386812491867874499313281862159995165732822627276054148558728900175360424647204761138637964616196882547758036351576763826623809197889627920383900803953300630133865900014195959015690448227131819138640734174771581726259499028518675649817122592314415378584199511481351762008920908385978826889781018900901375189794804665569697201780202972015429991887284357335032552800295392025793855054396348574174314178239452862528928530894410255637896862414180416839040685166440850149797098922618141665581768412488898453150284668720975072916133582190515183930095081964790983606006077020311067754279183933442644660783430053171712908117787388020777041894454250651134792175935417674260838964140280913053091778693263255152781747160964599212169414012380324521404799783598707483717433187338634733891591801026474456965720486113718901082251108325362377456441252432864408895963209715034330564639133692921284040481727537297858464935289121643037098235175763387019857119343350474013160126336712587393934844074204000750004073394241558733563417649486835128636065412790493756061977457006612310144754057115889835217179165529266597857149948711314534226791903288077216262179326752477545391311736276744958213254704624732337452065310990504605102978590301948277715690795163902010941549093929103051997021852923109764411540114947230632322282692336294681367587094561072339420092240997714272658247029355579216608945901957923899820896433788628686445243944104866016138857948768141126493927458899555455052043968822821124908714742487326509308148265790453220392167948028416353865267810814210304927102678463423934891298525391047508821778524362453017391701078248405519501081269671669216243642710350039523259389184543399785586641660039199834064823878504061957730342376724806071170700050910080620723718755787313623782749934778867768284384606136760892341466933823120073725406615096439235409091252379616951914897113255748916815395790273110529004061221661033125275207030870707571086969804318052731990667516543336375658779200869961086560438842573032776143217460464730010856433021590498846103695290311511411814168275939752293512803250358692888613196053633226540277964551654447302058250641546477287354733327162560533897767986531866910647647496340266852370088105168073977145321117073718874216024278246282761839547598120554476697949801425942820877158728301267297700264990637063370546077019269602586891590401103158086117504301920679491730466361745926532979517934844686219652460351659431626561405840293939338963394510182046328366408054154647863062340492790950579695211606994618812259288438644806785141916430641870232387843455449780248512134761580863661590856471231925580341762411925260121214163425396587182208396093159935767091487691811728228381644761403139756959871552760382571801311814210269195329509436936375315368895627086938208926332288649261754473488669129432460103821766998605022430418951354610145645432705505082083936546722891774822026170719087233603076348491484425600377830892444072782493945980399987213229405849151146061704450160992847508020890845207536818139703543204009627230503712791648722576186522318105260220447717968516741699340600918778797713586268013293538222901848165279975914502489256136801489188108351833617766080612612797310519642077209279948664074261080813948279701266393613983759934382884082378309604312995555860249258168354924314913862613777010117781645260722311263865275379448259714680690446898791304911734407915928606966420074031036306915680179597652318198675878348953111134494469300067431509381049486451237246762453442470855739711836136604761903195887521836280081813968542516425858523415185527658820439887564503111950888185159649383115280805674586504322955691852169589903992523274156125195437895622373021475256606707474243205577351157139203705326534574026844763411318794343476153321056026802216213000093292358782608786849464829284906400424672207029310000680827914159039347648150861316852804448860562579844575460808178435249325075672957534786839284440369810011455705637764360198496805426025779658886664671497438421395509235421279306826065405305056165734155710186919469487164219402134426717464489538112077852055716825875255788727283557651986659881311787781353100593740425562690382572801320428856360486423141272822244251618699827249298451428988564131736107582376719120790012486123994797554679650105986159230090401050613598326044047919674838244034573524809124952534400925021862553541335546606227913336990280632678480190692247070274238576701220991023503765456152289614249624807795937361978343749573119030053174603870583049081166054287091526363566954185760722849539824990272274575923746651898283265484946889195972638558009893987410433812385508128693257934678163079543185099187077127524896263474825782412303303096825642833465205842260319042400754240187013720084166982662237147924001446951955650597874601350723394333636679353273121967765993502475883812289008860283413548964010667271812533067712947179634282012780897334627707472806170504430877391832236795845519554671791197600170693434621652134274606010607290196026747427215529394647603570958713596476446103810103249805778181348055717058286756117372764872414334008283792246430016901097044564889601586526755853062131530300765353882519042957965215440057618338792374334170787095333830430996043906766401346622942308804101687117396564210010287851927123262187184222597342889171480284234523387581049761878956117633364608596122982895270997337470453164100547832519310202002270756557785021261795522177642441288874004875269320719022121196269900865328441610499531660040866433398775730469792734911001896547003134899183443429566394324555357236192203664840389482924807098772264119635743245966338769338696168480132423740235783488348225724045001638968766977104747679710847020282433262042174601486223795089012503712478757828417909821130229848498407710123528564605907637187269848047224287943716414028530266489350075364868295822149783917082228291596638254438335005681902965421556396802126419955113903581259182151846158252577024540055322460506564890265429048636796203116579240355872419588434106541435068638132197249288256699174092976745240678885055832984694146108847381466459736723900172809516538348543494046735608545016461409815676382617097015013778887593199188872564594603745513026597326309900629227376252259527629809007045829760142232682483853991944369229473016484198689284248516991756569335183068036552349526960092459143100765373429359978075142480328409557405810694551430783197672248123204949059195694684829069688228602948419977815235102576962152045039732920346713697387037884262474248286411532720524916916646288427622298925270888920491825064407887519758648293560495931869526335887459142377603946366818888328230006225763247083863051037454176293596493420670011450038911321714731859523110033052036126946097199857879149156707464632582440109057476471737860609000673331783345481801326314112614919541250051842703232194346148199546211129908368970069269019948339358689450266873057738252378724469544786713827161803192764648816194506046371883320324972873350988524264294966718835354203869553068707391962018255030526474651011398069995116207778037591734641808284602929269231166289461774237334901409537291180960035693578502736016347880459610257945703970545935529357003137130234526828012302454659385240761095435844433952842434508590005661217949035889335397615371588114864349607919031804431793325620487311665950649714568573195593460194377865084555304466795771600613685842061753857781412243045033527428925168633113261322428453760673697587410110889384573820315078629765875914587570086237901902199589766265178263284461498247425331794454092839101709084484338567630039918472613094235730932478199182317706968291438429613840519437145616781902738047272513382785987348526795082287743187589198785459478682100181842467941909014827088836136364509093095845404481915516420800677962175557988468815200359359026061151488196319686397804826688593802003819941635616056145523987195141841592886195123880723448011522393954405190420694555588902737282688946671906814717019924625753697704427149611825440014755442066592283734350907780471086605559945772524965873903858595765696918838418426551736313663703958892038621694508615389728449902290548757170141148257537944166629087621062124525890693412291022727176959738110932476183278915404540042866215836594440504968950150087430998224475258544723897181592532305649191086299103306089614196044948203750295568457947002684116134084309075665046840330666957875717343265068589939176853006141489979181149490729267543482405402026850402649827969406677570034451724449719307305425266766966741301529341160109120777122867358224391698808785878111858943663032267034837858298502833899425270529058167346431792540337374941805141348495730785958926414108375738143739248737207688913111205716460507399354646123628754582603866693658777249633983183469336600763179797670418259995604682545769042860267677900714674315045986151809165136192220078360428148704293016011113952581625566288215510493036895068881026380232061751774548759625357466774211136349238768133666871633097955121506366865611960113623236874656050472443191997690494711849595163775766476531769415607496078465334590884790425382793202716005815567293294109993422068228352321985194123484475470760712123057156901331762853214186835354568472748889724858524975273211749970143788521049008132955966549460300072088992697502996942881607652299150581691079541456939700600932796191360700177469063719846104811932287817442810316032025869519066482516793730739146119240811372652338053370704755214762515949569785954967032378101296140284073157118097165542484688360484321054435476016347795384849224062771184559715175304607025845540033810413037622755068848431648278520860907636370758392723900796545806629968501980531173178312422431433932068509927325831642530592794835139838067669839213943024653546717779164431535302785943170863183523788465692690068305659699069234123587951848947030356181509804996240591048059249796193688387477511583589541341579499733716503926563472822491243181899513094409828510692979620882755946012183302263859486798592241459081466987554577653333572828661519668909426069878388732945710425369488018026169890474033680710500253943273630381211625555979460763761011076807445239741699584563509766356127387617048896816270004020941888718658513444837573827410805548591989263962227198883009886829832586193063170938461181948290214723953820544826321678205162821786064115813387997123612414637543286927934204763184890764366475507349360952647370559515628077537085473596663785878492933781626915278215021850292061010012051270699371837782794206740424101041268350942139828692181481596023674881197212560068724799783644566631212629583889374220386170310284593074572708922902741156479534387013426022156507333689746093465927246061185079803837598280350732301415967377752961544385059838923264548761625563225503385879667372557784932098417587317481208432691882746938621937622083085271465678141769394485659132976486780536841996686902833299517063071759125932629617978644712458537412778195011106182269417251298351135955206361876038516977884519871513120546858002583104608663837526048780395229918576755257285183378199995222141941938507203980545269301124307990669637606239113114818806673999768321671415455642576479600335484405846177614879749382977509527965885250896568147456844894401829298580773605581454573966783098336442463052110722757092390436607776937268081813460096075298720118495261826079245255264933171585622196158964487124708664253295725050980648872364766443953601346585163269192388660161604081952563609599661622576984709280652533532931844542640401301570128432114713620732718372755526131028578150791920811795751220454877633137128785770020023438819529682946279749801788925625470731166760870180482224909336769715815199000246340973368135070733504131934824149865530256139754659540327656826179656510209770644211141616095716754047717683104727086612414859315177505952265194012122170997078921654018873421012711397676003996016775645425565848555916167715983025620622359817880979063228099908943218634585183934361497347612174629350107819228655506647368751946836889088833149307607505363481204121654901576030707252459637739354477442552108090191235945926260088010917939375962226517128587040660555642930919524248512259308252150242019622723724735991372743112314881792151379083394489021496625332150177554973392142125131882136255590081164518210968051297048822888350671369353882958980240854939152481755663880590227190232335781660001057083031112436612370746400760279973971966785151154839922274501964341707713178156495949429983348159967074049788012650844991083269014768309285535607976558545168838813760928176040106800686353717867412703043441052982047738755811232162735168508394929792972343568671970538512428361974950025156078384851321777749906645504573754291645552362079981551778389142972039924531996556359492318045965929879407053310017874346896051835111852072900783347868170890597276833021088235115404207838505061880777247924919486937465967275564923631857069315530118390043279516913795998350620107609589365257574707347086645182438587382346281573200930674321030532194865022136072064816437458275651049273310234764950580215162687109787139847450112108540822863545034977637532867574653325299681426936490527314085409571513608444380515644080273195976867423634581514726211410664230498481636383268058818226735753256153414907818207889521582577423047276357454764870837374054616321725444141152415962857869391223361614179887013422563939663936437563041695652765170542798076094317680070768460403996731003272761161588571733332422216059087519976881249768315385363891056094080706278342178300421441474399808263237614604688849835814751654379321855571161958718944825233773353605939123820066898825932690651276817042764369462464877193799555516612297678695077482114396589977425939440475439790084206835621398283543068785875486818961834077607531738194028299914850042339810852873569672582748983140381820151549060134204035110166212738152317623537271407037730004271796528807713410655459960498141407026318035691038815347782832084555552472961099526397685602635131021990040460734062546024320755568085421031178527163255021609500350417134113844186395358286759270828472381792411896073225142863772317929473175539139039008471553616136234805278918991161393436076013679496905574515593921502802416532231451827492428270726964892939715297347796796364939445516166644176044081028218382422118412296667965379808487598330496779292190117846598413764775832837719864867555593417758320314281978888766144460078936130593383552508827622030933548297441371708542273589518605215243552082037119337464995884948249541719342324752737091308519756019292819645346330281403595795319193911108747298841398756705633232231349936413583944785917645024993842785446475067734540267716486595144876071891271159554457359442195326133096522414705367012629653942077219330884057993835461778608803269900270917346051697861174139410800467553568373421915032600980896761044761213319201198136008078790886396925885198232226741147968101860101769202589629754915314535461647148642311019534647975168692785429177128545536484051863993663540277039244205394667391293198812215108539724370384621873356085594467286900259363818437792708632445442045682269382221689305288307810824937270545720351672821357235522774261187065555056431572460725391876847044459728045985163061914004322786979666291196979571364161068869186540439301317554274730150195843144547067561377237517054557622453410613190686011824423839324896560696914599221055203477061554872765327232586825490124374339261846953658475432178635783262889048938500964240236717962304452194838014819676692690488835516769942381746078958868399842253930858299675068047373899898008529415375975608701356609380406460979022137204769835373477935791118200020973903827846280788554714951834831262254000194661630580841222492307300099942397872117774212750732500691040044859962077345245879223849704306343154138387137006849406042236823924678862100084279318339397553318628898464353549555601829169489436295332053560338649771013052359951908944631169562051911312444357380969268226523557675774697344561894655949596915274205317113551858713383685782482051423764401717127109560609660763448310902332942793778437462606967634617844914299233412639254916927636279558208038306605819026862027117760117031442471002976369316981302951542136788020116380046032469387239956321499665081073565293494233156756673294633578417317015790871885867799353145023286245518295585863511444673872899982962525991078262815151472811885969303891308441514856662159184675659558371862607432875215746556231193415878409427541511989296987795864320249314484397627708274872600288101531493029760622017425610923340485030478770112573594029130461437267769986161146353973888707202126175956025567995157006275666896989767883926111772945660352905279784603980997438659328480492420860341517598177286878389441097336317259002745802283247931151838572097471562939813798479225288472261112171551424495194809559738810190795675484072035293059119290140331914379131470631007635526393434268863800575138526459138432870490155346021541485296044834061393572884911598178612338883160251506879542246822713759821425910361993634688075224374581356437968455672153227548753283370987328321664530704674027341148600230682920640367473524815303844624518443403288549963722896749072970364062093180455912495705534263948316470495017035123424025679160998221913141180065846415742864386343520511314656186100377470410445821260193004910826236440218250396567941457886992947749093014350440654356698495915493152918414866466578155437991844325298638349841358649251868909673124147839726365233776367768903749768844176222793915582411966258846174016645026901692436043204416723944952145509932023016798568371607691282613469321458969406015429865927750385008655564617906060510336727616539796628554071593562095382883609779975272155804029297051173506824093207909395850367462652875615140644880769712000613907804140889766222139817061346882135083437001917463806312123788468023908953263568536703627505599194851852838226309309280742747130414887800742787589915578437946868032915456095196240965996660004252492756545533300280207775764608082188972969321595525995238186765962281091548250773977157792186556646522417808803846751486930249238732040811244705187532391016795639646496279465625099967150798595483315887751200496866362660547087405095051611446780692006409350508811262972965348254959268537586442745530389880999265658044381394578665635437955796603480133317765368796868093620139387062727111466572367968043053376042860498450631574727922684721476269830686175355291717314289370532269612912721870001945925708628186232215851307968633563522841165561625562868188475935542319552712035200831291300524201635639824002719017846004402814616814788745892491595999158088565250340269290029158838912683956849356778293434711638718014347517524182605894508964351419358590955104429688260099387521778916456346095681680408293431957885009649948776848139469137216614982757572183926884793468362639669384534523176595379623779351851141880700610462315421839760700380377896191417159731817645469559930839629438350173479982302270099311995297684606667436748259919933241227899888446195182756483619239877457636625856009100332283515320671396300985500564934894340232627371477678708099153463332599462879532135594740373079640512408003327801090820858368252009129024417976290128604893795361828876021668917487205615156324663066054008815637446596601533582599659332963365820919194731302085875480184023107977220728545707163004026299713966379219315530750797102300889030165977237781347061149700257091377775121277320899268807430633705741293223287726042324431862858449623268949357049930664617137197972117471011170418974032743962595392047353480266742400847074426263590116867711086118098730880848151088657106682594723606410757436470839932584929689773740117808576680414922524241474288690023576552171119017844353034538018111648147723376201400848023600178197793363688877392156587734177599561117772170542815001482362474123899412453207194539323642195285649511348269805277937624174029148939949858328228425333747667638899745654753642557914346764552514084976027269015778128829164518440624980441764176153485371893888101435570517960899214143277697492638733494132628099899031450309082796744662190873294336213130148631335941247934442215011238594172543206118704069678133648351002126672758686354881370289136573867575631863765279993145845001199364362345231612593955895677907589136024606277375882012465566895211274788748795468629966353034621987698456930312465986196565859762864051805029521502438900705854757251521652411997685717082912285502700691172175035324622640614308854373970141883189906388698741306032904123251771723360618456543740628383485705211522500004031571105504484264833557423156838843255405185295000463067154422236587714576059173215211580754041627905774203688912514365170041745262095768344213912872765311094605599461575418708765968641826201305944591939859442517100071322222010828052861827113332836780998584053837102540508488094069555375932512183278112919754281028689932061975809379646690356232136878549447157029140427831249471579176614627638176999392142710135988889418260488526761979167175853821338561600530795393263915666897280782494054707003418014490694986475098362815320037214083803759027048037270009590339230592850459543858571895728961597246610630906522707628065118670811534697786552413720209123018368453112848536694104195286868393999044781983475255413258019667655403078214424546260154175091734934400880985731962047861378038058914647250669179961082948492789464276756626963422783587231589080827124044290857200931270658554482549216075435693706021359335116653140573391805564589202945454396024464530141197530364976597043346495825168212177106789974249837437699506984895552609327264265360957223565987001646800938663232840664075764832670795842080380679156940335954270969377825910917064037725457241218201183491340556327715511623161533999981863680725917474309884051079689987847400706661972984408383622641139923823214726045852742203044397853588878325191007675612452515219528852444700865173824635596457432091119337275517140386032444234866580700741066241060725580684413848426683628305872987924212731643447158507746032447362486808875949184874264249228915918003589368934859559779531668708309256537907894442101875048254690920958210761979890627637129215853756737625480867994119133806699375640085335566849564007292516921225553768503298345429091076680402452160560602245915663063457533081733142378187888854285121820231346433757758810924764112567984647671132933110960217751725613526479159636160524239054078266062988470458855200494838393519680370226146842806568642568716951339147529321031668963728432614866062872161928744488095135620224573662096013469175665690510906534050591518345021383010841921639692257096154239635199909543086906102815965210539761751570084739967779876597386712251926403182955717710092072176295849493837021119826768419261236998299441056372554369655939400497421697105151709904040024148336194141857598437112761766136253624956411479519137430427082932929298636053476832859749936038154287284248146048235811529777765695968386069527136430272172985247015249229015190656874454592175536156050077086251537780621079949830272222957634009056786419371649787211511982605301352521520488879990645415737143886040083125201410178338596641987186269390181275694937787025415823704958867108845071529974626148966535511120330353704487870647167840280751554057741243778576152419455411144173960606968005887618933210202788397422002333333051936981000035584496816282859692416207686587719431428935937554002687597866253055966211021430405394053263900402920859487040153457415585009471111764614771150364366695700919314554248527510258203000201813109467159738388653672177116272944387024614038923705445216186822792487991043459017657501871519040709657361349157754206392870359912420800199702282485497737545251636925994848369547527593493267284743816324158564728593864599199600172046579927803591054381191266074771199911968733894300173737049086815409517424847336992971212534858818641657910518522236394909105840299695516269954859825303142501447197754896027405736052564797044063510547032593621914485297962661085987028084546005526502921485860504250377395045821532394527938119981006286360323740843035776531872225271825432683330135137723590652651154089465315612643996512650025848736920891060106756261280731036672436893107900003368115565884977808671845790288219796736746004927212809630031756237868953448734153903951711235210601001542863107913122760563393253376448792934479261615954003570019994359784675417608810866337139876945278691905957005736084372797070071552074945350829082231899375006730849232517918887127028433804100530266996795195698043438728222104232141401210947185033428618907359336058061210893766007718189445030900319977423297372848486040652181798587808860215584412790638212608273435417931520942508514063793960724267651891907072674530471092381113572404661060878621030887074873588105795965310305080743701107942233846623994500305975921439267814334590216922908314333960632825350423707568715691939801595377402543269750064612516449976273713752308360946968231772351153773333584110948321958447049467350085358860896047776186525867021188393732223369671165411595511619567576571079378211994560312515079691241192636872845302172676838591467465830763235164070833922341028158051458594020412962864657281132451766507612077191625372207907945913144512877779692117239883070567644877223661142774910522230727579511521184969291199489822768024336000763377854345829104876773079119586126635610021750393981677148677598664952118350243190255321906243617987660360478004492391921107711803448113079414946364031954685744665509403154224074117702605268794301078660264917561939542191714532534535944222233408485615756188733210599167884469474154427583649724576584755793698933847742224084783852182821750509412911635257526643683394937097031823801216736727814919545197283811943364460859410064451110811276818569612222626586051077120652161519002191704103184663530245376103500602832535997301219597061702250761059513416058525444512739908695652360652695978043341434025228751806710354390289485672101096215064075388923313237224020610944671278889068461768915428511175150789502618701734070907965507737471261422623197394875414215430495110848771274528934927987313614468824580366226752703868903887805335442525806749226598045347787099897275169906205144268211949150032025409441438439328925210564594897348581850660776304241207435427779446197108786660393658028912992804389560105331332523410200129453677186108522013016254898989020428547168707147089458877258542486168898716335769390662783526546489774986273249918272958419185153844294814770252344222788725173501136793391280993101744278741284854993483810788756935039195235961295573694821502961082429540753956771881734527165626122411805790703058925193975552555565333788871430399793162504334627096218672543509507220736789311397255468946976029310708540328707262261863234278443793443693101916308380373692909719470096963557904795407423244509615682738691466773357186685601524302017039760257456197817544481383607687136692868207022100959303628435937652437006913398375581704700945411512592202322653761772671064473945936341414604422512070909687065886315677853327073958962339187931647281699124165964139407842479238286769233638755740183932947996174231518233862714897211983681366601097104919275470187290765424654340096051593420534986389422146327904113080909854165985699881311203166408627393865728476556888345580165298327489375782367112824578338191026219190196631691569011740525211004069603606914444706348416056909362517289933425205271792903894417167604141155251619345293136365664748628935499165644005572258435177897332402956809861828216307279743922068517830161862855874335685988069986945773307372830044281475500580459132752478766242897767108117364642892486272618264537250373687708071700845216417342404788749380327534635281031402207246287112989680907877627646234897510727729570813156241072253666098535233643860865445235358070604350948566368738840994372552758265305841162152406636598750022221492627352184423223963524018731778111889152213051372816314952928228860920142626238438161336729505460268023123228264152660118074232085844801533158876846788970386050514436876342874281620682762549879611474441883161810416557059125145974185580871424139920931906277952481881493637272059366957782171018847934108827644833676167957600788228179542678195887480120651322381846435957022374916589283316078244234006298201313739718881087659713743172106488560370588029220533393341419172864238932057676877066078331994410916823725574199881307525772668531126166447465888386709671011437573749556275551716959730601030931174494533027024391223829890894698517171895572243336178214225213614329381616612306419468963492552923622701666428674615398369180854530776947033976323382460599315952005461371537502116093122423111057961313472689560694844189098034758034641626063386148603917563768011838720868333666298657508187014648497109665645802924678807599911937855589166991220101778356727143961823420859506469369894024614365496876387803726026126432668280503988205638758153452388027155781424709707771789511353633489998128838094683607873321210905550125526019139841901040664443797450642953424532904220400057310794709061993696957886717134268260757403636470047907785624661639807432493454178317680474220501455660250624987818277950593843555389340627874493423054430663035156155255969089941066984024251448464844582841788170113911469514548787491074687207991201067755092458549647770880924899156262606232970630835479655173167714372036232016397305707603802916284750996419782091481478924749889356529972380937941479993784093248187223918922416969151309803824930708303395034669079692100460777999062229107380834828768580028714587202603518163712579763656231501760684235029159585549591537050312552781866285743706779001088281967222945838880449153064765758874467279237618075785498824178277028660580393025719107214963689619138608921722822539415298480671204165892470761207553022832638971093682689548507597483742760066269918964330761471437458694590195420507712351370525396497381490144712385626273457545382479517476696892069663528556709341332760182367914653472573391887339700079393262983171578292326193336408935975522174361988999114097509873539690110772908715956753336600954514471859257400405771875777511449281629471108251161528635562457944207966282991555933672597227084036810031939956165089810517804452897445987174749406557769665490120286410419465300516262194159543570839333917993615728339482819738835018531754522055803982673963563226101600139802852112198115304399001724326462840271928118657538186912060316316807667907751157641031681919352129225070751059196602497351429640728142950474395735264766390620663270637113807525771198868671745658157051661130578709545643055871829882837283962463368808346260666385129739709408380278691452712490096329711857591802317845388391226446810259167635455441546702399851721524851978516292022401343422588419825754324433630797664693502846057619428723899863294786840207473939969961526670180600547149684377780731895148806991652808242584477342009789831260890881143658214729268413994476101392232968453111058729957882685755962810642022006645482315961180889931045453073802671894979834298066139620579835957864487383029982927552454947329445625617577343638253401169157893954037996464052101331107473039156482601027176632497098017969379934291315567713050238680633619719498308088822691803901450357851184620305336212138755406187926362207769660698088392513494540762198740221829531580413588917313168582098938608888493834246519354046037602552184771685045572832555013350960540402826830770844124428737172829729936755647729131587414348869984326528380421164171856270430241062617234597564657235634879581336835853942444162046568908821762101231802408617134716316608205086766781872936318527503408345711120366770485832839083136274420205513193184549210321829207125513755184734673199039393601629724157783469086143946908519903281979635993569618203954975209221071989496550000430407262962329807574225754085665366311209052131329293749292050659351095154779337110054077012525487809283092793647466776432156900058981932650414564734914272233151638776356287650461936042334539551216247242957473617073170911751331688115775340519764671021000127900169840382400036961952994636067618705314643658070293983729843143129160888050468383841691418673261227251177222691762165253229420173159309830269242142577663118924958693180713933815294415995066352106467358739267848728691191737214040615817434567628161097185579745541416252975459896338955864312342011794444056632968663523635890494875659414244636735738550326923904977806115621993533426983950125125841321068797520749606291761244110962233620745562473761445594829640980139262654079699865949728482910682355926295545215181468872283144038186333714308995148260312860746598730152317895732436719555244400756198606324334699785409669168706068029808305754280378550805383269812465857538845099599481546535452332888758385522864394195350328108544289706029793583416503978467655084837134466981387501959669259416146721367077732410458808726611449665291684138034588899719480941238270863271108208591998406153826903705058620603086637025552287226476517725637729333038352313557145969723277339492692482067835715344373327715411954751918328512805201540117569670576468202275150883634421184805801810034486800163031482822719158544917826582573111454734233632537378272592783909293561669645521772653818822097459845465529515300512452476307795310802015751539749053552883989913844117653777085348479137695874307435349678187854223220171692914513526250146672892952836091065710780612036496048635747865240450556190281300485625034406835674349932972260669983178514659563569151540583277594608865508171392281555847916053626364041208785073561215070559976792055658892584040933686830303712457138928418282925593844868285250566478461279917566488080640860895164441329697511208677082745408848214531254325926853832820175669486535815944445643540820852745864613691776436431484069319822533625024380674875866612850827347280642743654671404612538835269582467425848944560402289309853906373507493132070070850558491582261474960223966675974821258631708616491617731793741112905809369707190597807278676953339358678078961316346514356000293894083865622591649537209763273194210713743048707972907512835983737789823791580043900653965385825008623073275297474978922915161415972341321706365858101444729609939603666111309283306781526980024229023623498426766882359134217425844546658649435716815373053180702480612606709850835011733587026677831100049898150899782862228852646308964318547261609199172678521156008959205705554982431348401675157149615178180171134033965029558498842555345946247336998362881839984843473283065069759777286453842707973553153242076814764693644222370184979208223638614256976395531718255680440726760020173947389622745171041106061331927876752701949833530098099504957363718635060940007698351969485674832970505436818405371335982872111112200640630661428071476467000231812623613618364150058341811156340163976195759738214946863940738526126943772255057861455602816595926282496006965119253691802617606051095136347289160412896782079507328130047940321416344125589079130158208861768365906365403230496656625632915491957742330802997000483056023074214460151674543870894956858750629012277085505729819617148161140523890833696530779322565834413699357388615118010487183519400142540542711161480150536504166530046694710631339173935189222731325943145083583390925892182391318885290032855659896210071091021660169435376469594642451759698247074589769979252731156815515208823227866321534208577014131096570208888256029999707691193523143787730116538212529817082092373568203213383405712086133867378401223793555753032060577208742377315344906096946299792635373817529818814204016906358512757928468659963801954212598499516552982346880450158811044587351226647507842950280134276649935347623761339654621505274870759499452853758135221802541698588340984109028124218851308163876212725645852481392721124516214593765839944105229542385960074050410882841145083992845763669682669004198610433894866175293045171608285326670248053359573984458772578540539434208800375412135412618866401498524405346679664699640722838158020970702209708852172312499101124132868905207063189356846368394446102059401272707548451830439158526139548710483131301045914735745404786970865720434453690201179624102936080619577122625263463295876162010520622328978936839043546960370149098583146867187453441860848737742740774220237690033279787187019296766532082007113509520381775495860432557777986651676958343884203373291785166510811797641158773671589543943019351900980221553542837667690312342583322394700776868893286509111780615991211495493421296609574290268088137614142892225262076407387453085539612767117189615036333097217815414090967077166064810667902264607782382212271882074494418464687267131301087660549777753230032250470567432001098977562031726928246971188780130411314109102654048208309537978027384444130883313492384536938966521076129552317203209526787985595329625038660202824283434911313935490165531979890589232815021201432722468865013630697834637331932406100044041114947223416458261657448203948989624692409552701989882374357143151005368677298480219214259952702018871464790146147264670638864403775833160569692578173929052246199250538473986105824143086249044959032493733391429065612968331702259471033586465793923643439902123628907604311537129834766132885600801729568278812131138727833095447846668667910504705431392630342260526760347719362193848038086065288072203565882688667929372924890562372161529902198140629966115769506563748356292042762041020151023973238622381062543165696165383422905076985654333649862565039335252592735205117955260429650145699976309582457506225241137210034145156811821196655892781644673310266854679063682110353155586863455543862319660436934751316624768576476531665781464448604918437240677773699125398833484184335027240182450702446589693767986264542650618179107550927163715295419927488435237486716828425029224345905072780592597725269493510125410470314453047542460582192225623753580654334816795887784258284068080184991872534005536852398789645926515039988351884976396360394009377100747283688004197626934094356828515485581700980716612752496669683580339338728519404360971523647258479178346147428882092590417219655102639291078443321807535340309417026921526444655945436210938579876240443583381048194268676197609426744092942928940869896701512496892796117520528154376343054996577552816750664365682682794965364548106489025666241224708641539566857517616249401560021522427262149299782016084581650609017489556468440884630398014567787234107134236802785773699760948390200191773472510803051043016681655375031850686900715379749413735884551094138171641409676170656941800325524245679837458033522602087938413324327496725463958411264369808141654075223126036104182962696663910189893847232586552964607651986296927835816752002863745318702945385792740959263849504711343336507347145411274852429976755561054903728582322553356483535783868276274354794685216385416927686923153483874133486735031557914120617237522857139928023306916930725499663876624976493622398951454198290581815810170318573889450898684951556508849418276592794777761192993329309924605140363581743828083541126618804699973717604592271407257181862571602283884728239571887847935715965431682232458635357114803426707379980277649912828628742935512133280392842896624583032434635449025978964575686482011399910252985196319782873928047322442142012184671624076665234999181464423239010004529163191911570495599316666106808555143303686920849963304462260223847032246476146759603926863434880895046359246069597730763415514290276660307639277110121205765899450497089475223100350424515809957189948023320143414969589062243193973869857808268828009601400893376487558156510569901235364421126606029365968262983604091333935510994091614952181799464341393353950193413447857021697900297848809202208678317581014932880589832525563697898755113098657323644321748634885573222658350717096771660263814229336174692277650624814878677084775041268451201286648106447804865693039270557456800869649641267591338000425102831076913994337636478778038323659975147477154098341800991310763045426798580040484199319288226018544513213789480125788653607407805778952862894419925506810936768307983743890661195273190175149654030169393167028593443728569395972046601342008528426620057209256237106978060383785946273987673370555218475989342982133413053363493500565613730886484227583953459298526955810493605249378219354591792514233965821515166626858906449105253944615562833011590492891318318129879299753812838183940594647317233815083251125260344910392165679179915331962690750899548825243841099222574409658002003788028415084434692944364154206139550285395677813178273964812240700620987222427339178315688375897664046077286883881585140512663355381077639948949451916398401415994296992337119989149909875117922335822194410040511319734578214876695347647481219132645131357609079172275416281050361547849128012371590156411496358716000894434324720956832957272097816266515815555260015289465394362608506284535572979901087507319679311097513848458639451309875579935444909144652353900624067117215799498124160554302018436412521072815171925687547472893792123847954109189517599197746545323745421973013260736092931216605615434510547296436262058701401035002264418862941295960403799748039773966542897768198188525148777185944472293720633065060775276463491687425264924838156671206272403860009092367857764926278457056719501231951270323983410198487434548173309924538551366411624868064298059150979189168469494632983625773806895784398527487210111022834949645553908300091843323794766196782807130946552727594411700769452727579978374859194209707288957703518529527373269840698159217591414167130408414568664435049392153323986248219065784423358652519514973833823651195182648651783024702919650533637438006654940191573573554726931073460111681358207797521835581455790411990040254351808053695857856107887487385555976176916817737115955321916811657943473119917679110048932435438583209433535402794618622663184870505449848861404796146231585880727920083544904602138255017786610208744374316791372057407643763876004078000346424355069897879780570120618094929773634491080870754227520067562397895588275780174603239879937502184968945666731814351471798294808626545353981015616964340295033038951592904084931625506536927430307495221400505675989653815515285468872165254185167603473437888027611503663490365570733419601901554744550915420535942110781687844553975255514371864639136017868968376512852197914274355057162279815959140475033909179632002417970788494716329157213047838455263978030562146725874154032336349040191880840248640468159483149175452408824089770314189636265436673684503317518129056833783928084593987091103301745014404207026591651277931765793305175614961835210842647627897612182684784896413081068912194483722475303768325276674089624685634601915146952220103186259117484488235245471781730902299369908712338819855588986088361701256422684650893802123224790905402533242692029732697584435148085753252863575630399556904776213364685484869495023263834348391930975383590119707211056180246376202108968076253404562441242440253414336319982318723167421684152013567890713885282166824347904319926550481689075377834063920071473185648244107485683537020352954989469421563154850257635657910263450477521532369110199286468835876326961473363582146965522233347318134973382813091376261936310577825348354157144820478381838960957107378217771656204078769056324398950243034860214111817077770966410183680892634184609780337877125264775663717195442190708539358336029316711328966500478814731188831852656534536013478365497018643869609116535486756709865554270558102015959524031551592053780851635068622003943812878859845997312656917268302231011256806739320608469507149820074899439733569483213917373801219701914897107130667814327021531528011595171995870375668348979561197769873660415948178337431733919847957918614884005914471527117206172036777279837795469741643471939333820446652367026846635946684575360309146974187605528882587294039134467023373178411417891039600761848479054212396285142848563389376698671394756958144579278690051729417207423355107674133833472026107357411039581639217618022260075124302139379239109792399739923368321793906147647610502605863191262782090506418543278873628303081440851688336123260208043932409643189356292798381316935178542835409496498741737810485275126645277417029116272794308827564733714268268592877335123009990764094039106737843734856900865417296305234440700400182777544187162442244583527901952191453081540363747035011638757492628872120730875740029325384149745059838058002318551578785669986679300558364734592095805263766853158072680920605412814727670867037396140829095227230659822543318289512313424282489662028343737198422210153667953619544481345897184913179317087988318986639988642580480259585882304445582254093114031072353790832122282268748001347845788014780693983639505477512579236727623684158014149334401203135221795197635397216397381648519053183865186861029064475883554851811759977398506305665635449838889694419000728908327993007937343216415901547458331184869662143480628060500401137518720002812105583729808112702010669819649523223640477272371999161294364152612511917195116885674909710732270729548831128168956602935275666693786259250005228704787697877434365513450833142560688201804013076914197859893054239798457736351331597033064332753769274577052197274147555050083538152800028692914997843798595038048231644948544624851285745630287146849845267519789267575283143499875027269143916801682491760905831136892236628363003210951806345498604423486410897973876745059649803022286871293490141483635395217107572666446400533984748861127469774971235202659078317120770108526552224814767033096586998395406467782266711676711915316239210731914628537269388348583953359872582706121752763580206094294246380490399130264938779149529059292290665909925862312847315006348931640390175121883208484654177657369275182140393085501746199967110141563623028809289787647716621254706900850944630132874669475215484995337402728708695150291142245439880985054430230675915338278092150713608582852573704896972693273821335888290141057233810273224692625634539936191597622383824188355160712823500857863664368174344113055373808910092947308938259351794805797515993321018261793244420360403665078044448234585217679212065518803103342180331130205856737599381399092104048538967477555036982319014365951834913750806531556979860331062415699030930887230890513464088403269848260817121877863581391401483576418669066722109207252187603258843978368110372312935231656239216330172131249688803732708377346173128885374456777262252482641791392276857727793084574190344099181366204943451806042255768411484813701216084399090680150948224896599555391586059550579420297444344291841272829134756231898773293188930289081506438257546061488934800820204362309183220440594461670727702462076260466545112745042176741044916024080025974380663481440742134415921318958017747549355738094415100710331178121248743120441276950605708377450466789802837986051995780158221192618144712169569675824242513911806553632161348393391725282794729489857215838022126589987631535081662638464975856067920551584062167657180187960454398863831902551920910856139529274722353986290505276536023565470431713083588545728008194544518450965330743462178294284417580221785930679005955847082122464061056612235531993564720995643040883084280435310451601886804503821798606986172920814800285970254290819884913584594986505161504770969846620364878114180497811700968976185640711698415739230508158512847789262071629167177554566342739371120311196145005874831195469482337826453457607284322396926861769618242568006409732909231925791509454111742344694709088342201382969962421978086303663159014231040699247811178874789551542496101388777071703127279128551155555991722495779484947213445623826737381925418563054064524722511257870219610830963839050292594479166472019978595255100575570013792643758907486319647682147041002048865016988557978630364693521120249794573064091640043015798735520808113758347626812944770230914607139719259560126110590164809141473484998783471755999031118677098269034405396094354571354789899469775346303919236511039658381222055509932558241226139055441465035553334906525061801172541706505977464384797479252961161778562566548119808515803638215642972788793272920322501721025851654437038159640334601892020082145507908976557416196793018727328473991583589258804618710390477667514491319365524867582434121606426468023654893407445648055131738901715187488185076518200891983013778515542817562794373261372294027791130071479423130086703951598751456277917707818057720161286897905607534315840442613650624701194918892631976653244341125261179769155446762659976617511991112104460115864757504197204279875965269930788399331561667272860881425125605049587062155432928566339106774598131638727903553949993110226032443756546717462931897536754044786113840814616192992910489456952204545950708885423655808519341014244623634739328500462453407017878781001777799574498142115310142071592075801106707469015610997072734118753018562127771046427225871974546661837777263787770478104960340561663158051252199335939516889109081510511135235027554803622761334625794575709357410066992686608681040887408124147615117310942058181276958904996752405499333535534378025802944792235126744338169079254299461397267838254867450970236688309624147471160436412133426370900971670114946236999863158857284118309794132663424848963787843861518248668491349715706810676691400024176073155997384379500687233967012067987489763029013355448772681573232544132109927138459902505234554918083722628164220128371625390834740838182999411122022136623636818640420389030202516480018572114004214215540910984808469103411847803794454723686745277760901424797005180281354003941497581426092413410733827307741429383747392176882408828585882057828681423497088709659956408222948571250772169643975329387279849908834147754254315992206864534619951226234210285976829557705521313731369634354840018355486728532357223092435437601994412387047208181327160969693851863243704764617075014969782214355287172804467740347876932548897618822608151477247109971859614661861643502307340291805546892885878088429662339416880311909097661537571501932970112257909300633957385366517750844619841957716801444941188284377199017486843523101187910972311169485889681048900683846852934358944100875422647066952047791964045159438383514402647083950733385707298710177776213628202723019783087032606438236536043503199471149775302155445350405483265376482942061588385817821132788601637718195149311051099680773308471041150692699424124071677270589624524628237899420486536114353270086922172753699755207808844539910968278146025116302979408666634421969171073879242527980625968262287704604519142879552969262607675669575077483644949543515915410361683082969695731200025595443045463085726328126602774460858586544139560066505251132040820202098562553248685381360696647727004860540919843367043632207318137747153458881127724763873537652192686583265146177475182080629724368561452012625511277217747699927840609863103431687827298601580018015003679369815875665021647250892406695638985370956773723912805961751133829840123291968692404003778377288905300372380647216498753791683492016285657937217160827795770629161463607844813749157422650336301554162211396778949858360265155220077722296100336231895993367478812272412608509086544505102592215770468239336683773602592428247277762242987594750602172275669334812529664577254883845046404228907229089273375489877019987077386229386138788976106771071254913044233555003481281048544157700975436627880020150058063973191297810712398723537083491378608075458493730179982929738981036417022537960668946730126444603750377427327880287601626877411641675346067649791740456165524207409666498252539808966273952859141172947109528114127677594080754184292546080049364518676463678105956594978061596545028205932326449978997098818159950041328804514294429289973227194574551792322850489848337216405817920754917994257145303494681144158273548847867637523936375837436429229140635154466141048197889520021263723475238053515287410666873481252315506241580965434018819125195742673160652118517858915918799186680866680010527272884789215630558397629597825191838809336726605901335877868683755005824647109598453799751439404927085976477376240958891561753524851060288022998025463539463201798149416508563903118582802528269150570487590778829074802799678434125795802723806465544738609983914983902122608779758473849869201825307987616735641766520587064987429711587322288648841558829378103164076524459933165411194845246351545325689295288199504444197654076085637852199620045511261590250224892757990131909618633253207194391635783287911234464890466710707848397025090354925018411744873994021800569127035808856694440994307832856843907112075870099103689185972910638283614260712302264933617230233843955391127925426323425232462504297082912986132188076454784994803122457104785964379651857923677246022901732410886878223812952429705485223954128904024478763119019081060721651459950649507320987768357180221920142275236307220082566736483148402162699086415142272334034982989144797944978305867526764451508383019445581867999871879089847955095966443122355840195487527758282138525983525015299568218483329138426901716421529178605297211261735794114735704936927401856987440261715197809247183236205556763903947860878988337310698584752931458706479805542433788882420121486778423093328748347196707304778200277216705860247376179730448686756642385093353747472251003385501214912512377300561804855288965977284259287170624288656577330266867399200992023610335179722037411309614878985839092368017328561697646171045811806840622845011097419641225314796079133026633689739847488268647708885435822551148099756940415699147932775709216628563971327052656947580115760945675060839742852517411793965695612163215728982890144708839232022549668973414347615764233464273188219727617449826348944794647424542169976420157567143210905300510013112670908739930941399564113654308161180642023142632901819769446008347382072923600814167620711842623770969940858389822670110924550873999924498543938303158414764509218175840959022640157118862228322868334091277627358955824148401234067051002324580720432358214387183587227039637383624071434716296964526752824979927591696536062928222335468757976511236990559679022198669790350963860442965198351551862634088146998564712396923586977632600679461196613954650076922493435303813519557278316172984199293087304289330864867910033916143670930332984993851674209489291494373660208251803830894355775968297612955672475048065832719122534039623611150889108313944089943880140306485277998208512695822677346570766989853512095244787868225426662943820613390832780612204332628758344319315404502669803430456465449961402972007653908364614834324971049581289079671725092850805910528694228756398127142701572555038390037200947628133517602589642471465985211358843420408358974961543614694200376825941320955502255578808644190425352298591266357673672709394145561909197159991976609853352663265763489912297069291999609274878049802162329998514125123267005623028644201927277414527050264009796763824176055392670046022270710749296407424403135687074192772211629733667426762142809277846921464450570390521869788725742010068169005717562954234964440860329004375324118283697720571943938848347961052648479168322078639337445659114071660842303105971425018824241411669118328763309819803758446770653306753189202137609034675490751407404981454422737914865987371850082201131866999176986617947566441726790119181643166597354119381220190540231980114791599129861518219131345260076460716885082930713136845758257666676751697682998850987260018691796303832632092288713911315143885930451383839648525826889715333066345728647732846733372442289158990625691149147020175629626512569290926597742226381987911353819136971661002743406307189387236849076416045659265924460461740167788997866485026831380572790885049312683046483460244876659070264883035452621449197908210665689980000383317707177164639398238529906473572946060254268393108970852005130298341364571249892317601346185149002046632507124880234892949519021446911748443488451660110219662876812930845680639346469490981769306252457119975503750021487724557704313598447534553090409946947130165293934586645505634251210083122733441941305819761009151523314245607817127022087610760497429241344418173942973985060799945779934235406248055760994739025048009896863603261875537826749461758659837032220019836021130968352316275803668579320992162641515489020467031637369215203668420947748710427333023370388400029609008748762913961601145893512310095832296610681213329459537927121470378699639735720779243824122269330091717608719985638560706334863122182062800288679696767678607325105000864005416737605045715119905474356646541636348573732506967600196667057871233754227148330449581782916622161764115852315201785903947938547625545929909226348929009453022285580638027474395907378051315217804539386731468481814848770459725991878319674366101352460757494300177259709754737744852592024060285306943661961533919365401808060286030332187737219034679075448361360965226363645258690134290244058004657947338267188995650908288447518915590132720952781669319687353628570788498447313794590689197869201857238955550495745970957297634656167303680339972081972102696625432786636300208232179233305585738825060904638352763679493350278380401616806852851895319118190207311881046246472641435254828491861150534861267378905367949177756344887258905746107309238837755971154827902431724442592798573452085876602076425847889768646794037890243383501513441758713179850058724155176310051211011266250250872130398787795038999518875961342090057454754930728465777266893909695158356119025512721290100465142786620689008908371470867489789506509831897764551810905930281799070571271376717683498295323966999892225271147626372813135175737696905924444071561001666293334683805155771146496794418816837784690459620628368676370877343650648390589132576353636323708683094689176135366321386040781036742855469232643670238119092259165175136332656883493232223376897115386895891521172372782283656986528051594098539277237929851576753988317247243114307882414386549307593354520275626018011113525364124380018475724243577961982225811964668722711746578173692091921686305626590661216835710801013567892301473535585504674878385282527243303122495679571206602168360465994900261574325332786770532642048478369964788381533540554353125123042117096888580210468414222370785523491184915790026641298369932619645296301297960966694140997161293427295919781233649992917672652589740972638783867889227037830457759697513959876010830780154016037028464475082702076487123162343484616994448614055127415358229377215907238913228879233383164470940921251920326102983909995666699849365157545157552636058852224695291617716519628639990491944276657673630881437234835519495224397997001641667643467731141034805764664462597922075569056535290295323883244336024974710987283654784706675234609604092367044384957726801281682189213368605412261760365889399930358047399071950138265925689898877045704076184725911213476476187587992101835348188385290838957978747664260997457221369680484433932646504229300715502673642889231766166240931749319960284577063530489232182089252434704643805693402346306084079639430679251297446259850678027785884751179088686718654753685212959387803438716408209716777910150270022547564291923511113402807604472171182037841785592921040799026758233607977823458553101513692530746354758344440599303572811564378515450307866885321268051720629199002958961449915570987112568534411630723568502367459575050038618779304377486350099307477006397282155972174154118747126065667648367409783586993262955831827739330379267603827746919959135031718778689023938201600825171017435688010664108619265613599384569454733576220364323872568822169659454600791198278691356075057651020150887948682591655158529402360936937877058582292789280606017257720750011880408501473988202449218622006481052200918980358068454226119657669941724764912670584389842002998652844946608242803134467716625408210059952489845508914752538433799201191621714559004362493700402886990380994825219617101675253583177429824985550289350069419269398865302736321637091010719347369368078212183598198009909111222181777410290381455079355331383467810360278443851396882735558300562655388650225622861066379814801580602598342186410136795277098852098946089847285164674118079045963008884397597627794577057875904588299955666521809024656316887661710484748113654440737855180430965779717079774496996923218867627549942218451035340273889827021794844834595218336334694541485711334079319288774930944807259057262489003438828786687903509469434576485272654524770925830469091176783444798478207817755751088305496947757752149482944101776229100422983401689983747380791780461116086987520160404692483870138609775997477609094339492229901709276924145739442036771325874570679195710204979368152799663096476502680988427763525830819286246047846121489071698266867780652562155576556154168901860473154467330833771020394135138770685464346241958502439775732006839640294670953355015616688314342650867835255380217805472238271152136059139418487090330107286512605197965031284393025894546661310170915330736731433955738433709127086841960308512720108785716298066626586758303950491894412022154448021795628779266876814039662876283503852710270532470655738889503474865633627459017180903297893943604641256594921699857216531831585184911376493466516210011278734374462393190632553679174362678914354233152064591565699739413072572873755693044035506202054743372748843518711798977101104211971753409505852313316108735462143486112292969762556998219995593438170511413204604209251352525994284946882016974584987008205281367299134519675976097568561449998740707348948645461692664505889264688006916044799656458689527542596521739632635404817574642963645986390164203286292097448512086857169678545883303259176781647521800499106707498744819666189757665172913618739596144083157879949037748976159457281709640292349264776103280217717429960291175033339033666425920323140847004212954254819438050311767723475211910255743157253555975198338620605586403227361448313485766510684268941779576633482399907939087913642363356103414710748927877098186143092090568858011223945325218480843499034202910976661734859610022623774079311852547881604607001661224797166867624286181135632510434393433639974194084943473776859967658097728005972380075845376871984248081378575785261560770384119077895180475146492063557908223514665714020477900505558366480167118988335127437562994961530750987770141017805931295835662337124171294568942615743724197061689896993188330159497445979293736421690390846785852167420655574408615065815313578502441168966522509308434766417755159196583986828541804989351624076023111458713547102532462161157577591373897730755620946594365459542730358976216591283734455421484376124974865793634728225473009686909865554140155307172482303871145203561577639497128968739084035164393591739854261361332787396024368168690932325847650690972743594559871257710098883898563144015569110149604715979700803749708963867172469793452581011925422805986391403315147855877824800036517853214369362547723576384729369342248054291962787567750961781397984575794799654995841108810406725231131538366718934439139698928259961560148871057642485935281134898346980078323090357679951926989538571935865486085307427415687589393843391234707214407036478213181076642428269982734652086622057297777626520404257318058929674780177553467875709213819762374689327192040138227019212470328140565730634087511892617942086417337672003419041955751546454156101799281169901711301027258354580778109561420112953835075723419938074053900800595622474975114859742719451781582795986812884803492087024074072771822173022836658418436449769319104233062800055952013987335621450774010463143307018130512938717711194371406976548943293757399348261806081479421679421758204829513580124591194452759907023641864719523528166510210445828946974758361324054051562262262030394927985894290156821951749833965253771474870828836566389855887616645463078220620120688441289001596044656714966703336363030504837089959889750447680180746794069762784125657960945556681217059194464417738910146804433902272995283570373041495017907199296144060261516160421523772127267228188874314145890429559730243037548325567284890818437283743427260393086093850821046274701304357457958065180041238830798609511472027388051860640590201705364014426348193373417338532643454961297291760262370097048631469510915754304400129541396981532713679066371209894459990411569906393471580217054960305688813011907281844802920409768843497497243367542852128762771736854178549228330811547908908310152713417486381957581287107723685891659181774409768204030324474408567704216090141125263192777850706002247880604624297849673412968069961159867683825558382044284397515133305510257971318453620672322580631702629614161694720547690978088040584613837676071909884027037617616391921810818036531599699741400705475841369407864167507387869891583218222560063072304429576540965836040816531974602743366081579365517771133328874413018676288181540129263832361826310810923610220316691770836923933950872041352720911113334300081170027294917600889234448083369045613033570567694550882697575105765386805719409923173638877565468302675589414357540019556018169467987801312145032823808479075016157545328105735365952338380552026060945547968732990570457407093154959908795142696758136449461124686490353628143686589032785803738259370841472580543661464580263098249923765209178122562457730576654386458420826969512087411363750554808124340048008829911317322657801604667837350256636441626451408522847393823849754892760811890411526346187679832008594195426684002943861203278330205306411824700517416297650731589918606132314055513716472130575230868567755172071051219493466010801789208465246469040412605734017349517636372243420878915623278609105021023350422823250986480386292992695448362561372234349318337604351028746987476312667725822719669112782006449322097220824996616093371998006126109093411167038886891388582049717395881999532746387160573141149075814683578651167379515459010230653614692520321726814355666519429006180391667117346276639960389308596699908335414636456544555043854431800080386571632331926386682905470601451854968614279547395228257587859239535672231970785802139379446556070766203785236700034968758532138730208004351416186269530881744347987938577977765600762697892294132845814032387469198921931226340347086290670051499727911460467225477238583514324907008109976412609741387689419839384850136301994584166204866490138053649599455116166855325616027689711158465379886613395512088626306383822449832808872901164755943042063974013566903883024536054689493661021615454684453369768412163870469568606949512802495330836570642997546129573554710412293520897924213223599433083676542364576003645238131763695833885076863630751166105273646099667253404263528567085194293041429994491944087914042047484170631408632140060790056125736575725191070844221370865496306791409278173981469864795775390995672351563181292072477830398462019761449981540780463891688555867391872550728942685260569277667348023254062967433368799570723256590460109847251649703270885572960757679663880356563543195349993095302128854106712404396519870678258052009441545874887073698425774213147611036482789269923325476168938113183664606697780629537249401466874867481088709267612984299423316483160666512304215681508148792563948755933137022883685656308225653797942823566439953565644629265392020255768223595966457278914977702567052696999677280640204394407930273986132756072008304058269596944307789010860871597783347343589749678457650708481905375511990405015003082948199210188951667230624692485983210921931322508094637661910201795963048574083602897918757607076720889223634710123311998949469378061313595208554871433708263585401011849230702645838168072933713289756798109637816386302821986251067813020262138333900677152956445163235138749210431291758590810857626887122530498674755044093218605901918106418329486125129280396657961121753614733194781607848992305414683732682233020408326064255760813024615700300529823914340946006910628527464811088654995251527102481891099182801245221137084249900262881864328253844738309158177592488573739767443309386643772391890244678401050348749840341700409150206863479089904064825521692792457050148682385711081769245702172520021981916229338139487193855640732004115767034778467843598263398870284909622254684648814964236883434615449427292047306888758502784319440948532171337750610204827529103415174826176743705049011326277285311937468809989019400136893871179019061453512454092547570661867151606829192910951609301072045529642291823164786245545219309915347921790629839802159246692670165098650162370861073612363037129437580928484648915819437806546518577327494555701616843538519149715744047467696802666983257191097212249184300052475651665217504178597224767814499027798862368187339116711259974617411112687394161044063411283063140117366040038220195213336985358149417427777055567158364115986195694434805429316609511945227032240627478512948243539324741709841466124835032275951022515716545509929621301092783473480596215198746506033982128208576414985353877270501429910292765347074424905632526272001430907203345540950041452174270511772458041452906923037253860859191593224046239727446814137294998878261078279244491859067102153571362053538328659177027392508515858238063388691963982273538182783939618333865990318373859288575960171422860143421276225328334302272499190988925432939331581222961690125356946676431082759259193162376684521867906350629092610422183241899759097163642774365040236686175668778352207843214177893658170218160314458090873249901651476855401832311604056916367360428428401758569082152702861830058939725902584311862751976943017644239106890015441241689398132173381949240217815850588116955847121943354325549032376866207938538816882668987975300625560080070904326250922976660842261636946887636720821452859146404245149401469710339301362679927221068655881378967158206230345073759463500751589382181241254562770534878415013475368644583270349346619649837331576209217045322457718582952670869164798679294422781092448353069356739521274546667751269173984422980402038488968599925531783122098379375330102101325404075139670661514167275097207116660148001648504230674829400995614726823030255653631701117697684541110855468386021561168935587049378223730324423770581246148205655981681606919413846878006575768354654481977785909630309148579614864943874830748621272288366684354844437065841361545165381473265086679651758100636800398567604975431327625465351395367625693362771369595504363044309775288576109598813731596060385247359495226035088687879987757629512967278683818468020933604074518441362366374569608719195707542781551555187790633065925132181724254079760267135392342215207377231269864062369910333724972260874472949684998654460347917905907216853172320334839718563537089168201534318808563380054699413081866098610820170525669566037572952928986759798521900929016523741826555256035099829235940769572987918273751893329643419487179263469364170656478335102498973866489529573713199185309459953926002617677655338065464138119883522855568827797860535109894541892753207140535759423507940500046849892556964259791222229106991151234076769816930541861971026040186629673797165644543138364351079961220418351954313060281211815903926767176440036923047878250761920574437754413325473454021031683440358483552063819977449208028248432594262705108397459498287709628838443089026018942769440789637144860874781196366997459642326867483343323184517679490936039899130451781928054988450003252146282809813050386363394724072740073237984950934509023936137021548243911613044115305442610147511152183869627408480347832689530832200848853757802789400894547229375508137949138194176907894650950280815945545685532569794909815237234359722336520555820690006157406171166560662076260873038963126153335053234660523422097644397862454654438046643858532399864597992979592779386040412387661075092851405108614197113763664860099573504965042145252764570403904846586579770063239623391527119966367199979295141935833484336278165256583421848420400409722272596775237446969570215144444595768282382222070315971923767236854424760269281953796069456008064641304082156224510596606319441789021257626821043929333532684257316056942376277943454811559271262048571292926989512286763553783697477568902152978126016187509577754617193536195884874001119917896587782928396720593681486704437729928068207814526597759554880036033402045824538067821144325339708955042181506731149551675908014065701663481972477105343283987901629245565972297799828583550381480046946187142158323063601838798221662112049596871477130193338773178713535173066711388652630905034963514378754644638282912779897832288256196782111049607819134042680049485726117171115282365305882233022791434107632634129089595467562921052830036628736116510477618182323257286645621857117457261687151974273774767829323499163920399433188052959500585585762679858666469368199728224003473667814134071445385160245126121456521585243469452276308561277783734923729425193990480557432763103174443692958083371343810906777436990510966678520547129023114499310840519860033568250863100270500389042603647681071204782958324605850365469323124334254511630776285528486207251460447404896136086630266293961671645560007991992379399558120718862307041033865961044204124835163475885080611397095698232648256778890104753448351180419864982062070893342861669697767993451961727857837928689451593706600774569593094396200502978901782373657682741792615274615084375183653165761193469064685452099557432079938867375480681407002318784373580263678076948803663615644680060632828746858663375073578703936649512444839890326444406542438496269535127451005028464074034832516296915784886988173044498535258729244116482274237825025071625675112244309968171693072642644127830244752335143985806306475811051327033669200094796413523363220096689548942300106367849639887498329952334095189875995870025377494613111762046457193292879029462050440602890033596182719139580793479736310061518283105289020240230373533782097432653236029451666183451935961833521923590542659813494684967734993717967720169083150117060004788535331904546387364024563677493404543967459747883201664368793087673126662078628673034306673298836904535097853100302975179567774072619021359208377470565217287734696324201645968626173306105352961356632774262185846061084581567506110502456355668928349098563700407365624644166520529855227438528947611917329039100554710521890840371618987296805565802500216434435519720353170505529309888970993373706333427287647366654929250268119356907661042484293084346086473751478235263695077896828838277017900731277015832692536330375326649223548201841150254353361979627496005814425398805611462538470069206855624601791968730544904094275603812332177802355937626512240162782004044390181829854805997024647912090139341853791493645158975153931045905449982674630715754311194052512951489392316082232314488318254590064581738267960505127955209961618390587979693277802150673269054956257949770140067409851819247976194427347426596358521662593588450147071024390322677414778053596367636240470728194886456961148523994151925962031552019626558310584353443187507066514036553342906741869828876420658052907136833072339756652996920382990174099508495962741788526241223340243969527593048171987497758577766805692643119239523199753968636213221509406661556822738274742333644211708735652704736519831945692319567169589834109633162102972285155962329903485233452057741827388643891700805542171738610759040117636711271168700860850604834285032791126689037365807253681290241744774071827384731789954045478220382173380207796346124803464911165556179915377002565294422004477552686138581227998503252312509629338402216265846354001872646787428125769132973078451666501709928162550392903004613412414067760915859893066136231271568537344121896309527474639914466324058949740178851868114462982467574026007130612331348376463944368346278083638511360149496264907522170263508759460325649897325700645151827889295599727957322957454019159882553263528735379556823344016740069753208833091873393169425307388058521110140411514728875671721662847316864507034246032597968679527482919329216708819990321703687266581679769265657442986096686283668066133276086423451291834860815042484826341985188070449390610025649248316485143412299722650426101708760067274547240027765955726599844834241130555217456649996745125105220033465362765434787834946759965615003487091813077966008328280162965778730463372671136536214974495403276758986558431929038068150861055605855109468722605587118002529883302860823436327241803068160790470167052586516841174442596628288940695857422847388059939373685912420013405709117638824232194918145078199243208789731258283711902348988428580739096556248747434690117532399086507058287067337165637149129422356130481585760689502789400727438733257315765537844362128391896112850647085028727679812873798747589257374482497093187738638151770805790220006864887741093497111541871205087179521300508063831339674371762296827763052247725749951783922172912105115115996987044182536944646903062305109527426820129377904425885305318832963257525972478761348570495257297787137397586555087185859633358531592949745852819907215123584230244495155966235032954039466031354349851276131221666059699056551486824406537055633390995051542371052960924308270835767048741570098125298629795130599548044335448102251276456786217550291313483596839741875356119471152260877425205798070988945726717133030398246213254206389934623299752146404329848856146391585557886565982314156075287415477373443070471388479355792037336805937188120114831471788564800008776079665823412395235695388681487171237889320255221390064012974314895954909052226198883818575679405204931721187535625992490836881063960251548234560826807053589166393789474367742951348674701386849137807880312682875026067316828736555875702209577090602264601130247277267717693043292086994640359494617803964558036730560745348289783591290715613264854490618559329506644742499678219127944764405829619609638928320696551643882971699602481235219201773311939101302671232546285988057474266174842667732335881691346407079389505463554625037793983021002216399894660572655973813001461879521787234119909088572085197012496671433558167106869212635959749990088108504490264360351573923287464212477129638823466971866196929404238703625127372510962417062013721311646237345550772426819019016346002525853659506421450591094547601408463407063620750980559135236298798197930880043093824276736713684792129319915466322011023073983113172531377262016497987340714309064130738934593545788593168951285376924656527346432236933587689159887347612708394600790718931730992946247256719893278913345166607806586705627010802757088087996285875527840052436529872198169428459077638734142599644680260673029087343186121459579296521609104002639594675617860853508030839929347997053219635679197194098256944627963415501707664416638216808871508122402379012432332541859451125712580196357583852929265024493282029321889354589779975408841610180413805282147108699556873780691971357775500008786133351185466354853268462165045511439575471491214462814327606788866685635452681388278198628498217165318227636139247352332558567873330586941365573210740638688429250928698326321393861494816884017221928213736438862239232149996432888081905390336924927016487515279732245469320950256637353596721762901937039201790709666194633644135704598883598941596739891241134869162546475802805249911312449700289430762887723821983378572891753931494966010840624715417495165122886386463386848936402247014396396246999161450557166763648357020556263709371174220163315046158047197080985302871991109897745494884520859588647362320099306396105010840436331088642003033808206753084879033495027706910763713679032284535976429070219762925004921566919166432467655592171478511423043140607945288797192021105796350211161762301797465249276084293745492194306219127082054849160043197889161281866447867910625851763572150213737475772570434395254455678243708546249551344104262651415107162444225331541723675758045580616162950877008805612107950831957288250063734774879360191212878423338532772797547311222180385155037739473184915715992942626850226172445035259960352060896923348614605412348943127857353810964468338558614307641748800586597292850753833590422879500383164845857909213688251991725942495254873630397890145709402954876240527590752010550342988472800016896118219882752773925838084747731549078318322314930528418893564967078503030581909811389880527720129667943209926993396235619331889274944573760368575099014263572347359401108385705778502157730143445930371162300516264333581379940296903804080603264571245262056671825628400755677824221594177053754537785388072327020182824826273194594105145362631313984747460686795572313790103177270151881706127525512906460513855535500899484404236519831236678642999986547988930450421242081351773808145531136515030054766243931179958287245952841295248559780538668798098508880050221999495475506666215392552176256860985069080736363025921152421359825170593283128200468573614238159043317263917529826101654689588718327790571331655471020873569415430915509532545165188421836614972783929709292914409739479138241775657395331332784048281174407128144161490359020721735522373392226022256963105858444523280294230669944255672075020593513358158783902709246809309358155982051029229432177581716042595434388555393294700330234682824355558387647819622461106272819142932332657651453887782157856630967724771382386767471375071682255432669957272117177918614231162142707829866621996117611681091826806618054533763771914381691440824296954045097002900582852191630078199147236861413118437532003625614756868758603957964991913150252127020825111329973336898394019520879112333069909776342246471911707100996710657554780346489150435090186982124254205118634894651898894552661731303842856325637535154542641150755608266357693187007114249874649856050582128881328348298499546011049787569110177235241990491440077009070117588995027001992380934863487598343507403827633103016305816503703422749752879546648265484121655266492976296585200281198785284431942612728070647248822779638927050979715146072478606096223494134808597143443895519177511315482366676290330417945436536241654438440943639667449184908328197993062315874154136717166113216695353380334555195059160410404918432399390237530332567173815064124075668671493687731286392926244479876970873555365721690581462167513504912892809688899790003121934780758408713887578831175851487654370088155267520191534488405978520931171436091300083687815894909003746911320125509999944041554132800141371498812041866315045464325355227465653299543917906981920244805438009451511113516106571610952536699978492813167381850497067825808666166613135485058661377447060753596569095086707377764006714532460053415942183330705241807878906889644433837459381019688415147404726054997997401433005280415596343653852508358491759036083852536966569598631561059092881639981431575986873960161574561286489245687065019296865825447395547871503183132478955712349012204334963215622416739554663182507565143801873433171975853885450710364341350456264956128559680389189144327700160966946695933902517164415722683991936805878245846761452922974335550421189725515006944752391654215437494396169234545308774261610031278032745666661976970169168563781095019681451777310552101387799185353447312350457647708951596653038540703112223580796994806803366863163740692254320952555440195620808186287798379419192601451673847862209224350659253931301502065733649621247234807141114600350612416543722599677135081265750502647182898052598410772859762439381085075779292650140116838026414383354429446686172248964372649924429539236899775951564209943952523266689609613185237309607090033162986610874001777775301116309797587272746211315419310946371970800364925959485616349079897693182258073871236330617248822665386953860359230118303554589865546733450025919490671834001969272172878789307508502708587718471600894207848023998656368489496937299474492654031376389628337882197872626604668141497855899929590417628137903496984354920652139969259156509047385799617165970572936662053884884804674971516692172102519382420366903760290926527978893574481923360426389873129904393038060064869460452620052752071528184771667050905962016339690363937783081205676389697810935830557894556852412716354932090954966784245623378688844675625602253487865219484819770431120766331072485286698943393198361485767469664886301066510749169404550913660555905417943619172915939361688348468809435141877097721498338374546890586027207744283200111609932348462852706370237290596267109593881720090171981795446719301760822775751356997546368980222742918748068626770806172612731481558212544171819948901497411981838785400775883211352084411663096606350896426212518525323204809608334951266422306818074385606180746197252181771451471127143695707965068487897490661179600841890345257676071042638648976179607914735650322286532625540188970217340290959021498881656799756605564340318983385383684374638501704364646617436934454664213320476244307894664561861863313760952258104599278589953459056352637458013272667546291051693646005936846897394404345945678979646034631042220848896602198621708106163633431905971119317499894273524798184106458503357714994712138302083915703366302600784364356135269381892188230127339802508876627523451176925195909396150825206541631306196846343294572189798725667667010907279542524502059332178511775983223260682686060232966906462179004966683979298207431501588898903977592555329220830171556037867084615739366651494491308651280997994490161862776514301491869254580334208958237931855523170317776936517644107664346665617515443151680993908286441461630922336135028413510082808243126916513308143747847637269973053539790114384398858219736925627172881245773495558107242066719055186926446064628462051345348449466684431587586307051792246317416520792343197272223553962072903797763716423327232529343318440641295921202421536721101450785269549066725011658113397585001480173390853806690604189709771533772110819325878452815722724538808786754849873271256535680716946312053320627441532435791236413757826421650395219253319342584327760405944649406389996940595479581006157948258155267172457733552431332207278231849700131544355148220285880736438449315218452672458114791734112858630231800704408527889552485250147708229243613119840294785283512709429542689389563686540122643611104970532639742123105683141928606932364889014145428469744901981744849273227211474907774951503512564564919337404880730115135162640183527167702136160202988274289459556750695781693108469011722315821752840859650474448437083337934667948707952620863071629217869584240324354732859163079727059484658011690724882193139303716592506224730299315360011197003156722447498259899792992240045669812036746915414397823071510453318152256073736728083946863092473858801996534987130813349285719515176774635342350278718420194015745362223224041781011240274597012410588222725237701809020663703914464842521021456900037850673090530692308332411385974698108798260935241597302414414533550363442638996849199773767746210913902519323602360240648785420497292056485451554669687263728483267482856684984625779725231395137487797637052132546083642348856325906343454121784807845132402445326507390367118180364091809779764019567407437173025624408959623288853611863858155025603652949829384113378322963068200955075218781091722214933886412927248903773663704514549806604658879893439603770375595126297577667803111102123573867039508657265755528517105837638372545924995137599638022656011252934917127722808778501699316292461734625696253527793147786441419513722629801962334223238543890812058358538511540920663840619223330425873404779668108610017056310351379976733595243176967210405976979735760308827893583147426951757042250351352724354899013868487281767597602887118849768233351012720875127197729760905716768429921830892861049821552667129442076862173608884262630984895553027149940257218262482114532269216510529122786740039188364020918416016084796872556789830963104868340221441852033643148876264994399278107217556099648101098649235739585571750573801961721435373214169702588743722292298983910199079818272985592957882399644237643086877690452514777897058001440134800447160813401060339488490045757085240371013414092585971541838903563735472061628183528092075380305688601285073230159818422120114965267589081218315395638727348280596142279411369322061781143798179644254970088353363055753130974363194750114534169454083140434578139551977096936079000626448930937723434936955948107492220749771899504419238052976860064286911730642530919268062679582930117343634538417931245678497078602648018228373896555795401747007705236993912735218237356804555361527037911946656720693944138653819088751022109450912943039157261172484401125987925322535097629053617510774831471398431571581003965164916864985181608747370390091026526095742006687031942929009140185628710381515954072203341129614479529403650109902971862654228953070157568438223272609152874866762803306908630080738334115531183711380311165559832554410575557434122907638179212158024176303939589409996535993495801921170025021082350051143225862736427740826041911501117233594641010726436449288775270303319454349829302734112040126948853422128249906667127479535398247046489295226450578192884775960016975366144482464874045817728558858426428610585612934740317835411066327304868345081635686000878064500991906405763275528350263584425644879821520149077069306766999353927402330885614055065118399667658045447852465175641982629750070860229184454852914466172299562392476588192263177185922613988030130695478266260410289273995653340064975900405896482340504153073754959941127648778221685406941716612033261714015688753271016434433268488980934413324740840131170722519449966183520357312323751325998597258248981299364546460875221253337799604769879785638804955871135026049671720613530740056098932579941971961926799407683524727680744294028286079403951976203474535961524657024261964551540023219767909122119855954807434079042028242587485778571126515799000144213682460221306577242040623451789052424497858140520048446216007095834345160143537435864647701709265210472701311907302186555327717000637148432608899121401597064082292754618453320021317330326032484313922859294724119404590045487686902478495400954893371204582000016808533175886630960565420983854092986157142699226010246807895921839822330241186488828574760324430015725975473473072043579897557391279798133783008846043939180653232661156166644028216295928990529072546749900082277663618957485300374864776426861738713671818897172572345175397303820355029685248268765786390284701675800968491647462681983098175335586974826445414635540948147315480117685352648758265516573095082346463605266907904795741070925053511103013896797612910159686329746749061257415430592603413439847759526414847028216404211396150321705113172365986025429599971261927665010532542690271109283392775120139500631378397865901258832753281642672205640432747428142698001086025571651963517248824262387808618122307332058158793320642738886509535637607715828746651204368156519769161821615962894448626036347443385723287850404217561125147047421490050246065537038358040089535206314504001627278378899262360680746100904622221435142317443529169028589011565590166430512420841040748238621484685795320784768869490976720015900743470138540988992100169094011848454582353588494694958265356847365233243017590828497842071233414228589459620065559688049331087771533092680566351600489074781269874606743218966963697488944300753667554704680935740742758507884183032032176579014127392089192705720033647383638706152071893011134062002326784422922894642969824227235490546009932965254770337050216622319491032366707354841937005748706890619733331700238082044749779102063369396949829792010396889417012039208925137709654471122805306393269555452171805031568999748858006311421969053628758094981042853509515204367788916348803631636579185652458617718780929791101885292670959341606165215937793618150099632221597615376122397680904933707001910311576953059264248866386747024037163544552303976773473807389151370205352780803740878410730594333316046425086040482657877630962679866622066305768237886660302580540967744956407120101291481869753336512218268693815391004650941321033435949961051551395038310306441289035953838418187906537458309551840003744777437211023964233639136978929817890239320145001354053425019328254124285930736773834086011440809886927581886829224948033647795196280279005993001629471549689220582056451173422802763118451667350681785925378651001337123015432975795246535160381202211948595939106399498803798420888968627937710370764083622601738664613153051095010758191712941206019777304235640507794486473010654318787591899325154472361793788975509221276605158717371731785259283517239268700848936107741790101111119643868916630757127604104192449313601458013022854844638221410979745650190180622234850330885965523958566866303843363668717466640522183101663152911882824182904862150224408119700630192649145288641717925091122346187598756427938630921561564242116749241712824842466181572010712283082418252045633030203192490886607351850924982051780410838665068628799012877664214096286993206062107568505674929715616897438082959472414983614599576488904063809211509748111398038596988856025019957540565780017074036468388408644578051118196067439978561106184270903846530344613369910809928819294193871629631986104715395406415259806748762735728235803265817201297434005273320125843126086067775995188810830297201577381340261643179489571121911486699079965637219470712360563306030041030706630511028384070189798994659237491271645593699971817481683980225556125414540200955652485847944260978915073135977258023257072696910918879262084944624579356298480239335900961033543208205186824163130704424149130616529923975040071121004289559387568798675357226625240149612136046835527863076757845083021226673531993538664057393904196204889509355718543505638487629094864787654793515469556856929118385627868516694407964343522553323112267994874459387515874906909150636743725772752669917950073967588560137649554460520446891639377000687889496336921128531551608063018385019548544808181372209636694991549248215562031724238119341312717986557490863595817179209620611826902450954620785274324245748483108212298319080084105225939457433107990205983211711321959171785012561851970558557029316055293910435363048072989152107476872427705511873084863357367085976998018132862476902166525665106796914165874323839655669062203197878910585956980540635606870636957741051884401094942467909079537881863828284689425954347942902892769567432894714575202886548145485348870782207418969664079565367731397680902723867055256415935486704397947113220359790038162248810865663337914850771236082672093348987419174531809128997792712697919805982554948253034877957265714763659843623324061845782657298861643623318382501658504586587221738235415186899924384903286702314041179433676229022055609388292019936780237763630614292097780966263608689369169680660162460506598213142805249607731674721508115265658361573550996480663300629870313198741546404154614099905496838383665021016509901970744027727024645762963884646229178954602640618186844229243508613003359286566581373731227409315949025534665425682515110314759440008554666031876413198017308218487304654451915524691157787880919387404131429908301539538398924264383868784212980117991672533010581761693216045154024211995900482455148646495784718719095439312094743709486166463836957155335856138440800000550592647433232612913395986051655214798959466623162080058067771444169940727430750307416307698548926669460072452396514736511976563653277218392320111879412303245221697044130623203739330117062058394965454430279468292619197339883746597202282092143246638820317360411337703627892962575742692374442583279569606163477592214271681997404065845341240443013427408406177186816477097928241731131835961758720930940609633526040224010947485684397481096319123756680668979885593337911748407134505462286288292324470873056681873225434355886431233178008511934499463469162280999103414013069473507309559940642856446434450868614072355078139345230589871996585632990041541247179776566205726566360314753715547046557112052303629859405723426008075775225089503695446781140739608935833800620486510699512059955236723821454025791429710941311329641489370129283767685505937255535440178222445799420284805763925008928749063545307154937731371346711018767383463517526671405735157479192405326293798131709843903977983882705379179469462314083182705308195549945111605873565846980140500248529211862381482486289646481588696948601239372364809747558178005409972988272890650594327996542889904721390840911563435885053902249060260466708039217264326797618591732681295497413526104186650901025988229602749674157562588540092780450606412032002229890002650096714215096095774309625743861800933454809739876210491351740218593614243753875841792660306378232535265465760186907487796216790192423480361451203986490911836684689074312376188873939989383665550742996565203867615674423045457432057144291963094507075025266401110293705108659149822880952179560262229813389458855491026175314673260477231309466280515085786315083021313298354686715670409852436947384133329223827495082038609078270687197876217668421292873864157462278815490079150194447770800785132993546385462311236060674912572868325632894804372553643249997151128846100845860785416214837002574977552300099123207272164693007687693650854050963365006024095319619921759341237778080062093512885290449219444787611361537484976075474209862962636391630862827280908422697139612991705454635033602069308806880255523940892161415488580338821021493662130307929566585244655551723178372952753784008340443033917792978303195305855883835610603309441504857067107492726764270515001419742283592875657121858302443463518276177522776443030735241395891196168386142565471396017105566619488374684396779000385778269995801539100972861407279748391311385433320082996603721700820004119845735312185967222069181983903997950814549139403152141027350206753619327083189085165619932440699962402132875421917735768300395545119692965958319306740403264856275442838303875105381694406001720671291178997532486723020217113306211375267105213759608059660201357388072010200660935049852171045389496277992139468507708880010277017407038973909233126722832772257549717592168514458182559646386375696821492644089359021459411499168079477713404564751299989694279111533587847098794144703174832892139386936336707425897487690314330607714465255651453964002106354277864753791691153334315505442407898268137660560245310246141931291316778309419877911144634617376063560913189338336870435849262383072941508663374551014732606946319015331036349123651321854018920944460056708187428630589549233447796609197181843581444599930262874640996989357890797761067432574028952647868912416281817073065526987853714170086722251067985453900955401153947476452408543044601176618725437287524268208103541467423141446134087224999400617964503828598671306371980683761611119293247862195354543907477452326922906820377623495825761637689015096106135331128194426095611076696249306228765450155273974468680369958773080588337432434015072167906596021914931884122249481335104428922773602950480819059609918780825165810751275115208402072856357396110912768618348531404301421797605746260708194971325274144916465700166810672671986602277736254761039602013188028307708960343124415694230850065065602439301946028527821289976544464420325988203026313731471017641031062663482031044256148023791527320289222649869004744893109212146993859115353698822885729839927632544847014947297424277569102373031949302366478568767268461224116196174759922723507534008743133057661984549218711237360253572470773553104154611962484315938174290600444031338805890576999375174467587525144955812827607477518108195608710584636593088082378182978725327370716443790542925126219776584030525677335455948457521966523570610682043378497685937616627144911406727276224126283727285869929540660043985127726780472768828633094528010134597658236888585183965597850972567202677540919968534988917274937173741894395499110450356919346800884251688802917049614577146016325861977617369041955252910296184551361603747159231968932552615788773783625090650098778408600675300062486959185876052953476832469987979281213235894035664128495960638428440402872401879230966018386047458238661194181585044204540707450903454764462187065757692601548857505893082234069854242561491363419271806779524523170564674814263855958974834687520350860852150785667982832980103356042995869298305053351049296490259081935963531538391771781776910165549269161355845158569883012429819120388223965124126813778880553547067204129996539260225023814159141958759573720006408941916031350339430683222623659610283746982718012919381337808477102838985253382948526069915089846562555796373335560699171499825008799382963540841380779861893391843786230839279668782672296811391550779131305770947515275990193943239368377650184457422290806818968793863323417896870630203398002063448785248051287288843682603630896855157973168752166047317171111065591600108499070585344497006422430135439608682785965417048937320899965925846502884377289908397070607566961754885940038012484502958070807128089487352863457025624659421820172159762693961816263902665963227173359389098938638402474290260505843981202915708683851163620490810642910224747553891766316880663317949089767686741246123669159275432699240490664577510838230038323277363800940366811466899482056787336479368598472915037487419437109447324279179806712203584533944865585630004727901786161530800193888672831253952593618529190148228025401030997652727057978033007561145815888989423196438206413392770744870293405921322673497128428482293370285518390351711191707226865664883924685095632459387767903158981201960886349337901948194262659760887283906799947396709878222560670281719209740082836132698887483778641590056668730793269208141016864653871053284798045443123900059995084995925836224781103766328815379443856872477060845808821052602718833208018898742243820228133868653997027339118945614323906494386602104100266680434083182116204528869426862761420709592807609199033590269166183461644538336736039153244365455979029621307672844622127972808628209269695428042156510272820744031390583647306284564163383763812084445122759973838135641096694009457486162370939940093022364325699156873918489176420529451342110250869635375637819614101297197767840670999926442339707423932051530111761675268429258818929758671290780052435282158566542260626451835885513656151847250975175612938349717991594050036635527171730606809674680687075552052902733674248956793447340031932436526599985258890488533797278827060008375459152170907395935288491583071456561687011815924253598436823601330753709083186261751524242639039148203953528478002796067736790283099639474291187744886982871442951166575835575082966825124280726107484222326078008714449060788448637722694764713617377061876377500501039525029127588931777154016004567897364845228616100525602893659942052771811443307887249253358901047640394886046689553244383197946790704793286987722518031814606203467820563404634528295022181405790081529253642696683528433887828156405484943280734684517634164460723592365433023116045516204172015776795508450607957136817591796945537497199346749151641879318113045439996909536216588948639279526804714270654152556875631219270357069348946483841400230466508258666286379433730807788004297569494503835785661788186109610091682726655390718827012650098253982101711123838845249335168426849745253246816029101269994831054211365703905738285633124594203145134742563719174175341771606247266153766890569336643351435643894211900521671864395755143855303301040328348904998573089226503042013862238297121622130824341122315471062351453631726341278906135157934478783623249918247344051564284562161646394978017076959421504562668760137833205316311069090706367432695711938940643424237010786968011727979056532561531039844013937158070562776755739568829793263102285236313944606532977160467600308573830551326146400263697086682619346260136186058154761882899961095108184508373260615051745064932619599410330575662771285531613316339736833136842931791559322828670782553764601967397452877114043742520398851216543190247051766043261979094552451858710219601686650544204561241523628369512029097634452246085687377956545097690826502242237058567968926432813185144457361962677864080601731441130577988530510461592208931618359832431042826389280668684015121783201032049286127455802169911504312914268047796614273483534565106477829090329411962914245222577665625480134171002786065581844832464161438739325047445919524952959302212358981845096958817793241573608976895375775040240644387557181093234850576439638541725632200640380943644740517817152367121701163814052813014807906525584740286338976109249253828368773030191373662515491355184446483477617656689385011399945069826620642544607041501453249524153300641487389027390358287207080231124856487909837490065895183951628926060389165929828434774461397858847098042099498356809479970860100052073460824175399181838795150174290109005985947549600294090256663844343726298584629404548900666224630786742378779960340084628876694608691379013566448643447732937649346644566284862422502879115902276344593105029045732527765880992967395533035733516879744850498359589871832551898194484249262311287992631726148232683804018279004772108864646612707038675623592061952373457618449869462677607357567124559687357812786364927638079993102198940982120541152720226086611578816790267703631983995937990670861659765413898526135067333343498068357178108698101550832510533249111252876276568715259846533366927139267138935189628495019861357236294551175738410751131129042542604511451490331820957898982771829928430623476993738028171443434808114738422307778535920895755321644099259005997360391039071995802918844129328219618184365647478355800380836580807162932084488634869689203233650255404714182901541979270491129952576603039284507426201174924355754285038125125439443109445675684664402934021667652604265678436356159161157445010007896943539623172457392941969531860974678421714336387635864100582919962851052420500707791539041234205981189760702953328701184939336618147102075986040689003934844423985865938855610717723563911506429833023905653926863824795334574341733798693202984386244812320239734326461283684230427363434747227950508388248299415367450594031706535980060493850980240402149693147085914418886970912727155529857981580482469459128789996805658182314159078917987556882044086068643065760948984911087682596684128893525626076292476879851585068372847821716575443591035153203250831653829256852278096321510994227600217967169709713461618623083958932087940041070755484439706478650003564474411494852568613224090215870610445424457038901365732876961880463420245554931471788793864705311804262007966343110434561967902207927574717845631275489604361136579602066598595114336752720223413234155961304900248342472415402355182465517106595286580314998691785914906037604893756203764653004139420101762925216627837150505904316562569980683785107593425988836001407958000133312417433919648658709063916305130655934359677780153158925435414056219811076542616823435815299293354549719886721058236872607782031374426266890853737212853132405343122887851511810727888648418993000070308694260714649578600233260630701758914042218751449906760739160565696494877919737091144946986001938779047263769020307364866668878182580527229996902318993328063811533038559014889868741978191168375193235859237128805962835532695824922480632884066654759805932954836952987490614169238829733564739046517611928773358919384141627747445766885049475376140159187839084315286915642168664858066543741735207507313561028120783954088988781168785142605455446848026133756485438141555299520471777046388594082328622609373327313135564666336930185624785490877719633732854705389311669240930983857775792528369498533414078920146368691697236473709839310548615923437884726302657323357605538159965518454075029728350742177844951227538896972006132875200809038839488634749739231689441535956547167107438238114629212084793422213818498988438744816509151203420773852232447744072646738743755210961636192775407230754742038844455753991023931042140822005197138238720174736063771975114276183153687707767716760707414942403320811739892856451773925237329721071631978628939574134919315913745870458252272409015034596044880360203501399478272903597402759083080037745522849472666796381042272431921537273501468930965488489005802884329602352846995940640857184346262694715118298215619992778239809075362223806484208679846642892474820477341414198115743394755023219738724331407068029030202298202742343055787237700871535228095020180026919330765492369046241615448353989820905517914742595776906637487849906111389581380590726046669362477911164649064498056789131977516544811040527148388576646365050300556278649339013709134691425707048196228397122161562744403807574669882128595852499169546373358599858110548785289700299302217046359283360839601147748101754458676753785401921533444394623133856568582654550004414090428085421398432118382598118899811873914172863870302599155899523639668407701953080152992179903595674380471299364077584603299637450942562918545754582454665321100554535069861214900576027810910805445799328594596864609048518245098579323578410478458893023861946493409980800240667320838369812336042333342663546384544502016010986480899006738506913192954953585719278105200013363697698809899591705701765296822195278848450863115602221759144649093209230263208347427019621247500309084547532932937140478601700074228798071546426409159064061532304844009163579034820386341241120752154563089272486667535385526490975931742042753241970237773101610733820443322405597160464759960828173045762088503706351556727057901884299221920217743123217088780391102003390908007343416601978559148686671964676639468568597089861968022376438671836919114119662685495416974630105190658908319176188684626562418880460255219083253513424115087038106846785725317304894435030645694380169133022189685390128921729145391835107237332055344012562058393087571632992756217750761435049604733639231906780251766439936973464092718433264765401643945077463116684064084541737385497022552318146933649229516852207178969755311337013320203436428038957283467447805170506112181057438943296779946399122793244311076929875928733516647119424407748686074099677709726235575427191379241140923086622930196608352311100324283291728328481822038963704012472430462566517801167971790709130392393218967036839642238846964583624832590753179733510229383073965138151985477628642293372614619289985321128386375692962198908653988018721441967178579350488343975107150832101167698230633000214494552750054653841763255731440430186422410187040230340984191418149157062096760473515393852659873527991575079305111086866765023645711614964899507949100408075123907440786862523865886092213707267827943986303300052005255486571911361355915896434731861723691121033396446687913923217846094424419903355520458929660983883543747160432200823647421487124731178479668557502062843514890017369714482709584041628077854173858553580793577275603878268049659374470777219588701508627178766705498272861929191156168690805183926091545995834323244448601704217593814770783486078012408233992375763484276859433708437509448483053724035008456149868828736897188486276539544331860201330252549988677122372910766068560298284694854642635912515821304250051246535193977092429984772445121558193707590978922002638598483164461511904208836863235914760002529175020549702816566800939284321599372616813641845277817799733731007392160077601115221777907692031308450891625398782082447366160744186177276568870283105057489998398050440088295089672194521604494965390708243320924349463157766349301145935911039630783869746584695656394732450188202060162440396424157659087842539505773197175830388986071686437932556614905031835499595854326421121254754927011105224868794745430707085329381853912851602555241574371677328021448944374969867257909720522238960018604417458482880817405200196315639185688571365960165291143696123550058124881857686054155711189824914182297216300831937987548587765851739144701731883279810364661145281606199478165847824887975429132358314068114444423831754959358765956814376058555447262406295340057266121080380866786249721258876569519213456155543386188322627098176718824561007562568517002181585535836904492444588178569693019233177595018013710834854893039525729523747899254655006436424487583161912495758188383424007979107789171497148149440737636063252989729081373958188441211731802611145475792951867369019534241858291636278284373096390179373324831441469746200355161447040000688341606551926667032666053149789129723539100718792792805899327808138849377544920202426735047707570704060708520777499533346659851596822640874523696903544602169608757140237794335517597397416493467369210309039159627930670988215241553225806057717878463584202726323602277627024693109933231659897148629867707829657563398703381261971342322426104047281874952119871821122699056209022071699571603380014106470724660871988404135413975269610531880029282714483318725797779319575136983522056562228349129370449356431699991107114009450323037889325605080924792442781963245561353481585627456263359264286926705435357603467023704355205827754225184289243416841660831513139157945596651316517883467547752231551443941829161585832085690629233227191562414158619377805796780940448596809274397290427643387106602493613191391816581872701186686625794672967035003129395980325792754701737077055923522379632383002090259631515466209136190023652067404017897043488235676328654126869698016883996643525377246868424558017875424634077944517257055276628800693515105394399080942201397915454123637848645514484093191356233163775216535372174332168911794615300425084101998299555088617148916501828815039596660804116269116385175922165293632774947232473544113509728951813701464691326858919429006636315956216244955603111642445402210388479175575310773800264909414511891597820169106031695284373598704967170149477346473754414370961762445730621385958555942514553922818043902364909808250325088766186496419490530359041068598195559071659856048270126853395113784250130947158316062878936993806237152977851796615874198493404470452102950004830696068968709297121542036251114103728328392710501210653980714318770693855011688286282453378905563174664563787381909662619395799866119050765467250681370835120113024822802166498229760922262726756122236119659221172032754242177225501497583557094725471796139827373629401729340723207336892494195526818254736433801625179011226540741491178995294773490828052780524780529546432396871107248732755942899983498695668063861199919055352977162949411972229608353547594068822450745382333474289217393726199375133681794980403825971226565256629793201030420974984633019564439308189968665771177569551972339683830515609159732345837283276595251559559425114852069068699037722721973684815621976651688637638370618119981927643632037672011430979647309281830817984031335017222229078008106615041357046850343395301848571405050965235483825356208835480100458414312210494899487455882195572923520840228057625824795120433751416356516232372529902973056001740939105696967770795561349805196471356972352004148980745872484826032728544628685592332423681503761928654205535417980644777783243038394098614487971040331147805814892148522123365068672812734193079525500741278267753012110680538145398691248121105554785661355737799289163932371279114061370826443288914202804789652532531961475830093510480880894259698126396937805658857433465298761550563988816290498320063509569811379400900597862570997527237289668824255156335130455979440422132347720218422137054641109521322690742312081376303252852181752926053793208359930333768254649825880677497290420791002739804521614320451952269558100139733217512975889574390713395587780241984225747028622331030641406980027970434301279785080244875060282275485599983330852585435351254759360059855493023895327946328531119282625231196718059925983503209687840285443967372035822206368802577616257237113157835271848448097064847239796304743686788134319170330304576103571198660281872555561045840722070136971619988224961920467987279863467064674888248971661292563285454076126806270993283507094275281754681886022439651949262210932597593131583084959665817259961423691164236174247207008378552311073606378556636506160596754598844316787037841156560157275194839051559566316654301193322650035635208794849934349026743123414957004639776915290853185310771361585473918132553811307617038898963410038846426403058148428071793607054020603342789126687651088279409957473152314353892554829365812197863009051468438883076924503442876514152325580625611027127366768199404723613211354568841130177555420781230018658423064632518835498198925707923392550613283117858427957904201528506063506226175839646791026949266553384159944730126915118435681194584735518436605784540242945888182921588104632408614587585020376081857093314591627343900932264054249743147160590503643303210276020532793550058364362818938871667716980674059329649642646685020584312993367711429337375027335657398122079362060762281360471603078356241654305189979286054571564222364135166804145441207286749597500055421395144703301391535832810339189777509659712726067019713497799769783109999976644407608156493494292590450455156429065270849801524199240337903194322689416692227061214300005911922198921177138813085276852063680913671276765847723102053553252462375074392826651707512924261278321869510209714078391617450441563772906070574279286190368563484255799933101400017421123731740248196098779292544743830649089103902976512955617449528243405020542821890806233682288631216295889069964270855264876680296401728298238415773558106681994667051024444462347606871272808476745974782458441225018861256954085575051890961439882425360977229233411293447394161445974959340899409009673961595945658774034983205370223695249170048574960681853927647397982000320281582032298036799441517066179216086322988203543455859642954903267749295429952455959437969297550800724210463686232924168087512198036869198732883935577813930624652187370093594066520143932418576466851452596343931584684242500514520565324097394571842608105923542343530145789278652125801285198103359322236121796784059249744574855326191726522584162353384640202061344204840642312083606216814140574983687628671521186106358120784003907853550517817132695320988001137847962064864383093076399202953438183581993341919257432134499255649311519245937383138775677601473599748191964540413179178232669160862418459713211396473518992313775145550852206670784430588274185995703906789953141024690408794246317736253212910697488338584725410195610391877372862088761743790780469766800416774498135895670136629744625593008354068201796008558792117805008305626750341226203190685095054427673243135212937532466045480477128458294108259700364806625678300161605096127922398213133191957866828024173461042590746664217379463954898303087007727982932649248438384703814678044549627242045279830493908185617552849189203439434411647123911080851205303974490846210917250088764475007701243970287883629280580186884740348427794918144483588080071746673026901651206342241921014454065015943204457007959470906395141988709524394616585893361197250217741354977365046107685264193367349603395275845535324788695635882744654952029776971111373824222686198816633090934879295883028734858591592720562785004637982167361575282938052408012744490368827451534982629205873973598327651097246056655645128855959215135304554907349457685336054204038316653325275436974595745939812993657273861916440892921844543772381617037106012129920099369857061911723430169271209639778495552157474708642205922468855507549306662486334908320344258793377470087585936252675140826863178996820813641147218559758800357084831460526986667500014234643642000278890944430112710236952457935261783231097921539724462665978785543522124283670844011498129313510529394089004456908203935359923264619869015294770007024183115904367791132417076091033993972107899807060824460211862515483998711521607157116698693492896145646872776571980676191745107009553056804463988351229118830974214980210137722253314869147838616609107498564052767097506182661886355283889225006536159282367668294946623571542443024899857045640699591511481935960520781768629465940633862013519976894815402982474700147809047728401537565965294594671112005663639964761211394156181679420857758107954159417312807647520814081085013366848215483488746196503859446676143237412721168587910111770097914798682241306496121451531722966195038920295104778774049563003882793461079970436192905219424797605963338767293587145127237348689082247211137664237173054998173004448412832513018901352667969007394840679873786782174955682595111940969910678396399010395244784401382961721656891256232898891154365718440806438852771327404675921190813437747105503662271821101029214371575182213570048094392751672107165988746252429585383428836039099650205965366311596151730636245556939584921560154305125762376110082790276077112364047287958189922328997219329113746372929922101173308980363192093251171436319819003929037646699594038727768892747828298846342158633142267042999846102261673731161194597755179595227138480360943266473084862298866780484652105141678978943768773271166327558836952079311928092837580266265568219936732276410004116093576002857666275051768115045256938813835366499349189900449398167030153133471237133560238484977680251288759151079142410437721388019494164727640918498647507556784867602662719621679106575536847205005852929073513982868027426601809810956286784615868846683753282222666819009472512789145530081716436776032336684545750201532676424120012416570106297670888387998319481777948023823160323010942327997334852568115258642540210009546698129743024486025612241912119819469742152193801475994392202862465400448449510318324410079012665843344629846232009578622064503405986322759572767073647501838845435927037745523383076670282687599052781006758100489051335629681205559472507226463303159766627029940847028524530343208876226855543235534304497200837512202347344004769565745195783299319622625714503527998434566686298828006719169256507687665101650352912113518264348081078989877143188174085807903623344913238172000926581770913964099348484028804347138862603561678203654370685783675857808880852695398245258811992846144175369079246198589083912111847834926333239587039231716508500809283954492503658896180460729947628552530878469004532363103481937756106388286567782205007560054292285983245599784159188705928269769342377688662010115013069782021256241920010103439229034355838604596803290569779202902048421326992064033363903625874675113295418693610916061283684021759329412984773736182718884351048243513421598248871978083450413097880847905655247335572194474145190700325264624181556390348074323781370061250957123664762903037882584277841146047352760962446305242242358093757595601955539352906847409254741225384244947089436647948834468156094130743625065432842813294160721086351662843246677100853216412372989076792749312370888752073340050646185742984360174995494818954990402677781556672271775722465985355389461114329094198714805777955538194535079249439009044084547170543727412358475626973219221364240895551162509364005370792773829514930999184997457793032091205472904073586662572640145345192778186333683542880775603380819197051099381688061829587343843230173382180234464663697269627823313307096528402682768992116409962651036981530456329344581033936648322341263557754846194868308437955039375086151540000055262308438646295893811044270289385219822335496727429672227747941454281641123992754381933455569990345110628883935430502429578272933154437736778969849362305201536056495035583628223793606324952507515816184562044031950650919270174236914435545836995599900422747855500891817048874537806852339483578654130807709266671094063090864836321324525195835724683334733027888788156095688185083599694869689816672720499406123686062252808389800839392414450419401036646877371527838327491818367857293767965322424542745238861540659883112760594818485385862497281131856001618393515552962878189590970457393454330567676167893893701610385510424659010511268536654514622226320193084494120498530715205838102331828857096821702365245058318895404773005627663482675770505610938592930129157445225525758690442908840375191932472036237674125228822237831229132363211807535522590482982493437191150161192897510245907428036319213447387558521793404618950562532300009491071017134357666326811504469896282573680166887876568688697472394274631943520124039784349638294943377228940311918805776115996895828097857796957244993820609355533240052504311192137328522848656253351270365842489787654993506542906299871883957627055741482938540611253215563354231090223612578987849205506942462672478456243570582024634491988205683237677275079832400936760727758955727828818223052679841141569409482702262365292964393202469454709789083141893682561892501103557923724872084104480646861737943921225311954696335558947368628578492702551877807811165702351410897140307319581688767947185028481842626863806613869250027595790357633306504441068108649532409337148374118300723073560363377386840539597451046072844374770352902547339542292487841112388971389907577877624385373228001603737199382441346186988776414362408925975739808168417590239592804274652036433890453343995914551868510543525961549157323352121671058174940449913051921550068829300245598087733470702269862352722652514185017771149248913584513962281357850445768178032162759581814178854303043147010087605369449064880379080393580364524552523548216349925009125545541665608558034155170562564054872261199443567483562520811444881851555544453821094869645254318375885558259084429880301647901645404139668822475403131322976784369876297339815434345312147078762498106588867479814116539132879297196714261134875653516399109414436650756907685366620072478428236448409823895817883460901505784812445948136926706677370506600385591448018417103667426840186165703430504494848989451087491063822937920019463193376469723039591139139358564094210617430209435628329003112780761994060325204528113758404937467521682968498387519272012121515931520192934523646868131495408049910352044591508841035781172458657669867085681737476166395287273267611222569749232780579705194364364850637838647920027159635148536677099641535208011880144506966962849600787823366614186867095234062460984487144755240240799248648836131454190414830367327313136759614599734381034485195020136253262759528922052991660541831695337695878194336714172988747750425450175515927984427669484301953748328231611396734300404422356222112937695718726226989366605006639860897859455385088918222414837603851027087397366771290729176591157912239617120052332930366664356586527733076347566990050565133552410421557884045256818458678565501505805341565085444939375335887524796632061357272365346178040777354662825409890669426329386273557383550314633161868499806166740638045611012186288917162039103653654265302169181985661748521689647157145454949745767591909328956907918683776900532437748597627925769418404494559054019296397821421354755574125036297464648385655629502390570681487048031632562507735197012944920951760215918456051873645079381429714623024366061907768546964332497159488418950553864166806210406493047988747362806936166292651863979877116321205318700941992860909447665520734563300037053588750315818878830774776192714680256838276912514012735833902328394527636736034473586120341368720360060226100745692704686989461209696116055709029362126432076037582929803588464087059425535707863533311888634062543443832133901472069688892867167491700372851025877441652996825208936815799801981800332601475983172608408619544174119804245981774641954598926500663121425709603185827063719880976251600419502609986901497798319528867768587127693575973390954947942468973592783667321965025488949691086196116593105056458495395464820285126586965609794471860519578816425609958089136469631766756127329303216277559080322104860613979906328053156103052862416538562272933074236323768738386792837619881641161478581499541162607770563214233326862305666699885661162307590189914435288344735652215628120813235399872093366948500705201043357873628698250396271348398475313164455126088727116997589028345957639699884197135847390119886663628443794475345542661355027216078998996124518469079984747808004968396194561592254093988196129912237622327448932167074925058047867879449290332456059127450526785276278216752270918267440193835669308147622180176112686460135419882827894318201527709894195889970457567662638142139579630213517015663253794752889518129359900451434960032465202984759126941528572186437563797421983305558256561276678993924450526772801298677116264113881410801551269518213319092036785292694132437099010378015518965712631374007775674021587568143017672354701941617483945459767065752556833592533010605952518916310665364535300988392643273895003788854949351153038418479070424744602860279179858485578128329285393776231541172207268597774886670097601200947807871308950582343847905359770370604592997607800131285268433821652990140224178974909920568494849025581669523105741646512227214040334726290600919767545463410632451495598103599989199346173135766568637598969622739546769259427678164893774275447406058851514477846385102634938083163653527649590797721510187649377418212404605468499126777856449971702319850850076582107719881094291991015174297328430370176452968738296120066133809474739182550419951836971099734447646191596346831524935455706904487029951514360725192582028604677969766264342025915073859711701351063623914740353428969799700611867491730508793856743892210993620688284593907871374799677149210683567693847005409245551794873957442155838048921672407555741034348465849892375011859295883033891288768693097475922901624830263290887064281093378220833975616630294700769438839473843911144752322700674668418028451515283101826968382958416084023670776871086459518160005958442451998373594310664821245290071048295122472686032572018626476548906363955983318243446321092344820445819483897457506078610006398046727160390803893320751730852681969207423003069335996370000788394472047408459377164474603179982695602545801354581899063704644978526320408319686154463571844571824489916291298543423720956124108575106932355801473781425609408983877883210208364603008924074323348102865455933705158142593650579389745294126996201186798746243327289510391343682943247323538365830090598718080745146051367112716477931179087281797314183211895630456201283960251354426900086072099854750908085423012266090729982252201479296467787027977818956905075579259567080773891563158796339748417224790483304736515143272034403181999476682990787841419624021375713256558002427014526053510776839709411303502271675160685339418005257195626716470410279391688373107427676296047186811913861427745104500944299801280466851978181374728641483747839074982383069080186380584252132674911561321274256863340386373211151722095371600644988574062051127398698591681713118623239096533372251277678655414254243989817833272505951786477808218602789292055740990990649567135939434718360053990529423017031028498918956136360238891385820085572809547645231547146917745756096268399598130413651906877551222067834865217970223932232867904226358898455856435858691085989482829028646951738041548931194020980154327529355697735348784180307377876187127361795344829022023042146486082616680639870208496101134032332629511335326835750156078301359387080333192065563844415383816751218636273850830111620015817910706122183025881537859166182739500744966826091860596163888809023112979306813943193824314442270472751927126912506867603765721743698796633152605495845995810152821659424671500189597131820517133375832216439249715864888237464434321587362310367868161069209098649466167409018600699261940393493673745886171603641393265158384221384881616945605048777627824690525625594377086057968039437407757150480476846345606207171046572989615580748438423654836007516916569016948466314484390393327720317733913594127389655616565027620067453007901349990650975963676502272751939101192709796047854232857494171118420972644656632542534634403699674186281170703479289065007965747022078283798858197678349381924804641484363653318955314913883454396729857383683766077070009853676876830261637570575188336736154330054883617625686623076991879724822493892696703769828190831464231093699352016875084633223888570616177005152963563743714981815139276920917106657843703376770574669503673783523969700802992421515974752690823488958783102391312230257519482278469700282773250365594034142197934354196642449772872561147134465549211154766975251146273704432663092703405416229420804226495044444814392417635059539103876652778344048105897728553008870119943911317794185289017067662916256685964351932660014642027650383202403444844480109165082218706994319560785010703119636642606602464917195028919478039087671821591967768036769280614392744815728797525236387804420638543235812377207967694145605542476950338587656062258414401736371860495024660624328588729299581716826935442269670300684951469022087622725827580545710259397005991839028561668736634689369539287413802447093993078276991763301374251965349333913212456968063535403157998921019307776753661421807539037403032613114860113651249539732262098747491970912755149931029630374178135525668675891338060847089776569726661093834835279484833799187080845433500633646415853228745611767317274081372359822478269394505256394278377500186354106933145977699844713001425114855157653968389008074018163299581998410616404396228478858954864366263751279128558763922096253664122868083891007572985525815476026387243649792544379359367854287079017834696085113713395203433089927048366403603258195294011720081590554506773818159825071343843158025132319408694103076113198524952840641444537341319635303692833539758277828826849872218709055416042822093182032518706994790661680128479668359901311115721161200673449672597058161558413537864497148731782341038818804920805690667660322117962458949091895937385966731601388770749100883574777319875260110061561880478193387079715728558472220189365724756196675482403882738902429136817241012851376591419597979698544614903937893231244727097286476329603238505796788799630919081083729985478879816209525328367094208721776113445184128889905280661016030091948321901280680210017957584965158473380096527422064160843844344264588151710116782977398571168996308269657271618286490466279420479379267180752822932692709100844802543401885375316514069848116834160450922377706677429126444223655173664782954878149885583395467560575446197392732467142311228478735944957693688762018315968820500483460625483680914730870688888110307342941235573994780729583091480370735554170660718948740854790614517476766168716408052871340236676303379696523519249687839633336689470439873408794793914570986089947530027681903895138260562662597912222285119266044725869543395573587617012712466125802703319981720549357502882394134572037363859583515175330477745506604347610187746464872959508540683755413991230432805642918941308856303935603791700223004877199200674967074725002591881481106892223892794043156353473168414019210097833066130288325500405976300818509743440537409631531682270958866322093603627848754017075976068613426100946280598051802247508080515133243939151525601769556669901413407958784285205013011035151916555618854485283586282001233048602949215345453082835830292221703683311743077768317917917170806297400026972582586623557118636244695299056163098583871477820295077186168319399263588756670211225147416926302378582562059763964009768110650926381547470229429100572284714642867344316903794339461826928540662799859803949764732267563290758028900442034424375313125547128170960213462084145872144184953935778883155079284075781153893425619908305399367212332166748961638782464077442883864899436129972105786150017685568860390425083920250818336960393582394425196110986531831195214599944832734459330454988864970100938670706113867007437881495398710891776398738347590558501094021901532224030265703163292740003207832905726434631203494120304120256529425033374410860718028498935338087595098021344477255156836242273213153793589656819537196066280287609275165655996228970961972761720073255139274245840893374028223441023129664943610309582016117121880129192835288573114361525868775946747224211948354775180615904232887357411758117962648369196515343933926716169053219339312656461840544179775656620032204999261376704180861661840267473365637737872227668688139725349186900602436939505476881519510287616958002002952569778696821425161812519701629972400937901936056204244539976179053003951692937423157188538909990967758338486126260776611173346320642177925829955979893804258408912361265911486866961542547249587485553404264636377589709563600732017258419419988721222130527819111985433929189724878426044706387435071695435949515923925189447695059798021714510897954084974071638394920955564103689698708484834175983035602093400957031360948179470504962778014181429976482337511727207526468502760121010166030804486715823768170130394033961943417507237205360952314028327075151632543822903667838998528424572508079541092222440515719770796343632673269914752600840699511747251206008540475912145892711607574527035064151839321877106418677519908745551008932595682660869743706506407406616564255670392713891188674327899273019720143462733282902874962959220125622031867543068557717374497739376811891919877151868760869691697612039682676383189713377694223116145334981069776904909634694480288831791909694099028328672740176517537275904437245690076330095293158433177173975716511838258414411300314420274752502163356402469530545964138285147246174554055476116993718669155073622991737580481375030521423846313283178008641472556815183732293140662177697352996287442860142693323810490601553730013033630853993059553887882837084222154592570655183522872785087560311517033747918411490648740594135208383295656330678855607408294979987692816399333730906858513515171856600564608293232462942505972829926185449084081475103975129167693236301961574561490697139607245335076369685227059392297876759123065381947345251568398179096126711783366792199382230870756076646812678589120091436253043538201440029885254154455271241753079284242103175177030933819538983731839726423073514172048986454464464473083390660551470345948709311811065300946046283375531535040528959437175752092761435418206019185668058534350692619086123217099845328552834989504390885792496726390552651860983561808196589819833416449069572230436818168408238570413482247378115776207065757322418045733747544094085478105191102177066331361991167150776034190219454945141493156580883873057857836216444945513350235626005707463793745961834982338216800453288759960145226938957885068145106491614466622315596396975111755942989044057916508103289043494682622798403967576543442005027939076262957397836095990052438768792782642261543149009962581429151561083198949285052051574462371549631273052782846939757165265728765499886619470250952636270488153135780817474944160235048612134520053826457351115382377955898059738251825489631413558475479887410195986812371285908032944300031641039842150234752897310123694728831001295684461945021687893400184212902386101425948900228601691941060682184420686206680371084613861031894299066099621642654089727438593584134967347432371512452612652651692084855970639273680128708988366565323309597603843465603588238960255219812969557484002516053557926453448922802098997679822143085771481097718019654734370457004676523633042934629499032913936795873207735007091364019496174918960732679735162355307355059845452158803959585451431906433456676461658766139736350881322469363409279792767861661654383808212126745462487344628258931874478026800275466819257435200174584739699809489995847942353978016735362808663805443878005555350846986040728793138584761823826241944718255833486927238213636413595261149776658611292327162445554052774361974200536320188311787452966117611081431808194624739844936758792531884868798924378323792609666649485209622502663679619770282053864811484301808274824954355505480470096877465809029870585176539885185190591120819980266180510443499354732666764007648646779416827802079802546006656348627518380000657507843905557784923076338747358654648187599872065471210927045199758534417398088345673497046178075297740357327154085815100756812037737913262927376311885489752574601322847563328310223625283031927722679996545964623742234459371043393860069526044566135960141662648806420834244490021098968456993807903713981869037162637891160928775018000825382150668068724606563041760022819235288995220799276320036317647790575239234185215567519006239535151892674836802518918492842147338281968846199347045692345059920669389275929839514345645885886014964213794788535633487759028782185566084762788769417340023758129105650667865885194085378263603321701319250688625493140937033361245693589844074592013076941174729131902198573522484008675184575790640503326475200600881554695014809445497341797318205938367833391316573508385335678081661239941417692632070732487884385583367401864087044843944802185427773401587050289789439559720332245404811799587478713689610431536412268763592695773433755353110347673142815764062763510151432022813224594513256496815969917691007606536153875802769186455134934447316657970903853824324334540446983539901559913738722238734030242642145713116111105424705770548486782933785372662129345779527669324125005881019182090240826556785189564289622313391207211882101469233398090064995912557273266766305900028655055914231257994212491842609417885026670324613803428996142402803704421918515983293349165978049905443202819092468373142643585998544312623188119958812790987878995678565974720491054192546010842760332091860836319994234891662506223120645385342318563420126731498655103717130060794011839771588770510796269330684893054485066194693986573379642548003924544644758543298022093009342401434972709580900885284976048324914888747544596522374297720480637637019323513053083705143059187622024409178502989639983318870073735024608091194779054878687927215952408157842035358534076015916908107996453465285302158019589273725844985162954175623597467051455458844953852319217894604326841145658435155436161408097276075100090598970354075962229432632779009125497450104000307662453827747609680452721816583822760255134499829689342346254662999105799572959602728065660464288490083377120283981720966894222906171864358176137325071646301141507854196502703880198841033035826608061269484267608555159721890538953404992374169202664389083282744156284619831191690157477674232069753857759291177835909347283331797644443435557201473321932488837960775268860359184031929770909614745222368736049792882432378524530561696590601009963671404142478564565767937915074704122077684406704505384786575777726404691921615791929919772896120553193950313795494698402058170907858002179629002065174285004110455999350333980297862329417648197780032531267043586821311421586058301389879563134695834474539486177763018954389468635749007006964999490820486852461192191574231848444849242891777603980520559612704083804281083299572890446404034116006811592433226773651672247872100066279462440434472893596514886854850487638195570784547715323111116875004035019855857113159862447633836315192442233889042131666349239085482859886253267297699902193603315178745849020230770546062634619571350401062221297104874120694998362843475596260873556547311125683065305322460124764653266349278636005281663495733828155013009161319279486161374320776060954506811166593667075458242256474268621210004121950811408591480585735110043386832261687531133793068565896784935825643541528933926370419389428768964934984115474391284730080105753110877138099716751586301078956277061268441801621125849460614710749594624786504261672037987208924185187761294244971756097415837966348575426180585872067084356682981066466917450072588840925812418520816142731044213311227273341618951951926550398057377620866488625630938122911555919513029405419598322730305030919170429192979739781207732312246858173695739476530729406672450388373798706638027991720482661758201799604219037752779042519413991267721854434444302265253883874613453638627591195433794172936833774223020006527844714796415116286149584292130577872380564116078568077727239842480717642818074518546793845979368923198178817177934646698026321950994720720624709782633068693600342085162833647519900754693880654975468872147422454405825217228553362048520301602935399540553345109716848276253260306406467762382079743827621555889985561177485596135556568760815708085930572725468112080813952091635612588930441015519204686247499317309533912382075516415650650831805798167134260720385429839791110851121544308372039144365601839621858712526733071108667738731526617507199834955451049963694580234729868192392640772862165565230131344388041028186954829545713114057032026176947601887827545119630432487529113113558030054290827189369905081385701179999559134899816962210948672403660938035994418302483664071513417630726393240544089952344407052349061602886529850765965980553803247670388661647785605362949787415316585148215049386816273970740867090330273445622809000156658983449859129725706727547914846256542151079121681848405859940537041570820683310187233965414591645625707977736097872857487104146156935634125625783968129294500245507142692242175632227692166764981087010321555147158467840707175231073401450007853009168929336963697900582195532629287460995591911108110309364032378105574051285623604938240479293191141992334893160333748766108413746012500376266741752200782945138033422368207014907291721713644750881541464594441457311490524495574793681584333093442496357440643562101268478526965855651825496155051810216962227640973581715401585264197525496671158937823551577296830666070944293584767691219270719928674605670651394675400022449801668224725658958609455056647666183539390912109659262002547587540572495140369145189829743800736133290692567221335953597844221159884578867318191696533964467814749025896230082183714163998987244543470352588511292273067623545751655979647837980076600039345526045163180170087957882493305668137253741341758919352206461880540621505274947527669367602264777937440184762453307615334751885688885131182103587688723794939072252123762155059595622091220611398235883311167350539563186661952487145847656732313238380478123785387886466566648295736921650957927493657964640056041117511928088516762144739606482794186311024968649481321715347568113962334117774746180360448808895139197565808351237011920195927985311000784241994427726872362959928382577073811305063497040567173594118600864460918895969758247492608857110860364774831816629989405307710625443730551327398094598179692018769503485719646715227667703847921121044244577798894294306120287300706787941414230336790790466556535989305533996812754496344792102825891161103761828164965870514444818935471791018664537871728731442293201742649743919288542299394907506646072255999620361466200588592810029843744175030082019205636276882239814994075742446758205452387948679131131897369595047560825340752343839431554489878716126834917894450268597970144129797547840359991367743906872734486086613271678838183821945598756953927556714697792958214815146341182805138164888596026339432180186579968072770427112749343073039223459840076148979243365745792586356346129374882584270258410280096011351654733566978122918944850372877178630834690690901375965036868686574194096202928887926312101664642897617312022444634253871990986333260773167472021143476443476019532353182422910076017024153511631326512440008097931149215459529651286722247871889553904830964246745703529441375087472626947555577707152824724204618460874040784129528736386179321266650531771790193135925887348715935590492916899368809062356320117858995309316877422506971586240048969596873215381312089226075436270418176495811411897271711946049424405998695043040489775956859886688534427592351380695611066374431515209933056418492725961454080203532106987664083155199927788473201494753348325872529064027113426476279365337292820625683257461546611830257657898757660874357892223808863112198393591715140731730629143814990499684881646902000689549285869051641943962942418373303065227209641691665599002107396511365679395632212455949507559624486486621408782981424497197160717395633714820437123232601325736416878259188869946713164285893576446666924108351149762486081448262298248010089237283450010618579264889166185766855067099047604713496723619350335353318918799701421684102775256136396657284475308848847698367046204886513471724109642990732320256694676030338361781200606881556833017442999665076822489096873641690204246799444552966703080686382478207186203035179100609174085730051513779012342775530148294652078519019286400116795150300335155243179688266773126989094139901919474812380631058908180129590993687175417481468525772095820991479382316362166353140352448198181954638598407408210151031274456285224733097322723598323657245023752577665757490579481168773004013196828035895179374993542730383344525578275443813068031852889952573555191874066636111409365053387511810589253430324927864087936009201909477023696992469785092569823483895258992557060163853650601247064993359742281806836394775301483341890495216166105679413215225500999582142023676221542275929859735134712394233181181569305675801312168497908283920401254853649257246953611880294793040531611737470516954953538669834689990874626704956606393220217030481472009861093955435128082176117319057339869685022405682881134906941935723752069669072581059397745358219127968012973849777338560759267614532100603058722255287171423829147480284711256997864862916652786412517581092163781373944633793758045867466049741748413316284544742218721937917958821839737650497154594163239585941843160421609058679875225589376849470767488598354075971360778939744517417330319358038629818044222152343118817840081035975540795269359539229935944693095876813894882442942192141127465036033684036550995309977891565163814528289311606570800154749178510180051371804015075338567304033396673787300153222281123121049130520318840761692651017281751868252617244676198861859897826335505906229989825810138400291752112863227365840932524108586310183030003174203302369038635659513962711887084800650477339889671521404439087986360959189495684688692531335132402992808265119138329020845289695959207990091706047199263865805771647888966651105188828796168775291095122273516206837789673622061892648285562648951911255320829326749655129612261259337607551013472387103008266820333866941857722069532445674903131487420733221857368555654891168821488983017424419234236274227663953526642871480647916437685040359742989805787789963882705892737053232314478375030656636091781224373901422588275891941221662889133924967372055879354973792615436899243468018976852101426001024654603403096643324946846322044610431500169180068604212053803910227182933976347415427721070631602328267353139993034550631120428826568112619615808317085364187086744371546191202781011551508743378645155950654734378753925780850329186435982414719233714914461078295815205254574695768000120298292897926872093019402731280476892773852761033273126306595593627817758814493420198810105253150082040552360375820908871309849466864466418112864414692859397795504819115144330743648439008930428193172278011717116622334569545101365267147868937246319967724932512786924078630066392252428179109663576502754536303769121478708043739978510373965710239078516333047496767117938132849730010606178097843096882535410121592109379049260250285370866595383558598123190885631623719017988503461933324745544671772471694306540601234329665335824511092949172125401354561883968906473175827227374722508250201737741635163354035276954303747637237373548462149154938941975359311673935454151049763906114440816017370930487496029887622100557563646480651740115237877449555053094366207831077792553973628166014177434341528104903227544790800710070799653030790387487192300646515556130183750397792489431952160167810252185128994745029663055789319869096423939192742037349276402248785711288143872365299649583207013762898319772834267058110990934064875986922711715417621411598838352963483997407948254577221667458941922184066790871420837819335182190561532312909559711708029467741899566412636583940359728366117060455175671222450859005093892933053294719167329827734101547544311360030518819627397703238195453820320214109051705773845517291915738931517721062443919878053719093481499145987328310910373609367449482936397142426768079098194065361720598067336281458866176903988250263153057613499983791219837730737260197150242949694527475555815394780671760668407731769329974697695111810611760084321537530531262737987780606111449448773254399308700604883905831638168088170855522902862657956062617229625132905464280203661084784363486531079405919494442438748059906055274314819640215485681226102782591729861616510645273040142932109156432810000270659925334287831615672133020677888986277103291935576231312331977540708025261458372394706035176994111606160635143695990912619208105971824877907070054297894754258767227809949579379250425609424469312411870398311316680077821149155089018538773930868381773319502154395769976498020323181905580326110319427574592776666996238187004242634724350044579744597442384520449834842375245542135876055136307041449798665471788051354258532981353649789581805587762501970079414429782661596883094228349854281754590796623698740103437591136819374519884838157309444215258825911032902649746034482625471298330458714670811573429158309767236847967084496863390043656102191551652262194744166680009954175120345802205272830337634969947959141042537950107385400699882597643339801728540768467581935329912888850249791884976357703206202352245113961215426035024355764998055853463671983410517137565704741472235588462261613948316339891559994146984229585794761364409290527549860707235358795474508564345735839918619367613652952993313575368889137544845099120390409245616040327250975518465944088365974934127524755876379620909682646276673312858940096454858244233945597432138728954287786709874093356208799260210861566337657618522456070013735919966212960789812043531042413109700095772102435810828684643790694925295277894929285193315029383230033593884373134137001055868886736589046878634276688075444897698429773471407593748880695207862485719292106064686990856884991206996128279506834650560084072838508782916774891093667946989971129439430749082510793124902693632612294413569106885468601918040553600334815868128261217686662636408259435280964257687166233586023001723109206905761743232574355778749094106091710569432886514316084069483806279049571997826772352711422528610860277618535625615475179469570661170602689756064704788235335980868381198267098502486584493766501054708288872292368392440971065053542815307538841720762148797104797826203696134898427726236436147375677981865211344541755447316586912216972558837038203363248805954368061797444146529225848742747043684719065965584947285636412461804552446660212476009386781782374959114402647295316364424436641865667761602169106086725824253886580772254417858228922509645826737123978550846864058854716427239859021519048970652156336829451917947992535010135609498582421717180196987583315747859807763532052495116536104301009081564872211282850878299092849697047122758950564050425998492731065447187976599450825957524212235475635894193491457110883314866471153641151607321082412959402925880687389688555910929375228590519797557276828604299357059476968678257168933842078915936999625500787430290734908744828962816116451011421699030837246304979934162522846266730179901989818969439119466592386242503244138696406434947391051172789797488959557855843026288449201806493771514537024047190599662911892120079110156615016691199822613062114858395686341405443422686980521619337374433671479568282720712724381975656113121668735888617523936774807393608609372348674471025894449653162160920525177434757330302443455960972145821468646426106247639195540391923067134134278262827082963787686176844714799394068767866012587788933320625419406675789552308092759172553817087425611391320257259166436230692750473168959459445255673596910129740422228555072881433345135118260404436427055155360842102554419133449615818796117155340015354669556818228083884051511464767583492847454403996329862894161876895328469978641779021427105387800760687865313090670730280854819852717764613129493325251463468454303557778514582773487245537883225496222123210948091157529028687495989003318168720841341544523439787262521490437655645492449367129060334973203387203575308153791821567998973735895939433249760278842591745121915880829202476970061413994446679485107516840339522107773594954402586363334388889688058460819173006611244975615518348347923560455043325095939817951742786509171215942182725193942392791509920938129567253310805110045493314967373328451971706565596605395169392107124759721325693250316437753676060326577451465773337002986152476384872301722009951959276711682942715021021002801587315346005523004118902222043623248834390960077424625986901300593597725490520692158298464126136249412072516632493282751628111028061555747908830923773389926791342723981754796991993539603972153847342973684675177475210921043061872429374913393239177547884374995903752938869344954605543909019345033278143076616397050308654785993478670554843621552928522074323797822247857563936858897884476190987150512687933574738298246488849094785005170968596468281017205133941908130133904404510532453995484386205119148177205697867867681517351439495549985683190738558689860533037012132827548758024352797600102438982323949873407763764320699256859070993435269991246023484514401912945824631999467780936930687024815333643579654653365448244305038854227856069780946178117463564743365361843143912185835045676768610788803517865829819688381407977266035167056455082372240918739308311634823846976490834204208517883562462662704305894916842049816604589241557221537742587442919795901829583655387255616210622628255449028811086868648315618388593673503214222138844770266811637125575580793130624584496602889990628723776951803544245435617486833798743476123534738265195422425570401127810909856179749237366213477345031415578442662291475650916149718243687206970498043975286282615513391853087017045147609421639998980806796559738802077952897060505734115677082987839227735211788439252004791033545403588387557213112922274313022149708627427769114473588288908634628552321618502349257450337825188500963778053911867839756907503827732516269205228094204474051840459399190274917147562835514087763194695133171915388418372899341477511422669098912778055682502443803045381047516142827770330487205438488391611434293075893891209508061628328397798550246241285840085471710962476402657592222072408212697207824660424525694304288068972470670594224471899016074334514328460625145032568444574595218572936223202760302431624580284586384510353460382963825803362647681182016301035608803919693634291426834255369002569128151216456828943712436227862822062649926498175094718767131503991092632016097558753394105415471624392680911361621479532130013272023739364749838554209949109967650599888965626175893002437561951341629049582887359944238964479913229889385069535117322243046694904921710067282997169834472332911902375313747774946708819804321518870621895154919195207175241858628233625429668407615274339816363835922601446502281803041760235786722432490015971291970332551265069795088234605265402993971029568041161563242373790250653368578970858954329501195400892630428510342767535025746657878390525783901401108800894056031568523634663958230985635021882669141025552429377351479834569182820538650138976530976764048183319028232154379515850017012047138498358659771356216170337137578758226666378381761980545838120856738627215112077801715181256476656134132401824380784377336043237062958297372980332344392477742609331079535444686387662307282664954868222587446694048243956303823936575019165546782145762988946731468222752035474528718188496778364928856404328134534521319389486064854306271277753505229180123955901617831196739712472024822383024728858544123649946339863163184032913002304136154804934845618918970217026085385223361586758727557155171350683282583660307995793507659226982203685266407562003416080348727086382969307154271946037541360448960135967465279957189834060350479912088631063484851672293255709023718269898121791329621704230589022126581110223566269248669922023272171447843642704834261648422774124347450088691827255263789911613984110412932969282302125895136929134460422638166995545167261877121048675918831819107676389628695223844598814579502290432295572893346680352837261799854863903849820329952239109258085240199588276928099451339869060385194585987758410691790448687783689519059843443809532350313137095639138168636025221776746533647476972016072268123417580137267534872610767607477525476659898045985081175977940724707339581133746882669462741496818304963829931265197811014645763815525379961431371227962510149907351334981837811068388327941685324941188438881354643268542325127915689461057379550470122767355973174148575866939040317074249824883734485965591168603714522431233818551548085339905181470777461994040078283802835580769236171851117937391666414812680805803057898339825144465303701819059485232213389063664181132127223997097171862831997654627369238607157480554934491444653322710410926154861516971182458431953463972983835894814982393781535820612125284914221218852370200541202986535743987864824910175271759991639549249077259913765556702729788994828084729334659268545439710682956804733809119714955577908596142559581005248409013307624833605763144806646025716451043958706691302915671162011862909299897227572447355376065239011952624014189798923400863031921603293375047835806060281121531003998023250397096037567984141930625127219827042298562451044603686265290445653969766997026521378381440037343156937710761122497110050906348921417341109680838155970371818800208646978430575939616401135181109432934072314913481202327174316393788408505250208215697007316378278108564432645439764268748776426220961478876921819850657826120141176642015838117139033634487420870028878196842185892511346411566852721367659890325382945196095503514938641743609103247567145894627880519850141479837784101174294101484774843617126649667485202193289225756570665259941464872747509927117777893014388268174524361519786558956780310275171083915480570941730029622799857016558994855207268848572076805604390265089795796371806162976499799875331143297728196638215706285044514427196079915280828462691053132660561913555622613830094569963721509888232509402446196879331173074794538802840847330192316287826593790949416862223070292670893938526898940166094100414584843598692675569286137594524171394225903777779976347435242390683900328704554793664258195385720677126191454873365445427547588007020999039140582503682813881749711862926923355039368646356099913578514560474774714874766610937830302305812820592756112727394525335556181405347139976231499687053367135910310359087995893921379960036735402732378936887894068085802800185213434291391248304875879172573679833814048089010114514828491995095723813435539134749444966383108173997986563088939676840901862747255376721609398862188535437204122573309822190139715623221428981674940623353156880068289977143582315293793808306541053468252491493757336862293025781768088928265941606841708198228168568749481542831734833548574316081088892008065657947974896150387156850772334367180551390306695049447043935297810340475134392398821764767085836264267280979034676078065730427720025511559400096956587022753392070504195020987292413918338969841368188093762038150419499951029257736694718363688629521637806217343177255531917149530228303836928504917796997672537615089696466654798970957202897029989086989076980939176075229498902794548826953483897987787392372294464640782378502432195972368943453373783412026702233084427468659482141470620624292356534108865784717410964426397188455233901697259746852708723663545739279316175948976346251258127934663002143895946861694037666098575037377440519444297765122984111956089986503083619163636613811290027602261473757904295444053861145842154131795464048765070199942455714051744370074730256554768979155261079936089482350680351296735889317913974724655386811602527171724343891606367073628883406843316773558284910037838957439866963522380749966465683056011194658162898417561570832734136902681413008688782571585110443457316827557679070619216226587433683215152717043607901408284398322904120652674079495439482953457608843268382663993811605007755758472514753042527547014543700878055170928029723465223711573666950495502426633504012938428223633738689411183280128910120949040812356226774703157251951278313347132043278238304268312064144604607663924066819401866236254571810438493447638373401570893637911049143347786358970371768231053918657970820824045941670193115067314509723953496441523508134186879777668226543839230776511274240447645697305590733431713102931821429777474028025509389186879903863115860135604975500121370372106643284305440539174153215633861184155476379035559614736444284924109778385504760744317219682720521748720342880333257048730310721552326551350257892875575411681985957166181232044484212980408878325276301707298837759426821663020941253945392408287378094254514311199524850532973653754384406198622068219177027220308940108600152454027221866968293494920875272842108419889673172588477301898990767628435443465806778372686917340067601830741215081718532550655581263048840422548932952415772706416585248994082711507441218059605881573798301244476246107146016471751146500934626635229290098837422464185510578962458609810143286018009588429004969698787735684072809551500207973307625598535088675844125460325526826384411439224474085466772675299619122446367888651849580903794735397917551712206017778374860337137536272724853045111128943371014484057842808706564962896006446808604566044249043659053771001553458134273985857147762143601625483584878288958743395402902564501167815769895951978695431296105716970953326257229745393443468228499626459075446823706848131268116881560041662538527330680517066097281084045767977748563185312207696244945024405982444461037937062802399082108109892677108487494780984418110539588666432406957209201815553246420230441973160777339334201952554814778576543938636597811730021013352489870164166176044059425908385863077213494098639989628486855587541306460412840733071613823181273710732030144610405065637404606243343903587729697773357008950281645493080602762209727741610339485409379330242784939371071245468085105952646672592992998227234578418930714084966247747890369414255320591360011994507103371581953151270127375159276195289882769292556154692296272167266041207406227823812597020819354103008735836349865080776542640036191243341638362376262815559539682104582390029470926881373643406574970192206888619338091102270463356393043218040970817284254642911815509307232472462505908014134288585204541184092269707337989018259022763775740703112687832711034338102770852411351933089306615535322883045045497753136800917830984612437795174626154204885694348725750899007857292758828914850902153927996506416902897413741207658968679679337429262736600716786502648932951147030559146067286370805426429984484093189223671028884101361731036981207141802298912749696747916139505270377992773783281760207840721480598879633573416776701953279340455421463738929309418071119656999808981038402370428606061211796700835791931687244604255790953145219207530631798681876647132738985299598397417781452191119807080549170127353215242282766583740160212589872273328314811738162248909913106351722059890687653775269256353618244103811230481643722515175784338283264522355792574256612486510296604248165315394466362991023857755620496469850988742729765227101678556246705939295839839287599934143980394834373132745553012624300102098649892586264335020705292746424390392035864125824457190794313590815639590204718552248404157258841440148427476275637653358935863572510849556943222276525431916172363751552744264497920206611831849751475542986448428144123108516453840832635964149273840278316220037274140375192562924122102597153250744247368189544696832949246817953433416850477607735739837355151685090911746151958714976558485749257739791991000268423831765942002354672930854340164792125803809639464861671083284214124555500814577045929659033487495008317044556856693384329428418614535278118140149301847979253700519951613066468824910867131125568622847078378737885387180307572072996153034766753516888436030935333623565779801952599055771725181837462952573208855514113818586055182606961953830187142187289823743787002129135497334536429066995127854279420953412324768599577757409860996132430046692160626496667145008190859419846883344500201153323709505346492688524395966609203929638021206611884834991369916811493761899084009766763890170068862074966770613656641034450853854640784296384440409194862569113945654354075938133878712941696421247448460719768457627307569622795961953990006564244607099260920832170489204115852430325996514743618275327656258355680114910828552469595553319877213439538298197251603658445262484860037937458954891169662056792088443538827339392937831764065853760852830029146047608882592815957567204138847319830023055865243192894036570506810295192194668419028307755264574189380908398805146710843488014515586221441211019255088077223916552367355093954135928371674935199192304454477096251971354780222454108008473183496703390629602735621219203227786599517822299131345262955868157168733987705128671964742942003947745174900148117776776388573556097197696225591572003305666977774674262091587446568962085399795459383787593350451172711098242814657299272442663566793425973550013667780147853299884216573924315128389301810112708173837942950116260545802627966389603376774296441523176261854082581624473655353099844392025516090176875311818831175338426825377453377159335679268892147039409862711794957254560489240774224466841441751275801972699318671250779793989205690777889563820043534691164140202148752255707969048580021276663707111589389333318363386298271290659374233583069667883619207079134213573429808278986720485314577999453659806839499827677888250974520565141238157579634369010995429322274084155895378407989660651998175992056294554433903574543972709182109851924339901064837229019241983700130103154022382951435296347633849391062761383484466884520435130204292458709008647467011895226440878767447900275800129373499905758176750021915589951473191075859756700871520073481616798823593999957183763541266877727538600181496790650134007416642609319854522401968536339356836442328249620474249084549629846296571739162171352507321270440865049636029229409327166536580961712384733748835033711627083090019204700034316330036980030174659513040307690435486402998027924744422970723446617301531294736894654907226036585656493694301251360322689217413601176492114941268816528703275436583304800377469225265548785420476877652418285060605661953427477513921058464544381292219623109791690169075685257735369664443009292016037849076289696414764721993816427044469888569775397353369604484998412929602824019398479001550616526970734984994714994616538973986748939527937859228321602213439596951277355818007129902508519101022107955334417639030781393662213609664481368637816511561806401807683231428458153633727733492099219404717037659955570094328877205023340693936229915825215561851272646821596168444391828447577687655248527788465759305393372239197235980565291003688048632673308723723577271200852436579963272730815864478636115596304263651326236484210752531970142366051410266330706922018249834549437959716328156431647923850551094112696041844415788028537388491967001246461951951303323973742574696117208622588382405342406033219270799697891121572633350654931198757021975461755342374730427096512300632925608371530047695673540110229434740660361560446247939499912300903137747171951220661665348108737150046765551868224499926337364545145920532100906383610410118776604428062425596655087414083639034132978136896115714952241851012157937210944987202904259538477591447776481769491066125670133264261600159585419396697951049809884157506591583073193564422571014933943713339380316231693278481792523963917089958694227608108721352831480557192167615199987355186934249682857647045526336999610663835679758724439970052966782844038742415645608796795326370094791133709789829675494787931152884031349442184575516543509892023425597546353085619148669330358828200833046852058643859008770961551850182173376949422108318956638336848590000288112386315504227300826583429152546067866561529182929420710379597149199204509498525379190785403370493334655486719387501750391138517009809850310547081731065414434805359974613933501179694045009713256993992427611161936448217488533850154470078620159067525219275913019580584187799618582160071795291209984232521210333268117505000096288925616485612842683762235038045978682003872757900022024929121148637054353716005173396817410266366680540306363666323677642059196983570363493403719278448298971208493665023899386577767118289768720930399931989132886299101915510895129377696048352122553745526353520681546593703683411233400582921669241540741781067709857093778136196590329810772363675557379801158862402947233809254931364760330350846311974609914018665715720119204240025926893458037111331680351987145012897260020689420185098922066660863055612357509940058357601087104652912035180588853299434615277843110681949850196395841109230843603047982707400568714981427708746081366664367995197819028636546042638144875693814895845584615288664808579166168271186261266213873804758143954460806461882575887899229457320216637236545344259316610669217524347687964758951262148085521901081149118384757384091767463437640290519065778059174972066125914714816338369166019987473080986674103294187548673417801169294201969681904774295507598211642369513580973618226132136282963164330908064665244884260080206912820817194500488661807402738022882632415441902967665289886610190400250312420810805483119574299418564783640728146292942529066863191386669479343564336356565686990296729997975397923781117420562278616612511223831319294284970146424355755872415560496785573469439908115122775965793557987999228732017899607120384100329350818511808409975555123243973947896280259451275381212401442881445662097618277522113042166003081446974852317556843370705948027596468681727003630577411140003292047568134456174560929666017832840655643142910460702433706862206908430580902569134299768248811406435179907484989666760851605444924618798757149988601189067814766920581636893443277912778140306044267755776152359825922182704772055723205394852008935113114119165380881086806755173759963012003629328738728331384825535030178893228405786077788785306176515110613930567036938474735282799641078671165916724934999199567569694776595091064370701637302704599508413975672118554984198839328987511513358599067819558197924925449099035046740610052671001750110898757364068911880461413498022717808387661678372136771153423304189912066353167171253935343101545973861158143766688393053076184618795132899424068886063338936827633823553558514266429474394055865111959139072271750374138886498083414292147559954222175331625618273123899782488414633664961158766504888707367739678754178754671094915541312027514391870895253328113670811370926816565851200056411186160733763779790857156702208519028983333334404304762501454819013170205255517338699086161638515947189442619659470458164398849050390263838840345042954665431896847617741405540358594970197760468354193263649304237154535296591637270303313752330050304201261190162655421642291629901451115780195467824458263456408108636733216786208811982586634000829342420253237354991009137880845325584077384389532995123117549569162020906458381843568478905850373041730061684100102501780917166308661158881051700071346382894079738132410889905411868118653630402632981783416163995281284574186342742871309304721056920967714726120378590534882258124716802104814414256672439336962776524834306417159467198073859507844539927085949173854950532212231470897937484215117846668181450411539686420569461154544307731671569328556174226003232038004478615462523887199168570999236558434098655182811615953540007350976636500861154490675741509430421250858746256115444900050907521067606573004854882974456086212830500685573320019229187490772702613120683451346649535495928337617200833804270398641060423885376739965880703433676665356065337267121489243665571397336117454793015120252307165972258232153978957582604595077519325687171849969696803714701703944038735505985767855576009297051834117391342706791692258004320273164072944913952365288620503582536754190706748140448512077383620889876565470438858956137765366980870217276005547356581169674902690478003435608192892980439920988112622795628954040456686155999652388265064628149524869798432283070079947400235430800891353764326551859627766298839657266415124682491420181244404708592806745728946383050832392083616574878338173850883351821061250254741563181995235204458839322171036954769242592093471571918890063730607082214588697131224055804661341519644015687775108496636471120792956219197718941629114997299663407991996545881580433034213618378223694101164388866348616287184466672280773889356744724950781678066508558118823054417516136744530735071610397595257658037043257823565729152313475614134874819810690615025609081885808584768348570180010603443750468029310475384830849916979578597987084776807242302539110389307656132906126018865363635063281737815829107024169322700827333471337504809495069083962824830382324003976293395431222316779080138360112387147780850417926364874874555025056997888162863646624515769724037871609717809772691831756568563503144744051590232656321809484935030868978286904011946850558238131322950532457046333581734590777246952914941549446760027244814091124227361056012009541303436737761835979763875720106601313976307441367394934552060613124648910405901377241239143732039676836760910419772691649056396801028037781545995549700265395555650018602019158982934063090682248227140497266603935157273983352750250207439979907198792749536993757338152505498830334787534569961433528235197086635550824177738128447076754401587175000246611972344001594130224112409948439495700377240515246591279184757208638001891240187659678468729887424882796944772953903316754640442013084153057322127064174870204382392321058704689191417677779300119002151776564914880173192016906669173111113652251724401609182417041276728332843695326400772293408299953799574480991820812779745937314472116402144630249686049745507390095569819956004642954020272026901972790231944738069572828142304747142499199710799363685192197551321918030704161517637167967828277274335016469320344418550715433798753652113851656796440391577683896658542665470417082326143710028071379667587751118481773466101350399730134883413376979763430054175382290814002592350986503280982811941938267924605617479750967815096925910197361218576778500028612895269058683765605656041568958225099948984920856688469030901377118701167172905653278129048063659474979052418539084953011973915575594086116008880872336336980445771978416181087888908491204640589448812796381458421288367143712570249471948415359418492215362629952444422698582643401234283410465142351137071187811501525070460736663113703333194613129194459424889191781203344429875079162526352143034531555598850901360159235008669073540980187019565596229812160150790607769462897629837117847732858571478091217024137733498439606515722226359043813042265834113047061792543202751775691892258687236022995341453346101835019673897645872255794234178724404669822496288684667030455366603989573995285769325630911435134661064092370015253506722822059543882417010162342866365364311459229474040678776154030023200887690530880882072645679860942240544623703016489515130441693971624614118277873892719463736536193917353210985940940271613693628389089485474911819473025010258487171201204950179088171833233579736616906306685020169542229686475558122145400133835104620278148056329845497530450033729389707672623779806865880225980964853072126633183182370869885603872384840610115168337233722045454449269024761547132739073860937891886491945375311945546318598590775076279806426317510974943462909785488109818699386036295775557839093707221950414178663598383896268248714419562779454924328939446046841454128583832297060820462136661825737173803031902689458037683193146259689396179537563796061723197750462491477111341047963548920837552862633380491564639665623863104440748079937197392945875921053606461069381144576792998467775055534302117059897325451387114495474378626760081423858193624668251186131265755181068534035517376424371326216906259673807965360244065076034702379567907158313072904485187901317524786888032594718438078568956433045375232577945133696495256416450632904603773232495254957819924516982117199091628002818129452314191040265086197488265552866727410327503017301145806346015550084820388805840271794532296319505480299029432783147325186936331539933947915909844573913127871740260354539447904184255677796038835047560964903828918311275060872371658891718270713465083737181224117596981335190076085440629934740587356603649968156111775825454039263823100181838167396607945451070047078329909609631495253982054711104842152326308135624517459997459837740763119777418408836419131084752602789614308833258337168997018199174608410854761711685510442838759941083885136747473185944617641872558787387577566784690233504637876240583712921844241136811927988378830905672912406560647102744801967824152772316592241478169822146046094177647441261934830520386553981255305949954074479034114838097974087276269738255778916442977369958888172947690881151488730022340253107661140423292714928663118238302920644371877102104950241161434312895196021878618035179253552282087638555532254212963844124861310587660545207951437155549535576746398161400806208285016794735021653005601674994626806620414189848109081901051928140473642610679903801032830250802484987917428530483261219522300834538539280942852871005546930607435494361858476425761014325154957207345910306221878909339301228202879745639578014900461060775938014048007128704640807117763896355820531313129470558305662074184234071311223615332595511343249210288929405922677922000577281801783530024302451279558765903275298697036882528686457980355977355937284341743614605590643073594210831506918553026781843622233062377669991766721967139916060452669475373248860377591590786290639390465367652504961384298791909168413253141267747022651743331821757043515680539391588267898031025528934486068273369063189620957853688331979721408826608631922857856730565053322067806147376045981679437264183330413831985513762228812443247922307774969571036405232646796062323930449412466497083209081149851385810570596858705498102460769389994672975967195521116601456023621226597976843314328497261552376449305435511779817217964113812691261618279177560853190072497766783437761604545910763396842205622476419346192849904404513493204740088193939227200650492227593844901425356932718180695266143253885632033040295714072859301870444743562183202739664554474672112153128029164528316846855628137162973541940040052074990682475526984876031468756950550232594561720577537764976615118553908103772163382043514512108679881885059118366027561390139997162481642079517363583487036624807690584354714737400878312646304555556421634564215552192247674183989298115112339513930942041762889391880835342657779027376727169592650529795529280228039119832558690474754967212835464924628165732247882754437428150417892232323617031529728259384428058008069306012753375510825196247816623215756347592770413494846940889572632314997396128873731656207773577800194980337688641796410898142467735595903825551230795915747035074484725755820691590781204318375067167433218490158979132782426549878350882993714545619380786448785822355011266251675045295630227637322756433412117514824867239724528574851105631235697605206829382277254356578539314281685847332197774250442719718181097924235042156124205192056718454731993031749279352877328511093257546892986280652245183702378266932940090616210620209708588137534084268386337112542379812769073978892158769231854443735030171431981115889041434418418887165041330594545915357258644219151171849660107263656887909004209434634493127318311733012615608940777176738530339558656289143937398981764641089142380441878145774785730684979418715669815484726857504545763666752219592965951254499733409956464486699684385545978780308408177679162538361495740211496213980242521875908345735464542028138684968941795774433630339440113979933870878816952095147846052836860657629359702254929054020577607887126706105882439345462808214432098591069969406757372710524167423669031551322375257814676007018019262237280381134721265322880670032845759941945013285959782351258034324491244174211208757411728381327432930849742869527351181450956234734833943748491789603319944738534567916052765591646794103360911339251097111282446597347720442472236715120680403430561292439445591791316286005843350409126783764444835081335951890687901928060946412826079077895049319222862279781209286493467651067730203737392250835163795104867936005096849426031434158389712728898705862008675000058176104873858963101809639683737080922154240658688152723587423478861646457332278288914768258329603316891001986893514693422015592098444004143040289440481290247698871339865188819179792891637138672017270616774506025593833633175744663978527062898740065906973724444867933261520876446070191412833179669476887837617274325150480012999027501654081116250808920098954357338072192862713099885096087206116541794903170687179874540952986424244575945441864302720953860678216762750582726465038919571703077545242521246811312595069805290615652514609183135695445957353530364699286801836840525021324966989210519486537285106329972282246233719459398166568764149472109183878423650098748489050775706719754595593290985630863513502654477564769128162427719690017824414605191170793520048916197531692677292763207013784954603651985047633267610048280163929911710074787784357793737646806120891257989438938967812452041109018654722656056866600757023846211138481549601894124457162302949715282549748216207123233550813546495740696204080673499488048356546035723748526345502948050186429410423036426705888937557864689803980825621712729563860536741339921589187315629453625789415470803605028864285840721100272242711362517560150773657142621106447521387287290981458258845470783680866942540787169665268518703674390340724129678361468889765113366938702998961353512842688553770743459526706257874206243584591135589794756083704431075320470130885493950643585437230530257973962605881684841203567357604809864989398740771255552969743077973441789488656138740143474639496584470035852050080178268810734271448607107970056751956852559000395568431780108215665397402454840175049195273786707659404372174514818429623385612768815236537058019745923008111200311056047941021425210750978072129860192390604526193249728655078129561089322768218585373796060197731482076673962910014998108468111214370318530066180828903787077859340709451572355818001736211748533834371278014094185265268654219604103152830874224275934756811266904487295096459562310125205666832717747985591716406639928636262188632098032907245777414350816570996907335212692533364711975729652617007958822775758110756691573942873953338797587278277502280487036907216864532686312881344515024628348595416882612482582250645400091356156324086698817973047088132184939051791671958269160888398779294445991076244765870930347137873324575957490026240946303029608763839343583136800062063626785804083341317859261670063680410278418312479851506760318741813820561577649417117694249615088475140276538419208781741797539327751132268369219960167537721991774773009134427487123852092233929785060795961130291178909590626490137296623686309989490605165924373886998553703585963063043012474793452056707477035290359462658707104452934632540883805381365408331092224672921537585491208617452046747782598073616954906532457852562550000975904235209098278566235688324245119996814032566866026186063062011605286983417020624994528729201501586311322689553566071569924614196816920379107159439541380321424327798382061852906871419540280045002667688040743278122217573145860247881159785907184626491034458267052549185210786574204192980174810927848763145291846411318100074472092266222917480461540511865301087968230384933122029254577233945935636699024774387384103138950136759699262827896602988057877618488261392997688614261033009120653326059918640846122670723475049611744373774290378459076022858762975637177097167991493910595843478725095445097057504287594714152005078958881480060412866163433116046168324675253312277639667588809615772879883232558525803748414970293114614021921489823682714401485149054291423285399951069534697838523486623073367926617513414910080379884690963316145676667014432557611522417816635137577847862083857343644143053959623307848936742087696394884365318704645563192379142206933915270456983763483765298141728241236537138696829662935289475114868338003019812925128816836810159075031490699774733830072137588834298718065817216558318867751459905796758240581879090598930728134739793013321601645165846053142059682597263617570455461836927792766333563149212804330772572503222708379256680950673400129496420438501996128486995286478328439949713804453786759726977691491201059312695561866080677981258342554974985679777669761406776348782592086100826375507286198497625041612943644714625845754703387712014368156210740623660446295159158899693383450878488238564083766600868213399615982787339900951158385032723514593003712835450859041268144619113303052053424755042796833918162977070745961958906204049510070980018520073129637834240410664592547959127807928065558520171946208647509994747235735855020520246897279078629486068931445781941136528259675879525451181671821964807062072413727960352374837827174280929599290948297485272567005263080200754015304847203033130632758683145415679602230020367559375915678311422753320228611034756606529803912392488902289578173851353087173051985624049436834457839410547626369730144393518158079519821432499012696100853865390262257042678199160180097273822684677052196385108274007608498270583655964763850950304496818551033569428002643826219482780628531175089485379732774001944589501168996279728963575645732886474883092749985854135516258612882389535029450074634700288151233868279871642948555039448828040984825168703870982993193687753995770551446352304925908545492541104167068654323689473304820685233908589018970003432994801628252649879708999755056154063259189222147134482456576760758926231363127974944980275735336071895486703273139804394820019134997300920911914358151158680139279091577814335663536467880013846297616162723918739754514028089252900883710690868727140578155325170893321922903188295418682058693915557585892356901201836849517426031332325373464741454253982423801664022318989913079798565448316147819277743593250548906642975955974933042776988125281504869519699225013626602301710316377736210066368023516502337617484486598879849026434412159595725933432474067408308005639542306950327662262416534460155080169595072632931292395304780352999299113378626928892751555696529274342105865897153198195883434826662451722647277895149766932746871456382050261399149407704880919993592313741254836191243707125574512972054619425057675594420980332782803398395201368469396830965163478982223518899158367576051260625178630941909268774101948156484930973512294586194356963079527560954477312524644726303248212686254795755330522702349702324652252342584937525082209553769031244489424858390539477860762071310306739729565241635769698299886282187842349379061506176783290663513924909889502820700528359358111129743306953848326707202074930570699090239152173275575840140474697501353336518604763312439994467231804750190443323348706629125223344629464896390137732645534196295622566177774991076282541676686941830734032008526077660215814404878924129770498573872397868451469052862376816491491010962573550750928346987417059164794325441586118615462612210313345348188030933943256174984344834750017662216013161952275724302622790944537145664356604886948407263301616154679234338109473966050515309096749244944093139914264442145359401107331142635607036355495407626952578133222460541474917400614064063652256891700091846933756833645121417930527058908522666324054537983742750627879180772013338431188296081580960233554729008729442459694158764184652250165010551932375436268451600263129913159257327492837139495497618064773076126499137212358822477083092585610402241051125482577408708472381391461313553128626459412172813414496146696741878294656177048929215673893645733300487314260495625889198273482451448700337097128939811288249834063108213866224264032450242878284616197685223456255644285021596861986044076133354122320965098895907759180922994237415415977401816797816636579716756672052113915709479047380314721280024337945706995591358221138034218095898244896847642480115598771593750330113103627282429886624101391479339740453380432016317930305109084772710389204643820482649088295039535340411118462582191175521628132488561599367407923196325499394513895367800054023073371047401744681636352736240850349806383880524581000515722648594555971339076546727235496904306614874598093739651346048354295917633594040537849218485471238030746907196630309653196592477183483954131717475149022472371489378973778916265157091895188528245531187479279883542897602893747126525286113153475851892493209663234236055132686056089324101321035813658804766151006363107380953806208323392015143703859914837778981114123201611323585277177620794820211296999420393119791394215475580952391727331458708077484996457860276911286929024258700124638219596298946634096030577326435363528515102105359249998221949714177445938554436770123698197350340700393719227164252102212542173915816292696316402863828698790032139656395014404819642647629077662292139621156817304557374483767033453756884468904783644451528346999840466758080994802418456751941245487240682432258226086763791976110407566068469600186653641847333285073272046027211595032979343352495678667479741505419538713332586149954192108669386977540181265617827509674518786656402341057756183377106251620372485985850416081696935178113719177525171770354314949057190903569832249161437845874917284033730232604123397355453604162006542377027699706533770789886671151348385435500366130464978337855065198029306200068134459245696171205440233372156861480822370756352723113972783296641617708094370987219103872799918384952209168719231177366428503964398618163689533213679023288782916011848854778719410258596501656287697901719537796580803843253328550415555696241119684409714629778838248938246579260530875855440580439975049005254823466932969972315082450730545790155698093123039437972510391983236569671735342868823808727346774194925847537787594568069426617372598776641838623129550440786287911452814052328087145948428776059760281809589815709328977729326564679942066345869427819058021679432870845652835676295956045892619868907790730487928368557005451514566752730750102249048965668102053947675603962396451710065933766188151918703468002568767225030747693450994690261728791509668038707332075735550794291727055058959522098225955759859811603713765060027803570542686280841863201236479994131346796244762102173727852983597831113687584036602082960125948964088738390296884052289784052105971396353397045926054732517514344761355494292130788741581741753381019696734104186498788553570790062759817360497309040728436507942796443849801185969405350764205924276955415635991245783730000052591021217187592126088693145209026916564146857298068956090632591233787392083071200633318157755139742532867290407195425021899914094106349439123783960842043986120351975486674849123231596119743846881343024778928736656817978963483017654625996295115431314824868733292158657284437163736170728544951741764943376784654139662211750722923260450931173673233542310090817693046866857182367873433000961779744630050421699237004859609321847258964986256347831672804362203401029702126886864971459436728707063863799014418087866786752371234050366367931000378982111968943676695765236571042769220558049410904583476631388513565833592545530639716697557995079103980127521435371690724433037768681967567224061522505289670683863876366473669081188789000543493984200677882437290119579184746502343838657192495841342834115796766319080490718441931677784020310843430443236069751987659954276680014891754838771406665767530128360212555110235278527855890233461235269070888653036016384122670767995300486102274427709298129004771836255395694712012508417584986471592535668167372801352603149637133864432527375808661679006226285240020170346090489044258273391885777459137720662409594185283292750871525238392232454484123170223890406354618783777156976842769256040181366864286186467748551876301967358052880361746857347082659432849656089882809476411011741398669226331499267307915594702029819710902000008225238219130402958481215901435566302768296943615648259147484726812357045327986988634826477046827455422207523563818009086007806794596518511312312623582544669163104006666947916162909199546769210801222173576351368033880847156040412698815816381705429150167592512622418627563057044465756685202278659095894553720587151648804685570410627513088171624016729263403188707232286119961851745638540294621721191768487342077937535694571158337883562902364339899333846591193388593841151792165444861507600830626506598431809131059262055629767644378318611355539603773257927779692261724757173363475638236994448238738463829128341533308310869722738379927006059060842785826920747472576565223278391355558868507159587996286997164266170943361529931607370485988880951127839972885324578384959541348677179234212031278018286014277950471353668137374257258710850905274825444312763504183453330209810630538671441470897578003374113949086513869488523526613026097684300685122052138641567173472815005788946049931586925229269906640691387742640274042195155027789903120802464705404047547623172063016167499570205184353197228319188813080158947878077308659870945985893521799430698601564242631712347133411568088557829701111667328688836325752760348236239995618080668215613199717345696031519371871104926411767994705161929884486665663174122084740345497875002763271637434504173214103423156605039770618721982911857387813750389048741411992237898219246349266981946157786926929254443285841130604457037397150768373637885538381833253601504926265721550515061808208686597285473919055579077375815817711082885841919362873719129834881456160302738615320467140344233535690039971735218505014661132704513246960620580616330489988216066748136127511236428848456627205074530974922375604428109890442313348929879191323585305613172379264656133168926319549995789934974425438507753395438069944874138372872833883596044738144931544612073643263876933438564394019174688703687103668844588612808124956156018407229061305781082656412612007109505806261720959250279504436800599234362160533799665009073506984217829083536444901614215043631513883840995229547520181330019763794883274648086506283362916434207529779719710002686636930195937275410907358467745436535545408874327101462881578438745415976861052996035439591948848710927541397201929986002238488209881892399768809971809157611948096801468190008199867856284831683405497998050745551376870664999974053199860511592786265336102048976468744854193655112127644296235279339238550411029334224394139535870069905086634831546112000671637320090727351773452640345930146435334317520340173837090250849870890291796800699397822999598394545908101895957528815433607076085650817592353189928969358124400020703293049775212306442017975656864606288116798991484131602419710178780187681910733818848954949169073031991256556057213863698407235503771481947764202243727743319085355093625148559489374662219852173463113395958393656125725302866610326148288229575004599272085357686436913760778865444653824586812674516099789858350108513392235065381577217162455565087375285296733469225924279885053669896043992563274547262624945421801560581520046121066966782622905782445283096612362301699365299285062467737551072347135656945282267172586292083121566903744035379009889287402009803097214737707999032842432172643094604082172319255819438481603358706004569127995821405442063199150594198138943557544684901030798130502135862642859783180413321994948353223327199792447959084883465303784528245255888198047166708855925694823754320057888349570396867597105179653530023954697155280846564388932869661544939786028859143822242244757847847354795960004209211525900879615614507750207997628694825909218728250571219458961055506727602393343609436390433044059425898667527150332411614895347220433773160401246911679939817124007564540824110679342096773836468583922564698846436337611952002952695765499560973595303909027597325699187013893561829337520035559028898125475712282367287056002391202921831788184172266509128971847613566726291740796989573683227663286832602876133281991020664624887979357777445145843187385477084763185350703665158702849532323213863691982786720201528040518950683865288985305357519507396816826886087508289951504232258343780117191456286643305708716328792580271443263435108780336487290052542069418974179060295613672871139144722070236104854992022624950696910403755024250848181812744063671016959594310208592986074640659434475215299517008315544335694055626638028649197372255394883584295273005221464240012641864313478272677644102680047812832072986454633679375121241177285135611161717934870455654296138413378155294121814297275666070028227969909552747625402088467590753797314115002110112369153619208838318059680815271206284106945650733139530114856144426865227990903251184194763895237738285684626122335562191355018014827037269913157448487529096177489807752185336859338316790991637321816171913985249569056428901948090097215872974241870577300257569403790517026139744240881883488777363410076936876829713051118690138252925608948885260622330210198684050502901505463253208236692217969853970482249877112307503781059500576859168545747339947242695385201798995677228225962015893943489616497325786000765018480453164078796137444669495349233767608801034232416011894792664625551589654648382835013145520723907037586732981095529594537092022651096057206806360974500155457968206218489531337994478706075134628811323731514229541639301281598288665934905956384937921736738413828404797867128010854478645509138599063900232882838606444147171387269035894608254709618898635639918833827738854613655073595156534936178173656765880294248183173311869943746042021488817052431575000434489153369985421112883901207913958211100586850034597798169221296620126920947436187459594717022543828013410369928849554887884716248085765133738404932440405532312708821323089109369662342538089623477031466792626956566024065227018891374283982920573674908447858719670251423875205235251001961789002253765834088304839150915030440382854098954296005987109921998208102184529400590480946413338781228081956022235862190422265527389914745639990786360124845646773821703698874824306783892187189876912398324839924190071748845201777989640908191060321334685794381081536318889248156313480812243657325804834889588100926421142196528518601136038345468700172044119479369481145558516229964656244597030653511895637322086605323850644695849897993170796378656713124792392186812751093929338893558204121669879105010152772351121156244839692627429585679621118815034046610337309947715832713081570013529152042517076175056946094699601719319518861343260792824112849727606891445238551917796935785894463993243778713332917136732996606431405173561108708408748374207216518950489803280726868222323202219363188916478251191571675106930830454741807070400474199584287612433076351432785848596089433344053538004734170616736520069513165892545056326134234811388610401260650430915808903808391864932890212299980912835942766007769627331410484374294564016120099099615585040517796613734447177277554521591800866194134998720386885998426851137320023693698576882719058252145046782804362712798944688939405750792303427414689361848300692938534394422088298501547161013831915566330760717685452165786979811471395020376082760680979394702537723831676817554283942336513653614208315297626458316222376790723225367509860593933677035404916003941418874412330861174166755561978324392169075999272367371182731399897851946612274910083194922544764257034551871199259034672064371155182258738449832549264124919890913045940468398309040445181494309492938125406390628996996281078240649779909123032259920700613774625894957101593282621389483994646491666744098142137269096348391846178503567502840328918772979408129043149348394127679246418310862554457880838121267148004789720478580995490402219144798780980128729978590692035523945697836478833445728765026845445163998596741180660977813054316716384491474076541795002171871983079651140286021814144146064667393211203446383502442084095493295851640943003311249603056837989359921028922377876457457395460471986889065203904571937993304696744151507991224193216523585186718579295434971511992856393096965552645558984551468422348181851031995477333536091649601491096421423474947300712164083647778555949031448026499075655310423722288791213234422159732588381766092953970292251957280427909183865092017186438448233112077713581126973819579828262171977512713553631769098423181382472290254670120602805880892267127576834232638829503967366462937134269421717763692365227542245071667391506766575093234874397124493390726016336224041743696914702346279115474642145101459277136945128241442885615137255522757241622476623713122785263508082365289059963829578248519967338225280178111838424511517745964720505864829058624458102263682843595113113084794132027945440389845962398316689168811545051872026701391370194643777173831309634074822804040434931195572899961173614789138843560862725671254578904160971643097848222378071069506067143799390414734286498251850896391013034039439429641781398246615842992831510844500262950778106808630457118514031175471784731434705581105948910790112285670265527343831341031976856452277978688897159717639227209474533041014938302433577179918448414317499371565697192252847892037583207825940667742595567290419901088245117429125354738237159257575806122465992392190753267524943694386816737825810388232693268291479471788610750404953368276960425964251287599986337664906497967217328079825995717472132766292129645641924320857023002458663967760309572690808169018955311552053591785586343262109263973724475977915175651666365168187497939531263548702989044928126776277847109434852531002117889565500211804385030814280075345637974615082683180260945242428063054629577626910185786131553936675658359187623884239267037868597709186251448579713676783885635223102518275810613806111992233740646800177667509226100971760461090214972802992717367743750693993578361280264452157112809922895397374635844659872282812821348566180247501612928907566971041707708953635752045139695939087755417105069211981982968698513583795017780866276196156577516495992939726785786548184011687304918676429565856959021671170203807386725010091765277234187547400700157020997206910692454630682534110580706576660206248715252862998390725769274815414355952460425918270782396372637789198439982559301021890699621585281156274726862602421697880450274405782720301883167753770458033801208539940964005514067498529659115144616792562280515603878061129087907905515897883801644419630969306128150708177788018379051334038738596961754525148875496339912208427266516675570344244641483987148389484200521779827039526992599134642028473530404591745034368179345437999815705170207231127637894800297747825867977951115452043041627367629392253077569800213689399409456964707263731945302971296908800566967014426867408555443790253185588865977289301027692946920052569537731017589185368631665581204250212431471395951321711097431804610045976457412922328514916848098062201325720964784629406755556229939020531735116925960243777975578820903307003699171772584485227472771790279803240671200904949082323617001357923960796699092623828970012783805672632721432814647161915495796228670533753617019450853409233292462158075282311693058109160437793508921046487041122838654665786990423070038238231576846730324614735974755447848706179005509621287141481320437969227140029236663542836229701757456463576167658187940824424352536658407093460797600301301799996651060646512319859763013504759289456322665176721490205938353066561340969378257419044617941681626995053290437804517870128908301192183821395193535166920219247313199360121125766585528588091035147588211746590666968132775366904577349376281031165762217708078654906255842804704083798326561217017304138121607601872957326507510605600257931551387576386811418241052953061588161931743810003169742986348318779985677009355747229002564766866446607600314977943386203880899630491952844492194065819683165386136001811315753084628874550782380993489261300793879087639809322904278896295328354844277599396782849927685663115446485895862753393766572110288840427599114546147317232704655314942501638332236948377576036372889454678520018030031237929040126088047187058460526797308886985058077775654894324062424912373120673406570289256385179826978193373265287061211834156741487898063589452555629263822563880443923399292320488936189438509656277078995684622594211202230267450954282969224535160156554933258797271389208488721451171981353214654271899360745797927199193795625417790267228191959993096200456408328519225901495062557101970933638980855221080030711728103522080516381222812982522637354792808242032196486076110545429536734255421892156727342666876916622186721082260039701377178903911723077513934227950683661627227871195092360391686497324498002779635948814549264361100380464849754224249467480646761957510660241084408565113856293942798458543285399282795916940638721723359628837369653267198091169915072363571957686996200960986816804461454943455512237223202039712339449290661487968407725462468326967264167652810164041792880644757363295776269829267173007879263390948326673067024886841005079968902259610806436047224854508081321922878421644507164134649071427168802558051070683181999492541817112249391093309106250175116764573818511057690660710588036340706919349023456642940008480917126408016514879772399876454658659145716093044191476021672220954506255845665366549891788922852796359151067550882778802485826645109277491772374928681137266212807824959976017858337320756568197101608054562598453355683915216027099480531530124221639116674251100141922004602386950103851828451296276964633857704014838744302736037159050672946186430379051083150150190436781436825964403586582106666147788288803125807423304014708818269787846175269949538889396513797645303004843197603986973481688785236538885479371026333186201676559948825860046796480955195290161775305171194033879286669305784942900833699387561776258802314184148173376432738915028610536809730196237886804543653463904744038460617404741129387442024348432979376407533109873138965376870398266795693284556971266266233950193617787329549290477695232880108089703144588978023928296751578424702864200883017130272261684081720060955236541157701279659745163272319825635764745008533132793397627283458048419181833921620233598294945121118041617389696791363759382159121052706759314300516353591244751306490340274877333503718393291840316857384684874303686086685652067473769151413972480160576084954635242008363511742368031800936712731771780155157453780385698504785997714905686074798189955048857459359981972994682835638692509005408863980758696144545952381549478394124400130844662080886782808486544153798080365149875635735641698234694706506147009924713414580398352554996041461497487091667025724289778358779286185884387207127506990337276772312658787740957495738701256387953997580300722298046867802005939716678074681079566997366229548783560644673037630925820036454766824187345042934922548077765578022608111950861392040492303431658879007181557141315825285713835144657311450688459244670847300239336918010315377018851819720181687013045174738504667569416539842770232128008341877687167925888536064797052078735975211950899643123717170638211228505217383465149849882104783232564411682118360460502809505165662570631708537733800086845030465532389392156080299443673615662055254731584394312518833986473661790738333188030032638989612724277480584719551524821980593842733484956877634819720187081455051027092117414458394704709734140079216553883469328905222677168445682075598434616754422668340501506972571195520121155246002805932658841251823499556377618403596910456973727716483025352494375328573850462782014088189991047052099994257993806346942634589068523978259124875428918925453306304895663398071928631067818405578443953178251026711429453067099222271945745824222019175682551203965643327276388673718702915161823208037604071136341388805700985536332775930397123463209444184730085492639383545571249298597819306619019953206737193694111376505964880468470117978322728111970689877544162955909122204796896791920381609600820339810588275937231574938262523242658036993926612733072172129465677629909246323797877388472342100688298012471749162406832451976931637760886608772426396588144047646406076973759239516436631723089748479859605992424750743437164284251032258027239021036425638363184843820222324578352582633546537168850569290679093057604505665540491583310921118175397297987901449200631718997048413263411985511619974217026482542305556468717147164469571762631968937303072817929147871616709251331085868660892356576951155555354129697619875170519838585336472462260588177391914237839260818140530404627892739822173692764484440891956415846573076586008487228587250384986147715697647028515762735060334291072251337714403770825406652551311695284854939272339582159171480245415929633045992557332148890122039821477526828033731457036689284503894424743543792867794482833276725791225860140641050817354541735811609050113429993172288588096023299759064815815039902421164281871973200349402139555855356246522806532388020683011163044778506824788095056095527418841393521443133146361804215798691061165636460880213894543379869062977364942312402213235418370166509370191567245419303151721863237976066268956145237423178843391149916111255164254200403179143258474712304683022078698666586777642153837502904848758156178029742905543327909820091558109163881145021888651160985145590317484736365511233995230664827329907730577755184169538727407059272479964180074809688472381271008953647443399550459782342295065025756518784603708512970896023677760314939609974182920964871343253342370446969773849341693278430061523927484777370105750439175679404671478235068201273407944690990632027272004454762803643188670178452830237500090911857975733534823368064728838786596487985122325560842647862476936109314861946055986496979252930843737541069560213734843082520698638910187474672309014268857200072842356805658082123082479066091927107314963248032848829171040706228317271845483512432152510827506684717915324081169768779271905115956523562343267898875632687686309764187172457818253440395082877914484171740015339572748424232131124372129069757174184137663721597091698597349103193796545007745626142623785674897980376925089676020908101859946051837147128234519949717302659745192930371214798667696749148390568505315527576363601149672003298670555092434740316013768965064728922825985934899538283510059032693407360422673329644386872092738824922693809954872590842579211899582705112224332392031075596090354352423381063862506582346466656841405646507758661864522864120912978378110992836133343516327982350576478409566814438946974804731423012165024266740147368290085301510193110756120566956551090709874402543855157145433419997368479896607433520509688401144907236014718948671861417293994385156146470537230585729556342986651031544575447631395184807376127906125120996578718675569508451433473389334783077175969615984385694189150137708576699235111929437893938135089440678626549391820438739861368439140984211194530582694103362045257165620138135337688307253058402923160680258988773439523340729550401469295560287802401325373097248367495566722441633611563340595497831550300015995434884800137459031772920248045158106746558231991865195534260660320536090364806355212882419648742182217308124022910267439167352060769008066776526269384472384172090113691130385267166894014620290408761591087267978737526713544440510170927629889230052894111614428024673838266559769728255570805918916118801289587615063946620422214349082183560871543628160066035275173383059722209167338607457790687368550303859089870925905384659610171269305772310450293356412104537591901140171666440275997161865802689108411496375508434674412854182818174345361743951174880053044560543325045395927092127603002247809080021354396063311377485499866165791392140027998998239747829282328960037158632221707831177044181491463075287201132858940401218107841728727539123482852116017209342679103378161776535872590164341095342830288045549276365641473010396825475092372069339573931134293739030264370996663821937045147899460251537612680274296639535847609884080244372662751597212938260242655561692197064615001437311937506452960022025518123585140651710501103887218864669499443191356675831290580683500051484280106390313785865973415903188602217937701205553556709733971051297228352743013619099698789051039709973458897596013447086081972320505263893354799957514300032497392198962071823304699746622363961532947587576921570802210661985656171625719580804409633223499645679190105295522405531181662607269832569945523547954375939940275435535756635128703713466602532871839153426597657921352410918687542361944051273922273963733576083108603268990252298840106191223392457396651046667540763877469140326941565845819147056995424846023196966661732343906163885672892152487241509380657901864841899075761697896017307968717710177504512648248978389483611025019387479761809528094342440254149943685016985344569471451663584331897732149731520359174221694659404775347726158415281013543367342943965782860043213544279398035056963827406079329190190728681043404526463831500588528834638559210337785206860585329720193424555654256985987709203791506449012820632487476105457064642692422551542911380342748640616917748412400253799142634672967507678676589242906453997544235157420781266412159997392790202061688394741122185673998924245482075844184732000387680440934598397613932207698513169240987548235360975700961155220798315352491925992471999494786826762631100099038502765956518886115272089232497371103693532102748056831980769485981049370108515761165152355359784489358193614190863862003524537374641079767367575686832136594729526915684524583596858570956176187512238535057007707943586522169800864203089377235813781328940284801299051265092602811220855900095721889272536215325126704130133939964299509035778316187367380762138602210258637326404124546841538491027909267462303198679817803693233513375437336174283758327953898768369893393979844496367825382496278993521190808105265267094180529841820569175236294285303306481565288629407652446645330162641673107855029347257959374619432344489027913260131452895018477943657318749366111150998326064469111372317952606424937634982659309484462935035836836338002819668200813394773482358721241987471700176294253987472782948129164516298300873662185105452707007714365952064183506825100497162604159055163092876335171758190855890067727099656248416777892395461303449598794482942432853620947537039250602829271687956990151278708717680052450104787794553824081736129097934393380786638832808251252495260178966905236815456612118782908386939164366380140447060136933292976486451919498349228049132523205616945723438251830947703020599472887067101827219794787595040364090349407583610628327763643716009204953807955422881139647915355618650617821189694932409467227644671877538810413599384488689616249781219844141266380791549457128273628475394576227844227588685404251099257817159071490551340818823945293632004764647893995500658139726875955009508905780543940000984837626447665208751496151497805812823980758643489671384442910130913360415850415474877107477855337693481633646284714959013775199292797472907359955340267038248452041562379591756287298435031326974556546298561809335736291393583093321318624768112996780173672679339224365419283178992825290798626215659792199890804151042052365451563284485038700672755267858106328424479146103148904426397982129979154156141069688685595243218763215912195416778612443457432991659214082315875554404689181792741661419601133144985337666770590144455397197163302986938670441282900433172613639687757156231400051581008826134340599871950504234701209045098928267866665240087906194444898607455862891085186613647973613419005324189478375570121491577384703209766648135161989147643414709377495543272912388748089341697574608335714599549014263420511051911261053818910008043143586391669466879235496574680484440940559480367262366504621089030332942784059189273281720282524707772497458701060309900426143338650781140435721477447231672284217475493532505474705832751366061714142679465875980390515439546588109680300825994280820278216080846007507668268852219323035916943287486542131075257922780561589555869327237641006319982681275223619678667118442004091579577403708725463933032244228241219695013728260833815538459179017489469543408904814570028525946554011554344196995235132067843378200562599936291677504995945620655183298710197333372626037832599647861951714322715160788692257736505162140996686638253311758167231019132982918875713495173195068289961316673343910114146722661770311089250000705225772759064774072329553703778838827971160468235759670141082866148491446989886432446160235076630022858905672727045861222820728696108678115873859335599161876735442646972817012083690120567958150796136160053045048633999039543886938748314848294254655250396084590987638857833111549166314111956560444597945780271662262387225878943722400674764946203278623253662439452521759869171958073188519055065885893350606835460835693992331181781752492887708306309475190456458998786810582024697584619730738365355065073534341953836861517094922390023540210729078613592798841932922523575345655535386393035174665325388391037759240569682118679140673996498744408040289327887547010323874443194861221036689705907302038222793819540322247871099438629047390790652226677902132801975804471571122065826330112973508936189727763329167102303663772604000856801483545115056334975398236416063683741709786010723167730598749098329099814947973023293937061805726546399743784853452935120335031831091097074638613479900624646630999414834433147938240504234920692901322013537035693922008423042154788800916084353911557745780155548815567457351593617408809752033213006100696304303005701035190585963768586581579592679628620377728297552676198264756306250277105397589826170204035315075464152306727146258864177926435673746800526408798645916803917089893039836889663107880447731975073791406577909365404180118640416525542447945106570707995249977271062229190854934794608890998241391975879570372422146092008362367913451362608734691860674025771318412209879186148815493230000233480310971409467080758329088851913672649918780383614768958115385032508403884520177694504901965023249049334416455053883934064789685496802718874775690044202941080653767560312201381619617495078500817455683591358233144066515001276718224691802448489455931690741703105925519539183104158711528770426326836386305678715365090126405083558106810245683436505504064590218395122266899070098532850214033210773604799537016655289278891511048016288353424627347309395328452543114466423264506258536353572804086006932917667492130194757568297062260449241605999699965204200651241849373775569534991182737234782392325751999593977871579148213391991627232544627195006748632871788747731232071729055741907235216343516192883895493984598567510391888148730419053282829077430045185712187380606339286611313516573430727943343218742356837218083057446426780974836613750139848270916436712381158173078726519557852697373998210050093651427523383825898426278358426802305509560336314561295209063530625861939946974318513947634628812870801530275010257101953853793916656759009180473566008158812920441943888826553993039940050292866516992410675126222100414410285439730406467159924468071475661890647045221177047899192215644438140988268913192276364691640316967857783463849714651295575113848069803807771728428902448599055374935809686783331520286955623829530692379435722486420797119044305937101229461971455410335958241361854679926455589272634377011339024081659165083088591141877059260813575757162700892286363061583333418372559288853892778949923362554643156470815752754982293340502569820011067106922859435882132517025637564256001743220184676936289360717847867126012786334556053238152481741734260726235101940412512252698596985121578959611846836562881180012816032475096107625204123850183530605096613283279920721541074512233179666737403894377948326892669213530664689400853182853580491458403436315348934531646048129322020648318587924636501137914289373517327738495673148383280468452531427364372575038229576207501303435823835743557413075207786320456860686836656150527862219214899141761619121997476552298725590952166683996298421725377555916369565380575267760404288275819041075360233928404447682325201095170138903200429486807766929449854021947113635969591817414986046927448332117668808254956273219075636726478065585488643675159157576847856142777477227043281808365218792665462773853082588972945303322987065210148590492059402395441257929245814927536115342237455034177264661544054544211416981338518176333532440812668613214383746590350333203090511969551289440673111767795705864053535807345088976042897721044968061417853462493438537374704242588676923088279231975762418796374323611123402004341353733734051708793285432038559739958014555616666042942548708233828120551019965748335618574460997436502729462656066962087941490361970948955754036203977230022389856812275717585621083487457296766913790771121581558402232518484261704363822307471167470324809764594427345524273288418572923562743071313434793214062490596833892797257261510395721156720989145481383090204444717109557388373707398805521677386323312973407926109689555361212143368163823590366950490413513913652121498603413720950363837075926181719290796439651514948034187246983335380155658605657479962724786313138882838584452826815977908407970562225990273088658276479811363813901058169499904662271237783712632797422853553385953998041382604351618990105518939533870352284350712520482740908122796971867106299253054001654801676157994332288539158022916931671259240812694129997729814896648714600575429569777233047087921989596604429750623858913475367276915581511616524605282765306598392232101749219075890266537616087116384708500645059247836470765089001807442001170734314660241877179749049434629137968001064236618294282537071616051210788935399348312962634346476841647360770871551878416703496259100216376848995214913447114942280988778834072993612742736966537683199297738727577852098979464489003708458632396417926650409318440750680086777006996147613784401473110401907180471175070363235701160558306477961012970797992964038727869768918408797919054093693090789005408913490825519347367532127349289924775287105469958015935585705922110977518401538036747346036358607888486570326068956441548510913249623055899492555748426975541383305003111784086653379395131299025561619697305634993000412775311617487332640040760453316514990214666741829938384899554771767096380151329295667014085057080156610842673477751039754046829233360988358254632840084773410153767979333325809708332061349301270988927303259454442065656607211620372045597794030937349287998671635641827155937959668903762669762776551410386579405185950172145987595489968686983440112769970443356808735624190447151739143445403385007273996550574416456622135912995433462209292061259897895269199583100571401776236561133508482990726963913172847993036240485820336069553357088604296964695577311006102070829325746293909755988936741273169375592529898819128603768606025396881867003630179427865246498792630590500382460511588873592353770547564836374992087282221676938120690272530038791050936918058689727637659013749038849277129956248921361878150965955851346899927406078011986813952679178816832146417521582161417418510689268327282116974911326911547232293923953791799886205486624129635902771783965408710913828071003179183381545522568046576874616206431838187531589758127628924128899249622985117042832783426719054108935126425144671322206364902338280426951641747371694366772322081805931628417370836999536011896609104547159569553870677908586985057406697789522065902751594841865412494522813899439508917836127642058919335176607482057996002532856031831684046780049456532709303514070644465028520864949482297243924715439610310770195424006013334837939464504360930558007082535869820787299441032291760002290357088558783776687637679492717745405931973562318006480661663456727835630027339259011353514029281446628968892361708690138525362175941885646890385622004757055237288853071235066037670779489442336838868200003082476224918732129928300379749001884136629725707396837570760500848732470826361959669939756756090617388983773578355492500367256759505978331361798268570010385802633906103852868529378796220373544911586996053437208667916619233883174472594832055223640363444727404825151757273022554802967076840560750318836991354794873114137587326531386959406181062305410104939539943713169316123090647672541120772417814426560296011994015679592544794469220989022386195070012808344115452640831475835035681783638016203652545405151141776023902278459121904444795964717874323165877539163821273503439445121476745950215214527253728022751972587235255287827307025242562032725760095873165730529253283229266106037793030287791653327791047355942743846902415878772277716189510926998080729319532553328761365950310139484780360992263298018810264682895505595224661102143084706492755432680323818489236424028023503652809535635339013960664147768656612889200832226464565141987230926044231146360308623995157913368815325564546022883917769194173177063693810797191004481012996256316295831762425609255965093250010324007608374846122975822161851845718108355491037318952538367888699227744184406720694327587934656682318822524991224687894445791707343421217072024846423308952060009466352660270468959965936798527270937759439321696327410122632709154140685038354154567996095293262445600445181818983211062708675260528109568149700734727049025506538107357069586553087394327884768744188659455536459458952310239128573415811901512587634339453396162803373075474438271261052872587126822859015999504949341783058280526841487890044975211262873236336624962755013406532329255536424362690299386839153123527381694669098096667018717271878600599399223463718055404658178853236002804355085182171034659146019633189854792852143611429676603535836370026518834657678007407205605359228696619432949580647867588075962928229610630966875205358323209066058883224070723330066557021449112740638357437258885000514450928397107086252878948233505956756514187624276881192426953219916450436710932948557148349866941096079724906653642873902911677015212370091232160861139874343871913632617746331569206582387283940059074296835150410585850486575674348701846957417937417607995557511167840930331504003416618671047949900492942979700745454890365497008995706425903288866158826566545197146814373216148171877586101203120870590188965322173891130323443443593700980503703609220220619878421523617433748762767132619781818324058802926381900518454938068657001070118578547928029426772438641969421520414476808589617119546156782873858154619810921084227846168595557221740930302444603651723281465009128275802122601615512416408024989548794224914153002457785248283276318887373459017593347307912692511467006053941062169218510638620408835355067524457136669643594364163968728267110666733821195789051511421830549247456982885573597573217824407265192711340664704722822439527000755442102687451113306876219526761330936345959266572544089666514030937819971317893808771734312577592101653733115662209362076380053457810833650146214393468354293976837326309217835331933140508524640851888925702090969660042632856457620272948547388929681956507639398893290370662883975287049691751342373131747040786048637659556686073664134326815219143064506323872011543961150261160938801635861709669691505721618687911877632777746698752314844788047371357533842041620623868978516324174119811765551856960556105206509922290950812213820840819073917953800757287296473292814560088660225758888086064359791727584461988748560227217990190759378989560070447080056020432741485845624291770913459953157206598886749651334312664160706606633351765927436701657261755780825381927962812338471991793772266912925232352198117969057189933151977690122962240680368277145667246667439240039254314938478943157268028648184755179475944544974245892251123502485472167871589642929674230046094199290725207120824296195645251854055762988829784254918612323048271607683835012350652887371189822346066956917358765929535141718844497657792432088973372872901860207822038079526419402242614013493487423466371988541566875741035703284131686754220290713083308220986214263592988880910027136777682524752406866198642095765752259374341269017328451435731310402685921445104366758090377873826183532153016133625962507198586687379732520193584512422190633123105919625946256962644014199194126994294266901544128215719659201227976051385695306212286964912277433954298074512824556615023882938619789522111675425873496293103318825446648375685735558793360625364627666527026184037538306968885937599113367648858739551598743607411854206354113563590492737853148203720614253989980041026157144379075206758258858049940121673598219237705079129041375686537208104702214324723852451567136802524023700238700057412436185859272309510346379998594631159087996859033721693677632268990341185509096061623688688333525084126067002958129042555781307745155156847526996938573209410318793453540234449679575797123883927581172544991940915034781190081402238186343550205873252187164543827172044416814723754960317959562097770531424641943634093626303960677232004523724357094238567382900932542506495990421239175558655567638055009006104729640655635144403474203074813779066726855374005153269940143617394434227540961967847986651365996297524569634058394487220430025274951653393613449642392127624916224236662321101398323316090029196609503381007941880017456249945137798848285494973172838313734830176766654898415530989110850061717361904846042807926380449787345040438795129294353680702406531749174847388189692896436918849749063676324268235619289608317773891589968387123415151957101488947898035233255954375720730721613198250199247812629502890300148067411670490454410285202418748629059664517681854939055285329679109642166931459291659359409109829567987842450449885937356345375748300911219432036310902379373570847860804701296959942731176275999723041380493535873962121497949086163122064823202228345276554017810244897944421147134077157495947284083149709603542853142738781423241863366438308038926311111759454155836182220726335189152336774052648176235821625308366992899864126333961196255135006710972856821504419132429218849161199623417066762082608177106825201506865228864561104942054208948705780655131813324116335300717740386641240160409258493614932380976296033820853224982342523488475650415603610732685132767873467671877818367559421157043355550403442960250861929412369987211375837457269594773093061034895230447795433035663571743746595756318421014095938486356830809141148342892374814541870889322996030280415760963639081396706286998662931004679918120718247216971593528576319256627880270760743003924483808903281126608611580033947064446044924643906175148530177783448057251752331075696354144643055301151136635304492251855277649778063038920808755330526684182689386847361321296321243080133915949223343058556225665475309770472902699415551859133785542679769651870872457240601527186850829575459451225000847926054321530895294597240238505222071695191957303821055247425591840451464941964947004151220117170256494796438576108888620663774668830124639815348908012750449408973996177139657355673400808744212388856186033627981468205730867320459848742630149608653377796046776235909093208696098611929853189987780990660738557236124801554889990889824617892695822661387534608448063371207744160441711346531142711599404004727201241826256798429777195562627699141368172312295976817345731565086872831411054535685053131516269688815444958118912623128264501362514938632089322733242144692803700467329676160843538053360287753644388150139028370100740481495314128640579309371143149336003874767970519933186848531783840440894196208627077593023634338987151663440763347554430471014989311404481045762411548253616732387255578374649035523681646968279180088216831819526812339627847156556784037622999645099755578101594398866760116339738878342663627265859551676902469096386994194306600273791891858969016827110096222676130045237957268223389270658077540335546539749647851884995992536810294646792908963849792224888334496801868434987623045988276123382856721596041466696738462239087474709317920847585126452762465478438593934746031472671558924193135647333681605715336970033758583482239571312018332233630951108745263090342197968083975277903923207848912185740571757331837217789284859803063263345053076414367270700341291920385440923475263606684124869197477595912115722028376704039568897319482435109969713257439306287348249831215933807782234351141115571507483006811317606830495835526410658456290253007660300619050643889670629981232799544022210282652543937093225615691038164326039214158717148411653087375537061278453016921471012509059600762865251651921366453404106576444362708964460118564490854381392994177887215215058429974337592333640969844296919219641307687300867822367202111925218222576005584296940491600832929009319692512873986999901912505712382022480061253253039648640481467121967731121811853272673804405416432898188207683471901080105749560927757052823279243629681118322096743108822382553062703639131266095047573391219527092987355368381795133173588839475724502341508593591589016563159399204784320566907399685685842433785312095886641512583475113057298932688632310729817526223504570668528679137552481663492637050958435344050039945021799784514900640810127003803860268290726068007113050702155874248482552976197291938453270831776595218752696743748939759031594416410290615569492626018614277047687366174208219424007962391857830145403034743689063660029615667476977357799242913907361950327577225398667755834149872347040889866444195696284258273174435414383636957316592142405171118276108768747257536543207224343164783562752361930349985159171780847920007423825225870113164721942102517047070507073542008544250582547059592115669609461380358822929443889373120670584988819454695918539492889679914557350006773315313783229044646565666755480258136295508974750162888975472347782577954044309497808243453043419818887829901075829373025863291852001006376185869604828471514658003504153301813227574019502298479217059212367206505240739809416228769135431437852681966919150885811338523189081512325515188950598650360970315542344798807987972369692510969873342367503192876297259535576253540676868469317521287784762073521969670279340700333594751751868891213735874892906366989307928067138257196466374494906167048568037108956533655169531946592334729178471747402804443203564038330760089006364053812193573015652335410552800519845425496376216193911091706645024699397471866246719245190524934540900820007094112760367514588699506221235012635211018643906439143692287531315610150761440889262807490749532518461518463635721692378249033331930632585336354698753191154096732354582832241075283187652559214631038203008106779274853296836932743342498690371656459668660615167832337747203513332523095869199023875427759121315550327493043970208708511401120422679544619365234965737899314056021199930400838294275442785536262463328560189731185560692818996744845390990063032178661040267317004481060640834422649320666083217414688885262319023077168483942615191790474013680757834603510272859564920380380426577450722552854398273712784635097271534583571153826668076066560293374854126328662082315872321770850769215344401940370585817053457789253049123679753318454153964765067842251564313429585278534864185155947525748694766231209344091839383532134274475472545518946478598917848886414835018020608716768457407389757871543315549973127623012038506636863748320057545317732131328518168692159554419112797526943528177701755781178654341791158533486307737427639828431229458773885305990966942099583298976465110057656023929004703270427350079575924993392330403554722976534528310344890431300880189683025869789176579078218686158892235665463368771016368362022237366222481535146547975463036004966432096217539637564789582768133533975747302117011263762233776593385409649040870328488154992927855809723863873785255934162413617684814072971553858875330720024551628821867632578553896092320270731355228885876427989529278978314473090236971489029378239323033704929646969586796326849320108802415384233843420639703113929616314375059829882541877579606897658834969872685260728684772364454381139769672954105618499849056277183378862606414225121156403776730174964142013872524048562864469596036388163887851311628306911856481144988009674734172608095706183268516420874170278601291497723131690884267982696920843576208816921176701502484584492216947708564959671435220511397425250124735644984482784798133628529202112215510766933150931587958211825013710187389089040867053367112453495110951694083035386150187825941558380400880431025469691893206521308838709416267338468370425771467794816410271552155563736219320677271430079985474436309412444327503300428757979986124258086506291410181096770792091903574872617344464526354705621402360520424779984928310600984805952572656108138404281150377089087999545203226497308814169447176167616942188472655359192123960882966750148152800255566469625772153881364565158162587421221423972058441556915708471070959975556959792420862434555479644839872191329204127566116615635916962308806122084405186532641904908471471476035533562230475969674811341245874559354731061322623427732586480250980260638483104993094970356359424512004485426885715181689824410091972461692984506583129525537296311071586906718800755157220744150005932734941681336997048526504892034645423077705444569787752494638977419957472231356784880242875641677785317073649017118026587268867353226888957402690722660991185326284374223392072687736499370933130595071207304317868124353541045807602493127303055556967712233531809207586033531654838875298905731623727338983180044050372480554708740844126006306229231050399745346603841777430359711025765057528940805882530166843018869249122735269914304508694061248116940392436526536383230599653068199644473888071473397939681196028851948697629774900336906111541307533974174422376293034729806653386001303696806499396619729560263986620490857614712754823911229904975710098590485311672208320347165914972024054387525165297225758003797475097309549872200445198280325881041067432525571362839540787345857353860559951358361667133893752075322186369124671976350134476904439880110570041028703409345704722461657450881943507173824940792195805056313543124110115825227904504577961031197572588939619580903747696642549977454903575419127577260622233298415179961975917743605965205985419730764391626473402209226536023154772525802830284664860272856704485697394016562979830715871890567303158592545227174936451580650184881386305118548367949122538781925342820363245510611865507903009841921073683775665577108825666572858126017327648272385558733670418854158321838463331293105855770636959449338271939509311936694520901328649686179923642542982665150956318546865061147307979642220490240124898927650277727833818920460917440479931557811703502354223508448490363094333591703815940337213296757893156262634316992737585800018629583116608167302582414605370237782069392336714242124313077608405947143744674453743694358658092369401088725195794564418777852049195830371974485944994289993216709562364490237402880485055152917270747447956506815046292036920263466259980612543858805535230119994667609306926965199400622798424008284191797520773934613267561129997096146962848535318519533550356248682328814698659920361400928272023887891201847740569941705718316446164517176569227343143438245249023232369615966125902335934505309170976802327919363878990007301845994003011429851827869444190103262586306485206735523313591780718390910146629938509807570878237346544726906896474782231367054386846423353895821640798416019743070796064879071988353258129349245848813595141330014236523950773221798318978348762596521931607037787687504633137205060906647128642509564403287908909105199202415770158340295125865448598931423646367903191054695746962323530700956934145452822370853938637923622993963777976428154052296735225207699967066902180245613431017812090482267843997615920749846824111168322658766862848777413261066502221805750883652834821825963262631427750692118912437387182142032302399738007355455834316156799943508828928927165894850856461039158197567704666197209116700182710528128515895810758505924519299602806643487166616059350389801033606279140590451002615909003646744974659351770798823623925027841601909100987255382566956275453234983555913992743419806925349044418157028002644347339979443335046959111807566336526082422648437817974470400530505761727707583280408069241206244484127452495216706420876864702951870252411574579271738580907967133736647016129094416342272269961890074054582189111035559152313561816255838275971680619144511302985742031608159116577138114131737243514461672061455972760684271423363638720947754737916241800832428308357777281500081875964614789551625189526539121244237438806353341110986202390464923598189687743229229099796162014870893908684042288258287975235317583925762056665975356632238272977005010563347167470861697095238370231884033891363664781887053600153226225817495172547333806067335017931741860262904831307743852550133527722875301755430738406924442760962064025776949010190193022049585997857298105442219282990941528685972975967857492126950519569503607096802176885738901869411618677380289615337768930277853552215633963575457962534090041818833487597828190112625643442448965159438494691014568403934333150121142388874294670754704831167425476122155903235249541735607013120012338094035920506797674575827094061516606585810247093939600348766233210919056904275312223136903321331360527173515350350174650133828999358670687132068387538799026154294689566257619147549709632604829712691982251223719439026840883890084740520146872291464111925699162151681665689392855680929985091735968529462019076285971743591671431734636761008786175317164181532032407878660377258887166096406626250623362862373041592853110976699345593211739341682713606196371597168497600254589192025557047636331665029510001686500740261022157410785283179542359279531935696957648226069593539055832886208717628119271775840778407651959587585484710904579473643307757742348917747021969052542679340295053647338781168066081395124792919228686612094309791018732265906266243253551381487993051815108121586341003208540512470561484863032678255208123808871494299788134570573418300366097290722145265540809641240706776049990582983526406479544055299402203355356541520284817005216082204968061516850264342441059608802980875950899427849873085621040259207799096736279434910372204901927686728914887943655165801953981407650419140880555622760535594121205841074232612578161124610047782345486843356100669492593420783592964999667486265704509733552200939458471849063699750601194002410999952684499417971011793268847057032076365153454119630453167584783231766122718253974816024404573622053330875744945552822618468457948614888815632396200816463568452731360599263262171420125699688232716040194010655528032590263231687739327326577920884337819011142821074747611013149175293845553578871201291252328820357121379181600152675414671623938654385334973683113641955081941250863685970303815208507857182964759806563255972073642452299432495313057530205351357878433930053640147986367442695234199337963393473974276433711699630425765936650587383840383687387718364538018495559481777038452869440856484719138427933536981279214241088882704187773403846055349158219606108660684034551423852897856062819050158397869208837472632098048041375003586693435437314705185454848615148632666658740366339151417179924919312823460177165557117287053763648078954177390541870559705853598669202283952947818853204074331581122435254840389747633642184049143815259746018835665857524102543513125207263373931160373775911514713413669301344702595912584610045614468346485976996689429257030530272244583352484379615907645062816079505272854849159659487794908677244758329744977742720569192835925017385836057892077376129864073131680166161532857357830601434248270484367686933587482351066122225850632415649042501679446044248337689707857571196973051879086208562689008904071511149844849307554629155241373564135452910184636842253546128188236522978345694390862292064184596846451314655953291207495136692753731417913854574348747722914821832215887710998550454323066487605909830893262420861237894396180268755765146799502772302062759489088433058835298380265717764563546376265247394615055457483875662630006078918734595754481696532609201330604327925796642524406069309018597481893258656188845647154748930764970886790985413431697670659518629671231391119689881836965654201259003232603637210256494240733750593144961633279690313151519428302335825510498199521591925045911470988778384532336157175145660821474163126075504601088210800530981643571010922948808100493770265734126257693752080513200903830277847371596656331285371517644003000404285971190526234867744555338093463861346668947672085473675483563286766818470225759793663353796537338234442882564336077770721611643582537008929251538807435557957581982687692841181984184992524295250475240759296299390688630823918112175005297285105243743363618580856287028733615352728303476443973721212908563738744757256918909375573339263733667244950599421998769027312726017143041889838924593747901671666710820877743621405957757126985913577622398189253885657412507930219318505220670761555190297352317404109615209161640831959081185157065807247030692786746892624166350460539473009544956603630433024250784740528438471381686613885342713834745373984099069439192878819364885431757666168349152705182138470671969255275203611710889002130944270553725401175361141609233883453729159043710145854394086195626320624744163726951619904069696823632944738549738848891254722081254300396967663940343222912602335258937173103752845433481980572733669864981139342190978056781556367806174072381881000017132263876797240194255743166735320181775538060336105897015931648356020357107493296893906500556369650677948924852012414694533193685097894955888097230992636308324042404845239903519684613104297174603336886775624789008968884498060598629124644513959002255379759933960369235698514097262226980942175751859838144349504562472342264702131987583441070586239703574212328528643247762238398297875062673604595804608834081750168155406218832512280259107287717185913599046734495442809762294711120394815941723152503422495313547018238752993938686465432644495451822943540647645541789086527269976906158671376278505148746444696183343357885312449319061001034081719379775948857546391921594336138091438625447257445533867204486002234845499177954243160172155789415532967688093689064237656418110267665299578782718854564299584479171817354896244933648946719586788061625189863887326377648787401072933656448529292254728128782517525586507605828747489542248168145233254272824558836274993302049271284296555794343132258663983273021139420855377122707985861758569164690420120083137501663863550614917863498125702497649593865723308050409623215875397632486901670418706639834351248699436871593810559505184693142946998232936082185796148020646762621487254481163205980204205330242030483248802249964986171784357515131242307198135705641523868975057679102791269038593436667545480579932428057095763627093052353053151358566616818145613408510407743542658007951701359611378859972485201431716992739238267756310611724755355964731081902349795094058663215954636297724258240116702711333771088412036532426010977459339425925426919919079698979600437704481767442174945475003751033277250187457383073971388357523546320270893002385647662010157061048855746223724566116420628695124961420400155442553990964935055883977390263639608501572509353320699375247295697117513539218113687805163594819401060647312472330256994457608138228325110993404149117665773569265841786522271950000416778622985221048130020522867676727884441154168534839100690286523667483571180744708989429698824897497642999944972717707212047609881513846391733833700423980769112315666559794571181339497886631249134700788512799018928482457953114585072455610270037463812626589387097222859215992400851386846428959328953255351872080073998725213475031366713083232987743580517500091477964909040854488170512558081262462927999543802583635460101858081989564142282885346469624391559924638298439974503003086482697009110533062451229165663960158418743898933566487668328162433730498229089024044700735241088104630792515578879965862235156459853690632645187530561447385980791129552283288270008623165034621613411701992226015799748054351901886284524100095833898863083333002318423864783955269854785757849192619365670419085508361591498464345776189396570151936039393899398572980830563465503883949577293108578663126703993140370205135181758853710281369806219296060506406916216453939718847320443210259535600573561711380336455204478461644459664877779710350920792732614550206281013607707868208968311517481519373893617068835627710381980878689859421651138822916464192236143336292474699031827709978307733360956856258534803623853301288786722526983063545870653567129652962240110853935549717776334567654525043027975416324487193609483213580249908178566745762191091088055348213359881779051615719068274814590082533777817811514883449615899650629752419738864877168443711899732858249382949392505874159267536764871794731348252072500887838792014814111754286493371438728574399149719002510099507695212751123714152893879406392142980410299700673380571381447839911907929169804636363021933984406961153958296393765989226016508250696382952391794030634090033795363596845368300119490282472344623787907853063714805577664248118207214918468527677612834153968200584558146430351398757533716457227568741931573918603015260986161974535013193719837947243447032401910823478653963856436637884605390605368204727444307870477809450731342292152296092841207968566814194634206298403588896177234815900421007986126023101713011359806855566088038110964193189885404920217387273323525453822532712618266829214793710147924139898466846620232081144266461938929185322360999371844890175123714769046151875077995232871517368333565723660898696411487120040137301814359695948817709825956393960925312155960040698758227060050607540339526735629431040005098202289086639412259350806786739380210235741051888298375129496606639088190151467327901107144768696211361422835809028295172592669783821529889534395658501796738343582708459279685902474475710320205510986766237768736525691842872289350045758721719632996409340133611607539292694661990608835484096842887368160011185730051902804179620342789997610408662686614392804264888320445915579137639281931506934748196944871775141163121915825318033406159412351243420586251962681809066982389192043452368379707039218738572101377604271215865211694043222441258007138320479231078242083817785588600386560432100793032759641531134394015997251228432444004551255873649012010566988201871014496476360568207500373880980310405738159629923724484181588438285871453295660058372180685503441254994418614404792216640115715439322753819786270085741136698721121814696077222050059335578669755004228177023303327941683482071263046243204654169471796356489779226878815293000368390212597273570957627610919903233896658923686299551507423060503506408298104430858755666555933977586153551237344090383260053922230390645052902275145506520103073192498305334056715155003722069323920981717051184451915545870367302822483484319323502231656461538134050613450589139047461811370086195574807218041142051174615021985017384616401030623704114511289333377964054520777816515372216837773931678940821030816442999504239636401138073930429357556428171713583910682768308484394842286501349619162208921181266602168740009261502962630486251729510831701227884755449484784384109628997608285525695142066952274959086931623479191475913285047501933588236749085112588570595545234518321206286940523711029604636459619867859369889842489533600304707466073397007072532120985622825631013135654105469207774930343881114257698744204313998171594820670821336539800764214545036761870259314598849138097756800652170448376401465266471942506526687760230922563469525259051334746478863570600310831488017619754719444518843512711761777701946252486072811351322777855801170510211244876527148207069082600053592363420469398563596915404973318506444841025914090183907599016114757164615915945610420863258673433764360095964675261814548433531514462004281717910367973345168235561608628238416069199807817694251189429413116818709367915541890023825377128680951082645180209071016699677932413651752349041072319072499005427594960156399856286697162134362436719705514806584345702999533148438872826199744362691025777735557754477537286420340295975669989574569591961467644144020611599885184225590001869382678246671069058660738686190665225974752435843399084044913539676533013031759320487706852620298502087261102203021291258720239748994476041970583317965920472189447607411026501460476600316808692344650902310389092460621755094811941716581150279100089903786440638875533676027255063972082744087551756803816373667962870733087619314180476763680588251904372197261472518779990606661351985152832454379791951568108150676037397049830055104780464295037150214116885937945458201996703979658006240338549212781668429277508475567303793231232604902954579775975673134449644436682413707930310124679440038475719492686556772065000297953414647460818583691347601132023416129132249490224023489618422945764714775250705330652887953685097287689113306632191931481611971437054313811497880607911509802890210054947479210958732119051831818076332196364454297278798372779695483471307036846961141968458329995998255695959970355002409737427741453392833411001215766276423684107774472795374928058674629745706823745714135911975427033649266901683980494534315019329944109054485890492723246825711393403133985966494146372388785063901135725444244223527510459121986678393358614694574262794319408924593329447289672038277520391390384535869021484548082457622116270862149309422833232009653365295921538103301331040464278940329091146712740621911782298829493281707795852068906462827534924592906340255771208376030661260710461131965591897418916354089531995667967746998137989215326568688371567589625409747329467639846523910266578941064618491673511403710206760112614513351575091190657664025045642155678721245282287683814716735875243091747448534842007100100315704316167414925413240675539303171657505850961012977449628401957515636761283796586310486183295725818444335881758761366850879261469681556886549027372243718475482955217107920682385158575550860161393498247632904834636101333159999608061358890213418470939501285673082427115950528041509304344796518664594950588586802416537227986395981619422160331123668479805693839394575444762269674787961756700741816539381616351894541654058458314175341866369783200916773307620407665941258668989776603226571930041412893847036172423797996750725494011834331382480757827775724391727714912787422977804371497760436282131212571621223564760790583257789380289489337962291617932940120986360983731591946524499438961042746832489125036192431902689991840168134259341352685584576104232118500106606847882025724014250448384452753197433282762574752897032999343535187352467019677096618916230528017046169074236331138548060628355942332078231042156716268528774913818634154950433838484800740525591413407522702177994168093459455362033241939750724635099093344056387045484461427652763184452839717622129011714958797710602307054968977092186551803910960293632705190711844637665290029609258574210279764426169434905633378082760243099665917804141169925337466621951529161581906702721241170388113803571978841019749579334938850267344986063334772070637883682780222633054524765401511238730912636732708955259114445475076128317112887054692028558499535356563853285338324636051608501675048243109673138816133022452359450063133308612349667859161643158625014427652480690039723522395333449043652622829956385252947030828082974743616484514453947476576873426611071611385638340639818039816718628563396728635617862078372393897389024684111415611865114974108765424561630303215753386249464963282543888171852756454497910931964658743309271985679463058833499920399797238782742734230665776651347059424024239419071947211604276359852268610165755476026539869940054609848981726512547677515673441547463254952626974328453036429514731951391221728360352167545745112736665488379217732048965416302846603335105009158139293042576624606027714125830016864265610758886229441007793771976782439386468795811841188526018977611753197015564880989241150204389380888305685069286431072884720801897370134302325117373599245448927495805008290769190730358777223969130603664460347749739182292719063702744604087076965272572982076240133859585444818682789381514107312828609246967568713038322310059532757681982944524894023962976401254044347680831805336955392981618696889910900175012834907227491773685986477402950200709260157630369542924522270178774184346659021262863831321521235125972282215101350486455452306458472999639343620159661254476656079854844980103757242608098751101991898454442611610769438836608546505831624804666522364578611461169595348938391168858431945233982366927900554422581494595892756662806004036248055202369276648820429182469526014504394627232438967949281986977106983749179438208491679816403005107041125122279663103072294494230358431307697225913030575819449884193103359627221269678097916469291720064350730005398448126165280628539126704787859527010828160812043407272235425987033540109519225200377701562040030944111536103284498519816317880912777090033704326251258723294123393662743266524215209842607980309604924809467325337470298103001897231298818939701330171601820070786516104564855233077936313636235651252280714901973360999757851713730614098209967175952160553076395173855173548935194738500549688449587660586371850857815983114901290365821872503900616498287931358836407984368680363642841190689621226353912763206411025349369083573598140662219200865551477688308698117121159596086500449816419974183918726687003211217354209198314291858521161833171866859606501933007689168974863165167911987891707584359701364239030005033122839606685061987553277011902990954962519002583511146354604621920521376048553382424906200242708499065040790544380315720129626367783698663257158084746921723463688772797948675590181167968006109342616439362615403208753737959971983394345611600277368264147098342261053967399097237091256374331617240603582047288463224844357798041871799460311921854376611385484511630907735227441887922900293737979237140902308178653991011978582627201455015971556125723845952145775778541653003211286962935385525781202845699558197458329730962237599221367836524068586779850600568361582628535656084090560169470559652260549537890127290142696652889223075523747612854748169695501026933426795075798389382708750430046277950551343319452798581990098369555957515660954389532361442184018526969361113976111920642907488442856289799188726302775011575739541689595672500476301111079204040797913802282666359098135303585745053541505177534621434183347677813065094643900705098114603930750400144865253781319715493563167873310299394155503128097759577152233973125093487311438706987679206518427971688060022623233764505460033223752618886307980063882579556512291403758151136150658741597266568366652836554409412555074108663817942354695865484250121237217205771638732627584939753934162728506596330933121001896166591641670479086703968498331362749329641821237231445327462133087141822588534780236078292905865542305644291220438378748597593147421317699241701772614525427960746081098174080827918176356360102585232040722633338160090758318847072784184620154970572772171930813200077413725814183499022903490549748491066383214165013302207911575926049908558264019529139313638451819911205061058418842811477096578450097135843022311612832339323112874540022902281291753056165216195988947044265983787653391251146380885105202909053177109865112889296183007271983470579090086878657983736196044233081336152209040284240379371736398821944544327751435368181236538372811814246770323871111904155073701025154770233058261980046740746584149189338741292510125285782651252138971666884060513077290953883200526296930140470233151951968968387768393640971800794843295186956795532502170191120872756907911989906413350330218320819807971559856219107459342697932650642630113224964693898379522022992211934269396914432129115298686683380051852442601910364652816469177143781987124948151808504615964446829224791341712419705362537352587869907631662874031359377975027083046416638886900004051964620906366612569318155841988414047968373986718568087083821793738880651409736300046080838955093978699770504181082750312455905392603420051271063823408401582688627785110155736624114946459839241974305817107829495058844749776395417879489208575975514827142406080930267002649196902134388987387279773794049789240925268294134977757250875479754405899528009476127274193392394465576257179691194790951760182909975768699819728691717724218210949698445242662315959126831403345928837334075793330543977287636710437424294701496374011397037661436852385865373718442135293469921085075480169194596342898383364962001666040079145757279933951958575457200328568339229958968399255413319803165768475391361717596033922107734211160159373027517525698178836251833364385445322174022368147648355831150923450233073724430433271089399689235934751510310512586590035712985421260776216178581942926510753146436112270834548938869729902647798832249362802806217272638570093072583272253840796535664384713753130345761127544069323926342121265922219002332545512174534305581185360822548564437996950333142748776299922878096376552021832644853208640219552940053850610124626971219462190221127655328723705705025487568414895684658681845510523101067575908625464507798531122124391738658416170109388829596844691933794755595769105255064036224523261838806272399479915960904120079300725423735633712821473840000598670698215063295839442424770805485438446086143449614946192261622342538741034737794912414950526731018900427892282656483499361896033505362234726500451884197132062985619180610916169125751257285588166904813678815861956776943807479275192431188173738837451439282187905525600368509900394311648002912510522942913941695950371787010176978714689557344418678506316289472891890926818534636305378814973656917123226203091211202709443886790711125337596036978886777380329606601390840937034307827520873512442467885282688362136237355803645708837040496268725197450291716917904501925475743463157440834871888232563094048086318912926269486703670447170330101419923602416427247228300260426321154009003403361012863434589208319170999309010161485927863860865093041367950512680105312140974733409272457065001698174639811699562384509771197693808339610270742973769469854795779832253302720933986938354863259937400041511609928779914081929519192548239834460291305986014860036855891789726241590831644841519406356586268099412355876546890637850105480994254544122969235545645574633714290343442887151484641056469490397087234262262098462219348512530847841826962458926867809635701340461560928814405747787519579670354085244042839699249424467730365379381200146158520856204359169934877220946844606256075183130000487674484158537391123507266559216364097459528321104913853895751372980282932018673880382554270956673999406797695487742349614096998490343024230407606798029400240325220548251772640714623044026775191843588864864178948353613347983210211325793463927081367450664726632914754109390576869282531055233459646064259070743474185258701421368760352243734278400076912714030284083211047409449163774517518308668587894655637766745391721711090321138196172188840601905008606364592610185396835113969017942118126036726883331296734940507995948166280789552361315848083970258043507751724134849614770419557661167811267908487609514772817023554827882885832275865960741306903535906174385106563375311293232011602630194958663948091955228277148346028157262207326707846711922406607659039410363744302649996604080491049244053421380310490575202385870457598099245118474544330954966797396627291949815702230956622488712342929518637804008405312491048910398099522527935100928829536297337607725923147603320875626433341162739117757667537857083109081993413460028675865487635171190798070559935317736817574890110575164748540389230774654379806743259067813733391382864120570313954363046314971238921969258104210628786542643381748536613834509809086449362501736267863418851873034203243097330952790736829239392422760181767882354362395963600806833177276581013100713563457132781889396771799164295981871747161003931913444983161003907604027511370676262236227993067518001570530096019086821371404737959501333650729987733151844135718845803721213923688939097960108919849888818503380094999389394850606289369034728912365921866307511126201524344996792977332873707347579647623728523471112685459204080420211467444743421703899059061428419632910027904571169297028020556592130170905676958137068783626754677999832174797558554688945142698224374646982927891020500564890269540795512333725316237432564483005507480833228043963580324965491938504306933752327715096572953781063225945088797233372565858734273522803037621495249252436785228266278691125662531394715154338463473166266274531289988248607935593488227944621239814096575666378898949314611967688827786729443596920866012830320096818514152029903424141227443300239475241895370248522717414244128997541734121340741067727525986001062038242810200172911231678533431632979221311187806117202288797049145588437925950507945484709209991932720775598990821359557372003280888518585783477607176868188879538138735026388240475269752057610219641714128390585438067935087962313222268658395531163454056790888782444737817247610328931380621224391466820398485388305563831915570203311234393003417025805488634969477668103096862332504458703022784255893224227299236651762517139599148616481653388901828976358639495539482459822763439440165192700484712149480254263540672082956303324193817968468665991878742628526890464612868623945057422068198814054671682209054827263657025982569628638142054129891582386608263329736174181999651924908138357034283289642348512760512504195414368712843363469967767951844013455789631762649209747976460931728951436133977347056014108442509593167469094791774753891915222666239741217238229042190216204863513507787266581328462635950283972024903351775324004095211909273868067595194589857857482635942728021290742326896520360648112155699295665894570220789443204495966043238600050022155873344342810177266946322270732856159669889567669234682835730570553668634743526696722907787552233261035913958819123026360473502832057374981678646359437740525028379037778772641293341211785815410163492747770859880426324401656270639763320404971755602596060250782421331495371911166834674405106256340572024234024925004733388607035377674713085395698622735101842772639501010336990648937415566846992528767091502009944542093819091265937843898510426134731250389849115032805856370632421505112226480580132874401877257339508820801831790187178732002845321985975706267152426930768310415335769607510985817932020951433229723044757100172499835432336028158141080317264636565711352975970046913939894164756964850327740993076360301529120451449149185020845700224263291880198449366555094189404419339413348313203613429267168020569849424385427419006680019751097353758672868095213137622201984156021215683683914235231991167639297741510677436347380932890605103323169595512560861082750301663164126060531915907328223893148433435531566902339675077196745306143320461583162935391351731134183854023295166670176185175360647891658871848094398167966509217413805775462949599363121533358975080744134868558951564195351494682837069827571147847523902355798239770457937118676544027681301060784828151049712212969450449049387119730552241837833605907466282300113713373732494200290079466390943432229494214023442670649660148309574440977487349943559047341133243623971379304965440813582722905642616164949312657863706884504584234628482637611510562410528401185537631977731049099566222107454624804154985566342432604853491797967924900658033130886033421980382409097877043674844746842191941899297024280183900157117621372529621698734640388127466006886539825589308228481148291090404744404565271009489396616167110946118821439994658228455267745707097768906428997693039269561523940036044684835942847577729334354270327227656386517624700450630708426968889823072413324810758838995872503757550918570982958036188306747101041873904056826396250163770933737297970771930810400682181264780075831735938194407103101354676797526321151851088508251506666097526571980720814849773610665468823814241870781517111988473050947699166362451117947210128202045651924925611430314155588848143697615042399943611220665322344773569540285820215318086749651313507007446399845241308912466787767990329770158976378731652378014121711625990186165845435944938383744773988006066299130881681616332226256315833716096727409623226332354796441268999682452843216506880010285484700474851485485584900227033114944802848655034702813131308176864074168803537546184341700397967656508106423728071061850404894531162502409518849444635011761400095622282175985322533743379366649458261402765077634282400849403663709709924727177884372099624893572539445448003454995537538376938319056239986490946923707389645338638658628441469812321224859710632739943369852819074053582879519578082146360585301159538379998955507742716119455437384985953540764050820601385720578396906380956555626604553051356846406505281734994771451918035664168963920086536326958334705116175976338548805288326940368198941519847975332364055240398865481023908008417829219060883010795408025442859926364757163019824222622307936037574447541096111696242790396324676322087369290914815809890782523221128915383266505459178469799440545735431427699037789184108403465448975365969367587106351140313453223155869453977962815641918344593661810364632739621949159472032845358563200348146279402154906756531846963293655027711739269449609121226025295246805507779257718991822890534917644645359920084611675243883054822653404422555351325535560613322315491635483780709895257681361211262150299352773790441810566957367678775112704017669466407501682311347707688999692815912115999278955789778845111524356527685776238704984824947933546038096539585995304941626385587408813030402599355935117206247000684671294408725147798822722170771026790518213691933931525122700129544412588216101366644643601047571946868465997435892414256132193266847210135442015041398939996914106206531729925481722891578487583271149063451388477116932902365871055221146777422375104284350797593977875322060817177766538806069310791875349348859873099974880650629847349934437333907088478345286051351531122716355919060261964848547654398133489163562855208262823427799583616505622330863808027367559600468771129919213147343859606906875423866209777074719191942415359358036066396340910551992510243868542840224179907926891200563696481028148225527110942262635626464044104471903411335763667136907273575990041721206215257516216504767922031206310810877770346352481188032215540578702553860307746559044708725031517847784031155787825146890034613610427037436801302705679152213248825198679989252239647408054837831156238335994361975083997240656562405007690970246500954008923078774180662063099689051730406108727696971005146624527289449494051405580045316159115205670687457308921764259335852643306539061413724135369995035790004174477123870222632625732965506959964171660802468592568097489027794073269437593638961568359001224149689089081223686148154101365100752184594046326110390428209039305182750398449918110341781025217708540549371076667212845544262462332961639628584892147827591497489187064441885895426057400430918323664525342283443549778105658636747398095164743527991462420842418101237434473451987110735035653444854334506476877642883945214750198320830749890049698733786000010631148888445588263073271057509839182243569408503967592239775208855828279987077899176036538772669231330926321784224334742666467480108839983675931809622035454205645799959736250153179585273560024058068116103771775351654525762842417647620256722357638372858684407653263128224653263404967296993441213255669692892781081146195832197393826410276506533411851469871922353115154898828326086838498366494696014584464009065212602714966608740461983344239393682841826823611460665672880937777866669340783133933256786107645744565550425475246625122277503854644499425307839771129904719084438587223677458432439108563607410124598875284780010041254725055153831294980040457141392138543191087254279723802287148418358740876778548667874512892565956398655373445767816928998390005969994525610370576464731597270998599343901921871424475526457595738191732899996646101145784084617639834794259649230285104993452853808225447249846613852700869993673905411930335318590265835315796392593311721938538726235815048604681755422430384632501990080910084954206808505398839882189506614906976569958864739780988852954827681287406503687966830900587842223273510721802988312190759972729616846853118872235690738883431579526116147666880816288019282230726805685499490878433684435128423807567520832730966199281554263697992927602411919548570288569634301802157497151305103056791757115962260268756919775498875964519427972170598747037995535604278650838450098916028612510341891894963967615251272032743001064210870575556257662913801678156509358594680204468199214690713731356855537082984047210520202600502373033045964115085955124652275588355592761494610297294670514005027861093859051860425074709346222467300610502571335254200385603916250686754558512440573450015033657242977972133440083804732617855375967856520911975466765453713778907123344032315268441571517283748134112084427066046093118734924275556939138958345409957403885460347212157165484925446405268595478688590408255638174414680121431065427636243881814772245990635785078193066420093272058796481770276826230005356253618350807241889188002902435312011659555162307663298943521339983362775114689429980118603771930236699101954518386247442358194848477970953763448305376136772770960480512722996076496367345770128151260381329154229195475599568082180316132814583609922205445865173221011903354175279770477025181480413238010701039975912761373580164072100028063603912170616504797233492437628920424944788815725854667517770504612134149804599266396273789132487733292218794150179077504187953307127908498745577819595544645244797894787073727772547379281233806396958018965459554696725500990707463000208690678057433647278481945461098202634039960249701281929141189756712879383158784679449413102535669394544223659395744532015511214371721910408198475412990404410302921607122251783750732521915178204319299178006128319738126976020456306417438027031986440019848552297501728446789626917458863554786815559351021814026214367592073965545115615506680811362958680729845000908070753812564665644352241016110657215271732724447648495741036739880071901569011070160667826092650331610483360950871078193538656492951322407248866889693961787113780968986766448671835570351416072170604190520945358133835475586342950491835592032170512033387250243890722422641279959495361016920443467212232266391222607016312384881184472831300153839668511637390931726624604672883682359113949314916632016220961736548021469666650669888003000288689195174541364199206260355408492601458785834671266173538104662655324360461762342070551051336555075184209902185353122937137973740500272755846251431668149135994013039838190868543366520213117099119479641190673470052635494603920921243502779710152453766141640538657355580527544391793672194548438965215000848775780222536132019944431077071951484090485535069689902351216354288137640748436838570477684922684601950468204873852294272262838255952234220857400151609626924486471693008130069768968223715965671403421181697524880420120797275841082293384939330176027271922833194438054486563106227582686995638593800724278604472615791773939647640441388528746142362796984849623071231553844238502861683067110428200335706774400162817438142945639069173164229701083319683452132997377552263766206699619236596595904335567830170717542132240154763241744449728317639836485349960503079688977457886856190912617707724379942972610652498592274258027362779681651115302406955631570358390160374684517474625821174064784201246722589494600935256901051325024931572341129425745789909777487246199937341239490010641632521725601654067608162134034333948208590284112271093373792984606460062731127340947820429596735254590155964949334611169060854987403093590921740904608818804030714442005035643605820803472966886084252583481363725343792403321319647824052957978543411945845361848051084505678913863427444055754731443366677644639005027770898485586994402028257702217109578274806123638526363593360622432171104508496692747279479997517235115870853037643334729420245642061930197095049890922655462172976354111645398870600973296934457316916743775839566038406261389090437005720325702282301663387151709265880308403390582255832492174896566890106648071881453127008059780128231753051306397914798614363751604976436935530561899696776518795363884773869761219250734173394875506934904375589218524446540222245469573335634708180075500498809567157551156383648389902309979114616585733719220034118412648145671766340016870335226717465602157669913636012794647841335054544312110591608989526388492999582366027725071902564219437745009924227267953931785791395558112161361664278792387594074083089364906713574911560682185358583777922061010339525107117785496703273865046196029858878971063005664606610532627464174902279950378619690650118224998372107352081667179429567196345591934038556178154664123246162524294775229558223915211656417467540582043439030739309330142844561624371374105945351618771848234951580337969836325382442276882192862119400807575424565484468512183745203004848028570907357159862060299238570962488994962741998066252785231343014018851381265599261325082856251519146142412617170537310921245145808050249049812022705509752040277978237257113513585272337002866769431718346068938059118935513723323590011809787711820653466048338014958973484784514001417495085167406568829897987532190494444901514802732667013924206528763700849084880401951167978720892652448090911583332746998447232367011496215344093348702396621787197138584235734293322928364922312761668576488593786810244024330904787292854361923784222677595745918843074007940740941134492497208552850389754910448737657813476970793520461444835035607132646863096005606340559692590977837305133052430783947929576808899091744684624547682552111142597930141971049760074566290768741471524665012838450505394254646751313081563125693883558859454015076506089260790003676981269443808502035494816124879567905653104957901227266328673601501888248017884936730124425589551279020853502707832053771478162905591900216669729595421273688214960290578256029959009512043233526216663697851318972611140111855636842319604055212108256683405479745790975204897309617195668944961186472589275819721805421431067179046978856512521538199441728725092963040341592674619363938067504248305914728453079168372261578877230507180352851362621153521100173615475272237968932624696388470870850297054875873074083778447044667097924061909016822652218769489213731586486113521183008731579606598649905679696784138285954013219493547230366050568033496303515884925154582681101193170875003312055544230609508446827349925410056734654705295248947034706775408988822977695139172494962742390331275796898149591979257912476313350097016017930694058626393960112052668496672782922339960235038917217809478806009634910734990138847876551516640982282462338461411977866992810356989574176227460862690260779037269443601068704744152484998749011897079943812905409493609531520760895863076779681743795373535085688985292834378202128359518768328668497324950193051106694109206207858347291002379162296220265946406833754129355561413662867001568159350912935941931386632464752972852296339838762635550633955905951471658124200043556147773558893401449551851588249618526436455050246423070471914351969379593698081027593341303176289445419196445332394281699522073916017779418720513813323655013957374447811087420237920359562359959077174904881430642912195888408090825369241314991985692608980678068843783723531532554637331294759887821879589927659589651830950182359394987121457385778117457104140347817180739281283663812682800719368506194387506956384889755430241703768347032513097878119101236006331073935320905812310812618693371547819635280023341582989668274864800549163674428849622781852967841538893932936571408780989208089008327646352232799365604009116101285904106504510844745910765311836511305844403865860320210627850507120577419235037361787545932886581723835678307195186829840529489072296294843242891922113260471714550408438943947935885124539181122987114424382494220620335247212195944265880397453110461851304513988929054206940811403344580453081256450956205495213364421775949944692528353623752276721743270958499443736595153199752231612391975311729853913119481188565114665398507078155684918892568846053055064785059301954832604964323446938477709680568722071707128325554394022635588314512473938302038591592077588755364209077410592075716701357282679112622844664938293571145860740552930345489039489374045373271664142556074792744706191373998659078568145284344248698917782339159255061926697233819533457972602477949352425846976399939612272861469730354117735917344617864844638379363858282208160479092238438319514620856198092549798095901473256735351375798937054770966061509846362627444069668833075808117785003034482974429660126142751054829095054631391992748814833689297856237101748932640318943526653232042871923143028538118608328178542869968541209214757062394268207564185687025379179168053477097606849910566071123684936316165462455691593608379154877329980235319330445270789070893597518684609139733620011274356860346120890765383027492871227834325925852753749313584406793703450209358361524993342446150120645568893072976355350023240611940656533059802876286256068708720834402518437911603916540242304917362047901541519780336417750917161616578375455134553035905344356335216076246874980443820926181677742948625975495986389477034026133376443523961290019078718240833119371498676953566358836238714035530180664864264956982519619059951334641750534933384113591903453235913082742652041296785629030393400697908586206698942172469363151100093094314080049822886437794594127325741839914827621256539967813437664477608857532324145486208337708883293346445622836405741750657973172251088639616690221562173206190744149774644636709132052468981624264936449802761309099742662108059115427677151156650800150926630288977137043864564917596266042001298291004157407647460358526663908110666765397745456374645498776416105701641513608328305852166514646785409761472110802969154270397152496056552837832704706092010235973624251099416665865500547991330011584583766775149852700791441358541914716517783447853727966853734055481903612606258289934825543529292297608125311388468784825582325490123005088318668507007834279492396104074025265834677168211064739994869047034543980767921603122854385652364454106996399679770868922709826813842120688667863646114137006906339042225701662397862392552673002511333536554433939511067849310515087345206062538455831259707197465525574530576607060613400091881125506078046665861555846576727903303847039544990532912706145400318824242247929645453011833526393279951419360776320541655389606722223240788164759028349440007608673482657258289241252078663453639515541267580342156400239261186484030194947190291887259052418497632065695430104514059427850966648912263367398621040526333744980316175512669628825619691853794782779926415657621543620679837672064381066448947087959383661528854218504089379736873496769927448155772876733704003446926376107995851842543075811709281674534742531884101465049019513904093877919227543913480169324707246491520658737668976313056155272151530759490464211527948158793170899540544968824002889625452054309838981501270829651515460077330097486843713815377124425012922536888263482040748492648111955219959774061006888705899604949330447648096689579798600947833127160066358320007234023452302429047811009239331918720001286420070646516138815490545497896053358470769522027786260435370830722185637811440808989459037876721782981084143375346120522953331404828197738015642117297485439777371796584157400682583331150324227469243131796029084162558493600842571525949512234446193701969121463986642163997441805661996430764135183496430413753984949485785677497723167538933002768600099296309473131684668643032693892378860286619540368454598252904712719125156612839295835556671645785470050124692131431625297969453443445682477111818402823989759116856892528319457550643775576268716488619815821769334522869929947975096861076812551724497132948372615180916616204386615773692463109114419956388150669603286129871511208861232971759665465965661601590698483837619507690839446478815046288536927948585944247690116205668413188269851778956084219214379601656733288814081041222770807726341325763394401818605047067590385735198300801772919614968616726003998023869482451739591557166343017408479582262259223239210192245641790758521850825327172774050725164080344204959918070193852001973342717898122982898972774359801481178913455338334129644106442499403433166718133434662381977589168491736069616892157696924936169743304730271800859739883738839193418273134498279133890958531800102344467764607069842854652203297672489806254594369846122044574107254916357739334461433277551505672406811952063882628495376911671299009766099379498898803039248454229029305222334300000401367566153435458275215715437387343045022980213050618495207905768861306795559915879253432092115381794117975062261506394892644209722253691651055683565480365215323766694657603707113028291166878671439450876333978802827928600239076256699934942193680952305904139894269950920830347273123237489082645535780213374745357491654877542930925557395677895890080345703763311520792172457465179115072066559637070050015592282343801922719345423648033320001666836484247139269362118482141097245503505878469153616232689235276155825623319117861535209289254980800626589411274814608309076365097810190328880702974442594201762017993513502685820195237203635672373028027482029436801661188855317720275191195915519473342658741396772745519351866170008379245252999038966231106015075825437735310179421928927085644471035430351674512373740901532440560426697638164094098765102307849075678595560106588926885194939266466557189895988434295672461391148491122278196823164286459872761726891393804846279501667729356345685769501394657184588733518650314021011919574535834963412395660480247474634170581339476866924452626714680738578789809454511741055081079988178223648604632783468255714882574889465154252742350704096764357585624537674427241156555010165631177517692611849522771366701385671021355444417040008678443484120168879243424249354545836025824553355433118773830834837247693504968691125049763107435276397053829260623186589032728463105621710467237419227679108766729282245423877553339256796869007069331800249462673786404973661910783787446893153079704661278697146410004639292020272499623145242546426207282825763346234298862991653533847233737661840559475476954674097395475960676462402367995243445326159868663648452124433981497643784938281390989247298658216462413811546306280208663503169827497077282771345078891735549637409119411984691464700118705596153854731808264722429967676378922230568641779458810590708784416931316811278545101067670634152118832267611310602295994157286881457753821586400312439331068004909123955199386945275581848215680074917764836696254657568577900631675755513937517912019860988300881495838463246316134630137174395609285130439620746514757826751203292915777060436217402001997600201889918619092807327576818460101152344381810045252911102276968655458594296309261775276760836250922755020426380332228890794246507927455052286728311175730387585204687194599265888411978298011058300505040909564132816203153619583966552492565197882484498186978785270437069908762266492112020621225290660484078596603576308252110920031854863487049344391288877651611746250788010548911924167404983481688106198500607318068066673278370003076720643656521065993478915296082029713686196408404033905443861479779658863926571377240559498968413216675705091940178918095928331528518634977962297404936503449666789177393615595191131553425409555245263872759816457750499753414630719470001671519937472112168917622874142173588470699653602260678172454209167269773202503098152107618329532088878068244133129154574394206866392814889924944352420113594062961515178914496460841059919291808711231578876245331605458876402847807801343206659430317770172942647623316998473328991977580027507511323855911594280585309482988951774649518460832023020400724988125456622629535805489450463619073260387061719894067360255841861908668327336370006684785717217976816205088344656565131773496659937421669080724307617406150556117853409570978819074574300371863850076376297237048892927855506832549483983059122798672320400988006201019568347867884723943261008953100086993131868785664659647722813583395042088651493699414167813591942037355036122516901424662125934584551371401776106737266840844627070072072642869748382144281711287801617035497681306891454578345562545925753251831642579705114453249485476912058429759483635202778679442844507454692599090779736082621269208803825275826107281630220528664717372335189646255025166276822422254904078291594666313398850309015895027609544964980217334727529620179308188596273972348371148022401930205335101734643904998126810330689413503646443619692686461330430958332437563175587012806071559360288849414525105616330018926807808755791519770457114139184130552123975071709370202715590934169897849777830062232727646636653874366433032813880833035733629851596604808005590632697719392747898046979518861704289316007390408738776144206790751929221848112400533693550399098059799121978723844892542779329604520629409341370280114314333251078896773461896059334149843177891082691878045437630100298306475020873550384672320578835573013043777270643919606302281230928080527592298640728353333416521982872551832248543670455476407149846044409920778310709643135425208052679156739060860287175117018558798401591314582214308508341314540857337257877686642294763310464855250834362127366729661314329857131195482666292894650376808424109991947240479367859854044758045112108459853192850456997677205411450191034248171115407563311941231363194833310037531683777699532471546069690393907099665726656822675269923145013350575557730778286907639507811984902867433732623675599913728051546677507724836707492815899363016441753207884645481456523364858974508254313903631788313638373451285894041451589639298174165408938317178234026080347610800332646194320456744039228535397790053211081986690211315739426126760834941669754459414065560389572971158320559081403634226374651977939535729652571425862073458012047902846796142626884395111839929510523955355636255092657440304022763312474797635652629317808375688084837433994965332875796356228480465928524174040106373009535604835277049897985851375077883656265665185779755134234933599735059570930914797860451144415796919774740672832487809770927160755937511381210737117098124301605190699249859909778757881561540301260409241158616042707582720633595449536524204642446728670860089917178553818001272393643517018711941400944181886149891942340676996352981926214260241581192004007869939994878786982527979365885680029776663063721195086482809388398847520041147453788050289541944975996288479828204487380469176178393428148890854134460454043429207881358338250886479968951506744561593954626708453466854252600691275834214205284363010561638322105869875138074048579389226898424660603225770150236384969823142054688084415729948308952281005988454396794299742485819081872434672695833055061364382106594908197955158683317773411526098038034468488157722534883777396483872729345208855034353742759969902700799399116475611993415243288590330306549725797006506749393383846766357887723743610673021136413366971507093035186242580152104761268782805796440356971482304332469202580384201139417514524412155960188588875169208214663150784266894584477756587697950436556973735944921038306022214792269455729852166731951636936062056057238519657698402281907603170421009950385671315208473164608789427647173545312909598810083638056302782444920195900688329948363784517584858994555169799679841012462648591818014205915693294262946343803798674566855570076977216195383274315030587558097985348621247683351327717709710013495467220932700023192805062667974012141140595012351628301945444142307129935952546029037044107339235474375376890038256427096244565476979081203188124230919692089703438323248003189001877807067672451946663325879378997742106761801042384572319938405868177649442886608467501173342100471015497915177748122209038167838511339519560493619399814213828810501214948316671345665095294753434252241018974658665101686791737488468808981447001808429721240105810166515081784303090415516148834354072088941820349344350130689692460420770319938339087239238930227655506974834052752653942315534307412101290014267318731646139400724466199740838555680020337172946941269767886713803134833681602822803956529340357871658747398930481625417469366065143546303986159452150950344516265962335715839937736241305056195315798000230174013599124354869188303244068412618597038886087273158199752235224340194186069634984563017725127383599974504134071404757433189943982047890133615234507342882494251405607694442944208994614389919299323999066847696494689175316056788693182306568493928171666810202991265337419458175968638916204633961589490285781477889047913568914400172730299294871733919990694497926817277570803698580650045531228950220784412562829968809912998034824755449293996489947924259151965191083410238624133454049535038337683109116744775476293935221135232706122077534797439254986594143276795267772480909354918432095960590456707104748824537625167191066846516619559763565570769247946517261652540460202043863794041747194376378363446897880877411318760223518006454170022490848121832379164557952965660957524094064667962897878959048958603051380719768554933915954316897825525937299031101868555336113761313036270781418079995137531288412005966347475801025712709659036097833360205836827007649038424861296816938644560175383280315085290558161279234278199771510217700989882377462166719749095017200292181489230440400501320201387868446547154545716078278632271865937188923360998808715890965031648785894986941622737451961120775478955125595049451148012917688124611141318467692390703861807730854392577201779126742117022858098802502900397076413613655041347696904788018101733110977747186036725328837232355769376526334184071432971716921644032740489062236667312999078298125885528199244787467304061330712647915289085210915915395924366118323083071377592703641611501875470810651638731532606862860425316198264849423496573311974838794742638122481136050682554034334512277305029594003304607750902166722569246647313076748791089706600167145025433279262762719900160247520088516656214551541388840146464164673614047996313013556515114854294850966900069137904078980824047904587346034458976960492118327949643282844021634544679478181540402973923105772301422010023960825808058106632553670891085957941858600576068526543333742635655525559702753746414910984435239654206576330763218745188428729940017493029623731187999928096968435525207931093634187599056661380304902813404863786841215209520474328112787521346702418290445177892628725754749343556044381187952368628482829907536966697815744784374695064375554841774666672578271248065095113937252177459928102317057810110162573693542727842179181126475274961746283154341676091014891056066053975426833188380071983882953041762899694050025844952056622496224046499395222968044021400567656951293034053941144286892080281650733948337893701929636305457946172287909263040994579076194401100984402756720341618809550470674232972830201832498389075936408375717443771718210054876074992651322483948161910583831942872518844795721090996846207049127380180716558136429763285624081191956504922605392954409491613066981987078648002106226157611913609487590477244558754398789603475771810234285634891182615104493335540941960300767751649768628476316942257798877752995654808124334906498220309179398661853002684710467332351831936072712968837066555323318402375605963924975935456488973805651733499973656598553185875719806980915786453047649240764808034528215249902097266658997063841177983634261166649657203602108010860254588072597935723700686863786871114824389087624677530124944254209413246518965442221836786200988128508481448755323425927649693483591004522149760417719551781580303670114773096962804121988226102767757866177860253630390109828034802058472315809347255693287635687508932010542381031258653133776301356713607197052185578065116951446603596274669746735018366578415108279216669663876881306135760448567182202524823249956799462846003027856888758212487314727318280980850974149292165529447224941324569923937667515894015627551069851032764764067564725995003173212593499619791601208403421663555173306012106761300127452851367107001637411269446839217530268583915520159718596172018334559095312018223721709177556335038536525270560200085730187101787769404947060838085307943909757580667691353633052541659323333457251755927823757432053276662256348867012355613297850534595150694775848041634894905582944928269691963467493323198815156227385927911221997593189354003166198675742731291530470276608057289990464570528015380376047466722859467158138586292245157604203973310429283385750976064782193560541834765165145149216978303704566126299065282260972366650918311255206824708942075457179808677133296009718609486680455674501708678479977008885987713053540842981680246412211925447373496047036125509247960347638579617557527828257667091191069799733922789586389277369228688546087815239323224430806955734715252146480076180983587192874486460439238602133365612193793664970187540340162928886916551807216542815842224706750276615171898767868168435296808607748673106248654719767791924438242418030281739609104382125308252868703373169955702118263998304252754058329533765246447641948936756423889659286190080460966490083815771550030709521741518152131746844572625485433232130094969095707668873305601945937888289772288103977891778527676675416627512852099740658169777152821600762526765000755493790343107709739591339392872418174805423813787268641639825857632847197854712315547907980514287336226790821675558457804952145408874848919640687250823866948514964267786681348672049635948396967744124953278707684839693084896621622400527110645145172355850637212465284391874383761242750121124509098865023999379838120483573092020684800226885400380138494585418875952026109951062842677452828896890477158345542489950396484476813038530872945407941042677536185877307830838898315036313209490439842278806912627169329601432998042691024370261326117495542426909034891622338318575612239907484579898313139727116914687407351526194824674237805538865902702751618824798165203936401526951258518916890311159794875698026011681822973623317071961605154795522380578644173915947099602302078281533173277823749996216189147283790590915177866740710312807525909305516613017394149457911583884779952266045661783379664169593165722196429619647302115765741231345909095579701185424147057741871052120559132540194713749158861674225314679673838163058544053435038953879520205808067107775654834339457353236033859755074310773675581182194216714949623505412372389667262463459945398925688710393608838136120001015390971698559762772241011174931245935802160343313286100335810245477407122818409187343107820248312066380657324606917340388009200572143604745180259483321357064200984338176967483013271013781638995228784202280865378543688359582198600555999653785406907467827348513331134173693802270560446813122411914048189012662277090613658164776623251896377231091437995289418809516351843596070688279234695393076228888993296334063084522735733688933090426731051686565725739761064072125454317860836293510694250788406077917564114210000756661213378711235581237849007725123626396689244843867513294170636258554168852033547912541995542377058751518729219855213301565027540533140035078271355947414345016517328253471774583364776946037622205361783322376983252832224179518999162199290289091759651542612694372626818391998538774825336490121067132047033113347720163982623390296464881954709743471210587334862098752238183755066757757123006248298038386437737915408841643387330198819600468285456943309731454690775659055322081319540352140654592181458047335987722013306491715864330399035873789196317977403766926565032374371414371961747062201332542422228833015199388636008858706388232097493134714000579351362121372095080156614936159961376376931800073710400306723997324571789133144938411241374873685116016405395804209599476579599164013689138783513111755011921874870757571243631807471827796539101410378485221527748990170556381811628477011870646864058695876998104212983586899342264389546572270802404791618531326290011807604351366389544411476822158101363863422580440115145926574571481351556377410492135269818389885256030524876462959330237707177559922690201667709877800200792986048141094727880395430261009804358954018581731885147645029320806237461494842719783761321284191205484423204572401588885538821392118368300498291584374954912702646556633673441367043114295892687484623295957425327579322647517167378105397878845409981815108632276649313981141397011775157580868290501997639677131388611681174634248446461614526038960762594882814550604709563577510254361827562526654690663714436905410182764565603034288380178273190038758315288538805728757429367198269835877206841317256057610367987788119115114526256183803044459543966198196867957341369203172121662785177587165025036233427396813838281561773574878302625320166868225158613491446614674396248946390505275622947656622482647993129326318506548552163709184750042773439428936372131113314194044100849142933845630122820186537692317642256472481766410620274097449458717162127966886479995199969508321335629928352098085908762088713247299413349787055467745944997881915993571223050094707709483853230975085379657734391489222057015136891193632397542468592403949590051528260866757549745299051997899924232970463382421410015147018443383030220309123271545267708830874945004822410065952664936940781432008881257738828605641312880123531579755806995482171994088658640561256249939900933984240086024283319981311177639310848462162272247230664329545995068946070309448240207428956091034834014931947996525109423615912475444859445509900853489710914694480000127216972961167696127844568297530315776234533373724648606006821126600989588018713734253908687609637266899910847877837358426346552176422700003734066129996258149727267822294016675239334876236633647266907947887075976045451579040974130698163656948305142277035360340260189905949940803224383722658208623714071974419537615927774784832489963853454486917268257822556086553948620008154899190424073573188663330855154827415856505747725634643090516196191017576928322835381506120623239624616282931700113611061948358617196523443238182064473138942884980456868260553325460625459890841865667336612736520433279276566146197712141317989960785867989402673114926293699234089551593157418806242724241483637950441861838296673697777935276107440310296072471224936522725271588779429293660511190059972616303169120644818513809363239032100715694071918353472222750690874500048983796837054207151824907770459802319222617661044271001381638154960296992397965810993477473438979663925874257086561631473783076852306919276544773827530111543765205324471877942713624923828322230261551224237352241839856589059571566946759715565381561296421936435326486149745647045724624721819278762523598185849415556951406573047526834214182585629701884891372739534010191923980032306813919762121306178696954284896857668384540150734238172403292181562526094693969819071546438958587031558541067023109942681872733238930224303083298012747970770548285437720918788326049844493577723360788734913204819100122572383823966841130069935477660014413895531747953260103841109404969678142413162107329099790808379445143732026002504400492146149340270373333608088949869018373629664945856875217670595873100909205183358065492015109533874331105651243646882663140165178479705278186660075863011060359525815956163817835413562814091981685448295999495028373059550629790236119878581695058391659141939737097987706506658490039082705783017096428324577497116078130877297086222003860486934282547961864037426903258709468923642058170000107632823823731038776260204195437693961799350692794933758594893788317642321823251643407376364018163460041219983674373432503940295278164212569976320661483256552902838992557245450491155473695508807395636891613294292805107045379001759274730750023311704588668275287642838540759404416947752741599933160108963478492923600971115859941703817896014015788044206111230748694019352263196286936772647228276712692956139025074774885287211337341105010940019418661093995709166473687555336486053945339078357738999180606298226935661848327318253437371214538455546870420458490631406812648569630054379147780567734213537119391686904587837143876528196524872675186013925523773157829752922725493251583931363008769928514319639390481375508518376233333189996743710871509622761697215578789539854092362279613841616648299882823287732108892418924180682137083722745930552284243943976539190869776749473477083522396126698160853473610195137916647808219092274818747109615011164649919393219527358553286777060407124966357764819019622027731843843285216350233074163951414317090764045603011821569544947358088229217835744129395226970824656817918864281722409389123017353479561258877466832139777023022424521675850711897562862293786053657943340298673363891080641782947940885197416954612519626434471628440425754107470066435708374459209782061330391966565541532812017755436050974875481690987538231650971817906956101039530720835171150747044977075120733107533033737635544658327836670111457835010913072833322983270173526509157327199367002509352486067106850683802623277618226139647802179461880477032093486622922431487096632930182890164368124214814300490274261381448864848642309480000746261859240767701300129548511060479024936669492687486610263913400762098976947515559165061552737167020085796524646343435957877227149617382770479989011960809781896824632704435564061506457241689682380805557649248420847514501755862232529845212163563860623320578519920440651645964434990862300509139739061403134297782435080661215359623459376647050620295876239520053392271064810117833739335030046414392881033468696880147844117287945476287380326236026185092083499434996264240441404449350926458901455334887465212047664321052201905824499245700028768219261891236075715894993748183038948276877105864985704242378921070289525764837708682968738397072309363550709925391715279197092175021647917666233438993562426250322952569117057873786987701512105023379169278267502915443775934301371409256109834683374068262874148755314128495232562598710603053806158279834052258278021673266691842036953190810270127005353040600054935787058424494317531002543307866637889654224834267516377761385398242760591807698357131981801877473373418202229345083780650332851881288642424315088283614644872919610745446655785882284321661221425158874223254540988004337370329149880551828518947878740304956026750437509668658349423891718124534693245219699770240007285270682074554599803247394393653280453709394042942728528124849658540678859596769767137723970677542357246564713777240586204473909254727478662685778760212347709366723852144347667138013100500006575052096493891014057992653554021865832091064288404179183588452301790942146504881666416946449745653999471785503083344287718960280162087348339542531110827641193461451196564862549390537409838180338353189250248980724440839831730152713607928104548528872761290999571638251890634353437255912211273625171361781197297579504380683383099988551722774661682269764177209004708788656003136624661858400371624805314031147349594947949587694471082097276283919019658664746686431149010281285406600709591889235578065699375910418928296882439246311664368931010217652439169846471501389640172374202473953978780797367440436636007985558068938006667723890452550266833106129269280981156231209314182521939455075160731856933032912188471018667424749789826521103343106143691503769533706328723934192998004330839363342929602255482723778184821479318570225751584444423867435044048291212409622557892153968971639382699614384860332853562078889533269142006465683796415268535064016186631224259696186341090623833409340286939827387129298033196872843701878918629684029836297026726098917678675947637530330724960554373648769220220927902997055343852712569932491729808714056394413274326594664922045344542243559716569529854366581644552754859160441676243096214931850277380386772804691771980797044533605210005011400661514735105131141318144572269165494469125000977745377598705510867276984277211531307786678532724908209397555010949571615809875775660113551695746815141038769951009920648864448501258569889967125184077615221115174727477705501864201771855074897373549130075397884665171554364828074034116491421074669044406412878943868148363751395798593382980533490314328344214743792260555507403503334443484935269159734237586694104491867432023729461553745633277951178382171007281255589226981415759764282415773980822209773183337647809354218143028489399261085180278062234822130506051088502910541127830995439722574697508038140844324523325318593968600760821210775979985875714555954082344404422611152144862612810586644637346094913284792136228152108351491537125120733165540066604867710701660439021927120711537405193771410924139047635618238605340426234579937959034309778036998474925083247571852693004401308343085580885663340860050253549868452113821044684082121549099964421049401868757117125646624731081610674889458125602243293561217247596037780604008682165860894231675424034684982831632709084566227892684470917319346263349805443260869890308371897199574775981776342511416899267064476446763332295324900582939449236111172400219974007385706028243052013715998585314857338095437464019727860142025189254918777090431215148230352077649366908142340793873276310212615689004766439040928112561257583649094125437915818698472581079319298803184055960131182369271337835773134502367239427748992040620332685455129226475885848268326460773826555738020800416835626320324227548512119304697335941302867230080581538752795714720739441100956407936287640282160233565776317514672930320245917875357835222483521630952953642433649420502269964484728062391192507007442752692819117647022517962279696869496552955223756323258210509756814391768472300742741129819988540966518204057544569091358904911436441585200094315865140855879216587543674079276075052151532980672759115083286406265221880423712084249847165505933136258520566528423174974503678099487701528680151181132817619062797157208832490008614573216327282251524802382185315882368488148797291536592460028461608015323523873088835595569360199426277039662044684113456381804648294842064096601303658422700139590325744762775414445319040066406287571299922370683242782001985105230018184977968512363708072171591981398710609468952628475868732972472213557228392953724539819206932525765409480759292721215017495077891600683612638134821450301370661805875755670880019988274852711984578681827972740729286626313361537161574201217537012678176696302642626183065294142849268870160942092590506823264737111252432248951569752896195862419730080557311415511891433039607407600695084207323646773092609194267999674817285929959162334556622339571553483648895149195155708523110096893880186532469953773698716216039815756898646952874871017315261776316972820232148014453497423614132127292599488906960118906315861516075391316201841573468343521196344057793624473067277814429772802133477084174156812940555678679980955096273720709995217117043675629734767855739071644465405299763550130516160573446594191080533012870648137772596132464458137116650649076944663094811856516951655162499664805051735875927325388475501275276519922936601163978452197912937473055840505486543620556046382659275495629084073454537378749312677626934830331836250349423998112946160279819656475810825836196443023804437296740067365264800690997447203256479737003349194404277170532087964341070914656523532050428872242496860435007345339994962756616758492470662896705399371808926856040432083458260770536782192061306049042968451584093591418011200588337937190933911653732133530695900107102606193997765901342953074566205843056028184415267178616061730836851876855734871812581746164693148367910756668750400793672679265729910247479130412241353882462079936230448649965403418822606314723822237037995801138913134133393797393500032615062443266155804281829039531660512524328752381489535366934543835452489279667096027258960753013802300243105022221924606026114444895443667844220354208051126036038924052797511557372778307641012278244841042251373020400066352889535657645940500690020996271687801709469770398730573623344005724309994243564316747443899378974762046647310203965946241959043034370102980868028427830805856129627507546380529811441192122375674596803732250083607354481182539884598295894652735954396403777436631715111013061032280451319230568481455723252026916460865910712866209554306713709647920962923136769805886182370316484768617953356792565940475740007444427352451489106830565878349794923367981037437805278749673294191780325018459479934910740766740524912389193428139917836222373979858173146559940111297982731621563984406210997195229377400879901818369453083478112118635361226766569117501755856626606241755213790433512165598080011171362344845184284673240232213159280982302735445587098984846769573484100305679113159175133735377071918283767206920120926287157617611375439184073404353141084884046421786948844188123666687142424401430424798559660323025084034352896720139638067225538578431319763674184365224315148476403214388813832213770030136549599267541543919536388133257831279530761659852437544443359197234679770678015255639470518485135476305873250024734382369365248328320475720448513148228403065332689004184312688232004279428253926142215401910418807163740525980984211027141226272307489384179247346109954954228661148457133605438150295770610105987696046405465631888731296382524659014095752398760243226270340957011680868774434290421724722536901757593202582055124761053757121406928656734722009687605296502521753605956118116095269062183767815879470761532417798866552606604776181458684149577390675755676627406692888065432680926528404978567523699926187913989315314320753740403711096303415831308851948252725489953397903641148883959463713230803745872693625112823206545221772465527354496169411934161555183828326583661445651449623591194927375907132771692338088114994062521052159032588322572805136774282834097469668371253605280633861065594215334878689671876386502518867817899302008983892234550260506211035392631649814681839437010355444219388338296722400531119189350178922982496812438659724812539012269962860935542092048633199497665511610327578337524151218193523787245056950456867836125258822552803383226477027618782601829847429845799252941101963304434184932058800606101853299155761346197563105598821483006518108095491884266771948692891786414854245873945978695153404333780454273767189678196841369514780884147637700463439104430333223534010001379390969686128969078821451827827274886669604490798298835021494992971318532784889028188349727531629925118106425947161859960660766522360898644130539439212102589240352864156926583991924529941163603418351009172210777198365791547182666588701828495840565130784261947363022890997399903217203556078253699625318641004493079436054336776435354066568090733986393439102351030321754434500037787684055844159154781426306120614542572561903629003475440734697948261282132969336179138800654746108749705260090738699874625095388583427521368506795579449344969573065223564712420444165487464457404680600125051860306932954472626700200761541621066793192470358642538465379335438139347806173236655272922631808462057207497779281704014987437920455183278973989528061209166444193666480852210962427734860251521750629281984844980750701460821890080563069712515739717923732329973366818708575382093752845841114601995557896751176444927805660295375993464961514560166434628777288263575028934790583362502823657976437287237621057489225612314089494065847600118212714105578773549745100315402111102614027216751836653413689392629026602021767709605900186194697940496437937851249902544613543153793815799345253008751911554837370353576853983545189832494610722953701501744593108881037102725033898606310915324012506729230348054024391317643527439875319871825244745173236769934848839565723312111082696513274123919530891161302851805477385675162093748986928955253613601643005882296909914589923838972606131921415485861984615373900258597757227829604518394282629508209566659051348718667431596521691337564218132217403354774480699036786745004029498484414897994940575949576144797092460522014985362032879327429076648085019703081299089588184096600058008065758104156352848285987639353364246145803568737408122242697809736132021723010010677422744398828107605076430805575432595562998130502890972010754349640544526439921703081985691949920428286824397758266949038959614239471044993552433315342919072080578846684165979623974741037800386641093758734421239690141395078684048919719567282208372859905478481285064371540509464774718973450575032551536481832257513779379997490137902171554906751742399944407678833826328919892985578600933350310370788158132956864224757459837461412204017592827659527082598056193019422936187840485012755575479058803730327775651926494971197466967289801198483341931314364432650917534870593524913997798391468769748866676356263745746940180872850478626702972573886219780997380907380761086552532875176423325597354967852050810631254864267201111013828879258289443641211485066908619990082889977092269285683145184826785638064406776258467796124016154857447441946632767654812578047627213063570053445137012156180253476249931272907440202734656120050152582311985684136762004985580285911740406292225716560267885016142856242948908691517345090677004016566641090399045585990781028948605945133647602895887174147276867109242734003536325760382852142727277140554189501265044825581515698051696269708131407930477362010477353656480140235795236198227685422704842309929524121956160685612530961306722971033745995952262003278505435661559757258105359121501575565955345555127452610389695799476496826275242475850174960600462520807797634244363492644214111157636267053858303164461536549480391410963175781385710483385711788535540270018676875382075228691444156329574436194631589472338837030422707390248135898527224933745313038652822507946735195474360475983049101020919440386886723935972306039747280568678494826061534892218011124234501198436835838920232405388295874806684504871716866851228789584815022618159293585431575420655089211434285454453422105793410054195101777511009658435543908186958187508656750989258682620035114851920914741397022334167141195297555602320028818864512857131241632899874391382556229155607957384708604180933179026811196541638842424830469676063473757393387497282772499706255479133991143890032939167103494300131421445896549828421447617830688247653403974599586770956190975600749137006250950738535924862678270717395502407646916202202691865814458624477649686871370324116905023944313635742747229934057271499387658367525798119218364756782326253004713987934801792558513807031691632608430215392869874289559184025706366976773890096585164892898736190110786488203895175545344839311197321596255566573772428505456805407844729107626904820503160578167409665015260441081487986828202309464167467264538607934938463100572509073950717577933463865116704139016998822242315130818823429101250526188424894907803195264030188431480824026498182826091475153048279408473668781577806110804493807526839721009101309529593801743754856717031775816712515246668364585585245645267350674217145298573060620010067770147199196012157384215121881512491827818977220779837367784829386733754244405308075429610362001449844947022241470526771281673169031784942526540127372147187372565290432850612416077201523037414714413958333982710630235403891256116893722246512144342661997507963594167593557815857737837957038244860308121048802056261361812727906455430493519963679658184587135577951940850986309676033811042347583660332351725605909842771996640058493674114376221244084104682436078176582733760570715645467873999625281601590048944580989769717418410736680204368904584186526023468169091160421790052449406952294229825603437839483026328288632474383144760693654593513765209056711663206347427097217734059677600842715717820308477872266349839954242084184494606198232919284610388779309451285582617413042606546476919568158967282719651434233097510169981225267784937160925097203892679818279337565000419396357840647081353901886063626316399786706879545387789038168203364733239904504133289944549211962258092456504762183952429882947181970841452539212209472647608300677642084122910604245245739483452812265541091671556544139063111058707449185533208879344607091192939734696457889680857942196516870952543482623025431591228032771478615602349082951360785821415711987477433464221829842315068627139264368695841110249504539935945450993671708563677788027620862215706451853189048739228831834023962861349022496170295045190994573335331979161314344232095173727644554012582544741624446192104739602301079563287224591718252492386023105127630090283301394809413817490256666035522470318546467447925283969911095341633690758324300087907960251941285769394514272347493453588458168980249259937606510424697493317606532029208634398759399375667891356019111621986985930167168843540884328370710330181605235824868436071301770661818807478781223308105885590945691304365952574070118880834952670683668996886858860768051938506740070470492543021555327167988637021355765318861296797618006892808656751596353346869164855591319744812846102568256993094098919454743503680612822959009262672834896128658512978042445997411643482343998259357415280044149930407045214567157505413733420040979961254158612289771819832630496888607730484384221435110518129637624910927413768351440731362047208550509357263482539607238832995029039032065539792652578115546251924607594583119222746790955661593790237901780410666351870490761456900758822137851791015577347909915564300233133579319548054319168702339789791701996057719373398398734794795306435022123632768618699929431818697766493456022583082746097184420679426137863455352727336020674093897874153052100065298078913607715691871751903663060112348155467795623329090964873280241356018533915551472109407673733517329323485406140353793743134951266673622658188480760647908809922557632490626423321147020184371693448720995257313597017363325826435138090590886492768619322339905339136329141265056972220162878932460087661667117691233825428396574545533540812726108144862161794267738953424225013171625303724195048416306616076255356932865452996587139281981809863912724305776574270287924239447347019654452913531697313232569093722178882516937383729882737170968737748011518400143331217471449226987986428087304499934578149965749110271296295438108229917244085288526244970044823474645590358023196818364753319174862840588898974169273888574604812244002361079144910248299785772367186580006089633810545946892571537151461792822855730103436328973156048858707594545038393674855972334638360022906275059567954516875516816599022209484236573929204552869480503617366746982279702239398356523341655891868360949408740610673295807672245525608114067335758663695339068706639243812716978678921724660025489632198572799962030110763841716160023849294720339901424243130571638489094432691814081595524454808353266814242381512443064325897627379272258544736778579786551859070480022747542374528713588784272907655746202349990932952913909254520649663914282885695541930270085339254211658329235304772268567190872536736971574607256130658743563635356421230330453489659493507015208966449403952972270874573293696526404729987426223127300677758729405762465782235319065022887549974442864592026871840655944773177301036743308557436697673091818131088342831884331672624493403440190124621021114443014499087286214564775786281523168607308075026666366666549769302625075217788203040178520966152700224127506347976730994879027778451829243941912219700159002740142687662948285548465578292054537057455079700203147423603855941280966606222278465956112351385722627625868473435978069858371756994347752187021147484419970156568383642113852630918889603444870030067335976996988796513556098329134624136449411792731631746986633440522882331681553550538279729426790126931599238149584963794635449145002895357891368924696102546177174647955089682992428287938753393343550207733166385461554636899835195928879456033755831976040673730891568643881514461188618090747687851434641031811087060211048278442600636655806896624345804622511901999602498689844573352716884190215242717028300202376447483590460793316532471538940601038907944710903688146385356357755261880399225155105310034687263861100826127833291006261157885321111621195093878207283482240096456928363213331248561499433135872641794184108976793520219756407908273168794313192984059339643816671932296571960613853424958980144656416297161029701559791657267246416043029196135700593214547106014500865165121161154913039245937635659745934389972169476077914217318783551968381055152298798774330373777235330687414427130858534253535746284135979571937471148406887406183153320343900529385639448114554193225489387131997975086024468304846588658002254500371617185882564259803312441873895454823558418220416938485068662799944086789855064428689206935885656152361683436177591952601789692162509146008860223430838787516866970070235205199013573345121498659817631510394097653952747178456869609103026471966679932315690908957813226516382822253453187088137463427025940670553431204188319456731338710892488193416783134675344418139424374593268798700169636722786796568122763808116256317053958080197179211007398769998253522629719065831264440300086758461831722422001065951473262844435647758544161610406612903430194977922089837068726304032224950330546149210501717335465479871441647420673680424323495590785831754238401478857394070764687375935921290612846736391475866647803558557206835812413776588518456210293866643906427019288184527956314188612116547492024734665123917056590682356715763637775753153155991346250908105179431500797783711197063096396040522035391465477723873993345510130619958409533948210199624646489669097656866728158038839799852919160195529089355414997856808203851553422408531890179754336412739701713043366179704926409871397437381471881716611792399632130796417542363076501140068608135494868728813913558028253322775832201057596938506507497054061005279438933204149454113848813607958276762722165687791152128274603723750045002113949261891447402621287575759487219594666058002282450466731202501152986210053148081918639747897094996473433156071670417083064881517066971865595639131648723524646797553930843185212611592562199433620340144195719198166249624040195161698244390112121968487439911722875188104472366418138326302112428681215139817441968694388743557830973568258829269991186435471805222170003425375239169707715983710427845599541534277489050048262992808317978733526726567026915011406876658805126485013364008464099737394845671376615419295606192189833085951528970466406830829341727614154618367229818914973810553184661482394662720138609600383989902730773710207594269808369288197615296730231767152795916608715144647732946503547476509462742782023543304119422194735540522883283992050497975652054936420457749201064869209837699460983890469306768670870923466247533417737569170203998025272018231903910826025052646093954682323792982205607248385821548463920555025199056288896579619641488569502689608605058029022231375416141175010379803130813715457644274114242727632113085443962388763917237690137244479509303857554142381801657246827395277952166942349915819517505052377840445766524527648004768779098286552186726067472280123272767245017222755805606323788604473151644887616155231122186211993649017187465335551852589906866964485778351911085310936705047022694760628075258521249678891960080005642879561748439371915254301701304719770440420410703813321971743940121069055679104779677852367764825334242330675151101650928953125316026897226202998334280178746078924363924167912799176658850686930907000992857296086565535962039520642748615728408283008542249916879510956654406550377571258704304450521507533320934806133619819619514541949650875387332961978454355966882103901626193910631533111511680589497421241391834839644136270009701144986583035333844608380159502746911172845570156783420374220088597609856287284668021137962436839406984110055713729799414647077407155662883841027261839964574303211706097825238790560168407157738592970720505574750397497166336457145633620433319751060659659656808369912395552171716617598401077107795027564776868454383791071215702499516259003123329240163398795342506033459709334312423215651609749805125199057784653231097673265680595304764895607621625814693886197035140951682717748826608716986447281250715464957501247602526031622330140184239675760143653954963469853757882058708060594426484877128905099857276661449547584959946552082930029990553823692729985030577074847209563569215983781940991546525845339319754790542894338965537636446171440119327682553612912583325741528186688315885800436480084820361744797125381956035437712844035924289264938903872262522440085565634811060251540755806854343518375026608648814249048881117773875848303031787122570819000956442034461821303935253747723747344560821818431903929511116056804659154308485387052121194034133285280398792626571379965957144966523903542395493952356642036156164753943390948616584638063946990547408792703868439057615575837358531969810588046632117168103755835270347204889649855389219541803656742802214449075514056907784415319417064886629097749711662277424688030617611103029607144949453582179306467725733345126977527631860404396923019752045739433410429195560616662335703360586850990049729095639497394050665523915540061930736284783003986006813597365484526356227671295048405500993809349425205109236355971116301209769997874989839113930910278498809339284488192876662611898612574857071385372799980795113986424853203685174653589951601055072211474335201425435739255918783804466773812387296085275792316455958376681931656179468836353349377995047931371302767199389590213986495007793752444057176866288474852604968676569548186326850462312773685175493706995816499138029220053684881194687568402851294447999222521630610574232916964847281828970423183617996730777926133041977311346554721098732629534823366502171274645793714084522667697990290403307530991835689807335116786832598550333548011723596163538087090808683404375772148854751067772330378050737362888419356684194400977818705705211975498829112048642080350511486851025183245404689765592825209043675303254944454045927744329853638706533297264731326858620578694168264218657309653059054148497075465664384132779667402194252656348598739538137403436156864237017710369191516160506048248906288555429393650732564067596324668805912198858439145974770954932481716486305255037085515338041284791325184146834606779578590617941833956714344675571227658197447054552557317358137930442595316536018683437089911113742569662460908730531163843589302007064599421823691462802990151093685736468350567239687079352203895390950329644438029246226917611870904072084176112004854920847139053137368331442142651764456960489293206838115757189241556439113288861383924519177872383336541386962759374811030049622096570962925338438912879014258056295386148922311288516084619147671984321221512016650845154575960819346062702027849726251351133767868631506469781365736595860744156466807871192108543897162582234485620801338079752490055665687157866188733253481316976300804634200715957057930776679403631996773686399454007489151726334443364103540692102978563992960467822825616348748770475451823555640854179055865826050769225394115639211703911886113975840900194362842234103479306062680705324640151453959601828314477375754824649407865759086280830719329931670205033205821758615945334799921445403804771290146084619103436120215081733186327091894516673367870794523124162957400961438958119426216049499234081413129798036939357067416358985463747544995042818399482415264979437707657300606699922895692330196471600595429665541578478737789615983414673870002746022546802930027567177561473120234259973405492694072287275506190212878316909909390063084968279127463221000875969467167048989249795800203362237396729990013666675211619790092943663496163643798460050465024703906308913340301061089565137340295159706535640482800848021898554996497568049324252398567287093102901733370995064448230444005308450975330356823563513091688254758495998891124429384067647604602204927828467216830095159608910544079524724613253374406547112733173689081241070377106965574173721240603007237318953911551984004628001077810558017309902133960684342519634009015434512509919595234208097606434078529466251533115043830175257349820893140806409310954224812957790889756931393717998548907820207951670349130801810297145181890145423403219640303340245326543278661871288424091457018971789181127067236733969210971856263145470754740086962698434221804433710743250807641343403470354155882173080328593838670826766968539195622434823736674087053551773381581412846277395541003068539147713668905580715603182065077616939498527156025877105877249606635109429529339847666388185258376125369101877672940024084135004795914371682352046929412664799383295036341128887204186567848969715814702830747850499541755216309006668968702091155623445184203418995984783711055529463122800969554356394699185017565162260665253925246026370297866944905833691164898355907675901802662674431195013197628631121409170799299345737272916592653800474443659532999922160493540713132995600091128208229352232172614103334663693725669272534775769844732752176248351109341914779312918502590625238258370211950667810839794532240834165934505405294070043781354624403847774838168205390288011297449426605179335761185215560601441139103373734083307343419211610819767750140318746808788988251685377110851550194761078168062939051574112558584031559907964261260393498875921061740991408241516704445076215858330989756635630373585089889483168514309905123184348882165041666740206854834999024226089042734618858805207976088519476938482063928446013062823547786396815277162046536562514617151168971837308400172980644175315902181975674597437381587129822226521736753599751590049385543802469609440888989174279677245106063289919832064762842277160046842563822358890829113651514187038865899897304333881865436906371210013355161952905475232313205802911927286594716972014204741732133334747371252470472721462724068042793224277806098275699714969054697460443268120883231881377995033289941993097522917603630786142252584028243009307028066184510916870319261669512110047092175239680333994939856847671010839212644868747603224193009314114169643408238555676572159612157076319847340821962810458320498579070092567822915693468709415477349730251153710037249861851265799584578767413896717258888682969533132381862344664127098821003674133448836705455021635500910797808446788924644147233911749776716514158351344669804038805967096928818457529525354258277634773774839383678428038425855272236127060417643229858343313405162239586109907019781515998066464268375110968481684748477468681425497755019293838000836534474382779527740127532255398757976828023607967974592259797950363593765474623081293629902622206659688544558970183776894348219245031742289062314071068515831059299547507052849419559369860418942700017862964451590262369347346712324060114321117083439953092530791633050068141655860548274478364591833940041921507490828012231193045357305512988903623733537730246622637241098949525789708379368826663772491124316008172040552264634961067482488898805443409389374039687409612388516601140655532420665920222150247055865985299476434142347048634044701606783067532550498703676990746631427853301188460353397152212794958835678193519063574981905631434560013680134922820915185335276827914783567407092739172212265605746986792386092059373753283172852337019379875405608933889700040942048503789341489790558493142910738091287136303546569466926784601931090085358970706293460661195902210503078287188742147489298719121449707132855149712203516718455777733606020200865295591489394880463188499830840561130295370089206242481841907664868489448006936980310576279991449056150499145179963241861213635249324603220336988681123672895287391265749885463477425813482259992100410827624119377822532011524572113060202382793753613152787067812030739458060912138560023889140384742490723791572408731002247844230416092900967024019622315443137517808263471979939847200378692623489438164978158868502048748719533576079919259101201636205883205056198408670918661562866264515477844824377877739497835451246258437785421323310999194297996308739846898238415509686674705184710800807696526664177399467036284776427311173383647339641949071899529195777306300630892156736973118087033273240286737457423639088905944187902506859353721491549812177283685778729222262836367847171698256641726800695685418101043128004672360504762345963755929788909366071782357376235172621703180715974109489754967983175793962670043267790535350056754670215535592552701851501697840449872219347428664193523519471907602162999081968190817079917573904658430807934659777011734817979664996087681679058202913732992913503680873390601244349701813294131547297086128043200036043460103918375251659114083286749921572951134669233319616548086049274618483833896173352617762710892369157237828417672606929116342297962555646087211869868810399445004688063498424812359398620150794401356813094080332835380666848474232415073733496712186086632930610498772676637434274181680839651042667136390681686434690297844208397483490987326884943883813870899497020184057926345660455276883956963006094280746937480101238330995308607974471500793062418758604641887208225742700779780620305980996172358870685809631858546819973360990066923753521797818980309853100334595216473216487863962275989705538476145456906275944563250029307870865811226370237761281269647610085470134864067801632257572076877265328591257677413242220047426520651559476478364334171267007896108914229149545775444356816968576190914311678266136061413941602483592347580778020944653832854896709250273563023515506064414450626454562080518510176545838830144827915681588445420909558313648865594947493162881558739028566009645924209337404956394538859475634156573103841809529250815862376503669151034624730966944545525886391122401518643262917831645489450179257453549980637395921911944756849613102345602763928588288289825248843362351681274681046142710646147341262124581510695387405046143043090518211226247961935344489571559056122871070504653999058411041807943175062502046309208541809459377956990678662848197514698658708672094292662007667500094786534666258881664806552368574328598800089107395332604415643411457042871314271082070345712939330682730856320073218857018659621339508145462931091001008816118424693583401295946603546268991382427868189579745205266902191029293680137555796440477009442873030217167375399165060657025424719493541076387186106764813174874986553481427636336299364719871603672639230719963878712503116083496546035781740138131649422041316130298896236307136435124997279280257211151165162306624155311811003163033707746560342289919034897914818299405262627416020805871507382111942860991969145315954677417394245049983568952273982081528889134636148415594771715378941193911941274072358694254520358581904351474531294243494956030358275373512463175917811427573376446537659152990571404305010833596203626708446344953020581067388052355007680359197286197057894761674060489813748330206651981530588308564249722003733527526642319213230088208824540217683322449478248078333864779848031767498857847844356179695364699479773088895535819727336008932892119300269016884520098767771884729840351481412475661853162721725159524693110344874795703591672779520411468411556073428195204641663752130965439910456827024576343876407988203295973477380087221919272454963215246856895066510719626450387002102018742861975673489258487599419486487747782247786777622449970087753013496385981440901535263279602747978475645529007038677308370898684641626927793323896606138294718846653941375842006059439702153941640974036928290584117346865650577811606687541345385505447739518587594016018857076149603084050421624880364459514822365744366640093866462693076391344476205678746673735554747268515172946902086990872807487649721335822198307838859615258409006102362236030452431491807438523133248021933262285705506901341271250190472815332574846940125917243200527135984170439150059382651271721828281257515013894915108587970866973506561685373154719896162143532938775332532233213622704099677906914766566653202333586130204238629120204114248612181135722294817968075521243442442388935570623426842932822551310564620058777777036528069889554501777427024074786555063401223980399750590301517961501497434548416321022908153845095793495644908271955755895545167695466615408018531676343073396978197603263889415920433182015884367145950004223037559886188109733526381987102830741870204394433148936221385466680408512511617605469367532842481791325456345463531257233075657230793610728581488730488470085418324837363048769722406516238916202068087855520738277703184334994354995306713798880163820802359007290451450286782672856772781916307451287489072211403236981735755043960125767430789708591728855773299523165739031163919635483754758875217134238854517041214642360686086453381698892639679624225047104928965471837745165178655813408318182670074206893308139489328916179293151711358788071314730887390232168550484370145135547757477817896171995184073797430149478464034523489077666846100973880163648715284021921300944464371722836736830752829633281221648313948542442256899129094536210250852605761303837118784140644066950795049804875014651571834090831995825187282171341488276076886382850481198191377867335007497543957702166477080661785937594674616566537127914827469535694706227040238587207758691769954976944209489808780812021823106183440878851391100280686779785509770024414515899871170296190784072678430409605054898432201556504835638946318033467557677439160069321893975083373397933407299631138218755618268650412091265897514602256682975089742198645170441473103077511662199215795913623845844906093324609073813462637289368831636080620605903356873527027966721837159427430609884699955100936847791353306013997797232412131407115165253079466917291784200704554299800260220642707120948865380152108288285501321154934179956664573837277390073745884110710185064901150429444201400169155604991023681154599661986115904419217222936479743224114541517886134022727674629155902116938713490180942051237907790730535856410370585365734274776293408796096791504232862505070118686239883257175069655993184763096227258713954499200148888771892860018918050012424846389197531787618457363603492989551565717756781724481769260536759084684797219084557635322539546434597315702901195091599524759931992598738907399003302665987723146236157332765458161911669075762510457407225541805346414631480220036388898176859941466818678367596118711904405334754346808829458382719139302598656071350940428015483721076575930229114567579446854101724830455912310626581123350808887693802466921262234320240655848133947116168751026789593196625170559157289862671816105132369333214876713609618263219327334997803569384232447636025198524084998269964254756059493702033585106700477470762992097011562639903897599541923128386082097338297199514532911277456269543392985081761582290723645438957200624557265753582247762840943861289045729328192512530945669640035237222573212359724439381987589174370079135689113917271216401380178242797034783558931374883616651911050517465791208191985098238011969864449063679668529272691092390807676378409860857756556451783608132909226595631281011397638239759157145853600317379599929144723738290599870210211815799299179100879777725888616496465046585889586631655182177388320321308638416527717389090983942220653930790982057830151074125965979180095921088844490952187556938744329535098268070126086769567617138481712277977648960940458477549360631304873287994320843922968266592720144528088513326227325849629178046883225039794979303819825290017319995463674837601185172015704105583560561126771693096933786439523602522176823293352446315440371396649347484107694468429397705744966086839770343121997550991871243041279786801232540379528975945069430589777976343198529532350093979541893153179031532424198046888773411703578202443565893893829156291762080241257921376407530753715040583744591161166354422324763185734122674858382914976865927582426328765477406074540988230360836217358743615201893506340397873323620819894015206115487918676368119470480506568528129974038632527327784208359975908879497386838279502105764779296010543866096864972090772726920982878393980989710318913824902140655044956801976765873567827669330395003127891708894926592981423122882418320825577986636822306261616413618983775420076373813696854954880698968191795801316117370573435194795511982819640801978960136369649351843667472003839621750262942616480225458597419785424735685077708732316208087511552119976331572326393674563821568310022696386366413955841630002875500651139966145192494605545174741003366670410690633930633402603122797404239156562650804990961897296075280526031403368912580405586537790912977619879082238037629051584589116444980983560055751553990048022424269198577462747943391584505042977680456139674702075834297439885487627680814681396312059348108224360767345206704288085309258421178465267948365611259759504574865360365427257532621702628399546887935389726430628644036364131373569615675116151739806737473555591347039575703536519282782752768868219061391957103114233574996147871340437976495649690255373202798627433257721526916237415033139114680863945554878955205646361565933769845924532752788056344560352176498600867021828915800225867385859625183145700281225207830037981727458221155004977624793610830093814324304136210647455537636259305971488677321795299334253273943314679885334607361142422487039382785621551528402132283231964525570132474528031790146426889700063426954413548438109915044138414425311032096145778590030577817588905055378873501149768133069794964556465109708631592577602829032489292313517935014828218523618655479116189374920134080127055379670186728803798574265467508043658466447632753672934916486334443164897699363622054058535344412549759739521952133107715821892300525483515362861886830452772852979403698642391615198876652840720061262758648646432756930338106552846993457356422100485598003162958440087902799014228053237304026776455908029222608806153044210400237828176665961073426710799133555410584029233018182936082797419354983391048442550852115069179061001485614806090864235435852238205451939724674742942017976594489670418996746540015786583626576667965214146011039517563287025439734854815542848913046853807069467884707963750759477801479767776902872758696090625557108412060627587498055324580348340128625757902671269466068777655028220661281318489445676410583433385697537300719153217369561922990250046633869334288100810459341993193994343876848273958786576252535147693878396541684060275153960206384565857151001068241611128380283404926790758124523562825452957416529319073535417252821646427713611904933551449067529703294756356385997501254158070829911226897461366418865812795848278709044259882016210646191920443532902386840777388612974626792986750134613043609098757464718083263528288227996685111739781914435495446599049901565348319118917758480002693010721537989218350554210715695076723490618883882731515580970419796530476835875092353554054227892589801291369330405714718963649474721463721784918012305843781040009377044326934920430000217930573811546443695454188714570286184402785946312305837566659223838427580283681645868125206868537168700850585544987887828526526427355526364197852503884190500957940200437994866623047241480693029767952002616834259173356440237792659968493159652391018083877442859049496437897169716366861979939078176351929068217855140494898828556107522787870596681278401175734473834315402694777008576721172398099079341253768630627043911483651210799157547630686030603690824678645442854144775739562472018477442324163720047063004238069467364931287136343485891971458585862841247740978293204855638440886750201261843632510360734676445345214972396571625729592061011583419150055882640489511646342519187759924385817665474303938363341676931906628492267590747812234913664247356431552833034261754884277108322843878296071397956049954363985078315677878616382865636327268964059321716445755570009423931932585921647410697739929116428203043997818491588663829415637320434407281946155141716993542875153930891964421324867573042389247662204726184483042880492879793723587559526162494728562225380117512811291544982687603340506575008607607302112997643156609841204985489112248742140363681290139337302041818202073433695763094062507635272735107745562036288229615042617939052822367011859083708279926707152524233706865869617427005604639306997656336434862062622505036925638512517459529358261247752242184078141570824047314821833351406274942830442651697591107635528921945365287922220147057303138328811754249701569966355611328723568802098859869868811579186105655815061446201184377925532444755730058927134848662779357175076303363008147109144384291707170969738763860996744285178390511237968638021633869779667308842191151969407654809590033619872014350168896250503595955586024534506706842630296138121525426574210137347737319935141455607758192944667357881592564128168558251839584779125930173510290576788597413930325338536442915557298797721180162540509698828748651838149082730283238301616357742146822185129112025685343717864866894040682023729891192984328455529988677571430990505451671688528211181210083078025336587808099803491162404830217814952765326236138192514242241611897780374570227196007240341292267749317350226213816025111972775797620134510654869316542724001710727980123802583222616922717829337684034521868895646205825311421790543750609110787224039305015783883241635336766579158043322653410753564219605097698348193803917377598187800329586555132045849911537640436158827514496777222652252653760607497742109856772470681554785419088535750823693690666634374996413347712052315384573978782128019070468782773636307989553121787064032100721159491241802849444333834407505516244070105462823143486656503747776391168675783383770155030089829329574991927106605899883153290335126440757118509200137297254157618017766447974575457012429657189336571437217036360846224538994614560273407222832162702150653588357917132334834532379745623952864124877247988863448234555692632776658727996627814170729787090149229425758740171937880854685628898046581965694801768851915417329479969784777164810807878895105173419749098655594491635902979762185505367688804888266883742578788439791665299270820396187672089942591851136879551279393722297619941583959996657782583717661426710917679059455835587365694874602486743461233624385447885570283210892887685555905925946953743735135976745763551338423214021220985098354479403248981700899345614116046754554212351003876314498065725014233400927116916697152025829127300288731693902127444264606509064163022954307051406460273791741135627392631687721599330579328103090272728598062470765526312927873061657633177944324867698163022178209549647199672357993735369416253135336591133448273758000532428064092125644635595194803122816643705237700745932178691647875144599581652815105893182662570156966220594817226883900137512506268563596091403073295450316388540365744518794049800009464051758852927642289746006975832788139764383925601525567501929931149400030174496096977990825515672598283392867393508691950619222422080488903120103922331465848734954949424500356599115362726871991136649651815038472660242453840849963243349007433080392719882523463465465072275189195144362044513289199741584822860104195922452126685416125333539451110982833063393990893228998753726976631491199521860024197492080408509528172648120425428021346833882888446349608331485372125683859652380166979942593624312307693263322895844051447899911752787899522702674152087885862469971924236865676352418037711007743621811152750586798265838589018209397869368117531329790507208974625652962807201146770369488161319223956998035901922861465618819954079825859128012725476789143947500486683719417948532707244042083450598204422018356048406389622858656659008603128525327301422954089756383263554091408532763288724965570693190737420931840689093799386643890811972620071025496787795628859542516485973830338855706587571575662101947517242752950154694971299509498692135286388622621021177589251164260168655225588998025112654483273071722474173355540439490458696957021228484963489448737770339100172103037764966897037199846362490338321943022712197988590430724064604464582086533498228242929428695740282035877179840457912040895610122620377696647032174502071951737507207755953662473969748141359322116657208209737491137293449029822359113987090831229613483446234279417974474104720012168156073317345694629137703039412752736674481285410461966987854899907894491103464165283363593156548733206619523493440727861451758386011547271936775593960506502945538324599954496126215997074402600048773128768566013469266885785055251935071279421738839589483446995533965253823930085387437700639562651671795074726750198467498721362500922817976648628625730292695885083914480969347827822862814469278042464404979049491254276855064256851313867737118038503922675996042871736665856922769431579584532605831587929364086082158519032022860636871871823949205728032278333042675520423144233190148265088422056107482760771407947694613346478239150533896225453017916602021163347663982196148364631632404976490847513933314481298393003224431054296208598631307134294742064871074223184464265282747838625812114272634699031242551498721872895486106854349458015982856306201282118835654339774101014938414609992476327889528960453174491263833171001361424112115232477337333692297757278034155351964747965614493142247423283180803600373504671111196327736311158315575213181588487949605030501495295114160920239482208571442421014749043803804939871871099871901846001766238602033890379137546581144147418744044321329848307896754105275573078272675171268380705555885813274010288041305618431092181463323259799779963138820133120204142017387798971078693760998223244022902312842185090734128300840549605140161686185133745697198214337988964519920827503640249573760722671522550705949274547951248543101695205037739710962133383906502862927191380960323399717119590744120806909617571454428301391701444959775257603129445499001901824669378322538502667782695163339508918734691629993037719977566172088267586722793918759204751500109633484220240869646800980504105426228233501478432577834275859041748170190512659049998375784680491928495147230879462122573601199622405351496340216552064354011513338741329963550118378407176427838303831388645823425127820871933819999948472851413475880220330244492627900348090711673963009892505636790711374436494897716491004631615627442126116509070323885397202084945780393635842629714804105009161821590146146568611816523052246154852446563758952782302472812433071477564121168244666708400264125307891369832444922916248493495098381240068889961557300885761732139179141916794011407986479993327868160501722018419468958330657465670857194365795044478625175266852749695182758244186834294782616912033524227590476424720966547476214675299400356844488248530753157535540521022712337922748716505295189127604156538861151884978661505089095524735115346134194838009987024965579690879012835591142119074014019017597126810703303799576594406368381649380211752419173282111663220909451149683332398362773647005303849231788112436869768267705140875154375912281907781573688633553644747150822875023599427193072528318513208727733521380174099214353618678535869090148551076048879162761571400513991087882881541505337855919454764167511212570224016520663548452314844865328642919274592168464573938377583777942321560774260920904715655200937881257529950874583673209746557365525439837817434768320463840800199812536856142343978637051546107223862946957267908195119497609106899594460288445249878985140270899561486839077586715207322254861550461543568815785497298294693946257477807646572844774156857282857789626529561309168509181407769507559311082031768134093351955081091357233614100264983697741609712738069208777044398208342291436771214661478805945093331470184539563907761833066143537839633454482257619193093048330979791607329850093667262328051922076234791093747167006935081570941858602718591848044006839100400620107230102399218612237882001710240486540404877694894590866364787028424243792094692516065562449155755151708503298535316356610115286581803831686306083275620898300020520104204571080012137554727071728673673516930911535766205571413482603461124432640150750911932967036518651516071972994613817634721865607076985818885716804042064226837991456026121616501666735654972395174450695741119763453016025395832682729246029825687140624384929260667120055543055820581207747943300043452883693315901060722132832204541010293827766125039434940679298247405736090979480483429721503918169283255514237649629543767385630861807420097242675544430836722201901633156026075496671608630660259333516514916664398260761498759328944143961083847420400657103343947642504872622784112126929977494323620231143588517329444940704375136834939641066180679717869638974079731777844134866570157110560253518823284478418618355668292666900101393797412207079218181203187821231284204149606628809551122557050708887600106750995915863339400688447355382499103659601799783305577273686947163084822601953310318750681249578851960976883307856453561861103645789954305555502613331314660040413107705869935259044423993329092135614194258355337189044968897967520469587171227505261763488109954089246714874432064050879941230693880396271832010510355586921878842426652634348214758514144366255026610023347964948323597493785637048679554885778787415721494966137735032867804479308883148589073257682757341785996375199265315580197755542743566655609651836678538749353176997523668587055579970328542182914262250621905114310537372779605140356840764370022508723462457538551475848615387849167574727194730953186421263252941166300899339808769692433669500978062287009473240554391909022068041350222226461835544209892506310322573204637296157484605823842374631508681290326408067429191427455377244440327116638917412481298321047001478310711909523156458007287375198498332952151711138617141033014842925161988988297330733455422401382766135908248743935086336633453669883758736856813923878854377111752164088901244243227762252749853573060766222790128464675608320223026432206873104334931092153556212348584657348167948624679582528663503332497497003797895804494985386666003237879147422799549983568168670778223465123643683517441777456940148542956416956242776819708122400484169116242402605902782119781010392343451870738260570955343636458969889791403141611504001232275716195682367876432317792365563110470626963013866179294728919758694663914168839573622874226656702806738562233759070116135404875632405219258883792511557647730982576427491733162662750769872479184217056202446771220258534278263263935706178914982887843535413010013994123103927141067129901585963800325564014262488938587320537333498287391730897234996751423131227299503160226663139803207231106084122147124806014722110797502953635111992075694889599758405713985808246599297465131974943226704458887443253177356629523623732510511482132867612265953663479672532023412458361482050356888592399287459030994760729332475938746476560888288632028280807236085306548277191137412189124653074642261777688178012584877791884754456701745764109153562774965526473651738978497995246006889086710216618932393573076914289027036722063293904030921299411265443995194084087097842768419182479338888517833016231253748932642665828294010323448159651098345408474271668277167267099230308940344788232525112592973010240196832619700818888378876511501029757146043469125651408272874370243802453948837661408083224421866216832912419951179082169358645260746865049148824303872590696133611066674714163185753999855244666063983528590683936951811000698784035414206590741798357368847916621109263494536921415687575274321653104782484328438650960708837916634581156518528115070053468383387651553488152834996359900060235864384862494937367602814577118306260417371637612501559967727490028900354512631920890108175489344416529638117939797120385793502496562753413145248620284601752747908071056468701124188939762187005061843942007031857287157991356410690135446815060997526485878016928974967156331809989743186482539560778772623981965904587296547105668040752302496815367230152826930719221462453386045695622272888725884567249442265222118515097086619659284558885257448029118525027851307403815950610046824267693395903758215313581693423213298221287415217724834718547512555352574461923535023368115961014421020974414445208775874655678642631495633300538000824272746159184341222091913556217112189096489818867224336239896264351077926136784321302405269931068070326077185977030235566706684223602783964698485381740663483647309941982495472674670161827890766084161312558684176585439056554138143997154724937398397074367100651370480836516676504342008224227603569208896353736440703449948870568186007492314703996329678164763336060855570757077981241371009631484101982508512966975354911368511914749262883526739565782867296630034788365342222807203591427439824604129908484659016851645155319082077179000793982454090371571805869255367387478086205912132632989935024369960196341447389939738006466190231228328287967945286031246162227677438056639994089873736317700280640803760672304542605786390708662894615694950845449495157680726132121677375738527798064756743456477027612636600055660202862048851850086991892232745989058869403307700932426932564130553297953352208411725913810939180010806333741593119694046649831353493723941886524017714055211424768327048987148269887034977463363894977539866981944344885221365598373841635426149347615509228693807309645239232443443512088616004200907089591249511488891483067517178399506475016975956443512198146168410700321446763827854231659280060460780366102691041131031747186986235726433276981456038561754921843323220168837819146754932902091334677013443915636064912669134067655714729467388272622155319914831071955034650916427129276671523243557467519406627761732287133776577176728198482289473274892525883082447808416020855450374301460434267192407713326961835264155556729700767154704294031067991158533687989636865369026742728737163917327405074673472113258091272918107511354418095975796138497882461780179495777954202921625666375004501288459724903402499068519224750637192130482296981079335829005053569989168690286202815738269909783007183632214961815467768532400864767864302744963337701499282505236345114539610934006591919713187656175569317245749800582265735336768286214655163938400314074973365543346689650169730175551439921535648849257158287351094319697924909803681233123170733727710736810387493208268534953965972315053562463739280066231849639600990713948412504935015733077409298767835495682686489680422938294739532173041120756670994238770748820606546379600626122212001703645061452644599747951273255255342140567289036330055238461354928038721686681562077050233068763939602783156123381399473310084536084666497820956432795956090971094534199413083931253103391129500366853162278268742330035036484505173359952688775467540492920345557161450854632415027162218763545258765759139635637840986489723688448416947242896955966312629002993034174940863776002976591533157421040937368735865334216577361616275206650053455035009788605963481832617893667461755301716108308390381763320759962528355203521634510761358014360957864698619950233881594186676566302542371751228967374152779025395633729056214632113255564137209812217657401050819116964526649908163313042194467227222310751793322977455131246583661920210749530852252800443773803463524387467103910036531612102978050264845091895034988590264260804018715692192282342667093589366039660470913061530965722883441118125291814959875924466613159197010624572502889149815986295718069271550387318249995579416325461176226515871002402040224908821170821725271620557488554250555722727594929412912352028393262896972350651975053506088295556828032230503958326824361518282491175934946892484522416597289463160464235869834196571602700472249873185351866640856463687997206100270587233308999927935624208937940702236975164220003929397489992101096091198782115384860552351411107285299338596260857456711411828815842728548463730748889187669919888740358194677765111563573146133872425431782241474910655442554774977761328027305643821977148115901967611010030146680351929607015349651086021000137539290665186345925382159470755307614194782140968286848527458502303324397160326846433087730650803771816857500673384170493079306560191837009561607456387267897889328882424820104841614208388262979130843440994006048740857515137828819022138399967148637451431722449572493831071209402673671592671307736536487647161345498363158183906509081460126286666313586391055805036936938633864325694632695216260020260417869233996195320348271722070256225183766503192148174759433029811294735349524456012410520176801892540476434323866850681770640626561822858035315269178557542742618152884267681674227163984972186522118403135602256205824627178104515316393358951364877877193837177731129331472826622584469346465823155159253229608717057899037581193573254387765116091163392530772475755774468821206178380641180950079125424566568659948996114674536703163271785577671185102425312941566272815927798910712336592628853503483334805661764680496005384284671515792992803733056710869943262784529683253974416703762852558369768556041215185157915595321972500861086710011849835159944562774632518384576951457473363911312029942251296481932050978301251174045222011613724594585780116627284141027150809769892276090302890553632939727992077888224680485796909311513592449082061631354865798567181584377102873292651911868289997640387321141822424913575858835209564771507686356316379492246774779559029188292319042525095431379611749843935338189908569253093050065467150237664589825820473007707606754941174904548833091641810619875198871178046450990458880641365444125156137019398317064297570800564224408381859058366196216319094430913674389854717843474231004434468476656414747817007445260077146529460322769110468607043649513187827275065990259718122268258442674228944113691220091617662628478438818707593757463451299013866591708694895523344607927441492512378287705276377154378248436385212125896209173609803165081301622146387224794222887404799269221994933522771213292405660389212619605797926083989132123169784502055070527220550389626575452384747364257371346945029257046377035386384417392846511860906706451866064283035138076669431992539839900245102451619636274393259743417056597860481032476876100969394711716255734660929397207766067848072622045391760565248060622667850289860485672558591719043676177466230757962402804955901875440311334151262063944801951193711516159378783869614231691663702176778013191041192194062238903122163475151587303290945160103912604161703707031544256568410133963078847890626581548991794484473610191038557159714836556597133654231199745900146412074906157769838308649166212730383200287229312847834952764254436735781479168431797140765033464926565074466419678556771181552032015415111337206832398716235040114918519816705589385016918596101793937423787347136248524403019880762004036733113919076210256740333003895048745938492879288083877775398277106962373782496845174213691002704654103987562210593609960448947113360188270002836616526529350829352985678632714279008051186932517836203113380046137665119442911778372622367931916371033199603738219914223719347833405410750423932507042434856032899307546947856799157709806554447619065602388250050739114636059529035915613722358286192778506381641416779653612796309958306129617651266348335043253298239529826848331204334545739322326467053454772888936912979491765080769595923720198388974398771721704286504444705107729852580165993910467241444233963153583339357647178508502938146642466283265655972663249810862590765860190169713861419654735308595301888303829830280300722891562704066654823902703393379270657463089369281191665943447632592841128673659991124253379815604006364883515781531807773388420918906058898387548894901184641571838851258239916579869793381121625093653943590070268668006497788327364721207950564081918330502014889599420839742733192843794815393742956959616624292942074479421141399644772595551923458460811689575079539165167026893106249179714342968722798554925329862361299955469766085774929357581194939450155874708179324253911112444412284460967289623788745779904681077524065805264934287323173368031219149981267452446155800587455097847097431214436107154047105440336596986881912414824661688265067275041820007869602880338190741415637288754622916705441237294271399229125334502547617488333812660786616710354838364935829051895365142332694898764482955782315150077306142966944471435663785156597594229924399155317227141929393492191915271184091489857088355761045651275910204724275075471606881580422022013188164349967896904341761659755277643939022621097287617620491695484195480624460614659559325538517965503086696156723213213482173816718951904303206788132084558872979740408467662699864080814277598929562203103980935053564016321047371814214554164589167950283579649503103500144781357802107635549376121576901304852862533298169418847693994459513729184380200197974015191732742664502608537970643691740366327933296627586077260556048814365487892018988423274869188276808708504332343610344241414712367016597469385538481517406822424981557713351498994164407928948111554663207789170221458632074030974140668733019103642064865633915379206717680290727420042169599199966823853721993977522370146042934544572140752453737783823498727545463437292958227195954433438660371179475115420249625930366820925058757323894336221987110106202506802162349040299721180591968148041357141779733541273651849801432855207583128473937033729301072184318959281500061592180928754078349377749832920351922542902738984691157961970524277043189380585235931178264885905515801494686402332523469257801938097186793638870992365859762247473776294708448708990971027048053603032293384664160225663693606486801571241130436969059736529688992651848343050913129387764471304308345396783975018866169703979942724977401720054292735170699402989961739059462645909726297596705251761949266356361481476025208231915452802558772783886140724456673310522866430037495159939262973695347245660099893630718146254375475765182259979079430099765134039317088742327421647440496391696467630009309007376035550197953618397738622563671356753161625879775954673570820087302016350376348618161563843744250171199280195471083328163780857171041082855067685476570362587422807695220764418793310462174625710817385638213684726563774110442598035374336067956218059988542369420556464535500118052619442058324725868444176277778981698732600466323097572208989665821438085199329809624982225440293938121075422268480002768896942570573449984346111957050405908608739084055855800510759614132272378813091610464967771494031444078148249348614974129174132642017588610323557300303389398615529060240109894136419632261105467249626005836548928826912226907579874052663754351652552444271411798464326789056537986792981460738813221287329285820014491533706772766583502867369083363359872891447483781598528756725545823640277874167483286704334562669687363563465015335301456725364216587808379802612198330487466761278915240348539366075623515107949355963990301049726492297019330458470050267277765639417235549231232406748022322983042290294317603961136959997598226721389619604357805910194348189595605945119158888410787393404091722053830860405248252288200324781780169951178500893506179322719581128710984881689486655218803183828008525607191585716457064583448809220961029285203982957858453679146506683607905551469970994000188635965927913522160323927374281194178058158105918188765100425145956386489334523102768583268953791756824964569060395151323210930505888552474497234686735435674819440335769519919001373209596150464173289382311080230442120023157605397960488835233862363398575054952739019248351191933796982086382077382957104993158433161854335995599260546680400888789105448243323876600209528286207600749185947731785648501579449036619331347592435251534411604743788312414719733069846626938145304624162795507924333489370603635152646260011846232578539098590864953137535866081124477917213621445506789943458360484912393963931232494926350363367775672334003938779574385280875176806173896830921823404398580622540106508001656450830991764632926857451229508900980199142872150622845662911676251901433598384889394862073391543554470602830236497185240449419988323771666957034733980567378363832972134005764384373081063733960708507490678612225230706557346172406797752299759789513065077940320271623551253566659330453539208465713520220491163656155759086604177968217439753368543468711733048205458875889391199761380042827650714571322546632578541640670065969364534836679698105758447878747637587152753331270241829848240573139214626619459426033862182032385077269759813599560438719548799470691762142013540127873460469971678487739911953196915342956961182224736052925332361263024341455252941239099078493220713562132837179080279918688350052660778936307818692449654355121577376448637092275632261958147670587009095032781400340376663072075775605767049009407706708851355047866587373656435387148219385540531415139063150627646629498017793321406336596881093392667707081059746161780440067913374035987122171167878929905526548114562765990755455102444690908446483392679733117343039431281400525002576298662994992949448591174014551874666580270333831143993636216926197566770279006978758288679593972641502587493060732344439932472910431256908796092170135935258920001976119128136365938434760576986637763631901800799531558842936615531294754458198242479619273138852542119516571995038617996266734387524948951192077092658277893396809304275566460813041498012200340532417183290515168278515830766015893170235189392497341358489206042514732464142768825270569933953913454451657229935696843615488885345642672155460219708022278950862881227097603080169672284945631159158738405055928490375119817469696737428427802956455507729684519831534020054183741346474799864644262007178070942687168527112204674589037728861134549502542563728011916664114019942612598664200219986376261224623025169167784200833079147291276223595531494598736084570323757237595019929837274069817774972000465221076867683977224029312959490000723884284375001378758919187788578798213810882838464199898857708058371449113212926388315157023665045521040005323287414122930655540187448204078681061812047478442564848109450813561524937139831010841301913440130696421457221934115214881366237072322995787212560047873150353891315168573948418441370295962377100651516656765019464823701829550136824946869250623046249967689122675852710664381950354245482911659955639286836463560621524008919523019837407602769943319020982280365269485652306131370984620111359467543348155351277746753860953282685590346329922264389227139756565764365489047701459801305428271347062415205123762014958176653101744175798737571736660022029398865401090004865235690600241750518536894987993217574603796574566703796659035173956123493254069235002887994104192440295528116808721173043306594717020504729845719603768756399965270515373050845296433013898210668331295231630266422608204615796019232890678636768019817831746040296161511959500219275408845981567685766442936148385388507747061403021932719073333296772622283115248814379006966837713750605350402743587775766575503359262441061217809649255581623913059526014601594442004861182982978655152510920152331924194116152881060805548902610137024121391919633473392534483834503786298199540072968062204770921059130825947228261832997930562023288020509288530725471754750036583673624129173549578331294241427090463139156137229115403525882437590002309451142786906049974631533512031966989078732836582044423891238254539802669253430105266765967490484914264325492904000941437939347841333121195752763196216500367883789996379377506802814745429692473222317486486531052512812262498362609967310196865285039784383983514049354323065136596839638049841670092857945003229241194810793113306827987717907421309662041734101958648086556372755580149357178263882302333144584726734036787818814650475299153503759748224808838951281013819703349185234891081811146172146789867837572382417622184587950299823115506043624742824318157209559006829797711516779808546348353663488000892864421834989006182002528291437395964389229902017086886509140625835180436287370211846459497673348972036530242755602967517552178401181532328890304120465667859473335634848000480463195751519458599249014537336967165333498282950411390219829442634561833167599278193184582627010009160847791144090966810064160930348595266912341117267679593555777728738398913889360813071757931844522217227037610083017937721087119684870231253974993342431425009889690995544052068852640834351575349967719450313668606195904674501577488548748328136902961359930064605283657196477104623888269815448742310109272527506687265781804194728355948323749290433419151579365512274030314286442528172212430019933799270965016563021539967046805742551082230182716475678396354127418107868628716899732189271810258284596796511631294938463027835075757168557311422651888977133505271386908114100041801283988562911239942060816179285184981413716125344632269552633817971712373581635571678042034225454016612070206718405675506577107349164152160980286666664307793632485623159082838581627610844494611836398018127312895530226464149295423129723955116932199401272119701515948923172636314292668279114796295896809132215019721564260540545987170492575742006547884960573168735248746194684001556240898297549847171997760894426998775742832779059343856818385510625736020261385864063146481976660913472124136627079889518473144775851073200472408439138194272761078838097771274139924311637086278142187639018335753705045271410062518721551815874606036449612866883379387200295406546440140524129823204297762527668363829148179935709368718366388590206197983333563594922400669312700130602828693249041897527106218152098963377896191592643344201984811664420889484930651967823247549579091121903099194683973773485998874730453191477205870392957518473632252697012358356879589861331049413761687225351704003130251249098508659621209548183494788527862004014025914718010206114960132437658942255760531323692140167958976828423863912717957131498517900782962153537233065751405893808969718874792294989779490426244489607570873889963185430099856930122617812829529676484900802294093529223119895588938198995468959069464120846904323640983011384389291116863845654116971247292210969543515435154933504339024377985609791229117873486588568460244854613421771900091901691733408756739661625708660881450320534257162287786193770241008741035369323469915995765446368923672881430711833610340678410811704095362533700784761732949924931954729904576230582635171917297140701385889474868103187336000299167905677063839740204965524258285137850182859952628021979976045552205972589129056074456028103855301152548313553717215595955664440924962805040131688909672611503998028946715488776335419470080309101012828911858908649959710075949220093638697026754327731112573172765261894679094411076848255518515619933167275502218690138834512047328069899599219858528884875984001788985473016869543941072695049432917942589948455907017360284227969643227942867796924190507247438523070492921434036866074155018477284838035021086948749843995878436354753874772247965704095915611039455081177184971614916150517367023529783892175978961202180922470532150000928126243320643244619252396044774824072260249076023504797035558351284481871073922042166590942146923188336480480471347957040895593244897749521506147243612776485054811008210807137137212488364222681655740232787849164019761457804352439421498391958735012884651985405302169999076633602108989067042775640937396670890105397627262497537095475160822831537116208082997145783276211300192013593125110572699170523692040376103655954889181620758919278893641747353083324389424514670057073628975252573349273112872726975742141134595826763418283725192518454733143039854891835678062275570498264278554259530553803052640720474326734439853042183343845435577606805165473409288718465367305618246042421468105228412098446787025008359844537229528069035045320825041377320557045075570424737361305316397487496062093431171962313842401023572354362217659001501853778270506631476463468584222145265580570780559266818349204790435469514348624470813370070830838584731132927590680365761307039372791981507082509726302403570933587951853701940991570513084318029727250005452725810003756624344985947843265285825630900365305301038655108878175707316409184364188340042443793103370603938552095902600493799718069687229808596886593598457627472011316643913307605226150624178684993100086478471881188993958467741480224273113248563270553664424108763083567190270789100645434246996053277999673136116336283383695198952588857347830437664771284663767666198195027649814072235577126264783441803753233660777066649959135966891534843034785982352119023617381258241965510453266361477858642889339757542096987005670731454013575100515905042149610725581688947769025855684150695893415113463953880669508650770453149960283329828419629611234550468560023504264890094794214714851761344357530407486327126327977520967499223651011348394855701824459931963392201921743926449280890792478115757874617796796080919631260588059577152039399302986394986098289888888008270802490821663460153106039499043644811085577852959108842649161196939600100959109272607131955027660238457661759303748677579499439700487033423680720119783235488729758802108955397158457195428443982344632277640226891403963950589287170731404403977344343492235752765221541516463955011327135833947480363583886278499117313839120712055672497297995371139050579962768463615845125897411828894502265093289452464707846810324859070365231734161393429386731985615007693588002046393559721913231770484312132321577598789486957662584856069208258485980691918316458199641637656313630098953418213908286705851146494166282326241985481446227372809027510892679382889107565852066313761979219515814329622813991891693557833411233758254045211167615741635696926053445419353222074153321162898296969123516669535743163994877360167400018338661329860688763820809250803064572006730995171251954310721457948695617466147964126562092717412857223786487657598469876633853746596952710137569318666690124560395278203242875326566290886860275992230156637906343034853851830572138705389854879846856963743767029300640516651171433747819519914005866791457896867610165527267124857445581596950882396254126022610678132651886050883334503098760174997231087256014660844348271640296392861987428391477306980679642752724756791530170136456005186339830646987954837002389943737333134235455865451131988181420737242901078638256153281994519791801989577230891997757158063959481453658346676177068394886458409894855090634162157905846144020388551218773339601148054399495381428960416795071467703883093612185418988928094231465594124276484924371990042706136955741363382470610718022970692964672330493729808379762509968797022350169821865493373194193579119694428975460339497369038917577358919002659416773077847191893900917371557550361879068991555271854315121183372114932361246984707523352480922318411608205381744111663534560957027137047525259498771014364554512553826331611576095350838505722771225366352979014070047519169052647806779047197390630361766238728899983836981399837193696228711837084745300488251579086360355963038413858753619455115190661959122179207823242643222766705912657033894694316412614262736945656387742183989351478908353295298182223349191408645635924356580301035912449939228258182138542965630986851302100665855428251160948751602314494332843873040673596691460652321476532177218432511902176569879493705214407967174792534863842377300670626422780643492863179087770481626032367735161966809896269959168449845945736773078727268643960856900719844336347363202739175792811267740577110862535168131825421167844389381161176047108310962592530957551943791769207028398093001216437622356310338998450364373493348641076611457372319136144165019893370904778702279820322635883793276865747607616229126868338876555960587701006404947529851866830198902454719016761294819835585063698544359560270819529640200886151599253211789755102314724836973953197517126596718567259708459044142869943831708230918371886206556454387376449202068257232736038756182969635511466205813391884994444247791451771047060569819272718906078482928290049172709732221912373615031883380277585296678003240056534684255980366590469300462384291515923553887414667675584214408202474133598431029414196476404258130998943770328060309089362398323791721003224559598437977907823944225397693814036884371279786715366682978784670590811595531964043823282698439066228263272751056148759138614886476050240638893308844010395979994220847982915361672319855245973373300230492441202625498528343058045338094507533396579680501249694937495931116357986320014364962510276782120808435350112973629792493724667699979392472808961542982642859891434839461739864947115864479448087889420858548175013081699126882468436935675938291676856842736861319519181219937536668103446350482451479284587942741067954618547761478346830438940169375622620377927709758575398250387836566435430718688552528750038123307656700909293692089742865933897062779110643979968480600876188216815968104454998963655214345058877773913919327820189085622733049247030218468352063998821593626229569066648921607687139073052799993735517886491422853469318829871346302555035121585916983818577188817312848261465946819877544916902796743198994331804692937547558418406494294929925302797026078146300519215544088365687538579571331353646161152601042386856479120145907807499316744962167390670447061066019473037202018724891361035820586565608110358068662597091694966936976043518424490340257031201393415533847303178837805394668466605309749646539423131158464214985864950913075141388015821343813256638975208404927822802942533189789539061583423168145567549054859747712591269098284326185751823596340132408880259390173164777903756780333227132684373605407384887264995712817983571643165129701101289614413804469642554741047891656329409996338084117946238832073452114836077542073960840201550156973214814562307991052381747377782085188505715595922022295811118838844813962758718900651896743225694128659177594426863732875457987474227603473437524223442047471300795397192509927290165011862166929089969154925217427335917602877553815808545569025697676175088051469964538366262619197533389792702656872532690468006015886279252274180502521292562390086220363264403465161762749704425532732613329260179007563188707596035454435671983609744924268518159302124871159194332668112523133147576627064221729569894595263430265807230429051089014294538343352608382958241326551682521029038387696432313889177550100343504847783870552364888146766103274090893218650522108239695573125159673523447403751742998160935429631829328426122751682471480933591289919541665381936276515117815360045007705496682433088127316789032899968665042146891682814865442240261753141160203991024803691318300608997210970100450392352868360607358553953241563686118347038673175098397281303288557468633693966972677830704587268872270505594052724728666859738499388549625871709143484829254970817442130502901129421285118405243804571734622782780493305176780618034054913533341737898305191958645459497869557551083662027174655312924346985611277252404339516328684635250491982227655235077928613475461989548932976673420294815001804456020978951237138529418157133718980199707019051271818440328550177204608326710857083767403003868577364808710415559224006601315130385006937101670580516092560746885701801583308988205354290173733078708747827646732035941317062513645443759858462021869296534415108023775725860311312446642815020583829108900096402943351413559921504311445697591789584896357401581535185151400641480689867349513149028205430514225648687757040119821239685427656335939162802249348143783812323777408737274083148280458203700773684612017238702375030285095898094894954767378852232034104127584261911057993418971428196908588260679083758501443950248330801653106759268057635442474241159549549087161657242740249230609655664641072996142086822821403496450506131399825306099476129594266492383979444742969383494959597718103442797255172070853020782414161092434672987443222573005526096659384916146312177858299906547120627138597336539321193761224158681270737015081274067921717152809166052575056683284522714099484282321256741813916180766172642146653362241719863899926288528830673103952269680633101479261859441994245006121276555048237432226322330862455159243194074393242265744074192797805222676631294169584000079627753580632167239618915684282961651491762243204133838667237358370862156419520284148207646199877491699869251040940846299335449544171310699858095394236280370091175913220625711729243978775402609372518566551028075095524769441865517878939787998348548604420945773995999700438988902134599595034133988190024433225329347167641739866325740112488854728745521003058034833097739423712992392154793187381167555865395994370551725214439750579131218741816670836947685595253860455929524655741410886450270394004473308486974297381382800195412198395085918783336993967163474463350764362205326263406193889141783122060973055703717719702915114764449224278444952807582054051307295711487608475365584962399153629083059689878877439061105361843680721174178523202241770714617087585095528449722549287597153169917944345715923139588221486742715168315992348617701522072543919815416588921555291608050526853295991718439046410859769912489271494343909136381965691292239751482568123247799939167261836455438468082137903585619562303284960972254516648251431877787852288422390760014109052741679976518620990196745954789447668612032798700493508245481337511938432415683011747155403646432923257089952166409327318419197899494250264823039553374385848860238385701304729374318983561700419643565359562221121232085803037206935046679125176743346389936586847163469219403369976573835467962135153413116912684856338001649342318016865992593318774300730223956961167237197954200292041357548209817217978508005056028452150507241513819781855961584735845052288761535396637417496908982278897891896930480215022777439495351577711129639053772169121530604284473713315304665230852238103733171797012949748273101339669053686606905049856961315344057292375915639706088583779734201538262221739533308276045047129387991458536139564498703773120380731701870557815487765956923321327411959481447600935001814500217278053069399442576582979901085803811126809596765389205808331057829146006047219849367523988791044521168043526283999920312204359224164467216891926809866049935729941574864839502468450405253276437020834227092136168047313763593476130403610996629117198977909706372257952969540149581046049223478301396473437972787082403355953120339406266490786328321438457825220352075944427817192209702280395283231921928971963881745896300492874996077695006565465487713153301115047852340098466057244636147423543200958592624975175589831617355889696480334282743683753755822673754095433335881698610677014110426022932843174838128079683945614830293209589422880429127484447590121186263811780903462538526291467046645058746022901759098955866444050441209968927833443062147636126681011369011548595378346771148967224900262479979904496340159624446555101993132726153648978201256846304964232018923908657133572383794484170234097785940920825843317422337718635649308402315584749651980193893828466201189046152128908626651405102542696411672163329930376737198993703709928727647888298268593604515543667265628764366321479230011298836151138085898623009380607107745042088812533678972403662399496155062128316634806763936138174701715227946838546200790283028518096445761193220396408133361891875391929923501156710510454163637744623524147652597781831081629649421653693414832526924061251194719923208692992419755341433392115586916013040571285609148094128165329496369782746850578214268977833199221909213446885094621361528454759838440945761721711869025125486833556913466284390712145044413653156319479959440285316112662871241584192877655525430787486164184715729800774278710979188733358341030077208173253386466003706931644695922504375168194703608901968148301783109134312160068873420392783997249981855035711250803996161707084009937314734963973953303693358462072299030683937099480310554069258313499680093261306397148892733871231553577366871564332965368425430745892430309124362139922699165328653881998559528869637357339715400874554630376453223016264340664145372639748708765025541286813820592722902711528005762857650466864307806780919153015392366547138231780606613156588171678464152608924821055842541788706576142496817302517061581359126846808792990631616149450134547351640999176570723652798749303946895323038232918120472864837461315639443267758265634929139916731087706557588110367654699742270617917907885911682520966312026939256877985419963490538967032776763825051691436457741901351499532339264372407972663882642993508462707507068395029610444876948595353327651381275682526931389486497577188170353651212485952848904843547163994660767814255849680132823074453929490026716679728153825278808817212191198828215089347359137066413694095045298234256939739626155229253682785904517894057029062440608702906635053645172340557646559664275477168111631585422070723151322556128869727043328154872709177151423709343161788921005675571278257779420502585325172975096816208283360093509192974102676141996938153374569454001039815702379775511225653751498890715555516015158757564537178338134803338094067865554078943039540908044799856178627628366015447061778669323528554785235766079644789900026526986825852076839588818034837293830274161309899692877279255238244987287905877209518810008319628248705197838993418790525149965799845907084985220305932883097490707183491547568503971499069251302620123210912165601733337572228859672067732552759013702700732227055144056644231260045622773817861798049501307242849956644697461738997593584459467636049097386892090197030864317208232107131979257851359126167496004804972980883995707258707866749912111859377245824534030989458349664289534202294190099492880349662482802046457681937236639106079380939998841418886812380779612631964677962684120145711265109331701513009217028134324719353501397966712657411410736751965029671122853870972258585039418552816471665362264738209855045764660570221616931247366484380997775023813019078996275314972897759457795123169795445174166694115902965944737868547746437666513105297414906156061804973766242422497279465916369892997209653364849745171315712447685843976890192419872889923655727104441584657966342583473046329567449399693700842053063553329214209913485968311357361118915038049463607286750420204694507660489758373684813322939029940522850908889567222598347140953217367185083490168843125430694458231938828970674193132808253977456996331898091747863767501026139885020844891250269068638105474358402474903680277716909389847816035533415957719223179359617891490825906606227671876967469648575373089819002318590880676379670098053520599688151426067507849115096203022376408132835562937693344584998385951017626708236117482903145741136289207633770290827779943828940473730065374336170213192561693515035496913194352458628539600357911702744378713064729323469917993121745662673119047006430056940360576430155064157603021850759195620163522017598869621168181549533992579291273445891781675143134010028403600411768045815557256151875630619017764094244836260936599554922032875059801395344177447359514502764131796135151198366090462235363804073818404090759700832169682521989205984544003412621496815699112991790429615900363577188813132475676206232061231329309206888839472721918648635693393579420605491444358053018552884689659034533726134061728868685995219150391148574616500000554958854553801491490284405585728896770562499522297391742819794600268180943924020818655816787708057720768514585870294992091019424842712437410665718079539116040483347433422697994608789325288521613363774346495245851981704868868103510131211011869825692845353129729428050999553673534946351106755098707487774550957074590429865841902582980648855582902245162167455625342242318400414374648523342724458543323361512311079443413573727408332520814333396210633131929012117666614127637753716660173550615848021690349522479612518811937316715803838428018860493471391226684895642060109390286357554737700787285427100030156727054148543297935846587515284492149080453464085388603098552872714173805720181966850122991997146539495381664378157016591259565942765135984325192953900982866005358808031764313955587397342242334177303800121668942866036177075492055190433829814254181521428231348054341946786812411085933119884295308887755768726306313925925919448087500865136583830883621282308524931062131102910754116204759438603674691190161683975122725173924793076932571723740999522237914912248767737860215205207231110092093135784273658857132383526894899119500899494453819409677426877763780787790046616936711749218618907646123326308755298052192738926078774364319505248730052485807304933657221992583886772208185909184690269092947696335393927107008113516690491957707432997295190647299400602490529357144070836295178373907312990037370565802181856464552778211218860651291781950945223900357441536512802105628690652030385774421217596754458619946575954136097679765180564351706894444770491968167720979543543377166787117102864375638727647849463554628760509567461171524844944045895664957033819046734386330327086129261595912169886950349522640795018788508887240064065247688286196669158784493509192671936905555875191266100284610213243538805403928645933540502007957143511872777917829606017079211882242070102193319827027919578599676615476685638732044642993178988539447612443964440303519365179058785780627130580728582574491085212308255455102180217139479258483673126832968031293821687835910953133182419080373701583729833969458218323256571919479664318444930564612850392051973687719124111741482301075078288198355968443652750589780703291774197942389274934268042553852121152352292255049684054679753094734606993757122584843634304109082761547946633310059387646115631576109179249345745484759616778074919415368190981926141332604294409725170636488244499814585929338212558653202018693361711469993861502976152058298465505024379675666722908796277659877815429271223406829627274292600710021094009748532291107365288989455353262349877558665036202661933613677574805938642363498759454085461078095914204365232849632505585677343537039216853911559029383883532942615306116254155322466745232947602551496553522730036916998038597315217789966939079335601240208393851858134384093973001131140915181202890303246884522528206402509910568203649524367173288516885109479427385853746577529836127650229215033398286498968651495548579897960396583126837923065787083423369855187817552767619595659267593419068346548520104005680187503790114428230886571442810768945993453183615256543829962245549422474661161246485781810247472447128369910006606210581341834742977769301349092765880579559402374354767831118255719873018177368608977544909846144460392089413011450866878508782760340873558158156121273932577739648538811748506989488207053865413917625800803091287529249695108217070868327098995491506885846046616542851493137242224685644561397055035991996765083686080612729035593512340472399194265397121083110347385903186447104618359316040404976152492391356145796882078837083274373711292701321366041373947467021417482813704884329194909548636507845052247306377013190059544327280331792433170887511240640039673883607580630175123076942100348743136333293318497387775494057054667190362152362082386408528635369667291477196247052208722673086402140690366614516297359314247253829148682193486632043122754149795865460030151961875786709862684581039223087701267179006447482172626642557731623523605579428440698969060475297112788103543206331300781486270709631035853980970993136698376724203504295526127229683535270411070142166132090372928265441286428437513263649713085624562977044933862916549607031400084072063073612185516493015194584813912647228463822945971981404968759039376931108190182423887534860255769505434910601674686976048258948390484456008908050765602306946769997388208196538540328827999969523212505876247023486994681654326427103386035892632708442472481337546857110648129605537414934828641986546556972496340283232594139856635182506546425427763797270276734113478117852426076096104841238611398560745247537119386938666468566226817753586032453189233364440498642963810506797605140550959424394800282153671078798555562160571123470632114503489800244921230161660841084164964501038454852976577501275437542653861269549125401621971522298999641470632895922818105327170582052438512388867724516647350197126476782775616624771972537939125396514005469309791266207990501560928576008791751990430248387232565854821464856370298864919713804842847263875653891357122279431544425086432885952176684199183727234131565022130362413817027490540994469983571620230617681811898019518041423124049025458022366290645849552900129750583583793714884931757807971559180029986143991836981590206545864247226028251546322061050783121827456048672179834632126469617224539214020837893664529133263271323078898508764500248518796627275147390087472681499786277878726581414011500834512238531184586667110181353052576864537714460812625544364420393868036971094230246843394235263291160856146575079446156538418960532977767130866411690077715973496937721660559768554442290140189356686016029918100177275060925226854916492087049462124113929966072559948328619180755236111162664393986934751383879721910810064186244426781370850793317506645725188695210047436426441198692527790586919386562568120884054402129139086831714062711313915029827218215095440214455067802525373121564749102385024177916326740144787794917478407781187391509074974971683802486424088331915108432902989429998331660141572926036621243488238900610520224533329454424248406987024601891602198813527819820405905217072344356456968954446456751559440811423284898420360555324862995612976904843898876810908749619876650954358784835024920776446806281594228971053701138406770695514163676367617086013240191640647394336755825008975524603528451182317088074604077097635973700143091053338545320320507537822759023014824473711229693078681399212034692121731744952822790533434873001829234283219183880010544172954745253514963985509862755089237297831068177362691627951343909904250839866699729043222816632138544416778975545866104363718435340015854554159237514657601468617502638666232605261394455888086728949854916745439241823633218590153452053303397151620526059873426398286977098728972018523957702501217988957350440179732635870417513841879120296250836543359060189012927135306179091693256445354855933633056740551113985328971338769957066083030842254009668682717391221789058267528139425061663196291877127811278254353237415406946720786657767880113296021218899743214799256274958498088524736871160119948246633573009149307096773314359719716037983811483149537064663399834570341657859526241511239912706878587956314747709799844935322379079344321562756507768574210233808901453983077991951562466280840975468099050955778462607672451315983541753175084599001646762092562934545087865624863148439546106955558881487741555617440465196690843933119853564463183405455565504602795297686470406997104673123671557735211014477288124244030271486146290485453049956342237569391447813688348502827888156976327089336716055812326435923634433259531112300039581970563387557034618351314262679879355117975072523571201045929497922062836959618904207470329951070817780521173571586010033574942917528247987514508087713203491348858065251265264614161398790673464973199670320219381726494493243940922155790626813865446250653160669665429764822925101122878596886636889989303348494081082851015989621125141939273202826838483088922885876212132551100207682165317354666526484397859975280271952876356751236390550141224665002615843103964752116098288458537930821402164222911194923876401420091222348630942757438715176961405770027305271972503770674170032202085887961780741384522925865890017557171180661763543937518102832766255380314588774264608789734056227608584491167396657014538399265978458608474533514655469824277774100909527930058973217462036451491821688417364202517328237697558128729808979832795312877321265068826515111443538427351632435839095489983115657368459449150403678859335820446021815280216243572143588080695918662929342307786718340795942204689144358429421044240966600880787104952028809168702031330461894387756775178323748387574875713705380701881895138471360293685662752037146205797449877249103508234046471492802821690788168220643021210859410040607630922335310855988806594131627034368453387246283417499708838110913373844162139496339746361003250129089221244695417507369926831420961702091214631169293027795539332278623347342707228411686858458106163746623577710452470778690436910712954011215605215707145026813875679365233867851802751577107299879009793625062757871913198463035270494770690971428744684453998973044764637584736297025853694159506446804128689671083431849797924648618909593375721296565937994411668144419599901910739193395628893075516939981928192380128334656815147420337939038465794421024180810204920072089844329579585305994903314907412287827877813956000685902164505466080973398927605105509916579426001927616930063983896902069920315784672354630766925203995961621853540218721818198358261713574847098744543404652551132997306387198870282001078793684124319095006953304233488563516546477445735338480964067335148485059017832224308045379930803683294172922858049238376724859443726068406869393315671161946754149310245572495667415396580012112987328196240127810916150696971566479719970250562628044873851973305356280633011486587511120730137400787716876397438798627904836268798133440075880692456075073240038041553693632564260465882554096342862352011638094193838472116038893233993899072966781512970334246625952783541339992711286169997925044204245771228721359933904435484539829937728823411859651173351314594409046021784072124120187650339688345700616208886030412642368350899207013223161093411691878871220877278211487432671625967156778895373396339335558449089674171187123894869609264809900884540522674782006761141335967419273947864085261681827448667738389613888129377681891273700720338989513733206602984399884950372778287605277994103748007661585167525074351522664702296539411003527795602341672716014721640119474589330793757023412750594932457475837329879323134695542270238171259068057038198286647903331175943087444725720606648705115445516812335569444151117852762491234730217084389522794986815815857247939540040440554687019559130854274598753419278446938283542328885134135870220830110633889581195344613112618050269696845756560166551322728774730073892557249887454497966372764877028051267914770557477266904820567235015037424414032261010765905435924363516426367646334314656641203219504329254501147097555539699923249804597506405908964976542224648395274924565089439802865529986998037081449302412101560603446724732002826792852489416288801384096268409090527613436944153295953957920953754931255325961152967990301769880657177394226294673353740107982552733276769584571364616811899059011863928862214197805677054215420444245845346198768713323918208310419548046495367513707964012513835767390294811166031706930439706456782604071033465213743987892767430167727045215539844549693185016203058685481228752630144135499903350059716214219647450611891975713057367181403361946428800106910920730474100367088038616015218608912703924683804204085370560911558276726109945476649468819702648598206517716865384514468772097251322653874041417247084712491009412076682662816369266963068259287339659867315402620026559150312900980538829316047465655844615539229455452350905647260488973871917377873499024461763753000471906653412257351475925163745297394609235501255228802722602602819299770211886379861019480687617118746267221133623411832374263901115110999954536992357019047649874147148448857138814568313338596864289793897075821459868654278512406754829993039893388714756741941430237828341291009304399185404284726525484829424592795351813720804807389748740004701747168385866750447530016193153699436632405015430955013104168685438357770282223373072404354478638603288390020058117174534568244939803839621568296094808592949003979767207906753708282291596561469318942003636660026745064493519505376629151198643257046234770628088521618432763406713385235610287399111809245634722409778434768294336417416143025628918415517797198103805141107267444591504371724508563763613856943039479274873736208945026646872431842864088864237235968697542864749569173348570187308103625658449206482945377096608011762939126599313389675469341339524222871849479667624450636067575009555006526677321487901979514490533447225590056156699947883363686080988805143479845318953450278151193346805906635356220010296338168746702429708146252224211504913427593988519103191578922562306459441081995966608141598874211032043625410024519332792150795828198601260969678942733996609994961001958084610480218217065003148822987541124005374995554885629477689267340924205999324671793879198366628943491048843568662288981176589789191792379557575175511439311314420221349869929857426754717552896243275216406807048298741989409414388869389548478205517115802643200865413666846847191060927209401693203996217237711885818073860486457893153011902012889069691447536035298301840953372630570907496800187230344407251562857463172130703155769492109433197045436731580655541745013303349326173271731760620343290681541292570030331090530976348620368753959505982504614315359522489897847572751282467675537174212336264911360923762650004095485376199157511698175020293722608921217926127276299538445149470866241190136069110457406217388360407159201871525603780966827912423362909674511609462083611629690560388680958897809648715016574594089520099930179092436201080288345256246503300695137826883735266120229527834696495257497257378393724697632228586529652379014108517134090975926697593668391021226354973459016217603001027970212607266418187840245635368804164667522258880053489226965116631209558045647851449727052541580484048983731625128712780855601523111095875311306645083652869896256064354526264922721720310555732845934534582560388049174435186122624705708557659241308526229271718399625762440027718929339535828932778902940645006279714634567997259365599190790960586463045697867379314609476854926486050357963955123155733981544102008441092450899284176916758814345256208118205194150084167963200659171257962634853520090922796370074572465503937184790279573576216842579775235013615812633091787687946098681558184053428519186652526883036242629386117076055964488327303639593804278458238524926575968703384778697655136363302738792528884392286017876431204529561965530439052236512694852691990792159979627008218953942031920797838632859113189300441756786479853566512907835734059365911980537506637654189084254739669275157828001166820580736447236044231744753526889560477758876527738491549199661838986462956150233124185026003368428559792578042708057989436596930060912720273842190371555140654660925131930828678898587268817492514066577046388618441055609808984863166933060818710211165168755973376308414099921079980400966423278969654360237120116063729684169145753554800903112173195837813520762311090179117756118020152304630074102304502431792738197277328277125759009089381246466808277669622692607958849618178430108421431176445243643943671401140032501257901084030712410305432829939331981822684646685461538046178946004572810245123556121920716827747066220683942113647855446983991805110550880380691191486676720558920288998210244245259024119444649110375244534215922544259087021132880261690569806883955278886926188220162096086231367869781873214686755697056134558349144094790035411426612186394217873149444086939477429795253324714310039479530190884011137260380280929005355919399085487893738261987414691018300175568579474119233441304804102023705799323908775538576823581203096956982245330672847362554702179331112590267584937620409651069662003694042799216455751358022014834408775895672437966596803221360049045120964041140423979614503240754484619346351547890987880457013710617313035039847698906327396371858422527114354562169753843960857835805673334472438740297183913391243502652300060694862493353807714306105607692404632219201629251515235357337839758548393389693228322849191027825440746409789161702796789020187425844301996617497174496080595249429813943577535487648022353942576395013832612140743102576206723616595372627633166047613659322548077916808652805396321304586465419013917746566098064198220263165220220072338804328265982862995661900714594461932806919425968762724807226854868641823289368227283373135781822130443608315448906425900355182179961952945189460367550737911975377066598879668353582348959471466030313758495373357471445715250269456509827753712409572610582856378735086790238652639985454241067258621569367107720122900083926826344276994931140201106449237661062527071508401693170358444478548529429045011964533034642575372133604194430196850385610165637347360996468592480714499768116024222582031502107467364678902505139103859297713706716719833248763513850815584856329049021739313388526592781717029539164018733818956087562667503434963993617091085055230502471956115945554365649080996225033025917773139645769225145931325236556845869191669218127264943605247235010028608012087257824058355823741713034804970054369016542840144902373481491144135528844172712182046136267601525126853807648991703618322140662244245088458165988857598440769314761342542021171148050376655231312493436227445793292421733469753019671933422899598611083527844501034585159575466354431240102883577698769986046031283716913855638589640570850358112109186021105294092806376905062032452788891616495378578996607363372279881350993938378823679901584322217433221212565426827371993217443282655302025302419696064544751720848886889114792273367541859058355365973730895434678697443312833297972006088499323813797418944106490970238720547817037814063828432997703997174523076089031987056370722433646862353879686076585518688520662029957141668833934747237623232778159387153918422166660214676502610734155346453788692991473593794411905662551005309342344599769074056976512726598113878034699982934160925854255327437089470245902249805422439312065671483797838045763424276108439583402406114366285989928329437734934103093174368225175666770226354184999854143771390544224714428484748380567313798460190413048136192772505621317673412455016432897233017748352886870371477036548471077745660017419193468335077664574541287596921363104216605324310728288371821692854168708697019141625956650805850451196007824223978961444252927289512975026238267847966062023205503871478120625174564034551159427010984461683422280996124973580138222524376315305582564772449442244382623849292054013700221999079478698552647232914226457116479363299457492169584201789250161461999537762147036329904293540915369754971267335921043844757438624537103927317461393272673399739290075325050798389776446059092615881748287732432855933441713943945917900392850648620423032167402831745354054567544474832205989890196625570482548983385218889243671363040883702095640995760587420924952417967874469129138537141974384199853088961434789959246778998873275515649811323063848700811110022772879550811682990232152098832932986475370246322895692607155843449400921731415687593814556269615962447978265537337709309052648645419933228421777007395455176103898963906015621468281992160956610532071014533467807434123580366850029257219795236482147105777922002539989358262205565709643554221805539105881515874906656670309429718896797718331192231097977379010742032841835281658094933751756118852340656048486366900403490037676806253087431072758730513789473663266618918337166375762394365694320647612025553705515433964434405885724823221628759917285196343959528912176165459504532848881869235595507863383971183698977012599561771104274803920106843330825997554756193839530030741845667286274815156753081077404374138183208208205725375935230348226234583353234594398379119322103601278579067850600881517421521292322803195986703571197220052470746387007235541752180932129644807616862056413730088949619868413732354175679697603659024716023066173611502204670904047959307960275543820413624386342160089498034614765638799073516655904654079890175246367900521368720642641896281775602484943073239142719054665373565132652274289209835912576573074671356221474244058998732393020039475236787766015717876887410563825814289572895802155483694523994802230856958953838782376255591889389362758540967409349192714815830505201336471222257588475554466586927429976018052083745876007032614235722112704855682151557901204682735895613972850965649067552080904277871189842392166987919551596719064504677899564122400512801469142031602548152240480388740038233197151253757027742047528695621552724262203167693560226551987347071175939799890854188720466620630725848697860848120066078274323002838545093830364722956236169598645921761323578540638283466425718351090993257902949864024198605957090691881323248966308158936533381683207648241436683725847428645828845944938690425774914109696961311864152903200406689292498187622099717897425510283011678163146336979613060809930023683348724239314642908139007824264010289653578957302018030282527194627491345918242555061988116106329857059969613851032043602281857550375546116181523463071751237802163879747382483775721152382447205496688201993164449086592641820467926500515643935299822303039837872309025894697441855367283048775177379757709877330491811392992146068681652543237565663554101169609440228252635275029413481787345840536991796181161043728635075637225529524636186366986931535023761535265628041488583153921564171370833819420626809053529907260524409128806503128614096566183281581873321574666053551840077392041159309869204110304937172443644236379572895444867749830218182369343620572395172570848816964221731902298024796009275332178822789642923930231717790307139873812135815003999197932169160954537504472740253782526865293559368475515093101241314357567302932898080673391976503612188764552408188080844466107827912939876150471894156569330407390263817519499811541061443380039895930544635613804720774300686554861547591293264940809224312877611886281745704727112231549892097382447528018210496583433931303348369537205428729450789141914687931588280691752308592868220936306166042679055129240673263425648317210428437240499442922833951943865981331461813772146850946337025807368292444403689323437579538296438562368989860602879665591451553389572322753253374108361185665089201705940242259531012793613433893526066115704888974797306536170046980545115764250420264813767647122228659993016823790299756840277105985047973735422445484573919227535769205906923575851101260182008667129732861971360261959574160888395564550951998689080770547097268810786349571604997203173399220764543900765503177591474174069082391276698886749011811242732379478231190923103627662705484825942676987131057655710876111913172024442554939700263034597022595049501891433459126234878737845379067210090308091558992882488299773312176680915028047939863725484121797487619494912780498578527682168236389806291700837208926979147210086971893620893232726689099887726925416338955132508224136874511222135333573981691365429751451641986046478218818210267575240538130623016234658311170785647306215813621365918100005073490533612625801923067507731001403508797330824400465466323968889196019204849500707246534127990641469799325071614013882908001639477773029873645450870977230052047496986515559334653938505368828616487676392513613973282242685916297803630987256846851894435134256182162510673226671876454353468113698357950527393828357478902644218368226688997215936119143699677516003949446870625756142949319351818957971335323118033724624409202793577015341019823350417973357951628118967667623054860161160727713146531257474360676192269874497731685543812968839234104952479094179868814082355397438207667545755011733728008746366891894359427263662950768218348750369508717489657577492961216835220166431251459032507681103950661901271404605555650219107007917153464999308086130020456912233858200822623598202249853169091777758164304228406640295411059287976996268297551161480109221064815545679084767522999685803809903293059283335188748401131224501652044104749109393079777364061138372864195533094079470593754731022974746126430081964479141988552422841174554610615266819718173565120860194596271176068103386387147411653566422627862807592986604896315161552025526656104157974850798451754211091188976385138720094021094794276001707162016853654373449852343465388611317375523865538837265460487773008054881067810358083611135934257085988676251725864754277604885832873577834638025706279658890324456594729871051806190402239854862381222060658956238093016156362105066753603189618290439838863153563121389184370099386186096376167316589880603622971009605384370893795195057413389013220075131073314183605219728370005084553094314907168518595045615352471173792518777055473261904561939966864537113176786137764207427471431630895382660421669442283259992541606937603276113520609713142257133524833893907168776196504503368249695528344095443953187221857002326368236288086386618857775973982474341517232281780138843327086721093206105430572335949629818224175206563980223323389915874930983070322905256362489836223895679905782089581637009902925567691201299075880846280179109679492094342298788816408304206407060346998138871331928963503636592754985796275393858898841882929706018465594579908663377387925259006566564568408525032478569561030847623672257819303924857563263211567133007942862393150050808018522389230702033293912778494026873439547489380780264238965164995188242205543246662263974458735965550965858780709805009621089638002305280078168963027338776737365509245378000546999756449273802294248279392598990654231437502164638825186992018474257794037437012841771423966424603038842444419865344098766202413011088916120934632313913690819575592132185960483026032272805594569756792662244372320960092615523906588511783103406356586785381966900324374151053867090791437353284108962086464494596790347407656053165742522178702069276399665115663798867694593803570872124869466043502375792205858234848107786998651481077283311922534098335031259054767720778534910302621495628422033409727252621018420436683181250551256284301090645705366894323002601886535486907064065899097277171758982239623583980070883725282825435784285271497328282749310181207384236064558373770729452515961325900125683686416073383785051123186236637329125396963385288645148767521337320692344724662048354158124121013377669142321499268669779416691696619772480237322459531658878946093532864500617583902748190977060566009750108324795598062259246372067612429303412743073210711831463999298960988561312378146594906694454343518473664469463330578132387706375423318211142022617918109797244868945361828350395850540931451352815157668132957110901955617139123608267348462922788151147636071581432564714659836232214843467700081840434867804718720995018000701453840751484290138637304174643929286285887695614890846466815489763991468396934497242314025163539564347923967243882445810618316248596041980009554327946278611973458339353847289876697849808047109376397290537381253527552107967648794596818416736679875464031694597753876062193020961548844941213422182441327556779024463089930488287275251600870153241617375829979107770678145376174430493050112834812637412495567415591326852596249029109558009080192940825852771412935840177382424232270383974644787995027818925302834074536823625685662654691358001197983748940385026718788596764430483668172129975811009396434466721402212290210096093040692622492624923666774638150200234436299854276271002262390935461283014780169666407552820243135336601066952302440388833049511665966840656326792370837107059018739756521357758652060621375771846519375000123436232021748184073387396615812074401179587429745068225358407737798307723242097310576759577555743478075693382346695167226008358778019976784030709022329790980626075041385642416596183013288369973263817117463969322306439246945532243750988300503079052742798907737357712292750201039525866898391799887688350520292585345095164823125955137552728930995166864080741204979755386787879811244240777760257806043914418383367365519286052632161082020792304812706102402015468797537646935660484951193516611512270362176944450837620905456755943708839474812764016733697455653712466728661883876077223560295623767203697280987968530935452122141752722858791377586408184624631031563576169255714554596181046880984256333994155311005015100737009415491368074494496284835524472713391225150269712691857364471257760512297082914467193720574612156120153820254634457274401257641307281901453944744592411896133931685957910350434738637199077752595807057424572523780294473061527889790435357780811021177205248929366675156300893196389259303863726760267751191715072867228721450990558279932890067167555347293755807595251193129236572134041206746588470875661426157987957582889531351613533913220502095314789054420592796280246233191281433806465715310638187372971661832703875287718955131599965582488253011970842583155639539512912474228939911829144267665765750008706210746160780990052540919047617377244322277473175282273217401337758085329869110658425990986757591523359677144795432407365869172594822196664209391829633169493806914373739241231127001716606758026848147190337054812528527872180020571260911488747157113450838270555378897606282123063204897964438062647427288942773409225555061882584600852369747679954817124219625226738671947927898795263079042205554740083753915593970870379901751578982532074888898111196003417090550837984358481104007719588200340189951043233376870499701224254827472606880911053086871712031509392623052545937915679532865046871740322577079426036009978680728012499518247921310989002496607481241085005476101453176557150218482890032889028444310327309128520467418670054013025254150340797403715266997781082499882516921236470095231126560005632491859833017378368993834133904770360071699093562253007855249242134182319694551648354793234238845374613795945379064844713670022839911796497568688380007094888500268800983995283926115085204736414633597729910097450966538550916214892139773684650876377629735864875411540475453545517922558090344563949305532122891295138789607838669859753381925992803879733334118391582126320121873512567002365963701664952260910145088835042586342191818878464771322324473007518142386511693725458587884754938822730916663764460539163710578124293522664518458058322682932157303969937961778094383387766053490515004751534478865790435934661274613816553118798497433192583336122247696426330759160840602580987409241777141862447824989547759312020207186440450997501409605542611534865610748238023432082595375116976120240077695073695424791350873037105548540616460966801526676739315926948100227073423777594552257676745166832945887044296561467961054373201279053228164567628315348769990346170818378054944456310145219665788849339360294882748604950810810680364629377951833389718904908383565735504063620284100402193281637860720489037055277637246735031173456995109930404077934534487342274955211854177872119929968804745600842938968752423407557763834563413810836940930159562463761944816487742564443186303341281733679687302614592006088533755634811146096799378272826374817057228494620414230590244222536911261719009059587501413513037786612778115621796293946186137859568506439027144541314567507482986115971156581206181897034227777527259565180223843073114237790668225349139017463957464800565837998805355051426629021794617590867382172942723458810135117921438549491577330579942621419809086287802127019153404932228197191085653623881921682990401895330569745551739183065020301408884401844620877062580972854824003522031703216930853450479863843373395453418323453900314810798014728879960932059364805155634545728811439945768418809893909321383961640256578486659346089754849274531569455256678874915482769975995914478312065378483108151167542663452879797032370001358226549791045121791047291819342618610483388637449073475873665932002166838413782122968380851114627462171388088263204844964350509000736954573955565894690930408678332056971453132523654227649994769357198563089224155978188630830256757338461967523681060117469728404967930005508466926242117937132119918428617367019688838640735773125096757556018201031658942116006603133029270979766496592778370512999017987714162303347588045264278145728967949646825188352755038750381291362774012289803245578629915129392930312470349221172835138814169623143247538627299956241482737227729284392325123829702679673115720449600565282042061061849347975999386872345854562129732635386635201117390616843007612008363518656559507312181152537107380427729619762427896978935157796599540410834752999825060672803367864970335803627179821333454716389465967961144074089875333599962822635986784122454026246566759627814916921177844098701150865093211302605539569151585600017863129195342789825361113465589569999020335461327069512638147634549354641933417309173904462897612236190981500857585907913467025111743595680337880886544888034974158001371043189219208367391781070606276762819337586579248709579095948780914428950781101549782273415974363218605231673527049124381251321193364698080141599250766394751233677219549920858683312377431947753075167799607878866498024819746358563576811768252637708966926248574388107302367511753336623379745274800148495150290907537750650695983496342876462204573123321000532462089600631264595052384376293685963441443841077529137455040388072110022030058724370021624337994736861234596414134199510040238175986290886783675755468901903859920855016397781590916722588693283731214337724605221646735811120055156847488236024388035020581296519557133236157282282925522236530709511413672414378183293140683889691454182320696373502720102268956380124324219258768137158068669604368529374123068464156575505491453593895370147928546865401255885890736242589535633217845151833612178114786070950044368478294230008433594556004561179094178108020184300175081705243412691928482103260117345933873159946893708536749744982563825764688523988082440567881231113582958451177910302927713974848767056591878428664910903924837134543716642783705723753347426480806540217729306711036059489198822395966738758906601260348260594497726717956919680761629079659474227389744238717814540027580255844586630292355440929816905226359222252754229905000859328411876468201448624938910301568660741356784119415780288900105139298270438369653278873318615035268883263097637376286995893187380938464902049577795473607374860615444407029701117541731604939687298122514867757083417421307870756642628929368972428028862033218444049602391823987166358747144495163001127268936456727214921030986236566732417731120760458549035363591632650357123804781964354808733845407416268393145922495624279855596444599106303684533147478736769968611172835245651185691321336425105612981635564267999996129697196267799154766026519186598492052113957419299966955751130764545644390371730270733616712885224930927202582618173443680725712150599993064225357869241242477990893667353532093454195028010756465710261853687710338975193582567054777425575346728504298411915174252310125839429837211141812674663799236174396161937571370625523625767570782076112383213479748988700059618821649972740298016688945371360213384732420898160442585961175548392819447590644189939529186461601222803583656039700190102355562781565008246987064700010582913185626852104353162201637432314351783324568486840212245855074108283100132944557575483927510333643149398014994541016311364968471966559466533758666636087364899941886073150753154446288409937468990231517601349607445362831491846568980178452166743508645843330310948966619810176575620073827470808295360879598600557664320264800981063452211147762535530466931163773512092655204151757668095140789423104565291444852904850519850910303651488994070438619966946401431820012457139999348972882666250195116488248505503477317072931145780060939267106436994868398137616816436065432048006843007922276959515771352956850633631008099021419510580030862467946807585821628065110371781704895063065880948504659316990740107043947105855252736948479013978886409648758678096800599340031916034997217139698712180610595107082113456362692361207186684686170224964511302983728703244165761684238313763354421823043018503272006836123244533200788915815203718088392307145619785835527842271171326039312642967835243047207538485877421033363513043142479895470003791552626996252044973387922872329251496833705294133999915049004781683908462697897438520933132605795572340659263860767087107963483324507360473779574330261505688210234502593834818877206478258276066599539579720708722529620593148957059523534606850711932167061910997835268474123991462048924873454000214577791868093666589799751612754700820765550682324014614338924329732289573958372966812006816040546745226429601152403004269848402131101728976788661809858416474602569375500424130243419530123216119511470150266887058044318403270656912904591866125849686712061803587709567039986210054713977171985674885170144554222916044771682012829039563408716131788454609739506316827813632860508397690966906289293232168418729388814833863603729771624868897737429789088088412832371542687142253036282021618244233030595533678471037480747777314234239590793733262817613181755063588303952772226355862958348571394889941242875074604800149608510159644744189370519758700470985594406498182168749812277545940286461588550389505171466374782695769179080814231061956294928733232756445114508242926196425592431723893968846878759443557924104304795901216837674533690781176710674047564530386615981816659203774836999991591771436740855999955470447377611884302790899115029152803940736990175680764021007699590747178951142540843558340003201262882233297516976171991703445338270293190797004539929050401557438068919185034890102646242710975836183001408001184458753554648126183164486443496553714619581718239511338210643153349511436909220019090733695686362493662320635465336292367636305494470291073275872772571470964710171467318975419323365528194223432470178062167580770656715239453948145852548456337507480053903345829801315503961641432082795125006037730008379701060090052673026214111320251734995112097931646850733261900312938772512379350972195031973758539765583249048701334529834675492742178926854202234936075271803500729313224939768023683240715306063238991184479822735167779297167272871966808858408368386604231228272550418732540955989848658445391305954612061874336218391415602832931383341485949232731550147747801593672980477859140639089538248825979122772680543847133495887087233095440309946741589494869483828015516213713153656219841449493792048315666255382675940676729712764648205523277967291051684033603643735955706883561808269065709917859174962996255360992115217351341214964983663760852262242662422059111870144182108632207216232474127151005322179102265384620062782680344810914167595529703484816401767357557855547249439406398610380925751493058654964665718734047633997122880267791701165819347119770687155418934999296929673623379499798483010089493443031781543771029857144027265203671807591463751739799356092218469110000133977467996937490318070056418607481295910697423858343160118322038402270169872881912076395223489086360667772667911239653944047002711701205470371572790886862618663237643203258598421433316885069601428350854802741281274221212587368798696584952703773326650058508861353595587278183597636428513124944664884147917935907103522421408982462991742075713074630209405149731990334703446977928995232929520415913880267045452525723658219421122557020058014598707976719249128874824416494623755757534356105249243074006324025010095758075676001699393478702100881267456291529567536862791930391829800185224470988318638209968985605796764083924062564744659745103724693321197597771675768409596450345518424833342622949690352606659421835457278197667936626520317528221876591385297582968520489638591896299908173519506007769329096318173396607251913684725136890359895606036231247021712564303715577737195279168303572882683138381655784946227712390926452312441110423464550617723065552365207448644475551783734434079817285549610498698690304642703404190999717066485648041944102461097883785859303206801243916598753977296853292326908618193451465563944905531233615849627006743460638951622150649388270935401516293044852912467424411178178198950237170417795656475429411840622028703911588451024724405674974021539369205909114487028926597186228745279114489158998444674523509073480050776731733297376278987030414592738136152402267177984668420318875233212185670163948252802358795957973406621833172550833222828545948292080316495840250918774056204519636870135784246416205631442002709739633384528061734876263576326870765078561843942428125745117732030494785810584578633309331082760767966441988714575473940277889112264480595572439961589105371179391710265812067302646029593662168769111997803291355287909556599490458251294830401376220204454420729174787608209878793719872670239569384641768080702600862650674829072593276917073784152790647861503828986164865915747584310812767067418300567036849700272308708181296164063036422639574947256096606915693599689289856204274682513873252427954308272549735791610182062475083858297755318944180099467388742581740450212045341609836532315213998099856381122227677568112460969184717302194202785908629059609489887558962331543323785605781495994520689696966753025686959028013963134298388815703738124858950568781098819850962121078545081922220309137778827762072958501997251777601323354086463688299686476820396865063762954679240125160881076650006436887559191579049443550335992450665700232821567482523360221475757403072739226481300228812808410124260764661957599351814415236592622417633288394271225568955856501913466404634625768158099610740625605519322832601929346425621151733406464159721719444491251776447015944674590873426789451368389287885134287479580051999729268887891515566915746061556587454073126020026291287917037439018417720553973076674070881774706023146581157617881596080549821694137743924911983370188762226622440591758108077470637428249559393771510423781145668340373681611226423864991530311640029152069547807440478104255462772350634093735526206948191199014263005836614480881179307950676905921060446685089014747325671328409778941229683927574161146220698020070535215339064515183291569539449565764415553102666745526995635597468288972159757088601440249424783407495068624051464288367436562374079950368524276360109267228779352793421592660064102501578141573718263119935447944681162598705566970539990776772102399681161316255356107912674562262224202597752708820121686471718404882657870981217653661716049051564956426410200375744216938912097628037968918001519461360259004310219651931004891351495356190177359845443127990979068283828366646232771916170815462689570979013948824980788231774991501260440677037330032475094983705696827686983871841026199228839388474189548725607719609330332228305719304277940808099187527252579213603339629139914802000510118111112655901450541051632787180661469623749176549888168681771780974807055732558411133723509534468946846208327597167289830599012443586893109259153656701419919907701632986639115380621374437934285452872752479066550784865662728297167899795958027608163930036078151314287218661805434123957545132191475570257701109677221697436672797334875731734267686872739370200226650071421246801929664771093822726961167847363067395698243468475208592826241954122045039126162770356510918623931226550975946887541373676370667541595004502220969547112720170806099635880286755295805082668475786088099817179245560879285572222973682137622618041568044040077065517981430065030460143589674519528521174438402077948447438735994164910089493606776242547118774168307310506887460358966945415203255694292768873571532011179317602316577987070251875069800675767978546912565315904266551557897967583162736496339242741874653344531401532909906031518869929241371938633132176444513684444890593327236052988158842242421981848323824263907745508399327692419454660923318679949229122265582485356794237833021592460710155095174492425556882577862629030680373895096347915926727819629171709497662325731813023934152310028404321998625794898058641107765507666265507978914180113419641436535467644725741710578741744591695906425980542332423838725422623514648086886214731693312379011794383234999839747068859035944228660645316095385001483680607321843939444344567854699766758768897831672436381395820461858670099346601758161207275966722682519118342812452808584409615583332203952512222066296894320437672446811412894524632742061822741238142513013516785034084702282439160466490320904334700803472610785808159695896850235886430599296386305977010001500607762555858189602313543809042368154516808203873431577447845285027687241832714695587170241926770468343011363653344439234623858121179198552364090857436550296910615554897815237570796416319844714526078741634019623151579187265010329342501339378519831996017369058037486403163001162086828666490771794238111269369951095306213907799374352219033055747247259152545222457212531884765233847442079368584315797666007638457869858700951778924520627290156552221351468796762722447491487253696660381255803525528412225093337785572039050957094525552460550333192985251828702539693027709118947497270091643756545785300537193430106897062969678120925943448540718872454488593979505430740684332611972358974136251521089890572262982407326268813722659716098571632936257963269072524252471081146107930862013294954238094162432239865078503086500622958889313929315588502859153823103362692716922074249305933308807197650462939969128580930740618771055765113320011508906292629881188105676908278383269465057764812279013049833654836844139380637320668604176318765401892080797782214816682087446766347480601497417038678121343977671346467322194876055103536595967971945891057740139681484240373305465892017800998031675295458486153350025386752614009879662872229546633532037881108293033060767370318089611268521892995398319781132234730534892253661663491957088189784694695886797596785490962345531155931690178213629893166051089766879524700976053437913026099208983874632309098413566719136633910298009107550605697138492971477838656151214650066288623053493831372144549921779365438232768800741535398120979600042883044822389706055892642267592426987789929326706116033669271501775658376000615171798691867805796498841644028051599589674265542014165429967773050943970041954307086736356251859243551997876126036338925364826390940508171156509340279660299706242779009194442472544177072995518385785124522424403189310156233695943914752203774399168639738661120745420655741399606436987925886829304365648456326682101008073193609800666326062622841474160817430689846965400677244623006358122254648108734608215726367804628873201840665562634498703607685051636722412372962534304285518712467838116731914490737068540587750131524122626999141422870763625286784908134201103493346216950890539150449064317318204966130677651299674742873497883190502752688449629765375851467075512124830665185464783010340181586523536602396161779743476557749017421064988302733005979237342654924273860368749459709835364482967559269399559771886379198575835582054080892628956917124876590550638216328638826415016640921717215267364657507449607737525961437987296936458890567917664828557473555360042691509333676213396428944550400123808523813808842860371905260709338213161642215221843217856517067689187117603289736787226882006131481846462560289221570917538201040614304842105652444506219604700329057073108974115292198786554371606684358838268904494957997129629390164286004701790898398383288507935596535676564339372199284959812119088003977837409864319036038494523955966929801658138346817634049422352468427126869175647780134557181468129638879804202830393474654127410274375649274895778331092311558565724931110079033983033511306564195346711393426932765756570067424336498029988064859283432750729367387388576072745699384032344777604538364868338131667397726315775729747611332238762745487702195589096442545543127850781967244838636853984044982132713269090351452503369683048803918834978415813368244865271448545758845122267730068585203284401047891084637111037400174050298317651068462244892425912342973827297336860961123353064591062370632453012277886977088071197866932429371134934365247481627206278390251741438559493233427404904721794990472258620515286548805416867377774411001824683424727303839297200473879533818025516836777412498352381991806436576448143562659847682990683269678901525949073480212141372522160361903755512596635288447193509353565287268016453492132310435838542458702979143945642194424362888002792914862599219855103792399665530355099500989855536973456319831776956006022381607528923220781023603659687108741950870298880095342691391315952823657197956645608036778664843986166072787259028773578344303010154004399952802172188242310140375373924141754412884088087901545102719663577648769660593842090431755685401491171258070332778371070621989660640358629643167176739109398412031986033847487599466391260295401454624062370253973934925522039455936703895256804953820800156039766074917177899107526602179324664219235758647929212793579850236102700499691195699936800924072454772538594115816445603122428294199987336422862528438450315986757252904519195151598927823245732523885122700575953671733131634653298501426541834937320627879956119936356503555378449349830640678467005118523479013721730757404303346676477940535209850762571532346748472391367175851583638007476643716460098999228941825725482610386858103108648735812975713827200831122642582162763995004915123618648672561520027632965396052695426947550321609008655658648759655874175485637025721606569535882346926726774165309293891561278123439485678676719431859535910490044167624779924255921040022077118152112013237393379326381032078709225549324748361842636716002531101218734714262173073099860760574340120126417152954135973564483852466324497921675964082562948578669853116644452017307347584627801928970718422959904104448006066614669259566120941516827382203126742833422921476526701842862338045964773132112235885338225396986734696345493041313858184465038661659222784635979031812613231807285036711919391595861405477524893349894096104064412781891868660360874320550854724882881567331945980148659767701551409441962734537565098196757581207377094568287194740394506677655470995422089178086278005806246435999079906800419880539586085185458120901848476150551513478747546949625422369196827884845090907409980345151899977075102362101652703271186580899851449189555725266504723193778352230191302546154841446356524229855869963903381704647199766031090485091165757949080622251624790385143946266424400152166757393482317393022671560799583612287367056735347978268105027651655402304455395381608544712235550231824693271430366322100511191062936036998039155665073456255396463295971936508311618581754582738434028613305354128028891189330126489723110175475645352834148121805609241579482386890604805964689243248151244590255172523021891138293847741866902358448725865776317690367053105776234525483803404217216180197858382630568675290675786959706078100038347309559026984232478491713127032335471290524945405608820868377668260281799906680968516824957586904757105477981583804975871088896692011480719496019086096919261386753441658859116807573185716307804007318614539991721492845174284677248527168629242243416930024723973050702978167474089192925268034706739764721645798876324328364878065486077054758819399704164766016720663944962134908847541419902166757238036259962990693842018717901492675359535738645818122562888049631199777520098120832735809318783651463963781073039399984574139408966202521725379765217031442775808298162342647902961293194169898177636100801824142982329989616805512619179187856075706524837735365449777998922078807952863519638029854665250212568824314879961454638547829804052129617947156262092407116749532219104417774530037275325605037087756972491447952298117123675382922195222125827042481078747511232592495831034414202141355890116973046222509605248750273732706055639681057862237733263474945810778934967752185344783884616161670895861601709111753740255010064428743530117815942285289322154914057488854445124632345475080272182752351582891889201905093135726681484516994681108227700332501464149625064565020170535590624958754948601130638167673529095237419719059609841072813062421625441796514399634534621555761492488710832478476342353979016813316995347794887575638993913194394801094386033806671656830894129676009258778641233099544423996089391217216998217410009727189181782172448568992651857668955687854874370680199487944717763692304929185412739240638673536341967391134592238005673472869269300818256015406023427003240404423952001538596812016793259444661371422771756802725674647858513579616130949827759932772924977434816278704981459259318610612137238936790482400449985028818907741374210013772017161863293966811459285076664316100100436798299932063093406224803848457533795163258025816944934003237760752985319834011711119307605119032119852137474578588972312848130491073653508341214295857988454338475919388183377297618058210237419574092047799328085380133008820131726138288424449166744363628466580135330158065825947684699362848946051638324311952281010283163058935726750154821030741254502194181129702662663632671899189667240767578197955126022976522705338855807339758942813261409345759850320432424849915746740000429795817295038779691574300680100057622657230597548650438569703835854693932269233826076665161394862131802538700923166355723713890384694599476816447435868414067203436717441641973135267594440184402483942849060610683149955156641548808366725550446605951824046752279872236590192341747120133378437675859989241085775382593967864973068371425606107126797557866356352140217478306992446882483554010966003387657743606151146945026584257229707008180173167170369710108128462535250692676150518937951253784315605323729775767818638867127878271472513347116742115024915891945488881827198123286361119657580659021814957431784085479882847161219414279142052180638773208426834914347442175019512878481366759332625133641225829257170032744440393633177999464178164344771592779620859086063933172542997755122826556759826370486602327141912379989411739516594962884634544451866244220662208664094171251945549673127062675392210092564240408006853803558896060359482071639183276220941566757694801315636014057661141808755320597274781707890147296422979693446816187324706293122966988462061281956368225817272515587044216706305025391131804077023381800274153817395465165646694837194779819662595352468757464405900446927063110865853140866846323765355585249721454972217967478453670283868874367584322355383589387471837521683706888988815260418914278691986475205219357001576903815272193265756801911027237880804108598494357716753256644771838909328998359980154508128185934594859813006104377561905708302077754903368300438870296085566630662645533499408760243611231483316002125891060668644305676113615194825570754678670129244596158772759558007200537002092776278735745782745354225053311458976622000226876150657991936560201746885086348172508838922040965301717680990758538660816613321941579379409655900020825219970680479948764652913726719765654248683393157786657992625181354677771152880041991357122419480744825105091374873371187480553000049550605892144955635014293970015295783847541979028602634085971074124816900875971848408137865844469294005126700403925815384115712902936699484433406185632861520184853970831836717612546291993483808937974566592625627824124184900439990733569363833009938078193030390876417959057454346072354279407288900489013760462107024993199173662169415742957831247743497734767860613178725615552206885036449163134478556849372894342281211890732837614320440305030937701548985922117138623786430919477854632301748930865530737655875880602380683441188023215681528015732947921304293744689320519196648843279651824121855892688442952923383182585900335216974427619307035410993122379823169379728037220779094388983942460322611785034360514760768865510598526693954059408161209978697259524950410146159760974725683988112613102515426627181041244321186817146847795366181111751092559835239840750684067829027875354552260671022467099945392025559214007361050426426121183163042994360867269101259477064992611194376752903450934364619924975116983260761419398580547712864315182263856068194615980765828861788149559791996782298193322137702500302907122795891243470866676923166175117435554185228635119404720542553181112936787499007178254896004140724719479162224856074886569439118257642564074256993293846677454715851567001025751367623264358777955025588775180826704355617637235567582884280568915778312723387672860900826440909952982212790416542023320136100968417592242597389120873314147182676075519198386075986555694790398809928166343255306608784557081153981555275010459157851359190898163582490295796627365602471754941669652359892286428303631134620752777347363303543551531563584681147560157662001009379670754700270362648261328721971573151462624106247157750467654040486993784135070882959467173922673809049817368978269128925093310267498141262778840857875628868803569025253371900116866943776734928339598885096734404608554684233888230756322560975074582513888624666969014302688359356787901596449188811598517608420864510632146348613492076427686397461545788087968231501268235729032479917754473433389936226781921388501241648255231088576306799485636204960460515205389406662338493986622494530791533389832930595541185713324967574922939695172539466080937332721663330320527235968918619086374251363620876499489833942963405528836230055124923646982853047140263696827489197719281526046078156249142868148045194138859113804137976143280914010833015543436110897500311894582488779115830160806415620090089218200666334691868969110174690170800665455330755021737670652259582964929793962739603690888355871944675628823840028469292067737333522764161300317078320298861051799461973308914707010974074780278349634001646551147647053236873155475516283467794491539008066884941976589911383782552953842020729118860675390388012264109525491924907118475190831289113637035440220583198101873952965601162248169669038428825763186542077288955964960736198679653865796616733904098205133664368490317850481929580772920495295200071072098904607819882423136283150407765662486945238556630107072779977443143296646792428535972026402772497575354571072102940709425016561473092741078349735965224255584727606883919261073239538762070701465632185937465228957239279820841647882381487024183422961089370362921358349949314023815132556841506690496471740637605811230169915150492905969786583152731810360845442695776701729806497174010762673667080653874224869272780924655695931755857462803006807332695501752840630402069472874110881587338574379168804837946438414814023807103091055977763210190640930644603469305845494468215679782888732062763529971256266397758063930889773682718805461716964911613398062669049181286782725526776375120487274371411990249246137606466437996408466210379078175927470119378620217081191112203508941369448873072199103412061474689793160861650049155323487317010279038325798132107707933839976638045409102456760548394453186029513407669420289998393862467832104466044876451543188773413471413707051874317489910839546838264803490890650285399745468027118320925800499361155551218700134420619120049067766503503421791804132140262478480725855804507273316759405970174668554055834164508797342554434100946141015844824806134968371217768066709102722109696085889983605011171363946542490331764224811011307695864990608320307066842588584088579544341489723867999457875891655613192059332107533598177901579965182604242609122916475746144279716597429249079086425811780482828216980438258557481331819875952859821824114090989356603991681542848389694309112950541635757945337222533812775086232649348138351074771998610323583076006853107258451288721233568095507324844381201493811474245125790407969134163990481035155289449050124000316046389645698539066269954610620760849590044596135011845810597291890668332819369474975006214840065124004215229815571030875417878351732076145964442119838715791154501436274022362918336254030860989390299966092491944564239209061378988332895628158878419924497328221088404580480977601488017136353148591545646146061812945704430435330343908905611753056402958531034456706524388922831420485398363347103600335263648303932278265211951223365306236356022665137792726922003292222986475619652627680183037584305582817290024308460651596401961473486488906091515867152482368054552377562202004720388230416104645916889431691621538578898202832899762975234609535284683968724207242245765482877680521105880966941403042593601435188336755390319328623000345232396498280423550941207784398101652063592113129928349321165063829869512722206869469077589018191600744940203093443549192896909759345517608944758837849721359306834063184515210155575672437396178464172233545465857814287023559340283622100286246363229655875668569519702335034952119010526732620885628452821595647413842106166399438587593826811488125566423385726750252816088269923668495238910772932579155360043648207042010693400952757501587879192381949939447617572121967321160991275479536717307018129361612958866558625895978826293968515649366345510048191989526454463478027431048553817113982007978883599309102361459653113051329046545106920452786002458864424535779083953791804538511658088081621704402804169645020205138212224956878275249716539682105318386394373024331402986039006039074268262560001077845523872749280698193191826685997722928965305115847824969596189046948206215285789762009524765681877445319708338428311561843087654907285224674745669347712944309535112422720946195138343951004473315450474876360300499996947472179096894334764732339770527365932083784720831142011300430295687756755573329489222960541200254733354523268300217018787149194322311015604822543261975473120497560259987001344584429553497914002683273277409734358562144474236334655040623140952771342626809500352245522169010333872297960707904277745684088024227474743576980245890195631501957590238989191876758835985140681394450394460871999451273764569588132033943414797655664360438400768023950308506305289174904168107343892045403555703480706904824500242857666180887147181548578264055213662630278477434146255678574744570669357229388078915604572060631660689096132696667667151986436694149244199041623828006192601509106474092179232440106568933281231669238198238662672968363129235810216792118888049461553543818444873757886398926970260897185308420915096120560131483017247255609545421498069936841622068168948394701260088253632740225405682147876669762779771407796274944655147480469724726535682276560826184629825976149786753000643291756367078194927863498081194364043262164590581556287658966311619679098232837280414243692909205260614830924281410468858566756736958423143839376639120035229464385070456150844966891191386860213529005088722367856958762673363095717935495129603677191910879942057129733316220829517573733962219648332286569434371200327367768661507697646146874942650923497258374416774922899241827424731922719379950965027556091991302373609019221573009574677389839751033816943449301720189347660584805218738627336300330963063821455644013250580918769991043710352205595069015404231284642527776879620765148386140867200031769286264789335734624127753808280769922262518841770130552882147482615927864649768645530565851665744470572265782482992643591923368046985018056667781917316647819350793096388783686011685288935895934648110795240395672166079335478510760466586977811704662097827552576115494341305078884054753531522478477393000923405184117484742581124113235964760962242294306606533558604387136795744661075154322453640684983347075576913856347323693834230487323730971633335165431325721118373503296866825018315398574649694771963640766058943520396633704468664871834852614935925022014916228868069664424402403079489286161132292656106884958112384722978737303000105802542750064178245552751094468810156069751475714652496375769944933103286001640973592022557081974042897030422849279336490869406140381507276162088587413538689421955509450456720947472578605065704994927443721709155199183211544002241581824624004561747741677115467153352460237947256178361727540214183595913481755219982351968658171529730187802010005748875460794508854814058290277267382537996355499178306711565464917189544343848291279050270536118766471226364776804673876931753960390230172063357436547137090062607104053004322834611435593174852470376264701944132895563323727396608066133735913295317114648670895607757009759998505481755548811099788652537600280686020627532460721624427697225250393009790075886667046096053444830180739373762958637662208158198079627031850374074530022326154504999490755398360318100215356145089365871473176433983755715125022539289827673776030303283049988820931698492471173401942099182487535321399500265720384164139501366942781995674503220660028056603909840682941026707185126728989929844867953278904184473065604216691305327573477791353851283108724216000568909305041809635589074057139145762324216390839332987813967086368075059379863610497036549951799765226789437355242920364149165289932764420090728307429480933990665696015004686717390469539300449954750574760272923076434609419939035307008518024191412266563142087393500497522305604713466524077756448044742200708228643929181781504582812149587826700813773067687965537319176863402555486207956360482475645523777626503625521225605597734721397302283740161610234448907908875660916787840153132442027890225242596730939676544818444084437193994954341166461132446443283918531899956042074044427847268230249480092196939822654412597810041859778850433285689839724402992483341936338131226812877473592394331358210787207631612305224660850287631204072808385519228919808439425921950541451687238830349808665745188974196243584811914151965425149431982148585419704017902935048623881616059954995204867521313043604917287027985207276602585787826026931318910454135975536493052057416471375216962232061508183888784096415412944280284680858006419913005692768034172026301128174434967649150392993468319384625076907736780184614483438859039493504278060893534003928586833531093733518717139553683142823621313755813597419778861447658636460055743251215835295849126036203712743732907674037480078174720165045609791148488146312993815599869448370067808728876459318582989628205995978801697606512167344694727873418487218204933582451360114539609504094620565317396258918204760655351237108665307862256828641436848768047903834301597078598334902489474147839586553804619809815911313200415369829680503594834173102642146042965866720137281366249020719110306406497818003647519063199482439686987602252920734643197893696631104305904083207248961025716872489708108944287155653877779874163156149072755855865341075777132983909758142069528966533071078556379025025568086503294527577377963406614253497892897977735470787447151920450487737787540098802983608179912283658856745268444832562699489565180334720272487630879138650523701566704235429065424957340346409447491637254834682410649892547515405646207818548546998846252048460495541445400018581548572135799056844863618326628874084482520052483556395805266695469570445407343600942753723628752974081114254015503806218799852044218855384312016170975039494454306525151335722632700623948823679871062550378623366600794743257235818356506416181144230413430314244836048807861254373114082133564651246565464548563369130424742494321581917286146696031624392971799172432804305175190559802023891651934426948482655618987181161351898257640553450383248835648954423125651635395881568501425096959520197495224688722256690760274547345996227939611235925314544593201317621866578590213390257364680634177797686084321120735510729902872909168179110017804659848854656772908468683529945261606134575536531548161997781878307383031936633819797645221157357819952706564395870488438285091951221819235892957365142414346697920470554097644693140462781387343868705644591644085915688188294612403633780212043883018800119217343112670696705866139272416409019179996115610458367847374191695011537811133136478056632102974327181839874303731314970190520265506644062658282056171870570316354544771412042279815397969192618640533887240010572149158484947865126873933300956720685442396587659452804610064906294374672535138716864804550909442664129324056035424917159178416935431147551562571992398297023437894127194835791334510569543474441529923472628980982043642835793516343871866433577326867832243361123690933442559903084426656056469018823101881662420970817985860622888815566761770268523729996139993309440855305818264242305644633021135494190539140235084839182829435528573866826194429962637101063378014550005261323680793258082147831107194998575359124211574194777256128122499518777671567057878398811620651382484325367733905056074163740008372792868501752526762791416144054151838727471550167569498461750238380362470523777395124858069516057400732964647031302563548760354724085204215141942122877185200913042344880691175477529972470503789077029591975966987734045349345129892846973257504652546564061242116429163603940864641407132694139883453940399543588292503586804895177294514866194010948924018603945609038310341125977437083124087794844017902595555662225179309305361903254215314014978840233059071882677086592924918377579073904518084001455310027079722685765310532060026401167573371330545456214891115659231478557665494485458772808399312469198107500585877763999003118381044665565264063398808896827877769122090773359887142096739414806473911823031447097892186665636095641744255561338706431953684582197410821116894835957082053084399344885347813537414198612600685533731207264508683530690626912205199432518036191527160442752998285540513720639637409142536118633934849156243218939386298738840544362868008929020940457739640474908815668911844679420677104443701926703939009758627757197619476580578093923032808991110204204212250371890541398043013932316312587046156445186193032962356327975709656189576486008534087553867600755061597336249714402763614615509610759497415576572034297231720351700557972148150984789277853518053552900784227419862879979885998509640962584983516498260763644147577550811732349751706208715783858327729883573583782050281147134556193320427244752663628253775859774528770961645705592341525587560951091253476698064309210151160714669790271087010079664196539254657977264105922746333347396247139632956153275286357477909315641299864989726596189587966297553994587039947373686842399276407473090780025183094155879159965646631485332130747771762794858747486829642469140268559842577208796114032972003464493261237413441428106135025486863842244421771249329981366762661343916792780550051906963332026308534023876227971469533046433458556141302683543611241070887287675408033799449588613839279600262695777878839674301214786303572959182593886823264115746263639277172713115875226430908652111734397071163536594605690781271910853001181472511825691463317500535663489763012815670699668092987900627581561389087816543672074444980422330004599821536037480695895707978995492824045212602503757751328376800690002290291939575628626906276418579385211876429843552590900867512620408343011707279958169224448040595528273136779437400649250594328972027473891797232483983191045239411026193996387093020231127248676459295332144754776091237289299603378236077795116470485926924053146479729942506189003414696412097775142406223428574580106060462049064643312822296443013144102384868102811797213365043447493968324490037800148084492669485551525297417514846206471842211964859346698860210985881505393028453530746926168489583268566432694135541629965192234710146647727049373349843539150403001715363407142590147932911229568762327105333765693430325873497006413340396743992837635319112662851954259755169612567646657947786180079443772556724088983434663662392399527302818398216682015725795977691776071741367378293698652805617949833527005746773434323776804452354439118831505273778825385302911251063181821876711516116946128520069323504984094426804943994999310366472659960524732700490210969744932436131953244275430245112469934173159767394082541923469278541054073450347153031635212227804602165817992998778024894845474441061070780879873071412824487461113366490716161949039199033224562274564096319258291733056587834011122439552078709914913113317839822873094992837999102480601106249915647705435660559822507447822198286958748829538082233481258796112199605479909985957198771030554301671446451922386407913392392097338190899088875892118385175945524084648140380921313333015309929374293918222319772916870081793492168405483257291090772113932029254152252751116920620531785020876141477370546664366281058516409773625516547587846234399876605076348916258598691130263291121629869521384073011196436475786705668162592234804856809563854478108432759444061996963485480437797724511776806421647760682107674697979763237810822414976466804475766318535321939295569452633967702770978137767915851273178585084949091174783536133921969429678828806720001396710383271649572545890468147369541606043275093454369134822060756424828877732727766740406045092633783493024713012126501634470800269709943836249337797963392506974294603442515961133425778505994148841400888729616856413646195620336647346845772710092669279038035454121088554531189168603841409225931609342185954694344794505769977701066729238070454811608180746673788459681721089054216015392483693398916086482311709953852902156424394428240238063721235201441161245661680688046088876405430707119035288442516124536196554151704037322910390035312122025123062647833419536476332865256577023794669221206516761659000290215082026474935848666069145835759868000588443109744070846568013304149912728535841832569264279539156754532911839962059990342647545861632140946245632060200028020431117078395614201992386045942783563560720441799993595714493048109423130386846580455179922398155605037529368789865498944108957089139628056363456884123616942104399628839945293641936939857033670569121905961168129623675775618145174939758947936328212871757452772558330147675793882949095027806905051664141613134530617964735301366488201156574742685009811206771299640272696483776073290358784228432724233166839391135705583257400472578261650463568072985711139256587813337951036857892451168619521849767026130056908422367708023511504032376644303690954846635158967706666920781452180714100247582892491602516887703712337801585703194393699613332301566356837458051895112528982865038494744083677834950768089702933618864360108804436830494942635359670523030449601720979860689864229740070483724260903351282929688302213131916989581022642996550495342187612996760314772182979400025333972328296838005386108627489627956517480948102765186505908512661850302443859703433469831584932085823856876919336712002944220741937145285364129348355904657522411109308024416145435949757734918228381209491750079587113183364041778452892064861754860895324757360634120632413410286118737936732786569234056691757697302467461572599493010785363123966845056669000849592145570476490179402702925543319660363433700278246853458463997501398657043248918530952127085181923189570591999720693401054883124316471863495522994719677760499288517352964282273294009748142555192373808098361554337277583091207185727945814620167990816192047096089755267805987002395850166591404358230875561857345299156941128997721988118439698291563269725624489932020951626987196005976159256755419143314926555042840013606482669391691005569770528248083644189339292390478395354857415931522424258818451327068097532707887874529067389626406998474895586280200649315768147755351313510992401448968256758323124269011844544485157727484750068228707210556081193885820120847684064824207183455227864122050504484442226405322137501343305674071996716251683066629894052828627177309412548159180396774486891136715644381807216700996747193106630747688996280926131608947567937513176289039827503593013510760883427634779984546196405049141641254663815961540301006051164399578269935998419549210892136788780841927630351868164209555848473755050315716352475796099391876110265772656630347957487018176031620570755562611278167107987580993945976410269100941027096960518603508794151796751769041989794344163009626422429986473402655955948907453963826484625993927558641638677861511102394493323771098176417114765675687288642760777410970317344488486202947239208211370243799331163918853949026068462130130664403976507527806536769095344089268379125637048039845735787162410070699564989115657691530714918278506871809490199602437172097198602996588456671038835655568477846612667773093239621314824816919433932635543333567894488173804762636926236404691675790754827007404448096243517110547081235964712492631370791785257355062745031074746747697950402420794624058607687495762407224855869136874325494129682115442413173416460028824722645115481081094783119176973305488593583352379669424962777341121734773548166193958932651015960265712686125550022938233792154243501304980197787303206089125099137307484277103260653921394254206569618789690229760139657684737489678694886017746109421572449225826180808027887523828549141006530957964404536323851545280604075280261206309575723049450734266569282298067033632922745756985954604498654279285240793762500434314432574559659059888627175837131673067156986010801163981041160036119317609971069466782621909393848579012719125626672587984573773441692560948910472834822896906351361336365188503071013188164300054289090548378665965668874260137024854758376758643655520629337419787718694607199888601713360681990395437062820584105790052529944161971680817497616996052183687045053250317883932437661173430121542530640853181178824858063615886362898037216868829256393219984250256777179230813356580878705418069830772974091863855153455016666165816147892883261504117863009439343212246288915100507636650069754057751513396442895141042469396772321253859491439289252069807655196376009786747069351958922202673807863906539874877448217702629931750556215290436736349368850131757202500700137504538314781144989598897303354116827319852680795203166349160115743494788731374474454977901904019573010702501028807673619065060254588177895225225502410058603358274149638794421328942472096903093735492592485307814388455992094620019426843485392352200854037152800616882080109460082307887969387378640404634248432954019234906308608956729519938710298021422190332513982561099980298429338158886734316549364434492308474722285595330370732735056858732468405539764701396007862773182622308473258088629987007356981039588444576592363091140243702468267135403364671562360617417278402365775713595445592913534847620463101676334643927676447489944583594371098166968546574259569231994298917961467541850850122091682042181576658022693617295255610799993730127319622183273581487086569526677279998111279341227439774308977215650719608937526140884379650994884774101923200551325094011227485454433338115943258946129500979047839726222268480314091191916272859556006991841229376531170426875834366321891547996808489767648191278887145878561176314244703543013216530008094496864359349926940989630674971724470244605005061882473869512699200424531281129381406575536684507070638720650766243411157972357789160569832788113062133276865263948083999506149699996173191693450762553428646489474696902561032953894250496072157585867581613650482903449532216374553513819816766982176923148191862792445169387129308819907698390366288215807836770199060345696908781209129368786352059096953186561157653623627574052297118172154295341534088980286599797093096195941113802264830658637269925239416423954049945292444496671590886470119156380330969295396846488634009708788741204836131870819663222934869657672995222239809268033128758747502849685765330257852715797775666135538540395085048557773309143297475011712457741123990132133440445821345865700678908569562337294185294878254033930827114107334485032266972360829118097141434451846445235685259667904153008898320085964578373926006264352860016876356111731157291822196466957581856694323150017387517105094206753554364622392224711697288679136183971819117625031259301081885112157663063806470791851648090495038746952765925564836923503885876027016306921834591926420685342565629849279679457186838190741368654712195083405727336271710630979560135292800078025864553659261706256901909670572408134293944854878510721684731261618320460089861059400457724320006925212834846133269045031770282055332211041692668173130867764462900632563411709926351552790329198019493016833200490850156955046319471415353553067034951427333240774268069695028946221446808824420724032280638593331516325564369062802761082548631230828185916595576433235155649224146757970715551313442482977545888872378322023788822398805364172820569237045071154776418020401467365775853858153225994154522216483252722230671280927612139879447511595792826664178654737354834952044110405378460426808290835099200597616498862287917027816472696515345535778853759907756227828897034755315384033559338046155660449463462929255045997354483176895543393488276266688712478155693283304223167004698581256747507327517169661624456781478312684043822635989979292245437318069467980428085012287249682478422360108234335967211525774666652965926360795187913274972685278915178769453193799439052149366645818330478407766921692561475420289472594624245070040344017941728915092264061740320024647631558180934991069896822176625332949418240107486304489641806933372608201836059885433678436066656426929393629607735160958329661164938807989028694706439717200070772988817767810209597553641048135813441300182336698958018799499166576734788722663686742669082235832093557412494166575997297205525100831299430141857883533414537423749555460348391865640759841739580758750529920856549912329796008713777943109679993713000745546883242843064428355019733879999034575520579848420326768012216944532202723059061863592359262284187221681867198136692103700556322285615353157779419571709273208076234705914851190973751912734441793146474944142686405096949023363652353599130333458261448947980194555114557514895612677277577116222645162228294604634028391063542884117670709890830164589659001873820614987595304853815344291174772056550517179017726534798084982147361883686803503162544206124412534239065523144620364803401845891433430623219445220247657263370929647696759415623030948622199282834188324186560942751229057975349532396996460710043490569306335112588858349722058051812169233595024636435506403021303298798154084190399813251064057158407294087556595794702777788401502392604692939099736227768930593294667544983851541350230729885054435840997931055051447366290048670155858059204263583243678618593633664369560019732405539597397393367096752321756716610089845488524632874048183821796810741242993450841628568166286929935623161427550939585121042731240021125147141378793550736569682040884988034484408921897850910594262002252352410927517631790154798516598230918238657843794760553465849298065112064868470599060467319274977994040178659995304004134694377787912324976341196457561421068985023064040196527415387129787920434535939732359501644258102451286281074658512971220880885010101557761121989967965704979137576639625644332341560214732862516590151645506351468173549804328064724320597428121149453992150112538314751661679156950257903056262105105521831349146655334915944855532279658217126331363845256173735116399222769189695137066588080669971479176456942942417981028344351505654298214143003630402853299813505582119914537703356457164852527381435397488420907230088939486489234276072439932193632860549065211125756040998624133281379930001710264724671533611311179197270185289177696312148320244876187195755333218964060488389996701616398691479541452242523759885212783042458217860337284459811138358250167195190604693233953635087485763541957986705940107489254637386899822628386838389787368882731602353701399918362904044321686627860201824048992188180756199352493352178172547893637279338333776991916385231494948577668963562213800170476080719166773673580684864930458220149975301390519539310419166864724948031702248788993577136470674188940103807631808197687714852160586856176152006513863643388679179716069134175259178747557540600061766286047863347261839384990108750149827736428403055771278720618595430471163747329401290230693112403213463325848770201549809606566331881059074085756378023291423018185663566053068200500695143117495777936704805207447185546808863025255838956239659875354619620372052842075589281805863007947799966166566935459933619880624538493923779198571075813398539391013367635823081514331709268676202480018436926777211835074974095174511931242213149096750654039842026512233521245118034365887532155173727426420202112980728648584795280253547721176954006693712906211188988153854418249097047705286750513152098823559307229472453493609144885999529013259821566491717870927924521770277007289359844424421027723366522784649445764909924263796104100402756693025844859799816327846496974633692853777302283210258573291719675425403858252524343344815188286657033289928473787602465529354902299499677854169507551890319313424938807719626686100122811378909965617362907761445850724544594718843219729688676048349074446544989376839351746481429518707765788281138920165509543509702995582071248530593675506285566680078624648479401622872360935910284957161413943851326505266031738808476413458926633000605298396564198626945358591457175817349978761201064072430510243912505195238224354785471300655206035729443777734591364610944128968480890146155499993044544793241987237379636690798713121080575314675651841648619855753926049057673460870390011674278104311962138448563560023302483692675682008164953754502172982151730808805085308758003242054496583176968003950417266446811580697918170142027594457164744227763383832382160113689569046989604581161239548652669742661989952292612576143132210523692194388445011429419279623292514511035286517097752243095194535840666395902325345924479542158795085800856307310888521196094814627925679743346310533545788297795779709190531943192219187161072078886368676464724575837681307277577036997129932978889854703388978152674728444842818272419929740914202802532178328527909875024480384088462889149565714829338427270020210168477006583988141181597320410659101290340644353621644903286850965730773585964880279379815117025183892658795153961314840802359244393584513749162971498626240691222828098877075642056358927241778390615471291814358217989698364849660411898386084348107311585229351876247662950866783578070141673615155245033150623769438982678551196926258940238634437048574445120146708164182795217897708705404162059022507382026847831591197717187770048510309307315616265211587460437005070972687335798534264324146360432273619069122451863209652899020106627469624748162823178262777118616660184487508927092540126812447503086739476321966732565366399063942312720701852884379332095178119233329834486555564669520142086427315519302125547744328795669504545216433905311318987174176386431581584163810387839627230130725479567462386784276376325031376956734661911590778476743829008066382872870541174570627176348161594528416316333506805047445158004775230735136427369536508901122023721227573281350705645243939606174154508168560351353231971501869811607036849924035110625792760976654508569155318097372436024300034257191983269869074002437252636107817838398320716649316217464164528657529181861793384575144589396014344273453177428813815711869104321145655472828009099100875584756669663991801429983530543414470603291623719022549977758882462132657530940753269590345114346190644219531841403846631162775803135000512773353033342950966727432388245016040212050767886814132006085057304187344137641657789865807474695003903761381132533849508054284283882116489293910139315112683870329583751930825562293133611436746106747093312751166727868671104303867391104589112935111618386144435769163276825267815908259744875035482817029738096422118133754632400186298910750817036927257118264170447732335200292780947907716592384793221005606503194945058745547940140502415043378414510781361928600266258601034391723204331830360561375628679822451922967489470852586565391753979172706587618452223489221169294347088455718587685854739907483086120383235548285507062215799025579018622671990694594362433470852257029460912715407067181043794257620239143168818823540118932330735324421865863236698398705253230412236502256904816668716712296551484231875108601586100925274851968683838772824871337727547622010090280005558999474594269289730104338183840854194702511055627069461428659572302595390101734742286524024727927826681007216015030825299124109180394930389631086034115451407805582329301126397991400718139668816305550112630305112802912947621037058180252747522155153086041113444934133401154849979340257371988685665179992238761183280778749991565532419795524632995524522250311497247112746729057143601683286144886691033503010413874223001973844425732211536313093808659493576533972091961610637892451206517148058494063160874052695684040568978614506310452819415152873089625063703083200504835289201641532056124534572714012347059618764266738006853740265314498922779152122536061159569933833311397481127270359210065996005925857946733212135034870458147534296750084047359784021832298910255728535116910628045726772790417807508481051678924709859351025835119328885377673213221513425079973749342476890252605026704075584069905668785550098633927197458520706463244583639763476109130037552713403474937270629473542159090799804708558177913697576083717270698267300044727137341818591549247933791565262338642279943780871961484385816787790018099281976004395304357970196653141304961689141673309370662187321728084102704784792967615051110352967347228841743183864639196881555165809361347456508146259608753541227195223499081463596475899056460341730501755860997960480137217179260961854115288309245352864412589737371050121010703920316912295455995406961217393878215939325606290802769796202446398441943062387423941956366640544047223090619353999379430895772872055761198136639518838449507080910992027277234632457121287155680427448119148590743657576221068960464421805232304187827077457556412083367761219238820724955703926284264660492709711116264405806839752098223616288281379988793601990150795539269764018330052645763825776769650806505119965192482956179329118621094786260615015125517269228215697534680816761186756285020161390560272436166036192688706382791459356835261633316552451472445947716562862187137517249793459833486950674135722352360842582350323468874487671387146631614417629069518699995220205296776586516495386608996493284412500447133127626354163013702347908016361302991151328562689088444232781672901293838381366895428417142928672757429253109404108428661359077301887566306736082975967924501475431499725157294943713988679807780276542341279448112069885103575359581499786566695724936016976686360406359893523262835858739961250266837513322568807557434922333182452814192737278076786115051867939115956171757040634895627733876816306969822374915768858264072527706169689304293907210091925776304957494002549313135647160288700330451553399457210437702345165522125901068783207959095047647731911278801843779837696626208597361503760026817653769973031308702762071678907838243876764551338044539976178388651787129943030173915688852857167830605059116095925964607072533264387862489538434973576164764175981699211570102183234083306176267317513742661133954690179505788764478415738743746563178407826180269443609565615619595268721775819646003953116001956351277608768325048621585862198724950043210856508273908934224673657765268918914770009101184793718429550371560730876020003970695207831556367509526446125522014860507140261389995959854880443640698802401821491558786342597693950915119335772126998264324409450347797303498871405764430628832447476532608198420125030904967542661311034235315045012208560097781561117805817287502995644476717805626871248407031616218556156888925113993264890605357498067703150121962361198508896330234294054192386516548431492647039034933834413121898515607749030134240253645977403026698967090898048996492730670106743942797445956378147523409777428799001739378937728207417075302271104502461817463061972712285479256584362638977047188673614321616941510122880232506113880943593587718424131251376822406052195242916897813563507292188580910257658933813544124076545736790238561742618387561770796820994288154514440689017744959951023606132796519770991944911003428107363303725309090255395919877965408521680186844074346062550534971286156074484683668436311066311668375203644537009284882180074542848416785086209249212979542134693451652381734343697372901248577677066569165839135999365232714101176520946309276987355837226147547619208802597311368585343647637628434391008412965549588324473507672189189678219581439471609201909419299324992669896967833287574389921511582545515245484440800924173210780080435022098387762555931554248214408067383225514735171620074908020100927023406099642738487039984360369313852580220750374459413690496491900582013650373223572113465842372578756937493769171617886144375527287971690512147868641245662270619205610729757933510829180455614661403833190521679070528502327423705201097560146393005469629628467158212693811779388578844283104146884313132507282954699204105597047895515846894773400288298928952364800293575819270663624311886765896711427364490462725331216262425788175089169667815083099407386203027336303416022861852905214411520687750328989998332697856236776816941555826390531358856109298718978444902331773469698912277750207883818519663868631464351976337046940182902771861774260940852825613886195443249323448551725706002573820695741139627689180570618667952558884828847804655400361757243955833653372000935817820970139063131519129035005036771024707980861892473669546285947821709866774279395073585769249972643872364052543640261230338884228441987162291123942519891181599363208540719724444046615678843842009012883831563909214992652302100033061069538500122526461462675045565275555310209068036170718135916851752570141298557089306041975295653624161737282536896793010135954423735590069967497302123476363694268165935337058288656733100884799472285459352683364886093029087092677985051256621244837410677893623845378601398140205864427302863512304352100271544834288342057103146332651818370407732079996303129577313979926193033350756764440642609892532018222842382228096584992555694715352874533767825562649333420340587780100466072157027616254551058433107771673184248808663392319380875499355203176306723992470746565348862137736564243722750149868667115438501089935443917226709373223656472956178108798497746650583763051512651175458437559518570022452672072136655954466288278908872477646997033935282341401868286535367529294180628111699632122526925452195413543640992492237849838775104853089442265235185296926647681128131722046737965416596483106741235552219496320446135459895294122077988529351855943507020845330752894160647336144119100069464008922949222569261651386984440851694399706167188147029376699490663234728275127972254195159108166640792759703229246968851324290013617511883740103774761270931106914476565442895904626514906033308377705529361920012046106971015613734385960196030475074320001914600660583348676445093506551390765310625982043883845206213852236825691121394907408611809569454426513950498008841356856955747279959999212006571170403614813336143705112943118604472210715358547363802232159172665499407378348356419181820370896505545870684168480537827173820642970902546840441085529534979641655445201557741120410380784942179333042739746330921231285537065442692698413525217265128874420092033652273366956279641299155741220127183549904380011446062954203501800561743781937625845603455493073170137147554552616907610696097011944703086469075232137695187580473129984902309896504705424316572596154240598793492797681935644708410715900338188743781735640308655689254679453142378203906095802559906117323788109145227833499660524457015293221951822076130169192551583762178926867523086551474987923634556712426950127672749064730899564591518124259831397069747127171506434104077377984940382266612050420361157222305991524015215949300909635757181806136577095075325899440482530893593235302114690665360908008921274733626512546212575933920143425351839252255065937684566914293222129730076981186003673826076383918122991495031342042978270652951115970769520550074919296404661511678848757329816709044499214060530908852960335877603480924258413393402743424985454984039785099758942874380876305612810605388432565912889183553940099365977731601050660200371748897847242917258263160679031603268328703555199358851004933654946515789504543210946725577876963053590554336616889531821409940681964320596069384248996796742003847192396950632537828864869282243908842085533430887107329926323640007449740887359071211019913356022471816836636403111528462877634106635902714927919126415812406539445868429910638346447772354962714739559236067347538989945668157087325562253177159845350663425253897001143066650985076931423079511998818671438864764605303875987714933267482425539577616849949513074608748471686955842315697444489228674816993348331028444630467022898323385096109482226079650338933944719014723187286008870527633706728713632206898084749377682796088067272547522791685050649840046761282241190234464711077928504798606888726753733758425276020172161044269879591007269545407149144679156320971928145629263068854838119567416654707976663121750181460021877536136574318748684050727459702148144010100199884577061664016116174077883098681566124216137744593817244082996507675822935596363952706739266743998596901785210434862502254637423532493180326088892989378403347372001365883139324452350956874154563025870740221029830797013986313387453671090081986351155638995094930090414778120650776325262466931550551412726042904655594908696103894769719827519549065067891108518649181829950517169443974252098816579982954278112475304677165629408551549722418026189796757760840198368009789500512601278416222857573091285347007160009753389317412306801897761767796032613251738416733165386241363181690924984896421296435351362049852112075809751963809808114620983152403161870919610053336393608920409481687926478735249621308414184788139743916131061727959897283701251683744449017419538906284962642242805176559716769686193058146539297992775387143742359070620796814496769065449725416046817003648549845416376321086437894421931655359653978357958067881394015158062906449024601597701823529846967565877560412826795765087419576460133076693698361444692147270127015115257334840428110456660764284240943819908101887919683283068042367571752278830533052245568437054157850512753898989223916267257423088160753560267209181317502706352659530900983736216806889109783958911974996229808254745244214027014758970553619882667043338828800696756964123316111920726414988652598600695966304077479083114473594105673945902422051495331778030397872220276213002508179861292868235732506475636733594105936980649092132067730388186450174527775801858026623763887970283354346663747751308736936998037925457112634902633795867103981093264226340935973236286354078224725480654151699336731261108825508238316852161413024023207246925516431345089486576505022550917438539967097573334396293615073743459378348972166981754270431068092345984629837915879979227086008603581533414852969130800553116673245937095315682520387595129033946625171601637047384167546173474209592733413908765562144496401666697510877784835499638977230001446778057814034022595610380421351159850278586370431268993582887202609339357977522516023222062683035643006887274721340517814556102760937123268306534410737156651190250996855967047637987235015472393143428749425542951956875397321209278682559506896508061914596387599713195625708366604501185992124769448633311362907353039159450897715541862501839116142622033569938018973130763925454963365521571520238658841822098009595780732706633469678273168295692853549447687202651361941771430690109540133222752027495161865836749058599742579989270993522461193639371835479264990379660407395794097171032717579133204928094031883113853986434930328300634924555378338554961931737886428537799341312277833919048903614092280705430599387758092432911692301497685636480268726373383837379251993962191826044344091150057595786309212947578312989708876438203508465765053029853016354846361563583660951463718629925096811522319836731275689704214096257056551474332311916272680615672441999018708708083611342527726382864797668125850693051415391786116703038086515899673826637291066766158870809489479360512893220173198088013075725225590940319720953125442004318322566179245120660605143754272209835724327018538192779449151006658031807732128486430060120347434839552353428408107252800762007153258998509834990738419228577196418664537938751354348464834774271363665382139368235032353272378314078241308472927760791527155786073321449250449329368310921654072221481397421747696659658588034968792155869014873482674396559058953994536773918529984946269930333010990346116366630182363621967360480248489518474703309191537280849343563655295984293024309719274751062988309914198988743807651492791884834579719923885730441629008901211448577855642239665457702988022062542956920755924071285245241684207459950581482916972573333695289710652769640619310418586392108881274305239268767774751539557547350129363238451150567535794771297368989585036281062164798481209990455166275471051445695232586921640708829752272827076029755408258471595762603687284231169453940358848286468369187225220215187219916745865842820759542088370395244043437128332077297027325017285503618659064908433255529851409882174019639379395278025035864119840244822621225368433544185488007978964290651599097891208003569723497712999603104159052361722440674252838751831959586668401419483808260901830402789597073626369060010403527283905624046842695780322691938891151165778827259078953433706356278288049019210004688429476505875012834882635869683575199205348268781230161177913963958659344966849342282052214472098246090099346390580104162457518051170201894422119897376477019676816657074899556514033777592515373354170918173453817352081255732562361455745739827660035416086850756114521355648765371420886250320190824501893066186443573324178951786326208452738982669625606271524778003530954219285026165257094079912232718672219110646212247388186031722182432489225378198124705522670282097718425999648535076554727775480867775531377186321890138557936447949047655500102739221775957358059305507741752224319811068049080084393708307769601799147151430272508139439885535414762880041695022694435802063354019240927959733009497774624672429624430649775627934649947376966774759612332641366270017286045786159697537063445903012380383686223911671613940259463488172619531617137996826021209456054096519510465262912243062139598131935917613042471702192134985369095517124131616846603497077105019104124861049329254882422917113024486147612390154391584718837901185414564316667506635539125509956518230949418662727787690281463235332571260199182754945921817465708268046855367921503444593127418753648419346463569991302089799063726262099752341753237802248805380202547126708939845775659473252654840693762993639936210079959950280038070418705918163263119113369071390055502269297060513274150569584844222601144303904988516945431656448229183845214769978833572324194039759476746807185788220397686088306313405990813102164310306658390415379752608263468742661669707989443288684664277189465220996976950304236517299040459834882067726346517153418027149227607257710335580133231108390438716041129305312464754670450181472751320611080811007904850630147586660408431801850457634553616315188751956931345406368630036950259923940866609013923250856853303684976943367373823672120836407745011556655190233016011834673011161058160273476961448288139659182349647337312024097312378403635422139077317362442540471696803770809012300344543390247646599484872301715247356023622652597336995218672781096987450144192965305578679169999175264564265893070476018168184169127450385713975585285920528402041943398589237743564478097299167433359434444415265983829929437091382774070432316204824885347249049436586338669251178200341842395918360105418860385378311503400156201949861921038179750056581148119753727833459645548736042463158108337950947898034547093916023924176598008897184284211201655455508674866488333663083447011923309046534567352117800397236706654619388974383984844176994290310552355542146869553358678502618999858051040315516271063089045891810146989889829786336486407263156096776818348690969024551312812002391961157505304328404828303753702144722010197925130818552379277413451996829545433056237019971115490666063786623747223263429264077521069484002034629007876424945487596842461777992224524009193058538514596815657761052964098187897262255930065718396590748273450841749616933095324296393561714771646225878372958000731344073826292973954814558219203994431710620892728543864765850986999491546392957706390832278371003423972821356550121424010077052382772814069725336852074095949163736644622679245269122587320564504962207948561100718764736557120005311273905069350173560404194206896526803418378023271218011819385403071813505008934523525155841011352735397156858328513820846387049448169496235717527016152620092662764178459591002201710672889459269173940257910170189115120549742097124769268769236659189763350729544255093394717086816119337803242359064617185014851517211733796847019714275437732084516771921391242010928326840161210221725580553417241642295424580100886389054611693291361322357775459500478584706604162517549362961800023077157286188571568056798875036871390775886942386676507288207280047997879538896034934998452493513814752005515141717972822885930848046272380291081814008308927567015316240111179029527225749259841522213366489841014470080038495519396243499623334750685491540179114831654408546214391294053777243517166529523986736482212244737371736542783823079159268208396144491666858127541587511105781046530777237950179076048138336296935302185321057834412451425685665177656526804953237446402948972514794459116894679678712374312631324212157535887671118045236168712050890250604732933132632486538525939540943374411203822783442841340516226281509991041517995664352055235521692880883292351376960177323567039240401902161575175207013031362883739714308398750946195533653427117150021617824227598530152016773668845920177651672126856733192316050622783126696360211626352432525710531350472210282440782782672206458397158678282501095813003016155941298017613687325876464638742777649211661091167853714437673228178929628349503566745916318850446129137398093438651452950605538968990275723884004854717556504130853759561478806557825038868892174445773881121545818572840666492542798107642400883288840046020474190721653464529680512986642395223089178992511273363627694985709199694516547022222065944136354582471703221849251787234654228456565650788844598300868507898675248062141476811862666071704044316282425566306905504264002190185980751071762584461668655896308859907550579783645589559153936835059739887464041548635455243387730331829938191774509229409504484145136054878658171740374819177422990983555059552855735844292317295703670657597296907845867795909780396432545256674605476558308615526995817831307296277141545668953357849121056150691954716932155923483338890377802852889540308168041042157776432967491235811794483356014892482456685537910468071763755736663486269802969036743514999528518166740075517018901069098436252539237858303059664597219051866150552505432037621973714736533515375180254048968841708842712607863986687823708667059990498870075917203928105198958599011728718201708758618039806920070476716840157402996296078993608051429548775731775075457216952954396130011975231035958838104043627778533629110113847201977463835938442278715845935434058192565559218181899572815756721192412395084620499253860488155189789987798782301186221771309589234609128560472763729298616831395478271151206754001511150964080546287507565313877072772134357120695353847086758177601510349273439164304691536300640783564042994623787816357515286496156923680288441530230694110048452266319595166492217870871296850332757698022991094164445760826672480474071601691471026802314704604870198547168806779158921111216432479451837704076868935892992374843147024097964327495477589566772233832748491268400952662469725896649947069819061478866049693780559181198576916747909960109131038129320237699728680349585140728429995663153957124661957558134472416834714153845566799595529171995873018764538238033639917917010024971002970963614889648076894567619588425644164731200980607295713747006839867491634496861008993670138925222883459769038724654881213670384909531931472895888469500770226635173771735198651522348681534476368674851128144178680109362584966318600999791598300681811726298053098150344929818746574968965899712927534614430131421602919406478981232895535399727264532477103475024661934016696545020280134039737170278968683112711859189401186866603632431621670751479771454710504696994737393333071443943321550943374024662261058641810332441708130880481273899117940810742952125772391074040503602530013632414636091765145830205151285598624806304608762547002016614202454696816823933331638218112051917900700108855663906368914712994050337828421401541350237460832638240646961725975271825830040475917101139172974970822840801204089180764483636035819692443350913295823363932126217427269888269040394315191333352382369773202087310053067462323686823522998731932633502450014604113658806930017729148393410877796764500295596241614300293760035900829368347257896244531817590249517943350363562742429495310325775969792090038002857857760770244932791579063800125080566599348877777620481999859390122864413213515377595819705178747217810106093305985727356690423991259494710911481703143802254700509049808489226401743772164096142874087672114896148580920912116936318186898518316367899600228275720570018038234902623436966249754389757296505914034492284906465976274403478567050047889475807898092779850415285194073533041922767912844346250249448864230160658192533588626816511377951224240464305881076751373876358181901754019004406034639053964059968433312555911851764287211529691136827216732846934369094023811332026171771968475259212962337608985715165166692313090495143930927611384096112873070611388394152739257668558773805517721700754856206192207810851352635005343458114123927620605048130691689581882779925990850202069571039672371828018551018963473588606357654982618037400229283464086522340746462751147450339042508785903028345565121508027461305410115456011927182241856532171183091738428572758710876553600477060853056069821750067101357945214554897470131955577850032640641642775438629775043613351871992096665039258601178713394005861262485514267459971825035981332146955140063381601044381858068053902868523331529340115575480559134567322582343922357872526817840563552762929440337828883807238044522135596088804558294162393180844303189824116812749071377858822838404056114853621677312471797946531514537818067749325547356773182435954599195917334501475982124007423922699538716449682820826205477824771888294345533216093973715863460990227695802855191383391500696322532543174789153499836572393520430482442502647155021367379620799790983744710347474666148422335985267806480285242457829243852867900538872423831441180392172111507937283888536686726723147937936287300482306405920424822302463102875546705633732047440886610812909244737260453038387434231420726458327324839921072857458631415833611298363664681516666424240793297174010613323936209764499755024411410540690182206161325670354099022616233532999896656581423203983206962324388039552252548754806546500691360736585472839875261619005191200870523038435348802689105670521661399164029702491041417826652192400543640169907714419805195870459294241793860589879888095738723861884506263735502114664600572275206391723099967791186315885994868404961327426574652138085694527654963214806422285355522789845676713347915702752355505264532203951041201248876096247598279520147152652989442314017472764461110959069772506598484262331241142873543403778892885246505159566950110441547541519722848296074437337561873513512859561240513154247117758000607235849557172444782306784706235710038666651810781859194335537813415190975370952866370779397521895828614447916632700226426850291609141768208478920658836727737858191112336166762464106642074655956422834777863572981166858760540208710358180102631431968828535254452019301831308255649911563766050539474050047073183586711086746491064318075385574763886545854632763169742712299959554419787813515294009680850670751125952096644769637832123325923801493362367716268882858541587809470437093315306281012606678759689652308350525036317457493202157433774914161482764085905584374052568045783144384816143400500361687071584774604679528451027834160922464693046550691291809074632559419854132784633486506030853847264477895437763337126923282300310851221917378867437721605600740748817370567310885978644198328751815837506123211708538589926651188326393547189738000599616627517995569926362329699470074738267716907271176561275168240985426459721690388751596431730499826087220782612594785104682278502655675818268726954949661504554234884976952085620168400581190785167254597083696170958530300269754286845294294764521010855698915188392218843417356823701871683852642125260350837275779965605751417519068159109599510653422676765690494702730518779482726267617779568163474251414897794147284269081455016404308166604438582903620991196096192460142288954189213724221474296500285805781444581992028911638318751049162824896941042748359243687393090643612609747609193925889481736611500714781276412171277300592898311189432464224537388193206421353920826161225045818463941685716119038479534001934257633903311668471207772684877920991444686921704319151138337655324945873948157941047700707354214044763635769301146844393155466975574978649875373385694462190353399022948803540008118608574035460495939431929549946213237763206692735261709535500563092342713729468308641827989546724982198121402895160529227243776815756921799382877977096760748771328223300495269595665773221122782054216185444349777114949446074075372020654293422059066067463179094524476535972138272936220374476503574291011448408845890405619829574772891400951279996286624804473798710818323934702162039866036158347109814540110975806362698186408713726933469617867900296794022110892001690490681247130062429432573447567535604391415300639910646310591273144560779432483730148388159405405831932584306803999987746795345117272346846901795627782929594051430424628561229174314713437421124157968497546132106973185057661184371761810676705918745940808067994747879400145979631265367675986807366492348731801255802432006477088455892447065282661784216075020151254289414761940819152734705127819430598122170892640452202614410840283560247657867408793921640965511120741435293238824264754131117236803578264838042522011432832216226438319952299990130232860006495992822336195526109762123031295647833373407832487773905772076000563737880725475760152161630953119957352927830380665560792099961907561754209405791426031948044228980856841990640834536391586444586715835331166503449435032211996605446038523255419261643820524862652898027561690904624307832855185791122838152924954639885332766865036952861305211099424881303624134975927181608249191750161411147440872385631351174462320049971457328490219558986557549811005631831905074582942497562978981444606204383112485556085986309835927153083759744455113881089035373031508837689126741190762089591186185962857580993374694846644653954407041546837251337801124574834275039107335086339491453042686345060230201133754500569772610503084691114571071051414205352276698151250275011620045068450656056273138145691103622743098958166223374853565843126526861334128867928901594960014215328929956706592581479470958027892169321540462642189705982109035030324405952856994798155544351688427050776549452282176517114678090865630449686706735541692313876244349463778054426964851937959254282749480993027048666109102045339652778720588693133888299468517229265441228950407526356818877641475988189536757962626586630580965747140751430874910262454996770116976415886622151591364744957331366906894074947181452023565072786520443110963821432719062892683427820419339125614505137675578541249077470853023645680051340759445224578594880775866008356835333351993042610369802873139655858101562205345448787070202634236325651542501843103757900743082733364339155354960182880283702650310513771211330638159695394301152805466264224408673732232111090180102161730300428659376682889477944655690757057957033632759659876101529766778974234831254877303490516286502342732401789979907336576247971452866885672805238171384720364501858019564214150313407461927935559047048350166964672529773255664439757972219933580159487466610649789261988858012080975254672899011866232366262714409698779006959703241827675966169137055535204281393844364520104710066306082702456005202968264308665342111083932730215228550776987558901434488944850398316467331708398110671647880088440461908949663585776022062785445803334078871088806244871498669848923728272157701749033926478496259205870598619432040955975495517604976511861960012515562402611710910002197305220356411129624603826816873130757624075462130557105371819892697947883244775235353746322687670729349507935185226504358790122328906943459410802471262265399835203909364486482503874172071788129667168659127313458370943840987768250343079588102963484750153479948637931347473776629474856738411034146745626525778025941665599738120647959219700428796565294296912520953801433584736110222974812817976551910314934400733731147308483281313788508938124560575951242282789849308912370636803498514094605430616519311870992561313528220573326435585895938280494641442093648243155565258772076563675959010915311685439373873846838040396595782901173796212253919947999584555712548155786155756424297949018896904846921756932965761202896801037484844340704793444976234458072728216656902604969740352152170984657376090511442715164349985074238434761267326647497360447175268760830314073116487470532008290935205674088606982036079956675794553034016037956393459368909947199681553711115490357791206485763051793294763215908692823513668986373166957673444368168939059525785071515989819453958902134463599633435979929705955293435429730632276805423383498851808090299668185304740109741746549403324322873843261342176292197873972812083549054581573386264753247963468988699186148676687876988312748025765789840276194911512869554636835374757129946566158823252601328005007232516881323742523459710606372120682947420072697923191917094603272883377582410037257223373605956960636626105400250569901521237015027318380029655121213796247214735515798719325102533043935568905321012773531106164175880908065255925234420611517705460384007724869158154914002184924058991062426027745406460819114657451429034559178041741937239267876265414380097214914944127560033666454728666568963645929132736826490681502820293183397597322509402374679602309222805242330600652679649727100142728586374487294379739466520526985403376150060148812172170113910931564834786597114291572485544059973740571366946263524026236765384247647045548413952189970481523706069127629565451116002064304141219469825310938837377069391437111916538357850790250761041862160291634581132961685491750395197347357607306049698488615725999193511271882178329886747065802599446276775573559987186198474919240279883432074019907991572468317816395371132051761182439524519755015418130503989264301551722423507162807127854374379053146051391004294774556855117164524231790237197073467054187007853117949767383873800276496420826839251405101461930596300644907178679496716337570815224481448556493388451345486443183563977459915163063723454834327875522278146701412626449575741956821588638789208976576763500884948795168334471009503689460983194496982632707701915264244612783040554493863154675044746451212602881687474660492229159723201211356435434905598105879866896354355201408821494923043051778325692653987866884003973858477463843362470242987027515429260684405026897067620268838042064820180241082425318759273793831237242443190103294054731852476259080380933043620044604993123243955152603643965501725345370771802821655924128618172334013704305463953091117058543678815826873240911480530944930617617007119053958315506308650193585298580149033460415328377021748453089555646205820201838727322371863533918702652929594871291924247151889210784933790001918568302922864024020139403637672216657734218903145265721017414143313147500238920922427242126920704330624945947902813115107225820651064756114474897575716054233557407783578927572351003218349670890989323999665073375478194772654127308409941287833612273063705273793190720152272362747508339524529863197228174744177905631147930792009561697215944288897815509263637251236960578836524033711673834657821499025680386886772563692023139449166444879176714066918323571413291306516697901444784726094825904119070087882298585608206886948664883657023631443180689558820384723742059145327144847629850101702622531113580523751003477072553289303435661286960387899701708691953026229592648803555392660662111768380830246875473293268305485137403941733777561082768913771971602293556139999630091131114867058266618943308164900110524253339381693600823156032676507523385821650366471857200175820701544824227417388153926986592308538819349804413094254744838820145373130814172907100581832743910236339801011004529329653727507777958313665757964481882762697980161151116875175195780059224936629271796014643938421231336079428672886973089872802214473771287374111709263765101026404760014095584599713856046052817609750927937445403633911482907337473000944417261700386046100455228351604821564042512971386396316021375625888653411880236430259682113424769270393685569583359709984262276764219500450301235551885793550664475620921293188602746821880602911438363085177085011394039726372617237276955716687293321903185721067093218695472506020951078853478911155389517383474269156188047415679345568461589288449582660332080479691381698137025869737200880945770962870088619645600679487594969776904216221476955003359879103857873886601886423932678947191102614093367847663055158478814073033288489828100338247249535508451003384849298781655182388746987285390232695424815262212262869550018883426160617072140291351214061174242968453958998314414419065539975483490331924362666243591855313462912565650931439045810559405441408838816030248899033056651914539389448378934657657227002610215748193406668627183402771680274353007730577311212259725156150481337471890260019591036706649524084203058150486301531182353890180071823480281917965430808757387480752442245632373737434026179859895069045564892358932224371692644926806492774091179109974636816408905269587681342461066886688107271970263594477206340351588533403416026982114509144724574480478571315826019024762409602808235331438974793866695627207574083017205765566516273822799726390810353343674146762367041045179964541154117233683953064167342159175830040982242892528031279585931080247441785403703884456544622932491021256516370545410536970423814610281624684141111380872188246881225787245096615363595619812314447622359481588103764883622444759718786523468957813169501194562275139585302955254542745487089611493892300499300413141565412174122520978670869705619577981963343305121787806021354728035063765054619452309957983964206771078322717578377778284933606887121839117622797134638129591937021923184652816545347421876110764968731664681205253494976254345305406163494526779778412920489397914070471748475601030325858898502007130858860472702242497974995365264874947423569119103580237157705137306260854235285199592836796670898423588426239114861751484460853878717656349900494659908766786234252098548171118335944213026181767978582682926936169258181213728305865303470360276566358610988953601135996724358745159683316596762139787656201268298219392069260862290009075242759490553877971551755252929301411252221148700021818753056422624961959501416539442290713880757823059851938447949557033726785205112127697037249600954965348831966292348146322560111718382096477663335008814120217720592953402475890462652102905521584776743562146828183010410004009391887741589458233992499069377354398629033977882249911422496013295934189960568389684300045555291148504037178569499755216899743736739024042323392243056076703776933029378161254993318127173023069214623282999805449659084060876741355541112240209655660453019327611149353076815694589977087325625552732047093881963911236937406558737364626338612249161492188633094180107128502070555571508134160994844320296388340702226321391710054469030651594517531779361947069266731068914521422612805022866876959813424673876790598246964629563158036767057099368948597639554910203891254191382983572230609191151898259824402275490289303397705202632659193318514778972336649178122521707998483989638584970168175613941784486093289294010297357001684875004646425198016820831341801629495336952436896367059094607356842742676182678914266605044115704665765122371407449776943995410848479590331671021943863266606709686160455858257900696977372616378767105624524195761913302880191985691466843216598772221412077450215422916910644300703233703074579758649010652188340606421886514365994753656484591971632557773797017962939074026642418774793665860701272232215157669037610036339821729522399464366401082535889592297588186137686872811322694382225653230296127086595407658092790013552855332381638933777888491156760496495702482888287254178567762910528628237283025052636243742580610622323706654528285917119653498238252668825875117248466057046539661432433261378556105142548160294693288277978872541168123909710232041819945369189996989615787163945721886303991513717302185718423165509701904875764390681799184729417974100935138079618760440132462107923484220134675033805252219833904929004599774882425282032111128986578925938195017594095765877038114995285908430253580344451507819648335521835797649170852563513792863876856749817847342130705872294622237948872237562397570722781623055495906832456768158532930575833565001899305831683485465323016626089669918101256940555201198313755225463569656534367003469244519455338422083038793349427759026562916244132859802845410982366117560042392065584303835564250517820294986110579883944500715535026161835765325243697935264260020551746770104066902537575637000340102471831642971130656992295125391821527480888139328538675637061411539002518947585124867442681928543682991408973937321600304283871006282471182687315356719971911631584831225594588033485534947408869001462869518957272857641287461683941306332650927482912603508283803434862966333275702526367550996122315582039491173145764234295027649975458850926179457328133819640021001797330294889303166859018896292596711252693434542234388601504767195483680152645078718924668169493416669214533646603282749268039579854994401134409173330910054609780122723082878032367274705595823163069730971251024472101358744824819829863076340626343604452634893856765321674213957805450392946955997514642296886245726976348825461177586376254294373791629028883321264510333534082763555772652068520254853036787564713267949525263994143257813054805072827433460736226257529029658986029828086833549929330356510121889941225714499626346849505756999825929100204682603160370270154719433432136558964037540706558714800357974897265840058307397078786030472915482029378991724769204075536664012234473067938071458914343624027097948793448761029194126145836959740311928929553334938469367512561913510650297467568086647296649877518465193696347062059136371495589046516011537043418230663286803612152541038326709602111189698748347264158910625564468268726605044329641926845939524100265487577565122108767426732700371901306871913629938708900813519560348578927702703872333377360824708488439111005320427088759760545069636666765109877255331094823109299226031232558482915980684130461901777248363200345096646020268549459574685185145520595044765097472514505712102291121081542096085794326543504341363869355862706199251415601864502146994910180988519507782654234129508881460509692774874903598476425196886256964876661231821056071664168810757543769862906648468300434366684767869308631346890788770870901587851384979289183495529499832328979735883624714662230361384570019529637433348700733201430014593894049343828099435228906699556823538384613646190164643625859988660772156043740279693420549691065029127941194495492964169973190905467795501734072321901856979383211515979498505061606732950624282931086473273510029125794972271563822479744773482825405901565615885590349844002034261902781214352243201497897342311158267310032971188494801243822850188154067085285009438780461943546181561815152431365650929767515379587241367195508456637005260802774198753944287055660919005481169992003370952783047953382733552221410273379891450813947910650517114848637920878245588430460108897129744799285466546584222864925363142616605606846121127055976959226882549382417598001016683378535672070859284072603247072803718450094670400738883871314619775452929370506844223483852075160418304872483446490307473326292075760090917046591138598530079743273462155745291155895914033913865991220741028675531125387778463344070778017172937926912461667275507548512612558270680718200344002161777441853129235568671303438317666764592606224325048113579277477170956451953171976840033056503894933783735539423600244610519133324767963691199605843492737582968646460840316885866345074075881577180672970869136579965796722447416997818734313503798647758646537217992872649566370067488628604616971774624528062324176670310375723313351255612435503358042744078561663881183427977585786228170671162757633943757248599133204380594681543074459820013358899985342752826700833039796118490051450869744800069337146308127709303939819901959083559188280088815733589365511377562355643978848778151998513178116126322644906527284681213538560919523373083076034767464521822975516320257760663769847926730901433474198376551497357137914022311074908596214897230932365720792845029775388238173354482372077232688555209750330471506446680750418330963008134107029411350611819189516214627312259127989065274611861922517512495694504143417550237166419489218153090517163772285009221011082368717038650238809500068553989878978010751179343541632841126336814020741031012421370942687633067170363103330032002329388401611102429104362339598601631548265963918970187314124714161089182027340159442154224837131859895311858819028132171893287807591119690026008310579101699776352893728814147711130846552182947690803716588468655199814779600318825543768863753996712938551563961823988360067513447657451757902597523356811695159052446076943688530227345825196244877860487888849820260959184841281014914757314384971208016731366035590786885093101136240066923778889121961007218105381671430347768799653565533352445557760928546068414731116058421848843579375774804646795407373610138852051287083930546931490757392062168865627819568678394502247795571043104932963218129557769732207233900902075380436841926601102631393342333211328762727319882182442547006586268096241242395018684840535632981504304570890553256476656982053111573803836966575809240433491525519084543936975004841497477972902814185058998522663083854820107132687918583935316086950318448576172068167989902966443813802337651438656629552628250159041757445067342892707653040981514140315957097642604582781061575120502120222848613295908241698147022581231948100285148601568916231031791165773198352324552436604852215650355308979426309309490462630218496814829689827000137201776567500017429258922918808162701585081362316941296246933213774510754578849276653614668831873288726371875617179019647778891460734727556034079668605907351657918570064601511830397102123543950012064418276981317400461739225160608882455241781528550075139138049178271355344521785217683833009181502882249614204202515896742245018813974775936922301569494950967960939784607005288595971227924491550114518428283778986970774009460396301744586732590028452543388238908186106538249775949809088723112292465182348458200619794544415236553140777972340594293109884673591356572695242043093340515910178095978351122160302705128946936389221816178459519766120565891792545520562502014423591527428249619870374961527037606406863254549027901218685444616139585157664717747628656325145790534523088009016559161019855387760785684833071540221260555708720548102909141180421255729062131439809511606279588392893083389543308970457242488956085934856172455504277597392457009501752074498328536125903808724916800622460201102097436648013458896554876618394134286319664426998647091866216582002530407504755666059163592230721761695911555642745017026081124852395212938334238092421039052587020231679077943627690309043957886931828831137504198140011071539042942435530126344030626632369724919772876041400120543910542765388722027531501466511065555814865330706229622847360530081584262490849925267687813580898925117009132619058092999421344675066210919034360499817930463026364337396743087771659884559236734589855183540333906635218635446286709475991446435752254181378154954945045832441216841469268529171220889174541906675897778771821042080377371707746316013985539132604442935401515127424862804113025108578251234542552390518109985689378578732783916799812753452023308466494949526054785254327999290731606531004946885677666951590620576211559586122824590690378012963289105097968716425783725981428899815738367252807040922968431287944923508919065443894366374453257169308090976863749447527854131835141111825485086263618933825993180900123954158561552438032219556045354330366100077756069521187487743199110593451257634790848522958187194323167004292078466136644790234332318137147742390948079674070563902802793073070490941781537877599818000086072310745813794937793327139465715475813109654604329125180169655492773926150380751231681204109662443381316820981598982516861173820398621414195620147781176210828611774142292927126574167198657957354874482041978536302625027494605956474455521629953800321195967436442040915615369392645525165631224789526289284733727945912390545996279230468573879107197005432556076019343809800428859978091635924631580756310066137717632857411153623664002925727740034857688708731657321009753698910978541278033199664487327590477275874654213958622295368514526327009355518702281772494057637954526367368151787527107641749379966204192678621136094199662396921685003072086136888212877937879369006119106176859808989497354026124894836404696032327019933414865609468612736588367337704864312941410385421496256267731486168620088940221709477250569226395328054977481058643039046349811133543728958532475489764498801932989760175391407111696233426548456949698110863534928471181179347956136600895601482617802543672379307894644306224180404528168180963169461128868960799136908071188636269189743809629964478562490228559581743220645860399538510802688947081812344247190718469766473233861425937422429234327738351622904790187437674341323806752811552708374938238751373690923946687699311828723141655894893447935332671448945512382399956736649578484061264185155588427509638168899077110342298753879314390487807763018275951092575751510379020372739387252692883857793977594692153170508915241867848742804912962624021563971524371490240332697538666148383416059317789786240208778572917307788559511898823683509025271999521650817641596641420231460308493158758202768662398460911577223337152966162978984656144368070479283105350517493152311273827706011003751660725809916621829738050776161208722500409507844807539866239341307146340473942397871087843446504118472619035589372188248292901165160520896389857935249691853053579508829654166203027594700223830206305097311452051927518177850677036849763169878674615579962546727352326867442061442037362895480651839586866291108907470557430799505324815545618006025610493776737727517388457932385604081259491598568986497185929567224981601330010501363097973486720637624619657007620976349584092279649418459763281878398376436217644956415492610221633926867235073942692474712681341705172060351050296288195553299903346149330899912085994470916373924514310469913837965750896403165845402535254976525036921216724395754193709752419595996209225386001435519876792667687255597933492974051549628826602737437883377915289427430135642767287320654787268559164708945198336630802742662963409605135205128020258583176336979645914292126263519421649501751545243936157586306378219296852550563907829746714182350521885056732906463245355160713449600017133788394961184761609792252283881507723411248350124332934477664934900517597265333806235497443135018893688365223137707097171782445504863393107025268381729642664855290434386184522487441716930419419983265653490555380920275171957317301511658213906069403353036996968804046540227714000717954791700265700083366155891053106904107930071794843058222023166313353528585500508595365754320212410176055616378613007286826637036298072772331504397989650962504248427223389747895082024572222426482473837216227150865194894110908095603709075180594300020061844818076855889689357003587063826240674023306395899049493233727152960696384467464189053720079395650300544805610591129829697219367307555911362926096989290505473621224083360939619503791719293133803161289898700544288098449763323479233224845244724049385592222317081317400824920333847197708024850984797958127854455756436066958534589063628944332650982668363654439620233733109254770324173072299254353702086409831277605909756716276434977465338133227426185613637067067660540579835219120581383396051657243830527676606967999873931460978248586872021046912678722624581600918232333974456794535882918555713911771583243162688054066915619586177353546135893117633210472893495665418854634230865487039976283122779284428051768410779483159086982313690949375299851646520923749758811516738518041681432543047857391442510201137363629168504241409200505296415506145484110941104915416711622503853575628667864229127862767034254571247148294286908416033364174836408703465365274934297988033593088461524835992792064074648895433542863171395809373948179221921362445275127241901072700923807708639830999824375424348779897447609488795452887325277185277221321999229470005986452706853816316781822134685691150957731266618157760920015973615324327287649354794199218097785249571139378736003906207193054176131015797916080955799840953331631068492138405505671282128358750756405071200246654194009883515535940030460527410086780721975643624119974518021266557624533491442238091611682980877673597713017738503449393913076229446876486984528178902646992139750499809283522835075672461483986911433936476541725373806640667342229952474218552605264520647769461717083785760869055585051798208312680895657132498448929157794874992681006741242817434799148594490266835151273161288014355580831480307447772625429337753622112996402662830891977274333053211998314613497372679401115150926761090738705947162653512016744304809741668583451815889418330480010952111849557788989023095294721009166320356124462659079601408555845543505666899293452247012211097129046360540268609436092122683050745806233828211357798638919715195688711423906678299677974966485571010355327062293680521337898961076334799594987781939877520333450441868314101528219531521994862753720518905680627145947454279481180329081550784748980896949804668929404237696608262800695129711985132689318831432443386363236983995381978109770745213399395450270928498387187617846209469109296547276612148069460222510626147490985562365180957009037296976615484062821312520055784629704418809536313606737946488855423842589375539925547713038191893748990186759992038960509514309502953436660945446684388813602775234583587121147237397871699502660988441296131525562285443522323928263027624904996646197090035713197337987218195023715593753144872484574807309235008622579168658191872727679647921504761735207905298689446239858439608337990646247538429565627560541511463185406815174456067777908801292484852829676755146420898829737086804082680046258136085515541587793265814609492689487128493607294114353738720726918324899837431262348149779644304604464529971097268250799972267011929453154291946095284765029802885676506094053780761982156823631601850152971503297057745282843329273393453927437665341986032154554319625721224909632315003453930480869499308847280700046135324730828380682052604443254337168125090398179532432548353410761012900171312345360317975740280207658169863694864136568568311811738545337155429792627150033088715111584089325185848356000123344282654645558080255872566230203157147092580949997750757904754252655049329406705983757887019611060243241666786228612231543238927000191546350209820782368929388546284191655077374231177088979113022763470527474246311488570584817909994440418100699618908935136214286028594513258912636302806153750945970966353906074364370885727018637455996305196099216225957804563861765546765449080741411967395538999849095714066598339738496234128302225666487920334055233000832827202694378269577962126645468012932922704748767012434116892694870407057080279349787399753110085531244561413139036615617204528025867905873651653029999088829263536971417479448020284033653473475204416831001138176164360532518437561901520357950952447193044647582990766882727170267378490778270480913818897623933719064498206013740070277115742115111444518376330514336338060276126235741330564160510723756168371418455414096828357451558315002079107909271640010052142596798260018672890598972007788272036979261794057993997222242027556059743961251713168058703306922177055062450540855773121027533795648326098840874233074462842705581421107908544557915140223933576115829689173905227473388513052398644960848570321306158816554335118491647475869273868372837880182255034098004297205774932992405078210437680833827187641030528882524582861809582099945577157279850460738210607965015214297965717654189387875641938095070743335976550759648021325300087352190076683706681528395569364233907157737063335054071355082820033801010763612479713724966345489641837942269898087678400563174186446952360719200017614289857996340019485519707097983971249173945723018418095446101766575492933848515001521216318189060142368482264329902605937979780212403889071760458358511394131300078519931706479176738616208937215872456212567486672343560040597954344585750521936786885658105980614153730000235680327593961408710094511973636078247888427984194572910018169735989478396236691893846892597812204940948410702395877259396334210483868390175896058630408987122555394390796617356831422387833862455863360297451978761924556325777416141668019599893767595426394214902025016467675561598800534644485458880731660600579042104617529097888550671738034024610409342699206543687569667203663261661116046010305137591532926311709256612307485489044983947466240841016984372980054765614042489814800243032805150373585465581320720622164337808067251290763877831042594579143569235385890619569191444440616165704729602721781139296988669132597325072740655643923317599759820451953596233188024154660500765171999195183532566547768834598688239278867176630775554514016226942219788784678973273701334200487782577084480511829781825581601357505674467986728360403261317388853044602377137635907988500629982924242496336313622035136127538736934125430774011026925844771968560146697728951928586068531748663786453825029169579173636798541202071902765896011509440998662404793112192511926609343162828289445477693971971501326232123580865053792235844077420949460689766128906089665199735485299400505992798366744175915300733167965049042144340188862906322879569643556007527530750350357713890287015942806184589699082511084845553807889681944084506272944893721746654393033340439573290472835032973061616503988786023649103534529507393319443602778807301714653395695113862802992288869778646631283313424910588706293478026570953315336417113897184028743244910036447723288898914687675906823712683047420367610985327926734050480766965338496881217704930105343941872004815495882825954147643234517452441758936937116921006900433363021306414247267526430646046773897824767955748250711064187549490330776089313737391593796427128367675163179709341953952677404734583891514754023870740249103653155413681575054027837413713662771294671271494571013856751142371690334588503927718569183073040168515087119837427103973477729485679044937245249616977640416314213153532262798420789152425753684183173148284290756738227843029493201425986601658158808315515934830793496234900807401287718826670218191764557382214605039820199955819336878761308209735658956718931062111219267656251360841652497237615980165517759814619564881041218150902508936751135532821686542979422321702456956926030975793444754901142518776562641348148417737711181611260797419125346818535713779644185188360837633791939873753673223901480138726983674389149796584162630106657908413904823282580309679059212767580953442903344119009913702902862067100908617349580895948868198010726846488376922949262612310179608859377002855510565058449331148045784770009902962688678668646206073199074887803471059909722663241144322668196257564871291217332528388967838197363875532080445938833576578344392964224429106743227656026937590057149030968906850318419714690047853733551546686499455598176692618547347261183025464639474023659915529168121790721376037445281168302830023409125809435475543030173272633606060880553742728408233248430216801480463427154585750855233552920014565930959870661812388353878353263562938708097839636488580998177140871164839357914660120837999373063367517131413686693568714962464440566396990799516425788417329034070480598549475334465534612051515633534308751761005212345842889897673398895711469156713044610113364373007514587241106592897851828104449622632430996202220812857114894951054353878193445120551132606115625743653870642168537356770198473256427642993719454817701777119057093583124667283769312155343847674755360460207742254550365271722533236504248149980247621229921038774089550533429065568020716256900046641187531084354812158995972451668088233669941952004960334243166844593718219547249613323748409390267792776423070927152104792141797310706701622839017480236073665168431095734924956691728691224543711003598070451440585498277671363801851094081610349097292028726182260172411055515944836797420060476141226189530382835865473327576310132179394814750973681572724942519249028656963930333846484023780766848715664123377747715682263371949748717687678780545446898062612443119454656779162965994311422729304487149440853793658108938158216929913835714588096381587818032776089183606229759580299916961347319879863185737566964925486004735999355337659132370181253902788354601461505654496028286335638361725627701577218675954786019049661276574015157377233243899267357162978713479174670168323754907210356364994934478100302104573650613075752174992163562911502598731333469885062989170478687778635678156588516344535416203836332334867142674322159401069737345607444696466836834733056916087257006758340318710709722107098975852010553541393011585266502814247645973727707290243322095007236880419175189040016663290248583952317664116642360198325247076135533560508041136385594546307192303673087351248228662168278954976507770987018853297097759826117897298107898279537263044875674192307591159864139296693149996304576785602520863581260033326649556251643124186795546212202010210993580033007190813794555137950487126421177034385828770989044391268919433957469861338173160615336842695050548015157327066545779182826823158539287198981130649596353074430966393651717953892597168213713685353751471503162427878741252196600700879471333975562054880095582544054344567979610404788590967259008377360756747876687547792449387243277325502376026807988940701275522302368115739799005589483514690280787538545587086998695515228927438987885851380012712560003157883717108268973108890861537883703313737163365437854287741198134618830385569658768820501430557311012295194855262125469315467089733792484237369840014770785763155897338526619114552705011724274251231156154275042510436122295721869312494389091106783292148673452766259073230962101454401221004179889498783430403356631604666513351800483971810659590940379389053592143310424342710354470829938425857571265960209505361469211047892786678960030516194540753468684314956728022125591353404807254239908014793926412851233119674466349950345037335438747410892191398761866662004392042303883852102649191601418496603711122727936918296434741025774521995799429932228677453846386260340811597905393224727373223142948102308216292851898008289167137551889158073654023850324787806455981126631424816666819053675645930923935584862240896422219436522219156632218388176370828981742311940074308309708191668735485987430172053003303796565712824164038229722906340275588365913885578031996796605743729361971211448060971627087268402198334088089930720268547806904283590333462667380715216045786506935497863797451048653932387549589573352372593564334353469261596006099471382439009221002437300905317935840629985631972890542369478632451288246941230673037963309037267265791925386732491978103105944626258128193377373679190703293605288045514455012292411371181076113606868853244687603379371439776801544644096539678729493307483948555927212085628672551378887543573357268494237102034235208682851439529565418188520459890770411520270975250825177518452494341213412826826597225482327361097427008153696569120053636791875476772872703215345076877798238720080279016661794306887782874939211249062775832211189623270031064816723842511452239342730672469170013779419471820090273532777290604051450030346223215565791729180574494654319248909418682428597733712504246145549328537319950382634787948166539873347721935159955551759224991526998716034874790034235272534105303316688567277461940335107780744579315097186139416925924725112316177617747731823516817594472643514382748135114974985277079884848381367906157974266323362008363726310258449452384680272493615981473665713188486229423247826112603954447536351019937710133346294944717546666793477520041840542930762371578208376481262215659176161459482383918134540631893815959293477548728566177744837050726112802341319900658555677674895410869298372419032615958112373483092438429813490240739207390513559072301987492271509866899480572266060609345045473972102876233121427106825396370897629089487886134772821275135786127908877119543532139177744553239806214589499445884381037725447414100955068385934521561548442664524947355691269576459167192934172436235897962844461127788767512048994540036889828903050440361007423601032210437803108256379855956485725467960163266266463717113688922830534074213540320985142300911938138372141519380520375066024511829309622981857893121166052916825507583969491052510425189860279473524190813192872325861170356260177627744393720940617598907184195326041581343916216761066913643497740964643188607826285353001768341397657050391967099387689091404230496088587625048171604547491324767792812114778686565494844773160916294038925990290790043678657938441653753836441109292616780412890296753461601197749016410780300113930871436743421127065985571107734914196798734230497961871393854904621839149459717776378025066287112479631672622736679845256148098880076598160548547910915153254382464449613511039228574852510139207851958328473644509646629146360500117795057922989840816369351696616385030395755443255095574329835059800200434043050101706336693644748357745276133484803247286996580782656867898022085081111061817909775730643756297940818967465756103033680421222130736536857522477028458159331840965655665733237781413846945524999558286511117893117640946457787218588173825796346346924687367413232917623572963378257363896884896250382698653569799780375136899274610347444394413957202199627607943279324327837479122704149976243594242323797026799421586708487689133774589640278942528527195698056618984694288710928895856624849986854188842454454124514841199057913551909171680159920526124106539971162752153673281190928113486465985532524517563527720972120078286606045756270355005502061362241617659710978908907438751466060301980687962246888587753704446832942492625356188661587829696268751953852443525523033445637405326735851054912182356540316089584339969633559791396314913433001258180179747014516439984883390308143370426650727057686764954965683074220799448940977044967399614944980139564086885920613642799571285269495477730996584892863310949092818630461689595041066134778697735920297640058083438188661203780618909744095636419459329457209029142152588446421068213788384409416435142359764130793833237056525523364169931350495982195542789309834917640067378932154518140029774513885389169417721873316231665263534240504549203447422928781422944910834429413179166457942823151220496211281551316311495921542676535519796645332384594268828987830726608838978840207777312185615855606719971509294430325148815335394116257060865355496717051264352787920709375235881649769147167655618086891374103168085284974334384441858728867082057900862033470942824589728135228942083896234504824307121957887378140307963613869464157506718838879791499239467448478261920704928514931090394153751851069350095376310102874165624502970092712022822544261442620861520234639274118193091836890715821135562327488417127408223706812209276676667082113518181484119357539971313486261263747821501277644279635799930976323867069487014543391101255413987788909821970373078274358776509889606027895406537295383532984163483603220052538371918731142936817087900509033499004104277639663285036115645564573760918242268343064738673029214025973394311811852243522765146904101331644899330430893579526289036879970938014820782816839347714836343287443949342509895844310314285251921387553747382356768151866510294719971864271643407221743291918098393974832274288473685296501087942618598018086328067979887846723307356609125602013185406184959433860384688293626220824427112522667168359261412476519485367609601851973542826207407330095066097832257312139906474874782574857906315652891210483085695029763170410494155689860219682991837775930143482347345853845303347781007057169958009390060213270820544267649530604248006547724078083548428837168999525602099985461569279954570377955021171974272502130274751198417182467703979785634958428637378154261878698285822941582729032270248564842055361148936889757906327534015176190353093553827899351464630610899226371387273936471257930825976413247418139373696589214120660605598198731580629209627001600465750108928879728910473770029969868486877012918324843527039692300642426266048379917647503880648089437175366351198647381719311485236475921455952317136977641820004320626163359145856147219399992223678724242362597286369109616328249793551832687333230274420051038975709190011826299653798783316508003665009131581524019861337109500073807205579449735222625580920992113696716716832948483655983036865859758274392177665851833011817794596636307445600488244803871570545099412018202699840439396396294244097872961435203440483766620309100151278780913478082294851012746996246210657204763811705492819508435773990651132682889779246454293337331005884168118878684905232003745428483089082470755904219639331620815579125890680421506035995283553696820236351492385167039333277785562879107226620008054344023709465012868234062153481947647743881893764088535681231093546523840113965179179452987749524147606624699302047150922021242814843735483790593029314377440435888266575337862220895859419034238276687299934658599887708921856557812478127684836200158839326816668143811966322744292218740571357558834016204644600809768984093923937938821618748557310173642158877859670469418685391764438316361786474331448175765937690658149101303487681900959456705276333024377493955705456681605464318266422747062529300072656836001322679003178514205020185084782169521781938897143926411042072607385834958164163919256660100697328663821995458213679506824734575800326266025409558395877414925342236845614331014822641509856644812601672478401145338538938869810711088953908620989079418873527062236742485092587149618332805106496234152049530303933197060258615858112494466972618344094116511959183712886327079902299301860395949773327894221239233536649271018064967279166309599530217100021499995360106502152222308118427960942740743954837638089113177536593983006492003699170735768621440354416184040590103140073514304951874094088203838376064451743162061932220531422375004231775455856728322194969817114053796645803056486270830053889269704203505167272941161324738940447931731006534390538325388170926097526031183425488716933665993980440164239372463402035216752022958017988598131324799951550156759201739034620145684333998161722418208960719413153673189460243263409159476418728353300133656927455678807388003942905396186392067893163151283172903202922402176715790985462900495427240324472411699099024169455236271123176505524337457708237904035226120762141887736102628730319607738161273480808993173248615711031793237283438925120848303869891285164587101788999317671988198755507746379862231949588033740628680655578900141332352094082902243857288158906559377044030095548575735610994924763669351705836476416882321762831716643330084786973219634673789988359846191737796903830096062950751493644731340316443420461653804558444667329784050996262139019363562416241029802845714085180196000979471477018911227935827141981344348162219243394895084046842184455577115099750829370740699503547702735335388558753215709422318671622295833591866999460910804028927431126782391792086414527968821658479674344916671381812293942944985387790252488858386746914714476415307646646650962825174166288859652332862517923729935055117164655237482799720814557847080583806646241413497152628774246762275571178178154354791528564547452462389619891280416682656428749280214999647815917033811101368852842414328827288904080547185347925673959393111138344394499840081303669863156642341562819816209584987725758391611780217918816035759867458700209009030668743079989225523201500457702684955380945944872972111909832885785432116356251365358894126553737246236632322254757456674936939621883058119768070985983918798082710048126914363411178050666451389644431499092941547262318898634512323297754184131937324513024962820212562470554836991131697712599204079043732966641547853190613736204490215288108011924693111728343909181504121158799144898221711545790689745356519016323814607304853101963298933524779627754311572467451069338672474383646716195225592283174681774356707445017313397272673800849175841625795805173772440560836567507307084315010278104999329071566822893703266300593414922503546959267343614738794621590593985197022399019070339796714072104652317135711312767953765306574542744275315564080483731559934616360476099429241457425367865010752502505047350118206605571064437336236682527709799004589270417319852482893315517919662723658438796543014691829343264672019820302099793818859665540547231785300821486386805754843499670018306650299374151078535586203564342985024676494809681599726134406328055197998030654514670627886679197259486845854524585222742091869054635622972764401378466139952768905410309498173023179364283301169887926061434546693692162426932405816216579814320910131797187393411916917367748193344462232242390577137066371188828461247457017274795455487787193826294864948327161138723097198953469695149220453384569706617979302794811275780564091939344844747637114994805050080241315182704999141470170515489167794183255252927100195517510076235042862748670812409172854804345447287037124076985804288212832586395504813066250692752369155822073692419972438826730234520267145520479870180977654457037814923662628558721362767230865051752851282288436002272194743262063552315566127252903440643113952456269274729581257552631698278103650971875562012992458727582181064158878499730881861237340746290581283960993272835026841192623256731710886593690906968154048050051562107801580297323314208735484857396444466371630672150405542515379810546241140758044435342888117980485236590543964462638754676639507982404794668163785015872273603759262049304469507290165454819291754071093968210531272827168063007881830303344303461554519544343301398921371850275511982671049341827126700123760912196858121534643831815079471167104795683868896567531856919242711485648082918333356809964779261155406317334580650908118257330418765720547155369768846954767688008755880003331482617213912930356457550201596842233438550281543633836605728280167426606262211433316879767800011965121420870252464403973775727312143257734809588135675645789757265405981450848106173366905202184786361330246254251002295765068413248886861055894130813899326660407066033048935629212571484807346998757962143042342349661018534352946058805771985939301023621950992401169341842940889931851844151592387492596070690826233010417132731556084765807344517304021507063079415157736301672943510036065335536627187991983190983344604085443965018650142745933292088210742098521869606396867654519425666693871545491888973927319927293273400142696530672405532186382057035621183902182379383602005515479457551461840320738453580327174593092026505348746554884096060303608921355003157678640881480194042719991925592378592237996577091508892976652511583293908019575319606910464466808652830290470371357281521482211012935123406555720707884800105216741120654651203660207783944142770318893882106087066702968706367041296849346418374984711694809839890619728486805467167934885263945943197032312045936811561485962580284765796707376321335986269764842701626740642837364763116174443705835422782175733482037804193732704526804155274608920483934687006068968662095538271872655938342089878408741376142449556950252999764948233838032676282215765421043885388835485274680887307534415798205296866719120458730467092266843839617893574299604153078491023512877794550563563656787037196491001601824717690113129914671700350045793600352833443153560502601833493494586719876225994170532986960810325279754143073055330480889961507982848701459768445276535374757218545909342369433765219854720842971732170052862986074862742691910815919380487332544253730432449297807827552257848757540942185450849033068209120274196379570565538435877530057425224772587509806613360513834562065839011978998501365202513472749245310383711024870972229343610060092593866889180935290301485901897597083548173088414757911551888953559770182849941370297181642419906687093816279246356813846670100349211070359579257866189750660352036655068837786979288381000849386619304156704907864021670304886293481392657380244588399838318149941516540253318463689984824954704556173576689674763517172598437488435887342572509396055349911768156733651155361844594042090286550338365480437347994723825972358731782035366391771494946306440576324153481224582652945491542876985654362019096331511230180489684775197246279301522845173443943814911252904040885327211618186216665027818062770074207380494006138040027062923230933808275035926766765693835316730043578334700866452509103088253964899483721595358480367174527057568591737665515864470760784925642386828942218433959441353587552228695523887107790698491515576564306692563156509027654367834196634176379246960031643421745496779823754679077973190420009222600450505293787840429945633272144485674483258064313057849606266917864134650707498860131165523760888820861384380781151607271190991321832622139380909840707166905802773766190253345539934458518703736939710635559792987008128809295262888264712222493018354676049725815078222323995288047784893733070232818624230598900351837227454487858764416594498219892969765853315755471845223997868836415856908517589176950601065529716731800031514034373224017913884274284788697087978393732601233994664199209588995410212077584929312926083289044179745628744732098079703784096061399837509382838817699820629352102000558066730126973160917926721689607732051584915990923869460769621382685229886362909903074397770098566971885559877408263900010315776545680419120832495814887201550819318341692603736595028283488897387702939319284923370990111293404490534515358263715977539512347680268041320782168753615122119398568564932964316656534717712135529292426414154616036154279946334938516649423140829167212826446204691456578861330019801416192857294059219154059493141324618367756138906073640535274900341721726143650359584653294686754986083427477875323188928744412981870409151888114821079421840574340274926239096503793703361967135895984161872899527456246723354446244045391985315818892843030558069966372628335069868295302207109278441778735619501389258655884496375164623044120965883362174411855123454000023357590859028298413012956733885575544101222877430147608025722156875462587451754450184203790285617082535864690070040176162553984797931540743896166750624969567475464848945987629924010558913234640023540573539870590494462551648119298650992459472973310369038727853379285567358199121223847676489674286664390916187078280643544479543689192389902365391661164055947603303653266381338471254792401609697952834021113627981851993849456318870189582307005289448308159064817329459049668380354336618863485817747062186713905382854200805548720346938119513315762465368858487234589594156895222499905026737629328410037990581970816593359838918119023216999124209832734699699643276557226702425990671987820759365393029155927286303158859484750778672652076483560510154572394168516804522566419399810005639579629361722198768704677891010068336278815040806818566005078173465170474274843549389052808140643513539121998860603957024123309359868524610096352536704294451556969999287665496427307376752861603198692994071505497209270445413604871053882260116427809035935170637509007987358632287529201953973727807842749794355720451552071394861904966435505828123450089152670776778005391391711072351370557984228836228394327766893519015851663630422511411192041830588828090176852029243553424364915628126226759376153201336223188389616288918432900980956235543918507277597552218038090706767488467603104151229401713660113961108666099308272031238340025544906522871069204577028584293866870700141577642930111335236605139987403493196435964643871211551223959895528260693756082238662702878172737170572265558002468170534462004062146574143060426838462320656071574751672583414495465543005744947085019896435502613552920607591029140418626179440997391283874035544922744228539802342273090946963947902278414104728693050124496084265252847523308039557264162826036862147950267069662891358881991569933081278673929112853231473601555899848523343566647831241348484546573887316931842845629966029563028543884547471643534152852765359541981015293544149185806793960282987768717928294223830800683398804152886343053465727471892051365217180070071461280467482931373417106595811675435534981775822671316511790150682747095727981474761397681871007963931494165849416542589690539919485713988660791091870132521166884362493737452951949840090995819994056134857907516378779595866824677342842818748065540823368263692400759747599038844778045007659194958414427397790354666350642290460147614766027222825233847762002746882658346866226592057948055953915924447972555934733692171508205624817105549663471176386635813389400870450071994910091748997204413569813159817800460185929930800366470921810783308170659672183549652015411075057838074336105866221736587462401566028397580385889836469963076536373861690391654575851062000875196155286270675830969086831023018838943227078993624966228456283188057819740792050197830257067106022346722642197259008111219395277467673313937229226489953764611808194808241553995129952250116194453939099194379450116283930690439865709738293102952703716498857641547090629624226821487382442779227191192236864035530222476856266030709747882817905526559943915422790609118892543618781581928033727782330039370725755412388879736724788691604548810329474812259176037991827875456359291910884044599481799738816683167561550721675225371205934224321035079334773583012116211493882791323739287589581812188075334094708928763957607017806955809903579653353864243264056358676572764909021612376132195011216238991040369944194357308268124702637573564429376764975319683017270519406801492438868771752376043424914484699045072505800671176170171387803527486877031711191383966650008017725085958470391354687349292093217358831011808567935250289182897498386799623134528945186691735517000893943183525314466316885816354963390966666563531989891923249931332312760360571010205559852312897890352954221532388601325831180750752870666615464526323779102013522148800473737658210870151214630697587334854877470523382852214263768285391035188846544926008312897137144009341048584041993923509731356847399476010700715609010912619321037558734228365490010290229531139125690195891227377047649343011044548831798647234189226433245143019794695810129379815448464744865859959573684553437149773136361348538833952690851540084580119908460063487672781446235819992681245668672725823971973648048684887689251991769590553322084833619365732956443076980995537666748050775964259556397198167273541793035335252162483299694155261864296421992226911265410780085461903313688409707620947224640500887789268812564018246059989309943383737652848639703479832960357086040282536249763645713380009914355147970957169964437544595202814844634402886998076896097209592628046217704244587223361494944370382105910962823062292004101582878552762834967108591605831459145822284599090063393862133593751091608979103660034604022553665007630246621639290970164485708020975137048695891358211510926197781394041257855760477653750246536734330063082438067640205807082302742220564087130194628177622177303302588128116093558618341572454974935650918027803997695398724329043350613165686989277031250524422150513456164428243197777775495019038362774739730511823816302879025787185016731100278510483888687849820892392727041980994136449310642303192135634631479491622114936626993861645618865140383280981923858830833645233063492969207564849458685335160235203921045655422008763178664272537496712921923351017609030558223599222672227656088001023751512816303959874695903229740212973034650579161948404784140699816375896152851672918964399890864933282195442373908642586660574285466102100171979400232253603813179904512608123520380103093940271140851495474255217145907757799359381109657015421282055253913436715538169952909922999732450688212125319015880940211814682438538243869171360712138039089675556692730455034785268646316716189714293260172389521848509784309270628790606704410985245673388111454442645909725091939789021883454938974068302267555434025146474893401391222961551765374775758591296324081834710251843235283556034864616465614976467441480732660979875533961081910506507760747656133405600818457947558187620864740023680147907546051098709547086819730815683761468171052433707066703041985418827195185071064884707019528558348571527710791109591181334243489558548222457219665008153351145803490419491939847060234799282072052967820030757202789053130492179972856678122544474357779469822212879940184788132987169364598283346659559189954057415178611589963871377430377097326914283637024035428922254404089365950003761240944529450280430487297900105633179223812852885303263151369072879311559826569836994987084516910730689893761365796048915346315342259387873008125562845796713388116906839991918958327500193514061850882228493195442902868812271447185939051815036823140754582591918527201189787094238495794918717451324199088982062720864873246677913375982211960481494518776924328874664557766624364879997332782290164148684563169527679526631688387057250351004700816909174766299434377034363064123343534826749128972812309322456145760586442687218004956961709620722368787472529003289986129282381150338952816144514748112740403380572564958420484508310147056472399734809153229747721706888774666316821080206449866964952363431375780752018320670235673874447998598575181993369334271987921205435572772018835582238975153907260294304180071966514777533562454976062014762891381568752287586641288683711525499829199894211247694113932370652047021756912840528210820095727610215845737659996383003676236049096685445674446315355145766374277374510985812172551727827213434127542030821703838072019133502104790149010707228771307540926841549351875551488121907855709642223726210120587079470591490878847841688580575765656238976494770908935541942027513375024094019324445517831530755746774268882935013946007579392276136459586394720109207767257283070285007128310437281086397121898577181093193295629397082052212144744821028984929632916984710296897821092403262112757123232101276317044068998756178598243052956324632711394756834176398286270926409661073098955474621998740585770049619038327271543776944283466424474257615450629988794336760843447834186901543719387759835919182635870028435637197975354801524362662986881519603843079021799352561036939817089071104701623095373002262505321793507291581443450376556633428975344627057472273276230440136589589188982698539447749812095006724469989956209443152801823837890305577542742253741864726162238798068474888692546336015192749516345768311819339598124890864317361516257022292191110613924709948449146713132089101958179990588513582528756932615263533034102819664440296995298859747189147003706509933042263697252886253541633240867281625168132138783858527689679888504284011612564105374931630986571489137667967641439546043995807855318303610627446759956881584129738812864411319805132539983195588786002026303878807380622749385866696721898609091577736299123647491670580320621654970038838223052074726839964980770460419064599768756422600925079125977454145524008317679920768021975635775643232062738359202912389131126358706183388194683969319553589747051059168723157282015204414025378886781728996155046540707637468404279903062479987257983304923547669821599086592876264008548397696336920719092468731877895859497219367480267508969954158560837147341718527289861922257687096999577629344085036792759404583447810170179882632418596364680253203960464615056233840833851899465153404301932996508497026099270439301918351530943481539381461388751155337288932778998676115361555947938745466827860625335543461664756213991041098980170266574768125877718108813028522483696164035445676256314076178039524819253384607863284389792876449212706873966273869217580243480155103977480737972020873434632518108777511288167763582420451853343861896058425752457511582079579897923739341854318364103238660817192989550027335508889699073145221812742547539434983090513553542458296798925095701698099073919780321456662062253503681280690061105513359844904603157017396459632176034038468643841364497695342274751224951856417991552735050490336556089779616348953768675099527023405974525303521074754842795519238746250194096308483966403343747696197961866111381309780815118294151727632064428549587318028237790911095808836771924517117563222403332026670512599130097865914883901723207653342911149117155119392273943907229782048134046093103928031873835622163992067413229362457168515408300750632012135001573213450873055686340594587269978883578393855637890224087741986408064178065153636879634030818767607393167996580254019258538348744325994086966167181040937486068619042176666193751463155437895319236688379119256263981837419947528413914529763975041625124575933070949969348125663798471293033609270044570323135906857514640427645887540477951391097924811432324036235010398646884157041642217284321258009957080115401830731073704924805310912768218846045921306110757196950345595949534857426412097072534489921472529123458447651382921427502686998325033796881423283905228500513484632129412248362499441803109662611373864621658448322888437128164708914367648973549987169533926363415771791001011169734347411242303804320287448222030189882614840313203565346731031890131513585453715737818618460740687786577304278124916910292422245776537802039488203340650081496948922912507848924890261429275928671060222217290051787449388077914185609122889607137312406160401554940538974312275797567394567069748147982364234875568551335332406349648651931643150813391997033051794812032161340644643973984150593825306496385637198077402488916774937146598534423660830717439856660384571856494379052070782083707119068016816939604706351708603933959309391497110431300648132709130616311343081442749966581045772835367748534616386805993586123940081664530724263690599934539999937497826535765616730063187028318521731555185127616891294545561421985739082422101921009985877902524675614713276356999995745746779347856840921411242610098359397912101953972145930343915617771845826992613006690264747952784345827479588349026596822964304787560524013344475830738123281753065148809290327481391375712408507982945514819331717102740242471032732781398760069070569565447417241924508689373074410279045071917919085536565528158605369601898072584535200084864452030783022208106626170186369243644395352628442685317241016619015475825427531631789602815593452026373393633559819097350180657524377710927955567274755305783606722674821125494954654509448154564733882232159654643091210915235759978927241655582531395375580603746973233819204517203492170340327491745596546188829540206100420341375082979365640499899640686848615665732563015090626398437341142539295096448367097188249277415644221706831519531327017884226939688745419849665564891875496663851184050198436738858925392038958691836015170480766054251698985711440104461588243790271032286322113384829835792841311560353129787522730137117144667684505800392280773251293492134326299286389853565150731849743074307929333823443124971889491229619105962061799892334133623579971605808092647573144512889232446308697003258909034349474308281649843899100367649213215919978812301183005236890548977190055136731604583995396647187298473037052411408985142865387237176594614529339151851795208383866886110628072547593100280664141546371490059546182734541890214345144542553128794018096995514587050094672039625895924451504165393398405854785383260954417966870538468377396983933617404411697654224619692206753551967271323728237867891613902134277787342358053950027374620860186969812316960395186238112904941205400724755153058218664595370211390757263819842550440920651151697171234601568452837444029404436617982803245915281114046343533880273569995628098271215905028877676021564067086611984825628815322231721061769575410327248454280546466218504258076272844906550665849798456799465229157527635620908421188414999503009633135935347372915566525533517446901364569055347979126705747621664215465005137600977574357709345041419092594540371976001485701911968654811261307184627114519378446274528008383044130610411051388966964876296413564529019495326641556152675450263067864533097861591487325274944546059183274898560673125692172103076885918443868009404948359640958663248578528368793714999144260842694654620893445842965874188066783194050095631484578763989594159152706050677786863924327660756602976186946677468614898255648188882576311406744389405117350495677705650338918928913796902246529140390474571605424210076696075159300246527780981168552460970503164590410767845051085238760120229304294244611524267373678685404536369820757608063790609394103492649100250173611473367677173829455438434951568723397285581255053291544490512518388498344469134719134028243680338357472027623699765704177650081601108149764948407973351549235034700491639990803421869919531244769179413206289119116680225898238713779953512556701889605005217842940987501908133986553686128091843354247901810070203181436570384046737645142489611513646522479453438918654819274341436301297520949013596598472390861002107194475336046627722390848587321965122564794317785779124741778237665977038163258371478217288525543762299531838679401547665226309857637307854787193740737712107731911039287864325905735297238436484538250505224753519317851032060363881776452702725014975506396959354294114989428991175673478516251358291022065577085355887320939356640278053321182002124855323101681098412314013159858434254599109457625638643229939463809792912214959739609517719162140941644461468074439053359208500933636211757157126704056386403701152264915471357201166998633621006489086049337027263632895655255886968099405512554278046863911618161615420669208000802882325653669871966108796401800037147247068144567620502195773465704154302904442303751592829482233228943153930254706639126722459191147860259341878945059337745461128521650331807242989343443523813403573868034948231986642576496896811582885145334871646717416772173058315998733850559298260264161800083237398750363882553474107378868881655338679523280353183967143063313863894441832953765307775850722742374929185957007325444466731523931590602902568883071862264812816475870009291259195002810820939746665559119719577136941974447010173040254390118530272610385662528692734261478945163494886899216362200234406212565355309119621492952188814351443807055734833602245274347873598345743234994931911369348827887322754585008870960710593646900802620950101236797912400851189991126419441102564290276177955972743450961456921403469309263094800589586553894910331984723354464598296456796783665523519102198976562438264950524683740398212610429970062531287315382230722745109210102948469449500166124417746812064459535834407972902892038845598037651956595841700515982599625962915179542581591126715072433684094117341735630561354092280953185034025494329055970496219537229778715934322236509915645749268304345908740697141221376403702915366551291526672515603074371363576332977954635569536468579416704509742577293089312839599975415182880766229151072894116628626650084950625696104897124450844669457248256801172358522037484715395806736159759698890382672989325077264981527138548439909831772628266091685688138862752033105323505591694816257415805584593430106811884568661295105763482681225444125441570972430642883735820143945296935978383433216799543603056812774367117363470761900961190334145092894360905301686026360967875587536600606884023812089862033588680210873087046752638687883477442300391103281966539377015112928652401141755549396648407544097319814164284151533869166083643516576358392271572915366639040264022550939121170531605992330317116864038228234346758570287291496687869961034150708820096232286276314648124149051349270572010645989322284477405330065925767456052832837671375416530690270653488613334677435688614833814737871535983007768579317074680483348720941321918377218118908692700049151122995919381990270651438263635820941203832995685146499636157014766872617600896384947505748401605719345023000593668804194222758835765096910214276831891337669265071431659407709972639413980079213517936781327130131781106388909747356119802680766485477636696355636297611535266922798458515019430035373230999590048395705657462550033652795985583863460388622420844875200655767491353655082989895619882334564784114283234978541770439063884876044686303449297435157964078844144320716049946712774122937551152425190280854065521312454124600525060844391870707381520588536052802820550261936419548682570818280971059469671414436145207754601074787925807711630613182449423620520686628632166791770774417457168004811781888905969762354142931050334833638212938206136569264873146618563179450012442707502578163346828257177744658397689442679065728768742719013377614742272506053411203032123925034226508326004326060244946271839256261104121552969819906998312376621510575373746153956908358687305102780924271277352240540531397524963882678911059185728474279015508425751825315565577260993697774501748670265407673966982576000469161974698137796635928048793099798335839792855793601477994635305181450844200928386330048704785436310336449768266516900340134984786288743695497552874780294831758837137438986754125063433352772410406249790354129124719547534789193259189662193404957670702867910685692750130198508867506912959496656444457746436386859177591091893557483983798317476937824740385469010044517158257279787776264385875543543783375508992277566410666053412116760365174672156125677730776805920231994101089819968562929296369809298905225372264308005598060400479387018789080379434313211818524439160982061398708666069775228453715989835700829651965562259490001725487152593397579427192264256147932356389789104313496158415083566305887210897135449220791665378281467394516410690447457467991316431743810332387356369828432055947538362167676550769116789355732241740875973023149064551415620133020435510991821966480214879970903801109423688201344147536871127467095366901386183741322100883602694657982575812511861936310045289795746666134805922585113227359866058000248180730342520888541127375217477996701632384399929301759939939571757682718910638459251463146751293805073381253979439479592543787315202795079234588750184139520380482788157610586004493287028168931959377194313558962247858169390317761844024150520876732400616441454709918919967269925857185401468384808019181397486645675770846595732476304107391810152708764091256285343925738687303162814795991865691383233951715489648944193028711378571018056687362380344773566029164294404767777571254240844634241686761259102453778693403942353079082398600154972501425214871535607215415933235173360131888724700446726808948715236134211094886713533113832694701640003201606448171935788062708607423124259224433568279827426738563535301355393244667554682482686579110405734559058460476171384728959317919728164376857987818340376845773495764190415719172767233171708468491285017653003396657301907025070595225995053196549842536545250509443339415396017482449759226547736009657087532165503991619389281288976349122295051116670728850615281730020995596586531806471248761284569334012698067521580079096250467859443893526324660061474288267757099006938200879053549254764114351768103523362346298253624007862911692741501008748329549171031534739230877730974263576502757283060563727840213059831049108217785264521565464032052523197249155965655484523417116905484203644570550283478791413907227413952488811609642078843319771587026447136174928411261758037656265335232449406237044235673215046055173142970158401768628294034317925806536686222768998765992180610088377736564218058303849659092320251553124939323419133243658487330861308639160293316822155303837458349783301333108443237965528955167621455895781885962363232048147189017974786505783335716857663351123448347187093492784184529709698954772505785529213764735188454205952986245645216610047737719236918263763997494311607972708527910983912721150410520962670723520126313166405640059302323626858948287841706632035915530935459782916875461952154878360862104116324652946639413062103400817423972104138445887884644807372526606580252470421518961981489163876101018010981888384076774990116040866543734395686187256248216810530454649819649105328558256986406349225294945638739892416703571105783898247012974036848864316708506780999094307664693375597965096271618272935875726394378908291457470947776872794983295648736941854493235634533021580950093497898187406862869673726544120282437434647823229562804599685858686587433963084141750723523549905709859226780351259662489261268876987257413140680195627721163123345659951440198945862301306042168259027913725182302055032429225897371134971054332039844865518315099256616113024710061509456368953436364333660572145936633557873130461132747641602154821326037953805382766634509034034597672066934756120374361497792661011515838233966601716108403894774427218988488192541539020172685271637923574376316078767994042398007154044928094776107027231349152740421543640249136557524055165863817418723975307082909367378172173264571862895898153035730325992846193843311666581626597119071154359034867147234144619349550769470598676529810100637874375367836644303255094155751737694278553810805764381308789875108583318696588668520624650581477409325773552167873085688250004400877615763878506791511622949753573575713044825495866099710598722525793959602207008606394010082370625291734676286916513232833439433046447487330430595570013305011817232197583116075594652720812909339927427870706330903406827756383569158925663335890861362973637532604372637765714457083716920792689431002039437085654943856365607270524873082437182815030361889753823709672667610356129867348897602742613535972724281832561236044598914156921067502714277440966257487601223794018823386949961972678287742074451514295520260286520469663552849573985360946595119395487425183234856269090602252136150869212136062754575271859586042368477394339756079455623128615217965113699064975374393070722855486051600852728798154903846005465047864279261374534680836232394168749446898936378984841989497706279133678973507093262797109112147675953967507776952820252983376262577504382323076285975185590439457602968996193055179808287130046812624124966001769748907396650329405233058332576467717934782015184294587025526978227692452702917683243244559560048436051130277993271776269950178506247805360726999664843610722122762160716584454068846757100416531621355229118022719235629240745194415332714503443573780948302244049072985776039335247166387402567973739528088600394711178082224439799718029429084423816255823255263017651602214445400020229005361552775316134218197849423985091341421237229446537060620426350623606765027710297240663633174051700231738544184794716518416993800493810739046284898264353779829215815865255230701913521399344242046876340590821599052702823867105688913398223058364646702443791438590416399780889221776659735972612647251089392884297152077148232706204464688779833836751761362342902186849489799847616583889690966450609098313338080293674431329561361542260655559209348035261054408044212870465063589102765950192815259203063285731316696388765073391260646178699623024601475546096833372416985244468271572201191112951260536931102131062170620546769289621887299245388124396257840796075689199418610220384047685114798762960123594209001723971712908323035528968817038908702164533237763884103301354427117740444026743400633717354280428216442276219109696043557324250297404097295580508055897310674551760235795346582896986202266329257935986691706523636313412557523294392522898599692612400132658667498915267856627517941679973624938058750745038771529064156711301186612796874604190009855316519265366459807500453695483752545153441502946542946259254901782819761594569453531056430343045040964343791214874641641441662185937675836146171537236870249442555898291711549527181963487865147732342807051638331678364529607748700238775802211634882737984268226089472132679560132308001073073932312406656037332555138972529516580352234941135466026417983193472994680453597845934292959707431770757700744680301428510513800622362412984133444493860561136204548279739349738886604266326075464295686836828577524314342006626417389919113920495691773806607228355439662317647891279192444915267354886502865835707723052451863747755095401840501067969924433765389748948483684959510953542520021574433337286792816946597389839430120344165403718120281379129204005622727401245905649248956687179263683354292137170306204479550813709069099212431537892172003579813750136280459207805219558451204436166282859210910369453513016568847187558466820693175922813059553498008136520581724579299706374136576545445334580444567128638576393613117073766029814483108277680001648203818564308807391687764547049600767856829691169898254261021378965110268827923782682823346544633541936013752708105259473262896247043968468873422880516582267425933697467564361447035248122983676644207449990645924264625858845142503835539162037248487334376096380361502295011943019817631119200003049791060745466919300197318756634141374622366920843998524813831424778150531164588089646747585518463323216148424597307604522468786496854286061719897700935415656079912418428701428432467880957910051613636320818996905760601761347816548247091018683755782394509011232496938209759838865674601683208050571562556890001627067623056036071121959408527032277869427831769032191216086400712473561968742141951619190965869605374383246605468767756631030889328079046138492962167855887528835476514590183142013661970980110035693556128942057228744528948881621528116286021456901829567081219286234722844790925729402196124255867985275592722298961992423725409732306712107441701451485444473495604649797294118418393458736132559977434816894404100933298503835774415461466490694238043162389993247646528552822815481204407251226675880212505706942536534461929943435252395438545204062167242267786755826743216002265960022647348333882842550838911843566977441663257248099628863397192346531723327912027529326857574703905429490257316839019310619089481288867312489276588589421431864390967641442724691413667447545712095410399486919854631660640072188630277358430283672582068913648130786507592377091026162110095380748657700312622904052576827573706092587917314274377042060381993309132703959093356779968649411786238346346820320141150365226701251811724333751063206583560853099517581931214844254620962224500177326934258366072364762081510715997328885568446432578571663026999671603650733448093753861982801679299082238867220952251567347181226187459747256133670407505759429154353432901312094092460740870512785721584563494469134514811819434209664103877034208682482921074636068176742518725881951604183131726365289387478192982320398224703728813817401112284527658438992357749415594150328800374400175135047450944095024535851040503756726191209673340544957375524072562212002624925673040187230801354715662852165202653919007378264145360820089702746865293397549461151663764888736508961649084602670484222338149312449003792540996870984557632325842338779347231668931945846414691739593566321703091788599267203020357229253101669299109860486325433267784831500053062170793569096276352484160694319680708032016033531746686086781563655433694234866288490201756668765898476605365979409087600823592957065559508738341738835807297075222976141246666365372081251657290530155282894774477069544967102522234554858301674545048592500496717039159832229323417734147280239803353245287207703601354828184283387704196221963738038866734362783644030581937062524251028026853759395098767633935451071925939562939896009722970416587997213343646568723526732077119929693420365349516249322218714967768547975059185990700445257790756846297195134852732111111177091267855336661723143753376387117082160883066837416651131593225584061715808066068705365244051385444049042920882417664038692830327007612615706697653771248314620752742766390081911026652767777760912098618753883845446754214243113725742913322113721163435279727436670278314220729262363445180612219677570273290901584927511962563120520523516289630448036575560948124577432329274263256487810655460220684405942638207954208777972953787434637238968912665533822105722685849289119492221560895340614739952088444290650293753134686914258000416157808179636507584036444813576636224318424795278345942810332384766195651516143933240226823923560295028861386866050430793532816928775961222757713479171152466977134482844891907104683773890068986426698985342969695761626321356640953256747456625263375024428853957576231450285338164732791561527915024640071811492163808587964684319458054055451082483417931375656557249992939223468752562629937317796998830475966921484464788671409368598851140206531588547446849161788847675845643133402583209241307774801097720935443907552691692349680814448157406130462035024024037023721415886261086857205397372000487682417065512133418674134315290919018981954743394728490522977650061005882068924064025395535607456592912222432452189471921400545442436030956089791868020897409491348888490484668447363366636449070573781609804054860933825314011306581205221067502853599088201947263255922073052135430326930842258807489458439350249362617064353821400543327428036603724692038515819484850169242271745692449100247191080625381996036973469906491267263703887310670086198737733479311427166209846720798718606498235806856138315194491981927921493401668971636168372043561883684621166643025912806560642815545569700970428872661630501394441311835307520540895667201978211902024167500093487943659840948929574465873939791862540899727199665777184942818123058241978873603230845017230794429118644461030394456024076858217418234692535194930663129166573867142518476638933871992915744056256137109893051921708532376719274521904244093966923333429584266927089279516354747624087127650069427837610948226692470178771035152563170372904853570130749121237491190614569175702474008209851469814739917023716928739643083782563530927393060186041009104899808907063507612829840482362992974452279611526103827938574200429427440455049789199747734213468008410454971745801169502251416194753899246449404491644746061467402705779834418974100608544092481585446611853792026935523965207726375502677731536493473363245278709567625461904118491560792492711712400323756363096946879802536581111824113325672484329084617018759020778372526861834926732420122814777504499996395342805362014048999383450320636868272877985927248859878062688373684159823229353344576874887059386163619830357978669795538610975854147449534707896512311417826306567233815593143937563152886325468789255317364685156355266385661854780697471896966970325208619234533420930353417113799549053540353165739733145658266256370904813743976830254057633228527915402914539696737535857462288825661907572261824059025007873340634956891507229096652762777869057599326292504164936383995565764238260729279138290510443440263411500411507020559610020870002957189287708089295548341069557025547490159621441370846866136226774215332183834000786272334193357203020562739483621380596132734691763556383983372594164428482822884342719444816283928972858713302973959393376517236954350315703752043562061024998599547623788870704716725873434821126582056030753373580798907536724026376896732628507240780871662868322495084006558544539987389526204454525858795322773740400014564791764573173772552198417528771025917046364446536229352164316089375871868922374146039981955043912312321737254513999581119552379500175180880482745439003656803680064689685249086882207109201897296344578316961058993327227416828222285720265193442162497385691144624525584622173903212894006981656993132914784419686065401448878519784694049247361847655142569122488754898776648341466082049164210091405490243492352846835867955524792632955381109808519421747602612973657072786165188838810350477684867089541002259154484139801679629458197707256181756524367830948980032669391784388288632580684515539025508377205996416527223971637419580174249342976849869972538793865104783767112564969238991834577355149658397874048772786273881223234119821939824750067980458610478319948515727834558498814189218694039369429017733994765617154989353379258086031344925970543735911078656866596303117545947044662514501442416588707961003622828688742500389174297270339671119578226768417214912919487594093264898590920801875494416604459098559187954239810519170069590594101297445296260810077792537706408697493489630293036309521079529439478662193720819764018475449338539192273621618996432335807684508775751198727797877913532610667639288215430881625081681686336999513227905432450786688783302916484346852901234356863569266704266124340375026733564298687298740203993058083754218374211328883842274531305110128710015990678252954083792996775444775515317629937530812778221394485178269595464569495023796889730926341716379782871555311897929255317810398810639238029837282742139624462123645078905081373317349524198977338727120293977509361212053453202593528808648385994522986665072656188684163469871541364359414231438116611918145016583672297730938543565527669137253036360308419757893953670822976218001281169893968548499005146027817329922702073936502218129166609501487757748641515449139008992689954865994958002841084638844563571085725362453234154511841275783952199621341101428797552618581648464861759931827914362632114340110008099815042283707400401079180291051464496168015163181775325134435202318162489086735751688462491835184843327799560962781306876438247606270306138662549578101023881465955119694211997382500526968352876936310454898152911521608634619575064838906235695778544677679315836510402094736494551207454112313560949918109427339981950290046174697898203974878106628623473184498843392335767372191765410708211569548642330896393331702585982514237726378440149448271107182889511817923263615728876636126399004621295795809503626079565476768420731024950767657002187706555829979302723267086173121262307049220204840807224926876565575182549720215262388310674382314102419823731507948497238878447697939345126871542690700833308491745865946376952800293528126520757316142718312611072092689845699187307397041286000374201556883559264204281849898349499995350911440815028138662471468449658651660342944964685405334042210944673992513093445430475606142158401049974663401476511595534942638509077559717182964288452177591277460562930413582563530516686945031953189729104666917691039924655377042927968517615144007555368093023676663005822071879373985382722386489739494754631884378211393275864263424212790830589379964447202629438183128214595607848845400077534848001842531389912022819703814105637066828878845579960960277427841691655645205033195999435575496634756971844082058614206107692854858885496821351812716050028289906912016732381759089873883662831936727240042513436463193529032452206108595617801530625877691276287145555981026024163848514351335050365037280846855886828632588760412660328549558285853244194265409007128840478876838962298778692618917450900597180871280617615720472882069254872188664580765298931332672848281931607216617902202538582639733911165041049700681543434752634359480914239450420838898720869206949174429865779484477533778999416698741115933167594379300118439574643924071457875960514423585386522267942889047626526654990497015341527074772817861643257543495526304157808009930974226911374632535312851041455748948926993779344739972758530369931525628042520887981450769736843246789183100486836461783131265958521298337596179903792072762834809366687352327842531509352295486693477810541966508626056919088046376528009873355901691373083759427785831041913675407963092309737540143285522584492894394346217575164063426138974956546609174649075341947388551257173611370927882234163791644287454608833482568452835073495175017537107726314331830441555873311601923178847003432483815330622070993936974722277749778079158577273402843009076851688852483419593512740440332456699169148321878921230200646807762991646277225426487484749770561691336701288337553136197908849380411963970032866227767081377724469435206677448766466197268889078293608896985025032344355308243819649718015303933698376523833352850967807849131075302479774052211841108980917370151518279181160610722143034598122810073503497260815661466578476251387240454009245964630197945969259288528468605117761635869828028461582218201225764756689765355045230709502144766265059940994229979432476417656039869166776029589455768098327348574968440746001237614111704985668690976850280753292954238629684766914195944033939428162572103870841199055669263583373246746972598444328495044900905625274528117658339993985706697361065160342506332010035919743434754188564550934559723170508753738137756550372136349293531875640541234451104888619958418575603203831698064607684544790527671916608694204862170479527458779304720344563874021584167313705047940808495768245270074847989250553357504580824445076942907773535952011178997390205112980420707248980062976569709692409702282900575599645354216248369682894863083281470342818111793290130427084280598815005632828102746633493729418892845483643867644430195313233352381685517234413955558994852815546502820552584445205922398129996455257334619535415606101471264246092639363830396145098865327111657348502379580399696363916799813290010958123975891650793217319833892736329561146034213105478067553428635716347755242858288899587808779200836679300189323775192866806005069701129814315120570731940612897297237169579992201599447629623523898258951873179864609024153093362720094319654769529644184702632921561386874513184260028023666651112918753088981309561743710328807779149150659152654610657537855588644069416550369551168750509311749103617632934890798276753192972233897279578380015986782585209362502053681618671087185508027973445032106273888019691692053348542145065124479059757893195419010459743875939997652521965136321368922849871052298727526498367350782773954429669942150657627934993120232430407798116384189444827923580327183675579865390211384772618642604933342045198957226478916932777323348281251725740100719818483167708854309205326066493074144571506687150193417368037595983807673555690435771800001042666301839533033623337371070551915323696606320961490415441074282465497306717953467095761169361463688583521449017949947638009480489506186403355949275474420477887011314408241782606472930929480996147586637260334819423364424426605804409133820042440056871380059287903266126039128395016065825765858502378528226777340801853907383147916557958346992111770968131393332115288920083794181735937980464511129712492149389176085881273606411708794112798980281689758896849333891146355206230892166053088900901039667673519188178139111441146421580240290298701634395970126132313924278616737340931007776540305541201345669979107279608133162997844784690750252595513412055828218101946040041176784383991705690620231226220834190890477546010806077655036990060501194961171162303488979042051023343585384574429327614264888958379405846591820786850431113840438633258113175609209293448779600059635734708117748754988605118045946653655841592193213326677018482213856765288108895004321086315495297656770900110493965501555796103768964908195424047459819106371645217092868253140662496453498073195130523822062565986209800297215806801502252900357202535001771432882890408161371088241981789109865503978156499958658627367314631248674433849853545584578116093034388722538727859062270111646489296693628966679571702122332382185431716660017043670044885723924666982979916932639827349304222132615557773979668826431493970947368848195388373782110524484765767334856145344028640306254160859995884148039872822326340521425842141931408169297507699375550799179648633887353836127109656624242995158091841297090402036769768206530626698356052471948699180888637162832312001385876811027384598545947747624763572948973995090420071902007695041887538115946236652070118979200850487913793464133110866965942485670253128336620061862316189463063777848362479407297205721055697304664285076196899911369155942342761344356186967231081102587582194957976667483130375579831017211744361766566977186570234129272549930974776570194591140816763364463379531896942670766210640868377779758918197211664249799984217888954736542585910322182994316365995581152029460989971058274000120208481683753368846326250111768208679855199109561805481374433645422851748843238710298990077831946250400414122363168215593531652733689020043293514725258146164292559872434978033480106578373081203250269173065143399556994240328283962400603474065740773986803202168214607288480822329097852833302211083071441147061494360610259097346316383054755971199241367611694495061894149676425306704590157005921316981568630618818123030591539118067840054571138522432024639559582339841452565754542882948676301483507659941981168655753138000984400806908574171924580426405961122298511313173263798984431309844306293978936734415299465347755518112706156164089937691621886883440333418872099741778002009291623595352949624629021090295921590597348866846221759820038734798336029823716032117445953606013658484510576031081628530650446840532757004270543286336905518099696301792121990591814145612685217505914419792195647609013977979298409974059310693785488112703900648120346421314115574021448614312948127006002019145100504877449905410435739151974742020118768277732267955823361471895601625438181707811442012124609679452546691633100017338167110669381570332085981236940735806764991889866956306068260725291881206029392178151704686464881875018901944497575329047260899924874206982539141923112725253347142643654132440090163102470390082210820804064552674602728405212731686180715551255347772423464949597489580583013633143091863799458533756428187145780386677753066326564224185939296529870476377527994550992104487660594592155595377030630504304140898604345041858848496860037971626396908259375619168827373962293227276729881996547291223668199399533797633410485272899240779240824820946042539436779175260585392809744492830653955503590335490210860395500453869550043748631163994975916709348309488166709829807460346936159655434260498725753109334032046032242853340041168458710804070592322664751432563609216377946873312169324734706990930248871800826854302284455538368323525903139097787651852510221362693072255371012332048191697404297533625997362561037867480159140958062153115349239583706373076983520118211838795845022337158260302877066947834149661269981099773829217511615816791890907211285635924051048209341547061021375221678396436209849786791913382568399613802491570122083635849067857037454704787586189095667383426611088635356596180889700993988843793509598484513343970077385080519817111806647503085334212814353332434544264733295746957641797633071643433261196128120912407943500523971097044114809168092623292662610741830255894562482375548916307235276034497850380988058166840937779152080772408120062966049997903818210830619737564331601752312487878841780359895047626451138242866449633356331630338907084113543135767254675959760840906050575150169013006950327801331948846454272588263761548654840203152441334030762682880942545857423365610553869557624740857594791673910557302844069742614870480210594560657783904020883504636138871795253751060090432776273079319461477947603041199370524751369993545939759367770936918867848560005427464653630564326241530081010119152654549144046276941279874817887675546316737568064594921336322346814238346144779260191045693676690258708867058883097509574996629107216463169142110981003526069880312749948398843641472659996468249908801585419009245498471731183700575725870297284926277575090917501184660178728015377838310800123461448263992974809591565111725202795036577450415778223065268841300762857820189079459008105643161856600036804935187645647287590873984229894589364125009707607175650957167065199207845784928436622106282032707548451035092759424308795179957750932902619035059648458815463733658522559551611693147846673247863519804998183378482882851132764185964980414414326914637806567362465131403051845647565132449209316344757258402027427097939996164075493507232275112269788995947321150171342005393611108932093610081817363495879573326222267050388398443445935239092075382573834860170105669776848576514537656771719573882054573492128674157655446968017830723947854593894855356862802670717638945358354325522909752141708477711585512524420969011465569553919439401651003175853875878022763099740632148349122130529749130633385825269263850326614977540533665500105882688813384030517277037184564000672044981013629485741884854674831946489488673464284407726192613538046479546283043797533466606875371976697513330050069546247521029302083559354344155553712726794242496611502199678695685145937485369872559932244592038121845012009675279420997533725497592647936784195048348682664272620917461412496555168598081699582031504948710150653264866263504273791929288545382629204666975939317594690532118274562562058849651226208910612171728090850211935296307208714373588232589771318823597463780347709307838543063144356894107471738605427736143698933787052662902341086509208826504410179364546544335077496350245075159717408775525355098866551402741111491474662010911605856397349671100009440808759486203260010552173744524436533240167769709710182024741708952820824170942161241970946136931002034639192314828611874141536947895013067024564185961113350753335949532953305531772498073765342750855925230593593942659318523704700566387515135725854399635190421723537052943919401772776207537434547897393532153290635498568923673105417813182126095839964632263213935464657092621092613339660117085642256268516975429511551422888017201848102248477301687837235578629628258341922970949885466491403873293035632565105586010961402225901604531233805892726947960926869556760806998713095947088977632038293157301683988082422798105784003507740292971503787222955711372778576545443052821666349126868958775433548962266813305466452958964859734793486158539247578310864325642270775911073239578765315551810295545984079231426261059296195181599948757654400256885631498910556597059418907852161701063670751196350396861275515627916346899122325630186203309949453720766489475630231195988782472711247029068217620219158030937170095474614386142424955656626284191085259577123842358266608059700478115190657448285008283181411388712208733852635626173888765106421237353568395539942585762800743546532840944665607160199249072936180050696554965144126356182112945733510441033365512951876649472213505455431411881012757570467725632229503967843305070990478163073117406453403280769706740323566382336368599970173100012150979225287754314358077509283126702475081925344469459365049155013909654830150162362972207821332020515581617137252478442387037949824620410818429312159622308521589367859549609711671951951630555387821561060160824892960938055098452718926143438433977278916155915927619048410965869041435598301826601224362996938792951885914443315833114093120747036280523445426824852549671315948582008271615648976821231214061241435536600060048544123333223782958424468341050857425113386251621637683449574305624779387018727195957528494223685100256799242113616599572329050269550190055638057135830021230182866423116815182975380784420205296974342539748902765902362053507907606585280861113534034209799359198368602507025039095581072827429020278431511623120595125067712546881126403371757643205559433444526960753266981103202890918150602624436035999814231092214445464484758169882848509997562488239009070842799152333015211950892082976074145061087111520065002898278810604998740310951633562989652620572780102518095028887918135444843603070342412060296480510669325616530272802134019961404205027975406319807430059250110985841438312456183708212042048584649163573663054518189759316900147653674442520585373470353021312332757306433669157244297762241844119000963730063404976412300249739979181703893311495200717553730170808464259407654122258801418597931864473213958633205160262641306464525102612296803438425046645033214145824068897927703510489204589318919004685169949769024584765404458594111442823492392044265138066409155997727723635220567217393830258562656787500369779007973209285926500420863790646523657860978948139811992557261782258390161703600200811918693614023056775066466035562097875629609287647818113374165565101652036747496814313865097019664719972889459250987173091731739124696076497272693296577102749038147894614997860743997699958790919181444427348995381281476169314471048421739036942949684484050208526816840640456149400422844667659857877483090182188786646750382263184266660790910103439238600062255943785107977661536331729741721383484335343708178054770318711970310467918125650150264380717098621591161049807294548411466509841212634160778481209672356712623612242923277223887783858712489093041550171838546303061852008272392007511139998370272270401547998654702291595035322178517674742476815786961611897969008656039190027136336281110109423354291252332074801847469932023059721529920257612865501969225085650808341857654706833318622341664007160253538125931663450313686017991361278998464316634078009349451716729845718172653199209747832929089431966101991210638571159064992108186700725915562839452397293789814623572561418825167857204389760330835263659486093985481861957216054993409659141348180858688614361225287462020601417059659644950014595413992713462358742386937460983688681442473683786400623408143629743305530687872330455836924079478197561479081394638633709250348123805753524481711815147158541349138653772923843916602686962065637609904932813063078507250754704415917234002091895173218742140454789899252710133462948154191008620812394832298164336556538467433074824176122351346266857252352436838054955266889884364452903723902259493202865926342206716542667894641915808250755535315894120074975105588527366449451634781320392779634105105228875596638626796477695217234610897912335212866358587675993198159609179613377136839944263261384651425251809096370045109568799465886031899995524657696303890804319266390208912931735031742984337865111857335576123436927738822186953131063253891218495772066997785570774860463110973330165884002563706708348461464281121034573697480989025803761451033299630801626694208394008172536903769231691835170881906156034475889687272343255011968101512295249314672717771489655333919013230974245084544508122679097982180095671146228838051326800018917468379954317802872414373581838142798178326389927766329699495682639129298638157836906148038574183066410138861055610578361887563805960331648368473788687792888132356110605197427362566436871241266797164876630480563275138537903280896907042623527447510645276451113246026110820637327775741441890093970702952182112288405571748722657023280167770266134410336086642206380079417398001122116676576312412089391657747735681372030783152096433109431220831135859730379689433624622866195299720210892378853409888912054468362194599320075484838338597513014916837913377651047082240853985755950405816753913849076195626191424635122990819478885098696519102047832136919408597062945288382124875173723365872024671355047267647888937861774225385431035026924197306234216272767355234061114273604952383812992068546824130448649246901611917029947130011656041049127358855767438219935334681168398637392529178749879550734749141201953846096620997142521479560075512053578059994771179616682273786411814788649697043977243782972299996147636286451599751811474757163903134310371545112115559590845762005162609230357288190547912684212697353562903545795212031515594382448083930390339526975443891255617327735595298704523483510231253037100460909291128479899255316569428510771594877689809519161490508364720344501631710896861655787684257713515560244604549569504702920119286757845583760783609681400755292183806800519513855697108996538570024223992628416927146398245475905265941653247878248376468590400139031175730232295166039463333547006319906737383441185949431215548986561212574201940024279594358344374764072967189230577575829365668065139335805352064873693550301641861010333004067325868477017581730528342918156180644837883851967096502700701717067000969756848131048397894345462796843565806580940912136967814859628072919427632102474945835186051787342798764449549264304059859883238564624225665270736653594217972800571298282605532691819576211816826930855005137834027852792296065821495237322487011248687582026433415035576337076174452941549973198510092422382103544926268828396339705514198749467957841645454576797170093545767749819828075995363117092949059458898839093456485816498092439246465175551447150182256975356738806332216819944730035683150832548734520808064275398580675481197436166165750996732136084224288526443632124250698302083047769855222511548280187105515256592095713185800751078549024723380874650634708934000130061334812619007709215265488611802713204747372919035904752119972205792691460857415900307459592696126968821570988817641854166509616120843553901634271138835318657426793173756708035690974487069534287602997793245570546441754428011665216478628184483435637220968379783509120275356963723633247599484785691398345512911648984808091269196903424270320252109645511260960387758118866591428869749520021879768896989543081808940047652646599050390448148291593583852448845625463339256437878552308429573551136136768823690245080769572950988437315618862587835066070406388345769527773761789020295477539083484319484800066872107252380325811043690781420493990021051798300565886049942601566059734596361017900385282996061796247360741969392907739980196308317120498741040865060334741772740198715869613684770831608064215148357328621304491099561235441293123865231435787896637866914634206988495787067428209947042127146560121643391817822490767933701054910330938382613996049150929679487928765797646313139828814125569338409884038841141066185008676581749331947226887262157748451097167429164017163404276268494842625157574791127903262395315631222808829093489566390785814922479465347539154961766794269402772926458455508650951235221250101858288728366141987357010974640384387722101726707014888181612252919374598420110026820933833918342654955604850747939878622527711708066298540129228882382760486114133016667263415555196122678436345955523194144748301917599889177820228681924305331087387169725971177041122540045054362420677197721771349276150441504022607105330462338540367200250036299415773396608391558135952654095653517295420834068477089094360123779023179209509783041968716658761624330818971732249747018967240450095236002012216362731003031232887170252601104827978225939841059214841957399803826524439652564634145791328415166551936717374905494801921972374584475329474792315954011984980307753922441490793579970698624242766114442247824167659095039049418236601494011919270933424812072792620438822714483185530517156546741927798985875898808723036441039348656213628290674738944366927481927860853073502488306606320720459394675797083550448343261901222507534353563765783543093727730491048030883176694041405536452835951171589227016723813228269799602742216516715453697358339246748835349192030363713034432928056776717155206174021079846795015489987750173658980363881259597639374706430542941877676200048075700142048829348032961183844406820832210389189674397738276708418072731513131760438732873639379796402960380420395994891145991768412528806996950426055261233544571521010674656425080116515058627212863920809784140550832842572688299629601724945427332201315861560883922715982205145288335554272013743613711412724025359765624730979135958467548711152235527275727512105754446591281637536385376518639905732436123105173081153273744784536398713771599582454437752527326636917631236610704916211713899681436169893051437257777411039344311908378946450839136500725847225451918445706875751109031974109884637218540118181951720342612662901434049573507380621393584248858200259827650847572738889264019250509837730211859669941617907512909368451448699805475150255370233971720074607337830529127146285743897377076346687082174950972048340469389303438185204286060066424615164348828594823378160036239088426350213145088984690994523052596261926671411050714276055090833745589320448347045303657218883381923627000748980396739985836102691717535072465320238415566794321267106173833067250296015550980164498857731086126529633348929013319124574599959204253662516188816407325154024845033611689635004557781826797323401770863992338744259164764465342451652314483295502305678881466952718826777602941632716532282866367253245141326760481393167383268836247885615700958882573470090741179756910166697888697567628961092294121663563305116491193583134753045298858933833807185732649538323366427557521399821100420554443543509306842994630981378975784801345147457390934435211751982701864032049765630760061404859473840755366140624152513827960197750112001674132164919480200183861142120120024883174224804681621310923667406197795872362075490661429957651927720328624417594269290183703807830253758974531863280442734484121390107198136513430942155225050518952011249738212967512307075171191691122164043005646075291978541881618095737902967756017648673550291596766079140366448332595991737914429811495935006249147659263181031769792602451672945684167733664674670117233249074502369718155031150597421527246335303135560724974982775093133361537595754127421134658703427306203023971470109664321890230029150328681503694825272140592460466743190906074387938556832568503012358676423333059572363240966961823407230971149597920079971736454005923994871182340251613658389514104341447779951758737697723870874672803363789961534420213178454387706476385280962871312355323408340678747449009851798812728749630046033254401869193406647191155350302058439945830520769002729850469232410157315434786071736689302533578499632081435471437712046535194331935653722741128072339450493225786799493449999231877405908364506269270861532411397134596063994975979511169860020252359901511341501031228257016743503337063839106135181353380559906545647320162994374629063714335134100621264895069083905493536513779209938204107336856022702217752350700170209805678963814882541377322751492657895686867186851336829958966253085762481002276804260803771292880942424025480974506184815305778823579068353247988261721426387820294555127927437603850660592718417812402377168857710389778379751461347475753692704878637997217170584230671475225931891022129277494316381215995849766367474441921564586886960806984128193746781157399637242280065718582579977062568905696876614382603356938209310155494239519497247658053094732833789198720986717466152730275725095195243818320771944695273155185826283282284024675842334185239775333765497683569267399643459967517846572735863334676326500534958360718546377917998539037044935105434164679342970645392730171815156257104790005322519364929620237478878429878486071017282619379192990729280218016398264298516534643598523189249743724820658231050000842669949308840779906295725308246127300091551041424680740717369349440205211053340380058150886596516934697749054280964284247645438095915574081390408237557201660513538341002237323147530798937475045955289054278118870002609158660758159548959379185926435706336429887401021066521105067319658958282380527855723359266745994103316375405447646262655441697556513879878050593173583466928275191609850839606012934609389157305380256469896070519265687346250269519119301657344229499220706431459010773149174416677207937514272667022963151392712447784380064489406688646188867997607599224146613184408399236933714972123414902354539485629240878004369037447113134251559671328802042244712256562227234409958824483406457005970419561433794366439153731822686567802699054659085020238541492919266833707563286609587422612589402705072646441441136797160862071924293887733254302052806593779519520854558639434412397226063370048915665556100902928563353124542260482712852137533395452155614632652210822205650028185117474508673735822797631750995776648440527512130802868698571779849491443443457150023546625545182119561091543718728485054414533804986179488994757865876512789152998230174834726270594124265014837507982688874903854056619793533004295351630444016903519813942428499305001421192806720802822343616665006651826876858797804099733423745732625657826243702865829681010979494829243496422763615863313870056840478207705836422308445708262174026993088479187139084139443552068200080287920411238625291310034636027689064714954148064622082761893738834889146510362190787422442288226960903725466504168011516337143125565488713729184386704467050687466006402422929002709680637692368837511270833986743606579028260492288504547019543244780110545560438880842954410349598135286006021436335806390064094711883338741939070769436992111836781582149607320391913774582855855186884781971961737860539353834096105564916045418569954876102200471330838981915367063532040289764213019977006925436695136082517862472103968363368369526310281438783984141700814199241128608449308709707815169397343434907376649102190196592737026540161392938396658689402676086577397076794696682110165839724235370343148176646883338427719006567897778531390428381497162515590389975493245486762154062914452101768740954348326717051329857301399915072231123456987304666135326978312951964528691598636289951032412648423217213138202113552857787299052793885238487644910839231962050781429662932917188419852409633323749596488177917048857128374320238279028093409449976418329651099498959871681326324981078995930562938127654164197912816835363946445905573340857341710595907061277903544411073167628853717222359923703530779991130620758482153320519046709785498967682086900667681415585048233123586759561390519676976314187659775606083148397458929401961671265562639986194840912513981228835229349835558835168032276542500034680715233841535598498280234869170580155484768862528055730768569458803076488880863679384679385517829020674097148966053928204817983884676830415137962153940193355419252280098759276910634848774083599247735979507673211723009850818447665244902901965420242943096539789084005493549232332562970360888348408422664613230865741676643905981499975497442988309128411232877786886586978798030902322600037078872291892275823285868911513554999607772738550318494866827422891790495262916157573046901778593145332915904695518627720081346503234106703104591641237293713877546461636904566545475419302948539721075618084909229888644034653315877636646067100827249694630606763169139387905491997537996577518492624766026343656215391304037640621371919467217422600492231924379305177505142373777134288188019364906569757153717082971016669002656871698383228739430450523029635007030741206186320641964671442304911395316577489811070446974909855924295367237369878699402104367428282901393503242415991205995775670880163307867159271062548768515485988015786649663698052067654994177191379876097359681136978972266106850108319571906822923516333176279394070636891816450576910697845979687047402681985967463688551246657550744095154465963533420820888080411732297828970957307434105094503275176072256075588959982957201751468522167527301130287293760091913061504223190005775636465711795019441697738280472943063028889633507531407523500319788604804033277551943417448829859040779530162647291515111892944892712993827223759048241588602408483551702942157007661927091579380379298628412779925511154732035265850484748721007592307271874102524335693019863870887390230600287608174940944561095445229642069326114374947303854257428455082280208558013954484179106323054008265596851828681469813475972056954692109576666776918804717368629267357829385233515679375377033537778655783296694812536402331798866136755505699798448561217006127294631089378239400017924340554372031418940708713527935011415527875844917022021147331655246256615255770443446103533681033171182635509671959788255541119767895170441791483507950146907549637067493782547968977507706546483112069917795929304031112267159676509972553776648712886942243659716246729645053003854677237386191340955962685642512568345603234803275710249118968530945745220583868872436905200721431431955710561672486363213535830623626324520752378184399385283677652300285212519931404357004597370866323404715441479498857610332139440490198383903629968346397250278612347683953628223222151482114638755383702501069444284882692723870086819803873664096361526804406038664028879404786102779687782970026301046495682849793934560190632482070703870722134850863932154470393064141589259432743728967714086023183455324785616791180875261049958336909233641322679171826899099632309129063945662876354339279365588445620725948620470501168616348117422846484446216818191592542625718323850123141510660989974860469209102210363632089958511102803486480407138810068690258741640686535480017945138641533345006461129527148187741705675062810009744615288224808841755882169190725976886868203916809321828927061391542367593175886538941441051527256201698303795581729213366936034798867804192200064985187813001466834010183856436929232858065969718255655637314679563278765701658407191063266455528001784777893644140867061874008903015074963921147221427009005192249264299803186458342232522441753019819537296186543241865565553652037923217378151397581228332524343412369427495177339409565956618568486682976370396719978572443058406230136543334942857968917596062102531734022915974166266070861821156093167146816772382138821849405722828236817897119259402533154839655761776366654654510853682478546274459817226279658666799539386917699686196183620475740247031188632762342008885609832880670340189797612471821920828308805745692020131901521097819339223602529470223022085497356453028196036585759122391567382650911867361842703664421604820897503813395952076967805460978266279980265646263906390323192955729802332203998284251732830266033346174764263819994900762069535310523754655964111496554433816273826397256903417445798433273553943244408779871347119398755834302615478716527881673478219958375276701996436688768816123375659211975458978054503677299935665493571264074254676035080218366549278775196318203268823063080949610460804829233784831386465616740877774525282113121713102046139541452856006852197131025421366992422345167156778099998915331526385269908333221380382106459676476386509348125081783923728473032290312757527559269469559711127067567674479540618068521359368900575610936328698897521922954679127026183838005667007145246041742999714118441283752412791666181763620833703086240772158863296821919358518659137645705214899945402185368995234284935909763607666964483706060981801971672420927522927139079370806757883289260857769339035120493080811502842999153324841948562670346507939038126650041275919496900073085399695709223826891556481823503975900342234566258208599989813171718226766131618092671756094250959520284277553046397369239439089104389317326637399220000785135176434287114747423120949112695011981419128397427384469631261762129372923342794589070697838046133293921858343755594447625473603846263421871800516666187496449682186741120013711700556656951073998023308613783561667860978110186259601191707965175972903323809671774216637032667898311282932617526249179290893282840253293962058875151646833312009327768184855935793586871880400268015645959342190858896462273545269354995781423496645583525443924349021632371011391582345330505753922111668130231104570562538411772542747684759703982572466515187985612326856767233853784875293212451375375408817098705730436368673929642413252437655346432587299416359165402687186080812758625146851072121499745994604299635325361212046454728916298917607431511329292515846257987444498732877479242185225018344862466835201019886871827022413753569242540993966500133525389183927783895905950437456689852750021918100826632294617564446903335779150158293950117511344017070385210325039668267428113798549515732292022657959116427216289430983742067708262783828573932067903548771756111641048819595688527853498067641225544833085275303425951699820887417006052463469240107118175458367004265550960066694531541676774570209072832181760649985067709649843408324634994194057069369528931506755408440415114065515297358186211889057052564489228119562881899864147557840420217531813858425326292274686021733537502455708195551457416503240700454652326014817353675806075131845013754310907369451181405142554427215455840680613459855883896591784174145941497575658371908413000468336558480584824908590013923619380671299154795548892104045059610556752531000245905546814031985538281308440475541811223527831265017843316101629659537182667727529617198365556142095042833155768347189131252226258061305972017389476100803189661916083579273932428791782007950513194046512150012973251533466512437534226834868010756890550803613391834167521971752142827932343537292265406456450785284829769731860931787446733397865174515900182946664759238190342669981427408555190257740798335958141739586331797325266671600613978022756050323356541697994372729443559166347361027292754407411765416414285201633257280814244728180550962349285986031292003227507100060283096218246839314811997878417432186159639173687428343778794884461432830084480586554400493395719983612704853970229138087132197790196010381745992193310237983563554268828368151365096479063558441693366706318984158502046027647018970726289540899754829955052673011207454995412260495076864992059121851982952519510536434845250759310340356590999253128030105328309555883716695011141339529141022168718392380736213061396762681659413863134507726819792037325649928024147197323431225118321698033957631850273538124280340308162393802889226718653277241870333305694067774851834515259507127723217470558628781284468590501893485112744616216363489982612902793465332285588577440725069878810896717831430013917335383875488756259994436280592895316831292552830984815690062657291883067308581775068841806210057434541808122586029413381413966468908262512355756399672649581968534534131207701989976615457863879751555838017219603649094312881996200369742560400665340199185210329193279904478400584579364124362951803948531507428791879961136255634851163224994644383663186362410828572749790150100110756200004312977642301028760571525232008166018013427644700962177021278228826148272832250711884359188731310537932151441313390710901654084157873969492847596397678373387108458442236017451266554157913069435110978844583027159729089052625885283293964275971949842304337611184989716601145364200296045051755887215088312206283877615892250876241558884418822684882538579069240023786896743397987212948951635271652299855119481235432552276991623684591836474439784866849790613727085761268272831301116008229663064625310355507240160367000025786275180766276852689098662677820085285394057604478565478130754268212858342165059786139155863810644202560495917408955938915510190263389632863307990408344092157594294129965310302070714323845798650333444173922464122103752706828127271383344351233969654382794356981803431149309481031474677308980675342790298528401031757561255828142341898316882556634791448100783824737653849911195200614104466832144743224619517211039095504955705897097816730138309741898601431508453374761605359702623681639109465843133758631391083651944740975659227883303749162136897642008531401559613351754260088932920862875257647740076998110292699405251305362779207295110934212365331472821426647975217003510720177179234498647777573315271013735061207615305448199972769978723373674433933260793370783004244917280879476255863370833796533899056021776639359107528485987731810118411856400299148604839469299274000861529054257149708915011300041724395551767436195353636600375058190715323727366022968113303412452903991746875618054160837513049221972721953654310283120671352052506049461962793194798632121841420044551623403072940477686353025384826943449537822427743226832439479425719172649364773520933090318711107674838830501993058905844922143653459481744085082179625015251497286045231558436761147238169684967638185240335925015795210672908582780700526826427432744802973114839859154366254325039690098741898865088097129862417017473461215311130291054373442203564821580803869535996288937062463027116432487222774552300614332971077653994134376727588896531016789800148046275257104231967184907105844764303555768010331228756767358413445785536772413127176804277420166045011650341184271080838788203624859300040447954558589749756931709645734117733466955303512463643162844575856726935021655387907146137571934736910034446725565711181001090893772481757809775569181037133737692953267413008483859051216083069891400887847561665811303034033655182269477826093822476284857375164614153038457343856991185617484220404774156444872215455548445509939545047129747542761856389421735646148491345253311164830840320762711191870846726032268789361053541123679718879933498256969554143324569195155503804749797508811891138133958126147453546848312414087572794844610644280076364632136734345582624471471241315220752056965202227805437650459298343380429173903704497758234998953165018310909388206146185693427992481034475446525438151039638221692485861606700028450953588658737466789028764291474463017092233083243088413104708246338849766761391017655167315299585340160249859199231861867756778454162503638856149984177060237953505113119768181730156985533656595781634310369815923104250552060449550553675768665091489479818626631727845335337664169802804849553252721183404184937420610894345740760480120207573513684211773207946105757428700889685865359084625581597181751136563168656270655543105362520748963500940541378511560697031586898024876227963077756631473944271554341068369678354867235514075161465742021260784465737956511259295993644468102347142373215027443458550831934500755172027341715117201549323539248669523495515729288747747081616548508325506009405743401406701873828924153252278896391853638363286988878192776731388665504105641968810259898195910821348895848951147181673384571758662822620325073289475570428959118800088820799760749457208130498241837352636882515948981593965896379690214188852212788822648101325339964767927706715350346347283314127610336971247548055072410971268290816202252501701509874842630928442361905394264133158032681360206820910900623988292391492112184885574019356754303764759157742363366871268005620568438321581086717086219587268913140723393906041497349800765724105176707205112839399508822344411069859686405130387862560842902001882529591824670257365367787273108333011312189501817892030044147494340298182730612472768179643824371803492145541356548638353203826686492708376309383339846039504356565864759344833869952499854813861236524859293229257687380838619953664592106302816032221169209880031417911578946241438632704699094415107943868078062695281325735154534874146765927613087107589037565715216519871949039309375419296747263447748291702923276273186435994338872968640924546459245215620658635136349458519566326058160458150282562664209046174383364855326941610733553552306831733658815549008642821053466415735725736404521906662050438801286201064010450760944809501783094127660712125182317112879292496227828214030583160566226484670786602951403880224412547083411908785792142754193737744106864658294688130663289069914164810705651360765535017092957238891854034235919240153221100935756816128738788191068244908334231078053480859845589653050231995848241898036528533993435417750089083416349655240553009566430350342238414121404220158314073269864455968904616825792426939579424023707838844954808547546804906513754642444698543972655726121028745613227597000212936471652280330877587190287804992304126047691801837280495519490008897976884695200871006191453878077112601233610989762136232817204142508648153013079494872110344296840785143018592003990283792620656007502411208814127742951326770180045064802745353274472033271318801551085132334808923218521235666586538482275549251531065814391182572096462472863191589213652889926520233156611013220567471411851527955184992550721223081373533045932805128776274625786616088078279702560052670782762525028366156597095442522535677572744345942159931386854429898149592934155231551666705521907831816165823842636705440896817365354427754881822884551158011429349504170963499049517827938416811820032460848701068088307799648584750253386530837814332804654005568532421274495703317986145720755678145794129195526149619732401281197330681081908410593531942681523233840001887868674556429421962435448542740318694850639366596594962155445592947781120156005082525806222541132045536073714159979748779855061806326695557724927657422519911239334979129540499081154606083436767556982298205290416256368753291899508573299037705831074658918550788347619940728959474678386282363084911789386514864398945579808497273520110248603188185994112835949535183950392158574720181595923714626552873517792447327933646572502071294969410217145919840542074177538278920031802971088724352668798217069717556986975824166358996991325889618924818144340274817853396934474431697141970297057407053366032898191930259844538347376487663043392685623802775594269073817813822172318128383840222097481786526103158317912410752208145181603222992579279323534561371038887737016930037020106946429578179296815488226098319637199140304175683948303521554841609805974756748657031128300924574276185792180609925988085988848540439394871579016695330771552775574887578823523863372438574256241319359727850000015765393887903884793038791017086972394567011402620788848295014059472934852871278152129468026759660941124840196762630755252952908089998281989247671819104502898603559235388191069366871978350115020249299059974160768892967154214237704333612090276515018664270698057542301028414371116403409631160308437699076125438551166475854411933250760294239152214574381564524063219863958698194644744212470387706682614999069258622214418776639691328778354631885176426365618576972288770049140262326264218674386511454280716468742571424531016461880372799557581296473127449863628865773066744609800565953010846605583924828636930073839209364911022765772056918332409246940598092222081078232063311350220051354162771881222534373645879602495314562238261890792059352005275228629593446500065377918072832420777285488928200704026501115964344864760654180985439528925285231712926131153127200893232708513445107146190860930086508840078453131139779969776279149517242621198471393657080303412784465903171870648345862784974614316047235213413167640000752603216626157386189583204904687220179925779628957336594442121924179107770137210567615966538457454086795876964894584129098009822348226429942267252064346169892810541333034720363766693421677324951761269918621175762416999778859106112906660597110418435851801342558921913790222827272003836728838146631044565935647153758471015008377501597232936208023612297528493671734490154644123720014119322557326999871127394054900664299724535468194551099716084827828684176066759774901026089664410436355063198714273776554130617175549737651344127020106100165555008278911732302297961292616356297341848470042706150474500743443969953857970208372259039194711422904247360447103738159317225040832227090173874402043017649611925364765962595602193411128872653475756361787247867313989294298243608396725930968346130691930555151064427976383602919495613856003844443354724405631574593814150581699372963584925772362401512585552187130440934183447707256317712817937447004219796095322402013244249914971831157296127254698533606959388905346486912234950695317914945598177281852160055421628940374174710405734140017437221625357630363559547931244121187038224741794270141048777214346372064366918986757653748474926475419092995489608181005716133093445006104976452465461456829123240574726954393793105830297003168407049409519178603887140783076755439610344613884856012602323855946969289303296043223335350260468801609274961829566762153682279113588844284122691841719402054469125282015475404420670946934456248331766705437946175802846033418855627357961506243276605760831930060114143797055137163388561846848065478737192036516133762890952735984982462881279646321170288429857332475963649505724867604827715590160583647133509093748257452610017283354722535757681706389755851350113824792946589471457997115739635450027503241749597329075003887831033251438446702298527903589054028379889864146445701751965144975550514322317024082134393190832163162494422398255391961471062185738101380468311455116169122674419065747061492920122428564417022219020787697900446531623207280556133527211679934700010058159114509834422335068972678826953286697600547241428831167091344986101787726353891946800937666434500063245505871683332155355814872082381290219627127195328862699923807829910330435684503550440456783203787864277325663016430679465526125837795415488829938499914208869768007074979818680819599065994570066528602569579209642728188091201350439741564154751772966232814831753588352619719317610292688901520536389641075833898357383093154767851568882932491510722468695684720447168255878999195163761375322882573061547844776076801292306074610059363472383569865467805140371299344629347139321643447590695984381501121303188622037663005583878778018836886138821078408789319909371549554260739381230921158235770013054413683583373307829241734096242569460221354376434496615525244522518458655299738864164475763517673919443181723987335057611947354452973878206086101679314474322228484845654258400306832731438644287730734037887231147243143067187469473573615087251986679022488902978256545365514088468396378305669622871683202224171467333433780080377185411727866188540691626929492162765151343994076936386950179594941509087346869837488507793749216953067427406253765121150069533581046198890456434382834364903471727813910004858890234661289066512346364436647681453070201925623871608056427413331465124396470973968646813839330341278621102057166339144646622113938485159637547632155703054830026203017345555955876442952984092415555419609399428789682005944497181797336648100841004168400058794830771707539050654917622684981824457764284184302919691720500342216834452719045870784332832822091406263929548702143148541219536254851081378012970604605051330941588606469679236479914406145065291821027039601991869555690071030315966999386213354067543836181150701171844102677547009413646682528669250853310471541329896711063217521447568593281075914450363746776611053013270440355299908925421897328281115485475580893455468914290676529952021453554250370603657856630999653983686870024699114758762656513152702414904526062157017159245106614181357556748935068397012465667251385724913182799540500363830952329943963192635909095890827595851234427608363125888962668615179789918116106588354002927572293354559760372173018837703904703317923648207571997507086356715557999274928162994283945166740638247316684084197156779232674598034270286269387136141553844272173385690437102932712863050547332590937048055400878317644056566119662641269058150363064098145655095599444421245163586262165184334248415255236920819216699467633394265493267957034832563799566274363500920330500207974543082015516782676539675473486809920240736692297553399349052596557031867910865106942125648705590201454053650438463406205218339401243217951697132393283175873870639884632512681534461863423084688911842934250866684770634311380345992166782497232763775002219437172636263196836369454273670891812898399401428667941654374810107752478346753938265956906137673640383351878714170914559295778361512107759652871111897243830908166940444757298281646424459780234757032349245954025684207101625920247893554568719911812696516687777435038513263747321580942691478256966623796254668234778698033026409148538184812331316318361836682029330347004525563580177342061367812414591520693916440720180610784835542205782843426513223536033393235795550374986355085514431634343379511268715185963763091420600641379748306407496182397629239233330911593107677518060213488883903884611552416585524071252312701215808005616743374645979513097560330140649713784461828982280567382574682081577210025713859565924055623784946761030733949056054063329883397003874173758652816941541959720488999711890085349433784785735101592902970926607041742202271107955553115761618481543184613350929456667430986394350597232360037868725395856818330803577808196104038150341417420748334950917256910443890729164682336191819525993358376285777982781623058233368780812385009394971328365167875926505495684965867802943071536647924582253805558584263894420466792978617742251999463191549565720748529790442581199226004989854547806992052103653633370728200649097164233817559022323934617181453752790858853384800196137789745541593466426032261848301000057948144986274613212050216529700643453605344041416966637227164806260286342049718841746926581274920298341895015536555911476010971193517884584445486747987281346534819952591047051538823606109123171303481554646658402133191827655006118640528789895820373125750082418742747431755877485395774041581927965989099246904695978035641980604950338399093220052643280028261439367460964665003760626636982976919843381974843581910048183729477363773143105148441255291067385686278588572939939275423304869860767099211827200684846696787180058648370754422858524450767191532300492219374049761752443668969215719897071829394923572398983895341101445893588159211645655928071684660247915116943347365672970235413414740302814345737064826971071269787884075467058313626925165606791498339311463454078575683492985058017020695108573273946566955175178511401230020280124393353515460275754099754120119140541526920351085170030865312040557860397976192215922468525816289520257201022192956875699680665022417525354641768645283894395726731430135881181489553750577937883754400189661750276960203648357714814248038711763133893678481177993796479437449715078828629415085497814808840033633141009851925091114423618938717177374183190553461164993136219862285077482105914245161948205519648606327221549439715781204528049858399794704433857908267688143788711829436059806819209128800442289507100443710836203546074326889072008949557351233513263294399604371739044701359843015481193271539389312753106820760070606110350446978187740961846881642543502231485895752308053159888383070341118233060403390444090513298592912205029089828618994535477543933489568793066151441598885328361630001919170429366615373605482726238930808704278319940445524733468430688109422802392576989368952106172715201622838787068808848341767475049641164055628941096098353425177602215257043005477672906223724647822461002360822593640391582141164098560032633437279228558608068439002773344050611730857476417232271472506364741264440830356758443450799211817058287675682736703185264629419884059779823200267543053777197797932569671179421109773744833174171871764120064153936662130760942490521416237333660940343342671827963298561912614755049641328764384340269769537606868326582035435864198710338769119182098375902702461747419433590179928362279743579453817674138594414775799302553098344092786192423097954728355992718524595582097261292064919085926607992151852070126530623882038740289473777770315074569372440654750481201767986581922532137225590453403192153152073276860916591948098954973027027921317563833695713379620511322426661560839551499941480904751004467184624999158183685252708544116069468270578465003179138818606553421581529480232674386613379224433433123097943070654449470435965593818194846716418362684924760399450254552322267203921033142004431700732926448110110703248921688891017659925096071618833714051117109385056172434023087958142298383303945160892569574300056946591646581187625916830618543635703716936252544095700000270406764012847334880289589101473356449685557238566728942424901727546156232548438232365361786740487064700287958967707575538143285678693948055257519843595134530166544431486006485550427092678456364149757394096868414117031898307079234790046968917180866829665146389857349859890315600701231434510234728652895904390275871484775364676863426540298009582990289724628706717172120825960972271767067447252170848974909425225084113410031735777309987192022045153289232413325424829897636167543624314782777628934012261951114594982922490895713571829911957595601082024430058720325227116056701089794289079531587246851324324625618199544846132165128385720303215882849292278821295526229259709504166241370401982680687532218494174295891100809943202758642745034200631661449811243463761645418364141129593294791079633086170005043972275579610046197083911726271459885055726192714806842833328151262103545125761520459889444163318464309812240291197755353783613964693282323192676240471349624730897250649503905343902277559617921304051319374322147743707166397324986787289140499176683885587847995424678015736582595889393715883337564167257819740250037591917919088467868472515344822184596624689111780082140709358574949598678468602898953220580895443404132526695967902790127589338687092984873741361458202379137281593208552047435920377580805595563744727545169750118461997348768585293982887295409198219710773845311600537879201820338394631337006702210968538289201969489844747761456794715971825529861838964932850171032628483387920792544574270515560820835525880602856172935979483256959481923226723972417517334631473234653870684272963315397279562884002163941794964533455429378217711414278312177167431624596687703988231201204432701368634202077965268331309137862115721149669203591075588355032358600416474699653465638728533784214324648628854541316194544023446016329974041783099716547445360984567662332650990688959826709904620058876982918537430115300770432632683169929698250381333259227010202528869385506153331174421660735454864505784248560445574649259053025271476651188735534385872264636998453002905884914179883271583625397329697818351398362690691238077878977903951539070354191268894716004232713368594047267162677352476977285020577861368034457327473696862397941780805937446739126697484686447355987194152288308388800966728001868035716020334527076622952411321911228234984984076775906625352333968764741281727790692967558773526816514123715895097835415641169584460576786326228251634853481695477142045280579599973426883651148650260064954621507471460018933541733221603093910094258076470106092348339768490409707994882913353473538735288939584134095253386107353696356247459543374969030403138335613146357575288438561417449799472216593216006623023170590308694869883547370312438465286511468177774051030574383660355566930471696204931724851011025989894400196412280898106198893441703540816951883040768007524970450675748905171246140846491985763258877140944826823197614013755671221386426111495325426009004504466281392112695342038935794976571562467671739452786542164049053038490521891249022015353956434681946724173576565294554197996967914163646506893440171707109483421859063025513638691019658025478451568011566235874645639974171788928271534643119102656015914881341094598224775466792623963223799225488398033058843779648480552979392137003226509441686304037930952540153412701555574271135415731908077466846353825601544877844190886020637286587089710203471607209433667051930389778100759177595260967517786481605502196009200897400663169531447555180550606717598544861520058948914384578849249000459275838692020198706528011668605879581241871037435837001927719040307380762461976137995167742566645994770826492394350845870408043630274735922614283013514543727790751180835022589137532544007936931594384353432999490788554184705398576352223602226705829851241519577602474628333552548970586181708180772360879519970751908244018564287747611424708585311971283303126461423139226579661087777453893879326882742881530480869819032767739735679438635781270814223354444893524801258098164834590951152546366179438680691467175052149751313455547266257307221690262547672282856065156156274224714759660704214115112562460991943145078902729658486902808255240319436852140388386793993868705713970845687986295603646297983080350958974041495972702657249935609071653433443460431053117529163061444374004879202966408924698168196179889320372499934415516530193486615065916035069653264737153854520839453192974438009930152849864325206868413665377926120475631498587036960504551962055956722004078781051760771566641458936384943885101674848140366556204761500840395611525010443770596872585468308380444851384883752431480580445436152034831657317422643996356601315500449164025292994021505766419168423232202195533448700411276307054206357279115731779219103816980153151411153532793510761766095078522276827375154936853853900587194245140598301309891035082857135147352643952508202846501791104856687522520980056948895104458368203230168744544893277632526861896751245465758177332364889574343684658926487244228580478970890429544430570987160373989089774543409784795034467390505529378974562788027190341312505581620615166976448985503034269778749561459118715730005320620120962817758940965874481354167590784442745790157157326044086294412123545727179312370496824336949323501692437008995899410598732920766945585170983038829636896640645890924223356575150706161220199966360143803013331910839794541010267556473460325935465933274632589823711980590938499234880492978434150651534276702031664268096388351287954136130473256624994128284434284901918158079593015779136650848885434625709998073035589486649265682047807672640730082122257739648034224607973910587943019923353133117088627451045037095374500457366710987794742662461506135229771418871245102244203491647604717325586346532479337699166330683804710038509003771888010384835894407045345399672764791027954627109118599255459936397775546141261485030775333534013855234419181053539096244661425468833167572407267372338705595150280297960134824347991618399704072603577483271924193213778776549334883632254238085494231878663719472123528579150065751331905497636310484395468926524449869575489772712901385554395290884132179759313169370512430163737977272711163412657389091953957894383718520716983680010547368717758553291403803531899878477466641064048227368171412640887724390879325436891671758990438846848501012624243720380428359949031091566067302917684035549037043954883604018834146004965302975183034797684091237835380566450092166733764770916908314916487370475475680925149278232507829515601174849497185322551814267516989819974710218137103341479633154340130300508108304832697107325474569979653058382142563538464344628289172828965067374136393488282405524963446410019332080912068255095292320406366221780510748051130763494761937579865793179563579872614326871879770819224909063014012722127370104278772960522151161495553498094034817068953637275671066624388992376804767267637733875028587453661007484659041442955826878075680989863181517670059874612044972502850979942950589163910626126884977566732987356419837795260881870868968709002292501927792716313171446225308344372238559109775946953955757126811216877110791787264194983904848217455179124613044769478696516434911702958641026528128276415886380823274575273898232481834312354997968536260584439871644217046286668433628150962263045432616923492565373205599091407135962970740378003413253276944074739722201910544331391404177732836288109791685384350193027057441666259656816934202389215987746447743128241692107480219577644037397912795153527100004911395168308344190855842443822357253404656876040485301159931978261113238915972042987426920411494334099224670632781946822064666873088698476480482740217382908041821665548628776024701507218313039536683184308295857082875251078175280784783890177806734707582287065948691025755508490817614012835563804145103816635000969900593364412468652394979418166930659392501396404633272192202069075190664317482493147223462521541895375183186701622107073698439332446804747988864789434919671330587228605648290272431002248719270887920875044989021856526058395968031199454110610122275505753054830476134887805149819982221979564678515026410077314471729518642111148380177099834726245085195603591552532703270839546988429775149562475063242809349569821408002057190977117908039336691390492208026018956586349748902262920175356813300407132939082537737021017059332157660176251507245569177084492315605494162158368103462328077207428015447211000887942965323772401268012313465981920981056838363528094993349497305841039710554608842091487914747507217888141297493230134095518650512039765042301047663614651679896594466579228018002303397275644957868321661206361619950988097431432016290597372551608829398102455284676600312497013605618664818510382590259561282941684422569927734681508248782303931949105426661104352674372186624933928186071826289382814653677141866606669665669379627031195178953470849162233659376598495337559375673328701612983264188176759754064627046161298659631993952328873211665582817995748141164472341278343848600549229253678799118630319229565422932185223960953108049549582504347816761041756084693998785870824283173297869053904957821223422992978817016323998155399021034451038381468276720097144211169258843596552700418455338726525007271077225265232766158145857783244727547471943805014841002577076021914004752207446849746795442647675177415836954487976353176385438130576474547347492089043897741771579554087386964786385325935092476531108241580711401947854718028353101374676309333099617834733009944814114568255994676335398295363366157077759277405614355236811834934459476357876954001849842157191306309054978153976212866254667950563753403302071440371556122652983028118208512074673970635148993132944967893295739591175242761055574873942769433801470569390368649490757569085663778632240164804392857786350294706893494338991041708648065823762680374770535200367118742486164456607754689218202919301428195624439370796934460934418555383686799084964400454850665240839274706443823558101064586977401526825648417423527698219625206545409576821478422606059622163583942053903730929678851641409577558794759733273347069518321474377556250298820905252357206427792820450088908356205360446019116499247090736348473770144026052317450719205490382667619517774807223614874039262829486999015804614646817869151817502063966024988192240362428114749336882894482010670955758428774871614056394272268644476426041001948722368975414571435596136828087724895746925992470695344028068508757508034741038055697108163724553066328505539750120244365488554635021695118958562706305735297909494668491999056217228183895734754975680269539875472782047589731538825502603416231042101660324404630377008449802210812424335484140685646106444124100834692974505500560011206146151598543242686246223280747876544216606716302618276130241103566467373481100748490310299354641506433397604300013052418757561973814386215153200177615227520015887968835043427322986495773704027497083693084174618598522808328993389314873052942993433470837196704408798137604803293812293003065584767764689984728052550710950110989812819188999485852850230658485680681283226771651767004363368491128445132792819063396506066017226857832035854408943414021276760172363196200129800245805702409085915577953562721022017778705943838820195810146817798277650955115656985990187186775762507424399056613099719054071393820819212694707951264477366699666377043992511936797088791369566736841357809562138759762799402450692167618850999873509128452951641777180648951692623758569586995640857060727826433692641140120827982656143596971646379859564884849490127696210553215740048724536599151366701952143913151658987954485255538124765439336605151212135644758466624644196801859744255964011798997084697257494657202726596034035107673900005766248926415710467343739917282874663953887669439144154655611283608483896157914930145450526334667962740162500676483771993491954155100689811302503519297746577222167540817706861817274048480602507383773719594808758365070538088538685109097215283150625037619825783163599888676254638143891778266042052415366453475794402193896609758213038459176947579358515550822220854693890597246422996238747423782546061378882234790637631396923668030800779857808441271392254469172166553996616510863654908836646529897263023752677300150068230100625747137416751396533928688890349271515303868137888530186225429496100557395733642902578389373600946869562821124867348973764493620751708861090998715816647652890989559804430813227143654116274105946473052048600702177416556844268217552318098588615202469197645128051927337268073634108855945316776462393263397103221536447452192136300940771207168652069516196639768325016431406820466135127538336437084827795186145098093846618540307385100073241848438063614968626547171779314408951655742294146145819849432684367120270183174519193166784867226172663107117343954484462106143178310234595321603161474871578270753077362872262622280060185580167205053083031736726522157719960144993567152939722894265998630994521091205494472052709015663107403330659646182961695350955692950336019941486678023432308538461362863417200684274911357021523066396994391054692120525593734693516191199808569613771635751292235226827513646262332920137473683898607386540035042760551488396992764447394229300414260433830673675092594520635969483058534959460030824758420879952099856193285557529112328065357609613429462437887963768305965744195326784486667600714049440016384399693024107042569590266527226290005886946347289131706631293162816084791260968163584995832060305935677780170115212236130784631888054611803465411580744448303531200005366032310650854297042269952223748127419648727470778214142345740047975234003995272714020351970027279664207374678296896317778868556983881000554762386804180402970417544329454311963011484209655339301224990479374853627895387135913946939421688081494477859515330632443967299251712467482590022019043502531709902522712463503599453295842038605808152252984664686811660829371645858336383827452175648041456194274168159206150719212522806108152752887129771444435924136075433931150781937676284733758960552628353587701321675527709044300254805106159928520901111724847775980314044735800774771388504659300019632352621636418717894008304586457849891692170797929641568643469051127193175640129089418840179298658384098930196664792683515497903959219065972760930413466154888398427165372304274875641325563033652971492602675040666122116238508542932410503169407185006609682374990879016113405920389379077407878679843095379064848308436042736047560631093679101794886878654358943720392028503456910807528844182431227847812224098530240281434646065608493393820914546059369605429262993138455001319827364743119980158807427193874592158429126339910154143011250686106327788347601917530142141693583702305374818159827113632630232508611884298895041497113841472130264764508319205094063348987160036791427890882793247112810272404691854863492928473437673859809784187872674581308484145604054291534053795879267814732375654428873891315544129181314134663412448306071330638899983203575188125621853741430421961142716493368337374120383707126742331471471420993455937654392635777981825130894293203354058907407524300353797471648557934294842965298757662366517333050238183509756439121899405093769163266072297420144157421377761165381789984896529517458723100508275013892412704479321666518869743990483745553874976900667025061382350082142173751725861875479943048077225063350318882382422461647264134418909847965461670696475791310170967733184750423318545137806499440957831554681755275131764830624600656777365513065519951579895851150325711206193706346914728012124627682200478906630734914536320813907935936798562439838410798848405795246702412598313407029745516038708555765886955431231663421506157513441563392872612221203953676460460768210846693827863794487455313529546389549220529288991052518734342065168913572853292420223015003374300282553305272709144255799093770534925466679875563267351440491255044008567459523872782205379511997471406114766953124026459612186192583487752278889865148302113319530912286628883298992872224220312569387821140190155914761382769213632245879654931516903739385281932917161542559907819098816678057292723964205225447405979425032074885617462421270723458960626907263176585226792197719870845279481355308257740213125617617645440049522899030621415137658521186907614501953028892198746260403451164898197076945427370269676648823781750021038572996404246257947189251567215122649048858012229152988456253852305356367043268951827499375811601946599359857112463757813245056001913730587361784671807623695822041749305035380355870464359611259433863105194368917438268381678383348619925479811960961628970298165144688265429621169729263099597174378147604007837807720887923106531836597367723263260323372527816321942226269292677286720463707952295280146710874630260248719493443464415520005089329123729272601865283286155443382867272991024097111587683652676426492939499070504783531381468462891724980190308343853285191714612028456369689607137587397695267595598843402000036889365636960938834594869292733602925943494402235102114580617036671811508949699360477868549765731361564473379350488607846019442586670992880298837135943993951777085347086545850923797987314152495608468957800936611605950524665226094061917906036949356352671450002342405442101285499962339295760954880810802916299250736421845799491099314494563309026462428962593047375798593252181720177462186453690988678016991065961876966438268179061046522498040254853817191264810665288496432472039594935767067687281937336336360682813590256120328941034905380358825054010681993212831131717063625989067605783498172867639766537392715448437580537828548367965378709823183773523696078139792495796800453709941078761391689813516165804479203676506238213309738425945940106724871774234408348916259114939537359931846877935684914976625194951019318348872650406013856888156365207569408601461277430334218623571425995041195824028882555454809143421252046733918623658691271715724965836556163868437529565682230053707411706481679539534080607574499143889895822210131510508655273221441139233949953626524730416384410553718381266225619701078569816106777653701534993927727589562506394735935575591720438764580346510020301001021628024138347686657396582105411099693467531424691187187073454977750607181173541089622518730697616867196904697110481020940991449292608409378653334538829101444588849014007149274564782030803733937259015601323922758289043037083335271515422810099471673701172622024962769061192472544668635975733240509770998818076699645257324785337375829833067173296571405819946446877192908621467910427525007743748544891055027360824279975902239944906284017862348090784518129532166105253464039937954843950057829832150822932994683987039828629332402106217644774391402106222859670640417943722151091625014576719643527368542455127615568088025784942185933158771092421572380156926526737443601926467881472622084281301004282424638401515710357934191300068545772605073363803123597506970661509105933060015500396622189318860914960581879182220145562485276966541514402637258094231244109999804955099693138203435279868763805045613400205961870726612902501394101161225074265068206413808826442152466175174389556216680457425000764786772603719217243295966296694297983211551023364294924303204424497233603454502983165174181292598406367101388448618031538986375852905517045082796136405294085988244712897008837253309471255746429948381189858031625468165857156320592828045024218026870690946856594158839334365360264084710054363336197620252497527430323282331352235505210631772197587388248679231822817204844499922867404809778370700120692469250291109350787016551444877231460828909816508482439929521205010548341054815947008672195333701875680396993710202677093869323865239876680394557720707375734356819434170162446073543585586799810219272533691259448013516869052157716106509017860290068351038169984181370277570066520948213264406393574864833308343737151205433372487405686657815174308034311252399988151574809594399757810614371384980252436812999167269663566238825460443403093949811377157012044694228049442782694719728654544205821468711195216327755066004568185927923203072264310272470625506503402706169986824087679691468046326516645909601423970450410034682849873043463987154221936364219242049255718807700092687686611984251655316737491138687978939624921759330161871528528200607394015691843870083783124482868110140880044927401871892915710472355691885351091949410315673752854557037508779704925364654241621730090469180925529182891910327719669766320110017770634796566924787399127670598901206522727773953877664457713585538216667047624611479989021764590425777420263547196442595350352496259822482325691202676180625553297532476800825677196836609233081019068108881218359002240197106925251200443838940825834072752316224483684443644406916629569257116260023597902462429733030718591775019456591497466134873166684059087411988680893134136908706993444285904221894447683027216400661754982912492479176695732089181133791644982089279576379270631854840198404836093437756726755469890929042243366227338001481199791121837888148576179572600171292099914666671115130606304062748309142797539059545589852527675304221711291121470592927300444970524804713331061467443614224371778413822030049321494203873289098676186150045432241396980949005917365836614973304743661364384081490718808669660589359396486337979972642556731147227103525707620747838066574171599489088194837742906246457126617718999811908660280855314721349356849310170323196124573652028433245920201879069826412485046660736442815665453373250289213293154257995417177447215002320840047789045963219698776905767474590444215572579532218934274848423000267940393873475921945520255465473690936210480083625019017419467764161049938884789490661774116263012424013066015134803141486231920198780180488289648677104610421733016099184462247107721998258777455843757138082332983289501551063164439202556463635216443081190309160799746603862086484913262239591871725086587221926606751495546526378616286090240856356955440541684574365770573801270831692395591019991432655047991315018336916607671725503800522217292365568789277962593258429295085569750912241657484394256632584756588809782315102443791025102864653107465976971936649223364577051293497086356875391888950828791572529804236804710456833891820486311007725844296423908557742696946009373870104876339680434367410010845647413254879055316813441401648167986674054328053951708889052812212124732214344790886358248871900706446872706019977623894360101663192390990671936623932493515327524437923268129248979577425062453387087951246006262668156254381680997965622468686635144530575682973967220508615621121143184017263915825314282791537994385720356343780582568629565815896278899205473539714853183706193434106107876483825805198010263424432107923204463807438403586520719871421230660072333442506022776655463249987750907241785632862802694128722072996307601127074281693071801426869907688519238269246880794749908080762449088103438413191344507071935654030709289462134525063464026256636968341496308745491467023990991373041155475146425804205111954145057972553713562923740092688340017130278303527086400818855842594522484741579648254168335229663561387186481373844907342195146390464336780766278624299514648116959862926436680366904231309723887140664866911155996738491001128826859207240391443156493475224341496085458612240604900039409904621154968752394994154449598673389723216706442692328447958401449941975129349367315267973245422230425126826624667781355260686841359345459296137619069136246265150568741299631721178070310919523361017450778671143984069105026182892315259490590917828016868027253999233066588104813147461572764373948463137203091039314350963479598244201742039388410327526523227081745207048348159307896915125059418108203979103470235124600520276664702383210662161950956153677341491471174300269993110406981204268281563534040753054344053329164732666369742517487731472168493483112687618007616537791172475901690790742520439190343479753215680121959570016089136520916634470595092993126828250567713925065434686126231739338793834380447346396725647105153333070023158224602940213936490225529181636296853722162875070408931075066515379662338065349716023953522288404759176607932187037131440529027094238802896323824149469491718865732248659269467684065995726029556075097618079421748724903446356010158527666890865853933189809818551689541481291728962615132390342919300750672940323429982011324490120918006398107824954807390848040398143834179979070533411471381764022642481834483115080191979108383736102814215699430515228563879261682352038230195023006647071776408167363517093629369019324397657630534781447895188745563291020173033647475407068536165303727657131662406884330136900224992363836566317291986406244921148305090367729436417025101497735229200815400371084203143314896095921664184675777267006821318903138795387852618371575992431355629397131585524197068602531314771490195330227723598690688039180585230735666777238635722582431116123939456040731194037027848547208608839720224762200677756629289249342054163127944880870335627919308985163676891175000523390981014994273446606678788840938242349790336625837453402757650218890170092539545370323938237022846626629742833244017905329751367731295208775070759909665145112089348918502233214486468996614755834132300949779220182629702553577986262470405986911822308100696831614122306835131369226969298085441695786068102663451528710198915686025240935117272307696362601729233058721060826266325050630066465083263947624782474529131447734093684705083421002546402392690670301298568565242911458153465557835012594359946263666178789535337858320684922842933616539818320394749771104359285985773967155597888568789645858894941991325521759402303704860870969433549974781905488317321300750350301275463735841583466848293351598800635884617614791960913487495753296494644585295838685841689295347356903757764371259482664483312286760083899580807903999761372052666398015444107455481968282624006590456970500949115200442074491931761796909028868391329526495358416242466199148443329792298976512947662863485568539648196791996247452039946123074168870424997306364945087261142474414875195178035751125287531179661480169310017789471160496608862550398900835063795264438593924541907356372835936143419433067615284546238825284859033492863522457286571319825729968459842835883737290842258913920290446394304124115005606147799257920053462221332331341547697945489315131678951947952127264184228221627380455809283246309608454610846580287496050636667418403474370744482739244224577613670858572495526755883688864570500860195411240326098468874720212259318680680929676977341417745829994849967803697102799801431212468254581082500228165351790906576756815361418970094415397536085995564877760116861901301576642248204123580801189713488464152080689262524347802620962281829665006361211541160955225076203839828128234605568157571330125714515287524266861751767202285717723336276463903475895715798995544357891681352084812183679874651879530741590408265058234136319472724452010361949451424306579180526074192138751065854636939740546931573538991123156884122374751210173826866403664473430287503263658426202235522440848505559916556545448708902696882280824433218799167556406239151911156877105038369839926428382126322832581623129922545720477574353720946640297988661626906875252489868104872653311656490545223449636960088415253285745143274938781112625122743700951356203505674930503369020310292392133637389689503170948543921356061652112331145610297885212627652024372162150905439410923998214987273237211564234982611617604231013279764992969454887543964241535676139462744316623173955170310889584197542572714130868649769911294060782462364913905216492994337128034390619974695309966517265615249926844062976623955230860840836109555497107696244857925058919963843444210022262451185433588950248388682796186740667753102471753777390867620762870440233388808338232772490424148020479327910715543260262742582644084640638459833891702257869925864477348215201741271423413614484036173078918853116328346504840808843330336174820681995381543387020888178773485824360821598841018180042183157869894287693094619622226705677282508317557980213063833423116049428197130128212668081157359538013940033089476688892963414760571354977019213743938972150422640340727440751535166290306279697215337593883005377364747661864815753484897103531103402269333996658527580399403954010172291604031324163182454699974473190478160025948995368295779332795109502131768638655345467968179516009352723417022547534472467611142505835253288312625158400357407003315955115432378077333500268901305745652263806129692743123761330717978563534385672781292482580157237376689644952670048745501374637053196064412877985290022728487031164038917059953033373438625199397364151398164941534819281681773221085804854211005113510526001131322335301020585194074469493325426738278509368337817161069725759826071593240416584797950295743147773488933711205299194974456114693819568701832619937217836719636654933992335057757775207960835559986989973104658661499484331251315106472119858018116513545362989857087968879521587640218833742502361508955579885862942487878626786441795559121563661273193362455858628424778579561297823898763908690915019977877746064751605903071524255579989859305882435272324492251639197135366108962733806424091766520289390843809970281764560750547582277458453206650165097429831591227901382439737885672999578059979786765285787785461091628992987236293123229663196999472800865151496572813242445127901233301902087836851782628009368967433206302238745890294409096417497256999495401578404130818031717333405444193181193302201394315442855854060680181193357749176867624564130993908775950086474223884357342679907706941517315486932127460236058056931827083701915965185987424903580900716490961222657199398870197433764280881875403472878059560509605521249236015756881399485906389319466703662944819945538028623065317416487468492199973898914870022233142393220004483187838650232802113686895144735978454899774677123641460606706846580164408511603641881184638215304982585917530381134810366959336864546114518797732095111254480365386913741278215009648727351115119979389548021240524489073539779961443028807248735185291685132073651555676298934975423802262704827420572578219953142562840628987050353902537209790520706607784885352173138363578664001536389537624602496503796562653907855544648054377685912810844644335624700960974101948671833335377045359306436299199054794248613440388053623569262316242491195912178672984291387416511978266391291547069311595255449423403018214510432172660399547606741477640733530999158370621011713279846211026999290922781104995365573338556606526842117727930117782102354789287247422357363711110463292044908130754826871571893892026775602524258713754084428973852356360683209148460317663203509509411371039137281470557611736615069351339591332287907328490985072107272617132961184107938146117704657040349523079836927083737529550147328769168418743144164187954161492751977661830570447705014370372342472283499332933334312333770462779946554434640283365903934816050526955277021185720159171045380177361287326996058121619124905387503836875439645677532794702147364168052552745948888204774881162544960126270978585814798053543691850051958509018615879515504276331889986602143877579965990305308809924947139895152842817318226359983398295595652379428245538533300444021799290672877871339901138771301419451034677114134241090791841822263791247745261683856894585632418411743539971192121478356473693809875483958841248418725480125623683877625451507879508034270447838687062936154941838738297542542428246807533330796937921888434233667026415372427570829988306184650732534296448902451009003240363237387040683593728198830393600406817960238667734635933814961449035965916758871005360871780775308987710617328157588909813606878879704575323738634382306862457010677434408991399196248770419001300718543215513404685406949915032905293393224942564508927248835533467933758941958359065260019594104449400601635612667914381389771615859058224223782871775436055433924896861779244985375230901344391722260828219121684543036007855331470416756933199928990100793576573449816774795789024151583358301457847133194522013659477961216664568030945462451052948515792858660122467217548295498710079870120255315722504907123023618124790081943139647983866895914420308358247721781025078386780891737660677328968470652308590203437678270019564908278390407286718143883641357842419710915551205762256836047763250104159342619596752610919161973312177052469929514186176983555808223512735832280389876910401872208139795921341213102130233082669039180467315363426488412237233900901411710595830657181999323155084845826480092150526021253968627805358087892565793735987954112379771295338958260509696159021209367888207645627742871157772843825307483631128272709541921368060525538927476285811869075858832907031366915079582999153663287008027247555190248952318296442616859631221199499854057718152732159268802505468682941113010740453212198376692796739210344387285343676515769585485851692035296049634786965561743616055914604258568935913342664623742664425482623737051823082224395839696103395807224071975853111667519207772969360057862631953209390094116887863735455406633968553374379863372027337397054311404947465582221029431625559985816298715437527412144624806698320244961425023153193602778930744300496218721961106294579248063577831849653734037223505223887745902788780642154147602523320391513653654645948582279125623060949235659948338326836303527408022400015424303832690798910157174809513499864289617411772485459993850076927805374421005431273337522714795048543632334516302934996834720108046299530350644303966362732987373849059778696113173801898663917406444513449254526198500535192526344572825099473813349511772846611843113107454247284399540311090777559906282709747152873765434661846884724138337892197513981075445614537212783588267785019760639924114127176558949185651221801857423728063769307604800510735326622924577737733546151552741717034105600698072636380838282220620606078582656327086342630846958316357349880168363297689460669305703451426944115457044773233350161704765446306257921482081928080939337720858599652830412567307253801195719035690058815021020107153380160513712944404398641127121695582559799846101598520042780411086158421532136286102998297090466696164278189330929996720450072571387851981924213707426038179752198643313744489144542135286007811832665585200435418291634603057715404880704624870136297660872828321388522902636023820559744789720309325870642029211734372513876616612612421975149962886938543554311633821620033123654124278776222017399010595146162981705953685095204361364160447372375467165252469767174594150706627234787888900345702415741807757367557566517948428576131192487247645870311532039550009251965065433115840865212623376930260442842571546972757253109393981551950918048229504854910020919385057031485101489424720101589249136336772920217503641014292405648842576503047936420581244923083701728969546105131360925394643360079137885057265514477136244116602118322551487565911275348974775797826373057041442525606547797306429202445669809502692764693523877519743930244091089844789681360692179544472993584943062474553221293433807110113494351645585440875713879876528218182873125082756815071991271464089172881667419650908739458403296258595734622188126276088187488538831853253487256853260420561018333598644927443521940327691423702126452209533851802987372024378070328533894089665193395343421609037286427455563676201337887247688226930964107315836886094698891000860023604128014677705108777842446822807863308921763037473333877820461053559610881582556306190337705342607751092201161297080655240708334491240786819997104254713918562452828052769280695667448775090879967977772935263105571112846940839694428412147226879602976809495590624142356067864288021385443788934002610105187366222673602207693468121502446040380138558571044718150106262258779503496918348621160458824731835368968947611126964269243018992739046721331952070294160001263889241461773239103878584314804480177764629886470258430900856611173315078257383856837545045283039260922406075606638088332057452493209634516721812741728288762494571150408642503671166114927683845446226929521601913104364058593782222323225836839146614728638588430331777797826336357379083158818059299128055644939256157552914870554682317416915722369978057707467966522126392680476645849130786232313973601050537361659665384296922528761581626794027048650511194533056066565931910599869165923017471353425390908353621369657946542056099730341545778697347897213380264229505599560881891038936821155110988681961653777203692403367263556940690291929293104031680063847579548514801199320556687044647079825769166460684988647509781445898523139821574568333725324614097600682948498988950648404014634318733681998069292725324054872503541503411814654111265546133910073376007256462829665273277427399133124506641785709208441499234993170021910955474735999397258904291153963229832404892396266038776619065125962598327230140109883237339062957879455360417050279324656871008807380165376847201767923205636080467039617944740277389393586471793846913331899359809320678409121471571327368869812976449363146106642038171910748065242849036692547390443490060929038979580621133578025825749578746928269282589411720287346282813236911522215218236941194010761440458435659993057538284478595738843155310361822744425486037803866672415418662845639948593692306937419402121616364640527192157406383812233969638412965740435813014622402630683642499382178727232729299191150559670652366309365495761571153920507377957562129843541216680118265025984576276628424011087936907429316495892793432584628580110408606825758863457776795743728273086516932601413622084166873435659083050470199358911971153512217222431760799992368791029333814722887579320308003881768231731269124225909073099720882660187531524742447996558529527139097382890033891892272168113442195870847126220413795065671683436165068378459031279323301780201206891209583938145587777273010229280378113178170639184846694072479655747982727637144496713754522047780528735029932477286213495218710032673812643882793159372710142908337947553956939025291574115842738080341076775711851488166309550534958008110494410720933740694589023627362250837222178746813731070511571155137561132339438667138207871028630193744064341862058924454571845454158507259253537666978616106006493532945933387514823666713283212939570630883812408443564928828434544639366547313583624970905171189724804214519246589316584027933968194226656446757812755476117346918217758786742077117155404928141095937993146012287725734465652830380533236564003959572998822395437802379200623561398177115346309333159922649009607779203692258222305284427557237259315104507220445098911667393540759387975986854434244816109595826549892861891486626523740592518995114193923801014623267613702507341775692748851628614720146648393539837918602407305904601351428892900476309353301582238368271413092706769281549743398497055414520319561211382265255540752088579369437041640735235619233423801717375710607832437853991154076104982040936794441783784719009763895528219746382001140198926462739403695258212613124076409309166305925284826263114030209954854150468348257819387485867137169929513972341748992540891879053117258116138557518310753524434959808561209308629739213557529635431649052039806771903565089450465960898007192642047713383554408335417707464927001724778826884912188009546012301542517919594923599439783660510942741443435586608729523984085195044184288087389989178066590158648912759326024403952774565706755351287628535692646033214848698367805976588168466016019194419652187708946975531116312579096038493736225763156632137069624770630847192896733144891034495870263067234987979893034249895863828705082186426571856783186453812830962851101465438045712105769929501159997573353288386132503300990524817671716727797260064185365680475897084553436514319002534075738467875761041624070521367345726265646719267778662644808440146285303929927491485380876114801244861536202403149149259927637089274430275049772185853567116053072355974383690252444068720138223655657730526687797231622562262257105122696165503336630324768296804633953596980534384523240272315545391305219276124848807312993334341599608261510229314074261969514404585433716621868686177315369745590986343236017627182131352279524583419235872655154305236272354672413122304624691555295791431054143118667039127856820148274503394988741728822294616141767942859585038662165377405941558288947480630449155522684407067955465424895004698451189526697595376557237582064431294683968098622730266410494969282874356106671650615408172095682845867462251003689210789981911435046275934706345077735231278618001020434112492630949010148355104659361327714241822209126650446331982806268523085965178496642217721727826419189825296145896273977590911079845084745621869683977297535258330145873755410724587117128763928788118537369912674141629430425163668337206775300776959208196062791156722308084638804067656565982056454166017309706043893170703388241325685559863923866613919991752846357279874889281541236554303871383361463370178682328707326118989124772004000716104803812052297012905316104586510723625300103219714243790938872940433293184455398114561051275645273961337992675130946503171410898471656238361082076843911219058591544895594065506347622234311643997799868714925816151745513304568573348451130734204492561939190951991336240394787191921976912446743152759348820242287398773454740355849354602944636307253825245663659323848481746361909553099651029776249991428976736964334171463038628895365340075744009816723295596207195246603861273596231683129151703837883410099939417307699891255124549026032290656803723950599565020438856943959011716740504718754592892238162064391558613797963743571633974446498397309582664566876934765616164062888016799141972109753096444956255926159803522511216134826247498329057511756498945680166702531678069675749111344476065343166192692056997080051620800445989127445121586190620741730242277553570670759338779407302605756737892642049727798826995532243871143473137845142680158372939479047044685887254233475938478609532194392750627702521197946682770735534249048887471563371811738800294624179864853297280834686456170298669454146832419647967178544463554991965367189493404587595547835604111541102466773410762173749453643428098928660456814926807405910296295422785979394995860171250849959311722204578071845279166159888649061880311538609078412411744345935950831424827216205384019095989890676947829369261697701228042769076528749685398048446650068179843537373527844195186202594255275767946450222803730043280441631834397848662331019388392951063856806086281424346998441601757057248260518418601571744146810436876713110536527685126830973363003140348963978956146324308088798920006879502693851614577876581869141291999564876184689397524690091653725179187871483924795122943764295824946912557681649620983101948204028719656417411474884146927508701446404581053741037809262527886272166681102233339142847580165761709177066549974922036642059415110770317426732770757343333298228818827982936534942377096851460122294206434542996063218384038424615741807425897809791074746866714150418268526042891409088669648316688969480346881662471167709804677861012048388163619543820809192249388449845726468041010116844812075233095146613077810880878534572747863096688273470538101312036072747459165699846075836237349728222516926120509243472973590046256331424465289896868702738261347362986393475069987899241228040108274587857237222693466774939405202596559852819131449788771685876143597245086202463875298694823281836738985995664655854685727487437025019377017934225060078129798073161521533954723670265976521637044307209930274565776466614275983688953638908744853191526815912659368046611803860070938368580128152195444534836357470458776064104884730859347874152157416589937864674328153055243170178756776820493966529441647120708792830215296660060622193281944348136149377168036591258819001946704871115571066513754622149408715353895985635928427739720174045815604155680410920140434651320371627549347331329236509963454710645677134317700337423949174000800800100703977813266004488555488714902165166997063736417074729770426383470662715327973677229540872749173118223619053700712140806902066221759304023876320637341610053192116265763636526456590492645452435261163460564471466166501217180265285982870187991527642995126479420643712145319783944348415049260811179826743151742932266382747863360021625244080070443680625436487175188714600247533169476202333185243777339856101567405244752777701311206305075293825599397640262979534306480889024408622068503995322447058531231908606658063501673133502890306591482991359211565260245051164652404098079010904301529807457137096608273984092435501785998109148139479945613979190541978605851377182208903379174174963332888986318805420635423624458185907687056850086123313164555297246788752860258524750646858368103122784607035679801178337047983711751828439135401373109296233184100799622515361287074898609728460867262272638426540023828926928018405887086770836317409757273542862520919189423910898380813957089285620479231303775161087081059468287947632129697277195492270621438938043609872820618214352661602394177418160817359726918326912674549505695309525380555143823409311187465490918772303468371702392049361931038680626597004528627755276701854986399061521013074313492589429531641831859517156260282297520304113853476873851807300185907700178943489193086152392192719472589476668481494525327611317533810297195616328679343973276493139802263891328139139982783727154485274664501045608144735450931866872728831114810181984709021679296552654979596229733352295480687696434783147894425899111404749594297176277526474769386587733605925119048775394494539173577117670191711184091406020749764751299467560990416224188358562151962757353771135552484015876317516594640522420774788852969185746900247041570210645548387107860608034754694837456866110963160430280677096829009226227950768696814995564453703353611797866630670817634371225904581862374395346629237684235245636625597737722290452689086449152974388301603339919216803743463045718128677429200673609774078516481565041356557122172955978582457991586728903440543359755909101418915158580060778737219803226598065762574370272741902129593142822779360207353389593099567218082081411131536860084780917457183041345328368196928721657020513622412917483918410201729565880308474459299402490012738336731990546912233860043064501928982405365243332829919136294589570687622843887577893024698554826978779177702893355570276236092479455269936038086026881733802510103521043745041455482303440652426337402226523745113564239365222840189364491038668422756007426864254065352203183735058433152455936498188648154804117845547670071688492889530604233629533541310602723424216280208728826943806479477232141562877570487385197114578332099298365949421204517197593956315256657857799994234676836346240227173300098009025057179715363106635563172316908554172035697371505091908860689209773399087137563812353184111765344500420212415234848997192646161574929306512349623195183253486950916189991744424092431911967791580211551783905375050787044113378231003304484289384804443443667567229350649080805927430787178744484476041144897585923961104596427278489469200146500266415465267649731256774760382756541700037797659721043256589826208890946425721602284791372610560135020598064310231832650043321334598228367394062852357886507667972332247274141693576859092838884774890819161352636637531280324756947306816462165988480495210919606717655849792688829516538645175002975079438723191973387456551370218013026575718121910042606918947090432348467626119700888921621274339902573044122993734142737295517078447344513037115738767538333194673408656032685584500385631701310431148889614496477007358561609746443052578917642072553774747515740375776231203663985288715210954324956453356282098110768659489270456927869358546211215875078627720955499361685686418599284390528614903803351281611970055059854627387244516311227056699442568713497659441069417048676092848019483941713856965340705041496217894792761609336685970639307040612981420677751142114581059360714576992162968063895766351987534736115569593764489190164876366024330783434598338805799712872050724683799650672739640103239907962883248059437658909985715320189105600659244080456913221311224522085033736589684403430333767815246725080448219327530389407698487422437251558297477035287872362927834362369093138187428889080006011802717722262076391067660397724187710984225708480541933086192448763793358626295037009139114184076782621119314067263401962891310261715716337684093914149918006929922460450858133336501301535020817908184733295609875665041009891990485844402363189020568294155251180170758437460026658875283792324006184723497279729755149176016613162384305139023014416874729534896831154943998900258550844894681246985307322426090896459177586936422605116105567089561500949080680063442250557016991672306376256476245304152669031872344136002958974422689035657757905570944915237758394804630449167301750073324020801361379930340139694107581259740192226003824990477661727434123270168290124208441129265901345236946032378876342021140636533057477375659401842522222522504930744427466516572713414568189128876641503268863832928499310876462417594801445373096330802207609747968252697965962287774431064257643039493099221419879620321405830267619358807740965454497493400709865653678991939623724252785199365780211650887586055604137881703309098623626082409714039771610847770272394830870495804181659580080546645025760535036250184287263356648315599412752876586840969818707205777724533983460076384120500848928939675868969370866877423843733603165715933551798335618845035281382981932128834213023795504236766960131845602662562181417379536993099966996635226261941466562741529466764893650072732623584806003060146030615145800290063701320024051318892997637324976291401364735054100973514192542804137026508222082781697004336577151066616339470735158795701690037222078514921921293928949982993889328150860230583788287043119242572623910966106517639494424076011856013896702119481711629295661228837829069662139393283819486889279346169649155693509242312460976679126614689177725048137937148799567719352645190638126964511035642680101612869137639533136505251162555319560731272615892127826269689437555109122818064288802772013012939945072760676911924672240169551565798923277910155340877188206554123462602540150536040596453804303395762642921350102063755421026504627457870361099472851138749428595408350474076498829339094848292309442403756502285490835324867892524398763812553069029355694262472111801142226933189405672833117968305591927333547559275953321998119924899450392318510154225569234972472550385909206014847699739861837554091189726567577884565612867725731678001698016185885020846960530137134435930031807599845337435170212267247318936815229719320846222550582128319809841494155683683056591824491210652429388509136734750256601599439808853621015669764191111389459040910562780813508217624622263678670433093764812394097207256938386875163490038481033677225539941495958575411660576138969339654123458522847717120230538430332719115217612947120267368587114326617267203438379218003430229426870231391038506129708566596021179490790382462493680250335059004459203011009925943317497149131273923236573450676181902301066339290454546395052695786744005094214584092937400523900025729549670826908259158680284926872897386302074246345686462561612757809016601722753773503857004900859941797936815781187731494274099754632169960952735697832555700454699543352114366144137444462609590975062439513964002197250647200017688397342087970319642476760883415791896399244416852280167214567811915907581719326036063431616267313716223301252862625090434579265053229474300784190314127505015724752963600796502253268991325482714667322437359118925549401558507108139147995863213041860433893750163944016748182011807734748454426957352585438329006288095394171637501291835059050379586438174295387551947513553211955718795112572428414292601556515053150456035021475553355797956750249811876339867461702510390805433752038551959310348690794136643315290426258202903093988781498932356048266531853711428990338798438807627874650710882754729679229630651471119015196941734490987055236672965639535433510690163231487063166545477480364499366292642551160969477137167759150497830691609154359042793113989972067639438737334271295769689941505230281976275916646509773513362674318934467959721752031025958131374619292832445149052791400326575470966750048214444071250296317220778318170327757321861929484030474975578354937004796764675007475529784830579371336380729166377003432053646555409908824388460844281278512980032657314287743954104924995485344013244081229014836608815919827849597565950272258579460426358006211004912091166499056017434654717540386224750646811300047727070365310680095291952423748601257539986176024809804897637363870208113200939360860906218427087561320661576373935096356737624521559738324588650448829861247072186103039181598986586034724830454445134444177574410726642926018010677169336901630148388111797861064218258950584181843704356304255663419412397205693945377395082422194138925627798979512790699868250747266685977928898844099257838901546624896938077199057428097998862886115639438595785001383501862625410453439846689023830872120246564276518726968661244334149525903884288582166998355753677867111294403405845643527253848880389280622303479746932150241510367948995455101129518787874078913510606340542876762796585490196766137172050613497924612540512029011185695356523606311848448376374030827958223132318271624405278182451853587841917326555240706278421416499144790225518680511762922408816556247533925524466821880365785849646088052682953918254605891322787045665214581743706498374612273034138379084366121748205652312583277195183223781472073779711694656135780273159640399588842615047802697286057474808310053868019025381560716957724992116170112021929295150528957870871624298792767983597635002003581879611005599678987850984930757197678383125902237750641515573748470070331000228509268364319525119188577658797687600488726053707535183668097174516925669884311297906641074937049381112132547868542325279166115946589170810804762097531045345307443920121882887098647840777318511491121821642525373300382798091243291505566933085776208190635379577567856863295113023997817870806459433482840336136052996181791819055539249874016072905460316447286673570872697997370355439008717824325918722262147223318125140454593148880628271089333480902346127572927053383467321207815602925216512923501941210771188477547010069733908152865903732852153876181853586123695459175073137980938612870046562051865131007840594665869017109496510660258913560240205706288314747865247816528428189627819715600016242254742966459063633296196064243459122239672779873649077091782767188543981672130523667909821067964545855175377504484064232999188539368174986883143508782808869702234679586041315715008687766393602642820521843679094735028810010466743141978801242526405119023547797759130952107753229093676644017295403103133274994921612022273077108358711575740452943666322760829863360184283231865405228226348758394512573691316788212167720332848046619440247202648395512116955529607377550267793268881506544307199135216902943291872724998936045147942027443294282663328398518397997335154797907030002447072522899332804273258165250905896912172667234374975937396192952682979537685032038886832669448836343491098962612285977050810394028640649855268071086288498559722872962775168243967419210661915640214960590627202672666926145300459225203647800856939242038332571341178169847214780349310284432504862104552196258452679509428937919400782381751036249477253281979763942421139820248875968860820973807810245577466619514843370185394787623178452903692555530772824790671986402665672651572555791523386854204938837584695916813613289304068546828906492160768298714933857287637808751839746377418771508695561081150183362140389045545498319667469330082056926428293424020778055485022332564124242533010205029417175557106683610871858245318233899099626787070566598750633050713307735155834693093366305916894269618381184938055148493429754868699096028167444145317974247594023516696116879994579967424946361440264875754863392803986434434186857248209338770935447812895180298045348369917660113996111266593507580116364272769043300603569945723487684124987088777652478667567260191248648487135122165131886674703903710780576161697564967600610245151001697838811216232083538896060661494505356411685430364784762203724126093506688668753495448563343367231608070478935310775433894841041668731001234957691299335932220853482847273363246951401086001450849263254862776347371815153623859822468649479316946691634434664096121585457692884566608965308175498565253472426950735595875732978547878305956091871250579834736316621650146659825617850693090426665034189251469402373452819033493315592542292463993118154501039523730147930059594029324806033260176195057739683590777120275268393905125953521180451580929936997347024306247337991428232951764160898766189297254557983550599650472479182529050050467955732712520989585128099905219161253965155218821622047272900144676511274898882609384244146967708792013285550954569970412943247353486675199360222039081308310638754411286234064367777454847754547358256809120081298827455886549858453774681882971086246069360072463098439219879629911473718917310939192032973557306314408875797764181781153268686776073903739597851410567512446339755483898147449457714531005061657772870377360811646974153138817277418571998651834374075524681268887728457462296828290665605904512669615736701557254491470803107624155611917288270599943345752983805332693814519307502234152010648434152288923874184064818194344682075891135891235789915633302052447729130347400268381456649095513160360231471874457496681574371083586430769988045019360254198506671401485983314589706407537297432423588996924087652990848382455018125644356539411163784519766540519973079118494450303371915514039136946323345090537271702663472909554022679779656446997582461962559695520304688748625388075667878447824119266017801937703149959942015472948577991337203497855468073385846897639323502753759039087967776462884742371028944885655045415594506183624508180236705765071010076207151573677757287974651209705830935121587949209147718730913434879027630934036017289078871221934487411610844327896448876298864283211444183823162914039823571233123394921433244033294394011036274280975035499023065722136711305105485422113865365297512528639834913990128182818305469092888269131056210854575450443877836463160617364929654878099173003675052420080133648996159465921303762239758171009215343062281279282309538374428770282989607555035797697641637817724396789246035429824823500836826509488798742588449537847490499718691269261693118621894647627771636195003454488703585830453146561784754859615310150785107621718087406666935714508824729597634980557794374612856318685586388325635803886337812467851655456037621587661632304331861045008685693329550837014469159771938450886093523613678880912290775207675464333011488432434395754803257789944998255776095773136084453029657091449918060747975754814738202666048628146360223473729347315571762820995083302368369862203419880405375832662888735960277562981292501280121200110318145417283769048269833600270884164703815592593155924050902226351660876910085880883714239470632379684403301692909958963970064137878535638557530603916937713246040673838291100733883288589117591839684036336489559295786633098491158847414708110398762445371017461217489406185063269566416829544797286288950844184446291891665847430207934593612895375165016773088350968166842972552074084522760803315527732530841621036121099015700444834404694316350357814418725743672410265239732647132684872233160282825757045044055451785573140402995806464053668312868337725786315159977879686756643968192189539473859956146993421642949712636292745190771961355741727248384579676468360336767553061661590619089535596282073444892236592304400688672111703554967054795790756916415952981930135524371056847902836990793712632008667244520113914304657430322385226119071300706823714311054588702463470125290740747740426733009927977356743796458125932963524518666863034012941121244657236680686658422160352083843550415735405834401210578234717827672755441169020209841922054823411637906960225556386050223132675693548001913610646142250269252547771944225318000170711560726959016930038549464325189057979295044970395719745558757146443371562683696909685145288766082191353795322271092902207648935104986491098188169336337366820870492184191529929300799652402602083610844666112718962015051070342739900460589486985235501094630204045372424090802680328358021878695355577492498784416248190186222608362714731305236021035225369119202651253611517760081290191404102772166483746682596127289298933723072691439885703803069531357906175922902191374008839260622210047552964726484060670915279334230859596087670947985576458393233242738790505961599308320293497510832817887278009875667369415619767128827755468464910483214746050934335362905536050390391562264930088916277287712732832559798246199040859821064805186963723083856654629529434888544081824823195000443890939046046122198108642730835617030049906927214429813597548201830471808304865759730980628536480227784410574014335224245929134007748242006763353823265509820134420028632788577243978808553165135134454586863442294899042412022306569953645133651715259347983418858120331050029675861602637786441855139580442797481110028137345860467232693553249660262864466571934428355747534970488711481433174562123666943981040255577726320070682362019228371400074264669120214365748341663204172153959139705002754246117840404085509560225575214903924976762851586176466011781124976908364533493969386867893473124168349389556686656257318043892766203450075737759962789902421687637121203557650191918709886831780458613678159745929341046768428261659700038503212040517617118681892137614805373629681401612527044151797249916091331315003311601531325581254121939770015139291537412306302303304026347696608104725171446948462171386340967327135501275341419849258601718107469307977813380911522801254375570378331688710932684958280802923021438326486733907153642370650156741266307541262537048059979504985154051816003761374334512429542283025556005354511023618875021710601282519446928646588270315888018679784372013172522628689861749284713297409904675872851287122000313567038454849793372031189223960619913209095865192064645568037345561015144369092400994747759571683496521042113030909508444287021965257571663686081011168704416860208461186757010221375305456119458254567675236461097415898636388144699662420149947593939969054057449845719607895176577542984513027717695895289429282129883211271117910597609474627770700483971731883624934305075777747033868476225646627719807108513559403796144205314633931936961959430252463163767614119989402879601616473562407213959456284400523091444308122138665970305427671277167872217529754204599509521223098126269305070289338259764795998420659771432065924462731575883255371294938769143877089428435997438920214233727820878788248384390887396386739674037354795695763220575675399385054650347056448044637614071600315187035193557531427350046412659802689256698951755839087307655106250120077959561916079541180082698810374723134741981706900805326286537691278523099185399593917982926411099938347794513829588271831014969809590132131301644951906766843472817799945638160840479667674404460785908743680026817549239441746846791604237202601935834519771227504305454333169051342620657108009020784260220568717575103401738805416854101297146752510205799029529393394489555302441996176394814511494360035486478760706406492534751049747514939037401886079455286351325508361931994127513490731837201199307423111622031502294269969575961798790620832057491664698511289786302299530178816987211186698970101653845401786589617078403995534332351077216868975275797077855569396674031077785690273001521987410619995693909104519928195888664520428626452569685536707369584016213536818266397362644859942151952454183800946219441359887226157818634684814956617442057497655041018837570924144645211642879725709692856419919237385540839820711140411551264559156126023803879490568375028339225666528350452534628093463526243126876487670519246089986210013058717162941871825121651183621857232860008903631508154379334347612087895055144741708518799417769929439050072163368987907811446391414361823359627789068986887858605312242634784669935212841914059510421823485606323716643174891871781242155063954455849717523864106807185084327612941250704831423386644398692696775874171368772860419807045638934606412658472326113197103185442158993354147932066420025232119545684585895951844298230560117009546457917932630507053965901645965511754461353594466481207212216758675362274834073549861728620451667994672033858099393497878713279245220236393418565369318384882235593025767209655706660569538998911209761466866164118177882748082830533455026694421923257768306307947704509346188681302549922921582066435777535389074214583122627871715612385589252946045567788513308925595744518545464704910112485481755329717792111153178286456260487175259436091673422615875788845786779095671216199662175589145550226111174692527144136441058565765539585297119722266205291234149622028830394841872236422447053222523025040733853169406601162812014899752508218392232512221652307518773243129128391854346919659682877230692524082918355201607112675981261839984036214070100019276356971194383451731914372257251715421407372784288142308172255426080169156023661523295073342433536569374860961127573210016443685150067413433643122078136474643525905616561557447854510466362460909781658435753358779183588049985558888232760595685448112578180813134112963069303020942785235135246964618960077316648182165624475412969932161371164001046837525995217245904491401618507448657477171233325672265446271527274086383265270931795744833046052618093833569030377887917664999373205010407699597916312431270171014787721113469953049902709907293072724166773653146988803564252449007483849134684370293499597044343512264432537251142564366670694651164824026670197355232356549496592529871875978719066001861462731675686003206553260554554158810670372780228110320787277477699508618289479908637776434694791593181149233601618958952551622362769336630576545409993677155994487338579412948296662031317313133580107469110594028712065749190428188491959425193172994563499762301981077886380666111400207434303319233459598036361394820210348661324688461367721745450917074351709132208937712047470978363579815627136611157049962726572832161724239788325634334955465051930311849954561051141641483388033105008197155631063079811143819089690590047359199961969859986100351786595842738703133179040487516939641386706416257744052703133339028531217393521713715472247168241495032840061185266219477793737278690068615857168958646578568056252449609572659720416653601157260193682545181569692177502806519245438663415900420725159457520868946738171506531077816731721777073155189665512820021513015606965960890202410391227849670618040078864340778472569158648549927883998718190410798856665222534299835354714064021324092232199722681015877787854282701708207359761508047521135797441384934805121179831257724226102201064336886465014003309435533752808932458509699847187365322939236384246820177297232878067912381072311309885260227737159049752351551077842772936758816272998594114219679926430811389835366653990074412550600480694382236863276562854754603829680381917992937467040554891945623444607286617234220491874080571566253125292202302765157327301733937830520018769848264406302395519539293998021399263817021905079955550419798388261655373142541214353526906633371824550657164552563192611549310184965765969158725097139959495192705222070588626255760281597566112147313709570261099480071122251138678978546742896631708196825196869058605198189202655415152807309643821305258591048749506524361115954515293323421701219276582764086909058841747332495186310604431787685167354127790010322017220062264476287633379303604969465729053022994758770898795209933967904432276426198671948302603363797965191333721439923484275447494207428892358748310375694206735895542398386680809777493668101625908394075295306655809943064718520940032484440433766822607867224641850316205306126886707512994349862604326834266726129821478761739048185871492259743195757776243771127930178630578966679601733161975940975108242112048435056363527636067093602260548800330955299866906857048679986264512575266982931827981737544990921172948197067107972458643601276359781960948988517404364283820524256989147554487359826641867458807950823460644880361905848759120968248241289677156198604275796186683983127366777132473148055146829718255530865923953185726381885236344255137187961169640874982331224149861884188852291880488394681813335220664505154781524785311682906316766014505199500802974129696743715795887723375739692444465150637260379290289390290759563784787583906244746656613494988445054078243855420460473061832768110143049746793881892989239240622014027390938206855677160161340381308342605359904514244536957670949859654063041725281087167811368416242917391219536658341117710592519272598087209211143766637351372854805581766944317842622627513024125938560751183872809212332008195473618036110119368535884480054198361920991678172991939465840600583715111983906856425130491495692169047872484871272520934138498452701416404202474426441813016007850571438450308558419968951259802745220255138991942653150287213718184986729161538823412948285056470841419267151692428679389860104735520495707291058934917770412577607608985338332200981352176323615542825579368751877615422352828815605206224532415326396968352775258675959972854255675312418917900171097627529229280899739560257360426609177871065487108068203978542247000071327620607581595161285848337954701023301152328732902624619765474826728925589071409580526241851400538798399313368642592182112340534346904113941420462416733298387098736905476808407095452339950309845147960163348175848363712672213182346996718030244944895172699423060191365264351770844499541867046913891918609029692579551635303221884716682265779107766545415849157600136772944466809002999437029799623616862683464085946818292294597492011767867996815242719817355582864421430345282478330035449379838845034219836480716394535938314372852928487197786029090203561825232449775318164762549592344185732569618617704737269898437398769937314372835318216662537718344502032393328309198734373740860842103095629647047571039198197430667085204110710949272977383013641792713484975871500617992429828306110451767424676872285297709747084942776258010024200744934474122261159670234173254727538899647667177921674080237671429412770720241717140170348972952445801384649055947470358818764438003119550433227112146546988232167599982713156782160591615724885904501911752478856914889754434266275298729133182291958418243249257998772967157600423769738856133939738970963722644051477512097851056633535896572499474682256820628942958405995891280552625319365940298363264623090686958329382521949822655605786358007408408158519468964869590980841094508877512312717471507408964515648379463862142201284801842143234880856294977410353780243564279815093791904108046516187554881745471105118225220179457047766110215795575948573142267885825674163108655252294470363094347652180187496240130528132466222919189209478992438614720978583039354221390101828038975793393751366600324888518151912221533418779761652632012902972399109605792878894122889369613414861273384432268042778435435633293462809328633064375526385539192637860239155141708387680072486633847275894668052862529011060131433245358225265413217617201105306910597363959883539794077896961421593228613765824702857163724496669575053486749324556226817515812021247959258689647235570268331847848892525618884563497291327928055154337064925683383018442409670499967157435680496358312067610093572432281164732961046655223764619314187036268359338431783953139598275213517392386241963834404374647027953229786942449077045677757758563136509128214400844824945178263342230966339132082362759131927397569733803050503385388769059956295904618504496775143262197832867961078552678543868374338901818979861918881815603546979541544876060932765725271153209822896655533629068626718305640736402646418066963639212149299681007040707341379007028066246310078713529411974093939738717691333542610754243094135103259250868143311980219332573436833111432395183178869992384749078013959973746397727194130812023734743407578026871485599843800006749685172829283277853242699488544605617157330212224249599766525790877202095267715228897414786140874643925620810468570522247393973192268950778084829943072899032740676205603605879473467358395708345544394694570235995486025838540554957721488466696567148464214554934404890456212778426688529800498851870805467723073710599862450762262802515326711427946826542552551924243147339250441188880129154063335191717856227146167778774619431960465023600389266438427687971719684311256418225199693087698861364077531045742361359319038212302940879936534520058395249112723344811984264113569698870423991825331038943742555382994554027320838747575121806493001476698691037708192764034666604464819551019776003752749846809418458740797371222991373983060867703763946287448538810134274760870342824608479916220283225803178521164549468006143329721789292343811438942665913647920183000440613888859661899336336842603129069312188381738217928280729443719411102420569916727037254621246040053688809993594818740687645865873529154290898646562572276293700099192790319376529606065797480466406381707768694120642057933082854805277554523330736540824312254494797406232991160105912921628666218054780321987555313690560944074758063760779086828944782810154860208302787466352455204200951727502193703919481964872639046550489901593483392454099718135082180448457642109219611350452022412700130431981011832070846278698208386070315570008824060780472849365036114624036498489265156549456895598272754681181095513513681090401105728013698425815198821751640773084514547431382481858172316439602099745871338772059395819764716771460539823860039683370046453713426154731224523910019501020044819378087178553028200738241745344692951874031166800179624290407312603561885470741727587623909406235532812163808706867150719805933497543635620577925280865769611549050937759784614237596635893630268487090824433291841014728054999281615128240631727650418484333124855586258844955241598098608929937194664406728399690707005199418549835698646914085350728037523977311319782593160285323337960061857683031707931690804885383664399142471071010568957776472559482056311153714336231725997732533069732894062828417537712210261317206535438537545760599902205552280866282640062936926266861674333538918266922649664544533715850467684294587640231499137220374938207263411814178367979495456674115546797499769809595937865420018054413944162627169235604251043547457192941529991089178236066643441099231827361055379487099097314013618203951033285843432514426585458437098441916794134173675928730447173039941493630309837819067683328233560622679305111483440551571418618426688128965145604522713257706556210715416280906987337266652949895245303199964530142668973760891235612456883809609099163408007851817375399236577591180011768150432367529530134749397360263784959157916764927076662072773412133148917245029146891299700531653333170763473216755304094844235187124788499409542060093511923464173633310594103903050952443614282786119154181623395811819587417129106968706629059567996667528298952651340283029016826151037738008721309526501580767854851500434893143276565613453795064521230251834353547415892881975288718477485398329691887365394075179015389598027249813517576105047115219966953802290709119376469833626937989410685400806324044089136285205961856005570768780655051002190499565234346066182878300863902594714150200829129655051693465081277569893897138047600782863079846664548425167852380004720095290643485143453931054668516155403210300505123553100590333353015896654020839027270990467682388823411518721632545377952878499393974399498283757007316969431939646470223186022712077316677611884603450818741610965135117016462658295129965369916271803579266793582952925657301540131078539665896967482883308592372589066618002857738912517731782220813758507985303420117868294801987249388154815927270079865792670343335223188366728323211563060203019341437795890491985206227276103742256627786337876607009212837849175745730750407265157607628037984307455281065953988119079098312422404371982622365937192644130747575412836053086406135555929915171261679116636401234207299502939242406498958551927616027059957344360366589655082806049527340848317927526022349579382943679272299927358912873068638958961020859485547192804054946392495833371342572054255928637568072659827154963141177329889148419539809952222095655622241954486571953500154404275534716113307000488900233944525231095937266017988299982668421170411770953338204844796300823495658712451589933693468957139421631789461694188776268552171712595960784477340059525720416770012772749084799219760318701310138470089760624623014702919144529610371418468531999057700727922922569221518339880036219865598450495712733149636958312611285205563707474755779522071049847125517879914128099555314318239323091795802047726344455887453868553922743707368526253521136635939837715266184245856003888131265229289015799634252430458533133497386775071699234397615603748584568507421446327730558093213445851484597652902095407552909165444338727306060414383665762955473258729456514323583945875362040697101974216358518233500800719592905693786495572037416606819772040780210931734041098483218335362002725485781973948346704339572232749423470795310540113182089034436548651536122853138083139684810646229368235948358115738526429158452249968172801334409106538969997471264189380029117041839825575786213184091971365868328233644202061341068356227522517808285095598121331499467346117863025441566178370106164086543672980432669755640445856092684245768848232452845116964251287208865470828247319341624940166555377830480098463051453005742764810212905755021834502917858943142773960213705974266903568410523002375971215078555113037190464412399775917976685653818206610226274267991684227433748387166245459816139832621370190107722319615304323275554115668176749604572090152950198790204606236246662932290784190671397201415840157656948675095494142180411501888839390840222804627703342170444027329894935616293316220304042738445981290714850048530328948318256886548927159940043807023273246812713222862512203987567479532515731002620590344482230734965692127953183111337343437035004881412939309786909438028130882070627595880706454996344281995607383950756584612180331778966170953724837685806075260831225493167724913874596652316727643993775416130466989748980082774880998693610235343951876701736623769255842091490226591745354565314948019358618767675792462564649864763056938539459954459821804974899257016615435544223272595190867272597056898675431167475543417146363442754166811824202125128271014801540874137413883881989075821509483709296042223731428113306248547258590515510414820184918096958615375300000429110426906770051837135058021401180726678299876758360033764110657422529432653862448967378473264485517172799279715903549313984886268277349770297817817105591732163383582229510942287458427850912795393488231426558207356542200402838217880521404442424776499142660802051720405545346842118064648284122161257817382657091045175983595170982093296707185586561492971531527098102141124377363783628569837326079734430572286132536436714604292437687957917107490592924766996103480942214234719247941313189642752667753783648177696980612447150214644685649593214392127512381060181476481598107419210051139396563112068015403168094374070687867840116232295681686273115171134869074119480614158407025572933630406223799867676373839379774393981043581137571563716921259105373077075266862976237390218128523397274353247627295802263695160279878760558601812090813136916276397343684967862312495008132297824110099901415416237954008787153950916691229897075220383015988860670696350586584662237375998164340116577795432978647311420954426908316477477441548238549174248488003527599232485484004998541977305308933968755251220588030744624228795639115235816157439981100670265142080915642308970742273132350913593686107894761279176223912954895299642415193745818180543301637189379781241896848086685994449323236828557881168921954534113775833185955830459482692506318951755647080169542048020978174926536198299210240295210765738451162843640361087336384632559173346635696630907309371674146079575296914816496540498661064349952339505336335616953881664789494991589878783064175891036751931802833500949297473798737482863850940192566127794722578115138794994082954559737770238736500462952423239260585644138220429934295542854977934156945886626754568591436441849654649425257716381699214706094854547870314707201250917420328807494017123174916804215822533913971385355015725834925706459159933106665677883368907540526107684458160989012931713911776481874744964646985360032510134056485368022414947252559425210005855915841147823935534312870719147594968271191142404295170231612190473365856589412113854767975734023521747940032866028058874837223018021048999264378173972753610603874113789270787522110369213573936287034086374577959616497374067819836680151557390966371585823813396816997575205719239008329323804499959729733301298640903913988684760220712204974614021647898955031567208535678500893155573907841339281418855288073056279610271845342292757941253233598250106066795238893394258694780885874382120136205563726135250070033182692794190845409115397862603677078170441188287871530054774969994921047360767766462063393942253054471494874522146616598535729807897567142676945201530232201566279484689521115243494064881165067889212949444674099721844787251074288043310573104145080570324592627061787519087661692737488722184491513513365024338165471598111185719446897911672170361053044883401282884001294436893451906058492933953652403036567608342667256936372082286240990925597641383243583930891075597548808247687535051591658238100370350174543414598266555437829095245543784275993870720078811543428452615054162519431651814551042636593704261768683163427215710367394274558109242350287276667722168841060944262633248621109060976676085149920646538621038299909737782491631539703274241799527152399652771891899723178922083474852565033027382707848950815099653386638007315499493958992637684163703399433840373325111592887240464150174558046444086579493560379185224764822598874537307209851660761759932298265975355961372055676252439747245522324080871293357658440139137185313595871920516488636175366864891222733774888641784159009661579220088485015754282803657746565410185886677479524224242253523224225826809235943340102076610430112257607550887408078025501065563754445787123211792694797161926902733252476533891476194989055171039029185975384899981435268083837845168985382554455469514403963572480443735959918684367189229834765733363087022441668278766101862524853559485359882786998943609356980946485610391628377693484287213271306345883849761561155812973673223070798654887102848512573620116785630613784927392786910843337352394850473647865332317874377022484964300397449708327014034458844618640314350664725128181804593681795066862489654200180940193355482077878405067928556531288194875972670584820267361237530716343039943170571835367039254907306842659114029681232436386513642375155733731672442392242588070323684691890193078897797580308637290739713920004330441219376901766081965920687297424911792454279937001969966507112937329409553015763994191134365900970896605402689841000064702929081218226482076346535754710113902139276743528371288926966328596056264282131921396798163088253130438299983453013994165362909636174888491971344313826403084988423207327803653919031778169035546132582318701191069372467962376341237015771805913746171672466443182622120965864457826406377484046255659660086048164599108315916767798824327866543587153163612250675329599348662633416326894004301501831837781477167302451592384538157434107771962964799268225552528173484154664427951205882153123470448651537161289251771891763739378343305149225123620151128429364628235678292555042314447507971854121962710087119573912621141638506514567143807312323757629190427644964092289497352470658797674656172126297975488037142614809433761131251003172875784106891993193338848011520897009768328966093784765813550759650475168551303711493779095985103314869721940246116438791500754291632878014975547333409387089856018205642477009936851781499872567598721643024625248294249210637611583799462526652265888618588141400106193456278150063312286718613109273954602549845803273288053041029316930828023640259004584595802395251048105671097472219189947053714415665763850188480102206478159229854832625171026860752549323564101734173661403861388731449464257151102610908788078916760912699038847658297234069066558936846552197749399907453616706854601304235170740853299426225513755114923658518246994079217476458975095611162540933572242793481356683094970224777247979730552448473761481823523808830983426647580302328783064021336670083016061283135600501108986165014649229676553816801142696300324509519208531353587841918539281392992372808417731044691684508088503884277321744321435170786135545695698994438958228730907945184114658547973084008364702567643909333725423905604688971795694853773158508304650847557143066874334951702621039821253357643298979255545879197950988670252844178024518661810691200613979201082509280582848735607727537408678238817840070908299767474125551800578575350252090958901991602041781558083002315355257462028646411343338744872453560606000903388915538253817480531509003583598100855841548056285017541444739972174199237181792209393180447409782433059658796820507063867069171563864947189807151940627775049948983803990101887777991168515629772670310021350430654002632908941831803564033773852189077925761033661295150170828478910588201765872618559788497449713809660932458072242970500804820492585543686986712803802158844731522669235729061278787481030752095030513101404343647162871872548334136736829454194401123504635313996760607198630101255948693954074064914457839315605861312805218842056807785289014694893002390974851259509933837084496373639883849136283823924595782459160475496236458175742793774051163104361893810034599950281363793565398541942269172923119612178188482232380613105748125481666637484406319448697177952030927782068488366288881315293655646094281363259557310329058339423061109526263199883535567488752991866412165200952123534254198252476853519576786881875420920127980662621424135793544866447116561330524612217721098200368168651057629178906465406263206910655054324133448649735094483156543557086568270280027185833787709357089228406977306068053178131551796548802957560125405359732017740084148027053465350812368063486277540926630480845297341828321800777500423102067056363635468758570862096691382267894595930073636773919223722302886446768092920279571192396077482847902898838328934481538826784248835829798178300942656490384226995240695242533257519170495528137826552986277986231690715261210777163471988958542727487095727085460367863809622882785334093427895494867024062529997686977115079430472375834174189147655874015412239059855426836497460856626526745754253302132755270953602952252213443207984355016163781046410857126072783826270807233627650505868015759467850232036663797954538141250940975178064057933641819231192153017805409121967546803051090463689877652016003187147743009128812288493172103642377884796695857874177058511676572631931670377944869509575250261236798996386125645634419450831350204720048847807455806884617582100142801351313599829144862178883167928529545220726064003051501198707167426254881075583412984719586489315381459564085889812721567723406114284830116307326986472891303071830562864818324632168876836007923286434886779772914236060775142069400806584281361114242431194402241202852345131355240047955941975602191369291279634768573826351442864753307778582630460547823032669258845689186493912765390181577461814995792186099370613553991057154998883820233456896845828891180611296585008112474467235708290659402003713932768965436224019122844045922214863675129583406434428042084939730490864241750509321567385500078449347203425556963849908952973341126158865362756542940310663826178297367484477655090274004427641762177896511056274065199492634820239970616598938118686322459408614408952619224382485473476624286323877531532286621475599412087794391401312295964891505293632821083104525681543995530094150583344940268883039553940233979878127941787412420809662670903882756928982365997454205060592288314449065941278002028932120680802760893301101152583246801213269974131660151515003899655104489256087826059648615361895125278953681954859592795307020623910942639775796636920679243182596559139449258759666540061861473408733482777250743091784738170595332168270804938355512981438027432139588609805286791922340377773944270263023976759023247542668033254396056299970272957605832911355937504891525041616330944085360070949012287852489146509837407975735804718058737936807987551748973171927179837699104500178164581609129831262594882648225380974199787031236496218140885226983811585359788652879096129491268909371766597308132612341565927759693916244322024959252494080402893256013770916631636365744442354314775007969039598706287875395184327992975885982515650160760469756035144721647625998108935428932968934616796200445859474340243819673238966722249634146455661449923548856747216299206748082960774013988588801336003190678829235187378385794687824898167204629756712329915021545630574853563131619989989812296412341316466997180556643179376527542374273005217216783002671650131244204114359262704998143460995400057453983122218205453068701697896251262675046436748281811252923802915186602138861921637486445267389237397988518284884620154797815670627850208632414405145138261117676848861102275305117172535561575447925274502445540662258650540313646194311010719023898264343739800438203377625116871093085617562434155567657529961960045206167472637819311388059148501275093070949827782306584367102361199979799621036832036704756458261430725759665271767648680360293525941922168010094631790985550734492897881315073699324832103474902524248784963485041841540801961326647377418054490201937638355336897771841975362831550819066341749815582696572357756087414967525160621254428704179703069509506100071914792024427661635957152482163210062798767297117125629144375730214725730026249220846062111600315964936675424468463815132574621159041116080134897450679075516712412941943566461285635639098686182085977818637032382325056407050530390396966743061629643292798348887393877527803110002027154717384602755604431509639942464391803832923542294967867661702563505389595297000843828669584439976544803736228464069289422831713660989629961260666730612984285486088207369944946153618229696908086961673218306922631243949133374399149825196348228542173623343253544885864140686660856131476730675323531741486679473229481791756710374735700010307629016450449788069036917926984717794396366376672686995464717429183729254076256435581386162241015120715390144709171572732816534665011109062644610912409871176691330589812570467154354480148645569106993728034641378524310228012489868273074549442298569170228898305771505263661391615584352596623851690460843223109191101338946550304028931131552515076861279240697191098094052104377361363268803021904133054751621849074457431938575757625695267780502139100746632817164367578556354888984700451416385119116850269777220684814688042255470611782915164259951860166904204868203359539726333828442735831558480816460925835954211102271293661531261349461882634915556343017759947156709435543652884665410759572133346585930845031483812899168047307887630372608113631706892114771555767631197376400276907352811282439377166215756626754310533547447736531039431103586017342160451584190950813952875054978158551053683686806307900085435974453262738181619302063496322959141077082279713540988698423379371672251365953132417420260954641375721907924707639077381034150137963820967984294704301594963018856354845323712750733399975568615156894724171045062337820783492192596784619689361056961748414855284614752836977413680185498288982459129773371124687758611819292360856331516682270929357829186197573765128713533003178800149507188053302236210292117180286558059747587924468864555414373926663451801903540027157773902398214594814278209458230157224312011950024832421713055469103072539694184921185535942190283008186321722176618577549136077623569772041470617951444613730540581783830136151380430482474202767580576031838069756762919853972745390478106963056540484940590263995115096597176802185285886022044427046327722718143638842210201850454621903711182695925574126542594078065846710880164901209609505454103079245439287204055486391000884940673776478023898215519240041667877343346207872073821538794350230388547732368029614862414655546880415908385966239387145050841547651677536598253282153908249623797711654860154656314926621198956775361386535172948195276337193887629344245765129669894699964948780291794511421300329156224567982367873246768195737052657877873987823845059228668468320464747916768758177771075937125618947970068117999665325177694233765197565131106011563811603849774107473175208546600068328679654689508741540506671432334439151118230931376995885755536195551233777474750301899120481160434213597351839783079996266351633414423395623252569688794754001379985518837686117744444925470493259938849918659285124926796838103307173574052020766091620943276494704034881390620368815865835729158514326073503453517435013107134412475756139496726050549445766388129180141301310200465257208924287081087914469483770146674203065528888899455349269736016209589003077547893040952435344774484150137143338178101836341294784352600829794771492952695789551915546057612913062345990104569664214142020491243575453557574121429469135362946085208300592130235194376016740710712728339451917380734611881451791960910590519462978342608279294585763255823627800092549842137763584284739908909704721745467255965733258855589208572806713483667385353864967904289507793763075106404482557833330024177934096412255144457686658023955948133175086487143605204008639262161446866630934526951412427309138089381623352608893551103549680565232692589411790287557964775251352511423142811201125719893306862843052547675713679355177288174934953950587135204467685360545810548545752692145333782868036980397935431242740641235666076447547395110494626898018216408285654137809189514412747991073780558337570082366638340290160542446782969868344494322668464710127728987915805643314444594479415522833624086419023744942324434654745237191812415256474026262481228176112145288451210849661163924866184318956061449341632957813197105139006622467665028899723815504411996731411694484678670514383804756344688833891864159994883638069616655620797853363574257916123790603188620267623508728628806255691956205509425831536399616696460542544929329395444727701700928263659345919736518217811631736854731097873274605742875799554513069681578232864833536654102140683913680517089052988292562439013837723330793505544593149841430021094208839104467562895713703142697985397097254251513246949818090844488476352824985962493476645837220544304313841375026559159598761629295827492858213978737924245147298580465975947417046587269832572420805501528067942195226502617003299623417618886779218498777882152708921212114245702855015766547580027413460420079105220725934972944393284939677840165280763314630432403584367998180291109410577615301937981124018907563422424584228643025080260100232889288795459446239299301527690643363260284336875804166421548826554413736876966979911412992704893734213522198819926618970241240075402464264257333029870994374834744686428087724128537875986787687571085564133435669900942153273635365360909175577088906897764667742751339140120804823964200939022967037878909382555203623290978681699855187042893081078456276056500034527570320512389828356446474809059008233990198636507662043455462122423847533285358887931436068154846830420960900812591875802606636421465316940558437556766807201379509159289040032248193048262932551628369111608337170287485750949468909183605261727998496373675522931580141229843984638255805314152391589227529716893943894288908296475242620130789691077666190570941730298023464477802756012882405009015217117101286340914853964803136679480461348410308961750079864483045281061467617044790649074960110160674694067992417509563824329000648832145406505232317688452766422101707829153175091046749713397574256686507279817124834166772730383344027744134275529672613128620864486152424532151169422016408691909520349242681077091486345081286470485545868068617716375944586842752976366850904956281767613247300809538461310041729650976049536022911308573644628754726073730281336899498862282463799053551874545552927173747460406526374030881488965004740618084191287824518430530147500520334896806731779499989031280856086446591407332454986471409714181496696240650774205197980201467515419956370732070348554989604119025110355520969828819564530167222439183060194432281815280957614916106332965882216738489072772260870364106993255362570671773348765676996645645917713008090736016741084160862371414328237159173906921634715554683512216755445510930097371135252440901350181878289913685896839085080456469722125540933616425563507000463770839208797280025274637034957643635925895590389277615047405660504631635577451444267483981131706277799064175785962440713729877088408882990834624599948241764661541356512519245129495736934097658995105718416204820119466854124741264778784353582037862093403411716179692717057485043184859376396057723802659083401179689039926399108806272588285826313863870189407096704295822138951446262090430724284735263422913490762201616926988507059645768633163787852271480334881662935686494407986273845535332685798599756426063738839539475798036856876149578241323236570563239498243553054204648232913503794911332401090366029025583877272508485677215779781900103230247633221634906317165456665062644246553861820633451373772482584100501556127938611703287485082893847795564905923183683529032133698516808532873563688711994252349721809786349586003467085554821651566671026910995037736064528562432051698868923929523500786775736050142324204775275880530038038929812891047418206384355268022378189560214776513181895652780348001481845897691774564580330977936488860668051100166739224711955472518555051857740841693650276337038649045233636048210229344116075742247087337868950973694265771160619706311953135692489380347270633171294426549661581116378968606882278189201616332105680638428117437204384611538543639791015059312752068861017531528837746748561628050858268731823369082955804792610162635218077366450408087468043964031927616031097177711307907584399626628761438977437560260539430751115742797805982258534495275888802807314927635151423439910965048214826118603473618943063314788584571757696771610260006471410818523093002605140344691689124334150275596853038314002610817471863492915537804511175076426672990411295974379019712101458680657651107636147037996455355486254926462795546283005998606451215905168296161381604054116689109640098157094979896178213809631375601476030282804468749512104823305342529940183978183064476584536962626608664609340407892164995427202077711636877648060808573901679297140558188813510949830557785580944112658805503934341554301306193171634241321216715948583886846902356798195122241337208096708926473823037157887995039049429123692879597372403641292233296542373313401553163349245221320462368434960296073512062050862229184020338042527231102368591445673358856237032413529347645824823762959655338567710878343500907292171239965095182956716043477530965259009415498892764836694871340438661455728496171637628556719620821321241931597665346185673184848447331373199227002452154491498788877272055090791159014203081564385521729378420039817410567740168019127586836347701248882766929659526090582587320010460912074394178584891303909055465762101532917310260934843051791046587368809357434652156529868663262208731435293378401100839387472733252398417118287280725431340976712480308818739971926311849097089663182886533810176731078642679146910271510631817407878355426038959042659846327445475849989668045197468069296978481686950276607734334908284749478149904497707645147960641955116514027987138586354847937452586194339830457832850673085792971231018201945862750812973990574858271202169479319405890141895502059421331178263220159368531870965323624678891127360628798202936166736875071718717691448978367841285372150569504749541827637390820836942102627402346399540534541036908919968158195378337184375343196963190059999905367478082401899907145265277106932292164844944040213533226737051053628759661581600276143095705272872251494544452918451738263685379400161155820431288540334012287756164176839666321197362611695594622440318021070938722949629202964234358796422472583201362936019412806836393619600330485600510255780056644587564809967743328534687611251821013462068834860792728988424094179293704324801204520628484740282923245728206752659500386653884759653650538389327814379408726605235886648628561087982357386193123020272900766006030935795495631584296433281449112935483436516916923404581935192263611770877276578341693272831910062251190103750873184822773723742432815859518043939651901774272264110975573693961009315137536898710770246958094456640199922472449551568306765627040241944888148646801593345249133009326758040268121276142908676177149526457167326567685106454406328369047202392051271632220400574037991268810016033523349314028640999448331069352215176654878155249611580077521524886279424375301216654838106009556939668156466283419903631209047075418262901147035794691702982749314452517171125055109948736916887021986760299723132156364162743349873231885637622417862593356887072554664879300942555961893415973361920630361611829595494155480800477170193046708549584991674407725996395754872465846722975740756188189288098861865605012422221708997674530847382815328826713366178534957718113735025885019347804609144214956071340636210916731236395493853779273034179698974133670558081420510291867063817233687192661345698861770808532172136505684844862612634109076335534328744622978401194870169394060869651858819011874649948897228921585265982998740551564769045790246921983117098802856765425346187361173305127969930994672479956693503533430497541193659082605479128319456113754476628550613160172076061372701272667356281076129452158628253214083195335536280492295443126521472459365014344650525397482125605240991923284732532231243653556907616235641426256940317401563475655945920706997965055259799067314162974883466879223662915746166377017793433974270314944206377651462691642328099298364149620728581309165325404357798293209057129972318422781183364350584313703466681398001261679590945294740288971913376999106459529985846488855524652903691052470576914001093518939931555818206143023219529622368587850236053299461777455985929825449721771388267997270843604076888449466697484573839763799589412335887406489277175234455699673959557764521362909366684702680782483165175347736495990305913155258851852135248246269468376092554269454768964382355205139474974626457689248251068393680512467009963571817707247605988246659669925522465103284054088000339905577297314860171951443803313150417010609307935009832538298839136016674928826063465157055015659954777931154180898419796842426132129541630894719742331514707712658886376923134890023823531142461564507414299120995911766112438018625170129151998160162366098216672238458022312522425034958702803114778184639054540307392993959949351015327435332485422259931630177624162799214306615038053125052169285994877580292022307074802147813140016877927883696848412588760549067214379260739711161686563549764495391872465614006148656562369409039818391505015117171827123697338328528567078136919944601014565951409309642577209311444950603873898658118127319733369040721432739498069578646490219925769057092292231667325835960622811651274075062447848036373692856118195243536080866378596148476581460298721147187635700066708931761098649225040691345767625813049550430278125066445407233352391741025998114406355834328341190239149782907146276767804683201919003554542756390547347817430217880247827246084419670038957140444895792695773828076330101634936845888882290831675005736269019134259904120350647569669177075680027321585025713163635126881007563119125305722285968201479512328879458753188799608365871849670722806175982173389221759398926260707892348468768542500540105046606462553440432641606745751623460992806542447279628919590783356031018973646673341580064345345283470625090453406893296554928421387488929170706887274098188399585584622794914688584454945793355813646819954126724121029171834025060271099825115552354692022372247049373564055498415506330324325906638939440868347432754144551744203402438215208093442785229831539790376119236162910163135930315932162594796471126221046012736049001720178123534484009394470327798587392665924644617906719285024133870681078247067567670223554916334081222257837717405650179714765727817005970042877322047785093092153728944374336326274594425518221454851037441604072180276671149981435799714623440702271993544111956874745134478161554264612289790346403107255332049807910850920499555859714166906926594197024724971046215897510398774184634665060642633395445069895769733951941377224076572179079881509086656713294893197146510465203898289406716031499100391493255317427837619491921735503236376391965363300132580204426804046737140242740389516104623798035500962891704861521857462103923335217768934930376079601303047055804438545342136763720444230450361387094147027433473652242474803428119269580969351240693686441633822506483989718359412432209460999170968178681872214409105649012640317357001184242840611987269800640114609684452254545787852580259479701036801238856733958257616925248732169270879265199580646382935388427587122759045334570594238613833508834558431484909423668532510941214823669846538849805955393142406072426522329620526596518437272109276521988180827571717176458156263890575785500183673161019111557532908596382345110232643794041918384233822770861707943096227314918534495780503086626457979289461170599043366224881906612064394106119078651271378596723866146521954910748249237498858219651290471156350939498849218029327711616010441622142810833903792300070681367462823626087472763177281072458606270327098787909246503924609062268727754942065408576661507271625204946988412874519038930201790308951946536457221661418125879377519907871971684023123769816631584244983364320192804912431625224976743832909555979667690120562330295233713790375974945034743923111298591069657635805731165327940698480925736762142936566650868707838422833046021951690388030803332743366249765394545047175884298495508853344548866466350601514239361268680089997419762134578490762724225765247842340759602314876064798168550564787014617312476474193239343799011189811434220335363924936223856570431599187814143263001839519267024149600615265255427917381823539382358922888072323916047370936872461392779010214377160001298175730353904816310897106793807536381763157116250603515061463747755110701608329317515051031904276458162854734080099473203649610230780415623425323228689745606959703167638064557182092900617148280156751254910326150896897258588717558807610266163763091714284760523073494345052091113223491159480810877696804130808231300686882321838028159395539933757298793630204331438597882755578996825787853739766284545849019169995619173268090726106731814387011019612024694449586402703732559899121457615957473456526855922255265677469347075037196225101901890618978435456354844069481735391014330271703553099231720509307601807223271899176992608810400177820632794039476294638769915248307906641301920285280256532413170143962627267046559518303644404237333547076093243417276446322864008817992837172293436426799407154707583309033084249189536405402044028005156729984868202913120413250608997350972722826800852367036845169480652820252262637568736024534561851123863742831981214234770710087022905696813608298954142924493798833130703128671338270030109300656586494675986868328230044766755615059186374165417659023762240326841666423971025649711941444327202669115692066829025858411925148277363853720220168611122581595243823508051205490228283029685573061038819134970475820705589602518001876807876805756272551062081591557907447522672830303523659973634692790767609819275957989745869427037796725651652746193121266342177517535821258228385616379802086892369984091282813304982194532051102844648667863232163101194483148824839275176749225830621087197118625230632046807491704143890497072837263622538689532610990802533046749168138107500460369603915936064261732428370655499666753061351855553983484530734926398530440737708600663115873789264935346584412551363532764679107267592730417419282978577102860946652357835935065729196698400157506917527615014192019093213413769743629536010915553809189145851396696675979098377531074026493694653531416711522254792671165490686889990621087370213374970702632761293579328768088742732042230071512085370849279082908933371706207917334453434202580880216685980002638601821215598065377795822327978170959968762067664895856128753170585968661910228055969134354998225214262043814517804853823837182905775834461430233947909088415553486685127248533555933758087770291699998667622356374438146459905883787318345054629509552171579718972152229949416516831850932813570853427059741437268866094477353281842048856885861415520927967751677291736726466544238749037639733735772491697763146603517727664762330729118549520686249269774424478964691408350901227441124765669807136706321658303845640241865985558323367134093261812546785943390823702901092876619860166671548611702020442463700880780156129385215728088075830481391381333328389699954217850196850072035903336864664963887915978921583593238301398988740587296239547410960205342478203191928455152736900814013249961297526478245076582330585179709183576188075226678988979219625921542946479443020438316682375001585747943963528303380616011731114301084742759827840408058019139324422367683852690200153082786745014440999424192807359200698793996211162491099166837196754918172559859476771068173498679349684247090108266096732251184320010684075668551857047175890975235623115858823134978364369736057031789830499354917825985494146774501467613464738172472124980724979012037029041418640209355734616616041857663293117573714311334622259325103209636960121593981071823064994584246156519138414113925597658151169589193391864697386693415351090490739496247087165655758475768986892221071342093593995614007844309253980645079727564197224050732478613732569519974755505569160660895055922745763745180467397681413981668318423309687592915751328589179852368059390379270374986589796346013300051921910688440586773244903407062700965479554512347802802902634131931918819431822822913093258483020970300901745175670156553158624445089497065954508134876204538679380481620774734606847800804741118672951479199640946420739408572668611537543374704287975237782498420856770710789789153764783898047943754155590731481580320038099913762841667342201924581066105025438486366782952948094143783393456718519726691413487677646402416605180311747669383085231491708065636299390757158798231237052443738031024115158639797225498077996600124005066221935064818090023757515181561100233431902744111460438645640111768253523945776696183450993810064014774622317541055298806425515910665435883380804401140182946742832693593916594711710808893639194094573189598250831900588278995200918495581165702572267973976091772409463043890963972721131741098776087145977020516754042757046771888668474558726046482334610550370493150062385618818731008316469427649460541588851184418069284799369943781792452177595978363761487671638048917562082631223604156106624804132471566843215982053675439957306010010485459570718966369178747552729174688826513837246736860963710218457588849389996975667609758879725193093173542382030391681701635404323617480623963699836460486543921063077775388362697600356148030983544852393802182158286013401998609059997846488467138505075758737545334096960486991809390707442373944670177650356878248173005032592022821904043965166131486487853703342596833956653578706449641334910130945619192766701307840706288284898474698616690216020316163383605953913928436743744661130015049782540055449937103153344938173514560725306815079818772625024990410720917540427017165259686717529009740244081889303077849026465051473900624912988789196748771296468884364220810678817031658803053882459747975670600769727817097746738027589236496191261049214389836032040441005947105161520619506375886597327120434796228679322322844710522875819409845941688908304489583333436248821453822810471259605012030214962825245963284380055882237292957091316038248469406959047913966392182572537733973070183879005482537454399978258523267526139563690249846731945223890878362759662406874559066555981047472511533123945945310702508192410630006441018481872767644113710682040905922506298242008805776592818291767733500196148621618756786852219423573787601185521549615620625029561198556391061759915947847444422114990676087399352514667833059334967307232259830870430780910517981954777482356425732183436954167927250979285840603617500192720003117340191196692610956759825917449749500737451564935782517337620562837077307125357385017916787797434825904014713671109894611441077102542186953611581408904888639557336756510012833280974349054193806363674452682069622094615807336889553704254372351263565345328466809511753753882722575379312547526113418714672140252329178673686969603493706689252831029025764023404863543957389364626649650427314606339635419049059820681374201967432946771900342276856023359784536192577539906060204234704116386207661051822566698348084977544855297670183957275404647981584225313964906769016598556594538995208455039204151992767590576211747454340326130742222337179261927043398398426396217047699429073752326359101225895045598887105160292218201092921665015252800120882407793217060349373840935986078050288598735628150188363733788093996326924498914753793278868897055022679753815031187508429557053485917660082938929173294111141833103955321319003812550721238230967606481161558369651147152249401863073788480897910910974578721796744947349196706745419923572023921342992788228228754120786030983295653281011309268756731494822899253366710848389160089093684357197934882230809886465384372648471312370516772890875646699522733505633107028266689221171335601352852158799499633627444457973624784847091004888665232934296732556091635793811411394531195793402559174173510482788052093218869384564678834024042815456761848056106920039429815992635988196216048852677072716087587445262792458819222742012672154190092002188453353771266094708207003084636979014896405200960088855207382302493197797102456199060903816284940144364574674990251597344564694698307374836842625833250096290104121807055008898248238286054127925833788508633561155370188485404025127479491313081139773645625183195129714461397646340790459878282021990586304576524137356332487503770905466912271660479891822231210612851159908042778687045311193270385065306652341199812770191797936346429477992248789298367722554436990302637796210558884584425832238046427410613771935015148255921913185783983064544901983791933974222826350034295793274539325270570135022344973084578660661193117896624091783105869563598860905083702688528847529090582549385471688017226381862879608653818214456560122906170365506690108481309821903185823261932853655786299863592134382180772620424619080490283070780390584876258226876357678993586674046166150534989835526175170536591792584173689760215944452243945934670995582647760369029778161434946612939645764785296254133119822990005329418970088694591512494657737106308642759363220338841158058817440369602531491712398755154366502330895460287091935632409406152157610211207690306007025152648920826640256067065059069160910567379738602975951752692212353391586114903857577624570098580096956649006909385927025483459711958123204140684571150967068216432070885253684783010747342725408682088198903300556538976186215061762139777477096696708569307439798217476082043710715294454975562770140573985262449867463607969991454665159996656579782358048734653446988662424913530338991313980058266419835242662682527638992605819657856177364641308083724768613088796986512703056367216671065460031809292180819558406542371084969374118240881150232227929972476369748717274812518328713001619603576066310723755022675475590222454191809948593070040361947773274888147256323243415045255868303110726158248921232249220809139867153230611184984117283239866245405098243152468568395337534138112916191068743961097809380499653373923370770199165805357519082029298167616560333831894435721565413451324184693143461800939533611579183878684627499743726904842210472128883743540934074983407673635717575055077465729698467154390037429832854930276799214266006901839970218506675877135304098719039347914271461622746688499504584624027838920846099341178583948422655977258940407341477562118692508265158238384789357271917810980872569382939852392900168880588174030451261491144811034941984591258086650772981569418880476995669198081837077503775145070408124125042687039843486759697066696676399990250289130369197487169034500599969986501120624071266989386362324994080206504471443664687644730378217880515226306678112689836628220476831179161215485974418862458693856328459723768141773667398265607513788423096156119204859824507034976759652302833274205376441669963826564149997522118001400748684714762077552741118355858368375724330014620370343193026047633630165384129620302003231537847454110116995476373072075915065738091866739154012109577707601810687229840863054859862195719320329794327746554586002141341135209278210050299801990985437863472812235237953139870007990456404168322569679058141130414270352855192023863452122024221055620683537244303911010783192141398902421466946149777889027764025964681974154936566446270814775927492819668550447637713436679160271877719156363786376663542336172528177200789532442687494080975999169477024179436222297057383891388929695515261830905042598000908899985535857221069857555099609587362542165061631686473487702207644055443875033654121171562655517261354929350350722646298546137976660755601900929596454788514741161120167161308115902371862209144400117335954249600037680968753758168987253208593520930566563512179373920668877550791918192888992055603706513157580648202259998539155946512259578054677102324637181134493690534564299506375487567590342697833359970336814326326719758663721787888036466598520845515634278495081841793620232736967230502302305299716316516431126142513026915322639602979723678666660314710992079157921339283364078778623025883380073808498220186074732913210903515273236647244811514384621899478689564763016882065936202472925079005752908974348571192269502389016945316977499167771249954346019361311661156105828582953756318943517270315232498338364819998438920704993300184468984099222858528431499633892947523743006905990294797721165536653937874340609584077664489597324266822739483828789091723060723217996847867487846734690203916064727617503347215363070858751617162434727174912201587227652522981808767632693103458367679115260226845300617183924370170043598974519816362933162304608472390462952605813062515155660333034554607062240888420514204045764649159650956957547917749053977588617402262649451425203501533407959757549518294127786959491473086138593916550254874499788128576249358987826558200642840637593475583763411583399580620518248287865084606172641455998811113875628993151739064319942886980335284189758439564354972778325485391123130382317782606481031280696104075909120275131645870128626960919248692518908534299758609878874306021394935884327299359366613202167478314379325513943752816840994615591463249419403840954914746810394404514172433482478809647086588961721738324886668964918117710547487879262249079430776074849687445897600719785163747623124018252647014784854789315726778502655375345135002354004027369512468785182447446026874471166834199008316069427816004903597796877491201365099755581142737318022975076725158709370969646249315924575161606075498329165974440155679960181865526724396682340346153387508228327433727257881198344794751870105575945280103247198172118579936920745295337319382710489758091075266170513581635387739924464341165918223813079383079789553187517775454252467299049755231378154322767926734277323819846444683840648156164486337125419292830055003364067898257643647391251349030567767815709777972854979200557031526308597000739350112613370019774347213602864664722850899910961210034382583740017500400854789280145781825573923600251835217856781975948716359472508663623356649168516949885075440016943921738055374360617725424208472991008359397548495227518445765649085995520502783409677538886519022671104285864015594609999356372979650214784439205581321955892249890847395676840249865205619514741197900908194545877367119631764066796621919205439255097614259197190615937097274367447330860422155667699937160177753385060104396002764544165748222126154168379215582936809290026035878478318486063213937689655851142161683613148755949754589438040361556739049185901750290975075691484962951847542452971804002444382725654500722876417731291385612515221518028864170088546039290678444546536216561056356503241294350565835283053556265587792626785592200826078634282981556998977664441146709368328628228106506237520455524468943110842105721456574662125026998438930210137865004700965526260407611434139704357136225048012459333215554207361277270309417140702921266610655454432540120586289766168817584051928901389919583193875518159389096481569701494417000491857220438078384226752940944262408723923280798864198820335874046186274934555588361901890158622814625844072268173476599004101543559817738145819846638211320796231103050580936698811726845092726809227489498841480593851039313169191136959503548291991160668520789939437541282334293619161565287927784438446465902138068297347277486271325688875909467924328652844919623053074749426440761238729947791718979620974777466827683603422429044795397844248161921004411319513726139311389392431766446933577369297508982126089419285538769456668431412057899686780633236867997519179636531216027244154006234246675801253208041420206182800943092598528631081083974050987693589183387674720391069454406906664603867632438991322943361714217653575463881513553040405522394183650025702045088479765894331629194249671831163170770557183660492596474775458963383754882407143805177686848891979909062159481444789807969004920338282157108489202981712720192785170068058439904266827740811732146653040872230733415331864240905200402208535521451059230441309440960100181092811933784611622295217828787660196094892809199667210852784372461964389962124655015384883983682676957392732926121377676857694203924130976808879827432927232273094278124280614919059763481553560786200543340522121969741649115447144025277451737684585948942938884045652495151305873515377758483223583112595467638678984181742431115151718112325771960415862239408770946171162373392663274111622339151398361100376215883732548650673141073382279856176597791885850875487559191433573265085221782067928478369548515135732115955286031311094587614068758437384261027971578205672725816093451119727205263525716835828156038267479288057827447879487982216443035092385970157500830759564735934374468359226481064111695488930859472813756061331372642179696977348274862950499257795865139865393566199153090199324537077280518778432308976632305607236617579803852890786124192130167390714803283045889582723548546573975717913516786417494553947761210950016739560765792717746575732449090868856081037320592752027912468649179636593715499415947040660840431479150783707920429638269111630714986495590146073629316194474956123560149554324436225353053558460401642677198072475681773452563084822328179619834132831496564895887625442008076041754314813598823617325026443497842752490809802953872861778529677975699785931802523494998502710139544759248172025005090411896438076599390411239539822254729893249753743320041360692039680169670764374216721588230552800322143410326395285601457044748057450073046136950593328181739813469568484796937306616370487365146771025979396773892764458429647885820482141232469830343990302058569328335483087125965228353958137937385711377717056084609129168591370561347659287145444866208932692273503950882619744130264571607293637535841880748130598617384586875482847643625648424896224861290444504126547701919202260519914896508410686370626304945866003999306819240109685348444242200207675826030295694634040393583149190134736878451164939792614156045142841584799768688630099346790382194264189787104598445817547963067088104619079519433521556791807259414019596607732623949449731411938627225145777975998794686244153205379795739339004761007132876041905283720613494847233235072939371272381927142579044008744953478818615217505626178616349026042784409505736613955876763958383688021882024141212548397123722557067736873724717347315260900405542516608473171330730559309456996320394971149111161953822428643100677400187021305472850670822849040371116397644158498115364696014250360603155621607966107115446205278427553545934333920439266014170570530909645536976268639006029006153012411210365845316027693055884053534450757726707385139445630620948940078604737410625489436317547086839810581511542091432854995738895193769586380762769830072064386387995436191529217286406408387275045294911837312032918454752625589591227088075989988350066970312745710526978637266618982885145034037801115043862549626009636594372646157058756102273524407218473394610207783442146515902310571350355779081219416124454545835665894256484737975836294920049488716385503252976450848727222539626813960990581306088766403337732827675267058892073800114522595163124715747763936867987889361663338843554235186807882401662018693897278128219868680372832501935402042464578876598705562490411743117057329993914270151974424031259865257298482938029302909509250760766164581979247148532573690341600200621483166632598407749312246804844890900408589833336173737680975650332908745373062939517477169707766269203702075646134101045520178001559248663395821534323515370322314854387488961467452979129068066205655168429522623829647273550589643807751318237473488002422257895923497075023304647121254365498035470910168579040126087101749657369936233551234318297161247080851468444377831771439093402882372484024061642501619769067152334191017494633184828299001068205693917733637812667476682634549649253188713601636862118493115699202803442750980004771679815134464831138549715582489581747585727099475093766727123657020478064540395008229176196403963376385998285308734307218493876295885481948515602280208034700334911899003596456597255107691321370630937143682919426487556438082453149683419820525116640535469398154963972322054012040143691771422608235485910378320741725287007058145150034685484377168853956031656206222874233298129798026033971487662500691712456494105831840590872927397767183331712656859826640016466886666889559730835959049146493416995196279176307419429796665676447426959153919134752578158293003101963714154209508666507411155503618420417064941854297608070582678179253120037798725059545496924926210699348552465456189065930002230683818041967099991090760256244127959120899304148808545669716212997178386204836105006907491096927015020727561993103709555568777210363813322033336616749415923777591379942883657985244475870894491015036365560245062791361503488796277748739790770985365920499968112227285023590937275159051291455679009139654284728217336088136348770030145198111694947518757668947429415761759423204199932508941803883179555915373194065023287419006328815981461895484040001568517202320888709560666777050040035415789993043737650540532509958104642798628757292350705957552336060509441618175615964588258704111289682102943580654177934094391547525541783479989122786048424851814969776069037888887541168153383574747899484365246115276215614298322203758860946032544598340229222739912600946755358767128879155842427400820357292859187827518987010384661848006741713065942956068953030269179976078306015323407722086676365521707656915768246506857205645649397095027932957342510589174622932100653051569079249291397360857113730190592747503520604352286424955366738843986041956341028604316204927686885647588113436582819162647211471183508320789135967251227962851762617814934187544195659730469757268154733295856351585421212046083831578292334928436461562051488103886320187141349822030797860433307479899319176899584591498855196674745408688270348934995258622453052023571579844843542179062829060374142306807578097842776617527415929968755586964970715172303880561210240337674546114224263763290154455918995059119502562121856450950707300085601855580714447421086245806878484223077616612776331141703959033614542996631155457246693150458946582770878804148415413332369056811058841438660117982005381830946028397461446144406514612028404199601652292080337632641761057367462171134586955312736892767700568261660983335337614713086654475440030904472261976796559249451752978091351053730305391500201303002355778084326954142462516702215172055990116521367475275319346528614115331549832780809052567002328219690673568185998103791187951311385045496437590096597999257844301760942167641100197837455181544064995621430753042451842947174958882524443588504552607223696960718403006546148748886447079977670135295316852390841116725775753171723991322627857629945332671543537471214015260719485286310980355530178603119969858567485813970589426048266280534354648977103898512285983164212331005763268458991301494874555605139751453028426433456817201111968701486181526050074257864400452836483558513567463236987588985933044551378056650425335906267833633460876301654038813365056469802731369815206064114967014130975964359888068184490486322980271891554404478382043272622561083668976462477699342545187519860667342915090015844135407297167210844020173908322780457051793773675109735415797201918790521834847519660712521049933608716451317553963390867378715279279212933971003746751539498341429794291150837654942201460247649893244968261773490799355781755209601693215500529887061473294590520674426434479172105035234707531596008873079447047000978224436881013399999927250965581618599118638523242532500272905047642150434420124204911004990302518791707570932375069959160424749485399652611762274257283842763041772613605419717393486725200564973280209723879722106168582090375274413926994984392315277563208080888702174794838909949348701635336854186061618113469182431394028906395228086130114981260122238747428352570194299084992572467699664888722426698567311055536531024810047045629511655963939878676076679788357259698123879748996681370676648593250865514668225225229249607808805746067447387128603541269663659441329467290352578851553323409920618582662913386036512984599391424478654591707564261727800975781626014138096783088519829500835581678427454635299918016695207476305921012746042706731376861817231169427813700418773678745807464747693869501082805914416124519602039126765890558698323131366743597388390410422111171645727859549857469350619817761638471309106089337885312441586773399373483751558168871288872562967916268192102703207067762604166529459184382810772797057243471452033731834933827501592242194458876710520788243459096961722735247896373092003621214237518255167998316880671517244663888350842871091278720107740181235335049497598298414125159659063649069567429593801595815277011042607200272388114956081740080551699674852595552111318879603168179799789581896255892185435812991867349913818281608299096138826310291995163118378554886679026980058103341068293651704041035595463360210638772969547353984114726861908066083947284614583893407953577159888792030937595169454475858626137916716479885722782291596406333506668719024439723565648717808295840170926019205805011411992642234896848814163766042739166010578967116728573543613517976051215860205797505181395649393882163288288629198599286051363117763810209067580945869546495253755245166391125960399661873376838169223997328737092843523635527229626670798690484819211327947982142222072448203352177137672238582501504931534277262929116817604432071582063729437700206950581703444206407939447299120681950327674087524340089513826780160300065062966506004015549067279972163515266227745202722938997827682170341092245641703824204266635467983690833355171710454307421870818348376306471707733962297626751028795355803910638183642581896122675295091851535125621413053485462598808155846523676817497209007142600315054265162569910671373452722249576278874832092906738450851797980774286531519584494761177516375122044185139937142963890901172820387303494579128580342123169863860545520406409469031115577793492750749718155103787481910146553992763518399544791047090890359686750453583095742873355405119497486964026493969155118337157882510150508690811834208686995698072948475274972588609445422271381259696700879760934583797452606390319320635893189375451511717667725548528672616460764894773941096440253580889135666254035947700177080933671476991792021277663448341586701208518084062963366239288867500108225242578479842204138132058889028219371081281133745675907340137174822199194661097352906151793811885536288279855715805973825316887802967253986478211718555887005222040899375457261595287150155433754323044149463532453823208864929369216330790458492518613000810607869434955430875480830987952927793660984430312735442073225380835795078525170252862848779642889138574462871548418257893741861044854078763128840874145757834601386967167952344371457199203039199381993102014694548751283338822023844337352945576133877293044986769573951135387752307209033222684648802977165667975636151844576724056525008625174776330707700491545172992014303628086275470579698142765470956904339431824245627444805358589482973377581816254131592966701137791376061309782885828902494712241018972292225023176275196098028493396174853228254812550343568661690320617884777172657483245979906126785859604538283358220008285354541712272935272959366050688079687136827084445798051173191390637453037871820142100934912701442193259672719104839999411311363047094909921317441840343969988411171972180924868517711492715310161126901037332175129293905059151909341266333050544188333759852826861308117055509045912215711402973719025723571637897211856830226926734699651033970315865152011061126703764290758139675579983361706300589855440293033737298009965287348004620101125051195939888315274523169054189155841925688637459363211077357182228338440317901890712707143113611569472809214579767256846502248614692657435981987716848095466098427938579634462544031963916281185769879265476114849893949944123972623182204757549890108785979746704889230021589622790571573837711517273353893212815500210941181586825607879273162410569687804709464654658320579306430451298604746670094635762722661873924460764412265010140319188148307715853006962613731595712435331350598358577671019773824528613593431138254298287899200646854226465067530315407185795629548532306255896206376847448038194475451933468089155152414826426976953423609344924497974742982160931106645267756325917135136390250969118303104974797708748659939180046915137690571644879666446874774707422610915906110966338227731785627094283062942034391533040044107389476062926217890425504050702059310995171457480142859653612740694502396998511212707746225330338153741454100790450811129982798836980557543258882492943689762249378754655885167192479626382887471389291019075925273343245912814493504372784035045592991392993092717613764100298439634281242861927845972416819415144099766045433157850292177078872869687317974143545458350637512496961642060587281532681711019041504745936841518847700000385684269144065793606530444398607874078715547229765178838247096627320824064150783782779803442381791987227646035464784382013093558148733888442090623247536009965387198083096938780676370328763882158208215359557170448822330292108779426929278065462873150308066939769624567398421321902656707039440952656110984594731107008916286529411754925721127750704683765545997773236129786797883611392211946623024709922239938167565931912456948046592603509463580327171642780914404154859191186238107407034364686312585726956727859640070534791118778699570340586808809162904925003418356155889269205773022877057727866118153067417362121299457535039904598102933568859962944833880517552863652971794498174121001267542560241441860242880259099647659507313553080474857131367252373276896459756444251885063594283030872035907585821339566789663067364031082200017230580308890242557215321345351419198527358841028653616971475306574078591104249566617972864798759497128006099360131515661247123568619457021563117182490864165405948196329364926048761161830145591820174727156673690396077100685322134966714219365469178282256398529012317336804783470832005525329540330080781280625288797213410442187263983231641521953264656858626243056666475364749772423703509190811360034845547085182709181787305345476277141037283492785813457513450983992446177436448172104385681092063428479893830886681729999192096472007698008280122464493006657707158719350865869880598434186552845286520362131195779005119457781196069608113786564430550008531816289996691119459898959450113444047873709650307749504481410620520730459288883634421386604582493069190881490157671409089877436909333622493536703724506138087133399071354263507723717642754801273029866906896945224738646043910944555335077477366884475238677371148972456523261986733719410826233650753468584694259938022989755463336181487257645108798024286684938048651112769654531492467140773231248317751741950602426488917462471736794409053727972072421477813811290856270508556165062047950274537167868934834564358302911435206277666923177129336674673359588512170550289822201040083682123016011660421445270530700202295422356016646237107908717103502023480969708747998733120490366406871335665099678803514499640231434112855716914803443305714508137730393791662830845690297832156435475737835308121212341410681602767116665834679135932045205418283611771711344671710648548237627997314404091630381428795095804184069423560768226821333215482128990127582725384942917975407538397677308255006461411988947368943285254592133765385364979570574188127509000610981937102017532210305487832626729107943981581379895255889976340105424338347822634879111374312317831337170260621572354254221567732311184034064069126536610611941722033694281318317964805300293437077868001172608441285096104331264634919607529598996000293745779419969213198636521953521024224786336969442194996125077308552176745508566935248536909273040222851227015953126055495745866496326673700722235257416967439913542883288037289641242722539851788007578218714882883959374373172195285713730034347252677400966717264087335549344702417789269309288071667393215475433293511396670418778600543912648281005131454504080290361406096473488570176682942267387938607614694741092446020188980432566547296686439612692908510937491652927606531593533643541540082607878252867953874093996967693757159046900571659531812577938732649277794502550732565854281136951949999982916142665716739032292737703962544657353158359156868030533663769729566074531575029051331466144759542792511473285852125372606626633854472745138315924813032442550268041024571402362271245245099286304638718713789194273656079212577112435843395741919117321511858370729054155668649159671536176593532997609152857464010060975406616954317310956210523979761510274508778662969287306340875677409503037703680340661802748478752778098109616727862896675508360967706518351326387336652362076711701767880969843332038915599907975650845786128442348178781578014393519772958280047497494466014467011822241568314718436285509786908499876992935899924289528636623983258525268190899460436250367875949664362037625414355123435521086850895527668764478472292199127385216667151939784648238081485239921952134469072298340719225390898908359517664003823945592722228894140603676112528814879771280874379148624716210982575866256438934358636003582980530058147528514169428474669920998773676652159919015493520864442280722905009786968883037294799830181551111168937080203243222989860711595313893410780005880882912848246279756869048722584962051239052072331158553157731483091780624609362584962070938395876611841182410283925610490778241859760646776202091321834600468249031458301963231257229815794871171729452555481271005219966467903370335792982305912134685404480752439559340632983009528397128944623256059810879189087440787807532171682964754184544536959034660776479754266137449657189213998606677431553004441248973998691063674532791626120286343565721512399034131933463094642763927906507949206190485455552952904225224136172827392304950868892254376555166459397665631565461604009306466734492000256011835567240073130459467995695364131729118329024133801101656903354170783924302457276466198162024361855977060603951453785555104739270339326286539499794587936103006908873840393258622036344478686332226515979575861913296525040278452697532341073117457494929352849317112634183994624699219535819602976056516856322249832302619721926523414094030843015694302160940622826857095122007609523175973542600124643068557236217906640405820049750660988208287438212037653983123571341749963912920128792333489159870368797732301441509471589085557958277989592100986348249863070034393766992494290286017268620371735924254758129796299797553382591015119973831199677794692770755377397572320636161385339883892822474103479697012271993846098213292259584986061924004548944737299456719631373769579740615648764540751442502525468010993802645687086071731383390912636681676699309456314343160267082403165664350706305524551920728548518452915817150602497352522894505156702819910271034599288537059073525932409492332252597472554247619413086154031714626911049048890115768488666905255003481963930965931835042120374263382970369352153181238815554153306722841068654479018948955136934857654676004209135833716665281006711914916456419642436368513690858251763610803505684444314863611813748680582188922298921971221331775252980512746190255597901932215908300970462331793300368096924767619750671007897280302255502552655244638247721846053933485213004201080361994210762906847446546383555518742388230709586643742047733995951203207437835301888550149698780808039249637654435390417549309125557828731985157720864768658801667795182017364782098062689628355663972311464977525012604987568606077470358891838610888034983466768513308119156461849703638602461197195371847970789297774207273381110898742878181992890633969961223013681696995669489133637201201667371951263776767313001587147394262722170209957056601834979662773221976550360787339257108340865572094787554796951284117344447822547919330292482527915530452641948251408601374330290434744703569326754558577320491741364966496341888063807126767507387022789135155135702278545864391896242070319074149772468103987071696292290662915215377703057954517116344750130568012919232665218154303622555557917645683698605700049976710228711001661113045406758850817673543727591447720440376532913916546709821608833698371034012150859925974562794007045857679204412976430396639412725636926366105050988408375032277036330564160558978349593593062761456579157312611919115264211653450512462766640155295100597404383354253519966585539210225000926707574463568704678437993757065274763426399145601831667710512699148514327811577612962086084079448071921551504416833004165582465993353802935484525736648914571201569112645165353432776463641971362335574955527223589356968858157216241740723556863579753330386397183851414312231371683277978700003651417001268577712063451548470419196814986872057531426804561747253068822569514757114123365673599400058195468720720093859535544150339130825966422477307717400566420216449707031511228139929844701488637095225973417321883434537207805965238792788829174482714718238324527243368365993653325717641237220779712939467322607565933521160164821789619950083895948440116296256947762895372815969778263145930897674660041941041021959034872720886443190892059409552909515926623570625086225260472060574268674955977485314340878349029039566741379899988146038376452498343124254189088470117121874342413892925480832663331724020722159141366228959472464881221388360248110927780703274368612152572874447126356895743471735071227574438786870161123968851115051409890405236881806705302018915078982299407853207068452241241799802650942704216783194381773058687598979510977839915033256041157735679017608925632474865691257431746148269294753127749077106068648156694669489597900301435169372844898264756370789462441306172733343730061967852930757604042058250838389868938725868683535850494462736280019277958875463197508045748475906941743590282534765596844141322859347546603686224859304911639150154377332197310378403263057233764678249760000527789986658546102807097626097102602445643763588757398765315503269404202416610609045668793196109678402728867191331121394509533044694246692947516197598644526374726043931780432721935486842703269447744523221801231968975912815190704910704437461751908527765106366186300893918792715782126011227955883501179307326728563252658414725864632871445748642532509756667721437910870270396759923397023447843891820756795793696252544599184663607059807374751067217321415443774029035729820734026262113825446047965884901213682812573034301777495778038779964542832773145685216621201735115062425111412511288185137173792356434718238620474106799155503197707182788263106586840467344497920183498746714371137711023510036063079138873777524959245222376894907684757211140933019803935740448695062878454744457022694839865536545407198551697522645061085186920379407709661995566095709947438779008865493142290541552038747367615240667067521907995584389338149563507157720990104219183583233418790844011926564070682491991675295305207701979091340258986313720931130410136646348046834922088470932999883105683405447433814296887185605486354598149321267711995311805033737059853655459582286309620603239528301646641405525487033803322342080110271703030290366344299807602526396030983619421175727923976011309624236847071760056571594856839192771460587874960293079925002000043095867180984560229512988877909849630310233990238036947342098846508239810699883828537887053936336424706589446410649142344418138252013000128973526928475293377511708732961310830535745528915173753963362654721531086652909492123648423596805479225973914732970950055434691909540527853096501474979837170873433227847609958194614386372914385262368102148975710489245558038436091200825659293035620592961124218946986590864591779584699142724568327172660833838655379560171734981805716789689781276128404105471450137282299984162442438545375996073416128741374138175865786669085289622250358604626020646481598588451151808211105126055952250835416093794506920696282139771105014045459319627573004951727807343059234475589747810912569793690967839446474960852733945269466763844186450828585929249727967584081947968003358935227589635456224305706603738662499502686007120236864240593071470295208863941515829678770518859070550580515338849481990066204628941180034219499125674275565307833879759045241541125806847161283268938124632724413587680680886484031845250310753259043942908147060450852002963052000508796203372265726238203524491856067640401313470892115042337523736497398958208793913356870852241514744226156544943862728892229701142380292136076725031049037783140822660709306852207218643967393414324361656978074743028467899324404974122007983701108758911452132066885274410745132370440083752595535934603814987709391510044316140912887600048419909688063296949276971741159614206796229552976371985464892895544456299566967304819036597862142626796970455427933697430497507084175165958274608406705478573735740434895755327358411623078140261754680186059562423522896247806382668720100895911054766905150130337762948422439074984552518013271465671343692368213653966062128115337460436256090970045703623156336059129614108632720888041841623137922609354615187088249486187371237462356925657590331960289465567850368541711163466117736835624244580739434649178931299932602919813195192734696577453976049105841074830384292296009656246818319136123844822775362640775353028072227910247789783573742871799879159758172457768853762773008468063024905716090587936024277745115246499689033733248388699735066087179691150914533183036318632493240366796152783524743604175070601355514942086442199747461182594184986695018694837167297978037673392485024675790741099299425660704131697552668407460256053037734799993986836340420103840768600363887151869129692374832476245452204461609677126159936656988844617899926430208926521625660380354162500879335753209381010457601202394127303081526062191759590339076942007563487783919449063237143167924482609696462574227395070115134936827973956465542992287695941966955032312705215525301128750345809254707941210121554083689156625972886122222690727071754242882416837975615478162788236118894726007700260099176870649803777275043785578819314776035472191553150132378941434891881235229132379980338887102427790699740688586198032616733304473818951272201736410921281025265541708374280763082436499933394138075634592351791049119923853371179514449983924395796220833156214524716543917220615498821775517881172703438561509603009451621082256136055799905109069713000694462005547136115199149980998419834041300134111524172889382772268237827944293605617262310661462715788115026847179846575636441173584567587923498120135598316486034299578526233288296309354334511188430467120130377652953524579311702671408405928346758051668400939879791489084568804789957130198507293451086175793912026832516314106706184740009957646345025305353949518380338705194319824096586674091022845558143314805398726726067445433345228470895517157293749221328198103201222894176484942680211706281650004481548976234174455173610226083968083354226042712552582043797905648612321881266868665078510036108446992647045539860391134007775581565405026487184469962535214645730250817733095298234740221721086078707996208962504450095423116785569924114008879347159338589149631459406079068669625874682625567269124677005210241920701681329204392958683671650066042459194463255171579524631196284900229498682948713771004051773976028174933637289011575068207482559621388644996571773760050510557055039333920208184705896455961057851059368704599058816747954168402783111272369002806087110627491423858279456557448137825911379934275291236299023219841276455351124969784184337956161595833748740647605411333584326441059724251134268678399776199722907516082864697840968406462495057762551732242438994960288158645257874636182494427862988620027227208984959755286334568706159214422156105532555782447494166764267512278143753718341063403831348962486829089659792107278798233888343500839290052409959133132990913429302208498954079621035434799794568962608307857021607137293240909959748629929843369837918880937007190649512185006642195019965186761249553121848574683233183217414391295294603297446055821997798497056901514043546214864421085225872073485653383478332738914506882298728702037889570344156393345574223807389090269200672053262913452765573288110248175192819847142847927138861954712052590349818579478715835451489322295896681399037680823856063940297321236996319507696640838439465469191125056905035338600791268768874445711469469877196368953987123697846873308187999129243825799074526567069175532150589889172946306435322208176014477803668478443274953821120373649452181411811854450956408208616718983016867065730248578232902881460357792257305115660045475490799540008829498536630826963559474516187210140983053428613614620864036951754767553010549278261376136142750605112504497087850143973679964862452570888703095023772143552894608645342270558909386044075539261526633099010030704531675586876730657120938614944771876001790923116787547421531000301608396848121444069847212929828284397230202568835158005645134709930084977311145641382759642521430948977686824191861939883256710109776198093356616247457753674877091357904000719945467953353312133391744600850395072279543219215285257661826264852189480790550494799054724217497601994865073665729594791315978484266009810035340985848968391728772227696820650896513509626855160825261654674566933738995990460754955469819106919003450972881882115333907741389775669860088543244786614769821082513954988669240560147200489827104799834562563199893493208051842049059208005377851476859220430510584805898583404460600170436971495183922418288582917174209738043440692598389446252277277995579521562615090123522027195456279251478029237475510696172548620589460893869349317840110827045814487616283001783199141636263545371295240458470424164269606386750630535942961043864995137290101354001083400031737330325171742466813991363594235061112082294036497313314668368487942729225201958341191468520755063759060748326955644849354590183414702349908881270641698473272039154635546392804226393320451689890893207417141280797940900832718013221472470365005280002724554473244382948463200138548197908257344148744801779742391174291199214625877895398236034862538092789621938529801147133244637199848558081065819370503950916827909185417019771904145215521465076312389732951399367911447355643722395694235405313600818526274969712183093352681841652715420916851271660993242839629638775560353023258927650721727217362310053036611299776235407650744642302790951832231262624372864152916562196040707043942113306010075678468304045429316698293086455431327785568985088854570027212288872216234146067592699027687846152662472983729546971298854709846266369955686279092013848262586511796742112074215575912751892370001413608747164282597545189362053273741594927850386223875811045400007013707657982454187238817892452013015225675991241593573694610578625165303992117891183233638335556828820592647604248919506855262467159497712731299305029930804829782322845098594894613139838751221249578227469099726175367226460347730736708542603309618225673054009524324190880238379871528925224554316991184212484959338928959134639926427447529474821220867551655661910589785226050470882866414943874877842460635193815881835686009815805262117680154466567357136030829537252718247143511498443180351699734686239745891094828856155711843362099082493464371475218856845641390071378518730123926734127391506954115261726073785133088854281995864841615451636055936727504280086547559464226818688839122294477975365819649678447295805654240134464231244572392075242792116838654274852125347023458298178130840852296298596466905137605927135585501086267681158713220265698805761432203496784100389795800193185206406527250406982142746069371859916051160011690358099825578674457052154244291431777820246570152044167674332965623440596609279384618597470738972051427698134206757952188807497004017601625223830053745408959605870729977173759519220658014233617959358360480821658016418124173066657958241065205187991240500464291648963763772890851299499378973014889736721554212034033935473910934282933892408109324824604761422943229701989601958640154637835809517307186852124030320199188241727640194867964574229091502352840241294195417008397260654376401444946669520242692479374545459674171452810175380742661864728061273303379096972470999697003720793996702985550177645157318334313368035744986886329703341727040449094202966481453281036718294445681350834533046786609872130175119342122841818518228532250499815270311410847819405011909796124097190734658112767151530604690116756937220079319474714873132563328154860859764310470738678625524742817585993910134916002012274682174365768189902269481385472329791567051860018449947773233582985499880079623591359777328996133006034012705526973431756064226944884832392858786063423394833272402100991052183071582466151752099886968257891401075331329511766839506723825026845172079318580885448607998875673000306691044869168900385970181601807086165161468419180261852723609342361068223759362020572234573747679746040167792207418733751334327868159724162505890063737217706860930678344685017475787061837528936544523716388540428912032543151099855619178114863818782948946247218879841295917844604858999104877543751843447899906959414123615555519112949455367414633513818391740707296955335372797412390980717845892178066381478538423601092124949046421005128518130116228231059361875865247393875067261143385713966683596213977724910488088346875112573990053897116945086672098524826774143341237251528833212179709779003195138551305430270820573772036748959688506434133814940946260603283453414351406432542237663138522102847896055263412074498499892535003968312879821089817589190939651979370650429519996617038478117418248394471637662516986736693047917452957659213507883191258955241165440135421396258476100575665729824017598923079409017024142389788713884571785157418513937082762347587550164327422366651394641457331828306027296848700770344709516168558013078992530501284005068662183866155166369673315214751375212986251633572916160183880625350989268290581410796466308226477561148008548822077998301521129034451328861985092341639650898048091556021738528449546379241652601702967887978882803246632773711179310696981029134641279635803200048440485497091414338186637211662516416179200288479659999623509595313566973651351846173092906069487963371520445704201152188644953822966718292315704914746647727693370049310007979974881971018175607467337785353363122838872261151688177583595556208266863747705155035310459335309304986634083576381438738496753294780641835627414655206249540153437979207055608216519027037800540713813600673364421287003030637500615048920027108135368649898816450558479348252864900313639232652869584176119279352002335823118593140900012099783219331202233512834632042165493297219541155492176187775078408307535242203660401612113474957163744602130682548145994982175095268522086365730352557483996976881232255501019412577574034267941485830023533051744234765882048824482894733750473545923107381356506805550050785551905303478052686654420799865923566222571156234704500564378847033681270332061710116777232281580548061213383209276103131699337827545080261857419447818114673343849601823629884264963550542915026611751721898753911888500983816853249587015589726043377155666545099339648523643416414705409689057864754070132393174142950162600845540347818538472433136004715278108664254812234962110256305734528525011771641778347521104025084615512365521083372402680274947517957162551893524037218971922683370177030019652421631628147862889308407517095874316294616954959076914223731786176578360635788199501021188854524695480969462077537424532033876649848656655116746659526630520795391967549377041485653756106867454247191027106491508105977886977312125694388818114504404803580652216262264497113989725383824913672706168896250867077530560865233880312994324349574544366409044963003093315268479350649786896396729860146738203081257008937602377388346622065155526640305021921058325275351479656920512229163873115158096912420761499040278751459746218493919658425642785797476414951906726196390248883687189687900459013381827489695179695212129983458711052444524792536270343373366616244316786580377526176260342888884016144013393206996500545259091453580403200127635029395940513206830098843117876059467230993211040645396422119954968028386773287068109033837904144418336628512695275722233340770246584537384752517069695608135323491390722960746321101731266249155847799415946670008890984267675637902079396776178190931883917666136260971977939253752156632556253664943129467456509816121459754691127952881052801640898232796450224222804769440890583850299943313242603145093346040415027817214671576046370405370114458249052331532013097263806748161157477366956727438907163052588197726353228281952743637771359570843495659779403606144849876861092258825401826509375951341135644549045640006294823761333805741888761561773418791053601407401333838438933338002819529181177597274811039701698866240991845415534784959397986159480797258403205821127061847898599524330035525438924611421815119718974471830699541543218160814291708821992897660548844740554480873625373728010059256476388920743456569726976787719564971014171553680733215311318358513096693648029956637326372896374094337708562207343884724814195298183039370267707549277798551782866921918475971093323319820326119896606185050574029679558691858594773102349819150057897919579175378174158837271261293645831048086599596971683117771135276130500045355360200797358918938014861588465609579009789535302574161582854678524130428366160955306526419115053934551207618097950583296121450698384697228508053998491813874580176657058297891475516733017795151911734078642036959207094730763391096621208654111551521532132307467468734149690230266542275912036179929510695032572713628829404042279175940047214722340834636645492634530372811157282112024352197354005008391890650761908475572024380435268742219919749106452956910235962620473911232184644495357995871906701573464896534575907907986485692276818382807670276877098522406093389299268756012203874841596431613135499782959174990711334505104467167697253471868810143296952433430823954513875775455273765736609314461363166320661826578512232723114014723817037931358562291634636141910445493443946825967170979861644881486043084308826488228594484153048500730699103482073414426315988163083513884525630778586731999156774113550952669305243264947627840962939699905083114921678347636301413746549034429164169400869501945215156280475438314066263661364551645228676540880040358699282101188190599642880722081566900701657538328710386870257409178760800054668493717189172054518506501260065589061161933676796425611700650996190309141422547271501210388234488339390237083853880004362842790834625000722131253188166327327198119216193193070201307815404959586094887205987991064382823392256466901012879923222212691774525424927487673813289412975273256626908963264940478844034525617252272609108715852598139589257720479518959607753173946172139891568154086056396293912658462355384070809849956189443561226136059279233027049481149578818072738092683104668376281321166477791832555743098454566752902575742734651415724811490053873763203865088492589321614395875250051818860884913544666054475663356543357535594917869922118311805187102056459042727887505833773427055261781038747587382768702381503704642896846183005281246110623186439067243323393433604503256684292180085849855275301456751011971926532727928214553842967880261076068741242297041612215878094224539948748697508347921768245857948176284492111770706315528206255007338007831084621638681307501608881359912076322160427444847235257100036650115750804108424555540071859052289539649345541537430363154381873602852693288956494750923935380669536376898438395818144833392785978231690782176390791618750971844068947392035372380493783763532534429142262540002811420255406594803255581181660252659902573054599807625679505709969527889767729111956604705572660567606984996807842647664848026387057959131031214678074886665627165878738237743237200973540014305603293899862279248764562269403205721826904791108220555957305552872888614709519064960978301116021493087489313410820300014894511742240247880571277653558023056348203532537860147839946778214133694165634793210974709867295295198428878456095189867219676620642175348659177822581104465481577820925993962303163898375146749031921692935253445196458020788685461774584863450091340387682954071979409227300514428232494607800043071201271092315228330875376731716506213991770705086860274310116110673491349996122527785156850212500121217821320446771153941467448559743448773609879866652077555556739259757578415943817230235273809791468128078742164415633552552916428630438367570538028512115966176219541902580178747940764869120562433580418086865326686752976506743284775641914532733414736236143889160846270317500042260351667119519333722894029029619996194027944335900298394474526753609503046072127095695988817437824468879640625401331638939340107260381520795710977425101870956153363158568362923142838058191881903743602457723523995736760355408998932231989171697304876200352395889465232301515919671624551601248753765467862919889621547748851557815064059001212085703725405930895079288787825683943505622452793645651848645045479648211128508391297195526815902747176339746039945573652382857855320560831763998456225810621325712021521342237553889428112731550618065578462471060380622895133480529767691720591205839991999718939102631319392623130643855667736611532875788582682981796649510927512956314841710624819844941627675693032264679835309087291493031306175245149387435647237883622176413358079226803780719337740002150097988984004469924731130800480082361012485936336842726600208752905319797421430937800587694318742603081077989578784761849384087630417213253282267826576704126215899950744518908149894331767023802641469179353662362455054520145046725134683882958381484460333961697258277657516314618457788423715393568219900885947333833132084906413216621454213910710843670968068033402910397431940635755425350815475327481014551031530742899602468845153912930675960188529095676735723500024271750575850290787546366436329117217557422301147590316794883173210275357452021581451504856006401811333478707610848704153636692507172820031196016809484637840996742441566151002386889860496810794390977698433434528195884050211898253228288901243415491055768717286145173439464116796913503741207044593227137245056953451105518133744013861540128569686822835763507229205350256235911286581376018287461841465124254778534843720352352996454697287663163911054090519476149595284870718190808830646040337144630201603908772074693641289128326438016931490409313362383926183086732982724094119679024163904250336214518154049303641572129731705083979154196783213280832086003768059744208830947773546528387270939075421176154562610917109976845356231273223874203941022705181346693215527262707636709142915183287992905164994356366850961270374553766688032586668986385061320257384279950254088716987910820032513004560670111760631232314630661590843897141329096215006034784423241309246661914256566362645652623485899681882729929523568836073708241542410689560807428099269978316691063166714333253267680970338952937744984378803950406125765680431245558988256280705044123084915441822849358756461800434769546481722332749238454843640591161049623847717991626858414645219195849166267401656919301239857543336837408235005249193645946261818716591500824953666020499095001764743699069044854888877908723797813767031649873650826135656024392778079252145569324838672977780940082774422704456437025179523060972910003354757478529316479484837917496615745472381459843123746938086376714534259522417797755433562422520273324995368317440237214999814474291239234826202225043683834431358067217412428569423191731774754672537372895416042217323290233662438526859371783606679911792348675342338713551712415689263411258725462500552624906130043837101330736705748246611227076498664434080910493834537880963939461655751458833836047843112547860172842076905138732867143928314723587553990542209489263874157464527599975859169813516279975846236571170116256736428927916459835879007140044724920452479520452475173592040487090362759813664372991792719314476999290233741314019102794553689503056701411452605248265602020319134632280473960732916954837415917547678683450117200127649280885425837360472896785814247633909167876625639876703895860883138677403740417461614541564651067411467612036062079947815449444356768812832949951321133848336852825942705325943864859890711619909726700558751452100260757847059464678123165791660177345874851270675299519919782796903887495810628834386716647489786611100798407604627436302663427922378112022987674377858409083138358058766818579401086801534589290803916898525298328049220018280643242308109911259238887050227396847310898536454661090317124158064326344450663479310514844214916503752713040282834087549217046782283690365855076892628422329589500518612111533375266136180137736837182375801933334794592444473815830427813065840449554425009097072608920011373625883861213135621083372078650063788614411035157325232056722472425815211358504837754994424066180496795535529226479491459573370219286467484218742595974982447626306471826968365060254039628317795441214763541030673889641463756019379828826379475160487841773006743974468353976864160582156213536987027286403907527702568042558833838498024034676526344389782736952477782917120220710827237675757519633360087427632935821558090620086432160374102455649457287262349619253635691326173621037706578337010671345173011916267879399045229556387006760725827362774295451191485553976115838673605897725072508279634053364309627931752870297687225596553920102139754315158987381412628253867557978619399240594245134996642946324232658718469401888669389487765654371876783777619000476896768388739467423599125011385524394076281743543743465442895653636510505669550756289912320609353208279277309882558323665483599112124564160462793245079974863158883909433212399598001479717731202712832341550440498962849921455508258499419661853485031036751588998817863538285661641858529375396181534526221622527688001919880791592190624796052169507892634724000906093029299567354191584129612389129871815789013343426763349044955180199168345351028022913498398072486656068505653133327590089094181910271258227698606291963575939367242731109378664171772197005950418775185828132011525552193461738906404932536236705696968227811098453431195620622245972259983538131723059576757266597692955293162411884227941319732900190021831946494383445585351877796958112376225093543237626417094099590514434912924101630437870829946624237014463023867577050232929101570849376132829791962386281780094742321095013045458161837847180833732997343223168686619466995513295948642304872243055942299446796090782157971011300169862515246330462066256949330237566034089988476963447105038035497122040878538973026587000912745560205000936678266959311534810935005591489171856164309354783838138240420476141100637108827393664684512427358865814594352914353693276691724960726352006460627999849288651522232250278644996470798594109253066069502244358612320282373256116574496862327866544365862940568220653377014618780739824185589663701634091177419444098787712384812729113324233832780503981634466143997119730324049243998999917648483973710737203076205932607522034996586003360755671426177787157880114440914164954159339838552452841559059408905600840343021445563079244533150613982819169109943089664171782184739848311838208582292722925417855099029035652003571363062902610210490563905918599547156248201043281059700621653288140547060219077009667015234115676568852124446076223693449493074143432142506204518682697024648084318092677266374080506181557359759292729709337886746442511962846243720088407224875642939346789867965982719270747948934707009173629073874284666085103194204306247201020059359544050574217426402255349470573063903567865055490968475126047068041981422151696509065181217676108362102676530797134139718595096953497550901344692196702315228746090042887607247006392635571027207502573326261953115191750813712014343339190986210675619682168410128568142470536009725293484199258998192987423645844540864198538492915266682436790080165991231431839982718622354324967908972520191068144914697381429081117386736937692849383812886188750505401486518737956787968113301263701859066638246642897462144331380957090549098825400810085584452732665536422909315001164847577601170632390942462080544154353024668010847533199991476665580367884389267868313537586766989809503942957386859066334737502708145743714419494254775468398640099753322275260890509448480076614391782725193147066172682829699809542859375885194567379651634564733467597906932664986516730837850350333646485137037987185911634143356688845842342174965020964724362207081218750421159381509878657785894072264298858851436218704875708761039869709838059535567337370529227373892869520482211887217482490138580021350682505927771314018380434574748649555924362858243891067208073648907586586776246934124397182183699014083026242086025710992014873712752336232890614376960892481144537280550622795684869185067394540171457467609241456149973469434560577313843593645285488711800845084637531015996412608937424503833054912866826614495139330115047901779370805039821160541735839808051123893999914855186852698839871950230810790544265393675429272565245674192879268229249947702817876672413725883909563808639408221363127818290182893593805940634050686762943170053189321669941589419955585129899624713744856661994156073268932132023227853692846398139070590941747893611490150343345040997160630092095269045713189583208768394872304636183091295909774713018320667252117037472996961528683314496125722476648282121667928260013606981501840398933739505689706517626895083049042336443682016022057552139776399901616778567780794933909503741257928638314196470968408476509430889082883652440110392589815457395445680269340670749337435508649509755981592634752652799965208900199502468215965814694598784422330096858137574690860277597435512203618104311966455258736102297950356300528239932439223872216723027636575778054014978532234924162871331492080012446620721970251165229573776831283849573031302892666626779112280444650219968865247976128812333229259704548270011744933183176320491599714132830540117907630243544480200183366722768523737849570075275776755796322286815940664089041135876590579109545550385014322447465896692614517825790241958287176714238639571318451071247829435153920317519793661440814974270620277567987210446103225416403915448077550081158090790394350913138380363530988051469153759426398681480451480501258867466914989598504911399622658155441914296062276352351475669756158818278780387083237459950085171000114951248817415174008004643723531337000287700990135290307575377953796458944435108537901457808501721884149471462887435554180846891441596356098413915366735436489957694513975364842677315526561520135468334740361374337889460162250354349432984601860196909784104577731222808611532984715842542653662678865580644475787416574734462183219764819853915366936758800268478021592465542096240312542212891861328126610109581399433958120168262754048091475821528110391946595398854227388055273355339160339549133524860747827026714412472428340005360564183147633538979452143301965357020076918205162609570991260985035093650008766148915125400963559241746982389444545960359397294871260312892346819242953952253715216961809527970580141839555771736740292612192659656237623501000301349854041874270100470176674505650675426591711862539618181032658666402506404347543594133604123166979495962631358398449889468886142378467852062106564030588073359052798256765195481623527750440395388522245772039081680379332497901518039240418372372236079530685755905803140772056716271805874881454666708559432191162692521935861962586533734459180743411070187036586419842885548852452807079028283700196737298377062761372025829212934246408323890570529363876367999039304472162991019750187299472232930397226374031854921393466148727080160586051722793234723997876642220331570598877901364344683605651292250249658875115164790039922807653551043915647432509174434382007573403804948445173432073056913049243931930166961611943147502583046405630845735774720552892664114306764269460427368440703466815453771184053442368543694227822462006054680186882186862826504550359697936887326390279819898740435334203360824127749383721761630234019875480026306478669923021815131450823041365736183144051603587356384297653788606520433646661477306341892940909910770737650189928409145370072211417200681755058234498540958449393789383581737812164946255572956688657832297327240774578993617170627560184934496460097265125749723770208045202227642230616276865101874351042704398138101278395691902597311427378354762410075676448577863981655733696600336943953365673513064920003069549721481402810543374818348885843649903025644173181454466983585683267442845658946627155710227031898332796577068005683552283433185974177549424269177937916990591892018619190045708690998461537523896954741297086032480814225813519680937916011518410396849944263545160230103288008954251384282423795932810995263954127362778046646892073291947944958912254950995577469125427613848505701983071348946232801435085143204667847080919882947644526839433047390801949290493343167041391367097245498075522350061708711039828185356730071491572313066750457709038503878147298817693390408431672220296742986297180665783131459377488745503401723162086820298960943814438334628880703373395381417230168332982115083762351354756538663449577053569925717965960129119164679778514602676310116576616258365588013005109195834691574890466151730889630003755832951482651540851455662584898403731239400067779189163110974364815016439920358959092643317819113830827403938303439501477980707337618939889861552999625368613021548237283442061579634695271099468992180114814661169354042845334907061804800278345460360698719980482353945107823665642924891763184796498175795943514893894731877787233738571555151097978945586442288763360904916536334285593474692871580038124281667502478983132329807247672331093958037990394018071338973155331465475866860498938457489374424009416204212220391466306140099690507856631971930739025415261649369045507547614887963646338955411584461064484815361174373401432402524517740430148555867493003788844356827398572185172981301463828159286763065344712950226229501405011779368020135732823911679247459958501096806530956185847583188389510687145777916134951335205453522608645087956042507838741719176917716076975204130956973374672537842635328906280862665264747340839772326337002029833522420626579005948543018298192989524304621772606947275215852532604594652310799560703414587197252861863795655032497224534297939563324024874577618799341793927132478433537557600378342342486275964732694020242526819915787937639767197054133331720540438786139314019676468819596581577623234591926492214992330378000047381735133647356346060731087942886170948806439963119350329514033818259428786313320468127207712398029058988805013913617907683933759742589788258188401045439577750431235479305305835819803723257846174860994437344535496865913778510326745164170178179709188660242671315373463850585188848557483750125755027552644721086568663964368504770720522786847652491916567502697960373508974967466762767704371753110518072628183392969047038634740711205657463226132249156136456601577207365427538705659272167202288995414478414943384023172311738914075956404847969824206086481997389788247878101884643000534088662812724871343489790142468343702082392094566319777078378555120413516294324832591514404784137785677487224099534582547940284411875786720606854241813456165143710743274323718371701746136443177616040146337224767119958932189129527887219724356634558641784610248788570041933832520204783802752579235444160380070315532685727402786842206149840906755291671993394028391041964159861785808630119251346066849351456125515731587090349879656642413017721151117851315488796443923006972936954732389748954156675824236212843612664182566215600448323924635053266195609438899352237549636493374931564078013724949923084166776922928725586505421092623696502448591773892546550742755536642229540874786418363133140359331185484496219376945344292081979076400882721599248250274749263738132921202102310492242940135100538396996492220450577871648099244445484046696875697119690380293094248109370277311790981161175555832323262891553092399224075147077487361038322758642277183772642362863028211740740354870617166733198218774843683726098119415209180987135885241947497461775768754448049842214563298564718960070331409187322799959285295212845837187915637357977213180916960928071433089060638527042450497193411525185595388837778641831367294137530573972520547714940777000239906945121787607573522309686968097499785666282369143792973945078270212108888074257001351042015359022887562772105561813444355440504650815014862697044793556152000102470383454884173356733544412566459464653788417239549500726199580381596164942922523584631294418806043266188464552974825260482013649793724241697267599160716558990959128454437092013978825000898644223038549337602815134632628158805825681042628237864229501789562426194944606705094318210722658280226182338884142381262023437533508916484771770810919030288690459212968561742766659173266436540872318648704399331431440713418036701833310017005706511919723916020228221701142332593212605956446724414008501310123815823452008365557960950987729931579054698811995350180905570697321645574061327848332643561215800200400816518210018636488721573609929055499339317715201110137683809853060730976043149453689907473251614121080935976827190490219455438451220587254722417569476442917265820970121353046379209599404154148574828136462783655740303355021442083127483486579837486170585260148532854608324742942362290900336255394892505915332586453955674872701974759807874222748240353199305665470917076306733387992443566136255896284359892395042150973298787758259112976351466995958396305678116965903939503224501022106560800033742892412978835855683631010722975067214791530687386882984081105936846018463779287155366108755832160052728112545952879159819013393552976751009905871263846183221426157056214337811279602294188928040383308220706593402379410542837892460994909107932364387613872408550364154204224159666475910680872287879555678188456022801894512601836432244329297686437893597371837651959412065966973345728821899837185955586235366995264994321407138494563041504693185232801055544384838012567296645163484012130847256475791014327845182532912156688898922073987655092021219316283155752576580701213129302926039703439985337056408176246152134323008002780479870776580563516901386624939155322877683000564832263693967344897568560113421205029292294409588890486845429303234289430488635963063857140393503584037209559082622930237500997489615997879540764861077919169862683185012012299010902106604092421729153246437758500663525817578307814154532360772172819630719762217876172526030990424145594600215829741982513217654682175378271096109070833121315337423948912042221947294863741935113170803214065406999571185863305464048240307432295797839956097665078731599673778927490333920240984787802699643885530296723965275327355420372846017158948156994833744649854855754608728098175919718385094810452175665094539349674922435883531915976843070167337766439127989664848159017635025928539278721640715828544512190843022416639618046706597340918492741723008504473195943742561438679129976065660307102740246301754183442041790213905891124040046543660129069215918300496621894422212684191857564665374314258445187703579237662621625208315895929972897395561184477757415440414696732706063228742803621395037411606308060060635160698464880025493354795940511721772279795664536166921519789628972141167301585630479704157402340321323322688380735304365424987820508582085202851034263651841892784449878652001060646117525087321897902549105379987278586431945198886886488119000795898757328815978958436234468648483831502237888289572412502297811620913872059222749144867814206349754659199103357267487973926681120898670287507619801254053299720205619208461168871920066705578536791322847960277458957921223936170709398526858404039608753431828152136746893785235847070474234483062828181676796853343426993541315504488044745958002490220253858124518251114330209899573633763888412245498439448235280285776979599317524344541233143176694150020381704950030752746996998759293376534205171240706394820015639366859498166737105827338494646853948840909435967729235271846057423658848423984355346928274479174818057186675798013864589700289537731953703684191036864940556837780426496647232638568369389569540398848033907178707381093392178744504671004741399593596368122290594383220506371576047093026547338230827409131399975201067522577946940132752516285157850603389490570672994014794176717084768639233803018824181614083198918355253948340256179045489456482415864148513635421166710845334653919887500288523005924216076930792484343012223572709204529731850842241465454989355235827845601798167045158197120529801390495298448890567645018495134936092256150002110539921796489663882571254962280053717874642577810354168037627016722234411904589287623708740660713003258364800969170076276415041575954037855339774737660171518258778798725166372754393484303172112788906634621306134229336937876038514764223065004805237793485605950991594416065866773343618067492952183845060536470632652007571724204592116882654269910380857931238261948770237353494940410634515806585416864170379898710163415577834167385536341013807303033845365198451266571243423880615540322411989985638096279028754424912192836866756175388692303924863270893897259536645726604594465427021567364173686674640359327685679530098847631300818340702762426886500149167711474965366521217117933158030316222642536911710037928505812063700732678558208230668179295609134599625108499364125469453151234970703674504308197672336367896929803935638280259682226927051864028748068067886962876988224507690344179756109636085125043654848061204323232353437349458953186017102707355050249212740872484037093898155863888579981477877227253002937346817733708858627399462067315858432207569714753559026683489761423757533113274328493295793269640365960233082197745208073541466956523807271145370446871847744630406551281884357957851678221742458002083269039932992923888840115383427973996723529882105544790107050245280906119045582352385032104022568414702432493775357686443134963191732238978907903666721001079392769007896070919112065226641414612859156361193073229665132446772622940813979247575993348910290203874520480771339430436889082513640046729285528263141629804966925653290826412857622553213435634228549326203853334761059891126789609376360345416944073939832156882072910731363259831482022269382550900247481407827026306566638609399659869266309134849824412330771772384624555361205390308551698091763263564264159232979316231360664024746064313218276653663079843064890178193204084732589127083533916214458896748161782396208954450507428786934785837811364783793413404315390491451943818715340422552470451091759991209272155591277485356094080074916140829887080892376419298189877546481721652513965372595637618217897132974787923934313047502556767648557357122515143202873801857370862508741903934631983257188679412355741210445523761378550759524905203716132216951364226391374696206152763600192798039355788472967298449285413222772327997524918239342910878825291168545439209929166551112911242177446758245538422225902606134364188657189088780968263078040750132213014882867334699374422671915826406791270811521030648893931610877473105111774932925621383178082919521418882328083049550992396678699549807019777617242641431968496663276441447834772325894232619435353320159642087853099526761131711193706667573478411138859344179457117769917603955593875311347417320960352140089840906781928048647639917147685359857710728921780581867994100793480690533784176070364531316302186582870461179460778025682995271065848626978388817714185021482109728672209896602950253611762951094142908587857789662684028044927262343016243761327051666776780384659517781776347912675871733970891668594293777276982940118890255681674845261286099250896916841973258853652734347114500853068795569475626129327271952848859695520530181706612171970739250849069560438138493336833663450551299039919934157003123187836468294170715481216286006532758713194158412009665636769096420241175219311355256019236034657012269130104197887908743316855103329469486153366705542184868610460085935821865721864640245246418395658247476673115129237418852965376377455414786247330087504260507502655749822706515371656646327092913769285907015163619829870372427100040080686488886659379681575365493868298710382595571048997067406439696175495602556929721627573650826657984526598202312527759793378763151085054921284620665566779761976453464965869805265576261139641829227835632140105269566298298368152319174803494431489647436459094920204502843832195260644314058797740692216356719533739477026141194578065367866894459568138012246230973892349853671538336704964185525481723451788498207541298710359550326257927606576934564818092244630125110536791988134860027971420282746700686474105679278451136420843298612227858867643321985959781121929253954768012254107506996862619941981892898933213626874511630916579209074498117514414706674389396478469617098311250026840739633771599498532259535523481104190862234058699183715414826680409073393669067353221526553272719058498809283788941817714317905586538077693933166836433398598745389542885459633784813443718757293427088369126003150653400364423264090888800501020483252415103048910665281801463760463442315487183405026638469678603412824449589978620359752733569313758266776165378241188066044871360364120106103548526888667531030327054965009060386146392855826087891457565200914131469423166548869213028984749411232068046673579226416843637268393881184105659277762338035755266146635738077405214325940407201726197681095026590116988740276732386211939723023901141834800103137675069279558520033505902701320485623844660463141127222725589972487607611414830892695853399394451494041896610801623606911277845324855990262837179561308730286294955697556609195798174788590313256585180722379190190970165927427826291367275554910685764243886461813667028074966352067370190613812280443990560397554787312514805263236832187854302866982634171827441018235240716870586794231522205727078887076548028526485983037321582060890791473737368871448809187924667559668729020218198408590455627281440957371120925510817298006524590777743696407456422921811268034803290231233505557400307861463632591874774667693874329638402880492041996429771348109802125742068331571519455615013118090335357519537240173845330770784000935050846072322249225429831592792103046001481536111746102112762082168375419329808629067784516378863737413158671938711703055334028660810547394648520472842439232680431680561922857842812631743539496851439791302729890428870306265230879898745387746507347368849502146680491008948454668451003583965411899476803817010102003633158117976864155889489288996396460354045736159967186339575996815511320756670171437392144710576835213916483695187386441905009003427823222702947766509900695920831142083020221113842747818887034558647981465750774338073128784383622016821964824256747034559069312556847833294343244848308076089660799501624540115774530461010703326220064500142277476784378808811742727004563111344026430706345781835002593882168648894115556671929676939464186047910852910707732136307840688551709607875634077339600715694858807794985963832541903256837389224310786532103160750026580816214550588791898328462252274931144925232156766787499069565050184539671910108340283674843735150860319350420996005679756501990123503614623132070098905095813918806064349806030392612387110452087337597668276369468937835606898798318666166363997507336441339851658866957674996501534664277435444144563578728238906396158779622185854927617585387254700056811549103337254422952325093534636123081200345353728771315370915868488062635230089565348967350139870229294930556262067237162377820610548925903277083961025832389379806923310299550563388704650755502522817186432633363167513729390984110182272261783526421498336043718881936028398327397991752503161129213754271384064326784240263083008956746162115457232946483378219023120799000053062915088852358153547556891153983375840418799111569722948155784743591215796744571774850062233418957023184112490310882949315750768470079755985565414892023757348889535143359899195044842381169523271497124470873836737111812178301613116626038299160176906339887516551672334117898805042909808437007126601501141814886082279789039367868399262911330352997301698195459292651037688005798604386331392689467000610979497061155630347517185638014599267065054020687334412047899945594232057275980056361791855457618208243176514876102441770598859456995967436970920858314334939844287557575529435323265857955961663841347937371157538011868008502242470905274029501639892275555157912511271968722394701050185156440108663766135954738418086286168926261329763910635972236309206643862607169299541792920358945316329312926267426878422798331303522566668014377583559355908359417067397520275389301488435254898557129755666215884181667824493211042522331150453321245180843522833556558527701274298497313947700040914206897795374954558004539816909579237985529339731194987599850674043925960392444499464731942630879556131726170015989084868006582953985945932501664936268903503843390386743238553730688918627373792795547820818736398019123505135985180721451449538202745545599731975138716967003874778214162420294037502787954730492580430219633952522162413267214337238112588016210848237157758867283250989779415027530670175194760158788590035977530556506555356514588163011846627984092995219372776301493836835991278499380082283731409842164725959928555969273797162007509426692002899902205303872241282018781642312303557139320100418551776475027815730081204360921494070999827751900614436501326371027547477243535520637976434301539189012274868998003674259442572187792182759101461497066163878839821119537906855884989761350793519864762043554276416590785263318296273342243937015823836675949466932434798792478765615980682459297629876742326831711294578574967417353058446448387033388918481250723265987864896217211066987309996109647142849184333968444694901242983894552897449587501659969384911584414356363093992165560231186601341326207042482587473896806809939766929328328874791833744306770322956204474048022922151421709049439609496299289777737654997336529882095289986494624000381973994288792230372911194347436220165165387269169512017462106449901600476640189715500897699601104627898662818204518002228059239151405887839944768935726657520458017032144859819289712772605387926176016806880411000999745175486844508080244109770281134472844333093111276411280598940503639395877855264992595883964153462930585529676605668479528405842444135797580033093470795915766336045741217713470225910282000029426067022811649548889016963676559104042414946453666640148313465823432960896783096804236141375078537257691426175107368366104161540156894795562236120039560111668580304216071898804777710645633614302320279554944704888856818145997975901980224497920202363669398757341442293079674582393209709177400166179220922075298396354449810392064365595937112328779584650601227383303334135833703799464900251743042206998169831583948814570972521117901883496038491593482890443428314502455306472582932611327203061326202364521836191130987085117596661717516034650528275141016602755042913436286713550233150133616640013703093143563101801997614748080684309688208056964062402842836099448372358588872235531279089786876570637443450149073527645876012842996739840433599429654432673983061056685624325515330112691907334999258243651598154441425575688447037009381666724129740658321749155187999825776555747091517134944085858914253677798196383323747294566780382599280613282131489759095167924323001867092456208110594653646298651053973322461009068178377192127521405190512315982410100347580227218119173766173499392602927419863828567989599377151483138183611002573894725998437653468462687988176402583541823701334131186656753252413527737032017461121105304285818808478271749026283761001623899411998213830437577773202855061764513789371114032100682853819735883069157224700472329152987527138618088868403512239913279922953370804710854554299827495792983790267208468504791188018626712461616133713648319484336251911419752631430403052590275444612708974122313137217189427919146694780991797532207701518364601731069035580999145463781856751847810667215180252816321734351430506215926937241434442210362508294213315226708425392251973580451028875098225183254640928799403346684521368441217386251528502291047738007226611621582498350680100896535684547074700519361676977668036463711078595606396153706409332570134826500787996811149220795010367318237245193388081201759363601022727877745312994670698434647613228606991563691285137271022213597870247290861328345449413984044178420278047157486048121811805674406469098428546079073205679126277039998490804169851016591551981855866415041511432188492025172421706876635793345671103007579518851555830413967116083261585058789233647307810428110245595074019716578057080253107527652929751279874686506064201957022681322443055302690211342635544049095981764448182989675888196772222846883183214098617866551531278596703793262301587533892118434287180464447186392416482499666561271709633148001368019132951032835760446918170092781132444726873918076374534975544121187241027453659806050401197152719326541912802052595114729147558318846645654639254059250466443551345495959121573540369071683270281260909186731919342141666953473488604371568891554000633408583311124781109344903053811684730008047576665589985565843625111727123614344031556449394642210942135237831967933611672909785926277423530033841109464865161411737776070373552317648869592715522905373631093567866722344815098921558755483206786962366828740230580278486147021145287536442000995209735863785149737877874430624516902301093860948769233234498708502412332633526952284819760534939476592213971931551510314794377095752095133688213232244259941545947677361586914104875516850190640324648641725089118020541576123607676118153451321131054669485563527042068101818657428657304631028692933155222084738070261083343841068177224087590181530238781211425210572483890346887606590997197191848307677745528889345247955795631898459226905768155588289435793093537086972299096426793525236593500004025316545522135270355881466714935762149634824950296345987025802859030640490388893658958630333412209299876533963210552999885175076667622904665119971995236089508399602200909028400430108486012587115316870670470594554462783524762229568794866008662955345998878644878145559560415419530643471077817952133883361717188015023450008676523338813053699421733417905867437659178926065909979751570772411399780213934879013849331397859704363812692429415890101983277574456937009906580962996360017799430138657714655900777764095268948515736008317327305703941063232717155487705316902962859703830510919629771493824555739905535237302806642523409016319212541123320184257196330152208831274348925561977321005167942922160094994045184757561105153046854962403756180554734082120531968001720266273172945265536308022299225060086219291986760156872291596734773056731488076057122230863399392913126854442896690059182839419926565844746909524169089271923315954670314910009316190357799534249906482803230961247126531424651512912606309893294100952168252131546978273636846129300574624491751860243452037659522454174823859325234898371834403696827238626067869452752922707130595792760509377570735090874673629721383032108459006200773249734107539742553428494932084642505019330394075902625240132857948039871432367246328230093400625847624951779410141398543756826139093081016416347910682877834279929259322466946862664805130140964447705940160200115472386823670383904427536735461543207959302278606300671838502362002310566330886973695193693826275668114917370121927685904179431188402003544896226629925123807554242283674945222608871706779534062055746492672615266292914567835894695908768085209764679892729169363112232589854622905002943962416088075577157504598108241791736004904514579738821447863489743679607332021563911653934336372337789267225447825444862519833778435511471189277668505769712991110543782775071061252089839388156213423321645655346641124525485340197405170201548599105346044979091429150640881505180371153439677035013328580404110830790380552492865577592410134251053122039949520455052097355621967571440397526274925753654632365863169689578028096474104364359897512765033947774304003970446648646821242967095233563848831037925211539027883925593649866739483213202075473988767303837550755762425732700081024938763402977219354885547593655286867044500160113477117826060489952998416683864993066668800307138067232051307323286529204425013819165843370742485564816349867124045310780941358820767912921266964720530350691067306616450301086402496779221549529868836891451611251060754623572845066547571294298965375270087449229084588955925759659995577525324862990419375120206724459853027705891237616551600682420473554015473141915678608182170658612070026991605473928256613428526417394836398541327316499506742529671716314889780775765906670113553595953065474406803139470911789972238684698165331843737556413349308390995429952760678074301168732211203080627879749567700376350596353683104613394902126301933603220878452197269521602370060327572333900603659225459017830138116735578534962438512705990991806985620517162989711298823269155817246692842192554999530551939040307863274211438628490421038789629773793547907427734104488253476676432707233104873102081572972825588883095891205770380377613952864514650690086647676202395352625564645834279165018014682818858996611115547294641131182839876047819257350487700256939461051777494679327864541208540940543607040643986886379523846148394070219612877554383208245819098724385223213951574765400369047590652904455146117335496622836077417996101634628165032489667725863474680301459499821331846681410780111181885967642370252954568213793810448538711624944453021135747062577651613273664440455535330395506124838555464469085691466563117450418670412145025387535687883982324302080931003613990772249026192793875087479792160950367413597671993158217680990946131948116887643603382129574378029195196739384884212620938988397891363383365143742730991986613973177303353454905229947474863658665017899991019056956968748165629759712530391842834419345596721830050786672159435723588280509427532129762525505711271377809433063194649112215015133693104675510479022797829184432902139585611731575336608047852795533607008157379641626965353675802443120003588882639992036274981150075473588819063207239597364425951956152845946633763950325557186414539678903237050094688364665752742160106348410850265779013424243667286396371990688793990815350761758250666507073309420177141273156530870816439076167058731379573776254155952309983792397951542624993440007201790410603192176958257752120949769513344669073335188661192375011026389416580167793041982764431363995472163350257643881545560020876690855822917703017953990884800325202050058710431202629446858466778967971743273967619636597432949909714645639447968721120370698017106849574766546253992820466561309160258464837968580721483831800171396951321128838406233932146906598837081506305585527797672502316582235494817589992263028660898221398294613820278707946382527953935254665487345590915366473238379759362273241245048684634928653921099005917177292172927090420906709773298548598594438321686137056669324684029009752397635887165240693911846781579496567458306669432854630130643250752775090410908979725071007720728201309850038590324021287194669685394373067632882149576566524025676974644809620730677239115940062198936794833629555171514311495114989714933770185503620711239623110288429597042943340888177094929724968180956173927543680886895246469832448623821846389181408318433059046099518395011909657321713687206476144318526763195662642795017767959473751933297115506305170806670792742272556264493226113816488752681706780510265839269879361366379820212660607716297175179012453036538608947168628603022303704149233300552124992613758271002989773452943681711496217619356001266018103772903924272173311178041248748117889846867278593923363400030100324173092574402452784316718722810304361476841445677843882028798735301142373255763364225913729567930322338021462886070693702523797645294274837996140933159061966611262093990500350241958755436525449164817731796503262411442506983263954452429852474823885207678955808337676633708565529675664709294359770223631640380609094186620672236474748571505212271248115271988422052893976163288684979264464822622653152851161393440385488428982155536177035358684897962525937676359175336108259091957920885795714645720471669740742541233783739040075072678461470700544846785926516051066305123081606914047877489646194633071191231524466921142578050620210817157992172634438038880322960674574633420562794395163837882280936726816306337212294631498980187600433165031593786451243546475041519268880159040760409625257614496519803034534697574600048455234907849126297358251058107041988744288515257645718552640435495475114938305094536570958886115737401667756478257598479979520401725450695507376838985269784027392992692849826353948268411432880288326859637194726864354182350034812709903494954450251975344554048123725866749702104342836370520274511401074115366084241701823298966468075350305219893176909246556799377693315704386516709033417815750888168403764694012578596537602144855207189160975749924508583080188772691499564455088086004612730621566838100979418444415701023535724687118280490935080588853823849303318009204023079139662209250579338211653257548802130633104493152435884611458157861674970503514456103680733152221485074435057539120882364247454751017687268869535372054646481082528789565613440905100504955451639610491528669750148632076811729298159767560320594929094582254655598686304829246185129379240886053218628976607176920219377547637888581108094379446844394554142945975077147673530615469286575199405359352322573443496174533499170484604661995171038315772219006249731672969158391407401093071424118724854974754325728386444842459794618460581472216834913416866701341932912007522467347879712169761337642134991256840539489412050236227955935328515285088615848803491332237295218207184651117364560181687927808836016511275511339423022654380478491584775307901329327646468753207853010602948109103399103217324385607053634129789829691660531820099397404794157488889662641295891630435845781483847021505437020522899228249832781765303866537180561498229272115893487431759168219822325022854951437935124095825181753635201929936089205570530590765247651289971198057603101164804497577642810581403876764687818286176999749737621194882294792359577114722143821033540567380778266553734597402205492409310970951588258107314124569576696815442390668330350341572743899930314578315442802628797560102543452807647973405888776487080596951331711070357756757206366246212295172542011680017234117348620531152071889452313230001026432792784129748520255639371684754816810738556441428847847210561919898270334576469240944648382673240013102847424206922566752409038915640076777229406484664685365343350123138347563520718603895955625139897245892119876659081773203995093891758423759170824730587191021233271985675379681764247094286766938005004895106422733154688937884507771925465894057570159698345216778593754466698916437758180607729937766774951054534109947774219468100484521262802554923676365568135821864163121838027136756270669111788103045980668666448334619435380894182352002803672677860564998674386918150986608607463365932497864649503067518397930614801685740306195668442891713649756340861722047996892089548478674623754877469225516720634349223451387508855722622382332839549855874851919768250254843150030311616652360946940126801310442002085960461333973142637205521574597451778398882180976561487349177614936429745473313424400641645764983860179230835693469214642791427650818028341089800662883579585261154292611293144332882935925089940662009017731700959369831890028456268562568935501412175263717925892635187128435931881376103154360814146161907972342715496198476424850699735719455873818294115915343578188201599767070700520336521054371215817042038817438630606596405338491184199206735825437777167993885974194357503816206821788208369099192787521400728781332036543742782926749238573810449526257397957999603781924417232041751324838827926827481712704887565191743746251255057939613404781434114056128360920942188356211145542434536117301889937588147227493929310206007846851539479398450841103738622439420111544834295353256832822918162323468263202052869040440495654052060934036389703815000407242318739076038425078202298854977498190436777011055482088604150726179564759057122715320078848804874391934394325602467315834991675472346243355455918019336186402579264999284712648554909998928684898518278831343090753152581256838545995410438854124642917563417865488222322397138454354484235406154083983238681799307361438202045490124505907376574154144932603276656252915131349119233485386183127075894090573352679509324082072808933620309671213174491585735364997617889289725022867474203432571543102483606427433248397060206638914525202134044326711962046527333133625052706552287197826022352372022476408268732515172394711553595772687241976134564618680807405534974492206827309949128579805084707215543285475829688339684027849418746072523498749648623412973660925596611116040626633718200612506562727504648081368331326415544206482780886048399558879976767947988731839868318742710307003406445998811607124686601700034876266250496985685798820213011041524482761768533287384375835407193448702202419980735652298508500579226071617179055276483387854198306032932491008314654025423765874368002636599270318960917013216880862469723217657901256229642076699256315635615616054233527016495972068709276283634545473016242776436034316090189966156937219053076237764604453916437804105597478183514439155546135064080494529857876825659988558184358207372018882577986608119854096206905614132515297210769472904616744146618626033583546022856556415051159797573831036368157274548464919178127135115633925124611892990739877299527130408508807277298020671432014433949963748792423253148246712062072597156429211610966610666378171541783282402100534551183063444068354999593758060792434614096113555963643498240098711380863584518014641112234636208790642407177827783672696767483372406140677012484400921271665888784804620661444383052778923369809888120150979375770502176185878074713421973604489903165222478771170486044359793569045220219677921551655629692353044620460241590262716766239098755360498657870599314639837422628785796660275563362710072147319132978885692007156572837983764971641086861429307114451232713976046455514681116854941015250998941423959286428364888262252920317547647354827016321426239075535281087186474535124314884300308240722983614589208290929777837057227075163744335575312650679219008728728182922040747992217959055412910206521054240343315206726413079738719692882559635315324011091083752657775309124189051313767902591867965460594074737684695002088097946665668484067343116743698972808733356792812660800355084881017627101454779398200002695455152814951956338662288340507341314958769431598958775305242987934142875682005000962214578893708593526355210234182477412561096248983933207847734011735577369198649939191759989251071402346255903115034227340081162604319789169228923072673699879026437898667525582476871449208342055706890431855468573382345799847244937125887429516036607115967092078641867526715078453880917184673647390162990735691525451889127532368630557020680075057105543604913289751360631329292913292920708357988983248002682617824316053672665218182983246686763244530050168992433434753935657846869442558576303371924514744990435754496959991713068334444734557920749738077464396718137135164170410822950811589577218534431530885135669692179070306163920025534477226403847204641553311352273422012481978363020099617805572916928568796793270630221636097388652450424892892078844075409194180618081208131080945717710635125750594514729795473827334149604004644599429496047035254598576697684879641472651488404067212364887711190734683965840839855894914852813322678632267724393563567740778791571090074903198589612190357137552203684382216941871014647384066987613917684824222967739629892144775598288276341609015713730661417914747353949582038502542928425631886115090574254208571744969624911348715430834706934438403761035453082144077054861512256504702926702221718285356195478653783539782413639261913146318064884211067033057061526261892758389328188572351423623091969894734532335215869355422602627468053541545950537342101553917866507009524497632807501702592582339961168922729766946751492665913677152883045310162850190780656071725466510041816431329904313569646772243780336804247137355572580006122920951198919690707415632316858462336901986282603082456442565122811279652245180837997905534055041444713538982620399423003958223855287796790275699963614485054080831121586185018909726459285682387324822786499324432990657635285200218632612616751368345765311527102664626518735852024765517691714635975945850213737439709147954193623370919586289230294712982434830818981428585420691265195409537168100844194816164822871485140280860443759122812826134693001957111879705330214507974873814020843425499013879973715220741433434619571598859368399620345263470092907747645880802415862593231472290582237689663917858814232028051518866916991000459727006309672263562775214812216944074592420211952576569874575002949268080354792462914370095483343201715285159461163169043759237209740921571923672855452800512967083001413506137923362079165446182675679238958800680666801294959315806775058676945069911577814237538799998941443833845677318269068069580356762333025381070855182787300043486243765664657004210947135697136423882245183830822557009203104315417738357008887419618124283705579386126153415762379278078138018402582266679557807674839335499184943001540109806767798365206705713557947947183757383266789265430868610909601773574756405731682382201460180244694229783901910696455622072509195791893827137895668741237425056674530215317008318968704711179502663341625668420317544720224851886280059980423361087063708152529230153173873869626650722605256633321637644203145581784211355145757003726971892371390251566435363539204449191250448946131995686308879572419095966274898460717697450870607613117757260830898887677489372236073579016151728880872380807231116083004803255231633369621978859013602118742206706685458660605567105658598484554476289257207097370068909411281147687641264938253234308566934004396628174903387358993770980851700687437701394602854980773897599232014946047732976377795380170561881739317114138847582640057622153973422800372894051843708131318741212042110613932074419475090343718840674163317282885702121415068996757295247549487798726564925544701230893788260228274423728877781548245292386357691330341713254201410769368325095909888153939666678700470890747917451330015975970259979222415394143657828226838201549135600742038023163196008826001352952170539245962333573871002047902999185436160525541924290247519018435249217222181075136270193545936347010077888534691564519582963870866780751073221303612388924437366591642931929645371238753653391529336522864073456084037095742836593565343680595602455986831609592041688653449248808392520723387157033676641644298809090251300876303947346451391541781630254654228529754927235141703447386445536775126087489869886959540463797266894296437865104832963814405893219132920459614688024949501608134195505726977501859907271784853709654536725412350017608939714230980129013828875491176326230587701456462726901181565959660714820157337171472300042614966501835382587943763823440598902651073414135058513222759669952105095668961097535249938602373595589665789067254484925348981614086016771715678821206312055145667328038125200463198928351136546137236935223280979423416812930724725623583647548625662520361428420294708535319322190362626855117295157323239320345265229018779932940947718582431365723623978178042998128655780715934929252798785275746751689817376213737132861969153505584972186680303421739743343493755450762398395376108510442295292670963115191360356542307552816684771204421867739773776131302128340801327883284910303757545390985733199032141179589963341220650329577614175675963673763075485991871949430603248397882340163576435011523753477399264695546362719469462605489362558273698730445506612919696491923473413130635160218818560431707998618730896030672260275519365404429046307486450057533846064298651230578387636237385691756179431035772712992639241613795225109182465493785368111850407409008427147680006043088959247804247330466661744598133088124686118062290773995299698641153014163301853037927042666502044042989251736992813089731248711735621609694648684852109142884488518088659823451707407519077547882267989483269790047625754891949685098646211161064127738350805108043000290824587743761816470534524185621205451685054585650045731643223936632806027265924227222303379467727411849194071788207979751261991099064907157845705167435108044904589296287563549574276428193929165060761272257617897881265282993536474511937533874188963138310962993129540925254154025072790198623733897238583998493990211395806685892400373282774718995433189700010603246135887835915470505931010447151639855530636298194496536092652864489268283507040883755883020473555516691669111713665280112580224685266141902134572059324637865133650168901007609000806924582198927256152131572296443119627626173689058595208809382460270047854582850836771490307545390879783679522738241714273196871537877957525428479986490218113097304448455707127539642509758605389122735867143882466203600693804635085633627972971643765756000595299583021503138288936532155696921296642874675837213376495145350281990470763900984307644643804251013046917859389634866306243454115173221853661149017489274671144221707859387092593793886149837437746352420987023841213951120887934541693820501688565845819692054040768144516872883763907714623990570734343806030135084901733983746978764013018536441725618129137268296417842922796189524435267297155466728591707625028797376620426271931472849370271085356265302127537012158901944949805091289522202727558165327368898332958435753459495461670354470030987048025776980771297381385396745778046886249455537652483990498585793301419823289525996906853447404137537728891684364669924054320800909111144581168058890257958537335986489756226985784367731051820441404431001315935994181227498773723338240090105798059660661575984870265907463805538876480269099875005951562010286689298703728977028698923922458123835489543232908279097792024937159659959980509806329416266173559019336836097666410530388187158121980317969891108069324291998048767589317423506786205647758724760421040667497289944752117649082782790283257050341573224023771050826397598390670832331074845058563457559623205437241949299230418322221917357353448643192776420908268505200969059506405217840045831856140388201713635577162134257734206581781100354243532756630670183670882101987160524576401227004544300984390003411042830058883941460727442600707751589427248249257127296018341807643394034213801262780551731477557097158328140220829639121252176403161382526228277728355716362590137164953511960366961525994422661192761737335762398533186835849716256971912277803409569526765469828656311300280316895462580509415700532287149678110535809026291114141536960302747891574692190457976128584095779873742024537199753308673750469824751119953725998279577654191655279747946321180121805574482785596595545517186885221910685915492106376473996407189250283025974315474573112347766914690548656967472485575453420292936050202414878780274014416398193311408040001823761520822303882450567302168631804625321361363754938083282260384962178346281924095050974980565411701251025953728786166242391776107387398478544705356946661847345737218437684804432929323658043810568492835550481320578493487933647886994727231251894121708507742482014907404394720729383060317425136705492994924257811880469325663666792103290481812687471343161188740518526476841990425422892415349219040597422329382281646492038622421409261155766457295413126568622326456119738090872608218776081663195587493279386684546595345350667278936880437393077059013254849269188762084704976942396749938119135233889948280321131932643225130020664566978384404241749543864617424479309478281240570045237158535315098667851707791321101238468427963594876678328024842468751253224788666056520517508789594677071220492169734736597751901971541068710104019064555357563233569282957762186467867089628759828704135696862367270968291695097870429048023121232829071788122991478502025200523201763277210569454581593274775484816856748851267592999622253123293258310420606082305676394357420076188991949832430172710672446957402549946264379524883399467455462542089861554016209278639013309015059181991111020013073815981401820659959388958305591148882401468766519528304452241390154785560871387546286631581091695228185658796790566083003951547242338669972172479003389628389159360545812502833997663585177083642256059416555735470958702177889200852471585145913057325308116154033667397066595986798882443555888984233009978375050457529609636126422026493214525477902670335927180327553702132911275241002594609581236623481228463724039097833900929290190810206178728490850946849496855593375518330829470105634280524259278861783247590900724575678289253860307502898856962669335842973663283101362813265766617309214847961612061334338646325504196482840517385728061564843389149334162298328903987757015592025198866320178833326606238675026112670528995528541944650931871707646708713727508803070585365901271666349882101592947408606440213118110284391754758972022271283527737291831516778439553248227599130580335891211968917510677724329966481245394026768588662190742980454867354862345679473352347934494368535519472800577194882244758464305939166786696513978458783986549629683029107688434904817150442678451197783728579644177428875558250047078752548358854975444505083069677140131065110744214225691692385770122931371638145777445082317388082762989015930624242318846572029358696237488569989301458193360552008415996514875126618860389742634192683068875707663426264220353672233222963956359710622638652369619798026217982198378669921887441397604432667555195533138349667593974101757822304311618551323866922289749375344458949706308661517368496588697669955437938301386764273186581376630766436633595132811177706929564825654624152618111383009845798577810998595717200905891170935219349570909144167519656525423223660321074244373065945977104511070486097756423444327603162760450585272117510765844531668779133330548988445457668373268495685859248594557613106048596048757305961230161253922278040644656915224103954469876536229887308985763391524837743893767489530124906523555387689786542278695677518144558983125229562935709161355210204490303308081772754290345895893700002967913617956268872746546684174764857713668658301315502437482980204187129293338458428717296151334641625812632528966806627082688044042698312987263030049531961503805382586190206949044939977256795930414653874874727547458801425889469255972630833439570523365434744027454935463707125399524305463414837748839230979165507150602354653495177145539140585883878736580848673731185801129953003118682927877928002962826412591639262816281210607107366064014181259689253356687098638817532952598991713301183311294296101308292855032919466070759409941273062070382296861128470528352806320081466766158095433084128242144216154561901935460251355651814946075804394546629136460304279685232119521050837315352758465545223446006165656858366890668965661653886900058606829179286369685907671296851180619017661001449627651464647281089155537185838314815128531640846198619822252662226081122674070247709378946519050497038459855966113353005674908578932481175994294274960631706180867227968970958520930524275832663174454714273175315329480387494757873225278892197076916601478297910102066303026632390226078390294884018893939549234927458680525071575382937588890372720986700471176063496810574718600960427395495585409038763986023252662396350784731687447512257312916512418805572179714628851881331515597762162804683637753263943735293155593681998588150917371831937928074549973889216374889214507188753883200883679753124940346096846924789278993928818933303741976630890398081811444729288182911501829611755786936555217552796435150397990056921589921146551855348094279191690087466707049377455358361085185527984695999707961963651954754910317426495823555779014795039084271866626891188261339872654552635167084461186321169068259311566962791815940616482293933022731815657312606839333758933938473324729740557358088404929968201092226198029349394954896375746576789936379801778149777897905921023331902062381780157410933674745847916715711130897742509873684768316125011619658282279910279204418700044906717408426729343370803570007042409993979852096017009693728487320669102014365101638964989066404592701408257582591518056178669075861251341680789332001630699977811999554812513819004859167363971007313335790108465690454683106867678239676127521757773042612243920086075075027690767862874970560039934645933528869590670046085913240175369128198090039010611967491312721427775694860608207851729076507698756440732646537091913737033340643430427036819507306489670855914053643669247798722736823779000649621565729153906847138440846903685312360245304920237814310003666866043920314044727437698410666134887526896533406413754207613722773285041144290960544812574735285275312280517486232228083634760405703302433812299083843660309224399998990025138807209858606953411430534308836601089656811285813231030036084629029863465716192228241583580913610401276854887675774717442477852503944258219034372433775429351145164081297516181484981094770960969372613974405159658723209199152400616085161758134902257148872561024011018523081467120185040144002612831099034726766627361015285838855522557803151852116778568834161864024252356283708596433401818591168220629732688763522604402593733388767071389500609089163322248194867041156503221117378194624890729875998445379565115235248455617031478003558251874957451845990808298241197607371706402319257083614029882688868900679697781371229823317289354239802693365823920815311644982534548933478983957672501437354740475201877201466439621561403637582593291920291347609330448955512652778760508502312560753947935150559884337783706037294986439706821981155485658151231397482120776605423806610856960881775972743521474519152047640129017709900102234920800635385955711306870381529414882580843103818149574565546542817858448232425566223134648326485624292090850494925544565036945489769995900846259459508895208524493158262969964274832283719487828257017423037331035352730099760629964753096011248848461645383369292939465702058599822852952019009935827032860304172671302780453144678676284001168192571664417637884652018585966207664487663760721608963304711432214289029924316356918610428334715969329903740000643934411895232933750670569596744637366961039457874650684487901341638561907083498245833602618730266692988973569263500801514389452457167166500545441804058828583957761028709493266997658659739741954225957260367256985200201063216440750083108532201393499250407159391157928229085771218797006904270615730958339018734430469896802336264679631827125593495404745478779641400000929310540816621299384537240087367946422883359444604060005955437798600083064423639200313492068880422368803968236378957845952043193139831003969244211882197637171210747109790272595821531485373001917835865119287086491519880312505970084736370444234203039298436078495534802127446840918203476576148501911249008781722204433117928642774558267383685482858993719560108335558447562114175398277415304871848347991340296244968040269046824991056633561908747216311856775611896718081053380767813849279733335980327866250612588904747833523505937513104027622736249925890051300575840319147065206932789602176654595871118695091292587542889799792458192527433025238979084239281587648531902338398216158913743907303329347678045600543096164551390999785351959794676576629346829606605682147586005821261845715481663612001097882252990305155174712812756377191787575190314000135024249279487511087291376104383698041925112608657359834101124759497394524410652550230832337154715120726381018772855207187698222446102378434387423942704812429354384771447850859887395952758826937615640778304421777277139084297025573845315469282365807129638425956914946175047297839196922167774630871013033857541276029812524104368910600511787529032638691105540986902661557320845213863821583107428872127960109163286821141552097127730078514078417799022462909845989402133630380802147816072796218358151756268506277075334909994469919779287171233407389413013474433370505657610212798176527120274049720084028921126251025586802189537305345392651382132843683037595520473599586368279129528895279099221462976776950400310534357608175855470454900055156939820796649308233654487949812929543269733653614218603798915427577627689416215131115947034948542751675168857023997336577720097105040780362325361933500727645032210004748187704099711838554669243827185369298066989754123664576904430958920722527753358448701914464762083199394650232679804946973528428697804857526129725566656340971102065066589567374334685576236206843720215716417669772582243020625335636650107402892461162132371784022079256590857030976066144389525779232676951122827747126141891933449300407646680885268103374029742175165375044667823545819933761286229151428893446793991344471089117861561986315106357739073311528956039367130883145188307582733879574925792523244854350114704126003377776804301133948309332202344963884946929027288029064360310022818809890812749809045671688968636042228632636249437935090153459110700124085690530199441042796183734701504711695662184251481499464747351994347130999111652775832247323073694102944998662429923497056818991751850219501106595635168936806449025168783733208906428945111327231894258961191712752258823723280642421321917241470750700299334727973945449698123221168106633026148931131996814854124967519356894809209140963287380540339082268753447329218292967261997121513979886759075797914467200689696708562182633271931840994963505346526321041472976119749999741511797375396471205190594130972718473948459040741070552823876302316983205280129112912455802493438038197341130549350152116909138659018874940710233503867669800326067578561290188797562514632713204214374109281500818819747445344252432212006924970255527979544622150309321143866936249457035771013999963445944552734743631191278688966780325841719378869927515097244597191613155137773520449795722120074971741282934261412208414340649210141062709324562596240321284015368535250235756041850232334291015687478461140637827424235518416578372440254450183688807212650652511515257715447229697143419204000957391134411131920976329451596926510712856316187456760931885346757500443352406632416794862902116123725706849468151676312055525175924549151715723578483507445983863799365583197299252582001127052803990800636276363105656193538027152956064730902421675094131095135260271492671549841424526398381323612356862229930623223768182520252623442841923143153304001513645620105479281257217156837114807851097088226007039484404221934126579433000486251344142085899491625465731142040502466348767623548475893536149503437724224648174859743503690126751782730642413393562503879413452599342799422622813143805326018501773513655206112845563565374037817943562530594733086248818685378022175443848504048326845965896525057672522995384706043401923997438846252664101426658504464123507239241524602474757106858802747698325522683067917112077447567310430103502073415950655730933371338908809607542408698288709237460159194332979406990138742846071795322992597966886706766422657007663718850067678298245606603252498462108986863118064366740235905660466768364172132650819536821659451609362421849266528286982613572827517656279077832824350534867107028768043438476146523791049930260084417426848308151369883404840911906062649451137176296188026849496737179719182232011633668437894481883365736523316432243633913363955612608788049301718833199181534978285155994558118102331705806135978851944333001969062324426491047166488870950484684684142427570229289243859061512054800971577592875861290162897527217166515926254535648421105931848670933510359645886921564097865919570796724937962845499687950262421932137321606268201798737153056046670338111722693056542414289791791689137221275476069081573787547191612664763558140279881746651234284855484776349711948109483276185050547459735454615964366501549615460016636514479446016215735116663708388489213533009466722777062827235285294424604277501447305131910801325953844141263841452880414207557664118354354532767914991541357865066817027066639205573476726211410145967966225434923654561965217495763436894865848711634176248061892075188919112187564505180488597702430780360237734805432562999180280434578632969371906596041813499277034641973367235089659045299945083176321577098847409910682990843111623176967917709771600839650778456758958831041301056869042592657241223311474285616898656283638907323722739959600390662204308605361584765995397161906681761508227906534017982331790220363920951364032409423153209928651657708881973712817447469755654598071598283610465816043974332920923329952368325522476658889863892098078699975059601546558795847598583550237577454045317382112417058291832076766155914240122416191112758809346057892904651903229506842395211808748312145239800791203320966437713672369324110320553534232737364815295662923366741944617709103652393657931693339989109200591345480900671817836023596389409737072791926954830523057072147057667962725547267847895948953617766890671149959364941396589151313562929898958368156012154074787967169811720583612577658150521018020086985850562057038478308595276525507203808534433087648183602934912420784654463491469940178612880177282224948488286337822982992342566869041310038092715822284426928437471740847893890628241926504048088081616006615369670970503846327341614466552770259892850137325960397169188921782463921803635273674012264590998010170409240782335657009133068495434983144004116014651655058056354224435944861632053809156413023712689492727944506581666501433056718373639488347754462988340193288831914357595605008740738963005380430070657108370832149034936135730322499081371098341377366156379247113398017834573759612406045507877058759752405603497369094968769419018218605963249075271641208981503525950094685072491209229482907860658835654238352344903529123229192751632730710243249101155840953109561530876595439440276939527237220443619829918762557099975004813029465617764526760585667855843626429071255340204175011905423949694095452622820156953820216459252682686907770844255702036565893572306634728284744277399131252117908000967179571681471542804430689222158522890669223409156513454437642864995089607696364606305261005104381051456479761386867586775695551779111635833241433632222725135296230467074667959534503241043203235316352004744127409236607824872006918217169610634797450010045316223984138585825468126911725144383054686426656645709981973317045170494111109583058088483871769192155001199074347002332483353947665075756557594210092957092626703396058023747508384343610070266706575911743876004208870999609755563401096957817487782136931335385170864749849174879570135427469867228045003934239544067449563333276684152539617347750971730794759293911685468239031027090412829661714465605364996261465811011573347571530309962847275251799359343637145208475997028984061567713367237714400853517538706134036866262799793743919697435072187254713645242484440853719232431149973411150412811104749115496153942554718095357240826956690407459282094643753697084837866084591375456647936906007390392161027786223738971002493939170980292567159661363543552305618174216944616227061008525750907310192132837909179909600589068550104717100167917018244862866991219832681946447274176958940720328320749454261577721865932236550054387158862449352882416594675278764663241529682575784863639971936495958382973370978396438385308456366504656518104942823286353851535962060331412889474261001565104335793104513269992920014380837086353742182394343080223673264810867000054695320719600093765543686658685179525485633431941963945578625466838287620854982849791534600063445472130514277660693199915444316320281582728130656482238553322140294719895782037729059260143895558347061586312342433046578696746290323444767531617217808911273337134767262547244864780932701158844441072591946868641747066955862620736659987971579253060092301012108531132597006374438192954113970013055077312558417628649666514482588456065475277965714034198155711058072950834756374238662176648544005646624374943763359970188542053244488708244587293796186314211852096993727612093054928742177759594216337887837917058984500613538133872628772876726010761949330773748258067018457419743449208376983675123983815130269937851067718764545172636553912242545660608024739052700005685119340393575145460497163105933791397460148892395771061945054427456102302839401949118072725176815296206657893780530393105163182617253282268081688408035252308042693920739853616438537542976995416474819518340541439171343128292306082151508430704895216510393387242220308409633483830566001132452638965856999014226181537446999488939645466277491452890557821655189621095963757099795647720197209741431983827408828868661797844171658606911308945516099025683299578300736709105886419294650989163215493651934558003752879894983041904133197484977731458154491948418121643176222638879610165244426547674595612808524684929197828362090901096703533449363459626036975758209380529196410856809417915715626046035743928716437751340310487721483987869562144130668794178055683298012248186449186955843733346861315342718548888225519533986693884672424936845511909034608511638442776586107390268072878245000361717000038424172815722134004698810946787821032555489849767681483715593102667263332894954362295075045345139556306828345560298459276954730299422358421111061889305183573166383818168712837969791989057923827018616774322721024043933153698428339112009028881581988035052270302713271816592937555812297285918259989600655366367708156439460445760553304950251276434319636232954939694710126510589796520682150631230244345729436776950988598459020647910615705882089092988718644128143801865377069194621712506179567553846823392642011992831041899513574422375455375819917875342235324680659513743055626403101613215750841195361279003261713380176640173828882384391324659828427506222474090356374230177921456116290130902502084025679423530304805164684375722878281237005104178423790731573077705167952836953943711073532483841931234285893118561984322431805870447221721031451765122179577980466742015260845819825959281026717905004934404129131405788629307440276036624184735118698725041039016636324508087293830209941605116750810672430636190899585055946695162988990791986606032068766714967849821637658225698257817690559239969903542309077154531564176353218738357094385773406548868525624415343797392130853706516474334313976012182607655350510026552551128947785818967593222799959698158750075081220657896966582559615331249451175530718784232545484660280219017523969339009020159750830782824332975158734674525793565036402530937184510392776891825789660603338352713548941743596842376280829379868344790181729826816329441953239729390681089900157602833345053632017246674241662599791379637348633611968163842247706476422781901761363386276618454843105328965587253119341073039481389668030000473966846607789094809617508983656431580930443516278794731527416024507667505770046982722355323980923645931069088717215014250397019356371098217484223824776507600353336919971767339275826199671702487071797792634005469035514470766630707353031238954224745116941305272625900402343296211004551765938713213226509500734962498755641370458210602307724251797903380934084929476033993400804135163185752696600620716626700113966585710807987214532386209495872938025634507059021482532298510674892494276697289637194432379490554530508371684967339193646478170092470278298492837284147259535245121071465639517680726566830448551182742460319312036386253323495337154587166089947925664002070282626446701582657978628962161936994746216152318119465091116405307972414080399513844279900054676974078899902741362314628932562716407273284444652913337860924808223874527146178516781600293344111746426299155888912247900944067376258746129808980727098251117972149364705699909777745246392959584632842389404078985870425338204435090424794946573825739939276309390879678840480873684141330543389276030063907067333573540478133732337493434036884859796041030430582597688491210589696790827201186274522438711043163659003656372886951995376606915303643164103498744559675212645920526131626443710437166486131235560384846584711704447765110856280857346057802996345823495276936164832191390900676120657167768015447625920944106652851453783956242091987699042405638951582263095857313491657325370854716292763596754340595944586145995110265517009794978085456981680612423712443687236417664824884904489520142519178633526747280271162034497998933399026308728292975128671928133048088474928435951472501421542833873325845198366934481389862585761143746796368319262702771112634199272621318414318252763270102153176169881659870946611536710705693414170700356147480546537576597205076721401129335190325174508127479843168113884149668891205328001027504010043850502552917077478784302126055790454837973828413544971485277691354885491724577159399302294965001253564205471438134313249854851927994136357586513747827874709385230745748206100593440543541479428249555640632771523452955344493054698949953015642419551028555029083023739065486099926984348830153404472012353225366053267067471323484982658541334319113765947625558118088315955963146926692688892642815931895145780559176661153693208081375925285213302401830889384210395810732280521392708362096891912193034435354477757676803347973216017979926986534994447972624924008891874697256568807872664917846433688102346829837827087311421871270212757860425050298603397009799248855481744012102550775598249001736046075563237451874067182238944569594956221956470655552342708253498575544172593596001723790563055479289711256025040486014716583059601533147358283245991420311894890039802188683733877198070998213621307785027550563677549439864552626446523650848755524959583309608980794790639159465535200399465106840503433130868050035777043561725619459716665296889611210990714733363187531481945197256507948350248098036573593856161242970762323791537874516027797278790864189337670854653999962566424179471390935068572397817960095290724661119436412028632976411949391858077737170930049556184870951189551414648713751728562568309232445132863003072393514113960180551944684615552818364585662227792358073954903893401239310104526627343060561385162115861587400210732733829377630058707196967383482473375747063547890134691395342472180437846121361465308973685136021363120965958221345590275403465984341167354275723655453232423545786507707104897324102102533598271589834654150206385564389478840755619139172087179553511564180058002148083045439107700423537117734395958292628738484399475436809800865661639014554539497026261669408197262206625856964450502274122433937150473578453212941002308694881426834341306006390304919869584823192196933921670659939867328804317902544741770554836473989473725575272891358777078269971341982516891468149911061513226828907722065225319503768367866167410082426148646263553366097995228236924360040408504473375006916366476643853134611977497314748116332581215187420742583447236315016694614136737194315303287593766541988157531780738436951946717908397720170120294267657417630233622385646537775411566285949190847151667846860777186069942238405647273943931704102132900141024736161483983512756543292638325797491637629570195019163104387982247916070374306199949699089378990909084425857311153521244693378401209150047781909258336982733082074393382310039502975512505349487929928587143566408201299927391401270350941857874203963765504534331195420133187665781988124355049329592183196329848714982346319135436088189360139381693519549880930830378808620120610255843314075064833112555621876740714824668155851073510368739793581002174835194664726245618897084038446405029595537499085738275126886581722045773743541948715494056991000450458588771656272209041908527064969948798395570846192168853389266871781462752862374248988212056400890983931123615143340066891793428237737823383109174719057127914827640933370955629100234255348143568500657837736698417885286754962922557999784763097953796421037815120473191402999369350120780123246128954926456661625229163103628271675631371053113447328328389790278231392086045594344390318095729905917645751756890231231089312941628018378728230077551946147797469894502491849077437712047768704439224485608358252758240009469590428842045822689087492753427220995791813937082062430984536135396525914547180982533350585787198428790465880138199604059812444077509210913896129838282139031451916686328850011866697045676800660079721233771540008934130078898356059688536823931231528391030673447941162809137516333255146087147974176966795956237741650615014918260038891640791522543662803231819003807229215283816769050729804904703435857361840848158391146452193238177119970048422637064916059404201304608597187740900399992179480612446134252431729144042395716135216401329897647033636188152205611887319672068659559450640599832254956526021371282980276738995547648244544352374062004208259104058346977470981920009230963776732884559730130922968588763641549052754623270084332849751109518324219787185428153459938232112499065552805561303497133490455509315310969643403547947001250645711107935633042477607788176486031886352534617131570384162558287128944592677281822636148797407163803849235348673529745144835632707597386481397992022288011763970949327659556259421423385904777315921505250801359756648288606764071828159955117264391910448226533440475095054584377239038672843355268467630593584959199464243402962986004597606200150266875201586317458339336124575805865275296650392090294721717692416228439873796050416762683299571509163038551529061675752384425598293573414931174154997121037508027846768577295552088997207115415271122849280996165297040711057452216335382304312661541454919895665949190489857195033723212415092316768395465525508028923366627678702631427623993657208856989623847084322403451712263639077803670831110344906887837581301504165630718929872844119852493507740799727352741890885399262313535215471679952184567353071007216138987950180263834085954925567537537379217129835742453182803168066037704654861795577854123193278890892267951982148586503451639959975929826210591240855594214991146339796706507773822289960291531427578317302970069120409954289099490813901565209074666615360036167186399963002938174042449311670503461588909566032726913973354277908359729714705719973982045758345529644631522438706814985101912529880217954042238929598418978446502277650932469070257109825549535471461704748733472618046704344676283013373109242225121327820020487951002255440623747552127234628599254556386481769943833636357583183705362011469195900167051125606100360431751395616681738613080320183952019406763553514965700224573741667261552516207829592333294911772152060592701954362540217110410482425730409519201643238535242920118522027121550118200604412404808247910738856325695199898791839930073922991902306465290387878375998905369024927127296662089968263418977536448450065786112885820826272209831061293365642913249565725984898669049950648313685516315501023644750497588428798399404765472780626394164598321387378911930522811702863170099096908270004842157976345200305171286331018234358954427911837929030559641870041028454009959930584152829874241861928923089382282227250935640457280114303001207233921220435208479259916465277312233557443952486910264821787754761485398078015937060074233791464362289838570652787600282479005654252028943119690773914113990711402074480755206660987865513794696204535381390476149773397486444542928747324507591826797066952981569506995510669156028178328980176100359893728254907399388338814045216053005055586537434772304325667282368226496864572635438519676451366510710501668191321348649476747141963100551414956883343872691091867845405625303218993256569010647708341163871283575499168033617223783162815953757226764257084413767751611343820030651879434991952461087797881793625933111333483085059314669724310589510850153782472703293076935493346022617525433580319028580841982394277169751164920945552391054111314255699826033493930528525594593897392836525847273018557031983418216249543740010978983289235558085048874580252587181493113592226346297269200276753799989259293521095352351713970140503479276057340496009406216118543660319953531948581459002955317277996153374665701547570955682751558723484039114248625590832130547998648229188926773303425489818774264594583226366181735658543519053554992397563508418795852070948643693457408037703699751935783691037925476124734532876166552277144705251647346306719785423366908914812031509135080904462701403009623511760917449172410304962524386818562967709176346322178169363321688115771168915378877130035378104922034210213165774119713035529286687476298183213545047670146838180056439642048379261171643355384208499849923908049137425948206301856206582437310087346988130849609636622495963034223498151709483452678542249722107970987900669284384923468316579895577184172952412376952195364468725091729271932681115919745565857252072842579026737591258235092678298039317231491260841937435195160908063862316707839918342826874176783745389209710648927642070443438690260236192336744118451088267294483464568582556726606948973042388059659855537744734304928137571804193813378986043749122157846064290320241263053162350240536321478759806297059104963994251818978101325815251714747865915129297803829470495518965236069889015763805986855691620931172454407215279196928693159674269246656466244150943510503392564219220764598884939584694581413803971766696800372414569428122998616498375962072965544830770421145314538355527794918166536513568718006926825108089112816633487227553192276899925050826114364314820687920145788381615417593475445360197180138030965427838926622362191846244385992080087211207651720108872480738441016943847566207607796413217806510844582998618990941889831156593729310211913795899757796251753431191019833717716007679472012421734863817477332430941701332172964920009231362383915675166246772350542421908445580626256920991852129306242689658476528793145381340844932203284935626854754028722307720368382549304272428354356113812139725151468598520900024011229720626304512171569312253203374384516833806551402007331391808348279412425774759124989388284522472367396229713911528688573347725571430488055592101105766721473076902147224079224872907811296137878467709144854036495149308429723120244165487702382549688527596754516342892328010495049701791042824156335566862136287716762078560559762365595634611348740152264714379260662194751181431276452606864717140419089278610564459888826094322759537835352875926864893241308409198708374161344727554082777480632906602796427108914203492477009677621736391766127329354853614095170970156938812945299210375593456323696955035892995192437488800696374114788029716451551923215205974544233412226136560471594728193527589657548899727604390947423849604274757539887242705612421970558153741966639269315089808153400504785626585218254603742930197923930805062808604723332988185988052479494303293524485242271464691478740813089022730684688598071409482106318244915145257702037545651119119500269464723499622464262215792816377024588063713844782947279568765292266973507342646671570182229332498310841334144106059627617115516168416546019681374763976276906202404694724397277496442889344216518606504853597357714926290758074137996730024237333564658382212168762747556192435755168082038553369080813769132402619228624793428302800462519458252611253378664923848936423786362180524854912269292655756132402447016014329118469611246367871657427282486254272401576424059595356747224800424042867748153927513583370280221624324454391857727467715805529113585607834674320215633760061457322838025010345914435229732449316727552750350275584222748889251572461046890181414510930155376796257770460038361535788789542804285043938310201600362520776608459734612060796740784530073611212561883462623357050716831884056318248938696663557024901707145278029642265126207478286185196126062935218921756846838357602312838518419464055959992760867079445304538810836589899724123707957626920439816476559381248446178071609914626208836629257792851495832267994912963376976900105195856667404220398993393709685866334393835860501996258817396248857191170681484126057192208877946424641516162665401128837641015869399218144276998730252531426071730168497505152232487088514515390346488916620466618087980572447549618925116017618235639639622169966540657144316259263425396380553418548511851978450426014354534783002451381157627103734988433324524575977320230009575280220676551839104458894645352323160256960627646237745511827554103390480173703700911084574921360160125525002666312686603892678056351618740707391616432239786708932365131880370785755675810869452126333272600189401716444688907572587454474776538206199007407919228651524157244627249423226107883999490576191093236719134293599868818028039236545633923682003886258419047200697963787583754877390553985228796460133070988058429947202922422958866167427309777674897261744225332650257734543554126095412537549764296467323214659969179199024339598729341701107055303783401650817706513796904645052695808660524728179885465532725753806014231823238547899765679696746466422195212626631475883613111040421474273801654946107437137436567990731954988212547288948952878039817875344462306488162253690392596624430050797917932054174064197851221680482141616446348790343759874400330297086580579057541908353173019462706020623945143466437406556970344813386601898930224504857627886414925691026385301093228550719186947001143368760587098866829165337038214943372246874594280743210930771538283521319797613155196947760104689216229877424391282681665351169438086674417333825482797403955137313268002756579537039349918155711790864936385332248445824832613338248103291163100404636598929273948677756995948554148604273463627453430644940639422176839829291967462394282063269097377410728853777040806492303385913306799513770784921263599629694609415077108766796101838105468485551070241427597119188474800349407343965756297013038270750651828423687253798101775285587473130338076460738423284555501171475866796614046381336209775412619724466181654737369721844066632068675446148030196205436063054442869194096607679017044518903936798298383638044239467953873439683557785794858271840685011797555217899115760152964132393037343914754742727360400256998296293266631619483648312933665134824457493311037927285045018510867620476008774414626064389862612195913591186027462500040871093326724967643546175554907401851852381379397634689459682682202814860267308460456468319035621509551455994238323537901254889142686434850349628669624009756007774167617636440464966057244715652824627415735140539704564385456242665165401182889888679784220460223774616387546711855928356298213864233370367335621251274369589433341274583403951190408570716388336359511905244446391028544281626070994958795347442732453876542623611280779718927254661383424619038016906594953367815721190681610048495917748546257282720359704889462950764701742392995750653559324131292089466384926617845843542440616356904972406262784299246438245605677362219289263567075085588827673000443991639659224023837553611288548764093495753050872026413066359399503413244138152250236918258080561116719169237811737838563830120290099784234687009866954503270514548369336879914935123701397213851970768099652641497188742280927898968768340924709645065716861580725518459695767688206555629665100125936597451401634751933327205884527785057052977273213409470154626558709994461578604376996409343646388600933270915915822419138875874949022362532736697218076830617033840244576923933071399246596885293665831038937900029157525622412508738055510804446722781587083762764175959259110245040576366329559802703959166888116604448486267593440936136689720846172024642936804115364489352048044683271689938846784537423874253303983797534091967404635438090104672563182816466369334223889822359410736276041743598889808521044330473402711870451909886512073293303308308020343229513065753780413642513471061436427224067816114434468846363076598065725046571170063198727845663101405547420666603573176070106019451219919891803310644905621933868195861394785121220964602098189194565202181922509671153231606299952516917623049432128182544555910944409158808790428281603570305793783479328857283169613813454924027857437689027828382076157642328859687281503295333219409340678000905216035199416172013755094185738361768982898173861185232070361282746647497407778204300253004034954754324717402430564404622478713000851674992387100563943163849389562509750713087741714544831768427303019214235560956557902323578960962487021571725934550888432548475816739590090181187226933422657244088082636562992089942357439423056429189361453070229800712812100785867997894843003147708586595022548196658571215989686503869781415439240112266528807823317492520315210996727180601914776700233424884334464657894084184899047150655635371101564206779389276701935304840824548468324633619161501888122247135603259823699729780014728929630271240149471589522365694521596347559100263044806573732362872262570642076931018737709548705918766801370683884689034583620511701762200969769426898656653503791428630134757648661004086788340935800084531984120727319075375395134959920765530386689116785697849279504780666820281609536259378207477314374501063793792094821050418372713877893731141920701054966710538561301339335989324242107099975257343667934149368884670614760396979472206276921468181040955944114756703471607344716587209313130645654776234739052038511232991787094632581235414579855158279963174309471098394772660949107061607108221547471857189086432708732596847707001618020070730046791516793651173087345845259420820776076504069281086873321173748766229500038956692009287600368361635526076548106894909899023872167987032550777743691633852308135527645542836857409984983127729403391338983104724873471325684870552390582813094655135681421011735366646839268623052775461652763309632525144791879791426211595938503630080803405385022428236051225931414911232524670622861442341219215131544511896353252357311350494659717648313298170680341276091017394142655402777823611850367365556810574287563852947037978970949117137904595985715092266101116071393136763467402644008872585124684297412382564863534269886845136769529636744185405513823058289880613347868722453402775317664740351844056633668445921230542359011690114279409140189376001318718621548164682709276189382980863751563211060236090091531437330410227063244847167255028024439092482621053927335256699778975361013253224380510526480932926666319205582068644291517193963791404861247184583862051432755747495736934857437823471475467829194722736686849250765100362984114133201747670101423256907610760757227171533938837491527121732726497267687591027607345305456686666539136925367260718986485215202764319771655695649050805833524494841835370469537753819713710649615481578400452193186883201085579837687249231048381437730850138282464732490547480056110332443747585302285907139479525747354020912752837097937623222085800586959188369774758153697363942710659573243120306946086061209657593877174430559556293665666127964182716515122453358675138140915063858034545895059590782596075432458933220264192234871928221109603764444248112915858813315014737235885769715859685824300735531246623685326609272223413760442533560265328488151976941256502405119474929395773240732211668558276109378106375992121039450960677354865721832861517824662049776798315558462813850758137172080100646888359147147570251890353560139518117310452488435567404930860429808367140652945519400494456046097424542537972161032553158866705398629408781810218803479684951956086935253978857836676728813387521753726072886467995843582708173296280866215283254228240655066935412251436193429774449759071379114429130433143016655683687523833248036412598972188888865370132803887843348250771978784935805407015846399187947526200730551103755968711388332526519423543520976682936517825500750887328453068388226666339011201348036015365358410309403653694121794141728860615031185385349182428450008832859948147831675015715318698404795249473487095133988633029551412803777233955843858461957502824919097531494457497774320013595083529026077644058618350454912386522735224937192624672325892402426832708578762937106039086228972115659353295585195726958733774720924018000978740796364229792818642026150503937409650510986049819409076612938241103606506106169219077384704838561640279880252439146943272370768225796310685276555767556679375629389378870225386434043391559710395915785151922897329673309635782005688704090368164251085503072642649256329918926808316694506688729315981812995583728888301301198005764058901950678599085360613733928412717033245415328606344376447091965460328593787483167587592973790272132230618190506585055510038843248747624250916103562061806143353146376843643908226558673607761877947681300941303919162863042045369940835610951974890331356353256772812189176631510297214189284648971019450977171349197084431559878650182254317827930150474713868773332639996513204076027287175995332010044292504034438015461377996776003299761208449928539910820798230725874749220655894764193655847810743693390896489778421411070055783333411441278525157526384650503444701729628319272561013505885092238737917178466316215957550532647321867513591485811657266031435443534788930340312312245953179603549879969146148699192172277713345667421858847596831418019011415292355525372780771066908516085616963950111109971297728078406005096985681714532450036871283991972444149277471176061897719110234672596590793101557609666701802859873474701158645123343793152839077076580930667602149792899344990755414133156930580083569934714514282520618843612698329644401934213685901050629603920031776764094363758543765379557677645028898867437468699246543834030703472834179864710045309327812850139826127321282011063328684841523339297345886954087743959549056710256590074696780453117066501093757439441407600809163932351828952168520622504399903392935035316788091932011559818095664352236360313127435798614230742719724234858724330603671875939046428177932866295662289639183762315801596253560748963711093112817359840404819349931633273850129788866708616882473555766015236825976701760925260056813858971667357496740581312950678633849413304338422625310626713248679935828346718075581625997774057169071177075632544687818973896594681117768140103816942401263961155718540842305893001157031723017525732959762122189923290170323735321670048980945743050003457434942316778594531618381760060045748285390210294301239275964536118445601248698483573736179063408022349696371504986180509969939298409567318509736266469166963829364547643118475736307339930380327366393446519678126404051559926898049583611325922907603889297581659125368838387725513085831993980662282292389106388392551333756264146960515637448629005453509931794764885419814808645041337370023299100518249870202183033739581815967440453667876944058763905942684617943291958556863336799432665740246383603121360111585107676188733011702604424228110337568564670641984011967738476066708346829018983579132212305537530190819008843674195454805940100207822695347056341109774493107830409329465118822322160886830869085521228626610571311409539235451136415153813734780286427983498277069790384891448412689850583964817375941278753557304465483151310171607819892168538377768828439206021733099946670807081009717459531131462477724429510691652800285991014540206649187799548297351615124745589900686721006220654609090411468476833095340128361954425670819468328161708160177554976118141743280345706955598456495471256677920879142015481800374799692027735477121057488270832199193818773483499911800086776514766778038958523128195188089072829920966021392512698680049294670311680721103628534889352015060955681888854569798616615981411765986591487688096988716485929917330498506608539685045012086294501642930112549431369472854135882042361900091684993693115120298956312940561214154151019093820811542268113317752931634099962210287757879296604062623545162992600222907898280037915980263849731889613843880957384787839353273058238430605725154273497491649837102372356352497767122640037946958523994772671532088381028976805704979974174918212531083456648992807635830395381605837668385021669382109349129428496093421068723988131590902149983560297589901443989366941467938602310920540195920433667867554008454805050591086868649589328678837000497481943222467561236623224444726892913766196393559860466968828106288386705975049815009189155684356624433543097023929572992619947797658206289439867591878867715383362560713292618784493576905476284935669669076726722899384261149538972351323707907512657566917014683027716113059745036679212692928743382516055633260163599809050493345279715617740173666208977306681874898436314813391545671532342851959724422948977159088744101384417133912664429167898535854201000765004003302497446462511066230056241923967677003531004892626947192602552909606663188440411102914151585013917346428271402712018416931244975367813895294879451843541378564665762647435132445290260979232573174408163268996415084798652973612192965174920909252955831351904853992192801262869863485864852532826627462792787771321683201928346257848689256339169625373784353908300175551809721828165128514918072336817740102856600917640368609745726065649833166301190892908233266350457524532525338311729511878947675755113411997817301517336267292720808184214951049233849682170448627998754700271995639149063317274283410916727356813979502298043507416983931034720978213488504384977444094559213837470528335803623696327729433131622530622628843965901571647544452878038477016501967668820798397344356068977524893663468440425844290030945476149300455575700854870967655817236392154703302581853775897098920690161536731457190588645728318338540665753691053334052162029052806445855512447568707990795146655874485759069395441711559793700075473759207302541168031192276317264187397554939290109550547170568240151174914532443225894270909421306226186364747900935337429163439168485549276145489213572123010362677586600282767915990919898142890258771606758803624440792410157533083539714678054807057181180005260875430573220673618219995241189615432954960687688626385927968242574569609140308008501276805691026273623440646542956019013820557033818015478680082750297586203483800887363742820482264128298273419046015659066709584425672651253294154052279605671311152422745630502611288873654686110827548347023412871289420710023000349620818766662368136169670178541591634341628614462347627482755973561827136360073333292915304362750485905812353059989559116640246536815315847037735814054534159226654960691230159348309589722768189227103783747116796098057848807944369375334557191489268497848945481527127785480584851387437266130123099218384539201133810001172704600858795530343118860031261224628128573410895570839835642084708080712654135808623656357438638162082061651739187025433964937208277899405177711378269798567954997856874639911962860571157468615711928165491898242052422539965413376230218748170089290721289280653583618175796879908503933116777724182131075529275520123210633390721434841841063386524262034874424144058624627595130537337756926313675237939870789223925899404196754427137716534737612355265071163185686941499985059871020650951679084569529777640914908168910640533092240354793137072729371435022941582103019523356598253997981372907626616075794603454586026143763230197255549876822381326991463150861645993777139766449358786470955287368254614376564902495124297451640986248873168824129515492496034479487462407655394372435872765873023862216274944000290547959095241301177720703991960614061111352357787641470682920824898137097332815756599829073634366042741046023303312827704167577996714997372837282303905195340653909823236487287953571316212360378176216820791259002421511639093375981830676571537428624856196073403798318897343643215123559226795436540770205567187061086134828158241960932653241143904632007239654971374801049386459301769838324526523807970720726058922307132656296224704629960003721937095412316974038428884328769612466384390185215879241139312468390600631425779763777071238325468421539655392939121126511443609913165186120361623979773780204393138435599355466319303005807908463929414962280887356194082778470154883459476666118914927239002675628614733461869769128626944393129313930916854587826414773417749760361926556950311374884519491902130797428056986169274995487665021087095886538938341444846421642263867882961658490551606073947638884991058102556057136399415745373138085056017316294359864680772375026135626913879506332586852753324176365825082283752747173913140297111572290049903556156182946555418590432613589148307587130692069003792977413750884836698955006789076682060718559904521436580131002238350206950046855176732224567519694690680793519383070839692179924605608491721220261880029867634043832807366810975250589602008302574721097847115491108507689706798396514011678691436648455516794952269804948538263356518159936484765666756060452953926596830717336974958624573635594145092792370368539887344776348249612098407278921449576562873734952680425011651954205830774416238319135361620781946510734795368454703375172852096815320852140199928081375689876026640847540426173434581817904006057413023897618568611176463247052571726863266932104874069536686505847400879576382216352868705010398451664828079760805802373398468222590835836916604456029963828717197394103549876231174154794767914628122941847533657897729886400891872088279132490952364258164117271864974213434951442188220520340113993005593944513239444973701121228230308274440169343347996851216732814456070999883350857096324406641253397973039020858200081650180866065668515156960675815092146658799366378798959392057588779891097805939187067711153522320121016843483667486463531646191010371396645700075335888532128640002370251227723273923593229164358737263470987010812496983587372958867911724104089208216762434881928287441096778645661589937263530081894865092752130694234840978820363863181560646081120581900749549484252474253382418822884894366426395477060472385747682571360420438564884799063833575059193560743279557969700298936355999337937255465423850175810437504256356073796527406831512817425259363350113061623333331146906392686544809052703922680361456682772484749003975430152735923581024710945937766045645768384018716735124179525674226486509294916098321817121479499532260604131562645313799813009672860015845024398027973065959897901443517161181658530070535517814595498463389285182210138380364604483505247122604005562024749631640341502406037854343055842280852751387812124782953769857667774222097160542419724714414486384408349935276532038246027951590376273252664043501310007324763412283107386616897081176543388470362763379506523303203302768700134382490779237822522063606582745608295915211039953151960281204497404558081889964803179915332876283385380760047287234542677514154096350031006066094940175473372365236822074924014359316248217582062993185616451137336462864512079802168508661285968772962328910011889157575303587097428272238825207589843649146196327718176927266486483822264366180116166747906329011391505639929665651472909359674674397251785343565878196954404971432827979456306400035758254376256556224491933296090015937681453808032714478865426446619429233089596541348486321922105282055583230272748214330003073599511933598374506907162380539336526099850200824356459485216245116575757333097510659056371213727793539032450946508171955645087841391971322144502756916352216821229249270572888351505834420577349327860631359111124817061206738641873284143355787765360162447174942170615868581836414298442349212515118935190174238441163436831873350045683251208936101977216280306769708325705525864369252337410750875994982097044898307393952453741241988067851375567043814021099656291104904910418261184013788018432156520762478480884144657207966055029891843458463637746400104791873641446645491797277845160730671689353537478377581900628682344391616055657664338001388020409241376788880552433075952438730849107754624756075482646259073630508867818555378820836788047234301419280934147620478578541223800463324789876989258316328377114521735476702660777503094563267308271920921721976159536228240908461836314869358450785489675492975524975391399542552345636772333202701732606490361088374002848987057669988582551260218469219335770321851875592885056031525640571361683333965594804461128151136351383290703366737175943013832588895800835335380550371162105091258522377691158191216325469876171038538287814730550280525013157887382551110630412246082188720895020070186749631308150252926290647199641523752016961853457920641849074286474226436535319716094608099195611678330898059620282833931526919512894822420872891067479108653279639209691274668021277141216822602833545495012823228319475732761840219922178560503125526538557618400931027413976520765332917271755373888909167756689680036020146615942874585989238436244597343184040287546359294309997337925338081604111817500281708631039913641491824533203336875708066207673306134283206751140990647491923526302144602603856843403268271346142736989934184086924003369178585362766117471932140652177328285607936558812709442427900312934104320341037820516093689495470117322663229171087811444871832783557885523065473092299128370134886253987202474533684919961863861073656021966240248590164909146304047127505124383124632693611383303388563194268307614974138750210541129388530366801947137657187219162431090202183754138950758210003495716010177695079454246364929997900853295030122929252375790644465785245938270780275687197643017039401537788138202302029531881757687515487318139103826850043314586466700956623194958917128463753628837907088205243354123333758354083703610829886540578740418531667522367960852471246530334068012586335008239892754054274719574839199400629329760380105300519674981367587123821455219362022287076917901190449774771907272931580565828449851685102618422447067106287940650082459495048580204515147738662889416504726690670489745049194569509038583751831007830820379197032756484869504286269993071263139931806968540409307550675463630654959273285305232243568377489298183787785149931090667970326521950257760098093376579275881320651730675108826394993194029610937232735903716795860471962717057462188539360026370930296993035783773509804197575389393395419766905119952694685592171092591879469100236786599835904150999419669294997918974789403511947401926384474603017099983896594859443426222306322358863812136726530969883181084413966808433056133979338681190932522476990115052051027714388845924083619016106948068170521206100991880217629394751007562101497938524598826363490075070666129064062922678285574813202870406183871229142806027366300945190681095039665539310354170680699715221153185548301842568198678814084800359857023073985332573456139158330184803006884171002055369994056074685566226875762350402834902205440660260252152787507463703707057214396165952384948422880438795387115968780570908735345311526636440750764026580129782754561497191001469895363732116415073937392048253591100722846887480481548666046846652961464507788430022272877950809344704822760219100307503096428271348310831608379700726581995115090543004979824050526904184885493434471691554842902131347141430479421675849245173247183635297608794492677460393149859284440244791843177547212344301615837661756017827399746540268197632346509339818895514412597707379626531547451118774901229801145185495190726673952635014351700129469388497024407075035366664006140390371744458214817968107583778372024392630490516930433173082981473449936912122121747091814609650233698954903154695328030423772972764235067054216347649048512801318861026937386295494332453850457763834239425703863556435134146821044179854537977820370603284331990325560039814345569882749554369961469005596665210140437928734105902076346250220038270266480894107421627594864229529622892864087890259459000734854948010062545890595215790167759449733083521525267758808887020393902423687341222851877337707955773472754481199180738262117407371315099119716852223662717267838327339445366867782163665258968561438909525019284334325468434298921658764273278464158404396168578581925983548943832058286430032384835801023069214143706389615477587855885353124861585782856650165155736820108836154225343253545408233480713627738634131331311353106691315015205221317111995231687756940412434402012598018056352284096417558061669441084385069505699910384881843590929423078730121179884646155736423794999076659981578202703888716701555284452889862785925740596138906560980391338086568099345214139563676621314570275155966586225159018551864286022607168380288392667405023242420160216480188076925838890293984509536003633376150367817370915000969798503883988186776075886476398488493275589145021664985429900108980711335394721046895473063892152245545293128829461204851320326580528931999798798482495428498343035509163972178714003322002488149565253169681319764641464586689848614260781502996810502535048654919378149294479888161608798550686023611323435927201113683470398070392692265552096807459532657223234110584275830324193123646637758298778458739282795194141323436706518252374394824964209656791272198147892965495552016919056915908165673206221955420300918351734149232780914659961200444703234276849389852086549317569016821429186601442871863332538022613877350951793404863619570780297260443302402531818300719855133593351265006127946051600390786591295358522050337536169598765519606344828439960623466248892070789870597258375498800481510710891356225199544211952123141730931814104988198808968762151652084280179944885899606989351524940300423583579578401570916754577179727925819341883789662409988609300496775759907021816172483955489102628275261090154237567903574101996359966301319365230894270125408719724519897496526680193237534884636504247895040637897205099711213359245138459238099356865106350601598107106898406926787656552653149204744952275685114955077128997590587987438183134693321594730902879470577107110183311763678947773364856486933474487975012875652982303061785968808060636212568247311546420790738056831942217957338153873215962216950659356904085312395065988487231197964762009586191084784378289704608286552341695133319914445420484275010796302943509677996758393738282964963390356119085717505577251410090407106170026849757980444527952166749909760437172508729564174257794626255731673017376553678836400572526078894383963086183579556387581110852050041524929848340070582984565750937118842672986202186557142148995885866657671896520649159405821580373617285240818597307290374069853762998740195779462704653344093686145267151162374277803419053036272973595272809696378753954786217169144372082929737756952384595871333531674011588170091239999042357295180309446707852881819168192661713865480803829412225843774548080076372911570543630183766019151913148284660611986167486738637630776093259401965766746685993162784082053131734001480369086890922939266966840036193564310597224851116951535730148289581712870368959086258696512251014049780897766092490735870141720496735440182643336887280759067776431179055772509704814536153904717959890389727887023275043603417967358000480827416392917097701238448249474600709877494243842239552611368190789761985250410850384758939081318263093836040390136279271223060324437823526624438254592642816760817296205318985230323250951092595370178255534204811089256203854030478724233526032271378157938022512058772679095713295549428604723791816352934257950306459082224623432387646817303061515637966641689653615004401516279747705955811853418311212386471439165540225949299423962091915607300329426305965480833251708272435304646538899524026300303566483036071606013536430396216642629924052892161878142477329455993029484028072116762665955880235880285129098471886688025335767885246101449001875060496839599161471661142757001801533856165752819387335263593117696073480857280635210387054074093789665327754762402876431326705522440674279252514390999161126688262884047423125874849453223619473848797404771889250752463969060135881869753882215427591654465060179891339836003925183014507140920852894619689994124787569292488475621492074924665335086567240895838426366409420466466250226606825243141997632042844313111044047983935138529680419042344966173668788793090997513810526960883654020159724733278843754898717719618645476693412605257646012125517695209267891435703978028462860248570349171681592843396886852078739644288787438294068157182498601556511631265316992299520001748045623723456236693453122484655567230699983318869789621313422099161150973295550678508416177025730079686327297566498497585058759791022644276495314804169247816468477501106685254397636427956124460170744353947393897825416845260195544195895036665435258830835183781836932523460087559163387794434193384117796408959363622956044539774409871390190339888115121820533410315982047675478518305955979229241278128999308744266973846738111419283715922520329018644672110929646218513166388059682683260949621420123814771829874426125245533375870797631242410104512446578678929040045102755698144534240235895229831816002157205145485523806602309486433702854901765515163600912829866470444533067275979488630123328399562709053464867618416797711121817765067545975029095340099850423864797732958637099239958843448153046924878466494013012307987475421646585218189081107323487211755313969687684441695989347324720522520282746087867658850530722513399539589548188154963911275147797902723805837166619140499448684635338017682669308860623139223434299795346543824184453556177998018706100087168896743516933843493142779473630626875997837768227858610701368929877030868497836865497554515209560876172905998179206894129847505529762703436759782281322852341690808943421471299699237911841729114736663300381879015617410123351126622481054220409479909712228055582929419546274773478785718734154605423248839502847732769353422701178180020066641191378285700029409195191859917151410999426294992270752308461272799790334612241712480530123209333481343719672436756850974720181353200062124546719401806703961129779598220862658976637879000538616898019080417927456189552080230300714677127565115155163684555743585502765479962527268524331842263428859171951034519092341091088500501983014133651202229195382288681089487132941423823169822883498141464235909685621789443603016206197709330576214086708564858419216008278144575618744447482258174499456700865032965284102577481355132997679352024895684219554381487043044056180142410313420326829071907140418686924372771202670359789466810864623458980250836472783879731866730963884121450253707223585861184125893766361244110202901727933166021557939423193504463342737859926893330969879885838141150996367076321738427778020304004152311146209509725249225131585845662960528232784151773057300907422625418167235127620007568418069081967215675959413845887461432342318420673226649894024526617868326735780210567056415395952059484478194683090606484285571801272477421233727740663088782245036225679050720891672532335122296133991289047020528615374114531576458343655951708499812162783822543990415991826598638816924470130024599612715061297147932735837617667187820570620268025907434017728789716427960783102603783353251375313049584656932869837700032069802335245648060111430524079564116008564974957647221692977767058493592184018266327201688355444587499771552398657691514670422637441037281255474544860837556309376864753195058607389792043455821894694453574450713264152249370151527129885659777806646050203758440377470217142350281440911079276033352988538055930138883701573173653642951382505675137984614329358101959142167178393148602111949368303912608979986821001373531541787944799886129644909437080147849679091905236169107095643302519424688063051680799970910474477597176805827888227992932254084576805860361351220476623725526677149880795798154544736283186044072398557014458789982642182045611588045255168602783924127302760556415847160640845774230777830720141540071986663968532787363673869921178663577670015725693544920962801372540523381723685181177031931695048739316694434339965007870113534227496700080298448632043433776061215180224599251218777969427042943409530844984440226901601688262779360154173616201935589726142386787910863821260688453613662415336074017870842236704315114871275396690938051116360101298246516013847301481072967855184284152176515209881014733997650082094093172579766626188159316935183020853777701272387706434912165168534665659182974276646322847525955384402633519553192794831505694020994952841674518675665520432703145310379440312462573870974265147266194025177815121256344818507112090141844518537109043561069247176489050070537474870177160321019254358939714730207317410192584808917086667875756140957574913314290057135735267421214023325298556154623591613819164808330064761251081102465641510690862371206242793469465067849278089734117614332563190897910139152723208176308999365880178555202556957071404690723677266668074480198940549554661727231773975155292268378739222653613389293722496377595846045801821647312153817535428193958305268326568344077566360453236856239962419598826919320903933310155335634028852005505050583489625084376251386455120428744340934802532116316127157151070821022357228382767344201543914771226243505207915008945328541421474004869487374948763767685923880913891382524234966155176728808277872163852823475874531638615749187507252564006545866004129952490778939082838134210256771355806788509364663612018483942461747480989188200699116907623689197657668664305841402724884177079324710470180485831597131381876161899179534133949665084647110087907116217322406764860178872327824905959798701486660682452046216607550235552867638849552108549203045349968581222794017671949474085017749961106520754097122636261775179735517342834374002810836543016259431233421081970408059212118242377931881749011419507904042373098155399530670458662936225517815138833968543465225741336800016537007072998982652846159758435784296142057380598990306736267272280014392956900401487442544185177881066186390111259942826285725578832940447508914864625643720747233642794429475303521983781174275416932979265554095515187424238063367577895853925842796862650867206151702763046543526763762784544462052753613329182045130378297542617172151607061391221560752050455733457484614514052497585902947090942887618885847283353293626347642534721845536984724817295915083524997096168489987231852417673391171522263242196908120488497236834840520864163536594850885494079529576579935767481435443862497650467359307568436019793774460930137044482814632282958813298088404790768903359442307696113204363578192243891344650018054293176994336183159477747163570763844829689686098675113306411082714601444505215403554064749581925923387193538863925347250835914586138278944574004899870814281012515764212074306099481791794320415891528097312390020861875373981526271346341054347149225634205709395189848604684683536721730308215605504440004598258060440334132960227329937721364330647753876956308697638144062098304083473670931864554504053803761430294211784337802634860127499008378696687132037063242484758995759955353221695526104521951538631479283153062523104417686357619174296284919224099079691362913808957220510360189156822168840598305378086294807010276257561773036816951507005735573797704122091075514734694794212725700144835435131016848982821431553559777350800387716428173088439685475195117844968466202015519678256931541033962179236243999540669159538897647899211251353786071473598167020993112009966325373932431614148281777928532780616668007651721762360026500475474559205458906623796046142346276022276796806540793206021693947631462678461368667964690224094863656217038158660080619087780436827774267366801718294215972971427405759892221879272833007480333041075242726040801480535449906839537361228446709655144687428810145513859978985660801926724094341451880500998286128836328286898478625893962709359260251380269069377184582323576225151600356292448332932260417162791548750285406267516107925907771807630603402394843549090177344956793019273072270069963743958378220758422780569728634393205550273406004465059443652434711482995341002871885404799851856729190043062631018630842097616188755157761802831012568042120162146615459694964014674403288899651462544997750904211034883159427400256682814006745504939535142298336645523017330026860962275501591924519830629585132296304609376803329518276906876069385328449456498736001165421433974939552681137887280029684130786235809052904632119493769358128045547308757097041972904612494200537183248681460753270922534685066911804932922530595835839682619079692089037944655711744706633843481634050570919117967775192045028168305578564985524744194681069746635077473824437171136797019925546263202244059029775634886307496235361930215781439016800670067787740514775154035699016208168452331021716552307737552694035165297121076815395012706953358690246657042211948759359218905261673668715446613755964913773471563225543737856749570316477385794200688461075522261128851715675534709468042991291844331193471373513343332921132000604437925178358924780978590851197131577015316456217156102471040419877064341397589736598170322335104626515923518704737183108828555967113533705714054153357052394612374012982464945379004121001578643214890397833763937165171171381067865221009540489797337562777591517662798940051882378592104720461748156013382039042734217896465568377392661494014471554851221014180776078492218907493376508598144329414067110607356853257841874291350083154383570584997764062106264749961222376800208887833961637368005705421162028860704428901254310308270788644325025393358099774980466725335039841207516506030247675668919088535908517407484359974537976857632186812281349808341489444697594754558172037958412808950464767886196344180690605652900574259220010732713990270743638024806761942604035971228270631502154569837867994217929528839079333189988720751832658662510496189556976119504222593998875037523700107610859631352913405392624218456979988781397045097913387387777616145750947612238797905957653797196678191252090620932998948068141027981521209411501073208765914306412269783507858582335652815584281601410024052548129857532925358334528911704938082081210182916886063275161178730147884145881171117198668084880972278685781165309172223833677565746965621845977355596360959249170149333541820196496932843475889083862301662373855224848229626238596723090242753442827731360143378101095626197812658734464100962565919484546371495482782909836973438098628161284312661536203347810197133423836025530844767047924240195602036486172179835306815144037689185729536927749518793524688349513598061097869385364954576609421549855701198402728635124919067097490883149379708653772348229221635905814384041850458198650624821052905345639809166313242893454106659200704957186941692165506468149236881929032595326017826107332503249242004872034617342427886583652594459762726657803693283157592167068768955490642044479492800055332905544986815414367935087498612844734524888817577790099095659596987788684931794883644657060185835776327293232778517122044884072981132725477816231847362998894071716138601487257670328345968596835317497421999725953905096111429806936214956859092116490037880729364369662723338509120771933773309696792733926112777245423239151015622422188722358574564493988458839320775781058487973227196643987696456789983198785682515082941146849155065424605187976551379644525527609842610136625635543402209420890674126123849295725067887681679628945004907510044668138369308588146593801353344034724009241085744862701656790226417149607309437763335600648102859320019876601178751834698997637270890404956459056094319065141775716560911763519204931912572301620839877023765606832304877020809430013594178163945286626493562263399249165593653536506338127746526849208378817752267846396000927977089959778272191856592537265250530997498957853787254744074590164288083223428326741474708509679643624369305485039938142742224958208504760509019351293594941244541770482386449335419481236708763824984381881196160646055074867070498047974803534103867690692766791197591627683397583112125034499226261244375640554734077031494453865744798471469985656683552817870354686344990862646558433164469333975432156376468664462025932716607535781846866326206038425190236242750681110723320848297339003230517135229935431751330388365412863660172364915074767970038714826715068650771727232477735812681078577828877316146864566859717510103076048625232241114933259239132091761401775416309757505696194746936491848669981789089481470862717334677593344994959108724265350888042153543518225773425149833846280993469137005777014968873639213700314480544674519593167724715113166148470320583953689042445257596392910467364754188795650818076467099780467611626667293571958736484092914200347079623211484510815960937215402316692512679939348973940051301013088820190984217683322807422883069292755746539475069307384847679655070337894573486385642430931925418657662405759276832187401036138480700745205941133190058109736026657160257635870545521123702850403516636702629925057972829089808228134451818299471105682262375891823389519236595054695463479760383673101721905460515941014140077052366116937759582007166323330578154758705413429796507526921712015034200445937423038793523430725911500831441357944434311869193540891929711462873374645517518461916156613779295352327524375002800886557619976262507140359231603361558580481375702568933102133925982877008724374167823549571929537114061810450391358024174052832752404884334556580106570065534388613078668452936813144778602855010610337791163570015651270065730513350175096987629288811630619352384765065374359095193415553813627954830832560158067742141390556269965076401362161803637698790990177110923643931641600097368494308498020936883015752705719639604219658364758448960222108406496197511667937586294191052455251270239383990614616355847786012918228420605088129536737522134145912380162056097924189486729183220341893190704754700504333689275573061476958124425916920119155509439228311093842759126939416718352919005082016323189226258420718842112661981978897794482298319898437840663595232600049130070403390829434736821659965010738895436404411914887857730149805459770516461235897880334543212129946819143200554564012665479453817973657448709346969911801324712541308125153088629964294573705574421583071545962347316656261725304832405441650088444442288097090640478554627095318569564321054255982690062159908609559551583115829379171930202564565660827748982293496261594833545567046445585691139967824948809724464307709362254498033037012539787429648946514693038117397519747900031080171447793786926502951940577377463855826207946917457362807756532493515686595523657241433734602020211047635256794185493254355249278964765965873384759772113363951659540750757632047408620979806259751298807691182343960924234743876752646080540170953319378923220313600066893253832659306244544219544591796294048977270047477548966789301713418013630693834012043699209414556622681369901156291379986637841054623135132972826368377126730936738196215220293304229724269880159354851473694237120852656674158987132862089885482682934376494021313791746810501337680303339941483942479313358062028476199105702915573965980948077462975675170053677303394982814537854313384835424762723474738096404620752603125019610523474320252537541416360808310860735631800350050961052005175563231345271458634406664747400193963485859860106256738788660691928416180253636500553479323878789248302870908186847919597231347122804121991962543329218830708547024262398274752373232262379774908168223348349389705749697551162278306583939227340306136928836529849189093273048482255205208645118799304131302468994915866127494896586892924917086689330358547121511852490076856460766376385159141971628517270642406518677434294870963609100218868167897586215215282378109598354435463388345208433291713000335458973993624744076219662152369004478466404759793602745840436302298494981512004522767131920684783006338422028897056087328852616510910518941024189820327921947277252548197263970688889689541433936721913368004717195429472150255579338282669273033870385892361062152030391970094965172352549380779337780970369853042144213510287681893467666044119857452313670622201565490355952652320174682555019916294389765105988700972636748353449583658963603549694164650697000387621053314706326526263857101857012716020924560855540063837464220086052999806479844434973189391262372675834882359471034838139978293288252279719008742367967375582992463825130262277182978389555993306008091901912015439472942719198518966519717806285241820425343495425285492884366192602847127164830473167309233281940897625626424139639489914760279831114447081036232592765822632209580666517777861952332599333857595643551502708081229595138675480306680264283275154317919414146562388020210930992685253381963667431654184151353338582263352466089439005135361187518467717909185415647386352423627442627506648186485035072444172965597034775753884905146294179323085249064145491808498534632938605085574358528081902643490041510343342501935269655847809662572627561822278983415764368130402236742049234342915853649515912382517731093612697038102214217178380464936231051412190596467204332741157103345368061247892816388037880858736293699175829851558593012062787010185822522910266344363260224923815270509649958416798216289065783386804299975495583166822017996666667352385939613800304463982425010036413361413350811048390355487441302710350754201328160861521104414000237748054361534433518039080183167504490128018740173179202058535235570939853716206805798012527605847756437802716133416490355041907892160683427414706634533582915513211097787501557991564511583925961911843708884359744044606970230868440303658381427881506531820314586877477729658010079190768755594122980376349297045540150097322271330027952279876686521229243500255155918512791195810152499451717814132911103687170071030497080753252297555998356097516111667733733998008428844659804805466059775104123664529323935081847606774403857936142200566947057494623708857216108533624151556505626829360628893963935400266162806437693739762365458179517622396658184316447080331860941209719477541020794160332729437145712622597024130010630803568195730779499184657066489491709942793284073121043987778453196584024789711026608831488211896809806510710050536774881256034183833670361335616085075781892049199351574042130274039369598678994024450613348480564245856449603358876065049533110346546552258086945984576671945629452081141010425212284819650949280725389854722336380978736860715075811229332934805947974483190959142825318776928941779591644577008895996461368940014858838193182605066239511914949440023584851441110386171477184751450689792457786069708474067418809164347456877029535823566338238773256955115841552338716455713459410395717267522313544093005537338283632370252121696801531405790014854927146466031304665736008765115959347925166509054982793912191661570881519565336421159133100605578655767590062458752454385293205452337522798683065107095160380667476839670800216993444562173867515497579292625741320291193836571664283123449541577166517324195530311811071338253759478104175246466667286986442398808026044417949748717957157964506690574707347534304158809828672421794192710173884907163141002635755328376551527139912164643314648483444414774704751452457810872932662453754735706912834068469748680771576645088995581726039514834979111501874486288596626222971072457673766842726208811414413877620307887711269633071021284992389597228370504691486364453617308432564510484774232524693954758553700320013966253948101764151350180421973913513317820639104367822056276794507964422869974081049841185476094754627579486919948880638755252447373607970768305705475582759762197010946255067006749064511115646992722609983272158893607762903378210145567745847504947862149996925022087331514571031295246284003426799009994623562178912666695119560352424603100063450173782408240731037526224808343704484928847030325496539029051158880017367079763242106829808579959585189280220041512330483708266242129216221170385213139361510385866796895922043543111770940020849194666746161075157555852922414695957114326613621640311927943212829210764620979064106382412380690558089445357163730356582786987006200650668421899750889440213785696468267438422661132095147000613822892059800695624820861261341928449083236743650620723011639636663618754959482341297763287416730127002431956418590164616899117698161191044121468510729967281132062800933308696378034460604403845181951042731128349340925450040584398479256728875596876408704628383892585181963286935810274998630679207468571703221956828673197037898095308803767597215055571441716448630125899773934516971097043245096565885131167376002571340736710150941853416921718170374606771455494169990424381604214703014323934735346751769067514178614594287864916386400324978033418490013540429940191448495885166563955357283174986703644631102690390129577692323781355310916808194372708956603973928021566298059968468639407356837347613952663670014735543775537644454582242067510929470497264855748293806319268226923975819712333770838800119230258589701286972504906811600961315022218921638875647282267079864541193391262640531905410321487061178389397597045012632063190831772524178141291500098520954180055821654204328954583027459835087929695979455395682447452684606700886147858312716644063325617464106746428880302968581801195266009332519347433784425971989633697920359028894921953509478661278771814650830357425668191910776818016400383197233037148568426442361793163358485141054037002760700787512754498792137536566209342605164598542251924310801943908185308137100768460001282744337181859908013898304954409778164162487020133190270980507836383693953472711051788366827038896101782765822424826374658099815591874254268730904936853245502916092731865737296225258856004808572009001734838482412852464848147884437491857527906386004047941795125011558384714601182190057390100607365521711207790259156804355683280027333876514970408964291171313778326256981877508107592508666059670729243653378545124176305321951056065935310809456965314414089680437989160638583094695576525839673558504334501214536438007058284513605531463804342938841580495948896431037316409000208138152227577175362578078564783385469190242984674477197736758772850028690071847578136321573655694700204613150311642988401564563440008615702806449983063012358500990932180175001416500476764635758267390017958115662571287539552985821194565517245518077145208691944661456476155353851356961145313562219259295371394979757296948623080821156194824914497221601723432897168315681500751041553541119031236389498383955499316485579556543186414484180495151770095886035409768183653278862377392656888895168034305386157188807192705390630491054263604469950159118197038867270497331520942600394172919638978906807736425095219585750066697521212426791640924130366783461191771741054637149958258016968292403323878138622604332465758763993283578013075431974521103647442817604650583217946899030234907431093636358007542685792981733546844455592217981228760209262834191041524585452756326080762810773191281447319480090025179495938061564157706497489281746806032691452396023112220145132745203036741390283945683815768248325577665367516060317467765672392087946147891263224334186858044072793692153215518466764545431246156927555807031374188934236579459945467032498084755434676362139638125893853048893327542542331902134173504970787301298692492573335688963220776959076173241968724389641177263146285122309760755213095715890128880332317907880130508700372287026454475682892461917267837281110540567380497284064489965697614662705399122330511587098339514547066270267154979329783666570031574805514157765074235710112232830664500910810075928725298485336813084419604204401377552535868788485133568824820799690289354123273228639181409683932597337253165171408589730082465887707672242094919867045503568751983626636577681291651075197828536036084022915841592878419674525994020625626404966894431678349976659593217307751333958249872462130687729550394392120692465299875757766853898791215474516117422286814682343538097494998196198263803638623869435489342156206529836536922072460644597809126811494987315808116913528248293691783669809314109060508783171899883662964644105853228311080518128735045511483943225569530868131360113138780602845878653016279623893025012225650985427448356419255261085246191824194578776657687003361441742722178782967132756877349459998193568124371669945959039863798676349687886338807818490922972661806545928873852821462156629536572234811262959607841715465224399497682279259821521224115813571706969265055584285944323337433196471534574388954539549964815058223265358634792158632479800411433866798051733165614398071534514946127943884747420983006889483402475082481310244791516145965618701827313463315130875721413672134092384044348313764110932114779190140501629063058605685035771836002838770315675443499699363037754783716008685377919565572383195398446525954065594629644795444044283293798448708634444467913982778186741946852836314388686881095578091905965021571437298687307247801740049438139112141406126229605884122379044285329531332956295676231610907310036712598186234695063882324887350848366399154612518928712476785127174135467113348025102118088613488324404577209696785402722826602290066082345868028371165002924713979344991716479774262372967141166488409178990591805095833618389109731793596277750329858324566917334937999381192733969731953277413347367036376240527889152898949096376334560780416690864776903257048046643450124463599169011963607089773864346574703700916438201317186954071124775764710934797872089926963066997752691402803800217848562647707024768860488576891103576790549354551335564148060151647896899730264657108940669783355742800713641812381684825410365470453791665480448513562085610472186930472456645393580067748729723158493206449648507805043891219295880310196110254171566470259810659549602144709591513917895867276355236684157507568763997865657851360964154774889925187503132019184217086463986944227265588635346919096275112600464060112688563750911458971011839093535518592602263392904537411482117512821726256459529571818203943670807836664561928189061027594907558727311184518699997301553479095127776990522836841957067687529616049378680538199341711083793923608519038264161336750277159395874727688844198072684203670633382852798460945667897160081265921274953233440987344288202418236821927751267420182454663508446236546195560263868659288482495986693250223858346812365607200254270096632774992625134542406504574722255157697864464292310829279078932209870487969557710813421723175906873217267137539766402301444517409431817083680043684147881748453579961946924390402641691636277731276755458931787006307376410070968222701086852729725939396034145299419255800802985644982958565529486186205936278871396581671735464100792081100720277084905603549632927828161861775137911871648302504997941884888176115207183723325924022938403234641951145337525534825795892427532868345340889668814239500106017413140706615359181234735526996380553755212413469417353055840181669313094349984556502670966530181929835673631309263987206693244019305629981595694637014959873110876484542408950070850320800039715753479042686870444332683903506069245303997252967191518793153746772432012835442166048637111258059246559006691788214934124948447071363125315699574910553153908706197249527102075386728241905406254718492809476031449338692988108236292383985514191289484142502078727696184461093278405205101994894966504342338432717345067193105052636268371276294587304371233069662109532788664608026791912610861512797025511256029855059547742578641816544434084384364884009566844649412969903273836120090934303454511572182339339211963526557068001365945376072024771625120550654458848878453984198899350349487601390953067154582915894524739919165230932041107082958902829619774160438436579799002148759299298536680291072775275413437894068067502496539715736389807165781082722096833518403299016257193305612631168959704215814768254933068422275322661920918212649603645364955105404445583607065850133668568472060492956542535049962980586237816856347101792200419454160624689244695736015174345579000830565291960334156854246959122416016138619653204451278877972686461542446548730695542279077882280554153156629198075219623945922659412634446218108332326525793045223465008330788711820994745479792389561767373704576394439094528942847872630306962796466920103478364560786803174091486505397903259143471125897721042125847443835626274979117824686660415568134258533662267025352933114534554440417303753843079954381031381641607914474886852027626090678393014598649665226244381725067909796624368075989190894163445226498451553975320635262567229014740960655964617316764802074018273876980251410099371624482276489250068059182345540358567197200286096691904013371706780262174662955538980111218422599465265834461846202356161164864517982695376036482859975314265308771308787851477149801500555233720682888431444335532516211057593127329866540840230351684267743931653349435636594757965007173321851876545036224908410294984985799103355596282043635875979699299484724061280506480671801535170424497180802318907266925665037644702358625208788529713946365463745407572166845208799334634709341344714464527370297285616988834425655177598274115317607270681164496383900895186625229846635225001854589956821559469199921871738174719419769830663732569589827364013028846696974163473045120523227095123998775259654118110049950287473989445057614793123296251274179915610889850541251649363262203322329942032604351475818584446566158763806728253917086298779810334180613458358433549499278310776351661645030314355708798265336722224546273154134480988928053473897012602533723208651580608877330136063985860326932667044141369746198100865189613047259104223843095923188063818503345012144656668355047054033502919404457876459006378287265322638460765513487018521154971740394286615078826472143371672538573704024702822158231388523045101208311891913953467684836207462650732764208789430845697591088579883398103330659085296951778970391148843914616049870341487872652690093764085974325746589433425485415148459456869063529402517602829287353612539285925697105696842774972870527034995490474060298541289559384209050402854875394468838696215153605347630398281865766125109930138614094800145916333052744275466397324856650118075748685686680100489553952063861272350760615366891508772074786010814359657740708829114486810746596273115406717820650309041019942722073183290916270558300968378608131609733653259929549010937431364680375469644169573438246360817816503345878331930423850801414383223638280537061160101164841736263383140872529612556672624247524435013369418134473969352251844695565238720902030368346101226607279446995019988835443717842313299522737790376145369242451876433477167840770376345086380567039904221057558975435239089151910552081541446724192467937185079079976225894357359269598351346953108353774329183044415355927139917395118596338099435329984742181838803402427116091882307744176031663462301858332703197293413399536744885406678421800561202982895329419393317784970140900586789212099338584401834120982999250501766618509095009541275539662493173152979808428952983191409773463126886791776881256325141530398832591131708149520017481415490388111988670040889704451084536656492147568306415842570009731446263480168642567028518305901939931120420532905293814090248404120887735346790040319627969163581803116136553672346046754679680119393095684657487555295119711437525812788717023746267194628809213556730182680102297561149333737482157909287605855731005538946155964546906138708119453056543440359005894700422266779575602390536543488766961247498443153872089942252411104095802240840100497530454845134605879874851360532988958685316675011699573606128658366726981754133420329391954233717154789106676961522683917531820038504951060636038619911567945548856092356224792645894781297021921964254163597232500608256226104681072501650883030651300938517032458658063140389894982257719103285108620808117025286043717673326333418570913060224864140862952096525037097174436361799484353750381742365660628163733923852097056823172105781050719768187908926165297093448614735056224727279135258762855039350067702141120265082678644391620042679027129573733634216381661361439886253869920810372221669584043886370667684916693740971314066338474743127947873852300546484156335649149059225064006044159368770241695534744249048217945909352062022203132182064158084621484044497089618576539140889765941722745668870509950230323990793287700391320311514758716845034988870432011838741421024357929236046936272434131977767064569584086555537219154827937633298311619926373580511173883048044386555292328531534518369618576056796972981561324832062810500061698764344357467600629066968613909925443376768563456690648901768660523581591767926975623645177456138426184821424316337978105221514845388996345768121153976577026438734725829529458940644263538554734469250941730754203215519067080253508102548725647822624063304196794244590542017619623229595062120121535796866356027481789314394377176472373292287081386821651800416338448331915442580644399646586333572066554247837215557070602192908310224133075704555444332728730523471138073919769043425670494146719954034011221940250167148729721071787722288127134492820577828923934445964257273878867487977548295867299131588495173349887720022496719404466173142671998009404767006396833077963754374382958123690447200210540502421739287245951309011537945939767736808999741806762037830414043161686031578987387476328576774540718232201455520746105365277609391569608922776025063654713090444546358588774780093559934779855729269697260615173887958561685423835423507459816222102927511984236746333949227238656430511869355282282386677849072092605024929947593771972216441334689855732756331599490278953693061411251914089836509503617622789144477005019384822691072703214953179367480834115376020928315744923388813491645266956994981654738972054700595844785886084524396666262190124875099238446554093689131781202934477000513572533751567626870528813733011912142390888017003791551793702987057609360859000616812588790588842919964556443797595895611371321478527745098122764487327278825134150577604642583616873895654341395117579130814518634512694609926950888699711386506058269839858332603348124583279914786694415178681653391018993529690874908200015784564389669816790086895510311090160371322691811532003521079729235125680365795066407641408561963552387281251885450141298475005868058935747226807858927960867724537640413691686534847483463251438354068610040374425237828236977662426046276811285240479586991077163493234683620948178501956294316412193676608059358188772503446477906036344991320921083574016190588024524266206327331895516398184875846533293157122064245393836011030098228517811066536915590634655588140447425578264887928087642073861918563323514759480125028801574104672931619194776099042735299465551966135967221796125898837659651117569492014263766293403579216165533439829689167258177533141939964930317353323044771791295328787181052876136038308212745394745301216555267010459024333406705659445839887613256761573739350297012700933382185359378815934396443376653527659847145455169517692643596152285534949431141572811937443603892861729904924298036950787422496888478710835157710642939184767576527495034947831596804230047598494157874456930122948826540000293341237137388457773904229078557249722282447357824976174255435452790670097807563552182201510202072723751576286230413940456727407393958338928745272835636286711266387549647511915265756917154937701070213033575123749699539257188763762185550149075162070295270217882823826988740250955256527253439864472451877768239677382381173175075954079420908810899329218515330808367252498241238312974883632214360842293859140572624876625381585510521684292867600642389634736503904370950170343013697763357731043481652668786695565336240811650175603920059673238000793348373563979207746206492034832996944328581212872651113092368294474202686241052786386740141464401698759678683330479775372497467349358121198714600962133801839430213814312444771864797997984647719744664130635391791653993564503698797457653301354904470653960547914774641196627714237181449358697043148257981409485622513839209511156603090290142873654012973581677425585756058305470023221237899260612414172606305168589190943818343778621967606445683005839120507785956288879255099297568530237186330304593432840389035293297704852401998800123203374632289194712900587173738719440080088606584345294026083789508049395587359209202830143539817032139114072505854342806821872721021520425592456193685092244472849540127490903715094384752636536992310809695588222172243753642292761430663977880628595790328696648227046772978357400589129590317518171415416791400006512826269788918007791233383614250751070673680133183879880146689414228343040321448421219405057735547487759925537005345074721306246560177408998540748803608756463618065858891170825386290503053483800525850282322175060198337214064360061447264323847801857388978007990161824798536173433030755896567401950767584198953453205459542952901909890369879500800000643164974993948345781868007082593698302661279489145607298107138806422713555448002245530017315987841201832707327554555729398165027274363964272878316435101842210410326630710586413627433337074007547586044525640746192707550466537381445296063946250539717124166714867879281432718245488791589735638844024903663663764800159863189669262362709274878822190253250620143420223761139437769281643095094709230587250304566759810079905620182374645382145941658018548270575123328485989057123417140428610845987098943514162217199838350390736652323614573329249155355020267573589895425989884976759068280541275707782850119241805332039235001150406949642421329609928871997475125491674620330800528908422158822108663850778417635294203643891737933564918858384625762244879762051026317499013794686161529958517418730884526471167725730522018501050191815460865363261682847959705883116975199706239029519639974120630459948227836746354733678064109747803935672770881527407438202806448024221440547356788142738615583982933157516732496603801565397626942348883962319968468781087231595128845050059760212778395598547537871089143331782967436795609998986005262608345142304818359089256957092084181753631333663746096476735890879527778982320716747739358606401524376551500187013821663659512118057586306476585548461108834911323180146020775257278562091411015605051263006618394277220480986831522770564474960730251227122399730617951740831948597318822868546146680677929497811381818986053994918626427712587987246692032667125139197219049349542609343879865260735002434880269467145373313056001871871624619832078799361672570835361510828931040537214320028503548044762669940829478900545802460588169833697524850644851661694383123056065733442976039093517881431031747901764179804951015771423423931258342211750024699869039861708334639300795315505151626388692255566001046905113108954624925284745933238255769496827163921925128931583299798274132452519095419438062016926653303478284018931626154790764742470928920500490632305777971156672017521317626061713201123906135284600570237221429010289848166936313515762173983607185574786405814318714522934136844426769465983451270957200188006655510992477771323035211573948474106258148710081210096577481097775035916437901606270035713387557034845939263465212828862915395670772804986625321377063606501190048795093446188188047589039077504305558039399609668060879691371714757223376042777289853209125881539121236415894559565372334582759217749878075439254796646243644895379446698397960473967715800935833017801328920548043923445085801403808951906457334460447857306345668004224992946220426912966938614254851579998062810020205516658869867396237343295858405065688287611811440167077054020516379895349269750634190651113745667870538747426201878791897777002305659935193346635835055603966183715211611401666065454038839893819860350428762404049100964085165127246601416239626834730632484924820219204622804370877012128118247925617119937860280112948798047167165743575246507414471525861293269573536280296454788255826142116268229019536680486913778320145199873257823004466056394600141578309186894374202746690642376990202865127713258593791289531777963699261018957661001718018851756623602667588753355722413635710626906392227991993805329534135130085728058404750641945389461652172672898725858137542746862415937859878559065546656869065743279644258062149550317485002955997176616182314334899126808555926233135848922815929763774931474488772422529277064586364458633681008993135993688168054791457398832521566787215301837597779170837031892648463335728351166144822456969702908070475468857123291308519697030642322038370095987170850948007276475094476866745629668722193416204060933720499800039269832468099243886197880174451750167556875943034445771803247739658827058893740539958727095196125164574230689903684573615500223427133846077975375335511777100606670523168894191412790483732964452398587909682192497880452329800368417893120129573544619434305067770672659620328820529185181761488722434299377855168978854377454657415002452502894191379497985367263976168957067069904208243684828164232877537215691480815164480926189122371643395140439245751499218527676863818579431480345731461744002946891131357931668779326231548896532871944773493322366801335292462482875081840925873411445367690864697400037130880985421409714548293494604590824991479401924653337886676856962634519659077142892068900416521405967474341166032033027374697804826281779782370390195592527909159348008936690879305835022051458404625095119795303875224034639523884823256325934703295709181591630637645084456936986998587652131411996650056085628343110296293981374228305589031079667414472758342560735899322989441001516682240333461746043468482194585239809464570504528501482596163046926219484954707056591134389380647234540030106796241448780396944515481675626382320998569726966489884744514734081868648133811552942390793072145516213135142570229578637628417637176729095069568573170507105493720217578163425575942340236096473157702871643628957618285122870055990752128486169446397100633460161419259351803332938458591016238917764677106283167811329704678997858294650889074417308764124018441801905074843187573135961140796679021397960368533442417927797702239141932496795048351139313381845505359850930984805988682567138506089859895291822290423669014308294876358299981840649767090814478975380925349239227084151879745409554098583533670455794131421004540162909282872795872965909854242900183780068337093155014736637595103123522782475886882053471236939513180966209397029572814240457974582832692823143168292086551387993772640414365830505395487457238433801573742001610096939587831126781726998092972070563785312684823454983123334505449684556594936148451853814467479520749137726796927392068684660908770197683611296513836127352954714223391539590564286578914469281057816011942943143362298783993448298367150534285450681691598158816580343485113172790765469276295152916184885446489385881614842118640846886163611977033073217839465930092027311668953062040663735324460219618359755456268386732453769551819594327764046358358535845170466993227662044739290554753204903456950175908274036927413939439005907813537535336917366642280865842130865185499676372626521429853440334339089593026872741623723822168844471717537131329017211444906577595951147216598403452251931617254149147292779065565957338802137595078138735773997674611433461251129391752452835886110360821372176092614842772483713027140055730825628168905685630090228317436304905432912898056310625829028419516429026776129809559058132753955503594774942936875775235795737685250166694274431326820450548974928574619126969228474639995457057181924115181084934323615721189589005733816864250664185214189217871968043763469538387168549033999579035081434022903309448254107395139244409611114123887838775527997207656484800529516321441977916656345567463510017337089784613256189808524401061737466754947231930522276572106401483630641921922878885660070778281132868683198382626070988271798644624561126778124762077744540764169454636986519008620432052142581202264392574906993473044672783444799216975431121113133867561695963919656997996901242707186266678000814383721625331297600450838169970489262768409443950478594479887744922816669672263766635665613371771009257972807989337921202031343040287950255406684183852192274310941969601642305413372515510565406916710019355564129544849817419927798285767426608361164617770882613693018275410267822761884946724520566893581356156604694487707949858176349106298752936075734228835512373193527653690737842759084529586099846741696175429352295416874817024532304182721793171248621853003883211112109892855015051096894805109713621851581426630855547666041112528482982452128153485872489218043575058934991720844693136884150131546825743582581073158777590045042175584946519067124393879518273882425205901929392005589949920317466706002494375206626356466711071154682569074778966529902976709590133176869336182487171527239197339246738546468173919115696701014953968402834717326768550108191896194879316378196855959950117672182689708076967911619850935381184542629289077536346691441296354953873963638758471480338527467573716452950739814715895543737850262041630057620869301447018140034685644445123049076985220374333173991126341473480926528062515020382606271974458342441511478688271502839344021848213625115069345838666194961952176569483633126147593225827295152910497720042763254214309604544691534610229476801985216145088535679212387149916350850380415400750882777485662152402823609947585767114757037145385431283298644209046900923097701720789856651701136965198370761567369375565457118506073467315147342525092586920794854970466956059972204673181687556996466230328937172790823724010130410418322856043320080353613450483063419550193300877736323974415547931458955185046089425727204842638890541241443144283244727795193771741064933801535503411714447981734599781499916043466863190563694503020355406063189124043661417592157021015752747149258357406356994479528049027373700278191745942841788901277846727718229575729587163359454871630006690448553900166096294653755258705916543292491704211451272557959925631669076482977739400396007368608186087359162621382204285815634807797565674463747328776280817437231393060822964111515559837616343777453063883964728179345162449961633282885047354772751118448759375169112795863180038610110630279376249985963194308548231755059269080538391572999781772516027117911536294862907451215969225884945840584286462003987172443032573672175077582364392001408259538048604242576544930687886654017436641110967942449597735109642878550128201591063165713004366480808747950462457943689450091288939833930256028141724407366870670186872460663995416233936270858818118805301640246375097050924429333946303833476943479720055412541904216525595880186239564143573494899446636386327517546239656821202131467203065625931935634913047110178666396304630718327212361473777529364058787722986801626482623257268009935095088656488718727204285818718022725833322053276819792758919528916523049136861675805070309517440750595553851239240347405446810834867841297361323335251465648649504055334442559086599083429168445222670054448264572657133431617440783053817333393279244678937317751553248889407966631240721400121546295458952462488312234242357239296655154825998518618829129947839393270727431951366386529566268776579236383842837588678476795930196260871795258557806094364805992802108565860351227461423577366394581029099713271142842819282122526796258274201903636355687132313736796773465118264723850909941343590276038505079592191638500548938154215445959005303070237515783890659511866624956435828766016550863760531986374488411349786878658823352748287768893714208270207938721124354828085379595101251644749295269403704387702472742826749318500833661844953800163429835028197851387709532206245159621334417228101371461452618177863539399631401935893735826112464769684193677716625310513275220038291388503099111748048950526487216646997928699024131433330900076644006992440336424266216638458355112142475684459862822579536297185603216325758312357043210081224422900978469303913954183372097539341116214669890497152674198217105758154805383994017341238184294606184186413275612567017138664688553264449383947686342138135535247864401666174226280959419839038773430552942644316364243083589686666963686682634366764580867395199401105638111566182648268467061194842780781779391967198943052185207508257960060582050367933085237623291038091352157776686432106802857245425612749902577154036557630279485110991154336967124293150513795002873715679826181176253482591935097817793959471704294176849429615608678121581047992661996768116157353593853294006869753077622869932302764147027208141824319486689953879620400194827336922670082764163215687226906597637744470843667722168420166640717290415252094836827354888359157182316123225752648383883236288426548348349434688543243007737814526207550514119167315270099347537692411762834533665226476702398159219847861191647066997375730352895562053890663547877048499788020413852325743132110499206314293549755357983441112234415509233215214656167802761277378182738215571343796350624945970809647353023206787258551666435968784860030713281080650107289602951267717288665966636010848980760070130287875013537748534714067617031409215313521813158289153105337588799024387071011900599954749259426764256174135419389325297655022151566483053296459221522739886542871086714473686360754993101121637252922080319239326746565781722148834880940357836680342736403423743768297627787390602092187008079074569729225820907775430580780045081822149414097861330330795246427666524095391619686810854239354360061472791321497148791821802940403672879509798086262742972189280609677790820842200506208738517597176937366246438104615802836904733572721565562803307036958912126047319716100867954418717790847386743221664090879221302832253161899304309092153318321241864769727293270688371687671152219318195386940956280230370885260274312568839706120670484275384136114431089416490546974550375626062100040489817934095962125117149895965258346400978779507018092483805135875374965114038010150200004481493211109463138059363591957437246433342654694304618872833884145929534767966449226593189463327877459222676764513103086087308880715522464882499606930098613772484392772370557031199840723573669816273659946307592137016474215685409846389583777055204244573509247447424619085865704049222900350824648710369106981838291750450344511364931102114678947678706490061659861889499168066192763645056041015187323463208997374692279354058817415244877007390435430143752507248675890749331031038875026694411942113846229491117960510464385558619111002676393936578845293174677317039246018029012375032319263482975195792273290502449407287197687986994109803886006150633366527761758357554277214034706363032283909847817833445875881375464342120119520417858320819350879199284994004194217007956268450456213430283400058215096474124804153729729634346620311779124097211857725930275440593140708505684117425947500563983229061730389173335927286387768960007996705897137019577406837558515544851656384140092702977239744653822083626599487047927726036644248202821942112388817999910026777797643091119234620017867029688509910930092480102330087040964574238267075688562631029647660789112834750620508176551875237524851979345728247922152591990865425278534321932133052540720967755790644075635152014930432088971631320274744760135508423110950079216672946045795343313676326930501977361945459815843375680687208081173496544438530811135451697598803464259395971773688623749314704834665146235591652317324823291608794950837624288359993257103533838735246248297581575744302728608272685898409597957259729130903615955656688813659850364932508734039471994588831029075118819797772770327997407341012654918579190772068936326629147530766439007496401464230140088778701153857008087266220803367521549175790168050329551757877604269516107926409565746339076245396021620211999575960967179469849402720143045281513200626832372773244062881913691091942745386282035919117071282714088181752681346536923138691763938948784656944444729637532339568623533696952617513125015036444870709730712852404925386235291928711102892657847325360824500442857809462144693441641638129455786543928284997798711029706957484791811836875012892856335034579134898032483900646117643403978519456054235482763222842917493624179384883472891889784191507878122798452478684708411238295037329648681690552360326733917489529420735496124120774095937965196595436098014419546201910169223713708938032612712343076415844509126367094166942995681510714013731045009930723206624129060965861737717819868627762526990059343531630245462002366255983921580259789138475113232124524194917285791502704055255482221375229661911423147985717960052188285189499594347333449709840555734208057995559938434595694694614453859726961949477539259048317983040729195007980199168935668541760378976773592648308641743195574208310912258386569012251622912696784947468964661017884861186876409231063198453130505694155028179319277510645861167580850123001216143515587210311534820177268462600306866204619233545064863744880048833792083137882921722725890797110175523143183130788830054516972853328726501769342121099684974889864719977238441933186800999299706295750719629756106746511616200229127635123064823103850775530821398816420400493734777810491287054487145515480204778172374663784194101726135595122168753780132525426735452292132067834011147032487670621069798230969626784677586695364893732110336365419054882079855125323995893298600739032911275671776732649351885197793298681397865741578387907232589395091529989465754897509788601197015207990028580499615905271205282619718195772986447274622097349111739414149969716940984284881984234103335802805392697513660890441297153953559043574612658757115847906238025185608548304264062506365620452354906240928065351995884900197762561674796644177113511160621912370820349972428319285852984698064638993803063585242241767440813822561974675195526896394435661699541194548895766328565707431370307775806092837813474272798033508931169098265198894239965713914362077463182191206540311675714110628867545476237919166463501496966772129042882768917960695490894586761557397303063606591539141268223032278595874396226062103744264583485487865130261532147619066843912941374685417559932651185307767291058561923344940293255231577344548636154135952439698751597112955847846290941506638475294019136090050814001526899492054740528771398561249282646496727636111170924265327121996500721208442913374613808243803896762020967150815456525548127704981513598826620751252711669257919254263690024775804427074278068025004447748937696096609053532362453099130127380261529729233753523666877825764221740843269848766808895457623786749615883506591886566798529139363093926931916278647815295602761056945493363629221769644745954510294134007732061138638844429844430656794830382885734371150758773828684731250035972307418203033702760582835117847539105849789654815051311638345711542813128939287863678928352285923178275958745147133695076794037828303629165692502227690286398923491898892030011255476022721658470836452020357768131127036132719882163117749863201565914247959648051547191900168833319186356543664852449870590382681505680631078356961012866042939535025505176171435120259686808628709395645919842524077192079775593598222190334402473704836899981619727982181838523993992163221620308837114863165110697601788764221547466844838833651881785514410300071103543478179306499755357054936717830872679650592629774580225129167032535455320577905873657281416038159688085360096813546936385081750048420735148117810115928588320421306115922156844003724485521896953093783340595243931335371386024272646305315164697699175990639272630116077264989955465508515128397798703475287429580592461318006863169428385215716421647938123373213017202691564049187996757726266884485045238793224183640043034530984505538392196140076824868340352299836530160559321331781723364296114738377161817077855016728696602663829502004059144090734987826804006918184601278295062253499494148105635821115872796714180271756137693030277670203515428526536502609133568702671745180872964082914880834397183902268442189974095249437775885007148830343089959140926383536635857891159659195555718296299953555219412538297732012651432415274757066708907981195198068614961064097127048718118632274029778631025604785661436038571345502934219294322975043472455074210602450288634464561506785526587368546525532042709866542187433126742194811967714285146875020876793778430097919632085286053047109430256598441783769208932108245782220639363157477653583164313069718544861256969120909587588558871241190322805657428623489555911688799297898554429703312849697188533994129460143218504938515958264811244259921168695414432883785037201254312033040150960782127710383941859746088727967043497740059630522087708806559920214082069080583982359878759892366855917404981220062904560283688039253047545908455632025413904243702525311090036764356980356476005586455248149708231455040588967878735976728725346864628594445479412798830030599910882351156083605357756848569279168048487905101112834710632239146935437720819283655756021532748923940333864018164282304641311248347538878155880007853548423204215220232758257346660185268063121627535484117601089403952924256613229337157713929175474551619288247047044132626671837530850326699960838334115456752360634150664689941779514479741612064425941673374861325854778069611242921860047574190749693526077426622422850965748719838050894251194965587654749820167579730391705262772940670369032745718414782166354012332392216964036674058984713425534333953814883865934963164834330286172823186846021261087351362729926810285545834103005891933060862036694387606383291166461397807130012044797026243738003495898731900044913526492871507254194348787535769021069185585162179960714238797531055904625893823914625385812015637035604799887491317954816362438904012708555082888923352708208183552145674581462241950721687307778739297926912213049209724017952751264107848044328794868755721711561652113140507025969287038243791610816877468726494783202280160058936493992690846569429730544319610023871620871389046207969153244976735138567388767964790962835994201693613843936902247782019193501202308128694195407250759300711805376775048735489807839958168190860834121114991287694284451689065220278999956904348288586793795063643531599213479146600153328261174380202508153035773193528740561860398697487576684332425458304146079036230275417357652347951507288360626883093545187096486112200898704315643630125019018198384898088555370496416746645715915941677609010759928899495582659886675038686539963609610052313086141277184770662497770619933545799890101115060263640760492544987391077126477503585462287830428295501849160941117929117301764471724020555652137116282834290055820804184853101240374621022737742399924734153548551477283360560099519452046197357536931193638795455570650072751403524451479861502855804615896157802123418004479969069159166713285011201042347533932114501331800649676536429429327255875885228240247647492197137071801267802651385953373154769588640734027192086875276685020956975654422672328598593644744257127288003635719261862125367358237292492062603002553421338462394642809731071957380186511521538951888655728910297792573344801898910888627971087685239832585730562779500264823492079853690631795113978452110276707720281937499668898036714034257221569071884384854901573058322276564519108247785173049117286704450026632870833493731216851279685694384670137472415886199672880354070556203373129811022078081295936659559911340679013808747337483477654518059318037898324623876435267818621601540506044322590671636029804522602592473241005444472293884938567205705909051108431730055281108166045261189754596307910169854811849249339881146110377966174417622213701966430363255513717541847237116523688970752794631398678281399371737778354715239428618817374623591148920285522078778751713120458835027664241502256132401333732635345457955453477785936724338180229667545286653203839355895255449098035386222885201662314265520690516879092022151702000475681763113787741228775890167850050462496826176492171497411677987689824377942186626548317650418440446858318879559321407178412334594416198843000960306673482876410273819712069525575698659209503829997944128877481318438883238877285499608449816884669263497373441089334823922476320350390002223963031766936541249470812986135770803192423578291458593731304659934213889042702133285777129593592396238082246006655463159747869407410035107802490804120367323936430686095149246566127774073170570194379401638286761421052888451470208937489717677470710487010615095640154607378895344446999600144835653576267176339236537723423849671611471758358965625116043476183407938147354049814282919754430487884119702057198363892107880646818104287124050413168373527819347815580595130557704362532252928884903541358415993632558948856564254741940627883375761374097199787485828841316277610241384003018434849141639042727164214230004594697909549105541886359464115575399121629297639336296478031064310466175338578941374868113084290761602913735418100491265408734559219684508420421072073950483133126425486682711618037811238620629109493938396439367065728074349827628888039838213875830203111836860995589174140234503839273403113867593199541077086134134357999906908156651307067378958084739489360314294548331178628786981555689582861575083029007567027673303342345806914341334922764232634698864272313768983166737898202947756766231783205802019592148336413587563934527477412632617948442004869630957368047961872485726488126595216584125690385834871093029992666858372464952323363040785355950904094867523803512781759003433395741050526441553942839988252274366477092880661856450619935941953088150329093263306798816936079343483968695539285092371228243895786104825110964824332871272112661825188929924286827722290355260774077630919633532900769278618774984896978879538793248112438363904465731636828472787416476179266739702751216269023690509442662065234148025587586769281474138843837129362440330749176096905280641590182192063918994954258170342078693647210563835267015379108237928875078841996904236433270186240864420470396012124839436275776725771103448092550271138245673178186064741169200333229884685808340174942197667358815441893113093528630660760155234910788843128481861756053542412634733310726688851484686037700120260604127320953283242094624804366913520901093923352977592832943793948940504459193475495006790615746184955450155787166395538480290550236419587945989330344442884831545062679557465729496867486771944271205652232892495120070286930997936357674283915674592894722824331863583836661289278821856197779375430502944405756037464105288106784657581197115518552662495809984226214465138375770154010378387660254429225999518977494328892374148660010733672542129200976166040960286849848524432529966442829925243570501118649485306371866175611510543819684327063092443269564241848587664771666063967391910786562505723284956823453076730460636608011794290391698398105718926259748135046580668377449841814822872161554207845713897409275615745923948764413759599911915659765995667343827906721151769817812647118445270317287443471704914614835129307357921907168750309071477622027154491517304739750855272703233073789102446379365051849979641056755314895960024427512730822341311815585009816314046788360167684091318366848730156139211984343657121114958009923178879937391761594120633258342902756290620114586654050149334316538739788030249624117041579930436770417051875410483303934836069626854771380393503572238912019799190218614387230686062501320338327814813463142973070052412015897747676910820470445050702940401477568481502907624885332701146095628790296908252995527585336138729133570886418720097822992705065772333975827744938419712118962874731834713813651263945097556379070259613286636676730510590005385046545834790826227120926618280299331669960300186419537099517224449014173897657531786102779211059735402165826103161038351901490030264459905218645779634046529592552591500889987348036824689266485883406315482634140927761058278975824549874868865841873538223104217405238424856649417295546718572412050247900143942431357441964841043166901821747674954181572955786687465268089489530527724710756538803678764466429724961767698505297169218396160576155440654087641319807017687422993516832613644899820660578176359494479357472458069338462124846735294437504921665802997593852602060861879056033539567800394628881558804564685567421339772593643036565083167162233679182082971143011763847718812485901483074271890828810409667480060212408234262734785475030245155198216205731117494073608374494376852654978756952381101659198942528165877173382360409546671615115343127087506353272088820176275633556061062607710190191724862652497182777551575443467717410899634698861572092404375246688761264901327772994847206819561863114146572735400818097464571778006533847467350716099636163221967338624233802591375463253014665889220590119145753791390976846768623521063093147996830499479186611700137541017931606550688593373040313785784123836896772202663802282520206459122453663559301659666152639739751864101111222829264356773529942148217548905793309594224752578239977750074200422327805791013981678528383177431192865026704888141861484904556816230594909842711908816146138933210202539916046139771777569623155104181972154895543992936039206451369670411363027127342872948556086243458395123350519690402566163218350468537468418839176854087217643727325569593598457617255011189158943475608788071632143575586799901584944635438600330267388614488642523362489827664822595139277606427082908778741992493148724690807125472305972446447613182718557504091312215743597813293517802851893834190822300695600901589635136702761762718893658252788654751552769962822212473932445326406590587122339541867253684004859479492788728668477306431448772982908307749085557441371622229564193861220537670965603757798556770631472948320639754725738007446127805180857408004290360218033521769943672417888281742376224521062337852431630442035754136782781875224573925984332704014120099066754210930990637658281998365489708384993628175230814753372591476360854696533204228488006137863611296277323575248011723606230486588327480628053785730389837097571966395687270005359134512123413018053257650081870693797885449497279016203190035854025448930455138663730188679997218973203457443624660315701232821691425110374765103087020792150344171043270078265554298937635052628304452950401940210441767519801065465822062290957902522466507461593871056883473574637149591839813506944549253363423227898209725196618181511295773051778529539152616917609565681547154343583840342699663869692237101833356449473057985143222874973897980310677369332790006095119967192414587514701022885344281320316685310549694190143968125307144426803876603153178402937566495371232407594205838481398795095778374573556183140602277586610594358987306172710265794144182723040749525949654295865805892590571263905685991205703714675966993493580207079974761206547619627110900000286974038393034659406681249787457095078730089429074564211254984243732987880740550562587856576028949259913412810262993813629385974700822137935595603061614330402733200651035053319223447573665288059829245100011228393968377789042766060713409312532336509081588078488327962817299534318224684701959491155501563484208426862876436596882448777037430188888778521668901714939914511290594284154120614553555362081525750946499759592618657195354323222346232382944322088916685306692155062087645966694619969557819953400960100762373673632165956765820374805935994341372596300910017312350742435337026735974548579277932893586546850444162635006751096921616849409235433446970021527338599358381011084272093889902976435638295347578395378141310891031173459234117700948694759448566567249970493420254161441918382783081549771741034339924566860809163735299319329349295980322870608449172673667482578586946733532895254101243281267676865495561627710317733498308971450456946982428253596024433236481326460722932848349598673707066251741125433011286905313360011758451989021054533342337718251239625612610642343575465653139262083489868716753243499478034491402328167449910497907029339542948065211657816635913962798738994404495888624928497406896356120942846139208580492741447056584438538338792228183548390721224970390479497249921410612910851213675701043459804108957688656830159001636418766431662025515638887981399915990815856549555722147058545980954380286708868880065157184380991532907825935709583781877479842499388600531923418619042965714255786154413787062978744285873875302506243249291022613290213611213342987971084403401957341402425173532444733711515996633945151772490136510119987493763554662514572699598161579066162876578838035323470988985059335729354317288592509211769287409954723444682183544945069349043212227238140256766843821246574839551453393086175758935575397205464244325599313405316234758271959107184613924180397827389170236168835378126653487326816529524085492106496543175021399899301142557467648818126640745768339642809244690268313384296082623443317398983250055156409356822963724516533391797533576757244284589337504693807351782312695381153867200928454048371575904156973329930624275880667044219497959540807384221602464784905756918140523780741956446652618007678534004658692212630183598814972559261941603971756330454796253668407015363579023144542645948864372389695082058099543970907631310368902283847398097814016420353161712040390275576551947879068433811066815074006837982848900381828108974098884772068968163020515682434809989234516377600740146888722692668691345260072767500653891283968738234036074018260606603739049175066113092461080012399974525673469922248163252348429435784030777732607314518490764708631317246521228499590657418388510412051414183094601983556293958695512365079814290368358296754635656639187645138276234650984493022544657425550051770289668563705438594768882631455818723523663077546892768021426966360095312106859016154535042566247874373724892609612518912593774666972413365062818984923391523377064942294977459092396484332089511710444814366524138314855586224884010051179333827494810774147086553778167541474398332450045227320301988750204065301812279026374478388246064979365839525500032813980305518065856425065905473583044352502654636218935364606571699888757122113523685224506505021659566679501626524097236595321346832990128915985075516339585090043513309142119068664640331720166928715910759548944877847045152083723197286318887580823033026067985690124259889704580795673507972632555629581827051305847001368997269059361488129068757283940282710240898303164370007978289975797897879091832733285909910980784643915807199295414703771823650257037358794072452899530329828934856802030161937463877823445796725032942038572473197480775738508356210416320820744118359234413973560620986175382551410341867494774942948279843516830538779881912427310441317886525103211983159712833606974882589705649648493200306303890646183057750644347439250773871636925079272025584092753747670277572489818841578380375773920676976925694324029873672518732052857150288110054912824695757463964498317612609729303563490431947800003010943544870347708516281369016029972198777715978042643008001558911895182348326703417175780672137579133149474939255372124153599731410672936279585658449388993628227662155986328979971661295243550913023167733284371684072055796985431910455303907737159832227298377633140682445377934125342751681514984736747891152274697738978138925480937040865761749522824218223787034824556420101381895121370644934818352334243718515403888589114958321112819398316727600161263478284355335713469266361464358015776671427814112970311653052605933350454104849033056625953140612796372689468825956075645027635383587255631089868820480079043158734318793292150798330907869727543735985270707691212731538060399601256399033167177397140099298237563161212810351042150332883065994423870146022880877464644922771685390147799747014876773581678609290907881093309616341606713429120730681517323318421611149374159499241145035954148203045936033393804215977451824714551421099355038834346990302418714016608538127729156749281659997470221027362354361933558162782141053694828557970371612776042341198807719855040238950260510778976128310964314713408244087988182729212473603828673975473711479802665948096784148382899441518802672600683681480084657544170409750113416369779882952809906189646857009114509699042160138351862925825735965248479869870633861860183868716574173723657797338385537462461756666767958510360797778990973959087131139861156601440567151042959432750536661030753168713060928999371733512227677582345529692483594740004392736643892792873738986067167669440954465638416825254346329259222317188568681433332019182129579816059074240047315567030123748302217351918870362319633879968615756012237548365594599720843676203505208895876508460077357433792450595905906680586583388385826142071601467644252896347629068655372260422969300373436399977913494087149271357911542674757672725329017461097263367838278514104892768519382777398415046033893418608374796603830154180510423608397688181842104486227556844237557364324168018294635240994492002690368904759521485163392149987030234506921096611526004424770324289339260519098059337311956725462147451873877066869298156349924157409894167985883458881362858350935019910238872918947410740948704727958100038246902062339231173305587832010126047666757431784153812436355211815479529941966529932859223550540168309773100897041750030771026242659436874639238108946538834580957699310712265284536155621175875999111846166138617396341465155513016266846282295451310162123118716266082208672420104063921588433937232447923115813223892730430461819307421000959362911654161889606363493967087064367353306039364936445716046238040921701469392991657527457069151233170255322113493154686243065333688067586804902656104024772005699930014565410537907822166682916896327069466439646466381280569856022866300916735621319095947819719021760418692850290348474696050682519964783605403265980812015630933564789039724894634783204909343707717010180597928284325712329283031752982601267975602802375731390680197800126296711657100518714306727387400112284283542727301608600197649067027648177871434061614817306810296004535684886242475688652825254953738745092017194623853526498171804435100276235707877650043445511713026667598739487525722176921134410601052606983035491037592731932852485107331422804724069574802756637653578827168038260992071656916495888302915259458312539252758127449863353218084434827762920884955269856181687671133195289384524510593822183748675703820283184860312692644587929320085407226057988160690129126629476014307358612734934382861704341393333767165604851210377768459063052144586986619950801688280178342933247112602347290444521715149822061349399379686860340004139873011258634284651741553402775049990291140590172190288472269367733039914735939701101832250597729333682408250583897805088508423068277947295565418896406305050124491888253400997490870086515704840731709883729747463017629519141792952834191476997437008581529633850604257753256405745903174301621129325079413514600090904018840558048848491209878620718908614284430501045300632233788896298052544083186436689198997718156830957698336103362918377692424983878487230425493826731053619070276871657005869687486921763315903927280014006758412358588393443888759486534079533870730255956145993627140293760167076996310633190742066553882378921185305497414245866875666329280817165325324563390166772151765908925223530948817618501952344295988554447284124424611139991466477276951134167236528322402295064891104599151087998471049641320049815196315362258517425776358114205040344785476503215745848166597033542271914843105096532649219493869908329462327234087710115777786511210196993239624786550825920182022586970635450139301257385933526406750774305714115562813988911053938848735647105827609312057534111523569393256628631103612761497681307245350529211872804856591663822771727251035024908973897620936330907586282617621072855069016286556488923848397773100717552927563043682075355800575453853838648508781598166863004961116432990330699613902791055759911747887985909386790814250303732451068724502633387180346228087133822979281545663531188243778148907666461108587119201548701309434359783551980457313133473115287684830728846222984174449867485686343195710328619825555905816806926624532114947504679811000145997435784617223830537430127938175598080254555804483637580980151467505144877114569464682121708028188315325747897081123530903152688345063512460979028721562764376966093766716488814885218639360327922480687795239189602849457871218245574165618816718403340146490632783859443917027073696411494687060420212717920935855971934470610641291668995818880789515830101035286941400158886825208819948972389181071025036358360237621615227997589465786152407932461937658041084496298745316501239582236365877100177528410015798533506473612685503889685709109589714034589200179314289968406774250847342363814414283200727342145025036322616568581758064356283425200121232130219190991973045960474084403949799304802027508928232311182573892446621106003441661693049955532176403394825457944555251782065041735746081836242104751343576912783358271762326700289241223144167424458370643878754571315266074801023725405528998663498806470115065366823362638157597396203369911808333956863654108263423893286484599507756631700933982324938037376041275705223055043474298711196233593637897952649230312174285936474497213411960526711014416212133447517936303254651885519713435466931954876442805513773097876574896045714303405800055944644356461031532081101868999614665151990554580518087157179298823834962323500747261260213670677270755485671210452323085739971940189374486950719494543625583422600218794919485867538269331682225269149005085087888808015630464988900243804915773181299473179910011300093610775831824193878134057006841749166386201816565273321285678430497460242378577128576304267083413241323400552410222022386289218550843924351058896656948325300286323577282594284820080146615342634034781230812749562217839341544865558865606212877133133778384807059105111318885741721850384494594370914569319192048532302707712821570500282826286809873847240607881272404841528028445270828695165092464542986912863564394075560012392273000508695661284534654825789307690801281187916808141843233723530359282495039983935437605935299801640445089729983362634015453332247409307521722141421842483458342540988539513645020905629608602576083612358019326041098363977484329644891445756418135498546298089217039793879110647705937987118697075778184213423085047256436470301117516318013562640965661755055562254832693977410003370209846300878406221641932603789202956525883051489182069887811636654121782077198618396740242263233224574671751509564949061590330855208713446880766364786034004558259584667199892646104727838302553438811335509735129126075374984944397141323384930677972202004245663746464455725857585018173645216079933277136677841269152073599396898428449501275416693973156571914178327865201202276811208638614643197141748280933647845097575700660285083710579813491147129558497229580452844046566580987358680311770052779833074618491979162278722021787189983854849330947744394227799057153071341384490839396165294457493525795380790824594880011555383978855312264211682749053088804263974813749889299127726980871227677129610456539540345779438053431504356747056235030097157197175250054700812838962927434238799634438232152830210069430909602230642959842437244858735055239101944216211398440614654119515277262303607260912161292360889453352891505180078474848450980135919051973561144123209637741295883105827009500083303208704250325817507881694985882987256863988361672313748751376639778283400185849853662502610166632025385089998408088668906716276356949326713966711439649376654438938129222649842930144263666429066517275775535614269166592653733338813750063224899282417531742840355464492077756497548152119985814243592733616644574927021303096024556584592490469187146041922703052481675208321585349405058706463181556655647986432986315051754901080220444011187768113597904092879179492620034448418792069374287433764882006455051101552168135842035968145477276723047324913019453476214453232140135516354818100138672647939132759071248607752530424892318459128460627354315856222705431397508784408807235306878586684151807673348686493877576001007588323648527703843413460144615051524346850245146077685164050207838785221976360442724480176328453171210675476846031599125605164824679260324294186773318577555153403751687578541574191972336544094257797608976363294388539481203189472045793031094258516506590099625386536962008460695997859163786909026565770659143524381926925712230739182363160008304884442973984449483249410914379061388815493632829012113105281030730293183645396842596237831532299949045418698497673398697042620120320440024743910069884122888169344693849597381939150096218527196093558360252075721878399508928979378767632172447693979867636339255650830472798192761240885066353093680976668834673341176769693262716659654983512734730390672612427215399015122959142619306225259808123973676764721794449402317886898371595960192097822409861710983554362037816078104617903047836917534226917630758207344483081965689302302453575196577426815594181304794801532934398871614337893679215628690026375233000722469179693146184084689137009321694456153414563811342159723620807950097484783910418625142358678693585485187756581917362949472660245004036385648010388608231753539787574993169229407180003181572589884907096667588560914447844679456022235507458185024650876981270108588384378902177962442366905383674188561144739088681754049800597981390918341003706422406270601660719665739199198231413772823379717818380003264775174146779456518053934847028939099996766710764484095203297707497728740898517017739472444687399326830110910475345343186783499390238749494663204905944047355085883390204587260841996469829012640772139459648441542941479786351302554610749800876659449676230486533187083749962922105043327116029470780393925898561889961238184112593995149321645189373071594941492603155033065339463470404353191228726580109949033775402943567034232953169417649861202620513851842115451360439365143002323080564198379626708155166449183651042836861378816630275550156038725004577276381773700735691858222211364915273278085241413467657395179045327348878173486136706770644548213989442646571766014263356160577043969996849991410063193436376164602291620896097105735187673698830248146238331818354295218651852831014533205506639417209013299024473181803256854424321072130738792663848662895930211448508890741137654440338540801276831395980122184102238131642942776998806326831595009397314313461100727031643129217493031514259763753945080449240080123244324911508894879935312312871248505167523036034250580984793078825690460546251437599301130951286164655239315238169661128292600501410147685377083342945384178628262030877613517713583568044397521241930193278216750631198846297960949010968158182120002092421368545426735204489091241139594335770859562156533403304269649757945089917049226758662150344775581101055119495669342604211757027617862899576166397278515077299357620732844136144365801433355191840319337344366026945799386545179422522120962757970976166525741679494856754525530496055358302484248268114959804657915604650059294338124245613275988052666891916233840687538280078741301159937098267273108692844506133724012657911988661250230338319066454032407544081892422070862871049721267360122163829372833774943254027248362067690676372308962468103243032355100239863486294440467917787635342726237657313766646278016433450353605585385613117595533799478025461920169435814470852890046351773971459662578099195821608303866514138302958426519563209006018964727299332515828957607039017120592114279579120857873760581788568625929345468486608105881140048459484878524911360459995381355302300994593288298947641649844653956295027799136977656571719732893527408422657815576984907065211322079782887325663749899609413071872197595391888357920101296281923455424828099884286942535099996720402728071923239609883941142204685673364230825609366657618548230092232240968401761209357172459966603446660649559772094526284926317817053522653446540750257905665960292820662210630302188354802783095987864054655047387307209597437018579591703576365911671774507568474076820453667261864749343010953367492256637712907234182078671569782541384991058016796387920278336199707748776665790903006980408055239591021195258332570666084546863612052007556802091804071883874347306847002134930138143933608058878702417968896863229826907694994393174337110339638898887554994141817180619065732897131792887881704933274474701074117641774879511302537245767014903581280177949294878933681948334262614000506097348498685925724867011156983799796197191323451886981495211417974159991615170545197024816077766473693302478444864348947898049170323036999294379515337720953122594648141317699899600203767973161440031422596757457166097142623030909818435770057921701111228544821053278013529126621756715178585666912860187108267421855603534609541242331376889199540319140607024881902726348414026108281828841760977549659634699723631138062535035638407897478677211947544251819797449593103262898886354261675539238557869023421295101710410358082486387911710071268316326294335916096680913824648147485338858983092563206472833184966815072639394298512336799986457093701388650061707158370006946279682114733218977699419471429578870244439063929356911300620012358879904666084813873614452200091632543276768124495211520698771166751152356569914222048620345685455899660195708344005206964710235329518722705226083225736674958807932027834919098343565583683056312759048363276406248683874988826316415531430077791797447056873287392779165637443926572736160548258871746534787103798523603626841413754204342200209548604315023360131253297800266905829647544057601051728809212005032942778007381371696462141280402104595346989641050444579989039723236825108650077909340797927853850827446307619688813561781668531645272459894802810806087759672058401490496981710264509426919473054305573781347788885850941920608883574767363307136276255288010363500131607662303702253320867918765057852967540198478511645686458844887601722179476381796211551912325929561287240742350939882575327071242260881769533847007304238914021994733284418871562669234023586029743980927469235038913971497470915204197241355893169254419219510662176893343000796388836081475677875225746423537092691323512929624752301937281359030163922793897697913395703995394146698158147415789614063821395102910684746735345143560049692013612273062317717817747458276862817514299157736955518976060842084859857915016129429320429941301304591499657231640306752145772846873656896264601900724493504772935009473443525305272961667607394296341621529972062783443242707133791728654718596182382607174170808654334338785865299343917671820736070298235740502154334532970115639550316504893300373752525714863671701442820837634988613057862723496981801071553087961951420782123504729592733146728122637648696684835432943572209049000350333783327479672589585651653885897597998886131558738202196662016843733704620032487396576648998424354648592467463893271864744232707180883329967703819259254364066729838591058012197251658291566240046807990902913450907324806467066025450518107398558959787386615086681267660555944720943840017480343925968947767661257304113013409105654580315150788896011797410488173993595441921757619502581869114859907001291926314293916171209018927293840609813084190105905884401794689482534196475115876811258235652781570644552328907794200837698329407452336140622115539952556275314909586231967656378527917350213587139650035403712218112518483528815953894771851153242150612577017886499701640223952867975864609994948967296519803489354444651090187849791019320569334848982667792735513042523837019013214351216801647007094649688971862162737600390268564048349695872262517348808769961602931418535066563739948359337512448717323382263255886148484183530854848767225387377314409618247138878359734598683312436817812806824871884546711625298994981402106460733554722925409060249852667466382575065910477414383262494525412123164890749414531548110361973331766867843447293546890132086006050534141569866836944353747197436002457828420767580565476103475816997917993234398888419946875063460015245614607847271340141207604490614187871176666784423467989041402105794036195344460817255134008805929046732837265743069218031907268524453694590004209373800942530173077529190344782638595770048129739450318785534772645442431597028977539245097485116656494719154152600944715991110654351039229619451583916934772773953800618896907339736331582446997147582456905259548994744903409176290242021127676344374098153380521792750301455699834695467692840436514237631639766124524654473929118602351379664533654112115542761418325587773538046597764812143186397217251909768196019003141209200157112837877688353723001458849214126162893107209843745122346468411962789933689757924941852447356813042813997968137328949979399718434675048478008532373821791932472743551104773216374112090727188985330608551870709178552774538703882637896603248113057508453647426667781675907990762871935686155711833581112204774849484700697304973638963632251033803013543766784775915196660776166168300809468008108632283093808990934241700703462751358501264255068854732114257604096902931378916298293042652848597450124673665157207348945253660660190130908456522397665713780566535401990072305346987637891648769600813075415347776964410754661108129417250520672726224948755936441547048723092367293684789946158046894025201221348885688769671774648368801049798430063976906975005284677777391453778082933316976937492454890540091494089094456777989841038758853904605113381943395508761481876100783788085123953624294625900184682636313773063957025079806540718823897633162349537290821570034148177376937727529615482790324366405519258589056480852273529990532514280994203014748789786737203606149453980079015322112583118850584861480840379515859471183749890756193483340271517017933836823806107068051830819105109979009135127875185055988084277268810014494101701466939119317632643116511950276400428756736433180281761796827889500777580058806739485214170306278383383069994708048126166877360247759200621487596861368224120808312117011839943649367071438508785538803691265525886452962131182470461834036938801558434243586380315953681973989253840194324826031260984869377447860929911778372376676884835732138719618629412353502602527641129502015985182883253022216173539845472997406256236964462715237288703105463060850101352388439616032863252917133337700656759218131127119384649507562837244680650307727361941686037569552423234426527593420613545199578477926752799869606483442321410754542051374779737886737564373272913525210313294799438008864549249202006060431463411159901921119475908078326783090026953458769481375890283034859709423640935305184258044635959576304877009136138963630975574894884791258977827883639434381520973834814506495132825406627027415850195952942905373741024607798275797862437571369447444015889557758204465732027653124353511873062482362447838712867536516122182911949598885491068850586784894882833009890772325303763197500046820237103184164812765552909241744672298743225977220191119530914569516685876715881239927823774114006938842904106122065486835050617891916745612103548720807099849958701399804097225592764173621307128110434988247570699589425745729680575714187987318154521103491938562590011438151928688915156487373386226913455802485396777811813305595771867694048719656166437955348394801873708140117528768229218609975268522406567475173230706867927607513719556564820362002086079821022588630956413637601056192016278717950600756749049347823114379271149539259295117301396353820157344265181246924962909068573245882150486120567119875230756549729733393352416030780937805932265665415523474988074217505436191836549924426952585809542247749429073693492706363336639128267611207688799206784822069793371669149334267821655348676075195568273000394260929157671070025264111859650348289681767808884345921520670263985936909549467305425943990602564675543347701007956472194815538706633811510988516518408351931060367060847953630393623184171475856746847641613506116740808980924393528126641915683440378584325377654451969313189624315333318910713218955152051865519593674254467732502113305692888423806505226383049988421886104065543641430028043322778116298967887147708077550197984688284434540380247916093223022926953340608880235369805555669842507212952787580647931012137340840322293921865667410905978719688508850428873463161399393304777159671498860822059873616416633327582423529496734138559118329958522481395059931140180217705936530403207519861900024608740711781960004017391694126543855806225179421391346125677713030701321161265355874314911743489957944611280012881543408794045668850827451941854382535973280852853314054608731857446929468905402391734489007534830258237267963949246766064945977665315739656208590869224663451138620551684691995056594664186967442715617589468073419892907521991745485579753986710867670140075993231015331746604334824681365512145462484741020880195449060017419001753223352326344123234836740596625282192312697351581301137119608919938776862823898164516943011994820502018099310871803503872787966129445535501132244855000051010651537720506397092173235560955272230935009239157395857497210049299375619875030395304289618036950764190633799766328582306862756070126431555454561903617781241016869682046741075568775963594623057387932394583505306592256732496340745440435532906958657606893604359254189121822969630155866586743496922303571100956653449625561082173466327186585123659725360351857253527927915028343541185252462315736058735499760393627559069073387136887144645497885407674212532566742027550114344552461290396020134119248122981819694824199196042332574833802438464513739014626217168167266829231592350844354787376920889640600533079122537955714725663721613141370406312780075328543818739099901471668745514080122039003941931452440474186288147038246078874756926337714435771160220555821362656846450162381287014351292915042399367276678920107280852307478296213286864208257372854375380430848377037989305881770855135360650887850827265860106556457823548330069492485883096759536722053265147038911791265154169529373053874547847827065062006987756307497191241621948987202938978354526673375130491878905505366921877662802798959887834950979729804651838820786066524361068185600903704267089436868255632364727547563023191394144064019391643942316411519396532345248702057444485906880030592039119223198260654657257748783233696611093528793852074790859058791686204838226352468837185715106746763976961802143457901326032151291687386935369336481777476320657327614265706530748466164191426549832908663619681421954507768701906761999485839667211332967140916717596865771038132757197086094993020572578808570854848452434806306227933975164508255193157159244813336793919177531458551664465183142482139326485286244205420250332288836914523110200042366955726615636903799189604977534573109795510084062210515890915433814087358260738001649229562236384770335784922616688329399598270730975387334125732759922503035114146890375011006682185400027023555044599583270566960384649097506478360976413788822691406701807507167810127113050283329581977090368483148693177092964726208695003462166003813387638801421586209637705491003069538651033456307103361083781379367839522804136440893407023614034082123760440818840794816701887140290453848343692396261773440673620067976525650779374691092259446289414406338064101535451198385171835103782981382513874867098093840781519579624793676414690943353017243387517644407363849581003130781904808355208644963482579210738104839401207010417262659454212021236896233616245327876141795960582161292133775441715403518676167645855181633865352742629126115641945592303173589603712729032259539114582962315004809147504647200088443024336546121762738493569346748646700886007300483587116313875412342838462530932721683314973686916679635002349127558182181266267383993555706284345995069450505669971663848483756340280263588833015040335355787174987660527731050891657168604790019102779967403068991801328866458321673972799781531609191688716188134887180751859918400235700878965959845436619154447264305517571816338726686581256671380952498233913026763947111182541331788473069510224008680052878413217395480103656355003541672087964305837378943248284764418384154356003177289733572262683095903844512218896379281598043222252613793752895859428605618444380405460968982586515366482766382294793542436644459992864166059028842907270411931361689018017646942203646253466279590582737888864279877150180116615575016477153459473888915867233760181225132572839005250636943346153652883334343771552563395167058861598140323346498979427547720639149064042435865349500576922100903289116227663807444582667172754169981675731470484723163133868328622014676758381601368219637563630472359979621684304625600042921048425350128648891556257641010161969874689086616610094237986075926698312258245717951825022739094240856578649080391267283503809909600148877117774130873189086437387223957466614414418449544212373664183057553140310041898629851435781252732106183271935274805216172185008024196057392420395368627058576767581535546020333328402989898929811249392880125261090059040297315166154704228310163998727434760369977470671280622497261053078810024793949144441671006989383087599299360023640432516274213639965766112641820463810690068754951996536917429933904968666044553112317953011551073927639857162931906338092603362306120588562506194935884762994933723044043326995582736102602611074266974351588241097941241920134765977495785184704501330642830258680246154704941144645802948072658898362923446895041724120525788187120218089966464634461837315588812194749802583664588943550441969450228156402317695719017305223202501844880852701993979597196783042103975856812714268827975628374981420870173923680126501335414001029941201890844164494884763140239149173444708360889902132039068023139574770583967983448003682365810274604408720695795460114569137880242750125076115616522096009853816298381753947677619558213102249638934758056148152088965140249877434663558870244584793542073299816048381630855348629948541483362745520800461486056545710744317811251114629701655709611537765057961680529543661384212865424113333399707093018560233872154466552333860099771767141654601006625473290333538102799279057176031962548486550750719978689149628924346780115535481225282491303678847210509114091731990059244951806089765823880215544430240641114220694064785173945925469781078548422072530379944730996019636793961567742906054604968092853459182597172206413633788579308441415061687357776383695868016788147708703434667806612449339683017973306662317925124626471491172188747002229580417301637382912454600070776896609705308110903031358123317848352768890082962683307439563106832445250864802455415860667394270860499494865626375602382297898247621327104083421587549983588122806474874016013638281096614583279308876981750775855450167544502150377952809405225960611576741431190199475729135236300218703344457056921984962500233083949638148038370304834892817216528009798713148614647355022416965795512663690033473710460422708469835264417715661681212647577068222752935609843696011335082618556799272468090708778581455184454697540999214245098446340025940464592405774372645547284386746385737966049439004016659053836422164849481864355371224504699857154620361502739047584502061487645796681188540025044362150837357199896344804031236773912061970240060226081519957401517912165485322267578449246362791897322735699756781189972646410519656760355423670502959396687788562851127129557183464301514050037570956753880009044040689538332987425290931651438579948141174716053286097148924164877022753363271894183146426270458953533717061201041375632553091612105401287157910043429112489009629445150946143222345465890182846583347094849573146939290673033159032621917766288562346136890620236686847964440704675907461227608152630611577749594806928362688765172635171272610789461563145225272205703345909640003405055732675840846211806620510159005542572295468068547586037827467485690167730554815362904518576152493564133310505066832972312887001113723103936554536862709653463288959076375532266491508245651028764800367900371755694084447237050978135849578671140953147962906350997358352067490521615342024371901920106404296310922815130224211932823242189980849273326626363317962762719971645503525779072704009192553698683531437422951188077877895629766709834380652357228614444467572805147474576715072791712902339579605375799594776194902878343195610818015557106092940886503782738480978591758211279917489240131890292038179147808637250935683762813097595530600510570464038049740861005119344915774197133119708897153198938350905046114293273120373774939553764577109659853047599755879957707313596669828653856327468890484801475714833060314044429856635444614982875481613322810367239298633772499465047078814875141777096839601989080301915750071517961159514891469277374949675280909270461292992161673706813962862745930773862455288964064506693338056273854374842304552296198925958633943245230836989158378724719305375884562697862780094039212448938305833145341604185328032452039038213230187809762540193464902648334932152326392372000313654862889309766195526662688498993811513169169690393390802425502988571517696494474949032922883619685399844406184037784336379072742550634109876698554017516059968452955898713343273530849750979328660313912984413360473553578874153073502789084165331969772276544226488957891100965160794562342741171545223054026470490489244344838890952984461277876146165974834057626703981371561857668856230349310427562254798700389666793768037418447339195511293699913910598585010880625624375424310750068378809781887281901491563716771256175686997398160979932957801847171223864935562561037311281725117601374921949144056796896099336725194184384139379489712406250132031420898485105923851484031921323969192931159298685110376588894709026460380279377824175505746848780414761651483472693164777767526974568238421050428082951866736760879845181578501150103186120835720724632178795866038768787584001459955724557576756421569771476605590833545393346361769769416585478855149015063343992842574245947717689536102889852756269340936825551083451288187210610893398828377116050273985741214944998087876848203958919808156935522954656587577410872084550637741122728175229402634773893072502540849893059183790334598869558773862549405520498132441395107023785780712423259701650493576590134090743744623828668240555803577133008299522519698365162751447255965461948115432994158897053172632202426141591164917758856102557485843345218946211563612916914504648417383401731241761733011114655177264638692075469193660599083319301427960561664111301847559749641491321012089420552915871178070139709426922879130972796439213893359792014851440302192022731143166931388206542917861284394192445266062165219860592816367693557112159853468431268427048052930361719203794116467392450253885151882890477019250945959496603326742039015562589162176544917714628111738095369840024549338842279634919214150483841838429919015230431967894932547309210154242618630993035126881299979392894196754081574203770797111287784682438592417231317880050481200821638758626040365730231570140195287062402199751755801457683427531159259630229561588389263733618975892928446868394985439023739563279989705381524587281731585860930074493696898913606351572022332970503244289499358351327923369280724125119816454719538609538608325725083235313239708453236167356501416548004366086021463379037150720448811223689856175047605847387075049853223315542497644614541533986167156861399693110153327498401541062182442706257820052053917966379608427057334643291898008748539462259915752459717716795557562636895278175674755630572198426433230125405379011043857551066192288817580612700192564846123230817820815143294346817250448597379085111285301520792803531084486466721229383535122290198743697803547242280812149393216085094776420541334351438631844813129752037464844883155984845972498357693565397243243855945279934047413260647807160075824577045804403065682919644352824982112123952092566472754584221362499587957975548293791971209792959301578258259598754494980639533361670529435034012128001283580427286836879554214363867470633711988187448166017345179070220922053755663911349414723223225642505489966150567928778836579615663684517548562392063257794272503013551684512155434215247816605728042080782658335815318672598059967904833596731930723247669490523097997642109772668936283112878279227714298183278053610595752775809263103443066932085775524186529699918075464126732634173107247295428992493548816803433275353195872176740183760587758581230717760841869921391503067864024584005967521086275801723018900447700580265832344984826271589318858364039715263924597853509253505756337134078517043963574453892379122932725977265561355998362955247120785922309890071051162679280660201856133116132368186916045521834465524898238883290533509543205510252016747672073335707748054821849712409997233047214014391469592712739842364065916082349415877393043606232358113514167850900591024833649074099329182279626366265789818022503804781732764820081469302835482502575607879178219670039846511240069581702520011179891871935326203196581439825609944734308030573990441391803484633452229091970938426440629151065067963460482998059517147059400040519973418718921321765918499293946754761208252160427835591608094249954946752599270998891996627133965285791180379354540894423785128547494338120988161996814693459195124904835125135201765089399297347370174757729914404064857329012694316979694995335866046037106931119551572243137323980853878580450620065667316102439770470099469488907519340666774929308552082228422913611549299981297983845875899007309283165176081952481617869325485852480693948791196780190703927518857005503037992027538290836950883968384879943836742635019516341539190475455434477439139092408049021542501938417708435482435338915898802508053219632802988509770907107675283461352961437010435845868501625812264777338203446301056128038406310596989903465497436235584857857295388982957413187601195357327569285044507429056992746302551664015532872779435005219177381767984861039244327551849841693926527874104509330192256547699053844230358824925757864372162418609334855397110720029046397209751161855703046459270294597370172728800503319451092670651602724441763249179441421612894279127406282901732293094988466897926441867532331203619889975416139062832697307437276564968870563589614989745561921252147040660169618013063355182059846088535606276992955536086871957353653044034299467982333729653230005546906947901157641380785082873334364237237150888609263857358129953915335471319180340860507994946669783317010349839871190075573621479946983772064366243126276886913421371645192433698761006941419567594192642795519662959104461807423023856864086995975599787943873580826471239851410727551620184632446687946567114750903264415417324984708133710019780684840420581770695042835379999200017770278472562031468245095343995065026955985723467982903140070328064558925924889132463204320919851685619241498892475065682834802772619143874012189047129870024176859904883829562252111521786624749219517945518145788757146417790266532151592097354362283356417518952277065913008937981188308267743074377612297154791774959720194671981593984518986626499574544952687136422326439613612498348433125470495729097945613741726685278367883714310672870468613095854607625014491297913104817838450449132477083288486544217155705786333667962085079638546525817784325737369684974079335042441534230291782674482050395678660656329196135652941410198689977545841505924951828508572565048230778194552376260707807986351392459237077270608884621954964773462137236124486432195720893957374225117990011277705454004232864869103171029380812306076051743875550138006079096991289094203160267927216236268323001092413351034302163281347949437031740142112719361272818199415061067429462485152725202884283982352425334934524009778966460905214662725804257549383197374979838163921370974011039113822390270923813460621513926253850903238303895200532314642810199120870143478826935024960570512026255837249085130671633047257555977032320047810412853511085218249736546672376527239301410677775842849807332965931991408927504103200672038019991748542352553064105447431295035614188247222479238601329142642188906023020005913791090502340297921220897067116469970299113504939797149339943697816529163057435624226027012106441287870593389033053223548781986170405700576142437631316998028357731272040899598640637691019917621139180951552017759466691254604825066100017165153653393645536585798195824361000150857314894940550480036840308588252190421393029193301701295306665790621223238469441579092150310896602460011411073742426018802906893198041233525049714717791004607310204788507651076211151804582667209947700327120897342108994650243430157001705115344820298326453920297871067947436626660281930229751652861772111176483713386143364286190708965581530553057800522307540668202063856305251818402134357863007863772954834177108776114130421895451947005847639590116375320197111840127660510489946050494423480100273264325117617079676265612896157291985368393530256685424261698082580051091209359410201485274266899510319813477667820393816559739669084500663572939311054692942614355185522762289151318011976905222919870169050383218859963467843763665227414758859382440249024102269889912165385849237712888980005825044996234168179597538171555818086947176484075821683227814116879868767309907442809005512921546694685320355071505052286730019371027488215788173264082066047322804955591602264049143980289607247391624230265592933243335939644167597428808336543297857900445629497379609168185155198231161328971292254599067006559785208958739418052045409560062509787952047914481321638194107116826127359129240970395193955566501715036386170576838782528821446970063619380924814629631012600490564358326425991724119403305498635947637940105485409118871551446522392668007262993863104849182574590495619804368231852293394836449693184435207158100788719663926541276321456779079583185284168702361871588018595990993032225248578052231957764922603284252373518680244002553686031528616361080710136188309063704403034392711798858000055411431517251155280597271372720481741838474728635795392944518955436771006794640022550293305360927739517364923034679508139268375412812078226832065500013049817215554443434021968720329779673740970240180415004343593061115499115225941265113686900987103233087458070588277167169864764698952371885891432904038324810047881217773199714811863129892495579932721072239918992450543438714944802903445798149196677719670410192504329181755662986699713770576288031839667244478516863943363997794610673627322374586746171438533970705530475736414552769818674086160102228677711833885889331726476224289177164181793020316429219186671652742004270412077526540966516021929694793657741825397013885165662285432352526176348901615074234602769644180533800567938343817662652904570620134958122870319036819914958816212698847091068749688237276633576441024725797054153170320880573863870713894477659039827144489403159020502048304842677200571176719765782402497684517149499866584444065160883393166906197837288767133012476219478519433983917098281764335888571781117893101133121715413445609975005705468118844268239446557714146889028325450729243435182511695659179574054069213143496957929758907851872232148512389919815115388490802794305958902985378831560514912029999427665747059073530166784193693222818603803497128799274651744682341011891867558025894770949805452522363610895188642787238459423630839088982822980834897510905989259272402884837244721260387304902397317900636638563754997226099426710564459887764273568811825675852585672820105665731955499074156391655807362353716408228426078967409786238374004808093377422269106574078932993779964811649813563490238335436112872069559617605782482720522547024208798105554076585005947538525285847965322191884416865468063989835594179561959199092743968363795345840971506021848726059717088317111913453586174191035538566018505240785462682126627280034330724475754652582014243993493217153957891327309353578155812189001688531823483818766552379522098047320062437989059472999878983237485444296339690798598133182710111687544009864880878723079745801033216711821978283258352341572635304742856575389535110439926180036393904025496632146501997404670625496124186983547312777066699027412402688789433348167223994046240253362130958299492593449883479652752585464464046329992480323737076970059159850458484602253489477375709269447578268035329775733416025912003901510347323091661188260951445108393211144317974774730303698338429343914217284748531894967823244782207250798038819993963953355910493692723310252651415355672607305422948143129906945954941019665603608089379704850019750672521258130276354545148951756090831868224372475863744812557363076944055712113528924005596952579271081355173217467012138213795847791902612071130843119323122652875903284946870389149480314628025760113844686021378541139953790261923063304067252045811761012706780609014199879161959158590245795429819947691586639068978572528778889641919574653473703016676975500262704124075356728916839145448366358519313621652724739673325975321926265662597128273918830033483733170385572912598433704041420777933447691001066169399134697648745878273001204571397796153770927180661888850261703652085438618601889093433659866307781850919060913095977201088564601794194572400062674054204290322309034718845748907852170919736440801908887583437841647165516221600034792626476575252178651740962775492181254450389069195140763725809439253058917671944943216935244195316839969020042192394217631686988892599781535444563357658531303238306661110163523559693614785444266422722747028711449405716240948403929763298768281355006993893701507340734546299868922033993610596966268713852046207089538518195888037681087501591563626811274254741367969807788287102986227131987128728049624662910006391290547809295224102847828236266429510808580402439262963469473288177487924751130251098608211904288565178444563367932723012346291931875735313950160711023833662115060740902504095215038622870988548041870462256586981145156017887397142780249188726702566125849290241949886391617376686097860823501200975171176075993453170301908328498372718833863639304617674768452690032007680424281857855819583364778159437111961475655905577339741971222998742143076287376903128270856783170564944834284878593576691572003793643476498748127162703780900947901525086599895096370041013724128308574255853154374910930430014442784481705078817992256428896050418776980131707478670766558157831647586464626498052699182610470869019122740383385411344154413014941026972634681627199732745964231922127660087509419123110301506203623020490255944417911482661914686360463984270683612171652257784461234023894540984687728871921951583355025806313368485956060205414717179103863969591547982734047605592882570408295902816212106902653304355576858368375768463104978741345845899979184837051860436028251882711541836989453244101645592782444938454495989119235887854359168811246073316460607872326924826593476076308333580946790788870357182256553612333382937074708109396428531967467943027575991835208992227634951448454829375606236144886307698438959282189250258918248482461914525849151959277191812313726730599903137337084202702828259076368120065687322072165640829205219979975457747451262755647687141944358789479130535539649078101118193987711843944880295390333626847504235313945579342175145218612543509756970680733307739095679705565806223641869031248152347435849860305357509205490288836603705946362372209620546087640581760762943095626031110032549882689003596226904514883181045147280930946026594424350160174030095687485662181976762499654997360319201822171711701392709949465607240000787935082466129511617386242482322591640823540536190533834992273389128101103509174520670875615199155780829382364456296686108281178112453466732313619850625448781621770399521123890313084386863585373899928621361102767683278490262378338501056389055412508041269491649435054063574478665757574342034794695086375097994571230597257885772344574507649607453936161437725986025573157082794274353299625564842288694330449345036843417903860517406624089197463567948401537731748499608371996197080220664583252225929405502843837729898151483024155343241479663157652912592932285800304678485402029024386259196616151234698749194395439252890116106003735319465229214096849907676882364887031086913120896274977068619654944730597330271825680875404613734359367176585074894362400049841395913903429046368707619181767622068926028484762151551431564185140817758375247628365849243370841345537277854816212706529631290527612947371349051649004226203341250967639081955164988713906723346091087900376749549232070498692426469367901740115504222059435890506996711148217967169816239308596837595554369161506550197485148855552163266467588356674841472600934413197829160480366323561619662901593110119396139313571294574193629006402167410999725331911935016976569625162232253257224134245519342027979843374787692647679801124234979566551474157601715940125984912088078167970612485472266471966668078144236169686887454913018775756529297349264510405098209410124467528483743738117591954611861638931470052690664856692375342498725841963129840416619591180845208171285658833894111913520217144908395220924495657084027166073680048885678716855676903583181318797966193754172518415805474880588925763874624426458779317085001394956784214302288888102948780070902519154275462991063164148469477659397532074189556629409752830583604970874060103992126504501142832708799507586258010152696965657633858038914996143044534210321516300870338397302066052069005219006603917820024228894149336146614045553219485170264171962773373145130413166247938604515042864862763412197997825818102239373888307492520553664449664278809247289926170354881800552471134108137336969690591432827327712913199194536907450854327354401717840203285639407376818871962424628690723069160939225790134452796216765530568164130026659501433712379589280706610180982801717537783485301605648965760470282157311501972037120147957138736369966199659632311162574498788892800412118266801025085703524343455042606851717432531601908254953299616096301587591971376382764349010682538337595775317996891525086840926128247201940291626966333071176963342696290931333255114558379397165953947865616114435937790509653395967839108925847323291675590463331370073462808727687934860320591990654023894352252778409657003323167409957111276913922767302282335612232071806833765812536433629936236358753656589784006250124515955560795162363923458064039124629689440857862017474297323656470239548325063127950524004073401731124207690835381023091063050469176858803257074123045819856496396092034296350060007133060655913498405684909525554953740266170728379877972766352671066332043731467185116609483675780637116564063844198947141068848235411265962407203197284842629099390497002668795305759770617809931407215232448724938430708861672360803024278215906279463696304338660243150405231804107336964460963056017103770805309918618736588624948824438656892387415063943570436054359217998712206923993391446251364169942482143751911604359448946825120869570965909227288484338281255279856466383926064404995545004313172922373603609320579037963495269284153714403265521812001562087855943382933034327060173839658650471924940213576310709005591082851984485818134086339213525103539190322143615591028780441836141998926666526313750172596047759835456969779661403517585680462112901406566995081390075610857462520621826089436126344295958916227268425288885238642278791111921589161242479046078251630741278969568751192839635399363444166138945682370430928257769765934915501479243495977381726898858885044221302735649077118247305956347684147891908135075212593697085511760655875422890524569918566079258601408025487151001982433664969730801535078811884277141545781854029624633600021526567899942327967456683549757271667732227463583190305658867773960320388160690114542910560415623403675019685582112392023490218939155234259056320735874404872152528158564298806435125120000481342931321328011884836244912470358984020726127194064357000397340019173761072254772671613360745777705412874343683165456100001424633513635327458616167620034858875374851395474570388429644501170903141408001739902513365818094276248722363197231936908401508638227666789141442201270812020272813528276108444207005010734194148277246215649506681060609826614315066637149038975353084968647599175557383831339676998492829167250316356795296682100512824798604726259261879952380229875780681372116400143578778495546993135189432088802689617127751592818100530509150225503036820726531400227529355886166384424192350617544866616942320143627944861159846991881684434592272701840907865106694594644320845595032877901016938956477687817798903251873766109283536879827378189060722435140010586725670822790968977103211783686833744204070544890599667644800810727061717866079869989578156790408491044571046793710624385999430030097869776070494931266986825897536881396089851369883383995119411952131143382664526028897318723744187784723835501342666764225155964569160941395409613259303688484520735318604957392768896831530163528875877394785519179629328620925040956377147187370272153178218298599104598147652602852955660080866535734443708542401369801138585283922708762792566283100908278470533235633726379757143048445737865841574994346550838886985901177716875568337346303192912456195618123768989490725293623357375970003290203909114710747221232039419410150845739078436092022379932025849349631110747548878715475285395065685890943240952673129425198788129810549329856218314821278768837559772470635058558233230494345315706422127368106047666666013599905393671173389840399352391602715832452199122958590217761535789906916974894202804547661731365208329353567631354925412683548573347058634972451073875019480389362954197903140676844969267362530092262827655210497413062556616977847774058362738881948053709458071680606000215424987733955537221606202082777077546706828316585351181731175244067959355795354728959261977114507925587790369494908021964636814402849777092616131485509008867763719965771510360851858453086828153314098474490328460596282575369790563132816101360718331517855189723171313813972088324714417493335775284103139632721430803939602052963204155075868485564146071991543099027778096826325449426200176341537654209394768287463312547589232017186092416297450403398228777509557869808810137562494735844373094256150779097206042413402771915957718245236342897710579560316594313751905388429044528218655648540946347039051225185156295746120615171594490237430271470640568047384330699179247037764844350163126288588467452759864268024289913298572793021032113400147668038124077620587019531335465123224734872203618327833209352494201392073084830452930561295356919581280032426233379761953707407195595547849232399497783177319883992438021327805731297197675365028423075247377450843741078462983011739675303661807595558272081208626733714083924642197869112818315791269039360875545754254370803133580334919791705874332284450292237184304353976651229628772273743523581074723974724975613592556698293216089505735320798939609786035009309383619664553129402786328658500882521457742288659957219479580483738671045751251082974762980126952624164512566556627798518397177793904072232474652766908537044244866835816981050768296697471977245831198912513411868787551659692606987016517993336523963802591910595554851071157123591692338785013027702755627834982174465673808149270296968361886853023081957943360410515471871425795882426991276456579035225401176356028151352064619158355899331517750238739201749266885531948163117007736063074560106915709892035810775152805944113399932382827784996255911641671203891349290043518374097669822370400070299259256864088119678607706246799140262263747171881905576277028112554325634030722541345814521250174867544802861630820518943376201650430491919563886264468811835414914431794918618140973775975200209363214185161819119576454572402726397654228482443233218427487423378687604477045030570064021647631689317670525537984276157317104584629645476219093914636657574773819995356221895530873723245458952474761616544936732072836835041483923601109265624559912458441338150771949086502236220796449862676302074396748920679239448282305906443668081682829199588777713417269390843171521957254297570606149898958109328675798591657425155509981114667623453240517146372002740878719189094784890011343932017338945513094657293447942637479769517011408984892284806437609933176645267277696914591343437809645509003379729787053452595032053761539301552347190374803810664518049587111132139521935668268454784458121357416331329108276432688794589435698765291375211264437949359730528579280300925712688033386219418976236776139447531171132770920130066112495133150498831383392770611971289087953097620421084562499862699175346056047009571041963902640641594273325536349342472418891745028357199372606229771731722240766753418740230132261520441172324407514730735710220654184211952229133183094890102690283787737055643532479769473533896834423497362573602882206733782532166118937445018670137928024672965282888899160661573999408385804977861248236116065821466957955666947526974315301104581846622993988002369569400648937597423210623015456570241206256493638153569145027448350775073047189542660240845199259735140096919142891714314445114002440675203240133226104371031237816450233354587683314368828872507498762665624724962875386901622674092464342579091602546984224642872901617051810133611814543785543685658080817736112525636269482512836787283545384438964289812323065567421042870312801639374537905392392359856635702178020583596083460775361892624636101988162835731684122444589699239923302392157900338628562304405836853712604726995986360745116303153018173748529123272484031293669816935914052488081044762248618829270710494577265130810520262357263101983372603720111361544675782863419303863118764366598959778426324066514822764415986528314937550488340090732367229286471298118728836769664480235176961086851825968093556875105222843083131511099490723597915785256153833640743721900456073319793877780388053711457478828940976692935987428989136996888434194156898999580794964003137098116001213748177478961881426651446184803853423059507349830855702962895172836269142215543856225199858477854528885680141218831615448994879989551712401081736284392382836627196979573352900733893091098302708213883308221801178674516515621953554514976560295710406644771935109422052657982149941514821643010552273843029825370373717420038274320319996972018666110361934722555792285097162198605146985460447862306348051651545193581029737372237048781739380230644705475183592837634638941980369048625103703901285203189988906428935666976288052307445727570476144077004044709881169824322962901725066264651966576508274121695891554120464916944625196950981222645895169203945296829941669077612056619920924419086487086843807069075433527349781053612496024419995073149328160884729178683067360252998203596940519938939033931479993143683973116299067641774452708422640952622476120731759452356227380285538778377589672871251231011207382150849895622324882393765034468511509121848836246089250219176241010404057572169142718667987539805379463580734199525936123246377833133718126739822467628738861143109888917882605161293840717504016608221841038565362787671702864491191459810310070642840053988410939947014235944061797445636408142219283885073573619038443991785055880012231031660355669348240100362119347082904812448509811732210884103670108065732522041515304656610976936476109524885560359866222106812354921470244395071439594190872622913186058341478431839526954463497526330641098315944881998927772704177536291995504638010518247303824085415101991494643591437797483984195936671038583513707798997022401649430740151065943826162685463026778372749927975766967465346842343032436469028734152308032247863060162717231000375803925854128803595690081812871916991162284666381567082361782165607408682002312620322621413024730152194959439365919556369586623939850280618023661933006607748728197322859205498090748912334765788133209826151225329780500565133714309322776803744801816381634981093692383702536922267446904776837494077046845313854489347018053229323232993333481595914067133458673327460794955722481760051235561951919346736003996403345680918164258950408757291192439736846289046923349445346606133761728097227201163608226501032396023322484290601633532659254946861780727831603312316587428163047597212739405282187333996013040011292533131199335576251996424415152320064528917132168999307404277609375430794994761277493442163026116200815679658284129483624135091259080306566606310015729745423576933140192449772132900694756839100652854367607316272520096107857210084117166617116166390837345400417836213029754670433891801265726920487002739263083569940696758372754592593233662820794440740832810539021384537338291241916774158971371704981606907164012815257739000279080960296746455155964325728715718641142212958216893735830574456628565129350752620323189418675760202452222810915700224469353875508299563337898808706016136417497160308492543958374462679128674974258422882562391040344923837973518044069036975718784456070251825396090746590757867917892944908765468777250735572197031553001218903276269007765473799690418917934787520509372255900273428032349073839325621291749799523421462864441805246690137996175446693902261395997471631238163618202822962958618549628070797625509301211531624367298186318404616268345100850079552779260277558784832860065704887596132096867364323936967352458327809708654978357722227172781874583082402901194717158724289291016974666184270030645349437784918233966376037461972135154475896536617942496326955722058551469906664330645713646409578088423749528012866122545649510089313994144400894909144440732504037298979559609785044670058512336547987434422178970518042792208314526864905853281657469000983313134440022607452077453420239296425188519488491320161928151434048396646673532544655452279441510568775526730229850547160007556616001906204652903070341363029644599767749620989124511204556848790310396213478301993209480682804218976330077808728324752839912089831394819403477417694051432980320339850985045244403290372541624830813233758826212402643778711867202678813003914705677943600553280015098417339560218801096592519127058614386909119079825901921039129610594802553950306464127347893368856630669405576203602585105142229221044185504719275392231539630325653445978410799014361248937991245289890585288192050771898107836969494351284763862256626903841861205024502186511934225471245821437253837686645136031308004575371143803206133846437804310083284342007414707342589245606738175152006779624690138973428675915850361385773260459741728987179012928199264152347297635395468839409998553708938077645076441780092258194332975956346619448779259381478953412151694733055804078409228926517305657518573163480378846109528484035154006034666823907018942472990262735117188239340389094754608134525376552828488741149091453963722348598681924289724621923464134765844702170444530434220425372511125052826861062644211865245896318608474909358058805918312925404116134474066645020995131181792600663439867261751120699729986388897882195401056360994595992868451632860092564010488899320213576071697917009107785484717933266100274963499092103520181700118502461307673997618983687613882993554428337380206130957312553142890024643035658170267199666160315905485162616903400484884910307117470934740235391619928199975659241153379825295846925143400367483563701046350077532234355443854586684725016311994169562646451309872069580422984107516310654944613314165258113424971237144480354974122163477338955388324191747974491212994985848309079640779350509409983593014453122242788983975251742220398493882718448931460415221174970139370390841096719470466923417227153616704823263521207329897825849301983131440006644758301026490543017679655630056867903310895322652254925000554276313758176614085325224271332919025944292108901896197863763262275808922085158222725735736711864597390688192094897705153446025346628410259008057197334334115837778298236872557513922862024387880482806013046601876645916783108026057668240009745385932728306230091185479017661755273260548181632740898100721553286571020929450734791012662898036857425010325342830209234523497354709597922088892358486054240909520087002363166908946023785736634999611448396399043763582589008578275319302915153094539603638477534956352001802072495178623562730337301176858055409035213809878202930033062782216478734085330421080827577840373392990662094130140881167445564366937118077187802229337358683693783177057393595161396596927417243182499148680361494417606260410733327439362015699335698698818274921495378849357570648846817734997620769336124507820725529713905575405381175265090233610611182015530694378102419745519224387028271171650704322852262849157786103649889828444419366591775114920438439616244021493475614403945882095506164636669650703378179117923053756530112857826885766268110894141953954274349609994714097322502768136417560915148295865244661412334313557411738811296224866573094784808289344043816373210555265936799899340491619504905291605366903422164744470519693456185761844607420378236706003269920641712284433401445881323317756825365462278490460504758687087157754106558160517497526684613110254072790381105700403283639526904667343355985067219990934746580189520364637756597156576414201964207722636176108016260875354979579724002543994209573145404329222663748561797202787749685907506028922163531452088918167344895996605108333045284025248955952564446771232639829534135199594841317048675912060635319229128492458885223006413539722965229909245421812143044419503117949444647610052998495170071121981046465851535105223529107562662807886627105175592197751632398152134181234493221114642139531922127972011943938311479580910812545540650210530678691154565644485019825236887705840703345962478887154008216054175218717371860414600660084308725446374331576884461339630551166478365802177839227718709339171519865931764673091725409555615756866128340808638228555484617178415764881890354892335272708729678002187617784245431346218493110884873077385682600568134304822533076657356875479374843943819332197535816029673294126184438952666009436034005829698691707152339170705529605658665912722151649149172890266129212497059009247318820935778664147793389333558081177097562129052662662382258828147132804318529794881104267405600951729351047957630250227677191901580172168353488802272223283100993428022303739765917235895029009662884627837935341890095541616316667008095828421807542446105116410681036245793727912678832161372756568256052934565280854332719238233761792673573358768390510477958171973438263444851956126378808916564264110353342656416288998428903548473317607142152264550676330210992398033498642090126337064405052628057589150731516644718409315954291046111549114893612242435957412612276763947204481960446399491874001159033717945963887208742169987631816532827555221841816894324374593955828731400922263798608870203381031054153942728194172577013512152948866943883286281039203621273845358051252840288670959405636075814045507320759981473070208724186892980709896323061435297010068435789380764780917455502137365442613153525776198932204735599007753444504746126167940381867224281760636498157175651807030264207835019187346300089946276194121902517804265129699243138076871879498265075815683616382770712544460447004049774556126661038476725427072830794093476721322812532550775759508584839278139627046987711241643485877362765932913711935242086578599950370828336116277621867620190371801155989692175324615035299356682098066251758826209091775523759862615520519107427360773306360904182658142760198225216284206552570389401713734790212453879000570533048626762563333301641943376361360856091173672331674973942581862026058835318816678798644574876694210421429307178486472582175657980820329016185812733680018908973630703995809666820761354497977074243718852673549561954999123583291966701985912194966567349419904361121951796131840209285413621585688420366816130534938167504630301268025448213466086344446977428232958884857008530746474153542203386019097410776019457565777549574105077437963635655920665348881133452984042477253932661726918163751287024396868910216519812693222879581360623384420847200230908225838033534539910910400117169703901377497556576437933126377093461784303939947087717925066412225406252349169294449102120530148294357339739224239217145202327347160440662539037458009707578485675114352812142256878738709583053872023496341055892581962673105249674203110781919725974793582705675116144320701924502844245509966211062903728933970704430736540669306975600738219204213624435229331965622504705357029559851421504385605613709247262823298311027938191696859851371935713605950487164986109137518440388523032204012027390428942138842612115364084979751034588709473671681333863019596438443452439794534102974020438966833777823065740157293239446833307489832370878709720318530891615510295786631064694898988846227612520305037418459647070037246586885950129297815135483745817247648500822594882153190467905218806267199903202747161296193733383450779691412898420299676827166523487719704565586630430458547354874978305382603132620056041392254716129189777583620828097353624311636169899652588805737327635603019285771364803752014385530974788828235380164979372281234919531220846678372605628227372906359858328662493183315112974300861003813033365982732516461158514163392033662328708358201922699161926131264379170150242708123337427358904692835237939817021083889679310721639331442562773006401477355788991407431966679664084457026365095333317689523951681890214344076587557731103954590444265522312216383410536344091051885182040392443291631618043079818072061361539124994590688620473449703871407415883289040781885325233736821017677993625001213651303025558939590880725179363574621908558522975158901535623387687223618145627364092156330929832182973960036031249492780208497342904431160997235029345914937421118582040745529101203929977757916660620265118156885256645566619001531464407126285514480946662397920439277857456875227695194189591769663727859045370933049169967395906166603824538810582874793326107197075887470380410786842662912675492124614045859984219337313483098740865829676386555869498615360608841595579924830511076156914772159142554003898755361818184450283595030953537336084798400867859602938372636750637586694570600290844444833120041036614303750902151715728179962717009580099196565802627951028391399992352924719554877331642032248451995335520574551566209042210874420696012025714201983440665628267894657805025094369996691355933839455612315016025381746815481747966935714557579293181419785697660974634776102466446659414710574984004467335531055360957595386865857673610683168320860167301573395962752830140492780043407096285801307852882238611601915618491166694829510703860912536527970709203437018417413527098235874931867238625865414837651948238865633338757306483500380175528461723824412682621008936780480888304535213136915450187321319692650606638116208342677281766269708559251113902405501522299790194231840079752286692908196744351783455371360705094912108729124819308840984548019070246732194298088046399106331705760777263343467490465415762960423919538496496239979149351992808656704954061803749555768064267212875696067348227755119586474562030748355986899202948712918328133503951097001447449760781101247776173029846848145156071825050288839254475516050183502982730589142174333578978962503395304756067120000601979436869297612683192648788359758673963672311644156402467377378973435877781338376082124911012920060201766498437867786544690025961777103825731738481095418267350144085531351358251804389769784217394509694838117700518566852095423435726574682430897271520177604222658795210807807492014434270303348996731411409089152658587589919509784328124501463588749212388356454235331727841009743178393427031968659104929954505714821541576743241715132319246792578705966544002958094762812952289116956430048370718862091391411362607642020052917288003223568937490782733560872120212732602122791856191839218252385704697489848333556734436450855026347944754755820476732471549059032937273562806908309672361225655259250527491449019855886210053883811870045355684244364488840021236421886160427104065572627114462296948023327261751780196966773019146798389839485310863000450507231426213470450708177940071719564568356115027376678834956568657946009894707624865188600332356726468021233953375218214618945944253990611224005254650551624486840283294592419712979088257828461945159601617445153175380212809065581213454252855007823498827978284242018899573007904633257372328208914794827787331280863739525876367997389198583675312809922637115267500499200464221989915012016974833638280706602416881160954231393853165114080469207990869659513200227042230575489336337319284442165303690689204844776676243437652444090710801770629013123306732447851956577299234352255664302007249431580471975900646051110358022626890516290736258737836544732302391859013067991905814561559576441658058777444120809477164880421083355162050451978169546013644068260432016817273452066395029760586603053144838861482560804292551612036881509121561440868703826397070347002632303407320970250269204782930130968624132311664302660093864524747028972574815149049782777316444783153410119959271743499598160913690100479809419470996767758908952988152993804408942489512464435606593784433832318686365116206804436094296472965816379679371683289859198315115263696854819681520706499039533368118805131628474150070153999376499171129973963891396606906200321433640623589966818564807461481012393024635469816452991058584200087952094553091681585763166838673262395776273812105114364365043586599572265627838657697312512642230907635484464922780909762501637267964479901566443159182009497748618052770237867090507918287958585830200457083538740230311994117861095502303067516436977378451140133657484188301827284176494238835295689638713976544562749958295151512852613666219948108996558820312419023482876954154410789515797971329408852710420885060119939399593828221394161821396485878255034156721981548884537740241862656383536594630509533643627376015170973412904107990377828207447123847974780588895440160964985185789743939501576815848309144705037621128713160747646746974171882563868753241580276341453604951082978258139380569033840938848436679926274848521932545864912713505509266025630608404078083961153866847441205103348655688469647509876878717449712284594747451498470150925861437159444153446076784580896861911725091490126436351400103891950270185874895338021339586482627357132412981301468944268730050837025742958617226299610370716608601120751231264370955520708536924252261770557905757456618085076414405060219093453436000105629214241776440523068928678225247453213320092129611151560539589303733341991236954961250770033751676222682430663644662447381121127545145005035458902096047642904625095613194600252304471590594999939236721742321145870277238124914439060187598873666183138079089448811183322531612410402643981657238897639022261945996371530911357349007678135916417918228383390912693678626351144128796052936756720817809440044884897412229755844843271344018781536786704171231858154995299198615712454537399938472910038673943843222173121975976377735861409406511812273641935970207258895978526980191484153172984220202988642986400275264965989625182869218355075585457873605887739862328205930414873694828046759958051920364229543136259364633678582255313334303419634540047072760903880188782111941576376970417204531322407336929714745480819570772422936277346372270996890475965448365509754787657285724176078957209497179497183518646464605045635657813613526178573008246606549553032478902964389225782120812132656071798585508126450077023572400094610756918704995860614770467237588971212615506794358198513271044570935846519397597414070588584701225493714308283275967060262117286256552302888682612081364149501837837524817755837150331394570349639246711633098102175265695991411447707254673708408863462678424933448945120922540768354465628844517323184337562647561766960318791477506792283178433283492732628553090272464982784520599696064638334770876289236212044974488949822358519843140255985797901058492267547260451188951453121915179655979628284019716471270221402116423759529404754373013202354525796589391904338619879850408240024374094515164549889647902021002180805227002673895035114412452874090609473461075290913183654408379238021918287418924346275196081897320186240048982999242094546945941824235346997533853907757051052543719465860826034253374643648266614625598580592054232372237436477346440613670627673068894191858318560520879910991993491478030777925438670297179882267569368496415341380060563117113796788395974731147216587230082388267284676601105482987234969723742314940437065929147943735596369970288948034336456553557830324530254312329816656038084202592035906649581259471079110885062610003828288528723742936545563586149617797810543029965214805005470757707817095705757059076988869412803075936326651218548620395884912843440492451496679091842918411225559720602959320407918878404847648892370325065378838093163470217660876491858025379307980586740765981969414256815101346888924892399064920704295357285460323511352503158039950503647185629999033938782593696522922126910674819289324990585390850549527087247992583286594917351859337841681064970428741151160734776044981370935143588263157080479789268316966121701763893857660796208029139456400049999453648172047067702279356770850502041257597364530021265242457070870679215826756725374346546500110411993387399646338259334526947307815215235119848580234621591204931697104921361047324770999001881397002987096196980971570054070001669761222410022682439994159726420642905452992397042347292523086265345859550222797783020639767910124437871210104328616971420448365017471866418537448223905225354985677469861002680544956899897318115235636958863480817469695169026026971642115647421666173246263887905173611730166039826237108631267330915656865541639056811049710767956866968944415711347008987479763231855095007581854710720372057856941349355276926542032711892058290001076279214102951977459972454498380864996673709448592775961049611320073843598914620826130081461765281206390918552872371870163810089355973733627568622047715356425128809765840544969699907140674129666354348929373381242206399516489323844280862592778005056139178078141151808870071117805577549827300602678737921560219467010323906303740948728860229280978644790806053951684776789270442404359222682658951345419189749091030296473319416555104465819820537316172565992049159540731342665045842650853542662988426807312794860902258319935665970916427408873434702702157229062726967933826519952221447028387252752807212224064639294773189263606637684117260143854611695461699669617597914707123324286347544265154784225420717822533153545637450398344589928184591267697312606701149229701813851960066501384762220887910084198902409731668607106389408141636790194655545563369447309264375461408341371465248564971065561857342506018869889474617036047575403000887466652400464762737346144507516136195632712531716898164649922919101928231525637482678697608792277196404090139017051219569667933034324826800077319346425878996671120254817045573276887684269460770662536183844351663845204201529175404701014961749197640420686341386112666714215080339485804535152076726699093028269261274370104673423886005636873776776053116390859180328832632668340316009805194476696771170903048747077401522242352269681476561569730249225480992794913657576807459564928248504366817632673801366201555481246716647260467043578057228317116163891988102649392136987545863650229378058201916216374571905849087329545713772549856885217355391836381107503443659836108318134538435542814345276271126591293046072105516847956914837206790726664530085706751101400704017770773498524935570957558713419598414527143647486133029203302673318475222536515184598547656185881019925226826656368122200641290051177439752057770048561168522900128797665565523545547861442775339780754260839027326676812849976655782171112877083671976847747304506499279802843746908154033842010788112322649166130216818359329378677883599490824560616096640138104306109690414175599296818842432241046815369698693976132042360161994740069355685589630443128932967095280296602199288788146359995263241954350329161419781095997594858181510694191830718216159635778168705272505518201009747796713416217223483075947695406314681007257327347410690256053027282988684574647220116481791257580972014589514263990580630108430942762019624563049516391027008946787590052307103333518357629386009016819375855054764563692753520041593053270246204908059737299682003564903789728152168796525347712269410590655807671439854317883225105340763375437985313456488936051707285243677187242179402787341769156006197858635134630846153208646603713821566371231208424671261427545059712914892967454261981747514086160402441255481436695606474414255431466331783879726217960846571152717251377934039455648951185293607698899767692615967717758665781221443438168778039698036303599422154832990878042754860707868139879491934815389334559903730547246042638815251530442304844098156451427137942320703890589148977647345089491664909109496212328466923373640938462067721047924046886016301295150452313044989192648984683710043225369493376572622169589503446680615963635409987118796288597429231192700308413241808781912728334391549154393727507378876886833718508070730009614429845226590371217859116244731289544305254855226477067003946015412938799548268887931128439081535219066630535699764872260370473326738306813146119832928329239581226825152411606224164956523261574755021024431512633412957669956033738429248742170893238954879982806621641817627423252453527247713423936245581548919198323184692540372623830988882365333592489291556468800995843812918250641196589123140320396934169349790730238674198053331961202002914350802727353690240324046303069940742373370778885811664892494839068196036601000825030553178616461543813413679314194025703552129785056245931214758311737496562439455487934755499754990324254270249525483924870064523368624780018260700556339992743811513478102749084544561054838871119341040489002242762225879080961489711856740162310220482504723943335435749156022827443193122642602205358105756884209356186395083493907468272571458301544755749129192365482682937228474649441938083152993259904051338990251806490363389989216655382932871351332799017175782107964455755401071556400328511425646456342609004382796944813886616520904941650090621196258181955043709227445183016623708413062878052836419299653125923117376357825379079429075680065812403323411180403646472680777284645589117912177548866188854037345744415815386371164258990215655139011767118514517308429335817564875088298079113123874651845611627376918301918943849295005534607164771340081028662994925971120754870847166324331577941781697058817086868616046078307084631726004296896322739210045309551363558951566435697611607067747181023399187845102427780160679902230490944077281502871390222001913922188147940111994776906565654775985091407882382742730602357065914871830901162339584800038135370242182436956936776635505912880383117039098125916140181136422594683847029550784432577606239478375361744611331998785755937179499820157934100823108745890478305724512793008982197363556480180352212164496857609287547014594598269273053073455458286245672158777416988349306738819328374448255866629507055596041988958323553603716405884032437057806714929325968349777119666966941006112246276768312562312114396634364217000970947952217083730337834914238652876306388268997347268235890382802547066360974940500789349857019078701045494991610363770411391673318194110453761237754137680222905038336249051320542302485880990340237821673127974683435928955528593910358871977564571415924983841292098222481223253827231514074762338041379503316823813178175268197789569832284718946170355675646499947725800286593435871391662835532104756052154035272950154209071373042643950281223686008277157281814161846651750059845380402784576323499066937705211303317439828376797457609578567274683169763761047310231640297311543059454001718876362024250728277517397262807802289055380398278674622320511816821806947919041733482865522195194593243170802274331611240731812689504034495357446083189278146031163498437823004967830441041515560330833303612222668342874135701147887188736696909230794050779549007196431914535208652249359063458695716682089483906351918038958199499678540310661044749029981145183057418001908856536220884467906938530527197977012555675324829048469130929252690025440955627334564517774717908145359123091580415066095260739923543135022298743179963771344280597757682860212944735370274287207615168297712834490779322128124324434608171523379568606764180518583221362138833728703474487128699940681755329710026651793646647075811315549876648278254988321075786492857019568840722761137546299034976213698570542362255183840112406600421385808247385979644536865741722743292698032704845627328397173609509182720741442980305759325821907264187498825912939477835054227870463031297819790301484546433019326777029753763154360606288407071676475441420739474184189864149058370218917512125499992731843386471626727068433101843712802897908996993209483045943341239166360340116596390971592213398837804449173352524370123884873465786656346411643033559359717981255383951817154583294331615502427974736961885823310483836943095593260255984743902519893479258879810883096801052178996929110389928414195239087254094101464102514648776750404812770341403329374177582133690517285199209336472014211003535934577465841184479524697564412177898817139330474404508328509223550031177947369634176104597372882277468168485362479890935612251472726855159417570417031104636223191402118667368385706358439330770481506770117054718771699252732199925836937688859072846028513600470251326289571637980664216523223737739179129638443813139038182160000336470726012759517944658477992052360792492921432110539407789388381928450206836582263595336234367290495170381989868073444058811770348582005163808685399280750269293591452798572509930024352819104781276773620426574156895021650358033209214992659463901471732819125918707951684603864566656904484652714647117290245368612734243345146287845520402245203597953726274979821624603545652886639059324917609624344846075222287396721854762354402219643102433278225512799472301328693997307272297040238473279379164356111656731269662706129462206687784946089343963462240110994798440863568844830307563528141288112377043620824969958505630349323349078473485686865387531278884724922831653333900971933614873377215558326964090979273265167791129592773366094890153646436472930495045822710673145049068506612346357759207877941249390868884272704285837648711083770299579806787048965083187614005625000482706175476792774734124424020642819238106946804736542250775943184555542268624737562556060878782798218050471660754472293481821806327119076092084728088291730793629628620233053517488902197823055513602495672053910674662542231956693772943730373281365230930206821906573002831756795466553147126567241626915327688363330279822124273739282498951171253662855577570419891313551804621993483064213882935879763832516415167081584928297580859786951981041044763979707354825951001020728173040708448593149343061756586721496129717809455252258993289025492214900517351120406169803933870716646522771846668298700766061766546743914379203877576703702792713916021923592265415936059323375388863529297572810581018094530923986920844167736258134339782015589017755634751648409288706973238660336689730582597257304430500348344727905116169814334302458880680236283537511231569898938849372960738480891695236773418600077480539022997612430563444638960887342986434291087939294045951926038731255266470176077481400109236489476830386155396649525301441190444037202781723543450425771617164962743729550261268316561018204673880594648993313073167418464129172551111551884366157822835434237137503627792107324973101348729694979598245824032108439817296141527842641634543559310068565687719878799153639263400911231728984121226815000006107149976249509469131212491860881425081875074003134979856414344611902520836431494882407838077522383847449663091205467688309877189321665432887733626154047783874041069327057468894110928296103415341539183158887009915867012192937475390640556362895979516955689233181511250521038317640230267615779449138248651377076089655976294922419535866164025338873264618450505793803528728701423914513332600960507271855761510750454310172183361312514740258727381402911611141015154084764173044478063204705704598712357350081335816050754808806878504676400287623838351928437088704155726937047855748651133451777195749019823036819510726699127073680817071549481539822293238886278134176088107129712487400390025361874096091596859487140971293174271834229304032220278796188518377716756053920378259072406190617327811506262311015414470312276493471275278154574059011481860311958718564908705177748357021163095643593692199683136927071474782913433042948984359398286620950013446786628621758086789647442310129346033957008412572263072925310098647249757521467984823033690298791366900469662706786944762362566974813656220056816600550553795211941288819276624659419095822425733350426985284594003045649717838609039260585751859938739456129963677992881133350373300694626134679034470866493760695294384587654777165774709150000363397273110004851892835744178598010277309400903167018515371695109622595217993531640330722202186805077960480519972955961532138587245515579315107507331528715304356027762990430701616117066232471167813117415430304550592708410074405161676064055220586153227384733400039308492339605102146619652180957838652884185454955513166834628226446511140453689625815701474284670474019293337311361129813271994068554155454210906165091603001696315055473402884580297631285314099091620034013832521053828440405877994971501089903093148856322692656788701099534722492047928607881989291980580494887588774175024751586296020511072575509711609237501577045023809280280576288700420176054357797262660738826388816167674789023536224469112223750478270598348682573375093803826279188129367647171116022119064047564970714732200612169087828895240783854792776960526972566696175191205976318265721090284013111804421104858189608299456694992617303646321058616318273076254800912864694802185546104223182996196678121891478657885175482650476463259521027043584700829313964589898053678675753187100025573661341513872797285494558341345535728718609058854105914191473624230220059737719304775409224043200860205892915801566995593046681111839760153593623290120579618208598301334183001744120630512425532002181238134534307874660881875845178657938021200350624102794403085492214863448166712165688212784876272218632455549561693215981656884826823270755169620937271380918540916347716504209011733911177416356969023696182033509644721249460845876396278288514830560206518099480738615236666308850237782462139280761161783876504253563078943042177391935951170182485039553636483429350571553619946658551650243321909954446601012012545298140521218280537631042729042732340820961848438277225671365331861995946801365541432831824229013249243726042093972160222622409234139137145910386063010655688672019970279182846536890562294246133743040377123440055246639264502778444385651921612539769565638234000783479644809332365669336296338923141442839108532471104888826902478298889330495885993479917773879793807346222685310058502034029894673980974999113720830914972218412431182659808472144499964060887868520004734481624750806329067469120984939148294048325241982339788553073825898787654422904958941976477551905641763034964927520925731002349154893610087181070745381566677244920885197316276729320294151021923385828372647095916060721428996699026026465088961313002967981686712455034104097869739999177391702822020374176612607169944405689082576048052713131511400891430022473864115817243696598759153687790639122713720676036136318544800179249253822759631029936087730285413478560615935409442513313461334580916908645247860204674290181559602054421503171881440058986148646713573414819028803313067525401953522669357418278814862162474750516553191152740213289942160947117593737795677632121983784848786379229961337286451185646003511390167777242081544849907950173692496239002543311524438989172748234555452558281097354833017206206750780817604813380988894171939334256034040472943608212249460555741717898254436547724716043552515162291154709429746082748163608088793313920766137148495951231296451310252779487244504410606690809502264977233362411940843796804916114631586871493294785093504256220273351557954908635228076831179543023717539353027081525832143416564955260901927070737220957380337985921615370512847210839263011091975033151802496956928678452926301914499444324388263158304278731255049919534497652139341642706357067287435341381150975450119801849187698909360350809869098939201212093473244011133686609808613390294779029698058869057049963817732579301916557231961267998277414742038838459690166545951198503968167513698596177849557932150901833825188364890305128919111880630468274613877166949557063814583379086003660991739203105780261145386569180628685784097726234446931931169636346225641282802261262502890738690225064941787747616340631408452687258683561476940012858614083200494930873545130359809293250901090834082650889544607322153624083703914018317618408923179573420668065793564064476179518868089211049906621067376520768135527542246041418183970753323034472651183428944759793533812724740083627200516654058088672457953354640543710031988427486686155070715008236335758574666385368284717634688388195635334420873540235906988421461498501552233450153166898961290540841519667732065655044707714776766016908024653776337442631846649841529381040271442787492384203666290151290501932616052447363100921047781813531987016692398806707812903349207557913974340201254499508150173160913281884570054007781883810681318671830372684340840318033277261376386634060902698841654473926290266220598287997143769693062657355833580175594223763036491776817463847041692620061437598341882571269288058629058574263084751588665160003309591973667258665419338664096145569307027833812420805844471086102576096835880875734970975703480523141495552207346474116445090862282547157055056688238190847499814072101581733184903349112825854533653591008363997571239538577572049886166376395803178699531722606795115439562479323777806419391395078888400994120748886502938415453924997956002605368138537422708814839830205067682693705992538620092125114303616560494429538233438199503325835565262253512653762379589085708533318629682061108795363290081496376189372973243394647632974779536750145464881638641511302842779663754819564054842631239797963922206641637528584741017631815674641548870807370556004811368162966030026541688097584895154596148281100065596016462287841288354037866315587409474218549361746671030351940534499911098896658092203966585349245630586676171121938426557033679174506718266169839256811488596740565107123698377940506796537702592811519929938426489232188344491636868121331349317506971156225099968031504846039030667651541608522832919547778519400494425529891224905559802977083504668381529717718255382207990640798867053247607910630697628367458209514959970773751551531035199253520449096017282776287564796921184391190407119780452371062062521705023607296378499198530891226968034930150939147556520371477315127343995910565969571729175490748184095370163295343933116403148711745027578196693444796520429941764615936704192190778758458875571176497367912389582560664239065676089076665996548284356571302313778903615168443644338124266231256766178631423465538507506197604383413597453494969148401108859619933960555512567429262900398215544168911555458015399015852723190116110047469822897956970710819122069512735656227575534434046552340544678342191831965316375995941364315564625130470134417598160015975306474399367172364991208600854367492193335307158837770259864725120650985507237519907176094448236407236902831218651089320844792174632700764865393960891546993819419554720871005308607864323045639992503351293810228689192260448815468495719480736076419837489071619861071348466970324416308817736448820561264160124966557620344898932105647958831811566618700298565878331221006778584266003818909139691219544202667855171147705921174088145873388687057711024639166905362533246969949516373957808738819846501282684528219040340322315695295863128054802584218330143871395526119650684272551694921448885732168542696545625908245336126462793914057791221736029259739315017638426661428287639787343772966008233202901885755692358761033665102700409664238683815026090080804194614033913446191487188378089328943790500760866276118647067785791716956301763971474978849948881746942880723948110413046418875600580485411253823824523642405624681474601833209838017464589524568473840040833255103145158213486599015186162216652748527186074727135247897801225602096693351915993199120938781692301031997419837258501417635999141543618393426225526416172430016844553704276917669060938772371509028537914751555468114016573858788341744696423846595395208275865875121212241210939220991633537029773946880015391631933855679884938671148347241409878815896345341266113359451599507890382803370364562342651253075473866300958078373315887440067405510026048187639775294391509736258234603309699768247445098516910931599322604483581760165074648535887055879913540765119805565798505588185948531947465380021433154726138085112403469507550489132807028069955161990877477943797782320882137106430478963995384921194425126163058525369716096616089462545411454469151228832020549616869050782858829716123045718859089848199776193785825127386969888269493827273601012599791816970776977886753623244943818768827432384283716660336073999128815644691408877351719920640447225869998488292056241798806658797245381825564486590194693769097620375139058059885375513553308288368337451533891605800325444386236644158235899072934775970679562277916457641389902014693376032291056776262137959388586963323152140525135398432374481324113764576603744278563215383585730035952145024016715946787483907376561008502991766886162045893315461657199994166851386057503709664926802040171269564545509813184782013124601945832676879078271905965044310406125422531235007741051686292870672945464177621968826542724987780140296237515463773877023158811086050260030386146438401552285440361659100408500228149170787148981411996884351543686906714063384023425219658954234329308901495737977068624481428558210898040910997334268832819732785084814273471649103289517129082793536538128003413821004317448830971123658928960443940673538652926590001242394565256099280665566577386623051955622608052058081198222998960625898723963629442043195529862551321310028791412564537298628462615313981721525728233680944662613861705383076604457307497804549767618457789341192229534715681359945970368639158428595680170228892273604447565475272897845883659574008848221661127633257287093833600618782291325033710432185419117222464816370619437137882580269073121076567568207359608207641545190635573001205343369453721435164881360738194904173069500095517024543094441450972797036429217103772969889450753150009443523089926584779312556959230278106262656632054704871230261526201874392309215257590834785657442753708699825404290640219347250121384439266402256299373008394862077579192474046727964481553282849453430549697105006830325371736735143830830980750566324932962520847124793707621087021598813879285574444850229852947471858463845198736722342592813246073475879897317053629146691367697908998779713978830729381196101345057063283407147080152269897610158834027791865691123112645401838146611802433646095493939698986771243521415676895634545773473789539036033306951649477493027775055415028317886808535958185005936941355416919061086203123473974941884230512561865445881499702351785221047655141995205616643992801205025173815987625372659355068256053766002860962122166826054508931521974783652173087721234857116228908876879396106367075790561164032916257096924283211404001438502782676907237505576583082046506355901642316894169944458903086950503983726903402914931291107823229958614857337972403573289461558776950515010397712919512997805784060813360019850732177549607126381147741809636040340486533636974960855384825374178838179812517320488092725877844667635126779178954577113768338571448196494191762890423726335094121419613924893244515746331582349378204007830263239522217567776459783724554954832184242523515671904400294482208825259648438034056919608392876508928745059043620938726410955953897293035307435340064165175032099585971396555897007319694119371843659314700759940517816119306987448137292811451567230132286443807699511750523314087989137061302216720166187628268637131720810597496985616886658970866878539149232329298039821176641280090012159727902987675587628560829069300188507326299505678547544934290338888516745065681563285017764428148778706332437223688673075346670906481855619041946704003747203761524209016311346717793379261287924738395962956080528616760129324189157707067374011219471345777218826859654366068337458409083138240134674117163401684434486142313168061976269461628815987559034754039331535941910938678446751182526715634952818904425383360766971682320770243992399642183499662594228047627419314823699818901911980657309018004347978527927039360772729176554716264729481807771240080710962393228272634697962920051769994745379308574349429796293955689436585812717283015516450908087953322528898379712106948163238883506708371325244207124582186108248953344152669439019823108658877189304194811605168110461082086907692734427381615774967435087806663334725786182464811743117963901891101986924279747275969388902822271017128013722303279322167647050314113294461494718897410488705642250107766716472483311833953193512794422464828715303495101154812127946766375835760613690923278623673983015046843087443364371348706351875302822511593970689820657397694785679657315298078225704509503195152813897855760077597659118898035672156320815311120309880418485605340223784998651180199440695831732301774459795270453184072912533060542039736881731556373222297166475503252786684628938769251022545816373746105345428147915655275167052327228462169346908987763994897721140005815343535968964908514671415834226560494444864706784529533565142890817534279924102827571011992693622092081535179699382649688847864848493058982371963951615910973951107660354620932227585047192582524410950949345528420542755453521327816386421011822618563237268429467081539609179441761594800600058943164409337274245601442986995723814341883468649161384011371161869985579288822804623122227338014562454379961889914496735418379409254722819562998385242607550905553480580483966724651726912107547811188504002813443541706323193188146062011518402327655664807144354700211890839986668846903851923344189500673422386683791987299216087624547901032574492329434576961506818993974376554533596358614004470307076558660295350042657241350091549947916715130947090333989483110705186458603768471215820000593328827377439481582149664482246461672650769135809534724739276397270900942928360394841365516671947647615404525529034782993582756706094790960354351151536034991714039884871499695438976030273918107769443245226179374381852973062873198512786984671121649152674897892114627720477521390551555685464226184672192393222119601757223133979460071574854832717370613634986347071928838512939226310385491794199506557141778906964583739320971199718107217239675360455599625687067781612345799300445458503245760434300893332906783795775796772765272688825574880228488080203021793868716541483575473493761221071367649610696510414180169924677324578972032898756329374511411131694250267366640973940122125552045543942290573517826446823318115461105349418461073306349934744033026633836050287701172803935388491624642330995244691465690750857660005758262530190832997809312277831768025008133281845561245472895399414034470942939798530297799261875406242415036740080817228244175891097089450288527212915736533924539903787133368734837386894861976141440883618002565324723871043003046084417719420609490281485073614713271859677854594072600415060756984196684419332726806843585210152318103206935516051087961893839721749309342769571800723485134010112149710330493392330318667131151234580199210700326960752285173408581188327007416083918426022650415357476253134922791469559777615243407984890814444147025931904602427380621307817796787369492492659686104633963720292351154829471543264261280642509213923163231222966418245631141539838162929172918135944159772167706635836339512645221578013306834326126535884343345937227371168068631510052675999541005612248749712985809635735291811309421592901263399132729942436107428101948978201470223670061342728716764448507887932965216411768336879029943148751604105266444400841011619895159192827290128038110758248579738678286849536274100316245294299728085888334894844758467396456003898847141534535834744547003620099293758823061040801514373909305157231007683056880213784357223048645752671244164895157449513932622869490414065181267716760309483972903270449088078519786729416095190896903094239692074281539980241495887755557743892363678620704632673796773258716377130215328470343104261501811992345035405933472295906700831924378514776588926855707612841997417327208732867570465785204552959607165395595591215643412219259994690848442915184537383806835786173638538221139918871668430289127613025361198391926596944039491994979513384036278389387615467253618904630069919357891469318615571902288905212872717422171370725749594478644872530100924335067458759131801759952445307170310534096582832290857319246120372079137551869497467004328980168454747091340369059610358517803056616398168812232167767057691476342294701063309348511000971259842666553963215633152702913234335495906789177160623843976333190250683130800420774199476339782454965081481033944701906737911984285409034887513865136347996117123009933178948905856560316092609637649987018297359692883588852366874496322565804805777978876194341359194471531534136507925161910216510619166369527509650055749200002811443636774179003525886124444359383845593684855169922372520385633274325243906180782439756414162369322563954470982347324760562623889388407187792091232753517210292765830789039093129313175184545754750970867879881214303345347202698230852382868020890290976269307787552705685858017033237620116927134479775919956180090192926422266596509890190175677404881903081974872153064789041601692578096423339360308249730856393348267608896014643888301630602272212961631827568031371249020372765450185993549918917364351642626653888074262374480670911888374829394506598607106326521943257005524914143175441096689724323533325493713991854974705590991499839017477560894499798603911873811989261115744134145644018521443176219557142807136726614231675604214843381396322991457562611526708087149569406210435070731134462191723743962831098351984179792424081258840247375802612185717290351202261068408373177558987701747650299227300411992119921022997843727736874507619394153550687533141705630343223259229342450545683437974742480977108654410071678794509146371001030177744917249814805836144189345748086005255506954417889008756305075390594672105164566973053059010042088336110111210992647596646818244154064308870598426129789724986004058382336801416637195447005019664328003979384920516307752618502934639208184500681101409042010452083754880603191324910470067478080332543258039764767934142664706705216866490688411159418132865167782864818626346717488417899115341004876363946256641366256195591270733032913916103080772985145583252130512468648743853532212848960893855228221382166562625574928911210279307188705471340159398981293234397408615199327555291990182502866633707505286903245110777908806134393899808441908244417713673680963444618625123516718811046437650418655754000918946311815990639038489891487270466301138281312672725501929432519788833657869716881746096321954633392855670671684477868029558941640521251232406772125635320222064728532952927467682858641422318923468377430914049316342095246398164445041066186757553552311073018853890094503212674657490860963327490909521526308129226744229079234423009244367159916837269118668769499976988220438601110711924851910805848230161125024136064592021199003599636852501734043568124134965823115286743936910742074845692533226260969776392756531555959556413720733470915114861971117444114205630975902531759058162666534588879873626927384293230183227674871128950733741808996583907775072555826732953359630346942992634905866155524213854281910795690342425105404633455259686933275704572071621740086560550237883762210926352207624989009177602914573552048194280734813641739179193097182579763380997104491013368950203933985268466679823593028751706268386925781473372950064785047258644564959213074081998361195364228103436177550384372240514307829129485225156712607097635729281714000504282203093469425051142792859370207656946770355148452707577852992872108352996916353466518082461346040552309246146251189493138573718220481729946108356631140277604858635817640109588628893533247631148477575800617079641522838277888200264450420871027356642919324622844610862698968008130946410645287430787518435634348097886411265811426899838580542423961085331694059391411508598432816547328898815484042118890803011599179867715595480389890409972521675142537886511566981560880364793168342827991043069965407675010851075940461250177919686202017827569938430402278849344418878000420388494143269313099168751691525177845822466992520885293676183904650257734136071953878477392036419633381477445163850714377457115611290764596682063486404517440176957948726971020447578543190886745410891412729281166843343109832082097916668267318947792759375540840186289568534419312886549372920713473772714592126991897723430642000710839679990293715179544065329201594502357286360368966087310442195349653788493786127723098468630464394049344505656350865066917388951466522724912725876377811769656820384307278750457734677457080477463670353833494482038699259237305349619953522796186873853286928394566642967940461659360084010873987841367485366170515679939420561799780598977821536884626951673040023162048086045938104662503735522166158351564350323732983648986190446827175667453459787130166870505182137439308014880664361601621688268753249591757042577045811410541939750551452811172168463064475056402204643061811048906819419900028777800874834496893968484753204950465378791666607171430457311371660965998040759999227494647633087537114430525797215255003611034967187506985951836858628400685817240280999647467421973474221915778944545432497893530011105244774488124517525637807352648188236872397725350036614694917012211511472515616535116582420938113113225028667577503523819340434164492841502231537451049363107493033608714493114230498155107433622388887472459324151033540357875841190169164688387943005432166359264484451726219469915575286534481874606128848056304797945003528157858129464109216736813000338763433462577217680728935589556013004380781783348614692605396674490521575098456249582568021684492039409055843542923987979164542953059047681578358694605687388861493888001808835998866088201583776540472452343769657452202738018083341878131525615807072282208054803697881630545720210380611653953163621822523299791925027964350231877327778465705459703683536044773499566903331762000014882353254826705416394356704083744014441860075680792273640956635292336918410450034085702119656244351200679041376585686934459107805901002452633104497063817354082974059494051572915954777426443565823337638388275015214327146680149528963842191266692573383805918536118056845807107187045439158405014349652742670120795917936489297212949420847750133369503859380113480372695682119449934275864750572221250404226773080361928306655724166566374899612008105556423163810455557372917331839135249815769113417983708840743458642196994406706568945851357555499718187377416778821539897990147976349453353312497004130077429438435625670641097617565202122472542232866094276923332778401130121123008804971531218526128195183089035085831800183565679351332242871708766732207402595489995395008618469097440102073645450704479129840423520338315184163691109548192937541050111340021729770213871976806404379380140797808901376116437870624608300015661561937237375306939945143407513422208772040972125215899712672800123312971773160904201412827508182894582910346204912832571531387337775604601044177092105382649966520752786744260704351850300874205874083973820091401135234176928429379655232386885521393230374669769672440173592896735005715391800349075256452599633857268842305575767963832805185887792264168641942702796152986315511360632361161729651143832776376197102486514961111652406503277978139393383677578396438337392189212535567499729956793371756007942968089702702874068501187878422284773521758533330079633400707665273515224968994449028113737922566499817197350325670431974664491677780894138649117420002558437525051585665640211340138399554346888760206860551021959786809422339814027275129568153996154324945054290687155677639234771078912157888882294051243997533839709108372103664885262070121732919632516598233684476638451095796561236833107153856596712314758883293719089118444259592690014676597763233322810017330769728258068525455003767899149464772129454514582096372733386730620028142272575495632284309731654964725355958137045291305755976294200616083422947433126300337966405279794778005272380197782661974073427702331592014031234446180839127669844338665621641713731326645466046730621658823076268780616359776735835788735393427343833564590060470964679156872768563335433100148080399862866334573465493815096323012906314572738418527073618619467851257926789124551675134719401860462909078727931004964800930334693366515921048086811924656125969434714079953699637247832564762236075424857032651315582822614493753850912633200731034557732473644660031548086896589876786955129403310391325539075551660570109108833687099578470395660445220343615733733990272104586485137302408341250948523343527781095372206351201161715986193475433678064659562507106870927186442973859387982751585086292109580561919701481914455780392824141930195937548512263791996490730897456659583396541216683145877394694263123471094614329137906381767447768492326681018946315668413213528098283246368137494849203040114117548357328158009944619459252336840682271108637956196878830114808004886854205001996590648836807408229242649967164522472997790988702392871374548540109153880169478414357425877324410868101857770090597394563314630517539890633500267165950420255702770417765418672062999441001065592243664302135273841313737832276241547903674312770804445572265788373842275140489931852302420309164935689973819193181455347781345382187810524946233549693248101740470509083737479151458508684390387613004455624666096462190252657795019088751146087314342205348543142414667669033770326014550072234288429687104766933675415264070905850517432074480287365275276322533110109669930299313010390938308029540443230249571321177366776566272866866787728424315167149103508104806831622950335160255618676251594340211311685126371658183861359601391356727141676999298479479917566252417563519694780411428786626115845859574447518097356770148164518749603292491327075126928749242613653191187463214366815765273505289549951414450852633989170330756288880800890382710031279399497071890498016476703590761830039290998856302126564281291761910876455547903373988860320757865894560594836997712778577604558930345875247134941132996367669137489323055353198497694361241836518531258769633400868175153216462490406359717649326973569499037791575870730895466558381869628194934787357018403502960227016608235331554748850314142522974003381856296136863102006838968315742404918643199107883924920982077307461346457098814854507121501206931189629825344875984883136876824700466302289367908252035336399547635842099594406717951149795474641460599368334295340162636954395638760430865076267475424530193652258925357898263618993380119282155805666515421182574045328879739337965105155609954559320038071925641325761159712449838912564456076150882496669456294995448817767491720278323141638231834487541513159035985493351208516946137448023440346992280248469717880611266208040459200967573224143232573365922323749098794273184957113702027087761824636952597213177277252275526933625819450751266160862923583603584540533421618530662478996837973369213214402105629561606245800346693615956950465415254471109309267457936296786788912924567298243479973980689370708694086339682709421946700928906412778231308430670499811764097086625126538910613490805691860502286646329442877244365019397809567513831060151546531079387770904465034652757713878899766006812730825975111603953889024640409244973527914093016754299164949213822152779834857970954699925114147115549719083942248832171491480954111885295848818184217357084767500780529781935264293132898298079154662073850458306829767901807756193617122314474529731394389812874617425457588711521217540090728811303341153428125096602479653428431487899935205515824742064700434460622615809943939736475213660060224633587871619664093727599572680701279245646000059575364221295060443573623707143348138252343560258981122136533867552640840259352762945185490339878873091541992608137478267685157240148102198511913769895726617892335917698280370834787555737042900463746837408981799276508227668913027734454238121414264664933534466375380628024077620746845865946586120496524752279736424854841431569242165810314075526884862563845139699516537351097258195253561948179076425022564268017396037016598946175286166512235771427390193094427985493302923866501027068973897590006082338276788713149510099689266341836184236833227935429098664716823362414114722415448241113576347363092250207607840837420005165824728038023842217778049652550351217169651063916922553281521235664795147463347892459623974147669630906751645519760097869116908528576926774097380090115185277355145507411415877833228016225368969708470814568692686988037260504666282193971106056883557813222017361311901516813100701794059343016785029716975988691607976710646899577284395584923991645356648246750880941664007813575354839362662940589437236462667900505626883051712058931690883142948070167975618944206599552382505169936772905457757268355970755215414340187978037566658720844584746281998645291475724358079695827937296766284815953583736511895352622104499190512501191563980672937903018819294433917099284656630667641345776272946153639941788962496217411884433365755387353080831343630601600065560430893684491146882300413230360697962864723316763722760538774712463796550052046716225431519793457571435042887474408003323507120815161579474357686512714489092182512424319007143727412075898793074490245644790491069399237564577973081637927461819439234451565878821469707521358870917962696947291822939308235289145551066490117327814721398186045963410298974332034573207565623560965316691715859909945757469122594748153554837757414846552516719037821669954558495364377240493810769063497112582588441117383232774828066712015437916546432151570141512692515710664285634363534163902576252448268297689862264556026578746773294582888188062817017096337041576406542535071611226983463159873780915641126320524482892456787090572167594625626913663884094969730577263548737272236627678409264703888977752178030253593414956319396916376659299997532528345393048503680506156281762100444120622045234868358119738132865116255829198713566767045297586669994343826600880006148635402705655646699645900463168511074683789492017475337808288508377361658778262326195377862595940884095618766891652318216938142994647691490667259826138752571762723513184254704819898353205552168656995545178150803187600052207719708056167184041006265114987158646661025484565893057520855156677441478966695877670125528651697891005875363535695797885936751392297557428322604979127389677219545602958680633069391840150655629656733935175132400736732474697438798594706479587982037287557220131301342538980874598843585636032211022134560738580028213536223898658074412987107395702631410790897961492979352926749600954837348212481454828407952148842940023981060215819855027372938076566079989268226164669999709590123157189569763293337478357194961491362725220465657986348780802259366326691369868175695022849092323216037491967168794260730992220977637914866453322616724709301017601122118368280118149956314157434154773033127577516701211717631355464985461177373728050849800182309516794825841476399899973139345771976244004798575776792174462390473391992318558728937940016200571256618774275926529647277856783122506826684969447534569757775679032385194729527060529755368135427084173638679093226295919352730239164144718143545029582544276150681596886192916891113259224719957448304992473558905322078913234713939023681468858991722505787712659936049580982432915579539869185558707509595374811450501289540458770415744867016301604175312707820616940880488409103815926972102757230172677753088347809882169270658211031432235951910710263416361135548923501608206623853146761073536372331640228641182222891163695797164657370348791549034270710322285286720838595374156969531969224259127726927662014573256209611215105186454497275197453539475811132614286631802908900278379168052814929599958975176559877444442301782261435753475882220329875706532261619125113992275793935594020970978747296068589543007129164886589306562497131322710112694634375625581923810820295339133105625880155289592434421553688245442435623336644818756429137277884084433842907968434805992955865770128970639163055326927165882876169481519769134827323242720945669896908217981367477097518521337679476074094347071265365071983210163917351048098851239997519420356182055496970038094465313731625068507260344943638029824850506184083138491984331817970385291641404959138956024857650455442467076709924491631779801784232309843241284459755635825565848835101469300620472937268210237883871872104413812110730851059939126668463411357820688512116075419805427961658407983891835255683598352885965390051153704112983919966870510314612867614378722676928514990675937795806842254330225573126053605472752255369119289079263678399499032428288371207408469308967642897787899145908690919407532098143648312940292587495918755380831213672472037658955400629977481865137865377700494762931325502430359392455845150167096903520247459973912880151889579303886894391837140295869421743375105347700923003204845653438741350039297912825769005515340176798305101409731583912938170300176625716500544149138077004387136618316587101275449967690946390464121824657543960433288765126903972895630712366420841109376204605979282129577509139705446906233538652522753120770506522517531691155478834490120424057922575458761779970785295142963906416230495333968755291640781160955784328834911965584646050262307194969235321496580618322854956364700913989754542938298046144543086247674261957660834706314980065293971413302545002067252221141091378424460326398598190852068045752799463627805903376463074625585472448591503369494659760357683401184680542572377579422138398648105300773118467397856332584902755888732655815499093019228992583690013021643160870907130960955740696358188033245198578169686103160228398078381578513171182691118995652069653377527834287643911799257681496479319336726039791251155958362353863460400224470702048519609075887603292031636665075672328087903676441902738956387786725063455226991974015419205923290859900327671503315808925388261352984763380013433798674827361846518685155321579633187073517531510582163472044914189595715035496206335028031843152406808069078836670360945588883239833630621169404478983378577652744583554667059236771267255757052865806805422898359161425403168104740851237947208764465280563616003485477541983734753705501208697080534791847499257623893677031907654020006358195815190948318534649988264948488678214315854049547387607582015271337251434228176154035184650357346616466714618089054924484295609187643051308795372264424133816018497153200248517744647607845393352619192432114767430535280742086941014162360650918012735876256070779994233794411793131712235059343426250722682669195572184127593646433531345777757983244936850967846689627137400026518604498278428821250790429957661271571268329655936328918239866780788150659071144156365049383382566645134038324896314525815659605169072267470160320555018353780132549416025563965551985258768749110523864486502711725084202304768557023396891897677613064305844588490721232237103295704911102085020364026504949738979177523857275088100269685095703834558879814551035825768641369100848284708587540312448783910519640613923374409894259180516527056758248387466285829857586073454345323534711977304265369773745813378178907076280103780652706488468825002028797492507083021853979895272126245144877472767100258247976155049171064744562815321196889970974001263549256635156721355739221903034899910633100664280497974947903376911683579866432811501345373628069033084195299857708495662031962152685037533673385998967785636619481588907644485926316051311603890504187813586748605173716766845984495028904253174845892584945899946859956430065211202672792789650064442825207844910637472441583344999741532510855787890083043882926279089091272461582394015646271290449018577774773948112720058842528829177285579371016311914003140602360924171624581114462155279456217472942702149589320832357183819597249322175373549370061838175322047233297304520673431344463277835916199316375377796387143179075521323357423666147785952195494175712111948698056405728565385276823943470982271907471295200621523906583768055315727575224665745016316926431233688581409066882132329413859167555018530002166897659533012003669982875286318876181086840502018852709600127800646261605999631638947957082635508353828235801732744186011214246380697665953561823061057353498247621961537176492548305611565346646480736287399702252074250416652032917466863417452666415452383831584193124136084424463758514941892986760961673558446868094827786075487725650316040318221733960389121099822982540521489199610091881142424516093325471811035479298755135985834049643637471512687556184550130008154194694492494154554916944952175051252136139688233889505564770139472938357638260275049879215436137966960636239819817222367603157723251932062720316833070208131848883054588309476820371340420133778047019596587840141422176874210418778188113444503631246066261075844166077098557222311238929106720380509338303505866862245923684880029173947738009413410211458220245772326546523795645289164686491029335109206505807625870165359012584803254443160103585478000133080790239991448122299050148370113747647083484160879331808497948645610621696594562108679616713514536459032603011438498372910764496370690495775073082196286294724103525423046122136942433587985856616357388441528573135577001191735903494029144040708062723001058745703946725967591029140024131506828749169993684700967192874979540229157921219839045716354590467870297949516357481175522923523012468050572760862165507343874033630023603250896632097034728970406643595680301439613086312208740204195242655709471557946209448691947466523862365557996037293072844913835237443687876911880448822774849435735454909395469294999410042195620699976906191726958693906128213468675917785670437378603386925957812535252364409647441493729890486566525056879694480215091545699122436644251974536990318791309642329759881997162224804420783856555344230214913599853707161947244935350771724155459588167463993410278327031742568696475927761891387372850997719286160678785706502270168764509872968094621119087269014082358728225842213226359037513834283730864501539522302279868281117437030034187957025926756642184525286173502022117283174144623688507643959374185001159512918912105286100085193022869596426549773360074078851663751140837073775782850840821451895207718420193121194050747926701644071672942411774121123458133216626510975785433932162757650775851106512616430826796879216206168404650449964739813296570129637959740225954195335072063585131742176309800330351132351720575490263290776759515409936356199343548163164048287573384697656608592771867243255141380588654194172291446867622162484063598007433942542381764293867674930728751662529000845173033887589563793718393651293811084230249520718875879286640518633607315720549583022941565682699892920596291631978012717079668742070646236386193015169119621613945320158682516594976110069069290977504001469383789590928020880387904533445157496836685692864801812736653445785581086078576045805645328210584333024857309152481859273891451401641253829512078102158572922568495920911501824194938637477262895578343097964365096735815093325582045706539498012635207991801395512929786996576659710794077872175547819264935163466860165015651078804862903985637861161624764100214211812719343226815671419762007312615066285647305595248513920403741441012027141415771674265038775143903828638844775879934428380579378547952404058077999409777552689287868384647750963938044231375263333346098292383589554709136040209151737179849574915809330112774388965478988768445896600105364166543973989844538764027955961830736615240357411977598144324731051162645095898156200699957914465333563375769276753107735268401487429417862363110938731581766908068928723103895708095544266353623497817737592302057812057502696923792874527579010399921159256546271965589240962994715476875150990936917129939590418226551362012909935034802214718977028586181248716424281604626555754545416718974107041576919938703838850883213360888056796795634953917524258606291487695376714546567547927421996882464689627794360072850903552573876310245042121464696658529801159197959504488738200356749530883149464537647406205845024170321712929233569350957749786995053780991637728677099538924750092988527116744748140287234783254245442485300153922403731105979476286594309364155079726274132971013793565497160287153141672097947312047295561265988086898754898721899666041134103649046044496057936674374377747598619907889139959750037705945299337043526201919346601553654168629300604741501604799805420778998767626757910686720591996321580858042856128014998129927656609096747504556153757233920256903489808787572578570010058985670288143372336014258170819603969101792067288614178445891302955743209595172795538137155960612070377473946444227269782741542866238713241652271821988869316662709362596029027694849992130728008829944152123667646614537225931823116148083318772101772840364068364097774212844976807127220088442414143381255670841079062350508284498755382249307587002425490201715796970043353164124680295404118292512118518279684825922942469590572502391581700167312974796097180677869023085872456976437344473757207854730696223937841480481099437921217636488799675439283493612253902917836634727972183880513454345607204324699676045297283369662693952873728770867528950180277770317471320160628781040147455351641346650096128548112952252920517377606334420088545920860334673461497259307987972775489495754213197764601650192647390755895585071327269545943437211658411796994771417040988772780125535971125732210350638284444511948863138663521478450628516254261461246207973465207088643215035504484154546698936232189253543271351728959473308427844420358645126916044620232759833507960311250527297842291133984505603782534515515777227718867998217746408957776691968161455917194338476181200160871030717436128929512775393839489393053188139797199830476911098392255172774763186752173334035116016302558381410874516282218616951802879682214077455870559933828180428840904712196918216358143662241567483253404194816324711007523296360237393780437347911398731052173957395918324299198818033298435799121944323234636969621858854307541779338358710516579007350724845710774456085633157989762069849305595805757590816621815271489925885658496007983087062943530103771800690637917665340016610046278355611757998416658140640512656430796036833474245028240052811396280723842101059128316057676573287089779823821361108522811185696964576906451603416123396284351006954312313838167314184132215811203489175618028701637563922868329821668349991646723303491176471638567138279140340760782171461194548737596685281136204634688437053778403265138630602656738536786262327000509800031788599443412523234901113724313618421004199942519685289004348630906568031961906977914214956254629577832287103785844577260840239560119886479885990890900683794276496809299182089426229858733452744373666755799531874198663379669605463151356310546384960616601937168781881487189288190158633143957064801386768940301507333599876569559507032205864034204812742150402440888543740348636274888173368342633870037315708301824612321565575637323075813650780778505003151556854718289176996321032043983718748446404380675776274575243232670316655476829596829789152353352928878108714314108440313537839432081958395015972628824904089934358700191302259098815753442168060324969437411727631548342597419067799491152267656442311718782977120586213265036352875483067063730046074527863786394193742276938885352506700869792616806574323495320202943759441230766650877610644731231064022897912173782053045534131962467924884070640871838828534803998958498290375847906307318061225683605170847712708702444281994756535850673610793917758652804892761575391564593696032438782858420330202679521811622745365904730387515522921667208788643460117473691131847499256189602994275911507842030946399088827393497543892177883437790532294927067997010867676980138634920987264898543125034284631470330606146031762475083402590792997973538683944509708322575151730912258192083015710845947743039770892843855404597984297404309240785245980391138149005491141195949856942295670695901877491268117983198316124577488690066370673385953020968942336947132564347598893468608717111596368805802007827821076240956193858823917209601404529674965792953159737374367690824639852306465777725306885629038122415270338899947518489684690569810061073776149789190176801834831333992030747235185754845346325484355848733833455186728586407569092503441546378907297480433792054386720433219717626206825676107807524537466450089172889489185075315968731464028450344444070183986010884001984100894539404453172766932396505136397778319300021477484418962172122221310387177595382293644355545985086805099806147878967737455891443234968121660749103519198473488380978368082536416446951562567860821904812256943670013740991238412299440684755082267162737969824808139453357258235571309976557422649457838825234775260019432093022863175292466145360008133121916301698730239852410311931235662026155716064994772384482871941665666698305831980254199753627606726106871681260610581829293372466566118612854219101307190822514636467564740364501355347601301132586535293713405084632975772024761475174949133891422517648750640956097461376453304808217888300051083438901360687237909931243899291332447068968269956393281665450101562934705052629383580748051486076567835998354877231868128197807050530207266329247304090809573975406568767147690132741632316187129525948663216422271816539956576339715992412037509167965877075551847345453831514775575034315661677513090460181135975167089016224806894901024980957582473678573771561128572860733639491510808475360192651016580205771515449614404611708728338507124096585862284804213386030797934256260523484239381655681412988803953457641048144772790242569048160432492250013219545511483861978860361535120636243125870073158653121567291819452681982064110125881152371376056661807938873721604961909477055133349099266064779024248237634510277713011417002159934747894018026405073767549377607874844908835427536234737069808070594175031408227344418100049629023421537138369068175111905385687488412691938759276498301015587984015499545229506586481509650969839154785964727778704875742900520991051017724828296377709384494645481221634114356805571271221134973803509453526419448338054776541367372736675815744045130412363803775548829895695900049663830039693777555807141762434646054225935894435560250341576632508267710645128804038896514060790814317703267758063533419136718036549642563285785070428336859565533658382339658976109022422058408367156113961101226042500939316485318966018761151695537876484500403337660313625254858336769672015019573563322607502966838116590663760221549768926750764116111519844969961746618215742475104781196099957166937183559816952329496743830369383660434236096825830205424445127953614724548267814966248198163546703360287815674451969497654013741261068011765280440499065453916214537169152312348250040494196513351141551332172751260404715372141394374551749199887271718933532626853295452993768055550708549498212071446209653500489383823543005707750219556516470522875985103819813485632523914583349544103390045154415469033247828907410882402036932945971343545223586424112722909880786364924372144547789945527945724549678639607366714372765987001160546625202701464248039964275004605950169500679790383009207540055898095650979727641550567242796853906755588726569723775835287568986915902430161923350747202518783801321011290268036643718006154745840394044601169029143794467695487331149266953552519538900369373934198519087704521955672210929622447956737655379224303990815394098972821309088875482640582542530247078220062859759620635076941640605138011998316380991888862348298277376148553888244929564078451588822566016756222379134974591721581915011777168587485221448315090402440751440501210439592970113992894812784833241854972598910104627470147576412345221826335421837085134658914055835058643117159984515215106939407300018935267691932008887115998812716150906259605088948152619663311981848494656994016253769004554628814429237271684165066344418668097614377464581267285107660555418479115782129609542578014676937185406711064886705271630020006051084565473155343733083429991641945920814339683742926657481562994398381951643909142883691314771046509588812788411537312070738970727923533130957082140773173820908331714748003254040554388057286814947847642269640403564096307758434267211675251906689518946180298673377651503212107519585168405069717926043858649556993419687343447704564663189946277067579537597383752657588448876621298834489166847144651247817245218398713928847948817852381607229489765115774240255522627871835511014208609961013132347734968040982493275088362806986516096540189264206223501621561148908765738526380499651473904176885733602558589209341323919052819317222128633262431739958145747088591601614230547942474594988328114846070124800281820102128987757823051359221330285823128088934896408040395981745468339592501234901434832604198647173440610667289016785269899251210504961458910940542181369020010235198312899627256833372614235614223615489554867175489709961336171837350679518875827661034104623253172386392349678362396970275395814922287185902387992780245451852382797095912455679241195551398957253062453343544036450834519916618614266556087554396462735399888232906744644091161776222155180813342419769532843274190204575590197803601723048695747425835436499238913271220316307941991195781771121412801164848624987284477546465983599883457861332598811145366069280923453957848324484631470054454464328378932705925337267434390180770286896975428250350278476787983904109207547656804975785832593770176675459058050907797120204777656543095039680227167878456029292626071091829719569818881292505232239057199677569551918225004621530427998389703075699381440583575234650393185580204781391295666556443790912695994964312942140103083068542847979452768307824859607185562927609842194834254420861853055110653290967265210609956699104209853226797973940948039581553420215802325101414059359616231463975047496082090748256627857282501322111753348981683933765786939210371408060790341494316777531311629112918248909492940098068320825529793962752250554449202191644135384413689383979187122390213551455855300278032548382926688332068257014900118426704980534527748574283907738320308856637983157991190249435601289019743339221880832724294886612478920300875569000691293100519977084968468365721960061816302757989055124477493328668050808510753872289426814990549033746309873812728293986743154755594865088000919112357835804276902909844628616027244914010023188986146277867647796502435365286922470037347296686705627133642966947717018002670430945865455255823548356367877017629397730494606821777912167715984512357926392096082233255358879732342032569058882512806976825007231922384753510528989933523482476359120792489651007223728209669132443659339391057542680555407070415846514262935040017949465841972413483545409238014208498694907576192662360611710229178448969390789258269894386518886013408394310711979640231460429695517819809099627902850096115873792420049084603481549166399399357140381634015385511434625981540195753299667057405872702176103769586780425335636810866737402497483140533612580438058758941279658505136678504232306957328771033105068776419433525047421584690081122868597334993756343490105673270257750123885855537498203101746167133952359359573380673761955487434844261191678491201787711132950672692136234381813103540952331708939386342904970988632643370939431996891152895422884367819157907837703022439716794770736817751929355838017368218939206888025517668645112486243057626271497731806233928600094465007005902508024847796647481880246028241817566761448175623446317042771783499448323372466372979119867066802559964481840570717649778387673803451362175870591723734434204414007279660251535927465541736754203663106668498748883661478921308144336286169947370866117147331737215884977362866179807687215638694476350569938571329592466213436708385687800207648779201205148438145803449109850628076254764193279053353966300696664053999508313355844685675049975046243701187018001828715811863487687720766524866624521508386676213900815993502840418097886109006985925038095162684103597036762398620797459729770517257532497491797271903291180278398647847886996123894610607851006749174845776911369208607397879989292897207853631169534504907989422003568412714822947207201625690590197598696659380307850743636828445978772410047723206992608918028791714097975838915819106518597970790104022357061527062991342884623326448076940927300070933857472259438800905234487737892810421996479342449045297454409672635329385726065714753205422035982167783982542688079327169774416041336414730470930331324147308877848820057108502756438855786338659848577916006103631609870426412356655526652235373495254622202373941820555123586093229252489729430008720781554599486746516890562296072994560009603240101846751451734650802102374948510271837405383350800403917409082853649358311851311156720420556452107621897005386910615265779027134529870772003728279244946189889414940776846727473112629757000406143228829079601829034736038142578680434310140601897671379847332444031462645996730848136055905054028839967851729771545654546451866666403699593777330192171810347186471586306292791198622561651660906686646307916086606067414126145143281579660697166507961372709107201729797067688268324296232169139990600794274052741619364664654450940221780109410902207619969165626353400390647997239789914321263639754336303947153348536245564747388894213730310316392907142572528571556360468281981680598751686743755473667827286696633066695672887444505911643072435695319833036317917600149299697011816388899650946303423660582232689801422040742079974212907349033560382165173867586539335868301885222930620615197200373084522656633013809282284004300035806714747807373940716717263795376084613664150462401968834862360559594333046770673847418045307534722933595659966031470742665413200879854223219981186968592903597819916859928813022433530312780989777317632784199981947494075572336486034847996678512807174000178237331671451739595788965029463643358678396229190791121791012814010995945348248394721167102724675938738531050706992362829036106243299766073898762730037891803167117696289567735522499338803485244415968105434970315345653994743795104140543899131359883610569620209606650958521230109862251013450750865762792964049727214851537315573228647963677410881542768374032405479660401499773038767324597662284782436365282705447077500621685646318324524973422371019349123104296113258337991593897801979058598678995220057984536913617331413771818727718387386284804547267626508141068242557332361780568882526825927186231752951362462031876552000639315161358388833249518926078949123819363330783951243987770744906418602262315530727147357656034421017832095193851096379256226038388598778864032317081789815496389036716164706798979578869319044989199812533572147322226936019659375982346650384440915117364083774140793445883346357607306608400360577460191062758576789128475271870160550387719119589952136290196783399276443833027028241761172053450755073367010740520976033987521751274575163169771901715374675112223334847004965710528136698636078978050577513611524998456479277769875609845484914657963604836460923748773473190617154932837484276996420256786148788934790003151469893115072895877089040056915906135555571366868248599483584641212941805273326952332494177578585978045427964997333333982877333476377794478501083552583311257732225851980424869876337413277212693282269513853308696367810992665308072506453188318126498030325634145554768111100073396946839830059813403483536015315282461005592147785420683282633704844864175657365337673355709671750599189368321883539810488149722756623625172507958716959661418985524098009558279457622336296397805415843639033808083732445510166805693391094230649543696257285309654566758191830876939888336986922747170134187078527784718391233998523819271615205724440688061938351907063096448049396113861475270057372657645821488430109916859367518773284149584297368774307718070697336714633208243662583715138971566216882733255560203749181673684365787060460315009654025929565981600486643917670506495975572257106859102837292553603644801768496284469569924896840143098554017674744253364356580088905487450168833377064480144583790551563271118029341287573682329709840594987882837364417928351824469975986896382827412318262393249167475842492564005803954945872215570913009212515348880926911268209512519167245746722284462103821503956851171423115813608101745717314618970383853696979163381936634784349769374437715564492799856668271319655781418831445532271320711312564241399152081889805230172155304054721114976726668076655667879427523904811105746731845799827675367912189254134599767951846073107199052471563350353610371060155843049605622380252794342759516484778301956511368761109537916649677916814637220777526088100439831329689576071954117577964140003101135779366541407738143033991235912999834218462966644481092741499754498482220971913890389888823499707311889667213934839666021673862943841190156535281833255174696253061746780450378968954349602441990766592220681576744522342290754547347393958825277975890133652840522709238687969690058583082707610517649742822032838764355110729458938168381400413866349406824364529092061077588821492674958391042965970323771261776777061532883766056670105517786036440302591510766156914677793137443939471697507610541513270480388283742768043371516907765015135553386285025843083677619129706492196589030649130333074214313944120294385724381077276448409044907375512425691942908685817505900438198479929926364071323231159909406058780614814716214580940723822202909159097664962177975936150553774346339261069351152464970770255449072884180285852830556143708517846089027885876861713666676643739556638930850206079540596658521921950313676126915580358620989725953163773959089679337986587401695774157952634696437575324975496578992476585263912350321437702391703959136801923072146548845102667568304320492942304601155807851024070776662411785736861671515216550792513724458198939791159927656393998418462230443145881076635027153642708777684450932255978845440391564674742617890038170138697472671770836576397924061397720749789999106319550143319953639388916582909533802619654801519266042221995776879367056843852529525438312660840425898620970575868727662062661312393275770376374133779895516080173149663410553509118347207112865803547554507297375416967722651100789761240998671112292384160057813202458476287003948217539458900484693149632803482522021647846067241080748243492980476901125841649462261325117951450085372261689593487562972984389442397803497257520338602167120565810783490760084487432248856540932714747890079276509652206296682252262779882567682755062959330982271774983052942093398212756094035701259026597466343368186660894161310446146417211634623723803222506581887854518793675903389693159701701742555157213111061345311613350514038760700095748120325107464887151908760657727705397019117169149973701485265114581637211446789234711380493405582706643996695974827229683796269698889985428192540586742008105687437886790373327005698659660146463179306145747394224118165140630602657873773942610062687780005358913819692880663459093573273552872811431600931876751477933139675653811482092399889534213605344344350878670635386741280287058780825553155588981248939275137511227714367747445833306633337283018472935895503098412211833445744815144611527924296742361880415295976139775541122590863609708332204025620725051537408976753767442127743203650271180140168247507574864362598754482997193356845773633442076151652123011344939300789940975716009055931717344238734241025665812140683275684118585285410302687469543807907871764894547447824460137628994112279352244838075084990948271766809094816208065246353375467781207248535746403070723152857219260179805242152937901313849059055485225398995508212399813863500936037133779779558144465390645959457992915422441697742970689306939794175499149564419231254921199910651509372766277999446709267726496624294153314195159557844997848154149250105605405193087139877264372507462575655703721323061996467403066603981714087075958809608266783975421966069954760789776350047855222355271786905089924105771040192316390034179750652824285578858089124417176535901035629398995697429814571459987497244589711039852698529079133074785693629051429597736984664210065297605376122453126881364479735246666772603021295492525646008462472439216486423423306646586630882967356377105536424777211068462046595647836595414450421417339419071680230632774962537535812264324293954701763710756255975314894254770365076898953567683644052344483159287040449073500107623406445417134050752195111582889982989790863937805786872534646961965891164474848632570076179469598208917249547251061513358128078150689719341190157925568555795708800914107715542272983820763360719822428965934101683525385115140779289331745202969521653024907157847352256895068957421448976236138689480078857077883271992076969779625916384306082427720555719535397750377623739177262434679545111761441385196810354168816465853186959868799384793917264977709831456136512220630384998253974421841236500342734884827070243214009580571391021115442967824640573515460917210027105802395385239972823082550744420186999123794488630934884051198635810029741010659326846086825551522829150586196869161155980926769912211371545692463332836428521614062483617183403306463271768235515542678782127957370668169207197819578841129965564648931209411160076108786939135921253784736253578596460373753914774838554016162780852372118073448460879043479257682702161200761803026075609882607993328427488684451796963582524162070385692159047680331964148512832029483555814607607127691606846661257925224144017235819527441633349826655976460257749983910639144713913649446150657191873164270993062586651970802412316234789007171975378772772969244809462655978921545552755562715577650969887674789031265319773412285357169231234179072789599282505560805284882549843839548784983259078681386554299385019207837217045723094727187063543735431684506333535208068897524813695186757649821881001805654157174552350969716695721040420232298445075319650212013053396467320769517648843860345035244148137172301201376404640427744052842846459995268820606071940535520179111521798700248551880628088733089883388745558192357090762581132876136994174204592399190360580554084439253455036570341222691682672584111160627986530673450019741552279210336554220830511058122981056266602182789835596978424629859594374668185981492611897870438986297190969193429893372569739804889182771640667548620786710732178397984692856110031834621223319075057012306262221459386851155913959512085256218295613565250589270738357779301885127836415815718377776059229629209042201956527515203800109905032235655892189139986085480645515576666035973628153312172548842260604485751777322244997837776850645138460581996390010189189188950336481500849730683089340926077497308232058152615413943254761398301416498012470007933835746709290090895332870604218876311167077307929914053982956502565646842308458442728070438463210109884160605199573011857696950186388394654292490646508092141844262820371251225271375492213000209599304377648500023988550914660572332208921369913447199187424418209521519385868269495734533313359152141484985722020167115572629989809497439173292552613387513547743148524569855031625329579566677565961836149998790762456663075869838466995991416682207544676799696908709234493854723348018349141988364968654976935778656046371174536331531252511861336493954857826701194778689437906353842644344964158823862779658193163513573285769943617725654964602012221227938358876729722858275282053513815503817080308036170333257975550328023062137136348955356639408196351898447808166018209436965392446982882174641914813334057334662686186491334814043291943659153981105360554001314869670733855721838770379870014518306314445299297427065180277598162146202940845368075482327834745402713122645761619272311367684407930474762989297533093560980086022314308549726430121645208054297424618985093251923503073722265525128996165846391942745701411173293392858905041924012144761576650937206877982456661014683647525895488746984359237912479013159677025266301838024824304907219024258824369743711687787817451715653116228604792681917248466950070268753743045171791277052295762326296801107779735342017590006327087969532282488096038600429619753358733271590451342156495593005201349104542644408673991191209754299541586324058200930174445799621567777556756258557307457942046583038010588766212202923320845710229922600240748267485481430628626999025636200007915874661163235464455650066672622988418464858855369839833730175003285754301771942819579496575318511519513363996758387044831014707661268039812891224982205870557751741689418404431442590570580287914281856375421880736053981449958773290050761803895000361818745296189084302039128201707150551900418180307449846260290207883146803124759107332318226516377471898857757117189451783530348394629399971399171062195425138213511690328172073351445778679776952583384765601772681382292301183885293930524067973716756728087690021493079501743730052252780499057942402139537104997797042486560457059912286738215232172310276438348972100987268181778438715079630938483600890790984584347272694940787505063652222636640598901029734887538914587408541498487602692618586573326769347675310998726406750940751058975404749999182932308473542431863191921332590778160766496243326589304683185162432654077182952521337942071172972553648838485042713868391425664562369957878438803524083522657573490660980832913567304736449013622865553229365988127474797475599575335716039076913379243831696836908970522448943283870227908908011936056340773060166956597145829560063792715488443349048573834793778547061586475737592107782915577574175360373780299999725677806602760340769582660915026344031448562202530194691073366690915572631737883474127904056859985741197116351150460903700688149383737438660325630694798104984503234805014768108818026515333658196919062224375946606712701970512483886508198425238833627088031129571297443282459008342696617683654615274195456592780343416740546221408909635723231270029266048948933295718401584191952893673375667970956766167574666022449252745606352802027517821331376785080116062918341987468084649617454410358770592079802864309458345074133326312959388231518143041947111726368662295436928849467848721018741445822791795818960893454525792608844018392871253678151391610329649995759575490429616862405739192984268468488612513826795889734057986435586301914467918052614365552416211742807987306217892752989825949623183464418289091538418319889628435805595198227383429019004981339171265197492126675627132776957385703086643919455108863399718621780031658332249165074796163229739514995219828733950696699715183928891880934080114968783964399197897224889309377199887540578675068920814735264845643052288892147902419875850308543375030113048874354999624998508513980001405383095464433229180528848504074133547859748042370208258853361166852696645938218297795089334909692173651962503066813330634142216558098084069092495827588199895139409577467895116356534646790400812932336637433266075190931087314885841156737882037947009309927026216410619488482072177478226366255966289950917633959079229193520143329829729592460524586728467466358476667009279819540413082946935346831706003406901894556958784346695609395634496382947839194230093473735369314872516870269778684349316492814880633548588477772845991662780046883509050703159158651089279012604409392299164312838146183818393282739966273179707674963230822884489268146225110131809447334054143080596089345140536495489423862249727618596255461205756695208249762081624149615329488267543156295664244860726026790840079175593395033536544496353213006766401582223667783495756201582398248632354307438885127255093229290280895374189924862504241329337492619257157598875905800126351386159046628177878583589500997022576852122432601142884710566813535593946130827940404493503857837533980992067424680443630442326155996817136250659100898086649578518655418643802271777610140335508502409408832680287848619150065798819992605307663433351191343044778944420806144997663048136208489549594800163146889607681098861092959799052221229583277577470415996127653936215092277884628845305897797337031231577316962624162098925071982292261688916682753741290962645892585230226556944104775700419280489648211198458613631197850918984325933051046673377873480687482261296455262708472821427476359927077272042358127251613192298807255767528351356114468487712175068047207176156975374327301438650472969620749024375481014182323203084935297137162501763268511034301151162164011271555723009973612153836919992485416220631796948705628305213569658941193792344370716363140825502569301579645115530742651382703163329241422767444006190350526588286721479877963549275134186846036574890189577022873910116374521634804602068809318789250341368468137720664776304456244217876021411158386633843821910145244624647549346915684631991410054866818960681546930786313637893478471697644383561252657437822919062527722086817937146433100091926919864214030453109051434288203279050437876275034329118950529792737502523642495585056831420217500368498024292628494452317259891052514350037190848422408636532249560197629137212390394384251561865431380047182261156739549057326353898131981978766614420851465801423596129399920719321156088581908809658085251691397129776818844233687354644988179989983977242427802375641080801976688279943268874905477141147429182196641560029454292059555327312689275715092118448371579726738322606895225262239915464263428607232746711609081149172859227117940623137391178799701506749389972244216686743925329249341816356736130765439545000825770961483572218003872455975512364007549176745955748264981442917433933091605353852607372149069108777529911186895493495789489504198236783959771019821761863999290136079133598951371646818623742233130755244804123037595623641865330213883492006781645049304518969689967436714447251630992630963150460267522676024075426458444629195383380833794888603767261907448306197446259284418979567349344372722493221386104615755287000084228701314301786699949462123445985983903844333349903278078305781355078270153680632302135552483083387779231026428475820704843714300481146848158230544028750116706149177440210107929263332491966940280534991406936283980864762673188742483746259732667218166543048398984222170236716855138852950420334343589584643127777785231359527628710780347631867167234691427886580897621259052001036002435931433578052758391174269117979537753117839269403140734986270523031052476992549533102456761556596844721673628119641172620847643080732935531682878585405268556386254699973626960562382026072820795090848907848666952417720007412960600105359841681124761337101183790070334965417941375347852052543148357998555265337238986132512460558426424400041543731281454331868493396517523307896424044691919488017548991176135460568223258417860539025579906629541008437531197156185604922796669025711111122857460446938750442727046070797699336490755702784541883626095851102808954792592152760090651198634401852212004287732217132829670067178718289799103090353558327813366408544795218613387540111476872694091308239245858048067126047627418119132775786889045109918338622795241525965114962301602187193076908269299828395356594326749739177739040031809586438128005016271308022540717025358353355486746457396935010209526789355353780759553727826920850029203606378852005662008846720362715433744384126031380168376272640233873515138407274569341628082904772912032374904252284085359970194864405110390445758394456007670001412456188681858895569987017969353827578704734283728814086453212926617879574464522484159205926575822845349962792375483141771448588238546500576760545152743385226152172506029550745499804627845446136453861300406710618281781614998356334964509852855595875870133169278965881138524340860940156347858770608983246251393175956241077332316500749743058372811709662583773549040670830566800137430103279310457694209351796628664473175914486864590715509318216133899718266069644700202085173846713309105458136211454538429518004495477767844700864882405562851682574617058196273512085479369647521783020078941689682493005026996983388754940036278651634437080634978837327256332613549159307353267613409761681569777346088840994074878366924542863377584996014170899482503246771680927694627336986477397255157449263065461218084681139154522923869754173358087370388887244718217271244560378182308732554777681060834517733183057517566841124480611916920683343430302103359952350088167853433266567281596197966155612182117239083769124344384374914965173781616405118696578588472132426469289018334161529919863215043307814139124085725474787578444501261971909051564872721917743987475008208855098369513511040093183266391525145674442520996797983581347559960395146141095487295658979055045038133108231008173537257714470889722285603057778850986700246241339408408644937260316972601195258930890649326650796960625241815580152751451293278130988848685821423100420592232199927936662222575036441942158718046965405575528850126794349413605362488637188634593693184452892407598003482383722751808891962854326902604294543344858011911288891818983592353662517073111939048488709527162244464012654088850796733225483108152220705986236063529038178602769363185447334252695820354365351878826879947482351905690258387125830159658987567940961867108979528843456957159693580678413106222674431678458597724520844895133152280152188367290036846347037080490015844216628674693218972387933954553342701535126720064812883205559285960067747051919102407547359294375000538556284734681160455111367535528821774203788511048458122460597735053273407463478080218065302599667590748730998891437857073682577900280046694910027668870169877058008439694639703754952965364763702303469808501316513399576822050425998056429636023950475424958931497061075565692801038135713092851716279235308144828725726826169328690508417340711290345752342471003688319893193218445534798178662930581079481096649291668024045348934519384081965071264186364920028493372589372816366054323360453499217365344985903380918564635461134680693839877239531650794830687094989315510827084064087221032096735904425646807025795462970999161010159903444098270814147225671898021858869215390691196829466888340031234736663489134631764450410537999586532557806894876851652051957520338618430688889379119926046682502996008474442998512762345298465623161999449772905511484308239262483352889085438985753257353535612342772797458220943420439401143479377132035706902714721045207541588229424427742644055354334809877753219203009234421053989263117249770320385469439444354996633896894162895408252812951132683878785641493771175569805468681604744696610271617911710183801313172138237845567324193007925548351801492078654798689198748242902549001778585690377601871306352203128070143866119887352283561064217059775232253458882222883282656233903369276570548398650973482505418413770789798456885431980668879789548801519816757659380333729206424266903965406960385738274145456412607497748109889202177291638982250665005233452341797102878419178643074475206045546573655913413924342394979530332793856134953895347428910789098885759593608966063465185908553365731988199720998537729931349543447855827260043003756585616133669382649940150106260089230624458048115634736970792620968172683282082633573380085009333742051171302504364026258908053071655861353679360092828316980572249092010402091609952135875292184990245594063198979319896840208254016193500405882387536811426544102324795418627909455700522127861520637793818099433295377957817343111650005049308017884653590810056027302089483417155552792698195090652931668896020386069531073382032592695513114945507835396633371908521798744995584846303561255351868711848279727479881084023414059303060914715622756056254378661875737071235104108463794573749887289602676960186049402009365428394765548701511238626906920336211649947805663768804888731263574923822130437393416632575967410155148751842248622309206986374233262676742446407817726981095683963837376137190180339610542544856246644761566028502245926994094905838748561550436333982689039471711108017360151685692078947685285363833228775117317991044923230114581321972334963169588647640422044774078215985985599104518967414258506901936361637005843635770244708645779801616100595258670567467258026703987853357201988696947444550715836605531343802882569905442305104173710766188169552166801984770995166276185058651053358126057522028813922961898806031702941061370184449217085499930789762743938752667366549880176150037659396267872724740228846419678989714891494612060215200297648878554494245215009303778939776163363384915492829955913836363294986433437989499667032607339024446172461661660139356704051747767020647786803224348056378025997797904663021618779701761612162558908308677891882403835295161796763442817930805952450741915681474243415184320062433516783981865373346933482701460045297030522421485192183375999526088578397859295374125939215017343266358581476844100119583671336382647894301953157090427267692116324849468709847727324604280477479016385107766015107736055615109170985174383622071522707797829642211090911425613493061089164066475165906691445368140618143828728980839362319740329391573912956395220064874393679882377123093696408281484831601709613471745196076887218280693207097097399527654168430804411343809353175277399677015696522233992707708190895120130023773827837069181554685091155824285874784257957749501106406301723153505375787969624443048768732788991227792772268237391610287808828134435661969340902565300673263529100612914458393787840328520899056589796901828141719036845910887038023455168135338677978346141106778520269258776744194206477505038798989232905122261042425402773792818365235496676010236423234226009642865994838124633257643895474707428804031775250788065835171326195181822039916220681019118070634158501704074824226499681210053225887453556653921692718710517433632095143145278822129021058339469787084489224669445750897342592446105558531157176927194478895938179409681276108593931996823367130392774068229660042032639396311690259195690910635663838116214141898108818531917842362158804660042147737908949299958575682382688571147826087006419780421177810574013863139864731483615210281175043157023923648387675230897982173647660058050622148611864127633217461959450274346452612609295017763725670671161590912542535975493146881472742524512859816292609607315538217682527358251769559578096493213672530912238680442030381377178732644429947400710425691768390787111475785745229401137972558992228667272842102039684943615397553103904392716088277451417995348208401312439286230641745872951431138096933485579195804616451147650540180656893019639289167348254787114369167901052853005042607400268610991787014299505242655894424824637644428368402672108003281009346240215804234651439037229394577902355444735558586643800492323843458492921322332850942379040741167429429488755866834118815470874996510886908767514167179118617090520710685223664623840785739371521821863938612492644163018401459264834993651858928092447912261297645729715204624671866011336261156045409036101810621506934556189276109464558415902191854324770012061304731651409541698398448972038701929967159576263913084855593124689767684498293081424648960200821225459960310165328187719377184341338775136853998827108223107505701476583750086568003588633470626100258069423975979726945285066979517515013924944195495514345927522109916618968765974969145417956735717512004901298117864093725564932521773286488165379086443503305310645676500747713584336753928223611770952367038587987547101790229149308632463302333585899470949856571665304523576067802189941637045534399752138253127718538411271332560008612388717187102574210190553167496187159712867290706924348816363248053722520966545359214266446551979461124729180330871927650163641553213612876572191742280070721625384094733548354610689941687183078506007306939039989812129403463821650004576853084229289085458058879953967517138521625197064554616306377773996422838782530603880313223575443959106944763665527010590416455959811260842706778826018527078628290027258361959953402188858330046431938868255696296348182979812739202385485252824999117050774950228641586779102593643093426240717732072705363362844166690037903630514703214243129186040135260901572473329941401450553628608605571964516249249951164404368190754995846745277541226615664547837958498445480954142632053090884141780620608087796993787264252073460115381697193987299981640195923968222527678889246094799529439665701544448349105822538616005606156587825583657002859150775219773281909187576900361698741777582151272327456395367684214954802928823175541008605619315189715868526366413284754086866386382807499841606231016275888685474554629419618958986090977359094530923451680751278472293510398632874998511042423188705750076026946918173049172961377318383246460572251014336183746231850498208024340297505963364279751997941965752769675995316167136590072286690771928833599017718858208708550126956067986995040369052726923599876241683944943528746301288541606206405473477260318876507468220955438619285517652564921717790383655710362649038354179036053341606886857229607203482028588210683261373186682603836214094955803775373179892832259145738837089882095578288309138752955779856166360141416426599397390668402399971424113848558804092041529451336613678425025604482363782708047273267245293517257143497553814448901493194532893984761730816297697953135832673665056252336890841923184911072312094613065417979600609919016307354991858738708690898579348063463547227096246482226200244448592577394585387604010461435259928877385904715776103742516182526296594517791754666972573968953396911985987957296973593709055530265369005017311106672605577263296748028349104300176693679411719176371094752682935403271470905725017142636053344557770600600139488815279044261915836935214764911099714860036631470517482972022557567707578943386646273848292523037216793298636358954053504248862017169749390078289306732136439915993385918564845030169652334259695730957491842068462213920747536501515360195514738147407190444205138833368586879109768794360745697288785232885587577099446418783122576827017925618293848996025794029346236908159361060721100210599965591610742313933291206234436833399966782611905538646392642763743176562785172121726976150612181983634339178424844965459993132618985933349041726193756609801542948257759007493800569374600893752721493486269386614733999487887840364358709985041976811951780253675954658815645980244246571553553730773681115356276400420154419326912944859815682688207768112124777310439561881738514420537892584129636780206680676923580438475448229136144766985201147110144936328717325630058024456371772803829864425566699419672128336408641026521584004446700629207067945348110226840492169935218674446940607257018645078363636366472330383800209257885027330806745903684663292814622077794749770875869751044323407166660605983871213134404422818132985563003337842798856725128012664125591098947701889954629949563161322195234250132846260639069776128226454122628321868393726711112093912460803839209526035282326766942456670077643850039310614843056751369691269647676637629073191477028210630988788471123665324066584874064775793761889619135006585590685320025283993487289809721894013737096820484781486244431854934908846617170726258849681576883482399903184550755972149441522667611401443838453546627079085331646929901505284531698786767272986607548020486698372765043147829350553265045833361131300708733430187522640802041976898103369015683166681319924148948328542848498525329829001336591239860093388266272848366434509586833003150196144726848206788362730588649871950685929864213339254143106749673270283271456730160944747952571675693224320260089243327674588444369491672608328171105569670484191597332450362545388851219619706190046928527512174142304711624647867282091446959969768884790606763694290508230961405489749673477967785357963617535177281296862895559019575658866017333672891024438099201383039032401073964017031607889363339444373768754800679455211541577327325224245316004265163398197121526030914638265958576536355267092824700608358247582872792631602118976702153807956612093114574063248316289236121120189863762049770652225733014126551595554078474899105679495681307770717654912125737049047446646635018006315632022006374742639956342850311663492150458610172130242612857123229185453533540656017344286289329441269356271642779877193843021742895554223278837689488033107796857361213530780451027601375945628832349779628249250726440965241251526954512820570815711689544988249049825878331985207619930182875934921051775205982859510034233673568031603662265797347200112652597681625678733680630679321680616561927581161270422094476070042612314626605858636161445265603760088756217853988956880014422797126710774179697206474262112331193091083612687489146979601600864670486734376387724778750369204474221348306745194343296914209852958981219321764399897427377938888185776843690715240338806315606223240628283769401865610456141111615732620824264626338363324980166647549298441697676845763258710849529846975464613197550168331444364302755117811973339099197461695338350481319024293631387571215192688580747293127975713284591819505349429516122497524963897767674422041108090432695055655738411110562181649981867327607075160206162183082242521581180651708483968097852644854893369421403786635786280367929763486058705670734216086320884399217185829910476400595489867629006010349131236448082966045900418725510574608042589234645954194085207584131307851153074499457643302208676920051580005373824596070221808127923086298562670798544405174133238441661589467975636529328563375843478734202764518536176890142780353138906346788857895395694991705950118637221065782058216525236707726551164250226939824745972726306381342413573307817481857023265823876454146286318348024903002655499608141191981690740481391465614239977456186424172832930533648492638186959045924539833153965198102261056258112986164411758372402526160024664159171181794096710944210442816738263107001678394163716692252725763361566851889963169525566247321366723727489341231509762301354973291613299704900921713558671900670347370168675117704978504651134807889407768523226227634572410647633494609826126209345821759757882012599801928545354584826177076112989766315957781723213053653185955550025577334499601274557138124752988188649805634613307102599710734640304672900274390713525884233156466040593543420810236740201020124370061731383909705789388848884370873372891405634126556634221740885538494663000250018702458577992474570630159856810066010536290825295709684624073549579400671461158943377037839906022119528603213315660280714201190676266632453884326651247423349497706934976073777321253137183815338445072013295900428956400901105387111156588559621455586047311159257924822613224481187939149848854883960515996164396935947924041839040045444135192533507033221885792373983106066671641930996236271728976302585863511725394532839987240712047189557571339606102217467878333992936570427852133626458272259324338838699340507745351035284228711117755945674076679458008927782763500379988298140836175241403605700464467074907117054619450850893632809985471587762391824415093077734876162279373867310960342338466192157443417136037101599383984744170614510830456518628335812605731831614252221170048703000903085689995825966945625692576095314869755532083868192825456548652504463876880879656049562389592156285541612867528072461268397419501038836083987327725702382919783537750018385997663571163701815267982051997548586790069936536001846728525783387215487165418495543529024857396356219663489093490008174097089290369562296946990550818850405646446835810769905106512184998734420241426268086411244982036268307757465759691009355711749878419106795991506600968499980247197400885405537715964937113495635947232517549000914424354411824820715886393228441068839160192437107550287038214543348211571208991278379143070737104098099893593400640071206126734344553554817564606492459631359232999893304837519410647389545138528634289618386362213151401110134512667527992441954040807935764398324333416989700227446252495979520674013933182518125587915867065964598920953546038623994018795913989419228346239496355169161428628360137481862041705681444843676775469856246509452903727442348058391795575746740270300320810775407074820050787933504167906230818581305300506335111320808157195346917631734701142748674884003202656092539095002302203924470501692398387268605316538444343243573234288842233103926017183519375338361665015384252290439477718388620566635166451843797682547493817844202709637950550129277379488799849363663151787663691939618318972396682479653045147400420407776136078071844660501648972258677184984046757675793988194188427929840844463649754233280476092759397764833233235915416521786851399284353311020282067895262781221405777427295773832570593156177683567798683100035998761543939385878114899228851519595862302642364184281317062829787779642165909115505448634236608550923340319766284397735761552399583787927879196732644514436034744706540230470146427021812002588571173163426795932717954061234223141583195055975236868405994771027856837297293764447890684493899307565746662220833669217110304379027714708519449462727664291941833085842561171422937557419647293569007355817460985552435475290391394681645859569329946983968142435865088937678519688656451005455305955039016131430397658650004215959121100267407998549180798343070213267057105636798755302764032991899952368713544482034718759243127934926396810812892725623073871072105764546309369800239642349538287869869330010787701203759704958051876170022711453643805658902865720442784213298417886476282235047251273648997250121447547282943979512083742335236762192186571152894036913840524656959223524819211120585213542653811519281529029024292859288765406453175802274314995844899639882105451596943377065246616949283751412569830467523343265946164950622398372089107830677050025833481803705218139376189186840570736964172041096984163823372467298915633828442699198690158268002538075463378984023019701911361910224784056242374514242610155230028962830765376924245496888814313650465039504410894948310834445267690851189768321132585237736991017385615849702640387464888963326072673504162638393345910093411881396426429454937191334701933267694748402432835085889166721211824966571385057667373932341090127495792986908990550511326763883824040984168128592241497468096891700042631743485016277359490047288975256775359109420982415712332083652811632906728267641116775570549152907618467455486222050212164951208448245186143133189608397530546558768920172459924962596238037672380761331239462110986913093527008650306953695079852337026565653013353206076207827056202028788869582982476770065802090476260089540496448995906824128636599191305347209992533839935671662433063186067938733494527906265164432148767501629562968031410088183907507184124279100396616355932561797372400990069335388342216476624237629133883790618161452303551366185947807309902271251742654721695753388769010108371711819399777351753991694674110440036101009542961555154589938409951608707316830714143104007686530112711365009637125098380729715860813619167170821140314472499965634981420645147107479324728217384983711717128005414632606197785943835153887567419018061238321141619588663765964473892107686436069036123893700616003775748630820890805123779053092068681779337020502159921821216443936158448362215265335540175606489042017562247817402133655015997461624313911203224201549407215414076134498888603049452731855952151285361390742880332301586257810756092582894378610851985271540205670946971778991430346404319139611939032014543411437457695049724133550140397008169601834215037950873829943854182994022727628032700874995066408420159924227475197350301526506957042946776712254699219123339058333661426327835576102125029243558190572081775739261149600411669468784810786596805751184786658014837931143792220839691042246120207523782844059841230272694837819047938202406236704795645056358329413403091935450899018001832451933144846382943166411744152790679392222608755584155795640680680796851058395485816384825172508044296628920072839661350990626641709772004460272042734334462392325459290101179041224404189952936455187574725419183824518929546105196043224515056159034445974554676977596072696767289208315650099155046074001488409172798819457126364696621620870208810877375677945119685128052135949952302912048138221984956263004355676988103173019896203599166155491480287319260265797472002629508239525204670410800564057600019539565757329301151389011976513122271431665073029780229288738443347144838259329988226728260695253683395366928932291964805782840928175678084266842512057584500893236157483772053678826376343692982744617997782475527649897030832014578335559870084799260299816567637277224352369928762015637471815592234823400491907413835251674661117900367131034340480522215515075525244653769431944570717642642096348183164658792037015051483153388939084284244936613157388054333459442185287881929713896384801696390067000305153818462727156677708198526375879571663601637078860015035996159111004115075066736191535810369849067145684836718816546006858311068261197166806832595218323199335100133548595436699712964161972322982786247337594347723956913920517345380968942726398246470570319454042415305372145948138751313832757355119307068836942608604904718218815968956066086911166995049386944213249813150644113592195419231689604580420841599910349118377360837534807530278374561969617313442900394678864503691263240099007546547154676897217709090824457993081106505976082828853218432465228203357865082475429339731588685933114203828915416285702263590492860245187716097934117121195351470510416269802530677500336445678178648842414875022397263305043347041463360600970124716483716525226048608648570206820240711817443398073548033899016114472008001216112333920571676928448776784002673959583268349433399112891494513794888726544318042915776895104688235872443774021254899423421052619714519818513995937643674368926480401014170831469323828858415346974305935948656314581621468630013916335646462178099008724483529156596892656722193708786399194849919501632582137041935696282836316537927733776125281292452665830911668380999853817847357856852055339961588620190308457161489419675504536011532299439972897973941102748104942386323536880789938140371037148745979035599240369798370779006052557250731806623547287689563962699412413297521606604151302205564671131053069675267521312550526281569426217725063398427022679267673345032915417615990303626512427019030371516667527976304567463609144512813206974586042764000557447083657301654835377444514653605288244381897446062472987798704400553030242616783649577253457939978058081164660648909626687929510796394519259416619071368531658635662586525017088515137825656662555345320191570234066380069061109739963415616395624122060899045405524300164227408153976247780865596222687116164256868372811395603587605403853429314371324350559183654682369571492407056637893517560597766048210056283079143958317249838967391400571662053324813868986881012920196947359803535634036405503058229383970590230702430358105211553430774311913725805850739303350900240702758700649809404705034592225677286569709572929805631854804727686425306256122093639992175760660659328677040809564331891003243430410682163861965028174116724415196069270581094526154713179883952669190211059491318348809965168435298732429422573751681738033557637664138226903239643639839543036785981027020776116669366402059780080572611899180521752221811897649333637424015915944223999963424147408741264920128560925866536440031363521616652233628224162185988744021614401228755170762061082673261208051028015885205436532231395558713692385228208819654959820375336075699891463119906331841252283152869948484640962939397954263612340025764428193410796495724264818978399188668725760159345428069289889734035988588511295344902804190535815231165820838226001521166920318481615975969335812331778097808309243884237654306191066480736512907046964118764848914624312930366334445666426642065678504345393746232866181466106861137949822011509841686336935934517950563801188014441667761468671804458010709109838300649957303963045547392284854323276118279121347137636754824425635301308138833795548685767984902967684146043876244329197989583723814233814886020307826088823259020933081546445663749205024626688919306784725910300752522546285414476714855403868671978094507249976298189386525706286146499215994706945933823528249717685565288815666006399031550499439934919142836664815196132698448532677486031908115359037380798130334179720710346190708232879644062649942356841360017059547783023963801583709797460249768154593906031159034306379894241102650108577799429455443069815102351594124924664970802621621384281905103575631296645651234505412584479012776650780515250009831010245524895998841864742653867356227553942765149659428351028416076443239444342751096806866713327206355620295251154707869311562122904621363430702362784328883023087513917493403236501156876785437958507584461674431562677497863349177072182065685650761005844490735854100355349641528680136863043588700838753885046286975485623596327036656897617267100166470659472587577177756051350035103998676512873077343389015488947965960467696635779083475317864869645170853342218497401943206852720435642932806546347749004549789972110114248366313598488391678238452941138843872929782840862017370645100050064267656788356401858286772936059688865257924409665350190153275735577047649488187862224581595066019104642709140361047929289599134598308022379216327565655118455417076467252455852869074116669657080111078072755625698385107920455310386595236161571071276859702602381804534493892910027773694908228239190455063607601983932161555962672207472108450509303856409663230647638944350619021741141094411922495911634345785442702550826667911906813289411433488917315569059451027751649370234106801637290018818357473086747695827604430945535275284324130947892058549995702940298709745446053236613759645627402271687383739543149572163140531898119624819721356012427581844368470528846102655495836415184765285846511579919305310504995884016616893733568784167892415354821595280318072531210675068404939937811587632429341376650315117348605585538299666190245972619161260324488249381312717284394611847636335612463505172419538493794127951660354693217724287138803513134754211916365916547731992330861788319528460270107760536961612665433107489444930646904819282879186118715786828075415578405884848750761188910356986820486293585598119608087432464565772265780238699477690757245819064857097997100233565499350555586787212081153746440256922071557421751054693448253652373816615516261990917601505781082878830095389320136953619530060463336786239403330841335631688651654886645275521474042239350287900333267610932369233330664817608672599447065236650394392255216451195683395198045706781252641251159016631541109396963152517891841995608707043023690341790246682080296768799204185928477318045360952390375759711973124841113069941410551058449266786617345813760329014402154874950623029042372119228841918628663773157534819969697466324540805850414795663454546871707612834948335805688474941688027140037546905764221024364229538853756383407488391066296247725056941727125186881932289621668269285483351904632309831927258817525456513010011691011904745188228319390459177729065123925907943723260394599279974816361967568716335438144454161467004854203958442522927112100442612806307750472237347370459906693625853243640160258760910875152957561191001942782067865976533856187584845575250071930112040745761023422974736186875848710403851950347828195910042363027382631150260796655104996821849364681388206902839593137514502121394927910911467346729415994506515677755159690551390360321752316653454821049274649548060759728774130048319202892007212697082773212909003405714387606786887401065676586813066911070720090962408319122343413275634963540623558833705284074150027493757987627257755452062776265176437082838027566079948591515940499612096031096322222876514023265037970711129542951172426843869126822356067032005491927246633335541512348582294647705771324406296942783178559761916861769891436484957550943928493589427117158475457022608987757026736358332296127768152792479794412577297562740924909397259842023483627052698214394094997573941524378042968377734058639588795171482052561350404699881067674310231985773564812117151035893287546185499530636612469253702491260689833639274874691948042617231192796654830378109958425365750321665226767351132880082757916960236113598091034056258621331169041625076041537812288154249647825935368177751300837372821426724134579944813589982444233256715694546171673878241571192914381477878537741405192469685330409703810122827950662092594505978245226288627552899714499487858518283048747850818355135988124964546906471976624442986287139515955805253800292194228460583498835058509031115120254713913722477627562940105937087482850068334195661606640797408555705756835694855014026402266733226361810815581126605094541645898733357598333485449081289776987172479353745261895751068728958252750150718179980974202372658315387152707069287867908245801419228155330886037287410618011096246668363935215847474306597052828062486023252300099936895553116808742911130359389079269756182236422532027043005354452913291254410478283617268575136494743093613095267349012934156574306174824220756016437557153921256530506711757285333299988589826999965122836602140240478524807157359968452276207840344956426970127445036466330230307112762785222144851490487180799063429363541455006465008332630993948349778513176316902043338849200709291571283329219533152758154422347970858432471282744229516235867982279089359033464454267891992767271338113331448780943282638645867308499778886841807106796838355470090219721912434497925502490145405230003225215616761601135126825320918217645958548518292241097725336494133121401893542940458093637853938907874280475013926237178407971425413579793376839682901020573698292547250550963218678164076983208794459476641078448256985212424317368118399308672476874239296096829612837624165197709647002864915475202295063410778421736340498460687834279286148552482477329651132131782671070595754171469458569176666769171897639260166284327104465644338064999302570739915169357119320222160813200648286740328608074802852157179253308798174048643241342867350863508255787892827671730098569006425647542302811577888197956901746788351717128848812254283087724301316840844033169690289890748023321702379018435468334927436467511803827567243793804262364668097837977608883397889371151160836080575781206835109942622967892542962277020681220604435736746306690208051224344638301792239481010828797671095237330732899779141031984883015018333813109208706406836744324973055528652288974489131386883679208795675365103613795698201131810217491625447887405253729811987123480892404145431796376218079358931868951197831714044426985160311602773951962799613152528780813894950626641086124956421996818820037221247041924767843233333501459815302293783761427587197772228455103274657780795385515510717336688400829094736050726003222498009378724502954122896958843144110210139463659617985514573746426425853684359984740820380629799169343147273497943262630678846371994567079530350907606818755492414507650628643721933843326177072612576732706039064904573297247933789725196894308765393185575421044519077347998878259633157562998599015876273237810225080523094473723007258696882108045314420999466402680514287300696465328402128705727199825062627268076509390839787349770122709265293747529586064137538709497007073507785012177442569100821043802635403065769015771099756124707177005337525918884607875481640904353973449014641473944926770525143364411629682908628708522786547415137953416784936156556287321479125240167852745353123033009467179817182371679730790062472103813798869076569384241737995451084741157353998171110500241489867817126993496212755817881561427922574242927359581371420503177328404058581984032107430671022249855670654177727849139189078227018414546544028335900614491836164360911391161716274709362887191879301514987455240116974094795861969600452957008833522213518075048329899498343976153963168178848469688835781261617579097059833242449635905170311778420599814951921568873948672997461553806360789694370922298427492362395545309175293859189055283163253885708715886919301165134989408760804492682885525474013149438897398393572949269445775373520843578205529446064635196771832884850949161927649591448343724899837639870980566291316837481174043343296831997627466641549513821368482366847986059030033171896975690893372386822743132301690990905939044885131930691425855404910998272393735485057361660242545784717057436789872221788411322470703035982086314216164808441612942448855395959894726853827327720532715988213572765753851642228900523284859035035655642700382963968050589787509914733331595195510452145357728110767921411945582486336477529560227159001877854240418534225979961292159729627368084301979772912488340854253209689031967700011161436911480168946325529853493708720921535219121086551624261778198348431062412447481632856227158139906596782253637433998300079744514949458946232421717645646202892543944263299654463293178625684507696583402355760360416623822527918189784688539878357501365315369479607059802600368232607735713601948424644723308598783541817001963412835034939419698748580989732258336232267033665125426155661571388348718785289485831224035837205368154089949833676354768763275553645103662914194264537505737634795778258007944219371387997464150868562206795196554061789963571051103631417852605664657168813671931281114173798261025579912110648480922900376320608276970001259706567548097313486856451680763330173840771657081717371820230033717316435792413461214279634652571383847421185189359607161046454233771345375327495241511237590162960838862739114684954329131415341039451927586056157643659314936494375828278971033007641238304025580977604259678648778858866171818574749229409576669439853263048008488935004036478863780526570083021039640854462029507279853577405762550924444741413255973483781315574872074613284706022172716102203609898283863493950642454662233081279331283838127973704170471785595963765833857053749594837666564994955108720258392551954724385288890930935921762716644025953634621655593028506564244845860781038326891121150061466001422591940371934848264503951546302987145616749352517330773204490677372014442682737585870911377948200819628408715645225477021669440917263344922983601062791298878015136685269239637389884259148844417703651235458785483223313729653900530200833254532535252167116385875862890020641900994775845816574319283349198065718837026821474141493017476930236725792520411677425516649628239481922188923579376185129132320086811625177433675634111608560284107530464777189270032184951578245986789272061831938222336704022298872458391917132064939786050848466809440015471193740537497944251080686509243657284264292810125909313335336207622597403999462060372721853635709146066602345120530119376259404095804360079826254041406385218938615317763927064693614147483816197066444409988460460518775282611899598769549876649485811363335354151713505851733050584798479649434193392096721269381589703811520656058354452943196121334992482363908570873674610504870809747059366467472633224341986909935334317160951774257589767328264046609220720839726383148030124326491751150083335679525849176298006543446917344942736768873942970547489995111287391857428723231092600009744845485681430636015092184815476076650013165137333974675542256216120068760648150841625337956630108094069928206235794617770258167773609942811462439300849060109032673232218566107053068768115415611147674052230633754364817027268811582262678537211348143123859345878035324336474594980421577476115370205355442522414977526444385534764061553762841413171154074851358913111659974095502364063418819563538697150719575701685834223966469628718664812571149567115062848006633527854606291194714557369413110079477101405080166817087640567375897366606052333627574015766398608170154782919402405214593468824611342207982943746248648175044449236683332522042999759024683840982889751508102793047191632553622870009391367520444685957812340326423268829609448756185133024837466683374165006491876447522875788382369230824106008372899249170757219591232581914786093861717634510945975898721816703591943224859087953704781467915101037652472185236186989007599282840763838512099732379840551204580523304506282017351228184617139345527576976910406108261098762227884551452084133941463394957242310509720494796422968118991996140753150040799581589611881147733204628196060622947607593205153375425774314850638135208922556189516499176788268247160214051842026604843896463964292553552342503206913513053307819399722324243042335787254995178794472762339655476523113610198270113575024799579340032982420931366553936532672511820765630011155494160567566128516968024920750084464718788926849391694670519553343144555134778260949361377827095805119481794775662624689658173646872739561665029237332997177072899079002788064878869849295457396547022440509531768161975924366159300092578672591224876903100032407451278405406720192615253418120938456893523050091304182077658168925371076733465219138776440674302100945392834929188100721485062503254495827607302288372712070246781039077562020452801666406987517994605127308980512137836700394217310279277751134014289215487508580669973814379124491286755487927233399365407680768754865223588002613002876033702806211136525207324152106131676450185262120655651855260692233078865968832313796710896538386223198189273296178256927704104545676692893723541716899359954787733436214226184688475761833328498142875886918992836321747900490011911786330552698307953748437699814602042902395698087702995089430357507756609632941981593954163399849777765314972289244578440423588522062669629566544655781257694043502169159102346784694749480629172290486834099778968965481710049030847271114824187723126269095615058505412232414929616564261071293279639504983490669291173917544244903208661977340427673784805132573655890726991477877573967273302161210077105039026113357736218767878673332390663668983686814964156449413050421156527399969534811968950623614452382686250761090983373113375909588481729758707145772124760646856858766218882687378580566158435601093999575458022937107221623761796003014634075231960397317159186176502276467114143540007786911923708667335262144341986665892771324358339437605858283287047600134896044682863230767884799939398886308418337674709639173816666910642195762228334185326495071519415867429820167924997110501345432790008515625023769132445933902256894537657437465759638097623503935914309733403697064308092900451411840215263783545726150089796719822800039174812500577249932575429900024732424355928738337314051484287677083097902447612436848422351367409246501775192343203737734277363729735713785580357339445444096488061732668429128118574880624434905491181121346657418087154201875391544522877783261080433702537428346002946580271636222213857900290909215826550313912706663174369893753538396952198890814020174029456328431555479709479476818951385477113853774758794267649201595483913127901311776453555691971430489237384880386962158360296275058134678990989243010469642190599617130790508666305562885079661107459217158682833852856898487732758535231701340235854768137334029142650099276361490634241216239056107535177670438835421669665733090509168571846021902974882083684592921232114654284375475254659170419746888336869548417471597687193282691698639366587568976483722847253705249509177380812399112036715356615657249408158392359446538478039324823594514038694936351623977589270239218529070954554583812387760925387958543055585010283712658975092590790417687233323157468589179908045903611443872093734587883712823556635653606196014697451648086773506425655456141698870068609262498673834486736379873103375191229356643245233892850530641572786312242120038598780158657348010104925389178472873979258679038631731823577013419995097395040007165025891560779303201004232668802829469530802758595550105514989812984801295936747179127464815378727889644351376095364310114422697935228931171095174676170488632205347830858310832209941380449238179132004560244783445618782149020954621930050847311548355366345601905637906943307514765882180835492509473746454018014449921642961971055950065396256501564075680602838403654194853952095432462606879951063851138828448647874808203428476664255874946796299483039746683987107415157823259579680415861019627277582303412438241138580472671899513119648753766807492174255536157432039738638145745522041343714224583917703470032563533143949692668376110589518711941907931004511718029144489010292640090080499173507114886278144084364597440090154235463490435735267361225536872345896264766501310783287320256487881303244639626878933056884309921732015829888177992472103620741659360437100560239725547327777688442305097772585555930162927235512541894957974188359044764370359914351334362280919147612911859829835868094391991970439303961396793324203259778652593472034017684453876817684502245535544281121482543875646323095375611350329680477966827703305608123207226165089425148300578658572420862397372270782876989706978812763068259138280749382434847289239980510371726648952019552101977889950331284959060389850728959993677709087359425141739459518992134106898419457777783358908602975109641790179241290843045962569849566797608430664415555562311286689640370836169589024914360281491102080893113975239224828366025605548851651961440123716871544460646928967605031297479553522317620754398156076994435120360101667308898958264168314144411230136026077435874391095272867035702246225162946639107498267588165826249726880148378464612348256138005029847003448668157008991344769703623946768436902192472357328285628473407016804673919942029906229536569166392453489236254319557227446739603579819840024842151555686971446547777154880200253003087441728936499862977343840878729469730536748388499186523279862715822888579927814220674945012494133653444269501322394216437033883009106077932488990579105964740198115779147702809159827830465849615187080672086693137445100751447111077179418019151872222325980393029999604120006313624396923571462609173518482345789734946845932121845335898538944546486359857968470067784365548066298183104782532710954202067888042858933349849163965368031623790833566695050997186139086160363189615441059289612749225459581797313500755774992214770296081436461153596813852562556925319987378459825289809327776639360559805958223502701530336952532297812529555601646735897241670416288555590915523567187039747252097033700341412379910753285707608939465583393939965445771839773768977554860206077766551655864044337534045968398155094335078454464662400239636326660321177105677854764263042270439179350017251955710663912028867665958153902349488130079582279928621592211896732789218816420742877390681556695685375413723774228030170090640638243407260719933655283187261451853199824690279289583298938471111054833359154325062251615350689541410281944672744601993752465106713141671129035916804667171793577381724481992090767411875185843816442793588643465807165230983661014805127733804365512754639991715753756341796462273707756388811590370638820593159395957725385964200817245220738979011000450796377613630341444918391712951458324741923281472374695574050168946268735504511384801728714255436110996956329616580283874655431625335979607777929050594386625082827360694663833348624452163873391984479081303176584232408669902418726042901890073867821297834696555782861433526652876715437195156214811933502810204304056204460819197421064214002136791037055077048908321971380330217420179047407049179239196908547745613021124783245917054711536388858816265584530755877289940290753128355706096481865223695819790095588404631487262253871761281411624241323411598667812484966393787274894337520310955622955793105621093365082421493469393376457743716592979567724948859319821136227779507952197727310127125264790119656777874762854502287049810674875482880749017489600666692904375313556726199634713449756995733649156514422057300182589259081452840791616784403551815434313961515890919805725601568394140107188737233865492187614589995503102707005178318267560339880328885842882143524581469332041915228064151128974277463192329139627849092362109241852237924865890321831249257921581888389801320971765749202735401021793681576683549243050692900266293882763585709080111085398778332742261485814149514890982501747190789298254848255328263174017672803740476749682821522929876868781149688574886442716050782223097706710830240265452343292893679380833861293939231926284214275193081032113376057535186754283256546456154508491735404926204264470738904720867604668710857007280345930468650021092043261019128386486838064750955988944326337601141376813662598689833235451447366540774588133887905765890550376500742723680872502302177031248676991665135909730684338182321010828719177726455773059053912433251409715711600779672096304531818198805466374306206142103751722757880022055165097426667203144763285772282273506646336436304903217530519772607024946626822037754392972347901580411832552385870400846643696128682415201958757912598819413337978450136511962158686782443831662038380165583507989361371560531296272983154184162207773132980355005880602967694521790102147409042094643561149502437575647007015695061038814594058351762109790971747839298771789384411706163430408059561094702648752178375986472071532897910903738945393211617679006679287743261645806158056757526393676375219995024445732801365424201225783407492853209030962457236223803856207364441490440846651399772711525319599981969071622098875354392003627218139858392538207704213619601857030818396331612304947309817300159199888174874836177054335544468899235756376819530905699573655761106817684162803145806489618529867929931769923888176236444319795890638353743977311925095576362579630782765276587568776413577692201698600672208350590965135053878165583533625832911198699870056651084969314767419176473635533889856590119576932864306325586721083654423738083557956592149873244153384448111105983135717785145375835130383504722521352189565582504878768600678968243095307293485777754979257851286042669282036391818983785326725355710530164083478604597572280727705595363650043173565898023132929887736293544020254918449656014125211520820627284168098731363244727444631755011787918254299388889744008044291500668495766525351508149582073121014979798812212824576055898421497824698848426910793770755408437650215641175907509879448811727445128542452898240629058265070318440896707064428329814679984011104338484330819132272216532117122720207481203651848797391420140705359278176328097762982683015050151829966323825776371266101624036927135684094037516754324443193971437923915236016149519018365803291339953419173350180470342093825951961638092307140321991285724166166842030585757086051331013460275800516375009479915876601411698104774019014134281685633200833630137185206353182568466356987858513187182766868918830157001121405199766624711073028274107515888676284760246457566031161479428606582947352470940493475541945031519180628052336892825495514740162736147957496614234376662457981753460631943053924573939085268222283120313656679089994699000237743276635658476823135297697958576898855990166590799905039017315984544988011279039991087195893081245011062129585021244169779882560552278027993840977205743909622167090168427361119846834135503768618819408486013033430006641201299369308402557676088737808888257909638096624527056857077913869580456485792174892674888643986961164202472530348762881344678304422111060483890390459181240044687183132994806151542761343162574989535140433960312434406307522400511246772930775133097961706261216115525976002756462546498550203150644399019569439683526556730435758620475200938163472176447491212656228577634062023980521147240140308243866096416019987465163757874502998485364238351075482823162267296837906214820512506838318405078244871212103137004422076501675869188452027457199142284307524093788271612469017670201694483722103851769429656385255041103863572449895338319356319406960731088836374876978123050878007384861895491976482872271521524126114347296892851856267932420936344409504210556188637479458686234413214264739201002165997570060128624181467330351556400617788012829997667265522828764746918721666438111252364808023689514773335234519420985697340064640484556064250545211466953153843657116930381356838230780564586242196804334536000497270719068962884900856723001394363684219776984042898293355104978683032515916041101649588828577065600621689359298067545435866327382057869684108509759765879662993643082756021414883170764139304644973555551262811001554763433007768721044936808966744668163809209553684965922135961834734566579279714263099275003562533302921704919726963004833958464735919874650393366591079111943141454797196383467747250294427519515929873080007136931240097356884355256847134442009010574725133183526762433124321750366775759157592568937454389045667765747756829335788744872646737257266732528679758417465531005337108668699819414405976757787911669407939690479504559422167827272029890034260057914259332272122531974489912244577720572488649093133908399385396489743043684079335953518049715640848516863812960288051878724646293242479549510915998439362820333423117553195932383169243171795586888096520892138741177783369368228953106008283957210996633440773171647366126508725562728006664740621190056326237794794382710615033818747901391545519662638949429595391081069651448887249748270435832419127785108863200536663143827944999672469354079128050844755277066369656312789208685890978883454708755907446641913666115639737600493423100197597510166427018584265746519592698217671403470172900225060727495645739360053579062101944092174038228325840834290507453371038412187461029579657423563465828219103985434595846677011371648907187288350308635655458870080331131625116703615446882743375820795813533972929525863704944400025615385078125321044059180845982259181645790200099864026985494986153724199129148440788548585817191185603657179455287726160591918293656473875886591820902048281806218264151509204899927839314763255708385005739061927212798101457035451312338216407441969396655071934500206018988824352903373758112980273214056443064409004414597033647758593032255066385386346029700017508272891563516564271649693689296972724358780608336306760499631453105370294959603589170971569640881529153968750354241177758456141078664619954343997252262129627618353642593865751190097152821346261886296580437867590121112938225429818803290103892835335703052279533100192066047633632619754059734793332214236718457981335680310660450128927010644692843027134199965406533472747325965551719114053346959712446067339607999522250795825130815834736090190724085793598684606395360648835816502674553306017576841838837861650260374547991612231044669177379087309565346623969115516041665852134187816052644596883229245881304142588118154968971624635545975509592869837943891188750007620879831696126544503120899367406065174419325273479739501344236774563596438542447466077555613109202419411536632071625642191015533264694868376025741293280459508452569725730190613395169104375067617202574884675698437606793772654293783835013758196694194449748561186698717918075027096030599361550277630761456204028496627716840205050234959560998868166496080622085602927714185834927327578866769956520655136827180842424338035019290869727068136738227333710234275649643255373316300952407497015057052966534377631916684109620452307654084008136139312335949895185623992195157407102006565750562934696825918197649083568885278621458595139055402976441464138420012385541410119193847501244197887470466080830305663544245105636691938706992340098818514401234149796129567288906940411108535559215723280542093791053709239853432786421228109396653964983635395350120341084458835922738776901091794608556133753912460053944648598668550541567880953299338995289599416011567824881687746298658489298005992241027191080639716764901207419930398680376995624060787640803285708254436817294519487148187816275226252685091197141831632154147410494510614612117552288352489503623728823294226539844907688896890421445111438885215398200706323549566148535687776732395285777473044726248534239422021752806423785803180708986782543538788653953916958675224340015782945103757603626251359698913551543829333713879870637580913792823808508602064300808330883862585524445416571702178768617428029122722699654945946817357315519757969203452633719331596115051921044500629828281838754532029740671569737261354873152327002246703160891657670108677954661436449592951603737074885030611110934272654130320544458442855011325969136635123923798952698776331974970585571372183404787130362916294839803921325554655515842700571963061354448047224549000656797753237925488641683288573470271528276645883004672864557982020965917470916632274149458074176353938203031154541240229832146034348555124813913897243368266294301090580483008020510309593913540764686066068827618296308281029712710176987486803322935420371836878579869726415653346492413535704944178146065579133580778017718266909012719504256879237886952909247615210313544680575161607214280481919884721838614665755261372708020720149292118106750143978805905609202323178264055781649226094577561231003150531982114972907650720232084120054665457372382237264646871792649220692833176667453139050379184550775598842435516531136075793311945993865201981949663106947471195474769327548423615875119277960207204420591059021038205961118333085991036699596450244537062779144414109520068826513640509060720630313487408993161073650832063411086071133269857399456332565528016878368466072624526194862286285681473844300158590463951963373620656816136406661384940787806305052224967365450271994682584993154680542980290222762733801924092220889962765816775444437687616092593284898054600587038148203377621439852871162397101800399186737061224434454692201735364770837515029424839621008926952600830636527646312175660077672580383348355514387380389617326124587917543379777731855704102646684459783800635205742412787316380294803972693543287896993755199873518528610832753898750872087367192132790916736455530731790379873788723155364993290059343824129158347961185069865326099811766562167831531425110661000782285921387925950951707282361856270424357933478547119127462406114639442908712661935347716419047213188760282393241658379267382109742579461989041546871057786094708786682024831137333566118799815055108655306161346897805942307072501731748875211212240556300169474776489041267298806257515433196278218723705305838260854528791276880047433745582171532969902684900881450652263810781040663816082666764474618390981541480454056478660001737336715590342894699519802282384029680091582597496473130754224157508585084434605064608017988951090589401814101517160048967474890374159333483928084546122594563604549539194599298881469305478554010939517381145208521780437265532670421899298910989582694327840347210310089995146115726075070031062188858276146780486247352192589776322410200802521349428581305371908585339129581063338005710873109109154606576128481363211130894179513978433780709412139454676134600505356767396308296731773836834588591051160458767486901271964627254748931499407534065724595573263223486433278003993469303172263665643544622938691126519548881216780681389982607794854597092301155508919997282096168539873643679518169408489560447767134326319354359381043710665989931507386759800976326604369903435841794294122955639780106215636136625812069227846175998175182504496346247654372062755804781138188362892949560587297769287406484013986023417313978584695356693488655316227022432251164742980329936788784978156161105734580345583811721580315468654550394408171278705664730492454499866531307321384232791122760448954984127374061983294987097207765560378256832061468019297364175683440944401989354457519126783816216368074978373665438729214924568554731166229871828631635760443299905853694905950805588097102431188219089422745055031724361342072068282230066144502787981369039862956605052868130681375300204280841395634902603764943982074566990971121217005742336887510602280919739140816770781983312533574818462550280973903364904489142043427826411663602163097852468387895280048211813519648507292968082883437183461770880296546527303092994913200246399551212544696935595800868475730633363825062444184198428339845098019752765310671196789800321448564341980903619257594711880851553950374740858264285635799436164351913839965682158273411141948992412108594348762816459469578201852221304153921221188255675253295119316775280692612266404925019548915500728410443546050891566817691544940416377782522244878242681326110068730161803860353268209145890210717424957409194061906553224535894556014888133646196430492054951139234881437952924388461217760631816847019065329524587211548844705849380077155116931530892368237098571791780746312105003727844507232617507037289146551902511554291830356472144220984054034765201421213078857705404697457669025013305119488738687144231839571637359329648680342539061042431737749007952180603130838828051174994908102275399416414120476967403541749245174873212971118215169251856925184081475896688626180195396779236610716946926375598541898124081758242084735435368855359991581853914758023925783516535566594757438192753041545809093596395430366470951591894806210907417754623563925483627127582588095971974353305907484955962267162276968211964856573891517645803615496516727783167469697638883169280045712513051811986404929249964818733276648638321007212991083590956405410400458015858535536328836588559623883824247384688270593901940606979650504092777846686523197393733708442239870842994545426065092935020599525009905784999740144687493006571669535036808939989149912186793108702407740355634241573139297726540923246994549639209203741920759871189649334126392503566911072350960178063020176170414674114377372763858666597737586384656218003387653388112847542045986327329016343621680188859222399143258811587457055239364179645213924176914271685729312850585240457468063606539165612551160754715338591956416676878061287885326883541999299596586970850439187722569489916234846685855355223383726768305853739478566818304833055053803307855912877613969097198759771135814876060377566737174731867444221043002067930334450895332471300249675175452218705527681298604238182578216536446427165281728044599991781486366208829463684554858362760648354084403264566795644876443453106314137605150426770545440840723409479337939123072226270507845827751358118745340515321820330090160714041262661163957135771029952665255081514838221292346054109279514551013552831985587991344561139280840278611094136538681085967766387384638386663552411765776581794143553711612307173611240834677445776756742542370776894707181724273194353227185589697843158648436631970749126073060918090154029018555731333538620310102346667161404551304064480627018279419954953734869046441870485547136798487220372867230435429372961066189515957748252895142990671794776474782510023653744093755795624725992667370026617990964687490162813165673641049668492287164149625687095292715743536312971643529081679816305300675241441754850579998884304150151970042439048210743262979864863309256244946830035474830956345170043031650398889084886704662256777944114132117902319926341750465721808392184192028683937494289108596151104957305600402649358459752995600568681351066771276835397492008633430912172314537109860499390618408413624832648437881528288135063453659537901304314406847383839712839661576908626312377094944712975048459968561322963821485991882875980587984602565004171965383745492268787591989985628658628897308560505364697606949060264930378927593053000660898647169870598146951278062313396484842946122112811157397913640914596453077850702748667091056065516183444602803395879349759147519880449365313585078869241482127345261135316211826604133673142414376857705154385544755404264485541078306612125180520395829458869039669506470628811876530138543552749946321381398180608660915352480095338146963820391180711370849927173147640191449592657974151541764520364863795409649612925643137148081640604196903106663402416033805782472740315612116817850475714660390056129339088274133592368059867939038526453005421091780732494453844289497375467012778554331800925957172289070216653859835253241009105058430786081668505488970865262883420045541112959522423697355544779771948507723097670202025459256036664178795220802685101123065611062992353933453023267947317288547192838101960704926355463864739064848925492573863829062750014938836725964254633593046675121132974783050678506968919934935326861322240307174337287549123077904120054769482882117797753550688688897652093467715960319885314369836694754990018759558256578055720115387314604134855992707729262059091490025570332970419230403978495646749741053264855902252127088878065619187941400862330613380480965169438472372455570514667206825895653726515245810027399532666591172768511553966699850603094288886243516309882059590839594649575221448648111269670975125304716165467463287513509005664455086813846487229954735274488627951100346232211585377408905458183897788535224449915396765544016740270635928685618406932847553930961194395054665147386091014892253281130241014069060976551994965471470998387390848420976046703930297066702231765668254885316782163339766433705797475206346555794194126348535769667497611866265005192704626529075292079696078340562202672556793071055996414789701779791004636549274332907729550182788985663662962777928165244161412714632274336556853902171421484199529953420217809385066137007688712724639990482270855005559655887708693352632584216341470267473995976555705687738880829498289638898665759520351027517525077473985413826831426257578893116978554841958703576008109480707378106655488104104130026340919014848573337300533159900870994175699607750435586958962948836840567701838683204976426022338863492100796590186861895007600067208455138070840430818443602249725764614134728661745244523158686884927047902393854541489939219998676445124784189780950665655740613120526603753770759860633274431794101386388690406046794020197881211200002793433973132356426651091676520675036450060014212356956599285525899758879620720777994505809397132747347358691139950032689729686517242220290478043521851185621935428708705669044622052337787121010479153321018917271807802696578454905971298252595568852598157930547632140822053462104644407214580925121794903682949853660902443873431181605907549528975187301396861047306750634903920185487533979370064695746504889212306576670144030966502526905181246937896746160357875187750141981394730516309732714439259945319529680974790827478075526137651049509529336890454074056790168438194869494836003827133671356995100879157765150711731503345523091643101725403946275699472473342895571561333777443722951243886650039676219678410911607581840627377843169046498768785038321654252175448624697076948856568524419627687292565656853985279322912465658522557189278238084757246570920906417943490293185243390227181072030644597739577246078269317787420139765390339192527987739571189529745232249144037887225310096308425474602820555945615527118452748818866357339608635453076085635374741523625188378746075118463098424436639978260317553025668918547978476723709284932689787526410547396585993847081606954372525208857417436938028668456804739369909215575313760343889768549337657160344350287953701809864010678576265627481380280019277171263686703273158504612998202623574130063481330821900683348035753100780433386480743538045311521862497560962702140766144479151423178421303790085794750991297437348558800853252623723195857674349802626960874061774854269575149725716744503956149709044007670903295940815735935802563933969160056009387071191210410283291152538367939384852100787470072019345597777513900593081158236001187856686451765957353318710928178721688232766683471581541294923010285309804779930299029634188356340884183346616824553904369440784569683029113197770513306583852203211424820484944712289891559088202338762937019187208398649427169772132533978774155573842005687518655031259344232096650147646801022410344533356201260382793621764845329636779101047680786925442086478925452642128818075089171693774744203443327957092596848425681431632368465123260185598809582188586823320028634563488774135367768807228153412305548618359241752869144903885225874976389203145613731401012129991175866792402114924324879824186635062683148770004126028777232097274176495710923712689700801723838117628971154539382205605754736699252535459439796769119703065782954156232063964807462982603344430306960352132618457450468005275792612016222459348870083197945798078994272429004144552591749525268816437240484682498843552192012938081974622818289236880623300939803966851107396923931436449271438272948883574727797725163082742248441129345287481317464021258598854915646759410854420375261941945276706108557578527016350000451215046241117563687985753595486791848096190844445791084872077621094419743806720148489161270579693552474711554597221132772323257251615414606218969951730042987638110228750671183894215406968804247104515909063384531324943793882815558106700682126624265876705815480644881013944914016671836535003260166713245095158947137752301044110029379178588206080108557325830685891340681375612965279896614360712470735116348433965263407791553947717384202934207956629059095311504237961086898775034073222188132078307472804622956332120990969925718080917907865109225252334875750241822528899793524674802435124058808789156081816203532766730549826168250509985529681541706083476723431326769828161609697233465354889474982325436673065012079364042973933014341828322361922660877687404559371823309630502609017891766934023023787206866561847746404252210197668266949293118652401036435126198696650694745371962385172059205764614187379826670201546377636463694391955041630128255662779247137826733919664998294560063518804686480375628694943678450188573487842271495623760414051739804422853622137844408462991825199037130773250699116456313063567690559605938894015009262434780038689495827411594056569643723768348712440613448953020165364053097979525333273206299685702822518329978304771846558426488705588405103373455507026235014291849272852948866066319934966980075070777987843586000472153096246273535907019208895696108298044034102638705047331294004016709715319728957171276457892735162029105747873955861956069662539277305046924160326720538569272187656009436778015206433746356107470182005831643672318172947015649750630039684823280179583180779108496132366037041538080047489968850093100583221427662093335884703770792343995633190728783173542384281622333001105110048739370921730842100798448465621541939240671217363984692264505965470988784632680420468093897530732661156809630956498743667658117004240997833509311248581773175714791920442062169251330783125240782888898820049945085180095573527604831763037861292351013058516260870305898587340044757969585219384839875495271372448497360297974830578616518747658085903640061442554220680924730405406939399937374009493631317702950896055545471694321262554329421309799595527770450598936722980151066659783399315050399890836382136237494805442486532975084685876732294575486226430897787619595649262335398602909676324344810631946322260440846536979435854672912020315726811476602359650509455310058267031079306548550677638837486410330801457817724401335075070125154914950460118664850621750709897371486173402773121760085688837774527691451455941555085195614379165670514181953672239647688351935177957466287629688802790210540493658797142487076751102070369054794668357307920710034770156824035425736187446965819073041723691779039025923661488330796050761872537672286650498867864760004381720824497777501523347368093917513290050284345468767280094371815672934039295773671651336436404487427185021361321520392161282095142355986164245359528678817877124048767792842423083444138608160507985586945515073124019314337247384248177750081739024797391846402141226916575520092777670164080353396542382869320274554394470059176723420310935263100246953036871597544217846275520560836731666127027435131237664773729453044939635060963991549138279204853926338496380665809384685871531246096329818547349040127651440126199016086547460495757256376228116104755925371985552846344939053431192682869066557115203347656313757482718213841387729768889963212158054931667902575022262170319768549243151630869618583620540956376503491001361094070152623358659651697184193220354322643847688152902446459082241153240991441175267940242133550544520004194659860500488702015783629170874960643925744382958702739342595432261176795801920042757461323478544622103282318723345260719405170755183936245335589125125349650059208524454555485148937699276578752630380833462048272229425558418490035137728389509718022413855321944249220661609553837391328245829288025949668506242351309813362040527206817447222804956670167698298817092910895579715554357626387870469928666655447217938937276710805303793988604004820921984959694755040279983073480765905185647306287542064998208956017746887484553119496417296066112274662115581311105282479367845792167544110923923838545245071228576551040426080161442211163849923980932191937438738683111483583505579548916504523287448792114394948278801349842844981343491356996537735132699694632066459473845523871858393138397425486029848119025450307073643259452184598463011418462202698929477357513430778456286485986098643073470003914668886664455104953603473938949298135413802449670816164475242648733287654500070168391879558816785878018775497439517930337993376954633079039790775323885687397925873813005779539742670707605338184750589706260325390268186443356872162787202144201661446723131924467656705162738806806428231622811775284353226804039504387880329623468249173902451163412256268524894031460397405732830568632966313012202906423639672699707941879098302387583973313900977795301817625930338679511835620736883551023000045417854848881083839763411893954032579909484091545111280811555057396974639113887215089823193528250451962301253866600700294626456353936151555331867867195382800385396422808610489274725626744220781285467488247726761165911639219037787240845838554104738953411464998952612765142158287034055500528607864752433402969097179552152169767549703708938228588477721299204041016076764565603556393328463560621104364916585870099417286023002281222631788230813777973931752562410168829906039443751522140393946736465222670362596222731457541844752362456249498559213164796740778061440114342959284119523975234197567701619618189000901848366505140973520399060653122318846923681852679610757988684519975821626747298067697647617257416723924193719756982452004938011371996885648149177788863769444114431336274539861573635580204979197002966769226849761263287961956253935402838150208955163862707060391265246107701562751719658540251104936919527813373104025131997404053204214782590670081301554861185688343772023285609887277583167087106018447858157185211855531286924833220123145161416065693115634702274388847692582789430719855898912125143849705669295023688740837491800471321239226124162212802291790656097342783830083083226984988330032509908203770224086709716828307557207398508405598266155305245666833996985089643611693782143107036424231418592588327599431276106647732697036097372146817433818966873868101809320198549555644515628011154542860422672358695812052021248497040516864799974983628480968326406614294355952066583057458825425208305281674864623214437119348532452022584153026120810613063362165107665034027960016186493801820034460858755628030977356800373147273625035345059445191997061699629926670187218407393662731261663515932580750502868044670577221523940748336531507876664571745884996097914549004868840491237313353110068842417974286370531834616010281533242662575496061750587743800104405440649402251832584315358237887547601085341043319323489067842692709321787768064724561961670680761430136153360459693887822609568303202071543917953208679608801270455263711463901250754396204979252243246599871326857573293075409528393508827707972573786345260438848103103281179509835729548134695273746715316112721259085571720466784593238424619409782448969039186907247550325388837393958067929270234229819903945142092540405809031125556406363306206465172940922485768616861951074404454905658387180155081604483431720055453911009624862663920367624198371228672916242598459643590918597760558142170246668060633405106155422353366956848306197800042295318941502878375724145248408099919372242537442084186931789282939609888598577960806685500875643976111857427320596176978842118921382909904464973400227500390407700082090093063664783890717249195584044524562017740932133934147642991759948201838737151923929869054173002729569202358969747528171175374733713998939909601119937424848939513262434425646304535277928799862868692692414767003851113336104383804291119348509259418497378819030366006997990846618295423117574512417878217937722174171021569535981057261418005783679623805453964669916188402724028678653288005195766439844378341186271329003121255912503408565852534469740326530483155293572501572072707433409930780246739705805602814152124548871624452113359437828013953028790282611144919641279511049997792480186711343215113038490867890727896209498351119415796130783649564367430063921735277880569897300708434573083963473246563791562824386660890189923677121604825398645562046324664200273310048046823633387233010220053152726712919642347950459335738656810719653069330381111375375062482344466347251219894873797046415563158047551699805734934329245155847957942222125615104099312575465723690591517534779574347905086898208304060817410967079207855543593910080963910576036079895371188569396736165676828400631672890849108010898533516104866320379622592172596875812727756837935070149812990769830510477340891804091150224528299555102441008155150274076313268234156840971477375098468527181044581434027923801501199231210794473455890729332813561274121086252009456524987215548141303555888077909104837048122444500368410129078470019094153861451440213598204142928125670595166555707723992955412144277388147851548531677537945464261160831113080213327388152221633256911122269199676794799211180532345591049253531461354489813817206282093288867991728713063924781296812911401037193015812443471492713697514804349254414954391249789907806692119564791235141463081003813803880727481482264695978777786049574704079137737798056365042227586708504215277052793065654793894775333188454767557583059569020967379570412398485837771095962647976642138298217162068314860254409370624541759455321847396923327647544156099461306336213732772308521650898647027463944065290294712274156601069813936679658972204835360232306886094199460363830543728443015949022183714598157673034973848204131917938906554951165100161384394287714409900816607669884688979252696333644134509639042411170195753479309922391895470325579115753582680229507257061976568196492967999736192497049427225306951609679661874445858069325317500018514496847089801152159908537562527847848175942469237204865023497180376539754730451730599972515229502619628980435778617037251136301451763423870863598686760314064724667719436615349940299270146133790945576479990096870961284690963871315483691654775331053961675819643163916957387912483722887803611159376503144859908053400403842256400525593253844090831744421490354317498421032403609389607026430845328313064707316273174260356536742257620719828118148001032530276101650749100628166541979828039724578864113696305715333472586137050285784013135756279488614425454932509840092100092911980579178128901868492688681697396693855193142865841449214369958062750579726304841116045350523691638381575931216822733624713709411565491263021190351768212168545359198606688959738320241961834888220235948597454272062927982336433432524787472398480513279359664049762400784834106185022312932864298063497998814287289931764135210793356730973755988656691189584036904977466183733970436401485880430228839408976778011745462510395954351710750064957708226107125357767751415710719819336262069789464917426957131261139677466077998251171878831903877978881733259563522865183875034155814320797411597675409199831162256177131514893665476389694979307296598615535735901302982581276711955887397407811715468676799237568351167304480343907759123671458594059878575459296123709887949431790007582059312338109892397366724777876389818245641895131523841505799371635355519005086214561664616176005343634014804667602019788708951566181322560921679048394798036601551634857384827558937067462132237057040606570313135343682272405519058729710510748231071213517817063275021160582194086789675075095571408598549605860207764836364124655604394721872519706800656297602510760020423541775963309490631799325930851279599764788891394771162846832028473520252950083661162931587077222036208648964439482375938480978420337385896949550930074911493517722743603517477972639649323754244639533189940105203923830652904656636860844103206372115182507873773595876344223568966773501640290747288858731529689381478448288836152363443395642493894152934003683605589644139402704608933515906886050020573499800353252338551899308748108153227508819404616155869615791710776188835202173252594120045267448952695055077673909247948925111601722875790891771285577018671642728718970976372269635378741099532911761709156346810559332032506874179575669858570966264106507958629351680256742466016761549008942874085532140419279942715884550178073212555860761482914306052956749184850488189597609634650991773505322974587587617171741785456603684856516244682457709423171367496237763587107787634809983896350861573618148123910474716481846579478094791711011646163238264124209924240232854664941336075878335163017870756507104395622182588459016791595817086579802772562247272986051811999700436971028039043953000584220877180724620310562668304356103130426340190834934635362769569915979171731393922777322836519696488070745943197130046999178447855573592979525355860851480737283751786981809085200445407310071880914813542749544941099720385497399788819493339746004455253727044776724128274059142378493776821582220908780902554038945459838972550395534045179869728246732195332792720665460308986446625929265253274374642486947114683865502123676663263244537145952098878757714592604898977990092420724244075148973847523996661052734568807345213349586653992318838531607891386575140947070457328060289366987631441305053845549982014497382258633892964894394173152300901596407655098255071714480571733650641743333041599449856384700138011700813633676092379887242377722665099312769794540802447911709144666032571866357153835239068770300694541306974515134248296625872709193848196291195310606931309657087086048290155652359179737829883389809966691825958418352617483498740829700238406311607459097629133056216864612026516892295610731799939593189493072842907871715312900190599987458326961299411091778529806284362300138396525235744916507952531800668783863157334794941489200626606131960891004418329577067122563850995232051018070599535835268356611761982565966616914622557301491670907434136620197040001111163839700622971580649155937670751702349364816505246720256162591517359796266632360975508191420370293503205322728295600768982940450353538204759583096683969078921449017711197825100365893401705252580521169203579070432996760792187673878947464548036405097152618452647548683589154289707818976667760803494011817584948242958978354435036713832728025412661212044776341195272437682249715448571763633906133711126616869597331407299795617798167607665851062341364314213810392536183454682138434763424742817829286081139884473471517386105821947589623993563698327790526660746539201929149401025647763421211845602088251605065068101612214184599579354740633410853732794315462845124881805542312934277114536355995303994893385138421388651766140962717901778633072641898084782552245399449564661868342882142415976607844481253164349134938422527330225063569062728689836321809695510683735892025560199507780474305555394916960056160587666839190717224051527231803791972461625984072816051773853399145563510950850864579718750468375979380480407571992234709627960132981343016636723958647798268729393969892348745831445901670579924970159009118743594282984206392265380184591872481339036875061353059191934456671148707357878946388512442114057324467624249812468930996225266481775223327612685458260993144054101825239943236277381663561289356161949319343610775214618544476407841106754753229626217391912044585480893467025712442920693455385899223119159654092438783131352181824693548700667203396753901163602297932647503461779481122097308993947939442357285486887982668553697230554444708024788260477315379618522999472656904753744073593481758894466216489625046200854312688304010224008482612724482925857343928614744163448093890272772662108651926890861125347826861154378486043405211568043246083721434753152541053351112589643463773066145775749101443709785369985405738644593974227415571290893838431473572662776504298247890455486906643876832077421881312651461468471261447470411681955399097520573859917488398634035568936558412495784679097384174634265747899953750280588752817890765507575253380742987263506622599592275866768682733609437291019331789738110313313180508367397088548535440570942188846992785003251905436783912548644629677267196611723905050855029997321578092809238609002710059754441134459331656431663610293998282151564916408334234093402572755338186648897537934401429787221659730003184087563383798262708830790702929682252421764101215626409057491307992832885978997571435410582490501555132495301586259605688617366546424828409275867755877977762866622900365194259024923256405865100748929415811737132041916479228339603476804693696643350827593396036987082855512355050715110871058293133890224273348175330898825570220539429007966428751807618186230102945423723807914641512366899701421615588610266671605768814453662575336169728584536692076012185155565104994007128136055066897360611348963495224103736228877804693433870830685130445967053424477137771954138511381031229968789847617386709971377085699826045420549265584847150170218207157021602978658319569960877672634578897823896498122130650415491245261399312340064430902717496554640539678224215324901725947659533940663266669405333916275830874899784335042189617578435238159104146822335681902439313485489715615254936556806130986304221530600174113693085153410530299979481467481951476245520313723693352605476920483442559574619327585867634047788561353945771930903199109971104459609161600613129985033265960565095209984998790032720211442156439403858079633221536550615531640803528697879679416568768050241309328375195339206452681038805212810985083466458264237852861512428869469067658333211076725784758459200768088940124740461475918843054616433098102613821007365063083447707892342044996819159702574862427382979067182809133883292928006189760200704826374667882672944084134957277412968756045267535711028410173511598583880108979998399357869168537913449750683698309665889554924720522803180946347440134698956164154731981353869699118860642724069380756873709298520729576308968900657601517095105092027216496450169739953786894457819377740735671519935643028459967408939447845500567672294715590545332166653822010669080706986200986662001270349268667720969213790475885826521073002369323889674866233077886103828779129124894094426112914438533845660986165772893693289498769227696448900161098425067740816802504480433927217965671585375804179947218834563374335688440768592776196705163569231977111424426105710440970728201296846930789690691534031625574035169321699135014075675476315007518447226122661343085119255219750096885543482759126417718762203208637193090330315068743946376964640297232071962514822589651859233769166845444947996181689481001570731991535081751145798383865604230075576406136513067743060004517828844421408172336904354252349012137947327748067194667470055084017605024837246306084982003896284170810161787685023100465515187145802083418001392168271727477890772476824001307907403363951867966794611094786124871684406509045737620559676130748094841359370837570323962166138606549230155704943996583511660703085280922687433759666940524323938965747638472437174025839858219952166538340319572458930662434633522350581466995702476105302152515653522100780905504977584086559606943546565437527744382611926151338659964927833214185707945363203326024482495553876595938245064280040915208135370257618159090616711071993704454220336466227791571443750918464316721109020475082629754637405252187720670843080986456420827024998875007799932715025021468199513452591493079722443911303674493334049835436483463743891798272183672894044355564779434116013140824918810610935266747109627925881272360044005984362797577884801893214746355721879995174732535846184355678419864625729761249621964283451498340211818626294957986242202243431150607264316170143645543684906889167708644373664676548990586072285388697037562819691285929040585368492277605067179061193448055476709296213186556361654073188039085732426966245826605177357371807769427933405455785729216739879609518592151379629676529598058634780610284055500453032934141746932117461647994571744006709803290466608014504985785476658462569324748368226901700047415519471400439590309005969487318129190340236378550399508949987757358569636834118672061914731342284454697180056300495497010503754327173867828139277298748798552593366295537946356590096201835874240345501550924478907360544936407876734503513334046444230871464127972384676101742894917007516709012452096804844774454067709226122931379060571652985290576452069527202715224334367185395034777292567187857397273595652649203079436623834641552372571111268526455554837575925001794182180057030450036953088564498485263851507085013700801085744144404659177045883543537043790151024141764740036635821400861901956027116263954780974386876531563674890577726036841873072085661211099390143365931110479146041940035840542811383170530870120905129931953462770498056829313924082959349106336295079484760417967922862168115869746961876974768815063707271090983392975498797417854867878850488623042348381236883724377527810018043034072573586932775767438907119402008013883609960099675728719123801842007024897733330782336395171602160568999440421857425350500023289487388339988851194109802706550455010996608334561521222357756214983818771272843317927368658073576054700582542350341804108172081260912092355874715096506399697555093890835887173162414036929653121578337331853189516026865145701467386356194478362520559349368150870957184922450686732967014465727858649316542418411151119329603827642712014261307611776487430149218474055458538592976060536357006135163917528574042674277182325295263898822049760972373021632594091245062794445374098761497219503651425981873286708202899120275012616252420727182307988283160706116471036241829530464227126528243805559285850675338397975310441153899813154147359688005082710450472713473533693570480371508860690633640698690145002824391766258288538217864106984721443587687489572385596910922636546489112745877223075454444547661922412970001993682307029608772711809401939146126298371282325298386003999016936422748797176606615735024527782567787029966797237690514237768819419911644494815114961780639436001277880763770777096340855954032702228829016658634802622615582899990926327085485168237325658238038899759056550601253318374583193217864992648067797809668478783298908034021699273632337532670450103240220394189682206751933674045362768420943381134092495121705470507454767689433069880610945690896527237724382150631230818170381941831558296059856827935729010072558931671160556035902836353617891253122967402032233413969155438870990663516923601666668140149939638854323393714132799184169006101341079093125060693433297822830776258550312173513213096143660656745097603017416792703196787712896734839846374411956279677901951848410772153280839463263024141497004888350811177866387222712196306300871381607352689606473344385114900084462239724915287161233578898510814888605746634868070199646259596801395274956587563377196463582822684102206899279590878335196165971085859034411716639799038378985865718897773339947494340301718511655744346962557863557440419472850218792929591978982220682884934123751905558340900326605514824980441722416792689954303998626447169144177734017503795070401867459963391722822122446640681510538132010240447288648611768168971827022883276426264450665016573358261286589675004193652373151205849358317541304384549902204148152859177538138813579611844038410060554647680370608867287352630539295712676479981019216310391441348111968108243136146769080033580559027946645015955854912033941616857744336113051710188769293159300589251464152538642747238033611546643647338707604311020049089470110774453097809219443905138416475811586180650025365207406722450673951433385971122980147811226057574560116652590904430682008650705197231947712693150886251869336273862495549841251412160051941955782163481812824580048067357675088437985211926367646213929221081418487891692842794507835455590560448960181613791237801245317469493617527781744736610689697899186885030093463948037830969227297002652463200540606061401162160153322018702891742216609674360838060543049516829178265105611293842845345137568880120111613975038025222255664725658519213010773000219376198413174348599846289764200304822943450274840512813797793357022961254915842267932384779627447412468369799438796617123827870255351247862428141490010452939817592652193182021730701704832855309019657292152335027262978341609421809484946407759209162728500633740282885085126071983940617661660966473208165754248454251184328875185245545006606208879731945380368873946353139791115327231402954148544576612281440511119803057708813538196856150291289808449975094290723573604888286610479299331577269809120547568158248946735060782132425450200678263285202028773535896961416763871390353742749027018484790223315862812317683226679609936142279726576608009994628397828296106601765698681751677623078604670573125969844144291730338452856939141194882790410168534724794665701875044315968669156218097727290279119011125746742879638218449379030890375086453785941238201711207057904297652728240401689310375748579765148729503183740523924006480600584974312872159745725211318913416969900317896738403905205794844319971334215330762611617988201233175375540630775007981002981073616620398988527477653591040305127172146646717350915512305574214044360521885923972622625040460887820664643896087379647881101755296862854122200501190121173206109823981347253042670137054514036369939556593879848771257676050194757068937662960459718416074809044733930385457942389162540425295460510420397196883812895286968719536472897433859585086819154403021376470852849484880621584965399355855466544890473994114503085018217903467506172928452215746883061201384555307858785014929482494688695929107622261970972813845737724203127401925405050504093798171249430926100759583955573690415768208806983746418241274926504167123663112474230586706925361010001737267980170684578512921389703878577306938802839103047529469608202989818824285043507569488299427233382596173373098406562385069671645293671225293674564201592592533607815292779220558123854885984996304939510943657299876306304174182531613327385823864081826688351206647317933337048548730739521972622465167238238971392998197810887620460172366947728754100914253246972109969918046603434775260330965593154224206822771118373856496971408113641790985740825782491523131973598239483070190601829356588939591419689427723624543971323058162924140487490712009346944077046603111031279001532247667889542769111672773184252074276648007879965249613236784660218344644337502628562831765072323228004991864430816259512173190241256927864359865712266816487509433181350889394615239797220394234081814982191558403130903740713693944236514470961146307362553463620286718285819560509031484311014214926440083285767686604347208597630741005629624834451776711439931341186909224998102090992796881918677531574947266659284488715929716507850245536415154004620745690869943407466656184872643562097275896959986183233343770345788995151334295682986509391485198865847834113096600684692330909794445806158104578642885131033665572351833750666604636199611495884318054993699155068226566922393296022253872280850182794585572525234115407023747069460762824032647062876829140816655285468127573770268435551907710256560613160692488552818046602455298749271828558149374694527439537996912822987973311147692390857898375790414980781506294546162920425863074274073301484948360875680880397647632317350522985971061438204004174137733844855997501065544857449856318166044741559872785715858581437997843099773797493567174399455221689100034972700350343395727188845339300015168484612726539064110000982341150591811254484559388695729020435951799398160275583995112892313541460461018810009920378922331242589101499805632365594902180099922968845036707325321709636133276112760351274309913251088637674569424356533086956426404055800988919526503286979785451534884809971984885802047987668882963480602546703785749775401539127847935017425713986954422384422842753942134212400637330572904949567618030776961375256491138124654145207380254974321495230175360236416463422686652138794643052197231788467251836174412244939992905384945388885795390915988030625826161915071481516708050783837616132796190997618140822969188093775930528871247794807461646644054663842663118172160207218532837361985998735950719673321399518482522338689375218749462974260022368149381455592867393359346648537485329300677002699898602105064943611884888394668104153149360935971416538926299979087438400334862746600579292274525419949368843267167418868149026056853117675522858123141155812426488687645474475528388422134863306688009315273840548901161631808442843972167124457411723533821212160525437154386372494870354622436396314449069779280776510910700416817634532831801223764827463948895181202139343385201128734168369835087647340415040888293916428792481890640535601519518412357728487926373256081988283999796400620901772436534161581639455681985467112048607979700046805272793026509772912273385890713424866921796038387687804832089701728888162960979010138159114853223537540831241586023826310009181525956447357146102722196445382045731148283588404664325784771476314123808415770126939649225971899768380077000288434207509541878078313640466986848218751851364867439266681614158922350942330774448442027075724275687296667979226828276831329008710567916557579453418403634462861342307269975798951696436431263244827633127952983384924275041372812607583567009154954500301580170283767380439026850738053895111806635874519941549671760813798464414015914584621777325353469987008982638366558537240001991847357731466613181003878622586643034706771421649773274349410685428326770993044427273658077654255849155582683221138430749790138021113555690991717237155740144725429862015323759417231743338176902961249034705627182450936593057807127498574059078146631319263781926378866309541900752079299458745029304577970028299937909518566115343719718866029432625899812382339639799681528716748246912814267947409200787849011790094822883582542552700686697655155141589307319645438886460866531196035689293166879900716937814528255574865928720203842501233803804525157818076831046886111570777081405625823848422824257909978682972504257168077963853730751371087344981939512469167047153198889144611448067680711122699007917515418509692094758019595626692357848700964346355702426693650735248167112737025895600666551067450312127201330970272141016878085464424322089997777203177147441789085830707381374749440241765983965740941504883265085046822087095889113242874696927039472838095712100729937817756703330305463619093010849212159135478318823136317049023796660046243429118383576164549801873796217543461009869769133155659828490307640885991372897300665736135429253921965503182091423599170234747556748749575186934181737746597154178457483338966397705698685843238770909299298178464951279799910448849662917675129222476787235255272926160600224590990942418270288300452343616442339069440628811104137811236311452327702351137827776650076195601621082102698636601098277480703209696154707439836766389224180242318739581867547978441540878696428256160064605303958049377852434078131573312648844112017629429984884394541470747367873679396953007624398733716252548138927985016606326898203917842676344122317960041877450175775008425711521797212089735834309915244829085744994252079032530805874732485569609164716495432476231205460246389014322797720900810652209396623112106558613055629482663549877569622124017646897543744560842551624248696494235957491047922872821089735398529716127518891431608619289387379239392999456411866400593380552711008033829590406579183768217282062693457704727312888380799889175556067480968814867327535832241347433300945597857784304476233662339632183021973432103235826854503291384588149184229255723236249508095518795586583237718681048321906023880578881280966134205127829540524646665319638495788199578860721861184005287405480683284856734591841291754323504279988244523632838219877137436141218434734624788853401204876540997271577451322598619217735121474773824734118980434477379924740346368157972500956458231015521028351220284635006315931255947136188104293468341567323491296751411172367101372998440432946552280875908011315906021117583692793609947855471692719358663090507993775163159120704580281654115621655218423632666691413103870046501413954640391211622148008312421238324743974643541823321937640222626635809371740621883144270225052590485484105044757441841231864687687995447269266014156298170429876434963878454607610377389344573493243548153196429430228738863742592081028021518817791566535753699517347203551693515796341855147735858335073710201715290240720356773352322405074547484154770790005907451535188802041709457555122603094934568643024940110330416023271943625159602031366847734722423714606282147934652419353687363389373720205015861212042395395187780473658055693484726928608728629504919400792288114558530273441590075672845157186936731366210578532104949526891634069828487688241430004137019972726066274168900380371478762251859591919301799928611063991390326095777533527257157649882984021885958337312222078980105062313423843934616836279018515265840174198262215531982393377013365030489411793132227720188514501411239642183663531269782327352949202901193335645929942923666751138250489078628092655962482595816785987498230369645641872309718256984061819618648061195924615039011364909966193795105376862906405308900843808922021998642299086332670129682526993036077536608983138940282778268957708199127817803219679683594577441723850483306419098811739560336331868113234240953207291683118661712192415813575231430890893248485337196488103248066719220479307012563099322650465421377392870430296330333300062388652699676864762623975837174114633726605146226409232689850176593230711003546526084826649440782319948508215094387639192095076725830716453373457332520477904714412930828162035815544977962827931321450581834188074494308458874865434277560087784474032966261185960463929543863047896339334885110800968127656198015959537762410526587404415564183240415037665319970816850504984391355797453524733321849112348092513079813936501251529854306482126230190592855621118261610724896479565374464020926012458617712222411682538990545307662884304297249311356766348751847487934241962391460387217084153843774251831462089586932060071357602014416091004108992636886926850595907403111240154949488265544731691622369782296749884884123452577659101586573740559102037517369784197798422925555753488663306951976190557691750616210375276313122819224227707717198405688016497249313844664437178830195184812065293298543032069892423626958779546297941235015252517723954340868526290328230070373363528428223980466647675078811368278516091447650673383563138196732197702977989387243165833501624394008071950448172982464513049484112283367292190136650633363771480127063918947418173364336398651931106159275104552187526637409515468177184051751132086730413129178480643923993548852830706445876731539981162414846938454047895707598314381152879568107249838671117207326764427982891868490477666023918286053155139757174496186811172908715858499757371228837960248887599360137440563866089862438222637850927507541361888293959745491038699157214704053514527449448117327902990658651745667807945256153984963046886668325677952896707516934605850174533987190478014420655271464978210333197421732437335930957770000017725973713127231653415028195336209125780008574034072781520913066755604098368151577934091410166989657329998490445730149542594584828963651533612232526791388818460675146177440599120963808608048041268735376183586926291305028381190937887304803318225505059017695373355652301257625621669796756028704733671698097072055282367860728164690319880668892299482131744178612648747962706271265147537413725781614234939020849766046110211410085626593376749702662805309659065912691284529768280759843338101919917499054692546819117083529184821565015092856409947122748214594670853987690717996268218145884279499727581229436632571454646657771237162724809091548957968596085736220347458681141243271420417467476893147605270711467002909460489841009270850293943869278090536012136585702240993967203652530056018262828916842364161329621731168975139821326983266698560587936663340207977519804795356492160600100684303692478056870814816713298944359373826535065916712409940952315321287984370339105594768800607630511698093527586782470607726391588265352621204363554876319317947615360125464889784933402060299502262329891001613898259987593033825086681017872186686324256638072770328696637523230643107338490879791966810088035647597725319521191383352660640283561290142664416456561489251052427711569714915420300382105693389947139152714853711561972317205475035506147315704402257687958958660253826056441857235142497754786129510811976239262584361810953587238444921716781873539017954351436992254083322854773093935398221285296868456443700400173385839620557665352998344701466809130072930843502123495039786151801501548397639807574805258085256725236898842447736767021614761779078700760526559342731986095486970961081653042310541518418192399323159648816235739600378164434984963037356667742023834696102057235435993384141574618788109684225177747186577297688117781076225553850011763222763715892952278030557776831412736040181315190139466938187817966065914022902255859190363087059326745130144049021311606154230140112767610448373732637260878294107820986034284186666435168756529480512844129292546475538100689147202144568873901169088715008468738480857424332464532255456732775033225545277586641617720802302749122245260928793618272034961045305831695765412400369553269743198084872341450875645016293708463753590352869747424603270152653354700071089662361489921131312860109673994089781639075039885914629900079153706012754915985344123893684271411092899812580125887933036501329519224596547000519453589485206359985909445548685976391181471188515619795961561141136242880965185861901979987265036357236942913862969238489963497561221615594557359231508422080492182367756242976314981872161125333839784268195030694101614176190796701774235910109870641856233757202508126550010971131748330372984599311208648051903511794933580950400647249624876969836242825932247701768189527368565751065261598653625972396307076798109691670574128871224989569537382013005384078067438306132455897932963913028987817690796963436924201797301930505187440908124287735835905339303942320314092027462955601288439656248838790184112728519754062796017586655733637909812881967413138846939281353939670042198477267793680312867278041037677291508849422651644064506917436032833850047036619684818756774007254743189283448032204934040325216650016210447415935788949698973626506145714820775289631052662427461567343127681192856678648669680301121722349562729143495879647492685075881467031039467202459631110506057339554565399025910793493994811708906263447942591379413107062075407546033798558141831639023418622780203936904977141607335717105912034131933820586233451050739020137784240981951657765968016873116477372141108966816771100953344920765070191094050895517709127302089212854808029253031543246254148134630294470013796750929474886308084923130813271049977672698384732774432518132463352158551040576446283557303183265618192557335844236658518299797237634509791342964300310882560473340189726632351588376518783207144521157177401525209454403821213471170672360198254128129632572978126981196641930642621413916441023787318772991989841976260263093586788916397807120457932347949812032996781528653737609147535491376593702088032989241131268480744341407289397310973618465170662233631062141311863228455416994827035441443647619626861626535370204995825241669734451809649473013002915399611135625483501094870260348659214508698913405145271929381746471618942804576657754518261414968134309104801395701296104986403700917011010912927035602250402527224108589046372900274034943892152290568772678259457531086997102233639660983945770439963527656880025505964088006214403705443843680861333889188446294229775374453696122504747230962805334219364247432410256924771052050064819978468182234341324165559460417443185181973224202861345515082942703580319956497126418234758451223883324430755596817216854970768509462646472524835704593679587495462036804949893045460647165969087940030161062446116206410075648720667725803926903939075015118484712042517870777549431699624429546304468390739839722645562711724096107190079154870480938180186498066699876591053466510741556518251469911651626264121468904755803918667979450485348627259761432723883060292424352529902549371248192102494539720964252371782994317473960271140581368833117072410227230978559305282530068313578454133095952200119497102766750353316702921519824752488778464181667868724947174776891361332791564526226810598199463573916428167645599259217051853061005289789777319734652616144586870073172226623990200926513967893002707919717897959009494308138908495339884190851457984168536145397386778217027684194658454597996662059152608914085520194989353661257957675389048638795309128285660242711705211225812767255726255519705866825520432283726447296754651230539409342452943572895356929769853996905543218940382136822125088307691949946899750109614944009892576016241671330029984629808754331204012867542691531068279045810416151386513398264614676217335623425336406123496631325901917115821862679986307202483141306603945298427760491466416375269600399197333495840734632816548470553153332268529295314213088006848008302457727917975994145052971602004565043335164890434150233784726043150217044852351293954473242096564686446466464299845956030700801316971782994637634024159861372956419261402876717325909791708568379863152451551994527717509833053151955752643889639919115357312179923477583420895208915372947311138146866842318895025755214848165350432216337317720768210547982446144509123800996766143510385561130061540413826782043997899442846444978780700116970130720831935502347323191597527714539558664423138335717832058474043691842719678397915848004996414838372106079564450322641353601331629570735726815932058563995575979999746239147771237197853845090293472358580272870009622335078389852232382239241770091253767595001938919232935693257497413851055028311131930754757613380526924672176258724822576687194737737588874113081790699969551778077764184515321799046655364848076648355284619706271356820179940588865729473777251945496096309322001728413423828434817538857908884666424387734501730536650599213842135037036412813785520501265886251503980095989606874788867378537680693332741272926966476368245932740588992666758388420295390378249320064392841990498788513992199982791745779562910501564446632740441682078863795663823315812604198011778123639244356582912016585140438733656223049096434775138469098766755537041005668363480266166236993444818102131341310434500070767044527648317110577232092098329165023127928097274719564182640956946515762671582903131853420405187751520842975642170626941265945424290387272383018040742964298489532263703546984776787230283148933502288868578967296698546656060533410262901615788070406319592992790087010521277342935871630079395570693579571385447005479530456609761637258037360302872302895296895169416629778126315522985982410681774398970682018281943769384046106549524183823746388170371621046302277914089936309720769620243931787921773823942324005077021576879278106021546779963439427126720279812813405095688737426722276827945362931431792559803334453926365299861875691113711794051829999810133175533480933159874318931208310008751257331703145405412582018838009661661598906693159894376710799070682812674509738942490357416758624177902908119952398023391864149092553774085549577223087708192722333705772280752551452628127337347761058439582375479816263077369157503880280374533922690947958376953955160512847203932684633999334901374259891589847696679785882240738390793357792767626341445088628425879673526114435874805274999454107019568108701820999707450087609881839700258261755636310491797771818255874154962191018877706238176248144022279614303423243579313306955314811664416508768243427666825629147685842908725375023851526901478802983813691206348338682450522579915123698772044606360983487857346730320794054411658850339576496642636070979520510394483410943863627464450926890532418526105511369741452040209969308260939243011409374902928279341413507494980300841810217765693861616630850066555439767724083922535629313827060747657032524573752537392332402695830920059613412538149347772626123375176450653621798043107647642929722546738220859919814072445055478476577686828768085224851162977135501391625888168083780790971089194824669205208620481771853712143957253194496589849916957066522982793470712264379750832993230521419818750806177757920202128511467562602877574695108848921634307487318502369045479890477803782522086559706022834141363003626843654364289198425169236674934247659196052694096865169710107192071231786425305072863038621468035033620682706382850854135333637824251616735690109132498924233985529652114959689745421168317539043227608891707026941504033753391313185985291823511902404342949132925899468614287983837088706892994522088780758251378462087208699625709462411996034982941562791846724618328866444097388289196838613828008725160144115272281897953280249298094980070490752098672401229325241630840347856970899157354235900297438107314667384206994394828016353547167590702409476321152152460195150972083121021396310704983981052316476317764085863466883738621906637668539525638213164340676568747209002419812102683544830924722721015868130449449156834781746333128837917889457199448236448692737011290537569421453017865243327995705053399286019815357310062220195797325288366341491580392934640501144043396730856528828407099222992975362424283030863587250309706115271910039244579856899477064292759000669149119169602173188045209345133808945551282321411790101934417428026809612827466823102627413409014002882995824722110990495799789423105354694631759803957670253144820552530907281093248120546372566908331068293389513408729362901836041427381823862250438963239146429755188963503117094322288502123256622896489058825460416269977515236445065166653380698535188310359364780933378286631253247219663657385284798871170090520504464772661616283085838543478040562049443534017601185953417931776148858361357869866673610217423056578281337834110616031013784578097643225669699726690186937658523282400621780998671178511052284529531847947345156435496259543495835947402630853470840543946122430227833281068751832797183165110398284642477762571495267364110437186250810005130139312316656828006141393663072758644760485062823637878227656139819553403049057796725353569116033728755521500292673932579757860344249820653350982741836619657200914844681540777586159265224141735502875802344439551198338240290337352452120328208232684088227182861678019358386887146424261379219545083827832379459475239727687921550908579686495481299665363675643835488994807141014617439985566900749023085820783146296200000226845116895938742461651958510714548526084574072612429992367780374330453909275756883242374576477128631070146061105868184504442930167237236840981701281102098885530486345362338195384969377232550426687800011864811965677584340603894458500484958602387893446230390514769091189369818555085286870823686582126202617567597572250128645852650591730034690611858493650618153136909772680040810209711915982432387822731905530266779191366564088817166214983394943051961077725368210882111688975506208265839204777857512180017282736424522708862474858968014270547034150805352426771511060549461437138220315300559363446851322471957870581563125725551624520190329834589685924383396350643364512287940403963696756871104171428892092377048275079222947438459326353356862067167241465963570793882771474656467269158132431458278277581695944663253740309279221490203239084245180384033557666867907646535579589695490521233287153842546684972609998869201895222804696603237337314738949434925373499240854435244350767010728870442271112249445919810885213916730856002644070551454863748839857471401617804837469396827810201092083489472155979743014360201247086679049780069232920812215492239156259576255647510440978149544309561549106199079722657092135896217476487137818094555314654041151010151756606885267424799692719485846889434090200268554819334094710263211759014562014974504447077787526339312809584798896324960171287993139296333440714808320808384562596516363877919867199013202771511341624080934086678868337328158441127413440231442044442507307847698595930351858451027819628135762689679096524276756313264023662671160712376315552930343412966999059833621584195279426461714939980136101419454235078746118002745698182833223693101491643625763032520818462735353746363936883450701875292765948649514819149475160471487562402371970380563389752836608823172737342555003840767134145191122384352626611978946834247548267532633694328875620084800641673574878878460250973400685317832891354888170021163626454596089567033479206534136359074845106926004985531704628390133158958198823765339946950620323612635800658251028727836727029009885969236887847103236083582332603348862617382153656607650019526712179657192787063797159536257943171719980700588010359046573430154592501022304840322549085735429733823843972432570397304715810261646723409649379963348665578964320815780119008817037736878079200152741352196546062553191074245321258719972953813888505552980553326920721038998225626537828468952425256654459057663508037940171627992052365096608510495952147152557956804701076582509460536622564159975685891044540210578419322610877895657591515606650601032058398226988675627709178756864061190269676600612328111981611999638075096566871133271316172772538436801471988531257776004092187298509299500430936629521763005772158600341324467006571189741173144245389726771681567300756722124556342799719099156636393159198252525377506881760504542381915666734324555468336530442105504291749677776643320967800535322096752124363710809834334953956406569635737031212267813077733583876307826698097008545424515233264395171700129055832808299875967898901124252186039884164467003236180587422005816402134645928041443192573478483010097425881800645328646817795047448439141506897588634804881294317259076873955423837528558108654016231606303012895818303705197495040613158304015392406072778745140217026687860891705706976981646926420284771145920558037727429977075099048422224210735196270291159006016467420209028215856243775090717357430663056684611312632129500844917742117010396028375680607973114663785302127957699841661708973304097314043025894468619845229502367867431606040229028414593491249536419036291811842231729805445991895992596750585324815931803926594946649251877389798188426981183975146581492242425971587376683795314180593514456093866236746526757250979773843982805271976190771353411536413015925650767424875037953351796272608020931063420433463953477639455507510452298600699419111591025021892748613557916826640851390393852190420274807950613720149830713889984728755382576037101913498895737145943571423825241966474920925622030121129390480863472531198076146899988619107059098394436444646410630885897066307760317755365636011222298680181274414495216506462107197451455102909648103552573137005066207403798803137610714496701730654917635157594566613887644171046119446689723311583299846665867663547420067981263194427871433576328894997197307660509894270191188242410283768349340864952981874999757732168883221446199709087143646440846306005181680261411682809492977066611892660818384227507509081971793704646304166152991090378680405317318126094453458111237231663622656393869209006068604390451496102033974604869138029541728419546062425366075166188234019997702165832440866862109486696889424066465011677048512760386217525019592515736792296975935064032578847972545057851961736759692047140849120967428856512578355442489357854339011885396075347193683545534459336230321472640466674118659658430294519716963311912064856954062474374577141351341999849119483820970489063148346593839957581721684237788060167373105828417450733430884199316313810216676284055732587763512702854718323892212115105444321824980347714253933352508101430851614834404920644831252265652029711302614978421064663231219876420383398311668381089971027833105888414353908974999309456018279886882635417188438392440184920908111967795429524274987771451536264532363938507119103580272156421083392115520076059087516978705201985719708104679510025500689978594993532414586530686141670060801469722128579201586693641760703566967076383708267352620476771402319419224414828277694996514618979835794461417634230441937786504371089749910692085002202087556594884228199296704020853150941941155174624312659945541374714628312687464462574655599128751998619328642233691412532415297468611185161895786421616342482941070614164775539652396120093485092002474157413872558059154435241961301698416353991285827541930562036060487597326521773135068506017939973938686530621588359821761450693711388162312878982274576658883584309221596342694861616770523460480291217322660381282454507963294413710985336554393356813643914523743771209428705176545879293218156724441742454760368315609780805312905886120959261542330682454056021716879080541287609574029358367377905087870165414438304481032573304002897769397170067571246409774619469534521120415321287984510038055188476297986832889001079785494260781996934670024358639976133638327309812846532318717181459011585621094031143712474110158434096327275050599108469263303518992767715971889460925895651416617530881737603088029619656894160743506173888885109748428639080026501116113521143809102318486660534884402487095671045221616034679690471242512420360625253332471686979728426216910568405705613353402803595119731664879803724764784456385477530688698884554166953588259666883107227821565182924338646243418530289631029748842510348204862503043583066322223670498292507915462467850796063087060508613084690139620854782614608073839002758034995106623074283809016385445812259111693971065872148083831350297382919531547184980267306311783377415534259751101816863871116229231778386330482981556173504785532653423930628325637385623022670983456245636433752603373700262775116229497085569468099218137329337496595381378991781915490302068889302335470196018963510558251338842159097887083087992606583304576605503272473752839663977729520924401767575474248048685344175784035941551338799270874670759806935593828892934421228582788601507053626632113561451101362282937547583688862758969652587778611837103850228312259498961873329849777586806294380050803473814126571906880582975820377474669510377734827760349556021557768270613410492277278265790992244194935954638855940846114510374926762338327893785307238552610808334738877192030961975237726634855097132440584004640824381743734318060851036997295695744205109774276853251772050148722058141831607750407788951530557291241024634929182335600734654109718138552242312427382342090449394300142865104246460249326088385255442411765373293534876399235050031633405495595448306338520234080710359152627727066985311106864592464306901750706710305239752929879686507402505867119435231926201290654932108294360569271116112982593322519882542787591469372523087727560198140269450075220995022507807228872381361737501411861529383172183029958143809313056550642664902898736231579872325009602551915862912287718933538097851108940879203724514621568205209074844893824898042241023517708549366128369479371077255809251984883362012958313481991377980184540684173791896179948258979974398776724665237542640433750198536986076468944537819118603790024600368152699024809672797177803735895464109503737008218792877736585514046366250509835636920608101413632845905617371305079598051739998146260948478429304205748620735252488480098387568774715871638084346206961001171749391403133331658849143530585493637073713350107890433797489968485637263162001494873362607006799645866304580547469448226670415898241438231309049289021360809535815949692969860870122915854957441977249205836654822722058253145397276472238185878063560090966395755473239201422768231716744952132744620952260018042330142938926503957116457278755387071290692881742272857170326677603093075490290550340378394896058298659792959433806505021834544260103877784030916651228000032166788399791017062784386005694266542456268609672164373995513511564760558227961651482515498462438224339838847921587932610419074498295775281933690800511366511638009111928630032923521002129226220988923423593882845686242658366137854505920122450489211042409935882754595683663241892870598055174753779009943597202448334249367255701443477009290231639066654912914752962690819414992218066153556939854890374081871878462143126790549235965114731059730690453893351401091391598016312747948605392188935253489510525260796973137313712841971744718179700923239327354261390713891623385817690501042932551023976048624300733271997386031627900656152209019049267470619251108269548369725923242715660499866394567863157867486082347019188026366276895178490331376618976170631197126043484368591602237404135118372874294054883545903211284671933324212805315488165672541244121256672228049662159357951710003959636989589971740894055457978344873509207577147003063338824091617015970279080564611171897533872545451602935035722451899934865294365834502845168677066971260020496904584066524161226593380455668363985208847194771372795454358363727642895987591295474324280285324907313137354025121434989189431788693669515959323084213196900742245198022430776115709689132625004630498440969480430266038054325757624843769958897408998141938804806264319230107102599364580229112543476602184824003096439743860903149211856524481832564269538533347124663034926333096787341950656273151451455063018540923717494768460553131313129834565113749119320459276755998469638802796076945257179655165710343610806998563921449697348883539449766464458130621054197982418409426198419738051239581365884292301948681650813709533878140052583706459440427182320935370329265705677980571796260065207200918021648448902926721637086046758705497083093283106609694335500771869147758998089076805134383293355936929210073036130377142017634396093725887476997959300398304127967750159776793771177746273968206256613847194769612607133607087476380085214774473282498971562332056462668080873768797004951309453248243276463259727884007981679146333739120036794287627003916295767587467381732591795596007406162499205867608645605312441679428684037070942013124658492996493996011320149668355763577872710307494050376154088694289126135349581804886303592303181969127240037014127181634227280654047958132705207403630614150075839054586573586410383213132501148319176860569038999643176755312682591048052297525324306863651666360145624618055072033488633522658783976141646499109019634612313758122662355208113160999024796021210722934696982437912780563045626940257558188381502193700715441089835475669229445995782985401975039553938481839006796560484174385694279149157132626772107620011097058583568306846162752213634379493289120316428345889969111649530659001846306823220808879261905880308778439260427825059481232303730158780545121414969418304373407054115231935467161249841148163754166074086246645766092516365167021928402286601740917627382364539801972061864917696200194428732664364178374507663945813669193897173888932030828126473778717709216498301604144737317605824660644511798403044257749417203078821111384483332787479636053067493784865578318050796440442588968048230396325609563762249150766019651803060830033550766912558206254947741859656544838597350855034783162601822379516065022599376104823723661002575063777727127419508293615133225751634671483164229099752255319203489075104221278694465289718799669104723187831823316878391273899608566663919570869362344864923326665404315892089056361071865340226215151271623147060291521643410737540404330507847248566886561711972847871935909649557646756635087850964701306141404939923233769862679382543720743429255300671844556090345138052440455685775270430491481708953437181913916733419686714729331753755145207217985169884903885723744759073463049196803517071906345395517186129043502497883166940746310751262894887455819009282545718494673742677191971603051954487077657918922990565222670125508977134332449894099061600477140129506627248341361797829623624858779718740231201258149740101641063081660207800619317171321909836040036683497771659228031744826561375899344704976526791729843913434872955744328541059606849033413791039663948657020980199697670559388091547730017163629512785145897216824456362650687540269173647945334460511483287662122845949098519109806867420444852485978026532153728362142387126014288350580469944950825496507240504853759093253328968436270714248940077558214069548082618991173305167587201195257647365266994795173775010596854826853054910029979899662470586614119298438950156467227433581545400338535503477071404277173053366106107394385866981881933107961489328537160713864961456971888775009939792758795347213235007993078372261822230423885937403033632329098402275862167351799265789073674412115875787918652652729846158900361988123308302157724206134034805237754487807463900335758617731790504596098208612147630485449820313015578521003478446700345341788158944919615849533327038306347955587514680692988777087922760588463174643488330671935877272614754192063651761011770831642588712636405715708787627494172907953574539966433846659046226874615457158734126059700957731120062942707846599955555103397163537396888709615869967609755771400308717020768686950463091150038395866946049866289791409628329561158716994635301981383934031365850699002288266884217409906699557027423698431071172576336460215780341986563018443348002594394145168034416164960395647861872036247823629225365279046653091590477413690360281814453524391235560397488223929264545041712016183848594701830792774313513171383728739906679711130574139275501254137256065221547271187307751309225496442485289770522689009270163797172445300009252269411014896463631981489263080446129379103798166492418168385378319062189520753125028157609876720306957799745000335774368338392618345970219934612857762514570660749559484770086944707858736306858016930181208117965865292333122287793047290605973798997515334840797437130085606137310430978870987365688015664160840822717039831741396109214546160919243243128191474902855131989440342050791260964429834885766145562316929520268924837712555972251788702042440024271240401211022226973050965936102697998551039891254760096874686976876138971550943419938573941639834407395532147841970699805125350390921734157576580211551075705551869670733573369475163778176110215192587962904313556766415355129225671984051385182366062800337441864165269833152591842392964177931639544479675636145113182024630641112794836708251611731651196451024582118668432567086856857789905256998051868490479889231041883093528294290806237512345122965624299206036450122194348474089378695836706085071033415543913888257045836262872480860452623838394249388161065784344057533345659706400571504286519661177087930498357485707070325294997890579317228350868160740161319285592107519548622084656901015647687891453928860164921518285641711126121676083561075198850491746028644511660970986361377773340230651056823830523967740204043423345777441622654197827757441733213219924397455492946033720901962031095083323570856240985099717339044627164061373683426999101900520268463429822915859259681969807467322345552187510853050801749525748538028708286860417125264957482135978108081234637944452818430223035624944684592857521715724018699763837908618238010550861584269388110541231456060524588386912663996745022240083858168069399443575722453735690036498139532099523428170619167029440060391662180069518432023021060218876299623567204222082734193351041962300358715064784389946176814078432069697095110276547654034053763819590661754749591819970389838998118072872871018150374364442082342960715624142221805201363360116459861335837120392862741163960876603679667612182136880655891123427904812984153755062337466080159900182980630052703771794775680263387020779357057398527878338429697379132370027288733718714229301766989594919471649933656445684860806828999620795139978355313988095675960933814010520980426977295846420164342358778353418947085021966151137461352983319646503112347142056097511883742561581948936848526609958850630868791822452617672088773677049328980061028881604664041815015544285185812241113058993498468990325057831145310458829279421301706239717538348817338811007122630829711969907320809243363267648484934525299963363711696251564312171298866115383668553664218892817525333840607867499701379887881263589896926018363930323461361086167505859520146860553780575279174554763063012467355658885366933733564471389292291641360675340370067903135418426259989334326238853890317573342097623102876265614642525973338025303500409608631498457948809183100791072080061504935896528752337056764085697724297618642304885654099536714987567748823169122094492499030900240352803933754619041493325697423800984800747637637499380909512664082031919903522982759360569891766144270160547112398452774503849455976624709459851793845102529253976665428959379687509884644907362497378911104239678323410800573877888636512649125627020607945481461711476011180610500133820690014369497833732305744106174185742198122395733646465045656968573327563727505939845025435580497046457318061117129014995314747837123082821017520711520108279895557926462529718858465797096465018831894488171279252586963280037016195140347735558252755999179174669878635516524788468447693034944203727409760638476918048798634320444615088402049402330479338119572362811235552432534450143015699041776969808865336616516495258707173238238648526569132351607731523621579993783657964708884815869013108638023668093283448890874032868775126216340408625548914876651871360065595147983390842871511616035025019021294352282459401633888211386281894226307641137626054093086964970176176372978343894895034386764593761410397723795212107538713335729273511063715311691150339611272152142217026095063188253988013053900400017813114823146418586167995482801772895197874036210059434481407901134143850662387030943546569792811270902083596395369935045110175021912917094788770815206663467854392106972881829495394173771426030330535764480024373305643727488381428945649989437839760047900764624339642852313999686591865249631775165648184398073437317151089366370044071096277364286438237138521460098166704656396504874648135022492475468667924655512291758265652078740180841375125618787582721441676614734304135957171347566404117867832609094435473565922233097444031206526688356602457278475795289417312072078065208359510881177523035247319495290047071135490739000470572749975550292925477350619201048524104650852473441731064421622151031481665929572727488431382697500933977327493378477892874158379217437204207260655972903222630449993681066944379397797642536265701514165098492345032236386741486542941217218322327662256350442800483381788184766293771136820654102958257008775981851745583805168594014293086190310189810467383025868783541622811002138120521312562707249886178690384068452722588330091271592289178339764370091483192620034063955811960799201923769530912127388949276056832177893960329472146323150645193710210151800194216539352089045965400698805268402112343140451834701930850308557313459685174302163270212511486275305652509941125205178435552454844290380959867502091330257974513792070497471786013286244521329745712824405266807779578178476000560428612481922592976851861805759938436493677165629838966279153303787375354448287307992888395413095895614704387029269902387651726517192360421466413014980512801687598378583276338128682319983406159141706654618636211167494383714974993748683526307298644142132403206227464477300580982067991330451441967127808715712405793371784569277525732753132746051479016092535343176756273866129721232002572676982108813340214336431878219646269335504832862895786565486336860386748187728709144433589198998476000721946746471524230342134413195936281604065904042938857197192759610462886136839240090739554688683454813727811319067924845320978232952793633369297672176117989558484903469541396615548270221103437190043895556415451327298930874627478922189803268324748082800165014026037783755766124788171301689214620076694599138968428022581404342314090812509309033045445381813476038647328031987750589250224890007550946696860830875356625040288206571967799770389878444700592987567255226436818440569521047579405134387638749236811243064665951627694058944485820593134548283444428417838862082186213995685986190472177250077500333356234857704032983603307806309686276527995926868238096691690375550989730421669555773449655241887755248950650436389303220819715726672453103937377476602458113701850892270769313695009172838858809297060829575908716399006618467545182694037063614838094445981465598085442365893305999540839799290339043151769832678333466947045725268658259635694562314138723091039255006804199587391104091304845619100898542194373901854545031082187359470850057075330181706765171356036588113557600896619481394580446491269933402757419098598110993185297765068179331745003451377833334511236996970252882118828744713118159494739387953257557632714390899070791218802988186655268532406865302646360896331826262307290326281335734195388064007320550692855085683526850115845548996767250927788858262086700356386991918398284801030832690820541362849233398803486382579999825158488056505137208225492799526496395900709134490606348519580570763785808286597751479123772703711564617428892638117399226114192973813689720898209848123991934619476149958759243571592430003460619171559245645284856296240271196440718981807978654266006016427321632292701083591811365864559349392618117674977113488281942788182249829226755269197601923856595297854254938263135460234996452267861429190438066199253476336401925977162393017782370401577775523998702090726838281521831566315856747427692196772239834746371542070086919869260342422843478816942108950994710432745943561890196534360288795165396857169367944676901568446466150790524481555892834519276372239332546909836098633672327619980545807717229622783416851701170688716246217487210346000051792014912400672257877024725147822935745482534635045006963763497020718387566516170334293909630791781359852467659161277530358224589938734988078891323918077740581087720559939664592244328199394042636165828439309891683353851481627651483082119930843817051234027502619532085019309917036259944375924879669586138824413462686233547531262722391776655745470893281412433802938853704065545180759894361064328991517299558104665142321572496991557775335295802947087413980678878557778423888347803609579665058364505829069344360320055507795523913777155400471495540010507437039708290370231479251276248316495244696944695448438537433383931033239269576840165084929150713018627765266922132291836644049928915651679865389742351919014149055536656017550924537769290246980547043983262890165843505195538763085901314295691829230998205328136446336607030098862128628509115865497799746804573675497858837736416078079584728753166979201791496219369218469908403314234741680703588850005471247435758176298662574759089179390709685481174383530211312471052960863407039675186237589083718969811390739683372182083062038065875397806393619138561148685485361135021542868193730693739701125966611393784186917296822359798158087475836942710090796081557360186679171197083895303735936145081764802545966863701622751845951003712654667543091533899611608592789484086115817746479530804667690910167655714514009767188116698731500664307368641689508270486297673006082612002922253412659181801418716594897263946514862657898287548526855460861797745142379422412828674806234498211841975622298886773740516173815897755721539333179694343189280779388011113578593934427014739287840919249551150976567622034036892989874851840426478338471785707079973951772957271349646003416858403671934051342511759885001585389752254874633913942582538363608628682773235412534310660940255622142674516665784943605661226362345686003854460426648632872238011123071529476532948560374129975788964116532411029012252534655460120474498956504810957967715197317316732706350376468931593700505485872228496890131426578032144369823431934174047943231375531300015540732075928217614914118624533553153244907525541251695699392305930876868126964429766736311641141797592309200466024968126262700801803583913409443176075491251286655976902290869505153020624548865912464157751270688889063942334283230009421866106606678225732052555662153547142351033570787043430568111377858813788625912245575158003574471146733879536166285888737559711823990541993094357008058337181998994969331953320931318859206820645170452231168300456654607186940668618824775298652875473627526326605567550737490756146563276152930364105556099392470479712331923284806434966727710328328431172843028711964387658710883256579353108591474670867187243133974222744821595272867271393466508513585035338276400423472031411469836842415174669358766353293215227081200087320765461054464600383912519541932377911182524751147964506455435778633020684081538606923608894038595990213868286639493480790926289514514695173572754288522011999035747326115653644241703076920396739151177374545399123790602927128618655494272405540970167853301437731825432431028410041888984814181552281526139485326448006756177376880996340378921623576334201183145334897411078933545806164793103128015100656539783064571613304598517252867175400421779444109166141947454298863453094094944640238688802305977745222898299866803103747065591436955005795311132260524611195746717896198528501156306241734681942931476233944895310632147930448303628480607927977801200863493343897931187717090538449093038448434062127352539109849190233331738583656269497926124141791983928175293221485863605678621130945551597005786700640975061974350461881499641733677724185618007558160249938755433495024238516420199210838240785482537617988408466258151186072323861088967814838332324062519764568023093524238934445343317060701868609360310010363221320160206526469697674341985057014586669388131655774195176017619388879483493695587209971151230588985732985205710472693373153163155891025494957211552855647070050753049695569130711549819737315561355864765895672126453565269069889064998199503456114767404950567856911187425507640481096245304469109159331505230070828823015721422868481995694551638896405058685946183391037513191302000405181075985898791795872617530723156238350137606596745176286869690428733677980723585085159001152645422922609140053896281553437070454333242990907552960883011806913533988205833695704681029390761245081028747958857704850953006394896710446810869547385745187051413104989362163414781167528537759437265555935469869833035885214401015060750379008009322837639455355141617610777099790555313552238739371721790217958947018255096265134033696332381948458233151693932035833777378342245012495753918017275339001772858217875950568063102998086158637961994157487676509192483625629553352265051308040663502008716323840517706737776670408914404137978133734356272610643514515406464120016834402195368369717947916260983139932298510794500717572643991904251774653290383442880439686960839987432129517395528160340276393483788072747591100076550617148658735641522371080729191532557210519441421015126665541110925545216982161004700056300285630724763593776208707711039803241794463868733913733536008281335818361446071686271435639718852580437118940252090487527072797069986036424434377601567594919919451700456536009887442104904600642830756238140153566476172464625203947407395733648577901187787426206049385033412360450173744013461174823535084043636575710421321871030518130586062567139184643873348451508539668866184697782100424208959710485368224886241179846400017173925920438630929951147480810945521767699662649173014568639377114505366388590818973257627743460932501568882499134312820620947308203242028683267151301726228601208962534393414901382932125673143697815962520537151931586522518251514165819655584973777323886068472564480548965465556757331190090169192216689436886513349573021391791925723928685085787418070416225826384382015994840768346706602790124932411920313317783937814821010328803783870174054997660510600022130601366703068885823588472342701539831619408161411996717954139148663382795740732880772387810145389101395738308053563225966036032418889744766118078915906467402452602676011487538712984663805726812536390997500545744273409548797559924995347920020123859156273947407139049432656244673687681083562570010023347030189673163944257686273239862172864157255848161394238134649567542540513120414356236838534200241502674566550605904578287822463179651287399369144935386531090769110570809075644526795453841171506493094383179297464639986383638893069712919707890036096311664153109354401966766474156624031658243989110331312909290180489014871549239329857526205116500022821766117859828280943729123727196118636385283769348286994444497447737309138785189610411494127819654193074056345190421731255481103473351676956570525853809987238295631887960646098947690330870835357234212212244794023369027036894315052652103654640496074032627186345340192811067957579183770147711248875553222095659158139064976922457050998569244025036134997266393030816879522409101367056633011094632415645281721257789496699732019540011529584288876938399223110828561582865895543900727166144399393794487924281660972233078265071701187162646474932363448616343754161235062321207205177441642214227766999017837355862048298775163263492658671337273547973063356786381893560641184727290842083884937175084821502952069012931559939282193632459370071725830109228480318625274968342382732643767873326758697603368994359923535883294812029562178731281831578939489042504448472103792847999566031787110658661373220984476951397416768425264194827666115611557141134599495067374894611502121176018435183126901353592914080181873484282628705314849201455189851679616605023751227705198113521590030011329626166242370410379602946231393441783876443146827470718818915471224461796390451187635837473133369422858434304432783140235800697633000075946197504752858051251522876420090321010234945740873142507372125599688978030312959581691270714206669923933825388790497272476931328768612622939306060031304154056360948849637208138796167300044521033551318842647845036076901637580352672884107652933506245040666160830043538438139874540208222961023104781324387100581679964828856061496684077322052333424312561648021518024408860261891004944438779134310499196912903603439016710802010593231675244039372890697031154525422854047466883632158962666026509798046161860778814368366459375238444536210767925399707658548283073902450670385184277000517602778890607269828407595690736898454009383216315295571759781448777377707160562716945263211725936131902748636706300484909845411626140791453025253945351641374510507310467026844085398684202809210425998176907814323160749831284820456787755938601405894739303449351445633984407370920266941880929867343935047067284322447813922291926254011569959234492031840365429493529693193630665750227282596029673443571140817713365583387943047940080217892937212510017958785261964965341756975558527752499041830559305520981717816247843370355306630232405316364686112866498552949298076623094930447887948702916547627031167782323963967026045009500455816668097810381337004421356507315383436611070807910132874845821667007976562834669352329829894343363729100792249305101423093184235622745236985692147975627922074515635088177103519489412527374139007413994427207673779373377876675499045798899850901843170703762988490128436537660557197606853137954604431581643528552385755519243766466995333992491448563898400076010907832741664766922795042939985658800145670063728520416663749607647130171548478168339438623088206926519285960130595608268087187313685543240714301326508925111951730088589151090563459744672077309079516958789647034600358528747204012621980692272875644476665739737684565795557809613666857145153170583296092530463053827415236132601349398303861083749191113491073173426681773752753305012596412829372435968396962955900290235623623992216033977721512571799454622795718678959971797756071994009058793616986395901921167561538138553760198036038540374015505158840316003898512487096558248381453673730223519156419379630278588888356174860643067735990865838168149294624217978128522089245485455945175237067406444679886445478040392298459382504676966010537798617305869541103232329109500812983692505996594900105466595071737139538209564673926628880730833102235093507271050942277392498952992008301466567869820642114655737997522617263639527842075314545295928890075105860441141455382153713265165410902676575517758517664452658119116396388554377785945185364188025337497736308524198500748058002352855792054266686523807961607570760954413226950459842881038223165822746595714411315344375279061609218479775272769815529530483366110597721635022194168537167738179883259986120839617414261101666262436855634219955276354902898511330068719306724679905756097937396459656424617863394779081116869522482073810061445748475015794346810984667371893069696727957460951969663143075008767444956104219430010665995006075338295551512709076604533909543462834339912235825943507590500520925580774998544182908097989761239099615179170450881631510193449674674544968697764831694823173329199811562342950990021022789345416424651483877097326630629483022534538575584922177993300408005113313707744973058131024029524369816813280045268499351034887530087027148076449615681190080695198736367127815774263230525764009080002487740047371627679349198619560545450994930371075457780073681037351576817770159476872788419545603967458000891402013841447732036139593284817028998973888929838542053347845885059212653915073666960449742177508489886881628029910984051342972960218609196991169725185347877407440897785601969884847385964719504404363501783416628068826835246494109449780870155809348212525894686641242978381976542143343378577604113709449296802213878641964765318579056295646880016828921948708789904453818494436393896158487888340248267087195247537475463163764271059795864071734136173335746311498781282735265371562716949621029137079594913330118571110371137730303528803206061720823662622660013134524879448489967136955554541902017025793038271871145138700260238904073294168145118072733297786659415904220692529088300618913965799916435553863987029923055279870656980636933166534302148286928241487465516068238735828201970449320988365331226023034238471150400224834796031109327782909394286324818935021482865983639521302189023317390824017413517864786881722221153507737751620408264115518119471708336887909288204816732209450021652616884379405737135168226454090712964332312008428763319346534163230964142917775914612016634385594027994204834134217649144515422716273309994962439593897457832939789542056282184793651490673986460256614388312793355614954198773845846744758355980601275633038304694954892846627429835900075173121743440649665771240532444910978664091089460470909266688601925134348002758431949551499004859482730750593206549270832528733842388230463427061423884285575848539713273439220445587782745800114504209239653043059277293100203967282165607035616307543535202298986757339857024051744600696360136529626412807928771579732264652245448544826488326840008487962238078416458128333114871105131870948607909149711779627178055308800777003049034453119455977809659246726795356904005778622328765284600854837554447547284877728545320837847814590006107064732377914447966820679586301581649367157411830991248505839675332893639094431686572680019553831240792013846973561721514984428751750407487938035838325836899331578849455232065975346881616018031744186970946779710488480334539275622285398886551945609745733451866852659307626633869190861991492887082759431371625827002515955533791918145748334558929072526457752781820376381642213749542685650617049207841301664723797160166030202425617432397292202704517467726477621605003193433375617520731552148627158844447200145895325235243159896332408771093742828835271704062111290392627885921691116934551374388280319725527156168465412379646511795281906234773153517839614292072230413543425711533405682221250615048085862211678746754285924862929660837102239024651096556649639452552432690161965941455803078063765525948610551729169133102375884401191324920185808245081877055138902650734992090359037744806268275550847710919285942153007630685737049423759932858400751355312808414970499687160648150179901178644337447795492571718745048871526781086140614310156795471636409767441855538685618983772110298552871827778406133739183149376893677288603828549197628787463848851248518739608437361367410003939723529618389891616265461968659235575984985214686282133260354471758763148840880124336980213827497644686795849359802632182947655568638599932469123842621159205717271539486402037726890544866142165618785456263233555085379134184783648300007575054725128489606970895104688264188190084028267799857912187101878284077598549234282837281375844320115368240489653217124769061275759806849745701335991057549395772383383717065162237194718373733545774334635188707045156187721887437606446466746483344741290894483947900586161389457920707792172490326876397656410563071665014515169626991927229445905897152556651352701395922751231863643521989092350736597914005304882987829235894256883141223964946573481468583410797552785694999192989004825115009679660030060499255210778542394564546217876145520851276504367099964369173578549425004471665181917472162232199293005551771401241254040465455172348458249206434618567885182078395181807218588984614225241682264544022942661436643323445241174039310421349096355637257833338937389170025152285478682844335926023877229983831785730589526261437066109381762222498979444978787519718342774969249112681446267781941581666915306737606360929435545011013777642013651727867273151834556348714154141183510334547015726439299901568406314220904585242012155098052788093686082836145873683869777290358170773261943866919461784825441947433006533178097753077435055992081493510632078424031339556196715517588021565962337733375340565585091715182517032113753189979412508595795432034825730728165713340016698530751618236976885502023386409025787447895839249559732227342870348707693763008164191459281233568255034004106548811961606680432200179665937343796212955391681204320578785933806739384536870072448305998183262785454004235729961878576986781702900423592055012626386719681358757541562217722628929533287887449226609237481135206204394800086146583071367997657647757614764483733249519901961251724490818419663191465078036137492094997443868647204968670700311607057454439817143792677342557234109182339164283187360654014057255174545015671043175535384850898353253684822604739804444992191294370926042435792373379278486206826760652203760333924158999065959277586833160584213309006881500351703096793089311957758853443814298881539837509185519041238350838583859878050624768185202210222206670843287786763301250507734343791716566054047916689180094993611963300037896975488814493879131025875997056314274002487288328812404706278081265288185881596147324686788802571071866937681587688858209459372445764469021240888007307080308228672409056792533283491719028245986345345458253325608769857170588748662937047686590591321029518495725402683498713724427598925936893758596420570642647383691597684730969966064278787307141446081878943521368100734968643570697254746142854742449880225101864694278312251889340870520844953496860830503425677949831768749524040966656188095123635136955632952986781684937452813202987664789910690701637357446990892985660429014765898970238827414532905742699545726230832313521673412317739510248037795976579205484971009759282312534272912320103131035743145129487092197598071869067301835871942928898219769579924782882835574484500012202268503487399077704243587043120153915242036512398447993509436187056353412957801250763651560588535988607584576128608552547391952659188060778690934609599131104794425677914462159624609306857751816413718636048567272359573365096497508566433886883194106383751943003427012148227386249638965171705795288526633186032066202083787049520363789710443687889906248541117713411866087754259822849948820731572558082240278983393638684791480964425269991498942685062455566219164216483832245052168792782357307851276568716048416824927353257453933498589305281033222228230658081341650054231993060668237696540762619938378317915425074316482795891629593440364118873050805449170402437794423477093244048383351747821521760993423399702534393888550249746566294220469467296311156387339163996812372927480381781337117792155385253729250489619890181250711153997713723873479075155092127930367661308191937229597510575097285603108565838094018686836839113610068322226610954929256722883294078168362579270584674285305074031024384711165772471210562107540336191458801521935612570495978801410009705954691633045832591596527288723439485831367887248248736440087356474916749881615528860132210794374099143963845159530554568697429206711959144504103724560705204960260855289184052029259645606641993570597427403557622229239543020683538613791070982252095576182960727645505971673883044087664734248977983080194402185572077774457164994746987144850687717381918356669451530884187290350945523561122942491998973860552723133153246998772300055998013587889436147290007733115164445143215641868180486063872178695445440779661628578433935876273483289612602670071673602838993140551068224010440333616546520465513992312623625833784448743563794298273215559351604373126270490912787621624882925914014982683225327690314651599634543629133807648999976782910046888063019571620899104145440195613412869331768247933536635002947247219723987834734454776504622474724176271371159825193753777527284449393341860727236413904894414244984925030223960642066626902605984686658443463678663093146061477088261419413628980714937688038637744434278777706067862787207409577766801989528911289412214730112686277558231653840664323578990274940453147848290509894045458044808249798486645526519609759365138779311699668206511477117375267843632255600738213892541404721838578853338759010337123089659899067448062303738502285002602217304244240467874770354546446167385751541910992900651109758109021485249563831737601606737393392961410362198613036755392817486548385564529387559922235957292340909696635796346139642222330370393597239501625007549841954709601806283763735642415997528737633562251197389103117211210612050457640147092117322717706463292552452338179937926926221315641461650511857802042049817173218820128474376829931377336868600836542171971775849849479900410101233946946808401426169059413450114471423653575896760364175524643412551676177347299829642890450455889728105831329312880942045862815871501777198065031423182203211247834602052603631735018848291975638267929303791356713016890083677905913551218278918910781931522630482653155034169103167533430485054241182556943631024167192185943067114361182234897448858141525958976103194377598871311072489268626156760159845592585558972658702223222912003886231972252483095164197938497685362817472951897345284623701822739440453796581449994889902138530255024449790037057334067910729871195646174261433425495314259249246860965935873595935009049971530476998403788778455422559988378511511349447123517015540680046181065278125134854889664561457059847121476313429466886119314277816843530697856785486216390635179496846841737620107709113208646134759648477178581312469027541178577536906703399492695518600395540599092646093274830938293107119329935808011362683136688477521131906847611712425091686289385866939288976660663312398723511380349249146654402949367563958428638227039516143408900231926351492468862397225911544048935547771489142818379376918473377898497059152602117365691295628918899073701398772164448794513340698315206539370117687406212563921059750059337133790054428532006830485281151183241973425421302867081831447188831643940998389921150917246886048801258178587778896493772401944324157984720039422142390218522986048080130638492734993516829686728915195165950955591082391098540869761836222051548078675275231257695109096335305795622365957741814461545814620663639539304949977866031926454691518898519488606390011991341050536613284113453080900234670430142208511993164737977419185388139536787872011457225987472681311484716196304113180767661269470228081450369969312783991954771080048188396549485638118955840478372965917763930224403374009264542443005045767543588887473080446811214422510019879994555905768830330091687370636607335199272249819441100776129867222872330260233463808989854499089425827641218306112071040772725937431674290994170089921707160734891684860904125975653482505339810542159509739851030196306313272784360492973505736817984754187407877472056926540482053718419077239393293273979407562341252701208481107138859463585073101897186802624792702247999822314882876612041395959156433673548568428753744690577951215670867836514497406406930302839252872626996644936974698886909895701982636634989512268775429355282004982193609628464027682726347162862523056947016191888812544297371800128315239037038030527179055452279875718169122733974723072809707731068011770459323664138038135690944191753655615478650849058329384835433149282039679207757677783903901661152656765690288078039959531492446607299847821467712494231766514988669167929412674486526153985630291248311398772110767341842700282196768747177711317331088650010956856781156507733514942931751570613808330007292832667086070911037078551348813429125142176926603998158592368520527953897582799922936630800620968061200419037402374218017869702529550397543332390212956887825518434784032602513672634712056646344174290949833291467318397132169153483806030116004818195083423004085031508007776426351763007254850373354907241500558314372674898536337393575678356058796638209172051141777271688445679418837920693096688630797357477638978494568321390477721690995400204148991404829316780270011030278369511060056218463832852071467284793693751855394904207003069722246467216202550917548804626844183983643548956583479421829394900191711251099020030116633143977163690912015118777595512943041228235561267073536988578016749850290806788030730393808897556902771817935094413569755545546875448749390734212348126848536676721066592240234407717746246370982146352146468155256575146471640342827853339098579742178334623808334664009804243673065168375078433187283388315475328703207637716717424003457642399049005319136848974512023750898169922668624627214100565544473485083583686339383208803013451098305573924218242092155933951858056439472296589739933798230778957140191355294613084569951421380189695187191691770828686845882522769791578746116026321584548498574959606782661353847136676704505386731732944540034583873578588570777659663588170281154256235027501860520464398704321686801757095782999291256796995328661075402773885755657085476693570010004685712982037255322069461682289451159980385517584758408172699155037397916615753225465904524980129943655666591277325958950014477919121746963967757660572643068725986311606158666552976728598067850258553810017730494236566144097418993218120748844061809757734252792944071077037240278673235778958024790010673195163355003278202927578193401761564008815334023298814224867776459273813850708484164869828017598583917305950479669863244417297107212975695373386398039031881022961323457608305556155550245415908265457459141175267322033947969949079284953865999579542601188494254359183227016551278497525469134027582177769304983362830874476685535275900236565359284928147516871014614457215056000523894564844953857109072885566029265481898618711868669168820609813778642069818641631243488808896427013644132367127447019410178276353058254371979951870437898594419891847853306913336094014589726788898196825147637295265820525628586315769752600821967483681837739509522292942148517898239779814105164063863064900355943842325759376160912622622812234466070924958728048588995320945262984412273231707384277118454758790735783143614126677712654605586366848899661760785333919858818094183795230976389252940990542449638981462855824500613865971830793321778879465161297974015932249754305287419978356963449185835894810304182521942177165445599676621300417312402337376560985988537956406569796252729737667208376381405413111771056554940496072504252776362387294757642536395708754356871766492302135170918184383512028986392101140912954404607827665561693754932413489559443167410049376422912080427785619770907542585065998040808318472322033168065143616974778824560707349870714146664456927654180894279614677565872827454099323710091366883457786035757761155235360580418347258451352048261919752168617669098349418876123444542051021037383995266682859255812182960162869398957566748305524152186173186016639948982915843011835839270855317348809450169306005466544554756332678662816254173135823848902703384712652837391630060636791822455918503988476222176362801621132971254564029025634011674079237137138252187361073199247559115264887802635312141134707701911848243411568956357436822103319687692167847904729802679316161006624707112544272311385047490541702906130889466331640577253853981164693718920733719352273224548944042377834348294965754842040814879678377888735951845208217499821457586528831316220219306140057744425031940265781612231709680725955918444422514712893329363530453847149222471927278225236492730087762185733062386266345309320675219020480029837900255032666308900839846779749437838642081921222461508256192505707861991164382594343650286360532070487760137625507929535440086678049130836324635664169198499785983405881744522812095879249997754160818199569586128766351402688358117927659703326252574789261733791937883746900100191566752228277233361902648100424210074920363906808213268575591582778392794002140940462248895795791172790932126335660542273137254865745070502236192859616786192052862149719321810007110551333777244778638695041273804359673973169911216291653163181932006255544552049955980197717024769447165162427643086477151377787984582120056449949172027004569597101651661741418685722781609231544992284846614761174879830555743014363646337706733403150186050655603520166926730754578499521802465368145821916071264246430338804381996384716351805048849951887849571995251484722299629099751970793859821811248427945874116843532105075590601934913601087659064226575567563839634930664399403988690189203616912429820797509720787109277748851524018186788813124573396398249955916081706611984742960934342914681510660875898489298864892405892107034592093106318428966383646516585639966983966449908315719135553957811936217488560728184444395582670646891051560865482269631805032395105793659132337801933766249495123883912153852445978096399698435472492833293380549066602271963826760228570451038411217828537518289480325015192828481055689940929034980257214419487867924212754478935969506948326424842421128060587191353198216200071103493703881813349160225973044010168006148877317022191702160668586657165731963549378642885323800787164024011072286274572692932139274891545352819932137659606329324568905594301052145503645760287988754703777520012078544065719640375877949217647113781985061985341911118879748024507409955360529116067231416102148048625214460441498609804073366253542007789099551648427041808963879295775105839091385766295029597312178031883264993041459312908877004063309001991830648649916094718504620144264798614680283290148409150653509992512483897977885388290568916171698478251487443669470698965295683131531103580441978175293459796002582405575502331009979761979652667004189151707752205089834724109509390193927075090953975431461253626266352717292435332260558697413078285478772423547480790961921783261555661268987735036320766703180275328034142141325704311924256617282513539905090924687789671638832240991071313166071824365842814945938742987292176907840260939388825026865641975650900590964268390357691223869765046880258653968708473684069164098131806522863128683023670474635592655857625269942768943523105090689698315716014603195821953181991943485818353178788408487121364235905027853366090589708125752694744262964186256384590358497714448705663272276213645298658137833000371483060867066304415358736515565041139417628014321477752167091316419072019503181880159404801509580249651744462516480889636241003655078105793952625255416348593193538870780567496887073057089989731105486121302173610871486419090724138997897630424074221747108883433922804237363212160318922447928758877526140014091716449870789622176198194199717013678797983210303582414923516267020566497449578229913624621911791730611045516750634932540488852736766342724416665994585145880758094806467644410999187159456258729731199435428551018547510180158250482560526728526955811412578306866605540582587684026096062586735040036991257874523925576951277025997534003631869220784865800958182699613003458063457376950624286940574206024274823710085325967348443199240482848971722984021398058893724974463347836939002505436685092885543405645738921455915493032132414824556773024798568583565400724196123752432971720920288758787704907122673600435841001831122068420935722716084549484156093736502696535144334398727597177492526576612409720270006027422859771173563637011951124155540423830849080509922384577551850117486652315746627447692539818623301193526583041514017728633421970884339615912349196980699756336376181211953601565389953533210924942257568054075318352898745561444663364760021218348598483316500030443028768234248197128719984208564017899301569106865913108570787058894432829500591252940150372339136018913583212903515693512550673813264359796858685525334627543370908520423647949196748447764266334305264587921187060981470204443420653438645116848297694704156633071403600159774437065234400845560129380025346920161892593865573384805753112583793202140043166931418174522439960388845743841451745453700499843636750521895892251468418347479554272883985867783482110802128624023633802749519961069859615163589505308168315991420583052559180177322113136432715631493100063807553842475922786280890924681189063223841633055403433254692834613666388019413334040723657002367230101331371939205549780161114815265373415176433462031994872603965085986738528806260001626813404977990841015623184259723914017227527373922325460867163230865197722982838218240726163774036085333814610715081069460697986155178284329152646003692803709465072599960707387679819615366600204210076630800118087626759561259478383028206381438160625934974182381465425072442547699357910854802091224518562373097655187680618246398361967736727926365517322690399629653881779561523592259064315621211547432231682760433023347018312831623359531989065550708850711837574995925281095926953741058789897686043025221906263217455078332931435857396744664859369040152152084797951614796266530836814714479895168615889676155019257077743115347420959694224707771021934912347491649944545943246960428529575516358249400413760498706215730260679883069691509146878255074503550635297124337548193718859757535410245950413385281223482214617733966371696510045221957487624742032017071790055814054578697965428546793215029200951608754863430399142238489450188522922127368222953433829017413666414611906910503237143921983049108608017073651408625086810311512147491959872335342051716516032886873620483925171075033589052272702899656947803362448765679744486557143466548607605052701786104686770009476541832845415489632807403029884309941360416017584652382848459895679308806068619710533598146843815124220673522015577915239785575656946441883558873579777996412124089573959851851911079519882717229895374784407919449016212762432517012327750884671924052051758931895827865713800749305613399308892246990504178408231648600031435983206499494960729346659064329749177644232226926903092650151813217327231518749630672233432207122202665087858401177066403164436148489209307124627731439220632338330629350664333281005065508705537121349237064572669277844379538572314042014117919789015343062564412305670436011875237779655331497350574720162187373366660996921797291443110960762186892330691574924572061688845600622454320481711144644706279268910843302120970392186186590596842847467213340935125088482329777952051564963743533986473875736415983984367840673773105567637026356942391866953077376679603176007090083673808828981488704462992948522158660881681184354164976132967983217181858026843352985291681410676366547844423314547732994413251697696762776024544824097111665180978636200991505082915393342126194204946615538499002157509867570542975845813783201702342780667446044326508903905452159411157100289869672831758836502973532804657177532840627285923568590702098284924858528355599952995856625660039915026212379553780358539271467149665186830904008215595299944719561443657973614275394970963211244956560344461464677560198389961838080743068451355686990160167360181482621962889049155875931964942269025561474550216624015304220880064316017650544779621372014572775935928301310132182798504242559854942476818270487789016484015298993957805724135993424768437288763637323090515308495582909755404057057150673277481890529355881570840635287070515102062831104402705801676826419800553066664108077120055571645942589848460315646619609902834455706157612015012638352040176738241341201195515547911387069772688510821187627172078880943861393725045132865971161733669557572826021326307566602405278723744762030564635967627552025025459061917140589384933975521749352857795551797572049312181515170482325744724928149323080033845642936736331481222552292206853627717657808934449768676238598590175603799150004632699698922777921961511330332917366648897847442992498242498514925352758746039076946136054667930793742326621542694298969653871936002359259346152326232325009504549119763379249992981278456198743375247252471458482189032550293816650995412488500715911399792142272560472057253488900237480066403560076569863618142574736903149638071783575071475139483041275831219813429674999643555078170166977598982830372902615247011302104924767044774987637365034663604065887454938604619298530932496746898870977709423620831894139143635840883196628527781652050628658360254623629107547735043520807450309749528345486247790728756856459383143423913352706398764170904535597716724407612872239823115193978236829633696557073864345262736348903899069105340627611012732648109975155289770040325078772815736861494963822014280785093615656111389510363324239920012108626216375906302140209061960077151364728654528404549047409485492126303145269997424615867272271386523353237624017706109170466497126146480277154863466917908484888888012143172368838501555874045179476002872153058963618498188721676161682524151982346276709668668490597983601085114610114177636728864754443635737749421839387121442672494593424080612500556435818247282534483132450693261714207082550125353949280711861726538252550165887182313814500501244692429239463273472415168277129910807558388062972699657408273589642828615977194020378326448658364623563687414161965319828245534066199035513401901858523463681255055947899277958612804383273533122319536669722884058570474179268171063348752739874830399398106168974103341545690407124693209496863243772236319132159060471301980860433670964737033494222258967901951950906501528280842730007849620373067878176275266282251213274658911264372548114167508690163761488061793544909061032837131682412524256696484477653473161495703002766270466933097054588914989271135428327294744592169793828007904139089524357306200968117371071871219111648406548916576283823846886829476437649810508787048130889830524368788231250010442667658004288879508809206238170674877260508375485212634160569546345499829105323776491562837301616317376567271400444119207096454515329833382515642120012703284027584582312465948033268365763113426086012313442563569337168472370494120678341310162167677154318885330256696015892036991899623241720598466899928478996323304428705665186881094607128249286981742735541737492209830938245530963420316132532216525465967708835744119983706886765359225420763054623751139616439468478780831229567955532618087125295423154183888139739304477470478812095733767591946488167661821703964181073930792104961631193834713489944124586442538935637865780384540037376370459023525771149475524640321525895608963954823126492283825575343279317613343290292271524556642141835468178541562347597256040366329134111194048839617101363384339432705411915384394718173759295401710642373422875284988840617350774439524213973560913772983387040205254362811422767930045722183093700019799726137383812988515494391774677761440093775606897329396364107039855434613668909890374714394999625876274515305994677759096295596212947296164494875629764544610280750482156972647221222090137192025343036994261347337319419697876803108894690256331840393635718554826158636117183918210914444194299408590001540996758446856442306836013508767463421114228278702787227693236891791142544220263575036927402227356868238631251046528343336808056538319180488432767582741927962747246915018567612827146793590845165700384374717260305593732394021277133255637265559138128822606315990793094631048803562081288786736630623640442248196767565912623773757436774208674496439915051573101345610683698555125462779176775024398155820934333731701510626611140395042362280323685741648207154568597228003238615558101157219492796076205219774807082452095408924897991696666420396867073874492847561685534717562847205985567576578782891762857694929802330937477539801785600805511874287724844114535376709094781467326369061686600846117825004489006124867276047152540186361053641880705225097094899430150630488868749425093080610854964099383594490225542119243276858773584346981404716465289173684081885733655977446270109790717320776368730805428006183407953879007863023578412265868677500833087570093671652266697760247713606940940525341347179946281861821956827119324573001519610554667962010417676141499061071919905159547112324324869920080177624119606211046596212168998095775743777568435761419169773748106254180200540419765261632978880303464313875377674388768603276319382328861531639511768129014397544128334866561645270183305112246782985060323355460857751993735890395717413199001512303241648670082703378487655928843819794221719110531822048702752345672889366029298689327477052964303864524895194160209071991598208975879152280789335627561297062771245697221253156647134938662749827797447991378676763167363579330813329805348396612903782104957936815360175946278776757648104820276326515930343326909348473171720954744214483826583478962442156361495720558432603748361821163169806502689440938996150649240283249164590829278314293361234436063803650350537997434995101603274259578358837554606214470870163989918703752617740645636528191349868102861116566810864096312880036414748810118996417222943399268502386997123521096516421841577213114979254450197825932153914064516060031186797879260421462589782704292904518588986148099789370212261949242801624438851506882179765440100192955619573621316187128721789684506153886117290502028022882920987323904701782374506486011247752553801176774761715567978441717655899137638099151254070736064484618793394636215446722553668243490950157286646746235068153181818461094793916540378385938894897381468266612389664840977629557358911250625894524333342163858502732343234843001930615740330463215002858859069092372594629169848227969166886954092776547525477682281288378745272243349399622847750579132953543604319357607374279354129595098181593406691266696689168078576068562927385748677392775613943997371030012761170097729783881772578159490551793678667129491551226365991786287174304876731427518716070987135761006845534993867198962059376824724127621677991717992947069259435615255691940543216544839443016941690744437702991614716073702133373042122089626550849972162034224836775336399468870893181959750847390814217710725813410550556033527329756483767601379453504820874262860914837332720033545325124163167366753893414115140902157075721862169658237237956740959259807950920166857995046030674755440189570963752609212280596808704329325089821524070296947423968110704896528804350519821563217999871328682751815424053021100485518955197855786032821216786922901996217962237544203369830207474605356121094294225524192786868617463213953454948114365545320459359497682491770377192232373349259346452584314409436229743197383056182477963789718350627950656583719400999671056330224177134930082497464654291642216320978790942396817095988248891009313840257003448414965431603957303486590023603967693504418771625180090628042140773656470300883899543587450301592750892675505140727278864767788925351696912747371274657783501086605591717883409153924247865672775220502078054878142083912505517306740445369408992013535325106602354310111549743310821535307260016870002709756571593127430023869383675252319557781833710975008302171756874766939671136015130348117436172450235971494401650251632398109918857668603227188946819787715326690951791058566251838967223751797259280371634600728206185138859469441669586464495725800587980781775508745804425290458891012663576724947888034127990051112938038992959163703217191745319300230826351235775379380739611212603506065384690772011073090133374405139185284115746098261147574793001356112344787494699703776906929035993688747636262302473838589479878633836480996473411570781650828684173993026083811728364203069754928411328961517313004925793578727478795309659164582987102655394373884792218944233181511023256217372427382432185650505465023955221454192626736939424311441712081706415808905773671154056020950856190161471679492684279261239505930879551447567226978348851032496957985230710273992262381647641051745710428984995263590233220624179400177268510104290582299518814550881504216332769043890777254445529636115055629072579446588030219939312609169789074041922797619338439356698761652822926666536856320676660603581524646737075998482378218130930624133912972862216261753996421185392763025478342619011032067866581232350781715600636694186885277493490056057526671700176617057945702214725534397384439748609977804753885650677410624617767277134856001034099934631970777976372221198585320708615898006439910665198230105959597378081987817731658683925859829374352040065215102711205963731039296698653545024756949689459997871355870055457265580369006661328760740164951125410862973857354264018288029757324771818466179687323873682282128250595647353237262884172651650603136219520962109368016107827738924115246954192285584527289420088796070824092188025957057481390740432667012704616675918093391753847176772670480272416504744061081285254035326131144066791668441646365894277300892104400103522454924368408936639243561879634788809774700711201766784588070625069329809412312876579669479048885761636563260737118679445404405186605851455995753685722098838882652093312485402408094450924385976464528844635280868504887051322205071974619078799220073956747014698708817502991950162420161473875500388527586758462984628460881469758743257115711065391483518425896826210208145811620504037284162435403286746426452118215030551529221037033136885353786042757621275177923284070680074572135024378498944151271782815415889079685752029055023171874022510889279650877955993825885041127016169372936334143259786122625252263127530383805594842821747943846037111319900663754119908503445866436057171698368815963627205104143635813395507545660289464573320803553059397019736636612726717815532783368373987879660444321652397631243196450796927644201298039807181967757882475398173408000632630416201566073203923203234805422201304312686612962371413495623478297013691348507858931708222567003299363770393094523338964138710731083610372284498774413757772705876054935026787214025172229854768738738315549908134185738923775652316836154438785234003452617497580542446355010411430896302428757217669174891322466051072609817117037754905185694387803494701865964942675318927185069900059828234184679279378898611501257494482136276095094112496043843638225182523920700443189713178990789034238541190644279039626855448065806729780386603332542676512989143655173783450435849593877246737644972172355966349341129736404097197988708867152796210675087787368501370943881881887625111935510590455259981455196786972043729629949076627712725905877540242931841238380161499012979112154819627565512039775367461262449594104577684127231077016078119818965442842564326719193841104209821188067554293137318785076752836022107491242609776062878414612962752860244229171304981078419698620352913186784163879824504579255152604219808330818002045398262762565126444241534232493483646342361290990683706980924921272350287206037005027736515199402210256245744454419422859137542894560505324124302401592764671656068263557777118132442971246360703302888517344354999337390194978617079053407318600047975283950630379363628497084790749711314460093210232344584965999395183338432869279913055691485251081139776963543406851429488107526752119961118025232246685874950147158752245108193192452026059449935396399587146969125731855142651402522482091594564872872048315398925665252554771729203725909434081640925617313076662654629929369422376151757280441509850924837376498689192117236488935527533998301840314431111906813461536258519633580416275268196320261474159289164226438719408400364359606924820013950303863093933938127343069548936481134218878114458958556583293368990241669389908363902792960146221416726761559102694642638616467727570508331427148556931063630782778227958648348477878573225073399483072188141006751225319370808498787200564162778964623753998169440390954905008903426817196075162942959189816117645773970190282788634800421065777190567888913720842762245172493087340823815213273160688412811857874773177776156417910486591651412283246811461678768992293227492382463495898514598772049612130011680824107800286402163687172578214427242824162851409093079385838512376763691189561212972485873136301605698888386558437894258487342472283399386122395810020772531632383058169121369279346921027590291415126394605644367248409217471976087005769983266862570798264239804967864022206367676249838507379158457906683944090058905666714903655158378140245511137132830802709899371839444475234698452063617702430014473020997145860195481930238458996060413824386905114588475156129234455271920951205274830088077352918949500805115007467930405471486542566329451053945856797153405703192669030889493993175305319364087447425430235754393409732556816396546552174862447394919621079203782828036329258895026661366127526448113573977276297048146491172128553836637342040498624748422237605611449170467162295351758262057721154502304840031104153419166167250150537815379648233390759971319114784120807699149242607141123565610895062098508197915557744921190092980201993057564413133477039309606851132675437458262437229575256703085402560216687504312638062801332012333104482259661428366888569586053079089080228356543215068711922080324234158235441803310511440713549102965583083348305292774122651194076661893740273453683924293946343282835784123795798712436108520874839317556702012337869734819991376870964143521115684725080426998530938157598402040700275225977523346720238789619265533846807791487133089825140322008023488314708900720216849281859884105727086630350670070344681947181580589026659630530896611791061538045139100118145595628203365641359377225722741458861487559279905872045746316086086000529684528940585550511704471880655340852435012209550016706974157139261613863247213378325425780678269033945552414939279487043204985254462977828969765625667397080149626107644987781341730429089977831804893228345922386672992430047997868302703725931659375366672862868211255302579667379137551085595932592129563880716227589749131195351318019882293161685351829729937227488227776745057667007433033016990138794351141698204251122905387675549774217293944921770995471831652672475515624887408195842099309136154250838608587240421217594100863070891697795740907451644522795607089193621360578888816793487634449867191444420047341615771663621793257906400123105795325974960118621373760163131708452350417656023926303992865195792991934286276779955864498170014646821497955133816063959152394624993384617791046452663029022925968808910125830642410194345168996242432247944988761795286304626049546681317105184629739795530546488154352413445332769757153467266409227068462611763707557602981719689062623870095659075300054677860947098344151660824757226993383909575235683897837782589496655104816848002270752468558618762531670100010353180347634289019868828886798497046607578673047485674927485355029427750008807791414016030670179641326980824826285429929210674217887395772151115092712744758425065721810823325175772700521494360817827791902551570248934102101961566392951387176768457247606485748890070901399065461657852038990555618861375786016344401091505848957466906655566322453263954547148722343807543321952323192294955048987146711360352118637943400174437667508328396623827096614529466823914176018948466852213228195718253284796878788949067229715180729628259296216436558654032871108527700306461403302437329320698829619371790524890758216512906079276737442611672895718549584152624834925076249981150977083938774955184477471930356128181188810653148531276438562440133864520738048738915017000328955806864874935399790478239121989151171223888525606029874629964012187977437290745748870257937501102629281075843796969429137205663239641955552525030077587874150010930008447836830735414482336734369376461890477347415524305391978870156601670999328373905799166655846921780593047080239056309893834873904537326845179844140906034431049691958257936233653264684206148224070362359428990222258208419675052717264750273755825739146622365299356622292742057060459778986538566306400958998870001876869393172285661649207765587962507960187507357740381996581663483667282103863663249032224174181538781745076077284864670726965968160362663830086851523653186650543131655893311058299161060178396092583877044127301562886730561573359766778935097548360680636719878683837473007783485560067960446788049461857138247921998545855470090869230457913442206805984512754346630623409144810787267502204381580100478899928938228291440226469530132107926241994209674293375352937534689300235184077320356516535807859908330955325186826481850945921301574863808672993124997696405551205012841072804210058914077240518646265987906553752805717548485264379723387180847664558245294121679361584911639372422251945913974364327800745520786334814052183692240733040923194612154013319074310869949397382083077011464848386858359978460524881862779447392569832613192861655295885776478581296513762010034399348447157934636291930625201544322219452553167802548788116108239456165844680192138498568480070905122884513659592307002082628213691040790648677920853246080991307376802642167167666716810393256564612761888433525895579686136853650398115268921575074232138200197637368175378831647604571502187938490112159662979827551948078275314552229662696007940229406135865157189516632634205960793544668718434073575794092970577693078243755443152507658218291292481492306913995749664213403693346770797822713577324414132093906551226817571905061874145861365311967848991951455166644654757247120878830635776061250673426419618649327661036503021383703304498039036387714256573977263951382833406064219485199723908746411040009828232947046322399937830434044775476069249875708416572941752753394888691757931789241852378211866848771916859471019045192947573719896738168999698024553271281108983111196394962564443174812652632775829706223408490032109885916784251830801092837091183018626194349465332948234098013954646337469499842888347819639070603361142826143381750267369749573757834234878118136263516844069183888110881634412773263553982058743190498887687913740051787485197531144114266027418355945482329375098913901499228167614518633621075221740704907025188565959757535997211718890390509493054501251711929022842242324014387839807224583559819114103729102445077606170885951564931134284876735607707188326796595911032900805782887990651216738792574902129730922960702582399367808909365117566528994797371062267686292293662756111789505734211258704093979000291203118544402008851905494718307945315872209913563955939376895515089198656240450879637412194806364307444940654791853865361623780565889928359379081585821584509980974124493921585741671973143659962039224502857642364791363633690542815458406640600256087961532458684256869918636536222418439797178234096361581872504008815419210422547700898324296260696853660109581445393455746307307875647296396073408116746654689959275636301374678806295160777829339617087100749985053136902720071757148701451098335514090140075630696589648063090141321891919216213415018833281345564505782031826099368730218021682968003881697386570943746751001499291906327173544562672771704119590850911626084387167399810971387474677776755703119388572959075373953155100580634114238224599027894408124123618064112446431014020181278918197448534901162678938099373099222031629879635137422877902652801523126795994828835829950943146412420879240625745632842073413866426749484401691008978580408005638656293249504039861496743994897720272326080322284357655022108124660650464026992239382953951716099689331110907500200395182765313573779007044818547315286782349619144049480703639850127916342493529365161041667704737480616178041267473611083270742998584236294207098629535793280967402941041510296551550768952422797577132164758755561380288519650727721638907382995449297510149010776437957980770536925969824423522251060203353947871917401282410887386214050623717162155120732211974685968123256423501362219378747220056206413516006488897132083112865213174625765368571269899620309191566258760252972349314259357573221649484125486995451701325706313763451510813751507941264593032751011859701267849431042701642137016794795094708688018234128335743491248208298820314243450689816607594388970252233879910444411549211411045445079499326217065132332213926968010351190012338144921659320572308394718757424425241124310348850950233954132348700133012491808450376133269474068264415335010743163407540845143004061773959717016259878073624420883015514539010937971984617199717020899498798164602063870572510556492143687927989220491322151604976288275611315377546513968658674231900763889248719027968973316063502140435578137489890771796177949962384595583325990664532288624495600465508215340843307404240908326871005280645864030675602013073029393339935466976207413987075804176987756412379001317137012505178029438953201639129627566407180457446253201394530696457862032355145632127825211750001556828829773560265059122833958964574265720638146062379906581453954364843731771915137231442120929171478265321855566818424380881530631534166899973247703732492882508765236081808674232215274795763185394935049182582595943293066191025416418925435918491683567063811831408307340747164097804781373848245089878866281488095710924929586224776759600241222286377588489400524711006481297430619477538973444526334888689887272548780847946965841233595657800649670170542989668535611216638069875869154844591551683328010980681191615913512820923879373558890197231631793729950310121732212649752254113162494525982159437284883193061501540965839521499801567025366969611664392879185583751702127178954016492835154913123607533032169034457807269744596398711901154728965392206319454635004531447012550532351319645338696265649760119321196948638458343267069753077237914284528921417401845522152214748143022694133404459720197147863563711647620913608103553775355453340454068349957141293398529471279247518851327820570366960174638404915166537029907322597651820851632702954943864664343926827770130597556523652145662902519271368833181729732447433992850792290492975445567970582997183704098077585945744262254292340962173156284438053887228458494838311253194360025752830934674111583967728203425004870945301905225094020877398193224936940330589285001993841271578874363839702399415954945889181002687680238497080500199133097878532379507729528223807787530306688267902743415399098652245871699878313929780725000561664032063552091176981365490069016881053009991339064224754572910206890494960884636248955085520574674210086013357298327037648766734419744962801583228623300153534038284643636516983082222476870877824704130940608625989209477235876171150075645677641400715154777234953122022013433320822889355580731729710851082114831787145308297628615434486744268279564032215997643207879836453130622638490003983380163883136381541928085364083174161617235572217593383357532812335054164240464367093640206933061476197666645880023549123294474180284552909957350172905781183433764208633837085328597018453914419631223411082882530164882422563857969383466695737925362498388061021678455205899212390333680980224232853641824563848825051264181928447971584900908016283066275959526245751023104383293233789618288041356043670356313956408951246094307766671585991195027249151644037906856420340094069218091825951570209530748016403289941431487964969697010212979542342637449317474809350150358647822592769128663746971080801583520272720084701370723236867279207214545313265904863210788294456844336691186693090283706660932133016041643635722616035373198197428512837882288664472777293124608069666718925909962032075960132099898382631858138288503501715583449087232251637287067974156240120647849440573925484296791767520455802772316336847316656405652665914763947974467523221758139431566742233834691250088576455020593931242866210199617540356257823398062826316536311929418139877614427348033171221511206271858337325227880812717319522713696335465618818343837798740579102596263628786999549931276812321308355267106976172737082135284101028518573677798305144419566255215216072047531454012018773267773497847269200462532858841382628338723181051714279765374070675789749432548006735682452845854589744355218983938477048048057110897064238235659562228999876580797515317561570026906820890192720427781918842927924656758615772879090547847159125222062883116870848360507234848865566535335573330962635005486149063144710031029772208877149440093490906433725791254030202626304605620136897235215590165424859959706072563102373455449051790732042797272679543989208613664836619436386982473842353934027026777190690804731036901040714519695820654770729307538813949064081256897913991208006831364597313670117925311801041541718908925385272702039949197304340805450070519933647458128310205655337290821834775250618544711877505639254090011204236657584664141645822207475935559648029551867849240503118927586307060405921021953510556440367334520148832245410701981432276906774698494993333462724207927772019674213072770483750260875129956531313194029435318751147892226219312925803186800913071796016319993680488400727507229686521780297020332757047809827430022611664748370841177108635603457990063123981525638001201770091523939156820951116419858056145848655581220785424247116213535203835914446686229164863592718691999118963825656087667539575435633651564491641245132879535754726642401444971975825625972729420515371698784236424251408353066107744515537825457179556443008152369718304050849419530995016817977101443840940203694640933033268647569486654029795320392213063840520529569958703206759559878570221012821202823685003826006222569657533511182456857429099721687607991765298998463490416792435873603844124950453239127031366792582414754923266661019266032631786307629377594770494746720603388782269816410802414478706165857640068149718875496742449038478301225710392802209750794988622019759948962646037454686396354210548808726439102321811203784477190730172058446628537965883499372473532653204765480621359328922309472393079243347399172670487711741931519634221327083555344126423136163066621278003906769760599101265462278605414178404591914338807937940974438459474108286537351405801348127083817692828842575327794791715649315064310150007734170458702960412988635942509677983906392257075733640941716688748460889705603092200119716541895936003677600171126199076322502221182313441986590279163468857387317473958982223387655473279483805239895026616986743423410980848826688105760579487727065678040466086674800577486815927679507608046156441580344317294363068358936402300026397410100823636875269282435101279410201261256216010553844635906438409433778934750125649359858680607642506981156519052659840696120489667873956569363682706865558379289163585201775246330477145148786155410477530999531730791470264887940546598676008520312369755667284781048423376745169745210070357082163756468565667516986817663961520464501244749454891602849384086130180553280183860311041863205934285098420700524097036191058637081971864844634945567236127637093468789664279310917781487466303795405253720542107540903071763290677073014622918215575250071382965088287042980302091147843077803744431922963360557915962643753584153980560700526859115132852826155411447977306545371205589878357339521109439936773494954916338737396418849806790662079747011054508223704234551043324204101044129934914602898002318870992835625333530614795902447656364056937743830067605036849389042099176188584664086639261047665073067609749937536681123430034731169488270079658438692083267182907917868841814937829052893285702449577672124934818228077752563854622852245963326695660458429442086862812571635462344898376037316015646105292323076114878467536372086433431676249317007797723609899579094799793576949581834968967690671570974480180415567888933861147082987024601689184522191880915579314033953994162654756278175470009530532894914373371435287186504584094537713931709897862355791578724360713342457663353316943774416157986239682186498619657638100632041798960611054204260983970728406950847622015647250757280245493784008347715539832428323647637487695625506660304757734459537768792003997589755343565369192808385648430632524846509388317062947988887021825965193017863389956508334145769161404372657282417487733240685248847537651125539322522451260031186059240187821358883608221406374373677096637071683633231848344146777352253521280461931801307901202037626290899255700496125528971228234548178088906722599065317365671989882531756812662383824284981099446310215582696054086652955736650217069668962289417158739756102896664526617520850519970912084192164280401138781494975056126583367398609731501868928716505028793549078290519697059539059014739109193989654516009499991044198898948003931511201574415535899199201552781440258783301608948253130893290439124728071650941338749113089728399713051735041647323161902157787052792994101266463739380563093119095721239441591932003328541020388852603404853229386491527229969827285316217642247936077685813796477774968645249233074914744960731971086884310793094726821827946167220092218827011122109981543005169606697438788636139217999662062182248776955632032424152491672161774241516878295360079869466300460219428897134052223466057637797365851119523377079965695781815740940504131727139611440789636991435042559570773041292574399698259670809564301212358212365432755796159261003930181077020680990485841367766847760607086711024470533926044277492132885463147749766989006493503533020966373689818137429689348759443330977236289067212552365215459785986077688545636762912815363186338794801822973149792177601653444105944671591595733412111533734784776813312410783591383879659856568361768269291100591451528418188387475786014455148541283854237065307935184597579246372101183898303676607862580737027228306551956745168282332013804773184557076856094540630505798484905383836656632518594611073690743812089219786641669472805592092764021464328192126894946609853094233830075004943937395509264730811300938209382181186079388720915828750569736506893829722963982993283215984012683199946770781482907477999669928079441223889491920079498659428132523607649756409804951170234689476300061567866325119472308409716076569371909894123875215529914014742376974821100394315257796068114994735301746335082294281505396118047069387816905783261807937514564311856422015635543937948136036921165961550348239658807785046586163703055458746542530788220662556310937091644021541875631561245054087062761672147077532143016220718970277155755348785134203080981414058659779783583851220789607920465865095636180461352812537689809210549177295689683742125374284212671133614472289847460073694525323788480841876028937124076079964529363476498504239122888058540940184702462908565706432746564779265704051940766557220312030036987467369814904141981513805683950206975955947834623889741521182354207182392719764551121603180616264060721139739560325310332368801602348330133998674353026436199482890589362576358097081975939257581967172796818392378170159700791735683129667821579582424507675396631114152713568388920552440629680979127836405526194724054721575961773757589728361653697162016121479506596820012015325208926623227088362114012467971927735141778065968356675534148805075943576574907461077934120017154151065654217723557862531121182314786634052530043996559242531888679924818027574155661876530927169941625014111263594777129160213146234730473955430712709075380980911744132184514966456066831151538702987827847695432998388302634081038134085664238431175784906426582467948543986722813592586582695579192430367429592193991971276841219428262096989284345822436099786883754280461986807783256584146388351438360849841392437844909423238648609538408480476465620982777575987507453722594248268674599398029989573047424415059604142105518075224995820461825595567753501790967518697498682374033804389507620635406499716981657596103888626522525201411854301676287463349341166305910334513087207114193233758841141287419321888336870349989916854368033855134550738198722265022127431758467067533834693658059006152268750141308028080938312117618021736516537421462454478891300886075406379701055429222500793658198324677824328980859943546503531998367015030638743356854544356965988978430147636271238790957804983871815418033371907924190267305356792266326228632396839403411303746066772699930148807004007226634067053560308163127143503747267019105953425028556602012932870741546143248817467014854373767535066877761214284309931691098394076591179389400363426719654104324871089220690893045836153908379252233653276627184748476503051543162618582932881886069684328309672513614649323937128798202886598686018956907450873990970261718433908823976531420125211291731902989435691117910188811068667748590212085349144467747054997280489498244181940414671434174316271510822979879465618633592168877853821601869580377637415495331266351825071359457828953296743806944268107005620397122627238537099919230735246134461934953848521308359300408749016721352203874961691887025252760696248746128463647257286069057461105434771318187435151966873436420992878619492331908116938098266203939440743658425117730868441274935111226516618480337431211723682292989535989513135286579312565285100047591415485820058597379307256688120883894953226908665229328120775083858177910212431585801883797110855105262025059334560436739623821095580055695612709412562179564096801476757242416646050684002369992514597625553431159374851182064410791144815854350264242112275998450603322210607250193525133810027535596474896793939824699233020346140930054007176308128879649932492109173518244276836570228971892225883548677296683602280462191247275431742040941258726302797514142270098509029908595970072046767209115577968483847427884620636548296591239173382131817514698920427466950517418555602802286045489906821661178113542525599746332628572370696469513389429214468775998379852384106380206290612642314510721158046640936819475878895631250236811267327170308895033871207039733404449069051424498568760347731412474815625445411865918178264042997636684450109429313803009358472605353156075650563773717508929734611629468399736976880399328932594804350993575774610945898779420531830037795571931985822858386442250506147606704013126182887344834999509666138580387928672480200415109210365358268472510622003274414118507176117225426924700500092181799145019519040920454240872603197119746376692650825533406561655823139594820281681763757226368764493423119947113962370163508373699002062153127709929901248008768697136299932966499059731016236792116465333853169532457176943399985703254462810480209684487095195680918090136772056473388990462798374288813616235327823886341704855543097662895634453527136259596651645348716458462199819426694400393370914722780486252433201628155817748358764017732908163007525697245971647299098952090142271310603226763749857064972423857197436547007755117736963043743592777305850573325184950430282540711430067583829794567601263568588112664358175095926895853929289307443108344230969925376587395584471116574226769663124426058895016852502187992219514734574699807639821907756131154906667569536346294536352385748382600276571871550708719460832907975884567982195861266703352637642551543796973368045571166495436641061169604303081327435132418729718562878787029361896928359080663226887053123994129959336723968648020920811787353633939590410510868220997752519914734828630598346477107695802844064872678313444841478362721593400786407448068608271797444804143777802626789915594103877884902799317255443965356056278813786399388086403606915018356641053042428606657268149712430237620545887335164142324482049654384624814807256369905934495824506319414545496444962131969573334941533574573372056127958958931837467924383380182620078566927753677775686222139510368466959873668574644595466421102685723332297628670846350826097018828236040648521391894021831827277681765150366615429721351067134628540494095995934703370313097249341126824909031299324844403024916634291728299272379183225993053853791444450752657216214502535635620291661378503357743512907472588675806581971020665329245062883706541170198906719977860447869622268394741472845459543782583609698274648423797498936253758506222973523653163796216226646650081386122983320444801968738024779542421218543465142894464226807953407066412410903484372792271382415194680689489522021981309397646807171937697791469293398320720919029505049912610752823865714676121560298442920106378452621571133941588338331389155687965827422070701949006632843516774081350355463508394656456441985985434399005958051310231359967919063750895046995548935609268305240082568497476791984473495076613818184911924039176182962127845382998027562462774125946198329376706090874074430515835844962255782186553595616525042868821648533086838573645851473757393544837967931861696100563274851698115515842336826121461449451836629633108719821163962498172993157301046829353426493906068167399295631658002129402042979685503795574435171671486583598673508150668770105619464308510995265390293361841787559582009474618632606951073374679090749162851203174719100730058877575539046194391861114326624608363686039392851267157632917785422679368848577302926169570774890307115627535094443523411120096876820881705252367151391132958666451587708322023441571392120010797858535821143331763892299580136807312758756166096505473370613293835827604459197990000548332427361907851763268839822729189709485415617829066340849039876510874283758401196663313396656563229983066738921127358135653444016962785166856998454107433222470497706798199020408186524266219844098120135565224031552842829284775356671627160240549415291997105211108534370075966511534802372410442225750561778339761711665099877456773051191392058588158840390924560618948600364354152812278435591236913865206924582191651249025115523304909483070900186597826441491542819397148122991821465637672779824841158642140236323767804737080216896506400967821272499987813890852093382925648690124675194907505064701925791396481395450984494901785851294151132261621211129725290253520192382329587182054290190065437209935097536784305221069113322622586329881106377999781218150635502641295498477011026677126452534792840933016869258220779005854655574137816308661069883901428381493535965768056248189441604673441932086790313159950768194549653896318211126815929227141772221208565143642914452623995459798497098480271825632259074571137730259234309161371532135441740463896464530977700935374964221229393627528334189323559094708860795824972386386649111053469130556120106325195046050822861124374688693778852562803675539209118876491440909901452325937968898997232562455516347067366596820078192262313449590281524481958949202050218464013983835376160871004230177503284120699382848917337622164198063989708093600419483901848293060412735663350118029872899244758325653226589332192217130622792751584655904314354955948239739556437629978773389304722661979915409026670089550284253044880796549815500166557566501110986464650633852994614068274509491045924567484153099331781623280150924942287143139637375802432075826591036543792693598349047743922126219656474712861629284686004035121898930945646899999401108801651135032002874884881585773759689512193987833350222455906984993328915604246071246274003324852396078962090749951253571895460813048553938472506868405485579073876108560353147360426429867560678322261775726683683193302136112979767343193694952548302535115397674070800435533666185731538989142651640793430525026205826921878683330347102182062497394135833206730178560194428705155001025979108184153348908167965837876594356758673441622531791865680721983922431213333783911795895323025125188053409304090834472319547033985978377305104396144096586866783778527036544498278516750238194904364910915877729788939079094522072318825595175362130531473864797103257856799706181452295892765634329552692722962950984039138640062261782729642569873598114734783946011113560388051719418374341252568443172466447935915032126555389613146219973294760546542883171031769028319494932617114175149948747032240589899816772056379309772984860094260228587035807172267141604193168714852953737456089563609695268136115866389222113620701681901714452566943192485338492547954188520492336593294010461687417706780657184922950694941080756727770483258463539213389552691218932186901565737695156495239256647900142347502098450857500918800111529654971380190717487561759682326638525299432107113149454078900221820312244480204589593995270127410252243368474039585729633297839301231621126900568816523921514107304842626284857845776459979028759321842805537476610942447866032447385983815480832904109676730084230286545438183730364094488191147208935033096303070944804767688259168183122326333847412919108802935089792856425374876351815271377631776739264703077971021123838948398309098423760369190134106371139516201758020606613752268279590522351624098163809530452016045950138296306011817071744871531927270900136422366711697508791432303823124580473745488406999699627379429748356934309460263305657930954423667907449735993731524009434141915001995470162284608496176214524130416766362037388594547988548525445025999559091904629473481650035091891662712069406496398255752637437321099400123727260503303162500510802545113892729256128891373159428930506459393917070852461576233381667368770994391040732504157534250112568280708131380541220737995225378838937157432419734369435969595405922781271331574651019913751544509096592594085603498700522033983312844620630673406563813776919763989692477943600944942464935676740199019877040207343677529319251509964383641933110157867940558437000706608219316128402566150934640276427490580273499870934467129433076301638420745621777696037753053634413477292078624959455756307039407295132384927298399984741846599353315427846726490078644696553861050721936087379880255010205169075101648149733685962159382020804658561044306388000776866553100884787714762389999337215292192742975862150300514402324377931582060207827649057134574366810472962014434463161256592648840465917361884820400921096067513947241038905631376065539703134789654058576632176936560680053516459526110594377757067620240042900837077975901560799012938325408169281889612147872839521266109696727264228290055944404939760795977753331567597920448197695520256082988755140226374916287917771620210555064534988101832763978991798271058267893806546845271800689520108260614194552259485119465957298718869907489659500214326158342812205986789020361205182209895880352764650726808627763265059839452132874495479198343969706362682660786966367668717134737036910677404939706005129079954515460249352770116302213923125742427843509647099978424356876240438671682774738508869552076192666612165253972791111436452627137198548374138739367301158602931082138348319862034142656857772514393983177920619863404891549454438192638330444260477014171561108910491578978900665210966296421924455266220824932299808623270951652355876751338729436456476804929020433453532976265529475635081095325293946167638727249028840929661508120935529963235104530213750552075438045670969195355561091957197685446682466347534022209679157152736765990247139079288464264572594385105461975717470057457121934970668976978112472962863399273581186770814601510680330465712950292935824525586940634295713343561592138723482131460695232272191521688870560957700799256796820511159073447901272417512945860556615188356357720826099497239934085164985433532382281958019094247233544295498003321031066139322609849894922340496485715287662814850421102453347005693858132957758964286267372548940647747151976592548138410185199070829157074087109958787606238874830911118249502457643605303930183786243110812843445933384715042666288063289034762438398905753190009211280047845982541824503941319669987149908150467651591191285059127624197239890602272629174334958204199347623671973180983231876562833368272870481525715114931867190028102914510287266438354213913310964207980211223472094215777327906778745111970937590266887885113007697584851055600018273573162232980402181194165141051223209888320017930318430504353148853413410507649852247730075863921028171216976096615082595873632156602361168374669982450545391187421037668528677142535585248626635356801734651474442583377052886902958968018245678102623255815277509879941523515176326126261357056961303653251595168277141493285795345457876405119677995692141523806727796637948154546329025138509544190599178666648874466796160919716839703364482341112112599131678543051430170042482107325455085036750696322640196807247927112741416005800984044281999433070525897232864364306480152705546643613389315018282947956921190378337053309479653048968189593967936252555721634151608442800715110657983480268312322465094461924838399476039800219781548373118996717825010483576781189293877880646278726499487559126289959133664478271987022374995675557233037232458441551379826524461158024453555057128557854655216624946162026655448570349484814484030446752725874122351991667147346027293013718260706654151732873566217790344863024490411288935990331453997633274504667648359372607435994827029975585745026691680881273307845105899593702430466517184456754722544681717447444963059040101329531157138278925668643993305333379079652514044515872858678706429674724252733519633749533413601273725576036813598067337638888515712971918230944212343117708226122640501189188216185062413189923428359247534534161326878711480446449526129878073068159034539394118061343816101447251806923308931184507003425002465678880590062936415288282376698844520597515563838324441810537776375920098701535157440874648276821957269519444299914107578545441751517760980275263411035370931005569502540749749836598623378981399864382457461101177974915372360964477692356070934320888737203913452987737644188479166028228781699939252044948205149352851286128764470811531072612429732657586489956177422314782262032535719960691238732625170726585197196068872343864616336998294652402837129332995995316765738490828141142414711720824346479682894031010429032399174096171856346089553288481732266191234222887849863257476781940910211691333370869893861315584336074575346882015079362320562924329328191600043443869804045873105905308164932134784180850307774565229004978274706442392906478058095712636131021025088536628710173602247373789573524340459629984729324217655033248728027771177424669909091250257474304951832886949071934321568501013939927915135854692460918364482528428927668186685821882713784211339476892621281702280404213485497888851512342026787321334146890350535704047999216636750526571465874181083434740169481776828210699587155845398650237580041733354232508844612682412639134149893993092930891622748815912593116883212943478350142522897585627617192227655198979315063008384190274813585691080583246756199099027259391668680193381226976524146965351595357237207917557438735355018005667999798642479028655012609467940860885683928467137832671089384472425178769372541438419593463858592420589982719270942506025204857576546622713640037456751962217265137104858639191777348748949668673627773943422938699649018184641909453128892957188519695625193421379088728127583569711448107577880174704723891449307298084141504423735758361257577985591276101833591108435040731563250030454226885350257071438976138724780715554126704284312840886338575249476145802075889353986407460876532108985336505359346760326550860379192350663441735407348785162740966105267760139800079555186303506469534236802455462208739759796507436980395126785490956011352067830415775974748168026453284572765838878032132788632530336036864347317042541770009431448476675729298472700392232295533052696171140170964175273134069527239810044905377068298907820275998913951613366150371775304533601143424814870217015341955745974412789843513381461053558187910748606192136566777893702000442588599972557541796034171741444295730779645058203142433431124982005993448567205741952045764601225517061315227786868206542125526580057295158741529597344402916449372659280193927209944529598216474618234786814961313107469385390755981541918966385864861272978522336336216570532020793878465858806572240605735866087858858852967851022873589452665981498262721661465428254594661129043273551815308235941661187067950808190714952164730608802730500806261843538740731249961441262182502400678441519860453680012075401541378679852871406506405443439938268360634697879222138670715548636213986301194222631268494405976658819002212911301304503868191693504448427863778572973906860317906804043254104516150070867318322564129417342757240358380506070867427504054821814340833545884451906020163531351649664915682685811567887091159593700985612962679982094443302133750171612692550501819788102271528651449650329171108127832490252473691180940651036978195144461449966489360015923257824415386172562161442183716734088675229134232256423334207256325437934108237781387040279049290896794935358015457124484936355684224118827927750231391377526515541850786868293197326573747283259724429078748884503135670484746299221915746075202116488207331413378516409326978970787721587969297063643630305219850462142798103728722836322179922950343812152660263976284355283563971307994134071793419556108653379429947434384088771245596580536740543562136447898383082516372135659482545763883319808194528570404480574607663681339975099860255699235930710738471692885126952779070531326100387833678155646922364362869205865207740055068608595409187795919700108235147749352565799816846094315342142557862849553186002572702175132576106532403959963737411426565226867769527526355034173157106170877140018420798548307544614017077593419059921149025413729811890015087310185090778057429479702345013730209470677430999395547312780687759957351110033101848510296563616300442965286063259647055098217218397658781788711133773853816911353730203764913982817432888206103355461777500696189786790268907430507396363947767655595025264192400127110708204857873601539057082516895348237734329954938070331227778930197416326890328284919082857167468339582565158377477865054948530734179974194890022842993161425698868266450249380910537436123330832115665825657048699379145866522891792945799098458436553583758861751476685998867393898476815769810941712134178792797477282481205916714276806428929075856853513117033731861515953281996573818001453715429223578641853806754907208937721724731918986938120391174595195466401247454875526588658376917051555295740020587766785277528770374948184016072538510218073221842040234171964549035648836858928934004537664407361544351036706510296153066298896080512459813524580741251663158672986269495145219925472258721984691686502217878718197315367348352617788637639928168343992780855301821779288585268449413955639377280175600672548677070967692517251059454044070353188625467562151196163456463378904664487325194130464065719746723644367515680664887709411650925852303153745982995499214268966593326712274578000753813474358062946431325454079274086661595682268346904752078459612504387824253077347775082035713806002384776924132936360186973991944728633636979252813214476537989028055695790682365868545022230009477885597724263603766422351165788344048195611233957174187897976011582611518369322892163525032743227727754732425624202209593692517154615269079283046283408366055191265146768255499899265669973566509096261690400879462024407197961323691485993802082464971898854006578884424253755152373714607574912061731878164907869082538347940363596834584361050944395250476233064200448156406248764363210901342715182806191531055891094445291829038753053722956824158938304463464375948095981239873490802191862655878015642448280559769300676543711421064463575615353604926868974628899898620298535552170109332558728492153837622482622400488561355864347010278784177263887214751702639604138021373554685710413260404473381316365380043363653293387873814319036570141206294786192152330157720772112081080866000241854859477001598513412591904282145168066530899549141433958845512084275331469958428124407312277167549870190607099323120672007251600669058337959215993654732901324241142566155256393749478954260792233175251685761485181256147636780942496955633698673950549462249437151291688403764841643013101384764455000369131032324697534926949904097589328201729376105108801437680532296997251744745818583781388075779845582700848721823557510046193596247825764382721415708368845329936180583911628517256390761376203911377217151185775330301053141215087029810027173375967918704490613189809297118416529094355825029989813677526598430060434458018160989194688423005442921978010374119717891910382194089356901175593989151725261699804041270293624549772234144481579413959892188148515283562600877178351622267155713375422959424379123685899223242378378234224500335910405254082201645360887480354068945461306129080272550338618304863019041818909524200830012928103566875868439232167117406847235535862212843368518775875109039631096390664405425143421601012371974340388624120169973244638056911459358747424127998150010078362340787987974404348248884744756424292823927571277646212190385398951578046531868632092810882290694558410277333026856865744015530972799435135016913359640097033560197493937629537823121128067365247573232070317235822181896727201044130486209373936890224655103670577041126091669841347409872853243242663414835964511343459461521456152563618133004327523647008932879669909945144136378552241678375264143824034299368249083052860633839487348743265873505492074324245693773818321679505118597693923800749727613427941240772296282165622413858381584626843536112538151195422643783407527843386187533893160397386898576666503268798249336925794517128879436560033454793688306333997009541620407879797067040144270454299457209528458176625092701012329014993642108546141791772746479370554189869969461467509293325027604608786738769439055689008612481092259244977989736836132696424814298513961372907678555495338225248938578941554243618414812299195173585313880270704181734814209409389319838038303854809698239181130938807508700191549652195201010369282934916747728781722088972124130866527738212570104106675594560865327485579932583463746002324225922826803378855955660722717469321807317480474308519188182176269383064952395762964503069714295989564267191960333724136747434056420095817077592339059994030029676797329375527308910742000997995695351682548911822911018098517804545865453494743519500053667238448766656757723114558269570611957610108212857978752068212689442744149506364092016730472255119811204130977591226226869326396775949896560035821348390026928288110374896767955431772069483520463081907453171375447828313449742396193422367579685967251781049509862722961921827962436222675542677791959444067463549107089082824116569801209308153601821758753626404183414572594531050103156262830627933204835368854080007735826360242180757962354171320643025321066995038587838772067840715808995777139202130614676134908952907283024054261330427806043736799978850453044348420896308177243009668461901951697470576176810721290373382195535501286130310626044751936840299472954314705983028542594588052665753886924318524541336067633481728851869504943139456137761212058325828905606286100036341201954322957156844650483371586373474515958775842102188954544530478060921424401829785669851046423390054965085563514186658694541681417375377026308581216843984867085689515423263713734067024531736902152997377265040983621703161452511876673138527159035690668928024022055411928412454801223124181263743284026035363644166045689463744371518011423138067906034658449759601641753545013646374384235989151682771260582948219066319522060256798970492127683833827501386964302566807268000286337411006601280221478192392435391687619520491015109803950510113673070995618237451613704090346998886701493276167910396276965207654139327453884892250465022247377928581686811181291317828305666015912461052553049448880438621692158326530401546725917470140236873143414468677899195965903981882715238911935629092590084965411807621435284142860714688132720229062652341462532272704621713822781487007976160085705946648556302794555611367958958737889543608310611282300581375983285018122025453924692127016402792154459526335089422961339165176782730295306242100779578694488061733788932911652000005880531369303563157067058148703384078871116783078847488463257023567880261991821154471284541220690762703078226555220755267926717673443839091396335639604923929570482638099210690014874255056038373001387276730414605472197153576943759172224612664446261139235558081663351445634317740887658902658644754656142869926147358754181212548158079879782384694570330782413959277152307384095164060449413664065714370882801685321070648044926645504550642266200759133482184115601585979307426298646090517302399690873313316092433885440487781366607009558022954037907093596980053092218270543093490789119878031046935932838197969522887001123085134648720474836782430088728784436055579937566089601710379042752085221105129054748436705379352025496182716914275023308891941449604630021804803692105490541564717506373395548806803266971631409753036166227978504582755235266310346519628180154374020464662317879514680247428735610759185295394505341013144652317839736598000559537585558272687923394831511596620147608699417225275368237752756504419741036553314585170001648166219920899004484043306737478666436470228835510860834048801281289886758313593364585588536944229841042782138583394971933226894561484986395990124234078018482245471287137740845753453015116931213587151447758420433607762344852325519670368734298606867084435580614981885444626723693853162690144226046651983020004542776164843427644934984993190341968957644281056787781967547332235878723088489763647143384244116495519418367536284468814195277046253602636940273133226965312746140694143922133287479070931736331681699728935948736129498136035417242667946264945012406695250638748342982867828584226794786886027188764008259954043798382181420171120064017512426305079453834287153424139224034302291348399475123064490413701969931019499260283962812958864215716859589244351349691115627689090061221173896011611040354889254660364556923568653893439669959740851670757044464785099171819760865666616094471484188017708791891901580667234673553185414658318238840570321812031569631037607434243931476686479664368610835623189692362995156016162003167389807220430443174973006126474443428272006115852912848717443726764572587179206477927349703245085337601856513213844782858974823939423048935920978456308701434246535778953217721320292616334735696801721836235993868682254100524805275995126349462635992133275236454249999965393066665699862784244636247057692954453730532627730442200314540627181174886546056872596422190885615886203835568586562337169067418760073334512700465474829380676452437558445021609873708079867721847454195334071254351551190335234662739788238211134034154096001481304555634104504743469860714097979645339431575259041907704556645361424320022878750425704025157203690225759187216405623788312685465465589078552504381187123486634814906883465539944285280796250303365281473283686123511765338589372885583909126865260333671691985844216206452928921186939570482973249866128465913482758545382105733380604816394305025940000201702510002326666189320902117232013407837804741580570555240167437886556992538342022424696932143248171523567803874821076275101637241571500000731952375471151286031495499128702575446338144184103807746869939108866557616548599123019230563481182746571183087085123885959495873916802021791662774277724055126535168312901562489914031361129301707631098495676144305956506341951883828846261942868783071142329852106183384899768495536061435343890268120620122581916840957705880867404267864246324908047850116551868775737521461659952193883618656405495931692214752614606635064354442432839733865863592690485039583632101199118817028579788018105570446005470725758899337336106159920968755204025092884990439757730014953358245831669556141342043381286460750178281653232660832232147579741818273013494883464461612420069955805211458143372937529107898917795285143209122626231485258501552320185242518023408149350420566636167020240975862139329986661696681495643483640180295904404131383507596154684757825273695677584097214166632113870461375384364247194171879759303882329097580289379401070440554814458514886505638376929123655304384882596667052850625117661896630796853502326231634465077053250777879482428040443116710194441248067901121842476034973834746904162366741560941054160961931338428412475779473983881326881849930892284862579090112876435624922914044632852631301526915804921717973140821110141069886246439705067704180108023906017582143874743328541897177842753360535591250231374249474774883519947045557038100086371320555991437219374485410256464236116352739869671906275242334762128543844880482428178846659339649645107067307639489036026963739017623546771953148894513961523181806613176543175560653774812198357346057134229097268108879070357178689277700645574098385798931842069547045653993526215779701836372649383464453700089554995662501664340272435912332288160198313663539442595257062886680394662419124661154591645731152205470587560826642767896385317349571425538509274331847908657072780863869446853264846045782383309696643546662543784128903749084082782234864067948348594287080283403086542972789849446348114615933032121004411983626975478422186103302146043688203579576638131620782660849922831795391559205256215506058066868440607735710985231540178849208900641439224142923779319728045584339261298132940996692074498122824501066085731282817071821979258924990501084438368115763282785070303023777782508294875813671808420180668463004082128419085001624811439471477665983310933503627690489297275885437933983292473574670975058227371576140836980545633298773664549776063592341722271893711481007810187141806988857135551232597396455874355399075357205840371472384115999786146897768576078521737797061830051297323785414660066222882911764777464481720294091936528653184700245500210533881658715061890085565597049658532546451728807502356729205841473392326109573263324377772046422634014813255825056249260262926809591850471908559042985534623906505363180856189970145978043962305330585227674981617207845194362383388124172593739973558043334842136216508356967812759645857748242213887806368272176165536943441424902799005646940692981302514003148632857382881149289546007720881718734749028807816881772650105022987376130913946375139678477163441565458262909629222315100057980203678199721040378944550388270913704576708858331746964174431857122041421515849814691148228483852445918712189925701656022662785152260592522246687130232155200536142965254055115574252833683006694575617278232279066783622346190478714346281784168773380010094205949893405299273836979345379635214570136496581306774104459685146432299949230023936670173893764858058355909757710037337114894107152869976732210586228122598635193262010227605643153356199367408752078045074990279245788586248371627388736504492611277387037977881906416993491450205258911382106939493671911389308140206540964058666298768813656041614740756482197383360051738561159556062399883588797612223268999672785815395482860263355054986487713170514136201006723979552682564682333525033645867148614375396436141160792050614532745274576508215970211909711607672080793778560885822565867814467422683176195250890455910210979002420889266745279890627725817467931187695398115342847137891859561349718438251683883624878213182574503480751548085779994540679795394738766385760750912333451812125108081793048886402748067207331770884608285752705953330913566963359367609152189668586457757598598526046340185793810147130398893959333483175759531333050074349488286886309066037859500265754050679613815066856646977807990347402829917909986069244770457037468509004702398176777571322890720153937600338729875453696458463365687124298659204106822026038567637577198854897313877423741325251807232975188737711501564326655556650583539391244013303160443686804024457661931782115604838089798533258586956356330918002937975355947834039440138949033465831228529359142587458143360630874641088852965645932627961387681343061281810957504710109718940359975209112010223825550739639616127453532266051879396761208250060749596186210325664350576863918540725243608277411729292600131610191252771101514252637213895164104599358516370945163284686046940965073507300381159051213020966664451438419844819345126912566979787528355109067193363217165555791290441888800732117937974428941249260545809962216573039488919927111020568893350926515422431723184207120188020878842884403142658948773302281363975555722697142422255285949476110771343932275168117530191299343564275609832024918711740201011276159138984817770333583841368270699943725327455730183894973633362955926424206740005400624493966138449169215969316008102471271767194056170244632629225914110604853978559383638070083863422307486221067794058159243336786851946879885559561187860817442775661966731668593456363584901031297511963016592605358665598688009188258803037813429944313692449383912448816925052800721368242809139900336700569216780576447709256664000742723940796301182039297503750847423406594059173260475411485302897654186211127634886304995976706959627573015808770534540382906076690720771303315161356954408586285429222517841376597360167060655375788192766368801174002156517497128284338743387136776034015676418901604056433576689455435865051925797387838305001628393605234731938289159097645932448943882883773921452574310693595260724917805119655782021921217893496694295680971454804422130424458031251422330050539822582365696671633665795518012889703696780638636230166008373742170306100559714456829593759182468844167416140321185297179759884093125312196003536829579672051427312737686321696569696181316227138558038790531390418208885542343592343605057258752005296063535405317209606130397084693453571029907375067765212789262424163175709453555638638425469080872014923298580299032450833714943554891159866551336222899762764742386411732544324405960486020683404761327397100839174786291030810228264467989880107017191351672165517871219717584330633581275218502896586112435510032525680435390896359071086995791987500996868447108152571002736919576254254603620642715215778148512012795587529167148596251228925227585809199610023253133233109177942843981307274358305098309867423345724016902360485193672451703547256548778667156952978566392928578474155623942530113662632641664690270920866991596760552335477203963265259990746919326866890748451956983337821206619341764005116998618723341163761019965981460544154196613232361434204584236448808372754336547120873693503870641259531905949669595274549694448056005646235701463420897804626106085203678702366243787103341130694704771937756763633726150180672381545910838037209879350040758214936251242744198517260101529355028356018529416555742001775382655263833154512430504861953233494742070297312452324342983425497321377002722973420025441811037793664295971954244665293028097611171715502279804823039596591513739250612579986854638972696529819752901097962427046606478230747549948140125171740300709014139684237705458927247533810831826316793533836910068097360701365291456829476072454415127370367572207800879101543345349573165860535812149416473925691651445771361665227614401481221227487206095113776915674250045541607823388927593123954963137144913502096691758365746496680912205691385146896299873729204015839989097093516927693520572777848060143700556290668939290529192058215089942278383257282215365374857912518553383808769563701460781174815812644224709752775386095991930482272924296619088451481337836480515997699173015506985735494106944168026388499382281127016116089206633648159466450802207913001932704621626214158386979498617430916262726385256256881820761092401320885134423149478027376200631173209327452501708816311896135438624890784148455962856522042681590533996628876806147144245436885739406644916974812006897968574916081792048549959638687929855569171778575866125345219001101316926882244525949964023389266637139997469445983510366602296532425200608122989847498670782878704023007887176253076933944934722174211490718876025382264383747334815634202559744338372220880960072736405137853348976364540414729865677055454744653650026663023123042431215791098435189733198266187568290038089583883445965255065302849437588307048891589252752446455319510799579990332672015817535276170961737330137087709147576418468916068523347146214467033773815661906139968872668137023950418393069535739774388240850221556897993492230522911322751605563340071443843016281722368193463646012150954621762369762592814869008554661336931847451477502306708440890234177029008450032366986947184625821848046902726174873188107035131566385807922942017849404758496411719621168697744516249188702061849208363833640611996091105112322414377895968545675035749348648589638009333717204432516100371708918354382843930697996790373351611354864095870414826707357631358364466059490495057042551690336704301630813471728185509758788772485677469065688081837016330457648629400817440061919357445734327564701085048370543264299415019965177022762899999910967690663556048916045218225985197365412352233666885460009944953785052299856301996085412964073398198773011015300143496776970878551816195882402949982224238077613570481500250877360960126138644757724851339534547101361690031755936416119388439636608256857687388277930037349235200324228588237459275905368535019125352937170778604709327674057232817352876867361667552194471426413096438626913119427851756474008328721812214439339656405350297817481706442541968460155237491876666440591977624412190175912617200831833432045088384381746987159172154521145150134992946760984817665028992669141010097274267101968249577662791252886183740034978933792891225620092560348755679796054180387817733124764482259470424935664920329385366212291467678347754638522545856325478784998449405897196124102611481584588107541264828031173866683541996595056759993241502706574050428789239359302733348661767102667179423522217362637883640036561667802399865322135492662670316816401882700531489385732792654218312113128215546548249298780966622937175113274492156323081355121342074853427922343612333204770083924597098413937256194942266967990406571979435634796392850427072065666190679442743204888348277068338289807889160395916975743892022432789911448615851183939540116120609770377914012885682837281605643128783802868394840161489371082731181226566937679023233679325849029539261364215234075170168648422043300581037232175492811540000854060640168187069692479781708968467662574279724886786289762137606353616071462445945266675288841635460225438646995032162122346416202252279262710793328507642155582208062524704199231988329659214772536037152166844293926881542319653140661712347962315661368808689105523524366681556959220640617168564579930148715551806294209971807933811480466736506343705974399543497730613931884868046500879003207275912468927818428045552574765411835934172992489874438155552456837135535621377662386461810380344516759220802472361502496431290280701847717357269818896934741069620957953780567760847421695715963599436043935179202753575207225507361228567412987006709645207308395284049695148192375387372352690366412992753514165837857768034558384080203693861811750820722500936288768476656832622102742464180859742810586233277373473555286613474830695295057807038017270103161467206693073513969774791270871276306049539109688499056573105127964440195868226788844569047574588817953961113953980442754341742109195672492243880301373112180047339080031885471829955598053105102517461865615973279872351021555947624943400385711519699896441827545207603326996719461427578493429089303954477371665813209792513564913360655265270191240904884413144425913315627281813938321954360191082135833644092283383719368317977877310159746869356433621853463565829774991799716087921508761428501624618893153244854462955372648467082110773861052045401176093521882342309028853364515938766070028358272174678025400491219615891241403522440215102873441914379750400104835050184774831748774699164049885925129877158590730571771556934616953896525129754126902268964076785388251286265218036006545801139994001797244925868972101626737238203347947158908493837599916032432380823134658105666954451358664727116728377140297887429003100565320707559154890815988198716753476661759657727172287045841744283938922611276971870494078754365091874443024746271288732864707648816078319267624825704990858545907103235017273398047116858777227509700765628447206810619008168310008193161839834305897689097185401229589084797628671952405561021517831414701618865215822750165105097199327078042602268091278964896842940736755112636375303014465270559056763274484963675462041226609068850043428465408436265163230410088636993441073195778440841966389751936902261419516514428947475437526787811250572541583599466505935226151438133367382786777487206303573299327044207802114459787347267812726777906494647173856158103722179624715115660366835532200989940038930786390158959351154778009440737351858683836719968369465088227291283628284919533715660244712177209490447035844652875843882085560951187876662659117240221195642151428682300251561895443048442729968496579759281263307671824223030910593870971589406598804346366555227721768087095891104793384052948252023612383902742196818246668532920933849310049729208516039851150672763791806838295659034804944409562213844771854695793831047577926711971666693426125003098119193752839845303887616046588202858983895059571795973431417532418869626122613552529646058802609405367521370385273348969804971373789758143052172790539593128839523322113649469632959835311228624504278733770387025825103537055758996332596167395676634575365646682053319570112327570501904941668380798980999889380444538076747485995977577273054061688869683433529427751952607593860021789991111386470775626430524624476871266079824469133213220177931966179461360396482829985802509397837949725204574010388443685190381250563744406230787816846357612743227843909552543949782777494537689312965847947327380934279261564308196253881538676026084550311931544386965371928348037571345557917706377970369706943833688942135513025884691980778802435257313811142555629157054761803438429969234659233980743166190478839287455490188578391760621381773817236588235051294327195820959531385545313413567152836789661799318082554219242224367051555701143309898948033004543483631378011713393738778875402565060639209615721034237757823401702912725321894350438388995965770389025836489413163740005868792652182026379353206872957308922394278448133350927104362378535102043880569551650456789075857259845012581901796066172201782685122673565747595981653004791244220094525161923610384295021582740348781018485967857401582887904930737409382864610616511015239131275842468576827020257820437513245383782353480277488879891895908105965722209803308618438371886064935120933149992166172968047983673062342601184249910782403098558106196716360865847048848017207568470511337995370988413701955363739621711326107256821911367962893297808313171942838526832737132295905590813284836944605787142725878691183439289388934577459463624832869331311979978236789625639909953962163640422289877503504532040680305922597709466681602581549307661675664438218505321853958712724842885024238648513622102573863135895540687945321545483256077499600978183933317435176507667142379633301066524323375044411424331214752034636080755900133700744318979920685848169438122445207084689736176248363312780787739501327782741573660083251596457979964853584339939669327897606417270690001679925344067079440439536141434639109865355959150325671629214142095298424795789955873336999895856879855610301052591094111777959035573626838101156242941143616056650083025374611823115996839756476421284379667084856388681559899364326734745993897643247659614580043503400600130482919287422184038975612362731115446472014821361566487962332431276724439254654291316471905937630256197074096621141491594130724318466905413835825561575723748316724308694087999175721821346086571040712941279567079243381199141744894328794340101394141980522872737584117868378984838017611180270355711222502703700557203661865229552717277650722042868416652946516219423813742572981451552208492706617623931410403257749745487060905325410107852708820361556083991395324589270051926245362843727008750021307125014636713124161985253461800506654328906913528135361029409493699619737130252875184442573817465469688126164359919221420461013737230439514610804996475175501870433416240639011336861032531611495890670845912550378017316075476575595772451793651685941441650795299781199983291631618609627824998919473724306766266596413306068992451201039470775799072577118710233922362858474733839051751833610861809520019395586824065969431729599559965735044464617467066348806007790444263798366267569970040105632659263939822581144831254687121315106387384429470889612810946094071022223696868966454031361525793427190187322472407777195337302803030614638361971489276355015846832651770153041396153779228546803190230720300989044660493852059317359431387163899419420185036286744003221633624494694942157338029999916344001135487370975704002861985028663315522853113895387328000575659543214397963013510257806597391386198436085657601833055741327321258310155996287170752698387712409130167784585113543346570764150399766814891017744670840329863486763890161325877243179467014027980019300669854747811455621085275661967956005450057967764753177509597791386692873504637617386612821927584199054611323165795708929625627552532984284279703388427255192878608318363903314267343070644195747674707846276851179055621127721836555950575478219819391080132454934545714106466110382742060202904947135189821114312773254254275172768597395132741737672527932498943134854837796658023649761510302802328563942085052711047563023283738883554929506283352315155544065711437884758852415452939843314076804324471425797122335079805369297197755019861644311248097404272451507892330232398916579176849006755125203605003061179182904817822454322486005477617612960814624095959612203268705781202048207222820866775489191707760056398119882900353170896065414217527588845527274959763659238202339501090468360254511949079430159027398779196340723806582322190211802590870788700273938102204673129711258328567408947390151372341142764831352615729250052506771240182487217079855606735045124664865314392598353271024356349322065701390865070863868465356439957456888592181648477886155251033378343959311423274127220424596601227821941933383322690958133023784730891286481964765337958520401667700145742191982453199410803633332173766417703808586086367399095723614418358923486595632910677112636889972170965150068932810904811426423313779497359462395063968484353250581445938519609527867840617038608740204126824491942867131816534817529892259054389242133121618141014146999939786498769101616575426993267287774364036997652342863786026722670782856437027843667058681828267846370291827964974360226175833762675175411183925153939787094331532769587207787867617872721928765712942205625378420807724456013334221790409065193590805635435998275689637111236948838936640443059464663738912400707703919373830155256484076439174307448490673789108253927079994316137769672219534223872226795640686665060414540497499423111333748099497122634715236586092730846595502767503831150132413373772664664983543427370094294150474151153247375363936406754181904513614889076004238467269857382801631276278316285608880079585540084559003833248507694179158265874738249368991423918917731344786731902552221668798255669135118837658575855741551012314131451719919751243861920792950168984171724201947885015106549093147657316817383008706409263812543564143466297562435588514548474882739646638449757393499590576220576789921021125389423029320959657662049834444489118805402056224960088796007889255107235755684618342615953492516250060878183762098188071226851340260808989095145440608978745861556739970432422887222199627526386000813344467818415248587827952968834467993684096073858187845500002282181672791754574381591699425006665144228540757054269700861533695070954797814012183215007637387407869257958394168921630199418213555464851623392438798470444791198481618615464244887779674899834092593283628264054962358934752819000195695690681743674578465418335973098236272838210456131201927392148413876784351118419667292637681255411456019246019099789700537626908603051733638027712193123196689910864069330632958219688393195317672315369314135709343716018642604496209846759535119150212091634590072731915658529550569610977406539664300618892976318746768938627470435353152898371635359410774612119951268285038108276744853004074235723371672608809483061300364995707409477774934028802568282334138820695530170588950636731842294354387727876305847653032818945260839798730568471257890777699671327431852555226430636466843706298964417359373165722042613568357146730897204657261543036625028655136579819648229464411645068179138741679260091322566486226028850981141557644705974613230504076183785652200731900127218251227765089800563119199214559074856820800105883997172270923247887816027116467657737828571369818357565131811160900020161134991772383121599705287482704650369981623500653178022355123389173884830404996722488090441569824636590900386965359451459062623024427110410809865299260056128690903035696236603528099599232972900619223254509821092315502380317462362445500651225375503222757788787821208215635833550416971217602326241550164408052088831734336717599216103799463106074168692931488214535710646460734360965129302188939176347249719691958695218936305294014897798752951229813989704567706609246245702992499736732701289118121262251277056355767029563193770353925446973234910200047527574044000258889246879888942469086170120657316165296807907418414699892731707428524696394962351740954443212330782376097255989164581125602284444392818519178303426946162867916165942158574329024878922360041572378313961068457897742729882820568856040682234873689650796272045802402920465476994067475268394763403594695717898966199638418944276674868126529245962204243185412345155225845426258419318519713008277418948396243259129089426595303585397247708085388356621485609263102490825872137977932530459439500008198770946679689675271327632057698570019223016641237817734200584866659079136395769556100128168264665258183595769134632199863841962283049916272358463218204261279295334725548716371132723964531168950838873267679511834582369524187349829359026878619863772983333579294635670129322070445092139159688972383571491808047365579063398925376570469318097864524175000075913467533544068817291448262950564896345928068184960654352882899526135984450048077654597135343902340971368242854672899355365133545755495292694961095665608153331239481631279179169542771790292609082332419888684006132344753158027579122882208196706318759611604175954236388151030372096498511686657825810168268724784930827253181546532135330145193071028589252178672949547848451965611359869869765552144774186835170289018415340177723839573693470329580420491969063322057855557558967701233657253156340206371764939006581925212346229709770330248955301652545175638075737727567622608630977985498341217658675537509649529374672307526507642504594600633986273043158730014525955022479902827621255843166235255220621936657175131642393626087876181634279036606716168639830320196864570386228242890128155786665300698153626109929765880523829984699898123484872742392809216862762770950472847256614752297217380332481555670132242413789496938512870813128519924291227162152173010215229079691237860359243086659366812091030946185000861196233149417261679698989466452384926339033905845022126381419123413252900977321881300846595856864161415561240366058763524745440470010557945385288677144231486491547671740009554233241305941948952746141968923141391182891632495399668306333828636789482568299840622891835746762119214774996540174250200999959306130806580872145231475369020467392730569096000236554540816591723002005136341487504939437974374998244247521855608905203182145645828012152524653616036927403386528500236243184112033679872278216759088906033715415359095091374984637100337953526561210456951693900450661001388781450794340076548915253020361694950346738429875212696077669941097202063665991719616981910929453654946862451777656573259197174702025502764380781118254157528120909754897531536425459571219741702445615841007136398615215419677456331405351723609637413727413431105272587829064175400353746786836019494992436907826144065616131966789192153342691984055350418502470745460909951757316789577709486843091876382059518879991364074724616711914176301559178206711365035435744788834344384412696735476963344473426626337207933222532077616882442545164812698229690970707732194097006433643351552153270697212912249091500550279105006937495542364404215267064248529841683111528112757030985637722095137154100033279827912802140949981347107981199952603847782092063618529331896859909470962076017906683034658990780030433778370639805115288012338826888352109138944509955800664865631346130941095044678368277190528681235657189239223829933793487430368519064420017899574548276406983602129911028903837367727647767004865411003469611659011858015058045476118855692246121837820963114456520128185575591527824501622685104882867086957779237477953050163134483664584444319199798085731570450631688811670024780533661042391462483765978482528217220600408408144593059314254445021879597174422909798057633004864443133703173711207257764016028676197518666318900948907353354277608262935756596914545024958460652659809601557696033108515149301771594064971856778681791593640575641500601228618497411662377738212230559345704532200231243935355286694620937688729661468292194123739195628376373038389658569117296309997667186315360496704717859024345658196524904242295024036072135675557467682401807766718153481163004634657193669016797980638506931432430595424342840190511472925966399994661551524609361956205898748599573338945576888802759483944401549515390110335943491987137732948693949014631283103002162731774120034007875312005924722914458295063014467466983148693593481852368072054249599036477211208211035265600846360972207890167645504771801439199218892458656155995624419389178543499642052262087406514562672885727073757690397222359967418722000368866350162400144043498173697378679097642994717960018105943474753948263498802841305039292980859272275476753431979615351273038601066696405394989038185027585809181421315887453165567802939260294266998790818673090743631618433544615391422418924526779108093010582993490459762371806919417697660396808639053903545513686397084654729423141676393963469180134000019745692471007967278311444399796079310699557806744544929351007320206627428821044213773132670434427179463926449611333182396537228508884909551676769629031422300234501327288845301754926224247805010191108473856511281986953401570810887220604920371020608485814316648074981911404234288947984512440757229448885440361558766825332811912326008625028278021900712560848793015055739135752956241745782153471292964971469556454033320829809232712882402608368330233025079592828079271062698256530633086785679683088173149398316704321620013635777223631403357754362795176622557001438700171579079904325661775088000736187674566926192401752515662692117472386268592927685495986591816358153690965389250091022864527784018940049678145140524760108542850662190383577731942897733150575719994995891783754108392446481111215359062296831907965402281624776450076830657966127214659634340078029774347676170493382765953614483441200782279260795565701203687931806938880185810879987298416012668330080272680818030689279027974752786700313290833560231812595417769838157889374769621142773181062184246380820237085240321792530701794699051927193442380949541836504774430325268850945295160650471735436123740077051045485842132112038084974511717691096570211856007082806167537337106632830769301991552492662371558282430294948003884679558584223366037415504848896810875670800387732649548807866028698262228605536437098515409435355615811470811080158143646201889355450105508088289897513672790912566073160218502965994849993850436341576005775331327120010290754116388330224254990399146069782092754163835207989635028747412395723964067441376057960968125704498430505425355158966854015849850060064263544015896190152778611973631264700703792287484670826170058237435387663522617141642279513561851931535481228800947874581406561544024771879538698581006234574775403335544509888960818244226518189191868676956477597681169966249071149393759679172069495562648425012205356466086054666658024788958185853764688662096324650472687176339495646279410209729327053408305894540883196775391096033410976529728714463978850987301929426415670607912289603162347176064658093911316620438981232302389215444937982813776048451208755985688489594037968287735155180679828872661416259899722750944700494731071022396511098063705238072994705946338009662704071191319983759188455716080930573061246317637234890609521766707477491251608897359462312759579510705528327982005674485605866629199370417867664168938504162056221877506307702928940601959014095353180843140416702215481040922352562503862080496503012460757232983047966272962103551261429687206975419871768428958421520391893360014259412971927457366865927563573828151114038828369142938726981360818977611549831879937655878590312289859242827770599757474563454234242769479053409850274460634817630554044913237095693647872578339657431458756745169566016124319202328654169621872762402951636163801040628658116709586061161450774841377265212023148770002505045267304235695610624704942655813623308950780195564193188714422933250362341823903247281212509513779934711827385608005129911837953617382740003271813119202927861899058232320157619318713033419061660958400990860910063792265374283156542459627683529683025318774253573340414431477456963827766819856783614751361386189566703392124096191858286883352812157228323543718438271571254028184761397301802005798879809447134898670477460111196836426113423948145393491538108971435139324497529290202074414027238776375006544449791137147249853854192670299251265862024553169417213996174187968151594966475507989912304230596338237287239789521882492328111203459875429485112969964435168308809262098517282608952267751319230442079613718299258862490158559879726021843983006799066532407346277851487748403724457039255540967832497093411910800760380642464682341788567619591402239235658789336657248967967143251214585424084369406095544121503525461197907768579683767664607120206494970025407608415366654172012439678828030719052980045971078517887189052217715995598092738752814480028335798861313301568909603825168277184233842903986503746512356357207348423739638325778423886240060467311286001304401727119510738632005473549209867806402773994863127278064269177585789215849860435421404743880848748088836218843612385426736712392347331118267402822815758805236618686479530483455234561348430070511392069643099629242112364886481520710747670800623830383264772557255392927413073693613794824670386834506352737048637735571179247017501994852428871192626979761101739517279293711913542221242215808952826640083207282437400512246111241817078645141883417037176618843866457586657562144196778378630305817552725840285866600278424032808751236589824849635099241898672984939456307460246723256149910940346083079575809568435604629873048134358649562095492840641860340297023172327775687718387914342016894761580187549141563565361248285073534890181028485041241776026299781968348033446188087072775532121424166947278367958988435766273034704057605251844490631615489050526522627498610715906541024215337010839552152588401052674348230138567122353880667905444009590936526774975516454052048562721976509467856692069039888978803699050736094525121183946471979680671035408074721079580227499769704060391418862427546716530454826274796276646276089850471492323845440245795765394410626016862814459244278814831445898744746123952378128576463986846266072474119824798300749917841180961211038968706337577211956064982814406708889419072869336183222392221871312794014294330838788511395568715583072514304760378635422479261333745538471598117877463481658628611009916952850686351440762066498860364301823995950278809864000074189438220514278938556777744869118149858545754533505117329674782650654683923121873313996315896283825325504111775660333671379294520641911944694407750153200378643779194219859939042626071889260161658841896346513597931633917281005903285212239538299189830226699810857058716409189372479824510499719494671335187820337750240883630378812588699069902470838736003818295466358257704202243561100753124492415061332684715955743729347315306299201922277855676289049848391718421809198051492020450030762052148708301209394248332301410605546293346514116721894839600215334149510425299645737828105704021282599399834294791802110610526476821663928750103641572522331064847025057803486427549637524805923833959665124738464288901685398249691176335669817083210055657095491269610218671989372294876859487792707210715830749859340383632520943079866982719176639061505299405318207819073589781051661688009030453715928569576394160456588276349064043824257924318535683393314786778724690693991205900783296053027280520424421132230478423354130943023929137117255681294136836136286836355382951205342264867730138561062181871893401397220581819938507810900174486632452741997913969421699484988332217880356682152029750645563402363259380355282933553016734715722998252370516993824098979277683824379170225978647206901361669330542592026852264671764136991889854373970336581750959338763139412836931447438906239181665729276516148938476324509954961719252689868250089368264355945607606096277789282349109241903262302429680035069997573636935550996512557099548658606588143984104526212871518857847661660219803264693371491377891791687236290265004410682868019845979276066959521550927990352180553057279452252796172172511236039352354084777998213586391942018623119551807822840916232346988433631279834689751122071388961703364776949435529199440856360203014681975549327931253691923609844043109632760929877609651466277536456027060282139240040303268527350098196071101770814374954185868182706845392122265151174564169891749704285600806462033019503533556115927298437302672984664731683407818523675013255698993621502126860877402391860916108716285681487752933564904690181029858359379129040741915512660600953079926969387424903428156722251599843298850359979148341710156763081467048087126871862507917964740469584746089617730206685338885674829403666495154364038136783693176966584115274250954183286558736725250158086274649789302268403868291915177727531413464024836694543067773270225222174156436418065083980529234281943530918637329216354287559187963296112993091402885408746794008737375958909835172317780030825494652404731035059152408397248249320668852802594931456809453204674352773410114197241282529857978436898364288115589216973519380214200117113941272674926263498179473900860580534035922226928114092610888867227836612571579796357798083586841633224759261779415173775109077766972491386170151435209721965872640709960339380393624490843896929473526549324739898053634194017997591670767397834486232757647172415041685027846363984765744844691698786875817457204270987718376305881543070859421447577743835998094222072444829742310361295692065227322606346090746649634610793385862630251569664566185690247926172787322815643949289483700556204361660563984623115162523858801645022810880542665848076313913508493940698126913786156784416414880721034331161663037964126251161459412633502858203061712990203171680461439473179815214442464468821611193363230021931018539735951411707813350755086824778016180196461112431141482236843416557522235480570691106305116536205567316370261786785870843647609392577730705310776715811313027267514784513934100252099047740126979000774525897229860611488045211073311385582037970935289647587970953763125872226734525795877434151703635860347126608853666617312080331900601903483986482530865883266885744091192399766126264419094225260201095417574059037719978556585271962783458217255987543713756463009208397799297617873119195596425636316314122622737492481235312287418694666257481071167153429042709294768946566828144436621172529518942781276234316316388414631549033726430520025353958145901656440042201952559559395966890065254123362198132475015934309424491916885409413318998335627329481871454422564643820751688274189602296282084060311320816648706775607447253703299545959364849026021191692342885788630455001665730666053274799025251694956950530696929278427604143823630039376948447609485780700236670764031501781566793204995466646665177535945028838832238602687992021565689995065120036635508209926884304877076403114369941944978999858057321647991858097356060091539209604382780038399119897801951553373219772748395749837131017491851863786982220140922856159708320429422437975263690556565567093809728866131022150900208253070455208169473344565895284926313061732856732654979012392518460646147699315214540926105851389308989330261014942342941032971727217405920033121869762408715449456840879432278903509970466625696773065283896675833838226335729496143565137800055911569195822623650688048280419928404670187557855860103234541261886061977056740385298678628949172994326370801031498153036954452830164646282020479271909780085127737352671313688245902758420521038540467299304316102462928096639351992239504028216907830476541176161469731538140907651119858898516333975541904113965617456454935230477886792076151036280044385618746397993300597708462970182994093340711262476137516976416365644265887491080467745921495329519057358327889839959763229395303055409078520730368511764836151331091658547127622790525772300706274252013225173956465772740742570522426864124773347314277393550933120892011268768886001529414986383785725161218655384732922415809700422607093266179358744762772379850697478879449206183898807251406928623335635222505486812720681464738538434789309973392102503141140535245274684019789155926694334817769849388361962929542121252824279919069550088705361296643937209060251062996939203994618995276547338853765274381395537035286523278128862853866445219181119014452096477656428900655829770624549989814387597677031285367641943844088404509966818740082426772698516753983347335106910807489426507077760129043575034600962414750181595390287845351689910681259627348202211139379094906144302810130149181738206399844354961767904812408130737383933243022315420238035451868403987053254853131959586433805092299717028436085820446534274291937480317465747730296026991996092732449623077805477302710653550299052145241233345329017779527251542783222529680749018033358063452231232114157664106487428937019036340654552065993431163269164956078941406007962600885346750082314020965851648260267759048300392016221350161707860906546628951760271243179699171947022879854904470098318977399984092561644362051763828683571364514405134191519178474487540683637188318927732629167784941321171720448562828968167813890127954729232971106737170283934322395132277742468769613124806846258049687842746565997480454534497962351256361877025632856546129738341902910357540745975700825147079803891184122935579983470744464824373858620910577717981952718892489475776847360495153905247333740479880285028676740316549294116650174778407805964801816291154235097486726959101650897209695044811363352971784413180991776118507180543103790645507643031164243030244266252363854431613039478796775822673319374256680564440047008023384757352012591545075358916764458131996169393524006506785992263396675597230040967055088469702819147606307234882057369592480212843688380961543229801723942859453623000015263269817027529205434652568525724372228083774338446016853294761993749125618136614577438140897675797759846217495227573313839355425321504288698528597780609244244322891911342069434232112757418165771917857832461101123666518931413160237846235287494227263604611552940337058816191882545666449869461166584946622310960838089712500888140941030278525407184877596447927518466271458052178484961548385459939511928725903768084198292771099432133838663194279318377539671181636636565389400301515792920350848375751234263034820312409709598326927382446945498753985413008695765042171613824213903323592452494080579981681640928096090477620858317748234712387665400842389206986783086955778182965055508369653685416749050237199363298543572871473034234808163985098158634588116561295623603502555688257414423919966825959416612497463698601599645053510846183429371368406801878359711471310213032313981297702874442278014008908417882024471588683110169186034041198935252523292475502403646850727661861179803989398839327110833758701201782287540436004009552591250886129655293474739261002503495143342516367137299821720327751731199914344479179971427676715270610078440964693588418302810807951861086161989003977817275359912293070518438986474343939891846716655457890167155967098433167654936610093658848463388862053741399079180292801224197246807590846994287075703815128398497432661995795429700502660846141786243029957707666367610067171095742828683804901137546594888573018254962324897778388739689965855277203348797535076554897285445635152305154403900514063426962980486168539831396662540519324926194113755369303400781925391428752066329607585345486483001550369823130088130676074153226632285612690735284561552574399979764694842353904501424212516368889073881807906926218024124335560961563440820294727715358455593302473469083392550102978641954766840973790330995794220782895345027948976151640761772121782049215372198287109762853470546314069635836904499341395749245322166619954659172038202671769588093119579112455241716358271892459492377929600114861866486034119723314891749738460704882695113945980805992256396465880539419745679257952616615698817469590673503237347494554133083442503551233257758375685892569892395924322604775877960925834809822270944685816171300098413757990362935661804679300367500615088140792720876221433500655639087209504074579736615787348107020695215902215898390769279554226826311605489888913292696574709595622672058590140313607602345323972049589274174725593971485593057700733174920359781821211054926506920555130798263425084398984362380504192661241185003976932998816557924163124218729812977806091728386974481462181949515969850788069685012464090749567458064964662267115736950441035338465795244616433436308835078776426765055516725027727854187637101644276135519243309639341345942401859831973153924249851533566188276404498497077614180893437543736194312219361105853681668622244747822339171056603385354170598508470200718066949415900883571806171790971929183808547852096832743034339306858375001053887285715611976044053190178530597966004475933671643471937869723979163322243196527377287668824930084189989572922360790643124978110572527165450042379064018698861826347755938350746650787288287630555197680790036514870621807159691117243975930051384967842682407974599820840487759785189614747357095043042148682970260689297222280617143645600497862839830008631910544849151096712554767039066281206105656936944867203586054299328046640787196674726849307439739237302023141932702695342873335012507943614526656130828236644116574561518689025204318607625418760280741758192041202651467879283269611220499938146292216951852162687546140955668529969998368283379988438984534721960268754457407821566057983257714871232086016822983834326407085116609583507801110006689894158409288533684909496420804791488197587614403950511243135232292508660483265129069620953794238986909161724666685279321541283831961394330990750986586014574617473821403042481582667511878491884044526497879217384683361496625013973832045794275457229644318501809408698674615429933502387493886862674844993472068151314663403607346863187360615241855463812938254695208061091369981076762858963264737335331607518749897398046375377031720401199486412182450275921174298198491235017596441444008599416880796313638787313976503566076861823826062932840842561719427836189898823395910194005590840217224400380546353655492155537243020483200388154354024253279372456298737877626981238965607375594012431200873704590833637122113086695101362130282965988302656178139056813167180686406606615563206087482269975223306098565870362543709583564303750189444434206610805125153098446932310877271482301487274780966704772723058243896447731910726920221996523660272012398414374364104411663731412550942831236841700842138009655961384301228490221323800945768605998902666879610010538938892088835297219670269902163439210034710572976069345318552282995916572622076286932465560645539049672787640238502545041038847309598853113472557194430527662989015595979344636531379100462793885931011150257562621204460740617024121579029813404243971797087391226579225486278610635345796483956416764882040318748294352899130090915181458918646152589460940202971319433800842968165627043335576812465712778065601797108740618010815293768752877017131336150180693794863374072385186129417721990737442623168133310271514737495297109509880146689412262426226772295749621832975774150903827568434462872365630980901268501771902236903269677517789955406554666675182963708417080101000081300961604532000652591848024807164203961690552887232243840285655607639791001995756469024622226225156638225288771299879277707842229326196383840706298792280212643730526109596901863639438516987665342935432116657493990969503056016310359948530614581392159430494771148775082799736822425683273429141917123917975799064199481326943132422385799870837787126518976315918099315861430027172043772286311846990641745136543364540977258879584024441997206813488199370082075021822276482369741798318999664447060035663739751333564349035662662745510135110704193903084500908600666946398687252893925243857308390822276735845903898553146189254495717213309503028617324617131509040211213346809081386538612761405414637436558542518230890587193568332796639401329511541818609359851782005912289929407666124421183282727357886727986063209540643940044847898062589373485021352495869543131684796220023832806455006416547906733205816565278112464440718667874362928946320909640100532702686427903208865859446461506379239473835070468049213046184713919361067715269023899007854165437724948721011680063050295719554989922481577813219376981332215603796724616998787767672265667914120744469503120857802923949288934122675678036326548617980348557672106171286993396736212977194215111778733176346584132078221806666965835191573464382753310428501098274925780804250970267893183432288811145868576028973817602249763305871521995115540681150472873318317401285655648090175404043178284303958116297187799885998568969425854479672134754283758933274269297964971317889901222888545908802591859707751264052461229185687776012682018241869999897300752391361640719686968908745051830133682638774771749369780143966491651419464531956381633273448503486498667759956051288973051417736329187785906994915693488461870747259829133876731383159199309655614387556168539219868349924493571699641303201382817327189552594722720392606890322409720444856565021371188076757149428052620580503917482764156593800619105405322643446375574708216087967382050239965954608496962907777079528199924525091247812965704921074662560653285349017898330702529839058941572955031643029887104215749721417976372927026060189169659565902982593500571255495675059157309850848443431014365751027976210551796013118704825441420616725507950257010254591877763348024284852142246025745494179919920571150163053326900470711363061453981593555195953460113390135130250307186485748616392361100756040587524272134986275948903596360613318332453700382365353957935715630235147179452783063571364222515593460930086229409114457510015978637232662850960184366530685040689435477520737555828885855703479292019130155639930064032509831287125540546005519425109413943558073651691868116931382832944700622506717198567191961385308262570787518752027110686394686174200588657866323452561426631356827410559046296025467179984054205620237783599368135125348208578973184648737639661435429695558624173003274185354821236349421918079090274013025147684588145295741242297959170710929266829787314805933918601206671832813063370448335531924715619701144371394637922075625214477764722440039861013388194070744115031826167132166500686011653815015302293290034787260645942247783982918818162482879836057550700796558860365199844280104786013895324032252479896705241982116611262260233850539739994788190600453074516316904413221292202642102639575451254396927309610419593686005088368203711390547434144984169517636199308375723350677711025051923396569264594484606812826650575857425135703149356673854029223902897850517033978293206473300200460943623512828746771242775939282297925650029942509849787398064103412268673682758471028869111390527682306124941000728004512227437581810615168145725609017563275578928280380461675492848868681544117523250185897791245062520207349926994761588822034875060702096978863094841832871108890301987068661111766105578979977788808941152513656177383855030677521484236243084830842902794897613340923083190925663333211036049359590614143762560368008500608328330021999022604493520750913943110045936187966419829172066629762837202388248184008824449978597172149742174825536065847499475297270139522991578814558870550525911422269381324111478412710539513643667200239606555029671825104643056952391210776935598805533920310365478255279865470983105025472164856195836845788037020563174886418214978747309946552047734718097653580447361457023023742848066573381846707089798554346558688386041314220423610690729571489622092380357460629845056609069339782911210493717911405226023315929850744579244359380675458213171331330740699226582263715796513179162315920745363270223345473984740705146486861350513028235552458825261871753003412033938946526045069607890246031103707726995372770153443869877424656588229860533755788131537536319949434656432883277261091460472677491453210181182049145875758761369045965762314369918125561028424129413337893349005045577269470790274014008607233197147820556797964041892118858476477741007795299504260471935913764197378387872610889915927551422967409552268188584343177531699715272071300010993017084667755668075260445134023548176504429071704356281206535326677024245761655983871395304555332183051051597067201170807003964613325410730834275539433052937225709719080244068561634547713252914276422089640921224402653715232136590051584655329482083386821524282100748030198412051951390432065447649791835347583709862503437471240538163668445735896522967129861854742770134310278696443410177261722254493184531932753421917322676911186290738725183956206440821166694440794627166820842163090133128837386354796850029560681790338523074216238977494658863042517070869382052557123075437680805595730910365647480017068855180139505501990490423802111968719947204557634912575317345648367394249585692666581779436881364521344140297738510475177538473394251783275403998981370909463989779718464240701209615807753233251634296049174490225859032116932839827542524076047072475789289233010966598283738757442840426124749438507136761790292776779339105485063599237275062852713705260802522846800539545196691480611850646229905112783638755228507322466816105657257660020498737723662276238813626797575436458170964358181675343763382960004341431865790680218033649868263932708546488199250970333715204738002201401227823224095511441885061968229594885091483360519948703626534039550000972042084170108177896757405362276371441775172473718168533290347764170567540996837234753222152749980313855548484918665328269700599969421153384520002759738752143232706852864780058540499249943095127452920916960156484578939521826071468231186437477819518897597015038176902948907433669959290628394146806371615280801964650227055432544772790912067630406436039680231766356562151432962825406762182168191034027311063885910291403785734514893297896689154960620634465435721585880536441539641331982154862028921777088059809986105771161876736774577124698475104690970201957438391289372804631927482235105679635952649735945696731752773488906594573354248814825897457686171916841053487255700700400065133439133482871788744398363408461110413680785824881286351506268732195251192791222954772489066846267252439136987375968312018115240443199902753570614509830007581358277039127084706794028486650206046150958089740181526924598152198114586508770172750815754758236223107425466758044543305967926203052710630206538136530071487519152511066371625280790722771313157149823680036863303782607715757685625684454601555677289678275217163460656728543772633645017140333080847537523502884361732497016460535005374678681741731439988463819423456289262496633895474243474517795115962881863430158700446807279350316223204723629782299103676129177241230776914304088038041976745549185531417276583039399537045651843128305268910534333036618826071891625378561616881671254935600161304332289889691679479911948848113646266755234547616986444856632415744670227555082470460665194669525743252994213707962737511765311823942906748020167897432520481518015876415798857246367798505497998370660211467222334571021005622276338361156966170209475215660503343427880423320897431710653943219522203650110970811299283056790412203980002048815960801718433853487783806135857903458593400414970642600987521452829600071587519327773866854765631003624595222204950827326933076300908298403960473842400505708621802009805108838899593113975944253931903347354360235468478880429073446482048730407358140233347900512099597433016989866895626559808366345201956386573632225480353506695559864233021554341815740611542312184677445745222763234753777477054130715298620258483447693179133737414679265330625839645795867186700786701516581550011569124306801970069960449474335982727603072636484811595749804051228874177298885924280362229465930077699678307609828203923368962114345164818714443618389008877865252601093451301252365984888764325016787856105451896096945546574625027859792308787941893617471950909439984982547252491922325607098225480690346824941976854100687879626734089938722304949136632461347583504204548011272448134469390393105536444097892853620481634960798669545301668796864592679487234533436982462621196856456992246541190949415141734970465192270265568149666033413403652230497648239565373004798819427636039712602066118531945983877804374666533902153337591633928354881869454044776952470425779101569658889613853070272582387247904791853360938747470897489086604530980728576501104296903831630706205951379463134929280172757834981361734489511567478277366115362691684752265337651982342192350869199739084472809787459038617425518323650786998476112070103292010552397272460754893719015677079171629967599663141600944802644671645741998829806881284654739725386987283290912391825046823849031658734482338503324188983452868476547209839611166580028393494917204138941101462905561850386032189455579241226626783462299353669698441473004322724473497849477350016710152086270885315675279890352818726079508935785505263648325514553733740306308170147528741383595155946443931353691198754167292469976155277942421899291654713844941034172373590222406854029667415157254501798225372780957139297347075015798154558972667898147485560076206250795351960047033754803880566795942473426773614024992221115578759117261265001078228563264257512772114418845458132431511348785411294078458239998100782031374049952232569102268488335046408685936821310490144988660914581793033898041101810654939916736407494542453946705189306429671120057106894703888631516937231578414947379658474485556937719511129216684612617676333360144960966887683094944252396877263334629291504933331387633384667266196873210866736695122852004639834049811223834092922892381775665874018603161886213860757149085773700735713268963250858718445591516114234513723761982156113662657380953362915758118822900174058754291317836469393716247549637750138341013829573598708796423817780112163693530877023328653188190628984495345897248515331264866926677785705227870583844365904903444461537937791796233779296250930066903819636779020402072530683986667710451273726093871674535573665737312085802021505809538833377786429078461573976292109000879948735088610587375484052902991344518098682611075715562009374239218949073745859442415685470226863976559186086785675779128599627090487012295663719668421571979907035600339039358265681793491145450141800031585013576199108305096220277793998548443866498636912932890186603776605589074074497813210845479496255047146283306591105517967383123080578592498348499519826492257863296069821346768370996739447589598509373341267880616861465216182345827702091023874661383612928071512501974237518722194044976730900444636001161529229833361487631241390039963937187605545128442488101899118159885880819157991269913403496675868702085992590758252291007718183374073269301677170137761701305355556665969958899859686949101857357736856006826773063517879197185095495310268773989392695007515151622411013550567489904951744353577632656082884680998056139823360051120410394124736644446476574809682815735962266806344105788833440584240032992206967878138447069891170280623275032218639603640679420978519524714243394447853311284405919400650080695188032144156409562452531464771925334378060916779310015420807804231108797080191325098775751718599021469207903239417631104883756830445577040697075383536820061089363471199661114337732111110630240726316528908165193874076712915468830100464834728855070288727609135514044599980730249162214067869145198816942241045578403312566851602295772379759533617470721927672193966134446454834430473501524046520666237624837698079404809169231002093260474504992208920959205655220156030669302708035007129507689645965883498623132538456171865791724757658931633032228920583202458889049450476717549360132689720867377544678336387337047324833243680910884549228447415715768733730784301102734172271761129623332531641231453199704453503831676160204618987296927169616657162875074725736907691469552435901490987697245876566934047311235654805946316433899192344235553013471620681867787257961026599129318127205881516016821838247045477321259306725840144572178152961102938053164418993148496344201248530693035991981083564724657829922488419568550042884241817473439506570220568668045498447086464679138363862473812750030461388363983072791218220861564499993591020179043649239016818693201711576198503238295718085585731571659791659866491234468813053657412195228558851708317079321088824923664679865598833043634520073307609716042751015039561843251120567719047211078920529837660146101191036616812990632364177818381168069372495901092219896497495506113525733339926214337153879614826513719374753106324432810405088249243603014362160199215558534823390531212109923549580881695428991015824655735947969015076630252233792208720390194050663418209292634109980807216681624094054968799348535802681970520738707175154734082702870883950102143608141815659739909092146600668867955675734847069612129464731626258270302709579455922386295839789902888310447531294696012074688838930227814402358562795923177795426913233009817593713512482362576137946881834494019324980619238489975935585511341955059523703598374429542879928703830537767334728915694921347756043025586409583859613027133872030322103514756553624333929114350905896144158928614422298639828358203384304493425895578428876652987898778832145839035773166205921897967007502272469157647363917603650302659759706753932729768280728789508693435013161013456676370322609025657434068098430684198254177504015986344935300696257440473192966106767332009336336279421893493950315121870740018041583967359114109048253129401277255719968156634196451454470956742094889890325508260897782246783453293645604465429384154491286794882793141490560078063492810436953421957130118074594573123717363421224429119623038876355339257159378896438254198126913967520841561370704114410113426272310530048278240197681266938440911116320335930459247523541828507718272253454100299340588591946780626668181594725396207647989029915464591442509893661974702908335517021150801562593737633726743994734811950540316813618301016376695264038849121173116906543565757516413020294893116758140017993556536576400517862438736425861341971428308006157662309130634238545324432105429600791637934807453879821231148063878016691451223706454172415777807974989085952167624766773062528165308910327826777161506234639453681936999331013183991253426762321798848671712668849718763448476902780590078711204310317016885941224737858389991994334231472872135422554192086799323159724008532586017709175538694792073070710837581771062669975897628435089510449748225107583018860725587512993381729281071367481246744792247281141529888187999794771083011916558370038917882162239390193841630613791232117404253968087098713807780693184401120553518400861521529796887507284618831774475694429982296929987547313150456746511752191678535505717226005737346989490606668326858904628267513521057923156348806985932097504589787633424905733892708258089822846792259373103951888550636179585161508117197072004336463858800994098224453342115546820632200201853902183596688765474005541295824496583991920381906507273966664023368263308288381510490256491105686102005362286206607794420922447408912145952589031029285463941677520201468162198408467841186602948739323540892020470966542694986172380881697316631621324322971792435217636310941251585442379620408684400850068527525185895456349273728619116735968838258369084773768855151691901483989890391143030031927604749356598435711714480374594000611738289774571621659958821520611689502462626059805137206391322609939288083542581697577093196690724275143307352233522978548606658338109712886344437760910902286829551310366769117156215967718949597436686738134742876757608966707926465588106956278389758316955378024144993944186927838884602468193439595847470806853866880379815805600074033107280948194624297570818976796974251528148816429980615165199457959662384902123240032068756297958537172520638403183993128884152199724927887815501882216801438398436167347910859891569503515327336682248562177920039132598612632302480443468413765856284103063222028930766662188907770112474393598172381606968059129069413687506414245602294255380322365403948075419948091504724373541800638613139738507509138827539318823197401038105365603290609933897458364515676184938536815339064416403616448045880709213247331497747225873614417713874308714985459110457235948505534242631334991092041448237086797850145309445062468961830497342414875578036225430760362196911819133308942821316278282771182604768747205126771332872175887565343079555540001707157304326056602715356651721712944965928605812535046733802333188529830105314337418892706086350696103312401802389170126113096113879398011881616685263017072363324173528398723497856102619162096647359186842639915688256442226900195370353475756819393079151061864857072779372417004344149627904508345601599487421668278378117736087011006775268379911838768893876062968034974406827525278007277016840282344004277116101997017381711064358335590257373478288528744481725573325623506857326700818599275165345641483672573348529137698988408098785690166363073557377781892969693938361996216728195279225143860621179971311315731114368852663948713335212871488845237336051087880654524747259306670340895422070350222453137942494001054434000719772179053085177131003630234377507310852106031159469168699224025717956257814721386414499613938671718599138726677692382748208604306582057142411941147318651963726766291643023562548213816078818522796768109522390878147460559420037922327213682551765061080287491641059458159532459814431803380969848323762384049569947814735642631381348523638658546273239134020408830837523028119296143306195282897695677533150967149257810556589670688032834143611714530489801146221309978249474792395472460696755587079613748772053112677870098090709988677385723452318065525650344751234000590965143674437646937838933654226933444197437348532344264879594380358068242765422007303818710473770262705216371190583845474727445215651380047784530404738618789400687741017118408011343539657669746932176915743743106040658833018618917320868081684976222977426340732728586889121464541780336769966512067871473544080379363703407710661223103771735736464658717972004504847408235317833773679699707648898613279904286780042298158884937943012925477053931951335487431568726748328402745004487592551050628654603238580255922180229855556605165461568161065493656246057461598822066019790307333917681796632157393900550378889650587984805820514626349913492919873653070289396370838180637349041104900705212574788887821920860499037409114729530051196522015495511319081780386016392291833357325390422051448972738083077660945319759382124283716924639583455104552252132062441908309820601940758627351631221606362572277405389036708628403785082905804138249334148916032847207080106917707457838561006188297126658537200936584453483661977358295395143467924866938539638082232530332408092315637668612111076185715950505624294674486404162186363859936877405027118576634549936278600999070091664661567737177862228651274906385526419664969500824621299916023247383839046646059353081508377396678533363323753559031625901224286844028265246130008877529821944968288278260664950739446230023245596554146977119235215538096185957835693395056992240176900124014620866547025679644990723457167747556490303663454115343642446845456039390826384251319982938229997983021946848384788115353077768580504240375863263568179823713516142851996714245015488087668382346182570539333288272982951596855830341591521861539599633354257188107661696677924515692828575326004213870699070967353585231683650289551159053684421596782668693298907043403422366527037378112276530950950683020878419070727861375012968328889266990980237343450433137813278839136147789944420164307385801180763107662137515525647940069582340588144273425002625887334941054388361845108562804908287418824751301290061004412707836719899453021768349581707498669721113490456934956578145776184345486238640817115082810639390275087576486083557455663555881763328809360684884004078372220513581821298616185781144984998728712934427836701679325609546982028884687978711172937405057357192151917023380882230527536090835619591036747234412183449562106233085071583431905583535157905555566272279057555790978976122304719371659116060514918617314735653990965051040620996155775059945365942121242455308929383937759831041920582204743795449970077028531420453173265768345328265777778570689854669597212493314313850905642784556895633610273656226837865639723140078566440608761948692110514603352890909726646479900654806070906900066237537210427649400328559532831691287526067614685556500267240774988729193571874745986277509819978939404460320252623425439711976471985797802303677830586248567895058410696155052709082022186150198347152544072215431203624423943433452959074666135420295776944745625647590770254655423967385153912595108022274523956956828702441685238114061443366131599785707116828321885728115409555696235376091086837246805465091199996470122510259384974176753459018423632281039635586804065289228556215954631536005414592638435761750168080976479736683948051967358804592036583036688673644898309958561351077587634401532310286266543405017009422949539205421101460901888716535184399516778053883765308451211486350904664012424655361254873025204948066944298723838113282512628266453168722246267007040982691663548636446034808274841104009559789105429367605131015876928289428410391638604352750955140630111123288587516434486884700932744367475366048752513605154712586426864617748470199440201282373380279361968094065486240596912393569620636940767158941674817985202496525472101103053076503933806446985228211143550794864639728178526317794262214622318883686226805977099671129429569571027640857457060616469677370345642863073316124175368655077949718614633848060389910155720059371141221485566501184856431365921302349248514259790493652189442829338361404224560314484581157963206269946029742127334995975652827078544942761214782139993403697593710740757353997904991064344239977942390257549531143350688609734238251854503865228547775502668185671725075871699831598959859310920412631625474307672589494133300619744160079977650764504440790492012515334881589424286455038760505077909991667031098928051160283336030109486706937998184644908520870526170212953580010785991167587792512029577170498197583697357643754984161680709466977481175235746506571392244606836642641521405239539757065886657683523203280015200446828164912965927242846641219610466858030344836605912095266654123586927025413943266886504742973423945284346642687286064120834929461238130619677779395901474230427833364871476190501552487577329028344922543153161773408900380396959951319117936141096694000492547251935238171205416665599455196419510877367400199025256079489624096690838981580886966828061514804355719609252306408184763134930362091034422286213486473255405901719996231841797949609428598999954872114962735069778161436071521957345284977910000389558673000612118975005004642678030389653945377499376815931023966728117947164246246623324787735632150667412670105625650000355009392347875849096343916145451331643500156814539712850615336271015715907930531829714915932462653964307630424211627493659936039460355052216072193077397766880550369027611332330765169483810272296446155112296694818933580313454139128016760380552618884127143765787183074062825697816328077650637809853050404400175883997343142453116718487251170996831504708216369336121563206275045136558304539350535334925596042639202739766924662671142454339176165346175476366922916819218614050877573918692100870641285780274672471914546488265694808542276179951460750147031941631350039196040296946254763842677750641776414013898453866826342984823630974152054614022764186804879411089547579875812785357841875351682005619690272097256677160864391756429907252619215999643836930998075733987412346099645276370802076787006539943354702783649049458051413123984434977799541042599581663612810940189677915084184744031254106343705561587863014460781181090018460220565263949337670755244458395683388644985906548104489344202316524272349421278066182188743314422691796296136079189515624298277448191433869713125353494992238229209715462249148381320838401391906787695950892923303523431737791174143299075009223312519755497907532875575598632662203517344320289717605006350276107984410164815309968596169801522720674398003000441418234656381124851880808401647582634761876577140987710282418853116810356758446352183860758731351469435784193043229965120487948200278218520119723248111730442426482003633961309915381175198719697123762782780538708435914096476065390066984599871951347268206009459938860252717878138343425765971030140239416221904915187906990201482022476699583078895080043866922172890878747649065489407470258099345553681778944818889520991497608549907113598751440862312673711431463663939671852215189802971791721744439670537708268886037362154087465178732845097471860764621510965308433123036650000167513441004376585775660387780836751368186970589614661991395869073760395119572371831209624188673790311868743218393678754792879416744160253313950123992875720811665337125422032863416815683198899837890060922389142643536536245122333518175375397647931003832483946884665088384836645518875504670927305147238225951758019751009820307661888612572518033286124706058843327477573801758852866092842224915447544143551703755086816872458022390475816201021724836958412747973056606203776533285452506638218935685012650349577393996858610122838062037386966083882909680771735941954479137231393488057341979361736782455547827717512829093503786514018682269435783888280587451771412166676247637159789066104506360231847142883131294550508537091791279359480120920174029174536224833112260961588227303147129494558963645243294204491201036227366356218938571227924338510612747320832192809893778128901106644461599868992951195396124276884900888787213537251857112999365411041056256575229831864403359370407039960400505430014237091686923299872669888122429953555294747250806885772102948472105235344017224182210948911336722212172458023657751189121791561013088353085388912547741976347004338015069105436365740623031422270154874539797395706405510076137331987170517838796994131319564504884661779866771453774415462038060000849331925429375266775003210368426161255811083407583303299763422234943322160942501497317636827885235723223954825638119805322157924872188013064459879378699553545784819202954520670818368855938810592406331839859437823129679143517039724013390992631093028381779907231383755331323304153953265548884935384500005049656156926924176250086665775009246752632059095874672677683098656167927383740281464904197154313850089961969412820101148834233994662397845490568688267092625348015417627522378425804048729183313961749211615269988371170987079860230945814174754176911976414162338757092932777914316546100439244711890462700608437787068747751907223654114992143253424425209348795778169712605196959056683207048968766969822677196286950658085069388251597869374293369533578991843319510004300592270560291759330494583199166630670326773042339806126897505564662330669317021634120328028770003658027245466128075724703575413937189670474470652323551823303738910369196522752903985377794599775932702688180971111104392788646989970416342077966980583932848639328218015742649807223845624795545628752172751639703147350655027826614591164294726176967195394163565897672194910053143354691427950075066262344172684439161956456498255592018693231827055883312304805823335322138414901524897558062393387658111022680261672889925994882370713713056716820241770582440795914151408159250935285236031052853804273462788675949684975928864651023124590991715466556069991428045002681080239967481008765958823741914310281024212325719919333827929657012904740056462088988220527778567872163948999178831895581032265168261364782554986720559857209938849274700875375795426900989838183385982147211865379109246538525127327802599223763667167060507320404675464081598612261141845507397068645732083373590654582912812771606195373261068112492307523543792744686479111010583133345432146242598559278698911447590736001007655884862067545424455026546364522049561963357953045082143607855530973188542398171221527680603120684246268732308073879509789370072775257851401581987363525498795450757844138611568383442525523201678266218744134308587108218104438800863449792339722481080781618604468253304744806371801425649235668173707414751362126762697646509214144995664864576503099611859305582361826666336932808690964585490913833734589008875412446434394050923186044134618317161861000756062851753048789726763723049174620640654529815366301990840666399627054194818457593857322510596331998411800677736356654526260050166882771864835037157245180019279331119371261439127879626876011612755088144898746405531077886985310777372933890169096436123657126540816492633119387217290865323852127395739593772486474298676890639051332070233510596226227388862265658434597952893026198644543423162883455994627934387365035045471998143514012580645481001234833469922243812369946972274738553963147218719327125654740326489797633755552842987861831181642607607400246893600302469635655270454351864880501115199325926143417041788510437033187355234115817251660299987411140312139158613706139302696694655040858235861356081406643408405059141380972668137698302921730633789797059963917651807701829190982401169874401973773759693871122104429247118681548488661145379637708299687290421643931472332388464859078500343401361768915715738581554113137021365352318515755687369145363795255812918425828945221585691978641653659457591500952092543741929858787349972883361304008324529007377242435854535294417791050314551942448814462683196417594071864714792529383880041736486135258662922403461091138551922146614670884975648927805690457598497128206346170336017907045107622690320398273997210158077063305132101901795191178524365049013469662214587136015696347956873889590558804200586365887644110889134371574351705495804191439040224158744950040153751930285937186745837649823748213375070821116790709930478763370215463491110501669676817394042246688454998734754531400864816317431315514316138024318833315726984642164411632995323643742020126839182665646002101329572797772200510803897763289989250267541862016487634934690640422553483533050483307090211179650281058899443413713078956751376106165614839017473551498106744857687627225745871385963864597100682670223731960305756901531319682937613154663550834909882818580041742324727236032581815485620145732206833652594118921868830070982448550901295829192370947055206656932829719387887417988803368178768319796852194055314502782212467973472568037271372973490544003089194773866453262406249078711641372810359150354491234772887529925606514333620829573405512509172319152447427900192825275049532734190837802275913736743676069864753205719659362759179851747220204191463992682965365611619498987864874880592389588887781981629663650743335923655869673835985365551172904815148769559062283733727364552943290403631431709171748971936850172621220063032432676229887523997400940475354514275402060719964642130659406642360041497633677844682470037171161877803042773804101892946354207169768600622812465273640981935028709207179000331586810164379475208803641899722391702063134372150937078181839180945800601463013108655224563420454118663671183220762992296258667137712348756670527850216118534043558383639624127562063861740521629601497823108782011595327437491268428500837966977692207635131770084388081485167852181840670989890496371645417954480326602518555115234622276848976926142924003891290537305067092463567473498352770827689395043875241742498964232040528468447603687369482698878535969652394325203108516859126434153085576080180219665504162678071422899833509759746456749400902504743224977330050076416783383651317555772326572642342367495566713693119118516291727527795168773774347209930788725610658344374461538467313730324152937301880821963291659540682970084341845591265440642659463420560529539566585612520506633042837849136824322349314766699747847640019929374423728880342331698628429909247891078913422013238577498315579847553655430288097288051338074424600163484145018355401899975685467777965208706838106672902515349886343772633813519951080742146267854221524264705573217398316322779399885419966707289150306944596337841003539265409125035154305221858869323886092320465297491005888800318488654418137276399357148498333159198159331702886784382596772431026718228422634784197007303717800309965006790196215542441578756705389698773035190935316908799628966855227135101097131515766565547968977585508293958396948195603208418238339368100745133229296840916262188804007593643256178109548885218653415746476202115177213855313297147511331195310740771555233382001721597349879165126000490140947390997042331446348899076989590552351661786684052327925732394991073196400755192489434015814518220148857325129323356955713344812248060968196223894357770421870327530595648708728471600947730551549661600401839644195053210737744979300022750072890673910647693865739462897098743047566478689066700190726751247610151040393185992615670864666912221250002260634479619766437556504710533731766975247519195977180615517862190045016646665490701800401533293913260619123964224254591331923917060010889328300555832488389889319686754945516347179214777309703675754305011327813724232774879671523977190373713450338499479111797082419558578341985859867997677853782659258594499669176330020434442285505986261550868549645293785072875031797481736955841443779231186889472436070036134430514832342623331164902006684419717868435025826866825332116988703196789310864830661725599294390800644698619789204511253884877519554270594365020603207350403329112125790123585329181085387450867013968584387740081990072021774228733333998734967318624849175220629861960544619338341326542451156293810392440762853192054519389072119528835527445840167668257856240362253555858788841044075582447437524084129977159416060733225301849741074669885886316038085474414057010415871071264709034015381619873190309281291486336006669595686398357013543487992647303146922531638196598233186317826679989367125593643672412015669936368749721745645838935780260395433322914661149773886235037204012294730578175640678628655131227214060071089070447713051178085567951016502521855567118314452974703170234873911344896605568843875254531922441786456269412135904560507713783698122317978220724262000511912978182053924768941996496142452513391955421105102282844752868689235083243633342541053311716748058429251748680455587716233520888031930014185748855057915842824706354709479300253287067521345275345400305601044315288249943941723863144018759719914676439815239326910480734801567459617032051467021397538046258113682027094965151631044371459139369698641290648660647034363568838668505430463364639067973193438612038637907914738231201594261341441368669694673008743852149553945045711332413033108513655151020287330635263566123919103311060134483464492765068865854808272810267230270167428286889247268242330640013297146158008108499538413868955094173211941072875113088726340952394807327445510592518861303994381696891186526557716141847557466831476556980252394349106628312763537173864476184713925374359791297563137924752317480984742889692174381693057172583712420729507300258884964030007673928861552028565731988051354831472043705231820158304768372666762946230682969053578596488722684116847523764837945228894058718095646851831538333565840667024631277743256175599915476394682548263108121130911483095142501653258507879672596482978165983879631847180701794892902646722501153621616884271439690777958041224315277909904211652009477768681414710242913519584038433222386673663655035980090053429766785658348427613915892148210521698703123959394450988986454953209553966144770339216870238249677284369406669338523989855414483830343133762567536587346707989097591587753751848611195525643198537270972528097692237302549780444128041010777734333661997971099611718150620858117717694753018734877406901223283088851647704431754238954962925778096259865480144136643380607888666479303140350782704099477507260233590889398612616270230607536123767152679800430600474249859550399660459282984740660273815720721181938329066790285189377176543061635126861379616142889488306580744705565443998320987518381327168926763365578545548999833851630882384045893182923765654139292955514905322450977311382698084098032591976435747196547601441766353869630264587177881379941881340975990448604050502172140206852055216636548757417093939695407865970423570222346648039591275114223709191853123841899336918702665155587777909903182981395913336978178691120166969347187452113992335623361824827462782288128922161945814079074615894737092018207701710424639796243231524415723946203988841321961957007495099602102493196878892462487005620230882668703293406004066505095025656534191090721423784752859959573883734975004757268798085481761334626847365517838942818098625107604729784100778936374689114350054890204832575108149277840949100497632482546717893298651817473773638541433499361388985906045484094856377056038685044540650838721254898990858151865863605423901374445649543018411193418975719499695319919110207662620584620700346660116186656657831082687477729929862213585775404903577256788588055410397893205658148245965653198203137374383517307742443686456303434682056354646601539242850205060240275307352903054113943980998478928784722984230563650737237807096614056755919106249655229871307618066848490129350581677985517592509340538725844301210697051219677164411980639891161156388094333375842883806379914269233576358027903648708722989533719205122929526067541903238970642544653030619351952416501762731505721564154107749703318979229742576794786549685982954007000582884008539522911334894012310033221511873655342767560587734838049677236220115903977802447574981058178289730737747476587169569317654050669854971762729164125625285045042340187503275484232347036315124699531928400331680588449975648760010521096778207513310603163349506843710670474228227495288450585230637666087182704295235127736144422638184108190715412812663267671676755905234334820828168390168405520768337449840730173773731865793323006765782186570466049869904941421132870042753427615444612167513757756723483317608414692485110791740703993835134228032487079937921000818519448192878565187515452813552758909230666517569626218535084988114185463719880408209079659222888720992247372954148423044298300878159342107742745271626076347456803208816615436749348170732497038542477214151309217001712327945670724548327449535501730925482548803121650016343588594439171351613487294593458148793945483501383526670208694002808257658164396616863553055569971555629397633326882764595378141941965877172384335765405180306381906029966865198730947491453319190379928673970419474099042722973053816535724581822991564609039949045693961748701147730791333890819717545880622926855867280587995640092715928867001077549422447060236834433648377121597960241494021333322260845287115321394531202138913203884394131368751674502655829832405235519962481045991900060636043856827215234650024340125012520520332326226723786600129774618373511312224114272885815468695047125065877860083229549606985331558228039731817964463650089718162293939561654050911080865403679470947357889989263766509104412177247674813520075446431994157682219685730562437510281620720061557840111144677912156037503475103669249908409885610399931754856390859058734196891534356435879526433367251511840941154212140684356754213300221046833533827785651504912893660150217393966699711136724528927524911668323330456377115065443104548116529306111601102069966913207313900130152488642446547408479821207704696875536459721369517903767603551029469822692122261964080649883659741671339259906670489325310426740763301350007048616427429539943425435649940525811292070666438350969917262178716720015726786534630378884967056767950076368973034104835598036747363323627578895260655591212774856906457645553984642028381727309855472830519388748976307615074757914439281118295412203192478396557407292784950017650867191786936572246701576481542028289813895893634660561644304315122662197754291105623458453178764223832371489481240244253995947766588796754441614449702031606637988828620014896972396334742874605584278407665709822687077297703516674982375222450798294102042967526367336191879439143119499838846654993373028842740026950739668832733321924406748072187401791151249136921933814902243999514858752743388090364819906862933234566252974369214994876695961943129445215242041799638966537052708073933298442906325484404769681726484477571173042382311614113091602074944652832969088805071218481357342928105142555643939997139382326749789194760600601929364200376869098523453599418501552863650688965717521647638753097533382446475408269339207095415980639125835035128783094946457050514197491866493812959868493358212910412010675525541114420559479699053290324070411074956324906949952394816790112012203804036558538613790592668786969662757672979738956334574350427369224010771165651427379507600060289861662726075589153483745873264593340378025741723114590339568314151313700474838878828944195179907872067688048608291501421353429960687434081214894427280308670959120167804530618549110227042869641095094937331687792693599303214968058096644272100198798333872193588996597099007268393818701719022055013682161108067870995309207430448596279215936067602209191993759052012539086165701625144773673450827540745132757390268396259997548117537185233310958353426583301613786653103226553915660636002321676935957768128640576313480022389786543819161055300136610777558091207047015657524300556240691275917169736008957859948854319807741690280018733053597558136720951471488411572841003414437309115162890996404640316514273615479852927001602259949245615790307617411809938930845894083214928986113738004235991549735651694985265817204418672783115097697220276568240126640408000342064622251609691315394530705769796096170423576989474330532409646831126805722609972030773557407131218147821526822863325657135071641294000358906912930512146492922508771751430676539764348940004030238430763279217398124643741507027797468827410584721040997990544568927458560164457457695557637833919314162442805644539787503482306437528306441228250295806731929721275762609089267987679817777136754273454621819653477022983641076970021663004048052853856028692620765485325107914985987441882565811388984434930516449678031645883208935776028743063404044122885528569569907874557839763459183414245667201407026755721542507552263431224804069826145673122749841005655772779897170276052572187787910998475544720690335409496889920732281479637408895185683940305346105190150449121286029459789316233779656910384645091912942643461232450073913818381705471942123226244444203001380525306405308097336688210882006601683807998694167208593695428112632952700033712001325169153209623931201351702519110610702327373936555042651098464294968374874472051726881334646265678368486236430965325314234438562538325199695230695262747240771974082458836165634507827096522925055128210347576501054967438693761938890224599431336287959604763933665950110497800112848216299545571717160230405835855472736622789502134205195129990043402672489388753399579909654979798369433031176751472580711577881364020205746049885036581815849266810932314138718375964447150518133048562868965737039094260051577383535650429856515146860991544421817844952641246219466920599821240892123156799838867944695676359291610447741814832005177157229380863776692562072581833158701065754421039755185813439022881876873590345644550737052624161055926665971170484762133295432583027462251406767342029614661726637986652918449920867478875041619140521843426287753171616573061743643933231048436668816512181615855854189577418558743257929435250550304575440645869614558985757890470600325555380012113592129544975929028715347641206156278665731443139584252425753699700799853599680312546432462363453439528351098512887816927652188404949187398810502990706448226762374699266409628753853040623180534731316956289874739337106243488781532031037084190577945252828564387688194948876013409774221705585081392336909342880634041252782319857181198276119830242340610812979965447955715790851528785047591032765353921430724991954717445475671394139411650017324563319533293055116958817626721654890814883771062945046739151365505544305166009048547380231404735105184450109207568592868139777038081763448237613604603768689562581862460874148766257617853686188668963591858732628950243933644134837970659780545600113099002117403181503375273906527149751422358445204721207855123323588524247647267978585419884627709716822876510654588614492037513998636662285377190437536014091305532701546873745933557210017807206763485094826995905926472502587328818438690793184175643658665769677516100962765104627120836595381193899404950889145159364714710578839693519986042103614516839389457216653262502672315109986546259242849385667198818492011119063863603049933726829608878681643599342907139194572135631206528665419520115731407649427908088946340110644477225822294657582506521490778706010678619514788813058401065834828359283668355634445310868480555586169307530858878309247234859984361032385616191945173185228394424732015699511572586232970822008521169113943881901042115947049686701327277432628347977098097716512045760504845100846387058204854440394022716898115438163950165531155781768008195415208632090864978272051010888822577272756348051561436753292047007845317720217192869971532905892368787267381096436338286350772862682277229623937889648988950774760321896594272735822122036616746390140041911945892387374421406073209427583006037785927076644203201144384915414890072889917213137437575135251316266552561680757397994083071726616701389108503183597913843777958858564141699586060075810719297015728179559475472025840250779009625443781792249557670783943872247238125194205977705889962435908979680477003367696259968233203003546717385914546851515388506612634008394906878503455917143690337935234428021813061469658185041376779387435908988744398983001243768568326624552093943508711507916239137940637910344968684869603638911211460170235797825543230041445454030091511330570765187120196532872597511443492279565042102497495662306911674727953185034238605340358344644850931454664405698625829994276435974077744815301593585839189912876895997344358217235116540458513422060030486009626948600235967363227524683231925839988879148749830468411515424794427377605076959372361828523949992658473414786899678366999426984389987328677023808231222980784491933278931742069432838736838657739269150554182683176505654095626520722664060550369087123735696725090480446091623828684264439528539613751283200766836165735755354859695006541532593730299701285656874235236817767801937571323137225677187199510309405930874304649540852190643887114120688159425781419225081661673792789849425673321279708832299612916746853737145226281020819444317262373404205750409126825657138330426702129139071420621871191809680780880028945515759797512846337136257313421823404737923015547019855337607888390350649779017688307262325828096327608047474944508812877332936606220019649635514078996882619177562723774805384116049114311567906111715722737746329809228207068310203669666425799110525600559048654758545898867699744095064872456833933293550603120873377642303360980618126123025888487974879505399468208773397961706595238022365530104687099817351545730356067770305772229813873613829944124292926133882331758783806546564041323841853692582180572640357267594642446043305089916068355895995405031743390016955064213255559511977988770901617371083458122807130776210398266317455140110374672569047527270260146638917578488707006064184276495122723477159545217344115408814699567582400679482440930320043725950622639628645613972654060571457189265467827852591774134779608690874013376920630320694464505559923687302491512935230248548181364819600837976513667591228404765210579300465320940824173472077317300742888121510750815224705083976207787097597862358306528393975477746593955185022381299888092780597155872928858180477926774060088654611237954934041209985566911533391296056529770813663942449643466901465389260227312736653859708813553760024516180744809734221681622048657129475903220179468352905328322130498748446497272931535106172597228829519456827174478877431477975818006862612638270352156542691193890964512285305839678441952149071766182117537833602196401889922645675817572302762627217240606486598363350242519635418218690410025151587857667468783230965711708024632514762060239246568995672299386026682141804558595165148616407150696812581119026348244269547503973686058270227013993289579326511792703779454990109617783539873279290024592034399362372262353047487352931822860499031321948610255856116776701162186484841578065536813500422435203460712757187164769502503876623889177896216982563781027967077278316109645031554490916408863860849840586577818851033070896962391489726446520817127318057888009943180966141013291817478446113171883216740129008132750239079428600815353160955709533417113615144940994865334038824971383973545347499368797214366914883703899583629370250048917611281643710017454974778286426618921258023266112147900881233919500528725649400581033712243283124557823075130950414745790270345041965523245054129614341008565752409799573831259154879215359128222698246519081094614728298313834374488389348186176827731599838865895432280114617697012847013769139507156397031515839640333346608996100954747052406832859986182139520380770507510189370693479628692042646176885747075796685081803933042993618852696187446117267405234437157508046832631470940706772012776809905124277980728722324214540423045188981661214498394888307423112113590384025826382837975821810713928051503662347852734752289535936742584149103803176282574957036398957642237241239043142565504992447687455725411221734936380403839488302448662195980529448936079293897460510207866631348797392895522171968119797174221409920528749848773209815584333066815340604297250715361280322866745307896668766121488396536890811099364701244273111081734660546016791914205508802201881881800442641567706932857184586386832007245518813056001069120421706677275648327264399283098977310185263877095850473837407061876677041985351372417385434120079820104832702595087212922305438745649273342980993406034744015793919059611607248864607626824039894991248992374322437053763811480179528885929594137326486691590908038806086600164057897749304702990583489780944435574678668354119020101741726233912217944976524208895945387844346476710647274637288634041618417312682045327133148446759414800125951088535984143944935629674303196275972036768432048745468761476798513112988671326442879911500103080659881718333416336013039055656317839061557489081688022973937948083241810286965503773615712258764572529207367408214964692841852154427697965084854186659939573903803553004941995437480820479301047267702312815890022354758425829227784488214583733419782734064033378388875105821821189225150591086560696758097159803715257539233887087399942443230016716429192166036815681919437668879110993509328981577584198491761765042436056066813806442459919863599457837047453178062080002946088188672773669083866607997948878471248362826367649746921934013249071356532543834914173896311298480519233354595789430945860814927479296097040781695492688386818017462971595632794294338556816303729634970208310227756984709867442614818474199767376097456949829950794113000708318741780453460291516015817360338308899948078934300821864077835222689906923836234817626188433277504331499818917238596528522833625179566788267479754071474990674929225048983306603282061163069320549394068012917504425766158477383656105102976755735507963296284626342730241364733136196769960665176928376576419743126490061897620644925506806369173076270553662436109393889068862889277930716574560798806397701196416389963147211884574120299718183405159527938515889105920761138668550503495130202551769709209648942322893537151487152821543411883000654937527550044195401278295406400779463137628727969085057030425164256928212572240508067413601060509994490328464359526789404934965990262446851772571180112905523074087320386736313667785056096356470194682031926063528810550054419174294586302340574717943774979420639985812185918899275160100933053996493073309632914135575017687382768089883564663122984873906871404076915872907594321330316746629164786990330359086655041169370766517091623478468791279808742780552083472718567277488405945161162294867337903791301196753633050644037626314010639122678688946753058105908671240086538495310901660749225253495585031248870064693158093114268939727150935417482035411730465196172078666949156998684186369806175097747206867624165838459888021405577815950971141549829922512366144151311127570833018255551206890115893529050456055590886755575603516416483380568866728752160365492893261630004081071221976467708882304333183711909024160896025172911085323819434959594850117009624226916273747408005664687915430635023366862976955690328617955495031576406808334515071520318807519792155844102895219091317760243003823552894719016207652669015713257417397658310551751789696152539615531634097824251989520637151235077777378103837950073179763986365908253693293922083412960674273130729284936816348230819354461837793826957401760012527773619127153759187007906406647300776742867628621253455793491945992796827412291644580054678663610171718534520314713186800170440959468701824500553799354591721406025657635044755215495978110581275611661724932598539103449885303847618033506568598317886141348843593776630217371162145559967438273173533595743155082321908397573648997867900033937679885099934923785268848004039924291165046285159593312876416223482667265276942780620063515578238269559779026214221774667707487596160130712583049026821388433963841127338084194444604684989550249573319251986475939524142048749267625528780388149139333831727047484402979877751926576632840474821527798483353998678203233897822754165949998334841576293126995249875958914752458141551880224783590089100896692539328594765539639258756047432774558819143577679292889848581162927337523310205812689180588663341307690086118192087346150848992028687469702930861333030371680944142457229908655186875093497937684488131521062758797401531105201044384886568734119197898102287246526952486220851159366613608063741848069574777884763685237565126986147686719524931868947250433887968872980050246091868703028334004523325665630273386321797542710379545573707475823108426217185643377855904199778263276832020630253410069641513437102196285741788423692054381983761809082688297168050079485925100971606801290742759679389365696356123307151295586919104751304662857735314959391283253857924158599016641619612881129905605232176399324836334691309336451020228117106396656857905860390103587283683201913972728765096159547132881121317566840550317018812446839815428289654313356171624611221136970418721103771307612807657731006095385943272574792376310105944508009133141438078378595359419917757239664116591502782186071544249948038784449440963424110351916642341671525173891690993542612821801045780442610593057386111173372453407945044756385873835814538834953723457886219386881823468252951917434314402124588779604666955961097484471215269545610230722277196763168173460343939961648564155394907805177446184066521797863995257006047815256532260185380746236937773717852147574142053178492495161784987085349994944920690534029608644423177838610159382750845666745579758400800184331157314456354476700342257679135533536306553809134600664028153450411187024290877341301418027639805864527132678734171369620167555293373069700324905168822865794699882641441007527181295421396374494680306774712074364740372832822270597858198982707942470082449613345797776706013086313579582359621950818206676959330360106391206067081723725315458976964373162757124995172353152822983167716707964759258741092438324835409707190895666627897316953278766648406671760816175965396457534561708752952787911310105950618127379423727861128311550809604632757607400079080628873570817387126139007749023098012824769785870600489325637336321059355845758914843588706126306795229858628507842374060425186004164477322105623903534813300078024887207535951217144766158887346575180513279704668116051274367516081089086826953375707637104093320528911133374336360183893790249405550570967629776632789711633891495226359257316667573580451355007730422959700159109459625256889922860231623972189440397044492009042417278533084393710380024233003837181798738718212502604048682577388263755211925438303726965432705468547507761500804355652124914476341301601769292883367579680776010985491283872560466555711109110287552705515491787240322634209903891746911461364871722337713609447878921240606432043712265835969576250586274088173360479058720885499795900582138581691003781720609203611213468639301368294408387874035070538503923116234200988853535318072496341723830373829703688398467490087779072499706895462592328766086356551746836541394537982320709650573754520437764070522878391442789380638192553408003464542639734692098063603929037973159781024753437421166316593644547750549458478202178786068068099205713934206633028810121766031955165365028925827123812399899190547033317987112333926576380156326584241306243269524812670419318150444935573817015838112434374423011979148383024876771684909252127122909908402774803774348922959764030384002990734333244397449704154097395070339500047151944155417125261174798375576083615292988796263604922489391027337818787533597234130370110819603174853970888240141461605903086825859412285850747193943103084936467334646766075002493927454140904107267775104983027892167658330758721866047486046859730976681291768847619074475570332357467469815599307460237089700867903288292246703815484490234068125419915529409772154188377331053603281893056952345127448919908995359297375028713817482910010567166608202417846222314117051027641941552743848371508619902209772413113727625953300094667225585939598014303837107894578778184745358146546707925500651534268372418548441805565423154651666198212886131522961511785776659491950337511857016799578883694355558533577203407625849287899544827254548216811905237038981910126622576521142510234719824752267530684936733785550250617682135237916965010708269845716280286497177504109810687284825674348094438695450438575276828634654513910640945112987971948585524168335018039129287822190562133464871228708401313825886638351055714187964874329466097744876662028652107270927464044798551737171754246565179156353100630583326207098470458454366975174709210664008504341551723802458807125583838543023143178995752090958877535359274770178912681662196123514362145661995483376420524191965138288402329226132555423101586609805963353773580241447815229148711140320500532275605791191591962878395774187570302173699916158259476417550212167603202387737431592004204129724928033881836399673952885615715021364825277651498388093432424702635532123605754364315557014543940836961794041158569810875443733699872894347505066553982343817079599130672593433606433795814082163142706585325128073504910219001614098561067985905445997289552650639463373934540221018895519479175511335835633510203244564982875176018252331513929057056452062352915983681149523198286369895948539828211174879869095921844056985857604339542349308778136475368603393351798511425955817367769553791699502149152322234405432589420754298811193043277111731461946263619832340263304656604261913820945481925566631027705358744684399089919602844918772966310562163116006814914175440811718501504397921042368676360876261069396461722996978494493112958512486051824360114963690292297805954560735505351820549287609451182665110044010759051942006282572506358775744135393406643274598884923002335275916196480492910124633390789300543662565807172851179596878878805554869203343036202445121435947932860865467922622359585843022662204821512282148790561318280857171463245931514315208915812302279002512418381815491424191080068447226936279244315635330873395333747352036514444350828749185891609033455665869275951220272027215098180123256399604043739793807187703027122365832779041095132665245004884120304548361356027157916711759076433285460827107677743367146481621007811523195982400716520396377610482109435963698230346905148153922596597811393801789243710806985442358533787863239879751059007469109836494391282759850442368958929930767558231890196595444855767541839483442370593283191275092669316972858318585199922648487827833943770943377104381827974771429640001532492247566168119549404395642875627522407370767565506437475348042089513942593177621549442182253037366911866926662108172109472154712911562303237624320965526808209815429161283742287251641259003990147926447448962636230670537039674587329816710071712249443665492536281023657608643483697833458858159527374787023482625708868261404595229734743111547207005275799119304520085452662782362629395092388172635273543859734493426260587215259007951651225997320243723410303737032988685610698657354431218245618788683099141622915214825515660268341299492267093151841573023734598137820014805385707265842046386609342884208155612300754667709323751533790707365777335845934859743673890150424447780387045553785133499736233807582519664391995904385334200386110788682697648585973600882976703512097650536259261543131098888194601482330473988916548576743544042516528115871642988159282212312593612950181697074638996483897933533296138795544600689437555055162952852393498130782468883176990362342562175808604523917115442824935854120863155191601193990182307632856253380755889253398114198344787103143882698714248312400277713764973343124613341267724444160947566335817771628748483321400329016058005806309334287553349438928927706087836470225221556312045883160491669394245625027245878592536552249077096393067382720366942082097730615869683270391725102780819205969530172052263877568776937880454280861742232766624274449736062483445182944569438689150231790351660639823941488852222476936068143550753105967577392071037638737238991437572201338989044536574034408605314946487726981112391527275926269896191985870406620740096887170779384044389512094721668307089832067593433412232883466117175754132515627284919752660526794728776744723934820640954315794407309689871489746054000390387150115029847420732760313653461096450356442037078418206533341868490498713128353940968059244803664239983125939153396264867951486819178077587635028499011342971451199810246569576413107232509973486908029177451253216605469283594195169634305600315207820722492711830074433444934807626589350461059990681517024641578110719851898637264089658023525136960369857706516165469320326919291028131735247187477305252197833146667922301383424314724449043555276702677978540176831243858262724580270688836744951857984541354965849343386248618427024598905905927078750374199014277510112649865092104105957008144845992241382695015432897839911456546524458178629359381868526943801602021543703578960261775525345058850327241415039739971133435290040951470174008904938875938598157029561485725509448015303304175904613458105065867275085794258523078744854451235281562280545068920041474292221009824775621203286364891047071278687995464581423067340330408029648379547217961322407159445423482393713751519865998534674703922727127697131914844160109190893749079399881718317172121014221415035233945619417184288716314543032773757001062568656593993517643708753250966514919506745443638955044203629825508698753833582501167988771101194966501701131429883865953667325141579840709718785597535113922111680098219924197667383880098034252768014819764282097140761972160507459696471493365783038000582437525060964434412011456279569138497609004840290634570240428055019294939807609266144133060737357014173254677461451961523320366019602532906590332260785489802743013485724667552947273453983055342111693299239800001804584180908744822248922249291061234225500703658298372009943784096135372908466308212251908533012943503277639077645828793821660644946923599418152040057566128297829714199306001389849956800891305383426232946535965363826955703178944066666528943924955558135397565924432178745284888964989570016801149107385478667824761665655857292791005334690947266739573296232209782076917676237661760210008452686153124387478311539806922461139553046347111492862150172315838881214823042288564165042511957257502564102418208626816731698904044950471911212000091087534775003430278923757088625495242141462675549106326783429644336780426583938782283427559060876455872860905431194486200138882980741244269719733707835513453138954267052467549038062790064473540877581138169726619256904785505652267825968090246942756478353264694424027351729617786872135814654891954092375431553088759186722528804098540808643900414667947010592941262237836238356764743084264810951084340402501646350085986623519862066844690101739753250686041325943497679168849615174391150373017627027384319106989453431406199617616687096931707652007276085407338231344462520044776452221913767955489721806996317805119566251468275122321265543116306336924729389462224998607429278467241639012388386837955729005630814657773441096528962791861520443645457935414777868412871796302155412181670730725450116427069367569924318583068651483688157981599997054518513110103478073572095572729247125151108722881838362837219986893775990876397826634519269200177386498713551368438392245508011376700233860297989935254967661668011213098567832468199956167404632212236810947069594888123554375007237143694856417758576580721108368915861389615669385178455300342197426635226503551001557028492244171818201890582258612409569992447368354819433181667311341604026194736505252685478444095073676097828179535699160570103779141258334928852336319457947876558302905112396393629489011905517418584129465073193009771167456957522101505214281394870780301742441432733534252380767102157129388408544000414207543775331526561775887418002250728467766848446140140741746889828218160848194168557006569791791614148869460207412339114168620631683672627664945468799872428753140510526247199048881320968499268270023642416490839413770470339271917628811699091127919511838103208636888312049374516316505974597890604457677596161456515060531390395156572447077841041690294528748320751504633441688415441504147171302863938116842768820411602797367821558738970173852303989612010960904709377406885425012833919550457534365016611155475817733465766097828021411195401096977762555709716281948514654153202446498287044490511930795056584379371206352904418757507234037013529225270224217621086789456710886961843147508229220984806804262895998290503902358163329259565823282615093305148488302787699007059010284009873905636463369346660403017727680938620306574624411235593577973150430897849866602766293107172220086026676993849709357262023728255421050310662444136112290352013360431093028532753497681600051782487238763254105916630570716569559741628630941177009364517922858653395118788240672414031072669303394256758470833665932386766040867592875821840494602074410538686560187533658051283620460207659519849793021609589320515346701667546097036694737480689166559662253675736875696756762523149184483653095862367719699430284500314637540127660544575662911359785333071881197720604115410573087869068353068164668781676483260084387234904294035532327687038094157930007972371068239504335637208834004606725438290176083798100560470755097561339874861285738166939369431938027547561420792903488215446415946629109848150711961467837922859546689094160891755218826424591428261448767579649657151428160563814318905919639122521199083443270424638416694825417521933892104682165989689630650550176511678330037200353260396495091059982502367056360798740092043399640520762403003433135667285334597808237158435831567249743513380086613610890141553720008040611696669270595095132565370709232503471538343609127057376401608586572490529714337824006216095550036036204865498996309745063650420820658943108921863315823706294957635325451497664317461427733530706724709124283895194406731159314404051074951713272412715858814113284640981363498350632795887573576083230774920689883558660448016207143940756400009511787907622574665737724720461756292858934835811106493631933438782490688387675660743732065048494673014065357271814352678896048685946754436495868793413583918856339007186549254506021295221723118147159624565538256198778421710052923087584481816103343602926784104200862137433867126306390223444157314189258796070705489877149139112027568444114070065568576108502431326899550641214863763440913065041314658022081272543786747109116927492855308645233716135057566740961549810331071675136613826834413967329949486481303798154160345855430383761555465209791689547483858231687214869837312275519678581360824454819400139827827096486862491061244329379690249591304652705874108580276020448482114480900547359754057753645764446117501465356509770336430008260942559467149602544565764533008798030396446026418311039256402826590377613169496983129515453571026843524925062396259820210947642994484757850071740230195071066682274466930232048865364826753940990021206730980836488927460543622939220740196923945909407553115753947248228828262527537778414934270559153096067558684571648172989183030073842436668588938872392470203064521628958437408316810725924475645073642003375232271579649479535653524082831584867293823049340479397503227944302641514459931656209449471642288662273040230906388109652476614053587558663134001477585430734518851909435227161367624162559722119646865008261830320540873625821695752848644404486525190563365521965583916293774069062829678461060148913757053299311600040032308436512870648416471888780534816596373981316107032675812478776664415540635880265686087222458223471708836054019056372840237430071057361424393195670512763016178199236317939955610052395306215394282642979377718737888906882661286248322779495697235258758963217419726393165302921318098823529202491405644674159739765668548355304329883587392087058474762853698801921856840043479910279138440703059086156471647067875101726062909160521708012943097249637895870373648653040474618018298272032921793066621229117741328589902824234749696256441444669984758486976076685398871966445077634766985590184386273233094768381213331675695931953340493165960227278267715261287661147545979887005985514245096880607388452426129543701558817147176700880522447408284352482471076551477533421076126904171345649089502547720556382057886866314498256290462385229084918762547499162606808807250916783732647390571285871239228918830772618200229855256865012618910675827420120937805049771824280012688780115079372966931737828455397931336495590835102821837019299664684605651023241256489558243087026160563647238039954444124104077464896139010389711456506060903956891991954680918625344579216051653973583025751148101758811956742626744844556934060498617818332941671238838722435998380488421011886966010725047969508648906133533358064509816329993938943851331998252189232622204384382504889760922569428044910659006165924324634310954395402812447405881457405537777778238250373443215921313007368042487169405590138907677412378276771429035183112528213783324840580168436836564057433957650366979998954489264102298593298280828422964536890592344859242298174760763743141804863826055556984481327990863724750424548017960739926385871432767967479804751843932213164262560624392851194245580839017693893060498378015832321822878982148849243128746978387250669614822460299452034114636974570840321915509184439174181264413584563724974060678296862930356453265575087412703925938913344475110225928123359770817387862116602358600920746483027104666162488522615385133955099638581369726171827151911311245872281140258423863711694390917706695028391164203587885131770163865889868991909425675216846799947209117184967541694066655450648932382015856516519545211530715496292556352163947152369811002184585097351244357557695195197120081368768553212963834208754615504609847922144726108761770787209798255467659379622528682116490673423704826562842136598438145805294666046685477432473734784202911395276145853942812665742407655051962980767940903948610636196917478367010310452217047423070069696607004439477431803665530223511447356237560402318140802032086168805955353248353006504311654950696221445728782637667099037003613506702244902050284220964039549714644829540074018827320359061802789723018343434038869033642352012504997545554505162698022682424813229647633572637573040803028755760684761972399056851807126972329345234724199346090485090765569066593787557814395912011480526958923708256915320098366590682269071411264674166105869615369071154310949276377910548770337298990900343600728279484874683459664865685791862081066854996840955074596128790285528569616191809446086131366719978639405021349176980520239225655703178398070602651007962364481233575884873139017104422363176277354098088368566761247528667177297794634905324307768765269328577497258509437501791500432571374239647364747216836234242719455631609091289576562777936733821704842298038482509478802172220372721635767608596189310537977019961137117213843795985827056447088823657594953163757242819882457172170824593374067916563176056213043249894937114391833056765447139958241900684862957078692021346478643453213096660101081133924907954120289886171777616455552825072476167154543395861735979085028810411453646692992514415338321362110920735758428210963262594230940924815348212434956846562424509154214005404645614898475123496898197484103453508866898402987302643075617677180470976790096688652781037252029810438226491361705941526897839015296909167928188980931946408067153387342108226009485961912870485390494658278009375249351076190452197518723551821060096005399650180213325156803562308759897831958461721632091595770477967992441592309266747332890918020826795352597284989823369314446195282351504716001996705588387146261938999545034382967562864256415658385082666424555401324997160275102473440809453759126246029528190497918578676014254148701957326644879477482718214077853153681760711952570798969940802680572268219669634611896253058769313473863101350294598214839617829068768754810094211537529180489586648097796778260692196892590728979955956438452269971785145263642099064758194245686120818631730483077999475030703940020813774822006582241610160064101482004033621944870051921528421800524097779435731591617732256553427660861604781515255719108949900434503670898331437642136594907253143979062512239789465272139524235576644848992867647156370170302686294201456552467117337778162595567647771376167637050872988603920552308340696782300998441004738547950242034205014092458413190065128475117621828118578399562643672900664320731537138499472652832442427249788486857488822435882687031071350608254458355947909094839048767967094107441065051248981143869881911072739298570065758436096511721736941139969291653716293326939551645106794062611226414075096530748076551459599982269869115148456619805951477160571126923750434991498016612766255970367175375398274107709424690047582012111058625812076282392313741204130694114269523641679400318036979980303460499418402491689169142860734893689028219981702682301562024249614212964640866576031206882958549871060851394373940811882103849868268528534759517526496541210238429740687847015134692030830004496646193506794105808646941852046437386644321337023188705340908267606021738398643637513983251844987536369389863255503025003247457951354202436757637442494017474438956975278082348898212204987235912255761029269920274372053430713696139741341521337405631089520144270463138108944311095659842083279929461332455059798686232273962552438226030280867607251428668844204034677666241197763138853326514911156167285387551542680537967426798296744288024632048807934653846977014762801016603041512589948129830137547979067178614728037693063655028179769020020151711932702328906305918310545632171300538179716355854545228186844748076557232881370035861041700200887138514808310421013473593749629777402159284929185514805202398509311096203142601344188960363643691856882442396593397545926881123583423263447279355308491144600328729674861630817040234124632981221879163243395514364213029027893515253574812612270195660201108145261543683210310365026081505015453348001568751921187208280495317508726690453566756598277310264432261605502210573730239386968237276100347591211729454424401759635406203415540340561911801315556739435125514118381564265814771242469102017358753326807645136495042319883013982218505987772780457211304807926776965322511101258613372751509624166155877890839349260010977941043168297933661307709444491444237307501334512136109009146370331686140984890341595957248916443395036856243663602906298174522820614168135786086059746227368178608145603734195107576015426051429846543411835828725282611821449976392625344404379952787376297994518012251760479241920965925468652256746665533731514296416151934515618422327025305277794591919078247870678004225543610496138044993153626787611981381186070937281604527327813119272667332148739765031126370601216730728465677716294564151896199840162961032762617504185806698643575409198088282332579677912635741588732367591504977873979770326963247079362107903827805153480268171910043194845333846736437447368828185132898432787137551551479141573006285477412999876747889920955835485451534516201470948326777351377650509701745753614298005905132183160563566885359110665065511876166285170668222405682001238822372755783408651659537604278224667243785549906405104389938967249966785317528642120995761678076707111944741368003688688336202090721100594265642940919267667238463872489392815878987118633076751629430982844459866470546210354185941912441404165998801447497554726733609508807068602105974984519320273505087896053701392696623094610130935316191403036514175951832762158093557373587716835806422130485999461268590583733875954220767468706373178803672196192415077935399166656733824910803685005220260990277362395901563692791329140728303868907091254895404414657803447717302360717687519687393393451129286064447427512377453577541762957683249349700320126777123311319427221054729620675552181521730315338668014553460682016681866610415678611570210715604116072079314304292810943680320511776268581122172698347515796416308822317079965694600263992560140344426900239813919937014608612912437882872555998838029396952481076726950625123681095988003345852312905104065207577720956968952888811115581781722656826852328204413129409648774545156186359154915989377615103464248790371493750393133074957420865187594588321958407076234007137816836597691304383773602430851637443893587576659991661390432479598106835758872192377715643929381074943742191678241490546220405329747335040981697438353380344236624343251949642006380481733170804487660096384973548999738507607766091259330425223343690562595127277175942824633455090847358939746444754006443950130776557550675460719430626837658686201072517732515853003886109619618289922665984320408054135525914764699591281574672614218708122483873055512075805934287941610920245181474632752065583855038280531428038308891906206411379339041218069636786667993642455881472556755342325222359269789345274451956766908160269614226884281042134336356609843415820364887832912415181795551215510824058428294704867471645908479014131574250870073090708968039395365907623885565114647424551091544793396671714363084981658920765331824378939561681615590986000051505687210363237010720836877714882763397337154725804126954043647947678018783621047240072435653240565770350382696396107736030349923838281589253830102118708232335585755723082137783963349749973720328302608408388981921792641461628538705948569771740016993519422046766039077696517889360116957208642795252399639064496536024128290272057376249774220358308783081008315641305470289567426301232868015178556865789600175188499894450238960086706188000993972013138429073608195045461960930372165429072079303284060379130818163306583083935918621176807074268470985967570699578120966486433890953409576848377788598155206513500009582312874054297784658662447097583844230324667000308808601591265736707784974691359261582312101340467026689567749162889925955422346583677855993031410915091286241519631478232312970172684924973927989397912711214012940835077970694639526272768519777886292425724895161822842230911877528297886107181034799106321803284255083338804297944565721669511927801064387296493530842722970503554639432896532985809966689830713546356432227268677707102139499984999374987689147980072092419296757108949824792247790039045234247808698993399739162045388188103644206860412667966849731349262369035851080674664321704672264149068477890748501609320726203634003792105397075360744610961839122823892508750793318829564665628187223345460826450932464736868792341303826974336950147281071275671434772219690170700746876179224438175533221896038244815644880298447498389349387689769289946130078680016801858020729953457024658638253287020206976957326217426722682336932827890227728703613141013188428530031094627076599851381797994520929605890121273295124804379284876931520558271309992509841802502769204230237836551374808313237737218533488153379757488036422467966382258816950179717977276581980576325173597583326083828028559618753491847087447620561402611526844620095279521736042451392054775856715953777516244256119596740621708087010230571225973683691945572610168185988982381338310625620454705744362985553404385938651831062672943300742876959798234825816371924230361208893229074097411613017193361179988888993708517719761731973069352754164354834336904466169980331717383228390762936670027854552080100057065494585997010448807345693535190258891315057832319385413542391236003351541894206254967932265156456761711107012043834994716929023681337483472819849087679421911278120912571864209597368346051185156936386930408804854332625150524577766432916733671200900640247720735572801120874131714665252183978680608179941917463041828164386435120438599172300895283553424451932515463324718840424207058445135314169997220825203732588116918185488038578445731278619484112729519232198558955197180097471807303516950135001664726162495530152150814388370537988375827814647535326066474635373052869750772624967669425734527139175073188067094318700185626919611049021778260615662208435040029134709320566629453471339890517017201362430777038879841478875375913640550699416038386653404482132728838041874736492079210346082638968650678251730580229259579248137337603153689462452738437688105003210944360351606440802699545027252855095127262824689444399936717010137491326319908631051745609538389609882257840275235730413952329256938108944942820535979163340303833214970276568986528329873118918268535659284325209561100975858174666101742186563472785044912465470004934465383968773757903334943969446251042107655144233345250815295567900727834418029647302902150550263271194724621801483079291906552924253935801021485732368373453340600345602113541139314258249342040495808159646227463406957533044022425608706335752576310401911519305614496413105418923134811631469475928618241851792426086340249733884945927033255705336954578260250239981543617884396692760849931097393641188486213081221363117442343009773098311745974542703372194959880380667831750185539246761556456436444912301885388155417936849545132531616842794034164495407915843726031607239607142197469012108884490095032746021884590710373049250560535114284426950705571257283307892133837307463620141686408193392931845156554686454438270754941738256660422849617304233384242117094607261719224397033491380247005983930904781299723413714366134591014154218232500420139572606645879683706541579938835316303211457825901857780238079901170605866173210070439897642352803751864823475033551659193980476264084155013463670221000060233232256884120239098447953655483340504389624418316037801593121485358685568080360672924762769980868951999178682928025493963965813509397491449498667989370107633783798474308407296194502739472901941563511080940465335070527017723212437972052473303218957178477686556128005061407224971189615504957648374108968270535533040628308118209292035999098502324732906778008958588839330774400031349899650860140225053387954747434763123373585287123799155892267570476675913468951663251830848968383508092069898153279011744040043455455564201392124056190076587335026170546376061629421441819539738204590172574780793474304016386181156281377156679638776737848103406928141888250590086432030130844247218884184402937011873212739852884130229761460581158895287547277344460892340979346101439216194634355472211453736260120969303843481000754561973350829600185010407839083357201285034337604009744714319044742676643162620765036344929436047542852067854990771739049811920924746866609135507623815307924172530009679504468548403636521769598604891384984663031537625251133375552607756487594260303454841246762088089926907185967404652909775879814856548897004267331540308675911997432022871413655556190784502963668238686725244974238004254750464278005718424130961528504492575892236902857354286333132441786203953620230760125596717247135627441468377000373285632787219884943763273367406445892359832283446018541280810907727172211005584269190254914617465367463347422375274341237830366092623176818992743803366203825367651875236608575910417683436339210529200827273777056733887609116285459134725619709323572755848325856105781931659323050290930973780847700886814187929936077146999774954150365317786780651455402417112973520354971786373089588870240928347529851121955524767726478591676626412889408141560657863883826784808529773995499575303252944296336359025805393431547490312067624954261971523839975472775995435040696662117928163785774107878742112078813146764648392154064438063089055716835347973821823686685165726321078852770678152841894673017265877911671518095810386261725649564484834560995224488798061465902431227456882779280626273134523105680054955635945137126106106728386033757710427800648803787232594954785431383327011978779381398757082491955781231595410038598533306110552301552386016137849759108839653046181891743527389050590919667483008679248245185968004309970750139020826845026453675148196893877377447647139254931300074514974137592234740374121273302223550580264854472514981656430192794335747901543683540063570049150094484961929479023985093823259782933643646975292205473802718578202035648369644060425813794706322342022110530299662338169690325340026558158699888636676824867904124835473271883886768343901618230786557172148137300640644035205486092124452303072761290662843834401390645777279300452852810259430227801064491138800994737548111853280981347580080903564297118017760150040076864629514979503737539555559367542859540437503415117395434026765890099016929918448193050762263225483823624615721605656361439636958907677760629672694924938376068230943793935009334494327862858205302566426481153884245617084723302979477904061554425500722915272417663400140423628636544025380625649729533970653445826742445149479751102590271828445696673658197193276810269525393766762533765456865428797300567971520811293602582031072898740320269051654691729028495548876108063778095366959143918589097635525836266498845807970689686335745129087972598120599215495111754187051029285892517144240498278812670300273957804559780078555746941614720009148742625117419624221724824058131787610697912568955471698865598521590247321297638221228732988570697696321837626731139569526285187378028665679850493710998048577736046896488452806029186153844513139663417796651570373325459539355414707170799588900762142933527294324084821333496323461904415833463282656932779908431391195655503005845344879685796768229512669499459199527514211093268584102480981505837071288174751033805362802503149280577984785766147751250987445588510128384658341812826890790270948658631609972136064412237358617725977507129543246308186929232185851457154234206289020025649032818675327368650100455016812306715637321372312908084514191284651087250845458304965220549752509650680604512193517746277966674519006023430842212293951716081566781395303263570171950373608982460700327496478427944773776845885248440886060297690224680216806021110918102767298644437838616806191028115435026769092342190731413968100549637194735023645451142235463227067700852507662368602748762955576112483186863771235002158722988259566532397144961267608509819547705833321817372176447834438997234926186366173367418319088217655739090764324156259559304061974277396926905690050431814739403710084356924350445405831590130436120606100248941747431913169440351520248000612640756957880963336365396271658819714136528631703475037975048593044212602428471304136150387942501325988491399179418448618603066803930419475894292311962825658760508894606120905172807620152101005330206001320275887738132673107167134494862912188593407802107723175371990242558634189266214653095715575358990875795028036693995029026954555856899450510805915405161237502698058832723137815278062501080927155900864392719561665887411890540714831225318278119478199186491633368665689620941729605480770412403113790577153833154006445477847671971973089871762923485155064367596792294548799756037415950503505397320421479154892085903404484004861765213066631243201981202678757562997481898313700864070525631963715784100137670188906916172854977236193085772590749859614255642792264199375783311720750402059878848640704549141585392393815916403029780888234379113579573280653346587359971134872742167322866696084608436739291428755936470537334936953379876464390049998130038088589042325254883090509722586572672929106134777759490185360410864699521119679487078730989585967996253793835434400026158803511301100060517321443194775729821477469762697285107101580985957945168105486507041933327060804617595901328807505082827493660056915665009309500877950307549036820840184345490213376709649415693546527962372373033407514729165737201118805029416422498149487777924414288161391938594081016613460069022743260804298100918057479246371317766553374474434692187357440557367322171903255698999755073057371684767882416963378952475755961285360506860080129904970715175630964324045946093311184077540406643397914404721800746402687005690463833883553380754879120370917118263507080112053060047836486396728796988300748861950105680582951178133481799615522037431259400535720041960624552829525995185584188265612747262584745999534777981167039374368891725007906175667274402353914283349266415035159571657891728492614536088146231932612336281360385429568517308515448284970394932908043380182163664165888576395460630832895021118063225880775942651152142904602067687049474040569472069090146848881089364986247377790575079071242230707230427434916133895621756092540588491798169787051281280717486015222535215981507881494083489942131845198838749488308102733540049542884227964117967441138170450415328964581914675700819910705062983836472228180161416983373754268948370038448825677089783159072503695453669813159660129844334932019548667833419171998278384981571876366747506373870038590710094306120801503519406046611979247641399252904036308486304035624901846228475162822587898599612914032829584982539763920070369129143414733493280720802746861546946120196778921174381825149877667861332430318742624023209367563666500063918681838447207239017663370333360842955485013123082324828982210618639304233072997645353780492827242083106210766448998926032351014001010488900105289353602794062247082211864905855073877000935567358581842889027973150379340198677913331388254764307141412355203009251150939296656901478785245878003150485243643937696454201607378283530161401644700912577217455394170210826336937378140031696977552881280513310323284551312017785105986663782107907163777749509279109912361643457478149502136414428254253514545686999892249872583185334100677127186790607065822133602401150389330182447384883704373519358227106126199581512490526334642534740813636134576797481443127365975459429364020985373199234373052145733354972880419166226887772474824043529005310107156716463604467550472221835004793827093966157825340020925627733124984516325011467904297386915945229459114640331985376405773475116955844374171138201305143932578708286886797527611266080430074483748099509331541719819646240932222059713900151262442645394763626402658857553762382743262011902788195104395124005480659278740930704647628043080265802037063131420581954740529428509682131697528261359845365814146526375181355500244002209724375555295794204127959074331970825931714980576587059685856908403363992795869170365074975686010419589804147946030897484997363977716749217232400036905689444065402621518678276256049429837564514739614333822307293745596354349451274383928560348798770537262932627159106987621040954721467996263883375667002841025884490049885150719984532487846258417923990640114935528052562599564014867794302127072646407329096292299920234967504853268294846126162189514960763350908809124638670364699796842276215610770939270200770465121419028756394516626301176513772469827634040307954655449605485330383543963564138122894460183261240002930366662477004196276858342510679380383363145152666038835949742747068200075736416410898662511996723431468746920679000162990669240211265552205924630983055385433653335485514685558917645120116029492924511223894015481226350620346399248258006055064501991228309275552125757614655994345926166199570836371800326923204719898927263933308732959779970652962493982461339393737070822795460431731926987800736017203419760299412849052344631532109084218378834885915518634999699996385845705345493271596812101684634239484130214626763754278396118408116692638253113477777939016540320819473516636975565544424647255840581640643456822419302346966815287125830320656244549148116326082498424870863818207891359690768533886467722843915542519302833916749925130158420392486090780976256187252199210301899583470423006350115481340576839896366356138730026497953037323837364887414503112573336638827783286445261376091976732352538611366047592286508046114881299452043125515479096390175848337404860859432656301294266292648380288425971471438888575127795611757751048468073968163678104210000621759689202127049710294510184976389059960789875704930942865820505750134881140312612839017387151419806208376159931297703161882865941188194691099157926880038257038386718744656736739313162937040451386893213898745654819740378865554192092950642765007475845884076925406092304628314314831577728371137110382802279805310073854938935314397840344288828233607138231638921769094576340240133476249620033959706717679474266811931107540270011835294854118567787883196592203367512563192273428107269625268799758474545092440860656461128491401861095316445177097310999906283236684947812934208856662388506433050560451791557424241127186548983079731645151435277934883965618192341796543520830581335445339080712982523447841992291336514578421670602146308560174598691036863516758993170010264792379627995891169352422438699333950454871209351259528045839679867612560567424326501367366521171775143272465936967688326835132841682465119535636289430589799656367245606143217903936440867707459006631932753620167127011420834760331502107181277702131578631424963297429683439678802836727141996730789649660067267088586753086071044134603819513138268613442988166079687638919622306301114290456569928744674336612834717653471430050314579780380323644052593536582497877775924476716334792508226547551766560259598544201496474974250112118311657643982156098798472647825130565357406601471446850215926893125442177968464997806459051548121925726750395908449021860873348794919063157329279900617824913477711277470304850526503134474054258816034668925499505982215206156664086305648556704359058962630976866626020340754543992391709542241711183500740743195485049356824500630872146662115548925653212361339795954177346625515150573218998472472850586815197531876209253125559716765025181239888593183853176871880298283610808403458264700759410536303774667184442923572324961243077979618953829013103695964036746715374896477749302009864544059364709790875390673959740744005683834648287300237027219483447612872794894866407575920204868137321882376439037827899922206508663714814987214514885674383395303264940608658081048528032749865139127931934024348829780459220114949985398563228411001414289582112102444833691031213504354463705198562374800646546406661156466207178871459325937278134906592490110125166642575570160124004643870404664201611189036198116711148181657816154014861837465091671381478367102890890018576285413699054096072802035653651666161198594753226604055550785606551382452489018665474109966646351866543999992316331054281637961915417555985809033526344051017802240162888315322810415613157456958828043171084880163456418971001649471202547693346560504703177362253251413194533126662073525794096465043745969156263840482237806142149832408704257496447064679456825604467219770952335229596874322655417612176965827063341449242618707941990224123296713537740214895248171889647271073696095767630785124494375345489913585342975478720187653830598954262617897251816608095728073306180865997412298184605332240482217215904137273816467028162536666491959569947315714623334354923840065804671814679197598908871203125085316117224754042143129063018918768467796627431477946290448280455502249744858591470453975085108967309717830839157515926416337589111584416403995434231821785213805064024040100342268399854039403750335013361749842232593899577019373929182531284515527226932252375348517228635524362125881063793137911739822030436469762174706221507258820890573660607425961291045792528036867159665560872229239972341745004099366317000664364235952019635165220992877091498580108401334883372333838338425153123537468268809892924669789756750207637187166389570124273614928108970342008983656578004857368545598633556865393933330132607535507176719515641320153046515707522334302972614766234290061067289264518502027314905047558145411977937935712054530564999172686399446153434349179777008614054647166360903588321765863056103606028744457438521864989423518615592936915437602847457127677384311240289209971643000311674822150605755404044711046720720348032206350119668384842014092420997120502648874017450314487675454456999795429626201614308019075503355589068334697869047590344619636116567242417122968571360165085626537991556721262301979612662905964843116949522149880825283819144547363133567324497977098053832831690361175987832521429589601250032576276853579978804788562092086027255730810534237043008450310914038438375162763398476931717427815972669957467268360426479828829412096995518898022193963712793019596429282512109587503277542622259849766878629997580457993078379262034480915750177463004717920155262975184937915372051177318824373968954900903527025416581421282183631721770289637151911460373797705438829927148870830818151529328815622458616440715729394869991279533140636420627023108886443657686421722374103443171927848025988899663302377756806384019958613139608499381095509873252385303377841485352338829996203423560099997484140302120637481509549008489248708440094922978690299771323977086545888257982268487563463607106500751080775690377618154914625352723593447505649407954505718353942006266217193249574324152345938458999873513910409924768832374763614750673843849745498124136855855711261130370234952251715455171263533536870079419580652289985399395642922296984750462100723255557419170383101260048278711086270507082733381017291480489358626326944455953416939255138772089084835269229730772005079895890670736440517792836033163778029028065853517612062263628914077664745127402359478778855655111446853337772698683505388935000792610556375607321566276960072482816715796441982529542195678288047293012661931007396590824305079198260920889501210344442421741737764152196286864508013325187456482849603512990646762863897074559836017718440525946452468974892315735175510321562606960729273653949917714566859246557126824796025563798535305767965446218026029365202408788562710897394785052094332375019557884262707709629569946546228003891027658843083928251913651752030721930573790032809425866495843678064848009290660925322391740152414054588970664040825990472758763339819636788871596221871044728651946477371674121807811251611708644844056592158006853831815175662274731958175442820980167123161714082050314229910578101400985310082949354363601855476497369364724293188536070398266347740375212848683078512576371293820415719268264475392181561743204039815919227115114076895557701111936792875818243700791319636027338300581901427019737473530962824723096892235681640314954123566467011738168131472787431981443498929752552309322009563725025549559494764101720665930778861070072056959849799688354624591590404858770180420376469117540104082137853182417391291993802343344798254512539131925701201722554619943381505135142246849090279395861183623844261387147454509355443651286235167192038871297755370654072758079123190462603292201977434267073725079130904076284194806204988494774707272328605520112552240934741825658353362855402025888642554186180352055283819606722239035590428528293154377319233467526272343551671856528073127415222296455423032764808487297555292931824331926042460513990521949138434815754410170774600285078893881815588663158632121867614282296217241434636584268613234635322076618328420436018244929609932941169182709675748278338230685286318909272060699855990911114738776011162896339942833341515957023834316950775239325424878211420533595359458606976739910187727851816236232969200410360289580792789258141583820572445863198929249725380623824112969174748365618556297131104185672094945330156288439274749764678709176110966062827148672746862565104387944196442118451706848556857445803475782166304187970420257450323767752546850247163842581046614324757287362731090989013348061408636110775433701438633809505814731535062652958354871462353187191066470465097260111831166241313425280070161976655260219076123130392247220779131927613193955870900212428749355456637349564592817355447424746269879246631038828548449575104141747125441582248934641179284448239902002444271865697667058934106722658920739569312141735003059322725109625179392847126448640320994551634856455007526378683384947065402085581348445936896615476746364499746253593775421879805009082800010323553912792877391303847841827850648555427427063997549035735263802963232845273322152179257762795106059475005714835613190914654573420604877123395211589309590069752727007245645086683834409550030358210896206581981559702229127788342545786298145645673608658931474027565393345870624952121665321002117238478511286194841325389095671607814369653731919356146276581551178463466437034625526372641180378985880098945826486196597975216214100936647980621138982756756314693924640594315815283542770294323232851828259197899798254418441994843901187316591826708169909922550632079655738478788232996085014309656621745226834282819329853153063701968706304543452988655452656836722056614639803084182055385117372563464302589885572189010467848010845099984084150234436002536190855199702992940409264864165550496964966698329174008321480304710399462149737909092674761302123260271355105512082197018416475729176998442975793207897226025393818241868190800605632678720176734699037249684978818562338989899683497108486872437392258482867077766370477803943260272091954938929564383312050270551368349115037096417617176384525020035917648894177673142338389482011687067923942332346768125932078419073145040150962454535273951730236942646014039989318196724269193531034188516325098690675001870001212061237742389918335381025953213216699318185881039881576486263376930060265545640399693578602712649403020660117059764651557849939399211090435399387022515970668826112536302850270388515599072098362317949518763536854408644736983527112578631716963711068726784627259920921690911411605425164410803429804007925140623497911796670479182542574831222584285096184814573606256229854691867886776762975698909182815887017543075529810210221076974105906223636893860308972211275375659572462398676174224747271231182271295597811283038920739336853807750427512598893304132853475836159222279270512343266843689475057100191438069112321501229548948180850385059147068489259922110868767622406321097542895276083874825332995421729064281104684480985212686539750293308545744892802471779862372077000358912431676601587743773024079389293018297004765907685451459446881531894178626453994683996385239163811223172300087923201557959688152111870224832672477525851855871295771947516596435805763873301683491891718191975051117906701216298212191605663669550242798078765862832609421912101493959517362538082531212442051770387767163198083181769952881073711475506195808106070211151928939453546775093421868223328558620942936385121236723991118477770510807099610263574804632961796173128573388640705540741381967794938665754619491780277588938845178875588956783231458378763375411474128550881112893435142722321193815376940432422079886706153878232230455231640277057886164684448484490310236047640165715906026601832319992991765577827920077527141034065732653787273537745433275149440734848182646702719113767988699047645615126537755428495134322549259754213663600315319146682829371106799599149073292902779524279238503665018255296248811631876423430216032422511912998014873884697324033334243044707022049265251829542342149841002187018689594739210334710167588187603739823083355034487506764221164759106059296928746406090551557042724890602976121374814972452807141525747846778466201922502634269819374189239710781901704353292291737123050977970886031291617003065621682643887906771702942810497631654345814089699166952126816937577759671942936533744408504438844080424283543387510335769496554419490609442991585945005136723501083571526680990947321387223655527684914788202590662543089621873046072462641066327781321482107065035706162989946374037403638859975634839497811878389015887661633782631466018099600961995421638173377934780495026180503546547845234854291984804409742552965114279779092217418030885830304154005343889072326890158768048872141974790749716882095981700149889627979172815531806264278840898134975085603376400373117701409858660434856387444735285994414496876421699591333545120357101039091588821031312030860381719478883382178010787812665416428746093562518454056993981661469332480821393679310748488935221105213191733707790927755437044338996144310686208373963113287381204808264893324213935973379138849217563547188484609446428382346940249576575311473955875066363613450307185431117135484766773411500781782896448995953604427780705460913667504036277672467827708037447895262025443456465997126626369795925907658181607923560357884971467591433423460653756210734686169209860245935554968626219373109163184317461163806549344416282970389236276849780148807720060346178015293404312682025424201581866110487051558073468359860485139968696742459848600555486380127857710120204512684246397988518568104797241501848974754999492857360505665683534364948610611456912178029198857244514696648214320158605751598612366540692782757852188270815847798466010309093021122190314359890694848815964787121190900951354967907731566060994390002017883935299339691998605948461401765173888010595506643759744449891279484795455437356166273113752875040438619638356910386255489398443400590405646500604601008413027819691736330146387376598470730401045237168553821323230088873144675939875964036703511611785893253087979937642536859287909295145721547411263476633524660831665784337846921697255246281930117050304216955650296952823019458388686993628236495886296545410991280715555084658488435618024872458766353205656696538142501702514795981791509165104719799006415401848110782939183085619817720935763116402309598292586383410526135808404833455095291725258166399716250320885975347564149164935329263438848586392145517466552568626647977055555332720226928375607179998655382818499001428315826207731921527034933752858729719544491597183444923972846824268381485521308218921216597848188757236948238520715171740856074852459352668740051492442053450161018335664607156409442721946652119280801135635244106916926893951666669571639246004168495370713510807304992117403238887904126356362611820177336414540658676877426481356222447871407795964519880132121766438060816979521711045251910449106502650911094312933119700039874961316505626511640564477209082278616808669789403631728837191004119404952103164403300107388243243445889123685812565132715777522636013363169502826558057880716840854223557370145846468942930749425186102681774929410937683852439282330326371164859159201458235473944424379055541001458973934382291744913330440710376664067748407837763310837508329849357858580855113068595552485883735408922905813658699367513323234814100714781406407745297279216997513283005330237160075167667390179198799314116411884616752062824003182466034461770273961355856759148352226433103275715989134760239173059592967637250217046978007470192822705031558203064169713631699694221336476948033450787821976123826289420517614566339579810333965201867149689555204628414461397978357692175930192496770998819521721652348745007682758602813979690929837897154370498890604023902129184899840173309725193308645027996032850380955837196943003965533466429806284523660396875276403774206470107257992986205396246561628565214575314871950606450333509615795178737476388112173966785712455607063332290486459851740384368235450541189764283009416827178512238821816447033371545411566807967221957555046728616672825650003062019354981707232410020164354195684493389596327750828601635247624748194951307176548054073868887916039873986422383522336850290926377862852981583744667684669519900397592727216260433455657689553117217791763612515914339596603416461587166863109804053260488248616222689182636387023835729200444409448769592305379182576031146847646926723936779171674793978457060991180326536852364876798458085271448627470045269419363446528058176598002300826898678814763464894004447421616379677043536646969775673413352461924132984426792414737491398649531905767401970694631355587924725853874577615238475790822568920371623360181155063491077943316965492786078951779972168556292243843032340239188838616076341349708028308364179871466408218023184101417880346934667978930297220469103368319574192738694282667814050181856341203317858059206282385323180782897238111923401123984633298716754735695867657856600011092360501828184476199690224281611626579266783345384048227391979352241691598294098824028881586881170950142324821784551728461022926595639730287240235414547919522993411921684618734339896675950771631491098808781492261223242720420088617821609678865519580122788626356365536112963523853731882330807494155709068939285226798402262767803121598979272783988240056249831364010159558504002852024688034938535263262582134497111454145237204584724109601713522347348587494177892603639288448448231345505095397448993870202823274245013018174468569373471463760920110396751188237669775574281628762664632533183441036209088073543540032069243537777612613859303386181076684416017584569875067898546983500847274385378615679478473146324218804200370892655792608095131692297950672223177267588529376412388957253792707793834375817401921044913603616390683299038501129344130736504944953890830339179412271828973860180553513268710675832926213618818934566981411917100806543040587222442632940710546045653452492361617239642073948492203234750887196523212719773712577116899169101967353307601175712989430207749973974110591641763610930765706385593732667798556106030952939600608907306862608799143280437614983563715031483871855844040630832899719426123565810603039003767188590987058501954715322294080496867967885395366209346728541254015344990447171177967978274417121887834904678259592367067220944639791498169692434476625480514027533143484633787118683373688057886942967436330311820098193143857748845484144448020894687227603958626236752088678775187177324507130479184658414691431496048057954220877621116283892262968693361595029900678664285847056714193832233755834609830939468867177836579624845985054319243316291026775141655572409039246550318816800751381903594629902853780910943703595356385882986346228728882105584958896644537684167999247985001111190617661095721738485642891574919713666907518568255374448227481140547307103345011309986567697521341298434399351913602642811295191697085483812309670810562784399272670866350501851992705460870352426009385019487683968450920801696195652151619616813207272397883428794801735324533170550495674989099925011528237131232145278732960521598982752658245452892801560862837931788732587704777323521969451955154529554764516094787114481347151295222380153213285994523627262289979077980857530967192949203397137583059777658882543107361736791317480866293833918362996950145010278869754345360615843989723331686160294761417029454984952785176308476931444116228991485948106111686962039464863106243665608745943499143675130700335381733334531557707135179748231334990834552467541741919934630454453536594039300688071992564344503120374594218432859715583803267172141044701163266182556696310847650559648814030179574552625381501050260080375878309415840155390719279893560505400714511031332444725867572068181888812480476773540273897350540218726788512591478191351475059927870715823258321637214181161338404581694991613325641863760082570738592990184461313360691967848802924091858424690563954968310677843692029334386045777147912241565053448268889769031286063166104995415696968334215319128315793173077886514626128963633223422090914036350522101900582270152656950802781858102099453575344356366569166756447069720418472621271503373412371246913617464253622355461385979820221169184981919540648030967480823964293690285268309919208948925774202673128300685485644890426578235350127294158857827697729380450950469526330107082560224393185056648527564737800082314754210635423570444680482511017364171475000245673513131941111987367344480959006316352903974058760052388154582203282720286033589392984394871150348082465651252896334353250153543082593894382830719207691553578301269530719444220501278120646766191719034157317782950251015316979184907386894326417562376400646497666305275751664443409402726382502357407659328556395692591154125896950731856828306851981595025841027435727604676882087881364437406313960762888971041304126430351144150147639606582976107850608836699382814620990462901689232123908533592643457717747355831956881717989075848974502628830969890399854081019630275671610202576135176469000002817655152686911172212115064174469862101694168925313446340842734986704743926779933694880320179906004996696720983703529969044866429984362633083999322967293659123267527221033934429514074702364005247834795195991676845595216260338376597035611620363574791029732801256033850275197368091608086600638461385906387452498592905080424920913573194650969736316030218724994899578709328608044455081318790292004373674074726812063552959255209735871793675737071829500499226541133510682556572437222135044872602311841640729375802330156219646833130493330191567863836168472683625667461276423447886190637853196550327930150643087283374838683298033101558499942553481626633811367845375628518705721720842281725420908210568967228987760706282441927405604904884604783677280957989554357644460831104776380205853827799258045256944047563877410391236804135090498499653669636414654361857091820439686775160672882140404428275468653140226132446153034591544459186313441661851569432659318885932973809621780614217330314684371483868303842689395273324595084036882541794478965486932809998151732530372190210990278676964600082095830412573233276734260390520404197003431196767580235500924253392817158241108925827928958363252733168036594215625476673144771149114169312455425437179619153391121220582894672260227535265518484991550833591305548916511894560456396004394331306861430406869808754829681054536750344269906263455613933311660457217264905705396586089282808255893948515188514687641173840313066223273084535356733326293108894283437174837359167151619407946295348815655283602909510412427358204830473275044277923001671575112197297790139410032225149100805416731434210292784025039767544475153696906903821812597678095791714070511638952224836276826709814054217996007390062614683697974003990047483563313200869631589438950056359088331185942936132917420200632506581704461127340448361069546935673283629573163197607621685989500470061968199003334622642206900301474999523411638053489400790449663349681486318432638664253445335431879832007407073599042042804378971409783158359515666301315316190284683445128180751378869927268918902475209189285490386550286075210133660027698016858863388677193713536618621515177684970578459706983940300717337571320114443464196291694866311924742480655339698984640089104547410932895302928344659784919493718356025592436294639121012162972091640098807857066199117674370205918995096850303199915500205463714908889187743743837453242148198843607079268268704891365707949730244576665006315093099821482486437777584272877441402483727924722035427116699547017787755282828674078325691048860379206285197977518222234637628328111886164251100882141423740808270961386199393890922047798616555524229923308838366831915857334974678846866158905247542005144749642913415349815732137100866224196986757182698563754656760655228079654156177937394215293721750756436127911245357602089731060558266338852736920302414754554870386955076188544822069602002751022992811284323662066768669537467582810964161409924559134350952539632698918845811597727426802937706306648225710583355053218475652871126126580506794367590719050388861403164982780974105595568538974563674358547376534787052936784239678137785220801962334430995720452999243568599838505155922043008735269469300287723237977560458134180178640494404078597006658669537379396820002725655963223352649773897758328665925543685979220723936312598902515451930918069437389416847104730498347590855839837168518354709076683400857297061234186979121033935388379626296275423636087757829305616118917773588206084165612378721063457248338808276975337011380410014944267972469591304923294569418705564081767775280322572428616195397601637435720047868165336117070260949118079924313009886567196800360850220510437954443945771636250983741813296278521101545675386216323325643718316952681323670523440251773941591423957148505271882241773365899911772976717237492394860656497087086777534899675294773331337300895561248181595457357439043662254735985196633078683753034012998704082454887931097249133874891227654368653466775749245287886373287576406302079894517833129674893654324867792702721434267881912786443328331286904047216276128932985797054295477790260642519401080457349965075293092471938787008168401699504310665758419047174559649473469083731897469344020868105842703886229323084343822887425234118856048947674468614069119771661665630774385104828362327293765263787917537585876474795544689174798882976221580807761597734036089200930128746932250518346637783834056307814452620776747312023848852898985452272839067274486723243449224799961748305734243122323952750592303744370415868506716989077399159205441279087080417152047541896512352103197374558454900916379895608689390215787166542958367906292365446047627814362483656821334033666890456974980903708416892432901687730859209014447025845241881810988615101955276272267024797705871946916249282862392233512184506747110995302891177905246544709950783685250631297938935003819979669902753142369978069102257881152599553977577253532053058128908332757941835804809556100372125923896785694710493546082619532834754974889158013943018598684592906126704053379585963455528788479729220044860682666447871914417365138219684472260744602940441041881774627858893164911588616336164089235106618275633089446515320768317180146617427858251041424546090655435979460765713354999794271778819996714776585057125637211033881933087828358913627915865331874531576781375054674315521108926505829498475501789580673238236606208799579690327307741594911272716387440004563399266337878964446827113460804651568485743631595456352421101151102859355233453252692650615746891921996822410152554110268805430046300546273888659556288932284703445763481008033528881806564053948481811510665804921623384043683417205261696761831372846244855001655743460287469180296951559644880901070073068488489575565273049899308729982057031255002334401341883725938592936661724902754551181827066227325094991254192352556180581334837811813113395891624609880115343488435129495067817411749549794844350562018266534160031430568783334299671888720680353589820591168105154166059532704725605709862620260245306723733718894357267753688908504690722843097021335609458622885218007598052903452902522116835172107487725600822064401461832062043596330790856869525244181565441083535880600710484400456465753319084226789944167359898186580314942488554681771375463065874208569209985928448527206711438191136415428203529232195976523082099146862191477991310542071340516037336115910595204482486730475335006253984320460393410412510412749214559287453633740885052290001800063815758972158053961985451707012425414050573596122585760894448515390654595234782203710380006697270580774629748414865900422044625187232749894149833388252550202849597786691455317303532183672542511403500417622999088993399218374918741276768855859896367065646347785599751066638133692548605436867714937148054022413435822390087801287210183279292440872016964701383610437159668663325383315547822458153315332662692927484253673173308917891132984635488385917554212903325350296189709704729531663629715549034440154100684150949686842162844586391331567671206750198485072191571067522721999020856855627976129376275529102119770531695063702555048256156696392737569287682804926430922644956681946575651318921057641960375290503486302853485496757035163136258471821682219310896314583097239795456585752118156897965618624375725966836743673659169582836331758663935270303450690890190976688259190025208226417968191964209802077315038943193193816787165009015854687088445677614576409407845878261282156266924827725331801831755024436708255898705052217524040225020620644368466832219250203398179281166849637486087285992454677178619929033166985073266200564059308589219381810229905022518085137581224525159854163866625003871216903519074862700617395638165711113509772432810535744707784449365257509570670406429210197112629262713552762353965295027628110317235114859887780894946245555810682933594561752447015949337805902418368676846096170912854137210667967992698442488669755837950362880328505953834052045781621472965649597222342684039285443048641940702597923256699201076733152278423451051154340862340627661218521435836499420612611429993516509704119489284772947971876885010684162181663558242932095306062767436515772094629383360943109780840802813805100107815879227163680474787301460354505320802332114063419956169418139177080666424588283611288782504541558458547370253120981533361575294068677588272897493174518686870516683383227975433790914578160968941491463039362143001421492489326504982186304548925823300479335919835200577938579467227464260919867189854591851201297718497241768069434851915780860471427292174636051370686680442880374902277738029583532245613041523517035710461211949272169113830380048174011695021838628590759524702176105207305949787205554308248156421495459308418923426580832255292263956475926785108762432827046205315724534389176946621620203154025078361755975838603511049240002419654083435740292702782496326356384648394364623677900886295621302086960086749117901625294000267860070556281172152170021049571020146187491596053477424291639525117852059721413131469033282931416040689477989961483085495388548754904043251694637708425521323204531228843830577607175215662927702612053628363438050951273541214547901842903726437874859709641873944040487517809569718224682467548470223574442492443656697565949262401320853864303702653036807867327969640197176659850197927990556013037851430868352271549903168747019285061844584789926244608510977683841059511845924453690980909174300903929578191020372951826878138663600435173878786412522836225863791093872928805519207017250225569266612650804858494945607189728897358423582798895435174815405826760822382390770756457341893775593052587630792036876710091258704450512566937982883401883392531938050095545381188222679263509115689000437805451098642492891325635964109795263067575752120223915365501430312496126489159500423788767664621995446408406888787512937230779357660882951786872030852454103619760433701726565267803824357911794560892678514789500318500159632473961965914091502778382802261731657155944689631417268802030468066768136823498515448862622525093376466964424192809384685246832534674569348022367500228230097598542792073860928444061926032199483893684248302993009840939282855492299774676501632985063301175841653651592301339714101081719089296125799665567165666425715511136834046130245224665157625874426104355964506791474355399990660761871725536089406966515151911279790811933504461136707767970427288621022407054592974630553811857982398880326576753464942370037461574828073835281459259522501770728105898967501505048561292141361792266080684650715162748894370121954178847729203090461013041268362312740306803734155818116944205351576020520053659454400697539012960168137915077933326018393441130796757008212243071925632944276958846261961570327863763631391767566616849027879361878673249993835463714505765664989455700775473885888762282989277078428227166326399451451403140714479041395968550337590812263317329923218587654696201967567440427103976096628318532689596928371538542198795283929294530619362666676170102890282454419676161308504220132032999762757309423243573126063057564103468841041106158406191184429104059242838812947889123955598654928120079316282383272547563674861073123130476578365022105494348958052490980357253067324677487123829135041487536498301783783412034702862461394224919411561818647649771152855016046187701834214210691125605999343166490493355161312981932545110218172800146542013122547507952783551632785118406937594872500925080706965700618767440447684776614083634422135076150046263680561406759136048405634422753397083630837866500281817943526416910620460281647351257069797859071345755774936164481897662771949182815169251264885283282795780200833242572888354777590965852010812518546637484156044115457778355901947062288531382446933201614357099073248032944497887747102631261935323230458017649757045293808772099793099040472803955369137773255498595996627534460794617677199500772660037368081714729179898650211653588060947070996634722924997051375145837540677556632809980979331920810638501518844950819158200611937706219369822367276373110271150234150945834375184222599773878577109337721575285582684211820598511262096624888597823642273364436840717629291507579947627599504935711935266155170275647621191275601566349067982797197368004614458687854151317493349933589166252909563202793853584645398907588054854793499386404301816171370108011573933404910162806334279561232163419241219830644026519816467246453653761129638341052015569021436216487850390473093075753723754407600802664273736458127333981657325523642857378962757631131977210687696515576152474262701344735374644929494989238729728121799641397954829871256981295454147775918362144671643111254342801260853958774879228044086416028466868467974868849283524560275155571310162388313115553805229607787904583072480213842434692061589866612373669919668366094617617058702011759267393841374241541231578917279539096008061733793562466131683475368385717844430862165240865791885018518183279000835617469638783890221549816873445985650186335263192529737513758226136556104551163606041412546155675449431162709401209531718479202704631764533789995200456808558295877510577272607560180906124205184900516557342506243714379091944526108015781862939257922980677638710817440707073926174541042351538308228545117233174016871745935430017855937133442799066905578853260653255333998221364555408598181361685631584230207989812665317580795548179511476635343941270086801071359599386151606341457556137101468942887618244514501906930786751534642231573420821827953290649814827817826619297007489454379459977029677032463233215411585726191498927844669522136446484181474620056980303027360486022517607502414612212776497150129538290861128007743647823331784110033812064961465847705724324128179769225113069328056585260659127925265798356674357955963200443350487978707859517222474901777254075497973056382272054090598399743096487514354157720436294933409728138345678418357698914774983637539763944165882840626253860052928307750703185308148339329799417705579806507172036835082277059212674112599777023464798205332727730149415776595405430788184915746080874286212352963096131786974623247291503862508246822157567797477515444109552920207559634727896583079944423930901208652315763459421459130315226964494566345207972519922526091921685231350201972428832389408621745702370467330053300285224442365510023369282262106000552995372927154619662341634732643210763227947374179241218325347040887131837739273170651355970535781243901651357566701894051738526481059475272529105808206598330870398685254785160403254156982777199288698001326319371384854614137302508624615818806591763007497737776414663027120827187486636873067952755653052004321442797085749726163494466845399240682696020481227125484480895443605483155890594960135739599472958597743896798366946061126097681891463921962110564298180364801263649918607815362453827691339226781385838607772164069242418436306236787175690076363962499637012486767463871209314326124622219155541754147715529515437680447823467546680451601149968270919545978771406926353832019599854957496582709637500236457935243008686589002727004496111867853060411751225347037926856990718833746218857136710123615660608464277695149635654122223413704473760090051924424252899387476937758306981549458348894317011365288552637240797150842460048373002443564465209536331501541867227577618576363473834927564324793321279752529756601933192063253532167385253375252177470508089700050881647599938492608329764016425500159055532465293894519605853772348100106397611814436962502618420218450735540220773284590654864707487538507329909981175890099539834219985077393585540332351412683369487667850059463730160607746610353023041462411518977092843800211623022696949647976844277673167184209861247141028436124214447825843075378631387522241598520496320668621887567722628528154052823410517555009330670090622356946638311204925478283777595242563007543956117566887368358490060656403584526740268939907761347994845779102510323962319378210559422892312343631307521518476763510282003434791145042136158071075088762096102580487789613009231731398637576407815882913408190376017149584486658010647657467729070388060918428000754974213724535542775611609444708969628444929722146250798400725676540802564607845772291517308412568023500100510839760658500336189303840697840130182854812954545154464335004751877886126031027155310745547416752280199802075435528475560090403815649724214318819414683569399412644909246140589385507645480855350122805601336007719460150517523423856838775429995191870778045545891189057359630545278554374163124261645207807521029904728421561397877966803282702891230868358666235212976125592737218060380004535021586812419700506222807853666920485584879114911484356526490679834044761727162589212135671669524791299832010885743337156518997924134084961662286874636539103294720815161582261907896246824138329239061723747828269914603751829306787283714879499835088129401138672205223879574574813532368817022415354632161805966431648376352745792515705914058375515953180839210253251797086735339946292043405381383589350961903295325450722973689997304222076565983810798219828214310156636031216759642517190181667073157596736245577089211116427182149641506203401059500427489430339108348928293721276271880482919005130220150291334505046072548980998257038932734275527337683206471860996598303867239390048616737147768835694487413438200753016348729025075700118471524255598339243680272098337941540488642837762272232109930987819460615322994148075031917244107662017351079182750444156616596968941672006941109214112194595906738408332778959732533444364339609625685574890301107030876422583115019989184832890987657094322753565539519652258026864521343259800662702769919107976254441326806607011957580429705863673613325593369539682530914125039586195610011158343191280568181515852480235603367833238521859578006044210248501688360411582401122956286463262650623388404794154231116536409933430140400433343037878805116503488841480287932044835704817593676444764019731586815094582411543723785930933161369623381300450281467123421366357480865540109706395143912194411177502440534591389195168305215757885205866927134116557256180398242196189007398756042287671502230040421340967751054785498575042786751273480017385140297141038546390085713424848897847720606545849491199164308844073352637078882447800061413671454695046932056858469994234148569180655222733123229513261302052106918012466280717955844325702815751388009978074086518223184477637787244088722756681904834275427856016181713181903624489960258973219638119443720837464188664186527369593714491194246811994325222421816401773745770077630662532181282423434882584320171476764528181130774865634934677537202748296559856363466521279897602676218021199844687876713392210575880941641069446966135896833259610625736209140629346999140287158515156617471447292045911532341751252790231434052064462977042041603586767886110575622636658550712002294107494941116972818612126092256843373060644125573557316213470746080385479989206719239979510532522898676973092308630569301647007612852031429019320075265639754907239451842726376225335430115050776547878755607357750168344266399390009960964194570904389997690889049228104483244574087329389598335156717127996498006226297137838550488352874374902837112445256316183038641994647945962841951796454641263452167340451815510218991343844477132334439650525857049198766822597730747591576449363939840345572545646255918328135136429312880899969963790552733349313464446515259299987035838474620374778701101843550955340965267609424157503374368586720413933319466125159303554963191112287084168238156148078008258059704812376769011639641689944888723585667436484591024579043847012984598692568208329837250001883314061509819169715921545033995907050202061392789082855227791002360254426799338282318306163432937627754309496041621340648225480239834851890961203345386945681101263231816481252606104088423267510892490762619826488076368667647225580947596399961550650970101328048726846253739459282043882383780831598506476120961758385959186902830092601254681625474170338378724691397967382481163077029570356936671077426468661836444990775250885347925540975425311793781730366201642670322484068139888606759326774440997647359034257326416981469732661805501323459837658713124884494986058847324838275734996179524352052822108914934418673917077288826021913735077757011828537885513627235463472334628305941096883808981850663369655492169689084096328292032880455247579387869830784724161546903541919737414875207571882011587528025482847287321318605320453294478569774169723729344484417209987592910517618874070234268958810579111436236245541529580225289514787861421381488787737952863490265129125544197355593857238594980049482830229406539931466034669915329815788962125383274663013236523763256982338775853453991120410187329912223915864512050198295898680056822674954806998533694378445595842365720138890629218357899465487999232806209598713217704232953470400766307242302208277359040170128716507536645091272638808334859021337388565601946135081897485896110102945509637814315109646541167331840485728799534588845967211832623774310152843201996510245334562409400212433585473861664802902097807272604849469291118088438817182723897270391817445075201095529035578262577399015174660266377070933639583688358492744030640321730823700576107531116920354850825779951050232895558470016243499782620122808583193533318107885411200447843639243538839582811076484553251577498256961686997147907572937469879490084341103102794082589796033437429444799948253456445213745844151977022173006882560758962684496036828077449566861098388137566857145044739943669456477831513663778198443323318937130649534479245539277166818667952412034688622318353759619950121778063363698140925720589163616633525467708006224310504033535769748679270276844101505791384636253377491331372554733537182771676201957799947483027482178919851489969931166533792678989375449143341677103521693235019774492241613359561294077861483593381204181804093819044007941878101736123181521952426393778526647888049136334941429090663795735542088332554892454253349238857294729300763430373746523008197863979506160075235216793808772907932050628051362199809082928115807445411103609346070804455298064010364392765554049228010824784491757970942129649946368058063449905941347412795753176286759679289562878309554757800330451286491283375867382306466327324016740474427821495011589162040154778979798050850161035961914968505604148295379898138273837634141154939267027180443510232420592125123658995613967147491874743811371222792868439879309552608756568216779069927606224531030570037141141225518884069040924013602207061378643136817653556379601705731318752245583285443811357704279515490515813620607447014501618839395287293729602358137191701373713884335806588307841621415257001488180391586108087214675833948555786398199990731291405644046697558927215826370863365625050968801862170169310394081450632752162171104087072885113318475347773385722411426311404993738056587412894234784239195701503219798528952234440394801972454601467418887731853607467607123784375404500770593855582963070946855889714309436444823349806852545357643559409297738494281802392547946480098500567697415424340469843533856235680477646208688030503159144653523238885197210877115561918266911447753696151184575427332222619120447636619752760363575802740222527389983904049789008895153559565697490406272158914495417511176954734776175783967372713761227992418481052592874419066573898903300210247093205359029853573493971891205577375456437420813846181926379994155166205566778916054855014559376389136708496187821672652818221968516807510758730487481129889961194774272699570619381589970621649459128785245147341174177630368569464273666033148555828425498246204353141615815985802046088388102245186606620837752626396158972988774474236779453265457059345821197234629159173653337932226597326532501600441755934449140264286988312950187800724668339092927118294621335263402838444970591289973207591186831924753655752064095509423350040106945228353808133631034070925594825670374499654336775551601738846163830591230500472610091827709286631166264261645147419429239484238180779968392389016410812389597940836630290559425133037764823702112749830223321994374945221953326627197823188305646061326115806639827264624323022284796537719164254097485197987873663379214099198227384409401594781176328789088866233210491046286776989981261095966784419439897738436891305295550875667070181739451464982968601951644801230369834431716580579329209316573527602320940219446117235119324437063146457322087958992695899435341913785017371233626669086789965258611537386524043798576121282936573406720566602963582969695834482344344791486167770001811328748134982216171089091511991397968202752426110591736247232067980197954254530648954822837809088950500792286320677372579506328569930045695921331371749875422911453545595315373568595527626341642473380368489991285420221778923831598249039716797165004923097210774938551439530115285860589421837090032370839117565367498683765968683863030501023077354720132923565250866735228917278560003423510628058244568791150883498600465958238023907178658414462671582115509384347437872516237140675681189645322820743777714526885733814786546995183401255417305819651766412325365270484397877628567863535555077709029713387336746464647309741973140591025659518315863914374107840788795265840986394725535942552011733752347065506500233296728052267662656344605587914502175107079017373120677629176941940034859123636453973185346360530204317273474929333837729661849827697661454198052944380970345375220623030238489704904548125738368035949202665951031336144825539648667471462275519718120043404032660201980182971380654686744984293969390156205583571529483425263333521159534673897572080289217005572185455946094986918618374185091385134489077310920487126118028994847372634330354977351481059255730850400584225001824528187059438261720363134190979502116549124941317155572743273065019747230730947629504664944198838959947753776740610629349943860516053067648155888885247277046408534984786191129794710182514030211282358000709786461771177253037846843954639583334931265690607272085399527374226314349057913520818208622367824490476064264060054363576872257796472000998499018856867907210756989221467141809615128811057047465005031346068169879037570537386695909771063585875430678025885721013540880784106306809865296043978776845720148014870767535948281636544535925237947582658785503142002394663908867468698038928650008863281393461972072587073356220286382718864441509049782178197424175328777442991619442727545250585705018603516147645139937814825620005321904087063655053809095338979750331295930109155917873331155967903416830406349227497234716002312802279000415927196437425325969912563969655425514252185941822663336304395344194608911074084642216532158633658043350312400759942178709957478807222420100934210247215660096590626076634446909802805263716935275968808556562364339968488587497708177559973590560813330180204025178098861248165912167130038681152747675038058781636160706315869658038018789013111175419370735550902417363796632910087136614471176003257800096446649686003923809248768395690764514037335982759919302725910995108504582630359351671968672368966354858275258835845398038513184123867933946917658257852760518836616588749928133582710687003202796696530170547983047328418438952878773473024750406001344466962053273574916892595872223519876415844535893407385060283241717904218544810859684190309020626919451611418528227678942287948281565498823304298466496421142344362973402445504105950259219684887489115915617524848714399169819329797837730679767268553798310683548953395629495551454164363190838519873075643700537435803425974364055275933462120805958542860974648148027864635450668047322764951593984419689692298019751795434646567340701628027062424220192939708589805353099864452683758987093680805218603731702874472175438810651651104066817760031643287964920153819526705451016999143574483712500608094269221765382326989048380999838887125270142386301220602382623532441087141856866431657549699648271974850043226016480718979636201952364281076185995155904883738961107264374176702527270110771194628492201542465360497518232665248510924463630932194223886089240879745020262634641308513655413984466023854611899795125542747648828252587487709090528354886075326881720348491434747716127402328155152919218205513389904855649721360229137015642102550027150071150591167066580350505346873434666536435517097193587568171510341002477672467267833377821984947399769257241761223899521418145219543106797476111818994955672629597826335281034824111638891878561233545263582956292414824775676711804384950107915058830228264489488961813828571483713684488306154036213846801087298634645640795032560620833003971863203233710279919810898472162779719189117186373477440891277234692607129035500936341807856942659546487289011255362657983540581671114505724750563305686138702952547724064179084768007679434896075253033196602863887207776146084436770818998219795344212100611144523491503985541114382164897485733605879536146906233261024589546905736339522371299103730093572333043291256613380518054166128939504320074908793997074216663439838603909195082485442316452105575390918951721095094264681019368102737749582105886705334961055009194012684840492844682396016519661454364877404376620105366389469268182924787567240599056237031612802271423645646121774437752286414090005300509931080799420483555183443007424263179855937095057244376956090492203286614004176348939437390257237705259745769584961170933876478233674610267813124512833389966114182539875959274802173051003644130034400529930635640152534846594650933111889871860892763683817484300455965627692250615894113196866614817348426847083900549550226487622377198456787291598669231764461246223868232942030366971937355636626302084330497930284737567815451172109068680809848142363775983536463732736790638719825699822968163112189514620497975013625960736531991842224915120277005971098638264619756020835324513722257875379509588367286761946586651904182445973956685597893503606758055861492311738643843107053581726336494900629182905847920972090626558023229215548989347686032882925586371463625081181818043726416921860013327687600152198504597051588181207130712938700976542730461208132568698341767870739505293809965261853187333259380754826448770640977143161165739744934082982036864933086619456302601321763822336250392142612608968620357235419949125209938349356840300398186246012794876219250554475238022906904008268595536292409002786738268694928277250283121311523392007595507335390147039777351204461235352275201918666931587973392041760676101345658993371551823226476627382194024023881728899625502002584863518333882435111108738291626843646079391813128477614239513585899014421668098023611381047042988700399697719591602726736423391414289350053257145920613859952298181680601627686419795261166824641276647279996716103094164643800706439237545562592919666120892394562460155656877004792685433388100550749100549603295381452404929654718885366603250277011385129612914019859270474942703027447985275556922468193237917813310056363109098704441708946586092731489657899050859542465175261464735974651924343743952440555121035654343915099311210793585851824990588075923870743395907533966744988723827868931575839636337632061249620164350661757768361200281063579460087393682127444838408700984698665515875988533165484764030488510548847758178284778861241446630088453407455920019264234154912536776876081196630845603064810115631557236072998295881362674801866694492301203916197068578324061946732569521665544974546275377685008390142299357563221786135673010025883135885112558160267017660102747057427126023377317945247912573192971738486371146421860196175419457626021464333443774360422364086840740140628563151472456800757256465455100997366732830586845341952675078044789066655599418020786362103406462992182172457067941221522790715077324104655178442201284795466208527335877241501399244349819448015206376376981511107717942872696860748042234340207821597659371185683615450218336037410914486846872776097896554320657211318688544330858978565190629801882169757420346298851194868216641475588825228726294766999630626424615094279252540541641434663543747920686243274660426962881122230027411907116002179017615171000289720690542694952732713706175857768499983739967514475944996393259028742254102473745373618445529957278893464921517583381693567256621014187969950578483976144415013713105717889438951821165492011322290327529476362872758639306438430673416823854695599435941368680249784495298265749333187506482552784802750747704858506361338220672262092771331413081591454339728797407389977752632356142622747722044212044288137168731689378114794817200651001724545342760862758938153797489318489832849539231802490162596761811455952195761572075258814727387814144530214164553333111064045592111912887337333364632573601631556994562383874288677761058065714083712852116496418103484403843403222384624859976204758310391988637538850983673273463833053133123237526848590962876704501020570544304434525352237988426990777796841836092756912317920649864799807737092524616471733922402560785555889315456011647117086463437291982954848053185677277223805038848688769778240617368595445623690362667806627808552826372144231251610501814519940763824973966602864534441152764769739635852771541617876837147952155435626125111724437519605901424004625753115485881135549922901378574355780242054036110504174639391015201453025372184389787808504240047933969641715814803798710296923752332383106288895380962199713551600529391456669263483343154166027413778045308854444768927463272391419310776927168984754038814024355697563022846231288122419267405675278054349957886609932571579543995155367475558159560955082075272470294824640836640902407037378102670102745584088982965112883471896505666477007109830584359783375291465377081136731949101789450129061511202734810885781194687816105967067000036782667385198730025027425597704756329330785387951423471305738815212768802050632583654274678232584473520164601203547532103077642612875170128271709186907005489785343306160661314290533061843877649082759381974747517132264937575093327522677170063076570800488440998836240341304302289546281427588500720238312770584581184569446197138508286326428290487743059392656207167076369789693753373397850565423814417529426394090944066856793982536063231669235660003697097062953792642610904134895214231238504048674724110630499309409282353881374528335261899558301826900142042299611163061846185741834339408084556200775670546133144680579353447473810160803755808273760519274793177466621991955078854769578788637423617758071677065238425525948210207537345620173668495819964171005756356738740503230907028401420963302245904542140938263451420494584451750525636142249821498432977949047563505481438853663474960671688830804664877266356352928492331664292770676305706040606320827337934723144673728021914335787173783679960349655630854785049450786042175211206876392419126360565171487066881794866593739970282899618387454122113551992180692169484718805935504208771056861820142881870005217396783529364516697146177316014188034772181616011303222542931734338586396663967325378092192474970134584024318465662086508818277625100677965408996551607206518186662000269179853484013518051953177011343452988947981412778949114508849636809840244779197397351086381477271959248187165472363885768241719363525106530999801321338725636769820433127602013943190898547646527707864922269390446289248334076936523119848548588304171473970836129006457705936862033682443326615719488117613944043406897263962066258085276195490122799563009197490321897838624765733406167591107353823817573424892755234283087677280747780247998686279168298018410399030562209383910736144893423253885060751271724286783471394984695139142521271451592125516243121280777075681192974282217474196324763569080833141081589049223734214212064783948461136505725664019071319976269118757500749101846500807963909367595059961338222736646829592385159117307314490560793071877892837807805588688992747921003147284001719001945970108439148811487403430049810306007481986911234165406384351338495924555140558256333566255756299190820357354415525833815803671325574966932771276423641938615505666478440821673767954667373193694548166745654973261181612612043903858699185517008320242105407866973266370806560920263437745306240179683745187493775375281788573470250979624010224607127293105776326179799410141945729900787120741452165120132121553076325947232681673125211640754403478393247792063975106446358469027820318497357642443720692233088585761043632120162575381264663157604629251948850688257587627119731580153595005692703979389298118362843320758810770644142538431965754313315616812682152609401232085477096098548011289786934549486652135128923236135422526225442643713742312003461450068791010911515831915924491783956235027554920242535863096023069767189421606740077170067693860758876102351881071245858718919145621837750647335529882748510357907411474885754901346032216277420476258245781428470941801212307361300754165025206517152136170730173917369534766137068467484303419308525920964549979559948638714690458054509521090850937076833564572987761253185502990206180179156355565249838769734272691838927963117324807796001290575518500397766761968246262882635614502122665853530190626625086311883922659515837464549481512143870039894178743740131829636461797268664830584515433189890414877475340611192375834939651915382814597353647564986071641190188300294671611174627294865207121739040319854726461405048192769444386395783979572548839502752469578379013216310771136764595311571538928956071549282358901658767639764974416646575842305191501797706845635740859049270552607503587481432925880375418383736482178660693563615744351528569091918348588696590023790606167672530976153973759135414931876893749254757973973118435502512795357788659213679991960708833420012043950621579732858530149769937190238411497105600178043175619314797225540705669100091143887283942404047439972112410241422358812329918963251050622727212762040381379379250337556273330143526535886262601754396909395799021469873785777480323614011208674135371860990726894175863369537688448399232204890575395150623065016829902150796230873750349545480504781555698823555951278637553679711413844407379230842677032990771289625266661301336566161619828161132995555238734692120035332062467326957939177309767713458393748127824010689187301109494685822956584631798921523436443081731975370342688075810962551468123820034747906038488459981887202924595214011661330128572850122906122251944502645278377766192282333799729527006842690545244759229244517476634456581355096272004751254621953447257391890064057912562391351047081730349894342825677320499622901673970925958872500416253844650637677501452417179427304308630947713117287018373400556764698699707640235563354096258305316402597119190881730650525376774373188498521568622488694663432736501625370844068114342196549013875824497292218062930764655071316035127043124646707899797591789263459813926821395754753208279539011946207990192599168728124096880880030425746596135671019791179786569852791424299398248388335806059481245311747301104498034273305539175931212882134096862425527454104794008391225388637113702626920743078208883073127687964567217444321209061786817875957595867919716389580680661757315684316575280999993841485303576629535294921221784452934116409905040871282279245124243584316272907887784420712292695837092850763855797208108548779971564898126972229525642057893482575801416245640579572523498389745672771453925037901312866518298687334096047012779218263075198996221463799451800033905977400739865350481084375558884089721716452240764782076901465038926439595868737955159937950314835826076121553381187227939798690905072193711342168883748904261313120134159985195463198152502520009926245800176350825816689452209182465379959771115319770961285708487940430825190084108839660646365412456515491659556109158998815146357913043684396269784868841847850296170839636920937828299717926801348209887768897951196366088418959847088830096477037574042888475460984896033858382931513782591313425893971178596179276604312544103380395076876440366585809656086756956888830696898903592112259857878036372727761635493010577934596723538201035337494363666499995349135932064628164866410028334953266730204064614427306975446296425229578124835182953325193897613627875420640887192734357040942453251107595545937928547653585220341607512618511337350216631293746656453113618017792062388459131784269443520586819545084142948084657018256520845221374614966724552649756988549799639431854579644778599670273002227538350361977386677894049732862810627746672805163162737042572003493761894152327945442401650415465494656278220059098756044485324944370793160790006820667203984535160583175270017203325271418853236577691829388648595007902628884525343752339526498098768492418958955724883138436334363336493666858305186931507736243711546827959522807275893226492525587528361301138460420050435298122440491599549151895896369350550390864377708652683170187456050859354473964174047140802599109385544993900739738194831088287319300791001377824000675521151656149109661452110132626785857115743046658398816501690771744563579561800697342682435101308122172274367501764877031446653405542200529884138968721945760585682287998487653965004577136346755186626582887994717550969673317973764441448097107618164954319325753473219383236298626268708501049038418966720339397104433233510512116926576439130895961373189392575266887767796104523877536138042140185471665497509427917159608839038915686449941681012601023215033198937726959675580340939993197360076655190622794258672291757583638357662511444622974318082156464565081098921194996079388691487612094061238114592164450441208135645395244772207815106784125204257822924296636249955478837495659596649320352469903383157829249526688475781126971923434999445537932462602996615156815410494289692300384891252934171702997559714771758186155181310050412853353297294721796539288100843037110342581655298312087127828047578564847009940949869292568552063012835836117476794660048553982151490504120826096874318473278894537027875432283673201806178565825465442604231205585210700354096507757360960339596670489658133065948215416554442647714038669479280080806555714078977630098132838827421305563993110769845011287137574069839795452624980029096928892168947540345768466829446994728873730514728431286634684155172958013534541588154838461727146990215937999474424726704082667727561126659520749919698435763841812179689018881309233507684935537786375232486256883711048728206436391407457427282354349626417290087950295367743954003211260097881009767287646815222564643513416197715529783882941113049899402580302061299130543324705210672039423122902542433535352154120040304019790060578880234348728871278262030146315122301445579748966711583318279553596641697956506166850296245144023428906841638964254459508408299746630387953468749024763570388368535558773606552111897919088687509715550722842415794067318219822663415836358592789247921822836895233234851369454043520417799197922381014296976082859510743815004910491377941637437466550678174170777648512286893579681901978741420089540529539930754811429676373478611814641001089763261750498497991134786403637419619340959690821355717168984137850712668948372549134106704330926504806530336765033440262857094604307501931957795843149352682630088034829787839126840860031411290502899995089668345403381266713593251093894471642780939229293926229678925594962034180521391473170024129102659828575870908910131893659681882456228034105617794124421992425464142442715584425784939597144085237435007062039580427955653213654020139390003356983726813086653627503983131500240777091351529595570558251328207168146627565733674944184562419140404764480752697951387092032009771194508292155921717104430703425091492921243844802961725689605776573935061717317902118114185168250505688741988734072460879479472767114598726673248614366217082283640245919830212651900410635184797851066555137852904470645872340411975578765869542161261563685740445515984417049855933530814793750068472380621203965508050060075909981321463055115471440602362702250498551003965306368352669835899799002237330978761864470877277701058955508338925929778089032162564478678088748364413097038782178288252841230232328077654754668328862552820770343748237503623080922157978042119771510870620312415707690417689934452357270946491057969393597712282196680780303066924499758761313266126749903305542897342206099652820597377905553130293563518334045599476789058942665725892090072978872095344924616654978166429866039037737253516692692821594782572853464585919334699540442426894546977118084797299882645781063741575214982902007869857133510764645286813035176032052406184663325136071450827257028043120298337621001930857870315125712468250290717009424222311863722780884257172202782910028830773390862944960399938416952259094306070884278225027987296152772848733494627400375986711409942326566085716985584888771431584711601892349377624915001146962408830311249188040956283529746672033862420590941722649011097964452855174823658636749049626214211603403801575148668756481201243803960967074379000546589794317657210245510109793842851606490637725029912236273803894288391452258282317357006558137093095465544185449217054185886086708598483453317218466961627715736749811623831051770217931886750513153471024176539094327881781445758077929439948174277604023362536472243433510576116348773452890040565382438236096146186090092722670417651495748379487600362030916160619965013921559178993789649526586963202369844538737856543490970318152171287058356606510704274756360009081108613906905496619240409199409303125888689885533771579774390473200490840918655327718421285398180918025765040714534645718360224924902392569249742825894430159187034685966074857374176113578582900327257221127149715494725404861068237488441605375592232056481608195960012481502988329987056149410455504583595516893945649309736321755882440209838396545016926482590688613299244303789836211361934778750782117060564692078358772630849793175483774782185894769651383305782299335394429006385345042355779428891579341395300028936144383687916076259991244812869242312524529744857029514629294081896376625925859371318835557379963904716876621104705875993424074431882221697566025351351863345748097317803141662384476010847159440860100465362613242080405745242749164457572075376245522327452655742939910345912799743884239869739546098438649587779787955105837964502435284855634186893185500242109101680097901249761959749767616583486729655870810890174405425837702561088131039728137179635978875564187162552551159702085428977518376179333550055581357142683378297748338764807949516699388685451226306388328775635004355469977069162135172030550028667226785137574152044987793920997745159332281855507873315238039747572991262819864386429320917881662402103386715589742684927012221206275908414966676238435152108950192210126916639786711825632731943028833380346107452631640724139983820131622951825011913940349957027647531609413385480038110746506369830506741113826929570618202872227070795608055060944931577315447386173981701088241069627172285474742993540465299124636998745311699497469403585896709021465768189940226129224859160415682588750162767962442203797490691227377558046388280995977559126352888150043202663265459967541248316765705991327908242905803629599843253862719600451686961286845487855566601234943679389068894393292476058949424415247218378145084142019586174666424107263402540255248204145884286885139662542762855905852077391196364249187677338764165936065179912278823648397732643275873430535863605091174963673127115518469748720830098501313755555154073126995018386713423302897960907255501770625563089083508134795205480570573855534565273902698657794531513230788355958214450909589641610679524807940318225635755057603958187888663059006457468789634468019344649090771564120337952893006209805539184552070149902165513941335266056177385049785306052205046624109087106203410680466545456200673636939258002145223036527464205749571690764300808820346195134193052651031863534626942162842480637729410409879263592149056103833417023592906743545541183936250456020430307341477210301336791398322108173869446587782741703590111652289452315993979421699044006104316632184888391940452393777054939033128649693828012268915710357372609426218978369192257833459719571183489908340294978630685501119730163444719180308597613177864111125736791816635857137632626926719834706581742478136238675673402458127755693401317324995581434800393929223367842133035467410213691531196768867407878304263322106447964903894384167593573930935411141943063230782006798333522459549356539456541248207045121371070926474088632312023226193801188552638438541458264552776804124058713682041838713645984075440472947354080715351483871653407718620081994527693764841487475290594172904330163805312505352876671808765539968209031290716041539329359819949844530392378134389041763514182574037841316720646541859937061242050561956538805266107235223008064142520026240814086839623680156531548695782168905056203705344392547202544462559318534870512602658174673478760546501505976322141941925781492752214645653359123998679217518110880581188513145595509327132775720631756392418429930738083838071181925173364641353015932242319945121570658217142503919953327048114041021266948373618247663972061389099687094548997821781065747213288901019671555638266011710145772017127270628002672740743114704636647969272460413990820672424158101566672013732452094630319914887359067239949286934354873749273131832329387174786447724302372595298112919986269873403915244633514368918558424573569375697103074184460188698256882485802323150788843028960663164827759972911864524706012880631370010792396816011110403199232755075496157737203376882241583212496722971600633017437756554511871369595267870410280887192255790453833885948364477188526306947482357491770501692943136149385660489943715934922462137160341211044221236088445320499251082370518757317785067418693045166997722881219022225512128780525761130224838220272140608178745200920030791508603481598368839227286531246098905168896848597357332092647243493636409943626589079737251605027434867792798545415810286338832691769741146672898553506316644844262220304460270694004225055938523448323020280891184524297347072807941131441461651694290941409217114747260104399278513764861575853148334391803769907699410319219703439028124206394783359164268762114007042194035975107917767366987537800700908786222998963894435738416007606380379588139805493202088711832784671117924959272052212981655738666439248863840183088331081224350180890279281187751395183298347754264301430611217023111844365307738478045982828087143374290822508604168208706280390522912108413032054947181754573947266887942173662501179264333425398847433624070871048169281758340053354820697655859911566696584866118097732984880173410623568095252613600310512529773737059995926421743750892499274030667885061019539514215881434405657598860982854049713269945462659168536286351889051327975142639195591279757952493139547933647004025940244075255994430071254984973335069732074300001738043922236787744923356222815335092818756301589878564547358845080921985261679166417098124468312267634617441000388221857468856275192073921575394413364550990730871796766141864318705098992285241287873539698716304779829735779370438638856980679255739912852917605433948929421369383290706249262038042375026728442330568668308616720541927891837640970581838963803199189408528367662185907438614206915237247752731367733131126670610305431193887024404113829025926465406164265334932040636100170341192067076401738697492899985212486764008190683497722016331525485656918607556114182942617293484124620926685563226947253435212732210113424495332811729683118921878442436668838952874514028625008803057887097551612064576388481980174468780755299408786737747839229578400687078439009121449869479734194190697856235284945089385303957848790843426969357992835837699504727608943934813423135430848513510724799527321202746887520009449445811367502696942346040354030312823174075988591655502512783761720595889558210299259636685373445092457915238326303132241124660624454145172016665091110229325055058227831273612021034474490159763598242743081237805591158296121513293252127199522080324212347988935384910889849248087667916942439794359516519877325497712615258782587746692911022342804417272381993912707510396962194532157541294035426928012449391989905646258082683244975465172421851668617973190903016028615634013230329942472760798084499392722795893117658674728964066122737451525733164845820957118608164119743884389843897783058984309798732956005819160108197295867632758660151033742356360566403150396344873332376461754799792648409910306955101686725915628990882899478647263935531153022647744683164748556895897739998769953644131501541525465758227697673030635718734520534034908674464884069642717678483495489955025443677652496891042431680286493809083349796989547279882524384448578549341552780649874888746402682459234378539673951025193868070653621988095942552489209376397901147062205576610423792533542476057507934552814925748499529706153285695868645023027226641911740880535706745028822338887594869762966603433220735211043986898460220737625835831988029689669132190300364431855668493863973581834418551231945642056702749221293157107573446605217952382218830548719800476464591322769359760156437144715380792863157790851204327644785727318784882749780256357940047756665813151696841530992223084847673422114512339388147241867132576192999020167351687844241294879008957236216413898720612250247417710795850569422817887115723875000881620801527626551681550882887339798579955045065505169295899197615719036742040441037777308374828285133903750605373149989371156483407864710439636378169791523798244704298049498450093640014036871810303485905973339049530347497534355430701556180342188857027006143304801027089862045789635623622559485256653680017336160271538925083382537434778921723356434662199221714663583845433974574857921830920851336026593611092237502852752989565846577223620478156351675081255015299560845923640017987116385095304238954769708403376365671162221650260188411637195463458451256564548144199305697906527031491104299360875512512014959750626705713426359944324471174493211501604732102730450024108041427937955469621439732710030282576550821931538242132116910655693594561534263204338022999240968065360785155486537757528496464781697344881860511254672451604239198022129316836578960173901533254394235413586884532240744308257701035416373027185198865570333234657232045978354872004070903134411449803964214855264871158971738448204508761006018226946244870676440011606765332480229546501077518251816727227047238594964079967252242184023182284674514845207223623633708441578883695821121078309554094285639356271818177693196415475839634244810785076825078157977297095254036822784802673944328190749123187948800504332530924791005045405167285150660314709074928339218366208618125773749121829987517110979347155308670110356544650112954901981764941906399886452723839515730782389617564002978356813312552731730912562722264681702806951281715690760818493974882137352352376135462757061294287681201304375909587291401997783542308004269031453932489329948833662885855800197710064496255561870979740680522030036664561602228325987509509873422752058426753882522457655066513163280512406242446798370687939952879173678940589660437568042855466684996260673667598491504260578005482075024370235360898295813478902236929052966424019976932575956240016256606145652457700003551615999426947429928956364659351027032382510300116844299075094397411834636451370205704923321006706730053488152570369845696556313645128811145059416940042596761974705255936262700689649926032098687224297011022653142981666676599282611275018261132630801494982438688358528980564532354678225065856826278066103436044261527190474684231826162042335456645500445454350964002608939919067752677168526835907626013395280003242887021411207367021594785017645276025626258775285378229315368926811893131866873635403764807321100796986366414463893620091020877557536731924269968067279435135998466507573095070701338832484195851467446919098218046674957789306414346827545143148382883046207887590991482524335617745878533794051894239637761333858819157102618246278057489630057114638490731253404828517431138929804883684648443031179668446713732721680148935897726363131164186485193107084344269373431710042068287331586037709670114981441744600110249231270708673065210047898303656763128124161067008233078948873238242197589222573671313125913099138058076732592125413954137762371291169094712744185844323161331286595886679497527768598708463853847960097500548546715118202024251276118898741972922838367330641810560802751381326045554448565844783268153795673854332415139156035768878784444999782819242407928168677924583282418187306925322297772547683794466257220588213679148088485762650216617112536684427770248230246370326548670827462194624381317838935248544581764599743729948334051110484292848527042219054218526326735516060859358246061280389459093571044572539901038663829515969205797296289775985301476351052370102956164789811517046916817455313555104896642074128432909953879718122678348047559562721622006356727441049108344629414832029946932200032806988789195627761702081712178592398656824117123514241569785531233649581638220113745361271127803291797911083363109383947763847815097844110157763955362285751223138128092564595930588879705333755720656865257906891164199446738053156353628340361071794673380325145913981098631052435879885085255317219259133236230589949946772559826526372255977865540955685154427518852665795530582720981762625496831549850058925204603843027042750097010394273432289578730198612717782940635215048254355490680472667698649908647562890018316516367659729206449704226663615626789491585343188613691775930597200865036544649314877575950773887863904809616732709467286418445169996299620280186237911061169003828241430699466553409948631039674693013926873774953943252618784526086928509872570835757217151018613910777189109676792450523608433221779939410625797683590926828151608092956814085971449730282450714542619467683547577117208489164567257371253736492988537108292215574736164847007630175841257992985505853214530377617123881906487222246133133484651545526647309702999014107018651189882584331127660173855152038262969371091503647074119210158299958178035185175153972574786653841720788988683373898757570803343131765887962821346630121598989933948289586618453598893183643471175899893691656183617873996084661488190252925654563054935192447048951924484162940070563735480553967572495425536009777073045021315121868999698505100604267804886323922753470566308492714814683089554494752088757168934260287932033927603667603343218160010504901047165340261061569977249156381341214910570429161464333626084700102097434058823667784922655002778618083467428276697216299122790374152576466991401678948124389120119105121292776223559884221986332596955410467479749434111616535690639279339997509936062573988887764538730790297468748310212357541263321897789742164142027097788254110872866024473968232912034320016811223356818222980352409375828922248178264290476778403631538230613278855960623648365905863619376239886728516216077270126069521347225133605270688288606504064076413529731053405794706100409650568041461984955116762128179876258333631109941922114724061714655779764001863075913552607790829377672835319216568851181555953289717896984875507438215886333437341880972543636081202161208537517917280263894993572479158355075734650031586840967831527988905098676559809952966743607349478120015378897503401389381226069544369113864690395739050661635593438422700352830446423791990962052333873284417693738774840726603176860445019838501478333833431785412680256150593251323191213130254195109364713764441789925925993104433940999612933512785677411193294769861713675304640247258577253306438694406809269831156190061128351233468578915428395276284209293994792737034017858535784679189062841942245723741321515490549957406258249499928803612881812604850932210102866929562896658914668452616871981601773773664294498989310071139816016749218614335039232197077446572520567000276260160677265258395930170593741552426768053218297147820846494587530689916803236172984955165768358938320671573913778710724843707638060678294344222481966333651756728900336591035038227708151811254196830627786846822215245374445057504389694873633245696494777108983037146566439331474069275937909412037434215789593703094782426568146655745212334979116901298445593862269339800659248218996772234264425841946498203109832178446072970751651258187736638542794227787388004102303119151214956640408966184102058029483195137110182582139198750625973816449778656151037276829733496720538000580077773371028123758328819850872633065657826163394329594675366241199828667584103624859267280421257738177930372345296998803871025266551722537760484780225418710576752381261535897683229423039504590738261667096786151952964996427169886091142017850233377901332831160707651034621890666689421235906225936250879878736211017044829326424104474509479577100800343412758654982237284409010122810655622150198086036257121068880975318459234577184304335912930437004742882072885265422656049071195144514351012538423189765010860342028267501869710522963990612358292452553071550493784361170826908704737236756887480086723620470062689280005677033294020877090134597049592226522284803160612531156309913093249098781079360759387393368852259431097243928678767246230235265822173448507914208084814617736767660257925813077839820806961205331162236511959987791958292518361992425472433898393761497144545619974202086234752102815926377167466471288220812278229637393968110610890169336480462226958580503693112130431281264444684613787622368614658672267978518165517309314511465998822840626791958418585659541426353298479249789569510026028422193381002932520183643912348613839358896867014418786508492280577220581216660630662577646239631215205574006781100325158525076403247577010388232375712925478032197846055274264956555540081830247862373654049666116397506889401774318134601847296886233900811244300708487846039109458311475470598215502706097342673083539291874985831758422431290828633805263002089965401048810099874815189704715282903266400686915712843008959122199030635576782732593520363715697864803019372017725917926988081364992467664382403831091629405445999030786230176100445602966780101433972012418638638133425670383308413204404029689295449814903357066295092499622688384685153527242704422694716683156362802842296174924234993279718985032512777266667649073370800730118249115403344609589697033325452436925614994886779816483593718657416576197821161802198908575831207229856830803256431408592310995512804561018492213471698999163015436270787722614499819660337938435147185385346421802959839989848757357857885308226772778929421609988025941233355601129670374586128778223984488667097035874514457592344649957625130766421130920503762548919796001903262469193831864885607061758475135665048683890421999225692455679728182734129766531758732739534758675303870472274463694996756936098460376844711721220825984261363877746675987089108965571451341306507943349088360774402097162807669446995844948284076522650368560155559310755864708587357417838397872033915733493567303837546290256698158791435701445006524693148726332698795105069027729260915212118095000223872694884917921668172990431348530325364868978733272350146361574896373200061969879423406467841011675584310215541973268606574669714302928229473556888464931065075806609652403116620813767736170226421011805015597413615900183731265726904075904104770114655746274237701832399631485079178446999230268873720601725840596209075704904657431810177887899072255988333811573829344885622203750234572457144955894389421242569938034933727977193969769870803893522190765062452228222424339919072985636168761202110693214204824939760136565102160977807568650583036988339811744909467166552599904475595890481334804537920887575020000093652092083689731418213325896070570383970279066746315589914163766989586094172872087783933153055310158383152883369512092609881137574835613775880184370453927126562843219994238823423153131877145086921626004093820097469422431622835654377691648095255319129874919400595599218845328146230324796398868975610531955109035969138079814833452765244401903396982276680940399323596960412290036291228007768212497828050336026503495939634216646469169425913375340558365860547164967751437258027900477925765465603712330639253317854591249769677590544904323589045449504357005804367152845573505274090796605921439052613878472893354062192204534115673170789158797357957535241525660396200444661504083108268620017252530319656621843957926778909394450524815619626163374923668678120853351695075974661421625125443053634408742105949272886230502487864376941010792721072087457572841242496705794622332760608346831231431899602058201153668744215270435826922406713504893768920075930207619390306727731937074268530923094240085431511427262363233996411286345303743127167912297140411742334483930916379894932691843527148302217481167821179993025868809286290125219824539974239781998626738188331360664835139064591416992672966423058070301917259083511717205844476927144368806509944882490299513738178508121656678417949589355560256607672826757197384295577720521175717259074394940949284580958674691537196526405606868276996042347469724963968101738303535177534260697521900903979063107843347781204866795072825107205207064771989036105317985810860490552492306776022417302555712432100403476127902577637352471269099269935561418402152889735667296537768832830077814356862181826136634356202869731208933280746383299657499396053369927237799769162405813349974396829994926702644155060723615332427684488820369827778265559953648250444960071310086423024825565340169386726441465800511449570867756805792553223098936383542400578763482301901535631879950807927610063192526232712518781208383760792876013125752077507529267272996767670701239460447838928901361879045007395257300515384166779466060037594123364557177446629482899649256854739012273589998603642210269666803812899332277212859476312871348664053494764905292466965490446875872813016264870489024837640256383191909027496679239953173681200794003769597977187902221182900618060659448019510497849154910958259938683265081884712939579242520972970507167987482894643119093025274184321583831867939395277632249413760943968649911706990380357754122695289643782618984412225688981485141560196533350578916348467374749864351890436723885433683712890662986535486374516118735750130346494338499231220187966244571497064416158767962435037899965063266430015931285741183572130211487941281588672717011866977510704017799886629569934496324872353209805295111188509476386209831121663633736592262990062545604808121169038042509111728045889365893194063653799684839052678509594421058305888162743729699282792753421709864270343219722701262019368975708140337776547990534466343053069092791422840525435464166857878758007976651382021455410569653214192084167802074351793536536365199544215943222799012052947881035787442335067322661504698093800719781391176945615677789697289635669396938221632971202286202743442425056530438249879033744932628263326378506652235704897615049656494378953962067988473428179267646597386717178387310897291059533710313015546400380141329711135964306471418143100464387917668951140521899798657907339975356695320575199573548866752178312802512221829138915791911180653581399898816655485049128823586646953286021938503178055301514775632360704000211068907817412787765156210911363423130976123536863885554867399857989264088040416878316677011584014709896781497359429786005424871316271243989322545043783227207896778969527561192040837712092547299581982432916287863236185686120263473338869337773452372258863092108675426345945646406368052524447204375719496930147431449465246075759299047683154633050500254921232715535207863848321920706905260278806013441020538461044617545851672667660469946757906171284899897029271706408857662421335744623330452480001781249334745668218702012786503311052326383876097695459657736987567161393228006159059951977836868343404957199841600520174233681832670485165047028947711531946433803878494947810816159783049799230989286539961727807773092769312745614618193629591652101129935960052510491364952713735358968927849161736274217134889691902790838076366711837974813512671655632486752821862774223859806976487860246147671588825980657407808381530680150994379472372805085085016448354452860089386454611582986757308545129236013352013362143093772395511691027864117719145224946369004681936257871747028993230275555973775413694153426972341334143117176668568998873385988099296497316451303232283982390466459038407581824461067300673862509621718636236677332827964871882231478441701694396877881213426807375549162322709718834508836512822470886041855252046299891884094179016648375543520969855250557491123975451559283006622170292536023451253567139026840656104570505914487102337492694151307366323540438972868709654412632644085139327258017837262173290645586004776502332669759331837762936049552730806180120302619626527827574642009041520455581802373352781932783809850241607947036024696675498878292258934675303097360109084649007906722921695397852325503350335152988557566289600394454174747610179548480318982146943494582938682893329393314963560134378912831598127440281727353475553643056729433164221365817333612329489159131903965119448983880412503824256417896284760975273172332561810390645256970490847055598690051542148342852022753030498287350739993330536403113583192647283819291414007268436029663721317562552618425469293320795235619580173425790432330147047894895639946720943757531938905309858115951838261649045866063511874306145531881748984815908604012610475558060986321822273743741540743658597879280278617948681605208481380543550765007653774538952196438117510201880911711168153446919775194898705520294156093596145964101638713011971572447663245971619014410863251090085274453773996288088708378475021256996726471137381340972185690955273582786645515288110761243391204841728074493629871788687844503125111613856729261565605974200047737586562680369500954788755700006362087127808224233827696500354265108535712504393108678568763290629237929196695637088620027675883021863153821919725957773988835209965467874462258021940668785517163895222483298944807091599902019286098172909952536434586746146564304195136385294816402253929661453173788978271594615698295438275211228199607463562158526131796556252899382899977141985268306632190720743133449646908017285273536120361400337571104167938841424387385502908560121534127193193328050234450193609660155044563591394851654494689101563844379576954516688245624075017833091458120852671997445442586680166369953136508232722276793811451969412777442908592233342850039647071949264756653526514172921633152117229010897799472116961907823616576852045053197864275799499403639245438031418570742682191462300010860646308865620493810820151468139950170848932824044328664185756285680740713259581133983785503308384358979703043442436477234373099905341486503640675443490566039293672226210588780822656654252514260824135688678184684422402245424701913092872667801811093399808542419897226767092833058743795972243782272957060325367085586685658488001430785076408190233501302513540156837856669336510629278092821071356084413516785279626147672090448479200732714398034057397908419484158788853076215296112020356464874651237152234061906790746147492629321263881208125389451776945695684755287466231320651537572541218714448175065750745637018124153750053827437836571133950925905100688472397120029999094840883171535277579198911937892840588449348863669208824807943735487023549659680152983295320532884586717277236123779232729723732907935573876366936664489293149742392212203560951220378004356574393473713423709923407629744664686734516470825358327871142861801482771767607818882278171464726579591925131868646428750500735416188920500368362252977949988326725569460087194543293600059802360124752243083513283374018005861579207366369474562200484798298710406457733311260461814103578733735399351578962826295150894841623095686644096802704895411824849322012010529085358386645361049024595764718357491975164327478634987604828074501925319223514856277339303188329803593069353488967683392365364638081516265926100812510792676769114465154479002710230376109786028307924329246923703267278120429873837496730805055873739154182111040126334513701192692342966463204246004227146181786661353268594053798827528489914777870112962407258073887562623272429048336871955911211835779812628128756044908726569148509484493183847160233949333485522242758081332046040864396334711206074733112604201179007319687239155930534260984925076964562495768855966383457263997409227112535139475495056604266904043425644258171813993599003674454587239470358249705638202664864795782054306543924923013267868097075673728279022428605713961305494993380962362600058737256955241886911854940986537318844525801326558978780176441660013220827390735708069633760152229245179213351572515094531029959384769623201082946863010555997794510940782689201867951475304710969439996948103592930670992330369045733251907035243632459419435251653114265534260869992807072123755334732515938701895899401956301234610656246438380605772896655679257944331665002405373178534133371409445135877421127574468663607965434724222159407050955246776218049540850622612791542007273811883614545484407879540798163394059169064491034320717738081893412949321690445007772224595385204648274342162261075127263060371753043805154390572487654308026456675637798786249821410804761618000644993555388675444528999271908488038266186970828281050683711768633465886105565812702892435247776201333835942971240751356369998737136999224800103970424850536005387531334267053919838284458773217737549959340741855439976135490991437681644866396576746853535387670124072232290675425990096828990554198991065895406352340089265002448781648780686418678584844810604319541104631461148949633788512977904440349032545325438348987571040494193964078516315833653317665870530821303823564634389312709641711252015537928100143857282865002171867899267395760967387582006341484520033693230979254250928666589958347554681406313390299981194274623823590860572285526695603507222950109142592037255428379340251989069252928927903006045576998694998973997520343269554537254370604832577487247878534364180734436374643648677378721251854600218772018013727069354677652872374863357538495278978964149562104695079138248017051353920900450379825678154242507830195806533661405476770228884267844461468692992432332163884667194788512788826216751832077147325547506842250980739335252470151293818449938476167994928977214033144963245440859061292433909073677348432210433023026932593027268686826835412476255812904580970750033980180603606199319342895333160971549557125155733157584917634586108235116001613108753912612014763998743469346194360258636087438823419483860618140317209507815214126186532628758376779784299429265332896904488234626910640306888085984126805883993986048261630422181958115820336520687028635167610606052117546803298033345114662145952678062027171298282132156505658627417377506880432013931386203265647213428764890618435619124437647816261884943760345324038060877661844874878802210762133461461226500476223705252421969260751621432768291125824807004086617300197416454006505241605001999773671109071927582685435586536658728321909321849416077158877466401520449105338829415959758274213601164835484698945819770695137047333944769875192736009908196627182543911641454281460202177785511195783630092431542388068244142387316157064671816608294596879828429225676809100713448092977602253548581100964202282515180199391774076705230154598379242846499770796671715412181161196441361320517543514611610238312443852156230923265276217815865369886849091554341784705720349564422074572774072322345879807624563537984147299596257591339531346781053904111718398527122260059919957104359716813215524840497275467819142041699548389561841855889035100690192207800170661007697482708003518458408927966728581226147147073015290357698071972150537366835583326438530996222075781834327688975242046400431305417002472651814565835724381904711958341008991915525831709328318819773423201187175988172290402667029061857654297047069274409403224004568116619243733787871550930640791059632062684425061012999523626798656476472103175527298629430422044734902575222424548860072670838177093939285766070788400745081939091145105273371994585356311934513143661532671192635338937776151436032710052958710223317494857807573711672380620203438140247047026715491735843590978424720442105740227316942152451118027924018325532812420903078858858216407650978988552751618239007338371357033178523851764388865800760168741556486306499155952720614490598166713288645475868682289686453453479750419835981560099872795121338835394396069399222159607088541827089648286209630131543583932404725895751787490246093650080477057989213712588023445457908683766328261441188503171336091944742269715863779755822493726360451959946868370136804773715305761726105722869505930880992707636212165401894951997421391288779515834723236263011458701665517385142504736847206050328861522769454932108889550083967510605453812397705248339887817402234777182937359959995373597509508202882524711374128500365028557637083324942364483921540386287965730349034874194624995012634105268305222793105819047002391567324247432284250244355458731039224272664268252550988110185178500927816108420975185477631266160771242149885787830371544240280289843211417115077326427365454529471670291725706974951209120763490974762847645820487558714514892549670060635672527307757768539728223390482568229286241767192953958725701565538764494125078446903274120524228384835618879237304449996573128007700586710085919130595402026273495095055990638747185247791435031199692595785967624191467264649553596730674003801513287320186032573632966398776835298631352493610414187336765193783353527485293325833107664483344508571094600429364935938461716716633576728798218940575761921580349912303381342783208620004686985825012823579323389499449820394278579353311766427066907080042868626325640316139065058855715294438296618783371886259168916081139109326283714193648107401667081541417015133376894489670074065448550826480512940589902364177199609138439019990548694692260117904924058840357865129577337064984251456844462338343634131035195086832190692274725468723658206355467068243868067293721124391096739470945960524381099725780386736939728675952526291273011152041151940691216136033922841112574218293577325260617799662255607885042807311008441555145802675623624694105054749759967489711507513545093661857243999360943609342016165229426487606853235729638295993123643049778921790088136093800448149143944043250364830290101478981304226535682948150350977358104397890761464925715427965876609598391028064388193728771105772565626981580944823529874602430360884507068095029476559898715798369694435105065270923415092109708617276316771604999424899609902074090367970757154426142136150233378384692953844864786819412946561040267520981009159195149267705989772574552857990179382541606265927843840878009724471765830945563955533633156295243939778712556676501468668411836119133684429118283901926703251962121711412749046986260897721588731133982899527980486069574515214663160650944251563529722696058815054548239881360190426695844848756308408101267090727609084989394988633190671396810145098515771815610742231043048941379291672280937030728207306200835230796457014766022096214017351612855959159521967354207071848059451469857219279413957806196195137031894639332394741672236024395025316835352847173565488810531312227814018325415735663998164520788571098215555973724722319728125474807576422729165422479108028906614349252886035982261564708248133297196089615346329778507641956105135009593147853588420691090754196498352807410984175150311219373765744125378387052542455907669689724222083282955331472630197898383675030798909859827323969060187145902563714816328269497699123945683551754772943813302892702826490591895355575741129741228481598422950631023919976997576777530523180974514755927379795191161453965335019134222631323832808245416230502544044112211992203002650052115325545312530169068977937915371597549318254933253408821663834731221907831535566739583336718765708466173203104869549794624478035042608437585472332055583128135368153258978572473354478936756062185125814626372437792856380747732968362875188288577700113849513399104415723207252132678798209852345216171565175783383534518137291903009271087218856767239386189200677623023690764884420805144265943004717335034331878572681134089404325246511258912965368683504076740734318491978589768206371393010576219807106765069479166586581705041259098827370026969636332358684966455658654367584728569947617552548930158739773579364761885162891647172466126860486239850843685363818096063515339779740602066631739709098892442378073126373733737236401224003774186892841376871509968468284482783092585208182734689684279712665888273053007487332782501239149848307861069530275672056311452557902661511318502729953092813282821998345478723152484796312265284523591361608614709741737506136499545631268981095987019422570374610981173362805500976468932373038743121880354869131932519267021642592365873892859175000186548094509605772370303171687232054659025004532427631786929085960124279713745994478969048021469865542417777011398428412369198974659921076545831955638556180438445744851925095391932354471664788508834713160550925922398023502311093452746809440700033582182444688558425413588607033428783302225951136533972986248840702335368191973150436106354741061673394130178935936019348351555365116549990965913228639660153213508975142284547064712459694904794804451614493572636607341628359171951923033067139979637376614545434501951225283456761793601686281243036026448453229597660437724961697660900553157871875120976151103309178563977095589624289955310750658353030748243837473727816808453018530919589716042056205152925202590857326233224906856481173419785796843028884830035553129534917263708997727938357518252269912696578219694565278160814199335640012653312930622442459541900821674606218903717441855836098027673738091439932443507449600197579128821915839293135620609117690260386718576944058612948632625887766181975755950558409137053274593475331442185557264939066696439913168641598932593055080498742136274131606907699171760071288364128054765415667374026324346186014120172913476678200337146906351231026187110240998909621660428994337393839654131130535883470378830583554293897211437904838388223104179582542033589463625237185984625091793183208026682695364213531959845581029883839463919589621628282246875996177122636915387933149758500059892706297355173333489206661354925690135619563854847041415717856795463941264939937063873328231484623719491237099397479957830787947571394019219719322699102240794850149604889525525303909471607960145509031840200751267995358758463619641020122824427283822003541007763192488645851703989238199031677080009571705464312751029445145072372325809920033730374995947516766976167663411590055652313876384184895145993837284306717696143309726485199540596235886785900814583866109383242022892254003956994865780467555356904846551834826980757026303805072320018706928472642958731640045004291320277420770590429968395783502241615701159360930650965468848644836300511394485262843641493976661257154500154214199889269206000534123285975075379000904312627252147341601468335692159983789077117135910226820148335200350650714426027268170733279165252607486179657573018321690224747462978955158430156722552238235799387481668255356796379278689884125610305604246325505110883934842828079776326159839389324687187982469872891957116381763829049558753372516707446001461353589294616132761647416261141287362225329508059341215903333144953933877850433882645622887157990735971655036215224935632276089550242895309262687220342829636866386145460037073164212306445697080639955254211282374758834210244218261374302576656834084496148857905674417353878022900835910275583816302080321876520926521597222059362269703962559618739890096612003439264737926723804150598337445988709357787394698667084970860656854179513334266880400955417657298564539924265216318042922805316624249788202963258106847117722244330541255001102999004204226834658156716111151758129547297509241220196648856389983709201351254086982823256935127637239531948534176572102462469513811732920281826982953346371669010174230366850792563840188036042616458595767379291767702480834192270087307507032933944718316233580083052011871371200602515349028317731555407587155686891461871793610437243213717523103915836181704445401973780706471897329117971748936249788514825398840285356551978239742491172051556814157138446541960325007271458870397765776798863470269074632278628733114637236309663440404608538593775722277832894117990914970405014980469995443222379539438524735772843522216801826136229050991633005949259208740809020562057143946188179687011169608759877387463425897703633420201478169418645770507275639130767871941719502036270512811488475435595789944106965991433510913908894858453045680514390577701302611547110450867461519437770095639044405890718924416422591330660992958216240995729437458373355837047870095531405087630961427467605292008440037349500160447657673157882954820637450259532837573556617457074307039442246203505134415619288461315241394407803585554668239231062217487730726822171824272323317765238339202019220680825610940710084388436082178524346196650481889061590372243415445478736438484718999353807251488596489549915214767621745152737718921202298409929037900750955029789008791428242296819092161003730495102691945678050664327581610160747034892817132443514145170005937451622061894542232195772767518395646302619627433447396212116648718843771753125941227646861330136952843026119333140906745736651092078857460413624818997393612086274264564425496444843304222630534290710387715687838896782313925689514162834471462846833794863343930871429249438706554075184735570015815706602186133609230644077920618845411041269049382930243913859065054479189142934746736927748044425887910897142123354258369130180808014958517693923508296287055926806698401515994339376719831112641474264922525277892064235102866326575745187809708506866953936709916681050307072849925933138517620857085138563522716151979915344302909682300628126814992346443883444682933104516246948789775366604884913151620073555017870143790986011302846889119105086950577673739853285918455910447198817289658826198520282473004947890239750746684049109549787544130978077419208046079893428651943977703372892208683252048757997195017615296562172143698843994269866232656630442156118753932134616696598995748785433164453905626278836553384937677046007650067156223878342995541020911837255334935057288685372001123392142961179819276518123165519532427437648778189924404576467005388339308983973853709016202383125004975853739708923017466206149397587564649555113748299838298441645162571602537225233587915477866334814214143993477490197976553979178242197205404004394624450353717405299026941474231665879145329890387976634567936553354194813073770954718047242174013152549048148485774666680072511303323163456076788134495018989752435949269440620062297383562761477645558454181551826743845105681543936292004706422953990298909438353916856264475566675712365239000611132202020503719978834175138914246905722651717703616736478251121521644004127884278476786245972334938419404719567405241838714954087550828971487339802895612596158591077335894343348312730730615667596534466615878806092682386765425809909094229513231667814214225102676951105830723766796541583586424961679586235331349302864262694767435591991247434391946235981094169208586540844399145842646704282546535058597286823434899372886646494463294063589767403031847660654993219288712687848682288837245625522698833105800634823221471305955232966098910558262666117316121089132629694109825210115576014190268110096984804150345654072973080724914611201065211575634687782248447348951234630789497544205540002449315972496735224850158641758496136581695447682196421267320515884071123850691631638459321447928373734345540250486582475381406337053930139763885612207255935290400670511755169309918264074035437122692974302188685556868329954620713621241728585162658066559382156546321401295817190450571259374319902885082878918992045341057487391285106052773939780311878263543654596076957646299442265760302644108962596015565420749228602238977092722523710263121597387265678580101399869453906821431966719872711354725937140565605786925238399455944030260605770793357522331564284828444147718911413262820168807305373871637298982902724221525386415023132049491946590036043826279323761628188880229634230794614201805381249538633298388548577237468886600789162951792248000230678029288788809886351664733691868429760920574070973898169143751347857004051996675120258412248152965808293364805707410726541022777069586331788832224082468450889182322308592072659783684141348680134542810816812587704494378406963929322419485800985462081090488039111098908335576106383051814610118494883242119742959245396013311568345297138553729967084920338788034053653086326123077838742658461129086002167588541981929125306391822780097004345941396716044061643972178273038310336937921511451427366598366951814152619174256305147114929536671356803818161513945252305732240156937770274879343091014694440341973730545546265491980947005048960558369366119353513283095464833045678706281941649570428670764407574501135419315923584916831995819094272400835895768615305011800074491996691548760733801792310527700082064090738405885856774711519551331926302393736788308708607479405316796682756991135490552400644572074625909969533458527386185198070099734625269332214999267233528698168314032403874268187766638658693148876357774147795884898442997382915921683997162178282900883296740332541557622631584679277902837340783932236724755668137794434907952035435142500436940883330187250219833163054291242886615290273797296487500122359457403900064124035657641604316649573931157196949721891338298341188539335900993843350124830831215021061746796493088627644974608197225260941269788263562814010119850179572633794304999717798491272224072002593718847953485483984840188086986996228246164158191691908264149283452601279547184348791951654866072440227599969179432350111835458197261597551222117889887114189883168585774325023611008864445823890026052984158399885013423380316465194859170019295618547635480159852470677408886908235969291065708556229261984029487447243831709830190360119556787485892455926919027486448284464134821883456425991954288634988673413061409407558146996470986321066305620274119659353247620602982871180666629422431817519471048745551735566868239432516592925331857640025311801743536877894906437782437357624190680646904278598919131507157274752196594585372413950019516884785619387020284864820370934305423602202862398667631308963411206393488085004464211191997388756466816631268501804810216320149387886152255392007122830003797758700321028599552888773401517637078313939499264045503169253297922340621867449138111332044758330974674968838856568604506647699866650901660323061603227697822755892928868806849735096042043763610027177255516529037785815331981061458828029234349223213177651344609523563740043223894725627349839048212690507890639844245651909655690829775384435713387639343051608360998404696478211231061111542449316525779833851989268417006286476988887211002003004077974259721781667929246726622488072832192225064435068986153824777035397723640300826974840962292549317755777085779866815091531607641225264286140276096404243726568471327916636057391968315675223944376056454181941365269504622171408525524633387522679812552074304243004270018018448063118382006868999333150083296223095220138166934163665051351795011452946087082717826493940138044780961857375168621779407402460105668612427765576174131783632485264514060516904686754788241085557672763921794455352423549878818098431000594954510132009776869615407521249493625104831160330185068119316812024285083507098282528817468781639146571220161454524256249965316428644782760585550407762098865890515531066112509922309571953059564447267608330392296488152457935241342032104401864271426746746933328947103863133259970940796158911561142961503720368017107893494618671973727178298653623472125093056631455752187206250243086490057518074472107478340872296286751683019704891791534104924416482341510248805052651435437953230889757122337559057657720846240256757911211746734190723590194039146553754403988618610490889937172141092869423188125702798453794298873009362161943212675849432275920455716034328626207348732654955239023202830677781461712149592548703391112090882017700932374771074596986452224159127634264400098613691657764418927575482824594688792693460006773590643905511975283244323017497500035714110234300815546777187919962494955108740772398659316094406544893305280070638415850754947590235958320805576505910788005244133583505981025233352384885982047570382171597524599791264442345595283786241613088702659479919531585009009570088492395143241916351607662852571032484147829618525706620776816664949421565051500230512011539957160441915453739151072700370940253089551790405865033569182215339160625708476433542268006838892649884855400909900650130119977703758757653642535661389550850350336461564574459381041449107494161561551921909307035647018254229875691757093468427804903368409891922443538824323925091033170344064924328425363393201634995815264624402455769759413810157295271933793257941493423247492874306755827790972599271685619428382454416142664612448418780199323867677037425040176575858908594090656240294369662543661437071782681503491801993813620262888530722335317619545230404649619165219979846087194000027316781167588318852992627600321816350525490678045303736797669066132086452921597583638919043470870095089707982380839192462907042063886227588577714962682783240556550480380723045894975732380630373709799405942185234352665123444920507444630131400130354454555113215887721305463010546568034937957801959078052984202215823516690374679810700894189019433585569845684584777084604380913818454870264067103089487556982541806179769652075339295947572712431889628426091982345336913269318488998858047797588734313019476264210803585180754492467247611951017498764023801424712951744410996220595716815373470468475174740856268310174001478113421403775998408601442630022395920073547029187200103283856589514979906860872169093937426930886668542510361270601693339984336783387169289586733662840429353300308690540130211152004362493598164607217466975840808965687971031294388001010591907656190848917363427421644638884848828057227267881874770736951931423125676203097314126664810676556885962764770292553134339033937343940359806757209397027382776345371288731128617869254371791561957036623647780577749780472389047269760278716775237274924469594238328903920146575450390621938340632758531958617113622698238366679249287465758714190491492239961800750282597732265784937325686208464015107606398282645476588454743075974318533069511767233745047417734479338702143980284774879313275496777680755060833298723562372839099180313873459411364680339858024571048494372589422991539882899396454670646111293036601751739669935161137158344626765718598769573533570921991567462202848914982196465723104736700106828765710459321206229935851995523121283717650837612680624168909628136327914202356281209785232816934139922150018614454413911629946419407039391567177343688556786716664189675985780243971572858327767500087891124400380644036995611730314417806983337360289599268875491727872318871994752748257709800996328098471465197944927766910891767496741135251447609993054238731150043780860622376250288420139211857207041776337278691811904477596754344669418558450136280616345846118616870632317916264347647080911529774518735979266730926408380259958795689504327639725290553409659286367768178415664083407230749837615050349955289435572868310900173879225010956754066221925528055685396584689530377001661655529215135535379325547718756978407078950340517916906289853614775703049659424237137695300754216823461908752872162246026866487090893765786932196030285512285533353379211323702326374910145989446689145321408945927565285047322347753887137856372556676742924730919017877460765689393220983258401670768167531931522593613053988377990717117229567169683805948817516520383816606573225307689785098391685118079404940311347912412807777679717931373582195249747621409524205049360293827126142569396721746373149176572433655732852294517654422293017690550185348682833746770208604261787728885801029940511349721412059962559754728904331413991743727013271495088356540713278492916173171350261520557603711501668375862137011297093231069647113681832356745995752179514753581152264976656199587831610659520290240913075268907075655642992289485402107028341823098568763265168022884470143849195654933154433654229409727941835025878175497575725275414813508999970054092747012490244865026506254981472498070801709200473305059104583561960759265814959630111742764799449787805868132451284283317629624500893937250189319641957081837247997733737238432495224589899882863876731877054206174095264267628225117549743920177148482892454351979115624532013743208279951044446638402538799805561942535594294132381846396749156595856697645893027456642098098306095383813776028355594261421472011634318699642803962907216437870376553643067910944165462487070873159212196080965939515493619128606063008810533921837305765240057247919044726595956375935051933770460270923169318635577156509795537131070967393135086387104487042366176469407821933202691335479342034086190100154323326230069833768301867396432763126654045610894372819541521454429339716193394736259604139697508176854249022832406475290549637768250000851275679166233720239263303970306169320493514244327316798027502681440965108777947849827767039863828839431801496503644469607865799563444889020314693188789860020122757898209104911674770727631485924545752194963676592397722127510523498954424096168372880666104036563898391748632929578568908735922896873807039635938302267196641637194183823336916164605203580426193858541207000201718841391199925652572351084293856294316627033332116286312485398805363589396782004234361964771214477533921280471967851600718023803426449646368205319739657208483055091436035399924144447492520340457030900852074650996261211790647834942514086503270292234975726876091871315685148665737778755292848850662455803538695264916722495214427377342953915332468307367041333620641498645026227495164192060282426667436080847040706354955183571935523098014543085322745302513825030904888449884539145403934256383423040497322197233475767646349186035838075989180109306504328144887731975696360361940629583685800382066461072667226858956295270080817715706349276261700438309243533648207331630374433078517728970769937324708109221039962527818349056604796474297273148113652257952476695335591054090373971434438772211348309999588625258525980037304144103309019451098728392380828269888492505391423194509723871166905743883330039392709462979416349761856610547862911478259647085531176560453763062374381752512315594948428577219279467012509011948669759600618652164517415279446271566694217730421582490695459599682622140778185402624219144369438971581828075519024810340505862874655683882949575361364431217788072614275772294362529110744080828797710265925417193218047513244226563226984753709637392694893134603112269919558661326088724236113646195140243446296975035565077564464869398720695784826867646591079353690652905533999000861313443839707051625805228501621391416120731625198074334893111191703015541464277325027146192853953157253740113141314174516769340538552834122454813536949626423885870630871612751467480011161265472360742083381011730005294809908243884271997533437003382892352899233015296469025259954313721765505435332446790428510253798613637558969972348058908083733222038615798966901202404837450169832704840680043998376773770150867185017815261355290667520108504206888944593465031120862839959822744809210196715748708075493391807767968816714831088240640620452288813852456883164258794571854558258048678094992616258402395046359997267408201749056791539955390955399008831401854090391533280022163228929961404247815271000984762442554517961641325391635183262492742262269007105858869816338481623970578119493118529614243785240601806807028741994628286018308445214136633782681423206468435649439715134703813212083546789144353335637065123083833272186239793067226883728829692803895144003449918829894916823088769940179440688644792540998355787904067965695608318572015640168013097283848798708930981765530344957399356599901197155466488420967482761744097630633383301241728310004508846165378389273672238496709222788995018298369552019655058116704481344360671348032499312229113243856434496485764940351092036555014983919128136792289756379055679260388742711831623801193900838293099861955151777378151252165969984116778468302556398564552340978600853168688419062383259709512666740692463936210616801742249366028723398748530003587733128643246284697032732070089070486468039684846472473986755734776148128115480072383398382344101708073388912411606869336716563498314405438929563641352489937676773890625422320599251624511276731740686726386983376554934179581061288809884169338538667512540105350023132404603465588728172955269062898556180178112580414506294100251936871847738716169526050110402210241298823541039933620203066082257879458346605548097077226367076159487401831950496895620516822122140875396102752961103463125196155607803140913067520151345069751534178650203476461156609534675438308384505301908749437438918021493353872960638522641431760521057629745096500140801559452488698767531364580378449979735298377287273520920722893874962211180787372511510261166778320419642740055228547935826279164466836595390750080044015533372704622766961745432655953701900636824985146002013084979570417290271338547195191548530230109443003326859185177599399725936926886511843776513420742771173672097446192305572481900767071362880904154628244745120777099960522316032535402650182474523918863191382317641878136987399753961037174708258843735114935398095828538450870122167956838334587306434747937079462296272393769801865874230266868890388171098780591972803235897439087939849662225782721540466283007041199735615727376450488340204750464557372524041777433148436875346439693885281168048600073604933803455013863764150828177492484179816804424389692925559251150031921627227684695916412065049651872156373205472927949633488304676032336262563367890872812796102307944491571161747805755660403953651319759970349530019039865820052677046408880863433251682510207580522840264667250387324433491338486446040003461808836302858881474663564575354540058046261094868816561057611897039985046691869408686003564731715634608299913469535602562037015838619996550069742801531166763823227193320804107944945008261954469822679012052931284037003609462486108106100923633957019962421969671881436632411730675844089513391496675137196975538205878003976412274630713789995777442489054239107895228411799505351233988545529219582913499013774229849617385834453748168018709864660584431358429008364898124994241472584390134803046276044786387619378606175730822380985460640882515452188082364729012307758042699068785153725394491364102814337112456760058036986190159936325974172859896561678802512749270318199546742639170995710815081286301213580186820743376534608834821856946754991455873403425727226574323929200049723727403665813623691089302280835394739101658723696057141406139225786145691948471029477785149032294336848991569619867577877308326647105610062516453153076450828989728736975340502171164486752332419832659368746542107760692879351475794575632644293724557685216501901939594533367266194699074643162772775724056489110130273508167158421881057576756415037682282206194922293431433790983850863965083508401086144074261335816734791889604731783811465788413375427747716803837368936829327493104941320587126372229305175395090750735897414606513124977202620467787149263486063719804073000534247618238334030581452366251189350709158278507907529672343280628865846921653592875847846381565871526124072273043858435276564019726033022281823396036491930340228282908982377038148422846766781197385796303502316692383295421352547395793693200171350975178820821999719299027450425829097877419432732508791943518999047720323994565246864895770653482490793701766372905236564210204237127633529725340193012981219451795308174711263186213131934813068348003539725897330526599266810038627041304470168374436848740595733058824425648169923220501652998020759093054782340222761051427463557014815415604426426231358321567885322485406495225762713431939826842924877272056772872778630601646309980088867193006539881549451800434158127343122314153845498548842325553036226089642919102116107522818104281798878404515469630171277168695803720203988445313940939541447574835515474574252292538638143689887642894874233604798640706338410215787791276680508159580291210930853412778700492511259059191565589955196431277030814578817384188192476430253223426564744103324780408651758879977586291929791782639760098294425660579294912508655156169071039129346547321223638821129935681236663871217918031529525225450511090572861524538798756470846148917470436156807591913673114296280708423878347792362145839294895279639284636145415159042389188980537240508675805723483482546557859301568048457422563337163488727402556803534206988112116018311706288090619004724881491375320587760723093885993626040718851457925665442501001008565098400915109095173664795849495878006215917858786413333412393829390327437801292983847790369345081637946614141642282270670829414339751513794887908860551358829165637260120839596006190829775100344781651188428021156116739686910417530943969503638150005931926598037979587685970257382863052492851711964542154936410539243214610963447760747652400459033239450285169367138736907339116913911420448132356334741255738056514018348080360485652356560575632813814458621055097164433716249840679357629033678091284939775004214917050571892087961641753228970702951641959677607756510145534292815088826292494586737531193599529265182474524756306340752318965817838689408085271505912197864566259672610403866256954501588206280234830190257207586988358060915962762618601499251041675279594067273206478839013928844403360195241186571980484370182452582301952696971552304420369490288301811142071964788707930035676719568981406260261237084587220705406208794611379540884335006894760045829562095373434633054921100969395053104178076087837437612730390013861536730124944239579236841700459332097431947637330275930545027546155168314388336960917038304379450948102597800735739627286910644495109817007134038591853348813817266018759071374990550045983868144416970854123792434508482167629841855315782352878881071651534800071827780936647473266155818743846330853218569673316366339229279447456910363270689606611980917726090579116585757128939555264711773353133003843061203667163032310006545180925972345195866661083098175489228831432433648289830225985397714611337586782525734575309248517679120957027311323566551205049942421827082999461975414131528756406514050769254064190952711265971041457965580419540547152746022338009316957410651528318197716414246308469344009854789618728479569345441291383693561630773345924044545837137534489224949754850407180516141084591204690749533079370121595463440169613554984926258328246558724995262273289617916266542490408000065414382714438418392385698804138420117737827139191135302086888111635657069803790721021249265595810764682078753640926020062163116068032927732026865112290697594896336129983899813596101053739441283161329145263855703523572629531524615421085094680226723669946783962765375269246970836824757559356107610253971095144234113693790982838571105242249992951615909551730996732056226745188813825029916113047770747460689934163677933279318648985277295496656522449842219646501794629667130173753440043048206423836714629714494095248331508013040961429729321995991455117561769193087463546664906404347335883024180981215770509127490810548671710937244925739926960255738012584988925950057933025579452811095878069007102004325299150146188732561344806571636932650150834557216767142485039056501135272499801628525376600406463522111226339938817442890100335677991509721243560565863812320448129846565539414590223688154225468495357868650130820975141976192416059910088019026681762785942467295300034506464617285083572371383709007544662112001871927683583055076086558610534441683623378123982690692713621295071689462306794154732917470361391097256707640089402689071719565827697528831975701810320510658042628946748792680079123108005816352242420566341672797681415281384835281056218952485471274123898442867297900138719192161096074239783600729266026280673413943127436213798031356039677275173969149339001582883100756418176973390358064476841546860943879046592915293841456225973745849708955658640578845968914612191308022075385881359781170574525814164890565739939884325674723086283519177791218323277342850842315874987054096785033277510685297640391698036754655501337554093522064236610946330006105580965172110788808881200785967067775202558995903986270510869868140285428288277790281661528360708621507131047380223998634711112196399989523577217641732365014411762405307540754932325746057051081532763542754435981482859931210468723828736503222884098823806803033893511791019228760459208000282426626822879034761642079770250134030421693453551757610798141915859486060242520992399399568742619116268660061037086064390982508094678960334837090651665003317877991070937803602232641771821772492759938893906478339983932991887485954324327641501406925020279882850105827268635497584552467954237819167877462695960997799943019235519584597023793055341928743160113975238044466556590201144913696548034872704429436791718126702556697865342736660647773642338103882173511694976549942267918841183364215313562334158010754612175435966355463090058776280403001650403769921543877627182134242928385682746927647747152163778478874303364223120233759207937883831317508591053209395177993234201452662925696562796265773224759930033661027162133064098214562192516222009503596147044162610411951583872918752462272027226118628423682862464059836801984944879228172363460045534756840185861165109049772713211123820027717730082218711646236194006361888399289400430711631183498066258990999840963583714166611272886520312448489685784406239318401511817330804328368476382347101558917895027930840694903524446604011437616126787228307865549877186194216380761480925578402434713132727743918109057734784519869573313809576512286913401549783292876198230812911879091802799053749022481017472499551307809749518338481175373370029272614594336679488341585993384579624985312741785395922516764835858988488771295353771331217836343248912729512819150898652776429550874848576579239021186845019822778890768216724215171197112368295817803224754575129510144852499691931160271267345101372791982761477674167643344875071579962927232692121168175747391884162687969873951030069619718284199158896603042507310024361912992575037322121929108687222745808557173528783010718472289319051774757787556360078022652715652293810129115052442695896181670841659221082960821050880679258796809392752332068186132335310638715252836994356121583003391998892443232856894580442306616924238683334213860326315800562234508980139851915287197250173937857672361903735074804769913448745036565167382679601324508236468695478973455691236686530211061597956945738136187638241091400469562943234606874298700854696183348709170558424349801540482013936809202281447526369649786403767846834594718350572126563860525792558504881946834049663138760445112465938578883903906564507156898624714701265851844134276753995370297420418055069191739796132945329546520787434637590765542846008292270853099426135148989075168912668828879164319357147972997617925840681046849740850769064758159083475082146355536297081320109717403370309737762390957457383244592028460047197844987247352697831159828302782213275178651248023237785566171039243081296936340438410615510095205156531613857703915732765818882432186254187405419021116347645502264628972265649907860689083730835840840671329657419564428491727202827402400285717823776484421994068408440991340388594487757184348572112068414507984434269497141473269426314851558928332707122132590173372415758547438185745054191004775155570917616199598978251384272511840555685563340349495918379701304619582185661253559632337930478725864489231576053522649788885704960876543621119097370891848311206906822330972340784394153011073313341270277315963571847913630402796049543260387652586524765497339197103236667347767023309511117904282244504255038270797194703107757312189365496440007558905350399904188623294652900587892422913133645329404927180016284066053501977029100250364880512596971946757159746833792278636595549785878320760307028287868493281403241865620289428164111329927622601871194414672488596776474920215401787432824925945748472289981554536768237810172353501061932433463085487990965200621579177883800960746131854246522393384006759958269507072484885812710734458933325598021241500233881362476708815343915260166533403300430114663140204827949914118458503380391577950119759414155270152621545634011270766406041678173580848545892919650002129814238157075142125996556223365047352922739245825531898568821144020075598796475017596790967383197335575209191322457113400977767476471020952551650029298719717463800744447611372594808001759282817196741188803363320195436517049390999356410215924997221110177808790342042156861177923387930501607116365653608420762268091387318935062544540935858427517186630232850622891541163779041102388871387967255195532940911106060538813055637380978730228800908003830117009443906895681967493670137437274707531487728499261114627399886158924810849329417578771026949301136263464907408926183842020302369539497026111988603658460510287817062904426274134327007824927217502748070877095661929739242044926281638323491886570855207898638164318073203912269563122076782155706896420605100724623606392317037408470620434545419299259198414361477068563148248037515361283639702023792039896018274930049010736009656111829148043314150795345432997765784591372761604639001360747977117693354798981985637500161595869129774432218508268321633459042043713174383008238052583502386954906409595926869092080983651491022285533152485187350033984594804765999306539171233820702947479537978452060067048454797952368122033679671747981769422310736138750832414239712840443076521449375845348784191459241068368318319310786500668384616976896552472010302234837745327312024652580460621686290266261496779083437423256760985051775419418558338414303244616497247182650903980807188756957226089749299986508880785843934851580037825394503176222698085744467159200822172051645650828952211035749258532999818371831836411870895689521147677900165655533674671709807142037268741625597925436950900331534665512344001293978887881254898328653298497721250766165222104212768899243034105584931604935801669733314567334818009599097951788930538030464687549453685720906410102218342392922880610998285869813926557286652074992986800848297300300852866833060455514624811731560330551554480624462096655977806094119471463229076946001211326539907697422179022367987727547158961897427141902324907669133800940126806003521231583262768712656236611343440465964158676912719907140429673124380945094884162642205406741479051991498414710385520328994831192370418800537512977673771530608062679490930292691438476988437982607315428631162497205246010678916994901820057507130792794214405405679078930349317416055880909360674637678494539757731773333863617268054134014399066454138915609019894826099824404154210199692478831139143440354116216626824643380036137389724231620909207089586997110807955218356811024497701493913187905451393854182842354492162063488241794486671654207541816786907579905843284287095853194651957782403094566210461040999474343768844906192803448376588771618165843558786774266833709440526155272066540954529277243036176072530845830661573060015533515241369902138132552110210616146439661918280331816820515025158125566741238427019673988018056974621879947997332207761497595500305992715313254641722070292537205165793878012984483720555002186490075724315996568556985646778182970560510396705589187856856424730067041313045708648622107619822319395785743131847063486363674392140557103572349113918910623398688985674911255376525263839024546470153687112565648456009693542963013195594515279524995476859790393191046652992491441520834661286058274076803333782469177295035190060563641775073175659088578064026633110898442361086144809774991027768348928785934254203963886101270329002558928732725717413082497076281422374284812060959942666441186234917093838293749066574837587414917073284275383479756698277025994089132305325150212359166246152256044344427411788035857178303421687123265360926952351317978796640488508627908610364293670416175147309357620267061612833858455089862589591730662046270967742632897003164635223149349521964746074826187994003146665790148906685947266033820708541884022649857210964252891540215438120752402107072444013804218234126984811143599393410535251554367258830620639326770808508469866544186166038176491178388794942054975022742724540840713608369517699208225878781108940452029221941698968539411109376083624836219179303599499783421234435350036592448994154204119770308957668012944906391573789257630406310111101032222565685116246727926593699736449514644274954675088488263246296436211464279294506051712252213608137014921288602582779184026580212845669941606627194543489716004429993717068015036671088512209035146086517816226366482015795093036746577480077298110245812409787549977492283696499062870338141419061331856701626929305396234117795011903143232413841208501946678487394369436677611547785863835291805728275300897159991449511902556070963260550293975184639335526651749951548937820534468397640132729027324392243390743713010885288880301123484121541673703460885740120193268946886054341499931874304969717063860585910880116806618777615824515638074553829102989333796361797132241410481207077005846765999109079770180384664253542313125099907687263466130604667213003338647443049977137397328418337216905874794469016912975717134506802309830202198067384432114668457566104169454048838528586818706792551154853608820717869914085026134132922343330468150975320595277151415018583173543554594817312900111234692519625915809574749653674351620586539047612703438190030930815525471122462861832867342244426344325973592054847108504506285227585206264235962449020805906424058107232094501969312682230140284647207164089644363543895562438631322295851760680952568489379431422652872649436659888669203798001534098631488306742641235354628684719804826091474235769955725231539064255565614928931688590691185802714688618800342888341376142649929097675898975244771814767905675207995499099823330031498614010313068295772808766387419678340354512141909223172287295706539903124496951944982372923251410028441304423947969431780608581172572763083292308570323327265069417043616891645109591755998255385303039341455158425363910545840044904684268654156182649756398966777352312768211056390741878475356677968122436395824400694979071980299092920700305887898226181807844093382483804991852003302632813733740474294304213075764305884184827832166170378319688657022117621362479439163082983436550379310164732969792400720944971460582719236396434593558822539688467462317568833283580741855342012104546272668339736406714386889749548464439191868009139729877501555251881762225443959184817643862119273647589103014592026537338593063044448003697250974966468505045661385043802039804504450498959355821299646196634030113884389455902177228124446426083149640677266223915697342786092900535030198108291001103120438441279600459284541074259352699783818897639889477020927995871734729364860338378567583214160481564200303199323573117501150686175303064103728484074413502069930421496331209216060464768493470623605743349693494935242875679912971108470584956395396568614807177252315421867407230247941158350963849048212671468835729742095533659778940235781638236693104662417724197814363175268230467814420443017010211349222222767672133583547305138725242298099286746197950444614944332822335381276753475024321039848048513846905939459548852757312919996251546468956155642313200529975510032859326040701274245844194431090791824534265298114625053583111900675779459549310992737681290451676352498697433843879787585038938144228928915162477976988138183636353711940633637146059980946163202752607626476055474045130523657745352644016136813964218331995551544078566931068435799583770861485357643132627419929292262674289610217808646271719260103888351065433354546659427806686961750825010614631547332302139495430296159646611788625922058074257624284579962573945409347135220250830545883411706560571565456748046379907922583342466748224154512020673827702048194828129457793827959160863154834047257816923898711928560275765098684725258686245387030214091549466682418804106301484605629837568157969568448413813662207315377604230359575659065200538722084381750719827511285319766302221551909248341743342608597086089248675571582863308641054538705388420981454031885664777067919302020352204890450375906718882137433839562323714429569446696902321086098331517915087378372657436863600259113122654575298759011667405477461182609781865032329949979789673898656321083330961608100005941831418421310841257623858890291579341291768775260419165804320384007251524056366619630166774054512260380476612305566084036434333233960876774341364390390192410518258838653549834282057666329150680301122224138933903905356589273387488663568180283699179832496782267462982031407884646487027229994511172760583654559224034948335855257505367310864055303608225700795485139007812440683318191839009781948167351177633988121945701867507083364781111128791101041583925524732082248278025885834943467658931688890818917754448872952168864231449452536699303314006055089358843792436767534407418488981919935658623561232364179781994363641063464278040019522491669320186793166730318546307643547604995667663184772482254037706357684756080655521307865438334030742327675392263692280636130152295713780354082156648180270081529243581720233107536522650386022947426706808561599126025761268870095377939183285976867434508639914656494134045689096191626847097493584767006849147733360582373130663169236704949356174763452845838565047233995561259813602349438434462593695062128099049614000740244671626095070108513412586083052201482857577958931748869435941971522238032402622111592736142285120476647042969042413526726977249222172695740494630538921432957000675168322828361735361132543416851059428966219907949842269847148838825023739929299551298850218991117091711276202503444412246595517133053736708132493494888634166450896501187262919748081270103374721694316925960361627790213617056244468359782244745659885211160285195715841037391066339538041870355028545713349128707469580632704178918585588104306059211912442012273220013811392463965635192671909817377640789226318467962925922618789808212850339056048702351420477929748051170683696939335295954702787936401008627111577095934615512284629605527290892289420556264409315867441614020391163872039162306164406016717025266384667171915977455749274767387616214208779125989572860076515484766479568764980948170054843050097473989151195488059900388201704733821049593312299218921949862614095878864734304463345146395512147119212871794486619118267810606010820187875433424214729465888283651568922857286195306660616538781497120382385109530944336118069027567272823893733659341071110233776398111659445614158426454372263282331284806671803500151749077090837677284223919850255534264703134265617534213321392739719875943289818847534305424341340839242793878066947860544814248314833417397268765393579040116180766779784157890867050445581317146246886333002063608872650153006374545079613213831027066989689762431127305025550392362624547379480459146709482112991098827830467137440623143021717407302177404603508324910742511952400756917138336044674764068091328591585064828554689178528687899437924456621582199724482030813419917176684191293981137466745459699257197245466433124861557809922083937412510169271671029905966139207258258359380755041232118345779744847100217434832173700893199461470526829995655789258312637447067009583109775422175155998741670777681951073455316838874489643808223320215470326548520744418230195829381520256750158328728034617074237703077497123672780103292749863466607893629059571939184515572941899135910476331511180815664020173393498355844594953122253044215572099124028950172797432007227127919645999026128485042392610680479407992784127231868573226767497700017901430787343359932117517714079969027143549752407573513348178705875519251769955729110090046434844939435555501946826146064523226709655136672607174165312686159735186225541571243568160783658284234864664889915150237050105045849373351712361475946990236139555549071689032575326758389320922965640790546614654216211414681628219739339951626275248231826522847486151693668556887473010010889201175991239402279711091900868324020085410132679211476575668677399872434793902291023524612213789277152308842001904213196816040294335472499736424004515248993501971848191165593775076709998370120187774179511871742182774003789950971715337287830596819920893314937996910420904608002291852742103040635993136201378247799887806106143725820054494848563396933149106749062207655023333013330326131740405064484169310347201394700714008170287307253397758701338983961720679415251882940032144221660724964800123985852848386539815108400672146000635258231341423278517377597664469936474401337875541282803866463549112115396243416686044644175087632957044386108020759784361103568918850079492365657074434321669083715538465181561802684204145616209681954424398857909906008498008604647176297770709689132828340152886293438183404515019279373422409554577390454628572067658381159852900697983809985897656886733013204140402558252862322239682024473387963248485633808366813759892325289699259155246915801338612786340826287614755041716532817074512113417444873121928334752885636862837957633659566176447956692532544869108239289696731164944337997227786076906995340953675172375552315063647829226907611967275792984717328315226065830457677874639452907705716347832827618358728846028681733880450781947479505156327988283164483186920447855102374443901983929597540565421804655637965782999031633427077988896932528521418019904761542219427386702000344852076391224446532287044792911477231607878896374393161187957234170665365993129989862297094081506037555362420326069303488883124920060670130086254446319580448567952597664329474947998611655733444645825150850422077856484176563147373144152988521423092254627191055949257810718265909125818209861251833465735617592110264280896745082203065931102277590849090924543898791168116119012441025918150844903331885366199853733251335139279028657134600063733586846371322722674057881102808056709166155973635890342621836381208392184694377668052311278136875326481226163142604647893118911159289744239563940583334018822094948184186731643317675989618767755740710982557185083827578210942305635822192263755730760396039582594725005890513026159230653407426007872705845704017308131762260598679623478585333968965240524572124339393742185490459055077402940833092739135095488034259646511175897086134826782505705199105900695685371664587343825135215867212528762514147877403852198645416723836450276614096718101550317306855518380188563377599084298699174892447764815860412768999615701185011028867651817492909121041961132498421142697663569554511143762513334609956058019834441649455893766488110551692491622405825156439045419325350674964808437290792183619692171107592057807945917284756552853468637174876999321928670262497745166254273833111189914702258825919289730024465298084139891791829219428911234452012254501242154800591324002416239279306239251672831316499044311743799508974660525778028025856511232599417094209906154083597583064114334552719781868052633893986381649207811934134174163567520684007528964977239168697040534231932105640703375355412478682279221718735293058971091051115160532444642328837990571049431783135232956806572584188437639002470575356033985396673619884550508873478861668785184942366538328594632590531289834593791391820922650500554664292459417005106067013317049573384656330062156583253607841191630211651277428942471808857466032122869658839477444279056430792100616400511557177106382580726933162561138925945388545498278276544537561737406235145586821854670218057301997908575763745805475954684622464306718568499447116543918940269173371806790896696872654096586470553748087352936951481486393460107745856043622303685598300328674047045114713546780617002821257129915157635074968610728875204335100277604024333108493137514271043973916932709470394646273814660135669800847236317686299976567562317605365051512840939256999247278024215854579067534853277724142418586396228444065538422245804835282245287509293828527858086920883581394106084259198252102751307266375630997229027347397620967808111870294531114666725919913194845052262779042629293555273203762530657424559916860206714609914889921932612408879500639406005623971490183206409783857827520868145270471726733069432038379959046962778985851254406294828218656841723317405789850512311825600883066708074579833040565516987242206887499635882245608859172268054975931677989294249958399502506949816923491495427062023665009424079624506464029063579162408198993434574870239547247988144820370652328838182188602776145170005053681057172517764888716935095365983336513843561338458293060566485335895457246014306766384098195192975942070297524531733230879227378684741478472953538182390470295025694619110302945279739691106018300723598048187414517902041418919523919609971844687060924345582662417303632932777970461308347171385364759651131840778251149436907300831203615692427665852974903049442806433876232887045916313702437472207602738642993171743571096271804419882764358830374490977139222874899173048597054004584008794111597711854467848908977975826559545607661124715589639572733206250791004169901034036573349648108701616855087113315377945727734707071796059204776991862404192845737221173177771419966438776437382215324771189653537088734891942878039076672172142424552832173181648290011802134292510973582575102821615515327683759255406507988356745658234991767369174595201470433810535464908620897425146290128598741300088790902437503491050807418201302439872136570573291619773077119444941937763632976668127980864459363733727770113030496029094046840052386063951367633575702557020516791308977709228822376266862828145733728909775062156908433593090428817476395042058928881471050286462702965580493147168881848431768115709746784060135103751162572713469411872491777135724164302675366159178562553680127207869294435917793965198578286498644158072437045164980817262689730430700189761953724118746475008375204676983670186632192546507558285736019642006001396060544460592283881421739566852728546691498490007052214576642055119495176224273819737921359591682884284222238054782708287528164630421199344372389405384726979768256169652754566259407947635020754718569693554334392194026866030540806872465560480214254893871731378044233415585313087904611721075135272971407272380912235044545997448713159608510769202432188964170363504135732163709156271361743218841593288236463930766881434376619359844322418849238358093422748886982470051087769775051440314558466796490593258953353818507391050622104204142065831051746632589322776012592089219247695871080826132335494728356010101392155926420342676654430737023769937486291949415815443282678723662157928546890287223257419174711307788780796182448913257758303409149989570446177603673408082490509311022588143374461798696151245135636095813935742121484100222509950730158193375736676529894015211601084539777416437860852027381802500182667999235827043819509173347996966098241145012783935035498115245201558830052205595267624149317243188242012267876641923479928586222651114425842502556631935706316628074267166515477439422926524400460653909164680830475676185300880205946359564695723390182940282378343946792503496406535842259062457058979723454903808470775069001942524048942505507263825883088181904145614252118048964493751471489447361458628970745052094023404807843599463954586049564402556586911821362347911616536451738078881836473176954084435783246044180596041293780801860438645733677590623380785758827394804756100769408422809603280889466495754542892152530116861649200088912975880625583657903970956961828680694325377387967553611706073420187790900804758899810142083505045920926012456660201116920416992195589922713565158479290468856064155394459755117168434528184902909597175703431347881936404699771387657757716382902676543354934623267960044636835182107587241688839083605940486801497617895715496090095583160149950753796547321008982078146710243935134324195451387251636764919821730817554122888436624575330714650064555135459706199441431626111971880135229654397327117017516807175430796499042012821870251967281946157840675154460027871273354742268839997769659437550395186173378414190685726160440866679338375142948714934059745703346298145563890356062565686056604353052135211468144334629134981695146708395162801173838150529074716945978251502812069879484042877519188684856523267934999545745251510956511931448896856981259269817259727556081803726952842000450990545014659279466164656744236430832002632349527448768695474523126933898320953779382390231453547379499809454034711549067435037504629432356882041988560251784832615753286576795105890161884444946439486645675433534879168129558085901437978866278812261216846728527543262064694763018905546351390085275953780624105741681346387362839862082587008457999464258038206828306920408935514865586403211403053997838975845950815006484766249872466938679991541567009341805258241119366436067830261685965789635381119483539978109397890423897456293243564387138340490199169246440116022463766078529665702698793917680398402930803256414748003399828599511434458912511597384651422056463652158927566971495575199173244829355520690079481960196447792510773685427075408365695505550495003930592062817636491002001586836116489870393733229051279062068644757199516838216747786954635295675612170117271773095002692721414008402830171658873194136543628346833814471251039111781181841680939136921286467869048605744172186380140592912299766908436063912636841370731414805219435582673061174382816740036148423804199492267994796906256280817520324909607841807384526179980619953425900549781781988728139956320500573503003740213748362611434773540945175491988033682660939634623801176881082322696927720526044760364392870838364435442017676451694704849583021472054712626324673649273374267511709180602816972346332938986351542768043240147176522583677903059066970321941735419647905488398272301081891808988739337543324984142757006690837794476435080004039565344216822350682690339531005263331159225558077350277189774969924371860025731197902533226119755037556613169354326892803850656208345251468128386739571455299793059676718985567026154693536032081062942504290567318739801076196278759374777863567664852959515319525961609573168433696009853820442806112068553019883468776624765001255974340944236106134070249404932681865083488526686873708585247790297043160175738256994168478041813572607615668439384095446073981277860832161014423851994095843137924421845374567481866500163963121990892580010683569161306352495581997074300918548282259443689217015658821565022996257593927190845378602972367346776806685611759240375498164273207765406536736649564450657445244002255721313849073488626234242727591718778625211278609195494251678925103630354440150488885377487631737860956437873733998588247734439923009515156486405552464045920485400750286816787488204467858427454692470987487283966275187278091676723207896467806468745046632326258722946905418498692468810177419604067395635391690005244778202899376009132765409347960421767518906264057346787944119250537763563150029959237718246639107686847750264428156242382581173902089302387327666187751963950578276963410558590266842120924071170623495667463191942327690123342518471427313252783670850897042387045300695581575960527464890164818470481207392960247800850746441208443880569115358790842894634941785739611146926698878227360080881273879798637008694785848757938708187622109381953129696316828806078021507560667858429778592277408339172217643286093071737010864665287697238271063015008314360225340591198243746083404214859788389772831349014137712526219254772153338206740500547285258765797264521115230866529586930614505702200766211403082838980105873907946903903785779974555022750254492706816636555258987333221766302217474500604062266592014890968574510407909185167573876331894152316026502488472852234185069115778626601305763015182340072034169765432159764425540599525903340167403976566875804628786374427652271695053929830130893735564960398867348272636391133307791944612200054148531442635809298091729431159546949958600758806369900880097762805800676210383556036926355022615400110188793986676100547849435948627735066434553553709935503085298025750802931761139662321413415254634772918642034694837438276157282077874836433001374139802864846529189576910975075318860998723206484225721316478360841246638758377198372538264615676238095795804229974851995041226366561541382515185638943492135559868521501275745617810127387484218511495463664435894422352988106642514794333275291958521103738971178749651207058315666174330800871401493943442215609809825701770670128175249032958552883586452757337009965832808877412201779051197554142541995534732000599372379773233415824820596362239518242209041079684743728310651624823245193515110491471908119923027534406528314245385138790094019119756002542598037942505379240988335279553713660885242086486975741395281227195491314322416857894020142725452577081431474038251436083062252727367996311181190999481580111509818391916832659124419981032115038186929700279303841873865124389810952961517392415269677141039140087963938047970568216623133042382364671303467342181299555989503383603209620933040095271911526958999721876498659697638012493618023473186030121180636129383743560914384550852072146224845055289598256139487276538386345786819964506043356874954782353548147389630677601567211383166219425171152321142575463065861093414144467864122951859945967464047258217962311642610434434466287229626698235047296550366593877173207942249474234441346053674103431952000038132908211703724285288374411276643083483357163948858439464607440940141208583079911615227739061624390636263714895385552644917617562462440466832599882672612720514262752805303928195394403420115372990401497872113858930483865940423273251933242927196112947426527525142344432897416892623052392656161365762685041347587464653787339138319359958602338432824724650284418043289692657610548853668283576466632842073010200566843677567361528567591367063791080709934799403516769188453335761623355133539171334903944096247679796217909000374817116519025184102254243615630218193966195873546057496111748693863889479685476105400840327069133018448940057275343649641214913572007910585625813676219546337052773922661201375291526657360673679173788238434727129888140314867241040435916817412462533468801590512813428272693821792843342602849032765622705428844892794394459825821737602849944719551933688642375659858351166498384291400404353583783779494345064471647131131606710955574175741433293769577946276529683309187376066425161716914474452986026085330998187114252124297906472154591341241000580852124196055332900972802816733146483047167355263277189535933666497091238120284221759827655052554414964284923675379111532107171053566298902343910209957087013006887461670203154015532921964647845217053783258612906400780098432189915260828261733780145908927832677885930234609689755017771687555606830987361392736266970439803814216978412781295314312015833232965422033544731963098575124080311735043596651480659542238100050083933425740476385529493579376096306138020424926479411813865962716374564209304371886936346782070924943359133206440515761448312205717663848127676634869181545210763653559490522509315347151565324363651076701818888869269207394119151133287539068915397770875902269907153677047424427240532294510330863769026187978092418291903955506086795290000065936177910939986015516877684148351588949147322152362612097697138422537284484599659861623024251747064769082819971245160488304874664368542390155868228144586110354855039572165032715434670120257584138027336784773025295821217403392431401781046327521728410067207031074171802477029059430157531567188148277003809993976182535778990264336500792329387030648669766904278528843280724440318397914855937474482554141150301889086181172712491911869716424485159919825377357244518059906130814627963638148550395797929601606685045631264323539411842541292180515038023242859764680819460421616912014558216381096096001370062964982300867318530129006426913632601622571356820146057165433335081805740751831481140888956821019350584287270710461540335721143819490374935737471178072320159394107904626869013111473938725103348619969613554510000396368625404805846948754592067443836901887146212780369092300988526903033943427744576857236233121175642594258141639493303782436587598136519916155148429429201476960681407596687537578459017924724115397996453391942496891878280561949196700228664413824372098460006885152118295632423721775233899314871483222290433519284629369345709361992155644599205965307406066652428402206574613229002398761726684328991600609703011144937141824170105520527363976431714053155763132051750669360375050100640245410452956417736585602108595045229625552474785354515870003416786342657234154610467751147613364790574345169587052613616243513951497823439884235392813619096487412349927806798581730608364974615776139320230813291419883697822917966555940346771809125310928406748474123276545375516557819235318092246664463347299132319018273007303118612249717874752993295543883432273765573398248170617331605905545887227294810383616104308878122409919488893789149681361670804171972148900834374789740689232719973662838408530332497934101287837491559324220260434726824091572384622787198523715040254164562266073385042724837047524581294167963754115817241718526212539524262074826456738148748665868170171016616029620388508381608180785571076102488555138940516546847356102419824706775637634697045110289354830400151687617583481087667552019226038424301208734397571213130114871298674782786900333514559044861077065165472044460690852891223867327789929856459818704884101025353028851180768416359899065743690447992445270757261430106675359442423083758942689512630250048573302843898159412119527619641010058771891055053712390571541200480608513428348449202135974085694089102751216470149205871608058741283554019753946139022657583682931281375748250824762130742676377691442152746451571455047961644543454159675589093653460689265793917323701667106082133699127742393368577697715207188689673152616748195357975072717144591386415287144267651620155057276712628911012204860685214821977254178434042332840853969679234140444759584037585153139322691675013871004165676594768287963518556966090146031779810149367490854077374888563454377901598765841036159985560508352779086006458308666942956350106974765584083599401882381211017312145062740268994163449548077482975441590742945677586847183303372399322698504484325541587699469747295513081423872318063194014996540993726654744107988452072936673589623116087521429732189052183693798160702125466675217808713426362249043898217196238008089149676355673218034887321274966833517338635424920815154266484872764761399816764935167170548220925031382688312607870123938726621617968050334030413382665181128883852518591567462627603966926201785379530946324266470725575236341242084366381857216474250973004233001157830056668515775691936773429256443943049490497071123118734201135676859830689758475324535919044164628323152771842437596563471590690780519867406230459957406744343134735899312304692651070198180501577990037784833319950457887413281942260229268222412940902777047437005678891716084520597737281860465837153533467314678937441904779830320216314222337803693306128323768660873834030957836531282151884875640151627656646198533499632537013412660753091265318820480802643849090505847356735504586245762274695589383187282645096183120057176419748397528487930209983064744558769149279251526413798691802543357385623694139019279968655903680094724730355101076628544832426374466313631868179853743535201167567928012594767562257759156415371631563141104853467627924975386717525655466772626209352853663985121982592445140078772277046615506313893379817458313633521102504947599456929393939096064918759321399539941578045058466619627411207959638973653457317861121340263556301258318633401790371026895909233464139980648227486507753937372318793627116970372128688596149440162025198794705346251627449646625248125293212643069876478355525356047550519567536378667695330959214420237371315352282645012982230904239277768294908237960323763939828210218281662015774129950848233200433216375270545408192726942589134752146770468343823887117742904962054239491744869154608134023669998218904608783359315656524165800536396534534796350138349497177765758439308587502942271328883235152958043703188566335159181653964731285087531002241240142917568104242291396983709309645984877681699901656876230229806689704315902988384355916684201232903554460864481931577902663983042494641750673690005818438809610367204286056173699853062736627528863054825164833296830996004756141191775785365296721721694020677762496924430240484721959283628559080241843080541499146839039061724228827538698433481073168524694738045255121807534986226828845904707972028659667905833635819836196466671494815692642713341501403425536845048108691985269358175630658087954713570775252397859650174486234374994873942080016542161119343618356047984542255870175828945623548143424558814188113974307382882652410393521488864052222865765207908638868498626966750177092920916654925966656778535573007543125185513355469047190787550314053653875439230864343084875507250587506589309768846546680930675297302954621772267137751043833798937032333753103171143970514371361986777978779656229359947700466039469110747230812760570608803287533401776503675460412118953902385209180888483449208772533141347287565776510646673415711604556377814724940387548813102254377174219438071265611884143756307284252607733356735730411406305963015796272002550127408449017359922502919134952480326106685480400893296403782862885991195511675918619654500370596588414320847191819886996706709868469790862865682371574540914966263494345898894212202955212634554662534714715727086628879457921726322910951330275730313376318033248684467945191441529491773915920298451089772360428234245488102083795232401662154380963088823901816597256663048425542260248643013961600543755975901986855514183039563472640330708835005318178230935734569371565093333546603055892284032286801283509187111180493863646659228776236952629142560171536544053182283265048360194419977233248726745454954417076037875756379770237306626723004329888941414040642665969269659083908546122876045513364801288870387038765122079835672841470265778114070772080902863402653389406090768282833293305281181262866536614068446802440862032150979974882622361914869547404877478689800208448017765680859448026509823743797923532135742717864261180256878189209645641142728681821433364129902564104219170305812677244045713306972883220851487040702023473636635051282724199468506026211111793476831893950083056324432821776797851843501676216969461232820364057664586546229803396768078123204224317269586452315732498123021039269398448557132526904088406003510770637547156359628546587082952641834674964312340789890883338794962023484099489796061589274389502576986731739762965620612127494260753316562001124108184402227972994632278546957013110535914477476473513255373497070487226140928132660315642557268944315299272667340571460087181538577550378676396175363613052107895446645781149819864643471580949323817001286045074084881699091933219360848076813843733231601875885222605096420662718731011270692349842696641795435025654655779559324147923368527949097614303215228436123838714486896823604589638929557514344613623122413983275156421921278232113593495148620691999488999169084999314779279965826332312825781973502104150130504153572776965995619093459868575243573380469068943884088325662650754312039516482544860105583522231597958990238281408594676541800574774040195081806307222870160831762134978613041397193670416797568627186253776590004495111091505660283989107386841563853980181698310688311952660362306717344141333144368370777465761564316000483727721442489446897804502194246722755418974823255609354850385043151810687188767446454858935103793719039824777809527487620730876617301474000513990178376889419763715786643615603552761546222930503885028045332895394858418366466542378264247974923520430652524174855376509960303382415340497095071024254869309063916599302127070445871361103905202732191687050953364558959895149751396247856929800516627659044978917687656303912270082795471153394355700811437461236700292697411374187343396727237489594775334054683887748103755547193493436714523515642341055723112676115591685747344157541264804803519390495530430694756108626446604365547629285994063809035670302369588132360825823138664797031454873854237920827102917134217430901518368597478636035016154305739610001700219603836738092507937341493786443861886644786594272851861781898705347676202200838137482939019778892507261834695749538325489716592153192745600491976587934842341860654317073598717596470261014573378903838898678966357353187196580719409458856242949077504695266547968127726121794368323810649257837871667798766692590177376987478923146067310264951696233880826907968497827517223530682940693478034381584773873578852563598760788005395185597014657131851972511793146841630158755722385437578872802507651626020084920894039326399341034321198523433453083888154736753956741700575573026053281667747920259682797039283923334909474743884045059462767446761972017775601467108342530368362447887271185448067337581010254092308565643189835175312423376723156174712022151442342611888522379558928090616041241045016379673396824232568393767500275380193362779608133292983567330728346126349651981248492192769083652150875997276466217339461371052263500354611733471416634876524692855676342488184066930135559985554831139297405044211339688170109396508839509937965657298446841630657839351947694633482595589229723322577356628635985613496797593447759655089802099438752324842296236973660493053355034489689139967242662064896177462069301091556126661617481697405867397095832069863405294335899778782295594874896907162878103631442240194271968199721796034459942485781253581401176219909606744502334806198237248491398578186974828476123695778665461159740387487773696501019167984358554568468303198777148621993866299636247937156643242624515851137702695143753217239803824114925650545692237725383795207083535776437190580601329884340986348444717714022069259598883449062446993612771443472972677225371942958921945709242401118010361153613101007106436378763614826461056367398356880204586313342138703510150887178329864118478354987196349955453787105712535261548268546439200997656024154560083210224728497175167201546671615428786432963919885581527798058880432481864739784795678049445300313023288521279172719954465500329170564904269276859952342516226440175872095103471043524464911789180596287154475604535239543238053394274200766612163230923502314493812266322094475026351936300990268976822355108734012002305954028147169951494116924860148245081569932710202735072251088374135222556076937610744755090757876423234273412971107243857828619046180401961642309119669692239131711126820897990240743897812243732407384220145259691797189763037024829686469861775914277638989964905366987879829036617454500175691429568422576408254943323090662759639830971084356935894602048337370718476772437335900804002217846307824911778491256521229956279573234348329535210979609829703241588184799781710809532787341987241797606879937529366011574079699051257245119065801869668354191436740541531288730611780102689379105059434649328599568419894358178972021945319973925674680942322843003423830652393052111323788216983488687218297429316589823622499835249315801042497424851331106950054946677287844389348689644745427262214320241811016867866479825531801529529534750989674255320238667202465855836612366771125659805621639132955067315439397927520701394098836555240585298208347337674194440074361635012505987010676158023260434873481820201476116085473794515230840889673285027093196658808912563217619044427434644607376937063745835440593436158369633657992078615143525628994203542405605477570034543649295676915401703303294013006044077421299843359893099947647934694220022730299388584184757180178462233219412072067267616674231389514535883653608230214767337285071703954820043215123763454522473085701488732615082724332786681847060934757213063294300421445359101602761086410562841751367078023513002659649190839336607248956210806169263017357831740463231726557140958755566602837115578629014044423523569501915441839524601402165677738188173268831876750824439400404593765278530066876331039617994511177659836645650445538722952190520309108356440222285658609407513682396629216472202080306378687779535827634326925897658942087762021458185022426621389899822674333371385332192053333152527052628191954814749952568627426945515382148034184216955711749540856844869584426935132706885229417401233893453301077201915294293869746046955040232049015649323752392333423302082811413142119869804774481428552476630589315893391343923847377048240006464097482084147913965441804093661470025464029205382134776363421500378106030757904884062692397280675335700053088194476172700299078543706213673264007628229270380213643961307214931993302587580681004308210332345894057282146616862863012274349572454017087879926167474071536421173758274102780074309452784873377954449443568256219282613125998397801721298348981855910566828106890445073053268711250872136924529238096429925508186140488167724466731865516536098658214779521918092068095751506091392235834819880600566381668344675251853455193115745145564179279788198977741745272739002556237085758865988143488018415707708816524761418436698089196458088967412124205834896217158733340882703294956606047053446183920888751863245056522560929105235582742414073979438721045883148951600411474925708554535315402366430910943765188634477923717468493888142205794562542349926851683397201256970102370284744068319589236439658931667247480585140877899347592292500284333257352895992602214617993099663833226532170991043810059073980505860532413043083828042840525352900733675953443255827653167743292205445814678085009800297147624981188735623765354001118873678948706781068480175182457571997317354459479447226134947743647108727356331607396040272324285177623267625116836166447550094163739693598750088392767853425979758077600500791799155600539841192903300258019382510349241046149091377081674266676999528842476780650876972204007238998595531352432461345585681521255425037416270918158567822100139573528880584268835213625016507982661449387354385918016584095257533958837573024443553994544998528441631737361025073969975160825611554343343444541215706264800557005706301997674894265414791743124629248586867161664154980307089666499505778927036172855670611357052874470515861349966017889857388612797952775472998963787797842449033220781250210442214531589133301623037574745925575237546240721329357871504100335167400778169444491065288052439688433055629205651075879058054824792996350443734500361043756449030810258936369429759021939631042926067018274043417746494830698202640120350776889836728839185296977067157772338664777904511011193954186764646459125298785265899364517323965248194081415512127883975101836169455547456865895651032064766415724309072522387515374710671411580576389825118630888017233210848662139022385527495193242329836756731991158739691341196567257098223839700509385757596104327478186621808863608483949037800708588354226457509402300836839806165819522669420546999419732201267330582835900697356944460345508814814440562335435538080111303083930159799322610376459508212475244468373197907776894011138607982950653978451043681862440429114418118378292101321421176922342175397213098394136006662935223629373655269341779319141578124734210129438186194578304199625179148580189510713656039191492696199146013233371537697165965938628669407217526885142135755894642229368042024416229962008907726610267809634394146146986240306380483416244596539690783407995917810776174941484037935040455730101533244840271081942469274938848907533183817618224809284684766329897357716013422979222861575923408299501520180551083771109581893565231441229162161512797005903149419948298653056621269815189326437291690238895782096425110790562152318514856291221888261754647995786627765770617021875873987841507499581874870746482407710437203395362422170046696844782831663266101205687001974858231953104867425449938314909954225594534852982721076596346460525452617719559825935904302044073758041857915613278548872821599902219449800065219011235356151233437827622183692272299720618177695450106141411864889826183805921212956847745230674420612373501328019109175415063709565697497725321167056499684376120364738026900758465604402631877290752330674057438361045437777919166740497483391418791399510802416273546998057503774213319814598912150523156862679071580285368583598412414507029354572512783962215755816454035963589818971497665734861871153761991496542245112163761837226581803497896178289060839958362771677023225116582886704783925472140144728116752000190446794666705167737668822576466927456612151006890785379221667279139518826931364719195297772429341549227459588463165203916277097200517378393200941326011509208390714543929681285460667319963031286177118058592168914272043487227909476771886739357305808316190329110335745177336905983379444191430886445842405781234271397425870867841219008768844597958565613880333820858502219441294424938948351974735913171367260846978970878370272638781172166966934291900317972801915240307459135693156916542632474917750622538394566515184484547914856049835291337756819403003439853779274219876127794404927716929459817466931096019939084464363104857493372885396474725704336808183985151724354912139737052802834606511329973973895855846133608291726499381477793872399428217812338423912576580869231299756600045117018335503992400257649302658570790657011122763574007938730777463620269759576451940262167558507248989262235343364438949738416204057273483759718384259219738837482152892100837968206159520799130285781186915173802920428136573656057041330735358441587966582389427948551005254332830223366238739826448070140041729519511429961393556208270818136608454645700332906687189212750181125994966098237471890046649069844527783008623821327854714802340866230281209615641129414944840034096562911977834797840681941561091897229542312935751527224877061116810502758793177278337146813825226556088556050739636161393199661361947194762780627127489389682091098598642118966593952692683631802350151662818546671825506154778164686512472032432036315882142139047511778113281462431448705840885104798363125164974244003380059112820252022574903308529697928288346316411152180014644213864337605809776206673391120505976278411618522393375998835055978275619355395571163654997349539793137004418364963321610976449206056911088534395182081811882874319947905319723989141613808602290679934361163393718106279216625237020361161732992750509270932849158772476345245680923202123517958161600848916743983195699726990057434239743986342757737255461071887452354478419293085804113523395605696397603476593494412923609046352364483128165628755683796288562873924114498757082966783132780375305465431041444176319211263521128187671586755200864110675303875142545044797034507349973055825043782552289522835714641945028088889899435335428909931143532462123947050252630546089008159831991019992715189033124653365431093221696325306975360299695428530050327204958103576430083580763863468155771601187911763206376252115696953961055040765186651500246323227687273779155660761103389997267072161103088041315612328428975566095058301405590216744135770197861882430828763911383905772227556478799229035950029214948845789127543835597876947623964677644805693252926206459788694497737474251630636313354998872862672859451128267136408830110391342775320384449397018352134878817099547752864261778147288952253287015816612687173392480312035655234560563249131466873489248371154170075024767400943188411646208800579096326148326904752659158653857657778845702502561043528860318594895742857237389806825333159420423748702814847580479425798335199278415752258828162792248033562943454759236216894801341344644521031757443924017037562360865713546559598346271865465110724186648737040440722072559423446537277630898299990511524860212920681093216462562054096761999505708724930275916967409951604894524149861939219631463278890740896248036669945277670016290796561206737121098531289599416102741036362628983344204171821594226354445364114905672576251438778598744199980786643958694526725011921566145204114244105302756397522598569052038962577124207997101858955111981231196395598768114104916621102824773747692136900798206325538644716268981090628674982936319244955021147868715125879567427124567250593128338317929158144086745683802214997643378674217088735455415741366464077844783761761394869947233490067795618273298043622261006006285262909236080075780561174287037105924845701806343070712260742503699840217706251154685300570606061024497842979272639663514295776994920380891125093713523266375520924927941632306898154524897476606827031106070556653261196771383850226234082908930457381968447751887738372890657426907518596271669510533072876053817976165709275060519624847450592931795066590346051741377973273754494031677348265667007267002065721873589855189883480439270731954524753369707965822897950490710080433874654497586213755147965118581057510940722022999437964957964688889453847660493972373983669974432621719387910006098654517970497863477301227087293743438029323701252014582575974465571873869764731318211757881066366139958071698936760104571856060276540331549446374693249651571652789426700349043651150325111455852778966348034978318493225701251287710159599683031979423411780265661249391424083118574596218626975703964313362514593399778695585885243585732007437406316369741626204383648776908918174811906660261442142636950759942347515312909622223189111831815966458770819440688998076753474525003615955649268073536717113333790929986346930399511623695399016392489275258881479016478384065270845075310216087213572177103798584249982562755457489289399093187406439272740333107817852118852417606360498174611746046201926448222038010657821090333254816612114092467607104889995906844438672479311937229531586093107589328710373462943008447608830285077429479401880565867774821644115318234730978905736282126883447008365089505763493921188098348097737701928553678753729438254925579216651596316534926061208554683853216745882551441602931117142658247394187863412247337929687799216498067698159543910611444212538004724532399475801232486689872679312846476308659374220279618362674134367249066639454410594628215575601699257463499992109806535773082655228403699812760195106056504002102318652753660329138933524721893164661962239781794880732559641641241749134661523556208804170316349021705104574284176069050977140679613711386613678587843473830871223500706778532570795508592994295758749519489698459550424189550391021749968550324322505440348318671619984684953220804217576366976206644908028165779330221793084984874311681725460362780316887537984953750741089896323268997756186321256553479518436579010413828090044303986202647135106030243739888785433554871955599773825543570916840144159441766296056489561401226951659724147178457550267897238250742005982932903235305273281444724661449484610277054998872791578616862567990965880866198217815245984965475404575945163314271318146718846435043429617929865735534194454023854414506916564736423034851953664187612635219581792957980781792583817992376533659581001244587267289214376414767529642023776027643078662437499584104655896078356068406783137063312618265476159950230034598854540612295671928137078413837143515154289461289089456343449432711707889666313067021137940569148634190442992443991435350607841040431168361848234730049692314268661856044756892393388983473439121809732970673537415662478061630336918586091801729273980423661543691929923154564348867452157967084378835391546752157674765227646718998128957463848035170133803870093967935661558209612447421949313213941390524710742862439526087566862121235422616496010370446577453205230346953722187531543137974796032704292354066996761893184280156667855889434741920493536328892747388791865245550008800333181130966416832858244813982342619109059415749991359405260573005401859439319463757875314318595130144383890966186375101345779166312600063829611732193418199591231594785306792638324951829074973011047364326029650918719978610842360202070951903116719679315014335987921361574617326021396659145920328690523592754740007846406525899487247660751585585373009578681614311209543761267124569794075850182402514037532858816869608087883991229125741797777693537264388172240537865677104210839384628372719584731750254511684343207252173471649302261086624167825082473723591003029099985068473114189614672249046559343134747632826047014850489623164152592138152849144253335973816479960643257996552783491654707147100582617437105263200147226859873997878750950670082861493004945252498053476250266024169865717974027433377089392855314719541487930553751076949159284109091322296510663069087532475468385478692478474349878925800085733045493124563627129214485079726592801470728066086396384919118595222699221438374471326145968362363085135052516958288749261438384795873427994056676089450865508526831039769948458121091407471797908898929905750708468196095089029567531784317173101779613450998203825153722907791141213684345212560590491533618550067419278864477518332135918540907787563424385054395850276891539192415100344592126178268983609603577308036662636278266993915613986778346921508018949929355393446251269745388560538821180568657455593360114315540621494224882661885964650549817425826781891296428325859083724396772148564495198364848175434144347176820281239145785765746363545934631098985325586778276909190088121938235569950610436495116089144736370520228903520726710652259347591505105605027895668030461010240348393300440466246108424054797239403014207606486367892045439443627607981878115123027830493619624840552608427288027845592687452672572741679847129098974120113298100709340025768664490949781116594338598451553503502229267966837530032008388817435519990912021630524143111670355055700350582993743328818454270563270201778913677628916195839957649338133975245615582384332676954728746616624990392161719576214707660750495491321898580128193914191830711712883551752015051628521326726057525050843336959223707199882534480528576176103642083890139775751663416000082318991288355182260295841396920247967356961865858608046799023043181172363964844434894699520649275460615671343256522711318172298034973712930773122952461128594973549337486552010365823538113719844828716666771509799612567685949928799188374402216108480294432346437896895449182352218725743723126961811510258206374982232260928157183374132630849423466380201641036518150716317587996583048547794168136983420617028740458568197406001057767396769340356653039516809570742392696007482156952126112705920659430784179672439429919712632980309848265492509325412000163077236561382467356941671345632787131955464793880076456659761052215121021114613629221819516307384990276938181996431648766834942235045143343452425476206482691057943986600853591440023555505294732289410979839675315504161937056617641977991508302415110602848522924852158009575892131295656694491632710889121061498574047970043661278197759930410821838950739114041047212104351280441840218939362148856833648163993286357519258851984806817290413795814498270822965420288829339737643650679812978315767928170789289373363191132525764275833437174894491712310196448002556088484882067901352462699362457937563127805064519366709899001511670134656484916216472079542481532520143203218821311169077204999089866344157955019991741130784416651023791192302784117690516206124848755208545397330283974105026924249303374905053098381484070472893918050482366677114877371499404199315623765572321636921226963119873757444617833495494077551329253211671718141967565752217033492803048468943684671544997650129059540185362073601935712091337783962806866473534955232214333953652544114303121497159860300418323560613466675293364131954827935610594525419197676641234690767967427101413167678104274298339553566974119379776433914990457804176961108518770166541332579279240873477456121890404179475779893808693447579398838222090962218517845296156650572125124481425523820400306002371131625726827944186348077726974049419072236930633610688983383731154415422861648777640876760373396354798487689294808629927464929409679897472719850983894115075119812911506934512709062719377994623532177137024602251821384193003303269205819483341299081262494147758899804184477896266937245702553621600390742619181510639226476879535874672067667944001894535810523489938361070846667231469424955601141163796629655451239769844574913837674982931310872923339410248960351533830284073206585547684013705671443928360132363049246516472528066857880149536898728361144967616285266833572636553630334457512433401934472526908868508296335170419553377013055506998194033333331165822395948458351220386265553622992032948947464278609312158255787527627941134513835206110623097039219794362452430265922391678434846321754800069555375835035129077591386752991771470134966225128750477354841732457459682199584303647541742323276807490091036949562052608536294418587334023237811926012641664021102249402965312680212812026709152965802736029079425774111944094691062698007126574611480606308527305511484456469842368182398102592624587461827267665617713365389702396922402078886676665970364800748251299648263155599320579101310077079250043106226297877341494824003467505809892813101885624140698927810817396907773343785727475050698430559078018494169706995048552099460831839552260610795028717928892429606020814997028142107408968640182349596963256002573953025075054763386246280441155747031559138856900752732497968768712803146218255665041478080934633952196559240688051530266315094573561092880092789281962647993287521285928522928043529091234415822257639441692062288825465416331697644940964984420135212993138672296737767499510047337429817332115621720129355547859176299227388007365939011412115247507339888040988253506276007647908677692142802092359435457458266620220847887162057648606101503845135897262279953753811605822860181223920248956391276493562443727825696167776759822298170210426978677097217558938153417647373131886579699177659758712306472209060106042548633406288445385073050055315484969190103916974117599607641080120898666230522488029164291857543226332515845181725284299675131808685715631802576535249864165446657599192842419674608882820096586214401386959375668062301868389445712502792853134623678360111152105987582473580640642769198362381897440606728030845071027274254712416320803589820007568215029514851872562934807949545914671007503347419309339458087746285404133185328383843235641231307394476559504072003251511481327432094988741862137629725844297846004380424355544245984465527218938805175061208455607714543529907182622644366048188838319845359585406684108498930135320900136243382215574309893647320684422354293565514384135959115417343040970681130392284130391748131203291527233674160100280934201696509245221358248732436981632020835940657427417744001232035363298320288278087480752086870062200191010982420202093259284657003204516053217705697218123049531518560729220214590529274683669152530040443674461746161220877328197402673514614720124493544268912557441103226848306878225450573199959012246462854289585943098323644528026789311549929342936361447427253674366842457735998493346320198675498289422437100802080621931358418893678118977313390732030084742677322163151795504837570923858818581803905362470940282216868017418093126048891164299209486937703434688014396886535870930392542748600836299032436473801203828470898816451907331265841064527026864368716902767649490780934394967574284184923013647112547899413638877845510062071216541666410975342834575924514976309066989343671320454052656782370243567053005134279861705751778212429952248309410894518268770817519991546541178634021831145585362020754044381849012497151562420884701416718156309407991171937061342558531726828496653537406587973214534453781580880588541402864202853496923811377598598204187478162883542052455822421614530806481405982691244019598566767105540477901811452123222367505678804276269499171482494919346654829862524832105337978159985799270479345034850438163236751259261960836654114794042704191403754305706129798903652687997777129210620825333956587246665473930002361054739058744662945262818072642531339962640800557124991793391774662480269651013473152039431962448160998711041130513866786559689622191019272952321449757684209897266571378699498836060111056415351552068559821176131568205685364613817927377260363390981847443639124425445099567922828991444201258886546734014727782162584718232513277239288250987505090327338642709055670549961800638290452486376739954893218624123993401881121310653606087389549868138885928857564043781467350753748485760638705935023024681646712347064055339077938960151388183228771788195136593575557598808639520228185918789244983510659119776322850317299171825405012684861655022579660100974463894019888279907980414367211908587224503294931648919828476206809101613466987421608747825428162054300403370605466199055395167930506970646342232148753692987694161882226138876138768403331166462345651210840781429954790093252417432952486163233527265881950664815921553930466280002656443295808425941120785058472124548708636310380176167224295741159917692564659111045876121858096188131994460700555275176443095137632458755506211357297937278609880936493801972804439149569754710863163166581186217587680083912217634100292060520840884020538661977932907189446876897053353434876190565205925121873071859633398253938888541397824242534662527586575454510471538927412753071864975108462463007095942148935331787095978748705022468487072740312870176794913976322401201978416696338322303816960477905941260194757928714365816338181203145549809192263001293025458894562893021168425898312900947383432817356951868020471162576414854970625073479401311883698106968367186660683900697755515883087735415527831973624561945667711425989211384105611553303577504715832706729973168820276282677076167103039070849108719488037439396307699292120280914752292704661694303164379878406291849493440317640329547066363832707903761731725405418335567937031376410041364653549784367267592471981700264175974448189100459990060707155266066656603750470492216901166293855958155012316375677443252425533408566236873273987798268038794803508047893912552624228297874696794360706766982233917820240399250972212887473274640458256357524166717227957431691101122717302138539088454566968644857796587432250574365929558878884040769366035622469135821263474062316445275429923048662939584642509535257954640736846398482161745334868246099436129610953329037297800072944877059079018527547554459931575321961714221160266631067141545432297556682127266906373384263701345364535336493154869009998724784849099779682684144328679307960584420717863062583592431008065409850863447669278006452910806090697878407771401075180089191026310655563988870651405466993104545361079060510370749489395162020619839780650769811931590546765956258694359672724710878711980006670890939936308909019273427464926198529430049283856969430428504655246544692372193141801475732597351218963278708926846382110223081757603811829005029082925776026462186771939485045501790725957251892325291624752396340504014075152417000063554120362296540999065027395016098102415196649723351825286764013261998102059627355558028262575279105093616704518558669247369984503190853819656527418404188948892261684371857544888267737589124759855466945843379273500934678013454361363074583211383247591964785083002954216431081745600007444256997988112849029719249949949183946363621503614042948547910157083681175930533661209064092277856947843281188051012471162762151865729369086399007373098026348860717421818521136332570144985076253565282036965190329233267153141310792798318604711068376100085178084471658570597205460653193254031420831166411351751257562616223412603400409286096422809423977930753211003294671917724260678052648263364644206431589181052151938573366029668554851763769936057968160238527728031403651708303548619233775071870341359355117696840208868600371332190968320445992021765343105325821345390233777996209886524061697397330048924922844091778870060268634190471967063063726131027068528712928377592239996189808321031682040881093985403659726784907652439199702378465388195944119796521526725772963035297769171911485379513748957034302394409523689720409775384889288064280648274544944739309010714605600007396094600359380141555260926868054743787376068829124374203526134045367298159509748585861295787400585800609704019754301224634609932684968987927172038948609907327965419737195151592964445179704234008851224255030095859972860265610272871113284591611764712229284700537071807340034814845464021079365974274806671579955012503507066276955756983950915542206742061284617648457102378602122188582665263122254417506899810119516873092118694819541930987904137953580000141692270196236076945396842686815779530373867394934148598838130008769659667998755071249284928815875335850989700403781425795281505533547371783433605165687148488959580932906943850822178434143054741923928135375813893536353007959641559447599251630997589660141040543627475603778458939181883361362162643263314501955720773275028046115247440998588443783722370178772919573254584483247617047388660325381619176422570451129073970772402404905179521577144278324440296681912174859476210637642379761460312579017244595636288526608576413786803030555946380889618774821583835376235478994271912466823444259406578704846354870382872952521770671399231681798397435132966034190243571344913405740361807744617186834771868577803717321406041739943808802545414035455985314565272429302662006839430865305682787552653829153046132738806810441325885481414149917822511775411413433457810234062741248659012900713749428503357870859731622925585323201456951662614979308422425622836258288039997892362661018794261527676968707810728389330898415173641065279263664024000279349915092326111345127059937486450191693544932453173760799650378005878313513075157096710337730408427720524338766258177782786681308369810276448206028446534380268885818855841443980891519329903299561291698324230491047038119383078685436235860392811109344287330898144151358949067812981078748880742992472269725995956550008125556895685506548614742367923149951336244771495352261875228329928556735597701065888260762876801177980634502738115918808878473841462050480800607890646092626710581032865137991263676706327029878063380954032084562258779736593321937380715960757745201596120131142057547180919809905860495957812574604729202022150318954399065335457949599276639121324797176727282184867970840515062478839324136931256704618063364443130530646740468967217645333545421279116727500491487571393915125923770071161879697745213261111640425458802268763630693090139657033367949764376920814373070018519660893920142192653504950077820094109070579716438366055155007462765564225080115172557519134021234105834160866196713506787099675225936882627506126606574817084525277411093816876216269749188053941372303955083894715485878974899931547719394414152557860912866525753389103599616617189121253487709525648148756438609320083524356670696465278796369264462722535110343803701006185116452227263379533491443212615268349664567759287695503996475865832955550772443910518477902440342984924989164444140239845340894304126213220080059739566209142952485525339588904695494600321732793013419337343197565081994555053329288250318279010310297662025850928150985392046636882041444593818354748949622986105043049199403515644231534963773627590958159824969035212755764279448542628847209628659965733687175248269274707877855620851945953905951458352406003235777368414147426294809292941330060304214536749822911811315541245893530045913288788156841583347206738876273249135486108896941475076389667382613550683794705480564094267058027796661760574872761251986666911685447766896157442896685840121113869817847748009474887424868779739870949376828186559055736570911627027202449627769591990539995438684426094946639756725490948990107641158579641176765106224163694425257194047276569800215179988499369265196830460994319058481730390145230819169388836643403942426737412823827982531278579712423179574159961267754791522785737344015484838456654439376511748631680026035995051758223154349687999537349228125747541592917697865753585079695461515952974509797605844117077801087516456546117097757879340056770057028936413139830011125269923698916881220583081588847204965756189067799785803796123010611388349787863710584333145780998229871308912391205048362280468966263183054376648433381375337202109101614388918584120489988630388565637887094823439611152779882447048540445148988546080361268465547095766805801045233014537024023202178083707756756439940296755363440002063690539449973404797588583413277164590035555497256846093617539311437191085794444950119879503907752090101555883655412025920393111983081644997897017418535671613057534584404282776335067311834052132298707046552807086073534791403994805996440120606828739725314492257696280324355617124991986288669733923131258064346947712314199209871054150732957300053538283292949564864107997818991236645566373902018991388672442680386148306069013896898771607329428954073729494339839860307574292002470194224956343257295115066910150513781896289343960453147022121539564494587389104487019446897739716955141811061840678978915565435700589078398889509315690661705838268127587541146201028279375483448645535231647461228403527013539969295565229053623372953119720676747832058760064418651688584196580588934699879362649865146141184627464738311397967795785364654844716447190665613015680765094838034609042831396295416544421792278446737598132769676873511000321036250765422895848816644088994371418575181595408912811418034429824245361000131598070448491392292540940138109808455016843992181825464262800173202925532285910308905393486006978199458329707164008503836892242470531689787541715248548984950504395418826201262556396730857121535392117737851372255152742159165279148896697905165570252214924005754591631773407747981777992138736523257964202080822549979843370934586692848162069987919568156846283425666046826956996900025953068428631704058140427028802781554644078553348931773673672730813121688914925372976189371010625841057984913375659801587978794674310856738328940169277579116201676621026802776807473758805769557037874392465671494918448179735391405413537936739971418409685488291649980111082003028073048254087095087892153258452894663375970466102952691126383248809730814440375801644161335799569241233620690092204730533642352345697992761450034862572820873355793756070122268691749234354905671898006499763972952981824835123149511641574706762417491962616498980395779811471316274451413021811877948304384216566136832275383923418841688446887725902563866645800491822634582387137707963729775766904384935474704457588674755541371245586616026613187129042285845928834710465215918446233494432745333211668834024248291144308412511078221318192858091323910712790647863495309857286575135341120416962062053711457314070209853133992631318906364280168492460394694798886238186909522055247245206790724602514218969516175090211266525555191976651980159280806613682789845312901322101755359320627734583561301621719198820068784388787003961286895804435528519005981693736091554184528447357664031584604485590392776303063152003784491716580167650758212819341541820619163153144488692553383066565513563673206361978567410548025082821535252153436959965540308873832133286482661957539138327971082710009880218427413501277565752792579774391929915002476126977906907672306429167636379114398230033796060770776541526629288146747385526402826304559630332685263569488439321640214864420679579742931779889004571071598499019002186732680654211272165574347008924042767824339078976525616119711036306579046350351888802552008785247787798485242056335710247243971781548465563493364134984306034705678001621007534457493341304399819761142178185356550800324700001206925398407255485317301211468046556748258608164418170565655600664177787386768781779678453526554816151936570521323723124295181756877005873505942713236452331788008915083687968872598830365976531662349784010645130571103600259123017157641207062131420120566172563532515897903741705741112856353680353513599038760889522518962652452390451155486853324879353941088986154833508075844508352382723849974159873840752726992817558963924789766941972669900459208042090382042726180463656117712294788818721773069884837367374210608391274669509127193352584739077511328811590792791358871660634301457020451603284918879493836977804783342587229573934016856638600633767380602760589917785312476941101678081522402168448597544196123428145433909415553421902103912141087999328837171912726373463104226013893693275672370712020531696367074385756683754205888656665325617445504057852447058606014818535788473068045837036602058524259402264891563686472585970232218306714630560712242782548493859676066225377729436905029552354878733481871811929836232102213416600402917508515858519104631728115627641930296481333936737063740457344590780523459081352209833594414294933377615855844523982179204041386176168172092818094170055034775611123225509713879772643958028497782848685434164894932158644489789741892591302539690665664197245950500575802500782754755060021648889317710051438279541908659364676656690207938540023366244805792474019057854418622577563360671349460254583134494127406915568969915499503025507112281218088968799288632463873105634162268713248889622568294029463953848695056376816767426104123028099883323260318291423507610966212688844746234695050094753258497802854196189830092179901368048449683584604709630990094423646823419561809836328406836509953341035444523670762750451281640002591003233871025306772640332193843644752089501563734626123406816784806022060861178883118851083153654620149753909123722951056359761261888824930250619252699347627999600597180268974856803102942972589915266366371782944768730239502880884612756188975662637706599952400853134786571657942859212764591832488821157971177852172753003483838678942705518268028881266701265813039963577669154173286845222143381827619604665264753045710536694928773093878462923281108662165876078639718756202784598501657363696186108405498758239149038151056726834874933215975592079549024978495327323126180472552231295538237442251668215711265529199542321338785970872791393880082263010646854348324248269105246469053393420642337432049245949530293697579318264672474400608273819674428435740553469703936578858260418079840773080994988010776553535530128832327165550243219899475155454609051787396151455612586169420091000605235795264552968088969037336072411875740235266312014220335432185284439660502909506285832448515633268798393290247331504516402982971312074922260213185869008211442188324347948999453115237306273653868563396734202962427162271481129742003333781639272394297908548688608609925198333173572082852932539617238033550135864534987458850700277078594694150081674868733879650136118810167265799705108800804289955341011294427021625633783462947352853869300739844817372031380756909025253761464384092206596849240466023384334085470297064233081409011197277258391395239819623234849282746526709874026398995623314689403922242130786151487631855975098072780694005905335507598144277342278060429483314868382820620691510925144689918884692494908662786862031974797888372539508547517434678217958963278325011358616948618192036048510366079518961256963808374721709342614922626776334188558869334741702026290395165512609538042895113692254987525917881242582096157455023531038053971317788391860420358606788453391060020670879010818985864222537508968103145020212892266104113508289744716350930852245365248297448118964864017007572597324338371057581276878264653610214613111497817548809799266136597065191403618556190724730779397583856554571274660198375736146142528762255311529910044259883182868418348084594307148822493924165277046531374922492709587454888719850960880058838017322290932541718020747678332538841459478480463925684289638164919283911052092486596992713431511919138322394457143801489027557925919990736542330011718524168110208071362655788043024355126283441527959294177649210065160435332023508156554241554646119735935912593882298720274216428395593158480401991722570664104969428902527064099344639295132503870761796956002139007516305145786619551107561003695268016247632581464123250203737860283233959499212253215321885657298639684587929624554777100173517035037386508894929712956217962929860240496219790156666507884534666625334718823813785529936413361476457518744139221616944407225679693845687671585546426529891033698894255971279201770837131145538250410946100921366491879566748316847055595853592963925400973987982044174848516274618023580870353029473172386418389225973352733980738704581174760881571653607951369490744743698886760999651637778328201834416199130168141863149961238186710616305711840899844297525850889419538561158939514789647921455960836729963378243566617554430684683474186872228320952535341441853725473671360647947321012693022045289285818864110129170459236217087858714439605082889113926555728227728797993930369248922657616502722726884629230334752331859799965987474276513869585617235043779108748804573165402671209279856976170030767018490304198657295793460050437007640769009228181971127403364550339758363676666920969145818155347539927671300734600873999339228386013825613002054858712616870282633063503734088541989835888690333145854527311277420151965699151679900446113687564220051298070134672975823826020985072484556194802312751037969276076967697238313507773646011080805445440116252734225415093064990078886248713108695184101667885729569117617449860930432972395810774176785221323762950286005164625917607627747048018820259183117345945495250571638210122242204387754795520757031062940207093984707990792493628107702661803511433924051690203729450055361385238510680580829522168041491031379552503592210063377373342442594709900279540072633001988496681196229051316023105050067312233019549074892201483800043574680735609391942919464467976186447779372506802563018041465117218961935674554075852809574744406206088733898926247875437523625530336157433700559179011269987721332582309532353051472190704534856982274229249823379851383549176582791161348051533693391199472795223897051887287270212528402764310851450780525189423461720855972986541892144451525355928388995824680765721861012724883387145878738435749548748359368906531141880156310144171961019814341952156359303407655544075548267631270049177187344902950056171925172578134567428708005593414333035733715046286496006195133944376701944629168181034831275492794652882406939220750899350820784907051814450791213225770189899951448916567046045230261393252500823227693930673738873915560342384994875183134261006054713666779343471861940572075147599815464265993276968223113879430002323145731371652881466457813524793819332274679137113336111194810826020214314225384362350446059039194872123212249694049067737414688570709546247686202807629140344341933653611351376963851692674087161126308538954829497573954781690476898615403123233468023061156480325528753497707236027870311889396727082531375321466126207265350220518036696023607942354552060980121943895693674614910029078600709337859733062547407574956215083977709402746655577182235265898003961312723902634369893597742355172289961602849782943328148128668392294486279762259064310182008658847810990251326720041665927872253815418264512843077607744681754403528076650357089556744957812768753816265812456882825521918303324202283075054780163470524667312150057846214124051309098102741098560083442186284066233590246665975847039098798902801924787856337347152378880972594487694255920947066172318010257544406185972165537366143487789997812919488613491853607505693675975004411076682417164238124650966396552614162481928364110618504133508267276847645492669541270102025296738432313302296509861990377702815965260045156379679422610933139992147914512459263866409354364550764399722551126159180735341163851936802040503288537626101334357706624313728195591478326641486949002745978618275695458546838885605957383450877096745822109822742051893699791345720935468517812294982495839778801805186868930647700363223335258696227110318466476650135393216861824738794057286488758908856497359134623463086989120648787064675509517669588121348641882736821679346922089115817158338041198014795995249367428326987015647737480805665122330530786095896185656797116347462930277156581429489138707858064305761365060872990410853125258299825065020232931525411067013426984652309164713453944761619662181716777856573387994653795646027348386158915619896629447773399364637602178972771007304761914960216949889722706518939284137303635394641958396493433216085428655140533292340831583591939082757931929135401313833753867443458758412883449852853074710835059501458721898316339667363206536986149560623241851800174526836373736825910641747973555573259140366985868075681338856010689582043822703473285204055556552543032982192894349648267707837853479083867556107150834022316572515981849666928177715298077310156358901302587585539851251068425188382527421485228649788692625826886885059425022482659979228420543184573523911190707446541453523462177516040507147013778467141923464431917076691456043690953077851403824094306816065165980642735615764394859546994938154852646270447132283832200764189010421648072447778054447999428241166105865307056550730515266824867212938417658176949933370484082881001257947384845284273078856218721665284900217174079790533297734115516996673701352570535371655384068343275250863907256113914360536571461857335284039218706202148759836975198962440015262919819212797300234681335344090367636996744243977321614950009625890757986500502026203689871119050149830282638858911843815756328184332148479033139979061229676484854752812207754031702328977286794209278744210100209028136117315251517384635728902438526405654319085435907550538713251593084017238883888884749238004431208400252312657152124251020918267753808023159919044043072009289020768943739383970489706050220645329825106017641353092135060842438315423959835593874655733502204020793038222738854145072246361362612977012503355399377725814958886205701652377972238201455743535203949354559843440911260457108692061430987805725084360701701894350205444947317751186772499020399143895350502915793943608159840305095135448691579526885958539632849238433572325544152825496491941016707329752739754551184524354023472888656074723658253059733227483412200251312114607400967704022762756463033225460455299939547848382150920136167899281715467661886891274949583215189354839709236951243448371769215739114521168323964048656104563470396424785832628093811445260959401119379278254441572007444651304698338356301695554050022705472483810170032963318594742766013342477655982746607572133077784113561778493128047612744104629984804426269402102650408413450274821998159007759637496932087954312682315087697950556922527148465596979408375246104514052703779806269164247716404697996691323687804085037830656329640885354047163614063534940969241616596815985690104485949633261392434212902267827319545767869489661451551942068094341056860665801074513349597376830127307105237118330530976971201302429405841091196167399416226073201090708692253096936816918720640087502594765636048148207049205185328206847464273332540799807240089815973367312898433040255715016570260034902258716759737291101636436127034328093671114664274935486111860159905410179857388560358681939540146386075089768916249947706581600343478653756094231787274904028590704071388216739615541923790885790995204195368822919675213950739379022550995469173749857700706452096180640604248289246595411514984548742446233122051943754058836508453716185084566080227234961588860009919338144795601566035657056374575520844904673032667542558542651268217787703663571734931164759683555267190621309604850095142779284029660065039285478043051393848044245142228770679536615744137059531880968399222336274751623549663215379097083679898749455890847318634703358087977688452363442621272083561750258359311777328767762831552551232476738318919305023766113972006209207432792659284944349080516747852009356703304313963291886830188354375849148979597065943878775533628628195367097537895948947645368881495586340422444718947530192387785600118259952713680587264313683024134814577577346836494267498107910473977647513544552441611502103626322042997262712606060994689795376741367513151939162021233784404243698860398813796172026497143171176126348424382335066762619802783429946031233237345556698811450396717864724765078188977584458725936352167223259648900655550640897393048437122625642413863643270385551406744500611871273342546560244964424887801432663728270844340917314679367814202489224854706100173710129296835959474025403473879215516986723839817738945330460905675962808748054475629296886620289689939556156192975159169936989159793233453647569268750231356129331752971126924056916103478522451318142745131908813923838164642505234304150703276230851847901960902371196341946141259147605296658793154897271782236577060094396874470408857964369794305967214148113222800284647991466891511715267363987034901508726818173463537139109676908928400018522558479091343351377402968077215749718774034788743315657271550277039556335469527702263996866106542676445487965587210654776838169706180740745741759690369036989382934603326267202482310759764886160031116808189426233845587009743227998506169553515406784469770394659594648887090085679221946350090109335606959095299792125557974045482940859120684508034884297560620462528023190918705681882480233101328898762087437410717830816438882889674691161377961943675671156467290234489087850966147781843066090327463859298207468350976484298533843170398383544988695659046668096284065321267331871079086715989914050030517201828693691067277167604851793944243238952464214870770837806770099003422721442083537634709549943068263803758952287438628960889169075831600766556211319532268719130156020707437945592293220590875064391519069817808470863695467177883903249565719118636757826963623096723452395039931322782813937440742276319511846756951220636198348011432506119927511659081938840027369429478362775243005335517141481106980821267797432853336737841884101247655655441980430523597338293778777871994243245712561595420616605931705958346764665114564948458770377951261769667741907421522726949486759161218761455917803407384554436380431918586267931048062409554624789395098041485050872389099025206843232918900689841794677859051413997143367241744766146613610139288055444479538933550511762502518742512397076477597427143412960355237333435816899552767614026514498834274495552647882642949417525345343367839580399235630949038971130570912501034459223488940590017875933624017908206820566671809219404150338973356849183607551425558462719652532435329186743297623899844322776589154769656621021169689966396730527714574593727357142169833446154628160381236020621845306172286401164533818682240248579960740406190495214935597093628576333972761675664117310438412233393814778299152873509812970363230583480437428692160764493994673225146479127489550428288565383484049966800183485501539937992013241102724870363093714834589550225974135944518066539240802431791533022100149560738649159754176337179961579806598768236886036545911535960074012007655862122081559205961872315412568628264359374379242326790607567681254140665361513268218027344978057305777739316948854986513436795919791211108934279653237619269771465154383243470597393987536383932947739479306448875679163008478852340136859152272918182838332362471010020755549484308776209703381175134526742931546703035715277903971995542471410982299258802590567558220566741407121603907037638293616491735069135843319658256876213439603311849043915180778982559761701639909620255439879330195551221614745612577110970959880504936991997702401053522343663932389770699459244566877053374493147870433674344582603449720174523703769810278246906264675900524270842500250969710001816563558377440544352006699657058326597577392415898710068248452311917477971144256167597332241684241612175292751410811744608834686706429544518727583745189807999887330391281999842231645832175294179505758201531393348512251468899617380157763815435718677361879005266763703307255715918246682814190815277787709775291605072733258930444992510458565391271813942813985707964339954017803275876870478305029461548723028916486960234130835728890457167238163708691408147979572445893231134958238954825138760112866716427237500003434335206344897674025186600607805226705427952084794604240096234690527534694602083198298366312347976872056623361546324882576478351927810272041105607272104129083080906705042526731325531526599705369949157436073874604370316454089850634219405871746601389099686075397681049856817153239650051215995569156335519570894146440106007038891999635191787450267964365880241760012919700027734061503735454976988615882707790742852854771754497373221119116699102068757518293149262244278758472742441602924071730962204850421929756443891902374498579271379954728252823069536783403758535169473777515413954327566734957828002791876824973920484506815628871923041237831172022677524657598364452047213482659967534055975910933462389081640370959701046553701371896784681723256863482349082236717033279867979930471676985029056115357926031930795321008240502119287067516002954479346345742998765579448554995921989221815041011410930043554428609710054746422082727635413365134158542603542512292276235891278060162020824395306692866032644739833668810890298006300137180785440746337984531862519707065344278370339182347843693315348505179118678707289816218896535179596878989356132785864002034666826529198704941663312410226235905948693484489822151216703960682614543973535267573971572615270342062243324912031929869984438402838340874909215887148607961459132229659405115285640791877863004546965010684755026494130854198194792181470989618875308055723080362319873733568130950717381881986303244867642683964661111319605829473259411181533823981356867262742027027768549779039007131904905750176364756661019718704151262185039654995399167502377078093643551189845490222706794190434363561499793010128486603487385141744513420971806819786336971103349035367417959038056897679546205180639363502963740897745757681552199312289462340353600222157558808401824722771764492726512375966388689546212569047183775022094674917066157913016948778001709838059873421878011589484417450742657409096837813494955956654734967147032051149039023362420914900919039677507058762192100423568588629044708800958475571961327125531085204899119599011602889749052022225040008363395631505437651967792802521332515556579352562274926433058133253963783495795178619655017047370748814011845280077280105192526077398078438295941850861112342820043043399535938534193131566046364284110994312400188898134318813124952109740618659684783710355044661584491711768819467857832917085515389559704389017962252553164623883854829784993106034825724992083359020764713859300021155708700352073326983089110503643152476441873431084432905543382495955133546479237605718447363303308584003051817238273433052529197602177613675257975242626046528629994377661470111371447105311633565986130337959667532201621625782349586079390310548620233781011546345524584155508713503080487356142052806325585860005371648833700284061741035429384066508549977972122451920045967345245660380697249466791874702231425994697742037728079206392780389668786897825090380341454748610966595538294405358852010282630707918622262402343617568524125076513929054539391462877006780546903127174365783799001261629124081627264810005359736692018982585314781575037726820784568103172040389063261055800523049685919064306707844832188819668404075388210058449102352278048468654667273568847422575180191498772126109405436138774226037110959650892188420945216704890828915126439476118200227775307098563343081813255727278922393993857375984675715450576058307659586363252104674857794574428019097472538255261619094665996629792800793585016489164231060369389821003662045910934374939136869411334082823308761890949079657497055305085407485586850320692579664683033940201017016722990669187646071422282569201232258322840237235355027465466553668850304529179842533917511468462916728842151648300577483427825232412189570118476478158022319940827083619621824921464423210740072303030337393019498003519590140011294795067563658343451995722220318118406670681969769037900367615197220350632164126178306190216991076441210743168265308820335855097745938527561322771392147924011933548882655522519009006334805900446538323590788607529339663546122569709437659059641907299547042457841942754781133302882739219607525392209070439243672476120610451554112841684638802384750070814778178386791360635230475634206967251482248746591858646847720927110386279009537742653315698078351318699968826154027036525820153873335241118367160688943556976100518298439251383580274231477880063949867602078955732568531246166066560923187475591564866644306919560845102290233514024160059847713775878380719166152354675919214676049655055004827375567312746820047838860956284103017586904908277367902210949900452929907397293830398272383350988230978285165674732487596594380934720727042685170935301228137352185692960719076223190635795968499102568166143030302226210697167141982154005758679355634482447098845375914185851260347395965648150609898690248952482749334311754182186449915718668727464484151585858246968476712421880515884537746947793457835239884931346271929057720024411566379262883981833850512144325169213673449516805508448851711987871221597619721627398096791909329987402912068122375090308585917387891396724544220575402575950468751328384833176199339516828950971500184527030327498670239491920943940016862299807532459435044898972194571177420094452844597955085099183928618073779444645690523951037237025939747062308211594426784307117854290596814020385665056450368966360701185234318844850660544973086351224684661865351089334898045835140566700510040573525700556796241916848424157513305981258085441803008338062006136079827867488543502994215430409847204016069591774664368071277308480178722855588603888014243578544441638275589705991623321779995334160789157679592417946652741652453515118558548689370070792928712664107150444442198858658943914884588921917703160965679742014663998680438938481877732301448249674335592987077232678074516394356827172944706878864091337388159663082093149054074368888376152943593931513022682459559728990075624134921179578927660664865370066889909241816164624483651190152551118678161306025763490953279468306212985237776777560569879251407812211280904258413946991813761285168781162667797345920376243734278688273017625679569176826554594648750022161147171284289699993756787002009647379179915149585593309041132651919498059963145647342349644985849324838142081645231635553197482614492555844715982005886558850134585101809513585513242416678232630188307425961329770533874918439835290024968805002841346508409090162585113646687662997807615749208209287549983031451943984868292618265213859071583580182345534638127488671124058549829855797047243060422337359079675049839740746590217927430692464165910341983822941799674327121527873718259937314066536588386932232217667115357180115218478060828266912441550140646752392535920448082438916598389211763161664492950888144348707427818639053978694092462339390992915458240173677938094490974199746944206829892150306972802089442048963685661452875996331639704126532001084467849129303776121678395781904234332468950457863871941415929714785469840903054567514014228755830865826566280824713047827250147904420877375027265276814529352015191650123627671947265140585981618162541135497661182532035329642859229624989978917567599983060588347964423819906958814928078565192665147779550528482465279001438815425229450963901929148838209208644922135288542056512100819510642923268038021648576791721310189894164359504541347994733118855588235524323901105302496268833483890191509563051468100189140195677461123798331324219973780530584079562571793940265425380462707150152411471511637566128831122477623475844368471372588001575527561306377287303486153931595234019212650842157430014582267236772506436322191937990808091042954226824898118644570895702959676627813524395516315002182635977492629182643966399932966107320551441830143939768492078601480866103831701718054117861917427161303706646008358919059338534585531187120805685047446318156701177380969760201825161809046338491548890527376907486914947168391597006832696776668684772402460328107340001132778176158530729276518480851574338694413504825986553119207003450592645804130235035389877268856946003514569359717581532444237372000400056594518516473538700207626115522022302556517298870199499948992391937459099320190837728223885973546901996344314099744856000330117821349177450913193569080781889493732857279550100096981234194723546281783623522230574156199198929976084944562139821445193258558612868597639756540742046708159706200106638274906792557392698776189127996690250932658154757106140196072376064610155392637442438988760551671677011424455775214793938156340381187131038791868106554720529093376540311444086231700198229835053809625800488750278385257397582390369806618292534227574208027969179304020924642779867592698803019985731329761346845165955599006076316748258746972511491825117363445531967616499594111591816634362894606371913256052912990357529098539524771688484570926775703317178569275489797330187717245234648005624414699638358824721932761016617927115911317533400238482016752984746374622041135870868535525136326754913030809329380677930530639149246818236680331172611469620865808964065789811162577190274886761260716664025796695303417830652591255506390941316483513850112545573213247957570722925812544552024021100188499412918550444019087444715619914285917297611835512323812547588599675989259951239077985036592546951884078371146327585553681203999371748098857608392682042601906850128802073955491125006619066223040359690222437955299647876895636321657366490915666983291699084027466453549511202266334719885388774701744505172493328251611168689082308165946363813401602680004828130956336770669833953632698371103946251500808079473435375310214780445349655009662724482483848901422267668508587404524014872897654309556398940930886213181380885980433571682678435526580559815420947593060797908862146510593600025593810173724424897699342040252604858927517655597817126660016169116210682479994821018377036555612451159225974486107978171109704644863629059929082295934502726187261971466748746431308841761146867459908586216244903261220408990143931512106778782368936484213968043997657630369986626161908973056748396669005213069921315127993949581661828775580823159636706769446437295964857607531779217380964831888174560911699181291499638923220375921634852185218207773260304486086578470875038670184042363610056258104365233929878593812831376202648593253165408143688806655008721410833603149703573977134884647798203416824741712423582356830152799259071478349093017198360147186114559052582995311539187362612099970279896116589799350093339257027157185385809253324337220768029416055503694537068856590951267207990321013576699384710040198041605997301488555651114221958522660631927147784254183449069586858649649014781837853000561620465138049766163070016240563707598449093121101596265945925981999704494227063240163791817926958823128134731525323654011586234489166528447227147817200570296359744849902821646438994698874766207199344533976923134932518572763514437593079819455947990646143182141310868129847479189284096558442515527962105005233383781155636804148580869676624325695069756333008873079852200329616839308988137094743195033128711335651165640238666247614324253071978443388410791376271954717879259566578947980431218960889121371026376338095189551076819987001986796759615309999035524464589895115352278036130714039728988514202733980858977766856155493592805185540972832938579736384126965737561142255801924452808980040993176526656220124899870660267779984264608468848863623417308634852648986216654316863941810844728249123268541885712646289831262360340993688962964150844610239991795980578041150421353224756049078144980192504275519419304710998884672872932892413251436126652226079507618094945180232909331686626287459954116468385575952154910998966101545038003216965388361376653040962317821001192061850849120883757506347526992625488295256394730010117902755858864733743511024055264497296463301108566509443489327170544718773024233785348629343677887941467291215897629587427538501421467844891271429457887328733805113096286526505426634817259736452603215840033322837869389523149034180042413487733279066584933259856714057704006207315000247690209957935037737867905184969450467131899112416234190807365663935331381496027300889602772884261250054920059787849116881132057170625601223828613807170216012139084739374568554862013577245647142337870130557054780161970608114282183627511688009119630073284426874914787759220969857076001713064164312534930447893340702545737550639476067594064556880143283807631507159766115227775317748709129451436786641905706456512655228349454630385371349811704088242932486802588694677540093962909323073637556145179604632718308809851266381507485686993575620040769823942177510389557568735037400140660211770170617976537886119526501293674800553506512384523722247232846951937173142685294550047492052106209700909664209308876360602868193062414810139329396786691039325961021518517811397832303499713896111669849271661591248418551604234996354916282113073820991314886200060342479526526301555319834503239282727807252935547914156598982179300837763546746865583019778500107782926366629642858658795827709778864759593647660962052963794329084841543723351106356667356899241534026908646667598242697237649953097220088134951951124805429800605532283201592281322035927800304121812701421477267350275724213455873255833145710036089051664837932570799177855671156186159848535594790205702375061144094252845893691671473131307894258442719537286034133163323487067659826410546848182348348976776871991203004950270033678267447905711914644952810097477479463300588644421763121178514840574471537266101660552010567701429611686619083536898367374022665643330930322664691741807948632959393802124476184931146357488903506041169847956518245284649147136144828270265007207291594859710235441747068090610112813561490179543086750703756944335983191132971785083902751819334331600610975321551342976965871414538188605424559703568481991863585758694237670706686261155807866107859406004425036285133216795307947838672581559018753879468537821041572087671455252927226214793342008896239413055379605029773017861453858446593810286088413842682584311692888828005903538430183384767672224816821526987037731482291984586692516148824680706278531814382317130336254081377792853235981137289677417078895570324494831155881464969853511108934091898386891525875652028773446569471017620746285524780888764999942510065165763936713405013311626299009292961976285019368484309144742403280937923683341087095570848960191543517804288382021431322519251311893681914997428861178512279000307055629499651707039222379795366317192677396068140873131758243982455920154097718373435409964131621325103674191056671969180355385226580422384720124693349609637738213721399314345061337433982404545447995059835291840788060654061275443193384879989268372171123710266414422561534071082787216517933594956345270997865132388920662081153237836503400783807061486473203407108266940448540088192379725569094817585450538094655122823229366831960825592708523977525282112992355222829437512816347236612633055963248995567445775297662007124795219571739206697423952593431786562078043010125180568985001711887169590559224882899693696938688549873411358988199599045216577171417579520148098320008654260675014538039457906313405419275041784536024317267574250333531441188258318335194312719268771532271234913442875501162561775616694675307015966409612032930904581574947067727490052733942874552186170298425590571423228530130021759914542409127152524069005811646276179885503337368136791971110072512820035979129991247039105797968215287981490087247871996331206675987776460631217320273550968166867535604317728384160298986679774052626524437160137632728861235108229801984706423930467026995737281242872310219785889796528765276574479174484714278839735568137769557979828611322040604790572970576970905064580389107049283831764674139628107074741945097594998237447808689193333977652264845744553015297808555427009608555556345162185259343082784668796233961168380859883517629280070020684091924995062285053574837595312483751610775971391043958868993932586049298995905820495934839931561774934863820279471564895018754226562686686196506026914573612715397712804739756790380700563497971956451688573663197491780034594558641469933412481651024864113990476471650185875033755512580940155808552038300255742872604953078270469208465948695065282184370384839771415635958025691416604657205418043905868961854335514694506447900799041340613709878268998522454826020647473386362170829586493024355306147380049011062924104835536922083275964631401968962818740440158611416056885454848300042084716829778502314452154686419146531492487366176251340545398814076850842027288687168087251190510292835855736840132174955052597932705861005319665031638119287839107414637200482461961127142036421118660060863818436729066358565823485392646852079867042733547779089569112180476404023134472549676789619449296468725881115976856463788789966296942605565625877466738108579342587184296185659499710722444683437629298877242142638929205624763107651775125797016172501018653913481219015310618150894855495417151897331415751269696979895474139934109453619721458445671418052879470799103830415103367718244015467226125043343287775980074311439549386882498965455897919923116217489474834716246518527382769295425168313798518014182047347797802740713209765167302442137054396926823306023786062809316117888840849330094076084665696566634054462065111063870670411192061097332544820356990998557464998646115598491201808539063648238174377836217655046979027042298078437070768300075272870651885093983412073235079696432532798514753632802121085743371204413005915103438556003967453229197201234939822559852550663936407553593723737121088212769377737930919282184618889715504880797475987452603270081197490564061987558467141714683861091181570686596412109305530636520515651462063569002267132001478046008282563815635733081582969369565323033279187903599783864780637903821332420448787568570453438923329461084982705055120938736332596923851944725445660404120460047443296933633234699821339658462027543027226503415573733829248242224253703462984854981232488632889098972862126640695870083772785896771149108527887777858769053844783695262628461990483044644726890629259136440790624999846486581276364299582752831431505620168255056202455214632334865496277211033923930198383320524049942769250559144990486530294457371644279293659569846324480447833857954681403837342491243496633496389287313576393920841641275612395764762596566525650697309334447823138643217627271502587988226607754486371247931788929097300836568239791589334419523980821327121611203120897207325965368220577069422092829359725521253814756221231250526247389791976829912596914965863241235147745398384429010481935362072160722899839659855510262659549759934610373586144229392451352437027076116194636213046640098329756860832681054319144294369894014395343559492318330701058811762643171156602504908491920381004057040729110180287618365784602593996517238765191634256779285980400072110078843220737546601335203555300645076230318964150653939254572911488748032261444054454823218439589867182860401693386069669284942743337552974997395787139994446128002543984367312140688189065161061563063556256726112761310560245078706568824559843564999609234420765974344671296261978415726444636765170697732371894192107599846995375335696559633359203337887652139856972230155179581830931222031560198905244548956737395670766792209819801001971494969119843750262567818412870853152421247263259403039377687947079592617371731142807963303083239921333443203477303356370247659691732710441681363293788304741327044909504906094506480260989001360391690793240956468233929179818043975188583347495877590909270687173359695409672492738815542246613535089943647976807300345417061637750245555321085400298081359949442004634062266940675338261105845237558259465778870598914260313282667351606338606177044131303650096173021688344267680290494517326526408186235398170429215064238511891994146302149472782767167024279067264782817992241024958471871583843258558615148526880456409709977210108456108697412525385118012619704995663675410879983521782641237750705991358517602782536810484906605336954123025978518623807199603386205205649453407083539189311925822444229919596714914907912599669358475041482699200681824321887528451458639579707450079550191393449261375763222109114992714102983856070295423194522376902386155042411965922696882252828323814633866044510593138867268065146364016867914539444495640008579109643160256318827323858260979793916481699732157417214897910960114329439682456073009056039293311590327373487163906204983415539598201895051295812668608448256491773382120930545778384997956375710936786460694446026449889998153555791569587246990804072240883344723425681605632033431115871816843989289556693353995998408105471499018943105117716326852562716324160972697573186635249361072820037170121130117256692312955364461871818809761307196141324200286682221705354235240629338449545164595690150715567575857136526518975656706930732826698371939038112121201677484819984954653639173315199677854252534495825450274693318606227737709291692825944361077803946983836849553938781081617209089342612229110250343752993172804634954027247793381602987615210684275026605666355811208588976644669505019770786775056160052385895736437466913062542488329520886182563153172516724132715675433809084363404219514640944925266530874558450354895085396815219836097432110393397697846756934260184788013048718507382594741694985478601050080180729531689067935020396109814612065389722360275433733525784705334020025232099005036571089527184484250815877499769742753953637077763857433088664228356026439396762792787592515543755319018678977657246916356386898329390495183726439612813206517636483919416152893944834344371357933276663262546153387098709400921574531955428173180018517089006842455379305228083400007206248940454758399589873325468193217031558049126946056539489611536417758637924575946871940958470788491868606320195412714150250341628931274832102403740953280729166710798101448175109947903729357976119937833587184896853667292222470934577192259967293390077740288655781903914085461439871122459232230626206982609237998549948634894124992679611204727888716881610477139410925329845463349485693068640319356356460516436206257068726095564627045093194735910360309422036528127407202988715694968107453253070385830728253305496659584672431591397131169552643435780374705446342950419864910236760711399816271025851860559250821016907752077047948157738368934215939539323540794786952670117644838559894202229366739140979127848823822675026664737949139409831438737250949029620328173761372837028714050258190676708213447916176610841401155404922981274084621251989412735177052159795767095729153927722527869450535820598317692270666698176414442015443999780160744695996731599953266682034895713854604962536889516695492183626808169824384136934547524451820037540640257539145518191462619550194800909432609442862606232297503912663425285907331580464277626342509911953782646821091678613264084366051133729858256532182349284375254373667027072640059032273330313884740246205788449264143791007583472974160790780534586121494880987354062376132405843911634911339596237489418886655433466603460067588714620288116630690036008142550382409254111577468012864810297845141134627874171065563257190449416161549354169377488733275736395547198010594976638529340199892859908093782170487735637585874441401150561519907097647577145885542084621671054372358456103008668780056215920492932699250219456639906173132464939127804173590184064353445421243868287879642001149387480769402146419961313194823647051327491129790193492653652799389601514037727963133889728592448270763969644287782900168906949182789401395707304120358433861422045001073152948834213922028194288728673022626788401464233113370115542150691509895082206138408616299245872409661270709150630804281520077052365010426574318497261981140518579712880858064155870946256239624349943685079292134451395059501890970176809240512672221459710569864877199982989151739124121848281402618421724844456213329349945385471356881875320345288111083618731811912486643465289849047921422029792695767190289880854555937060978052504023856853216118961180609892496820283216847474340381160341185512379461150289085471569234684469680684370366667716236311785198723258237443728258026724359720421790272761894352336728275552535353896150292533672393662383411392978228587890867376626673684080243713095794082075727981925971797828127758280998061468124300325496943618045529174119272306480456084135183531556503597738315145751695080750096236089185827250642868689773938790403065853028263321841190244147213045154754353905086897999671469089599651741202356713520056068095344201743022508881375934311387365303815550814242940275844741731382736912638512863113306863064384070205375365747871352209098392434392176415862654593430431031150102309083326469466910562248348782914561709003201673899266543657875796042469238856300108533142261176648349644839159028080376367950704610102449556517429147253007633564450619116807388625788060767131367060241033778802155000036336519831459604276816816155392996261606736219019092730338398039471306817350700310483821087500199502244281935732105470749863479443661182594150476924412972629331172451051986586380054791660179522831189914489154826001344840786964541048127985616856267458202385272945721709220468871459084996796716869805685330987579183138580905824076988102916453380790574162928908491157326717064210675388664625763330378669281963661238176249564641720181018411681562098038259545767100726929776386302086546868866629722923620051249564226735169963815174895476956173034559411225583459498817550472067243201841597607032536720644625311189710842219411144521448886237240535220441862002414563924493007839565057333808187754719078973369087970885478146206691896443949925575085854388770944975495648856118542369301864880409472085599207067839965311281389675266149882300817575907898806824628618638879877686575505692960724331522860490698938634747426376689130645643065185206786257671839520368869152197692749772457686982745292544383514901630228181256340243377837993002991167169293982858092397494670528629846428750127696073036708054967172918453707362680126698928918886159144512924727020216746962555242888535148570178327738874012477146324542458620886775386781883044743036033258719760573484371880257640562674789799761723178770626229015223718396918949480511459707113084340447535893978624403413284301038033640857592227289513465637190468979402706983507765839949565830954166160941140886988434098945833956888872939603485906990799778779958951867780803815699260162610517883568345184799761386491920845283025218569251322923040979748599877143749092783100244091865683186111236296269363442346862439696441739784353335862305928161456570217678755753309729579572588430489420849919621538621059915400111596532985649358698346410314514221585117807812423375664710156892211333887962756727094172383121887860239863567690433799521251476146974768254338030754183534303234473568888800549838410067122117233487834670303494136697200185383160891479812178309588446306985091832151655234093926996797952393663486199919259908515897778301016488609709376942081301955309611763224107913581149854707092931719017031368407688413413832853929931669619129453789812274905011904002811239820939001523335078148479949666135268617181283270284328859070950540923652108545458830156040956671325963853903216912237182648273803247966121030851002018808533310275588446500083542850003849431563752383719844235165127099062271682378740049360938172381699826181192133198228300178787577361424564838662678676004018138030171977996747760361885644266490303678131084794284512315661009396888481136104232557163428523548678947097111460912469700778376949063472904036331635826028211490853095294040842137777745817690065456280623533734400654006886011988768889113672411684652960415350117531263177792250122236227418630694062640660821822100191944328790484388954118196849679902246007188227083266301217601766649972099997228650609820354194238551533213828096814885921907988065914225273527707983841505778990640334183863777331838803521299404909820700842290026761981621483617476110754218913671747176789208622723938358198706569853686790777722815564301582851056310522446029298534278624290432853844638826383032626447291666331466907305738201627079623362725575751947402970546731578987057614030567213668920214838781303557546945763702100419654375000870700886569959534265207920109200067872853645635138853057532257670955571513706141430961961457748496425139728898520491474088231067973533093536870154346233287243923558284821740575225470443096015725223985644929700276625564524589962513994927846838603413829668701907493226649309201015430693754869065262304879701167898615171446556746474885469170772496815580583156517800519199578220845936988998976271461879411057713748230182342082157514767894306584673870096969613503646177305835979083176211922921955010770916262801167094005076336281242790593782934458444769081883392229543065947910230488749954946219767153765926434960301156583049812956350439920863252700996934836761849971457072789885970141201504916937995427636086473760952819580381536442102528425416484256595116649932011659621884671330564480791608542574895559660049197576392097253501124781565729508219152469880866163069502056223082105664041719238758875557589300710820514628982634514570103696516702896719383834642422638453191008996891250804601987627501500509629058730964340689407284096867888594519417615792590388492688111653097284585901278089990054113591782192553084876799044154962975062811865099045922567651818070132454162091112431401366857529589963164008674314943360412645315089315431136183833740125673335926419562624057490925396270849388527060006251700455748103521478157394487314937984971879058991674523451320194045663981550747270198211783658972511760754161964550451312139891868141994206481567351189865287976152189657544997187399108819182409370379544765294358771744880237898438676073226806465042670899212569720921543613411984724475578945318079200072881794364840902229756944065099046639676629502971319638701597135172587084966367603177436220535002750843328626934234261134152410210664005376160229186146973056568564718903848202572361621418925638461310561416584689614373368465569865458205470026101907832779139218906494756921079497930799152004406174591559683896130284261422920735834333690078178159748917608532289018900563878111438966755828973583888522892004866940322552866351024027212315665476565595304384572583436739925823505254014104785714750090013788638898118959346139565813819319663843699637286073323991376640032038406954332684343245025260447720575603829449460385337228732571124958393682645913872663659644629984666844827229961313802691912958777901093971113754851158240156795925601919868504491553102882989438296901837094096478060214697329113948888334646037048287082596410954264531605602153222214702908765476071930651148126784433296927393397392333035289047398566133169646742225064607818929520508427556563768752454572454314648390082834436225125144904856561272315806656607757175141664972110355401737111675072020820809423876686535371608264368027939101492983173055680664413374494257836069672819955946542690179973286835060276508689672756450684175975396152055241397802617810222090869637617597786372121711141369782038632603410462600524219916768562778272399053431192926096493594726607363110558298805135809056687584295642130518096277168227042037822647260228723949655022604052113523947587708363643631166668190038130929824939316134690589226683898794099063371758737007501692113347270346885319765991777961524205361377120679249684248931705671212137280589723315532133700215793644675352990569868389402698007117285088417368232581070596950675282140282629507495156051423168135439952502699482147591051919980497669827877834606664181942382461675494214871909362599951992314140996195562019513387368202754595754662392913413550522031409688750541273935250378579368267824954106980719457298238524181465095866465539067970961988585793867540766434058526436788054331729968268728769119193675462046479677421064919078591822019098889422532181234755933725714074916241721355781658087554329131414106727859669190547218411253296979683906790485555715765342284043110052987938581182856799090335415118778471555130262165535362113828347113392829104966689604162261771207355857639213702867839849549416024012991839529882705064813912500628166016243672770110590691135516415957536462548435500285308382320482287030634016404297459850299978777339672569445884456296424329315541773995098537895093545409075447336802288262771191861549467689444105466984291657401863579306877355016370769891754251968191461341539897829677615081665721066874918194033605326257770318274656508888518847614433125037981991111545222958991545439962579658761482314510176516204814842659101712507432725094034136251094236231990816480848951456986712809267848620518594006051423637390814931274013027385909250658377045851840715982652394935104614736933346605277100271085735092279546327399251773112084689406608628209162928719026592230859158452447697891219515056469990113179978607478605271598202753692475697246894782365330415111371763211658947559686523377668753465069837183196014705550816974223660384347995687516448130081946922875984676459377453837576311801161026737537604305868287568227253554118298245168361210566957601673505524741771165493233275443081571385215982593207214088495065848555815126950887445410425174952724068255815799695663192481827936432327117206504544589350201400064661446763428743673168697616551523941655518543466516456239127784803288702468954516954969283951924969232437788803584124841940570191439508101246834540921943954018848956850312387468794125169240812190623288303713666711025659945667155836338049101652047152339126177209173347206295143541801901599660326372467581239322753137890037247571945232618816930721754162703547161639769395463919875674729565210894615529637165567705920187283403179696919048026210681977581179288143865808743591314945994071604954252101073572692851209636085997089811874889963214141281906035335497904822298235670178452616921568439595572134762485533667094248077153620472137419862122884488411689740467626190003580311014241560731813081970390222621439581180870793465410923623687314696956298526979684744691325679057891537181875852982622267203839880699771323480597482033676937018251274396393100345470124243454492371632925295973716281954269123510440884274456413103042845243541946688373247578500985136911011219608203002302765646675167751446268440037938635862289493441494876928685201006264716801203271588555499732758423330844897415111830715207580217699906731214482642861449320058873652976674724719974822296204266699285564297923133887794124265325200062356731328435581033373359198265762824333812891329779709558115525916865675230693560752819047194674993550940869762051226459987938549073376149705187532415903368992756873841474753936061432367565698957784073942536156496434902162484916452599194408641584692182181078197896403294161092145903281947010610351317716011024125164067338323945010011876230867735560955890084966228962533213470130957077130466260861348674490176001865424379345712539172764682648913908900026534995116318755679125995574491808706466200861845179604200678036501511017477007623250710810984605284356731729136268749012838455525082511279848563576224909811491034790528220617750948257904784160262606129070324378071734729432157695293356548411216297691782806804231430020820287452698628800359753864290478613203419013972974465258145188021772165770396337567554837099340569611720203566937795955593172538282055824572544840019484327764464499666731515503515435888629958011501205724605322222040077943425119513261503802256773323881528976168254523236979415647907357916950800881615222838955025618331524643751792271816127779418901858965419278103055558208321316042337506856464363341530506681510601748640920318876615042141699055857724189905500278422096660617899278765043111614054016849641326186892629523137461961067046757345916665317157497840576600910595405422710950662885672886894019258192231692351925407279391559167958600992213447050335238029761720971470375609641671140701485987773180846937808254149435194209376943024662816058898867072685388192745070500561961262621251169655092602514074749165785738739089405101148427679354979083561587302529504276569151547210657492020320383587062029432302506145384307785313439504778017381626694049586080279536350789144039920823476026132788469063175060855906164878422946662760228684649094526230441844017790133949828793823260497316819204139081057280528868343302580154637657998357317206480069300439795145633579630986846351483470873083266609014535039231481411001031956230520494413731118227011829156788959852137238655516140098037164590579437339076766928444172959543458470035368569092720361970496275335040198514751272364598131497732155597205193563072740838823129720178531237897661690014823003313100629806932988557140834831919726211886028595156152027163438621367695365727881240347107819021325493705408886217347954093433973189083026570091749793548451000793400275467843732251088457080465015363759902501957331280907884346903130153964474457111088650325356266790432689250668267978806419893481526586248652319796888832144892161876479660936123366699225600799548425406737429362884841709018476942253073211791428385658990746856098617652421630441217131634401787434462602179528901818926725667894956119447031758674568567559710127902586057207259715907398645950603621689999169568243847349982776307586194570155517680639269109389828116930338442229592377824125875468542279104953576904529263519994522503603445719371923359791711709100969961331386405344198414641098260273899468511849590505893943412291029940859048587036595703254816258551673167278720587218983954505933824109496022381918137547483864457359486939515491739054179201730767447169918945783532428743371266798880676687469991616507300250350222430632105532345310308982894668837390574015848175811544559130167140225996790207776369258091367535329642231889221286843625350107973026321459312242108483877852516277649094398011524505242633966973204841689440481321848222707394847011371376045994186275780304217972594333794939546382397386219309286657382393333608836236225314611624026377656674217249321599104099095884522671523791895164675526615483801395037542376455479985067446020958527132396516090950201209490492774245104216694052348620136286820295271558747904106819046637383217412936156806837785350623630386031230296650635685505187519306069649258702784642026671329147398491412947915576862356160731584920828329290245891060363999586562973645573319636864516031343827540762935059093389808636213396941904571712452663025507966391143732911240730295864701081939005824527506427297431810226945271055926599331534231588640668494700893134113286602623295293911401396498429063505463543377824410106746582027727652549146317943335003631674825693739996256055950453549247243910728394885806735510059006210693123745116369739615156288400000587805470151065195729969240203632167785906274998170516810472639710053986015198340312468181647730162497377087692425572295967745822213594722025401031405633310765800836515139869137161245303004472059424827158159744289997086454122049236514487373532674231366721815809758745574997711986679674105902738044825172839876850668865127502037060738123487249958606207446018167736725329098922670908166696489550072298752094971735457454356589199649438175119202579307074153840494634101654019900377474695913119047219004448861743825075631368765854493938528349767248906201117079091974749381399885787354651492228184095786445161862292636610729237240130956842632312562813408052897345149475310822898455491402566854228463018203755415919924857227328487174608450889479752513257791349233272014473345599284503497778625885175216375570553283029852183141406593238743184595830790543357366217224223196950291696984551107197739853818991936779776373332510558928808470117280572559019888209370011444842995621064325448576758036296765677164302603098261447568735876873881771534535318338014198805782753769513728174575962873774011906423523344108939278311367264845033614666927339796196888883833626858344513800477834372553758614786147571162900111179769527399901623596284956116748199565456121852341336920828283922916070522749745411653560992001907384476785546193046454634521637406040283629239908907429012479732058038750648005965581084656239524314796712527960740345928330690237023110253257074922342219234579915932070051147237440438414650175637326698458475429115414221569083176790621136735226540573788731304108304841691264606269931228459722716514084348681312323082753233608617360673878194843790920740217492551781899535680928202048604040043780509646087019133754625136984986080079582443642976176741896696872209699851397338687111145906043066100562128331829475753576721979992320123481853741298420530437790986864371187060938891718912504605010677876990138062515708974344538973502287871001736401628387271382640160576163912489116509440221055539109857951940249190699601248469432773543985703227863021693931708085341344092215100141576610475591821554716011031573718857203824325724619035736009022111646484910170788174381147384234339796142382382691185974775646639175567459141493891279255801222838516800250156529732184224903544426085785402605651888188478563933501314815790902222231013290214390208878938804764377948271410935038313891940728765421987875055945436920971448053599933490058636912116014399535388864434843857695554785507079944732622562754844203699795151898065275540624726449728066607850973195439645959839102133896831650358626293661997225000849331364391238927939764236695628738373139102512538572476302576937875202726981875795408966201407095826775411165881176881855736052288060357743257629212170471872056536229501940163855756601134059173371686119417386799858599048556996020571053047789369601167640963609063895311650537086191777908566991059159273035210766117865302719413945875028452990810563236597726098021540102765941770191721163917265490430303396512718878212919857894034615005751990101668853191959124164571738134652758063073756326273341440705079225778057682972550172014285583495170534088611228411295476343661099542027793390057854752813685366078388979441989597753149198751318633779902889973845033220225599441502086688384209539221892365413094450294988414902337655068026573271943279174016670532330681501755358348820173667484612497565572844963144046306335360244170051219983800116048141822248102888819886588683686578710086145792603692732997338273694509940080761825265296399116174817349342166616189413204413715747537602623575667719585199789141601531958507923441386994154767469860829504224740748259907505358371111328382737097443090459467623262101645014755763905320061700571353078233886845853265647499834268771931374660521576521742824914294667960941434520993151117370142733382370998197997362785349314853175029227185357440200573298619187410876208701054394443046371891298523598342876215055168380366877739469254212386722153979476051488925412227728139574619609307748026555984352101429164171306242763784383891181895269886175306418664516707461895797486264725085097619729875546211858673128120720439420214694366247144136404028830835026582319361636853007778230062697918132369253963211460948628979576630385504414336248660433681850086679993429550587138954751741065142944520281078142066465823590006573354706501860191624646696127212538121122859077970929435008644731100717377335750129884387921134002951585742445564263627180708004842259343583919970168042980533292569997766848448386839655509552546677760041795724460403606456549888478039527332424391824682690183014063623169026981945947821080078140843554921111756245810258772641114243087912920090692272179785221712445919650954966300335856410159484884320783699239464156991997120222287439757886515213962259999524808894061848079237130905610344962958605402986945356636268361744069668479103462086210788454837746467048878833721003665532241188723587662258804194079865746511234284695935218710556868943208950602285293852477047156905114579028038079285857081387524274424677864303178894520708642472629601070995465444870956964606014402049757317567123917753839423806610879171466504733928099010922668030978302784916762329926385647771305978031660805331276397902774001720636053955062788667508231493797081875259134977478456920255544225375081435767926312361355502584891740121931679512578084771283797086044066890182964912713271283284081350097317490779009941672448099198680304746231999492196568052544062535941362312273587687879705801959633768033620581193882298873527504106923447443782839910824917698027252606855585128732149680500527132880832334582508525437308555806506390152112875425138912151017595184042297050552158298689492488424447169635148785485863476372485413795579730395530928672550010846443795295401215446957829563232388155454328802966450596469238777536278442727552889101014434171765745431442854508336761425761391657350655676858772017836980833402547976577762122895436780944321496628877493833995791799879820280774135223011860790041824288727288015967189156746871905335259069255728961355532633644373658921630902148481976787000872168068287574180352409836075932646217237778555135222339579939507520468797509021877417338388653310087415273025928430576664864001491049438891622569446722765777389788134543826385591547541516734464482489355329736530314228496465784633431812598471830489234073065503487118700619988282453361054498048897890910006011040408413813043986870428947930027707904154238375758123186654037538681255881094614419816264486467179886192323372100558267579804141769654271552705786829479567329599068550870980810289686424643648656726699074938256159416041156449031616165306882123600238302408320001842846521683051551466547633086676285274769285985177792526670506602079801114288104955223978323078153021724365017523809949810134225942123393346973387576553388552615024014496054724127425207962241259064802994928069200156240764356668428868896705336282007290254652429407279404237083084554898380265489988787506984498342635969070126766377880253484440735616594291008024152751788400992297359152791871280636172692015332434714628587046590816528517560971132892413893811689336690023280414445315287288131730434538853118533372498305545844156806765790598805188761568266133132560262150966840329434750486292859423892769239959439572700018156090608459230248398163970256701165073103487123643341529142273106704420146267310505699498611199330304143701985112302229207184694820560846696176760686858842611244471919640408678137898234599659448702998083117167025459513213213558066401490344705938654582062115943382238915536001802964778431063671386703481199480722478014937267729421822629044043306503011900721862322921257425442200853587270590861839295165548030543573171308728721750953963618183000814530801712224204819637197471216148181063829161382711557974767013768669159682181515255622476471622284184565769041354392724391472542845899970300953575920289746929347488679756499647904017248287585030173063734860826891343998340855957791753993491008505109648324149113048675027548534924132232152766087863197234803280917911570135875366113718074268869221591388518262476179665805028794959021082103552651180901196792437696217374950011149549598670430171348855987707133475125514720147166087116582330292178873509757122908717534520519110476990097379722444671431537748320923822786938637645660860471782579602553725747631157077056177233426735361607384622305685265020078232277725899884090741070219671851415932837960287770288106683660190984194668022499932418260512272284208591582481991205284019199502523662147056447705933873505803554108390614219314127734866500365405152118501953240625754679741204812424471048040204827502703523511976811583933842458405559881899495196802056903166596455208480931145790706166378004225593455432056325381439417859855813069822203962621621808399494999531330456326677912224298687755858085470674620894179056127360059085794101040381504685189819698596545548707959820855160593721749945864766880126592396737008194078730041380689994249496918074084170038330070695947317257572041952058026953970017358049525090089772077330644202248485373147538313799894968019686163081276420528187912792276553985704219599512661348658473218699808508556172918573835156471717688290256654289014669404197669810970560684570059222360493206633464864940018505979232755300367300975132386400931810553677488265716784692044461133787410540181536263477879965352552046847613687876510368475179481435710038978662689448377528409241872985935934322246168835198910141356866521333685989122605292835167418220210752178641138738563869361901182209912207250655315205124122242521033615781109713107817404278888263935168211132844907020293522335876311262841243208461688434708683348729507664976765677488124118612492026676869997767078373449804155234578722712504858099252659725575240979495499959789382994670300259433667045909760900437519971949572338927199981823006313805160768477808645157019894057432130946714671753000468915691082914957849592252699191003205381698936272063219783668821476208341335260832950219589143543989696703631636366935558714431083807905569574370630967568072608242392007690193068877316949658166434277075391434179446271980031608714767049274418241565526226813154779162034420215164833806130755792414943602289535305936984864791836815143116361303349873413673498753282779721935548565567695271335277444761147167060216866873894122138586140792076565271188250642032803247752588346897946240978332848963161872661147329903854908635753016693206658713571792670798657152022851867731931728914865748298028108078891823571616484686963825432270059617004545189201905222996648918847805625660808539246949941058845219229716534896990330171710995357048838983685088009205609190193540005085274429957932470027611405572380203758720682203761810920351349876958599737334405397537367908966702155390484939120893272296763804572626240584382124423940855727723253823548453406518415574391061681618022145134777537507008654208273274515399026216051377717924317900513867703638909483432983463732788351612499136129646922659815109095311331208873285049582567510056149063735478914407217776058524485956012044645736106346580357478368839066465727942176676303728261740957090662484565608826174652005382401268681029348239959486639100913623839874178392912134650301811101622094442494445526100331929343972076296567975531469119824827335447115222016812634233819325883666604544336991304833998006694500855896670788915213579959456035643092824679586586224399005502854364541228115815232173739086316267726740309944286410018971355007368369883694923190271220194264733599389667960758868291073681509317175075830158421193656144670792240778249668391826845949379515766475880081171439313674021988528307682770210011532023257244264936908597031399198867415908623936105928827971367223263386322949477485671295737183646494040076550700846723043484278191752304756014512594136881768064688395829084833754504312424743574855748209885971219770802540642011494588531810043693318852978846975350445346052475024767594250722450149007669934534460962976527981179312574738478151086490824585009237959292012212016463793577928842850884654476972139110292689310462548202641845735189259240895158877975975897024155582843663367096519058924108637925590384164135474585457363932250739352180145968508356386241692979012677635938103762440980752900949287270287911040330173909476505018624231901684034606765134761256774779528976257222582998267449089969529776279779280150986702847611110092992612288463489087546911198047449756229735630698186632462038157365001298756629458673619885129596363015434460337490324433328656057804224530960504769476859224041951287713191802673973448229332119434215149485292019775940846876346834846429205371179474701644584724426446499022400916981262203810960710280729988029106407117113262756794151671503017104200012385231835234294756748644408271787718613133746016343388535720160240801849186623734510669499539370894276608536997547611799628219734363162291758570101694405537719470923289343798014935747695591191370318240749657960703956099787362095730155530948125655117422755454053858004674900337203123741319891209763841377236403911926207996885916965038503187224998666962003555631536426244296087450354500761044138971404908238426408306925249240721443911870016844834312374726221772076846834120060905859162001708641223155328954782980226968201706804906265563720907573828876526959723058582566723801324026041072882236494689424407999703561133985772700613810864263688859304981786190389913866843542619345613834870825288230650681476228335476099320523683187680093790366465687365143131466390567299646658191291116941247542818826271747430956148689108232402843440886542215537166299483376592119041489255489697933998473550550790352385439146137727920316007804794136265826322425547313827515823838987010338616443146800984380498463544425086229520230164454367001009273489442572002910691207000093401420577792920632471714640739314722328870218210043159970099489098762897355773880713475717203480998696830639366965649540105404188154971529751274449299065625483338383428724765327815847444215617259918069235279363245978363475307470420237114093878572831400549728563530465515534904909208172060902275555167375584573357903968079774948581968122634782569478185338873554153591455397280862097044882919824950226149130113890319603348105379654129465548021165154542680015548592639754488561585745903359618341332685114681115861018299979526603713910725188851748474023389467597108600053816051728162985105800980235454785796757679844884141857111788942084055863863798405271673600451785609487972058476614718533649598539017223342028121033036821219108048569016842397212325240894980162540466972466474838219262379926749084514687691375984735192834575980692717308426838577746281453107455359236324727562321541125163368158253443783198990041067106868110873302971961042012033685176226315362552639695255580532085947496746165945233532471553505088556799058849306442818966842908218275619143893044058957961454671623223956811291914472060063417309479215032047145277375043327231293647547427587685282333044735553452058232631255630942573959872343396521057229307104372573545693771608631806915707287969520191762577345282396789454104265734421370916053878824327576323314082088713503076910481355435758771530187829825775159641913133897397005487971179385921903886325617658293889682971562784457169807716217220938606170398692036834660885725287036596400812741630546907270618905789620552125630418837324284922593514184482460099172584843823256804668354139446821166934642729140166015272807289377514525669080485624556470261832839687210426116325293071752267536172913051860315853317217667021141862432954939966258789168931760205321862779897404378860282855755383859460425245593497122440407448050356621134216642492474637481543123129089988689905883401101174034852084958345587158867965749125818421427609620087260398955177419971201137335689536457399860335791136281969909173583416596098817160568183432130439229467168500763509394756227131758634847942733731149172031993577851967188423284746903277829006210261348145858676703681143733526447186737210845779832823349140403385826647457824188575936079293038970036678865111738923277368897505143210238532847535070773961314395280678333495485058614909184718534219109636583946022840525379086646411586216229141474153648055045568625143224570791838733197475349073988746484677079448653626564754544602855750121079903957472463612751932783161059880204665042591845978453936042005666240819982782947662434720529974739597450519088766305428359001536910787886076650159692926456296343040268675581179424574705592342287460810027289440624207794223405247626653273902593244012737392412668266945111751006458837275936573712435900917806635517555684772183319323482799298278475709067494919005849942193165112507138034143387840809807582974176046533877353689485602838830912078621899781965102939266319831096298429856364998220146660167567608269129829910883950355192380534637592754714472371237858207326169023173841844093817677255840155097377934546120933785007540174321708878202688614426658502592758504465848714785367830921528950507701366991856910341389011084989933896443792412061693077209352086433567645690183111568561343377495990356045706707585145092063617322297858563716885746377561482820383442246911771181023893100631112647497898424276674144441418919419788727856440216539798545119285330781081813496069007278404420502537488407808259025328594497508128831761798457755494237745245074901553512993059125011529700686374901010140474604553546201379654326036519130526006472494862961582014079979820222733316779859404935898957846635491027845112143395711759777040583783281189124867899912507251568600743319365925218071723925336340951252294708654174913552774324255747332833037811669602641768170854818661250667412812043905976572456675472184606375059736932534072494701186672615699760762851608458452185167675488716883817570456302865225463783221118638004123537686748148694574112331645361349458634636499393474093504350560544446336652017658947869278493215666490953006958917160997202201686804334870736473503954792633127307223375951678259323263872111728091766281624554670296579889925221867804929222374806848407374723794616686045447449035796979459927846462881213827577979924487589846556459446120730027007045163420736193527560649677542844369073358622933413212245012854107344905269209229305599183684452673045126219901634840837020221898049487690541185627510531902731497724348390601912402463586288385174837113947473626165207459847287598938646703340369576691432100641046370695748636034244244421949817042864627192979239510335588895403013714707694497718942518172245411597091504434554327799062715449358001217321089839275801347673257141338931826818479016731249542330960543838003353615758722971600840035726871351228890494862995932932595881989527565879284278495995049987277288925611631292761114292881957417907241173810454015729342338811482962489184028130105119693373967894668840953024665680484461465587744833543745004006504298271246220457454006965166518100095234438830092888629469447201824074203173391374047523567476727724902528221577893499849282927660404877512280547442164359878845068374545821258376541274184853300953172678825965570742456389601001011419653122522056992068452298647915268128690243374931816343156037964136557114287657010870954280412851013285936668485183273848097158960697723916510197345444964261763831743758129451136763628549937855715316432963702196667169347205899524852442815231505356792289919835377655570595316616397764558253865441526053749260435612295302036347305140635908012023209247156566201704930856043955382094481542799676643579493298949647604852708771503646533181113069840553770510859610119371129987605454045518097948105082871116131227517546039632118848270667761305163571583671541076365055685685858407410682046253939094595030021652249984120542622042957347716384477381775303270357880139286718161996387329178102260367633993243840566185540340448740784143795271960817811641831906714801571454906970974542737361784580345003518275903268157320274733729029786941917524101826032206852348778868321280171054845936335678879058668339473991677080507616095335875086871512964838501427399068008369259388406943160405901066529273948003216950792331725729216258505050380258168099489768202492409766799364211057030692885806902412352474379348597095082181788461443914521112585610355500011776918555087534654255288528257746247974079395996305819238150544372337105567384811013931975186661543727808863862014024379516656934949723638726521577964075015586269442492003380541195577619288270566051513924922867871597223303970426197762583415909089392403748740227072706661767768839799475697639254084576831539308470931578415160446630543920658266226436991315576021484305984499782971803887871825907406703929265496119118203076742397453141691514944464846199960938011369155001894302010911524902780773284710519368966987060913397534341278389031634154109482317971814286076270020928147277343353494740080100003288767834703311764994644615741013731361070474033013085940876466132661323796768311048335570756428568330729106619983295449697929894850111150533985878322485508005685501530980659757910712599189887422823148846589841783254047506937053726027080484407897259938644481096302077410306537666890754759711019720820594727242961038531309537447690944373739897961463744111995338840297999345337125230205337551573036815308308018223184900673704867338243755359473085981479087322304903502660718092196391912202808588987161220355117207843194891267775526091929644319087693217897509823550696828002975878932255002844824811536465645948335940912308075969682464722868110103137942756676426792488536214949944230839549784234994886523558690518902616194414655008031949070499396864365332275122346384440723800596177018196009139974257960028326805296765294691102650880624837925073644204398444428311158531925618599791990298044911626226625358927882626394356538667168655173617043345314395895932059449302298740751789425112041272791676030071354666474067647075386158101584013804721634138763825754589770934086290416526067293399353860342857508385087892156618423160386455648581714296110489230895050531677382497585486532727403507763379782831998446683328127210156834441523296023043246682339254745825398242618492998657052274957959989304710437935257492143154623719182448279926926685812942173880942016601112786294374080562546707228454993089560645113042218626169167431338338193344507305873231712769914418449955645655615381235271421565997694321399173305739796815699567754307714454802368582194783761668817166461125822982264820825759395189024108922651525547367838559919956235557814981219253704868436007100463645906644600648719290362487084563461372358222947884562606109681189724848010046232564889678813699210811785820307582765326227813340996923054804624774671514424224849669059901107638873606308892868302496938256571440646860065414870170818208883530738574259757464346022761823173476121637653631755612497284370599589910978247126002381291742360832384272807551751008624782214496132450517505940935500025718997651916423733679646586367333882718176022475052966002391391245076295713181757747710845395965521317519866558388617681072897487109016886731030619501739289893311473418894673290988196634673033777817920409841506292789724918259399073323414805495121083681322618704154835061121796564659484830948781887862595298041964088314278268936950446572632081740706468825223342724518704073946685999315096716479533382057360851747828548218387009043334706204557406680196054343835410997176760391212435144038606705877265706441427308487270752277636207217158115226238658793470718254808694136552826468278751940617213625569437760481989999273658498021230769914254583542886182347614435406386466536316789026101498266729870568730898122411156799034176692742957732183676562816823196682710381832056862595853003320334272197603772759477676682998808061056141728177458011334813502503383175362493618718140514685828486812680251274030273250726206498400698504323992373512743300957656744045239546124525415170265763810207724156676820832907456951085073379504156441185874104204273162772762298218307614278321106802365541917824149196635307378947892396840882937671983577388423240745810050379094030763988963224767095782666416639726442171898869964286567260806981614131887065697094980704840901554035634220430607809066274391890778435333047996619701918689812175423439556808793089277389638977003339236418544272448620568015624385892249648917748758017763906182592808215029517945664328115730858726350464784890441631077632310166843388517798779015483959765805558213830488625773113984309394234450825871702557157255022725696841057909122825551097442078455263824637431200394094816504008508283746589418982146127726626818454269335042303615475441642217907809445607951506024235090878172547390221478987835132861913863537526133968718006057952421781945798406406514605048154957530242185405486889373010416579790736629402069542178631428164729496192230345499119030516868514287068629032008471164542070121613761878781935701539776995894890061998055438061688098244708632547953367329731490834643869523635583503045712742419399141588859886346670687812454762520808579402456558133694450922816486241698030591426416416439182884014238744591423321659675644880680204493919644885903622353565835532261547142817602782010047254967804387795210957627048703171255857110253038498482878647061922665698786475766922475073213506738933160812628606247704660596396757693763274169654439575210326404107864654737104805431258749112218551212703602762433815186713485521828163095088978909065582251384673438119339384235921722650400422439216887482980212595837326786780583958822603497214822416286498590095667229870358254338364504556922844771509380094697329455936487940923074506825130857223098161588085738349874199309108804516495403630860704709301198226420476742045259072708119695048656181326790023354132073740117442119154079678280339448055084358055129450763256251386202781824693644308017388442354501778738389501277876043047747298836336808581906882622307619690505564136787346077504280108844479954801319894383983996706990755394613848773665441802514772381243415409500588886107374684514653361785225010067393053479219164685775231048505485760373220668044700808565488951282749300475564797467879140821673474725116692820123370016487670820979074294060484094829268723744223225763314624711541682155212629974968686936125057595720122583902387348280133306067286043406379913962893745625094865355976189412289225982347175508674054692827653218121185335293430124176707918894183721392562590613057911995047577028635890538979369776728293128876826648544561140680541273095907620328113974522692896080412654578922048470817250515141558196636379703740169644799512982797448057169517020452996258933311112713763249740293076974039774617891886825601413003668200727876733162310657442359453052241010218243381137368276727741884762899366505228100451354818358324646019291636432070676896095675878381507370945902095306751419370153207122850351167384443736839563271683539552663843017955259422242464524923621958031430716266118772169423177735248127421250182896399444781245393138916820664759424850137077018199022254670953583167411161760840425857668678972911649147589335811892441802097225502209874448614817052087095717450826751805337810565223631029449357495638531757783390727790297652025362750470602613429361618086619746934938266828645746302571070964793637412600154428452060307921154469180016335003016228975400292024180893324639424076062302886439973539664599817187124160703653075527519524123753457909061346084383012201809124838749743730614241855310044825715039464650426942178501532440341031135921587263711559270434778277350330761071819084881869565489443655276178245949778415117737592873617444194768842395839959216861592267270967555035644676550464625095906161417907109752360033534689597696900197911787507126304453461140665754651105847804022348959070532835052730268228185040742439003460724853310966241382650400147307574195156723126066431902173949541977748339967260447358699623596166602809289828968680476885041931809740242265206974865599733686356287904009188795738582111528275314546062276128349967278201963538701130695909394309435534512750670129182708849290312935144518069421534567943048861281052089430449185730408871032348200090729136518245903350046047580884124821329481448576990353530914846514481953828277608985628989210925743793917001815555222267271540878507916418274315780967661019443575396293491672449589301348840075273912053734045230660379731493278580258353594860737147320510807456698683462107992289017660682673933727875236188853525542867290272693140166647630953059086686901187732308661316035883562770966591948266238020386480710760634347419500427235574240226513981225420928787352227327485251854893073280306493239636346001284560411367850256505122356473617142635683573208798187056179464118505587745757631521571439458384420841510909036748516429278597401888091702032752458675918160671762092426936132121970411714548575234868712835698478553345627940740236319193688934343219538222533906292997661244340333215796909848753753513490561585077225993064249883710621599815472386311519470204925051108681099297476164890419890633986571624128671486401731867555340331247926985388555180171310812732595191204161849284924402047197886202976203348876928819598920156284044848108808246570854533851171724900021943590304870852973897971582998517779820117159779772829892721188108578101631124209243452696032112750583083492730112525824137295136838425396805967949674075811089311711960523605166552088811541752942696003027056057552446784407937036424722815593234954417515576555875983185414656139310643513930552631176686271180956972297572630520930714761068338261300377820090762694345549100569325842763176985031990992391129113286089265515693012751619944886867619099644463237399739068096728147324304049081825337625801726914967826472866886216005531229812467609350692089712302917388285765143875917868506564389306848094719561102561378477143925822632558983151609651977510906880880053423624743755916021790066277433559884480614572457750771822037530482170671231664107137608995123996036014343962722683531228350121661206737677561829291074407277243618341715822090814048043151114079399559627366847646645693731083202141460787336631971606910402870842400918210360814977610158424581728500286599818747078658260861642900672570080047607852955988055589203223243897730229886124958195851459516367576823242622994401367010091868258739093337800737416270078302089766159734611367565866242103069549357684598417327637282299810772454556774455093641962670152949990400207442070419578635071304455044913434614076225142692508482630490352542598304946839120381436364813096395971731901885871879004150580767062049660379624522085675681638093040039828366316459147390294238736345568829337613627024786914349492840860498632321563509609981194843859022646194169240828110139830921845283508352835183300648092842378259886358206271044201063759713482888536599802671132175723886641052768918713493176495691976794892072104014409127676705870839899342183625275048175255352037028524008885889924449524025843890182326438836116086814785161535381590059745464619608019260593364198385528708048780835009394241574843033890399054020457540609086945091017988232056391561132391637201272625200871335865266217895354370909707524863016097141053069422511100868567482650499948051380809248128882767967690480476011217498474034071317414774595955305808051794675563531747375567849770317962675479187419100137016505985228339189745246255997084141508154667105534580525644551228674936319996380324172301117327650267154196572722909914741538204080151093738584433058187283641067423795599941212891608283161742704206630014206246334494361491716360001539928620488444686935826646143201149259212689341710987515451079604931048484356538285018807630350029014698030816680002104772733920903180139746720667329427798378594616648525240886155910729614112705380746358213055784330183030080365586384882754233252013991107512075568714002673879643200004088504065055717410647579317822215262519218719027488768125106637292855197654202943876667045944571913976052125442288807800494705306231184979291611443456137963578840928352785744544022867722214015285139616395011393493921771841417669922364654719384943988566392120458632501611802801946657441720924060114038626816318472424075687118494055591757179269880681819774031080939289153452531806860247585299046985632996773995944044046920632431346079820514676559583170513753231863005414201051091373441028207524826116355282499935747437545940536506024031120091668276021921080148086069356116117727847817149741215974380812580935993210704951566299067158676737796252944851458247123002587576019634620323373957586801197856325698140010472752562207480089378302298008084721486988468481277018282899639314521060720431002436744664656397493459748282166339424493897043741172181594868428955051810716773477775442633076918853011501227108298372607788612419595749864258642276367240340520262304850031466155602563290399758545940216076020106295525684283471723365907683490228241066579842833448839911893048151991329361183708227628380924583869798982679643502310917978081710190863117763107846768257375271920953455669388710570644337689810326130775975350543726945269150717088917083284907230236804035781972961148099601106721891348336631120055612932542048198306915240406361691188106778365163211516815991586133695414872881100461772528797988693386402652619513540195040462026731688632225359190761473438101590044276464675756805935487866963309869369093207212793509939645560069591719777732477574648821247160282652098252494005908293157494881461984164637795565108135076194274217922007681599366190643885071983504423473840642438740617173817889073816431459122245796196508281224200103121679619092574555970404612907798236422367689424004815584043458934986727780821225423811604343220755939899667395345586777503210638748669472622893112549758701406650877846738863556061654239632866784106645027343529205231699196493113889215173439846877919481488044504372048534292965212742695038248279414538893542364615251196904117529962276382843629513669479563850294030770518925976151029522390938571992015195533745750740696808758080645639780054201047242327561509136294418275854738045106240367022396898082516429518656802999951062409348386080423903429096170315013429264050059271158760190766507776192520127192498277150901897309657697818658617371898612806175141538206927506568080725784986404465827567304331931850158866894601362135935792982968955396971637389819262729871571348700102617095633409729917085808937530961454535327573870881915811642271241823210575456378156831054744751889387575747205197607644866789470646771234843483181932961113372345580500234585530347672189156167784483714948235983594344995467712700732769566511161222879956726107379213923651675820620732238348812560113028436964179367041240900361738229754558577970933814174129847991187247320266427540396027577326944291602800578272054586959366057455376070824993390365799520492177753952803072832581996136948450845974626164317574546475403109764034004975659850349563653977379364906643028120349218249695677915827712658132450101064308032172590877788019913799831249813575248898294192243155395491637347878030234123590477021478622156418617080358242696421436609111495156185595470035977508950748918645691563402390290151590751552793443210584350899937198515104892802702042108719526801461469763932328647551488834589047763808752019527890770447629974072587289968480263924660324055576891967365480445713793134655903290591415665690533969682413020792820504050723102857706916198910848937656748329128167021113608584715972413435890725598242899240055685337392773109808628049707391520467751495595067030130841494202914061548666265931688753829577450183475549862111701979850274150031017033755423439339620906481152193882440654703073960210883678850702144285220671543002402030782251423197521187906433539046055370121542143310643248875278370858441016001744487222230521413519881165020954218344511617479674145047785563854603992564725788130063683190376318047005711703707429699795715170558225767697096944475209073749910840098339975180445700250445695279843381026418593864774121170645695266707088499893226927199597581965051109477597860747887654458456219776929279191933491942653166845966561782856850852536128949255127400560822566011390933219644339546191844523595322173929737099120392913192438913226117724260509353766985691938264974316986820657186806753476515745335078087380081463469487403185967996843730243675766403553263181402148451788067996820542868749831153388868239355191605285983225988835519289372259836994185522460700629440220073179075133746942805540429958115613111748851743933577094971791135716209784171358163579272899933926899177152547889182851426879562717628749937233994235034563955097701500329252347161360663581831365666167944747650863878036437578262826681728296835286336218609172087978746810218084518772143669559166213341419217712860807616371294098957828019473458520381532085183736803686176664267555687546968268509661263789626677824499170605176750922831531366018939460158916463897540452957429879786601124411086556059584012719590384954642736203761096797720599463726777329153956586620595480432604741071793337643174921692078766009176193240525582460219372781850064745931126128947718543005758596181386618686276191612713813756928252957533189996905349748998915174949253551671238637699109707813979321046518112461811594637509319120958376020249880191992938967554624160033757928090214634765008586477483451097704919565804858296588321254714486824996151620442976397434716165130527706653560554179669395412205527621635014923342582376179393647818480315290447027858335650834360652721071419479951391304668102139299461855592996209362575619823275054903269229260014548691567227443542412295572510329145594884964488088774466089707678035860520189786656611649066604871892353139129955158730753391310087692162670552873606667859075011969367112831008972815930833035928243489959435858742362857274112588861991836981791802615106626775717690684127378759737986881435820763358275434935575351739272638453800003169859659979420342285100121841874380605937769818086138560114899088804029655964885623585968405524942924465222168915322305150348567279626995673046817716211489726727724491870803000993260554558223657714387098221719100196768596637673038411019088860182529723425146932582538375069119360977087243076795267517594784781419747167978186246520753551936684350595176093479741941260768089802817559410524919084948779969965913767309956482906295610517449335947914954033352802577026630388642865308194334589613761085911840914292614304645236660531122149907231539623050633896650324484909179397968442110952594883330779508588056598183173219021937205437348586141262889811261097660255600364134183406005365816001042418337218803924156503818092558411425055405359299030288251891877722631308840020296191715566962907102041729195150343279135359011094714987138142425255632997336551855030494245885321012920505241274777154181915459363126652825713447043442908340138151876223791080077447255759053680589902066535975185699080815411857970397318999070146807152605555233098240950272136622907755647135076884424955976557254527811290516725183885654470992991916047660114655348157365299493038441726087818768075270650554962187227743389353151255264995797810873035278697680815503844153360480822064645356163461093808751672763306607521293452164392570138309646958421011568083863443400060770288698930088678288586405764795605481442305225247921915854303222862909557350395546610181441259406571645539884664194831306249216862777066419709227708315977328037421257202347294540892462333370626610976957642310401385525652356116351360264768870190355575164826470902016693012287668451100669538367904646095123758706473581544701315120774204195349785694377770856090487633528862320028476066109725504665520061270985332636714080175800311992486346777039322079961101520030121496914672626277232433823273970660815873013703696764030842122395560090585253143856090183834914612998763085928090355004455568603065863197317393273188174651772115620006480301541516703432242944469529622976525056208461236249969785405632483233375759603406005324270614888852739869702778746440850327416634448201769944159894152973373157043196676098379186285928052759503614545740417408450036031134162741083429246927978516199309906562337370329519234565934519491239732008124088547263085108858046642436607697541566320866123790480705066817942289440893226158534727479982897081297904156992284284353036580477027481695699656095664963598231212461407413086646674368602721516738307681600547559297690633828235164548882784125412532160741438482742338678565332336002362368998429814799888559022273370854989867949579334688480465739054790151389064395442083588318386331892308416698691058491696716212058805823040092529662842959525268458087019684384710196306981663069465909233270120432740959760145138781017075121817143356151105291886890151183271449817997037282390675499334661372979068584464740290215931807413599270681591525717836535709765025980266759594001316144220656860024050644664878787543811654546200000420561482414681446367958907490766161637168240672052242514404008882704342659525611739800004575769947216552982068255504584986627161017839060289348803294229060090290016118900705426535497706926099025224096480262148499011772317239365938424207998227978203990890584199200223381708782997944340935057937019181671769049837071444100219486313530893909436301307659384205817906712954587161838648723994453994801884503272168955301202554497389546793659128742888233609995971407508574227543210385514618579125841801753847367668128971933634177511139188293975703250370574179838981570736482211721300855722211930484837699957071773344548767794230517487282177880994975674275794607013919938162721194059092315268757643893675895181844529639195507758323873314286369477139703044031597902135769457159028338003723832912631010436942780230172223457412444466872490395004661427837377986651015167856977221674373442113293498910307666880941867974871820000849518138099977712532618408823094993668897280541715878714367712564962553550411454578187009875821508836359953036178378947939101067950572968289247096367170087777762811023678045548406717546324839625396441249906043847364209103110185753026755863365677421364195641259899319848764541961714797178728959081385947752569402323437405654887828946991094009603632949681290043780694329503689152608885188495684505544897272755245333330360502586880568449236314446135145411384946284487699202150666358769308963814409861993855286246641394617087588225479627200017985688162845756953901417148030364089850099109817732125120646211155216142634797100906506888455801819971000248240056487078393126348886168943478284618128228107861551387996393536398095235487303868993663413261219226694141351758290631121093191647091624749607325083719357492373235425193283385053798419512543840231638894300119970528496293650484143143627496736210580028596392951589108016613421501171983806794131111716121451087892019868500429381614037019059476549742149836385126741599984855823363557676787204511835218398365730806446271396846769383006655724470748510884476111795293726134779254667120036331100903762702362315469791766216048425559245904525109228623902749693181270924295424101683200033505936927748654212250483777256827313247911412473169246795710318060771484374638132612696336556696163697311920160122811270353273411035719736412403104993728799916205334001060262073474887875403494483829771241026890456121532526317512734812919977827255022928552002536265975938909746098047799697774046106783411208544860257641353418073104682758467690311342021788290310997652470117646772892995161324401787479809620230580266539493890707515510007608043594327531222569703085844345822890951419301291150332793739499590225675060538780493481033245250750749599930415318886435608946758193484429650179646402585410650490925528650735714092757988144892582970451836689249303689344499469651811825251883921778963956516481643510010042824836909927385378657885214397576262251737108916693885369488641774486571693725436530529841247424636760566543327109675182611947145321098628162556811011685389060694616939327363706935548378307316888041748684760691937808511233133921982082466094509164541433414124109784435742164461546423217337357898290342914035360108672859339952281858525574817867687123758476402900829438905022235125207213962802057112016262781133115510481377047894308713996767891315028858821893091146292235660610648681409463148698249684600831112351277167134945333594984670049923516627881636159631972763560870638449770100694323885425444747548116976178895227791219688856929626093892345804262366879871333670615049145146568929710514873357081061899599694881644482337804619354371820593056504685506683119220584457361565225688634858948603878022850074774741718148621439449906275611362013414393040965500459245096204261843985336523809433660492956582527131367583735937697551350610019805740884068099160318839732304833193579297033639210552987407343076818925099231734340861022772604871979353277928621652983667958189494892965267526988486529649045416799771261191930398401168895613040638001618596614720615497659462762970479360884871010157655643101519967682259211456262243915078692934464453700656494153557740578619377972906757374725856838957155137921709976316815090236940082797460760635401065846395037489905717732049745038652038752962020617193907761716816367058016624007434640889324481434283780636475199176479874207223746016581987155081470888792000590453503409333095534199013885058993726612094965488966052503710354914798911906738236217303919434156574434897474678654992696528716008218051190885197617056404034959623952438162874952320816300419727526291928701156519595295484532298606924954237952220692367955474965127486336322258587031750648829901776368738245584784094429112132749731193236068433456030051537889574030791524249014486990537633473995064289410345707476272204794958282509289615355737779898156957552401381011623903747345998946310163966684355545753086910518771364975552866437857953471840130646976887938035781237150016013068421128620623826160870500408380323494395402184772094993327045280075301733276960112008801726325246979373443530762476770732292022871543094915451918929171260738483053459037697686975901850643839805181681129390015080560333894204669889902136708116523904278387512148419086280769062024041801682993409777652745911943303341784041951163041900724854003480933260038173969714531138508752067477204484457985500979574999409832300026210015157706760627901856974828101692598741468742515105926466671603902804616147123010922269563043139220033346308404396529607012254775034640901919207172579139760525042265547799560972878228284578045903159156636634992643426702348379194034838425335459808452666856660166963326016549479059568587872741596149158554902676795369209459108282475628701816405635505134469001751059509797310541933516275886966910503772173312855229634986850190821969528328740960019390336126690004261889471419535069122260638717367694210320627020896626837606971339448353244788715862142654315530081386962686742126997176408545130316386018656719211973518443291596830241169655132347094205687503122699210449644394936409541370965973262468781397469111537016591761938610202702811601241525117887111558954666815642411974718204768653483026303980706116090174869649006896197718103600343453115384352073202612391080441162628979121689221731322633824880655594802171751534562986183411488652337782807211668907269210611178860074601786357846719927718985810081001831270482117891999950867006312343643534644644373380291126291662399795327135019284093678346256232932697433603407105049953556189132007942749597254032389593527165616837848784662688866540058878479476084761817243366707075904578731266817646365112251964558909936678033188890125015273725959932705059793388688840192808690299316525177627798294494115740813455561547839636276211445682396340180608599138137590913125606225933812020163929992894453405404970994359875424959587235627166611255052715057094181009775292929270599892942863827174117295179471925277180768092551854355239112807283013210419554937342206646198544828228943593063933461287201189205052946864653844866095385597988827741575142859139280593359928919787963255532025553737375637567421487103722582345755652912475251629545427607340803930441678528184290731657566988678747538304587679858645000951727148415523480098952865675184816250238501539804382711757961872691679683073216098121245716000128724115905552837098503496788992444082886821087877787534849901138159431815546479712995566365533828280966995559467625095265126177072366230737470222376695667635465954228599020923284230712084962733375006986042947144947548732302345097670859557654514417118235818361912538423419435248334128647544863915213897963218124457616651861613227822809083474146296373287969373387636404041643323527399054255873868803112241467391118070911357885409982010353138848270073347274486870228919208031723011782953522437803204091419835590167398906994708517410712802319914016919424884913825486608279483363764097407602325866534031417401430081995764751484117412652156152633218105645970730587218261669287775650912469670629808210705543880387454082401462263699731534937798316095611947530027275219429073780810607121578095705697414463622329615724093377305607019108386808991719237956760677669418617539946119036893967607016470293485751281241186136292107351621950494677449315185069526841379802011314795802868149789518032302199784251604207671322779148663300814135410758778955855098250822775956656915613781826480251976251537829702009301784107200858271963418204966465499332177378529297426551242567803150990454179119031478901746495039553383750925741159370647335809139389171499062775083819699073892458914432795952171008517429899588884140036898245875522338628197461105524085073362303060160429776261736612624081910268194526945686530916190616020758802626002437624543684976119380755584123015542300398927403318675298041202588653051012436497962156321972929975971395702654938116091333874668321769328493748100909973894175245849606923895045709370034878792184672297662637038434890210125642987710001681591923508499522610197933412324069350629878567712678060699479823084933449419123020177362658132062566096925741802978037721697396225109359820143150973823124715034547477375109856711478727463833793318207403229223383160824247915971382079093899260564162475654725016240713435299799979730923133206160492869733389677304800515622761920228588444256584564714055366146256326642378806452720623138489939071750463202823395412901270722097451553579270345652439443458971333611596687109651511924961052657994260079985641023742240795874427095262177551506273237827955662558141992123587061220707249592356001902799352102282662370778662295555268645148885640479904180413071780190248885673145902166490103251078247095390668097040760101502959937328892831302848085851177765348434375503022103837408013874545209082031797563747621913706283170692781288717808084443111489977497364448271271371027663337494739023035868283168529482189242482867863217387138294241607259083723476170676352372626958681307742041613859949860086887462713643595864340171109520603463847431198261205353007812138022191667129133805344988604147010685240100675536655994998276539216578493683030111045585637047693535331491200288850048575358169936023803778236516019095282017211723709223959181193041715229636139682954556210442810580858959587810204461562869805836201186400100338792867640837236816178503527924398446327162615393185981250209072766158180245166326728719654597545579572407534028928355331741717402817851770995471872202125771116991785642767184792571992427495801257083656289081814502701874757018162154308724071318523307234500896594116150609971699708915833941958331832078509086865067315251384638323941090722289677814765432335066629840063738494422198539593698062178379186916785449495666876832383581629132398789888498021620140077257600947391684846888808870148130528582032247368917060061252545868415162266795009961761104874175855416722263711476783896879019954135586727228107242135672026092453592257937211436899467874077103157147017228478722607761929776964991777735244207060590288391736846724553519476449092366531719437257200662545644970568662193955887751213613873969810238680794010047417878984075921603864987679062582864550253780495787646203239353933854641682490231418575650392120829251338276716671296675142541283931143964465729825838868076957434542275790990927739392387171093515361735646580442083025801973734775126658221076636423789210980723832636175220562568534201618686976719848025058069275113026275369623140119439761451905708863180835781191589714275138442165757117840579828112569716731900674441251062690252145464756388381881029954425342020123456271158005186179190559917036702475763713613745676131628247146603693531032668583885096192814175723435829978993637105435599760300580059327285749056629154616853012519664614198624978117081748418248764136098100082286130745473595338871557674063810276814156396308872029334499001317459294844127943939510982897936984066848933423947150464886283957767790479880184151726730310278689859409024208936885657037718071387302406654826258321042283432469318412335966512613629523584053416103212655168134406534711768452931667940218240424266786530737224059235219534132012239720161031852217721832413932720193486993079104952326824150011953158149840237894210852191622008359400629704629168733420519124166223040306639291517695907874352059417892509679459107626734350321986691611314831108888188647181033261874267152798882722979211842719552629326714227674106455562104825431621276794388092800181270936099250080425940189950588737568265877442374216625052181363379323690075767155116312483392955937802505392224783510623020308702788700115781468703838878443691449858170250899057818976268123940573694190677293460643456603158087086018494619019261998558604672192961331764064525068705803162329287019592102573805394979267969731845184632429914684741432407985868652426103238952750553975114127493352911094555585688191659145569769093897673725087797047488846267735464196480136038581181881932222895687205371838327960458624569268623232635062029636626515295823943651112022761384621071118135117846078251321879434819326028993387719173405718443671875010290747565486369814072276699405330658318831214747652292437255334102480344441202243167518325606303447989741878041248148891484274331321892869660990875846968106226962194947066672412257790841863398578312941574915580963310865681335590001814422543807757719758535347237505283124690327126130870599269150440499327300352905621700902334743471281182792461121149040037251826266673487243075501333038167380981761566921026416630307128387740715135870832265893404939950048121937402261184374103074544587050355282076259412244869236523626603781284216802137629464439466782032395603948638481408544862450102254792307861873528058754951777593110248703038717302599972266077160344893112941782430065179768900058156242987088784801403448897324407823722291614136119123382090052909291014765087292141764574681580680382432166176468362015015805462584912736870104892653397684630344935818358647863770935631059044565464753109186878727664566418728101167081239123947360136261897660693986870983129733794741452729491578475513096007419371006227605836945668722021068412684949166030519946711814082926618801585469860624851715002743343181682912723715507848362317788868631150060125049807779796151021106003359336388455051611575323806702260832146912065632222736323906003707419110148291633713064618799645268172950753545790574864231533675367044091946280193143432364619992493646037965389024462917550626361696297572851287674329161427915662330481836077292266856680925159249575730966256008482140425893293650901265153657225612190404049300561212935239351985512101256250621412490565083168906123715421742251004687523824158448493113958893004210890151408289868679509719037419849559404192059610736654802539034652424914757703912208555655630556432102015645873832232565056214578642547076146955569963880053860575506372938976694831123069847057244668202608104663776930249063695956455863284930521618128496404012258166161319734373661929140405702848129335633344254261184022380694365793164395330412628482059867539696174913226959751050491583809645859593922797372201959407022861439252341510853180778241482774360467201057200106156079548701118746864579245370193245331198113019999128892849284398118217543840352087119819264460807158961514467661318041703165573891228262644773978216867273613208584883243699758820612091005365554469345283706322058070301507407029021932741064196131300993728932550024347011368262190988197705895838507744002488537635216388062345324525152118565914245528571745832847109806588559852279302439964621687868770957949405224975152905341618384387068878976870077124827049037510964394675394507726041266973645849484638133467183727352126969281039053622216702674304435388672111328012909701773691216720477423338158004721423443499251215435526957771130214187549984556446626129817467839157600114747670455719881420701829514470718565829829261045979628883630826236976926581297619070350098449070977586920530094990187153007956671916048832481612462140562549245131707914204198146063558864346576084770565848764979023053049854816471416254871735514674790493911654836107742531748764563480841007380805780766512432854769596665420769655616733212595658589162232499469136592115520044523936917297123456436584922715894855901144528998038299084679103726245933304908936949461787446965774497966784067375113686798779586662951032900257565243578286605288461380008721075531157721153924049992928762020022780211095596769356648643864175981018641668800034774202150551517424676166414161646503067597047198129715535097223901688332698699382072386689609288325665624631293951348506280961220204041700181786310867281676323026430792766615190136420455984537690751184711309906810119987961778997035770505351468402028760618802871421640696809541536121437479429020853366933296930907308062711865586317632699864515834769205686039138177766523037312547310579135992813221300147563202568583449641478662778740693803996459730855989861631062574593075536420928196232411110019085442731919655413598742452473604537535954160128907306226072560218870111375927917733748936018862969021792859928497220139563210584818764638498611038701255078082965837037240046237792179881683970656086833632484087997839697749443224204803747607755985506214380169892677908431826956412281868208504544213302248580075745819358658823654924509012247254371455459215878452140256175788962063614047132412260911334202604619552128369895082341206017587262913565218123918781461599503068383870733043239284547601745033038532021508105411371911245940025690129864923949856236766213635261639461771266488263385571595440512106895606808661847247848996457862523268931297419625565076436580008083358346016366467157699563566028021192791537341755056504653406466818039234614680524872705677644855626342836852191862543083091191501475715454117327167427773417073649472962299844748365799849211871566142356381958976867437510013878424305500096292304282692492433304521759605358185647739690184406019325938634579477689153295742850649635308088816680222046093962267020373419434416037839230073351837865920473260658458288331344820066506348635253870502908413942503510092118366072550598583644542208359238066018150845950785399057461879673822653316485743120927916906480172704271310527414062672275141054762693120855304611883271215208110333036624294579411301558337243396459089708479750961492548800585702044930095149954578198667796105429461178458583356918625721412170959753862502222925307986049730308000767069786136181856319669848346937063412822690134920288076411759072066062466711227966916270587713675550383082038938168402042564208725063272130572718973001884368109195334210410130760295945862994078061405903670719905765310598155880132931311425728942754738315532548917410767589673114457777099172646554350066078624414258174795422905018037482016570293112420676569794905773828085785066277574090571479958622168271531930420088570494796680073625395534606194748893895071048936937343652043206792273914631464508340462945978446660541364706629877136246116987826418578987628872626780585825025929667832361814502694006584535301378054121574483159753158385644941187420116901481799548308165766893636534113134567680727892725916173092685216971589227324665922799262037006196950819345475388778519439600802528128779384911597026003622886961397289522220252017087716680128082748106714223831375037098509700528421903951906397428649986355977378314826160911959711229904493366633843456654727807482728144140366716277042672762617022332073537995720795286857559467374109907926936705898241763283170148044056440701165607133160581561423777107547943932010643349850246971504782711927901292367194086691341804136620290263165922577256600640171813931306186542468498019498749860167780568501623206829975739407212206876026344776742080280664406095441174712133770061216477147294200195217814886872022459822702215370796772706808775266286985175584980660912531335320712553138611343351619404017894038178660091343652092638005244616844088171567862956333305328392368079210963550391335410147121669963299925983812088243933131490976790995555825854460055781591172152856986405925630695866056771468344430218174561087446067524936979133622791801886119890422492156856758311739318123026985081324686369760540349815856425455008452438770936977237822333105604067234393631556316011169276257782114746061774878314054004662765882614948630828304089942659305084957402636022753097697854039489275622990998602340586489742667588020062536139360968994395282651462160167441550170884441355938914353898565742994066573094429268693119847972838999498098863372367174850026117939868890321822858774237536760128307711726282881910674495805695529612540691243522112601752453197426141236410776313254554032367984342758943221405434908109237084087809779393986222914371556108987357096554032441257256156412237552058115396359176840982842857570396176873148438352671724341931277070067964732748617409026049408035984149344972903574218865428742755749903633882659568382555728600872543119501111662537756364825545966664399842177839495476357491355631079465001916653449579064894340415454629490033462138780029668137261240126169422788184567774400448885199089301473520598455696797474778572219402455251872100541434098953529234213026142725066681290651172066296981466349086438943741988500261617776834819951175952442717864888242225728165353834884726865123217736595998567509948917112255555187068857411277111961072732380239595924126474874372157894480709865909714396671324751711991055681442019053636472814296494374862811958535892388716044815491335663380694486402241740406591132337946871484747023553525797058653940054633506390226331508057631628228955308941890301623392495225098486550845024412259307310243269066651232493190979537144679757867962348865585962132425583502430322655130583940805144191343736314154883075000608031147355607364339280789071063993354374630863364577002698788725574363861781449035574979447512248902024664379738690046927006144854909532629077967248255367539471812011189251429560709269792222195375900352465336475692502902092950641514330417185800064207056210454284912140715910867199170760604848673599983521536836027455613832056848367947328868740190535223840149573805452796263761750700233473420416299397785673912856047080941617758584043956448888865084309565774372382565647036684962637216598814620821016563847613920079431698446469131068700628747107324272834352498759613950502883502347829910175708252120690830275029035870146870966907191685607539564713026699506836609793932632594151491233295658773670929200324310816550054100538867482760006978710484790194880115989906004543770297510666484463985816995862530075774175692958240900359131726402402828842111989052478592664457284298211540469704092208914720042165698230078250031317427093846115534018509987076291558434587310120696118862182237076851299017540510447276639916387671223263134459397576487004904209651371414080533436751947043078869265820291815190634345974031473574053609921168565527983426786275055900820962686728359040884087739177282246003739335357872741314307499231833289964594820622783100493454294641777041390056918593212471796320339288143027156526774803349748141834292411636650781539058044596316289197092176826134106908635785625784085558456221871232770550299190107277392416331749474634455982306947933520001283021745802951965825089192467238996094346000792559589495124230674007400809663282729433564846419655981978937352918799347176116642034715049355545644052638295231083004750398097514337137415760240663089964510518918533549525040849361117249004168012156314347559295488814190433827286705881348514971934129374713911241481337180561524167343635468284367590538031309397595953120818764752769975190995719826343587428612414576682057997453832905210982800492514405638312978495358678788082251422563694345367133115774890811450715956644294333333730526553993852542067898186524947946863362610266823073329872470336700409527407525517289146148962029868747602680017862081666407563069761460458611281697520100353339063514405358673754934262264641364532548199118021419972327566588866930109523249418801291188280361957651964293943312495995158629034520709474962430269328378304544423622262558076195491173485742186320909672590171377085033561124736266599757884252803996511637322668965684031932202532543840882585031155105429965308971917802095361983017567951907623336916662300193863950532244687222083069564937089171730521183119642060116937768140188540882632939081347974029529241545210260157685100603270978785761637524747386330677178599941612655910041864613593541105730719309434406314759254733709336672185212130492610342346605879731911909172122601994632973788855123645689265852810838419747601653433374670493448695310859272305565273525347601318614936680939829754218970636483398325269451887677876561489044689827803835374368058451690840738870453528016901883140271768884129826223921087175056992548776752943792850344910642168965444168030275146585520827318321571884284179916278826749688353299110580932266762682512816186694427447311338589795900653977629387011805805582168537662368802216736914495718478340474968755540813352480553496253835476290350680889832526140045880327986447268270380680452731404855720506177122013024853647414130037127205357227231368220473111266568320528609010282834917792001873484249707453356862996226798173050846755241154222833890449512928976538050436829933328820689006657355230448316197533644506114450527168455201919246266265624045640556413441049839714750196300157965989040616347278347633986499326212221111493263628401614517017746379389082754704299061179312843658058117196155981524952791728924160429754649938329353640178691324258248605311909920783150205692437019498571971407254668561415536995503806930872498474830418380123112335741659859571566303874959313277987902343316488994148823995669855563368709234719466264999201195401416667360001978669378991013993684343139860392051034767957952257704783594137237845723326586332925888964664546839061207027064637587279407450135969787349617153566241595630809300670984531910976486333772567654038707752429711286952056462242668027215920938881096221275038406215804006003074073641338757620615222401029620303366980619715925139372132007272329569872692261277289971159344621531909194662289641059150226530750281584220486103229781841047919165557455384809453288102867668107536755260925878373306666128062096040995289455325308961413425164013402757010327822535816226438325234123371069474509022775768788128400545076213525589234471009758047517918054109766366115529112013765095252598056116547850856193892056550922381311662193979088370731018857810590024044055608087834222126835269186378963706947841060402098204475310369329996669666510816998861483679295813068719356538599607600105773552174251292316739665437064515828274348128018581077063372917561528409266380651939346322243583568139934747299964509573611474492391254686725843472099057206503359279030251409848410547840326308276632007961390493748268359641605977108833040834454861093078529229989643575795488812595867631250499391742562881924518984605421563009166394987767015294026356595714359197785947153742396398595272454542076199615740814515800991371315381048246361881080327572742594039890203805628602898494495467600698085467892389748421156911431809539097118083606726378400029225987460906363174240406047056655074977624978411938629188745999086765804026160841735724107877073848726461059124617846987032027314777538137852851537178091092931080517951231759027549724913476268905300651179613809876039564546174781147383272605029851553071603840993738255946686303067137377988500089154465007514257708804813313845323636071626597260869656999241318042163021920188427887470595949720441571817369850044399338107912398191943877786456389280847741669163229420831500259219196249952970541502922714155998940360623870666780095647545055260733589565390461835153444008311634535325720357483729018266518127492304521639139491755362543170143238214112953228711429286770797203377545402752788457257568806281771323785467663751769404963452580933141085691913032107518337123805450750814920145072475004026011022883096991022154460796847962509870652329828374902486415660517532563593992226981251910325824603589247274536433424549723040475173311955435905995057019782342140482403427163837383394591843273370367980620152828665601813592955932781692092240563001844150094772028675841428338872632102761258980495282477258936888691151071803569987613704120059642384716417280951133812561288068287104167776831136259394085439564449926792334471287995242446763895986728023251740687128199663409822015678612953693949718673866308342925869211151832106421301661482335466916648405297837590578330479505241347361029430362886547347346331426142734253462002538341337080147403299034514755358529450524597329561631828826872085114010751692874403230972807706511875952991498294166105284056015870088166935816240780116615005935257028375334405993340465786439886961378991579504197927509492164662396869872386995303327530234292876393595679629294506559266072643741351657297550374323179431685020833181954494350873928612753022094407630795280444988409820883482049337987092414144138934235680276662224321788536237665750949152037014353726611642941212255166464627989649683443587848244640938050677113775310917884471210211513117094640536874684339395369280975590079240116933798639644943828134614657404261751421412361221589458250349344917000453642821745095746097286784362517238418618287603799937875467007779361750853925913781061821811733740078258326424209392294813283552703873829019977731501482005147589739569243115917122652788762046472525820953313002666765666826000390919478201867369735786217708116079641813092730018100900519494334049192474329065128238602104345555486427723609847269614401698683084476458279646930085984564014895319625289928813700833986263274403753842778702387430409286699969366394421658214813146314886971847620210447076401601079003807066711787887405613912104676990780319164681250912280846795347949661315636213124435121478027686130824701969809713578809117870086276956164970062057062048693255534963456009835162304559566492292390935633695217582942099759358354113007217523938752469586919656278310387257820531897081050542000104549753790265155016655197145745301857710317524194750946502017739607799816147304631509269093625078862024820557024654963603050758417581884231857788785121335015136515872809043544890362293972035061558631436633444180103519466429822594102703400120272043156150650327374230917302569767929236784536510302213588852999017413958685199491835975566275432517857436493932901914348823835778305915242061424047867288130686368386087366169318677991202381273075206050644088606557293062487057779737678017112649134670126395708481117006914069930119631671245186911705194879639197350412830482735608113092872420174718534308212629218245624493770304255995551617279572755582946480042191184154199903597914512271885559474855268341036270501218014721815029862495133071375206066160016259845808184159803822017882833015892044844532926037132323880279984060540609154308046278502680007423303828180062297285919230303766395002138637439834606664033997940815052560735996836737116327169159998003523973534716539385543358766999338481021439208841426534991991712714223100793552368526240980733016702481167429920069303374512268231131156349389848779920459196566037262381275879699691799842850508114987868903191453083596881513233474557285843732731849275966193862055919175020168224138161307805851409708439477449253115514858465524043257535150013729782358922185188156964123042331696018514013469661858083221279106616630355450350512118861465822809549606692832195619512262154254289199254387056527646110697683768310749475334637610479362069055979074942964412660393908649104641708700608437412087050000770358288754617543257445535548267973851386747771135822153533083629039231399976896019205242988341751781995367737510398311443429358493349101844956613689345035519913946760834986037292859700681563811033656663941166469665287634117787922867579324152509340075437727212340494407843497581409112799937404471346724580021011484386646628430837052586510982650014690269776507790208919055168050506678479900198822719691340855227831208451985041214644244847375210842359145256850826364223232810331707023590286710385303042114775835682682871714096535701957214542051956419765529205088405114384102998146194152285392655607420993652024969514844194518930124820853764481516544946616524172587662930917330468250239746392197348585767513158111080019198842692695606916683319866370921249494192937038351890334193091338423485172806605082583050223442562755489569005178130138452727961264594560897552102448149787357925628220001750106096052724519413640478180260843265989146422833902157268651201756823066581641300030781963620808836424438759538657116842971773095548121947347795451111875596271450476166351126215967738336699352596270409730795403041082442933207053529527513915177315102517523310191220282296643923398635457172154028721280803861997477249721439579768820376599274431352330757528715922028362064093880513181733420814303526648395533694341007729441672945410867182277077945044053310169735071213805709726159072607560148685723835435307472776925154586994934203331913507681448237666905597430236464842759518034136087516504459185616970238963135317172701768890626924370169013738861232052738942988087871013701833347209799734301792012579513159611289514302469991572556825674812481611506726741022432121986621019232797219191940709099537563797460281352714712378410631616653650748653089407628616510098341026814129345253295950101581920896109053180956703450901065225373203650479195124928412215197881314692086371798137003238244395950085123668013283723874818726476269954448343347663424208761704340777601310538970454897346139578150363010256380608604715972438809781593046606060807338498301912911481416112761958068050908708699837120195825998483644404499389821806378580726965855977496865813107182564815092858998026660991267685735341504020811252486265111620472371476207107070311852269044473238456233971158129262572833881334995390259105039380790182894013757018041964382758224291112046287123684800101708712395636784475710423645692502055328579769395244172926351899787754170509028413569167516132723561163087829401581418046576351150527733989822862254397848462764867718506037566780139352889727971718990459011275484746562165482198954371012182181600471242633094134895828239033502949951077620583913066230114872390658172454939878687478422273691454158783311822690578268928055962071916652602152253172797074901765340210198602754479370655909271015419514603352320616080878128053240682986188374716761582625058867561733162029809843876304793367432481344560368341156906089289545396363813243397071516927543960295525273383712566830339949785901804266794202467056104153008899738263144559267423775324118217351629578079640474734043045692265514327729206306663625345959210664571462026708175751257037763186545192410729331539398025376748845376398638642486036066816339157153333467972411049166468320206525960179780483222683296441469730457587240235042114521436615087457641869379610185569190638062261433627365326275262213181561693257945990870469137076548473781413345301337801734299493371465857846607310028434707184226761547979328574901759697386807478946591938081099247078251171164936304460561878071140202217443812624951785919647116969470439420071214398310636156213059854164178408218319218554111508922174481372995261360711791596848119829324077925589926251774102489264843447988253672537127669121640371645723562344718483505603261745359686166165291157955480160228497655199854355968635969982430051276406923319484534513750557703200484146220482106379395681550830227099330832132381314451591171652430966242909547295635255284484012520746165458931099143905841745206141289130913194751233509493666647450277002772456791985794644122647396242698734149674576989939531629538503560986373043281833939393462791698987814348335920099644593892408078662034077440909367516736468021166773757219097154013897773413228068694911771837920092717352316515824011502143583012241323968399744185053054330876707157994020921954727356008633867284677068567027316501437530078650031287424904192982276452504633370421838312668934163173479573346758611674570825673418127604549160507173876940090706569022864574039085685030644250626721050633653034587098419158323782288443696765107680562375709480227068921930601657596426875006635067270503189720003868396247465184310867701815465567483647508130743370046355694779705099078934413244491200854269690665133737357122340545148459433514672274666268262387306327833480690021583061036559631028046702429591481500746992971044836653805543997369005435754614631539277472456883647810794810846775680371993313158701955865303914663405333404771671090335294454165776863644183433621222680912783676067735459007056188454652284667448471605624196482121378503399158944244042672062339989476819165197268768293906324735151794649287909817558586142125708323351433367868971567561674087235940378609297641272285329251635134087132303226423743814297333197957513241370933168692772856047566611481133263457101638353074208566451928411166514331431159147563290743817978221975993234842507941058278833547079307149701796335168589260053190350141035194468465530817864205675756743050835585884086178687000287374692024180720779476379247632889383336183392637679185587340017615684546120214405229263116919193132021711600062668763296741158283390384258122910976686322075774903855534639552613215003993294051624980218112414092392720640855299102169684536399799638356188544708553074639946154193543499853945397019528949435277754825406877240025317806751432895609785921595605134288160625462465644052295976105878133827194591436252621595464433156018284340371321957273414186712113619712740114710876169662474034503880174710226486342277179582478251539515744829480716088487835106617633090387023936922095475866744851000424163351373091787175047673457758146169534651151038684338201622576321788873366191199114534994255096950039953813537657578518220986544664978939984289705117212023397454283990529346995538312177609899730408675033302870599437694224774047097370167882896606463800905506839546205693211525777318439700159585640814267747111387727510095858750284370495281629235588362946692551679961887025668451299686833662036201518598037102804001725580480752764648528655022874364377038838562306965695800725263213322211960612050734791937133939182722128344780331096273543223305641902106979710876036040410868659061483063315612802791661494334387195663256344431559418911453950294962909940109185195952934634097080448357835850909123027601074262344013944076559133852669956136938754285084562113876061841837081736995716895043132114013878519610601628377506277230846064358939319739615504508937242615061769750801743297818050769753555350021104973265628816902708463907639686023116442653383593886953414156930993104885242512432038077651023668723852795286215558506550060570031438880144790770846400401983614510035127571024840278353146286571574434697563270093816839367383085700332821759252362646105692472518593358758764297405279911872206973925026536111604011313804559781543787047670115094789919521976338009180648032684454026407554143435595228689110283825356950382605885340031536863489264583153905364765873197194429616762899511375578202571081993160315617818811468070006050424122426117311938119860542937936894605572968913731653457131380315191786259977779835536416923042298246743715157398640385063113088590174478600332014561226187163415834664738481420454658202698542067454565790877565689793272148854352156893775223874727635126210368298552965252643315518115638087880370253627847138525664560617700616736844187019458819742211037704660559832107528244075164987008713675572331327831084503617041786650409229496710246074317685870321309169964957183585986768131946413567017530324178929892927350728470194456121380307021145499481569546373656903108597373947390296410255390820016642604139073668943479386882316055715578787623362205164344100334254500859523387274228507528189520608711682108357967704135525944548221429625117023409217783701259738085876227937992753647563308816640767589973138537279881975287323948782345403581687527483506960247625888268465512922045002532890314336435638227064983616306711880513864608741802944259140551941443093711836200555676057758401488181327672886310517850521022543869149052814185716276807599351076159476124987333105451789379337083288430485058563122514806296658316803283371761299200125264316052743650884679526258542280761646650050216231048272066774959432003071730205742324767557527606181561627087216421055465463628329947153940734026135121247043863108984555941556623371310376946448759387391203396086015461099571768759926222285644210552545959558295885243463014991382254180714252626638539627729071734994375576138720026705575581659606704816459325094225547053265825718013380507065459880059983668172029507854784144799742059735839990948236799137464998486891061920329974448886768169379686268464438618376931871664145345943843466345020794876369809451536712265247533169826277136870610471466689850174834627335281569178985567442553138173525554403193736170215235540025393037310702187993925292765195532742743018840670082822671139431974940554420098664883975579836132546610438040203844841793000944533929969882698654396765479350317779096651594327836475075798803280584429115096333714764335572475012765039215640357740523053852677614338823999986600147862202881032666146720020234309715661464560591183396251370539889320671442173744203554051128451133119428288755104567725560261594769886871690648904991216930326745688715692256254718783083648405292966659659206302487388758791365431996903573863210250257903184082898823920907953561543760198296155710095701245272509076513690022093884581007005164001898695902685099860583265127231272727939813031029104602618081238774864593439688064095694216575005712178099557979094518818010462947736191818558965633374565990478426269987354057616559158421873821463399869368156730541525414255037675928913371322618430269369580968533261880606871541784386191218815865521267298537001212888424318488291689978682660395539907416701779976058214355460479693248566077630622431973018468130984672884132867472194780911413515777019557219099065407964276159372902185455535425568325634259956239560893165365677370463687721706901564756831289963713752490640465284316348216179874690172381932630503974552938562632065319476474820321150800224750607264274022714319513299422166816029072699390918324873522113719260551595861483233532115226844381036506757160323016315834560544444822437768889794559736987818507737341298562307959641775344948517756572405777621391994109332231669008128539434816005604001679364198732018497506503018017142695762012439268515393392861713495529445659824730521764267316594539932774329227760037044785632638445857858631850435413496521512890634367760383874761813804239950600255047350413949197481690509911165740963536583556091191250850816674729403656924634477730495320157926111130540474363022520474845520069189334932454665217113476653479709913916983333659579775719091771126363188452210726290799760602407809884169976924403301146482997429409511617659840493730282060045915513394756754486417364207752790972286203773607396973012504207276616790394563511892831734258724889250896552502550053218699194545543578473097843622522609297273371466482507215076965008751861040175371534691427451509423678736252165425741451705993741718510387960405224066459117277614973594137440641907354845736739008123027054725754631130212903823605715870198006742459821699915565185217976290859156446925872717647519222356507023866224307837234994734361866111665981208762946430457703043107735965350285015963339993880280685416468650746895022370493466486003656450457824619508369208132404069364420174561063433238713197893816794840487704848326993391932807845005232188666624972222184508033726819125833536392881317560807700597819682681562570117604329182022967494951199009419860429635940633030835373860299973325725614262650751647056859670191657315791630990331866576136425162663645916993220746921083495814558585321547682200664524474259879811190085913597814767945464473226014590871651576039710024582779790672033586769851304104553922978153545692807481709588982094747517747239859907358632272937507746517077965340038518636752936100673402343757986666617839235623949702775369475374554364057876004914948860338161578358256622022855700879236117160169518356865832724388834170693910162892642485110463926054723153320797261294836771445235112543564635194925681840965060493406859860949492904671441296594731649014472072866657590218653272978702180159231314872088787931871221009379430583632872731527299060827978586645608321073346676223549731360539792244851531196419888997661516155946232343103722574829678016081534453008071683968719890548841178632078592399137522106626550358534722621554683573849197050346046714140549358736154001755300777941423872777792850085472069648035353991687163971467938207672340035779936564055375362432031636578632314301157817909881770547309571426257852620616918824296406514176882956857036975677063426112501878717420961406455761050874833341236203089305707939790328522759663334844570685896813220526525506449095679779734489198708953430814457869789694170450004042773742164786483960141105015661200836344344285592363344614548659242293259311562023287152957132769544693465069553644225430321665854386914538203180049646337052426657573495673228668225128567353862468503931551416212165362516260819051395713960745188910204674539486273853380585155326050197317136950724610783442540094123805777303298054606230643374462957209310712023033530557258598459381064192871377540866505646667944593887146790770387057362202003983892181315487573264723533546822024964741140734459119311974352470835281139845693560696690874300741949054843852368079780608123688815490784141817720943903254545267654938839028224287177715651337779647220473501182846503268257765075165293760354983419955855067339017055231370503488532461873552527520709377789940408816782570640134948920225495961727499466653391813025927027897626177642189204437982504580951624441656773379744094798503543309088025695968041892158231664137069153657295496541676488606305894583388907609296149022944332461454715469448778675140026352407143615464503755648490851408154019682761239157218390603209393765843889638219087796590910131896518263384477469858503153854930462089243539158813873221960406422231978900041946318743685537676527154398979149631863906747917389615153182623711269093658751179474941732098843062869970366524579956383029045048248788206769070317931462451675783413970997270454607275333720540166675732009787932578884481604815800715974083048140552179450692230621688856316171171749356696337800804830599212837741691580426668612735669638141973412974062070132680758928118378360300868465849764133080638683456867461946726596594086295022901547550344016668040595543081838862224783775340755898068269194426857387466443229284904926729252004521786908283511059374467580178730238670218206410850886251012183316423792480265865914731364172484251674130645319312369655900569392226452389832699914959953295780433179341575941945515058583697897559751465712744382010530582213729987639825520376341457357489075840708378919208558894426958895565547524840884192232776645662236568092281566666608182341298611191897861087978993721055869029441475289508644476033483527150366467118644268281690435699528355975623730410383738170238745664859358659691915462240733242133275219742091851037545884449793401646844422514858973475115727282877102543764180685855708095221247213907832838144216176347363460626277927481901230457687848125656618887386803973389377303826566511735424139419176324955894710808012270012180072758493976088296662820408530214251351527957465394398286558996896618463377983506851684793753882219074721885114467757240545469700652485500364250004905479810750967275049162408539383778457273311073669447776530447389236147395676639177913406716178292716106999716458424719784946706899849370590695369788557021854765734065004624672742735203056011108689381200214811834296821176912054141640269565881926538374445150187490353908772873675479442199626264302854034134285679106896367218048274981249122918820692255814383945342029237182200053608086032713607574516854059855940640163283633268155108761456200903143885873244964626610711372027438879918873018972736823724814876653651739135652439855503360659599547539768930645842098673555614310254461199792423378011248741985145126216077775043933528464755257676223073968716769459532887516088211377105279292144307560871409407050720032938482673362192058436379998142587293000279890150069229500276390407598235118037189719046104239376822571066388303582233288702490043198502173496241103085911739278289972406092182381599936251716115673257370421428509385702462463868675765696109019123378992370758607353845375443350615396450960049194370851255486378310560076479453747472771256820689116171504778858078922499017950209705277943100092033390003333228699309480028556204230729188944303551077988936657431177352617720058680645444226641017694362292693026502242466095740403068205121292621068813459138019953553432761161657620923581362161021587752669973603545776693344573074787775059027499479579643967141889139362514357829789171858100425755356004938932379112086895244781457395642799101564402640062661275349357115519888163704206264016877842778663326335943966038781373232669454494620803782022017074183921760457719036859580942962342892528952155132100622456820398239411994447905075371371429650605058928066757534453042789803173526973514531918765063514692959685022106699979608051171986480688621118765889789917592692988516885766450763477428338005523367483112924635819066242472601267968774613183369472082882407696827682361923064555446454254925768254122904752616777059134609076858447228163066412515370700906627927373256249855065523055339848488503271248445368111722374344035496909132675472672883364338265459079107703936774434559505900874295825341203829893299916792257923927261908391670977647853426979719483462405975675815587010973345727943410026495527230108887138715489215247212506067293135013980361439928739622687927732415822318408310373825875906074132737894849056596605940839248623670904844119505428770254794042396068180177111917772790727449228492052320197548785513514599785896593373291665987195595968903524458833455317937497897379309154300200590941423687903229512846433284722661998099560083457918348993740580159983368672085889687928834717861938958561015049703271421472426006050997184336426944593110324214662559898460521364023593693141904796968593623004512347167686630748510464966089972701614178398008055229578508802668095642804349447608263445869445936785694828584592025214635898703420145030448847142927906932305575187827208937495993647130597259315290904281390010878410502676465499334980564262320674863270056357499494804057454061341250162251520665912194141294795335925090752627388747930795768788555742882008641883938334302510813915327591211197721807533034221474393811913511842102975702565408220574875348974347272257045015603574182811906903098692187036077892506821589111125508260794737818213549511549453059103281750583009356657395799032482430185555935673016471803523627617069644259249898869945136452522295395197828260649621177241146436273027428175392031546469847108725722714625213381615445958644857155851925722815034856640485929604387771477477940633713014324633798421230179107098683070659914373802121494619186488049169371367724585426822222548597836956568461098595514061632030231450441614818038854102641302883829596707767713697434571464565708238976732594710489258548957748589071989639544623408741571046460066795378678974932568031651590321567527292130774825589031561241744253561079307629233193592635140273974298887711438401780220589224103215694991244190916088416866293264435672311763775275251074834086946656958304330360433836292397639513950704784206126707024266882848252792613655960334709011986139580403281618628466648459876789700190486244504996912843032892987124763893534417085929995151094357956819467341708671631906693315460200204372826528620251761559978865215952454424062990871852461935219989324346994015412338328274973114947858671446986804321691689490366641933693035715394017040767076501943842431889627628728321219945608926985902583617612655131162543369949340839722501353815778762619690626697876592618316650044137251091808860596347212183677924781924198632531839086231247825119227744463744559389236651366288987734813412730423712892452081184323903767965731921919947046052090782329299882059183087226972247049097502898758564703630512397348861137077823500349544073220353298460444517394787980786122525959977029388675746944173426972400098438839938287554904896696870265113185135791290276273105376257841723233730339536237918655476407605020994778831881643523406341504234320961693613158534599366605881609164811820694165495378042882197062498637570095210796171067460387165014215556268798478221458406613181130366620610789106208866934428453835487512384961835424971983368359872126070407452322505251758489729185222193317560967001580007300042548965153471048385127142397938259954568001915944232675693360453454314557443544187490599680201110127030065211837963791559027203640436482505684625991472904054853025822111129898403728805502247083198645218369884776079927816879617402346809853952720452124165563210405474378707789719568212010666751167160703039288442925316348634256769208726469228710947876788859144593570635072727367084927939439696212989455556133192394722175829547622524619077458991596095561320081331137448916933721370562604709071391662389289992372138203179821640271046328365744072511253761440177389909919603774070877132966711215658618553334405188233861383282544565650496191688780653894373603864159498827661296871720693740960457033959410150534507460037870526450963027994638146219631571591645749056550425465629221171924777209545685296770396101007297934865723580348742864246160183292505408629227568659989603992435606478555397376310748189333423908970044185790354306101036170588310129307403642495192230848074844868559507496213112951200727773728973009192412810126476496032887889754781393126088164744006130853415186873012551889506498286827980242536761913527318524313472297436752866107923327360448524360466451572915296042293103693350596332230658368911860076317822135095255203625576387770101808354604932208107466359595166393902798329414255708469837751811250482471971505194116640768580261544634327329049179488843474609859625337515256756525404261825958136466696507865688955190204194966101718269181383119303960091400874584950854869941624453686393865624540449818705102550917222411295327032047520046175645033205454196578364667965922836666410580982712238415233863271845228300532874527229135715422786462749177149278724753830129486519255379083527382010322988435648274554703322178003004562243200583106757528181766654137625554001804422672884665843973868685092815958345587103238303154483696417249377362910542533727921393176539720065956852901520768137469035634215618789595918776795076091226081452043236466891477746637256579732135721998232160600317143281331476271128314104666650452751848317769136891531206533337215836704612240773079685845696517823133737086020847477759662208518589942488727145072423756821165223237821999519823363497071658783758542281599847348651418818766528363830325753065266334120732239054369218394504481918444403662297253923969632610581151030718620581434318145836017635945971035182125056238771609420825299630202988282596351901698823690544569991876609671107465725130607590448377393871681144417424199214975265466610070460377782925148120307188352785439643612400312161106028277792642934169780307918384803872640620923725388493220963027226448221857108829032237795983189066830998999244450602553499587067184948896632125819868896878538495669034509334785475475455964285571516559080632128857842519041267181306162226391936255835007120652198352829279348539442392935186700620598428382042329266686957944647472536152730013752749391082118112226685478048345455162614751767496747990308450187770852859555736811100472624806631468144011731955253471301894240847075012196702788253118147096874849550098975088492839188628548055774317998611165794043551373654241677281545094162543370604782805059661679904885364833275752563943033459392268731155444768969490032217124369407322245003690488809958830874048946813171139338328734348279846091914056222580256883054338723798048848354057589400057584401400361850751595696448828268684874763474122019030591164772668396939021286101069156566893952831754858769788336459764241886601825722415981836017738741070047004658677525499923543623360296170099601171239216191998174290867204041339111528549417176244162001424969057971768651707228365200002290699070862327798426107941304668443203487942088425543813741321488645972417720072068204149144054143161593812863146134179603136375692336023620588052283740477904492963531538001133639744575379939423955931879629152910769417764772481401620279976833796252563488642164568385789144334367142406534487245257301980172942265153026791768856204421601082070252981158482109834435132548555407185578109960119289072417772244144988772421655537630447125529579105782277997333183086360643946159301909664605395152761108076514826315890878539011443588872015919242502064997478157384007951147758912027638910947330287009380202569715593631288011922055221145786141699290867571585647153685583560033251683240271573730826207964178248805850502261446851059658881564715154155057086785300800176491409582754133456980074651200290161683623771921990420447698249890047463244701209123349443249471536872277343164506811699399261327246921313734326250601753457018200858276329803176017046854625350132879033265027224741308962623448408349882373335904959481102506047608119902791592168937349982287043385228107960247791622018332806496138042666988340523344993785925140205844168668082200555376432884390218702153266871305002695927213314898852757215484523311602660465757660002291415476426878494213049832892976858000959508037681870966328709850340955536070150117177887912892002573599031779183970741565391574086523344581499459077403457226729668078946831290504863861031368701581031466003722779388504323799204729815816736557494274577887230240792772734132148348198525788861718484881039173618672033035410754461633667560726528636474488369566136064843849540321738003026708137870582300629638238113211579565978673969958397432142762286831708442669889847595719020966414091856548749645729759466572959731218772124868809002471774710241871235858740516199105429798919725252624442545853594774868723845968137039477575812852025359919013481356547059833375206015518047016928024582451366824346677364040680022057405726308788676052336646740296843124863470292094904350249137677604161065991221244156629302140575245320767180285650485098550732278077481110209718609114439666378612228167701053006881954301998997367961623365474831345585854374496004589918615579359469050862930306004937167838979075057431838044862071158880742400338515397323951167185554036842602246560315876580809006660551844139409504509264572931512988010417362207979803728879271878598630650903389687442326027334908452391370818595455202614935819440195170410570233327682932058171007148433890567072389701432691507968431990511415813768538483724474875511682582407191858374687651356231403082282934145821962038333096967734535298654806456835609158640767749406010796141401084950383852467035056321452677474388758211260528117533953259416877358419650104133361517022515699803510528054376415558625326400256398297338184804943860100884735497514239433778063300943284305238719199883234495835150065564100540628848755649683252251572697209784498722293577779791039665690009044870530368493217669108118438411401067653860261829681007395012435995966796119440219008116616386988824619676293583226674888727050734773245841788782865352693617927388900389045441036278659816061776359472919487762537624661778675334161640218741006776369275427861676283720931417273411769614096015300228256702757643261479136095258651030147885150459415657262130719601206338902246746972975673791651679416038346271602991984066918016675638861969885650737844028933670017232659380581588243975178205797946965389234995812070658664347692773304327219497976718782249867716911240351358478233948664551163121017376705350488910026351735987109174670193045102863829328954178476085518152571608763243341932772787983102328649322568901849744827642799308159767877046884753168287990725779346137377848812596584332690535976157611857661432677518429173436232153828598212176962896631064003603721630289527708783390610140608190276912538278130973477569061574142286538826703825454446812612083621831789535069267492169853978026498305050257183030094497456247727812341206356825300473785597691423183074484461503954491470499409618364690385818757035030918042320206864007173933426176246036962918307219714387914527431912507057653795992108836329846156036130883224800635606615604524164195308456794941323706477001471280309942561953366084248699191287033432173545430647261685816234525915399062282288191716901979898543382978508345144308811159521784211734118917951226709835561752249285586824611162729913924606437179294101328461904383763950568312536003005573254003156727901904143736647505987731706305851116856332928851576695579340815454475897952865921029875109657382520459743831278377680762587698744733084924252474422711561004644899571208004768630798687814122546909144439028669089008149754270991211043460276203329231775663314579078747892978036830804152182307471415222359679976295796689076205201650249730639470179229309828814179448871649226986435014219441430062325123621571196161407016101423802967005595706638004171646999506275944951273855894459841320753349992902257231815928882336437786516702921548658331819353808247492132992139942458513859723070102734591346115158081680348760507136187567953989224693608834221196850403661298820505702324319488913242116639378935981693837572481117036542787218745168941817538256050995045874339145169075143740593130080711574191323097480363043774756731219812007375762002080804056147172721289279008641408470181158836666479576486672527398933385370604258395147957915282063561527986867827968491150674650942950846974675291136138692270614772611415882291121364535613863302241485159778286820939759829688741041374406141849828748167444637517621590720668143371576569297821340501388607591457330573807829341791621148898779227746790314081202002870210386520359349540063035121866876768515369213473022539728493212066702415284838636892506949957549435561908368525954320116859355027936424647472255373861271668142122266846098330142966289417056984206147117662833585011913050336228693698029393386775163086312295231580920586235514638007696368730230741365045740577067051678598149322351566566697034240263301962501831600008641087669652709338518234504546650252287275358522170425998878676677775052877907672105956906244753920366323164437939254202852345697723325518826023950303119851765861646769043738783058287473539805785732212668787761331720359880436797497468834644670316434477152409935711194578064693911940625617372768039076328820999777853999740186462664538268696785752850352800061182509462409850362029816318066437936223454246726756301548584054325630184821682304773689502071145507836017509886622944699226087205815025462395015907279874919144511118206016973238662298954900125850889844568778601129780899991554124766300375322081428408238333484317855463992108487398290764134660903113717262886826724232993033074000412726760348730120912403410655446141369530277820358127112242520974048294973427033452308191023228848248310413892690546965560623853003598406637628427992013983752566304529159932403932920853665348472862189032185965417732026154207338755038293979369093847905295152361657241404313786944784263101786599234252096755708696322067049078903588939920712877613800275192649269425344882430049639042895416568137907047566520149523004277495565633095958113805035925029453441469357314114037991415424562814405380880017350468783216714199468511336563516737275732736206055168719858398380434682442992411679568944820697240898360945873721372292815314995491087571114574263529466436697596728102616795941390383991135084927991622531777983052877112170729520801226741868527483952217864548981015663897347610450402160722587446539340623754849017001044790586942435380351918300703741793304980902689679412312704517746668918273779749308452289611011923970250824398995818752827611933428869912888333317805293913428457729579587834146908084923816493980475158447817509517730971876314583663368299596905592228653473799837525190756645162284350164089162315494299132530093668236623903061499546093419109035496546663159370915088094822586810712970210231677702474460104165407125892947631209844678253026953308257590633778458171099620250776884065912023951706078223866837155096284408794387916806329826215957434366055656161017439284255559721035142673658680375357645736660877305226890332118311701560921843276292503702510056874846647032414194688627387638366985248291717087700588859236517163421779891933296879823929145890209021860813601604025649790516975382115859999438643351315064558255947891682063177825789658062382035336135008516216405421842300961124701658133153130149370771094105689347010223701523094402996076548229723711836619652943067032414430125327038571134479253478021805239667651561523576873037652630441281986661696119377196767797086705801184486373407465244122086466649337293571321982806406446059946415721936117243252010021219341593696981430202969227082353270531688585528957740741952521488171281642537754314838297912453453568059133656469131507177471162527755471411290630377180009424358505291601353872300920342995358156445749334119400943158344496615044188468396006919911266762016909656986285830267705968463357977900690113330298605754368474463534014722217316037001277752067829730521296469059542209488015522156692942381251002723234736399598464986648555549925234764078203202069444627599513359815504828828662799050114987979057098512826238545955457554096068673961292364605078194690039508585705287851287522088118791094873303354492224594272937481968603298630373637684268699909801368144304264095752883364783445339162135818981860350605904462375931343351924044165619649674186787292339167575150917807530726366263013274637643137346018360297701552508899992047293429814935661614119785039565025142720933904243214868626573912141524201492568281984680452255815738992007019390637830977009184913369739168035721125739561653018195466680807134392373718093296095499203623226721364059890731190344351196221374547029662073941684428109861438593296264316399935041574192517976530726165532369962933004343522687574486296795626473878560156305780006005514420672459033091883300680389850043187025482357845476047030212163938505610163102394910345723512328225001993033204676162941124627671226921813643000261484685300237841525137107348452043660090918624163844820743347165836085278040218754917147007319010274850913807067072245081094037596083143530162642219374325916486447052530569010598566919030508152131781439135993405861452434293512245733641921360959727661222785028381837605015963320460046336655654433622841773485082665732855344537326136538550250603431728684877362290009026294127352020775067359964017765852070431969224036923470292599856485891432325092976846217306121858529782462496892819498649075332775501047380228692381209947039455277911164857577605459445405061916620727356427406135749828805979851171675168579198549287899528395023573411290482933552361626437018996384787239002885329776793205706246029508391494561767926586932455056997058136842615603967705084391563618137426289794179102685761379248136476664381017892445680288290414755427243785010501430474613757269684533239635887462563666136953516239494251936290559602738620708296804975363658882809893049542420632397433127682048621958731346431017527262342818551182074719338285252373166848443400147612800176290474312188551312565924247265621647047658246279944182675828583059319387531305279895301246572604407611657601816514505624570755327527700249785252955639143965744711128107334177705568161948297889119766221170693909475026319258884026494861090566801699995230956894281422288306028302819688573029409340354371259754054618567109426482077482382681679298388114685306495694405092883097532795121733739158262304664101872800919164569553937345411036453008636983854079864681687351376372793859677915910923853260267122256096016210600255633321893912155286010925808994259238308280813623388112242315706568149521920146953054723033746870690827496006472593579739207424406475612308287464588506246309116319713427130760310866531403008054481900431818933527804728771994555472234413358898570453926339769206279759262783365297751650787956715738621922044462372031936323056774224583111399689212215510254786395934443157804573438361971384710852403536267464639493850350431374880519642218687930469348109788005052746715802938660061823013772984633412620068304069296521024884795931220765707982529787476237168167611485715636563395652614254222607495675992786623425257295283679641139677901836739706162875774856090082006144496289265695426103310468636575898777077406419249060047116224541167005809067350573782589508025826345146067602206488180199645451368189039981696564244946633988723393881520834039685435510595103583410407751823895675176928906235593380524718695493596174600996356685473882132402225827989833881255259406214318361988372382469599734431603091415138301349372425026512370710618558907174148599752314020435442034740074386799333697026109601194136538845117694158191776924287580751181655325253721393605865203080672382916320855029499950867258945615615311279132405301203941437709050095015656076604537835830444370529472769695410863087457612996425748764780369226380353684038612002746950897055458726050871714594823458479987573214251575414337217616855691053594024877102648412969716284194575214491906104103379222741313142460585768621376246445564484778926960377256330440875205958549453041832895272074462023784023620538083902845214321179201064257283184444461489001832031495392551402603860500578968053136910633264260579121670879091817166283703808057649747384156466119814753772696261567519219070198224140794079130635744926152584095662383245902270916984552375093631250339014541218183961507465492233980010864564044733710650411538194455487318568373491380739905499974651590099158204204108098895515101717517776721192241346905079401941269038714632066469869802892004430715151118987933107493083363817544800545144264134374286802354206683306299019686919780000900174081142518432928544452526758083309237105588053236894378682253930530655314404729297220111285118163158009153032292268531210587466661300724821942808070585333717607958183590358858269378173722380517983740312933828680932810499334491836547142791924989420557122242745346418043074229521194500417944306256266791381027720824578394027253784002066329696368193006474660827272835065100850321392606881477393017691946529591644789999094854635856160297019783307479189024734616827818940679710418842544644774451081573490417320821045946796363467539139183868820911529503731660234958093549817966157034114981722314449286334787920506376851033981022707342925063556781811527649134115619736221043378883360446481152899971170755598012031578175166971274868770238660643540028787259046777291250715589046222793766334580137467445801683803341329082330806784326863958608515196878105196921182241845095797687237263008118493758974039816730949200208405054374715947037425744422693544203152873950597242130118311748900930408730697141871592585501919903386451247527035133547273450049447102571677731805604197469211565109045042752425523436260707571720862078740173872587698090881444290645581649466465233022644746595722607675577923659546654351704924608818101065140439528347177285001656370063605689202080915548981271212716133488595258198774593524035311730121767733754280662614414523691571168409508875549133873620792416257150909781907702467758707581659020372509566507041535963168435579106075259572277142607654171655630959709788457252905783569418364147151098479630633215694751406531331982591950470974043525499691537442769504633799905230742296395799280772071955099895173150436958685124791683981182138342279551083773036268156164412762615631073191914587975962417265824619482439135279603663614778969275372863976624302072329639754380161533018723453756878632760798592483756947035289839651300501583098558769905550878296633455261217841323691881079666137916222410027174031570625760990127099214577361640956943483377869176431568529340495874712329550054631450920175225395401404006290564654111353560537222168414760880687364653018852419186448812806835987678123719422290351856390193955243912134490961692149163033928511296193829534768027007649320628647955213040923228251958393852048330413093775405130378545274825166091645885984281661454925723657110877579764074711164739282243045274768117101679386300129209906967785835075333891931929005917438964636894488323354108655562013028108187245503436072653323027703509489322245413191698175138850371286787807522179988480435274903188831201077553950182956468963793034687555417525702287777722989544659673219025727505282836582368218946935148950163576303166772503566679486697566633505873622461890754295968720308982955473467576923905539027166805631971606116957652698402958183878061151333117085808164426274895509615489427277114225198408161639792581432258456824647548806082367032912545196371449113540770254131520147642912945802069181050109664212400429040688653901731832416197029237046058560542993056709177990326431282637240666725072250979598112090525919041295692766221427493832949456388549600897057441216379703704510267956710389439514098151937079184822599710894965066863158709131342904836460140384885936609305723916405656803526710652214334474954829002677809766292531888226751665761934277112225927718392685743523380135816369940341388183381132527256502545734268266661658945364634656910588760804967660869597871717509729162819737145732812234778381915290894285183300052571979756208980138895800472960805606664614209683681759861124981312262521046528339444521952890143257344616690251960227373391201645852734377194020128073568085711192185140734674838366134610898559762800616344218256834228275847252005558748587503578830810124678677218350907813097094031939059628079038388592366213438550569194625506837007867537229074723627369921483076958189996983727737117047858371775707127719586981018157201128105274994589859879950853609995425649424022971658711792809031053184336678307457924613353934306513248702105056028968303359270777828259565210171454541191356693488042999518118172896906593330986481647024040502391958422582099222182547931411057817441975419636873639178932930734775778065440991785328422551078828469051447247630603536718953085802907995619528629711617540324930765033007627925862190721031248395975176368087368580768573621259931580496021959264594067848441153844344848194694450960085144403379754635187139987604607717035928075880457584582846111408331112644617476524904841233365140424517653275223119419043589639594561124016219026387787138518478754459869878649232025588326532359053466169277385669349177237561237799811377537175428859471570434632586486452139216087889850031789255884754175960554617172887678596748530792694605197702414489810890269712999577285606651996045002486589850051560657482249800963202001231701665135715689032713359956502332828101568534659692562934267961119181002863364130974727883394826457363610698490736980943898861876061180533831193241146404937693442002876471869611793824344058293048349545929329294807530893599000859956302813943109100491255657688569214388585967893999730134164915530327533461617552079867808412151888147255047471864739336242592041761920578780534771399686451366776369081924261560464279741694613493823253974689838612101355213506499838985314177028208323491114141955769371711915492461708322133260443241879668587817331287958263492665949818749241296839736281889802886217386655485786455761550158582288072346202637969181940456184059235060110558812093279858103403094541533455894494448749505938530118686609546854141471380376569565938797103159698483519605070222937897788441047707971004402274552203846140220405701858477913306678928792731571882560492288126019187662169055559475446288655740983678297868931220290375398289723518253545230862510141362977056822763959741289549055955688837295664565470390888795698393053339208343991857660934773489364094419753236896846295632666976347007540554373220675806526520885683025349156701689415071789828388981820215597334644789425265112982942602268599357929705212167752956177917423639908465068674192428021160599592087797560812141416214263664992787607294086265390925649745228005026922012904236901465748451158499283941548456627017491620735147949703842530690244800573449910081027159529202846297097578142389096866408047040388801325085755628365695410365298914042714932859445342486994244657143585369773857049276714574920354596336180305016490993911698236244685851669090402129466639570918698662653008239902936307245436168833873197624700636213383193406431240414942130871106451889013833545417235591294203765300398266972051394094587485357496578531517822491825618010105486850698331098266392712396128961144591205840981412117525892490604039991674928551882364530141000274086924100307259099029342268136155976303716811303973407290120308930555613930579040046062875424563484193774018315184840240900889014546158763656490529977972041474766461790173025046805096184810320819994564708378968431250275705388825448605079964320635989401138418814685223352960630505717454958650190343216507303241780709444240025290196233784784890334219891181852364474006246564933146268428402517837265652379636566613724977126414256576358141581748332362877467096236342329442849776511664225057120779928628924180068973438303321579234234237714934452425448197724568593112610344654810608318829979712206840244795675027296718301903195107729658162956458546289223343240186987886461624600984314055677524265856957223560820593126035612791161641493654747849537351628410905414289270139573085085451730961352938221125557162053256205667922541916335878635352134763851044054205385135747391691094923141397981774022068279014222356929238272330592780582581183136785132304857014014260156498330647824700073629257582929409457899498226006319983057442028467145666515774530746429082754900795791688330363409225711592881030334820664122449387915001359411106300909924353738555920039112251368602088078774308687435716469679922976850393801189292005380839887041458231201665050981211584269169598893874493020246070556090543619495249744373723261862274993116200979155891617997696507807074412648185994413870412053047192128630529707583308305941157120306310338344758485926510391287421881349681479433013009683426087282166688360837923494936983400158865141315105100413358408179884413750321261089551279218345205151555813679432607679796357088667684325325654944496929221318421270688464084296632466098315160540581275752831121866291729241058227958581752988871515709180430774388091106577982375237572763153551690233041413138764863571939660461916561555621469680050739096973230985240090389512919657349924959675222853425000598383082698826366027842317101639335807720344571984602091891274488245674971810179784771278510338224337959180257197540879053751112246894995355257899047044206647376404916285192040142438164424479178732855077890866799295992969334093437739905069951933944308275530532800603973578182572925933976177943749639722112094808155428088467505048463813947265832134951811780179049085473789645937196273051109130845796943472680602316514529596344668175982867579883430358653075694264755838932897092815361786646951162667592023269446894245750200177563239903601586152203828115732289162620091911951658794460029160313132807793053216138693988294625135310715216089446735509218523950312678672566532461139818138241402906840197130654459051989251215202286654060952253598575453208265073998676181238593584074175795807374097963168016406428755589713956976099269919847446555811069088508226224962826245964564854023139708471024813423219784098496228239828466582289569653030742777927150415176627039379266204940642013739241152857979797536192170615074370025376145748840116687580073228950527603942093544861620419631785878533281523713455261211913604248210136141302080062615231315739615179389902897226649509159472362886814601837900270973899117922954330193684368233546312717330721806373110071259497804533004174099429620404002179721962468528413530972982048018838177653251849171372055532286847585733857395336994312757671732443165867860013189205271436900919998739941348376859931602048495641389839223282335967726609531047367405417746813697854725551395892775372454449377594746941991062377339507101965308931011918632588311518018198318948499722259656008646662655408155076093608649527339615345016725038557456169145396489957835532949509607950323607755647518822946484073174280761350288777463536910993098957047529158905252126608134388372112153693358127992257184709102795983554156918167207974421770076251425154856542323366777533906311496603014920566866060734176763888412325409901051735910352421870625783991395704621141677724891141620300931486271239101350664191130412200280703340435491426093369964018507766230564858683463114698550110526272811959371188690307027067373826493276863086228061518948123488427892643198436047008677894372418246728581880046452146025128969346799622252099401810900725263246848542558664257693189864119425952560457725969837754029733635652176192447526378610332445789473512143375393436774008153835907847485019859278523251016176523785090735954390505434417349943103217639460166569581880909143299628397776375575821648595516453947446321447193667756371118551862509740065514925579241326470200348491258376742766215561488643687636974698451934665310063363287923837092374597844763501571487403821420135574489972907763037987876778517268188445401315117309653499364453227727143682629546669025124152143436302525736400826682666983495335674339272395156055515585584418215090338366656710411144232646597314191791064560399467341787183754993084251176276777014896202963386806880309431897085788566525807451820098650026862664057739340465669619292913440405138898901591370055651011414072208624599173004110684970206325153280185142574286512480652584922458758967731292295442443376071200747294058847705597970387327300391231503791673930733210507250236506302349288700853975251431504108443360071744844493371874150910180109755337745022993352311471204566213668695875084108215761951604414343403597362166025467346517635787467163454425221332855290455762172576218490038931298425161867549753026967241534839565104166511090717968857622960400864485451786113425204680075105312483962334507870927472550624027271014140493201500260137317408675721175341665634959388479184190768850429452591842224008273887881883283676616045376834543019461942985491465036278480422553103190159837732123411608805543223740549856379934058641736973511447710807638415941216123925919079208637132036773181310071877938079878177501300618328850064959860221138258873113931129966204828384054444333242937119765863193357868385288676686369753540488691677552259232622835493388437264627902641345688091892516300140429331608112915883899080294854962425506447762982388509690519222678069663537760764419885127887483946371315143101833928524318985281334811305428536300884749125324366204117773276981094378228680228286601455352390323629948010111979778068913279589542071054200811804519969196935259223209361020449557088206955866556489233003937567670660598673837162118998560428519992168097833615468837202441760433252278565478005519893810154188667243911150920571058019712445098245074466595482618069354154926384897939395130352007105157493453144706825688629274069109021083053709499422883998127314021287499419053806520967247164045961393479790246289583119880258582757254960612833898679217196299438902851376997488625725965684172606751847942350630274292690049993614175846979490408203877497572998172336905104361821215578220578106590559082222463609375808929447320297405993269053460539960530195753418194089093673091978690944945291477584828927435809192391667274160440045392540769056074789460513034108025879960357816717025462180946942388930088991740651675892735332086033129042227439989953897250851775990357780644434908603232619837305323903307537444881593003170883876713238070421079332698002302873269221262926868382855423668199872940985809179728755961592532374104007512785357277864973477664142244691010448772015995407962963111778870249442778078359233162725786464484072599859574189376831462545524937495126336852542394068302751011157410877160288166072103148723218068834949465094298928885915025912835149903989546921208239758576314531531938752977402929715413985696935423201913179918452799351947651774162084504129910036782857999961778580175428819470143264458934566205596841653056136148721876694721195096555443156861606649792405667814821556430542123668897482578469885319723049963444701072485123110752652791797595041785100455946245606317278111136455753880378109820012403491260520969585812982732153763878209062907939137192572302782648660606234138468918533570237093304838272005071653035226531184558181649060129996377913951882665939786000970941695796305016377934746481501409383616606130174211912123073320934760808804844197022729770524800746459393387494256102680638444768273030214361386339157908762701148930453103821177141756064529100063494797097406715406842545459427670107291456538143951587583018489844651625749675831658409984215080794606495852197848607389984160174130641511403626144899512028437613457267733719926063662029448398701670813132139652178218723850332446725961334832847549051482330619774363987095609213777840755664376443698616564268555771162686590835187792116999956934753439133275313456935466656058823061476730782510776134862221793230781395540494518711858794008144819030046290267693132960346667037854430596750920043040707594490007417935203986608080230559533782801059484537299846196365030276376323310991717616674472080449872788449982992524824527040927115480492771930029158076250131963318004594999068805477655624507527234239535797070569586538994327625565479684746316724023540835067124453308471087129199276145523531686916657259223417101475896985302562701528944111518257361226310838481024309360148855423100140475155710514915163487559397629320446527819778981451512705636321085326907345488489589289506125447629417640841108343323960829787950523794016056102097628318410497531988056472580609457480504643577464019179816852072895198006241587772285251423950213039289781382873787516888434281693806543223082493782260812483423432778972844645315220695409462109720488042919438540889910096314018301974238341619154064204153892124737516961728069047906228872010713633899135562630992401314967647443471265373420312146135122126603208796539977921006079898495923157875264143853202429233753036817539932408194141319183394611090991357247144783589752789756122955862080225065641452430055028447894000640136605001946053480739106678676617814432962714058374222355692353411260903585883463240904172580111359301634733042673048018352440593155506495618795585304906825382810090027803670303754077647684054998647000565078842151563587350192120910377342055411007993595861079278919699480232018007310489082966582101106819283917867992077004560351733425047334004259987056642051221855799898860733026189816767079340479236493961409252040311549949885580103165477240249421484221342015776014082424922113302874043088245093504408364277722244649649625195022233301382909885295516007608300171424620267733673046475851278586461469770449288789771565194583400520243784665996441840951815848650183968500131003988692828216658572544068219158547286779117564006926983249094388982410269809309730672659557694395815098495761095641954670615314755895970315935594284522939880679017599873657605351582605426545922393275987623486413127409848259913298234480923837864325019520119142882227122222616516792807162726601419585034725719456235340797150099696404456069584182538600796921100111544442985614976538821423189754939092867320515967752945051336404222388298764144808168254830780773018337177030659243729853352835086825891597281092759494697216835834766684488240453828718138315038923996088211585622222208165909780285533364880893663393428958610740783238292125113620540599179821939241458779889957561693478267757088152080585798861101403608530703597091853275608054852230020939669509614975103451337387081361722528572576915123070403402471950493902535571281811359084555172951690595369221563750520842012892831410891980025386679067452699619678561734836601548365008460974109265993917603356693834766726387260776148338656401195805220344789262585254841804705069720646615657405542110577796389242679739905926312372096849033384114249289728338659035029784592608548482129411330731833685744696503725108601046676259088362520081247605732576189363664367536316593393877293223407535167523720857082276525541483021694949464670687704960533344980371280027191140118355860876984866863341267321245528319825112674390608205645816289975146371456856684273681295803431545155744026300556539754298329506118775315761721288764987912353610706000957684464361081537895922383694902238047180113949978116679461444989372138519554775925826557657342551901432198266919212767809649245053354299447956780077833806395812568522263689620908959361486998725002950095902929516865900306948386133377253257664459593864190674546288808844074306823606579404691348860305973026303142740653112579778908728931359704035417285703496577351421724372095755537688794372419928717785060029965757009402664441327922766037769830875497186336960984385162340448887237262878367687423306099892154542113252712868663974517550841003207450469522502966728922914053361925559715340633655475942473335693183620579491026934042790604536947644837578747434200611772332344896334467657540097509884758458647424195522533491646246334819544862005234705357366752492871470220663597797406012357635049371179518644469387706103676094488565123947351674900798298389969400568904778098191550472113084857440962366873702277143229645080169003423592405630933147013848948011424515876094875682153579843983552138746607150975975155136099469877676964869693371912407280903380731054441802293702670774103364601614420296504165933806079564126820634247077081680208978709464849875099479892566728721122894183600119072638987914759207690905753038965224051222426362786472157877493835488073281456570785738040074355531654077271545376788443852502074188678487485015036063239386065820371571085000653513252558232405966264973590180159370489585980718799691840427087469460402489974169015382620141872651065503837880591851059047253428850928193688014160789690208719766856531959390976659847293525408203891839598861967761194228009624005782457894517293436121282244528045142608077008816654838962602888267994748888811348655264322094235159419299008927232084347371962107625484599862443319352385598091287897818232330360236493461791020148979789793908783089323893462718612023937579223003159777522475861283895550972927746270650175032117377179823202612720648662628368505747425432231975242692993140790918275536387414641723031218815925651166467532666128657021879134443779795279810210827381772401844457679887897922808211050106814664118147426851953304496775782556184505288347573303315499423797042615022364581075130104098684888593727311591332755921142937934686732702330980727916049166851985500928466969525662746548975097380085919855911144022077887174876359481627296104396703112092593410658842383619568252727559264327871617666416758151266211638606360321782513291619177579548797387506689343942326097939041908216536089551970662329583691313000859410244796212895661722882065136275223095842124075362675076664616473345125299424209412652872952216518398300143525745170285756216733194124849254114373863152452743955959846150869754854673323887582728489029637196120703642862220222587773571954386481410968373146442022250811052044248478069032525837343762189893861752893850964670797477449065076565071166774383282472352854936740939456574981264993402410039567263362046521034828359080513141987928697392495849178593614667821867555766918464360202296061516214590128744603730254619926681988034682461125964954883576998997913290551598482011973679922811103768529150673671381853580649622980736071423967712881752837508974753112831625082944794493844306167096249903058261369218457114557078896272878014063589435243391298213207351959527746366408868056429673194106723514878285308222685858761659702922624459967879046261034924594006532997846739246730281442964522173793390179229603661421882477699456033571796502560214256109225124550223413273065312192783229588670318167454200861347090804090876704246198926656548095494940020019297532628291502566806521526793347358193778668026961373030418479303891200363347618822175617339190680285078464301507051332751257496146856379542690208535465082802582733360364851861169911081213543828904244585313452537560196129997565365007614580024369818591967293302246235122340158505964821181781253861242265464589325482762250593004290230218046567056755079835008253712779154723745216027030694824952135578957793922778585369216649606684213395811672065510886761081048708247700291938010919175950371501373903070459177400387003588008828165871472288405596874965718280055229900972210690679184622723803448824630265680048965965934769134002547982797094751133006146989784699721326638415402959767063873439751503906005570675136824709985902029397577717630454465242043839072854808909990851952174087121363477872918570904434751292514182936841132762648114964588008972911669041396295569401643039340351645010901218680812113107477230973789372731401503033330771619370506275565241824847734920349052269360535554977181000934203049897588389582976121571459472478747145915256954605201198250992614735435163198922350404875711729079363800188978975919206135742994303299954492426580471701451224662982905379460766807436827035504626950306640412320000763792704136091882771627090564573144219655657915467218799636408578723073786784109604187614279476637975235942376998568290921937594734797021963216972627418859635081315156728071424068162099912190269592886145189877750497420125853115527261242055368161852224455100313310840511390245673058869946438038311959400842331284567887044567923290063447483084874860964701870691628460164390433413966997001903083860786597863269006864201393766799932240058445741690135432591249733131614927226504003005858184210504891011690845141806648781258572601555293018756476586771546025398910485493016944466934408409801678181298971417505238804612725546369268546827455951820072168208484597742247363537375622605989926902224815634644313486497297833588535476511450680042362507907597357636569083662321344113335448677104377978497211951311497348798696367981042698236385183273259884918249799539437410161287406455349798442630311677557268723059816393335631051864231362739877494432941080152978434692338025847845735130672338571707644441228545287551425277693930947283444126710314468495246152221640423302338078402978298938385696649391437150544812941734358448885157966084206654944012517776073227849094222058732661384169754737837666254854624063631503232881392494682111834462666707176412332587082247284301547798481383447057018378097550458118723296534539906281845374227203179897834313956962135034664002248239767278131484872126605768784564209898894110202103022513721731766087490697000063755603196300466175822266979978126275022324229756086931975338271685478066068200853205797954266506768564474049265454936957398720472871026101996862121194465636140622283328058268662316864739698773365414186005340459085912063825910009769235498882337264713298254638030517146074539557915402749947069230705925764437015355414633077992938853104880048094447894209662584172638389844040298686682193163291898770329415542299344505937835494645588922263154795930007148498240800453972448917005268337471429754006536833667836120705525633462648324130057088704671844784694148717979056079270231688241706000026778843403228783016250880820406539194372561716147813311324874697381116821155087665152279283852128129258390674742625754749571275843191174079491294840282255858915411533688911903633120871350736683387468999239435401090236257698474043811517882001911234432669062866652843590215178437242911496192955746940064486994483290128269010331489069313041057164481177462396257173248144793585070784078906283450000367440405314445590238918873993819032761587438804826986686511864802676398010464447650001145893272594628404571107110888206045117496994538143392097613217200618887875631859623022947976351154429973160725069667096954353447898613249459699964387870728375384825265191281378906766120373138247201793956055565079249406024063646493273584176616000050511927910045359170477038298778275485575559600320979726164591172772049815137336470376297539336630235429064725116155599673133601233802778778923267722596583016137352098641695544770489727472041791668350019556094624943684019641411460796507172511520849278852084345520509394374244284029089606308279163383813638170407609755006245193284409245000437756719537738913255425245019730055040055315018268817499058873755728298679972935633440007582211938342132023209265003871333292738503370121861322477560559024129613680546601281266878549375858736167471003370824560267827289157449979815922365778649341105986923248863344629653484164611670376422345623027100977448148563854546694333426439861484228984295139204350124933386783538171546028608549527287155112602219610219158980732658985947789650317268399113856298591528740801615218981071117335020925696046265121390458795192021006489761209928575346297189898223637764640623843007321445778255412492519287543791138315190576322793703169143252860981366091125908918620772332275159956449289053839682741519254247708333758061975055682421520455612225242543226817219961748694057888527464509611728621690783406701238075214071995388183004334066891006850134837911374487660540829040515982996661696168997720039846873613076964272924770046411596984155889665437656169216449513049181247436875604625879913351631058885920714320052142987026310026400673920146592514853027141935658581509578620769532648580671384690797179126129646099053263403295554463563218728738229920749537845714437056784370596904063036086914052501098778980325163440993960177446736939944321739816241141330598333448389775140379715078411275968051588575365995861338840835548485483540807537916154618162326364088095177386155569808051472487221249017374503236662603297450792617536090389629063206810915104809200939700209548826786943622267817637407317971601988463885528652736670298374390167610736114566901587340167198857031870173213512279764804664507679189026355468624481357409505588479052501075330252560914989816156040773178068625374446002838099412741254649090707851129176331264314096775816187170848146467186946141635756811246737110192855896297888204622786737467940743937245021333045356314473066401239346420121047347925753296705312874305914179622277438911668642552276849479923899641697069776642627167859407682315411002796583011622898509413280490036153726074095961714983392384636664339287273634501663705607683286737173484345392696331924982003875398457248027620962585762925521539436835461730887414408497745703501681449680727940902350347209643869101987269975286275348479996935115236915969467548936478177667712940224850707796950373472912872839125457319580063272153053610521294818014771085602062868596872401472465714400532006761005485292523824771118720938233247262658765108082471238906727573498961075517411417317295463536714863361224507812446396691257568122458962944882151625082802496134803724648418167464917588291826373177269634110519216451996850944367171947366883498514086858432731534029985816771195846843760528967664798029871419395666638007888755525798250489943032525819361138729877633854801005058801377163170038284540311547503011226422065676049470761404698975770822936657110435296359520418136552359990479655823643287381112891529754866693704975621545724346861211020378262226824608664554294285409492516780352184404643775743124201527335077386084559909512123704421852954103609203733732696788170727670267303217056699503256281652800184334248249072127021245614652366184058103572859007490206689326945364553462041098104643111124886755974709793926524207938365019925716586492406908756741937303971293038200325248557184829794376872635074787251033310399294566264213324655916523995178601757377679461379640078925520145213807804545419284029685452925485639971855941852781802985308072251890371486637248186725289902838387397393417804934269453540792287798372179428679307827756274216327472634181904519523115521814648441690387746313270631336625742607496927842370021115250471177035064692349995546429526342279608334697383185901301567949845460457186663810150068218580280731610303367062245303608919429426118590931879138633269979314607831173048102244616731231023375844730425896776243125645203446774884464860493861490179026874154803589552932592957316290159463117545124496449397142706138411126975434058345399901022359289546416598790802129484745127325142498523872348686797265385551871231707940345799881311698550166273162644493790021995581975833994591617788991409864147391360575675540983543088503734601629133871044397484437569202327191282151720842031374792845548741662391083913727250944226819829692563003936308805195552432204639078484823870067495193937424981077738317932420668322215793518705898878234413378381109791381681359690674776992755746401894711756501028057621800679466027698750860359438585510658786031962107257693319091126486448440148086518580845409791096927954857387310445279900945516465291186150435747554110712946159020196663033181403650696888838938577291169427637873088295267454301364571998961897240764042772534544615115482991974429266291799433714111075314239954366004507185022412712120611788370326211687975033214441001311458552782530293195626827355869582541580745864902533335695033417902702523816894428202951728901055905588707148557063483430564365267408909741173604830901605389929016776417037352855654644034879107321756688555646733689704686424299624997726836638695257127869174467040673172911872756586108225895064732596597473414002295688223021459107309074659082083231559725564224521891150387369287507999912508334129579248685354326931733951752012587458503289894882390035342755473270426705314300947375833070263059860804682537916270783986059918941258730682289663012304387490483244612898668162197155652412277130884158205063792151230952519820665959581208698273300299666945516386120929638614495422755906582939860943325857521677295753136474074084751028592686735893039106177556202688304050972141529740274659917583391234567483947208647642327109544315890551698584349790396674466084660479263887983699060948953745745150231494171534567342708315662899378762985249316733135748176079608837238097688312464515536892361340534553479689778721001984047089058352348098465627976836233835730659105452273486504130806940790069184567620740048386293070551714982721365829538474966431342527690450908619748511509572049056311320975103258548724922965388858990917812412797297452173393433530289216918073943438689927822277515177327793579491095649442800462132235778412143930682859120080963588736836461201787025542117463662435050033395106782245063541760930142179816594673538516333941685846432833192006673103195351703449483949176979604486105701624893754939307814356948662369113411332229334510730440610320456668794692116346503869853113599393610984916524695467779457389945570657727720289460451449088970352710522310165447938040950303403322157251144163068392399589153287394140078494946803322570866029608807266383572153832666799664717135362027997496510106577965491028662164142777063373682917134797061638782926064966308503251433990652457172695058268019181670683792735122934752817951093100512051077472860754610602374151323171267582708157668351052115104951734110274513176514729641685499901989260045284465614130723637846018970147418805449587798164670936593049665927859932225172746785372135531488548989413104629526276796760025339709638662636569470723867172456192531148787506063377191569914795324413833101268708367294887975392163954446835982596572149298431425299757127869970836055712801588380332199787524165443968380610675481207168629100225937500212273325206386112149451417789047332210806486347639738229146348710570040287688384648571646525337968191512755592128681622264715990725818467302321842890940240773474763980552308229807814273552066437101806379434384017731314462961949895591138977432092932158172065088708139327881992267680722614289435905750265599800544277242677062973946192645249038083629687347762266397752093155773526463463610454690722943252896658107797716345909599097266450016129923315277178712334126287996605654449574233787346347345514434116928655918506765371451900415846038200785139057889166333373994904911136459394332638984139731702947049017490553397895413263984069485775000178493094436939091203315631813764079088818201311119077668808447435410520968843539926173298858287644510078679227194938504793257432232564893129810830795756915927474619285141728857750298275686243890315562578362243488680126727979572909458969664558290795749246873342618993105760893183097926030265731412516020067169539341847192994051479168070683445386925793221668232767123223725881266319029637352176295922155305118021545382936541003804916697606468006762375860463830175527876478190628760148662629057845221527115689245968920393755080800270099933507355881292654821200940027830603002927974971044713091521090225215685596346180556777143374496762781588912234635098836051872500934476028628607263419520521790996182638795430569101699054135328877160967984974023315874163849838528023744233622307461936358019786428682402971760771382396428610748402163080551677783370593423717812539722530205288383477298378513517792461525472149947427221817293478029272452642635611288040898675616533375824901107069047952882418799184147213396866176572307850557055835297886260831492059359190917533315571540862713654136815285229052662268969577754774562148950203523097754495415673388401831005679073952314761162903633577122950660190225898132706820590855699827167846908617771430119577256758928423896800422571828930136500733780283336463991758691805150518977759089960383080584997040583269519067507426882558091419613167471238639400737495642854966784230470752854333098223206541444753215851952055234478756628622604375639627841186502264314290890188457835776447685326786463978565395713294190674491677948805045079174658832709065649983268791051171525913346322967788161623749978815800719594229761487025129079507491480085425218265865845512363881364113350354932947269044663216305408460313247103042028025022338174899311681954312939489463446094554725805286566149284911958652998187132951035200016309195264416547210729702109528965800811676419076863754787058014129245081836829392085172401892199265887187241847559667746537206367356756844049572463169361854752012479564554179775455496219908900450255767878016469523185442933400258049953225729697717334580289811880316177768220002700979236239966712849675443506624576998795388632977171798178955922075296384985804499065174914471427141465828456728657095140725818778408529955554067743535905495796286845224717925560007186245723206949960275353812168554091649095879801926556763705336755169813985149560615312017812144193281202425140909625200129703165734342282924272516749349752188537309850295099207475490611387350346158524793884278814328550651050003989423621567363429198575592257450492636120131358657338555397388829814309871565836806889761587578210846749888661668531260315536736031643610457322246182173683730181176668642670801421619719758855724796729762838157548571978709502066736218053538977531693603680637545725852206072118347953109840915412363512853793231989303657578563364606429738402507370913276270662115995908011878235844199401070471433741072984569310410696398208794600283039576361470774112560282917976374882239773663727467030059003669227776019936963387334536000627956752338076141116774310986246240492300772083867689112361186069050658661839505311290263730798001313676804425846950697898217248004748781160482100407529743106970961765141006033080356106512124650099699581945686545327920778160614991677980829914845239296940287891193042877189877817149169561935050238203140443606425608400041582650144306547353568078800566068013008713273293642746100263356559431926426823907515660343944475735780247560181780103492297040628221373535230597020003042833761744790012039802620183199906085819792348071910683761102965541921887698652613707021192041629202563638004763662926915225390860518804096563446459047136088400335500247454732084065029426739425576612908251743489181017377152497424407701423370133343080646761316618355347293595599563665487295632387149786786737704335891356802625632251720406119945482240606289959365569833715015507415822883926682526009838779223883725836279661869394479937926494967605844864389571837855288451100221983790678037168624828169668651664922197102581934086194707587327332480477526188127297972427942108679322608373195231092470570597997429354664064103405867210498805582710353931631943212744325850726224658850421273717692105150330611531988190746767802214017915259447140156715849849123623025947111240844463846833001831012490413779293743714077085669091158732566326477286825416484823888717195371100074137729040639565589285385183202583595233368937660821994051925160676410751410310265699507516278064010580623099905876926685896203585870130788929119349798244682930527707877788109718731389708489921338096549728395542279262220415629066398189762945438480403647281002123511249991805377527130382677443385007058661946411209510226596853906265339262235338044905718774075474668532153174338111688434312140309243916933323384081795402119616496418047981993646417840627033221708920721544482965278448309750869233379127859292162878531431735248468533858799536249301896563698255345150373588269041169894986993448208154266692624209016993981106644218854211936952062898695751715920122957290296772453505677245346403979519803962224789691666943604818942203057302296922640790525437449794320689492973247010168429672056927482671871217048676966574232316168216893863577735460259734867354930116246692394922251540407079211527587210497602437913154967962045944535328980339813334620497960780038853889518168942241926987768871222412622682794742035661669888211198351423234907342519233173970958135766704945664994265208961225742064506018737186406428809780580715151112566893694221646331245405915155381762619818588609797513156213433468195000219550956870102059158762612540057123323655034652267245780046546149158064148896030856880342194216254263367583190581409574560059826682833095984680910922353627645148092772527462832675059162885921519417438214036097112067567636912814955363501960625018539969141170631893560759991158511558533978122612523449353864395208918148412761991118128078260324735008505246288281015499155136961627985614683385689366573013267191211810367015745562873538687086919310695053672865414577387303765950484541135766628028359920489781428707751707773060378769286393364359833014033551894940169399964540426446727719772330443000096710270185363579374948765229725029699308954202898841261088935811339855761325521119055395255055776714660457714794842653972385479306996799261888897324901447198193149675460086509851051438121433176761158240823031222274235415404639013418528644507171907841004777652895725522367788145348790647175852659635986904798804037065656406744595825015509990757427011934998685655946540374968894593710865153383070936653894325965922443625123360305308491302712577238528160199877589794619321663103002761235996549171043702884288746057652762666477988479976969758546732538979067861012774127823097814849100858247044693826237397812810032822212040080402412955345870666226271756444521424235497918929285267856449254110001375727977325217479133989739273059495782122186053381116053345524972092949814676480325514980652578334222458068800566640807645546568832375521838881304211107721503035126084832554792183884963057526948775464186866188166769210541290989476376027770767459749054755525216458142004853317935815717208082372362041300242625320256966852491023824504089859526807066378755942167168706714639209654786164725966113616688205755090170895342136967474869714472074358265182941398507079378960871408254485813086470765773378382526152763433024008992634870468123232933367295496977690699851745181650990448929060301542759252245749793024951941199763745726319214026421118965647391072957613647371121992148816353306548606451227738159723757813125057114855902523214016625106953723508573646507307526444563829011940650251424682770262323027916784047857772061801343700589435363350252553382334394346155257982457199284262305989584502430256804077374319498213532151153050515216667830991815021570662478495657815268430834811380989992772698024364837130146354226399275988828280170592372403985659053528063868829526914121802727314024198387001295544241373645016222591014388833277435045204095933523213959997760456548082456269856856717843184290471477510061681371009878973730855857154986759397353831608312569697798564058130348332255171198746751961494578778651469759127380465393855258954482726505587803322424949884077566415662850623410153355126103987038280580637403778928071425137948804020114331108731848447499725509678333706275261251104716694909216335959653992142584430478271038462606825937593266190166394409220660396110698904616586473077583150018227345068781107905289900434048184385102251462146410573691020741281777649462704924656689116399589092819211965374914318848377751490187998406561176352038693500957523420212799318450532956965289019681447157110076601831300461292280228669605628625363215193515595485292343993175865998995639619583747013403528074245238142314648608117496687126270976708295978699877848602821612881557718032280410660382736288551518660587479127855418159341121267607400629338857666220362937212968641250106149507407696839419899202837908859358930952663687506619873923243731155453484267946052767447019059933283807231210973990798729754560896508057102849268692304279711290716517340548234451457266442685257166269896599552007034080356400603233850669210702997381844880333802605146737852252530415983588413450857332264517851936368696230685072555435447238676123491546028179558182710173755685523293028820321566625367825353630407793797422581129721917982085220584661880665208950764233167010584424967982918830489873380987220768565360572315098160102797484848357438841957552673826676154513148499220061173259499959167945742555394687250043090313198806498590984422486262813395212191365082939509688371064320259602277300389734609908194756565039868794308484872801140294597700519310163942181769963554140447183100227048595828699496320606023652255108236791642598121113223583114083181765316844427359188795566944673182243717719878485464634308486080851955083053970755451105814521531264361799822391552764111098590459160924789657106744914445098848544741206939306956318088402266303433137805417180058513919191154634568634763511521082474948072102448190583170866828109916124445699867004740060813602990368908403212610857722953970663644422305201701578101555749201812893461209315528329104874504608407748471000539642271541758907798569153982538760030294670317613555568742865870233904457706232221893962861470652840579273263540306099808164969439960034333817630624353309857569382618176316243489547016331931155598878029470606289787710235631378245816131585030620496031708674743144644734067653481682319325513095624594796878365011469383469473545116588334577879550946400807318394962410856198645869308328529472469434049378987215131456506079408611064088809768692193113138982599290625144664443204257153648977012782747348515711717233019079875365462425985981226732722271238690846787029683200052223503742437966271656559552463366719563294934690986548260972052918388387273218324560823691784395688178897688027611016737984118007547624940627195607068308039971540330615446534695182567801517667020769628043804394516579476468236330615111879422581047460230292679529767885414182355412691698022109317111687379719917204162931380709137316381939908846209996986785076675512723634435672335403617892641632335143965275992758891445597702102451054763968304311835720957954073817877809668958918813838111027193797463434501236074185288199048872511564074113635968758690457555261270139680570705212578214008616434924233374101481115515879883549102588563726588485794092214539481362021781286429335356546146545253289540399527605995064548188676691752833602821515301616013113305084396585952130232069915137964798234240578657410544095980388371936562665084570193972504987528549147931081632695780344698188754547991907286355185989606679702740857739487843327592916414424363088638020464801263177380548967694496011326116083659200699726423624828086444706632677118926689315643811290708899372531542772715864307256832806867486248739447356334347560780557937262573799381993771406746130556791556499256843514946805408839904426437651086374278932042137766825633138338574540910808869862714171612605896687046390813374897136922155453150656298588431319835081608312980810181299246589227144968267594492902425090096857342206310462675441800807733911765613527025577541703388931244667855798250083464772675011788727256383284775551486923862579828839722962973024497153077532728437188133129610474311280722241030536169161356797902662273067295340113554008817467156004410952996767194948362544417144609534469967380523216805786975055389936976976819319075698891438818050079026629494257354202758670604102541646903705292254430410268432293532020876176942256617481887322968840935414584495341564693913273557606212008043361377765755968366122155206621049032089039311886967191566278414143342685795884126615412622892790238345123001272176364450427570145108812203449395083372678324315108297046731321442159890912515407149121474407434121813239215959167390844994360223314120637798053327315820572262740900047452889932583930492220943459145387104993787829788070862467052518082397932812553311219797821097195040546698551478051086860109434573573959691172413656526270661825042419915804844118545856297916746434230230203981238033860804335362168327587725201242901706497210203281893582407087186555140432568081649688404738004877462998210191789140183799938644842113262311538489743655675182402041100801741565622491003938511891057778588917283574383845012719000234065312437448820059574655352749660311875657321991809897994475198715346408958518685447515088448485629145442005186814052046109717388943085797340303658234446795431557755957451615965673935301819119656200729466256284890762079215902071954399352970876905164529542002483606070016689377522107114243109469558420686211858499686900743230229510508893456933686699881691933794711431759005510325845671675446941378025052059657323911709643526615698864700106584999434770318484653006050231582784891869939704508160809825329473547698008468869301290530904172057626027652095585762752222983700277824589530360870815850225245277648262840885267845988600704177733540588147296707683947832659602821988422360302375021566109161552541998835122324790456219161554336779477513899795058111616703847047726872663732144953011891586858582834567663689150488824541300123788752169853145530811172509495410868163255928829890420464318873228150446370439611114109731806895382257710555401562952122623527618226070994229684476315325232749163002010981051322169555328393147562840486289135184386496302529841901731496487848026294835129191185618503215480229167951503162569219893868970064615398509507186283109919352802660268997373266813034820408787753932696682423159496987856047861276640349650621684899679180335067000018308605978466912893613881652111032669794218450108953973815726272104673875450486917612404389944485589519255733974035600180508833373444229071076401845310803283307922224894012463965885604760832037821439415947080592898744459448725368841861458884366323778961866402148308101930505792215504924172208647988749490427090898462325941748753651641972623570600517771384368480642709290193796844935546070716816938027638435806741753413169374814952629972309306931431771114346069738706893929216350650558988424628218654405661300685087172087679692491052819705115881076589537938061431761552761561717649508424049861748409510049740979827605426601428814490617342681306748211729113254037576923828284402555152238950880179693547288261266168298920276495432503773781370908570097268416588514256779303113177586878688336988488105854921913996532696256801107909577937178386182576235085297284475891598281733587294037946907439347121302989582001461053275468170896606320351735860240223833978909692127652960594906357300025699366939278715174727755327503559411630883326510332775770695796836081193076301928349607449370371288877278175606720787065502145020239554499316101037325958865640195939782556261803255610073447183219502941175324938486838310256270338556035429255719240672805963266505641307918709653350310708722016395875769516961666243188892003001891661156114912069639549487929771697291797755686270820301382440804668126402406385924794755500609447178530615508909688315735003866623443768028207323824709963275877719757554032104574841688356524603339328202795256723192342886458084335978789841059073130564919357034394235165457821634651374314463040168642614096257015590446535796126828832961576875880662867756833870282766751563521808695580875504042713946571852495255450781567156742019930841706049298101159662011490036903121282233667324976150049592317364187700912384432676879548305893674744033989452087100194616451117159270600712388982413761743744429523600691162799415171755424092195402455786607605091525710680626126797356776841237300797357636836115916081248935435593293165864645326119682070820725765539099092140348242230779811038961939736386881645414452484606390659775382380063106624311955882031287904425962256802481268365699848357848115679977885386724121376810207408761561533670776034401885352730751860211929852356523141541865212857315890269745867739544026099839613477149763766215223333789857978100753654070098973863313830050482204320497117689708426762282015525571130036969196284799948000421060798981009687014527868471117182481284186585442600385153317112086840294962606961596685019425987610042038910840738496861014004357674210313627328346033968807897779454373436102486473244837114236882547395815492966428702499038694025303567372080806178486859111110020305568760011235078072716054796561341754294846872515525688801332755819117057225487899215793713987730285315907616620686197782381854343788433364253084680771629466363619031347876733162685838103019388489340333080255567761016445771852083703832014558922933799944738939676801792581603011240225417707069542903283378360244589117195221658753985674320266767184630769442488601133816932960363155762287677154755844475513312407234222243396135987421653944085073710350665841731154938843916565383243235707760948421123742375144240547948517826073027904235960979514814886229792185464319628198985398664279839465751209018405374717974427063392552465072653341685822431304650596065437068695164933858358025558766786642721357195859788317199848969511711846861074263367340600527590057755833479177743439489278122326640782591701273623388777638014727994303444096769738615486201475832522357146278451480207405540859417712897632545678360325770742575638803889762778838080869905319652577337931538056324186431487868511335786430272935191257423039592308513314695462892463645514114419515341360655394762110112456195855468963622785682355904585353676615339656210324484331029797733244347143767489153621583958780810425301894296635929295107607313165000954075680555893252251569966260741365494229742289880334647605945252556428730993617037984168900948044683019025474569356381807871898066694655654951283650003265193348459024233489741968969422501984472750437204708053358564299466271620072783502884807982124883148575198650101569244641494498622571574725933014110650847887915285917833033936147558999644283703200364595751714305581158181234836216428936358331134066413240451343690837636965109331079533849738560351413532708957909000353954635455117878309821698524881271170236962374901666213568417084090566197090543876740877450944419647517009904900135619434683753373714876807210609910224713715915808279290996635095594043895581275250871096215015506431303647978164151791349134587941106192577250836116409212410449882837812128911757519860658687443734293610298440268776260630991829069179685196415748333813736827962634677192977508833829763110703440225406010166371862441833182826842642632379520541630367019136899802536906806898477395476314322908133675757834221810249520273521787290480238701769909606542739951858736048381004061184703896972116217217048207055086611888403922738278800872215067903189698691490666345241060862431879531669260718496630348307456282120500000508601146959427151822616759922541407714352984530308847999016304640641335112366417515239402827207658879146695861917497335527432113890765350099378233875304097467094592936458841651304248984125057268595313837570073986922106388224018413939789623425597097622287669578759379805868834658209596964225061303205538430994509184395893851105973886061403978536321167864949765971406536524445943301182074071895782380409920429989497733460815200749750356066118792259641528916539959298437716399951631558827965694637410828238589809195581779540082059103980655133506375432638421712048021296100924340759735683617162802972033826468884203997846148483362617191152426313221500656030940973265380458404642852118158241217061575836417956545717188060181495705501935830149029850118611463376094451559746863729643473954795900838644900181581231173511893422509969005923937421978130996130025927808791516029045982647430967932047519022465008569861441328571941771581957914821050597412625045735831786158202851326399303632650110341434668562436890848991010218150685967266542285917631015775561866938172789728444264995639734615187706341542340634737164886436234107833855872998986000695197117811526940515269504863002555635101460258011721817698064875764980355802106112685787266172981886567135211197170496116380933110382816040020328283557953258266671035309801429435730485033657450480878661891446747064166535374076424770715749104054432707119220886929700122564730592016514293520159065062555590291621426689361778841840184730786509628551745204984823203118819473184482299370554025514362361610854372809725187011881340424511848783455208353106878205492509448635909664539305692546041786320265156741721497562316705663586652341136042870431639360746989039662491989279147107171607819626505628316350724136295535183522327376304562643642091497155523499610025430225570940453930616414310413725125560255107150178215360852809875635501695568387556612383688582115895398657567924227619070386473379595317749739394402214565685078175786744003724351842862802904120531900573597064235973242706273727227010297148226225998063920714645594753051321204753189734217752223761700681393570428267996043397265890863243231569221428902199731951541600765148126735450349371464229404220773545040437782857332616292735441873544730578935293963642693694233192287516089097548861171652246804649755254927526328570885396173234491288688560381099125486708939920444992603856727360166308458030157681841022853779433719958119400044360927846701689279682231479902930015194682553319711368614778897199130944053616018887628745352222921287031683349790662638551892320579466839956167928837120151386733033369324623237783408280846137689055052868563278746786479712343662113965054944877708690555836662951468451196242152564879219019306620591737393509508597518752824478725012998630038505011268911762433346507576641683426686107581905812856039624082067774061070637652810161075750378285255930750499814451640586437885401424346268443185168600809646979088142577157713270136974037087032752846378355690706343716043695128863096173662081515983963551712625708141054882945885481008898420138377617262024870935580509355582820716196635384712243801043805090521481262713171776542088588775676167165886128472025387040149439415284146479500387242073058631415955889390550948599665905599303762977629878732066696862546322401633209346997338451332140798526536203017015170576804839042846027389361505907417221923798557799653918159399956018716436879342365897950439559781074194537527137032113162792908142955727554715064211367150885480701333299980543970122802147352293930403644212081014422009195857161219702045384852539777854147167526727302697162254834606182828987361458235515691552497371196332474287955535909147124973413702170703615120937917219525420554295140515785610862970781721621112775980271642848389145622914901950713254791535763367278592120205919913920866960043460893395627715000204672002814349065787768466329661127762992188933545294294045062910525484258366497118905832441020910922538675909282369400751030051363153889358399296317002817919661961760798157905945234954347803762892492054877733436423677313653192987508970886837886067648647548720043911698399452052923899069087896044476740291968611583594147647236649260580556045051655283397956193827116141039983792448504094401903318684834516568533435979717191131807121404158491342297617350245933807347218253676559172382774994035822417773048145279684076058346446691318286140032137230242701541385356345168857574321133661161521556331468508319525784625801071708145511462621936885874906094711775686693918004636434169499855834678322743039868086470227882009240975769988451887180337614720523725306705897573476950726273937345877559716099356393637344663326222007176113690496478820394967017752011879292761656293480035337910106642233908631365446098296908391890402313571935523262576068015073938589117454116880614033235399720150064325601981111396081647191491509416182857583338189371831036102285355083890758051447202509132565499997693723609123515999348979947085838107568014567615839358458674254430896035645107975794670259872480055911069351737995841179379824923615660053242407818332853783077204642057978364985083901273870714225986950670513815954091116713559512110956515051552209818117235792445752518986183587016367592564485762256464649390343730692313143685813430767243658524915742691427719984663778630762617590694708139428931043169562940937031929130486428471988140214256275076831772854053482037923517505359438025163098761823155623988847800904451399113931817274480147535249713603895333566559028012509640724412937394482229317254519761274623483768183242359270392228648129357382413921893415740177828786659932365340847903125546142543276133764937773654865521332386316828379710802984908120026735994992189944000234301280316444151581519227832558009024033898458128748550685467336735683869661695155812807797595018688898706054540552751486331579103707388955889002781269909844732064259797150271051005291616901655291006713102420937973317516432740662273106633295671847539043292098666261610785518998180214525777837955556573046770455709299473634043628018969601925200365119076311466165794164424801243106120077253117846372597487677909532729409834279624795346157943399012728852401653433118093021556679954506529725521089956360436149828439274038452410619955557377650289799870208738126854196928707695585656614402510822526692890672243851543754683365022812704075677361420758259582434892460566284399935724753569100998817780398551540855337254751307154268712885348271838149105811383746182044839099140380192862076552222661499555060934591934765741184003227906629111478079088122674503993412859410975366308245805215235936882005760600483299508629969474166919044511954387919314606302251279729858354695954268407090955646942698102983349688962007518297310304381850952777925361873960666767005197932334245822173072569522173576744952833401850446238978855622413855413626393575033964614900143336624226230087250187788957284435547386408434297175818567157327914817595066051474174013696278123139917519897652855793577072442131400677555963037292808130241533825979591629753945749066446367128799976242187929567727996696655068269362844463249817597454908013899334580560618062004154644464685263854135947431616365209934996369583014314955205022442918013222211619627073731189771592357324643714119364210393225762117023668040094841666364388024308935531373974467586868935164083124341100186304189580837275843722295524390565131257952525919023378747571293825023877097292555690907452732558307686251703283925726472724687138728214102528083221240337785524883072392185851697623246577482353364946407968355593558257822871830250689364582787122585474694949779773318412225499983829466370354998986910023573177120609292027704043454085733514893863102159607857492394245377895243735887411035721501574500886829730954563164100853805449786661753955420058809843463540666893064296159460523349843030010835655119154213776816453608029205927505822184254287151604906709676662796175015376875913887700611977190269067812487440562052763505733365522414072528363469307760551905647236985607667726913797765535046862902564405659641756593892277255637170587106272752844540958972091217800582355731575453289592778703287071187709683314594594692044270611216623903215783212282152749286256614924858801436430642050569326656419208652775646205965957829411321761661750294264119350603585280672655716171270755743628804668056974916809637461171795280415562739901023114549759165481798464557601323586157812685373406106160734012212118482067341622928822913860571463428287773063626922889029880986554292804640390730359110896255293428798383090062994554688154514221752504496653624358392694656849354226962208076250655231265174280447997844424382289687950392962751310413472306341272761438791546524769122937755126682403724270119765076637380879273559745710865667561539991232433786835346700046732469918815990533475650738076770669268553916080428338374577458765104311408063613450807770053633259708738456757676408779250693196260725361883986319050964940095778059412172444550105485982783990939789408288254368461380703277558335993159366638756806906053736264595528215314038491130583598794762742888632412009922607351803178495182583378607279163582969978459563054471164590148425119132344608339407708120526125804193314824292223185196129444928391110042495619480406071644516745704451665112584521461335751498554377411353232198985193436509951801912807469190465776430684227936959174109375304131482865368893988264637814070055651293587168243307685523228375966113540856606506580826637792846885662726853174928060770369650623234921341114319800456429642245167819541875520347565206896643610005807482895968511747591696235208109472388381310041926253734196151650357171480202798284529204931387192577758863984032215657427142060455810037500116463444300102563563432564651962242313847555095271174158924734110036162617178798745238343518184689402842577107815651771501326553050927009973609587336580262625942149729083245881415134383022809867028529280593039088466297222986484132690990308190050514670218981276960832800430226901061548914667007659150028991938601384968556578311699240247241471655802842977711084370854960786997206347861094209658623300980073502087646503393110766423590116275745681127227607368325568758633231717570286914343698929700363889588195442305175612447352147526043198918953035421756522077526550629046556879801231723119588236364993927398959744123598485765750921957085962953114912433303325999884945432437911818153364943047111307404367627250714882583660295409660060782115592697033832176737336610771714397140813681897182950226061008447340930398405973986425337687936145755933015291422912604164493663994375709069538230859134862248512852319944792528464404711574075143142548522734307897934661554508248993753798003655076725544271003416957662134884629242105129252175946932223599468709217013949919161722662784567997229462204197401739731595049753109605336140462902994835521018741092669045767460347082793881715975387660755051490886120225253786583346059998198474616327559955363800103170136648593386658044003993018599520419897829266988016686063066789607818406998485120276116030455573982669135985473021130098076437517330821917671764974106302239936887138002633711491770258237929757157816063092799737191771796764756874851962554085154106633605680240101186976624585919223764031134302734442063097968560815462208679196460354826564102887029069671723327994202134325698615821038377181499871864311526041176664540616272509181138049331336514591132781383120114072642554063381850326856883366442966221200900401245515132298094885756403047338858677100708268897022481987538394622044323653625019506356854077144944819383600616127221767652859579177844849108429261669738361036514209620706716008977749105707933374535886672725218476057696513007779398831557319165877610486680403588331429074983410357985667956480784558061170138068004016245460475644731142988452326831795758585033167726455398735319631306380433776581271310587970036243549405735412062384374727219615067007934680216489314861268421413073452977777464010511551219974744429495532759043955950009530843538687188923467353776035349168564457520511519380043779428076310217729124431207962644738012019689415163957823803876988981691945205571660630707521614574956651370739188065647637298675290091427108087408851516830808310302365196920676146505596087898952438131089608060373550114021493898375646496930811360368875931134991207746103564414405811991118199292839761162546301911920712125796715814995412283574156818907957140332848917007439852972354155204695530840401848690398842820501012816706773266055911937250334598275229101299767031580075353020019923375070274677427326847823483801763458955856243395408662497765577758201484193934180331117539640075256850493926317957667429967625857960947741480851834408326792912106932445293225180061365893750764328722923534916720541695688376256494098929650360946666682917444898868559650426464184500344741154423177853077480210198814606581084659604760003217489553465091719635034296142740159057378536014930589259695985430340206882633959890260517950015590108871889232174808249684153114109078248618267154042410257075016752655361599541648382342652120292444566100654433331565024714429829650968327086407641983700366473605320182191844186878278497116553218597885023571134427163504741459113606377872604854546378487281602328609266059300764721142604760992349917089319646823133928523083518578016449130695750740553462946223631216909115109133246059306227071114984713811258592871018307029408327607299006319237831610076602447816557615438813090753594989124325670071641255136021500752311377045640485159433048017451763900800500025914437263476098534436769727907001579716411376468923678287368407196776513245768747771886626422215065286243840390799479956692994793618957673782462875342606299422059543804631205291734454875913643482146844854521242660134864402797891302306451578931792917154844942181962449848922040727302526088206538100540511244872980791564379821081583103331673369424932988575121540897557176975082968061084891396591258175368949975529384454542527848018664965660826872045454766470815944547057340104965027670993564645113190055428912691928960230672131506963825975584656579165629843279212952938883489788818379857097544545530954870231361553889723236974223039726873185642238152118437884155958968736650366926235910410510914044350282768206242963609563751383081374454574422759649147165936136046166686789635393404418506456897863550216913833202972277043273244702860420191017044511689148861760444895416433062790677715835648514340431664074722273618487873547357740555014296296126649906481443774787041238016953486387043515122076270034705144760449061511953009650501469497114282376589770222403404333919165901061712169342388526736156848733732441338302567769595156954792446951887946703907128162104023696882758912003282134252340645065150396076837921822469337740111344489372000929299137031707967482161731780552760252793556784499053583395784808075190048994540285251407011905955367701192179634765826669272085241854557514008973232296398494433890812136182560805830417892101865905257676474196349813212759963572638778040157673349265713940817021559796123751503401902107956011642231222410405166304758288680722356787926767616829624872045472354044943561419912036406106411767568335642919008378637142634397969108732129673168687506621842091972378574324258084686303098086315564193172089771818600857208494467093310899911384999906228371646843157347999219574311582589885601957928417333790069942167004034067354948996839428498063084150129821584198362380990975063792914790227940352153945850032620270345343439336389484712120925558001406914700449885128859855231300073781603357445468171527736579100176482173617261652208344067460836464244988323592072706382225093879997838675426198355408460710689633055409141639946562592941794836238894838189102785955097668169536305745632829372195519755610845729646488764972672935548721621902146791679870925442951943125825694857715209198587772000770861218514116813909364510591443002339989232398868999982746161907312087453284935818980349505172827831022059752626279464209539489845837324859920137059926013347671153131255455126157974775116601152284876017649609193112533643874900051394487260561584737084683896334982516708591054240394678747844255839120359275820179571010424554871721229376844814434013710034543380197968148474846464431606791026016269930135482130012869396955720579210769262369320129921521814471760896644012210296351988096154771043714351334482498979966195913008698434537454512167214762420094885071793751515239004280464231360133118574680415861232886361166321974287731306302975844758521061371746443210005084221547659946546703870513825856758409447686616088855663572936298372950664190358350313096224649151927015518268760108511025091139634738795664216992292769481235250468674697166640213829674254701903431323443373757332628535027156978834288871156688664464587839371370843754470662221852531763366064145842506423544342484433231646215927208595078916427903694768203371163131236145486853917252520669729731338535298730376853683923649150967943380343089829879449673640804606908463329028671243268890843557876766952895653686443067922326641347657539529809483193862909238889311660663598459074743445602426871573173653656877920293483168832502475063476438312582841978146371925902832329609996804212836310958797765856177650195278766410591781537139960579328906653427965765476237387337047084255161728480612911509672295476602470975109877043317151518267241417690272038501037489294579099535007512744377128483795180885166026373822658108050347664108586900661893400690950265439164494226273614938577457625379474076063489133015033738924235642495006805167580933123163614479309701717641225938790731813225138869590783211549002230991471069285012448929058474503635059584565087632785805782382519071382328822627446151754052271765822522435163342701932538908025183624068105799746353535128450152244852053908458311363923239753769415067001060158052109523100104229793158923968576496231516898042335085811437625615104800763722537317638284071947415053706849384298882149226925609138146842148076006120583666842124522192967461572161329931254300270171692827909499557349042936969226853699222128155682659408958779955654322909338683250775992572863300905477228498993443494796801597768665779064195561826632648120560839462439421020138744132834031830661967024540323680053578438329395332406632142603749557372258463471419988218940638199234239556688757197569365591132486467489360836275347065956523716168130986333609944380003556291161698570782873860571170576966012732127872462231180113436472677628261603606139443662066330065810579718893808810076829505562782857619945420778074711198469321742716381429274010236537289661269968467871955996205116438615067182207139975246869753211460327608100781770061105428124045039605595257618348583095188586956765319284457059382752437754784608913884432668099403033658628145511218963187648874641060643457940867553213266778510312485807258760447146760512569153893727265163913062304789789406366081295352902996075406101589515855123684522750775819194024928436723822967468445487474881920879144957413161949475955514680390750633054531346505469596451313228468374570687240251786627875176776155525341496086402436351985719640378873901183009675335694524714169561002851853874651154511464115448487376753570832948981351064523776588003461759644445062133001493333856697404329927211869882771273323267567764658340536947504729682302727659356868693880097862329529069840644915007195324485401411882089075659828449600933619842569639215651822424383778068535876589591493882386771544519339441749939507302078989514350524462609622092748472364305379300545732311848254373453229003202886443625623270524928904049731172713558508881236417605926409946504440665261463671595805894284673128141919367944652716405134550281735586424582349455428405805120568918259368720624298433573202251824326439422781792634863923116194129795168168004030561124665109039918799325207169218263487371002365903127701295291057117799844738663412975911241329260927781501733796324207448642635932393476311281037831138610814689626612016002069408893278101841324814942551836874199809089868733007947900299373428178258144256574097149160674230294948929699362641523964512435589598283852987067072351508381528689880928402809337776729226310050569514653084681115227542469752956003465181677235115977720062882078072247789519770846520228343689799714276902670420878575971549322311529596996327509757126404597979951605022714015420048540183460494763083317062044494131137214688302959418224117021897116313330665239685814975641247991697539809610117659194539571360975063594260716470579811339033446727293164147274194086131342395694837120389210524704625213877899470573655918182719652149318384209686117527021771693108147222125481937443833994137253605674871510418928795175421093976715628438881146175302041842696979302779868359658849462070425682116225155509080378082477277683133067387130532205506198695481431491016285390168361673425567774322879527815263250550113907980102880241774959996024358841530885847573659761909376521933811395250695945971242731129677096014081207689954086531221579057298201750762803190073706092146245689007791625525051727003734634179554473619761240645596047290979734974976727075206589928254593562085832793825248681868298925384140639458959174239481247482595448198839476128346395012765778590189785113147109533211263231114943068009777313507970198960808494349461074944891177335810418816737709235318762897379330626614683504364903186723098634082089132458781723413152868421144025942859635681030248404011689866804138649094598894205605587148659832240857819563012652557723383793868643979336364780264183877582619378425690516875757622000199770831844235945706404224739298379699687100644702339867638208000860676126189637236315856318726189903378093333856019800043248065989519019924893786180576552585402623370361317947423907440416875395143624944524076558366670876987606409309896159141250053680747523895058846279180051717412316288542519158156475235684179364962709243096719357629148035397600060230886906861711423459198386873469285455842471802041097366522634275421845733312751003529635548985809152883873361974544905732374814442172758899848966225741107962273107985826124367172293508174981339233978338734843410621698049184858024965555867534526812077237439788586982318479291711225703352775937137756189367778245515422760533521068306380672722466566332524820363711847707702811078522329887576952829427916888775012367699685190473326303140023411972128101847683678072439787521491517309132552131172676037943231922451087452787926851200609981329163743534775502937969043232663468414353416470291790514691637364845396660560264263412679963680079337848948085950235392220620917042348367421167871560373705004555465601503599424404500147056073198340831810640974217051148097231195854267442281291181835642558006957189832863385793589476714471088240794192131030148178979974309829408091761819289001413011463171804297867663558756271319168763932532371299985203626434964516147826503614286295118588480282321236718117294186961824044485424548268307899571672474628132593129498431257728410257775374309728950918103311474999540883435359603558365199736985648406369560629015039362615337819210450813473586461465071054327545682370758804306169722398204615930952153571984167005528752425264466908787062583919671164725940469915369963206939780687715901419019616824779175880290107467920574455364787006962258030273511609154366856148925648875867671028039452832586037700904853738924496002949014217449017477791219885279535674474889005718615161277577537066543012820914763209118532309231147430992684540655710048031006260299927257726350179392857337378773614078072569273250266412903109198419786163718313059312925405793704467824698017330736954342613504280146526273908276706416809003408047450488507674841475877468133017584683187444951136975789362462052138335387651927799549468546530963306477153729536937956257116078880554600315035664962927367838206227953828915369781074432807021647483158352730333620982541094400159536605238382468445365953521022815007938952130328783510557598613531495332034095604786775485208667059966195727024964339576745594781852444180875474503988643800048240019485502863674138576971867346102547235022899264703643894509843881123400938688600690495451994783218776355786088770415118346308302984358286919956224006916922434999684370201658681282221225534294972389916176584949976536428527709338666226227317866587343927308600830179985043746337925300699188952943881096859069495255052453622539267348954651359528742903330240487591015718978578100248905717050383006050427110075424472878829553517265429495508414330627055706275667791825880084272528612155890249946837847330549782624531956165655372664923069169140764553994043524854829026466955597176577751473691838921672713156666143401436245993395824934536878322894574022079259895623836197937845442828946137711266777721565807520239751071017845627620291334552796222923379373452410375230067736674182827357667895671021108648632410335554768928453963952480035819880578693922835608471460294396489488492127994156575305771443486264287490836865396364381317576263606268606456517088745770869564388626888374695359968484380412632773676965544933124394103112348316294568075426573171121130225278407862976095795151672826070229495654101741430192557978764945758183989788137213569468629521419305522815435249419400085922556086919580765528437615165762474944269298757029667414079200622571776701852054768561799235524948958553553209650313914653153530728304257852040614302541263172009951336227118737468579150467277466993407820056224607723053914131069877725349350406445712519856485496144644578741121056050815391930939496669850600314508223715332965525357588081995966534100570465274266264760079188762409525697539622681177936642816556819420274348241476906499639089002475245171048558034919796281618340774761735567472621059015842000966512806095596561084876184156479663179558781042511118904479995968629368053629472180982487135387402359889929899206643436286642505712920543509977385417472618269266825858237158196459691474797957242314901740897940802596760667487224167503473419854248542065319006441186166448099987219622915536851581428710737265472017410439053880119925053701662212306916651941867076367267964614575945481067074859126034598206920659636608403460965382193481420856212265932197500489958956686027484097241530429184754015884020468764234397040325173668301027990218531591928839378092159668169462930935477172249548042069585460174366082976409209010025067329065958378363152151954989939527857407919345254042383082112312043652592390568690541568907533288208397068105314140871438116939212344431664998868647743099012658687072457992542097874609103900528068215743569061954799169016023685660093128803098781562208092239908186132067461021275389294164824679832658104463460890816431781993970744609904337032122187789706431958610370308794836896692032927047308395945787264930208739277181785819034883719467762292619605209674954924724339357569246026571209823614916347389774123396113097167021207060004876887570168391756933169434265469283445487708326793102677740973077537400768858390126798197221287550253968416622287188425225511616405143686409690241452596823335216973975751218619462477672243764344696771526308381698967211983239093816169661806196617728474801171400392482502362618550646220931015448589228725276906554935619722799274331211763563220366441360358980161467179851874346660922683181510871410143351980154918447306563887905383600651425779287120806223829852982717282908825997795427710479772756425825187261154407459798306261229394520248931304992379871426772596165870656365372740057744776217227754556800299687024657330685631358098880476818691125564774969409835351324535818536669182005686938166731303093128071497046502065907738655015692380975675386651258696332747613931467382591965127269137271571639243964187595600592979510639116096718044332094093705752068750516774975479874263800752202420723299484512571213629971978004978198668425120449129167514402326294668324947699303704788650109396938693523974155069477327761366438909864600537867446407881828991219219888337764818030347604534718690126844836207885009352733460744507173032367649097118688897176828790354424857644568862666694716182993389461657789247580301256646434218314415405473135216364728630068980545734307545607046416541704227156131892934672069699830213624475880873378795154024828434066765966087590560757415198219519220971340693340776036715472018251942586008806253977341606273416497271585751022046560760221336028616489958401712707829761221985757316648839284640452663852688161172931989649568905733345460321172670946238184515793189098575774162325790761536113494381657221360765809399744417623097222848167799362797806677243728162407221821337395672526894578864116652514498895950080165803041515580875988383006985217361814730657108618128438557562026822362885138085490739484083918512048486535074963256170923866137640814180557202948105834227539431484814558845794828059167430953577213097456470402729155896368965067871460055280396558941938436970627067337369248733029540768732937986806162644354453106583460534538387670464914821346393391588843264391565029088213677720129047178437545050928269194281843787896336821657240487639984473114498545129377611834750026682489030865030568845724657623743134283587030030719710098760473876569249350899930691121482498735581054484126586754089569491373642767123579104472803665352458630231329203000594377170743230556782004834348385245772126072270128406062112533726227603988315594325552093873359092241523621484922697262664519500183544688694554293091344979298977718133502569803623270505740304520180507294169112014993098816605958821742235821674639703665688198298443990891414306458662238289985098648091630650490226606160074963482368647939547780397200386265276724160247106193996171637994663555410496347608281987202976263625504880724439511000579572850303441183134240584335914941008059001299057220648135946461045577996141280843908985143464194901929778723620887440484617859646030782688416645183646591036947161389994437462894804283774492046100780941111319349639748886469342703775915902454889567420842501449679799249696653402369430556044222881670068627661216228560953853986158456882511860093630735993034192842640712412229951556562807548761107281540908182923073994627850571245459347997238131940166136201882629752519825682705640056876046370967139733297629895675453433370461022381951820959055141993033187529541002770646967798222369775583927569463773330031976770315518203581701218582661330847661232703879614537437813761097219653750330369114753830241284453306114073652714438263098904345021920531086385127484792498956948096777605675080268725118144060280450552068284991627694579586165377702015478515473706532506179776642727687468880518544010813331067778964043290216027152354883408731009126461885067603779481431604441015824569048183583752733871181318782580312329757729385961040456309914686697642162844825786816917490766403960622738233187575174626038616048502738139556995982401912851268506163534764478604106010138612257047149054561575800434341688568400762786201632696766639013076802179506238371449316866372924721736184455746144653669227689402924114536535279167768700093882670821047080370868904230287411283320677030781466531565710490650097782981244983948328044537108754237443682204605280296551104895945893990914576851882477634645254354499867978362915809985456457373513352179260842875532196779479677928112530426451563036949042432694659311971191101156692458221854395141557338538999797723817773464612106062194053106377413643137294320592332501084755802132654266528376990313343911929836320513440020027521939840736137621537584171838781191295718559543453861580268933912059466837821783149992543547445359245472100134072821652465154265233737021350177917509100548854959840000333599878087824204330770755162968619145147528930934714900483331678504586961583958775719155156146592985673033889279864914470100016290086650262932217861861589847864504116545787760348444718405914824821730274956038710286302608010469270774594539475152294739478863060494957039141118866779217400501276418541557133351614925887616637533018716842875459695216833651206908558737933727716053708471594192999333861623508823695757279150680893993582906535663525953263619789396744429818664288788480852156130721455498156178657346263569047070438470602364015671160881260036047286633054706238756428493583132099580612536037954091861464530069786866493397061049256757311808512831901912533072652453183176473438827043135138662513585457000910788653313069681401123152337042976180760926656375021071031973446666961791751946083115885872609089344741248778402038067994393340391050707683157219510102472599768558394340831808013611746168513865297362655318396935411469934028056867096586733121556970774024265750720041491565980207016393086389689410085379732656009280280068261850345728069852966466856499189941351644186596879796156632188277450095509864164865154734439583393192169275144601441445886971566693254933193177175106062628548783308692032403870662092543037640348881788285125876807242182275229961650561770681353608209672251982799689533204240892360926193486376219012029779286489461059512497089116628679525732068788646440392448674206034470965052116704459846219335885355183345364489490851061375087613057043962804301355455947166593685711016059313854935037529275542698052314474740615577802285679395806292706863069640287737984138232508556105339196501715661308804288814097272710058662059277567729590686339508428657496041579502821469419844471932397898712288968831434363905544248549268719717567015867653815476848910444584375284549101780721868189008765688927008810461815986499644487654067864835150510036672156457946526059142811791588745666358110235536866089193839872744383700570845184605800899844161971588311857298889512868095320303785067688223171600662102308696689453531132325374919925375613868090279029070972082792196064339117620440865862873370597321193557808141872944982161425415682631536451300448388749763818530377917114715667423946643122895625094505188786946455429279532706379047044524287740165878784322553424198627424112921835691009134850303539397658281808716254564506488691036714311802155744528546673038490194498443027770153977308805780305870563895009522376781880408529058283955760183633803515589459750525290086737640918608927040468327194470460253938001663854532069558565350555970984489368881959727670690207602867117874006492015917151671554619180741352194050668491542988405696165845434019826340594490557809355824465035448024475228856369821650796610427276954101580570194387428855806390805998425893946478093632143584851004955499897423265611044079904211123832951347763494430371770291937106660174654952878677052135704212289125260769377446001144369231035546776144108915443782313242095092845070412657272747026497890967655404752275880193169570982960901073674349875939985941317143255920001507523335893261993465663323004468676046104302484886826521672328270254900371079944539740683538680298661945563152141469659142432563663796156469393883279165494623605446041045086487603444784223149454358216394868633266185025447733614132231526790527534985539513910603200244044349031590329657576871466475721269451243895825435546780528557139621181592363076280871318422079689930423879460197202590496148870313092566350390065427375042774765590580301532787429144641848384738531295502615531371982390949005731249448518126628059321971278054951172836543849627120776424391994363071159309744597381314984791689070837673976683963493874964373951827696700598636327200937482271709178745284856733113414026535126851491764532200441158337359734037158275726056166952502162765271386493283116764230211742344515829563538341259468120103352303391994545207954168060182493136517571009230572301998797517011129191390054528796559813763669507932558822417280137234929967488880074501438396618837097474689623448440168038522446278867729894460393267371811984444859548265144615472341937787435328771666514590572677078015353431797553767077745605686107640681894116949774530807059758245303012658104419354676389178699456695706980229910414651680548523000303701497000142358792830448730365058588676523969989241785773258118713513499179772718845734308910070619028036509028041235624787908283351028204392180639873210782056928200212596546574680287807763511085903475660584407149428830243916641531917453199885216878075591092300798502714186003321186302366994027742291186872470139408840153813429087373157125141425482417787097766474332572047571297034377753804911664914213748683670466767183794683390132269496726363564523071408931734832337293310860484463963822246530147248812207886892410707767849614051059136082755627337016272163817100309857748802619827132937595103700246395779227643658041063086266237001373541737369568168444423342462767340720685063975379535973240549508500243680524224373265371881263743914099627401130734029624975694119408880018569299430745919524404381048327792360484090627591293123226863681847691738849146811603651333860694266580337445956682460174200109768661579788501046085560771129967240658660963056446829598217657487695388495843472883374284537514457146423906463190010832425664106969537800717557925682205523183528114378263802087577989546315307187428121195876291061347772357085075899719612289579955514428469273241746358174716186616605885663354390797941705546084812811063239550868832027069782762991031674214875988147222645063742313130542363967926107822724365779976448815380068252669130939434210964032605165331488164140118736785971883631392543801760769091974736518706441395897803605075548140459276231033287339627459956157815975344915086647538983638995639903815893690764696589893778995932924733286004979094096232645218519624983025988313104889192213271799135461565216834470367709449257313109151209361435782375337503782922423594162127388084099620613478575761968174633022630150729375872686476644045864103353112707420305895034922478511174266645422972637542004679030780425834050067915040980996624448921351159555650885792501435995461077834241300996516106775082449802852725614538378962984792537614940645325110546126839014752517495997572782914126332784811654830595707337227582809196934800704060709075262205713633859788556400930067798686549643781942581765394737186580447170558979675583752899832424388315491460200292693525082921650524680551759482954474376644286821355197203290372182714611492554477431613351007230327023923377886749599381905252789921662107181259911932176882787515170806047720860156443810204540347622699278559380219351846340905354493275061327024041575460732846763603409849406136405424259456373486143881813844071919956156526896697784503904932913022815461144381467615629703283619552225444572110276914415039433552193905381351762878120820618226173276522125236291398942075936819084083287935552284358549578972754504391512244079370661207644637208374867468637697073350866596960504955643265736748294484805693179444452986569507742472646081441463092902666526565815209177526733827775079619404852293815769413933460243958703602772832363669605292288337176809555707600638650763953630675049202192053880631616729036047687706731508116932318031101878158457571384958268363823392103744900590211532785956472094452834179656673577024789848255169550359924023354553027322873393329713194831911496276544968436931775758290512337788018695242591574088852382188923855429911901990348263616900406278811902211981879371205595041975389561725700077793050419758944749516487996152618450131449325507033317199143741849895283154836994552848842460449849772007361437978176414151962172941373259711272843315608657873437662268280574076787777537808952081042781405079856378565987781920159694206139789991807220278801446292656986082269527426640194706540516139061171372547022017888365101645509374271707240654252004335267500851991123876774324072134760478518946620424016194960088368481690946462204028711243988057825232267760821308836213069784875116593532700117855928807634116989889159091563055588769469037056191812084600234559622312493184900881114970127818894051021240120744804868938933158114508091855802467063208329746151713369342455352519750275533646678889172142668671482982817505501405983911665914681499662924147039254829144646831724191150320796373643508584991105778068318415965857877174417506366050603069717768163794474748572067228159214996758377973377153230679691698163036418818134871268376706762183110273998583916287077608537720086782063120320688315193647928701677257253323527311496027641353400360439459555964529927054847770195765590333830893795207042929067105793959800627503662566775516383873260999672080583617190030070675318766089230843969058176077679462203579113811965143641259285770050759818355322894656567124291465065375002017136352342477744798996630509735198605131217698895241664828544887442809670367171770542537173341654211422927796655899832312619520898086391250896815221485965602503158747407483592239520404145467896738520512100497547571196193999063511309760961749889196359081245804949425115429767607242629313339680052823698271405064005480947237242643528880637110207972596946274141186836104685994803845734142700628817906087555157610620473719671477142779186968700302957364189878469531507300728965461518382631647655188829192418832516815039580566029091732452235439483588788760623344565784887384937366738913202594929165834028636819192999498162091175915464905609342036990451107532610417596555162429554955731898207218143428983971616402649591326801360475402677688881949312954149828502144287308607771149261900584899549300831209402732885240632517660009177124657057535258757568464583583931816075765751346020456024465160881063125889820271513793675427577757049843791904459615110197192382235043075269275249913458540174352286686949008230147520228523169547569115107587431853594212088524617870625539688882246211598049309545487527124759394351470064145127879784533671955773892318896351725142206375920561615008653427469899546447330549375374589887036766144155566338791132577672117763519517719835685294382543654404968447569516578312880715822956005790341842727336877086784400620910558755588407629619617000257927495514207845962937876186375726705918312080906482309258944613659741056104997467349578180949668452082124185690737319478573033528071464922182244646310746476074200441277499489966689233029536791339811789872253698821513412334520502861566698190066642112197470748782764049922195316389567923659097295940385531448272813611960215495740940581824836069376547239757179267746148194949856116809181864923531528956841389768113376068709338376015784052525813919120532799359291273375568778429805654808968503076140194547927373426294898403357217417975294223621212527862069743756457230409283287522396847830055442310728927443529028472285299109292093291161352816492645456732696450915246685722401603587774703734261585480398470147446777972415806195879740069160159071848972473057865327104200195509494144561801792799044410214295671068657049884840173046374428853618663732102492680053655745977985985024025519104309268221261448746915424568020299189825861154062986640310564821612721894364198545438234981347368736899163099521770692714842492427665153734044900230809780788299438418770991816419317458460714909142242253684193395509560666629720784996089427922239290365382347573365440621056552024422010438926935715494481882800049469246971692072604149476358475763525455879002143980389629517602950835474485718838130844288951450447501090614303487714794730710589283930436641879235460256764110480903085309824751409611030506095836957559734050857401587565788017400750917775996822045955423002685271916887771946788734455999303812786293547037311863216639615448274193089371045115955191821236932168332885058123089826499185065214156514480779608506190611668349049036929056424462745919440989902781070701031594136270791809843950152961321798491448803539214183539237656555276039294661214095669643325691746388084845957562294602535001642694001640594378892539145843877674197290021828606514237281165901736753014664045770890061914986940358230645967629234466543237771033783851425703630177865665285025160831403317064612387788634528959971038224560621284893634575348303869642553122837756103114143743856809786091527605303368198578816314273009092979154859156033562674797947077864429440000000847374271977024536129616652470927261694383571806774312595696142073711654176153992429628230509137703404105943781678635834748337640497484412915532414941944031546816121384910284422534073027971203735870717970192208892995867292692027227412777501083363212182252122766849961726511253961279706761019094443067518398592796218712312548189895946053109465685054310413520377755983501282538689555311360704713728486462800601258438406043733252473317873820566090378608921176626631011236885644787514943403687597065792602010418204097223531396119389477958990439564931213385974057315333551563274055628434866269000682546463862316534007331457128889026880600140798029632000181433715940134698781564229328713421700060420977059249841379932530131845417295593596747566853181831103068839328943881025727830651841733280578408293347772380473083089476279224864638745231474780490052541417096110262999323598236913576147174422446228306727423752412936570164604025036659092687181454237163561408431790671212894331731730790848358995046528425548252131731237188587352856797889830386811043951280277138589566499932965547479352655600645281757432156794219982671868075443310984160368043776782000645305862976413461670062888250230714603167727844353116122284111799503108740306901858964469138793645397335286232585765953454334777846051754495868169523517132425912676886892762600508268634684192310783478482656431058943410463631245560707137623260520865847301985210096361486416972272150176544444924834422065486065397267557029324704663868827127703575442698867704534416405581924489507884438982683470528295790908298699602105602841571617982427865971249638694814451181609844588675393644579700093701917045097356960493444109460695962842405075621066325754505492255203848480564049629622365331040212552479083289025339071512280035176162592091940130974147401586936764593049628844053799706712547071409662756198664951433914620170908770869790947312713062401323929868953993846125903370510919754528356766589004927745301187551979883901432727763555022758313447293236654188641667041160057849626265366637201973017553589317353068001077953462426136391514336916925131228456434655711344556420325959622301853702323658092407529551108755229159100549881487815388691822083742697752389703008639628756037882223915628266552300206005354986102721819024208939002655574072604431811238875221306017307888364125185396642036905618561122474167338169468686698492511651783443524710247923674322940711930020050908364859492229947377939893764014471888191671456548630737889093913855112014468378802431886302071544023582135772811045071948853244246574671383160416080897279628071418517763721016822165448182558553108427229216265343927331352999797379512081749542164301757605875761877843431572870103047304593724624855090724761408920818917758596076006687708071790923960364293780094016046135316187306812240631504803780938323955281014092298180956044795124619294421186159061266552066599797227358768251378677057383335637251470679118178281595966960763706261271627550924581410829529991986086400323186374849339114752083375627597434681538728187863583594106326621140738760149227663625107760502959344112998195393855949552860782642094437228298751963220942757204276553420837803807656238254434900003216966055527929016243887399858735296790410423689122883616905919655384357462650771559342677115789966152296848358377739305654750121325567461771521265874933738305551313254492155811097145557231827691787613364628815663147097326296741809279449175159507809910101875690378461299452742486763132841659229390987084315439567876162347137027807872334081591274307657095045025272514986730457929608152365979887021582912052571079180258465904482872624923185679624181488263351410895500404022890478815045405089801368705253729568227018151046813675108783810279526988407057150669333398021371270842421703714735463093771703850392927940577136521314670856232044615864289793301296867367501602901462280330155269922452800993123873141788748449790245972368189198910309992391632852204297906367678118298402935172085046498759515493802928556109035646884549428741257954749422378556300335831705299974218928814542618500925262267599452740863895258806987894281244931390486659642636101304861846637565552158414913462277156851746863202531983979343774759187990209880706723719816821475542586889428737916766393163647831443992775972252469437426924622449837602267308810598351953763526609421036046695560685654681727252415598987034515345102864313787022941362477374976701263457955595629523384582906982892256657013733896298953662357343144442792115788893386237035342512823303653012263244035201430868508736544913064316594909855321447015447013175736154893050505894632825110467394411013178213314005646147826400264151431158207125201145018611618115796473720286011673425652067441618385194152880510696303713030028034046133130821878080848643400052056152682120306318336494317545365841750571480385299149379013682122574565219083568405724441758101759372037398795955765265203731730519143324804071077544583672180297189785866062779430310856035189939393847939538395365202860789200673037637839126348385898632688155148185170352290783733591009422463540249363675561627135921645454260843907676099005222659410269234468906502668721892349716257004416860465068861993138133412065804811242220741946177329916746957830954923200923901380488761853282077362063134412855008658591449844268022191321712964885396990337422899746594527733164198980870289260582331411480413332649088223317534101054306393001459587008475592252168429091803644270318630324279231739106490896792556685713095575961193024129135418298692435840011678065636372389366483623006817748259310101795744621726891210122479681983458241091059848411748599640848845433349538991322617518291494202194383070209811744452395878686147184624732246942466950953464341323238362490059186171678823100783652373293407462748800914941158932713517454221323537395413267542970060426209071443872590310351628041386253313967165308505732858739275126954590972935840220683954148208623838231896743951877435266181439396945252192702828740294454111986774842628570181707016663132731971387428813024566415195922613778441969142900172594579531793463452694529508341717594016217638458944352161331135813436832745660416166361482314384767017806056423969595895405816525382859930674354177560150531891767785043816182713835403181738674522174146596417268629950656008522709993889370786080519860750665779293248536348503275963159394068497954222714560410761849181803527300288260113262616206527873923361422528737873816647472205969639329435988705387272113336466295762393919103321319358239566675697509974659584247919137695551333733420269229906143949608083302643505921841774711398753654259291324781144823951875222316905041110641841165375378939085874360236815335624026317189653147699895400520859563435565875843393745566087620602365485774751609697592871513267123708799078169312130091987097986664760201583644152809740466590977205560432039787763381219062317799122500080990066994067236933390800913891587858420704849844452299857196597866746657093891530583934525797931298103621964670653315692525584123318508886002097313104949688438914001495178573815665442007473249170013004883589565487217772499940280023459120711780155541257514618601078462056267702891274961656976488590451016928513115116277169846686886445487248917965378016421298005964125169079083375640442299085339498901445825147692194966942770536282079013233673733453002591932256730602741508175567467598787824686256382142392822050448313924861078892587192411179835311606246044646073554735221581116207042649277983460165988208770285513627404459692250930483626334234045093005319611617826069498568712062478585199016897097338184609554114382048510832648304831385079799797492652672938399748539266627469187566784587927773698993054048992804502242105326922422188914056523013271513719065072917136850477973650510432062072737388888348990386228753149859085346536349727633723832445639272591895588004778962771519866386644822675610195416342893195943408240216147994787213998077777616174369240714925918625519740878788540754712260736466129734383395672266742269734931168250612977276090602973270411914978627968518012657274359588609841392638644275743193325949894283783979853998154517125981310977139221535468029247163666766244330430668285210300952758347357688413068538346930436939440383417755745780164212552285771920356204245406228023568856016369158512552933231718773094032982997318341679677016671366086339181593079695361058551889736370525190211208725993138470186664939855462608707436420333166068247718959927330133415326241571427920528791690581028487822083891246427615127056114481106123019600247781563336636744090434716694513014904814836622182739377182005307795030115015860965496974711585312939122563494397318635195320666857868927820018940835027559344287976461197043874144586603645398574560225571448864053298234109434790772357834921505731877792264201086099971537402579024587631249800989378062661000338495944390903506667802400217564068197849364842140876463764758024181553061294278569876441934417947657099046134037220545646963972785943474034033994148891507959107448137048738014940579672965062791224333925657062047481958844294927480473248233048276798948158027288237174555708251625810316539462583021474377588114446725624832572093056097457905711900634723035570379547478021003900644466233350635135979477299829437692371354752691357227147606460689093561342855549580807927149587409718050062061348429374901167269157157841387007151627624521903250304436159733676524779940829913076505451784731977075018199546752683406536481460860964849534552110959613101560725523861763478544818813106877653941710308713682182143684128137415034432195639840247033381587744501571250086383808810305226428240431933926755826168872734819186112288651620834414616208081568654452013874884936625680518118333352026683581997549831679157898564334372616301760756366020260566392795758618520418913620874532562486359468642935897640972727729404817907629101909166995758229237459399016110906230395542475588033273565655426461976357538805643183590117385059063144636322609987172069881588927864464500613935845442073126227028030223649376513885876689632115313542199332782384909355301436565189741042476472072876239093992752730729536661533158009385801837522209571307971262564697495225461927534306150071438002567980200413624959458540386952588866042562110398452394295972973483896592739166977224357099629292277002959903276714665269823518931416491982622833246729463486940848356156755699915107633102908695515055057516185373512837894192085006385142684135398513032496174145453723723651272133774830954929396725442385608561197448521216468938413657047985264212132355664464436407625201467181578802867953263048450932164213806607519581936441598342012006118798952767676178782594390553870924977103887564364745873657634947007309144613631729179864535812885206571105904942781475340199032689589024882120537651942234158928096052769780555594315024030191343744341230262987529338570827898809749934013892651783603643201072244716953127736981755642342807902469510639631686993325044619830973929221803457831320708565916305705036703158531957094720692384877410509164546365520047487524512512837276592201102515147570151190171306217504001040063076099371185039890903715855668195364926066527458478078833054502473620504776126723136650956096823298143276476602281650298704915744117436039764518633620453656317895410108700702447934346509993484409800491932110696070787882517177193890455598447508257709170705138928073882999156979663435004047842538185171172135275774727937556861043119793395586981577710200366110483230603120994279647087628618143688132156075629445044656349003804347472790090262538050838009097038456307037999625372943293288523060963142133193677992863065743690232357781178148808866223104125077373775059325539608732511957939411143884162142880183236340727304344080872761265474863884879865677091304338018580569036854551233692473633064052932575411922679789990300656983551926597723616117571369516702030316836789721244358807928720705999759476712459613113769642274938515734619645435668198999090674008687135674293536893557763787589489281202470662759838946682591051103606306778250411140571388823664674089166893246582100876575120904799593593213351547452474240405169287493194275768606981739515704916245492946421956715253797281140802557987213037457241312007709744432533427649707948743267975353867837620039246873548109456378882897678893882580700425635314072937639901163778401791106081464875123427876971238551082896550419972002694040403885285675643452968922087258837486665569524747727489546338034893048582590910881415507566339597193243465434201967433275745630654060735289507260315454875622829209409758323075764622122475124854098183104242767122896191482549122698444469279546772180051744958577969843815403812779678909697113311526878549876918496706010317520295457759228534668515404455199351962164359484951885805740938866974793326562458355565444103526012929906157758888647786863588451123084578340846543522953939436565936624057922683961457252844345286409675323468799305138760859860049183535250634369226867977364077988904881013377270235288477735413144237741433847652040742417743087011526301647677383476525185473484986196353820111376348975839259848778418453506067874039603340098742302000344049796513269420415894184705779143344681822241569770505660068204773131381021016266291953532016386490334235351240000730194549238116096705572361538974563968413138157366449766114718101161188111895301802846876397005605214880349193283906884677755082657905811618117443660195240805381165498972795456713860553183181887944391719032217213772882529936771635316248366989463512186455448031017291377753400898559155754821329441608646426718575148646107165186449442746166350272038919690022263676839569136616533624007187355155838845974800985964035262596889824389510716224078051299617580356694104210754160862543957055601904017194249631367982723006831141798832512139384659182452307054241251810730430393006096776678042262296388222088224916635905448712130489394300628138982273947502034468991597685937528880919079171870978983583543947465712839288432575593498524703332142020257140410825153509804638655698732599389830812287130676206076056763597081532255641362887483761483646977939118930075000521151408448069085472250642166921449365715674790035982607232455067745120645441580538415071682011632026885839023086492776982579663439306101515497411958247197714682608330994448348633704391900122174625956757095150731514002135982616957977040625863748040196258449882847661806339420878025710335561365831744987253704474489068012551907107750769989183919582459070473078605916557596710119395331838344396498049253940064707271825841217868196175913001888620010528608810040929432810778402817790565345177875106162338238587215321075517502720056095523953578720531030432546927939310983308205687182646804189082070164759833814337114569709326526708136459693302471027567885369183537279360448224602264717417157258667624047987348736440251886385313160668390904583962961453616888009605226827683705647679851816444436255619192712013904825221204526757699983859579236580509218742637164379777756689464452330574897443253202385857642940625145338976859041086036048285224390896006583550843181368081213346606918674400341825844764565527434686013064987159873530058046491069718995688655113276215740643378127845316411525554001274876021438376148742321260561263098095727148869248186423386910916276071263859620255614840885020856140130514410172944818899916378060980418343353151531310762932814667462468281480135324572297842164250769918578330753999246183919468964199440531045995699573856323785487445255970269072647229256204179136049955526249586008455067246864243494887294166168687018520801809586547092743076384798907890210404124734453846948377245543617052455648691390917462000474468360094001862100032918001137732582502003695091009971286011681468006388601127619382279375290607602517634215295613699236951646344208940217966978298317370296751028657306868793629187736068924133451818096509724316537430155358101816704817446515340223725184186918029225702899616722266429626094395622588075131510474794966423615113338056427948584939918075989945531305696642778379942550767699938631009519099307784417263514037223155354974874653798370319973723386735605009319773270618719468963124695891544052626053964844036245754163327854922653262887569030138848413858069834135635558975648079929844181625804297431871127714038562641076057112823982923665622640011839380126109476591932461193916772650897099766028688901583242835690110044363088471504842593636007281079068688667620072897951202356521697957240013203086086094668136767792465238913832118430659578217607111535052298353342856835547204345270117526928879810797640328110930538587103862312582008051618205867747063806375177505176208415995830160488902576505819113144342003076740499492542940391425435902871932884385214363638288259364716100544380021310746518393784945942992490919548201531041784429360978143584702805127114443330964376843930157380948263948121981643808137179188294769130864544955627206894172156633592263390755920940583313608605112019265558799355401740792186722322028177636016680141377203075470574822596916985066947250748602262782222339197569371449088506290896793354029189802413845101382986853090101141049654352177913252452931556649709575390594423349943834589477822450610261611181165532570885235228147173974909167629153568815392415948509986155967069781662332776782124132398288132776054974911470226985680168404563454731395382509873138271339103360250364316060522328003084636369568499620065234335951488986935417010475940210423335709689601876929146644738241230704987744700578043796125763601612276003046981435277088403392137298958526340050194470332250297817810625613794331736873068342698569659949670505358672596287915309364013906818565180677891958387078683717854105443458181950112024387481045912566756183355297823984069224262783948541112144032725329021089075407446432310510223300199286401666259401667853153817505162745977675577141936012045009731246674207397389873508405653200795907021004912358801307445731807577865386139513759467106866287570893902583771195063859339420889490405945688269949255830338685375987276774628074995218568692714195263058150677140574606259465580243633849096539938768649368511754290624715346081320157010518890208588020126186856283629638993470830864154835910238020850836536330193071498730192680596975500922941820070900942273930413267544418794941594501230620822046654648699454410586109060177363659984976136445158716135769970655770862875298183321331694111201116927941870422388405780394253493871789017756979092560444572771421881608718409519847101948144698968132759739383486438888588672825859200337606257085793934926877809777011812714505413041593353900388605341538955686754743462179503214179957750890728746340600330991369379893994876646386855317780639622088642060860071843767222001398086105462782655784003648378712371898325555290186693614262731003869710018740757215424714570256957349919424954174954843694959736965093611372729881573361949386996105497980624977654028651214271152766885402609065195818779164616579671814974327692742131772066544868677488983195305003248578729031653698630807814704696748630994128099977173590836172396061661292864766767896758405947004932553468423088273595938021632529051020823528296480765750502728696410974517236510252776183439630295702887166766551066865605820115027175110883715399156540237285264406192268013259272691424077099426344118245943146443192531923937911487043055795402264545967356745018570787594068520634809737330681439262809323460619127529256864299080028645651285372617645866361239297288575580376999744045099619748818671959274416082738122712172228488464731866346486291023323188152946757225003753775265147315385919523466071631553590126267879777615230930727744767629211117635195616462347582201635823633089545914580152525877626680222095420896745299095347013887843203800695482524255525912369600164217683502651763996839303054072794507258664408375543034350194603083590460700772678744817820484899468317928658369871870897672131083422977247307410726272677915234795963313393449914493115068077025388891015299345202175420283095593460210101166959198010077003457217235126368158724029143957028247633624888623092493410588369065513367022606449723000309706899716844549010736659119701712991880260828254929783430203600597766925365101384622094814675675736841158057748669987495184978235333680931483380735490678790306945910078741682453592713642532406019895711362410459835248475875074313939652017805484896385884520290698927547538603759678598435908367077629611803490410384872358266728965183766590151042295356775727473470236899772683945777166238453083263625817381590557499043976061017575022208568094218175899930650257168734851852639631701197269851415862893964256712929772743589303407668509424257557239025980114645915704497588368588044874719455812228224569461485135805829990761936854008746478326252220505618909691587460872179962022573059201773769571677631941044772846024813612688061215538237382519404602925838438758357135287954822805432838895199631080744582223721813238250434980988721891019527906290408660475101869547957537194419154733217335702402395006776289832196850735107936156056569250028808888872153416879230974781843346795129767767398568373382108420879181433456480463850822227103297644098252736966207979786404799887834880590567528527050606147554685958499399971326825767488058030951605349438973724424369755851445478225123029293151512903181664965369837563882491556015753438052821021021856423861331247594268085431954239528160461333505249107694636561401432131451975024577904572781116504738354202377976194894162247723676705837924175765544269340035894093095869242656653489018887752856557126965052088969223386288946393929600070524177765777145705515975689090654341984485814553688634217659420862905317325654969312844696108500026750152452513379851921284196680694817060306702313411046344900338880112699008097232541530297371414650035427974939142190383733319625944783525618838062579901360723768734834175448079233377345178167697443979881154817669742412960948249061826325073602082293484579321353100112479319690180703118680114608200995021144711802804885729365428516699598368864646590111585631980900822949874667777607215398373913260558908951798437694648146728563306671650707136274129601265959436433861051178428258112432382499219338871571343523196581530203795965780389459871944532986575434549962129862163903202005675981015122672953678937776781154040453369570348427037140705084262097084909445145900190062185954057984862229518067231853011194386893338457000407205073151719622028720924709493689548288829527800044279417284512996892894657974778881097902148276210645191129702708109261738039991301804852803699984673015139426014803119218798260133970298454276239259579669637500917107632324475923809732971522343743958846307528857476752928314421392176060154142711045731812951741025878133730974982027612081321860921700988796635432922407770835959439574795491169588847149300396740677763065047731269348322416256843624233186386496788004484483735342071699604268549779557954900478312452207740131262274052343440328122944955646594393583136529470518921119487845915644037103559254847420522686877326856632175347794140102948404510435925265919775983447473989512270106651386575094070218610839637872495817146257955963404960190913540846865029152677292851598030139849534213372360882438239796232102678574245376968640701262768408526523192348992551205121351725024839017238926522066313993628839107575060546261702891123804407945320909771798237580603092761699764109892506066649204332536160878585123370391132406879949582468388315698668870674738438908746228146038185641168374195428460277575536897345992790544547328973351678426860023893703023914725955550065175646826753169706867833067301497848103623900617892017007369519427440466686483693855822925036658981927781066333985396848201517806561052509513096676286437692964642204398859847897917395441949312123363448229679783906328646743426431662519943246796599405348550377817381484979097482095382610643375356906259108432811485856736315210950195024381893746778638093550226663421423688884893647058411342144522558930255418297558920091762088333363531852174735009071703805835451476795856708327016213611467074461651790536012002594288703132434886480232247226414103222945290135003218535736545512520283840213894894064299868768628672769328997814080792329055687367806503471485256501458050715713740499110697739361725476035084195917004023653821761559800062689245308494668875093346329798043254807568382539503254357006654183012054910140081811890607446052356902621035792899905477033592324688899928783645695024100123218286395671852892520577127467590531378578722049989070875180577099474669134819419162372700172574749782593209372954606946289232496464525279068928568004608905365576570684687203799001062980597024521520875233004472924618709096966233244635192066883939725175649120836216656309385154559927344665378372602230471007396060337164095285848836860770883806163076192444076131114194036940951829878316835772810181364674231174573885296646724296076217229037195065441382881144046002184744568408902168156577871772292223980547935889258087146757970525611192798277312662723023722855814657740358964432158582263555855572030928920350450675753553971714430881577472346660609195186228906598190119810894183131103924922257956345797654954127937963809644084452782311806224664520933818680539457612907549084641565577574766591544685609541942660617108823827041424773237682134619912355293324187938094135817359911900926664278002912981310534794746880209705588155059502709657704979455842098449839017132823530161799878108463537256840509962234366507750218963441379549599165852325655933902327902241209207481089702439813961724501917706697009960230659531309413702627103760408874989904595658031516191872851293261660706152713859294300171805941220848589992018530563503896945527710995775957461145829461248865921884330699173423305620512176743011660587592671412130425335354710334214744235465743527463066898853694932357939018728292744230635511404591629679433965159761918516143179296432221721464123356015263237352027687814230730071521353547732609198046823723635097391181942129077376426455179870697902806582216937578428482928355946670289061658497314503724299184317710958885318092294817869324133125463756253488354667793330087131138026524560530559141127587349927763258886948083392859950899811938253053335758342686544521977491733194876400317933555214267323262426680964327459065252349777855677686845976965248115221611594498462769014499938481014567183372017353308716439752596441114661524846499462751160484542922585390700686405537709651144235794312843196986558092808324636514120252596578316784130905289038475920540767725624315946255179137200658097164915704041972836403655927530683874058904690663133925128103228238592137174904014528718042137518878475445233246621545113235266687259232868041827387666880972222900470078069645824156139941953836018861151745654262064577713175502692621086326992723376423184159280616973289491802338698130693487287191738334860241329852538353589464408698603620243283610740589916642525248654717386113855240455875618671625188050091333780075083292050725174409688752337736988168627503156043187158065187240827809841983073093716989649668107149801288858534871057386554724076861654892004919748089324469054692419822727080918307871365802602589381329337604423371785100728358460928652678156893314503096531926406020048813631281772256891374313292333940400319073356873601940150194391594948106557232769444673903152024759861044518467746057499857418226600436745299368021392235281636430033939682335295975295883264870162030821324884495457906605307549137751768782757825441223461961881430794241997293810783278956742079579490515253640439337331169268005192255018174180812969694998559903348890780385548517249970647068294805668988054614534782467740428941086992326464393003727414406731945199085778563413601010525583095318882709947395444145495244260808616666936684248763094260673779587424482208544618215373673528485365712126584374917137005592863397992271495320719905000233686596758313550932085025764500765174773817561560400410211210460273047149329558102839173994446618584598918288937597083839868178206276637554644595853142810311780664388314506471422741729047828012131099618535137740266365721629847967409291003234041497214518270831960328946941715561220418424914763586132688816612844332519160713337855941152760350578623979314079247648324083771784954979414075025169181486253814885761956521884146989795655353480940106438008362901411760721733520528990221421291254270375859416739656853637998951456683757768966179016284858089807544410615773305897588467523167861657814143732620375405534254961631719000098049850007812382647818489599357700161080220410381540645273412940639503101360373820031088952831477375728920364945636041128462078404895680147895184051853190583291593496200384826432185727813240101076423816132854775623182086212735946425270015192077132382608288766830972510843310187557330027286326040915791132536183007665053882412627353553490039406640071858367400035141597632890535112234573353922470248834845586701919441586422255258907100397699158867442366561821388404888286336680138834997291516836300224112816619072626331886598533357692641227244989997207486570028961753871685924089306865534979429066958821577679205979788324148266720934318999953348040163227395904930353183870537605712028833291432189126089774792581700553068679366582148413116796499392086499286634804306233624056508429247077566211558087609069757843325900181816493224447497135344135041157699508349145125909682554242708994853411310212218543314934527778893188727311671851797512091519253778053575437714657213355155267359310075425063078260034433282558568365548587085652769396216046602854055655761334733902205024292479912732586014778376560943712437019566372493726734972678817588453919956478659756111519231279137812193414080902661826231302603481073673760969467209323199353185709035280517244001693829273753044642812779351596497940070837677156359707848286816287227646248799736864956027180817230632693296991614240723964763539430627078710248513218856508317795395465609527314285213533163396141205603445492722384365867492179676524036559137563822653941290199140568263639085668580056276899204279577022968427888356635319445211552190809901305831971653824808928988566733708557921271518730600069157030889373748772494928226830573625624033126507609174652622194373744541334336854565139634067938645797531367274879065861603770783068731296370673520898163566863283501541283674355511428083523330516788787845289059126567870964722607769007638704797162899457991153926719661514689712483297157490714068107931536628740902082769478853122354388184846295414476539507973138348499025409338638731860156740892927962595271273965912992628886113009311582474423506264226587154210145151201486478884515243267690163131763725260404711290650474275881834550965555675106161479895042804734443614042559299286057536249505815826361047682323664217647533984749317792558828686698599522325963744948574761821471911391317705442985747206681830876011211009107716709870219796059860209445822967934050259666811295654030591352715238532390716647769925873991776923820311267752228475679606248699467710849435128853866067126308503622713239943127384334872863958979503316525719940158812819775046689671233277860969893171548931046736053324148597943445277615860363869454724571114565207357265296121930919136003000127046995590161228010190921068285395410967101059445555992819019048086390200637349310956905425713282494408756796684660071387509623303641058074060904183015622792668000513333622032372835689785818988035475822747273421265291634469027801520912428016086251054199650050805078061852497657313534045679541071762332580014865206624519567617087641238654120045210202349594151787245400472079141583455788564537954390533557013555401152558858284524309391288854439394164481986442257451982404463131579507568677613331321197158805259416139326120617018800005883956399833794808001016882070805235109715013553999778182064910240691634203574605785274180533558465177348012760846254492722800163764602525850986693638191357742864801141939490565857939100332308516127158622794558267891427315985001852020200444697120664707493584697980135782831682881801869242118986722417370735076057989636342185729539437460854464073076648855841585378395296568753482075872491079273654228765351991319993140514842873421838315226739709508054701248881975922063395344320436556969419823844447926587450035518939794798007383139875744973341526707954517049486356708793772741866977081663740551898646935664437144787872290302059338461236095755445697907693066234984233255132583879929847563382785916305809446162766428880494057141677911806417993278205596987470901907064548736658006156162215006524178124471517561909313746857743195996797732135356014248154706954123183340912234735164051807822842778048500605473829045640855607568523613885029132185847552817573798478356426801773209093866113220306949902515946579552252489334627075390612270546238689721093719620363083286318193803503503047707303802922240179291820663346341637070363500651701336662091149706566225708073287771556856127603842065086760210731741252289162290321397706078999813941836626703296689425771741365323405672254899956719813327223435149900971674058331101740398575935832251320055180874558291586334883874853068773735908425030576264912899834104359118418368139037483005391895069688342064769492182293255624337095576616469229030357170013466286953032637686268416761715128502479203462612249514687454579877903345459370585969321044069225731624590495627801330904012929497675128494063825242091363969513779667486363628740746325499910249154023693068941783417924029094691156897149632858684857874789576060811202156844496945352055705694115194654363645103571273308477426430365996706629036879121904026999049388774632842644530168416372281804101848233394320083949777622193953343583100936856947690158752398707997432266126545426374213624579158726955626920459784929140408381375806427236581797001402886506840615561454369421394378343424221626775149047702477988209475115952236186750246744816495635012015746893372040426521033762248877504482802063858185136547907668276863753960999355910873984971386065418970032784052306744033386867596809717616839552491509986059683951407610720121588957058878476254474959474092643982040844806374459838902347598475942116856715234727867361811587206896931278392300782657112259235729930059834577723619966549929003326790002587617341248223327168747634949261630000200551351660563254557654172182921558487104202161557739621774242761088249470511945382692222050697040229785735885938709240794926217889286589316773668838396696624264554851424601587076393509269375670953613093896612163282118621338397987810479113762042496907078264740906480725233609665966773911603238609598059905099772894096560453927333549748769262665822814928248802853050116250801228026978569745660545457595315392005771833813095980022852233827625787402540999497030746173451395184569257195566625841613209992396469802831795017815074098140213437689454798071648645971764331593727561905425090100798693588980673194954383885412569895312727006767369158360574525989224214488926617167967134238819976732687482681989754514446749237418768658898127734557577538130866072265053958663976610940108417561923654624128629506678908608278502205910160289459997455528997583860648758875536390465540997318653853786994873654699921992153114951605834609961025635372387708489688784408360298791985337938906734302376533780378019317895353503540831289354279445582042485510019545792698302413510167002889430632999893461350483386610051874687176585743181502816823030914094658572472315374407078487312945608255222299116986169178081028652796582250553985518710210803882363776187215912271988923225990138411008621197630151975829417712728411228582376555154191652649087251547960663143759389877802930466566556874107210209533793035016229720465929511622961353935307310109505360958956362777011140267283537951127442668182856313645248318855547063322763764921295330564509323787625746096876118641084439335672152702204614533002900777220836707697305269248687251669614671019190687183365439452536850144848279539544849802181127882500175517762706585204419020047556871219186183036730563368598006692580618439107018314329029433785952865310228616197000241100101102441213645846881117421681538829924695644264244243243301999763465018580676966729024327210765734831150553225300795029446934771031396222294203556124416710511956885266941432128711590948693705830640730251007788141452878801941851600630769913741277598082395736767164179165506447416409231772770662825564604323929689742766773370736899479241206698691384610471360585667940076683101567984841995739195346313590070698540509892172604341377310452072278527124678383567512036367000792388753388033310176990852018293942080073107614268130097940275364148671603488497668848132295135782884875902288714672073862488250060483052304751423250974884485477131446833011655167721119959266409336722515498297602124950260633624331970711847097823968126147703009242715700914647511387125775119698235072474854322990985830731114174806944281641296474594951871642364541468933736690506274942053521851131094290085369723422407023104508854604077063668855257708152666351988685870051702630333158760820609678739978093225391891147386149036717052565234906237568072123614371233525279772400491300879685683017269076457470886971268768886461700873676348818823753558985985170333133981745913938682614599266645708389205083885409610713762204338307202629123709409205567110984401288921909987108912416463132961237917500586448822594287887293316882246505430953230638898596271967291856357160817412437940021779608298019054743736064692516306069848262878567856506010901622886400501600782934959615618452858425642595021131433288488432356873388599626141448953627566745002780129166255942856978671867709284630059988629970988927066210043968899726023459558177131564889615018324658170613551914226512280339619753085691586549375995365285314874776017214219577308896091717311794997617000787868611035465004219384331518587210606986796697551538880115545599338115006144904271678508799816167899762964934818845901758890575785578319510507265951134976912515423996242642363662364303314047749639961646252897541878177832574761049223976988230676027764383371378091005377928675803299078012613386463490205818657593137467513399783242068119251429493286222619054611608307971250805721989680135973617198465564184456733364950178530256151805756764201764962587833767135482058991382293282290612628502216481443314976428588035393935631198235749825247743269925453458771296324607203872165213500179474781769132625297865538160108046329342508480098812329473573057787681156924277590274433339520817507829221294238860534655990032946252014634334480395794984975793953442872606043010941049537681215913727708379380963171987137497773304673994130270900751113554782270349467272176409639561336526404684913610500208543931282383072189834952427619364675061767108648588992039062537622344084300199860971556980526216243274513173561781837039998056961720116171300058902520829606438010497030231908520358974635424648578442605723231351368705580921706113669166128339489072290164600065254717677348720623888374532215863722494805699818433037672504047418982984490852191535304537513436056637165619357597676081058926174256553663187457808688359315592726912272572644590683116167146135779104426326692662550512070891511001829041044502408986212121536718517933805632743711628784159147460623640542109380577102730049793280528176972476354022391888349293036019994684441569596680660618536958803184208608046406193011670592174112687527167732462421070924417334998521857447770461352375924206472170010932156507590428305221466941214087319177049918458265800343368727171761688339181976052203630705058178097835927136929468443102064636544985422444940017408885320517467385890261607324432062106420705465038339850395545983096500858234280623252529743936889629649983990853955582432357281247051967642390023350931241346804130556340392117305075288839262517975211218016059530550835768674862421318123559440665008996713931466384254653146770990699187237896212234988152567099764959040607001954100142114291602702893901135697126589960530049878057757048352772760863406705117809958452228024079431204762583938980828964993235395380236167014302927698175124944415742680024623393268338402171060848573203894793775846226096290844270341618642255083394167184869142470621264918615275175336516147417115288533484736462485803104374206684884331368351765857051946716446568214856933719540924119063682971285103895453335619366684930180713785063676730877134254527885921635292933475864385062020875270846969009843326643858785963351974448735015569094351987430263956373895613528751303458291993070524378250937991294454732207614509110116105338278639222876262696790320496834513373866699556051857544441288519465453384678068501176621783143400638846812272431195964701005793992759570328848618129182834651511520935132328123710571819064603532593342483807675779657956650581606188934769781111809532077462327680677279336476675657604570487977737880898679878773484733229528424909705140626375461120151742864194291101245202768186778788873686257353621863804226470379615442440829741485214723086529139925428517663074234596756779873493978921984879911411420458069932077781841595368212769355212727298561021601181691354785886648669626306035038976776431925807281004503284701857429514160352979414230838927749493401773028245350889040002265445995439563960055454434431382529444478300042126368700911637519549332447191883554474513973635560236214414098846194455465184943100041686304754918385276485313374414426120102931178988903172686781267567914527409245936684860411328448720402825625972536200127422865760359463766044262380361665600385022717867072585212778288097154944579276924451854619233747922530521053496630164452083472462749968685859038667827298253641543667880482703101368286517226320509834020756559291672852866673653703670834405330107504047168794512386923575260723146501490258788631771010227130302801534483198378327349417953246794310388341603782007426260938063700767255995115918063701526377763892227331084863827167049493277846206959399930423201104522112114804819249071222242930425357970518733379571493921278478666634827462411509102812255349656576007821530956945780893744037579781917147463211238912621461386829247961457879775462714447146709406087994448929021595217746469625853244566372644513378878442763601263905609463939648682818300108102889294853681845663392605938068734231938882290294259203931645617880544345125662854511094845765207472912344874471172487530191526766613306145403297963102037626252954604899998431788349122835639531681841863975055557861516348409817398262364981720063556058768610829595068112394534564782809608150949952652764762671793726557922572231411227323447730368361273443055944834833228123613833628378535109978078132772654696218941714457450197772754417482062732682728673504795842133830240306302959092309649093557395416683906224743704782626231918469259169408494641235966064438573002709828588761805057591593849676896398760504984304707048402348813939130993321073471190605049790728800927901948512267434166244195836733537507440174541878735272617233159435315601701477235995835942960786830956268455680797340851902898877777382473702558973332946988965566429596618274962835558367938285413391286911383264415827731792249005790588840181451689050346458501657124480650110661938144139316889668412861597754216933410292046506121197639567788626683349822900172900351982877887653570671080591013728810427211910542596941827583794301659792131184082773672683784213397684205145293429860613677624833766257976939021624710589038547956101860522411367777301298497372311943425097234771838791339145234958476780956775119393770732314239559436124408954537241610547253260343777758476676687993168787486360467132775453733033785791442303057124479037022833720147051997007982525412415785485714102627073340429754397248311347795328427369733494600829446234996554279765302351249485313365431333397513904231928594612709782366420943380591520985490616478931271165960013369733930885710067628516242985995466557048427189306053913331234455842370148146489107991721643090766962640099888943399939603800511307379213312684038756353974311399450946821485465063376621667997781900428923313568533534477061781374502582739909000618185314971058051810385840719260326705214196647075740507649957483521800044104575393785750523428486137265112273586141013569776813025928746808323294302172644891028985636817646924771809135558077358540175583936953304020398340134396333404016729474321516914218329211989523789833411885253432024328581306947646133788273893888074450944216873906333637325042351510000605425062504710433720300021552774138201762690602766799196515044912755951454991260284873959707504053751541330524727429169159933989522477954662853102309719775570682267303531433721515771489195555985253466600000646388309713832622003342090069339904865904259865512048694498966090208277425990968886692421341684589514178441680627737818136956779687611605846002973390939975646291187631947720723613146938805619204495692374993113803578791239236552183076557348458333514969635817886175713391101632932228880230778270669653835130041182922207393290667174880627177986342293323957076993818869134227106945702414727850011338637673185345240483193217036592144018017477013589098315439743699136409911011121344277629966680055114030043790872534838666531435623737586769986340861615139242932545257365260627320813640261187635709180516261240311619394364643898901636459681446436784543888197063995146843033231439461115829157767560998166265606693712108891340084853969801045554900924996552467673974780039976547516696871609444094501048579297414162082604408043407277575848739648421376154505322569112791960463189184504222231324282119020714823318704675472129915596703394211002566598212877379978309285159498310282958881254566659623680692425430861650952990662942220488581553846213085824915191123272263166511222646858416824393320333116603926134017396920900695748583794867601943763484678633459230587799446633457580683006560399793410808385032357004021812146670583249060023304668922903689180732215599079419351172425152633871150087772568280930408475617406744375058785813383521367698249376135347097559775149107694604728010566219613735437222641026087832160531026309642807522890079237799509158715173856113965467280199293169464013163767856966090269856450711233304901509888594838450607285320674079503662140136565820420198491468655223706022710010535954411360720104737206584826743030531373251451526157734839508793474591452924522040256465491697376404558293236337795301260314453141673080143645735165091950493000469274219398490947692862709747809775495525340255558077595794389054261596368919167943277959284551340516471476867854861815244019217928322263740944231471019878982745172622429664428995946912351887321502956094989121329064666937480958974775217333410682947578796067589247554993970127471628120098095696513247026490470219777266148939179071346551034009758130670411530280429283005812642870142312083230781240835080849894581229031913210637242793515947456062760166330097240949135118006643268376292735737128734566436730962931161455912687499480176143156167587749021631887895893052000474221606433243426030785186649743910887120142215456643223356557038765241490290095510339066977782755744864929692794531737718794089037531850674146491744875409755991280947313392157229617635929940929727851890538858818194848201047274206728666209573629969103330530398540055674980260458569844126967966011073808226396511601119445434169114988965055598369783060273263848748219362902107978225113280205065427864656399192126723630048988677000595963039939202827308196827099286694348573207468008386198859129712557114878881156440097419808862070341479779165538785500030823084794783370503160898665654213554341237828425196113793402244324411319881057713205964931621536456729578020773685876519072031575926373854314842561579128370376460129477203339536935725392791228446501230473601512383435093679974786060903463495018811795781704333600268222676486097819899996925136946977527092161149548436133939340249690664533438320869846124725341531480215153282067357374591444846281833106424235337505988567905146654915085059882443599797652364810429083581739068300099972738370112416740843920321955810421199793439496070710885082019346356816521617411989030068135582433437742472839774151565210693105626946698033590111597750948470073063436311287696523738053643685842069561431593266746026562155745087679142387818190157225989725567620629305260554689651752466893636107311774220683959678248183707124445334351160744770516319274103534252124160216343880179418959394574531735084516826269625273093680819464325558157928299582512756893269164748812441341307913181203528785596094716308451906248685621710452308561222574457914805793145488092811759712346647125909405072713272704354764435932588388951752444276578019458076138972536265243177480103563590692253834809277712530901653975437004001449046778634683964302851148439640703982309485981575885745782054415156414314623019288954023996443729299378736171886226956434134547921014188240213696739175938925948105460742954155999327970048520152610726003979849366823647974481350568373773846956497602440068842645316842680683663270053549219484225256046190343412616808959939165670859954768775022520210244062789952436417000120550381676732239584015863944526719376712371572756671750314803372519109729510609387046690412229446427579559141860985785927542919028941795575234492699686897056484522876058918433526529805231291014717751491569824351690310458110047249050383985769133897867062734889828272488619815126586388576179489518695129768820509259382908853203125190645055405895120481652201005515151234823846284384516582978353275315778151012913835641596083279278968534998545301661076307421550979502927537108609143946517779622942910106626381367124035343178308990801143844508828202370533540894903429598322716045720852161185581054940481290943459007306185626577432204382705815884989379148902329277416957528829901704552433317583923328844409217822430002389029235474445675740052680645253071987902789173031791834665907861349724546061386329173531283226101710975833585271276712920352530994046442538127801972565268654984142370063221828919700794953773416373449942341168486354137926328921237128374476288501327028168718369041405430690424630123991035451885552091757783781594764501824507318317071727371496428124415387278119563800870379213696608298618777695021081830405149003689837662586875148619817412564777284884402735776562606879206688829647175075781444229069274617864845517812769306650399499537563574520537885587379250119294491014486839083651517135155098990484994065958943111292807527274234059990939218497398050198714899683051653101445457477168906129894221610786865640114821724513854389311426305475538469899627225571159778264802380857901993286138533403739553667381401714798663919800832161315885522692090059501133229428612057679803703921616947244187136123623714060583004193701143104776252547227119020308126349008191164162374418832782419988226337559446364075480051032507156545968829827492343876142852007102928444368934435551498837371498767225960748261103266592442840609346074698627094201758321849847123874146663762043034595399686540099997529082974819674856034344467475961558572727000965648549681596946149837583267360679184831863048264929397335159154880089540474774286075964002432035015989473352823413223049500097045543839618867223743936649870142210162390649498175870829722029790640098963245928472523986176405026393922418332972567998056387900736789055762421045815004546476485631332691623185445020380611181553657618642919077568510705132676754004070919136738934372027934831952312645027265165366504437502277596256633482338270188173198599682549184203100540488750492167940834943787253546235057872395531558842751809008357311332822279440681981599081090741596524062904591343392252128343799121999299903531425591427517949535203986663305818398211939279007460727235487918609762896490477347418514035094703989303765867341973297726975166796770895738966222819538288727202818107475759020566117643616178339987899276633525136130170472820873668621555181253221725811023664056122208865380877855752213190493085576588407876959466681371781758418128117390734871420611960292015481263888236097535054800976748489037634972135538614092306138720633723142436632804543732919430801703798776103695285948101449145422719060493777243745186968928446466551051533806477231577582879902234326835502175889293684473284059825039840486649672756382952702180638622900316283687325255637364712484241957259507264992006632639302141485191757849669423297138781676948479084170532603427912762599064112257759697896993944210500929521456851408059279493801982948521808783486780926789215904701961731219323979780371919378266717067788015363409447685507378327177538301190607885567727859837812816900491814294753944666277360652432527167136086785180653567946866357583497116440925394805162322597269349496594769779328948620683968065851238434385902453066782895598073737771593951178716743944464178113294297383217069021922924281578305304473322236988357954319820404630872134976078573922309289655789769621626019686863561749477525968461508338849499071786531379652124250557496542190941932941579233260650640628397834079265286146370592933663041114223933214622590141693955539076986624892678656808582584458109694781190898591341891546745875087633541026190076172743838159100214645334038412304865630029279105546852432905542015656108647165500265583649331758801096462011830670324511496850400841544971591934881652004434552934891554109929280685425694889711368244241843961475366141682765261841004609219646687922491267788934222568913518371998915388999691528165766833672519155202848552751082362578453334870724530668743148504843343052431378246314301817745283959407111750654508195093545572132445938845217595650762139568616240932242187783852498482039617798354959119377282141044733251987889338625941486794193544616925157306260982131704838387109932414207436067458252748116131911287799185332682123589688027383969127249526231990118117231986036056123221088374570055695120020682087270052653599292682122243538894391921625227492985659313503400900838364119876062635182611842992378995051803683890782419056710317094412523262110100094491955300603256479906034238504064457027829164129336547944289758109178747643455169338526957708836867017105977101666476202220652040787013704419518035716102929977072803235307951961129525264804761026517980633115577817738653441529903039150751674174817265562349863755645053566742404217994589111293831838917923695445458097829640555660763036992585527449409113884686970290044128624698348812466395912947694543599484622768253430054921774126621331700396582014796206020007278759859604965888866606457463083462477557059986223094357939332314644298307089182713893762437414934424634402903210025150629212797117678272163411735439138862492524860757765636587970282764768280665932897705825695144015609619380414519253927390195688864561970479021279617129646944967721510720001480110324669017034509673742597762773770779411879432999351355679304188795183856357533521144384229258079472764008268543708186448206482192573811713700347997793220844659881660195773629517045833293110748900342862255704366003373617344780605543505809502398413808578471648488566500729250695348845984761847753372586128984524644714107241508402317632222447351113369302828717700520086104964472303446032225811777139283043304216673028715635392590600431036206428742294419825394559638673890010373363274279122289409238358288453632396520390627831271675040109365138780192515135825680532104607758011122202179459085285231520352367705642025934185535020939581491072282924495980290836403772735956719063605705295958185388471774236126496753767333371793586802073603044126130368234528959443151000746936817389266752894536470858844204456001382095273069838467659456214724652023320885042977913186716803273089763285330768825501099938038615686700997875225889905432673798956586170220264328745945177521164788141309442795808105566341184968729780871576935332921291995004621263069027139215136340868227808654148289340716927238780643630009239933807881350664384578759461935384827324983220823071496102209566651351038330064039373036796576329909838858581214209596764576049217261652626820903662052714138594566038950840740845418880859233942677897149023530765072285683550897944673414300751867952823107504404196258023774202477374206041545532659922858104641860582720280395133797813879886212528433131556585517949660539356002608778136090064091196120921936772424718873110169132409840192535781912766288661497273263102511757100164475157189682517914012324046713607777531573159732270377006877753205984746740498654363800602670565730178945381651690210546965364705765719564526793373319539896982878996783292479055460130924426005871146490435171103506373571722632827983467196617794866213873544496704726986387936983415692674176506461586585271204201644781852425336423387919486727603534016373757581642126153471505208296734110800032721719770296123748961339431258094407722427257971143559983177918261782983845194644504554776462041953205877697250300613027123567803350833208198994245214807065641747167356493117166841683351315655992928890730043698157689588777488819634342107478665320738412422033288921757896975691698585588526996697409088154753110042862440040059931971953416220464948286471512212250244032860620586610082256373240778838573297592894518392791599652422731971161571738698408847754201670674564358899070430141748147132788785118823053410903604027931135195704755585804909015567716075659587938616265289266808747650106024918741132493657610729526714628479268147723265163365497104380098938518325632861090727032819395766615947074264166745520561998982227444237825497172632464238667961650683804230679702181768625493088069347051211054473854377564790715668213307451019150527975616237478809085623651529691234367231369410014604390945306440235366736492178952409510005252922556549189695284634173921457881775702985609839773022218766038304353858092231304752986272618234839469175416977073737173045616729468035676335943933387691507094315303085635319953279828988935879903053330124351925418417266694157913476382411058828259014253111778246394671586526849790419497558954133062010693561051108700166056978763400889185908676136103936153882640135078839503761593016140788495423035316991353114988434909507284946362627721235651152327229969842362938782158459894563791603869201329383311460600803735992891087558822883217714825589951673189116945002225393600445995429060281371930151103828675036455376478637939139913694959154162147302201727230089461772317332438031239138352567967887212550257201047152236103226573628813068635727101805408548194596397873431148735992927011445492727626657545040008763447980219626354989015547698323970861000529658948653724939109182172614982169872778097744955693316365952746533328335689336942797723187142562419049753862680071826653309903342389221199332419843930811044202064930232810930931978343013331030589998168934680186520721427830314232474218245468591011978814672935693569436538610439215432104610940473403844033252819820625624847431764463547327610901960769873659010831547569556008114915686364907704063883045304377775022745948437524739597041845718029296562044388252962092848299452748719103602739586750767219868581190884142320681702268999337532073423930561360659312935973829480589099047715876502388728943822998115720156068943384619775080568100809155577097189453609539442487928565177964340684291328613634868645373239057803368435373995158030667188201999620224137749244941204571839462411952126947738884528691070433612789256316586664477783377173029788337059052366455502951098497263722327291438868248705096146304479267940492230650076997914153267608090104249033485284600330938543740704418797864697970746868990934582167385668927018054364160922242311862243358986434111606501244324397862818318827252168653177748774837000677641213947375844984651005548976504518893455717033322226845894703455124371912003324523082604545147848089706899656573976744674900554887525036623978460057494178714600191813646356916434990223960974261096824811751159200697713092835729721540442616585346205950628614638437060755045875512872367411127288285510327359326862747974071993721248965496483624874034219392387987702607074371278756146123516418884090694724355904669061172020252126544577954409457911696355791826175702778332433911536660169221379168634453771450153602252027992001254380159699852569660014263851659972353578907545688208920453257735529904385612748917027451205726055330176013796008987336494042109114160813216323866273206832199537336961133163722296807535182408525387131928388716631939336575224577937596171164817622424350999814927746027725351083864088619930677482483899693621390031660048229023131690281596873527028714008391913201262395994948427070387796200026603307049004371031148562653879646483748199932449562790955043885225257213583730437552497798602720895046045009688536589822746709621896780497097904015997390565750286018315475696488167191206001249093300385407067243249032865070725181021413370042213852375188821847429802054486158044482921705644659240094501816605701329500425181536558354168828491623788320429894607003122571728854135339457927657187253038029358828771272971322408738613792455015848117591121357764172773304188095472866045981293395226262651630812211129934230326675111897282230638413564025452537425781434006244926417706381452722316060705192457928684351673520014157733002694022627670910712843912737126339371255573639913653591655963442687927041201248127370570548824186517436475839027766322192501913654648444004969484310861863069742135462040259704251584824947943687774122088034875778590331261870283835383615993869097585412168654077503943276448687733079398095883144235579579641907290968675351025615770026498959114584534907371416893880542360155539834486345121152623067010759426076304492803547186211397577968677700915223640200205140093789486136154106268570366772505478564408026161252671338906298623184226638271198265556299679243552817791629157196245888342445026356566491399511528367611598875514983871494694861738890349142555096722287191832288617804176220458239747325354975738144031061513297631770067309383198172088327868540932043597846921630045128335510380096259137900989034246394703726596090625011775331535483601649608276409566951636569133498677695008730742066441969532999194789571761059892115883364989407859870360997191758955009153205585064401324518331211774337800280778490409349751701804898532263330473555140513966482281022375849074682394517345776141112978385573326638214887768333786308103579490798311352461931268799502401989952219814177904822482662995807505163726698153166415105388163638876646464456869694613419835739232819533168896317790395758515218737193369596802952265063228314967319012340562751491661446617396523013344125445657256343417561869423513134971398913656036636337079149952454807151516498050383911560717857470209473749948012724067739294995599756169655059284614217095468778096048122701415506053787432696104982268069584259834724079398642298411830361011631693657387391211879779930988294832434738316807898070390736514280587685240759337686865545033329544789005733844182652373509723301225588495719166729911416386237304076321993226450913827451688223807384411333426352051862874728392925374160833976729323825010927437457433287607908777749457403720972577458210969085411562392956535208081542570249324634511651087427370607737003745606399871786910224743169163591402850713537146229983395775801716940305899545065205494094246280320419675311936075546701667477691093893521374638769229037926038301783388797287268119056915656725989704231257332060687599709623775371781877245437057263805468982528673436195160480513078825872502946495456068624324423887260367977667818166573552794200001734052121919628560419905962192470683631721132070617960142727280323093613519389182064979862343477912391890212166095765378678722206106219305181069235339478148660540395852215467627796030235959992842621475955405643680672567186401229968815544246680051095241762588163975195837125084636387593116816435458146246282126754413061880182843755192519622701324256883523604001115425502242384544279018523308571483041483940523211491276713277648736592033628561953251238622621293377721814418091284055903276611187973301920870939629012199828362990267845457019615730095399450675972410884732958298462424199517275511872309657740492919260093126823761918668573146377200234485325963148125076108864436186668236041061785655167587378342539391269753515837502127619235002302934566244569727468862701196967611220491521021580766973796569992869548567892484714485306172885096141151499127056552230137456830932992804258563444686812846093286150032449583786761960020483035840844531360108842536556548837138782802924680128685561583047981788722895083015714755991694981071873097696651498473237028801443952347672891281175174490696160281293288127244539703573282946584031115455823357991859380819237979541888765925526441820359345626468713317964449529370834261050593597763846034528514238515572770950894702142057200009169944687350288737360052803127253580711308307051552787761867267139653464548133296134463994739810751682894091421502776922266136754352608019964000550010746235480893320546439973211656378753975640822821899087416417885530510831458775819660333747432908063255864427833968674006442810335501506083392364685339946993428262315228024691218218615920571282361686880028047899688486749121193120068709413975853373046815459739399447376363947945907496930332522148712326155984886621743139326906246767526242955506917822869700283897452686861398455982246956251196349727007438810598633628208239031889779283091448020623585136176620934820552254274030606773400319241642225969886748840525653067624124683520147690063980794078103721124278984375441825313257202339995980290735611555247741919426457561273810277107757705269400995494812093674918526076616133954058311672857873747819798446137541986653402064655865655830020506410775499330263842417455365011605037728933780381728691718161059927074155899619883269776685793472700280217590566155970492449683822096783423057420801596373917739654820272906164148417702159212336524611043108441334757667304049352273748028901379559669984305227032657425439960464259687746885861776063235671268667810716898807242343731787232687214282246421136788473263156517551741746461357430184970636263539274617614378040988679841367288834589279379775520926544779819287082209885223549948692610023114764416888495970257478752718760889440741638658992206380424475302134545344558529353278278882742387084501309733245821077755138682676720664991088440848069316348470207956559180992495038525926652369019016313749828373175934694518734149975690642313541118545274274976189732808571864299577036049043178932167333069948412178644831978365207362775445217489520606056510400893579107151229987633252684444664211556723511338195584738386216899529233311575350027634573687734920374705632954217236720223085965935243982178800408398113132972124287955942486052958466732100303268467415487199022149023158195742644770815699810365900813056214073606400205591725525427465722743228973528112457089190028189677270069913146387358142653514001796110175820231818740066694019941463344509356913725389390962479607169935739210318521192479798668184419564517739275964071936197091780546910531802691007380529304330851916619830679675347190937659103652730878074242071866135789258038926066365927741147249242211905371881167732052633049678979054157475021528215905797886264882385157730593980724332042762892559012895968036048506706068432270024862837232429564046598662757287496718884027381311149256471799948281589449909824185318915923096723440384906064572653014890314315214887621953751343683494011391194672990261400156514767624757621711745740783747675863549324641174258089578812597851713446620630092820186760764360202239815092723416062127490344194168705685938612187322058490543439356804215296119474747502259700328021537373427347990502410446494961288799563031274404515169884496724728131400458973657769754853428817352931479704760927046174287743232446804673465623480350325336398277598605560626540799957355771831384949424057524065866655541872969319663167361471985660378309857098156856722056955201944827172319581963786462924693932535783125716551115116006960367645579142708475296514219905285933340559339133659266522490375194976286499279937202333204137274439893513525760913595200571283335898431968351550067904537966658192064779217992902971796048674196590379362331329042490354686697888017699791539703388713840516413024225316663019526187269213408148350468191070251424246659559331988930881072156052627068843724890639133684965774293879026641763338621519767755384069496755204878133099767578458375054218402475795289656320303176359726628853604229388068752091750778347867576989772234358774142520186635572508762927200288226498294717262600288971435586746612269551693004610735556190013711184818345997278809290435721767000135218329371591319978903748929808134213342321193546053636083964319513319360328141352870131548488404379861295724609515793696850778789738812298693849263991006746024422313985993823578613621380145770093046705839990960402045561489509034442054618089968934534664892803374842507345401442887128564455156312738759502536713022568125645365216494834263211036077003400901511634143181369688900184131755542454213098501347764357313355005123987778791382837870300407077764355498081612191453614941858195306503961064530529969830232278788089215162204225553845552065528832164717057460780526571379271221628695263303179943705339721474756854119715810893331713834379041191818053752208330045184739932875794072786685498141820147852518127144899406795189765742804854733401389358081629367739536045628128936125559467691107743879213458484303456143848294076366094564321578575190998321992973939231052439307638792492183194575734532422991425006324475001199289192443008802716012870974711140013622671886738152352316305639240278026413517888202040031464496782501320861303545801623752098524797046720230501040803451605040171308611461743321353324564482268761429546231303501105160945887147267398927001242814727501481321738350417428107263833956816118340820476894728039821220516726248938319149099171754505241277303609139492167657782441959975448459580409887666605275613067030351882193762642793558633781903297796011492860571185059161666431298141669103412893909197383967313525517494371748352382891858842631821735951285224473569854405536977601374628348613469092801789020711498843835767644552148557391582490555891684758505356378959430925229634448842896093032030030870037057804382722117347814467479867428956536173402689717478486687387667666695245115919242286054128383237848204552316338685760571375800683982419087944960177322021339789845539569686497846686679839667796847074426648960886333802795714213172552808855462726999435922265566306057808763424421150369643288975690122439618028636426252615641723534490208333667277813308474124006938383417889556051578089325991596798567380176480609549550491022677105147201992043426618144843956302794840644699869794874824804960771055211522813616955919756038162010986290848509863560042183376279881367646409916114209133807839926291452801120251220686572821348845133469897705217491400984432741045286090410573992410516144759808182476024386750335018147746636045345629469366082457426241221489562180853796635080025826962286344249750368213927219268176579704618711012257854536003345226688183394744244485848569774255118420894187654418233970977083207726986843156284732476205496607569128727561393507653549763238401550895129776451120675566393114205453554282071585168992867084959869496684476248200268534340007313287652507658051422146440109629854754722959988342080369015350189835729686811273798531873870572875307375341567190918660877875874622134838277060055507724174860350700037225411909110606979432110513539042640250617394337554301221335174163900319435187661427135819804358396077849213770532628557545985790948593310612473101240303757715208814692849926598909905048550162356086431495885436999283376351216263924631431396007443209175590832770030492095197389541847365268345466083025627244553130997019361794679997219576552272223124710510257249210729513387626451671541094991433685716996767985718680530578129163617081573070180248241032451951207372403133817286289343172070523697895866200335629715216473876319276426493308614486344055742027378601605935823862734033428768156273958133560194603890427407371897750393542567500589644023799787979026346462127895213888312670308541327219921480854994163533042145270177156238214310896792627022266950647978200222842344557666454143307231092093412018399883251697021893811652879674945915083875944994024477229813810401185641421803665948927619936015880015083833952042387482177944973287811273740621664383622339448583043222666602475213246713464978082271715101862402552469069214556398184225596248668811628533482994420827075866577992981352226036191360370036824858030306145808743694417325150296596939018949254417300283144721317376675969977116977770764342692962968389722951835944826639833812661539131360598296698899793687768807360528585972870935472889641832364503398342203333165195550127844291963247198746828095751579318571541955088892671738322637340588276172792419368975048577037392809513303763117121608192818778008312861110700071248103988123093223681571606572513000626337260157679360264994421836595430686476506163408176391675380108634832702295664346350518767161331564286245997462736468981362933805109977877431335088120572816152267447763004280004037652551497354210475285332827283774662128054630480246826299436284474583462264761261186633351061103461018429801958641298133983975521914371802628712380060254436470582226420448521397724923842036716170071936778333947517534442604110155408166495819759344724573976723504342743046018114341295216907554866098454555573970628157405223605473181753195493062881015597149134881897639577472747672075316990582170395641507483292742612846657563775062771620293048577593408118109271109942879488966016102599701981761168293909639087049731866910380453433413402622581533581114814369589192844451191459269825022692813866945977274214604033899364948735720338348672333201831098609072141845355124751742551518960175149362143619310982751214252976467507209899450860190545767190542901000012803628264890498211044315710231820948205541804861384872731463736054569810111295122683794722659168700608618713948129614244078450291608269217963417848360409381568119200174346228154029554418332252208315298258567287523501330766770254353512854274387835805049976271377277551566593101316280911037377261325230704933330161137071800261669777420296742520400248885643050485332954719141683976048267873905475189091234127823706035776444225566642208475474113544514726336537690313656859506174741637185383779342007168840346339079657036881498311584385480402059292874449039118212640146320630773444114430663807052583396061155388984823667611814393285862502076592223163898092516833028370585435730170701398835681896889876792719411776367813115291959397617472580478848074905462932119053808848611183810190483220853461854896538692191933555356558891816691567509823922578602013671826443850454409447909589211257174715084460697186969247603095123797800392786563078095227582004275327547474903205747496747126310488098282502410206115493220166124121566684280937942644566594126972283726709445934345136444894133401531662822761909576551935469859383225219034792810337639714337766076112198758874344166397032232561183292417357226923121568738997094768956595958012710930661610745324798735637311544215905568895507254967244693021544579783276164234486513912849427831453268279232826987706000015817715787369547257753111708950529874707827142369137765756832771022619072220320697522610260759782082519915981995004300058002323444129020914153191525004959876718930936908642044008949368010207520206006322413895023812094493380778509219410014014339749884947989782107310148951631792333282572394674848518697683758774914824649853806718700722149077207406036308623095198436586152215659781343958163241949107977771612958548290514759908008093435218219129969080853804859265911379278412148309285896409806810650708231541827979034446936844358505452437768716827596923033718924282276063163845582165867741321110445024729014921295403257513267118251128694357415562177504273842634220070466459031099886347219359869583709650131689629329779300273280988198580944532173373488616429498460099260420190040412327930019678935292368258818127945964120119272441969564733018473009019117443214739301853560563402864417131866748075532980535418831342460180624590558039864530177678214739044011035980621607085638941217025781495415992093947330311296361074582524046417710767805947203893419780589865585821812981093197459545847063832937028758757623144553277321422732531881652447097260802883719676939317703255265608245473544035917453329895806438394416095013479446403835046928759450158300822584026936928700097899710678479800525417288342504574154811903988496956748589779426257657277620218481022771434522823164040606403637843447492223735747740690721352803589558587070412776584624227629842259036480342676034015348593972026025637526973589153358002355227810140836616724695343108419391837242778682043232714728714926833901804314858745645693504327991599163996004414249753363470997006353722504197803085791186136022211635181783813563532851234188543457924815589334328132017425882300355962841644937717089493962616938567889718456195726056521014984406210115276279347227658623217276293288223557424852207789294976708829099211378732169580486543980452582435587992797461960785863079380785488817266567081193882792092811527222438238744503181918249189200027471571605565226117617062548057543856454623173653709006796177225410616021909411944458209968779749202942847455291524177565155776170916376080212188832454449107036977634759066096910436742298070855788496672328863784461360549462466088906700888194214213075050671150217718876149894904369553061038349079338177496135576173245452834324801011798998470068607891073949242943044001951841420930761721806021242602691753135148850451670308423210389161292355739253359627545395617586412110621133844505856742583281698729803487571415471749122197329957170786366530696077360342083787114932980333164087542330493065009864033325554027960727859044196625781866250245805009868810442913092557609823857553494437510391556458502553901461794195512233551895531050173241021960535585746762788602857744991807727945706956042317929913846017125679454271566279010667267779524968120926907834871162216298820821594503073787683190079257606387512342914481320672108950726973121914655971086849893849145588423444131179896415498707810812438525766521014999335976345954398206932780799699372582164970005278602624958991742544012535770843317199147119224595251576453287018561421256207702190980462631829489276300533286755699520355136522164759535854988882767285581641593401154711362994585730634654451541927564306994210672983619906274396480687577878178678568901326182673417151453322286668800253236280657733149401472073423450915843878377460015640027979427570258592935892435212417162940259481396055116632681868989480388170824424987440725858666394583128054172039679168434095929487761896776032607130044421938277775770410848733468030264375989258184505985382590194228440642728681951299663021672287578670612840368714421205739392125208947866675233004301041248999599215032968417088255022186516017103194212864878359106963722539750225890996029262893246061458465915738660594239640104026861386093419452653460901446920499673371049938989549284446453108010013306715971252918582879288342214775283452060867115787094513057853308963077397162592371809975961477586933955744359808965638602872045437377858328142566479882543849032863283433869930540371893794107587050635512733661742560554774890814029276110358248348671842772237664049881202251821930460612615452949855554921541709761163159711489965519331933661875406654180167112173404588659367211575204502803890776394824294753131385573722696016528595525994366951736167501787123756214508095746877320310837967253248813991017259761057420187050554450723814902145434954080087565114198792602089115539470196674072052097428817434485989268502968844746597819349413558004776442026263447495873175706504018677366493029157550533530230886597124747019035459471238488504378062343496854869871405581794552887147136988885733552562794432546753262998524685622209883096346784722462015224503061299284019718160150100951279897588009684951626471212736857588096295759692495228716074681888202611123355371173844254559156685861765262260048449524200033334803385122744173154350975352722122625789777378616024391236499434902323422595587831215040458833603110168513927257378653774573865781837491374617946250068833698672133305426102674128752451361053384339411111564209161191197205544603881636671567991911335918214012929632089166584611365052368350339537161498379870806406027384920881447953863202721821925657540160974741791221228420357615862357653435859511932172063053678118412145022830702856381671543343821505936937189150301843425080226601705727321071581488081643938404749023972848567235502771386307608831431331709360695648645387507090096981317519017633588745823261548720300788996226739916484541904579614641884894945106427327171633573694786869731547297036034440911824115424347608235769310859077836436326657581746486815329791666345236470037268301578039598420122554122561549638693541352534199523202628250796317238197557121571498893584081323305873919509264520443371058003246052511110464091555387473001544814840170946067752080170896916175242280104717464798398686269790985182175659045869295891548041872931622647611597113799454661443202491738176476805901546380809270319213699995419112545454428522618191445026775850496702253179621121864856093962573992716697973277497696499329978397415891245071289967489842860658095186418297258592876506359467849599632364906296266110749017263168626442280969940354277812497175214390363470046140482261133174377127350021814330597511411187076587591594918439533147866563118056059612907001956047672578447028696335270255314236268065228185657390276259773956619013935197737101197413998421759051096296015927835281455145405127632009698292841044812989668911536835771530904160409117903802083140755421238825456920243468370563443474860793368086722712956775393754963778350566157476069130958637565605390312382240057450329138196794500271738384494755916491356101971109366390492535582344998164405688256000295642155394496898606725817906687276385760198654964530583945616040911282054294820140324250677424762532612563851520339755100004646524694177802995854307778417721363155092436437346165709167763197044934354419927343548209697507318339739630277305041978761695078293232944062127416358152348369294737693388778923351704518177089627902123510773994996305147785041212784334755404453328275590435208490443764368643612123614250083697668752077032079204629107939834805173213637513938169499889853735803721264349016056347193709565148425309969113819708517215715341849204770256235012292327560525527509326109826342286146457680205535950365638233424210856335049840303708593113106837014319866358058113632064108106368033588462973417594852975742647319114417088460579994688339946380400027530503662871320623205297699615576248580915825675275088904915387136806606736930408903143080875935426065338009001482636480161071386911682694024505204397692446085808035747323160308055996962979621818259887444495102453550627558676880059050696035743452040584687801638197742816330326369432668814137363419024173953274879461689906664200312025639185317201285195200832516186604730819830721298137296168307462512664672834457870894980660242870144447111160905237113746079006421496513978060171556026118166989002390650165217885971413919491872528050507493548078536204803836123738685358846501144551101349631776495765003142385464002695555097070454466146213043877281276902860811220680595750356577371721483664489443532895275146153858026639501976419625518287920576688372246891632294028891556962969290171941124737086713370082343394189139835414792333464949987343710853318363631295032630025910777988462930025483995861965792036043101497186744263770809596301065091917478566485583208817264790839396073170650931901313725773292773882785870333591920612073526125572831215969267694088361004320355119022186318781248759965846421729750689207834580284389881869433694289862301087056435786305055982641768135135505185228264605212590873181751751188786880207648118442215103349515744358092077407166761143571077127735291567956342502785118908743725634215469933855344949184453211347768951475073046957622585260961117466963270397783719208646484125604069459884884654552085774209168092329870894089118394373330958603942889536760485290624199145486826920738453843218142545038993837140885866085194192424445216635941645995471565172650491143995761341893839810883636037906905762385692564956660885868020491815604845892098777226436847790515261857742412412822873427316057008430727144634509027517720862859321317211151500059251819626420533695699717261731207259461111827126676347621703445759392590547381058552319858204657332406496474950257580512897571638655431755790949128837930716243084339619428492202083450393771348251471334164046452492594255837719325360114573525099728006713935646542013676775934495234351978208244765438931044099429767891038329745904361405873290371446865199096174655198367728047204835075916817921323309605797484517304872902255758136047117252768701539023190984376945676819187845946194928898173499909428895556314876326656224402408416043082573777926248177888192071875607480181483595321138692137005043620904866586525726702055181990871381838480928152383225730001187010630378133473552286097317830817369852762813907175100722024972775183037046383243420535929519653359998696181764879560624480309359725572234607639809697732955493338856712928819208002313768900516704053142143999626220190335387835015152252689679796193999846944289092291043183525192934897862885575064949244292184111173971833035124769708853650040013794805328259744647327637511967903164367765899450124927836612366443382756244201080444625703196452745189859408909776880180652337525427492091469041323153393813044782615402435652761967662866039165450656374785743307438304033348706605875775387981462405013620341931802470984642215288337897312794157998319950875225010666529298120173953179026350636551247116059090060506104360286987546957352127421477251932539396907594227628359911938802694700637984875749245523495746168872553134481028540478724651295916225451732079162534917930300859554881903621402276131045075908948270409973176584264160888531160027175274213555263474855481059052074030645523867169193189541044569969620101314873254158690768268573679439031748974439621481086238658909662793072553639462594095471320007495932538691566950983949459052601450352078463108993770240028113530962959874253975218780361179882757361038620307283555180979966284630830547220751462934006861693700578084223104502423235861139247518256117054382319448099443202251101374282009804785142927417703500118176352884116360023208128394765876412904197319913474719712970785776360438332833549759678220324357069314505169895290581910103055003847669227558030710136023549974014247210465310136663552947539799493790027373741981606579944925241973456046401005669449622433733710630581422901131062190192219704249809339735014163109102034307209955679957578847587700785606678351416224638635357573888051435231258371236883238885064637086392178618322198907619062285894451990409750343005171259634027538278499183055797901555440570720211277281031905812811038109878686098794423315374771201929713221634527417263087580724733825367157689707747579724677397912028356836980484521386160957314464506973937440513337483538374202780260504057301393240634897374828700045926082836508188281026101350182998770231142908886880905683328083739653936196204038672256724235783884016808765080767811031009716694141113063465936542277924224896712879150441423069773852503724093149889692177181655350171546504785139275515374878330310267742280792242306829986709100320031081332675447143906526982218232560194311622281137459635031979606599292738351523901536387051207138269820933147687967968940536565615229290102188489350039159669152247326981046146443548159495507920740030173367693561480661037549646963850145651230077062094288105223003737398842425175631567241422064261167273364296112458363499997642708278907075587438371652784012185608929700831513782543153687938533869055463791531496561838620262479114274912153616618428978862160460000099890204511884958589398193827554621027567553648389587113465297235530125358757304444492029764010728816215884176601020935663730457151028662991476857451249028313526746179390281077285211574702545593939973727231105518597022586103811314369937847525538352668553215774159511522299799501449913712726273268936041661200863404352483654099439522918829086143180120679500754536776316528898370299244393310244695759619637324759768054051206054939321043295951849154191436559641570551679656828612018667143821750874493277040334786637628405117660104262092760004125120523881587334513603692574607245271334928574163455457477900213515242345368994681246209618923397957226299921136381871347352424689313734800155769556294670522769880926082433907284771320187173017774311985137724387572077799092871210230457492641485923603450750847607776243565462077475061929072377471350048679281919572813343755584961638054995476589494617316225335398384987486110273008797929939389733925585309891052457705981871199557420743919554649095444427086708359086678624278835432632848879280812147779861545985100161880989051090993432117376508131406942976139339151496770538703335003425865483389966044962711894440896894188552733150562486401016844872905634255622027926975551792085375625448698524840526167501633074322428280092893101508202447424692915957483811967285866076131606330542910925464193594477293607778735638523774259681331871808295556667226931540674078204339698378865722088951264681290393425963036779886791433531513526697785968270211420546030373645177944818946533882494589246798544801379295845950144759275037235438830681914118089182050958506690540500964523988399243744037128976240921011412039456126533900145933352483043055841186966809488857593472703341830650606047568706763090040906746561240520746383158306530490920266902801773277173333242436474992780291477415066306738403104972947958688239714196863253708309868707356193341262248778519168554036237341877528473600800336869351009527825821917856921469930072428374857375729767747264344661928945352154960364334406627814840698300247589476737887927343192725015691006771494070572228690324303232970722986375027309084027546755374919465450292514636587893137557949101208607038050885119994686246817984771996510902950620097879661606624852565111712686308036363607944750206636665137610182440709791270551049308660023957877710914464040266265523914800859408220926915114941982435533852163512709818900004531153470134514408921792177257694675017950955900045407096747542935764954914109053019432526981783484626095363318932646792873933406562491606528671157679901010297626729533611818558949601958640718457470333983298943731642677698287455316737550194858896884887203761723807758186418686315588969081278373840051868609955094376819240093611886806293963835819011941209607210034279860366417998785159875328731158063314051274514792010908237328128026906809477913648495434647458235283320812436473989097438375950264112060703279673463709522762714598454844191641681688198465833281440610585111402254822421163262869699542477403094190297455361785766041385640745579689084204381879086780011354642503503607250227609448273562829789446775043560861465856670644161566036255262674646605613754317580926999709803878806862360871196966506328600479333018500980260844818248428781943012901525435490368271431272646327328715690992444246003276124165301833489487904375592768980259813359206672110798967834214420619488532310218711568554671714469632643640085901973901290121288046158213093212800932323757377479927294414228881469736566523414981372738939235205632040628044320347962477450512903520284884313870373999576426324181800482541411514444759806237646722591538956509827443972204907892659064343057619374551757554020909038896640616407346905871917730197000937385704996428458540397170551884704719690406392917393968123829094594639445564166402422499700303255390002048084052624624407224562091235855142365356112475933841853011745363493721543700142544588743093821996593165525718851398556744843248994117927032775033638851665669789691480802874196895917977796513415041079976460335128667289385822201922477126253880681100392671368275092419724234607118900808423676036767625421595583512284418301295110919694962169628373299079840122494247794154690096975584048905942355101990562995411831446977378416345946725557087946154094293920666240023825396033406575337585324789719458007642329258173125819740971272392206354780115586968330367159887006001655562106770766281207283382871828451181905718305489294351780355622100620777348455817307639949621271247749906371571588456350101023586867183296037238059277363508018848159644891871372865527370896509511577292526496557724773637198636619215540009294442755132559835328698888166197996362576440152332562697523427933320465691159138704551390466096035338594617067556874651898952429698293485890117819749791355420247445071435763448759912875113868674029643893487607776697777769526382113726875847573042751990258403666449914471021931356681193302511344943982833070565838264579698887901519138182783552348233203607846862492597458874839413008057196189789048306564431083949613722507779122976965330243795690474905881151073934833339967856317699772396253709008838890683464939013040383098918237423621463190200918535947680378318629645538564439472343285269983182679088951625981355414433556817883112332530910759653123965681676571904853269717027550742358784717898384607652601046245141017492747037453848208324375301049004049912418728097342493376181158415824080769272344223701107894158564350957952773662313121939228634975709517138154741337231037360237151727722230164322841399454663128236138165184432385498493244012117410635523576570372494457651297535265446326608667979815786130516372374865305422009462024394476635898547865664101804430446713854537884822147181464863135900794890526685152573749948903957941949767062542754657347738391102333039132844606496073716216233015382913385616147650287198995646917434778984969413434143114147422447074804654825860959228297138793358742544059188392222786520899307205614954764183107210461282982329797420756110093131538998479668265837372065173544003075351824604450499764232242268985176003351342860991075797359918707402973888991457112246165954974207794753686506623993669812906072424692211859508878492502961496061276669576877116244083265777641368351428791440426789088633468958762464165764051118047046937218321891095737773145459021624873499394693073026379745927005215278278439727782570290186725623059821877938323952083269069127550331257162298449007103990647877292832135549541254576056495009361463273083315734990651917889823301421988764969383212621556667907128730625841778254533578261806810215672726649272235903080507738353386422619928522755325832326351111295387881342328867611579224382740085469676874159695642645405777874206459518986211917762686551943408880022936945126857379848331127650907497310014588327575594538435200221276325629417657996390685646671179538150856361846516214806984942180264775622200047431801147852506738743415235337988042039174087379613209897393170286493845403955939414243807597342362725236385077207892235363480886964729589417336554797822719108456497394410165199645813769703876005365069050774431041825332395335462369313915145036221268322225372436064805152462614960845940517512906821542741454912465675082774286408553291136326544539615671778926635761553657949583796236679909071470283170130749936467237943309722110546461649654966994394883334843725772159210418762674456908795729547774518621430644175470170965601843788663194132932776097641905783596106026941916951134209378608712192802809956524479607869234503316940587307585981510351768610200393538861016661861063488557575333440923863946158550655720902305436417381788373466149963692620504593899542875899988769229654672422933421862151512913281608632938186593140510648799368336945554736071871993827310973532584270925541332184825815883334766214950671509930574585609340780405243914870212667482401336173528071139314642775452560864092673870203043438643537079598672172409533457514774980169840601028042039547452307368470410446192489372696758065482174942129857573202336765199646140082214630258019278545682469169650826980839036070031980479814478499083063287976647751832320569378070777088481589788476766315272217426144812030975482784804967311672343980501246335355791188858545081371170510948610940926640287464874820702379492655227660463812269530851072037345052160192687068492990036165920389557691710899861413747088667067398206288589264402094314327148341729107502608943974323656014484611799869675073585038397001069497837583522723855790970033741477191544499340975696602221191958725301767553430397988511138140102735649966873022672429596679591629018202265057027670089830368631325222460761339699810793869621762114341908255852245253360271654418426641318694900303997392995829168291190881737737995978599916119318022420072714307551914094262893535165304645454447015818391359592695351943530607912787041600312286264210168105823126296886481103641714078386115144837062160271140971611942074807820310714617562141108393640420247443644708624167597902452467030519325531407436468142110590725814799878364711205496418113002223358534957938931303715365889524641299438674098516146327165124158487177375617834582646800093042360765694140060968707547297659984212240056360584032789826999492585638768036588358711630630748221031293161558037869501371692830197937284078158228368538387227962333714076622281428862674886295135730717112148370966040358076355444421385401506485459186033930354228848556490571645575418179740644214496432501226651604694243926199172134191628777134105762644217560002003105348128584950618758811027169273073084206356275280588097600097352032362368380824792741485636819706596971279944137408549259436474719884435390753117727955384637485531815756699741938574752890936434138500780920261311370856626035961023200427448911526457915084373433667933708925459425847091787773978548047379053591785269924801790857964658409086331585246477696824384755457355445181529849528865257686352340055203657855660917205530957566114748276197413893026217244112862500608928597571752085501480868818441294005909957978774486407406606739264482728967420362890918663033351542881579131085807638308210378907969878284463943777837350358138760428679406674017162514490806999738899933614115556148483074893954430531871270692158877785903607016417642779171174618226114334774387936514679223597520277056237037770248372900631005096334380711436102677859873972677992396294852118182438805373108221443292305850012404060986718808751101636860436931747543131464994679394013274456024540942571902360317137989546151432893717577799498899044951534934289927245169796053752578982302733434175884072782345383656945952898393649376230598478643401916560740485564671671546748316626244997120036425014045825974615050449368192092183503045012669001552007198382072175811160726344452812300618124757218413020199292001534851005811544696078408602407410181884853461865781801015428380590989785447635354392981440386596305150625612609350696928927726422985233960157510446296819630098306317485262044466916827039614550979700872590222393084958728471488321248288115088366506880484015095464282505486724566959734621097066556977125744969081152235065792956823662586548658714019899942290189235661835897153415153772077313931900516007836650810167049427877665033210482115851651188847307083517109784239420524233259821387965829600489189750047652289378628106354494273679530051197651177877523549280113543190627118827475307396392213624411319849118114759638273345215478152844410413133941367846025360159581034723823489856510762580319874577881656093445152298095069841370972281861480282774764589446530523020175713907175178134542484009435045080632343707850167279940338887710216966710211040750395175235757285059142488259903269088135093788275700973434520539805452750162401268696208400774850339240571415363931698898687934577097259077696739912078358183694692202285444043120538086345383016678587766291007063914978215325756546466923792738465185802736785420413805701617203629297974447670900695755076522482544433625924684764976523805416013045928684051763560500316800710577911236455638720603979728934793490859106358416851274373771035506513434549266002099365520975862365306103370079403012181323561295395421191622320635613079838029444475098605347955633567901114179066316122447697415811202616808171463231691204396158006517654004493888360960556916893426169256736271587505764028148354128543717364744681848205529334915540444593823954913456945875069671852754517985622457526929095483479008432087138509083110671722770559250621221281006101417367637383301462334411992725001612749730403227532049542402436185852643657544061218847618781904168101806904896993567750155264503485536908351477451046893307255212405991455897003073003484036468881154480860758584573063025684933649312945481361489451246520976428145339142283778675431999429388342940067375967974014951965188953591013253654307855352941059934899329859326829316038788918315454800168717096455703712085073212727945710221872992518932067325292787858562342406112778359513962652893612863270776654347639980101690569960903504623313486578646534760796070319791599558904031767478271285718427162320545799834529293150231967990701305576954834440626381092256091144547562032625785509718076265208094380574939314655615369534049385985133074470038639275382840035976919196212728931326721522933412162019367915449273121852986517973176010811383611805762907582618460099618740502272832735584181191069703926980352342614049216705193165417374618206901145812440889683232594114169793327893653598727986876619600041810624259752622967257453216600267375942974236507970327922422284409436813922015071377600597166045552748965905432816261340424292393026561953348769622128853270921936366035999916456619991569052829061584485817575340799365943625879004638406492783903805387004055672692475312089301621827014511252213316456493008025564011529538955005228540979627272322956086015570286120610708596739742512898324443135786045966527800766035667820375679044181272633957198796715791525121336256525766281085143174751577278349280438059080755579886663610964142764370998158496905814322031602898787103315161875976380472549136791155797350469005070997188701953697871287836808770856182191359405853665419754082936951252940481872375700907258125798155025571019080376094434833126087492064862539427990768383770036861627272756149194356113910306425632200105588732406959368560107864614187432254046370787476624167661603381608659440264674042822829772913228949158563233993246349744138362435637445023776785996018759041403771704727178157433799217446990736353677719032011406832894103308068909188565881806427600698737438825882874485574377224001298932993660662584389008188085510809186391124603410947640078041799012352377653543354406181225122054708430433699833603861355735698602346234300761719308783735117890797606597511688027559553813855230127412807866171325542403267937802516116273987209717570799259243444554775359445821905058873676054533548578966689080679744398813274244633598127379248973873569398253573915672910484117648549665526949292236365586743602231894544745992382907572885580339365332696197431134811509531486089746256696789199692680564616476999654277424378846696190801417898776189770122249881469708442923621746145447839650469869731391149871879831971132385487316183930243326820169772491281883915297517706921878825800213953616167390034452097720077478294750877235539962525569486729353614288286573912301038041441686461775296676105899666566804660241342500941123444232212535168450328847312535852410657470894949564731223908642865729432558803553052548685985810850923356979635129431462638274063097827116223590972932506571467079570101692823914818836159037338968120225727692357114492219443269764332833731658094998305278783192816510214897834497871653588304355118303065572590218163598820490101335142978584784512790866280481095104363773910117232595343195620400312490978238210738239402867010198492076840196560899538196415710202565537819012303035121952278078574899110841728545772326610070190111998507183421263289754791222183707725376374072386551082020388727388680280448824957244368276852202586208755765246501527356928601450622296641158072163853241146596038574100438575415308507993034715680950057804046209972686491550889027536403797004167372253194006429158077233897138954578768045347770025390794721535040757287585972985085283923515325762824361264841199539914999700097465406042363884979739141352262497563891887811030073858131000681048883283142966294175981053285884074430046997689845536578948226215006971834021007637199821407654308773214415260703974732791671959192677201511891053661861937376656526919306593687869797928642070071292278629376129793932148599438110925272897051358915188831564607699119030777106464573167556654402185173951823557061345711025530850090555765130201532382497884113688630786815584498469733440674339813397933782112267035807507422248982877087892556450676566375889449750173063450036964092516154885981586801542943419421528207719249785280085076713960324069287803128005326426524172316051454906077142667205104983455064410973020793355189175097443988310054418248878534407438144225021248814365950814995852369381508656309051132350243090489377419102272602088258124488649987598121879059662651162456273974627243709689054657675955231827350975782512891561194456958547892481367305389314642842205252709507214837665536426607925622670604047897361637290986181316216519285843616339251063984303566622448137578963430463583491261704016271222111911964363550905750127978755882094479902975134005560207095999964008881684195933429742014276523978621896625904497625032476417932110777094883895426848672823749908279737498385181186633466346951675872714809477080359139524732588901516260264384352667311202659898743158351786033461986015530645380266221134614621590708549384388233212599969979463073673974081764692118713023527144857492543597161462967764258685608491452166203711665782438559998213159869866323006934090333980339440713334872028301116852991102736140336768066709291284076038157327432510539537366136526160205436055118689197004739840253771709769497643323552824797593450622386823166913335823245425353292552563233739258178870901360585464380926184496276902041251799477792877890399366654085160615887827980479222944717246612490521051713536417486886238595824500697794652470860839512927493756492955933079342420005531849429761696188431682468632120116909448517097166046127999922041040855591724851099881565476613703233998438554155492726342210520199987892513347672780857612689255007149910912883088919089884521278313003452295839863587130305690015778362278337785709292361079986079713719369042444689828233856958094466295906305826647596297519962192043577680207489158852070857986605691921608505474813069106655783694464924127587332182867245459551690985326071745339436235633145887524342721604710769054683871698957502631429431195085981866500208457457864627562929593248885506672120360963954080656979437927532740669451168186947075457318174373506539305940597327211015749281190030244571705952713811991216058256007211686802704453188230420612886736346253059232386810492522312537002209435601160468652242592624652476385881594585874820174274242098082682724188881590592630647569672080872833023027300067888878245182692202830386303677569511849014310362728015083574407348538696568217975594351307121784181749595355598746294839092132132376302906198347715883515760264011938051300798750737645528678533666071220125683894360152521488729326220769230531656635244980112416410082658330938454323153391134690322194445617104490428088738453801655168593486066886158069000553886658508453337700488282241157562450733593025888757316408000407871475058846312579266031389386777849837756710876349759652524040716957634661965967539174599790597021704730574100466434133787208699739986797085710734743256894339780270526298949138699964852435327636480477245420853454357971751884595472795818135036316564107569102386407394870594879323257868428787694691301539193780739715497611596115888112453120591348276305928099919102222820449807801871398658492309676268084816002283936136053266032348466505862054438895045506917066925879888133980243293805183120300554259636388600917438063390488998123877414527326277849174158071006086492798761836604706570606895663210523893985157934631930779909535048316815233253180277215547473621591277566378666613572684039509991410043674319263490372378661186912385985353116095544864043803272575168615459624126179715408377904518399888107026670022917824962190369954595758730031296863097891608151087278482028120267453349071565585669625962553739130822792337485869872980147648947390759462075192156177745759719635795686273665754167029980318839545284970785352067456269722416030120609576713380277845119631036766550978427940961314237027662384187888642703595643953852111786193499756700027357298833011144167366453241634560591563836849850356189205516121884789971802092383322171032097197862980531200642392808251243853061593557730498477995318379611516523482314439712469550588263865131028656754963235424562288027591647135407953723199081562178794288145226028876102452064183374283681213678605688242302724228121642992156778462772770619411327979759830961618445642727497542497761570098586614371963866793698479809947130952722443844128866129000985240740965730189074175039180672214769035920527260055522893516721564432991569351859286523775272611506437119059795171061451114114521345888584509152221048712816439365772140637011164646226493693578609148620920074396838889281620246505748576837997584117241351718791447959636736500984538096259845730009868619153003855457477036621852513107484922125794162068667246500174932201891547709280638125779860803130889668995064017021534311677361973301047705146052524726380962826376154451980700357480651660334097739109563060383812578118797227597648853841353849353057670631550816632841630487794849017306188837038798110265803686367041815650367582399665284215488071595347229975922920549629925864205058753615821066762134341263966904587116171642115173015796630385002929137644548467765124730821844134735842921371760193917390945274791087200294360802324465702841858953259470581373798731083982280416010185868610641076585056435087451556451752569939405274920988813101292130154557398939181401426238986948152125741889129687051427007474964435310949560781567280413604281428751270495199991164561321190642770302829207513618202143681124005906187261428862880990875152141996595534496198774219135968332613352631220638053123709033445946096493169993070258975982085632205176958484406174840344091060871789538960625707439984660273757811157104633217582464253141403190854392799287498266168725934307462046914304265417258896089742050119159941229667888390866744403910176758492908689414524365905443057276283262795691545568520167402316223542143660155400262625779882426325554325404119787637360259617430931096122600148380714279987705232154684852677702629876783718501293012842733887896287053032479232223600390660298298443705338657134779548212786476839021424298926473393795408622452190314638387664340275187647564615398877159190731121045711048601876932710251838001165456811083059221062497625669462129751828287968564242260071848929773506064746964835876426941092313218159086092180010224039053216829693887387220184656612998733814072832715867731360588170968942510980598436529862208482826361194294768504305795154130389192301080969424134948668377216023700259528655566926774161304133992439794300556049581682940723743817417741891459222112796286719919214488663778868314073919692328831271996692992101921239600326445785154492473035618112106668354190004412282015625981620056495041936825968772549441543530129619365468557256339316216267782429756359490429765282505941400358501683917675307114825911996155916608572132477889531691716049359226077873451669686674065259207097872052323394629978690832477586903117587863597072999784811161466815973240734761132580277634725878146220494669886408976806011288990972714624192927056010845199789033688213457753655286222639700959845576321506577420238234134269246457431028438019546218648115302868962702822418974601944891476221042647461996929906363896340313448501258602267072308974884881716044731541686914817307368694155282001918915426452757056710474132119515049868784589296650464992918423632443246697952480835697754800830665072613160699276865954302853292199010410396878905515415620997152596365831723863425917076987404498249572931365219372685029046792172504094429473533549804060305747412214164093856678432565591209277547198814965419356267878855907575690580854933712577770438415299293615168684937731269985131064797304853735884763083541068729758939044296548861042877214261557114861055944694889911521139058641648167422015577317473449367998654917504938388240487816724255814634319773850209751714188032409880106450243354224809151676122143237199830544648752443575688758897071297875306034925374163393630020193724865001535018872495634235288757286919799112160496929437136961437424215391871429056891996531714221940415937683137038284311977191380177879866407051048732643395760101528810544794373963362766981035189270868709975329725988589297284945673864921654567912112363759429229110189372898500867636477165945101258559814170003952717507406476497473048437055156326896849278427444260746103480023312788167929403800239663213897250000168593426438686297859883401368645110833210787306046085658285547229830092607979504797764300250543272597569027644875461915731265882402895622047150006729350005327920776138112716061760758032531228729478750154234880136254092040279137448543317440170252022238797624906611886536381217090228384708188946746709565710120209666318656315340021060707411942318667873267813208697962321242483783708511365114908911456023478346102662746735522335121175974882283766487828501420935293938791322442267595275675168555079160516596096237574292108596738363645341262159589029702041929743978372592625473381449664024331445774750877921496913176526814736130206920249932480117562927925070208306502042801000318237239455803891138621667452022330179134923856074226354511842118347124262899309125958758996669244885180877427785585053706639674318663223830478805953228830049080363109909228000761181936426631009202445758079263414871951486112606898642169355489375466312975463772409008025519506421553657292446036271541145489875157656720100258632191795445533511517555729760869165494694257963235743267911868776675135352681728347805698742950708206512828275437532284755154591069169741013830306208537325250863875577773695448740014819281703749200382942323145637064129338751493131892635639326839226314256651016602106648282856414393370689721268470507322132536779958348602423062379021266646336340973357422764795798201980732000229085538718052781310794749139045191905919872970884919888863604198986017542886730137295465769365034151361052164481829332129221586286225032751374261686990515987053529280002417760932444755680375648389352303214219989620022945792888726289549795769734983335909926699208323050353392290442327867315307910645055193231912874411033834672732855291878934357815696712538718682032685820466323930178421406265439179629157878908618022784981428822182409602930023081982768829333459109508597139762133568228756718631539347574529206662189505364115095810546255481314367601561343583343867424010905234162092232392988616394986791272067835155385729691009002454886512182984121685039015103368921023258218845085849574131109183928090283128446770376512189475143128348216118979353096282822400720409504248759317905171139705090768033652762553683406165281558795705776769898807995471887035076891756160421620548191311989127237248161515841678135660425935792667862393595124451964493118382275561318902870276974715076633663387315667034424364834831196397347112498885658082520400350981787225570029862335323817302593512993932008353003794129380957985425667226089181132507961313009480328555498909767631725407592073395690431159065084955003612624043001273782267068934716933942052110851873150877819000071855134411353296982727111755072747114073575726110473471473126051357496340608334868676187112976380563394087980265614918067312867981197999829031892467163301358536088599400368477542985760882714515631305359411683319909474489871122888959114184683037762184718694405179215206325722685806540900571437264021700647149907627687841013242988797419984802093193848786252975340467030631916365955458660979794126153032233910094207412064005526108398022999223182356018009644501363734351160086995169003807331602362138651339646530703018809050297604221503558157035168215273908029668585336726188328156815076418325853079709583952458511980371214275490776135422230627197082761905509703793190336564581882347617719386627804924434572034420731925751658049909474295824551340474088402986143820383216085864486329264827947652918921782304190609528265600529897899373729936012326685727816421851244282119003711651141749816408950801700959364067308628572871990642198070478445831068163610892610701075163785349331784061552333301563412827305574797540009959803257680119832823503699785363388773409644625386757440483690315096551980983479845000137266801018484166251229475584298588137017761429344662571176788954896732564721747796335110358853293013890676670001782908700016912377165715678211360083313296017247627937975876457053861564854055854640647841405126646932751619790890352201147459318473293158998502243640429401501555517848540603597887819604734626009616843657701735103756157020504086634308600629791088188717602262160319825283500555682939810653759214187562835355100698031926750207142823901802454504542384079471852843619537054911288897122183652589877838646517056516794206827417588816556880625782079464972955436246293273117623812111952443384621194534399145295075997639919911959142792467935616454390944529661623502898441640540547929414809654449240781968011313044047965298559329671454709209848223115138706208313005756852388042533744037945674258746100231586315983589098310824174907682940672657105377588929994066899094935429374259479166377644245651575335201041684952707805525509695645527116365949630637688570982995711408198110645849095772179373239504976544718050026293487541399134108191462102096132630074792508684982928295351683889251878805221087092711401599485207732414614490688280166000151698190965512548116739003959966112877226032454349518384225758865607635235092519144400760819105292468453633719403354168633899156125930601394701407532066512785581540514109920647080217864414941161688717100281407882109199932938002755758995155955619900686644400182914581185064587460587485839330573976705948143994069139587205454157713217755134242121124190551992664614464817752392214416842562353895692504607468392426669769310803117861742310261724832918755391898139636650373291182261919639194211429189107350330942154506703137599760177991652036362199963735120771967782608586978304989111058624768961745267178508096568552533455034736755627804185059792447157596692404434913582899250879130509610226399425189911397810058569412583844017071357057179341757270544962872420040319398242947703392377827294305998210535479195472768746166564584911711762885495279853173395295478746368471665388516413040282354828541637916640709629162872412512255435562226834217231837876651568782483061896083561315464350723263741644449424879537489380326015526586573813840848990636220241020936801903743345984904059922684577165138502281136272432064828177930010902015267527018680395521317462240013510942308906326370899775120396952591766774609055875017168545737940240444615749247229111099753381641526251145671891893758130664324624160596823836393407162676138325916554705311907209353097665082458969844841953978785546961332925449730831785824447807006784188428130255213464256654404022923298629608986290524496899516238570538417251545232617066351823080104090445930515446967524730859072131938667247306096111826321288164831908002844857897028082844169864081453865425732912566452623740661251173474091099758295972937965674837543605936359483940926784908311916081937919234772148129929882967754128689804209853788859791347110832729234406595318616304710691104741282117422290766632116123997074463650392966642974659304483089896660951312487673764845177572761876055798933033501814555127484898838134243646709359196241522718251139120516690980567918467847226966494622810800639365203863642017786251379878651750441005214368122428289368034227099233059631417620958938056614415696918445787077445399516461995988906092051207118653586169295905397853502515946480991968260516309990276992828511330827958037689407733654666386605053997581759783339753359348660492116509450347500222557905609178906024018488087987398156562256051412620618114233714334159654013891995155716053832797278110729108761737274378131624741982003243209775950233533738673455965212182065931512477926160160608401147685946268010915090515123880217226752112501447250472790492135302724903263757586926873294286522110131918568534152181968421000363497893205908967778283199966676453296925765750845053042897784492922712393330400825107584838074248203894484625019919088032433484430412886964330723362866938583909579940658605568514567661659980607770501093990624509263173889662235305499997747176295071994963073645738150240394240098347816550784614082828371724617760195278757376813945921699669929575028539466023893967641611488744881241093755767041881929783901976820224477078434868840329984698290461148349987174824600568755817948379150383885975727889597664876790966460118069864160194189983613468529930444861990040929289543365547689694413183623458489042351332629491668053613771868061821981270183967615293053846983056228000689323826188568830396657946116477266301004779844225201363653623082944005969105897261193302199093799682109938717674851408102519100151453415352593034390510778384855968095644005328000692231142082976337056417284820132515171656894150557522125099107500605652474668170926391917861808729093509653027838188224997695135576599186838770556957433897497196795742069704255643787851661322901154072879848383099439413895002341078992093485241757387210671778152498673833606991593778735100467501543951406088615194740853563929948766663904730440391549728035888366023699484070639111860783904436749156626670491933880425262664056813695160750305859209010907362033307624300519958890072243168340759913535910920022948818947759684564397408963066463209937237801210779897015229792227215720409185237661842180429641052373547202120452264976388064085487319623451028909803024297384012517101197503658628672392237459611670938435634611707669088019149711423357750706420411027681507662439845794682209229923093955993808224157480298629249210495045382881369992364789758885969756687223952497765098242526487285433469387532627786849827775701783257093648348006287984181598107019226178694033741638400812404255071939139651826035899560164195969705030391422960662636892617217159871251834677416580530227253612485870011836945743933795031326325312314839072765654166076506500203117994815416618322214232273649450318112493762543597459157667656895719623205197809177862440624181923419025834362836150391664712401751834407702145319154748226353894897025334932647521809307162682701837469385807154216499472075936632892096838207808525725772762290145604910932151603742968128574430752155767725395491069123614202759420263201584424365507118107916623174542721865218413913159285079589784529901385485730330634764610489636422933129903725900597928085865244414645147789907747851262791493042287338478326801576805363970591036193213651335135160537844885270471047047930441323199821209758585093671886622644914825546317850418832097932236786102582630731624091448771196633209756350467159861351109888660337759471823159421113391496915314891198079720068182824564135201142702000487824894747581234382631699031770944722102530047869230752069680521132682862107950290387006619729692328861432886666506104234321648192936105130105160805274309824144530315764736045527062915654163277503508321673741365258376929780684517197978759064526805656217836239680355715202051000825821984071621794416776911363381115679172502726767361561054775136658072845430911887191215283844587306472333830332495775762745603129905627365967306411246830028388705655041491269618791352459144876604923088668034469677526878595720922594695960834692870046899808351977768799489159539900792189996817118773259901123848857963769468724684151990543647944422797907994295030316745909721690532189588665412894137552828900652468574619025038870076386203583606780081996972393483995796945566970186720511266347227460424120133737748079485680043280603571810366400658177418897252167106327524569579617310985970683872231918306943526251119705536076326979648652665937456996987274654445554641827412865819531181554611678685531407236791511460110220983247151539033202731866021300248387333377414125895019037555507025237206976606006134990767046491055805533423993197234830763397003099775002135555917734118867875357597516868840271720169265101682817538384272985987099912440878441890423982886856294918333494480105525065684938424075552836093488397849574226810260866373150400252895840101843719539890065052462162028907949389621308497837993767531239856448682813480719701509017353948563532546947863554773590041141033592984164559346666247690768926690583197307962738191473213859215152297260989873999038053705128231732588108095271587280807746086582110971541436462881216978993997588779072054502651651349396790791113041302217543422672396203213575213861548309101050888174980956803569804356742961648556662350071153597225527070936040081288697009688685334621259652276888846218367114409581028424697172375140949674375785500524258625403502632468470669735111868575987755605158066278076443619971198392119233282853824773139407383433830894817435403688877145156172670933148471290609817161166280219916636078180687180032610782224046709039997137707722534267889980996882277958033573522572959433423745640285225176254672905471407714690410889792491904084777786055292635828570760200605479751790835233117194404284295049726805751467066997989275895535052305866726967334864465946744592559748591276819703909392783462912413241936409858486536853946585578108507058671015874263812082051853654038224294294777046110936178353192614886265191006038769693798412936751901856033064118399172770033872134028777370109936137437129178959899460312242543165339409850663646572699600576821457070081122872622156721731735870864402334315529148579067605198080557402324398591894193427782352356471547677857320761836699868111311489799889391538080325381080810200048527382454722763857916394829445252400538579123180478192387870951782671592092435048517425229799779571999876846405238267010355238959625973725708465004135150486575266332198373277582623247129900932907365778465155083906441823468048477499821635189122134474160620366703768984225341873223451840367397148265838038538978634542792581636807537635589045475855772760986480177942639454349467964230004238492113224429603541145107083170311737793463524017319792922743701176533283690582096553604718632432071915427513574897221220054324166416475081270324715040400420983048378720858119799585221926888159677476360257445061793241951240906844115283183282375286254317017656229710044213303905964721159134006981972170203601581439169300107955425545684746330650225729105010831958038628438762008430686129440916993803932186614096649095158362571158609441195826802341790252803263417753886174378722260948783329158011982421373570013361779733656467762885001339073093319354959430113622757091455741718688350526405150600558325715367302510334022493714617888712039999133682439887992735646463608681343415635471820287892362587651336428466046218980838321161554817004359662665536491608333615859420779357516192756765012391806938613876782465460217171152516930832737364038508086771781167287072140138151701967078224353733165735394727415668782785604309903702657041592795933120237812774463851069830217684369528269508915361091909445505413059139226597234365970601639149755818667269044847323746028371163914890262202377365750468782758787447568550816456679475986082806493680799708274549887342767583078238342595413703857930627991364305685472476831814389277529739551850670107828627483225298098142715513105074603279124360235336617667089860982306455589106713717232731205984605519823454011952450713632872483556394775627629086616010376258015352047116591155026604338914874388644441926303779564193536972457204776913697236851313166190651823103834796561309058471363943320253640002231890807279306192942189356466239066000174504642497646605362417568369858765659509620068637858084062148525303257026114686646339896107169074348750456962936101843052288228008922858898106301215764954229957262348724592097471013676383932101026885684488446928956200694903939643561834338089945825945408265042203621035938447300295851197219120912202983371158686115690175797272845675316112811393858592312434190277004965421150010912478361558036160937439808640894284148534060434325698583050732499088032245525906128864057238447867906005619558569805717192327005506242751706511575940296187542215856344143499466065937787780679751110255010633094358448741785777686853878813057697173863770057632217702741329479441327701849791653648924347745773360299216485531448871724972751868400518083681433940661897974998196948452891987793957520820374343988212991708573830562301551932695170328364086114597383843844036119636690335694561527456275202482659058870716684247816141049684600917408565615307702405743630727345470098711041344925255912642457345195217884973546639960425886552397379637351792650222100975258130829056377502057962582918400657208956026008596842740031216816051822436824409841722840118705871847142780053019443754135491467427932735422065572079884829881546238388788147188115730422700283395281408032028443472480183818285971052071653287154162377559295801769606897616827657638266353882719830870589119403911133723525585357006399003575748823023283720234372303123470929189830240599302575871342976170631345643874197599038108397983245960334330318924044872031322726103239057058499893504314556574667413754401894548176145093208953043450766385270022403253112351829406618977492253164390700130619429828221703383372513076252235840669262678014735247486901861833632630745112020829855297133093072289558302865865789984783967560519059247231486820339636202251774179625835580522363461982105201442858373043584187426069462350130130410129418673129824389431944109180683344846353137613841390693078030728744875788935205114204562155247253000695225487422486512874506890981702612241401106111364789877904953318193695084045595620450107211408236472439438712818338543883502449334933389549325210607928462709379351121965639568742213255811205839335020733089238868526317203123150274094093139299493649459493849572197343218054562271160006650492049810953883915545613674845105540380471035850760084667555756034272352486245792735217308311544469151300350403208985485479376551996143926368878524228115121984757768618256169928532332441518318369960191130054557343077829823236095072845946862929017829725778434556511367920274983438805241808238283033325383885900979381428510936055112772479926650734239642391484822010047421458388942893402105387380490847327213336852095796923611390933169000687624155167605143260867036339755788594502612663765602571259014488452896227242094533171221317980118437931560477964406762023064897914533554522713423035654339509873689757498870115371922842311456110165731027762158319817837467320231668059721564974646700195661497625913128269951810894415988156002366830824334003447570067734566087242956550090137262256494034543427329050971478381871190659110525327943091450805635488492438506890036811852083583329275018460323049611251002586334752072531450059738965595668426393534061506087705562435409516250086344879492982008234374777283841335848711492516225851220988946034411118290821797817479105773186688001760156988619991016414481073358341084105170692989631400117337403530121813568891671101959629848611308166646881836100606393921734934794766061094850472194635569351506326916029259941684249138400412946131550160170965583441870688169736947240139814601116038607451111476553065925532744198308348655253721119764070767027275911688620049160865868123720101546367953337380681723875091320775862683560882886313136535679235666900550561507354834761485438064278217848764635161483512859236622514694776729887196837663180837709227725275100573621635058465267447129676451588063738451779675345850194959558611727256431679388240626312279706434071132476378673573351145347982100821208756387028748680375003180047437748081444180478282974264508061278787300518938593980875022665489500820664919778131399003755248444847252180108603572513896499975845472412197296849150887733668969682749796135092349721990264287149969631588191152762122122396413849123826311250050637550882037844104032822984987372372214855848782948824061476504278700721321003659731027613434605217898516266199423583773813542326118600014493604079458179661527109222544502486368577809454223018194985781718756951532638915432778759336281431336004024477889332339612232393990440016682640832256285423148590683579829221477504384010716397401768357642384034031461988197271231102214187026410391686922300749063231004741965104134865393978377641330549530295861570726886068518965062908727800771392646746142276616547542705256078428022894427702881366044917871966333912468592676122185768058247945792755372325113351398047813163240435589687202144282318579452524012505535677881779951045834287046035045914415501573153558861293490253312858633602637007528375171118838442676319446829887762591591959011726346756394113552452757548682923639745530428568363336834692215824189623546169773145439908936426946237583001770778189769956297457360239075760617151232221121101386258835817776964617709532159094570301814523574474840046502286759389556470438776244300552246937269049620734932286981591001107985004811455295131881642614158910475709517455996340491101344198331128852273537244187322132966899179636153447952761314584718765917815698051084321533399196196486819814821942644521877486103830357146840328413526422915651590230439678392610911954340503688169006651669211002038453620591390762306251579841491056414221410055827068759071350364431185554931786699945111180154655829332478921843638991457326519543746271293724736027570205510258518230295086672717042508155576958374724089101862205110742572431229837062008820402606336827403004621585992263878991543335438036531168391871201268354591290206462011981511833438527249125549120864249105111813634785217870273562695652328797993208501078799387053122573158789385022781788078490716144336011395012355622373406836715984496042807743421980842815092485993344551011752774180678940820793313301635474742618971056606648715663072786433756779662238054408314992038356764256565111916242925213385624078470928226842359951254291672501084626253154714504179353369953416828859700234661331495134275582491646189344896301650204549695479050221462137415467941415997327504073272526629180987984227931741472389406651130120040012556306178272338709257462886518515548822326110353390530947740481181130824981402296393026842156739646865564383512851283520239124258066187780197813932778785850460101551903096339473063084969016865012370368709422735742650729629857970633145782318437186754560411826535759879398771052143595681567935440805261181251674363216677135143525257260155663848714687674764637393532341858863934206808413272130851326704218248203717380747229805909155113454419754230542450235369543935221617572054304861549288990173213787974204615833946360259032873939782219014782454243812923880670979713596239455845426938770192625176668131436930121376870157369981530169805431021166270445405624280928395001112132929803234396908155623816299818736201238252820705413867069061848534978271076366415866278337290095735518752890814848232226147932966529773349287130981576455134284249932302212943662619207738719315002559697395587111194960101462776354077687235261705813232244982699862590368652878847232460201382825935301392467136761226768643113895396692593437989813961754522199752637194484844042966695539437412409369736068902828972976074690124361337708213282214829412967160241437567431015140944869603008075593811321537133989048070352278285045317915526690132100030084946928070040882306759541897905515784838279047441472610053089905512258755876459126808374729876852549376559628292058931143503429835317965981771576734786402806839517115800303135481934303989031809453701550198033731880245224094948632607993073757211550406237842102753442120806648365596934078126467456064978121434443121209715965019836145280274901539874953734113420387990925328443033436398949629923913643975537688966523154909894884358595483590512972614150002846067764408160124929879581964095866632902688643757496541145032502523984431212412378434843308706808979991429124117334971411138599465898384143919992158524623310653283591398897873698808585090952753259778341491418903990252668796162143688152859364976157896980214664431783910201900416312643913653862811802352072481846792575299018756621624386432053956100061901343626478579257168094643467502978172144963318955789002936445759523433005510581861877334186191644647802964076965933956538897639653613781914733858552395941562540118625856812736937967841630082593736952083916816218822467055094543738676043807998017052147764123677794119682453043970900633780352342830633061053290869141168667487434290674505642425456317389963501022318759935827526344933601440759843366268603493585362438175710749859941741076854993819596875388821120944310776916136478990435425987838141117054496821044378998821231207475536138410654113257304035013116995884764494184361948540919164371077569389542453709526227557643549899933635040995093697108353259230622662528583288885107837761639323408983955926932507819839362778481645317290535838847289114427253296272557789828256734081755720670856054782172096851006126994890419528557398845801947076961323239141068020440482181279832220825268310529336954031228970399577539428699281210083476906167130510134019805187763687032622487974463922961884732665409193333339635187791179333807509027140341927952262851105507261772956257867690736671698773027366900225637280762913238752680910635018068001692935671694584366431101992413277936607600260507658930032596254283012334730448895210621255265105475057836060823181552013012501404441129064349701952719899266713750474430299875897774875588213851371997457069337129565150081275268389811976589748723671174433085456046497434859903962064361475870385635984686908329977262982018530835803845966619028460644520214940786028528386581253418239033142093013951343649973193749737648489237348106371715373496978020239971741494453155125493678969788663405467131757308817180547356597236001787788804900296839160688339847654911439234471415094324135710982960112930706584146675891601202082839892442673186425859514223164716105661541338033887532160114119774564684992023228927381752714955599733528838735110637676318139361117681082902927575253086074361564590340533182552639388096206909981953794007004415007313736717208579972163936471173811859997334057535932908368862576835868612257013003155193764293708890635234472467706223564647871523138006308763667952457202421137931984145661244460900282230358626331293225850862497944089573737543831152369092019718804575223734374459396859532121760911509774541451272039628220287679587363094092506999539145814751920995213835143896226562470989629879617267675242677589023431354890974049160067120501772779507349744265270030695744677568420082692121560078595179429311580426781388782239983257396626866440725280498998262414801580484624439505711653113308337952707588905411008637567969841747879722157610683890312616776525663025504219373052817863988550428486093491483313465590924877562895547790560305045582575271560341670138468250234625214308233651886258040923708325666585485991283570255651955797535375403325458503470793695947121184426544363551091916364555280015793267427650903835508895829393526999534520169252122912104056758352713719158552724710975108874850299800800651512832427425581207988537374186089908479606304107878472997499672459612953143691003919343201182277399253101294200801520796017930582792519059982293067793472722824587743613794696747512123142802778993977591962921189512943950660543293772953025490378075255911089114743558328639574735529587054218341963147477122972782410950765731284887435753538175038197695529125700827546760963921107025341145106805550810264549087406010399245970561109875019001892989614733053151186757536703480579644163842913094644493260420594968551004362667359987931881063463607379713643843977122049059066505797641415029569622673593200619324589640684186621649229579687802920070765868313490999596962394246807806929578186844423059496028044513014575945657770568699138269742116423749595938795356048703254773278071210735365044476955767682600327024083150302738563715547631866722694353536718238535644982534504355290796492377901804638545506578414184813565956517594874108090972497341468725400397107374627770670729977922718053521995682704574839362429589832659193536765763786901451116193422598411569327956949036594987606552871697444714111963830220412320900220760416903047350423217124906031619895110645092455582710591708010975827248173412672664296948892688170124659422890545642384835046217628263015267278576607873727928897832400987598257389612989451682750100635716771884687048881031423227882169964367710920409268772459510360642037650172180814130453583397369968090371441525590412375108484745819596670918906289198910052006043199580920319162815340123432851027630587364907363686304609525408514998068997970957965023562715754842917893812823318785768169622509313386410685171588869465551156103064568154269398222691817315190201359112223210159700652243617633586307465230391174209458514294115942461114020961189599215634676505496783196590639594376073165940711000571517992523148279321056182438265377358098706585699778836859342410698383757207829927865724811556834626349781534884059117995160920766490810059849074605851623503991188019220403783188083521003520391979197124971102880492572163809904755296977497623223971189050938931571807181120873272068019349211407386406946022369698677673364974176771375601481105110498278981047367418137520322876714207681213251215808376057432920379484134903311804494679417667948987806455036796243318357789127922274783403418881339365980080801512227905913582222365093395240103318624692380410698514051351786246449372831581016998212838682126590321763634693190360004448599994190590002408142719727667115125714170423225361110919151405900017266634602375206093993094184650168623043004275930083887512360565955932513154747958173464089242850300608792329088737695578472027955877104847963683385152843097506271288861716074665268876960217278996340377944778473798601534570531036458564321179154499686471779523278670778582045173800571790928624047695618617087069505338429084773599689853111781070965215051314399921682942487778817888239325490574998694494310813540883688362867086669426964646728772071329108738353964372241304989484248395620869592940997161344200082711314445514023982038757413370761718511837619668694044074229104884263213187147839687289413128910629598860914933825490064135494397508958803896656921657465470065502305802069847318238401553787904443388110386980699087620819558482464401622897557128140625414760933592641828103654261327612394012854155670458781215140867821414223133296528891196687500642180269033007411979497617469424501239510446312539037491064463342730580956322392732396073148470196183681413448269558062645712369622311494555258079257153933436248272323765114961275747930994925223894314516629847600081833469852746801081230381139210233327393916787645490918871988403355505950460134390889422632296610184903163511119731546269007475523561555137084689212565656991875355011826514121141977552630415796312072196050425808134633443292163894942704325550456408022846528057445094205206479007214629781472317888166420675621592262410757116227057676419942995165184601375558627121134566921738009945689428821235541671427487959227526411303766172290538628921633232984058038230285811218934362951580309183989976386360393963194918996999731290867527268872068541339786921556389460705372347083831991197744043247483558616616698116121242188117400341495324913664761994928692050587141429838303037025561197488833530867098075539076317971601328973463828282812773046927764128648882683553478489194484751083712508115881669447749943958432709686988261087907320024725147218650038556341762458659307792498527654795142965627572980620378655256694130236838750394661116105277203280918317088848661344724802425967825194821197869110096815685744023328180605206096249364886842891998465833351672798401253357709773309055526806427437592115102894995390458530521823621703925992590974502745357543996132614572830291202729412964774175948258229433657692250512855919500331068644165139538992253600365137087622787818041091257225593118385337398045078989238425986872107507398928623009604113728655711756632131143282138139923099083516805950769295102348032285698952364696000407708403437777390790210093396756593300261974186123903674357613815800500639075069030640146682599380446296827128027185061517137521293667250286861386583854034556462537627704945194940943376999016405681058674494421233896601693752594770187231185093570715136943767912965359939975394377367734162980716011334960444042905101342756031055522394089365315651324057748171004569389257006315636377934180339015632640676735067976449486526785486800911276920562912577673550231864452500673564220803080462315852815162480942261662676570699347144433307575502645267143726134775307167187233165556520964889499748209726889777272947328538648012027650124195593897771079777659812917896769248016763125628692478210508405448546470346995817127959107734828357433195645103976169980436712191187335260274677894366617225694832078550690840827434815553568813309244167460867058915736203316462985610780774739752037878217850258096202787043847279782164977643187374896891180587701723019455702822682596402206863164125304630424860093319886019030882930679911877490024973646866783277585576190857207189128382081075120066326362905451410705535533102697984632913596942885756809496441623168593637285038904959266642582158114736594071627569348492654836398417172010870312081661492105290299455374410080133790863934280524947476570978217003936750925181470164040241238245608226097321569536426628896982059885232046625586866861581487539871362915912053154816534841418999640225235403584588913347189350215113529357274946555687670726088518686310638308738546151958988544926972885062545307784694114530667782636173630672978723532252147198480084353353927007457384406450269045468642159977027335641289943766737928245079146702107189270958239366876149019504738624390276231978313673807757034033490084391208059490164380976793539773933841124391784400915071850657150410269947161618923055870315719669015105420645869918872798980017961928585400962751200871826141635575538070313513331836516174634233225862069506765015628094762629950732751744205983061395923654439864153961147287618590944529004227870449802908555949058997766882015788109094102487443649296556934550417071674328589598774416857419661782439314511976425762808744554876659038510331120915225037882346453854420972911850286288840520374793102569747467411818134838382190499555146506344837083325357363739870952007075552395768151697011830498513366020851618782724962488379043289256779332375852629901101060856650534821098221796587887758802256139404557129101185850909038790155880356769288072281258316305150284918580329330113033576222392939689181153641402673261914691544803491203784988877038262684662167601288736678659160053939346358162084287160648416224158393386108038738286333564182144710800513307583703649718846183902224807404240736963452906649518957584338860458850173246442388668580610840221480446715024772843918650966316862804306255600196720832830870082605470957178930819202236278259922783032419253916130725225592215795652571303229277724651181077217842304783568109637884685563557773304904823478604313946165334384760050639601347196948398777548814186218944438474377672852473497315146090889763759714124483782813770970022987388825679548843892441551521649858421842310352945607153248890393912831090722143836666313475223539089893252429490801899691795113481425129303247413661952480857868874078784293351771511706704971653144063645381364593333671546667105908951462213428766300781835747631621431159071016152447529585937483220091688316380424454134604152849833371216291515656222837504151947196407180402639727020675959857200385658569177206654891656899979476072446437114443263294570927521200368265372718713665616006815859718720138479228720281229711325459930053836240901867104567898455318759568890203405077534870250267326960216341239087711409304376394561940207575957214035012617864102702569083285206456473550130282232558095870531350574523519789989675664737044234610240019831151503154835482025094186039653784368231208755941209770890048906898608955280127153653769285308810593421424767791544584798351538268531963376680826690567397874252623173938521763408727757231870923614963576368505812530829812177369096129016375532111044820320122524883572242495589380365582650017456239856185633499702982305699906577780676023927647965776509417726768038638466302598263437287926542308236185490364123885505712540554481986428706228605844392106026125833217347165333481372874493749754793901640453366467414276957730792243003860980956345502224672982300307932833449995495067601815830088197507881200295717086936402430661385863103279474504177513832537723756748407509139675861051872880202883678751614672400540539910299985794532190379431396939992798437799254396651670876763195775532912938199782075489823395780553575337800197249142025597362744491024234125460926886002266880586631602665226083816576075569889091370836627600812643279564996798353163160247347158274289204801893289322139863559422581022129776784374946762307717851763976005555875310105122488274687734742937792087879795910722408644044210004418005734765698812944092672424529536083952682156894254819875757001972146588673549396240872646498521675388062029061668286479527628988095615640854202873955464197850829280144260388075105481617285525196940076754603061157033053632684182678018585249172740238391292464134269929411667789044835784430113137248636128526559248085936371227689030383169336546461682553654894636346308021550769150003250977269054143514079829684347242545759670143773498958643779890505159078550580635043582870906640293893556675786572210013851537358171125787379462398086197951991819846439726708892745480524643745878476339396023662761270845544905788070884094219680963615699871301467863756937680451759254865126662805335066700187809637396222031587056578020546297154090726448607150878052290439595765467900914184131916019846626500653556078705218760435542986434832089874090083034590816865578864589736782774468888276713731791138671412064955405056541474453823073208264325861002513179421534294571932168724549480326450936706321064180818053088069564413287638587119894304360861510137813587882603215929899318421242570637140165012278840687023584880187491447385074709277060341182614234735403127210001852276388163598377543448308495602116206384557521496696538488978650099981858603258032832920486620961275033314501670788141485602791801439661434952802811429552061436069842150366447264818195207235721352418394993264032903770367398211549379864283985801664577530660507319236002708331141906803994021754213575082951300285643126607074118726833175171613057225209609885886274139979774092536630605108010825862918000619739953904640955997324777398804890497618710869990536629033726645394967504696758702173098738151470326667497161231927072256854997594851347878876416602531197421035166432863100570502902462018927997641587283034094585535361201445564419534834203136418531675272964453615537622105998753707728202764352863558438690732769127724740011687129059680782629196214728900045315541566310993965557327750387502246471383888198706668487517297990285933469657205419950470316623520771106259987594177940019558388319157942517736988629636907638514392457105832571468107827831555864048702819081567045528278160101945723764431682896698057505829155846644727382622431462838115354976095379546261744317609849598928462332863393247556354717879687962535092502032017337876742444666148490020676343313978633160043166744086634190261524654727493006596281384995163742770293560090943066486207074900939006131730495758286832255059947962127461678681061642935540565342975507150974677979080917844767852818755546496792016450296538286696866141593923315836374822497135937215928095698653462391053216124820621025657888445884454543266792263560825465508769950508646257058365057047320097252359043599948664940732764843347135687124248325697661066293282860103542649875277627459240000879193835029379916681142642450555845784283152817524267332749446400954593877898020876040701287509764628035262697592267868248027617551682206886479090096504843652033994525613260190567983782153947602500728553078704117128475301347189872438345301316183243801645966764758824121012771950107016872354683201447719281042487751362522323779002133656529235025968336483811414851380414777475500578815062846720809127433154335140461191316078290600281023906234733891213491458961383319049514770213846202244587870140317798764584000965885799982261303687449162231870157333650026025770656411605398591931102621942120758741673480274157528903073795317833002084597461941734330513669175544773027857566154094739174396610348343275161126364139142499620947237596569919959106446039952592782109691163574051757773445803553038604994358989622164778906567936432730795499189110086180788014454767324623833859816445096475035172952272976089821137846585935201595300950388045438992312975338468728641278505891867728535961050633121969207516064684314729813902875825810686825177483517350353462669468441330909675114961510733346626907821746971498239272852622494907130024600245241435948713379148915731321645529531713108538385334427998000358355016568900455503599046823536562476486152693455180968978893672835034581298134713133288868139041889464683046340977555466245734641525351683086407664295808951852572338096415249049461717689516822439684382597192301438413571268998692759199919553089371311478537803191247452352408652416536786681268065056502158126307429534093474268021632150256838842447177639578978293085182996548329172628066903732550265220908751834182021456763751293728411948599837055049174392950451405475709223990866293381402112283159371205581269568583222413502603745855037557075938950957144282553897052473562292566361525758668284188793998936790412381167726228689979144149397699481407497084049780998203074570325893487932564455698398607586932415547734036843749524834358006943064008579603676913288530872876849065485095839738697733586697145916132616176704288727706076749038563801166999595612164915393621263778121229633313641726403165653050506278267282515541826531051910200053641710031606953704496057843779256276163201982652129338397376005341510608968609121998506078084409294029817895360278431417358969611609138512022764834643389929730959196736933290471565352629371808160476104131965920594354251482363067362908508679156576692136754933478788205114501616990457205972754517593748121736425341865099164044321012562732559357499959442690751222836720376090816244107821822764747328004980104566612639835769707322202859246856011132507485253145622704261029818935968811856643273909992911637150348492481756082296844221851058845194353191603512856268940012388322396078417425543723698790781715918100491551480306728178843483791930970211278328061654937709279909558851601430259757567895222756123870109679482707863171989135730106472120387230932569393019400862313978264596952635587180175957826037210997648582844166349314663743675646887541829196064662316387222106884359802363755680546542738612097607940760732902905474598287335429274323346021748615733011943382740591724383581439110751829903565152342931340719003944633242180873171052344477109807912823210274888335279088676504042732842277624990858738361090472517271309219377453249182600415591935634785013187592221438735484905347762313647500608616796044036793589396335397066590439062312375660148196429538921889054783200255933053689115790251279050935346910329332636238808474711447116310830541221344824395458780360753337101400824624709017268945313745254231608418282862208933334550594341775704019533961889316851654804185275527996632142841790157014280003989253835916471346007915563398368719006458080843868937389370349021628274399677891039365214897859924175960567736141710487962344503208801335388481637844139375807146523077411620032212381199016782840635711703863601045335605069312944386710950692350167424235516649774553451585930230018008769502944435014367968501493259362907048979287259811189840639840514265305334902078191494680454366697846186515512054221313452586415194404800342485008198561088658676712809255495940003984858686711101690391430208847549665470995972335291562331751828441441130169189706912916844977710485722334944174565299015853849282267252514005393282136815457286828946093538897638816702153660519408369879522822866906633546349151217951985462461877289154789070812562405853646914513065007730770297644264270242682894527326072240145377402472457680541945814397901878830380058648078478147584211297799779268730127280525397930428887063969005080136809901371976366442939842584446921300196019790174590047378688095370745971491350911554159041373511735126956264206638698312971767885957875959701807389672567915705778118232670805950501551489370043746753139345049870949860861561937956648014794411152257530147980484394731829199926386282981965450302780987586611688098061084251902822803103993542555072811187657949427184065406605806364642191895414208796191761692451012260509123187993773459077277352767607036556299602255706121298847517713821976295910444819224934979009599363558784894928830775082182077430855363302032628283079259986703200445205632534535783402436284403273651963416353656827170399890288503566988775561853829111763933476815444830573037523547877941636917219564738253862869221822759638157704944491446186863239492218225794635135708403914181771245638295660862396424973369414293527929018918803078240411240073863673365876865305771520296856561654730017165857793570998102088736449010137737454314300473444588390749821149011970164483805559386785591917565854205010880321944590283726798208855370074915410454628820414081647891451472167620450949072493185479408847042775551560386633914745573184876365859105521710571523515954150685266438162153838245871740198474599475507865481369313616544582774725521772854682851515728089004064312734967506077686553726001825241576063149999398861933980279629445829220469553911144759708929200776340220407628120522559225589807079995927821595885670213717036465634463245873981286505342985940579702590911907964693358129896297021768158349310716600126244617969203934461244873111150712933922149513343274234511581329865310183696720723715290463857872215238502092695224015648200311411908407611077408861314828229709039860047082899007079194506383820233043389092272382604211980659322964557105574310874439220374298405782658641066597559644821857691105785506534536451749476101904060772401862397525764378967155630403587572038621576776516040191552835695064812389436975787407611000597064841631414331949915627089550686544235132541024100471484959252062500887630192518183081501434805118056390004221429474483302816866404701053189785486335037490047038310379741734766809902570098125541281986086695634643332087227250283543593187529560518494562465858220400813824808681951212681631706295151507695268385357618846097126594742551936570847318629705791751105951245681202454790181721591563890094193022345237522584386758066838907761516477610638434761426806720948794335574700383308400001823745273380838173182948950425207964279553710872452942400778755313472645994955942054664950078354215307167102607875355327657498064650248705392234131626081463844675906935318052112661538664126878468165372816148909340684846549027662753429019819839562263515646304131843583852585105478104709536435665196536260986126953748377466209513870598219888884988490958274694661594639073982175660155778991963074888673629864851314747814052871666590613140545461309354326141907396652103875839369818475687695065672479809337784968108097252356034105484620007850587827930575385801678388179457817255767669415330688341444386239727270683794362436251990956141368400416069292316044021120911329289732372495144756621208004932890951282004815526900151413507846283292145406714748975359534076117583843327536300457499378785572527141898292120203829661189929718939004452377917757961944603693730511722461476268475860638074435919000973835986456238857467589111854515595094954633277189356842748096741279696641694610501472827893900408116887555300293620233802940757259346102299420342667596527771258471035166431840324824999342491905333316237140199918320180930993792704413886570342664902523729074143018632832343581161663553150690469558491540576167902554167988671481847714800307725715937056426734499241585830297579618025334431131431364683431880528860908213127461987919610951969293177173071344658292961274878359827746961242650718076672781409363694201728251159738727761066142027048769737887883883902452146953740786988309696951224592717108586465080465910491389579684110673384264817391244017081814890856971656820997697236464772774320694014752697909859655155905333060811377184096400407004408592971811359074810970559271212256681420862338103461849931634740847947219387778607596828146538342483792301159642342829388010609770297621736756879124623028013403672227088640883566904108859809342480766963966036640855072315557298808321116149481022796981097696119774738847318903478723079239664498315419866463131828948758159722225740577070737604338681604652649121471321929204493932384519505866969052718553162829199713387950279111664702098175743325203654960887153932803542876519991984976114127774289436004039058725755831269325335784522698359700361925332903940211036434632721368615330019039360032134310567387445676411229990367346059224703698430285839128717154002912935029307663628128727304628050574641229851354695278786012198498199382078310684873754206877117691525913794849219725860561990415196224637615690151031630129906780556253252117151395213748215025930189751205206196555493528467142154794514322904984002931439420715334080177867019865234621733838729920478121022417417255338593473326761177058938549970534227827078005605751752810721889917125607487941282434860897944465757545981691341593336625922634900823889891642324076489981574947884744338267970107662675889418640351915800985383865671662954795835033263274280746654259613712141226557728445260985962261984528288280060592063191317053269311141605865047677395436732592276711041591992377675864635727503948604516395726815389840457513050028470835225593422031041717445800361719066816746053080155586066872774888373831778522178247846997250265127584315588978123820869814233261548512177418594062507491681568154112015458691473178176160573696114803059119423866868893269144093925453625984524345262101810749122693238874911465462326389513174148940263930646676731823215679026509498162359627047204810057752341805686694410915351774560903320147902333661261970108053226310656530680239201594970416568309996586058090369935846839138445197019102033446492409795064214153735533901096611598215097292793289904365980024186041315710057695073293945082936887305494086253739510893840436437356297892051893237855560577349801347923619501462844853850408131147023475130651046242886063642219556674139081544760188791811860574506673234832843487240309957561692370993766545148152889082216342706480524748796114562151888331935739247828538104738336472690169625295894656530000351517932500615103912500260902277047375039412267652393107782390682127774863024486125999695063025634915120371705916749469777327035263497254859620805033966690441212261250473854125901746907692729061778440546765457933883011755117530584708609574448728335182335610307105305846412709146401705044582304981194901491131789596849857327770784362144589278373016654099407147684784634074813135985050612072269556279451640803641806553735831746403224461578419578654202468685893224149371755717738677060599785998511337004417325847058335292641704783454534423422338239719190925011806041248963406946828313662781578388430973086268117417244663120890271219873340586770314060252565044324188202837004047166959271454888665041831299050707379548146850793881654102134422000359415054655621037794258963881984393099493616686402857143348057723527127852503373788981856229608170994110001036921886664099354779109801612477323734611075061408861249632861957198030929769681694297356092999062630586078439991827100788339093609967103727608432627737419191014593680677325278658942641324308937355556365190456557059372481401434831024340946369606055193467202854713097234012655962196276358124641896096354775716343071564473065981945663796771413156341868088605599356668267616248739769883268922163607080655816226887632560299428966939391624320325487486465736017847731443813702813091264098079479707417087331474737396965163198138037282216375749507487042467856650231741794838372446655288529114503742073094137584231210215926125342012270965936527357266350284637373806924761870490489377170239223855339966387729738037131678343464092892615238700094605179534641854281526080713514747033054946692402162233080093898530206475270762638037787752544642396231537189829259823319070419489821385320120411561787859668898245409514827335533311003155057209127918221312264766803146418395268659753338359219605517725751917871053111480118266111737950225197464354149338057116378596196551996052463635849251797080032666454661879818364383395786232715562552936722983063562858475103837494864833450424968028478832096748681512642421450315584452504633516369502023450946608054595186513714984361350060699201473248478120528256503743547125821320729877833112149538048394977038937364375671473477731570953477104875918887888259920890915193759644100133537351696476726345190472832947841621712681203350189118119287267644621826106307338741430766005609655304259359535780525215781487995426052018686907261443596417229234706946206845581380174039990467232391793991066538941295048732247144618152002489548697510192853595972157805077126339923169071570960145661939699978658294241059352143600255907273532349321559694991147794073226280477675683547129941152450639103139682163638590097452894179635790846853024730151679574872519970702587541634471034719697085362502898637663083681390007389596295001839459885459481588652645894107987205384392301184255256652229173861338492739395927110704693074754587640943176514135210798402466075173513389362769397941110191536247992699917980306941926953998659617242015006357008612890653309383662080359501265052771909153757445900373528740535252904579834325965734709493207498885056637998347935900582152472772426633611860285075688796912345762539564729714609784505562193134869139931751751729631798124486313379021513054863742831375118347524027693440294514314475565074027486172726698176659552157844629392101520170679606874601379308271726663050348569148392897549073667765131345039145880395978708926279744700370978037938728268986858426645478067755390650287285238963279407877243172813447458373556505031762684695127642666578166579304304280128137538868647388582566234134077050158711275052408317408467978892865068327530882548541360928276606603655359008932197383687794809269822806295640886835224757916502085318648890797101657062543896309827192499574731587869753584559139278363981674680711274306714578716540114634016303634474912048373925339567936024921302425814244922751573612453974672976291933149710926182498655955179968993782024178195405705127235558123298612444146007702241362114570066210239494042992005862323134386918209616905888304169547464646947217110295560329869201431594827255056867479652403585022472786537691280026327537790576660052685551132714395051887836284488385994218083991675049442987470969792717860971585136007033689825876215728399844244559352775065204208607906909898897536755119349064640256378948700866821101426675261790062501261391599856004919320036794683646846012188304021234240427948278718960476839508114386848476716706875975340898455365784694514314508207092167039714301795863970290289132758848976098046600100048870060195556284816018086978138361365298317821102207458680626183320090302456256002033476059255826716452979849241853904132258953195813142597452769453284639943684916575021471957394148714189885692415756393188170103383444589036726952889126106336910980902406511861848470227009762296978675879218258665259158697084649054268855924987058400300038782261590027769774425445599250346370472122801862296363074820789630184509304439613906396261861326924667391317107030573446181823051000359911348140490873002587477093610626674402392219854187781033816091641247963186214722309208978676972824151311950757514748099112757475264112157886037082810551409763166252957826077434332936416388620792971414541469619266182537070626131408925319275037202993329522798491038613960837241540061313972032269069483577255016101496117110492931231245022679946728026544016543631264852210170425709910183178194358142592830053830115009805301545103059850169758342366967818131961165751496377550812377817309579045458215092668141329330330274160949596544269156051538213485123740419686701935518912357548150089418770867079043525653372196631328075960334082894352836963577111160679772553048145464171387344000793717919753887992767307013636450230198906818073906560723845850100321758586840672311912494953187413549708984449753848113201171488639304301206649152156989874547110833423480412189192999956431047734988149899274773438236859126731378023597085027514191510436677105562283616411026794354189775506601427931723092194236898041368053975097127307059254172611107570858504456572822786545876506114188780221444594254902534899566190639331900232652653059797812226284928721402134106954438974733498200256777603071029465325066432693559573042060214350647182507070787211902296178799857788004620125145822468561372541295570989530342464804166168350118815775062633341001249342267519425595993347232665072689408015078012989500740442327164762399156572587899972091401098899935347677593648330172138607083911199195504806288027849525011710180259088201469515747582064598290361122938353724141442371519284524045665398339581956288252559772075073462536178479219957326025938708714984439059271851971871135862596356521871081411892228141860723044250664077419994872577688971047699211804824589489437171552573099945428862026765215276257494344047054599424908633373452205256875091901039371674166540917846566594367112579142888623200872093878975464270987702861733756148262454852495139510175310046165626924016444898190377567866145621113075062010208842915003915902178136686449284190940763425990887410789714712210678127535173004457609392263674252312519369544389984529585846188956057506038402411970850181328022350504444337894995991209666294618771425832546757956774742848738627812906749912817166890438429618115720799576800629390507060847131019310105684176832041497014733953743181140341177641427148109026534558198802515706432089339924590266507839859146412402985566205901539347461203849946600602205118081098293690001096124858430201053160872585642776820674946528112855849574253777606566117350436032769725893536777720456345311401784881252814511695201213705406689119824351291618415115795971757303001714676686879303046993733831082119274308101728133719326953307735264186642333595547884662461095184956981380291778497599078558742481619442400769187512897684944516144908628443944676665013614077945331436668774011538008701433435449269057435254747139211928498249323597809723563695451879438270121196004749350035798357559839810859184214694170714021165780597924991495384492297967564504024083359196562778698850136979771258093287171062733080091310764787986511707965190241520060083315065955707380260299175394191845726079052136694209458654153246993049938638310881175691577237280790635068223481636947444305751890853745021965346341742847786104558181379757535917943342760336460924089970510129981416282464989851719357577749882764384986515387408440646051897735660679713012129154599106180380613011703712909614671212952426902845325370996990679318914129467502844901762152288269543058476434539803445338582904930876547752526948376865865230676483435743100334454765988236361156493042567961920836498503003435813009565635129502587075973169220287812752071418222091976391656484227885239518702945229165463296041257655736763712994787488385550808893327472989843798350660097314995595520601935494427423676308118956644910365995668466048974562970247534343365595075731854015461707174499888063125427257319406748891743064970133333384062142063141350639657290468813675533246627839340408961120125965726874174788754371944552513216482264422817776457394568297822499550941817952989811529553494269620512663948001126325002725684226513807506940654437621240781976205053882263954384138175605834608294593543582216833052502966636540423560843697101698241247352086926320188857456219072039384284617007652980884126306503991423876821863641899663662749784439611333062551959934018473359822991553883763652256648573206024931725578048692183505777361106207343990492741591182848196957482146906512219509618583270845065194021959329811773969047955162368661633057055711928511507753331053391745183690312908716129825867842978221876061930419810124717246578742423094144743502579530587057279317536103837061933023303371347744321647492014755957029195376142854878672306035018348734359005168524598886611927729237352251087602833503728563745066815951550411553289582376516098343844190734713279417641879324965228514626287607063571922945953047855784057406191946969038150828417132764371082226987340779992867761960051664696958573615588491371706827464359497453527460413398914719160429219817195053276803613043801629154028834875841834561014983032709865863241147019417652128959686977093187226232125554900918768857896424403391639945179062062544121037475124387123151835285864099786932417634720863502428934363863998336202092340638194225289055994905389107448175576707253227244103644172262420536850410740354013972752668941016250113063587218546632230307494774965970154501619361075876531085922995981272435955395040759238859956264392638028152111898072779928840600787003651367920376011704084265468631112948091622937827588518389275743038265238591815107226299860810795755115754181441244151675454351027189582956676914993524044782735362149617906129372836919564949998471516324690580722754179388277358020478853516507595904377911801608980591416364093656059040418988685121323830775220170112013950479205978646402794417569276590521705692583496871056776770457233180024239500683846122304006350416671103830618751545013461937948689797974739133110246775037513011918495370122447353886589663522064421964418156558721342306507053207322710234076637458194377880095301994603174907745434869490616513187155711641306199432914068101750772491155428805802412322528865808347009225988103672583057236698173118834521196819242522555254986968337033161044721296662344203708175450066248408281323029064680125136297336600751357644888924642184411594978059424315220949502031915978852994698907782270887573371902810769699526646849188376567294152033597269627074537324634675030130432079154555415986615317310650870681596723797707064416618098064359985701483502539739352882253426520984138258693519785420164023197796962612441842643299694194095946511402035277475952331300304875092041412073182003726206450720698090919834126854184545218705431292385489164769090910453099963096949264850975316225062074897418295988718845313994153471054046063708198803297332514335254546997493708133156614857353355654862156356897900565734247879576023093372813560073311604673196726841615976757619819892071675084372469012518687958923623653786426702237207620785045637453500675700363797791001905532624245351359236476973325658010482539287541716461261997018641755579794100120543896305771914794766281178555986909438625750811128081962137775723334316624439555827730757753540333734985034855320772325749186577085351332176715497653358927758714739460941880975661654956468855049631866850037573109278256059402496112706334685781936235563928991811602064296834296622049413307542103298733357547989941299451291220200639880618177898248790073682890469923873590092753456933937896762333485345701534941164881448489784781767801990052845912606519987613346918960164491162309085995171930226413955739083471387468108790702229184576717401555416305636097131437491520804654226974285338994317334269909342109629247907525407583813922265640543764540953714456810325007036691325518097622121526690544331107865375816593632416137570338181995094048077936302825251405759791226863416157967207553314743934140049460710891808399879406076881180141841981403773322022408970989991705988410041610913090528779283587638443590580727826421146279748521240999611426249774836679753504327338967034854055113861696445212786470727189336254138299215057219777342301791577725255686125042578235638424197269009657453537560527656737377977897188872453110716728202416819682888315495522770874254141568461338757547349559305557343866479761291585583794533628819058820080079575326912204486556374102669626031500030461213731434033165272114861533158167132427321645466050704871501753004090386499247346541889746007603850411663190366979655865864410360107403580614084743141105013154829769748344172453621423312394102847805638158760395852271862807840678910600039098501288055598831103588680139269030290527079812564260416353425255813565300769895153868788765904722509673584690784368496099172632875986838457273202033769798182566640313521582529097859528145863140214545069751238439198779874906612475279316612667764114717072360162572773254516070588567312128192377780607437758747730608473271182867124636408958758725070907083413285026404501872551938092544509148578246830275163557622961168870645946562929563919092987591324057050791733488070780545250567710133877363272627061128407381624244735357743728796836047265937654836718827643854855569748396552020166311297385531280306235768957629428933090988472174255220850410461796028661163581516764219790069831138371430381476375742894301321406070354806822166319415734373461683169191089337844790314405837622305130729498333426608269904750021192687241321802064141921819743210573513486632952402634186175763569585878100802557243548425137472356588612894130445648284800435350803429395837511523889712475692217702607040182055419951418876436607994551620982754742736663725539873015723042797140089103388715291989434267089661724137505341400330228117884772776647151149053034378155087289336078412093933580393126912335215770754208440583514615821264702417023700637961780866876937325524108140084917125265798178175099984109393609852785578196396288366115002132246713604097879145717927309111383084500055203456588304631700708077581413443801041460966351199821668277467700383643973611464440501330098944684138342691669267707192911139371063297560738138631331961425776724363422498180211154000273460877682742129074100942752942283453621402230749373723203674495148406844760063883843263635578379188265814441792943924246944282711292670573079639856404225893985124435939345708494931420966591423466614576254569485636150338819099048117224067955196775982198537567309701924371171516942045438417108518559641179170418964712267827685230352156059573677226498868540812663584072522125195261873975499648734383840455567662014493750583135741800772774488881183150268753596696945323006673178443155178796629838169417328628733306375906602245202992319054750829363480766028934250201315854982062399492400843806978602064085977711584250161230177318072820913968754813467709449291514954588529943243283471505153978268338128133352716861023332619370258543214826945049612459172284119622553897277995223030964348682738150883850776735100681151842052099729116757778457747914535513642925316075587365515043845764539930201327087996296721632365102043445535582247957647468717201711788592699854338627360295569308354851117225061383098425293781602122336056670110605139201421092539643105154947767666906903506570334412112873793253468275977613371499870442794076455652623257541202684940470262219907117090995628298325350710432154499988494017129886240581942419864668479006598442779071558944059337835011423854347006426230417228366401388730574619738757552057434878911203686847325680773815304882243515896510235693451993996640599970637215927067224292152477520600501716061961992507315859943753081068370469543878180615130277818080138893156366962453225221866790967945321317964346663770305593077758757457536717100309258070471178715024737696738133119237248526826886066493259229387586826380461350280923059093929558604851719799259079538388201904464603026075045261150099017374483603884067876234762105712847098990306259953010578174095548786801077613259835299148412443909379191653309515199930259078342530100133185350681959642581995445106180098992354326766132934287933565258595671772709821461870538439780169221692018688654429094268595149858367928593546295964747592697780118443392614086918270932445055827578709007435886289999689805870740005435027909728483281347632627434822962754351582141607767608528149916741615281309945411304099696656886177188725047666534572368478317868858188800928323169213113418880567142595042403174427147452995466401358871223045406438082261001316285935523204032260111921334983671549900339978803937363807085567876214027168774696399130594859852005420808119985231766144359927680891079502548688957418775377974904335028057412378141190207933828543371472773072917751078575950163366124176745783837355908637387549615096761458196484006087416250574396966065517186370803024867468046600406427315725144221694510914750710857021580225520325640666770897112020560674176965081060462875760877633601560908312800697443968491309520071501812243898631008294767943941820809560369325332729251994816296732644027510186435320898225336161844225674727080951559204968278879154959299028919523014433278646403167022142979663763614640812566618652852806043308341448155522804292499488665526644404460826918032370734829078165132504089474281920931961667251677233532855988760051128934690206076631882322678164512918280794407486562677326097256130759878569732591994686734305997662553941979544145520640856838123931262700570031925349446777638822160413732362850046555374144242881023230084397408601288957511739034489049793243555040816144321033698843940985062568257239139190597872522877342584463186065825876177529824422252990872624772897678665697987106207523903391198108719506227609081232005766329182652827603194462437839890800240896526269212460510002987677548358774662807123912046160044779332318790337959816290062785707804429985709984301041884474198067665428244590083241851319542714109559741197861609720727379265193990470946326014476423090497888881550539277905407682234592891655896310092086374492511198880856537995702315083998413162455199556660496085833663803121727933862120856007901790595242840456726036923743237429540575935254903617730335796011599395401915572901188597279150815639992878364429674357629284258383231111537595404272003181968000574471147495938951711171974901304460562647607855023006457400961863097726209684344200431867840448967750778887460666743225763718445896014076588492762663325164112112393610772212759807647992267891202368598236373740438073315118694001662106379435567630560645384965515983798796502500559456504886467863891456812135318736943989796302522676762394044085009486089328567897718933126356967816420706070953417931924955360901247276450702534447207853770963182066770816616479444473078897425088811035524841951826940456128646984206226215637144267592002099447392221900621113998411332899964247583508176358552844776653354929589534231242782960125562238258370524881595836984161292409980005785125686210009738923448431980948828139286276311429111313155784974169559785915339793395576265396922208922761465556908740023435833604494227125685266625486648569545647192260244446081934333558516060140892430689665321146214911840515017853676348630499789365677684638933072884097492771499211217356077741111483019824748548056530699596840942106520935896186556631986899834287622429597313320748160899959974493472194916345981306494381774883079118024272149597736976747093319992261714287922391327992039459131050212898369494118389329010345764773922555976700652635887554475410229196333727298906604276176988447661396176480303219402842632217411835990100056245919506202669502673246024344391177614447716879558227538117855231402536264128462693868511436424468442669926349233694531710193479835096559149302203068122956857576941426445062951448161837165838414466646635152357696470647356980109061181469482719801674550621667769525201308635138186884811909790608917709344775596076479101784169979735337463247686585203836272962185762480269648953319746895972712397633848340109647572842395705854421085554051448719718958360310596698598141543565131912569307901901921003358685557556139326418922371766515322213928911991117890413739530688329863331006082689009572970014015860016980501386989619044621766903185906376841246570411704832608129770320711921182583926407936899666499926817653606793039456181117768103712963293788556329597378927157245398244384617808935022388378699241559751883885749866048359356612485302794614185140719810890039711056733566320243105644823383607204801375282352747492418141941957014450783155176875875554086792372474598198498454233985541069141100272666079284373152788902565760443966780420274173382859690059943610290240686183078799540031162606668540617601386274901461319689462457942185597034004458647517430309142299293939485644704106886410135076312361878434450817352985220860426139357819141950629706728791780539275997988867726044050833721029171300083914153687953757212551159006838315124303957825331771949621843001907835744950440686949852880438922830857164563277566931984852955420011292017119349892043252551662145077414705148973105584584658091772504107264364274258125289416999573784563334011203712188320592279265404812444671940219158183312515528797930199148569063427778586429160511876937240346747568374233306004745296423190677686360972603289341544930805618253080584636091791429894477754440837554852685180930422729380992149379488119188832880639813298262263730985296253951425081343053190654599248499702603786376573942696160249844316828847253792813795471052867393929440431237391594187388292779003277540948959400633760695533864318312580442742356118986249144676664364658934597051797487611281812596949191859707407900730718682984908620982636626633224257981150578079469563365161617584979675275832351133247433998695613304273490694099927885502189079791809252581704989609741619493592972022003584427230334486600437731855319575671014932618403274167020827271480181420543019563840201396391625004803715152106687284900964336753730586295503625083801789237347906579512212286810176078322856019155693320363832160279578384132815503152549478086172736813549759479435992024671359493181086264811143218824949846743002859248495725015855815982189906673583693870022567598956685020086185248393919002095186827179322986452972343499594322367343783834600568163617411101415327111769816644544362332281337582646597309278891665964572131214418335380926326140588686452211384992775798332749828241258085552315807288886528932147309767358233195221759428510495445137753894282674520086495521934180201003410065781088284695352691506227710629737940187169883935766384019024880501050378783236211867771101705551594940178197237472618130349688798053932383323697431527493701170367184325494245468468720002943981461091041018620296448938725192392166862459259051113262868135156885742854080286778161676376280033957256109716242809836376676898058023257933931629164858687579149700264589367260283840531565751749502745467978008365142038499497615680338684678279629287588195331330154659525379235059273234711695123374641194736083319916945639478513055806098231050960982195496564616150665144054284791921315533383434555820434873922874387363342983596059920398732676730422591103759833095575698233200876769176537160370120843028415204759913238621424023634783226795853052387152060883161122589912760454179679081584009980492199747628660189436105987240291777666139174583144466615384913493332038552552703254725634944694136098793233812363802457029648971008365949455794520854769683602465027248246863509182604088589601849197958404530637470619415446764167216664473275194898005527691104354974119325273861070280474977029130816097304633998561875893817954002522287827248050212953793016529544563427008972313762525459129228468927901913721255475969570708509709144100409394581569013017950745351007484468270582973882408878452619954951682108017546581373503928654761421462215042974807441017625972996753633125625608548108059419097800985760792606096281450054370669202225792478482086004961197203088117747373344242804747255444856279691640271836408263747264313587468634571366795301147576546357064637084413744953814908559817774100792828641933480966715413878128397235830409064129230995737802541360601341233427134331026641416538887690565501547646569251721037349555485644913451226464472227190552462074384380355149731488668774815153090556279776845324569535007168003466954481290583696383647976482074735740527327116327599896848175384896585357524938334646191551942271657300076458876164800808762494497346259727041455683543513299842835810627947606569329956933375845549843355535038096823695149220191810967689517712086847301009644340588728045734912158738820031514911556545875770759400101386208685306737392103162313070369913475938238281020047860202443122481551813499760985943570768607058974809434455014191366489941721961816559450316343113665641667511598001007865199556174363527815052754985542985807045983259655445107633689591092569390639914092336668535803451396311213378299325337109824746914660252887630726922402200514837413950177828527472059572414361580603718531492868496650021250874835288353300041931317770537567573334967756152912148532226479369768893598148580653822677166583850600111318753311267931330244479229259735026113938274879090049909941471472890822770627555131499329853451809117415373394508934138817147835875594956695976668983955121231393682148794221767563370832714575282463412015512752200384391238628490824930497145910710596958794370771013822117274566248870569294045647205019297577183517254046258901585359261187615520778359340211305772982060867208953704579478702895269896446139147469510876914688012109048719767214997651821419200805928533377367066566378146587637500784700703822119613639720946887162324493382345106388780628194593184283484448212562745061687714507764682216646534428297419859904384635798086514777319734428276142032964725982415154380514601880984835770243556695511478163753253366700902098947862624062953812897826230033566053315297871783933119282594805777964068489787011019013216620779516631725408432005279744355189683656228600595510950824773303899344022855838118613931304976029813852980189632955355155435485756283155308550400969788128240734832495201670411602443670562379039010633497423472731358077546439970124021815867673121783322691384867790801523402355394362589409305251624976186928907173669753249328703336924631534457063007049408919003044012050629385370977788508694325314412060224761162036745469778491211035270629750032600685266906949387126874235944234347753584576394461714802380014522600070255881825673819991620212885240988335935855967649576211917650094662746338725474481042830926350112892297608941774401169257204032787787605289582322780516769328327769114814911225333618224594222207097621548037402484554146739206155530131445567636411761837075615947890681705776821554847600904114169092034076112424623437958313042528457328515320749141818295365308736230156850164609151834664597896769435193476753928484690743826342331434580202831967070085497189951101651949667924220503715697351601936901573945063725460056253914003578957378380606747852230695286591008267056304247704103228603470943112237879811619272998610747091983299869556304612255612810205928299190235155328562173113937663902234848543859564311603764131092624252589455479584005793666238645965854263507908737764357302822059073774246023828917121039036885894211674503913727223590377725822477182776178855222347460026650034600687864858977467210682833012995470913297224738188744870968731848464871211980008574842145132572279502030804305246798211048735341720753515843013964349993672722379274697116671067155730839379504875991574125661302039646082990925968224120465502212862877870400636436410537934023564020894371594192887550074750214961675298457109578052749532801097500003747013721114550213518753522632305529894173057785324509361484965429998437255265259375431321449520421867036013467974009052051088263115732946394996054162384223067499030942033797998655862443422430036043277639805634998992538155964289999768176736606483042935983009974907072302148937996787989690073867204045677910333559377520439433488916498807940432504420588940344316878451436937754675102842167372764269068938677931681835376642621862804728929491778411204500114190441525367597491004302681575218989292917658600411452213588341077053357644624740418412299385725296240268163687378344676024592263133235338234894707599578814141927034041293257487706540227012622624751149549003952740127896717341995198178240695088525387224765929518066362715064370428171009182509337316399851836122730799899759712343847206285876115457537814760572257281455730028908859305931570547983989842330365353210483065630286609034648397403213060293946761980495351329364100119380367990550353957130942224064418796932633960828324871788930338986760925404798033382694589179640565224952654767041731401372854064159742091061625640554956073970111843132383220048817884183429278720690729576882436973725133836511030855464724088708430430910609899988440011594286334647574716360634119287864959477026865644941843214270163139951642930433379942454014375738746181881298798473053990061233183413819297920164053970780656729717982787009457466850996032469579468604601044269181005542219253168976419065457111297346575150847656448495545114286933418263033557178929074677615099191568592572081656411048334604935224042107489546332083301899832829327229469600393144341707880813140692260389402394160839871477639789140874321478150266340163836006187823110383084416099318506491150663334380974657715318442602962894012412129411173706251326772235082709928003970101405406317897058703427369992826713929899856285520361798294836827783621097228335632589206935411030913056465436709809269212619915743127287630896512982067781543172988727930063943631975770007008904764527692059502131571664677750872260298596914135107559831866533851471889194517865626156824528945645046894018549714359302595304107996616033164181167433356025350647273466528216222437945169237418036935885993959175218562810884481639596555747966429375061450164561820179595626790275569651009187654993052228163041500708718905226566280144265608895777245469426900826277591891176313391265897378461324023551745004362340328694347139718380962104615735819053174105030091149929344644142446603315247892510079303663618739595401921245662156760822402374090665231293927215972242094368277959394015572199135589339900157687585888839260252899199886746050104651061854084674639846956744149918861884364676201001423819548496348691191440022227309842195101593493317809624079538102296794050341147377420405717736357295921572283419984113837094958778108997686227715805116927121046535937904307386103757233284029817636227331435698767434335971608125137995631828887777917932904659994730235706024595098448474953271702216195747652594509253340963487598658436189557834988952066730344655941600977754102311381602403072259049062554873132714638474646760637187071244808900774166354419646893526239157916531324686370923740100044315252737013116648697522736317583456337159282150703872500499711961156506120128780592487234528410673275654770351681559383105686687437632834834835905728220158623672509673084023077030055330436912992988785715569383178500838677363184125409393947903432227431653120930627824429675940814491977421496563882233876843295739566422954560379411204444489425986352525728046080048214413948015296705585931432614384128302943163934956659769507424238396687637709132411816646585000795580869721094455491215003833261545227410164244341028452293965724626933817165715634268621175466813559283672033806251908307936340484317835965836258371362302213623132889195899318351657426134653753058795269739128246364296179082890070872717284672266158812062571315697348051341816028612632350586817430794076245897462458936447734021107998866002849796774243793166394454363062228507295680034240325177445301569540302514818392792236309636611961879930036160730461459569261446348860673995207842138548464352034409228618763550470981199338852256912368577331910789984292161336763124083883125953477230772200434529628272600257641637954597533445958217431797325227824380840304989304243343151537718564893379771961768897660394951369963917714041182838299566224618976883158480972959825745673856656369460647344749660882931997101293690580381234249163383511973472870464250160218532478885995985574577606759436443501403422130615642624698327313321269444409957226829724063117754736299606754009826766649739316919413703183924234281146555144133030459343449719827222492237839570351597559060980010605805060036274179907507556095746850917737808331803719831351098223025772253532747654210500014586989020606787094789540174655210535943907489330201066392241342915791311549220727048865372299545634655548731044925537046806450992617461604804876327614549015349645851215314606153018147944697814069573209592553974699662871858442491528904672561108480463938856543268555455326666976991521716842054557868574121896746174775881619371442629275848850613829387033070586399055514381185535018476885776546080561425436956371293571324335719455657436427039472715308728845311153726830728122153396129807295269778623172690188825471983537048669297148879803942365300584723032623742934525776639658945411598784266382323060711980225854232189959262336592772456074158257776047093309181471282683016820781143113124874007534050583295205721090944949906287401193580087155975494864485399113056209565161966925357100345176928592776910942747987002287241992425848815965540344275703647884913122753187816373524204168243412284082015529045995119224848391726675162286227966905072425917127248069415741666453549502529005231440771337560789857369868324865136005255612756655629070547559377028704140326592637326942717444354727173215108916370921844593657328749462952640489835762538147762751348704071962010583923528820154157785645060549566511023782413855873063094286248503959298556764385428525724270365558038322920601903373662995158766991609376397584129844197183962898028649028084876426136748960990030047378135073685000557870802781358759356806062481297536152324009537397343127645490355816982839914957274386016866391864891830763241309222022011841795233826481502803682339315738279110507014941805032009046113901968339212905224934036372367789186200048361965095099545781658214141932443905813790518597863746275313160276588608535249496174398945062182837858323170110412224462202581606639069878074849563904941225320755291784259751048621149087359869037049735118128304745029046827319996035990279693042685556205992494962063777254576009241611087962407078328039142451951564550950727549454427734185933611806305796301794315523293523548425442844518424085165214719552610214491825831385492687001515646083240587057021002895520616239670438047746686381560008755189342145319885536417890312364430490021691541730105148224031875863591841133090252138112167943915970338165137629461587756811242320641367258779626871876393273635360131993649541241111586807607962777942202585103933742349471359632033101534807536593278578012344118366513389492149828951228383215058132665890545734755203472812207000410712842271047243639058853908968469792482533867699402916697719536094307271758445312131537255363085641487578960270907697099072099456797500128215140274954536551943499281074728651915549354707731650671343459062302030484709451500611384656903285730598589264400579497990609814585627058892479872195592113374178461153178674688162743855578261527395246927353942428505362002700426682539026963362645783022547751022434101464999266911586264903768893457037381782407622251018777845045703803359628033510880469033453828672314685594065870490746051171896414184777129999221409257033589999945496067830206829460150661200076995035955568117906373526436861274101069972335238247456361230855675870338441922800603714648657886993752675241512968425166017867888778893379410595337307969707335577392626662953837375614201085898053652467130580929097084708747112929371331577092821449847378165478391597167291432811964821406803657818298474164763458322237934875983012491468101239190580710197991586276449337653521685033775506085345531274990500403868568469778811714758162192821335272013037530408003099858013902284588655151517849285010865092355954221291380849310116503240702919203958422055306975533054001769692887533933582735673303675821229140615307628863971807418290940886880561497588006354812442821972474104436587978797887222505750601944090113485833971772833521220150741310065752381982114654709560880441854893389484452446801556915477536839345469199789012885371274198890291526229326142004314678856549124175546719533476674107318644487793522485214231727228543132434050703791595870412460849932174509685749619446155828205974828395612989491695852033489238723940027896539830722609963281292741646806686224185213946692582091638161423044764267267411659312021848140176297165250591643201847691465283532994268082979134806931301744533459652495512311093307270818963582492013668926519136798485267768646221615823657441710705419801662971682776014071544924625657955131443025794027834546903795103660354558352357925732789679810285427168712675308578082146112969456398925392594605279030808701282656815583799755382188200365303178007729563119031643923647597417920655483348475644449589851344232756935457825062519912638852296057730351324472311924411996636173571349335217164889612824626924041326518566186251339670987931105354184319341551043710811152151785413512768507512461771377092210798935342182788619475479582850155411170192012500276666203040538834804854365892628638781376037857912990829982762915541537982506653557042026625326437476936003724861163872710523102953708962640676973631568062977988278589480680913778488578875750980727102470339153880992478059950287908578659359632801106370149703207296681053207129465898894702186612271924401123670568486988528235960251220528724537151263701040287638051504111000174809636215474123042185836832535845464132738373685486832718047158311109816455909909679013116892745776202991213595226432510764121762614296988944493212301200091329605086991230157052782570790449885303613166143840981780631910348444087640877356671055033039718695918047647128243848228493084433349375354313409631483000059853732320836141571492576375629688690708423774966087270083923595505353372882139826926000171087078479144269794903237113778653657503278002347510418315461300537787692296437351528495660187049610302129227414890187859547662795290874903538204297144584637984947059629056902492300411244206975394009425803264519488788859562981632008107049890732667303203387831995276388744732884397466789344956801313001160435962589059374576284976012423839779452859998517265834172014635945241435549417892985282825594757570723347414036563364838734464807329786709506696542005528699575561654830883084228645221872247581412389153851639421103597268182558883512519113233779310457100432105435453499430999396251881580271137598258312602830220653868435376920590408683278291563724768331270597451905484686468299049442411616029263747577487425217998467732903139721932362249556504285179084365239087227222938831777762675768043895335851705104010210824838961806222328606377693651143917641449882382183992077999236974538563794961049120639145568366202408211502680117734185911915291748000068249234396349713572414778363475012851277946933497295779945206377689720448323895424023698992100036081802272164404459364118569470675576952572553560338097894105537269452822121581329073396012240732733295356007922442391440716440743954951465107458069015744143001321133237305866997700469099918721586139930877550879727012928740029205784796416207710686652177375390647495287669876923285512590072923916852731422806104919986155271508878013068559352943548047838488510594091899536303650287826915312490763142386824282499449747221757702772020852270275551935562449491652908341351223644058738681101483065318922338486318992421587433087618589765164009345632734256260600237342124564576741889026223667165871973739702455221587163867249856193137003443070170402277609839018888960926526420119456400392699865853093334296737118076083944819091163396247769546324897431212070836965048610013783056275113507348808730936160935794557740779811533276125720026679956029661234392617202522435336478512660930969414142682378219841688973228250319062992878614053651137355304534611939141973961504683558299411089712743234316953705010177997985150848320112437248652262368846221374740597764703667199618313817181866312125288718714899647433824975680419516512919267139098854522501685981325448732648612996745208321936564937751407932118995900281014066126907722023514578956097971078227750104206170756850465866680359897799159981282228698054222636003018383895715047414964914293411167483158355517133710655976001433348442969289621963125416667827984599522946505692415234078175242116640453648426574699024327306016217611004830965528003053497737571221415887607498430083361765849912811075550400076394977698703136303118517014107911586327995243984025134549152305651381060051775543196175901943818201386928857643341466304488771405772813521054057148942735501944596110972871952791719415052687282114501258035747726170350654486423864823170580809394375244697959268084845945491461371185519375373128904108446040738882342363004932876926048248092812744439015717190669256857718344998326591625690621909024760614530485566613945724131235898135210179736872356097786903014485614712006722017721500688667656181990344015476833780278319019725787066361970715087777701913256368854227688461408192240515602440207411971697414265546877021120449807969571401627809835240462873311005944469858681338855186884535591908748995527268880451766081398906761027302276529541243457184684340375539058436138429300775433097949836915997108752304140091567525566561836265071526449831868180853270248571204127060144195091056595502107887590770606373673997723724802916323740027932412452100413752929073529691203281535277764248431231323024623796753272967931287378374275501570272202903575348270652355071763341623563939972039960944373059794722914154892004521609351559839143296064670483122179506044482676539476859891509693564372963615406229436115700220163175903993307918043715066117866454668102696720778373161259098013192916345093473234363442056005091713724356062552167142216394972053628159257901605952805487993422739539446994445545018948217735393900337215918088117310878516930132977313437321296941762109077954250476472535765999407827836223217013077137407873464430497503739537092501990261485313570256447700796430904296854513876045992525959108959635339191545412393524188844951798767055444074401749537682291055877811032798280466684468806635092399353592725121061329412247517367488518571297935297468570425758040617540436726530401157861071467701296431933094612527880346705956406734915595470023794403711920084983440148466978188944652151686908780010543845058602931511720905322226827454095155523702377887304877339582441983241598399139279292068416831806758905333614705610323773934107736054350413950286835724288277165827835388799141656258983065097845824910622303106807969620509740817076345017566500585277962362283165981895889430270394794804434843855273211897466285939547400005652784364893375433147276841150933672113611353786329645581211264388914675659298600380625878107353534859072266727863009995200447391095192281719208655867501208923540245963671959577284322256006407858654900572362005354986622987921816377191941893605927857460897784616378722294916836199617426648759962961870414510851372164762617284140051173877066958729964390645604499859374631112657308378100947584561966685391494838395740326936889600854216223643226948010484454843964964246520772120706731998118187877885358586609845969712094260537347251324614626292852353626748900934488557682430077780726062952653917088704728644491454488017266853268671981104908847623177074708958049628787703047928911312804638277441437554459318535172104701563283498635653122779918942397738639078974383078374623035623707723275579251692156738925592107628335378094357243025584284294803762176642141483033020988877349697745564448285787211970487450317054670155236583717793578267449870239830578493163126490065418314122373671657415697886284088247070623433635977393030572545545531189347126657493997482521774452361708381429676531239973126782447796425935530154627750822954747785687836219356035236994448258365911961292079914474756296478224978992318483795259958932603701716187856607284569983362555978239998849383207331460449481997772045100705973292642877193754543028643378884326004801780364244745792637270397081632743354855901068064222852193668096117125697915413417033563442167036703388680586152927848495155665954811634001993123919663778909457951295914731877612460025287565636630207025914823464923401378260382060741983657229198438790944669890932278670010406815770351321187000499670708089933834648678914473060517559946887153214221215260841417280121593543384608824381616298310555219425938289999496005829248066267326880849350893590373227932145658147963238634533518473215934025806711256096261705254116401674115212645329965073058504779506656797760695380754861187604931315704934077937249409185689747221102676028841693863169444255760274139924643126680140790375495882371528965277991646965597385394341571416768200933424084095614182517746653166905442932382897473738821803778119310053630721801117069507266967255989290701795759135109854913782891163473355473563245572467140764081420225191110495349456754540328525268346027547623886230524957872095604150026463533652604195333295647337996403476583180325064353293402202505512538126391116791422879562008188846933214901725485713380551377640541767933457235224395774053547310175809045869340174341773542351855047100186929814517585322936354562324782657372712696030163045216084603438774428850217425672320094132445718978150394525940973262673332518999939971007572421646519535089006866148534606748289061667113995832814428398520530432156804315424722728872517237676120174648018156310206780108546722459082413288260144725440332136272754030342141613123527042209971745457421725487942426242279719038995708750957524994370162451951034732057754187969036395250870924248393928323316775014098760468583747028020285580505941687308701233383238490065413211296162030226754824173511891731605778404458788329727885739963514322805661324884385009280266661750282853082396975099273373444222885504988994810058681333041976496441648055054662851731250008890877475262816659790592062552315515947273589903785150432258227836344057764090979829692869746287383632421150956784640569356599810078961125482270185319198288423025364923286557629402189870221534081153805094195094612870424035294611358838327173994171950208659845383020207237130096149838229088297619638040707106712236735991329780575155167153485329380634560565736859183206170065731156863161102470145556805601194761038095673653187523627303656607733813569901611773386453502772699267435310207271185643664387895744950730158458227461552079663818428491511416163793340095790010122443040098495797186276829496635909695480287518416957810238767035453802390569476650279936179258815593042761821839705376406663223095923436439595059674289838954026774187397626500132822087567239443046988574232081325397108597632053333223759658695842941584661620349415437723321363848009120091625386147237816593523833409963785457811084264291210485035771521851749752373252922113496620275287450560941534111844439338401974571003113994956368186083525009566009872427905048868612992330367411018208539993775717978970492367886082153193295043063743366388706377018250650793330023546522610066502772689902582650468486356651509204678689717478783512835476837693384044624585922637081523731173508202393351919664520587900900707817665600321356044450699419523152441008517762534337555219995810103315625596566725679124837695073522212347765043858485660048195091346226242712925812693938613464140890881615222239333796181919700104045780045169057824294084477299405322630416120405576092825554416561015883649492517774831721041819092492218950924309782709519368366136593275834067395805177826440577886666897515564505390037754549267178796017425151808589607504640253494034178221601349288687621701158338784684820006190086593632646649861764238098137804416996517536628261651795731655881847676718315221884332937367009458103247598306422604177797066154356106628088707244797573415461457874203729009922975987237856047423531081073463037149168385861572420560951448385399050416788965896101133522895890893937576650937527606474020734895065093626054829400445698428975219729060204283671857596091339700669259318940578777991285064819555712919235231446124110249670169893045622134012325467676462163754974973156855871416260507030300510703615107683318257806565753579474451355306944926924249096580598827824619841707421490467193327270137358552857927976733104346847902663003646986550056489552998233041775580819429964362255595005987417343990122272467291962108833520333872717589065583560861250093847992473779899591161450551752559821973280613705161098200000790570825636175058763076849924505786988516765605708062404715814930769402671726638336740275193671917464372181641976809730268602230759693394331324294907764155649272832904789449151324744082207251423339482822698255155595295217615110961657348221388121896697566424022848349021099440262687157654761187096584013099781942998783818973900905153651955516455308067477537972105862726129403782372644193611978643999335975443367096057043511140597703086835411395065064409515347588302057317910302759457402841893990728444936002166857472580992825568330826543571446441911687972842855206592454056689237206660145378361858027522240103582103760364793702668291387857477464430516828772396436189245923672105558981598849803225502229801660874199420311797723599328503201002373827638635288167220130971462732160949102538253525118842496989466607150633458851586470089113997599035815290885504997096512785920773656082607392360838436893987581800108894117652823124870336799298969326829640849082572420080234734715651444264081763663989042299699659128102269103607605265254840552985005693905027216797301833836234731511809349003784424164398991918458368718203880613501754111550433190522768167547706280007515803775165488084509545234969284909810242454159178031605617348145949207247898031304242202993047452889814686281842516180101135167055755590930474868540647430348908296120703881334990578280854334806345863315988562594586379073293229329228847599316231624625663674180126646053968034592960665596635174419845992941538967706691782415955662815804306914667672606905543871519775549359901563511568480747920129259312023878264445870480154785360617505038632371933674560572111799154981417878122996220153344096609717010928512536457090500528484800172024010701288655766600347213378053697749640983252203375350200283039879605298428495426249846009264669574674209403451597868592161889826665498423719012841372730151158861775936243494482598742523084403361449508125610091593042337984473329175029035323533154877683489943650096170228078758581084008165702956035939878153820709751262661131038860211439319911909494397447852852832854283014291272187194634328689819394010924415079721459014708728775656020289115598345803703027302224070586903010654412548184292201314405673854475075993487093548697533552634065476045605663904298507524120836470235068422841819426638004451623927292369265865667470360854229155525352944262655803560706556790349916107193102746042355511051609846201868425513417342950576343054883553126893153088120080532354245016615519447799145361383666581834054026186142981499642012260701643526203262977156554446441770187833629657097257678886732940822328762517189996743619259077691271205633827443731468391459100645067844268897306126626484439707184888809680018119305109368080543249504563078968357481887771154448788916679122163020926607673397586461063731008575722738498755520156825156578005574805290967083377319350564155958778156054143087694476938568782483333911034353314745331877600410579308799908152822999837614237507607464768312242824678523671703627024865026622971235631018747481815963107531144254708027872194130300478998154654043240561779456034829924976403698120056434863814678531630756554785948025386613821461034486045204044382047819986181487029422350135014757900629598927356750924932825956695692618422761885431821768992608863034549115432826973230542489176095838183891833197071999360252105081473064410358206854039878752126423448689162869750024898747608981943462371089753978104022688078410117475757830845884161804469692207025882004182023313178073870967125086995947368796785671535997829743517370907816397593159481741144133281541507016722374172897622176411919955743055620723232845131959205391804646670515013383760461780461103724663809464386303585220088605487796576489899770260089741188832555505548329338166467420245298911720137362676161884839888857838020351751750931835989748953429300177176464947538535194610021221540524296158856717129965471393768777448282342238492312695948735842457208749270463008159935140013514397450877419541417902805651111608069652314428282379278350709934535483199325647658810613222779332417243956101162435239913808413083293030474582649968093217167012412880986114392274253343488526226246299042022374093108329721551168354898377169193821422907584168815178402274417662106001705619327762528294133339763125095327707978080747380599346482474574216468696905089288550488715960005798341664477543916686766270176589246007513288263280190731433155172359718992653188467963431375696973637229185127058338547092704458325992006504210983462701343739765048255495351206300370596873678778291259464433627445352054435576694427219542528254442119242618815200916442944466246102787356343049310042490912621034294077983864559829195786143873992165093575598950142799755214612947137210803947279572077244793418494429203979728734148765377456871852059483620437266185872470732518350089840821658553170216224864564463020070990879069535357945447941150388497130973289546698592599842014643348770648561062153118786275294093570966888808923230396517221611342023230675917762551720070152852916416301560050721843975891433588717329662107233818580147907422576996912600347004587009144873960910777378181195432588104156863936841462515753148495345089783159264132953347464946817196880285358734287552788504208676225742702006489084131448565981108127761185128342832758303299881596238430342364350869037304208745603942762208936710812667979337099370475012857367426051820834705047086202353056979826274533916044673709857416940971464185630899421672851139980391170789617359028448633316310232629360527623545915204617226036085892155980991849123546413792886652097711865404635826429719547534956786211564874776252638277699231416788772831882894885167122762298077752543573688416033856853791655750907471405385646281747506557683303163755360880624301070845158376127159264008608076838657676640860135630342405015361227560400135447281836588279987169318678259206024645039164294299060813863961856509005093293893210179979084647568956197366702441041606990934482119201000295819785696678033910400143014093250925929122067218073947481736615436280172137094644478104209397189050810398737946406303228728056463115493769349426035520438755471185899087957880099032927771834116757932376345475457541116590194930368299372445182195778373146280521738516609987138017932211617477938860563818488848110949840546457358791657363545964848900171430590196270868367553796961605678566359598999916780208868660074174342254785148827175348121825739345455301702445778263076643024951232729117813436311318877934251798839031027036638208365333153292173031573534192594073533075991743649570816754844115102087185335572367212473168100654704688617529174356461557721198902003825158970084885650502346257999032166129249144012752922007056707100614167949554474578862033426468300454188919941148113637679431608251855810015806639291438207575110262822429457368969274085363915266719407242402221741205856024777780110156877157079728201435743609213496534004214678023511946864905787246951476961136802820683256829963578039875439773424900924165343744415930869056637443353097327214976973533665709677184468394699732481459905552820703735995330293139752998237833920757292751758219492677285145258854418794106253590419868192172085022111253335027903906988845353627181973151441369057990136540398518503491681590301081699103327909267561025547216830949147447250015202243474062534675627685794302707355033659742659180351444867790649063324679836812934487798213609738127560265183395978248539926681123789374227092618401709106942932966355922307741868033005056912650608317258661919429805159091993625263734372776751397265756623905430210352372153510831590684651963617066592138100864546194070335161190821633076237674740344167522819615215395010423053890357291066058958150822515621403362690610857034859422286327349690487471855701281525993415768723307890448553584446753466807794462216044459525188497543646473888951900826509742753914032878692482188137247927180251185897800167552500065352077056523243127746762030558233434845414187558632985324710908026928513322496332886770464781340057567475041159748001670689918313840115789823937712248614637081191266918373331631548932125531339374171717532073253867989640675493475594802282335812733202717257718648636099433331467579301451589700349605860385793826494165655080431950667329603616329369468418035150387939863533506226500621626844742745188016245546629135835174828186207100728593541931271673880824876527546337875382855274197162753314975838697161990019347244031866959872563560198704149034840006788131413273234128763849333418623806600793466019904208890138016439177242340144328872600707131507479149035637244058357049136049373930206553616803496163146239102746946121675061290297922415308929199169628528341758246139954720159635704151212773129665103891985262467061763057768033430123399406190002582617680457175592045330707341519020292952732746694460847201487075446157593796615368128357353386233689964782597482762747817387604152214215606178535949730185452354455133309857048789633577978189495301595843694383923386441768813706576472357219143402166701665266968785899762969403157682594940772840279473629700178782041676210836220935037186260762333301610896896072934852703026428283349205087507279675979174580813820450027082126836558854459186291639297771268394592205312696427184388186573714003337609241242995010489470216936858018865102386238155047571142691026047946493959717762223529989342851029917656979858640190320553202019151678186548636611043349951381264242802511059477317263658536803329801480645826680518158589424043688943770522664822459268797576064155629263506129610587960691652262728739506725613308640741583300709356272047871170038468332825329331683786639545384986650953925992969754691503694984041092486354202964859834260954851871586992554515637828398642036528949362287936750311649121071632939331376396372459901305682408922743749333570782176871424456462006378170485751445713183813067672241746462449271112212871504254252243202558885477934026521202858603024644288388327612094724462443569471861155498833771020582843863188937865325855622207005655937192449584816602224713077720126770214966643547818082636393863182932924852827638256593636402886993648732691757141445565642434369327104330136037799793046612388126376876716442277960287820370048824184480103547053269965325864612777853464932493616496395341026833995045286942057620686812312583445802506808134579021796771586787207818364597082116269847049309963345218365502874597043323573325791148871591469012102344810408254683523136293396309166637798253205916555509852758943177500683697227522962297434949468003671450144121364113357709287464450861068167110800262301589738870789391024766037858637350776456783219557189418472697952248060968675035956877010053447912612115671005596853522369908490723670113478773711770970165967616817804778593015557745066548306131096937440544804822696555564188854766358711582747722292108147073667235775379435178644128633046268295484471644461731538333773341419965556657978209359408568073087834712215419188167494871134091832112720405667325870231256665354479937518260996741136813636304210208105033480912249676629829484894695644033069168254527685713424462691238896829782277663847361643051218811747057033451456032898825052745832701622669096825388002506950119176357284690437502007846363068546821428951060590802393852186357384547906864636030639553697298103811064257799496812877804975484676756877505871619017772759082800568928213420154421556557096610755955908572926543571060789400675461914050879231219179207741453881591113393608145824064736501009854893231465703766152879561319432642375080321419528916135691853051641954761577633679266540307540215360531417718100166761648176625037027674433946285143110623249338304601221438058514438339007238364437825337999439617978073216912011370344950030779417329238825458176254999766951738299457473476327261061535429783111350460902337609561295431027454677666180874406670529804998172360044023251638266889428636714435081831734896615484975619688057525635168683565396024021716046808091423916498862212569973703229447505883632586264734649296843988169208642825623983350810753677601649666445974714458510005146261034763780978045092606346898444920759000829759206449719792281548522582424556023953163990531428995315667436570406536022088729053056715978179601881020465767793518655564207808229453369455156190048549318408590280742750934343458849923425901948883151561874282798383143182319602109953974875511315933463441278774444480116406355364971757264809694764078813317894507220084325681483298172976367160320191625989690145131690064921603229997417345639099021671666039178995007421231080864308498213443150122459197220370543686459023507580951071768728666665980208830068070765247506737643624922041840621359480361672740386656913947307983357675084030745181049230471225155488222791766272163288970842788702984967102859446688134290100978826807301650935199911888214242855137108675198205168138229831471897241359528961199082554642637368204951969157652238979328606936196157005095761015335682772254453598845402213160242381816313701058420929393102531176269094738670157106497456608532159730493792564223213412451813839200016511184176898068859178135055758143948277792153534764776457838894575925256287458333356819717501591139445872744008966161721499614398075366930185782870651480821356882173255974988098169694289599667417882765272938022270987279804673992888032025562376661668191338432721554788970866047501133251941369653065495619546141995990905487420951053379617526128834027807989931340372842818442177934371975440930748502842210032541939622956593360289024260248980321225042100069494143415226559299719240326017233263268868598871465965387932369260222892681524385412570258694673423259080883418505894445037518513858394656515660455016760330276935817087622967189753439217814494998478719363402549839757338899540547576267571522655748427296019891170174703942010763929115857775863924152286051958197302992078210276159585070607360058048788280659682634252987002362756406495092939829129422540720732670396553280652554520071477451632736182822940918800208070102744311771914460837562256695309650825642382686802364099972476056832095878653426230146224543380341245043836573327393948021819698598995252521179250475008707429657607571429246530610740186685089060548398811290292596121883243212268676898914483318438883435115561026741867994653156919808957874641923324295658617249412055795954749112634674079798311957114610712653481540600600741306851454149301676639599708953520550403006677055506705705975113345304392297215633463357654592307573503181920200402999528176983445073794552071666016927463635685941029925796220190981909257377017664514949831097435348433563605048173154741384293479076415739450164755136483940817857118900357928257199282830499947209432989185448474595907294133832252991849627298804462729827461420106311014804590782267333436710427806811443038568432223398035567490187719709185897517505200242360145438691035732311084808344154921286655558196086435080395585215161575144359949552969429166875827511189048542880626000441145435999029013092885763043846586795315584391150922900982488108534850127372754007007208145265917794080220526933107420138526204816747346160457431699532883946162218169088190219321970693817158157590519912971366114440736620244853711420366943160019517344297313425220824845317017382336836981683391331258802831970028064737479568928809836410223675338614089221354183369014863818825640727041159854584691454615162499254175858183445095227956059676094479177533035984660220532671297144502143280029413012342439578913837700711879409545289493587087405749376821670941352273630055549326143210522938652185325858537631181006884926539182787020050710770747367574425256183191309942747774834296991687066347772007244511245778609946769387013521068151060798999399074504776488377073781976463019787874088904613330046642416174762087017638237354519408359512419216597219382765444513959324140967180556657297717454232060490431487751515682141651289878765500205824132634861462305659932185579201005741180205689451453808611133773021158205647049027756466456958333541631367027293203786857073451976368078394530836507332317088188212848985101540563102416532957651777221358436313881842419178323584628411742090173215568598052079546124001968969830752655456787442937476784224249751055625912748221556395601327512848156088076244429748862903130456662216442348012815175631942581906205364893582939895562266499172850290272041981023177469315791285633491269243475799953141252448608363890807084580008455153177624736152684756005598754165603058666253381633821044360217048019326830118319685980609468269484870392313709391527826480254657088717895619417353332877294631443543203747028614086194984749580886517470272767530069345121721619151261598742504425805686305377780303073103250892178539496612709762780137366206943080886572055145649833067871395350122245037338393833911311791410323819355833292191296898070444160221312243860883890447125070367871232110103786743621640455871264479282003196245591630687115305132706264715944946808782263147291153602395082800078839903966981447728042590097203348065294814302963217039471115340003540691829370178749620889222044502094796614961813612573404262311372460797560511568691768269049306189759528977831816000425553266583940953852189356247040342433380535121358893471313268969455809999977850372755824420420091280719167808079524991440721916370964860780154848295752863683868926466929113927767060310291836621263338714361347398924556768177561994175034348028815979160723367701092191634450561963169716324701721475480303854740414383804613949911286685963805795988714403433852522948233582400058988815429971613305878353215962591621947750633665260129111345325747779716030788610078600635641249377433551543276386734411080942739484673306349832353915829378092856479619747063338826083060158593760298796458591010537326070938288571147872454440549208525246672520523886139330204222350746168961598776727246759943002928642480092695056633270082445084401168122938992857838870478075420753056811119784537199270290295343879335980276933381824770193072573249623891687979836924131664233245069206907059880355749977811761787396101879380743231187458586804056988645293885661123559447254950673271024228398743267805822934405793825909914088468695005430782050326092413319882588580379993028890723996955812181626338029336095881657689268689975064433095184416305343646422142577159949972356609034573288274363862937068649403435087126883333692180171424485925565682269633716646896495116309137776240545581409388009258024559618734400327038382374334621986859215125723855065849478942740012600435360049526287210014607952877629030862273115723704838922001950396760844251135506829692041153563021874232616305919896161646418584500168444089752541178180957577383136344480048481574007474913929270673575950864743508466566869200745081261714087821662817702197409930284340130494799979248814743690776796763412880357422081300651393575518008132437593869385729173054144236943430934527577363014703086718604472611117104689243046688874360404978960320065818294356899606945628500621786590260938944555969495217884349122397846812179926827736444883674343150344833006508452803204791136589289222125476531318889151168065752945658275199205829798121611520701122550538850177996018238696920373087670332089292179217975942665316912688133070414194397939007237267454559702762233210083855742561799560432509529379843263958924649561331927994483564025503363996338503887841808742132204952852597124597484691102849739289759974101451382022073200302388704071599513901576749373323825507272490605867377389136103972090031013407528123783416707804825984929381331550649198527437198702153900582852362309821279020771691203457992497853453581736979723460443247311588760625293407245259624584710428696445142783688780525292345469391415090589465130578660650285499568501037513720072809459274776834797485382494265702351193129612942200589275346777040834086341321419017819436327300250723086467755794100322784870334369050299891652898251656604467755196426412725840941361188248731488082290989763999011399738681787440135359652174300852367207109575765837948495191422240130800383534363613167995522181589575945732110896580926061043336888033383127833102407626893491374160870120690029798518143772019437697677808396957077165473467940144241201326799880167847766512981886670672234334145059284426099881833798516291244527341305251670506407927766426026074072615891808852869764797952802325377785432460558361239530188453359780482557286773960352911155486813630945251034006481709502729512648655314020957597197527427171371260880184450030649177926564109461104363364783446593488299597834863771866264913412762724890909671141404158068819670075859863731037479623341728312052223220111326276628070090524616673031336837389670842881044068136208671112937327194472449189168635589591493834735888542456169359851822316124236034749259932844570284777169947725388409381856485579828627336653479716377153072883792299749244372102389955844230605225557939238202940411913351518120660772172943866337751706823663165225504305743295532004100964547812863536934270977263567709197066225300404386429145734902049990702536011861470672944302189226384122452299285806764716929391197744434727707821448192412116026497381555253722471681501065214514453768415792746134729080067615136852355849901848855552053001310655680456378123862591173031949510167630195207950294530734576809503119976237208608648987438667166093181115284777929316378633070295058866140935470003654668661499684466196760839125061254122921286047246718371180856888903168491936961694402586075743258368668830563936041826511468335664570421498968617707511523534736408950786158163578455562659578638323534774131229770300101931520025555692455789577179188423940667437504072633495021486539139898917910486591189459933594012014675525280232566841671400602892698700492817835061905615964532777503409634501435643385929123820421361534119171819859669485294829900112085708243050875900936982879793616433274488119904219268140041334554890760120633635721017007879322671802017668481795248506384334510985919549365992195908185936030540573002721540546154624885618719543753592675303736947550142681156924411523585762404678563663786315072379307692980977550806256285394944946910328728709961557113581577601277542480304899299826228603410607276449612535406647803582031327809536374961885868944289975436747615538430361632348632059703930744446965403404456697326524282135926802102434341307963366380526522904909466270557277868130365958523024206252540333231793742506869190109534455043425031691574986189330634650869584619404001368219198455450585543094589047775021289951307554068458037452017258587800867145582521038129751677127349657524672190607645915501789675103628223744275808560531978857228735900162566574394005813671921657295133370858753447921959031975059285954822188776805927791850364160757718352008690745889985877832425905204089900788349556687053712124432062637670207578470864027148819506464872642316570740537190231276263792766868756673380706790566317631579526361000661450601105321429061163388441455318598273490573897250913803236014758352899517011108772134379482935634283185302142089355159583981865626119669405040060332833478897905617343826076797564033865976155583049327495672650755865071167921175685611839594511831284098055084202204509811292317595753067830327138421707341853352513336651218181056758764678616074208787209389420032864783844391594940139719370395428333706756601397988576302384734984556017131906971008982590067410775375280518920401082480422383789751099896209407929679366116999083396776104472839627748160637743499963810125178052898122097092671342516442113611923538199970512502070967051585033659819074788950351774948938300991887678007265739018914715281512905785334464117813280888902063770983477954708404885926958951716136594554508358017156818739296339171453480011835625123758007518255111114244941826540813658832728742239014175388541953240852720165449059164626193382262053354060484642927865013188818138315735922233762673462242262537471497748680299996773350094530430760448515481339764369346548452786984533531196038138500128564404036500490846737960506108994834476080604566993391162239480808075805826726303858558172293198677093238362198184355586863226546747481673060023088721532539229565805225939899465394251516636297396290625585040833402807109315771340888479032304269923507754108525790401507497153355144421214935445096341899705692659992158401816067096102080131361062268251465729566340602289380245591494897455209782868683669554013936507120917253988633782001102619897516984626825486355894080530174680227541855441323000781468648114396038096443791568865378090412489064852213954076318546795745823267811657683796020456625322975406233844505953056411483379987543264381345699666820822388400129367623700781545339813536440338281536857226869302854424225755283723697454836100719017030878596858668052159508293769220801342500788366509843960318776154136793014060408653475975931501179102605371099008731823175990258989147942866429154620714846090571548887200340096840797418550899549581094911834778832201272612690854190067576458464075799535648345214496919728848488673529174017256477786726713225217172905817605487820050909855659034537568598995755290166940628756326758680080052563632702420951218219358721151119512965334021296526753898477793385364185192863765144158140215654142479403743892714788941260713209724814820929988259294552158934180334414875999409573546764147062332100007974558828836334790048412399207883752700445383190749301076761155045677369430342100026788542506592670849938220999602704064377368244554013457531856673629463484611351162708728927106292883300875917261480031824668011307538017065730905911696224897238228686090133996312306914295991781754330730389235987417507941608229039672496512905352071282960624340613845564254165294897208302804731051322956604512159596554361075451720016422590613720810578834405383278572868488161838244974257067648353601652281893344279694341954673111773141124406302442704528891512825926727737255558385268629617890365902742573872376757319975632426935131172138231703706127486480164997846232023385698784375508151955764751322648151038637861228186285830245857495259004587967337573890378224205293516311375356365804217924224360353310896848938088649442105016230326708932973072570017802108012805318360122528321079775502193912061525513771758825365962426562801297440806525921695526605477989505717639251251864660422328272593566742505146475743409812931614648555771828208100459195249042059531990447501933736419727643509724932311551193762795894492614995641050744339493763351109077635347549000805842421253029816468095380837693311375782940199174777145521533248252877954454101177752866358245144069714823301867364806860053783582523921759844554225246044061832787601915449532306679793338831285885318305553243447475761608833087395019946212187230509428199807927311930454623711145021574177088926284676829497846292784672685176084951863335004841528775364263313152321219388059689922598949450948255658345882648071579689878335428944291059340428341736451773522941618506372357561219368493232781100002806365110226720945388031165029694096511828153362395153119453908888231075782758040218659955679253900701993561703703749555996490479813281635786593728145404731775743596644028176259342071902659478829736548875899777943462943713634313511622280300151405554418384669961733747748983219775423161357485199865534185377663928529945834832365732135102722520257872401988373027290661515900033317439963089007266155538766402224944655992602193507140876118733680869040897070579331990302495417159767997860823544472457790174314000799297278645601498312532220578992019750880206214053050798298658415806108936712819719652723189953878268880144143460881104130171822963441689129337029189086536217022514442225063322744456072687603956158112763239985832983128559668054126028669233516638497510952938512910263813354295674638943410680889979903974240445502790707681575683499194322077483301225004990777270086923683536853198701701498291825895562864654798039455810990844308811745911943127519562859315859101882036384006092887549979060293095904187201746978480264564947987197523279884935473075957752336297142081506535494834832798098456478800866009304321761594622876335931959783053078811249994393238188067385162161746752895711693960532113362457191574764717399141584278142946973088883323400366252794718352070193217269400137915708248602137055602776187025422116922235111304777687099137209747256936675903125907033461062715648477612871258154318985707279592921141575413398241730770619599495605367660557498941529821714840123108240954365630661956803388014174642174764954033532723746035198100076115953004118929568016974768838286676886699421193297573564994062450235471770171854442226306457717758231584790922677547290530979622585201841633021916411594925352258124831314426143208681039899634839022792077313839710842865410167955139433508359808277713086938513921438100817300831074754014262902322890048752159218553126889193136511357097959305998068595314991546902545694359966203051876199743123607944761438363089635322421812290569965649799409108141278994144620181905766174706358757212327638365255404064224843531523240294173357919986452472754644851573765502706512317021482556433019404074209788225671683165564735501164198325228060413123418818042786326814360043703662165472405649322067531597589855187405971309677861875080734417367960082847524690314905756811978144217235769458862702820994056283735215034212673306246626986550861749246945193023443197607456663474956111909010070537155434444207578694297705306956280414315612246328400159708690104164491445550061976156787359000924441377167943479482194386866819793440486536048795620375176241638597883018631154534887377090506821464629974442807220740428792329638982691538475030423970223268610727105259264914593029925621649827693994342663847847981575762571901084131837391276157706214395141892970267530542635045780454016700325657880883228427804193084753061878459694194999851740757152487336593540902764923880565150280370429035943946472094030699815677054690722062337165966664669941069132817833384191612271328989811684598547927410340633414458360739577758459568335368373789810321538623028430921575354768267992299934186558602356373171782656477313613996249690942155250859270432424385126278657242328363560171133140087491337691876001867041978633833968519103644215553898137946703203653394939079827195962982214144658778825366180544067486927347557249302808808787231832238445115769455655324293007735988842521514754869274014096190709713362213715777633678968411259669095697083289468173433964358243427926875692794086287293146758609816060595272732864805514386733139915014480467857671708211762423218611033881663928189228175121144409415107673591228917121212671215085326806260993281046545626040242670906447269055991737919563104103924248907477926553598188709904620675956458719135385795853608882306422221276605988142606223727340911405274098484552869018997468472242802454476924342322557964073958060984400536514710284621033197757853728104339480261120861318683855844431318234180881743960462302919659237683961267514813805587189357121913743313708851942675877215120094921117160464629336876590675637018076120671693724189617857927833042630463900205215888504400526291610803977051386319436840128880927390190876221427104590103099583125146589929356816655459632659599818517808222384331061535413787018687966378431285069399023578209868476004291600307549167316100930736861463684151603416536982847206646109739656693706336035718563898786323383472625185580783462969775766384586847769514115518277842552203917748295052501428474290079077207449078490449861883957852658064567885398151066852627559121465521400570457247339481048526516408902203770343845552703874276197411747642899491100012022048184838281071432836073186780348947724415016889615526714868953800427081229269972041945767323384062176377004003252520231230789073425889094235363094779411295987123453768332407331473016949856461301772919473922201904033246338743363924500102453170158889085105440149620991398088257322963169350249936804856076138730071255114191354799294194706722179097519900451115212966295544819544123077875558556936074334227576229737849274653542846579453834385518465639331877171175599593084000554663601240993261115239163269141072441942644821330376736372277217648828699434679152778831821163464365612532570223731024117880703398164820835400965713850704449909037154616804239568219421455141365631472718117974581309265473355706074394576342017067783407136363401519876265783929438874787588116289492825737741108548340684975990850059657934798764027018445523868240191075054934688049261327589865713157616288255909667048468653497254812804844589170772783333056261532176226825372869125402745323466106185885143189511486465713634089708964898902108380932019766550835998578466653029900699772536613300076974777102025084951057462705985504930733510946046586619471795448429048163914872124423509499819999434342740259665143436726945880216785951781144461116368486838514060942744221411009554609023731557681614788545889827843709780390728494384619707820011331316206637910907013510436320153110881501270436231991532711854356051376683745297638809597521591323941966914958631823737457695203305754735808208898692690493776319539749763429777856061526361858631809109476392192613787336601805970017290395841689761421770645157997386728083698937983887870983444161515633474473678610993138873505195563810975690876690916000847232517968038523438853014670201359123668009160756941742699902388920726390703388165102231791220213822405855142045607171429900861310858643837547495485279763900818337782719368080635003120010623952885761980374151727323745117066619496837693990396606851603002039202899042397143704633235570416596136432115816149522420016380120711405822497356814898480005058792678188532164084636625328405536093722321725035785065225911344478339090624678710297197880949499039547905740733207908112769498040704149725882839558842278184747091728195821326002202576848473706700948923023505271595913125864077538092676565336582360032057564763496269365965158181609293226156639645281630385859137669983679439741387509155226535379475998539939637225688916780802818486354544575364440404871569825861976465277694189154014054264143628979795369963838589882357374471877187037702089941057490649724873447195280801556873004666421467143058301453604617578767000645885711712062181839282947848852255094605713972823391188094967113549345193154025571122060153213336058488757476540438521700302203070603108319919655939420385016217109549721266394304316063440919565796827917880116284523329567056905719973268263093130458526636038449851883383828867145895307099294863725863764315763236837351297378675522340822737162650062603694674174916148598026249113169810505390029243259904832996912218098307646539648889410198300024362140117602072064335703937636687685357670518660025097947828038165637335300045977179833644493818024307988118985152615579246268601218978589001896136072265876392625100827228381629278824135839997106273548141115088129972777690710422755710249050346365766482120518655050673203768103629608351549446793381977276373164885001895555392939073613931850975980492386674416812739634560172483453670458074455684921002313896617876862696849750586220036003766005470071110743229601652570909574617825795080392209402062564102630447377222283342743541470769911144856719319461212743654960402127634915826672068718696680485633899878132174043776164035278593638819693203917009387975388284008168022886928339438237993224150793196461710173580906994980436589188238882757125913968143659954077395007489854316464179091457322401441512193321946789470627534390520173434898845455303075176312122343353487860943722807712508455488322829415590478664032152334443585245976527785756823136528222461599055022238123736138643502534302531590345834539981849959490886530770657676845676393546283345299553268331493856590568743043080296220573415984020287073842202986540267463961221395740297072988270471840889219024086421127261010540200897599328427191063159948608154524515661689299227863803311780572953836842337833598998770755727112767248427605352167555026396268621672626954615591781993866043408873201094242166381851453981338496294963182646152753588248622949040985900152931236472959897330851544431567109979183313477779057877416909340249402679486677737329989677159573312330414741986484386286973084982813493701559439898665171595212962733906904601358733070308102778653072380785944431841520362396762992996776381221162615105349905977443017473641138373865507625206369788816136064057727436204329340371727847718110841748085800904191742176391184322735619866395862238141109885297584102440591827270708797348528303302663385944521800687424608610792331159178756550344943695329800473651385227643772584773476863295882069400461681256918093919679064792116317012057298562942134831635176727783018498011298523379497887662775996434862769747588985192005894142949759876399318082584819173851984831257038452742348289026486384096052395540842684108934021141975518284898657157722587250798593230587389304752646574420427605996419921067881504673541389236349577181615175664226492549508132180058001898484981708772645884953019833801288483819065415749194775335261785055216485554492457210873337265453857621190797056420155618409033496270634668458862349710941593577636750807873462215298413821526545035766214387997999103742881464026600921677481420992187954078036651957829184850280435839777592387868774893321021365979185578895217419797007401037431140015704196084084437432432765158314502338725548567222327830551122203674812456054758171567273064073007055749529333579314254344869385229014531666084906984006391040315535350931665434431146255894564520336926560694564890340715930168838160228816474870361505634052442618518903229663433288765644419844024772949081274490882997523403414522707440910461841824403492960548937748766473018013609904593466179197369883984423498049086247770884177796147119816167259045138401665444853058550634963783080326534312992243428162141408754268433963116396984072187789980000987482394873573779808650244610067165945360987330648624869184649512006530668983580926940407459866284282358604622002026754423253851590736681744723485062420349936903412726696966882165987164401634548761433060482540800913039710021872661006536472723182454697738999020003303659969655743461075556114291934565283070787971392752835306452342188551861796062337581818311592255780389184948052263523018312874620990215741369735571150640799650864711272795210335992580798379205537463633512805497597793427876164617945004735821740139952432404447260927689327208441882797660666306691962148695627724167827348122760532554152071043172178367057510427699268232460217487522334015932830383463255444931889511374681130245042078545998394121825372088409181206501854533055832599069152667913843697097968711499253471898785076690228581043846884544622036645842939763188310908706314891318818221532008465573147588441589479013356359074207373877081129312053554723102689077862093800835886995631412231434982353627109713423711211088305958050182770740937111829951256292105438471548424452426736103707927558054464807585426872994580961521165036463672036798818765605131167005760020434639650194151853226121563082859665800432869370282072208918560238676206790317174493096441838416394325987072655783337375942073688828867245500108223844590914661411721304472392914836640005219699052023418386518477293241731215067902465867113138086563859156177046508161421141784687266071472894816950411952541874614768681113432986890743694437582014067219393291546690126299739477351601889241186875106477885761414571976968690969207438584747813916468304913834790298002576136455943719444840399611244857656881900043031820978413417771923175262666443056959204791819322396449105766859713574774081201131905163573843230591308235355316457585342101872297264358944293625712261856962985248017983614447619394249614667883982436833574990704760983503178495288660163627862099745827584287956288296168629860803565065319588322703350259489276444371994389254566647598804582725521617665887074591801415861156105164690825220228813073203854726330239896233880063347576216875694696629444520041895395766450996863324738628398429493642309120412147418793459025500718770346692512029606497655232075568685574966867898667394880633777560791310034934738985092237989031087569074655768602142672443862916692811544948182303425466906505906454620834335824645239411838878789965431420764301456961439341028104797139632794172309048901410342457495514626207705411253255195977684885018628189137247070935741184041254898987470003964554355089253457990508702000862293571010292793745601761689356961819665112411896221508397542719021354685783359206921190192520295851953014346952034398002404344752833820127728669848836331632499606550319038910455853281748380048791529817831807713057073143138231446375002810671995509746293681654290087895951777080751123154352865746029825153039590742446297796376722244194185887002601299752238862128244421774876190599186274775107380505185529327245401672262747652672230686872084108594405051953545300932550278537952779793217110216805400534414970668260214206501834673675788288472505661033833720357389435418221025309494298396405155318523870952280469186722679418829857305251696615271827345555996961151523433200835847537761985575105107737247125749794058974451195534625978153933101292293527515158092170221987572921015359022831988175813357255833527094808566242539101967991650418416443696803965222321797969146275157873613723269786563620362451189616205342100228143382840227370292557998969993438198010234743679323314118590902982699954928488463032088557011928790454313601551279481323399713754143745652954609611676146813984486315178046257901728131007034981118680188093226129462887423307146763229589644314513144669229500779969945339317151479641921412487253467887860592654021616380512621396457355141389657899444233805768475834297663013852182285670922670424426126418878764281447704098250057025816201014659683617958331691102599626710378339729226296570409641544422532746886593478761705676039029283989176598733604498103839736903704928876975034979966183093622748066269489363123195067306934675405526559803276989690909757066011987805337410980392174880012364103592083278557955477162298746891345281835723804591223621597474570889391902952769294172823736822392674884546937547357364859728456066410606744838948505533954493873346927889595214593060644230388093412077872865024853886970685269940677061341473931449019316334898957572244468634108908956881815961199234908948916296537833500920869504755468955763350868006325477793992305504525097856919467507120322555504587364467220574219327585583278089254264039288177249442219003091717720650049377636235497512007200747234856880233578677786687098400155792042529702668944710928849554212980591877021264607393412839706908843431290952791682006499301236486731451634771627094935280884712478345138753147971626243968376168396572064280512915815350009452479064461365105732243012860802411816925496624014196476429699765901723826948480582236418446512106486478980141706029132272466824196210460094644953897018942564960893544049436133197786247968848868326784505640894762837523157266851531105536679569478859009432951420599837429781143509826380176803268389933822782593548113561124492878782000850440603812052881645562495394024011913535247068360184628771965138830595529628207455257867554683444256571560142755602920822331514652687449792401910821835910948393427574472086807287896188417886452282762608796855924405720853627177380552272126225372691520464079364324008562888282749905829031401804100448038264986019521288595485557231131593055720151431795710071464528150426263279783371507546513340279730837925707677735000261869869040523085621779906606928105113674320248228895408987571170118119865137339535800508520516501124510533718111063201848246527622990995454854570027470881315790644111049716883026108598873115596219902503003344580747102894956952104424490404297324331465286534590133139539509418857783344705573970024940377401264843679168043977467243323674216140897040481535200310744997879466623557985783477873300761588597597551484077545950773232948978733513358256799832351963898907728233083713492627694187008163027658903945929399618675211058731091863879374455016204526579422353731697501898535878435108556611833093763701037149138837373194906827660563839743153176530858565743093319740898341516550226366069593327198739189499659470854162706899654040395606366935920348124710440157133063833736774844159399293884207782742873750261449813420260363858165672883317717051718693684710527609013975064093304985898567935686020112738158353708272633101263068033279214113449812260805111073571457727975769466313932932586264983222275103887477602517082278170925877330658667732006486271425375336426588327981855456447839584556373787554360786692208613611736439930465585665920906776828810312069614269094458188898323853159171942386690836701164450212984933711902817635760914412471044335743921563437324339959242696233578336861874611348362953101157484333602902249374202660503759301990013078399239749721379758045632880256118690935844801641662307007169599424367705504295701307593050208409031334591708824759862828250973705738181494311229233583072925404476143130755752253717832043160072319093284396747748741102619123912197115787663414294247851658688973385888136258803491701952198755406616154044211624898019404041344911986329467221907880698132056761217744317902778462464100154502701817745590799770863228963887111499426454872427800541395272409746611174882234721048161482027949515303892475320284904571459025806348750064404006518765944656142920434693613895736839756801135428964004540023973834394746603915615347056000441255036642913290907268126919631706298445949037554748430061714192993889693821618174126129289503998063304884821231283785935663671425146294187596941966947758793371428538087377976938737969291780202624130498111869316918642995891637562616052098649903099944526120879689500303974117419125300361414484236026162600106649155984445196690506493809708136798488450799667987505778455705756792903431761720005208479976079839780709668560285213829517263755608773980776334825590496458129605220703161857652948510674506826071910372558462801690723714363421732749841532085139373219077512506750276931627508306816170506710677410760413746666154358665783998482574972813554733198796338334819689708228021410627836123507482253998565541683216823688718132865108311947169143623730334222095593643724050876871406354299313266291696156757301785770943886310325084325710571563244304343270676486704091409227109561822638215960532718261051456633515629143359713349441818962252581345130325450730355493531267292425830670378606447306376131913822980564699652505757715836018752939520230911785579620723394505983430017767105824839082639674549667328961773785954386983420409245812906818222632058620060441542433037684712811965957773253583472433360562832828162424915241642811125394608379029772313609052722590609000831118349628968193160856485248979837409067496027332631403765324270648231648840946054920753426561114381110450218686356905695530138033584763914028243142690458710496312040860500738071906409534147146136662608982247068360197194996606681425381374925534017992632000382221191756306700289875057260446600814743901457114283921598739479961004189506977907181024195395864310804386241959999411328110861914169537948201718301972521045621746845876687279193093814519180830657432283128655711576397295543898340231622828389854060091945438076258278009039548988274162821235081283645654412040587226293554178339189176747481225024314262179092480292273774556994036152929765081018544583509280836935835404132842124820549003869587044907045750525525997764044228493889024682961091582249670119028051646714187219321778574602968803206536132989652827637041564953323561740809178723844844026269275576911273787992963961893104426764295832958379587668625531423513250219809083213933142253182236258044665083764393750045614996210909211098608125366185375152796309161303615166093924487615480556012540764505880541854668696167439535433260225421951012524614177744481746752089848145048395073368395523402144787705313394756667405679125269025862530665492010483205466638667653750027655318323571244992434132475702028115652844540320570699206091666694347003437125826539994368781192735611767924782376997143600656514839069269066400588273583277729075824045596379628688834519064728076457308630562322267003349667406672751880599046225941420898050990283242561333982951675311755921319988956680787080703516995167598002408804845722894356983836632206975782829305010960380072145771848857007274927408255037904654498576460098372840146467366639705902140766524619512730370026542965502116391429947502349961409247294471171097732912032494202273559786648342715233740635685856359956080574531378602864192713653753940414522679945565072978597148618963551139998505246900565799335022989898334637108952007513672110363768494612315011967805904656835078931025963546793302560475978040597685016616968666009050256344879863228867707787630158455713192898440298547296143579238436332890198942456630858079088593587669141632968437945060424023401701496157981006075925821021246949141147395780619205364254396025575804997702266266310743440511002109932441319601410266541468242354673045410561741453759234459648501313146714981996381654585322947884708938684847668398910498587287573055443354159693608367107053186263535539326339705638729218991460588853730911440085202587125608513488440752384582491454350258275103477865696297600820643510041742611745563707391727992042906365947993978562021505631488189221271033895580926245457719317407660328969074118202625381088566073313357860961268013797504596346412093769950412968187746237954792544619494525422448004493936070016008322788592536319744729724770818275211367191143265531077246034671581587543365053437468129639111858487415986076412119339542042266423218870475774897536657212863977008804787522435442697861137226950256254551867907308628505427671319186072190536878345551242814954592906416188889014445250074516738943905971466157663885277098594454370137058952580331926883253049224737094546621764955405596243831080624137255028951520191353585122868852968658541640530872312928687360091089654829104289234755922988135507918417033235598960628763370664401700942961085182140776467633748019456441543756247863288151437050672312531053504096068500817645299354437528852282528521567721422567262917446906166320573284666999317695847267928727465355161083098490328859998823340378967797283241350291823611104439618893708308922718420478557804616028486356714581134248470898793971008440988972290920277713261728666540540018091094989135687303361508396608022487416543690476006964518505645054892970504489011622176795891632590160396609340807875170555905356075241651697471835760255447180945753210907647852404319717956459226786238750693880932384333839841716317063431223963966708521847516326753413097712648866697905325412055662953883288801779013544298218903546058041630695867087824447528650941575084472614956887773818242092010374250176870654614170698786170414891614974633023749970455518294234024262285578427768281482123503680789889789422129098422269999303381507396545962114245439649975316954132019115132264308954737632981302002969222537005411460365427570349422374510118421668457088421526602070693259110089999993369053719283171429968847184589132715914355518530998936612153104353030222019114779002341870932747397958654601039555744634946296482931285075093854378210273243862185657158008061534454804004624092739460681459715705791019117488806934566352635978398098412281833549494586810965983234598608081314094922188755913771720049133356130278652429805749416494872238563417244094193457428927247838912869257267370016521209692973794436578250345628372251771326658452223663266853695424939660196244341641534413954712537852541193753224951942772886981332599585920400740720282637743410476903411437343535979008684715984830549827478625445114653024394994504289361722450517213341544998832948375507808072885729983502946065713309701495335729477274977851065971861713335853285399427697192235429621546462921804081182416839801543937837183583132125001877454482182606421001917622130548002160134857512264609269414955225955192657627250286328801927569621220586974408114398394652503111085839307861974732351193434520474524226503597708977751997377050265321437137458982764359158789684649581108841068164843754662461770522781082504932650975957028324743835456938743215711160726051770780034838069459581237431049827711861595079286805666261758489274895711392562045593797807748919305306309729009840631977687401705199112613441106416895591178485678899848534528710667763517304109496273785814019338824026787117697996287334880260305545162420974275147562025196993596431718292650645316039538074292767691799991665400302544441699902828304693666274139844084553576635818503837542684127231616396872826969472496959612776347658107674459018669627579242883189948155453632533229185646522058907589815041009062872492385173695622993803808005636227565217485831879877003668607893088613031093783298561800128358325457002562971371507468269067458339287380367260622647904726720092060515450605549167353179338675475356473675582331635621156123858414084281818288461300871007262544833087170662557934292903592576452532921241538159348862376083791077616645336972022954351463678935225742838617043521501157176732924352968822796745139115557814067081480619149051901487562970914753994145849476034618001505263384231629986971110424764037126462209303800687305462435690327634647152271077556243650857287677337951097246225700707959543677951033137549108962179114793963713791585360516379237321316409345130744129069419264010821937970429948371068281741843061086112162470726361997161277193353989067181032134978940256226521129496996195212607215191905118442945926720572410261098977491718452496354132875895151193522682033510689232060085303341993131127733202138035080169698346103371074443991792318882521609047181420523122352682292301027731338112591351332849857434837988758056119191406355769800982956987228389560345747780868346012976235482246571942793010742256027488371783690304863618664684269956743319796969393849381041005853021997558795325323498729250625416449703620083849881326468743630654142081467832080910599779103595251401327220223674433150558737696676327862518109153199973200653899451706460085481023388569990838614065541972101678798713630458992372667675949830117749242039065346322563022660601558437634510394662465028301277349933423733392048764897535142679023358110724760445163985101506052304101734510083169462559159899940845286877797469962203324592259791891547342899491550029103490908956157358332649098267973433872369682600814263321427604179643400806554346664488984418947230281944288231705804407281969644645294416454907556514046956856675845882355116981327525894973638902783686840348501909735188760582345020645625754715588658754811458148691063926754913447601810320789975028563748461246375337704559850521069159678966001753826878912213302811831066823368298187447233193818011257623292569789154054821809098328174758475582586927098614982768600632595245841882134804880001072895807312000080979977232297829600721140505862354373132805268853676378842490596130598654732167939348018939675279623025562027670415885714602370665192756887287097542479740447425333946648584940152784741251811754185592082955488965459233548254779191568601040822353913323419468277463803957906276354249199813024770777448281119015289951655995218644812670952728203563109619112284524579778570401498747675348029522344855641596100601189060047770955640606341482257064397649237272772021356565757192798171770010150543395404160246591218133564738351154236644786486755958008526078811185822842167952055300025661895370017636096161119663769178111865176744431752136406700260441510621299072773812145320271868745116417272938000402853136519595917589647951203738310093583239970442657672516657184115402040199732721081797866321387029690587419362775583404511605542271710013316938815271930116072689312641842423366731203125940402291525145642394361462574128670950962838023259894846134844539190671943440588313972506896935168847754024922995365927279541549112022813758499432968086779530587670568288742680686203509591764370372492370019216455531284369822519220880330365231523652442413696391914805886087345993413468536034772053108352169979803415254622071644187836359476427444680558162508827188799806739768632423978042089487091176301130209166351583019152554885503573776329137705934467475253997747969219195132675855778207019778676844238018420262391984841514680034965765151619598095392811653501112101526384132998186883163963942584883582701610499649722734430818452312826927372300472435029989713770144465687658086351809452051214479123924827179204143722936591111152226708356731538077404300102907157784613498070258775030033052947681009006015672020138546140033014939808408733001937046133748233856920905807471475251237747513731786008350837351522150456055496081684816097710432824323330452154499349458801155433442531093251810457395578661740201963933082018175396589176128154435069149206739405686476391195707917725214101119507120870214833338905986719609116806148029045948741449181921815326767665032548943320361973187957302638361804713049546895726704400317158795501487157308816100409933627445770940250496895093243541546395689742381737882031329102669672391882842924909474592342178252183221201125886713835494187785040420037802557715459502742635565735933473441424028682398434193254555051326988395949007594303246944194491103364319950091547086537714528475746076702122164156096260427556465053014093436312652739687479160890141995056578181073706875062454402455930639064956624794500821629046392553647378694167215686428616204198150039277042931174995821371792578866750011082602551744153378412127516641218894657440937723722465728845642952936314617794149073934932961777931028931910332837547023587480390067628063641007359958123535685604140384266818292750094396191646618893651627124205500803644352915831022727590145386560687891819453564656917671463290462771227813883473124505253801441113059435699898344071291781854414186722828940527685377965756198055291364465089374827964671764452916912236443987103715338380616005900340012260065430417684281540880070714828179952218766756085413221420222392965780379762228854963362597759649673215834440160557316483661211269345366068428989707580063458213514793805367712437084186597619932211329029898186534912925370753585473143955477629729682618995211264197157756219411352244968646447372492343359894141252992855325517365537262803369569122547411058906323603138142555716912854794402753609009969838363108303260938769453759284084600685010873177689286231188595203487948147172769768548278705683767047037386322384176923041244625059170037661833723798692344172365033277437695749851322271022558109029225081006178719816618006300493468019095803441718773905317268569863188368778345693127264953354454248981339621175020239522830573432340746708364713380237174644955386579984647315636381286394850937446845948094236480157810511564828769479306529524614337543239747354657760286684276723950078560657088040839567902889051650287322786827512733779866810409364997229037186083835631576932352983369901915958275676987449105973479902789886951985042919965843238714356201881295648659768229643303003183593850093116233993191493568065093045591217546258379811533286866953609552332977159654327500889378923156882481517813274283352196992317178925870665124861649509818279335121003668329140511922855743499172658996044131688353841167205607744821629054173866076971086857500318864413544166297991341120696882744029186514964762131072829538348419342047514316033864475267853265388560584721567398900381127063063802949078848696963587514994652700139157598771590402539639810087105974873201128545481795378065455797696348223065932036813957691673316336128011723906147423071731753085403387764000392263083885535055527410163593087835207313083972884137200440624336155526033771058901737284302485937562124529703715646856171318565154172276418958666675713475185205613450099943926771476237166518414824841778263819904651249442825725433127303235410024710293693379707122662729952640040762797194890385742659284724148096112543029252492255589400957907920416955454629718270595692251180129346741772182555450554661458007273982712120148681147408381818715778222455787764708514749685957204138191089379778206342874136004535057705191053994318652755914201647738738091746177635239374746535337979443142991232433439405000999778360508696562746396402206524883668743672497130223605875254712623252305025817064612975061347046571605561494413385088761840346849723035968211705911315618952004732033762481875176664192517568176546990321508921280820147633187932551863603435212196635179789993485110176627127650131833577657311789848127491288487658826081283269132770563740890131654941260395129701534804779296123251879356591335153705283632408823412703267960654759741656481029729316221615600039205139972566032449778307348337780269095402301197873340767897934304705080139178437931243823831383804768669829606378842905862418573505590682586753278501817544141427209895885531072245190964844972649770388631835043801506946590987977596811294490926598459056200931131660144815432851991367292722245540218910937478010107617509072962273714424575281863451924863136666969131791073584148406512025258764917005840977427360378301612155728608609064799087897627089582356434743281705902738640539245481247301240822655256741056714018483483781987673546221184926271534973585820302091039661451903520213070766601004810179262705836525287635293527201749595885743233950299226964776636395343612055965826769254724055306091489986602282942146726414104775832920364214853119876300192632037747306515528158669987047426971196362501716543118229276067328665032754578876530181206004309986004843318562933255361560604499576072967557987995386994505398373902721812030562664099105893727807893207195238508262945797256300346886751984287146461803673286351316700725776229554576298061800586054786906568101118785779293395160910180744508335344167220438559908863066922995997689732708967210738723525245915058796614768493592344669949292945974062449053463094115600683014640687380448310878556815866316815993140628571479642766483532162282588155676086803550267603453620445884030629583944613018766434316413871015323517828610547444891674791231463142204398714240007873195021192779261340379126078098844810852728725787845768730038033471712003993430645908835703023843263299683597881883105933832434350232990557342419513250634975523422725932783904682724074031089894061824937746475864337215549279950513136236570294836587014920374211587191274390606882166625434685661497138961173973066934974945186990276844981539012270789669916477476275018515066685562068310204569189626071089138664367770588417558684775818105344846104355857702895581369586169999252333671959246617201641504973748376071860263026529382535664720608099722876858312891915374431751887411151330195244444069373199542108681316438294136976080921758274034372989388053424975794402613035445021336211762838261526577547690871471401708193486210877131111516558375304987725526602930497297762481555846129488452672992404235950732541479079097516844585445090878076657923372810601384548348740695420890503927122236217136394143945135578175177940464719741136254562256074332605279345904799609742428985370006202128064234361794184565057848915667734737419181348113153554297950087256108185268272030979804253245003697920251525102608281904536672204388218144531803439994413136288283214882006374530076768360570142631324510596509901377663002478610991527023139409960319616875826444709610830155024950591641595293234964245408276450416535802167319190780999868445210072729173981215691804236168271802825122380274535537866017831708608856087386566220621034472115769386821903177408762398378206562298195948155818626074196112919440212423535725183388292559256309888476075020026757817151452143717918041228179671534842058018107791194539139677058589570376020093660007217317024807979621589448129049071383500302685576782328417762590723906265275255995277776381937675339764910072482275388623218486749332379830336328119360169927509571526554396061238556637154614883538324993923417654288336551806424344914657465439060095329103801983782774822754985293997152844442087959507372319750104388049520696719064434883399983216357254522217695376225023711640394431432843018815073081175202252983469852563201418678749943872248426131480404062387298594350582377166394519403361968226672468362931259335974692051504407290963420401766711890266595328365033466895734623609510936891081309735266702630513116767024647501970676604142645606075573025420472853875683175996102177750001039543868586870888689409950787186633045433456978104746908741477451454285461968671066676349104042531832922368318346592840131264642861742673684084004552270633536707973908977777365965948136016384624312213337012890639216964217959154474897742988573537367010201751411247703076408062272543519380744603217638705080947263332185696114955476166635517138977447771991003517206186826604205946200758422527514326249522120672067660132717481764818390220646016987315250969396716226294879740312843656733579507092775089971720577799551882039059394958396020492659361992218994078232690492445186248134259960598033658332487497789831624924991064422949646333671165852530710390631332679811112191027393604675395874105926469988937021525987333301277149572166304814429000170116924950674576336210542059778171913824794160090156090397112675344213627760061944656002269461367395030944441641147825255070082287117682731786290748072345955849145000036386444174893699687108229002357436906787967210611280310320926086246339987458748544661367008180748586127489406321832400247397865760203603523897223371213744770099787378196241156718765365789005746951659178668337552346935423092930661596596621937028229248042984281037752282742187359251415358147180677017804179225052363119894216693624677850060039973397652346881390132049774065565422080932675548675384532313517696870754107142725069596385956427307813268458886716488680816211429081124636850265876600847303603456970391408441975066815864383407387797408795789256447208963326701107039945081390862748039315207694918085770293470056599918341860062399071573360023944461631682593674590155611404650608706871194510325052168115538881832432457968560644903691203647648376639187981194211256598170144420001926499961818167590466507588399921501916812241831720789934490843605567732103312237681653390561954491916194295367092837984574960594557641194087685581516218010868546060743933386903163872751518370368945529509399603974851781678537512232744791614158246976974998218341803763980490048673630168363749160542213468966474914472029571983825463403372136880741960170422499976139724037402122071241326710043811792043775579232763204491788170728109923985277728503095812203997890685864279043216364987067873752852106883071305811489382166861045548129224058834120076925931793388744483643620490416461458769387723830644987175068074844739423067577951557372126023507010836219469429924480990961229162697212494204124259946222700343470934718649725692364938578432228269700910467728272235357817781472176698840976501911455581664114865295312341634368351543717004382392496940096174401397912021636813846836831501869471943468973355910212885423950375256037259018844673479979595319330197033481770436742974456933478531256361760086751538276695749124792969969642803172654990351700966172142980995603482980653267413010028560242958224007340627165723560783235419621190212770482944721968752643647026614412835810134536703361090049043207710787751423861628862817404130669918591283824288434058354536081040607347257748617807611339632561424605634498409872708950272927351371971255582846145923642378025628821627968591199837495831950764387638005043602871499336553220937331045313682168931267743084718576293583740927095087602112731238485345616665016988808713154086053059293276180215040548846365027855073436951470664646155869239803362425213060427936419549866243987599323794424056080444150429365031265830659107502553403710233992078895961115471958841141949525753068407569492439287657046785470363265560449800446314739078109995666158385846235309984061914367078356346897101817771626846904411993552603537092452691326330279877303565569201101708542826581815804039649329199438363039009964619314677962458906449290719047169490325293017913691560281134980645728543128093325889233755572090227256568129707080962566538697690459137283067019078382512058787182581703250636715564531838011358952753601427120204373080060391341477345067177676492155319227569116840476279723521114972186117868581132292971498317008424117769752279978791018562647542080669610999640443838376907420908098330379820613206346016743221121743924140526014982836733608058000549304018168173547486802925281352541809224508391056591538755264702167426300679092845101673530381491422774187965198104200096002394659157644452447696387671577786668745004037290756717017843160463475003249940204398474302600718038753773436668294609573770257336538831596916091669628905092815876221373857719153809373203989423021838718277788093599467442710250467328720717842342269165883544352526915391100485667023341515063035860255671316148506869095978655601044702520995572643768260742103282241574319766078333238716836641124070133933535914228806835614031160741204306132622819214139732769978288630659854753195300390044962385537352843384117923984214534523471665850975857280822590727940301441620810760897245240665744732903278170825822990021606961315495744362647347538322894875114788653244067236438865963780600569734634442462601717307957028807416059265802047072688762441276498338558016798778493322403191857792791427206239499760565168064177993551464736231023731527036478979698885131165225669530289727248791344427217445185188242693600895000770320884506066728020936102573850514043087545376284809210462487028097405936108435930921249161826680366981472412168421143902518950410859710212977095609721590134443864640004419642096048492535878050861240814003454198489341635832695073545568255870093018344379047851488291550516463098006344002563544483444523372188600373728719599773533283923703511283977919492094349943952841050671168386614821222965194757096552927880934316461051459754267130413052697046169664866255185884285601388524306834574028079705374830276600852636762835392056006228080369101303615240561852793994466312594983284966741904313181849387454973370319581663660561075345932151257953876222457331514217150559134773732994319748034917114174934610587368788065034477033943279058917660665559975165847934220969390471653771910634219931708918885102912869530098702281057104181107734802337379744999161339934691728804214626162967777579610725366119130527245864853979578484621682498220475497027789032388615418553558003269686369071138531714468271893443898812949719670681334340581926883601409466889443010740337048811005901255668155855515133600037075360483648284374220178755622825058950504008527342523604030866425355396565451824762574612080888266127443752271440049996950112953940394214165864315376919879574332749484031338732883770560975199750243776514109910184234460150958613823075718327880859810303968474489741876150093855150059372754738715491712313453771884515690582221831525465053397966567467628500613432561944270177830425516938049532934804629938422986244652704734757230507975474567468199998817718308043544701364362608250552886069021667007068589912758046718329704116088399215942609942882744602941484904810024107745513972412657685731877937661337115581582741226816222198107731938782800953992674165037789220304892621032404416634529923953388937483156593619998682199139777051331573397311124532623540471752366655764208869431665273965424659213487819150599512212197962250506486653441681940739880161505448244104281077807851869136151352534385574177716724431728271612052491406036941664407083069011924854635596294735697646787042874822475893293147710754945193428030243613633715483729896870791107513862508132452364091117266254406823047872973432801099446901498640286080855963757636522280324136235113277790624779077243026312957437659049535878933094148292614046569223183838482407394293312597325369071790570483941777751341947380570536939639875067659655050842580974680958570496336493063411879969431224303667844522882396379339600740027617414919560833930017623918090163919121694531187723841673765853324299074455078376017708842532478515698754955869149266328910635739361531359681601119261741195762205529662372983592583590358180978658027387691187340604633672547032647685387461648667836752943387825156267615112304056730826687230146918327237711485360359462320909191771044153713413663081013174472142716485495158563419544775210538950871568850491817994781344345342293537524252672747311076337355233854616127497813414664637694909326751328115274277127574765531410593603845888160300549021278758723210975474422614716332005117507485050292965594663827309645727664450784794717323302812898034853086033212343593714632128979734653799699534735438974221545747808613557943819984424770827841124663209163607036907125722293771769945149695385018449718171276977709596657202802099822844732439211332577075066922828627717937362336110391913585932098602960224199858719486001566954632075743818651824652312389964579228581100370513126922401291624636318054818984381521562637154934743135038808857078395255287400233766228684505135409479012221638840455285320530653609500902047666178414544113092318759170629681768920623931669861210925404178428031025958170199136837692074232302983671355909452306829962734918702561406149424169284036599742635169106750441741898266630128369599321765891682957686802922854192201783446359561292327481546929948203886754139564859436556490311434908966401613116431247115501920926105860470278278772164554121799633689770694847274972633198619563661680178970330457081501773096863996383201486599579596432857843816118951818133315338616909783676229076072895030885558016745097418945128327145819728389178746588958901245376502332569129603955096368579522326645095444564045818229720054282562873092792955920039737694392765530258548032088777986719157109124608267500047101782062271459097743735982919714270772306434094694443305100884107789211070063657159283678685809192379769318263425694761840157048597969721520091867175608487584377927805914492232096070150151033652231743325254169910812453561430826676585167732780722967749115572930251869180519172988663426457987128518627212438236090657722105188682496853475679782731968010934196435447867767612497272046909185847370954743451044872234433811287886209315674147263208576990096401566836043825995588455317910937589720600720112257769862217120792960522435453311126676605209590213579730116252774890726214483712264591619205258938666160242687977487105849981876680195901379427469208651457111767596914717203526854157565565782591187805475821722552223687962610227806467077556992355132506852373377293111546080590058116976603936046942890370434001876912010501190812769860882025168838158600633573568084273850748184545654547763488007898669252339446607226470847028863074430407803385612979297025090104683401609800063308875101558557441579900520514972033854634660237161452451051337748630921827967023263525621021155081976622143796641868143364781990644467842816622364990294818999078764275182001911617682130093987893639624824952819948316320077402638262503280255923759161985016888221159471525286267022126769840162436558738668109505929141572788942656505347114142285178729558764848744204475513508102433520131998732365986897812737381772668631474870757870855964066187153452546039936673522845862737836361203769876203072736049497600564531126122410951548854480151046844333880782921206140906364284511408803733496918838105717058566086301874806221613080530243215668640068159392738879901141336046610314430440744480424227567138368282635028208252206692929584758393369609623245974778379384817511989893393945654658779869961559534097870430313055632476193600055099659888096734228746957081705944148177070026744076690585944790426797091045363472765177113372815764266541664053068487376380662805463619595435096647698206749148232360360084083614968923655055633186145412253460923575846968421045370600024870117496637649505296597257349185457981901166450954623449089731727097866663309552911590562596296657371378234371101650531867814602120925121516268401245536383231368352713359893180599735724780096676630857085377550713449826688803051706121586033079288745358905524250327636473431566678165155911692840737880793989660336322404216766573974233459421401122528279893567183840668120085237721903852298185236555990506995221354033560306628075185766337188966223231260455722153396916308477392495773410565300258811368419104068001255681244296523628759990483221534451414072813634363893985243040794391356445042695294069431276580878814765459916770314704817757022440800538938153554769776971132017701057701145524068973946186141013957075107169785326490180626954507074010222948341459892849021202031503644588199601795062891397010068535091251528499114764964148620707944522968296529106736098291435700235764919627284178807848049968716318948389574308119550147114174838918869507260599904199337514784970310410143834450515717736641266659099465596928542211916015970575110587350640865500147552927322797838994888053745414441471141093580815770872299730429760477509601013735557939275274563407567849748900381311440997276199433903843182860632255215722437461118696253336428267702272789105433763119514182902422472113776719002468002767822561431277119090609347626869100832547644173472729563053407429137583653828973752975265581623703808106308604747551195170142266636434504309971879542906629449675729709524535274036935652964819647148019219907307744327875748034097323562882142999304322852873339938221870043489207519159814497373971649113694243397930277204629711734920018626203655753031974554059089778080152500060377952853792038415229055311783415953320440021969363004169165248081895523091830636651406244321183971334871850937721186098531352714884099160778034170528141001765791034441526859357650005150230381207441846014109454392551504807205652575995022154196547817879531862874885609834507630998011647130647132698677101789399453410708890316786733134873425559416423062527540756836034152993588016284451922730211534162292192196438241805185129277827576132216536736633654869930437406624931079217333743563669231181967100782372559443910482896870720976570480338762623184866105827608868126782624600309352933287001993098642416301625556029228346498873182026404966827851456190781964876623763877351892482036617568096538287643019479329857455942306787960697145895046877407041013382059461002494474930707415184588190482499953270647072886343982696234615288715009214975500536785133718976502733967944207918123961459790846865632472827174580457977336590955703403505830279104804967722763543140896311677406221477662198779254013159249660222353812733232022809322612288278257888821106366506723143721076463059623369684686451040915868865640882711976112902425489327948290851245319150105786722306510151719625691921498733270242305240445268423249215471927388532392158768761578018909253000640233229058927584962604054969246300502329473003899944359904191693279512728282559622748841450684979276545082001271989876227045449119221449077622910211092966136883972821898863558770690489502305309734126232086310302598543309188751118172945365771225990667961045690295903937919103294744707943723189764464568338256822695702319911154926721451305456446888119047910026218828536949865232762346878502513762424792452796679876735246148137065843283747434019642824649366482076315991236725456847304881940124724419727129033407232522659428761981316324836611074955772459764785612820104143146388929508193377415571862403559579083714050583114687227603128488189284553301665693980608088767737864258314175738819532020426120297089423977887769906994094363416208999249383643605615342118453186382177131769480722105094998894455094814878080150246311292248247714599005129179914266337166583645840330682073293205894115207596546270158894518065364906129487176439564553576118288108354344086290017642593232391957704074597525867452706065523413879714312457138224118598430260169311145830572428823708007379533822750791265300162864211318858312190083416100433992817689554614640064148222643558905986646455023659780651061901068133854882232396812554483856148744343609939580911282973622951281292930507332039200066414172264925783105822262841114272476105100196554041968979115846703124547990175365620510161870346147205782406434642214805043638027929510999064607033731336101438600608698103228130617048278779167101535174297433183172601623108684600025811341570681682108198379788790108544228927575482030478691441779882723704278965949383134525887140231924222277151913719608454553551984290352038923637223279912707638697272662617733260821062853995098442012269023893363732547765817516788095244962800676757554512475123452384250117543414739632882648986728354426176978625047100989681163420750351894471675340688106072129544889437899941888192523054769618510419768233890165085277709163276194153501542529203538725634452514074159714340252906057371429200656921671123154758313102392873676200744680296508644765958228190382013971393990360520648423373493193231989381634468338113502544276875665095160442369329788486481180201987993637144973300885095617035744354998645372751880837172092671736515269538215420674485599598977584354273998555286467140412205527176950530984884687623254488644184324931223147573701320570263014339081477139801088530513462982469887313199112045469186433997741429756051537792249055667252806859580932493809553555108153795254278281263033778795003121902053946466744354828766853902811349643884543934489973037559453722367217477941726524737607046583596656350510061481618662651941646383949331509978626381228661836144157206619822567853544761542261658858409818660150011672187739525497306904103672259371665831573915396002209954036531058223424454782571313014159574530677237162278791822825792760521527711351166573399062101923087764579762966379294776438749311192895942601177345179940663890677332234271397777791059790186403378802217158675127177400918422006470493586315377636987081916671582005720741573304568120070756549548489789561859718520371598349777630435289697680785860087805812840829005370663469604356984162880202931593009555458925619192737089665217179939889571627969604317400981026203067563366039572289000131092429718645352480898559342156833579380168718648023459181155660152845998569015211744399707451474130661337071261345843723554627133760503152413289006702478999995585283453853380193928871196473002713487977065314478861441738052371911543420570968032494439525022038226094138669329220939038979953103650498549940295044815431132442687351710517700970073767594094087943751150859183275403303044057344099284560049330627038995462198129771505045204299304193893150790304322395638244909181070255292616231913212502370032468515904392451029282334184850544821950255780512107260493234429628453328238210978298740856225887415721799333297502468629268943852165015475067864277794234793945592780052176866736651815225787318095348898999935651202426470768347322599745658315544516886703891408134111507599447579862783356459572599106216214313393002111433546190349645776572776081334637171846748764976761624542955377095938249076157064310586071320373878462260755560164592189705094581153308672960438113386644154073344049020967235775734297862033747214253750141477883753476171991378692618631565824305068420769146787907589169701651478229131491582102365822326328876250266267519093641260238720463094955121420344657699553518401026944910912030314566548281650528314282011886628986323480037297229472696905109359198592669379226602585262511700162356132110898544991665466331610649600690523756856041684907718078586654760617066525942548063057563257451986268030920908045582459887645876527249245067262473634280492218082988867947020057628057014979581765830328813659855838579439255781064031566035707522091129149234846392853937500113949217434113421981322166210832638848328084629498614966284407011467205420519636595788824361414489994147283138062293882890414606917085954787638231543748488804856431799774587807047202671883402399135324825126514746992607948391002098070319016271213441492695378872972908849050353723873203692964760712047145948737657572959065482966246464490609912308171493529667197538131238272761077515161499153341073205954757119515612454379461036025844865342287138926496927484339506824749159088570510028766996648132536468803467455711454485811720963677487785035317657922944927057889477233680759014540460529010210514252662086423189604736685751974557971171522356510744403427065233306570500921956919855107913899930548727901464007851799889037533876531185562116378534576777727183052771327699289738633386233202737079115788867755584094257035360322684341712238267145525229433100599848308225942039643032925197069655848951177572160672406885516356781180898020626040115974386778239347611650036691996909592739464042514564456896439165653332156347358156742756306657370384895946109720832433716203268777007856217969145747513331970533494743843370767845943946101627850851589602252710453931115040633787421658017867337152755053622272848239158692690072365269980933175156349583631457077733593103609195550751823804403748424379314314747708011878831634072023563530848042832857512871526512286853292352505202493488123439512500793716140387944088423564556140428110526524644882906281569131537910977960831521611201197157951996885699150700867650430372661284034271734909087649348465521643396426224345727311187458466323569300434449901805809376611712451306089411002591521040934780385906291267350013382976473574626752011234357233664491486541417882177131416408303135328887133767354764353939123534620029396604366501422669281828685099042355736677805801155658476123137605483718062135640763431802565433760709011103941093322365700571005048720391487390729335346219069940967824074432152551850786204495838069922504477252922285878319882315289942473144396359105001132273924363101877912028356033677611068100000772245432186583292553766318896748160194945986319438229771346490831315963828936472239737069099825381849482499458526840173641147394653211570277503918052420333438343132183597283277996100366776850711924134888532669598054411059334585018762789379998126780173510195570134561418738973088682217648905683114357933357857757670509682800729272833743038183649383970544510289895280858542026879294599643945030317793835969282197329513046409949269362496359100966783860012049364313363239002294003744649218319009781572004732718068047284253918361466893905449320479759448962869324515931002249135425037161896775642675218938975208558952878486928751416252265597257588738280376438537706109909417121996867549320946352299815990802479641333400876764899422187878091255912405137991147469664861369767157660641436519837244212004401498113841718674895074849533446850913641594999494565660679018405086119585792304574539742015458957836512777009962738023960144316177906598358206010460202428554949453172092146976039997774043613706618570452203507554326615634136853011402440679730552014620850659062022209775423109081815302883849719218982932062651193717256183816811033510191040430876920370965613711340358683697733451444232571946386140692811034148498124944658942081516097179434330651862987152980295334332034361282822427593301441986142961703678480392564152074678479142001134214721646514435453427048130613630236693952659788186501071323987987580387396737514699638488434918667931800997800383908811960201418930617173682382916303140877895573054831731418400982286061034479226581713015432845096832786565314134393184541615090351473682946809899048314584948232507497562049946769079728795056116446825609622834369859012497038151785718445319994368965707771464517296095364386024318208826623167614667560018089731711390830008498423627282554937807345788403633523280127683746669725424528410071173661653712248622198614745939521514067594369137233849397159314462455533722732763195060516695552253713920720382350904069886987287210239357113095303767723336629351175789084375633253810725115878432425198422948954326838414651609407570085055884491290944752789429018133614558670936129349908769220461415031097867195607978282814719047337195764997561407204767232259898899648275907600142371786012129871183988782664050258379054086924740779257242047671553925514424724798746008165355023556283055067882121346819399094880348354529132208263916940914096785811980032088238890431610810391530231626330023807502296578125481232765352541117667956903896663952630038886469209883035715198510387025400321487618179560116420116056000107049571102196953544196303320514376776891507943750180325541040836433799249163282532496514867062510600371025473335048772219693394914575175275256717060910458767313531059420440142100953232991427497055151613246578622768495882741997263675609592735869480802874113475737830376269840623626528373488013470742105479145774043622036778453859580917986282755375726349745180403045711639858130942919176781625060158845359339734726380621556559095564634817938241973688893539996449363466878106333745651759186335881260272361790452180928401142933812819414714601640122379195161863493483613517371398018798050432931771194709230412178947297433187979460668040889108594545501219216302352110633030386374012240796365558951181377212017189501324446029296488605003706951635428454209451239878700302721220211040422766671909976022656648053897064455827287074281963072782142636021552298386226807842506944692571624863491965576547889324116894284478208034116281548028836884013372719391409668385210921321049198043279935958496666953171651988589088843516303682737445487807546075643158815101879967650181084721154821017069853465187231277016989594401859641251975840633478753306540709968124658678285026906511332093445899124555775888921923676143128456452489312787701257765251652608112100411304626126752805726168031105644601007156467125599022502814060286304708325309489045015994984644622157768171536977770476646322544525636103294631277817385373092567902991958297460927468778912029705160480995339088903469132271096879900202606195049631630460020053651336889127685167094951558117017931111292078356277758985172228187771714819061321800383297188122858258288464099379103743280905011011513043096285063663272388191551527337004611628876353950971919598480924626088848916688731309502372382388354007013476558180678183666818902035553362617250224551524354552227896417585465468315898317840974255326001787376899084722971534016065410038832199298752410786985870086319480833547671479961507500188731512011444117746338547322086592743104656352139960561932440109456381397429363439251844293571592758926198660806095754520814864553293403827138921614215012113648600948230232537360825377626025048894750255548761035144076934615839802393803848870718425925401697146810434195145122951812351269724855445259180404856258812633985237670557381891458075556416654206317554595226060964854107634944680452774456970650666434711885830562166072682632528101422027479198793683414807409735067438679127668643461349941629075058216039911037865920256865556427189791205813753603206114649755869503371450286719634822522488707967640765738141647117708271379912019520984680447194662877834659879216525589459462659951641871022060668887132744343539293207180726224529809787573186799716493742630664048742885583101872482378733177746022290793644444135943055550178754924896006930878684773913378810917432580007220877271060683701900142635384111176676283276449332121263506532199138545284737285946985468973190449789280823062351211601329891745171672445450771750669167337708866085339335402618543777507835593419375876059699608824151813747593067109306431511427385687530426402454705890502759492643055301589342595099431180449100152502627902927589826298994380460613278485647949728151521842895676577954272125688101024274789737934691180509444808904952529410011398486928270966947655415407146490246032136582592641428126249902758733822654779602309862508912014437023220943368574905188416026587352230936989417289487469598990645437515759514186531432824857253381133387177628072906347824978331929832668940594312590192569453968787188955771310512395581560982577326446799302427998616862483869398863755786989719006450532539680813688642076399373715134998949807398763807666207425699802368525282293556919091348186547218471571171177978005064338403789565947862686550929926539657054925689044312505076193096225075560197403126541717725951586256111769935312089124811622525125665602186610359339558525809254166260522403742902913117576548558431336821498159729609572429517042802573371638008310871451437350876953299905525076501544361500969945287018733298679188819726095604211588021289679964432502347298964424792429330241326113959547248678312777264844876513604349635411820035553592529517751935394718811989018994486364585424426439745925717774409132547920347656919370835790900412479349721285637850897494909644735378942054692091110274309630044134643878008938174468727958671235764027063975540468970676401823945516606872075972134496473002731411009865910384991272619616128737646060180389493993461395850150723630882857454444490226360971159522300979456153416145710207014810981805791446117499522995011266603970318883974714965957546656026344389960709957932725993932801545643250455369754890764302573294501521736737025241468675689361090813084361784645977436230842604137793012427524370007511416788214641440101841607010815577743553688402625513207717858373073715094540461536932814908083803667557426769423295798750538843705394926463167531381251214126540983133217098321676256921005211915595553607756581492850966569212260595261408299011121904686963978942074343138062560744230277762947277941609080750763580953037669612687019331507026532363690590017260378121011423449992687785925879268538467754955038354094834634073656800275160619035866211844998956682288068064995677161431091931370574664366754192388422639128532165839506838310522504160744036868951171194839611443344296312806657105696458467702351681564670869788995220466267010812676473185329509105811584340775387559680049681143862023108787915052380705529753944872258911344885645350050834218008557120351532326742845699742843387208572690522437672279822228730901814342921766363283349881882590867846720614423775562286612998115160485912813407659797284096828580691194125741571064854416649426865726508654627848589843986561864565221519259192606627572782041276494116311512165536787986403161226201911695355032912325144882501627455902926174260807232954492090848067112189263896759179111992243116459327308560514689815742223189013447294828203642186825283772048800910794765984330804989142978217782568463703492540462203990390714903203693126213559248737918897491397814767791207754960237744840109788890597643367915832015288365023265777193959065576905532347853864253551908163785821012585102081786660815040756125981493154941544641072369706007245579940802861911187398273812003108587142900589684383299146116617168612856303021419629384005729127265758828844772141325237440190922291650605763215996657737101819505618444083613139537909887431051457932203457610922228737695237140676433780644650298589859703723984965936761870088386128278303522096581850746413326118135788682214086065330814027986255068714419493913747129958191998884743054839185032252621462742871995062638470998066580889663816384141353145056923019002513883262728528319611616094714014209361494326643722130089607348725068979886976854482845399665254486312843638150702797552146540134393435082643966377863934009615091312566006421759435645285186608166972248774534155903810199868025097642583123159874108300439307629892831552243722730766994158905575807823801325186738431414645462506091471241033641764658856740314640334754361743721934994771284710198333265648269746029241970949344451651746407791595407517592308466033580205312595969238501885350948972788859087563507166595111547902821181994585541331403488966521178212595611511921224681920810180675887790988258342213568523141467896041229847633508177783487545958050618272759770250115922697308275707865953365380193654075055203456281903158320226014439619841998164385552224401102018501169722479808336612237552448717547941579688308516855528471664974610580286140462333572751912840254890526985136946831700471166353476800438347257361730707990934651903497881481097429970162581090394680321090477421832727218893985440137326826781394637315461124012707151304902969037855551488642632389370791991461674865287931694353811009370967549469755830335157059310929733916504437117822792584791104662266993325775974913025976856421753475455841105258988156755890657687747418473090324922101952805466166972812459590714951215920228794396600517856887135737966933955278816931911217632804464886348622121818612733095554631172751559860084804282736964874686525896219646256052290083164567974085860792827924257057575669767349719620326735582900336238080973951029107474822869333212258140762549218394737275932765810579820392894950343469724202396641359389056780729514344012640022643131245299129251470580968432760061490194007029388581603454824137555810761099923588911125412034982408781819057510416377868491299823264070509054071307402909531388471164843763494184352933484056241312771955298585529785326706119355956773672947608172315781012678189544108396459755855115096742164512620181236837185250745240455787138853313631783088407976610849429874113459850130197979850210824946959235695073371688636156342534010721688856367117081796175256217190153896366591496270300278125794921157639065345060901242094515818271358221367414563446668185536628231097544761063471960659055755352496400668059239467475909691258170919033862498701649822736836949819058424231218617349233936083092907013499664982547569378482880319215180829830176608692581598714438011991702198369790541191283660259827817161000568303327814730178598545889272591159579746580926212005089422717896848409465316855596701375709863979779095617419027296608591166117967309859541813717047292866995490085493570522684326764813687048292067041246419135769070184118742746361496035904318631922704789245101436001122085015415903130328959325246534351757633251781307405067906854971989673112097846342639983189120329083260084594117127418605044264386929021495224439677648728913216288628546384991167531575258144595489916703407216605402597823371869200877230017838433286263053434353645802000638191255799680719010857846211573212358215735576070239311882353999863654517932691143709839165146118725194323269787079543295559357391469391993512494573140883665883867428689660429043230093901997077274180116150823189045890704945125261354178688445232762616973683317628937393469717457138696400334899942157044595870799923633261826072561271426314090070631252216202991072156262598248118646650161572427944420082982690472559315083348060447443401305396614196369937174273055406992292097172464486261691162663042575891609152697691079324892723927216431317899361912629458089541115624264764280281367090341901173679916797098062738503589137134598733058359619308488026156315747628248639856783559778885489603476868401719963208527303758397309785428460017647258479019238768856391189433976432606765005127253866389628670324638546535415278227439516387235905457591977613680630357567980973462078537987101309028991623720139465530801586448298704536404711571459537453653206159704852423390012318330949451169548389773250340351480672713480841303604859830684559587577581503758648318887898640135768603230087479493817235084489495591471170046050130534756780678462695300606758055171106165810075857415338509140330393953032225581187850319896606865607868915146925596091315433332922825988734402117097576531006484443709754378434539574716434518704711419566082610328556751773273195949891249644016823085110412729164852740496293765596139020213810500463757195313597964571317950947716210012275564780405963278677396028731956161894960318896006044201531960236443286517225237736246971519057303525276898019414763513220820326716257231228390861496396615576645547745529726786787919733705057205674077335734932757187468363348204789144027289185233789874782589927757029016064432227479385573728674781290312724676660718427515456591488139054842320512289874028986777469246466062048456536765584921400048166920732560828331798644546281366865980120645268627338359008929872755331136839206098135947663648478803610167835788309903283839891516148832607785431847855065621122490980235657873093091416536992920331058395521230296344910426597909749961841261258373808039872744438406831717255510924335001946864040898035756351848748434512829703802520122226953117027636554703343210056890039869737848135417105885713250840633134679897008349285585682114448895960720561678798679341175967130287672125100321067615855713358536568469005101129153899913980389777069657305865418902312127007339394728910911631863536222990132611635842186175483206711288094282879384681706224165559629388535705814955209715741232415448747080856463875505235358592695080236880020922711037383992325318036003944539835016319137221177329391027348554900172365928639509074264165785814942327125346077782135372558796084040665849983765359351508939718923911527311083765717333557847261166781321177279135364785840507191163155176093072847371324372746143618955110845057988982941902172954678403983841963980492414130182956903222421542278532456214646100345634562645754075845428854014990452684316526510059338417654282432297457457046090635153993145529628735270490664536265703502956784022778516032296382649772545913746927983582082907629132486472296415470133141681271407566375150891077395152555200168716735675191993680994058062333373277307134560973890149593701064038678706319974228478209242117144561742626389806242360562611541968334002825680066824447535600256659937232337149201855803380167286932179580113415914219739053183192583125318278428711184116113758417523299215847001589379520752529364592090266866937529750697221087121827939456341003478276095039335800282934975856778015973471353005097847709217999967975681221868678286474730013912855442434139657790521241787309597471168831573284246663057764378547920664925515972794923627853840827703925990994219062226635777192641603471786183605983866481629758170551531732172832098654272838933907998525377264698634767424533964671287776176832029442174962236431284465909470032272345813800263040312215955291814911253577201432377418686321733009413714477903278870568135974879277331969952405018700416795736350231127728354549718954684730194903350262772671058613927983040539636016744477335891871112201012408188355993965040212089579585394679103624039743735601110075991718845403262063352248040435098126403468324923893455504909592016919866592683564671876516124147854472208707690051824380070998995004877397567794748580298967099916240710981162510337425177047144167183865050743691645180134180506136758866390324132082246638534046626439032666466298639356966536136382298672388994718694903421131025413044641992833988585058988403179462387331283030880369363965398832348740624813103692665976341728452540839734439370992311135407541780344890150289484297267968289604321359513602904903059673007565572851656379928014001042612732210077788171120472704588209240366886208798781861783351270447851389438831193536259514995275569818438775929595402148712481389374578173552112800345629767592753856173473657739129987965568195744996983346370317428394209629735578027427380306085569820223124560351171639099498589973958355098774697104728857648198062852168185936278273347954016328870198926576291965821995642657244740909456543383883912205887463587670679843029166826664589000894748179540381153127496934145581657812359587662947193071704667933226280468823509127741286240233129100685786919421778489353390272812910170906148165329059140821737410257676383740632555234304575031652474184648683896397173245907298842717647070709417455898415501327283896620823112708159994051959460072803233526849986934012381303898080718351516211485122197622171344927347929100484448648980799414756406515307053965258229555582682422894106934809994696356502064400679718730991591619383964567387928742630236064117798716208783024608912298102903872595251445187858220604297699781722352556736115754664005189496920610516352059266538371902100566239585438020100539387758590351963475392435850580354594684282224157729185038276161544774221278160686596177285665264151162396780442974104892814852804698382351773633252345347388794023539137969343183080353586870909669074205132683782046275689309689136989620924330936148712745642260653940308578747202039741810869695621925168285152965290033681248938866363116087718730304675454200657777874256775198281833413518425343836274458579991254011911801645176592901233163407454375035221606018010593159729272671898836462058552386431437877735160714291366884687775011912034456836237133493663705187355326652903192701740760462372879609818817079112208338819592170614624330820753477884243419350298984186038564193757839134949823929958040794809615364804640842153618763478859968441427649753893171065366133786143479246247291594015102690493573114285652615693418501220656589498243363001181576950300448471629820405848116194461089287479301619154723498394746916503753143961925541054249543992085599359119347411002100187076031846556778237908200169348030669781436031185277123308121848453369458306290402607592593168736640719319538697750764665108774797818343014221069243465010551250611471989756772859662132483881724811654272344972529465123923725056387612310360011415135554518221572339214509078119329052254826444390563239690864508186165356598123270961104853838107283337292156007920588299765452818910656716471173394894876619755624941298533320872518538657239621090744151905043594074218977125952702483591034595509756638397311708242073779803612567753146875040181132000731220597569332980970422762999931713388397762804366245688895251166420675374082931885403474008394633929661998550960382373462413777944726697895723405562446063508932007559075548043793666361137411640516269414341789020102699906263758948696304667126012948511368498117952375246899571881406329829279833197120481021748880053719686755228860581518885594901479980090058850737066531538554427095750844236929224602763094267849245872166827251607948048337210926557207047032267955346894170727602213307145151671918075261254684814918389423751342386430898875872341556877016585546327489716078714445578848760535607184540416976740524206671464796653650104819347143544475706211716296875012316408366466159707981308086752535176810732475893025331940499390334073023903406158864529973431127433204784575731634699178394118338592633018835212291503770310193492380087615223503308857603528068229789122361264341057177104885052560572646089285232606288533361590127721241715161445449679650341996335581579765087422054626419952547780225656073455120193489438533061570359424707175696670565699479436092339099435404674118766780285457424200664294106411456829056513198041032493932679050371790624465074776556424787442473982023173521988802711986608572708951005899512251799325568384472524852329468044927731666230339937964887913405262168911990894591184471102848893139709285312790201023689267380848301631366623309103320165422468630565158784221965439891361250334834725738411258457323689519975782464017478642496265454632632694992006574873909390319013547503382285401408705998847774460100646222171639464080886903233759870844632309114241599895184155959657819689592851551821604198334036186212686352717351151114058472145335222199191762283904219538629438613673771118068090306819221616457021596231298061641591905755032980254112608861464481955471652525246046221017920470870787636427740907071280985222453420085295111105256672329563258067616780447066453074083060601932200971319125374924655238227882804822025334987493668443014350048074895192807260483586815782603245177644786077127713772640505265018181977236036955573778936762829297066559565221050328228481118849829150089679032703541039802094249040731382225597234207712886899272708272538747664554963531430160356657674946770659264407668887775307513118879380076062444958363158201393079860434120555538166435060933365449318811917448232329461395086095661305766859848106999488816769504671213836255116757999274073098835183443978325835528710331169345744980360495042223380464222457230894018362773104716760068434815148700349354819639156879939953413129640720212140058692630976968481254088571524222111754636674887549327352140187326355700728947680474590519815051941165285402335580579995100197392644872436649499770418431758861660017535395362964744342394415633654577572877726868113818283007772190890062445104216371557597580249001372608278135794582177464716191764946157265405268658000393377655825566737631311753598603306791084374439434471062702271557597090672358159579469517717466157646101739648686908697761370606180941192937886588130084255148322397799824162305873882186671201483257511711410459274904216535148096887121812874322663050033223872298522286232966651914995948428384906298371858062952414022479915433007140945570667687373310977205247881627616249437112058225409426938056028429750219921865305778993637479554234565695110933826104294470406551166404760798524851936164661435287975966244494320650877477338644197423807152399625168758463016716661547179835261816954947051300712526958530083991207114369815021492293811820150031071392343835532583242350038589090915755564867990796487812897888584691040599299351124955499574780188836524798718505985241478736106407523639275185282323599687329627334504098720150799832206302016250386984305681774441071599665072463903889994091228580921016947256053392206927823644143109909840091016044804803890028220510177834074227521323875757782798558539307777778481801662267015022962257733121971946471282028767972607706658345088142721824871546799067658324828116732481574250440727419578836370012836447929739750387804454267173399071992652035386034238636932859334491739319422055168044239004136890237339595058495447591047526033158161181627095191596887646624786044362920939959035778510422416381485802955956062836447538920566175965475108029126609831134764782722772215541739270845276995770987964516696912443667260867151766410556942173339450433483487348589721601328751168515364127533834658609181786645178005658272490052965310991216841619653871614809524121237887919029605395124033321009135231812701038370275437226062324583406163247724112941588972728370250402444180013094961856937423023687307011628774979477584364068056429634698342317024017719170048989868305876496831932530977422360448889829209827664853435475929428218818327118410719444323726790809893431798881170536512121037027497881714199931165183699573586454985523806286830717892777555032172099033394354597595280999799613428230543760176285001262398891526959505520271834207881512194400858777003851642776258860624892521511088091014879190034462350976575694771448287716781205957132129274870954100879795257751771966541901439823497855084821606214445799168188351380079417753227252247023152837468987573772676675724364337526075681299397593918817761889020441815962836172054374440050253963695158383790900945961305904726400294022077664549538905575300997494348585277017327826479604240897304176043915529849146466910095152123034507689744851383035640658346903051464336101584998497678338197760120589007910711684752375244263724045803774877811916711722920482882273341537855382179823185812802643931902666104812252938097622371604689864741110303902680530471449719834233242531403503350612142651809160583423624260669987978437798834646975087054254555861738037694620840177226217027555024919549933328460582027005883204093943855504569722996120873662289360089219370750830002151843701495471299291048434325720810294387954091815975079519240339661580480392869845278539320935192912584698390216036098198924955869960387684772869826272667964575630805163003076415723013527674225351033798072838093136898184378476960107876164894149960700427105815474234795165942712699604685746045271716924594656912899206987318886577609526178925743093985865599328135687536045319401573659792777786628230516321903078034667038797493037773512418639747939966912767120376617274845447420677781219161448585122509025488527343514814125183650100054551940026422558747063458247644186356946269739122614246039606304610202510608845100935934893521947970521262236296953428415599035455691922110009613127116952440946639755177479853420338964522369553072748313059130870689592840109590638640968112914800154619431313809172527294183356138435169221588976661773985950433131776231024133921604125270337019097532519121663607511886759030811289919836509841751194254090655973808271205792893578315765656890753577932206544711836638038366523026041422361941955576745530139908526382198852545215647206776750362111507217609202678226818291864144354026459320679880733424474882013303585562604259921111992193663852620084645547214577605716898082071681319507588988822226474974726110798539560071815114580808297459805232776143470558037421503163321060658678528636224196733991605121692224894170912392394122661195605928212041156161175349496420710041617324690673510740132938934822110284716126789459318466264735462354529703159300462206623417377402850037687638710366949396899552607509698015714462074766903526005709663981656771596051666414433676851374790046352733356565572780190958421439785737191874446921571550894849015319896307451599357730674381670958185405829225425679489427055570392851946257249274954561178752461322590288238069784518904127753587031562447649866115623007483837684166245044988921326276742177845254499368629309766120714919537966866093703011193236092032491546139549781488329063534586545094241018104491734263159410073592774799542056608789123705529856820620427560438114077697800562105063963074256331852081613811312058393145218251711062124965883589334529013879996047583448295740921322373308851235320200154977764452009237514376918929200045492105909824733766336785666677379608452712472270554936415759865573409057197246955950535863006768505105896303853548015033512448452819928947211504694162729737992374937961887413019366693322190331575271822941627264767574662823537995766916645074609621076408729755196772417625347785037572242646103546242666281527991780130400332734165707859931183965856939051573789969714636966399524334618722617461877653419371572987929140016803557340360601880924998491123019903492183453837719011071150721750425718687636263218871642216255679685951274816513263924941023597538381292013325379142891852801409862158265005735112317109144016127494295315387806760556245691632563930485066073377424517855489004039148782024079097062420825155657080061347423018694471837260125212176467401573289123454499313491291263483439452103490215548058553774194605706085612081496968933010430749544933471062763297026178561799211881500997324713627861049780445362793982232681499879131632831268985406291481316384765108150826777654758755701999150561902887101925111684801861223504954106570611848789008134412608681465617801711400630969524604827141537636185494594473678951628340331634100457895490986446387891025354602883844085948033692266584970502013524204216929061434236385677604859466436790180001330474050581649969190382311512701938307239486695361770453762021435915913507831166307362553655754795362576512442278905464613436559777802996414571516164227787637658965657356279853371636615840437619042384507840803240858157454477034696102488450460088870415675317458501761883517807078377855248279751339168080938149128439771678807310215354150228301304229786200247954747666463408141440155968631306251675800607457071800857737614098180721169257799724453233785352648548540783901054063196683759584468108216396746813087311191912589452411029189535005476772841692098881090147087921684597597564663915527204235811583404084631897677087946731642022505110028111239520310052886376643658797967069214413006164861762952569281165470544615141920566557008750704956218763661243871698164494577760654393326251483492731898577052328041758774168526841350675962949220024543730572497642411830090494515574543663904262945060424258099924236546695203147801312151724881861884870340598272691572263304967178634302740373532954363246418546321823433888454669408583638127629375744609023846517630644652100089023064751607216482292435711241547312063995425073365763838754728393338641695854986984100618960701575442458677889282585451461624837044756213695473418902262075190138765825637626305575875318082677443820627220097948154625745811164224712229470170452407423698370401048745494682091836749772917106112640954916017247324108132659618930803179989703824891144982016300909433982629878539297418019833439501720809075992342597079991064734707288061091118671265793665799440295306378586696861294043703245849892750203526289838337546488552260853013972226121505881417118411132450236947384037937643408904757674788457238313030309503648431542948066985097060692038379936744396179301991759704162904814738946559472195579855829902113035422590783911900985292501800395236896164990964823433646393821190146346239481121953064127494387372546771535226616939422055765300518470885000086906380118915502643934011892872864726136458604216519379943974813213172365450354359172804950600656261917459083905824178899572303247530944716202168442385017725162865835390364987449350164408738037704166331470672321746122184746564005855047914916442574011557001679102835715479295154825281091382172772063986788207324835023959469762887983447393275129996343179425442942320725991802538296750756360038599440203160943186776788697587283178544598782449671589582883143103455364857019563914978187183756420197494071982861333747063877102575035280712433138627168966333669829560898692480326355057649352200684173225009248274050980500835921037527414081388762520775158963916484717856334294525909683911150637197022925106992076059529856712954929516749204657452321705283764337275691483395345750341721050314117755699099269565872606076171520816391141090283110927583424327344342057648746302397737135207113603664352978864173745761830047375865691100126633648509340150435205188741013811911289899817474536532039014484175063263628050618549231020193050222313931118732960438483803886753968883751862322190659204499604597809705575144094548331578108715109643393062147788309165081753807050814358551412930696672112202512025276740570319825371355609054295549681021464818619066687103629347231667034764893382609810370024992490064662979594327533596898277740091991401786490917819634142742020538385381540897764263466802392026940545050468423890312685985652880247681753052244604368306009422372272146777052911770863802630727451739856801971551156052185844358356651127110792188769287353811306587941700622133639975085922435974199930049430843789882879667766565582987881236852090032193390052162218726158574493805389396256362497511273965195786297042258196072570980095185834318396924125217501170689819682175492462444472519748301796401314713010218259424821238621073320573541999933728826505889762505598451329093246038170008390335834633525158760046891767589588231673809458831604909804152762660828993047961649811092272941893184872311996459811524217677830363428694678749247943799193326206898851369773292456381815510621050318731709135541910588427892613457866145643680965231549515555598580640316719186268575775049496191123026055256548997436569839806761448356981350254730341528655027680823847877649240477321620453715981292045861186364898999652429173247123713530481915564487580937485919416707396996867571371931621518229517728530618774568969664051692651473292250065468197186464153734695324670230485644550689989462572712273544037163032621050180085549057570756815137879653084839241389924638965041021397132667596857822753434176074891668168351579476039064106961225698817756566163382753484884266895556875702408781639441378245117737189123549314877746119858225401415064404719553955403337010616283638936302402746993115010057167490135360756248007905885326619293258187803950071515021439039953362120378140699780748211361412911807768542653967288867072975731708612095370204696010769139188837893970194445935201307264275099781879845078726742844390947082778132177193964159564188588120351480088292963779231331187452238428192333681823941582399467692879496497848310545455955784085139601947362490447517079043987118029689480172268580565238134637933873787574385608954122159040229331357714838888813757705074352975748972473143901951449301705501248897740362599393427202539146951354472228314956843507236510798845589074087827982583527075156281145469403982290556714870667350060940171043742765057175743922408215012070026518987779810686387708949187375154832809326651698256852539322743877348247171543981616167740428828112878733503559691175178696079901427798737855657311651043110020623573964671128799512274688873950995986785252628778260425904424943998799073900527079936699152409500175139971507715853293862374700042654502925920429142984271399427778759139225809355751905110195466938915679016228117222403440448001903402261610528967981177345116221091791922581695927989977829734368523070172092204550132528701886263289004092854510410615408233806924693464440039410201880446774713862171245474123723710989260753032612078357324537093414047657830868531903194693059634554001157311466258393430680876968129800275830968202168246967493970938834309600485094387424394165589196136930928505248014865067217372420993869733970037548640617893067698998255553125354386177218321578728755865070725334823363558159560541237069174308162884089547387417542270442826679166945400190897355399485020905398002927801444824683152053283050171419019999181478905527333878427475661461894603319067716368382088089548575178109955375885656642105127302028404336148746931494380355942519260605263296823840492531482688735621423851616418431856777193178811099168238932400021747989913335274481517910685206757211888582234920639115825926800706819771170657482407909229653662626666683140895481622690121067736929419181412184007577188739339574715846706448755647207905392744119916792693849971408710259198045604858732119987727207073737867615716666116040600138279101823900939831516968763432656100128790988000022696621123313559889655450876689990518880690623328859584892469314857444431223856894701789695691608671600933430083739796461672832363573963553186802247430382639314409388630578928659555098592247510710533581121406293404666428444788304529930597151964621474280424216851031372167043477818740246315232685945181451444350491087573269209039342228293955230419820504361399365076988484859952968360031759944247536703285838666713751530730292282382953412290660316711982615809018229539119697743702083034574382845436082780560138413380001440207698669779643543413316330140227166414010144011987655153278003090855640375394765523269488712966773860948132970851807642767715249948697764937914533974569273142723175634879460179550989060765938418702614696656259899715009767448470454823632000734543801752386606614815953756397419709364225064890793483849781423162725478873847244675498217017869350213371045322044466671206705315403795525148168206739103432938984417723882934237246110187722194017256646868378941960150419933863385658389165566617436154490599536034422122506112268607691427532300369705364002501605963118621120297044913132104217202443752715770657193061786748323008808247638159334970208107416884894387728446967101473546758561378018234587339269885199663277737362896504168586068010355710631562231617757615326832871709195249429113673367793955939078015154958258065467338722307090356999389249652032190619133637989354917625128066481609152809626971460053257582879556253979007098787711979452858424169532373215927191516545226004480058829599440064356724252756000249674532436674317752749982776667778310411508368487040992642031936658859756638755068334271822358260959695150932817514768854457519086655320618008511173466438416220679759814299487640303048985476420013493420585637205288699529622208991016858742048169065709463015516742561209363066090316645124712770543885954232634972560111208391388464345689315528596658996964321770268912272730013842137298296205663032395451684606661949333417465409783268792297763071391648947432366000741694455316792597515062023429645779204638945879038125698680624189934081016368875290932773875826884690918389180660452399871953381351235778330675515030924296650392271462817773753929637931654380684710392372803231117780879993827885772487280913091014278732301487179228636036059368300166345410044833585444120874910246299859463417303717544753219545067950792690860888492339389720614326110334926637340269048071517588374158141805272087944254175068458275327461917253360205283765207357292260583062812103337060983753976301549515484297168324286150292782939330360982195551443793717442531565074927467328873190094047368707313876698919655262864003829113184889512597719609935397114010238851487068641269000680517931063493666220897284310342829322113848235978281403746881088947730721476450490764542215960157688882394483637424028318174135518737457959616204574459351683920873551360250587268212950623644972220118887985276165525729969599298700741416686709592040195432485145447425850714874543898574341853809854599360840211190563270301290171320783822900172652388391402515176656236135807847418507788734839789269373238356810901536887647445792155588732735347157611420221907148584154941036697525898072007126380540190366278949843884663675088496937716325465836927731548493216605361501084941333133570516030397235466218354354403335536988954943455553622640564072380704364721195912895269250915447320764856541576519400499954250494803699484185669424859435481276829360935046905898254455052196520783366087252944663540363723929698961240619873309077838103507193642411339765063862880069526846541047053095406780049542008743397206850001117030440215622705515022185104933135580080239555481300137099906952531474234497177387561030859371839429150084485413842549742314593916470674879001986079515093663391578370711750213017520073808358402494426547208073777743823708662259696686679977804459695664211120618656862648841580329486744077099293536967310969714631646100653661499170220756012193254884619789665199989182033740631011181537725693350342642066522470715173524084105287831018701862473002755530439061059134066393120206567367418695102962269618862908870466603367825630373473765753037165731888650576081318035740842354763607322283252740660533783237551930091449771905275852220822503283365955386798463198176414244551469070956433397900773196299753060440045371695696255713475456097267359573512880749523989835635713122744882292823819525377701112426748391987295746085686111593024890877655717841263701464423801431681537444826020950806171412429311969726573965949905696586233132995354395705484185890039075469295728713302505114185441621964326954142586456064715507078894320053714055455745929018348939679377094944854500327207323330329188259497869506271406767521392880335120531232464908558885671976276910271814166835970983276492618811343800790604269244864887699492592176483479510966858913628231028827918230053946420330715641188306497446027503831734957861472188122021693057135749832722996636365566768557220617906550215359708837602944680513461519139966215982289914674557291006694035016219892660477510826584146620129943196752592490462467031839325961114825188334355944340429126314359481806872509970141372129929639698287919626464352067019934917702177542914189974912733019940813351878531615637205050371002600654856406331751089954583067967219187027036167175329672451757330138539452852069350749798711603596490142792681438360469125557360126482478238549324622169814205058407375121675979821248165238073102590168395934570925650318516051887263679187143519116045470858493117921952138715008538559314447294868628835083762303728026128713956661389157696169274157155907050383434778711568463081886158645834294504263377357022747155884914628537137841307069917719101973353138958007398640611718651639565388322550171684725538507639564222706562162590484120399244295333389513010713433199514937066394618036614972882899050289203847001684698653911927586906003515261398690514357722542536038268528134036717216861961218234606218194950290424020817811969930769524142498602856324846074588648044358649193064636855656063629820632682874895438046064538979324242052842637898084445419836124605356067960761395449325261152404116958020907329230448752701922175940706767207256415358286846002702906809962041024542869459051505386283229051563335156311233869973567120633207535917425458569512109624014034830241132809594341587877149420008000857864411681144044370699784613868402891746487771899273951995409539836957094672492130940251052514728011465387356302538341977708315856324735866466532172709382464022418190592950598190844040312975589152307852918992862424787801932593202715443826666699164198339487477470189072364424536681276228098494151351643631232351277889210687139285187168045274046853500350119011280269468630364953849077959463370011955595469252376347118773670514902918441943612111594531557669050288446440767703685593949914008947783736032866363772658711099012156711541226714077284286671261648445055312637424918007265289492522025996487001011274799760482440481490754573015212765246870348383340039532487597251912069485442682354533121332126811461666968807553171121289254029055693530746857460818729301800960208219305312523710358842552232773994584790896902441283407210335193879101872196110591459534488233466719449854884795106193074742312933423122773201748420935518527375248728059406373936433115965429906131926993374188782212044971744384521316721632092530953693408141082261208097626105639984682984379322008905653960247933882918751722049027899324210015047097622403846850573849086856852965553706826603198719821276501448935069801361368167763793323121556466295253180722366111793171467996319122319044134336486441946994604927684731016749362557865037576944897330883323424715365839107178592502631024458570863680673627815591556636208971044731841999949272425469968316712374562153992076337591299821850024530121569312903018012448443078155372775608924410408590560577543285351037921090735282336597169935589838341330799144527278261313950567697281049591379852186445890563264435336442458271240326817997329035850516146207351135497881532343835296626027721817462188216643961080013363153746367750376588420810777542148089575488444807355112206980444234611265365702541319155373009729080050692409336897059744106127795800531026900972290636073422743236672086278734029341948770404551992837028335824278245978418047123381866569681015400548381017452065553630435901063994156527547083346899697195857070915346490707313631340339925248665457062582635340743566282556770492340907750510993447131330031026975683848567452922746973891994126439022490124421440356789527564022485077185288124524088896034252563555264926044127125854969132772492380831472966526999160897677153282072462708320148466241125002591794004404982444018267321552321735985745720274734895225589206837431645557379833673604530502912162838833848749314039689708693633234094649247465640977941274085933388110508551431454610565602145714109481547743184947889396266252915621921189249633276278684303267389196241729195970239111489954198889753931063223239186810352957418297865084284062550332720397857989773109436438941340464227863419453225444253369800890426423636899422556833264926226362203669186047274385887188531973855109667361299570445437371115105264557547099903787756791858507056204979235973700357028543450898094314188848426263517742667642604483027396362056036520248344968444636460284902618918895320877549488386117811650481133172163053751854406035030938309292679259435268466995846779945793628254987013967951286400118587819400688317145999928458700357355895347901145623927099425912648190761177530358124686563520938231687822250447378106439645283967273397484318090943439387265419838915242419173984659856049607944409953152219316867732943474999252916884270370129853552277631113018398360701340217166557292522059071439975583159045573331953554845687152259447538670526746144162059876627191187842579882067733192603448921930274769376638947443105052136411959686347913156136908002834499747581548448599722014759819493174252299176874406849358678823122537625297153478955496169877979932950748580109501273164276624690229961520154239900888920272526303317006405993650792342620270373550363491934123211861052279387843975827863707577266064074856123937267535535695089971339707467175702940794142323993692279131514209682356700377321930695634163459843446785616930765777552068676943182467240427236753422384539927605380740365600114212404623972656585055550870710437044537097063888359268797686098401131461459880896703685958648519714103399709027302021718468081175723224166362561712556973212891303856106072312950073704437394967308947092652386704784379731486068923297905860057451322635869083176244843945724853661985844712865290488174994675022358078859562690505595558669861603659238265788171475669074684734384796690979233566386760048654176019897237091750430687279464825127665921522624945546421168080409104912691084671831630784616158476396625877554146875204607743852570089859872351515577097792288747971286965396274299623869448162919481348995022246215246626408171294072270767394545382541939467223795630976126196436166890419779797016964939169631839057560285728870630261250517420458841845780995765659148734946440789668896070977792937239580882832862398810028364620386211831448599696909058714828925005950728201381982361445733832341684984802070532971448492303878632899408133560292606376075175394984157986083255728018962484590368702734811445616514150684173965981881614656461031638321007352693816209888757564687174490379455529562536709759849949682328520324759621530687459346333589553506692743793505221527993169257190434206446007522470065542753537562162802355250313422600407982685283368443691903397495041511299544790883750220408988135712284237414783238917528040658602952139975316658291408633308394135060495487250543674276201602473627677893442625781245933813237957094316085624326497328180981967616107423917580592467800949624355520911386434087598032676858352295293454969822854563149603736436753953307963553106770664931382376405184208341641459794438653775736035164691602592912153918294295245038441242075565674997002957922628948920692464307600386686175114281849294958376406669039250652221597358902541220255946661902654297786275488482714301898470909054968094717656036692985944064519649257643154405284397907064058549490897337953962623893939295323855166737037284648912799856243051123828520381475886770820761338753389019574031820165653248778371919317370860614488244796293391211068447278628151765045630622499344985804742839320790717324988251889447780397542824553611148257920533752730532395561560429423125529415134550185362368694870409110850120929060901606916239507299337099844265273666015412898348783476523010028873392536555333124829792414007734308991432901634609744979654248552150475156198464888110579535805051504725614380259325484358327907957503549769321427333040367582016375903974047812685908062680242880775993999978809775531189805183512652013070016508767074451360059765779846925141637115632127805257632857478562252002060739948896920941186440536973518488335020604550483419008132697894303134692503816908926760696839276454834288969205118011288099606660783787673519904424048670939458471197272637420877175107622861377772787378763534370292210607902307217430881673826435999548834090619496460843280058813096905613200271551772768791552319986187509837125818908451344758735808774424220267062088553648513154867467307589232431949666531113219042207933193979638882456670912163669348109644783989325998270771758284195802663605598156077787252362307842996678766612590438170695848142011461411191173210653473707428976899378856604874471503827054734507129173999186746972251614302804779665069464131381509963891629031176964863365146421123815795725999488030538211635912508352084105245860944194437788722512365385472018587970293854179890669231857704903523341335261739672806856687134101299793603386207956832865700278692425306458588588343237453444775425289834225332131426041367161449677712051775830832075109740538416291849397766058523804972001971048568781814285945192969740997009709494088238704430359699020669742180108256232311865838009904986917639198129302807157349495713389108550142678208881737994478201144996356335867967765307876499549506691799380295345548821344372722006376301287210404883571824028208281011203003194271768922716514685616691706108266710560085241271229383844139835253533645084284940965261666907092323720307050690901894368621454400902119755066928213685053734570559034065836105112982384221025890827483128284497260638244051335040160716484550840220210782071457482729927652968714341075493385556129724300616259807662230883825104384445370331522067018309542104956765621694494913057232950865302678984988092799530200830787892377251350215848415597625649994954633715522705162498184672986923471174297939640502412510732939372571059563825840783795195717526636319029590654245749483993591626449694189522364165639628023390052842329420231015978191773674140605635182138655251966291039056280294963191065502448499626921100412822263749026504905835573137689878777477406932975498481670299494687066517140005056249919155994333420279558783316739089868300757529913471862212610352909014267447927215136813236294635152613438234230216241084293854664892014289794059316943621084339582089470624488258287973277439831644615000844850754564038983054707607079427759509170816358230940868766868722149444574214512067349330249762747899494940699665228615901275274974984700948533257294333714300284057428005413349588130139011606761842732980731482384159449167039010569291072700049301296160093246240547858817121697858284829579755556690535281876501205685863696384337826661993331131735312340003477063389649201009116601638447697984061976089355294309748406594626003732937657410618121553318084814510308634324806884429819385905215909543647851318118246597603054235880815815279988170074658056329545532254911836122197278282528012723127263705178632352567253631419342961884395534789066505140485821811018231489332702699393101634162061467983569915063023009184140217751471445237539502244677134855544138899200773603336372436213510512841004287681503253494139339340585364725223322596245505803288491546109880020615217754930857730088407130396172765289594691197602621079725604999386709491391356823650476347147278190603873710763130068888913733933381301230983728058123218854925936159875670395624836429909041033179158702534066448809761681678620087438338578539702812127934232846785073676461980358337371735856721582511254131030070520769386457337344376336087539399283019538934715164052418449346107333887288108481124630753419894097643828119172522688888113015038929543799647981056234379176404646914305528078958144293030364610388429948994378733275050473862948918144649631764316241941545386800647630564517061676000849968246792917362256885568454968140274667200976983433828085632231413359307391304639567779130720232225134850751073345563750971000866284745248331707620453207708076465922241162291572455238300847259343128302319748648308512556222530736002535107833471999019844007193943856724265600736623063014040799232860811835878228862668296800020121537190126694889147843260173778906539076901229280821793197173266530471739029631781064849688190770875953624902996233461267998815736717870354901956135864151586586004972893248826491867868065043665433684502022313552389594771669285860042506618495657645956522674569396393282534589151689502882799710269295355213606144147222459893957455276274402988608214273134077943936134915820068571549588719618040012609472490241413020604280621317107421809996512241080469741340579634748346274993541946717335984576739204240458401140825775151121350227991147012719881578300964661230208996971118408081860735131969077832054345060126011071051047606964863782289459448677338665272554642797556523632212337609782313325542319473342128871077838966234850273693019197305057828834566991516748815725964415853899648968651162230493364461067184078647826451538973893548643023785420443459201386174119869226013772251619474003116592175857289227608346817556803134062713384016070184930859843130232338581784548228465387607692820375639651997419855435238957927691948160890275068547482244128438373444467377372019943060872766699393152647819756159464430985557415375644018542213294635057279508659565209827158902645527180730856064287791794921709708294117708630585885616183266471506044446666262215885160795782626071571151809496402338528613775382998596698355076457525118779713216006694779049243636552560321387914837648293146050749247643451309211566235422216709515917489131471213732384947645161332139200049390632262659348462900399254823094239760934650569828289879767414302313731103638350959561388431563349877275357859051565946816125805590970556698377896749826010364122419134403568485143165533813150008013664604688163810035384478007357665093751986340959461444949884350906149334791506326659705131736344300981919475236335113518118822038978808738448985303372390262828028854709827971684333786598039759260550428066581911174571530424263285065756905161870160652398590610347506507534477468133561669311222033268507671346985289868809224655694637502995028997376409898115325811424398964165195062891987406886550122339142008700505052806415947697775748650373391877459343044863088011751962510000579114155468171586318698753314250704230399241798750437837467382251018175869566834305810410812906827215407188501234279608447135367634286381277307432631100533370713582428909820215202001242439901862319124691863238126619546535967599957143345851666270251970198499661605102623946631750441377497468236438880547125485739934823197126093156202215429774803575898698420879795967264838504276549764562379060490362038041539141816916311432164180867322619271707191684898905218352600247784895353516928577398777096821177072916003948532648569029122659424719107480600654227912981789606300999996360971424715525894738825436520222374877273197479545588553962851260343869959887250850745787737024083474572143044905115383459890864261521481319296908761200199230876882325239526118915032830001187222388680283158408491449629622514347159791212263819456838280117429850409787844017399289187656694825537989740914032581169181050897692704896053618376911076592541918342976447051132068364438654923968148340074579844122458179839827677989014683615772320746690763756494627078648747230375633624101976797965172085075481656651547808439864918613712220842587695153873885110346448145327469995068825844554596017225421736399651546140779797718721632007381301189630229999177825027699242338807070236116908248769518353554118678519276268984910187231700427224647872417528135199613010374874670117285830953772710089884827746423330158627237858169458670769588408453634386175087592238656492130018717462362658506303276621557881889430650193500679764263879395277836372644280268821674363323487079652888702233871237404726217785333763125112229586593425237127245816223048589819883972788899238296939661877707028012216765457792569799192271569195990064640300328465139076744751597747753390725166052181718227772714652996665406865738498320762649903111912083477437072984538266630832101507037077727112835248058439130322754838784581459845655814238913452981698210541234091347896803895895236823513315133128174272292354249927285000368543882452326433352125659763897894924292112761889730492680450856666521845655943572503783117779137088005965188443132179496775759777268214513477577408687593471375663195689599373866741965896479906180721144547603194194025536776389616550890661852805513735465834157563657259848323881252956765344895949563760398770245862184266090532079114137257239047000368310236599325332251770000987037409194441001530019929642686232136703330510484900476235241037004860654789612172730640100115763736479467918508744611606085609110082668115860335900335401410813182652357655090154230214214106404847298930764232711102010958804604051089417144276590025953439057067765440273858854861599246897702055264871170598851757086519139307253674381382116067715077880765617841455013755104463784260523857223820316036623413051492066453243715678600761188765084607727090458021741346362491647183107808467169942190094984208348065497843553653918409945016420654884184749714260438892398914348147878100770406057713400205520540782067673934467098586059555036185319002050191006903018560988444067948451178694042157694593857783103893365230575521591969137367231147750343150043225717491289850577230727951868862985402771974800550940920220507343911009710305171909006598794142334260215573747307185077872697126150268794635871844886025447668768832646318120845810214094032344408883064596825841016252294644747565166836987123670463137177323655154314337722749792027124627532109640388753861693389198725302992697946916757224019253071371313268023267261373038985307490500420973322156311252385905996394937840048946230451053474740042393056973447850918476956366030243713443136395011860556204430602649213358919977626753617774906008342912442163053273673146334518729662383373276125004819510327389579480913880344778995610705114081886357863148232031575010789266876471963866167535765525531230821422742416723401097693915860936176061306988897154744009543064909024333282820145256375757944183165819800289884342123955587478225297839261235225431241375410945128108436636094300710470887686976588495049384793170360681207393844521738677796479663019398718887728640769957173493514513433454299133954198880430713930696435026812648895159826002697207686690578353521977869523825060215766002730449300357614924838769547335481175833590188019556799433520686963630582469086427886264545735418764816996084519375069681345264538893445735555222245935079180925189305369319848507453482157919289940236508626167697807733826207532073464203430270464743889579436119597506800908947098419956146734286540665445329839954766048360104201321547225516441807571509730590625666719761493982105164995934643263918706677084846926051739828654184913196719272307131095611529409727183508995122930453435781645324132926167004769040550235045057585827049956566859682033202427225124083006913942755783963757379153912502010997118837504848776434510421113583745098105069813500825208043308414641613681683190032852162631815315760658990824371443169226855549752127078821935801188960077368755828473405679730941384301874687968904025010045432425237031686057871096873837602181052005351388543809327787717392759232428742018754319025114452566370773835134768944109635393446098403041659566302308547847718747545590837048053353938781347468705621172946221976801030888404778189110222780783073236800468028101725614926997637469334333126269389785337989965615809246012011099227291208807854503531506308662956999630168465681982352159491557759559786611572211173409187506482237446955126448133342334689072649891102525957049276791565294296097916622780447936884157187589992634763671943269123293754751433485117816526933873483883557666785556106346971216456177282172866567955500233489277261189194509095613331578987842003604212536787020957479291428354404482485386607413699994961610750329785818769500760433937433202645028355264955104001641690027576289024713329171571693336759932217638960452565207670393721358291483995177225081858772462911031979692454660629627666331099337386696868123057954807090987298150766713798248626651801645172265222056827973328997905305893586518253820468394528067963533461933253659004040152509562444813414313712439209576738506250072688586583890732356545753510588878582804941281756088460865147823873442602341118732338422745910847803969393467388537917393877787662223162117653544708821344115709529118898161750349992890646699273184464806755588360757649691576932442024809469700131707282047837800786544418125826220595546065534542027960314039167976584959144875684943736144982900615634266846937422454375682621742954429677234529937751752370198533296323197950455385256551104709466369341028718925946624967146094967666988799302352914313801955124391759555228599049246000667082090540741065664775322762438390979729742921855683616716770203423267454796585732893150412909380887492158693435029013272926620231781601984600575502931888266835834959474635920823524099400626446755295033598556633548135636297343765909755905174330351204873454263445749098246786220920948929498214026780177749376584939046492893340444607234431593270357477363929931093094781315978710936143493055730290988199104147671182474219098863279077457182655068891583157274364672029151432603582046207494752018057385861420250492220644585713108815140888260840005586566376240014659329420729967510418088736006087205592227394106498298663517137727504329115722856721674144838561497088266983944305415307831464944039326309254696082131540561584770443696594473613006689257839150697578392184550296904598013237692624341326082578696443053363448873250055452677630651071173653152041113773973146024411300578284866323553852593015649171525928208270120761566478124646318775493573188909206140790631741247274669334442512697723535965192954122747342640688665476182449339648729417801362119353779147973855106598007367649860210415774381822245465391806188613279277614254101900372765381323809010821891699791696575680580822467129298346028090818247757626246531801099265641543272688897734640377856254845610500718990058096487426428264366921543588040982914977244239012706795465428235828232785702344924817353375738348589364859735721774991359869901195226873583794693723861437791518733883398339705393289554917425935221820405786040766485328424834911736125116020938728936991736908310841942088964731630633697064207538569266239343043953362174878035016056646347599305961787504873076017260018785432074951927365697770811044921897799452149278491899126718803616222926801565193908996506483994724436394692498142490562240229727807459077207237673406806449665166291899801291382071993281625987340810001892414977426512598267351061356141489379589725309043029116057762776334920802823102913980091821400992539874288430393784438268172462472211829945651265697357477991170869184923152388659813474219467775352948015953329576508209699557317294788159762560750193368617753111666112763702322343991743299949398007318976375100125137517662320623673090526036641050052329273204651595682813222534219454998126600737212782653841078376749970642202730446479462835662777354010544078956389125222861245420219058211720851621837087391909021191010334024616856367023335994249334235276641163952867129061954092981724322963994133058985527171776942633122511723981319009766803474547098135298073586001622860620786736310709138083568163789261444170410951996636981206758481727436433331041697273524340486661485286155035702766702002916327431960081653103742728419517384776991361625959999103518973801020538644621193102694640290928524636053240558775776995038201420746395767300612456791184556927367930942853620104439614688105995198920359900894458474603167100550271623933712400291679483288286613136684375167624358035826995195085111321255021020526078844127875832559607243665604858617038190879645384021246953935793466676702087565759642032490027357952856915171191163392549877090035777750777261587635730925044531113162157213378868222637414455065083236512290378216481393106646833193692872191189120013436694108710873003822477903952540575818880473704909844425133012817451280309946763501245209259485711774608007910821362704852056414175453049113247608632106776245283112355515261725163077165513305136429036439934690891560962058803317605994374783104767959435135044652253347652305534189001801960584648574127212730879374077300825083482245539373759673664744357896960446822562067017893249258944340511342226425142252825468695896210055441254053490907065877891557036552409523290313055144158113503758215280246758666743997157535788600492158593529375529665489242630607305790271481272040865904813667670812201023660772717056077619564100814583260506187712954839538368782382913808412367793490461161930196308007335829813825850655490757384072532020384426218256555636633571236089369173807494663388863153410564702252392031672210594299681819041855347540815542369611452806428779123469999426002208626998559897301727888301866365558458099459081041646072899248434926599141007052586891982594747110322530904732165428885571684731673632770935458525615712714380848950482278174312413080551218139373321097242666863987096768107916296525120726209955910946865629607667445036277911301332804821819572181317005737901544546916756817410393322576742465386820738533444403316275457542069427337834043724987715838607042766718916327969066525570616723953268537533543496993913143066374100964883061336964119248359842727745827913382651073547084267878369437598273489132651605867509651255810430648494159403836303572648808916246597091867184979569614669491231572481895031481435485584887832165117250400108387793901918964762320121157455533247216359794953320831206521272234371505670442560051752348983434543490013377268954292499919633038462098095501859942874751422982373552980764091977159541892920766751073656755662188362045458087728006530728436460283272815629971780934353445450169150351012533216868549931575970925123845185143792316908945740385844916720747353507610552960885245460599931532466058069687077901867063824270670375349473568323047714112366722709900059660311952708550580544169492053198560918833218200793608513082877468558664994411121905470425286007663610560306505020168232797508671193773890826699922909598276595620048971828298919532468063338346662501375734491321081592809263245933858311976595953486570304888848673436481811481105642693847797418502493628081483717745132086442270059123255367473344671583891372476944055135062451815050896184746237493660099470317085506170350436985372758550760170707844476637125019218985319478865720864176656085086151873763967753153505381125470914501287144160049042156909251445070058245085913279994818187829934037496341600049127036570015212501923146478403207761674090394102894597327701897647718362244406936383937923603966337326011395042809032957424177608453493052740056257606538809590123045040993960433830222866076544825442984143624996282565309967185300680805939915017882490129586776186598827246833753970573491458418100227849828794912565847888321556758651405569107101216747165461791921994697742160793640352734042305406014998524626809385691928433656204694942737890182757115390562729334036747724431035076362997369338676050899424085543359985260137603523424589929497783482490710118490690069973147698558278354074548262458211750523617834288173194651985931356975528334387461698814606802708037042186937603047504232384256275703792702095905171870303834106210414402724281394011918907742259818763544088899428061053292506804820198061263845336042054425680954896559181750898488295177399042876981815524193706913616433080108259823692949582497493589412706295966553040207341537205425938119305108523390001782785593538753020309870879263697893220527522714640570878380261591176074487273133225391881971918852980610179051787437996598626582519761905210088498763472461194925430819351576099967375026311018618338981086842676360463787081269971263138013302696327434234057765036149402632590157486535203603273539008221250791601233462448163447894958715960513814849633603417823733165886436357525237354599351046890530702624308280737566758151180107740757042437868185828751193072268737869575423665051041138161508082563774786367529497978028836504531369664938198964048188149795998000711273169136185425835077391326227151468662761424137377426611127056485244477692158796289799798144333227360967842253107616308304886963695170492077734121249522511455829382242573048998786550655227299935822427535777283133177776467552436112258878365907641094250594923417181002122700713534173006682431808393914967166202542021012770750596475006095345988533179634243898230078167214746192697509334127469838157731801089848896943900660484696593947290245286226630415243957697767527831535800383449476402377736697378586603673255978637760865511442333937786323962928726901276438221604345682146032118943227634634593032993683468192299569640556971471036424696370234967220839301002857498488430728656287285319768250543407326321826753857662688637051676722903135286774548204119102520202995310498114792955451577741764076195400634229387079518477292441932563611557857031783824807906754222076691650008490243697382829090117722775013829518747277841722651004397865344988587254646591915203153787780557435475089719116328023595015378538062773896267957190726445845258248551029521961420568894968516563179393862347385641932794789149000559620072820494695862581711646837457056700587826315852661169102409997600145624313250271671784764711443312294447096127318347755251779073439616462419902111904796170333859974875013230193888433599185721222842853869065769904258461198264463272122987014918618823994620374097351522230562058163221420242215160445115263568386820664045107736868369685769105540617286098041769192774229949443857503838414919865829012121397701530619776330220196518292212421265404534491762355812240272809632382055902556631287881368074595163968391266054678927023274702024690407038260818528271133494732341792227636516545000027101228995738201269398401834156435634987152152426680389341615748001117495489246732665173130390715196149706314220075194150033755794682642820319654554614762318025051936621251446732193814712278110058246167095862775688419174880671606207723791267800058944045846219153311143647130988326373315350115131044512609878110108259639014865393635828426590740259192414027511742773725601969990293607424069674266954257364426751031559186044645090513620845322697151597445024742149685417371994232223839467420404431184098028164572418982414003954353173894302410446859818158724084852707862697286145421365569929452363598864959693819546841105497159589558570768683843840706981346271608769532434669364573505999710770651463087269545671531784815204338619766694086398433682159653647667106562182368349360701947394420731105703836342934641684391969307541812346517022687806493571246063786326076267420976367321704966730950953049034416213325858359596921480094713983168135745334095441155036935094874279472785798126832113435785753555847005667428854535661995762767599130458467482326921361317234231737789602699705818446414037762275472201095765693612943638463576640207410360703661643225993767102974068476971796728265486954581516415464675631505709126808977466652049735737862282255041830327438924630993243659780941460406503938859030384011124362433790040076982923650263782718577548112065454275366301162035354846174090754663109317040593058671461047192890931297926417652030619326296133396708763380854849137934430209259384780956391370460890030490983205208185538218538781434583708285918244483140639842377536352474991410513974479056939361954408969422072264387621573712772140834483345682159336261321694700546874785260268809736498347254435364969530506860968814987137872056140041278538919658439111662024451332472852995877779820981097255615785929236390001491660442877676086001463871910008878286063316916218737112041321779272170953423180908005943168045046515095203676187789460135676223572642753509196374782205678052685383115489387671999151693245151461894589063622649659890846704677583874516144798321395350943408316241904633466838419288898061741757871446487893638508950464367750997659546120818652208604962886310322291814135986353868640102872311828949863290496550499774540461398066299568244612204613107401920248359143716917533669755167561738818415191224748166913023197218478086355760851572067194965669350084871510970518965728216695997864479589794314242452354496801771269093277530512807064071941626138945495590158654179446709702454697343562677915473286320991694381765114442451093314558404145961520565684826549153802136996802798115596189875874651588282110579262625263292253422591497174201607637918771595583301537205459889852291683626641012651670779485892678951498495819652780484208679980631985903650664197665382086003853375789809140116888052336472925562672331967138351938827438411710836826567940188849878242353911729860526227242593695578996060784601289853179864722385444467618199227393165013554059136809218454533444288696129748972023738242950958787384446114573446457591954713535250478701825739067574310933748458042379923919041519015695412543093930797583834016843596420681281695347608285242089695145301535420859539178094017691423352326528858641193916878972474151585887891048669765903810271384370856051790983666175266827596357516225968279296017256656093179365488407128672685501473728900432232309466768540554993398706252716740434772147917135786503136377833214152184494024497376414720661016067675704461362948154265398503435152521782285731178259683922777915686370191601745039888729151382152264748272304997535133900153163672847139553998797599577457255030305027105113031947614744760339853899800939285609060202112747657078717048336929111389196028634131961495094660573187422724850457601710304152030149777746171306779793549296240021295694386981997229184175784977447728129261309470415284684595113595974942966833773189159153403567018254032773759716857468455821083269492003365987244334984969742442065261467067021471798011723468070518820425202525304576279732791361103640602523560061886985254752885580322011397072460137621695855827465866014113476848936961500642053933416591576240455511790278468488387291758217699911462769054601132021040565740044424358276144588826680885875926338563530634528921489928611832245021883980354784230695753113279998821484037560445657524124553083521412412068501963529736714203311009641145417555628096006577536949872170339433801643535756875449469137365857377616561977991902226680439249759611669165397715465728944409398403405670375953061717808282316456125063722825475848933413702947531565442302720587250345902083521074009553762729146935431267241535754194733614897115480518490291707417869768481961566386861353407291056499113064732238765967625589430180165900132723488620167566975576571866467645262109881119982150146331314531433900321733577449275785017124754687541142985194423524648819141020078962966233776069358686599282134369737180159182725665911871023073830991636928275842430033418905425466775487049476950241137522725701545095171489014821779440238944798068444601744119410907909261278452820610988939702902576387395335489249516490731380600062319037926305666402831948155967666992527311863975048648209405614126347544214548281438181316692348997103965216304673057973392911963421576346898213325950266955636995363235951636892214801564621676871188293546753025432231257899308324340156423863949066214343488318818822645872843351810713567839740434316168762145801783698959056206056449785443053464723815738614187378364880390893832617872044881473219020187776705409738556743485400618046373723681907082318385759444204567570260136844716023166148649819359506334017790099942921742426606617602670981814916874305518117226388663981690640440106706737903356384737065481355086511768204769148078295523891392296178328185038284777013540957138626575748486766157565206108938948377227766615631466258111879418304858945876271820299418255112363358434077396813838065765694007941225921513353617398188611588047239340324252137154445381293075917622967990805185237344392539941999518838854418371663702012609050412474849130155075906983306525846251641978535632444371317822960767299657138927206385417907687491006678759620473985197710220738233228080320576736656100152866479654909792058927273138947772293635772353159831087703545020404883902604017006670073522204061635065493904271979710341671673161139519267372616565762056619663288976177594886571038467881569084787920024221182980276704572155110504765938284302323218380171865292245463143968096723545981880390679501807322419817779356666064307077810829421123803664785344348620560848823927021383007245041904143417804186626918824305537919179043787721913075425775183725913701660657697007234980715121901325487942132601910687499343551882838731850342521645382230065188026505705355133750624925231735606016073355791871715861480273410561048302108657550714867685747058832024409280767991860701360113135048198408465631310234176456109028485794703814650646601050112525475367425898362164080331901305123544822373739720405364156434418022279979415461588233734060852088638371036409045158867568846248514976732811039046385948935658311848098129518670107823702116114064367142553934973681231737919981259832282807378216875872704487424917113321503549666604034678685729726471184719099757509621114851829019077805107109351350460414652502299986978503242914788970398985540797291687219373960640775433633147207202334361285102163918244064793287009975746938881287896823380062820935643723247253375412721361524571313662916945420508985047814301744425167933846519936463219111388113840033445779157921111772961818953274047710301613415747354814419811993602569284943180305210255104230558205938531279404470271332409815614666928719920644682147569785437146451876843211561894516204767392377912107754674065736412035781652270720362961918733022869447994830482471725223050449946806163209450153400738377666508967019063327656020450994256322309476084045100688180572263912731259514153886811582045614429030582371719796392863668313669992655081431179231425285786187122909494966374293935999933028307619766313154230702450092753336230028430991786170910461329225629230217321305147783482996255903782816186520156647397080236916005083538190622010669517713397980106234639667694340666708528793844207767166134432975622311628336535201430889376397468770982498275365500231017184064183384653856534970720333608572914364202071958694935477681713700426393076899097109160963735935981292041632825579683522459947996288578190391489877359043751102821105966883219297602933876568324011556906404146862690957160340560370878684488471231058217149676560215210372064856408521092884805859467379504715680615563895597659539035094989749242456540913630631136860775935047363550831204382199200063323164142959830237476113269782590843260079918611157436308792577429199119825624054592399574270151872282179686812850351006604986066021740550763264999273752231022436310298329042069519259614892881659791610565278209095675370348661974493532428676168759851261541141203872803767470323404090926114447837455118710271179653848419888259575236670083948018323393690595917775201018865640111604622885261843119753561852778266126481210961939337090995506987990407762383188440909184141710242680216640554436057674717515918178319771745137875172554027877305639313846590330555800029047817954949705753828524466989570969393695294003411106732158644535696263634665221336244703936878038954050906402168549321239021189959353517225886315633579331281320407064598677962828560187427216478745019990056111051060236169510936760416091943118650375649666214724551434804732592323673781738267718947917942276362907053379874727684584729902097953430374774642248717829966173278194880388376094155663024918124402107493749685265371387506945489574862443795652890525796677883323930061904161126620055474196675530051850921666268139542283678015643135058855546105794432935295897027331397229344635859853381077498818263406501844983986783346228965930462909636016594569703015969862783322116620556461393525871954601397432428791392082825822378383507238666991550742658149129964624792571062776154517044321339100059160995092757781230219479290505833121808208094386890806723228452748765289757472165000172746489585075864352972381728981380026692219291839660936887372756018929816981418436500222570647573076159945067181308514083272863686931187859473449710407915372197447978387548325183917088176876002377154292956444836436562096207399927692897969888174190626748634966736823033299815486931976007416809658053064701782397945686956300899861772312268410701496289338654439016045112026977614874972940518845248525489333791334514835246405356903740336266279696824631610168539272626427358597881525993660592870806441427279082691527268706719807917437214710255412796333023469564763045109182674677225952256306883396997547297254768818748887610220911151792028867469311500923430874138331593860782691651957642608312827239468403062747940005696941997153774125727146543584032205651354122898850390727974631148749737209144120112220950167254570634984549368258810122323906180062372458600865561243968156881626328323248834199861593314462359931129094607173342070305326429332916398398463441203667801764986302171968510064197433732511266436639215689280540903301361643401308072774370949472867370646334260423278285247291267236649418765722309707075189461189834520357515483356976572573170151077596198645014137375410566060047648603852061605057210460673088210492201588001189006155485469093829581278206617655076054976746181250455797994107882249908596512389581356229478690775344127919617427886557816355448093509779746536756758189778041749753911329136703793684694161385512709125401792118189731960541752983533182264528660517272374027046774340301782489474165860137824431781332400169560826821462688051776478412933244270472684241120982532682223405289759773677991911440396724107216557977971264721410414638925099479550825850751102753368294513353307203080935473906049143572309570768760842442369923119869613289710338325039025188436613340301483719261734397873745383217822271917352815620962492354375654606030937087582229191923415494014233352268794287984336097497757313218428045432894601754099604395864718194106075851540153487807342042171762781775290299037975659810072535825807328061318976554135800658531912624015449423218930354180220434949747951202230038390734780167886053622849954337007769395560490543155141607919519937334095683101301620019280567184458879537427889533467680935602560786746021070856673371168775986819292356599327188236100087051239694595496771328670153740773106283722820751687910609431855919152155304410126327030334756304648416344626680800618419793810115930399101243858637966607527486587822906606027965249833555477132689237516640749521090465809876868485299579991394541220084527639385285581885487704152442127495773842537368150153190671414506615114763840772116928518217346831431385305726377465176489120804165907846950373660694169830152412457234832918099738661939882807768986140731855460428956116293410585472807197635781946389643429449850773063019523050224211571431398740057746426222182009787758962423741333622775225556534921301742840326197482153764229617702003563803752386259864576274196012383971064563794831622664580780821256792235865069571943520458589338024111417697162560214053104197964778838655707084679165157478297390682920714254148010973354939135036944231141345743105380514348476461942564724192855143845771115490117889611381966565335950897386326135353082318244554448399517691261744732299621638819735695336488831429402793496973972419601637866370301051935538218381078142271639225274960232524511141340136135916239972695402170190790353162559936432549276201918737480464958960732582457482052889849819301873342668131171854405410057245724349492313581543336724511733629147904012345274735037554457727370048207864703755446607499435362952381161512288897958326965148989813375770884286742675919760123054070363767426874359007399483622661772446152983729893945365882820711157333542502357464836897452634916238779388563040521437360455457553117099835733985938607033865925132265897263056408194395458054083018164777570181227131982475704194483708191874552128284740553244020256619484358205467261557868871670229539616732388684143369305855699611900780687120113685624057637685310417006528076917250433555544438303494979215417847043348012614489378267254340728148222762000545004460038328652059823651429296420743419777217999933884338028684704583512588642092452167868163144296657593037714626702033469917490731765479356843780834474295145897035171302359855073928163147350767433402292408786970502487630291342716842770624980130824585203376394489993226015301579941595373506224290231422093741601932858323159022431967790519629179410151848431013583432131252478442002332473565449052773385522879644628905104988009041010721183622256021542237148796263768737919952342335499299869983863154158049612295588911980184446303030639773584471161818510463433010871758532336767862635953606327351978390504683990630356417247111290308823160668305772584633324467174667441879553116211360388944858658040501374227764980618940572738618385645543722445470632007927840306704372444340675393625473156669062614275895983671985480464259267511565153974566779672148578037032557215086124218767393734114400494144468946279419715928757087528093719609246322423514622745158012057030564002802295707050424657106010930266425219147402728887896959347419709363621147640117742299431240970605583422071104643811371184625460365493929663587766631901766992469053611197601714302772345528811342732245015530140429138972735135368425832528426016405959138647496553123068257978133588988641602883333585888079441327535271351636151953826962108214037229924445573810131030064379551920066219705739306193508735696823938186965905315280615248291364303966804811139038249110907388885848097859240762227187509807641703622700034507344319810326096917186778353038784775320878470835903813275204356607740351050181024353685949538992825831493555815785929578438314710979551588596144731014181718025281198207820660585995190173219467262937551261153875934891587635567981209903644851096479617859723598981734451519736889640694957603149837572807915098695641735602954809073424646861670762546998881817348477916188105305245454262820488618940543699011225911156193793273163636373827173056701297910337619242911749958320915734074196750869931581730678947017747502239207760056851643984632915239762967179783354953226628295641154170261210279869295681492229616698938859815829255750781299673114666552121048325666289223994722474308973979075171327429847396968414599013283733601939671538533128554932680841990427980195804808745773727297692625388292240447373038054717615965099026952027510110784714945040640864504057458230466737660025831003399783673552916442931004834768078145818201004753627826368900990640909985039990302519441730376349456207017369916385741093475952383833991768215112480869300789174627153651191679181178226553183559297753132410115856382898163747434796179329767628574775369359423172463369112456713637453335977988910049928957864891630743136039654599785810099946217801663990087684555329003264663252255931622140545513183223116418840894108517792466679094835999954157516829120103965528101439054277519274706039466337091106492509456640001060093359755316347868375833917244767105796548466578230416564881487125004104260391326918542114117165279317606140956606367064286422311366755648942592019425673560787126523003342520761347630235826403723614492961330949726694322215955366856346189427290891000117846643230114480421990413701187726592983874499809468389340959391563825039647305474179530711730140485904555928647547213880729726896587225169941775658290909360789029936721279416092991120801254340536359611902407486342922519455668356711095835880234864962114617493762237926552054613210690028098996811105939369821010233699988940557418824746499208425244157885673157294371272186163487283527906976093095661353794145224594046822265475621156038518405018539803291408106596204678519125728010220286547506919130460633034506742759860071878258530728251043543843661002488246675265215779741126776951550477610877379011003501045239759054248403535601618035574547750298251295549677809091845999523062031877236556705307465915739493199009289649133299177017095921373709501390257764260494540644634898810002435336304131957787749826610977815458605260626803032926225404127394350712191621675707018090106806590896435872776397956174601814681910621618991874843328075523894728214817760416335381800285635396973148346026209535687612785820535456903828508004388605798084419908556098271568125360612333352560702741584405193600960347359748803589851523927190365708538283256522373886916400903121263680837215331891165832834006542870202854128506657954559229379417566123323351797490510672247176436482824623449131967652407017432069591316659318414791258114525359925752101770609361578034224079207726304823689763209169719257015417940393703994443062935016143711253578393443400795555967007804042180996904317017527061467512982721280218638984369717599624855747994599051058558462192297746823143028315257948604560545010830715580429228893477078524030591047025031487819567122184314161386274902158522367127512056684555043512902473694214297625265103084164602958813678426785231670933747253123708465199452607068901731179043136999717316273028040770503564078362733246373536161033086747048160089774571974626316581202988379880893245174480060929287745641885851864117613537690062310636947156448059624442977886574103986562440308419399222893415662427639571651950914141533071631299178279996165620974224209711951666153971384500266194473214900262915981465117394430921179135956548168761516453108595754165930272761055914249503884453598019650692452423360350447796550911131275224745493300172350213135884604033717247975301834202878472827518505204945628864558095052623608771152705459055885211991292113235321177682499410755393418070096691361333334012400971581343214221487229395310279325223501274491199152938202924459273350034114208953319506654343334560397094511415134717508450232823067185547707804726625911717656836421629466465915840449112909155644787769478303449658374136845721242285542646023522041661571444231863282279015665379340978094749872245389185489005270460454845570428407717695135701861528452271273561651979557356307054141036814020532678068341408544167791345119359071437924969318935156179835465769739849063128348392024095952505489470418225927171039510051268415824374196976377536530688717871992630206956689631572952553083353269873784239969239146082620112274644254206823239547317150520637805391116247150000075572461150938289252126573995758724186113082353230380481712457913433276638447567832854014894174441191386488920640901226676936683973300696670161250900225661536915677276714567584539044068073457171912664342733222967486989057606723239897255735108182760797984922465308559580995376280034619477348951137158906085261039769564923509932484007124508297173838165337434804978250691622520595163340483097684603902684966460790455360263959623839670792700548109002589526311664994030123626784249073536107053809272128344258925768178665134386307833248816853786496974656800204853637413360300077106644326585795575212581312212011199186980204705584582758873186181240361876630738285310733726766741721207620664379775300516887403112864574808600839925658799071569209761504334677969519452662147237879753004536218162478445037989912546391729377148150311976006067946555802443015993897160234790414177689598041102448882856414457571675119866785556041655954068431012566384819244054959250602911565286132148134081232366024155127004668171475308379812116431323251972180110227338450002226526348779665303755289105660116534900341035442557468929513026844472152504308736221683626578571953647266466162043727522778096783536601714697135292609968114376155976142985269762347131359656602922187517424956812842855811622601591839831006965130080821524823930983068083991012299854938461870411322938061836156860122303387010811728033544663477466749853679068524644123739551940609581656541580692534213844134068381635271918803766596309698806114303905228867210393233969744261014998542339935360282969036194849760481695616367105888368641804492174824534972832020385456381917647861952495571040198434229784186396150199494738487425660349596138138832666255365883449278549628387113058962622950498756898103321537121268828334843823860944147014037757574223150308355613875572703096622109758435238104794421035134662712198094669849111912304090510253861022536383384546075696858368516745531641669585032879342755936841323191035503144185087691646012467795251142421465549871388478938261048510346271023705992981472720696755670297913769200618292424425515744309614677814005582286361791282895170222472404826829344955647805739062312586255285133173762608169453114947506772478006147208139587622968177793154045102629091933768384323191055360567476051613782729912171650841467163132169785941128607759954896756687868842636043280238119827804369520079498029826854131351456483535691694808931105322401933318223152964378249310621092668013286647078461192905866917248804828783190332075773038221881056590176265036109476619365634338194548815693653725928334259362972401471228258683906429858270677650400240774073421268356723165080259473918333715551631532687912650752666779930796163938847867902602291155879981359602950759243852377767130978616991306176491557705838398757631295694851705205886427083961412549410720967054723599567692056093183162420319703432174090118716135922368736139609622487087870592287898701011833279267310516082722664239214897156681612823193108448335583303755555973673073749317681558208385095050117200522017724936122234814361910366318525411728450158210567621399684793361005331966864810121056571075548878959793880210517629272941174827213324047119377240664184527619422840615706754189972038798632563894031286511786327888037500967883477016067743931116910617701688080083825867253772774474396769962122043377040988953141881032640466287994595446373884502757905187040796343530099532636527196775835722643557695478165672231454428778624704852507632390644974330203496163549325574930279914638568682325843918203482272300354124985188999283012667832242417242894631158142968788889135054238285752426443951594278981169034010894339841568638655013130994948549542147857543364624160105971612747116883799634888427820193622502834221785893746706487634063603934196253234422232042113982540345889533169839052816374565458399863526760097189350771033499713444685737691654890491690322449754736201442009263607509037956883450165492811460735755597541446328248878411960544399300758180225046989585455803949284219977307180357850340149449433803449564849999914053903680047501104590299154247376507587911818405449981082766615892154148447409482236807087035255252094067742997955499786759646387230442397044788789212381487831578658536285923039889072130873265300071598044208837670271228325029494683965068306405387439633382754222607051662143311617410672180407072647994641174327841317750490794654342373453014074199914590997931820843064465789273584100435596956046619362620802404657865647314433317462192883032913639231070810144497127351355736082389531233948112884301911637916659168055352583872479790792502969934046643786247919679860495196422918336065746031035740417561821987051755412906271760080972783239115652363061153851976239280080219695574296416435918355332487368859091708568354645240317644579573842476137852165014576861896671196853559005442619839460535509401721171308064920781438997292008985665554470917785336234987906176030352946937259452333596569689808759432039207251878934613537257026991872034891446361229676714021338432892812936117010400464819787178254859683445064611194830266341763623462769101441469775460597308226907908665188351097987961537012725148310411400161199566853854640169601502834672827711554870673875870233656288877245322911450529805988302020495608985812359900231950674254912926613079060005225418201655065213465220285328082055919588952353704100386135332774101045042386209763657407582946293355700173472595568765502555234865944021318940033725976362758972229605963136567875702879034269634525399818923048114357387161045930549359531615181661139138115663625830351629821361243978853828116815127808238784345027005081302978997735619010606639011968031824184044807568465788205295915294823288631064763203753821247256027520205249416754307896123263824411224117331109368137887596216946584869472855137757385075052217429947257400776002771132159079330032339876780005763674797353324394781066068615498993090126625312536189877043006961341298955079583355504166415917783333641271173671823338559256121675559227892119643551895260508695283800182284909505554923378024234087042116492462511860457836453233816773013945467173357518521679510162450093634824094889339868989547138337444934303006475538975190330689639681042006474241999184158606703263219350444537770179998172050294696946536470027568631937813515622849778465851891348615334738550232635320116577866880929761135735134391735698338776462609545073094858658177873894853804257977114243621089607042341132315239791154856919692552988425169657520090467282780886844520442830457996616143740748044719096690622238653388002566623497096547899303475541130825567411543078296877171526184062246237473288548373137218142528468080167373218919991948236765932441039080456957514984743136450718769680824848119757764127014583199730306671882803454981311085684863798394711376410021541070083135211689875036444096105724336686075420343039212841731172109067829223772543242729955498782780095277954462062905419847299392513931172141750008652628050115421789488026705360796871933043272770433847422200350141771353747270546806141448036836586154536834418740960913183075974033253040613043483456643569277011956379881167991314662607429117804616566515056194070024336831652773113444470436283837921404271103380399818395378279854063132331658810115676387167662701649385218265129546501864536337434176811131239347312333190873709960981100237216654194243529389509783835783175542659689513530792547990641836152685063645457929664550797652660716227489303832291821962811016705773213413244971180694598676489373449818825733757223059040150399811216013297655792456398753908632294951115457943060502469889124047663566090037104735122649857576316385232902392958968243720601682743337339238967060726125407023522197276442810402610156658468905654609896114600456392600207338089908734103464696783704467653372228646935589763626043365519090372096552266998459848314797087186000170053829451948760517099666674235671537582498672845529477093538179301974702598044712514775239558453532678384583932958018488498434068386300203582410194514101388693884892010812815220381633086628133808464610536686861941275303838099348011460799899569694073341174304644124721703045241881642016361911468937757357260266469189440878578080159106895192794009598065236361535364816338087896232884548987255867285570660287607136963723722990493161451810568466403994026147108697175414133614380987654985001209578462338929443750780037058387185891474842792248573398910689996208030957799214118593304264018468291820772907694371900892961313013939417840927329408132738848472687035209015484942363912955027317425908256063464995397264461636403990378743282261596785905688970898717094883310105325032470318420610114047351226164683129709650908962354585463717231835001618111262967538300870904963976368789518424237037823562380540899947059785156161679299099283403938881210790814632156699274616718729964263239860706701165911716623172992577477522269570342358683772042008620138834976610980064651103642677513354808739894967739920806110624698626123799066176853725762967479871911159287351434776369381313459633382145208234621467663750011214544883921687606491003718184538942613767819647437518839818009307700560776581267774513990487733607888328383085656084416909796037091379167063931197542944155371541428410801710692994976569637150896747270914369190333559894999893933103144387896395724043301869608651681952385210441865256025175525003762556009843819347835196004099267142983097437183340170862118515456563064680028715763320039483989502476003576158877646295326332302241830838704556144011045865140056814034241972603159586223001416093374664388303052992457259285291352497103754305640209503485060155199900522177138460777213436004082458472582223751293807621991982401599835104365406030417867166798859546759190193769872997868419761126546984024449239502822512203894381846962145710337774617784694028459425612775685687324933650048087304829882041277427501335357505956248570567045994217067881429487087410942905393086280870374826091888735816774357395651868887770567088326116863872043183038999636006020436620074221261294979840867517986242293704112155431796513505116551309798112756373909766291535742657203987687643755000377465578101775940451040555075309788525732534481406777921451474758327295595505633382065436232093990665277282889451261487381248954697173676053251945139033020539959417357539790613896410206472543939302739700111049214744965784724780967579613613704251517786651451922681550320520919767958143813847364172460966050041000877886716135399184373684268234011361489805412669853232233170351155000963241000435773373764828613650123311690992938989328751972220994950840940589565367958392790738820258480013686485659603344612912807354828674113408443414525376712236596433711513596347540150494620798719169965417147107071216868631745837420094366569774119982828979943502424522837570963522443125042894048258847440688342869087173731654356606097468916331012623387207657395924500304555073327912245101137265298558052831796175405389224991807991281854959488624337793179159297245385299080428552715425647470583956866552930539330985243861686073759018588054238061708757674110046913543608101219366126253121827957452976037545090309559379465764701482748294547801812604597761489223219249523563927222986499964399267080416990054604404853376193544573662978242008881990024611115652982190468345511266695613875204735520562436724385737596904929438429818933665756208654454491467519210723657680368003571635841859774491847648709943989555785762446485833572269936114871382390079175425735349945538093154127080682937153453650592333704236497872223051700021424518752152901263406371565575232779410046384863365733710956778431090899510357656347858120300229323337578856857026916874219589400470326231487067905192417293842294536959084074716735112942021953369131925939898314940902037038513591531144594175853220584353685724917249410057148762118106341502309981846034468296266598140503495819788496798562249945138764354134267769026871617747821973542505510290173246006022415944385689456203057190185792860126306485054678633983508648442299714210408494364288229464401024354574053003773127164119419219082069152548134561477079360294317513660108410520286083191143062647630778857885016781302117751227100336580073248746245138724722018700331297917677171295197005332142789586104535161027914501132092169625968896237220450522771316020249855341097270944700336984999664045939641813992794402207749088489772182299900051593287384555145675733453377631652504679715256141405971471487408044483916173671158528460423226290249700156188093283896443558904970072133295487127589881350912786527757528224789119518569831930405167338468157840584583396583893537589379531394923264297048792552440400249657732441149936828609200072199832144607237103405264046889892411130034369476482874834895141482123710562067127952567505660528963320517558837742334450689575284959894356915504736359576895455114286781485907312155957092988701259963826032068873747132834668882268526248482042043008804351123923974072081262048026297055336638097599862568623600355361978801736840835567972221498327117119725113996855450702660680964614268574115815011817503807365057917654326326385987496535779647678643243366416046721436467136384472819741083740624144577936109955100065309423623091262302267136220926808862927779001202697489501118024889626222934227173198860042452469004525695053980940550856730313490365773560096088269321774677065575096171979450932905043117136071426613335290510560793440266135189684746022905853707293525197719350343699555468057213162239242502384538974978795300018018892014794242360206385010301225744375543642570110451056843654178678233673695649820201563117819275319368312861515629204366756377506696077563173822682315712520456088962206942008981197898622741408501522281053139278466101615053952177267841397047711023598653546614114185161036630198184847230307921636225328688491325394502014535809244749925575191161690725041978078216523624231389136590914663861602928290227817393128454946836407417735384127001707514731622843034111012852444969280420878502371336724763590593021217613491795170207328863213162114962286764342554295176563800234838460375435224711554992248981113866331299529805389480416940798095278501917648635112025860340694426225123559920126103083055390749535355403450257543656265495458279730795184632652991309739307387577682906021791535320652912280832694095648399796555629492514856010359604832727330283326218930817453004887633288475629582987908013179800811436249802604331351152165910088103784405905278900543033633651214701128687585955916287636042477809996129936920860634776329203863945466232566995542089224271047220159175646415314115971700174431800457427865138688098524353454048168992380552688405188476891969722222313890473287608296674106129029007971747239742488712475836059522458581738906452712955771812686744098461308117712684028138221276003387268813695216859309643642795491641984857420878530831780130052019464756578432076936409941461836379258665307499987756663429973439638817467552034232653130495080101993357633440376337500795320208997064982442016303911699680588069737287245547545552718105331256469033552914126691367301496571925626192344986482914237276860752832407948694596952002549546756872051733846900031694416773139108990310231750066952414042763648807132824895916919249590159892925882252422483331838890971484631498384401240944552234428524585305073942676743830863472310554945625182917199217474576098275735643014026770270938015105093577081098759368925324247422620583392312213805977878196020724262169702913695026917590617709174607328784909113114854236702892315196376027939442929354029446060448403743406705154233064066450105076424631751155322325968704270575894290843466425496227232758057736304289506723971663486074914061841372134363782700401749264135003618999309441434313245557086957611574552473632191029679382676614288190654415153195301538295501233998228109985703224599214600287967203722175163162775803048539461836442237046873163638168036022677299138120800332562575553772935419985014644326985611014090075318823567078967964630873596165593004131357601261877714637071755977842503422913735369282800131537694297955986801768408771504603664973698365529812439235245326901126900519058517062625895749910779317153040078276732904403478190859091555221970662767802739783707762041866283686213297679289783225329063007279138147471008276554392872238117295756096079980307640741670367905722133566628134543091557662167867912861835382583123509372479794076946399843474384418454892070465649875955904308410274363708574279183072479248356866993091344929184167599235761091616741948804694416185021948024423318189360805643469574643716300424203700100219675112484762503768752588989937005011985132340016642431449041473833038248885984474611663998485086725588921204230025434533247474519479352441086362436865192501567202087807517474845099467788653806057908093185783660943507614663214552499479910653081069786198873609344426167603154442655236235472858586363669375416136668156076736282786423363820265398041202914283846525514373977784968088722941910098724946793465411393502425303564266295837963425247739267258472382520415812924753815171028962879684430753420929491262148583921320792175948243545128125241541222693538220506636967116934094969474878949786444861698053366316759131675376190848760754303578464108376628810801299696995734834110797658038361147297447699486733890684871126852836953812191958298354901041025735532105145274371166184432883003406555721273875510992999227979421704216304409758990886718048556710550104381296200546704863439379092954266968507769279822769237643816181162490252204360157116149431072516465763936254063858052322652247299342095904145466054893138860673328886920970430814174772761485919907489262466424861292676070008110781765573674829326226284317378865243620968549930216726107421390019574418078933407514394165215007810465614849406397018442121610230155984117892149329576007483438964420982440501090129647376808198155897828362566517413282014965618765311576795881037266337660025873526657248000260258560999224135678049897430624408123539791796793506237285811971683342503658911077914956641894583893419448456157847122106270957666527744219718615266690298235355693469991737861257501713716506877873249333218787522346546006998026253052496908028582871217061316900773161928116382681215474729643549542698918887583936094319290040203546015489610836730000841154908498328904308624931878995843170663865635105728050940993445173160573836688723686274557128067987467867529138870658714045380196495311550327298520192245102679683150237659913821034995925611363842473345581794581040558149455075685743746632331356542747304533679785672164438284457571935592540845805952098536743399545233808064668963751177205009930419762174144118358154505137765122531941438764793278560942110734745271666120765947854077393505429797262341964368078119052237010418888184367738819937338018334858600080482893209331881349166288354296135972576186222418788511250363291221415985294992065034069503768714721806066505607036354917708043178331881044744983006268403278786142981978623318718691614519418525820581977169001657874752894064764884102807313924462076676025035130101281784555479843720710456979100713356467134766456022006693743770515833500389204445481559121616140649123343968245200284585436067611227802005936805470264312494032699630201727801863731498315272088949450555691396747263504694362851007008703529329640315337098259779270412326229630756772472031529307023358864206085564633972510104952606119185600049985184500702276621337308830487721178597776922533076638235781110133600027321426324418789899699183433730249598216446533202362292154537679822035730039674649105709287584991255801002014501004459421403859675181310607517522194252170174806833002819883068967952260648951256423699293610544921019285403829523611525948922146035678819415460472826136266866851399045756378945099118072452496765726758397514682538417837382270426183159596112951480751519398884102474101634636658474188162110834255849789823977894143753791065169529308165011773856938018479700829497741210652900918744505958190307506764340931635361163266160781540587617778366235946580093776757183789955469700109241199930558688474719537999708240841161442549800268000085677796873721226852644790828049377537059470538558987262328588588133363362516003815400188436341667789283715846099691077525502837638128568870205029755642629549950589431282528746503319694330182777706780996105277015126500133653273819175723871415205759406538254482462918412994807782276198475303816707048770636947773681437868103227657477255404186576207907231157818284723398710696092319693069853395147817599262759955513671762638741934165898516408499983324925552929642160928495992892656809175353710002567666060168190266634854751598662030874490416011352866312097526484517545103791355223572827963611066385663649344397961910690065908466108761496113948774130503389518342126833520771376566719593091604857358672806779655871158216857650044927103314277704618495525436790660163706248274151498369240467912374600862170041944138295942688698958178957693247096572020580284994630225938904016526462992143272894120745549221206216217635283121325104166877356767926544263619660398941821936464239251008104605828361686377070064420687862268646956545991039391128087617212614168273724422195820110567057815694845293284647942112347070806146163716253357158101310596492010593304760983160999252428890269914888528302062514099703837218321124024011880241805482147820731734127702627435930634170882236146481960700193940618888184238588326521527269533731063609515985410899569547643695178078948933579141154245710615881535214627347413899023505230838934819668847305292694433220001962774860647064612365281000821432530048332595168651256707189420235005589722914882326765743424231846040816541004140615799797628404846470380438920581266088428015150870498021220665708902063999465720533088778732609622399962988838258603001761044712480559788747356759318789115350510457676551955929079811606831557571725155031586150428898203727448419366136721889268502236417050852302008903544155258856045315330849048008373781839435102211692742356833737132937238929276045646591602119012025761959995557678792033439049256610944894047634789008942732078578930252762419340795682600008481230278962113280141548090154145936680499288594235802145511996219120206587423588537597742891363757719252539436185100653773405229387330383034604836350783571192817869926237906424418377084596295841560957974831597939663728910617367706293737559028701529718135417662451278030574917749776962245453440826837932413017699950742766320603480538205244032321205115487690469766440778058108250746706030716563718372803791495796705919503516607249840735006396378251467452922472535324679898046880649613885332651840395227472992076335919911618863331137145954051473480241695462629016482133722142770157783413795864487859285437076776296965049371523097202252669119250180418375495451231928841121782428043630494253390734204759943907708692888137193448836539373134784350246597311136119371304727200354036512008644702440447030034595566913630391551428795887724060644134921441776299542904214733408105054880658004250020459793219475186275206030193421587263301490820130338367437771777537575905801311182534571537152541005749590900409040835282023648771701203218881255943187730883557963197851257788504371347413562757060762834525247462633846131134803761506042091346323338180242070112074650056162723342944589895043701200934518881354402898141452552945984575711791520995310515668395911165183787649242986117651604002261275233217010457605818624090650490363270688801157165532154181785780870150314688423820274772648969947233079179807999372523552040768915946309038603445318901882707190291582240420176433646011582281491577449249101602269183906302067479652606087112451960158619039638129999623339950693932762539915729266255167166063840541520953663491868268383692513885865963090526548430633170125894936673217945656244515670332018237709463788020311846528081763243342750759638552415845682040592192568033464172300628650421639218355116250341002854481718093255146851523931053652859517795962265753427162311939315547087842557530835292102652595307943326731354294379656547970011473302431511089501877363372697272129999170262529602651925553915010449184319437809999161366257437249803634526303979690914782668602069496265959433097187739835503430096432311972053817507553471781320581365964097790746048024720500321310987142934947822595290066493707766211500843417768325261253220836652660494020333789688851983797292578840267572998579453310234468072500971256029209663291706621865901748825017207427449305322990576697512311797616320281518433373039402138101889518164860514385668138746685215679095119484066827919704085534084199709672459113658169289231525536119187122943722761078115571555993437904403166329180237594898412283278111774430240773808785011191156747770899886307774390332053605922342276955301463779691617706504196197608473075161597530971791473418033230352651349787548293052368363388104083665811628357671722534514347501259348014964935572793272922453403604508527443557421952646758593741281353777551324732594333714876360260245639384248016762466482874331602537583247231792207060971457590260642297984787358407554471660887931147614153007609445066431633682671856370069719816635476933534777174446816559654259589960156456370189788799389483455958318875882866364696423485823250909990626594190705256684392466410975784030041809663407725909653268161426458013076337846047720390707804203479698792228922023728082886429623883386245660157228175499734816373668924257113612135845686119796228016199712006583853343687391123124258681314226121909567104364630512766594082309250139273982747219111817998396373197223631444969527784422391877133730658167320018972146644769745188836531513121501413077692952085067916238857051352754393111635750873143422429996248852743731525698430291609887181975269927192683951011538953793464609778786817319125805511752615291273552885337690441696130767839425302796542890212515194755079652991893387894811923052779985688892404529839984441699480279382136455280820405177423811469877488144060220296596842764111425088492490934590562092566831853011272715127500406320747131624473868116166418068706759054902361585475138973535273578186472293719718497730503912377359424273685750354890580836237094696470265829152990048200820212809040394036743385467317141347045184410085307776658869757747729061112085469400201033491811655248256103067522934264855451559459175714998957813027932792391404300715962449856198243907147896820975570318875882374247398379364537684606086398929325448191951684217154623771312823854037417156692471944256959831922207777949992072156699432397626866381291784122177085385154162235935321211809999456424939109416714007676853240330456130514089903098994016787658585932519550669450962254092588830110791526453327869978375569970031319961200817548304574571992991309013198424809138576858555541859148008546029376586095648294217374622826822019121197069418577485357977984056967356677199802915282935247564654164507158251835095948499548450733965637105645710619952472807753572006752700598558159787588176011426503548480755561232410937807647504088114996830300207590328051793247506884914684246516296065708924173126246031788385423051881395796229801920466167207844023319026014178410986551511233656853035127619036421016444316367343827289101769580497276286335880559143921874553223139604971849128587649540647558713593997855260069416308351427559266411646270621700780653610378583530707696164870114393904241865172165300452610873579979344746491711614985738502984040754214102567967949762808223686959923160421134686365240678129321388605608276112698473393103937252513912592950908847694135384737246888855486103160967125988529665852880101856422122356726805257976510397511413251424506514908996151749780627268107280689983118802130248158352411944553415597092423702321412510887638137125595585569784914882632982123127008822516233172393882075220884005221140484295139048966403637301869916779805728314903803868067795466623957921167875165691635924959422728770900288299329949730825909275933739759745296732022037020509714721124892629393678039198812250806561175382230093683147908526046151091352099502451442447882010584187846371035657489902261082152266348619345501854368984153489971651745849313806842197152724898019479953396336224442927503810659877362773971716988549669058666192505618724231882024681243626230970265708782476346722864311050683604136231956183138093535916953736546560829236849693174561697543990915089034681624062143220280820102875342365431148546600004367360534804119004020129204884811026503482372144135158751992079114755597048751667757770417127667766613927643234077599932932330698881320543101567843077326796634297905208014127785048994075013436946456192508212466722283532723772849776818379147596993869730415038840038310250749108880661120432680299828352977630045448965619224120827248470575024778813795856884006436393049065777064522302816644462773384388201947047353160511354335762566748534670620727018056738010214127234148737621739551508476641399889296974994624910581231373050494109468344364372463148759469252794919094898223831894756471529654019864704603898544099544540087495676626817905687288600713706899355780999881259251672852624812645587336773368799860428621074377924657349475062089332131970626320044488082223231777732966115523982711812267221488417097774333611737425203890655484073767328254149794512018620242319465461094300698330517866296116992127158519418393546423146747867985696373374277035933721922963855314191210238193903509646136583056885635262857116348726348952634146870878229861314713547855411713609765770681359391618383613772508763061993424919942781568908281820307393391288917800112415688443551075787721285629372204775966561405793699026063668410489175068325659563210160848093743514157800309042755351720556777523048379741764260241138629633721535011538521481225008940167625936298936206153713500547118548373000767178693381281966328588468064033094138714886080574287240937848289679878645062166912390623229038028969836269350961957817955886472299715665799858184456866623276801908752707079538757947509481767189944882986025354084732036245680016685762448074388912366804342861598023515281092005179142576887772071035406285932905242220235340625435837767713083240366731319887531816543908143717564646687726489724703768116714382723771206795263116369974566290575203557266559781696147469249803248718581475236303613696206574597800630146036541871022920778436503075895684576456004753048562896736433294611417702802656393702898286609026722751316667883416201358636218082856730764565848900119663631370190989472003740267536324073611383432488674475775641527105110558279900291442135957787298469649813544000340233334578671862647422983435962138648190658425736803907718397518459840283470428938676916596905031994748772948570979913260006699261052886177475117131212557958747164525972212008985288777630031429858190080915407392565504896423935616810793920073789730773667608079423412122810519108156862680993040498156903325312248526197650915012451587034583498862219143813598877135253351371537760904229697282536443090782706849400002060229597076608902137374887723040581543317738655182223335752700425374293824155342048294619047634151009092990604712235059654913160723320770143038730006261743149946140581919260553986629650023338587690501009564270799147004772692477815319032743529672011295910588555730281004113403284566059226654595417197765218878039017964805705710607351536053233128685821365594306245437097480744158651992206160436197158984035800474827089830435438736402065054316450956360454677999314565112298553010699203931025032070507584363186733258928771289691829863510259102680422856071275673465579331906994946782377645426742842625112280837896996852394878070134858871085517406984286041159808358575394920035936563333681890035591129758043804634180788603233127389515429707207360822782926999872122917360144415796607135870774823251896519072011773327193508967733463331211130775079872584237966249967831217771091777090096334569980973540561234802332996941457781864887453237295475641329359259517829976253009616332508648236620154150344163403625449388997970551213619341228196381783073903335380765423748081829571789657741144740155900640686507736900773960768589561669127537124019651112364435799301629116813230614464317732628353620132071056809365706266576549287646491020155760595252076529524326138684679018837606695472292282195333137042932476569352691817385797187655623084417642987163160157890734635181222567035236029299774841792378081181549371308014269464294028666051979060354221714535756360387615381276751825855199227345481159641079325593520657232225610987917752953759764845574347718732873444427342075168997129378497110013903542559561512574084480773573295191372274023144254408803653358060094395315885127937304927320564766984192748693370903498358212335808638443825565768901758122970345096019073335631486061431015497633429727117821674903917696693743834199823054209938032758350547065558978149803136332313663445342064758438954535501778345047333751294401471975961013411615686501144304005466362514540876265496274506817139643619271668731734483445628601943945715146117289486832215648205617934560506407260145001594886487170688024251275101875336420751239298305970325671675637930917363075359202819281632221277513771967066271346776360212884488359885568135081741263871026065728561002731849831648575125018870480075900769752378112323882092269011554468557581459737360206586544046557556046420538260499291233357795770107371731736072020557414497116875901529006566175017347972062038837508574963774875739594686743628049991791428087050385748609631062830085924868928283863725979786615180644892289194856738067233734183504449723237355642011712840013577876140682018784926139154797377982350613260467639081726357228078357261332631276967479638946514102340043110161633375012262428601312298215494392604228495036957261083106801767999653056171464331093152248571394493440271961249682384356206455212492776537700104254224060013425965519903924221542543368483133857138086096281844713701447156421466169675978802388728917701506543329356278766445218368159233548096805378192179108843126780345586180975686900331927439985972290091751689855516386022291309858894632698390582798137316070648197597248752474523307132938344558438143160928114392593750416860645577086582599998778424819414088534457319776939766913638593804867012490589832443413082419475656518566793916671815404534503949871611703424213952104985791893765708451397611921624924592677930308707767414093889340770177603948608331083713347492861660671885727610007072875396434131475835419252625802277333816134955848530761068726803484419850069518811363179315308352790040392765936065922368616472560902765924036116775176354497741404889377612237074142775035852447334740954784194852602803970854455716548037697824393561144433366204111948456475448601811128104205772021288328513014142502948093934142727101613883998219047876461344354402311936955318356403907074701071783211120787023838188307954617478691216549704312417252550844254567963077860303979786099057967896653922837398414098673832618597632056284711503695247906656985979404576134126292902951787487596692760908899129196736212424700880069395810061290620247892443718850776540848113139338477604527983870475796790021203009504287150858274935667854729574553391396718165803441470413349821710294440682726131926788943539477531086339554148353505395644925128882804035967652651999270258440235892238984999356442875701243964276537621520638168084507756697762224589515262673517003393280926938913631662300715618842399175114756512724351864648685482101104963717458175608230974436750847124908214053231255414261207439070221361003677504356570015216967825866828751886733467480412753926104423355266098073242816904062454372861514487571839920758847620013111260282191558487473279045719415867116609573096912911938978112460627589305167537436133929264438595489901653397398540191368954130635807388955317328246263835213596712810602788725179460744807981391033867883729646023026836232826045923536113877589349240995977856865546130783220026321070322757511830234451977172762918230011270502791200538084234710498503784354817970487888729310871763766813604097257932473179578596590376196609057069299661121173818771165855777383927163400556180657221122085071052399409353249393885523186063277246086682882761692232670083372468760644606333884449116616013265014085040787171981512243159577551651013521870055640340851913348809528910959344265599149886578350555028772347998177335007678042397084110705629478258749970948653071536290173327632730423647648044364636503955731604560743308175093380354364881462511789324363910676393708011614571563524399766924571827132687084819594778397124739513674733277255894656749738034532169625889474980998576158622850914254600542406051217357434414449357024313828631094281318217912229005820496937527976695826912549340923724643105727271974149900336807588771598636849574568480931050641527620776631855704011832181010262697644169131721406924056850328238591820335281682022692156027834742121671236508347209385879314782116339157308734390060085142840125794286977872836127675576881660137990310935377931393619040311660029696107920348702420338654776835263230256002723968832552516602959721918427074616631337544666150669239703537685682793604463221127488816811293456880910358194607796257400851123793285865661063580137572752222825546658997738932950679014518103856712068529098078310012029523891444907295293152131419296588741130433846509307420553508875271256242154514310903028091734263735531150869357212795727809418131308587709970059779047554147233691763513735901790338416772030956855139019320820188393087026423948128193907573567332338235170864626011882820495017819393389480742845623149384095848649859145108443501253288650950344713945518714651299261337621176344543018572226584195139949486889383353576191593101814287052232746452264033067327126452757812447749793535090580708079041989181717706064399143488692660202977193161817401834108788222654887102252149920917221834320942585341641060035475238730220715744944546737943011310015854884674767450168223576334948736262308751245662196053021787357156126508488127990754265686506336878650616660955087813201074558737854335378900832344425978252904356144000718524233889601181632824495197814414492761405341211103276907389930396441942779284290809373909190909949676569067736603104342598649171962478276615197382524183484843637976659093407633333116485684177909738508081653655124723596254911116153910527931762554352044937992405755023723719975750143686310034996622305596397960626724754029005981058527803237927635416408831223372041209068401801317967325549999415744528388991397191239319889691668591705270934883848621690406541888203635742048109201109487076321251920286400759218337920603888832822976165640258151677814884567489810878989633986545353180410371013667945573942805944473850860892224292511340850877558639806286194472301566026381079330229223180756232386198179439451071082896697305985886404882865886158245794886229311039838733803366592244567347052244191249919232086617874180162376671587178401990419655608654888060123795227270649011849507274150636731179529189593856396739525855321277235346842631733220120380735493972101505849202359968007380391337882907066711679190910209260105739920864997163291461666768288345449791896754252096421871588667648967874278760859580031404415697929469116445228373635555003191591489934017949427724437284080762585602298920073953265495465676585225522660810009219550680151237022593862946207630537725905634568762451781170682792171080098870233679252693956331975015150589705053025509371399676627105036031488554767586135573150749634730378901925084416622497249190853908427819248218267402244456872534289595414489126188516220150471318015277295613041452252312628522724168265511792112794441964754179327819367879471514612622953765557254145360796619112788306974494007105233766614802105016236513937503523122364395732798921085579509195206094551729623120821123718222662071540811331709922258657353190334117428724005244578088244484019697416066215116155168927416181330501053934420653225115418025589124655688822130715833080225417488173352917648350706290955222139253602040017995318418372807834030882821853843256091286838282644122335998278545677730315986580914992006454024789249372445418467028482515285815036559509951891910516895517585573353050284948224156459781185373464365014759289737560295362860920877203443965266060824569215019658020846078008855050777139017493463904553659428196661367046055142299755808385436562273310250378956936749664286465013446469161264000190215722595133864362864106062493988758366307056310600179280159240013618785503973179803632796305069184907606438824987605063527560560696739769181455298869459610259667433486622156810483833952544015932193378320174163645214074791985382408842436086924052040325988703972207626044377926917616817773923391325567447720787577338405892907410997595366332033822366012758079051885790309519092472574820961720198468916414880389691095710168946177138051211477441165560527358895307049341329899343399310249124695868427219454677256050094212189411947711514752582636847099668058586868560039088698095720300254360996102271510613134384045366369148610038929388862220238376891396248186141086515193103246209090347714061051790680462035780294727689011306608507928859261574465752563915279862885746174836923116546281673794701435228205601142691172631383206912295785437547863928387222491419899114248632702349566022992104041341539434005357620454382591307797903015498721937333427561775950299028014984244372901515299294731037118312064763664255796397229686068197670506722059441432026773027469000678875392706037777852885522057113793062298459605662241965197187790145995205905305236222543988258200698316192563127050681654381797055104157781361673543503350288993793605101694150533107767042653862650417419632710870162183063619931619907705629036089925250299698415486688038683279074813108474294628993067111186235200302564683756095794557293779060532894611912697263012343946209653524589929025763677168492937438632735835425653590107507408185320230686092644720490575601977228547343520353538486656744156283114104866446008523992779410877074289772711087136458042804321812421098514533612592852259890832427288351187090415961549058524347516867504212911422724731526612032655197649505188307929507764760356195087516959993069714761836571227835183253007189316369716708873773282678328778674171935184460516665497947841364247423395300596946951579770083571560107328020316258813070615791766389639004022190977905455691799852629551488430464898247870742195649567492836458498265660636049772099357873034998248707103600606252451376411753669074755509050519363773028297506079324543380054442672095039750532230966124285114086657928262054133335159643935945806079945844347670191937027005319283397393938977602504501794071807913763860029779716045522438323349451195286396209749976962942417889070367000539975334807629915689820110571805391713694498277160102194651266527367524043680729714807621030742528642303090729950178005382771573776575869003019787356925015510159067364109394481266526732461687424750390198389759527510946518255749397085362861616662877993735856579001639490141522244690848222596343249719775761361089019713741534338750895488362473312546416844462021982247380778477517086566613848724128236528414342859872121938664870792394344261950959173875694461113293613675830556610475088234465582502107652341740050564146564031564728144642471711618305168681829679903465483595531976003889451216300878478219705339272078235488221817355297713110964828662669549048641631242572308418897343800588240255653107800012884903529137165900715175865074470040722285413105631150089912009429694600069243681497232915651699410379745534386482270915748497822168978147516068260245771574621436445822238689968274737226923010230719890693870414684869088099875187582187571676770725551064409470650575262117890836160144673789072126542492409568350546237565945802073309395499309828232488099612721049760854416531813889974230786080718347116285610988383541604433826477154320527881770059025289429614232232816504407879835841996278422971353198450020805245319342308884185749579388026037638914586783047433444405863825911257683247673980221366736396259256962790269087413316482458753228268655397354953805811875673087616465120905778267087423415444765984004647712717303469232020417181714093788712934724697352988439425003201697316755767933720491574853933194858459740646548724625813787302432605228890436111633108188649681418525245426856263534138416924117774889969776931318530834233620457390476750957041105290935067224010816155839580635600401123298733392055832971435924983198938284514779482623726975202438299123688250025923940228356604296991874986714833695326413507282525243669001621088199846070776751548891814417590896913952201923204492271525742155091124289682785276306423550143750421407111734516187078016984713626619224100457068012274500310551382411660858998224784332362139231982435842411969322365719353067067866254429318702680937474207407028665317232911019109675062660631612233795451965515538375354987667794172334195697682943387100752676472769734859139518623406749266971447878661370021368301086196540837183451992437835642639084011505707085661821929998689364287569173144335201201211269185083599241323311451430086997452663701933619263684748869456511558618007020564535106980657219742414816483672808077986661377036822855205644973083310579402432163021811723955736684793812814306295998405112941543965681307428294600934611903230386020502508247733970283224549941842612214756316725882627497234573723574488794490654279595634193011377250398773054729256277252176287238570869897675815501455654264742184924754930059499625675468580011214175936379162531612787956971989200862875969533739340576379820346374585194868003552153802096828241580432467527049949425136186447059079493574153225892009377056073777370286009418154486942200702888999426994641349574166870286980019151845407362276255708848939142157074804371237983723550974943694837909689368972027846519239733157013641526220132116930801629727511874954360837333319523678761976632969815123326440562561915166585090990107394131422771038203736006745480908542368130246352313487990676804999483821431308248342910684550682107949799159831022262522633727496086786588524406016603855404549407778225756451450434454908131617519486210112277811684479113188336209527731467197571634963983438530217951797239079865460013784966127151634559063492446835878030892794439217801382095650124361996085803641232576041107639691487579596956297971403915350689586072699000914854984838141706936729031805459957666542499052778638738565944155353351621484536260731382338245243475545806249590914107886374774591826565637979104637740391243237076115991833879672352290030452955261249829326977176486470643634330003229743892870333155894169929385935186313136471320593572159413856403679079354466103100194750576731083507063374380999638126100421187404883686812887480164646091889953303846493219096156045900601843718274660455271490666904721232563983969292578917295359991368952002039874344294056132385888176646390015172638898515422880391592117678580736877951679874789236118858025185428176937273322624961926686969889304681000781957347010548558070081615825187027446727504944744727462143920518577846686502315432224881571942976379557074368915284412252839610968626583566574925630235003652243216634095917377211036332267431285763343997876411042324259883232701825385370560800522662709812897030398455617314855726539577020524973653681777975281050217143659866252632843792671357283025200576900574511853154745426176324862843452238416748740598742762098566271661869430294199941237558584963333334708615239548107955013248434584898476672828467535926090711024299586778959552829999454579746150050145815259208652366188875775096076021196481236293937643063655273063287394864928631748603598393736732685425982779686853738725017722602815113475048236717231895375973596684721235109567755426828181479384706946783291622227905409882427245220194829854289516994955859361000512317133200173444111515258426859708440916725052409788384504765563204574906879300414737681317806702715797519464891979038289211962697734313462499714596853233201078813203165520541683285040392431022973103870013256694334319440041361667640114755860178297508196733153990142002232544199335053405542046039204062696625822119172044749013100765377889849480310311560391113215983869965980413754675710254489145303466040584354721806840425429030163382851954609459706948168144845151633344972365711853312878166833162416312564543722605610151273710303736029549324154750060848635255868520177759013752636385060406472157853018458671144366724544866904296378084559426127073765859268063305376403871194817565113606257903608112559056459027116762691468587287509353282794493522606574419645750562260558981369571287976339643974526263789096872813220719956803317563367819843422868395321042333668390090434916083717954924115540299339988099430117401013591837295921020877598294126235104366551814778170937815778035933054078427282428861545686874062222251759545183282863158476349471734419158458748135007073880142185370721653226810296372278510543397945701103711519784563563042623352735203307070929587265025083573233140141798533931255928781507649958747899661223528253210863895351142903597481832795697993208338454822833371273143115479111507018003492307536655705453407894143148780973746632304883631781400152884357749646472234473285129747146493733486548787781077200349851903417456210606270541686522870410248672392649072906061668836341195932058468305229549735328213718492609480542442226425648785122670605975439570948234099251406004998128450906133587114267851161158969558670991979573150504590698038897080606637768454510695111024342225981169410606115569935105078755990317219522928204609275217933734356831177880651869179144801278085950300564917167884538042249969733344874626985246243964735045605273619752640303548992774039549582325765995161975688284187289825106523521225113338017113675338408948740541504808166761390576591646556957441054256582050952961352968756644810251895434116772504218108314826196602023081140362583310686906612219412205242966285164909621423627449019667127497433249090678997002289395623809151794396751516115622784695486654509555580566350545114462703062823818200039505898385774469423320951217448602917329181897517710135166087741736362802419702106936318674519571639981467270538643796590809441248347965748178804823384182449720786701733477088337173094869627300538254873658336873768724501518268145359932293685256056114488428934966651133775458919077889667566707656707819591586375670451378945777712482939115550589749656808415473065010983759193285583243816976949546322522694668939740615598655560043318442645094508342165236156347353027529199893507741874759153623421774783077202146326058258692985604405044414346774713680345602102733327628854703523937193534060873439445933499684565912135271211252204031455677052461448801351267468361473170499359936106861911978298285168356052374381110686562282107336639500523916050655305767559092046035920542128525704623909277627859580875277784728349196511156277429135274062876906660243625355759080346742955837609071249557931751502817109449826612113257166441449999153961613985030667906299517968664106225797652269330220208818696659486621806422346118538412962453177062193612095430235757521026954850305328197426153306714207960021961268652863049070066927092791695601713106358143004996361430478928865237471686604370213757148552703572157964826800703051806901000392435418550839119207943190202375874198055192377574417127021832792051348828438275088160332599263784388158177567108170885271177250442389876950432288400840848918730877918882203824450658191031088854808945569914622278283107731196208280271046763283229891616140040404907487201013659324394042809022585167837999965439565637085800203026328987105969958523952098079913601370778473481375701795993728994244464415513045523058287183147151421704596752748867074132338902720826035104993991121820282331479564711025913203236787798092351461562723207102030840041208190811918499806332337289695509302491627260657340869731238101119991639029665887438807691653199042827229572879830092247390208453200858963760833280479521115551866393704437039695750827492716923487505919802216393612139030644164019205424661199591466912329399973252216711481662478515188888588458204833852797780735925502610972914670965357375319822559874145130168321985748547785077877222322192720561774305112720098334520559997052966171306450561282417149639430213568291829661868253965495715311834033200306417052512537295164166556040521274126736443041539123404316837232845863600219852219024348675223476281807155706158221268750757940728879041801558775853596294517526528898093805591429513769904737340439434083128165041860051237064729142397739343886180670209920782108869185834619631722177178881773633173900257664867169203822642317947957897967732975154410379748033261799854110570289361652468626034975172651306671205075561274269275296644993939954907908987430008395739190510218025818788137367053204738040428790502658311972409381751755323147174739864707245739916835548319037403747562885231250938978905695472788688150175790835135913701273308730636986711437660876292725082957978580114478007610778081031399933656061775222458769173546316987096265197834780236745960472922908945370406841967460483857278962616121034923448012606056929324910391887156201659229338528033113138924229436071546837384320903719943070640308973705906628752882529417935394839667997742721213803146571332445731375721452892297809194709436582582122350838539367585985115229376570141437787970606030461309246223955255338053132561061591839359120323987594913673406800256948605446677144796465780202085364373472453823858128156626587297228268158721827164983804961012409679302750762615305365629620657049714113174651937528975864515063622999431357588442988507008952470845511620016657273118076059616324366888873787622275365960204947403096118096984665693299881405905469027872602366942734783724806220007815312744547437461365257904751950286674150774453098891976734634432071527606186998533023461141989585184218952396962254993223003957715475299999538241957181846035594370800793444219380248006758219050702409805382674610544510077075588467259450461576423900846855454809468033901380127621669013284170510489634230869655404197779750996559837211401130396852311950694856974427572577943806081831062642771384040655962384630405043370341231579756160036805743931586079110633843289449084880159958925041828784279826221949913130343944005198303403932792568128493922231973038502321247699741852032580857258127661281089277976114010867524704356629916649652943468531446847509984357313443686552150720626071711737830264011215304645164883939432882327560109414261105266036531568060501548788680509118696784019874807411495152257399364255512345651561447284396281153040786936265015446328602096816280801831169412955213641823928777500773656661628189677599189083345475975726879396814632943077050983284610971179083058918571418429098632309259489140261293152443670704484908670624171338402217590459193635061906204741359170523108498170035864903760579406803974123360117677608360662328019445388947536976891317081843698389148014457213068596200403916488901386577594537840589781197711532419946753495554930488509099740474369432492334616136378175359495411780180182878074881476883356348797293060712319291186918323512843693746820438508475820970664292214191087962286661201982140438550954822064790604625938161457554537097712616352373825079928606191289147108172840346794930687374009258175119487422466102355513648217599515561204518583186445336740870327645821414418423233242709244509185765994719649022525188251119156399475088166061464013171015410196029164943513854330525369764523018051690352836065676402637917783629266768061158070872922272320322491037829548926622159195145502217057436598980243059683100727686642026532105037266065930016431645238743275835071070685642163000654681586346603147525278489623397949001641902022433513355887296017883220716172635827637930783885485967394416711945306536817732344087182098065694555386949568904684119815154668218901287399924950554719413222400496482634622481465582078378152783819932968905195195428788973340442370542528422691548256891097350486356690028035601872155136878275962898308171800870468005792819536638730561995615853513175854780122822813305459803857042686423409478935520118398926807393195385538092856589474799638158649489067970641503537473612901015022751157346554542912649673807960934700634471147272470708387452696884611885207915162136558374940868461290293656210697904480836382620389938088730736369906276628095597801133847099402915396948410487263949967160122647586933286773072588287342735313588442448540917981822777498311421577393822041859415891030885650150761607453740528206214625513308925006041205219799865739376169101876831528995453114238493320871671374851147986827187619117001393997560685889163216714222004752861895551840312717543500184621579533656442994423745454686437853205058365366399390433260853997686852198191787926379205835482279347390415574841644204183546127361601829185750119524045260748883181369951439502975134452858285238364042546819652188906382545528945165688922182195721279768584145072820272733133968830401013433377014540379371096663268233353087669186097458094883450757370647040566243902242493706276239829579087827376878423878716264850907847630673998138786337252447118417811784092151364283693677199128846992694315246500580172298385280785756739731589413735213630936451447226099484999307965328202372141979563712265681243056778770058033276496106514805788091972406474824667601252452703382678198996194770665668883707886939342567871823115076197293222231693554059579752906478767116916416856397800548991448301172183416082220916200805133107299031523871047965345649612413781795869816072926136096780934932854597259501349540021191985619069830798828943953278588165195201113982959851768635230451418292732551693995017055677851150189789036856378329415146018254101377068274741398315446836628943873341440143942587202508207111076435530465770735311679567191401590591389729234462389312432125629027072272438215533338289704611466124428097338025747223272465602992152665157861502982377145604923781133949669495083725225934027812566659910632024960879732410338160504186973580655798567804151081511198254846406331449354525607582038971516816836511224609605597208931736494136931579927197893763118624286283552316500231474495800396754042378833297712184117667936009318216237790956559150601804661269330475335238879823999657507079045432822806504188887921640034463832290481890480686812635449018715651336879320106847231578206798853122802806121141269931939505242678111491524341911372509032335077740653844280339840986556242255741232888123926494787153945170559445348043274129807890415908604455199076152253028537070691645230533060296315563598346345451013254545379022625836805809485712826885251119127587554871689094898132577723224004162762954776345499258912270524142439312916510983161366675438890137397958211970517938832925103889015477561804160217835784473348155384643285203646509576370840049359592130350267462860816948064464717204571559442583164675447856925334038377068616543204665429121095916052972248660963236322617434120653551253223208312500025114684008745172915596205374525596784515309691926827213831926258805443612831092760251548574535850866526225204308771114107682342708525863852015526292246694090236731521053040058604646044977042261172061021680743802355053846028549328281677155834220282687306896632255518063269352346902161224336087083592481828232836512836064701308086830247393713173343830340340929930088524290969564854101895225983664314763739590618685220135726863437195842978284055816521782961646395127220063987567680040901355394019653925573386366994720838022438464697856339261010454763748681422534960780015833122286354085395270405191927493774404534251513446461978678929642361844875528031979150183874744711889339622663629053010994771447558056904847505458027037845272622937845035183037974598878731031972123512735437250620473021951530676149298112363574426908713557222381859583078567790576062522652720134428251683896038580535479602456891610885028720952570456867972297562910464713016284147403800252536526995513596288792869094257433482393016860003148086013918920099076525173790277503712534366350209129566735688173143495235503373255696415770704908747888501215027615611857072903564321164590071924266819370018920877573993743196065536921021589910298860475449994318434000096767358709139083732896600981938109361883030195003066918614034673786002569676777670002855373272842699083500567623195839478471272980033270994956648263922619181298325617325294029577318750998696891860887084532739991661869094626825122359629433186330711856514713135998180369356954352688558044807604543053085434587992972792524025534677352122673742171116473044055845772254455354468136970077792324058157166245913760348847059062655260949828099601195345657512371614592327215250271394674882099482728854299161336620928172372195731759964716963505192641525125701791601183551751903179345602639101832923122853420665456505558567132254504255221193630329451578409813427539275584782730369790561262479951199446372820279497695124572722856806568239256274268432901714282477357303299979019499060980535703048155811109783600696508107387518424051825088030069789634291512913072193499181707680684269416046619572160510604823507535754747680184072253565557871251099142570296827066482645882384567159738380723607328271001607174633859487040153327391769126197670887606185144502481307917500164413836650477327743301606471630240514953706677003990699925693668053039012469344959570326682805336826247288877009697855087641426761332922920648361441539141845086148556614233253573590636088747615602140954382768103430293224636733588161488121808679585904221966709757213211328062155782883696438351464959000403655434874371380765340567248372005422295604262334954993471701425382829084828406841035389920923975310741209642618301363721825434816535930857567273350123083031927156924906714700675032288208121634428720235868665851704078960991700595467949285949000367408743359705729584677486794761287112980919855546813531058956766632375614388114555136958077122241958816292727729018764070980197803861127903109193818068171992182672820772160558121445824791602337285576744525590229724268022230210835620113150277946746297698537527189514047083504103026611722748325423353888610068797682625049127057356493080588845721123601569563717666510253539631521385097438848869390330677290018963758765876849479520093510364339673504620592789267401019381443569677660049893678069042764110854013306235337502895092519203547353683825376361846928732996240156752511233518192201468713782166578019244374512040028421663105435344856923606197037371666837123817051857987567896383801893627221537548113461504933621184222619806360410420467390579873324219241476282731781317932285406607604530708005039127277627060719464786421024846231601129214520277082836437649021559464507499756682996305633704358885237543537855901541628219677079463207261557685424695808735387226344502401092384908755881226544334441187521306827826060849053769332285552943782743097088794626091624021068164833055278395393646784492037840928066332018973690640580090751733513401915618027273935477532630990725925873859604149401625420888905826912991913051839050519779714209319210542283945751592767303710577016854467497524741010983809554088742516812480970589427937349288258845657111379233803680977793408264532207430006365504306116640870770029822565082466470875000029822614570543398003334994870293674468847648023047668787629580830534725563070498894443589926480755057759336360855785830494767789429551403534242985657286731715084733534130861913501223469234364828425848716841002621540652245252898139327330969949113981293624525902355843334322252433449807162159284617785764677414375130137357441461140970824421315594090341009073528672584501648257264549253578078068706210859286318425927460945069853140233306630257560133613495181765685227556507574835058056240335860947319512026359224399745823411787334988851732276027133816594329741530352346479710816041553080266592360177063132418118875914950007484694648454081452089028173693547995804070729114620201559056960167385348006349113234049177259763321200777102363955426003411234597384717103701422171183777518400302609354138536656544068258299778591855183168592137256236390781674168975178573688229154496581326732592798470864150478904963017466081314127319664097321811673730324928422337009826719004122405879989219526526751509569509729285306029076934053822580758812145382661093548340213043379810609907316479782752753418734745909711798356233560309829372101187948684134769473740218136869231599271675323349860905603919713275047236715344657544951312738531577401209967123005812972590438934710309110000933564663955727319949084743132599547513916321219078413320417190205929510364196664552590640657787258632766691226387625905186956295450363120868685967682263458100624396574276847754855762099952469909503300445407365906106479046241538283088711601477012849970274613276348887249115344874911970625639799187998674809783885345344723070099978938938668285385798116127357396661189500601896367865639637162120878230702239353285617855569860611295572751387448190140798781928640062038055075470597563799121987559276844864753428886403071055926686183354657796654026630664267320288551881496410816751703183742593279855053275174662660075208920849762183103973768599291196623004876631523909828726179607174108816307807720566216868458450974784602564593279512518672812025077623641328355048440863339607213037433111768000413296993361303063155325612674767759765037622262584837205368690570586932578449327982508087161901056565745728070280505297954283458264918267441336405450073255209759467511295562327606728824404496206157051998197391083142298862088710969448111652944997019520283560161854107980615788901408776975016433731115638935826770446265999009106067901979301653694481644154945240620456241957301376845173321979004992684098336277047322012113887569918550164647146032364261159428749521487887169769737612675098481844182610684848670009077940071106005506698415114980869942359456892411886436580367895041470202868518272849302467639590878214651600580064770394485373879938903304367801633509192237897934878444023259281946287157673256817066843603308713243839654881834522032291409819171615801634644598757923815542958877998242372931066809756611825946286386662755679635019070109858684261481533802911312866315675203918392606016543149395281496727598558373635868469868442642237770733261134945972525403649354711794540467947627425340806137274480805063388573208307278573996493365366751428140058103359146961575693469069112331658898502687873524485536306275977982530200458395910651355452133760190027428395044108113836125911564040193673113137896901877309093168532144726644930769298297254065568293626938072337907415983788681503634163393403040590462369151829994362441551514839130196494084421421780876842817427186891352110490351765838757944819557255717650636068830605015979763803776134507519021448443809534485736454906034145898117117222795909199711152341794077665331463589783242921650449486106841487493078315755651464870213768936424079569297592894368746856982904226987379255425730611193672213081492133707211737950942463261578413857555503565813523390877288436068235121894632779292017361191484290174191852413364298856200579610723164987037846589009086643262075574535485221648431889966492646976389361750752793333426579159105875874763237148888817982758513084249415430501119076772160156610049850802536547873867765151160027575233216354633147557802316057501623789476595592905419826564407313874033744261763379210802381404699278547552974803400337221405472611589238291395793186487308568369593201916332455114393342917482209129232025355063691512622781441161004686785131828691656260757206271408564105798325769401086025731917172882276963248581568438984978566142013075534338612891123296191639149621069076171155034936097834345257670405554744591982567549823751137600704049232034793143360573435904286857863899868815285901868297593780696335968100867853440740807601869208967754413301582029014519792034516995548963234704843190070030129478192736286635406526327312224423835005145397612119739999021274311272094109552398612283971534025428650292478409433349653948951344825692051706150417383850010872799490794261945604640083329143469586643362046327794546160756899609238394587221981048797733881879807708663940582227370518730900646078175272167822951146432529875138391328936242406049722301784056818870158878405237008363684484053113063948311108701126833001195117916306642144122596226675416696901623274878224121159439564252740796241595353702587999232423051036047139499465454048963221318972855994286742171443210437045454332766181144292424242387926910776857095243752565808290186204946296453189583600913521561367533029545251580373243750571505488235661622318104878533295824287842569367135002951395100266252369847945487245297841329465711379554865422588042021507647842081035726540397148851540238119267190738011129656951547597322981444348231905942935576058963079233358850024880697718943085329716426185421029697256473383953742792622424372568074624988027851048279467129890141381683088626081329112000313699279215546129159440388096426350315354980794660633815996659745220773578413408734575992443008130227615833139442557089412935800245756053164802456314947452427345536461292860851716018987506200675351321689810722931866801607872802466822063627711215813787739568140758992897875142163947638708976838778695767302920896229880849970203323732941183781007350619666394515646494164969502233795074944288298184669874557271985034473283505856712501591072147861800669614183711244173278011680033574903168991992938059160222095066930703650594156027833145790198263713997814337335979847489590018049529052213092775754175405760192783774963955197592614950610615280454827309070786613377112062481478047873972911479582229972933398838474897177295573266053383728180110432680715692227936896076688724596398581422348145064802960261503373396416088359156668242497929255405504731596439147361732916753113101090899953163901645457480566716188797837813604661659035962764973055568165139492984302590295717531137402491315607803137674887021983765108052854442550182524343562244969678484784009458307455152941714246667352226726909513908419494696708831303060118481559467333949771728113353921931018039497202810742811009463881686358933439087362574848698112395156659584667383107825167806674774540497247242439807078770963206644324129248902515330833795549785524420094697779261560841859791608259975920204116362509641767827492816083874959352424931217898574925523171768897554491239290494916630469183838259700342059758486950921152277982571617438307240242141823713164203867825875223957654142676796818117012228098216607548930206074827373896515469961310064080106821546877812299351549981053084076757046252655119256687364669859598376982883185654702443581368714335746001825116030177943260437361742860648270345848681004656974427174982200200890771173182578474417990028162902754943979356492140582539489735151050158410310099081255869757018698248240625017129669892176811170074282735778503253994353850693871958130115417899149146214063016858528737936079798066100253093351651050507661233320217378689720680404741276940893890619107210577757959609960609861689614763303564538135010133320916760227300148661245542039641185204335729107099270399078551663950283771564073341380142615642786674335651614488264673106982294906189277381053013783794737991091333171238947984136501835518015966493835774565707928779789025305629067487320740596317572577659893882564549272669736505425150354210529596429804317824280073108209733963334899479302989529291835253398486614800532171663004922020511769082368488972736238126004091037795130786324289708472578937931928480652294281978399215330163779994829582464540034222139066480550515083985458475494616562772169604590388819258821514512755729075580385854019195555400687922655390199095813102537378712635783433733534512527199396433666896313180334445706876180616398639288109891977143691412835278202997075851279598011835683336917964378266903761895113708086707485786700419569644717991428399800378146494912441026451777275468630225705760405695769680297565181157707575968812569093148433159480660081291088650455176745040996554138062272045378442779144813107982100918351594181041589050199893826437305488364280023538927818665378266731085206031156633847602542724792247056131795074041967512389044498708701240840813816761894944187440824943127981450198890492164720399768188293766034079267273744024440446667248764535293173956931525839292081381125735510826067115699209456253712263664580145414768422579624688018387673314947756181744613586079064960817591587554822834478834939373829136461560148055669541728118365721253344801921803301742777554238924809188873110290705090817288296421652481579173441823499201601075626848914889834992710560172812811063927257318733406501956233345143851268446918292994775510089851348483121134994607021064210834445987560162375412781324573059187043843919190607288845319170341642603732402652857191652381766794612962940444161962029211489764912897716523366538088691037292821901448133185472889686990461027664860216183609037456477754390619421480301885135948687153784900623437919709367201250992551194734228416184834093399147230503834781625660519916963816232070449220761691446301566676646540276238826555739242255529203317430039655520840250964604224981191233550196322239624789217171874555116707178410900885015262445891266108146980799100642229095313474464702743947165277503975520198749547630640121837096775463847786000782512286061930567876553467906662703029652992455875731935315729001381073512404656175660056481454836456626338213827195282321045642775836973453189115297232854053443976862064036219730578443184007078177567877310662091739729422670260095500106569693768026021612060781939642280214269461714597272634005992207764915089473965758249593708342841994352345715508942676699494229157751490879309100510789008720604882884425650019600208680196512513852020251006525726248908405297148957009913414888820692617014686861150214868859466424644303461791902386946097668241234268582086162264239840446159854121135854224287474287459292538245720994828673669793444929067347344924813844380550887083838903539123488831765282734175876939073188488938366947888328478543702930267454686745287961297433130684836968234258514440890440613276028867329694202003586255210612739452982949668902714647241790739138466910071877069797612003788273397441919874235950281226091189329836657284226865098027872980314997000569532139235970676241893688313004021396737267322740865207287262954461126609606617273506087796650052416573193778758749688968223556939467961705611933156036433945299444707873821568612583072223347934354146986816908515603518042788845868980008252973880973024693192445230163514026924639086102419323060089953791948013517886000219245887058745561122518457665694931696441883619085051965362248986757690684797839966804525203467781045425372453671123369076766562539532750703916671402925094344709233962516627929662210662914689951570522326976672951031204766027744698060465185126338257647650868863608731063740707025670994402471159422279856743477235374517959500016274676862592992391199235874854321708641057054062412217185094677291841282910931480119798980953052312978028011960295536207325177388881018025530023422588117123565178294069323475327390103139991487033803087467106522369046737481207758277561273725491055435517047533476813086104300171317379628141331492017154345003664890064457289874109291092552507678843093495735914970611869946921263140896141306068946652556057219877305389983043654912773818879147396845170804125857465960545577193832091149341411504498245394311768033944459814123715830276540861555279639601481869217842069364736353521758795315151478715683976073752734523764226674834441006663522403323347888396782261195152360662198979651957079999908508050582448342308876960267443620302607587805359214002719542384053265741019179763830048606847336472782027760695168685111025411009545177670136596666415031133731969677818993395961070427466168314593988156163152302958868846145968129398216630922161758092578383521277080727322953977989757525705664919495991137384649583275994722018986083775820418289521264102026797472972602586906072643101754875882123717298135061662810136636077597105712570486964536209169365421413965521086723820869005723823806899890973093983869752752671122428612068375697244885309952305728999708623943905822171927924971231080791176714893165275888204849518350165182250148593184688344459432437610324395557431997750878273336220393292196713177006792871010566355671374156551190754209359255329834343255316473383502576157817554154869462212298648312781846474288983349905836038897819559282434184025824129388819137434502917759616223485097804222413248676485934768359601375669821940679309712254312758927725070185606466522696472917817885677119401968878893442238874745056835263457646589587497692996388792950416498864569379867167866017098189726833896831983233767578350687405872259551716276248530620857966755428494544035367438609795290496103451128287542293450187278354002493024539340902099763514262750495607818053620819700779565204319167234075262999988738521378122135499139892995923486848387622262621962277492095830101136952304841146161303671655235154908986207609552849668464923709812641899352005356181471419184685237336814475143834210602820910316333461084258351395741092727676722674820035265659996733106923139873375743127458581303471993298621535050189822076895681616736503402656391681283339791950781860018961010766128361942264537952534162461539653528855495094258246443096028038364733955912871199538569859251345127457652650218013970275888533571860601504190119723204814666159881108182155189798589679587962435487921249085400100706161666764702787065774153291499007718931135688221978726065197967509755251016563721877931447215525686991976504267698190011411552271129245180264220864244403042519642278091076277094812209445308134796740961019977451276856595552889405353949861578868130325409052233855408651102438499061119932680030078664995049631406088967712692951029428981725718935874729996490695917406637867056862791405198237408522062890024316458996542500624981867698938169353540553081882584769699787064351956807462425140321618014269943781287484892813548571668795934828261598679033368635290320646263962622271808013313123449332859390104525044132854632218648492833966021485178143570913280738616869759110604144986148720883179391245790643597554309134524876562762913415884186136575081804592423689296114400751320060496281680658338360756495666343668118854937548308102504115012406059950993519006343062098020035811955192189145744262010370119057480102508714263592179117617373131617235247164433994588900807058320155008064479367273783823498733134803020639277646341381631964006332988844095223184941130878641753239030551213813641066788424918972532458554255960912979307439336490136382739520721204299153054022709825890759411662413227141054626253149235917383912773827206448729900554450587805367851246405942262986700607553973014371688667763277964174855448115261062591261097587149557153162342395101296175333107308640931390400995120330601129585284465387238087259176371553002948236124809793534971519541365669036132552002965409433344636920116802835030725696794904997495722302509317137082311294785947221987481972255612158546912289365976907974556384845580678394889144581187801339838192170056557496531520083811444135049874233299428367270269774498925213816911348358722219992943382764643447199483751264277718183319316717612867809012897312562294310039940560147687726060962731041125225749333789029731892748310560629748278049290949858606491288357942828778055709347385676786120282997064749870973389647457778771182692781561628556244295426377286300085197073237505018348606813253489092144342082864004314113581668392436715209340935479568106172578685317348535170123920193107001498165162894888003889320468098397019757380000027784463549618815743491158392051164325406496221337632830062282679048363796374756231064858159215079292846655405746559269303047954964614816536334160381181518762289712716780102557802592739136000864615617600372133225236023206041876686363585734099439867826584479750550237044781701378183851249813823135573170738908981492174740279396572495682799088324054768115180777095033847105881000799998342286258857255283785903032874166704877831691606846981754255764246931679236104212250339275928122179314928727600402731852085843193101545437595836124443997847370766588345929978626040456626613928822008828431277306246155640693097846613467032710638596450823346677033528313781629494430991295081166546518206091521101218684816533028341793842811218834737998355353182169223239829147775656433464281963568263959617751911225551005770099256034907364439854301260618805054190382762646345025819791731965251826756502276462507404175376269802613143215339239651413688419882197236199940673387969643384892264544853651994209947473489037280603414882646045528320176781595603298220533370654979082916235871372520664145548938348730394491009566606902053845283214434189647974693675383947770565307676907774811136000085614615211682643843800744172340093408311892796064422397770526378666381018955129786181918458461520110759852770974261616186408281475605265991133034688370131502638965849210095343271940757366712295059762400422550652060620557650240988441358800697668297586884743532643229025413704918987690592969815234315253269649971678951237997626960180761998957781874388438212040260130849521553414231394462204133493213662223705200689729866722593022773368553156349512549935146483259998673232092225718046365006652901463634602740130290707755623260729397438442383181645709011350956648696252827964078541652824184557600558002985977588757560150948276236983402860341323119741839839102346282418326829845579781378492335051284465774988280647453281209271831766947248567524193681638658693191372755531806609545781717030959514306113593257705567719330915977992595452463134783489762811091571176408902929921172064935055952894481140229369678376951547993112365514966171974145624769994867154856909670174127027999009845143653315543304396497770737004224607233511738894921411099547359230462209900768203200425200966447580951303358508420973819654413587533089023860876591154795905702728200749801962375536199974909000223462286010293533179047698017426258632940596973383299743654603414625544828172983137683439651863626367274191562303398021904436067443763537745630146973262168606920072918572584369665222193550437673369898823494959478279715295830317845089270462650947932875276023348249939374177045483672983039463440415739315903086809887244339882858266266512985801959326541706198213884591588165953886225102176243775285898870742974754642062689868527605636527798064979943991388596346190821799735353607141056779084289673241828183210103920535131257575970588345877185529595717682133935838539328900399712261731685280294906789819491143801666815301774523199644401130837770325928086931738679695771848957217669788404003621150376748240691417538776054076122685907652740810327090319867301689616166601362094353921019375346717461744829014642135404197501089811379358566785828136038277720389918905238355680563940304674525144397276010599223052478039105487072566427829296190091769055213205077664239243029676656574581653450670595922491404978180511811828751470147244659283653776560452045731289775032287556190675034832374661945444595193968629286853324602431498362695378983987857877933218607633284012673897557898907234669160831341802800768957404717412792097835521871364165778591367394080868744050176910794561564820330876473074508144860537432653456531606081692192930197511809700977694444144730662276647442825497673647523310732388830654444858917394811160615492033443247896179747260850082941859570326865635681037880490938935875260955391148372001953162334295696286959233008589373154399897494341728701048913125223494667923966193075356263034877533681230536798843723724983339320244560808334287865294139065680612647281799951940171776876616375867006772854404845219216203049612066531265460055082759026796418650916175299305669098940399939348511276590445497628131725675681361661818919500355610375142792647551568887556832071982200366970910316422899632203024077337475630775534560292358714079475399794655607368696043222812449766367676663010566237008976088748260421198466329391029161442809052574704818428724436892307443129400901933285323992095109286507937017868207899139069331012574992132595558119169431006007869570496821252751906679496465717713730550531092231350501275375040426555677730086857791261099964822489171367560353526205732238808092111170366354755029476296784905990308554091197175094059100631861746647814206891481677273264171852589210687336774631513689902077518664052363928054299149825696133480925650559982232929003404442760126470202431198450916333976467483395491330892781724036362721734584547029401984691754881224188053827533519788138065173010923260548018204275655690856102984707821149193234561478979589793819015704044488905165905818944836019065949088196659987056399438486277880005013896820102326783389258635967782203173349684745350788611544178603067126801576937997500104398963165252050753487669508468550752293296339277899266200559098033202175463445410950786886913484072144469046290811393507408184496877806362721418629030430599743216800780983243839282236745533704924980409937018988285745688000777498949830361049660934791239341919020843991728983117291287884376606038668362600716313205385243786990667644552881807578626750968786944029134732783894316656214579597174660147264091410825890700623625717077279137374872538159689983534355656622439294008526924516897307957109395413591456920591413776750826687178209617135223569875946564336269840148580660868435559417599938945284851107860406327275273332458138532133715221307758499210628117771086879072146481064110790366504428175568926029447461777326621694610709522872159729673907518221966193101901411644768010627166386774798464175746727966800803273892815572715454906661229482667632856500040218030604979642114681807766059931400928081587953291089452804966978425962105271448277948199415425647471871223980162631882589854767317373492783006925992742428717030179061505042486337513584996637464070918225901157477004344423060945989216962169838989902374972471003377774922632204349174116048125903845270922225739173237720732029923042374391945884242983883547304654498682507475863551707587541608573014141342872569194897693760462587899557189008600277210957192922843442306723133276371847938316665681871351976141582810484646777481679949825347849323828135992313601657274920709804019479414390883830777382092553715723220225436204385533946086092854319866514832830784777677770830656049422733940113945957735980098770129316723405799584481644857327505293335517178830068542327471842745885746270592993948228839005216201811182924498803183385692462208451979291704655112670337363048227228060050757986187593972237788567912461865949994647545791503533970264003838563445415633403106952578588565183313770011103544682964422862205335124679091170715842206540475007479841523514504757148299665190226734936955525223587301271450983014884191991930781230602057702604251459102154900267980131727641862164202911396568786180059783281656955657089159951165306458518763976609286816531783850037192954460693000842599045357765691362196687177366631539269284638928314497924745936920705195586743394821977641151754899986724977409141392862947535901833650488378814751714649521968426681745041624563413611100469848085859499541266672070926552999900071891737627654356462581426373951752749427983447265657492260308930318818094372017341702161810654765843760750332575249052046457199508798017714505317653633351456969681955381237484937408924332386527151511535799064536523782158793120747336501200309398622742680351529526853375688684935954915115473039164840911770432455514074667270474176742664367992894971837997145573793870409035096381710366078174117812697097838241181271395742933285412478492742475665353492319364071470968848959834860890186724450116953960684704401409224164272964783002842805178712442541281350306821969728086325927368713127199106173542318035220059611522355515003391697245638533093957736383352817755183518004262909821138457752484495334583358823504696750267659588915918658688554563377074458944161450383198917155560595061050552575309749395524085680186262902077325274936717896074448721991405102961347977904568589675811927476511556856095119894020876144489169047044112601741900370774840010043456778245896061475111629663526806669313885701713653139383159751898439725978836180460531044659334356309681687573961295980294783263963100296599345849467611341706194253351618933809132726875202386182837047300565294598633626374274691884359848792235673337516735233359081471159116675824532078252548132336070736844184161674913975705963359732376073192337454216261246923368548557044410592292764384084648752015327644399985982636866816321655872114228447370798147696941085488282498895468269675092947713280904335118840009497579160188992458172810508629110218839626049720227300686226625214985260240298418922223641932640518210931157966940183602832529001584646518707044782469731487213103247298457042911190131682595760219548672054777745903781623664639900133781893414482074751861294932602724820979127681787385199122086902120863377820176214130432934715596579444831006122691313324155538266329682243372098359474506933101949892498145560939761649409580869083092392594537229803640920599078691863403776290128608158125246727748171843220580147904242987269170752176014125070115728516639557700197874921242513354908458015306979885618876216066331595905512204584608648830816292606852405175261822789477067390868293730364856401251522432785697435516918386105694955195313392547546219965029443928743850301559396346611663219336128010463170072408475759882338510237718578769806510612144357525200013722541895205788090667394713132154319756480377635440477285186146170512329870949181272020842616672191689304848136540557403695794449777011505675162564495086895238600451682439920450104091143920442489612663438942092258021506684151653404139415992924822123720073926965641199636605112602164042883306768784188796399004223743658675942703070197990970862833499363818573163310574493519815462174788108819323068404833805525211188332213092129131602677857598495397234469141774728449468781016939959316057408871057545742804777311202736245985726034059642157492379371358825384903047053613459395610534728351194790990416042198042087634186421608270932148954241222741712514833772808250005784553392269402261520002494271510993474319692005590539619835577734974355922352150695591082276416801092623562451439787442420734920019402570528912009756010981259264061008050503381346619551995681235017003699396356503286266672395629276108133429890255873947363632328869402658607375902602732881082929381783214876806450948358850817703724974886313480072419516253239697546872130173345107342707580370176003480039957729473148274752123610671191236861338845452667004014822129779017976611580871648256015801012283868278401132160034342887842482245668659733009523355499978164465010158386269017741537510676042241624884287343541108638988057335100559833468793609756790298201556782772343495537243641207482192844688560118894455999658290836779616816656075965852125204423253212074473478016900711138050830333752366735678533061244419232774388065102371923178343106865814777437233296080921040237643222861730576237610164168148181003725319818787150714088794350661982255734517685882191011045283373267389673147778684164205697009445724031226839686624162284741189794551647807835196580507548314130075962694456800303337722546611073879423927961692516992197845306011578194052390316100605685304577578594828264243615812191107825283929891155910222114972822064801453311041227335802505160771324706660111734554949976988782493734160908738485692106877176447365518994480909402633285156659403893548493196219877501244288605468395734340470577976883662890646891572105309436689087552066500066586559882941574327762564866744283466048551372426613023621470377583243211846598382999368734650948275587767824674557247666687061335819519103100790440380701049817006100566860898203975092182379491221390788425904054379055095402251284881642095259373295658562940247319737003106817100908137497769852850593202851437567377232598517730741860635930585368746469052755981176167905576341381355559091790037078189182115194404635318252970794259975192015983509849880757878137801306358151032487356041275440322747248825760259312618847733197006661802180192297879833228439676421158936550686269827160824092483660161318284210857834126645813960600748756447437285497728664834790505447017687301207973775790550940588853465385794519436663625141744110100758013546132567747265749410857886153526187943227437756268544301284706151939165906640988855247809733045038416272498907589047432449735905363513122102238824648566720042294116346289751453993064081388523435251063751847589639345240157399326083755991240111188018515218231014273552003343234177001643609009341278405854798308519920720221317893319348865834911871669572418659207739951621566897053288694254183503140991031203565019484102062054110175300141971108973588322851546971303659114558927790378881369813059257974612078861510576211914908476405235806623004409447011636405603624139204521557793065467914450255217843464923455146099900906253219323416778413356693340101674611463432971097930722576577910067725873770828333735246120511291307478143023980385537756834497700459153090308945007358407020323463186305695372534179393072268434322612926852077895284812518517341493990730048015796158362414903528478190985682906708750523443437177093676248829609221268223412978731355903329996977380496147141175286833714967622549461510910151511557631838693003488887315155513146068058433938229010839266630852825387085275403696053666541781480121920591393236511947272719858661688917240021081585112460594398572205049935541146360254350240255489954113689592784367849265173959625885650154821923822778333404045324184999827977342612962616219396639428220867770439079576944921671336001584478292369805996179174667957191604018211250086531397884575993919222100013818222796677457206695976434445707526868225497269874963251490104848065802835998556585599368916531023582466541814054211761406475056928050868720704567729029346563232032201635844514075673407797136901751035978365418605249686667494317592122990689560387255193754948330703000961446444875713930852605024102949121367398619498857999426425987768920408260181938831624236724107239887474213301957808354529263574474160942229838333674945505488019295178651738597658201575991497711809535932479696982522197570767034390007147314938735567857155486433248031041794356539600398566829147476438655485020249723269743847632990116952938349518557629047253319681064017784623133598534327765923478716003101674580972218963777725778450037613119624684405926344255254136727390818340814750972465326772858720305710657852938796122798734447302422716948062817239004693820999413746328421346154705686338046684174188030418397603751927472766509490769048135115579671546677632248503932953431398811880658495499117002350556728643123056920115611713168408137074250879360508046135039160001162744506589250922838112482553666918925412952330291737205814598286215525978810139902761773718608399675312434851905951624864466276344419549910804160668757172930931441304028493519472743965536724114928896286423421510592970257964394912713190962787412412296986405462615696232662921177947803255751788094134907720894153193354717516233702392109206252430652731120860789370467457685096973305356507354642427855335602919621796580481708355868722314565720161402715068610853175109515871152167068744924859580629987405309657479000173960233350396318052403292585658054008871246650528911212302949415558552744513309902183248616675328741729570002934808953185936462346962937499367616337977354386579304021152788385955413504719416870052161320351324775892079762039838130644666674107858525038386786770341169461332484553660051778385897739118831740959427958806388545790294105563672267256583430957484999911485081791067927703821332593379298496399307689556346575557849793054920130864721825542293997277527923791279294454271181660950465526788173120863469111061733457577729543511540481042305981098654913556748129399108455503366358918870935956992304462464386077701464722493985565086983725778202678546436808548199830186092288509799206227421035241403004704508218750227544729220377934467938625687284659539880520059110178016051734033362107927746802313068750811200363164860095641117511515324226759420791966319997224721915493344415268325301913922219033877140996921053134410645196102352482356376486109801944506896196610953899950322092851192271776012097933024023860373054601009556158809231474966141569528562682756224400372392170445894367901429182522196078646432772680375707456404886013028760989209787996934696110833148668688199853590459063022051384886185543635572470733105190416142227977766868638697354219528686917377859061432661234597737753446257029969877971541333978496872140483142844914708284855611399156396510088375561317058903927048198993288389454671296728426846708687073827371834685441653914674696384616274210090848824435865051088581214529676412848148503616949841197817175996331308899246864268205833281750925757534805805585394102249945205740289587709031135244031473434741850726926863253304944360586305998407450418956590054657225349156376497217373155380853519997033482531949519203871279736672651748210114950578799796370304318346204673638357247484242127717882705112966019234852934220258656865934114229498486956251014523776856331279996695942781855830972504668011825993661799387119235369934703898247743257944386491130550696208569648405957119009669519060857028088488508646231692047890999289555248108569224115126454782576171802583904910578813587240251506872049738304736684090414349432740128003179584056193881684915752999895938698755635047135182139921162932583410389345705080420306789283506044139784366049514477473840041231316633899279099147706136163547023498283541268588559754891240162140649516463463380118333470877422454828070574722372147566319936416568650360299040623938300428331436597114397267874460084815143400006855179169744258096050694922450809794833038424498014975270188943167301426869411591808649288399389038732726652076119322024255318527438217340314440970231027220603633150913365595741356057184131191842638004391586371704544528198259590277113013877568943881867017168181896367708168215312930275594743730367203321683393855120552917778862510888887030513008565883687611299401103831678774127313578482634502783828388496129622855148365845142322727239363110538200184353108790590865555030253656699593577015842250522462141324932928987373626712501094996232904684837040477107323786418825817514554122083178909189374238667992785981307112600658483394467109952922917424489132181214663389071400702265816381967674240700810758780547311866802227667862318673327161189391623828048699136863340331291990509888499000533261937097781277802272297259892492238793959657933843517969069092667447374176998161396772949335588446872188140946332271773230483596842929018712620431743465168504826350291481289938352879340634154910489329784563770101384415379995324305427173293199848504974540145407276272079600438277109497008645227992778669982575738015854995450085811934901037188426876980834383705965076637312978709878132261327891787210623421230216455632514612966150754467637736519787952339053526407974819176076496806529866545719454697993516557819250610641491767476580799921832618235684495819069217922775743329526254465710077738289164749456597122914319437351338363069072854141198135340153452120242837292458725456714126741086489280066840064082402004424521385299049603194296663335084782375412214267616496873785053179060037847277858607525613222695142994590118377016421126163018154297714669871653936453954687725849735519751769045406086381849046546997848840358581715979718324078815929764765764728573382521266700300682714536921937475034047864355326009331969894350819740068539110964071101933707267558162771673242098362934133322834689495288898644117565548310286812639208350673499125511863528606989639002071141415749106666933071004498288697286020823885663871301464509342042676357983455331752413527401206872613947861900450892858633162486136248544589814052617891668846250183904363499118308556398996969416628294508357672848047560965104193300885900671692538745884798774258728648619835535699259767572877438468051784833046096463053637813920423129078572021841637993073723767591587734714467415435578545572270251431398070406690154032078838623605481883840800898928256491992259082688448176074881789409619444603395584917715746424250022241148129251759250128629100891664370234355973129731178134159833590777254625399634418974258653414867606164183953601378274152865288115576709505905468616614698296883542338058750259164434896561970534908825116638036831357564168010426243490719693386772505537342629022305740711341908537863927396449638899240824998844766769242328833325454250495988405778722124650045024761072367230154581082203214081951086378452311856848136510810674484618777839878403002771045546167304336031469095564832099788074799017735101145824627738095258380557669056215168674889259630302769317575459967180935141484982369179820690967822878485735425320458041615670416170709529473829287435398521352480916092998431021557584455291879093699537397005486031061091099894282117468829233048446868472018492446919116054043327761483527230263773388957591565865377219776555166132625978640673364377048243417173849988739303963073880583803326304833843585715345892835659975147023698051889271893893920926478978321836586757005273180226431396495640765428195840513415954327866458865293591465825724538022792015153914943325869762231292494114631610618749594683532970214062129728249552057865940783801508859849805238988860240173765216825398698352476255770712583205696963331697892730339541215513531310785914347190761281537943311069270317189336983243205544762888717060467115141651664267585342929928649066521862507770547382665589755849298630614233138004491958033474528079357340684551893132577389487976341520881205409510871325684784509073587369673967496124654915294101576896940711332384909664655341784176989083862333656362861874903136454371301630309762100355497672203222834173137264768202265486188756842484828989138166115846793860669952467343208888886626206970434559363068272869173609828500965757098798692100447167312577957822037041111585502679210459421901195315065099688211459384368827628475914556831382324489302582437284837909142859543191688780274510126303262847866040400959487463842597044888008641606293448058019365854339707295875889360152815141049242294177347410071938894501933648442195004204866350383950397151976961987587063729442836715601550078390555592869652451324273846136775219822500213166908789220208253107551958156815167028707645800474224885808298371174573181117971825302233849784093756932044268691244580033001149574141706112418596580366088774101186030387167549387136747735324904109070922331344464654375264462137753372340599263777631821696624113390509216541372798587784784414496439506743209568687002267557686240964539310816288967751973290200267845914566607326713582670279909097965168986843259927982809790996933711794586466852339218733675072267283496257506206028015712052027986770060475045651598069267942517738416386799295629283362960310084635010323721764943106455913816018959537533325221462338544638061699732914116067016557762027176874313401138810762044851766420773169698780653079503859407270880169846182785968486221481348023178709726866596463021626806680377764609659277524812459347875611357476023433449195311051785141317938107000597458415326428840078842028349425361316517500312860182626992742347250984032598138923655623763794428315216096821240667391376810299156842616431335832623320026670559222396373387012148787663585583292721575299521316028450190249545747684816882850145887360806515172811064803424580706786762663655155894612261280187770403833362113249967666533608387050722937256452265386503622483712666539911722546328810879693754815109267754797712139706187195978736704432515471039082438256393254957493853699718802218302446866143901419378048862342681260670873827926849525046104461702191062500984052382967287111038022732741907268450676920266786470615312112688199840955849498656362158367667154186182088666173647396851321754868277119581723066473409956820845531698082344631490908613327556130255067590045223208913878438352742773188473521889760810073594835290661974160029332090638423479327266646803786867250852972828175559626660633576845365298464241214598436000657764256135827796057697606737574495527803950496308858065142262162751930887343171051460360828530212256627144969356671712917601032155943152616652468975650638576854222309041662198571083590342009040012476100434914997920495909912301885211831470081469177238282575537054369652302722668809271254407620110831118050369651743466508880896868473764877944328414099483042425905131899127823705716708946888130516882280239597404182426065700207987775623529019237703833365712418958934864616064529961238208169602578345289169714110015717516892306554274215265064728423943554009333842071863819857245238693377203181551533901068834825015023772821929424306578798377929826022995233355660939726916683068287360645244289558681685105061615402318314554757029331753941066287056749103575639551416399987423147661715780972594339514435040673704551032691116241581085686263750151662702475197555059646449972406093469342870317013167253766149439170910347948948294269949288090373060780024077384917154791820393464795443146827517347995838331043496920916012802617390415813503309631444300831018972630666295934837351340888653140412149876268742121755566531337131865860199757612139608907027020503266313327176652008676829079626555623630070713494863834799269656747577551599067550119414069468174585580755242781903574912426024435329661438265867225459896130209004344405864233001274682354257858051557122108178183365946599812165029659669203126825079212941802917547829178156382790486886878358333015118798344788837557724386665315705718749871280062635274596990058638181183975907565470340157255575601606714938901808128892192449206486816515279622284949457867550736189922618734882965784450232150062195836165765661661323554578653800506743243961107847783096549585022306366292767102100155377722233780574027807105156852045509417181838047517695266778132237186010878596502147011801842176401322278365658156721500904982895712371588601939806195849821399912522526853234256572145731655476647742511680824181452737835513452309136669536652641574439148749628346414831026899692063661889699263299705604134164409226260227432775587305065601096710333154923577650786297739741535817837610494848481403392087477701598866289383184983131312615558935048724672337219421454602280231519084735912718881291461156296976455486632217042124649841674338515478467402014498589034414748343418389639813868023255476278131579424866763229384257245798629980196414787325493946550446319990202926822565045074198964079624641917025569194809341042067794551979088314357183237921048249226074660341127767906138160560103390094939217440143118151216805254673584349081073272305497548102333424635276167862419130763865896999980996013370038287745918485990584796729204228662673422901273869844084244608245380003347073927767487157852020698899530469686447749157128276614900288151362195310030671812663982481427666303385707695904869478829361030922076717004332153035425441103682373441763844887513067591656238304405995982998751729258221014344879624963678294335937513737458548484603277310809048967546074267223404260645664753415281630699082735388073701922654626579374373543578727247555581382952412613181976423926793728337931029563185700285699608515698144602436674069144305358766176779922042852904037689806077982552472302968467793645231765277539787136996507389401277427858333485499731638765567429391465890612363707405375383839214106644413781543286192025182676651201135468020767837352220531421707046440631107623365062426706909954172728124218325070070102992778635367393090106116741399309616092331285493221247162539130909142055441675425260585547487640763214246410747541786561782129743773435825035512686403785138392656347219407273803209731112771053899921421070378849303713740250485328449160571308693198203075321681064145106947311094271135411508955496285605284919341437752748563882364104315582015433258982739876957903406950993248058921704815497330235278602138388704936183384608365698336854061302916846010375111562846754755732178005415977177049437896326937512166728230881244502943337430974547403448150739433914967805972249978329409813801667328777798079215364008727290920989055445073869339933709012527158949526494849728771398054218506763551567032418613501537528076939552631416840772914828557784805900194130017329556583948021193709139047235708728635545793256626207701686869357518697674643081177056988285372901255881555021880980474117129108990392608977801046181230087504155354043892538816858238300367087639452127465148292828652615395938308713271048210253475352519360141278069942054014320649345320674912777875961184209808412908757133829801120722161784590603525107908328983928528509761494690736369988879485187730969238790107227073883678755987979057946398550735846313361038059018159783744123413905162065535934278462751651332700054563950984382705126535965552307915836162749899595537639918836344206421475217552988472719267913991265340491870414671031019632358222287417023673061682885699294765520093590837065763105490074610589090801808182845546502179157705782321029882019045734111217400478026080524289615249864348839659199222694451552747029600457576715357106085617683009354928476611583893633058698759053458813252359871131656837415182814458615046228049489844526802887102858575245772366954571481943127404040149233931891899427084386005191460447430186872002368353008774426931400613144987964338275009758828769565909941708259255410905498128022791319406495107772468130125915076905824611521536768937192325156671549121574797926348282866718765608435073528840770816498726727572712354687218450032365652219886152831592659536031597315742366735275890450376840027226322298776425379567079732328447378437815062575003219612612835523109756345078511168217913410442388827696498805702372708439501378951869692555021134394878272237007019589565147994186637870624215036307838636814922521752165518197641944722871621561860630328688921563980091365535465157127460334590750660758316169777874690284887290735446527407500689574102305776953899409491743071533545684752576737722049778981119945999179465826848208564031830994683788594144127331616289122553797327292137513834262433386553635099630564227326028791000309601807223827877866271662793796790465394104296431451530818064934185302698454254090487918787362679564075834474800973426119636034802468224592521604593510070726686736635271312431937718906093319010783899020296061000838881089123794781831580946568805615876146536222161334073292522200424345275332791416106701397534422808827906329016141687201338794341723681162484915315317577175292262959561186344421585579965932869372045621990135508016531447715183452498135665607178104081359965596602550832591197752451746073276816010707043264702326878077656380421765100007589996413313826202108055355461365800678124808947497304526268997835153653078184506127138072646160981345360662285673406423033988266489771657169276946359738217374167193609838389275130881678864805175543058996518458906056658069863098446423524991106531466437501677201396864893639129552848766665127637667900204475833144564426732293327108946261318060083568909239826135711583792857223587581580324185849251745027066512973718269935429761049463078545810079775978099367632242494852559822356879701463444733159361585675760317306524097271015869168642465544803605593988807271232053104653884371574663212640033632361204346273565593411624463906317877145676138849495477006512280309296528801209063983583191821414506231628235905517873017756944316382908177482909467301743909559100457374158452345895863750297316222559788345446195182039235152546146367529184588981470812337364071039900375576723395727459448577673748031308005538161489745954141791027054371164159756342244353629223051203828002119215406334252030482065669312535377781849394341714663444874958044291250863304714237528981600445617604836378966539175711420678321784224235569394228086866183435225585452569714722136643007580841484061769531736288311763239684333436125451269058111803107590488184142891204411683797340253530211668411021432893817210727511624640878929846800421459089636384898824964064797001340122511976911045975010621024635015476555247608938464964842440090988035431239801515793618174572332414740700998399507472464755947776538485052542715142219781313886691969679254586090739549250307947475246562778071764918332064220212033091717039141934482835653533583174522762263012500554882300314048491517944968804967998032680186508580663251014197837434640898516202887334835694841211296083455083176082385583007541224442237617455208977647256001288378651824618902900825301317904419397938968528361846810824871350135955998498662544268073157183097806192577209874154412706796526569379421710692418078178743570877941235378750285401394111894718586185772440663017568761015050255050154028384352891193953587014572586512568920385310619629686062643559727350313836412569877822233729749703795168409030741938773840743287527851643963957458511309106152044166867665283591472888960216513241322819569052120012826388445453139057784419687447672799306180960665941587219206690358278249567819113749499239329718889729484675512224117239664520031095358170984254130791997094423857428324191192986581374619334739176669118707157613569092777620390658218504303693453992533432226128086104232773057668068082981954526056412393808960762390158718141173193718672573327411558724578440941808790647324384357562097077135792500254690039609598715038229287009828774265935885239830333924665044015040579186114873380768436445730857269980585529632233051551115284286995572370041567889167753766553355378729094849111676588562412618366199449001834912668527356041273304154784268324381025033569436583371851938721952587232865906413459305595322955535349239890584861606163966014044157058513643491330705145110429588111603890491220733396284158726619632069412687074575578239601159924086212313533485752684991407531768427715985772438348036942410886475448405571251514547872908639925461754748222430845447953226869173256384764853920868247383830546751877824893497333180907297967856661534979702717635237130420423838874892741463083940568712994829948468972855307253191050238010967677337500088996286875581749082193369235024425151559228014632795489364426862603041816477098013278217690879891888649329362575277174996768640562761682152768284385933998971130962905318500190820819316952515233023346875168778542153467332395371310804415325620703007676512107891572705871406676939802251609587531323407137305824863304959811574913116852980734202339811439766039370757064323769441572557936031345190042642676105921897417960250020521367025322797955655463095970775403982233097221481564169053422658413816687427265371263860439729683211121996979569841202048159822487169510679958191879945641852060872639774263285607731133252944802507468162475369230181763887674631354872147527551617274017955635707012954942389186368611994221476457612579607271180455836865088324718326773025105366364057717324032566094922482916328661579088458995584024813659579172175167856032374974099401057625694291808518435506785345409420730050004478248265714304603772117317013549625483529013625346355279694727865646919031984063694142797679288946102188415129550016676992657907207791625701969091987892131996735588247725045080033779574761045219466372053753566337428295191021684988399181967307715948565493661049168002527162157445764502372318610136479932322577262742496251907907769986491709835886572310390965048698105520061049679569059951588346545119615301421250937072981657155864169125129927362274365733758557250618265813638394080122815604047500593437322955852226049122069136829404566150787197588028584766726751131330332892516449122681465572184218111945593405098410780463390676393692954077763064918994340054676675277129443518800427969583273703516896584020020115499065515167334751619817068176083046311860028353696963365661839927867367579433839015247394626052808500615406744412800544190399166307320348387764196765472395932397608668220184352626312722604127144383684607383289399209336223593579041161561877618679211476335479149617974618658824220428852722006656695824275699593505301637554542520482995393051747698275241777603836216965780699868586535693392994594378181806159612768567196100983868065164204753781011957464305944826876834687847037502866052333253304924510134807766402331785204305295841156989612625261951329249023617497310433294039552022962673272642437300938751990840215868043246849130052001820516122627366558210222907806287526559499797712401276428851942103384250813605325140610982477753629395141075978634069585256035766015646460345841262268846905051740175691987334850070873891555599005556074331670686331299907145405405403289709532137814260957001405844204257672546471939019006707382128120886306297179360029229571999164523569174037973707273623651449283822424728632244224547337116720967860252304947807638242242299151153803661691500680873327681555762499905808744808933707621322596845317686922417273983456375788183812386988052913856549391648217479214482709815851507831222409453350413926454517960197816081271995496701203699072161892782424674523144516081858384657390169693454291895410039615842812502381631984826266268740663078478527470723413256821408048191331574632212086899301142160961094873271245640429461940341217202663131175923476942850075143381316232501722505788815855826247871325504861963001718576281770592763737198591624965578603047539923892580659308186705938670155592851426759620570996543494522316942438868399641385287677074991555454521713423033571964292072104487182234981167436262124954144416045820515042782562581846239007609745301987031058826653278185156685298687011468635604987859833415534203960590741510924205509992046186995828206278548504878826419795589765661114945253069469873231513609191135201460917254475430883724366266757438632704609640240230121640402645770059406319010283864304415571897921335532851147533629147718028344743117852859281594970758189081552850676247843135712012293486525526801133448004541349868502425409238099648129151906862727443800833782123952213581090285866256802581857459723705447889126229661668445569306497163998634662831311456558045720098372641884197189624096531730559997162392806802092394395514434674834155265559574155843064765219481269062703827994359224564915949895161170820014710565204613866283708300315381805773714410018890211670478177987253103515363302927613425935497835869803364014993183629903856887637523623586533403875598799965929490058262064305712402232557102807632281812248774242390459188505706181697542031540986829257471419649026077640451161054325925556823949000530568518120242821893649881088107669100830385920476741743297646012592922744561681222936886544327135911728014998146136910828233026595776174403727268643064877350786557686012264254303542256378759720290858267658248300385700611024487208265381668121734284348400378627338770207656016974917033802893125815405018422471653114562935790727337964939411021943575834242418984181269733637044774577310127894124859286687948415797950841862287774176209205305142824700615703115386124468551987054675968751176608367310062941736751462339413306751307378839212755476663330064728809386750467048300772229710327482251363501622847146433953003924323808750127063246280498186374113702943181124350294340855788775421093127288339497986743765013086644276699678751779971046784355076646036555595513015238912217179678927004558679637756592783224123524676457871844005157878104819767152454839198258259996137611117203807976439549107001771157570307926786020006584911427777088526897433085900490173546833848748444108596906489989736311468529625583233511279190167807909101622503188532872142260674424379957951900600046821441244900197166422573929520580861384083246348897736924620976989329772062764369532855560753792922213145653676707981486432385407342251526241200859135014944729976969682499988122593687718528757979163733070943251964004517559118882922667158253346648437289558498547582251616273989076609617874014754476075835722341305793649930575714615066098192924468149470946073104376099080526881690436322683772753147329679477090586191089323329070128516654868877739546410840222524145451793708270659953810694231415986272474475953708785865010738372386661898046190277453717039303183797762412911143095522819041291257672668608489108360417537438418708748659180015655529042546811055521305853018596087558138331142833865971509998510665220476107495169032508267833669135502343162910318883269766639579155371208293518957300367260952304396378826570935372948900596957886499461816922300883696479999327337288321441251693510732394453186153838439308009551380598363879280461165629231287940871946269704019508763489870569247114212306332947349909850707950723349202674679903292377123567267431832307390436527077885647497398513524007797457639971660627617648912714144621892951209513265917928389943007671976931665891702994641392700238330207897555051460097162916854461307237352693064693640724086335556647473959869309605774266790104609306169886108318539531006136846608078362555653718585188098329112721357493258720916663041304520116402236354396016124398490581572008170322859913572190064512798357848903973097179031122804046560511595821315235144699451263735221698809664981632177950160170224242794968569664009581897151044665503305983778481335333335058755324750883311687099967609068107307145357800023450284468607069061703464320276241949751302492431940896724561221659619778885431587652321319600515684090577849182980164927918211821514943447430688205659768801610490832252085355315933195712603563678446264506787852985035974498166286332649722819613320368970936562762474653017055318910354590853284528691710781768474365946941085383736265823422384651102727320105791658441815448049791816912496166767195426141017421486900860792349846574608756349423833192707946223733584500385072802914704493590955924338685659083130494423754009248406098819071966041014996147176977328699506090793689081578234797052686724668238765801671366344091999627098303620808082656302636714572710163755828414834879415161194231670533354097303313349890515976523588600743679538030032358943454065443896391059131459996761242668047118587351935588206896407475121055823988193214929464678510813443234023972650622945215667325685838839183732510327927703495278530480759617585804054243607865873855526817003765409320889568201554539807953085102250563253315802959757558490418376715567830000248318676383831441223791627601339359643693565750088496502704467295417190736359958146734637618136128815311737517537860577681814300327618930209172333909842870702535003956390118541447483679781353521510483998890707947243750477789447545051379854680115515088177982555342383714307310005831612351334376309870827877914388997895718762257982862216803764411588734534041634374346170642090826261821453468406344807305246482584481698548709186637451500983634639718989869938925189985311763733962351975855327282967752331245764604311232658098058739325401303957968087934035595590872050170377588002499877965391412973869641976940990451038012542755748431093484422004316184370835243602927545923128019765415428858647207806900687112333633282607364438908721243219773943058408897739005242548818849830739405834376000125219525301642349618284712141857103434697403734012501315279731973772175168054908610456361388255934945607781048641144636130363768067931306624104380184030771823020487035266950700742147761134745837905102195515502193557725415619890163217359812133841232460631733435734679197146616983208616856534531247768062221742182162818003277483936717207493668354482325295236548879643105738626514214281590635364421255787629957151939659019128661257374914637597910362358847604318600121259969609597454868537837759476711713978290801526687477589676023389589988445285314389367304935141269834000526254956071736330777718176023327204893339053685417253124041521697606009172293593284312948074042173005039814116597509756721601831421522688276787954006466464397127009053353524407813824632845035348397640203813875854364647059771127487128120529719637520176151145220794419942798201930492579296357565846438691486801043011386231476683066341057695390283423350040163440185234375181733644253585906112078980230136768125244891753244592036818603215266774053337992580640066018719380002866031553333186731355307603819171959528682027761608064937882900813254181683672693066958968969479527640987983681348591153737763084844744955591482677903608088424466680433545117679466545643093599698866816749198026139483243886157055871335122567370281083690400052288867569497091397575288788068262173897775403071623684366698006170324785943052599786504762634733356440510504108480522504287912340812754804619183195077379694094200263552966737839642491023304562379396912133776287389860398904012702808128806357755531141462408717311686650001149548717526883064577076467423620980021479379544275658392626087142879496825014967145570076872846793048894156386263169197489168260505467835392594521018616076329793232128867156655747329140266695300233519781053802398169660156549161069426497596665158455035622258447587629058156484282835786676320259570194647496505111731869992004810012621781158438608106948522029387162143903431666712227397683346179939381642864670320865743083032027206796424679467352784272637705527430264432073515478978451606061877769216655252835412066340630403664682665709795324519564801400636920037913489640948537848535016917752094484321751855825379055699323900535729290122133484959348992981088504110771766460903706064988055684737559937235585257642806974849089095147588899907773667245945959918624863364039479932246167543891088438489710789904637294605816638009020610465407121584719185370335720503713712183719999287264368229512065797071109874088827497754027497119691271473385247988663888856401470016882572114708720990920748927876489459947212950239835290962981557303202765341035758891117729177062929892855596114127727325005218310610062236685223429897040142439591452405801876655026070328909333949917240579634438052703870912496562943037648848462258418799313139521616414708464987230739313826838637169920044430505913377115723168924672944071588149276397886518476092889872527849985498041709923774726821814357984883812328309666358232522549055058250052367225065381132831853059347494511353866251626428518573943412554143192063264930614666403753669628331096875222136614087707976667884426290403696532814718351086596409991205455103868738498407836201654819038056151465440099486902110484774267465896058579126565792772913465364833255797336540166239797421058955407735171575413954048622110703836514305224961299952822469283825226886606065467696088604999301842136340286924561533291414402491592474406284171324329950151146355894497476923897880437125012751727032685770727700448167410867039659751996094829406008293273225564308188733093350463759525226538366925767216264284544027274607760797927757706322778367448983369468350914468174182185310198569555147075659158901073321120798499584482549475863403737054763494547720285528748741798654411735234633868032496698713379543059962191322053832134633879197636391196922204031052861997441759440499195919100130457157474321813645854721413231091381270390960349487644725422122863102436052442011581288617091975170990185464206835379559132761198184528440196090936833091373020366954996076760733812658569225070599063034735146845443293789730043324580169384241171411559544780465370587016069687425487964013863319546803040288199857475754629603748243290119795471276334592618673161583036666919414002842638687592312263531452776849759218738830619253057258312198894217894216333491475071252604866580618056445215118429610423967014765488940931452548868657550523408419081564510440851720916388259332594726661636493160064669654104829237164549000817762649649835998524737005189982042732068102702462775283914292683066452796891981162931181375591900563863240498562587877461838830449181480900553229673510937224275808381895884403929619259498218979897700953310562949330385151377657515668134991964800896572287213117324187850307030454846167131229636949319984500886495869394491401513063484293962700266106848878909816892035308185915523690747553481593998085734737529015536615891876786666840629687263348433054430344055624475573858232005748614437001189938598657921571478712063944012404736555265212904842770322120134221455122515040424199076510465468498356593255238794944563889317998520569957895880044513061076114466218203091313038770638124699042264829937442416262355330416448206654646258619294986546371018275897430629645615688773776442335050077945002079212823386742606049482602322300614930221618102885805748965220477412514988119447893116434649568492065128446588006383392154439454872107096056898980932708590850579364992817074887954817421776602610957833243023861693117266760505590001627660262970106207041881915740917696750727382957213710944486460850964099241459819869508057189716093172072567224784889979165918708321360604042998659188880439054821937341459713910216046718619757698548011915642693306527309720985777449132681311429393376886927709253917664795229497796576566836137036175117446331345504493169933162798978692423417027765182703460655755900506098348467583931833456848723569895696948513279334426186589412012203280565702415581582149041517487323767123830955412401395531869858859938274423607339300207281331322856557893165909585250367736696345584829850313048732886278857771340566511068761802449027469807850357807848231010516637671417226961221562672833274267961997741817002043681495753992791621611920078143666607224311537787612545836520292376020580074627329558825128533583482539382971172831597970103617011238199595776933810957896615908608537925666364711454228529450759336136389247555450611541432387111222723250484159529454369993679555666062375398664731022046127264357474129845394413790967373972901568643728602036178689342120968320700972133999042467683708889997116359726038589840341689277473953711118083664694841075693522939049495897145111305918133255247907427498068525580420727956945653519917951632187095021742830944991456629786145531932804226477732400523716208788194378934721473139107932497031095566622708329057906854446829588958089931683715809398897846857042076286701217853940173513434249001254993878676611406946157585582986836165875402761435552234683212784274462277667536222102529088325775133778292154378404513246906475581583422973337762150583029104300911565419654095770580725950795141871802661276042322955674556991606314239898714451167487275671776121330112194996595849148525937678190956742057760545617375500521966236011943998136854926589633507951941738493294766794612636988785945548155868273009198951689131011764565325647284283049103633987133135937694971325509426137173689895072267083842814904952566523387043339321450048485281327469788702132749829228850544414391677619178904868031962677757962689332625411426878786893359251197210305722493188298769279087583844232809646417853954141049039083067357689718621457891086846878213466438331180603950183133822589095485934753718843482442394113304819471902296435642459139898332584123557581328393145381658829497221793215208952495178410158270723699418063686876126447949738481396574161323872650012597272743486266130234330306992412577197717718879295375337543277226119578358533972648570017312295116395725253504922926175514812094181994579230472683697756301435839204007166704545159452377872776090916854382093999878101671168114782662982433165337241634746820015479948411658373949616909944983956229404164383549483029515575689367477069182504855464623063710745153196968508249616513224330321336085800787799649030963054089559027758114313023313020153464227908354173655229731420603312785487549355336422479490139562196823173304478155035990694960104864089534498150806632661375710820349614617239890791585579411084499108802227307097986905328266928885767193740783870946519064967296641681063415116181592679317432533542315186191052709975690722735015314490721930151587763672096606300848335391549271684983907548224490977693431246437872354466253606223824397914378546406368683154001895700206846919363945881824160033954807317545095813241067554197502972100682015212870783981199784583139086035511568392470329002235182472589063687888186942772002701347101883156780512541514961778788627495496807919348395590150569941714989626620056600230542181143367600053832961453681795801994225506590907118925557503490451345025600810378564527650698839560022589492924462989007324559691493313290743075357144810151471993236467253340087501153226052714415186285703482920223313153673808392366104738880193398695670299502296903396381782429949205607190998504002142575820109822636120862959833002692799496472373880502183306236459066041832303731465959402556693923227607494352407853158557390630124142554287102050781828435960327148834812993274621924145398759009343337150802482814255420373619211758364415136779532450889305816240053116408059311462996487932406986599600400684685991457741653665416826649758119020913924913738088491062623139985071643997254911053780573998816470755269775920185984234189985472926651823946429355610303677008382773078437644979571814672052752251960155570808999841602586535156824048021518261117923626251836581743600593932963906578701727479246965700277130844333899205487588030514671880311464876288306622957726669299288271057168801129078919320107547214640053992946886714725520650616963307593975053679386698520102713502847089311347662524459855094795652802128799441933408403793209921424073771108467963003541561547941911282368871384766562537171020491522092029807282701247965859561014889230201523196360337006603334894869409733195078710113031924049554210487092309525230398662633657755330624373481957260553286387277519806080647189542344836917505794080323206308136026760562165940631481717284183297264333549603103296003781795507478802683139133386682556497427954325245218222781460046243508777679685001811091555271138679674330703267190733158941369033765127193366245263677015085291716603535056017767010815124511180817902137819004992079752821801895211738096547740625557515777175178159100608265319170637190874644945686742899701074463769949896124523454603572450973043733681217041828521463092732213753027011742833971444967712412883307855156241669970120814881289243501110966486607769993841813858233484733928629584802000644281095635944249285388025607531224938628837548231405576073214646698444256090087798705215326918233774394084184289629099536346899391023282631169076231027323480588173345823763523354104315396227603069697124118014091485051341266088825764968151716341447882821649354347910346509990716988454867642977680627680537412253381555513787858774380225752316796204478009645690282916518688301664788097268089509282534606879986604241673648702695162148625475270377417456541723795038443390758920312092055895787092993584072076421913679685940432374534263932801677817696834765903918968852071257465970998984900072057390943245353022733541180205940761907708413723992756401982010393973640880077064193002112692779543565407287267516602068931726729681529866423003833849420303948146560551422810953775163767669461718562187682950946637562296986331614533739846909517477654668131037858227935467984855167611980457433340817289790277346982806755661128502796697460537105266744029770973534014686238949236791752119558290556169853062806555562367465420189159093460769504883735081329859168483917826047381178590824450005363216779493646823647131086805497310273130914220352962344935545142243465443622419072992859257570537236329247456285974400904937313890707629919213803665408031496246484589641712360464668631738818615488777802040052403938095078109139152425379165535566244206335002124548068998045789373971689306806656331434114990446054356895592443862916182689357420892919168820375751030045638000413462257064992264043276812228441465841547862128765272937661607362713441208033827924755679580570938336316830926654943936540408808284569382911481614064148082873595321230720788169936823889379192871784407220785060367102825718491135955831646537118772705442499053003638848553981691189014618950134766140632701943901713935184247064854514703272972736707476431239851683107695642751272962574674555388693271426661007770290296131093351991247486338477571811872629556649373262263189141390879366832312035075595167168380414161148041092031391938083406721130707918905099398686571071814763481258473245936827761167466958973643802383822736877708989724794545154575062242755124320839749731947139695658771755587723019132059132299055119214458590169089287711990659911834795175203574141098023992294601740127678904342187285052576702612240055940544867844883268060905495349283617108138618398617070885734926063140940412370174349875423683978263112329425555750260098802726547374596866264738856188350478808436162060916449649123003375622149565484757138773675389161063538576203554926538390099610380552666002861357737628836547880337971376290066712398698540706100682565645732739186184057778064302718454043292863421359057077700426399876839803687302673322828958410013591807083330044423334279091077538623771093934005772447108069336045414740366353180833878037347871951320555351909794362919686376909004222946843586378047852635940348671412759792610023969788018029496364490644004061249728046537222627230972254903214073727858094750342275608776922001778374842196189853303527665501418823723508120495811921168407224825551420094486187091705763723004907455329490789568399068493953497646876705700361353190464561154145148880992076515532382179178965626594585200212684526529579719513466701805583173557673662031072684826804534651097112681819519108712878442661578433272011540007838100827728021760239084202556580724695927364876127805328879627061315169340135393434074656149309660244980516297494513271332031839525905662966902955527965725803172863534448638147984573177005219727245175141110321562250790989875258621362888885936172529801669842399370887380524372424801823732203022824533585725209654146737677243300831840638167162507059018888433600016629873097432683301915376482972405949438292272346003134242847397932346495097891510354495855165560523766794839981930079898371470421645903803778752148616205376057658113177061369881787019231430677729903372627439663379219824679697950867009134529017174931010559671655472549050655193545262822178305152868866965060790729175943850967478560997325852176194370512132498529543752757048726043682696131460876625615638951087645416725796041776125076066700174289415037817241887374721481582849186117842891304225013045320407130004866044627039795335727775492387234278492106382652040044378674885489876583933882045969070638388038617221257421854994286581584168667662261544983670612371759342116680241403292425870809956327781884453429554621011994338448311167720864319827013285531723056158711828263886431484295649562048652261428426654517333012744908420261043326768369262370515006220491973643765693486844958214859622605079946461664809791831554952720016799160647222965762824739391381014713587264850794625886738061275356607708187496755841250627010173422220617602429856666532794021748076898385930228733022939706312695104518272735767621509198163440111407932849084054269311565831634812375621392089131338853679761555393949342459955852405924119052952053276556427791547305650679214407333063628801154861750003767459570686340424013416052825886963560437212596561704205396286705497591920517130146042533391971439787334134118924733867114488408956624505132738519664123893496387362923728672357073878346677752781164698533465424502800504257575752021464896247769188668736032187670306082491679893424720046432512890556578251826798763590863285401393031416224445506907692373174060936676329137668692398147124605797686317214991189610809009432896868303343217517327962738444198738825361718478605247463870182072593228102541610328032358436389345867799513771917775718176081328839911667087056961562940470652089335661542477862097922780596157364924698266304489031559792858781826431220520892893644618193139288562327611777564248976016383211163454638122338754346593102075586693708502321526854474788069344271217500988722552635218504229763617162075343578512699605457213679561455193719046929813198858988737304591812151047241707071268627332387866492827437597183913123816339994627705469626609868175435641542711873091741215438454216157341045632894564241897695976297881269037776450335592844881047277335892490922348683225280595245102236457146663011581848850761681974827542940156667309477795751303045299008215904115625540751095561400238774132223761652142119194023978219771258761302295744962260246038313494721856257179764930096905566999927521412223531835835132745081231906084422902092535795870991964338718467702163614147230882507360927637905906995541198520430874044242858144409311048414640157351942269112228245083512432141485033040459855033860226915476912442004498491646713812793627288479348640046607350858654016103839273024103748095935163276441665832015588270671221697374845738001051795188266028952793718061833007952695111940552683667475903399431264450533906475189735577842681204987447728492696076519817803169585050977971841513959047390309059358456376757142714489399301481410149580709217256382219475942377853937260992900531848990224686969566510709138636851112161353576165133581543802878164359515237315841765160563643389298943663942848110971858618741373204046108727423479684030936141765422430692873154847113809637187375276803558047335232878405597984113785473865086453870820873791526661928503233680224198724051627731711318784848865838939998437944967815715546551919945086742093289175640576755487261006268816681478667057331720756427856907236769963931517543568270686113720064594214991490992098973806499474137193086058274209153799114163699732166848822315819441382402468357792817545569843431193659828631263435061217224864487246672681267956882812744084272132412707757597189777049616315254784940196292660740379187262749112654731567875518512401242373644416502074369113778467228954598884155294615903401827950315302862349149400966459543962907453207911813673888268965402881854599294821461899466970175178798302813216523623752530114669831116603842383754184681167602086829187923391401980927332034310973269586289876948437617738736280599715243620904427174661539127916515544331982208171099913526849650525627095671990743841868870419151255766369752700008660334611194446641042154400769761329912186515372660706474803881025256192891148546251395388351572906820344888701471678362613878918687827755942719049307673729755494140587479292706515915427183643508614548183860140750603537938653390458419085262341523117895264971776944861112509095783268236853029261665585867390809418171213286071479332460944441780940390448233743140351135703556549630675723654589753230177413452576923566270591265609100884741984110083094301369576450640936777508676937637094568923854069711125776061685479528309251534608877792818276615305789083000820566134855417530023272258518807012085015591258844436729237048832549897562254887972115072645244281771394017001221602072346096901922044625860471394375428352465898072423124056906362546558134342791570035678025223866150109583689602211530688098417544032277041584142446109623960101660251554455272423587446079693482669538016896372281212681002376046579596406846326834007699011532966747567121168062025905307143841507774732503851460327587497736319518423187786880746276601180415672271443251787748037263429799401126027726059512816565076632266016765279896550356195636396995103012237098931689412923180893978856709513365404276555803444304685630630818776468996758149794181432695861371639916466749453133577492329236608106432363742387505757988451781446550820603089183432470602177590838177086462619522803226029420341307471217967079486436171157280557697910164106171874681738037132946532949505700964326821841874352419397155752661145263679563016302090456526914917571619635971989995783239246399060771786109675139578596306255395433875254541480179538214536835117442434279231463370834408590516598748454038994181611939535095304140453260654332803226876515599241186990163524215882269309813577859966024547258155744613081210443785033458583469832293605814272350754810648156799911057830103865270217233475678848367856575788400654420169719502925146170147076156618817673507747784706715263332298410004623657998911975084327299417102275379135171052087263012694076770400168781000296796971250742815391783960708245879040126482248805695992546717960996115689116132293835856175761706829754676708483199326955503265158985482043839339628127199506334045289683202943924900065723208325139890505252102121982078601103956725360459139649562338945498124420320809971260506074376617336876234136063841624921855344323327649218017113934845065697493118363765456044562761458769195922139555365196454645733922110993805754468769618228767257146084789919954428055805373649683894948793819261082023580053024142487029338374735954115844719844399453492910180759936265762647744380195353557644430472931025596657683578848680747076537884552383458687820214268152617353168523622536333546109730812176437131200092613398361862570299632276769320305229102024814420620394628628336443132113960126899559640696979173859575001725189008055816972815236567280954669421219706130544618350778086818405965297624794417318078373736304131638047839717407056675643504528218101185077775307425537784752282637110459991503206461999469865182868186275126229697172452718297350663489405720037505737409404124950561299989210722459953758298960975007900336671937649117558789959951324262090062964456717777737917275131436132621457792876050183951276221711171161954657000304138384866736782646897898305380707949771895117755908445934347363104381924689813212231546135939433422053136259415186136817150318287942732796626159885074469542720253850697352469693226302904772454937663252041536484967584948157969799208539766088513033312418170622098384058993709903500645059632217995304736837645044823847453802758714186691357684378425227789388609285315104650945071601087746554706612567821172815082295037552347679129100132568493816508527558156982930732948249790935376497187307148827919183827892688057940935389729109940258210722453250270240667972900767197408284769288727387729163534140739520741977066949434607335160066603996520106406471027537795884068776717522366567013003556448659521608963980783928373789922668437428612557897206889635024473525083164996520060017590355018585251143570951380587608354427073495726785934774491242379539663812138676367777206210049140334928973312124290858500794363873864256063647894229686887158694161601524252889770312415472041134960331378245325533312436461486621667672643867635280885505563560186381432602175879553418919026656933013173009302674827833733786929548239145226351569932768237037756883248388853886831122182263133307817895395199410735563870127358875242835696716302647767538288606766821806970064822395840085446401804992705340810984808085646730057242189182387982464086190567225313454791219871130845554430823456819128531328100982020993154555507554547009311939611857211697866045579951283271340372459787867078418430809984870551817247134662569497709405591165029770750999178752543928095719268532210365781691431261589510144380337576879365108303058703937997127836294918064254657085289475540166091683047099729139248005037326655332239240227544946831797133205907760375176847588446750311340507405694994939124372268508073157292491464599331491157609123553578809779098146429501821312291196241550760844701027050111277965720322032913681383409001011352105270151280238467816340989200890708992828674334741371309741320065069437452167020530190264750472183508617776471424559403472692073564702821009492014455300695869362394325638866908834375163484367375571485359075420300303484341604647791631291867974316800420117674842467061196713873313881387235365244887786559275267898655286396844519744791960828645697560774419750511325187904858395401175312142022653365885206908125470562619553413836871582878522131233730755998873556548142303877066665760549413570748483627665654910710604323102453707320537215446589181200174309462659565307144249517933885558331500339370664063892201500421273449379356053139000760218286983382321905508168938880368319120867581141160117663097730145581982672883412683300366435353755406561701571346580204280519964855616964522353598277122075532389797464891857012693102892412757225664173739223132138199940487159340786674345421674798061385178293144925025995243057388610472778375791942275331607989845630119137081408719572268574950835102013780234491471371847512699581787041329489346095356272113752502647342309760860599820003501496380686847003583028912648268121698622590838382053335523399976168649127801423238851235993912882324166490128761202061087724454310502399738442107601546624838011832020918055337933549560650108864609589904616033208469672264437552884114134378196623416031632878862154115009178427669660992400573670240942588238730532441127773679750879487995369202061429848166963029280499355614385450178457874749278170757276791475187326523060216480002119560516805834725700099750865336630976288516459451654244239583025111059730006382047052039796065426639174688533697983913592309876235746676910408775097116660954018691584151299996010687939893062870188784676841165311412336221834118888649734283858998117266317502204843456681681807555087440416245926529211795042443797512829731599233684862234210046757642959857372007783788301168095903407443704074173477269400146692429549021302921312703502543581822401976813006010982799513870148650101109228967572585394979497199309632970778258072078263156597601121437944478515141270335702091978137453392702646599122555395288528492224901515258400186062678372635671331707195926891539153880885516438818741271745205729921672610906456824778532586274570908530007281876058291411987602700073948327495450298589625040594932959962793290286990653177021514094018599673976129253520579518108256354623453756533771225370450857030891447065756550948254039140875696585767164085575354997492354500320038935590933335203049921881406297173963492076017812594494689417842445469296942161311418858249678204862971426686419077484159895675436938390983408042037313157105969690825646871146741946691910930721797488094070889632082516270563189497013945808842253700340400730695716626832088786147105888955697243550698413022639717425145180221789740352485654234137021194457952678942377451683905828580703378161856821863819423241820608492493305752625494109523514731217159854050835243670452337145756787126349466029862909734796044201006256432561762738705474505250839792986593773721339226978728629863487592818388455602443852176075354621841316679394867254085737425504783806521807266554686735901465219459710813760332116852652844151863959858244881149646606449490433169901896584977802077343770404349316427723016169256654931945413490429175280287116779586596078407940094508594964930803128071944672111730646867214726502390614942675806379135741822673821917298381921138983474287232147960174863845614218430796352229314094614642678984174365599509851618460841741237612456085746078209569071676054491424051631996159419991563608635417198763787568590481302631208247957839753083596093882434787804646163838507232375056454809304241769869603726414501013162585285286358064364629978565555167438497195020598808008118731420538121017409314010871921591505035539723107182274215406274723357741557360880720176128755894176291308977175954665098092491199931242639123106724401218595075690579027717134335587465418181493991295611267306748824089033391427405647791019030687556048153129248096109530011625394697228862083201248195594211132868299783336959160603497198481441509006199751437204318009003140878049704266613403557458534680181217832183468050199589104266886772232111318013190871181305893719934763100833270085023124692597916209539941209629186046523701026100207742119121010287257247195368919776280632216110679009254223856763874068806143672644674083486184163892517915422618592354256274590701891399374283135414393237927111012060880459216882850302320129723811974966921987179877963078796948740461849283197377607065359386747797016582770258795617414106078544799130394570520176576007072930658238787989698055650351701396576697641062962289531109575738570457315562121720453589848535076667935537834893683787779082192366914389556253818925446847662905727747688275406044365597675708963691668882946997334655317051234949209269600795927574947090341330255972101777090070076282080356053839723887921966956642137183366426351944292800186791079596689332268348155637508102676741174337234119192628328179674962206810599561821425011399966415762567996631774732309515712725897702819771785857769242622231512897850803190967605902355473447071498682527780334591264111299828042843660847113106256615519124517092972328560646599709213952705272723354939283060280920786622981630916827972040442735964586530505851336784571304908255874484437118323603381437844161726907846479697336220469426545736836281409474400944220152883559173377380402192646862908368084320592059465103331973998739462417385525543545820166984473332817034514515926307851138043152678763772081614028213624023622687577030322350381380830612629459467913308453397453663395451315738683199970021699044343264023474091116050071531193596959218522045671282107698088344779602406007155293718864853707218923584072208558489169416107247070375744582127508780131918841386612491324507678067621049042232575303928901786747105754810186843006548264470289463865881028074900598894936414043397901811715265278925273066565791215603674187620687202645076101425118333984804972473894745117200605561705307891378854956749168338593819501317469305948164511737094721008227553505982553432310744389000824786936372745993614441246381363265808935418214666388043895910632753349486754429714250201667248082874605939499708096879482968917615136310427966093204690770567420654369096158570087319539533556517358920290326645330317366613326893530862953401776179507718524914426931845932620119216745942011103837081552333694110803920361243618767647369704686671195180655634911800009137024205008256410831412404769943042336768683466012801302819250769285580005855584927931809871017149746385747852298834917602361884219663615058358401488030968855320302660672663659484914143705607144048116134774583291075377957392790197526009119084685813038851903310244226557977567396896348331851518927028928078826956099452529655349196520270341773980117856878045856118890874583079105224860002161758814853571873130243172813099375323933219558074582089199354277634634737403582785714808109961268547790336945800496759222319027264591160404158951434106375800465643563903640248986498460158728282660593454874542407166181755860408370533189205953219557890173033721540398716262907303085554174278974903274893026462008868489101788443406065241330179204335889492685641668027756240535705841363171390032501468414322905275654396855097669564677265326525348089417960717569323854162247866569785200007610243437862230629382867400315996064213864574198528857826632690780188110629453117866707127521210436775033996633915638977769782218101350278977568148257863726902244863642459258112081680977837930849017497720622081496565538294494415372306650522256453465953383977493947508572560504355461790135281475168650665693422778893745708373653672929123953984901409806907536016379484132348503517806411683348063492690265205094123513188735009834511435427622535442026404823980140500323124664525688469667043276893795422016646634799622317853334714180249468376206471906776564572494438458257509079847618757794300075010090218485349774482579790728617618649233320371595764570781659504702846562338959849339698968012352624268933193824477998754307031609585476943337482536991105497620005555155561670653422820554533252698379221006411437317078224868071206919471844783076349235326835539431313265001103651912983393433298802060546385202627278634904018310005022901184922495909052442642695905374317307897102436814743430907204008802944238476746396313537079468648282829737616179622661546991425429167815146299271846181447613415360276337331604524415259525145008284913946043521505531022403904878087302753754201785570642792330287860933971647000815076957306958644086291234927369091835900189632153713378094251433504588052086477815977471200150083154270110785680763417656901444281651078922080477556145314520415578010995999474060419956779021222190721054940610348420710231394745146430280903468274343700211482853318473193756003505077344741810779866680809605220794037922190644141044061062506487510302670327810689378365744017421827077296779116059020995425340792159414046467745202251515275035751758957217783503447019706912669016824975363723079233428420350459168376905327557246462374658752548198426043714025944258332102144754314308611743225888434550405739412414558739563279816416335927158028713347067611652428376002466820919805626211221310102042060634948025128512726621101664037082435370931670931586112456278396862383914270653449274065413011573993513437709214230683612947208938898297092182545609199801619769927983527109927811394811634123785228306802239302599269701938349816291393277141630446898990612447316414913447547573675724702973825761772365154534590538680070124469607085616193492473623232550086251053472576943581892643491122875676385979565075944463004250167686315207534832359153607975948565731137906087300013599129048728166207015049630046839019216231410800065476536193141062988816389165178314866785777452350934376384859425232705996663138774172061298306264674476756858351750126626734222341317606584767378057822642672023344749963421615827412567031457491612989000255669454265871364250260820031815124854633462385953203635386560078060270334746047098324078645631854521363457038645585949118173669846884588278626445845740617854429952472772782169184981521134708838019151332525864747942853335982134435700244633668529488493995577791517880946199664220114497490731081346591378618037989016403848849794204432120507182587182225918106253386893189683351527137258599606047830576849183718053106986995663257437990996651170122868478699722076164714109669599701310016522508685350454316179437345971536041954720256033137260664935011707108817916701760428967392645156475050361221974283630775826788796443643185317072279152440549544144293784569946813830907278756858165190786848421689605902086245512303187214534896376416672548039634044852770860092325792352048359797060317334303317508749031420954870993623787910235929538478009128004208388332701702771169704392618843545666879134712905022478118920608748463776228473064451179729841226562326330362341147876420891699621866593426634252519060771239365040343072965211700816348933270110658365717073092295829044075064231675320686950705991114179720191798806851063114588962468814933823298746843618948633105032801893564198556407910504405289570298076914890450621402245190395950314194805874805148944226511970469334234191230106717016610778725359632130312185537695617870732440997737193085339684108843262775193571735658445472868613451899180155134783331137835504336515806047942458688119781067446542391625341625418946196043508834969861609780212016506391840471543564220846767228036668262966332986727965679307321365401816417628059371592502466591565469166920064739704347131158082996496098926530019904230938849174886852813437332633437253992329789904347490370876835056400294475525380969093135706848512474595354355200566884092173175680667875779695070246474352279679195256518806839154019301204577538352869902015212098740896248633200664590692169108062863392340494649730910251062822803266320779473230161688638753042304201692397967911700473187631403288317607457112815091857761832920317482557238717321988941317840221905258503584726829495062125290615455813649781374821871503896682397790522680097458501421522266412083003023241247369483102069406007170204062861769119744430256579589063931402284773064822494156496397393758319577133953572130672562611750792891168050584827130500979516857688147024018441464831282789444687434691546765255575326548173214186757321602957627279114837945736399296676669455266802089044344881473985876421164640424771841809873689674254394570342618816175807435901319435784583030398321670245225734126129276666368268928158167103424602323541852883445894378207133343148994198106796197615972912672882626986674489756741758402179007421237653224300095567026249018938945852422726241176026133300058014623131481954264297980778140176421334294349129228187135006198436779056577859077317808857545924238170124612286162971504428747132953871810254464904165498489498300432773692174768423938057806474804511926582443984225713782471519156076495894916306309200963353275390146705039338228413958075062330473734714887695202038604124175775855462930982926058806895640231761361231981534172488640278128235723429477516303497418702236388480637873239666326139129672228621359460185902942059913424793496467009309615633683989300678506696088230149890181424446962856712323683476589379447191470097493484953749831241219088928519606029476454784274576499555327584937270200690859700288574042744993214291126466778122713429347834885826415219727187864026537479471863768811393097041359114375359510610909786836317264367195081291470578552193487542551619320609601753539510333109744217314991419123856702766828989500927346050689341516874737908481927718806848227401668441384582575160487555065006570136274718748455431447521241369378041038973586027490088161728977637199612758935966402947144806997628286694351155291164382354987659136722833401214995565782693570697081228020932043650293465084530326277073658604088854975086642744661634217925380422894317821631027111887000724471125403837041637620652108352406624786854665460159110720332562055646012314496103249799367525023908923568304243841474640918203333512601016227478406979630496183061601111470316969970061050097238059030975615717243421512954613864435111269089319730616918709196497796141501141881320104292599035775089719837466361889034760234203271273878586737505013577251981961605330683084672154708907671939313845936219971588578119408075705325456488598089101993663324593553318779607680884311682800496592874695361971636525037553227160067408308700134406394863917346247973256103879290402465069074289651852921580001772557821346821738786009096840694962200321264288989898838058610924494013486688936705848890751427079445296369328809948428715490544561936641269371194417309931588217872612464337747281631578770515824148106152853725223134807346129729686171100634688700393700760662396591793109938287446509306823896165929599813201411805540460286241956904837415013318079359705005977593753646328737903368623301679079662101609990722760044033880935138832374913425582771403422205188057708137069460848454897048771885268585621511789130965547957215694379571334935412260627541900313855900903249631570600209212971047312565779561043580484499702104657717074868622123524053124588343695286906238340235560388410675296485913365611909880064142964528114974448870140234187818120429118309661491613893808867400707710101786800409982834902251309809964516465304646321550118286094876268330302958118618846281251268236370352968853292838023480905899457342361561243174020380914711439871554475650036474675102484031835301916634508012466596348605828295323399147875013453970690469003611977756850969086077302199602375316232510763294387174745048824823644603031758633076458035010831655745262861704379550505940748994259762222707494133560684922711170329394884863308151803095971311335123671856230721640984854802091800069318705586492045581211374940574687104313769554369561578513727186772532584713799893346098776644783262547094428208966805797482487795754383571193197971775569716759218806137445426154687742144420692221072316025246497677315984564133272536000861525766074317105440176721239781049515747501681548561255104398862314689077177912175529811286945588983019058288294117761102636791169793747959572033424578390625599448987921990714657406633216652032359271052804259075031627396310114455864521259472251165841152809467314421531536593517912972779515908050715890114056026048724154561967901861228840816231100625607473522222568012139106482800634546731044226107662353617817765030921476604781229034922066936449457018833460073653523068878637291059288841990568271550753960071888013401482766361778193793649147982322820149949883033144627118304325385455804222569524913442048347809836262587878825245098915919550872365517471962423372238683574503283443091597525338201937703393022038489754219667660321451532374830923839120654198720322565910918718815521824224506707275390754512757469445383930102379729247526421440012584333954381743861328058813571377649517123021046506684384627442832954730380389687854327155025639219029255564904509133094313784150310364500213739507531731810235438427622914393200959383034333232016567135918427127643521599962286912679755989030319371912492080015213340591924743157389398472948759957162798237012370906408167608011832396763134920861512148074286092008230813373695267242477852118649840544381711470507539177279638125327285746073022476558050894558284679242751673561753340407206346943051249229471210674743316763645432486460465207453125962783561843797614237001481788923514573597670560780212880797421327470171453280704325113658558861773438175606037354226106622675009875617590972817125721908126542776138626614356585485432009512776975161468185465365086221203725472883803458392115958676550394939939214792933612965235018270645606136206427115875869568644701666213023134415158537808179419933744393225957687790133192960032773850894493224514944204214626346058347757177215585793066060479946098438061999934060201568230853485190112762595003051067883744346697306043421125947919965240272393031096514110342392595604801941565214388387931483613105138951676925233432406431359076522583572350104087554571102137448816316385052555790064196575123695327146169584933600209987821643153050080387463256823401991274562460852937928713243946193023185418294120371300135758353932903512025732317195409433331252357898599005006935091137385041169691613710294669822433725512011566545442442513515978771838772825259567570166097287703089110447569884457901595534308149721563197079444002780115219983785836797826409060470886408607172925672323825552382090538143294623479963589016650158953716727654838250825013700628392190803405857214272697518735083650427732100791595595667223714748214436366103197115456590079771657124930784880348229749099946684200897196300848957913432706739775470388080580728460860362525734070746671811473758030802605906362217700647653563788343520072182177001472451685606733677021930336129016026247354208407987402012077117888457748983288475669841130097167411670014096278332279294251854697752281385162305951196274393495545056207815321673210790573366424913053024761098489738579786487688468842703895145040454575725206300521872295723031314434584150690487655375054018374978632815117668102738340994532229912008712023691215078090259938881016777101983688078401211600017840233001402099625593575431926836768972367392941288309346146791640711639456633999990826229930425852103041503817904401098499185569663793578333533395600811510265060084234402539837811423962368506887993229728219899686111102481420031403424647304116684980732928689338258682993296410427771144478485060051142800585139593301802571005214986775394843299656227054368657100368566944012031804308612782125415112791635683912094370771444667239788199806066776253749648186370347298924343706500623235347598847018079755048472602933065504264332999335558112986920227196501086105449063735433982157019292428420466905697331720293284656296717453135682826945466669552890889021464218182151621139358196614867226919592302716329979899535824547677651813560828061092819399764297461714137353649360159397973014672660894477691026107132393742806233264154243951327378797527545623817076565705792414521949871862101731321217843838559155775048883235758175118944246688428833286038333943454262255938741101313196479634431931326339286458772811278877858865404536755869226943488182289891270790676731472596982919022608639871329675807513608493040363578180072808012543912306155997758409364468649925198476297464499869209323657506696774119804972504447571918144594694103306594373804288794856486626992163861462442851513789393615453900076071822572108698786726307839706406014622864013693814461069225838172240079157096141487396848772447392259553742236704888211934139988701999733452604729036603480310783683086277327354879320516494834091177285487280526698424806875240739378812396127451645009791293163384541798237251612360088908547238377693767970370173231137360063052135591428462256110924654724863589102862856521710767015733842698843304693766137939169218946860201528495498879077704489468216258218964914792061429119992885389290608167272888573875971088629694516842582701897891681691382777817494030390138066875695410260412095232106413717061340126167872783686645874477848671753145803742201340529319734620190702892088348814574815429127196007207292583704685646506568825125511409415362172427638395567361886442254899332426527481478898917065623672690166538521703321101070621708417923285387426803782049074306396034141732179550915830163554464474529014841210559321755550649199888818474205882774769545186903060510348500518270074711866292034052265385870128087334217785827284467900486986918018771798167669689285497389160647064678876579408000901609920685498540310940634975065585309147389391867656078773277492921830622578616613932877195884312318802358748232791903299719101930553508504242836906934193799867228547733224274521582651072207472705096791770406548549363284671239626462495376543299735573174254879559082430843129675230140484462234606132281712567772812024613368779995922257756388960364320731392044898113677770394253147670169970087935783348312985359652146292352534159607714200725973795232365289411446814045966501141866284161454062678987335259772091569886892028508998823996711909520396277990978827962386360964692819519720808222032554509528368763576064888958958370955704254641730712132189406564576293570858802083199743096954157027277329870435198895170678074276338222965553603255805082911814930591231221706768563402887454286040534350366528583085710983967253802207495757883511657247672726401023361205065622285008136449903900558246714157836743025962900935453507826471454638738148169860181733759739813048510602769079522147779687417098896321334004375830420932222358998822100221956747212590725378328392407913833474752088827995420292982131225290101559119777843260966904285411245589325753484169107479463188385339103088820147442993760064161287756192845711853636563588283659673710118604807073582000111355811972995840034443528249034169504646944800849261591441771605964218456365768906546385946721989559423829264442736272282047099716079183013684688259068084490488367233760740763453690437669268129018581847037989238499883377956060248445677742386622199233580624310122133486261942812128042770904211371084223557960169408863733803067287993557746206377152015560794365206904616608365009313453631390232157686186556279829412253477867126158861427578394004207683623093127662920143542655993765845293653809323316795192702931262958455659499309382436294223685975077557643143718181296003075202486367245638551412889417167068146216192543907722164574195046648846936596940635059027002084205491996547157166168033287543082213389417477553464884640618040356839200478941954086665506401670840526118513119408733902676838193651750506399861505928208163229968054762568308667281666986344173114164644984703086105567439318344961220248057691877042087430589018308089060294559148065639998770863177992151665109036192163275159369755186485819943933167925195267842365383169858004112182307128551154157167280895829799274722917314254455267683764642692732026579252641959238743453949911897095881334018135502410372332940217335707528767510273805651713318235907301479140231504041879868392849108134643679011524973679471521980672582160009743058878545091005463819293647162699963599652537306203605012892903001517252113260469226131856755152297260596300194397117537253833153949788381878433638966190782772580132525766770039286130501498432272107572028461426806685079180130730946105115479671022094092522325999312678746884744157732825092769305152094048905893347942316374434775784579313389906858945451309587363642624295261317591518668168143724755688714367314944527238920128804925131828707901596614459117594900266332289400295291370695233341878114006415419440761954958847201448086615144095237420262379802480315352442569921058148414317627161393460561283355533977626067893111326891125304991226790390779165489876310268858063141472272635399075030364018548036955164531578940201591204447219461092943367407267425422280811838505738482333340402708059667460794514028323526402578935285450908103715511491768807948238544042822548169020751228294972544939917913385760883555532936228426662856694437379261992354584512310500700031848651593790018396987552571532554681560270997375280164945504961452318699310985217890489568708180308040721983583196922689628153427925349126943249580783260625366376394980782254275464794968670781075256906516435093124335332526982911343131911014763372882192958223443797815446468780221614815724170492629722638549961184124756674968701491144129941070134057846918071173508693146976525672493118217865578849783798999670088123323708384820864785736288027515674075752979222427008407695268506050426914052308114865946554850830383670670999355374662868540552360115921641365175149820436456766440444633398844770985772173734685673837991594776466690198934413750824047349671287223127189302433780742622994668492275850580341270792580152046038753155769299726168159739276986858411510282076805084871193569978100679848167085108873614643755378049638966657256207728806720257987333546492855541019143125138019789748446149462781444047785250142033765993192772538893577419335274225691202982222008203493212379219320874844182000112365651870823873236517764589214346503537528239847380782321946644735180327088065694077540907258467429361436614865618130503488764220264400066855093039665182502984253622151969023755377449452629787187419584576258840740789363463133148120530702582092821864448978915588737987936952631277095405457761501487043953714507509976968976133671756169502780185663580200572036432049673156928480579862583335354279203969402797330976452793659297974088088600616671619520011890135733755654514478739394026541965333183559210821237112933873104560297312290026700798845224033761181400347922953527288987486441931007657427201450032537168393316489449901041592015854228636975383196231892123064829646627035291993243440662996446631693748585266926369808648613576435098145798054758507168162043059831015486273246596753719173818609833568401977815300932796130267722448756618066185009051374035084980152232139639175310381993302412750190844708205198273264906792657201295846544292692392503456497280235319840714033899147289854344620224075049629383715540632967549307039380764789865529202758844763787372278248892837585492822006284529502792294605930096440482455760579055172529537994570509503712534414515884890045169116866730561897428213383350095932842886248284247686534642089944298350321895562018520909418375566546286598756447279692885993673775682773069688666697242373982990709923371315992436570185616239437586796038039611995520084803935590263165201877919160265752768658586318620402805770834348373497043824402148613103485819838409158747335394924621322592831372896155784599861171159196121255530691636738226532226859904819628622244535565540060515894020894073712533430987428546606085216043314225510997810147209675159911477173488298737056574866781553365244101178213202262358384179529154302051487469874453655222762289580466483416188468331374409035515231015195078833905249396957833536108175660356402657056457417450253749843791048936998403585714388830587449174798021451992809342386394797688710198285201444600110360755910913701268448470990694709823362356376109680062657085968051648664502483286265436853390271584942115333268638209125464019197573719058129817018025852718591460983537370897629363571909533626658297964910815324678466157824327361882087440344468258205011241593776514863936994617611961556688354885006801817208041004684771442382349482876670242580363668147401754237964162538310403160531165851674480003229221380345512309534322914546922774673084477809202754734027349961883670182198484365769868480800864621519801543722136536808636420373786045867730449862940769343101813755271265099462852151276405112648511519575815385766143687216661938508062993437446309470690760772725162162824549433332454392448269101073433660368869811234919388617021004913190134674220984938081955923445406806790186213303977696874992958404584081595466494141941735632658674392325530020094805188677536091441452133158435520677048405272754155564402552786463466504814234039246907463952209154706274980354143311765160730579815755779443640610348705972812489356947181059052583862559434404058078817568594491729605686232929424080716170363237239942391047868628022396700364385512745543066314435581546819770999517243218688530325845230736914118123604427437032785935530041458893661109879991083346040173979739561592854286180651208115611646369488033974797857240132188551245534174161914337905672342601875581229104951743565214751758336274923666657065932658902835006425192887576743710024350090023470744429995102441935913079441280387367176778131866810577938272082445614373579354832546032153637272173964311122420399285883849264374281926026266278127050722989096487179195581828726005497986267664170851727878474198588888034630426926932040945181207134834396417086031066210422254650111348806978088702976960052750567777298406469226268147903476236743221978588729259866034809472246365190362034351707447602464435372713747615354803131487993190275589333865831914410161746758652777334352837699009683089898593599398959016962112739333043200648072726499848770335034954585798173268467454755606137831141618370366486264440459571097522016502171816538422077814196191377350501853557621119596017228772857066755360959362281393797511213844758440642709694371876471267340703217670084229310662505800829294087225075329795810963336386365006526156586867326536977382745993781932636255235654843230412136534695454350865246499644359883792922252471361696998329886331197293610741907799398539332790206671218300752567903020134899237674798310204072512321364066574506986462101617546914084507516196232512528456354877231169101746729369943456407846588275321084204776342352590775627467856199676507761776020425504644444635216618718609820371906757131125591678102068338012693885993289749601819573965054460496383412392334246254619818491829862700644023113852696598666167194602954742691666968267343592290149680637811339588609198617360490019041121731022693729744990247714791821211367582162974859289261811465532797008135753774042927355990136181046441704750447986520634934768342991350749493971415297967806763267915705004605065584626508383733025639781158075076028262216680074260821150834287864844093001370166404995301777185311677903262511065412993777483545345608877758380503394221414185615788431126881905628432468967109443858660867503739128336412744820280353599662447883180402117467116540553228863739019010687558468730502702572103224851437924793692969368393309763517180778872465069405037658138532124013455350299583769125970088049872875373502964227936953360919803609263058242769632825834382929701089692016488190714399690906919621693659167844501567032027778274525296647441736186880599783539337892666195322159496707974150784674019709562482785935996050616700810973428464918627721447483514811474333032695226602743965338355124327305207739179744251659617235591558922471964306787804533571358670905401784280173334435985681951862883902448743186808398355860103377756288628506765388344458227917195771999407388164521818076929501412376563627899367125893368621243283793798667146473508327631851933592855215915189094785469625740489279146157242097522331775527778301736831288599356111893632741213587909152165395757190383301156375911773050301097340270356524501625148668283701025417076969496468029545269931835571807103715972328560626637133305359764920175794667535031890457271137334838676821478778329375543454646820736096389286068010266766176180067602302651152218123405576219875756893800003198159456199677168471880897317686083997577114975287179188056946251351034275076928794683314890059945708272245329407494474613257641338558595043430973955497470545920068284725450789161747521932123890189960841169154654931525070441709994910985922522453215595770530472023218850171584539360212285499144121695643084632927415820646177743379343288311148459392009287640577524419681945794975025317069442590552282758773265064657516494437517319152573207733086060321389715692025782683981109712024322185173316919761038422712071392379719358821582508826584082141573032118825353700891387695774340319039636305547201428161726429285706704546436996931219809713247829089543207250779493784348668983753152796613530798855673980905197832969990435748521292948766678102846956317610874255770169644836886735021085491151681064409904795652585300544303007835993782314310818302794881290443049354770828563391284069021180782740615203531219895064599420829059523993865839257569472606502176489898663107218025962168632478202298256516084756293843585582895116123223433880330643612523380535156476096566299095572386365722505104542533242846121465592125427282173983756976825823099695365010532752311058156897217531868479660730940821994067332544363301874433252945464628918714410562079631648073247233139758364490941897552858182096500069468450574680495584715041589471175099508294964390112569218725642458651557716092868174069605038649036469474851076211592470043100758803494616451575918138061281405715742350215224620947874454307816207259212421298447075592302753558562103975851624313510066249054056454468325010749636691571011691470835137080602206429526380658859237788172771126693092778321536313953630314781867987970655906990027229152638858582264370645411080080700515135578285020849556260637580810308229903892878663732387164904900762622472492365902005777259704290758291172318571940426220497036315715810097659407340071033254977192160711772990313115967712056176476841272652248062845544082413453690193615017491554184993786961057706789206711893554750281054014800415054632991030549851675666213495704984852528866278861844858741540823048135828052702027994837804430172457820291268426905477599207165141530370581924383980304251411014619209011152193472395780967555079780565711083451400802686125330236937976748321530372827451808200709191213186714479738835280789543217626346021079273387992193877937836374615475479499767332032380708778299958233151917864096092146031785146962886220823188784207219314284064809947548203621011432818661777109158458649600007067547699568522583142450884356794498694282733643829102581744856028248019999122778714122925091771099847321740744060098465294482492117814327883079774368078645959300013342124363140107980220503480210644103888605622604644883627242763697306620763060726740443743203885707387650232584820969411452096065182001495724496776608468375315582069668491938487487796151311687050802353246961915902177979801076013535154887950642762997087734901685244571422419005912900031020836760025342693466800579235392317763261802285230357226221731209066186823513382197974527115902869061912524701282336901561999620511159340852261155679426517201449529089028929432721490894192199206568179599326538778566934644815927923157029776310167040665007191934484669633575970374119079561276582839900108385928223041191885561391197177503966039125839518098354415788762787618569708971236693583152902937155544700717577692690396758439914098706074079032127962858026143880797265286100160282456922729991596180362825291231653783751924863755076958468024054614897455588420403362172202692096782839235606925974136115444004512573245026253240532857134429990149950079460800125607623168598520816905563640818866559673658548364520890326404281461421104184692105399881128503124437613673771768885198636936642028475368747037655264756925983042185666398619205233416137716704101401580610368197073602702383172464930180021621993952189242474440766310172221347054513639830211267114513505334766579991649301425621768780841281531179295308403250507459782173065541604073860161506592780313235063518007240291305837163775283786690414668244869631384545676282925110789035213965368607122088021541254927083853419461629997579753290483022166567840926507361221791380286378998346554834689105070294647570415933715779341178981013829143342905721074534925761787127733534194473809538501987048211606221398910921869999819978146153955036049911811235882635920340247247239256611496569941280683437495282953940203855096690969387633908141115116617564323303312745327805772968909199107323478056027046599578824726734163758906768626415362217315034751604234701415132167727073518219027560433930001800013668288054240060076008727812450518373139451425871315672309437764948905020982454460679483384838895383103898181086779934723514202095000225397266292877257839970636159399869107370846824418437119243810410517298505429191851872229199981167001222091373346635398335309812805188084109646110461140913691067545376775277710351279061414286757537165754372593988833304138340584900879073746818282704063169800643278704455319685029098925556603890827871697575850770176889173154018859494113461120604910015905936836590448842318284428982635404608793826828880468932468264199907664416474647584208041190298634473153826570767210433305137220678724526455889556662797604173118712773982730853850806964621265513640802627073985702833667550086084892723646089923767404164305260748887581504757896414900177250061968206278819376087595596887300492283893965904734565342278423825587798773537132436418022090533380664445181814834829427370543919479575732182472731155601878161272757121215598076142835595775193293140885986715099632493039003983837568246415313949612943978408714439953005302870465876858948475990447054506977524898576101443005538366762946582643113910458169991933816192493866080458320150005762998176433157329805594740525658920100253049575796734519362242653537134091896951801968172945031646941549711934548848590005842103080491460294046076606318642584414566450873048224366867434947186859105020176895686371984961636533530848094330787576021482681896613025857414869388201530706947686466968877558941552935184464470667818820459114758236240252285302901901648578132435703750232024444950652970008656342376082584689131028137948674335016791764417676867613170562192526702452819972667388612872113951236613993728604256608876894672705955315970089507335183032207529544008548693737445303218575256552714350974209932815441427145094361368565819293147987345316062282993972768366926605514041994365223868299038515627029381880242291806480670664819661332541437335090934426957179777060662324503016324437753351380721417617371615862953148359055297184491094550256343500535855374827624906537139136753537699227232674932955395154294158557575894076992184229122406736941999504087453056701985981581737220950596386113623440442578166446799745669075181060379970628710379944138474501525361227675846075052362228233953930258813987271217098930668539222135522283981967999541098965394798644307469051072444245403509229675120361759559975279043904135031895921765625195230055350162779683947446159625273071535232967360564752183534883516200487739982243123942833569400044907433664023060320806410428973421738345856181766119158147210472127410102119681889125393383524981998214674718975944606665247812387219630915961356182071908425106469762903172267104490858131161179229055452588210528509907489252436946062525651590313542852778553993533157812812927544568971763784909806118284357472557564420256832259908031173102020948182613619180811371146719315735535045234143990810342030850816353394124920628141129988798731216702238226415911764297384711894484386910319208864349636274360903007821485846816560471212199269614126249595439816642372489164447407046531779369088542345387498343402836502112912145609073473303110582937563939250608041915402808425857096772887485864757762967309949759226048872119976974174142667180717340809057785132155888348323383320444653199223858615477459347622735591763018012260980783065101976570247692223366874203516782092435932943381928716216641599338518255122139385084601507989622213138005696980834717432311207252532595426421273959209322790176817760501857729459612043878227857267757367468006923039424835330890708957566294467665811964317225467877714726874384731271081323690808648680260846532861016562993851574695993288755969459830731760393790870850410803255263873314482315011818858698567689111030168805914641369884990453044887393081013254409415214129684011523505526853079898867169697947620310591668610009861131560045448186047558743003167528732023498085043726294023229118124297060399029457018738681242828325851118441104460394917269542776346307737941966003931136195313773786805158242738832749915865032769115690014709762510184133896291092269346169733231885187648710601883032234757106789396455662665911251548127447320032919872312358230245657056556939988970936409275242521129513660390343068370851983440564738903166359521994909500970579735368052979014585179990757142221106747790152491031935430800675707993646338263208537081744319372006035117943962384426632881656558929708595057460895025602451890050962882121467599259636926443307305710181000971305432735748962636399957582867285867185189250084594601085057337396094692517557737308823902545110605648811064756287152997106578329141376122357001717735447198044556765459726516948543502849325918547622889658362555025187844513170100815814512151011603393436660056347098384040260409850819982758387701004106792786977052983746514908474670027614980821155617479982317671209793430789871171278441809531170487522013256361427290277649245048556072848072382520095038617072073880546208779970987091234141409980597436910524044078098062417064111512201853354072619956357263625368334036714992734249955972211066436404520059954774539613974409012507763707423301228186416627270415685937213738647772792993766739941907214550630069184971900935762681141888072128277989491997530594574135901125634880476484430414515887342610595741279572014321374844275528880651567643729823672224460831988729660759032153268219794793660365596457471556151554751784835621420477624919723929879777567627285997454825435566838784136731947142604823738648330831867277806319821949243049726595520570581951764180398329848735780184852815994382679834244880929459516490652996770294056793349389454041142150259571415909657949341291530681771092328687169587003639997956743403373054234837532707169437758036921299359196329923607067678040202620189369237383835180779896657000612678720217427918403470412679486246745659814483995940363208347448654401107170409577771653645947129090679499859389641579162835509575606605001750673166722959518711446099440524787698875910553896170428252363095993291260748490707595347374092544611493591490285720053768351241596712816124431814814372570151394635088035166957840171896986417382052808422316957802546264733363327582274958085524127560447425077265481698611916096383272493127491566353415935806500338979230307556499605294459574142501203983028243736858101355037592500408338539770339038427379781531873521995559746802711700249508514532308099614953563183606493791911828119282272650472516488471965143228974594749929592717360560168623190301086396523934380598596506935627070939655355708842436092080818895265926711230055786858107976587868228571024510610206240834377654822038373741822384419547950952473371942147282711001660105319929568609136659584100114499193236956979296547128603429005566753716340667992170494030731187776560445630172737618548846221112773832485135892625808721447923436439363790877904620537257675824847350060828000758013868840868608726296738401898427587770265721644216003493566255830106208119086756898403437383531834968495952864370519169154025497472478792278910733493363140605873818110380189772838368830773096191526177090149736990881486511642935415512373675895743485708899004434845723501862559718400094843057891060009901307094367945289638530531978681767429174574316284036389370598686932651870031278701522459305763104285694668301375932985457610195982182398599559331531052284856488217128614230874351717795254005385156223627929922707312917829536357681130850809886529352203265522297663591468058532088279125747269852588344769028588796011361816498369961997161020963424694554769844185994871647882343297186615937816501378329621810753392171869754164484071919811404364307124715159631147885234427539449300697538105852180317254667206530579209974176131445901600898855202785054189341951521284456964111782098110069921927922098282688157531282597580427718300694786303065378848198220353478620075912739036385234600223248149597832468915820803386211360855352900161878872385467737500366715560898822955640396951746674033081258243880203610488581948359937303009493177050911705895792092580335201422827462324039381612849738466262892710638949451553064820347344258829395933300072967268355192486745598770094983773398995770009204788985881326356479273005884463537890454411640653078417982854054961367380096005088671126857557033012662616267222493859697650504232736613072768529460490971252359841208107743056497989029408411626437079898438751131334328476174623117550790341409580588953052940257050221337811087122217410831275153037498011714829501823524800076582488059166787072154228841655200187229953719013626701423241026098256794697496425315673273005401442386164022090425036031150043754610838501922136812628958621143145548966975528830197317804588843868133544146767776261927246153823728689355639271193963015999480684728581662485534521092814549518762802446894941049837104386806036147463855372164487150563329613812585566130140073376735946484155893138881179239210779517838359414988277915255175438410974910590450297293145426401914175352988499694195082076133545956411149258832128865478106947825720803552678077874472801358532960923665071077657094116060505650461537129304396170901285120177315268403831444479455649898723044340017631537119131183438154866187280455478867722824635826834804152508330684956748636843633255529531543103508373626311715699552983269861906639602774754772949665705126823650432391769723249560142759451055832905917098309407970538847282950430638230019716233334372869900741753325121476165626931127908700198349938151152086853273337558820598082537044377549531607461271448248563143325354592302196356037536483434917567845096527797455950338682585497058872141368726575879181515685985727184439354174972168320685472371835439040289034214187135463635150083875639932888144305956859056109814991939249948507225598821627183466305906170312099953726534599359814246518101833344883742209460222069825969759840400139311364584115315536002200984421262045612474225203231273890321999615887803206020340278202104401222121885000078117235334090504522412957178778567799583485712085572123444620797605170717844715955801623047206609690566928611715664854681837580839959478015035433103441901325891714353703385630620059918511760909104851189791791846647826117120887572981392711424822798515259968447359404893553940925488115150126390004239182976047519462369021403087934895045400332749046515255344847955944493223936376996213886150898884949385273133304428499469531537987036870628611526146832956622791788569219728364073687581897779891207297496669034070485681498176633493430781007381726783600868819816793253868363148738505159154035179517888321739909587926768634529299920056062450474073491708516550296168797490143496875421698512550828321063213323889773101855914997527322540730623777601050907782671714082875708292346061423023886969786407932380546671525456383398340487705078223214875663227422411155301904119592691748875935539354025818758328105868312056084415839055428454444519523644982096895814699796687089024257790219994533583947197243449195862928816638063871557271521797547988635188481416465413382773328502126615273828099287453939937215137024546863418444415811714397016577805670491269058351731241403499950391454013200848717935851646384642149563061090573143542097396918390022187691466326884014290210504471828658097798310453348355605518331927782489839693899908795826764759725240898123706978741100028305095309498781991160341814138501336899150942172954667542726491151339342695098145525896144481729001195789921092207204486146225571332904169300960892047732730018970057576138084841824455883509080599113816226493269973452477507091674501171668516058297498329850718361716293140140506290489898320764973052624487095641787405889193211205794620759920907887281335405426316874889001088530251361147993165979214465447335568006488023426219008521325234264550172042893979402290789332313066199268859057619462069039964312595146954834519094083386553601244252008410984101200964581137943572544182873902986144920971427887318377174166331552821775922229141011878962594993047099626827168174884461189217435209306432712773337004230832985056618914722783224705693653241079815449018288565191526554598348641915707363067532089434582424201459560549925516250550817931725697458093538555349105431788720954270168933363328862729581362427324833249421320545521571355559687155499110116637164336286895634428394042854917294771975496730683052549860633649904324221638697515987270768515199965772486865882780988894581107537970654712538640113641761000740603011431997890193695748277680106555100204131376108921974943589331891155419795985091760833788698161618409276908630650890232558060653184410898269106027481852512059539338899764821682798497497091559142844341222391144688874805222629773838892614102811091486815609230526896377388372368625304191646809382411680756915418546474532272230809300137676119514908502629800006297788999260219518133338815571711157130209089611551283151643783119699736941374830652498574694254633829373909770312518980985927038845539862709782270439084493075573782681447382362610438347739811417710321033597950300832049046259873069444820935488903493579436569104863552388882169532985141938738916889490123629977158337196318684109901972618563064907363051192191805639649458506508517871654379846476435104232029907135666677822582485902976514287085386026636032417107097338752117091084529238028432944320156438963644129421940912985439198409644679558896692277274873547408698880741801518558329254304372352244411850072147416100304367220218755405013400430254050670569312865102461123828254906405572534387654592905707098953832552715771927865477576367988694758356566019932923511008810989070877163424539027300208174620570222983812630481515147174273373906384094930427032564645038936281396014077690412717803469872144750212410145819035107134899289496203005499962803535675869584010183960944593410664854658759236609479216324887199143997485697948247541461282861584294953474145160853903754208726532859461557790371510311961384830987310166853157247252735828963025125532972871289140546558195873166641349345237305416572405777464558849892767979423213599036279582844299040540518393572026117819512915164067869546492264148059371254575893602143924795196202587176670850532339012176201586768980481688560828531198260274159633049221402554699246092105484041253643037493295582393592592022377630546545329582618480162330040606506976882845050121176251841260792248663039770048180805526507845422730273319617551451319616289681085882058047842581577249710739922709105083304560102806165008463124259209486520232917511565032500696419728836066032845899466144111389640880756276902229553385838268022071475674924277008274977088949599742020338882698911927377903786714141469234531052579568278540749694703411206157580797205115345035856292273326774905077905549931955298471023653094825507465022758354431312213741484163967321979736963796332392093049100009924005646384409743915620201969315075713313771203732695132139308456518085111982049393990353057057308057282825692103450664072610685508181053453018430318328167938055773122359807468866141880382917725679427166310864757762091973725024161516674690437673683792733684905887294296822922968097256274516015799867861019925801836548504438557462229434131861061068673285530156529624828261843998882036228765364323368736733174067352718478040035047513175991811586117162432959767949562576445284677208995185006619660209344656756470228716766322807401693120124829676988771173245863120283175723178503422125798331156411861153097472318602419344611313367386834281201823568152894823559405811086129404553490957628907071532842104852279516515865949237406982493650593486341665911924648225463948568474568346595730774480345218390154759367012162343226697838640920561071520273093676657909717556119060627431525454336060969644957098614956796316947049821543261840818906412314819319276602866059134398944393634456689005328583074217003293101046679479681178798295252095522368859016613908915565518372023887476053222318827725015297006006584357247452883968308523260550713897704207642239557383796962566533934233950174879175516342083368914892613890716429536910015611647986595058248141709093951874642638487703994950141819452930694322637142263038286716058060615992950613384918947126003684767295747115485327875297893870382709386329823881528914752725068957580562210410892092966377917186197501532447157989415608569007202458067143485835662211709546603635768999985482166634810424538697971254393233451595082268328541600751070305798593465120651639450624073452267472205701424502053797345442704706207913764420065760709724178520088696575504213842395330295564139200748105320540488710038174127769740029552776681319730045690573242041685344338706135602450270192231902272868927196628262669328021852446658239440683784414377749935867336093467517282326807510432121416502706969486554010791972183375294676698972941694569378402727268301619076249341297618778516298359813387465778886787108120638778458377573408397026741486169306844770102605211031148604707380399016885445108098972167570863946043070694798629845045896169694290440912944396621975023950447490410434850367985508828961514585252311788638926205437729047220768535956300662993455648472494225356058706325939741067929128592409048789354584004509962115777736369376711789027981013733217377680713897232480464867795767939884990620623071440940749388479484773882544609359598900894723752937032170954610473005402521213423863914456553437800095604449273596177494657115100627536382083139275396136468724192979185988900552859898605943896661043328751600672586327883689249871874568011325723310525091605489247473592730615738690103835166595394728811366163904878116422409811427647780853639399631201862462101339787470772567352446188953630486537965682394891256993787722614718378713531188953942637822411657456897893377006877735782630179593320857397976125967972519822019581217962648387637923678689122906737688270969608658828653536693682192552436285432623664830946627239595437570997065951658684678193735318267601559557998927242673333642244761347416318403204855708087488206998965469243273556354387096645445060164030622227378920195993157155750645052266056584944082848258906347767349334407695574487889057967068106234285137870232436339900596288514196220474718238507800465026022963218259981241132899554966553270500431604557840720803531848208688106241391683834140208269577492440365793702646826171287513208963701796589626043415526265201027496922017362643013458786166885099219963675694338270491479412537700187906019005833597926376787931598170188926011316748738490135174527226805361645104579054173512881419901319616627739274365657484404755448181957182215943115241016405423800874995962190090796488870701478989934456251374978719773905495634438373790638531734719585350111321606060225981633755890272214849463840150189361887843060194181333247842381794662805001082560319562651430359648421404100663842749469534430239097999715810300447837928904740974231351820350614093034773995355316668760597485754330313085118228814042360313514724382236035597194776051120171670189132183754820090739448065454934687961033921798898133792272050317310770387627180148694082927839090096543337443036403536409377358041308425104151952473765455394021973110400262467137196502224375529837590083172057907113481642423419089704149666204882098164062144882339334214005798634480455953715445417872427626206507235076665754992912026083542649218819648580848047595363072834212866962974116578490121295410886624748983130489488777603011940054174588266308073954495775283854894401144836894191220636041911022785943309605158387598032210577957131969075746544510135100613397117455500224601329374263371828008388214608467314405756092984054686957976467759736383353868975385002034232833110143680935338224782308192624781346535329459551197586283789763605141484180615696960206322363214034949795298040948074373851558631045391847648991410704740938228800338235291407811973327579899763779067303505600082910698989482571736216615874253430527737295422996379241766324588854269241042915874845288591249112157554060877242716453270791218326440892282584516600409715133622932602135313505028972326903633367661138176197531221669593271916103971215537894381222028519928230801889229845070553237119740758918367294740857697261336783105737036774437573399405140398737541880756474223512912770516349792749385531788916242288094975367397396595046122618181222937121451125715542011870354620834429509264462212492477092636860846103565134172741894542350911986325027293000632204887927346215874851830820256856616477234480508302375845943903308126397070871250275781486023980147036435750826138511604486795820564776971442205153601201316071154915243017332051181570191599646075913799229852539348649808122613018243156208124426642323272024026239855499268143805071330079441822697908283691185578366285993551597483970373084473401130102365749474222813700689680677973871821872813698370259629247087104151242457130917892638077163430502619162241479261469893502791416049719504923809622663783510788979258650171799635557237801526879720080239359514149550715930342372965524763470199879456080371788757031001413355371818010328708513001479624066910161656038144571556295686883262020842987042073274794620303588190995285999966356739332970733667768631188485796327669704860661299243933459277303127064793177012750415918870961775841426460382840589764737560359680991123094610787208841109686149783330861736936647745919323633863778454533813359008520849793995958691752302158355664299706028979030775735566830802329629143828168420988557132545590188689661644208606810367184443894270311455305278568779661738625422075179020874859302489709138265252122304773604922669792944382659036529652011050550676454476215736385477933242687312270222844482252321031146272655565189469646107256091576142991794442777560241747379033971938027406824050846112169433083460655710713553865565384842850006258192924447962765252861311718697663925892011319529376305865390505129100303907024447535580416064529343416852155161354923807840734237669620069973023683429086991079387219373210147732205324673251785304288179815780806363513648402922771521378020818164398593104830427066084011194686329735838793330160688871423107868779106909273669471763890622101582178311656307951619663240641624300394349469597897700190862265458190702619291928489225171863948820885538246729027317807885058928819297410164737641896157231029709422449625190821179245508863459593161099502378500733776709984650698158998058821690742215649381445475222728002721454194702458778693358749566522716727344284497019755757274888212725338880087617865657475116667282253064184821647587583366003909215690281783201942524735583974106331093303838297667958631419654476110734790943911899114494781539153886268754269290844281742399830704678563867764787736394113757170933787581389425831624841101428535535799620867111572646128489374569303901101350990798372930413278734566610145362384191175024459206477478377468429302145998883199631840646300380649984837296490401476893358422410354218585741166548129930667093714589394158649507710643685374978594842543640679708192755427237860714774056831571544222579393388439965055506523547008976613008673245790678377102908882345038624293444473001008018745584247578763135343446367244157032137342250926189317400854511469469304101602358908253298976090314762457177860664183071613141662588473267825002129171440592974203817216118988712287150548105961972385610213596517815122498350576628739593539813894664499627170337242648259747759816763557210412657975817979567290013980532452507802452734598335510416214161190825833595214823371842713169297184519063948674986599182767195748182284183555250778396549046893588942619182438370586158084199768921599032745226738950409399790229954691414542155881668326703641469818772442694021456357540936980460797545825111633170650245346170770263668411514165762634740476529320994396610004995020633701522846147730383268668500641819958986122027274331981007840937942599682737124003105185449091323369903746008704859499337587264744515961989704902610718093974091093865965715470937116000644998592580238176119817606564549208652864705625903095579862425228711023680303287716821455396239689139389032707767574128150726045565522716239331364769986441917674540357750827503423730165389817810222967933662650503043237259957328291450027777316980163576431311146063124135644528124090622812702060663629650022006190121321267491695975511720635362621231322545846499613585170924866571442358162005412675289722950137591788061665596466083656633906581491320249676790183635399897817608501051487408418628971512210449740388078698550157718131013569277098311423994660381588501566856051153200269088184813014004724707700890375693636358278179983742280564489556804189260034490674385273402329624309714779140703167702702124009742192204125461644844864964240924020483835108621314217541909022364399507795713663314230731473223389559057298141813755558663800193007081660491965552727460137811777766601036735425442544077377639903859025430129693853752355615826336679614032905805954094121580791315465040596049093823751980971078091944888749308352097595645754957309449839480626244686772665519734136644361070760164751189647454174556154773390337440744860012751094046781165738279160019716269209785049542828850232968948747764477091772838839066611199381155619980191123439464946424649054241097831618353740000698822959092480061902040060373068695542080808382087182426649497676329437166984252288348329254422834192138554865473877662653469280589690572917222657308915146783199710951867571777007510173459644126146267798225380898603119133760221839782791092661373659786758761267616936534308019588832309071844894930586991089651229704691473663600586643336647929409105975533501529899550580855786803792321671800986889462560920224593745906282429980738112700068552873425073531934567492434056564412931017611120991319338315008895123867636637157633043793006290636770659257396491388192159402839865839474780399414623993666157264493785475955535308639967577938576617204582766001705088334016541560635616746697757313099869697110526782616409360910207659282631783635986583076651038312977333312061736814729024131314034945698636269089449904591105382867130708050156087322949616399578542724521230094615504501561884305295703680112478530897005845393006876823605505740169408658850159929116176064236679700562586157726016430106703662682862724253132299471827318788679253761433926566075222857132467464106144510674096254135283760686171155239311782937360052828478653842739413125038275881094129165227459488434784022206337933727855867120723258133395509094682766730761711494063130360181414386971644371965264548319505945500040546006133856527953233653822310148888591132874113844791972397527501237980586405049520320744722293906200601290716639600274183066436148009729745173769410012866356106469764865084428219272399920272955888229779109728883762830371984585642358331430997319522172783026328973961367394194265732838943751749442394834087364833273497577943888607818336152130221297109939158455731570298624241913579801305037010355522864371380307962927103227148221535530691535609990139908329161037305003668040588712663139304604106113816999419015559340049415785551910543560003039377761395574564937880034673471456916159442258481435844755459857925731961102699231968909635781920286961417156164595081790437282097608605682718588916242568601777271467332203162968296024208861372554960985613121440072672978832222826972491837463430459226159722251195990704023651872029832724451880159709444633304527319010058033063453081595605848484092329311816549810392918115831247760625250999223833740588007425501849842914340710336715430731141519352458182998703364505740608901829130613547095079906853398542421062861630112939369512761157314930592321010688232637858275481966363389796889886022940057085489759981094428742277555970169439483789086234304046079972234330641633042941974371617584955520020899190723993790439482840286436988613398483633000473555527812483757660723051220785460634625338636036581182243663884644532816504781991351184493854197674132993411005143310559613745826478670914633052426003492791114748390850028683627369125345045942971807650192769349481674901097692864372266799122171883249113511347226074865811458838425693755932799034378802091236534562109669354892750097751422902799434080066880026291070994627361150938631648488832672588616310299661778107807725461482655254273969460758453301891033203693427467442044746368574937521020876803939312684036748209599969980555190134558860625660599860817212650023110138254727670464633003309642952356305909865724934967204577077041923778389528087663114061300906778125733800207144014969616724723701061814182080139238874582617179822394984878533854912628464230926653606757590845165323954741579531348002626989082959963866201293184271071809605259988211142731356495242552695847538918510841631729417968358619630340955609089917687437382022286173756325240193593862504119321264560613291094353188996209634894987661137941173198242836040924005513865961897949995580474572778585916389206862424749619252083556023487622643660993865705504889321812519745370257485666093554578751438552088904617689184184428233899565865179505265469537484779270969891504912247390814177034902722779649701098590490034913983160453622996803871875147956672559098686168239160062403804617884453380984807586920874678806611908973674432672716871876113373983283277317666739324414474758869656231473817802295183294509233241520347261031426467733457784865446332171928878812737635600530987343015044351393999541583321403314802237600489949670639196041189897838721122309442932931704361980823326677549643941635245994931511955467167639934796328144877203407640495486307646564533831295652247200073728487673772715661980296765684200937278894225352591554048167326455366687770882838987946102553125190527460130752190002121305526059058246338366484407634139651068920171872732237276972380910557727163531516558341145170638454404659534097011446515875424314180862412054398044962520125903228603666276486616315437032979093567297464515221392748418151817567391172398621850865883387149957218332319286774586412893276738489759290042360937253872096642965498756098270119306670086459915179127504282682653318683877851212928053211769261834112885896390826572096182210660037748352514238928604130993728012157505488337465487125319190894552731481950060089878867064473929416727966115015337913691010558323312174744464424202522102252013682394688796240458353295744646676114698310771228672616581678602870007911116322858104737637947629634085087217089588313101031217475193275157183849230507516228125796476533533505900383301106734760987456827039078182714839462551371895342770754668076049967868552714978744152161975821939737746500817953733185259653746580379184295847013986248744434588206578052375230388971373832888553722913489072760371266824409553593802305407772580183569130004851499372111659984350561674039127107315384101613348622520572000868035251440950587635002512057571923552338310643390001319487121281513350949006155491591613525482447431619170278266965783384505099465972157814494549270339246420148488532127931546736516215221019164572949271989653953835436954391784413875989408861159750302095297022872178070043060176882815722632110605681738726310211233354326943988135840791469372921590804080391474474741116200813298536187976947821051587847930924878877939598324470789091768918787000110563828056239860945647574724143571900609823571114740811308504413896374846493317323904984642050686125202585057687204060651369939369819240751029100161674259505685922153060581572519944081517961099135720270474628217063523879014367147734117014917213124226725920301885542844314435843784594301552433035103208660945414059558367188589989431235478298536782036538900953068441235551604733854891324838779912966548065532970871636897881632176109938476226555885655528635418369930774246555066194172758064713452729615199099214877145589901486252878761093500043597930480693826694418907477607639757183717904398905088302698962577684197835595784219646787311723753543660122714765137344903280819426198143670640932674337542381580376725179304758003081766401972084305663164102738619384877412325693272116784542266490437145163805449217623812874073504306200245518684135716739095408773021335840491250271284624028270321467491767440089466683859505138141554358178435080093136894587126400668052164342724720221610821126244942248860298071477947866257108135459208408773420693665007363478635895050480890429302233288261947981239392407369401623808084070823477231109117530319426746932279019897415458416368846760099484771126471689792389040825963384496002320522074915568186487239460385897634436289941413169168908330426412166210888081399125859157160557630537100211438566620170787302592446036539793372668940898804286579194916929573023512144691761396863285110445505214662236036292800625611790862431463014428649448748885011571572157888347055723782669089832724583016961792412650346155065207057657089527466696694805657188321005185650442475951435017698254952703469338896225286072318521117947559940176709536648495687515930227617547798079021863148820794825686422612914197242274215900034731081642065196225614837055421613109404149856787751877539819853400264993826758296257094906382350158062823971307758582170933036883933564253202705017985613636490850858068026706159802890246446117599524966201897141624170509300757759452169470235287341033172755667198899100859508311243961903455091816258575125198938984182147814664125637332798862892410150341769109363961502343063604817440112107467067718635636265756617012177423582618418624526607250689817459994443660612646604443388865677833486414945165569748994334957380956208632502588760940883352002888837847627725324307484241377972973479360060870569783238663906353210153463975823283927943787938929917287582872225812721372078730355095833256418377368653550059116156116741274555850530155455003602897729819520078277356507959266922892408546468927692592796447607818797894497553767987761256444293188156931040071818486219538752941407067323657483510498394479149497575797345337070812314567786456715986417816249701779401072487616245767419034808982305509158283810143791697696328350379220443812379407130493247552077830300463518035994948924710470328732510268079599469233934714407971799999656680157418157039434398842769952971802720156346776195955716937644117369106335888575148441401942618428928351713887064484098124285002438596164216470311677361340813395296867726429678425515696773568723996871488582804363220277687498394187756260342353753768443979899828044626083765105482780562848596548628694237531537496599603150677146204691957535799812520285748716931980279632295798398947792347842989681847496545701202216003235487143510413233709998236459216601840891998936319903056716982444547814380414178654542141527918165321412611435487321541869077276039094645800573847183707923027434590712078025775494240969292137803398858925732714564097560528520654706056769599978434124460690901049123027173987756126364989840364302658076331755143325646961958897791720609998164579128726950593298614890435552468014964082370756631402224121003144355629227757574333683554657030697639621844055404598272768444977712542694481957926661343961132442430683427031926558604257858851164103615140517560774696416459349032429732425725146301282563027879333373321665322610530876988186104607304777517768180042318524621412475583905906556500310420047190208708989875783256196231637279733386142927417912097229390135566528610990140173358809447807412714343539043998121605309514975995064866579211805056246208856803028214983989501883780081884947107219961231415492841416417916888917226854748746941886605396069830946733404662234119675489066607445378691522816065375480176433746373448396478233642545149137183333513337176871767261714407062395574747791235770451857584205892163863728011982341847002673375236100102365800209680024513864077856568551927460705374904650802546140222133050248909194414744342703085462411617168666799490229524572026829914142950811814939569080499851396352714518297791011805658595867291250825685260464997074753988142911894497037374893272146224765703384701326215421602927002098735252131608679440272734504859589127483212884917319694691849472494284033013368620924663514414022819496040038752066766785290273170337182642340576953911830148036111033540464840387327138594982421766205036074390944977783845173509198968436179920580147602672171237988939975115864297304770653988665196657129278316802792931033239056140658415428063064773632387592213232160606288682034682939747405122254082236211218957316860651533391267803297224851103000497749315448028657000406890427283220616527066714586808409772023274251469009517836921906493004154195774133920863758773122890063749184840881583127369301548425129640793715320657807060303533413619743145177515598425045014865634212842108031765737560176953338513085271760836891542363568957086471786535699265225471537181796620130860148235766173086792551962656323601584351386901924992096426944794357693918457633872094716580469187613141620321105159524089775699884291403163014710628252297954922188782643240191650029169629808776286372546002762245825903790232312398547630366357344815426462125989763821307725804083143046836627563725845580385811521206173913695930327676092320378252117745496824519451878582291514816534749803622274298224861973037086284068058000380646685733680473744439289742819688989681570134811631581065461068781082395529904717794137617888526033269482358248371430580406190755478329821368463690577140423320176451984577900224374768679806087098549183964780735858053647428031117417207829295651855246384740963280540707723158500080409551271539092945945582547549305274920181190298876303972182014745753317011733082512945065065663567935734495709861206917922284080877123218109688118491010231425550158844716975597086753591554264448787726407862581078525020427428788834049952237771588522917060982436329820899682492469912945005384521893168731788829587022637657138310441631424531616828071864340284111012175207659190192946585666185889969252183096483838852287924584683551809363154226982245393325438639606562526848284537201970290592892315582138037702792229167499214217406889845738993227410501952159832804163869141600224476020689334639459001976469866236280276024408407079110207502960844505425655281742604073334190360304406380351206659128431374368317513832251531176073548142758711132660446757919689673888665302369845223001953988304059689335050711310994148828281937006884113561763895810842617306911107399860842437396660224245979607812103477531066748543276693272745854442064594077545720670272414625748736669918465662416358762586257477276106960585971939403401838665824012061819320748989397498055065391123778492349519288248810187385311673451610221182955294229008728697427602557510087283598119970400958211485558588371100691483514873330677076501988642925916868703745879991272686283496192329106227843993245394658235339243667674856385564699102330102306257421284563162867951838887507677013814905572373084859498148298160846121260454797333657809850310583114985305958864051976268037383624641546860521286204333421471381584874717512445133824556488719109771295813794145957973252561500028386572978185323116332855145126160751529250036815309732473716364495625592713203549892794292448804285009311324913967776120311207537161020338521368607382661696656282351284404422002683222996156536854669811726000199798569418361216819026478219794889697801018932884290478123939320777878415787558925401954680606929305338645021104817796674243321782609165621606079893772101717090962678776061264422380778483016000923615075447135163971000436279551541225795921352960775706468458466830904143345912325130704292239072196934745445271338403792267088232097261985030177187057734697963856976446838688304021619381723171527871250290822377516070359597349702294191936748451468535987052347718472375443398368335767989419990202914899026783431912173942938625028495600428043650872591112883253579549359365928815968272322704367205823706487312541258209689679473156583102189089033135187588110080979802896319080180244748082373780877669777856668533233014214022412552887445453082335318528522685510653710771385544484030820341019216331577625627503411642230094904163714357086594911538667709839889512545951074061465715146737248956185474755880892148551319849194450515542374860937701324270283998538183152399744638305743704125501361128704874798909380712492776313237521965777150523936978010044027525578272692376916629624113479878357510753633095446698856532629027001535288604218632095310998666026346222238042593919646530695021330634028987126611489277699720484955870544771923107060834491453778829505332247339318495193324600727825320207096901714936992086552461934467974828676535326056079515193419721315602390828612049037144720273138183152213202533514984594815210696380809360519634246268076248287960915309792705494439189113368865482197091701076167497693405512662159207898744120745812828154077732502870420705633897184925167028194043807528792287033446491538270443011757091598959693199974492904928451720051881501721485036100875007893708892641907049778442021752692396672716803717070083441515789260448042833874263838306720713096696850194281640911754484543957565463145037867164426219923023097066914546315153970354333210849736812649927064806247027050970509173078240414607302925376368259936495135406748583112561458676723610977762321410368263385027280684912470575681882770466949184519720507082026713350459360897383995908543361016148431062454062264619933367581285315528516410574541714259697890374970492328714786392178672691098491410567248197115170704222413259733925004075989440446936341289268106080281527917659260044927184122373423791574945195456673833131114165842036693327162620282776637556022176351854512301076760304648274149917355605997930295146623002705177353516531205599976600435830632790320479285982733424635833556002003043112095976038689855670480820934282667291616157327330852449457671423718400283554190938699716877911700695407684022666302341678263092028175493821112621630969832225660340109515399324313808583567147967325887779102705140253076911689234900156727152610455787161334857869050101268471467871191184932750711267399230829402790119612150267437082569292022456095710911611161731174146876389428225751638594351786985484805117009077530256541945531029357007757145645924276162662124575860715428860779370141887498160568987612401614263529746607105708083816583521424248984092031139913920673242252122147959755125648168147522470178721551750676091929243809876905908163302491577146923409197071544447133419633473860755068910468008356702358075722412130831787878126754654096236535582012623793700573434358117108303587520107216493965545075132287539316578762657591847638156656656407518852949163368102058257107120055317350871999902485693934112182308018109679090435888078032972722809158071041811459325851358963910069986954625009697697009660122042237099128558658172792070947162177344207449024617462305518259280244814648904912722535576625322269905027681559644290646803763228659216544981797620475872867792971178646981526971120416382199420664220718297545894151334054327307521329706982359510826884765302963533871078341936004643047273214619062097361625355420078944005587330649726399574416946384672285291914046137154131792208711807759488892374042061344119694211448978520782440708685628888727202666350342677296382504036082129835974300255267560683960802527107151139646821380392893730543249376605396989748548279349412113293028328592797674389584433068242293237120199494494247949920480266616924076992390025694262163871595961712161296281012309613114177505175321405985675004572907636493712069319598678653307541849244965210172897169567418100759561030204090125364625006769592697796814790160160552768958600998806584850781390451517085388943600796515340502193763769580329152367670367831462308019524453622395380386303598532849065269737866880870784495308941575010167567059764499794732782884108578113502227959359439996782752493596844418479100818694346390627751568818621063964419884763465287354060800554706463327671373342529916959076599394167878610764679394398744396480282554413494665168541184728591640239383730596669463720017047334031051892242801139338393915962442492713818037687765467261172773833845284913039382251338998958488821468941604039591452828806629954579664517626026776558566483966489543324576499563319184707405928956114431495591270091921620463532391017447974011869472113395216135014740047937571293230816303582829909187137329162319529507172248251483958261952215202978869601640420554974306654128337508510369353860559635626741176131252800791127364779608363088696966524272019992277387366728812198861336522999763259391780992688751810356066628403474555927147713161804738118127845585445176773133797515856972406249113638538602374032694509600257330770926594985279798300706456828280153367614870848928339926680660340349636227689248023275130121482828975327518259800484699788128830045114982010495122904960793811667430865614422440811038737858668607311177285704199194483627778941415219192843291295664769646971583246405550354139852555203448075841345988389333312210418929452884342208757094747301227667915249422663826690854748058876519438593043773944544046961269345489105090055231659420727061515668578293726695426381778105600484699439645037080989571084121109361958991507828610134479943770306866594928309203966200557602768854737584910596053784389325037312781698645257467715417000902485729809890052677311536371664807874371583143697700043865575016009389922043108478368758645509514392139580340002309743101306539751270589270987731058537162467971168484512631620676642734556264694814113640358064202190537221610921806745774080187718326777996190340678638409726036141577097584544280194444980357719378907688337576463051664948984652609105974882408779708771465602161691916190630880987760456326142974314154300931264742747094112194481026344400543420340704640579132475089202371105391560918757844223907452190184243567795954006002120629166239790683332551867982854190719047549196017111884715397993143019137578249315830597862853949399553876574420597153398155382343809227568600142523315759305336197355677578417490247831494032571567880384605552680995997992962626135783029296434765903336706322592503713865965759756191481381315958469671529141593265686413364011475719576294355832196915095447713841256616868353740350915992766947248538071046476680368706109285652965519439780953455635854421203912029458379457098207699214083550032454320831906219205290008355668994552862388961054880346787868348462741754394357010314015896606544129222766470559665851324608006998944517451631862971388072635214293230773471657729030787141994175000987860992076429169819868652698463130662299257680230103301295189521351687850087266550391178848648859854792916856715032206474381155056199921208174187903250643143414016445837916543741943873320092542853695165511170030136735734460875394494462498308727823837513255914516589858970610182854196546752414755209487719359007360504214362613570555106462709617317069921499902333349921415871213909438232803702538858098068909780649207476680379739702015746142655843307171769099008500518104138652543895962752627606110547165412232554192606813384542025979737969055972482109931987817311863545194540035360559582154838414050608163677103290599767377015189125747741224269645752422772407298319298367291305032751130808298925504914699487706017444767914132659409731797493648651784730206595471658764631956556065901533667189716818160574553203657711190167547532611131953137868169837827608554368607186724997462604965562182647289570377373122838657436931687144997965688747383348655472573514772854021312022584693129209083041753231899128000971268899214731284852216345581811880126904071360724655494465877420430411313593930139416787150722962009551441903895419530980453861125692729258108930522178471937685298820518807090411711874458218183235136883665152294416553197762387672071650472276476145969569024002897979333337261561587597767862547897032696945380482751171483129895912105531560332648512288509949522617122438655405201720914169220884168699421611477261333791272042799405716431071147820103475038406723552623257481185303241167199766516883558243607950173885513764654135250227620895087044829101129441938916515602020216549787851232098177501654605899457149019808746521190829454675521251482477493114961320833900010421898494056910299088790790615335737955229090299470824996587750444028220648444053058243581122496585353985183516622416638794715623198008574115506674768934676037040533337704138371794168747385588013873734090101766559109146295349395235556746986849230113965314055877401630067491440938720423025570139076873214798406680852095730025171954728693781048555149968273939476050141997119167354175624255526682754245810544611205272024409086835537853115164713207512493802977483557352268894561789208623975068813731431598873666417698494470207778563310639066599034571269482178125147987554421072117042047912362621111628914842284276195457648416744143170025701099740476752913348246013672907689319980188910799571374415499659337614653685002562478290194377554037946022968384228489308473246724758173852721764629558012902563784036057527834159149695279879572495583910254656692561619441833156276428237124351760361817756128475627252364905333699615305817699143509628095546704053354338054390775188702439443569077436191798424814041797308474219452929644576901349892684946778479062337317645647905169417942306219061578586001475999686045614797265960736363348321480174195119470740278775642297308272075534882804701316512608346939011279176997376861126350631943266388194803754715576475431201396242330500051275441820890291292528894568158595115780185930732055765097035761616580430276496627621116019122498383699125832280799206254857626583929438148888456698026942119555978098066057229479137083731561311783341929079569988078796317823870222798354418779581415042395728687847593744326158332641857240411544043821308909240450683475071997569915706706046311951367904205637260251677181421112381391732591960650591659395864469699437059331281117679700949661714066246096290750997705224275273032565207749000594723285823594718407665843148059554068722379377456571952739015630350832507317111177717154784107711687345577231326294308499714649955831921268190886349048332161367180459645663540319137421134506146538590588673330586583472624820972111348190933461819762224787645701412064383882009842531577538913918901329375322859101146807157569156814195513602283825724347688173677118574658568319755136743442367298721535180608520123580897905400677609728062313885884455908055843893133025128123063319357932621704412208385336985706427679975114289045415454885223060421324387076310832028299879179652370319834938515000990061309834724630079053770662232049975347292454154653909641707819332812639781228908550839435080000323895471036366280064916337860690502843593744089164058030007051948012571862360034385497795848334275050991334448079074125456570466386103691759066963138970055622007195437378634571163688814523757729224077712848891309517980442455488131894692468495372351480803402992203389457361539035552920450926129281450623709400873380147185703691971837974988763995516899181522869361833680447931400388847625011483496236976228065873267118104021922356490616706212550901457661739058782842982853078233994964482685291981316717549643780649767061724950996131431944337132793254039713410779890183387603368711323467086860789312234076292311556267827251255839811732188932758893930841597642069314517338220722659742628147014792306937862465902455869622802137319877023582223408523456846099142535899590151187410088414224811587972581378705746829237803900475898179291219301121722367031132282452222274337072032286665339766933539530871634119339478879371223088127265726645058669276619363734794081167634231964616726723492954171865094297478522143761320726862671640889194770007612835879517401940792349070653747984306876048635164365216601612942037456957252126485046391551953416704145660718946361602505886835619381455911216974817396429107293053294954117036920080185659453693210132247922895547566984050102657782147588799287091646779623716984414461219725693274268211273146049333880732384089118008708915039770723710400288646279676827415550640779113501886995470761560528592358368500476416650772444564839133239890665980028522238535543552221736481530751827963954905863146765195253241600904074655017444577386392902826577970087970450726785420530285656153205673224500211686994665364415701761935597076534749077285905307358025045626950165096714937949327134276571291063161685548910272480704375909852466237815108561919861322228248217496852014651165553252687787084148167119702363250274013210809491156600303150270799915156399777443955958320671489297301100797394419453906449131679162361088587624636717356175344085074383862564179447457575919792350140685115895828013111860119595397029897797661083328841540659842411453701077788902873898845465483508752515486386358671474576425122153665535905959556249139560414149460252920485991147119127334271592562046107905965360776365658031983853903457897917301017456403412212143559386970846597393596767594729417598086530507256902935633682724619154578332614011075616917005871875009080496509060605150271112464683254156520660106177652688908450886533391389081889135768912887548633954315574621470591906511266513248773267411838649745039398396014856798331515132208292271139709349104599880953071753997366072399356245229160104015663053098584101197786052443830378347879230732546171020064818107000742962724066932445745803685590268642604571431568443037470774000359446980821828311387063631262104348498898690039402287166143726926744912835881417754457657482285489690621136396710855694971238750353266604334903057877434929909777260019311268566051354088924871839799613678025558513396279904476199708609506803115418961630199990000034882692091234948731677773910525182699951500240060221735009167080161030816364755142754973850638267677671031219090965190720085335862255899470685754808544149871593592386170093206129469506570546548025734076203185178143364736704812128901121838223933716989375324797817714105592539322596842932146719322170381958080672748142744937229732659985758437023444836374985306167977883565802263351931399079547683051438646576113153754780949179158679493549467829709390435816277441502941635066160918065322111624554055158231442461681636092488726623978008778277137736562252165181390963478839075083309575788244351825507861154949747475315896363345665404540649881428442126310846067340638511505766516045676236112927048880364541194635275068262541158746325276548114906121111018576336960889901010168950145836476765411296217243396903176955710849257321912254118404998972052940701004371440195282262191241421084951714899872322400395626405683987988364368888532433459163992631084316805334135280837365009019477359611351135025234306667487051738859119049284962955516006677358276218551232018064163586821677437757709211109984717611459823224184979416867586740171028554942072881788612457108933423008276922863894444206371481971866291113930240360122878953054114792189509318141649492204280115001395309430462262581480664057124250182992796030061718144766176522795804135473197499481282026534743562891677040205570064983390801021384241899997173916555932844929402812290083343126682661727715714271093866801647144614584018644925746117546068119559946022384424810099529774659532471022335866009769072531583009422570145028507611570374730229021726897297999952266187353528721727773875058943610762571583021343790236187748508716650368572556800888137155568133349649322720893157991741486468482400816294442148794846484737670614066435940138806470914438846597447050802370845302848193307975552819778921589496411691451890990643232565299525652569209514476411565407326164413613786985515228118619867972005757051813324171647927551026958560617554753364242137763176641677795952471275991483980390902454665382565593088844593208676753268319873738092601039884625631708463986906220734467023437876451722380656496473190446515659684761641413050445939577988986663621520651659090913616182090930357040234263689821683662784649597705385163963929493173638792643701027893399578976303829345864718680068595610305198711553655118564227635023808265564542140623121814781349415021312512889059738900787940591209017667555719620597024885236443230223625174095508534557737365993111415624886440977512823272758435352060271322510504128578744771677994774706957038852254830942561302704044448204117833052516381875389541151673227833092280547944207389518913380604165751046561100094225337483097959790924298212945708831015987021169063898714301845990414800697885647679731850222550061101746304082449705787217863837642101054384218475295035806119423363287017293285512947009209266198238200497769999274977877129513898754185217333914676914591579420872070976774233701957723596461729579789185698726105595390910231299951617102695201292857917486344339711773186571236378223260693393325115637281384489835829476605857512879103725895671416404932780473012969832747633449725536947576446961997702222441934359809928115735837359438744021220430294086471821266997941775790057958138123196218551885623366679336590134256969904118829398689872393152801738552935780580840204080163501600236466390289926713523826437697410831121763131415653283777330243373063835074554950381838655695943763777050122312651936773230147081774584127364893123947183216885788412415193773021836161655220202264489993509606831028758566235192753436588661978294987085271600826993661299720603756936275073095577521648018551776052674984473198718680225109802393512213159857268237396782781783115399027973035272594340288559925315166373006853996919207054214265888908834083817826613445206932730017598341386029887551146306454220578263760786397130521210205198762868039660578403704756916173299721754035793333962040119154873843012160074366371044798678740966279490948906177255637452257106154582582710873551706093674204549365575623609412440425515032653829410173633999857635061447731694541290217186276509249050649229338213420788795286118862137655643567139800322941615755021685455507321120440510774593442306877517086605481549119876672481971348937723267379953322590702673266185977881713240383846311927984666426060440716873238672656132627343170543243703736183325711197664928353503038910691220075569257737112899484018111116550900997032368172860969233176000885410057365088654871796469605400012448062554902563287302883642379721395675475300799522138176283144536991191113493144300323625818053152096996866993296850397062012015012752841460334142532225358325603448039451961479413850027052565652753403743336795443912747362283229136295540079651781034666567627562562617163260014822663494086416839293993350719908314846284822856435639204480519543131182674494425221684415343878745634861248898984020717377318708144184462950230748321826742593045866655991049906345458559244348047966943432895774740601111253121257616531818600175446205289537381251558947734281208141225770104469718474641747586839311331858855698447557158713696587967342632528522744980772859974814204461493477109571239615570475735145397620805438011352819081022688129773506333985738872103745501732647147299855233688831725189560684493782571505697392252951781781568240285527685949002641450044248936358552731071579327105300778760156377131971411657109820057161157554885919105127053522231116598549316473735433850649240144390205342086008906086397695500859462805124693852206296278970381071648443463712996873711079158850758602891481145791803584844759833081128104794338816606133964248006269481722036409599439577362247500543346375950347193042053575010426020944300696712966887673857410730295991971759015907430465000298340955764978236500566016768840699675394069085514098919876335926377978360689042304388832403985824703680474723706808032404385161368517911935000807770419501413495058177480272777894197146197241392251313581253498164000853433448629682309613309132817498073400297282233086098670156677538370639270773337430719589253156040044982332957030377001566097342501523001307048043770650793465355718910887882380931795163708207074063774866366833245983861060397307674540681065438993206139474830682967394938956820641236909709445721806625820878440056464880991840891274675545093691020550175572497149227782454599749503563446325400588694258774061626078026824540168453482483365345843583606399337531970035062755831369793013538775240299581961763295061035885926488646689284673250149965342803542273017389561072180272507397307916948023088345209500445402626699132600065360938419782029405814888445771629456176636209439369011574344410160460073273914464546061879140472618510604226921022464445921275070940286075271943322401054122378235700143656820837477793612549143795865138189871862855450473251665697068950249428849462411719800685695270884388960596484608624190003266371645834750639588290233864302996226401987888259949180252753522794451493000489958768781759177356855434540133519970115613903173699362155350870702232276703800190478409314811475488155188610307901939273240637509201511630066776533229225538841104103489943172312437227818528266368537966151883713304083120365628459004886018664989223383497713930593313350644676643476195965634636574987571548720397593003345957116047810627759114655997377310360023043342499374829427959697415880495535795124973901116450598956153979677360880873641290358494326432727972580473283653539873247148669243062532695968584397857002065799103288335969468321051414065286521343383980487293529941907443017938347273413924267803800482948186613605917881354233397530353425354897708009915863819138517143171041104056803065830265238995431300665756134873937817157164375416803455510234109435327238832099221651136602445033524861074529274501118027496047441863519816189657127119463580742119531176831123096596366195881814817331643026992027518457812514924073936578761834568963962266029019212664860813529586378072690222730672847779962996622673858218671846790086134650072711439808139747283212366254774976633841521494313975694413229558542669608329517555231277965918227860213838698052372057764246466228386749669405587730825477189491612830965773053452248701359944394924728778024113142305675855022835265814755754727420503058669533310028810987434526812585583636940122022262258765361637663406600763030917530373962129626192130942159199758380431536908530965946560337481374415524336415124041828683412053770245127784704774951014370863460658612316342976023591057041768246729916717362572686566740690936763146166226749979073647141054490886578148891854905120470990544419901451663255362500198858344717840728210231999625856774461352846115311120403604181940171319104467937287279578511331925952479588233228289720688703004002607842456444837315210423092008400642277670312958080035460600782842260579155732213826335477246926378336689846680154711858366407124953414379073621104352751358597982392624963667424824077076110121339806194640895739076989666278633831484655167619780537579664950290811251719313030781111748481505941932194748927862891052357438194411050958436610524343802469313745087483015357588292547407212425050633417606010643709675625505569784971012754887912524984594650677993651283263871583447340994800026821213970712755931798030344390326801834292134674544116988107139044172428423884940552183735270496075979865556672590758818661021905455937338873271463621472708220186208097026228001610247864939916657537376630165239903763502273511016097122229058182201477005928318035942063727285427755022387893432573117955378878258975701948928901217175339853379624322116450655428913316181824488427540779743404967561485589398542116789069250915482086544805618785613431502526648483297705990639460945419248855794720300789262555587776387046990016461605483503251645496832654450656615119137374215047860367586904323514845661804382291589348052061608845973200713878888219943745606988063623823318198023359418461617492944614115712018497069492123918151377763888291985673019157540863319133848963168974625351054249601002947240389794323144955688310684277885441897974039367660035221868560273700719888874826306136465577575821569851120779014537773051170098396374668132854729118330254374071898622544286392044336407671395762507876308067776691549896476816032725650139076795800830096842954225654763559611126321985386848039433745389273999555559952604379015951059860973173989393812138489233337145303317424782584935035210028299279419794852805421357288207058044288726991670286966165618024930266339689373681656084829539343592678072127787305279705788365283219746998974299950410044067117063225181176979576009189579282797207351254883808268622344380723713425545292083179814851141116345449315200392330118477381206658026900834692037177633897904025752816766296420596110879212093709260211239215649231477994389574860056643689735775884343190880877681302654089721172171362186047543928455425443249510187831023186611826386516379922199854652548134598176716733216365196165970501012892915527343053007176220467074695014116476157595859606756064745228175570384917255964476869905323002680254208431159067494809218239108683605646957254808604657695916777623980295772757247015335524215595657550430853737086138809314048875916521433473769886020930259045504843950120085477378878747343825463708202590756380879558725144920505667822499473376946145258592148639130993111973203541411583358688875842412612295169702225755984881073921523519039884571140031861161611039218084078579438584699647380712357636716132739777783074030485118995997323068151385613186292993309425018807220285701284154135309935721852603978394411325093703508973332993150302209634122822086993775440363002899782341874902021433237286413714532542708730246702631443286998879876774797920995632815598141303280374315544987170282151472033063543995291861302087978287803289360315755938881506936216859548437556077226583495239289786999009879118602917161308741766163805361586815440013629543986377462770000922274772197329444472902283065099925999242853960508515801641560818108568177747625924797527625639478910944003688839760492397898758847321997132160243552828489426902413773935510289710515301352945342820779332512790816579586705323663369400324103913969719491051610013696856099010463112947091184692577878604474928791767541916360598606289391622151816882286261501806117625413388718658948527234286423884168000772574590052950020260096046234579862388926039613541564392252249108665023509964855610526720040719833805583988287786850805617198250869100092479224248011502054150490591674097784408203870805831127338551254606534958224878586035292884295736127495829503540207561969346871104873943039000137438433096219487385081167743238290919950795994484433184124752862013714473832990327511366957372017593578134425498572542228238290069515363160882877728145711155072918630037805945911217773226927114917443278644588037407940923835209470259516276135921310419723899221182518107761493148263232069667323963996600074023886068033286107637269540014326636187674373989461410754457420582824740508765846833583372754733534053556264940171998375871043382028402711419175850159992555863965617377996389700348946295069284103187626075351258847226367281893952045998780974562612722027864046140622141440451356590940350555077931078522869505679651521524237732542382383814657023315471393144571766910070188506883261252930855287573970500150047063031301387764151008466142814690201262730386051555365780542786216325634018049704356680533716713523221525262045020080497126502112684986186106545987381309300272662381126804395499970902789371310442093595840913547253860513376681205276096206606770287224598350190021199385242135620499664128965001275925844199817082172636240769015872448385566631519834089137636883280539555538866501188557798737382594898435064879714443348491716202139187556806673962866134082461595402196943287631268498787420149379069017697302866788218110851333739604559467137741232796187916298664307322053482162256250941281598937860558812349109468413890413890056281203773024039441669764753211218150870697414986741027246344603177394732350009712073445211206613476562206046805046676178929200083249967952140536416458198276618841146956493062006270133233848353512871386737438580792675309878808579056992270513349412251831303709498694441773294386431846057093726608674516500471477390041406437549292725537093993186580076669184789551513240494839432574115509454795579878772030728245186950578927512901640936189862994889055192352736446684346686622195190964527256911675790659865045456345162583000615204253881505134962842728486854078537509021956636251413513753406254889960485086945265639686331231959141749145329002457607965317119821481519129503969424833846200795838398852786011958277434612553399074999487957013730395783333375212719663013410261769217794943660832297237758670317388704148046998853521311946098750130595807402712062840439275533802465772574219729090263067414609335517564157462103231014972135219065568484196239157068385294097489779965069578608922893357070620973357186269647402460908483515754603147320255598016850111857665302744816675539632662849311950663605364480801085599880490542327421156573994561738841167366498461660670952247331148230758543442734479715283664362480186460046308510879511248395039337131177001918045083144150153704403631124375620382551352127970230101752215417998269055026749749727540267302909109796411646042242488045786773454345436154931695211491243864203722919915629946295636689630782444773275231070893276927433106999827767960686656865829703429512264679490533338340425214067659917841829528710120709333723739193807745040667699626844923537305512835812038763926119924680932975497958644926527834084008042786824652865447829951652247012584257109578840643748164217615721029307035669564741815794309923852532806906703704676510433919941980206436334037087703274465449832556724121275626170247066258791209267917341367388194873384599346590700838642366772695162761568839386169821892813937043178278503121559145040595708172046905903784342421553946847594287547506692587229813234572463978971921898907246225516097824967248321246929888188157291702894088642462358520546028444538553232450041831258555043873848938017065253409518706293485467266552321719564910385568893312547305399743812810258194801382503932872824699328159279024431515930899186735101927167123660507700281598432339095192407631859045034824252043864960557894957340351542129978707065975550289206354974693447562471825258850888962266171150209053915977406198691016959524041456668059354616160778499793460695935438291948172799250233927080281674528945208369105913712564840559862849596828848209647977607880373660146934919462891229192444781777796967339543221774049584351999017764759371643284435880187221782589777483718955445432052810585296709060383428610160169951648868217770194065854683624617237221423087683398689640957234599877006070618634177415435703787806037460879776128115233511715182368949282544419983833737460323434267258723144285112435219681678708359710328383542787084056270631848032522425495904029437326277385942312827760656023127957572326521382219680784105134802565088801977511582245899399393236678405079787634290715164642604714420301666174493907633210457543739223069556526681867569993893053282442517199618013805553799222311820150697529073467036471569921692106413056730833084642904382623981439711937478551001445669859915375762684123386970187496583419911789550001690898534333071074116831823821161153987956542847078601169134980417731974079800819339252811429472634170245488764525764473359856605342081195874701570421566645092094061698479668353709728702622745184629652912760239821746016876542734154071851833766735356831980232963057861217349703025425146878241751961127589073681919956060237615300870994702511937467306985936728421535266146397839183453629882892737552534921328311502226210569394864160342933104275335282835325831868503277406411947984619960866209642564659965000552934153593022600080118331667486574585085689400377605351410317163134735014915137232441990689618513361969099705996546847345416480218954744819118804715899926821541252618559875258021141960352590939960249535375174705008003195468965106744332007175023768074581765368095611581283815587058309750676039263970079898499541999694787831279125812766018978159201077589938385163560754139756395342443551779626235567415452359777376641352022994322712283172427078493920243057697396130417954200570155862923177864175964703828233275094058783674637044310518486887331266202196029050410319354646380770060839662160164083351709717783607983843827765580793909282868854887503263967716650641239312686404026135634862031926965923786599925903644336081822310576204879651914856044991392998261342056713692148381076645601049758867324910157332940523725003317298551857331033265337324182728248484899616252411409005153679711557850262582040197170750879128061382545735574782039800772041202952402114707905597896386159842243800278641887857782091429649835098335477830014653718435019955014278920386944564234232852284465296952349158717257388204496188486640159904926072148810078436348486746524191920522070424741593985155065915958594016996104800364369613711702146118440088424108889453486104282087785906012973190141721013428424578953251670450869520971668380409875639414620407646118446233633208744728095948784444447359107433003405536259152560528063873401567803819323627947266422277774811589517589862172490309903340295219035932333510640962594724732828939227815131735597525432221543921550388626783504928835437263003253754997853875451915476951275793697351520026261097127256327509389834566740243058513148550279535092631044706337903595138513624927853617571819001767698548061967707615128457131799115604373331525492760063116552846298223850449713374092737939462523010368813530785997069118410807646628963188426702838081744947998015671927443797061975431457472253337416491288714333065078058073282004786441671774739308394530242126508744661138737287619097107643711912668584153031962071825736770394390973473065295688343399397656245154257108184725461570651983156334369918575363008635686962868003689184207176439745081366292653183951926416088386591458152384080616330433576531869320938303498079173582045842211062672108764338973404781724297741458650047611028343195790142694207416373156077340679742084803568597717519354486668028926810018837517532028600177188083877805799940999077917542778042724938163310598100659472919785402835459789173601237007766836721083604032920850320860254553878716508210299934024651530240401555074724119072705212787856181845624804889405059588154630056769668704654654094182633814192794419425066494756237050234702775251827922573632105203099075568956657713056235586551890744927836215545869626863401050827764505803499127773829844802337684387124914861354511282833558961050384752569524916499986031942399453813050495485320779595734434726687205546162073919645747968969671034038720303180896797604720102886583289646809857847277072338299378674045759347803351282335750213296648688136881431933385519832262343634572591843714424114847207904097397565675295178400810819448862723667718645000804706085785734581944119693067601409674428106196483831683500550652890685521555094230553090535107018973545930948329814205960274348809860135357930368311298064044067653453996052547690946413462743343233538691680419975489307625008878224216797339194670938547540582253652547346021660532072944981622269599094058445261947756019237845191589709301702259399703925996407729278680378961471594568535618297402276173653766233377852253450944506093905782200932890484593017911771339863296776307918398872492404278804115606754237241497362374295335782920478690372266545946994363381838159817006681110447894069182728331282217538288416473096562748262378197786146340881765171601167251672571985126404537486400194360932133654024538146077353851040273586047522234034947277454455574975414795306769250884945018073368275328543610291905539517001057532665043358697839954545026592479187391937419314457062421917422792107948750573622785040874179795100718608055290669729835871838936434550279182090950060965852945361158811001507303392892864151004347158862827413247125928756621552033269422620578150654169342485707636346995742749628653640789953117956480536884291523686727305246253404165904156615423365016706688067776578696006740721559829470824965477358446750167084626712205044700823372547709014148736528141192974112926329454656401391556121064309227117148783389855649774793531992427906777642921181185557058576732429949656411912000819821432686549789354203570905979166396122515540555619077239726898031655779500799810965090147525333241608198348631774477095406081408795588669768056368547773222171792796884324841080919548242930661991266411041378366542309965449457235514636685756217730142896837269001572548327531726198723462372717478809354656709032364109680020499247084986086894162018117693269640975360171154899808562158794235241752149155463167660935886089198469154629883826066022320958355406615258450838499695656003001149017731245402607737436517450964450326069797912636466424581866165882989302117619068250472094857082768118668379873203562287238876166472557198918872895078106810547941848381902122783180564786084108629741334976134922443223119318996217162048330611336780742995676875738304491898758827433928876972828524494530421815554982436832149654788509210486828706391611932428797769697912406615381528218409238670570556861022141813046388909276565606459382891576882252152273442587962524280028488818417710772293547629994180681255879895008957799144137305968935793421521788562525246025788768151603368145783601878594120775996689534883956683268560950858687215148605606559028034131605818065453450203732852086706018683010558693421578639558531711278376618752209286284417947455454148927321007434424161395279997637757680541343093165648938463174448407987706296776787700128789769759995287853092809146963363472389925098172871375232517601184942868216643724149057246007712722798742756003488056091558975076081051976613318675881040810147367420305027458613741761573810337652575923807942296556286923993833947050374155674954120726177109502687563819305596055714053163166596819358683166584414183594825317129719984352117912270276098747463075384157179444039477516077382229749918263787344842973437881703181233463037814253525494405746733086103989294036917463003138097788524866026863269749228264779446977302974153449536613785755112182303123900138423048557790210490474376409741391201682200344540317226775068573000121724273698942774929459979590546143902571405314021275800129809890365858692527035355093944298930696779910188205166222142666250205087693580740000831743118409152432537113909379755043819611609300811289121096403562426171057374020179908627517035708333341352017356868814766947212881790147543798983169710316622685753269157021995038537631683977548928582718921424926249279988964792255857897764265036354699246300006064973435788284880324939345267949769618750780663964020097685563803546191802893604322006785316097750950085204707402340839459030788187607608883059289952207024977151245950636878602306243341152679980194894719552230789326215113719734126613008200664258293219227046125837619870062291118769404875262210700680002605354257165559610855514735910944300510841371212366873306812726394503169001301261169970816392333899282022166814134365325961866859617231243065288411556672748414872222997215785141234019616614427723583142859392412735681733010280653986134199313973023028783962655108636167375991861143774685035315910005680702507366055296943416182728129106860995137516145041678308411027411154922390791464076191524285971501350092324399859154000016972623785941863332691058753331031802959621175242723043314696817685376470641016453145897642586273995667485190465420779789511041148880749243530206473253978701806039437685753820924273617205587407290251159763514167096443923287949674119765581074674766326517555976992408363822259862484439971927684162562940328885718264064770788916043347073649388033096231779628434044021018897452403831368190926415631493412028711847592309377598876352971022489323064625098862613378879978800978663877468430391197591964181091295434461447063061693439282225112713072079976458057575034078485411977595446897293313614207327134185182198464011446695315947627058086666538484089781780127315197234313811144442666625801388960169777437885002355466145188428947952818706452205631318362452929004188105785295627997480713182687219534985381396172569723566513692150249974731382774924935468509697930021970599857330917602714502021307623485149552663315285588543260552383060808539593851966907633962676016180518897588178507755981913418613708516247826477529735790843976351782010519708373264917243586630370376326729250819517877613098341607626327351403089322343954377099348732173957651109884266502659449168691618337862324067865977663456022214616347279834703669744290951923254803648776218955341717826259647377453545907566588963430964307005003878095096694094521325494391554483769910777308922142991670825756191841892218857503633913734463851576587654975148168371473299885321900683505311732390495439159036063464434992259392350972177511467372931634878296387077198756029160639737330550334296658156836383913335060353923329901534284489367560549990524997267379796123256167441746943707555562013265156949565321664635122991730476246567284835379150404481360554546939705754996134589108771217838001775619468977712258048821838437141048266421319818842374626548103771809013135165418044335135796507394665187297485635664357845176971038149605877199765843588442845908065314655631562824399727926397338990840501829800059146526740319353305383421247547961902423521786023038340177807396767474896684824870130599638294556954734671044279846222249926595251248769368272612982076609867456657490296018699153502306505701723158583803267007231118415900397629821445214352293160659647076236224487353390415465935904469647322755208031104073996528157523172020611109845643972258194801238957226734999647282687671544988521878236581371654254311708497353173270906421981074027429257833569457756939160651985040252094205302943803703807432616648596596126255047600959740870378056132312532304381548240715532827393900413431731620277733266495346893869703995585011124492496096008193568453470994941498343167469182395530856449051516778188834764039333678285748689554604411032090068815996035617301366587145688644200968349528093132835243704434983463301465800194424139572171262332054935916517693402893958970746567412627851262417476358489834203856509551119800577755377103967198846538599303525678130790593610598265623809881504033841246700856480841564690230656448705729707499511905501928770666957650807425212433813831530748910934737057387811914322595798470968788103246754733443786528392569404353532236696843010237725691598359716594455879018624641113336939258856570994572468150868063930427266540668788695632167860275651626151578876843063785769344978018896322740818332452848296308401167990480027119067929005487782766844208229364258273722734845901245259587812913241788215202045257892380410836321025645897571054320290213451138806007877325238649546747302435485640340881330651064456934445406749373919201335694714249452661529208268916845321434052643760686837040644011661499747971399186558311245414508366958913826230454076097787148916094933016102776564117618063963261820496007857739360523930030302131659449190084578088572982077719595733368210463364779166510088744030807695949580817995790010262489793482036042363345960997569317578839312188301128239472896180310777422294269497982963724213593579070559970692891329792192140295190026929326155147635091413016015551947088653724962633911515149510477021811337444514448773343572376151269932099286920710691975150911236545290622814705214522728426007559852993559574177098987581904216265731543476382440281746057097997822138420235661331092921425333124220797519494304596229135964465120397455705904453049534211054314197754542296925561397302109153423610546821749693510089454644585545645074311069781526827304558820468520395471164796565278383999827928429786235302467531930332352251979595875288376210860095838111170080813510106968203239705893446514731978493350951209893184108752568276723026814923575523265217970895615091042215471954096510075460290366583721329892476454379756079101913456610906300317426342022316768253522386929107549535908582718435977019596274993414431922525801032073935774410742506886345244373141643677056695053922271055613825727701034041951669269955627145561452107530516996389191204129613299661156601430242045180675303195754823241088341260404625516725331025690974518702663498012399296323604767064257392372737608105666646650356154482920323778250517890356535121374342734943056638812189697141864432200454516590519083878721988807533764807152328146874335163417649690324552052579910645608877017781628104325880201440850471889369420168275213322871734860011548902615502678895266601981874269189717657014324099222330321073820112051694346816138684445916631222871024026778431450592770664787131858189875798317498110866308553243055994347862266681788514255432077974342714389042518700220293482726805470294823246521007238574273048662961857344858558873245190478041851679676514181539323271004714900832081106379307617667403307266382591178855839196654482918716505623218223086347453389327380541635924299304303613561036524592991253093418367408916686339895507476324898857562493055537398190528405715911061392136878256552847478070112652021848052484537208767224386845201198943303906638237954848594861018813482939122422045011428530496100668905096889046994031365553082294132051059125836783571007327089103968040138850978091379922076635599827366129191394136221721666801589378326646663173626848588504115811900657004091880464437331887763085617922754474253581978228580350892090338599047022481980695867962508058051829984301494225442713897514734304015576064355797205497272889341542640236962285228166739343311776543046197673415032777268131673507755325880906410860545131259612086449756809744190051911482607284680266294226928169876881051630007768929736812806308811846298193673253092625612137840036074605449666069272341736581504740730370100264790646084018608823167623736483716605070394943581081253891439717651793179259120622752367716337499908746514427315852638140318298111010415220226011150997471091025261444562364723221713500496738432018837714059176397028739267343688020141488461192966482028228122044786649361478229793923452243738861303623472437337699715156456955126343392600156955161609716493886382987212853566620114839165010357687743999003325946629357124783953185330374305301223648242324811858901733369619409648307455718180187245209901432114157917907554656228391885533743103939986440437602212315766789122170875629933838175739023602654975600615984131236334558630450487277793774679145093555852651055976991024079746853565745754001174962870593314531618620934457105252170020134984556152951600452348864058904475173252725057012599623523382424600927518899286752110146574499159005530329748770058769269555443589288977749650733940723241441505114782072505598742119969604766128321857012378935627368165335357059476379834152894590385724447143816011482117153397817122041034461904210279337426628145772586371723364566019604485315098335629688791676994750265827117960430381135096480635452936002843173152523375331120025522597611372572228239348681758401002947910864932686240976273982572136571122720022015911767950432780524708515204342510860256846170533044784331830192376139334207605201251766952848053541574413161083201563074332537685650747158993285518709249752061998786774447488204445238154930012596011251089851318798650754370303423632722494193494422702922413251450671134152227124100110894663456070252902700802787118865121271352050009075010833258627955786093486741881740932232987704045517181930055619242101649025271729539658979637101231167560371690002014331758782173301523005796829947556781328892784472642458170097664480956585166977098095364455400754556509641134776334857751119052583856686397551947149220900763889364564811563438453077887837762877414862022709538272821467977194826825202340848065627844274118212066859001689871893622957190557632672781957792889595580420906338645820513887144793613889314555673951737404371208815518360094899841557059140856017947876715176402556052178784454642899840208401048057009601001026277042668006495898143516391708727471491125508477192622020718589332619124866597655683228658196903853846056456805758526671679956171529178893258704103254320796061823005123323163849056549986631369440938190819240773407640126483421097504990379021916232178023876935888006924259470911634814014163400712794631603574183186101182068966676401286057100533524059414368104937440627694349222527412020118281018188827759739176698072104075698479269397372183746050317107338345403832670566297986854638651649116862673708124327162693706208137758427444509128348055767065245528368078362658429873683201886038661913455550678670479327908637692951907502473463038013658740875509788356667446939600199774721952791631113192861241595369434725251873205679061623088684620136227307159622010299781992651836049417114598958971825314207186003863013299806160718417663778369972370814344021928818799055904114453821336444769846006411506948942266384947762802803140564924478045610296330075542818220451701945854270522502281420977921156294092477468126199035222302505512615784132738803775112347263271970877713406638389999596502517052653456195271882752535043977766438221174845645285796254776700827607471007687208885493401880983575854324096367445891051589150637804841407027655760585406760799578592577208418204169326191747601671633068728360923656208561181932504386886233597682357721009109856060770428081534702933841182865494286278643915748348414908350711135986892173536599068307788213131439370829585662752319048140006076092619933912351856078335427343040631294782109064386281844421733468981678268381101742960700669314284271561467391894961086635937136852833691631418905386728848502281050807321536268617069236900416651770054726418045307068883445141821758340311971359745592292890344929329689841009546808516285688307338098659651786052709264856186457926322078809306531422133723823648309397932194736605643824890645938581295811388198319905474241049007588890640218727125579212583346519360580168605821644102688345318897980403822767103575847001060173557572866664115231038995932673239175011161383702861160677890930044427390097492246355067083689458996401630633453775697456948901744651264854494812277857058812844048289059150820863769404221655980396553055206527766692193989898560483988819127997825250658105465872219902819927036682297607254373478083999725602406117572899784793232112036355066967293478348098190625936354530143178331484088096151548136473131141609516514894056073713039798812464379188171818583575814439577346807079474137371374185170633894066365197049800081214608464482055809705621540321419678470457543918633541072506125605624786593047128127696549895128804401021620620365166435475983343525201256513041297052641600499549135587091871022494289174187720485902471174779023232582747865005218282256934511394924254869084255162240123463845259371358979784280847176249452234736700280111626234481601272604572378616651568194713910403453979262996671803314650135734434222207404436576892247249187956095137051735337770297282320087476373555792778866917064209741269080098979836177399584522340246422173992671285265751633286330281397570251301864920862619181603776670564978521676420801525765806470982306739592234216847003420882597550021897035291200540191615723339190348563945511004081871579714433077707565241989694908768224620101993270672875987502098561956142912865159347219932320283398301025022340686125232695721513767699768885871083323189778163178551388738881947597975559799691489849368245852355924192159949081033164551566824979046598216751731569459285547920543935163331310377521009408008295531480461612590916555481543663976191790480626030017752316916865319807228059129330362578583831005430848899508142465226567476021781918426539118837684089584215033503778574207843387193650850429063756693780103253195290938614267876403211677866950399838763597218899888125819885941633805376391498476211218940534719944336871574882092697355456477892457419339256915569308345981387548255234159015335687303159520035880222305074208931073758109056399081602690532529382643033648141372241866135544714241904553917896920297484276516592591705363651792275998076550707965956572239786677544226128441120947814486232965333706406513445880157669257051243951505051512823342316594130780970312207497461954886680836613611507847809393163982188475168736426848570991640226890452796958510301942068530732055714787110392078256224107558483615908641591946391039016200318372528358177211565688990301421424998451499982766542919298236190352583030134047471801324432568953913205123696338650250202006343917195814255113067309115323802127682526084813515282785369963567984692221766934505420674708340066988922336229342177203528331680617102932537651206765943649287751615010502288561844857640658744672069990058636727311359346810718557784791149825308188646529264027661641564966262811709423013231582463186714683982570263976728031252342619196043951289803116113129601058348828423622292114087907274337284675891818048294267511263362796442735562763739731268019037245511443045763209928711878687582080602383754447330996025786980842377976514551029561564982979726930149891700261151700641572341076059237664028032638927528090189057766165426206164099468922144091327182208301695563443544571573588522187548542233143936131269763884347458781479314579267598898187702655921662175775975272705650063189052784408476509523545863782531070206486011443501995157623376245960709240839709403297168316819538241121592691529755478340760506914123833478450896604313137539587135952150832735764638767257534639620451014571095165820636795171410147638850612904882048437912008081563156287559886429689160723096740898169699825982931061660906791198106262376710715368258442251300668388342644999623743299045683449520841487278551828402135216795348042747425416935105154564445926275434782845973160142143677020643728046680272882673335113668590213166867849017743938644457016470640168125521658930285064078481572742553056647200882270865742849289910978961188870462784140777256280287885622846937543415182064231683347979886884080820985121694655798647017543945091001491355418245201399225660747597299894559901630163595878581799534333091599136436855231884922887568698073746924241120834908342466181946088689805915241108458364478084687275590651661357370656511546044370485164821412397966065263302796639999799370598992333054143953372616110780452101470654473634596093895512321076987050755782377615016140531250330673120678170472628410292101738993998629944439174887162147219767802080221551909784709110990489631766263750047725918537978545801699883465342618841616650111044399945611402795641861207680333579336336823937320362345945514529751695924142613177841424903848779753623572908250432547186045899169198074928179189144536766540859166880264931827098269948762617636323517481805677470135917483498493961451430256293532560462661292933617579334975000008242600489830719179852347793039869204784326874810256069335696021417911442540467503610049857946738484887235367648973336703565839782272627276605871726875581306073725955106023571253021974565086099122088297606430026020443613986222229373218635820967703636138000350378744533175361550034643165338866785735272199039021472991077921871865374756435001376506384795276016527253853552599301188838572309488350688830980965185782834985696383299916804062333534981984491364999677912499359096811296012565816756604553102870100938564468292418798341912127626804632683368827498234003468367062321036540459106232822845688024402332149060906724976393859688802575407653728430679656070926665198131751143090750901745126025313387150261347082287540959830680726632353149820396472275236012201869133755583955605624515935249850615731752490671544191362162719824703484375375239453515386861485847079138780323936613045809245532398288033795195112975503275605540451673623212408509711044474260583280121885579015268894081512722695936890333770482876324931656317285783460862929168558150982561022637332169009654727451424452419122000950425259642215228424198230791900668970714855055496806040216291638329893998342394534216412483498570532408504679084007704543896976222025954080578206733401686261462031586820408152766331975858436982973576150318422668394118423572339717844505047375092223625245664569069253650574241853671109910144330957118003182860073269792619090959266310982044374075595346187197580381008367152765345264389933384433395347016773841174843626738235326183038968303763625317380864308638392269504477383277075373040563011784572694228983526410197575032917068420947482323365933098036344201575956356384190324877160557022779796848250336078313330225968384201289911660349775610135204720884993190856674902771366772401123065270921545180473870195985132838550250201172679389947917625813634225992797013628618425314676708420754837454938947808680048659522499619028593049152912159762770019931987753188502902823614279751803340840672243133037839689038853668239754183526617670349902130703554936187451299598906081636860052227056026212042984147092304194102795187981533856972767667763228376160424734040071642737077218951840061118327830353589634058473728556170143822591930572460826560779100633622017088768500596629407907782770085859414490619339459351173692230211526839638630911357954924447069879970968050643782618512898739924490098408855710839749036225627085009161760625819511411663504246239991375149792334187951107348975582791862010726573756425285559895196881635409616137441773236293126641352969037976736116097283029968947773601714354849509768317486832017884735637349331466711402297457899907178211934501533791685300819348592468928170254475652717937479508537440573513883704484696035071195747635153924612721328958280654200197661575943479650087470954432521071426654325785595131414533776466392681952719925256311123851878267439083956830622490555925706212651747913290334288974447932861828132051881009402593113222171390401628433677219659835417274760931398291982786499544858166523162917016405843815058035503291064344286316288692839211823295199010593433250771643055748917489669286505474092243913457217480639393817265645967334144628098483836876529129921438248293773084169178037995654375637556000931228556189638611343408964990348404140850132376646571065862449846456693698386094080313473371571230680549824189085334871057259669877057519976679558573302694115035399348574145645747768364867237303576564903480280176524492158018063601911732697992099737895324649162139106586388352578397890817392292615828140452701823002734080982731219471085487769677971116265026524501115696051792475897840126878352148501886079186875264683503300432012531946981583494784103430857817482915644015333571300306771501135225124758197278301690597658316605869685324923921494741383530112918312630425215502500666163172621033820698627877552481300633810945666083568589595243414726614874400037658014295328207673593401118897460830092104298130036342445562284156266293899569129328074917588920785348576886961053246238253183712708344894990523388854470735186307293484850246136105556898496303991673093299123183424344159058373986478941207843837789290780732074591406486057217322833012441862432839983884852834087450365922626119381395387256306554535797454136327017213364627005614753783689743100600406670490107616534967375742238139518665672651978490033787714374729659352927393041349128806909620100896163483814595257309523108738601818631884201356401781590736560489366857515642727968155503583849623897384273229167718875990268761251868267023945248716042952863484650287460721018865461050574135393595077914520970565783671533811948139428564230773978348865934079579564960845931429732000047954638628351962449332270720119754564203717634821227257225721266353642080746356803073344115474783280610489973646232561101688436337621011762720906252323265681905510371912830033685149869099152179536262156125856505454146350941854924159690412424459944769156886186935585968031264641627193623442109757000385337669003564323086079070062113106646041785622779045842645949332659302762653239706958526618596343447507292630165600597899663748746403352860366816262162221352617806184443903004639830635882407454493488134479192193698817826843574771327406266310479986154889624876386848821080869675787487839633205565881363879736742884871084521688702035122508682559982861355578004934873382630582775885455718091180094300096650415609815418293832607209533720089287519408069619133468275584026075414306101050916976416752871593502157130912053022466243794078946946524373055680137659568481192122454447370313405836343272584880668748497480169869506989630787970452417416098417163548718184652414212575297042981506656320429765415616056419421200353270101067633640258583006152791597001727605699846201826940074476295255084293686094861723673765175382728770295354810895053352057693918401769501168412903781664339689503026510096779065026573661357107666121247401541375292941380197600136938912940150214028081580772143516757384570450145688108878409150638818497726537916889887628166558700379841165354094398745730400045103569163092217804947781750682499785716616033089109084737474588856519981290761076820115563188885091221241975712629947485835657151132863078847219812118430857346319569354946788964324621111784125925961116591333019387847666485903021306631839950501636168444467469080570980077196725009319995412272749538377754282234625658935225954917820822847536347311583148183484646473445381514005135287786501029760679729400381880499979047178192015090405590938057082782783771538983183198618727317394402609147972015285820385413501188813625222688562456298166938193019895368514084666938969695521316597352329653935946626962021831716309733549962407053738797126918090666389260558165307489498359309747496106497524540867581891569228138784380952274044376253785123332865370978075845071666590238074789443425083952825918040203044209628824897979518510823899388830844577978934249751188966074264719206446481899968700184570767042101269272908463199868294523925030231939346054661265977980310624040910910350605007357445229759723429126556350654618680111899916431566956657918815134465667170753843456056953525924172989432591224200629700608468911079538584174161422513516571382953321622225820971450297191615718270142491998671178616853198675572876348063379210616222761226901342605238201842561198287826877376144636581339567282744546608997300551216845544506272173584571583516087691115099738053573624466903167914044032891956747801104906722410586384787388405090559611787510232602497428347900224247058572789006748224658448409423585254514115496495975048690915659489991948875499217271178557130307570140262307131464739081817780303747963184665482920440435030245950915772213307086600202102115702896181479812671685339736162173074308869128226369065423692897462080957835918124408914794994404747449901025344555052662671844944338452086243213819570253508350698664065927123240812983814027369297972173717138535650189046912864667549882456997475994307735966681062685354198482843070308055682251821349677367868059527167823807659281070161191637082946940290533817157910265890259952600436392667509300552246196931861995319051682530321038215421963287257001372528099674223652339845431110285766886735535479959303113679206235107617387363867294966288476519011456768851985102191774475335883050792744745710347052870809798087506163166482412196319936284026387254839511887783076895340772322079006991523378431936163830934380243961374487780794367034454680470953822824525687465397727783661490448127447755114804785753800930962217296804174849226482269191003049036546460485336356137105769682935948647475411723078568410914982216306075333985710362648603463241866202494949340158575788570975984549741563654919804554818868724039818235261554611226615665317090854148010659189037451403855153087407634520402680532609929021560062568883047192618861617617099994166637586561521200004792624613490055064000372130322447757542554062396660898346271919503989275431445615635010533189476693232271404549334162634310606151552542213105256566226252543890594183378386470554601700775675669827265396209841027743063700216713543229382334638411073043925111523598855110533931093674325864759609631639546584484623482526934082980341785187185348310085307887914220559692701798574096847734186989726388311663359448909790519577543759888153092408502357430857580905108619734812196319393705008336386115446919567219657881735628270175558849239910966626068906871878849531473245852185283983501247592544823069281211837595685724053186210977828107223667142306202846616445110645975516768083732423360898942677788341724167789037886818447094098732990905597633620686765829854878018422314636057936617043732535614756693623851187862925248309831665412265855776809153084821402384183088796695969516787836332675326147657096034787289547787599528159400652875409895025993505723064813931423611952924594301980271040493285198544478641001369275651842036780346950526382172667708403769338496566395837577262173333601141928098657263030609980998903676468415433734334478117301748873880897615593094564212713255754269354847461538216026892610891337784141463649542234053151497137137788277865910371272979759341772458523764486611037153002547423237676401923328541175469979784886648938010569879345836755169258105399990324706030729941629704059215724774095592170910433275449539013622326111102384158844513242400803315906278150203959080783343199795621207780891655166611893211523517365775353982807858492071622796342681174505080462413745346932746982709956188102265032878607408612880577601083259157708918574844283377145139179646483052113839266874613288340819433676221670447946417247667269716222433898927467358760908352977198363752642359547887425679772439062831440696149103068163950543611309079755063314277761996033275780623240949640271007761085774478365879293463300326886830470090445467795719612673310264773541831084442473310851772327554730775118230979330229665570808852111696849024408056097724980142093687425557825838309008188841658662372862429546600859501828156440421388115319013179357560467891619669811873280241742439678897262528334748752828894475985934067046374158304271873557182295908952778099889398773440294294733347873399196925745365897436245535232404218500614511932383255650945923886239638910530289847560568877575315300674374804999544715996873738680079176242236232086124975888525548047008971937898995480238296811472362070396309334288145005829297732167904862180071987432427681658597369565086258460909115856138941674141279530659088025996153815620687677692509271989017684380380419811269349061568637645581735815817758247026911624875852956230313626830313916057873251139241447036436432708470570100203882781205067928157414683630067989497173221101153842997125710897264612309701748171356333402384111543955642276306966737218453974360078609215273731677927308212627593204768041437982598806820853212915084765702205872792912684773558464604048978204505281387238651737499904204905575692729488313264798511478498561497252930526234363067172638619674807108881796092518144450762933730603883723327072535969570741420133500825569720577246534550436288940140690160506998693496419159875612241688687013558710902699353877292806999996331008237224084959832986521318455498087043022152483520696047412867705915614489919949834644793501305134147494195147773720331519231307792845277307176466200845583973305349144404480380550461227056455108073634621275878077255354261169393259871876119016322067675061297003463049191615319399900374552077595285121188549837042931458681809160055857486823656256101229128666871657232535918396747012777158878889348145175898459603929296961709252304389704662163700789887823151434196878644598378667857670331264130751220589616437962413061856961864506632512932275304417715331593326013165453026934331104287354373767002123406027270935094654331043862658970811984234089282416826181426855529800994871214445908388767497947532782144516400997449540011866977323320690439341943584637247245840835498392900954400835519824057205317143481686308492879499607632427963336062661375517101700328032975571347780395747301550158762689509294015801258902515764144947397332001947314889153654073556230782213703363132819222832817607332040123663706443970731814986260449531585156635662633021215843009906077377132144605969149438585523304440190119878405846947418377770244664919600775783180745190123967630831297816909112992391259926505965340654258008523182196298314391905031718993420200342392438684750867856248793208003374572047128771484344839048575664757669009015910128862188384119545695270054811924196082453494072712127485559531851874255136410374353413687664279770649162598596973186197624329817984554986817453474778261506207440025370065631186534447512964025255369042735517806511698824370544481340916406558638903065757490516964712573553243118827155838020671616238299221127042844243524838858828513168705519533825583405953348211953343496344966976226835472997353005989028562622364244242290798247411350210164201186151135411158607433137113305280813052660219244220610290994749538066567494562236301039246478862121744211810110428107814292390865776935232816079365451387279842857243700732423356656804071966544199467849331733813464664416674837301214814189119474018114842120753602709332219780031838057466758788344615342446379126302418048285021136332542008590553711322647595856591532022392775184158067045260227856807619343253475165528879994970447567229196768545365790100458347658003763939965214991755375959096639203268939058930257277763113815589681926050811845198383794980897687568288623853938310253576286581943961665977293040284027174715057456895729101981907457666323162006094633068059541992066632794673610384155033773301894085881466912470435466779491165091415624748831993321076342693322853859446981038200477168233404564601860820604316848338134155659668049440903147563256527596506402894512527144652999427770456955710868910787277451145428585746012895999508397275638695201715744945224234042338281484231685712682684265520661146793801910497786486224897043813324127500149097796601918477724358473129832886327519980666312717359986846362039018560636741128883183180501742454788208269383930052932963729040525711819087342112264310028377028663160032053295824920911154717789681697995450601617611150986209362063603230584227063003034034078238978936530864565804322255153980973509010248970331231208806033992910909453472979956836075411055014350614328755382820267161354831818354080988464497694382766274105643029689411009743322843240077014436758544338674549160596092458359558581068379040181376349369661719486187995984944017075671230377807243957624824907716612353373111920828764154392877274553627185043260950050282684680884430798346886489273475410580922379590938821232737565129847296825338916495551558596212385966137464471492719634185892847641079830469990494737458022486114737328158704923155384910549371190675255502729757682026736358838727599784694261324481414918292460436061043410736414118221066015050423756531190749748115807765321750980193785882222170782327730792912902647960780250986291358216658811152607503252899689824854848127210314896507123186947456519290442237405946158029575751540548483066052381898524227719361497141098901981211179081449913073324305639078460369978101964568660578181639945790087394123425043264441343072810738431228676511677596103664085318592238815021006226584533301432042629482292216636577541175963283094486471381437766168311912356893466501713962279575549573749074805195257141688065518146344330755418993412846262399988402081925046868355519661017064214837024603711136441737568104974829221440654951106925923420685334376744390781276522854962180821429367189569703348226905827838460444658312403397727709619623456628121212532263981149661682620098236776194450242012405904797511236964790239875891599255740867634999471886712462013881335914347114572482049215488768176129441076030794569714603722981128549071029988571434960974833766886316149516028530611254839239468892918968888261011851965273576262414723798510870714197272708829264384781590099042510942306976860302494696535029755919050990278411386721622269835141181650066153813181759622927939262122584279487724067527632104763985918595893932582341222729056011366740499723416502969385026679031495168118931050579809836820338688424566485314480101047808978147867203727230978577029147101211054510472081590717659691244295381863473412359184062290083853441230586059414626192210515781170287793315212071374907805788623800374674211587782047099984133011845007918049180991761392736003793228381980116861595491447433180646557703708812274966650086142610813028937789210402874907606057492207385172968032196990805989335009025550859326701355624353643687492962638817808503340487241907433025912947363075149139248560967736338623754951184607581166917672345706955640006729720102327575047859716903916029691662826194279144631803173632940350578098816438224651808691579608705964988497532130038249788103480489521662058312387218740074494291166059730295076527315097498762306330927237404981989074491501637888680498576239032021976011129777092198720363096193912519251990919251284565618742257780617663370365696067992522710913469864557661986020938551178154866986762990387594646745584272407558465785414332689483978092520162085519365707945348696900607479530106062369180634930788852841883638056606365068374690335032601639961964485074113983180490560454999143555740853553976145235514798278542126838573923456301222726841740323777628920500382821266446867064293361977834603786897709173790582776342166106281634147660754128154001233716315457035435582105330023453288186865751280024159332013230863877969378953445998488826527516912486304069474335382412542024909954275251183236316382613828263694354691472481598904460198621762587403711358185567645398616822975876490001373951917716631226460590496621616865374593370977511351408123601031522922714817703389201468630844271962334902745081983838107210239465885035740755440617843018861470407197763678529731309347597815414197226115647460233599255925111104425364401769327656913220316418989855636951523025669679174043695115306149903045245131733943765294389053571062727887156354793617291002404070510642857242418241035070391149066973776895081319151075209754606011938964373530592794879002133705018843308954832913777694525266443053632098771180765609026880782116350807510629104985905363189013553974098119490145103507372470198848017958684339193129863148482910853192474508231981272793393608473381318532128552260265154415350236188075748260583282365688049834290374139234079484765798465035258372011877753401312948270272223347056784803567769389868380649987310322570152642855488498374319132849404033616030258840392087597513037478304410826648357476847183180606423417227254793112826091356108372354981435698131348846950379462760612958632520497756375456544959888851823642368461978471955495422537964449748108218015115733847962056789993448204548519778143259305949974560776423259790343242504777455395411645358123637383217800946993658848047781750358647083299965900422428327652111108507571606333118492679465577808029746037368072320873843434544717407010073950020823953757493814327513798625288272948963638029774664463317950363523901410418494001686587561483587799841730607038917533267595284558077992674324407819849998787054378706277812594225426863640794546313479264810443470752015736104340179711745759737565950721492157636525931813355871424979544902586603282596383189373860444151308971871096469377023824041888252459011111679006440475481066238809499798507662824773521894746381506591932263622910911102517995320219620653791468061528052417801532065130630364528186815825394804963395465578540554000936800009497879483298566530697514019562116743633943492828200406171129855721593117159899593752933521519919694590319779047443856561987515843156622273742631166938504288265455880333373720311305871389468262901228883385490217135475844306005579756633509921088590186177942791913395702124293594021459957161756141316775118084944582179834260766701683461588599038077593609559682396453388063856742297876133940112446216425843242956559504658621449122840701482522851721178718766762825093549630853553508699702441282907100618851272144999193978911983558083602849258541683410783930436557604064098526660269586248949769873203809630865373724437361117598361664238106512286843731607801616773658940895682398538158795060738302005210025623389825274089028543199427448943559589177131912719724461113090487639457519790602536768154565877584401861357894152518787110541254070441392888236617024197090665387905588667867481516651165492258834979600565409312728402560239647753887351536949537464582706771247557052546137133355681574596510979966813758063743337217878903768400066794152773507360054712688144154799608223566106321928100705050256516084442088994103613816409588949215401152230098598813781149404074148819828546343767933953972431554794698180206598312367007250972367192685460148699477386851980923892691812352653901817364848771653794664564769409021217199652790355887821828028946521802213532309597448262640655665569449952361924789290937302215044568350680444369951823733012020126598036537166912304537277707855861275078213824086557379654116207711011752216680389736890165336260416016706857303579974757104575842934435504975386526243766967627036997508987721364922371073139130071827522470324050839003951256936899865141080285646562091698079889888875965188568606690935187813921096624495906735709149016695043547881104578405844992674685687850066241064441498576069112291555259958011856439550531581357887537577498208408049468504313144901182894442852134082348378625989339995034385290359502518972357271340338386476905494398801038584873354890450440284820113743613252856503070899972677123331057088733726644899334854083339501162178995327131111794803306249421555543082324897379605725783896081942062266546682186509491594475885879862546079742649642205670130414377925276442118279831410768151313560823022808297107971148617038599044889246722927042079082660981655021652208562435660146518048029674708159403015687332591810982763432944692422898469449768821113123479464688817552020820441586796887602244865707227786431098508360731364561725553658083126589182351778342612768135990129170716279788256785796375109664203863288984897104045890877216718293485300142818037997605893961173567511471919540360662236392154699988818808480888275679969876016487130821953854950466424590501941172632195628010281956737795830717664895323320623413742379575717404748934372654864302487628048067090840484667690461420864682809522422065024783934416366023292484428405588391424837623477134994815451845342005973206518441445008896102666913099108014017947959313686631828664283087252405680268114653890801845789485765649038279773652752271542013633229585009387056501963839420832432437634369584729041125661005792837415060396407490563118703414799942197325509482852142582952328990091515165368874039278703909381589249081851761922956245611778298533414783157094930285539318732047682373245039900991470806142970217977242906340169430937660454158413454330081830071795849177064836168006001962132727417153326171768712687578148302141061770586035547118510833690348188739725418681671883872328477524204505129769422336493883586827361935657143666402841624143815711617645110993957836137862344740296863762791582822598086128423686848138717050037563404036871812157315679802719233199316396790175645613164319001792038502445137749113178354434727687587930656920322450137514303923454444189375632821510043608180752118719410498958958503192987284726319059180652031843338993251339964040301413949109905223378817418257962991720636139271396732301552435101522893220130225642821775816488081867343347381417589642477701022357933122702633515018932500978853085606370622163266925304962423490687067525569075597520848143464717537474249666825606185472007432677056146221349171304956278746089351923831996079887292767658208742486486854219455675676676009810280228645385717504879209781362290969689192236158273977809331278405922696204921328119341485952745689378696866590176424110227212726824975053427998675066960442155942575139424355055617806618896434096880222543178357462295906786953204329395115411337413193446359071268621843847369018878009802011164290618850413006469329568421263580465350132665227170652858414595101708691824166911898201885894196203687778912016741354809754246896343314484127114505319816707929987732315137743272757483008547975902471507535085490147333782898655757784828526617998512931103934573995783775118771419062188302740699358940656893490930504246826606893546168854227345548889678930318343082955102014876899771624089192189777185967672644397015140658474568469355547688223710124488519978285168109514270416834790677742099262142017736954423047928185044919322303035196647880280193525022665147714610602123085506365760080669726746797604427628703349608582703467285298139434115754149449542655010352096462399274160666183781891114277707738251930429859656694376568582722560138694565290086016622751160923009276563737004550401216865994273047459513045715526210194255640229302730305613550741204342452701885796900805923831673716918200693053178168738781467317525935207445225042516097859990092790649705544531937433239028187033716671281562185789682402932021123355181536355373998638265985948006128991341870196738079714588077452369250742648887765702332646304460334029688800378584421845802895033944700879690736250968127023440343378236491648347054402402229381066043109851797601268158964576729656943008016422925276765634286843929496565486950136992188438961230018128895481309593788234147136320902659515075682511530017668449383489612229645318994194331020420969035422866861813018074461033136935877888109960824050380416338813059494429321876808609718981931095654892635427454221940840582245122257382173761903350480053069236988722908106558025869287054766193358144858725973100704257864699830123732114902702218084156927976828451936469244026431784115359873754249175088647157780398308258948898366451050167069644878955535698737017580247403169683042580637511806323713043753020742209963606274015323260386966703774560841426092433263137772659352196994547613388236242480522724435836797546186794070569531892287533658878899823860476117692964621577784708664058932364912322613285062130014503465621948448980800353820921910490404681641210695361169638271352826956952849604097637989572179951462873272402856372550320214037785910068191062130368780799356499176817745173229041675445518131116384634339503920946291589879553392347067794885000773830638177055382485175395939768727826153040762687984959268952845517311236371450345877767117045526915475574830597788642116872727966233985483053818853944807296043849239516505668697264935116029096162466921376903522653734819809318171426838234729795955300095121089585134735026572397316423410359238325886891271619289651601450934565150011244683370154029199810698943519752090727120066345668695421987915115297226567076133905736219541638130486703832760418992186023519209547589588190234893718689939496907038180340845617525230458339210767939494430080558766716854666391108213103340376921198167612714217594169802084398960921887449810937793465787523026801535757503211135611693953339424285803326521360625935267160540268648905477255363135386003718590473737993462679872457290412729741815572765248451313207957333615790427258924680668345986207955684609546031551367648669190759391414687711144499343917164443922253249084497695354304283820208762237844010658106090198019527946749909112615939548396145310117204885234432182828900810030040721594240751178591432522137211903426310087817598082945696038277893637805538945069726040017533285228405634782165151394864221953605227300551222170736934663482036758519355432398683328025779114657940374200621913608073025558001829546517091234489643886786951623080264716433797440462271534970255895785397919007976655750063190762272801128500982505972300364781120557146769781763376100462847152772437304181247713276126453756489035197559171775062640774262490836582296848732737769769415685934161365309729388883067001693515008951560460584871670174674915384527649131246554413048466069262756088076912926356517416367213071427520017521286853762389361979705758443909126280181732020509761365657684841670128746444972291878183671820613603688039127247970842732471857498856341459637206745924255248856280222400928239697089134661120601030674453164961845275619860267758237901316158539850965764932991214334666958108953486969338028171419573114185743730349692697075035489953146885763927184085603480382769624230181041768234415408443783614722533693490204681809995087433676147772161503704258960536682923280391890701094768787563108923708274769336505433986143972801986604212893217639361498358202612807767089149383644394963143581893994461104890354860668776012126154272206504965050375423129227049587333092596487890437201586041545059875832183676039346552887930188249480724375329063744521266267046907426163091544157315842292319112223520066541583075894999715250271153682364240173089691098493531283942142636200681322121213335872755958028742892433367594968239929056491916274830352940426594169581241200803793181245072476738684120047393490501525072741755561825591036264906334285119868040538843191067933367779449063604308564186191915989996600220087498695206296876839888403518064209605992395337479771469968344249383712462447034608912269871507905417739931906603465139014492248791217950082051208432674483219495157717556509986766939696424531160380438504320121854713962524170218496074270157317978442477366431527774642424567380796604439353234749874718658705694325908641742671803641615866262810533102771000722866793983075952201390167717140299905865673844065374012925696654282372837136021280849439096291742695459024506348847167732669104955307899547778852068281468809941611790898677810309483558507754583777137281680618972009268735139136768504260121105970803292223184254771185790010118200962301258575956198601946732380306180101643513912235494486010456226930514031463696753752389333135192545143858697371718080217401811697587390439665720745753906208654559107986925613604797422021656721746681902163681763201615502560389106347766677666062262430225724534995018109798760961888491383878530827549141696575392347583618256912504869722517195668056861788879434730530516065021314259150083102957940932419528400718326392716752802756531241064725110105313773472870119116597645808130159496999081036253541403693925506877983812610736150958333969162249882813407271639879126853910734272595666965267629910421764321360185199141057166207791323968960358203813171231941912170686960922165593832790479027509791269188314822229779642736144744444441966665382462544295228261036278930122763733677378034579431587960738166818452521485619313829400732054897495949951648358269116695154323803865962924534391801889204745985070849050145787876911179127249544173188845399909832906860666929768591666276747238850795107564789390463286398880406730543823753519199252273155048424494229478863243888675135261089608153585225546006635845000041857317945964759633258224770241117275824788119307125091974949897686545877090428811891086040002768467999571063259861609067520120773413945818145361762296554831017002855098388851239805565778976569675540207982980795726447137862196348571619832242035859352048047317995997801119165809411531666657575701373249889639146903715567523830281934708708155123269345715728160896675491487258279852805110424671738029289955874010393726766806615112682183900844340037111488671908711785587536309224421073413507383945537734551635425640625538485871669100646015492492198640296224185336555521090583435305369524674259602523434601466065520128956056622662277395333450709348030982883620126600131842672837982342299044255218594047606916206778623730152397160039892857336933935079921498764282295099213944760045150636691361590562211047500385833700762746743150285166088877044548034615739036644452854836885836316019799913078004155643943371289812932531733366015462140749081383999174047149083578424333039655523466568491294596755501228032298616937286617811055220573023676282996513785221294329081751788959695809984342910168305550659081737999700932165836297613091747248248451546295867468002523448445627759325352630015457262376205430497343744791536788705245719615505099968302917461016390003770834360162212743100916772049470273982839960362400291731886047879106907955673650589288800053427640118859479788266716565709884004979587342500697304455943134490408550505004659963484530321846143857671004217708225751088245999721445378374553728569527561355707704482426975741175261156274234281279983029405675317218878505582719662144911907924462588834600262228507280097874231948485112699541895443185985302344524644253968281838322966986765926424029462609091491285557179770078850352025941845598067242751583180167800535077109817516020378419175800336041631183634819033442867234669169481004477925662287852320629257617288443283146800504166966937009125300178311799750999015041375837921500395103944469526951957747032056766213816050441646526459815591465647832641510725234283661894414060728258315476098028991118057298093899781988472143680063665199986992688623951656209805087726390623538210131325506449803646530545402820654814236732860674242724833577004805844925018882917923587817976215629828143791202139920452989430891732526120997261627167941147501070749656256596196368384027178383098126581161030258911773538732649443938398264109129345623115915215969767672486067008243945048413031170030509982017933377561124618843952702974677990318015386348372235923895059822262819261966670326319476340249339664178745429785193793838670000326689639599403363682160186207820022586177353167565124989491884638918378147590131851381983551169587550309075569819335685962810528286494528440401896084669844557619066124031685675460855699042085685071009004816004411902074201632884337681599566679316266132922823280558133742159257208538855687871102235658497845777391725415505575427347055793380079133133717741538881856861162263857080800501390249817987845022739165233923799469511884898437117983052212625974327648861345272059958140312803705321391920266415873633112431491011893528225339425046277289362754549741829320805403872405400338953460565649820958977790576533500564790613433951586154807714146008127893569163124238834883682019705788761844363483062938946064674579663924011168629397080411331335773497705876428051461526082196120174705706428095549565898498120298841055561433069145229670528829000170615770425265851477401079812927058555009011555962891703980369316003905761412469201172884600745100798502565156567784289572762128787772510360642473759838203618279251030056332404121889477063908307361178434779892451561126141692349764365755990924246322036769964469990629224574557627439458954306002437732863415846393043178878315538030760782639713688183297999338363736050420399794950221640508427476858687704950774927191723428017072851235163806901508471623457079608967560627784573032095713624034288184850727466659057395927520392272188996186963902244215818245008420085732880923123781943950655180037326669223101465700701540570927815982952743267792720943870422445353110454303030130563102060780132448613271122855163250162373729285461844517879034003098739641112218041473402011893196779688599171339888380227891440648019790679971505145739578302022847401249670768354765321850952610759976153348424042893289032734882984213735517501959736891891590430467378108852795198644004768299440132611446170520114979322975853389209163541249961289633488129915052174909175080009668783812590489339450853872485196303797041105590936941605736213185156818434441629504262306367304274651991980288616111707495718153017537516337283760545123059750240269949581604942129802700829373898761874681835131632796988277330615583213552384012460814283820018683676275039853837294758839296696996459581843408870988996382592440926734398919716156879922058711811718083232194833190033145254602729081037062463818811832707223644296678478855592101586904797996459546537987208584565546964145270374734766465715905768060328548865019689732478034218850876060281945714882032715915215392452276428740527262957987528819107800474612818812178248319013781930673744772040356962717076395976043409375416969792581374422837916559994372960430739426099419693310769059808728793057602849226973965739738007078931166186135258215922027080972672851000859475468890844654160513884917672909425078662049279690054566424492490952995622048023759364635247773610420596770042337442602437973129591377028771852377725419649050918518591376597771501492309195843988798128571621360773278401927560547503112928282622423154840681451933488310744745946171808374504753111223319062956022003167137536930296342568471186307045133715895389176196407277934341333919882165756594549641043341333225117245986734245514253661258798840991127851517611886367216440719450000958981690067146955817980266284268529068398548197393120164237523457345748248527099089612628086947415269619285828586648605826289281939787523304322096371042980331924543126879365552133412686775025458499126626262503453294134771772207326369147566579586569273582761971796270946385868313179129110936650475321882468239691254273667531139724366735318887328958607518483644637254372939507654665333028213562867614956185410181252778464681466446613235053825932612043442809884618782734286136828223657466667822861812688659385307026845742874668366274555564502001276865103072534944145025644247973291045503831400983477936953495962967998431345511003048153235520034877965841488349537707740058377616087967072722652362079690435275190896947915679517420756830336864428366251557795601765042514005034429873678203492480973059442771394634009604375988547550109941654487061024280961500661459792445007621739517337848180143591554302103507060157808003174912369086503728584651312116114084662917608012937091181853593202162670442456510671130713487170233386970128354982041239709867902090142179185327149118259599458181414765303209134561452715159497586344725984946314886207835194073209756092552463632239091275497889084447534376229721931878824054729868619653865686470560099673357984005455352519741802460264338321664165180391824188376846172544997399141953487644203926227142658975213512239251918626329001985217877899762773429087885550078403881908441625610283194230615945645675867357073925850400822468168243852799175608224710112161172423440329331084903169146807869492811357244136120145213379197432065851816915079891456997583539373232231264498857838296280327600476032820388363165878973627415267565709270571064630695256517280353761174769150921247312265064057984315715448543180836706182093691051375963638922536135600155508880194236826602126723786253296668315580719794011495309336484376008985110587138213918203285314779322556235722567080014423482565710301259664455282860442510201597888391776948256039373666839538210161279878059504630671197444684686563809184955625890057486669662493732483815502035892443868603768090787935357420143765467481302584814927529480963941439794109803548195846169300646242682951303012540450644068770846705478247891560653320028561170452935901455519413129506997298130943809262348759864370551484816563427651326109040079891845848634747375669168725984629921165842267513908692977582356164084522069188351734904699576909009906420464388486929824263233272080644351006408990808360571306159454074798988908983310211476886282069140886855032876388870813074448017860449152297997803334395802792813800650091993974599881585464049451012151654194866248697642334890431169628473043883238536836015461774562553538744261392988168990693191319180098651542345445479038964753329490003054903906940251300430344712302279651360489724472160198384428962798341426456950270532853179804461801815491382218461846398288063056144905051152168935616533508364970862735708936330110641966559123208160444848216669329164189547089273170700076658022817878167589284497988344289948625661728609550021283719450382911345364455092968629645165118372736640839683149231011501894720502087616910745413846039017247060091252387455652291602612085586877882715336771115221977043278942642698519275302431497050180339402420676427945173762860035475266522511310670695218800845865143409009651167159701000844431951661344327843566675047013533756691112428766274024380777874882225213002816181283585792383067226008561878824667641134136088609976480669094470076236483133001044595487514318242328374531515609173943616243021403701935915030992376591811481917332188410166336796952052703803339658755392189611452033780778804827297956645629238766140790356876675514228028639132855181375503679676713232281390365067696864912762378542390391667488333023476788292367554186187533318889263340656457499428723581687801220282719564876808088832554329512551649512663325157830279549148106425089399691622453476970736825292261320403304392708851230950341889011339781232497560574573673626122734693217699795520570209577718779656856446268686237852405140576320871635040209702853991646279512898931628150633781466039929358870856052723526014043532985193232144151379054514773449135260750009724830455122686189970059792147031413795837562042772785892924213442400845702516949007785100264690106851122658183580698195214931830541340165909652696944421436484525840970506609856505143107187012970171473902675554702081019303627067752945247078798780220749860140011612320187501813310713173704112095246452331228350171886138789040684487374541479316835034921122929826851657929069594674489709235962098903835835852976214258432909083643499328443901900776634108735304626685368481747462764083386881401306080469792443941964764940496009503926105697235612183621190208832942760095525956632718419839718910828972276036830521378360783088407834946330944477268940817471460164459896216362383854803599888649507673382358031653473941100882611451466321330775440590417071681324502381600582580183402850985153237026418260108418327722082457759664681756401367876176029454818561346041490346146574212624331214648722492018669557039540367270909109216882578576126829770436320434730097165481240975046089694744355728954391382532786572203337449602194432410147227797241010357986440574524742981828470757203989951478346518956556509053028038956944776619367845734258794055512631754504529097766361996021455777190728069812774277630663504212359957788034538627106988352358674184475159654188887271515894499882415491652276736655229483549206853175442987101662078288684193621102944218775570786232053648927415031242041611584893986301736159707733045176434353915168077797134164393918680061745635425078275609369237411041672459976341783998417363544213401340262079382723484542795150996681921976598551464633732519797098247635306219204837132304232881240936859881479720160679669702649759436431836953363176157977623268406075278952415613794381641907145307674666634553247468687873027856467327028821783321179190665044214419995020831599978031635822574528617953139867172053869714327502405268664682945099284816504555027432075651126708398682747849860667896999664779254618295929908110999040168625386663322466095833518433982585041884023760110057349363342160326943127035950038525304765078247409923087431765133445067980600353721809934501274354878951516003384056314959101499488748910653451208910170427307723107547555039264990530662050261357391003334022200791457850686942853610110200487796840681842201656691028718788135820859595363400281306837561649335495597747204559883695559304403432803691562956720468452679195799360625045388495068476238052510652670179772218081256041605078222162943760609080398544540085114989777146328552292512416387759682459394194720116148488732364014278584630203444043552597311260901370988756224065111504772979917506166127171045611538588150121934102318469143210697401098809466533578037336365669655252863554669737708759355589797759593322020062344176781488195213709026504998856751179320597970364504154763147170670887679731716647576063455041041390460609719458566688392339471040238483065370041376378135875050433272434806586634021737677551509185271413026877719882602427248004005901792564764157024306555900634977495943990315591763398633987164526561786163396357803774025834325250929149742807018275148140253617781243257656763963985523652171384202400602960668668930677395365281451943693529070084725490218774737412923249828756512195219291183145143170814645850506750465425171364526405578655183950767733774166880825197620397560174590448962699537406505659916978426223918168362000968955571692519607042516218080754960979121184924874659732299308509183478118248205894000956407303638636779070959357094671110561602726542276353148047638924591821643243589007707815671611311535692640438686996344842845279994372507009864274876343006214464589748584159803568790101898388707018021225799341824573134450031511306775792426831851698272222770710433544861436287992827491943258054173950365518122749694107254729661678892216213591102992417971780687991409175554006663244287608395429220868352993484856167275178105129754806048253103973439402388429747919477424716592235688092789478882432072880766397938183746492010986217205981836018251852670529948905514887267282742071243575925887337040499351457594882951898002162839423794131730198656660926243247765633376546905339469461441188764920751692938401233338979042709179108167883542423038345270680814609147584203093332717095467373548552890395655905967647818633080975859037059375971461369790375183104402288119470550721302356136729173034355427235445931513468416095942951726996694082339799441757327176482996929008091738207084204060932818410552276628906318131750377916974511070778886306468289937876199145763915884449222242807808170629295204477975243665273720932471082788475036794079986493114718049455697578237671720543389570597009629005810407669653046924933992299258689687358353619414495593162923186658360872473202139684542815265469093589093652477700713462821795508818724646542452571116724861640492467893710472269548697647688239143968519390796556762780771357174040380648978759252419442075726707164545693471610030733264232611931833228312392018263813913703414299495700166730253023778040398354095416260783270064234315399062814921917593221483047248275964448375584184449079881433724190284870318584585190365285830937703593624410270348846997311642816237439484950035407871668624056260017056308512599834646269170526880339556106746238823522133437677316211634027284438867485534989233506104066346294297691750484232331254828587317278929448554582441137992311187824344393320969676669391383308689863580875700825762004460366288058531676282155128995225075513872189080824939999687655985015275554291851944920023956530373815765535672798947187908651552228696424718390383735367116202671353798883448489081921014059046408295342296354191527407607699214117062346665994974448127401917712853607194361327459402548048981117061110301334515761149675369588663001283138757774678440985978948552320893593207462341271475527729155061078146119698633812281931150208802922690398574604455819545856818138493077585194507035787591345649249509468180252516456463066650090662720506400920285323169443022496922927488243802283944605503123023648435911281067519387339627490067737487374205269853559735419140366274567355715940794105739982722412912013199570704554509467739740111269414704901826440633041970531747000864906174426643315529468723096248566786378848685467476016128468480855695889757661827990422910581234457276910592036111486605070529905420968361670457652262625804251483882814470536692962795775279990735058151822743515861104198802995857720281137928809325052457355294388098097418857206926569706393014012401657716066800580368936862654413137130995948740261817347383724785325306142200762780893717856590592333643361055011960769452948735663905217754488641132406717404716214068951876014294175372551782893744744614724685226701786933667287853109540927818270653939054384116423328936141285548696248286988449803208310812153027107606621273252015818538717079418578907279947123825141764520074544932203909688758136586626003358691437207618876373359579022547453476949077643944374667476704495415515162465706045701926212418674145498703828331526967436670785048281708342927277052322920825779639624449801470459554743452707970495320144189381655386554253439636441815863091913230198741308679917032867589932058054703124668586782050408294183717066841099222359090323320912774591729158316326982872532933768916097520847012317412005595882221973481048120608780631847779001696488483712732593270026796553505842260133721513929150544824612859073346097635850454502872317170901233107893643788109604881897225034442259104725571257482762305796889323186477792445847644048859991108695952702171097401401314836502103554294331569466136488809948930042205718682790015250564562665640703134768159537174062847190047881577340391724286151439664565806119969268306943504344172111954333057934551583639560025954280067727461477165942525331903786069313931418457596927553594840209301062580246370970133305391004425842822953040051680129136983875532695645731424077504370091326318309100090584847114413976858354383097041580641935446872968780107077197554647660705494679592496840307490561797631537718705950685444187297191288667154414437855552071944418067647850178757928951156747526340098298069020633832718204484468256719590358839586570993761779212754618886838886428706543246553488017666626393656994303849445480781528828452980526526461670908789863244192932296995273231035516869186978377762714621594591825941343890426428081866659981543576835471078109717330572414929612684612721082259540196910412550153119351944519380145000688528497704831021764718732495608013067852110187522453310994154672421855869029958022982393739484458922678931237186577124373017583357605167849227092243765586947722736525230435991201297178134522384099829079632821631995667849922792357056490304864893645250203487869991260777086988829049717194007850069742237443114043037465370275402247840942023099369960034058882265353249880988286294202035776965167006820687068440640867501145757651741913880418125892366399520396940506117757623700694955035385716594516159844506895908596844038343844501565690140326761966326169990789571609456758783509670875172416817992361199631286725515826879043784208924659859689611228779608899663824964765294204337993922607398045511683972420652784675182833398416387017124078431190127587803695929136893298542856961927694494884993174685071846636667473554487865785020217140794029588453523531710138721693020948990815107783776636242430708569664643353523728228393502885311295130884063998547665899286051166628529820477264306862060815286731300940385873304562901629102577767834564906193959343472483851226450469651939561496989293834671078279966641349070278201420453352532391277229059860672769825775264068813406327435138857077895530652030933102786639085266634053445194033343041710388243612672287078480858027834234721179118511788933690050661308985366741637592047503348640422234856445779079584734120035593326736639408836611239967901204104564969977452127304568489879558205967784895228953320623445068268917938392748146477791607327150328082115440770292378207783815867282463487237568157135265669367604427238146747830247627030025258793327115299463629089936538685643896648541709065449849594692772980598405672786570324054816505157221473472416400381522962961918944931991984102803058999294204082165120636272693540662317402975443550758053102315309420364759542648527925630435349333912609519397503277216676195784301673794054998814010849421751177025759170669287174339327508600790607012024882154762046624458090690507674746280674581871391730344662599282166410597626054569616650839095314485633460944579162112126734375408734475904936110448254859317387709824371107782649888528042138189078456296383100062542030984825301918232716304964188735439770429104865817077011192975371590068438453153121431711831080301630803484513641311932874687905077676534340893244929049402537347409713716901043757793070896914260697394476829856642534572477812413480515490221080816137426875559872807367111613278129920136928076650513287200062941112227551095739097799969539742981485066730317725803810134501365441288375423549154104016372549684581170744990211857122021742444562606975317740778363028017267360491700241528117106944818056707234757023671177768016014227297633711634088139688564476522890683542858455928062586742007150986003772849506814373047257284059140212944938338165034104411985774561535401514146283795299563532814230994772867677915848005370963641206633776688114966854424598810731973959386273545774832363594550461391741209652852937029849290517195769817022754496370114373198994655552474863985201852527160917355449238855139498641426790313947108771838530753079005670882636032149837882659220513586881494602097193203864628304469794820597388435461699012339293601036864259245707564852895258093292309047396414579537364633627435288053249320958696488424760712101812787465118559682893311775764480752348749677993330695544756294159104709015174715151135504541981163037162539233095573785638974264204335615306408595107610075158746717711459396485987011701191178645996423539383469617526675068631200538631993935837983002391147776924188554633742183055064529095811637228028458036270164050924726738766153271582764970910173801869774650997633724567583680333533069103708537330879797287099743179448290329688088391775804740218286476680482876200874332276076848811090992186705941396665326287567415446794371015134494282293519743346421718234728079943646374110431203773850252679702572897426060792277823000014251852647871740463673518042119813740545071470832421955751305831780321000801896455044057524284756283133825456345298271702582381105988971935064592862243575080233123718966140035761803820066041813460530699863753968361832145632739396251876447811443366298734456229313155936842826115889182346041784497361935445899082772186479531264230884697164038515446803085783763521329019179346707956821789243549689595275374572533940232205142793886690310393475233854024536413187691600986031376621662842158011764933365598389483730857826883041049106353756114863710019260665904083482008333217819493340112929362091200572156427008919823939552220824225815773054085760876852180381411523989113343895850773289222078427309102459144111466247567037586552369465901030043066893995998123156183985323962290733029021858793073114360788559895789108343521067678633295967520065571595155396028109647458745629843179644881358903251000018350733173468019340624510935556238556693861630236348462295145116961836447542184215877008447227301774362049843274644755837797328432098780782349258637700449669640169038144102554037147383513150178773181355449853762709019873577904534448120259629724560142088273135639731851109643035678001120319047758938435549327502748464345003536273638846921629322142328277403687384862862636800871434351481857042975787498263070349361816511018673190389178187828449198208901100125745451928001734342314669235366190575303993423955744388185202988665394260581327081092347076251563621150748729107757004522497221593502294469356830466904768345226242811680639346537333606573794128093080717591381008809974335196573446832165383806365170602477183066246889102955813680258561791120402550517927282569894633801141229791644222136299444142305911841227367832787161870608778570029232095241673951500461056595122762540037157810238121550420484604965273268399449767821966758158942582096764861897494977535369269386639942464735964360013120160433381667959543488039598977753649883912779281460014410140036056507116125966853995355014997239351598118390039375376903525807097567969728131693596975762585571479204848719388601613033702394288718135426944585135730258740903001743217793616861325169657697547846973795554899201600039415451674871113179188285318316814855643093074368145611656423681344154085312785834716586431291000607467924067247865270154831598913469462917112152645261674065019211385227513353753932936296699530529228357441435703065949474848271057238644382548134721599328002821724803181976562529282692677376772828456505378442601718286646248357031857901983866081269655340420584199631171106308858541988928245182371268255826277401313075004747094941693782478890764078484848172866811815613946282510992813126220996847096140390778342358836025207691038282085955249859269343707728002206333764155772546037282038779206972496228337126490968137116497034657241796673027074912542229134289329930441729298865371611414847784802230984902728025915595700128508807438409059619442688615835649082495704896821145449002141892875332176149801817542500201209733802691219144627200122690666528314596644025789584789732635015753280369643313552427860439803511856701568612559215114795009289770929322845060741346345057450567375252819217817999155999521707325546544933533319011199420229542050179607675698682847944492657017830976265118850924888836790231103543110573941385763653278370105845939200891099513379388203013821249640991545036462779062188103553161629766081600196449683842046235506456470266768841520626307846160278262709960354373277413044732844852439449708546426724726267033946860411318138636140206424478732643319175972771227426663471218814881372680224014253520315319323945444274476600355447105487892417464309879312920275103612269680027408169905911714040441734942945044317727044661215974607603317267801507995531055570616956755697674680154221206062923826791082748866053150967281548824073833809109232873101070874608294412784987560426960529121969630987831017307805869592201483906002495297437009416495621493210591783980727882454493820459147136564032546575830250385246636398146903532610568459235384673578030601296852888586096516128432509826880504328143292435491017359027465294026583319269910549485649378678916634294176097896620655842326664565487977753050524946501719740208029884826103429128194297073102828013794525432995554097906123453570206856274925819356969992211455745769363366872665224602897502081835123985097681059404194547941232718803419701356135578702550011259149896928447078874221518920360029713730231349959698274170585147264977520386251489224753749492573320994768121768581199528979346513274837127449809425840314969404197289928805431498115202007428479795859511181519715602567622419735657952664636674099982973600824940150574335836319917608661689751169644481973656225162767008374283952326530428969715817654381441553198125674968269840638065587891165640731660133435626959171556927080921652075508308832896592106961135741586758472534963007674256890230713690090063370914706230761370899554185922791035775372918066902828635952630905601265783357456446713758550382328494071241395153148951121899848854557283926110856091774690898550338025836944023605500297191126624823589518701975212959183737259777293494689598039884552424124571498779530376206762929746102630025794173546707814772313550302803299343316815555838725520679154390482355132917672861556746973109604712314952212112394217576242498891263871592176389689140460568769721024094210325359038303554243533024364652950213789853360461642256675644780930994696515455756578111775597618461865489383645563648172979148785674516534339367545202298998863113732430795168589093515893340208347023382934745974050764899910529200500955102737522787838302244505496050408377762201858588758589401582637937763137593052242723758581756311232582539998743507453262829501484440777645749891144931252815426064599046138506337385110225239642589736316618020582243634409329424168312155284196783391892779397699934103017535796598877224600002942563574897754094906513351376020994287594711654726660362603369496416999836339174842899891480288218560851687799797704808893614315040645368869739454873623809891305057571060576534834685704631759540442769351543415228014776386159970010151427219215089153442822140834330248846029086548415029629693105031413167468419077939464123736224752322767193866919808077913643838792613685949204385363701886513643663122860009409206386420959423136189497418589871881719944893536809825389328997646714379746826894545767417649915917259286670920151883561288395119499312160214636210529923139354988150577302505534019327748777092238028055721578840596771299083095557428673666720808254226974632598504807906544990724482894389645962380250464499816662403149057991698205979641374681144583109282568833620564804697456493108150579882957766895686583985184600301309480648318074486510819075223674087995901652840894729035852843994457369405756440306978856437313356876546617533898065662301259148238442982004743031736062362679358670205163440077079453625914451224189174849376853433294414916093912284730223356472682668731700863085084940713179298834859031586012473594069460090287064911201593732027919244653274805288898461060796824449446640205835153133403105118783694455752668462434689675534068901113861911234419008803419833693160112161494325185818174014869830965790436919544519504636769130688983798071198310064729111597942871273581925777386582859495857261656605826923593186342760083241683585691731040505148774504553150242219138115435088950185447631536953144134386534344575620344467410962464177167165953716220659162216151789621996490719238698678652087509918800647458573282588492811849894080538594563542786111882367895518403161272598664762336961076665528039816406253836342339998418589301578435630772488237730855247561102004969393542805851812880657645365509874620230433130070369624467897991647491215431484657731927173579898603120669378917615422359435457130418661922085605913758407676205326186771484645558729671772546503327576735780196986047637438800686763710496730093391085075786467763162452206190190863913421453326077032495230331639250122900293001558463161744089846208623278032945435953043995485227295553605370788937017161810686462059413321783932892650114882562686940486580020654889304353725993615100994543186807864189311929395590275326059846865665580017330353221840108053697492018395404587334092170458147844793357092853050246981590580008994817521998088562276404404838509276380634721209917586031430566102082454357840881916918247122701878714671349645724483605611310380701277010641405519107010523114796895493146663287497401362380270464642231675514001581835500730526026076882573320297343619286476322363459493389055801163281232381908090072513180539671496919174097994554286028157975676836097934248795465157600167240494506184921498553325989770695043312551196167699887304332761670667420065781896406111458410867406633808961740756546792159176351676587122014144513325520756718887246022365399168857854709772745013020768131255075954194395548628504556709070999377849262951014581108708758060920555351335799167130924976723811774522383098093025411862888623300190711691929043451141495265176455903122112789671701372368199726771126235202348478724113328784824151883910279195245754015536724439616552064753619065686939371818628132661139170041132127717713433653346740335538905784825394224739875319721329804814036266207144893273205008974330148316112697873065025311552920601040213594798231675988091660371249395292038195249557243776772018171092120726759248559090061209302505933689740852042139584778337750325375133445145863169711850054549564668065490439310414631775539399933581378767792076964812687999944739352391624687210957690921968606570619210542629568486721490615411135689242395059175326948728924562411286945989100464249994296844659844592943815903684170520666008223683998405704473739760795295454973278957394873871209324638428175471114067162711586125648251060817607788899384445325508797437630588131726549111022067563759230789536418869920310133247721679111170497626228043878108601702661907006832789804655840850072574212337687006391963695850875237944240819812623599104379425408987708509634614720672439138467149378954426689015773673150721026902380763741251864112989372162454488226538341875743141827568508672715539805061772686922143468313941249846836795526403800817287535308900574273191560531393618775024058802314649376227456693087073384912236294423511680587362321853803378025381754327600686833144221797769887628389417788763946554104093883763472522158244405103763674351789331525542280288899704137197475810488952225497155077434312345913072280306681802404270549303385561620400624988650738071872230807633326694611654694420647371630121686490140854372377030122848919693811980080730782214983299122177330903745904819314182689639597393429709063794762246052838087522851127130729620143062274508669421658011019112335487600092116224217423559033021400730640118803551323843141886736290375259188746540038092968736734712229236085948210866791809482621353945747445806640905657038015720867197664197809625055558193513760748306553056114542331270845665175048869148425143763251640734544271660951478340879847842736818743468634050101280712970636657972489460797604170682125315124504993668788375248204696942578226207235252243459852885565357535940779265825065060997259690364534208033002814808126991317996364631438698013703504815552678518534693154054237114854002885387235593874588300665986043955812161236489978769026249066674166573126514938947248953008988399761752424484497468674129136379279688501981979961401116029193669335243843286727093813111686588110398856545347704889125693486812873540823014856974778918551390144810710043212789347338314720238329856887663046913911519752443413980071079528446421634772817747844638275350013107982395375932370854271333728376960750742053090185493440177186749658671715438741216188989423165933940738231262965078185530572684552062458391728171982394166043766983705736743908595942790409973937010416567402006509949555672956732188803594441987207782521836383860964110098724796437370953958303481599897019485439568150287872536855896603902223817985776084370029068794267760339081163799376518388405689086480844510821755747768065885544410648096639696618472391293394965422004678987324195633584498787565348898292671698367068991001004555693669630479545979951369067215916797862036434105485536912071460632590638740174464581828536634446168182553552251803594015164327916345873217751581669252634966924389535192605522737905900360200498007710654682425085863642071976286599924588653092926808952398769283217966674199706558854441783761169969042781934322854456262652446056311096218365185455315164639324961991469362527005581671578462797700475838119014331617942859604674292092513034003435530869575622690148197197946280219652827233851073154620081263385882909054293729940050044922179372323516569253296416921952497847880823759020948965081185928922944788534689601784445913256644908603500202753914892819714376872862327690242651011867526880381240895075780284995982457655846437037637448540756857837771430812548954740194161797398476718926004735458552574438997372345280770432717987236929510368461717191777929895998906809912664667069786693887386395547959262720454179542685250408359888746975125363475135141962938272889827508580969331470032738030809977940594062516569474048977889114880195477010394679617165453892308855905891301214135244715454428904781235882823115396358347089376586152868061000335019860226984765240993405577746520581756530612435058068649700039272231220730696298388451453262960404972218746151934137062542075095167583244182564669733541326029235555511734211750892911436214872292177834038258973014944415511494102460205080826612874377464662494962307481899976433255171381777069720114175480768291880210746841341195110877933670750637062621197166315478331720174303568913186203355838184774460252673964983506137937794168650453968379224060707645092045361060050359780475340615276128818309413138773710272452332735443538563798698935077192942456964879922871155108982289000225242407096915468522973361472642839323830926919978243425573327554852394786576637064382731703385131420909821127864611175176744688116902972032989935909115309413884784940070430127734286277151214508011486162251706668268580841306949338789196456439128688941845787467977212891525878917717582699573169410717486844335245190448186290485320832057761735810373616968818951145718901641895108128532609046365340311610189141297292452444346656670803242112646693996729493179474923398574949577010863856508969623645959218281525235192041350029201257373277458794935825163796250622163056831013649514775285443802167204025155694047046123789315348465106088686487120567798520171683442216457583373754944504684625010422479131335364835832499033295916270087635313446168675626164853696910591692465660887589381975054628444552825064499580590389453044976969096316747033702876807532367755887173159203140744992694279517370145689922893044752885206843619170015334718953451359294065482396227449724920308253155722703133930940892740884648766717756653787578163471774717642899958746555858884610555876756973586071547076540284463330450735254242591082356514278843469834734476444271363460688950980436465919617827354912255374586360758200897292653776442273231998382236023729294164633754179373285590986990985729621210478619621292974186479290775530533539442888678127572382179621113581323076433270547607349073930015856307311636941658069589946842884921431719500679693887181793531799825971508390094507054196582839439225679874237648283643683332680322030201192408284579110179803367298768436269651111127373405398931404597620288536585390485506515917758802862263576205010977099929535505063476360136196220581987556862160861939207814625360833864375389594958885344628895775613762268195972003785573943478336424875931847060604177616041827709696766875780440158758413849525150866326863810342287030139919172192398824928308484630689465380090004815369359238397484842514334344367287803643249199438457943865618641666672821580806070646850020393889136765385129517488065904277757102768360743189895754907681300391249555885603275799352487011057043133733107531179032326126654574344660278821181656603286758659023886911304976817787306768800762894304355385353827250947206263139271478176202590337277215063095959303151487582363201226141389623857154618041256292132515539931434657817245953007866516152159892737952788941314017628755120724171204227645967947500130975506477620413029294602882696866806489690462226553927697020462289324793439188969009048431880731949821900062232477933512117769029930097906200255294711582017587515430611699030989289299039591416300378935976161380064600941871897359005022477018156392572482243277221086876436192679903785913077925786133098655168727785753003583039084535163553303163444902526601729251580502002086258200918541132019893852846332284092802409108169332495802757009278700090852488183441926761107610469279983659399044472433984946421124871411247350150069566512806598272634934357323544128214569419945935536539569755720347199408109408769792593813982908967060008778718572489496662046679320709735566222328498755057105082475072056087652900600710673236025377254832946722721819496106671665309225573540521223000158151030329301961728749838781835037484071283423327425064528701999494199143188023948102901272390645430496651258312743644568333950974319520007546829476761451676820843134181253892384156151658309206589921120726493725735051913515310894570158000633580110614645610414418596819005781874204792230623353639290515276556838143443240579804467065838904530731682573442983506357937924713258857509565338023143197829005598151021934177660005505180095216454711574866776390993543676552948487348175091645876653532711187793954927425194543781418357851449451945417768278630751501806534385967923344388117202420116329951909700536504166123595355238117602012600006027226538568506916320995911851960886675765220299753574090327501104005091744935633670214855730879199101741764356201259785380700149550575766008720612023377358401199507865473742636631680883640948322603155544969710812553561026045480357815303847278653166709762660263039156674693808921198259477217025652494013700524125702592758851635537054126244573556627096398753280111265470451057769952077987083263300062574327504836250031752644604560534541662182798497636062857456533078992739764038072129937247683874270607357270127294748389109954346905834187194307442015710008778160361628928464297346996208517177605901827179536639923776051809237365743846528334913199535959089055152210227971032742973319617791355841579546309137223478599674522594990996545799955278856031272551017819763677171281455546682007683988628913846869237027830961408287106216507072965715277826580946541782390386863514873940047294161810400502194681280268851658191854740664839038571888783806958063966579480644257805654258792790382886572595795496575899228631975283420546602174878369618425228263980498879410156898078068175869628869350516022752402394768248236592077904052837895604063863662381977550289639832634175051906587419515272456271371752655277814742607744861182078424667690875104307269564422494039850298044882064197290120684069752424072575791799732204015400712303421676408703371869952116728027408058715717811577949188282342882345126603172937580310742863327517322237314895113458138874104394494030119942639147484880829657739254425338315252987266688671977054795172182143200320584679955918341499016491350250329742552366246314664431897682875411995370100163010827599840538318455788699768588593735596835262464934995477932585433000302027406507738138460514172688329867658047562264977335751584877122333334785318643481139502685747720734864500180346580625834841869848516070579585678885901386934951938783433311516959964949654113159991121306712816804992189101456437485157598861013416253363501995361567703381661188336966239293601128720118925400852908218448704818767751787879725491956833756305706232245346089339745578379119717962675383695203584395635633265865087933486928563133657267387653015478171178102082448532188809073918736710589465930003716030730193355265078934858543081693858376621888808053257788269815595042456937139708172365595187652370352465750048173949886844883531592591332373037290251902827637365209884850170949007059736872269336078213176004820000956591331092215503546456770513393389056024248281631437917814636052838609795443359470682165273710251202435654761039114939744022605078071426683284822476345964043535992768743019690405359458002754869153644033973114898393105447291954963498267528343631723829740811666378177095749400919195601016154767914928706771148591983096038985157314955867906835869209682726447609433506370200956570380574695868784532614156333435361828565542760699259284093588014794294187264756932257625638271539892855576822206940473509963986005593416235583838993985786804985643887779785184900320387059676943612499699460005930436657847236122070041823496989700485195958473716788024401950770517411962519248844276317114215066206877095093851798275953284693413989466559277830519990136902885392918206223742034040808022006780856787698530950356422486751720734253431681853085306705830545552686900554423104769535368389243920779236528202666777623599795944229261862795356868369838887185306191701836801361716345229244454982671110479295370106453191908814047584702122174546680128894218790879932795984770532218254005615980574753282842423367721479903972967533614706102011044365708405134299790439235622477463126530710956200900980308030355304549346264113155065786669759148541905738725390144941210512057672179277813937538635848944454685615646231218949935426711989012949302257200721323543432586382465535154878752388379784999991791177622833311188310369980819924758492126778020712361571569552356486001990397873440037796443914694993988163296541913165670234587279425689528276706460520401657307404246779241406395296715373934935887056584452842902147113722182876122501471955390681283412020685984063060774935676215833974598187346330358632789871107071638621599754328015540130821580703389892410666538851838579552555372447527034171480513488188275810656264727284657140595817089861341376276457327846072789841060596370282345105671973237537063938507191892816029190455846889352537229769227375576992565744669539285632164040461812251637196642893083461225650137496448398287205172270013206542111859313625440939873015814939309561803044080009709290816803219516369931332474379961638670765700568152611037088223589822693257174464372944732640634938290798741712952590175562530897111946740654368817985664519394558455076072839960414418343317564874744862488580380730545649090924488721284139913696626169335436211429597007816762706155125892183709398880961233721130443083589288247421691842724425838705207640801290067716215621284274257962588793503237153716409020499788809345081457240078758077864350012561882477347614279626943839820390962600492271712206671747209111187468185001669092032101261587528800838305135924923453304079217052453220954054237767146483700452177733099642066855349042273166742132032453861935874908668096501862635944537805059309775182722593011901503616178404115122925771932864412449311523160476233163799593396605296176516257564298526459333357949130297047157182662378792069547852316762212173532924011836922856362275080143296295935690708281519642321424306168349157499477873920319177742252175260250532488404060393385676095206419241410617143397596359690036547499598975693922861327647137360327266978314630335862621084179330164086168606394988629650641496324290159282510396841702734267125396181766116955931963911832611337901588060319611974816734549779458648667281424621870677421684066773603290403120802524324607037268319393298202317791540556294581524119298696551173158052787518241394253688088886239363934092864859307689141517942236878117172285131708542423117204245911351550680146950696362172128390293652333670211131433933254326901485784043203792838535088933640687537335258577880906544025926112116542519992540879608659606107940917438180652992939134798414950380223183806791918882030664073620979413607789640482939112201193349210978647921228280557737372527859130291789857021708244583540418321962712517900870414200451670393393992231132438664541865615803954519702983158482471207121542173946274507796901644054297129878826100501100188014965691467023803929773074445554961756023770933640120316913154093143446204632113386880739463857168017810812184929998898405609657532312386082074988369840369525046278720321788238250768773423191787863948144044797639243122061165297817318763222503820424472147121461330828159051454283193236954675987243153426059622773011900921868494918240053031324657465776749500771418559706654955034644722943546568576401372168610791661821594971758155948809383763195700040307706379257353596344080909039248416735714670775958618213476227837629819329381227104614378854717407343634206152329307032851353948220898122396949423127234288682150727919011395288218591166088832355580263319915649962189134829258318162131232468453984806499476449054238950438862859598046994719336281971430605065823707072306190878768624215293310516183835745132296563845996273390994089738307083717073389852308732763750637665770476545698131565433503675940045213555175786480785724988479589691227390191904173552020373797999869824246074047918603095324746319380727505218624983444191789699440043870372451826417385230338231778301385992701484147648521863310445569100122462343595813065478134368298181141084592153163564378101926939960627036403093112597145527095262158389356798467618504321747726889829851291869539542320586021612934377627326430658570391126061602290970064640929465929799347864983775865986954994470530322779411714979971199997270739915101374765545585920562499959243869215885478673173886187088320011539385754862447814330086913187065930285533740667291625270695146132966775869770829765986439858709173282635588674688664967073681171116211772519482236855712130374006831781511206305064504433098239173338901363537826138184013593692366483331175391694113157492191901632770090598845789865840543045786258174535857384515046276998803632974443841699679583870059248779616076262043668922869304994677275297430797476167984700927495593685173614920238411369602465074693968581509982230331586584099519197737337485070136048211266516342707323873148353758840006813728558167000849011717757807980974400185607409084200243714488780284457744907496421521571871767916657416954484198634994044799466626701031231419601931766429449982012741017163295644411517153096030874160198893161509159252236593284038838410207420260072688192775752868797885439637057122019628475081215088801836637533861321258550543885849964987073025684115680419024158012584300111603693372105870482604563695974426067467777535384631158390783197619642955739243699099647574485693738259585381378167072432708292962842273119739793633268723051709625549726213451406254208807627722249537652280915499706568163363948390116575897048271932174619649207122411782251823639688625148069430044231343124149308503740451201396923089445136852375418486415321803585783682481316176667716762001372760557505824388881612086279183645328949396044425918532733761823160900972036400559274686509998102131124173065771832578393360298425184409225488903973343330235720816533454306056833473447154598819687285540750342844578755803499835583986780574190330876941612281506912289791821325502119629526673338695426895742405699894894869626222970995624266374107517763703246662842342922105860518895874203840000694541537765983293875805187242487562448401871585470168675749772872213653817595282245941146471414594789001466160686933009284161548092060564469196673100318004438683942833652763197531307078909761994868336228092487550020167910633873723908815150576803210044266217215592906861705247487062736199720905014083984384539947262189409508368344474578606153697072394676629110238326250379727387723785710215437512923398848566066575484648261672039663752643349299062679072951854762375625868574753161761058526763591506091599488803551255028340885454359791343542332706494500547344009027286137231376250651587836907035512798266810485926622447153162785259884205287368222849902942849922749297429558584641697887374030516826104515174009690319652092459575998080282024924254579133473574297925882142037314499351835410395355241220128428376446184096707962755447069451712416031302594707517761638660922511985105076024262250867102005127816912669931854231481493228176476202919313203171909353967919785478079797618370787499024158380245868045988550223948915508495848328202802223605285140646936391352640216501005334050299303114329468579341657869423554377560990687280626952238824030130778651082464507549554190182621325802961117957316383957854882376631009602765637651058567640850456717233627356504230263594921228527664244031114119897885861104556488799602025483258518109539547165143617113630458063745412718612469588892023030556745240204320750803178563886098196578996329051733956362327131537477771887130339532444021179989539663244335767069098333331327579634119916171942815954126979314546546139518940963263001221593913923997171290165774238315671249307395175331587200704590229267965634844657318108541010767919234707697547316031116395310860289429140895880868201758937588481419259663684303274427764919088973435235244280506682463983641996032470878094628107895217575035368000642588983901073478047537258994465172594613909835446849590336376542137074320753506019080591756367399188871393474169223393815663087913577342700017362247027280657763045540948563466409288257930237774312668569775560022067064023956578828723603486699119689916661467153037513137471996629290159801275916979102104289884422710569948265933466380955197281961687985624960277471984351739256675022241886835366348408715646178383852790855011727202164494010778447559818846185314127781910977230360382198620392586549732259262021755091581143975897395191973676156057914073671938675115874451866557554418263984553537619935347001552728650017602350856703284005227315263183730962775996852020785800407913839323116534117806395021240997837192051734232642040082725452563179907683759810872625410160005138408815505325758394955835882122248107072443635389784637048611427525646660099746373723782388605776565907288932762596643967769781577829648414762467858206834257956659791997453473096739630342275429696417901264859092276348716392745672371163672422041717973318380659454940575838033300712666887850058223557026914874797587947889767917880048342638124456406251792961568456886045310392478208135549244296791411587579824608019374953721886284538744787794164419862937601641184935909521899365615116648731722736965065193339366402811594756723294569141489650502189156727421101233564836512752288416943252788976030841251811449330835404786551712236942912775644271776217539297454385363365784292887359520704824933655216615508018761402142280885830604984833240577704889418168466389078040396604021835715199206154836967441815451067728190325636590022197475951582497340849367911582949584253461876392744550235208591749144582255048295817560041390419436820716567030040486949612906531452154973888652206796065920085867744279275379582450112534861075335318803395961371919671412253659242268378564929515924116670044115766499232581005978955592824616421379633241093851824665158312320823778712992388801831575489761534472618433176359192322671730137062155943531063989761110735746984728152267226064915813312498608962060612144163718897169667679237615120302194299391532033573621272994043592324118857691869973254968289063225039754726180862243184027183916149836670736227103934664920966534992174050638026918996055408145290492032668604854890309259794460882289698578934050835744364957954925777264326102579609537456377854322088941261346567680751616846709637145208264525322940604337836099512534045255154225784375725146995651879263159613702236047762943848270995068987163987493013566593694482669073897490403109513568956812424700987732908905241798176637104440323417738950901312739327314224325688791871232440545720685988375690242840448876020743566283347928263145648852565084750505285653707231313121803474745580951848388209597231113285147856441262513549610667989243831916479180835204862265239751370247801355118349865142037269360297829145050478177731179380831252058271154273717579795656763080450833279710416841544442558712556400361107376191822703631372198143268391032656641585778270549187745329830368809859547216331787472917285514966031850963787493551183148341142149494598255334807144182327106448589514249047153242907811949835105025797255932969751835482827017175165045177878797856010685480164267424523933970506772800710726049048255996053882227895025486247194397541835666486373130372955655499433551125366364972080917304059927614026807027889884856171481907710922273707516704911024616463008427171905480328640586763768259485340997346183146714824400905652123117403212125294295769808066041019149920119314498511251958628654589591185875655533571202294574446756767869777746826964466488073005351743792813082920104892108572767052700303664867983739087002661542165454734534284141241456379958577649640220958750373004141791394413009969945440488620536676741190146169404755673949622250384257443144975492791898326151973183118243592710436347932424319332155272964502064123314507372329932330725977530891034173927141556355636939635856661081486663250745365012743556878166637648372075893898519971739024988645923497236949537712799383335705186620295138715684540242893330780836499945788668307687446777792360282662024279625704966144626259276973110692497525302727482754239927436219064594571785124830931982955255077942670853579735940462053808615020616887905293859293479128110287044092166140279578306913058234489080745484377430380431226283083484838722975320007518932886121947570641457813925341984368004104671592485856354881012033096329867551640356561100983188613144630846441962257766169936731573591319329282875017029966510269912026622227252148788235055378062359135843117928986955887770515753499417199709476625273497637301841726966428320456554142303265875633155432029813422658858147856518970727185975409481293099399612518023122165759882726964019729132361009980716711415652781910067212410405837130812897238458277658390086694381745173073634608388593514571981436288074123527691838636644939742400529437753563054084131537182223722093611025701300149785383666608189493680579591478199427574098278696987382769816851414367300775689389426290763300026963380244003924503420085292685541211497240645565271889598880140079987540068957941267590672030710684088021379797432981105455738717005685608877104097838688396489989782500679615571535053548817187604934652168090762793025147306874269390320225655726346860567480103147854430593661513682092951440948300944533554819865407449032035541315387450315211188589364947017105637234692454320566961959489359235460656411582518104788632888393148778837965936429919371991594752813039332752365462777544760089843209915322916933652610250783863007064323863747710454733091894644044833709715312972579853214836984747372195766156389078739842909576406571558130686374575245291075628528742036443949890471538397985211221343861178022538290821163827566472114686100205822943019014485203536471762987336403112671993868752883763931731521953244881975242275721466825199015459196841183760832762940018950373061852680890258330276049687833796163348719956185333131837667749539789890172487478351734774649940188943025192063710407240338416761031744896892712242651088124647629522232913394784923346578506549049585602819146552746726454552917119660403555446828537597212670038413268761561670430850039729766165010019202837091102728633527281899954250442073603950746809400965779436145230550247104772360038971872701826198550204262198066462072927836373426350213879267876340381521678889854185918651572566829091659118872181358780672020482325565204850904268175021149524313514325066547618542038480084935920007501715722181794627092900593662701028466775705559264881098608025342541122151968833419066914827211019640284641744761884193679944289862505325094029512080731444056410188993573129992901118359803534731450248644174699694229754734625417210979118384480067377946904319004382810728961106786484483423349780662700641571152607915027216655168170982320372788653620538918761349331940168523220498285447914888616625816015716814216148906205211197317789091110286951995755167453175982178100350084184941825389904424108466732744377330901462672563579771901480795792688614259736177159142076627024429604614846896209309917685637557222750978196241018652636767454031359801548379823309329655322859603553153549755538645641322663851388320791116263823329722460739760165686879975940096997845985671780990018608412929583548735693779340960471890485825166163672266497769018296672695048262438129432968297629043693273300369418674308458797533177015349285665559501105360281099431587926859311952852009843149589261309225390917079510206015431937723993487919942290562349314131380542004546152865628904377563906000969709221695728470908097450830168830450814974785769356146604849190908067315557827480110436909302275909459302414765971516789666749388858921776568518397071553146816025736841191165055174223390699398544617141599802251197193584175667265968810544211346452702178945142147486360126828733143841080749442279716052233667482816038320278422446451743125771285402138684331793477479047602383172219257662896814272824228140710763240584703290046563405571198245359749182919403577347060967995064072892022061299450151558953908541745708345667488725346317162795438285055212297190280783508885258766064170177671247840677165846649144232342823417887698785358040778476859524972302963509995927079724565911463582798488648251245378339165344984712800303999547399230197654625407794746194130007101503323017495250495455933556709085649082925577567559641522750572753524417925388727450125908298611274280888723326286713311168853802081623140369931614197236688424639023078172348523198856541691143563972113581858200048887112674912255054049834702889656060938109676336005163622518893930489034408399217350115090929984544219124332733564801212268766689957236027607081228151081120259892358493135511308072614308232321004752631377597360470320399812159964181031254070699266511384467936303950733733486406859646713257051616881977895814709944009130528454409753412561677008404840560553767143974537731110984757507136979133627800779060353727187552449703053210781361142295225191365223390865909228565824112298012729453813740691934677834947533294521615486794216495681716031480883789396407088810166582645007647720039807666192050929054590765093246251134859847650242190652937260578332942771618475379121484370079678944807478985046204874576410288258432322446302600355801756027684478083217742050998873838029740345128209162142864869414180684795694670915151222602029233484293831542065184800749962863270206725812405212161075081866426407313704207165652169159567151442662141766388750561568981220229294958631307041919657480931313653118666366248916506650615463223725068336278467410267041359495882758208845938961866284057350638353302443574442539781407711498138542091347078966608710207379964920469790652694277655364010486628004410357490258786903383929985918661251268557915772651432683808604455058030140529396998953370280852642718170424794515061179841729205699999518626027517525267182844291424916485834122063330566291121718912811244124601667926029274796194058238298873011126110966706893890001951182442584892025169546508104203094251631157667524748910432446021225014180214367544540873554006097734763651427076495523050215016924482611824559771079946734605172026432274845095575519875609823596947756981649155222175506026955868102619998599244251265090185931531002999194585263153312123068182478341598407898638842417009878564332075577003042845162258242768709460993943959818253918538024652795084849760232747011161438776047602626877250373208076450691399963905127699583946453989667912550998428145330162290492972286092526457234129437415041298410093345692867004223768906150213769236161007938900621486330533955856883315368135689932482583726419315588323301683361063728679862799790892062399872819090675817831109236643966208788872459003704701985735998200313976027186846231530996164166987469927622626849311365418749497253912177168935091594871330000102097959798794347196439927203695800529861140537139754671673382320121554269087341117589301573494907874450693920215856455859196392794021822458789603091125765312654172281156878236078418874784663928749751998843314867122492672761111250142230240983799232474756145571130537737369035339229216665062702090299939955077924078372644796895715552078955598901855209753990736850546104727409619523143631386294966299038849757577547632061642392797239839865920668459068470387800651102696495861407608005419245963441022827687071209037800819504575478077425146086609918862019100709825787405852075244388369716229407797184429573550858837077958975317355211193915449139561000306159687284536133214829340991677672150923995445246968035724434599250704812524857611470582447031257097782886017221922618258205731621945375572843774918559744527009827645863811311533951874130280488874116467679544633717109223023476102016411131925130088006215538369974070876389701150291969076014480116767116011117108563039559854434288547207674540243111046123863354815222703326686295813974654512731456377096026509632432548257262945304593420550341180816031259366376761122034501465035158693436925069079223652362164571002284158547813683951626247678503443494200966078306194250159074558881446370897953689737134059961360483509923977494578919651298171887943937767737696117994366674088282117506558732529298250358854000375025397263744312147493756394271593783166930988158585934307201447927523305229643733407251241391266366979151798085762296094645947469189761436754446447047672389705243269547238466996366161372743082783279011593630540134613450328681196018412101622149796939732065496368737396929651908786216413360786472682143639620926342073877640241034673146350666861277309313814397729808165106432807340801414268210560126517970885033579099949704994578895943510874859095815477145437368433350684567961849255365605345988650027265136380502232201138023296717338109572411914109466572599071785164648765557289115972916319309161222166861429458924319974707973523394455628901534287002180739459971316164639551212391829942861044971746741733746492989963595011924441775327732782527918348075765503342443276657573936095807573877647982156910475283856267354245471776270647906458408597348338456230668734507346223921320906510425129165914874822624412118824644807692768113580411482286458049653249821005366256783258699753588380509463192043913881012670994359614802792430390901545561678913125711500581833458745144145310504685715222781816095866100055318301100631400377996736190338625072126412308078372544469823391975082875831625756676532629115953882005387126885634505685482449429417858115503730239376574532014664675010702731099243047196995966447992960373660454920517934387879748973330691945912825351490245077597593162452568817417466881079979410312571424700315046257130827730027154798050572969823222169014961592951119102590204768958921846038395260596952895611022141206270807377788353391802725228536390930954075459527646524273146998847631931789578291081909105482450561841652613375681715557972837030057544822221795796638118504510972129119354741010758301538152767041039940323033457189967234533950492919517033451194388153796271572071717119622313790593473551852095866281753818987189444035861682225143491700262697913640717147477689378630627084626153946336986608817982158500872248256255771295513870798583802144238098636487557927236318257182144124982349227668771515846872605274122230138888873350781192578186992140446524064526022383724156828599620065820241762112456389046814487823393487758186977479815825771126745013928874001257299262231652372161802298590302103696163615426164014266487611590908170504407704201955889489429874321961034025042626255191336152241346004914788186854117952229409425347352236962360123629138198099801087470642772891831497279640144256415997282991174697810964252783475011290608414075809527671488754061631057779889463030801655203054359130151050746201444562066396596270960737792692188690359932593445607543746671487464905051831324800099550270097446985341558764228230810804545775410884474676670410939737281597229591851713763964563210013179638332877689226139222021943648375976416488829534245127380896859054259582828288300245102179599524176160857993607823170280712644457868665444324412477735593701889419201688933443788879005217551620228185051052896595134646537344476349126590124146122798000474168412504057444173574813899599037803623877195290253649758630995639161586845036274520207889076949158596737893717965903499539770688369188811817236250586440645472243176309017300585215808438189950356038935500101380785878663094232633273970103348607328471409560843623645256098516240954117022174333757004857265446439584380902458471309236764191182980923436836131859992913659803935616432389483117067801592293414361834124811027790471169555659285302340801603467920861783447227335061247214893310518722005142119974853583234293180103959732097541084962050951377810297172441558640478614454278337333161940206249180056898900083403327768908957573117563696587910732606189689649594303063144450883586260258374810391870592497119542775664741411342469119160541061543654157878006688902727279819277149137224403114801942611308511190305555740079827256234546192754113156490607739057655038936548417540842300451908087307204505389042359510585972217761116741014234092855898519300384509067500234198710993910392551187148038500497457564095139308589602080923126257986645968599295014975565510928290948528241899983546386100905308725967090979115691323083783143162380540066590107943393923147856629384534868707673071217800093014526716293345973400279408136463950292531234192581390184218645679842913213838293121137045157015491302655575056821194524390207102044203773465417171806241965107770232082476393897523606552610382194959809394476172020531460590769990303924983019246224630210235343181650241380368038813516031054124418473811098973245654098754850135004903685334163351497387663597882419610310310128836675797985520103285365529204740416254092900030337587783229263292530415292329409538561300644467197815645077591043841348302175337136521918275574665947729001956366624178207858391391302860096287054042646590680888700476568887926654964008318375506375069660463316757855103006777368718915964950172275940016468362946548816266965860808749087235350588837746589360242242874509770347843782154429257465809847686985939479732712505168530065804247283056764341590988547670377683184183405142500883296344382785620523715748178911406002294984305755501671424799224815332626784958392402388552359468612710626335308085278824072615188831337947824722178055938784552624627437800216774676345190761996001863614183240114929528395014183224775589760128502922076765323107468600688989905036902094659340798451340482736408004983174114804069103150145164959061253073907893788204673481283264694973771375337586303043344399187575832181621348363547868482065242375071264164382303379645898783781487480515417307683498998296012124664429584369114948708320254067746953545811163485441507972219744928689621948125298258529357730625190418387700777861967132683509025482146853239800416043904437901004440758798845596031025318946460721779553465977302712484982135873177061232424973098562497760239757297465058833283317448630031536719673202484552415400607261727815283079893496379102812673028362641544325854789174737526645568255966335710859124887264277687835995581330369323267426019234554188408379873962850729097625579699206430111683124572938843587978455917218064115968953200165871518137705050236585853336816671526023200423010359936603645421449943023563397768480436110311245475296935226115674600073866120509002864979484568691634094031681567749512167057484793636208760229497038495920669854695415925898824305022479294260352611262821934053586367600637801980336486433898375061269573468032498107412989943825437961406689902663296167694307918272974149928012370962589944627382295471154443507585118668354863288692565078010600425967053711468817856815264707557456407514126678690393747772366282489676455207136480944225183434412746873335422201480217347758666350819899980001876390085277947804963359367415718993762940909488401878655358765958776928486852428029017729893954142789476811012468044196439477776094786973716751657775349335949913951621819196346391626263173342636121353813081752935066953365584590748530038095624623723241673292897730920642087975091959808928968286209502745914536447382415814637938723997049559477773548768948039379976086824582622018946968448883119607913204944403909746452270081220801989689238703416116306973798247463863100756958503027158465167769953717865284159358585172193603235521496101681165319553125889240575470981234977174225503499568446538275986490328552840651455101600150869814091081431665646433240069459619210373926111097691516347783552449409662255061126180420623490548108127858367497313027594120316036364088891555045420836814039715764222032516616725543203300335381217870897308390065047398850536676069607340688476390402259453445631792404996779445339338664666833199864857148512461557589837774880623930773845423207849813075646466933755752671188318330311605435249802574739369936579729999235608524819563779181160122061215670306839831859940552867788631941316796623006612006175614962610556886245677926308954993174403051606847794896563806895643665463563337752855775349977892229440578636450083786189473389738781586544743323074106922613929103091016875835675508788108456188851115120037689089604272708031046226977318557244764220363265325819747981225214318747868551743069091822045564816456576568941502441569164827769359244551784424635561227521089918422880600706786624832756795144720739477122572985879937497905455982402288481956342078482875710523098178541548639696254317424624982302983648005545037779838543154475922162334493261065414573383654475951310725898838261982929019108409535830526615199234120221300051875271494820727433159496498847393708807029814129423780093745030526270119471358679165135312996119529735207986354782249734769312771876089979848888874738673960608179723892362432767763900267599016824450769883079936002561638691043867136760577278889619829146325979573076689707991369078647550434536036365117545489588227628050426963635742787785127589866694672202458936961016871471687032358159554858344369865378083075405970958573601891557131537506637431100422028738426223708325012774188545493088482279382195978263089765780539099945525687096340294105381656446086292697329423698560289706943452328646985016601640006427401234986459071593805632638009017100719034968914394387108261021957751237006819114831931061076919356233796710621204603395041378949448694933743616273272757006144949367540847045284232380560675811314738624185271111340416495645025656708882516198672572054854140387342497148732305266231306954003381125004848607927602068194732342955382258820082190790203001154029060211164689960341402199886105762106072922639280606623505677918431612782050329260040598823424153504407321571009569428536169894493560923361900827936720224403003225869151594634905981069115007719978258043683522725917725002589325806961079860589875874959944103970518029467324574450737641759059194898172209487034230638728770153816875043826727272092286125472496780365554269005408195915573248581473343458312036729857480276569551412047650094897046637016682645501113876195947932481655903257393029868277292615551423036302674378048740686871241666291809894907662386164136251923404453292953819835129247027888189253193883929193955693735177372716936327466390362812254187156332400828448526422739425286409884885105157419849251839709531731874718948373758598189863354409286399904851827584964132108027121361088521486360407301450015727299343947369089270948167516753264913674740375063163519763279517912559417456340940331092939584884200177240713889526896210794155853847966620190989250814783123766999754678184767404101114452129749647713790817348307409791628069267532044069614841199818767417005691643648503308678018456985182673557580017070985783302268711625419190772979762716450507186855997753610152473683870516951181451957997305346033245740618153806355698925707285133988664173294454721977639391374982067570995442027799180479002323220898090074000355965222681050048043955041028433235348740460071462674717701787084788620031344239926544706590188467744950161744888075497594532164045715188847225926649291316196040039422554230835572068300111915374531383285024486952426227682033177149138597924847111810113278204611583470206590448008343553488169189094376235999755242638763472892837056656285137573424251046032040565910117122267298051421017589129637088490999797288106031423852183029371071104925138772052565381465469749803963203100422093150203909880234140397194991162362046111294174503665082489575571550581424855824451405761974969375470693390850737146432229657863579615904154920580808516289249945487235499652159398656143539914614572711487783985536203433146763745132115593997892097758646068746970567899138420058964794577854050105204870767593651952901545241070725288128399451612034791039369765680592179076605515406231202577549691185572236175082382034905597303075119041252717464547421172730190661747163148394410616876867249538520870665771988002033023383684118126019400196900676892797124905143072475541999236940245625649831525529889198857041993178407865246234336298129403801354412272115780060620932134740597836889117452862491983208441400461898266416954848450061170527845690065119110874453816462310167952243667304663732136079746712803352563929020166506891033879553781477830516322743998345532268257636555729351759372717336545893178928407793118804986931442084251984594847310707751729823193420562163371923378325164134811785899591844285774088247744345497315034311793597839946120789197109367945439395473920406940419692205617462914670540094150111334482032793107184931222079984525351699276392138627907061587136576614576185026863632167827310013761643278851620974606353050992782494821379019441982073780690547089433060471838939461563114170643791910109641243331826034156067580430594638325300146745988782784735153933898998664229694789607206425830506838398962835942928099239413992297809618293786691570867093460290110570561166368582584180059494511129524458884791585252194283677215452544218887086989317380470672762803237733610669126555684805614863337573618228029013431072256005687826679417613420316659911123296976118139720074617370331707350781629116691232445244328381085055583653456121964269898657559971432176598956193536822082490555370079615119374558462087108592049075169706389871937821044275564915769473108633739139194111780848722225590859613845523538680233290401641746724528801979101050912478519038400221934097858163273356815724656004116788306822162142239165749156347775426613175798269816463885192899411592392977757931916815929496902805516348588952063268195531510383417336726743610716771302255049662919904852669665188500217075528652989264254573115682344592818266074957298746664719721611790574329559999069926664096898233538822615209528386877188332342641955740508840870962679584250369669878542588891112447083720750157207759544799144675368927456398215913110904965001100569193249526391881015128914042360491645808235259954807928820983023669852561607878479012865194448626474242393381221889364234858882186165617046717266516620878571311771276065607848363911976912959008235017526685653891925820587361359229481679715578002467462432098162077780739748313417271211902581988445217220382132904564747936258568661049480502737117131340374979048559649311125034575334308932477806373255463993197819922862850091431393272886712474708517571717025366479592007025042824309832256443132534202712289657322618766049140201267458288086112101319265493672420642968288615733420452276381351515249218549556553156642716110471471553297555320593721997716763506138351283157222378238149087249637631908517169005294493215931901479418463587821943260921105228848628301414072405692481739982734565461795156381348970369512778889872832619615539010062419837619480593022811058278367011521542897224541715988364976057498273613575091046646255985010445494534095759694033136605024883531297571247730696179637330505369539232457039744145469605838995162318052426895645774579063880884866286196368456772757221220216068727447992147293474245745641339856470301014562096449184364539450810594715151168361764839557553801205132603061920343369973932929640425044545225975086820931961968808238215913978657714854627991534708515104662272580880080780286196107082275519020619025970597042289171139804179511698732460661635594644695736906475884939299983186766917592392537261780911202305424997054443621567660114140753132902637493359105116392699768876821867723711861578028760942395916546978868124827968451896411448622040469230057829165540918093368697621368197840441428177678259999398333239141433469714003730726658575558977060275745004132750523097473599873570287700897487716641511014370706931579946193332300299305921006520732473261170841172825211771999919311966146165898089146236256940924902194225076499089469648947472532423986436741232361976464195467853216998660359908947027846856616829889759985210197446003707222198444648356098202957393911899110361265170534619671254256149379677477035877834261618108775552317273478168545096190838108803039448408538579295090260650524368827361496301055102300391825646005862669320677511699004777550050184721822944168654752269513154385927026552523486855954591348283559559749490911295889309964376371009473836740622324608572937145772454154729330787530226635198902766619700497653768195914903507895452530762260273860808447319190498437243445517027541947435980817360317189856917127576331350735127894385929742579974874067411331812370996101664541223440973926432457742043880242454575395749144503774979191536258270267564975038306214507991599727497630638919420211565507324762492531794479449236537434697337823668261911669591393330077473797141325577717368396649293439980009057430923737544514858080286047316919077232574968695176613600273010077633633711061748605087858454855654418992360559832652357585189336100004613448572500885779750367477532677787670091687043471265980584180102365114813585971185530996019183744534734720884375173475268221413395937347628356703390850574212606976263815973053314535176646684225841929921424077381620592444420946961864874836455348478270305526011533406597432481068175524060833246707123503255218662170342007938373872894841515539975957390397497346181200506938601353107844340147306261984305243437750592263477863752040863430053073059930521527809908167379756326127450032249228219673949664058131363245265312408608659665746980557119663165119781652313384650827399137326252736795359472558132019156448112779581973036736745453123433268853802756580705678245013450954409805284865501773034173007626581042944969131681109096920736244314815363232099245644790298459407480798585537263765626490676161914227989722568971347433363861455506563676049792665682816056670494908546284799701329750001844062118463445326201610597961707922559156136512698428087294757459740287065297058064469280257510479550727016766569445915282070720331277109077562752121115749797593953152213829838874488953298430785687451266426815054136486746317049160336364262972498360510937386567147363319662360887803064106680643255425385695353411128205219110234076831177243722963065427424699078327201357388372674149551455885524232144715560333368704343134547486271684452337480154963001437496260564856858199950053298069173338196441948516926730080715454794250403437856152985136797276373861832470031826928406534138633038418108087733859916403127634631882149554809825061526044014793191613023654220136997049744269780477937044022229774930241554397188366634115851665483785847093487454119360276808813083770641513128113032828979698591048353746360909278306855623905702792544264740864016054634436759090110836007995210232855886548346492064353688856741565267322561860423263839541257342469030208463124476909446935524912412962036721041255491777575831964704052890948052753768978695176148938218539475894001752597686615954615628826478550179813096483589178137499412460610325721488235359254843231959962036429981815782619023209027952070161325657920977219492708205884242755032657880282237541825554976837293998014658317160084954239933680253479598094711814757233876110833945512521005120478544554190930356948687962215839627696725966837274586698262679809547477242529165861565992026909075790583158624381818796241822954529660276468055175355666592262663043605195127620411418657026982853721622981823965006359095145805691553883884950325351001679944873615512988564570882977134496663020776730785979342550729775767943793374339993732111082127592348459373307705190121032411439130637644326210147921814463866006820256407007975407419207900075517079437366127239930672736502509547795836264461994245722297792360019292578848312064656791941255381792930164923344142515255157810612347967670782810017309508926976077319280487756731766589380322719356936942350388723201239059817105084865938543289495731563981370064213848831064889858541280992356504244706975666992503804158192368850634831650303914870917842421533086668749451111782114598452810043187708385215097355197367538191989898154613424216095724426445787753224618062465494477972533244938245381224320226208285621597275875971296298334020257130300919789980034696756214372045227441256616146441345588845225319679681513669735462705012323681861395903588218182238016145283451147502613517110679398337463158787845187776174739013924901019890173461296142395175699344160573126781895153794315518494940211901509337594505399842129620515090392516688142017349666549268682203463845323622231297397306738955704432919043566874545077304839804327806169458229849559260596710424125570686125691232122174691160392178088624029271964670691658494335856405017496561142402613981697830023104874303636969404969431170079245263189088589966968179344643881975396798113132260381776952751041761081231405220052921172987371986409813409934596902891305448121159063471372499389983625072212363071039315099751237451061482702081771484904178625084471931459536647132236340193949331582168557259395090682815455919867429448951025573994263760572627546439404310072347862518293972486889586699152556043913140828766079450514652958122099407399788132334290335285712588555838761306577983649502376799567426676360871217289706908263066042625721126458390967241430440602044670988056283504453818725307927736734035558041129138761588786806568960212937750449342406100653483872588164059833196000572238782437527826784255776880297698689884316147655605697023038644442588060018765867347702657023406066774385564259169759191641519701756808282603604400606848795453848761187125128972944571204496014021330822970005539913216473226664347083655172256217237831701234610068416157097922817578823185500233936200082745038781960626935984624852853971524626262120548528489416196375832470908218233279324589300857681042786031428914781430801556317382662471116211769172721983762403569004608841356863919586752419144435293366979950199321039911646489663543596017571609897506084408184753023295416789781091512665358030623866592853207571416817947805577331260186393690860247436361070582691880624250574493882663176170453783154143057836045915828824732252994617074169242921452415121398254860621923019064975632639913559646053405660729731509330676552945825943818728575003995087444341096620513286860396856448056477193463715996212477932481906513253539310721810307172207943430763864283235829385957336693711678209250378432098369627869673431305985808528246909504613238671437655125007372939356325492720954352161903432748095789279477416805510990773539271817399145866520708836741481879896234893741353064398112873730025567593130451968166556246853902573532038783507767172781114569312143765572116337853627774392843108251907084669940713062726289898257428661277917535883644203886618376441085932995559656089599346141065509677193493621053207949431144462649419351051155512078573084342448099954218866790425207034031221057712089920949875447727140483159796380595411301124990692120209513265474156612383802202431670586760796180084213411249503513505392228583883072163136887275420153206290667696988000534799186579927989986516808109514195246900007751737386374824901998380900380889727009898139678909033213690256089307657306112524277492135914420209994594884622147605757531578549046128749272878301719230871012765454433897731068926767947303972839946453404428035305417074656114579541114568446135779697308269880637584597717175565265949509157081898653707405287968040391791732206194242090961888956892974193800659609087532162864122419156115309965717454850002592107403547460557520315036301782132141898145015040002392284460791671118699702160971044309335760403526996125481555632228107338364282420185321667909421670353926058034409210018108323110037324180663164203507001276546907466054691176895466534909754397520669566193478757270253103024677698917373783184751888620800108312779469078878840229156370597911288532852838614244543813576411428068931478942149850509045192805663599951834315946575044746822697464141916390079418092824300180996505512759049784332205133200196892086624676268622563166751486440736257231960538556185698498138768299249800685948296735276802550855120046530496706211555264570130706856752058604473725980555561277000596789756804022723123832254534689815870475948171257013600023894567603780832313940686090039838859213932372911854765811082563639403912849968416589699808837640759279610583128531756030578099203753157771983103640322676049164184975660310573020968280505761587853342914938744842020347113727867819625245647935097149467327073440981923974801777596034213002817817929127241874878577047212455315079342855675364213441976662725026976247335951306387687349516928799819019125764181331822833273954059524086529370191246082305188046278194608590967536344224644658738040195548706494891648113719975953668356382019777317140930254208890978662163672102752099679182299833460945924554996072599479444395762526040252126749745692891496340747629755277888255147940019634575013708315596996599971440124759955758027781341268751270947470631213744447205399672306084792606553051693763511070156516832831269371319502026394199397911663154068465497595227112780800791706277412781985451688112609615605471075247667436667883393961911587414087998498153120267039802672170630783809507630310110840860317278733593668081091383600684689357630663152393154941170561710618306204848564489532638209308390693068786927589348857137897086527404077311705417228574863093393066074822702893163041426918194807814918193035498338594958758554562134642076899763237326138231594967082469725335566512021355980377088703512736963319158420265246458562918253863486707490001750386410499825383503731800360412064050717918632615621893286511487177881521429159867445562131609842410494313969633016432865237989537371090461223061773089313077934713584931886519460365879190526702707477040768708764796673986212884281822458390405860977600881567106818005366513608353345588602281995373492421372270234347861511795057737181721254692321586488123048792432976053338739731913486039159407833003267001264133238655087194147567112834745061982480476392753083119985341437293380247479610810467609823466428431874569739688938447699148546603376900154108579451084295573076446027002594131749765871223623758850793975023632736208641169584852398056218827813220526642390807292724256948509171693200979529905491298690221412880816445393877976516560787104764358184125282703267180570215090449159121718959697938947433120435385334843699173433802117384545499403803810540951309208907460151174217540049445975828705738570729897030734304544652590622853060803999071904302580374348515368669346851101756613742127438830309367802822604940505007891261691769782851015760278166727334462144102081684420523767057631066492131622078369351391575548471108193405674075342491338589086035699682147503736150459628268771652064897922076460272423010747256254290381823957478793495356052891965126496243528130863485585409624446091493399556633874436845324863421195402982238320524951653714240502168968211938132876674819298608765255168921229799706071209940665761575556677965773445987150611375996951250339570894893433421686252393331475896398649376114192136814270803384693974036846639866595146359707996565752117052547958301876963261631155193357684877204779090862282831894547104483032798548247843877123403429779757565834215169044138620822113258305344825439190868927920744825079924188585177184482456370999263445904033568450388950206826023962127277232498977732948458339102250952493239356374270513592767157107983404659369985249403390107331084469980757658594808368801591612539246690791577223028649066115675343005030823298115894338867680396763133353167240529050605382172274107478614373948516417491278520710409486175547702704584445588161004679629261944651201080201322982954791922224349893381998468745749090531893232760171090532910705459665894702044821919914345758988272519753108554894151707965441097291486124603422187254869291919800547322072692114619324801001725201752155273242474437492119076693511636169279316522633261441759271969131415332399291988038375803747704633365353044939679879529270240997108379181628189404501864348309901588586452202455625483032558888579185202345987607941857702008652618023472298961242397761557262742047099992187431020795138943079242783236619930266473146451618867221565617341280569732975145785331035285382965080176349059700308598070342448460168803297112887845467129202224780913385155296038844484506470795245840861431429504124040816472953466958061909549524456564729017380097400658870480286996141965686371686872491167140258973111193825058700296093974715325920627324116972924012027121020034379614118692940746788744630437759428202007073627934494897778502370021868290176334700031430317107669500883956054539664821638041724532914498648025819326624009519060174193109946852971600983043192341555558911805606183459619162634240735950221747981435962585454470371261345482105368390534459163902957118862214386693038725340370876004571812578581705663122230912067826765979558673244066321948767457266414216085443738722358920852834318187792796697941321586626194819535264353169877065766781325071545614637634966664281657220798825903912310260733037557357382375496493589509414113588459361313465181344182786461442826797710956447367918691449853191298881806057792899232745963570920943491312159720583539349118161176283567117664135081066897159686872668745492682462383181949230396992872451468083632407241445019729764551763129689840159958937659968205317944355717303523895829086397430588280963010793217538982218447556812885410046189756295493997689289802000912604857919543411673350715150372120625838336662660639087878606214908979869519120489623978846210487368863904792197118709558113474779191144089552471800165316486060342089809153296103627414166187227475528134052952708757205031665121321906636640033989344355835770973514032953137161037884831625671972203540015782076964250669609823327619353444977704445797874778475268247575872631401304348212579955780923118937362157813291266832794590403112044111298075208199559484830902560626885727409971815757370697461096721093873871691981655724461656128077347147959082357956161454061421174955223681320801294674535128288983186576827886804221212629060957930278163350292588132294184967731842507411517707614776740544211535512609878974647371616404354087695468490619665911643089865338332061616011355826642448357491246808764782874596132339397610709159104842526845550907484134622251307446417871203382209424250865159900684621290380210888545265908667530571922121949773995265301634130318192129134389823453156977479478462603659058938349676855332495921479374423959724972070346713874718181442379220817333964855545412584574876006490352181468709796081358753998406104288412719454301653536508559956242472232485474589422868243685239114156350635936194138458803632317335509602087187051206795748744640711665529373993271828895590638815389993399072430343044636354316563672597107432054820952754572601705896364895115181429956013023712497427355955493660759982881471525452733064692483028649219355060841622243630735207608199163220982165056600008773912644414106391221401812602148464373213093894453322553659522881846676388380101908145010711350702797544191737937564405713171755293132050781263215746982626536003848679223684179611883533426032011856218269690094016339581940551872089933864130153889348826219187235784930134696677821825438525003171137843351281106214690762674862621086893608470752496409548700706068520008799000421857133342855930875462618727415167305514861990142320989623042406180040750475177134033959453184190026882338874412143741393959592376276070600308082169638973148471670316103842650115355017682212667199046182237298074594908417160094733448272713894980294068843137399649830045388573117895034966487184171766369860748028708007636879449918954896922754004292349730071962487345581522157060347786186841678988427461805254402700399065085032205836071906979932469273018237958772406236712551733800603243304646983162339387132171889980619398125612470223397865730025705437309889264827920244846774379506576299190518829795035032559158481484143453787265159072295321470822293174879977808910689849402036625827526547006826203271304936677922932556449546467807901371728350240110595166601851300144216081824734979909260514633676642691243733192816122440168580064211800362854499088081343620604470061344793573859176570198141146547559374564668175093372269703043065907458994274547214358070074648525945175027128285069671866028521066174285015981305068643160043188833950373974448755887032782587988075441791666747572742626446077959176944829646745262474923889987775845614641564131961042543884398160445488163463466860903670778174700112160167137934794457385234626397557842810537139497070782456072629665678072965939159364122145063354598274332860166806952712744279264973951499444801070518421045662314120365299674142420315751506424273484656557076155965273631146641476995684484442920363139520752550024621811192836995262869330841668002249454072627325978056401259101314586148897742600364105875553311594654509486457802307964617371455485612213552053886860648473386642115785785615694349844531013700560352052802744419905649547566024891015596685877346272619428803446079345199767666520760196592844315144858679974881575428322130145579957173973070044485964115629039919878431825957185676049079074749620108588293264012414066516667273887268384717519258424382095135264696533556164594924984793751231605474113632015663769546779867001116046704208528299835528415313854299366885861538855313976585628275500213064069907297067467751695562287007813633701822869179858306655092036168196254466000431019376170159575488227504824428329973008174913870225307935082512591296291834765992848667177478141488521687376369057778062002712988352594489163824732656084219202738276472976996905141213684276396939307347992324083278361622110440150948631576229636467222117956143881514261042201338346503225065888357428498755311846693757507422517662265351505278013610265578342489894403560937439529724666142813613733702383814332767698197193831861414840046547217553432625692371212492503082495515126992937001602942988808361516534474634187827191931312602930101917064645680407060866165588942406744847912073380468790942740692408455021472266342919341735661587916739691858043180983739784704657071054273390471738155874695650076666636778462194053851249495332544712020362028809632933191526725700277420856633693746835113653095359144914106694001591085348819181476885946427422687242429751868401144266334901306505430930397747631374071822692650576041977372310818150387365292224492242211533594687246280358222307092963700621335193827892733858037324846304118441713460863200581211597788239046537722236786311732786017035928777157563415997827037290645454282866938024959017900797324771108751351477996692320273384971913153707660141930306374885068387266100673936229791917189081073021675902883541910322251372839232291257129308331260610596406159742283185094593638611409618541854163247355104832256327444805178380140929242261955918207786169768736718933149326817524771027953976390942571527131602427382945506078351470197120079818747386987481975638932134547661492032882707913652717233384686140405715978736691118624904584427156451034251056470598701287262801169734783705901514320633545026788058911896582424824048980236515393128220539168924418454731431674341148459323609705404017868383923021479576684703474335336499694825552417826237512020883717501232360344788925561527396840237838125028896026038151754487989371820924328090152053156226902257447420492128628745064392359640478890710858083550597663090251628591567590331863553522735340132018243356024865393468788174805716657015702603592987549775996721348572712570558724588642495767833340738251056930551235459389160917446905993236532048594588112260752192608177705970028022340592188333963577594048702046851313802264173355514448669583181691211280465619982121582330715504670288059435617500388945110337895776755846635077872482332865433335988183205639882719089999641304458413047130409433734401083033104026774540944543176872324721357526866140042192285172982490974454891504286622072188377158496147255407861146713731436487281351371181389198528484791894381997262105881523635253609276427507096945691985687183243365065994527092238397091238381859464073835481549784078489524969003975686956392930559236704932698297921104686215275252465856792259689905673659286066018490799004120533203706718719151872233127100190997667334770573657805626904233593025254261043427047420215543089164097438699580172602066809934105352437830702162415649717931016187972551811999002832995775292892553059498153034171773049636263515231486085857434409165766589474733373482952978157109311801192386954036362975878876434181719622531150601637201297883313633475480881149636962808644404830167597195704343948053018897219288883681338352502118042523093343491952465468856503581638011216588245076335365882715684842919571148617335093850100794039705100547530984223802888448868948527041287507286697353634032373858146490076938747204187579512479111265066464395833579591860111557371272292117670452335855087273377099980621697247462662902397481275876275597123744487542215985101242182653654957821776659746599037515636960885864017837776303448054881158471654321744881831090762395901337328831692748558151709103115389654634696701115077425537341168702018798815524792436520088038829688652817861279480666228100444272522453552433898458220417264271835792910763925205414191046341215871911122165458248833581795080970277428628723769220969093650614292586549000208287617607993179582794209622518326205271364448296447302605765407213481234074929340951861848044535329382221091668546693314111215999978316903749722379431154675806179898196668390942828139454081132603674433140778869738011528237075569052135298931187435470074004864448122283334488708000400943060466533257866949286670019643436502615957146070988826811441991717347154855324235624484188579746167010445041133902158706195951856116058163243532383696236930296950717999765108674262510953734003213244101051372673894806705831156362965250603782878036305949660772372947276066537127267124175824617186600825698786923553065890470784848867303601656137560534295358647260617464648468379608011863456086398402704750023609815902518332481270373331426742994464758501717795208540667690774070880716253367525593196395695998196483448132250261910053734128877434392414214308895098130739900310910782964246798938119068893954483405794819654023844928263852426799902553136215005971532203893448177893543394772345098625185203168111661372186197298598878946760648521360384531784376340726349018255768036035180699838991916656634201645973145411607584371910617819750263166936307917963806591159421988503669191148800697296962255113193882823459136128748976149099663595659599788142298342345245738139995671974279074673866135308169466004367153519624686073290136966727927186497901946081924834659207528843918766365456524989726571634270586237356941098224637428325210691468526019206157540536745323153549615549072557549518974376335673781914793416647594662892407318889770334578412558901627975071918799552074799245210726495586584889929266156887202340470207373400850746281185666392932580211332483799390055642426984561875086240974436591898223339876413271730412585826173445716136761599648472104027171841377911260425260954868217420034117335106385041528804162276310917159582716381507871086822787975636205580723998521457625806458987075897505220701324536239391339783596632493675574158276722099398481339689419915761353198726769597172427576253347428344133402654462361940794747271780356486450732460464234128418084422912087854921958213688865453445952151400084332994043965332494512527415254579915534281946767799621673018961017993879482182281202106107855026746947157555157957722077909417185533096883653091039610677843634440407860837017915989549755235239460593659540841498362587749233263772877776252368583504491870053047471006094456699393839246335681688135719183980858705503356663436461566100321690626887214074599378170029773886554439823971264514013651758710104712987575760674086562401487902304488552061349103755329245867406845373099788322075383479862235316922761764147318888286695596159895138358243375017898689884119501153020360841194563146829343233949098638392047571718633868391627592028146266964441227490286925105879515230611821452657267431348598326643262654630840200854700515722134430348883348964974759703197093906353785374367221647522137891537619101476289381260535739872849804814237233709635554212675361436736573963320703635122641706099605188317722825251490238238995601563341745341941799152830697597730547233135962116110307669194809088822823547061575254776616166570161108367332842140147449018067982456631408035674702071162646284783708017296221363426200044599674931196281943940824865811452360753015972265799213193258185085636530717744859000850334295592291578387616857366098666753403876932853918294547523497400085851657428479064569049102370841909783065444791212511350096217694818957059870432169450176710668972240881399002751681933641721543967251369834336404841638825627948162559777790966936178034799300783556123170314189456412508686970125436472807523809087112044054631959952009190779716319575780629265641011574959929605356881923623084313701035117495987543233220756366235918195154669464241934000653277803180060281360383602451782388799323378723794707354985553496144001215257220999363227285232537073801269455705577396493394467406758740898510872973355306001122689178968403938344190939636015943041463377670800990870022228209238928358330233932158982982134593178211030120401287135888070355303870005803474966400928527862312428799191192978458212835684462042084773884081927675359607499916965519234676170479583327827684741690429278156723968924412369670799360151723367523158227932337537934827834883296247068931079273727475455630203711473802316508926697121330234755646662509071683540282083774174057026280749501072322600189989750342419533900995925194789235976184634942979081639936114501076082133897066085760274649030660812544846215456364402075671926947383417235742847229878062768306765262349832965010210208470030953168574726302050184155869768274972137628424114834439314432700712486904936121652359898055425239010792352498989844755590173481041711695911004885527712971080954909954203794162193197878794202725239799353465637080167085401429842746171817539777126516739238741213828458465566390170048118433362744407912276031476401887085789570498120750237173116745677479769836749626748538933534811218483244396916951443657013246102799678924430711575447820588176795474982015612484142120138072669226198819225556067875400824840956255314934905487819626459471686866457833246614837333997825233579934341782713655047428284290834969657393336925922040120414395917695380606424917917954152726646030983466708896188647289689419398057317363741387182221754788543322027720420667691771567263992373593758164624842738609511905686721801322000316394761876037017893253241964576976463054705645378923802047474624595042064142885256839200935041397463036082240312970948156630905584149473254085828610689224111039706313855957307216344508296471670683092646273120524686022544627227776043216755824866959995256745820524762481645456193889767031265333538130578402852188787078826694392957783962370998722460614083941241746818196659279085028481839216331028830741334765686128638706219567987995810845321590822212527650464204386599964282249667022267426198331685007109622268378119790716148735389240538580979989490086695258935139248349274083949105708567201002900130891416360530307896864359476744334681823141124518048068134584313107286746183603984956669589129055968332589767192540027170166521441087159609436121414515655782101634001089988763214443049821611578048496237452987097284091395124382273240883630392523193760556426132106127016629947767708127565768980711781502209253708342144987412627983655341781149624599437285106384586184062597470016935004728103010177646459564484776486672724026965915215817261103660204945662601328044171846845907798290576570657960486298849485838190247350834519571646987696725381605009682791305115575390876585998348898195998421630483515121712388773610767230554849273607534229320749875915001120236672426270148530810760870094685821853063167243319306336558235507833955803583617211594723085882492434832002778742212516826263368014750761512776000826809416245688623563109761995617724421860693578110430979621269544093711390822261712910692627454072041528582532715234738773546511772431409237910462907135736161373425160135712203153544618620274448758216687092050403863054239642445536033482151199167380535066316694518679072470049157409771070071984175874656939742843831791317337341127808451937667894853261241535945719365335858348286447258606291674534043708577216585177532578216168084408832636170771232503386783430493582758030571804057365041754738236451589919596419309411364999995615587195509289030323013048300859874375324481001385225354820600597431752833335171702854941030352563153551476149953598262677051710504906580702323506089276649891060222513517783824103533773692430461231948443574631654154819998961662557284901647884251157799925494406099585730558558300215952475202130523985283063218222776584565672994359085106642522902328940953479842747530594179521613777625814303272029931404163473670494513981367252157530476779850461136952602992824689127656775206895586664146512916690314112155643632812741397635561435529155407881533795246846417175358993306535253201837605068244857605210675004570243777406359494820551507690569135878312818650942711393212269457117507906511028678491527930818327433700397289871146547630078611074268987232691580714133529399643268781542672301427514219731514286683330190096519974622637391750153274223879703762579597305905290122570013235217984134765203712162576856524729287894835206260638514640659003910257238507419380215176310956068567176785127958123029020770255384264669466891864964193109680685848762973051165591800252514520632086076783861997941451895873007642463320709725212132468249553998908166940621703041572772526442860886289915097588202992166228211933723568187706650794348348361182760674132356271259888044410432340728087809183328866709398801455101068967232362480573513412126175013974398339680444524356695527667122448136234158729641203432817224640334497100286646869697488600462385899545480089276193473918025040154250437402817981309856367070619190423070827402939903021377215773470491500223582146768170265364362716038330450225766267039077235327423956744468989192919419333217043347699677396078816522131858100357134464726340320482492605580539020552884046486697343552389708949631982452921819854800200972748790654190416231211478957570534603807128030081089022363167910414034997074503447147979444431171145663825355304896629025901691500794933303956879947895124563179009696668098401344750792805673166798671133818219442993754724658549800873957005906213766588069103687789855261154261674271772473603933966942687405499554367179129681790702874241640137150899008757997503918144932813890889267807031777351825197669251880122545999165449721228077538696199174701165259402922295022940102876803719067832827481823358154044057942083180836621643693674048221131245066506771093303179343635306873747594022930144601668294853109946301412619390967476476317410465176727983228678484875701730496521899398992667153333779276320037721019394680587295900577449482273818949009990591302142706621008998068201048694391935602364545992623338861453999803763473879133282450556750589547300008197553021870056746681474163492491518383363438021631849026365326895101595967529238188451595285074816631771711681158741988979997210658727559672980283186658325212304465354091756790111238742649472898007251650398377240244518494333104468931426504831127691816019172247454579729628677885626022086845844067728304985762549032595511495069075299537003353985017960088033535261196153355384296791284630237787299102602163876898035555053877169710748467771587527785797417537447564118722995962562841289542047982873670827583078710708498571012087471466849586898331025757837869633031102843184545299656097073373804052464201496557346509510315147490685754481179163069733076807863773968209953609044924288660666696289650855803417829911990238470516588335408811198621051048289199531381728179219144925539355646135507451000046400551575792857731565943047887785733570321537516837491081717383874655942621289664180027345753547959315133372753753115685947398356694685369944602114490314025746330016648479999556403033021602431302225472649168518730958163413840972282021924193545500035327418588445764311815121938025600546262616049990785486062692144691707067415940910909648583670313258784170027780115954036064993097392536331773207044357119662509824997076212333575606956193598764118116970454261906400735916759950049410495105902051495397072857428925485713672671072025118809175383859505003927232601319148127114659055340232793933498772859325873572289066762690657680162015772965212937569874154682829237620872196503149422863548729110972076253068582771065831665389969136815727220011672775275024478149542036357052525945052666025945519732048893494329015086221091879164570156985574115825187597994392926212501261445178454795127316604506555163871581472479757246550582285135403727733449411837866275009492797854563017809287036157151056652869574490377435498867049265382186828208890482747649226201931882637080236837060594288871091684439776083701881660450232738483761944228614458853072329460469967748599340351266604410931549976944857104796078336369539941983268356691147779608377607386150219676088527571396442928046509232275674842543827079813258681724641833611362356861955274742499691251959578546858999265941499923355755443028123926900729907497156796943736582349287210768736638741670065578252263322382587860733700091407828119994315131192933989533471916434281801161875192121064082289620327293732781509800659784717466524549343822093912009579288507516404389987079447940590061200993418767855124888128443353017857733775992264903919747413827738270801889582565013453007584391099822496921688237926591038511951893101878113853974103007308221521954463800442843351545207189303051330971808750733309528598684089476171074341099298058051337898450360806541671414023865918032137735185996773334762225464787288811924426534688501649401369148259361179530892971976941282599620190792522850363558051089182148032214347822218858361673791593837418941799787628898256266127880230586664326390950649689857029508275741099715538451938836638313251334579717228926162677075587144435149647867702693253988144457135921701481366182174855811096924606232429172734008884618471802396282533032686129295444987482661104393972522163881654575339646967733560373487746360059841463551733828641477678421596037597735110350333071368232616137162914843779878946513619399176546898667451846448610032657357504685288226018934207190815815966021175859768927716917962797421889219224540929079429561714352019627526924141384968079942119096076459830405245834620105896489294638409746336235408616427298830878683444271521629464030653403297799129347181479528936908263795076012896412663237486779301814366212534193384030902361694463440812061461450968405143321440834005077088224862079861579183861754044560021417635538877838782124177516604425082565507523728994975503335809447567878523510412460154633319548859893371015121240677220482985605313332880524455701768161414618553295626528103622382578831956149728508595555147670618470751686898969375077686077471247721843432249962315170193262388411501666181982301627148216963210713232792652902942547955991677202163556049206562243685420248627754013518451009348005783386728849144471308600347180580460173792933972922934688839654359169111509736808231813026244559710152729332001393980842119782895642287476269038495201038320575332113243460127031176275003286326500418126117890624365269686875158902199887777466549703322673338411820968779218075488801457179465796086048586185018522896260716222394079496730825047826320105145460247818231394160532698579776678245872519760952015221556416706536340011612678509812645108105376576890835643136952452568211252011588428080682664167064525018500976410725393375742947443303757695884712414916249190169548735652640877674860136418956491780433944182891879458741345170042620992430745684136390920220939471912616783986944819561881599712186235376292842184507718091124826524984401110057610855076317320760071116810074160627845371986809718570921470943532804526920378311434397847117989622791823934351845953727679042052047913243039913780325461792344144362070457583035555350583864414351701813641824474708533911726430168607379721944495212566333450727112058331157914035405525890728545884856738635186308556527289429178473623749309737125747484248478862321026254374202335906289589118095348814433876367546765040372033624860429990991222284403425491021627493649706201521252170334406000231156791782986423888270923641003229658998155317314933157130450820561214280860046469261903335187118024204585422291906785166370507322849326388057169293210479165480000195247087084070144072018777585315872398100788532472314653221064211615744347561304955104691640436426398262469870260157913595099815888665038528483895903234599563816375992066000714309886615533805428879252812811132112493532994546167546186461388379538662967811234998681872285041098782019400119498808547568619548202320709915765421969507202248737724358837634385764151199189562234075467378942082063811141047694131000864980018208435752759623525564285142830257543074545104412363622187280207618123502662292956196171920707682112222021060051337617013610059516309020481276886555946981941080402729082765360573838581012292047472896855670314374063801211844945606256845567454957580492761968970628814042446519356341453281930715900069868364573253624983346598119288692829384924518230244264907443149847719553765052214675610980804213948218233820507779737295911718161583792055316128162842603601072678443822620869315160366788696700790458896830007316096135641209079311377586640150722111165928158050670228179570688759345711550893671365597987217239719188939412808040961644264912578283230315643438298705535729179593827216201078126690467367770451932354733220520934777695088945836555321681000256433980121178400237484080511052680572733864849186037405384741829667230181197084244884440518461564983858191495003704447571948038741759240329125042789202891047432646231769964511575502566687449739621185192780743899681313455919698889438720982105726094524041431401379048238960499391271315746783636154953448262386117866504742907443186983855424215815490793097077214920631775436768957052034416948411347276163662058615265982530110017844953466556791628462996279324176984915316867101854767158292568017469557656788004209042571100202207759079826146895687965172185348624840206113050335147621795518408959395836925668690155700527403113698610693943853110504259968141869600861328683135585449242497298929975975984049537258682254952852438982681714756947143016410333719813361964279938159772396853041092292183600808505821329337799984000908864076375335223426576117696349799945936828768090645385103056630743611576232286168085842516402516233081044575935234070438727126783524149112708029674740709265737076116136592838329294049275511698478949219977543671975710763280409201871861467553736228727225402324315913336696074693983663147146380963396941634722394572035594040167169139962061705670355855240384658273401642754833158197491736048173880995418266994822117966020441462789123745786939517678098716286730194815292185411619250142437537409100541929988835242444332753558753387060633433456157186905669364151876004228073414971085669983510748487061894783158556470454428277164140309992521562742120691834761447710130131563752126378156934495355484675047344820513434774328160079250626190429995531157775701702459515767343389802048938804716423276638978746602842907429002209178213655258321756107099454744399133579265514713412690146867584526678401796496356169430677400790613940594272817509325890343017655106182529065762989490050026699430386972919629901820281382996122935633261729050438133427568325190734448733141226861011442949607435103803583356284140176169431272238469236969776772266016505524756376148759540333083787518920054355162090154029119824113603150939785504481452973461736584107273572485015591907767214307166601475410742212369839384666856653759580600382791444414200730515229969127822864452179437986919058150124836825618141673978193033707720940572371276217130424737810990428069926701929116034817376950830935894262840586849957689354146162573567929651917364510098357789199023177925792617844676237864743316984802369880388501405648044471720236159389709325418388479513183806050038782219438795101488181062049262092929973090625596616929729617169826195699474807804929166068498734142710438805399992674608779368877261815614627521168313017336680053617189385076399726217410097434371766939587685808839595605382113663033537099950620216030231323816268187151075956765761735178979235702856607957739952754592326325380256899403063111691178506326025023484962977024406958913284654632538798396451057221552660628462386970661253986589622864256035844223840218333703628122509968465172861685055912449139218627875625760249259731611637207857522622249736510804207665740703402599629292476231851986818191469774525346834914234513564168634208634302865886387282775824865356584184188189755722876282343773556215221526306003376571450762812649742487796442529871016549002011628678094050629644503657958876002012417800477534092604141072600935282284758053787622319737034777809150620222367790484996668972214771838020014010859647639022353952388764485642879904336951644719984973122530423814919646547747905757455242806838141553559131668026937456183190261149217206321468791716194142569690544706934920078347857002740327707461513652171714531870278778436289101572921505403669592025447647731266234573153725880640957365099548422194219308848449559040388328638757356517477940759267185383690845704167892687724576772122518172285669632846208779378654130931901828051516360555032690796457777680135591531153331262996765317036525475930128363772570428672218292371348090842398668475223394880808918478532292059916690068991745303213684126456710414259780715456447091346866829522516480374783796918024128730712427588699238688014154817065799617541562867102242547960062672685298409105826681690746579541104851318836780128826344747590520818727618201938748193705222322226354195397511758349232182972991507161247027636463034953913668130028004525726560372614185193040067979987722919771280250388185570457502624453891356466991701834813608767566531034088927310975938503285104405550017748794964414346297326772585624941239781815462299784896723599809329976789740095362384616162471943865236617251515272037118157891219682170894461797895588126409636774784281308084249738914565225600140059605996199242065016608899731166630044290951154610839097282325544214206706577137459266434775444514989661636105329250125914728438906469214919891419397897530017443270209852462286108069851176531222261848938770603951024369942342271418508541259198538420688989424754908973989105364383070080560866490694264276464950910991386926068028780918206545348961217899715955024866062174468805073100010825748536792626345316226009879603005608722340705717939476424711299668412434879520091432731194193660817943581533844793773391701358388743778722139134647879770430622236315296486063873436358374817668064470290320511063891853632869420732242522200456342843075434847495854641817292232149213321468658159906558769251569094436410275291931807878016895617398740630531751519007753825178176247351289842345137172780950083249488971489183339697201430320611452971448951714972328939448445651140017067641852259258496757890244098293549852296139543725768172617451307365600981739386262421427728744998093168144675274553482038887906438438408612525230717161958945680908043071484284035691797870993650746626235028184625082662675326891476851263061576516692967636402144025287918265630448490710977926236506511744928307704056148569587091438627098590966259306567501952901546408754253889052105250812008081209793122744955522704655845055628997184244084679348456196924728528934823948629015621392483688038177189724357436794322811129235395289299322525542909395212035185333736153970276608168982876947464576981266007674832043510900630690891490584827923454651833110957401753146688428767091188643521503352578439213356794326201844903764529208374123436783667847552353233864228797158982170983415148828535279502023536520950978459312673037476830683862697919824775705447388752703800072802001358020302036573587575070703040963939221683249735119848937456908851320369822969817835386664749488946435218348773527549788284360912853287156208252942077881931232938827286813585879350267111527263135353822550789115125229267414248256972904477055442541735415166373528655842181142834931335872155748645208892665553284014458095548952603812306476488336784557336146864089347237860387519613612711526026628124454879875326249767413286572690483464280602610416250737905064160264457549777287882688031620042142683278470543321775257003899211516414096379435510937575507638836100846120387009452365393024546137018223957331670001646024093381645816983263449528201930925385881281666555651409412571122690856702202328491028120820542175851008614476679619287222734300462956419286030386321484726335531916174808643232872984150469521647182353999479149193666992843123572389261083956344763880128712626671837558742027751196333921446641642892422579711049953555655111827308755272546545280911166935559318991107327293964499309430218703652695208704163241239091153934158431738594104515314851850726696637688925591724333677200789330234924930424485304393707046756922043658203523027205091786478983282287131456460299628451765733854289004081671418840081863465588538903290901397492859991087245245038324355753543012771806031327622281833030913364380412062455377631977226827104004441688968001481055683137941383697799024651105848881252711371828734540490332067459870351697333250096278242256990702619450141277022486771329432480382060872794892363920861457251402648344723974221011049179548643130669123669449994342374802703026924403023705560925907910029762602303063692145169365658301403058317491532667221423265139504382159337686044656012187857864472912211981621709699761209167532130893473432105098539277948045153279456360352556092924572346114957757703078014094146237624391317605751643442504018072461683433915518952121725677235310862013129177268455663732718514762975986968936924544189570591448896479547187828652760518837924631542748246286784248755570153104147881647040295825722063397927231684308894969080419020682039255154409982962837949037476043785491274052502535656274785476128940434052888914885383487087167628798203217364868256521190712987530964382576103503978763319039032253066594727114744796283517250106137722331270804717070998640824724260367580898551325387384928421805092748223237579285049653745418927734975071910117815186367500464105017419570584094607457624234359109785429281108941004627508435966027633478144967167365589908507489332052115875503448600545409597037317510181840267100791495568391179490371245975834545134862786606561038020489627715181169906252150571109337746679142338250031186067203325847495773487275168580837332243227304064070153141380322715248980638923931415290919122448746066016693379980826225609824742643844521271645567926048804057563177486651795149877563922186280106255527049575304692937308039805473695504740077268477610863494967059512911996580484533809763865878698064568158837123165225524056667681975523717900631815774556867935997486485523149739088649384805821262727773455463733215802556134650704078406106507402014054848862190336997830931051972132885120559727144825768577120776089437278269626816948031076217598506377015022580662146403353019794233238206200283095758914056369278444581042629536530065597570476311025124362429190301019877547599414567085323226742121562346235667113860067397976870400277075811890908101540712468753723225647657151643328229171204852034075636071894089089855217414243563292796758947794604025571686320530367716816578961611080957289471287103047553553649844811304976644616376942373499472568052486598843087188451942943795479259162488770348685217070358623718066380986763007500015280479859413688948234698593681988617402201656542872153914042317997683844562366366631417037477990098305337933606869666276503853048749526841380944569844498709294262351871984004942401461865338899664049642975371860734795909082105354561904887452299879789391583590377504571703589767645112005166387236963525507023799374695945766452737768025296539676506935863602189726268652428692545007693398084684529580181478631539638175362816483626961943137297016043382944107634917137019346240143449655003200524831650525749296020548515367567776451400442146008464484037052187531949478683786092157122157879888854386738489734850626182997297432745071059354592834118556179351889274176923176445328267910300204996352831533733449018240257294386097427475588928364552842338254372943853428951174010470093142487332027388281004403655688794052910373481365311971898903687990496635566004419634216080999646624503565698492334123930767771934023661715226740339154702025348304775790096163963381856156102336805140011179411517014685549045268404388376944035253229629089549677199824418413861635272288193027873818385515239870085268104250491795662462780087717161899348489160175739502749645408113454428752908362114364570279444423460099207749734547950185827650040531144442416730888650877231866754101785258744106899536777933213317991494772238888282191111234560237088703155546963006915155762630546857769308762145562508155598466034558019582922380742057755746787450788095704126112151769281612956495103572984766879230089498411019298721586937725420744882542762838259761595496791269818272378255386720826574484524039227020540674605906100231302282889948530376414682465166494827413412953132443399308134011235358797483233574492573076768327186102009477867824452428124565797904428655414643091745364684389026860599757166935974984992050564098625020766628994276381962639357419810134203385293111077473350572603106088619020938426449325333183690629383417036304070112222239656371299888637730102636708518362797150959803814361963890283214778364481510487081522265948013328092569084920241577793960977672931032475014174082078541114075184291064105784077987595026415330216648340003299365265405651421588601781854023134778423345081599842324866139124120393410347830334299948884070854254328979761478254151058310310706572044852352243940189334589764158439108077691758000699045209045321526241273506506602388824353862362350537444117805757512633356142051217360326889543336863208517286366097021507497633073774457078679048213534312900525564740925454205116251443681848885685896679759021324614853220306923074304090810926321870876451498134928450015748179378468871248265363145765245114237412838739436779707619099875476568717909166600767093880458163322066522961031421064456457497800734081991822563296390533845863907787214501331559013073135106569921872253738856545482222790003563621252080326133290436682132562571570337633643522582354656769728146858555201929646904951493982159150330178750917115176785451679954325571740944593820354805056462490996698624191607541683294939232170126441012723789725616348062177030159520628489997067859053004681893117501689972913145174421831386964276785009792947696814425199671683571171188140176567625441470736815555585106764333441887735881223791219319782687339066425191937282973154381732977008422444863330518743647380141310636332842866684508576792966885561193413528163894521912039775757546437550837327144625618245564455830714177162334010934743260749425702677835218219670329099077723136997207281769315091522039454319243640887629577974659029266412861330231473646143596331764604823515549875965053481859822948155588621880283618048474956661684532519125831391336636789567390246660542022692399205691806053090236100673096941413907038764223963089944203711143251314814193698634751558063875753833769483822473914452599184315013605053631123482503795068857468851055912631333697215380620295905801782978514188745613742078569654577063477717752444013772094136738499855785342015713434586537314037761979049819745051918934736335127958917931839538683275478708045218244487103397215274141460350524465809469985182900037059394063873460898471453797727569005062574727998354616735553488192776527247265248146221241769243389530696782485303858498880035228265473712027759810467508404824711596284749408572166299163300263857060353759742472624851286533215659372409324822601306566907935077933888533170295189342847806656598908163517955356491705776681936683876472164435322187076298084095588576745657562680790738291981391006412787981263216687809914391386197311945863287023196170215034364808095494501832867418116964915928129403348679120021602319033802913069436699494795561435233085953396765092895956109764928223500571542164599637735769433715961609298198634225068491272459742536858737064651414206625908299041993636676706006047913389804183938333084830105261181465765003979108518422951447168606776161201745506570377472844216331040501565216292814375029051860432331534033936292934798017547048104250377771382318240992100536887098563311827772796285771974788112464117920033429832340527285606440775427392201428042337282911853661554488944547968566620172545856622278035119632703357759044060351438216284989671994466017628410641461546501175537197281649530450458115326713892458398916490024879249257370995671751747811958625876312474733024740786335964211438155341085736673054961114088106807442180214239429370742600332118100436708418496830756436427241161974528616977569669061528330033721964010049978713095897856601110745739541843429943617170571938567711676237478948020577519759545632448966290633490611456431148894388771523608764667288555511126855386366225550668225215281405918608423936747887710505781235413810504347281444674827607132358627852211869035944586448717160991718695104262872386409722044522199640025175798080540564356418560243762999395166352825307863715028041663146729010764083380560674234356887244977726785732999006962879070798813825483293813195551347293961303370096513278908532310450084105018995409555997127623740802653632688039696549434251543895089451086054579077325173827991032421585016570833292048266256435311210143304455049319792233023493825328848015991249070715747164134132934202949210205424147062512244315394067467212037751821114081230214456333595786885011569073795677391686379294322100800226726076700097418210823473804838432360629591986016193615722496113909905633315799128228275641156887328766298774564049774447988321257195473204795434165284531162875928869620612582540620730751282914798433904938057702847023915714383056551620695432180858061236416571840959172146295330438762436893111207229861353805695165568040807370339855305056401144828324115288156245538247644384357813222850423661581062647898175286509106195895658392192446063494784771803137255061781275741030556893909512369185196856014844854196161663724593218112319677696648630864062842756703913453941382184353111109304166511870488310445413758869267004248602300272536925216904274556787183498444321897441018393170591629438643122820106381080288361377484830088927287198509774513830904966349374673436112709889085395041386578664631045763331414347720215915564956945051792998022938142332131731308434287214874117872025168184973997571602787183471996416093169202834602308357483432481742568016678345331517436970765820834770667928896779368472523405471420084472430380780290305207565902544195649237166773747003562609939329724273916653180101408015609046156820328708166901688903678096936089682821483072568869089464914184059936713105781912902292603254213144874217324393157365133130711671313367194990638542387001334655927534937566034655277888768580020341024173460617636480139069677135751552283281974543190028288455742216004507802699048849258126213934112322868331272079817501475184164600824356176507572128757445915641817058407368341990275785022970288734028282127850838291330493661027527073386008869167578859131236459300802688689489914813812093001119450422080126540907612695019976464177336314405417717870331438183501017055753732922236579543264616392148240014682797982665193529166877183195296547221915740314720747486146639281927939938193343578033668007556224548394584787809995510753559344690042923614377190425571929053584171940261661585041442817619340048854935956142741086119632361985162793631736027870730813937879314255851447753477284602245641534845115022375203017815198080738580538573195325034358408148719468108748924333668961656557149147324102562027857011695984305085224813684790739959412981259860488259324540849536357430593992321662127339010289651336915401251850638178633513420902744359094584976869359544597039201174525801849372264219732701440561070295971815989912064652994106474754316044562465118073804226551112034078767458097790739604094165645302352956835796908020977285435646903628620013552979243796371175354484542805102455141664768247129363019209513343117238586776125382853748266130449440533561836338622130700789170310075031313230248388868512205002270293750793711157133246701462385224217333594362903822959627223258184691274883399180757906077220576210222544301170243392169505974132643585831535798963462320578080223277486455183124061145604353320595864458646501538098850120482845589376431798476253335531654572884830890663591829029837301653629628489313151187423560219642510402636548597094180578476823861097821787631985242711300248927987778806799782318209393047057600209586052616140605717136319657683330078738325563110704546801860606049315372403782084692054607693363632637487231750500079781670288822533789995971128286849638532685372392390948980295240949169124442631946058585346576981489029333681976819583787937241100798894675807929101146811680011347585428481279072482395786227047931552661049891952940958155964080917348541405294128932495805291403055812384934571897386644810481206735017741196922748107372646577360209126880746956238813595248297355839059355275357975854275690372786267247566335656308351971733525702264461491081071181837698966412911053494503752034490003995300374398217915869982850761353154982647445316703091567106689025885843552836617107242976315323049945277735211475691357602771233917436434439385707439157790767408423995986120227581660159320142794615525073086089724905941843059908209030563081838484295794034168146734049939207628080138553811358987229763411220856024639707419727259642982434608973363303947891516389704834993641402351096664808603614407988219699048167522929796669183752875361119227675077797489661624006282586692612797280346004259275015522476668813750404363130770123910528192338297383936414101738715977002085538597197302374576702709335754433736333217531545815377245837401807598154236505357734642465518135627164910211948269465178298789879154551756289739313737470547734735017909222368644122999730466663769914513264301586064725914946496689072925409908850761710509561357595326373312536707550903378423604429036720614695517779865913785136941117705212833628042984304721125148743938122263031937125143491626809050393898135823526275717967225431110961710989342179454062450971358416480481849221014114897104885384334801072329346402909116026077229019234565210598465176631049056292092700651922606865413883982422227481403447037451502633796598135295661703318277317631525516386050240613831881641883376825683132929340210291827382463902647769433648822734113892145610841108207770044921605350252709457822705321830032582037650942270483298828932578681973732651148355199502821003638587675999480015391460591871300708456519105684890784132578476612436002849905046966224647749284211587691619257997043130014353931514483226116892219176634399399240460952341238146798845420700945657893446244328213997799524995709605871198752134724884179346411886237359405130597923823681090381291810893512320893939449400379054552734891344800085662885652008282279835069739592868151722712641471301296402526823728210775737617405639203853161703608411682483285366927775048318790615218507861527821963394290243362722986738066853879543787587549341704698136411097954270210265556866819704623701381969005541852926595693814075052280804694970216692015314322012341251131682121442602663313147389573980339624212654881699426017026623634913245232340641998204197086695852865336851402193696714346568589257897393682622093020329421980793356195489867365164387104037904213106992099383655675419847949630115292335460499133116432861162816548336728412871223673505488168420686085705727008451105664631587062368629847764266214859202712819218206425848804129006340186873572888224950409844746816581218060936249155338101825395328342634601148422344172125318452034460625619491788327164389166414100433377843812432728015683453051907441192579307744180312832405669743568369433403702955223218502172398642225871529511373902858961016558006136995177152725958823397697094690740432605850744504334463514616203897507916548679201242766363870334307016633494261256717387392091194451376415473490959847716018854177234318059503961862701743132382543827058067374775026401521094195561429498515653607869429290807094837603017345404475953143282610662067483507941102913976189419986409445297697478451210635117962463866585987239633933670050740475492014792415875091681433068228618726306044931070239837204630711004411515406179927033740090993086598246859063349083432711203021929839026039079427447463145857990514345765988622594327497083398754229849945967226719266713880529893323548086868709512169369405738697974242024830225880335651799351467599440304677599526445374442856289163462620736654543948538515072554166197003738515688615050500952019848438901936185478961710368651073745072291437411352233364283676009994887698557260929318034831481829607869345058158317683311087082670399492834259086812638587345544665303201496935855769201338453314552428394815261459397242769309815957750706192058182476418993284670911141369163627674834933232174012952287760056687672358135441922521348962849439356452430575984673203888762443677513164512777940168857620186874209621236164452981061714688149259632321001727979059538285610119766084732878953044116754590342591219278125478571989327865838385207557143143832778208966294525777762492425010090821671552911539670915578514569636592043728464150029592860616555543768687101014114478363376337057203822504591362349677379635915454545630421281088974435970109086001113789445443194337037549055438431770501204207381262639389667240506865088625549401918090561226286780469068195481246309539937671085097778029953400361715517447561341489182360465387634079708296618427205129758524373799364177168561282987062621165632084083420531058359809856578520408597329166095275250682108669641625424259287864462798436688858569182823965964697709331524604754622269541123019673405267384214205275550985821723335326708163325540089529450637504361546411373366433061328205706561055095621860322979666551389689718837675792707336580986382272805372242980305818095041247268816078421797005322635511069446341557110002058773454644135723391397401751299907985821374525490406716741535397520625576140648719809082186519823949315367959735531854776172953628596086889031741466428718712225342638283850559474857863977285903179826269294331168034234121947524050847050218912295477810625597197897246540100713492525416069593631338196282793820043230201921838299580635066126776033475175403980228668367714311148638510068822582739325158234589753597604490635009594133791707657912379987251520912518060194137683638984357562980701103102954026617645976952336744645706061818842831639023092435910518608624191468506862850381085621872032256074985085379302257839954162477135197049551257806610218699710278543031865542028591306081004661909518279116509022367741217601579394739099305605692567513092168694555564020783913845032552986013618914419002887920039933851822286951007714223095869551119945198716860906352888648316213195631708776724386444452091296165153140165973498963713279464361446044262573962919714806017674747604802845700579337001124320259151399170476736525906147720873403677881803902844112239338255768802940275029556098252131285315150149281111927833694996259240624446335290161659982613698123447087904776236330565251338915410855473022465132443593021645884652137344793217120735527560525947218594487450521627174970445783798789753695495987646270066236270560265075946701419982510860125938542815509226893044054302324491360671740966432300488923815557386672231013469363358716877345509131828964239422575727701005139401872675255881805297754386642008037872140254529871169169180581124360972513767297710209482739982072308853737397401110805209079067102361414265570076891711765109173463278939982996493978939907714144590682966542525827627580056947396326268598528844802549811182548786947462145892974521091763507667342471264743614532195357548187758358533646935314998726195473639546645444422483911860662814166155543884888865999647824475073762401626317906183568792085682512868820795462113409564178183188431813494335434568476760825201208721945935370406830449027668371980843457987772411122477824720896789346604750343942686412312163555905497036101012964398146563589122085752316082176512896420891266690941358304941048893168433850257030683751321962045785573029411339809678076379067850102944865585863371382544945185885814567901294053065907497047809126521775927919981487949329259892626999090668390667139019231705915163366086665333841361734819436445471545552041444203749929777150062826883486204551669641925522090270399703720539652267801179945157348202252032039600922799132825920833431326440808457075762950690869920143471800142139561399779538365334452947564848258410414826659366151175809309558551239838410467660809329134349354806320492117433995763589594355095567503053862771271256171444507830352937938259200491304591412831538717649353545286910508645835164973662104303733436002004091491836074762735454257956847507733794706144622534014398551133181637826345922017502334031600313060214618041888306202934735378630490585996365938341927660184468378050590048390921797974625554557944284630540052199160073809461542437600757213301019861183801427358451767401403977880059186133572071427286925366583390730444966786885673916352042945283760350399154211712172279345299947191245222658973087327881238132002360365867125052563544999180187011717030317939502103138312794975692770928963349617685654679959817850863414693869968619927634811489146325376377480933369540680093747397508985154681003478607902084806793636991071530746192637044246806100031124675840701098028770118326703578104894797154014486916169363842949381445979402663291798308301019914232985893040602291596403622220234156636402523242737540428981323073366133280537174652158286657431841543440087375358781464933537291945548801933590118880528023221264704518778610386303869813127592834450096916580599366895187397424023324506172032779022928306008446097478269047414194264094007714900049447633866786083894197093257191132974123186548188064826540973023729015286006542031461309450189683156703098982679645944058772326247682877911891252401103111285821836247355941795923478417734671756368585253279433583848896795536334349522182302349128076265378580256052777796178406430140807775654593175950581726837034182573369400999837421932212334884423159480360253900464389803515325563159780754503931639872954696335490135980428150728787811618799161870743748371013173235611160527517465394600303268466636357670346664164401563191127095923694084454156880612295599164583576494766120972930659314378752381494707690517655657236573781939392018689369033485242481713918171077620376417340894760066035641925889818354101145229101210552163368867798896308328818816238489688491199141025880031307919968362376706228562766441872218565511779179634136902323479363474338042241055760612926412701476985905135017125668319400999248139947980888878749205451970358621151868938886538187984825258881193472559144779453626595797819053108053700711317230421098103455202763546223906842166230263150281248656299773958603346866168996418989230679344224662801548579148808385412322346308244463846678003138534284887812524443594605043426074667868863264823356004072188788010929710738412922938640577621168888209966610513994166934177728869010059287024172947656077547138169305663287219327127279966795399070044122716012267764374937742151724537941646056620006403667537037944853937431069316242341549886503043098884114382892747891317106115802746166662742561457815111150928426313330398864905380956620815659130042997996572376462855876090161491215539011100509211973669587955163914986304207729705524040686144773151245956038811878544892282731245089270169002440282370418041621734815386210294268322618167645405847466287144330321410239344288816315655207606049423483577825435280795653546248026766180562502576340590872759853504784054395709237765018170967748917063931474996918073576083783931836601897556669194136975349018352194688470994895050819135293673663523925913626772065356687286693394033715284870779337213294690450334894812368124515607448920845900501236020870674594127203827157045760513377069256084865026841688346447399133409693502621815851591119016142696232857182807870106212240886456971606211279296209454752613503689029640678924807000519596308571418287559215495802466714001813947239403493803068503411277841932138766385950725508446268176771733827474823363578866229170142267655106539536521989667750263389111801527443566304239670887390238525644259401179754318402332315067565846282980814449614542689107101363311120981977031807260869486782991108808691096773226931243014544289797997345626000950191348282263641705177786696331514699641177591057542962455173414528143726708974590304929058538063897603482878415221193852039466691168793207664910233408924938044720038554943399204516029578342274131025071364644867601272936298117396811033895469464230613344337032554915538987201802552309710997546392900806175207152387120797109795541528960123479225574657122119342877364736689985577500822859539595291501936768539803350898249888530390468911406626084838134046953893534607322160188590988880370034453078609955574534520189066653870041805160421816178827224598987898137295062318302251584513429561330197896008665865642913318279541420286070740494214352892530513347133656703662332134936738612028846903743956455891572647524301117943850873063626886480778293347341949904292837428787413223248452597608099169632546105159826998351573033534861269498651629296068579152996507339262807719531798592994463133096412573305074226685737379186027932465184584637862270265503240841250327438013838705239861053180377576561125933160747653768824473264418109629726176093877983635921124785303898281728924644707775645860393280558961298108776260555933826386909793340402677887189949395396268381834427838074989274654138405446515444883766836534338755461853875787800243226355288690438820609639707367191553454127289104826840898292704367308573364706197342767720128634352246094681271353095690831584344369557043425955872929138689934455674504742526234520675201903948169757461174311106191748099535219273571406054482194684303029061381668324795238213722292123310185850503014512613919798310326095460173085825689210335185528220632645583697890749102764502065087337308740124697774847625563435417861654062456367724538608465548517711895472996859306047079224476909402963362292446689047127612839089816414331522760234879521579925628918281236586164805688483875999638689164382801047395881787248399787620491481388125866711528702132055232927442244927087650474788895686640842241889580579684362832906160374448992097277930413378884677786049813689850551767517192044144030918227400779282420918431715307858503766325280917028971636585451141030729137326774793867198616546194203526435025961061005435637001829607580467694595806648390168410612149689473049669655702192199060100871790770884686138273419992288966348533182788909442762803674558640296027900459981808403214721438085688840312850726012355453767155505389767621858611199192847655195730835904720905023410377557871978075975922369496570983762603307028510898527500429228913327940240926924330880911489742484460841817508382660812995951583705842002092363854504205440655152375984464505872859969003997979266529844586865698667605094553017601329804961482817454290390530972090083536618444011564000518198052489150243325896493578755230886747446317355459171254832884426142467539466208136973804189889303162494614344421190421154997101057796250786348617622699124334145281801078296268070165750924416967849794365674905424084330413712332983366934459600774968398789050012841459914873592023805181263992857809210759257166946384144261336655043604822261993665663131315745027465977288523433643175236766764327783468083778180647290777465265750846781362015688292586981365476158283630704981127417050881768611592257087329524709828537086954450589863356572671602405998187756932881148414294024186608107530097762204374264022451041311720052613141008942226760313366290535661570100057060534398602960692289855077374958633677926566782089096462673464903781389287857057002355504577893759728284203865165909093115459592279568070133932864096184621005974962723127728478335137318968386316392410223254173259753131382828805506218236434219234919999744249674387338175217386463807909961892756945863586317261954894019750184916240919276671344597251301939012690114398665551419225094812660426559238514476758981475370704259842115006377764883990619110314443718451439448751385223722759178636302660579521000070923383254903085183153953426418868552006316651058790517406977509024694433494454953581200912278404611875789561893053004720959315679954641859328179792582387803433327337536942108639186029999265394708926580520269523940242475460895509199571037445479557521642597018805149311720778826974741817749237993393424296019274523560968947959112576798746265479358550240356144953823070232550117010898742791162678925076626581887664854555245534408198124087362878999090827553165455736522793852704652974038651633442304059736546848363429295435976483348188128934324687522752203807888070018195863323361510588896999393722868932260769221274092872225943701553279579285604197957248000629617558832039415947457860631298119885977743768736152577262111241268205864873003838040635621615989623806141673847844046983963758383627190658304790415730552408298440297673744444066860181664463058147148150113965291220033762042079565370303358641940238148536933666079817157693228112682699376650018339556488779589605770996083322611533893097321178832396831882303241225674618296933333366185110326095316390391683960522316502405399208693588737114295472097276032649069290621447457117167660339653585209143134282780032958603986629764846670584285121020524561120895772438328210282693479219124288124141510860349993441079804905299307332355180909312687603065444011273620006579673736106537764164996581707450473308650664006091964795257464403453430719277705620069737900291099655255533674544913556504776745215391966541627667431646618876861782255541333971739021354663327579174661641308633349416582953253109745785765519174339690031071920907818496728586932270434332299434864510285121414592904895408501357144873639283904412950760922991639845835288543727495872334387822962735131034970483943799769014178419273205491860253223059838287067697809322052926927534651629733327367368430826282790443842581450596902905116167827001154979427799613128816198973355744015242779624623507000452761363104754539526012741550595294004195470113232028249989554692065647063008370267687103341184803782036402569917879621679632975037104463435958543203634970352836975019274171228898890855074914022812401910564752359021017380285547760260524802722126660246339667803742108977482584915404105850537920891887106886533201855256980022686941286284861779582224717572138102577573310951983237170208384955056853835642478188002749514126646976166172618928546889577931927192098977643628724277101781331752687038973173909463907973982234679941426158765522332532234823172649163325149481965604126133855971718508313333802935975757392800000059530945921585537476836131205959916210297501325158710572565808534262932645915373591325696083779903958662467833608188594271218910730778325770120384168497733937466211814708261096181854911259448821005900036110330561377648406928577293703693387375670814747467967819637149604957136046797104209682189285958029675611642199527696619741309962929593609133519142786097362712600282154141267528091751037216192635582588403693844218191031656052032016761180601648015054507056212731599953037244301447503286073911363832700714755793488239126629927197455281305798380459456323990053634722025843142905683982989092307866867511396381304172556566833230799805143021037366070797126454883732799078503133499006174935866070789829737509262015135615184067570214938725646180111210169076393576843960433924163196597293956262903709267155814945023133136500375873900128650663156370531429191642227663713177995435187867984546016563970367730129189774662755063012048405710572158151834228683407162210013879427037444408493783266085634584787300089429590748461235849284996228930845784577192613619513333688160144723807573532006906881561352253698714789714383213741112636645633959768608788458882360860799707159640255234147552233557530840557589676031808822628901496840802535273760466556642109615893043805420368509728278744414553803216006863443838638851852142019603062783238835473073508090188104650153021000834309773085102644526053061106610184735867138621393049412078912366508600652010357808440357906989669577256672821069921356249609254145004477354652440780300228269339389907497295612323059304500374384071296393706421837563978277398516946955800296545058593424287898567168608924910444102902375940762959285324339855746006416346466376654336116328257996974074482079715007983470469500149862284553318786156795528314576745490373848642694487504182404266200873550508706541960725228095549107639816325311424736904842805176741649657836480269132541170811736533744261822089534366333227449446384971800474092488335044412100791243314636906252074903340346274573346736711953247644552920304266388518740122091413606259208341077761022892452925572012907455981178051217968461097207530922449928730655986528458607652613044332071233805416857081456973314149818826345030209046716382392661854497982906539500504372284030819243180152236640849803410123431228193014589820337911018705840001212419753760540517299051628351746913961198143410094094780995203543466243520378461527734704565978758530200221923070711105039995092793421120343678590321202706302186230682228600877171312845491452521114413766490846271152362003890702533873726848257348561190557829824871068993626678333324116165442901768454154707493057559886604550200000911665649127183131187240893044744979206550725077949357906823489726956689936118106534645964410348399563519948530597480258432766961088152410542735745593513401674961026454639373004033706545533766026547239004893418138675178512053911194556212349751498778611809043601894582841131571851201223268752655809420215144767348682140113671969912497230968189865027435873623959278194851313952074960188127237022084407107667988646199235936651168484112622468899581095259752265488443372595653912887182594133807210732694614922622282592768890505642577790180080930893043392519610183369089307698273318939707768485988401238828488156602185656336345040945938939906558045851335446042621092316659058434816327384139410933665134020398906862225442782092904989197807140042823378006353905548393317620975965173759436380528124810906509032716867427533679495751104333458642998872081599324386464718917882669064172929380705387440006391946981061207242405829173405536597233243049359013714848616765781022923325358522984573283292854382741162179455850180773161562116932569448366518036557775687821275262396787284328206878735761694587507759671799133523935326003740711370683763542485273720593956994966029678220060639231504388401328155010373006169280650202897755452556734128453879791707375104631573160204811134907574561664265410224687298286983152342644346951653449950986212316861745945774460492955934058726454811675764421421570050349972802710848320122743553053465915323145468102724371821610402465071486299443757206106684956679756600046558750136545760716175200081390710020283897772841580294594021801200286388000488070058794820815082936697301375712999675847688738400772605438108878957983174946815479734374746377775047891894971694513211000692233617581011401863176039704243394551887756342953547593515381702952239312076587116572734886451299802106965101340129381175376351258939936235236739782999985805876539537767682642291810607814656884224887018685924152483909161151153802133569949685639814669807127396741530223433671573714318617961850264338575208089759440668180854952934021655675284097001398299971662650833870489912996348829263299231844070194687874406602966389445077847269197052267407935469937100252488527092786959456021114085475545483228909115740349547195764971013035851247029090004580740106456085351067895596752600730251654615091650784695664928309260042195010978769332253460888078145001761859118510781333251313674423178300244253332159413585078096303560794766444558596859499535703017812082628177328309208380067594982100394091893083433550803484479217662977959246528295794638876070822380549711576897839209891214709265826663562612723511074577120930086760407241015096366189759400747520120929632243332688304848539788688526560472018653565943193231224521755824027057561581813637164826783222679727292491802750590839157935899201333465091261388652514648624520815462721796433220240958043673198447422217459320460606742105083155762831247089182834936288625338043817871396160693497685514281512878278878207547823957632631560908506671716681391706666175679204697085839137179015145116072194838696698011200376377187496334223862996200179997335801423983805820897908479788919152507049091670297123149933107573380467371505427326819758959426462326887690553147735395727441978569941170417030753496650234822629527081580625662888639892684934160481676328850784575644321921977505185538917579520654540225324288884508804777533157079410953448769040596798252850490119391500987572111364080010031202420370884621282936039287661822771406275567569365233755887997241744415923783753483774049919052617282884557773871814221722760880781388645453501871568780899551113630413372412378671848256680443384427849511843313854182986747330562019189984604803724456086645852887590083319285166280760379261334628285517601713826377774997767347517245092968563879942272333871668405369351360135040031798111838293378743530273262216365319759092514599192432840902766450786377369354624939344121509522272259153232483022911648674351180579721946016153020258503697915021040146980949679077980320378371766351404422810322249451647415520976901384345755470272376438459969627229346458819429882387027887791856937359576077979045993081212540403474284010885105232100692384291108449112934742476968473852831736842119026269036335171719809023114383333950097935044484926845705377587623954729772830077416710994204131641325143795858308004086443735761641373521271376104887379039062978310931687547425660528056937844334432170903945216705610257343486588126774228576486295786647620845108728447505687566233941018228818304570667181277358898031905184691155439090655343602681893258537899996666177978208877089127847516120057652252527092448933570879919937767220156428360579708381411270422129727347070932263480735622928251584891977603480276062768617344727410222771611559989134412026388022034916546022549534302699698968420679955527280639741677060647195822166001296566534675770107733375035722674340709572735336926694691953121766290406675780480601474257944703267109144918681119083687913936683191845614391712328196300240456900675741227446286918823067428365583949692909913970578075359027123837915549679554525547311522491238559131742422032140786554090660935574528650775337919579505157281582930471285535495336475163774648085435512916322784631382177945429019683199443441112441676386058486885444370264554613078151596455653592834702889630328048352685424445596452605166606596739454768419536474909489861875842528731833316985411769095650650115230477450277300059489677447319532902461167567445415238446021311788247334729631423836493316409747502651514179890862277035784156155296858725536911918498856256493529927222828425379767478718655280158874001564756857887966702608953015934860668333795280020959797121121301249103513155724155675988092919624745697766529461740542134691619013150393652066788170351403478004746466574631895665056426848212732132139301309527477577673395519422881351889336529199675924540994770761478192968360102330027315942479145658874903737402182000190881152336721169444076536862951723786221827414411580221166052967579095304208792519726611665705708117256736812866021774139482153259451807060390182900522043837126535796406400090513487100670284795916110474908829677378690474780015488199160599097036032658792672567704770536253820123593477196581379667451585137214767443417950691436426611190814791417979217731232081478244301961764421177117621496290926697975825408772422975768098255889872505113882543178891150477714738118483382715447912823818382146367970194589699776382783249238613882241073092613604307399563515707047593276045630708966921814726134956251787518976338075838363814742266329836997460913642780297575397617803872703402360265149420432774843295881676601874173156655865960802551325856375554320189599104836654015737032519049936900696070311639121525664780617003199305468850311821557327187715069419153713033706572246370765477610135828629022007570139850885775278833102306366014004760421429782041794698994615880102588561386215399745934603349267199745496656930673568448412480452265407225743526204865487587997749445082429626013453172969022932772676866377091502260315376694191148528058547515483383726165492728435278738246740779060897591406459297386219045549882640711871902021197253428149581419467255257827049996431556992578390523578037276429785707197495546975340212831483315634288460551014857704961164638796028885518302272871300226717422109835674344162362151620175944169976120833318297910441566355506779647665901579164729139818257357957401668224026458826524944256966839857944925486426590989657838817177103289268677010032846553407098101281807811536078496257519709543704836839404743657512894419874298948224793896843169150163463684277979597458465501722836552350529982937678319722140229992547243908344312119748165846168508690342628621904313345037559186146852955631461023813637177623517923811024031287387796478447988546860077208058239046134901211293512241265333426277074692911890314858259761149848932968198134178010598217580584405573737816884588305319469599562457372774101408152145376362308083978893989966604099767733095554959413772068514661166604809798066431166373405655317945485118193733797992464276901970997623843932983936793333995003477671772323563951553054102401441064393727834326930395293092193505030434899802045604299047214882063119749091370589857513868218525279145410210064764502412734136728119589768828325671998533278635494306161030820321391248567014757624754993603912785893900731062597731054595518464283195843644656956234077176367719919403909019854165888688784437812267609912232772908816506690794651760678947263801500890460888917627891062124933159354604426646784977998304821448256044717658051377208752779918776875726014733515017720004906675427653941579358300516606398704524666621307848483095354730173291163645960284451066604508264149932335269573873026969865386574012060766828427827408110403310917811285225657992407344120707721192061055788722606247982012927711166468957969085166956166601749688333526245171204909527764668408679364147118039251014036228652877602325425312152522711450443991013432882460646212289929446668249511915394382391948959419150308547037913157791110866868678713632981158744258017498489701787560287901260994122072709532126557042592479549718015015921589935971389389655368779979364107613635240777010691011937904099178740684738690584563331166829456003633314330222028895135634731852133992789796030984243857502314087342892473359487802111268850283833126735297061138017403547972954462088806250097542791948730627336020358729530373711186978876978215627462438936613719892664314491625376221627112284401561012780382539470930871509131599024279940046892398346725429359439988096269907767118177926307363926563796663355661307743520807539226411010002340187277002718150001597060861277675161238264224688684187637031706057682964618449745970737735526802518940262052367661883792723160382472961965401175758630771230052095186497945311937822504653098111536026901828864019477559625518005471494174647140076032750701279840113567457555025493382354878831860912217542634478134696131103290799093584663678777739630238405340348852621809534497674885273229708054689926048219783589027428712467199843479644634573176554769038627214734883454530024548669855629690986809850691961308370041098532551302417050120011667788871243298911867013715863367013689195628395083190132727315484250422525592399326903441213438830010852317722285350512344358649414537139438475695889243969309228361645032351396080406814340371326927347328636017836106475171459218401094948389061744270096142108724588453572149025676641215187248410025485732221845436343915673797756306012680877474421143478252275596380748748285962433334699009404356478439591071925960015405899493434312615865327077360539229378829582189008537723173802613102193362595147564219072792018913071798838326911038590857901940041203399792831109329964821847628217170123961635079208478957576617419748116803983684707889863151733190112506968636420423078165145638801947005844644792301220783079268307186474796574342451724463920931318963466003425577645690959479630304776386057794425246545573075075872930220036425041384416877389038731151536076094069844219164480095016987596058659208448919582372473507540419056792598375444792844314433107529630450974778999755050135479113587423001131057974629863006722467397624677308089961634434888544602534692818009270851075896034745773179165285917688580815809270378163649499209169765604120818469218884524370628762679583386375116709037963446811399951175445298743639714186666292574338650119121120294874418399524878388684664148993958515833396254563767371799646749884050087950389976274163562990196966159543435942238329149026541232106624780461757793814557038560263104452620476775277779650876855344413315526247721355860611324705392676575988955476473509332634528254852742125954826555911205168354338354730536630126540330942496082065946304408737953594845536147406675896627726866987941171641352600472778286527873866386217210886231589011371492874266944982979690724670103383218744652151634323101619911158780099878989253070781033850600179735565721093582992918696248895065779194798585800929981463965459473545363951823877277418140480482503038679499909306682600336314936562670998536142968638246422897580825205793967070536700360258378417082631422017271058399543867939660364824108515009637294836262726366805606091702339455806407572172951963705382930445229675648065873121648123250569749265209199245035516302957892498358192439711727409777464438653452028541567123940186661693984620135739188538805367060832632690403915336419179908455506370765223444788329558432803478368929130329552064259869573408859982399328077101616592542109184962285590670227100404418808708373879011662362064658783307700217894765038614739356501619567811008903763877573403741786822817391382417318096705648174507983814421383931116603220938462618233842993364368306535128899860561475265951671094943989668194581378637375096608841432644545359504176518396093429371281027215139456424802275926612096999228454360456867342339971786659914696410914686379861258505412230167963633651922870580871434972307309394692285365330047634087342698075023707812924573213989725736521945669156554398214136611483494803448391746506261871298741145683390578431816129891792248062809184517187656176741761083393138756321624773000037075456891242685807661463530663820815948975267766879104410344890899598753941596494733472368125007987090511408000443195455166716264656505012733143336999499204356380144300315370848648723652909472374570384671897467013808342016509885277037987742323885055087768797264037326527241493154921768370388117958709834494334429262096520175067533276051967529538636604338518294091482418467296215918712436899330484985661422905736074629976236875517499485390219906386944949198739651008697991575219902196490980050543816560387805391654606407941904135407819128550636559860168348347707160151756383549574603772826760033001047651126468616978852556915066944398884753921742646440180067671133057317508672390338427665410488176977245759756391614451991838226048923036009131085741439286804292089609659879597493015102642712887991364883579784598205701407002478960468600945215689990870997728562309149316151241546576995726237737594305331769112821370542923877142337591703059513325250247216509805355293738742008945504008413830939156005125259697587680174749847012455343827034586770442860273236166630142288033111742419862896790301376541143912765310036748912994950943138941126753466901159049592884476026069938934978356660599178957931431665712131327703639089760195753145238150477551891737910265050307143966432811932341786826615594119426048439591595758323114329073745267476308719420318612760769743133286537472567184050218385485048920892831527122999656261470599131631668921346612136989946742429024541956626990429137934026718013541049016014802997670516717039955442577831401093221614403139448791729860208850469100522591802200304252285222089639128841434167833267298601148646621622883745003181391844553271770204452433312629395761655368530453498876645057095867643918808615484335736069880939255941896838022231146539705151386512868612997073448999337762166972664678202113885634931365998419852438835591116419151864272254132512174961988169339066041832831927157894646500393264139690040140148153673247286126276754801487689755710196713082473446474337367866273835051579147287402485462392092417704510655664179163722619776597531195822191966697974772342977304939074377168420903198175666235142925381129042004682346007387038428101815540302738039123745457420346377975973103239632309685374296082231920138725502780508526107554024013213782333124748025590937945885072741423337563313925404815074854377096131261381087425233704218996590297763407884447697820113696961116841914778265012309425200389575877568980993538072601547414419367228910224569343017671532277724389858037187565492650945945479273241863931951918702269248303998843851041202097293729107163909874741447702794925784938271479188794729879575134060198869131593255617681397237101495647116393322535439992498826879714351696253109205727030168148280068994310841398431276530943638344750742696827811313003440986002910300944563174641094351953604448705948617011451471421885179893160473659345656251920444287939887947387462435508980682355241741757968564767090911528004510801299104893333377016592477171163916558978309208199097033419601977968719025224285086088385801643406143344139159663121469058119156278699435587465540247138090344026524008043793720694382279946402041904361125770487161641604358639484033929959393411407925046017318093764088665674762273021082089905214254816705214237377185948824736305629755702635439685722370403037251245609867257225530188330933985142705785598050806923043804375344050390784949842931071893975210776302598370565942151895156343577134870670779907808028781268797645977951485525433129703974495710258489125626285561350622365880863094865874431293096778052640942902491283925770862786078101652379592304560946315168055301779983204250008843358727120449349030461614559507426648818597216546035711014659673472684715089890360828512639567169179530685563720871742035321267740051232019372060906322861154160271508662645275538772657589149447108055416361017053351329893729617010199314626420164320936932220526858061669608407317755299692076274793675096136983473922209700284677956395990788130560942467026344595326429516615405974512197662313799720723236391917922248429034296239829000685047658610067716975537477009786367245993972440863315935553582064217714240892719846219833724682996752689588315059062610974585416909641868636467235314039664165457526141184473335244875890805505097650595647359643653345315848638953972417218247519734518187230072433835070048113520831642255797154748900948078587959682721100897976851301968506171036799549379201190345596105286346039274636166666724026573715480572584655312815959665135335933081476780350452868480639893878036340860599837276883749196468591130121065109298215294052385751602507057098107250957268330300855297433184595878545983418742163771846987346106127104819080423555063421606472559496839726128034202246625054985430882769968438083170123406578505778699006947750994915533429852535969609585612629453687552398636217612672098780791936643861282139054759794780263890762832516641989712140509955256885000052644981055495532421933502805675161177910578684575007810291817694063383808899404191354047789803710153962306028405882498869792645968020962941644010298156006657670164369285978909137440071412135733271294904466208265454873583430332058067955499248921285944581735408223698826325170651384144086657077440079645460074890499181944849102643700090746044329517025712226493719832825142148258084030564574530217112112588218239491891313633958899384001720949977054297463377975340618333724916130873402794097894234498263263693199655647041338105342091187039334057856863768622633204345710996039715587535558642875668967153235310224261952942536681351607494826781639484603776516426306199865668800468856028511557146932780799600499200924630327906215439280717843695514637677948221108794943403931430276971027331120369193039186505325719954645177740243877052969044581520656192390146503565397990289004486954312968217946030696149583659628151266908656571910120422260022095241742417621001070581509475329524658283472872281853528568265137524738215510387542597874476993853441611097676115220899261148154500362152256811282693773276729142778341376737143228800167653116349997330192049071235751030477815791708866910651890863383333839279861157357645704763660820464395824249688382295177615832016574985276118655680327639594531953927574024794046146772846496191388588836747342963718404718099258705536784808743177757328398060226583701936134792372310599351491839075503945975657417331956383627695288117813857796361934201798614933250293445098345548005315927026476044724010214236361307180846465330735080539454117492408473946367171876631830830728203018594526684843351031562032618538039715091706182726167418328712297716123213398149741754387293036682463211389694701476144444335874336113853777263815335295381423215622150264654942583696306952459970284070576773571888453819785249789473653083482807538503511268899881711118034109313558171878149673113678193642987864387898177836048647272621186680605936963948678160106302484330869361508167519229909898325975923316200781100876729790856023747099442993523933827505537234872580900863486455873118605471900000217741587326072682097911502976592378285927244248637588690771506063884269646446838066974785776877351057776688641771336682796813352505959509734559486600360130525131016005550380161223874648965024205916855179782094934680526890711006650593395666923553942963484050390110061639895328088841548595786908251957756397396026398724475900398816084012653047721249025964143700414704251320053048841389917046377315895323925278643477617132354568367119429774592439950444262651013164530257966847694633772959863214844833906838059617827625245844434550649055637652446624000600088259407318364547425988548051549884234119639366617903465070759474996747268167014032821995068488554181026257764155694458069353584909807069571709375828760647239942953115759087643345487095661365894835437163663312319689575191460974318326471470811916785658149622319635950038745991175170289878188463913807959490735436049039698989524229327971240675729472171894283176496864742391012124678077779041248502466517676950105923693999051447373795687175104869595577715246587431819298375278914062100000486702632191928455152168104281284716597290272692443845016655443246975391134068583806491010536552943915573732957237190516107546642598532527927819111109834361615579337918961862070139754761110561383325726285470439736878631307416694950822690755942210025074421230109862794776740538041229856946355775209536159062119463094840726399714102055567013947594161813321697937887039021196380827716352869154345614050452567400252512480938873875192790112297767296728154434576554575963355013281396924871704818885643211191683393702446018770392879031937190204272114012323389677319621200352209490411894411170593050271094815797839646796618606228620072373641442228661540723798206226871819293933470228054228795801384154113473435637285530889657163286776958514436666451633567796627472157851818451646373105340980071470149034020803732811884886502132063405098013037521970906442967198508413747029675577015091297990206753702462168484008967627853853673470807354349913730263787645498752199799304118603763121966059501822978330721178375041623550552221195009636498658808818249216465403025547389659355826730834384276937675700338079145161585360616459279404059039914132312029095733949935002358485488755307078023582338607106736973969224777878387207679805304058458073850104434083975978133325278753583772595290059706979578970004379515371414550596954535125233456715504211885393161422242770945306731309819383281250434170818542775261097073855491596307938708281437269028700017719712637964981384434095499276121748769194720727380044591532963021239571150848108911547050680539486921276209059907788305394462004015040497373986073388384757371551609730479975474501113456497479777506880990592923642928486129348444713890747322554162595171835828990895230120652571066069550705777664443505107062165750579311283438500184548691289551053077029984979426933305326430506419146928143771425233416731862194223586160636919999028351164840442195741802092553302254268807654204606182541464601795788778834184970576962161602248093177150693862932413770883274019870403093127569286806551968487636248658367215858244461854812823051182066823169726528088848211044416122608525145872969261031029691333668168687521045243148192549437920495778837258419288465325378619529884789521296494680028751580115911464474921928815625489481176493042250149643912652776748915913871254219386289828958720653621341421627109456041650201588044583435891133522907002189533784469609941381438769250294295042119595515165837073010360349214175147793588733494543535065272859539307591817935202047015932785220005787436099233310055249841009519870368009477020099291649609127535087281436623691297837479268650036112247009096404341330946108458006176980245756662564829979320563658330920499502406200700327683000940998141826521575509850010397489945551171661838011166452808525050081553722565001100303909339067058909331692325924788839440534141145834616695326377081796594427290823153592942953229328949110971117714649852478296242477360508886115445823407627778627147594475031913900329061264667726788168458340575566741078802915333201306286152632822910531757602656212293920545874148978592106483882629570945343870414767014106750316421151576632580489579318406118499694889713264605173389379956220975656694364454008055898228531973232489338240540028211451582003566998357886684599936286961997227151600961665931328763052245675504132031720143764682422762932843395852504045956630559992784222456741797579224206955702311457745953852881225927441015312761509254254201549922862604740159720855315024038470478559714931240974858627236195013761776635033147931819358540491332668465443255056598328212663228331585626117680677066709740521751062004681306393212036144561271413610110065746438224740279609347122940935838574288557352173065938814028288105467583997779772450221604507480241993228585490750732828032244961554646915536205430626113788135213429324757956334831825547873969095079233432972275184168637977747495181989005197278017563063036854580795988297460585064622008608766089330411527173436887421069899700451400523734907347191735930675577283835224419333003898609008514923744954600100872278219903121800821526961718080162292074902841688708143635663520726763796597871614654735936366609448778538414446166051610591181549038550762648821126841978664769348249058334275724637523476078631671617778249152792062602217596091610751098540543936075965296279966360080196372325594681479023279744995200200094774652537732444911213410058215161889654686256263001166882168182329569203883491091190422963840045490094131747679877442012386191800093095647664985379198856566264048931836788637759219374551183712346758407057386989904074019610425139396007612631955326127691172109219400007916934835327313483039313748785322864203547411856777881473605976054408779051805510034237491723999594805956075056473409393331919015819476468139432375033180136331151121903251267631860039572411266090435421957748524351427063250812060702892433868816151010020696100742679053706949514861732367343909315359625867392138603360278842184071861576447844615918786596724801410294239764866808114856562278483876840849087226330739020531217141325253987084500050134703686811647395846360588388263851412226926930925676787572361926342304919384348636531714164994708510257366641187795874725262689193382429916275497864656339003904103993787602696394534476034674543855109550596768959764534661103856132541124907069379447853414225957962200463452613248097159103760063743896484886297815814350006835729570711591602971835810189651035962169746688377139799248106442032879956675772759642648022485549148776129448268615512322700666275396843854027859049361507862846868814726623518746331468673487953708330543543065814340226137006277684593803267718679596571496499721343380177008230804309963907384825597130590030812812336116227970431228940313189757701697065672088304747283576251567433962193341044103250740843588892377427222845345534569015814467272138720679424028616462322716218175695191822087987183118319318268153868757893592458926269581518594193693561325549582328264762372184005960526774181799097466752068773080171263775880243961611113036500678636732630183333382089978622840292533252549097209161635222451995746352548939519273706342999357935411509556691975436271527443052693321092026296438355785851366138459704238667541323099765574711316406099018592589678969860640981651863782043060891034626187282083218568198706304990426007475863987683969136082202090196938870624375880851757249895666151957137797243676637300668182811305930626243718744814354071862664203779086432046484212275449082490206918355929925277783125362052379432793491004916316151106133494293974998812880405207628224144550578525219907545292741511462583891171936948200522677036608923334101266668545129053729809324860247030769793054979279468317290470839958805997615800387211320614722611858537046794252318443848288072344568061693699581898126303280277290772416336540815774481651385084351025915451493402645747932210275026381689194439294966219748553049366144410190985580991799106748597651182442420260445318468414810629035024111577932170808786941069117771761644984600665946895952351181764193829657639436388878861808284151933279474319635577561544106406723620397441873329446911593127399772754813054071825513114562755275937046759139006459939810586154323747360605669698469110480535961072620458966891193158052132140197916136722222000126008607987336837016286523352018827616902986280047365379640412908698994421973241918729944255933241539262635112193125755808058446269748167191215640776581945618394161802867522525361944687074297112413626230765778708227842629823147164710240982878252708716016146202464025890120489314992753192528863313787343881701779777439049225635486899283820759011651379621275809003014466905931310757823078620982031286875625997329728252673152530077968025668234040398704325923974634266105072542504079592865737187768893986214076585724446638858427664033002628007653140925361429064281811715813300404360468970872526235616559530296881264324584799964410091346058773377033032769511622119992348374020839694120793024890215044393060372929418248429970470936612808192561684219677796275069413112527893872495245255526945930287479086557785051779938068505124325904026863202539193113521114575121143074971089161136603975958813084423215938619089075188175482325785795862746996478199901555578475254548219056603542264386736659686301603352738860224911695777859573155484856327555472232590138967366582454690347727446803443144184669045700931925921133608817485094309281822504387410984804319740895244177271331978173338607235018017807845153428916588412192735838383236501964640181907859776191834917658589823652053396942183951524585952616183207541882667635006559438679336404428388503482915874540304071771532027507246220938089440052407096344475133579185414769414965822053816244940258194340891872808651454204025254128460137788855799067955040714320506502279446783817411772471586920571119992239495378319503999566925711250911277727444400314512662802299216341004399818046352413208413298944448496083979563865625712674522695904563316010569218160190050547530706703426245126462329387188446370676172772330342673813250188831932507875952809606862240831060845528197462500064123255360626608573343141806461228979553612092213386539898615318271371447777427468901265358842027517694402734276857759353462978224609626277427288924396038244661199257201985602089198103572563183941473639818296119285759154127278770754136430782261262001512551410863908535689491173491307000970424198229065255979493254042363794743628474728994663324761237337168266756449300544043055656318561487597774353718028761366284592254319215333223359115433148419515071390870864385498322996449151218343323314980753197579412413580040110498631860214181621147503707043881223685734221257745940970353371069269527859700143490694171351808427834704330723520512065208253476658681266642824442279495738081626638665993732617112056734735879254753711114034819551746249705368431032921618362227058571634149497853562887821597903514934876931765672315023653330974622407565536732749485339463563269645081221762037782155210193844072210687106820696989464419844384534768205864197990674291685994750383475185610905520883436550626139430851042536204621205536202734163168883153504327977027418431431510086307545192851440056985202949350715779854453734508974460656714970572012464501888834849247109730910943745842446977998851473782025374230543108798654574508571439415774523613903370548000250212974205521959284152797808925445584705910073386002901831619624335909319947496519500631274318362820296437719238549426212349413427059001763268421226014914330735701795396924492847171437753939702159844731335835614005736173418999322975551173758744795785038154564558063589184255241447855375935492637723729431467633362918765073883763760586255675782185217982307980632975567706581849240635956029945559615504964536992812608828520803381291008986025463395121922140213340564679001708655292974402009050084958370876592238731013403171920444275459950534606019203910287695015604256897088955018044605020857683752635047481752644074907896504567138195521540627095671361052404154093837908061518242667636541181574783916082692803420796842947883126843062667249116855402361758485030179476626760620250387039990329512480571238848161126599544178784559459591060038329053160047055914324739536196223943039973200273883500307433417413716576649977744047883247161778550965346485377524439595047829805434779390340770873252277716787815647163552215666701393046170821905331350038518560340389646231665748037604758608092877021731868093584966000229730369321785256684593919002277606953152708081470591926790478222019102076818060105935193458609653624809300473199086163212485359657679701230116256641743606876827418504808553413855394043943874336543244543256496407532756786559846478495679090160625135754846132470636619379304073325093723666966180254833834174414222655693427674165530408904074687292134159136986573336933581856519571203226169430576396491365609843253360181507314117675680639532848826295956414088925954287135131811211646224170317242608005846857530680197944761931529411181447141880390113661014827974464672601648697247225309653422946264233483421934302512243011644920937589290208900449537685088562767323751389301108617053607275313950353130875369357110271983771287347552190379566124730505255933947170430327967421142477509867352110762960497316227177228360354477102442822784640094001010454189291107215099776702707758850342588636446364356026053568024857667967930281931353369623904104454834704905389972306195269688657195359469769702883469344227254635441378446080968187015523723072800648647022855467253306737281105966725829821880451874499904797027932779559744233518986542433830650212389631791403133868583519313388595909384783492551599342576090613965143680863793198309514270192558027509437704535401911099937595246650128602017383636452431177236747739302720819791062436482185626474697531460115327749629115968371645572601014381857236508292496678326264666964212448648225021407323592139664268142804471633429972683123735245307269657689189393768756519211950328599686040956928391250127600055319177053732111845777501800733747871256020619811277660370416356871587637523807124004780883867540137722228571264745892151245183375708800590539559913686362085995119820986212099067115088721555784699480251555142523614196621964070716227786080867873714148385522003119122016928329607514632909161050322945070502257375934768915905949437281812447541324037950781812583650457286449679902586023513714330218019695959901127105648385343469368647569850228728893739784312664466361295256281207914048303822229500105060464710836855081472779995415848115753791203147124102670584809556102782917493681814807179698976874111288822229627094222480610123012915240244227935732422635885589464918615948906613068889484990903407934042378356694941401140466858991311039380384879172560348175381350516367182582670670910358013066191877990170346446444968161701723839668075295770212804683772867454375358971653116147796277998285032067794791895056158239106298482559717025752897901473091196910350147428178590534354417397779810253206989395638089713503890748521986788860433087237927558043105785452703758494769242509453484604499570771338413098821791704431534653000569395534641726264098571872235188618803239904402599293180137380782844672374340572938301460583461063158556071211846306937638002702248506742489582030870055079044279728891621809521883408687588803513462186742059702759396020767234861603129872126704594680210593011485512807519765221857831785946497954034597034677313872893061827377799257870667838632285500870320257254233498782907191658743118080990103062618170582620073257487261961115612234376852213619776448508523293549287349566979071994559929926639547255641585984216315780598618356255986955494619115622487243063515524304395085233135857021054142101818975996449262611496779568189530336069887637419164134645270830344511764011233485638783996055279545572921283881046353576983334584481876224332285057557029182416849696944621451401363980409502241056184541889754966133721635479928804974204755434501517488033528606514774263542910928415665840874471636881504070943340653227951192049851115118494252012125650660115143633419490232024966628255544943147202149132239072380738785086035738952945983150589614849831125642173864041227918282799179445591992599705668062270664528372357420358578240384468240766891931068405935926510588941443408640130695720699170609113580979973662312335448206703120636593351944619805553624949194088799309396878478920229385531037015045501333691903545059607167006195669922441493637552186369443067302855174491205845861984252700439308279331789214809806111636902198452142910927582222016439612803575841787538131559844662370303778930602732827174554212867288793749174274758459435375387082162719367182999346120417227613477847789031435146974901192255970008842233940534071017654501355105294872918408386788881576154505868248396269114462467435831158434777095739433112214459718931809154273306771499930540943236864008333550278567072574001112286629985136221761649358382590928126964457343038056006213868931846526452275566038037597394136142930798810871477064285498206218729563466712519412419777425039021078203648188819021062349763834769779438336388574574420852658125249080065770767936562085271785667847723691467494759763447216574624786888737326242650195651792836110750094347749129206471720565914010069190323237334884221253827960635881902229834805206825428546135644788919190865337299175409987050656122080967215783425951606113173203348181580135030941112216711954758284335060003281525086278007460728664479678322338838604457530675255571344468065993696925770879610140447916050261330857036633213861989321704842790693690466109332155206793431040783477333254692908004801303647379079794024172953219277441156261246770204754945088255220860042315089452873743969516170201645986373313792893352815400773896917979033962366355115149436221682165214390708754596167669561168285112519184006210397958799533342542341399805333258803313787611126231173792540858981937207991419724358017609603833770790677595808782227803638538557835312744109810488820708618428202467099173027891632425255817186791313079666658639213789317417955397856706952800325957508797128430532252511418910554451223808009210391455554296723037425110736542313914253617287554201461951724560273866286502058061573446044876498744813550201924818751050868735561637344730969772731094271122877915240755477923444820006294592476188225805829908455313279830453923983765248530060327161392236750278485384442896977307060223068689356368307607259502509174316272385565530929257470325585929082621732888961666239366732095593132763785852280399887573795023414051129096382356605224460997254322702595156928125962579097894128255301949044624668376169233865377509837637934116787465738189159207102212835497563123478094458334344938617739875184916513382735079127915268382449713078838129943542243606630734669523640997676345274202490388758519725785058346026820155462736357393834355476786658545516248422709725743007538557127002224533018383678093174284790867424781326580763354784067844173515879821068788585053501275587952910812152591724703113467603532854822125101077279168297740542824665765818562101257120082360692873554913713813188038243394295457943226209993418456928443134710732240573506733374172030180073846983858051871237676771780005464592577224942695259337031454764613698989831742664139512816580894386584443600460347050986374786078154219020770126472677892291856882502967113219896642285182225109357514082841419338501239839748357656306246544448350313659779039382553924119539097518827524684669451895121688985379025136314501680161850852336050085078858293372918661631135133334736717306037827924701955357593202322972615250697572871632582684863756975670298180525472351792065912853946593373333178424470917515940219424998339638575791536844658114001389394227268894711251981336811889626511112128353115590094952980025919980522065505158300269697461368644486653381913881145403476460101106102235792953404239036799896807694579292470065072367847097633896536410494068499522657937487300120218396356565002971472301679348501406958996742391732549802326136543410490762284415753678007632382435549820138173042101031847815722729629165644466363299769860084360571639908117437472455392801363723162252413851426509585086213474275283376775986032198420583165157451354387412298042896382045479595298001779832523754914676240708438630282437770231732080270670519942899873549660256154575149132239542631654715336278669049735388329706648816114253919875852186365909575464378686209060544651180002793032402670288802297983872176966069696175856737820279863814613137821290577130760821177265232752881288962976696111783297455857490268397682243576078580064413683470187425981354489003597715073446239988077600556241091752661782856828084192495504620152983522037165217983388392935792882111228487666347902984266554168155265242889914358282154002020308658798069969803826340634208358751551798462253320897378270536268913172254818480956811919054394175613694394828595256837566107979143756709726801990157319899390758151896240481718892598802487291182494136575546071461742910951040696162977325805859448433841130790658792206764163912504889820561462373789539022667453226816540286938118442313395110391595324760537585174871648504180196535405881274608919919764398981977133613635635968677417595246110522658588374493788859700699655756183028451833836123586498822758742317994058399062881508809477061296465481556231564908141594934260933946247681611008097108565832344704341370986814434488247597867627283075771426503642401392809877110178251258236631367207157881708354320095972845189846634231187471247731913476136129733041238088266736751627288509424411419432006420467492281447945221813970322819858262474809941913240709572867301126415911161322231685129420421188135371481723150253975969132617211343200602427034775174039319266653202219238381918921385622757684755022558350672004809285091209858010731625004042194664941118732506088231575248327659593176807051516347574376277581868229107798624393724212983452339420167765019640492732153672384886463603019538430371557051537612036020943317013506483828027283279769520365058503590820106877435556341854728501146216399476121724148535477532001490291441644653328732713830704600754847905702128455224155288296014540444793111592356258092369908747142553871899929288646084306264947793394342008738425381540172859075754239312582324339605745640913524092004204851726507323035725932809663442444494243850778653105000740213824458185782227214971606711139343691452685324837297471737666919113123751170563779060136021291456150942267731622599390547547555159010275100724783230140810781502578497985951843863295131496547253734879522840241439512589080011577087579784701443524039476490101234064999070532417060187925130621729947659253294082839774775792516446985988189179439158120339175199169274458517930699432800114827401927832533084926254566778568045597025913809215364521110748289383798024515020874596871125212558081619810539373621280317621190734783797173642055492180999482038491691070653729917308343193937620972337831119167084911363341643615761582524165662654627886112765125281738330921789778029394788669183154469951122267405346486823414745792984474854627596447040610069573746246398937587914565255891834545041408606380683316382394246710845258542181712988346670277782414030151425597817219304592479596313957589828735256599599839710783792903315619761842366973303743488718870662459396570378074202322589803230396237993824881629053455853386316853888298633580881647832185884786591517707039745440467992643380366074061859192724756328085417829193073113640835816793558010780301041686815496299034241910536352575540769969979620962302232325425430335973096768405487253294451341280465254047888265905284456671403253013139409812871848730675751391085441265171077649637951300064664142112854457722933420029489759520206295693520709670781841145011202994979074271891311751569631781479174546699911439746942576309605592858155335030816354111560960040178038714022401559214741688687805514670564194300868456024738131347787466111603134793720553539046434732184119254659630450444557231769357606360154662448110847288322523045260330309841221235445936894540432941109142661092276000908950658175362364176888171008582914138961852498772612859483495044329658673795011316163092751681190202572143091329041733880799517439755876543151835608408645193625399249386684656336555006244928955598346068288045319137264746287166475011351249052086113365428810236727556360120107235229872061230095297509695535425776831386976217954018596936210662307331578589217396627561464168267852606635613373894570306997286182324686145503596788051972230196959604952141166399043279241371298776450075439868043085806265639667737338639427484350306687228987236347823465050184913554626971507498152706799418647176374040943243174892673463289553589977971146256193397816819479741506767311838396369414280159677088050397667021965213660209184879839630826263690429120779561266960758103864515178199037530667344141687917668208672445208979023277004417540811143779861522521121238878557271001684555825986210775999533160051524146874503495570824682481658353046772489747188515254027133705580895129241789170531137843907729763963904475006768017301687919265703062068032316436163904075110152949247153081004483735642888067745761854827228170840197346882786635702456221855133661470099490674896188620493456984533187470147828290890952238882582682606253097268520082977356134556448453290689673474089521557005994376012346425614189948977223306408728847548531606745043331073327780563889670634756655449186584828489495288085237857775867476500732624395532469800682333901832033024048429306850628802517524619657970898003949412475724250021447696367682466906009254488392434289282768900130538043991239610819615955883604981578613921016661613275699797188516763763785261696667796821981559326160925458931778194088462666917857640615989132700636034711727878824541448651675032293023812798352920167520452608635200710076494741760658840654490013711452038538075078675864485206099694682949109570820050397406226899503776606423364305619306652475886629241479049392410966638878659358647514664155072906671721551383439620294570647168028404737550521830858392703214648370858177262584062181417325884617578125654364061299356151735613693380154835530663170727181873948693027361573754943203536489701589569513467990261691965749611166516749204324709848801590490780641233685723394771418965694001835130875698664429151178388139287730438092645504694973298155187403800772076745794604448579588102828345859804536747558829474852582411601462739758302044034854763860730869536363072810788555885157811034853615166200237620799035029557458419320339222187835034079912114005479965684065589014521721332348048527728744797041280513411013461232212552731752874610003873222578910867973852040185222076430974177840474735633524746365871241189805772596932187978950225575791421498574494574441228463024521387416636048275013242900899029934167829672162730256729402873125551684168003167865373812429363339596850125282354196646824487419533030094773524571278518143398836762618943164037962795890850219964927389798265817358243938439126761885892132430355271268760175977213668274660591744239870250388458447902029026064518133919736800879498626560908221017144998386333572276440131229157467987784279118263036192102081680258179006243219677821636003535412577137407406124109604875292017627712545198820576913126434100505730453077066398830661412569332143065581536617672448093694565982688913934752403917870328661120162056629676916558975464454750439348064598894744006177475560220463670118245145641351474774769191207128034232724844445898226062747576994682513841637060249062177514644203735151628837936351253849632820920919999806592687401182768779682766877531510076223954761697212717121596245105376758424643898349248301931482631014547244986767723326961483640932712289396825008416448970546359398619549618962857795313765882989958509551951307421825073666315900587850287122046799909226936671906745092021605687593278803101745166726246133715751683728451228844124052659645936571237699312749716699903402187061462457557810378886601264986932199091424184349535811652988281898983345930768089464840010792634539217130454083334982677333353680905276729614882670011992619506599289780219764649584672862752251983544841513524894314578624155126497762604126308045222644017567780187101266031195242004212487657488632544323322836963490850074556227035598986432662023263237545695847155513391032674519820025982346189373328398553330250694111276970763461113163490068545755708288626120769422657011613278641287758472596281858073106507092025595256937516015626616802308603636427701763140846619517192654883479399875367671658154491942119963482669735048912435964802167679639269824164416308523645005861390633360652193897392026003309572538897092424101817114800433669350629145970248320127855791286091212669429790434618051068652280231089400576317390037277023935051690175265646097299526731039523251860596545998289605905117748667435725075260116855457805925237769203737202109988985649004287463299500174158226494990031387072706206842451497042878450058879404573440255509321263614140824928714226664190481505287490236406996465765588990403531357852361985196469671415753039809416797025846798179541163191549016562654282958328237315945689134775398668622819039579297783817195906072022438571700295613944516810133514928534986332749938548342149231460137637600126260907449200334510500656488906758940917938245882862829620424519539284632700096481438137981481369929145448118579971302726813744941435589014707837616255175465939560420457679146498917257510583719248243778228964148057849612574503966082182895801312005813731804484041957136618189920400876249712138944145777311651704096032905945215134269992838005830202089721234670895181776207901841994310803606742981111440881021371313955294304098299180485211108186739440725934555596035722572059561454470735918921932885268933108921924880674710809233077617473486679673201982378358119974964502504233321823984655545664698151043669296414566566217880857298231202793674399084845962354460520996902633486052624267571190464010164390651171645212053215385020930662093644843069184640279984667287564629855735028973711635459947463189409039375856426042819167204832768482132342715799755990487413871830658766377764647110528833251576089333032532035926093894722896853138207569623682674487841734057657396146021573826553696890629047820906180442898216220221881103227289018150754071141912888978724846993089395851763661271521469626991320597068270897752623159674956651800733111235000584957060175961521235846817748763873128343254924586524991983589004086040685732587685264393965497483919273107827780396544043761951817955468725962869194294953912424869118998845115175161666378315274961290988678823411762138645951939529997473058362751250518335394929527989980869090227158180674180820264553019642374523637451522840522746720979328680304183693393467471787017796588535163349547816492007432256344112939575216716823947267114981972856838864294545005719052003890931080746550805419771469949891382344759840795957980263148797833311820147117784436563393431985589725918281920267554816334685212617841482234981914475406870428653612659296987875904856287684205789481765958695411727924764994082771945007206845972427015250309664786358629790010688973333756363575467363311930756492701511464056794196291638277306513465188442953947417806871618379095828393483239981793956578465744745817859450801177609831197907848078161948127917784878635607927110207949463716279078232080598619810181407324938086618337968187021350318442951124782457196213904981665792795512714955711955119601221764438839975046739476400856047932131306480770128966402869491382267008202967500098516924053404328421356768240142545195127911897868075093355029227103847331913315786340762841882751186179712209403970208298567303498955315043436899367097488231711626091939939935918765598168859640246489967485931904716745264107643254286928517058610492426363088994073430957011880078114283524080707253897586167287368606379226470779792487134848863594526015548592403952142914616835433012905565169679163909150171406498576698494767568321976374466119684015688999557933179347497877934802513410822978508204662679107844035451432904115849304492824086667473976457872950475633496340863165186524494490893781403394784246132599437243369581622836581723419280413406500061853985829361691466836683968187460411268951059373899069170190607410248889598494617001279912146768080704253819001208455750333349121176063058164416266273818412316715456576647218390149210926096501430996910637761290025124726076202237339496128719533041980906105602152152080330573496390317908129644092555878111902369575793805595679124299723635210862270196296119921742160785702583027235161827329819477677177819719431284270260067241287046976798786778866002358118653352460404501091643588123231855178391313536889404122038934992994687548415286598776539899001581116250868440212709532771343569014731682546564219191227864176746658552710050688723649224294306216142224667942804034517869300034331456296642007600073703561217228539212950244023120965968053781181753437005125024303107908904223886984059990065292606014159096618147326383713318997785879296815485589875116142610305652422562438807820429927845133292380265475468494329208155441431883380011964596728709481895402367919955341909537743710841869785346025391899509457629047135910252902186698891363000457869131407503839992341968168194709847788975004401579580440907973107110018797051210471819099169350590679978192568155161987191622442533116560407826696534952937005113549012595213586132847273784771377757025148478420635224322642267515973768415982229328878400435168378086493092694508583064162479384767324951362225307082024776349187996877781797727607248019423062680937568337273337925422793329026125725174840560453600530239784254320641466374671633840180542751142322126066358453655401308778361900480890278265996641453332755338102293416931585510359078449903472290937334038001248275544594297276752934787597911354571041892727069532238141228137159304257743994522772064305984525623535692057252267391669058284902535378516024558940261509091020373969041645820874950958091150737975478968459960029338426422881301119105036344656185947594573566309624447547606557897768905209965752473745952669286304767572500061110628577792842355003746087391272518598263473392424624158782471246388632609690039558511726424987184617041995125434098844280590775709870577358459538608791875954234024477602625862341512495110076021041560080883933181447889719680719560048425373178966484795059099008023183809706390180952470529242351145917361935117392754534141717839516726967932784548870921299284388680198596612520102904257914876605197328621726445133036070593051161367341683669906855862839339328347260529647083322001896966289875998486833181915162993722705722319999509844540485928931145114804918568406133105507995135200066881272782945018362632957903161505826300307000529793177014481587997443242710894584667677750724476750295302657351174271992717674251852356944785521930996323493922235834781816341649425378736973607820234506610812708319398681592938426026039366421978804515225703523769073681450978572057969492756091257192988876962636457949204391966776250274053456589026150971146143254253162913856460618605837477200690465161224838107793387972119899688395984632249715976962820632338685867084883701630893178264116476362659401700452139205982453300271744179274936672279259342987051055465528863193632363726200717394301646222957563130424899760273702891708777128414170071593173219085373775405538229431891844458255123514389260042102292514982254798043678426248594376420015471567027030358250498322805364504036899552215479469001058138759725254363783880418114778275694727020064606355941099925833686385348841806290785656484015328928822629201282311589115632040042937892763887807832544887457139738438358953775447850448014822449383703270527198133088962600108130566405719633035368605441952089920347173918667436013922346239387951890437990330648547003772194523822547814255100748196134790405830843034827885215618624085396181412119204397826558028816765262135199355935605701136610494064706689497088166955578073923615703190119494975968518629120152025534509597479108024921327576710923696658930913569218863513467235976296669070969843695255474376982639927913241247609420598576151417696856943890411488820419755758485354703473104994332349474519491045518937008676292898355979770437021730930929715611948043549697373064509863505352323527926534544779663332174089840213492407408819249810704260417897089753395771992028556085881571278436218104312534623699748017997284591579806229741084790292053999858547645754549688791274617099457410113730859724065993179006695414761329215683307347596104001127974081489516208238527949889401743398743012222509722551347969280601949013390087828458488140957875351936680271805201371309798240207414300968156511863202369371590722422757357905437203026674430347420069090702918026461684846298616213687166034372646764778291248336366993642538019769574083581371470346154767906761162921297371863571462468044988447996735709102230232466073302543527669793616465460704360869158046858648761369545211104785237756663664971237711918777927549844064445537673081789224456456096496325821040133616026298867193500799333344069128666558179175533560616414072953159949358989694525920249809756168020084627501870622618853686152599806972183856232445264965564916858841379309552207992950411875349528860611289784019270985789166658869116448085432264073087432429526459196932694495427567975313876785371527257128721420372852836420945013416673344088063923316974918578779593156356375955029428486590392799430453698287086801157616055726543698688793385345627080584114578623085666730946052966469068097691020178286397033476803041576514774136656199193277960531810237608248687794336065965479493531732346727278579929727289786654264704556599523419713109309199452375416959981633251720856204643848529054747617978173365003166131624516942281000554484932695567390076929501190736466197514451454969997819743505043717320230658810329531455884213896069917641820674795916665709596656111040039572594977870991910357398676633978857068257248347815552129782424676825281946987892716741345440339208700638462092899677014664339138104236604961846962690603325052855721249506840388252634011155684047007651423302096936291167972620516553197505776109738339980824883945310263976339778302110533393123042390142280047691779157605803195183437397042767621538577117842373515936627856051617500243897637355983125058608177337631921829230981403518569748059310949559250721756639183770548492785038743442771009685043138212497776773391124492981178065664174347723458456757222083308998130187699608442562235831962158525411160118892680200348665618504509938427370619576339671158508772834209520456068769275122079214027882920855519098897722389003644040868983382277746297764032016299586732548034425731439927263228043215063665977809188925710466030401129845943120787366534064313909870359222431522700140577057855065554949893893307219211348876689525263656457588360332873092997643248388581002039739743107009829046394429974129194268398386659322130975154715698097260484267781572730695799915374937431729831611485804389720782566211762458382561835038133541599308190706217677576384468830009866016805774595266872636108700210569355183758069633709942497308062542781587803989674529427482169640834600129230494100672023131214204274386259200437157318974489069312361101907811231248415122549242144467544412505629912849546063800737049440962478615469950183948662536986679519547224529759316301697875845672061050499450661407198302627734226436540437650486097207515745630263862232582324586621729475565349346609609560510510198393966711986698724572931672366521852281783160638924012127431848232916360190412292861551437073752420674129509235264229626241971071337864807507522337243314814351816928242260322783857885991990077079883697451142679858240758452502985143300891741482122056533203714123192950579292615699511040396813116177324331763506675841247979856806580273437151807510984982551523638076502740666228512576138686562320726402768170975668786555036345617995172061780343903239956150936044433816977430419418312985410975375711532046068481359190089926975574160434461103276721482708984630045167409915101532224686010412412468813471068975596787872328339059390827801242389078591787764022840737673345276964916857576261586210437994782017443868836775640167759921964240869013236920193643864358099857123924369657029234046063672378989093542412051283421988593052742927542871255077963934100903769768438528083684290232952439619422930501599160452485522826057097394228911392620834535654202309594475183420675600291162632823592703997092596238844370548595352863048308529573112413292563720759362189371604705867057867593130596028506550850413421992820310091131699748820309902033836240113912581714160855360904923039344399076346534757738924613273545339235187791839813705936774037366587322638266361577724023920159487701855817408405288809460251343069495739780033395312009802882446305711166828968761728809408624678938317584036520687939857332454756584697964615621366114679990311534121954976014715255821839230781202870255346207943358711611420150913158386728711914869650767394860255817748973888553891221309178703079004906427113716658599408280955808474807363159414996697966538756243525915318484389655461526337144214094226594205287681247004783030486554823156898554279834384441415403446392959091157027219315390403299107552189785044236990374967966823702110381359963599753058052689091658663750873387352825350975798631687463766533475590955364073639837807617806125279081876432892381666491853484649439450361173102673308244401281774909945637030961995219816819795345383844159234193832619093732378982706971936987668867821756643363399980336298455781814341790913760080642347997889370424171272940066819943351080404394929594282511496896303898929986884752455019937425943556278974227452713507003529145282066057095009251727914808577741288340853063728399111345065643832148587266471471224562139946036064059416754731216528219549826187241747343558677250753571999244910795065234298915087226828258850217015549908149849493777254702897311962726977206747354003217859382940315086216828510535434360614937765343147975332965447887303841496125306429449950716106181085200562409835830662355356687276639952220694120565591778022504736526803747392240111472809218865610687521285829232445059205035856058144776645727501519890039094143378829622230475689118552378099026732563695968708423422913530984969703928823750794968256820726981774146851610956729760885233113621843770381251724824083578207410148542796569504974936162095935073909597299763864539177918223816472021945445717890505878723689178930095190252952556326208672748165441390280828689795085726247593837766286787463577538771146047622177582070238561359299930558182108971261150805346503342744418585764989439871687142077746732570381845246176327066398353308536754522192949451532667658032810801205783731386726522208234840210710544975645144193112236181539672353578842846315996613964635302465550313937288268182151227771123968287498504702011309030912293231728372398673752926328959824088553567333295184022959686871352267204980020275397941660973348985726874613947980045715392953660416885209304809105666973834442567424000830320868116168952538083458038148357205565856431435589702270346812455494313855725972750019751722229767823411547275746826641702929713400626768865120902357165100436662283738338878788177663491022619813367174022056288432974689987325150014234261843835745899406343500414609477037194895396849455513571276849524335966413438626045180758445530085252027187020090557200148168218754396682234180672972630178294212368040526338624929133369153979986635154795496068529568502084283878822468601106733005831040787907729966739482151373126688153073671196558805716996085171456712032705071429782236992961583008190991521502589546892844426823933585917278843969477241322079830325794840820090446993268656988082724491857915959544701542114012183254499822119923449676352408273739583672242309204554840916386395485399570435739910942018343974001338876751282107153838778863432487638822140978158770957301266984100658464003510372417629222496525837838867841901993447277459621262257248367158071872105723994521157263611142472418979670891118055739212534067599563799783658655646860710069098290673628020649808728514015103445506265526970414016044544181126001503203201082515385398453580119194039062627312176519586790324970067332569726457970424081064618295547921916843121778660518574781482220109611323127018640660372908824923915605250225896142167403695079127445240258269665227691165204908143117855465883427262709701178429377314236108816975914855310719381675413102642619556537915855279964875088975775254673205304636579007474557627081962930923037269098969295934756852178510645115986332635862971275831119012283034195436555780767006455626004985461571315909878660867387478465110332595912952551554352591699242126017758729614235069709208775263675826495386627812094285303439518254754953943222942776475912484540666060143608595933522661876369365393913321238297909227685633682586833825919261251834756520258620660624343905152068370019459270982251327206885940813428259051129447889592336879312610086502189033043655038816471691984391490029000172673342433470976790589604063086889489705133730022127602494402926371815798059609376338184087984025994692050860130956768478753384953150910059107639327747262342719840561124917387635434750519670798622164771724856644511768053539477109725581331204036405116990274718147587990138605635804046046926985613123707766001657718299147881187413835850270891113884712607912638480212048721839005717790138030969771216308656402822370372817839758043909520409584012997514739637118428395086257197053291253190519453775725884789633817163959561754613705039646882331129159805529697597670552778537953290712359596720754559468674030573396772497984376743895812739031773843687204912508671617933955185155083571657320566046337849002565727388030867601142024441177890646441233853343313859510224785627305544035794210323850488506214541818675861815706121239325493381060550189592390228213547013620958383434415950087877785254639680411315325868204600931158134214528683905439352623089667066635811675454750687552388863630920003463512544203289690387156122408950510413413072550272981033512193923865033935941204403095741612158426655933315646729280694765104247789421487867821499198161617092683282595983833570691572039467322037862809052992351211894472877880932593418603113240844258159614200512733456164626650444205629736787974371383605846749368748774884214845801852481378182325454988521640493345455125263275749781061311939080271522256995391571937803848635311521411012327337071457685460149805161664506135394081403395666911738416571179174225101433323163154854887856649697470491924823839501857199926916261792569947571020658129610391364979441848704220141720134523921546848241262840795309792358510888162096358289892583413932677224712493120936012011753081118385543886824760734438973430779957772042364568960436359440488368440913976081873424070124588689758484238425210521602456252808808832813377694137204241806495490375237151968452543265854850597636374718308841506657316354344625676735763633905927265230084727305564977423495657298642629613449624858333373262960755762645469690758423293523403074467722771004350542670397592246146543918291636328889311803157520465109182560675655823755088537627691303434798730079308358959429924007584916028995692983218320134047383480869441198903147185042197780446200461541396656980299595258137278414640437366206862184960458896511485147624525338015123346448757838683977036595831849512918952067894024227828571188477949312019568875770422985716252360319328929998667347834314113112281481199381477951900218549387908171881900253382577658151362544438746889085137721208648180459692123822301836565379751516439091376117881931158953302770809458228395407675770907760228029026748274315276281230357107253542494127572716179234089148064489321843077057327466453335867730136796038239365264608183789364084735478948848226670812057410702520303865553393113939724393839094138909270322383200558442054951449344334317429176388582970598199821126735754497763093791009412444038310838860480955014321022658651821932514618073009294478118712671745459170308717802814498287567132252867580259776466214935147034248353596279322318360830166958195134757861909398303351758894344862721191006621890444183638066491834341555967815228639990499023994593691670133448950428534348877129345976359973047253848912827274234052342139595007935987833209219635678712443162254030522896724169625810909072588473389863913055734428523027548111416668445016543550199798637546827613516403641463458779529130339359976202768628703064740632479409629396835329544293890306581709003241264288669209567539814060052414951731026981122513284899302190502120596673665288904673941426085773169952690805494533911702134523103347278012595096736660073589795887737460126332656077618803351914204536488640889685622565112020758941121684700368565998624116933929106320709471361198945964579497557803563908683913501806396400279292876383097278660053438620747717194138517912938194597700070680731107187828737984377533806372735401633756263416843194104132222782250471478453869272221488285275188900932567226498487844228409854062648116748257418461758332318982292827120276022297952257404158635770608638119424325092528787241011336281073631781549072648642559069423952674196155604850005732760595849133591651586684938027627553348743440720943339466304187689046943604686471907128950090616603641382503145245706604351399280746710804869128623267850084225525147259791903625195460800827409826007224537010335205513901986022858440990836403335498443194739037645595683577082104762563337045933437769522012295170712092893146474940590009253843611278694706084000976446548327329990850767101004456251622093177490947385005343318253778384734670371710828133061261684259133686677933571962011735904152260206638852915152272222495516575635524785715085210404239664601835090029166419399737328072017151772799085520976238417727153832974384493610045599845833063751449182938680254883439244878115769336008003554420893421252350245564285789003982115752096157417971270982659973388100325888897440964123552942845403716694595093140376370814327434874207538834317978429580626417442225181100134270425442526286817824138301800680481617242149544596337328126363839782168728601289867798299599917533196697430621391234637369889277978128612022588479323904858557528207547296915282389317220913925276418934221416411192621995680490384288481844492109093950474671387269507279358509991393120349326601665802971230136509236841690118267712400360314887116846653805250025737992740778918747076657649154787009438061462693551277482083585686433371783752001264748715698695993659189867213999578461502588532712432722507673701183151321683565208286209479255055580699441619947022200533313945840836880278970036677442237895423075476872845878463505855657082346091951188740437039724373337609488043900211442551658370181509963327222375396345873243229772232014060184615260387748538897426705076278185657390054158518022366074982826093882559633232088258297581791027403845457621817312961583553778467280345952519039479005221592957863126406738839805339850724518618275234524210842156722122932905473231066406961136079420945097414827968124009799427655683166632316572703100264167249093620267127845367895221899332193404689030793997892834233672461922727134771057623820251829054217623167713819825771773790483543100434719690844407648756667049103825452998440817577967510956578451808820658808827314761351388534069613950072687088472686318416244878200994967729092945189887804460457334697502934798606198955736627806702440325250853490032036348854282343599905373278367493893401502455367913148246686341256997500509935786178818304036172377629973501282426576741030313068772370933275272700738755095980636790790077350275494296735052377488763427673721359527088851292884225236383396307402144650069965194836765051195448726403186876227446145866611238725766909760459538966385333518828632971164827075490796703557356695163175817704503473569279499441287975926471137379501065963405458749540050841433999949249862388486833469386311721818038933532403416134555814009471022907335729006572914259464103350451713728611151657072343170536772156305010332692014816047036918674383522452273804508844072450503119893172950299353613034157927505921346076705861410165226788057202392615788743290154365684050946205047593827691054228773183098740975237190150367758121412619315897158666680402123307119646895895003549006435615405405541181520256440200321583224665063573608102371073698845417573576461557852548584427250605178111205830396526047139526013899810589389297072252524239523540954141154294602066531714479214159638201389177194608290431799633224262998590745983340479096215274114910686447095380335663672544663564043409060472416132481366420845144825003514627803156104598907257174219722064553722907660722541807024397168518777987098224561846797145819468719926782780008938370083820165739382176305520214593437680751160876873724441761270666409513926226211040866623126677542913072796393834663191763258170286714415827400119889846096355744412275264153379685968452776375575409908587797534113287559967133035933928291175856774094033670222475251079045393192384290059406438226195896187678019816239763712781884845719524500549576327983657358715285182686152679048103516508210500469155113321999903731703689840236203067301134751855889804249934062448231189776520369209737147483414887398857990682973192759684620939059684023942779187051582522574088375692594631641301727795058225313807576369040120956402773607038936807239248641691853461311902034469980230629224769407225484547424070496176906067077132697657433823881661737780531871070484632135003358089873836687509189465315190112907182556183736495737596615108298982248721215782056943494338777714706280652096801785560394668736231692615660331878377031086235696749095496196459544842819173459150543930736862589870452626172661147992438688796708975331353696681765251783172600045420298147223592979674788724384370371271346392795990687343101070778994176458460057162708743422209088751847042975834644883168328184616342210618438416842861467789392239612075933113387397655661183266065351623408698953445790047449751572869112089584761324620346115793827418899545251973631449674524568345818105471826822348367391951716804568828986429669554352246789225196776440140107075850937624477323399644663081767303710922001650220796907911968092476188937283470878870370316908866356877134662229807728394909975086950922398130637374190676326147152313620020981309261143866086372560755504072541122144766531722830763654339589366862446233425191055659007520975238452469558730106362999679365390231286222190879044200398746983257457244059523671832305013523593763036475678076026149857169781599986503311692591940346882396737661278533035630897590120048114413812493698903240587834469586580984851177237259974685387235068010530710136461855103273409019865150578383207926192838910474625363897344603542952800023739300487303223614695425599786076418381012438974071139290476170486627566300409542338134789604344101466045689626577063867143292722893094154094658267959593198493806729096317550554180831778121222897933810964739973385862457851409600955803001346044289239105376008022220726552764012541870313211824315932906316856247572974629649550484846818747010389044364047227240253967285395794378840579656553157023171830164406657165796645119229911432556811325220047356734875646621680941267422683181457661045468285491545248828807510807842646960155879416089095081000160214638809871524633745823153554034143143562114937026171742202700303504883977800473629063178311978117450917524507680249107206859265538162069602122263141581995732513391767113389618411884712211355191935044513888941114696938082767852360576549403775255861068592826238046768880202708631991479602926945866210122191115791801340254530993834861007307149364574103122937173828829913715367591817590265102560240008986314470653351831437792213162555264291593236695905936542855919770986598029600926952479282481640704293150058286610863947146744317472024105329427295693179500616512428630738947336057592653887747307158820783327395934369229152581045543371126500978170709164690192579394833070814285757079581245025968419936453455631864901222477833112866073902423593129825300082928102993595724336423635095056286930273474617102194979937442975833571781586186553570533226904150742473125031468655814246562055375961585841450952514819091936403417801581217781443373404453321727098395420899640040126624032631764290691994660808560730441786896842132222252064589106904389942315455471966700292502008826165239169713322144802978002477883606200446985143979244603600471193041937889624266405888756515822486521164317200037979777081884380265836743074414423922334264091043358684286859772949143288570204114591315025269713986927178223233384487352048814580020173883739856123310213058570477324432395007146102907509576465658461110261185783172341945672505957747651982969433682783155281345111742828455409768888259026743164307945113731941133300156166466473823030441985570659169688489003451122178666607820233685192229063135730486967038738277612111814489517014770135460442158504593274218008461125802211986014886015626203781816526591965888476914761299085384739207369940887237052773305512015597913542251653118713079768207893704304952992307738899885752309526205003787923072006278630607964452825613520823980820921030910977739373137918759960349480237425818094496670472682948022097942681919738558478386444077642366059361726349625841800976153986229992911778024413202256194100209967739187144581055242266256121574011509165847699053518822057893884407966290141329674406843891875253585884256141765095082382480475363132890832562223462253905833466790521961401476497373665200867569681462967205958954729284365236504743985032832056838747228201220293662328737500172768288455688316880912510705201566997429703837488905149725888759883701362071531697049413002575406185375895927302625739544380719113801830706663161815776666114570856836371060320301530227313027958956116370949808889331954812047270166685929144476758739201696329981468073638221493277893950367024976259354332756328895416948548275959438240521684658852745157235779231369145399587142163041622872782460745832397211852281766111501177605388715582363091021374731482406014020279178006983733625622337807164014460332014457141477029728658191024738812091561733610354631786968812506365080226510137481821715258482367168086418563478993982234608868968808403995394311647356676831382685541560193452053221724584434271124518217633620280133502502186237946955519567188467206723892706786104594237978249471932509495020667961077675764641348282782069405500046725523290508951472959845778684426770132807542811622085127126242343780202264848377676696817307127338596578374441563983257442115177829827917698448838457459885444470440063794895957167866061289931178893546911752869191802243348269132679990619376599248490509642752331125281163616302785271373462493122577502004835897370182574502390350523560512308332772748368460291481376422446308311904303090850844402543533210907849820484299676979709422962475206502461476865022233757763563837427204440453829865995056072819191269360964515727545112243150991382069634054183133959054385761838815060711147180062387577297792202801085368393078203587694353639140912558986330928749052450671000612395179100758601854276083523330068362642360046449117026499829848361383406556107952923808906878670521004345975199478790338077903406554279747106449972422532419771725724905427588258353719154735575978673681211477251467105682206844699570606985345615023209596316741827742163257941202878664911334977274826874808570846665001616597839818904933057547658729923007366512273844751962177807837629855821761563682109570423211946005253344941608993561410647655744673428470758701348867842582411954800321290444208214382503231849386555315721974852791614430999931133559650675784743802824822207332658054337630432078005708340322391214645327320366784033398534425211632780666689367283690778061193622145939354138192525075814272812151506065656726311804100935246857783702494823804626570348427851100777899839255155368242935597810377515734226235161274269118469606255592391660584701470528605708120063435880662035789735320007441898806214974455977094096916484376668021095356310420099231843262251921091290339232172334858829591535607254254296563179976398179909750948164583870869517196204678752116338507881182733107721265047298244531408284775385327185543387385332202167078003637692738637072367799715671138374052503804574636497247232114325181203580159132522728360463291239011020480876832069808490326200441659087463032688616039824507354992820246405915582572847622053443629322214038050184485509232096549486571428421152196991060014288881907118913016538103392301216314578815282920867157772611738744594762343457417561997955165249053125448057158520797812828530906868459865873817802157685114180769607743506986331039259864803940836411570546399787409449616246217188392243828874140814386277914979912964967233914637514350528180210667361132928973906357350826584933552883889431120427943310630636563157548815483016901119592505754078200207145935091651373809956225985405072497577405118192342590026170501826899690399325135383660748730893988100020079969275922179362344849010177681254727148201014480966439653557513252888965061185437522957390889785880681504408815252106121759996736915767062063097908805003210515253483541038446327367485517677586539813746789463606186025968444975841466026912585681688469027945011667641276877002399714568464221282364149876076600018197560097458778562452366088732563953063860022920649055383040984820118246312529931455565481092505818736905504867487832821182730435843875703104906489648110624217556254031953817144625422631779918464496036492189143166462557480531090999160207912134520826145516126212482088353215636344835864431844753080289058823938260826754213305163493936179213068329307393416996120896017433253735779636731182240743003038941230434108146162016474398862791435221591789126889086575560832762164357076621420369367727222655657425587001676942475609809373936150357199223460840172374169093773834339754000606124182383327230066780425988053681806428945686476498077894336947142257057387159020275225070267614391721750684219508347016893239400128526918412291165103770414752526210634482915229333351181880806637500848346128313708055965909109792894391356849112211710796374552909833820098119305380306883264662451126476180496822637004853349189245901474163111440914588042594933521885302891464045280200617810033225956003904979134690394560106437773564585802548467984665848565263221777161679651416782018514045832425239613116225461080534641943036817846924596942024016242860668545297576515327539380181507529615034432917844289211648377469385151508679788143244189862159505136456155300958940495141833754673515244607338749669347394413944542712097030739681814982395700873107580930250357743955194140603717302017517788654318502258985312990495734395067100791108231485785724259474841224147648504739352339456119614604756628724881618843263500744780237917874756467655187907818276148260111673914150736039052785791035496999830521182508428570328619548937986546482358834064563286282472666650673910467610180620995649604973550551281458819355731363221568746978558067184469621637817882964396678148301709551261322201562073840770125413152724831842093786219116294149609594258706835105539409451053155582998505223160454660775388721578695338326150659353956230568852804438518820052370407851995303501747373230521022710058141810712681298925153900733375175887849013153254955882830930093153114294812054552381490429092987023510455789286234897382275846560676207851759403855738521939651208805719480580564048762096622022563133092241884224461185115000084046434443067745294582047402341666620189722378278723838232757859299321440507387554489740672766907116672983267964465524797729781069004855589865940436170896032390358800957600319687912131081449590449942892041931588859898509182885180823618776538721367997060621732525161152087402716033741742052295029972688960234928477287354317450117024417603503147945706014128911467838117568843167096453262107746530386262906717792707264587922757285542485122238709156772473676175827855049517452782094362299232068908825450150542662243874086427748688494290053485367314495501885518164468368211145166533868048197605585357723330410419330250508136684995624260143514322710976128815433273272105376341660929633149879011602033318354459173164899956267531647897852603273770764387534902892564229292544148160360993628807151495466618519175350749757816874387170890996514457631192719414437267388837147956205608104603518560466922755031375772879095221896739169082228873145012547058912479982113353804653175352002184426499034891391701259884667336898153408737514134913517543330936300647349748926425106686011306244532214190618464783626475126721642791656910751395799357646215134764952530376158869631917083921664823671836281864748809966609128247976453944345012679226969715934622425157244716691441353027180129576409799954083418861871894752859651733334315137096661987026953952054142944815641393948682460728534166401634472555521575321556184106140958194094579447690177772072769626708981072468507976728138988949759306343716952853650519708691369174571422860799239710248448944410871741090768562465703333088232507970617217013517938348784908504161792895789505770819149332408149316379735240004210241465737524359514612066650141201905092860934572748463918219023052240095263882909510035602619414384823661181369375614573145655560269568880134634574541229102198351193957396755002620899122380979443394595878188681414341638950439514516576995772229721396216329048549877217455964145494683780494964646813930431161982061685112003147541357885579060839075767730182923091110113900249109103098048300541233183703861704888722941566848990443150216717504708426275005625950798515744591882970145191929580746051991366081065058579897290504703251824315104459726108334591221744627413359267054846058156037636712380570007046952947815164721851176268977761678299749051403636017045155567674327500524152383101163837072812708764454620319373281126462662477591556612728595975973937063641037507198559115705704725792119138578606586262810147793120450957337124192347530901974189893299434946593954610761263806212046362303119017126627284720166876359735817292452296496552178703702263675171198759087380461429017993597150199478983823157378740723783320525739248982101138254954305445626564944451981208150996223080690194824964749141376682640904470805263131632811303843595654990472220187493531850405114240080881599360607209644655347517999171483971695320861612566215145859106215852736173249906561759759049876456820978167574852886496217599422486737297962573803091984303823462817646895107626219818553441829415545094215136354513029599866660847321468760794511847932557745102726021622912787514225943392985906816615006315622586445962190978801169616091060235871512131035284700378263450385223669850036251961942920442740217466272400383473795541791180138907815299291199750060640227399577835757998930554905428208825198600150058707944699696964698669335100226610539365969587711246550670930416430367501658724959261825124337552654194896083901729514016859821895974187892545773505100237053580057183260752741317210509655990478817872102772077588386594305439268260661460692124667752685601342503194425554578723658685658619671182914635239647308540273190143624748995535431490174391393646563538079135914989844587163613043619639947836420057532852737313290055493456876098394131540059267323169813947539065156443298143445581729348770111660110639490352546993029300571718210439631195739303947468506522322962471536436551897510233388822798780940661755965604318327429613164837253442741704524968961455812432486301400424201980686376996319912240103366490418099615968326101640254110931087962154392030945512725153873028074396914334931969078530962208530946576446372777441074468919605712833360941157879723489953019187264008214682177093911783842926291911808797423978789651200253646429765813636338335100371105511004189599790914418151252754126274002794861874249935921617718631433297370537094999672996050975780314477188216624356243213488994408771420220617932366500469555170874982163304346695362718804569686331817083462681554019562807438239938083364710469007772982319703481110375149602268368322201341864327185177207185275763191876357467711380262872135472377094123470586412642447811850241122377253545539054666610121053071001633329561854621738082796002777916926478899812276591304790831148987822429366917036216958534061700567762997589391146431711490477826698647783092209893289656338299911043730249921608496254441383515161753215922190267081135935727126572825101199460048160400907889961389752082995437014412830890697463233870484107722467113033212943309438699625067134035959796130210715225725339822031874098734005085424395671772387203208428403485945600000583320011989243889349427615318027481269037872319164608123368270933872981852085483432274360177178678236347058707393460105537882934410776368301111300247408937947932886425261055043058476510715094981461856206034042476133824029675833590662855362665428933382653193917504831607733157981324992626578882838978352980067168231525266479109622544398924686487117697728465261495700939993499621440355768255959236762261346832939769476825885495253192667910698995620487494024925735713905895873800198665655456422811003143396414178624247743384505702193699894643725180454712748927217491035552646755797494768449542618281245083773167108272790082807906029739324253237621895907812223292466955870979523253888498114375694742243930761350231044488801018751754562277435089097990117602687671699399058877290273629883996836527888037455822078370981208898193231628638026362137557693830959380315882203134595167327172318808604017346122619085914912946754874332109491170017113277195067649095341081015488305333606923585995115560983959620454895253610067643896885252127266706329892799129320247879983774617179409687304073055384986596133567826642338720920108650640763259427225821729401010741566378361426703840590417213597928775652711919710373012196528807976387861560931635551394588529797631624179410950300732486110461524720100655445903523160573919302925916629979959219647468448112694004037723092519404199500186996974695543959343898508706563032655604481852940965910938262907385299158389347027120086783540654785971049870175541580342472748465589349206510463740416306959319647860219576237329702494305748678479584241179205848407170367143668153721263523046410481019476176744318596764438091417790148116260997221262280355526991822951600827208095819951212372428969336590467826196574128275615059034767678447675439749081975445480912229308593763619819360258194156620783884883943244913221739038922632487612186228304724022544106264007330620670052141265820881383026531766175983499221549996486448224347915119374136623626423819212869471518140726334048489657638077165176275385318174390388793341489613284549499868416441699102293816877115621597772897556816734259554184966397027696521488542872447061253703186670966009846379064199979551794826631154264051072883596441724653321759996972634414166841989361845170119646468123439375978656280489174485676780533263513793181715915586127876500398473523593918796650406198473077564964824347518947072019405655014686552468011826636672625488409058929064064232499086605553553527139948614984693386855774190057043349824861321775837840459274872804974071968681580542387136207227824375422705659803619292614780835911768735696775382050873040205284644451172623324910684160552273533728587225715319759444381325316775198229436949602225554270666227282500950293178602141329912450083464801970938583203173695509110714857581676325601822548420121562820800132494874459169701053714544026621795021365150161213501259731494486530820112058573448040994461249922404178320615055262708953826380724566343608122594969701870892194356788616227001199561633842645803382031190127331244351119914870081251222677522986618955527464901859175846979706939367643407491686371099339479265154304602443708851865063151606597544006475802207360367890839163386878804431971606046937073495692053826769803058401551008090972922937070992806084976866478120358048738768487389149137187969024272744285029980116631689604518362819658136409886573747123328028041481508677700181208592648860284940778790432153783533866883307133412260076381151080040738530490619271771015517259960667596353150120144616082961439527021686244178941281994846999344731802180455940553886989369595531472303848498944637498671544739564483566586132075288613415893576716189079481852093423138671667907244348374670842423624143737935782447771287100873560144962438273044229457686122805236164421394696601372905239413653179841017413841076957992420415036442423104943772220437109271242275303612070468119643310155452416512358324430980600060529618020736706290462085199927866850084713175623845307999734866220721414074773658730287054487072544066436103581713491671800067156255368349015259409316700202161457142347911238721203100420804616395112569710687709107099179208526412948977487600972158246603005553028407833172901922921813638644657535608470529982778322411575059667286322268271449407366987138579316953414267559606097558104659815518962011695290451369680141609516407143537135992685599966431308270026867405323711968069596752878512832141196763240513075489935727793963449940796602275312540135300419701043724143443971499569475650773622601170033889415062301148325580061091458207299999751657750692977113257520195221453891934222823304181779049463346530467436651479650771341371758152203445660669353605854181857910258650747441293365789919065913326233971337195087919472593659738341351305999538959088062917800216037068597321777706680543336288417380757345680192618742043664213940992801519467045130167441118507450239794164285815430210208500028607228503152003080271660214949679245515616597125665272166501707295939967190444848960049415815144389291830062810849478686415249898005637202473667912362057568559231362073906120065881468056691477928354614635182994260425394722643649060345356707495292217975669034707438581291039404321906603521848899848505644627743176888348890474845387798868231846497874314495728133063287631120861516508295914884039021715305354034295948305299992127087659314975852006838612893019565159815907047322561341370890183346390078327364513751866702362707856212137965006196198379417254305937030387975969262232286423223809089047119086596096857713604062712615943750829572834111877119113024359807829516304309901783675939179039066382736838464076686345881390443087174623208053534803127779335587928901689502885399338276275985353519981663285625342143156667791298450739914374742722531209057544380961013364615991955079726862469915882666520059657667209762990688643794731674923642386714193240517551062648213894084741006558142929910234009670609115044704864413563847218890222687993164755384710689482770071961851900158247299693894258293546480259425681742139616075257290722972043305571405439271640339634494233568742871327514864224082304597346672804818837311075946402698911253309380089816492492144262464484508155749117013324413568858236896229664794420841992197195157541906842939415896575964493184347350895934192913523823001756532524111978875921303397833423084484694980477030320051918234950609957293227679270147409445014153144233653705834601797582657855788605525471462864072911232687581680197748970501408670997067770777338763725245893149372134854968953751191269497510439018242134662748154944057124702390869172372108021796070764257304298220956304681589640154299115565539679202070094798862436290081827815026838207815030198803907484644113279553919866022458869396114460405724377861462180769877073748344610418263868361719622905734549587497456758564664105918633746650730297774360564990882970475592197627352731288470240730619571066302931417217303892351628986366766918477628511008040070988949974235035328772076356811708535571853312723281659181595009994221813258510597480849525178079291783592822802785008123224673140478164679577317435824798445562313360617241400754033278022057223335416093013657332339627339436749868292367570206035224850351251873759098837265821194237640329002221286933080933000303211136326016438696499324969627032544489888069329045247446316649676009658841854157941815195101805421473557350879311013193561610071147449400085500479004173208519177982670557696950102705552905756530771959355678574944649951282280815253762983623156195953169361502289012596463348811598613204414292975299542373898318480884552542444308961850624451094905466600020210828770935321251117849897842045752629027432254819196101796236466584602986844404744565870577923283866273441333019331155199000115012522943231923702035656639955015412261767097678758847799659607016830142144942687509622735422331062227680172017728041409125470997256084566020813985154321902247292868945530516717415395133303047280218779635244993080252019607075759037180452768233367657241295891230480622326555250262598513784425664907453262599753991225798865344096393912352452001412112140360299045418096887859116398691639717077983913247062243699813783227193320190219183437131819398009199343009511359340801303419881597434211070142240564908819987872641311429673813915839509368917187884370977091775576647997224322558866638232002279567871381804638562920445180823315088642950051312341522084069551758073247124046686174281240082233729133136877553008019083005649038883219482478652755066422240843250496461970287391159651977192610453923564022299163708180401672693916894505163972392704090106369582112188383726695771303179623082711726623560902110018644717213501014263401357467667703399420652722970743929758960808021698475588765577073526769704294776829800662282250112433538937062879770254172390567745036526331685060549538164647910939387735564960169370439944387120552256249970744008571120035679829510194322392937439445741658405524074093591707037519529290575455747314945477972339231819764882591834672480007245275706790220680206835939126037342618334772188491131877420484985016613338980582135149219159038878273821022455419695977212725022900526283542689667645820753428082304093743552564636973841155787881105866246739881386499457682730035347228760727410420773893933105728709363855433761543920859202615819020365944963383385622442693674509744456349839551253392025739669021866460435509802958865823963206028950854104188675694624321020770519748985637338635183344184990733444550602762220431703220095579194172952434901046578863046260528816298565538393617522250852473619596330416901616991341696710983370685325733931474550788445672988574126578726551399021589095399521532393967752315488673336867648357358816424288907866230238647474525526747460498060653355262791083073289256102309920825782481800942012596352517405083789867062609384976876989779290425038575372744589240001337580418568010088419592678993988625206963368669097889013304041995377296077436071324937653764057476287804166565697199065731409655016503335055566323959053257413870808772859245250791944562455818594095003058707918446000228696300312124856015531669065079274580162250407985576455244706009095021445729244513180258164899790839190563279153128323590688461156387384125535613194996579085964220437849230612378782421760042093645783341516577669226915067644105222903910033717402590297959084987575176051162656883436950774612449624425503528414453977988244222405283146940594123692162496547529144054774351629732259800906868591625672588818812558670662101010439425742080187336190387404444575241297445850629774637539411387032770411448844041614767848423492284051715017891213402155906369762163461018629746091474270445555711989144365181540187399276990250414492393764603800486253599784534915748160762225870777674619034370799172929845215543735993979572834790247270913267115777995510634653563711831946246557057138048864965028974767866731345214356754350282017927409054352361741672150657918963295278116985413842620603826893372478121398311844964413469366960220787755110972631738142426329054526751955301946512278275242590866900855912546196586710705407181171223195443831069798818201488818394925937562513251167380375100373469899587244590987757570726512481021695453053713663738792612034718177419549533628499431321366473663301755541088635040327108552508727794654325882544414866025312292523138112919291725680290216035138796937677829344737975214452977405919969692222185348618824910555062656591408234129740007716900005614895446641633444172931509742219741164186597662868331757504218094076006618804902732610006392084143875985865383575871668896827701130810839871235488106200658919369402146515625853831071300212280876054603336781284807102067419311031496032894109745512904071380349766017988199309381390190125378677071578411596477452072901922832390126442502001492086184063451799153931656254166365842878303778781561663151830371752047039856872608275288927747350747227364153658886444531412263058343605197411230795300247892714346937945680886022262514270233289001742474832899252859587898321795841369776876645798887066832172755886387895451318666824405768907254488528929955473293728040247074099826631463924151984293382738095126887121259895307866079933353152254013558995265209648440677141265175323571370054281563795239436435953708695538188430069586961986274058302192963405232089647582397135075382986532538781170189470466182541307453049048925816525583538495703469004123501018122590934443517084797316083259054707538000226754036140848979645585410647504588300909651221374582080896080785816727252446814247125604181129270343605201808081350749533314560062947945658381152982294556823339463574271721180189669455854918378498828943376706835532396888598034567847504750397560828267593122163949718215632580673502677817452145267840518880640895349218165432303457057476185022820186856038147425161173240204104085013212928705311039673096592775001117098699561493376891342117135048723139904358223631185754378317592714621230284579558612878504829709133915686027990593262197384722085377314957137943017836610255557957357397470531278152918022176221390382307595751713429401754076939927817389521543759713328677038529674203542976743632513240768769859506790471158285821083100751718290030400175958617100249245177202300228589439484916318355161521437610615174998684425551125040529061987775647811021240618672904081333808565318728376715231952681197916067127921452202168920591798234231236723696077020805146915647013077390918636194841150540079900088226983362505746825685922224174927689341696672099924412612984009323276136862209933902396260928539911347004127656582087375992754789963765918045913703962184688660093625901926859022262065509134007565903097632224810092765028269922765922267948523383491866067295197540489577204860108592448513068205375805219653978016414808432840982300879572057649099329483542933963817368699466210606835579933325408529981486437561663014050988975162255839165973769264372767635102051321942315120830071614593063452385314558169025145265260747388211714600331370783126520333672289341998023501714126538778169685336802520127528460492820472719682546755050325946112459262668997597501200179052843115400822520767386728598224064577396423142801963496548218867314442950265668475142382435899762252499028152657605738246170197374616034162724023623028742890216330101856598011661006267704794407136652972485681135151485846843502276882281402219183075108695885193097450271912885208163950760287891952768979626706459955568294112994887108155762906809417290293096881902089637562629486429949027710802668528065379619669192100559299619898596289750364983187823624918545589385113303982997269999899192982896852121493226756370516307065574621434007613369061609669065812338424971862903267307534019503510388761228009331887660692638154510435032983462802187296817416884015378606919047786551710049304369977529468916948091793634368853523883037418003291627835713590224679942427572177750348263794976618758297080193856124777546810244910890951116853004808490027010177501199515778443628933354625186673074324997326649486053441352911641585664006219762643898513373026153706119057692486893199389051175530053790272192279697922391819674481916842516538098628986183186746718404912289976546939850308074318554326116496791144443542198991584253285487429012204672982875196717569261604422926761755857534162412070371413457910923322649075565564082643551717255269588989556002281851542629231226646256150467803273144417753359969768806508315219480291714842582099695795036053668964732259975216902359385818134524049741863645935790581076159062868886223738796588543379851337580606164467554267283620880115922374441107604843330285991218535549134625296452158639516311689174241387433465036388926212192311653228831263327181489885644558792138376285384878684757755442807741722539951168548956601641356969763134179987461827734831565494024694919833945685865727879161827106250843403822366413890323410442374995171695012058650320241462750621837983142648523131225329527338631004084913176504364513979186557595906040205468546819131182446398701984209486835652367766842738441326144839872834542969906553642320737125900822346372506225677852729187185977880905037820986678010141770351728847860239152655022411700866224139242680950305235080190969611679839722083169871458107625258168400608837774022439793299349943211180711713153584647861122872733891743281567027208140339940911985218312792049771234605966601593351652304374158706598588176051149175510648594630884066292086889268520816385956579634596040391839883598226461600559273014818276628577361270243808316335239866309724519309927420799759726329120716940448083255875522133029456710835536045817179736474651208485106367525296229892826172836211849109085993058819658683988727628023981148971760255681028055631513495309950239090234201103757837700287869146511077448091956840845451149865070752263111887414770696952110477639725843426259155599962271486524093355178803799669322367337935729950766384035800009980351419648405270286478289957865048561350791975062561193993439639699876586093984019099036708019927606781900737888960355767893818877279530605629890835124788257642825241034435370732892479676540579031469895136317835946950932873292201067335638687061839533009065609670132446548210437909264216882313330478240920296940940775188768514359183181982381076896092766142893360668828456079488563476312754302517369596211965479485414180149206991572229121320891691167654723013273982344863081285732077901799566131462219431562668107468267747927355065189770463819319064789625619507114436310867523453730969144123175656496207377689972114679625136318910974399680604037879084974198964385054544294016562831755144759783180281100531076141513824629515407585131590973781274089260219508671088479449933314585849979769276391618607604058511823028774525086210897550573928014979110136465869458052247702585836407851768087603233244368984088331148127401477966115041947352347584059439326883210872075296209071949961543753765773414246858804838605564839733916251346395849539110015243352664808916047456315903011976297031716194608090170918709118980069321462730358055408333936621747250445410116648238266528879862959522050559763142548896943905202507840303805999882526893969475814743300371296387915236463580763676768464303713375910822066890436092255822110803667966888563147186875908494306843409794620106864078748888580531932801657840520805831722066587328813662384346613317598184788017361345662314587312247494634807817875928844144438424269005744401337724918252545056268638538692508046626624252875888775603785744428786190388020516125796337315022687693594043047647467386240116183105536688690150813740340970043665896791583642551363612895497154544110788934533990963466191587428538665987426398718324441843014141283493486788434842729573453486085686493147939339699030506474234705617058197037362253301092535313539410666617375120985838545690217288250871576542574401968751970710319135151123279072059751833378353251555919529593488906264687850055045224820821711271113379646640246209888570376936950138721753914169771564742731563014481278279191515022148220910142973228068068472064300317442433030369576368613467516776306961855352362762916126642514322544702526760958994439079298706759862311860782677684278521352797242211537971845197267953484085990267518749039884775307114987134070871085120183067262644930350561355756523058762146092869504908193568099202071736055626411769653889536890797672055301614201184645929304035287294002049553763428060103534678181746156560113496806490855171459630142840015780788622200052769056764188922807943884778868604128012013482855595041012687126741695786515711020684570264366201795938625856617284079370358321686237317116767724714512920468069321833611034053153271200741908395306958748148482420583751882622701916019155114863053710518542954119588969591939040130811316501076184969103016595773859902382715080153463390250179982378761464026691223830626281835594203848336532538650670651346126875220001940311249360054569723579065987856220040198573911060745473163903679177852529132176011000652139965666404789436241370541458542629563155436011910027324857899612932582030019238277300479437815402148557324113189490107543498180996533857451350886871545183293501381734686588437462754882667416518745142434150006733132358008241689399169812485035705937811983926838358985779597243452252673655326706306234534579258124789077109036717357821693772431469548370819250330129855664960683532753521671397865908873613649438253469573177079211471610339119800755124916063902012120175033321825431959300860157048149911229533554764521047543499355137984789019082655665205341738966781521231033477731200135957485253836294766674490165251156930409932129006609588109231441817228742477582064323245430063833291945256675016762073066717715831763949632894659520685905829902235486103386166678477804532116329379318283876891512633778538001747098986557289377354958022156385354047023752072656291875842539085812297138201929289087020514151106745544988206666836464935356807362741925054501177570457604000305979329413411219751374017846969239410183201010998645573698627655649433245389806512019457653961158866721107258769638642183738131349384100052501740849896475855373539238555952953266894160429369163664396266131503617357120936271752381446847053214537456360355512881134499758488716337025624469757462006842203033162238467250983303637646946568287251066315339036656402296264790113302401285420818501618492648686324102673393383420496913591176557642645937703044409388266036649206852183275017118924041010553038575074055936862332668596308550438231817247952593599183341298526342288118642135583509418047391501013859630480637181537579862071602883564829947360473115726584717385614762618477593745757243771755021267737828162692179355929738027019604567761861837584924321489570421506540981104987460645180835366913774984028335561224875981288776032173020135248181142377393553550647255059605815386583258887699034292404377399608713215562851383496505663196049583271163208765052614219415671567736434401619543812151242865701970337953057534212876993749060834476233357862030966407809247502859222671904977104881345379867009491356159586643737289004287771391120555569190927317258953810532827857454338047559918885557395877238867782784019609227280767421461581114045859301396767557338516249053027019471609591692131430537653180011422303020829993149834095142277600923053259190724455345227031554317295535542013894477295830704707032862453041803668172263050346431748237265127469067815254548840582341566097047069381526596881623788948733814696044611842399303616702605646029228899093373847802352097938159281461299987044808112917441374869186326991509568450478143361629774323495085770424165279141122367034444681167845445791513370170390305863302475461352029290237542737108208699872017009939917622000850008091220166794224035430393029346112516652553542046170009610487590326407180333727975315820301809550299797680231053716728349458386233408304872706489859528816508088996941706922914634957070392105190215693331498804724460787866810387300684301551638014620517506060605785084207311802904784965795100621008097690173073807316999992779636371381556354289277109661628270768160721480680024634867233284532086748527756241698401044617574540989913400899338099065155642825579534791547476081731005563690488773390297374198100755569011243766394159151022461677479051464660622247312324126536325825569946453072770147194073021387220333183001770303460229411258491116607709085129231241477876704992844360974508388414269413513367436457106390830843577340754970969164284465884802678401878404614071546978515700902807359466558305281119323873742683259658891773645672788059523108427921497245128274292024349333867421749740073562350609948616719559497469324092150569544675083829182070614608470769575274675112476912639017966235177796319438432299664974280324201884327051041622981502864628308189731624763495705102980221284175049368480082410803635241100977882498532818633016575532586429500368335950747342057460430201723241826705225508975318860623755526176127870458285080497826200759307384628916633272145356274368525763726774408997008503756859910323943164979462118470972881929689343683674279794361591543134815336095087471132397011279494539189067576624080472071575327969548295101754022919729202778671533139468095174938159657971249251675711994264446522404870421444716712682520901801896097296809109307492458735457942986724946053508279387367484338096016362993591697073525183069954831008526398654717493137877690138105055367210997452047685221377132124525182555195588285335997477312329904116950303907633132816075821712313318191288985921480754324031295981260484614079605062219985141957456018046360649512342667746343647909349962278280513787132172327471815638902866679823193246108696800775392584394235148462412205620030054838961274734979838007894028868051739598701793512375735195547178784625260030542461056526734640533353814218857440663026520738896408383484279074344029678988252987049667656624790393496617151793848886326981185802222920904976240040797107078319848780399016762104687454948520942194604381385130147596792159605070706801351135321329290705095124532315194918856432964171315109814018123025381471285809321873008075275556998227781967784784042702765319526393949457398685954938294464350730540961254491665076968524877335614714147724086253195390845029376828463384534840737564116037365966966707554349181055944088869380943088281593283817775146997030545891636538005545517061274941808072542549301141508712647029807172444984268465223585879312550245760062838766239726949898749071764502460865492394324815640384920377847926068986761392722881451630791903285539589501197155659333002278240259318738608239234532577678615769351841733556101022697391267264917795849708160375910389090437627828297212623289738685870629732839798692160555549913461396536025358338332124822382871439323973891219375686133956462052892961515857169832242793722425179323022685998921988675746014114673498681214662462251370439708200839154189297068485646168479148182692616313830586293402520040048302869776814601135710807039924624157212401883515312341478222281031145360977122887633172600968538596174603129061057422091125594696751202271771191657642232351500175333697553065279224690435715331201196392242115897302089931303132093903272893603663397390173826322646765628249000434234764381715429407079699140517811918052149000500405993574685888798249725781019682649733596314434137301374675160827330806946642917841919773442655146985825816927778989376040426606127026357224428775567760935689630104665667235055910430075433519169288794942659475743177742154858921034362358971328735683162904841572490262521902823738385498375298063219029023779927931813750932273337153968384537273823008895663951895538684794491464917927711017348307374024853499452573398003093578816473681535264136802347885813775166735784564506810155572376433783386399227553929455374895338999266127569116455132226258820528861833981647286657753159576671743520172621863915109746153181973386378647061907354766387635161391402432031904946898850334689248995640657412644947899847686157209314443815511603840986912599427726429208078722808396086899486743728823767942014460029015632818244490940330788060985273736951952896979831668725128201101103518841221552838071994023854290715125053302990517469164055263533011178291010343046043626826776891657683239252477701394019029359615262139873709474589873772468122748014890058917356054333411779865469862704976215550977346228385691104419895078859033780267458505751986775984323478099275807936119933405822210479749524803447662372765405403957179679322622833068547978198603105328434231077903127550487775165145435670697641502525268968594571541557817238121991651918360717527543981377519262863907660714733234372656336559665130534293990154463376949389558314156795752002871137069363431190345580876053848279900876990704616583841825709292068620680221785339814731221640928197381078058679584236399767482512113389511807867515192953436088427727991660601458291168648459231379628301343161922376538392779226430070919408790285470967508459321316046258798348522429659912574335619641503929926573348387884238921019025239271582108555591144284345019608028804752094072655848586702140554892192742120024072356153444301034532601754269938104792395472574572165738902336920681776648199025432412626586429275625547298943641029028925681803688715206987628081738706990516553043013758926513821448565259244090964852579710659526435973964434598821801072118953657363980302323293375398776571815413152798466208743042402440875718658703598390201274420508046142928476633473225268994386561314641997095634679975727715649567843578034556650054998691579071376647223818710544190070871431186263224062795081150408263081612859872718750195668820980267504109625733069342208330191076686668758601885141475454020699024341070162971586888794925360647782418770406724884998418192619638282171607136379122130662514694228209367335897855521557274216765273695768405547688828538827276271155249469672530935140064535418086033789010424443558760754333709308110619217388509463861873511163262073817985173705177368380916420558002927818812164816654610529352697398049170228604933107901190372106191161229088993528314883155093660972829031397378518144654374829121065393035893654980743336862072691725823491348414581698375759269069195689895562662688177760290951072681947499874660273365213595438666168096154124047820897919121861274383645892872746660761876717413600059695012939696159117261110555222236146957926707096411761759001712294811253514499933081700904349832025586308300773151599411634544573727670813411006354019488774694402607738203974297603725103336996233256635141643722531304028524353633295991788139684076498075384343729230573227501405658548195362681029844291334791103131559994582980817669649659172680352785093205983703737308272101195002678515518589340210809041932817319738026785154877846998254700133727132415475157925727884778931217213430338755725928328040176625962983827442490507917156418209774856047159414708400294812002374338972523291204822234638910474199686336621745416735901244035564507010988206469302687759050805947399964980239706214569407542270249183230186610709406997360312431647493371662631768452919323677533289345541094002173842424872061109225267212802927107091950224334579358071131566624885973851043460673536263472849849350177135576424907567200417424824480750629922522907513160769852184790219313091022238586121199060097990201863057781571808722299294761267076092855315317013739615933340851986417649925612223394793084492868867855370941772236665073658720443382981605865107498149358539638719738481249423938353607064718903059229390215413103338474456347533880776369108530475134926695762703236586029587841952316497421538469805041256210647153989416306893393580561364571828057359391519519552852877637923861406904542200037256094193767088359463421970237783491339160527965068630744828693241652612269704409098633224847975435209106870387889900309842184622599062588381884622645801710271651301406202941275838790575890180817445073450806645302455542508262290829162272308987928964344078803608630101787621034888301045873924096693287686774600043060175517486079162173260831540652474489635357011271113514772787733881922951582133347280208589857792930619432340012197380080188626237795395357099484299945925907043533134936651678755608558682542068807488694138732210257908056256850828915703013858627351147853070994772871227762216482722512244532009017715243859550254336798938754623381350119576255413724016286713100652023561580126753522975723712598617970758861108433756144005344123027232810655824477047837470331194142217089803970115300395301655966139081682631142772894076800223990079553136529349039266540306050925690036972479524588972161768244394575747468148547200427630750924946114541538201321142460531176913960859714765230834107349460585054252381830563566631845915528186295613748790380355948419253720012792220515467387613114017295879760541768771845108513762473856883162243634343127254965263063999165905175178425233888364436782356999639029682725613266018130006045527278367353473553729925959546737504297123611526847276385338388942092926277317155142391655677220173509769015499647490078133731585870570640952064981871510918679251293188046132968759685476209447114124343680162623430643839841944510971789016836381774424382658341333949000554095369282151774997423949014724430872428761548448949762910927629198226547820085308439774202022757523277407811214811685132253811414894424775271081283421219562467321414085793542032971568299361809912582384093493453216746955130524647842711468147666580595923271467185042214291213278868235881743496885440973597488055818582993703237938574497628083786004923569506914819964540570736584857672480323872357720712057923764232414701132012223723132034601431099426623479385960099296277164262255908553530137286327332334619948039907236722419575790795195134476919809268393014674096298667666233540793925433609776770184917887905987160707085270145671137068069952497164510598827872028747177518691855338666223363838446267299185097759898654687240843255843933388412680225424053046610151340641314605207344631872504727132338969298105373700310469012939308325033440368670703055619051042043918599909004225251266239564615133096026271800554779375107924872310663985752348150985796407660107702872854070639676671524143792792904531218030840514291036338886975109103828157859942412064727811437265708444535698554372571033929544179828645234729269251894815737447219099125731394742890868857659324595301782698544495387199938122061969489068327399580346971318750490045651585077326770573781272307311284824311476891670890764069316851059968579927935118840842113758752014107900985377279824620170282622422466695823298613258459621647479223798764561754429135030316163500659597532841033518219596407147458426375949140906693082893371313426459882873981051340510532365206762597105919093350620120248898016330808259055911421526193484071543702908225231754315245756647592205856977441428702122194728424305159934857795055022877589998666336894160595354431397981053700227444157285908071566102299780200184862606870157979763594145205923358215401966832544800548457276066637093564705676162878697718550573266560182626862029957244313961930655587415465800177297679922407808131250583991095077192541592786903867348748966148764376621117790362047836878050685493424835734025187963645658929528377432288276765298868366034589157859730841165862157298539369513476149285972811005059157167891414509417043597091558866126036151067388202280499539620498249838375266342027594331058664548261088997593138037441914120407958223798894284024447012169248899095054727456716489680525522700862984406205693801913125142074576162778879348104490644596047804818214676016963555466997893098739158433531335827420676731031746343398559794840469102681275348911720172011437734073571758017000676758838771934422543188182641537442984938741139024127251967486229832840827535619313108939501184333602365909147319762922184492792740286047430791189578772525644602330580202000897377316029113082693425723152430308279896218914342580300774864548684804780782409856291437151070819285019010150906976145644537798447244290019270569888308924637048998086571640669900448669500684040731416683476128619066756756303806800979142635566798022555886910825441467639460420697386600509059496663370712514007559676267873308297995202793543922059529596450669920610988213499070424646124843588901023479918061380035741981277718059251528876272920392695161080424798796477718809206975871257746400708144784275467820501005810068150922143857573985791643290035356399831922939023580068285865270801393466516944450498394729622384661949958086417903886972207767673137441732709187159420979200408009355441359997627203750115830548996882338585376232655071909814237902361170467068828460008876967971421296913063544555225389664663987152045842982338996039175960119998233503307633313939176969227772856929701006052170246929093663598863783601202087989192143484288066258716698119433581266084072914507939846991403397388665308729861907171951461950474682887577614019656275253917912107843719867726820322947755430550020063832044951191206115791267945836738179606013589191620910175770237431527233346196456883650596760361765728188326265470674841825068887705340914053664808127657499860490034708384140609772440733176046178203790843599762017170093888226006307405518145477578580443243006982186834158887958343845618870255495989296896526226357664036291540640513172272257182943880662097973575279788378285378739784941549005963524182364567411367188521833498315776104870856007644653468085215834871188821877449658277944349688909182432661989444871040585627297399539302339625200197213441519826621226915198983676934905044411923617636424451753433099448035812956425547414067912814988910156320045324209862853983191003655085529449934538164639732557275811353627933788533163978212383246359186613728057869692621670131934443979301619814712325722826145326510085746953443120493547306058145511449020853611528479288600040127157660418803892405893284089105484753173862748110400029173479263355540093145665567207669243326881098439242620665321667983959457323860669000981839488009529577325306799081874248204378115650475037665198902118796423012948592206191797272265106041363543900945531021182020768558771465068652597893724012324919185903472724748198223466910355983110719613974832296576806433300286065266123932724076314798618473612095356141435889911776864744941848165942386930329868884048249148944182790998758209500622885206850092183687260460471980427959536478066127988720760342965864167713052539496405862563648081035569019717242866100512992202865103034743050219110888587737754555858732292613373490742943553955912798137171635339793829622193523500502790483685548253774673638079526692418940868552339394677481333453169053002173498833310898672466405147016337959869597031927040113422118414328501303373355514063655340161043923217903465576087761880271259243635537639971594021742630234512333293973550633240694490945408700374566254934213536152639360561564135243713688220611397248389966636951416904106586091576625395606267538631979634264223795717133419450228394690980044569224685917270417105350084361952059292964162799267133114956734067266004667244753748198832059355429015660370616745027477903814237781590743029411568178139181946801370310268819460597476431985596954290512108499345686895550265647995166923923291259035589530379976815627144658286997346311703760584882854657991060935666626978612067232956030885984387343383242225329663015115203149513755572607188680138575161464553074997851414127836948679328547867471245095301250017282743982719333961538396476510003493613481972228060577160167338205543297149741028835208825591115240902444573219369535464650528497338841113885232068065610065161328827207344862939653564544204344163902255124670263261668676824203408381369162464077301287082153912279671241529409936553883237340726988062860248605922039114068928669052121531805448638407888059296808607552171211398322686170708901351012780495637214792880502657728858759536981756415755529377710415558250130316685260776352744354219227639622437874864746990622311214823074633629939472680202044985570571954030401575931540688131819832842294200043952494869288678561466312657439858226314308426641993284938895006750693010752790689342731476590244995081555601497223139805744146175115530835290289030679265153947849088084578861679057461392631878726115566836958199274023907974488207047639723561333590248995849826102834325883909804183142846290342551908279213377301642606799276473823992042436293345907701063488376050224196605805081412518574251958210874791865765616855088739372633409836526848976795219913901805685446888744589147847584972383772410563610313136072312313476920838535888045129243940469022031219428304359016087024145914150675067041250008116915376764545908480896475080468272169198791820946974937050686359532566083343635091196285618020295090625990141032842660910761055424360514270645763993039781724399964215594146444670409513447369185547326967796966606190924483997279298437314203064296838728751453617526200615222907779446911769588609873593328360016130191390786689145700334911062741376645468539642372831362671656824336345801739061220680864901212445713594690312269271547249118924994705765242744152159484016982212047792786313848192514762282006130497097987380572193658894917009611798738174813186265655089976730416127130760449042050783653417781402211017342650948881860934438537769704141809230451329120347769832184616055383882615639917247317682763325557916958349447518206667716214596362792191195786633361291861805505931398175873724543355303537333604152386505061396189197453972986968128473861103681069705530521066923887052632985988460754386253174108653407841376381551513909831025041032966047511178269109463624046290034233930096746925606667112607365169504395040262856010958057496813986278189379645343800182312541150058269885084360347159959491760719809995011301700394377819867721086088943202189210445319070826678100370775975977512380091838262030861093262367162231688454762821906077542670785631541237882800857587306249571794147989902160402349815487100520430843886427492922497914023395756581839772507096961773845788448893281251128410514884558972165650895479183106079825756048915622387647921240288426987782785047153613944803742563239422509951676730412132105095462810234887075648105720137025824505872982129275346374322360257740647660753864481699801947628164567669021734960355726279755721095738580646263866235481758359066426080765959399455606249963750378697453275141006874481998171094773000264228641280229581358264524197580301993579714099793998128480171916235087975857672386428284578015589391899791639515646262308161162115581582094626453943792208507712321395560071778476251020903236873521039526582537281166624992094124242857464353731140295676059688656740985475070225988275202599978669651792272833723691793269843122995568587069215156222265785342252624079031751069651826383440876941933020539650708582016283088581961219408720872238271310350781191405411196396368857077518444840881695930782292601681799213163507863703292180545726885407324755974461019136760576486585166294973440417412016423198295082030539950824834917050606198977597760462489483699619646382191434891363212330731737553888430419103604637919467459949944812922173437392799572466088374952630572971111676792454435576453551126613843800992872447457773904300868121962351115108143678293192501710013887480012466087355469525993233440129908829383703810345200444520092312490568792191568879720332808429631385321291120125405354136855317388055660976204486455274909781471223700096455035972568357637380968593327820498425766626535661179718160167675491771196030723696346856224697869581311799132882618539510906005051664394176138122540388100935978905200283383827264615098280346039658183330764350259014339005158341790956268282768397281581889419094481036623419772763868838379897043300381598974365250249200425718300179209729902856321961450336545491204735982246591818293543007382817783344558572440893615298161944933654542093493636911620807542630512074774947128866788574289173415411740985097584395630589606206317314315962963490928123821596661001061021692929308817096572424043499497716234685173823784242014464804238291881776911560772274441599014570736382968663455270254921331913331104734597889651750064843006187405227610468486550284506695248897777606510163148694643116672223561805981018771978138691354242679288224926321716990728355299037676317222444417062836997863122556536122000509679576071176683021414235683467313987752700027769572851633454881521538533879393331249307537344503938195353080372131372208192913875367695667633279474353600290851952969778420772237966824057811479100909741018844776146151341469104780194933347288304765006177193770228821352820019040592004980243724829588985337978000914025103979048137871341000345440351203009460400299928891352213154803495231702897295666344383188739306076723816749253791731808895314348133132494963694160348337234765647923362543492220906436782117560630258984326910100853919438804874391484149526549417144003138681486858208885263714616817578613522130314671472956640841488054216212060225472223164944021650082612486440641361109479867862746773723104269719974087248181997326210298945587509566071729417626697783471303400896336169122581603812161748953473003411961343374347591653838612856861547269747527729456600553808487067799475493523109708221890726315094859700249826599135783585218783659463770525710304747766625367374079512240792789187214556688628999422129007688399315639275154925650846448344011816396405249927473069357891047258763048146687825670555288093746778352258121526854634318463123020182790343812545800692327405556562043254588891528230110183713196116868773857437601711791426192144583651694634685320454101085759863812762826405270844982793081582275677982058117889860206818794275319779444000318617043009039698899070335603335126969554745214160453421840421695341447605970643933284166138447539889690850218805184301910698734836276883198052760312412403371733430477167033254427248830834061716637272580529775434568235481075999402735595118055829414292359531537677852390270934880856065560457623174924376573204661689779588883744111591383561624426276744755677406559672820244189685097770052541131006798279242020347991848075906123187716485604324398674570153566795458325562798485716176342519893528765556516096731459860807377756821531392110602158123212649393818991596739487438248009029660419025114765132715214008961013411576455987027881287725387043631025970424241388395955139907782541575183650576812697964634865929842105868988865293627199653366175618508859568251535518317758632409265553952736358964713170264639501793649394391956769627539671596414624677925890204805995418653716699153812947389833616834204666407149454341608527120247953449168475271474940099905919903901199517742180005626812480356421524852309742073735809188304948898308125051849972099979589199597074265695033418807669268851589357026743537231897224928508634270348528535069770207692184224447929621184446004753664920824327020433256379001475518676334234983455023736090081401280649478826792148440632245422522886722719392231565886083026268481979036034849272669813752299962809210310310077272053208439190762069446190060286804958782061167955112724312639371852954452934611821440036044674597964736305158004257118389338163448495761217162497052515754612164930880146479815165167863262743073169518536212210051090283753972099169547095932824540315503530558049912433000476297670851084575005648562310148119598304035397186332965737052528611239148424129508164720120456718901351955459563420342347050201958557093131407396275999062691715599733531127224850111233676584159923395178086995160755250925831818032296539078174727526717666683589710857823589383753225167413334203754204992909602376492915012463781838249858068923923217815693366894072107834071261823590503955254499467505352575098133225556750792112181060359926480756050926741676847242672745671733757579551693690850467809667606583044104650476989774621356956216532529285776761823304100762463781682249352492345799822020079555351524010149084739066790515479299057252231788033572178107836802441250630132882927216020467746535280046419623099963151802128702210568052522254560937760921057443056493360992191795166499529310238411789327370071485198803361156879240021589860697048869825802111989772658710806889583789116590034219762210071026565492708433472353001388165587466720634950707794127057182471979979619993494953681188640896425317144525752598013480923659782385701762335835302086108329628481402484660106401747568837068322340106129169150357407937564176475954440846168282274756617261262059424819004449329118857304178059022214298655718951370523772450921775230237578497723561659903458419558726551166304977903133178652837071131841873927347925364577642686872488774486345633547318306682270118679396389681836867845645978680920658486876452695556748852449476995174500719232986341899358242203893098285780896717390510610437357502021789662206742565646091589437657502174226432378106761538896022783981358690912215645892518513935514613699302727047282735174964025185050010550229342714442135340974661122882355838760519080237280126270819544995616441362172671672847886930215969630882743271943879383042153406589434078745882762355654119900575178675887574111731022605294744478609037050734773468370986430105768527505165287145757506544502540258283320057534816991011713846145782978825969372406939567512372811699399448902329714994483711633769185251994014194262245000632916650520209620548481046517225694095586936941257651686028875418913537998028172006369105012946570294195674391923562103405993902602801068120416727759808772138770724914890913972354849950064443205118037853470653697769594109143845146363242234760597781749343704171112319683338177593867028968885853092654866542190698057547250775082570235874899319389647791039968387071142100384001550992707166651061013430536787254825529134696595014715517430529997801049381713499735865829088615111001487872688754806004520270931258063879361903326553286219299702390342638846880475552428128890725662792101280511151774923752198298662992561604678935259516326048959793231589698440883762418203147976783643287151315226146158092552659907061591209688500768837249134727531248261049598583446153258324762603266140248556343523465348132326333048274501774886416669039788760893009091651798437333593738572406141870046840215798630007347018898768050455822581851360283306951729135095873980306154806891998238400327289805703711063598019000450075938228535428516331865863615941837187342827116669148264683570609861084442268497781281928380801034957362687697981732298455019801865526981815045862413380462169352122170717008966227745624507721652759493699925911096270109856983929042537156624590078616343767275302931644827771671464810235494512893659201475737789427970808933010859047265602819360729403573809764809742504501406268600226344352597955401978854135580370307935044698250494401347068363425997447855288604322619267702409535726148614477013898836051928431400267193489771474710787659112746844449512501293581368603017549768995586284094098683135288367347089681321300046465961769550266881340519729399079100241872888862716029098226372024219290975850678141346446563563095521597180185993247805313769390159331745458885500868057205186781476218051096660193394393830526231851581695911056848836486525573189778256931196568290442662154196030479068336161716527245136537042685399962234457677470614165642447480444958775572565965992097590797557165314881118498371240073257453186669920270326592971842300763004656397407223403358937929536682929921553342780845683718583891483053465727009257550959320391864557661580343291729724161576740477528245960979061750005544668630352011318677853920097502602369567407888404894385017715719565963955222153406167524422577962566550644636372731487480959509851506005806972718108419449677491973392397520391332342889589029292021708693747471846950157375943306317383309534482743285672592644042412228916793319178304825526756362731443246170511514533148959545393368855764901102289540907763441880364942081126942985246283237372964111975463775129701041776589087713098609065653426894024569652171449806393560001939399798057155345171501375160307681959437414590217984656410496737101349720385768107165271717748171065533039751131007959992647660624966640621797335671641244470886318602835148763736473842735830437991339088495034593632676804341838223141803464772440768712074526256841646121052681687131615231883793860121391717397450865541516490456132574823921221696738997112715210562149648021344856682508943666652246932534395682358726416338614410481329897354974382222211480856315853987479071369004811765570948654803109051994975332733345172512567236938626399308734824655013525120434587442632101709950996073214079761836513005239623042167858726729347609996504320135046453949503894917969126137835304153758561264536896487134382829192709478916309938766353121318885871115869264863044325485008900421868190153871115869219205494450864961961672937929911504453371644709042600949061080846698978505161814272624503249826389238313190352786061612909766043444407473818435409134652350097426969641388034526547009390168405388615191056724400465475282617654140801242881203215531776628172607170558035317805172685248390920024719523109833602954569689974659757058941856995612467463503418618390222945169593517242415776867517785967633591492928593685864282901112931538149410167637975332643183784979818801345767956508498640061467325224996822596225025186336048514601321808454166356568039399992486347759838880036737813976076016694274942486859372481050559988254094227490845719108006185398851016445750793723414999670736580133541178312172622728421934265079504116249772143007687793378078388175704969430436478464498080064658213524562423702913318074601613617258710034430669062437380056161852078361361218917177126073782068426384711545407823234129619858233979381180600261924580972496438894541569838036953284099453334116945159459579043360417570325206893415700904352862755488293076539166175230499226921825488097414450559514792918739336695218090080173340883455564357532032968065127710271942674893099197247339517690461097822546355211604918014308023347341634644729907512990639346673896315787472464292758510416544519494206689290487386189425149485785428433412742945986203543910197592721616672949180054859420514587108546501976715977202251341894776858607502126693757469118612254910979002170107748231121427461923009505636994185083724175504413373138643219342958362776320108065073228175140128455520344346130394686008397638810801936521452220650630699752983282997861506231920521636634511324847534537170661705997559479482082527608188105057053715180246970072771235244707736756445480666304538679003303631020236091455691172903686175163555574160468299071579680694314476964103430980255546174333222924214454569487068436949546778871140768799931214031594622121024605289152190973350458903775189343373931502712196535134853079914494147279453926282902316953571400477962781205644742683087936335814835678990455611330223468780101853649761964234580804410057380657815867953216280051001747814168384027677402407409419098248296394193207430654696319059437505203522886684120491035025467254690560696428510664160487266892557051160786451491565492461618012635952888727516708774210874903108879754935242418802318713955522438023838916541103855127483457506812747214517379862230575106498083827830373264495107849188725926499042017045716984605180373419452385443919072130922080773875994331648970633131769458143831922294745520904160945032366190552683273545573678102056378130387238776752830883427258589760137828446226410461740144532651487782349941864946866075676055532776938931568636274802662608385652670919945012563427466428849928043362652529416761466013075592892961282114364141603758237001962768095405037607040395735410748895557976309817338168168331864087331914227166019094895403737727657181045509000855550505411809371534431714240973617572529117285500475711274580651963377315998468282013845824428630826937760705872798463241852829378750074565965568698953409981465778764890626690670481418695767247775964816465385244094037144297748230185752388599882018791391271202615274034459809753657566303923612380114817912910490765571872805671960489201425844541177625816197096435883026504836057003077788793526050094609145665630228468297893044703745842514005536321524062264811670195219338968980346713155180308751262003270147718347285785124071284246638520552749207907781196813736025049018282748019362753731785855519564933323158484806778083984587953010314104998610932892289606267356345065345266429420875466060100199154654183352441174178390425170774115559076329997880465510198392780213200779579823381368219532208793795085391828216653494960191518298420547467389006304022302034748351913024925247565019923748177165778678583667333586224934413374318527016924165155885694897548591666314438618499603801225126020352409122075452008829735453424009715044056705901821453008068880819726041076478212784025671384171503220045431590015539237588543014619612815761501750615332000541292151005012294986994298039745891955579505601204586399374956282436173850736653922087502655472793690430636916487692833477989641136927210336455784353242293542421126353896691826804108326118921249085538282484583189481667616737935428823113453137338170181592018507357757528416089879915922917183549728431990809338270187787399564415283498010176368210819689133438787440469052484260292948670974833732628354706118649677461812493290065886873451274016853667602810593434371493801589916303916400554034918048272371061775178107062632829394032468566342599345371056536544049148651765699065369425312528691290338596836402842186074588521096599042018903208821818806400617701932675252847317806466530958569021401485441814828344956963496451495538580747103425430065670299625343480244172568222591619954726571788220758028887371683605424859324632479127702597178734794534775333119340489965278693134404982020538772580243536440383175511355004930429655165300289753265702462173436152830396690681348508996386485333956211931803705610855155162541546595850428999820585082369253108557266564527162428395606193384932646170136838616892527132099099283394512379573712808863467871643779484620197315429019973454849371692004002596546923288436641086069020689172995933654777327309520929972919342952733937081610414459144318404742232465952790827440007782232890809837021988095397559190047124380285566057492902873299430839754718951698618914950128221890016481505802035620440255875132113395687119620083727719538512585691720051201136313211055746468596538772251126957493911861278223648187095292688711088565677278194814805506764817372151923872144564781505558513556918889750931399706210482898285498244417628729041242657556636148263093149570821552586390218892865870541963485030508243722233219042325114476831936497878332079994776838297188696204275733560153961003196555461263175266654961826500835721949868665892872673621148213260806164488762386101986047276516065750300398003854201277287572723172927538857824180647092958508103706289167540386970528082881636877596798728014156124792043345456821939780923464126307181355081633015775138227602989388760438392695028525137321243512322122837422608034854546792290787160631850379839883746427312342647924297927697024970810220007088779813751452573913409863859515201441558634281604379179625894802908479308752686693605077030155510817226838576914699954254433939188853072665069250196820831171227945369592963242906808059545292052723833436182776672367282426253381740922528655885526697717321399511040188736436689439093998379977836765885887333237716418962669285304869118755982563328554710509962108515178870254102521192176947713088224975365398430163302160674600907481699256002267447946179466108454927021331332892421120404921240180742612654021693714164572790733877143583075163192974974491158520874353016334629547494953451117603389274152416070359615379004949466317146302977278485180660395173741137365437306984665646949384775158411451286995895795500706083265082244360831648044108210630599923487603435863873743878406803894335847715370358044167872170339229174874344652708270266457867460112550874418060578195891757659889453916105540258708544421263197533604907344756213296388389964070335947807830784096103544508564071025849552835399845360446124323662315747654956540612457021568422153570474196900070894734335421933766702682294145624644541321726520595682681178563206922307511314784323261150770801918206931702658266952577388701201445241504203469158185695224078086133380130919531661728009395702359430545720133253688688787530114328645472660290557582052759760409413267972193616588683193462904923022449849205009725659848101290090527079559232278968680027756343603634226018464246091301627772720561937201230161338865358547676900371997243806983263339807890324982987290841017745464244880562122787557498555252925111717372421777624862788218783069438622566279182928730990880956699599950058033207807284284693897714279742022601815684572973136076276932634558815169516759366565351814756775381466222629960224590481653496038272905735849059470185260414300207151716805985243979638816915738627996262336065267252759370552561367064351517746954606941417314923289223592951586984144207900230486893943787111364000577165830407275907478787173818003159158224343933751016165823522360628070539995796174773772200629454126693613391613416608795772265482934741451135461381410792624654263993378866225164009175169500685771598841932025963144166841018652200599539352362741116031075020810322900807432939546734939630650672130010003044960903686949298595976618166779698756622542269078480837919747369775712423256227650918036803091102167651998186234141958883985945646844831609344399573966507418780851601820630694811334821814340944111529012175266132767726958809118386522847569062326586307473071814896191694475467987434056660376698022278159913672822857238940819616315947597609356282455394609330022297354420381904990993559396807601571948919824243813484311276705479311318565351485338921919970827544777691100752630380307637064076223927192656614751366691425612366809280743692425619857037922312795801111199619264459635944666378408842393403742310456119083407106223405748099114489985779377254567039825454568583783160750467712736390433538001489705437225289163659547005912382689995622024034678750982942687993519633810804546429241646066536195617919337216290173733140409308467809940255169473109911252639070252151511897905109234780732969176162271369246160726669055557853090589395097221499413437697592403586218470194352456088716711374700500311721347954664192039790903704018227312083859787066056152188658761878439154749020375800145367769705374078398813689905124497583095648449803976083195569390069100693572195610974214159563055781339430262397917503946722532346175156996300090948846007129261900695351028495241281179469636847936059781166977175209888382362378081534748929732000796242882888986005732160081246522350469485011626032849168685962732657908091760142096056490450713959629522140076832475605947135799734005657980545547525367086596753889183420350150452606379504963846775418648216577940131784285442637306255104329078975053381726030650470949019938076206029126063797567320643240175498549240621127531139547673773273222561524316276438212324364669476274261006483985315860966426892100394756576546590809295543796656919605587069585612595176087936915301435029755480318952889111914172926077008846593628166742912214281876709446591880198556489243662227024849925654441696823001150824504989591402663881306604386283362938309322533276964424820093023322703963110647683858671677688998516893097262293969388198668072895391193995509471751421504028063997067420909878929564946875393726165297178515532643599236446066186359143688186977622898370329607117053171709317249479683994322532269788104887619362018306125186901998560676706421228618255115274245984229831851359504155145429370067763358179791046037901150625396224338443286436844439906734277944131032035902206215750716286087420462107431283667253825013381913268367117708159892788961832539795199487462249786580182916616165761546074449291083821626084504639342210385705151887748857933332669212291964456694860217713843505483729791631556528765076696156621300328294523742682167680284463267421983282332833008552917805525033536718985593717236388192771354008423653092380659130398492853128107933065264004281381672229574573853564680129834695576844260950982176478475459049700191503025716252559971472516980083802958951059970662430398616245935776158684263044337016718871760559789515125939132005766959214162638586957877671124797005356679732811364751345655085121553112679407319120789154952005522120105961672475974990784855563914703159487624589524620666795498279310190863117595959369189927567071716356763255245963331910332886295329444814776975206776578789412118903807292831936452778162075056309341092180979235415303149792675659495602586714345700931015090693979926911577599582013408426293578754762762996494943221526122773851607321919259163855059725660101182928180887876506032738412051072334246896335643435127474326519807008189014602582971479372956452205465648699490850506556076285838681266083917990497225518175810686425328414005374481252795996359733548711450405120196160166086718932777109770981014575441504842472880876956071144641510994766627789479916313401213569191071319342120149618876826564689440829107973976487994404060785826711771256267997388327232992281197531585186970744240942188697338454093669007425993884525917779547191797809699494995820187867163506919745243837784012300022200245788637979272565081266359843460952891066152715367148950326729919605212642422672040478694237276726072918232951796205551401583737995961845441433595710979552356666251611970240245464382827498889486876930280399160261903374238428992079421639134839414880142873387703165777963539036846113898235765409231168122956330310845066367421618262924145441048442927765763958278309707984723309653340435278709478316246304124529715948268709064202771416913018112731258890582259163867078404543235982100260386455212683534247906123325072011841570582260272114940619869785961168060564324288180196595238306464726658809903857112738093250988639617238332378720453196715826736696784148392443335847238091466010586493257660308615777072490078466651735657552692269237189280625394617852440218623433922355650539715251575503688618225569453244358243250432408965063221849831405526960506219196696543350367026568617641562709726327978048982166764197090079677540944664011301728461112561940344777818680199870109963286741120976648034202632462069786715579476035984582417320379278059395495971826248667551168063807569571602187724798249868574605282419369668621748658289458254588734156587379642477626428320555493460061127336922115220775697771365431723128419399713480165141063631307193219900222617243927775874173821880173563589707823104992487911050577132327642456402962871176841658560941391997800323924343751104755000306506409065996999037382597571201193503490582486431397757652449995008440310533736382575339180416845529506638510234236970964466746034448536149256142545036659933618807864090461576618481533287822615859598218135780490569950125693499420845388287601524780715025755531569716180494585526802235338102335495286262410405967552121788060397337491705330301981014378091178501677994779708035529675455863142021403909475238925027394848479522027607802167252654163496436894761505676519175081777882553079350364441429829933979331902722442333733214828702509166476329363624723927618041869941512770983944106617108267667207762392342699500163440108938661143267883516552498675731772553023650129260011492248936376980464106404113696069945877800058585838878616108401405185434942060342193487453619437745685979330729372514327953209293301349423404830216348236969443920975681926279730571642791618623282322044042794370924162338855628560098302443505079987545217680286968317156522250950484051962027316328777640709696881972932523429395927315338711569632702150934684493555147749426648698052309556778474586837182581506059480482502406952798998236813195527286642622530132610579931490642174438766451354021780873551746613467134806513613561170414492957190964630262334306002492109330103587359235621098229138195292871476563443362909890990360002965859397760508984566909082591482561903024811735962294846235812468719848281079225406284124834758121595543849916092128315100398737432528359678416918386498163917966955272510109102315600689632945212198655864176372283449919871213838847724212343533410697447557285525267870489381993370085535252914906822042864971911351863346476296096068470168423841926886288155537160988762213931894674425848489401783774330705873941329995188149455261696879028540502165226183014400702112729339931630102154900809688108402217655088355296699593593528825578171795989675670895263950419488189470071002388481409224154118544286106890533232538219421932369970525486629733037924314317891304580788276140242746057940193507454798507515771571545168600138217792484941714890314185729925989013779333501531143478643464396971739859379713416443464117375718707625669058993604969108168692432535776214544340164058643171052760292235763551105229775794777625513360347696877564312595357520041663303370465975337019940519018664790591287569750050427587926340147343725034268568586382976110321471679964790267541416736244928482617627150945351130526998743757706145287314086427586112818345914385054964753454711762374091903648521619676717037734116049095988896132250653474728027436620270903783640350457338987161554085631314723122032355679405721156069173759174382980955560637107002823273768393924360912895950831790702422083073993091484488513926575535341552755725849776509846366957181948963572230096434087544812353060964282526554570153893589369094551300306877987758827574446846916823514942009454356667372471180365727206912117928401470750097853595246937701169110348396568711221180721501813278236570793188772874737042584676032200303894897633276811864020086251449070673706682119251387962402036425840224654085261454492077230037336247758947630055430186712173224274623090278474125635845205108431581857428438850299266762063783300196176592311212217121304440374843197993190832474624325384870275215824754348445037034982321536851225752639227219427180535201077020224444794087135592639849153509290168571730396324544896660863712621624560191730293129858523844594350532669958026924760735226333497992635873940163159752507723767947418153310294619651940363610448792952815933080313116595723290988817177045772611434673521615073153585578484790103510973874144566387842583715543274275441227059790788888260850013683264582562957270483663120331966084458080968111219027640069825385433605342044991858351153008879017376978484541538770992026907945999743101044905996870381024837870927559419425703541312384560209540364698643734307353481789856657535100652714388028445159336331830188031240213135435222254198857625759024851389991621845603576023426024563672726256703297777541323922203017068357478055149657011670181018475234212426000403833152669287687111951540930532170152006048690919178055149868572207959177521481127788793838187098885902569067257906814512995300773458230477715123599636017414978867159095970480328645872814578733367869029646690912798126376533212031514788089661623738897795200909934448120772762224213682138164776621027984081699835279647771371078059470567429836641501642953694896939214561603645230970313237496490727206574437618929418059227312279985177341882211608340220570576626929091853255398747903879754554898240028834963490390393400981706338193170816557295849933908754134821829454436927245058028709786481280713157325242377414198716138456523662671450931421856365287238575528352203933119561159358235993944423463799677999069859437175194929583297372153090630081563831602880633419162146352037062642531878959459237282779469638393784132797912486514325336535131719995996430458234494454755327272000620589692487389044429673022472211711917979876036066387029461946139378965693966372627848094548921002740522490960144815155930773916057236955788853106145724771833992265449674692948705376731772781805221954128418527207196821820867449852694926353315853142403711002540896678760481745783903427283320938038691736303219125607123740933378674483992334781775091636001845545712892060048132943056796267348612978544852425317333898383493194495189628557956142136689060229908124301135470002915600707190944454901905823437709884369131358958556330443121915520287406209659979907864846581483692687585261024430662085643538695921587876847822947988440381668202674075233458988643276000352271022652038083914373535843144160589426076449669508722782358777095328818609271556119458369851542516205097272279684144898602151644985292724901393623371943694910381420535154515165146472822222051086636227577102930169383258310341186702288550730137994506071626901106239576385874642871882018604583548309899800088610524183348612330092978682343267473741292238848224600754431324690108610562307039930169480952200653410756441082672138589903093228451411045503932868718624499907832484559752472991019553965493830980381551335892160723480876415906049094679621726284815905434999548732583361937994590802748869597834443490706409462848974410414937471866435876120757353609232170031223766889483974652952755320066982016820310716959777259489337129180761667671654200005003165655651815224598172888102780773256266258845156999270665529028231163911202133247525047664898587414282255495565221561568733731076633205068461819815710557272674460112768539771464794335126433300699356277480578637294958549488579516253087264210850121460698310669128564117759518777827925821324885625878723416715309825700858140996495669756595333874600308508848676641965134633317933891560879483033637748806997634604722689916351791149772131578451690907955728577100073624113026717099467920756369792618505661016751904302863020907756795953026568101604966355294959472887557261010263749257226227228088312382348352569680525787701344924124562719621610940531302122886594628442676127664488736313644012034038186664973712486806055758420019906542682119344653066285884802770269253412042034349055120725364625394959359811912400823399496210158596527372974729049989316197955128584006258954598522201600580737188435151270899834284584629931903198164678781722586402279679833764968672227435900005124082785520244630428662343179931249532344748243500562441502443339333492447746234572314397530145238007433711351047059127525963825432805452521338674882549734276904551518144574849366051845423984881176019131825688957396943124011849661325489822309532689957988901863801744525337269821113777724764512219706382560461262934258848724599240875759543223566504800852202041019785760319643552638271902084485205612343838952757845619546630662804497281492340019100742257970195407136912288270471415062096128613051707651766615338635185766612187446400691682569601203381364818832270290791640223801340248307190519325777550800706052451528414819657311824053376989467770795985519469466548081245710311928136031131177097542060589078602008132645692715497538160451894758740179872862655735912599649106801682928773811489359213800041896645957564275925257680985749414652583519281920066248363182349217690017470567648059302144463002173786588919977462507769539687044263552477773770390587324426654767603888576266627740823232759306161226869414408093679281110790554716293249522414869704765193190155336495124072566732960448579351148937510687460087988856697080750435565235857626974868260570723502254271829246302396596965702459149115351809811116459891187984525972925215243178167394883728934646139439292163365698179234947915028502121033043473898519409458467120514509697262066701898916537802521375437742782076207125327627595913740747777014968428807344611766384876266757392811964810843963159481075541724387838956957493593218700169536174469381057524262269178243470951143677293097257558635509565175730084879178731717633954503434752104765031337835667052535975926563041707829656316272826966421178859626965711163537035991377468575523122988785690721294351487071441695664362747585595680504255922015691385585617887056343507950930334251450386109017994404154588444829793564860856265428596536177008430544367475893255014206288245939271111809264218760841445612124036488055228403443989522565064822899433641185356142760279526203474579245707849990358095565628393981265205145823534541679439221836554231695412790255912938746795131855989181980743044281353646665929521071705976292930139283787023795492708729909096653803962759434952035645582095399378876908176266168898128407524217473965334407384924642257842833767954636826472930085778046138557182784004808167831381818594582116674445378196233949915303005695230626097139516086435300298828887082395323939477963727474411667796609471762842412523536911048580412066202491831294388754841671943550542488132057491045088617717916723709433997372416094982797873470699993816083184855191919271375898820627407938347301823653014178989172672351337098835596509285651436897141381891853982793388973295807393838203539636054996433450598095860217599261689870679852689169548180059828526981690560942813982745788519010329387491809746355246734877079749937721292806929956112737676121910964239177858169989932785078174978244459840750365766254336701299177439592586735977354358639293339922359056600983228482248642617066463410013931061132418075434473090074182061728520644398594105334628212602858960051424822752268511172158588299674339422155104930787318186460414874462566873212422096770969933519921070672429323425851086197483907196942624330350351347011528380657547982510673120995392524146752922141790396349124094520433242181643067561866176408825305968190474455614576138586297865770377384827825301446083036828777308698493348002295073323198322031362927236676848958225128631086784039675307170850478853205550158224078960048427358174980256664015403754607747347932090712653253671751312466055811997478153475341430607382081738847485882680631017194575944594054344983888347957113978162491778560982176875739070934942874772408155811709171038089463221567261620400226194528580435499051671232654286099260252977129618867538329621704854769052563406861409186365990369754250706584809268828748938514161668934636037877431594011356514764446501851615410312274248628481887672160284478798460867957440947451164048843786227312394818245182471515883648689393988187324407013729105995231418400939509096892806722180137059759867330172498221881334897779224484564996895355256394158289886275387451275507242716899594020282632344684092171742585174590682766032721088638446985078931827896722130530277114996628405564306148002288642816323967917519043635527338013485110284473786012690379965730839380111453067242444035807261599703975853102953068531558769575816243149651213641286342781658004239775954778825981055535707697210883960258587322514184006408143509669131615135029778092876326594309314975321285002349669420146841933010756720660242999898315685016781013084272119985390645835708558683567657189795421569568859688580408940591343161441189951653970420367463905387667610976872921500973155763167802663574377199636893871368557709544128729123779116705648649415047508162186480095247601227818245218978860294472439420043997422755778921411887169558588632388252526499178991048517239159517286949253614228448740008276345988424757060844992216876654740242504609944265808153903717927334740266795399976481386412922354544795803395837882660276879649025121701854145816902337774649331546263895409248179698853272734721446752810090312219845111916074308917324599908530273077702706468092717521365289659248645863212793174491918641791692462670971308291037856808140862705648853832111109870576580967364141859816855674216484690556842848863313488318836750871010824158175861557915540244196023561817007909451700025034204482386377206455621017510039850009803190039488020308884122405510773765075945760766784132874772265432740129737575879464034466029934413415591974067702350328712565465255670859283397188022022816753234251066694145595508116713005525142642210459902136825284785907095986487329977688201741082151561728170700968942027936879989788618298600873932526804272318544654456614134664600990256326801003521674647174495536230830388604643008194083004622313669944027729639482110911282418112325612440025274701535517902361564987690381094297602185249742400660883861785700526624271557735436489888637609450751776388627452189258584836339576036882298511287999650316703685109915281391222773705839085108310628624382603248648240006954029687682657341625797115659446012170376629274632521182181891815032065555738880747781162575801220703802480085801452916995381105530651684801673123139057507451334173051338360638573878082824852646870937751069130363619211423101032826653670590282150701619416688935216747648464408033009403729895681457467040646984228143857039230823370026159245581085594134066911154369766807288911919562752435700639425757470124281897911259139966705911693431167898655207350099917010713860319077802830120880398422754261387970052598306413937959850097707596179398912160609322975028845502605560190089062894259553497351000474850271933954702095868586640546381354732276232821049203215665154782562055564867879798026326479682964088615125588844127487331273904468872900169083116022525941750276350572653492578094816644443443401241162983404647069102567617526873274840559528018908105232747364184781810726953933632954998710947617822801023869407896665302876040143881645459505321881865547790578168280915329407101250678594503158076273897566041971845919655102720840883403090130690558419294844384574070551969738582803600116765615998693446480888926779978412442838710988514686602667486507194351469895622928533676487149352600017854522510965699268722898646765490024195764483575827398626065892802866908071602329314471414500449904063832305528738617370429175043888694038108775363403494814018571717683861368366644306684347332703998305235412393761737251449486245161233662923574578743588413014721455361604347611608681005184865345881237321884518078016197311098885031723726042077445690375110235416662792554213789386278834261880358973643584682173139504533156320931289024386722207067401570734882115132981487232166278522153309198795554216319471051180009380130173442975295330368075674966815146011795682717240896739270651491939585513375004824484989763797982572001679641546994706766012473536382477542759662152579066610095421504233963028592529812795322652261052966382036568718253434780272394653439334290657283598718011676047983638691636031621222771444091624932990208682376651834146976297334228399877694534085941016227636854090930381484621227933658978772741310037313045261639245585540313361466909916612992649927568106031956326550811827328520714072217631293393941440666530818248082687988147293606918958494978343384687920587270768459520881142384622821206578472192654206248810638498268639856046548860450323086134531400132227153371449466936609424132647262838610213639974712491216179607447703750694581575925622684383972716723949354113142704745722395512596737727197734008052230505905182958784535976783838016798504214230441089891656094717027533032395739508457044929555169550019783714268050297580563360710991239512193554950380061562124794134098453277211293997904629335587525290078788405157884952045541933906429077746834512280128348793376944471511103670976250826252080243531499764112520162576877115229119198659808349459597372268267807972096147166029031094333628411520284333363973123473046012443701807666727476367058508502086680408205812527712426530476892917998621359839017229771121748185543969644432149203908317454047374699993334037849967898030043482905416095501820905198276011099119494359215879428408342498043216766696355962503798966224951199813280325598693654036829664919780701070777960819354502533488017308947289718648697640517249378433368543240423555227658663439405332796431019588473040438511264987670280254314012401913863894402626744143953370990085033891726258828845117385948406275761377032927575995502747122569456702865309939365668205747807578993936727205977187957868586944883024184130471028030888604960604480055981385305811978938858822446338238046446671615357527057220288520948888957570282385330180634874897029682384395089452502682898253106234772064792599236174548127604089357080430444083920175110798465650321399422573255037545345105229576843198697457704235790324361759257845679827911276923885290288751367906998212523946329927540269085256562966746813532678645316987253029710827011633939957949478092239811570337129823787783122875444765419925115451098271955456913042487851219670476429588530596861220671906585094182255096851625997397702125513435738120871631806233863796086826720214297860270648017641223036731251564454344013747257852769463361148849121850522928888720906727005106559760592279538709767282797444709991934848778601655050728760844325005835331516251716953351671643222495699747628717887291394932461183812912568820355493122807787559947241555880140005106785611248297889366165276735936564563521704365984970014585390974988255333530338934457364763558909390878257812519102910583473109462774129033820227270996855939210971548536213951035075080750284934539121669028366900384072956783053699332636588906037816410148802158819486975664087809355191890002708704069632640288614512334258524502945157809032154746552310338135575880057210958512580226905412376991086481467952287765377833231238501096659878850674692563571674412039898910922414650389160041552229467331331574433410212194020194030983208335925393649490087371626716903314062860584059605420638069525432774950255471428504327485206163860604948875672908828414605734244828068817594503343189553236014003400765828531298117455463822895445509478936943974451889373179705480052074693580777349417108543963369755320726919552607106468290652463532611054537015392694072887170671394787196024753452186083963293713650735871794229464791718416959561430187956759811457720779753650682474273821752317820300817629940891017675705491138395227427043018309478967744346121576621970526087902895025064077406950374704581256810639198023414117169065113251667893112952857180578559995197360174699716768850429855519867551759263318717141839282536703342388205693285989778224851595733569042903158082000611765230793982725909931239660209957373412549996914422206487091460083672854421843953558113917059933462551601420052578992650071644038993466610550863690001164031815592931870850953424031587556195470340226256095859912292993565360648826978201457398388072235944486062081507908213356219017090052237221080329204791616917095089173435141789993472155747247767461500807525052865712817657538824816956925739716040231114039953324144079307524774396536061730742191138882664764338064390844715441435303579248824241098064130778388003235250168141812348440433662175459888232854384773800533520075755257384784987995830141212511704779529786071523799579871859439005425859897112223906108017722941421941973515244213074489526834719287521652027370638427399690072134375523273065316735812914209294754016234725240807303150174849871501122261390892183028713197741964973248162248234678559565092940346670041062974893119038217001733195642442870841092974656653982307149841914595851308430909912332755341012050711821904609077260761359254562079271634008953148240932578482459058020372972203596508746603670775181119070628905095643938781564891204474361347902488308519967648217630088699469899997639533562920616562574744164537480185608835883314905515097785455129840273045569700359010108680183561339229280164222788363294143022655790615723776601162301388363477011444350111081574021994972905489885134561820767652553487727097697586747041871165349302946263372142096643853085262547479011553041387699677958166483515680507585687312343094752578945677908442236907164226111086510740735542287455865140563873092046197316998764601403022174230989883326017681968044671214584646307622284373452658053039967737573528411860418517229009909760881856078268853103221259201307413345985632833969864052639327588417475516910879964711123126172700053871389739365418331620534341206833231693374969053699625374537520072872214547560283185934779383871734948603936481180843675347435093916195835351572118664630834345216336471769266802117005670562956867153464949037525395875189634841488181885121054693825639588465507777702412088468057253808586415249698049183723460333775430057147442295203273110665410111515170150390266361612518236625767973645008316515276340860287429779874918734123829309855921585424647858511641089484340726691570685896156452982089099017327822768962368398332013595862923738121121811624579520202075804053527916907138410768286054406085884104810559088966170089002135987227065978595087171853906737213936780384955796169080224510624005645333085531367426203653363235564317552952948961846671603917117011401968516899498182546473449645146346710339308309148175005975140735131385869488335446172577546641103950392820035744621977636976770038455095682459124572961785805656719629600906186318280733342116886176487924274920408875095444796789563940210288358967629186260348810172049469866475039475100085898457121514465169492248728393031117246435564622144390973554658424288921793774208657265439797097398903227518126343494643163005711741939226229758732083326239583515559042738753690021530088885289847915660668791438800837509760463153332085346906547393820454416394515853954957358632203132533556724343556255222652479001510892961463865818535383200870088581444057706428368892499525886455173609256167196781818689034550784052728465637203759513899441090638694570042638533178497885010477958905941576845465679286875242718258113828269530407413109841016844598556152601284399097771108054993672116223406636032627059083663099505293100835441086135425154859022555345691225919253814758686952416802631304316328156164562329259262063098120163096641863763411914011359647781506536063644441277754564828475890203594205967562451019163829909417249886464639558440590451945866016117771763105114006376100950053313032425463811419421760041840642279931547510528600694215368765460418613961719448572771568358462277374698255985465418527859647378386156072452848386505282077922278916691035777400802259957840205070121523818939092705207501619197442726397203363384983680647999385927541245502360851989834583163890142510616026397871828485677962966417828498430567950824648433050995295127582665246706341627335476546733585354807151684754853008391739123010491267805570619821889704393851211337131058705610469627629656978096473958192154545058194782312703926996971280938345659575229539101042612127127170413093845999454380650060272619487780440889330093771425184477850442352674805607851285922967212705828138742148522865710556071876699478716040037311020266991540205168427564235404968741547876091907722128636732192322449108151894858015650557426739826204908887865445454258906522881160814834046036214163184978449987527284184345251251425514431946057999166454779702739527207007776912775157523053488506059213679095572034165566889804810062315817460261229357380996389587338597438302088669871758118993495852943349430711257845906089116204015379444915495046620229025052144392802125271841788705854145746393802037363814727569862307855585573054019879461798292761108560740294270724909490851547012263905535824412521954833405862214788957187805659987616945379730540255371829998250977675009306051821957914676107623793477887092937109258792982731994937134962559501020128335195482250515846093146499860255112548921385351404607928580837575166638154534592874327271288448321459820943824859478931739081728354041360921328261911744784035201621354849798650366847820183008769893281494854599172999577108312643551495220481395138015806202056982765318506622268556298238361618012121131279970216158706528044197834365890806564587612467107348122008366403220034564469725080779495864969444904183998395956798396378568944711776806753882066846872449057924555869951942809578283240352453625454119431421875990475056939883813268018085388399771778369171659448304195237571398837721273802092596109351400160230149617652978940894554048460942626682276435783368185147144405200318448791116833758406217404624192171619304122875003096231780828211997088128808491447872108535739385566690014011572873301557482768655634973495518671676663187847201834595863463483071081377263629535898326194651700689353909780268302841346063620769112921903916280856205167676862886363450954843035268117267594006746807790995861196763668571230729746401277050692568347754078155586285499044664783329031364096178859161176989206911617755910169445159206614284269357753471735132296922705042287987508179215241398314678201090760272473486113927495151771361218863964462424052552718241585226571921696540415948054813931499335976596013690636682526194647737586063742445804786861129304750172082497834522189805543138568478718777230630015266006901385005250381656985390171292508692977554930397356986384138179759810045823793031935229524408450520060385863066817328453210447149087318996713225415765690328103825750416350212845942546020778847401032618465209740481732696695994120833550651490327139214128309954759087064563010156738918451923978194014772990797731506955475680050443922830433758048160813011646252268009903698793038500042966628006208342939823060226547892786790979485807920635599514835461383219849162711967603455144488043518810684075564454685840250028529586583649619952227227206402796126689831223140931790538738285275364790789605528244516867674552522415188821075014806587486735715289977490705152744150352934595810124481728165951351670522147014160255060681868951548064216453469196400138548090183290994648644483302632008274269643009918298905175151523890511438456487518786191902639100663421562076240340108938939785333430394887481144001081097476335764009677657773363754613779228683510160668995244309159473812401117035054706480359835471818528637464085541682417637509015949741155984575068454357632580179312049224849530108022076570267835309514888347935483153801386136175494892552449320202585242334520989198779127683700621616374553507170881194591261191813508400534838623397400716000911390586635211872089396383101116409902669616501127126653607009752158865292257128155318730246385120008085342819065974016037503108602921353212610411548843301278161012968017988585577286488737924356950830971161758194294094361315039148242936860611358880098102169020043552702982690870730446070026001838250166473335566459584614368872979006942669937905326918376701409496039311554107242672906224282644537859581954208336543503241591700269375662108054151466086198639131955414647562753269900799544804781559772670530847472586372144607064350387298769081847856287470754911670882295666724906178093064471890127511408529988460494499870483027043055692679621420242036188100148235564532002058352508748117398675047776214580301706748153515230427297165204363620592928592360816897205565845369705695088732866413997055751968310733926571376882559562280824551556417843860914291016242926773639072895191774713316301838752168890396236555575572153870821304508305570856505920856283851878027267636274908870441875905712692141190757997513584657909224099108237396449969747666262353377287829524392381530938390821538868714513414764767772216129152508960688678802011209922393082153138907573102877342420831359765592162844970797773982065181819770685497250315122710418721755813035263884994833702710998115331057620216068602665793322414984433299925154339002232309549263693151027613682190251686751105326843994659497804749961603799524660589513057382678048630033611206924420920309241042515274382010112828432813638803486996394921272862950875235182187255580443696960318942935354865675626734971857533848771108770673080931010635067742579849084949905381325306825759093255503921434732336466427498150292507724770755141661294704064294683282174452322709769703601790308704535637487805106361076830679795241462195483878364249738575987459622359303588442691010056204518077754782716076363227028718283829421325049237678005369535915586421405336555844949324059668566203027672051412638653450645052331873685294740503425854940192224018419742922227699131213454863771443948078198738865762803816850634961001349796351140442604847013837199542753794265832879153605588136667473725903801034545467957699696051508814111690931236718562477688346525293029063268420407020133888010481125478358644220823244175978744055751777335562743850837172667600376405004723171777574270793096612877828551330498718470079843975899332619328051426931638465340913949148323237544153308220017652584040533696890895885939762368164987836127846958102364751542405231001154163875003640724509510371379999464368277754650915993736393326818082412635399007395245460519468271301102930394247087414798642974182898624174535075507707055866149079080488543993538903248090149234347885831884635742387723018786042477275905528286672855030692897792149985585286797842868187914417805398836239338268345190487370282030719581333515493577713926610680262553658355363280993001179672494949063587754753120560460961571358820665242553833620009137679355542916565002633358755129595432811062085317232786457303845095172197249508695684010050410987732232821995601252983560008366192397953796355060679620056212296364374187541511349861082666734231900138997825061603039224699285719106719666071003095252458823938805422515137339059641369217493270424580048525095525329280571447230199473537216744833846120169890131014286940477421257133213510641800264087125183021427130577536504184045749552308518148830819187121176454257620171907623423634818567499672204959430543410628417112178483077392543990877734218181661948568386957989026840300013949369054298540361935263477388645533458638845643403415615787929247180813000535309553240449059666886074846702177301091279938932277112964039078633258224365580394442551327666613938962405871557815797735317517180288486012178799229547040249559122731937038001753630955818387044587967558869013010872264098181457341969034142212487302400656302906800704722701142970032636259037961369666438426820403545346408875752267052848997006050493992507393738981416546028917146379390733989724301509108851350930658562951137812967443023714159671972927700736079947901634677555690582059337477099742377678903072014399302882012010289020431637653754264584596297016926628654270819015835459303062759146205759770762124785929541479870351852328402692504980326999078592448831296223900120464171937173967345333466139721160792573035951708899617179062918091791136972491003990931329516393068007192605521015611178558812571274305196442017614432391575802302689610670838109304168159011953679596303131068696013613012823128978396920921844955775448717309689433843231293122673763021204102393295544775967349970205649934047237788062739692826856881506723784320141290048390537418230616388257550504162108655245364000591897152283987273474674017311091517575614707280887004656662513547661514315412500432939637550250974032499306091657919886079561666581881269001527146189722744515559863270577967926993700208093328784512288885570118967629427788504514834297868418388192274693289924054642120284643626238771440285842551408797549345555928241933258497805611440775188464063416999160813065555354951519442478553412577567172225118374380744344730483231452590501304043770883123302144471656634245381641858871669766821101063357215261517565605736241048808092716363016609390362332182628060942357082494810122031923562048644951517812990208163231280251200387948857508243056295344154566191420718989406708441280913861963408986207130125297684962154056330781155251589238346588302821461687733406179934758385525719991281111726899502656975343013970522626019030255154243349354313772122342394843707721558310519186708932562059058127027824065863793448545677488261734084430921270024419518214464956712812293429648401545887384803516923045482093092851356979532574092206759920561556097839201138200992960769468287105213864880850077903000816389198920105878227338488383957871248397839833064693378038487902694313872048582810828720846607388844074991600804884835393677437090918811886221535470138277361914055034372288136886395800548425738578098555766561162651250727714199808459174046371858536470733551732497421952899918310539670263616819601251795088883530878561261486386752620473503849651883982982376731656834791026809687381786605444739011016304880359738442095739325765949817912181413675257099133218282662636479163578696606892003503012623930812458758586124739855922322710385075199389565680713184973570223274855240800751701610057958229471592420556846939178929987881866212170325373873961298937367251702434806039939788626373699261023233739574063106561728450114791097145160209372127010058447603271551350214779294296470039491090481804349151420214080004616153222361170512748569796992651527281775513856714434599426236340124323795246010880686032417618038594461398167301038928272921055532228315883941786860374269191440966572821570386489933442583719050317268122142604844210785248836813050252050005636634286186547130578220808951522616865724014463752320242532767995889691290185803082163946289612742130692030916241044143740285492740483809932791545214241317826368670108305543742717595739815545475373510783280477452603726396331149940558226320558807155678310630740153825974704805019834056791335221619631534042044189482109345977858311028880734127300997350409482377592119404338028999841584395883616888877324698992554244969884761657875390807534546919307319716314503735124264094274659083733741354179999797759132135180890902532538368050813592771933763309299685186264265905491476560673614024513239601782174619377794636580511621088849726505321579910482735181762829305520593828669884648398439552903703598625754077615569414687904379439214061485231770814094134380740160956774255689437164255582024705824004981484917860122130500809205206690961044519847985727103224171147297983574204565707716796539495151876834739852860957634443339747082922253439639445639331229209335716981204079936030126510816919240713499649765230101708002206161624892355977425045257481988312891195645154975908871848729761181996070780937509528252604125080474446997147443421834050331293935187387065066448314538041134433518862928956934109930195606240076144770272071775791187627149098618765561138658220442928951241871940902394675449145424848683537887053873309080268155258040824488903935936342135312141972997169086759982581585675646329316247106495790407726343387343295649812675696770224513589873040400595216859888487319937442371802461560084969274418597378405180401405527292935917980906755080576678307718127191335541382351183059214550427950842894589473577070430676529052841373615051166815163724376715178069508752001831584217930180492829406021236160593406661573055310880536115532917412171493586745462933656664254107120108708718985148470984536733493085402387676657000004810959182281605982072333301234411410604197089960922841529256436943322177896396503682886270089120235634676684801606441433394774775921709741940246618465347014049993185911441621351284650101198227558287841104130182660777195144476449852888375470700314005240290763693616308338964098720960779832618313329304302434944310484186711055231767266756932566708266395594377742593905978324413894061679699561647043388236424097453969899395012811079779647047864805618516803299795809702610964065808137776141797883976263990380624807622082032221929690913932112095169840676074313059461422988925211918515404356159364667481212375525687155568285287817483781373909649932945324805170624688969722285778272100327173019970940820743774099752692839273333031027654774888808856286132149194599556366155390173141225243043381003454984813415471710137766534988421697597610212206526454360141076277830109284069273484935270808507213850710907220075917929308210277200748292299611508712358696768510413342763404427103908494979822169138793919619040211147155856430178837466524129778473399896599931437324284500601166001319918290753239984248524114729086216352907817483150527263526181176354050780758234225543344839941847737712171945909124895960443029656234448020252572874912627494217492156057389210587540432880753620034373730126675211395668475740621543854654320093500654806525098455377486820148812820033594459076449496449684556951401285952307148376063281948307358343056421316109729477690363923173921760811574822172058454502117364579031987410333205066097103613504835971206231266706980604095589433971108669132214579455101475945683482150640590033887373151612200882086201110135976153603082603948377565953061913135077161336143240384977146173749568713090622930077879027639323731394981871182736443878841764257744862640513476269595076866915426154009700823791739153501171082570310254923709011140141774152928557842555477630388265111786434013940662692951866738377099144693914295364572185726788298143755163642900832130328217828058665655667735026977894464745626560277406305277429197967239382431066045656265321238375831215699552369116144000124531189128451565261179648213011980344695761995921925578729082580807411153365568184460173875628800014115558858596294608160495456434765197625748739445927607934881075052779152410559891890184526812381485528901999341399125462574663780897189253795069095019553610823781921826491880500317043843882183168773730759968596494018794282475238050172275826140604244712134337156342800084011071131368752135298224877527747274511623856730156759065970542790696116956355878561143402269914535696767442486051154452140599443439137762285380658365488055193252173529455014344969869013979562998302804160832693346331244186142631157011438984876342375470403890332344627105246278525244589375661481821379172167336875718817468772177566917971522045262814964451818924973652921286225686964735874212194302224821747162130239685538978590606411710229749160913822612373994625158405711813532981502219447620301324240217102299247118604749802923569402576904692103511320712343221713979839121786677927834802970541441173720184923895781296698584636304608797542295568632547067811263994845634045319975459723135961931763560418152666646670687628566186039861894835197910488378015548403916586263049122029092485228723550939300306076858571982613781469245995432931515627188666270745918684970824764861971977493367458030617273592523367716281813119952653721686170570852692147743812538447151102350022141987163548617129874938437988179157665346927158789958189324373562873881447765092600810431342237590355616546360627316583115788038223769615972529799343472898148560184534249510823298160674683118802994344523252212231506191583019295910620398266047665510787849943610148695428931679679184717177244331950436055367843103066896032490567181073365802290939738546283488190156805018853286222150328404202502179727355296211026540882532643671401069312339076459728587433750529630783074389562263550985973754465108451710702829524175964071348233478041666052805214401868705819029060096959003212798500429744000797729196705758780666076693451340054232933264159911436326062231552446838190692796608033200011747540951087730996959835329207814877495113524695189154261889594916787773144899381833511640023731246572316034861120565080847322405041474915566757875391818981263256548763357444938275871972719964916574784855075011914903920328322127852470504031991381970404042630510992556626323664198602608359479528843907853527909003436426701541888652726093327851101391020459840203952382150864798599498921260416267716714428632304928873531582665977969114957975650794756032693139254845683592055284992306028443086862229724349678950014002640038042843518563879971358239733865353249724013463680353084061854026719245303864360305986704554317548703454499961680719198589028828844952362223967331592223568057268644998291823174908233012833876975430408571894692151428573322304747769080231353240745773272567618474675650367169493150681854750420267111663562608110210319495733635801644308847771984654013861621762316044197978784332669000998099289496006242079542911642407991807791316670807547289348405020788125985756290095224159444501702729211570796909995548906256946303417050082173756343691971812011893489155206640592115203659754860219331431344664438641796359399705525862200402276187762510995256337377208599488350505057660815636398467244167327008517112871127872518347736155922798514900538984450443085397986119164711473594349166213933815027132940896745113937379738156540050402744085764180216866899371485287308645940028149916359635398621480484785036150756269120438316668332977074093120641241715869087723353269279503844927996485653692084564667505841300599570196110937932569750307194774592506121708857528741391575854831685638958211685321775563416819904977847279084474252022637803445466645527033015192170763689462765300909804020656585669346116406094719748412502949171572337709569082288246451908981296372666551336774974918550942200123595534872672083627721583875325773340832234538563908745178535364507268085165176922932841690624813774418650559627679192165435377974120422675505605414301031570257279925285053822435861615578896736070152698130553425357146144057535562749007192743988792121360254756149257375435384935694054160166745680106938053794969741636873527876904092999567998307324476556667006230557525949505110982505489538879060368083223290566929453611673320075338310831996291719665881066513267878093430758681545665989632379054880332601068421897985377959161672166202771676839054193453700133450808676848416241606259947427017735696865816962065081327665954227965229241886462962941623516016395165526567843488373139642117016478052629972826161106619775837814144639467010418868375199998910840721335176702533841799164592462340648846848880285827010675710651325919445193458916527026434942280178970204674149491536063842707981874938531472989081906075876805989453321108035432283112561575270506504071703877211751224646280067718484894349573260443060191021413431572916041851621562035258554546592962741153979718481745623056316937301308577062549845949245966277212816088795085275331788865412828206779641187161562593162562417953282230661193296166840582461461857633466028387553281098263706004588848522644612508066259874401128158762678822364657910815396841829564142188252247159822195190672003095711896463525442800558640368660485258971997611986221641094166924211541068862183657973551389776754721178839560858378520195158392796259195180028789543869480226044989936151717165492657541873970076160365377825483145702950613002085404745009347823609352349113085257156967672138479494816899134836068737070357269984354380992968864849042386352543746073108010745194350197686811304629986252150827754189120196585882296106781591835045287424898364860310143916124211193158752876201763830337385324741241127090965290664815595382838789536829895250900770392918769074571472170007026754675669527345896585028803578599203021501238636207110783243157068016071142465142053365984685498242794818522704954947116655689074482327782639986363589575214104155372531258583685796700803830185925714626259872722503733288917438950710597205226165327754623477796030245405580031090524585062544816568443354420746158300706239500526991244071828952645983473548334532550928665531865319000242501764919678763730411636593521042575476759218875646268891768659084777738519140546972654350302581784824203980213559364316914699663520235874553522495478919740333730403156146071320341581779030691406957612182599887289952140990939085396067448046299759057641060902379006961594268150044465601287402775291588211895004476759690254925499209390164694776739250081923756359375217277044432977454181292080647194086209965197466100688208407865197208103549758057701452575364983648205436334287237175026010724273662562169237374633613903544970350161883826486956972341793438644407550509858595361271517771791947135978471944061389830714611315743847255190331535895621384848860333032473044480349151645565934056674713892370820507623622920762168606931043224754239429312301233496646476610405057433540663890467776008902397107648135473503167713841571033297215584070462581472005343005262858391775541092683337279251699568587148615623110351578767418441284647519234133317280455515874002983581172557113508463740063607478331603341337826415529083854501053717881601460540084873918983462022265112347185284737843867799849280287346837302759970196782958027638211925723307986113058917942539577941431048630014135815260793713041633898201640654811038277377021892807086250533130307022945019262439510467316329743756348374434075430376819645618602332046362959801397580995097180974749295119782994938336461662556799802629908636396088735543227275793192743598564724630605736321598865915095159615983023754370876049690611160014640533266241730520991812145028939239979395491016069750011736460677331115982487022083755810663063961664914735209676394876335913425314319448595038044880882757775467037932489750732975182674584996960069211279039692258000487132932859362069802379333867785820248513911670644808821443752586801829475905712386940763734219272632625213865346380579135978722911116159957294631282187714615591804388622213022552615176448890575957112380255464045932317002480256864584684787545980797008467619692829684965364979832380133218823863990056380161818261139118053985558310083682191230259362666786460906914148127655583223780767688168526071257153987403887815532188273303129760734270933096728459235944317987854086788616823328480444586616833469119272863204561370409350681219547641579737960306292374589119594186704294796748341028338835203297490768429033977455895671711142027970510585901057969087221242478336673897790489752437209270430629101389787256845153729887547689310171220990909780436582390811943670476561233116110358805704491276088683676534730273844534822826935252230895713875034944093727286438418246050827275748918624392875414110063332508205573521442473105083035640364555064841917431853255168712817996905508444552404350032146172707599308174745072622416555637996269535517218431709421561937489914420282490262564254174584127636497290626449908823703442239030688291614236033752212485168940145817498844096843416490841006450579653733605116750423426865363878826849020908792261787507960652571142746611689817661375834723466253946138614561218425336817728305100545652960290943424200233150379832281960531946930853024050719944277247841522489642303192484271118577117936621736902386860625367455603876432390772970835933626274986308893865035001408204995673404561147076179704603943751814160673566462097144353973234576545047574959559103343546783823256085657152091320683234873739826735293978394584849743758407521179592309761544214156694660448811517304191260903934952010231813097066131399929075560553075906259761582899846054515585283716835131830502334904685375430168716611054432679905260795003667296731933905086969821140211370221013673574951053682564064151848141044680112374687654564102422557101294984167687440486714520546980673050673259036968067298972168208686053122118611201357120533060435455922462021703878900544325281753249635132185992373959557586604105334526172408047678602398359299168645057256799960771330063063708570053750551935621311995401819329047409676540983235929340896359274088908670119019344057918125910642791023556966559679053688471635343772014109048169013219341025495773007001138661775282642004759465236272490957980119835498122082912658221409321427536177837219141946791998664876198352036958049703556310026210427595887324536467173412230601107831079887908122753464115113774588486886260678860482694199689185912558828156652255934228751190080813492904994197719966095134162791644457992223034697602155989251566430717204818121080350930983877958303272808065437172709482236009378951758674596355646901466476217788249500729332304725407295244605057804719607747153095677750084217147334377563583740721589022297105163157474985498132062794753802059925166365801917164902436126451202541366686980488340556110095018852604369832920042791427775677085986857716575217008577112976309649810302693775552523274908312142259020079257672755485214093754029799577270115300863594006949157411016354052886898598132218466323328851818174357352984961590908207183293061738394969827154744190207278995520126089083168029878818653806771355096130842458992665947337376268892196547402725309244859631632097058848617311802469652738682158432047861943312594830638631931613710122795657316256225739728719908406984410312260601013359371733286512964284510778861040053703779999224766369712443907333273662746525573962453503109419659899679443424916530847446811954185783777524489639970765976481140099704963275826790491500422759347142412080673724167389465233586295846027949362239271159099722437573086204919410011607806263386009229817601327672535798171991458624300219421812613172811741810843772035739450901301662013538769217092486377927105733293995135959076195202910209445277693356252933125362834705307142828250833486901659908696440205278314055097766380407203688308165832623445109838665211285601876941680954039953053441845228475108525569632504266722488513919821252565834832107724746763205008141578814014944581255756016369632696707657303933284163968678457715702517525929013713021685681949755705545617536921145450897671358295647786629405415670579976347170846503611774402538878170389553007610283167638726666120624708865206931810785436713499787618034445031437071385739309124893311778511971044292332681772006157191111791170846508946978930480356954566557137494905142375792558097074417779755439028270925853605392513475130969969700455289386005932182836049080581310347790390873143868898856336714023031386293371963156358661874265322698478184618062638173607407316447785483508772305512471801186205671735305812184767122757468695498367915692505320307690347868785037315079759624861459456981135050368246415743794488311644102556712685161307975758384291443103629326459530453816120737122003171488341770756138751443576102007961657762468316809867149856174391806322103884733927442908473075400057241795964201188375761855613815518281205326812103031599877435483600513340739818754556639228171760887231105256803409883067994560750394421455759505555689594971355327781384469915504024261980704957142179055657194638948177229485247723574426514250294156901981701751012740858077474857451003625556887013675626420801044084540975561568026612637842313123545461102463827545128954128664067242794491565246103717143826215777103200381382030403901609503744558317325779093119713219818848564401598226170208458055540888224408282744213644136082351514753087916068393976785016485958522867839404651908738800384052814901204388162292207686235307500168668699071683628535767333215851036610134068868100698360189148021150414021135195717852673853617311474938797269422805301150495634183517664811607371571912242131414453535093300908835477465340446402496783604107576300523498858361079809516830052918234897730212869599745663155077063093222419436960170587214306911714861404794699746104324638499256014877926067784284570150497142162426813394045295656903709187629919510128471660492167861643436610279368940281139723447436927720484298899321378964542836941955653147635205469104327686390745419572749395460197501681771842068405052723804018393288088814848263199206213605789712308367730782136511565679366219632419884453501351524436457229516399754954897373254788001099312545245887812857952960977024024913713258540066323802532776450846871857427242125118811069462841476639380286055524649067506200169634127573697914838744359013151397864050952705987831032379523171067305026990681989584729330488457071450662307812345939000288078364350581977834772690966077418579576900552385281656205265456169469203618106457186305537131395022202364224812486712380640941448296557128797737795056260020100656294343788919237384921823020829954639563429509209117190348706453289965878904431770747757473166669964239676463574711390056945138414776500127370319478135073361868622606944585864074497520036171674672684602285330861391348595240892378059815111642197943352798959835211676996506484347684213943251446366655715816467633446434630261292163158093976137913416115194292347926638178635975602967622247569984698676280190385331184544648846920504113401258841854443298893817368302250036844551098164190350610142986810869717663939222546917587397665420863394837243489605254231011965266601480007310443527623956131476660470386102656537613824290606552057696970762527075015007037888978007174203692714636372225707636627146912490705469204220947697973504073003442629693620304348416919909111428595792533954366371528178437157591459858058798910585355719360416552429106640686462548264596471053596716422790432797932055324996765158235748337834832116980422720238187012570142789740042835073765261457639579331223690954397034073755228649847365411095276012622572605024540985885988958321043908708123914247611528358550235530580904564811012979047827083406882378440494123049655909886300976744687008529920161404960434489812546455807884988300173646972463703748872950232595214183939754871418580610646201429402967069010921973954666079301731252236328365895489905540589556448003597830883256443681221490997567116960312338284937605520161802682624067906305222002982915523963428855584322977691184119292357175934184227581621329554630517137751603832830946500207576289970283533682155182452823028239909687372202843846346713866036642707451342389741884022679861664339161055261840752863989441484073996403407958386121831574874114705833469760581406587153394092410766590517914858003013610537997317107825575784281933966194636691133399668814687181933461322302459965785165735804721982134773689327493125022599943603334707259824592899248531098776001039875768020921580054126688635258304172132707571164893711414997323650707319968022387650380154747697513190551850983286185097392335926949656284477976867243832229836874750175059954935504836372421603717303882334756126579461098418079703930459091662994671655231291926185248762568265651876105699574398522374445124051932536001740813245364120878215116042560107164076843991793892079816959851721362072284075349529496858033821868122324959086928093835530215374189763990684568773869798443205846658646307541141344778218392355637383759527896770380103849948110674399076536142144561030578176164339607526183114454943677600728526599401001424506356077751342923515837970907522147008303149285638724724405410155467126446946004319537260854891413224176910364020182338940342143757302713579341392810249771175338709058120207951725505134975482237438219711448337926523201859382930369626664163605944678433419267500553426377811489353122991365049256347589964387892692195810323560116399864566633170056265804420504628504448441412260251779640473951040427036472484531250631440163913529403218638514312868477092189183395761012453103373201924701794654308048439130121035443957867635587877821639368256901658687360978722696598237975930015971626121432157947692905031472405530584010032698109527134416055891256174501116142364634577746199017044219101047923598320140912506327751068589737920218889916540251222288777375211769838423898511147697691780438343081372755651525145215882807998326719355980885532422174230347114524651457595426089155152031099849673209281851518627654205420102164043214082819013775853877077368625744931991914487327425938080271814147395715093994782891075681826510381669116392507930802653669422842457002647911680567633759551041320935648520704593890506915749268681705311973960740493939445376378844439513422665383240291385728945330677041564839561371045048239204652580024774425738652239435520167241663176787725054552524385243579557501707684904939068341310527025707206607691719968263230512870214654985919686477533002712451803762402395923390678858341530002278621776596770773973950563119213611940729807127062769004894655613995326133975104507213969756496671573664589318042179899666354015749165765657030707084426819411076428283931323388339401186640386653649301719749807492481772463925266850953073128363430229536964348072297458462566313374136713005767283356372548113617467323357541996441338678132471004945862626308451326024319978906684912274758582865918693323512048181101124899855998687226500869219322842934233502861665441470100693905550565524699880721260043203856833956993491594584935215437174666996276533081609353309699629955155694869131068290011003919565656205685121074908888799666205689197427805771854216222773839427137023696473484183025425091206087608031123361374626154515574755002560798604528398801287349525892216116388930120141231470403477694687244372826995386168822500315422631892027067662788223682634524760505317268155037086621385872097800627543356852310359718094627850654997910950111911615051993119235833394676876670095899520979426941415818167723413054304279709967855087312008716235233174880397248412525645663856992089292295194384233810542711874583103924213580398439577435556905596329338054877828028114931893528441178990330525864413689883763767122157727900421446863068294009797520101504885321586290660956003215088288747283109897910282706306271073189534010076946511351724618776435292735289854630201792319469856287315787650619193160981488027049958844455506586470181779929764090041407404680834801532867166566400704240411273401853801764956245632134000284797514789421268241927374770029219056437071664696704330260577977539502565234939755456754026242270220272523359181548326671121874178962859455226650793199822193898117453378120649579357290482900771965128571406037877433943700359262520349024431051184133985180666286147460118380009725693810283378428162552700860144111628838393571238797933742269254514433921928191997171083648491343242544842419884489541825079184345319222479655595352080901689113103564808960702332567519174311278927714007594053051082125519521750567712230259699000364316907891207311082994540815952414235537250666062837519784884902380490963778799038688854606361357771259470162265373780083250517597587304380506867206376418988618866515984895565896568129179763753636154734842178120871837047303217216472098374196768563687172882256540525401216647684200310980418256580638913535733413917289408739900264296554865926467943105022035147658073091374589236923520996397044197095689613808988423852313413240581631121323451305419211428245679620092130009534743809868760235986554964057238662900249861089387372485062019116478132475750549357743267825119927485272412486731208452882203876266714917954258649144877552225312529101303629112920598488251127781254830893916319049491376559568861393735200351949521524320299082627961570848277084920990607293255299393899672708275806497244962108342138660364601278698530448020024843752346684851461219499557739523023142056470426596746854542410875324317934501552634048969628637977296062134859782640458509376616591305911263799183088682267820520070522968831105887062743282362227692683628076073012303196366586825056966233913253479030889791686979996987467383395394270888585979950056914874221839197212523443199790011587322380529344303747465527314188933672764888890692576722426020993926947857302411420284352593055322163833645569131385448301125510413284117829671423314375561697071721247034447930306067076249672759206007901596013009985564241455757591033711990804590932053226393054501246423502805358564504202131611076790588197345994740189975833348828351173601590503317626700947724763370980359154829058658420973794213763803436685332429004616589261540778036967693479496964261556337513900887564538952085206986871377120241543032156847247509320806030073989943651818258331831020550554955290435389974940731635050044245408899395648841824914883124948814647850702428275078080439678102654574472146766948814959668285274284195301507273605129960355112731047097047928519853786887411049184878952116815583701560203200911074949242039573066966754257868889408251771302503291454976658047040475495039298556240028665117207462505523536252901466863914656660119174609864933969273380264470558375247551949822455653594518600443915346462851813356044488311292777473674977144020232395462097264886942058017479372826909382470674675683653970488813421013355116027699787723841918007606793514488287825236335401795079383708263110232099777394296084906602476637101399730652575459986756556639799298673984852380926260105389646003531524771491969461880335150306202812483946003915032587657925931670637894910625804154252202186606726634312034735262115940496828902014853683058295289576535532383883869717646373263202791963543171409990108867774213886697422251915992775468122422593382290796746067550347218892767890824095065156124366849402697247113748584306867103503262140357482522438662653193824210741028456028942352382327909668260478579627297012123724126873324588177616158671191057612735105566191351729870556743817156868696671869883587926860051740704850894185858881247977116183671081395693133700867335317535256285662415930541678706821629120670929869426690506120142065144456117112080432118163526534986538218878596923449061650853639798407756600691306864224176433559582000371625257680993795883363999675895414981355249124579837850105014383535234117605304807950731752762402914176112092246583431001533126443678876829358960337543839332083657290633093200124449500667287040459218024330881047943498676405314291027327249204533353024326288898057784702302286124577031744064600368829109828214211362378861983290370744497352111723135017212198264535416954506547303540928956827663933984617245359525487697635757067310513425145907623569131282555501786419060587936226110364762410579505086103809956378479098121970728442216072237991888355698114029067471014629790285167289019425885974373934745100499699758711276288954533294146952550058241505996384089296999519791268428253529047429098629547762673202847145556907721032073084229164800512632371833641560265760791030562219233141492067700353696470275467551962798596747177728308693741519925992257182546477003391315832437570336112994697010519808986378788133514665915313086493212831324104274160086967445791768093783006825724957857137253435375830955498046154978778029456432277372145832723748111913535179665715527817774672542775308002273379840522099245403546601158722043699979802244766319094616099772027762186066402247772582736132451396994157798414959967617085628894929852680183946808777380284543512043245162640552405089480035734790400414029259230790821754380815063617123772529427558450910649515392671283899990484017267317583600423920883420752245495070996048953058636314900634123130744883310804198248539003656330327470940580473685755382701300479593787758522804318543345305900963516960050975523128162790653460577834889694372078553048409849980681283988433000824779846440305823684627713991114490059795416853094324546956798772195396694495415066477935845959421880488495862989356578165060133556851003039618283076427150049581602327163382915289647282100202446049432270782394942822722181379876424107288991147441521540072403972806651470452094553933153714797268389555919011676740129244024876556430433594661050166138091262468560310363187566786161964716080821387825294550558242417737891933561122352216508943291359927645341262701846857039982529832812799106209103323232687485252192131961797637125587428802125432459727603900874848504482664712554538047743276675633140315645305737828996975606446789161572602079237238231825588189446342364745892421358843602889813633607838141469321228708027374340724215116105036386493481126373603697249193797395107040016467162966073641731805499498622094350315360023714657512639348521592786456394478404231894911232632657031581396725283351176581169220190931833783079305556850740044442132741049131966576602018262947065342985059913275344516274125726349567012655444124363388475994700453072663501730000779846997857098235651356419503864038995200834064155046183456286877346370527799333028307713856711254517953981755357941064761223576057917431688636359908715339682876445356487212545404768015295727559014257401568652377892540449549604392506218556451217473125667872649226901024859541243150065431463218546823545661569606617435451285086370168306435619380890004749321028613388107245024346941932078822239444826138403261590848986311754135061419599620668115809852129335693354649757474609493594251415602989795088169050668457216438251860549333937384861064258740173240752016403281562274440122611479831190109315982094522469962254847317477305543181630108870158585473555458594160352116895733467608332860426230172116681062858499528444511224370319133627851622353426077860134958732472963106270030991531518101769860751028964672618994970278880598780176265739198756417869791713496288699000363549177408272696801046454967676056243901875374909809898710753367726539213323914894110901637128354462004758182956666360118907741197471612496024454816341152822287526021317601805861105711570896607074687388665327050902052052099789519746458570447975294002833776904716865387253861357555869682154772631435519761989951942243986073100282474710571859444453248893376006370340653802980484940928934199331340595566827246293199609580898459063615540645030173612176422265915420853726994512337038208263593315038504287493675708060311012418632978223432345804215834077288969726530108179159765494211137464968488321293365874952501947888583615250212254832333513499450030161222595126622964614482131745252179951256530990775785267920211363355613942401214545436110777355063785655105109407949718022553016344539804888419614014220023594219825153891002250861005452408442755975106051559335509513780719279187312853929828998097458583878213333239352630777237419241914383687636691774670099961463294406371287299071046335320718797209424421821764930943393002201987410474418534045873756122367488822454798674805318565510880945298424689247394792627301493346794699645650852514879838859638857603623340527296274052354608773401870348388571636775126343421172843364348640599621152409740112009654400693156969372473396892585030975981784052442173221518551826283574070110869850524166660593443698894991392141837418204361225028984433557960297997906465366968441642037731137476535750992109246429657359917818335825253908605222356346715815381836773469492712581412797047768922370500544389192731845352233196391047805422152210133768593287487907888346684232078812020385421490905522981067147413875498449031343027837561106125992773974632062964584149700286956420748486225267655375614576884984464958780622219209560706742962162760985890047792527316302538361135914193386574044150396559819726770030645058883819482795140727213689378458243348403462652573373491071395610959950675212304200803537590322767891242326789749052625321619632026823625023986606968942083175588573976345281329853141823517874461277030555684491526208737926235315591229617332209089795750551241022075234639829739127761613015212877628679397933344340606426554155494549968238094567807411289127909255474966164815081311940098449915750359301039023380253717129845218412907028527515186024232687548158921667990229110315113164712327918147099744477185965219063797266608883728894220320512491465100336050722032310508621611965027781353869112115170899358724723229821690704386364639510272553875301118065639320039054548169665794580295607310303643777108979526948765574539656274278997166790475981016936675981725393955957874059019753033155639487171166646871038944643165687540161052643398223056099662533599932623709102742224027491861588942120884304449417053524315330640979513496555156458290409547529369400857102431809307488359399314662436945588772447501484122050643431919562442190978154683320622675473316899484226091804437022860720779066397666184278685256384954409442983661441938328864797992434739393595208158512771689338089204985896562675359249417546431359327108177942682967992182307973692117120924206072258043989529062382388704719032517023769942713654663319451376610006382455361018462665370377183182475943293762624997584112982565221821720611223747055063336227685700831633124559889187256932422507461918264908976461466679394729453819519389924465292017938187850760849114018262347391428413400264125412994688589448596390170557415770385249739316191274721677895292236158772098576344309584243175099963283232003228688420875204250270343897593880870310628963506256191066952477732229851234584763142343534560894634643143472040125747915441464148818653854313693659286786539221605748056257646450101323447713954452776570845224054318370231987689423069517504780266862473465521482723745711591712498447138258922914766533622489435960868001273767436098048126935437785293281241958534274809157732850734026685934498116292223258300368418321880210781694408611224541412892489730442936911727831379879511122768152290461629649244491857120821153681213611062144975408758172451077055392595114004115880731227452169957455567583567539532038216882171366724976249181666685781978322714598720473219836408525756159525342317092941228689340617916745868992388960138015744914394445778233647664858842190761051787943602352350357599772390829968858583330731055301884986720186416365432627444987310943583466211169033025149664442618578601165390680210086700857908397263547255545378436252531787021841407934065333374335917539949266288170705349315363797537586367469762082844049370782174363842811055616717884013076855931409424297381050130373989401451558030311044865337795160440413146164741375762134144612030589752329325638940261318353095603855238599011329324035748336733084698209725418442326051085811919157088499937771790323974602154913685712266798529436624620118661806138669117609414683391336436256396568191807251254572113052535090737191522152083260041834666267255250328666308702756184458450026017936631517072584386739375334249454170302485548421483377539693365125252325920115113296760273348536866252523159076081996356221235494677524241285652369934242552987806703764084888851572415239113310877147035254900253155464044048368504417494229888264354937357195855540880777570807080946841368023236190673969738747766358004649941727004992183612865182523242933561373233229048348618028185367411609356555318992166245979041193049958655067753712814238665271429452596851768247789329912676717844065407939301526425375127928809291099049726004573285600898253314934983876960096896635182587761851975188230393480885513007793858399775920283917812466056936787745356253136655712378879024222321213735334741403953626194769801800755083103969538914886952480096526156323459179514877677408620568316325122664490434761458182483886248554648369814114511064552306071714672092584822284372222636835785486858626093574841550994065422785932043842589739060365983662053730473383585239213033018423349311697453297475675748715686713456467641155773789577124186129867166575746763421815807874615249556087250249492707110329373834139943112065875548634400107202925120495602865317283896748740418716072174237959589193226710353307153098816743636471034851811952769693127808565521523332403408419092747010082798616419601704109247855212967925976981905748317178793964482513208510508748591891741730468077847729347412526549623284089253515020009836971003537197169274571610317364276761491834485013012933362529795511498470231315700101611447064074555411006872585719956219387238529921137707979573298856809511868134916938847629060062776757099861953860074402145093881690535964035460842798191649136584067203680672462888043454776203139231772850089823619028950843855824384365595701515987550519094174349476328011393339951878044002890291378642177054996630940021473444717822909774978660806207406430777566608502870208419272717753433615761780148908639938193289788611131560883542476343558567836004024017593723829269309968148537149245127551921173519738216023551296597343916429756881212849947034292262572571692673056425229608332640629952000692218150397676370754942138485347035462780113601209194809974970931432959702757683814791780780573230629400789009631909539127509131575445778579921946838859663913975333631919516492483134952947788809984891294975466706462402356889602621577512996645958148641341780176188496014062744007930307443433016865366813807331431007699019653670212287964566576270704373952977642798440157990847544267578177922192260444965868456167886921052627267445340551946947496543043182605953656059002408134094720460555370125010601688713594970030961863292220331267260303424890006982586494668944362632061580928906122938689449030596407500120780590101963469777952297940702659249264140547919421625748186279658173484480293663547058987099419590326114419370043151656171861650454726909569704996880490382543028563340966786814104794997785326238534812757547348912023668152186134837928630088608227204069000822502890829747385070711790232133035192748813933969145724489940006591308838591460401449809975617054201110508476041592120487154954382493531680534141884048312733744142719109003833361331487209345586249712416055091501550493393990646407817714165826492101632347591764715728681318893464878071853564718482406653347542043299735336076415980170561529230282014344066999911795058349761180454185667405105368470452195887532874007818765680436845145497125475964840635605734872137064590995121951687836152119251651167467735778322187632609408240498693869907272582617511695124900297141086000368965875957406601221874280694490080777330399806342447051310656989779570282223891860462467109349506958692657533355727051652413688527972005310573433108726358291348282631950030340493856471484619744826730789543085605915540873017337416985679373893008432246799862869173890165921218079630129769375001045016935305539432021567388865940036094405857656987018536553457412666235235801383452867349290694547276295793591293796439541878491677118938458812689114487789894291271009857196364683315947199624841610207295302301611830154471850248344576847037667601201198878043834379308190761285716194749752746633592924258064226886936942373223208904735798165988456954353938654522269695628323199625905668397136405606077082823075995123969476694362314900140148358960244394336096720927331100322830607233808118063556316900489907154917987543575558011783489122815395432485726452309953486310757614132746445069439736214221561454255420130108957976544800756098962477738837299718432067013587129393383741832650819532418791538858119804989687580727176935812904571778793294249036031436679725694871782714589505057180566383913172483746522702338335308752982167773997272436429433606924314072484820077521425288723585315800612061692226363827293210754044418281739630233407390214299019763740901233790505742475831467243321406603459421260381454706391291273313870514476881546465630686878027642833378417071797832141478992335517525372161027472646606182637522684279499113809496937666765414603711067992379381228469446183635196977131253587143337401121439454512140630470676758547668354063638931628752146874164875322119729574085604369410827409678031295147772942262794986472354777218059840197461133347836884456540195614125063164924669630228758905763227396493251469020911996662892967468643698396877897909334618508543374415573028473500739915975503573260511089330078169043071991306284844828451480073564513220086847521128036685347162891992063532054752131524345901670200921061975922913262660186408592211859761447894444100818387507675477691173946386356671028845284507294675993775170490008331727861100988859798098562742635336827397269384372735159043172115712355731282565640942513829944486580258329359078905057911757363496046428363468845974525178915368600849528528121181303978644781089336481879171512344443642192054926588599044379158777188429452623990763799535640478659868253548637068725254124361481836786209558472160835701735114104552474939963739841085145017523160855011071643888534597032816290404348162980317022288805941525878774281998823862941939833171953695709402725271872255910274585778159311578443603276996131541220006264168815193538176849650479674024329271747597200941079215200314342291641028599877222647950993325427705626383016194131470450362580604612412445237551090054336722990640358803288019368844179572765469830810791484659022538702320230152781843285643624620400745925253128246421880878104355516091426822718520788636053994449803433959714079317053038728063506921511755981723422601230930688221685098459735156322810065800805287142742514001683201629627311574567611004054421272878349161377522700457879644485252513130887018872314807128543975426696593769953285944689107532185248582717353053447957719093221175216502088689890391411138714963024002463229552269279252775692003392657827718271443317693480748920084920255248434523897910629496679068380519870705180085418307988393256026589180563825616077103701331991195019487929159201571966046153857317229698323476908271650003177428077025909316556995555805931056662789347701600207298184450852253307980568832479411419038556028727237904047939335276658718706079389287814477165290026880316589500485726016245153271940294711057309935314611777395808596119255647949213528350482867635783152016948619973476393407529203704207495664929582587711078211404716054629758786673639793272426428952954099164060408867969900220689811748725399399384731629801354897968280991292220637763026360872822744417603092174244948588263803457818682475032828920586797378226920309801671894919347250743212639952445847438967075727731855970081658860264387215161011938248765138505599542978097746416122146627537508487803607731406050049733568627810959381545657112995935558894523694410947249318530811487987130186085869745252801164350503245984027662084353386647946652932643119990139103275501415330726728752178830319974551067137832450519594396643893098990316422110787891265268124473030757624562510980979061462597627136349583695480535369643235885113446942814528881735295013761266647798657706054621521156758098747663214209680062857015467736910288474326153221562388574157324071622998495324814671910143790224214694465844843212561307482942814389296951199944378207998315184365471469230700279357230981468664945383467308023288627800716663535176756371225742339885872902602810639404462868960579237905897735223943808964455304867212435295932770793238869600936549682596692812855072996081254274975730126111087868648155890147750352628624669680563792904737592465676340794526345171188814625451794453028574971926820970817138168436481871282168093881616937673293130695892171250164233004285924865862816793992629459555731703388647625494360416002780053077172518084709097784068358984583795289389229729357140265492737659658826337334849544412616040023955204350648765200502234236319022954175803333014454013639669956018392168503910819299642823574022652785367069657356212584962681028836566387789552216471969617381890304569333105341751652622726269278440343454680660219961317306478258031575850487352174386430292276890302506784410819201133010763741178732886719066198176927768157347252015790051498379805845783051207253212129208746818404617172147985924497920794069901859298577815576471923359614693975171278960380240995291716935783712169289727514638774708711061003358242207945964548898943988041599493777549887741029700208906273111061506026777722339505971986232508606724173896004391285310276221918479278260940057505685279642685304433649954757291973243163597440190936869286623307133091846325970196190567597877405574518268894744922097279874464359336418627547167882777811091322114494655401594853017875093460092371239194033966505237041033484364602955646461957017300076018815667918931883164840082187948424250987514883318593338300538053162081441758717976981560611410545880249604966244004249306938232853611783725740174885417752276185368437099544862721424459295403854171905093070625431875115185188491543836894934586464331263275338423352482733747540281778230568377129285563999130040310999561292921135318157166650814725767746360201200150677291507394427339668242182514910145813449439577620886850396403956077596343788846290650275519569752067540219996913879012703736667301414136417780873685127006135981718470857422677338142234278206811210729248884788596106278732512251887900239283619795248895743848641429488298969850085193752381188349194125576769925047105318665705429252752910041315395233144623378082221339926958891601882237865105702566489651996666302048606596672971186823278295497683223391347430399813296462976220476197860613830250352416040787551449369708573511033142603087254226335871083752840524454840969387130805784619784850460464225008991160664053616031736445781796366671610095400815562247820743406868339933114043787380996301946406114783278774406742440717911094483963826395432862216708616767630930279426990465445461048549295820627987585615536699027207926199378570001911583843013727117379998025513311293097903885726122908618700802967727779647412116677620465116666142167296189303863781337594343738055235054625160277956597456572974331180462224603698669825574611127496203600033137933874738791935446788229319022410116121340759778984380447226188563543465300397610800974601375239261345552971446439697076972060536549830873191341238056826251709656053168250358181341307158232662918709426713917686273393037350877742058637773416978696640658096010848444366774805177556659541607798442514454338637935781350414934463075996287893111068073172628113138605460237628216242735658106752117335526999254858708068995215142250612355770783398765670634581821634414442376948657388211240937271559244364217432173887682556748508233234646572055300454224741523107074024487489861666658024355739578306462730349583822145603060895574707403842187813770555356083682816719045015265204422488229454044537933013809500525241564538911278867276197501082997389556738268091396869077749610782863239268638362223352426069689677684419159870092794789842926417718654573964734566722594504008314772465489841815276823532171863197933290697082907465867249820277809415152026590671652728803924834914231280165939405322228248723472820992878015440460278052485740836771183185753674020122456990365602216059956773388022214061633855574280965314602808228640721453394760140573753792532800464569325764519905915283332315832160438168513270308069581011821462116900687014258645994253890716450509949431653339167194622523951720213767733937453650854163152183938374052764573686797466486307952846058789409754047666449133163778816819035680967898955501059679674452330875899111316434622549406738411342790976623489832526449578414261585502627469265589752534840785023806675948913491039989918920337063902124135440798633051222688392883374584529433253248382543077220238229606506516441483128684441324648976630547932571996779348926915461111479163896218590235747107339352739580845323968523303003563010586101671497562708011283081167134210129066385453326317715563060126180627566522397542273332218088255960528999684414514192052490987962203151440514191410315911139217765910434603877186782020259933718646634111522805719335436001837270050711536771952743395240592471201854315000484327808586982180715355111278329354852852357523592736913702220544343337251723865114680692001851393186299595517582707571696671778006883515295503145328454696854115641211936677900733687091219517026367220865973455904235725861669840606508968466220932039555097292602717332232525145588288722184247526955430348131596756160949694693739641468847913846185074377804428729418147960101066716815571130661524980679102019410525385784598359931416563697491818303572740160382774699940964616430847593350715288550697579890256254238042113386317180089231310442739957636235122099082011305852039766809567210126981647892474964369897608759364871696311950470625865206490390603947002299616226641257917351657343766232942836301235426604294134717219599200039370683930576191483934394826842244610559477695696900533150178979455369759431969928334313269014654298749305709285241342606958222441147663181725546332806910056786854858828781642392651822964021805418161094051325455314251738294508674849939418634373222403543590161499259778933095356535324584443426648235084163108306658408752661384717577573947905057100219462276428239772186063552415173054917491088254039916884833602013863074177199849285895284475793390817365945307730539305640862701461143842216260878104770685224729106245315487936808499808897192323042421734809812565258767270220896674676618340607415153249257797488435454848785473672770543206350781662927464610114051939640904038782479327775588242242291405511551706137761654490221708088996114274720191088484442633070659150880315775648324637284117175894173574741838246682203938202087342183342540238407031928544301544106277120590732817168500464632707063909596314306643717843383389921202759328826475363018350869688454897929666459356165728952007364527770436578144393610741535388321873894749623650358137362535044916117683257510205024302774187116393063936971732354151738308156421565669603461676343519591158033816152485473630962304641486821380755933809597724925980744223727784951989665693492172869033159544813934703659203490933120920137623233258059989179011523941563528070799536195323448706212749070460794276585016612676865130349587699981524422610801811369373304499012027418137086574681619254967469849043070161731091767083558237373048990628383191041249959403588198137470703494145231634026146882476957699916206577499771382839733758093626980142400311636818775756758147133569500682663424884155102359577356403822646401290132739382309481512972337892154952355053690564988481517021799789273655385634176639768666942595257367356659576214194024441323871197606031981799181160604026549287689455298605508136618483297368251371248037062441177785843460368779592508599176997652884354330321470471888363829896603021819013761246936965449519712462770670299196733341285678474798434305756922955785061125125086810078064733363342951494114968550461766548632991230018143287293650024666878070607804252460811576625470636182819630311141089634290009441678728363385609856545922977728509086229543135266605662454695738469305151586772053582232209525250221181918647069385617915468629771081257742449333833636118962204112197770324124015525427658239103284769896594448275685221323803913175123872453351685431071639564882743909545903816235340822198766992429803068902791749111390666358303072811267801433480196617406447168571765990941039544800720830423656652456177719129561766561183636713509892596335312756203011708010366892259404199418953830728671896832440316683005057603464063800025644749727461433347600391435575607303507157297625126830600069163477906238827391766986684016122396204355173897019692856988655749072807312013478052625268834405641959903050632931673523290909736241310391093250144208581498512899893569055483514537035814437595558181251130903227078297253151543079994070837228230727240272191815373956020119663205978168030566761278233206915440977426752487780072849416535285079081239267163301609650930395472864738933886943392357718668077640440868666369075064138461330916839756291084711745573312693608549049161126192673549560439739159845283187765003279168323226324029406313544010899912728604965027781091237944703996446362935124071874018379066512606793699399212696661325348646660627592441625277687824314998549774940472165068755172277075659215836756453886127097499914056997734301492983853058414296684812500870689913456112292958632310471012516351306326074563495117250044580965967568805649623062473171677065674748809862336098766133125574123432169842127041976021828132785413502341406074858413826813634161146748862842768440986307620745502301703385399539744385376248875856099422403339622118242932798174586893257214976442969305329316403504499825930418328293122919202545023583712138743778916678176619306899864500051202699467394104423421407434738805817395311439329526025605664238154015446828656251156262963101011351932292368139511109754881733721887918743916429538217814925643822461829588187450110514571362533408622636655603995534177162712925349710956874750979840260778534593681330601475854677978875157566525465563662594998128167488771877003682036822619323440334966009634702044770656365715336803785139740419905685245972587882892356465845760522137386216844993645213909593894241929361985221173559723442360259235399358647172656854074740660804989647887577166829823569806131647952458132558709939078115761016579995864890408543497695071943726255662477683377160260028384967316073579162050208446718848303749398324227802665910822977380598013456840356953525886283887891048043222204815717641575016307188345038407220673492883935655439517188432748697613596481295291086521431844492527262515436106839994874001778985825492001611624889956622617791780376990312713050656750831651548055606327917397015090189101076305373649039221193407216779094792573490424014510567684531290027945884621220116825297562974844918893016616261439925983620140572002705393228564917492518701680649702288429616064216747400366873640634897717094024986555318586464673106377257163911995370172471469285591338984557535510313380053851146685773870141861430412848533999109948589546534574982876396642423825047621253183889531855118079614356516987031222013249893557311390753656515583073253982815759072686737647851075659919382441182569531214901190670408246594579364541895609273818753488787978550342603197376792182374684863135525859620516076335961192610071627413680128042210339138755425477738325547629796338677602486369042928945710166712084770371154683742031696087920124392379614842110814303227480142830948349891854598586071385152984776467884860013713476845795584125300896163464524918308475669621018486427688054564806960232537687484217910309071825944779872679266004322557442466330565368361284128354398690211351028515323688779619692135347655306997739611688432834915522315563561631301938880149289342657418802303892013433616206306050333047709822106541184317961493034632666707418820094258072230273606771590479831526653965696290024771201218387125251937760723862773370120625643968715838493611148851552079874848253832775412291035031692851256052642760333920595090283536727038705863963410218338857683549712534443733994025528330631330444025330864135902407185853596366590732105885710879332201615580202529446614685166175405322443955034023558444958558714456266751936068952821465419898964484274925883122994955921646385808524122931237805236392708707263019133567337854011381484787146078748681199844337674323070744612307721673694279686458532736744111616686183779403271527900430971929405228084043849185319913007644333890172411746371329667744105480039704870828466023836766435815402492368911605695553046360768006579724386803189845421384552473312104882206687943226551554908137858012633723500597433159222462791148577531666354645783635869898372578758993206758126654586854120061717717839916680188527816693845159537970141731456296821394301802336936715293604128953832222966170003385307657793844922693270854284804796602351879519428786800443079375195254881623587299361247083203835777142433811746555281888172722993151441132411798650952845418308788128471836229550492203796199866728689973848861901061445822543976757647880948745420535189287049957246419000447644820504510464835224394331709834331176701254202876191390916981818681556005523847200517940553529361889706590361494502190512843668255555477137049014507250958497279853947004946425661864064313255812232243535923086804358595303983482420687590564197416476610974612174264169559567169338121621451121306691576448179160753511806876708830610380737005532656324286999316989732635522639200252124974444216139712858101202334665399905782070079248572294064195742843698718813705667702827721595141747948107107857593227996486330052157434662390841526461125853784266822597497703327013971370302517781422903040248208105130095341745906433577714458685028494126000502411908546790520624452372840284952004810586564064571353607936709501721166002801471528420924379335728505020608334569005310994603926554515817939447757917747037791137164049573847022875213561192367265454590355718193884337987133956694181724917277606922873841823354321142473823253167404290099643741285781191317406468227650079125900667460203033103487096504343427287728852895433568704415362924003676106217969237882879179009665172180653821655795274987975236674475030915103123175672435811761769713482643740494675727957932766879073762854436848850278088695065261676493576331312271022469082224300849712907281785245908927287841924515531936179185591451451721149944499272964515028672093741234277543749916401578010393471165649365939968914171657725274961617318616575979502545373493645131277578617436200255766525994652471216459329647620352435791745713950259802108126082295000066081567241571310801311616557970231244480593778343452687874067629492211991674579738129281881641810172227928376326921144179942917259399034804463536853945288028426671118521058569774443857272479299381280480067836368703670367589414655613569003468841050619023117275903964172031279582549547181533413571462103863329594307303899198285171642394118979387472045057606582712909863780776162314016886748697718856033091638254066005749723984275316214415797293169453998463972350154145946875857346458930577695220945031445986142629726877318426401319824505795239736354277540246566057743476082474031767112295722300021360447819653766899176539948720818923354143369365473458425069427151374878880073135624399373028580189217687153783277021254763515072442339665513992338918688649145274039472120142271470906188466639637799263655778628187840584940559577410735164949774172784689703371956701032426690570004894145577860025233455314113755797215519918703460570160536594626539352221119244459739034068575262272592015668830925991499692828876311410506279186933380943903003529273000068729104696054347966915272768934282098545346050317703098827960097225504596377846239192340622477739926448325392140615140017737084150479351190029514726432080390446569217072048668882946853251907865991336498575026394239081079900012457850221708104033248283419962563064296122393022774156614155854230950647353767535999592517149083497188701730029381309834851597570835947733335462047860146665626969816713020329364458783363688093744663732030840843710439763883721610348893532016379051597072576198878258716203751857263697323226885308362028933281631096520023580464821814125702330104014759427349968653383349340263658864368399675081600891451999442229678259570005554475638576155890495274613515589928698072993070308026285272936149580111301650229091114767216499981434215866238699285906617727362966577880158856811791185925762574218680099686943015562100972001196996143551600776873393068894813275682469608809973422711176455665252714345590040474375349432518209807106961437475426011695780165273391109832275264381174075101655877790744876348607197684648250073417829030934074446182291783485794505751371431674947004555945068944535418761037428513620919438791981494912054629707863567426740074877941215947719594358047755667285940957674077708296569132326958802947087066770089792958069876536361433231070288627563711650755295385187846877862291881470184847342070833780394730243965679988149363687550056318939371253818761546187351995557779263755637833067848426230350461217942030011048876831332707558281803860181821887574052931931262567914269909423057503772526827275465012383472157192554783097868152672533407682502595688185715199295680535231202441201756584878628213650087028880040349347790483221653198205517321436824942047080350782951319617702063817684620412259512988898672420208838181764953467020537906051444192003584376125277148139991027577568634847292436107963848443152039836140808459996140774953277983080930457896014783456315281807084418411712216834737685561927906523672621654630785297381797860806207366802255441410678750143613057997977506250694090251078301523518976526948105998632089859344734310705252183302108307066518348042705688578725151090690336799540485633545813858122299774449167108014991032648146182855508560863197984403170825134408245904271594572765665112359286198622409435409157097447023595271220671840220821214374165266012923130550846465012446703079039321736974039018864170005030036154941518155269197904941149910651960992641177725067806583426762731805226475975197246200495356814381053030897185989667039245983761420055422766082542502359293030251829796430171244642613174328091407080739429952892525454753291560629783583554600978844740855479948200416242058284599831326141605733923371359329479833911500690714748433705247864385321920122276798525577383776168724935236243331839575458030179637206750490499632919786146610357672121179297121780595359318989347068772228294508761828117805710419906323505644339426694953081242226066938087499290586297378796301140071273509145617139049923617926418660931678207696161477448414878328183655359052766749296016259086457197241292953472785332062609191235218249797732119279418872843548727074913164069560920079877122313505857634000893370146179991938292463724110974924374448151610226481962978728543802519353122703257779430256496802850200898382746315466544973152747596263866057152115063531125664908708620666984510393376707348199695226931420635722292920795980533476533745976382968366281057760680520131015726958648272796837639106370100989359723080707316149643661767756628156445746775960223493346663466152781343681298310844722452209772083284358964811686846741178258229879856314153079751899390713746975368637573708783550323859126139935463195402058805008540145262484690663324164700314066047990983560927194679701501866722524822772076297719748846587420870775111560251420598153887604601784273090114738293079022670393432783065032789772073671775577637634532211309741917068263503467847321791079013482319867493620395921302582445500777822348433444500866622457690033786079205144630155478179200995515288012467579631275895173839868250336418186122679535392633597319779116662440480875426502680700645358353718482586314141222880619606708665485225624128072025927921405829871342768139815551004002569908187340715580901651263472024764201220445045322020103058861256524983461175454372841686842005234851391664273968303073912938636000508567471818019679434443053281491208700405054191727434714341177937733759292717609038420129795626008615392815522179962076669650361369691034538361168835345049290407734692536356282062865210867920787404948363502106336008349915269069536934829822353843806784979017493044326247231088981858220614175916104701057754559900041914100724517184569416998845289779756225287883184764581826070328620966901667575476018120642136873087867020495741713214635074722685749363133012196440656367933351289347414360607537363387859847513689338512444226948937034728331694346164578037694959984697574062730042033189796252141654290126071375510540992722898433752186440191095494897003128470586476085279981761073326313541064384414596880394240523029465912363371300740376527715536285544960590698089577679502518718792427415028084621758286047838241172724946344223791995540979960608515548019936776081367707416957211638700832221381226406184701698768864975873334615672809896309682726977305830415329152781826923537167183436096962037213584829056261935041215973609433619476367763512580623463929621086197716764519336151722829734713451083949135297195493302997665405558305280936232316646565351290269199200137346035768138299785521765761475044119664959258767260249934822918411795554898108158583747389347799084226994645173602526325897963779886666892616475582981957092347956825206225021295332334508723064133299532714329366247801861322572798586598322981750246465659716886121794296751541610656674564715015172439849383393410898492614171620227281861458723191730503472810952823453006968742158097261857279974139244674570164902057962793215479104347238756324302347066369156481425330288208587283372754532222805858079403348687354997473609690664407703880285042100256823942286132946802107047189803180359146395624023424877836623524783915416335817876174700916319036240536026974970028063397324794269372599592020629508988213238940132900976436234268242915762155562338289163579826439384032835930549089975590351040087042627376119051414427165438259798737282883195892430027090394036332998935537567344026620523903797911324286807899866492453355151615236521525151493496243968777648990891137984986619512443632922075768964196074555096996157364368382426632530712075132671805720657058924413927228044084877868016295093819018631400231503808350934662664701327239793784206848870290799866124184568147406876181731838951612925906244606408029055977985201538605820015065369859621361263570611558672044255290213663096582004262811087310927997550642019240703168852683815967816859848044123850591063172195441669085606023950546270614226946039514998142986033546203592079039717912336364426567147766572719547729364931128590696256616031300626923594146982053389973889440439683443583849866097780890333244461091745770716399061452516818194962234687461423388438534461765270122067786553212886336318771873789126760270409819168482760639628432601970690397176248599391956318572062021115422463683650318654515529159926465088935619566869954375744887709361408419324018718964447237295802786631706512146834080446168131779396754724677756040089537701078636314239063655766518985887276131384822301791772074225121960008875890137920565654136700396052000019427130630717692204877040399284691287959158290542400223183486135027376521562467783648586876930757759947199985620772744160362802354997621878871631084305244524608950093789150086322083285586903746027879348913618115891078899420653450356641898455276983984687986323538220029840693046665259385468470038058876217909139978786644222572740140507858115804145235278519934010776214231547462268507044346558731523843862438904467407206072398680250840969105846787134943302557839432884741496115928493387005427381271145376327940003007597158675288055546876593811551917357872842543616804030875282005906866827168777321537235885678376193816410860576506287779308426335870354768098656169417522462322449700838798391200644163305790284817221586714499690517524980608676840087027079977254375471504638569382763641411449711586808253898656428655030409896994690574882802790763790396001413656140052217798687996515073863188782115731874557987564203486284454354943649192962408535725933902341021288223636093448801941700525274298345013379470986195452310418134383148546535624041155506866035701860981580436949070181447248455804881195977771591109094091775738413713586957943621315491534799420051068036950963357419439875111018528621563871380222709664275013056196612670334357995066489378622505244379967979588279063459505545657472670657049588569634244879081476826470125305536163954465428637819568262497076064150197362302342020194560846546608108307106627697557595440708361468709137382893713220279264397623802478095805726401406822602821699882490681246078780276551003071853251364675575595313523900748614387880550376678115846120513134405851786424261290935548871048016911219896005371966499461081442988006685617993560975238338823637331323621813298794198911373904426676084652250779341655627180827407192659290523248722150336461226780523130401019263238443398667234618229241538278355693471175241489228518316808401779735509389018639450648570213816389773205929857266122467142706565702425294080600074016489527920568409915437318024850736228216700175816934773605509302601131952071585091478036635411535414085527049375499720650957832261552292993023921984706036778811597472567438917513884744577412399400017372529271229158856131758594151731255260403222994938509580508650155076238980991414352786757248587062204788389735355640062187547470883867476568861382107941431052031626563473794504149523294975984296511634201941797705059675184898195707303669566136755574872446906752197847736230799663825671209225190926689028237267846620706062448258423456950137253115066831474127333121943867638022604474443141585473364705671346906517337105241272479132969319292161889457393341993071058768522632762084729191009274127481504375795951585170501190780813282867271709106160358505026459325281386634037461964400498934605792220014442115298176006079705929143394902013562578907936880900855549758313743517878931792248778769765343302158492079208639158544450871855273838382561084986643776113334815266194981886771774522550437467844888814360872413267669503818564219457841933127912497698175572676336553900915499281332290376754255266221479805608302665617117613360551087935029957233697653420522112070915504165392851647373455447952326160588346722394421253764652974515114696323121468636156350844189883022721385312703468776292815778273199127604856697902829893211690126399239418046812578251237604090017489697263913081869485541809941843944015475870198379898141867240484281617278966800490413358149947429561200472761225855349274863136011787642008341529512792451574926030981181605586012579792360156258936557204706353045572081896379237052546089579494078688185089540719205310944513242794806585163517097753917113339986840448399849028274427696378159291659288657682677936170675382680000490208480228152283754590002728792933142393496414111835116510008989451837092818147216735891762123809598847175362260306283572352521249117214684552677977581645628054441573551136191433968669524732583934421182555006649930553850330761225796121713483024937866101218440605129050856516634598958701117477918920663295574042799236764767263867062942326146602601817039580102718896245686907805324174302119752040282509259450509666072471557616905133065443854100795776335356967302240660845939922005843617149859137914793121351521256157364552520687282122955752739847000789896898778812517627862882919075264316047789709835342112515886220079802197228883437586608290374348911096492834848105062650614075664684078451177645372818822612117940583149986970582858110362249849254436902099265704536618577001585165077347632059131409647239956493687218030688108425244180643622852167637769061496213754769008623949739202889643418785250908588209707391609801805035937140013295722514498355366486396031292187791203192308740574305339671943066328688899441323476564150665529019752398017516383725262432683388490194429417917324484187541887447412337927277494148370659778075808715244718892510940010511208389482501090189806739436240880562245480726219653046993327850056366958518574757507248631768076642833692598475982290967253654881830224554331802153454179716320738576346005729088603134776649589312778300345972831313669000736657236135779800340763752349573775350973515478854658200422847173164657702217446875795382181068837693513717940223621150328173674328109250690238602162669359829654328763903425578355793106389795227532974328798334626117432356867109064259416184868102047264717535615709911909366956837943062864962788557186374975032033560772031014088976616701394130233745482238624812807548595969842604680587885301775506433715881918374455791986119841045345774824402486538577038662621857661952862421490476643117891100665578175597114618625775761213628352636357127648262775339755257370572252612106923944721752862733796395731324759927398194038318813457454262678673998090550957111348671907398807616579752923483815387439354728557351559304669338327826427653059198335905374320143471120453380255267981486117306028135486636792945475932203562218089955075056041198705622621739967167723253262238549207423194616657688584380802343172771416793795807878853535780651110713352447431375824541090192846605603971039722291521603097981742911931783430254586842535359673943292427308061050099299746847521984323587088908801100815426956511968116031418234739208260295412873797577345341877422836775328243162924399372896383537403094719081921299443988278262768473242636189498569929053480857905457130605308615652555704547876154326485132851721948509713957930644080060215765902782738846959178270593309338265942769014356764542556666720806968726303087061351018170276397872729467665972261962110417966995870912321517043460679084350239669701616575928811077356229334647220932725835250965715963463028909766216328874137230522588165267285137379303442259563352918023523410459899770150020032500522708373001673617824408652332023020792473406126051048301681083677403964245877110587559115293949870577534206894391291885578288392797453180939615563666724978993079628653427771738954905286449580497119460472332194391818811261978277448596037860000548840651933190262115384174197782280282523361285491925110312673863149372706594833243502692783834014287726056027564276717607207595906352432726478653426373338826942718180562266044592505124133129365781383231670894632205575732850114431875480708294740036686261444157280390982464145064883892416461140793589890771221050555984078222346142237499719372810038945661666151527763780552817835401352438192772767402714532024172698798019727427254988266051009237875602468409991765888832171891180403613164075655392907232009020912082451660994383162472101090477694765951656892491921620140661321884135320928040355025060804763535655547073934361377338234822552335848690304420684492879709722522673529538012494998858316058240427836696889625035100415590723840408256613576534837952374598181684731899237759153077582505157178519604666456887784354801357749462757828358516788899718464375157171123670219243657648708849382594685659457172968963843650068201607897380027085264958135607236278138186132681148423928337291395260272589923344712051099328353605582999144949688937378802066644220242632452387578829601769759232995608804059486982046449817209675984136175245564496852092121028872740835628143948129504179260298082753509244569436908225204405791704661179457643511640966000341792181324797998124277845411341045134887589088642739098924431400224861009372024364389393275055010405638175323867152791304755544009953974637330910839882858841692201985747304967260025993706689342286731224187314585568902509540849901272832536682049737046346310565270567523721247872610547286980188221848186119705711356535247851194276076547904852085423338629269404458735113948380802956550326474652564436342099964033899923174933704655117519995434503344917309820676063212813332154233623526025630500621755535391840259184467764706346934060223885229158833862808737797903810306917840601712593843216008100746007978037844676734254334285739808910145501948214601060811886933682050759336175050280193581240868468442803666789930710792540199846288390906204222196096055640524198504234817435438120869486031981996038956386055389222903356133306721717731017162193502689723988546993689449578501004545800592094370726186084292880178320743993071412573850960092769049660440272595471366971967651395275796087327477765958415548690963147990567571592233051053309034404464257810105052513756229169617618144682749642581086030644281769765154697839708100093315152843954325723513420801060836922935806034316639102110635030118859592862489645692533907662491283055084034116246578966427058182020256594913726272725438289933367399281505981904712685581681425301397081050648505652898443268917377599950078410324716139292400395795948355587504696326287766724504504784335417436221604679653601402364198088605539046034985965959056857840159226222773772405322891075637690929899950475187926336867409370501646094260548016896993669979346161385604481448564797332006616378817655241926444047254703148856410115047846024393537705796253940967329317511358034069858969082697157201297201834551777943989640306386407935091231901688474574056018351425424824516470167475329796724381521384324856023102128249709109873405544504706321596854074676880789281531032179146863120796559533516569563824538441711024371331876251267220061526396444782963525155092313110049866141889275162205831139789544700990817388714303257880927682666998037100883252441065089967140886626615728600466350072839687127082549464600373171793134688680336438501891178794599135898038950008581545940505124326586725017228938774932243075476165973898152466752756907254297831807366087306543047535638361594322738491059950947429587987401913820524567660234201650227188634599945730488806850048359172990246726218370411660807275005153838368579297931126345107111162263668308936855801157363491826837129947343363582533042865254538941813347182961924705133478241164803042588327755537760348100089586667835049266829017793085985489355195150305230910962333008289172496676407849085676559863338749341962052903351691219897589575036850730511219790836363661245629562472070184688207603099345113959468716965052191012172639994056108365229435326067637765209905123664375442315858636443162823683799394787623303458907553832464808762576586294983896828468329923907182850164081675968570377529268965353023540297070399795885569072020255115743337839303003434809212203488859879127936831328509617756575341303852274110994905674062985195901951333569080902956695204468824736464891364151507893595654388037246753413518538700246242520448574415498294378968422130943232114426512245861326439644415541286368010816862654309073264827799643910693966460302406397616437406666431743920570804737548902814133115946896311690650961057870022505941703804012376200648064043063640462312923203193184814455265718102550866531753932625049380577054641535375722460395079083239396990798705896538716467630065515564839225999521267748799315406118356930319069447771088660445997093276462733468312232469174990089579889177200188353071102370315381812327267662935300199389916727277335981771089821050277767441372051723219361154341912953866894191185224705080276616112545249823477772041575440387477155559043437594854211107569238817615807621578946570868855775008864982900461076401947630036169349383548994292036304176508238646487340229214523219292135624315457067569798958335052886121096232751007046464056999856743235864585483505720539016945980764477155855697546670569746216568264828319618418224388866885115398923511597447552592808707430002001957486335299205598792222755987620963094616243119234078257122458219073550931909271071664323585632621655439112577274056038075968866806808895899436656844947326933582294878160877241745551120816734274674653667837978717304072173587547735826404324577956683004217237258209260911032350193146738455194064467556728857677385831949046725754423815656787780090828376849172775016911029023148135022984452563412930408061907475320599827229322340361905344184895487275599778139095683110295715044286560870024073627780990778573465823242819301488332727103280776222964687048568776069133851889930437011445570773793302748315975789346783695281401528078490912723188731719121886344506199265094945316039138058029277288412738456249210584224505951129463456511346628601752657370348378048066908994669920770258043970055100854009261583102249617394781906188832056606885811875917420430967032358528786698771336610110135563120774655725557416668897001978226883279077866174822630425011187875595462672901030902562878850950032771607366979417798869884192090322912838931858706462075455561067174037610729114645921132810889884011514862341738799027250161371108937431305642145259057875141223031997265915991974064593863568168916872519802928649711714841791004701632076459331649480159900663271438436271809806452060460761163157899576547628380056257187011805255957987764888287521777014022898856578942442924048579720548681207514773669983039755843542192186844684380143734693979502838095098526503448070642797428104523065987374848178046424787549404079100400838262731464855049206610971791955877901367477280030190770327451707996434595600982640470016550510854800233254513899319811913088818070419405135120903907665366348179100634144424016256569440876478187004269663797216278342525331995304158107986568945741234307035888736911887064389597735019255466560961340803866368109234008245603080250244366532899600776516739406760304092957258637599986671767048072475880004300516031360464821166945819354416126517963538205779605960123060035220055723505818433969684005238921147767821266067091035435450928097957330387555865196203856946243699733744687674831997732498172791332028738259432668697276472273681500767315709933425828223990261901634020998858552887247160553393669230253443770327640986219978699290463028193475593721609141663263546561127176569259203526222011558586048930355786928836240541151245695882696523099949876775290654793609200774368839523720839289797299906209008810612449217539255002679202516092149173119954866335649744592074185044222665977968951449367752329926640590523440034428610398954298265366542220973833878486373139817928106968842632082669279367523786806059555358809428788523272344366949585044715174821206924611368608502884269776893408201783528190517445585491963535648297498195331421421321435039650834923243265877703992753147133555714515620650950995576188699445710366508720903700251513289033765134701574764025455621991401976315799840722272493272093205661457283348249975544734513867683101959270530746391546929974681846561397210388033010038903342895482571821642882898487500547716982315734352830280747758464232444626244898788144171935797381148894807147643629877938795008403143234402855473892505794380929129470064578539864309079685835380592877259549263245428867653612685227673062560765603062728601754983251137589834290767621956193817507197339146982026505995889815727321753262805660150644261245206046101857300718807871458942792372744498401149143588839543422857664873120562797815805357402367057959842867514393048414669037077615216538813611302000441375641471052791920582242338409333773870218873504280148596221131128309408329317996174503722722510294451360818161152614347040376587895456853781833008440934641202936445363981141816672902713863788252637233544104899875042222415871116140068275129581514768859674426993435986969866182721935183459823449810691352919594135636262308768377202126202665168581859592160756110586116936947808653462781978100150159675886107788926027678672821804056860925525521251781340835862538592529771944269509511682335580104508710321027976186650497013258677109776716862565111671993309507268390623198189267267898488039429488670348920825019445695735860959308146708485362738739121158491986004350422069798171753444410480469401781251522689935687628388874296169013617639842214866721764372195548086633631399389129659512233869155113674774484935305736382842148417580859825753801566905341685777324576909676456340461700323918063103157908267748451440178525501424539779843919381696635086508115048022972025065763489231974126653689134795096447427881175492392852782304203911943687965057143002502091571294766103700435147244401612247816809489756482608028596694651640337251365132190677395524228145144839578958518068588721894529047075144188281610818862678350774821597455414608331048168128899300003453321476310197921399175783573572526615975848158887162697115661225574852529109215133017816802096074048984559881880172333620636131373506487594034404879372174240185816623081737908060242577596793148792631643776886205287483502631843784025415593472359809242465708653376712179668332693390543524081368096968479468495314607906902923112154798478793318227472763250656951066102032164820660281552379518035823045226725325861911653327957765853017774449378967653324027197626488403968158066523607849651597207387657996646922494038360582029295503256306909332093785605223777863253293741354141808813976965372602956412852816697988412521669618818910684230829450778121248547320894583551265175134579972266978089944537611277716357462833132511714500387205670648460180365558750204624107113193900791037586485960734561565165684972482339302113053542673969537817822535319006472505870406845398724966686468293355432841164633955946717558809023294259824795705170854807356514873521246761133534265496442727054636270338838874299969521092263210248051673510393418928492827082079151881364149871749765536430872173576182439552272814701438532942472189614792185989313451322202005356994529346508195201394595991585067866865477994374668791209206054221714960124838143979545449608557132951267861566273661524025068938659038113260436172716262583559841020225315783945212108510950510270213588823428237269158595529435082497610606057157276259846992497224579266686651041948716444443690084292962798274721240812219274558952844550248217775850789955588994596233054981018614095210810203281635945538436439166318436038434520230255794214218479536174052319153311898907071699266214457310650456093792306342037170919134099944430982760679227970340061911519084745080447479190663670544609856521323386974749822303473695348627258240633908723447980593495341396201788655296966971465635897938090377990577127679202746659494772171024173816918660388372409487952344753018643480620444586098923390671524360788716965076921792920758083234746592487479743742464021417762530893019351387439909612614865602539952655956579245180758876307044315241838203394438926823307859148339746097799329253014684343735761333814360018154347640049280426713144238998344610626344753489137916004934737083364626646790448731881243444451782956700458694157266452941969559927900047102008509645774645005774716672689706097442216314431889649286549140790586051419352390542292373252171721954499376010634081639779682012206647168775450197425089158468593473413727033261720583250539100129293124246896721490957546074953238552971173635005665293796445429549212578505524959783921644658127794206141686789090841216868924251499664860270489445587960922789634521769603571299725051038218984384026327676027798706773656879149914640370698126126349983518698610272112017664396128758940750601262719428321925196887614713552214877085652038800246672916178729713832616416366381936985057165157186060433133015684079487918458421218033328926630136481276552110190168464747195773966093394569578909123621067036521662072930524643267130266909836123599292433873641165944434619570946615744068807630950899211693908994303154927539651020576633642993145076867086498321675446945145391472936979491306984590317243186134788905590041111636445627985187467454376082437943687130966448874012098573452708645895966141443034776531314384842399163129737215358706468859459990559987760614119966285335981324010290880077795804999498395873580006368151074726822694182353108052746470888394149566905023806430633890010355136413391752313790267189341952557691599585493962662982144996625743020560901017453180947335785663736834976608947196806761664549372299000368723718472628839051772354045527862957163379014229509083706882360647215670101479598447663111353291761718154778171509977890930987293185316276643073197077564875644192191654904319532464514554022664554031121815324693803730289378747760229375653762458272731494268311055189811927885955681706381841294197283587170397178001463139661088039742949802124508936995520572924371147057744920868027391279917492451753484812760458358363131311225812539706575959544596223882913971584662236058997306811068595119413037129499580436198762663553744279206561359721115870553092339961080826589654545006760118700641349331582820244809667073128891907132058585382655627205180596680366562242995076922400832844179753352126497657781116603010822606946110803857819596273460547244396089962485858930594306204879137994395796197924274630787268288548601267954849214039471836243156847524990902117010683323356569792949729558486011441739304259374331541314952020245870335364046898808342374430515302680220546480154762360783348166791468147572938947063054492725483288252526873500744293791711670992431403309122491879990242361774992610663503436788711725255555933389615316137677000673147444753125229239377163289429006038942486552682172275695599831270501021591978107107747633828177078303049174055739079310650836637132701346146910350408599928719147240618679853051724210653967122723832651485621766318211526527278478195502448847325889941889690271666868229766141429564372641214730830693675792843842329819289088256034582755810582691390969204782432116597459173524832028587172670728966297944852263272409054130421659393382403685056485343387129226317028519975781025703578671951421194298794434861963198315941542393017383859405227597576510476824680794919627226501779435768619010284873641741482042723432007167270788568572965003813104284088846312676837266386569623079986081468670177496619173944695090556780234843766695910522311116678159987982883533662433201657861255437968245721757785173003685196334417218308389897558597384257106263992906237664546206336584114543913373524782227491294496140555927160092957586401004492968662449905812709392924955955036011077336132960668329404030845899384044425794935480313271942378794133586183533923579112311379592973891030193659794538787107563205514270620889892038441142312386428955093389419884553779039891019130952418363868154863049893018807798991975833495424738165374926315550667347058898946576208158511400969701874733321949480703448759408260953075224253065188025797710747258506841668625835065815330611581347986676040329257074775349781044327414334720116867287106618401016812873966293320883845222837189211296138330070874140162828618633369282515632510348655064495071055130155964982057324001614898185131618008817018497401062501744633778036230015068433885965693168967274731161423434802499984559303073142031527084495677840650519557981819770315264013046793638799539299361093592750740878743385112263749563782451805925760636094500224297616968873094801841373031379958268165216898464581864269153842308998517030655466476015789276004459744764750505543384395145910466805066237069660481210791554518897409891675211719499486544138274405703648273458493919712024169975908099675799986218337032728084616584314314521125286363605489522380352047480950010904115898731590350136833371980254307580417367556452074456169166976266127201480024335966743885737219123562102824501663498020411566860374774928842594331918548587299537267127070056992761020888727158605626121404468914982815042512097339960991609139453869908025920539601000328123169907089269495673018801167916253041121577619395229301959816057458159865310193039297370018506835163469547428334149502527605797716494526334698355191853888933502511085432644427264465932548010228132078323956442745546093349017131822135925525911283026863877850474520409464607847403213719328380659826358407819842932611113861684861907520815618356198451836288757687012050754312860345059497185004886370150055304858810270358392672805235461106987457768293250862615670381476577076784957826962480275158490561786629487847907689244238946742468627174001149610924101559240927881165417238242499920814124097842842112138229465572744006164130930354266945299671096806101152102111993695421564156758306498836957336224588609381758774585520282766165688829172596813390523941841339471019609924753834768139892064191623267378082108388727469826403950583000355603985873800619135909526045807337244093786060070340137718798524794918222059392534371640321535384438496155487016097302100316378338128471340609822419578309709067294565532284521491543136553261924499873225222004837223525806726756616452284236950492448510644378141765103772352313062148530956834800778397262446966765135396276334712165549813035725596641983652329468898851464225836274880176850580171259528695922113177342567189441183794719466134077635207700951443527788237380396848335304207983809125318684690791724814919855339063298847967215466122980511981772144962702248049573211011464234265241119855081264838271567881769851117780547944176138368754663393972759449453555077671033841026775847077383468975884189517189977498044732248496749032571428186839933897563093599474707699368665810984367968898607276648299042269849329340182364887896708776227939550400092269921685424582571291608513507993261650478240525208185407636631296248347427721404810267291795939226082319833447502795039459941506195306830411514437329540798053778796951501859393225134139227833226890409238050521063538193611026193044535382833760513712380699344310653535913487552041460259826809072638442958050344760679967071886907276786195564489309830087759822877890468531511824929235652722312835911491513676624708125667861674609077159480193869180450761827303957310247000458660567624644918928493124031513212051022807691223054069869586971506073268236122806636710748435959589178478126743915191225766402601779613659871962841560667420278123857066619705867598019112365932643059216207396641095664328731429805153269315588082922149940658906783499588562002710199226484649078896249785565569943278391992902185409979304474849581753046906469528444792118870435025753751328386152262446287915041637017648491064716542846810697386981446959512326386092901442461278506727110978064164288416637675726415066743476430478021243923496059698681674565041274591464025801823745458591722230004947241647519554097497810037131002027883335941495677860166345145751423591074974613013815668006176984481088530026814973957034046431754204703719699426669160092696132838444720462195819173581557217335240208802037237479376622271628234408499848869802569675284126644439120260359658192744086449574011793815590692750605038941484246999551597336085640903037409292854142438229383307171272524796598410408828274797980418536681942993404423546363025906758517727895444970890600272064985451815459574101964081340844550342151720595823101817937475279241195076451844878966594247272621915993721187981031565913441396467448682354345366341316395782453058623351068875240730632952515961052452460263695306881110585126392762066013748807985884398303825556347654292923192260255288363870069624603596618769195403703997106093506494994223661038338972775103858160233095197482419181338637772007666870467378044984680408638572055298221009550280464169876108891630502305045828209253643307050665588278107112214472856228458083857003625072257060232818556247102829127140306812813146380835484650843362014792825725450569280295178576905004317580134970919897916958107309053370089461113899147185117422993409537077473307125030839479664683338080991747899672620907326438736745407446107584384552814011312383067851786798213819660172881616930670602837036996363537260966375486591108513820078186428716871465103000222011960944808685852177786326391712085520468413283666463033485409731565170163754252952191673946795508158612051484330199095583222998967666510688661772818066897597657941913447234113390734728791161580506884502409341964041534408649864538833748915050175919538219757057405154157158452019525637498674540372250856898058738048563459873527057840186596853182726243740079211414694425491496066980663085366428675353399242498703920651186551687873464406579964536109659992170126652191990053673482704492053032738038127857661068643913156946125996019849181327146796510159731283202106429044500225217629252450631212107877706115861087954837212533133998193404476337160856621525682348629664412517988573938362544707695703591979247547936204261854517579462185875467680328682121281668754386768161694058901951997319403059798433025238001344281101452898681019088401674853700353942913546153616646715922302695557704410466450627260539496305592053878653885564634807065868669673713049751647811618429024470429941966490221832590515762719663135252229057993082933378182988231582506598839498380636915678549137465726461488730407608948843481108604501642569113559621590640798494520847426810271369397460267019821497019579758941857904519220961405580706345771646432446511632803349857238216941927106678756994865583549218623865060529183325218224660175456093303341708736223677835643760933961596061133409131094799439476457979273076096546370944475296527477285909542066766676148711821681577916639019013925953617442944738589943986489288489226802487471030827575683367831318983355190595348159411468843822516429561843335154930477912047735378965197571644998770969573026613445050942832274461841985963878218024139200975836534879747713831879932886522736511065263842896490512082676394419058875321420850787713198050101883315384869770188863109708329688715456034665865903399267431558414177069300882382952793316631517067199104910298060994609358812238401474473548449269979170510697387785680920890815230008627402949191120698132453514957828190210241706949109549390974205989819440177407827933703039079776124557345080409826894944183287823272446319300235061178685773151702948029228388820687392373736964430401188526364368001665734715669818635129213086563795147113109347476050143713976332632174528648402729928713909447261595104995946593264939934322607269869561846372845311447901695944568316841643838765112639258735057944308640786615890589226111484616603911839708243009207285086497448971045346200544719035120746189432173265759823812256203036667050353946017420467069746674833607189659021216926091339062833025972378303093315665750738038614264308717706949555061116462633254475252066030851289931631984419984168374198057214051053730965884654545843509526408131011205168107269430364238831176985412530987176944189614407070733412883869336065828276250605537574863273952169025236321428600265041478588253076977456617596338302385768609343669969138433491405672558965183809045046359354322252310600691659344206237766965307871122889458626453511804279671598643445370391799393501645395201984903296767801372037756483207300462668217242523026949167289476177405637692993767548327960083128603274975656150952238394556657790758587930031165995530528329019327368154171106881291531989776394998252688399897761173852500595674001050093933820747621890127206508066899950038314640993622424469689283709435120888363389288663062293210629126294326871169824253632099947277748651283284190766332679787961801849818394797620756565446109212535171634460573474064756412488956369145900239490021891903238296345089040125344355616375145877901839358805767235156361942785132287069751077781525229904809125066767481631195840911902665601832619027920368471484537128460339740324515689607076215712589000507605976258795583021269929913875924853045830481281151832794387457310740264245576096626211764869310206664223559448659084291310693698079692639395479268608233643024929442281862197909376464491462371111703236692134588318512316036758442203384812187289552073384214413253780340595662548451854184304210366802466458539457170143920918173872847224153583589259715862443601048971799037913374490790685245939490265097124284895807908177596955290399475095645544286624978635304846252744522278068234721974079074887418401252709342341174624507088451349956155721867507434427408268245104534954198678794073865754406748364715929396356121074769664038916350077045371297779420160933243619488673754354360034808058294500197256608166512227417390190296178543408347255779517336639632508211357055967000672417769462487194031151875406447063012853944732478725647622111501731355461937318904171363854444197323069672952246286620291095136234467773627426529180648265089529369778454714055534678069080511720428597116503528241099395426261404710350719516107698433877775613272236819011907206413430657022818953086801149791356380343826627457597677964389386395530189142646016637115540485310488223920250008438288591574874782000450449856043359302432869772657326467567812318778675155227865007587869056204573517632849161514320309448968375793715698143197148391816275197463555584578078311362803755815104577373833127982092868554169524289185492684300817646626852061774497468248146069129681407724835502520914762964980121993895833195748645215882683298152462334016536888268502192176536359491601485670309222860560151200772614347841904451052144712243934138397068468303201846117190276422836512434124144945394981926301239470136693743075040635087721557098931582079091106542950797509770243462550449714602821080401684072972208190298763077017797857227476741049992824831465842544164436745312434908769500776931259681193248730203385576725104211461122109745207296447219455407610102444066302128569137438281581360737993590364428121597630977325929996795903800624885785644937755735661033951096997304403463832532896056262915396606222479171541659227358103931118101863759759319151952211388005426765838677289788042221391970613159285994113168262757599154532389203817098710394380447953229975480817170783754628092488626917446613447587461081301097311574649908386616198785624326929847431056028911921508809439488860870896173971094522954368441884774145110650786060119907990218576767318891486885508481838257360270436398718770366811910321470050053018680104348356331570077506640226133177140894601136382357367791759424905545321070923704253226281530767931898916764914636613981737338242059658938043289387614157045406599733794255701226367052953338892649736332788422199424396209136694593740182906755297176505166971169436032361636325786238503361791694347669339355937318130177658603385404762487822007059506043616855390511301447543327078765125991643216817403911507273253701778696980353741361638483910248595769530440243507741244154649402003127873368249349857695222461611911139879267103503561901877606700174467983196326149647843416608879056181549877771121293179735461821676931824470487132574248242794187326739323019958375542290937979475280970161321852838667992773777398771720665938384959181075019330880665544064754087339600115607439649019348727232902521218391208858466948748510960898137174166551809305893717989519633172652354517563653024628388064159461094710728026790722917765521744318391437787183958911670020582236472937123100121678695253796839084269154244116265567533343279693882873554827773959068433506057210742090145974683825487251515903633777250925935476925369950186944199297682389582812940678768229804528488590974785143921554270261929422375652496253274708331172545903762116879207524672948646008658157543319604247780821539614056366486211252934012122049019720467053061792495151088696226170075603759046700677485208591432210567942299966832165250830185612049167105453460842872170496745519284623945653453913551858037643422070358753860121972340710405858521756865176153629936673049947174547696993766983448270405621771974535654024714670547768573910400895278466868124901155607586747322219761878203676927479569439767437913283244717870539033732102614185259712337132778137373093551710198992772096475887947240667903994110013174117041298946748068346117067376476546995227808303339692751828929994577067013306343946979143816943243424925083867372376066434265332718763460909178624644743641067522889299089127227384772412060295308579423534982707128388803171241142739263688696669802588700953533041045317408410397025708108803346322803444390814962092308550327503267403380067460723834569211378221227576999091689945638604575941087605260091626203136866155718794082784631808284181839479847933863591269682136105974889066645959259839541586890792614539672108736415437789546674786732813525871110105182452044218047720821968421834972886076765699978599375117659102389987354485034785914157696163917175309346081032844769611093514530155532638856452487854986444186236119650318427663209985282366768214437293781079687083055374754962720843045051328706677458475108216557291288729288679322141515666466731264168145550627154800775950824103181838185281169569613503419712949231741327883488863785218238088681387980878513026216008854606574470715660083522065871794655494758130061991453000061360977711974906740439078556772107293195209073241648524494457637599477608010618212749434881161097815100490177291850075225523407356113916825750166082914174119531479607884259484174015245206785969398959067459566152640167423181509905640749750613367282568351985554254178812194275313684537138329239630559582286193861336634666658846270973323043806460058236307218173282752430006996019877531725140765611670763063172139788164733796386520874276742744558439917027254721067642014381889402750112880063474871505376495925278215974821300197706462270159614969360369287215732753584191225209906421832811137960087947932220225899762573780825251661362852680697777579287857455551174521931831229612774282934098119018699685021565972406552573894213294507082888211615007901886602901196969860345838606767497013928108511678580508759748881715687623827994041286474604037270959292904908586560466997672153180486962665961109003332628205188231984029059729639797194614396578831268997922138567070853374832971932335805819699828487233260647294890021134038093510021600298856225963001925914551295356353797309582439543473776483266671772721131346072744412297160050419144598400115680277405190907047054786081351312857439902662734531130698459287537783960230033794614036527310710260957059854598102320330415056901455554353607011843621319534674397270149749111295089476228409580616974473582468439375620141841718605284470889000800340548715768174007175919766017095806859880479276099723762401705197070235376287141640994500296882568244058162598217303630818045974327921144969163489880085910494630769294145729721387785652260191740196687158630831187304805738239641913812886456405804704175971299666108893709563389015129509715243583892191688516220967637086696064271386157912002300881721142175850698307564702270262759644669601337509177136135956202734110603275582979122657891602537814408283740208303299325184637756618217022011572596755020982682036662261795574096904521529164471418100343657948615306050368962347393740359768174126259608676236185508778291202778269725803233423583988460180356795545593159722720428583177104531255338699966364253487811531420727421307862747175594590821756964350796676110021044799044716028793570496132886728726931436193788683906429753214774113498331523644740101525847052484101897194445297921104944661850218263992844977550108184425731499147706117640299138423733466975940246590463622185595168657224710917114924094884069680149964644333470515144789134486079834778034810419744881089162580814395886478495820297608184088555660615130475404939190076797779834527425846655688475358740205825347976423233893524029578508323302186164341161884915517997791845847617141526535491308861574660384313074041849775623608328897858445503439753559314257313210793148629304667804270658273140143329687245505473087919212392415714134468914454815021407566990957211131193652897620115437061768560892135624777220310206675553139178778476169795369054535657815283980980749736469410210517567224292584678121906071152884506228522468524280937971701300029616854137086941596935990475831865003605647787243798578581693371518758039233874701605117144641854580792225625483926383980589190423978221921109589768143402025296191536833392140775371783176584232365373243111788623882850721347705999856917494902059777670920466659893622444439413915281378732172801289968930214352547553299163524099851099905629591388669579115401186415421000338156961014569142652026520725561947004833966353312859000595665298192880996787741911169253129612518759390590348699093847071398784179796245413074758895820834250379655720064023115437239187414983382415862353252197867572638248665575618954223960624275093423535216333450451482102703387494575518465625662493220425531707980047119608765098588311360409891120611070915744502590551547392179382282257910244894823982804549206277096377760558759296568816461205549155630182992501459305383780177783813793055521002198467829239269747783271873369703138604789052762716994118701628242128103045360094179021898744514402948003866418605316513996035682208540019684953665257754539381307720524530075200071022862350279259902857842578734711812156894241388450158962141516376119886169475424034224947495329190532739893279719786868946979312120804296031297360618804781138886506947224000650878549590432123257608926625715854285005726857779176734217607853035686372309061738267321214777517066554085521136401693570485828051421691579402500429155921941301638907226031618599685823660333160722083544938493595488317469958789721895922783519281107997682291410618167319555292257000608954500138585062402823256462471297418651661110604416616623083002209919079927416768656620002844601757118657911506514172904377047279567548567679884590032326662304770304390685180945602528921298976238062586943087839577066783828240777808768613336078737766079328924218715737168618393771676679284782993333710376213967423644560511936836125253013948661688682618076113409613772458925677343280458310108632117598660941462065298244670059424625641766728115421680799515289232930454770338220828921748827848709920171514954674929353620858160998681211932203646715180511128850440533066651408575388501721384375903419375430731091207987781904692809442557898169331506902401793171040727449180342367190147506735279880598035295106790266010106691901384385636178835522878740218260623611409473941232512619710424012773663088599871906436501285656581909235318571757596677644764013787372436431337353913134522851017938793977528533137846359530392529090871693621091550676172097959863476906118737019606098715357284491841281526229021656071205102951699523923420734482931096593732075322027434494065906635421869208674294788908300252436711516829150718207233242410480831618464430198020467831108689820101344699137358120561784153130945594776323615753986213373698203978832465141882817438651888485966724553931310080679859974867529713696207086401603107695930277716259246534871912543310839731949852870056923822300393324459921199366177670027846537762789807351857576912943579699533693307911637131428071671192310163429397455331548132595284276800127702759049378091113191525505662385013813722468137503012932789681413137942508755727950464503249089162564805844829944681699713453079219442965103096416209910620208390219012018180431189959479132571227928151427404941102038923974421232914267621376599934253798227436721575972363947793227495937236658975434608696531429916359411682851419891833113637208137606146659027113678939593805338714565549592258690669925157113117296385451289033701239432820812178363958473067625820590205415121299005991361266592998994201547457455102881775587913407541390236528327081317535722919248568280238591541264276270198334459430160933842415283395491451622156411934525573935522685753066154501315115339993079057694018133926115617753352996472167130699575548676813214537969329599104682716181667256259813401639701502347676582146170793752123079289595617143682814946145203789255064118905550962496793191260243012792899736188913435845931924792396581911452305397824036417137279297699963751313664311635251921044232567712762349976818338808311239464536800007335250671092442526415073757567550244652545545269682126955529677240274305013091985294289189218590084537639216182633137053211996773530252081917133051903925083548581760398591426008615104262421285527426225951856655862149629833618920126351584612160134799818164621469568831011965675056762977635669950244942316178752484008820601644521983778702553029861974327851985122218144243734748692014861971162956469639500459842064990170670184965155140597614574276193531409781252155589476989603165003674199378836212773661408172814318260209378740179941594603518601777361931254958675864610818347815215355247158706671558674455074921297413213279021386602719487491318051275477749956869343265046513933324591202021511662374555362049708670333215193477690804055866994197592614360106140246034646016758791141844989250742544272577797102762383093567920380020488889056692605608592220017199159389372403077520963649051801045710045108499165539028356456737251953060287147800345332467931491374431409357982567634135216819419635442053443345527872708951092203784883813570794991702910455776572607141671058759052503056820767184450460078458023831943050225603923095318439596753243619952063021952512674748676054592372044694083013240863304080213182939981304604917789498921664241335655673527346136754365577478204051204426319721117826400004440191014198438271055069600646508126150669943323920256840447201895771656787597451583324115364734085063657033860848317144719672066529549009123113635485460620833527005444610985802034442517700808806994455663852364008051406127556898045318231743757826114244437387250172711231269742074692183670393432570752406290033235985987311913934038959868658627729014546218267143016028023512773051019213428034851028492441289060250529482305408444204373111705520064824427601344792482253382528341794485251299677574026247574130988406561798223709997350078062271352173164355514541727227819352151262749427405501887024473696291278600972908796858982661914541988460575863567070263524989744535859594738941567166234507223090662154577264521082359523945919113435203099102177572945763221183868062822673414338609253757782987348040129515532616714387022368302220754069033301171356588375605504361839679519700022648496406832406926268015603820272350213902096267609551755885051813348943363772160208445695402613479548745868307059334251743254638222309784552289590230594716715644502820350646665005568186667912104286847924946751495306274335050446572525472905480659682559712973527031672309523123719236286595672803530134458028066836865466203039676832986076443798194936182076580013627676791026543632186645896963079198380552442251592512479257948229170434974139543183944509922186131739327813784912484323877985933929084090088888826049334785488773154036428247806305732328040342356205209947400152155362867952985606111763822538145577117744183163059968382108580252960071949292839538556835367746666045549905385417145259889916744457872464479325388998000245049479473641539859699358074350158792475564280279972582799296620272065551829765735355010147352482553413869511014131563140173645459504971278727020733841155751766564213408469071930386374930891551624121799212880095267691959734099505999970685309067193347920006162184943652070227643682925858089161750353148764154293210263872757822455405473052343849510077915840066034702908924006721491618309988810012450907296443021773737051116882213648349946873780653880229442954297768671742699677469212376739855948442965066342672407912188355471443313739922465767856155908517123572084344025408488379374217909637126159862315928730874318782472947892557791072254764014222397135130248202500092313174274669636763190466856460473035840207809040072000564307103234742443431238397308125259706776592406872650124580056320340111861065809401200483007462700875736533053653017808942235204645756619925861906983574428787037803449247771702684675598382076787264253126511663530033991964900022783747176469701200095205880807754452544876315275226130066889143145246810175646206695382500249678053714371775252843405274838833960536425625785868650665462978038291864799374239677378351416843346786989490496088073077605543080849268175599265568679957128959746382257470777681226218604315012941304876706626061132377181824637013463445335904968869331857846460492864731881557107362300815868796661169343605662374091147140328708662502611032943113355944021005277763055348899800708376347833419860786415272239271228887509446639037459832799096232709870995863840828573935468652701521389235667359416308588991507834279559631545563200423353057421072299836088442418895500752663045620406784226405126711237994177314992112019045202183248576524498440467015190758271384814271271019692114491634270704792064102259045314814411691786590848256295978889398262240561875307838731981083170748152521134696924661980259000960914527624404332203391954927687095319651943207378992345518709390513911832490263763606140570291948376475154168654252156488571663165684785005938616239859146536776420170467063040941953332100796393290613397094325278143972615299004453075439634411623173240223105484042241823381316941203567907884707308930886570379087091157895467297609425175123881228544089522489230949059627269524744609362978537732258168243145731374780166474603011011371856045813416240889143017342267764211194810795477490190656524713549091414356856727809201265035219388264156837792566458672918561216540091132342279933099484593912532265291361417705775069443889883596100495026718393437334963605395671570990378531957916938894773026572106414471152418705305741692756694699186150529572223225701290877955956803494794703351468676523735256599320643123905959637316982496481960236791726512613311861986794039750776833260001264524678915420490229338936477669469787985856231231739756667640720608384523820083492477812227170285285515113161253182041895653670981910971428455357631740932263113730866778672029443630756356645969304461903645576840696888699605966306853930154158152844942982139669594454807583656632886569248556246448355548664057542837687010234818654725095999587857573833109849836525720344851105683009991530911548214936192645011548922855934947824012745959261931007910431693196944990154851417308330892203827942550123291096341315074263227553997750649410270052646525959264208846495813796054478735952947005992092560167073230739850800225672981868396278146937906648116911773844193692858432326583644764726325750418687373610892975842699864308288233867568484445256587859889067037891031007731252876650887226153281416550423923766201317679805926917475408117296924892890354320709450893980496274036030689204452812453988687197751482733500240950681778124606418343380128319771093891726398890490366681388756333716467768341973569321988003390302466226139991326740775608770879120472182973635729060242558559450521309159625509686812410323280676919847742980497420564886706709373893969448605550885264544488993121038412556404917792025553287171656877780452716671534164531108848750686015448775246245870828374938918002014911202369303320239793820308715608200400621185815872979179449841150216687814492678229742643784532085406237794883374972402468470350881076199289317829762362433294681854191197363098070486876688294921986992334925409154492937454114244907693416854834643573187262206440522736064769185574527912015664232186910942605611816533480583138700253388418890011606441131054391373595160157164543706322578985234951506103071394235788691930921785271338392516127758917647867946222364881184179528692353823952782867147736782779878908428131374129786060322837252779749388380566312098880580956650272066388620805120829119525151830954474676928807635370548934086501370593149541435514267252692356599104868669007152118339370913072879424802489518321973082441273126490841292228571292504199689997910083439450909675906944499902500969769235479681598551932200131597338289850503144917575832178533772747162118726155065275769505651185356582743491072389112159800676844700705321675646709476538585421128602478098881791708093135440004048385822676088029826462158449351812583149000916857684454331759006050502370077383023063194028445152044971592553532545822404471434178319246556630808426570338042034957846866161662182604239284255510510755375338330819826251240260421813402586115511240845720498525634101109551746495763644755907773368356784848756631472472856109899521992131301333894224728662090405366038177781194884488907019591967180460367151543745005788478655845613708452927632059339728660492112883749443632801328804662256343573486543857357883557608401540679125902801993369804756228010305202869398675593966311360572983924430323656756300508502327546160223188560396033860395550228699551485243415188655747576828396855567621889583636875103751282831050555819110795738549799610337663827739998030026013625990807677896386765761644609883895542592976087317199100496050320007661086819446403768557863418206975251208664967482583847077786644763905434477405355827349510737661980235508606395173914398594286684140068757353041555122492982569558691243389532010064846135057190729223906812663843857932794993202759046724635546192571067375793329488890569974026200169433507852657189535364898692657292098361927894509455095220915826342418112772165587629657017997303701122475909341943830343821218806784125463056702802424037837300926052972457648656629135658220223027857682032947142773302089084823777958519051421952881184146957079851623752492495650436604449235829675941825036688122399509494719488054158655163695672013748873334501545913249117320316920968665077291125207210289006831667085050085247380486723718125897510044890542039637052945667461862970356795570898094424547630412586001546556558033471859688155402441129486329361165102996995821424433497324928929476829095111180181795723104451262568479241649247366124679751579078030878702220188613685009973989721200032297034621052394681844398731510349486991836878199297595784801686683884333108405903250141873551050831449909639699407217427560282199630055077262266995153062958785222053373981678694537585861162873273760922983676798437810717974782951547110639001356929250055680295798319738953044420208738475680504113958852272642936507124462445575556470066463273341367735432829230568349942680941275722174219978266328354455640356402829019853712830175309096211192173108242836788156022859492658929782450044716294713049236132195160752123676274013322328067161613787478228021298338105078044166488688553012220549653119274542950850299178323636223422234594752951426123165993254533008814642206906670050768936097039645481299939588526092101933532517696442713656624417276572421098199161787919449652894041398788600431079972898373308206425777115061632463795911434652072478009019416612972657658278596629155510864030879740585281659566671232096560564458388431259891591569310382541763713457729844431413545239770918601319482606655341714222164154924161191189322452556002331672133904082235675609441763997205220538813642455613234698572817115867422994349538746839288302866191029303595858414843186683214446051663631439930960341751497925211069096593135215842156656698616276737748390765205272110946294309012653562418385156602864910703067630243402151644111248180617179156319613459870155348578769208390119860064859521968644935520129474021056299879303445893891238801955122072375024925951544648117951115121112952940064953789437176195989007950813165065644282360743271023450835020706896207443302263963406420847710061253064513744421850954515348197343853581785843636423472703991607585098021912799663307755700650175395744983824971184979860816112574608792176285868730148495626989633210152945977854175434441160154600379480096032694870154189536221668427948080766098384353935633508366668350692500929695442887648782949854200055919708262785091878912561199891583470026454777490622815500465314910259247427263873001332767269863489266644704563526980778072052415871107494630972451163365376117091190097172037457179096639968603747897398716982926240323672641222106100882536093994759421789202290839241878768799831524996523274763210314003834836658303307867982468604936293525993044643438062790306099451433963512219622075783706117293854987308376778427244477577695479245439505551258417039245455478275272543492616121295838668530809476277553651893064016881758116892838603302251513735229917593439259246075594717159969333071209993294448306709613974334389763851152670453669391659023218315879650870164767461644503013059926076052061500327509555264548759499375326517005594991648652771708777395020480152030879681051717356571041524422829210442555023222001303755594448076417051566095395952851858512509856109260374090462951889138269552859658412924751625556518153968067766106704215926876305413555562417141904646437572548816570681734521962809851772516134918636681589736086044504766813356738719975457747482854319756740339414338085716769496445483047111214835343458785351354429757199248142611492736026949093223056080334200158648289378994785491801969984840313174394541083326426925925909885065526118725860556741191482940661943091472395604879780110682693018410561256063805147592479425834516240383767948306659941810667356536212339226388491948166628820901347288958424387600954341886880443107975425300609492430625484411361438158690720122590847417491117864076638302501679855767338231753127635139562476399865525368100177295296473438914944846267256359866590493798238852850453792004374080165629789613983264222547501107037574986186895779187960520824643051839668201907141937023016934652293515469592854088096658772780551021542509480538462583099561299271108257259446458151220408485278933444286709604132752767940473526087072761704851545860094376219818657051245910378580342433898335800489941598447476519294765519299141153021519272239581895999596154258000841098684335551904049303786447728698592106376176233235782130167819706423864568403751690291812384146548022588680672906611199839114689661293468654022155579672281522754407702949489858362129785613800740519452867588043846581984492093159252936823267833362775299506849719210567222545554727975695270839249292882548553826916527706208239291492307197730797396683957249302115337462149565228271867940199127820854086553305943188211631437922696792222851099253140933652144633459898122496381397173285675496047587245146852280410212690942728088436340316139822015207740324945411444096655804836456308918494868982415759433491264595620418846485788563087553836924549452833539357282766195191607066492778410568299375318830831618251292006075464975578897492234974096499062230295515787973022335068426401092304151923985972634562505999005458064899047328252910780028865132524253809450632884543060437641017642123625522212905869308533065646620391688970099086157719556864526144352558990096399857803488775814066863925821135366279175479453544826554344488517402968190355239762760420559344852369064067035475909424961182296760386237006056350669565482759861334955337861140000268065195106509910065982331476803713968505234060609322223243158324483822495932246571219618842139513537065544884236968980146553184765915638589473494424126083873099802192806248889536043112600446133072604627366836677601306619395167104513701097196225124491082965204247940446261558864086476348870445656829516954690041604366273727954255544859066727298989920840435184634782168009453234784608297139834645743661207846472203530347881993559373111832587097405245227195081329063604873282221492330750006914918019179447427499362561710397030952285829277381234361286440843548468545261001384869939237117188699424022829381465915902027071107058753600693198922218092560457218961492662761698095266588551619895855456581460389401427757528407250884760345433877139364266443103304135278196678133480206807275645824830455977994272807535556935885669895596404642485679465003248159805569413954930810254457685472643190984845424959055329849182610254466571544934774351866006692528049677851143010726201110746036809078289992955253480455555339983155313022958903786601109308899325177099530055334868439604624775917765655709427372997216015830868016760873031625636597358739782888981506227853216569629043114442154518687141833499809010511053458608852318237867328032225791573058988276307767622752502086880245423486314024108030593089703409173266903950593456931106078221102424582659709059641089573797555368371790609798587685235949106020943110950149852596726556015979701908333353890424432371945463577533436600253486618639042414243849122775909733291089118838993622540657681533480834994957253026055579315003130399271335399769546756216433601204974412494623402506437151963452544136909858876699973734485165976165686688690061102268182019863859517498104563122137226044933589864574555157077249069428332526405461080629069435917473325158467161291675750307762069349570541762814569491891614893578199189888902856329103763352416479089168543353131729386649848840651160097654745615745253323059531367735961027267145366952144585523725075661524691045279671459556518404236048708956494151826761425159163461555708393169670115644676937381833095944245615412739841646900482381938625389257142459788672158060454758288059775703794694475957132751816206869643517679275260911682484936062619419980868162572604948122110907925087513107159172439518405306435042985300928445955480841749360611871321753515790991835806579399055798580824957948703375502941991299668824221429369860120381386456110262290470570261643189332185210151648511387975224264787987376587799885224719619196300588559505655528354553084321062524818198756756035705607831070699240630782596789127161134065275633161204418674750306949410802259355444990908028666195429041307223616397734221085927160277723545055780607237235164188614614474082008997985111396570531742000953276439600624139809381075566790407141254660822796806715175487654510239607947823245408293472993508095621943765694662668977075524945924877101598102389666521429311341028090890681845470971646154513722106571329053850535324415820666642873951982667206516899484911317124627735215692844574311284618469613755292363104509049783232092446532897442147163854733184932200333110618118824408445827108221277722964469449190701636263345386430450337075969935796688713383126288214739062221465521439877239123281923254687838002833055102137851593570288389226703011984333653568490679891558251112293277398660408052951155519724859510553454313944494737242549364780879799692743754398745559823443262571270599884879800607643518622155507767132025867343391244273576580725747664258184750132712973508790531812974123183746185179435129496853067372672867955268416910243927079785074680583135448447696892117625872380773307278801093645347309387195179921257747044811083308261969199797602257106027292662614209733618865327783626982123856540641494905821778835282175824470895549419557366734102316634637826562239579721105890577518463214761287591116456594751266481196060117177952603329913428781124731461408843359736886581367280905829739609398304950169803850396488953536582129405005028409456037022736166200283513265866510857914598599203255040327620465506745182501972742378839517548995916352665036040682095571920409053722571208227909833674466979439060473366443369998443996891402513691399036305070128194534861759858921843907008327962577243060949380127874207427948516008842785067733000488722701163478424015229312515039749550952884113868832811267344057883940221105178219195645933632177794952651145926620745476941184756491819036454406750856661283622005368759727830826070538296086425409694562910518866144327745924126628888728093817843429839358398920717480461720698836249216362290468204749448731081299976513067286705125108308270161405170843921196370453326688082929433431135508831338462542420300744472290812790751315183496509718273919528602779256071856993987917698071567018693511332840774123585528522511781373157037542780399489667603233259887412055806778561832479438784558811159947600430167291498441853598915778898009611676437218395004179009115061654876714403147507493303833893747273367818750946040799126774133647045590928815269693151309174203966440267942574280775602187656162762045149175304183101225907471792306765986817437851855087954782491612173475369193948661703780070417999920026054517176304482717212304959022169957137942067547588777158940227126170346102217999168512826599277729739578432529594071592780436762080595299292485798901491178342724820177527640156510114385942504942123210449064615806786958419767440138678004232819227139884327799988419785662771285692605333570587075513504290764394580475092398386358087665056472060852783515564933327122672508930053873856888542869794074791239995218184812240692710960351815749287081189970489057095308533424650549398045492523495400394688902153467368504233499461282454200579145134862575533103220690751856875643465044767207315044105449811357818322915672351487544880399838740600588725745705402830388179871677865354593842070754264767198812929656307621301652455030161505369604887138591914831471763159297568101045624196099941973106916400927242448854608797993562682329348022417608611192260871887400757160937539448229411645248318915008802754113290217210665484927853788071024517680475472837856106031044844676844534834156161478242956252040523040105125500297874537954753171605192294197518766665183929278255551412254287251429747886397135948485829698555434134125248559903105602716300002364774260484881367709091950284528256387438801040482345241738315768629387380249432165951761790722883814162983499642652595951381035021262103047553428919680385284004154645028803858150028313293976200731607153165321922321612293850186227742278796649954348975636560594447563475704682865760147660308221040278642193425273299295846144255007431337520607630756241882908281909864862480835389505851925330534874529209357661077263593484605087949252151858503217937490768081224301946697918912455461474801972953615947439140935120098073047411859090866014644507846587603437540296795586241860164453566399856801675526619070281284164211143908462078180557949914257166874703260788715296433442101178767055565130868771910821452807897128571722536727854391589837352202275000053232273129291698782283125440433105659045698560078296393055222872721434826644786074171526218512117723107884532280004151216772388467071986211936804331325749231766756331257615073023780494359491496055273359695225564355506140625499317383691213678262673208672110067643998732951656663909331206426291664863345143147887434239715212353794648368174728958966212224842629489985809618675461710365636950994892049314621907302353234054351732827922677389901837368261948121420367249585215191691173286024236205795680387840674294712264468321757719537850996794923839548354391129665164776374872651742063549571417724116419451855052167936394470604464581702701720227569341976724346029939144469685470373939761251467729614844389692669316152391003344966339059334948159915143319930687177465884172742418284638707719001844324551072894527376395409173133972197812169128217309702258950540815899852753367153629150337867725919047427977179071798465065585923524933423645830707404048815340794660310948836295978590672697507647376694797867060462047455172777249652703204521873125676936518472909112100650403009030292905135145684314736144812783864232283365299893274348893659459530864822791097493390728610031456685564674350908241068440144947651667975465144867078316701312287803224347371610087561132403570633565194290040677954552569857968941306759435286170071834572258926447485153638801396276175590278842941669992858793256449263273214889464027801761600790311955817253153384132572231568320470557107247129200396656734375454715059124343139478633944322774746009262436698491926008656934133263743850887972943129232036582270278023421090122888925533833477611470472554051819529401345310075880914683633535782433051581757499979183008344216224630086269231197852709779979943659368911853535588841618418631336899501406910522556107887283999640853193481037453870929821787276704501993090127787027491165005895364562694504184133395096008103329717545353792663384622607843676374828572273140726927874063937973124030089103185179083400307062032124835968753614735461688228685650492349924014084132532234431408154955612737051005839940639979993754050756935051832287021947619622865290706151121219297159534679544129227311622660880652818750705235244448196304551308464927340982418789032657062144056777912521032976447649169627127027784833950743699835578480352248880072603881667614791911115597595586921334608413038141313131133024855293023181446767979204412229435591602047600361791884273198874841920977091287658154441273491870546561513648520489573496614581487442852327381427338248913446062019933268257143210371694403619655232678348816279742284240315650594632648310524681094896778718223183789642632892680816929432547891115830763251559497843234072416880182256992501761809856836147952816046466603692480022241031032626851943803872949669479331429423476306016948515025248564934332999134474210954709348110155568448087189013061124466645720210365023216730996927829484469214220553787122597233571417834920242232882244578471997686125219105917405304687328301119428497331141493868382019752409205762601273815292608331252449637749447151045916062542240324310425250790798915757661273915952903068828194726304959887169862857301832442643566389842530396682128481208970240634741671319797135646396148618457290096745239258351566221533579171628648780555512701529513633884388109376462081045967819410325933865713176403434944249216536942200014458160182537272791756349620010637303507261012745415630021441339231727564395126977675993573603199327501449703291910578408711530074857626521781844737760950771572831095206130137622029236063282091853339424579330483057782715068622407492984824621482206049217298819844729759893205466048876755866197498014503918844476726243824804410049396543100960917411293006881886781415075146328184646467787377653013153809448138713624240870181921503205426647559609040506049402585813207051920330361151897033201879520060979187629223053632761850286151819317798335480244216698530812887944227161632577584179604725056065202210946733045692245111250136594672902270847783864247006624822848452590290779922353030791304849471842461972959597760085936244318615408400377927985643247885490346703881234123778846258483923591240927604604940661442425877069801350118857198061027432694292697985399695197170897009589225639057483878975949440631479593552888697242251594111408850578558241502189104922549314872080490847485390556423040050708596675055579016991339837771679511682158505728127458671931621091843893227859668577563852767448662987865259051957637010258181292589396961594942787580457159884311052361104925601887184169596352438361884206646999889385030450336330147121614755935866012810100232562834675349261175501415447826792785204270303230293770406752006924235893438416728212890725971557083233628108617271571331156384574145256518255930098660983184748921362683250729920517053736307855804548347995658499650094745892106049466052023774439608075634526222014381752268212801824656664648529203797746303955284596252369582914051609575552724860817692120688164437667223121863368895768241875069652839616588708357347441173792923650589954101708082209936913216987821305754785515819752626730824878452566155909974612970233709903757719257698843290328784464990350323663609127681361695379531810398309535647858129117582517131685218534290124405082357017705580059701549001808513703887865765810579906873571139449058691130011031384699043689514757380338543576964724121528887443924625884659422623584129316890509186161051243967954965133152158195266714765945327614930582851127976741973086546301993146865270729455787945184830006335043084134449356499716022615227418502013933987834742675582504036806509769929670009253976428865317271350238566628483454966645951343515324011218493524498729355732992597345233061125981453353812645498139067078140102078911076807107049265355878084495468758853625818237390358755631907890684871590370530847007114317301463037846747825505012108752885030091067584204013203427969624604590192579173058008493019142404703184550573171206569828925877625583829736590644521906978618670571559129729732083897808452259754028001073284812331771265964937308794868949910346865726862708515054050321059753219282629989965789591077180001790452384082471822358767487087845731012118243284913851772779000388837180763217862648342361867855247629522785111322473022200809448641872797482203036606956965833108685679963961137500904219505891917996975405838676365583134691125292240393518086976348843336437371933097793218878940694395312722529813225758896645920135312198101585060635737892214349466159951717851061788396012818540011424376191529554769010642377569014170357105477196764181071325454640481716357723948061527821777304129635147989430323987792414499114772133654856249009569149395421766198961527039127731581366016575404139110142895958948304653957154582836910004042193611751258298080540404443882532506308905839486897987938981645270184616987826705190367212472681245152836337220180814296608161489065787084335923088912151891809360787526294956867910014978580099903885927131133351817996029930256086529144544074559700729684293879707771567171590551657968373971863176659112033655405561603338760168023225963299310482773603125403145883848368385844213473343749614580057288600805683318290245040050674496651733150147500895301625301061021089286561107629738330295248749230189248938404654359006233790991511138571551985780352337464303621666791588976952981416486531120801593751623281938727332038365439978351112929940544295750399677520131597652207855061239062382839655815962707366066041019819751198795024529529017495841328449082390050951350343727741962007052378167940573443109123177803423721152146645773691869494614113688347177033489104722879569981714386246768926695276178735983853433501263088858980055539423355439466986413592844234216099864413952398122693725975737420928718703793144235067841870535139187300778002422571944363389325772122211882466615148945432609736257741980861589053586219525423518221785348602106594646596223063569602026915539685077027459247013556973491165124983950583863529682086405442220143982152490832267737761831616706324277603442820107501900993691385038325596107344881981431349867150042264138515038748925239748696413987810886359446044778890339553986725483101581701530230886030242160582185320448803703012338394206962145178224631614417000794755475235278821328384537204070332280976587283448772672347935508337073490839703412567103175110957467958310657440266861095920979391047184721979979085555947252143500433747472322935341913579045528640953789804597726878494607152809975391452072787887067358811474128594275659154867150607465660258806118763665630346454144358681972201540810568720319950452189311754412940162348493032261202406145961194743788856118396104398980115098457867797049583334174195775528170153144788747330958112475377060496357133767698841355118528127353442572922372740177644047503450053488587669078047473593427345820084367934213170200366817922489861138434260698848031153702647946191542536951454866582345064272997649194121227227086717732449932771840867136659127264303984577925737527840470279218711207391549016981778516057407428793784499347898753739117643350276872495393713685765429354333011799993715999062289804029880853022747161636637891269816661409465826397986326765880553636267554289320219779960509079693224455040878046980895752346075850340838602674697629046013551458289965352625702952866668440571985649308763929200431426167347024037854423737035154632986716198937175323968095832679307484292918549786952905639890284113689149898131887219435389431214291006369816715649630370507544129306375415213566802269485321025216384090237520703226961270488193826299473740108328535094573396625529908824441564513091591407296295780051525300349039226855152207771933857624613221355874280280179926804663389215303260900029755508225644198053240199310816790939876331231347481761357343420204477036702454295731456855305699359041846887605056946048320263426542055790606939371311581111764851316211698427854363369292530035019530021376546314610491979880423972461007792560773737100476076273708650855793444716139728862361304280815359257100522104977117255661220031030901397238539256620237557925653168815447855210113112195313601592163212482375628562237572737391538034445121448670132511222465516711058540251536727484084522898967841345164154416697312925312897172939891710882908708561749870184271785208245856734976194131266933499126684873097192368046316474041424433973442665431917245859015650934843099056033875992836630033665341474340903278282943192134806035091938888002455147126214506472106975173218210402587965331128059984623525370885990896405652054424342967731600738939238042645431129864632662552317205140636473801796813188308538942641641171960324189826105405433671403828574807116525927431422317246424613616794628044487355317590159794954724269887003312246522495329628240571929985633484227646835815025950457544123964732844253530714610853782905746742277831198034317367992599710597458787435776715401042084351551329352900277613697050006604567920256603042639796524485573279410208083670823569160050596194395686687365871064088883527095648598374753895705329460729416205987313085033728811107850691625180641195804142423352909153634362392322521078326046082353934777462300752064707967673520954539178382496915633730659184723084519104130441948835767658950272814967181661806966091548468602827189115403997723222297480937237706863195749623238093202562954658590760550887665763191160149762487591633336304626915790048777615332405311580621242089070495062370997058758506067026263949681232907798639982221434148011978568078077081692830626629039631701789127009964223528190430413474946881317119601968981578158535650482273311627416349983816292463235875191236862041558437718113206131482861678778503371883165194315191025653279586458441837660802240325197638378066568314423236463172167437956287411740841071803748362134739866272652878790503105764611788430776753171991146638325618992036927185153728035929937694555746106227405581585847450698867115655464636521220316199882659049303978064486903822032239886164411520300636888687087933306759503499635316925638491124510905185824786097335172580222497571147737242711516204200770984167401306079312357985085584480189237659618239305255042923899589827784001094933499814185955957889858998061984825626735190840970318799109402326121881020594464893514465575044589286592184370090892364893066726137268735126885397019763179554203166161651805422808154043840146227265228378643245284187067312300494731926626384290785525758463090934090235364864962357196168719072017297604737162892287429168852538323551396006359754798287908499892808907240125953467475125617006449459679035096340375170643194168515965143069593054795831917065653468093390923467364649729925558904584025622777619671679733455094993455279531788896901474372384571209804047349313309329777069988030684647840865913576879463113866750051003032133781788797690459096895399975186991878057112831232019954943570411158771444396506490281330741283912445512689787243715022474248593967906246869116964912583794284005029411713902082856224155299760110525118661896853213211613235536695569824570589044175753252251371264312674972977022890522742052626497392305666180267310153958657985917308228986156244423938792121629289034611790148412808263780890536746001870908071265499771057671726683466864676111699064486423183479857578808169146045187433571796546481677858330403899345424852534869917925049332501048679417785213640145894563683266699556501087544199616901888527398142926440904313297648137568475924530847801794468555926409103010908217622095235569009040085712910267754097427046224689090166423797492417102824267444928147463188890619724718325648073130786891176309462418175252205410052953555254666061622292869319928782718520774423659558453082750430663388347307707026343110679356364230902618527486628841199566464538409309448395824147882533392248265279415328280227446221388062880115413856205483393178367768381722595437630144000585770897264340110055945436670234904120200668885885755179050315991242941556434249102322054211318662818853903322183128688001906456123160093742674489791420836828310078673894080508345418719213798371024064545160367192690511846562638522745793391448527230648606296362357740483698308265702822266756477615090617712510466119063375048379129191862520820257227707975550658995639714345045773888802301366270497142262325244444343958158730419848485197696282758101616928720267371338657743905016016104235629420888882399900835890312449671444793411633943846229770504066359370820097016057544111231505016219345131838300161628790567534100449697285004927110615459493236783959143740382102564141124108554521787054746724472247324240268025382715892935220465970228554500115729422646839208184552063244491036856210877242451083626850923304233257320560102862463128556825087458876547318442213464433491635349220852210742126536788545956500688196796782556096254548262174162434567531647512655503280394557895784202709105931182417638146208621618421501572663537894056974861328881951927225432852111957374294902382975297892228929977422393557779313877941946748919708888259455288927019743023730297729892261516558572355416835293402809217993364691911689489897216178981413125914217873580557642211542920042711316386739171478495514194169209646673591148916940928231788682267570681710780970707394341079881599079178459693501018981611911952127807474566971127375150869381095248071718936709465372170783956499961246843693730742126686725502313077692592995142958349328589036185724109382288578179654347715939906724650967790866170467331022299972734667152199697045673546941791910200641696777897261726548156583510692449544394450078808192833258198162921209260609646555896561940622887684702852797215465878937714689185125516585889462744501117630655564223268933190366817247938023938228387997084272631610201467025437518276984881755393226719866512413759885186079127995074308081087403905637182146410930772420544221869018081364124488398316401831646124988207239193108579973602397987354752144579878810397484040758245966280458795408882329248697784688480958537975398948865347464411695739454054225541372250277804717521130171371246177899724097700615920939915077486556167799146661773788373726823953907957066402226033318394921485323638552004787847058802300292327598646221429115519170101900659360121043582025365660962514133186762146582240960056647163044159364222752790377482355230431622151994788254939925067743699497948034120901978475045996703604585080257614073644572002174840109867715968982081162004168532110762210663763930638114903824528099980033095810905359803777691452282187999561040950834849158936704474005905576174336359719231750386505744401149809172273570794447107347733659107276595671776760541748190578340096460098715177036652402601212786832601688146480799644699229527459032122257483991782974315409235928571241917798127869812711340285699722810182303037096372471582730925172376382553531276462363701664208770549635838309732878215629877257131059434802196865387054069051825058398229216554245088000985428214333286490221313500500924718364242256446681290108025894658308213897032902444753408060261045223824242153816702089127252956816180528364587472594434073387318089160813832880308202458071632067188908550500219869255819303584506379801249187868752017523072101307797274694133318798077190509224343143850418517716371673085829761173167819540001986048607358550460015327952750186143762917966043064333534755908918735986043284659162747641057221697053678824212096767135548322382268192201127430684445111589841681977200684221226068609156656912039150653585747053033421243907151171276198558340888146508542762459619982157738230576766921855788160219389748379996796206652244167375295710715807109042650202601612710750851592514048956498258840415600597033693618068990107752855169703265231473174237086098381025099970295826657726540287692444390056456205972227140307793162188580920281939307213236349783507455073217693767360818205649061728670861306699122853517533478555209548035202458552513163802137063658176441711423972187107491973696746569743603859188140881523835360770830221396099103229750435029383608890485873321111335235538389847616808719927520845944656264422152668512696249478489950647393933934729186359872491326320330127163765079514141243508113170377756230535991316842302904648145669189411574460326248831684236529757882346825758301033521609920311801992575800435375344071010463288535726881969275229591516814262313586540351049898365203822793959203767324390010173638131100105756631443025476975228165403749958443383796287330829695489412481397525497153810280656101587766155805397111263186100504349337075219542448361942844198477048135939555333249897975791346182770354539233477891848340151768409453084159640767645713842602820507241424922766570924402074621661244983094417710345210130807830501470608716824614929726665687019346934173796263607271979624863632100752629933979364621161572890774382850073405786655344810225055517401443945638453991904670573177519394729763258369910150999237235433754250083392358136127571086044369874601137566193826879229392040112432445262315269966682517675623309678379459791077226825005385684994149623216635506691544282545234638824404496511807337075871391741334654872928410152810383235260748234864612271563184687785820651414846135920112156049604640833346672136122723222060301995371896547293194189245495227449158030694432470283786594925831038393482622366189011818826236046336638529561340276010240990907099533736694139269620803351782256925986143111052970031858948104308162408399338068405130579579905171465898923620636113932840545700530048935075708429124513678448913111748521849873623774353411804019064557531066395253569950260873027841025975331596579846531572770813147881514331312303928672812091379826995026794764893404921615845708393474856924337082299457316834622486090927719591848241261082798644531387132232333899585432741351616360984989522096241885624692404836495191491555015394138931598610608537095402821073209155670846690525345388415367209765347938134613228625378466920681667502809621665099454758102986008176548057600008329400107293695495182312963442398598936521351011545189158516218203561960618226257567569684873714643129877428764418266030405889502851610161753216133142135971297914257832147522372020427548236844583957284394673787759121089566283001608946460449279698814879250390155219958955970385377436009019930252679945956885823718332213543712009877448585465278748315714849858187688097162204455726175776874153123370036188838285554665427540328945092820354070968810462387006271298492788888675612313620090025819123266557361591882691048727793298680959232690428868914026310592483484877241145943504747708040134548900560320882323641793952845051675657076550310069622209230874032355459427075242800910400469529175114080849397225389221072074859919862536532806647551124887249213001386568227826786303589351062086818307398731015484286844495562415497652354612121906304898871711269215509320468457319168906223146665245605831843701975163684256539694133595482951502783798954291663467761336946435846820050686739025311935990155522641799472872932440160155738236186967922580130321929540364708611665226667605627373262592882277207256392188133918381675705184416342899316537612447006769417237424047260597345108963818183806603929762309094312605402335881278361831851794243050062412614635459052691149519957723053514353531385354756918437559837264640701713051163793913313464121371998387735667267938707745957900944874086292306993180269998087059096908708706574614596069865629182792061846990534321629191210288671056836876813509966869307674525024577375620037547293691646756464064844942671061121457970913408513116089488082286302754151422892114515018438772523706641308923617796783298612305134800511640166261766446190682946140409271401015893329227496193524503263858988470758353483625745060355965278441786349635374384989368918470306940212289166525265924136403902164224944164569423941956900241728957721714889255309860552456191632857065675459108853824507493089187427088994860834666677660631503885379667686129717447504560769274519917586494488961573062197438244797681059763338092343480214647379172628998500105303389241367692498193796855952677669097755847349811135137988659168504501045745123328986211461097497773333393111901972201653129042648203306030924193298172872856349715859488774384180608915037295512246267162138011782657194334169977976611476148557762656152586996538420297549025792848373158389865425736751026610444572780154066908550537980274455301158468764492428097837332832736150255602344511686061274950322427133222159109564196761555931618967637316431049342147059829971024736600239745937600403341857671540339629754401401063275058069785704268556370442379321563986359648852996450957984545436424966100978367434773150812303228717656758543425409692748050021828409388631634616010110187066137451810620231033908301739538453990661138727038728811485936210462477746095849527295695957344761152353542803239309131564720449581513488252351182808437523225533660534561732984867587272338259198607604689051850955754729944409282997866834586696794189934013642304994611086357084779613787845710614135152343229662416192353030629649408551635869729519865543496360931170719030980702895999877447484998722864197862661168897302653339623509640519541561441660130257765850881713098889123534742455284421050270988188569978621260534797245316521843571418648818980574117663405651507465215029503100323212494416625672488931116318317760968773596946681997477969725716288064515242723112310282083339796185348084821001553951177047020045140238842657271050007798657024021675351228562594651051764178903604216897898337109097417638367631165217916153466938234212108990284764841952747985213903762524920354741219506127062431065821977549343771965437273951047327997707784707045944238573768015020144947269956994481217828814990951184654603617918265849057901743821747152124616792921931055936211973148188814353268011929833541140618626900599431129449062313828848591045888966935145759896678058043122158420054810755176764749637468252798130952669093623669826364284715493596376581173612025203262634818952060915315827975442958652617089106025272174776628307189294913927381971638492762362767320143269721123068759313804980568438424262216897059479965650764115967375505772567080011838335203935831809493011103889750140491043982820851269954270006208008577173681966804974311753219410066183326112491436968620883442784582167695860079742359603111771814323168516329475450433632620119111802120111020569244536944373340417103314491257220190690299450410673948553894683763882856306402534363912934183785297942082667377571286133003857570012730044591540848332491339834953510888906249898246897443875192137073301830824064374852738306858280349607275165160830029868339673460249724153190357848929164743966062759902336907000480343853888441948908021350385437042793474013295720502142676808611448371633299997715911872246347300165055514560516368427143322850740863439581792733030136953346491191846480816785217732040292051085427044385461163569077623970868972453988051422654947494234307383703542552906651774872999545373784421271271855266240517760321060532028934340042593039907095974507035218630805416399870759684433492415657939360190057097735410622279389216343882916252058436569858527520942436584987781075407130583079991869226661587162564991812883283359109356453632122233884307849782845497204834115780387068054525895635587451205727904549612112710095672062352082913478133025404149353809878075733624322727452008117323950750978942469290176637704435087726938531940094704535456039600564420153485102917550642395644242072244199156447110392541344287817393415922027866522265041157124285416528549962258572420867316111222131349233297463119258734481176944825062020577241564667878199951635796215216590699363124217440929215219832498613476621437689645149789960054226483339242827770691049969591568932644000252070848210238887221732199345680564649449164347728136960739952269156234014793497185836856639983161838979817301861032536531642111558927997177300225027533177829776507550555128579237654906255078467229332642850075142145131327954104829082696354267648070480261046660058859645478328472277074420466345502995518076751023968479138196342414143364451354904977052245844681896004532912373325045507644402278946551336644841017325161457577995398837717017204642504146450411599399798307452519252650163942209433550255374555366243412684679801376102283035316102961798640204280231912061000810178869624550258604342960805344529336148343728524533499014174275375459763553057774920162219136798630863405837260545066087054701488199820139446728816148889068473836112440687839548662547856328134189349988303429233189091339820118244546548137586487981827529088250623090330653453947417165888322985787239187144806474733302463712007493121204195747451081156392296153073913413093564117945895390081793191392133801402536177420349434708626686162025358847859869830102035667221714280865392892587673059826153360502741835860379942228027825661202198817658312528860327237250418841617291265469095544564281267919399214950403234054710669739415342908887908821393671952910599169727598106164534158268073019550544209336715128619546657106448096319601575113141938524171580921299050559541325825738165416588496809962969087680174024439562221506524360461653890575921524873197375699352339207451080938167118799371584275030111562510719694511819036211390932421851086539618342291107378235434676288231136165113271543126805681228239214511962713532345560597410914765369430470057120115096590966983734744637527355651724373633076993959997515789632604600396715726695899926071775296777377697599527992370460591433812206121395503361238139902469383952928948742121549365930716326121609880152798231825992630301841994210280660202849154456420011586156640160394792112583402870677138828881698759830533436951538398324513181959724378763558325656953046075927978199112304478156266651743195895617027037737555104151171094940464807608806340521856485536253674362091051598628366388324861779573983928228730304872802181239110726448714410135398067824269055486711897786178190309595158354424357336743234635940648067113705788163476597451005440611817023653732194905694967806119368256232659383890459469056290189427514531371975367884074250582783522483315749790839125932103749030098209255822732199765615294783817456698598406920946437495011010990795043484379781198157575174796029277845066861235368030028373269278154323879235367770852846140419701064742284305463408357923863891657067670689052068020491742776299855915406339211132977863459079323295600135265450971532947100042183179783868066472425136408831736780815439424833779075472931438021756324819563142845605800424589136362172821368821524434629522869969051194850546921337590090144969705819945956023437606576967633850633865805095322602710590972196625416843942718044740556678206544913840444124521655563671509244115308099408514458279635532097236189176024484747452596133810331297002916735453793678593892882536383580321271508212025173602209802012047327881203735168425960235513770371804036996173800034097698970273323670050259070848368641170916010168556642653606727541124504488345815673521505911198957127761991966133621778460969099422477830650829107197538943355337122470288801157849608634769931905039984855546171846506926137353397447404376737141812281474981412044521628128979867149117306811354776721789365165193847654197208644167412664929052466229612682131562910213676541268274040095576765842965808174569475372221107095316354265546148645536416282771544455542992382055683842257639282966633620959699782128005185504532801121909611805161904011788009493939730487858227339025275509808423635793647495522500388816346535023166537825414356388987979177133793379715208468915877372870279001432684189039663991156290657759217433112136624364587231644535565858092757915507857761934478079770536120052980120436594060984658152375791375356395990198087668553382253205893726816970342488870264246014230245263955108150212074623781189770239898178808658232474123355071969158905337923920442585000354150065828313544817464183726348462777664753717679589872418022674989426375291832726894566951855846375663662096755675884645288660018112522274820388877723038964461316748168942702468537486072194666566273321331050930497430345498800459101363062824647378048143020024230113614034258331759566695799342894712305383947716721803579940626565584619338697442667655740908804227173450056731708634691775013211443549982570496872844027054213278375388790202678518150411821373560195047152968210296011429005876763928481235336914636871746309108762919384212588239603435890215920099193117563672339151004305905205275878447995372948762336137314056860226928440278350246019412836259006877651473367121815238828173587147396394541672528069413355549383989923974353702352799359187047556244641972555977025309216717392867310178050509349545259431389480965368976764008608269190349731875974821419374853819015727906862105537262203908500342491902955237468056617060797028769977458281713237687390614842538008596859754978554767875621188234687173324230384663481297766797708351585614680195866202296766305360484185506641547869852308566645225091304960385606767598642931544687702343062554784402383429577994715865085380645043685684970171759092634309636713049998667560207651003819840875767219453488687888706239299649539322682169953278277583547638471249983393564725205873592703671572573812525864563150845308066837138724903552482203559761597236275505598772075911402092890286974852291905183853464957331196499378805614210388027737757372237667654512200742917041025621956508711869490068129099299612760447908317798474766072826366902265998916857164057666652692081610733285494353968354377538653937761646392706339697384675699887260711245594716485554446657583543671974940248767947353469788962479210993148368108158332716799426384400070893198518249458833653715422332552519516547859305523154387368293125061991515976790607113506449852956694376761789949045873867475941287685974654196320761382999434597986321402381370547297716270327655589265665649559192811726753493090513196493878342921116765370457863830862318000298389361726506186131275699028905309550465051299113943984235467584860361822351440928482786099466584469706304231558566024653413664872352231878431208664282699369072532711134516618099007456657924657037730275778623856824775480405435410055172781720239284101936434897390944892017100121451582449910360954105437423184872108832498252743372297033742388642502030646083534531058647344543812229249678924966889784439418805249104972583581834635738951757857512943157129646763260662011089936904252482952864445556762668944098063944225374341821541167984778185969650931124656172861917982652851943771366846257212962662006189768860868147721260536191339335425850727704897150621281277544728980301681565795577149351461295132350167723470907436401838822664191317872881147428747059249234281152353939778355599257692131738578302397086152061577470456187762505923632799220450747928042913466777960441751611175537887245207653163983803812300288791697857014412514129326305936964688268716032050459746207869069597400639733245524050017668653762516764260972899542302068520011490193885413158165357328974376904884804922103354336275283175825513410856233930501646353547886947540748368784488326639218494525807788839140663978540362918777193450755002389701526457221926462450667781608012622191409892810960059626225109359999601231627579773425045972927906389962857355193087811453939804632965672980358284001834215845706128609083231436941495989611320014379671508401558481093578856054292978864295933156400103858324434346206077035177804676871091511595744297835792807602908986154656320228171674768341040785405951693380755262069184827209495379812269966955155487230596711117528498395249742120764963245738233935263853471915561384629601860726036391154997265746818806809051399444738080400996495068666382624189159647729747726978653850594964648442159802923784716422829683135506681532345811253854044116031953836869340467753392068747216808571417572472533841310523888311239712565007202921903472058463033054188416267811815039670712695791923894023211152163741438923188706528520961780278138980810905645010111042580107368297147983465109327945191684246576776175339718702076109932217245019992239269623556189699271803389716087956924889327195913323571830530067698706154556770561156255875146783741274413441143512072742840654490977676109776803496778120512928217535847257375328227173161994916089855722484906786380326671008550381864099342888119595491229225229576822450560967810890562332851475654238524533580260228741453351400115843612116036930011641518382757490879181961816328482968906132360285280230295810868687182553220341386258238188617281733963955324580783676483592987780234635723668041480188608128357417374264566828084052581235176453431336383791980106640092569742077590312193306637476285143124648034814475874868407933706648497938737198135481776385983789710484568154437889942953394862622555294645544608662135832530625473943467442730870980035199810308492243263744447537905476884836138867973365823577407951810504843600735085178222047469140745417470739642457612798487167698955155694463242502157168516525992301136390502490332462321082677692114912686651280743246040935417552994494022422992021092966952737889379819524881915149091111055221868587154135315723356146992608805111982154360685512560728195858420168047466671597555949414075871840325544755907156153762609804342467094733277561917529713590085716896747732258749460171832728586344866085193549615720654159416610906942624873905990879003420101097029319271275391124937577578670003264513172420062151375047524101028350608626847712534473599792281249865814327242209639423780575980031409352794033793256852161147215264400411088672989772001642220759350943058313118460156569578788111220823175968990131841128855643128576518748322673365370843835893853971462964053628514480962175064292019861259743719802794292556217052529773470985864681260187061101590907982553164724967240463405082902578716172611779681341321273084276193756138353448525693220957531525006212081315673094059818490787670702847572203223307632843162404348129629377593159737534501033912402023922067465648354221852027970943559761142235459142191561012780412186711265764525488069105140672378846046993080694445718194403635250235711344363166625542140207694189392820880811418595348224773138816485873337167168523478191935516747239007425224351409835056723711599626558537611242630988260687090956027784408896061743092178943351701176944546942420062084809617081000023827607985329873307972850204172362803640220476881440628601775221034557440419217751139294195035776222788496451487633331071778626483238906544370844218452883424626605583146805931081409284743828971864335312778674753786798698465340634084351474360827632047020012459937858763467893519201124616064932920827156343203740446152774699096605811424544169395010966766651152293510529288720036867841983668703561114867983541572044749572384651129236122882921221355587650792090689127851685004254467522020523431016464675326947478504741257851417888061389899334582087103831571142818830023343381030614948759049412198924571425320853513604259038497489131760070868705984259942260363761367953923168340524437992286928204566325427992925251289616021476197869309883574275547698321377627720448417175622272978791251122673753647076901836405784055902009319789676597740057919142010763400634268505295288474854473895652104479743918129894399880067797492919511312411611812441763962059385973497570696960118442806784496782721003658306370865514357083429699247308134855201205739801564474124281363603857695044882024413834904489892228998684511648214705744731813476206989117639067270831819534108049482137118197497160928384432514045551582891078846862329963898207874826330363932301423572083879470770339291317074132825897309881174347511827977509708185810067623751853460855169443044742900262825842083012305403683131254516972845354685039298263856213511481620661918926843581507249566095890296344717189777320337913707956413836173054845669328453454179085773617628632975543008153574016369865982024616336091157842946388295498821013269750307879636763315586043055820298478163096009885613151591052405426982596257819179844093876700012572559527068584528208473989418562353075805130511944960897440789988322713052931474965696809230470695446534485996944617186930631379976201742269946488882124236707921692616165553804015360514885655686378703487024594440303664778955572814100977745238778678633948402505199329931609410132609435582273215857603655969175750599782290855453380628324086047301772178470568720530293017307374548980432903703708737645769922604207862456062666877514600005655508637517282002994659648138536452832350261283198073651370714346101616583591716748114679604685168540560442362403794327382272717534448361564137411253803391685529600098177142316175534932051681790609335453686072524910383662368063362271806134722750914927004570364361731801449141951037423222796139665376106432185212380425162694919069379214129639082918491812519740760095165660110802021296114600902565422252555390586710314225457575440220558672218338441323546034752229233847196458513700051309342469584826952690583014031275380227792469242505223392464615382320715319435957192380116462982960015854900613858131643778437742987657471285681161292292493875857288329849724866355955777979266508043518565251800283440399480427512535828906046185887748092356098103153735674663597217383496117987842980728926753694021246685727872742442859432292410841272475592540569974237844969465304386420692014510834491931588313790238490543409443754249253604205982225035112004080585283310999737607616849628693417572514116141595001330393550214511319654928777727689584083183872585799049859515108087722107321878044678796767455908599911086653197966007180236904102067469998201389225094781547397716730356119140480820130380767232918269953780357603395481343587539316703275469735461594234469792226784994655046327380044615376260293052633269658734752763949939298042779533160589956596090694076732715997013794443900609784115016680654916369038062474229966448932487225701422731732053643988254279582234786764746677369053924597069108934993615998616121772555659986468375707816932836805067384055887097881538886642794700379317318004696072589787008660882824733899822293303290291280928713571759060149637442798125960977614296132823812011546078785011492996042379982750663739671674614610904396564053231368421378390910852323789888464809641733764775754055994239751861458562176514219943088037931296580120948726379076946779965778754194820519223045852146209117637860519232814941736487193517075050582150129003077576329594964837588146256903069469465695914867205526955446007844102992134147752295063392064679533999220234078218014775750932000300768883853103145405780935953473673882587983506823532053203419983408146868892712367887964721671249108582671997835422722972807670922937520636147997871158782406470798384909253646979026316022197613139776051873125247135019872868242074643821550187154163783586764017057669480187473642996066374025022169839892748804179320686805078747467542423147229160058661618868831180329462359266380036619947404905388807752001501576603972155675563846836042643380469611903137265851414814753840477235177374900383991114046309404298685032677164449328823124758768532382361089607044688167474063322044911814709638614226783237742126667657553396016281248649858332298464876492312413323179510621197133694258278462266955081917528175977058399363598720381430914431284330479926678229281138127390563882340418979901638972522264616613751667448298785137359369058171979874948688879448010460879001631781113007636640826065627466675761804376377103671531800943884583249832633647931093290355866775953588617356613010186517214538149886913997013026250536659556883033342551073512351545643646563569974951478081954625686815111423381493249205841965279891983663760460126565102749706559889131504228551313405735410446536074027884073536711812652988742020532544239751766233362499438910215234680503976073350652353462517151705061950362616944839582015203255116571654980861144339008953098742488530671690152132316818358405170898855618045316550048565145571899856891110995391677076720062729047345778596242255308168262511211354684135134141615012508693739913390440245540235243367625119689228973943995828816412667984861693452489275059423421891270963211287796987257723950362353492688018433335200068435681673706076115607687559730349907294580511309579945713329272248681251022890522059535124714388496276355989980800780905318526846518277794662286315071678989752808550635821742589095193205412483181177322094368792623087297533260818393728183657222721835382016678866029731071827381407701475804618017289769886283762199802677677869423238472956407329846665722889976789120835182165032758634780126327494105383646988950242035099972419976642658069046246151843880751922187603383933021520200906274845928776773364076400666975114011075943978716761066307937980622362056224021407241891684849274167951691283369075258849999157796162842927647194984344428937886905881090598142313318051991041388154269852173666929633278670080364645675766161377731507330489793885826323926076199766266402766235678845147283191219159915498446949100233861275136507935865240334607017697071664603215269805545859322307590317235680636881351275166381052857516791039889784518003917562332277713797787962017191968522557753619008628021876315836578319062754727162680824940740968926347784906530078719777228652003878056209620581862020486516793453216131886203023067229168638383093498624629600394599297405267437347377633999819315617314015283260650219586821150374277916339122988622573203405672920302545474902607566976313036834640117263895926428138411465625270773882877681839091214123727230063317498481930408154464420056951766036758576572244889008151152786273824123841084217101601915276989470161382324796872793805052510716257113047849747049405789094253397634676495665966960247242273042902387106489947846315294704136516393809905383542412397654360753122314488822125876916417044137112110954892556565256075041096658651578576030565934910401779092868272104940508989683943804601524043869120500928701782938378810012422143392687689506171486754844849403621548780952092434758461815544809504731107265751741861626906751910812442784596636427072020929880920652087846502297462962320185691273297384646959406399240694795590764944488140747022755890123195190906365215584376701990954372889834249327874556254535382292116823949392705895417599338853086892442465680571324392426247555616041256499197355612516046650319588765768771469577068011711819813977188300496427562947780029054015486734796335163831652980785599940378785863042158587277907519761478833635712130107711372364188022127456264907466333829928205338572561766802277242499227321134028627001953000521828182685668718825125606635128980300346848192618094430394108265731541179447872892013783741449485550269490195006569184711704616511560366485443646265533285017741563367393333390082854685273717798133906566073955245474683968498477078698746604136856069547492285529444231252811855221734402744477180395682446186013212623197370708253982360512233038707350942827574563307211716012508673316998352646947120356106460172343199892910291580051414587076336185345318933320916479023916578754166970168204763928886403741664687716040718142263085775956653575988509922842883580930349572950202679980717143404167921991406696361561535706570920903315060290357811580722897246199022081438941646026351249386972146956333255574811325587150206303597946192697912450280232609586388561951988429223029705836393569763050992981247964822145831228565508906303295744020230817155193726648105071878761978209915145670237380928071224596358060050737337617400327992628182136733965679082730052233115489357414626865552590365992958996785689723274087268410930491995867897749958148728422487734981901464076509556374797970231099618712345129567160260643432574547933350856932995483788731207048957362516651237847609777689881060550753374603535520712945621672372368722352518646661794187820676302095702149741216181009379116504654745956429878978951348562402333906203444170150416423036154583412374976597291543571262761584859731155838813575946447078302409667212043920457380996402816733361356023278344308937321030136277796694742215363187431726107713826519915746054682507376735798725404755393740768107118944710651853495826222881694872716539844691503043910648155266645411315609731392004780300018319686946245051106767005178559398106221526822972883008861721997793257400016710683230418471326567343580858802401536935908955169519280204861362472843566783038467668432759621617031795322179005131075277610898664386011690584443985356998581258578719860247873737913153917409388350731316288230519497719804082407330462515350790593652445427373897275577001341429730353962390604380835151195453239402107749801044145456330931783841206231912278484307162039145571659480565531990212016388221074170509599955921360503841444482633476097761051943731543350693470353781713546921904619577873224185952439179354012982278842043947545883801455169010698230712974458656839125652354321497088589942566039808207060553081966503107626777940173405054892045121263331209318459786047452124922524435253800428095709321076131566157720063311661425596609064661306981370838517936768491261003291291017884438548131875627819993294938581562308403662807830021724926688935232620824775177093792139394943242059860628591637020571551756810540609916971941947631906173625445719849485504893914082113183514632177289489442200276836370513914269011005961052236079585981776435778990124287021991452009691225930270744409558044177507357229610784124298155706234777189678470956532824563161206807312080076643072609304697914538557538166199411157788356309525425392385382218827302847479554145586361354945094359747099253669456884846520326923296908717024339982873372718522508997970269452427558868957403340735150562640101358948731504066252349755054086464732514970358892113491206521916209264982346861577545062527007159734468376963882127004078318017600938643133620982969778345065752218005983240070203422782413892086405667828387670052292513687602116496636117745882543197833612674436916519961905895713334843818146016615490268774991506189548268821637872123856944406054375269640980427317525993974207871928706665480941407521058918152236350483553659214991886339265124901729068794904288905173555706702044658174256462315889123498754235449887330601202230679802277730668698563351271048012416872453395291947802405959361522034347211453453867922347014242163728407627293365515303894445025037468853738616377080762886326738586582590483023676838382335084639613237174624031002120330147754302048314640595674507272842949081447889546808864979470342139931500325625032544966477498104606437766837074575988386664267649354879053663064295972702478382340589800863423064001066276512341179703015115464284514320175184852904783585394072607358175427271676291652990594312251503828074959047978027043809004466901642309510942747454800066971884433170227133668479481594161209393075751947469842481598441078054634511796387014792138189519279135942522441333550002346155458091927170945197192892228393427832747339820070784972270481784515040035985507124329694479118927098297309984980911134712384685058179370932006807123038228497111438577166547742980873939763699607288116027331181117199042519629977501597523423879009210079337097955382578419050358125962170329452576258097619676545050693434412220333883234967384331345696846489271454102000889911433852405462684074746635978223922513121267244286850064201535748460154429338562432434112475282973125678269103601300218637006895328508784408329992563586834355705023102849571463634958111338407512020660489728714353061021203667416533158634510978999232871461113789894815637749101277549976063525493041002097235908925994726844376711295263655861908091016204504507485536855577579916355866007409659928175007815578532976932460444973259139383139561399295057009787575308970066175418197124516698751878488753654263004377496444073084190513618041327047246978981854687924920496972227214456212542918663889382116105343764264444811612848252388404290329370441404670889475738690727059128270938034628826960764369856283844787856308777496106946264308986721187157525206266607259683255168005887061012956799526242716892737182973113047507892090314564518582537607314981630240953253120537174101281592578057217595893633299824282398005719404801515756733459683572739277649546027927449161675402279242125960865523485452572284429745877439913131354834274849686870088105122761678530885094381872853696799531097957677958190200652924640388323533674142107994685919086680516721231345555665641840837759659299808491079897414231646536560790638559440129149437508152809313908248274668246749659023008994124324249969597313135923685937544430164129321084018939566894808351590748054225044791438969505355892009763000917811801658787976423467397221818687632778435896474959381117736582003009299186007116745599356009449768522571130757795076291367205875257311942089760236873343920464562880707958619220773155841347449972169818481717889655316366437939304024235851773336783205221309639179297357018168309947086879332478456457808811258586089566461153848174647637567329552652157217339693433059543389171693854511646122000227261498163010426803113763027528019260876519909879764285437084094922245832288240644992396889713428755717907978714572011135854119463757130010477980561718838854927748433192740517755604171261550676528837456043990279226762439925836386637440081475364628705255729826404962495803807955553713705581229958405439826858364748077931244540802679820109704478193000786372372844029421990870143393803306520664804044809755956724910475793936842125692067608054762255940626098265918288542013912295442105936478233381694172455114772620662396624789790055667851463489114628797838838391513584689712722802617502398343599259549417612951466600079437523639738018553404763397197415784058097816716265918350858721776828062751778422982413531112591786523266765813282355414783235671267569174069939485012105528168458746735327000647933728684225611967347791048160827223933303274530984515776108292415823141447406246477742245231985690980559329719869576422057016876997133452194140381074413266632190372281893437495057176277005140531016892993794602124170808562519476391476962126957355142665391533738563297818741915097875028154519139833588353050441868272430971960664442113148634851009190695679233240922999105057129871564501881658585624050200638389002524903084956009658186856174495974769305568749370036018852907159034034493560735778999140335889979115162670806954863508448725952839930735415008609026571136712068298098581754560218004570791048271172664300523808629675812452628654083235041907933209676143350415365628154466353213738927246904776350293117106178886061388050673288335498335952544074213592515055949683256808308297031714342416385734180253460467549490120234377642941630594664585214466913639174297044944053380886819645129893949423813033055688038889715192213874930431314521956144452256326962524643365241610489309424842022918870943029232029927736099771342384097250581729908465854607221376497927963727458268495073591925055700622408138274467218365734056377521273862228890240346239861581513126477403913333654306103631005107494515711402776492002881598952520982685010279243982155049554876075861483930827760930860437741057052716511984300974927724299774475131199913597236366292762032024737723840474668557759338311665088563310470341974408316559008718549887197946431504976019472970385257878093527482174941968636138616885906970975708542184535078189152228971614929500821898837879298313135493962688036920110064688357329957328803637353388381624795324145430336339595637355596821280445993243420731456106949004890158973554973137915965299188303012776943512026143015248366132597433010565230451487517840407149484486332163677973918453842977804932427745916623763390526595697268807540674522404575500900353626899823856619572934940191560677124951247507673885627587730785482253017623704602086161166439229588204900850432254988911613824757397040198227369376015995399688479710019604296348102842658605125866525945469473234643704343195234505995046419918310621945655699560835238661218483014573691244094192951839455869824042643921739498721202902343029507400062001670505009789689257870876395451309980864775568879363826817165549431614897996234437517454789904331993832155432993825839079537768555749990067965661680482979491793927519815808833780659081290744666549581930394708751507126411544541172004810952258466290196989534565849638160536064590662422055928063578460148139995404573640288713406918450862975010968252631587140494977301210610058106354395591918771500191185531671383566748681509333075846910466593976343098617409987775608394612769594320714406259209105070874123470231756445717244806959689441569778749564954743567291050829558148195825099643823122091745252678635083362944011813936762800558176706480418693497641408684532130446759930188770075223003344432250485805510070853211228336135910105291835549962363562594264278165976247652066202429400028587360199710489416016305799917487381016085151414278857810092894808952519860373061612094549890357658572869997684600330435412186989445476327358611894860766661740464637475597966320982771245481400940557316114011860095212513762746668376699053760082644872576509946643363481495541602697198299871627192992848608386381867331171072479777022667565711719297502550323895671309735171796376019098339727771801426066091219639227608326853952008874571844977804646723387114734305802860674640904042504292753902737008948871090165640506556562631562532218308130544782128388341141576029903208907447196052047425182959612794306427012240484660089596592302243494073874321592709041503082043763695034665893425547820438454027195002085250203924200879864103395335389708569641103981454793204228429604293108848670094206014189509080820774043891391535981881743189387373717351710003733601292055317749542292404234709795471427740461191524921582440802221248160924145169540670277161888427114645461106783693083306938684917485540727880841275056188372974737355699627534618005427844298108170942556632488185870692695830360062778662406758164550591268591845296421918096632049690952424145630367063739605505836058881812547512862262638913206475175459664388204402403188404365926381221997350580870561392189513282220061319813336480140614192485949261934538017301286599928781481143342851322948782023621379679125138329792511065364289742485787723619250219391959265944143487032349295106462126501909909886984033725353712266060340273074627952581659899389889131498724365070043954836377869503030611058783197425975330892989878843404614512638205043737925652677551519558396585970304302214308580179330430880263409498487397365957222492169317232118775060802146415196351105450387234185388595027448576309821291224555454441862093120484128390840042011177411727034953418988332355114583830758754245489277767413142709991854396001398322976540561872330239293687623388043129741261054697349288629129740945628304010322694534088202088990234133404513910069752175387170198554059774400657597106880736565021410338333452765627641715061109748146240162438169193654588578467994789663076496408348711288887088783199289732820969938430375180569280748142956328448618463539605141158570809515889375612091646362554759760608476621524054883841941284362700602147177179320198554241199583778828087691519440489470593706785424880154101942016275688360847177426082354693373366332303834835313235059226679721965372390456024587526623735876632833701128765483455115115330617222736617533769080589367700608330300502499620658247544992709226034293336541177357177139821115757565554238041868461312163051317137482112203405967144275907492746825919671955072639707525901394572753256912028158896049883657396621132614463815889380019104434742834621214700687410972052154089762241715524995176377631684077653862202187301376077882755549688612758810195406623567602243407666062963161675944448070312432316920272595253176022022076708639176861496927374210584265146949471211414615548492685083786912793088757339816426772802629013500605198491073939725939483304538107993559958891723881185934928921771567350064793322432633798193842154075424140470844816222657771693302967531328754844477554033229657933188600440927283152243915699793731313787878327274185276114117273235336434153730397523759065702493902371589304250698611418456281769624785524544831793863479640783183601586219127377489660891386647589768160428878551554488834102497776732371371088927480688136104940502439549117438726571091908854007546529790465398714630345384935644968895507484308256552418274348871112146769894038737278405957015995990752639918906825066880803573151371078007686776792928302692261652750293006347472249632092156914195553226040003625953629208397315869789842579413300805371318988879844579142856382361177150301334247624457240094395010952130602665987399948969945382969900737644677579865657996097158064164743280140169144077023860167125201308445406887988199445951105673779114215636787404770028539564393596969020339108309346595738106582225323006014431793527243242719362778735700241919801390236238718141225569498000739665302092971936283116964763270009617192889606648667096126364215994523167920151153987608589886633058957283247548850572135518048206592716640739009964363405006272550031309208491190336465359286647526450835220075746491757411235270067789585529107089853632947208432023516216502988835918280649830429697210723190297499076711397632864531282966678852381312586180974298774800411771168677544588175652594443182974095453922666625590219848471467934745237556390384445414192237789702917914671205181286581162968480492339650556129989058375128769638511501924993283978454067571849555213165992975522356512874826692933651108183403702286002492244228882944325729713677991032501178076893955181330837189831052646447640436687154937989566272934445334804241519196749619434046261555969994283066806875047700451432487477785397666768688872872885042406224713588379186218253447863535114183491300919004699379458445152906759603936229228097775122461728741282551569292736311384001244656279711069857043592007890906288249862558027592931379156589382319305794168930379022923751314006207730846895589710797558740769259735370967617886429349345397994233236146374951328036486816474039187136249002974325190941889772329498768987796235627472516964258473113193548530880215392310541705726009299883755551419184079689518098322769240011710134005616488455303619846285883083366658946935624983962304849661523833723348659454539582449910622650138929440202167517638249483354391759003826051480986302325528467969399774681785735907649233781442302926914124306485722022508034948373914847853526397662588264324837233627520130767430322860931284631597998030079373186197892610066851717577128176929469705177982807617526972019016253467296480629196765819709348358261606989396301502667142878350220472976354967366637869425191792099618141383541750644196077780021338798751818620346152747910919282664830570725605798574527109018053435687866368343236239768065452744279168186759125895275608869303329858890373571576686483946575974221088011146594738048876713021296933461908267581567051985196613238872057173410027650377020516376632466104580667435786916017655070466357936596597929250735162453106848845895784928133394243566780149802033320219583038968210696412909312220387126506893292394767259333201058023351352855292765872342926294524655044055187760747859345870575961782203695057103820429554451317585967009128660953332143277365138942084017048246300208759961486529573152564762331050201833976802131327503634069897867807278913351636836280265262547419965561136860909974230487180399981866881340370625237593196939613045805271868089159603816846582288932346958573629873239964410686515187881203646567629678286088789013614441749243025986009178404096865744117184523669292744320378011582150202232059442850880987545227230804358005532143314174986265135376132463041276488121631630493888742834952277199355203204355152734135141722525243632701242520489702799583186936771677625951112172866068539050218050513955566113503940089174458917036235093006873751106694641803850700021278237006967717497598069855437294565871371444384284211031788130938832811408601433558131412097839236483467340685539537385760002865633625895620678199365725769036891388555044060028865733655502451185431496063530827036567673055870447631645744248675350133461142571412572955718356753116275823682510328788355994910410876235487932429884723346638581791310048434680953658050333730713231715198198934477992317132327307783559142796801508673115685551408458851879901962430449061972101358049862298195962422853712975317668702117491053001372758323229928165910946364055916044764525916412725041255525487213662552145913078326781960015911994189412880277352014263879326659757355587784496877845821008206527446707825802350788782697697310014993896063340462269312005097294993427846131136369965075345869140597645880626132662195130634788140861993086742272853595773249472994230183134500948189368185609731625225316251513853853836414119685746478772066442717958913909833679749652368248187819424067603005295404050500881183681716297447415945508879013841057745186222197000208144890534647933969631213721252651001874574119511207725181196334541250150875147371755115686932277977322506237540252287582513325779212848880618405309403342381111726514739096865000509580775633759892679626352086023091133630952997388570542640474796575807179277434774013768937896323092310562418532088433902603531739181130200595253134667360061980793850424473670250623075180535765465626292271391507126490411952880901895797281067792314196490803915492988523939145159739315415701150931711151945192606252954250287417087168601368245356597329875443178196955641961023358289385496236510790578270158154185289786894388267605138341071811811419510159795086076368932313052045090282190710381060409647775619856496110911799553209726299832976484528786500747288967471652259365765776215187331939289105674882022114786895504956990840614180523192943397907548978803939382139909502374194341182080830795157111714265024927117592722728401423232937757690423969402209563082904089853152242901756273576956518184909100043023063098531560397927244098844628609855715821208235077766746646599635461959370833220068927844250485189667181266188978896883464849589948491312749449221531457372241233136927810476503255604179760321296674980454390506751819816516863013653319032049310966005461588744665189172332134790592255859927443795959856424586486004121741526381101572322141809013408778917015919546581686063579202024707847862173283338189426576431192657908316035799275024758599535110255784726307897249121548791292716421006106294773659559992019564317307253674449259645279686178387271588965405464597362738583385586279960754825122639877030712510448204758512536945112404539486471188307864180172905507103629091542782414325600965685597009653052772900353050644473985863920822478387195441582814342494735028521975271019520683191252314150136879838784131301654869640533787729831412597094070660258575256668048208156298828549963195742193137003821971323253247486737889723822226584893466602826291815318641945042107537658774924875319972247049956980655727521530698573970942432277610052974003946947142650059930006940667457110358918347209864193812879407206162077635167321493003445833045672383859816934285892695652889070028513898848022121720940142961901623100431625343180047780929387213399004216276401975398059349395382831256927445099898461464805837625167213967007020931814413934294890884062709528935050224565870428462598104130227593173445597099879778924907565664185391682555939156502260767391384171688535792288679560418279156683199609863780961967549081782230126154889717287817271799129115618658973131002195993050241413981816726594072000076861505226632341966284142437620960744177889714696854694604966754740739510403876780211108406137657361588431569199404429914580535033073330741466822038923815072882443255049936603873320291596134085343710686088159206562826921655327139728949564011251535758120748810860444306641926174459930526232736825737358667514089817203473711997246379083914656305862246361366461279714427814543589932258443740744248700211540912556265169357392985612459426850009567867825929541731803157594302686310153927223660101786647807696522214078234392686062587496260435291011222867065894915146204649690028097443349353489347686528946019363372483622714387385542120793200884104253151167748406954623939429653345084752301918167481680198236870152289689354593482731813099001274898400060355897722953964552489021243669601167177158080200161641687321108903484573317059930009810485308703464975507006637937969405903044936877955625795306985679206030455212557799535091827730394690586692782472072745062337091250720684917456493325791358573875966764241784690775537215213963256112204771292221551883489793009852850734833159832251997931421013213184529300520247604962679404539212571104278285067065580310178045775985269571730946666484167708958190260265903775176262823584126489965260530089077103255526727083382201985457383811768619026869436063164540284093336975611216048735733580465298456603785680644273854585953919161523720701281730801821457888884352789045505386825857067794023845406715808218433081176645828457661785805077916954054919339519561020008837645020581434229368272744426659106741760698459610579556150889103524686740965625955819308863316061493758619798260553936993375292428680367567920092351906503143298081697769578346677146024973420194899866238787342151397555607801317898226064293787868156325790889455814081287165072115294014336726445359824975883490825340874612720950194343945227880642969134716571935716728144850439840981810121562342208649951853298369982451575417320467974072151901919502123410088672154800391235896584478176300794337772466706607414843060883193760415582007386900539608153067186333122991734157573098993823082336987114340838880111918117370019007680971030505052232152571969899485613553815162328080878717529249197347488779375062563205396162314553962045158537710765452124345457050444736906864104047083513410985097776557419737372252222216820485003760038069360388720171390919596682435290397997490694429043726360952618156119393889400904758115942713018361488554331854828274110295817687145832250628291173631686407037013811611058423362954784892569473743891460592852251182461242523510063287716121732586596094313449854844152912147321168869567851025652345847912612234227753432830344279516337149050213686607058285355190825425219202452956081259064983394242124026778113687053083333866857891182830951296278028747730095130346161487003846982573756937039674948890208025014195376603879308273773432144637666535182411134538711071980280724800956208708595684430900532291238643186424401086394727483281168729185651586667500039224825205038924667152119353078114559460885747436669661915303238697572263516930640201163432339288136493768658830038855343740082662174176590208444865491233083048204379750871072529059570765894057224958039178358547888411564863862216167620666312631172559814635652116066484206292979340990442663765037628137409599589320891248403405599519834485339777351214320148312286929819159867711477617475747908006160348515856175934112411443895393021857360327926966531844905037625691534249595229611073887383352024772512888456084776096372914106343664272352769189599224606769997701567048081863978913518774744490607995576863481941348929590561442643546858399262586870621409571520336331515456558095091689368035827504848850872046162126007981221556493255241481391989411358511572997936104898271584850059156175355526542616649732409830373421089320683224254060586230405928011342573978930877600426102347138023634232040723730304817148272278310016197830461005695279876265145923248801889404071289941332203086295563480391442696614485688517406798620594267661263475891039957458065874340085814202541447985009157847831365083157487615914259208402637279052432469383654695704529421391996878671258619612420616540827659068503866373366933218026679193347927839127206337775912540767864800003826685005747189146018818263825267384058480532953960836598835260653437725567266961206285781499358082892976257189258574322561794704547194760421395178894658719926714624704863258493652415311810550554463629609569460294132226405529565447402306686066569448262870542690934768708775472925220155276707039664170696012963984121411056869089238126178748420098461529267994161597355533723070829138829396631472256007261379831561168745474990194288073927054509760331044450867994578397652129179162742080305004312388347042222427933219921816698965254872079260147265489109847446657105494619745155912994770821826747952090549224534354080186240351667088154296978571488587752308978301922515119561183304989508213393365748722225499110416440795824453008136078123884865276034182648680956279134413455025073252291634933682529753542386776208206475828349728037892263463239917550171043864021203300123788070701789533646301723331232739688138119723436590283679489980438749400862346211940613072012312342841984791964323234398772398880049838479214437765196814174216479494897683834755975611194116204514752638308065972466047605821815251255973931906147861759751539153398627144449631077021108642003325058545814268090343972111423691674632926190264101966989799416452864290484357820620530394784716054024274379232491717311097595663226404754497044020610934553757074577703151868925368513983968837338052741675655352920687154815910431964833181556742854893048168553795103624156428089077426452799849700608898791228699402930143459442784853341396209627308373857638141080337117239133843811235683101868764209081659005697721737033764941842709467045682088536203234793044306620271952578704437364139375953589277427957949008425282702767813391827550399985581462584050129955360225868809418103832745939358067788841106632265491199306102424387324577903305679740427769069993854648108749291813457264136668818714196169871824715545564457653360670652493869806881631423177940216092433936472425423218875990923366066564759347215179545207787034071241905851711365576332679413223634980891839183048760097454639254681273959151590263017565393104492536502910129952492344499013443942850445278997811727919749497822636351106133966996205154195711959207701238449345396556963832805852790546816001982279586127754950240728855644291968666890489004902446944967521862532954363397928217685294183592822341341267440493299899027305556816498678540235977983988920724079573694010742888835507506664617714879703062458800555578553368991296443179717935477038844454084685104346534159965262238171853527635037485244486721761602231845468084809943742726567568436797566007511481657863749627402040614629821124237004135486919201900786505200659591185669301144434016446636303394857947280678451167225699863978915935451975573046921495464641229561544932663835812135741303358027659452122373117688380966054590056466973710500385044835081738558828721317318333412672991922770271049463522804206791297871354666210010269758349597057586876533273051228484170657267802813010520575526802391163638262409119383111634320158944928307327238394781077108127251251895049327359469724494852735271199020681871470877002582281890351737255055254371209024444080686441415575639339528958418721516079592095760914338530712242864041208015370727967488976318832884798857336617648471927791744114139481459166991726251849922885502398765353239101795953866117016019110547883501803680726696992368549302922632169545142453751366156042750022869753706164617111884036876158628259407147310886531614365918894042286095078577831947963129862864210966850124625350418540434214642444129483184024812453938154729684822789941400587093298612875359551151575097851820044897561232337380838456293901257923206113940362997961422802699927376988097107563770938581013838624448303921217122341104473524963160256805687115836638003478307833450422337928006731651170942936072745601454917554173522141823525849649328948874686619941879063535340755305177076858667497545231193045213054667582344077024603650508813431186068343490503637042380415960118836628807392677915574950005817537865899109348493257679891936006704046876800641320451118802865020489363211995508512168169152490642650555289633008708924524931680835194939119081508215892542200327479421325025794871417409090721376405030578169221252343763464085383240651364003448924205914274956529846138399578763342572299494074659187250520028016195549202910486417421938592544598238952120521759226516303385006856649602513741195346929114958895565171957634721430191447211081879411980895634487852914753680213738142462205146285849426286756457026125148507680092497279688238196649970309983839091649256459697011286775854549044786694376207545380701629425826327307343137533615161240391273163359036512168242456346039116131964854837938805566638275904955887879377283809433824350248686083026522773967890073546187761753985148438722402491938474137655048781215826830871888142641083879554077111603509221078811452255804596170604175124181087125956736660101401814193283307194756475496502188009716400652929067656637007626277562790701935390717114656725499921988154071422216520910061448890183161603136766200453098970892276126004394318369763279369174751240917347061051166295407585169228819070173659843773378613058301994430364797213116826124068457193733156927605531239303511480087401501328870169679126008279520497772803212360709073684645410106696025822397113327724684330356805333183853240419504613373325107819052656022620551481851894923286837708972055817739841002989141036664373114085122100926280932138678660720905733846689129538744180375520543397680554870082027102838784410442885664200495789374211764184860855914739009755422110117358987630414220881067329734976184789820127040124770463710684918741104304712685746309077797291107720558242811024825904379071168045294147425741467441917484462753319334792106771675073845518354999060894189632130276942931146880576345871396243328801944679487964571702190303255331446822688723937810858929696421760899864654129361478425074756769457176123261482231511274448622038030048263686766669393808409445375658669511277054812912059112108534922017510633478299132256930727564576673691465388096020425083501693861555281216603042577750885092608138209961051483307641157194728044293171815123422981938482974175189995822606123364501005441190075023856796155486272398270673922984654118668968535307394218054227405127897549352481894883326564295938235032239433276850401356353544038351160552200217207551849178129023877402081811050477319633788489734938860444316427928029500393452348355364273787240243880644650251238433676486368531725530404075772538982065953583027026015709485509723508793848118989539849046125663080760088756579276282707934731766789030183207474466072983562767635539620426652792273646759977239087434919559477771581467188561707772154467629407024840966744983128971902288410523303408313074964018225379861045832799788905521459979196232256815828489047135475893940469618695058393697836820162003730517002313902784071013463668682970261717747534258843622017405481514372364714157563835353111908650500796292802493450641224393973692175959360536340981224372292990707951880820622975125045538827489302761460666723183175732520408802615297801938438412820764680897035488355415852798570219535016207073192832797822213468323351484951802030202360848533715619983750371385773352750844426041933039658929939456287680159872773849518963239235189143984886654265081805752267943581497411150089716227886393485134811142791367591179496290867333228962883324080604270950244290279199286164078922883121371701230297826776744685316386019669604275362932085882743349601576561617871242084555482124171794007900945177953331242087239654151881743651828104762553888425021127929667453350675632774369114337290637868198046554695022104267341658128165671310999023666046011223089098446560274416430019492281798429351315020709538567938304978527830260821700345960525844573307773986574740204327915455010109351531950223888297987367975797506307298059081659318772057834784106624804889928520362055085806818886760329338371793639632176906522833966322043820547106451569198272354632159164563212928547077210516888177640769487312027367864822767862170004357800549980802703344016660719716000820152530663544051189237592192970525276844889321627744582227762350674402124422243169564611322262314834412660957054271543524275924608942422763412557318657858997480813895528703008103410946171177387510244211183692407925302020492030229248814053332448467290542600782198609018783264005499766497998710627193341490763773879129190676475142999595334383492154156697719710108628242172981228150818764307698242864338692969605789593201394948102755114514059449583670523045197812276115073189541198326510718195203904152584537813134590306096269714953281587838986345369254316476772196822759197095176871586583799380326833975248997520239414794451847907989722149590173363322766259588242914726993394024324482387580660920430410839132202581577937552037031690683309967438733254846931831200491050187654301438795465614029658331619643884813458437470522307330585538778980611236628183298624955648395608767844070604467678856596896421620542101877848089980585632224264472220579056027543456255652391379292737197570641552462269646001915725786901872873511726180841707336758760184172009326450115083566947481447587040090723368803722816077515305407086544910952722681727573550404851667389889220495842100898114774516542679651700200804067556466857048767758183209114127343353808629361962610522200258315860246663267838310721795568189670258381432642191822657221885596848057537265252539247965488410395782795908178270519835424713396154167941682678537629721919376952686850976886936868707446839460824541852262739959626333915922672330228832026565660874107343105303817589224662915236837566982560407652058042082274659224297740903304950777990785758556621666694398519935146200409913365504736876627492695476498946901998622917990692808157822619697433877937612837131574789971774316511713845065674544706553329703859628854078687762987668823589066528858908410568600480570807641981015976348109109352573293283202312401588737317846233076409720680245964126333687339844062082034821068745799597817990441275122616372083077336952363295389057103948200927328232283225181175119835222266422016111814078476706308280522722418041144221352335297352414119160598174201833402695897782414350953141234805130420002466399968136841305614879551493178615974510812740551647935461226266671393137531541929031912244978226305954225123875350744058925715672776842666046696140219341326109171306837387224455012618950448121272940485506307140239262194447314976871408127489671646846981981041646752594584912232093417539057682461968527388145368986474464431623655619947196597136407281242232033137857064579364154652607008199118702483229810810638542219229142156072568676461075739427231342059895265024417161004951552054981284139227763315933766690815989185510875945375458240797596667143256858489181572306911418044484596225075576330721096649494822787359552804370784110976176791195632749459102965767488289257410209809104391916774929261772165105960488219232307625780830130526426461563900145849024505408108009593335158362651435670180205532214046891161896315424716344713951149022682828668348074294818360281299081554548318751455273803061793865208219999315934532377685742396539258129979903928084833883760156963458332601063862279347915143201011871793371467452688474792663702312110590718604223474631852524849261990359743856600332335493554494726788733496930656347648153162963428698001720714290894429717840072067810446877229469985117696291283104761796338893235603857070613118342822917111550293029584254605323400403761100945338580358613642715361636373031243391840778466073953694555223887687263823545545203093044320150663837409146495994146166154857921609286224873994100556945791865728155624334306175760751562990293768957401847372883712907450912762560581259063216991454214844040651138825666804472765070773316276343526151488676814863566657743497665723730688824187035084028743395584203106400894321521934113477196134469718814610202413559090164471821359454582870637305353699194002930612941569954354134962119821504694857500761760386214422861041446128565791343051664962459250688820229344500156218248150147957152211034228411657561740892279526639568991631550044103363679124066598181569144131748902333719224261804230255374509900825780432239707168791260686076353317373991228476408499982894977433427259882553458496916945399965564699021952293404900863596432869224215721458625901187801245994695705439235871272435380835778737535454230824334776106905005247251274606198310834105578062165645091817526669329871814648077619621666987890026194432129185857190618196160318816872690028048220164379934296731310947152535737846530048863401196413674654632420970043454094926720291478934888054896415466490650582653466609859295355562392250833919225654726698945075046197892955769505817656531184136251700860361405212395873404171421896763711969869793461179325506310638474661318883285568678714725729502455423377380327454322904972208617673162568442683135836788203187899602152182326264635327532503567523581838987944607920706664455513353916232143586106834549917120630172335655807405695968992400451116422859805975555141854720870166334244347793592082275670123410187260727830644355939182466135734216302445027576197057781070292799243779786274824217572696395217883406346420236872168733667401207715763576285988010259274875540407295742253325593480389873249580112291930923741277618128287162653620307615922069116977218187047164162954497645011375264279110914567705282304001436431606801713715824197600275072155841239135880568701210971382154341045998445607499754964336387091675451324513115527941484931295061622570740757095805970997597036068329132055873888994886339333621795336999917580937880768153538979651742875688172170227585955675609446589310409523522267231250952819438145595338245603451021031088255895045237771095590295883721142192431114096704138606661757492808459443529260690993926956275047504646212504797305071799198217903051187383667369252549624011144671914811645230017612002893523136296179560974062237046188696830929641471639153357476468198096789264279738715374589877175465122901839396995748406702772468085229089248677770006221330931789168918393730737775023142909410963089819062455123503217540818651173915388814520415900440490768058324175165197887561381158337048427949730956793681971066283987247227159426829204803848435429088556157454079259864384149411400598935928810582344039047420589887603649727026830256122443265976073882760681288247658349445966931608012852670302593080059312774083510005950470456588157762582437392522174458153437540725510376101570451599776286232045571910787669212462985977129737346859490264883042853220819088830783485028619463345596712912211141846860618829386242145199668519641915456780608262078538958095622058757054415341837535538158489932051908318825620479373817537573837984304092050499383581941580499132755219370676914800735970046874817917308708707917067164496628604734754487956891294191652129155628339677340582642956847668441417100378461272028606302126895400469433373068950030485266340963501483296716061006709200778142866133988410556791353216177806881173090786872392736577391030664359490947176206648579063572999118670796793779881151825749373321536172173468058581645537926762644776719831667588296768986543002223824951507198161995307703720164219752016667077068950456774094502852570949957625079817331645950881500715063865113621539379914628570910870344238710936196759792366537613670428820359364189524868339645238484968381473290264132256206043596961650750376168202569047725919857916763273055157230234986274875217999531556968857621257323168712303857158801008635784197096643141451565658925436571957427153905818354105590672462795571288170451858084574637558836992320978597576925365525097022987185450906299563701462145658006132103450653221924731493742974034065898769887139559908585482690106289900983649537873888743548610488533204732386115690076975445076868137264294637509996922659065388481269257180725963457325587312908829194947661475040182480456656957859795313990555682477107450077459425054100665959594681256783415976267004378955135178722539073169268450180948703732676433096496786003669955096896843715718148039754476737581521913860234441502939212991225901829731574577896608101829057710610240104845552644707828392047883709981458037018492234526558670532228482755575315690281677428098362512298804276815720524907590531534559857165083410641264396182423424669307678680094377329529972206482190824805395983684996729969764228808504258841035908908892429059368992171657363567964008231052763558163228205017568098673486938970171431217625318614499459235695689342567812962719573930632123522065132224607364822209816754447649768009171391688688409251861705857701782905858270024380438637809103209905060643206405301968047379001788105252936490143888023820829687991616754389791777431535242520518385477113114191913760971697645135530695675622647409687538172688139729494520923130846089742914206177631778655441918822419400311596647845639690620521404755165488390388963963462472727635260544394490757375885371614756844541270646708674466309408144297252069558624651232644445548229546413202060263690976957768645355058808840562859183933578992574189966969380115200571593099299870932397340979964079695574330243705028903742390851445128876188031912044831730730223789867599358084627301030346023200545395664735464285076007032117699062742268307595541684075583540422389148519313161298806903141866356307644260213790448104712830972346792922772083311155932687026827141737800172166049933779411431804519200222939519598027264840802393579785088743107059274282625823007898657298164834056111524069080036151698176849104941748600323019213005882151891284111565447199297656258164338224232778849236026837279631178236594877507237849179616795435565033094654274537007425687422223976774257168930811396195906514381933793010077565464328655485235577801712637889770216149734096260426100938588397683789277855927555122770698753748711624326558507712514396543600975692546171472265408763734839426675553739889340570029330853941805602881103277625517173605176827860862656489955843277514669469298646683423160090459772574298415289580667279353393449835095916000484545041103504412236038559970799395864635565915617548164009423561973221718533350965878989479844710408404438395838211481582959544367016259358940318782177947059502489134309594727939168791831345559176853992324091440397288357042970191373963772514095810832155819183699676342637508811334297638207141497778462370106589689799184786463832660643956029065791076833387565778195115516347995984280502024590717974663139187377207599109990239852708212690307375065470532121187560343237499243388745253095180298675143556938869511854786869633297458417000078918445207680433421331044873136398721001735976643368975444723210801226423986752418381221441132438627765315782530037590672848374276587164774798101844700955628799134828045659024329453401334260617177368035353729894431121308865303202991700303626234744126639957768641227192697960963262806489225463739486475811580683254916031097525946419175888314545340673801418334879871519214881716805867637595123439356514325497930793168035104672705308980931783327072913612656559014582326384624364962279396291803568358893570600381261512622005322644819278965411156462476159270963483476871123817440668576307211390128368418259905824024702678820260913162576826786731107499654680225588194823891694282808698198995690285369042218873566431920719981260539104595248488344174663809185079557626171418195110225471323358118416797464462838489743029723795686803499707126533147864638261243532350010367057496418862021552951735323639672360347207977622664618169935775256590715651448755922845413379060847475805239725521056395070414016434273783470905112025493378785151280592981916938996928353214865810714730168547870435273648388108922694707442326411715082010930104946763901733446375601231606161908703555019135313695976670378523188437546015040860459417308001012968756917377270788850672432595878415718946018746427494952167674096267080899655250648103160994693759730275853028017160586009059597390965323073438899361943709455505208892879450684594466823294598310008537887739784009575149409665552450364134953307591667144513818383074517390592904069226359010212186521979414099113059819767260850813315090736657665219730460230970610725322519469236443151694334785490939931447508202408926352270831149541851219750483073916481975908178228448953971698874399908369981309958129881543913148653874377360581165664415169158007963379110862253765923344161371252156112129850755714265017135667184694889586633085639130282630907356264842342021526716049081786491527654563818337374138631844405426251801465799571591958658037587858833073967677329072531885523465368998882351812620597855780257243317794999496555513964126983279385688236087898130552867778432025999696485425627832751814539191485014419832912045053399036100877749625526108362616387070411014198128124112900423537048065644869070524222739989953740142493198562706684507255394110844644712009554107369168052685457641890134835753039407722765642849702553415179561938756574196967524672276597740464064724124935656828312720630186427408152922540496550538606434604857927878875164567808602614049016046269918872011222533973622299886465557430249796496813028598056255096332635254148228604755835866559974168801910578423424804484849065923748633620557369821225403912820665655451879015519949198827162119685057413213553357674921431693056772684079535309338591663846282439965674774020722930756064189966607095517375097789615678996823484361364882993376187552230020593413376742917858842898007864926649506039549564403430415505923482993990354735774657313887568663153450212651971901585035229817184858925417419710552113512210857716031049334666240973645504192902039294953608901342541543449528350288532891684540625930175085967557019103885013202677005209068978683364280671633313244570196035780451540490687949139123091624032122375862093023555482441744001064334001745145019226459416316033768647283367551397885568369511332264777605539516160910616125997583610958181924388899140042869016382531378576643245306803672042802786441088604218442015024616316265088962170662098169481627861086752994342068499938182352100656055768286749968060883276654398568755693416742298511173777233933483415038141241238104252463126890305847800655734164231772072751898749674992231838584720687582202037135150012142874607145092304286765542844421768446116581976330542213724744111705457125356112159094290759538088644074421208575559849146924902962393283301937463267254161904937941256924905102390008566283189815745571127217970184730828994271167030343457180965965252906128235671027885211563150268733107592400491400603427580559274210385903975015061587155259136243763160239478132814832017425492726977707913588591109003242244310389079793404387866602782096905648817514038706756161869666295817574523234313596619167216216279168718289297061765769248195532724118566070221547557630746702048193645170650549348894600666594426426866181575112677002611168438245192346782444322463146866577357782011171977014643355454422549409948163805129635730488037339188224667391198956971506082009946964212420481367320304368409679144042883837077670910846708413956720091793233230120666101357847654803300465049408827814986356342098647611419550315547216944606402238485333345989811845617468586352865878465980720174216250118405621763074424966938815610100729821443416052301068247772841109176371442897944571362686047332890318811583943106573706518203980804653829163123471537829470792282006688516765505048544780816394959785311199433305470932815467519629031475971848609547498248684206791732535051630901780672563253819025670259367996449757484373486846210002149535935844800750985093282834926412967182346138427696353728707476390190988404531975919459146480770842244126787645596383243386778522397164309848828212455389327977482020556052717726284668277124672989579368992490495852391134566000564819228500030923665645193198576197885857087963467144054279381127806628192624385254044316435198939073897560257081017267392551750556630652572974707469321558771714884589388487111746108670683032489439262785799128515052024438118795939661631206437956326583201137213049529313918525790352422085240409558913454434016820430440129260685217738101927107572937979686890822656878736869887683272630185219424353055045181477057788177533879598872589804773083310505667454966583257603582109739107260668499226322921174284198957092263498085970184639186425317386183238309932257385742036952660307992328635439076469756287274022608571683937007537578086008512568439667234659986545394082145610618596681853029844523894976711453626542279283318087115088697134834557140794784389917999846108358379876616802005425832693101632084058105668205124331732270302268440258147054327704397708223930335125484820099594214565800812714989538363506394778076365160712844580441817817974078780978943642287730063512184750305040189149075087385386155286570748807940679204058512710526878163601884897116568635422522847449376553738118701373801219702293569822495821579266207072394977383008285703352762692093529555590179445196167719374473319817902545577710649847190185416040069291823293255020976771443747922756233930008510445964757846556425504648550825974404761052026369148757042138708464741317231255979075708176986810192540167382483330623278437420242244333308453765322299483056429831105293337444137332646432421450094180921297001376585774603061006850672156468477142081171668382009696540618274643047575864958790139043199171700185982355731526599715696107650958150086421924947519952170558878739722301727892952160872384341056057907095549829932426297686768633987451108780525744920587630402036843746597980864701370580071715517491288625275418314147006287351997704831768419445871695917519201938925615170713646459547683443910695662207275254071230770578250443925559783600103029937822506206035878690322002987418808165849924851137521851823715558186451587698419746514192128116557694369561082195915258418570534526334606500475907618562958427532828718126804777410163589304425986022357255607935862265443647853147953264081605731763206409248224069115476818605222177593651465424742690473578258061337405558442384627244290627308496810599728077824749097604769332190550345097624620817690421882652507895423444363140013044492961361908119637221517197036929633424028539259837981868662249136913179833931252606873343468138858706822697826391963221125123640574437050734638979151612563677460180268128063851688599313313005566929935351026538493823229694720293767544988566066689751510972016381986566376890876418037925025765223858544053741966237261898297794150137501638284807882677793193754127000167907689807282888609165717734911062280902077438949441611935561876862154170475036194087839136284394969327520279671031955801485765849632886340182257852513570287720037802597127706948881493770278892587045151537919805437740732604296547165769399342937353971439731426389366304802360344717996034137636962852947850241821808477104549849135813455080011245084707634028208609213805278325553201622854495607005517760619960397284756158125077812734823742445952847170273670043562077640507210918128114709887719334496645295275834171638114256620017654865632762089254233279791801906313181011500493085683105048923247358223335900142421677249698381224382671039328700794395183850379187589602467881418933161078381328714106728214345129792352336630784771122451767546696310325623674852303645232429590715748481963679983056347537189152901398116640598039440851292798938341780487828444151743079349537095737875269518342134772775823242610413814437093776982758474706989374636936944148324746755825795732382722689211192557301134416477671711386475768110625732525551487568349693841792744711091365444805098692202709748576250952671873509980956931980649575871985571126227735724622734252655092156012195784456270858725241245264638309790766654511510935612015429641666373566195240806767832773625189980421252789711361584592462510512275287446280620533983953126472300153866449829912092109106796765900601456468717129270661834638662804984385021441338428271916852851919903450553330830175865304517562466722996065317003953948124823472004173871874159973685754270201034040371754701747301654774609607056785734228387164368175905209172284042761993702425548823027642509191755363127484567854155815792823550934178644258798722093000135462030235654627826804096059786306058125813046662113310965773801662424349687728042900669706708474003859615619610297776443892591707860102627478450730553510680549852312834764340641812888263345744901021007064820950086158687494304417197080509504794757758707697682453465866666168746789519766961311316229981073683187098510287661267874865899352438571067718306799489540659225917564148217341820182921215097339258227486254107801110231256001259015530442784952083116920054936059342543078704111357447624287540786780818263893992272095470904045384712073582638569611758331435664292906671202033367214447789148491612734015962538916238840516360463414274495953607144154752172610860336121328093573306761068805516720755643570655153596156258596898345529082695095711430252664384262792050454631775985574923669628657173998456354903594883010436256093696569082718572179333561909214080094299349428473301930967050254189518628708622523430352957130579330635785733706582072947422870145243968260537361236646376983252685813245378255479237297413784060336035051836743049452153977458702239103433028363983314302031756093055226777107667291769602271167782015971328870918952508944544777896480614136713085734415658187933183777968738622774449227182215598065898822073080749731905893442306249500793131428882673117634810414731999246106696766697993981759467241110260968552978663196277522765037788598255681646258991406184999891618256082092504458515294099360659896347727439846299768622092987094424493276738102496313797939994846909491411752565473201150643769835731751552716652181793758448461589397449183266117220804242806887345272553286336241070523216142323130048482974500314781137585383957151312515667366630644909801973762850182833537178401493664876357417492418378865009280756553425788475313416611257806008642952262160612189852340858911421991311020253038466614058110303303121799595548816705591837139971842368694329084177062003754673505596002100476338662213667613723493288761278456329463935552676441385223463120204574430304442076288076240040260731201809131499731070578601875656806243454782002076398523296750069344147786301659733384406586101098419847161910212337848898739556014756215927466228209573062739057943832325584098486924523965750192665093992961207787980760781865053446157330009815060139362224207936719313198240870259038120165201088620304789819721194174077693118354574227964404261705022038609365445949817849135001664527635595839301786507068137287712737597562438081599177319958859373114262050142031684499113404168399047987168027705531618605051864956860781259640131002243806026362610035031726406068396227978784248406400091668962121731080278424751053809943509741674749894007629877634148990735463988426172756775496607830595322131604725663785457655466001466800883848218358530017401327121550423810134261716192364615328057568728279762824246146880725101573568306071361453537909351380412902526561828014404018590537368196839243982713242927094120250245893444856241969787828319986902360673892509999219119864478158029419533012815027180988283149039682097685104332541283190790381334617978769546254174379572696767217052437855551618585154119245400151305441952515545479922914869267233232122259842345511146255764695144401982332389594666149963273013960603554371192923548988891080368909057358602176416325971172563467672118123374092029465292022172091968163229101875976815797421952024459776565315759416611608310866119449672314954398966569716104870054736756718367761427518353481597718044699628439891940356801232429283655252034267337532970767600386685798576028553058169360100179697673664534435330739839541870744971765499396257042173051746927362863453065661812245999766526184655363877122609942803497355625562681134432434952905393384869825181393015142989172833461074320775208056703723029700427943100846458713817981557734419296351957156765086779084569885033505481633602580145823182575177612729949213308287567551931059164524501562389297498985085028395547246816128238362987542768263892964706262593510522332357622050890152934963843092458429305422880830608092799178303539061108585338954854454508480154628749405976676458596070906909897922742315678679174600316747419394438973878432673863775468469457177441074978379320447179018738743193125443414204584239806503810947426436094656161946705857485949600513486827849312781861923639214446842559157127946634608594794213459967878597500843426292498339971123943051807264786982661553309297672119367895402154124444132310251334521925104077244487864992679801298834416771142497910030628436368415044673961087170246082991562693669488075760788073571105917083875850501707476589647298428532017182718342812544206700480155815223495026594808336123718605791216977910315696392641580688373023974957392115600211876801944118031074253819150222994017167957058291304459053028177332272292398467939262008083799756909474966689032094701213240412011347964168214737694523883957215649780533504343634099433704461609045033309313781462585633405207169889283447767879624588263521331477471660362203933742472146427778579319765471930167849065664703490574696126570776909019865174273034891611541699290731125203005675390023753174559880649599539328565414858928584795728809770297059370839263251817721433464668630007897488171125181372995923098025601746514246190037759297026970209066641533258025226072727066032290225477884025541762785960376805328355318487209100141318979452783255798964402725005829589814854720310692100508576365489391222361369128037454280716055938138289971901609788477774015525064775499342182213766295223004599542187122503386176075662183293072461937546268990345449642551399214206924380199505118405330029679098040310766430398294351778048149409203890942909877323765755223119228899623046766895204288592204138428197633356717456664150657168814338892760932563796299655415528493467311106442770603567921353908079582777205893864347431632675023918338355420667610161711467277835926846714063886861405484823883748942523922543844124135107392462863854405763989207325364211997993786141075361652052807574802000695857779403800094623633040408282185308623378568689614089632449339148632305518472764021473379329301448032056018233421997699490914170099145888253393546789254858170011566799748541449532869735575081435893578844895538046695959284843302233051648691226798901408437920756890106398995024622684141718775359564272375166749406931739353839760670448024914520837892089726522480284449457434972217512723615538300352826041483395186889758809731700553118847597381146861496382424008011382108496216180467204539108952791688290393997495624354829769127408266935520274922193929412038246786718982403139853977621780193168964426514394649724659737068785701019357569552438288324484885769773379866926479807861181900156166028022359259763801802652237430002622921730526114607629467918295586018484529680840064162696864540366227832997561038141138854049881460262863187276522361152460003005879730755554681154615939551571380074765761374891441106743727280491384756194334796186449194952037603021928659182799383727971670181059004934920200363393466236211738305876592849901474317157940041578706797584304696983756945259637010576046462992651865496084835250150932682123904441535625476695278903565951745041704430910331440997147145626837122789031179822555181242296357605578886216480917591484434546065510533512448913210570324422994813035982104749900441508665695556154994117999020371856181235683478073969792893505554518207476463104316744825217813170356978762285547165044292142784185646919173762218803145657667103043129336366476316972963763072157135001103135196796576268382088234095100308167618715659550883623686712310115786340958983874616883044438231374020951889351633854378360865553678089497241631734717615669940537925341066032897410714089760126140083556207418112624083633088980127110114803501586201680858126050282599066798879972990484985074165988713994607496557272466601355596502289745799080870266694260201211381829796160661796457981242062469926608046833919027260728680478702623819728265999566052130711711422322093715856713880902545635060196455254649847574384338454954437664561867034734006658261225507810928809286677192127983336367468446858249962934927143170259518121137139108348235264368538745612257049815427536150889113682136837983147119153854342787610125325812749504079380679223670448852259549932961320702407925332452241870870110376473443730404706921975251571217857043299310863249705559619123106296720349605060433078552998492900864327097359664294836281334309513584413550095911271708258146881715929471942533371576234985418567584759329782876605572405813308497299016620118375638507823307258936825442972989138483163174381011903214819239515475039380098492263497657406740971170404141372813755630139602875589664275356819716751142115622208035334977110892237666468832540704191935056478094502556695808086442559962332403683519895202649433014159413349527045993351848419502451380332170365752693566340650248803193224140350078811152186124210895983110553956510129296215488796005652858403527825629935357598160312673166785717962479586530618292656863027354910124494527975032950845336274857731451770778970798020617750188626222368122826732898758620186459830984142360437745955973130735955632571929066903709548133234887447313000901039832088095201698438787365070711669369173690502666767853832529875661320524153875144901004292348951819169542670441953688072256813244627105883318972597114082899722873154967197726737209159227276247771494191507131689013278797818574400942047569448837840813849911560092626987056176835489992596671418896937550375507568701579511664152477172695490063750437150124136916727477881286329662436747132539698108803666596221862894671673629002284018067350685120496971738570517445772887507901038571121309491265963224362954942695966218266728488298211399634733826757690195821685582551438810728846007020979016320323412594629561267623097414503186836920353492161160324622084446149946754295806212053874133568231016679951946210933121086665067973784820619249919893050988097386203409834857531798384840956390911235019233048486785463556422410083782334389434671143917785331266707552632937821349869939654869032787056169502859202782767716913546771134360045317529947726132384620829142534870812414044012458873202737105716633194313419034928216705089944523986731734367676410923672059249559079056905449057119797020847067077359154752258595911583136179769508636561635623865360872467123242666650633716569233626976368422460226370493478811261574902020179508052373586515491034625048515936838732217927196773588427568281571364953888466614682551531687769650764493925425475263829095376058643107659001758237004865380327296983740565365663257570039235667565202618490787598595702783498151138431327434954465599134832625044323812553476662397767051498368338160246368133996215421562653030087939678090518867102864625885360221988892248830901465806977347647732281347751615076967886283361092706316073123452510122580875009103714578174670277519485793705672586179852390083402811081520264398825558375120942711112257574757570252161223048297471286077211493493025691427716773773381448073532186008333974030754850036717394482226821314713577940141113329538884653134656654183381418829294760647288334382642354344786745239123317576172847577666428143224737854875296254306205919824947264912033671538804448373030893513556928892650391145975707111113342573741592107953890486247182580802908281149558658460686141627149648714198371013482349161123396256979721764458247574579227487835914382988226983885034945394797931160772295042535296558598818440991758662413807586613191989494006773540357250866096641411682387981052092349511343440085099915263502304188827042238265799023903393590696853560148712580788010954308466102294942765081841371381721310961494897032247162903557204786744069553807971121802247422032664541801463250879435298225816466434241525286157077095238634594615058618239611168461649235701630673527065562030571971533077474724725934408679359426760509586452183722176596743599362646127803715776533686813124129163520089563596768742484725223924311454365600863836258234262898177856102899925303114624964941788602035570113155683746474180316610776378302681537484887976876946023188020840865204111966903380978079725951125960263399157042399367891326006786327755304172064720846496608603359502480873260927018095185919647358359120093822379449644195685206045096462101319551992115001845650090709448076435055725677893952554709845400342428413905877435002656200445460885820909782089683861097368084601931749036440504511365112909379316265321915942723236464389528407720055180738432994589858359682236675696827035934457006933275498134236926036501786628708662107048012832399599063288003547452922789384237897234216210657041154707425646838399461399631295735452426506392665577393324793572594677407803050463482855521089596041996133389175131258565855505002685790738159919053203809264071361557393189178529598435185843124871551923317741552244427098340322252478420293017487664643775671563847393243164835470241710543812045051811908114078314869823115149983573544945180609277436161411017705561773043105528104252582164763559721558681058552302681406735486370460601947731405307684202622903871101589870215954868398952182133819302787588861941397641969516455016093791009486201661853157754618253584422566410003665772710711966117020548293910399389528787471806537933282587100805293361453160496971752943036582604192139639274471589536012253962370465945017256299675808776353705733292072153142513341898514907852323434027915941160822162639906848404498476658838515340304411145386524603195418542494056293602260224857584274734772912536740521016591457630614728526893070219776979815764247606887541680334769012940683366705516228397456503623953568540992086050491283138491050688688847605601928893822281181092019121367953528538243034392962265419061626031609011617653280769814484518078278893061940438278819101225342481410608645679193283038707095236787889881250149215248465589455002201442370007371390071878829325253678811190949967138977801540141193170635193268367661634753112423566415145297352346887700034426853502535994036413204949203291201602164526815378282045783879550513206439710801165381140586111422396715919234898563589815773072185066973077995213241568557280947975905324790517667494701471395925646671380933530215864828569180383374909429091023687964068335767805272830065601225846056095016653326008820425647187184084906300951002376976031810906944995478553945506490781218623318048734604472995360482841885398516861138390560741701120971158519406581272205011513751387664640578589827936546066012084802802529102021586049784988244842094014915316871085207453901532667632554809720012818174994164289546373423609577802979316891989065691264636005599450569297548181190284761190485117587269162231670592769658356789800493893143645652924088662721091644237636249737612931003586202511858704760863903736812821248614730289283120760926951393197307309692218648890157455434305599739530831683192456894901819524558983124447265543083836020521464278085079942657434045407542206015322192778144955362423266953634207037134916790793812186974204326273501802906612238058050472700610372973111032191693595343771915133259914941746367477578298726668109567772227157685363130477606190153211871930624475796590054864771322396064368155076229898055628767141451968423835733271696301875754126224072594346335659681135677010053271406182243937807608695736227979529815597490627594587267645299349248545219040182099812548779517676166852580421460024222950756584146048236749136433658602592961681192440808678757940803411382877931097649358495025533986770763465191101669739209127988751355046705889731907053849727808538740327495762207039893887886886403494009584489582136910718366167690447383335689074594285222244687907347305881130440331717737394190163539242368915174269466921796003525431048109852176730646539506508003902965749508792835382592371734620961009572091802778278791251088435265360599072920469293607673759912345185184227556120800710699596904721165093157336593714380043756483400894498401994066763628015610212517387823691224548096530351315997373155034391244611349155366881489603785761407991297780290951935676413078414043047507618265541660526851964746618101761321608632964091891980245240206097601140116412775925277061590845164877052536412713043642194109106748933571257920656284505453199502605239076149619997664510256198622546061652962919349047099760834719112455274924763749596434475131702770100410394215173337271423588437983693014653952524740791233408192243805133430508710617689820953063988794955096071408403522394304254716697819199256140923128566188253342074273678029141074811765527146000862852299955857576959905626188387017910288324815201053658678883346578816065010024767907593682119042905852611215826100703034979108541313332676453735451546482780177119885759983147513713704422016716491111939100421387878417950892654966776177422855244171464925905519599283815956712253393330531182406263717857552504659785690883333449866078744411807295464200575825736765634974258794630532993468007953621944066764369653141363186222029167549655391745802409780260479834464648632683217987777674494001877486081184717929040072192915762941172987124372271057085336721562682186275183847998175746958158894107455555924001408293522876275696132110743671271098087039465217006885658279247923567388905710523925181257539479455330623230101760754352574044069606068377737038014619377336279329303631813979286804114656924971889227145328861663089784347004177396519479802413383158687076942904964524912857900712751450640081643583563133242216487526568908431740198757369288947331381545049297780657976467995963631432044727548718611114416391497396081224498549480104152258815516615454536340416107521147413703521284711901468522195512881923414674254202587938755117517484271345935746481619836463505963214780856814215120106867172071080547430671036757811190496990021901388576049508931823366300064189031611996197351046311223907426616073548940930184744369181763820505177379174407135215567831805327170735304004633616010157724827840511870262693461099909711547906151109092683951523112109571912069619454314563958793940302908328940553093289549511787317606565514062285322934006064763925634948162358432914494453452579622034534581805695332066097150696908482280569199175022096479619424775514977464074604971052070386442564991437582175999420038550762680917102589809604951788051890815327895707140677377149022172277120783963569436437731953608648770538498948790201815878989170150413406632162807600229723133703303298470332505728310972337837020135007563360029635958876843057163826579746353515066619810099687794283124453921441086882782398308185087472607004315941989735871200137979369801471430022002770714690656514849098203445894808176970733009428979587164348209880388691653183511230574012841779637498686215068235140777189705405440709717767692736111028179481306151069346044128695161836095637413770765810467783943495956157388403941065035097099012941352974657517784093792015749507260457284914457345668088547354905217802375731619784611685589110600052344977392194408050257352319266862835456894911965139038218252991545123592952508756350343154196665311763126880433468357623483213432931787249822204250019617406030697456174464754956553285290843016006988301398853071703535385001005103991474737681978955457548140857785161358875511707853111717893163114568578178640031110552770353927082184646155076794679291916248812058384296619969636555420241508266613623803086403273326688365668642184265330459011224549255872416822825347472882291779365075930708352918015136658051408261716664020104137699240445385619161446913062665875105566717797369114306766918060749934165831555599341854197678796027858964456115268440400615323407260491250279939490390585654327296830522812393121205991296974523717097161679933849167268492692160418340638695138011696581958974664037339135254375716588765915775141433952680176904610851909633395809911716896532035724131362429501829384543271368292575358103627027426029842101991415827820684198619126247948714346424487129598587066153313326460721865852763427273865064193752955981107739980555886018323686122246136090534248545684383940632752881454616152392371274361824333252266243242507003549053553867641417440732104926192122785114755961938919996519207541991107471005466326441697796176101798616190852174183086531841331423008971138320555258152743323765375318722280137687220760546386079795661573027289746028803305078040835499898356401706920461144441902162228570431574031027224498885362420202369064093493250973350884686006199548974455712876026647365856253598313972454266873544992590389585853907580706000821014606384382819560973872424005723850252237381396280445620926951224134436112254401411946414415002630757834828688056869815141357988606113695802487629965203546912827095498445713141328196559478527046552213171151712625277883126453005058997439626679024025227741007346555850433448742705731233562582925186921176470102991957888372179328411202778159123146716576977135119353790836942918704051804905447718034447257146294705080397223690674566322043051132863280740173489816522025060257543956998938282135067296795332131301094912274848729659531230520249763204824846128472975367920516789384579053904370722201084316814615281853375499770290232955751046153092428904011778446844791830391663698979833643310667514405875145400675134090015297469708059839925130140057055440539925165024895710916038439357176444192321584495517778980879864474190714971189014448609335282144774125689823262899177713248811457997281821216162677174254493248807625395788016268074825416736985719653701534226343156741627186907537249916419154198134672199958190524002557736247013769390433789535877566784169148885022216922000482580488125315498077962637115307303794682004385032198011611956215212769350130921487862990317100125511566696240828729666654673058461590046832263576119572753897340282416241588606498604560379403037530132709937097013644681694851717313880590328874446889955245178408772852815237346672291885774013338758730624310731676102976734005105601232662753383126979136942400099673857688028378968120140439514448962979964316065467189398785685002704913712937747243650001657718821067895593534635488877009116456609579606373099173199876023783275220683592675589830005915154377705158527475143503480448572839943727462934766666061916876219601373073864555983994763981672711435795651668104868970819971679858253596497169943303637495585667817539443700175979739119473554866481840929165781232233590055846054451181010329437075727051459629008810829595629036377834781309430220242163490673325256104774923254466638883684639292773479074711804858396842430485419403539363752201322415688027087618381653353059471043337221742967031477160082161330605160896631376710232052383009397943067257031122438330523535833969991080735660650100989462995896640017717623669486944823503250071982877342202535309587712781605821804659022123110127070142995141679449191675105183292596486373790683912867064679161087771574084533761552145739251450876664136838932351606970914001505250719842304221327213291733650974616461422129439596912000994640029877998462028535201713361534538855193761218705329136405726850334119105063657098504774326641978651198621344538047440313141244732565284644739358652995153020090830686020102709392875144890090419360948377849476475416506202643006912755609187760619871927752026581984188739015278465099654562871154206964791129470339155929271329811413851352167003010865641053689453480628126403072781130198805790385824855073972149149119601466159268495181152193949533484995680497197625611125292131566102497476178432365164085850004461628936734693292649235585089041136587448018771831076847432124146721300430804076284202912134594872269296971050910590805810142921594020554832870050750220457610202150490869250553491399201627018324608243555810037562778397891431422229673474544112539059370218681121016737046489637076269942221027686543075570364582323031327290505632068368782096823760438726185565184229056382811243087087018738574031358204020037768293333903978000379502005895986473935571268692498763108987786707982545781669557410833550863238466385565992902937945866494203792695116676377413713833504016853771307049703483285106595202280854125971516005521873080654004916410609593858345833840307862248010216537016997664449021142090031250865505580733182938108967690468756903447528408887257120909916724585860176943523041963719751826459012875554718354959748357139648167289424711192295877057480966510480868446986492272455997912655891629244267142357397084633890006046186055657661668864530440901984770215265868264613264449996923128875557832171911541205131774077325185698487185915142833888258085137918840347033634700814976114758948514370197947152922643466217018380986405420257627523133538691915319563605890822222165738976303109107775614263997227543664171031055922021666474441704493455840510146892122528867797130803337325028991200967276615901680958506192229631665608771950795709436346731424626838741370296657715454024348103212130021516324988125248178185688302807760687641114033299409336925193463410522280805967929335519267071861958709489930175558744598852665074084146966073737291281723545518873055921784091841013832029280217495310113744416102845264166296591026899503677944617992081387105298932576795156649577276368078180646072746105573503204286670955974560966335056902926197379857696307519153579318813078546497496500913550926652214349191425336832480067237150807449202433853905770844992326603020402870082936793757768950542343402142853619761909458077651373598714672393434238997078972381428436338031863579139015330627951606770975998397293143799483823334634750807714295616806499628444869594556666539183447737959099669801594596992129140103907073378057432419640637430337221330998575996205190222870114445139918401251633008966452528566805087654997624240705222184967221827296071365200594671170977199443165578282824785591507638301425546069971464067527419373155697185907690604959483264840963360383759716662557293399943618837469622124087687167193592204514292789429350658323152750027756292633052709004110261953164602647492199101436626946920267385861761905883684500547078985125579836444938327097107612093910972237030575874041920291825196204395433030220468405687343406731811351580461906922006508919910883850277283542823635241972768811714986947338757056487995417837715426724578391106968710866510951935188884122102820923242968348167984078010511973492877389803881964269587615065262811294678866746231978521454713207420952376247813383353047562003152422330494521803997802426069531419811205289048347045944072234945882247597535658226064400372720336908763748732997036131037534125804844104125053978262125604112815078671038145049190581721199459806763818818545920911351105278062327535312180693809732985399349193584217778170304061272550530825618341051998359198461110612904734439798452186777147276365153294527217012446524544245209417246873126201725639159768186464296816212601644547249535976172003689471057350955142749425849486940650278804672268575060525316175717484243314146918394362946119083006117724188740698423766758079129182958190011863863237545339813969136068509915565665283140933047608254021049617416834844143791223524986383383918393241852575503821177833414055894012533271651552646619149903548034852137638117125589381579568196187289318921110841122329251399981372771516002287509318767601641142525297383511004551234991035603079649729633843064696968207530102925065318811671266174605999057686912672404582591568739982522566332809846546565750754292357766954711412299726522320966760352527718043228303462178371966777818243631756897598803836261289475347065152642780055408199160910346941823111203719553795981262229770952536934869272737981699230311593762452572685693399661221807704071975325817223564804077687171028118794709553582775643292993262870608295139453316735694556500168411321766779012998392369808725390780959761071510709868563181512858336055659001911971394145835225808049553394370560399110385960431444748171524708666335263905895054289834359899836733309758702454854538168121519032498629715957509910481508239465985391512300712789133615402479208294538898356258921947317029982572857720480196441097151014704062263320378876174016381505287440374845720656555597975324047082355559221417918834435213566814162688025840755313337068844897629572670605469703742040708013427128202795332208139672592356043295951100213604597184617509122596016480128082106001927647284868032537121073369359341024335022515270510581802350184253773193127281182508095998630915466656758861979831307310648061543693748226017810031738844234056841471845504264337073796293301133824461549145844019780885340106086909200621476908379783746016950671696893407061878254387805009155480855038866654002893169458839480548339654344284758914800771212873917615536133383101751543709865575236435882877298685698984066800263882562681714552870469544503086453238404963219415605587186304139341486894295668485280861538873089877487980668500029200385699216266963794671283450238951897216280003046229617755882802687286468836387270728743839734631585202866266995982198693233625523131751737682639234427143311674083483707543376613045007554671087883995532323533963949687268169063882542828923816624619594178786861022221888382428852396502759587420834702097252612588927530008540088532360264397795561552742534887350779866768387739368594616073875689683388243716548010274344788984972872596995373637372895617478328854930409339182517677096289368911941853746178705621169823225938227188632363712031015668937825031380306217663970074213153539581376497876006256085629036567627495526736832377963523301130298917647542557924281222659375587730329150575127869507307903107327209105958188313834848268520829064211611295348873145688897814276653449735879808031216702300597117077651839209356977565687815325197328979279741325083381804503912248252717409471501970043565753356727767308896019272131484177042102308722715387059720300051486880899166592819531970893107483973822502936705950337173650971725802140177944219225299482139375238624757039007997013818211872094904776249093393430600555556749423177965517432358966304799177410718317604857132521759892903244992271144692412355423175101701192692897852599437967206432179062826338518099325742681351171645238750245947206992723888784604266226733512124615480768670539266486472250487180164002527662811557897506375378945410636549835498947534553605739102046916938172920873506505820751497647539754514684074616685512883903075110032687316754285078285541770263917325967515270314529898796598967828726869048756200897660755267482422725234751783451769746827021018167488749722089959817490861083049253567988358485212444920121810237144668235288251400499315003767536318736557939667908554820101138131185253748582763208646039534657613183837176727976277422010200366552996447883818741189703336560525056192583594453186253809454672440768894019936830692257321698771722362952061072450418832523038777214572192047708019872587631457418009703851855703336331708812774770197377037520297831932284154143783197184615409708448598788786145359986273956946619602122700687613802085716193282803198120023408168740397596973626619211074176256803627228164166419806085221163885511886579250053068429642615170265039131047638300399702651391193010206133064547438319651684093053537173408194457778628634406175444415220905224974049577794884685454263564285988660914131764531017863352381710655478510002035843556884843762462981188993910321145785334771810782186015741606081590357536917433791751225254712897078325496075344721297233814938725518766895757593365352551837331224138638415606028663580052697652464798825344377614055176240244352986531673364494158423516005943809246232590915989747123858020064157302410375816812955810430278459847558534354814747553316940182961753291311148833625916224809455817148426845051003659028017136140362216753900665605731307295809532915350736825813363183471609223590513056906625336297451970181728478969787478057208212952048257286274183542565442997434135794605029632245793529546278831052109940678524685236393975505187629520247998508830657963656761812338105501208554073254259802062860258207551622721320105987447988061276141145219617246995877930943970192155461250711903120669287087099948405516025435685669365783008782696332004037322638052333106042157039485980588609943923206665617247604401007873017087926816547793680961642301187880724821968630498741212338756973753411414547047105528783997087591192027247239885557575501304040903737216345099150310423328406417512853953338033187539462875648388642686592946885203999612804109743678618971409254770724548555952184718696412631222410079568413000317445081066183067231471119061778864748353349628219215001032786820999112205321616138503283001497285653725206599059509303819070832972428932246405276793790765841271204568845721767925376003104347765326121893091499802811204253130195653024558621661535964544620767055053707209234087620180126096954673447843580211237483324648407384336205528290506262989246987290159456092034349076384436490252279657407449859637768522406178416376525564894891450637746242228611099227116876612610906154765864099394549472359392850362062806578536940645015760587068305112916756617778288712598239727800433234615979251138732543529868730339261305395746283920688795830044153129331348626258022688287467379792037790519735411921203897185750741700920021996256426900399825662990937535215534176919456803332257934649948247956486517537743662968348179142153171898156357026778913387909496326982968018992644421276972379543779771325373650670133279409610119736873375211765438255690472105962803229592921848722268733114260122124683213143763975273938327500777074584551292970679026260237266085434612454852050844418256546513670837090057444060024715347648549956109723170240151476317610068605519339109904605798676532149484258522445704595494413840506807847249261009555289214369030976203484790283550768119213197543327894612676940737479264360009792176534098346607661250984948360522773313429391520299625516173666134108746825778072675995314889481986044810175113637404849193713814688021149743345801561008695243671476685217239763927922678125315536230052727662558956469860309614537753944114228585181821346879300779109938169513519374138144593725129881521807691183185094377444149015561703940261824342990338181616084839517543556040856505373890130962870671648074298815753398270696644507722459382580740143577046086331021110948799748265842124536747017053181122865254834929153298305810873985576809564796537533906700839311662538460104200620293857358472683453829592346636196876875290064629688674713610511146434741579059564090292891782738227378441705354377048653995605877399423198027455425171233354650413271096867895724027800226426618203333898224246123839556707099375360481026789546698667497549276606728970359271101065089150202896897495511222721084650019882322585664469038935237884585577843642078096047854852662402057912411771878103407511902664680329355578182960271824749953675931343339619148069695082169596514687250765020018457420404121675737445408689524126388793414889237590725187403766514667287602580600835750545087050001145973431426032013933366579381696916138868877077963565009583626244357558141478784207565177004138438199069721375562731387123395012565407961703851644919539599668821995137464084620411433420085735520146571417771425029389449066859213449471628545619081555184110977477677755739163058151903591379141217789611258403384050647278509694427360409866154160349896269375632740434409456558475469147074088483904162616640219283463422564397351827388334026409868976938921495293349614794345895869367722752012248356119746757847402698923625263704946020473714129330332239339567058117091119549881625933309768778395801532695585764781783107893742180492171192819992574077922794999362445171140872454121601291648184827091463285615314829270978533214884553549990771551705061743868002575898274810054979739780655406586153132933234486028331789264450477612959985112167911350589488904336170960162512383742965840838705961418853707319546454402774796136456986432599565817590502033158730800684098811418618909133032465577910320331068911255490828280443348311599816385083178218866612187233490205336095345048873959556229642106148996204557034288645923599562286748979851747947253291268511438100180404610620827902576395075474341854695164339611419775419437671374259112905753270116320090659466762159825594849621908885610474163670604826454654137583213633488523823265129034020829705602262539700450154289409377377543081073683851409352169018340548907588127157108462280287324464223657980393093172991868983701006151456101426569267184434560242741732798544402434457307780204028631296047687652214637552395114460450476639086978666331262593278052085304306636949025838360541134314978664788752387278000517627842981643023140776255870333904390316771931139672651814967146857844270104247071575681831724111157169429502521595208458555812892699546292330124925489564387838569206653749216923625636688732613121117365368457377937097081385767180025053201849144706539396271010002387314189617257128601188459401067876192117727642807916303570630377901191885068157265129360002420141937475993472570832538398760191033026432539748018152084271986531226676420391049549146198785804584625253288485468070875769587282483229889545921036031674935829923179678135702290826382104735951555479323789780718656222610363057026749730466319953027968570744329559056926222422507308314736772125554378462694614362619883149514346173172593959626101203627570112213333631019818144259835584692426915210392088094323291194360778964319160139983962833495855528936488040340922528435851201064494109265135126737072874882203607631911147641866193683491923058422209010424796780646811692657360061124030479232726980226985535292371818627775114234683030094180062213610213364097156429794930333399884847355442407763192787416561050362825423994292099063355994301524444272058352212382536093900152279802693137885512926008660477430910767513032133415945475741129528338388202662527516179623384508213070138540525758281235541820838219697198734755106745369000023341125601747192203421953252670039984333734906428214485322706514809479166579971134904114750316787211727832899034572079739658523185238854664584630992489363170712018642573670193534140282997818336855136966335605116959898536315278940244148463927214488124083421256202245632775096862810683250771844767404137008917380494611234737331083806346117878802686847069454108604218843716895694916390969558510136630224241370893607827308010370153713010589494586358352297766716200890311933758603543278324478581896960198844340521840734796280438831787033993976117938751101404443183553975872382933519879807433728652396643541476488828982693600878843331317303061818008064280003712690559466786512643828310743351003717204140186581457508943609114689414146968081270660982091613256211834725518539378711966408473230434235075932029417823129848444372522609542733788461293688421472624789383238040709844221006185047534288924108185400394125761027228507612785503655881561744158657788960782621594589537561271909250828546837320943364304807563959987036019043838158498040209220033635552755640822940590239995947303321275183034496811455921353841786530110751412226580769135829858098072630468867014573426348546757343572556984345326705414736277672083783228174300366264907992206242474427051198742710865154444662712404920080361644144950491517393177202293961739157106344778860875073592987162275442292546107238965108744496709206109970613234023069624232380992789113463938366850335761546847627338191430976857079794752069247845710640234918450799252268408938927316651045384592316344318292640572459943660007072220704863095229204199915503336510204356207659670833793251333517092099808400531437744476184425846227039364826418664957621728406545039722855913409588728203174642017139025813841272562206795763328788305919214437899262416101929724292705443310012971227204156608674415531485286757602902878963763885703877055053039809573059496483276851982192124585134148692462732182814229342011363618672770658493359285387476288152891305254984478913869571803962276378967614327780543602220329150668204411523638129606959271843436664444611358402214980764406871429889882660823252060197781344928970267921301377875841396407787903383877347125006667049682364591958854200829500778195520382501590338483767467111870184550489460163768464769724853395114688930451960354084944518657947766522713659978456312260994549812623853661409531263295922632588858572332026990481645218788574761058163729657639443762816275512813588980264272215109975815518205444977467042675851827918219548733349076873333302220673704661491871792993112968008967027592149694976393466029000709841965244280576521109522812773346788545657241172275825081624727294653105517578700529031313848838055590283677700953856993561646404828523728269193290358149344592203961657974358559509704047240206568801393836060472682330632141172107138540349716211403534359638390613640626789763459318627970468612697602285710362898006649359245077030301204252059888356041780326115927081521035084757265359018920133498754083866041018904041336314264996994163272431421615540928674440687044847116383533952475955516797785302019371018738576593895574204940901785855221596572584029528241049817081814386319756495010119189475456604140177444752388916243471440865282050080061463154576621338213487217760768969913017596007054472449913893986083916969234589630889379537472760958558388357263947418033086459870263781693323580346327226090084745897540213449654040371104151278067636932146526111079426116647290559682514449548254417794969920355615888149309237280481846466318751052752122616520566457015121617836017794593059745951214226684357322319988420451546298503978225037635730912899805063330024958046334604677038974379129672999327395040604664130366841638372145579297012323976748908527122584004960309869066512084942931124852717349952959040009503195153519886496501875024051155243633760389246009936440252001662850710777403095728004778160346017212983572684767597960158515653605659395724702988865513763569411652669473704224959018425145001298396652004274048333179641727829418702778490867656079674921114645400346053416349873820355792118903232433927044428899531343703191530020273867600259400269475230942838530388957887233021651368182819590105616115102704093906022819066941303512683668240957345861854843003373212800071237107954097243691068263939452682094467260260465317228372510593231147050541419968742595956482236107598782860764976731298020786826697126548313270049050240236783520643434867817841048205416466299794564395095543840751156100829373887091848372604992015250034785947770699481791451102110451066278147801723622762344705034728536197461622237357059653980053662233072104968119070137765446063113535009522692185784112419417754452845849973655617747762863168393844861844971349997031150707296543835819997860971803637816165287065208313020984522290508565463335778920436500839899166796894009424922655989619319008043832623055805092558387928313824053850118610026588608473901827017891003107501429568049598619632532952439840580179681090022261729184656748150216575021662831355399859467194698645904457889422311134970188366044475693589459937397308719466747281792325095106664558620447565703759602595768119722243016789404142471290149161253298324560388289051044913822002601966776817564073090985443193214920930190236922017132719005708965105594892795641722024950563209678490814921793448016070907276781273028691410894235586724186476112403338235248259197838703272742493879298212818939671207466189016499340500698348574333063161384735378353098594220834225721464733807172423177632708350460335484991111218670675673811954194033068453418200348781689672124922007281049997384384869776650775759844154857843502250823303635337803289065399173358375475959735226662803750010455046266298709761324465764315929741739414977567501319144417078944016770321360841357927338027151559112532856878905900744683202710569376717546047880382876401383602652740180417032404640011309663321766392249577786824559167063388440451870746677578853012162908543312327673725488858006279885423016808614374704279282444628745264268593910138295616121724732377951493704334505938479076657794179666720120098588172156625796096914701415112365661393525912278888901686132987418453372991703034126298075889205906253929344233141110405164310168374323998279438601998782254190468576461799697823775011459968469439473873031141084030378369680166956490936167905259512492886483159735585670736654272927965080678224767363949947669395543124082221278563675740827229467456670865296699531260532776843232092803917106450252891797040349512433600753590282203585784889033040844774704424786774761770829634459367422530246308487886860651801731323554065188707970490632513077922021592449195441421096533877248100990753581316840597105235581273580803095701185885447094465147150270876092874077158102805745172755878877387163514971124233609365656263574658987242454453846095068489868853024938368244475414034238755587784277396652735417778358825736676434095329356777677634061801394644391292886516091203452181991079877098970916828277485291218694940904195235085796706893916995483471099335063918769698043012060633002258157190508472045810292828951228060027243090170819446920289417600293145977295559243469641420314752284444133475489374734106584597165205582290126075325505060569266055221579320604356148756601269635185315570209402460096455636066004199903239040181155930588540595455773057879822639151181842095890793606834086037309084515923104272902508632253429795376976910497866315311199143761052552069395575648277644330637855422943883125242318920758023337550962097102148848881716015435642692388066124016661497643609414655811434946946489735544425404516458744905608028531906943817422949345773462982258367758123002752043852270219408842523298547687892696192106434513497070844803998340976684321598030200536892089563432214379391615704546355987155489705243589127588932853850659920130425963958996464881795151345095538370437102123544113158845690095665821757312259947916319944922441654346853377431094487123296233962655522771437831586790639002411008089914700932650998187119878305089965471892016697199528165705413499848477557154715705708599042072843778679936537666721576525981757874631796246624595307182734261151578594730707772193962572285516627834953054299555504344367904698266582253953716012655952851856679701420261650757765649868495077334584806705339373938842301738705504660603523470554268656944534905832869855144302858867391363524564688668532388872783115452183880524237929170426734673983125946698310443141235060236795180218543611505549621219387269358669650118657436349511665482907777419891530541185061209444534735846799095307551397812701607805664126112041532033421321066131501930490660382183408272182748113506139033362202466738751070166108615276030874146770928559680674949266731431733948758680409855775300294130377096612169777659648279522944904266855799077615169123315477755265396499572340076672587462663573824255278863428441228653093524602248652421086149728136496651881654406692728058501051692679447303146600598085960565575620602917032132295916832294316176759137832915688680715237096765907379108475855070288757699129672936161244393404125437681487514221180805563053365068272863193163160364504651654140433185572444541921831532710829041447292251738689562466271830415336380462360187679998368170632742912492310215586806592116249679289061505566642002458274234114807222046576655761314335840703691526857260915638010713021936904769754806736968149919421584630444909209087015498522526051792948200098730975279362179405666515489655582497289728185741199659327579574594303484839394550725865731918954020715479050650129872250126547210312189741282788900076459327267764014184424559289993051962959314933569819153151024670201432449045434723631612125013084517938878685840650933897180703642925046529724898003785512643325410501062559288584756609363309531051623524515623878664634013913256544154526967793648177566852972752182948709555692666361219396636747729818814860192105467669218486468277505054699815086937747895948442939162400061429317968233517422747429257057856700708403822450933637881592904432268854221089172601330403570526068970126152913259257914976131522359200976693396839730253614087703335170871922839200272483379731637740108820501625813172925428078728885185675172644837562515556768622499145959329600514857043030219467046698985081309268031642241817346517384767899190705480339867829615000028835188657633470610814234607263490750463207188261870907160715218239930625679803864354958604610501441373555194125419152082122943978670653193112471189325593625657527973500912131223469952044858906671652571190658676323997544756572583699870299669397310415801058463456293758840042196323302552444265447192606801411104685559811539017011318883444791924485437166612401995102670487828620867344734382744452254785548437155348121929455243255611254469228358115671784953399908842035056775768606763341820080381655889275558759667230536460142234819137238304831894929808349503409171867033354200318160863602569149693605556077027305429528403977728167450809870786906356000920919257503360929933630833163464572863956847917057854136041349805508240796108609723113933996985951554264601395875993343334259859825075613220250515728011873226958541824748579724833179825628844753908170544218275555639171620796257432661240615349041000389007299942065747379865140195803385991581728039687038127997888596645891188115782407206892776809649658346649220649170984247638355269155566754493642625698249081289691817601372009206874879475664496687628482975087816502597688102555457428392111527586789672328417744315518283011313086153985573386913289328113225396227089371859474398851292240109387832450193505423354972217408937008053912597390193948290321092507350329997564655937227887731394622763967486182028280648277103317955319680868269278926350231671018776278841338496557286939251382585934652150034901668851107067845866550919590154974601637278110282115100670667156583034022845629691851830180357901629578366409659376729046247714569404252312540578536294668948142973249662064449339833167156881730532736397075137417241709816845131648546454491046019520342848669906990604965467375746860915275203514333461258861452349528798520581530243655203239133305974106589439944085063223790897472529387759418107755546275925440470288025547201100528805959450837133626060553118604022579613119554702326321091853265659474530477546250115207948545439952025804729088622009477707293843713291827743631938862415751112867994204777769332750864658642220547663332453998235378469684413451799173161951620982847626434743024454275487595257544292587462405948372800326643597227060541969436968225916968786325315575929926776828278498565497827432270029101166535896828485256428968568477762712900170990503322914812732114119672419517739626124694334036640799392162496028772449210820669613335916442577493655950145328266396043924970755348229237366548106530397584114588145746154433656042701629843488762244053519539481071355353457740802336092499787098445606146504438414353190465520185487216899879453112733308234191346541481671232014491892702504217157592409776879801114606958913137619116475361681835725868574456162431758624759501604750913757774669232531260699839286340648174834310205179475375376796511127868514259969724155314094589381447804507112629015359525623052836759356182665722223501867493471543900006349560136885172593350106153377589478195301886793818999287946838021591365929810917812538976387123785498740147607826779082158267660500830898577818532077449494897015574234322668610531918904372991498385624378741164209140503985532398543047905698025178242233352967222769570073950538601491778930153144429839442146857994924494652604147960733895349179623690146909356573689074050030547782604284196825182180755621236076526977264671743511861966446011648328068928268156071946408794770832403904635657592402862166335222776340656721528469596824888985220592250795928550126651871726969899767070038344675170670780061994461263886681517143750856451912093846921085670819370239311295380364736310941528737776645509902591638309707161521069641565204733399209235233250494070873484861788648755411634253691810028039771032874910644205062961892958439181896649229503222758880929656131736562533041873708903551674627876161317330700978018066612629247823183321254292835837011234750122025794583550408706058370408550395003343034448184220548468288478263584811236271678991736322270848294010651316922876284601936345229133704423553633382266509822321825420406481782545727076641218910224062405813815475623630552648750579401713122507156495346294703583079968342090786410653803673031643796678260056652079817719640159223370983815499659700666877517803547577345924744560691521726355126659838543510931961664218466349293633033526588343512011554381086247638298494343764045752452371471849927818750867546450322024899210939491769918372727863856958298423190753076564905763007938978345337501670675837596144946921739930753576717951255103872821370944991730105997008455681447061280791695606191863483995488127662906988743520454827057222953555677237871061492319605286997368047573712494024331590372647424973482265845110721192112570212919617675318778784301714229746173887891493943155619368771622575119756202083432151682215640394784974839783090227051524477366305692379542221396455701101420066827459745749820631612753509429141390993723187211354652911625653550382420513602129008866714230028503571815237282482847557722141283406965475744309620282086119098272894081893280805077859907370890813690571215648332063780153354867930547069657689893788770910249741320301688860700060643130732063399306646876964696022730349135906993547946992189101722394590953032988574513758321913418717766809773699750009015664701875309084494559447784715889051652125950619366510626771003945010801554630164489711279791870868007496919627253414271688797388963767837504319858638140489125917633879756760085933193960645194695531341585958243833868896914116729505070848736715079642255773760025350260607882069230444348599601535745201049355507638705973453167798647078373750269514927388169089051467643014992839874646736835637197847107647703775770284802903848305889393601484285081675894251080567250910188874200481166956389292365607256093250281787909043826978978229877230415496818018648718975204750384175519452590295654806092417367807743342957246181526887038559202127060614196745889627269160265433391580855059786684448173344217532634432370953476792968261046373829774092502621122571219717003563837316734849267920412996616506402273220475023266490563353382798264303845226547636915411644524052783984782815403319771834119775110197356535506848890215837530063184729733883135305783947629037317085870341501796916908125129999135382100212369942711852586127458391316014657189810511212221404611141813302314733449573482774933015700869476301397821478975523133353735887540103654154582130205341021939506985265360353086794255693829450873685975731492472962573132055540807292984969856409369745681268275593203692536224302589606193857463986597063108744115402993749495504276891689917517339120246591209502022104974666077721078369079851819444688253047563679839130201563198684097069358881177467634305688959215729790571194247865545449192421792604904692067510203664225827197288571473982666270847664566095965234923648608834784349154781617762245686236111460054877236325181212878263411049303999821644366816646074191725433908790792835192636396034815249926889051578663780945849872948239838464942377097995096140920422460855368020918772590510008187379921892924528612928790951483704793888698750252332753919894302147996138612782001805800887207669505941788974125789326754153276375533177145372431428942463603573125757909362398486883223305319947597126808395541434457434329994080990596053710412861171963008942559469453678232745745754691228125943049448839652557313496739007282200636608059926180000838000487560491795142943828083539945311711910389877476202767232955280026257742426577944574916015213667552373176376703109928367501174351453812270602875422422504241451167069037267000555511583784235616295781936821594083855052086123050259123361054191488000244392674982419975420683259446671069286440694260774323620190634045285260202759686110198843637042679689861283786711778329872860105909922032557669471607728747445636600941704974006931692265290427190373375065245240720149273096115839371034709254025654296222679392060420903201405884258482773517365237771868933826449756678340758626605895089933003662301285031872662402488885057587137415663413063178088957976565212601645901834843303107638127927380436269614151085495938842659554036339095846062914774825742477528393760733285686394011655009542836181718293751310032522274510780004855769700309008771427376207239539145420114058105783078376017003458958648554166509933303945759546362377524694611931504970310703560558811419194075092704449891599796210575548188733732930325928450359048507054415539397137041287866947249763841863925963743526492500454936920670605474048578929768870106779280299034592058709934595934558152607088962418414258204985102427454489063655755452652716752385057395860765188514004005087015210385619760806855585703227016972998519295538237409180933253472268144253521635746904925175693616392405232632644388903159525708611348887382854423942132444363017713961499876192975595559044158309591079562429267724706686050776750551987432621513264667269432546825792830528072487155089806774859634119000387921472007168676628369579174064245748318490887051713917319190290888987551937639184188997675530300742349667299821463978325970140444585534940505260763791733799217949842938194184205152484335229532622655082221198987886873314062991646568208254872381331558712606277033316464063874351294984088065283285464275197995768786584421930421151423705058430443128257784772452521732069938041191176023351399571081411790007023565127667848285885454469157236915079995245161346957880778072114069665269377525107574844084143497591961578673672798878488907215605479005804704506374162059434722736380677509275129158770758504680568408787953929083476018889903644257425827552719372372672643223799735086746743247222194556917921240157161539280796223589724267472720190929744134960847999260705691119857738855616122198992033276904038757281088447585279764649440666042697550355696751879997828617437035656424480205699478800094860470348332004288589723017991611998591175952541718275901598603044143732407632129221811041719436638381436769025068217333357341588059935467929435619318772687229985687263691989414354581463982774090900658162847742509287419999658301800386243321300989676224643954037856703042223598182071423390306469984964570269739248002695966483257408935079131011123659904842200430902625751002882608937630361897026177526294626963873546477289959563270621106189952180286406576747212538595086417600379138984766482836449889026986690459597079143504431018571360247003850862238197314174037983333013490039326426139955393184920470435363793843584251091144576230137225574304906561510572059033970763759596998777204908335683462027340508886722191696313501898429708820150459323885443619628189396595127287997363998575621493494643931541362682820257363487368263508932770266459399272773017285437253362101457888301717176465802978855725564286739581266630988904532842737379945961386077581884604210026475138798274708162898814177484243433663937032459246263438622084854548961265251399281198456268980188305668081186042687057836310431992375127106948790053320325468319188949641665559508729061674181052109788998849994097607904441674288645965592443807165310562714454996577775253916389182975938240841756343345121205541624743142063797256602694166469549748078405003387516437949468375135597428946888802440925052752081011173077457073398471280386152513829080579901879587152902263765192916267331641867833344095242753938420472812910081852820444654529781466180053405204781559148711249230171426430443753896003581424758361298196613817930361210549118289671811345780890658392569185657322443931902345999648867458668023929554935644590945639358599987459933464873469031889881515618976075188511105661661188635840262296658320377913628487776226855383322261479091478262455315206267495210499796435702306873291795890728793730117305862556196628680148152541755640794954345053160509472819120719564211431331782996739976158641938113856412363607197835843817880210005301307051729109733802073193840208879723874119616546968547996648959684133673107811092897768648939228720734578695878503337151745353337344566406084437792278897569586482546006443442114587724586588315930659022989730487674785903602496478103542154671542490050403785661313558690224250920759625131508326266328938411191759219364487680163761360620521088232866584967665991274334876850296393837689911503599007036414005143599843670855570800726035434226748184156661476068491714213788442196626400776730075921497505517048609184617597022435581092626461889178731757575417757220491573333525635894563827510696622614473733099491319110048402076359062045180400071648498543738212842526903801947726350090537056520160295717592159158106099141793537541600605877598657622564072386664260947085654592862694394522695806747577283413124741503265070291767414736861346836979318886413801994652297619006105937665076783916278820660042093106231699302683487323518537561251569262815066637633217544789165363001757742646724049644748298508438419358905860417426661990458853632091961393422830081000845266131997256925196900737316080292832283338319787209706888123797485316821336262871686360822286901874303401914542395637326683524191587200008583721494748615945582515012610811786137310148340094844575746123676013756385516477408340806771558185762814675121617379062546688840768548735860356944476296949647346730630391191947789227700018218101402161611260987078401784264201650613457528808621296102937780575956007762362553145847063197993154473791801047325421823546274095145507611367064560942527471924356651548819134752020657934848979783116480090367858551063850575001168862600103457036923958752357514678321737310305539439187372603919373856147138109626458005035596775943575640293483132560151852617678595857108445261369673711331434657574778034346387237765354826983826206129679936690390515465720022172643057859744798305801523582368126117364927996127946683352084239508750263939746312364299752902708215019125601244486458953307617627018128083727101576439770700322244578001112962338240433420804367554892015166833088206969382918458636577252348936772693969850139408359529127296118764169669839925350741122812867982092977189883992838225190392030207185221611397393618863675150704431555394892591583875674742853443741908860432471081597242278873442683666350761084207243238604469379401853127381757486004043336094640686612306074034015384735521723895822694084166399698966818486005765564903788814557750923742104083226528644930694262430636260754862522125477115075879340400297794174218162893052920503269804012338230263958420510449829304590965576216506186496884180753355513106549516171776245950264888210555522504489991740550592394455617714222549504596114804010752779023389801817170195084831398000064990265419853273253051023253554959411695226487582155720638243395893691418730394453881575209009933206748349626323154512249058813192957102080735049116387535015156276595177535092572412080269296416394450971534953737640506662959681582582855644884504336705402999943637085737823255122175137195364952199717735680959531786519528892303771834271229480345692235750102380032809266441152538832977625567212747795097492952937516774371429753830530668632976270862152944324666213667637282311705132673402341924718164556363889597540695212972721423315862736598233309577558230986625719548504900449401137247660535754858722935312803794815150834449521568087215364780747440377417033725937972012125546987702000305278355643996949148524723202420713470823327871897456616342454814396803146746738533514982498375070818849589074132979363789825475285292155977868605850987524334632441156272760857382782874179244377624347577417123833571867860007812533412061213237800922351894553089206983737644520110151180354892490183683511122902824207792296710134999348435082319379859016016122623602890969942321382717809665867832965551299016688337351325589296285979525523851328870931293484211038263401271930492169901961338462005060044193948242678397946814217510733108214317117043562528796053094705819297421939807177980609492252562836507851342899366537604951703696960799598164415835199666025238570122734953428737159290468282203220197321118459603706116369634055217092021205630884946137577511832427583578586276947899283245869467676519466099334298329275412745426080143967075019686452887631060761589679943997357868958946925548382858867975010249803463677215316099692586177443727515058366431271279910957385760397406485694626704204659975156468842770977537931247204701462532604164354284256046752670032230364912497212006801806954304392254428790115277508707199154168211101063762135844702581193043316502489067485284043591563346463378411326343620863773708258174106794756183201990674084225739981763028293883027527512681139987665847165189551149791618581809476048904404443777124937074674416758511088187133480519124809681716767283554961698180797182914237526537862704975019768957102117313079858042055675386274242165139404541154430204902565784374569651228487719767859205547486650819687314310131761551564242168400830658758137069504228888186081110370029565817333431871279526877211699061092788776378995034432405606486361093599482034733821888217405282509163985783777124332719994402419842248348888984838053857178908658514108108315394516911712560274252758484849805275207123434413303364028735300043904968770070616687415263254892566830139221328762522064106359385471068435173955119274467905311967762880938703377781945650847691521923609992556443898937306790903017377576888875748184389318034973178208456672612503583529176459165330559741853927021591353563005095926748507444965214001321033020369580604209351107885588339189028458485665815166420476037122437299156220601340488682389811281642931674604351007906846148125830570677541652433148592694409916845118294290677833408743095456804240384847044611306217095684292776510574325963465480188039157199586689629879360719701169301750277107254720423022433099632611329328105794788934576062592942944497616548158332778603369369803209161457939467648767099932640407404367609011330033014316165008298631608645075596137900916002621672817321528070491695303481705131699172312230735177557179052274506113546751127141112058836605741086747965377006554531018395973301223064063277608932242851854514671834297990295672174585787882549770853831404793174839626139077402485976100120941920847143727788272720844091263841563303544217568983736853051052455875034187512052138590827352696467873684810880588809551502755312756342763926868956930817576843445755177561442051569981298384434497866476751812088527552425742706881007641118560941850518012488599573918020199837694672840743246247884611345784759091003823359667646346203713612786644528433142803351016965886037361050488293641485641710166928089312283748573340599147899196644296489676166954276699931503790018511036099856385243390218623768282844174434228226804761821003702309921855310482685501338296883902903161555884605543468032728221247152263190680097652435345587498937679053803256342056612921931356406331648699361666991213845201812845545384916127881379759500015779002810546432668570471802635363325329292236050423608330796200217762039602912868704433818125170320610574471705432439302180029274258981976481122555716738971209250305372145814895208356387160575353559972813831161398846189002694683880268603389568721320865359037099521227881872561260939753050432344224779125136918356185188577186203013769283175481465506249265466805816422390347088394660085598035663089423796767295309493448784051543922026382133893575106461345153434108201796301099711310617379857407659075379705710452593290415808065724378196084238324019085902397357385807512193698205651285160665591440820727344699494168331038653870643421347165649799319608485443595759157728618370382593991380037837851201816890782797646665344675594853704014146034940446164810335490878681687199760228806090615671321422782813751180842335790551172520634522363768030313893229508500132583822513206473089011353200383917469579199276141094284138219011191734766715188312013097844411978589950805412925266008397599505898027752439864977847108311578383713598072049878341861995078326278870139685006714675077524233344331815412182564032068871945134916971372338983310190838977998282377755574380086551227087224144809457003384236687147463749995577182612875336153480137064168278693967208859258560821977513690340667074952392628730093523247973734835184310655076992205099736057268869943515099123250648192286573470031390292434152387444520207034097909341474918682224071653845080300873769307309697461217768067588664487721331869909136666541331257969323710863254906922058411371588103284423284136543336258119752155078270861760389630891312642185204901727904926623045717318246015227996234822317698350375093044004360682232092235209254832687279506873933769939988374048044761781815074665096028189059673763752477191365026107294591726554120294165868915406391773587848976668476587416427610262049748848402697714319148669208718155709961324405450096490139680904021997748013251970471876703311128709186255867658592881817496899184150178213710495649501546522272285570255412087842025271346280255982080279419971334681139855053581153213208316641484833990049752364980188245824450891514223353922581975689881843882997615525598623876132651362143548129743130855884921521101698937186653657105169408082457431946171017307460494231484121909938319752647676151453565168406908258888430908699700163912402633582674419230100794569244333385057149852137318673104796128566810088726189222441955717586727679540518067188392489123717943048726630971496667878183401336805674386345280569585964359441482084453651443256243739313779798135725575058715317824022582240820589711130413424611055102161999358149693052869202537940908961606561262481296971010658515222073820508622205791037007969380041647249410931644768253677600641290810768539738354609466446734430055313560480750508749506948147926236689545741130192884514479702917272342796487473504379750536645848200264456329136128844424320275924823151680153139661860057215513635932713191232229876411878452312056385592983244743642168305808030705684996941981799783960117845594863157075840805369573762324646136362895781011947891961112040517849412573386753745601689007462413077105512933638057128035626713579993564394765786715016683252311345046224979964142706306333698959920725875034907413508949155090985887480087488646020663957432645709808499863308734643534501961731957902735766711459718507323328188003729878135079928757660417414441931968177480170597941853905431031857646454686315067424935777017009966422040057716982830510424255240150615086125548718736007698611639502646150362341202443709097015294871316241649411581090444413256651258200218621464892712899991707052256543132580449759190033796607997557102822430859550994319468544120515968039496311510307189812980130063271086161519195304017265535702492003989925686326090260493456004091223386099289601173931787993724566014932404434451143502789553107469329346305106897103564958717541298417431426402552697611024666531230457385802887447067090933661094386458035330246761113538750738812787767840659041119744934119259284325683934985402514421707874587203716590451360352842638549925939752290725402328822378771390272667981119843568898589415346515130585137654638559074298252785979859522474498578267243568793777081842588980186133310678342478022029360045833050366063801536039529105964196677585064374904247437156455582668475935200274869772505896119834318055645027886514884018376054839680792424280213725360208761749211265439894695528644597896238883011050525644941988744869794873851734415969119482649223461036300833053901036372949939726910870564040915845544815740330317430903250036947596265577342758642226405727680731128151642386367025560387871544022476643471235716032754674264381346820091226044233276811106062341360704770566110459179593473660689293515864374196430422157773412068473237564832690914456651751472219588950121112953372602688696744885613025685978053506758922789831263442644370878855068579909781917099871089645392228203587107978294913254370234490747629672777077575146858498902558037798604061615633498991473239247213797904663835609436449561608199667185782861218059969739651455071414870188601689329787099316952124427693248952427340782880886738766440939039656013009368571252717720417236787135971576037372679114981842310253421854635585046867464399913653818043981846825526041793968956209850559338943342605073754850771178996289975774364142474245751961621466978270989408281750432464409848709890005813971869395071689527140281386583138419076728107828306837862457558684394942092223556033645771709640362917041934783329207475649415438726680402155808919838979785451177402129873821503975917506992464286301896454197161596824722137297995353898577009356664939478825874167020073418997977646016294432627045514790391896281934240319377743607824608556716470782628926445223426418219733106841853760039701878253341341688309243337065713416625295362773829565358992187226496998754746568582974891805868380116825661722326040328908444254670667990107420069512532822404726753069985193159908077440765207476978530418989993784589410025024270765780635596998971013102551187106495714667648260135197121117346928897231903289374070004872048766574113170767885178940476558736373266326715468452354631837931955523296337045962488881266643137278895012301571236076384634767235894686816482331465018369119119096237347776438865108743182445343350622434983254093054623274779541282977488339322401298280333513836409022062643144456110562553849935122710804786464418423125491040686588720264174430957401600680132749833452255403171074203165731369493612532577128417578067485896415505839193971948349759624874253258494543565851790086242884966312284130170696692515752135174091127585091472542646023425390165537295090760199293651831319316409604653867781106040510346761240057466766546712248344982804941993734786586606331106697724651136016703110899025287628428326495065698543391685638953620606765711283554155788376369401937645147299118347135816750644771496578478101556898360637453703054291096411582828053566653824036786317907566054156351752132010961464877320994256852823788685026473841122888990252503309018952625806859097193619123731641926285869725793490112400774675627756641519881151453854982586568654287092958394805183275469004674857652175077077732498890941955487446044296518853477768045776441446452824859916567613926900777918810728941747300117438422847977705865750250868410501994249140712158167768651816661344845227649012388484592052941953820223100722021035603417001981902292140533649128732979048677042880783488007491011775259397749895290718537544740464839901505586697478695941526820733896999303869793864861945507406210723596684275608659054689786976460716004716202489460799214451510962772178327325878599399689014951081924319682935856258606571779505856696402535151702546039736066324989519902623976637658383749840862157892770612923606299089889057614451369474803820213665819226258026729032127683691563285838025297444070298197768686291388964704676426815463010464255557660431436272929893967339038351291140678844479257869314230654916261881739754403193124107992550737620848612743321995784037216936141640657746292825274000660731797349498536818208313810853385475483096780641645840755833553792234797190323994653761551971801602167704208132019421997537356124095179993796070232223872224635527587944524158613888480752457631599092188685851201366465071579327167816761124180480445395855025169515847425618363240880194366800822449936901026483224715393468838576413728196204605736594291564645612153810904266489968303105678877311987448207941652339998406649401574165136574967015993623918625412138130563707628001629982628495650721491879875821286972165169040660596841279395264867137800237501585708069042318586738890206550109335779434604985184842689111803082594158499125924041486151416491461044094243006442456907516156223182188006474580877169404838916980594883040658336296553338319868360005635163480435231486240011872518732626241840049694908317280838439802685917149100102103424298247830034634474680557262083210153241116107211078232171911118957058974457626328657021773457559455658485457258915216459522145180809219127834335954198367711109456089642051945651957242031429923288526857085198469288443752003655106118151453654953919965978000248264192762904913804285884322341886041337656485696749155048700705882416927488477305764491631362012733235133786782337778783344759530697544473136581604748511451691908466449021811093403344328078735979107155139589326008075404496101303007374733928305822788094964236379486138770339260826437489109475408433701125416408487858933926929762501108317404788401356095842591686049348410584639731756466574123106173666059545332234814142761553400335298945601065735715866623972032915470996284380390875719353990027452544548689528197427476720197643500471296288370236635708219243852295890580169618629709160260055425914741778023274137938830875951332218043666935833112041949479674278650604547446509225029390964473954116972786609456627326931091505536880136638834026540129535818063132576141588957848202875874734780842069198631399099318676562575415465598622875352222496412199594466932339922379003972876446375975266991133771260481293050590662118265963456303689621678614032357826495824886696689778813447406655401875695528804758658738824137802709355213551222855560754952120205279301178480069115710610287956265128758052601185494714783809722423610724420541740753663349132002461893883024112464435345644639018497943903621626710752772961204463627361231462515652606568225697328050443119845016793925670996125500925800036335370141543215328172785958743917096245130876547749258010133328361016305996785052782670931239665006805905114485387320056378008710103090329631752607788088347700658685490379546220522384717734721961132965573671927138038944698611072903356522040632581023575986520390250426447680450577649844695428758243528909377275002480522011509203246022967197700713943446620302486832426484294043248530970387954988942684225586285422702314474452772563163883159883655201747130850157122053539401414247873803656267874138850815917292388204405752511297890206067477191542393794728241428012633990123361156048889676676022231651205838561907102590171293388295190641093849311799454971677772050206677083403987387244569064011348457963035600457464183970033375154457194123190668057215579845860165120849459066721705704915233800938742024449883948972303919989229340221154953042367912389649446001102224836479694912896396752452576964345764191200421170888546311801425235553657764540214072815289483521990019891258878738713758077240383772654287362593038547861632159131967979205797480453369482648613715629088932747011608102867742039808815032880680690728425365615875672292641034635407312364750073784765045348291527350235683627836045011918164660862624075000073763200592047605202346397813609950456236309878453375447993550608988756451000286987973952952182562202693260237226137147089414686256738095940535160313720829017783795694740411863845837215958462950736419807373126062298653105463380234803020800570039857263274636459804361745218063214119487849855940776580877542193637897860740309713045446536113066224700827738606662012194342345828377926996885807970487561610066910877161545477496820045785037887812719121675141316803085692017069817813529809158395943090252808026826071063933893833252659442060121670486778083204877866684363767428378136151124625852223868100024259886699317054993277705192619637099023758892348393380781615640991503018168142023174082521330899158406669364518103613954902733362759331793926217685327223688083318062073338826622572876402673042440542234449684040328481403731826731919943533648213076823623119507184655557575671029784325957402340456199659153447630238509913803853228421008315567078577023659605813558737564104578486995669766385897378321305359942240503631398714764121461851154516061888975168734063116812779219005449247831208806740828937771786188478086099771920428157337250042317131843508114361430538366753289740816827783429677364784848451759175261548805721870533774151877303406992882814621757239826500039782868882310940519464889478519134160630374350181624479921590350116969177697252575523256743319867603664919926762303370091061023209388065954529172123200472429266954990033166240612740047875781154836041984403068373920788528605659085214838082904552779531204744898352885340023108227564830966258657928978846879844531539377559797289325947779431398506831417112092549654104342521660367436740930118410224459844052418227894006769057167101898318449532288166850129849310771532065949427673842729388278907139359322141629401187766427952621739078006157534342647861993231720616756032255382700528629206498088873859852385726630964853135381422561435302103643471056058673001899196903139020186745474323720126077857586640249594087458096056888151721965150713506637972474498557818811168982568755314312279049013992188739924650075811554835019103036410568998951865855362280264347719423001080609407527831574710621560767450339525442566132201207221824824716588122898688320930072065392835950697041568863409034780015958119853267103433693568478356416452970590389392643698455238997113751020318641956009748033099556470312892216434769238175958975915682914359469482508758515756232222315676037464425841182051921272971712343070833994505667167801756967846038462902895790024678054787303571381839228358897527495116869862651077773585998728032237971270697980728019508924835662908024127490416066980625095345966011639428936778200442998730700908086775547009832909233527474426275357629702192763239789290209348754421554122108378691119838597252132368759676625358433094869214345332461506934429550923561155081444311605616874171297685783743866289904544241154427780761455975510029646434895419883938354609922656811665540942500479771518481225764944529266924955464457490131850307716517459442577751816114180214859952080101992101727940803993003479515234168594232170905211170879037529851627162574558103113911947256892704663254057008722807566940869837027293949693760813558074316817334578229848660229263790322227715965453042627280706593341388234967672244860501069541576835682012027536431062759586941430682038047665528505700270473670654865549732548549350260773178412795967214683293548721375407434837512670259390081487589107972609458604785653902162683352591556511269063580934307037167663678479891211924063492567223012375801500471907622509774894850038596966301053816176396180369084154008675332979822992160707575453762074188161805493558165453117253079486224968442956421731361231236861829636674374165360136209414115146082194386755708572792543578286627215021421209938592845578026843068448565766563692021398419891302085357332143764073412825239701880855143602000327821549969691238209113341260629455724140623020884805618112549148318232614714353683498736286785309556322466187325805020035147639066953757057657396862147798593659002993224147764343809468788734929384429830636990545896412637820199669939337900091035100606878407784926178995720658999972021330432636356418340433385036809174283588216274750039941444290550934559079697777538933189751466943217209640150378348474638651967813226092191064033176676377677225374054605060782038352954176098928421674376697834067875478428355577952022454796895549066322687996009942692856821433969174609031675431440417476691600245281749192253880510900468134359471888939455528462505722876962686967526642842852913992049641953855333435771371120949231531677568448081477971687687714780563281578178535035906074580809316166793494713334824714688252316776024895904874226216977999433022870608565330730158994205966181711933870466622318861850748691976820049931141132318274645826546211080636815054791067225258060553594598019206052526967138353922852302265203539145315088681088383962937088383162508640739492613795220278634380763553331490443267384263099312452536463850540510791225402374475032083794644363311370010958377874565414917184506674312129789218690995792276241354173685372270686455712565893230802160647126368461555182760697339017150692229837002190698661953359317551676073029057917318448451239827050905399783809610834909180179391622076638366883237082652846594102185178433071320698789952933232120809416362563583935976470434012018806503251733780598563633465577529501837164926975139002444643656385932887053452731483147498639686541923098976243404080448348548749898056502747423750208563040086666786172286050386767185617244680041458063202655726684710520521380495884653887517737665895164134127376886112482392986564165281547312171063619448625439538708941589856289828750876094934196305080970559751623107356568580583066597962913528462926283964037955029409515868045774583176125325798097970637816052701700072457053149993264517416339489981436098959483563443861832440978124896054455861855343574973125834732743373282686877237554672682340092851493789223806384729024413423340389624535566454065335744202904402865425199714342909708197599998904572721843179736684751179470154936312084170360505836943965190809747739406004098531430958745398054813492748900577200682812033422153611498433036168870635433525603760095565131178661665174378764881578332770249895398711596369791447749716578447563611785959563005909398619957579402455914404474894408517588501581035936212756534198452987274283957059412017439085579670798736186828880522426458264994321879506650460495707368869275513060797004107763912120659418840423010566308965338437970082411484487138069510564532416846778223637381670528153209514338400010741076487359646496192150424095583499573752294029597370487882176509280228757032632926070610648464643253502189292448257923145277691443582489626568593015223587024863062473392877655933822956405583524315487455154569455498806591621105119141016226728398831904412167010421132768326794456087051686565636153998976556696927284241855890355650501831656042945449241812676863228241951903348033620593096428166425554190327871012297233818622973779691300510046380291997968951232875990331964830019430951247086242582805031429532921940834306869990542246814738279170977682624255866666146343005083327824001199868532653389009495831301029361372887602335605755958013621358758671943034664116627797160579246650399560658215309672546702175129461769357621568999748525956266207938856496861924895834383746492027751733976060429892419251658845626138338602983331583639061001244473062451498346931211737994752673075648772527875437357936396951584977472239305872327710035054077230779578367758323674495741346189015400734016534805598651736185210929115839949321825398493634050517607776832036471260253932573176521512506011261947778865066295231926948787944145015623351793323921240778769986973755615800301829090600862605964937121887888187323990237888766439065761571555973410340034850258157549935217283896726088165630157166795302146632046719558294477045230411680267343917714298650414658543590364798856374672004501596699561591977433898440443664815921869300055108183463496550664105796887620411256619745554058887260940547372768716304961399688273215555240801269329655187014648241026611301488050301317167596871116657126085021374308566917171420001910712763274250582459256850112247030462869001009840627980619622633436116000261047964482599937123977524645340763890812907719326896565951281626091618892943958646888993998211895287805842685746215390109499582212154512754584804093045960806182689699290894287801171102339873871388344208487563432203220215629754273904893844717326161408405064560380458960891640927696824372344053621305517593358502131156946239954326829196996052909053620796716630787497158748146238397678560630154143915380223327930918249140295993873678172222795704928990268498083553333275051586885602149617189520359896711447829758516306298751856918195717781271720401568999107218427104552422312732329184314619097567011922615713833393831304055066855409503512680742142454556376128296550228408309319663036511510428483792105760451737374807014595579854373590592601608458930123980376383137161014072196390024438658159276049789039955215019701599367033984327266036071282754430154859013148432629592571709448835406937290928578466405861821151772725547302081527631024890368282493727791679644170765462476339948734026266676843839138651247436871356322856332117805994133934468325660831896881142495901781810941312877425632606884134207404349639506602393713186462879103140482969842940250528984873180061764357324683921453165554725712116063420158005170836928221246643956387590886528049426416204114209324413090495747768348639044828826722198022245789367534751595799407995926383945937616760740864975535147589472745663939983022575958875863238367114950505341442002666973005091417614013016849546631746005682412508067737226698033536465272896887401712566951429211595906217609563029659582064221405194944777457516441666472807694494177920019227700916720183767866965179037721657503762692633711464088694702389716666622910255184517715901023082968383085625801461640036759588305510902531477143397380807068393658431581030766918803807834711806740285086722292958048454984342154715358904878495742761379216964302162267720736817941026562824460525382802640915170674664044391432378099578200439164181635925175505814062441283060856307643095538747862979452590554936198926155401555816183933557288551872785980499150367673664724540497684252353198119025597703887315912782117120890211482401857340977192892933988046108132475843936121124030445643307400877708110561981839193743729847487237621526040176654869925865548127548793305631876553681007946111341677922073058388133319920941901781181177270411033217184111252842096482620544693701154497140650917914562717132044702774950000157455944105144868858635644938677671555458199915942657776406885548936990064712453315642726822423116670746656464672368882048923454433090211632552838963843751339467556845071479444611903787337154192751531650336375026010127863280852498216811424237685504868777524689837195362260020878078371009007333896167458553764410942911860701018343617140935492109019697823615455904286127278161461694829436336195601709430298976513220465571184655625168467304867442408772227095988820986172375485208735739121854834944337265000535130624594240452112320526985113445694649777140892372167289917506664122879772863729786831770342656268613253419812631791183709851330769112860490429312256493636138441790590194462463082632287657412375954226667983931718995036138317539844748650555820164645951378308052388127806905966047352586975981455443857920244806550095649654064166548823244520648352953797700865855967328463360506229533769638590862979569083384869959315522196460075737681421288110480190178113746734153477951982218131076114983917272975306124925881082609139597852017665952622678827189512983990419177113358432248465228198850425855214371621300391173081206340181366896852310491405438558958696673236102392346501002882925681831029116869341775982509119683916328367827678318947601440914108329025081782912895961100138387373900340790060967827516716398077216349079226757388940401566528292117805269078841697896977581614268633546624846611065444037626033225156151345727074408619237743903891734986945430985406849419464857795151205963404855653705086137566333957404288802428997005976105855449008181962701297635361212107419180065267222565679172321627402688442183941094356279489826371142676641975790305997115962078778519355660903550890346150675369324015436129066621259842901459792606165532264644311478900478760928630716812474579132375590455570399777815866352120542846848002138163991003228095154764306366918121474336083369258038569845393210021771972102556207786890404013226865241659889676070821881658916528271084755925409839368633760565030547513376538216495732427784040749874061322893334902312419430033740053555874723564286574555992404583794962723189035772836933661967113410258906806116559527958611428332903706818462152022453918382536416779798928701030491813381454649212485383979714280199392593387405802033682972847724416870238108564950390903620023935060813101630799435692450876410707474723436894221948988149769670560670111630838973369912850741921805801493782957194660494502820090862678151355246159944653523561759972678701423718225265349790109102398959178085356590449363581815422959658766250210666757987960275978389506482786889965107697760962713626732632025908800545614640590460381434785544376409722422095570662505736743806994061756623008647107876822589599068523197176524326275090979703928153600211472071433503928023322033035567176561574818484044054912678528262951831107737404049030039801340797527528824529278605739941299231300352839130769948606515185176007026551868633683401803555936876073186245063328180449521189936300197730646777007789238424716410431831362389897375028924253629863952868874251193088686314576915898598924329610584585711617579014175956514047790197925191884293119871359546383327530653018154617683089070064255033889591309383010195366418714145822541359437203704413760671891925500309923324540967950146043649570188970828677742417682819858886977192306791869540609189354324414859058410358850906806429794583128906559734947279937740920582780455927490047295332330265002460376621337392683374250993240747130943314507390205356467337947862835672898222606690761252249909172200317376152664761583547421426516082485213591769648576954074852696646012979248995909945506501969794762908305488818427329870432228908584592993134531567193259124950256986380662562600742708547795780629106098239600221809639659731583791945222667536607765450910168105446101493573283608682354720822949753666781663385462465369509638431488182487162891138910264716264265387229470240560934991832357405879175606476508252928194333196969488031869855795470846233026367406867106046539377976853235171464659057199031569117806116383807580112057397603265455874401068299584546084431271358796634035605487981777612035486384180804636661166041576817486981145904131577682943216718620754086606829826536103071224133532545165068389648619629056169757298833813133137071736601289812115511369247804913098743165829553467354623123503700197254399663861802597290385996698457574887273581006033905945210298357490135554911861923855044525240400359651164304537392637519818271712104661662371155431759381695329127198119442319392133075237774540804787871056195900140926354292780213383907985561367095809102022471409539285265181319226272324028427975495225027757578034060060131433979437859897289905472460665545190925205430406920888202606524650718571338504341165753857684313703478019725186337572973832191739354666765643957986223099747069312473745988025289453867103464567979052546170076772872708854337106030653062457594792508136523714227065355272186970980867834069411522366180789464832340414882334440338046551440378853806253318296623323720723092671535944994096142851743768481485134061597444141397127103545119997318554699068693158467888878234461627209867261013557970837098611274494448302781643793120876208305661305303171856664131675933092895594402682491671390360170205204222779976923412421517270175666671362591272404701503375721873271095100558979934282939417403738527856653555291941053575021790996388914387399513064316940602264242994426452548711639035101269295264089659759132955670181732837898304418953850390523315876749459708845346227395628480838089639670580866294117495604036306765370617215622068337906534743646569498745519637216357721430355145189199779779757781884733375634178915899459178376501574612141855261405936047136633844983297374404078918384814706084476359152069510495685705112851597244954225535325533124569276763637178468270162482735471869100493379721937508751229368213393583960382964637572040168128322553066640900573491670148675073487881611767855582082073842326364414230335764120333616274591129485776710401810341217554389549925401741659494523124072137638453070577341879993686221951455220729632640757355009801814804122116131438612496751947286227505026221359825939748477642760853030898023561804849347880927500803309376592479332116799909029184520477812813045152965613103336567629905622628844923574075228352666603010360917615895253600764373370384432080686486330800314857002389077421452787004470580153418010351073673930870577150341639630060757058080548706772434695303594066941895900125586320976251413527327991996836421333681815932674107928519162120929430482850324239965551896404278843547934190387839897152495367074512831753572024220855376946834809677951113913726545151801778174353633638156422045019302740990511135328320119751086084776938841130051928540138081138197824601153722352201282695093274068942323361704486057231379641648938232892765908881157706253365189639700265765395468699488411242810600997543513811689389746484005520613739664541029885493907219826673546669869647301944753878624007257464284268394904660616941636288600998796957645438825604079734794227588550446354071826961249889723895602329678695389795433467950706940442052159634585924809153008359112802097409207788189743292180803948267208184844236058207264853933829385015226581388763679063500435396890307469225849296923006169328634164423832770670465814623845060796932451493317816904715315153470318809507620073325857957948334004994026798316299183473811444846689597885684753059428407866179182013122640713527341168214895731641962409428202366329496838743925578588263423938281114547063333302168666964820095280448798909956914943826463276169375348175135221861699417594684806005117855731373717429791287182334588976797277195295807980892024976504508103607008070865846700144465017113688147999865330837971664569206437871854376778936179670970359494652458460428914849752155470023108670630340709351724032204064672804619472679154872121003672446811655319788703582081610318015112943523938430173150117075684050092726655379133847130808734841964695471821661822665324624092448756506596479889573067644457815594061333230543753679553178834264034726298516182095564696361154092841706272201892954447611587355719577253014125014303238769488004530346916450810039074158366698842044564035317050262948321797613738567180536260432164274404587508721404853819809621701520372657167844584572610229527824768138679426015149460565472712527619282874741179786833796807368367258590602326347514353331556076282135474303348789474654613198101295184039938379129371585287527010800769535353318530133165649700689968206244244637085315024035983335975828297406371819061554975281658483975875774304406105873348959017237941905159467533443507927893064432864038803502662746979185291067055782178445594870511518727878123659242850469754201810539130772698653520607431397128113115946867577792706772531751031445969329758080398061593593868133301788226844420833988522112432000979488411498032787510516407406272544905068578649035422173396457812743693782386546933040143553571053848926568152404908819066622209927479990401761881422058875566047129540961738331177137927251087194172889961208099472924328002675619440975606846983201436513303707233388088646305695426695898152711497338658339444956881612753437142068033779400715670793008415468918371530260929540599227588089442073773132089442709503726368095969818420010881553424225252558136727006287733555510351907745768622927849810086792167212604424468718903943075984941883727648301747227400365061910920274183642729403249808080119518557004468783796941120817863259307329973403711758402034924062755136104132917780541885990034428944716666880861725493199711657959168235485876940848759486541507251276018636191358248034297407906452087434363410543234683961305738640085620094700500220176754858299305750207316332265080246172927640131816419721778396201765869231474560535376206335680814112154742671831778539107119279386163155360441784376089213302295968075375089540196514898274350991433237566477157926713013595089419673873548496664249631398779468262820725143412144118969697957760407668514591755051963309040312324096305213681206990136572914458549879347715762085989104252632336621225944890964067369551901753321631828234468071059961155004320763710570794213362043611887808858134827166871773759086481884535803479751789148833916870728990956516854183458663768412446696336804529998662328769746853194840914820148340312881203216766945670487275361221342432868493532952949579704276195571434457885602516156673853357365590045243904657388674014094273600191385776903063799756237322368612592647859880788297780638049661199111551006396691621873317733343847150225723067200380968326087040445735746164233984209229586710617397112002824689519655025477043454557354060870924224732557282195362048042450930599277381884972055006734283990381212723515084674938653965695387227635715967255718116797561231507514043258745100156215333604262786416447832662033968178058915872908833965544947686371572913546404633704599847206924256847995165513291773054018884092433889316574660380072235024588967302752102914073873350727422861151409140548865122031649401543714199548600767955713551063586526073613916311803109083235284693543670120709233372794527515146365928258694348828993355675138437708024789924443219584235631976739247565806390874213157459320224070222853723603107108417617035445919793203579975755839990609768161246685006921531188414823370435630511719000298463877021914957420789141481018830639452138350404715018423308499884281537248180667435713764705183739390919687834730841874985475332356239669515296221861618514899487684071519869474774463931390333360472531776208671937618453605220887335311972611557850334632383018825568038998724797263813345473300364946486079442839974949921340678224544240137617471227481058486301624094007777308927900317734944050001192183148446057135876192923545313574850313912202872617069662909595055916840510802190115015186701035101372525323716992673880761370021485143169904584110749773437077089178675910551371499244483894295660657968804869114157759722129889434083272688971951711486752190619022947985682735956943282015482292176048179137576836755402473632434321444824270803122642805589241514585428804799408997932737268475280710449319570901762897450479468183949958897495010247601599215676118727779946204573752029653284222784384541692589512618980412593758927412191594202177593156454634945012980865062336863424176977624821246359884929990483916183725745189425907042657669661004007430101381510575332628827359663974899956873880269994757851609437105793935352844146534424890434857485704705563455237908030897272700233540607261496367792177399299157504858837957313914195304744485932871818883077652780358420641698712097970923361189830046202263359790370236555110450634577398145761144429993039006904093481095034121116822832472281836392510253737991481367475927038282329598942004153983459208231135260984339249183944835756448527004298607629200065079319306334941497961874054647214735659693298918096459582288799588549791039716701740628223247074655821940558689592080830718290285612106635529478726798577981701671917040153660798293425953290693072141962992045070216102800269671423458508946490342532501713360219858643626186086793636067502713458322801609077167392546664662166894313157108040082294780490686549654697010449625742349839709258065059782729680085168117602380057152372567952229133739260355824262923466113577555777629271345380429064352342881275425095044737323185183925605763189464066087091288265962169197768269127969876539184005161202636697715847913503447425224027482780070874954267041633983422217949261352666173720434903180228829441077019689087884193192741180965080449300991166145928502273295670452439995340134732528791590980350071483038640283145045910883776020176148160391048812396963367914759657639447792688629497922869961548818893165637951211535753663153897921199090473914251714326855439766803898455929821292729805615645505892479870976511192840582213449951932700101757022598126319063513479578492490433691394990617914140249029059284566721666750415692357294384955916609519592804198480647155098273659730049307181176169051618595061595362390784120154685244908388386615169244551445366146321552415764590509353418530941681139890515857588029791795118566292704754833219102082728588025288332541616954215484239769759759668142861671076623711863164361163887693127819388566450804922329396771775562002362887357820931533894440108594989087341747806717502191115487012305677491064632068850791827907429027797992385829395489785689726240660474255488633158972890215520381478409185562351588311658786596910851184489986331436494470681304701505874920707082333988617796765292988896845714962004416571515726913984185657854906893630229289302286276570773620840168986444893511669181056837086308715057638156975682534167524064132189581367659934713895285500432696265532814491560916971321490365472613204101125978224797383059138249914345639110596156617099219264100285625525725015258226998862190685347899371947964548069476652957779123188740711640451468946059153461534257151500142540413512053264674082799238905228818052285896219769059312141105353684602041122392317734765240551597964566492459947316819983745622695802953979714616206186921245323922733486992641755119401006004050002525996005191628604621835880257519728549258464940663512479889502423040412197449458857719880346188700852929306223509505207385191097442919429901715827189532581281798319931452444845033360115387743168429556034562273555108242104961663750841041807316974411561292647164572365411824637465716745608174757961914249738880491634578119547337165564097513772978666563420517537345583813573151237045795789819995849225449525975942292047653587134587219621277043868940901106037753078410271565103373200241920803997098247394726528495848929850284174562966849516124833830853149931059028555507439336036329385604427444113932740906623345423735538066133763851160063842987701426590765244761434383314946926828814179330033654649587883228271721619372032678164931879014972178973732124406040397502217428675290053499156074064339786635986088860841719695025217357366670818721409374546397925131344221249924372652090833190508780975542600907508429838877782259310304189025676468981764136873035272255324807427518042359692539471719670430269839431044962973400799988717752847399751979190814129385405224756699658567090847319599272321146084578967102427431838877069897259729544884533202341036820001470345289302334403678058315972549398504731773750987626254228613929740959956608406576444189512649446167012971968351172178242767129384630676315805139874308450692896128387993127604281796416371328342383705550928597560919466362303932891955013950572583335063748750407414619392153881860616890000087224850129976032981591453681755557816460543519509954951401084485136891450530652262308951857983431300371704029491677287597586758162582030615379165833823666277630191115753755261486164313204191213877839809595649810996241483715341852283005254384386848920757624260249279284847919861233051179072454292038138003785355581056130864805592604797557092183624239566743578417625663133040769306694379197785222245787718254516339123703056117963238751323494285850451102745109020946015250202039168283152657851003352860837127090732259463739845770419829221281279108354504408599225739923848473513189656741815390820418411717960233004065182117018780030081229578078323093182360555321007063706122306932290469496720989978647043944661497748259555107862067678148660094282272332474041997940297212947650666465611716415289441088423402454229935236207793897496128037551516717261906455607409569385626137133166297153446547187682479688252412849083365747994786787810359128866909857890272577300722245844251481432067220443652670261079232461423639088158683586402757264151606284989252390377192115164592990228204731633017941552685327889568484184701154557102440934021642851737117177376604749786479236002875978000699988582441856388561424784576749890573580902737327916820439799095751083903977233145048189595880903410057759651922336798559872022964721010417823349974178295362713032728725566022266248248385665550213252363998150573371371999963231254090523927459440988448680870393137149887446788291145331426050122691505102100677426477660774638483928814219198706706470071540052712401113700616517820372700075191059618717548045574896458931856535374611130773521281596655090737642795058489800946489719798919223680951754872586335229522233182107669498957671460276123103265702514009833063916853677627946912613102143714740807190239709677143243698704236449474418618566898304280377313273694926941880938517284846832923482874012497517992182859559608828712675651453027443554641540783546601313651321989652592095486137760542311976117086405003962703854535035385748589525683473372998505656473794900344218785207043972147694509300732410449748350963485228842141668819577263183536715753135862580645115710356520543154333105208535094076536274810219607935872929968980175365830258639167712655798227344508192021236175911319726745419120768746432290622533548389363578183890610945828573681894604835937557842752532928998561547270006411341666349956889807704831271306643273822385788626512669879216176179048330576413630802797134891241983216730931282695408617336644392861905898212852778336482566958697644164143535474831629025803655692166264819932930159692616510025906550557829904932780590669876726167448438410808747423859545245931212109668305039702181744715753314380712665330937893038170452918437386678000132157286812627315033942930876889957156039515664178459546177864629969722107229731568523679697741614923328060418743578013856886318427508726511531455285270011733254562697494474499952791764467205990220159609076675774404580093438996509876105015110195257432999712738512270998814776671768046097211791518077863823609681102706963218677833857719997491391014100626219148488542916301700299390244259180812829604880151839927500055711835939104839520707259970067887795955757903528426576355354940304810866891474180208347306508843053895279554225082767916843207218393288244936409791482319407180724757270492967701234704447913529503024991518211746077445812326189701318846325686660264601029390995391917389980739740577094716815631116928902497935177392095889695102902608942391972743774864327791873541512431250275457514437154398439655861171748682013425943998727483878815783315612097185168390788504143968924769622435181143614799044913382426386252586063545283479118967276845034615150412291756797614942113490054190812724427082216100695562491995285808605861675056661658439686433619372953053559978430029003537696639534544941340288810211705380118706406418244174109802131099155239046040542288761963033936737465908015478319711879542860313867966652272063679460487533160294307362616141984579979801542899416881705889106977166813679499501934727629584050611309561763012931097363213815140909014004321391452870755124287284753534717981084775055068543993261184411442743877847711879924391310819561482237185546115222838137847579395247233709776959585452393524266842803947030304408052060714149206428767124972427219761431347482096678963855195349326167311372179634141424705315372845105627260913947704104826435890700990035421158043063616653579938337614192423908791741980243798713703761335732443363105275178936828410966689116556200283312292684604850376619697605854592417646734836818523179145604713860930678978129197553396180986087918092784385239591851298831364258434706908786023896237646287914820367795449880285376404858755829138926246373761301960756951523993141732939131325924862829285796602891921775807351687733468535373761019383292470284648017530980666530834132378215309601632022058248381048657124429211641295141294566353925728619106580247356627176485387942117822897912299346838701947579249345995934515775739150928931349452053846549723517232426486075925830554304731814195610686438368161512473506328813353513052925332980796416579436690617902413764555864187844130360071311481320647078001411983655804365179590491935023817003551083260808031028079258146991347680760298943298931804673539602693699680142560220076853538180100828239455313577825827271343208288610689292274397289289019523259041299955425923638555692284232768660487255075825312925577604815215920824742284598454632176989782303376880741412951117220914782580068746609458828396090826040323176766632900608353415856645726176157239490680675123083184034904601480870792673883563663839344288227484871664078314280917861620403436834196850158904696768234155984926962252636512920592518975480440934944184360728737709207945182769285565139137285422993187367166032835598953066383574883913760922252695124264943589932644913309739070928159394528944394311480800480918771275707042080324229271767617665092119936964706458073530139399441354613114033793389195653836933856616983651202616149188683722953170068086245802983993087646104733386003466228829834622228148446609633354634030418898477254799299802512531696203395325917190273968617607199052122611794682129386429196902283670198203494846990873971770010754101750269128234352109941256583810991151692951749667925658709253594557735899641134005826318275410328389380292299584650341211771104069635298928783246792334430308567632802687527672406511882358143214542568600269838050427892660601771844681760580010280681579694924688881171677734881415858479809826109700351753255877891029387068354369145273978372216641086188706073264230517806171333963243526708636640779304536196684704353932685962411067783841199029159336779109211185786608735836241824956652361600148336462480809403796479149083723708358214364623473655624652378706129848153557189682556729511892140513756039783686232959829484045413755965292002975435634539337438347374809957928980064339311129342967496277812479001931036297610817706265530101965351255012319830390512982227427741257032051620782875853653346420800428677515117568548710177010350855990693478469587158254586025517936763709380004342081564864508777269327264711297107929866068676235989010211927041145818691274530625814325050378225748805302446144177105282847880343256270872389459813079543006839232934196114841831215890621890929100868003845082070672023826479446043897803012503219039324951319217343264439708126835795460215656468029845836697004016022611907786810689161125491875928563497421050707146246511524854613511813096272294840385640829259077108360840714501462424923892957566734512620705529891657173288338398202438153693309770307467619205000810180125000447377511172146875080570681901258193349955376549185850012873127353305569598247194350164831267187508481274398829330223086587213303844262905077180449866530326924483884088452776179547623040081987411282130146853627800806617167887438854440763517533376658246948816528578714945233396834111639174056467974984445830715837312765625662542770615368822864111403074150658841997298018492330743216253451345718349462817708223925532267538124004112974411808297418728887334401477916697532296468413663659608604804975133842343621908134665863479764348224248585738365281550928321805506668566488953626241208895973179971554325809639197628879077274409248009527286506913497853969401244184393496742885699930186754112191128136916912755527189986777342888434130219982887491903022348602595633464116769371794326234585988473343818618743861918119371854819955605374517060337672757921459022607139167210975843406529795436972188922935161479002133259904579598696832084562953924847951722226729161394842396135479013036119114420322158945563423482141477429334906924429799023626425677985258977543910980137945202165862886613733282659564337088393471009899793114527890790755199189154286999432517288832041634649495262063960502199759848828753841740973716522510837612068543756832444989752731147772341024661794518421877244051298844116617687084371335364245084702983467480739104904989924559376578238820751064742896912322094979318488576983584106808218591979533156490606736404555698332320849297122903638873558201200664834232224596523687521164469916715715326039343122447706338106607115893734315877631428265798509071798548906958485606690208016974578392026682765161469923733618296956513574722491888137569001422422103741269858185706292083849620106480359482618613573853585829730573441674101970386595409166312070709148152197910531524079508488215781943654695511451731862002197116126954158675722470479333155159407729102602067517983111764488945196349808883025260527566028024052226787556836216025304308847167620806866307793979663565293942680311405895968556251798016670968143593078882381594080177676841878517013863850209741303775930423051286139770689090128617431691218974777346007713325074696939066191050414369022501696388952112244937688252945590781587381790793386994695609069945966077922232825885504712582314973655692028499888137680291696887388144245780348705970471956168847004424743227210832167945429754369232120639326641462336770179552815140004085673063384194158422536325948430887360113133170385587471690427342820490857520539109786442592771187316119857064764560312289822695480716297125971558227904488512138720013140901647149047761644394562112024992867262342911083642907120248889320750500449915640755698761998778864120440689459063108808149819894396985182807514949888958835143940250837085605873410874806008786603319321242101364750205706418669598730471996024127043601089358218457912301731262152264601937153840361437377561463928392415421822232778404907009563367471873382500192023761945810482313394711112076074108229700285752249254820429177218381577323164757993666966926702936820178144248601505689619557724354653479629720191679860845172039011713017936009741648251309072818142008105057930367278601913364267490439050716491529264731924586569254380078310262433095762060487495920610490169956615569605058945996693106880570231657899878977421667220684890339174419468244012908940600681203890385160505833726577772489273595253234718678984035131964931247207737915661204063950269684012270108659764835266402478236217522524448155995053113727465787555001701402849889191312375667114037005452928624604468926647865567188125733656776506181019653536554965441529135545081831022008727569344918859874205783912757297257313629931893873420096083802739222056984286696815760568943458598836198078142550054423364068462401610762676284228086489653902691650509958903855589365002780785101856829216809929355887235850341909720453098675125724239632321982883709211209159911907269001450614722730178035546463517823656282188030607034923098492772072668109398800619449817306103348915063012485826052248476385817718798325327885815641564465159035974440587196159315251663896724207941991978470817780590520909003681089125590912235836001651494879240123556114034856490582896563177417987426084158134449042782386481667620988574652613892090585709948671283372002105867198381401007803603278336546528306915378157360929915701088291130600858425353570083994969638322105929049349771088235536901135892560988020948155074415532043267166733455323696485650025050197387199298963637005189424709896999030731574686747228264875430426570310973659403385013709737133797309205001683071180952400388133074200705967777747235736939525876583054994035065428819309312389109259911371769527596282864268965172991214206461124839163503325810453479862418629523317714420517340319869849722205074618599453041327043635720427052230967304707588882398515455565772177718396012071478162342078982623290596022300464965311446189713961869040194411520334789142194036948128787832818013786743342429409878952803270496861654133628348724179422748252162334827543383642020756994205149720678845978931864704989601045467988385703115447941398992703528877959738068987915923354565169089797771179855680563153746353843716798286795631365458759820129133708655731276376781428450910184207431150333595294525788184328963425202505956093251187145065977022904629951459554591353370308139319420572187677821266656406894069063152519527266907203495226653652034418712085428130297651909372320426510670050059764840459421642071425362656399128553855750778858501542052419407064231079218196505326185537070977476405491579508468774400415293330766179644019666276219393157847847348000373612130052879848509427574154364850013841153386636617889081620606714392248921750118296282171004742030165773242333271778927746888284101704512098741670493336219055423690808720307262466188484359092169803098243586637442985147735857151420585037217440797367497201995756579500057843036866948538138628438301610251168655743914666372184592920922674485132615650760850832640414846275351095663161649759447602198300859637309722639603270722434676591791318254095080867890426422398982795642545447063336644004282694413612259634898758348572895688556704478624678964532945809226149434402118527910814582623280412108093504784970408634069196068926071430587878703614346837172571162944552370545832329166577817746964844323184577127210053529576111511932532401300302307960565263752811970700365150748761119070732684262334075381645701974348768962233927957748102348148621185812083935563889875503765062218325937113630471582728413062683604125735362795181265303671351980286044666846132695736753095744164674437826814563416315042067365829884935487064309486713816868942910882662576907862987779175403383697798510552068045951869054887224227502036049505338355620255191236192802296123230369935822540375640448016766231011866125764824976930772513227704480257116607625352047001956874172691066013056706496204768680110454369171940792238043018015229570276927319062171330678575537154599316717425607501665800023699711216209442339918137963648345664948066036050396006070137515460710862326802396696937717280930565423482682432747056473544095664634835200182224540948585842255594676081154277516522883535342545702959603456679883277616197943033607517795294741502701200662992517040962959064150366359875662970692701657710398863205521860311327944705747936598290670511885614712609801971100430751610893629920862262227949172246673872164448603230463784828341315243896685712021857677015894530061961964354704166988716994434874959267927305317711693964907399886208574746829122469982150659216481996775805221161818973290588670453935730798354253164809570058125998450546884754505893436222623950027984580539404311822817519835366008900618747348151134674478317980523150878785017128830968228272933896274172125525309642016147138181742018580051680799829112195353104839803565918655836106283498975629807100764896347696797067039484873664894370664870258485588555858522220593293363737046244189934772594241088187748664944779328570892443236800658240674253667612670973557731055586900690024606870188624832888788876160453254001462292355551254743735431685860512294549127241383055478753709246809798293325876621618269746227977339445638690031665794857099276351382202283362244769888153386627807241514010095725613671616690333104130218415238351062683629819683496527207115907954488249863952470423547033602215996380999394891758079022430347839068440450186714746416774377606707721715767765166687845337544865176710859690086618305058547114489542210665704446762748652503084353539526074349860887294456271996483146472427219747424559705765909540160448043064711720950068411895034343357655396118660786433145996367328573931430689467399701892883696505109114241873102900634748975974187967968026720469090931059934396186357466622947547137948302523381020606952171277253610754612720360875984575763915823312467574807186297307411616261506168965101396194251731262316049936971751743581546432244771496635724505657907551957146364103180617716898459750758455576024446242471829579122611954334270415083521220515880035012974040102816257107988936446086531051890650160401302124590558871821220466972269540312193799007562048419119696905823213852213930313862342234330947710829059836866292196051435685139970333055554386412124807077313476478618847025543924708360751809833270279781637083422133995106728383584225329533427810675750131973687430336626221684777971500076590318593584460192306468435532389157452220966170417794514784945974432846505387558188867747051007599526798414896736724312664875015733698905565385441062728363191881869485928209618851564958383148894351242618234714702822208942692772126760780501535339471303361918545180868603312246601505465667142261800712479615420714033372297489525708875924401455914971000493599764120877738383583824107308769261977136573654432328442695776599994302650679450813885124237152570156689066988584761760994184841406787599950485871523860104741320794127790415699810503568376227947743394359561502182882310810795380482423306966926243222996990965183402564679367672416073437329046889132001747160684374744303406879170277527788920037591266509409565733133177322047763321308814613954899968969467960051880552214520393417395288016214391618884598868365945973746482624576768692626057486218414146747586048624257585897644985625775487675782942063927926095682578023879439578263511097146279716463987947984938068953859581629035336495438580755770050244585039857838570634232966518462970984127161766346366302300776402207650621916920210408707987114777231905766772606883230856782958855811578008568296345288129636604131775553956266174889315187531215667348713948591411398935840833140483819377079856305103732037316740159232691381226622051370664923350771909368406595889308957779532484225690770598607646622966006734377028252111921438372150242092420232244614531154208324928847904312173167606048076605284934299643249771593745005556955347483323156889212578244505999759781768309671188112671521952581865007299873664672180047700070923663777235065752235281407833492444895667921976116849094196063316069554790246005982329297724137387407230409860622744941889798140917309919357660924758965832713877379471039861083078672166610165744349885981088281902092495391779052357719896638063365871501955013838753647141875201917871965836362087359999898874363585484133852557200343639093261181047056335225813127481165848046475152789895253134345160414837429047024777581840699807860852723965595038333750750608290911055344466108405996352374402227873519698548654998135985208830607009334738060682429553300084357403614936948225186733922822776459630557630316969520725300291678067730286030073511352520419576724115272310442363158232676898810329651379799588403724023812778178532146180498589329978593392051200130499736661692131074799454607588533766024640358750353441859160978010949403935540793583009531959154570429062247818509945456724810142574216710775134222401900022249196310539950963625339855638208677766186145456993790669094338124588399570425126593596906125847942183679524205792636111992174530103094521610990438492789227475477446633040690220606838496807394889783832336621506042650274419750482938520296294662807325968884242482693980604801469287157436596898718816940437582628135955831196089941729961345029882239107676952440599154515623696635135811844159089097633614658859549377194425853345996112752070879474773783114509866875459116090378892407755112398802046088503244662078000942257539406779879541706594784708097556094670433587437457128049115321425666085190017946100905515456480858929952540140422969365283791052261356371542812891144738447368873150476587148927558429535297501026190339162358171474860842684195184934467091141356814027005984191265667666755931986692519022990175659925015354258123710490910690214942770172810937185487943381638512271888430892146009165960343888359796243437451426118918560960777238649711268446642247535414687562024945087998301073591533292982678794523106095130910958649911567974406059712864153578717784438547040732242385187972932805571893495166993179673640296483421910525789345459028270054765712990243270696284363019365963405747083949368588968608410316828643840539430700383093485820263663144155952078105910885756763659361533219645381337236854370466203673097498339938856622010664974468899771002785450620106044904128773062074977910711412933818292805920657736910292103137222570948861113781122452338752817957517626134460357343474298767129550321898603745162696816817379570764802925982386962853290333819693382939481898195822498728596245286379475136030362539625739342048041049950154933445618924779393425400001025554765075714098853406412763423638476314279486258616260930900276312174335660990586951526606124458024099340111710146327976900958666785663503538141461271045176681839266702665488643926426686674204910952331709913313541752903861294442646970078093825175206318744141670041247780009265168681413318710660353542541784262029673812730409966165311566660498579553275102996797568804396147737769772145414437549354417548470605186586400115986718495047726639448371119110165572973871972155156147222526343201975775464398826318406495975919819218978924504028867931231580161171058864626538041671228677636158347704146584656006916626947456974752047910140533449931228819430033513058856232344944767558646661807690601770502878615283787567634581184688471127886210154177763914841496777718915607049282095856721124831096753197774916161194060444453938421314859757860846039193454819412150639619387413996809133070239686589470512902550860834364719462743752083583873088461007453185516098600168865671701777153284453444713850072088868038221927824393422963791242317020407431538240568469469617882167135985674159461300175456480976918061403777491436470698111692777142237993530079631949881026890864547807312597823394807882987678620182499329459273720570889100309355624934899541880131151937313318592345184197998946114460563306345226975470518458630637627682004461842163843545773444415581435178927648570338355071768497864300964702158603700405233540409994224995192080602637242078253535461018671405424753763442297658435206209371538971899308116176036904666612263402151320624327763084378405443927059947339122073107614080015718182062510571532415323340058007481693879509877609616140928052012794495871334943726425674883503772704798502501499912703585944709717080431343881635205692311674169878114200988515670711098069137300200567271349167330333127717485867186802875379102540602048337772697449672160002143118113900181024229087859305870775382217138653310099077463798272232929364694826138090817963955860057545223120474510442646307514846910328366587777516847792846323994864130810816352208512553385199334527769754236112588857215043291022617833149349625412033403112556329624081492319653100078260474371044060748884818745673127803157989457987172550724448991817185094847518142309969498765629288457711633408695998291768168428067755457493919008751534713030241787293854776121668219914006299553133127675163038674254423010481117998411436179514273061972610428401745786101024608552919405962461510027921123870856812102230054237796356220096689974195805814079823207048569453241991784529219943412950109674172832880549541527708540747267631651225727462795110304532288998854491815890641875788863922109750909577305391048765181046786757001097820127339319456568428699841754050498717245709751908355922904847987910101048699749401809530758016218244956326674748691932839992932218498014630712003553971266775858820748228369101225053680703283432313596156272963991873203726095672453804704198947242489495296510886695378158296549619426150519424307119948579042489105739953384590219914717450152880428775586646923083004481876688576316000056668837819984855789710986407266762241534327554661686838345202395351450186467155875972594419719776773850508281143125198452040814621318616477719838307607633544527447399554375404717112228214258381555915936677374672204172277545415077856965738810581895673634307674519660195420684163018596506195042708763564691781168907645180274355306204763123449608402485918377083387413990307975755190317640236916510435909416752725941551142172927239973016349032391996036613095383767987557945034445644090701694334678493172815541622188955074136454902873086123833413414788726914635035635862967307278160834286776826430610085613981182128628797486933466019061661115128721711805798056015094845709646275178442673212572572856950473956067953305558709703932382367377623678972806935924968009139977177532398384556573237771370822694725540017109343054605979779388808198691530081266493934789661848582044858415118815321324207388717196298485768780821001754051211004433948477104576754355718057785741953388075252845814866052655039207577029815361226375526543014259857983758658276526702737878187890446880005158817515149630387618991705268557933969806080105855266043384310299048733823379344008722699753887346170176889609014078473101982732153802117337362645058005838964697554043505735566920083488730350444871558919436637930185630048700675191810009422020429560315636345595072697819561576707159922472267191677698607019191744822543745266423763635249417360121832276409812715177436967448709762972259544121467113499601087809186952387473197968244507058733067366626680503322650766870708044320128754971494778092223312577683905099684661134184620285537366719298951010395916184618348012368370763282468802030132293495861632858084049664090544617014071155968108224872179571968184442374810074922123601313864077155374118953490934292994166660350457314143587516924066507550912354119248513422392631979926813646375029704090071941824375116782230579454867598615033221747180143188293620692954316233664880780229440937844920006342135769100597293830166034631881551574351032981422853370322936067375929768851811750834859875885122648916430528474706174946143475973027089262516000005250334662969352322538909081148698715643993913589259833099695232464837633326804650456903973442555708522694078259766411287289211498013528245088981598338895084747498513405184324449509250807679101521927698782258180837359849915053714103451151383126047499329602774991516922968902072567158839783176686760325172882479641310679239605634951354061984781335552426194612095738185386124634756362259564202685162566624616192658772764547255570765867638165097300735507086404931932107209070107039935509746669818054306554177388726878730390880892028874668324144180316891017051117369636301328034627071377126874903684197741169411413610232578651109894869594417899871969225352324217207123216901363654402269316319406796212052226362126446638354670268193575851008677823425375663632064536246925565462726502685168847797537787925480315360408626727883191431998778831761433793538900842383321923730749373976820180269547853367067526921578415956310072292262623474826763810626216648826102349267495996163580745962479299323506426868188441053230310083887885435199090354898290261796609719473736679969870072869341020319421037701295588787278523380658168048920742674512230251992078935118663833162794070680149718715969648278897479558675296537349519275939459793894743266769664939754709943969324017667111516413834816071840974766862821029074973054506870335249055899832703610638226603553939957192494366047136125210968114256613176208346162649987452443161468449053035526624396342636792446491607232591902350969583638592277605689267058709766750113109289857305281735198524169005568732726189565901647729856587424601198295076456936957543220399585666706077570272436275078514345820980029898998867555039810438392780426470971158023041999355938038118000908680306548024626575243440053218990097704437256305966646554618180306269517263931448201940683680786475331306681102050003778641547437217553863429298364031342690237868806586761963586326253433504941548633192394426257505727769057924596352757907008966524165618577418275099498256044316151822697929172217122703147165977183876343533172791317506560814807744985076355013416144793272585795640759548317490278591484405884327585185065506813510619286164874893626525185335537772591516023644755699833003703565326811060363272628774524223068569419223916056751691458782503652937732910441369486226304115343826135308173959740411600699296220310202783260582861620998499906209450941121443925264410155176432648025040968295971494168928056712911895651989502477547382627936372558644032853590344748098008949457265533473803921235302798465186415745701236316418316213752788879204452589052396601538878694346926149765452208345056467446324514519099550465282899111253856348478250593952107430653158219476549555138907335007995854283001098114093914191201079338332999860468095813911118515563693312819120787777940508096154265323880783703425074648034409556941175162449469290605666783079714547577934536469089038249403764572358032490114665848553770053501214412237823009161950221247733164881550136353877723067677664524847769858814770671924181914445981691744687271800572227434041375879648602537834896382458391989779014913185197878343962848088239437881937920855500659045347198539614177840352925337185498609016787161457063895625857194322194232953163289559305536221335950268278675189871504385034074858756382680342873614286841801627852715845120063673964330374545287836382119994432604303952873100503476334042305380229181315375760405546409247464545257311218593065590071534114984779172394037682449962792364100619733839774105431649361280597450888222469829794325019014860542713708610234126750377302689478853454669374543584821860663885124383020072630391721025613191869100255199333765101274430091164805571791324533802015202331350560642502829236833047149987271499081556632241426787433928921259650612207412923927744718865547584710207202707782989982322364142129359235339006333525151665624530274164596668431610449519888400382492674045781340524106082123036567413216266567671601122808876179839485222772114781528347909448310798119254154691503685891999903619473753817410095919016622164196033451220671875609485222533667086923805350050170885851850075575209606304866879508893053600450666713575826120140716278481900754924542915008417868928222100621887498295606834940544876119793474152177424582819237559572845589958187876964158853788209141048961753602010504128667490442117529691561929391469626791893653889955350678577709309201311372482163278078916081794449636668079496402193573966001003337026922636601273320293609634094717734496566273516903326172137656280054564835123547025286866695687168635720751125689215997084292791380569474008180774823641547872212470001716531222242071783895896990109570271333576151689471947475400567602609282173745720596328846106944211625284105515946156831451320058093082106229324150709561801274423973142886031686543313058005661220935757627876406859759303026741440863871169786834758191497142362946139499817872840703356789752931340649537429433226527363390577147594113192672178606707605696819939368822455632918091933576894108795854343657106835172141284176321462585743505024429881052796162643987644611537773443964087463263155349880149762239425490113529862200864036605286745665233974268652748001381553735694596895985994479846481656109565016167076675462997319682996407945657984295012498050279171148920764208244718375406916485384279781762502926267886581051342522425909153108432354335284802841610743770256952222119143222948581785300848236313663733667121119962324711843357560920034730797569498260426158042050985876679193786330927924621350483918631886012305154280434476339733899030550659752284615092303015335678412805773658485951779577495260107354372814632591007458671245305097480536188932694092274217116930795681571509073721807251781632483149666920027416335572880989359799551639043788489260774363570050387060131730847914454293549544751671172854511771530029560226461452563182084219098791883437341899449691673584451426939047798627171373349091969472795222676300970364622068023270330608532086443455400745210511831661269271749741152420296705632844698993688719082083993600324043438033463466304380782370044038688946779488682920176823210047883905362903612302939510874335231177960127384392497894789252070259306494539907415589521325772802692291563207456149867268837534042567401182651619994577940602745298941230936341285833323432863642222372922123461517102937245992607406223853653591438129485804001473422304605005436135957164200384326813782619132747962390591872832018240796450699957293820035346782257094889364574045717281959970000495929367307836660005179454102270849488494930464470657752180168781214370676463876931187395075366936053049176677896222031146002143909805944558383227818438529626641369886126341114417753442077464825703241786994585398468509496195125436480716027923651603287370094101243739472921071128441050862051574803804621871704922824481187149085296062674041376887833426464472646376946126432192363839013030403628876295959841377179621947507526715216471090437584115597615772672538075733272920750054490473798047352858140399490691844663494570407456132312003840007630944253089965714690321488406044013215557891097423926982829424147032358456763211116986692414455890128981776938532340227701682922160578184129446276816580230824515050069791515326241861309146977794521075022142994799223847389802144269123021457514017069201762615199264346097355812653250742246704422872466872065659156026649902572886354246667773436263957091061741674986150853056453781902204534795602216487323665298010953118456863733847384771319949890109369100059111323130298416056305691615418850000343302204422066274103436303160223597759455180955406509061929287329474111115773039564886258815218304026793171911153167653875317138093984651200610576440764986815814926278155845141921617631833774532461591579000454800194415049858910055457707679253434019411353679797843533116798890754754549982521324353103831687968735603819300750453150822151666905615557091623551966366312446988916747046256580804179740852082103043495904352666785082083388316240819304099858418772964414490194309753742874771886413314490485188458111440983502027735311356903451311820642492232832899611048808514535697587117675329597337277409980078001732923954500511824558794635416384866608103284888793530947762980145384870703453069500676401375776232404511444772208819156042538474656079900555546749637777116006390453116607750038648353769826343581334129509442744301085441738016333927443337291073377554556239546011519805970378054304533588739178339855551209132948747292581820204737787695649263776200430588175913975504417864661702742140655678062789725144003416808622237212854470537338219656169314180133302253935679840205766792484180879672389416514930612401010751576543972084013531506958038626119812581734759210089355962501902196140764776964458121329708393879271612571849223481443759827675514728360302815044925229137376823683752335774824962444922297941312274695225691482292594015377277017110809216860939755520017689882904677389614226190460789208404725192700389324747162662382038715412392053870779300896440679440254237205189612840745562375783538546828746984662381354726802145857935630371132150871168681526349933468111527663937026544970076870725705929752884149221013880167375948635463040332791505003305321533813756961689475745343836489991604994423116268912539814962706289719788926385317599382577415479274541567431099694360439721754580619979007224916527608960395896824859440383208032176689814285543167454628390042677765856632143240950744104056379292800987321258708869935269542390691438011877619077414774478657399824925487681307807534933150442783306427916410014981463097663745630094365213861770110841999810629335831076246815013502380514629719842342796980114405670931059054346793415002804389877905090807415664714860555315133979420975475510592737285674144531054114200625558444664737716652126869690258245307671689149061019472403420876129174927448497089699844552207441962364491875801965448000801231820533276773854033972620404488892652793796292974293893351222698675598882519349510928041865414394695172650906522524931526959696369887643317344431846893682163525000399270713394043694355007649657830872278009595278900919914596385295164899834357980250082353251674878512632197093673191043404631271741446771148502184229705118960109737208753711607763047915576444661181561298183349068504734235006465174757833755025147421730255203349983603298217991600979403032252750887914504782647458968855402743602673656342036913672007631391253248850167677654877997786033082629915702514091349536649221355930675262080167808206713092607066186502357954472416719059014952511427615792491617603347004289291477062364398537771645340645971036500430640310607491093122742068787182239219219267330257104827941062329516073251037368069088889727159337849949734623872467968254620186786971254883502161202440541453969996748562115849232393870235034968437364176086547265647565383280194461720712253225370374663739076605542851150791573439038826781520700204076196433739225669847701113967824882347641570135631031465890563644556155222652534670751238250134497351275088389505133454525589185411704212831593240830266169963976269524700767325316062980957812634000788399952353558274882198402982110317263777347446385836448199009087437166276921860388607454384903559415754751048198423004756519287944895024324301729488252964376348866745480944809497963775643661485660338332778058564065071438445931083802856669898126975347803345416616867586488597165751240695729307459265217403543859343758839352465910941598786805914510740990468396149122806960343932030655609320087026676249040568501795441908520601394398676280459048155448488254009415657452677325419937787164256647382924339583017913171393386583977003601250267693069633645562145929055128562620496639192286154416171726504420975025832923736912095056203027691676260604301355627153975211362741648343945251396728793022123691487721126343345713421793122513900296201640954191233013478327360946938439216109637834450963610744292295920985338631647874899377075053855091508230402154026403253212855047941990725053134089537517828401886173567061582346500461858351685343069568184128407264553386969896091474378710692657588088867515866665860784095579515368699705581940079330839730723434738779246281539422263060761002378343180563233754642226690916514226174476696372309969913024690988867781376093808832428082059386442239183993570783960113740800874739556315781299795340895760529765364428243227373251062539789671489616154528499454361863939780811364941200771952492329367165851209422711785382962743957636590725633229439110259427094417550827526394741752472116021868910825333765100780321492269620946182273579530472107798138329156092656108532675037802828528996431135764370406754933596172381250389495642138343591836880138693092126447775719280742319662674430158363035543375592631972973609118988411275994625070459767356372024588781041702228474420387439885664190930216752210487963445778601584949578154274609700373589029038610555755107888377117384632131283802837879064978311892662912759488500010470177662797219668728993378157508829423783838828885336685734479339712115859744821567751875694333614074446199063907949802258985559229239984340618526855541526402072328086974808284263310522219954631118043957085071650216604343313076313739523765106259746201015377907198101954850266289246918879013391529553812692935679724223200111976065577564840437422694657879232027472827994556580427115253673803501078714350416947523891991963191427346146992362070881285987000153451172651982889061212206652573045175374565184036106028067947509897132603772897384154669226884140017868197180841302050885275816987005900979117191002581933424977203482289466234237287455022247594371663830605891597703505735157593913064951368104138831765193720791775377406000896944301201341936748981977552214318272660237606584145658234860076058281438161384528248933773668816067483895291721192019808816432610543546446825684164354399609123132208710690613738408619259298526374306861685077543947987259038839131872703700676496500712509620472030136512744906302262132392673066693970246913151642057264549019739680628558850700668696847979047118402585224181770644507936780378386871556247024217025885930427174218309223062899475163315451454405267416760507372537840694189445311465569383964537045237981094776880458302631370622214536005909060005454707038651306374806647563495816082353465225873977752138046710176077929590238482474375163178047858941740404903791334976019161510431839576308259132504605899103441108509583126972599458790765317240502408857038320812629698002882160958047251076676739369223132576561006193752742415342387511192761772956202922561864386200181796450080394583100265217053951660517871840828476411075878662804003032640943360549646552931179310388314084539772230603315898599700909953574322899334097839596365317205014312796850919282078989408518337699242223363094701170736802834718334557000484651089719820390723006504041050513581128753540272635548327316834358287528390847510383399033181901882241132196848243471484602686381127383960024123181719456333614189752099070331790456522846726040454689870614758939770675573687123462309317288054410318194493630288900863210556629384887324546027150835437202569499161623389167404706187693371777287848247382550865993010526178186551480200533529254988767864225830674598794706276483654116900828777532399287004701495958950114500497031225156999083318733181239845864246698925383056342273553406670293516985216251399708665167335132745895119363091433512133199489033095080173079725732417661451331532473612654695142244335456412615745308828416308302574963831753223381598135662245786221250733335798789532593201054131493834419708800252624218609041361789755721597419995358616400020512865335221840261882936809820978480589652901010408310508381967140733533028055734334570850798361926911925305173677527000967109055210802803297478148157846220276278551985662972921122608673799031685050000980531496842369250065331523108449203463015132399547097841658492599615800144542586504206941193079407183452016734176510938850483261019278451858636853391754576905302843371120571883831905966615769357913974952851503577712928042576046230442223173508389433093036935876250069716063257718711506110383277881328948681097413829415234688772496888326073152520303766381528276788471702176146669120816986719610855801734745494823470421544040879372043014231539978153125415748816446302875661965486231686827173804793387220799592685221573271092292215145956028827178823574870648925087041223079958237304276616710205296264635778620788903512783225677314799422092965514341617934555379858380178623807982501780713030349026292201687916229893142388484022965239125960098009964641628129157324771847154837704140877009366191466388798147011938617743347762823354762908567499510961794190878145416959816384215426378319495290670635985822217080202502437574451990235597837519781283198802703072451095223697910409384462706658227683110552125372845426487326955656283623333017969512424025447811465206798129354373330481200610013898684529329806246330235261551705641619413681730397571659285589477195488487575124501306969057928760054466108241092143861552586471133038230466235677496885918361440742946513264594586695284666763619232130793253128381610512546039525509695987745152772716231047118024657950166213505533228087528068196218565063638562718996632580299337998962482794890521466087936644067156835658933102432164610510429204255671417279658301401635883328966875607774209564399051855864965273682925290452877703835492807054675894474226939878029007748398272898586028247523946143482490407640844646793799204592778111611601048234508674282151520604700573269559902746091754711067139352586885240621112782831350894445511749036779429146963087723981702986678104197929269557456985378522371252361889543258904271289587814939811459180763081416468570289131250814023686555490117599913696675417284521619049685072449103767352279608038000447588877441913349417897532134977998108029129864113992633211175600868955357663455174355182139958435464179554044231096494307664507129947813176624295204800303398805788957054082916453091926316808243935141227014368953545420425076029253090684215349120631931270562866347960709327477818636166686294478486081558658838757519565636531711121202094930677506491445928807181926305039271484700817224008956493542608730703865233083910687727631983003138732134328449377988242913881429743570850047682664706474379518356624492220489521592606958712090464757457176855636994399167185541126954347441220577234254120504655631778165085310308909107730952329971378843844780400229212190567645803756994501306354282430518410370253932990706883224983533313552842099674928459704894264311562266436394617860535116451702146861093581751518876599611481387371558135080657215690224797872978513886966026931548284270345124101044071718745071404690150624854219174578289951390245253775843970374590892748904495104805179949806413813805724746176712551843974647883744861865061074884227284717130267650429644200626270761316622255389640407188318195262779230481225841813873747446739752548991695158330672967497959020012680098787439812628974291669489894775987011035963603718591804006537012533151245374046702390733471320084219494002845493602675068281229094303522208127813412713659040576477581277607784306799574946331580259576726301620404437348623321223328531610750602700268224200932511443525631073833481988957624098644196768657770100108996547626926673098091101460383043609482448464272069864067402764161855366968616338749810085790999984854331742980492098984803771290789953866466269138522358298439726102738204371094675759894038856156018705400828517015996836565307460659472027119736727530836512585901507655604353610536774265512676609481871478181036433929043534085742256985218754721705378707532249378308580635321732390653113703352300130544925709560826824544496621732641143083486061368400734830994233193065205194918421577590955231456260934598787648627131426836463329811376768102414828957060575979814257095803596170273260582627651709674760430033961189320260327144944835643873311324788923807835698136525107778665759300867650110656821561398164818056000572061218634134105742933295402486066272756438114762609799605886828531998584796039893622826100254195720071093258438923499855815972394316685063119886450651719554697092891255383785160719749783254404188249997056997253221019301085891336733677569724645370666030864710522352169606909204539736468566758374234147301345698422905310310427278397186928886223972656588001285015143885450178678875806522863235335042101929084723500052720813269925506721538631024437794225306866557843679055679163518798147004565702591171611486123965769664027302221294827093687912208225988475532108807037776063783165315812268209418372906733488811474484421731757773720192260399506723834298296693857201115213873164612056920145905030851574621568797738835562672880685663942523904510123237170130975302075913135436250049059903644160068148820117961059805186003482000199639515514428795399907981270063130373916210058623528820906222150012256251657422672463084971495118957557107347144827235780711551082013701559976781399478331845866611650323867496176474416128202950993894227469257262997261800700838960354708232196698456393871513376958765324728238014424163056837258822883090138469506267690193796862670748612405138068202311850976245967416806353668663532531272868349325241236992820531920212871248388408200860433232283871918076791305862636676508831722453809089671227192765673346154857661369695580071485730754026696721648749009867676561470760536159740214969229902971932337117002136716813010068817609318802170369952010030557240317282455674060420848199034398155881801412041667173562939032800306584882132245485692909707149482330224759677323930986572227410601949613333063758933425203891247233458603620410689628552229478482787431509411471699122327626871786872508757829232106039779431139918921135969357472109553991972061830719001564656553602591346771490467079106128224903637331856929264263883066141347004181800148141420110574855421397283922288391681538778080663301875230735775708612649956392093529309702538992830532151379747644649341797269503532753496270297940493499718025691312391046750810343499726126687871271022510161504019448760983057557085628641749524063919948587254956979412316986375695641274016504709854164834910438421112232837311728384076665690632435983752896964509292647817358993292506593998629071785500202466500822721510780675520842009310058054147121679764980059462630696427644878945992004358627137592723450945925197749642146455099950010516616408615677776268049227883496645938557929489871777372479049297438473715029870085486588897656783208718931161232407401814223175553120180967118561759915049295111287313772206662360204294437300858083152363752820815956002462359832134163402748851472747298633855824018510701922414016188497964978468342140185036706639150302353016601254594744629619237825546503776037435099324990205659136963879577289140666065495007112368642384254965466890712927126184033589448464385331565817788943511086602728302737320950449716276368551627388135662767639777205933424629998952472734515859520407725989792150905062916682615799289799107423572945643125259278114326249486715277507921974122591694634103322442251638288997201566483392489920702255662020913707757635314403693627695202987983615559024404099466367716233575913792711283143690985645027940416741906832872527046098588533314159036957147658161391677507950688549560129643051498396954785341199329047839604026176462282992393309654875898648669195568558779226422797302861990913833392271420835416885952510409252384624752649018353985153790765999820974682776351987475010055355207907733289475566339299305543795032628064450795815504054447482198286610974235848093300929926874048993585096368231081648050266509249048023482832521829299784270860421342688273657569260596580446326336443825709820135542979295911835459394232094322284040858158049289433034645548353411015264153620807459940397149957945936146340456373354414203880210645057237716292982312553522146390043378840352002237067783837071135562518168205813011559314932771383572875796624210457600163406421125964436180226447129314081516066165674678453699610325482179897472173578465847183806065638083876306970111674881262150188322812767648872103741143868543848350275009309365753651977353958126322966839542635145085936586238267761953079283562288137631207454562610275353859535233785323077582614793719319494660799989323005922132843732078453733188645440821521801080296516940894739498230538308838943077361720113904677396743000274833713304220306113366488237444926415901087866028440185403341112068366592773140036245971984412055227712198115284589846251789451249058196723032140605622061750504039767319280153093406122139891106509068330631397658791417052870562910622257852341817123262240990698689284167512234029283875445521190150238645900889841090424595972244022582540222507883757502721633370761017498492471041872664892118705528792731538441075753488661516103639602766449246806746428603984929837096767178873747881592962341113853180506166120849505027457583906974097391960832899922402463802384531899866464642923381304805466002046849959978363110936575024871511816726253037182452176360645147528058034244728133450494887757967354867437211418647804690787052256260789933560077459967449637005782452514187051670943712555992379931973585211194133817288526754755201694156619218431957107947000260480470464746491495966943295396420468702328439022353013216998844933059463969495799841341643358620446488330888511675061264432790745982287296834127063217364416255053806809057524059983718588357564495321825909687815104809002583160732195005402496888837260382559912858366849430091471482064625261986278969820491702098692727171571749212734188221736979924541945508160485705195766886325545758776286903659662330676660762438459069122129155968097314066230597441430165721670649937956629083174195823385654322911704617390702558393946357232633252824441575606972350062178827325059616354860611593809009047869471466883431254312165073189902722114376820287527997888736291820832303796779003657004823363687212842903734546861076360116488775777700586991411090913481799676181553449902437721967299892460655613805792634588028694024696017343041269558530576274965243703605400142097836129608682702853902236324406412320119091955715224118428128351097551602509088084398584341987613219965584305545964972029924610129571791705809194194538330689909127308405693648383221111717479681826867208260399485327879472147968057136620550543026744997370901482343597321160062253478526236080332229375859270733388363948323268231557794595102297590690086609804728535050116078350078573368180043153906859935751588793419752001425106223117420963928743667304042652857605263007478399318163899394280611105574698165004478420420426963941429440080121525293845131883418294542961318748097213015889277238158337258067401795020838193605081304810794206194759761911254401932168880338838552924521660554114392801269671103036220168171148251793858337476756844354761829659403282119834784531321555169604523258093384048304607342477560044360341226399974045847992498997044433599952120330485617631646742433232318982125903780933676278316460538353926655668819783557942059296602447819762637548891317966842064039312411048996349832076658917374055354225008514508370772935364920662313625936341736150530062047809092858224616237991039953306779778327082826218287422892963549979901156819832411509223995842396207083766713903152320793370406890553913904236675119817872019401714429039233899295344052661490893617713230667917836074726680734794124990210580228449219063343409860897875623390036545183865564654184351481567491374661939842140077219826718375670507399917922067069975300813168366251352173638032794106643489410527183893733483061106681204038289334914553837526502354487457172049996340780407180093518004226681469834751481320939735435658061394994967317527718414203611030785276100123958325445805990235979049234319790587915019978604555989135204945115364744373614410108657828557132727996741849764234298175773640842145813948019362868343792259932539561603740814377947231810605647252079598909153513922618318247359611676005512963906616072785676936516063594379631204192792900691409568703818624797702472864012805702631421966683103179644734040753086789803847944886705167733957161382716756903406567528200466022236390501991811678024746632903720952892415274987305301963836395332055410498212514368726309488479385465959228509968022908539121559720351298477039463778801470045589594561936565261776694435328927033951666814679614615850886267452818109144757713466902393619931236515911449013528415322937012055385911986094744633856042074341087358197252529738988910137784877403214318644966681374332594461081157188815548604630626486588489477485692323948914374976410420586289913715722380048650828837334918123547786309554671670345170806954293299631564357947344699523005366022943589279417686008781106511081037531070245858243391916716311557663558270749919019662549037788082932177104272887527425937717005586537094520858231592648792746242798281133364431918189967431176261436131633801864166250543415661096824818838027842821850789359194874090885084871983653647561820401002549525064491320363479700828793870871845902084891698704763333629773733309768546022780762039586548462179975382613927268997896242003956889742538692212714128862010924321634645034714527578334806734086473398192315822346418935529523701640526734988429597043095369966530521090196172670209974726927044925873281207457275325559042841279818530854004897359990124751455805438805401459481735605094032314579383215723682228816376001738122242088681287413058358143556971487959012064474747890914395654012800753813269572113663995018984570385869487796512714012387871970346347900387425379011999772480976675914320671550053882004693419028413442206968104579561642162163931777856886135446709767453351871886544569694779638696654741224182736470847836869734220961782344292470863846621520037760129158638703146727212261499285293696066934699059601694590686298282128103562955000732110803709572465125325090518783535310695231149414405209631765537972468557912384267830366794781094136134562325897001459210386170536808455049653560703988888340764264406649230113956682984055278738294429683201176494710982323362289583873591918003229817898811764200588301663271075164708451773013899759049271943349838380899010370507325096629607934453501188914781158264447688208031453908805548507531282908520855224687489686931203326540833040668880813181430643698713287916333468034074378810989232682554274021246465680259510886357468845786284936786464193678223123558944941050107849080071945528791114499754042987394102005450773352533035634489397673666583124744603630672767413581848786101828378477377769425152458768398194892881827276812124318573815097503135833609285858329533141452367556983406065534426691958367075553096157243062427971028686065112520587580278014563840551412856702896816036301001690222829812925847324288636424740653105429681678437825815443276314753100269846246408304604100670014111837114972853091907800954400593012378021403225022609549090807712099698689465573364781816549697151995121382983147857928452269012109017722130805321026999162317194446518249985207483666435674852879864176073090105070323576807442375533182243680375683847871138425402381045997800728328342484496485277840514948831935344629386398390176713302626315500474986158720707552194193116543527185853176790555757402910248654355116564978029037605513993657653393253065931129383725704567886170956831373378851228484811916248285696354672285839904516747443382591973309296876298820514481083373168681741340521695479231824420705781443856260749310826593981502997575798688436394537762305720317665404479441272456095814188588131175892548816978500668871011746749539650143622595091497687265689380243599118141637934487046132341051724641093078875659842186811440792131164818557433280075710107825729390763795599736144356586237525114531155836900011172205349923384771005032921402898336508173317653333766870404892675233778437014861655629850082618611494717172633301477716830300746760064902664484573269441730956207463155067960601202853224138275589930173000547012708905513536082088810275562520830060012928010075290384004842797850965168714228283233716874728032049828841880856384388638697198742913885899411300809205092322870804675146538430172214383904136068401718641261985498653676988283235477795956038971482322325671897867455251657570507255235796118651636844226787200626396019516848384745603458916115804746907831394241970373013058531068526235813570419857543122905853454594297337677722216846950326579441939131207049950473724677386014185852600516927192114314593580767387897588000165265884753894105665829655329969058784006472694448990416150375334706379972845092463216390874910603282462385046859331178399140347050974857223249430515468282197360551333592065971395643340636700654880466235248475976286707963874149965836466175866446319514587081417638126244358904151564040317598427968087192282719831034188489719698216525841071917799285965379031063128532603419734149463767304215733745876411813787433004604120167939250998807625632939652385147558557334632297280627511755122990505214684781153809280276905308914830303621613062995467993876651827997241295989920113161885214421683285187550822942904925064453585319081549336964594789509700442197891588806995716254861670159975461701638940254939187894893359348321255126451609187190289181136454104938607248664223776716165477078486851969845402711334413233036308731051173034011544794478530970996667762401924191975003951958684975865510831421108094467708995888887810133825401363093335850588363882759044392341047007282549806955133579006526037446706753288653717986006910621456920931420782590923772162754229671530499801128612769037786168091787044634989301264091718170776648307874841056120153517314583046250517435534841663315015175151329593819872837024301469701846813231403879279558780293317572552121498228157129851679796331967500328030582874954798492982933077134952173161208255364099400900324465912779495412696381867976549648074476144113742796334022938352714356369457940474104218840965434788220075670967861840544734319571803299603778453796276538463695856980090952436854442293204180408200544898397471562835537653427759913977109175289081771982590878386248977805981054884277950756473021844755365909041273369746527032537062243725122145207597362798303615013379517339805681568206217319857234487610158607193974951897306262731482529131866637034772274907216540116664969306885086924038919096869865429128657839641088579004990665102250354566744911783503638129034197876248746114951395641505770679726685959626597267604811464416555234725823062480429706158143592413898500149411463011461152892831017184860473764440971862663948915058660513812320741759738473612556676604723059209605276903789650005045224236638275351795375372111544385352571262403865063101697554908495095872479025765459196806807630703054022852757873447478859818972740979973662101731419481332383585976802354976275732222040754849155180076531021857788154342341657634907514863588975395467091078710112567867526424318344517645536282216887167749518614319228962042841263739741409231029842692396265169875323133864440573700784318842603105805956026156576203703844303120503537173418923245742568571891243548318545201662396553897527411290498386079376976431643084634698138291903500102491486018713942682259227585181135526355356885230654634404049689865818893579251821666448749135912439723401039245807505738558173112777256971836643597747298870442394140743264330950645830595039003327182547201994502073097303982417492439558838738120181882873918373085338884781580165822792453327232568652461214359678477361343036686383932925656715002517163434299461480622100086705311343535095364257667774341442650689305645645833536724788431002581264017494518668710623470585531483516983986829404000404709476351487885143803551744449846736773330116868937466503915784342555662494164655617180970469652717806427803004011753103857149565293888051602193112151023706435802312978475126423553924657669357149371943003311653579738663462276970740110873658895990341336072840284478665413597594850402774937286871951766394669265014185315590298356575470815798048990805836482009331665692186445365942149654894185001249112095242381811513314270534011837293681140874766871854958156561414691454249016931740276795963065763883375048614245092230472955011346059750330331891748157259482743968426360600290178514767460259618606847497454214024276764923114978975016565383338885822604954709479683462298319982301011142573038467344704767315766426717050062902659646880899282693322486458889017925332096232508798678635477451709387912716487367668119792674259200366498212908157690676001649954700226903326324387850586927796268010474411126290874053174138499828733896884153492725265184402043502572801622472153098932673628029482426648560188632361644618120566156608537964116310454822680660925253380308855565996336237713998441834587888165478852554728422084630353674718418348929358136491927703051983388096942589955816385673929873861038213970082183285672151687642157119462826254653547111158507435510293578675707056657932241813013372614305744388024885616993337227300360278902552250229928142156913350461362366618114950568692191687277355941061044811733734758781295278675497873980390388075346351379785010025087519130868423129040552375942790834654704149645145981193693876406149610584105012449522853526428203970867925869053778214501849324700980497183038646379215486058991974808717351384793680833401156746704780720604299600823404963991662455436499091014998597227986231969676025129907597084106880248661023699712770452870557191336899518752089643403848514542482535934028832759308409857309177487822866805403828229235854003462282040031785317636928471989224147773245200110658612701123229003617343089968656403655621285205984414220366961813093782683026633257293372169371659141448033988927133648106310121434145170958733605559685736455826800041731234780645236288542429704668870468963078129914460261723433690231220220829991626387798807524187800384714917158018665542991541695620469221019334608355413588545178566749256056120739742973382461271867046249758634650131338653630209718512518318748217318372095415352281570790438091755412985945983439911001925353887189121329039553380806200791141278822272994096653528898560351581504037409305163188530216081268661670582876983826573857017364669768470847100960364786820072945219324001645432253042648480680098256654339339888491401722581752065799262346916996868886767523439792814459711341187273888886368301155936826925947908140633348505577041401029394749461172603758862169065450879116990198723215716380191330349635475638301315188003089517495701884392230516167547795934584652205201585999053757394263235659542011318206343031451691389312567853796104426027708253491364028535812734851860315938573961386644830269037368579370937461230464927853633799220857716382618965049153130508941051775050666258605973453803779176527075188324186775952941063060432199050890964919209269694911829969022742845058740317856175759299578555771622968253062244477104632677693860086708594776542710825253682884390717453949554952864897010280530203565647663841928530440200420564677950811719667852476511853408244020963052258021842756475015218973136630351835135363872805927290216562356743794408253675688196701147904835389693897684704421274980187691109058411996331065577715230187590988551239517360472046575502802038080607031346988259859867510027735097166173714898002947104531591358170769986999140714501271929504364769319838160123195938248081868522396748013415300845853676397261298092869595643076724388712198088564597997248821347466948009144630611508410963755723550318441777825712557501371535011953485086957946561033712657408095551082655166173166135844854938503971440597218543845867351328522697675783040894332681458278377794031335073432920281489701350994735381617619710953034929011693602961942224609497312182040783802446263072123218443473185156682485944343724371164557179940205083369266423891484667125592830649249059948297411842014640238961123114128808087631501449861776883445712685292017808794221393112734468825874319383269243253934267833997719841970343896020332939616456859471469861848311341151644937364784307092472723179724239575262707861872138414602788923072561301886003932768443782787940397101215497609547620244262707384576091676753977838940752612174303369900814983204544190336865981290203622387110184078339605885297343151793005929763990086196086860509340663512405662048171701408421289625780363239271535461383731766853668688879396289255538132006671710411065789061755002999791361403690627350651623924256202657348119326887132843096350044854460512644869530147134212303385576061348619126608760475226676875700000104396595151451089835635906707179718270757412997764868927986303819593946402966208912407992980896413006285472997851655332288063305849918490218436442781802030541995800397430162760697367668330275289814034207051064490174197096233056238931462998986671838435259259852457347675852019892219877392449420034406414522472630358397345892065594970648889053566688914779451237099653496107786484390948557465050790167992870896497363277551257327163737080925659097719660316971784619066619343323645565135044761401870140765291613138998081270490532610822368970111949026693479372177377163156467741111180170898649456693984248952802002461662799505672094133122309992790085423194755837186668407838190387398936525211623842715707786350632284484461195942903143596562520349820677696579768287869121494999823731500560423887666151696102424073227424708158449397182298967139700051841021365062107251009668717496852292496943801348883323359636509301968038372883912462245242683095012867036935791167853053583294140127122962995795701003715046383032880739668886391489852681411381657089773575550005750642770659100239710653865236209068179555038458318553107936915943862978504713390704932987627201737990528522718010421765730587454108466084895275550746654113832949083809769709232065600725815155670717992624507018854847535370094568101112201896369424139341189668995388793085249114200633913926458539685739168162326373471782279883468189847271830322348969142237445781943840122853063411567562785287775065398743177062246670919248487579683489072666696455137632778285563618560304434520291722486948395350167252504977805302507998403606014892690121961618604540633081790580608788605290574917502739798343475654280440685496332106999540598077910765767124628394618864373833834760371549844751286777048166262985383042882413082237119891731268601343210356034027119049954503451413573524503836811530804104580938888325927100468552530477111591602116596260318932835031203799359208525800974417186348552127924145364023605628453063947733925948018298595703089597379349302072540143108936946334567797967220872125236157950093172035522257987467373647146374212718736798708327280359868608559723381708595379584780090666316120513496723962168902290068696087001474555217323195554803724229673108594215906053631506242413927556209572210760077258638077241313513496767197911979747016311780550925836504817187313302026112858027546425279379507818450144327913468246065365389673885441845413461648052017123790272544205205924582534829722840979309390925595738536186826281814977231917340295026941127252753067543670102770253171957148941401312996770678890503560430391559965468213404134442536311173729567274143419838721279303165893842070517786774826680458955920639439324822356861059886613651164642064758308993388107791942967824196543410775512789635379792795155223957988542432877588163386779562060519064547964462716447785067712941920877531077583597838045741714062647090701231924129485056245482897353861590986714306097034440644401315436195476753106629794859593885587237996675073079768528123665514000098269274721528738761570479332602544612610261162655263580550985259706388487320850613372542844772201818473736070566174849425147178979024506565056442611199590418951066980692592320291471173315357593810403083060496774574803492224537868173956981610896809773957791730918305580469549521887086764570439026985665936241743984849552644108408809288445716792818260709339257481754074669223532760999756289030431070080463495633833164588846500377220834421279732968309908124284191719433618684043941513820455429819457646685215649597018097659534098471232887327669035154910845296661830086382479163570703940046420772678662377536658162776810736405414547524587357203184637403615156276161556965610377800683612008807563712002571860286835383630776139890101093078771847569375942198007044622901801980213339455304596599523111979910209473016547992480602905026011797757943193822934276844368386215928026037531338064916973935025271702390879638710737698674282660206275725768818285845652758117718496250585819608027713544416230757138614777138245821900180696537874299188482313980829103534402721566889141981380678555810718596793386617506212376272333175670264624008618259318471582250108956563465448915227464342078739263231162201197023320739457010845965288266679804077598996194320602097757802686315371668877638727511208841169576621925252171688569276957629203799119484177265339250428145633746561020698034633158996363890513755101267883584427655197177666267978533171173320386905064847210695158622323774464078242807951367293053808214954596909321662472164106849729530252198651087168470131196792604141827508337789571600442597111872904897958565752990442357675080598651328447565861754244483675687187689104808557347009842583842132304638327893911495492165486683193904656140572217588205884952029076167054760973080868625992076134874418278956664288235563229117510989449708851638564842061184600210754609339664222288779315232292652524604706940803140376606147962231994230182466425192552273136881206771930208585681170426371654127216539070938450821832829586398105372565151494593831093052461998396985171391497965909254943087011838113989847810161101641923838051562821569880766871257212469655700433219218253841722632194943725770311863330500421560272697388993462648893318746784294416204383853271036292871350891958124824359930820136713972090939643727618286927729475624876393571284977292577571758776729706257115544654751167341623138226866353103665158569689135130761734318301686899973750619522613101409411687376932136105596419172753851138764371193979001883771859810940307717628339976208974278800690786149712318423311455977717167185242703151712080971020707594646269650880929843205041044446013056570829972757871678565310273861966581793946973661989356018297881401435631270975290140775914176012526573422889366092915812182718664645073907970717854130174007718454733944446852704662292694512395280357950376011509486184909198671652914308938580949284799119493747814021665075946211836464006652576576102038336885283555151550408907343623970601466217588034729053992191050316312218537205778400067807072306433103113253474504306691454915088567345497187204275843330304502576311936220077034022850992512070921902591077530505913727464799314957495373892915130969408637212640955369819067096513657727969197791047313882537511319321274670470506714904430745501470052520437527170256770686382194461855394689939565019059330572287069618999649474873874218274106312946107216055670811323749553635767201949187422042655321570841499840724779507082160156443513561001998108263767338284620554033030668580253317352661952526667874329914924435325558714485923443627878955932958491640374172231252655730992217037745168822737932230533721325564181493714884711595465470475739375834193972534153531631087661057605724724054343447841962954195287082139705203939746446462817461591089770944854952824638897424723620333474309649598760745754566146941269158287320106401021590852131409523967475007174107121287677069434182564273174050218662145016214062073097093262457064979990480037777482846664553613390514307804894109630420715384574330251542965840565239222840591982891795997578651755288548902166982812687623325250087051898256076681562099270118374565073904403769622750393201181079321224504364649229506735179142377316988208403784051472280905532672272056335794053378649638137174761544525053332648499423996660216086593448522551781577389741550036125406105971867540148130798930906836592984672496450443177003777521987180723798564929897472492180786148644109004609904234668433132481679571645531761550159070599888129340493455050988454419769310389690132357638957879710220781130134869185522663408074469968899724644749301728256609843962221779138589242983422955485898947559669735273288698416716192884876885742086746571268862757508034307318638905672884080778054566015175016969238805207827967214214701286210633828402791047814929405465651067916947958568490178568396483270356631683799198320930826623380047489908079311733389722303868571695890326909917672516905217339037106766396555482104299541419503434245489034231292230734432516225527485321759991958763247040663674007679474789320257639122798184872591597219517205940129476569646895857425716881068218029491082212950488460643146365517867962441468979472054942179358319314911936658744801095637827729456097262060578598794671869721542412834998695188663840038392123365216158386899882698452800861215819227909957525257608790318513360336493719871636492740855116983319351433065710536251552450822663775946204572230083889211753198215337014088804749310493056035532108008206255546404303293472494384755640078489121905941495627362134708188117295094314489929317760365574561488803428890492737921075764669980031024332696425359032559018340506545376060456203187853785606907772765846641914894193558933059996705256607117922382963512729403725069516076484547332580789818349409830123413828374216405469166613861316213249583553209995144282013922265611833009699688113654609622498508651220150302218951339124755070931672791551622626088920801515585865921772621993577375831972324002749058980294167044290861835794486206497122617711541545892854399719462578001264766766955523108508088153992164752563204709122502435596312684419280783041055594630897698769124231063685110384582188049081648931931655469688724483891802285026173080296583247294517662141552352784853905427874229094925416228274318277121809271698585422439579599413409571226281763658494610084717580686018943726884277371236254167545316756041364701953297805755370270590512509790224302249835026041238476022271757105749805592781699787508021675853056791772508960613861455386856601057432364271714170606441026513466218998199468061254967301879847411414963207756222933447779824843135714202813239915857020600003670993763042180608321872380303021404858382495348968041736027358249013228670703700858738567151671336561514434892127634035097319371893598615005326615816968973306577434535317356086045793221228765736614648442364195051734461877189938205680497985574353498613062898111165726561069963416614677476247460875890380120123995479268875248220345561465764764390397795853298666414453734186223952111906083920484203232197365599925798389885414329434397678614833298886675979176237450177569611837272667882589000233507362743081193747310595119092091459036107701693877311091287194428523428150413813041645436359109005253298289299724318266358341120815531805895020641290816635582077762150761054589230748794009735791631510024706202228305207423957308988266219028016733004768099258382068241808327976522745053690532362302198083953034987983088801771099756432909167138768029797490202934263963868322156359115345566553466231629333196687303052435304670817595744698460070372602156243531200677637050577271909758479747081038226851436108785742683262765071312202713316644975606890159862386170290634140807110753970680228526596418119051797649463879081837260036051410815629102798453366805833332727888290779337936511342699702988300000152883978345351066479260229920490109018250151028130570180408578715341738619132668678740916129384143916662864915956756860459563830061861212036770647002082298769327158789421179754664929100940256550570696249057363838312121632396336184258666223657380933043259975798927198021561176816997726809799514310719283741728058533700454219483241113862333063430058984987048162494831369368233800692495294964379814460756845957916817148385827295826056081853945351775720830334604833308311934461184210660546955156130540624353958583048523322851929169823226911061302769436352745142618179593959521837638543700408196694218636720323491588708688988309200152972281472148218661564074245526936487449357621376126054567982483325280108921908839833243617834413626714885240813721270549557469583947885715280207783358585372776015573955197934044169513098611741951640627611075613816253964915166719814041887316905644603869049761517548750661660506023315467515816139166110066140845418675103452614383462201951829368958061424894185450317125904565647841120991165137489962598534561640893959383592541528464704938128627755048857811612864171613421144056584916089730003793725519554576304038060515223553844960626711994048120059117220743013689132784965420889373729075704117790904854697820850352069538766962702530546384218115116138824554803179182258215624843158721844019883659729657261143864186457097821320195684253407449595595922142509980991644414954424525718772249503765741334025207176178362434773033356050102757392340561957253951944645583129139415202596352276114317143181040671369237843660798776783949484499418417715784223541261528569500932206553065044070732712050079790523440717256328201107193797121772597628931739370998186512469375155040232674847145401905091118629506132905201633935601622437566170952311165172975347806214966134001486095104916410143183570393756964252178409401190109277615198951504495934702800512117899790276104690765699067880442964207949186525934724681505778346232662900912970321859756840881965971665358940382983040527465270753213520644507323900264728697048547450877186541106584124088275892655956589331690747942011363410419372920169473585683443004571183655446861569289038301288037645948200584139996316304685793443637244919626862152978016621380675264735745781548613713644332138832666059587521156909242124519930230950702409509470054474501332625846820350952974232043773658699461860199898801480623221312110656180988613221712110765904279141889264365393552744632716153814962747716228484157890037456989024828447030471766862368063354182687349392719077689233099801543477729205725940561508012942908531539524986621968008576808134134365749149524537747351918383940155200673948085984157823705918419866652082543385360804944040810835316338280549056138562234996279680078785221204635114123235188488684417657187471026965607997377439714240913542598419734283279600632144585303890772467374915405314882482294753747859117188973573878797495179067752580418605844787427790267837820927788840946324500086193251995172388965365361437922689745522579957600331966148025464740613931332281764570505914673391005210329373428232842623039507998840438215188528873172940743030382720711548024475148706924913320404485969316739752925158970224787955200557488239160588248466253517817487710615820602809335376478205715830590752346798933743594477284470006451705990044636280080232824182683754905050621268454058455912888862400166439883605871665117191712103695247363286474817585425474221067437122834206961556145069026274012262064049051876619963245309583249155675906426140099620148641575084315242700055130461678944693234182296641256550953235460956015478764517940181704968021852276257879821833241684102816576545932641641742537634575535607873986233786589483649261408755394552143659963072489167969587759950775336855633294774825264022682862909878999291549502057039350354794925799130192054804847338658668713294777646451573288471829979026910616407884123696601578285473492211405072350427997423768628160842966340257655156746084289114794266369775932639244914424606926389460260668871795219600755066556295771505818795335651133879247145476523612403989984918669899838775348623804648944239941681759753043203626954927399532151557415820490239326993563861994335661882016869059537474283430475677615059745576982098110218420785371986851204538931203606648647012480060297435192062871593704788658286127311731561266805680183760934063470131188565122999732800854077491787107284612997020648296245934574091520160988146057110788142426737587862423876179058610720264609157507168409878152081803858888652965954635838685796363302761503879310165256801288457631203027704281763473737714830679553433656117475307218693723332888842360412490776617084530440179334765065685220000454780676441072332143114566990166811739016182368842845976172971240488236605885802524328565252691734126522105344690352631473592256704799578153389692970800703983369002120331586842700311313827467682073701323259198128229907127661903493156946429576180783525022111964852970339705476357556573094492666835104482252331175187609772663923867968563126677755975622707375551492846913253385772640161276529297689904128330674561933284429766016048482728180430195450538527839972139488489247100224874028409323143745596928040291788386463516531082598994379198163494412281260967356502137243270693687650919023920116319219270756887446590916410207973367507439372921655599986194234993743739437352173651150767013480490677847691367057880680599459591966004746645428794913108466827590175269151740654991421798316269908997520362450249162483480103155172321433235724464973090200597241573418982361430783834535771921988941052214141466401228627197340536737197840372642357440124959536716890193569881774856456862680148419738828999118132265726244045589635075587688298418161709472909651760335261181194139012672093782575035420670335376412035718766049125744968498419633100952370088836770083367057341246926382407622464867215389849047897161797047436192228875271682005772317589620497432689805908684772323910762302856035042711251188702185451889911649536462315485076191566270365384207086305788357082702640074499952973193408142464538970992265858210021608686963979531140945186992300390132299991232165420599389066170151728030762589347757951599031255389975340255909618351595157539373647923429841956880659818439786727717702804027308908159570824781938220951334419025600215914303598304601668881341610177258704866674160658349070525816826769956776395155039160300192247094939328618246846724489291395837399043162142062040641369915880468876066004159622359971225542273815263687696876403768249041023366895758356695862391999134336187937744932726390894357306236481192867653260462862744968100137910675313768727132716613564033009371583183371730758841304255759754600851164297759226699966054375183365593955392573255701569317902500248656811920015879167802787425701857229391895179055499778365422132889693461442020128396788488893866911983498244899550528900947111764361291976519954307715707908065915906676006795471282992866261791747210512434081049420834242559750015444561418919479909715830727303437274180924263649409938075863702074110785019309871768961720683748373288728019926094523278619147893497467868032778062859164291632379879576088735864649321937627252985854692467481545350111497373791139080660953418570074092328621501477775008125002598745831317441278366698208968247560551697949751584749648837878454069330987169556530207778618243137243772274559656614216446376507794186310333278420273849457627768419766943227674566444190479387574042913538358413021015058361181935315224063243285650903124110595125375065580119384184069043894696841771792606563083656511835250538964412047588477217961603649923654709437277067140076241486341046422656089771610458148898673876689665791380797302714904466199438672162525579470014097706119614906440815401046778645707490232101429260991615871011622875092272175582105584277201203109397145990866510275016334899561307329702932959979536400333083079328044785258029352028805042578435079567678823491626490502197113404111688259058422605976090293243113374352282257346513858762297907362696248254987622608260744448019808110755891271703198497393103518687127013017063876272582461684904059472003111989055267898374694366515396173721150776349977010072245005369932560014493984294961576901596287779845769897365615011289261393460605546185375164705325435650082755125122596475107823960691688356629013028699759877916390920691026441150320701611103819613087560274042362304760459217806451912910287255221833881669454312714979437144874905235644688876464637240573440578242416353276220912454156207077860634506983859425348258510602002733368217936114931842907397441506668394920380791353501272991453838817425838065105329798792483946603976727383760885541597374528445612365231445889387279521207210068565768654973659897201584995777114016744894940548177781985011044256617296627001575060137433597879473542131675293046486954327796305298321533741057610754012390244292427891442441338015665491020349810283243726001487300330901550348104635909275117024324362373489697070191502173562265226099968639618722763656157699476589659038438891394009091655326578151858716062850891500792428864180034106893669987099563193670653511380593905464460570529145330504873160746419407687905597676573857011244059322827684116483228738706138199940534180595920480795931169402896053393379514589166014288367840372472036387002507982410580253367943669498925854801616183211756253429576837413682121371739907685724420424002083852730804798175660183390063477271193169383865072517320693425281482324369029687926801515862902034061712186701262906118528962723597634178956405713138182782317741069370667075418985346165963179772505458121121956255969918982868651105068381521301402967325602240907421110860343867217649230966102253950715202657961610659706652647430736657296047195753013236049357321854834536108321806846802144781217265259174794138321671016060394751927724555431622759389499432861160684374440460413449899510585671263446587884492223770306730062793731062324932210375884488863993423800410695398817505362402648469723396470370265110869951805018207677094414896751250404151996325187825054396969683860811242363813154203850389424107434665287457261485699095378875122057680934533008683882375836728827216707015043514034119576845515827493489028653324376405915056288609277424866266319149952266165714705926839335089092199384342387091969052050536617535305349156358359049227527948588704519295477631495564214705358764594542390203541972311197707469919902367033036011049383100779153056809773231173458585036932227611751796959469337776308768000868175916490371733360499547019434234534721948482309093852415407877440694301017244700563834856777519276997341533517056836144003907798987423323833576872529931283282137913783096849840904598351331999914035281678189103546770671051662396132180256387265855254657143132891245785177478704255087421970420305423981987498065701128217675945668241900017266540198015268551405751177473821085541103772463786584004177129607629167826887963757932146518624437316434700879488861938762696837872930530043651925679971821924461988900277855712558075071565944822985549600740199174633313017515936151147034387030682306869156813095666024569973603849993827351211900232429100689499939515230232316232879301352745323937164609025562727823447022311303503624699470659959174027221637694495331558563783841833844540947545428410328967006111538771666476018684155167706391680067430484947950068107285883539592991891451719390980689772670331711919361173189802957981176524919691499364748035692077845713814273013866830212740645097188820190224403055241380095022459285155983535863771121254017136159676504177593129696624823970496694963211486460738918061889088054300898604665679569513106185262556931821142743161920119009534080695406035383497138557592115152754116558952249849200331832761483039087088391571331092025468599949107432169298007308780540466840017546853310634571734636520078864850353881540183779195646111099047001410479826368715242125393617809616412965044106528013046794756953011014957326566663708820238887622833248785256527910092394754620081588839631993963603326561415863428654619352233774974057255562516169024671677349439750761256442857632406417551187036393117980061397401486694607691496746744633565552767214143106258048836330939991540676001692005665725847926225810980125085437775407599441429567327266977254961436343048148980362664840245936825244014942120935479966955285233257650468597314546968391146203170583937489116427132346534765488944686821348713286882669707282965092806794852276149203800725554875061969049714506315385965090879565095100057290415994867619321188146774093120459825530586592698017691826506394333215237869855395531422669647895399823873830530052928200228953374647428908937591492788267160717820068311675212097754344974071961823124491533043708013331185489334737087472775123693813249182972670633722553307707850565717305388964774492502766643494616325169839937591352847486091037694194210096422826874394499283332004983537478067538961881019516653293571503428475876416771188283075141746698559325245527166472353935958498221384550387852649378999630809190427690958850566730314938972296624062027772587713555582594383106517158572908510838491898909190422566942546436900606166287130562781021240117164364270923253140841721179708849785500442768756175508781373132508723017957649377477703054305292678178282214192075795406379777960890516894894776514231778717570324757745839884937356166585170938297945855750044411682197931512224265966989011507649612415152597172540853759773888655372013858516840587623065073426505516413126437486041928820958217529271074910463058379200664118992388866690741856526102944565967031089194246497153660951065904716292965032873493583080416037291536978912298605325967728465617670003905308664442685664036646936166024459220637820140151500505342325147350796705715462725937478041552393660900947850099676708735818818844985022616203355743811771418189536624317708980603563432608289033668452884105893017684181181244247428729964574191410475872710287716662558695169281050550123355704251125192940869679654106321268743187955757756803034455324206204149191416378847818580993427727018911950396129904320119590133479830051779748010881561328902273817997355745106233330420128289368737634311437762404237453507267505197568344265595815314995009135197935315830289261726505439101591294701440237859399659027956341196443806497820297610311740961640348472418044206052556112779844931769803435336092496550044434475334635580328594182049774553676428138985615018554350394905006667671689042051928667444003032411252695749420425249443859897253420762494849383570852533468148440460029331470870112693974354693662281474607305917128936622466603333979275484542762256454963270516763067915043921086466275906764618556397019933015359529328287897699678077127243108017081781073089799828832990138348148486564684457712343857851090362550448677912107402682319024539436613074759541724947551386777201631584400738100331287956653026550438475416253277420416523503343663131985704909186836736224608387002714209335404581623819388884741501786047831400343324865935828773989470477686543227711338482015393647768048244372086037087586277674236808695837294157433374673003143516018197035977368010197329055716519832997537653030653714487957358380122691413687349700568033850058874066903339466718821512888463572713973642836000413254590217550500868591552364541941993517177664811853850163022997585055101696496893603099817495104763047429157201342673873823718250470061871609835910652832996819020616282808063827083131730035780466053650891750130726381023729061886531185681669916002060085652710690624950956944036491308539062528012956555597721189649209706570173600206369529510263439290421769548707766183832423675659393198271478055457258340162508293729004711182262971762306066412795973580327373902671765878506982431024747541176532232726733505557555087951418688221565384957698686642950935833629370066392577721172640088783634891545413811781273576673899817517252904883674660463230358019984464146408581121683424649393455824546619451737221612970579903467352892837732437927972431230663449909073554920632950302655206038203667685414370857326466215567476847258987690427354000392350867798018330595711103280360111732027913860481321536654299184005846126778405476804016525055439343688561486796088052998668232426333644517686054766227000844978602578026485851721399038236921637224881655302284783888262179109564024259192789303960407607790205275774754466590184411302324610484020564833684865541139463491012207419879264242778531356762512224546835155694527168354931570465174933495223937614750680486938313179920075220178482183695422734178546086124168174992727703674610765637352220178247252059762446435277428633433435289522394249640049191855596171225486987795212511943222910457140246765866402487880179379790484064803680107960036196395577294712778777938622269440603345034658930687518182299356381069384137449166957496102588250388749853947359203456716469823359027987917336212735964539109693018790112788119087473176507568427389953242663129698970339629595187382682185673618697167318197137455243905789551401672994194692344335722678445841045684635691201660884837700460807446616777142446940831422387551374089618548856966595761265310799276926396939079500533611918205972950349103482176249830110890781523341692675247700165912987414376825489360216869689596912588925202796548413842657108667698926082318678149717093657647796280307596789743587083342637817051135703464202553161704924575968090116466765083177328931847611092318147285124011206040073662763108414374572781727726422068934728224070326925409413449579963998593298663155776214935870477047249695283821932756110597580390054826206892593999139556141220160455015045641963901212884306488329646885721741795194772117737526342024376289993828675360666396208642408828914010414044505359999916540802534051026343325995196250286972684577339146896641745767885134418106031276025180327722347857585698223302629623663058327496466398558987701270730077090152956817384400131166710037706149734447618162645468930661701966611968015668846355455814925503725376908200103000595053229329905671254315764467803656852380675576510340533876143007181551471662873289310395034958369542377740554485372040908565350022059622247073808785805124819795813906830928527908331423755305677198984358020161589397459398560413013982318422285852842497166367375439227856992304265222399291276486918258460326103063436762173846133956177015949585362970652302920406571537103660321477303201371463545832346445442133735604584811387804034270795811363904899194128401687427714712335628204661217432740116371210632061598470148956942122800145753086079765610277182117828922319881309370123237871186616617366198389669741040159334681922513658032571026999287945981455765245856415913378715995686760110467448443572551428479207358594198553291935413560500387125397448790716573403442730575649221695739721365664926477702518654786426189513753404900552401183375126406228224090083493350053545398095417260789258599374040189104712018061875052707263750565330825636935919860365312863631630900551746934959806992411396022569190597503025438699912505294460596677602887888536845366014750306211267972206786417136392028892779702934511030240514280045540987110630619574183378211413854455476299432495776844897194414832103226142985765201172974896058310784931950589872526697743364046960252257631550769365495073533248524155361714261969677127316327358856511782272479026203762984019890337213597039698420707972595608533893600237510245922402646603267016388748383524101740612319287058918672309721609847229108986694931611592393048297322150623172706775839983270466736453287148468807218418410502668315099297621516549204473219353929804100133289894884318124143121716983335685745647032524549376479635769944870801768460979145204554727404328910852922991426079240688706935170071678462022179687454347817440299361660038294906090749393938292152951692364918977494936313325151370539804046240814760298068944423891414246250666545468618007223029200085285525422609686601478181499298955846060819251375617431536339173043919560354017410840547422788171090937041429485522916356217117656927650732440754938998749008120004159097803986874576987749844357371311000454941586777056113653860331931597031616780345610430948102574305089324910399765141475054764417021520288902627683526776007623769126868081047822512480404448668968035997680903358894842259196685983801954794779473579203224209285081890418248241870361145924821739390399262508688150732317160865100706838256175068950750422820623319515613827054105890364294876388613612971809441381864252316035719613908304983579698760985675440865662915000626738450207201629019276576352198978859745286245785212817258720366798417805583476213247463601122693914722303517602195530465530643769002749128143334856067476566774880565362083716350419784927391397261415901500403195188860447721798924096744969351746790822553091706972455010096909829241818710602243689708953508318337402226932422625411846658135739871843639430958981264253841868279377442657253325884183527218272299965329266885722625873115326517030738754622097030742649191148760385058687402291325489291225225126535671065783099724951532528695732291669688861484360201443803896350812801735930914199600433055118245014030784253075668828875837281220094959081935831562227039825329133644585514039288466657662906173638118376765842018249576101640668128042068564154482407233852119325964436941156224522952951596626826478084311284935694591455349294799139563015324087220125062805885852158631569030004571998664959974659643086552363029265028738022376428656089079594313051391453047265897401258491009436053550846068461380791629530611833399506583843542858097653349732040570433629107384178197452517142347611247072560214733260165299459847030586792852703768632032655609726030875705317247719047811320868443328700516772157733302491531303637459198228389389687082625919022826642063928205940227232963987610679420847149483128824721555257082139504438801472526966305799448411888554149456614493723875107107627502275105969305921064416019419217935111243342284753656385702816178559365308775138839390081190571771903660826940696787201665015455017956132579151195151625775576854251373365493930071360828354925720796175143569091534113059823272103167823615167078276647379320027112035044854044015017561005430714288496684733046699474254234623506635757284830350901090916394407910932177658021596874005070294877019965798600836168340332140089449618964343472305915511303820399500218318043001860827742056961673702236758061658469289508893216602278514940255579432437972595321308278698824572171782458480364205900152204452807056713186457824975177576599768544296645525534099462987649122660329159913411945808380618842040547910293876753817847408466640214605908974875081219350501300674980390461785610741839895163078346653606287530341741094892645467788907367280752988632798143918505388220228240489562514742162756605723259638113639115007761708595375398200030655865511689886290801360193705824410815411987223842108549065820359416463584416417383179719910045887524787509334017993006892164416922281766336465500426515175801901804147357458847264491585955136265552697616631997197495514975611649975884609335453985998097202737813503970743814269976605648230951961749563836341991658438826678304322346749531787075414206731315890129265878826989875840618584252512058552625646078057744466327480711069207022257951090370475992925664991311590529244839570030107442762210635283581687605906064358010505082691535100529742559867409263726846428096497641867610038873198923226275363465326091526622692874421641474058072340729707875154682401901633513557442216987268600502632311901261751225512971699246915082795956614531056100534629405402028496331507406097540458343046400521785599708463528630779806711008510945950281947912691739352160614668559601880840283348848905904402378192761922503747451609957780556349051850861765057090357648691368275278176963065547495930039669890751008710282961511992654328192418191201498149680070211995868147122693359089892360604477336169170219542967636899868800245644862821441373648002656687720268191585368569686405207040690464204738010782686180115157877514884003628587428553320559811155656622867344872447238283453817994974696387842388047872727933769006506858296884926441862089029084534864011015287909613965733146071699653213847414167962570948871686303144094344984052928613837042593372972742539851358345108603106771145907598057228955423604140054878207775671267367678992517801893405732286322999299419563242538425368855570761417107849484431475658237028748615679870125359265948035703019622095504963602343148537276212248709933160323466612998536829638854931370395608203666879226451533447487710739394403316383131476088745948877513315630603217980171131223167002480538019765680373570653789742055299541445466770491003286542092749154854762812534208354971993577294378449060268711440784188480934614387284026317494543933907222833402600211689546215191214764177512504340038601396574295052359498156924740304671273863537064900627564703685579986179069418965531570681623853741524483397145409342346852394180266687369091748055342326034322571472824926688989650978434788438531659958806388837641989148636923341416509017580409465817435777143144371006842842451692948018854444669355605970041943222402690580039981656990390151815420819797289230429114258680268643011578747784326393177031609786078214807281625446372538948753706961422155425561341329166245889089361529191905666137657708529123930517123464742445724154042499756353165502016164166124506001384065820323401019100013334706721377730817427002429959048364680277643386229748244119474943285939185128124940428141590700882920161989068371416127317611480960425306853917710021479337300275039270376840425525197935535863983486729016635703154883596064473502971666167834952628129600917497170039054445535952260036790161430502005719245309027000288606497866384827395152142321768903382488222644694641332040467123169828618367657268808484968098715254825439379129786415215147122457090439736128589009585358313458858888552039978886148116101584596026953811540892710873100879814466218129654266627140222386798549480131761430767351897092545826812093952015620316671174326608633199776502162297243172503618852227028461068058366782152466773517980638723901166156644789672274587296740337041637074969315915737878438581979670077295473077036292630631704875766779424047685737867605107218317766389787120529903523723396031848320993813633870069126212534094697279841774398289562634687349541968910183366184752962241452619570642763287108935630070933299202429305507195071429299018568465284247809384151186829710011517853821637268810172328856121549822660698602522421036297917838488429870017809142601285556901501214368952783291561363022541617437397905290694444929718587788794298843566048392970610464971666580519848263721343691756788570345534359609365921953188931024553494346053130692481145093121777948470683761840367240754666175112068911014870281935869019432476038768524583145153324747501298241651027652193996962291932296596929101130045206668960585875864194049725091805484048963654684715782564315728549363697572607299833114648400669622453654050797679215822243352687162370983342155045922043821399775220858378337502468442520620427078404180395129576636458041829135880669132465639556801656205359580653626355889778579809102651912327170791133871377000697275538198661647387468588348074995721141632874072810089213568642883222072834807853621910823719563732846207712770524429039259821971822656400553089933516726399715218479414218833541446166526393784478303906352484052662503640037814349586803771221697692279891145217040589710668197719215733483655865634836731918460903297645124985637165310834794188528676923417764668957078197276026054329025159223761549691903520216542347839803067703076304965794207163456383226389767881377165056917771933119444258768137579166199974851065872463020889528704649092564376560392620752922889224262875789710609626403587397123185991613082654450041641925993850935407927987399506259691883532881654439961513580005448711713589467776764261290467346058772383570316421042128379265324799956566450034021106329209367810704210331072816725654263396020131639590550925753372978493751050087103215387706731437070274494051555926568502482789669952170990286426456070188118683482696599815991163776028110497205284506779960865009884705848666631955921691864487200174010546756634294577550540094500289504491655764031284834016030715041254720186076722706392052581897321542412299187747503128320571831324461913362167649018495561882206218994181212570603906971004953718037561072104722277706109643083745894583980614183808873853786053957921334303086413444780802818649576439418776642625819169291175392598851280076056701093239198226106657854371304231936117252329370799379307042640490780945913554822135876794322986847772035490294998115916251723445710442980744906077338633061354366839730281957360904983137898750815246836736803981509573300884121956874792426621347483778678290479470211284312293337154849469146063172726837559328543280631376827261037796586432015573766092987656613359219166232649436115146410050219285004450665288214061966032462332492624922390150475488790617966467978339165619368721061589135578300166063748850033772135428057678776572785296765147170421643220656441049302329030184564882602189455132356971991105914215130300996807192778107018722648322295534900239926239549692965551475375518461230603773186016242789141896352921880962756848787305557190836085880518641106424561623588415497887401607785805295331452685720712052580587326155787361029074621357389663740671082980872260420182013283198411796170412724079608747201493607298339858543904358384143763774839256198138044858108676906274745662784016895715692822750767277373472911232219754757925902864233805451730631897750871211129586108151617435093112611663338205040108145212035473251230538368716515217173925454629100604928978946664189834333685257632816855037158460533413774420914016373876617762972929570301392542093914540974444831493738600088713640222481260365863194171353005135575257589356292092879753920413756052926712326166566009701133256225254493388017254920280370123845057901291215991806857484059970383229205319468133246292521771757889564207733608102045922191457170721171552166326478519239941850539641750667532950391607884857098971464803152907985502661150563070238125012879093555164927675693197027252213945076055461970290130749180073897142078288132237500844888694135224211900434606362430059133654089982065182261860773942785893980280325449131312627120712573476926117475042766988580133072618718793093498450712932601264242653603488627738454243994952914075389749372172666239892043645866464856027905992571837813584355805427088602912166447405857712305283073791678453740050828137992344838868655179271856927824823211141912461313379547039815997769213547879681282664180691061702703731539678791108761939179568811762632517293567016119326486190214419359054652727042796969761583865699938375643182719702276904290680608478317660960230235566695696749880420307536866431114499783783098788875811017142420516985631169670658919736610276570415084814664663917968704398363669940335877741251261587550409518478515201040887667985579575577115047036244616586890312111459107934787057161287673544555862429741585671096515208592075276113301501531647886678823554608429882032690125950267160890872285966766159171973371099437873688430817792597582480484181204522740586455540691095586458873412250826371174724080217151208067046945786635230743565036172931239592357555430272686392242001190470899202786488523109458100486816246405401422287356699006323093409837884301539716144106229479398606208004129337386717702405191416509702082226340308136764593889927459474838690164867653051415215881185422393347533963956708617613047503942809690804787557474155403448500005971345883709904335218216522850808625283201586191476584635521618180649486801077481557504401399674861572828718749506530084459610526802430980324371951238040610787392224582871675085727583642210173689585585466766733360546452469041905058774858950321053649118411036250518715008730178718981259199874247426126025900711901069521618987710509628412028916538767490056943500997986092957731466307034498570990797524213317541638660452781305980474171827287774498913090551138320943562671343807320305820999697416067253267148997032967262862201969430004621002211151080935901207008575189143118844386350900251299232174699116442336686453277628247006065340953877410785176500096736150860437082877101572946439888979146488411293084446339889635236706820663994554315081687843303524471681221099490414505135695114046155833169552028433641445702210418137903547369166801401990758563838609689833071564589909891609955365241426282362834853418249739525595058843739732432506766057112349343859307414990672900206139836172623475863559391397605793918121074162321448163323337461567140088196076869379743873748337917663586504177104219971365593669097763699788762570846534451316534563591054880271348784066024243443339230788429012597576839516791579135319206759604744203345372177318934046248738920293850075481832604848565369263421274770861069767783115031624793117038837092779254917616293444782566231482801597664461196321029834309079725071959022901754861757807047683455119544736899492034316285332716130008739425205872166237962073402792007406432035633322429704760127171751969550169261579802148950845341229351012059676770536966666543640953027388913231327096940014922489833824452428750762691127159731321483626392246703855978844564715884307396763323695517104145301555505484387884042969147295292447377999422575761321709851457154641702222198731873345756444836474150604011321077889314622929299709267644957583747578029199336150511181138111006852413163868825662917473476448589036658969540830451526015241919807081406487686343179566588817953080825280879085457704242374293085551405639950381517786402206815997040921694338668213776737893129275850735631311493430650834070184205824652994018758464561530696623018947691552940547157006271420593717914343755899607069050600756260732175740755200684171917845577630099257041665128401753411706914665250000945260322621292618933757660270401191328456393656016037402813935601367951051724569552398346025774723306977600192467100190958979431788605102063721650886955943003818567265279337611267231509061046637019405731919848065833285799998155436107854328888406740988138351229865026076956101561682322249195578342561576219674131831604010059900898179431434465688903204521908930703564036273756386235636183739872183197378988112827137009242007196233473731860888385778139500219518503077085619173814688502744578583795315746203450021573593380695894813472707153774915871108234169851584998317653580488712210223865917525569309665537433175852281160298566897833165511650995481608315425626833920753494609643634508874198146251020634499833227741737469816583659685142790248032492853440998778002236933589092046248700197713787047107180300386754931460288308580511633181633112143531990188544041311054997678236804204741064258477805031006833631634403499691304455677603999384103218503939690536315395346155705763357513649208510874567361138304926933877541759335450653608310570645271348250847843746399088541012895742147569001653820559196000827382567199386972642740107853464389984168711869856823192924293461340188636853008515735027119253094802654152968746019616032557447919848950297851528643393989368956796017791362241686838987942788654830593774395175143227302582394922094819554579390812736587537194707487599176974770101514288478335265504546604521249496505048038810536989004389673330161499738149352654805608257907226019701387902126590237925500044675081488671439685202006023708379215835369350761005504795053815626528359691647252300193510494340120278836524901991967935329955382658115845401477532249081890799780307560360751143933607368134770650723053187704691987217340749248536576289606724096916307616581002148984696130154559778393178449875906645356218081689174532555040375964962935311804035247663827926061207836669363033885280329072710226918800426909848871640900756341735507069377434617040860816160557266572243253511103848416880450032884004043330123640094804129524281457359958827953703120462233630182308874950825971895507045710940955175003374731009111740632225620360282061461447319312630288387924080039560300438565685310396721065002433995864201939995006323093299253981764823630341946218897423877694912929071557291072081698130716302382995346284533216080113899004816815629816654408705793766958544007211786288778356364290704908414812629575105390994508691184092375025615686010388492529289159930274920914767262215979255027083767541984261806538652342993182440450662227519341867846316291963855210505565956449181815299825918421211805107228613907605032652314547777793351430945361133435079908974997372792987191782460437157838790662866152761237018916610005300391456252718280319279865039812951936081674730871300773107232612473112495074359986289086298968264076068952108438624693773025926607080941917253484208784630705164515905102453164868144791272485646572763767506971823847581192518805751204047555446741997295909340496098715020858937448288235414754219277622278648306750141807492401639016786613659419198162994286999443526093539784110368224787275866024432797657741834520547299235994008369007176765785487057112809429774713363289513406567882754974528204254550213344109092779995897841420127042337102717389816291757757801601261352083889392474956403478448648180255970426971191507932266344630526516863604315850899840828176164017646171749755484035243185803405272538577229479056074470662871609993358012566052066503281329616229615387509767114578714267478886790697113118908167904746571805994185416781307452678634683802636935006706871501826728192386523720885983684134873278792502448061191476687026914426754819526295705881244456644843310420895074249012926171041523646997166847100947572584391650673756590204853487263157392503411210453798089121459214903069663348568236146777608211990323813134970707811524986815035403999855304030303199116944140469695598805236136995165270998219935200362418211790321544920802916430108865847220840198792318866454434121694663338414138540714472097276454804950697743839591075673142753078178095511414234491680105895838317129037670305498469046161487966777083328032833850748534686890922731986446345123631918153079287037234804016597624234205874562858980528257068688391383059749441268029507384492741374341433829851663472661453353340132039793551673963147485833833146825580225071218059673123394916839436450515401498888834094548878703197749995016482402687216847108147249191312171608963708450408086343313392683778799255427657183518413126348768164470644159066405461054773372039238181118666269132396531159830277951194694654115403934110609055542217123504077397579069716994660184347905177443699574523161179912611487225838903255414400087210141120117114080025658963081695019597520854990144823217827160526391547749340974646054518698644340659810838879548463553589682079346338633190445501100987207675792261387242810706511212678800383157612797795408603999729171823434345439610334654541289525157998900808562637531606810905900820995393937278877947225381546816825904010429715040413382021873255321943646404702602635363037460481312148671935404550378680334336853258776287884725561224176165976927367665017730285873357494586956060558904405894066044013820200122741930072886335825807487958883490308021449350528336065668351720562260901218639223073884721259755068252567284100106083394213131408620561436891793777471081182757407706455814330864726579682172101806415610260629044876794316977987334150593361877763682717969213640573660193764336480730337303247875199476969110686152003679195677801905893958340154129654282423297785014160762819734801051791571593208927047713365460040989228211649985282089348575623776162999984047466765653431028272669387081541656703481276571395993121781631962609540373529462950941380147018978934862784099097425399224871905949220760797328980602566531098538494302571660974954541669464309643730438516793215107532802342385504845961583167030278453084860553751420362681712444418469743530585120203682216126315416915300414907196268828423541044621542584498074409953756962980767209224024851528753775789140895173646159680050122723465785253321453628770573539037993327664376533664975773036221111651858744538017526311713993462053100749523144817367216473473456606120470722735075844874945370145710564931661570536269324669223929228236334271721036388878163071540165819076618340435285031707999467960439159567409455404780814484740254538570648172101686861229554602815578172857579798154013297299197607942515045214774970159516468774312552009379550718352664578982468921445213908122246039626323569667166076611919486525205366130011270708461804301882488969530111696815989390257145949801072629296310193999297255869342028899423960839976120993073113176672729245284620764594817082640187761720839379341644229185762868719509244707785238745935438354407264744233507019176265634173560044099030192707642449025737722209955704910093073190389619915981500196537198928634136878772543964981970934787574042630602047635954833297762976639348242134399088162894688985304665876747211104653040517680410965204365194225199617542233919036098111177998837499918393186875053017383555371015363008305395636217902189290968134161347045284598633809476480877536245395337182894381079403724435930945565924337959199787197707454252238385945341286341001574806460055075197736109367923027509451417585625148182297029915684382459086464684041770926408194832988465724218572311811108507943013414428451547578084990025744300017600694337883654434331847863349775451228930062018191878786173456615450569438628896706223311342199340708297614291387893889012609829370900295842850876966482568988333926575276434687314931806473503642324995400141042967076384014847796789531820036998075824775836473112497721607028604573604874845593559754646454699280294427782728070707655539653932265749274024245288258920439850649569073184457992859239740627341365623355597845519307410702240884699879349283712711027436744247676544897417487874557141522220033368716715986147106763577592347539293676371283401745180254871902048773762286536373167375218678887339458256058218231114677832970501560767151638861151394060026355065329347587354810946206477467306434352177251406382508638478578490080656231933264322248337150471245338761371484759272039514100222420204773819034324022631043849260253157712634880495287895687325569951575829276087896823509671373172147023777327351351177602536259629276219256345709255543665639621795629140023259008723271249304760569663932563306570233428546627055548608826012710535269588153886224814900605637228721762626283222223198683176135864343942054785735959194408169288610358270880074835058082246810706919127934330757994473367315377503278566302257126345916153190270450655809078388522734829882093687718171000372441291760279373569378870338174436701753532008910113639100950138203364382765935801415174814722802063551336578347301272499030116192869052219031413406646394460103481341843794816800038929875187270632482411064974375393295748950816553682779524286569023995068275092616458052980729304324943061473900797164245591963261525138547931444244532743790549031264963947404669242390757101241304445413239981544560886224042537850601884259300008510804831045045837877232720229826315736747758630495111204596538320871644780486327722714192470947028062237949565007259959983784149001894719479832875853387399710861985233624238901675803219010562236965448273728221149816987032384420367986027059689097676154678961872979089275121669127137506535999265023351355935185346934029262533331221193699862611743926237075144420772502964927550315896247726409349000496702081725823759258648691251818006163323261403680545872748167398453009746150623887503849082149553740862995941440157801863394182840113545711725088167883634400878646848097494974052704725179261340008843421739815310794426950834638734547586077149645966609827203630350534267219449797245437104475500499732442755978386429830697330139324520854175081861957748045158744257900650153005335974062014144256638497533640636074639237081293365595378541967899075360872223928051489629176279682836157867861739230926728181353496762743601960234526924197271772821010353323396012233887673698643274378376890314821202560241770553078285241627675557412249188579722470424511192538453254243876881740595457693695208449491146178427500791879693321717393561926939715822980107214082575668179536205299843961429615571564262984791824279595603202963700295824916567018128561970171125932644103570580985124928507037401000521173615156357802363646258732177305051929357898466231331019012388132058901704089499156390172316461360687310535340905011223135241884520114842140903938292116367979582252063222752074791756142138956090107700293160798344350523494253573712539018765819217047820590729931492931597619042716944072561671938806864417760703467518693729241837590600013639441783065347498330981606288160836048687262397692169178037522364262048200857262098561584298207369911299025843515185182397581265360384146154245408389776794064937635875486013171731027642958219022655519481281605011169497670341074100564589391802749760149672255547321342730427164974598721069325688917893315516181958389929049062791723273549049157175754491370243810672178354233018861185787030808379867850276924687798381742707988964850713661617106320499528424181466380079467695162113778828126564709632116024038241707594236200079051748504962120499810148182709506335611103959498791823145183009750954973146568126695960558464381279016419614153576409237377194831298357530947517831240285687764219793400639073479623109990024293870141591701712623005285958238244630460231167992733144113351222944299238102083529886616674732303206329618095890702348068424452742133406785647836219354219317545164311254645280264392043201622574138656704212030055795595899792051221539305958514943899020573131991367994069097261419815390786659063583926549886841339614421407654887987186968360658081542727923672147376595299815292600515639475501369314468901924810153484655886897260713902606384404324832361221412681065586786826195408552948400133227522711702060582826193622674901213742124979088429936667183202722366338756541558985178034891799357975063889882064245851449341026344237047219783099212291761265652587576339222745420766928326163353290609972509784625533526907382160357940511632221871976659544974419962592381820670991727867757514562900816590910784461828258082603914425089562278311753352770554045198299366414125705889713032444112537525549485803570840423329952149460444729261308759745591174485485899588258276913763503653404783652655345874081855495248172826818803125350955501794301570915200239108950594175310820959387854490793447832937395622193198522000407102442554158832822203410159646912457124956630432443020343060230942736808593906858915221178905497060976177721855720783460650729241619666756233643016998529791770927538982170832076097696742479849822190701985243630688571585034657580917424574256308023761888549415961908665145570018867905075923610315261997380604619550804470481398127600318547158191076689183378179439852439898157290021566958613392285366187406321769944052104510292984416711288471335665550861144479955028903318257914154811008755321134576929139402742155107971255096458531073818026432124839588767554259230561625218052980725302419427132622357767959357709367086770392570135297309981012098947972937345130202460122170640623280805442650831478417877985323728473144497114986213123069622140510921087895380863887866155336499585286864199529974945959985537863162519494501951712085669769861071709036226344240734373151260660010075881098663986440611804045549996737905233440348890786450571775118491578934224502018893324302835469348704946385900229527243167188850020960676021417668639506845768468920865568316669791908290260784411685583362028794802024672216589472883606173034966167430724277817778281334012250635292605254464882122534031672029785667303396051971405925113446970111657881219938376204272985896185971924308846887842867811656345736872582886085750642677621167983872469956522022021317724852331524529771002170672420401386851840114941593748464303629497450765215196463906795543004602536793102066818303689059182516235475393193903489832284727883753788261446065032465140746458551042500006918904055958010523205397312387060001399398061520688857413219954246230160665944053311794030532897787816727770038825075748348465169920692777871635627556020603331243730744245332979802770464907641354187551431853341784872196790456750727744998063772823466066511806276995671426495113835507452910917753453831049642245698998248089331652306655404810617252273128761487100727548961871662273615902960419851612355585447179041032433627908725457438889399396071829463940684484159973823159666890303477216176725270893137266382373738745528793574180423331042449468724173085229051554399150012120793851620907495041470085069874158560010771529064623377527368163213433652059457093898877311266609823047113092298655655041073267802473300159830023926930665470465333156465969483194157028379227422386550495452204770037457945031315340817857890197987663328911654044316096646477524394571169060736185790028798409772124020563148956834998377007011730201341392161678482942427756884814478089132639300889410010461692563021629153346630159962805695954437567095656879509106005075017489914115755174963148729332725015047740700827585691699389986694553198474424916422672812148824581796936044273687417693856929658785246908079357353001609328171800524130885527252574714277605896519248678867340361477353480665471115548358624245576913677678605101310789166558501653902016409106352397084528875980196459309534359738560690169869652945844527246338324026562985123814080144333150166109111188028217666346040148571270840200749537219200348432274344470247603920128863162332503342518434284506879536206284053103770924245296390585705628327169685015916769463651579548513302373796641770751608280318828275028413887436759014304454619993372886007774483302360492224410186611795473124620217681458417051939716897982266284780692254173456282171729461076920970931680941252325889767504829878762052666080107839124803023921223885590424410104587167421418524837301581330451980873593384156886793227885629519080152184638274972395861155645505872280679285086394188219858715023008946566803110889648305892094871429677867927862466949863371706708869529362202558536259922794944011075485791629606442829256457262997776446652272584540155334371909431378888305862102449488573818149067569203004536832407158321356050055902758302125646091832020293435532329363328627563977950569614213203878605149268591575858386798765819806880102903818088246261026095910416135541318020256165899669239690585846899215424292136700667233962975062271164251129149547632685758537243125142887574061911792549203206679344416271098383743687609707779516059553867671109281663600963105295113877135320574533309169652527875245571422655118326521501716860988017115715331051056845385207095841266159964119341869479871236204086859152538594224038435234398699282446275320497270576660654004142014417786123929574010401752024820033017054998369272526944835339883727673271784934580302949887109057520232990041720138958164761475446465876169334019214358408265974036784229114527243526538740648668276253038407510271671218657215807765742245921326278786600089507500839126869519959931972593352032768400433659112868045220005462420742328255529292288159529632893893465549740480755017143511448700772713433831624735953908319948145878553657143192786287655315691297125298246919649938155287015549129765924776418769622031799602457175223656926529037648219650468355094382268718455525574961858854635090689267655886974200766092403381923462925941107929612053765626756816292161156823982934497350999885092546680475680797922342236953422954694075899424049561176469842679370875516227604459959947636023897074723140712355961068070097286684629827060345846740367596621055196733606195163210552052861467507078451665639802065347187471810506580303994964219120527404974133655541426136898235833764515373458779143931666994910822145569506008532803480329757624534246630329624140905877454734593203037838005932259355149632842245066347748623147403810280331750085082744088024593238353778621219699352538422056379913753725136501535338368636745087274409996630165334995665710775036796592443657869331092251622749675038355380292930486423901401268384315336788529393085976881081235786856526595206255034177014642467855145375424339792613555436971687915690604896226054658200942876936946828332119430199109041460877196377551779248150622016948921210434530116620292191542696195448709116642408718107029738951514834436679402223467239104159730292366340726005560255672927904909016096060082047471662637545157671726165703218848900311122139852356761956113556795775396489103548912082913492982995137627182654401176509336511223404630923463248708219593145692781625388940706269464529777231249951896065617794313932486823183697541608209512814385312188264050222305302450665838497116857563077140667506548151406047858964831049636490973651695357422639003318359533098178949120761525179809286004801564664545103663358278120094658487935655162519403227874806231010259847455776878235500767000827355048039507336646627959470310237711582034270755777562060477590974845389994043205434977168556331307530524433410678267129317433728714946091228272067318794280786546749379978539361751531462839953258286568941464369307351927779350553823075177745812259581822616114145109320184894222232745913817226191256169312401744442625295516721325636915029015080163420491833380052831936302653214485547641870450279152553346966664141388488905506990172062919022780481830584745028533400449540766437458217806107805459361807138788257297896753227565815822763601115467883038695959750913294656089898170285538121626540662135600837883720409194365584152175694518141116800651512242340737264789371279013729288883124665234709788164491739810658004710491198784274842833520785456898180934654267972925372646684133989187345484280558660703324689494889184708268683473042180766302159735430514243284445383484235945490227517799780517675310993974080086675293895152390729033028545588965041145653475036873705720474200406184836070685861837050863778315026955113145327759532458933282131530328009828500633113309614315530855818734234120033419827280857542164342002983255032417473930726439318287035446095354086127768928407088132811550081208801915226861836788510321966437515454913331237080303358321495374911539542326527425854000782366284018132288376682992696132053286569295403301794178574253674141532002280776495112003585967152718556041170807739605536513591176992411148540328032197827481447602483394857077636511108632309060875546258321707473072737923992738696290985870837315629713055666854220069776626960187233258854250771658797410420202115421034413224518379129931409706986234239126695039255251472082457344580526399452349619680469048512762571742515964892488303655446836339044299187556758266002807177791730858087484280275170642079144702075426943863661424745803473425311682028890122713576010830884699453313480017699217315338363994130701788760232790898300037772766061741547905073514106210827071248345046520664144060828034302727740206434634618331272236412574661198357320239729063791663698939961207077800625689215582061026628622345242532269682641880744458462229775384937051950386179611564698473008171038908834252927037903307684567603768793030095892181605422421072150622896576122144403817339259983917245071669624370000764419675173513982106926341200456088382144312076322129531414701111880877918481963677577558792581721323551601890632563660682505759531600910723087949191183666950839368116610128606932985614229173336944556991432722538126181390795339538265458983523072851802948824981743782372950628056176250381833580694099499446289940050428565197606343557553786115219199311307023856875722528935874533868788796612842822879484613743238081295320426848230865047294593969768572569539741179402832176071263280317379446421259454462713625514967092569802543292151552754458385058017591107802687387848843599584854429361569708623192883664642230102122724491185597400479729629395856129500989733423973110701212299341712189573273915536629785105520514222845727788704556039525462415805751056002870627076171581525115523830483282737896526075407211200212934851847669836223795444427205246864779840806531621384689954877648826455231882754650347953373692622218349414482091164460709363338957249619620596572856013954882774832656757784955248038860494940074282316883246527292372840026331031731840604366889747526453221197797668355262671571946937331092205697916609517726579039573296293240974377710751942662056364622858834580368347996379322439462757280692468956741495241589249993802643769906855366814304827807733906843635545592800916488821398039808023716564856942907227191014512997178429486644082820877900301660841378686300340610779008193046732083834081761148932734587122341984876870352083734982420016866699619059396235007205353823398268178269574325864337684154304407832601105944593455243748080321152231196360911888522483987855681481168468936612821473186096485588222134766778174811760042874069016121336357677225036962899866908652930203950485816809857578109452096053842423545966222094617181595208679030803598706477341177164714648463248255892832212860908414993228685609786516235688912055753055718885547783739055912112330400810507738547492274119453404872356884161784769989434525212037280258249124951944254799181494064085681182911614899135910563057774759156874593300622712616371155979675042858577753626036781476036347263446405937923758254918370395493612696447833799941554641957078140759895144617893741742201693805688967864444389673860162720531695291512808572357999903643717534044781797828782651697983616400051115778649941345456296353437685229602067576057742514984392734273742857103487934219801636478474692447565093958560013039498734772156341671686964075196374340043626669226512213578653412534257158431953330335260186691510125524990286916183597817366660387200578557130221979763095109576689515089067188196939804588821739092319200513216755174812320821452785887203264281147414200749423672857629489849336340662966282449643838591002613598054353491149582463953653243214186912651253347381551481701055303674815918356788527886564060998135322402824153741304792811745677120300743527946335360663682984404005894782501470144500095911788736216631464388012623816127718526405454267760708936664116070283633977258660347804743304738233924144044203525083163137715900566435689765941765304573143546314017779949259939257020617974367372361516456161290287955019883512615861245137395148388660457496589031211581632835082031271143893651260797923782193108671270007305722533158509929594983904442739241729652145118443397047053012371123953579013680710967719743176291990949174243540713409994521759633423180263473124446074202844827021852054462190625477605981453383862238963231009019678376455724310163181399543741476398602843297811850228166349538081911808916587718647029344511342963649396480612294950709897074933979231530476761661452865623650704714403081547402307600926405232811782122858836251184864112886558817805648710228726670575742784017095796565531682961040212036964751786320889902846713973494081829623129510278018781603308236752784642125371461046275082564337565446711688820778122711571386360143845507519782986945258260021286059589480329911467386932247732259539804539813432811457609240407142311847267379930263418775450713902541471862081935884693797257192197237948150817381917577051688940333017494840957322099636682291058053305446223912346429543288185741702271110037068160835130009105919555115370889518898361669520755805229070658178184675072826681692787109510924806205749687558661360473485832697810459039193064735729359467262942892847140693859437463306262000576418957404822016655689553365637595560189236080183307867106750830379018026345207507307513503069096926287684630466305058357601997200074080182998402325912142754054770332155775768647105380528642650166865317892483159593826106810038812479390569735391528946964355239069015248464114789751246034314735588032716027014447868653848481443687666764095863491236222431000593043513750333161157904393292032262526597770864253080363514397518135933822868181306819487069623418857810286535748194497017771364154384848990316371926214610627475378971740777953693967971770367859235993062121371429387540257734111715923311104738815547898538092041186485536280863256467022584406947424871768354471462877308513945624360410818054754857368596738024533908177370733807909411252376381007510301372185136863980445187126062598948587685637186861269200258210484627154236028718580339923249548842270667681776736958412118732281956653825631246867916431122461843446549279199965983087620097707952693308905028352509226724949573283442230519628587289706840006568013061645760725822280435854769873534950605300793464472604327667498667690370990606061958804915270686621061780110887550506393165725959576823591815189416536914532692145684505879638325716362144325922337636102180317307202490200740667767718331325740648076383581967140886011361729888319887988682946243851845469413761996226817617773505496505708021114816704131292321046937774806713584047156571656119680392306849096857460344955006752158905538596762704758685802349294768116645241786071277269638202210539271409492460605677771403668894152026712521111683768594258676592376053809373535151305126735069041454027264033343546896497306101572602466296669051433768899713529415564739018002424883705959755733820383025497752568218520844042619155642619739568229559120423607747618503811519460161984819920620897094758954146058830541487379020999808876282699303435154158856299267839114660459571137495360220982637496110255893759427527802385739337034862993569997763241545163452064213542375110368649310582677013176274991901255699670987060436963285142961532755342298917897468196759876037665555723936116246996609302913032936629354328451333618138050503303575202864921130696412372948528825900032984061295006737563560421915314426282238560756265294198743274306236347431238577036374594073160404387350198331110714207162966067280475784726106131099014571230726368698334843797414080597309779399305436191149450969169022357302174157162547245510991189108881192607997077715504605498000839153176883042875182961314156464119239339469487386717791113034950818292321795212751496087282919162362715958123476373709469582251948870315283830853616808178788255362484845740842088389303040831694632182313591841846758972853824187410141214695419696018630469379187518305589448344122787074549517750569545847070962192639699252087371144990254882701360106244189404570112173694099209037140657883395294718098569388281266477295527557045764158811330713825015032351953108225019013626528023775649557595350146522551437658022431934334489310753572692616134221138310113804510393162299952684684098087547902829380941696494652090400130772012540886225599933576574624350850214355585623582799229494029556907967541067850460880668204217813616339245473037545342118889330452761877116148172494021988287467259689227353114819405356008975035004274831310166415192754068608115408510294693853397115081088746673742205275049839908705698717716811827862474561962948317900904932863514033932315989416010374366593136382512575191471536654985229824928188411408152133079665464918146561838137790651035216308652174102504865526968310206334013975333459790493889789599431027478782653251234238256935859457631616592045329553818694067283181787808246535679466923387026861903959138809854002141887423445249229530159525815546439471582880895240482435500977621652185872195693948485522457037323580377350567898323860009191607296107227796569492422257572282277829898449208688248638345560692620777452014029170909774824464575789143062566133399895966522519140197611751827850464842776001750410125755059009602222804414165439302758635427607348340738594666335749833638070477505887937267639872270161146680859818552792090639958710850655412771312159337828236858072069173410112185022720285518663257726363376912791481814528912777474006768974445022219033605563685857213065310458025748172878575087030528154548717096272810474114837630251061103815981688975084765367512821845916130746722629149946245613361984094620792658869665384788905273895828334817196621563490002947604238286126558065178468790550089314008053622925473308173678401168290589831250456334063477059083828533744397164090924024061953074889386925819539399457949578640295003858114230176150927817206367179062815510938217414225491160452486829524842950110794670679747354482812385929375051787854335991014924805310569053572056353962137095749620633747699524183110434266808046740046253749454378499237366684241124768703158515681675880957693863201540625074449247356866615753080849718888949451116103237080702116072000377970468748428313374214997848238762987557354169262589409961425750552268679254681732560803238451735814221886917592625780769468966393762796942502479981384790016521507104139899564114609081999620717800929869997115419382988940392105227944261128114508965006941397295032048888949360782167005515783717184269393349634232753895875669186558404229517277408802348271205341053243976238971972877016248329575806198989398756890584353795484649309722279401646048350256562705590200232850890437753218745216773015224907556301119844189729645976165770808592309156111585885084758329344436193080910479973562547480420010516964264736175313274251285744524230356270421306551855880237138513863219938895081085670010648979655382651517891350751459156958856329973881591808173321970890664368263932159417222719881129899088773767695951634020685250121598877752922141910772317687028243504688500149759137868707913435276318535048201750290013339924056368827279117547580373190433459812115106966672283516700937719424683139760973529124013660933270489541059019594521173537698778232548814816551011742695956203401901332361131771970716133468749362458973601721429767032780805611285347971949179472115285108853284334191917090825091999787797534066217570450310381590164224951821226783144288639743593527282667225786909539190949433989796430921327930739758740689242983036032596784949384540674647074781887800249527729839759537691709962732396361661894077664233401700411235687550976723763241929232596566646818197046769208877893855230690493793200766978450697269089134333361788696734154492023873336273846057574789462980163025162980490647968214807333706047828027643797486166271168484115643470037181603020181343134664321853012313334523159964370167999454041980206858512090225629313117187545191333162388417630954513504224441396396423548360174431983071616692109510764864030045670738194962901083846712045786262056192312292449324977390897909191317864192819863174727523830805045536386660513256216638108737749865243578562040270429421643966924013433843626703375938691651239596652003523069320564788697500933431734253051763643054945196990420940041542994828011902909323995209745668690445445679064382330317274258919618113631933652971299401338535311396468349418884870023584053914250810674085809771602966272172259238846426061465794160160686527402143248118606666553087195169732583490561791825898355317375456785833412290909071914928114906747457677027828194646994399435176444362220386134792108910490654938021302167513205869150301091390550909651909888156298486725598564750696898250899814120623868607566711527567775605992297063330804702007558603893704431982117089373512744886329378237881890644992987729424645349505726869476036878359158608806599602734163053327195251190847432166202531768006375613340610146740118001922062822215333354262482129234672150192711572726994343910540900915320826540325495136237924911798825102105250382119955179794182284559246611648690402005673106581128384482043106608711853408529536493865177812731985406575379568055610325633113168066524659653294744425302778610269187111339697851765996424337974428713391943901076493030994887411795465885333108337549406273293747614135963091300781810792917582926540921335916771184673730321777993071640508243562008102707962780574747381190520781703860819994562497287354354243969556006415449731847787917539671064644416188390934024844085784028991924183873108465338517289507397929905651574838750618247057574986189548988492909123625465670928486643828063230165755636248995825385562235434076658931214079804084084780228714214310943631576054093398751092530292573316250099842970942645829586966337612259859105116260992526551013597489362483573834023673821005157623870776787929868484853760852461210424843600366252774661860110045747991615967582691800744496543597042349734363065087315114108812619103699061697477768532917769409927190905487590834399952101967917376189033333725957154777049651221823244361777825857226277604455708502253108950091338729621531127944684534821627174942209756309144764158056570273570610410539252517006187786784188941433078807568310571418771992666200012054383691167114189807557314266252389644626324003456596669163571583299699012921083342192197582867476347956740348873011414860834010440371244072950595348152750632201799278299502029451069793272809028892105096114634699570444792088403740005581461910961155351748781819352820409633511466227597299911760354920720553375147857512346137545841660931736360161176875651672998837247889953138545297244345510359371514192136652011184995221070138849472168088533411025422284911250864307005674237075863714757804392673340078316988007407373198006371377918607117725519128169577257706010442603349009466963426334767177180182788046759933119581738356593252192267368874049635973302849792835023382339057052261604901017559818962293759015828360716023677740429003522897137262804340409430933107038253771849525300862897910694220277581088654991213448262749787537321985323491877444105423065263089730376902750462190382820886928215154129634331470361744399503590865159045878951480579869666012385273930953582488198707938451151193647722584663123415096079409284752065214837241198391778502092271123268911496692114343965129689146903473953665561174053575235193709294243335198060995248086198217656285860667177266449602810940263559697612090170064965177770293286938351902094782200799910853281607719230278936750672866393194345953689959501204248445658397541843309293731631354039987179133533504465395314895709401063727650115831737032369610952185420882140686346454661698253012834988254069866614969513076957539321741203498241520117838471798730201482500209032175263387112539144532004905716987152165762644448311013287049026307348289237405032322565335904204428898972332689446771035770924121215611707457691998905791716679412927695248827533001589734092023925763396971120955437707436696019112929260029952768477909173342626274243537884688813463878377480492862579445544628556217840595953425867102055382842909766113687949335496493041992294497686638276620970405458614419317781318254429037761717163335258107123795269022003175737631108027431967888942595812974074549784028430881073133678103315519655899993780641277816880267649721789200382971456132423732484604481397578854862618448113763007226137392627264441551658883648779952065428537907755257804135015713250103641754615289890972937132280992588882937237189883267945174766104515210803317265364470302278312028527986960358274261244989337560518862640615664870631068969120481561964720634977145051271634701803360701614348302635735080901200647513185078703956054838526016328063261964883189617171399013225502029275434073426062103567014516166480230234267340387067508972122477890200719898606602504398759990439050195204710322320606115882615895439461348628921201381483520072147258903803607829911796674192362355878755440107299512113539421766921938126664812420812257631144105401970336622886808951989271549118959684220957196822836585646535639462662657946979585431658465750978635696191734323965340680651009119736664159872826482617950932748394378117765469378416160850110546826236450299695313990664699246497041462758096287035958659909263160304842243330661639507648165494904110856186545681708845072200922724186682849603519874593954672334654820675679845407168606069475930468054728496996625603454473471901164625937983719917396972823018318382882742321096723650248083990455889383855304798105547109692078452236694149087863793047245047899174178328861440183435616188692944518965001954076625405872618764338739281664015477003325782683341395466214593537178605608233389790426632698637016370894644355044524324300094560202951898419899097138458381320128533749488821273718608702842556268497561732615524553083151948605331125493545290523740787557633812770769948888426803598321146824228937191750352246641444550045973262606080027964138722380870329759214595778560074377549126094137936104325363515568242353736565825292012113166408289289331311496793682425364323050239359366068284910644106279574264805180625762224830680772383416150560499791599040686041675757379827893021847677435623402152383739170489456620842795344643886043720794832091667957299185087851288843253701283953572124786793885799431834389581726600332878244267636349877222522041357521627018694742524106216899327083973002536105799454181387582659924520035446953215104066683646760428519106358814932838839178249669874283690348850877048875879643618352098035212467885669013811447719625731543256218341280524565865686709237052204524883353864473874826369799462364687164924162237677032494139597943874620528095001073402822155936071392225501651126459208037884442758745246276124445092219284466590476612007566457085265532271412527418203833627073100487857590133504538883021695883856557583216401409334398813919603282451518917603419683551391134458711036758525610618378796245684949868194279553120608186830626309608169642507486210882516714642710223260996993060312687885522959649219660483260887735767451055783798732986290508949268499566151425751994349853171734056048507243092457687148647235319682212440222662178539288822243023549609425444269905592573300079253821933397123151238633677398098168837994247878436355835509797262743101342824797571051554901950153770295085442697716587300728469540192750675350077336703339142938493538885339256244644829272595314946330238077240775300229893829867952779138915817947435777268610265979318077061814895549790727701317951084546633395130761702731637870840246986249717009998994851461631055084161240332573086139762765313695091645098835706573393170924383101027241780776224366004831179963692811717578800931616282908041064123507316979022729624838446417724981407700338150963947253780087634467220158242498535910072757093552537303478385703741451734270276416733405562052957143751856248512425589076594913399695687349209816973492209479533183584860911823220372217953244495721773160150503677216070747601474499929558334895037252902490228126970436875320007418610794166952394802257792505991176892117287891466642164048217761780269300357084781901798486110585969516919086203943507406656009502461877187827639249444103598993914427898991899375358057590045441481159188827868261971768178250001209621164408109270139478164232394988666552100019525705125032604718864082757014059273288247089655049444536410088650230755566658480330349407349541890857501192488139145724394699738176915735724040727208568433687051172101935258149313250983094667356893421496524153620036414550650855969519445563066678788226377635622149247828543473050678800404519166468827039818882650309018858139752090866326983577353341025110587705464357277835871479490229006238508615726609427859346691192370968101166474045352019949772582310868153959565742359451763073750002896673610049737909350216226789052073870783847070142513461626874844990956267115362534862307772819794489039729174101333761678928401300739605535924781145053159180466483391006528566608764267209368316592411931084216352081763294773830209043297547941087220647415075843847631341100913949117406767160572306330889329040317636259754154434268144939873068359742731711694400482303641015819093331510728851826012112128307661250485950635912349921422488246569802184631280327943145751895855221328891052302631836238313953589958701606290035942911307884596775471173367894171745073416202426036552517858346319012897598022135420896443284237301173013966623018505239766364136878485619861885444727356892819386347041881251537859195591480432461212282977260299301480417742632511248592050814701949637600596254584104380290976033146070106835218480138563814437185068090529474138602099357152759584002485253347929689829624998787898710814359219486258308651466004430553053375231431838230807527474519611484293702645548156813297699256692553479747379140505254601833101125513293268208176536919917747119723554273245184460917177366151755775058932435092555354118945399114695656712531241852417589141533938363433328314228267105053562883427420619214644612500131581830438536525588369117377806281127475853607672804821624121630796411902462192404203044835725471257228103986603213896517928665561561866187268621470554232616360969395023485651465065369751787362300221770636720613462395623041818791101370187446992577325970836575805871395471674843078904410723920614828555233462972253254375375616403406358187313171622719079593771337654116518069887121149908092596545686465190351910259802539759979491862030265276085691082920991499527165545855032030548949920487413098151851445532373274577788347210804689219602587538912556712252780511997573775228208840408318021538633249160816189711862511601833136345336976703867194324782754262289643598802514892363570482412910625571235181207877989975823916752163323211888782401976873993511620008620128188327966319941852276163417800016707237643587035171898981296262830644955182248406672828694449984369746384211514662400107677921742419706051754203370784055707474707641267379096493129208883699385975827675251856723910300088996664538156036180733174475679409652365902751943674411716510654416387127302025232261603025881923443894494142337719926440783137316217812568936019770714416787257306755230701172954026090634929974700559933671335186546491055843246166987470400709183450566026261101333287684868291542826962539336767891983911177413542899189687268263458369032612658731277057090956794951684107242520188800465708592067765582167300721492188699814741457115694363143760676832001843413876885438839528536075048980918845624093019923233580184344111349810804440363280287823342042554547989048117742496604977732473432691464556621668743582919100036445118833309564900647293832644676708767481659949950696542587183313335008371522467100913153142149423778649182958734143294671054894909261448741261915538083205464505034044330508707600865279618278415806254615040055503356408804771338123529549852174983917802901704584886253514473197353203239381022259367371247037946536039419272527383351368330237860538083121512923490339753481536708875217162718603207346313345907984739145367075579647976711602604647026227228086420094906422565505777234128947005385893428779932007039232392354977010871518606514889336941353387277572596253258944339589841107778334742581313057650986460123052460047759674155701004313334519126558787048844307893986283886411806753286340790007856075633994316947878455527674390303009510644377102907340845128759865906466591111238811120098689958426678632142675912476125755577054529344819587902837461366171248678097072176180561045151152582504553726422145686032954292909406769646645261408190578115580994269934323545603867030166951875641450574902456006957260650493850438728254064519187752357628263909662041278256048742931340057860939453581167117525658021314425108203321064452205561284878818066626579366260504550279525250921313105374228512796335600324728266812037441431776351958058012456778148186695201669704332574220936394627735732658882862384788369088509932723959504047999858267675358777097301022006991346928329995964851298518747795806151552421165746378678996712831988805344214957493656979628791764674677014090791099216516128662966998890550760093033450383876130244204513723805587362321335677910286852074765641893074309648641080928745549920027963374765300140002606550800731175404616586664124674253301409835450373073306451537542021123812186888328011579866639810169098576379284447158732728495871277730253758663680932977581031115028564645934078027458925620397634818754630529291188545694918676692118216899471351885346741455386030275495954308161915963650159161634708271677355972902714921366712288973918587175667713152256164186362435800570780896278405870298858297005025312015568638341918544700308996488021653949455399805532435199732886378587399870946439966136721421147408624008233876468698853443512426669856542125484453664340335388725447912787044045575758182324261175979925535060605609702761900657923645811953584457216031916933658723442451364241765844130568255263222216730181180510969631357654902934999322232144106995379218495454833503806807789698054049310375026965675146099343996106167074109691744118433363154974312801164131800881594817162045847639196032079931371296686945346604169075318526105274522426444720134496148015530333488663996081353942983787829735501061164552064344198514423933101941269896593226857437118707326224483967353521383974578344987304766382784138095956509297236459533325739340185380981200337109220696145136352987479861898698209738839021406509359833687555702214950952820308914208288912847938750533833212125849141921012957645439449602298277821023711152507842788348914946616475007461627721886510470888355968549201032356270522979128572966509371152840136788581676931743460256393931172609599566614424201775937988840722668575226987556874139042220450370633838367434709087548076886605842893480154162039288912901136196519367454640041357991729126472954924533347818199111464099846317891114294895925284775532257784669261880189829241253668706466766603806855481505856647218314242723593239061638279598455407774232468308768064268939477656769921769208201890867127537958387840405035460752683629243899228248910987108352040525832258034200078729161039668983247176787745552793561340016886371797955949814752300575445102850946611053688446643052961452597244930029338123243045634566317938047970922323026944787196057993178358663201526785289490532507875977648578061658368477885022198980676091903781682059594342511658215940089430558038469314064377125629966536361217425623608260656983503082713181238519507182852203361053275538977780188612832014706289773973574042169674579746211776992350181669757943907981034104818758566330839807776782512018535556345684176408741657834552939199346492512277172468207317364339433485686834597880423955323551647603540375522044681299925828650433336688437105044381004066641373485191487065096775013719676138949074994207158494369084224861705563820500736582797925082093810428457771395245956543905140224795842430859571079890438203467042295158357985259897510724881420978552712513451724643691913526792840564844842317746510057880604515001275497578792870392299399675404557241586120077959531525845084086859354955899785521397878214210333794485785390106691432937880737749557250742051064190724273106501936903327138429940274613236195097858882054250830490108140637790986162300253880093069158317323033825178398266433492226464201550531272605045507073627284115999000243476506350931981124959089942417091881228343308901914111453004172580713320401852972966793923033602625424971156605153837381507435999709712939244697198215200009811300216632102383796493132948062397727058332763556665820872741480918768894659750018996038571692648836765482217929825003094711920853712478468234645097031318156042260192857730371471492150759091262315530891901584707351316915825252367408860107458293630224954579763478732702883539610959988295782505658865262353526617019324551215820099125626306086190604774845400275780964559925460182994988391044352095434346164266479048493959715862660376533695195173279913891732921829031575153773985561139162530262454984609740505902968583915171887612682121936801562418489282403902157511636773979297250154955910411365344014727247418312790807522004985924264340148660398875865238513725124261918501434699594055175842872618942381868835280607169311362494098531999280000895495630386930253302489475114964680245172383877698147579577905768849823713282236760503658489392531152442801424923388014657812808710126359830098842392319839773859744352189719902313537619377835428784750771187532424305506223303202441491900106517498971497209728243362700664957010294725033557731018447288180285049446353814018524105366754834702402088351986163889630615725523250489244404598053893393989333577598236009842198912187718594230653367199353399261383664591165280202504993137654849647276063236954810549507861998664593332738113285493960731277220683445088297990019895762991689205018700618309346223252350487754192748916449664248376314524026464770745546999178155023321833537168567406139553213174855825995566930209160788039030987078693290551515328606459338281991848143308332927707152759273423297313289744041819166632646748341330356208629436633855278586384205407911919135101197001153343834955882837064867534678062430067755118458280425092848353324916963413901234470769828071310095724819266123371013562084768775410420320313353173477145295323952230272061232460712478378660030150851517560953574548840744451429613491356734148369004099778311398956302828237285038413989430095039986043570700057675546019887370199577089191278674414016291856406857339207737466612928277043817021445331985204294036222761246072211809728639379116898326063402088521396523206782471062782177799567691043565948610765983963100727609626802401800996952186986842855697322011399917449248092653184165379913481619209422185522376751320887145383515948531248865639025450191375999312539680399090958059115977991698107913630294027197737624203346706397094100075370431890221990886152251573909661977765478914973936058200120286416299024431012026007873043402852130217511354731907332140357510655421269082730936060765278567660096668120444592237104626967564544855335720729330169855770106635530152652515485886590624522585207840420852027970043093393440995006242330243574756563773799628094147932160592885320254485769200943574408388147347364781622911664839378232305479312616154468694048921784918589872139583842255548997084745273677101676921505082226406113052353779041736460733390894066688035947900962010575550044874320119349633393925307885766044941058859201599514957069009758611542662267144196353985876762138915120796970933238723331427828626963316490386563848758200342234242648777661593389993247730447647101561392453449216071120746280616941538877893586341709049404391539307015021752031787663928711048250509617269337572415752492483231411776111432687844100130404405107731500490841427761345758464413193805038983917342468239598772845854135039796975808573732174467752102634452939137951500255363157713844301735930901515503707421332037528541183068688115439452973386942926122877466592633949380509255581520430256355171352443465089286461410946945811198679934949308198972072728255883736020931168370077190738862534643671877817485322084875728974853806667136189192300507418698032080389846160489891029360514373605029837394460863713777276055122811918864473521501319731509859664994905698851481118829855612308297084472354723498371450201869435164370118727959215089144505488263892848235448523530768716997156248457553713314378593205071859207629130425738542475801401869674997261568060860460123786851628075992680732557128421405908659544818831700880670869057786650634781096049862554423339158871447028364179854923047203274640028715068934403790289110957123079939946324179050791936458500489527139893381252715067219713315354992443429008768230361544731933509732091628125415784741374854766261048294970077848150877219302430788418024788223169577710425810305775044947797946494027476763656796481844830998219768552344216208607026399490344424708213910371635185212625145118002831920719809431065791265668222028433464110607736091301018723228086065711305792388519230853899286821426023535548012181986612251800647264388705068666648674217221898464044389885540217659948723234684824735508861844107090807412545396185045843101909239518139074137288707577814832580230795390435227114023760279520741479103353972080430541495755105769323604861679687959630552371844192437712919891293204113688612302502718027498483660114828850374566079073942293426863599348279627179464599420669253788751960268733259254772029043892535782396895763136934039249491499843140788738631754475633176436754313824539493245839490938107239390945894616730995328366890638649984377693491431415158437884140416513962957480394256782324781919479384422334640579737705061266519104709690769351163058135080145569872194687542754181089635674049819524025530281296279796061730179898638576080650027847293286538965085697899070471033965334436375334567314989357477033532854053166418989175383631081244778212860629488638472025611454353736222398375341437208420468985923264050714133899620501111882069750296646347352581361286652628154753154963634909385607085016523397566565569571737014464072066027014602777274451962802357769752917778768344268056566973027743645911775291355713432502698755468502011079361530642014918928710943991099443720231520655809727912182834753284819831893540050317944768369917860868339907441983705315476966738050857324154617059784316933920848266004002154347740111880730675475202848592535160930337758156721868962645768665908050539973635860250990291617249615129642540336683813262760824458685984283758781982753297465980046576596060197571095945014731428801724834637340033488648784393235634909921445076474646184840354261182431683652518975181259558762391510376279496257408837061370003172714191396876982641214275653301296682589311030518538018550758322204328141849190464278613104913701176619093027608109291445412077054505355310630031439832407942774728733198163853322592109942716916086320457412234525203018045184595521541583983520700115890666111017543259848779077531411929455501835319531326218690215739594874725673155617375913429396759096181491872948707268713318076153703036639223322326805345273407928461458722761761753757434036760483771320297464089043372310557840072310361286242183260996863369757381954765972239818292681938414470806071020736213258904509285423035749954190906669549069958044371625236613592745672772037430009696535248691105258699784134761705227382981136383937745025636040301708796066367353205138382503431509142534976335512790311533433284354467902053138550247051316245494471167681423290861619422670420072032079003578648698707128730386218150301217863436696092453552493397762575542891993106642106995352376392788472938045996110602689832265989448597820172689688890169971797319375283533036705114977163011619427800255944194928922326535476234058319193730899681256460401416300576266115546964085418407012499027299877882634415816604189979601409955732732578793539043883137990074454478483695057542254777132654490572585155752364110800805154887895559295964285812374306173942208805896983960765574521244612000640990789650527414026809907663947484243819536348809291994560239943732472037810813145677543439634924145856731138749456690173073521709899283091053625371217566576515344368167015837169056649942965518048693170970620967081469531805707495807781005338908668774919976529537857471931591996021872331445390207066388089469534623758046971045642165801756138084087020294319944673952274204889351092949563579108180250764589586125674333330314894270562859216822297684718790532705648034232669871328719284587437720420273861461325257516313672688876711586390900262335621461503162174951159202349294439913914547788462459088686587707322220596890333217404359818687446775945286695382134061589131494427346028708999203906623805740603073452136705922800351385841377533955536311325850320648173773355006899699556206108127501110043153040805097536929998371523491037389444038187932840020395536910455240713077445245644824138703323387646705463137016895220931268816862214209486186961688982114968022551993833316082699158734141974677960820911813332722757326158723441197072218366528327946948542942457016096817701857124566333463184193803456171451085024068265257373324545344129991561789853728963167081767721926064800490935506845229266009572874307881317508868665034357944978129535978737326591982835879241523426873150883029211833130108499234017173761275227014796459750376601037140364505601433387455173196307056070337144579320457951588754560771620919724114926612605140037800645373767806128866722864772031840169656838409727731621404774201922687005944888896427041094643773707405323990434497600642010020420674936368647029394598684414808064475057618519330745555477899948419452610145803763962599919254601354291898843962384503206181624297445791800557834511279422570300343829028800156758241520871087208677161394462299984886203146406360870960784818613317288421299191374246060741424392693452327195779082202844777483461080567789802911188386304327375788257451072584858045078665352738320532161965896717224593067954135292224304659704300978892202693793130374883354886855683799362240804676452011507589584835914992073683725789131494403171788062622696485523706259922010550076349880580032582747443504461368287212321609282440911300274809531611464006814090588883483645559586280900378189007126761739110077522161966655711350879825227390060909270376491122204195579898175675256965935052299460300852868963782209650389560343391824102972548874300253089375845028846971401308154894070415693171998325050201128607290464970044695010049719072455423663496816086643518989806468724689750678065809692489727923464611830193586610465229018865724733380574923584373532613446704495001542734704590977494267379081034236232599727285551593756323957328945207828615996540043830351861971970160733926450473410328491388686640128938953224625814499223496170935496497807125532892408216184364199177186756435504097499848469409866756940717125194136828027952534826763204510419865759248351114034898927735896664722560611918317126209528106652250868908387400417618790166137598041280212799431869265822176049367813446577396400715740136032760272618224616667009585166159336153108275499810186727210251455542572295274104219649095288909567101050007367057774293804630909935761552129256197992033978296628454779026976078426806240661812641628065479519209374049193699740215290957395431617958860177648957764578223773712517309371878781953692755793018206408576698773045480166574216555822344149969240989047301202805782987874636265249467561739680215144790653390321483288941372112468494315290379748995987671037349328559122260053346396829503353217116119611505401734377941748821351897716117640487563945389092854836582351670264161077767680324124357453420990646204105652785761030762508584782078031886883320455623397823829895900416689139406538083625012161637760602516029452724007886182671980615051761166801001209370213212132690045561294594607381650881521917852381115944620442597176641210164594688359245573651352319012044960861126584449339193467763098937735311722717187394377113074216559423595228178898193400051193891293761836996416253076437848028502588028047057509905290125449052230472618812239405645810937988474164446461827728909039863959740849675494703851402367224602263707267755138052074557627477793191547948078705527631834731124384799438370276826207679317587327101261746483824703283934634247789581957455254065552735673714076775101227245640990511954712615419614883457050119672773323619979033522059729387650131538058245188173005737201356338177537591709533270622963393275410838073302352692359234739782896816653913469390456877806589764598307725645875100705932683952589703557818038665387284458782171717336725438731907908113532574674456944646815230294762178367154998258656387815494002377592383332577530096773385322904893568012651415917176259704398993393544819992095564661627267400987714997772064449263065942796952948038689895959258373092764391860042827218901387239729479026629029119315087083900400049444484604098614307161547785869933458550591326188458521257269720857016116323742686245723861452177361078068394792609746849186679269450738513047193844615726122498038476181566256541852109898666483960256497865786948669932093335746165027057089492346865834825398299011103412860168335881038941545020192324214064677628242165618403792896329476283996704296305122042607346093925550196678621437255181474806832361029540015117653575548336644257276294413493155525089061320291615714724365410233804203952457270875787322299538074947441411893339572440122829747488557790966977867216853511545828496540397867215408317979165225199404000237583317747400835416013160119694959086029483748773377681045926306067383401388443255678550280605883687334230127628913558733371812423966422243949347353920149415159471237844048470606071125193763060942122076768124947665688219973732286313415289807069478696947423289048939631953845947363225282947966037646340600599489571672701712604665023261802235239061733407338356317486477478555642377415660194357460359223766860213627535811005916657439039360318188186370370911232620404107659371025826516680572588542634341554076984707691302764721540982148866719777401459060621392059166272050233482718720939030743647135190311025006259500600043476213238408706177171002851758790936796547095074633114767130921271343350313833335812696199720781232479168584379499137329012097846749794525716739458302549746250919466058089943461509688876913802204472048012939020985691179582837101166960435493333344088440067803025102916755967317126765770728394535823388102979736601392299254093907373021827193320394681847829732094878594139145943204854292439516555625554097639254162342318520996446003721238360935179555172104419500991384444566184190535869909272143598915252455365890257416690596858580751952497551943329343038042930162114478577948821848329724768826008014463723600386280642007320564522226908923091897571839558760115288298479278538021417132268679383580910503244246102580684779733977347104099102900523575990772005514273298188534096650856674059228344256077538515500480973156418238991961023554914808663891439779951454397852810012025985305499016588155033120119317175200758120548489085870489715213336521996223573028838092910891198263572015887220389834387126991596098424186728989942323778143992082376051425132497053676701598478971976748452398609000625933824926967771817806058004566989084562458296789107676425077823949794883335359493982304494157893579411914408626371545050018925050534414835137472407144507524764140039951246720469653145883981263854075612846195321645211439927593553487451739068582858528493956329034412421388585985361290437278266313422687807607275633648480377791713272923351729540027097115127554495814306238314609079876155374016335954395375706040313028843761781324020550653374745232168889866100419258256297484135270876880463427657811079553701188551238065954988190270447673774148762953418725571816879634159732370522155337965057571840283460407866034248274544533540676135218595121498220700359228524828452124120936980552080271129430342839122483319730195782962137715003995916055747279087293834143576688233783989619394624628412839926848350435667192391745146975881793714398948693020346159892313936325316767147867719289557187849056813608958009678489334394812400632085901436464621338152862015120760339621339910842908732065375411155248445891226276942027921017221975237885551004416624908301088755871070129070766736333867166215809848833687640779766996221126387386992177452744332484278289590325083092776203962152171571355443715889090952485028151743536132943844898528554977301249615730616077693241288144672808697695981926413485166036526967418047292810058749332804528155490345873868976606701221648848576687109242230063977970765564036389587129199348851833039541229633546205640415490138580170716462827719372622191548552438066698145769261337163958375888814923783554265586667735917341827404471902083629133812881515683774565046154367955818528200805828369880183837311061820813838023678750752015941092197317568392978844790709489858465402948928747159217050403889829142066258411233271833904358468896776858219357324976485641487793276785460455723837925259871645498826935232372315698859817140397579852201216740352246434046423956362222402618499036385313786688754591451752262145977435575148141812745151811072669467481527380356488653009719666789724561669731122375138024814745991038478028173778185790650358685345511068465565092127837164604459221261038737550068724871447022030188847492331961416632985363475295556877600152465959081763046806166450520454220903245145736288400325298457418510248574474714438209540193277614572249653742640528180005500669802804574914628340463049414814590707154254735190567876781330861338254230632996054150534644332381728212137114069722701004140899677541865840638337687398772636984959251803277298468243089036036651108926136407752646225423026539574203790380916183071504350695531202461116871192820858025106768053840905084468028996554889663810522149539580586418948467376544896825878346348342435104065856148248954221064003898341407004580310616065885558761056977577541534377370882581687498805085543172117357307611859913848912230230795737478645852162975707361370806280722441946355846511566475529673250446177026286368567528548925009154906348748244074788363438501327920312450499344563168017462824070216231768070877172423022604953036694838381500970225510455634310510290875263517117345484496824917976411297628884782185706518382601345810055950493871977183837514191461916755997307455579814944226053958841205160741165567539231679661514174647060398206013906351310385488767374266644784569336899240213894906844479570021274289486911824357633830613368321274678778067748430694126551688356185924480423687047321842354772418813316067669102752871370226363837711038510087678593862507048214063678005439751332829842389209419194225930549531899954615014816737888598044090540664822940667500016906499474051137236042877377842597448837375612985940733051631455754630880955465941127018353185747995001208419978901748302813578158865924821079243416584756171290251490255698118844077839641164687131165449947524570824468842767303044805924287609592359387470369176246961805155926721693535335635049639822344730058391396249522512783592352154350634512144854578411107660828335082756669346589035467970364632843847927762796154700455081225867734359115582976095070197693790066461999026439451929691758124427509448801453227464565765878802503089374317990089170203896234343792809531522927489943278803000039086810207418710718827293390977729062907156929999697688869144033595518025575320957173012850379771678658568758490504608852452281240505801550165687480501722198096880788244408424187500948445736147114807082131043410201212979155467630858056022670734114600558610704992927851283529653570294289860108538095319772463716282227451284943167909537374607650487999410006001147307227286785269498653598159260863039916258931277645703586923625454021928218558076689817019033088149328358482863009239349647215337694229761185038485717904569097966878721894612894509939244914726809748166155023566833535697920906160510876605904479154198102997940111589390378151289424031162715568680910761871980624864851842685483677807877229084553226605145013772002317479702696757435876433634047876043755461377194938998206076673773494761714210567410622518063569663001870399696817877656543706834917053829508064967587997267273072259246921736530689348320221536130852059115618076672741931071122888132697107704645130207538952221426523566045399574033923391913913883701452252129206099683052359704731466257976381118689322270237627871397376378062375794330694858450365194089881730360199639024190571892578952737534372547255734305559038493800894920798160407308545645365748940328761793778303074686735510747526382592017618849528245933348648722875803571725252720480095019267537952300631484283922681833086289200007192186929670281945111925875190221846817066097391611144837320276180312129590658156783795204180279239349939981039641009141066301211869843207859980922399391396514025882446728230774933304612178590865788953086284209673606715860101637499822169313400053732608881483984343179429042171170370425595864860759135527089358850139777426280599823261607863505153216059075353081434551769946475326870221446106584865834924259342095361201399895225765598342348966744372718693864830668957071700966850189045182233977148823440292138154660944973858305301776422500859841512809005803559312480139148818031837787031810591936648073772789435385595951346688635487205589144202803438047061643378608544847291840823046828568809835744371459609128380834560737781549299972624271120900443029335038934116722695257650605138537717811077748831514800662285713571531795456238428621993215013837230250538821188304734332719395701968138315524676160227094188764616991577682074219285758431648858423925035319317643822362555159307943890115917632611833999927274567239343005685648708232010181926319997301215227594925121332085859180299301609872557971812632047281031522578622722056951102070365381034540870346311617188251093083495124588174402190751615016564744199914928747768254217974835236206947129746158387248816285808362772736552134808096579722930703703819203431486575491393711857487881226600513299280910869862177609186828233462927336072723974033364352103909837778246868907746753603154184318857752035820054890969778394525793485657489899084366140296780628564401328745352218468927162275378638899683989764903686152979862012699195049318099152476463637146027770310980719964957055528122546183817257063382486609506808628650422418610071199842170821601500104477695619800743081093661484565483268262488386296936892185367156718211021708764773000524937123914400365491405912418049816564203031804896065669074962693754462416135229353350414770450886766735074921186971147175547261851087144477145574339019823662161826992920215120263623761281382028122096226903955141256416956414488412584293801648685375112908596599940438066473885437575771077291314244300667062155079456171483494601894693172663711351043460933975466544846760383890207300835200364504747618954461941887540068931183371122613156275653964727128598540151393026588055804684840612167797406191558821488637977519601195802991904388959057300673087979190124332452339798183470284506987414934271804568715592735830859330424303505580327635718155325082940920484492267638680754276017728882281881407423123206305924305329228583900135797313286708302523636992374899777422504137544341525188632657359502827118217335539490773099504866182015005255289953476297915030437888916125775040355859758703218015987167876593120136252022534365504150517363112781438711718189570152663683480891931609591691684132808884576581921044078477872678434072363334015926048403993163025664799993183188342286374500165752815934317306470557525462753010297833514766447529888769944319691174387191513197219143462784434495551918314838755588473662321939775903503103849111800113833784039030720817493901342678754687752616366802548321168605006426403724091581700303547053192135324922963208253292487874295052301153665967020945898440825147514618158867406094655830865023288308662363347388505544086961596096411724451944008608929896648520232620818875048223907653251842995584999355182258335481212418782302942370288402191142140374522273752694274328608995895464288918161481712986697913334148567623321452103042310153643358287450440578270841305455999626384971492940900215963077603782246005775101446887845491480823206918527133845974102944967130571792179150159204615429130607859156293425585781829936488300656400546276216418737570128257647183112656958609593769882309909739579117532551919915165415554298300668628810601092533470348738325784581434618397564546308445814520086636771549295513487718931123647230519367154223411510053162383225103821904855647427513526812893543437392989607993144357676149215072030694671230164369957598857466114556379801739281576726854334167019277359552782662851022718448506184006015562691820646192945975180691532996197592450431365286696249452387366773284797820325815787514808820929753813334994928945726963985582402584480365868247351032524988262538247744580768953481423788361182968319154592232634848875146060156703306952259021165852543945862907752995573774956244882102239050668912134463724087051120453745005351427958395412526809009781489340984701485855719531975489912439324341040604682836961481987066297505529881107814053926830152795990331902731264500144259930642189234656703746213991086157474795837699935663675164761636293602135637139957173553574002944296157340936861953149177354633521175193959103952152480971121297875339283854221269630299072436199082993709708553871181052127584582240415830922410513861784814064648281277762339932930704065566897817900392633626426932915546305625683026807176527510085424547551756342766717105342335913532938471790397620733896125523599395482881108539525779779064847068397999303552297697162371545979817454401139362036038365995413684112933387273372822177013887418244920446524686262824467841871476530148578056578698040698622117181380569940530476953525856332464067657362699068181798493648411972897427561558736766807958115340200382807019488261266109386198734358247788341228461251867332044938280682888242274875844285301641804437116782184288305107244349176393216898767007296107842945455993918413632156377947352929251680427011939699961193350832444936328575852778095833814934482663383911634188825768282908581592579432346451940474424604917811924295422258266575500716298572487697535449236105139324766360173508052064951943277106394549241235218542533516215524739095335571197638700316870778965104945003695103260648282276136422882540138715841457229812466518883668218971621632276853814633059109301008229336415606577963894027787411401709654883125500507065486659471803919205517136785301953336760322326850230277276538262516158799389881618103778601680384484296908084348247647601018088660366229736044150418409515296765275055766207961103156525053557955499969579069822968224726554131383253832140143494762386986720379263662331437266293317570999382350420365197804361163109249906084774799331886546905409532469172294944080852034026777248730469260035774480240316847063223667840646286896531008249288695675836007469017159833253945609440383650076415198655711941999569382977746600606690511045538208898250148213984562828191375106049138046810730175690653841653523524116597403277526349007361857849965741812482777959665765034457211397526770345048854873771753026632584851431422072764988369824877657404343859177593589024163837293362364845655028465175136642181662567293124006294671818419093854378622462219343903857985960638536978565309157118482561119121850843354695926886010028747671251742566197658499072939537442331806743955483141313961742956121151291721431738259010250194902309779398452871876432871011241512493443562117477049667532919963130515280312183502970120234548513416008656032725168678333194964997086978298238324576495716707394170169799801514141931743152014673536405832193883094845503020837093312949821890629013953226348084706987025704534997016058310777101225042249951209972347576598928489040615263332834714854349839476756152242833020339197699076509456919514513008579728609245455715216244460853671468748055456660101278354362041331469076493561324954776568418335246786065033762955086543091970279802505168046299917622635518028209243732511143985019323717185845522733250861570378761674469138624598353878612215437101879266485594639024159658864775782680886310222664011911343800503530511687899986800930953442040791665934398858686021741938039810670949405119692013039785382509307293736609554150201348641295582633854170516742630760761557081971200387395793963393601539633658429996820421178005903156645034735346806682894811557757673821455058350251676504251619967613992275620462682267919352051461472989081348803472750094090605646968698662942538248668435343328464605107656992144283514746516892451108670249495175556032151921708360608264057248893098187228664784620369951504057419173992292096184407856355761096340408790218932010680733036409630623128848031786599396695870242002418894867589358588052567648695703588571896984656831096494242110102522014314582789750013197212677394223951772537431120248391653273618570346890069636588244618541008141364616230087292647102926357012388519534348119554172331843883282886883910015995358165985616387507170934540780874226153460391480163824780915369445003523699255283685270943034345319665053310133533174750025120069377068967353478323204681163831203885524955364904884223048717489903399652699376071693305563641726148173663435103919260262518004490797118397058097430492154056011053636473163977464521758548860080689016289784084299088571350781104062839893646857014117270107415987062147199384313701725887793214419430584333449663668708250984417783834793253450675492081594156130901709022699437280257657691270900999352092809670648642779242786406087102630064857467781235095924743248889936807727632995103907868010987138728986367728834113651634397764132851892510939502313280749623799934500720791226226110821927844956372439191329259202700174321722514434182577889176645640133433688535053429711928024485899633808528352437679101468138817719880672967517893095074824589563839282241804389216749042394311910768931421990612376285288235051437875186441112658111754501371805250157194563359928840447276686975258606006833910441998213020573702669723426517192725841685011344377044945701845982212692323175764646765713628925155875564084078375536333500347029601039712463928716152217486227593710744342310688143475638471563731995487254706799165594579137221842475025656579051153307935599988922382386940135355840285611733488033642943082611205306598911923782664328732208438747864260229308953404976406349166285318613217446993268996002073107788512747665307870225167436450208496857989359121362454989520513802527713943624206370369203363817777504265632064123446994152557498748187091615485603588735421647935509353623928044012219461240138359140965980219805594945100662078653510793604775560379115709699018010915464139689292477339635894287622060580484901546066328548394709715989411830102309051618758810045842383187691718397281573017720182932367723102250941441040141343909529654184761404888687752837891387770671585104804599884695682117449850499326013171807216951606150932597650962738938842580054738932806444754817822636918616306924710398958282049992451816624082414461169303745916566139009442260775194667038735478156912111678058416463219701237471935583282627106654437602716227058855621693715305143488574047835107756811355787279409983762656759771470905350747167144939716367894488149788454907732743298976069060971336170108195158055737030300683979284415780958402126789119668931786996727348961596957213929890398221440007241714190907426382415263412513163967780458317597061141720576239960927953381566450824626440950824599327955660241575437081566588660681994709784299258889017502557039807800823596988970949628019506354705654842311078627420070456936444878053193626097754651661197331043630643533225135987851294919940827342133877162795830902851085120728892458242071798030254159379600312808700799908877714926013083672893952901484563746931359827650953928200865778007522212020501581367427429451285976290726264432624588310593054385297945668727686167680421147123643927539628657356024906195824610822410796457269441392187458960567026469557131341882634597690712741769407249904117948730998075945315256319924292883769874488207025223436024873856766719622159831481098420713032358459538301499290479707705665663084302026566479453146367940346930480985539354502553133825980593864651781723699166048038068758101767659373878395351603782186862921548909983563832606676707007449380387034515144994004713189441498263542986639083978639536933183387084882261333004043352925691304224671274327583091897504491289428336054910157654894842292440072978409833945861848703741766320386804560488901613434806476259855457183840662154498079158680890901638156766883596023778108467206886070319160627019700868463759514476586017284944307639890667627498193100744596716893558467877129689357365874398513206399965187075186603062669843894209918749633708727000017883206060074998528626193274515826570928262688187800647911189712258253160137788255054155178498480564837933604303742128663977698749970026497691849463226162170444847548640719878415231554113955102421438798982140529976227218847910211631832783789982765743125619843702762325900117395523076533805323142905027429261280924093252045824617866102816336355219140803734403322617854222538953571799608021225535651565288221932396125483659451213482959083974406405987027023729015443924341431630603210757041267657718694665599889302871730835998038869158222502339920944674387109568112928871162321335190178197438534107896239286390503289563556665212956837228819925391914566975504899627523629132112024845567794615557855128368497890098310030950868593740598176385318861815604437911264817344480766993227688442572019463374737334254780045925460997008908923973960985393522322519106871490758981391606758842499087656738043868730653421516797929228248993928965020445975865483664986948317869204398160271634190810547566434520419002559624628936628491137816231529633244509451949293687963389435526431266910111434215791673536990367899314832028199555078692497868372699128651560653663992785856240389938852685505557503653837138275901785483015446367491882199521858091225915884710280112508059327215335402998459868831370619707108871381340331992804254470581015723942077861684212800041403951190556047285757868622061389902840949404361502941673951839987729358688926694637710642353960969768772382862806136562055389902242876789927802149136994877981957794436763690071368072109856418984078198206239513087539352169879267741066302531838841832999205374965609165733284901021107268167145763172790021333737352577519686516750970152074807120546542734023583718769930017465253255241953561139839723806920889628310079522544201873398147461999608745981590308962058437917315833855192560148954912126666505998427776765659454356507910503312795845782213819560361795948204777892139068853916258769734637461440040161678712464174705068782423417911656653679205100799118645961788413900909896649825592000760846140329569564476479589143063921906026309923923219672339765281871504052862457284572966062691292472940704332640741810932412570071029433702384369515607609396780606948830515444410602807568383559472366759554832927787226794813095710694482085010626702473888466419887869029911380961523028743395251698604523816212515735650885535497400864505135099858238200671534886655686430106258908117031433954825369614970494891586456950612127857373901007761603474463147931116237422835467166739012716232247930241205915273272773824373798953577516171319679327074281524210496088133175942199515475334013335856969813981740022576412263337822177390624743952552395690721858896746419582396467353465979244949821127989432490513545440321953603086159834492511900305821092310462620324378654676318868708935250273557118938703429426666308466535354585627355574742423694287039329472684506914494197828760135897067267249848212809667207269824775381167437284893726728028269569159492394089406568040381293913190694953646787398834569839044590133407701663538534933977474654048303447151952506895201968987696152758114348706119330090855135367829986600454459745365249099111720529245390142396215582055928852373022759383489475801938478653190296442924187609092323586826513380163625271081412049708822416971565961212323211977456965138003179537463211051978924208323886204743940249027288611381362413977320840324052176594224602826093575669894224205678846882210034397032036940763026246909629809489808264917947347593273269042579271502921764089652386541136886331990457158858992384126992916384260243491262833195639355555880954919027070113090159335719559326639862809609562180954631403090534727759938625536938568565674454754897458103465767804571202060410831507607833934496880757786761284729345975501434266086078777253955377110008410559170168564058058712934097876803952489936306376218823785563077661273016459397296113125101898984002180483768104687394279141996830656083909724195053704279106473214217560930706668184441470163456757991668684268479191626814553499346375623213610871137309912853164136169892661549856044454437572296368895456306688272568679507986331476735274827615350328669093037270140218483748898814946841788257965061603797003891740103962569004479129483830334940756243015372850643287650697678892246493754958870382627120099588913945012875262745543654104096374344435693500240125349390659306413841424926894766843650387545720521547069410346433031054105861166836066640598919401386782296663490895520308229013460634452309938226444398983716905340454352838749989369016133527412632226553838275521879463823813880645374292051423898027474855141239860216764572880995158347350779348054407491971728518324188900404299396287018440826576771630024983487308603547692312404726187340431130892121573374891971663320176253397903400051822241615291657053624846598541343362587874190757189071147586304990003986187581114882614000809431284734446804108098140573985714013308100843167341495047959705668364597379063978283547183757340326186341485637426469123871080575685448115938186721699134661260593787852713428687376876883437980223824012812892820112899852513526899575329222641721093346819551541263161321756829518552078578428997923263757321156957581784274229288861601075369542171343467970046451505650746970849121174100198574914179754220263362388568108587203917981929317614599926392626223865316334346029447424630025249409202536394803595336493606927717079353599336207815738224424202735623636645528363783647781831639928392370050987143151806027431865210362893424345671994892946854158126037389923303843968630471019668785100552673893407873201104776951107886870923137735255410012504813471182546808886090891267656083246465766122739762774617439353336985526653800325598103093543432100123669412267104512064206322983875175159347358942112052079809315969182211802771887023310260353616202399597691145361623941737175660077659383619028783801891784741915111933264821776529446737290093056645384909490336782499598787064630242620972695923849878816255398751307054198425916664115887436719593397760177974316648560799806212160384615158279655666073115725238188884518682548496013933812127756319908618826634301079565558186673290052129119778266711028515114751069421085778864896524275041073813340832126288215548751629693158594765032338568655360058110265399679024302807052054898406759747766281480733727514586402963463886438927382208817408771989584746873934424854014108604151140490264899894594681583868085132097899926225707420443767604167287839506811270849457521024151911570687603230340918299546016372252024130400328461773826225390902824406077680215147690171440075157793377830688538445566199059333298440754472172371484946031910000181463094565277967884727981073483271573518040122314970621173041908948318686722363852727851067690960545454462445489047456318692544776014694149209899700644157050724679494485363879926347009814233698786602292806907421547857859720025588062750508788774939744260045549812846340527365622948091754202706293631288678364294314055413198220539373986414929491820488004911730079240305064636881973783100184162852862502003161652310042344768112869889239078192811311083468285042936364162759657046351093471879064894553234040784194033759458143535289820666292965389587290270488504739949424334339861885734404691487103761572958039648150057477073908773045089304056740511785603827886506527928711722430505657567176635135412492025873327061849324315065622305101261033256314568321775628562384107230452616826494453440232908013952793281037677654052898714176401252080519262456151447955879696197166199686342110540443828567278481972479513377512487453291357097897954445667716488830071291545551363525885802950072207570525518114342280376243736188923202255495680178735397490081180045686632380964429887808945742512097203909893771951789354088602117093341771664754107522382932985795228920644845190551732054020871773123443388143615558505044429825350282837745098769739334370776686347041598647898227536553482417278026563370527519057227411549164133969686336976122346557310552712221030950485906471340857367491834854032183314337911336145183440221551644417743398636398993823468112838434526102193263733937012519558677979495555415148329251433682586221813738174785769163327919484329488266659457913760424386669426368204136898400590317002177495338443491400038282314301111813271164817923306225146798913931811244929974547366592200577412841808811233484214432250939588208222283817618760709959473327719984013281255264448239960986759147918100977589069673010122221503555308153563605999406620133322652996449981420788815652160117560504854246538306962154042542334880497663758650754862376146308722506427425994890378875169393892948661756853749071432844184024036957194895833685103348047281104612374522456493925334282319887905083151676225361500293982602940981012857990355579636998813928450646409493610670417681844054949251898781314687502627957800736251544277582547044602000984931635434920246377918862664021633257088088679724622810588723668617034745630955046427456883457988180546943051493029061957322538426740749249633252633617984832997217160352304540486059423801786964110306790284993471611856772899476562948262042733533706584875823702345012465910355020795239144305015179405992573893385682090507087684201730185781145557876521769183684479048396875919644779441271191790057947367652106303133415565355160124177947117522439795533645023809249504036310974749330240891331077532331450221295103134336626153945169095842858004636471942599877410420408531945242883956435604094195569175387307372135232555080481297319818183338782563419351718865701993782318430380373419369127461422025693724420655818306215875431219325802560228524301058332803269034009224678992986293149926054573694231837401018059752706222236063171105028675817980799445580829118747659339835741797180968694627026676197716049502097225846707592070683421409992122099398911666292309379747302632735139797327932884386446866196165977317465533767932348003202167685722853394565336680573228714709068353182255268513821688610599808934156530454973093357218393555817291176929209352508130787304999202084975125604747864701844378344859840847559103935859041008642271048460214421783713676466455740361321926186736001808951589281352412049030381619705528916541720449086757560919191750497635239315542672486048247019626380103079433348405351072090169373808333166474208140381949081179258774897932467741907114950808478689295913399110121574684972669454270988998586663264969717276029500349868573596574543456813181237438625572275792658686122219515514589539443929930915180053453649239942436056649447620753101287565297430065321089033771108666255267584936022963859462810997479268974753834427212681088171832666436016380486702668303202444725893218359397150804548480825898376056081103030314110354752594089460126472755862023095317002967571021691676081246167303444673821922620796277129800374699657033218525914021038571701213482585967453463674964413899177337677087469641885295088703515263268598580803032629164996176675128115520927022864258484567399697745360650925868637945894336520828776709668271813133601929424880615947412748310563041163522441672992675615154066925207048301279523920656626309265559965854214053324302706732449826126608106923034834785852011503521904529037248910480007169073421339263415089889070039318891618419102542719360767435814130345487491537554267208581704357576920766560929252455766099678589539440072422789116302583461913738097114146049411812432836109694864567451754769645730076876673352282194799291257804249637907662263912093889442895733756647465410996177576604735932002365813886156042006908421462260857601988012914778226778729431274656284366007958388882239354540626326109467267608048773574689141332592181743189121863117779062708589949906430552176056788858670858416283205001773310763363786440124057555050725942374568854433205293278555372878652839395051073584986385502280398939851801897823924547950900456098511177484206024160343097965696167110171004466974775379139395117782680103251294869482243744666437513407405115708077989326415285533580088180094973036289772232801665517733231304804928247907667492093902299252474150787288552250750530607614768992367309773602164685585589643620189526429987022409135472266641106936231191883227897176416391040722577593502376189011773055417901914844549374972336628648551795227293079977319941659497864626079923640597170350353732915230667191962697732930709006023470224275076889082099600616105613598832877207478023087597524118723146980243434663871737206080089053247798046310513127379100092077113080081178138632037275210450075879130833098212050162392142574230866944283599790856100020444861129900838822050170103384522035141633861298298004404710335446769274772737808001162095811924880803709123367918817485391552866043987659977908548336923770840698549206779341116402778289801687303685591081604580999203560787836132968490746884792266024318403801800323439696920352529238772569869891623477336184247185497076472448129345466612252888266714173769707074689913444648889735072132100019047028369141313428604370684209289349825280087265779036181623020264074169477159206441176807658427668179349656455629121603339588336729302760876995709963548237700361334083112846234181181469669997875804105448147418758415133888695676640334376368883028262372547434288618402115187729638973488655100202274885260310055886366227803086957636564272753672556681130488353338768495034000644061062362733222097819259973135279854544783206955445505933968146907957387376285482405635687072193112908528330556990376294205571912759746678467932043315505273881661137112477829291114935654373182062174681639184179694189065009024802201893504545739980528861181510759152366196244577047596886405951958183701971759834616596215308797405188712856094578943536935046355619504867013803281206322856171618068243316391350265803638529428311276690560724812880020247527830390345944012791610045853247208358686840597812582649939558636207316577979095603117290025594276320141158712853855650031891419862250256352754934015775827140887042627601237654083268016426877847054696155799035308699452878812793367053845620466800375178810102674175505488298632519152849609063702911330745451679860930810743449018866243747820662898841260855949789689042452821272230209900032240799198386699504382544773525433495678839422701515064502650482939792118637923663736079293014986380617233951405019044193234501474123769708723940659480330357301281432028643773922953220538179993770219715170217275622110442563808579375432258547347863054268251608360767185976107533910190070764392826332824654897634952034594286743399149566353204659258849059920025010846936130621068793036052824349839505860757917926734049999394653007243969465057645012214399117059507082678582675970516071554521720978421774916788805418021875073366408716481905843522632393866914046066092223748630943178149574965726974732105796467788235522957983321085310866761236623807657721563149228748814524166232497704355303521258117679282506085001301831131006350491654711899129215100740717608699503404873164729444597860503145616051097610111306032161205801547344711646458124865618773024517289765298393622251539698777343262325751289487267413031425875642338151529473549180902821198083012426056336022495176307861803812331393236621299613100197692672182619388892328194067505813362370145167765742347237452349693365330160848375895746323148738429367983577518140625744475044431887922635133146579626062604784656744772863461697403438468690754607645237547693005382052552891373681023448933455797079336142338664799149099928815128897870654036950950306327778277824853860043905800248449084968732775632009178923752664024505102528845728749797861239259002466922491914152070440998817072093982277456556278617527065569159961971848936934711216661560569529418775051703254289229562456348181319435748909802149593581489326898749587143863493300007270467753980311213958192789254089114921200109808066234612996277102829997845869610307722302534882279762953672911967418511648932580793727702848867642917563431567407672547629081155235689355110730235524848638095357571565645879735452942946526661311214170819297870845210440291880708499012582491990854357390206966078693812323310772136053043795349140428615560600155983215674745884606087384832218546644053361333526997408527740532473192034075863844781148170455589419624123959267800745967376465772336696419540366689344268540274753019820111546145254792692524244511390121514306089496415286643176360935700840386551232040150197972053987091547147541444103154014573988165027913311019526991036443534245200428692766895885091852136451224556133458671720775116369819303690168419592706425191307330488521078153154613401935594832260408005972981096194619381305092627646440588399970346203898810986686871006306785602955811624355332659919415696765868043679466454056041857516934528197244578212859051484618587852551310457300329506412314940283499874092385151813436018080614408395071745869560098351702606662146116321256392568439288414124136703901586129467620552787690168544282246419047462953649595387920103991763570966912966289622798125386398746781402725529047562876142816336219320349197209956951474010080439530165024550215745177091078558639691306170471675675635937353844183080687952544568169662583146065113370604964757383768488032340815640222785970910291722841472374508109327206595495421581268560897525129374075006766058159069132462284822824113500667648563836325064918498490007835741210729695609606785865741521236265769277384671229692671143910793304577205220922236034813767570736349823648056426509649485114129348816656644761598132125043251878037907449821664164419301110650979188344510199068284031984882984527733921403065240325818731677474460850239940490791213046028611546858663486371556817240328905322647473028331225062936029404098145775748581482552413062333353353048933523248902516443363318203102865921606699478005038677656315694694378717400539505086982544304362694458535108431806152282617774238114674721622650622474576313017155322950576604108519521084351222620573436731721912229027426221659809752864017197589982146236749754095883689637317272400496299439953066773479105385065973071441913712983392424788094916832847378111767383296163924702925730792986257572745145172857106248191894645110513840421659342798982425514909346852304477248765420123161383727644880399720292771104400884260160044905332812032212968607150608108654959146349444792257944718815159177295544694610985405426080900592427574890739215213475052203030632055032214097588141118032244896143058789054071891517993308729969898167725256689673003669350041570738919930534803931889160759577586861611860198786322312180955062523606764257360093542955031543038769806016568581873250958217019232445590396693766503979892927617902590125837254560560761849546976932335708792283706924266627088402477371175982929442098044981046605947238300294723727401314717255662407325145853905691077203021407440481130534662095813070764474250741051318022223205927957282175646807837823965634992457581171303960722817163274266306982016521645072767144907492833411405396176562071625028398596296082202491834798482828624138120046970424892438420154026834884296838048351421095888079325454828749202529192936447414656673154863171455380136530323713972398275414672971682031655282284548340908506398978421133927886966935055329212995569994833991450437612932987192101751243712623754745722182181377016203944382461675019568461436968068289425639699264666744446343599007512377393194629416525590074123282298222112002139216667638143120907772114824764735601698480167788321491811153091271816191917019802665011104614415188325377739506778289645256266357972539854922485390896777819729684765989832187756190864619731997338270478314558980339961346442192803669340390912261399452616296659699894752928613114376295411649010422544187610715589577666103596387278196830359681373813039354554399697871387820715292250055028597229836675313091590746544700108810596770665731795650732668636851568246732009924155563850272021976703457702090176467766525854728810105488342697494138762409499379607615821374133557175735801579015469866918344637340555986462043331580618694317679788660627235688799197081253773806553367156774766295258625698953097828050086411699271572343414606074082041837307332201180839582964986620428688097807135183598570735453309005555940128899346607949327801493551276097591119501536081543294499000539032480654528035340495856022857444184275561555912840598393496502632166562055450172880433958060168318066906662074120805745819450061772875598917635565791505453758196108281994662320035966321963955828762569010005110760376633593426142260193812308926413990338027058649012469692880880145187894373068264682072669465388112666899307431510165824153770765671375274808130379680872743231673181547610307483308571928582483344483790277023590134192234053813123860689487514930434399565941625477237808031212113684329660183862887505017726085759423852190668781074214862061289880787151400950281804625654462277635156533664710024668200526534746277140889638477751787670862961121806535719513300512619055531242401705132551885537736272881673168386075679745818407448564771094168488147092929726004503241475307693598190106790500153339267485167820668860314665853551197413566002362587926575067001985803080557102362252180745266335764830711446086769144418059602790548069077247448130394538512775993424160582418192834495020817418485215254083972109805890050483984529236675215543071531142835267019400540903704115381436476525169702448700076516756269891246271637912765944949298207387274024609895259858826575062770881933548285497909509206558609595811434628456016900745244980067468005768866801388339068162690695033513647865506320216434056583814592492983951574750675000247170679320276860626963682871867110813010466454713093917808552954970637327819187175630410267253868584449314454384192229098953171985752510060336061482267056378766748958447909922381679929808237300289351802611115042530464714973372987812402735677342869099372480387930279401083457293294580852967957983730913381984456461664471755221421012137173422267620021156665445743370006825592485804845111291410898579282839293221806665179764314679095065109361364577860785290347294249692546967422631056746441882910668131960954320018526955411354950844852650339086407051690824951770256671594606848336424907512453066432577415148400448036092773262270049656716708286253296252113166316427751446927968433313470095139695480659625467695484296648066783148572503874207864437223366089332516815330671042517029458191767799744328204796998773394517802181143810700256312457592023123950720794140109883851238672658811541797191062872373842554340929481760234744923805836175459499758173534249286095701124598491876567246791359448366795845688856208832271055359554038983829300053750661738528938857211786752200168315304920859380570191779529012270831457073924600463415869366067251760345485642813590495012674091259187496230168928728794818943555794350811834723232808931627895174328457083852509250872567230659318922433433316610963656165823924726258781394982368086715268233172112051872584757904728845624546538758913735662484764494800878326098634786310571427306871410736991627119692936875947907668496188247571685715948616057070841826870575546583954937706357150912242057227150992649380318581308368295963777477394396834526846570193657549650361710132265437402601869889787086257636525107619605883754827941387474617059725465184673098705976829050082950860720157856211318210731103641632185743060578547696966548420386739603294726262093664655497455640657909648611175504422639976082399709343119517295488734004262229784173381578959129994614961767616783153188183795466650648001153903565076216329977170918019882907630386157385833196604657875598760303740089025701973750628808358850615177900429735996152003544778245157393178799898989866470963051804600809007407216845848300086366492045464580635076425589214126810009493510444843082878423510377346165094972042819459938841462692900192377455966004933232137844683597128758858706272594732390129211845349749133515476283904481621704574845811539118451725419816251417417213676061813508431914267030401012285154742251108358438816194201605141131479418894412398460501984605753873181925551856424933069216135293350087718177573527180396259258320989434184199925708254694617879121781256669244735943780439617059135010948710661220579546401788210809175993455175343390243210066260764042393720950124938672054443342861476265230183365610259154357916452660507078837693578207560856348921524544559482421330192086939364602561252934791910688686136864005943668770236536577039787457351231372189250671723873539725468718481474362558483417057961941465552634503571485807782300381886875293455443799620791741685619407625143755367383462951497444206972326160517685264012295277704033794982685133056221333005040159553082865065719231964257977162779264629684627192132849578564616859779487244690768576879482396349345230605282983589892152457006362639764111849956411586745170174935151222557158360643317241449028169216849240692240828546237383047037073918251779589594849624471670341155178468874079132542493385796229552722548880536273118174445083650513183146074391898105622198776202436260733075589716781563550797146462818897576670049038903444071925394363223881443470371201875164350955377206713046771106668628874253209714073859281827834156797169618783910826334054930575283945810214245553728355743642533354060048030068489412702738897417392456728966826798696145696946875389639165714315318433484588413500416673558894046768489521763592223057019328643559908777163169362161324654289686595306609780193010052890214582485484736653238890914796634021561280180485407817976374191813960353386704199697282003532794811351384189240644933893199777464153915791636821286305986442910083944771576416073836782868682512175619467600019289748024846770631746525199801473992135532119357630938685481468431923718282229491326387509355502854218145343349922830985801956924581667069014839932005194314451184624884015737370092892177071950333299541913248388030652671715267425963302647089327407528639612106265947319324575761618659190701077928526147862071705459793625360502691785255203804490395799881323885969541256857527908472334674713927492789589993442667489491476870733038021906133490772489249939198464771213368586878012954514169717486613788806419424827077817335100530933478215453653010849165235506753651592175104339550658979463472245458247586575868499261238483052420023341135508025099460448838645853503469533610961878573580105185006438034244286990363838017733359086162591684347926382628369266395980989492631741620940608222166261375645296388327326619858259137692787793768227969848203552429273497907267044641905850076413556118761372214083955874729465481755250307994655187032145557680426822021466645524289917512372268677121200549819423810301007191348800895743619464111427734685004884128653699503632730545208714556308758634121895260443395367523811172578220828705932210049981073924931077268101947978271080863837277945307851425787835105501293178622061295586389546855425321474002641633683796856287553066609882639462498768676263248596441278316455994853299885886880446703901962922526976480595567308479584499481020039289417221126034099248653377164660419458054074614898234512647054365249284785758223644857928699048084866576542147927523548905648368429863564687140023943839872260403485011930026551995677422704043022123538944868888822019886808985067740788590641889737453639440719867620137583035671741889050187614954350764170096703320288731753626574321574000590052006004787998542132881214227685201628718258216782723370984096367465168227313546691831730547788430892851519707787870163036175620361646757887646616159222111290491460427246324151557062444245275727248830404362064216757072305986383061876393987159633014811106281104640372173151888483998567129568639019642264720214233248065856099294878365934613372603435656307399772598789147148320830765816652501413660983869542585582443392027873697957455328146032196891469137702479179563963673639134451963704492088403639117820468193232572028964403859694534218624097600825272270420949761173873736349287719359965028933321959113102504771551615066986032350944010283778877911176826186743226198851018949353881215625487675253156890664881166579756358617660585052878427191828569411324379201118335750652044810945671289316482571994587511446380644639023663317849371348611168971740785335152368330362949775281001312568830092560380649839194272275130657557113552569810047832538911986876028928574629793830190834450539898020324484806334825828002428347117952475049224508679442555537694849034207781373371114318985276256511657609599924809132467053624337122550210075001375925590661993595982436667732414198682529228808155479528709957642662200366311370548992667944529457173914796336221843370929266714503803649088004485729967627131303582771929712450090258781224585775151844922453789427599234399138282889480428661035828454761355115948675101194034544588506574345292046910402897764178905854127380383372729569304198384179606070875908784405688684306306979458916228970992141527627426829599568658086703338831964635250733479202689719443175927019221418957732800425613190471919725787903259999146378407575738157053402509880569102299142634812887464485809354699358456319423207357415919508686709276960427961401257390485307657412966968149928141689087189913993024383024431822754460565320415967435924833642515052475886687347051249257331747249194164889738347787508217367375616935781931270077981082406374839565060795265195427448035726489291411602892652201011591535699695125133819072444657465405662120580326149535466126037705042383577923983509020893822437056768192222029091466374685729881834125178264152939187803412322304400446072816860945317677842579628624619994477824049145029028531248571422565462537377113915191059156980335973417559528453849580412079852101104101517165483947876687071651432624764271298811161664956340190302863257468954801417380474674406130957079023939345266330670369348171681138810285782049264868105292288140686660948248879140127175311538764666450304281243054060322914263442272960903177435958721418232801304748819668760648226865863629799941116635038489331911093995910076411075842641439325079469626306609949052270608808282699725181111798235358852540347417984502910511833246393348654548173044353873789868253304410961559837171560775134761466667421031514366777817877256898046070897217359664578230632797243421924305243598338146618958158990529510159223244415937813147618454544176256888167563678936786017361511809479689645751055030335495463304033488955864022208890345917571325227187617881568820985881060359460164528801391127055547350500268599240986967684689626194636324718511819511243821420656410400959729185190058457619938408644456882712513773810790244158228301189903150449927163698814893290023840127647084170081681945567817533010655478905880809556290300650692186121610412817233129303259940863582005938046226109806408857664782037892786272187272330075920329259980758091099390118242120462910395416838723868584656195792028678560121464135143379013946865667816056984995851088744420956756082426800008304334330624080622860875659182742743609640263056943350978158328026940337356286752167289198591752705552055246193150754309776898675192093066634275916464882133326148921275803739499701306922882155863991064774452600502142543773107623707539508275803340125889967160708108048842911497864401352092164341624671594541815527283248294968606920087196494735543645591654130868683373671264771034952143369257924953568529415956105736072154212005675259707533136131316506937930941268014035951235504867351726616126385116224319216627961817925763568331166555151948026237340086304264267970576061492703703460889289280372794716974113758675236523772716664675752400672867765114482719709848552255328457777688306758637194884679745799798446844455533824462510944489021905051417870096309126120429571471561631047647233655921522586769705448516911625392810450538612781717947319889052273911613889766601780797572137814876753551754040883205348526431502112672665151733773178616259288087549046104322456303622033145591378927834048316541149887945852843304088928814324056098399431748215792045135925695866540676231368648830086913260895214607147743255268664529149675857435110563062223579942621585901365783468669622070003026750992480300998169776206110918013107522937821765115368180138591963884435637084828343311310551713043688393118426270893271339677256446649924798317025995989822964975736371259490623793474039208268300656539763338648316578367942678428179253361522977357454473814387528658287303217217491184170100899171458339253111869219215517500773036074074790627811825942086492457652525492230817031842371712243961436378150657617409252483449371544721027669918018853680482099603062658632116505259043534080510763171617052744696147012720827910430373216558051528309017421165774893539174877134235678922002544812089232633548553841243401709237030290237894202197657997392132866217606691422801504088218516421836415273544946227921554658736371945321981281505146460526360449458781656353046696573778133070022131900770338445707588049232286487835594906134331161384022250293017854118029116783551341071740920312650838402902005982175444834343230746277068332370728008690124488639169779764698482372877998706592591598589900886445291166024710403856171412786224893120299987813765312377781183233930505953920057903222039929032459801510767074801367512917868710005455536669627798910595861637678826945162417084233025563928998350691115720281283755825127494045697283252954102799683504327577404302058216669406228918019158113466698549972697048175391210780791157760799880924618255497447118961141764818281757014113391602063092917688778437665909518852728296374342301768445605418044339148859008735822515151513482756044610613361092462319572415501760655427464693174348065738212643710899073200852696573981335913460832849565329721550750396477238201008961814244192571074570519636827770771254693855501834943706695657260806939959546569596406504074313887929981858280743838487128390356527208368521760549019567598041251427931415295928183004071696833191467026564939684846128572869420230464741226704134183127619199903160405044520948635742307826663545273490174973116140113300415342313694716302345744884234214655300979437858734909420073522624556624775585809940119870323067820541241711297260372888833706765501737811780916225747214312407061856676151006028337042172084741756926767400573032957534207148637108694252561187212690659068404048724174017143013050428072649887038263087505129768046332814443355269189489955782763362422187109275788942541666997162507691828820047222617907708070843584752428022973198006298583562573718651365391195646267632042790863601139071992448553555852746917920852924246315742227281402928595155771145529363599750008962820092234465828434159488668156933837285194169789732328873914519525591831358857711364296254002384905417966962942978662601064716016512423257187861779290704220817480146485845645905649798916235869415153439965833017947409033049543567801005803622062906298806423226303630551420771836483562271475977248164397161952351409487193371270332835620610376218832355908439076767163634159050593068386069999928570536832954226107431328961715476728239433302675720763548721388118472997430376442212258276209908962556465610393712263272091022068630729015053694009241835626893809137564831502744277178822751210279524232184975139295894874612443163696139829676600068777507299189941286265441177817874117794792981172766774415884198846812124318680140728899634606648544606848258298815860844534973660508184421666588521800541157894638342995981836682077113498696441705905997557321243669453850690569038258977891315341397800605427373692609231566403683744286786616615330766856079737009961428849372453303828390693748699571620750240684114442955755528105340155583135196853185832125368177469402844087109198860507715127844855264422737503048237528635298803928357409956288898846804116519762806453741172545050975773824506744670045403922799301027816372787094456377261025940154539299947316000430664242251086181931081909541782634710900926821205018063030766021383789222933975452239708280885759257732546602881045618620026730340846996614438360609855456088091634260652987982605042158022818545654131515034353905908225444532436049181993484601771615774904901384624612795472552575159984892209352777468169657741666890514353941734816968540940092473483022131185249362704383964410134338427473813581781730735355440794510367655220575186134187616423175450934107903381312644174597866944461796488042382234457017840442232579069399626166506366352410225570823373697453295048464025855315187873264208419447840985447765384800093224900076891873080230997069905899749764949413126140026381096889497566983165711240983410835669172854749716664054797590241849230945680370766654698569432833031565844661008245869619736116200782312518055897123605155710783843380114316423653333107262997150691273890314440990208750370827538936246479375387609322072186672295655099217342383165697881329064705002530811275949659646099554852889435313869115683150211944232414630031275622071831846191899432985194614642728541392156463622706178594762371177680136694661060564442468715724601005392271377836886429610900766831275779999205695941843832944677983231128980609310752560830977591969440311572069501447086757458539080607227820629404145797376271749232338632480246947464370366292650982929470953113009479689876678386742669974532429844607652950584018336064261689246511199892331818287572455326515530867909575494748061407081855796783582288351050692182606646722657643393175992298763557372906101441358898120058429561453307876997774302491986364717967973782841845969065809057501282415228772644864367266210704411664612200913238536807969448780674448782732425701082118844413112986136670078606847310707516583945916757684528374401451484010548860121611609787709189019317585570022159221025259913503157719240682869237363624145387354246856897150823516623222028498530119293069546270952188227064836662095902811064196394651161394987479675290347348520848894414526647089119021824982118806338467862397860761229134535271268016237483961780380334946101874495955055062263191767829878757688845325392338662136864648580384437159663945469811767928262302482490905662054028463834175057430614336147434525967189790119681315005464384303260711649997689468699049209374163721540794508163329282857601203699002022192381569907810217596545111538649598487725832955910373381064384392953245844459604144256933538969020742558904636601456495002794497479628736691410109547251187501706163519566282963338640667104435152507736825481976197857835286517209158808478681393452966703824575510062365571203309133091083416555034978640143584531191254629978455751957573802023992715483856307600607968224833067632985511724785206592512774513241056739533264658607025497511686899000831541090836823039041188326151026745701194921276001997426477455181166800671601142823387461906114711146180502090247548858454938744630292481594949153677412744980445131698942606714086150889592188334600968986389203781121317367488956394937637456287594848818213831812764708176777991168428509423769412102213535862448825523288545111517583985479277626080383585530065607263110410963750350762532717808924140191776164218789259360113793437357897274359702818010459141474129061104922604512718119498583139557575050310247263879333599624755857566654976356922753769319259110723113120951745886816516691412419304816018908165689824139172699076248164261347880898193652347065244890107190918030333651619881147147880640470939286378793267020087147703463045524717526396329569336287262427820866834239264191825759868001918484872963160985867352666078673547900288892062166992517120914544139664809005005002486093289822559206164812741058530531091434797460430642100590430385817943658254828893613472307078702919389078454494956690015802189353671515836507708159500244615924959433218331517053586013534001597852761194742312707784354796209711706285288600092273367463173468119544749036511788241976737593417325770479377607244577082743684337846946883000679509817676416569745628566066931031762529379437238693934145333140655021380594539461808511607687189206384120840188652201823930489606407431558101885988115598463424830452078964056426509947780111382849503807528875578786055892633303661289393516150203142125006006727810253429313290216219467669737964164969034752921062477134244085775194186201243868651882033681301146400492788912969650705644282616901915969490212666966436580503688289415418979826031998669472628531060724320230580879957636457706002332515468293457559250370726152239496436123722787034335927793825614981385513358314957391528293655390641984984581777607130855241012791791301288198603133757601772158238122927869720338633954982870297278622344320797647318872370011335419717409498113744508317551037005124961304784670425086640260309229886650192434549354027568701778576739885774658911466315724523028088573758165030792616041364596377057102005921774436789870496896766824340141294408956073618660309816333568541491229609901605349684238149672204549581438639094432604050107461186682298092997664610263560937675536100079328541042193567930549925104597760966668211460240175731515081954836129873229542828318090173604151232027259074017455887956150967130227696353542710774490592962816300420854776307953888628198974203432676414793127588501702236597841635271777709283400256212667006393273249259736084173570660769109365470072350091568073594042861791348060469589466147384009145732178897360768549193132488427149333434706573974750534763694449267106530672863395092612359332301913100385554371911703334956000109687219585109864706989507819894140078044192810409940834016993154106645426462203239701266002154901013008532194910462126306946820576046912052459511697540404490552135804547657209732518911348001743890339800822083973516655687480849001786340908946792236474083477224144541704314395969063404759841084344535988488526982760708993460246014632592395819243438388240083119091736144975925593838615029419343471722356634700293125714861048479161130280798441676071459787491632030046087366310476347419343345463615877153659637743085098414116120287383658261389371782336824371869017632804507921779081715466914582039468951840286961787426387561763089985715727022957903569893896935318704504201488088631003740827561139151253601884166354791961544469987077322577659156421337240591064009834833801356633560845259288456358861386215131807318770844217447800098815487861325435576101250598396212864863152351718417117593367728754107750005086989611646710492588449312806396156473170330796966321169098945826101144497284956612967249361987505303887579517005883834513216101261833232239065572104664333131656449512195895095313777084255979428512689028041701408217980072175997592685003516988818192767721790718137120728464081480760885411867982579691653728143267998579384496510142939840242180847338483440277007660591039252130263088313251842439654570094205528598419179092088340790872098076107750788070024746417018487698129140453550948013693418493821259340535512978208003771564604851346005097194926110046785460319404471505880401306451838075472740430588132541757879555478348567669027654569447316147662394113755355375244802977246432633323594593692851510701880802100269833488003957864978232685602620276430179134836408464319611370242576077784822445067228633670720145851933355450598673273932732615978254952634261119704885056009739173585477752523529486297595032878271145657919636309066403026934320101772839864379200710088976553578263242212303758298089833244612660229087298461880784879705784445510187990882708969548120299934881888669738003524200160962882877614666196470606633622281680549916444328137582635837046264127235794618485667269851320686291478654657974177129284129772294321404166686181463254010386200142055500617699262185881339034576217031254630460254393959757373099158303273402702894480803624244930134779292212089698610936440828468904499125297320216949378971100757226596048728355549624943688361341369847097715920860787006203118869681019898984221326468203001863249535045364916443255388229225674208632864304321227030973613242781064420402711818126119744708408767450177407296308201004943348938141510636474442342246376995801890353539845388453263074655529663068393428936919184728295697717312661591010343807532044698425153980533934442863871212935583209546526327432187272203340296169683336509485961350058626364279738262490655727621348943773432993962892965227571436719338687131894469687505377595541509993134467088729058060682686449228885032921950888744121196595360691025246012433696247280369504333330866255982425635309603408208549051758453970421444934945551827081020804828154602334389446315016718898806416593733236832462308643125847796420517163264629147743955405402569054284037582052970708343787901293158851738540633584585686540057629391275738943226579873412938695671041454047122320173479988826131292455695969547490594900677873673022917166781313280869076000550205707482904233344360518707089624937577580376059996571260795766873771590305847574206668677843556359321885356764696563784058866921972487025817934127627587396235997700992210591129122406365479572156759797060447086960752920269487116879662741911981600877342504116170864042003681188357585437169468180593149577924937429363241375604688019075867498515336593577401225463999939582047142582549363303576514389870210341566107881620089896990321791518797152710025291326569723019769242763007831514253187224630817132427547851502660332760046466266881197807111248828654315927395527986862084245560406141279287373285026468043798168261497108780308846373380367641589851567485953797938030461440281762278364111514738525541709212731416164126092756352296834627395281157029772013528215563236401815506157947027358222725729559748822157386374956406949281902969529542708241871931572081708501180512994247998316470299517730714445836490247674261845864864948732667839282790650993018106439635719693503042618072956815739363300611110053245938880100906648269225526383069774761710323789408861100445776546525534239469734424615667385831087798400562588859849795929681733922590507679537891208747159469331609713777670969455782186062620586297421173077339581083854093787981992605754144297968109900627149480771271947766142687669589930684574737257916048383033384307873015674145202811278565940542556710387226596285386252336076747681866422931018097291219800434873469340118484319813925727145194603714679178325412511912483946392992437359123764707142392118519352641732251197961107826687693341884619925276211417281332579074921494310200800618975932906253746634752587261154144608266208414199972780637250858544380483352344432926095518213989753074123952476456186649704383279992302478165487641115821626702572320584457034671016787904357864268580756027581220260445078747724454994052487585325392176089546985545954249167086846234771519848423421926934159462166033011990787878347818175011540257845847327449194760122851133099769991872318478668446988683944412524532333593569899668108620154583362173803951259464733627195706426519873227158449341241981818826244247894615637709447366131304354007495698548328622910658752798789048977144947507017119321140213857388608704301930978824336200554073215697282245641798067547206757521477052149166384174587499633803874712297262709675735879016867439017897846851639855586659352730804826496914359719475723593345704314449031345183149778297802303691019568055944484730806024438812700262013679245091125896785993646783532880434756522838976738967260157838482473485184015823139817472469551270758061321313136223691266597549307242201352043346097538011899353317784834408676461049881202289972809695563169891019613557038232093751926371592290851874262005867672458032414017867728410457864908383450763390544435474479304238676289282946769373135727657658572217681926849949672729334606433041057834414238013702726307059699988830652581006937394909215479553054593963053068563419444136117464810223308683761250417844951224673428948065260307125226607550300163797590951774935818986944805743613262759588301911643508935237172737819097115185379664671283673122614405053982563362009762622732925894497364166675001241756897298956096741937190256681823028139966299039796940355854965104406396712487309638762759781970216511454641462954739571654312869474339584638001759645730566532578354598977654631116859760142523548064974287741666741594490020986237413796112885241384423072404872195051720213992808425288649382095068550467846743327934576186140342267555803917919487331446519581584396375187758674085455047181614620976929597486249712538588905813065031275034467188314960814554258801764423567703577605856516610758289061373125265812783539000713248233398922440368668709107552310788465179788700852987321946627995919114094524798599704902446154920169041289073844543333384413934774458985040756527275702287260832408291320797453806524059196731420255274182785312804991469911465634337614633950300660526816363570439962181005867143865210278894077061364395953123243544253810538006838906143846524268895542311286498933259269821391453984332942388246542341147374906332021660523024676916841796088363931337898719692650019672135707690913915276171372943511151133528228311466864104468203490117646153443183579977027720145163903868885333087313765938437748251263509285236755069603680137284803249586402588883787585579684971136029230659035854651953789243711975462361540040637670725005486419138623099635306646554285906881948258795804842616753240049273650878732650439039890763428941669993400472418330262445309235779886461530979067158039689573263932495187922890013161206322131183269600004425064457281110131607855340332457956415808952853836191826034848366554784932000306917051415033645329137491384029630194081280706029099162391631718282417885953226309083542731169994039615112457390803965952854494888174831270656303582547120956591302685727752083160863780766047982578515435330021956031289581238037674285383798656041708978459262797422847388178971750972519942851187696731963846873163018027153594534552812425848850039472596228773065120157845958030563018818591303766971231348463417052486784730919179663396282725697374162606909183318876406942282502295519626328895341611780020737257612549004948924977158968287104787045253669870532043288153831055840818167768538212859232378966683411245792237898961112932039978368513036226784153286601861650570185666941784649602289919903156613916094675393684207191160363203995868620726808812358143788259362886285454833439946244816472237853950241947690827767427136533585055927843471943668378682384021334891889087564058770239470376257667823736677542625308917328048295502312924412357038486143655817155990315595359030408684094489730669151510378869217342324803240410351441577168288087229796681482102731601658678036684371186577931262430686992750862851561571757810127225575126801691499641586767588890100105182719852483434794066216644781211928227764977549515022687110519283183682152278652442099921113667704108365873198035048403747611247712466118606474187590194972009125764902197906710122796125293930889306619122541663868818529129767423104584464364971135862421474341761437068300098624890164249205922403657643594735365913559896354672834182166836668825931832339494137873492729829825344440859164071585713504114089759856979410852461638472364899291380671303892605927227689652324013219194416812036446316425167163302035511462774151544301444126454296854363812757776463600348059248110209115169359038778515667987285845837816197899620299606504775441581088467994553172355756200922891852231102798129950003969178274400413435577635134572495967670089774942506988242821680607706129213786972412090986969628407445246376733032377592795029987085877273045773997799189438742773567337552447605070808070077120477333726677078344132789125200417037767301705713534789809080776379362479078452785679329683870433705391054349601258489063222382953161762211298935119778987899895085953318498960755420731953617662338549861767818007929709580221170744571714290549182395154347847082882671168572218542863013713042550074021675464674654541074073796596235431883778339147957912952790145895280262552247980634967940572187358058990849570514149363062667014430679252632286457913656578487777815764901744822167029874047943314693157741599644830981131170117135349056180457590667785444810474782176109782264748562965876312290845082518220542655041151908274530422899253870036936019278588145665439530594126184635003763300619670989036198551415061390522808429682517797776738286925704058567650878690312627858939439400156050458841760937430566596780241787423603994172601459993781383029100881716124599706235162217499092097019996815389005340525449905064351145891207310234774567102306829297589749478985454826723482735456509940776734497810728065033974972165586079859923919556268349532028147269331419736248241320748737760535192503944241170933948470066358697660229730130483750659532285697296123071452316450226372573475027239769414123064936795253236991545192537931536340476889970863740316542098595903936412677773582255789277673778639348024616700187398360053130792302299874996250548531192327171488419550593653678803447132144078498448134390066898880100250571183123379967280899544347797437741261380253263543312727760375843994467232097668540523755008617593633531065217566102435490740655075878951828513060436685053232456667330195196261038046027832788413749115779933821559709343456053442520916549854396666529116895421071651953397647694111987436290526632692737158904876332161432023262269643340455429897311679322078557483646679881929478063800137272018138823870408468595950508229727062176493110306646127899675681473362459202758670665152227429434359605042684579553354078035212228154139195889576846115377222696049033138561376116829700790875263959018458729628702716117746550764997631801588862296404968629258188179352031484112148129840221544648272801080026222509403466471704119680978279248121073343673538525293061840938872193448167800703281498572857239404455313088865993731029187989351680880821828393483573846810769717812993568919571565767815664197074020554553734805556073402543845028808748191510366896143433172794858871112643386951806366772870997206980705514165100095817800479409839546417847770760970232664468266602100961472046079339232209939558242601157436474962248503136370960091988384956248270584412372454213181328581081099049625797389005330853698379280743499120004769929050966333218880982973351810949092623200268379215248995498190931663793100050909597929301504048986946251081469649146836377822674647470052431820047262594773828892767444546666286766662793404699630213046907314580494011892559796655015375399685619209151134689970207949134795982751942204466916766545765119183760825681486570160660974671593111006071579488174660821763972203148331663401306675799656472998441169334467644003784976204627544195360969847475067389093155401125568385645689291587431454264270817411215839161382261719436915560520541911405551780505613130617478420097263889267398066275962436685455577069360526075325382576804053606281731387987358253707217142124354834773816494858417874558643316381735886240560205554663127561637471472337537944838581570142019610686466023837219609926130945464920315414874032705797557230028635447441272832258425845545639543468594651096212399303876700623425734188992139902783232253897798196536364917541339410274384722449210914795890648194085787214941903440949498739949148614638903849220648826403055383625764218338987268692093285637738880768238535485189145564379605220116124473386191845641443130009412380683848199449985637022609567954056952531671621189811925642455927862450796983397377162019564583763258003878199502639097709288075073070467195721006743755759315243949361749434552500028368298893020620862452618666416353529734631618677019458449165366352535760644929737773032677284941791985348309842337542924471545503175041052234522061105745378754072264386440624454084216934459521859731101258740284741061813409452160204929842485480776121730550461023000749960326490339064918399070993813020497246858614828807646354462912004137378963529130981544411026790780843771407919080078848884856040063098523941789559633301169710854266877266911957757323389173437516728539739266052036087015556702239896470339253429070849975463118810289037731795526318030682302932016979337654169364527484631738883008959218195410102669343768717683228707751055440556974643116096054208098346877753594223415022370753053043993055150927069912949282163859670737149593161587850927451349578567010428657841630880717664201330889895961685143714235864560762158670227929637316602129771240095642382271707227020081534602346900660623939981936139841932049246736237255781713657921073248705546409005010956592467497941621849765151239348160258220796965866906802916445123462545427890886155432491823930840406454156690635494400133632051014308836695457811267933696763473908555486016157618945488653007486849193848392658919725263036658899004876172918428469772019195250884918099795053895869969295121043979391738063561290939500543838116245990598908852336206396700651484595461271584809861215128344749205424476561039673230880039075357445043736386006038866484424494234454441051227668668125736593878209351192432720305348722281796580277338157905539481935571916943873282156351513570702613749396785896905864432072485902379109500876964030933803272180586523294967656733040327809937212266897213894277963080645772591689148322580982619559083442740041363669194714155103886214774792482991711523504168250123239609910189935900027112314732535075471813511697778392706789335389464243418619443455009682575634434209358592483221450464530882173422932919646155048851871608741774366479297769132991757441030981747510278058631399388610173607606305540784425243060973751159076599964174962675728795590371909978800394742048815351562503394558200997849694534227763245583902184504378973238879413607702595912358368486707363432558412041300135497651948466444995695282493259631074432202800893196047460338964767721736270227436824991829702046168744029049655889878841174379701168164232092878539674472686735211979783429320728499731032194270778966425853804217860941907463428844314069172087266600140958814960076566634244661288501444216968628639031744093183846382648262566919708131589889930769194285270444949178897580629955316657663142380411332098319488816697982921164394021441049867686203157798256491383310078201680638626788276337601717170627793652583903917884278580301856269668839232697746439099318409098009680565515107195210442388344261353156574855221896686925414097925611057973968397482647611558585089532629887353332964559885968575150444945176627484387264568453347861991213254207240779627449178436354076545002165071469208554214438244822073625125052018219908246329881398771789880136505301349243810285609260044497933674908355920993328557429023958181838180236049918579755123798713663620339402534061323760440905053586815708212952721977911107717592178016835080131307061547576750853145016992957190209912720580446869207930982399303756000591181547386433723120092843587170919788889315976807459024183044289384141963755456352168905916712819745782149273526771770360091677653459094984923380062257450527063203951946436016706545534512835240545126547789030875672526006858662908958512710939357131912746343197406292181655359893160609507566199707345554063875438585425772619066450652374069039790707220506061306729418197232798403102295194146207745485008496940002401655873741952980583876954950039462825330977276705671922566370303629104917907117735031267209629520396495897629973510621075722820367840559267115869096639674860133422088173060989253135992096980563572303768213790155784304506076225255327308440648740189062441852529259560904645941611839420078583555299634679838513664000417132212667883119304477433685547097970357807216822659425038841876368421825070174321372771148818450663162932454357149898207460576301175333899594548039221930645421349645544039023585301309462258393702180950715956008664495954295432341632935148407310156439716465625450303849478482768358385399432261693887087192863314307581874569021663951187287996119642858581126808987395253921517778857735061614083135152353254842069339408265830491610966430187749850280411394929528585571367312630721881126951113083123319515144226814204091508223805981640257588609634638281016414909305400214748304279442400946479608651876869614326598638027384205817755832756979402019307615534859243071977120506945718274742739878512736510934515974429239298048847696328542137261629508660552735632567256449432922790019536172713291681445769597393163334283817932810618699243923651584014052547592294527059484042492450138142965257510372665787265657000289976398902610888142791299050724116125608901145176685824229678488307340496964440510891627552618187025963614709189638012919418757615484334446026453000305590915956044912488665038267348545162233697545214167097540664000989552986005068916139020645164028616320469468159831820514967422816780939452266727860246486436129421984376757392793555496731450032400903730126290138748056487791337256656272108397130147030243503993655069444732772846564802662983751130160838282488050325630956704994528978945152086054900775251885288596020528972366867796402038882775217971889195527320601150113595877540003296351790153119395076407911965806037850845486895227961686942762016754943176888120627584509312589376830389180512391659396458095925032945654616530265266879678694544134200455703376445729306164738858161121063403020251548389123405587449011136344935346050538686740306452931442425075195634384074775422074700533868201897286921618126651332077380261453884606485538411611646467391444423852959527659600421566962061546630109078622928886806767388751950527246982852445066977481787494393242295228588355104363424067463194041560241926492328081669689680979764208921420686958506001282931938897395757688615621915971661927902195090847157488494711166764855158392246113119027976275147125709985703182733627797016533596317134618691539796678974908706152012929176985777210009587108050905563916136422788705400638767942211615225616339288387889165361634959973871684310401007725137315637686595475880147378567194578624318807960522566531708075101319658507988890812362638424682931942924627399846470368455156706947580984289393715308715684674360750805050293373814365136489583288443207737771178585382434298558957940456599672024268818273176936599709498397352995303729104351793628679713569401428526234957690281395232505852765916819020807040478034468516377848914351447548601653825462292286409432032543895360386160275208552200769286641150394386805940591692423651643624779122578852894933546828386170699946467507246908244824553127397050795025605311119641504353159900869565098842546285246437965709901761804563594225945626727150913534734418951480502667492373069917255193946816583596761041464056440407625332183352233620164621258017320790302593733282426501741932915191484949019996400980541611047378751089407861406446316638613225611298184720761407709340758232674206970215494792263173376510278693179331290270920733191743610693068311936902237427125347473384691021207518673885368903807326871680327456997318787937331455466777908659132764385065473154457605174347750056987592516763228324167987494415983293847885476537287013840735448025407434188179105946856035051880060864281376089861990423457139516100969127517866885391829091798313828943165922370846775296821450087150324075412599143834449205783914845228390357696552879317661454579796688459451861718224228072780996155802393441020990560059407972244148004508728655763656326449706210731860205003207141054728535026877117720533348447119056787767178039524250472882404454502733568144495325463342892237798431966501906523603925805902939071453895753565327935353197705179329724648398364215180707139099087863253070921929505766885004266729824133472562697666555017562041113864277317718534787266203616780407896481986743812165931875542116470273763787603920392144828157555746746866989259247224347218213637878744929170595326503361002503958471944818730578534658271532502662516307084144162289947961841047525937577711951876565606298933543906691839207820438474652045196985194262094522900425292661703649544243655814830721282685624524439698805494505087419043021060018275818294758260210984758922947997702483533286594910199512051428848912581702610775650972210322687392737018909684978526947815641953319815867876148630270500827282885036598072868397694851151125690371717882712112249087189322433258229512337574366982646762050771311009130920416646793589472692413078136526120996429371219894232651763003494406480913564567841447401580084235971291766937673106523730190169202467148433810551970907206026362432067977033989713040201635325625267375714027122507281265892038144793678475235108897510871892604522135288765689410113446941845802358269920468955541903651987197208212989711438386268067113654228534088852790830140554351739377499772005564108598783432819626910304108284855602861701466707593147366912557883452289304552966047891955331355547310726594202815631397361231574165947022911027203022807988973669922753175742733630978953734231778882739585921343439787724697098458159905043113484978939558990453223515138176468272235348849106403595475724929970013746859825476104842484590216638599263544102990822381930252230504617751921909121785021742979601277264942079804958774171566267720975622279406869445314843335772589786414545692925822874536103814258427365961595278527359804321822563802580379102147889873427930004154265522382904655355566152631603899486499139464485159949695894186056418182023429281542492073950542234343585123273632387167003645434214026279908980911480040143013089639358082136039978229458901816612666203780045424744898529699845063154481631252905390983805442027366403449846362960587740339877222540268341700684481908862362157570722402468763331401809929334040951298705687839040582462250419814403476092563467548837348289020159298824784154549869332097113644829133135114364649873245698461640728066805093463474520858144753532201831532781396029238780260415315718211014481512403504689303559226113482376957001934255674296831345517150720234586935243897355402434806898926547491138501990335552352790231249845400664183830558493427336583110787379896399351899300256707238298350293594259250277463291831442274971387762162786514995540169107147105703114797393790184259372167333831765092258915139620251274413647028963407758524047283778780129664757705949015929569468521353231239731233120373531226697930657699220118026737752437391346917721428401949567083699994014073064158962843657823286132080071386631648253424102140238169401164952153255413091258793006120330732154394870762463596660357270351752752474666856381079463929619442808865310594090726193967118190310669668824486976003708373660828089714306552958588338675255343793765442284993840704419342808936297588923147706990540839142469866174418101309959826904877287987942525054311377493534753711111709804281722968072224923925991157339754520805360160650082005565561199058972589951826436476200548027924501713640424358654279437729065118999493851270703561232403796658479245485356000556654925224376217361879893005632932153999438334815840635398148815408457166426116992516289678723044640585407981643697230344545489543794753796503868779090883885094466138875816493962290041647033066845110996429206296711713173594294261590834257712116266487267546107155279023451174079440060434362931887588348530973675898651263711783780979876169994364287442163670052682251838688073083457772900102190482455782926612258830000471865816074417176503545876951418354246937484582677589736791303046645283129204232215940339451083187548467365859582195726614291791740084880166928459658030037701434897338300329519457415659623549896021640764347374458952736296410152246627034812875726726289278257135023915725752029296959539993281104169327999930114825353608501841388529588068360583022171869680408429961835186729957348232682770820357023365930295672622859443078883877579230856717988348385709665884411157542564536007305028744450384912099149334748222234506612634753977378372826656212927545494744209976406103765138390412844292241718770851505872630972565015791342840967335546885646395998350332708592432312104658803307725333710751559683563210309011286105600562059083593647512358967357524867931652564580063373626594253715115622076890136581886119543029103176572370157939297846987189360885638787818542671152417233274211422413118919251918496191809628613119790865120880546439357598944352926317720669997165532699052272600468630814993085272914593569187060053290845938107164414507221703589857892341041015769269430433741647970227237540635318374754022661804401646509955329496148166497144170482696778434577870815582024245666591698859893474942070996122984991442088795032913655420254851226628846410954786728143870225880801053642497631779338627011956182500260834666775578769405601567425107202301672302006185551837596339283238273974776574785564941276584380757755848641137705766142043308502139814426379086014078275306143341776047548160386142162823900161030506053015312783634728164793484817649373920924977404232203664841815383367852113514720144517975403181831277078242827891716712692111926835735208450354570671730708213173134019368802720630206451579480728017973215686094243944847969792169203657796376373898353721457215125292570723344141883500568695925166160297431996012283476195755533226638360696274339303873874909037272270715893840349092253253718311062831194806773547608985421236690767904900976012603340921755084160095354774106641641099744413270223400106431860152273817477989764955312327676666143999279646174257341366629788049467802937119969311061291465626169288715800497267163599300178874919765773085156866861788640683629055000370860982368776345704007385073466854846472344133436398193704183390496512812296394020158518060449024081468971988385544627272145937300646741362387416734904759491726460901726228076249401054477217974357379956151868199934457751002122099757119959026531043216905149868009419942806918050991839339596994661147456572611889334571660145472707860924117303523633186189838756054002437400990025285442835192191672920753812831994132910964130657501541746796909659162774595217861748478344464994884949738700179138233602950784946208077230480934519636113317184940652663981913632886363534974754641927899310739453597348016280600740369602203877989204228606070160009471291288949711508457653030047044361194068262471698079845866603766985692651756346555890799936963085192886563320594190794043612722516267576318357293359225108741712255794186521210885148173021389748374218844639352124099608696361627644037971671334645310047421775437271512994781715310732967299644722881162985186589949092309362080238911867964266230179227906196362325054065794221251080908375359189882649033004737565859907926455126309419891704302641968196664669189643737427235884277458202062611934756528462275385406601917921755204541631071954813711241057545952919985264226927152509726463171961142869212377197984072848717887844631255432896510411829910215773112942249262898200003889014753848821830274774211554442802272644002615809819060477722702315861142154541385134643229453761582843478737712522826210597564171118811835263908629990340579929971219304014017316203262191552648378328102047185194219032215546442560881854734566897315231655728617397115076557067598059372008814681848311791269709626582716671028668252814454994835389372619743902560236599664175506616975534497496344644133184481720875566892898522808897936265332664837017658664455851504312732682151506442035767229184299474628466311870991670614530338690701788687586061563213369841692510291169449901713556791997724030712007717764824825329232189044676964406163856069683354385622879257994147883708828042599387131589795727180289108681225740936485194058939043593293407592232213297220400085437096672263911033367529554349387903638588372455217084220555960103701871299776686783632498675427454673741193993026972786280172274971797553270634276043515014809705767615975332479687768178699561454478912911185341550919735485952213510659885130908600114258394591734585425826730614756697555457038144562331957432165426187533420571429375330446795710278302401378222812616532980279348311507622859878227735591333435715451961344303587073422085950510461399973031361851439482951606422306532697437016185430686901170060577657948106721759705891653693446974424974097411563006364028802894545389914257282851568851607803014922994421554850028346283009125948440664834061382490480347737394145506524062903634655106132730171508896614361254197311172511345713890529865195722721788155756865725449823095321645108622679485989112568877848253341397967968109262853523010417586266778943038492512667246952588490576272556727914872976607405236042409583232521668804021079046512769286600021063994139201516988261081659226520428203134841174118189975875724482313448584337224800124723438279166052266943175612910855783468032426826922017956312343584515743261124263481285676191031205577556648219463124005856958397476777416134832089185648876898490774280531729624262175469423076082385194123142224310810966235814744384840039485157105422082026955362077397910872601095474968621078475217414667841543747989734566580786579453032508194840139699968544530570137517083129540155998003838319815463908285762348596021162581708964039428645323527885383299122844884382042942623213944371437894224528946822879221793467867905900242570165893135865707844719465786835722174035547376392676591475310201958339496339511587492522407142004158884964602083975325280568439919485728385166622060714793160368534707510608242273750349350805699567139173020957611485832680354335856519428212696371930788348933462489833267160896823609810285881338971407124815784270153837692039593761808588188949293157034854555551620093955336059597610784344944149841640829188165026860492714887113495143440062611006532971131397085340549573452481573466265522837119006871985975815612369399246749963764934571619331938398424581992243638520072996061582780742316438332091578971684406576638088406147864554232324533163719521443816457822132850591412187359525828035871371816922587700401259577180288771310536140796476832491968510906106992141525464427307429519579440992420774090602698547235909751013722152746706399342954459749828772651949120347602308598512080057432835813425751743156196982284080319812455468037011928889610988645228248402633692836227906472866072489114869845392683794538834981759402295736023403346674244960048729230722928874446340376918232521929296953117151403382659780621802914623638208704709392785636217583632983486471870595370303418668937704422746410710707076993358033513043542754313334282080650647193660596126726346811954290587717095078312374742311767820505104988186819973515895406590126632855990641955018644954351058921684981318322241010697080049219311497668835117453011771287812868663849611199151871698965487192527955543443504046000401183762992076222212081819668287077681644051624509775520064153544309943411564830017784940654356659128974928314976846920044248222283140643046804075243391779858422469294280087775365404928080154454216182450383925569576834493011151764458129713024697680641138391678382832008490594233883738873778992272515992043224909587752975015439278672852900598690353191147586835468191626075641182345278288943032426847512601643148045938666825802449315648785112706192909460303824376745084695726717430927302370071718805939787217477982289325471647266826460243139944257038657943467290064301083220959884196471207559696121735807856467594255866254196019824915694756084857019846809560730808217350218186266920550122101140257500679312460339304605922420937919211149341145483884181819469726275192156897161202197911679322140905937353347198155523025815792632397443401572841326618386721032393413216594206086285043004760166345568261755478208198283577870956895083893268288850818163692046667938216985024193703720219869384830903290033895516258164210069215613024936506175131831967503626580419554582116914283117787504729902482193371857205348987644635711719841664650954960692909009114617465761471750730368442653598614809266355057805303129436458759933889007285815397876865617010567645270036821772167974009459748790689315035519494585330855144701004500258251151108214665336936250250081174086920933486329114441878460972489993900199473465040802560711051320565966317112723719438234986047183061694356598512798651164232779273579386138693750413039872003968072011050212516197292827375183549602326131485211031173615164015861991264127429277808762015186049969245357825595284087894655331486416385235503155613371311174798917576129197740625904324772741216087642007743156565904055071183307242641987304979658772073387328323746633261585269290050185967416137191770573811045065319614864247073756745733622138975663332800157660594038036732096954568857774754611935392457323324999916935406398248012692605679135868222676786825473424584697632552609895923052426965034438617563447084459710677342477677905615188880336124098233397957027286990069927178952202742815536558160800540536601882121866380896883439643119372694778363923560249140636563488140589700872058904895581164777054623820287579403922520832445695948942286089784150968253489952444671509003244925986639698909508109519796951662627904612569723467002653191309888977628843126912006048691932770019319147084004053065053686894220336995131383090114234182250774701669771966378195496706668127796784970492479091906551399896427316343719985469494529617335801140655213819798335665402054409907224147947334011932882962097698527203017548941879298334627067624977915108923235512125667902348891187717647681974503243965134265478371309354959925489614779429792255097111219885799507315823629474879121473809055472744639656736766955498878004115314656987383230615585578437309676719645853101188311549339249556828313560510714738519533472360710365369681579033734801130100470324950408965408189344219178305002399974252212196282649570072150892807416458122413065312707663884762696997625117496835556021540633333512831373189844168513044039995603599469057217272713264661104492384583699368500875675257566719159656369586135750554363813356005449342778525443481603440683744085001617488341756652281634162749726896102101583347855701241041120804002395218302097321027276168837402151631225605989192124725077703516872365460938574001604474384982941151262186123616253353169526747482984667576586232063102793803677748020637972174773476689195436918866373366569009974596109001151350343731217574645492568612069688105909364951237063599128425172922990645979509195199854952749730369323724405391296127851486842140673536393073330869981759288548075389373109989167740524900379106129301471588296682637870430829818797354708935089893709584739523866499466247086318432600427679184806383455260470821288601146602699015168308225651070740486559560134456603238807771386189948325646983976003487044396410095947458765163004869504751466485102122575159873219087336179695472223363308714149569953696620191821864828203434107279107014708575875641226256414913009389351354086801310696094448339710690856297677516537174716869626131767115261049555726621434807063144649521190813428155668384621249031094104604153744111136562796337254052797926128111731035316490033081956343233979693711567202981042660774975955903490552048683848610536790788464143954818028593394265846124931269243278442067301070105361206465210568733882018366093863730889510890162636369769940738598015444086753120973708122961444890861337594282771712349541310910198499675202056396646363926188558609693464033423198530515605792676419675290746742216953060003117900026924257836688663196436803122066746225545049174654944038605444241655810624131058145264006750043016325762017402502890461196993646846291868491750041894261149540638347540665256584444687248461156923189176644147671213203826274065379868397446328624350383065716651302301983177231441523745498173784921368302062437727695742869983227341702698133705478167291779666706323300813771836126516813615515821327364744904499481993549260820135099583878504080941904529412488141094857518701078941929997649282625527315459092395195288825471520868453495632775604658886357481933396403961074727559210149406715969597039269221905480569484053352618496357002697227642165231508147970198809800696604317590525218714768539422303002546314684196723281167286640846525636481500703464400944602435668720410549198906569523714590717758802330228240921278729369622196656415109501951305836841238785944554945031568392856391966693887309432151335099574882134333809468264999729471703875729217462506099563345661580945926067713142648781721448593113588096437358355208825714570405335578912528591742318466788307923784821521128540104525432447033683129119357215056659261088783752066341573390957602250390846292789588729537150306487799837250098606809806447169482530533987486403859845348272194181174278778654720489819188654369113409165872705663014492982930879714097253778340514730220902552547324906850360140374199074639635886029568538509831137310023503290040232742933519276312559338177330035226812369837163278668765027478252695738268318183293120115604636447486264066482062093778219410545471475216319061518040991056818564307690279568304459101255006103309235380370274631592075296305973197894483677080780768910585155980245180482837778244464149664410424112071554441710796710969873844786722168087100725940632945088800241441392655609901737612116865111090762465364285892180142418691089416925666747650622980021863021611441318419901876009403315111790269499986238043955118188896626523391041460021172367008390709996082399537949256555052079646120966852886132949336990387471922869036468397831857486964243542833640558613101356244817352398109049185905672413274066467977886465971481535248751454755730799168818062286659882464244336500599952946579790282012986752821654947097910553702532097316677935177178564858052961491786002286744564826558817411859213803015459287607430992392997363982158128650017940733566260862765384369228356848169379746517764333996698918698178842266258355333670988866454423282432522380356793396958438253247787845469718387044012388949996069128501489216991035121497840069573289855870646857641563572668021225578903990544401678864178116891679106046347269657311789149616018565372406121444860521934866802560610774802904425585949222276167375482819292952588506094238816823777216772508691890412135913583648632368644640103864184274019368409451278913226335303610067121686092974051103475795200742741473957573210253167398750490798160956416708368310648212390768007557869814060921361513831583489173877423529466286483202624763035062000802394475170762120907059834603825532125498561220283772360953833615365432883092856138989183573127375508739153155766938303014532784202270831326008855379979879159261636736296841486060224089698301481595465917007721538997176632568679323852675799895866921194124832186946997738985662984006184334621244304449733760164403302596747925605115904533093284079011766433956433954364870410132099591699031383350745863841262702571961682651407297960431405236655757398771515188883737175600746655835663096984387866273638301725123005482298246847581411447368960657468274275577765446731492166153688203087113024855733434209539734996611886318650559509044972368565752268582840646894769080438001953387475020568223078110884985051505564854270791041842762460496513419977346500092221657108666164798394143421461447655993256368034975814448622062585335157450460442878337959949561726113418478397222205388006583223048570246066255014735109536939827163593152368243118102282871228446064276441313469108253590927012917765146084970037532583215840032921727183370630579467438240542078924907032996177807683767523531062785377793684547768304432599876628157878946874187746671132086575387236389202809153437458712114385745571225760102571677461335859188282787371355293039105399701911807810709575952915412226958779706692013683226475848101972575357824681574693431416364006312547077825962696245795585821610358900686877862454710743666643197836482414041758484686216363846077171569824879486644074292095252457806084108328452752795686204351211927243460366469053651968806436019849299943715576966265605362896685702621714479931019621491698793047125162656086669668398061459954497215307401796606343140517063649328882220296029193583882784679853742364164493421138346147942645676656804604593178829092081744993882578185125385986312459551804564533609366575933337826294069965715603234528306257374518934868257492672983049952000474585833871414998029311341529914856428312265451709697017482827104288628988320209914077631109349163640838812736601658680162232414956612169207422960762354463236318637869775641076063860997101485068431023733643735007840385104983086253576731170650676569473221943939878832656598043325502973165367704033943249010662527290126643351623916366105592622049869461404289503362599705424496803150261189136461334923813881133001698474795677354858380341349916339492190281423042889975645515338441641844052173991114896114173018253558615314626278390593486359045363946846547207423676301188366061265926206161941273424657610711076416592750278656470796760286077889549738660047999364388273774060778698915162818757437764179730845622186137108079976142676487576356901772559990584619185616405147042153886550643257300027889117920922901348584744596138344275125874239048265424983650469196602304024046392552371890274858526407620916972430323259481501951794727254218106406868704189788397991099692233345171294703132312474345169667815804589259745859893600044900779554122143481935734810176488469904342118107310601840314450827173315412190784172827496948148145638111928046089365008256663375254886869677665365518032199010034873455115412660926696837695376240297341776159400715180480290554049040417863884881245836742801653643193144965697160481361506977665074053866461421645919341907111683647148505430529055271898173370715580465864581091584476644305143037454060413978424360437059405898970580530752797090877304385304843097892738096655473873582363068590920627560677589988978726331998479548552733984496586716317381168445851498399005114441255639266156320684855048547627726450565493866337748781724337264319783830270734706307164704842823471705142719374907290425920430197881809002943900923847657066916856838947281087667381156365890177672450162378467833811211308025591138762174124302036508991761674831357898859601008927299342172258502433688261895193300780067290135139773837086056451907681904974953743884945226307817823617119911274458951638246521025628215717131096473613362018654901572156929146363219123587806239002546718172899697151606046601039733351641645684627617514016877609953517210035535690637909581577793657948272470004646925519725147381165081828354694248525641860845355369390758983647309265363725651248044384326980330722081082831975919645042490868949815682437481346999712299186762064036919582999566328991250902872111008216213114874846194037443695217836040436424450363958457836611924710114172315523859701513288656567888837106541193053309973928130086410826851426303330688653305780818145715025215211709039298943011732815908250284787266889451762499818259100693679376790495116088338067241909448759736772429124028839829198044229349256351352334792116468320382993108681069997637512594238698929465928087325552750669184020348123515822508202025533263082228240340701240698617036964955715208557251562294129385276021539988116717604345501637578471352761993047252517876661937934869782502888577200694538850226357341191451167830010839033971209769252471944189277838972521075888208908063131748528126130125579592397397954667427610164859283874633698696531502822678503206373483517339838684185904354774031102958202233600459755898158362990045403661297012335239752972634580831524369869786079522842845192666584513771517420836002761340097449724409013452849551309432520184004750202955110069929081094308806465295759024215560335652219527405998525323240389389075787682416064796475504580721937535041746850657672651157217003360420490986867668936327418143894269516218325831486445846029280722960859921436299890761442242642228677263301760870832486117291823218405393844043910928471365370422639328223131986040251087470840145702392264326330061319733210865167067948575276582707786864201979547779805961229833766590499775472106940488809862946183374457385592244865654019343240392661560269430507005884207194665580300147415553203318735115647038570854984860353599648121773160344027438378572692180989786276768925799006177013153292307515612615499906483738140087418135094416757967244382093886136826720985210510393409846785862665238344411435753887969197646992867343822238760355506943993560131479460265674939579044780766857617765775863785809190913454716271520368630099549259300867338260396440854346824156234629073154619205636408332806590182302907833229147409110933926510771855231125265577496290516838213190332050541946859962175821022660916184042615680058457312147959585119407154078580643856457587393522282950673302968685284273353068470681015378099117086045077990967916943321838597280004127775982410069970449843167002848088265022507373178585218099291191677843109618144078803557353330993622931379571059818768677492855341448426608006293262413487135166106297985753262176242719752594052929172004578832888776305355355034151068789857995469118135860211912063152023639098509017498051723075292197187647267531167954993718780559286316630314488525899745075035118994469761073595354574040271918357806816277213451153473304568614113536302603633903056402367170457630771606798552439918858979471666418613717570223224360697344728876325471602464421386627228856080380674494276615540262103064655621251329831059665497768056235694782577475053777905891774505304601493532951525046997616019836933116233390124199250481710631780296599868327126328909380940986614568346637344027809898973964945009732197943919806162301020487880114280574180050480472343309320085635975714377146065462158458523582888970606958132350242079033365761903213862847149923084946211645054549737831442448030727657342598606989467350333848286032175844360322299984425568029188855329731931668998589389714060534393983856786976815907272866658703672411723028153986274851523909752896184288341884068699585770607561315063057890067737947995097338002391199938234733912998028640628432432630401697729595539980946200993597024488010195908454110228841158602681401789656186135490002944628608974706863229298114156316129125061250252497522239958061873610124460760008809028502302020279236889198040300601210031459954511859694335305886454025907444294098630564637192940822855462999219220456618780821976727088170061295169496369024553826283051774361341395414828065455607142653560023302951987766492981067899846870728790785375792512853523234385524697088919400407002345034021132445712054694641907249475208184057611050129289887926370853837544369196129580675975904940819371995623956115688566557145086903756411293005984314279624950072552582747713408604077377013557741734732941987760137691012976294651738339128906869301182296689071051802786252337048632103634094796119945159720876550498139428996152582623868200865046910223707957171478089139150548773307162986107816330647363974014074849517370512640214504628664926385572749844474885551728717392757127820289551383566756173550281211504415586672721499182097759525577411525008105442731253871712036784300988245100147635665867398267881932072525110138458607423749550987659433492059055551387664840832427384561293911853271578504309901096741307949922805768327222649457365242587863345986833888708686749135700006258656604301098012483109495606940900945808527182500404219350816220333107052269665744872660989618693052167855068383659961324420321968900645055324441529569692052737556154722884713155574885417387390302189504232683979316993941566923629133898849496975953165187230213904757945277581399825120353802334201504266635494755400654715312142801491215691038988699046804199072685606288577737556984341271798953910616518820343478920501263049879007162567070825996356999283791272504947906486195371185990823359618602465853286044989518528941621079606854871725774941105199860700761693583933842946789814860155591676315332767948587187161165586183663788922912930511374880415604898999162530249527147819688317450979528977718384776249171616177162534017297937165227758781071224260891024372919013066782922637460286305902317611429941018943258518893835554158899376108225712323388292195652927552057859067807342735274033396882666889848881082771517752212985153168746510177586921200580459814867502703133227014623319762403855380426846373828170865298367515623044421008383161883657372837955793925479431747164059750642784528217978727908248534926957422435929369790847746884473454720060453048903752019865428082353135962747824773777866277029921677555535092638466879435327052502905498169041295588092882080914878068971696694812228872956902776431442677795264016996187031408272734124398469948215119921042938915268766766506394872256993599699627603728608384254206712578615281396804749763219931235672148897767536268572167257396230667082237727929816033006116686764586037140533177980509963911274720067382044271034933198397050470340256349889661026595363542183407379672365965426012753312287700658805812017191798283608338851229115852844773262960594380412317439496303902266370807809377238997332948880227083167687892897226058258634486773756974849942345882127001816993865532277776767937148086553492564766432895525124556419693075763574900272224979797559442940501811239960897424109472380767163598464236636018747551676827766745026419039899907150071749417068023743007021485274708758763634772806751447502901715804029578281750310623819761086459516276082680274260445727669558686806871871955037028443322347019798093470935623632934095274281616046280456004711937121231949191991287442994618500803136143581664545733097548273676668414705183345152736577600685583686113213219246169105469523648072462765140553261444100685347498994967388507879435012389865933527116829861700646638695434738189529909620205599806116208900084816772236865401655032263277355728280869577344346334781685601500574255341513299716857362785616747701464232394722002936983973413962751503305059187641040058990092472616292067495892762372861705545562835707196277394350831385912802334557593681286241228025015643871820256150416741360878137403623455829577258595730330919467678776903625923422176138214934927556780193897834377610167067752154731028450801033435191882250288140113320667191056397867256035600672951596719829860774208577384166044416968714456162557374124933936076220381184721936655145166041727750313842482002856002025300481337529703375769558571671392036796240111023036935124391290485945903719796337674148732774568969667215132150097014617284895912181445404449015151305029336842859717106027411166934493347037040810747835754032501902960455463348703972938316113901494952469739337785174535223336989894900150237635209262890861836100256895493513921444120266535876878410763761400526328054002883524962668478521963714962226017838646060877651609311359737877131233156242545671153486427973354826608364811928167991613180094597426465772278779070698650702395908460129385966370719441131865638352547943160568734479350968120095609175136346300415204200757980948568512634573982782311364577859298992124845479275970264671605480852303526532948352608135832064751035852482714672096964013105679176431081816037448592125321681532070369697401798636222223577096726908256553924980020187610036476282234419900618981592880495841343384141091509528586582237159757567534227810758717001807169241162612197358208492476638552748899550111435726369667522161144133598461732522910773899318341206372489421198880252838719622376477300596491401177169429201659507677848794386543819689653310976707079035467832869025863987126147300192359728807081218439809166212755978882009768759511696394464952689821101960666684694031968455999058311055038089297739921358515621251430825325693123266829975289549916170028685599460008638306822849707629507368071118857729699051825398045018398382775369324674135794508175185939978574312787043583041109574987564972630631973976646251512556057476764309726271799851113486179744644354771319858995550797194398361649118520349586593158863371546660889319444731836243407752901790096762367583303038295057059035561919272319687020094833833719850706258307942644238406701770540599951760680413329991791239464184894432370337702348020663727454527748191564816110892474762105769530666323514046116470773690071055018166798848496502811308480524271216903263825083153032138581157056852802297408787204864712721601851640490431244035259036042203329536825180777147502376267415087388567832135906781709443314379549589282441144489112221244976183677716188051924812829827109255488544413031525100384200194966170717468683446555963112996841258024163235910586179109827488629175095852772474468677000534358033635573735925155555471026942711983532711809811164050021891211027464940675249030366196563704575029855517091162045873139731162028360544813721661219418229278245296495251235875225977148961786577802526042375180532089673864939715180160134776874798356193839284668325856861799510832073687096927655273899956149425951535774153799061579197104630782855978911070985631223482659630188387742014525719424360568048003299575974671548620082798208730200827506680587983103131522181647582205381074242157929598779363498551452565196081216649106672133172861394261076365831440944215658162338872481488619971663075659441594287094908617061222581329756554631593257772277129950874956186984950601701246789440033308012641228453602750441428592357631681137823406274758953198981252910640746813069315601377498225226263887218359331389843695142470642590926834053465074227521321356057169078400765190536857206631191734107819273434295826901583945762938816401642303485426478476139641848510786331500102730995609960701833471633666756094459009255875134542820120692170171909237225082882176866104205144373557040004288495376935562272028357186273047521801877316542054297213505828881042666338831574485529365975210287779696097305070301747810508503958740332422610538441203920794857568004055221657249788373568193238805426363396200675695998889610854803554412514940230509836777647543549292322549683104251332763163699008670013930950207009153173184760706154051764249098262002328513403670366724785708449769293633054805010530034140254889611200826915180335517160331709868329363640517884006247827264456733608279854037521501107217529073562508272693512184376424529087419524562722025037141183209640336991675272960397024741647252569861719306860346690136738551064987283262135282512005850926393881335656067619677795577720787523630637323190333063467231778080580893248898926066473812460074077750743137928885751355227733756655218358779636571301772879202808898131731289110350632087997104380047878086807335096485080300234769885250418588525340770217190307796408215991487971979683153841405590701383193805815435939702362914761014043206991979006002657202965390393467658796605207046622308808796995290361841668807301040438860022509567340667007854000900679184529829704383426907036044805175122038278316850811048909355432210986681049115102682327323645249506678335751217447278607081109589416702563169391292279742604088737101085857230571545516635470593439783372373461977790965360002617103712447248506675105090766478252083911015127427664518326203259644079050259141782809134936592057326633797888934516068772270547860055576309879843127501017987048886355357960139602674529739120203384581637478720033410006833465463975019895873166233170779887832334742366250354507263828121801768130259306994812584888636692721855330666083487160707279325770782662204448292695946367089460965582332127370772653644989965128336994562379598286225055917799370436709690905429671361070130690285433746287697362401579712775374410709274325690124360723157467815663419022732892126764578399375242960208366322782551297386571233702133182340050154481644119459173358601264314101429673248063825803624486409311437488019046759406157735829028200168294966559467879378646128524225381317503610870355542593684125663382666946143974827564863204410749443330498604662791677214469280479807484650374270761541187437105872504264297880384715547367004837703926701169722642124087049602650007424487203314832492947938973856895848812255340577183700265023590887211432422235517997250097799615785116173135050652501768545217540376281432647714227963716741206168106923875147682014402208330497719994297583184110022011665514802714805173101763652062953383533569112054577776587293929757862336487362205169142278421176795194572957704109902448014660952252418286923040091758738708143927547589704744598269346193557401631668656331866523492603202509204407571947294345640987094450565449314499746620709109828129842231751136120220061748145657836842951457029048933719329086796799235068749289071142043881057681608972252022429026923942782224956756818955174772173169475643971333931373089782607235784961194539461553891279607217684996050993093556452765308699592050822426048796184544382014772802660096254670161401024087200926620068638738015684027575435241796700050819509682401718421163326027637778006115320816165286195988537717974809706954109621374350162661064147540965202564164695875972635632419990490995065334183169554978032105760058892211249427565159699146110017065689296703310130261306612761381630193252465777433920930927145636172364834593707915199134380157495256237475953149052292789317711190332311282040703127454787381693965486489296352398741284375097395266463154142517191925213567296148272004213646891628463139828345933253429930984566472002498983449605215080414420146392641376062433446849114437395174284050710010088807845687892375534311366733327674707331920312929607454294520294747301070050532166716609126414797383915533292615836831543456734803256241071647047334400651326134353640671395334237231977368108881834265928578632864803842794141446270655528563805694186991972469495412653375233436395156562963957304616288930550988071588791174862098115826095552035438366151256172004311446333334748327422547329055465607985631914544838294363128205238045544812215912666311011792267464572768381617908302359364388402981512676155178138822615172283250372022852357748220450380841096212529461665705515585537614471418921988792430235860344951237240805348054121441792796194263652335991605994535209334598238431683798050362565041150727283486806696659503705217596223654024004657407503683094841312344332885181665545472065991174456795758406278408942848559497982629017809507491699961688705943146590557851684254522996861497394278640009384426351417538154844170601624739526465206273042683535928121388207793271217532154784527068718343610804651325126359058125702251589763655943574098542430672449936274471427504955022128337323412801927353955860155721623027773965183251060916613354020379901008017963497277109509718864849225990807688110403160044824860160718599315200251815604606719426738904961696833562165174557365569165685210391060164970575135294393591734499471819731906885790774465758871885855733818727315787402388357272011230607230016727508407441939419002282900734810210457932157105054934598357442971003267550200075435830880864036186765339569583703345273533246927664289356061620405577671196114164754382416930067825535058629852125105918155871385033529593828936064603022503066758616708123537705517241822679004316011295111311857329182495848442067679010815163170632071571518915051347426047617978406804288638981429884618227025884851045288931614613234322568992753275887447980746706890237443011640047949456209169683850083414773262439051646585814993493833679096564329753860819041073733492816756993541943452890557335905101077742724125986651161978407405904545939345384282625091453136883523410147096019110263137331670281480370457786850035294203778385482408720494840678161703724024696113605889919170945340233863949359398200433179209312831218773689893815787802155732081060362579880485907301802625021389422282389986635388772465469447087353983952842491531985464467457405215588978738790052035937935987303595893878213889562744252993002429826217739064679038771375304739115936828734267823155867980535257527722514022070830027664195063029438381686024340926313550846623773819928779033093819179579909544820746961728741286693656687027070371491717216847678642226412313130512001838795061480707373895789533121337721792604787093962748208123316391474274163008547232209540403406370195819112160288840314435921413041030998344084200943512953820693369424236059127131699248255251315580776521754282254037902339871189009035426076373320058488872853057102393236170928421238696715286417635608737488689842282828959193554217801983293934139036391125423366802419063360571585469523894894097381860264706620123222376671811557181315483355400142572985665099929004068773052283624604052697961499804984581294764873645631060666588881948734434273198158882730604117378978496553513968607759116526983074409712041440704231956005671872292435521041269070003224917370334745433570563733362420236347542792869617971417700494986927088500326305771979328670027319497390861326250774547286012245038092792824522213258141485515901935279168906151463568275123090340763096160250825220062675204791457059752921881891714873666715298065084072318986802942455426967184433727873464746181938093071261326946378648547683029524567912038429922327340378364567733594746803225098399424433453912983504971712235714990903019380167175321117899217763685150213764758242804074079295721153283473865672183711783754054024551041771033009881313846640642306514059884008199119228652312341583587545296262241793082996625940130479742486997495704840033179366377846641183096200170417447417699288775367431568302288555170429011001520312313112681089262361336285110761456119754773366711684934319958067406329407282708819917040642902240183652976314541880922328806280626476166329585987482314802251402516499232265955599830370555570281163039841107350850071589413289742873208276675009615000311684980283637114672383556887587357397007999994282725344345600185969789234503985636085348897001311004087265498101903759603293056471459647982241912325161556428704383440961473213001480947450817866712087601020394342660344619097832372106273900528021774655007735856154706014385506068034440121786763600765194376966905145805726611381952189613381766663423480329080876152655489416306991238041503038260791208335965998267195760293260328404139142701192135246552232365257905889182550841640694244051241491615562968366066024702813738713608749453458059961524258062981654793860995466682137191394120021385086033942675289976496621486562128892357748653732530569884810185311598907617388081155564170465622661806772378291002706361657232758235022805158301213537467554213874569380991648373447001143613900894502369513613333617610950092024259510778339830907465636844774354935536137822578696125886031753212446068755765883940056805811858182966319376129144936513355549835382718373962002898393144576096774083578933057258327262546346715873044122973400455621393736041461563627541553260600655780265524380288910274986058967579891329856931866027192980344979858905712002410131264293582823782892543737812758596021486969113465880316172519908102322110720066635525227610349459865046563489480368709721235292285087219764853222365234554793794012986778727366816288280681502542190651649465839450269292625553457129085487989337777894071700807932705673734330404536659286215884063974191634127382964448478951269386127307860521865369126168932501617195763392094457485385408420642998267572177586725220392111613947008194629472566391852707617285236865052471120605045492362387019918871330459604765106613024882999529908732045903924589578450859587986100829069162946682402545552129612983465886156731438875630201231592225195917670618644899901201234159038728370269752380006655921203183157647665127290693937784557722192416006647371272763736354534101534398081208901161666757256753204722542113702562589911756551196938286575817801327388400880827198418139409528823464173787367726950921362920323856217440285159581112649327496284686540705486148253757600002621539652584973063848419547186740704139050333465762251355087984193216989075599548023239647235703323741855684960607641104857485905194151782129338561891440031472276601927698974311561564093909898749163712615949111033538537548395084765825484288370590406632273786541214966625222164142847507625584235478296039510224587975749218890151176364602594372876287345558053453446205917280377158527201411904767993842648722335566664880376329872802672549408819984001790683443344265098856348828001781445473700740994343517482171465777497134528503602291738448055969498069278871321902760309744331875651633465100755468610805423839273873633590319319177503248305531358073351700507296592901677002183017871870955539566018037172794955642537711118950747467256349258686455198460866230007337647923429683654198639174706546951358059939407875747118667882829983414325937119106778466407180037951509216876984824630478087473708173408851780280896267979436925610328072212941795811006224529609713925631924044479620363660073205892084602465930645594283189335907813713432291010682963535681097235402787209088430596960423846505340215693978946425188050467338050835817221113271002820053698088140786597237076247086925326404590863894488799721836017525145045083286218062041094010713675339861451828700297490301081558404980814785899243708503318691290131914284516016870273870694628217611463782495755397595178552061161849857002322465328761392672895513758805528191905524638996389656470969596209313482962264570662378189029692895315131008562667081948770815055838060413844302140683032016286772187364539784106732095808998843739829454080583748988542817109767428428944748122412007873070786051145851490081204431001914247630331512731970490505805119343803916537910811448942749926375883497278502732703089300396161456351305642664149971785282075469938704520311241027720985646935365124187785611308579341865727719206178685897963195185997448269893126129214315135351301372118800202308390231159682236107428770279583626640271332098803734721134232287270121129999015302506349860136125108130404869105203743486879204466493799732438120969047123419607463692975527470018341587680429718501639229258114311793953330651961057486776790419715213048959067115318778470947451485878995312467958858342911045973068787094195341495016557415869202203827909476017148070135558104432459763209946430763716479563605074346620757451794173666466961650477740514254179876961721055697294176110792384620880638932965331698175665644760964978866562503765292091663237947618305810418934641336180479204636721767917937675014714904057981244840790448008679461186524820996663121007610010645941414266736216109276684315981669927928654039358701016206705103129360814243438051368794808334492987247290034029449834043635195393610852271601000717064146688251769805976210030562046786806277382730433703616154778722158205547047388723208842552674396244209546711041549347613664400238811164597495303117941783502787040990875724550863051768461750885216774864550416751160222197279445591389309389061598940404108757412030688187473653583013060887152947298416716111617623389198462647948957190833444671990999762136691501313676093676539535529091494750610567612865506297363399599505424381691707261586551950495902270763002587917152093087988023386260134255226149850822283097922909827580240390721352140909232227433400663620252805207354569627821324727743019713095052767658403197335095331328231552627194787532432735501707587130254885353391518478198370749099793863212328324444395584123697800628639972090706109361331186752781999461847506034128238733547196052661577524866840942776166841248532623921053080235291799432850683574335005833568314717266125908618228921998975018875913444776058291233599923143605034109259385363489004659967036354143828702552171656642386093979991981863477006287170029155351034053301708932488231872131939877065493407279999857132327868779651216423997263919970316583899128177933481736006145950781179975043524590784690496367153378740755399047003345842765698369024825229602406956689219483852797124303237471346406644471837773749317468352494278002711636148210628946557903710158039230007704039100449934665478187424781927753353230709052680100724166730233758615894056940475935995353313065774415204692025432494499598623916163839159988228747552865694331049037625121637409631816725340392324289131953471699091996265354018128758253452124051856703096111914324654987689917026420754611904050581236571776768572579786951130449070730214172486995501750629784099698383386274465652087231550808731906461439800574258000237636522870252342267191579649786518793829285785790847425646712606936684182904915755777971756680435474862278029268462366377935492073373218804922887160356980687885222000552239058395685069821456320368721712190963836810851978648343560878770039031379648767523913249512882128201032058228216022361493719850474158874871018329759336461448178970675217621697309401153888738377421547855155499452906318527375012757977197306285901748540369897486136982342611491679659448487347523695646717902580600173562180608830187368865160987735038182104419412507101758197752654839104436137142233787444062931634490408001015106977825713813901364955579080062622286382533484371942322093592135924885413763724388954986766917149300749605460141227304257992720459297061255239161730986503441449528042223323039395396004087376253598323801400632833590273819336976443342765018481095919005240749736638229669761081613222836967657383156840267931515620434619463960886976677448327988248825692926450835258681795491848416639557803705192224583983915557660367625331691507881163080122542964306498251596104900108634551385309773425621520068879893305538374098728270068121421051771069786119182296526988849968791975465999842671963436588866867088025622467209324586951464022813090964235009402380533540065773773129748958254992929526035476713061227477646464503220057677341952466433673905337572537371330579669230227985355103669258723778976225256494222188612142033260813910800342613160480089588333287407701346406406502063932266635463593489321058068856936871060407089348639671467396573394131701236296570208489116308301770467085888131798046014536038442702432928021013959815271842985403471483181851314731459740317798802744541169317625522713140733192961085680075384430388346742140801911938108014665314604068335257409267581664576751764313043279286679533744803921801488511066953028172999140121913458715734170326044119549858825652701210667634680430943136730096984178627476916573465272253617117842383827135642101875974849014879560823951666407954242909960359795191761543862539887884291972320194886748468721701135863512770526139279571207068066919663282123730267847811270919902800845061119190772375735427166700696764831559517223245802908157156401409809474950152764879745476251188171170807118550439534549931033127402204539564507245545998808492436581106961183677303679903310062216124876936201135077792937708344218513152191722241562695490163793099758924104479965880521209858697800363957605066149142703368966496730731055259430265390508051016555516967294732259486115985173925660679004909820747299373698890067050395147717329331082186719655935397900763342167905178920495935602448403335129294452319418090971963123795295023813678361178903740505622951001379892224137289901793952710187339659238521130025329834022929366510430566360307046107803454336961745280771139555438016765061958694312549668246258025245819816916846781017817427443986472564621208416927512668676089283453014672965055524158900243433934944059982399245416430228147851996217273709398369814326943783957097981239067286764071432814509033000840166996357991835899459635247405813679937334011579468331165226111230144900774498010729767213770458755578104660272889743161623299178794907523187233391565416048132284136524734323856664215695097899943515425912710698428106455595650803022083795372570739834680536529880291687982326064886703248005373380213231105631614971297731644784632445197692782356514244290832411392059338791571409473751805322143535285977157559113627002210145341934926988491361706843723313110179494433194381440500816313674490514351475282675920985313950848266192871787749884678257319522517870870556128384201181445988884840387564089606146538221297395531731749018133804256264557398297764458652492525997559598428980231351534370978679562264415103063802951404755589760098539316944207120092520319368924306616190651632266766490298196909582496968641456314216005310592444454292154298713735055003851460540320132850648018858393402392298247307242368864680021013899855468421023878390249776358274456791455345801662699720180289405756354993769859606601107630475807583118820370868578032088593246905660192171271589295727156610673179434715751930818359223934859959558994082998906794387414684594873295815306333072099986667451553630109579299885164047954232315742595369729281925976863317347878631586280274539174791317287710592102414756314127045806244575702004460378744380923150176431750165575013494682155364867478654500094532434780065012376400276144466109566447624526290622571088364678259356983698024324537867617135762615613842951555265656131368161177938155932957824106275630541598776075592411916387553613870482426478353337412838402232173078067015613989889378006078185480237534094813130059840350099561700457670158568993344495159263798033450297308108314752056940183341976706776451808411883365591992273783282647432198608297937978747122370231670465805467938804684570940320648581073116619242358351109175913108663050576325657042595949121468997251257391544864999422151468570297888088589448615117006854129076212644455847462633278037877246916124689585231493777425180139484010372186837140407798412038340781626426062851619041024741306058072943644949355489355058948644038055763207434455197341413200373588192734300983868991378814238841292124418975438034798968373539627616469524620726266444421320171340288278247296943098372039553179275680657484755106587299197429391052570000171250474170107672537865426270360041372759482009318775448312468910360410291221269277293268622732511231214595670354382658203827889898634286348254754456966399569661338264748255817680020706996408651509411863472930679587009597551385976733612847990025230813907296158230437450415824106282207563786571386176056243528150182571910210414328303910352281585576058095918911190379460424883836348546143923328093957662392568299871623965508013755550228883287660814469207048888575687111326054996285570187082514783952996658301307716401998183010842987021572403159240839941035893370566223372221681836469116330321293842088945874627098157479368245990582546726184310417180425567513164009619267606571868678345230448791718879633688786829402148311726881768539775740267405355796597174960939905000599789919431320472112008525784644667747417769636142311191553064398547220174965303767505356295780959448653425931730912561377090197590137097442246997541910044072657719354679419886603540978950439539638650729775886611543381002316554396105185636186823224005510897936121995946051265260144313428120273816333730653705633626091386953284925084176003113144138402194365226926770606196643237602209107775538426200685893074521918095832330908997563339344761172325718161869176230484311065142374998626163001651251880197922436271401788382651199525955398291004777007852099544249724633780754746176967529838272571535738495607107508563293712366257267807447716465609582715747991967484196169717860345788144861327822650468150537792529624064530028346077433065136815489759885122610283229073644462523121932351341689797846511419713600521679775325095531147518715690213388779633787017469153520422736215498950533990805138530521918057298652541472553442601620015024541996264122549062132319315413159186538853478192781316998937588386473408523065146953684344599434737486737387427682708311292248071420537020694309121278857051464560261575118339403494889180065417118555442810064325499052878428742126926412833528783344190379122949305415919033826051615886245996082123291739235169500077118078753215259977640912564866873644172511028825335280413167814980053065294820101839735092320884010540929601331360804148907436370996422746784851298656916183158558272614673243512394208971992397727730583056015018406351765813533858717311206403040812411892691617986420684304073453921034461724172748970654003030133097401547044517335954382081942044378378033817395326816351146296439062202567612552737504823130866615383780724020098123719868218955507649093806092992909255196811829129641347078135904935010561443222096413383430849423301543574376401501826503002779660477254291464719495984593037601128500054434453644968580288699489161328037780308793909216685737687014233204172726611873627253423492361952062024051951748218344944540072047898650235909104467000186714789582072002155889241865877403023518061312245989175608737864337261287685444644163722281987656168707228608775474988951575258353176971795522573140859130687348880066216448341295837114228026302554325062946445065579613358712627742664388719392537341824154389679093046106291989650673391905369375020436976996313548672108968397653087000092615490108863830508618545084543316396975293913706610702713413979845424061440968673801269113543822737219026070529953681185814214588529459943145407163430750330439587812309343515820337547486133005197491619313021234008918755055691951709271587792014178680359466759512515185997916327381951184867276114434384712685709594842183418881032354338815005301901321004913958796004318485380439424876419980581298070919757622261471616584877640457701306756164742086722580722965571787454773416958331013657556707996747494514398815996350777375365640264449915118879936770617316860154644955117546629866315195512085609297905948757708367188003516363381007245593105426916380504475513543793730339989162611204174503388185550325246274494417380426090128656663207995355836722689062429807423573822842965788004338588828600444447291126395695738519463971011620336669430430786283013968133133724111087693890095625419303726424475888668510565743637377906573155625867004303238593483939232577091265757227673947987436988454281865224878689866117558662432581078467416748974687409640012228541734482517726607899012165631655037590758596838758567547147071103777739703810723200431939926279023244379017669311358216244059469953238812529500795191772987321244918341849468233319038362978803692586937846336674185472133783910863338120026155659599453825302277856044124731852151526851748696108227680891287049846252722399672322729206846572661701350847109348725820859385325385490406952095470762643756446070135174603437315477618554228714608309222779712016869233432998131506791527283345220410252839739693638948962081558220532218889912523402918295926368081483173844980147268105061943402996646705017013734508930767729779940401437311782320324355443813736387156644482625211975742944017698095281138238082208274760862841693894173135734694926137478426229371292678532369660440860610500497332654387384887387441383862869981330875362479833672650576884112220587261050618357526078247036247292384111888026417337927091008341220817116959006335350564974209551493893420793632675676549752455364644251489659537813695667345630126772742870983663683267889343525265745465366492375960533707017354592665228515453343921564500051072385998271125861206363272626724687870748803722978637709977099551930632741538203868893983586782423160974036431556851269229470801875180991492268458534449943033773589799637983421140168231446305039000517863360629889925022848451686083273952773066006945790765656118968436642398116629767442071404492763983221925871081187643894813250682565334704219210592345092519645110665994449757902824057873249007617806032109086860770678609850961329029301482997906616358507104249797267293304222201920994345500721065021586816025675368997353989446203711526811423292857668186693945780933180072834416939550544642000637423170615185381227110535854708288475359376441752338398395203282225959154765595505223229620672354506209212243798848789090133201852967309970758816522514018341235304625114609479847421494842920752517639753087087052716700790985290312163921528388352325678980144469787715535573743938250853965530872042234817918828071272012313730390912323434091049600751907922657728014740890151212148775989271324737323745045176537016374890279838442990976904871357065359525029730872533703706012763015936590457568298943868494554250016579515661359703127351141109380754122440089389362364462542370261184528906261503906305705944546417215103616191240211657173859250460309881999582228580964587101217041293607619307471524920624453877042344794137120316748410276920374685100745989077006873657140778727785399097470657656377152352378307237956669442976321235602569195878848408609718905544888054014661956677794449262146863817892381654282219342446451532407818412267700962771644765263651709741695096967262501863684923153668756145694674103878697664741452449216131295999185735129451599114135846086367225854672176562183072026637419386037100327200501010034556364297111519252004376116176230477870187903979141439236343006043519193012890889494366256717591335232391613906811010102411010384158046874559261762489470796823775078687159213127303846152312035902184616832863382314841570440553286812177250067798479583412876511660485726903773937299443124780926945553999646679448839216878669376589547956319596833780078762320047972592443857055415677569170684423572937720090093308819828982305371711282827696857227899875776084516403945399914396030468147311577215465193942809155883690336060719315157793986346697517760125481078704337250070113558679914254538435642582759419103515017182601623307076184514531142912556765504880307322279541727050221893895261619016683015214468356878491598727321363414610403773446632654192513134598560058049523379464240554238491334282284126078433668141608559631929751302445404749275707517187117955803067286154096136336404118662316991084821961005849205641984413691789726801239982107845367796231581339516471054633120737581025358883954855868931835059198212559053509467471371584515240152274665373491334102664518910459353314029087873968814797236367130683574772963794775515684186241648432556063686416452083455634705913489605024874547762903242573388420808109222593155512287966117737798011156986593699356381256070586492639924738629423509020960573558905635752357619158607075888044853427226484181848322085269028525916845353419862935249759008807396132042850906676132430542105984767492333772385737280250277838556176631036353542803939354935764906118220621416965867291877790238967809922677969968875403125822318818584867523994685386765264657179688111655371193681362320742165501925283014998442195092713920871903955185917616268162269186640385578079192724231225206946598916784733742257820102230370985061096642375921663775093872550798490485048292776017072611731930649483145604872622136710499046182106044317721340098847607024164172139397507597886143897950919845016192125972173418332950400404643944487244325615457307219048370460910210458010558798368263034783313098705267237070970146321858791252851407375406461398171584971215973240280282946991191999229083288491916418564451094461881655623730061116204276657588724618560561875530286411812083453549450859147398574588407021051105505311794007840594660933982874807701610936629421494288128089098579734567059422694252575076081254940132702857349971744904135231158082130244447601622389747574266334550940605503627983870842503371327287454074268252063419485778753114765220520577822974990286852242428489638068037481656776374779612918519320392963052759435213074423227375235713824215724268752158155856169980699239442442514899336430068082615385863403251291357102554155152629789038720037255180079280224024010790207733476708946182677937224087165994047698281445530491361596445740197330597747542773751187843967846010518278255688983483524400147814475447347868385778645310830097200457707550704475126838851200900390769789914522563485973857665220590730313410570921924141430805904313877461349360262662314476471874825493863039905344011081914203577041589739529030223293253554642138606998307171762586247630036685819702815599012824621995247822306019025683841246886071842054814201962198410677582971566182832003742942753260847015907337591911793774764254618861110866683368734171712432403539921311884259251876476804928195129135019535288708044591787534372568288855781966800833655161015109096969040009349964894757550750847795687810215674346601545845830969736951829092509560977902043957943814918168142946039921797516101990454320040241367262640303537263513639166574370367112655211762087731645873729126659016752291441540888878886308163438476333598363232410986823301161657094982100641473195923669973089031729680164505276753481423829486239294368395733136494347811618731414756797512791973040409724784799015465771020931222230003787379187936910510145679398948574720833850062061725572196648748434997110110222842829526207498793767012664186598183956097132745528705259266629240718291473872272295086597335049947824484961791969876255445635855582378276097923612726577395685178900543462693687954392720970650781947081612009115468316622732974624792701538788736435825056007945303845907580099550369232488657119045854617406198712927718943794037755669056263510199593639678254891592179975718986233502452878161546588952357363510705355571843047718931670402691661066777616352568779430417083892672020328760673651992496478608637000848115708478355166641823843857528101789931199379651695926886702263837337822115659877689589355675311893991859561276637220950757703115240605101032734044994962167084403795697655747706122422940107112073794215012659713631675962681615500307577629363431458107996284295155287762994866440866314797309406811247391548519378020341124336807376069090285354248101631342513247331496473786963674444873947118844223502322773629783413299595725601157247331865995713239168119710927827354653215068430573810423587712775204698928056680805306541118839860542765149317214336271699918815168453973043777333082752798850356697823108806276912608903477846308867177622783685975841122882477869698483678779280422212305121845349759240519836147606955411993086922565983990074934167311248554415914289729927923445777345825537860125295652837423564526001630157595364160169242231506069915363794083332873815502116999597918245742323326698766294825093153948387369825292557136655218843986508810053886176794109717772070785475571500400838826603197616318787255290775388684488822150710623412627465943827014707853848769698911905769583024048638774382990572712815443190254432573337276892771544413503079882326020488740786516888231211118311797182392954266098322462124603872237736896280224258474240740078433763971626767563789483716733396957981697734888822390690501146502631837867323804367940649866056006528218042685498774418180216313658146991271596782758351876376080297152658125491520303629250563402324941170276273588620783155229869726959671810989897267899997914783084194227681819632133445751719526329850806290250226210900997642942459853474407058036633075795200118185787181282309670017424179046929152831650292648244878123248295821235041079370132852097667505018963039133157222662795943976074737327026536572908883478297373917682985082397809909085616864573952975098369949121342517453863729179584780738021260793184484952137289030588269023604209970760783639923093648149945851845390564619447021660003237431037701365278502065910625567892233683859725380826455005743378136047312020419017844529450784526586139405416785584313771733048974045306456970925673908661172863941727271978332932559754675407129656108147995566277160480295737401308181405470193104241665896855932392020254444133914150646695824547050520666872779034002203343886749691338062068244127590219939894997852697826754781870114667538869069286159357968492662362313026131536977510522928454907975280992352044144483717530316695014953303100256803038725226383404492963917821911497464143162731965562174784496422559234083577733302749414000926184961413987577292602969367572138510916611171459134340330266621239910570378303744567018157419643008229216891854158164378723387044595734826211283856247162739139747331403138963370032590254578206032285843669699063215609859173731011038570994150144555091905144412606728835439430205834219188508366589666310268263909380726993577556199682336549847307342913662644857614314136267423687123201949420996211156671961371719016574377161730340033813483609723287202294625958903597001230517290938048851189011037823257689959057109340195398967213434851387006578927415504528766193831986319462613417554244679093758094069358798204197249801055165018308147556023955376113981997361066601175568361896250037945078727525561901432682229987310723869690839056232604943753725214104396901337848167136233163959795818781822869034114230203409113598453425369109940656832570625435523912811648911444229757300498329615496450232482777691081634306876749043246319338222238859735855589667214349472800546894315930078215108103208026095796586612531922382531521712796452069419802154917171158331465938566165405076431716380742392238864981601019222050798497889964744883979675045946377807631200669448146055666178366105897608710786809284341973039934935592615532758894600367145470756667265225805164275664007224367061098873819516908931916576573089282596470592744833946331128070330406641915340084399171227899632561071767715381856491562496103698099537603841242990184245839064799691942274674587218140413698929067017272227745713223303560276015844361198766859300410351558565927141610728109686331053456476517242850019982378999766495387742764272299626488938697993498097785285708806564748514978996674908850172732495945736852490112080545540166921545881638912431468268602508371789910793169307291791173007624387461594710580244989968248083654328554640187658322287222303965142042156395560847791884791618894342070907647213619562530302971804577362673565717014071113750803597118754511992201331871953996003219773587615744178345536075151654321693770735708378542177558480382378302575308782715542635565463321388334767173303120034165125668765284870742240801173321245269508662565457074491284182428102073151275687974875179771230186285997304916503689615966066221006785568039257777884254837305959837395931013498857379231334274121160001663994169362813620379629942217242019682320140454551220007495672184868137376878917729875046671259796449497497051605260331064472436934210502171137912800939136619521292609598823384630797249401822861983097577046732310022771568761910161417521988287932990336066828509105197334865842156420767106100735946741628484504112740147280131596402253784717343196613116172047599330867709276468250579969648021102772784408278519940446738713426952087597653550192310911813436852802545970132611064854113895743842612388887211778352189323049270091154396757797956213912101895414568112078877785447897944561550812260210975900209339141590167706971437962184690733383371905136899269127409484813258403475466677544794901475276789342192295142085931806797857579122790749327677017049757423477148177305330601166593019129105309911692560506954611695755698072190199213137042773416195611146678404854244812897611576853917246359156893576078836175884633383291673884636078684126666205300496763334773728044048805086413656376319579941920031346470257666034007700853559329244057737589058253271035718517603921379156045220292754042935460194290450566092130031114673900745498349811241544029894379362913919875923707908317219154234586518700820669342228475079094986138107184958707221215465545675019502789894279756332551602395595688579666481888655103493091811660881111582062944769675569841173387514057710983254718394590312842846938705229544083162878523998466928952564639336120583267961402097974557644703132560260639852092712407451957658559817393565639102800607656609654488303773024855884626892653443524563066235565860406162040556170489278853379525866392629705327955045480508855982471863011343447083990151993319942258343319023892710028842399712030716120479515804254460890500073563172774430918230407103226894453342815999592983221466559896901424819264100060175555846304447836282083308937002991365579571592000434324421177030718578750003899903218467361271383368219203094724808627697418058656687943013215557898917671985578449046964749038071634656640444258639925190178298954021662148350278949944264223593404173109649664048579905763155174673256473553771959016108375409999216347518093176505359493970688584888650597563117570433332388233435989614607315593500790459764065093742031264131025213199705590569085741749321562533191591401313340124550285372253746103535290139001018024200367973876673051704641039139770420510720784151583545962372101607388199941128881836957110737496718055172885950432667825336534836596723351824687987149725600332167356116496851291615866417652875385686654755840820400159778707931307737423023743928139668159473809086262697443864063440815410366187305548911864988776984095603711921559364059743672657257042302492592512104628262478008126906974977136115922073695081506742582779995569710913520473366828341292569821824060019757192796636938541898690379645526325879410680402982663651179433224535863186899526109293882796395815320948075250119656238073073221393936724955296875180024131731582483245717048829255447036234938983514425522776575011981994211431288816013482066142126398754232501403390851752646001378134292295015806678430698234592430586906661189024193436812724741986904810420975994716704133822859294794505194746983227727233331196128213446641526626692931875270060555647987088607790985489128970132960264875212155408728184593951105623257174039059662146233228570469859624867256271002822599119354862996885373893680740237929173174583159397336840703861749312237951379977515049045637629078078175037099114668604880242555811773224197179929220285511643079554731961631465458022727186885836589833769936288747547135031528931948638548642805072675057221656186627783213636459223184822993097409435598311494921474935710065794916810019805092044892307117060460766991143302796680990923334993616459889056144167806823987027244378145741295223498458328496701639756521047398708530058339930062304239054331401881934232227747458039264181960145620279604017544481742893646539423645826150501649991504584346194159293223208109656368750831842217599986958277106303612955447799354880315448313302176191138085857900092720530461005199697566692185327681234801807902179648869745381102692418135704908011899978916251261202247548007749537533874387050807721066667627729129352366776615367126359646121276555997511252960300354324940742109361663321199373450469623881796086448966939032682638886739487553805014362004045911919654430413068994836955347213330453218365252682935065447200061130818905064793883541128078599589535205410499954996196672089526190746635062875773698506646994273046125728869613849650494876148554705077444825364826738511116091231670384989484806075878359168478038421935313332364078349798422288170879002795460360699145306622921172426621043954758992206329140471217248647682893347649498108934131753027297037436282011652047404996166201562787122439542173665890367895739064900027800174001326715201728212478000083408759056813915207771081423350375717624633090183495988477111994662709901556017173141546470421679817637403904007853088417064485831041862871930351419977341934246947545526494217473102633070231392933246613212234894325459938725418849327109722755271841422617582172975216390590154802225658659434850022167769484277998801038809773537584486171799026810770959584507620557390984305004648753231423198096530736773575701279152419705710116828236923800002214956848576475031388180041444704204438742594244159039552645512834591491329562035979128705504386741283982634515995159838058125789951063530545668016204315428557850381244357278025805509569526015065862483717393677098150454220507616694275491464603770354302312722273815514591862108331046906414708620286318340831481439430760970950686258718343588868029889986184398580291745245741338261877979949537369461901193069083377328877687582807470514708223263986248200285832649818605484107826133701015602172876515380196983954744582693581149774046293586678009816636974089031218870971470251218526598679851869876697647107948918029798464900637128270009457403687759301049574328525917919556536244757048551604969920727417909837377815127044747055436505483129777941153327272485650373820916175245488891224425964847679881299000965727808532000988871411388074350968846885569072863424289289277500641169916918615086472818821972631163033906708230848776560124494564497543566442890311437496308507563849663232503590653288139475217679091505901123280905996438610675484578250280393602467122173749217253316126345729208238712993543266769254984354769470082291269705698228448444088018082969218370392217625136565242237292676903534487790175912523604187768640624828867086240174482003718736506004269615192731457037161652319143110698760725154554159058022231558259484246444810414466809961928392565231089438259304254047581247084968409878971352605358340088747435776603517642883005992164742555860247508610782658668807745012330150185515143979001389694784394634158774488270023603572723888015298015697695754251425868858139374062013828769253462227531869312778972690089774781133956454914402253012074876961304107730457044031096795777295018766585888548518325403129293324463538518188004867723512298535613889196135734569901287479410995413357656976004982219965984252472491425643481868388779707706635872902680470086968582537130189074340631109157025818470982594673566117701624055974060627436117905072126182991438599595689422591574107587355278718438893046347873095614618362969392424061037938793974883662001757132477744927001382333417848035576624389500409104858242355568107340262301491780939388861124841786227636383301511513821589399090064277248766436226016875955268171178737801769573053084037880829009353840822045025240823567420301117361206629566451525706911526548761925741246156297921445481889190362938475628789358332594461192272402695277183892647652023039462821007249790513470087036627699631689788243154086146083048857121234698023895439542793263012378804631386830503105146990952491227291113062147055973754093456552952445208317145093412347045265024675109686886628329611379724229488491365388618909703242740887083656263405160350612092222035584761434115094781116806953086496594114467759002886527140429511262425216918332392445973447147096379874283421367082615010179081147763180314520847506474607501573485173424420764196279203745976904923404808206879192770455678366485734955027045004891091342563953501017157320591023160455945955860227528935926686238087262358368644810545838647658792062084537515427300176282218863051218945500281091792043033428673372986388351331422248366230563130765523540226480144598445392042090259497297860227351173689527786235415022607258689424210180580297754674169982885870675835018759146307125812074698198354393593077230324060498974564491365302065361633266574668043773020573260063100273670097557007808798185940937148172784333598840601027314261361548702570996203737902604803830230957086607888315904057494824004205015820598678870556069014825479285534284629253348566338530474778697248909890836716339112435877508179253578897124649164772230130142183956976798860102607334298612733176747836381813829220356127529397255079328197337764082199949842917349469651969260347180281521800616661022527279294747803517645371417941968577927525436487087896429640182557123380606092117782112203997499954902217934180218910448048988705609891117650976342147179531203305006020743215660529179010394417333636519199770461350631770854479313340792394968097817363850830395159067103769554801517391826289143279568949252507930093068843289028920959572532832361310590906231822789525911891164371310266785119538689871186958996113499461603399053758131465798734140158742830577270683738380957006222151588148588982981711933303105799009920239514892999835453855667331886200589718364848635617234664801800527467675707270836073860339044784757675596717180138384747127749739184036735892216762065219294235842473928661747484438636371335211732493260146746780957153503804440413585155804846641354322258678549710981282525246198877832096930466339083355611853892985187221261929547948768457847182651730066363961048509730073069671158662924514031526337203860328812148237633325756392783108238356826691478307523079647768248849999289708606348075782690897521681280800659932072286497383103080699644928113339807617191256906172046671458706495335716795388385253734703514572791394807464889474730222272589382247276207608662438134842113056056469714143030552849906176339612336851387217001164971207584720224798333795670562360739860817415557357370599354291460864842190443679576683880527728164212647401008456307934435437584336339168488403628768080047869538132561524355836253812189066241471658595093966016864970046655652912694955693981017802340693253499163318833918302815398069431429794722080483143148285099373906246277819524604154535491860816372454319138396322046040583307672354531864359503806405826777361378967344809459379192581174086868834455969344283490873324358231080562618025861782204170385773496911241330508629965076153308623901997947211825225175833946151431927131444838670931500877509116440826903868244350097364118841863819852489354217001718959707071341775065501049058141128090112852934308280277335607793717316778726770758556534950799717956756548909091551857693632369848264168258582311186873842636900378957930723186057823172424970933775621054025746795950296014762925987304538723544964028251988084308106069426959425819606201357258771519165397621341687555182015198001523480180628020500687590305185579957299267811399041464847515965815562581425089447370233631870832397969507422257008111551798869667750229613990506043569355135176947261402173431303436045184027389396733458953523493137264591402551720271802992110071166125016910938079982605670533447762779441197574298868615501690033350404852585311725730185315136149013326834224853094351881139768446261656056321517457135117701592848625782548669817868115451332645496376398314996987574032256658353836842423390482243039999093010791145737247446573454337594573367781173953730738849459715908780847752281617093840352851054966099941647685673835863580638363884695533684837142860329262577193828979861274876978117938033784104073970535366097015759372211709305946386341959273836162855886046820868971416844795899627366115141991135419107632666933043854373391117314323761457645247092965261240042340719559184793584851552373536962244654576695748091937413007631534141187171522831440189419133557241472425070624215508597827154205651941305509120070804676905911050480839830345880058921798027163894511513311427248932649792447399117557364550552711008433815990397238695921574658574251498474076900962582119022780259081730142392383245915019929550155320715327170367900258299225931501430991679986146353998393741789271612912735505328759216006071457618040350254776690781857451513420398267651293686144622731483318563343525959108851281866792598399504139059111452500069279029737828017266170043442727844955670124265828601695836190752204502802085537429056192955288979000343765569847683923390615444974164954692429183036038374859903510924267206481090805905275067509800325057921959774890315049508817741683479665386981722325200075281730393421785152938507803150514662655374638488248752348478076625144137273982970484026646968463147705362786926940414155786714154571246140079222810119533026073110524665654676115947850987334968164061465030374622351359067691110711544632056711180903208782423604147927462193573376520708557059099056387584160075767467974412368466828600969176928000900859733842000046814834872224343166868320755470871306071126634491896095504890190064155868835129486933990446003696501202875176021057230777039968749434340448927260379347573375349294454481086685870364644488027367031974420645244684857794585940038627556384243108121679444606981891115160523639606262802681539250275634910481839658274449180161252637133880110839642873659748308793795224166739574467900443549003331467026778151584422969517599634696540736075063910565217009944681682738845464471610309468147101886044327380920370862650093273196155763990385346115269730477565991861966026820530791150212100441769843579900039528530647020027908600503004752557562069672073887395888697853896214684702865632424631147519407565218749223958362129396455182817469403587111059907463409597091227710328567799819442018199739555054398945562767686444784533809884658178351385482157431335153372754589093295421891691202825307404113958398657465177649747417880000419556373768766232451325276519171189823213858985255350186882964014092266297256586251458841275922923427765605385630063738921615270808371885458521354557671401020545999816547102814598666034300988211882926370877490405589018595748131270674690932088772568945548183943094159983256943049273968995654256145910959146454400924698033118086795420476633960103406029845622435885657231787199928916085343228549623171718070383314016964874139494192855569867739836056886917698418272745244949937427585613571944056360936419850762728141578264226211155321788042620507471862901493628726573231460867740773541682197019762480489300280835611408806746062143554178937177833324673335949394603958706575605440018411015037674338420704187139896062677223547361626411686475661294787862401108675999399210113243021819915005075993800192076581587329947871623195734374847575595889080337730178961168307322776345124218158245566330097925948441923295564842653796620103701532190397491163532126700078092685536679829554549820426705185508760865733496319883184015483796329042980537397173472986381136868040236039914030123828081303099093594337415423834930989894774786482571879211605614463133594407497938684071764039082267071514110519592511291575989239817553296558643747462927594740768980103972384096315575536510925207040518591495673625149411288406193158130844393842531155104200228135905742533429122135418065447704186590837539248596062118566542722091999629754422596669406815042916212836939330765444497555875868722638301034423844330343485913870372757988856394449542878925353645242320626101858985477562644132952646821965181628965699998800766212756000957281661580786460178907926109747148878510086262003725097428628952495870689202575110120958224612469851867126405903047602941889299863196297781526481989616888179039852800240273264113318282117563695282449466979158803934601501252435479891909616618978682667230420678078743115182295717158862089837391170473224234499257435603582715423595259455264150571714817309633848433886769486373689907916065422565795796326102484678259567976966194051448990565066809640803872380373093388210048113143123871593124684560612415914353214373550649989406757764543290893039778383514332075612102383617915860145610721142138687066082102802987476379991569847441117508633788436761720719001751669262539023493486784636739035212080151582221579372429962636290080760778819129533392029482973966207428789935366886450612416517259837674072893143997499019323726366711306724571043285792966496688329653283383218289874614994448474534509905388319951041837894242501348153363512394128753788936701109850955587219610288023461674263404922909943358541878061508531111910146321943107800286252243204890637378932240527608429756716090327057964161763002435224669594017251536038885354251215608326236628422998131863191624000541507045417852592636115718632969407863505715870107626817507084233244450561180522292906991072286674771613389513623412066547194120251196035036875648588594452540115840943779282671133147161051600471973355386659651262051525492998033453499312503974408981641731244370039021486532316044583272994154724685810947178063908901686760515631034872210082570979550749429060223097108132261208464690952929870712657942102069622600016509872164710327033797665576551415119554489136782054958930528174095633580549325502922076461025319338597009418506880264275982713134072783579462391407200599375944803145871661580249314094928810657186998534239632589066320942983365812772609631200105300546565799085110222249784199965493933714366185339077928618700893597293988691820929440498907024794408400576977414421599015852173003141926230604446940573938050645104159509577983369843065954526086571031839968269722587402500377026370737548023632679632804760264232311775130242932824427136542419064537962301327078683616639565705401596825923922055154072695285610778878893495070955609704261199779965073660539849446629300354288906095035637912654195218397874557457632219646301062674508090038073866633637769538128956691983335042890948280540594301550786377484051462911809705062518117462327309042221730912348448622691824706123265234899324432448858326440389076249001630634882963805011000704850821307536672374273160865001155153676064103980716813857024097010204869098513839559688860567132466262750114633164932723935215926815717512471706666477509617624051904478756354436233861088103480029914932705475524055293434417009962510549220658430063517493573457567805774835691088720553706921503481839643234375331797864595250167283917855454685897615700217321886451089659275643593185249243382640502443309385516118252879863548690066699425499537800756390321208668511818120341372290382885461743327717877399145563036562152277502428615681677177309030041601760253661594019346590211389112591663843036686570089744332964704041210807792785849886546200928288806802267722264970797279032230730835010755276828070299659961443380380595559799853342077503417675421843784708202185222959285282744097370586785679340511659387869126260391901922276091022185153617913227234595209665246217525744980411075435551848077187569010196919328711818885408694498651055687918551854411787912530018801502436777861445931186938765195373928476183924437151174793340058219335202995304600516462495190661210393962187122245803968450884213641836511450870125840093624107459656450305524997944343313680195040980710533567581512588433679585391009938656589662493358287747611688739622645024505005256130633344332276624001683549381858041365891456263575752648188957612387715447761654583144689992567431843705994837965507492564672040714858054904203812613852786874559010349365883623500048063414223908848024719395554128669013502430593140691741627545356918667781795465855869431575213687112328638334002799352453940115141293990543964951120290938994155328015263969469086887907491008353827343155056095226818889721096055997652800915293566124878209960295976190633701799766301540492130016236837444853182878667159517977188710207704332844212203837430762094928468982179611281416253802018959954426013804335954174203078516042928552584423800846122726895169672011583285082031907512501992863193351017527964615260594091059812069098094196668130655580154890276708709210155882884980377375899021496619853623811438327392429528864778759757660861128500247353853652407433829415229716231255191752471431253205743245574560475444505937192229951793149550139116326853459910306864219653589921362613939242911033889915164825752933080608560619019232143428060917516012993753915848462970146379807890261825506353385159822551521078386466310266948852024335038118623072160896556692038720908952382178917386791093644272267457477687601297617017491318312940136496075377376024081836361357914810905229458477716851409460920387341734360766783607494396822120799057075848341437199438312253228310289901465798223410088689180517516696910693463012718761809506498166327291164830542341244339024474371368086412377105621063153521698173551895752714819073090190664019114330203267819116953831683879819733367209044878594726007497143004591513084136525454206512886758588003058332638684302134640608861368206866269550312787996477286252623997247428159348085945081656515189245776066325848699966041200841012066771387306261264896897018390853840182895617880417939883446236837823137547590425776444170505382451905030590793296808480062233052457435606842984003554824395653941532371471146082208223530111214986330354545179857100755695019459154059300881827648873731454828618818145185969472499598806770841168219659349825041548230048024798809372307938732108361521399517083631196039223739064890560254588431911677510938102592574276910675591037671156883608029030368736976980936433692794488499122774709960241979341319213794994489104530044016646182846856365902753948994900633318634503144509283399046297967755057353699988040226973481720185060660769775573299277442603520338081874260385800150833394556210906774608003269194026784510265606522174128533475551875600270031554002562619385351157375843822295507548504083506184661158706773552935107313826001299378679961901895820786603597128099558571775108407449620914535338581916832466452885753650861386592512052634814979096116431592485701433657361114609542414024687733857349432207542455025243639649540333033270276506114940525957574655494377160344684124768397964184847484588647792670111942406551117687965298295836309442359247234781422496817878735239274294103296453573977563940058731748810956539252047517641530606771068071013872434932074550971496737831788012865421952393613426247399949575227788959021096169784735836547609481602130945529650283986666764766714497301824969406328666746724322166000671998610508540902841097897231268234204233690702062224996468964746721142414966808760488088706850186090283892432451668080457496653599295089876886493144290020576237835466223082880033505843107005641282034120723979682908210213651581276778542058732878308989780877625567310651155062859779811602023666668980132513430705072167164180977929611943630826036848041779222353071132821532258181477102786280035800685083942375187533698070856816535738984537168620547172198552482739459829254609478967118568192804755744367643379622466649852616090105674606034997414889273471552436239942960289577779363420045410727615786133812902803493860329049287299882433348433279983482772132418158587686648513867539112019064799821107937906361591513740049883752753065216366745308096923470061961844961553165038404393350452340278657467571266643321954425141392370247731527452640167242288479034825160459044614716262897698682553429823318753814128961618804436603255584811859625108889745591542281005711338710246222319993225205923463620383812545888704341236154878458638126012756558462533586374808803312395393019671677010894303460272459655703090667883633159185567308045883368464712313963615642544420156696509721847081250995945357299665016703513771422473829087256694012109063702810950745452706674540089910213725257338574056383774970008441151432392930145040967729226430580328544473169499326224282964535396371985451109759943285811877457614117867671827436439751095301153282807865913434164360235560992047680250021718217855247753025505328784808116678595345193006270712834284510605230929158358324061889665943252598844548635939466294017677854627659603794107150867849408845040481334479896816227989001314312994418449556292773076154161503537940213604672536672650955684754745784288836398497683147325590857330427897155564478224358185843069550623734737247155168099995564609183494556857127475730606504214338277812741124375619259835571596789462280498313517346276180656866539642850030878255934246540678168202173931756207983563697681513903036335728775322113457184317615575818384945377880007229224070281741229969901458684022394739562784686329891333006643643385126373584221219764536199270527618190078498868391880169161224621335975467237994065952848697826174531061285686037535618595304589984217363076512688720519220817789781912223141858265502402926466957057263135450528928775778865805593418004646168835202314148967713902151645750421180008438494682880493397256220482927357494000309223836884164982741682901207856099876149675183479226243101832198611968867320003891075421957842662943451097133375008792454664403282099602907966327739479501869163108875157841238383617470786248350005185474031943023790609003564666186989094620692651899145369406300872984040964913414850473285097834057479078978221831910335933564016332912266827058524750915833119296030319516930816296406460928186578234691919699731331622072060015925153761950933538805952286422679092354399770845749730129626581670991560314534476143914310861689522860744541475755877914050206638869692438320049098788619977869542835035521892896665186891215342348781968502119854845288901577784832134193908654049059464848777460612578582332668595346799740566039257949534442345614325139559619992839499811631113592405524831825809126278340216224754497642547976876581615818251174796529317191750391686732849323970106896832065576916386598649413920034185157659592052798886736454999312113435465510289244978287331202959372219389415979389857774655620013364174397316904333951170014100762250918120330455250622574598437463511719552638273603830326471992207855019182004975633910639190964749626028995805872562312434677090055028272423743708865115359698427558682137939947035812741385704767876083384171210357955872086820358068323676604478594370347619281893542230841936897166446557873321640279702525351625031644583616694078361059012902227418618489200375941550583448595918738260097470996455233742662582218585454166974634791537473198763194785200870665093767106266991072437026864549829592593684620770199366573899685838856992293298336178518060512594715405504248647904185710721105906996802681475821722035178199248005221840344828346794901487243498969894760620481533942528541476945325722262527808461251233688681225869425548408333063456466732970831459666295041998131674894833594574464893419080273309170872040132935399878173516697606678638901170955861230623075370158978786762854710123516201868908069951965950578658915319252703622996945328840681499856170629201969254560809560888307544781742052244854217692397834507754564190498580032713510842512847355994756618521961368539852234876661301990977837351782175753788758208794554300235496213798826188339547530419109518132603579040730037357578515978783797628338228046789200547732546544965455913314625674884662277108111796005483912232701452418066558524024242443840552486038962715153734587968687554992806310215813758647100603628405098130915703370576198213642626643050370718989388156005574810508106084086383418373794006562909919579920488520900510252829562916884273225715158351214988351728789493414953256451357169055040598799947053221593188763301167139232663586655091225164600383078320175197931944362260360887103546075449120875576045685117779409653676801006439150030474853908456478596128137893080904164566893833986689759569268587198774069685763785566986569308670910034045959235845892605860331418590840785636120251624511832423005200336666945912794112257609384862267964310600020728277757631218214356462793468120646616156597413115203343104165942530242123884866853447801025990752318275027412370596210644474918371117789142752351176405189096579317820814365027603971862478929103055999491565781447069204113516448961124465946264014907813594782248876586924866816179899736272735392236609475534589825964529580400774760021168975247635835002547190970330109492774266282445723981441068337716561776889683834168673822494906949760932800510951693560128414619263088964474186638549957934757640553179450182408963125426563042912735507848883371796272227941102880078863370394939483311534269798631600286452810804704059210786022931144411414344504869151923338813897264397956680798664047064276635863975551046009532552015529453843295347790677592577816453885577400347484344535340650499286567107581133449679303435257778958065667471090502696033064517489018841808877112302391130579085300214299561400714910038219346623975817468230136814936170839649493041924551199464570892054136122589090938508628762900663542966115027190052338063163449514640549116543688804335107499995204467308617056176160332120193172047214793987799800128085272362205981170020095094297722956901613881670544826765884435073852660540104364380812959540874753477256136646077139173516296210205204766139508581424177886413033528901444108652164730380215297580934602314735241468241474369802093261132419885857646595363861996995197674498207991991254437991994237424435415525771966300248348378408239034921146367474084962098053245958614518097487241127240421983833998697632110983843554342495168840923710035793223711048656239642711551536235107857037074011744236803328569114529622497722918337503444601504231227246004469092672128761088705770686409216378964355100657671495345950603198609966628717381311380848898624163661612682773982665789421114105642303380060758678719845261227604456340804076123528602220312333297473803409213075756227451313266343985415871764267203361640854921270842677943828547292932565240140974472196776756323445518487240193497383958365603078257566097922966226882030406974851530687288422008265041729720369123544138288613959505039036329472536906417891824133162685874680523464331952226544308448144836116498560794571605976282585885289613381952031145228724427476086145941023046613111112328955105573020326216049287089623118258384922154462107300460496434356597300384772414063012854148954217153205972449483499842460989554104712795296555534910255253087651984559942698721907605555639412748373931010225947932726145831676502696485862663754470578393202121504789793310784954288143684286922186215839959769210809253977382954066804540686809770377875673021102367859231166602204940149361507719531859885330122267511670470817285890199116602627313526023687509182332271127867408872461387184300145743466919262469736669271291530143724890246947129752525531390239915915349516713830026580419206109041038624976303273606037092711164382530707015243179009924922040670414832684684827095260906814008105572879716077347211554432736502581895602948457519530512498202577210627837592943013845236750698178076937288889912977106181869404739250004606712973632504250311496906430304547486511186121375609735322242760480192868320795203957461288492804297639491718752209587266229534054189274646760843563329929317543901086423572733724189806143147657406888884710917288409737610634279212422235437691251506777735597984995102804171150039663005557788303699592259006754529734338164277169171998888236828755700267914968166035957745313438877539460704388957425533403209119503290873052583941547171328251880856676895278669798068903755197967587862500523880183217252653661324304358968557300542017811826330920464372877511227356024416648798401581033840128967331724846298490423927076912101783083941137526833440553313501018638013446549677690324173530513125493196597254724452410563429818417896829918782610134351123172738677796355931190228829484285792667716400416537237975307730000347555383397920821875825968902681437185683076462205711855311139559891604015631141246201072404372031506596560133768802946806994891544937830429347675249269396654834756690084951009871818709191275250685362853835366475573597590643034793286203280579980399783810529869231703794186715182009865864657443760906318813591849754935911917822826723145909769933884290120884006165753192706576484651210959016473526317632473329152706446624502977262339064385066787417431313325700368517584376994789093930562075197308568520132252928765880253519778793948954932076936266571740566865881455224554271095736311952721401622751921823788512508930964883310204009797361572181550467599825859007759158119589421607779784679478804685214339213772273225026560656865593124389638563068651427778017885315059009995089959744411975252908100002618417548730305503451260664351173200425551503781790040575169621316237256811574686702746372508917227429856440016909875035838016679344711555435040725778975344377598626977165674988261515878415102033092238879269609463983192426038043906460846534652000037708956340040086090237632140599790762061440272993362551807997078940504160156497882443023372207309768511180044167303566874026127620502418458032308936780466022431837433124933389669126208187253399184417407351821970179322872569167016004456191255527050491959461935541216574314791184767406050767671762264397354758731914031958411602819113583113093943033225013725932731753950126242213335530851078673302811163452788342024753195404237936084909175786198836492756136992107422010769957641499301758974659573381499828161472653543007314023023449159548887247792998049608309728639563646020050137006470785875658936946276962207491767604775556435165482246294804408864207868042469025606825094594024741351175305894642343518913179999597799121087363056196116905827309041604451227584168654569760416958494356922557465098201044438801261553342003852693052881888463200935226737598001875090962338475651720688739801473242737033344433613947823027749762651653917714207025575092657382479157144075553186885634031546639128191486036409138930533751634922103518366608516685656307203684993196617985348452997783535008545438228371649893763784762105135451470442171692315562211661227755641387496242655584563186401755031157542030086346609494372993340094376937914674494993172855838976633965411019740615521729415536570366867160792561921425185724539963397723830143524119112300231871379190055180136711761757104911872370343221426012842361886832361134598000274339493872558339856104912077933159856155564869554897974841329973565332518259096938721812812434700830660770708933076404246174999808365475526920255747990237152181295019635957248464314496124608608864348832760863490481205652666985485842337213254773337128391362675551044125710288482163191393828984690492338444642894425744057986762766648129558997651657711543834973604232957051589684761212635353279106010424807853032851353906068208926549445509043861858528644394405449233423948632617352319136100904251410409342637475808177266450659107887710223163919774483856063090176071563364588294316779667088562095945930526672035440195102121333278165019314321747000477495199347152901703450838141111526921466265635127870408814294232994820036136272290668515985371069251166561664814208554143592155894127246441652934116817644223903002085984799100132362358756447568748424904237590493576394292220207854057095810519609041614302261370709675497667497208023920608364424479201588896108381954887877250210342031103269897792906159013842078996080535960479034045127127849052274802457151999523560746125696121792728081923613693424018924266869328867935725626916404038471805567211652141898893257551247543933502351108577880118873416301251359834919233768074454112100647157392688690938414872289207723720628614793295106164901548386382428055114982045225548503401743525761929249934028527012275307717572476521758180193158339778110563152561556874054675560839037900192309811313968699018499026941404501458283058319818755690060547598150448127979936145832632899295002659107571417822811455879902281943248216507182338484057514955373844409629588019016175954987549874084910346144484078480595309277465890072573884981336060420648670792159677155160816190179051028425866172049424921066891331325163540136218714440514738285693606525951726868192762359578103618873558887556818062776917689519475961988465630906546741230018398400482191238029172926243787701311858792466337781492609242695586077925825136571762048326032726558158592747374112518633025903157429424167531627372051379024502813125793460357520121129842674821689743094441388088274624000947485788821631669866812264720539501406747475011686457105578584045953758953592385791533989143522266366894332058214075859943435832022949144324278020882622281654514285470041315755832650755798926677424274988163495786936876044886326995241106184332278599898667988758246457822542062501405700606182597240210790198498237199614425809304612775147914669831109370352461564728670455841794230936190874980442549999103365914889503641805900281454125717416318361876957727753462204913702358752345524922612312879970089045164780663702134755228552556250223756790397638096021639619883853052228413484968792397682119460538116550227869199504256835050070780329471208776543118746852846914981120082205441325433369614258248438028465171352225105070206321017513672784196319476716090486876275901285120514996581257843713753512570898148313484096784127762674720491191485784511245026322856042393929398538005668170089168618474995862043969240396769733732040987816605169791760071177760822987110595954624253316075090643708463432593220201440610453634631056049156091232691155146662924244688592703801601940531402213135823883138360635538938522060279526531184709667392868818652670963465860383168536373994387582832031733309215882472686370033303067689832911167055598200927429316450955340984961820373802254257435148956715888925998845397913908878354186426016746529157210398716959694381055504368856014318248394357445962109947495493451876686507708925548377960030877784993752533148926570914047060859998068008688389441116865668197776620604686098772755522413641667003648001753693031672011830642494236343633611353561079457514852067812306252394691047163570564282029806327679173617190025510722673086580007497999941074748885121058743224643388047199989914288077251030073653241844274551602842455870906776747604438220676337274433778245689406327241337417206439079039898822524482913632222007431999986939275882595253118808430137230073674176042175876410212602760434739023123029938696657828227923379083577256883958409180697284957283902724627096461972060323859007692922364267938160755215613604699127974864372536515213157594158056035245416345101055590499744732649086996362396973429286042435802570139700983787791884198724340537831028809597151083138417253696292287801456156873407302671053041041865250842186662919303303687782176955898518547848215799658069792999842095770165382337744275187768869787969540501837791239721742231750319017737274713227700584709635300762093561883902956978829376359977277272370811914472598230747854159127803565579519307567716775953105110960018301652778388770089470589509592761219929368279728750787492139652493438105674453763998275227353885463858463950538192990070751165938453176290481813165477736205021401227370843423249702533606361321482924056969065416074765025380364891823197881000929931792515950378095878695948700854558563277775705600024757951081357718937922930228875123815056637614720283508586620848693108019049652580103571492101896625155485542048164300817337774303971817522372499249831068960507688035927694375002392430060141033679146632963936560885007939387208402422951865533985936942661732616727862670108367789015092955429700372694817389205810436961208885318947958436592880928367373171812354497208492579192365428066114930093113900190086446532893446997136009701282534179711898326699911737977876925216254399170473698855796244082180098903647804276915390703713428902564174099973096854458650070666680445968132577615925510083347817629578863841800309373120317855952256675982318779943345490739060574382378831176046029099483686274995772793546757202774627059423601270047034657484924432567312147690614982377650197669339113244471949945256764310461577901960066395577106701271621554431110988083393956482270839938392369992853577137063030921387519307267266106311438366023549850022644286515542279356499892743622478918209574186902447933507948484690765235290623373511462272098640807688241362879380537434052059777939075952402313770467662548464579396444237010937560114775304534999400077599489762184218664189262664595105908811120921918709174528711850384800028459729654823036138660637321145827130857911090414053630066605947222175583312644794350759930452037293289319180127193217274889372718555331498491996044775577485925191850837034617459527611568727010117377879854097963775368867409071107139225967144474040541857894959256403962446474100047912279412089965634326939850198785142413012041043713739171668546096097624916757180581860895610862046012879692896173056016144627515596140101016674226495390958140374196128376899771595986404188697956456036646241857368039382669047636488498461621008274911581112151828175351227316642192246973740079362225427394395122963590771925252786982140192700502918754202035426141432180203132809847388759175261897584801029606647926437319841340007786954525878528991462475462648790581125583458562434318824007186073729082656415124160871406488479236230237860404615910797419463136022775063250506415888330854563897936012894892751920730251371392019686485049464999353415178914859980681003508241480033954115170317592187698277022257341781406674577274809494424267996187416277815776433078015622185983963181067049282922794627648162557283664906456454067855185188664430696476787834370085885951819687396007341190262959647236843255734583569422083979982506473235451407755848893394066864925813752158584801713787219578410031335099292674013550974904852919540155190765596130350355622881687545248061121148725604873908210357456787877272998654385329892678163746519588597802898018508155592342924298050543172551521824400794968304357062941943227832880266753197222787773201512499270090250003322281113640080984505769556416007409870082076148692120365007587376598247955479767969331537646179728592817248720182353899322765827767505842600549645591934616387709925756725497143613772493088296961732379990604031743788375304560782625381802688030624846127481423468656795517779628512426238769023334475012812956878040174954347066815806265941092453188780241053798196212097790846710504838138853875139871271727306041170518848589828101107436633179049999832227077477947662717365286599154362487926649739355835354835112073670124672643848492070810750402407967557180465698897883313140085612478793125362782901775886279976808776585805908552596790661734055834233050738095885774949182089509307749559027677196626713768718534004543966495359636953303939850754710125510917170861276790592467737797217500668101874005770147464670071758791568937317836018528652460888293591139016955638535617855617561384676671046262724820211716661504787507716774879717915595074662777028732891041458351517394452945467681167801559317086030636036324081763286603081477236335470855226444946907273185638201636340441162065494293603936670276658880929461654243296928646088253394504138856421486105871915496962285069757696864478702701119206819809535734005357324238208849290322485349400644824389266108100570282410803941071685353629075396180945566719452509154140072498230915964622108456571447745280853070030467756467128676944298890900344690742450199431875911089423122311256328024512186912525573283821016003030588507615200642250939867120170159606511447312561677269590002342818776085260697473695899921824560980657248371752988913336457205677796902690694288780714661121588602002236028113467867030770135546226316381891112755829068545190809163979785720842770830360009158748000846245648051424893429734104925120868201037365028236459552168723693146575335466523599752526627953247904502825714501002277225990804146226201302141876567411391304607807929975212437697248181289065972919142143781083320921179103550120423983481347508212861022906603454943646387915552690057386199309718712696588539410787934842808268362313199905206272889626682899831258787709181175168823313042945280312193150249699655987770840374395595548717145044470317650088259586554118598094748943493335741855241317863273509882123032561503179138773375390766520278985563575534913715686345813496411414983773516793835406989368033623723145921873237368736209241166427623931946822247274464464788432186825240802758220943817456094155026844826912764219788318774785334014233303234556684942420851020852562528969650335796536353221972598429698520809093566087894744709206912163943182054798737283689031765527595770723057433297881906665177088507612134603142802454574422735423036305063541327495985686632027926758673288092459639941685238221266632253894780713720650144109259798534678688317736481496717220185990699669800732980815974497074993594820284076321916255374869323134591307975962502402996842631355222470504985268334137227674242097300609769269253884146176558823299414487883946443921754372414237728248060408499104872022366042357079446831061278046365020724891362233612630183350892121087620177916070944610097602998975339558560883094760878271954906572836064793070623060047517679690665108793306830147865717578003993153867025148440192332036903569582474257158408883590944374061905058255981784048619084632274855694813073539380930897317327999294711013434822368197109157377701714414590227674049501680464630396414714414262341702337386836481714680018590575134114832261369199281605346885182706750297404958683861778088575160919937823523784792363014334644561039059921785908115641975440589047916408242707252415939430893601206784751591716389676346651199251131227664106684350200826198790381221739249735918463901076249208400920193279606611588945511254656143167206126416344867258106606532591521261715084265905250119872197955340467624630764096144754988408492273111099903821350703178264649733416772568304616742692826873098151887599815698758901578309012840668186536649905966738788068937875848120185240047443818192441828948491146834645553958499953360739377288846113708214910146507059711297750463299531452695527772877105569469543962692105474675111674483027669868499657282439490855464050904269770713781165064749786038125793566705014017440679443698815970560045986714525663098000047271882846402371476195148299102599366536676838506679824355921438307971425508414676183072251385387791755191917866217284896439299137561980605510629348448943216704054451315560690914418160001109637956592065321598407402469405549379088037162262159781573984670444428087075915438432280586120926810116012322462743820839283161606200736291838023129775894645887014589004070998985002644192224763156379228584580523633427431484912597240831128350002224556043903808308373148827970749445235468359792143988050570265091933237422336018433401538332273073042939998393353808817678993881178004331266884179013784567296259717478324618423721234933861286501686947171970959164002005452916682830969868543652855132815146292586288905990630644751455001604622735181009335141571655961741425758457740280167817244797973600042932698075670067209159681380225572123362470028723234990146902019645406871852631977531581432324223888203681366975025536865721237452892968887447496491670736294937436420396000349340704856794710454975691186874090922701063301081207789518323797751542651955668362666021602441616674355190114512821022067402065148332227842246970816294318208463252993297949589403170722355681010225867600929089999974042888525548480950515592757799057924099024895232874330465941200215767658524332533132111840192799827272628145412236364341139881525922757139674477105728229258654357977723712791006534741471638269780389729814934332765973552090248102044860979035992804328706820282239973562686395802410407447733768355079507048434269087264203592923558595606399044506387039352827531969770879252165981766837324776791997187913610141515888783719469737839504124616535756277803707751385025876661231733195957623636664835464569618946383329385574625276618578627647374661424631418522536009494089571411886309624725465663357054886652151199701287030174639321158839796801480887167360897641166233993026526574277695213152136785645709972134931945044822724935449884207122493424236214238919597901956841417588757855500060030098414082249685091944174460547718315669278068319361479920762171933153412286715542383385957475459608646945711194643952571099858886929970005909310118451846993630475696307381224833302084278019506738518801604806209527813645706723435741314472581574421711916397313601609674972377899141037666464001974886359025020918324212820272465387722719067988083578277425227849033021368951985080541122595528241049875388543913662411301927629276322346432018470084797853548393582150297075902835000318465366895553914796710207607862294775675108695979102349098608058026238057478572744769714057243645404166489415334762928231675508272269580581440018356570694585636420737457426411708613855431506220605434780729189756506466610475775209501552252555142138350023569207033752866397819049299278835775751437740494241159724334604847362390531592589666742403865314655291444674081643333688461686097730925922148377104745773788594991372458024712586171666256745429089360591110769243902236553313128752618647320955761957291921022042799484178630404773993801074704316872120454391348875975590606352911397320413313000418886592375015221988298335770212656082088815857256422099789060153330061248788433842430723799652622576279442769595313623217538934625924434926799972933356986305210760423693062106417669206345079100329037887764053503590494976327151712102496305801166267525109686435514367097824706944131408928591129566745483133513913943275055821571694175204997659864567348564803699311322575400520553955043109308334272592286741986607358402241771137098031835899589821757474851970985812461388577156119723302253576336871593538360256566025254651333241100229740342019225429547121071820375164067902484452286722233192004541279441396853942453306869077302023193942146378111870058722709183056177715310947542935941594103059354633566434063143185941063285008611801667633515005768393422001225097911812904949433158373735502488406536613678931887061829568893889050895490883708461099084159340740808051109599054739555508672993893613190580704430208943339210825353472133431829231153703059154519629761420835224640776059770322746950590113656307886760836632072797803666482434394496179176677314580417124505169484501646949176231037754816328370212430703266528624499051559821883670552783840670057350610918409973081350930350992869818995406632830888230716366396676214789932121676102796890991481202048346662379157333708255328714926786373037736795806721990767329198398663610650340656005088385863908920466448997886033963459421592695200695293393649889369925197689472733545663170901479346962492831097279784826756175300276118799938458672120199335257418800359635480262607737909967415395240908008932676716280186673949435134060604543031115522127026993829320291999284869841139099629580770753622526345195871409833527634457524123703568987371430490459589864261503207745396111960798581935945627391226355234101134628796833371657765488903233442213303445036349797134032536401282353176222755305631460882009358725411238443489130918570561369368836231197213226641114538533047870468938755436498081944101874406031501015893153481799590159021065222475193234386180307816726496506458343931798358531866294050444160096722449982034191675587851455828996069292410305823575790221152051996373981814950622472509856460555255564375149382334928995641164342318860568503821499018356281096570907909977603313478171533632398132655406286670588273248952564205594212074756663667598249980932907287714791369815777424935080107204185866414987652733709558729562394969526948662040320900938241517246391510580794464121942820025452006588499619039655022819204826620084212783319118109413574246136434039550002588645507967270703268095079322738078399959009824475917570160793313781060630885945157892915348343530912858681765074816343266028230651401918530831510844389091589780510390757064773208633757427627387343418867498723605265168559673482044305846537044752254165505309681934168740311151077763067788294649125312320707326388651448593719251943625078766558772034029158890451408251822490232577638253003088764152495017897623493890637625608156432272904204533613716926163635508539385571064823130520523860759618180052154692495638280508697247524729389419385068044351885589548129032954028591434371837180019694600364898004709698934017951455230705572303908299718500118560590731373754763343909912614294378139905049211346855416953312125734774780319848669749441886175898127485265371501095605856578545543104302983273338099829269272581238547691647584599604664477996813407069429577662857068730400609201378513094438308337157967697435791047478745288275862884501076348411183451747394601776048178568286156098657719636333218777539727870596617436003341982792869619512093447120456812015935920988960765922408256013717128900007729624356149947271776413229220711139322756047587950883838975721270985608553835215741352491095934448959183301652446856935862884079524073180234018349698116765604923959010011815795670843951635477197959818238631287785021059196035783654490505038395654420347908055260964960108887901613496686686946453352221596222007488600776112413040718936297058938491488741853786185191987816704542195923655949497746891078951682692789197480141094288138076826317064510118858421094724322443715193799263202205258801144398072901038349944729534282549028524497886370597864688738722456717711271596347267633043207968088742577535325216133627182172789726413694084175076355020854107477475010454308927938740542245990711914399878031416376582570942750031384912317613050948435854635122481547670963842001661346247167669142468870887291091429771531370404651570588154587897404175342520339849365003028969717216081978444617655391762468732795221526205658937242474359939233128321469377753806309547372417195896242867010274159346183278793705541956684478099616808925783927012768563716866626271237730961799337927251075629239793367383226733209208966817611375378616879994201316527388660474666577959532700330129996394509580531855175274955901991124884170543646952170373572564115623120048899060351781829993806355368691034044866594247530272247841941826015754625866367494300781339080486027130385013834046516541180884145474177138532187084868218286450416372618802748686666622075448238804639007777025195783015558443900733519675175524053838521225537896914672185273558766883543247763744550434800519741420449097416517508646764834365278269026187410457300406065055692332375077713198897280050809916092970433921581886900034348326523547351616369125107642941660973375774458038637018793198096158804602818916139620263325731932422064046851944381626878322538715772991623370071426518399089618240778633487000138540964357685686593049298059748209631884827178707192343249942671388708035637451419186808655187536898238952061042575133845629889300146351772464212919733677315328832059894702132816229967029049310440056689487855832417178686127944411467398745011623222561429420810420627227223636662224385784266635678732502881206480110719943570998335739966259831868943225589294973600561410115333722060001746133366861948804088337161674936668353182919017181773364590959984237420274480537816989116890715355348525323107127503623311430934588113418566448670955601570250313761734280213642385927199958245387818542534302366142153882138644550847261740475038272280779958308849236601755005638887516645661871346347348669889507877091997585978868292641924868281065718840970802641819643119097154036557214870400332097442618700456350596792381175994844875070796837381751769701629542170877362478594727627635514728772549674208459389907476318086809772499236147691106572410007172909946265394576489060094273266476525496146900072269739849693400540813720622338232943585622064377614447830901940331804164026497348881584122758529425955957111968453022287578579344772629032561808435915764924036745516449911070143306838469997042623863300333209055217704079348826988516512430165458290818025973134709779609344719082904093443736255460562048615406443883592485752928350242801839003308250669710783825999772754275981904097490938329685501898903324602689546174643528239534985307271412064225736223706233591088520261714683240963502074256411208106269460996189123310028809503008551487620785983589913057258463922074156106080239646306914689945049708031596797790132417779682436210727044922552105894959927508659163805546694642129134800668368508963821918537248964589577719043466902650589894128820215564497060895675420768652732142926515112255382123611900759163180735053184329606910814120351740826826775424162400140533130296177282127644092885580056489612449390606233976969306201525241801570934797393155591457773823692900719919557360329566314963088210246368276302191409775765060930799961763863628286196068600278031937906222133061783990260629224960306290350233531452588298321294359772887256682357109589171021766924440285964777092520497131094643995180255723475066627893391653993605075246810659789414059058291515062631491596648306175644152782765071270018657083688460923376900943981392245224708783525530025014406363720943973339394481394715111553981250036955057496957670943146392787448063690856971541568909856095339431753394199346567311745160112907093151755164109053554156508371228996915863898153243346027609871040731271110619583511134886740814238293024590154185760277748946678788206217663113425459071260285795382533551362911217997688113171613932305961259820721411184239796004731999454945680008812133777755026251242982371904609139213270828231709250685418048539003768910517969327765224470716928308164623746031397032614677483887955334748675950601035552185045619121542548829427571480973439458419192203414768689942121249252857544373367599221171622518936528641930856474451516990913216650392080249326037100828811666137345929380274658759185724386750398883468625859815126480077408535345117590523227199214899122997550160723123480496254900854086458206907081281557601464425715123233825453622771019783724000156911874237369730268918197598351581803552941941650406406702649433856183378744390278031308218112122150554865594827382519234237266866593774892391466284512832288330608730961983448405305761958245177062903901761976095657881135348106533119864424497699267032046602475953085593102442178582407307214986580124772589511826738241768289673239137120984735113079765852208660177464735526528541431721183220728130439833645271553367411952151367387827861010050313496915049837018985536085213017425933889006829307573668990839917536575747986187331091830263813997679537759766261587195502166686670485596129259213834161391471757971896688197078124528676919434600230849835986991521535546384859235818833061788318308541606621137291844674892929839205771959442854938966162678595980142114159582680737389563999663820175810126413239320681271104160003261257688899105574945608337631741498571123462128540343137623949852846704331807013070779434809354451372982613774725299595413153794171562196228331703748725930049433927379909203563503180401239128054258585261560428593721674619813810301031021590432395163652093783208625605221935162279518729408930887025152144236313435153358942557836322791414521344043220608901631979423236134498058129765670225294591149254552742190760730209971747114515109960556032715106207302884213670826892451645233794012923683614911906944183836255758372786901015709678821060037399488567661009842305280417073106772893974730263434352496594744861234526317824290963137494385069830110304955826797087608749927359366412464242342556471084845376231028603420449381642070933112807755280903830855969439048353494219478794981620514907192326887419071934389697902498321644205153901362390573766144743422877469565076196971672900359081027450212936891320972440134277826538998068155603265377328053388670379530779843301079346934173546344850399336176672321081056011853199538798092160255684194646525830034247280477730265870646630168211640164471671898889166853817986142519923775851040574334444205432145986962245292169531129705070641556894885520787377601925107984008258228284806152048970171823523852388987584991997813132308872938645122598458988534491279200718543230824971322711425218642996251231348238042265099055373527502938972076089780134189568091886393141496941136560197371382812763324430350935677867748889030407639482239176786390792178013853692418909173064923956392588080271508881012420139012411718004442477739579851580269537690231808716279810177285298225629909131317930919766221890553634708170750481247854859823831033631392317100152729530994363170897928626257594943963748080484736882247013841685959269167438769303041590559051211835059254248936496053711864915989392820504474754937986432274366575686166981602282391249209046330591474331784885635864518270649504838433735253947351623308660160813978373348350066504523957854752951986713047767732717876732261359534898886063499261903965038715342119163092435498512854733744113431497614529271998003519452268699065372251038678856200194959660908267520852167470962777142921268332710509333992310943769002084099093938531135427049287969232336100217689789345232190937302055842558182435270603237427483688019176704407284586502733242945415387216301391889568183675213788959294783652039337199217212414347617062067925365304100166613746776020660964128100591602552013683348639485283679702077936524899596694644955672673284885131668713891537966314583620632339415003635728700456062318435299933918990436298025253511791927087042787707824036543109304844839435590965186422795886314097192382035683106224770832703947888823031845079777508801177812809311168281330586645587705108034575479104265309174661413669283935061237623096163297176768984753201100047371035836329373370503212601985555512726966883293103569032717171704179898785931113245554897482334472039106772186347768306816623352306843331704535229628241714951839415141159526391856740708061036033096810735223644819598969136073460505959925729104678354850357810955826115200811968360138845577703253864374509410751507541057640181917125836001056475431760839955236613132317962995165830791012579270279068055519011430272036321754008464493219156115178035389971250139115915505846454436744729883266817671197935354449038569816952216574820567585242156864705584361900142550435357221715938556565224854567316045749539834006437314762394129616320246827586351963859992671580979180362375039538776475801505462248915691705933303934100487546450469344322150188149310960068300901107798227309570961030242356397018527005226808491110907471783713126534972958628098772805800272283263413672528438539743818764956941441085463918754099521100557877675084120374998635689084341733740427986046490690996267509579086244669647014571376318159843360618080979953098144425667593769178839197882095077705906472520145923001757535250834099189639338742066145692288391483260861151643310338324295777050291851126646519488904662425177891664375762444920895745534460311884705618689170366200178489847029618155986769230952721414375770361874016380572130689095970505283696720474073048920200710282231418137454276910245142299090627378056891684270610920590788905915126155741263805761244583212648109312019468312237850025983784014780974927037991645488099024274454295975535999078622942255112201833545053226279761903171787280796041660376524211000218077358137228563604713936648463104134832090855733827550036020142182850476482039185132410166150727384983935070378671423058897700583056769068739584463060145219531007884936593245958277225538756816531779657344881378911452311242592138525914448394333363526816148574162722433294591710227353685224478301374339149797292887147503389099366743995386950587959108863717206401524577009574250025471208423333778961701500750794230268691049202269616374711735528967203704764160499301244997909408723122648891999896354755952539358153201226404906508806970380486660192847971835237081698107089988383937561413971905827168585941590057788218785340069900889739988367983788793497680763494503264333522541418861232526100053230209388444668820982505526586588229009191185335085631856225443422861642165924517603183156737882319374354247245909528545993148157278135166765176564191982241062716136569056006752651821113228136443027270867388737597694737634628990133117239899436649167101504224952309972711545205198023271404348183446400438384545294241346164741845203971056523643192228904926471270229710848833551776020882160709802695734911622159094790560750451826602424211403468551381997493667561064358621799344448877467062004440480721643641290577629522642509862551535623157654874832955311592025966419254699457711059641319587961527152068701735919551222411648077787956161914454523351968989856007419166429136018932001910903840750577099602123398297738678050883074167016936092085494014368727527946291683664744276691503180101024987877789443391356258599753876773616255920569692188796506780451297824251759017937809120171136165778920877277644772514253328103051506166396263264131644467960848070333262609229374773700052738295987035316642847791684630495302154917679672011895477939625266924016846885155964476345935708736840886248020511497995625022019402639361631598242478647308294328102362564409787678909295513525080132448770639779719740826798155050851638952568679984607882295490622494218473023510794058579401954889073576481034961012746942833503314757872469729942351552719086494686845224085379633239714232567450224679831476009160402223391159924314497395423675584184486526941471505934291084156542667024308654917786073321522379940461125947723024920472770706079762368549055546355972742903202335574867274213507879463674588146841870560565347635172193373599881545505590733003797928439310299465237921016807470283796260874243246584219035435652874782043791647859315010517283937275876942154261038863906443881963305350430189890264401584149407389551106100042533932316136617563377538031354015224617478910025656332090798023799808881915762141977960031384895264151673719283179182886829986921632298764966521279673758893020582085738951722854843194000251906514786921167628637856997658816929608473423437322217114615755997861707580959671345121396355117020940592522640756771340376622555156056675074570402943168378973991637879589913964303906601698477985461019786887571269988550698649087656436058622531018123338745763712902730187716936413339969363711569028128335217809639793209371126897268127293370967891778133786942703661010236153257045144019578218802851037144236323834558353426407860519212127117259664620014515410700098066568783829943470048369195494677175580700332529408739744993031390356261191411742883289869857581143329432527874332316038220466743126072477315186359446722114255639726764576840614802287118319328082090804963995119812113838940436806957533050492258483093969651437662934045132604251629583717209430876116948315826907483915792965330235925848308453476790790359291438616294231859454081319843150318112241259340714451353679624373875657816485235135057174459759968007404261552629153464799781601974320755547383924654779698493085836584708275000727796057849993167120513095805751588121184389408139722418351260288503083307824531590294660538130973035025582078605129562366592453501329742948771820268447242955583897082064303185607944143707333620915901412020572716322665722520185307671335877667345404252975660092253102136014384282798961315282702774348639410970388192331441379022552529476330189877620144366283704471078511472206434576779840520770373143843295852544593099026911174011140454204775027116993889213610608040313875493896710628148871048996073624288874597459152015344428945841242982320593947065961128021107699666018019795587635205699957034478531249582819357480847734517135996706380862636759605077687232562094726767810930383529548634535823845317239154173892748054994935231839780092769340730558522201805048316790832583271321012115364893518513867103264814410403108141146516419553013585766580031896019901506212025884727168776684898237890203584303900997700410832095312498021460017601170833904314360808325981878665262337219641951826273595858164425821334403301345314183660957373661421050195711401629640890029054789041504445718272594920394888242382202102598608827254248414394767350630532385873471068469480142737848992717507934167788739336191288023957217665503412149959023411076569039083762435290908473539562274930741840284565745010124078443760864005314344549149715080492537207859354329409002560676015364913910207687108277777907916345964685282952054787039486008943992313708335328330922558189723200118669259653284846223967801864712049688746604434795837891371510402945959761386819363813199716359861673076174300356902509495372225986159272496913193498492557154403771866669001784467445687773756564962144186391466672607498144498691328300245141083689103470801672775881170390513795106174375275454725599695099604233355634025447508961948523734332564340096896090001311728934999554577095788328028163407439737933682958132360801615175328842776810914733427931666311087116093680989336628767189806833092865138101163786357521351649050403831183578559521591116038906958517945039700229072415310874544013865869111510410425073452473196270970997343743205967772237782507641597978252417572459386111948616647378135292406465320093626372065934804707813734302830072985626667267595523392570999893980290757389840989550178303449067019756499154429689411441885837656499173772516221343664925004382291074178047571973941566977923051787194387000622375459634972587658790969671900804834110358706952338249084216952801203462120063167192906565501247205384047769193632402875873127346109290950552922316921306693520490453908858702720150289730955037647853964430071950810174480681147250630378455317641480238317589034379479926292195526000276554762370811098432600619022384858817518227627303173199408977965009131952586606495231483057340584523155130947371791339007437344307262731784959872319192806903156193976730984307125943471278385059639511572267411253246960935139103254838399440866768425617900580479534093522225842191096222007218854378161349141144911625276532070519587257634962234433372197007744182741815390988691747677597647093659272777729770499278257704749594968690170619792997057532483456570845164690114512165130711030268540555419876372066042358229202915875834429718830925514953719492797172657109924818451678831575772092730016911237357161637645570410229947254603701319258388507919033461129456687617909628531419292178481337116884176280240140174470992485615630149225359577789864211067623300130700675623233857347859112968249485008300698417628927910401652181336298931251784936706486163636518517620961323316160427319779369634035935927266234706528794461914255889641258102365453309287082858858440477600284505687065854114255944694008351090227702327886356627246021517711330252866735374118563848782356804382319275184945022669014359119443016797694718110842286867362836603724461525650058209989385370414015057322595892136643218478328583478409866536840895079631644601826414460910159002655402171497505241974016768650455640642340844670742690413763257310103454902130084435849222526803554544253596997032203136083046099544979843898124009870819878407046251456198004746778666771653118512353892113972896180808783499076197429139658950216434454356378617883176106618058496270295167913109240995371569532326017473400232463480751110480366845636254832667409434262224322895624235662439618246504024304217009049339026711169022217839352643895239222986695701062198837275977888499703498437816036999562516647778530806990234528919983086002541089928899975038100894083251262352411668890781152698769115478150286031297153859280280544059099872690953955018817642027700963002556470453345119783066741624300102290302713803534825076640818899928228377831969802308071498307774458119892188532916882369426288271956005885505304839078906569743697765136412101586816920397543758018558276032483535544737240219868771509749165327554381762173358129713781816211993962428053583220238155073050949382734784856947285095787273829540045071095552010807905153102415762492819095881001703963811691615822849177291268459197145637036803940071662595070079085586994991690605459670817072564569977479649733544290847398283643487327037125687068463009415084943298939064480541264189213023982871817311992288148634995188189249693969706850817565758034896849934746138002150651179510920644122092692197092062142526243670812741425054918143518082427772359459791784989164056364435868838779835772626082275709259004218641227585236018998231742784284158422571528284840615875130061964644737141502502625441784400531470975266615840387209526848072543610918466376497132543018486324907952162518752406111000185396045376691055658079735560321941939667166384638647744990551932854965996613133772539041487914467121002198467882500107396390934842224932466114180479501104005553950985878019032731534283095319630925529133351254872244118990633807588312902867003059964980995853496852120323413017169959631232740686245007703806062335889326639818411388742256707969533024138629624270882044788438019520781676451795084253684855807845852698542329410406922104076611062376398391511332398682899428536098783323533868034676622988316608312217723839102755967888043037153520432681045463460896706600855924326606058146738264339681245738953143850210327180666789772969929498346383191141910729721012424910212849426918288785490972998766740251698485389996137518359023350885830872537965579994960711603689847413885285289607433059253926435729061703368758653259713666616938624496850440793064575955008206310367711925413777887362890371005768228325105798473113285338001424702640061477345414482139835757905741037969827770245710121662332310543205413515003991102560308829893664327126062389883416998578608965044936570413902294722391699986714086565493660306922035694087483598369681704054413697361051980961929193598239908508350147335053420387778799841966489670818261663766102540456343610501908288036942522141659932385783290518833764650758318788627262676270500227443678104195771273240948715882388896656238555887531433834705645032719080550156551931235788343825899297335944842351335294595863246046486448755996740683494087998660888020543385845221472032054342204998932137024166501702440829335995759579095774284067372323631347950691529474855270101828300583050001454006968877289138837370104322093346608943343000733292337972840350556441591926337436349472698160038064404491794963222253887211471881770344104252925471444007325909883707473475957936112549929357546814873139101071020080098948073270530605376034257476031090600773135541069862207119697104784268678600005987905717386848463973760108100623856201232513695461048017714952031550366862380865790101552434283836256571183304528623665702669700459660768562616001844351670949200963290134705861072022780269513329987215903398828388368221529861655314106133057833438141639275322493941063282942042493904971911603612647748790069542387138765165400538972530412507412512995668114506851452699153578605531796644999740512682462395071380349818935810987105633730441368203136106986741384465810289785650379330123099866568696249278568385564398490068622087009437155164807005448607060193960375414623152618237134319832602717883623159400990365462637845918550059946675719516783402740856359971491298761439264580121314325948266109721389384148587552623492574444710106847514424521853155870323653625116405721915808420558911238128855517978717118096934582110108790271601444742968456796963726736459323443573360335804694104159264805474730264270856325352534164950471387801090489918690982924013738425921419709123536547732323342604235236166808265523952107432494063911492706916864971194869925227973082898235146798882885251778308430356171276391059043429037910832666887423618027796640654345384426762374345169080748791924832202779894150116880466318478480942030619816305383335058534084218929102114284800267181885693326773060109965555729002585805401141514694619809037317690985766629059925862812717370536248615874845238249691606806221635310512976522640360148169224550172072700713019251160428041186886395517435585582929612660478270796728400231188450901441913582233446980383323069669152108390454095434300641334644789761150881303715204312999746473563089538832533095456488294009126334447698491924776184876279878493006496747349290260473098108411462915400574628340011607731034716208627298281898503014076461817626366775690628885217141630904639969013874764413765442625285749059026105034892929951017576653947964394411002618882378608865752607024578423893192449530559255594564049836607696801842078366663227195617159579458111970723994866945797484981783272255632606308520460172688300612318918704385980550099939101166860821432686946378272047582223769002025154282530705126446397396237696349191712197642303027111561658245846586275343540946951476993589955076787041029273667852406163131470238292495690603578691760151426871632352969687223936449999214116405334879350913432676374722543468790326915780081789427524521058916973721793956264149533009369185014196286110562683967960303349175131569707945941040808423099986335914188619141784707141975072381289644481927473156925616213715752088633386142134248523256345653361118652632235044796972568911783650981850123444398187678553352944102930148470943738427364048751855673390779757549585488378463101708340294081913065967005027053606980238349268531318757252963815946107132297327105248293904460639767860871504603450499056891605025270431592383930486966266311744689054390803539193107052020366269681838986812786326642869443485985313416925591336606370223133220353134943071695054516541962090827055097440358162404109536422387239033876294971196758466214477388319361492812729556008237533716268404892442035106495861266710635715838211930119670311518690277886944560436686139764857336738680807590220493270411915471390029527598005782420285434132856922175798924207961288875989080897833457541063579019556190287875872223039033097760921771709964619612121558803554801478315209449087153069142592422410555181905615286835815031476823285408847574348634589879879496867447160773742820453104616361471464563710849422095121948921897858587038439176275777713965123104596111960951102496053526991835345142773131857156524795154079249443850723532141046586761924178880476544035796075092938701469506461778447850243811958085630013831081145430710470070774525516414116080407212561453596970142576970750312483671941526899184358254491730770964547851980305646419381891976596210912650109990611232614833699375051841119619914126589868396107047420485223012354339067132636662536067469114557496804228418249201260932201650807488704103426205913063245133918424070737862436219379481106952728143292975581647514677534114704543955402402425558927992265094552909741672731508706713830296809290501986673777854181117659529473686703545808136893886592326233183192654908736451009604502560854316260059067480350334559474675735995507191489461127331341146282250725135610655154494618675830585547046731418173224696329703973096294791305712858533219599304126278681372301795156986671972852145626301192144198110232222744320755849817871421445016653338431184653345260423306258317707977074914947542885353334230628034133109191752218427259018299361416705640545478405755655205623559926142615448404130262938310476901184889042347406289733479548671065338695751551713219245224256775198207134262016382537973185287420583759273882451480391593187441595956904440198163154455982952994385194863883650480817686677484597516624967534689214399661804246939809944469943607810561174248788955326848157595604306734811417262055245621951251356667788014580053995758510563709240985165473861377743425817760321923123347002770791222577884350591255865124339409939373279484103295887929814087674151933072302814194483341746222521844011433284084230859233813197149077118401372242528922965835722104122067244985961230094921174469042184309493150729053801317057766600428470590471667945865197363830976896869939371330199415471347681327882854638582851599287523888226652886999353091126992655518624153757646378612299593523409632238877768346195609321323259530341534402655153420123054805526625604647454235376865167726119765081122811731529588476180792497040569645068885977100565281348531920146538921827167216273199032023510956097457666641531262414777678686078202608460233773011880396478273894285960160557040804170697289033552146506249045409654764148955582064105138630161419720590829096413445966573373006644967297363469561538288094779150115543084781488586892679711977928109009469248424801095952304693811559573847808592910796144312850266877723892548017197651040386406687211633078409516273691434964899962856721197970301569873830148933635199924487262223702115285393030598231080356650923373621070668410793751977125033908332915204663073268395738889277377483885259392471900947512621471462296886488800193947617433327929795207605884476022249786583071689578433769754285135545698669088571136653929827741901851112665497830984328075298478947157280448282736571099874863870378811926855493913604509522326873944158729518421190332998496258531014980387212640281319472498091856961765351591432063627213719966472052123785007461131434123694533558788060800412555577223301641145978349158318007399393420268545198629264537614066502309575884448159187507293049331707235624298624610803487673473133605949422825226753646203070631564265556929356467783599969916412438310905196381096905209836112964700272599683670713282431932162450647049314042533979913656778921554213855923455031093287011362514338543592818716522454208495656863691888532717750849160095876195486290985128080596317463267768896067325144827102438749186375214439027118809714980338486168609314136294949639157181969446525835928062084506137814086309123685511334357196422414412217225168833094504161671927308450000838270560498906760508341606367407141295738680771307496849118639585572803227942177381326035300333902121625689786564317560443685391803651794681487083737791452473168330852326839288775081054419605990759424527347216673947275621700369797748065691844614764103899426016658680058815428603243095478629728675535709655151086971373037330260454408703299164111988955936673204766327991808114699668562554585684761278772148248551097014815972561818486404170165473859896743458874660720191791046452904831940898141981508513932925577669338990200618987058793816276945482761423482730936253671999079053418778284345036579164823014953934121208072649528706357527106608842579669431119877551374550365059675934422653325340724771670331458765550361057984735236512220900900685269124971212668633923385742095635750991960747741428752362381339240915466116186899661138524395614010324328997298315064635922914208143488915585920752373829248706827866156682466969499489983466897690559872995443145344799655877536715879153435708601256529105831683255325583653373210533050161705896875233584270291854838879439422961572907225930019454410239045913793281622985919451079275351467417319540263854259670557432829958650793825461373002740262780100081819375137079303955066705725005084263485806859003857625569324732501640264950345186694365189463796854845793521463867910490739696075654365953769408703358694151600966755413909844517469206801987296237840833447388522872695430138280688722883030797983761326414472489508801493074234237574393826436102959912360417040560086318833017728961731394884904846880751063277195907767171081937103200065169916390813663572460240459666223116310253616968561599263500157051295112199217385618906685488987152372677839817130943895600790783831085213583278517056746136993861767759599205653850012096223550315306666458480237887285195036413571318950780000442980284102816027228917789457958769755023260087856178602049123487112447199692715122063360842285845259723577348340208530302730955750270098380316180057789519144878794706172633093235506211308051092516922393525659105282705777852237726529663126722604845026307544379342173800332031032874917213477284995941517041631127583370216361952020817792276991706817389919131839498559844042815112308845087439248520122856864691686616462228412950687371227642099014044860232559402018620300400210158315443330537789673552366323861174552155501213419057450182215749632426177068655034670324481296194018358702018904411196516567995822509322931705556644553322089018727422190870597609665322438372957511417458383756515022435948765515120531462226231533587240391712782446212996259183602589460447911303292433081771694788682584604960853010363098984088546684722695397873432357753306001337369569258049610411411813255226503764038181686340934789968482728438144163606055235013401661629353035344853960605817550136314579291143282552023515619529468863003645693314260142630248793374841301575510688103647584307105979448111466835631645733369565275403059655441717914801089652748012930098462775735551241005612573379677634450888396420650122612249249626977000574757318791366917034565731162664132804973722699034771207017519743097111766390944295404399993017000692686400846854318582779864382663598834544111481269380825490937874022150794891550278402897439691368970855353282338325074490054277037364960311372071875481155853047331723899892389716244371233044485156853488964069045238089833937232263844178451960897204732817985545897159835414407466903455828604014034795739050794409373713157768059143297257957467978603450931882463815263100256009894619771649682909959235668595823495027024918578973368924622878991207690620427951411909668808552633900131676985834760376591885805081572331872724355639548118641839226980798536451218011100971576569274728580826678017510575162674955996849601410866426353640760413193444395587801642991560501559472789119077979741563278687578999838636753871245685430791685758125393301773491145903815384165337799136707400570340370606405068366352787882718380426637374505545785923977400049752582900850223653786351234254310320161954459931170475545631273240465204878926304315347417441860881779683454267111118299712685149912848568695806151912122069076819153560890839438574056640767291566746116564630396139932953405823549161361578495860008532258918885865682054674055045391380316806424038471840473341008099806878162195935251894154576608626247007308785891672834016879117052058606567529388903458179592251296756547690654011941400576973129880031007372609691714615199730344631113728111279671379678869279270207593254297524710872918438923765127712590589004759596431822921877549224262503924008764296268456795818061616226638396431147895318994573866555852594554266738278497201440106956512292944281705564123641759834044541335342003676036989032604892619992693602831258638716581025679974886876335428616999039691327396812870980277967689275702189522552039342598154852389500401246112120954745716262779845623131199478188556691544779921980769553857317000998344472923938628462612288407291451917024605892918328644315620022759039635783275699858815189878550983351922248128771229728465764215222499486562489807233482071586907630965742146674413382876883941460630541920461404286386087978505415903841005602424529018212616050959273231294272795124741390454113543895623932546287506134624068583397881442470227226015645996279672820209227067213376741150502053182779858539462233116138251309185100171251294362508855578945530786462869756332321091247970420751561855831093204046839019937362477966493884196789859517045426994563144674727552379479755326060285033750445052594747214134188250277835912011028375996442495925856690720577416984305392078117710137738455342595259699576186099959938979330416377219725660992383489106882615533599719141579576284829052267995589657562167387996180331446699321036173129782753439514531309987768808095838822539648879435738730869223319956498371758017106067349756436647997039417839756972492945718541026845422417293879549176926065752396513336791744767507542318854042915509293864712885736013475228057906381887437197980949942745319026868139317661803907891401272186548277384334416588991212688934488399741547329306433227964259047679469458332740190854125506457832585207515122507768368230064060378426803912263752404720737514323377682426015452846762436843532769773825695289445667369376939242428578752225833696111453039311407679944231978365697789343618974442194299837808898084328986835748169979971882251807856675094746532328548554126917418564457637775124459104602428471516038406434330060660752011183052592647502209303429776484162683936044331037049220430642036152250399815937916217701971155060219140393091060655305111771708053943012339105742420157304482255642865460094715463857582736017759355040242098004116012136606701606301549728934087519622890106406476560811569122045999604863546231479565378244135950934430507076938593827112247467940311750306570760332063400233448633683679065630206168578021765055020002157002269480843395133225752593829383838299754520221916875028201014747277881757759576599265945698936430971852199062464434431931314562467419466529011784869033934492995540061702737530876913580734841402282282528876260760030120370999148200536627841885883213677092282676109814405575316665985077490722270886576060910419993364996836893340786519051929354100270441707333439149086509503929046027075177013107472779015310326620426162338464469433999347572910352311595188223216097688741284868018154559161297425221634241720457024289091218171711793680233326593776901698587360770825642576965332944286488894204052399792846973227376437155526753648629682775198061610424814451862235568123839687692889560260441380590341602829821266579251671590161874711545439284627612766582598645934598560602673511661384800840037413176175887767233796271275779598203330520865470317491939470544437160209075995635389776679258130958061773900023024778490090823512134839863580269980175456636612728185947189203411448434518493635051696319655869875058258367288036674290948767317938179262113537282549020946884840695533796106725323934938585184039766551318133604862809573196615712872629378417424748839443511818585588836649071455706684781994009795939906793401473985475763456520080751249432587322932521287659717927749521764166644988659045378632332451098715407198020499747266618874114845210851271836240939030344257544699494916822048063760588794486146324575538262622890795326320050377046334416585433386051076563429852373357991439840183499133018137932851867256474991117793146477089373509908493405825157317865902444166122741327233319199355570453483116107050407675363792402795813433258161481526554437221607724664633606442120447918185047958535494738378755896278746902755833797768617320065286710901587248912622910682423822260459069367022235790559209951385850727603338011514873998891443003244114814438760281342666562566048063345031502303658073195892511252280273293527608995141971583445439147788701340918183787171601201728611839367429806938332047464945374912449742355772225697049381504488634857874588092926463821179180282533410470617385241463190218712534141138582394797953419330290068495481336863398578867693901603163424422685306466317025475090361386738924995984712439138206037811895180348471554939872599529491236672633472324199709429488273399220990813598786657770325889953741460456045477674676751383883006711452537653384541417550108716067459434945797754327044969178431702640693962275781257382159549992344031813457553916383447781987816421191637365958729814459327810440758639488878012884681211418220610878456501863651015300288938236183712415770814579472787116379762463144103918225193075685361091811767896381749223151022186619692778802588487343052046902428459307638387490011344375018287735276033097985326304759981929505607077369729863731003789370614707091391829470074155688394585900436595147867364129973183152670327956654507077710409635948455912652453722577662187458703260503596466369896100223377199173629472246186453268172819434222550923119165023947469431256059219237389222818450609498938077647888897699995117798157478398908574281605823894385675398310424077318370510729733005491383988177878901769976542811685687558050242318117746505468151131801158310511855466703786810614283558456479442384259263597275665512522813089393697367038283218662603803937549924374604148551182897954232975505342248316536843291879084929097144730646420150967177821396204324817866049270389847129666124738583276176089269280078939144730272031185607377341740883522748974224737280411023298624658744998572065512418944889275196297114610853668575222143732054200745308146509481271949523400347744289188736888508812403442695157505728515869637890641287137249173260469506113656159989093676356347750481476555656730216216259960193545420033435101918747244695350942567772802606215268044145439876074385847229021596247260757898785098437496092028332442874010249721141657164217618099340403047149033000954004273784901554336853717765330480927087415455920259736967837846177120401878789962338684176714550022470098876367126234760650954048300693567388627077978586498837943709496320679345740823840543966024870397552886985664426310639384232439867452542943937803539269970985406468125097239172235434328932855688442491256535267603742996310613878413512237326001213506713200013913041985993005011119477813129369908768763420771783301795812315803531656482739140700274703510857877187569042158557581292801763335363738132755854761555699417333205485773859651262614232526133750655718712102117357430110098762097168652304115241001616661193981018112950390129449970720989704108297141167189529791226613768873380964002245500482801009892896311462424407506231208201545790347491070573678361296949575643005538133797255174676699291791888615775602478649118155858810698783041545212942965085665896074705415355701320632960231900954519131262169718875672555279408476973677584340720204636400960314781658482498835921159968827074290319338421318471713221585588371114036409779861204692601689806230969072298515742599134620453002065248016169368819243261411784419052286778666268993338892829654899631408487392498570097380685236028997434197604221880767553958788219821260164543187774725777157094424642147827461970288781379494157068543629135526122757340370326736855429546848508533826818120199038259495865159516828428420694588939649319423072735245941293525285664317351290852439755993389716952361433111815559275901240944982149352424773228975094276237590467571572350459025586837128433008166520611645311069986048394193478542975730100109888063779869710629520413465989741994657411548382051031249160010423102476886881623312012888312633453114659140816874093857836263024587174927994229938417379472416947712361300284206649589217482290471165708963582695842173961775413881667822242338682023066362483430192069481599216756593149181878797574378400458416427303007939592162415216545391177674367971141407542919071180972858056373891724951855188300703760511651730003840856633094260718875781340312902973982973710974522240771953761006705665386801385760439166037297399909135993518168097552553389137780189966845631167430110312743929978485609853731149642547488034005146600308183425187671798619925263837850220217844287781942430812392887724279948930660768502349503094120848168294271075543257118525316546887732158970830441224722971663681202842827785435298843048953549913239675121781815663418978718100819960760527613528217584320720523581786867737506788012310716339573171074926701707287159422309004929021802683421208590487749901960912171814725038701525505721105446114274981673343979234805659856519422413588358246014408140780842051742188170508317866855745620252784288807917836379793516563916304669305606047492179431078149688064138923921255183482672788054672855236462108749822475268722494055861864304193512800813387270232577822780033075157276064631083254840104260512307364551395429971773161592717286951196171029060650663737403406844241491218922033349609757120952091669668613869813391825856188565955007959664440816734921101848439435252223866519639532075748075601885110581872860980251719441249497490230669364857456298651425266290920515342381859716517450191852508473253704420781457101229472940262973296834289194029486718515084646862020598237397230230774756951707345575745801564054702161150669480826767924152886208970245835334275573437710410773517307561156590976266761194337080382052258099056243549722164406633979874448291031647608457919267294234953938465266369827113051227728707812111296000639959492437450536630764670786927141300776100430752325093025409033235239919955052885033033034639189681880832121283663852105048506063690007956170659808070666565648712704692131310797585438837833403752082599345752713083043733122782977995157015196616411510181579887973587580923682712250732836344151720423478830430917519164233619372031188231239601489455235122555739465048019063342619112217596764887534103307406155576272520291509194367342413712844129583315522931571972595862484530939558870452950804316581085335568204000700238608907806490264786724148592063546277244655320446927928538565089861476840805682422752201791944568818453217743943958028839811864096689465713654504913510863465523761213812134930547488490254798526803795632804666671429563774718585080995426928603295329900545143456743756386113247048226717653872734753311549495135143529509822371420489787187279096202528237403937780166831769689091801818990896960288316413991466587726813481637868640229641377574107167325975935267839805899523173936961184165049077423028210348243387725594019275859215710426985924885030419852248187660845509021065112212378732797320755295113321047709113458206034476791007985087165466377063524783768004966626166926113261531898946206231751557633720560534691334026906359932929230603418733174200050745824475443655665747282552621216174460870701271841969290430776022862507200436980006344317287154988992467987711767709449861442349584244595718576519877423072947487885729685925564964600960385601582974915390661311379004698013307689540342197484823922617855912616359722748528805802695249365834940921701314248337613937350813631181801055586103307469606391416653428486135865799408377526737025556746110660701775041690421791171747969607180709354253848988206359638317459695121456843452904895750972075165897840929376175856182372673831385693277506677021604007217386498407056975483094642367622542041752706139803444398042970905509622841933674165203880623664218920936953467562062475623815608503396044400104008362010591335918098356340426754000085547571349801329740191256886757469355469387507304332886791620588165919626828822621331221356392351018039895291636300125369010207807263496730150064020537681980286097087105838896684551428351746801503053761091125915403750405774216393754554011586719423287060715604650255399295799038643909642973336227932230754848585377110644268364275171413855710443913537436813961345454464311727427982316169925144897667696271710757394663363347494193270181664295061168294877076811873981031103514601508442016392942635921959586760917312808163912503762174665843599788087925863334186481113133015170844663158870165640105756475614337730670981295931188898930958034099963083320472894814753760279165381190235595952067998452305366333286940872534450579813092264384317288738611366588609143838427510954959989601269096014433112469689142846525708631686153294210219431722159287250751629593522763328271532507006402776921619905429710615342130584646943361146550303448301877835877095337019331767722050061859997475180054747513337378744638464969816118665590650531509967065062415629869248238543441123323815665210993377172265436609060280960570415664413431074297134314765996714606895509542855036110933939086982161401668339174123062449253944257919232284934272737862021582732215381611895958947067795633269423467626356099349359898625174048431846200420685271318782883480725581879633950034555578710654494213188294242873826970610160389719487642851987370007456823994508957897361176428038611295086066403060595796628622548789827858531845587811087776846002877866506557784549370470219954195544330320381416374791636480317955729532579520829452796140696500088604761310276930370971218040410246880547153168962048854668486333211596220017253760832637381052547108584999547837328746899704577932536012942901085163804092346325119263309322356176294115170122369136410243072847430311440072648783420941469093027618447989604406397906213183077867950320002964285458113267527299810883204883110653061431974161431193221451164509379983805785066139012449108826609874334689128679255556569166264966304852684280205091344297545720020414510176757543727932611389128208009542316728471260309068654550513274031316928119040659094186028526932309935438502130777779043225904988484666681973360634594631717178210320663772918393520540219208407874702067927971387073695394664856824842107107016842725806726683479867412491193680217326126217934473337186324821561918802444360773910682669409732652733696568223198360430200639609166993226156773413662635368319321615172264781698863095623727102679177971150073516389817733817951749126134907184380014017184106958994889320411644344854320953538880065933796369521800585736167006498548526964680151326072633324999022594357510249773793626206843300158710383786870503261470675155425562799716924568567861097786712528631940790534247754229212271890706106942308090044628220240872572125015317615533652898010218695548720606234579109998249006984201966757891118070249973318060191378545882286121549521283361132669504611254937139089762767048239403717652871725774620419877131674980433736341050267673165428847034901371916806037125493485776612241542233158335195664019312217683304625661271135929835795474766775593331963556752110545785663689012797707168763133385689276182058235833618616346799332843368256853250837854982577033360776213715566131208646164540021242906194990833197329629098931215603581494341572658036950275689290979362116995798679612995397730392286228433317470108204322090829252297255599339132837796882486791978594273708745409806565192689133863654725838510104417085906840160568808399398648060837420800362484683547591135041984912599213196970013642522607720328878584091610423294306101654457032272662507598707549254660688137416224047330418348911127362452083991696120734674157707300200850229967478205452283087406141029954310712678490357581936217203618566708451817821554701498902920929649385942032179700042095396063339415009091025892132408312918041016745251005264334132440352054237292761473090384182476980560303809151859509110587386061776964415578524477230216776022870410536559946214534337563718881354077879261547688322864676834150899743780015204558779936098399089894866851642430271356594192070289885613316024745835696093204117660824655601134732703453588718913370373237645664165917358422469182461786011893124973893697452053304826277477664445870373224278732036730387174903913084539040803629326472409003505789983805682061608178026332752222301058535319378601309090186492826338251158772817949277703863409432896013354991897972325485538797813387403407329634170363169992778026288812415553959419389833509508378026364884484117191503673691876306042623434424128974098557542694724669150223093944674339024993483498830161304960986857114701082885010768881692906563618469185212709636503590986364680093095197201864705591998940394677190078095888440434915194409676043643254483617028528079350211579168750379376943149273055685650469895418654641065879413969598706443289449856621209454574315520382252139445820805572179672076156700737393036549002845198827305099469653711396638271178719365462995981703116208234728179583054646685277788549153165074223650971375092812477160252955013548648118426004933522747912524093857161177045031903954730145490925260553183642541371992425584886394806684786348563952803137153802294367401183863390365880993051436267671405775120260858728184564752830004464795546453677891524786624478544871851091478797599624222044274889502359035910968775895697548109555144438290072276430995545333754278545660509692550176682630206881975881196350635805645621325428574106265759629152588642471401701140907595731133328780672524477351115008607012385263339199522454347432152529011300123052235789773056701929834616190680949493257227406189323997004402345902109593182577588271191277194103440791131679549080683323376013907317692826874639972889499325222074971194675489153837978065639801912276313989145500138185519969298751491484213579117137853196009334050537797755650791397854489161540378425721665545749845648904092034080112734134986242393288909635304773433799496888290664851227605512330725552831058778346177614248407336256788221107675770260772133306186491755242826390313973764709542157766636963279789720465146558892470189214976418786644203843247619458653251660045230705664965190781624936115356566415394408625172600826690458349318932707355248482669798398830346884747751377593213660064396509612105462859647107101447791417995758878233857477169486717699518410270325018830960942374404180145402789924970624073591531370399682671733748782222540270825438301510011085793086578649506638258096521160209617300368567550589921870953064085653658170733504391740958080896914349876009502713404890710485294075689821696884594326331179087979984340670087788247623995862403020209908719053850648745879412931193277737814230916426131115649577650567591442145798760767913735262905940977306023065861307567534953926808475523360121690326603713611953535450716636682378412141955331352788206412291395521248578875947430656245467144829673917378566094266813243895097911077499050823984600321303742055565209753532852321187119827005814635142415885502091689417473117869063477615222958250773354572224839537376698708056624769487808424966233480491218267541955266711053076486028444752551966553311803478659548684255892355824277782877363957317324610833816715992087569822937210250540700124011675236922513176332302746201344160746650950347527574883752300840663450857144193682659460027444561223301506788924259810054171868866200815778705486088511826879986489169557804300057877198325068884182624155090430848026048276699430113117123076783513439094550791401160784626526154634178403634522586269489944327768964138295439078495747022163508926419213542299236870617409774281224433147704001594645973872682999531114165574629380070983826863423103827110256128582440286327877050967104531055013178993904964620166190697309837070653614899197008874443272605242541884891930818461301684647299248055861489419435921667952602936266054617432681665292037908885149829056590805047767841556992314119031027643125950106054313317292449204398749074952158413177340955772157120435462851707804270535400251870408676668473543135025496310834111367998697170497174166388898023910709075199745010300499152286585669734637428474745206674035159126135426854654935400322433038182729167874763429054454785242785408904159970979595919356870443098039393286715622522837056906562239743491197898333908105855772364234615635244261099016465617808553633476214677984614404136161182222589857239190861250196756107452208208780595548903623059901992594109551370426482052953058700399630148302545119666832312526702835388254642019732626379130393379486660293543215080381720634667031096584414449893835578317899707584570176478875806949621213236523386937206684473793502088952265416587349344673228805504228632443502601421065472107606901386371386460585273895516894206971713452670023608811116431471339540571044370743767301573373340953129605932908727392011655771516569371566045035695822011695375964027011337958833394901292570170934697486289981848985796790717002396782692158660886589120290264544356786459868421052868514739964824005246464704252858278412616010511456711732258845951519650168790924248621164188299148561514967296322610332732789394401183686788010158271511252282029251163826736130445363151058180491822628966342980917404575443265879231136260301889232954661189188949970127638560503282086321521022836172415824717880822776869154499622612385326844240051233313251532085569243013696261186333022974864049192714136979117440753495441981567638209118187254076392088567644749707550998289188310674985887321295845069139072448959127101771032608330092160240607737640623885803221014396956140374388888154429211419971470180492355945050601780360934051893686582674292411071275863356875743648651589176119632555059018622240706027111080539217960307170253667151562840665726997563467659522129130414089712671011850451657109677798443357370054334557213363347039942223908404339968562951617157504797540276642590997302269755070478858780578881597744040093511520129955896858031366745268654458378384796370615444250583994484558912049575289595980302867682327478612292080818109987408643510698933041692806141641167997200480924878997167264402681733200298954752546635563876806214749813372462963465530428294787033300927428544820722145567047913709334834400320193512287420091550466351802079534309968600707763568129288707975114785943250269257972117494802096179097501149115841810890564241552926840873072590730803538447050417167549676056722563757572847083818068097387221687275961716114491519410285351458900084586227162014892975864760978279572844957929830125011795777165311220963730509797141233774616297617876645599714754121025130394211794999222389023528535882713355043724232942508078424159305850084635214040340568297441712553677385054465283964107741074400107463571417086787064316941193261495581660660675559991358111215054707685751459518129303691042145249446298463072317081506306969686279552049270675654856099621463370882496524143822380939956929305217486127146391726504914841875896237519553005848614833051322076674661162288948127557248112829309961426116164959971561306131494261376400305071470567516140082290670076322404126966061700980372052263823265131692217111016202710182764660890227951351013257598483651417091362391493554326013317295510956835024016281197468822806249549911521357849545487863512514983950678593051506744621691323490687697251026030031335386480110823973852336020875775788005060237553681327515501236708282393006770588621229984799976584633949194713485163478610822918931246643000024591103266106701073909086256257343526244579355483575904147334693958081929228750069615345555199024254146027633749937212927654544843652416164109920503616647134111152665032271918834095686983777790831105103522822518595486076873547391988228952458765029229856131241979267036175427364177771982415548708499756787412198357096323051954846091303545803661081488071248339193118922231185643159520838642246315481045617620335492928885569787078369754053336521609011657820592019480046155916905664411284626930100505829041492849336809891337663853878088496611906376813304590796449410171873044404846633257224751759861726646104717789648733907280760702652132973681349417885343074862333606426316116325726661733345921502163349584241348568315931696387178381340040353406729621892386383083265647731663626957098355872240075620437786428701117165092797014059174384143222370698724851484395216389807828468505672228122078765686238641892309995143123251762732025001491182841440372954649943661456108309777893161228043295851202729357686101517039326775218699989368552824071836171929453362268909609811977688614445383353001567515022751860596213844709666747625907741937436821879900672617774068867153955164471501689415628727611913856834128718155534656273750190630859417573317474741671380906771657782647806199603504695740535511773152271918949191382976519231003472013422729557966863198793968147463116887629016080519298661886313069891136629454775470111501624469733354367825743941395371843276058722291202028869764892798690370077986011529193430915610696773430707416889310541738350622018698034030086715812103686027809942709139171457733770159103150613131111021180763689109657601087451376063162650900420581925880177781733075978452083425030787473996745503261203153490040245167492850201392528786604602431256840822680434254327799422077350430625532265726168665706828285015708123095891475812502719417408999791448278625396587456964829371959287359340168138582175295786845576209714232343465477936747408292620002796260608887293136870992640850221425141495470827329380955864064859867967526669041800513210955370959951092061450166128643210139658605367397731546105596880588596589416836120279788571707805009988165815407194015214998856742601106617120494241263337544844653151012592705689639440406402385809824847004214179737155473677726096824025240180724374308812040625108256263205121158467439654341966914743127549032183720746083503157392880768997441407883658996754509494963938769196768378500614639429712460734319610558614204358473324659332801555609250815711198151168929703605592224759886472166238576931886438689860223978780377354978417523742199676214194882247991919453337842279531182511330961999087726675488611214028169475044174907063153236504030748258617662388989280012420571064675551044057111866939380388933219752151384099855578505221332472986903500636122315146303948959531174517380063324188316192682285354355794936150467965295557351520875106561226078253946942735033720853881058095489672886100052065891371130459257950010602581501938386639099400248570607817955926713781306879507309313414710560696653501542544513519515420530109760179499827786962671625414096307237732933370045300292425070249134424918592792575401555084124989711994430832508564406162031362777337559886289904877563207897712956356192656101510963817284311676735555469852863369428066403149613752244189038806509592897502982607482563359229991423558398809977367541583812443575232044272049224629701939186497397679513864081210984070024112688940485462472700278396751717229989426548344941124456910011940570555840864867480591183667951546355957893649542412919795659564882418588165597598565208434808661775404071801625848622547483925091455856907906341427143615572370262777837564768699660933435529350712243478467389077658533200302797011340355123780822741560905074158000753882352531161020769041228018544530605365859580116461297684672910504970712840459990690408768641802961791530866846708633627551001724370365368356561278195819482134746536606475416505703378916511240853090518752382283343866420759012868724596628802191094010726281148391828541151313892498696180381270837179476699016279971295790519670247131896108048511897347742287742639025942326170633902489043578351199824524932601459712047760723279610800605812193967321116404322799665388834887376702987771596433266137160545762082138331469514618044557249180333063775257960183147624116639864139713946715005424708659021597859407031290186193598765237843221978288257513854015702259834986312164330660225104688674282628070974993856069936455470653304105561953513118060156625008442635131108018173300594244298292521085782931784904773574695983977875886258948575378396537068577470571038161251548360123638389030750179406439168817198991283512166076424645891838259951810020323951490055295835015328540546703616417495542843408242999340123269476058019224617360037889656603602920043021613367394006209292377878915768891878136426741257830350124229136338404371135141113881456982142765823593766859040295797925345611734107458199971743424603175645105868069926697239483688350640215219963042319373260880977311004365226762750065483014820910762255651940168609333049749012972288237341799299093008987203659967843331712784175141640591031133431506460858475715494206313293549628273703497911794645117318377754585207390713700280985042722568463687710258516837826428794371191342716763513739252583401837346611685121068622253012282778393908651186879156046715814124099366668538270582602485023622907978356019789480664146337510110882833178857707414966595470232096747524126355304684338671692732021941830589279843383053208491436862396084421842939028452966893773823426101940800456581848784811441130063108280346785946921078406852594773316981708934120720421259601136691437691486915321840999662536049886902997953034505337441198023398172137408109579109367093120516684996989824375188795352567752243938584650538594380354702383227648008567389764068276674177789530052823714613861949348715362011689481432639086938960884211253477501990260063373738683263405630005918441871172845764349686884366890313677461988784301042696857921888213071293218452116721051529776844840745647095808619807517616089611909320929268669295390610790476286644437874937853720782720457650223441331700134131502333622634438902199760980310991903098282016049031153316012713103374860833374494814093532295213942433282210158899650741482053786058617966827293023539797855980978022871482660918980636007795954327207073164356371203104399423675800774812125109696773857103698416625858362733261167735869318904277618571379726388627876223524005969315168286670050748250532634927575544346800797720099779384039957099974609062452948368530399413958691623810385805941643431211086228593090596791372850074147455355061994514584705043980702080147499249040345565737220167650053225758974425388376828355997344834561551721256939145517784550310882608748061068814602574677023060834636621662842292632209554280569520536580009914952703590518569796006450288515028294620965603809006228908125346283839200556199576153885692398081554697237535286028332433912184190679164520245119995191291964221576226963947424329676491200740356175208044021113104721391591841093699819870854071700704911156733390258864169092786026857947433319141350815291752122392785704193246008354036552724826628844961384997337659486448565633328686145128099524380095545544684046981566336363491686803412109545577930847053752312076524546463613522926439412795213879096070842374469640895995847381399388905603286182693544105670814096938016690671936859537295692368987337187080514656012416711720763875820362219360624193442601301591429582651389841535578761105216575717059423039600584635635878021798925863482426826188700403851214225885136559657315666067307027342366502383614363722180309977948378032550203558666097880695924443531118542223352821401414047759455023772380044452259586167529957583076505033961005404234684920277607016157574961569166094840685948837625080944906172478024523534212776377435503236373641967816108720459583189165901020980769774639222549547641543034463970055650012485760245901416554482653794993307937664698892021412055888071902824926163908464099646986203141944802572239129035523559460258170443840140163712334168513253757776354669406211445378771179889377825797739123615428786713974179883012551723145732976771469623626169853657802930727542692198446835312019845513611541753699541109030315230862871924379353566414572128606067033528518536714497589463585054983863299702586311365206611197912637953105290168925107114213108892513184680324225263775849155956871933775203445120687028724783770352640674763443591509160307346897768605997203028976871947077152997208268901406248990649301165636110476160809911049087863213665450058019773333054097731558023407180837000007369103774944927037399437473777185613943192665397489259465529284371558945610511611052592314635000157203181528467613422844956855642439059816019738485573097815273495186626897078658501368436699370414728862230766514174441397775940761949391953134809772575909611979825701877950265340650798055164516999324599912467188152794635038451423496420410682461442580559471703974523897652549717691268141950940569356502701794677138078744008107975763409766844116702603979033423929146640404626841032598871943057779261956379079717998534222438164829876939123055262069866453837471194299493394701705680152497037471634661136343290490921749489462903084283162925062373013326675848997797806060449699398209520732313104077209466331471817920533000149513727799343884955892162846015320263683084125406059126596836106160605986024439630598670932604959286741565281812359514773846311386689614198994723465795505328817545738023361030020930153454523146700255283328802806350119068217367673479608423551917529228245328749593030906897872287900594759017276106936193480720781887865661560949106712146866765758477108007998336972740968279478984910297575876288037382922256598814365666397821746887126934978369200691970782681351109709616373591445317979874998316380488954709673063528398075711478001516156452099457565244219959392878071754186874480866616745376037771574771143836773648994138398750645312174423348876410394893228022095676222624013673815260207470602802489596624404508547243611908729637669011732074621451507037899236869115605019983724103217346051221972997900608772713560051634390752941923724150589277866159201412107911637323695815438481026039544642603187177954195827465142778292365034987347762804967732152852302934780810034299951050707758058496256606605326040619031017095820009807242930286402019218544478036163300436542677531535023750475590271693675515877972796830096256474108764013753456141277618999173105700241617105176440909054238416033185813124154223712168922186529625342157509042522254615528430541418719872525766087517167203407011324313124777051724467978830856098182164335853639778932726125016050041330932765670786815520048793930258498660618637386798891032723307099589644981800961860161380792098163189777600720224170152917134709769546131807085043100047478859115146428064881754128322802877173176597824479511981944556164576304363288758396940780141848094510263114422969240500654306663762254292677396582002947862319251630862424368589976120275456229311008723596370237915547238230396580183658124201172135752676292452959595694095571299894937809754955845627522904437208984989053171632659858779291323361523390947680784591499329302587682405310885223421973290224209343379638598526475950435593616230175750757209824787686120710622362925673232782605323062393121002069338321257365794004121120599593932535498370266029206408349497462139402515705833316494146838970469407490436936746979621102171160024731863636352875908929799386492213830572133888204342516027303832886448011064117116982794318377751079251576368228754487842059186947973967951173349046778655519930751853060912716305050875887583871816778321104935674698863387270631656138444339632594255016461398017299854214120976433492670398531535879948236216315243208164211299045582321720788029665957218392067485488844071907675249811119541785223463664279256534068661756618256079148577164197277395368238445398544115151238807632578129779629710259611230658951237897487769662286451633391536583543655037186968866209924453655040448064323666779985933055943625488809494154389683288972595883271854139277393728733725104363571563278169586676964977903697165351218561664776655118796558140351510171856271523504661076690672045828069605954286851743326326129781178922881340594548199721588630144225168725562017798155758455379471725978075587302800296241273540585549451751644846484402375523375725244759234048968609684922270506311719284314875881166148343182750440800419506307947550375737570625993495790810765116138044753883106869161191424516281620847251110455611956811526919886420553146188117622922105810220665483943938394547692079858988930444319400910869339611728882381883034812264733470428568798890217871524356479785192890932253469404967996978601399936082367479677274922508260631462165960612514091052368073572301699475246621020899375822413057431416728985909509521275186078613714328354966790973348381106887220751480813988856498344633461647611210744370390012626789398413718651789777908504549219518369569973880410022887885750561981234214203929932790641910570535580446328073857024913017650021554744650628540462631070679519218581097975227906684713125640148487717602722446100078214764251596248516765920254302815598325900545131327895841702681078021420614698881370121041315150021754331154754502459206152253410204096750668690687608358847408770035971815666193502696946909497777243070681452219579554696878086462714109332237974733693226007813772957953754708404918125639204637898914394310123412992974908054527841164620873230193643036809173531459250236120097650324033273201447009256645765298577273644356330686377340491599721074900703741364275862975066138416717781398145596055826983312142072818896675089038664976255700398208435666448931538235084936818957175130686982875128258369040701518152982652157470591366821658317256572073079614915948448445166679934832948326964207822816489209113177136427691294870389490606750102422442342406332332946607703572549286820144196318785565269359355516804031821538939590461300989620418994091734213840139718394514248525619940477502609224736543776074189335473390055970452864356832153384422806793041487420344767085900460315104324141927999801713841215291393368713135609876533355818316010407129186329774742484577219116131388868986417816288633137389071704696031271878843046780840389971088438970328442077047387920392244064893324794751823740624640621401501415137126694519025012488981402223244524751597928686556677735608060414063457684614833091320471276899970980785964668014848610900427579141976626473241690847142043148152557468205503702600970654117366212539282232191961850166222610902048231916267766288652254781351960799045439604567595600236469727718541054280576436203120543419167026355059678653734120224330299823167383166793775053466800412382386069906210987658812470179196374296770647672911116244936330023174498141659687909764221846735055161934016684409815823512792743409526372481473662020430846314360269076501573482774881823516066336459377988800939376521149711719932080936722755420951200552032190756973979755425960991425900236943682848731672799897991685588639110685987452156403062093957546797511433214972330124419872944618459602664166697386151768962439839679767644136832588579628261045663811703203446290196370922596594883652910445266617612351531307845307730321780721589565937543145528753736784491091671793055386637687269591253703754003425039552881902018041776381544915577198515983709998277807404417180564326087264571286346080478265322874371756864689753219774359772994182865184957863777924327484546880611406459723160651371081067191347000492525342421306663586692768772028281763574920142918908963602093237073235151869224337673421056570139447582139710229743645836850879696946951823137657486777788015026203865326253187739536412646334334903825907504065243103109837174961021198040413864627801979016038224455337896929895864057266224000014543483874712219170560557667909262417325562054979140794094076419220521966992222535050588590034000964579189608676823152431879412871777163617471332893146000880696975436631379697726012112087761205296132219975623731836954905951559326880683713373152788801490389004270965127174284624925462081766203705227794245176067586397671713326306701220862516147377362384654457908965102517293016181857771852648932718246125395219982642282994054388463694205776470027370022799704349209910959448861662666784924117241148285377103095272701054722814673583062266636110987053388755313783764958353734896957024318893522002122643981865213827460187384620858273179268621002742416936688668655323740306799713680278676342710653733399493022918882120420089795914475446629320338239685319744916874061180519571943957385296445910803960656009164280830663650383851559693352386133320414568918123131207403287444913219957451308204431344035920707168007570472841758891834347627585960852350564717057661691480766317392458679601318383132279895027198939866001545056269803380044494281460316291513016616574899779414244868223066768947353218895861103329296298889462933068981709987730701871241439559597348598938680655331864178356607617084643561827959257074347453694258733127756781304471955779079802226003408960039563415418757573632608798424919437665852688858384708456343582762261204472261419109263183682069097686130013068570579277960112363470782661011853077637345851605736419150434906179815507277629484401291401997958989245582563108288355604127072452732861711229537924397657151740581745897605950382634394780083116564246888823444721282713524801587876051691524928455243684158836938779059871705885427677907512505133497318532341162080171040212661239130735749065322246102236546452715728461257920545364945806472762454836556074600905158861243680098350443590846784859884431535875732734064543067229689384269083789692654763540422852597998685496456412172875893361141647105961632686444756832635887669628967355897505475611543654036890145092587641157033050244843410328488863753531779827894262061034463938974793342519849766129776773064652658603768442574940512614098700050789873785204780236166483615762809970381280647704010358973601610421428767487289227817208590715498124225655332164804348298823631187619931729085761177095529650756769936012462691517526071057116056523410535534823466830939165983777372168068852362746479318623818361558317274787188657082696949941119641019236178380540716484865581094485066759662150701029674655664122339693458669977902503490210252804232668453139084971171237522487002575452865308777297476628791666534032091805752804573005662539613325788041039949454391627215845682090116485090341687713077540772773728224647023011781059342224379648780387192166680458229744635555063855427450448284530098046356373398376806788625194358894529954323655073681198243919485222491090346847164387097557954388911623087383607948826151786356226393871910940798851346229391326974557999180723053002482741030525866644283559800612389005485212110256178725446952874410742060107840968428613124779376896922622124438825977342052941125554685016788360633389714384363513856995084117252931501607025166775495283861710601255387060444581194642753144935347075438181633220157166664877348380246635632960507014353851599378668636460815197880052270759296306994101073609699176181583538431459722987447349791285071762962417969449501122867156024151146884815046998880244963634115578771168163199795325952519262172890147888596139647289930842682692751191563057619899737871248518289577969918836819691650085183174551164114164916669608047200707427663973812028179705686481526035220602505041875099279219813088885302072302861975913394429512801820114196557146999319066436790920393415213824677594657940298081273421524691827881461331279470563104984442250811127191936283016227288406637662214410559918687791450280120746089688365513522891428550280714438077091811243075338522008579817408749658617055846968736300110816293517091137349258297867988016016363244940294183884657386624979964086700670882891624261211333210953225986973884599545976046333586642029609848048541770011795813190854480874756043976606900784975833311628111664467797386857512931245001242388833515444541628201751215688793311683675136222151458482789865189400250324765462302227266886099899518845119075267411728503112909475454827178598184280396906704093253869981954040977530587709668143761280811521384804815977828156145327707086826112281713233014256319208213502772735709887089884212408937146045297228168057915783154066400195837345015807077974604249943062808728477144948273274316525250955425054017448004116622324227107701490138283195758679491076291370814062602301223276524351043345109006518360703843627250361020364917645842514480002598128008043193895001308700308952097779941712794139185872162602628984370052336048975507230764731952899899391883793510229766708557856893333559336758327626596519442768058293518323854003610108745611965929465991867407978065940253513090725077411125508784269309631957725846708063382145332167555273022641244517836432833449745064379471100453127210261856606221673156331533422094386623296130595893950403682916131969800687656313030847007149965474756521559647067844926338928344485522353005766270973109426701107107973432793887313424687851396353712566990812718511172964334012046902556229570104120502315781324347713253401659244167087794613321837450529369026992495189800262008651468496713659260519113977616370516846867782279803917398498619459429761143572181361835826909302998641726282213416252332163333916171943735840334114093498634832454787234309738338319711241854700169651574476446283166083298790198956413762471973137741637520109825672872724424139518780808149508552994709522829284718369753595489025099619271299135491130796734138301625838944148060536635529696115757629583922928135839861879441841693809576583737461419477790475947109160004098887689131282257309353889914378488081929553352101623061095031814248816103637699029123971440420152579642138848214327575591423603096231679825035831089261059422028608818080955249102802952553517953612475066352114862861961237605331748692109739096814298685263893540074210481061857201265142875604264836852401119367110305542796516692655993979441280172965707017803992533831250503556068880545502380675693981985701331575583504108947317514953736568332044393034188628477677195978876758260280616966253908193048932392816231248213979276388902762720745688102497057180134077622794245957758234692654225781201199969436483566016234349174516243042688682154805764177559375787831231672434349894046179012788119457068264846269789896818004644043804972522218622007685617506586305974786502569909048499501469268597788657706529062751172768128780215703671414772962947935252127174995337067186278470821192787599304168842952959952758690312418528351558972174195267439798862166909368366793798694386524605573314408193405505621073365522019552984333985910778001665992025937410296416587925412017676526839567658541380099089965314656231989887809263589230930319393662990415136307121650925115030834037662024999234693811169838620940906888016035621498771198524646865599546412142763645168138898546739506917228282813157077688812981567921619236185753678952082647737852653627768852771524170579263953620428863438312981587644558292168300636914056632207264692029955371751747809263353792366864308270332299271104502132148204716641479295584938846721264637958126789560401344966228267008186964100054799900812908558737802745979589860366079182643524060632386427360395942586783016258816949244257172256155728636432568441239798668241429274430149915171369781506697818792624101548827083755692832066034592082299139890211902851016774363607828815697965915992673078997625330194005002136998603121066098594880854147148875312794908490161967037440562764346578342912671923149498637681491000853056996061079300936200128778261756602920130190061003536839061356491241145039135459839618394993361720285785596638124491180608991395300017600928566050851658580597551563421462706412640652767352247929656562753780490518221326481041661820219097910278827823483709991501550570921515008823673984338975355866544261437632106430303614032334847245697531565142587449214949298305874599415684561576063988762499748387912734696128313004285596904388356110178818194140947572677738881801495867686054265888020233477485758973138040420505214639141665897830898792964827201030756641537819789569297230150333187593849189635281397136692346371212894486152267038267788944045980491830920296011269101102571303131257057673059425917146380311693690789730009192077789254358439740919118355571747865304244811984115689958880831320703478459845946664309372309902688144037600932849714125274045824057781041955344932218364693396693740826623180237467706150006759482334572334759295376608638911344256157919900581461631904790585858245428593090493466479773567868314058119201674202600188415155244121546848590179103527635056538060821768363125026826099545069766209262231700792035043134484484802162188181737912299001499891017085496284431177361976182271933051049210407264627507548530114353526395271168870898862517481990169180665185840660283337302192213294454826214691503401324555872463440424092213262215688053666486558246807282888702805219430264926409537481695014693256547878688088619698992694314263189074150374790998010748387709377763946658288144454041514868379235777193549438896748376940596647392022146122380126743337303591734884467965831225444393023680801120356099384486556206739948703020698036233682983179602937116718749470316028729748934142251455156610517322041274398555390517700036312724249452796326044706245937567105837635192222046514815271814867525105923304158379239847152175440079813037162071172453073286033884533660398514651303483960384741343651340691630401415007938887571808909068025208114576404037795111144190340474771709770905180216264287053446782505868594332223800333699225086856463908820650897025695014760190289807255278894166023028704730092061536865637126408122565942917265577288246034332480923462617807720992468505218287061704575009750379147758688034140477111119736735758068322208643110055901115593800097951647041616309618332046280489400507112437944764896460034749622913553456624713540477545090636774450398681007621974212058802610154270070159730286113898318929917235460422382393512704927630946113455600018917655418296065229228429435220240846659964732607821783408447204322257108213937401827977686551434646313302668308506732419448639257192778176339923845035714951947951816260530767525736121816834914010118847641994675308043177443879749251396355437855060652063312777052175727952264466717216976304652124442424201097931464744414575033503188825691431053713911916030504423066975116980714756301082579573882802091989606939252603321283321673960292210462780136402070334837876896809587373465937051513279578184363158180194222391409885842181354022009499657349933810792794848209930329801845440593530049032311846982852690819785180420646105464665969582315783645925185098355992064126657785878500110268294391705501079186061022315638854883941020877281816762450792205928195420058701639893244077898633993105484348328836658393776012505406749471469403607651246498625705036991529568812681037203386348208114720729263464986213005780818470802122789591348807131700553348033791681414486615749966568210911321546131413742886517656397834328071367238933913778000433612691346758397351073577057892848986722271910208407323584568158278786269353981593906237198913266752717510765517588610811616258263522452648263151694596362711016034296400132201702216365799204106618672370697127645846163063949333425383369051424902327773415539589015022388059394909083709496907889530443356160051400618749629163098666738933303843957678053289073185013031425228482344418148520870232022745490545202349905899649469658669750685534731293842333631592587165722338244982125828334497008952722763661261799027161369531521697069141179445171162053798144981547138413437290180913570117588105033537676075786738303433054134967501803757968858000837969071351916879622545797909993800990935345526140517461423058712922650265890668621587892911623658217471400831236619688818981534486946977725526154128230699847783504144920447518293055135437059159995932394401170895562165396314244037306721248932937105981389053611905001888066162160970092334858553570782804784333763105360070308866564053958431241341453706752218583567757231945589512246366720705445562047342829489954597002324367044540144795116985687117332411568972103116706478562964191952423863922658263934887410733997342170177536886180173382502696196766987850533579099566171852274456550569615478829553805739620343974378845563960512226785397821324773345607903666477712945206562585645389421531351599318928238312487444734372997466753667653140134608590350662065855857929119821503831174378961720572463504057697326938270041177456578852335959870103908645469432237975100034249937222112709277949323328562821463307123025733263376173616205156918558950123176329696561933124490627703796671756810846633175246174095936829200065220027831998880438559193103108121625964546373968544641189210104267549823856716911510230579007848535209809136984204728535755892585905540062430496810251557637699134215136357812990739774598520663170586510671873745606881137495656610268164749825204444279292504275535559522336809123385503674846181049915215001077003365300607247644290542245887346096961135650970467405266859522963547412567974153349604307291184544528794866276270523267706309508203531003583044295109581895474267644611150752313453499255677927368807663572753647046923955399242872199882629689260113146698577203354543380992054552894554276595874544219953658572531556188811153346997186160165150434576283677170558759044886845911360698905323023649626689439667438863786646803282288359824039949358743528964023445053183504135850522862021237451671448623856020552296440358862611262998549037379076561738115535962514154142773670161173986498865739502244989664676459836675963456833338105455519107471889818413384108305455017533786221657717442300225440106030472492585122046500196044340362226714558821195264307216218570996052346054864014046707633133987332312716138877354284406536601788291406839275488724831200527115567714082183498165872197481273310456293371183510624158939419433606625459933881666598937955717491811300330209529190777275325587523742026827174351174706867147259958161292186468812957670954443606966902922572989177062073278434572530670009012453459784558817666644370085735406037447508872119015508690458965932900490325312749191339268717108560452130699231489438908051513852895302151466379341703830270589046708646386320146174556639774371358086138938692044916353563373246277534614925943843651166482179737866105140070786157707918985842863483418704753417257340143545554711593932663525424081707643547755113008087309233740715163307290188782828905786566180318430873661375612630023391616633950501376249035055410572196564348937707532474994643267637460498784746188051608247271514984584979209717923814551401531735133197377251940545859012924957067382860825075290834046678108271403455416387553429587121410302494034371865943448487866077563899324602656655943205121158514366154858795601341325478298571792110701205638866444628433262400526734049413029995923353613153979959186799216265696936265813030323955193734066473442107772407247548764811598271415957335846903325191689239368901416257480550215947471754706597731423538527231885828431420249041422003087827680947262819887694468677916234024203673020930818782226029240306246746377034038192306147670105882486980875395843401902851568581308805692619457414608556357166625491532384428259173760620478292375935334913250397795575342897862332966373269316937389130671462969084331505525823770627252299976301590043108865397715185911372284334094152727555241650289923177944292128209247565644601735327414680650696389831500788004473155799135203058094900238476726212449426741105850071686225705839373968157087492252231461915724827591571841071186038070478117447648547751242582498933640761726504202441383559273089396823114869848997758334217588364071486006643213534699437178184263416917189208982163135963203927482928848390401661005570329386456061584402713938008941404420104593296590459703784017676471186640843200646644105190621377838262898300660490581608935234982133007213518047346779739189552742905188549507105238072961818886070474254972187380351341301554111588327446295564453254364136652113463321482986391717115544864599490018406020627413112981462888196498297296197298159810712471283062079225290217856808844487218819923251282095924775069198523145443259776825314213149408907817539989393240786367056512263155241568182349919816568828914601370970870081635685486195308219653350318406340226262680548041629331022628494282479873640500639709380088834687627982839100394268983802469605945152895857078624415757959302764343946851989824333189109497642641015655426653307433991962019859909431185607760975158179787782106679376979829663932055380059605510704261920743908650120551948946012494738996494058240460989422340658079701978087927100779850441788125202853600677754087081384555679574259637143656909201161004909917942056563700904058361155640631894583863764791665436939542910504428395494976218966231435062517721137207143097938239269351620967811358078181669977634042699298598463131422975781684852541003264616991117865460256560694330905032862086124022596620793134660714872762100127047137043184304904916730434485321714537370774371251735704581600143204036068351278952158849936789667061009682027722336948607838151383866542308036994093713968893568215511417337661760956877633755893811083511466896785476523903180757181836797213994195577720557426463715812903025708478859370951516305153397467602722026642271309764550067016433091113857040954801026094913908281653158998315798798344498791170847906566718854883049370600249778415388531200490154755027425631219419054281372227878204580553113814122355204506155034935304222772521972322965193380589826436446262596248736252195637292731467266694410278136213374630539381167798362754069194073592106291706418295796788868138632795050284164077101529124985854799323219541923220961818323205078393799341562687229837837884346728688615926923727175371632458915873106534256801393008113847664022251167748301055674173558409282943585787915936280332530881078632410895821087326644220436803563817760973956842460600338317623931892511602223076666607540579345591633458947637356558582439757956229495378573890443914293351759519811700126431124576164778326212050986460432383124473957288206310391787412704465462824877400929862541967398805920959949881437920058686412733212646772146337912593038035835450069173079978573384693370104515210429023846807090167317184518469782546394283940520301364041050906002772179237078822560391421317333702333433912424786191118168812490384600947678659167733650724337338839554546797742994196104540375833199240217635306897846660132279012919914095739849526823695539489558173669427169342614329502916826396806829404061410501764131063392778415125210993427792434094966849461162651732429579027168359871307470639097545428702791872456460301160288087761348794990618054702778394488715018454121036853496180190462533791548764419988820466446185791379642420342517457109857426358212400639478538352210492678802410753483634615111058999560884786965118296868258076632793847921313902344057918819844299655821766975378138119638228023019863702620265258420012616469761409660646621937153669972613550695955171945310599970307948792632622352766196176734963403873915662963522064372631411509893070257086267734035747153029637412202445839829560653305376860854572882877811335505900431879512409785023689508052567237648410565457384085680869589261037852501356227214892548962046898453160675900128626362130735246612741880638567166928486105014337168584342416118068827243522884031379251589087516812783838050117512929656518537926018697300517952183368127525573017847205489279135775029840990458737114908834139120452428009542189894395088797192320132319004833084275574693842411012698009964708575761869541659807762838015167757158451439604275889779995944712524817683347091439332570535354170991462534659451818217264671757910625285233959050796121243406937983048171406020727607808370115132972311661571597835663282024673745003226417569677124992421225208064100434272388454870731520210178882930041128766602080777086664769568089947633118002104129222516612153842868544630023147078449963802457939349878834590843150000282097471171393601811698177470264980562994869666530216082416468961687687668106032845829298212110165842608911618531357877983173590836717043180681434233828294917547415561050082343312918833937269579015188295019634349904268625564858189912811598032862639731664838753200765300931920683280513632411851187161587283123759071615924647619091884404862323829674483801238219388819742214442652618313849437338044732634592565220135142485527444471582912625560216584149309886950038875603631849773110496650426211533315008156595373584600524930532485409952968104913851297997655391990578618449563122222769394620515132832599025564093428909376062557739199624531643762710822591062583924353062379605585657618273590439750404535071085777481734998964851259449748812871249739257035321366011880042604434008705216341810379239971842574097534703804445225666908531727934688446646930024512028350413962755298559182021935239101937867474516162937809049636997654405933361980813366506255974950068957216636126159520319629626999968842658248613724808031477659857415378178517737623909075098941163821270275928500922084085907141323738456178352855835879550460255008861097359947163036634953774538993577750860290809455881695859747629916947433883976150914115672699350457786120256882504555611823471600417530271824456668111562872925571126479512244437260634869375737959177289663196523390365290701119024409236600839270584046977622068517243653245038946520362235824624990579806269747389643770661789832506609868425158021130501413569931910860438415348708216612574860134624223098409299769152543411649439939609133433290227880327755157434732048526638905837995828898269413716930978184555912886514708679492736415525399338162089903758058961359947759776435914947224892089984214902807813625335204827535429940116282762306919758660296094313186520972772395987096800654819852275353289324838181915230807703302955375091693945396436013423630461671817780925560810602882616946255625699410644042081475206975631737758927857954680974022181079005976253168000668036465491834061259956387569747312344416965001969314493261793810505762291764449081173950434873856468523891070694064894170399523772804401313915740388355227661775605844037878581410000504550840491827763114866258940006907473191805186919501995034687859352684086125162332151658341048329035526175131638304576054696223031069361308464157040340316978143707765614970251525717410443797415196015224063870832136489307501990203972660507611428162805378957378536967503154047491767365521212258327519832926876834036192306907041510738846924070998866581225068624522942792537525911825848047958715161613929701925282560769828776399057554678061652729456656698984748748598342401483063642699703971164138390176253100857835373050296218988691351527989250612309572898727144365060115494778927954756455780047450474059493328391030648131018515316347349358411623591501916868225361731937281286889648773777340393546024074398250716021373317273367504598704732973424844698626707754732151918032150220722119921259669702146752390396648338150346238282476709068380704402257128909488935329013909965021217748970122072665851841773586627819541391864164838650926174388159562009815013698302914243791378810004361495823984138986364345218781473053501462315973161382397061996604646797287879699161830047594396407540266047429166307539933042186490161085902656978134048635416977186420308561943173796465057171001787748061619264663741251366016996426630692613896026221886760350752457930131991680365380723093669145591561171615333894348703110880305570289279599849269501955399389906996903742161377003178229849086463604218174196710169441556445088466186949141000100154770353124698053157928758729534923150235310810444587244067750153476837381982722908122086601686575159238273465937076981482751343955388453628718680474680842612921691504217456742429292736385603914498902932992776965108043436869246832352809792026448868121164918687589024131974897405207098765781490695532906367497144196016571701430168891920073942485546525051603004333567764758083610497786075138924306694945286571329131456631109987732947750781089486612985714735279628830478862838532499776336001838695270518685203394128605822555517604513326453085413345094211092172261903832110102480690923671731145291813740501839011712205474370862212249994388824155573419592088154088959669949346520223147136822945178727998552723479714725902056560215100262498782862846621223883759816931700144856398891337958985893345822679772782926414052328052394075471939130223590922471944023690071219982419029393609117570890457837277377602992482176095125276726857353810962577626764005615192965580791855644675163611905749764248130495557299564980983819525504167305359057512427490385819555822974718326976003177928891616816367054400349569501178761232010419912742755684021488806199195688947875391330392265321417628895479935410580861742093861315801761937430633160684339355737058650134677706380799568009986719604789333958345799018785903241457703786160209202468843481065255166554796906880358090610647533370600861030408142728143485278351393721601548517304675735748776371630779480562596198454849781705482209805753568154391475569982152471646732674436239663402039864141463367946429209836015366750805103431633282178006424964303386548713735271462473835372573544449577899079263836896825122591636575560947069798759562925631678661200484883783415038851487940473883984070151515876136145984885936398716475718686868226553113567499981765403658426433078925472191882036421729042566636313051820158999348356487605660068340003369711893587445934725752975622032751297725762172068771981543304811377743224543481953249782293169965439400215149353675453675437139354392694549692351588627639941090380570611758277753117445156768337832617530624414029487735492133136030197977677559290340687595686389266708784239758658371213434897679709688741186198644094366642767976113979472806432730137877581615217747855227277962825657070627075336550236788657580363253849749789399364188831114235445483898043746795243266649049271219019644084302566139942814607796816954013463017856921823971972051305179303041218995751236829868167492958946782982436065056936232682407364356907609155046132997473879843728212928452900040600138110681330208457631056281108222387281090265440624853074645163173688958695862006231249777698385401295763239935708546372184707488978031712878525436863038127955615992412728420185842426028868631485639168573828256698234599628328591571125521216588169023069458756150107263488200407006929368781090446689238280412007628032281051647453706130870447096551361293763699885849100150795819639508109972578261277740822372429358589865969575115991435501993532890489452656097759393474035747058846362033421150884265394713693728140048448328011537129335618073626062101993607181284195996781556367506446422646509796074541595102202946865700752093969863814829031177837686623910411463846744882992718912571429430455324644767334288703569548511115341518340485596797770648504756247000277394436194473692318730241571331312422260965928255904064005383266162718034641697327545321031148140281482783618495640778212656363220191098540867939496601590347042959118005704130239175062477514737639275279718074290638926206733125056606974584002207602558544772090380319290820742274507377640771584153197764117861887302105452655873514582255895656034593613764371797042544731613173568102946320297321426462221366800705522488897149516865658172931296069168062512792874602382033491050519507118072188948948691050285444061632893871197497569678908436374918679803805481618240986700608496645457143314837874758874103746354061687927793974695805959041591894254293586040832974244857757164851698452022484261805596583571791288375825223803968323732935920314590508446475804691789090731383820164587538888825587333219642395676578444619105726127035307875647684440384383728853681708085180391761806834737408178920507723935362638078362275788479716717293319167686721636947968350211685311319967628656935807686682834453240559109898037016995007197042010757731359332103476373938393918047290898130996755033214592621130694373630942204217409228885367669400743379990647729621726858995758028645508170775873325901392044393777524276261768725631734137982193460251772210134809804742881845662763547555726212469548127986289351796558395522097961323523908179663498179952612043165554771740693030972720051938358458828630291620968232031061830389314766205507870536553788181922732585432891075812116370516138992975504421667055493254721352408977339340838070594924600759592692539301711624886364224083496184904121301789885850716871955173371243176017314224923009380063450229277298217315152752297900256848570249422530376170464783299644935263064178464648111167003582812684290345281019370259318910097431928925196076907131903802376724888213221812503625903946456066087264289588557082204312062446520897750896084184070464988911136725439807710494635780665733342107572458317945538231328311627143966717955988917808370618109910760216813110894923728053669714345520447902132604351412078629592876069735960016557303611672724056715824919677349035771141151250413353195005073556438215348794636254256716776194739848940870528473589520461045977995245226376655924345400744358666972705020767014144630769110459024607852794314130405603457948808229854383550929498875845586087904708722857504402588433131071641498667225233513932541099721964780102397000271893621868230242410016349018937305929957645511601220670593425249992976267318416050744925331740253743992600170408574154824684278026561112067537142411425416580351699004245045431516369507746281002759350945517633581164148142782052592588452633449910121077217742906561904947542386021803032336084416602134963420553048837385171317494296112780989259600138474818100776383603332465688737904617168090540336796397822285989823796182852927472213235307958845094568795936648913658813980685599824022585114888913114491053013978056202977935690191429111266463139043119695320187523933537549533080338681972199913652270919179488466409006089618348988568961758900538095076837778788124853070201668884903307811508408787465272065896999778585731529780343802382977787801221689613350112624743125709724692318068691641900021245423534919237197994598951505846550747929691674170035072155192825432541954305564356953539419782960218566312502265774997426271610212747799018149422043479466300010753876152322467311185281340331673224375203852722140869307506283133082843358211992710648339120791435786927249155601439731675467064702988447464361285220350582771554473600474361033641166478498090691031839104264605065121907765532885532897746107808479214719209570225431286412281368638350229681445856854003502908049094795885379981653423530196531989281860789312726689975995674823258888732537823488988983931079973633949669419047251999339619728209543084951896426021188132889461661449311843836135541629393287667228589339326865007796783384555818285883769850664257174949300394507747642868996085091264481555949325517509694467349180923118905758922297391332338844530164776039469634202521749934869121793485842508521104240664740550416954556326343272852685825552075992820277023923898039758752410343483279690964142933234977963366487882429466347058426863750645663973806564773054979979518235828961029452109475353943301166447147568685169268328612243314513674865126584685071352420428809600367313041875153410912439701954086776413065277495415278937536805846607801055678378431950843008307892020164501551864609758876364466414676489532189666736642792222671976076361795150041126169006431513078898193002195317844499589897534350047773746307086214620292999720992365415745512578963143987206160447570563680330967298789102638597402307427707250733835063772380048373772105833367050835282710662355601835654335479309522178841493794753782831148454587240638610956047051910193573235042338634528937604523729495484223918104895225039152905731224433617500147956733619527055769706814192435148375235766945813420800833854857644415516379595086657511553034876044121113709650786259686039579576164582057580457770184344153409267729228365762155059942446131470869076894991220265939904304898897032551306421896943886066267474611041907178096366757183930961459842179446765792695429502153228128708178538431038499076679288548153724623259722755326458066488728505171742611686794298117374197340749082691489820245359761513464699584257759240706890249702995602398564281193140144586395267578255413310309748069774475249044744521459080426308908951176970658902104519193414140991701515931673783665177126733021626392994238656630067008777725559926098751270624934797693984802635723878812612741273938635287625958009555939234776091510149643703296373313233952465108991292798183994694716771795784744708404197992630987193101282361123406644383230473776714995615267218477777892133928948939399627097796361967537356589252207759332934152441532517417667818960136245093085876070209666929637472685054519719630552874432234762163704133326863014822007516005046037440536362195867973169509197687643411423027320962826005311067435695288619206132622304379990236759271156809980432743611826587818913064084235445826442548831407868892979215818553446031653509520750019018472168147499661868391032396268490624490086597428283215957727626655359180876564880413344975213487218121045334885210990753399067313898338320164259742312973877240227243675278253803067264716255905799915848553292403587180184963331948103265083923764636664774118041563852563076997177103663012452946006356765851206777832702944464770442219584737199433277525238025448893220468857320663430093307223200465656202733210728406161233443360021974766038592669833084455077253346313650351458722708834607163624294714221225805819134605722080823615482032216863297374007842113801213258865041403825243222530775738007666149389230582193702194063037077501092308064439329542968682773684442643024745889173137841592215718163519218538925334059611123389604156627753250557748729207582054757412134362965209625447717310185036708891824207662456461348113459772276119826282103400867420756947465226723549724558562842118176483750203515435211044289027157286303716837776288319592570199590140004181054213269982703200068411013126073522433792732315659271810928696972972825249464535913033454811743724694578797513137208332875416656067588614582841774016247413387179618065729704724558350846898464482704363766424544154734195024543095359051116332039672239545051438469420698928670108597082614123723406112809016396703019733884471688102219956777863053869955362156155147982342021213464677669022588006968979647726179072799030052517699870688652225022281411586652833793165887156064777270350096795919444372528666088992200094836750616863970452097544538953414108730683669236975198172995819663153972526085107049516582998902751901965290643483806722348426486885830920318805675972214491224198256296620692747602690063392064834272522014166029904577355750032167799964840905238602435958214551355941859210254699772309013611056544658078590610580514650390068195625452723661346674564380547304789158973531833198030145897614331875118722671843661431661889081635066632740877813854812526388133069726600487067552775914993360701817235936071219660278701051535969821056362270006188067021586763510944392931649090817805853261222288146702705215620346805192760705103295496341972731506398010570503526283935951204249542133950414290403256130464761799880161082622962262209450639606268094524667653878405468520983778579048140237382636329967898359362620002471367596721034389279377679042920680200180605131134183296767189199401135934816743219812925965543839782941563403993373867601910684089033994285033596860888555044196840563736051727671291291528779801997013954888728221583556879082698363410773653254177684489604976323463025384931477742414405622356133609015114447125215802865815011668237250906759456460620535818078103889103811445937382420240944757300561648297080346815523647113202046302808163073424227655931050687645738064726669182745393324232962420607633588942713163774078263594305256444530633662321017359908824716323202361004458428764151160389855356731649295514856055304765263522189703526429833167810877478541615515701057412657441069571708431683558567386665504807752630488298851636591069989801485048841197030033343335903905872724475414383150474725539134647198435188247719541627237271615878802637001473439223666963922581091827245608293480586429879326297794517248901456901817842780154857599526581811883256968018948708103640387367835402623345700018410841179981827777959783956443097271059870439419255877171401870223906114621443119289883655456670378017806677216843836019006575313187113415949523863674759809251045476684911263735785331778591133806608077637045329712812508820473601986209436527859915586082858964914267184056960456289027886674599299321050524456478063248802205085739173077916065695101478136221240654093421490290438452619201414338281477291246535147849288684139270547327566681890030709163322299199716188703970742916193779014101815909970336201530948084627607243793478468719890738208610312797706296099427398083427218720170889154605266776366250297377929505645385287545673800281901630592560263561968240554370734564488807907463468487239470014645685565729836096039768045195927828406534822097501815635979400082745322957400927642863143664669574476226145428982194882431701073431297538077725165276362372615344706912961458344205446864831949638487154392090706292982668749519643651927077597862795466192777534068296402828367210864269880028724621356122625862679517246979893267708975535040908246810678964855478947768794418397638591864351688723838987006988782234797339034918155102062199264894436015181179055031821201308335612828728357495428634897118882584300168571916463620999476715641777334570096413904776976035419833745388343580909997172020333628536015061083279113439541500755636623718688388273364065832749563736132725321805972816305780732925889102640151603154746423814148778900384343067422456946487823508658676047461378839064970689249404129666894331411204056581043020592472050852366327881170539882736961480000279056607647882273014938502334251045933751949403978411702305298077154829571896640433436914573688820110379984178624343518355533084665388819925578221133310665641812075847406488296096558830829727000250856946683069774233066320115430552420656905695916863410231948898448969341615400912515408887492531148664708978836092734257454859720338129988579313229206237901670597675495353396316712888276563894907828679732693404592144594226925763056104857996805081646494252845174410166373343590792512241619454412058144184241968474235120406905845042969071301537639498016262413442286992164349328530295228779282413733221825624720554555699088278067871484859274836360459322808736249720213689372312785680539196344756835112394951990622366234410842535882597129247443412235249600325242411437186360442443061570371067416209889269381690640929654624061392085189680650724861992402679388878985676192185640186551887466865764418344262095739658142502011722426843609829572440527741162618780756465074519871059608661278545954811278616496482232222209867836945434661364691450126875191354028158736851911017480954633052812063975522810405801477260750647196712110154603680795805239732910667398037925793900102160489830788623624488069570809748580790951457443641461910980416815639262222683681250520854361985055695672742782877546556072238155536179583342090668133328971967016285508407936860927600776830479828327514948065526477774905300367462642985851032476329310268716243601368622355574821576708322540163425171197631599449206007278198714672363810507771443712624133549020902995618509415427684131087908646994913601549580061770549627877418158395158772015059967781371366742141977326186072105768342910017190936966659597421163404510581482360497304621412293531728307003102516956351426716622250036428291189338356973566882770150880785842722086446418009587243986997352825920908735112593176946757311552115456520901499037905090074116971085296540694566374348371787470946267804887885938345128607825881393219196471393131226005572234427782628609034614208400680961219503070269905403156659466036103387910872934906143347773934256520528307743215061991758964105727322304371657812092222453921022508999877799531147786561688702546316610083853837130914192892693074756693640259277731585162807060880509377745510013426624618855133093871165746469503919093847486332554968144146033711307392642260639452620838596326279805101183301931615226803972503023264340834056686380650179176389903387908754537929460840847875336302675588956456252567348907566485730231248823502473502779368603304582681398967152514721378590018573007336993147550454825548554193824884802396073266483038957812181231820057173544778866834938916822534725584237973590993284686208676420857469654552303635000861573244017248279468038468987015395130064047537286519969097297465408192083802011185369580162606899114588273166658765818280684436848293739072054899589748124052597725860553470776941310179574161009167828157047837502824472314244357072369229717370690873681948109811237383434951370431387849832086026882787792862175593556554122476801900090599521861582167016348225575164938480782980780046303884732215008121049112832428820931638580523475280052250686404184551862955793288663716685639172046724156389278022945376142027527885392979622000631054275572108621099349740496913975994516529307396559623471183631441745478418353224469395949590638903162583215432893111734439508186508970969121190765749550192280823102584429886778456267957194329561914178196440431668340634694810436309811450667019871351555564718326427884176147294466296856615433748049457644000739087849441224079880487701274321178089729614153864529278301277015304724893826955561676802039754151575918303821410226030912016038904265261089086222673499680726189696615280520318613922770346854460699504128916903723880106248280503172849677976823229362012836400461252381567444172627918687455147634725686994610449730233639099104632516225427052639624945138540678285989342508502939177691544249009238539379253828477917788156494633852425896557139575837379868360031591491299079288408129315576819643659781464613199638818834215901436611292206352315773765750094434251326564545390691212274926578671842272027253582949028938485970240862480104611325670966554028142647242788267634760686762365200819070518894477832554940457540277461270200609417524543225243449698350021645276116769087020655449639251769487610059797237056346439929377816468378458221836249187280082059884683983970022330972535946289288925897725836076790607230668847005522678340395743704580025574746897126982393737218106622057309325629166983710577796296728990255131330157525264310713386382020167589329285559363664605328767824198986128883488854585215382378797966395045082038788082280849323975457348045555113102190881435724197495141945689233887422292210301023358520753658155221900056291922576770606209214290265051941384175097231196913725707601672111906784727091607710360854343144428830051022767789276789811447026684352337126489385380716865386587120594329074663203620979240476370950576360195368107679839186413173405197235485891179444403100161424472042806857909306305814930704943479092761028724408453361483319075021288741927248126055008570530500220301065798669786127945665326127622483002134555328095645099447791535794362793494141929944794547365417149925737569426293136929950321199608901689458481499345461712618675083700377269182777953708930591908312021121923761751038689601347740463773307014638536916522525582836897161340583909306557564491404682681802512501788183264953139195274451377863425422508675099760021711267300024089620934678678372887977063269880735948057739404654163309692116967063669015896182153765064980836787511560985384387215165578670655846660922920126152070956740184307007703987213001123726767908581762573224487875295718531599631124137886771831385876175089305385304024945236308238423040578575568678088801453609726660259231346623851265175517080170346355583487770530557408776200224522512837725430173463667939598006856614089705700898981028283353726685182948371082510332078907363442073024337076500912871743087369479961314862728505310746818726686390436664920459782721964256628125947267470354841945422444717708866506194062083434452012528229837003466533530399673082073461156343962909230815657795302419432906208851876040671313690008196695375163786724922899468815673553066469545390145003194882751276657018656236299043148646535549021655899407284966075829012467965781931887747324944094204450363796596609839870732700783784931162119086993169490980392124028452998906350719034579188981226803157777573666866342475640462240386849590799696127884224788285336151357355160940860733701454612026911776709612953076147061382339231513615029989109365431941062429214151646161390776777025225377843765075762956487668797713747389211563055537403185640736161200285753276881224801199981302150895572437433000628984453026084755645412540742941318641294892226428274911205696086845389501167713576018344222005167746043043428466576573007059844726446181647082828020935657742233019741738238164021314295723686354373558345646387877213399480875333393173016632870429920552899030738340478193045324516077210496901631822926771844370401055580294800510297142132388845736169415497879094154286764231941081339220115241288479275837785495695136316741129206231375517076595998837103003727756845247993442669443286121034208963807668716085229021409391938698440648624930786930823376716240295763707464359740110986361072137809030445875139937927549949718690039957157873131694903618936417036972859186281138841972228066801549846770289230760594139281042823997521100085290032897943391508260143603263165287862503773844418763067616501348252754612367799830182509692664964325634490947371053881099362431144490926903796608908976349850232757127567324393259674805955102516688896972859439813233228021383207971936806822518075423666520577585767349011887306543441697540621810104501896165210076094809735400838202311752669730274460352194125712979240044166970404101324734307087408090114577209204192736520923238198464731785782974739363944114879537982814487556563655878377623429372805094282953588969239606690670045024034234126078402034032836282515815055244389749962022650874237183317893549746835322474369422019928063168485082894931175523071431249049459398864277389979120581914930800075357765693775357990536614811812167102175188165417690558597426173846373320043617186636629389030281491984140174654984936563204778624101613806819339019487097536489779314044364714234418179038580045417863002033300988596059097304652541128928958982704944553834439248341761649536051370005758976936471377059369520973136649828201507721920645596830388862531619015677858598459679213278756246599154028106337458649994944982021476279875501674550391307830383500107025532898471229318731287801233660055706768108273426458074991034236541535247559174662430768847926026901412942574055816909001215816142459082120025245509277487342742945690253777231476921530324001910807850880070564853645710313529317792536762163477641702762277731440532981953173468805590407441102184814799642915738776585269417621833916685918903064190280117608830006214374344590178277843825432611555980930507171367139174549438362060203256623957063770750246674045830041073567232603547188811141454019388213373008235255907082729882893043454698529539006492552981802838779235673567561836640266870701088750041697171335876281881068673893489570396397364339495850773472508297218536573617139055129946747920893531931321351642074260032194105413610230165748281013248634589765306020747482779417345039244639980647757775343786574872614417632783762130697898306396131962449174402829623517046251095646554942305168629450504383946975166223239857855859682696642795997997352110061178476095748437641100926735752188148882567759375459960607265469062105591462633783414014769472173221286593639052550014201617326916961041083902609317418766587422074582591702994727545055628670084975571539619528873717235489578220634522962285308390549452792132566340756617253621859093390191551753983541474259367997731843927504875083085665558505539928225878164334041938791088572568052949454181547368873157522144368435680713287784890719013945823637015268234193013949289164931719357384951622380016472310955822662248312668010402932640071736559246146030622521971544556754855659823319623989136150983349597930404203507601393269033550747746494473273813242348102370275718858001744786661010306108087812842238988141719705692803189092735683272032592605685979953333933677045150748805715260532940765661109044702747726701304485650787358300150151190201238757200328263243311530130259116999598518161000175275843847070237956091767420309830826904788294227046990549568218035419591959762494981896699294468162385216896189349964910138313348321702320191951038229727591580571035323623151418232076301684905035592135251903834619542630764748001681824845030478622986375594874144492334425994356987528882988458721657634497748740486110437322524570371706854352616142814645823476459275564682785134245296086371467953226509742244861883501812122695025526432711093643869638567077687642961795357901654654026924425375268543279154357405288299916298370177644693136291086973135197125871865845948132463106242172922578082750181413188312955879749323164190957749523064438834830182354971735461463158843229511232233813842474456228726794430660693609452265291917841004725433415270137844678300722301690467054820509207179591283799539752626497754896994316880118491508454189643753469848800688198790641015996059814472304119153794683332598108376363318709450863727666121999405275384980798213994202370556989892317241579206646880380772184762463079203064227051073234746596275267931811335650143748116049865294345722771011447740888275489245418179150295715450433324250263770482008617593786846517265735773872954235405893372250111292931360630805625774162119228605184536705862449574896943978960063649901544406323628405328726950024840521715978540898553892834485696213155940856776275655330654883595416124471397525498981388230777851378961184352425833562416812027601226546105380837642283224101172144731246282190843453284371472022023868936490554316510108372061587906588458343475644674028579892858550605448243991312789696451805476029278449724889767543956222483457717079402388723576218571245924653609153164615581789026596402878355238382172886915576184250098717634008429722840233537541046583065123066822209802347906413018945884326936634214663189527923361921090002730633914095303661179674506782276600738384854097577441539460192318964902264767164701415522520730593611329909835031638673696206719203863146501886412079193596192240842405816020828600635153261624727404334498924544925708519905380762358309188122049922176145515681363937377301566794313896414744221349839077322877684690181502821605719851614022285708636216744268739401140776035219772708708563553379400503316006071445238015265417083122167806680541271667991574303243270189641981734333711903514585111797105885546782978821008809523454841759611200698048253028022319797270789998019212061484828627314698045644656846949403954209072946719870457669034401329777138135827757788943363132963133453546909766514439198277713472251612000065372380461942377959271418938144602407776493526659489223739917771585219007605024734977281129965825695959952968704067209020320976140006468388965762291876501591939120348542129641046731083110289291663843601974780721266337203582250543622595663162734463272260041144696797272945819003056193000163237263285748646626749213523952628911910448315902284857624115896045590905312822259371061960600121611730438235815334564849943281782956721985468475098577536648592450188847703998363574860162250010867065285686696787345187037418485413762385203080096658754667387552583401408430468424071943063427552852548056818629172226766948389128885545604899878613557440655106027375383984589752237733834897543241638039526728131083214606235997439627393652777746074983989503767316715673821057733179485711074937527245963261468528006333950367148134834444302528804979479076025575541185254972302162221007973663465643502712873313297394785243600139555332841528797299604691246037695060346864328955075541567284643211043037775398324571854328235114300270798701160081104820885731684830022200556959747648796533734498513320202773425424677023452867225934961220575219942926111728236845859519752120088445747621655374191777843041464730237995869077727470751532216411130497411041230049255648110310894765036665561736511936729637057663077726295831520601841274701362785423025784750034799728087522768010282905924032007428474880360009468630267741772220353369293636587248470044030462497985772646474058769640593819167444482582001951817969738005275492771697977817368721764417660739696255800174622320219662967072230819503179449239759622865974045424439272905673525506781328680853907621484800045118098504238953462839653784193373308719660588446542778059307303603485218135739422240365786706211459058701919693677929244235847793854612127361301967665451178940458987293784705870490063190401744502147786151300776732870385517418951370291957948145727086761727051865622173809116544904909341438595039788022888853402542866224690900472038449751879204753039198234480206170794305772063001155256022381166130000390107614791664771996167745180530668726923065861735052773777687315770239024125025414807070737828797031152729922973991390345074764752451946725444433944872192856552178739995177098072083275190452021200665864468936891761000527011190170884832255093033478766118462817743018931276183466535527832782797385164982758165533161634430153056290486712511035239351362979890651138660322046443317770725899201399103310858423269425205149814444486529326756201032971117436747401065702173834706267771930600934230499883185544100347278445061661363709791585276390890234893589398797742137485240516146890347452072041606998783568399928893839603993787418661258987310606461879802777749420816065944364735941181945093064805475829395352466224645574140026077203131494685902676685343053497018479075768529846014530605483383888357482997678505891296323473458487816895294274191885827453390887812728320174122450082196653376663655194349262705871246724140628936326112718032257780507132215410667087565739608554580407411324490561772676171828136456389645529802055854818373916374639498792725820977852628616589006306371655600591154761628146336806027774984592577734903600917679689554603613453575084001058117547124496704017699721040437358187176952313832022059768606204982991673588142234604493275773605114281604293425826747530404305313379564849090650471793783157901014469531746311827692899573673421089279566733346553838564121583734266886999383161397626149858744422106955917640422240069310644704645099809524239881295510235449406030887792835272654948077486510337003528713440655302161881636095517751529979922365921165411069463263326997198745891178726676931395930570553360057411801454691579489330292928834471152377191062843012762022397639811731446701471559994664712710865831641248706311658982780842617365621658407018042199888731105114467499685133232495174591899788951549261152401937126202104038602517962101171462396108911597659738418626185453973283411295902217416271666989279386415913808423619065555095427675094315293642953222480675950812727031949475303155448455535736571886741261433558269410197050676571558271229199461134741602574040133283106936499840953269607160131788538228948759969990491725872482202383841574111341951440225328159416030668655917572849049004027286817725854811350104808561472884698171668861595241816990252592590447598412701325807183921597684150185517823567310712739969426429998889007566902120228403549282812283511068592559463903206864251728292267648461259514059645631083161984095779305800164178064179910287440551513113004150568783720557841364463119232498499555085362198763253921022098855114187458855261622905533809140295941993302716309765221304474769491908892698487489608840108748375576984931242632635709712239747078156038625023974417736210252242389393707296890423035549194552831675769282234906572906894709171526370422667825172784699799181665693069132924486283444645407216916647693995292398560062760624879255998106420216832319812422976623722422575208004885225181234025280174398523018017311089910422781278236595928950138429197746652282794656160632723709815833830082425693978525014541709957647084377810524764442460048626329172446270182790029472501191835711481310992604285096060409850838782215583196675677574636995900557574791667042998649541764912463050280138894259850886892825376962974425639667838695269882287582349216049077444413101756811620410820319965890047349353077093389923901753298240178511563145638432475752772320090361496701091129821612374653715067352358321502559686806539170174616255956352944715981242547930096497442534512661341685674668048504459331488733833045290361722665052153391430118530380544162910884203194957215068287737525936639887072977499106632155207762039298353210414403661260914467915374385605796314088038513181599221800967350931998861100439889498926349662747247794828189968176687756540075477232265819963652135772773038386650453262847370424088737533672610380191662460985585879762297266158664052516404636469781339171246360233525336154129870134360822042739149192830288195202283378310288673810102474119035889112760503161045258235589326658867698299626647895254875288864175664336758539040859254868200500322703763797734894851674231949702994982056308664040676715921523388361779258506532711264810725487542977800354158398734548971426279533542368198441490895006025723640380042917832898330986949216442313199740051976731066314321656026758378475387084126924751015163281154871555789797682327391321342416211515103154389636071544590950859889304974271629371508257136942410735535714888714371166651767063973081889494109786406919879727975709662556113925148649234248843735683357709207572824996363316742850561199954015520554334439172809583307755843018161800173407695911942910285057198452387938630086760889593406235873044837561997483914230987033130130287827095973482486990271920646408022406841928974435881353218032919816077740747277141516897491068657802505867168206244846625963559792700317595049583571669088977104991125547636767747437899983441515929674408288346165121205757336557561588913632818733779846951396030763316987137882442985022917076703510820010016936983175870679144383466915140678408794061356786416374110599755054195246072622723241129868034721648429825609186073220221143669602927398131468047426929649187155658165142772504269262947421538945092320008044156723744118392240168933493304548762168723265858573963283717941160636558224783681947282598064220211544724814381985923006827722269953185566639300776457724778074061879934894827290251564903478854016509842344323415748362325396369816927635604192351669733966399051545345291217131379126905111816552753251748654130704068226478490573237104560886740158278628066007878615332467326747794795538695498232900333863154664492856141579104244637285720886646616353482024510565446648712532555150506962148640559468855549876384569108925098766331113045537598129265254845165979633880552077216825463761384755295806531953009070496183605115822355295480896781972758717396319145605963302504360964899761041918754488069795523408923904416287702259908423751117415536674656317421673384445183284982461035340925500057126383285553474973280607698529302700186300248911573139874643222119133118577474435827980788475964467363286133835859226725927795166653336430570269646978947584665078960156846231042634131592645729604603816266189683804892912553561938324519710945171256029921497184849433163674638738224135933007284975090770084701019790405003648499281220805598485325014024972199111173044956779471968169055312904201683895629773276960528260515590272876773263514784607039577351268286353477079719241313567374151343515171778347666467560477145493540694618578912788657101889155291913476066993124665682688467345407392236474779241679734117344021812865322434890728102848710032312354431049884970529052029585239200021086584964786968585351031927728406478784657672173636289711010043842377193060128466295015433618337422514993722945806205573726191057763282379547612813927078371403561290320890617890936117114417287045748302311051493143834470130083324755997563164737459715920656914304685341817324897968746523507651577590745283346151575222981657548063409373300009815930187458032414758418745606086925544671786559593895701151161671869954015029111590060776239382838646391501958122192616896355932996281554818883056873725550269196298169535449829896202268322264284729633718193001445042285640680251946087280299070123372227911599761261408201400362814260205478807581852722924419885161618799555816775041995684292750392082562762798812018270524220822752928377821746632353689450246392820987173095643879547437590183875187269888777997336260211108079373740275522516287607160792422205197587781522192185594673285263869998094638792541904219888066268451235515649842312809402673331597802635351759442648103731796018532392392996322084857052238854401101143449310575964802246129397833651876987885309280202450225258995805876842653439181893458530548203256671848693408347206302735571161990476534225538695060865749522366034663982432198518992881975121451283664862374345968369543728591622927119191412967458048321602491789784745321953690209919397178793969983410759264000190986328556990781515687941511064724895206692533824589748235800393341583592695112125876629714348298719549353955325697143222616425283136435369184964311049394688106567657775970736168576828524747250171634068528426036372012161062640847752901671089939639944546296916248461808111456946714126985080764684861704622922545744456849701115156662360608627787878073864146071131000478843892517796477117531542708176614689847508317652386545997255101989233105426202777702182169694800858868995500729996700778026915717706514178641572113694998134796915891766579498797972647707976230490291061705113890386364571740174139543025759910410534862384584106980044058794862717167257675416011853553959724618695481456090499653315461084075993932278261130189619032448628105871729621453106726057068193975192646373632210011290566092633098450768590520714849793182146325152767057778809002921782541071893887848750896005928526680889609308239117174199310442304064810219295128202714829755559628853735432264404914977557232394797656295965291572538322224209480031596086595373815323449948354730597514913346487060249771992709228142681449213787370745605202597122357782136199567091762328919186526955353636333049399319409560888365715993837931665543626805973536182671025042756051403944857479922444018949876770050456211185859062765519187254400335329101004701962116391395374385694240876036785260739258839962846355679279142839766932226279206562131398834725922319972073088126150231756277005176814097319719705329738091315836138191685648266546792556023015700681570856960972650711473571076264431332819495069015484856727406601692384954480272108854882704024967856798827532737209198242304200642532658885442949088834226970500279471413472511217960887475643981045688589672516356235227665020877672627910604880611171975673121689943398935303849492142005528004036960991014599575899892229024341219427864165850587877353234070861448110181727012624333589002014708609981994087702137769168393691515817589725923613260798582566248114307269085111571732036973533087741694033508036174262040640750020224083836143191312355527700040912480074353007458825352953703370977524754969315265538910003845830634787972779524331743263906048712235727693249649860473135640636944183339507721988443210113476372323018183271541555748919585848620632365654747133890558346500269951225696281990152904517884981518627178513530031199875029099802099042980169358442807605222500207011663829647440982728534386737588141958349021589489843180359691108096818932303243317471091236901451092086651790246612475561147391849631961841741401830538721871091698736170442924375038503762374652624515968550803793355218486589896309827762958221548190865114019929805779882442483599897220428947153976872633117931686122078213472354558488050164095406200795772277406094499721189993860840003199392612059123338336791109369516379923204908802072088823304397058157250909104481693785962134062394946918094679029789027527454420144315450308741450487446730127666659984592674460485061461317412399005742134520815567474064002355820825306520230366838310048317815504250678848736066642752858370460716754964707739167308944523050480542809315814170969477628237396648767951770979235523294923044020514526581154973686676113956699304502961498818872628656324672594797392872637794282818237764555426221087889764291641609350374576181750087520055665393390133056829169846176022219732437463951130961898498298815942125165552399327268619163324761646745477651159840906347272730871302739718801872318255492061931438825399666465286857333649710599407076536121011631281952541953261146779245502597627175022669255959793286813647241778752240402677626879314045338963294475852604242530417941337675195258620057752066854019718732118854392264071743501941739876928748531654031286916345462304590195973039622257158129732029561162374045973247091883012229741492247159497542861050693275869126806398992677222377514057274513831073548737848073360632835611270517799476069090871809086459733396706198151607012991515578770175405549346368049813826564442227016181030308740884356129072430703370071987353135519416535762962032940159263788803096204658048020675753396277588259141184480814167149088263873681600276971899492026519699241328852676208962744355734177025333130966707830890459707801253142372820426316206278583923005336569678521736519986695242575467624485327881864418116241777806205750656502258842769992476382863456847915275254643099917513006677296790480333180438987238629747162052222215182496719220363435420720218055240472508986077483746225316892749587166714344386805240266539641371851950304064048505950272159053756549283530903797256022286147177062237458360581544291765224106725420365464492165044415006934788714005485175062660577769772139086398434101127496257172271044329104772590568557246283953334210620866671210141215220814121514670875632187994150042196610133736609380752294337809579580084775473998270198275853444172969318666595780888807386096571561705882511051549557314073624267810768508610575460974464483099831225571636547560829353101456267355195122342479684578273149394889386758569171581484971419681045883969524168972712496879979646292721338381311613429471055899792613221397599615824478267637915612896328831591647475923808366183492164519559089655411645009594126880129670670353654446886072522658543557408425364763285408421240394170745628722417247257385559004894124278534028211187343433887562817253102256699687576514907151636961527052547609304207005488204935270402615941813807350548408281874591992375253362858789612120787564133669348513448472689652889260721096188946044230628164090159430970912913961662778320645712308382595609144529704181383426116509485941880683180094665500938095684238158018994126169401866674505647259926743967675300813520554105345241030273419450554463248876320446389135199230752587926609086267765303702125670864901089158179475217084211553686207131282856999552592645671727993480263371817778551901581025489081192909895320578238347572796433919428214364015822230819053179736957724298821062274996020010388595038621273513367770991293374770947775872979604067296440230522497548999763254481407808289182780144012474423091979937745863529796019609580130508407404690490680531725959324065299165844879695856760919815018746113294093143397989947791187590748964219063201283938944819150482013144915953304218926971058888863214245372033076860570754160627566298610908770438839111156179323357170373991176677436498047731872840991316992202271258253277477300733220027543567171496549407859897661043258387101550915160010270711360647925495600750668933321601167380400208766034494767965836497775712310247692808087772446580502663809587888068674000037567455046344382960619519809517615337226216320266130329192606065568746581154492065263692690481251365425797503958341097873101876355484192797768738809249030724630412432427133821479643871767474315706192551124442228127027299458261322128215810410762310425367493291589019344007179661297053281413705269738852149414944333834816384605637552728780921434627999674990206653293937484578368744388514658783470664492157298513098767199557588367847259217599208031456735836663299677659847362143121845802097676207095664866685040026490987341815819287135195478274769066700109379737449675190246070990105109964557752301152104035411820446355911395754658722473647560242923484522220493809058791938653605110229995080833148612914588857335581301417759405635300901584926272851217391428370407260749845651673876821272645059405234889662403743614925858309575412511999207293469250222768822109727761045906682625908255777918352550174726653746143549693978752396563289581731980858149966459217201409588582462051841030150225532456164986754637362589828960564089653236465629782715099591083669543769916550282505245016318268525998340022120393756776727476203742157321721327499654326289931997869559685622772594384071279872962955722601575342691194458545945302765587568674173759859139475470148428326323879666932795736518400573382825563429060120408833603065451991196809279063776683241799702811551536548696826499909928928070873214365407398391869813625873543548362215474899544184617452223264069087063495620157462175332827038450461768427471578953785319574053340272488059895685018133154295153450212677467740528799077105663016121979164927872599388790606894583167239720320499995656776346362824052476400479196716185250480013599410104142205807472960667406450045987039563146697612878005616117446578828823426422879874705375641939915540081558272507752349980151539172680117608686985252440884671972282784794123370829979181240627505161275601671237925903860411864791559090315134130302955872176181647643012120468955343027189344480764825898988637173351765952844337358436414607879516104495445564634132288643837022405867800299782501992088613719856742521985079804934813491051372334258681389900400450571873870610873813410654461498384820053991326330686601466792729995760144241551678390346279512957852286995231529721493068404464543554746067871276840208987642839863980640331886928153426203086967565284681436898890273209787076063251178973261741102400299126499077202597524604227933636546465561958709638163102683728633761725590980684843533076956748024141871533979004189108657103571286618924422691617044354336807607601338368769343601949602184015044229006216069402895893202579932550367812573556215089533875360047206943811805233349750806634307461406330145927730803278647006519262882077623603375139381316763028815545421421533494372881958977420456907792942429113593028593065034487597324551884717057720876558001152865816209696203141584180039989186097338940724161971849503595432824566099610285196783340573985257892582079215331122975915356353525633726375605541601262033484831620580106961113126712920525819837551462586822130469136855181930454867820832038016907548415503394644666713075429178792526078592964798676830948150930162008650175800410473978467756352141475721384205308961564041911129478983552416159924321099565336999402991150928081567821343603251723814427374239249307571187273264951968542740787163186870952085999413649591475168931627820660749331122306052630322042893053872317107172719632121770942346531334535505016267466248483157312487046472607130673612514921394918044110780605934808648269396233939852342024148059287429580297428997245601773144611901107531787629900904352419975836575378037065863657173047324428993881200701514192643629932117101293640474967104578224413189755430057790228140350115712074077479449237201602827455297946261015846382696388281472597433209948800584097751250178579932779424454365062476681257368179254660308690909765257425110883771838293551790444582758718361368309648626186271194155130764249281069076409102021822945473987755469500901713500796884601267951885261246785792732132434023275376787669277243333280509418899424411117501650203184444579619388170523191335440091509676653310574530254752943010428912668600714295108206148148156236167482649249049333686838596376192202333001963967270156752474856126224839383006192400929270876248686488082998901453311474918055787524279768985801062683588590516759279233903084319730468603159198299296473643042119215792449515320527931045543196681279361263709000511239100328477518479139588871596797657630032986637157687411913839841446422070507662828784809279275255260538604633477626806710453146909999868914576095182483922328134753439906249637140018492971696547898119339543705189713918530862316252283449388023835544790190258050374815917801689691699156464396171232404372124583259871086133467590930804186957472946700657616076691613842882991390516528291647591945967203443973256845437103648646234543324498373304751669925748852649748369485604778203399037621169496063652097866428050500437173692043072723392958187097230231355349609840546699179492087723111492509612045139000438085131825597428930334187003344069368795805422970391686416652639496958274951676230914399561136926625808793954733460932446308931926302120374735887801634058321911803057708216216607529064986105906452159241939169439783046203097967931655319829064823993181393988874382622186991340866560468497137018708447112939791629345515816515548096170525494095775592738804083801740201472741690892922490655248965039586814638936332018529749060438120935257267715715048365051371773714774640314418328285576333325822349045074475644849859484884068027621405538528998043480251754714145957284190767162030652757874421330084705398039964369532661952674568978582652388994226439474615095388856943308187583449923327646811889826937737129743476792377834369305338349446802900147396331289036952731797272833798040556076959667374149714249870934015563581220413015728745041990989195764833310166043289420768456687003197669967733246699253669327596066433173771203361408855433014763273644336392745148453905772319435820055925211512484930914146614868272380791084745582864425846441379795092129513456883704181796326154416747763366304992426542058206385658430813547435197438992804775208575982909639788071838198412182898084383668878399027905949943946296299753456739543722512771689929246848884123803052324711397889550817844097649173132934612061891608268207039203574313717806190184617588372537426433014788854219374636426663017933750426062884464372367271696719807690672324018627519069444364672958361850913281408555584546764895254090184444576098009119421654329371812943755511480254589629495742453962442449168619631865752529024993224546314501144073430027282085193234545970145680860901900793285441533328721347992989034828535759577632031852644666769276923566206059217084286712998095701515722318046142199707290907477080383889682782094021116342287023401976336137957701723010744972584051106593457259009417743326352147813671784286103634526950212526774408771306918908020427857146011756572326988463040138173874299898178971087954951590642149890122908529681692115268928164315123183540214570315647991450782107741085156828478487310904118326473556359061884247776937837592074808028078661073485564005659887679549027789395678395544086207214865627291502392556540994747381790964328117161102206718599366568388118531181480964582100565102337905837627560688227947817566932997301838611102834083898395846139440139920246218772106235160536533981455407258264825973546489347288745131831052965144085379434370184265451574140910861431897490098561557861384445505380918631839886092101394255161882100290440219751549472217169785896349971762365197381265220105326874450822165787173968419007522202411656258060367591398697333766203128991066691244992051050195634302431818942401739929393660391837457295874421927932854135354516367921206675472290621161291593466641400696402416706602849385964901481899359050320538958514474969691575219480789285511844545929931757882825516737628540323939119855902421713100545246126239045927336790458414791847940719868012691281050300959075185686115940730157737888270764888369529260647020500410647918420333744009909796529647925631260760798656792578687924379646819520983783494310614451473678996783726983906504972427504124902163574056269572592657964059507531018548508127035652529087811756928301437808350701571754606642195866031670207605234761171574661541377179271473753838588755330824260508597833985518996245768811522006911515109671369716918328796589167297852144454692589116464049763672026364009184482030375631771550073051576923901224557143877141657828630372290543191246693346562527472393872852200445059971325156248370959542920609555462615336981376299944765196698457575710516156009095836222135415647641712462095725709445659046081360727867550789993657516080585469585445815356966349307867856698883790431369987163523506880856799173786555564927141312716958370339314702018951151382362699868052086790575938991435573518409780519871768777974720852170296031212574732673988799177098415369567058045906239083334161878455495246257209359058984918722688213836633098586645300235258643700570359285104320055526514586457321092287124393664704436448998618463928224145900385887016440307311125263427414072886492244901890224558637790855256476235814067553020297871670315633371129113047693957486820405702328602329146499019397570677243484848082820961510332883464093730224986209425107278954888043524167262746945029226945669167283658981642869417636373365766855810478871600591498936771404647831043604117432742165039918999204134194160162703032419858940253990547985801796625580778520166898791308456541076396028164580279884551523660396596621021937880840889273835736411742195305981332086099337604934563513730924040838436438391556290519208366977364520603150283888189576251368068576280225335117489913760967950464359899243728280155573049987897487705238988118867654067482610630027251570766774015315534292690615855655733658371962705756161084784135816563957316342359679857526454240405648912035490871204449562197414343449540540135568392028137456174004497258352373460068432597220550478294835375114953452826361191082764565550207614190984774377533367671479560251398253648740328471149552546196133981795725742343100610700298045330897222089317244615104385853565641296084008307713425175388492429697341268839557168097587194189202561340284208877728197365628680607022408012506115113763362321677946108835182864578193101508795703566541408928784995078223507003082620985649787988824166172129796435808603278704865638591166633012496003995413765107856946458669143524337722651701400093689110962041220043354744786914814908084951314704119658664832097037499669864227135904174918526692727125056186544722356344570983792239580999688115664136339066610807537418005462258424011664693959969822769794321923432682779656312941429031979210322209065010365753091512046715002133573008856958822050210913019133972903189477191781367976187113449560273388199462242238659663547306671593277126866676454560550784458776339577287602152079758473257143908547818917496177871708674078567915300345238298496591021594303900673278213043433653609826701271238072386612985889657242238418778874554628229022179957208921780950097112159758595605178306789508341590122871672977174574908816230453791482149040363370802024353938134329660301605225842410191487206142712660254168199536544133849131607227370897902869195900280204414021283717121839803221398889655786251027618478436272768552121410173475958534486042120979491676953208658434493685056867955465220571012988341811867772158212946996441953597590891892301111022262038524417454851931356126046980129143766583187498006413144984682745873072268000079031625713944378883002682599289749977651622546178332339370022538414625540704076714517615509000687101495235801537204146812079277647141403989308004897995870633413878854591551616561722477944727686429006327323833821924367364328137839266966155273443896661611793335009100808953578062037602130401274427762826901863757548470505594112980383717838155185734936552456932439052980141398121225750199141656986691856752408731335471727327997534765960080935551052803323582529347867925809013333956614135125250048036975524119716755550619481083230508571217542457952914712274718715518902442769984271270365084238007658368031119302860313460828281832998250156950147079533205518978609829988266546584123231234689479942666708335709044754796715868015935336411168949995089549604692486647181014811307560524968161651332612338331110919124720537546105927949486843051890269227834934062071919035952228114134620771070724442161532969579893854387185199721785484664189005237236326456815178820220952345924268518549142573785219574977162570592791530215024503220328207303009306127088952946268029745540804858164830403856915519102502306556202015259785274148704336291802496259749906263537807676923910390357036240386554532871001802426912731801283999605415241623978444234927609280605796761846418410107235593440743513565242546036349507183202846542671015736118553074439094486994917379527040364183576669585370988326070183033074118534473444683873329812592333828861556730232832783620782572000340384299131009388263522188051827227747241292108517620381319208892130152211783764153763950503067010286897404914520001403350016297516838970488634987114793621429149522034644285423940912075232712368200536189914871928345266882981038267060911657376389500705367380116210409669289782907658392794431202796034874794764907756966987896625826790824524216191685288345618624740115449739752955457730511983244022859207007936130344504423651518568206833450879858003821984044031770399936869557670817729969771879312546299779790116310510332365830784602905148038236304337638716709296790971742763803751613472955787009321391768600289014196394909720318691163934099711483336007953314341595588673220463594515504068797509380485965784261650241903948654027447632903001803232597420659204321349241253783446140811472118031019266600958664416151773888872333567835010492563782945409654695081500202472335383086299961982857935281950293295261369205666257113587499888407169342062560492721022448698922583534775233538005255885630684090739187187608475164908056868643681909738698940768798931862382840447147221121074937080859955222176252464726543635905922666987941173625930630102553464051741826389171242736899098153641484229324194344928617438014090742351852739897952118603258233508823837907664552710664811186189756639709193653540085772238241396601982483399562678963683142082043933093201928495174267480521471960723854035712721033704733915233723910339995293657159796222839418705037985362412227991124376447687329683537202960879748652993696002655601107746449201538160991281418339341241993899811297195061412863751764619563556541292817827516502574867592072551077068291052750209492960429524104512532371347436541153355996926346846899055207303056945137021960179534894745972828819992479088947219739642061022875769602466416915241794861154220174693488291822803975363467259492565092723445725199710413129401981252666713883207197006658614266425898635145652698657352768941599565662482800758455037476467953789515738133737561866394987971374204583354350861003244734262184312738458649925303958961726038648359011299660535083977083797491595298377150627997529220464390203594530121922589274090729406102460402231737233650365318734662938246192293324085843384750850295761610299601028889541739190425904771698400997193154885410468144690962182170226056023461561734513045482991956542395014089197727792485751752807319323456042009515086185502293516821266001027125715014714701061155501737026805575398509034926546385452989369364630268993138302744463943621109104141471833822899615318859339023564510451720476186447957552308500326470084655826260458349596224302773328880075678920876705225670638024528891494623100594328671504060559389981565327756520677148266062740077530471984659741054717307737733914092625468417197618237792840864793867348523409713002467165628478853670310048171087136946232888230498898280762053850341348395975685465979571873120102259895038741188568904998498170357434255383445556858355848281698543527713620357382968349929581427637562039439814102966187762981136600913925074636454570110597706727485285264366348829461815724589300726740380173559178490581329299597744532744856088460481142409739463387505737608217084649348438853224514657179111853111777263805089438411775359992873008300092991463757104651974673845065931337879798754408607906574815318866517929876049705898379440741735955661127388246285694776897158070213282627015340624702000406732532690905162207675488759314295895652353392965235893889003538810752719651174556415918155380578800950362476011116394483708478906596722219942716294399169782386798305802516059508982421980722070306324540667907543981416704368896648977838780654002812937708676214123766859115230831300114165134895020596428726648968677538190500885910383664116345499386429850012749971993258707173963371362952694729089277060480561340826781782895064944749004113740062027202911087417709530515926793420383215105472659566573737646584320378014016049365577859781725515714682707610829892246017889858612143068370006235649368017293066039109076344817656008003648768319821978922671984260799313411778536226246310387632397238210172168332155830009169061683109198546000138508569869756451025985173025123972926804823998451350758220940358627032768389017777164035588457132468053248203507480972280929818376305817168317240837094229260469836482211781471636142648847676424983596765704788337781108106028808295204549413908970557828541977191996020978268372753750680810151143277343495641793480247324883423502307018812045367147621756580379897311930148065852029143195848313325286921095424574761173048323413087059680467808684762587886514807687794429837944311151670598318003516938621596209489390514449967707590316251629940045722551359726234996954928811493976519726688037098564046703685919450864035116667958857533772286423598796194126554268768416323610103497821947397858863254908471254790571125540599355709088137245298015755126605277084856461912859627998868379158098040929012573252725291951759952383731722696269993145238585899135990610742181188573615073035709854028708585286736725489850732121038948953977213099524031602582725093440145690325879198410502840964816088866558069344805357827586348262196418363629202669193110361336508293876783028388585245264619207981590947700438253449437821908890025403432243570189143973325041190762115690379921764212090186463963858748718007289725654728498683950801685759072107392645547911876969386173153383756551825586692113100090033822277969528601731754033063476578844677004901908699778410832463396026479797221841022246941615221813455603438914583859039469623582922731944581047235090391006156002131499795338557259888480951331552181162805239901293686895449215277392861770572084647909385670263695965148950873176712558069482594895310833629866066282776774065293390051226645830573908536804410919139017369849943509510494036769907995549429507077483345015888478633737900908768219890989978058191459219486416616370582394419301102940421993101085818934545501164327602056994166136324527994307364912090195255891325666447151654239563413659225580395907502146276700126503015042897073005252318369771142818370369053965219142559892068376938810338243065509006233999239175009066145903567125469317753603766361906001029003323289181340587175361231352043145506304335094140760028449043445133355063798713829040392218369057387163017330424396072542690584906535782035286017403889076140718326286585584895785688827640134207612379251855379288017316483199763834045588539633813886171927955425769921493862468600898567958030834798813551979030354811308208120565315441874078913009601029925130670230819897953842237023503012819688407650563312126361322781792318425302419908468277731863271515978192672357654367284097240413477965528058654387491130593519526855304515484962212465823003514558824951710317103392077252825078280488954697780665664324339467376707659471966600850599721910147445422888344146613095975439545673180362710385913833486859454595622634467844133457421206876301216099977268871631338658533539871514999354338111441027053662805909470647172717815899196786582183829210873660653636365218496623592461613892380479387278041074525246086661971731656268899335779347668474307908850907212698351021750082879167156566173863859950311395860414975725300579240981136495185897968513937183442202530080561289650274682721216807117700261766367092132705379093029362087448540915582031275347257237329402280624455090526723260642376428084511711960884755796484024002138015930096124394832813799114613965744094504551140007326428083281032231929528351181931182004730791425254013297656070868607308921185626676467983954514359838149906299226408082798033725786858905463899466520729656896240683093461304877042378299712657935487967045277747893204811068941475518549535158527784024356394972417075849349790525664907017820145534503931097943827493612851446881506564964279413789147747382201262673278617807314682201430025538008793413578243326447476342335198795102566422886344446416484442113816326844786408508067894219202257143159817509536055054099671673952466588293514203579442839184465309799321898479092672440143906998198256843296339608820714958425439919227441712940139377081336014070578658154289557607203357701257694327118462736259786185491542053048574551694721045847088455400206685842566325742460311811291964699062168193308443223777260173703807158793314145351729026186616871384472687326652241264495127963231513871422435974363793039215348235233922236930743639607694057317241086536063713162347100636098308125286898793729864266348091317987505635211681196875894871806082171884549908690761167681316400890692342067946544949452157859523205163318778588617033815511714604202876682513877249533554265723610772544179262961270978018392003384042687584931759024358435982518314790424757843609086924667050044924728749350881695140410318199351725385907291599879972995760683828609435892588452034349217288377385788580514943420785574635648861695884011364392767077916748071052244200668340440527006268952791419590022027805326868210286465473432397668688787278463319411704375257891083650628890421810045545587926332477800628394543320139527684160247530743239701039388703978409474539375604714642380124824067946075809569744224862172862533900655526896592167446971044669877459019963663902711355379960882386200359927947579127822398451095625889146222722787336392883371860013309718267155908209902742659312637353917452416589221254012090970871010956165793789259343640803922271214100771115602595673331231353716672361544646082999840635596713161474876367719662029807493971308478138914423839330833367191862600023232329512479571721692697163754969150742034138656033628323392768099683752387239542383950002619597851706161410460209838571841754187933751207304298864064247664931283533082479858296838390704433634103295878311559497209140948408590486486041782958831409656508189411474475293097241151846890389076249100161698493532679239796991603209546210383352160091415469084652644510770054216700685629844217158378818815428753122987172156856841951486030261637517242514959724911446849435669414685516214821565111081187021411167341484718756710643874375444297689469783031402413336954288436749117711823133344715250674938587748237620067107029399871941123470465980187733400330274196821190217546101950043457142829845132500057460519732461058733238592742328340464377676079621451350327530624345142559086245735315799871242846245992429115043522831112932041713392669705321573474354119809637984291929394634335436521882025394245676363657622714388665652013208976429202186741989025300592802960640548883038367764281741998735239153520552354146520080576945811158877636945327256253931922553405758625729449906904744066378482779240078415511250673311167896341341633486561261209014088290357670666474793995945432603207706918386999196477624196522198960076207868072301427910877483606962204142813970911403962071603924108786149252119245541030509188521213350510582605115768708992273826760522768150144875094450740711002744917316667970514544015980620391627129155022201130845545980886678708826292386426493151884613319301761458110726969795655141988163483148868086412399471459314595568113934423552762886667906653562335345103541884135547996663810176295471011952489158531852703588566700747732982768778727640423996170098263949814532080613329943007422521300863193246035672422779890179427342967171329222387275716578698739759857908006855143453857197137408324589292139109231511015327551027799643220866490866662817434951715311523740462576179491279787158293426754507425598992524152749818308306835493413661344513092807743745051640035451327251508856380894546736044599244363032696856146871337784531150443228677448236998399875079725888105693582217222939812975455002851679103183539290607503153648734052295315721540689994398476857114972084308776138744843666467053128963389818958713740442112574955653313754632294241950936678050359263648167910109960717071441860256940388054610627289227082857461591273565348378187667985699760432615788098915661922686001270595247993598844736864557715448431134528495746331361788248956692295029369368917337870158817662176326528230894112989344029989360105591074567894347314254955082034123686360584374535674874616750804852397501179530061082362048323372782799902932519907230292858290653271537074481204631919006113647327550620268048314313762463555997631380247072408671713791093757584544503254369571445810620430953844103923154227269248695158028503618043199986358280657425461970477926514171232286177277604699195146604936713588695515054818980534725431806599522057941164520387738239886819852208094604128856944011759150657548530020360998348068662841953926940930917987882272219483247896018273226303406157389086932529514428337935632502714790601687666713708488171969396785020506830396733187073499693310403802034617128483513147419746047086966282521192835129875749312772182561045225626830220956843445120304981090124719482839238924135648497600066983498426096973252110296290357347665498405693657115959881854783658193679944907657415621551141024332975379380532404885092093932733937061114727706733773632399510986225568000394632072094300870750746842003162624000864877985166993950411692445923252982792347148907510708224120364365693954087257822663588162602894128465502229259567164587699944781735505122995735221918100925049476561298638033975597662016944872140962011048251547725708871109181439644728833300598043572506256708236230507530801880995581708954172345367139468512040814715964334792659508763529558359909202574119337657840906874525593428440495534497537688479367670075454932239343349714281029818350466836050319461592239969550069863625037183099911285866399668349088997273616120109560903937768998464179051031965985943643416377604598005855615206531024247355787441776170580932841768948945913003388245551985533586632143310517926093393822451929131068279275019301402301073296492187381819422294126709753186868874927205609450856562181237658727974549635133725656471106917806602105804126940842109671154893273839054975964887991782467190715245790289030819310902336718647196980393634080805850094055475825537036743797461987293094522147331691524567845227085069832231882349969833100881693944521919746227863570993131048902325704027480028548890987900495135084817287992564584656993289939289349295056606487513098478212969730771197739958681029219432755684483313929007433766441174380152167734639424030084260492790423274027975039037401900106760497820028521658654986051954654111562169650513367681532140146098947129979838105050036081297250438529513534315670427034285465877564870685350749549960460960315995837615820671704215134309696130116423456130637203393562877279584864338821832665951426668692851911352631994180550081825141796085852041936446602365247511844501020756529467330058657805100183593793210523691389644218133822210019376213173286489408532401184693686465221921752867730121508133675730684565763744013500402918082893390579053664718471701385474312252750884607050856801862930549151093243278582671944797311224376483025918284776314803237876555118615079765697335524662147524227457489489931383993187295666360370833001712320665715637984814819812469948397298096143968891863080306957550105129287948662286442854210812529863404701009218743102700373203118596212118237602494470482454336334119771227830117948136412080161078283128711880865029577390972123483251111839094893967366727424918475458008301411989651882756114280231781180089742712604252327753321776828713302621685672930149558822151576806370171247682345156923101278373568853954837331685428667168342420675527544000925692190490364446711719696362253598090533710249417648775389760326796999284898632778961817353325357911820347594059692209781482002200663879923814313113704056873368795873220069189773351977683822920304082590385719690384369237965263589700354073631466626650724425989508977361191898112292006707602459581915919887336710785505986265902554852213422917307021197598956506379140945135069888005191859514032544603166127871058041876991219654173306366542587311562808011641240019324605089832149790046422071102979076187500502852626896121994064887520752680004874425987119897593241642372480925076184535728030088556789001101183586725270820164941032226154547662758739629287787187240794796583089417745063714739863096427456849740334750551572062721047113300728669737178807809723642734488045118556993956953229201964521425429143246365982514419607810113739820867772342939940198724412909096352347691802833561472114573375338660304783344522345370251503238320357377097957245799138909756034347643484684628927442457068028657232597779651681610734838034003134789038162922051572818087366448947425672084635554375315966473611055798845196213151659306649613023488311589365918643705200714837624098261051057283689683554446216220221652804466620084488060961741999625523754657384023144509479976512836513473571602880584700393609694816304425834211359658649478580165565059127730872483258889007575421915877850218272129345968293724557375102758409906128752895752989990668521808476541056945842770395418320009893648641132000526484632880754873036564932663564424180668236951185623243773911208524800075828857872319878552721231218529802499991210872094646361735116707144000358766187057335825212214988492811412194366471947493857280695409324056510086805952905361126027487464175936273122515574667688047418616635973026233913226047023433919084511345848055722523493625340055270886219471603372390915199736241691561087096583504992883030474375066935164224031544916772901428441872607310785865067368479874221541081502398396587046323564479678651355747379026722100837104055802029387985959586312480771848312669912343916084787366654530998822496838947476521234639160644980139737747148294110400622288632476776958830999003567040598046286008416796777788946088755310929687372242032858273536927934825564625115816091855308923500115957275058029286694157186191315762319236645409068506288315287613975331340455154965207712205822629594649688937437494834586636911647098689327415294259756101072911484721993082600192114899573755338176790367624160323090005160044484413093297881414554900909676052942137579785056254731090593808594521604463459384679531541281800400481271207804862813930547920018494561128146579762650622392825406367674520772513518528439851076158507969347794720289456658373252464079140524452340281587810120852129888610373641769865126925993608785175166672009737310007081457596431812216655596598233601267785163547774756465880448784226509083923299545899183875931843171398169897918402648095133709872001880847022825490207748464562552994238193585974275576380396690928658595044253625163586257667724441403582616208825444353711076050818866344216458220217689399979458115964330124457052422317204112003401421457473925568371669864038420635078560160089661730581643582871493659550385927705571832586404154144495542168139516087542147106662966703910336358918457682284948318293762471117499352764044529035956070547016343484895879817512233160613200485094840051751596244708301125625564473129867902030305525898045246289817934718096440429437541053424130814888709866308069283638731675488350461352841840980948593545893634090846059159370741722146619334406054594398320508398807595050730313374753779157105662784802845635463117621525857694227387494048084451944489975246356545113129937647206639645332127644079471558322044474235982813356327801287483101317074625454941297492957873539971127404795303744301332853481043200562871038539305180938651038027763030032360617376088045508143381333522060985150820181255380368986873191522400905983252335614225212194087836830712984030186949121704010491653620704961566926154590686747825320135455223791632102451998162987251716052498261058210706605021882914404851472356390797157835749837778818416314534083262132394559484871619584637327888062870990516576960795066215750253815167816839557376392389812663123344842014539439654793063363940762625577082174565406463035098754244126242636747268287845329757010372696256025735428022463591788689531773098884925787321184116054575915326697793444460412433323826568178227558042382905762461899762368634574923715454047682147421102615471910895991789605475584830839389892592083482492027090410187380138473760158626576148815083882378264613626842198037391618008117149543062094851749937648963903123135840812561073513638988917800342164272403954671204354245391473630840297168639114700439439849641817802456691932293346716850488435158666796038391740331040694433853124493314000282387010400734178119962268412284431257290544044223122063506828951914007329347039927113942773792691377723697194807650518717923431461472418208334142889824861772130660860799825114850832800073284553432300952147064538995854895767129665347521029574262446169941367500892283983432321500393234517441052324839183941899934594926901377865158329325583757915178665966591660467846206102017311413358948149706383025084116694914444611372159642294381396003145881797240478971457923034451249787126351872816591477960614812663528299261877413176138083917976212140017107297635745610745250911269654999096191345480573109536989342007486081811895065657298430928128218421647622824351429383426119020790047298440163417923311744251825525208365303777605765080978502413914570548517881721457525976190742911716442028712637106711480332537687954123544677960608955899329029913605547130609305464078368903838879142913884107649804185023570309062177845994269247616157787417089691832099315349680911063286288857582282900860846820720137329535764957730073654103132307167606466780218543162725382113960597744989480400707362021712431488949354360450864281288056298521126627142484724104431520052103361157174002557874962428729206890637961780552254775641627954427242858361326311261005167011453767131129654758079108254458786845624509427931618522305759353297834060754397465137087624875451971299517251316482776183798266988395483667136533599615748258489985980133993208843373359749022805502980926586949056904946238243036725474847884887785175080441278615199443629896266337041057192498507881875557834920724121667876750473342565358103821487535692539199726914243206525964286713749965299778889470756119966905811644509604806679679495549031247049620919717144306065452861079599686512827644147589468718608111719129054664402202798253902832910018851152836027096568968488776008009361562580340521953507286564391361459928349743738706440819926918958894728679469066114906118853162591878047284870649571478804162107723770956720540519150110086424039708966478767344672793376601302882195748553648415227910870629773529754374132460612721088265469706920211811375912066756224073316730685856583473740322766199308177272681635345038542581574505351523921926450615523855739211148444801436357467896928745664222525803273425720529170530608528926930769287869675223642550221798363600133158689300949905974298387572999655588361840529374746904394003010701611684080410747520729200581777533475513547180290453624535422888481424067922671186127045620649195281195850075200122533198638192277270976817563885444805106999186037996247586615535925468024510310506898250044061752667811463451393382788453830662200602309885860246695868538459521491587092463083158764029556621469560325413863669764986036655990759366482269591449160142339666106208282874013683284006815717952632775314705910037810969765036669960457783149524496823099216026305819497755506312637363635762067825992912340923613657865431703980057096222178061700434498117138714649075980989364376665496531803174158615119634904838236533035142582668052325167027952402805040912293504321095173588515275901320508541574346527807282388476864130899511778683346782679356215029193621804883749692074369340694359942760132905511226155156289867063450588714984985547949534467883056379713904698490600334393190670602694667801901980788740627012333984752611790999835292182786514912191189042690149282609543953390488047365461908978250807369313774843942673511091559064728000870244005065148121558750985794976798201288828796987315501908430159876203979179173217694209700981284568523011456792166276072097310183281451253504323158390557073678473802757598395320016777418449272302151645231297101806066048989796728645044980744180765695389496615183481357200632173354308876161821138317260227915756179834050691283149407966778371456881299406261392049777640050722201694087276344764747391180978902961257943246958172881499886192334768496078044890830168437269043109171365826272214089140634455780850306180047716124251052020691900731586615815423170071071279636063933047513987664169997240781597156544875281408313869941951588843564832824303117562737715791918991379780492786938061396516164379280006262610788937972693435443375392758082897496497136123950962762506927338466038332679177085283563867849086463031009569526278851534020108533027073562485430793369354081097657973834694849441946685021344579824966280048549958738602290433344405924842681665414442731674204134255981299535573110464311707595920148801531470592882765618559754088603044061827701687628613248605459931230672345646974187925188429658018123084982874074373429797541044042140537113094834488424374315544533328450850523749434922286300188324293061326189009318410564683994260908519292909149890660506009947700850142838536577569156997926756060179739863823071204045778153433901589863051258277998761253526507181924522465088031777228615680054895720538297581581249135334543989071052127804153042129911247906337010049529611909102530896212460142263732663100025337281918071531760677159488077284537254100402062225859629341852561066195193683280664310608946104378263862926196679525707396332066835672551554688503653613900583827956420588199380009702187059952427302992027501996648509518164028896865740118699754178874779004271577778932613803882805258322617625000575960262381671078222962879732859082452457186793868165898230834606303502285733247094395456632815584479056790791963320488401554983575927873842044386859459854006046166996658098895803950959033596599231296109573748096258395356193998970878002366060790356823799174445003095044765353310653141052099996199709277081431357253959018199584021729764008548005472753321974997223560261507679646748777297505407315999166066186555376551305820923664874529419853343942666756499613155305898658727647243091964332432022862742529638212561273409383663745420998653272288466747100074420892428104950271894333240822260309962089061555696917308315116098445930736701932609354497227836338394657774955833814506623764683167345694426772168646065406073417332321258352501975551454177341956779351047631629061987924344069861815748581565799899044554751715246177386864156054091783404695885159483161278496054084913275474186551550997503899046258284371311692789518258651622357968754980886108292369355545696533084379612944466700903011214427624812921859142489775369614695908593130507784589444132946135964584734590830639945221424481347220540316211149197722587531367591400540377954163553177436088708305627369392612081557306510758317796765460127131838869580867056964131979087676115396913227392614952689225622681516612875242327321138153901763302332482148430758939451499131083930708265175661977150557484370396015360810512850197549668780300442148344692933804573301249489332595093961435744967282251530301748467707874677427499287721668444770255640280124696305867120421155752166697602972680562565155210964435286406244266052740634525538521815390023993602596547538916161586162110313118631449848817677681992400853472095389906937875931970441465100343185650220710648611334837718540511045338061818203216202755784696097432707720886775604188325699365572550712097412759930977166447836232719163661271176731187750410156978156303006262736702300918771874150179819757133872507294110116794248343266155451682567498708596370332103591985012264122191457145091073325447999673542655507589231446744303959333161787390828570839021823138641007820460991283719623998734430946592598966789198257328166018466740989097240515573288487162007285659530534152725013982720078231874337336327258273941552672945418457824082734702937487348717522558239469034443966388135660561359822116451176265383486473585935267254197057858764279516106141952674848880956347188796952132413037732380363870323034827129212693953609763548875391004181040654407319268644154263454450612817996272881410284803319353940656321792193040212670360406073067835440035427553905369977924050702473498273154130185533301131990743417886368162222198248463286653430497995006252719396577017815385006506884748760700632602463386952540305490616070000405089294632050801916173741393419048387788188885192428076008110553107060874756912120992315588712134012328507249029005704293008412949338170012182534184737811572665481771348200519099684293531636476168660759655828140551510959160789238521527626634364027462907937046546013152005859915315320490383474139514831700904547407487982719508879827950332182587186772113497609780886596785234626612133593891739401047916958928412224832341032034121301682121845176854816561092829096388511059849184624443689190014554225376089303273405619439412602949477899535503391012823498750525499329581239650248454109844575348174816213673047824568501701162686029947745208506830416388236327684234432338069803883795846234323128444990540400513794342631816356731760658088311232082749176321284411485230996593879265281589783622992178048486410027534426674568206067645459967495505060146465794057475840763774749017553822026819998456305743739931714812384967169594220084349277702846215737766783790235862850680915406968925299774514821881829422278757764013627731028905590623440591546101141358357267188044178659956197810155791013065391966129897247825759590714774978409939866955009722868843709733326549779595052337839501892005438726917932332908857824329380523750170495081290654555158283212881820166895254199673686669071901658788774283128598014778166117416466626262444920686527463504463347761307855337469014853651046166544147721396748265867340999986056561272708494233960189008798373622832563445505392327453762602610478881638096116927018428161976207787651821907672661508829682057195224411129645941962712918608107040111228268632794288780695414991841174999411055497631407832049046129229095620178672923777526692845281367605330916534863908914561658250412643980032174532108008913153239396640423962138001333223286814138926094405059982154869934251860355311385253076893447375412169448379482763339999706950792906920717999653708085213940134797982926236134600537648086551520568631780944520951226187176422490264306079725053149795961884220501680834404256640581831373477863397342884766379508413535989248033554536673016851194638763823992269338205824635834439593978899206954081739803246364764491601074993964314902238439880242984751973910868667470072869705786171520831077487745080797504831422505135019228329695038676267209758802686161006759533228688463912905499951655569568989621812981386676008566737126202738040836061890887313361816413685950188957161835321778462795270143886581679325531160659808300291756493265542296097328119533634611437452674655617960962385511242262786782371642273092889326067856157557296600608687012146275977869169964494956227833276434328859374560741264374186161714520062837792972678858591509240698214660943989209333513745724127312700657803262346245129391685116731730607149592347882596495818992679981841755837105352660418311530376424137298079878177565019537391363970803832639950567577112486712881505302991989667157774969679364307700786532151104727899362637348842796472069649271263300435985906937565106371196048493142911752048967536699425486435891810405939027846214448821932357864952819487219598301996660719205276489245151758106093181256631783516242847546155271726273563505831937212940860815729667829475348415628596187110505849927296281088841405302636317384094319392507700432926602180268582357561005259115977130650477363313108795319961531833765730669302098983181197256981189167496780332457289710907285022841540573662527852399313353314932619411994351880745357332920545937486425343894478008885511065115021775420583173630903833651490193797942737585132967490563962078544031409661952789991284740941639560117566979015198726594123980080492086184701017077125955832481469952925704447518954910037166617634676784586846326233063469892767321690901648551839349975491548085754117841860196255016583879424432737848594148505969493554069844426153965671871587732982986617023963655686600979482610191245493115916213537164649650193925383760775454032391282705806867898041932207776253402418918121853293892553839161578651818959596472420955043819852268272378256696661751402675350310998863895167746874619861107084935627954583770067628006520293430468857313916140537975886222024688920639909144635363392138728613941779866841521563877890325207648972374554457586245522921276965527511557801875202882259967052004023732634081762194088439259923596018958381486975387209949088283456741335420179507533988872135798719404994510239204702083839119690665720587021297938663151535203646736297303622880255052596101793788215839209672777572262360092125629039886813517816889270358413983564342151076974692928296546705917238268523736907715162691438776238277651148563857151232524562019846709899095544889086592506172170722175735964179063006568123045729722932956630195209763079439685668760058763816186091400110692825849043303448562517168598082849683833978664928324340311747786743997907645344143226855200844969507866398015138140840723863747938652139443008434424220380252085790360448972955982268985004177590234766694988275800124834719196330194640607584099816439751251127307115253172455024343616564219626549565726617210291368207457477937668074241488256082667766220451184501862662901170268184676350960291354716888483834400724220079641020201227597281006637513484680532590329319171711284359045509272577620297021147546464149779241772552180749713527753945180432230341172403617659687401185098829147596826920668528161930209851089919430738076574490701371017782350643772157657661256324209726941251650858256089315611848385037918548766281385817704333255193551167283081314093512589482636875739902294109503688120038525151118225090109729555903320423907733151622702625580645881910855533253111390589850403550739567648066776653211618498643633056234165272154130751102186686602702007057669838837955045483704725917988082751246956042353139581059729561451833312371308220389850854356892769559193861310615360095165099632638659639345725159793975745352268435843232573627991054124304128517763066499881225360872346880962236047147115995174544621784665989306946045776311866486397345141048233986362756457513137529646902084273105109203843484719571829511752839835693892050219039589691064393324201349061672668044598884205039962528890973692548326054358404941532240656751186400494086377373798542072407240223517494185598537495148239482060204327730006225421082674996646654967983754890823396104820835893930013203755011813596752322985982516630651208835708766141253749361759020673903621044360031162059354762620924220910330197614446035726888279506337354569807497865954936453457448329017623032452945286565777260833966512261879183697457669350972327036438037746585899551074858080032226698273905316141219277064981534423514599983610605695007227295589031142230437929590889723631223257925929505583422999475623089352811318225836820042393306601496853921068269848678142228788330525629877895608299276753480465328073804666722892790221813299594462847525115509351401329183358402011825834961984845417644288719740160355600339126731590848574147527756720430119927236963461101759188565053843002804427677910052533575315943786439812410572978274486377855147436370325467454272961087260708690406547058378098139225984818306419823114851739627935198339930813246962974404363929839860494468683397256044315598779103590872961371262688004547469233986748079696009174815966976098355385670662763512594794741741525792735137639401403504840324922109703599921444517772051743259936593639393438973852523511049254438789126005377979687473854493925295299128482120809304878239969160704347181309253544157994000757452694140037244299492899567350175264023986599093732045559296628280296531653810072214113806394556407897057717578715507525192947150139014477878788823150496591423949053531615185022686534993081604932251719249568889946769969654071020291454429193446565619688571830462073898623058848558928576266838186960100957500891944599459013274712143100353977521683821814389478953821332442492450153590516376695227563424447684159371909635363539600463289533383099753781803941414999140224348373921360489474917265757625693722158778248371491800454304641207209106299741763146727694412919126936143366300833667060671849901371162883888361593292721803226700290134513956156084120505345410291572545361741935179500717005093034946660866022628199276019617691662242958190520771675867044604901542888183691255625931590132272745017746606685355904535586481580839824618348869916270424797186681016138102665409905923737544852228296493912534537141340699861853402140069010787342134205459689219344205474125370882236262915972050925663703217205846014381550743625312127336602931453703477245432724043561120614941639845716943293655683223357901348479106395195067141561977244747165669428578577192032287433825986672596781223516693268838861860818850490809692873445519497364193486327017109613766572038535881205323248309199399375941721888342461554048300256355059708061014986756618343329214165795239139321655338743600665573619293436968179105046616754666806249756017736828999081678645593159162761945944847224438012101779930893981499438340680469658473115705146380272102954430441901658250536398964080343262203405729264429306111310707823115558583274461831564690698314118302859513480636100952061953049343698261217945511382620187462787960424154265502091462130036145039731145022080982692763068626333699163590064382441857581948858115264904891625816687456158438081535713763272348969462277568362287074755614678467620584628502694306875036681636587248559072702458004878600334525937743125725369730150163665902741405077562007426207781244966092772258074044841647885649840975060263391742891734484165778591694366505471087457060480044479945208592069431210471616345125779367672579467810194298167890161379145261076250871078182582481121708216439508831260049393218712212506350331821864762684286009256639986318936734488496677527783490957075204072679148057187054756444993009500115298337784888061329618721944944943867857086523374303238543973421549791581391519662313609996167073338902829627946894207453075483666028793271706590871056850654072472645164768208378121742758025335347398164772294744008579066426496962181885196571445787621936237469122456139370431379165660532825426361228670640313819914859231196579602579461931226054834344858522354856203259408351327824093028834325711409663486628758638086450290534187518476913520782335383289901969270806093440775264412441779838484835252812926855377996575553726373472201723105730166093497771719722950478602262735414619275129060767031755106548792696405475686868777264865575615318657095043812217211942268866023857226303717698157193702843005385858828528105777875509202220101682946454093470102587625692752534650442635049188031830406298898093516792286901911030472616276453911226166452433269685641631196693020193807598166900025404815047674175975484688099346840954619971897852026440450913605512843206059975748682672272633807605202774001656555636460086380013443734144317126327241695464217490560404284934349747867603662923448539418244024122758575945993062108032771118683421110114207982547752277583521383874144152467369135216902368074656693363402445895162267079139400590944437527118188131839011588116952362632654937533075451017489695610790903454460982599166412274168455516060107507304889717950345067162147304886068006202449825800952223314298494039990332002011678689883386007463388533889622633328854344092563308595029345444124346293599586641611616844598071179472935936107317531834304973112305133480598551862482183766663787995800455326108455210363869304665970607508226744547528880796923141156481673274234588233223562408512185625569657386236416135778171145244417088833893533831138861844396475974263908205901774882098752504478795079513296880883568834912043340811967626447662367062503352311888570595164532174171451867988719798987960634823671432258926213974663932783240003923583213350940834868391676974952751400015500065748387616628008325954436322742182524349867484798698165070628113568088211516000026375264231376236253165339368379917080029475567657460783687598445238380774878638345377344400254822181470900767517768382268866568734000414167445617170881493716933301821897188899830050731347151095413597376582065587671153995343567341402617489135857025473044700918446887442894104903536095860304143056696758164680527367430500126367309308831574086546523033389546795052233422544476458506734132900056925473687555484054147966398560222260949909818324018087228789313226480360526625735314643499179301340598877393582293523148447922244736599223440007657990483170146283656718843569539736767801750620881597345786050977933260653552896942249160634006528770917144677884667176981746770070743570596981487529596008288396828454649599962449760457983261264106026019195849999090684786973846084659557552402385731135072237340991909069379688629751747187420764622854968931600977016378539869817493127817414709017509555755766524724422781662110385502010571757819633843095305037241515181224892169027222312530321107922423898047707340273610675895242344883809626267255443612745179991667412254663283219831469608140362162682312490969887563629977532266238671370526559415878328611322630652522734065560111688595845571028041233593077390816790374574022334895997692104616517251779325535649453563868217295110811920242992183926083559522641137198267501561314987608564503152472729644581849150477508668770314261268370866880211011053627324661994651282330867659780435461849312470624965734271924445292496449141486109319189028337844392824614481590552954274159710143898855214384827514390195236329386407561016823693390282847825288273820116487546809182400486690406366183742746017680406345284745012049410864535730801782312898821649113442949386751974384515786362854701828799839415864105979660305144975233818188001747625784394848888306141441279931603000216769087277968340476198753895810300117810534768254100648873165934449474559240227835361614051186066783837330073016522072971822643982383294861054639128356534417990795236215014005189192929422985326860413162195333385937636730127783053313747911737575931158324407849552854253505352167164771902978954761873091210602108784350060607702741535986098293359495508245110589805576200311040736509439409949822172693643703351624163748774945769304223663028860009080548259453328244416051158079736285610262465693278251475676824900073419697906589891412341818499562999843954670893407234887347686068184262989370978871819935335073759236718585947007048936210112727058066741689089269427998886766687590048583859030705733438072810329846113783791338984592609987624038729150938704648468078474330126638454999773456738919068484916470762148764922262910443111668223179886978537111208896837200393977178779180147094223352648666790901888487697052049087826304277890578619629496774451486050338946452439138945345007982618692919669676444451243701551202024120082023899271115027608626979234493475532873631840787393062539856430770928227949917065438227280745409732742080659438472631068906780224057219419944788275723498097893184223462754409221208272595167302204293328179028120801160787705883729010202192833330456034628298581894234737217607563583050342578048697337030899159469315291300857436580801022170294727962610671620764642664993125244388226045206243963891303549590571871918792416351061280886657282521371492205929666602184032738193284932449473733559057589874998324862941477863169698043003326888092836574115199670403464307545899511838892481799322326858460382051470642956936746327924725375531531724604756098650217043237972387789337256501338068342080372080168900842159865196572201119120921873326136992885228587087079630936831816762799621864817882061011984782937793772985750271146011964392438545418390036291216530048116405879154030110001095676313309491800899251754255475619548720629736279320907728009268237268022400592922101985513242645510079503455904090131988520308330246348962995507850988837763558667894609251082932043181767143580237760997530822635580217968746516217232695761057678526991954042613767002661315669965568439245880240274974669453795509775540975770459562305988647728761008925860842226257558794632513639104427907492383624332930046275637346713449820670105338622882372956717952979811650523452169744709411430158552677260223627160031704036654144464830027772310894882587664151693936525635926032155650090501712916165779998185491380930413735655250013330379622709172176137973781338656809871299538615638428585442189544547004120352204595188819119159457660918528203780985099460524133147062410264595604789472677816374157799183209296932095058819018108757239339017464524362478684437495976466528727597801884578403988721648649650417851839942871178547846581668563901883967994371658905096055965494824837021911916297360588198993196098407485343845116660521024191568575568171682272855279864636964289134631328154780415905378137175959982275695842586404296385106951599272795292003037571149346700849894590455098588959105110027290783602001338940799198743084447187601390505122035347408449757080441813541999025413371248965042327458387866917174901759239639637603848420605388286040064908983986569857765477112939652420664102144701397797513744507510890990005431146677228953131046776765370961486420248250270674091637755654983095085253014161426499110407883745363039329415097807778080467666198469350954511798431909337558190088224749407299827614468132277769546600007177362666705761318435528595561554142146719381826104852163065390184556069091985710809033090977396689433587618515312220282276574071580490093109262151657993851943501438591795684889204420528070636030997513956215164113981342137182886382907637058220486760874244005267254989114066360268980541501546436653657688973272235305665879286477449930788757291534186877301411396577659351465221915325840915538488070284797076723418300340262153736938461580988304561006241811612418387079232602144692044694766709068421184657500349625455252360056834414322085265935992207625924813301051020867855820289867985614363389795394437806025606869129095619773193976780910017733155248336704963656032231380447549125034708248217988924457867787780052135360969936002920937950417647356721406808476692431054369031375324213986980939518202356871841327834655149977684808290655264762396348971739837902328318223169154317028573620347306702630310728739097761171380276149177148687966985288727921252643517376215776679646911090835871482708727972164368158610501898626265233444806017369664853612547285610823005917041714451971288116224122999148050636901636703913203344676542734067159745000000831288412015998750618185944949374074727082460988994686202485694653394751536129849702294871042723833542143318948129211511874102594670813288233055844324193396461804249800438589474887811709155091567822135426172664085132519224866142698663799914971884029724253124346410863472905393541129733366704123443696876099209755568050086598242210336996812618967364556018432692100632950947030460948123895995407329800644543003412904870098479214482865145427548280592610742200263736197408435459767578747922702660626248873022848212201241323668811638992805861743490104075489259961279342189149739415387992244687988965813609542809560279888421364578841523042967988276122419836442981311832833205632459977882511347431224303471709090338436328504884547162469940149371867678135482379947821134637727440573394058286148650489689942178835211306740876194834025009364795553323312477536349327200368894277291181168834494747090549706887167751738872213708795673908752793135298597896400158977544651009590341860347412329384757005168341033317916714440520103979401138777638617250365622770645997453160474095581797491248827090052378533146483906286187347462436286554363796789554897959529095663204124412574951266351237361274046959411050251594955357656347109115382524953863285317613511277150183311647799622188316461487639702570252973189077536017331790599500897417473089745447175312922304747306267116321497228585194283193044596434874571222599568002321185378692439667720398705783879763601907819405675793379080099704046504013070835785921303367797069314338202025787153203077235165505307355390374112543429686859430605860646534260562136040834081599872300388847014450330279880899435562301213612446681584433344567011100256701306286356187321161761625098909510986524255900661439059776361106815228404017218178028002987192942316977639305164208550183955857040811915767917899268717111991884668661805642193565168820757326077713262183789530048862733185507933710823088293972018957716818676905918326373803076131041245152475736079728512985982623350797388146121378692423633704479107345852050307410982416778926538536916087872808930097766164575853130811958945662071926948471455814974611839018752047157016003721158358725260381310523357031674655133797867177938416130916782168042727843188058266704646252924044278730021986448424003144541738180315249670326885324195708586918350399269226963809968067111285228164228524771737170916712748713252536508213623743962989921561430758209401944222448560526472490045209332769471809936301152938672706664432212079510129801007202355052191722406777286517543610635813443702889060979707782403298173911545091982825439151814863491650740172937856515417947600902822582365555191420217684501972846297198125911255770759753449747598280780998466841611882425446000794308958233776597762648758889272019141380891600436049261172702681962107041101277360751619164002053399151004429926126295165107633862677506247865453081788174717520275437815205465547313441209780611491248558394290296971782155974786068783304218483561975489464104530947552465514696171092003101664563938166426444147348618419560439983200469604731134183490611903595407238961301097621307173144019353199817376590399869185066184541956061852340296185136831865765591084213185336107887848558844079296796894846511404852975555629739683274980145518159323866691683667793563320819294796498322520722069776207631540463788621572192477011176126989126818642519421895960251967706306780899670184622502821944910780265738360434356410553604364326243445044042835802244349388116222600520741117114703889085706754165403240269219270940882551494568070363504872698966328864074912003906367446156086367159408387461885401939809388514480096205879337218309449230123049939356537738105796061698718257044221331858846524629731729677891793728354781533084350591753624952445696807733610260072424322487714499126352821822551711206890536631391567972365295139730915289381067953433296924438025844890474850721250819601386937185794528113204262647667911246317687856494153234791015229819017785406631009573014331983389672574718476885220335482864765924212733240496642718522987086312997862595459147911036221388642657693808181081856724510780887568781266424525124038049444439447972575899024600247923042728797645595460987750718043472956490190342578918513646417702823074149978793089312113462518073016010147419994655049714931072590697746885175409376524914563670226726204339988744549287979140083296222599770432656268036946017250639149608617711682236482782066395904299613480992739152795489788543349803803470311202208807767303096436803899102368745585385446733948969517999590807791237828313235812183119956974410852533350009930157446966093839331922479653700550561700351842426516370198243782347019186073463336372170032438241392690793471272341571626797605417947887823451378939328709394129119247715957023973883612573476700069808684070218446186925739934047651249787861094329505400959056187015936007431542849209480778241304198236642112013003209876398947880501679510197823783401972070104207819014203306786404505101661913337971369982519588868392030156600578109080878204609104687795425107941110557464343358683368515159308617089680230608397911535903942028832824051673992328110721249283047176720181908169869710926521480698519304906608280749271968250798633184093545503022686110584985567993232891542814111623068117203344976905281409379053469224646796026642908037181871281747761435251390714259245995990105186107004823760003206082193284005282041701874922911307948777003324200363708496416450102254357415112729304524335355204500035765885549890009802630966060811122521168710753819792582093367075659997745773833929945698034555228009280844738645426754063842760830417579269679272532123447313939391319516324035194834409907816374168049399672002276398066716229435004945065748402225599752338053054736635733365872721730956114584669245821540473395339757441020454045289232218268100588818521531529376432811079887248154698009532489701474321466985987312119306913845020542695129903337950434372416883745083614220600619457505037734500671374323298983055037665640369743195543082637823154735652204769128156330417639814274397660711114766126205580696650298114844493822679240571946691484091827144950621256336300518027340215324628963868614900872605511886435078175312903982752852118518550747234610447615899680247215352703440197890498708612596962832216257177493712100983040092814590259802677268261999488013144998653031289928429077536213698192176445323827699517893077057905410953423719798544600106347943275004710787003282820586100312206389593194556366019956427158801179258460717368945641402887290698729414829649794304942226556235119522874265076106091699691188696451829482668602832926292666131789095729860443750045967608172525013338523607003787659210373056530098506193361168231779222663709062706849327905275226841143519936778184208773815586191887034522268526183011131306372393669309289143160421112366109744096811598641424365435327931708000031509728709291398797667915348266085018034270276620543809674803646203199103366315257474980705494973132416645466332368169380567239643035635198150270525578595860688019205566388998073622563795192742436409432303940336263972104501648280299387098020000952002871996168087437158857846611740102799501025084486190854441034890461323920566047636184418346235278120195112271075720925487803518347260639356952159392520876987898863051550441617894385318263087488763405454076064767791071291112514936132644198070417605272883217485226341817841367967445117314403858027620679445428311366952042697520778396370195257487317977213366460782780041616451834350358003296045899344461968864689124719424348846240700108252313474736524778268870786840271998153883184418896520466357461394967182934474819932678872858454521896051471174229562861972418389698994624373532667546717671942903197666290744461518542582009989233160018809612555074752900988624546546681060158847029395885496669959124399851385906337142735249986683133662430158067097281630711729691821956035157155262371296481432702959594299712572939743834475780669020510583911775442449419842496046216335057339802138444590074275019089515757016689944501003062089170869180408108447527169753510159422336474756642809498031887889519886523878063630708279054970000562764191910380335574098410816323204863039130226681357540886577616805893858467446294276511285727305563989404051523203703746674281723841874440166349996269839954642417626783511536787256275426214417096607005404632424535392738321975835640956601778921312180423039218631490545863499543086531614746418326885956662050026531369722885021489463887874718908858060669274746738446598744843207979695947814339592238867856559539341075764915409255952402005344808623992985470827915305393826813717865128452467866723061688145721607651669374537361157439434087507193841951648532101472570299378774398162191566161852135877849600446481754703065634868418204441755046384668452784718570749054234284881043908745914061172658676808110048656485447263525897654287688043087791581441978183273317070184619675039081604844340200282911977213469139308005845668102544083519323233855000611128621788481483312747509184483611174553064330595118939345356008483888310801803968817680063230134771258071187774929514422196655888439571400159015442168365992936247861020212704533228888728048115737435304678579725875634931014775673262465574963664832329382883698111417432538449788065560352766155409832557280330636798578335628129704726890626963975061404156105945097765336769577222114668224225946449754493579893770926003717690836744153288774200106183435813306198791978024238905021866832915913483430211988308288503352552412683736605951995568294956129460852335994990415044068032605234473990795347032552943380315543513876452660570567759348888174365714191865508678740941122934866776742594680125832711720894652161575594702726476258329695717239848056407620229273408800075092427683041889812979827703196907616554516857787321684735635010211268158643838093930732601958284630894086414817951923668928528186812828919383405441686397260582037550799447788010281783271472810865215056874490940582234315290869442186504202190617368840535015446510492205619619164085261403463060452329158843128036138781434092055728481527018991026793525969923776862972374584466886423792197032376433621187262007647942857962580028775726869220588793500976850150510924359619693007209950167171682859077011509641126645009919606828969747670718556105280776913413194226074843949835707016961963769590478606764904075231723697397352427975601539074795325687133601283381447302675737942650818017893794366934675773758964010042504513665041148886263582862154186173763213032370380796853276797335408679426903352656071060871181057621701601766907413603277896797919724412248006813267233351169523894880305520858117071039364326989905869738548250212620315779734078609831211673779031793061543288121456722398956832154154393996707397597159758833675842289134466734464763441971331243968026683536909451299221746909532681207156432937702500883926964401513974561763037493362190285747981594402652067721198784677241529640339076335400959921967223264405314879900906824190226358637007412387887585239657723042843105881736728733068431520315721767406727589656382541371368615450203467258225432344374300613928653024822185444543655105988011286174177510500520867451856238012262548041964739766262124703075045219171759353389058776197485056668407494495696615993780818999743976043670997263303097025042010090977209491304341471442938173942854669470305516487764860630597966098668168095544448046854596276865540681342344695385203735210916477898879943986352977485596514953945044874853212517535890103166726189693934614653510642977308593112726167944654215482839411944205287812537833921809490326603278640957840975297056627465769994663691621320390119103229384988074521876314720528092348722246704147875286614583100597253853922195558064847221042127233444362296474436283230205562436756428920501221595953638656004149030187622843816208282278850954789310169783839289084426387748672304705300942975191754483366345852732879238857118509600543627127964161648051949558610506970809546346908788676814529585174336284254427597967851597903430574533535027175134915072622946374301827958377263157176090047278588400140379967944488403200743130210794891177228595084694636584938984303226223481442415569348628145763481325879858882714048413292468018570790203522355532127582653590730488822257464240138353678979134757963300702580826120068819693815024520657916866024368258043084898223888192243240157058796697321256538910289706863964425847561293537840958426293455369618746439385352894860094298116401180211416669272510738435145680007634091874033839532252992164498395514202436464762128042908333622586852139608605974974689428205100596188335143189516279811327418501302803800173120401205938424950401239171267963982655457590079407050860959872852192791557054242617300363698700588824727684125389573629932981755205330829551965817418598296703592671194623169539876381544485930046648272375670491299175654453779871790143842815019455426764485239312838667209833119118291892465035318085420478656247858524688317594984507803319814314210474030390831964840469838618774726029105820609641877605330603052726694438149451445597752689424416649516959159926417701348175189112799500644721484731063337708085782613922743561125366412800269771548148154787300838601252552643177279300619722369881162338046629542052031533736265224504879929072050562755983254963848259334812391393283959781923719955455568738679494133384367917527425395620296747957859258060574667741515267999750150025529659851174217915030491237723549818182687371136493228193786395779887675408884185761654050831302621937386851083978634891435877222159935034994743221021625156114336502676977253401749630600041046961279586002779061756776232381409175831428627842894819939958872084368892060357021900989538303071540132368253213641322345156981177850105126861604513566239620273781874465997834140174006806928319705027014471923033366398905005999799509023187547674541172644876088857940466510624464978573236418748497552542894722640744368712156190167255649245024528122070552924275561559246566775168292824150417889026951968734833811749223773554272129366368870527067076751771616979762676773024326650441402592524530465091887938662764435917130270683057067672704676144174758806809061358535127141925920371668649305707104736350030678971658170846069510793064043474555720773900643722291940687274456954795365338592672143416683617566422618675281763825484191458296237883854870485735069959344339091789373740086954556911640829451868575455670811985784036910328377495102664967112505016009207542197712186250890592466654957099830216027773797935102310192272753526451313463353891737332573257572580140174988183405122263602659076002808498007654322894809177278229905839349342684922822507834326847706903243889974133841671341605983351617687366941799934540637902761741383854483737974079242170225858289799837781225060045662558170178330084925008861552837962432961571129041990692797059023739088799605733254006589799340419817458631533724746761973562886554355930046084370769029419833694862818436706846803778653733784447909660032658201255151344322561207661508697548222434924164133701207306551997292981546387278712372636317613053966667545921695777054697192216324447637531798046686212988478985193193688225002354987653372997593315570384951541610610936241546087126860315224854777738364523171000093536786602618320948715495843210610683579933033984239572539477192999300663767359693424195502956891367147831964536338249166702114738566431703164941916998999593832850073826249916661206262127691639449321984141888271122908215108041906935351376731297273107468438839214765781817166665340626422130173244499103968790214749157052282849074037878032007894234730469428525013809335649097693880598128770346865987322260623993618665782276613218755213447992190784001594519934264479722471910260493531328049414903794550526300423519800548064463928765943430375850539830999529066488915341723770963475900165068224602674181470474811059730065398134092655823636349331607493888174669178144739183578812304118384069889808411928562982100063371640216546062467117972566955718531151279468165155792330815815513190736930760208422692090237546623956966375815426860750805600645721392374995480869578680523797132244100514272391974753402835672668915463071923937258284497327211794488153185190761831093584880304313561914609058434818149937465685944840443346117648508714817692575463698497730148942301071750180436979589761541246154028619584815242649586259053031585957416775774888957436082136373605863909760153858908384730782873667789595292886034662723989367642201254621090275420027110697525641638900674820804027233286917954725864478374375691411406024946238302687249299792404263406613861220753049419372910550864041760249706353941878923476938756932113549733452392468752956521998091707384839158417128357996347884740820744766774705911857043263499331927946627486253163698748338328174055404126365777374177396043813276072854979464278704096469964774249888391109254291900781542844760793329669085536466736843384767403575143518620548063430814822333187318556735214218847483542696668186664438508146071438483857889888793361818089861579804810095558672920012604155893752454791917812612620385145660856619386215684808148410976852645493801978166727291855034562792314972336528896351316706985100959965927390720450309839512493039299226896865661441774000690249836005968879352561511040622835649451233613332076588365373334068540983212585343580768587913143530707724469743155140769293530812370747050610316705879340823023541406895554292897422251321343281509963403729786046014929999422157665560544757287526817216946323879203574557492387269759605179135617320069611434114060098268782559008124827576066460049148604872650840636299236474016654996840306700343292035140099881090846199810133533657751529086562551419788899747016495987679762007437105361801642705422041270179345500390419439935015194807856047048012866703051125207507452374225838895682010019349586044200527147406297235137065083809476832526330757956074540816405178016691051610346121175043485162298700463535310422818977122315494974418906632319842452899253686274621192436595863917594646021331462913679935159985187173609503948762113917694272428651325145340305934490069085278659503749142984414117944742464625676821371297906317761882429006685652282128045600008551410359825530422717670820149602557286800542358937760028311047433399354990981108462996342082014971186353578918737857482257632944109538608127606979314364581836458111984634859937255958586944383317891042941763738932737948562003730454538522078648226983114610640359563368076438834145591754794091149612838604688798916594897064552026916066833258000629740760851069068425214008496530725946879112892747266109530155697029583556964938242488262454200502649089993374468583481486250806176715693057394308972260064385708663640000763487111675950093141506071231106336029313907527769299926933853346670445277995379097696234834276199014541005428059377890750839224040801370472556308247814727130600525276924477161927600101268707197845197364712989299341608238422408668198067112771962917595028240850047706755656721637166873841151430654422392615286546996415036214717914084600445774069587709632154710392253190472088033759580342309188868955310848263602545829000893367741783534082232285332948449728565330272998537748303708427959363448222638026066345354974442784339048763478845141070512226210823904508852867704894887044233674242117359128630298233179105072687116985449676166996238702035029392058627810866500305671827303034420570546424019924545714715851587472023996159406095843644132490452889810882729904752640138901946209589352163895541964559504427839789023390414458901878519503552217922424030631847971517440454042478592947153106525023930210702251386046150159695631615215334844139843448036430296100381579343292373307196518936980764978351447213275102693278129490557179056223510184449795541218976788338506995089129488042637969063472406158936037427783444771413229972726816729548229217160329038826749815002126988528995866322974191639656538474734622453540178691640872690165011900396856660872021344456426451571083561154071612269389366761038050005843567601922520586950197917979798912542618089927940071602162428935121707996079936510019899600761735389442285140084568100091464444477526179403032134125809525127663088249311156709382728160925605239483754612953406973728571674349447423294811117643465724573305977503541991466047580358349687105689643448075074291440003950721664136348425195033047566227155675132663440465006144646856309425485784150843433084315780368757987623021377496109134973039957912693537114247993490789389208269084287113023596860715650603989145089321335343267538699730178442503651811171333201004923014683062572187766390800339777549637059025998614912353538949418615976247227243818851198692661714490486133497473977518998716081553409764073886286987382804925760493268314753769364362894006608872936638534270697177856852451615821226688326365597287769830305664450726920735722820293028847877499054789375810886354780803217362455905026703287826134376306338470794214313906164788060786554966992020530104419421138927186965865476867394987701169699312382961165217540481534960716424416090647451559799129731634746362303403312094768658467496612924323564323930192523008525420003626788292176587657616659487997782455884456502743695423403511876915026979246333558150917681062767143057628134952469287879791860220923758105698097506481074335486896116136883645679999065463910887934783841294795940231741914982644514767359831171487582083177654797155633720086110385717775941870778280680223658147357117302597499674981056579499124073319353940897090758293456930569117963205557967874063061780073540979866888703970733852052374612083230318209235775046842773649477745779421173691851866899814806100305329743289215749057354834646434060738292967697189054708261104907464675982554779864991341706328966034684906803723385993213486924093364800130131735086012801619346288048603605272485111724812128944950319105099458094410739003813131072129757836472010238940235801892680195855202340142880863331080363750349401875053247517142955628518176713356480189358947055673094719496933249528954223682893031468416537946794027416907827929420708642122259194020035829205454668684975971073997301427842077382786395259369791670945575910315032464758883732046879407607441551600051869153479594964107560493224738521419892878513633274973175428493216541617636572500823860037256082213149415805014738301488547865121859937605937836192223995053479299113241708987298406796446751808905656707142196557945417121462677363505282043861693012312145051327372979643365257347515235973287098574656192011647762346018150464651117286004497500567026072968577382350968569443350422137383871174889671697590019287415814108895236176256790558592451786866621026972883796181434630126437274168001265969852963116449561318784993807377678508202763339082586526709436874486388773056605466647554997118503906355175780512971219038823917017426653845416953862693722250838518105283409242854179043980048281414663142879421592502468708158476907435975900810540865810584600368580545157275944590395856762428070730963401894022715314894702506555959187603804202828578891605935170979317241226014170174338475582018318381266784594887276644466330788665411931277653468851122031874448287472243589422472287497659280851254192909310819975418192193263673638500989806225806223120824471786464097445678781877286689190579821940258764116082031324531130470839321638819250750631452804981158270850491471892967534664854971191637086117770494337793086391120438241012807808748960345808439694479733971778266314552415427818503026099428510387279993463904073435638725598086778267085401255791347530713682787187152149784086855224960589356243158808443642581503230124870188927486768152777072745533762524208297090984140759554100643959035745050165719791738142452244883529690756047699847270532474616893994975891676979970333704019687306687587942810980697701461575482015588252306723133394584322040414039598210161253328640764441983894388722390933740681267741536860747602729267527372448180919983773240433164289698272928288138259735394728706827498400220701272398780987244602219370509169853974977826986959957470204517846208206705890949471072368777999021322315089294333510702149758199893178938718634149531591369671026403574301393406501294598952098562517194657458785973218137336671079872774979860209361485845437665637279919112170829519031818009602628948430357785231781196119698586925688747055497227234818309597550197988713375539771138534513174831662697158165853999739391444449541500410013215445787728760047800893963239032874151816526038905438038372765778705088902274144188725795964198333891796359940821177706634210879501271674047455894649316679980965471588304110453599393961634667333370474057230606969108966285771455504161268820801431020197568509026915989907779832867789675885852541394948292117640374406532494916515498889179855339031537245304927191788918894588737600844777851952043017140587356740168553511314079778157631824425656908200419177183072700592754314673030234302099884048138248977108321433188480235399315414397861909654125224485830825391352279070675999294123024000130848608594034351851072651336132542013806296691130339252156142335211648887096190653696666470938550560940331104421869770386179250640300464861074806923833361869988169080352342180381284729771048517189105769244938506016152779613417628213349972412916284311731086910000960102405497644466837828938820260750717096823866775236638932143290057663557044508053695232204679509057646162465896250885277945927257484864829778216324098924961384655047793884187940766355382115947638101227533483418333818777893141311156859007112460147261355760214891299976766724796838654280067560684185483951179194973902750696342818895324618527149973748135494472619742233412571218047531181945962230885997344063114735006542557510264352314488326642900539574165748609450152238634235473389985551590303686430684463381144828629664303872406953001635009394815757966449939191202726824486230886210643508280835668281199242047592057270037400746349527330277663459224039989867611883188928756560281351049336126888320264666175502952617392492363282523781137784189369848228518503588919196599644138736991775982447127181143859243982736399782818611490356006164163728868732507536437841937355314653115007902276539500231008089402436840564375037753917272884996803715931476533548373017616806008979362528724008334275249981435143579509784872735831746065656685326682733682026833155698640391349341440222651289016803055050627191990341687699932956660629486464188786107192895782796741715259005185119695293670148683554824288909101478654782361820772395294585819058234855219448670926092373205910656754292569465828830084022296235500713927924569724956465643761554406194554724525233258462336122585826927991841276561381042013807903978152051920078904560049600653377908604277491780613439350974538458646683046818752154016582367862524957651467767934758132248153274338365849465979906048347912417960689947869200716714356657554105881654405830066946918907503150612231386682109115476993589446213444068347809031811183061300806122987730560591045590251002787052133780450888681595613460852157299462363807980296901502867756893410732156247385605528808639188451471541062349327192380746763534517020868787016039776937195185716254458360702224591446624857237488287719417764172345859868554363036967119942842165825086125048799114155013862250740232241503241997890132826093821248473243867734908355164120933689938676907523219976649493814491417116718296182109301227851177328697621273580524859732374697108386070317853606905968194139423246486856887688177857100801835632170446803667999626174227409251315731986761263103516465748028461745886045262394307273851495338033338036710135867603848824135601842996657493632977527676764104901632078574934208755694355324470016703052606531308274153880494205145327664451830529986767536266629178003826966577477020401790632484481322170240743540271868127244584326386439234052320522456590309054249918117704946236331029859783684313312286046691180357033388724277360266799644560846600520704447761539979393287819428930714223904801694099809299325775286514377074863260596507750038930741525989554303774039297963004010908063154048755559842361302601413200970928654890501951501806812769835087927515281474699422637193047814845327784520215349783149054769501627012706531047902610824351180659371978155960327046165883372672381817230531114326078506921735998692332566907528027593031569189239255481635868101055155539116433760910506380076011808593332158142983342393895621607556562876370872194331791460409492707209670336637058427724471751574610119056639623739078321534515861911247696100849229051339078448215840138285518249479594145488665008931240914518568049743988387959362596615431849593751690731912860007043399574005971034781728135906495134403225297348273848653935417951827235947574586614527913076885154443026548304549280474794777729600713586057056900549419038514273486316230894283649230281683448509753906442621116503457856612627940830747727657615883967516465370084433756696353629820428421660127131952676622114832210174550244778222484034227614036733553390940187558092797565440845170428731029238207400466246380640459931243203293297361117619673134686033040470083159168365320068174151121050900854303513149700589290153994473067146418813327612488085825062793675842425601827504614571279046556916302206891422102830456627770127776630990916365001434918597946320851903723512122386266317253429866121788635482998293295582647668653707476489796952383146526796565705808174331480946727507223651188661716022888578832600449182887690849160370619753381251954132327251573347925389033487117066679277069073168789939896682738918030118504236410970214080758656150946933828866186168132301359104496115258262388628191250473428747001022820757592341841165244716921439870361344224981238464066936831695154798056574786124858217674502812900197290435106909599350915360606464486629615468712941449837288337982217941316561582350350857314720401111159608190892119441495826887881856967376305906313718074593303126917688597192584641012360171842337846718726713561989301071548905845725299527127573766050929493165305794767046827868693747774169413488429720914782071680984242719948017231900579078915901717503734696123280579390171257374792030838091053148901692985868572765747041617069363450618102494060044767733903308776705190335821356981865813169380854619832939228389353973301111277949547217230807278539837896480515209508742730714061523089997189445344611256679303708674178097480703549810021559480523467594773295742222155021267378510323846764112501871343301564754800985916145787388698161080355341359915345130036471252998605967643201917783783710510262985277777072714303679218934993445036717631380244812561147716393325375805320312899791300769567656591748524855200181895028251519230709928520480623146944493464867678789911696014591903389227984469854825413212842311358571732096079461746561564004936425777840125228746600298761158813805461036908373041867118623415894495203397875727458296599455254899689992398698067882711232950654759664264662586776924427788438606862259716726396090674875962560312586362595214879416470662955502749126986225972038230780754987830251895426271925249578855459159153109604560639647380983467005333706997476144441231828773564242105763735747842221147529324605132984980836158336526659663700746626645642721558985502596890175189129686844018269786377597700279028771044727194667660840794866392334763388119503132631074046654474333295342586828143977800051455052160703667271357219630849232831686469430027453983221758846338739066165003927026380101328826720826110739082992425374611120253561520720290305851203155773992005886706568699600574985031507117176892794218351272862252321241120720874019055050594969709432207906116250956477322117560786160365405106290758380079093770978244397862168455048265224139212854394555248565593471500725732402898740294173295106411565375416674407605878769780475482063319991447023807047656354202773091260820844339359892406292421639094162202622089738204432213442136341160782363906240783805088283414703573023673172658737104668317609611388018144962792784324663567249917283147703955881043262033587010403799690217703210767667117699077966115230546972219578427959649046754749377941757797082139904979448061185842703250387240546149655173090493430457789432966210448292795066942543927436888730735890787524974026097220891412577492010068836560898654028357395921354490765687576033362195309737571790344101302422618372183831981203291583379329291017205805427407001086311808046797056070861472066983448856461666493843006729728660892591016260844234419985022833455163571280092274140889821992166251980843796291216961461232113446649657311138523988388206507177235779637396758990581639387131351738397372815270671515719975155097582725870593503271169596516274798117734571934626343845155179230868789079919747796914117734262578597344733562193597080351702150290087547080969752021575056834454344726545686564427310925277986969555761686785840559230818893247409563558060138444662304190232864100117163037607683545091020330967547615741608516857052871766964228526753534931082247944828923424737221582683741923053787505270266799857980931704552059632678856574210637407234325731626806648444119689228326872869222890685563338251306146573868886907867491600254109492250128763163992976125568502912499136325088449195153737558053569084228073313436009816759767544097265735596861223182252097905059410729109931379399656540052055652743411307633589446459381831643276469760399749891824130108893849041086439874385195794653550299170164737826270631471626931826036681993899302628679327641965698268632533682506294652501756899267346460000199595891844238979302751624417295361354000088895347655216176876101399862989392386299433265611209258424259155131840457983077937011987410933935027196442634430216310321181509239743051319365458717742203398526440614779114488432188278296777739049621748894380276350018775822929680941212069241523593741184046778091296664808442659696398051487472610510700069231510790584010034468964069430959930783138831082550305670114044734625934500306053549634016146796847320252190290062083492675253461204162041137391903529328274858742987570611621010028185205892038360982879880098490495621815522105172174477807603325553383080887416968339152213581252091708526543470250156747918237954987540844801160447555313873818243342104745283629224146298590265653594389270245324450539986814797874622787918439534307534587422703492715559209136473624903841857382721810679134129802545921326881547997201230485667174099226582303875260266186304547240069406358246631725056433823316599017769050637645972561528846797047385441680064243734773086155537984377831062593029177778038089956915927818550870116426913879436541307786995365608526805047497478746449584436924321500032975990319034007870340321329127700331825047277141978051030045589060161647959386668666476949134812043639909339749475300416648411669610134801751524975088396344500996053982945153461026746226444870296189838744914528517751587899390803563935008706209267483088046754397678051676706244589615079255100319092549522810701330388653813837674166240250567195769765996960768086526347115775254352348119780552285863618829862312144840664901813282006799614001929862608232479059941232546897054251757439726225927418557157754443432813268157733731193737974918009170251308799830403972657423297708775557928109789841540510740847936960060627270185462917970371212220680655044557676751920770933615079308840337047432969893951397923426881870986353865786081237209147611390098273992479762323639309051807831929957631465004980586975144422208539273186940516069242762337746041859296729011674920735729788540122790047741448675254930194424717391039208801527233242379252446604324800170835014206322486584414687574533358506447535543204421468925277311589786190170051984151224878179644754087333618600899171232261443984886319351959629567144915847709363744579211053965841208546977785091400221603673143405232988156692129794512292975047871974730389279938948963599180700291925332984377926264221418829516771429102345771170076528112026806471319916609300594294393100573475252299216444922328705208305832467891914043999827466372091073852720877857973805907167893633452428418953994366523285769012023017401370049790560732753177901414315826971173262064730313011232904219696082031165931251477517761188313641584645725913097950514563523104062255591786571959631032915834076920608032420856725503504049473159862794503752010922018100767877149316312173775933349312829934370837649667584565995419577571635452914399730612610953145020549777435156433873632429410595710044287391690330866342176208022122736562862170726514193651808649973735114575518936611044681309783582475609089069617158460606440754176765568863725793695255116540217133493818001968947459006860818580300036546303108325795748627231548756311182209200708981661238961991225602622067095427782131942949505721236617258659374115876708011455962825127863268844777660723507094035570783499803849702472620030547531185633648953168837564120835404022351036363752557254683965082726649834520521484362219728020214620722050785622214349617296097475129663349711095392164276586449443600495583871693331748005530302474688118078720282146108573418356597334289576239859667157949530977159552592504319353232884219555657918448276082444769106601878632781779044419688520210444975723932723331405732841616813366578602602863471664864664219010113883466605067106137152804171838738248227056929643491277533565902195717159143002775049432820897776275560623419853457544582820573490459951288347951399897576513383741219809177831214450614293718384586121683554948648837350059334917221399190548590031650549128988483354992281572415405899930278563670103759589093842629823864847300202251731080325994376769454788870240135158353431214098181914210545299475865059096599693342306061467149921619431237360963040544168301377537350961000400733920780027181037439695469835093516651250336608360755703478937311953965292092748344023951340682498668500962610869974549644228541745489552674462686164503982970469658695077449554307984930274624032647858408142148475057451610035157689352527704849505019309304528670638806483982424150141602846918310126589635660323879488233139470924634312932413033106176323319460729789650173363344777386946929809909484775173135503794204312898918681935766831235245861508570598786247505640027235951001280557051967648263004095756488124252127928017116873134517142652335247507423136004931011119817238946449466716195523825734780255017858679849885152974564230506313725639433378986842735237950848243109707016057110917616433213375082750915141746901297616333103552469626564332822766199510563505666914213422016511763391129301048448463965911893982333316629732477634441089449590427975630996864097030659790333986162784788565546080654215436680103776188112557540979187974190520880464702899974322961933719221892379966174979906815133933019976366239429054285857588592029476548959623112216565597806432919086917533163221158925470168186809096475863093388756312652599267375967395643857943240280690403712603295545442946315701620297938502153320693694232620081908908125637230271773607625727317942257152107723018304436574560832923050858072874096476840625078118612632620871864856886561211402927774214877404772474113446670491253944344245628944181240624935109865819329842260745102509105564349187108202800635458422125547314489579893148085309685756161833465444838667239668286609357614593987939129146981371366773436874401530336699598175119589802287930076466167680737961020303303398782107186542667268396995163647542272620269800823753294841541923424721719870642278261377660025398487303996512015799506069305881478634954784693286138875390838505225451576916803352759828586718176626205854774261931263244530591092328516997937318737728667179213246854931228839095744086805298182159930036391983086767535982547745823127304275141471783576721740238298894599061031199500480389622609818678366706620035610064910242652916079400166567329928520124745166796951712927819806088146178039910436353209793160611871842121240826596635736362255769725995967998456817858386423204201311764225739775571606005908271990869951638724241730597670040937021637676675568586056611213388897757990720474771581352620357687201338578857615646729531060756800714045481097812937239275420753391295890597566911063582655698371777554434001393765776422336100444355969207575484128565122060019038689192819817951701216130014805661051506030656867206689376926839098357313532624804712635463849612052755835559685386218648777908097230868444288650370426436513897894720341965269394371583083579751913450371508581817129333251439104869703430990153769863788893381106864325239860224713023226279469422895796494180512447084906800005396988582616422330377080864600398740982891267906134125604349089068894043536983998483383681774494928787602007962372890089579291657611717607387715858475013527720893920382044649018781885452776982944862943027730011558552350547025330202665886101430440712470219503681561863430249902506126994816457112189128999741391717906688115732782723369793250931890738674617209403256804966915797644686231609097595839273345435878979263478048246216864772738565129602238685319814863011245180094182669244219094002805172734305134479960520989848778612651272011475998207395934631950351629375010703111577618632044045065575961703843116034777168717332854202569307388385078853013105499494248522882083043811854469090165100971136965144022164113627362077360794565944201423439381051096787708372280647275287951423054443470224220922723972393571319354145186158186215056741116376283716276130283415129841398391492280897926684644054026283504610468707216298907618228615223815338730355626703865334928194792686259882505903365810183304502773139975267418347007414975077110565021224243218281260878531885942245367239800588270434241778475326288039011675253961485735958054544833450868015690679871107184543093217128504671439626765665902093160605034882182213856555619678483596120029591923684905400748735978714991248904947157901188794664601233304093753603653779878187775727540752139439922813914995034624115976649538999906993831738884556559261702525947969921817908719912900730098071856968716707783179421297343631668881168240869827524115326277647597793942207479361921093698422867326346691321738450495108723682638716100687520399760307567003612958558772419617031717406259828328638785483140706290564269617240436407024436321492193265907697686719996242990824384925330591343575202405821056251407489996209086377264337319338095185653212696575879867744765126871546989630782113974547870421703966822851594051474769893340681925289601172925968726929714613137851438527148001252211534554954191683739345480864512315072937056377956574224078935024222806728472655912542989536740218819986298122224523823517185488979492074001674738407697267802624774131269401499295674527158250880554699889054491029846781275963883577694109256846331798927584637184657177038639822838185907064345528415930237334419087663676294584367141525085650846736634880935059256188198300846543432275666260185657019370874821003727057028586018695824641062205861209645468646200554396352023712022486176113909456150986228460321010009587160575971228383273555045379765563847677193929581139539048271272964214790461842653215998503052927828758574716117293646156152267407776211843605800242132369551360597445537879254434945584111985838473538807410987573301216448230156064629891664471507401604612955751126601917899516238950329927713701992110250833270062756146815517358113195984982611273648755187484815975476481893091599062484391869434815933815441849388312975853594446015940210877308519985171508889554982348582167847082936918504036169883094440632094021549137564302625026781991812867162552853384708026049836081239692615536859043218318464531795457898266084215461850350680202803716949421000428407547760744324961588430043597464937964104995005760970808894499282211898414895696184955681210419308675947419280137769830959963262151166287244287220904177385206315674800808202014279375692958678216375265625571129548315684937957278136179875235094251683187746821810804085932644837432845852121239025943438884931321087541101545877474465460651522749478585675073083480241477228364912362264548065954815141132494624777120676963591161577465286388134341807953462801967677942172984463833423789390215478500576396295810238583040820004482465707341929974642076360256770477530558093690642170837386525603531545149285117536402876554204888184024094141912038835561990600429692267336009902573571879075061673617905843925410931702407760221527434318570575830784565197502285001888520443348910868895050213424622400944776142531149598967211123234895653657880024550043577084013940364745989296210732885044787189465511061974187767751217191967595515314289559885759900922675234071543310352945603390893187389006654248028425390339824894734571146510569502651371015178904304829381757873907213986938048535265463955166013087603643072523414115795317632953097268516363717849795495638976499187939881349272720034166780319491167229179664320997488140138099904691256211259590781529492419596082644248883013502265607308730204715638927134320811464721749447260736847295313244051548226456166896865243593106423452983807890073379750391968015763866884476601724871888257134475239584504205991505880101714861357874206984387123437499418558004308210566234565698536498853866475439420066763018793052373127067723238359165795500132061374865569332539338363269962800592531510932169735764124473285265761773857400398546599066436301996429745850526844926408917707254983399931653464604220239537884308080671336601845676404006744200670305554638186517174175914321634330488866005711073381405948485254795441412630420178104319266291916934060616651749753851709787227412215365793340371366317908096436056682000994273127244914324026805120552047386166147529156891049711340123464339852009675853969020465826382856452941381518669608854448740415388518665125264571651275922116237261769163587834329637367412737683380431027563642729149763995576477780504128423593736356102256548010125985324799368203622498218891577190326766622866119194585627869648571600151875117339068616730665985041345484972162724138920473134694569913648954060611263748795843755750767535716566020489176763213590556717247048657577384869859116931541804053717706899810705556615842381717525302038512827226146522455495541145814025124491974403575614825998586492755467431758565200151531489260873332515491870584890544967930997479540850491284458914807396623710470753588045712653971475885164778523845546009377838325351486080647227232339463980675959795406397908550707007272162890612428479662764308210526273930210680322255300957705953597442521973049957921552662881425489813427591619914391745566238840641496349611875695751958064027826288224311715200969822733693484531405602347188919012746606015506887723685584754522322619539967808325017056185388056097421397914938937401694738776378566633503205200932745922451719420551069893672254126026921775608280329073891565759014045526165506818485616355088482843275231592351989435589771346362704849092537916429221592858210555596681248779479376564851070496828867781328102026960301468028727145405180294589026006488141848131027051095907952751644893621921890982576940232631973384788310170593978731493709766545852055542976426689544487438825285339511160398692098479648633795848546980278412411504379447383860862439811217516273646174071654760631182496984189146417181175690979690204702299474051975980958678024285132270501151711325733612556616702874385217365404301755034782089072728009887207008454637308482406742245326604808708515566017571399010799455000526665999273032787066964709453980830391334074441341878996430168234336191832855174880404511643272322858197719737213980656436359617881875972936329379848688609524519779137967292996562489363953841574599932308295313275306913068321610547440812246599600618395357302630238820805285159114209520751794229734697619767024331113244341296889738922239018850676616489088696242313064979187269226192709258252052850729005722161298185253843749205323785100994178094467644192297659104219466683692675947877766253464455903524377404867351066547173306010097504103302972091645312144856224582203165329238152740188234438795091291351899454382843359396391389072086782678885614181998216869956519420277949144662008514078988260352725312323210698748872192534944044889269997456913370478224882576631455656012009248392396891733576659730851512465418567601648233834899649843409953148729123562286993852395517652539914419410570390186854726311812121279141713502948206932375899405109050714240376758666909366170616528959574775282346768391448467660402114244794449859714190464293284149097605307983151264464749450363807664900913909768177775429181477150975177436403703096741544539425867694530739489913902730951139511601181805183794708711577265406031601957443573768295213103010787269130181639924312374410993087371982332355647049299016877061702614331741231734166965288112870289254269400622564137817720355277221789811128117222902570732846033097732014663874462649023726827056053305690173320448105259164991631664775665938700480521222240747161009656394787988106233114844662260777697406553188833883060487706755982746909609434191988162638673760449663772944552522962059427210247032533823249053169435204088644983656840955978691853052463229651472120058733681098150886978044884878813358563099449068168940137995966443799872047532109530748540329011160498698577924764541548971896346250822840669267853597580751791749529285704140014676400657486965303769457199988934288711191866424350422002708331976095286805626753621408226321575161193037608162716126059891235326955621444371316468962641600283971118555724276823514773576816879003725444942771235260741173006330599285436890091885584675531437275749663867528760316527216994703559675166746999362925542479507134149243441756380543758674882117590130497148315505963252966560619127016637253648722678311998671404372846670061352919042455649800693923988329832293065251647517270175189524175459131164943104681460914817335113583691765566619381444961917188225444172575361366138101354696042058906415436407820760433816122301151253816018004577571940366641722567615113076612390291835314055343827292557741702804625725925635765756620569953514685261965677894312933192467257401172700348442712706645807814414900491453770588700970911064435687712935057797850025741076520168127834676578354578812027124040755375228444539643483313934948727546568001871714262383938580392034255792669659674857630044592710061555015048888352121077746272138665352372290237771293907575013961265908242870564955813378807184792190528172572444238529631173929736065197913931036207393192646620071695904537869863297946099030723083180622314759498326898890509056163596425209043580168235863125387298816506916814782039757575060368933934437540189108433744121793878064252524719605748607197648874832460709791676547772621093961008868066206909770027090313075702684591358676023989252629766502460933513291674353599204890945232554875832056378865986967448221170737584270503961596481847643549752366337133627409981444399051794424144837545896344796698249017374684024556064324351330059056710353799751151713465221067945847834665934117859385682097702311782899600092956725860577533746343343152310029275614586511684322882388849820418536791501485843658925341872632190878562649142716565981748497629376396875196733620252459134399779978822666867543999197035220535383206726717942932967300045370511712221197461092989398441966002037368583253062371400400766939528190870201448346164659575990190779928790943196584927234342750380267099719256040522770964368800045737687337914925475553110488087188975068953412903021936052431839608201947396407907960850582173033557027193789126197813645858017617798993610004683389162343570099718778308697724082776153866133209267046907262942815725405447670771422357348185719316523705464435248310554727700634629936475130658844437716078085699265126002841446580640216627694248051510618199891817951686082130614239993055840285754288879717176845781571247709207445534818582305801261889565570901111795282371672455373996429462124853551675849434891573100123765537023076569537355890546335022817312991990131284398046070273169187693661067933547502335675246660843135041304570851491100986877846579425675262488453211300203471942243337999952436954590913738459556635750457849549522148955520649401377752971262665264716989796208850761465523987854582867724171611381612120804828685962898527608465144125265147794879372548615881435731841303485482673820127166849378353449832708529653245831159624244199916054204379985379566678071004523596195453248065572666083990983391246465957574911151945313483644408995652202429879689298400184561764720636483721393140201692190955135090913694514670138359284254112885525632920876655779630573483614815155678703745341312796847849704642213464920612834446474668135027627652616264643153990123386463512964167520827949937958796659070164032592743189509484810412906142254475870304446370040482853314655445003202473461118844868707180303841969752470446258977349090010139165487969013862376975432518550279635293350994798021515977252784219806561993567609457065774352514106805811633615991515537526993053679950683405109162918145351629816104743803253066658127695501252569231815854560613271200554811699132067330918288816963738939549058935078390076822289820894614772318696978855001093166177993362282742045658678435087878129904490221064319976440459506748172317630403366804967865993198201750682436253214518956639903942318413937131401831290640193675080721221654196292817993943315835664233699204822985069471662455462700605821036577482078408087353476246635405947851246385800525394932046325294933251102930124449985154322074219994673007256775691400290014732167540146177735637870908155558142591012033447927688735851175481723171997887304897523773717335012773544138878648726340534280733700793403486018716028105817444213098672932767344029371991787760696871094535905639026575100461986557207938673342709549102819472064360521241065396735981818243540017670300635382408213081251179972102202669070398947456822356558275589452183623981336688426300070471108565029828522426841803199231314060644138195647344090946421306432472143792503013180465498446857234434391496729049283416714331351242958099904231191543317893856656776238311738886871233145677570846478482539058597119393910049568267401363400862147696697094571290168206472996393948308013607040331756489979283624274769961523988902199955011453494967794160954107883149940387193082861704352954992519591806162432437722166205773063121242012969863763571868336474056871369810201653022204842799383572878527221665937060456565930507341603947477322519097829081279339292705152863240550241309870955213626227529349372298948702376194749673519136156703966153957870613396391788869191704594449652651903375314640252010056777509239622192722127990645214982378920881131906793344123750581765432151797867463900407936041943477653702486105094509421746130030182154208647493380287330260282304639210997409618175986553596362958554516834312174328431531227152365659684687836049565993293066367614758909537506649878205078427651771953055753999948198770552935338281642123827723944762436462366514756382653712152743207999154403414898449735297078120665766550615752520656983205726442964613246941993682642491065606386466958069989402153487423967871026776822731231604345857290875022892160482477613641301827004695484765669516268469412887219822268554952642266508871237384069947282152322740466523851751718202647327049694587574016733856467254105557222273501290047903474405427745949880033980048238279784684902571864102405597541942670311127839198061143721422327183333683607557028191186897105929552655531193019094868978802592875858683953723449041870080504771637497536149115788092595795614871182034866853128936831171165151958779602401327312777276066840811267743923564889633735058282254607020526844565028779074806297807484955818963435313851365491217103816100866565711668176672779185709005546374111159129467204984922786821983795906196492512011550922855732658409474733369059146196836744748079987408479722042814269888501752944998660515495685871492900762546447570339249708210960474726424686295824889388604149792455685538348724162087356090991260369769953083795079768061628667374548500865499101899037890122637848451315976538013441586065353769303649248835581584402379369927353544541818999837765988359423486136747685001517293997728531712381866341598198319330715683375132292326373098659127644539023109996042431562633081564643536757389760922633678132530260636936661538172579077869702466724305101608342797239195759285202977186739830144093396071500553841873463847098353432094032738432514489723550589990841393655412438057951620595908779408041981987864730367730069225099037890778242845851306480687926727676602105379061239348586170804736570326159390522675632469711225229019200015553600571971374045744995746048699465401046331572781417676809132177712380304534877210774542941572404919835499759948257691898182191258163551981623244941914199455061339491787058313696333344482267502840698344219232430957562842656882464356542348823913021817361978741739560892397539683685651873099322728415258796586166821935736031624271227969211955541425992544479666398661970112204442874420719916424409402854918923915039212562627631355605197211164857444836321528363980458683508177601854300344913224485233114338031327050951246083553832564454169903572810825589309204817017631236799852318135626013396630759251485898324272112023204090589449927685233567509387198227120073926335529925972430156700554577419145547876962012459688921721921729775684900549190611695800140874662188318786025204225579892328544347167435087512415515774881529912950480165570126845898333390541757393910952006522706558173722047335379947064509080222176052572431057236128757672895284739236375385303541018960378018991881309818906736621744257627626944994987155457564874957607569238231351820383085456180135404913227068837027502151704209189178949871301401968012404703233688103445639531830544218565982334277728475837062578274939284746634066906734935074475276062723614369942927299818275601852903687609175381481968779819946674480730463018075083999495764088524369628006932179467416579630847921692563831757256297082126628241737564633859497975924281522528108219703919672708392084458393580291631920333160397462258404588300006378568692153850056112925784000181343516026893688398935455791627401929076000938932916193090575515861708505578011504948200472873216324167979667746125391937087688155382474327392178870133323800773701114473033858472726740246268312842803963241566646978586884175163784735918169043470567330692063678336292651541409622621769670572735813629511888601942918915260697257743000862895470447752433822378494109414873997922976634892433515465311097178120291616009276223822565592234874733886127359159702257678557086735222082680624994388917771444452081392340220707737902279405694083182952301114148280845127248328978807519156522908806336222492335701382463269750341415336736980138001206722597273823129866218752384024622468772064438708566141967950036303571396129625791097325596385271817570290534187627275852425794896026302178796907778451446292866941335635323768253036381220543140691056327619330174023349078512165730085047589534621784176906980919334155698411395805545665077638247938897978812099180493164085851983916417822592461370356604761347854110391709368118343963139332744079789762136630159479275161691922321612881275450310039647409496259705349072934850168738608789152345269782971319402778300721861886960390196957467785130167893107888562973302373721116806956775998735181121135721714114813048493144772739047775601709360047708132435057876102064877352347535604446614141343869722535292116310871121795662592886383947187552461177851336491820175654836550062391620370295165048203088297430040477488165846672269330243855259487851454661645969340664857347453442089186891353430681319781320153478227629898939016550307324627868594980811777671936506039195532024949873607887877952922442657479328568141508922794026038630257953621349280313656578571425011772262642388828436563454244800020402812173274316788821472734258352172027233029846410942580341076288472993833932503628160601391097096123923568860209037101999337211825077063209083129626412216264971002130619497578940628218131060006294738095753886408819807581957568760037191161056552995257892255788304290924558635307886487134771562465873972478620366614482291872927565374518353273222880807953551545663548090548768280227851915872918055080453890958294431462370857514119375891904220294878899487415665092271860319786526613570373965425454682195548763800150046406386290038434246152050965321444955158386008877823412951858454718630967778609225425532686946866458908952074807378066475514969531164755180664384987224868597628409265214980034798955848562797961575296947999787867323903095017746857722896568018690223170638571896411093269248674027834916859611835632539912003849328212793130567740620036917111523446987487022894599860236847745858734293127703958505940713722949190963315633424792523254240439148297067553063337712307622734802872624689523534082798406578033499686212365285889645213869932513988217865334968577972195340965230635593699666509889512256488626457272090356356505332367852735093743967504934525777359286151546764967934372899309519774501644932703350331040988277126621510530944878449354687841918957591455461967210161933775054909324074363954837358548212170493260887615053475395112134581820436192607218212709802735681481444371398702536044517452260325784996206220881684432332407582218476013171577501097198008352654944477021753630833151633344373366516891399366162129278973947926768868819454703627302537658735388634737723546813354351343918576401880263163139742333316610389028630809761628749687419412858179811719423338040061464185297625706651281472788589403297977213982846391318182308495878796690323497941427722843955348099362012425223826486011663560610971774394076045693384599104853357571361034880229563323353409149309320588862252124987559799464844476163200742844723964401430143916439269318942330473698545367253269966976107045113763707449454800149383512102745304547067408225548552065228523263711302475678398633257997020838282213842871344339577620726834365690782814888995775173857793616334113011341763559733384002947718857947113127361878045779839390007655322970416594090414126191671110775093129484581635467968248679481197217471759881833586053448030028722875177923837308705159561979930326777778155761994354372234756418833448826940621677330848759606546566884176354459789221464352906169443464931783131638352554036367425707605845521722715208410560986339091359878603268594634460226021492319661650930150490771236986185998883643748330920888797743719192635787798401493241533820371186359565175709776316579384059740117189004510088253069426713706164424027181516466123933166446808030509862643322072080798528119826648273155459983652368141453221367606059494638575485962099575111198734209441580664297441314260153053000582075900353736408620735794010456491287767124523406307212699288113241862996817643413041020920375886301035641043500688548568551385593471722353004640708585687230240698088352074664245956814344543798838692570668101436223601698759360677655977886433024728067842851493690604111305966825730326871310390770446389784421211257855045832035107511637610369820755606649825137919016912141171873514104205533172733984354607481589434515543830732105821785713274246946429255713225340368064661869810137540705432593331586390204595403833637797136102103678087103984681901969750434806064099479104739103793567655187913768823155440733160997491043422363377705083373923690766539937020996817525094817663005578675885295453353887828796271468549257683543885677285653920338994208084083786963106273225419646167010917354856928752571209123114671775254951086254862350189731697748584855232918916918211248777116243825089683880482656453222252673704406409219342517128132818947313495357983292980523601118751305648080081692441785910738203081984630570814614921782185114997345572979082970319855087462326373495913749723327676594538275488311192183287176695563373820363578653138085064397971820556847888763569136793008158129046914622329031858818327115115543110301162710877848258419210603017994261690001608497414895922439839231926419095145682610668533697618345351969427063178520403558501696187109378391582557155280432893686506778405392812623966825786879076691924504436482879188554185581940876883869394461204007728846688368667045102361089932887605680156987978815313144011754369857053682947556957255749369228825686235230524866796707498876916856914624555877969336380897861217660446375006244786827009913803293297226094790369866391860078800624496112807223769061463744462230355044242262265164458935699819397128435161184345217076547603731154334240142442743028360270811484360193729381469769128188971649307528727665178039792932764855281607939099215294880064047181051511689026031699874455414302364746616728956977996590844336480535460995254730339928199639268623847325998586454023947273402094734362645255330706937587217828421716905631476010495594365784999476296792637411316411916166004249290529226469443261898578266099461694553302460162482769228920408324724493878543835000550686672286918788391025272558755617037339252656977689666621033831761448453027747382097999839499351372535548955530926208445626652884798342210369764689710526718384352502887198033457112143904604263619941150990354891621466742712444841536128203391132208394816408068227763026678069620675977863323587332299353455055631298618292479023776826168301840555319133730531761065560000345203714227188169205505374881290445530852328548711733778468702000694964215793225914409481885376343107778349413355937711542059765860898660886292125669119919897390873716034367434162748255683719523204956620825659397950763032179416516000859292909071158804114482298749326310560949347203859340532840016005814751134104085093240141304453913455459645922881721231934912063151081700321565676686986903999727638387638612022691761978474120841706140622923221359363337713048511273635284368328056937026807158845176295143941063127806231343894827916433973198253582646937087162689507642434750335291269296714463744812786463673427709074620232521643263371472352931235454981629100892714446734802556157310872330616866585210887956899260239567827350283020826752046294303727276237866474806443226115235947602564519905319199060066924571945638845682476142373643584731562439045651063677062862151677932376882133547475878298099256773848618458676957372005192181744941406110668039438873541467095205260782807863078245471899737364617532912331506407398587231973735062401796949430402123743034084738449998118800002738631770753687337090468115249441386232150779778098531088854035275575687061166696462350326630879041480835706385782880943702503976416154107282409372563511660352056492193423929307755618740629173241914072581737765961290443758429982435074389979303636284383518944721868388335333829245591831638924880147918888535677305551293254172509669442088691453804325495330158875237339323696775566193394605894512941908800963869130037670161444000710225229797074306984631546398209616685996514419467831791874754301107159156317904290417014557483906908486018195861664407678068181328936452900320092870181486370937421975425099095121317526190709796212879717362337389101509899392065194898490686352453175782383716930674159126680063613346016641483609110703093298187287544244441819681258724622343678826665843143235063037130336663357615866638011325821165760896472700425444425217454667632120838226914652152718945404149860432861504224312401007937978628138317299449685792114518273929937833909836452178352954464581038474402761229937760817066593347030260162559624964663926713233591489443146541328109137168203403811365054226695346450121854281429302635966972669313343585201121856969470208539323054673616817179547714960534304749076522082483793302975585645608546735818139314584421344035973195136418233882053648441157280009661442615944032362616532528564783376129165667549931145178967498845525947827627568728650136581285917258737427649257168046461677688166956541567492979049659865397064210719204389774163127165722112173193519673787763395538970582746885476377696730700085622011512628938503114650788387056494238865718170908375232616091263079316900376023048232311846804313577252417508388142299078670756240016686946490149268874353742211393314701948137325143005591649432895875362831624179860703035495327745060895298655733359701627626205021141899849324863130142935315095204132388288723543843004233692498378659141921415038845373625648647234693014539235714543315124152320239773297284991841777713308666866246976598762945364007258272059510668146976419339066994962678587937357013452359501403811172370300464638203676098892516384466608060460507295371885544255867427130233203067466507116235061877977728734122122135213496598669118870009558576797299309001870465762252751449700344661987580434224364513594781709164054024260013779125333776095050015058649434464992645518932459984709838300248376872491013915667266542326873745897377976100949265896663477156741703825581801613724209381915625490199456891129995064010318375320976038045490000553028608450623641845223792826512615926836622301617134406165569949010063878172280714154598005596320629819490936106830254966969206874395874594192214985071203400723911921457985989259800688830313292960594702024460644542577061221265655433558801684689817121734590298894526628928212524528033737858665762377229823552312392345744115522684740051858551077801896393093097042879934851798862507483054588927565483671808621330012908320869222829937138421768882656320129618966357439557144635664847137903252360319472148898598295463745219228780861257318467274141707059709540365823140079943701380426798652873032399121055237745438847774130320391327371732134319966891986419375833973370824994782115536623524857834254215611285060789257272514192030594351436501874835513417127344875245720872554293754706249598547650031337652540762230256861484863013114085109598265265495168476809227045972424303978504116762744961511674958851399148959208797492170591202267604775958893719936800080057106159294022545613089185664208524591818683198385341673646860498063219590809765912984929431198885823981179195675050614935817919691621447469015747144146974828158480976046319580603839361979868505147822318770478047293673363410011177004288675748368173528704036450951558800097170191918862626402651894214742953837523390101446154110665097337205107691913855272133224249759083179430340392130978090707565916331892762382040612909686515308788699090271830522032133408791115774289443404940475854090601040584352280012812270738447721815516230912549632575235944883802240420618803554591062252758270587212489616722614138628488410050073478248396147689276404289534823300542803966775166707444078149728244931114712155086287123333606596679073122345242065271737183400104462288672641300204628947231298593718511932690797141637227410425214515979762687647381195876765522633264762734221782452466561927246434175225149834423445910763166424271517381664078696864770913238365180860781272995921428159510318071982569449177285373502058776793653856581608130553230806376260459423986575230753783183631821085714963973746678683492510741917686450574560970325949172741653206399772104750260259749629911602084041417585671014007046353808460274236960040151170111753804454199176538314009748150739257287663093800536420324404869675678294041315062300820646530671581798940596463261567229229966347618993380501168872100272989403506208917509303656625572586579457371413705449129959521037611941888437149504287394535861109942393645054968198241499292030026725038609611479576668462909958648416994174149232157956295645083671068454118282355965077207937431353631704286691477225249062027448775903913237733647047920834889690005857717211764503923561555574890063632651622555882008816205372242276600813855352736068123118065367594170047504349410180019238612610164980821514835902566910686819905754746031374555504169188349984819221226660493681145850353793537871543872351649369272140842461531980214696477807838582479141914971213002405285466850215132608304862360856485304705019109213523481982342137888799396568603522502844306256645691489109718882837703327713615228394415743855472561034580928563092630550522179011351350307292759956831838067474848803380556675124257399865525696830820026785998321760425325859049643851881616696676995087413739806987006512364295612467405539278965424290750890395852428466205607695067979391835270946454559059818126880975234708143109247226487008269221261348451331997501942518606205606250323533275880632483745023010583827010230535447144655598214438656003402879322478556624899763596527488084184296674506213751418083024830828397624672352735746515377725170029785431570741654853222771814110008793445421187361626321067698404836499934186701479242955311500359636683107833690428358428716305192614507374807294711882088091575135439189158724076194502659456787258329128852839808375746831095365078701299715891291696354092112987459101429078441979034340638855231249515083685014726833403170266554502660116736029287742911367547246970730328879673171058506733914998542325942773547058506392084250103123433857495876858507217497364272677524642646987365255657597504300197913479825466104503479998804120790273154655136954209109986436783667349391967315366817283222471028762483289060547667110741404715030556811823335484979545745012955324931217444764280920749201704777040174665381294276064236650335571016846099545449232467927226199233078904289235583208627180277911491969481646458833978251779649460463177106657769814608913502658991253408372723664716001118616534867965039661858362242902158986717784843794591834236412642156262345063684111619184350983600152866853244323324102067436121725762295328151012809930692797041886659733534119018093303519630366225839251039647721970868822564540856318777414425719781575948798844649718872334798719907686219148307968110061668275754906289643941638318530562056099868924815440049148185968228126956599172799849805421718805282692200985469253819513298042288220061577940962205013208113719267346890919543224751391859522141908031735163120813615505360445537584267320338563037640172256953834647744672880968813590699359061312329372384414233161213910339347003904219726607229482322522996786300903128601353150512998662956607297700232858119488916261837589016399690020221593283164734316088234104810925385426686000228853351851324736872987675278450465906723601476735477307376545955647137081452616037942842506618491827213056193597299816889920057918749932942832949371289263681251207114659431562588520655145534764731958727688135684139145636932913305770247475268732293407853020498398582139081836155489964524690354417670082644177257553162499761742759228129343971779014146915137715198234735438775069766479994686831198336746284506597707614890248186594722005729694472731496149288014830105524897244760953433287924459533996555845358530091384652986491600478497043711146646022588188137863085415305553058287692151127807158758341293854621716574557017665063600762008114772496994685991786235579829068821056022300545370847088090005032068561867487199081371968103255237314206424182843055049587853422741583755312742161617036531983190280519270554167034786115706097524609186105891232832331468813383362214540808647622286883735136889695197613121605625647417581890624726392805612437445374690921123801727274531935144878261900287617649205974438311072254452066566544929345220931347101106689694491525364285900991192083438059829215685944670702135910773840381827050313133516675435413778193030920370372228044105865999458704373539786986937499747879444870767534323371094915188262936919248805697564263649727714747448011167066111131150731900722538507037889212803523687798597297824506091553973421771702171092757131162784672324136424596659124014296066961669330620748441018893948012982807302906938685672846129593560016096828751852124565503730259194341665110149304640350159149811747203120600459301300286635110659173454863160988600882349292553557918109634085466430139447776987501340411250251945088889833161478688365980852483205014126386528855270580087323405060322724665350457677321893916525221738934978513078884792067277203271725822713537537383795612741082963316853274072364474007133639422786262964195854746631362116144308245362297147221671086785279610676430069187892490142213288153063940179372124808058622920409630615893392949315542162378843837301854126819681367092499966987711618647152342555325684068900792860176890176240990820746832377562098941854190453617555996013033902030881826272044634273251298306902140890274168987348867370628485891512076365462530173714388823625487154544181700343728383585908655659941939456842396137022489346020067477519222216869976052575974740468556645910956958357940109785025712212213298486572667074749660469435096714530577449657992331996420252115631114380654129963515099926706989790182904435519217232915385192161549165838928705678894563733393846911858150438533579101178120730745868358220203355658011171823556823419003450928327698006553032743232495287324659069484946814273370193807118872388432716614961038524176929483684810549724262638138050181027748511242591141946584700460426137075283146219560078758694849524260137009603486999536753887184593948617674138101181438499430684422683995095163670159031927122716030217032900320116047373981222146087698885703592865254193103868461920820619900031456218924371718344362011090724356512645050457461762400856215216549442163297397764141972105461217284048803999404844687875230894453523743440708729923945928283237954956611606269565463429455541142693574799287151070540009421753314471952283885026762596046443715256284594748565852224359834859154122237431458203858789474098573484558115901215291587109537247475688206127786162097663166317202948556634288531526056302676650934990236738007769173032113310661442434739144112170311393568810484174609497775367782025806730515583576421414919335806873587568033086850145446584357114748556554248893589865667612437221443381372976264730833309132661848922548295362040105772109323707560516181956041694565484297156039140525550025482219120067887193408038997294747431338892833871134094949492650757326576477061089015076440934901875440396450469449400066818792951252556793607482172664665617915054067693715456317289457970453650511814564635483050881006849999644029789031924908847006348041232059737283106224691767467241015158648780263097811320361538420641999877101474652424184442514736772515671177406528547131724709434104595952218970910855264864069737832062459086151586142143644483742501104301860728155158637587755031041603104414865341222895719199380058473021422476909072137179118095429363301561039437141131804873674545503263418359254931271959420432296608931711192386066558861969679111742138252196396185348530506230123909359159805006446935292860889710996320190677499544548808364790840649856410721546293984039253950245311103735980966202542461898935172324070993685279928494394083390400428802835616763384556563677247153179479913291622275043789779702886274932951144755478718402404707638678280853839153431868289482143316350757775809560923951488867694077683436774805000521196102532870339793370400229304350624793514825030388408986981819140804910510321212055205041796968203316484992422321620167677722093168991939205651467581611072033714971101486033686322183496322670341568626367438661853532378702839323371819794842564378494976512065460402619314005210844144493920389430663226350979402337491621065413308062404060395041177136440004421035056729104772581153766831382199825281774940659724643347802333878987296159700380375574437039766131768839096001329306427773677391876306214266691145312154410102650891080788313626289293863866306894236230144404324352404462827067600728449347461075549046812696267968386674786847252570966646201281221576632992131573496962064373587756511572533436330164202375768543684559012065861800531165146205076302263094366517769087107144118947722423430940857461604657902074701999998699578112894320698054347498415106565594250731401266896181356587419062847305879625578887529861159706031414398557709600115004051715979183800889868496220526893860254342082764069856723775470658673426780756673663967264389116414666589776376692554080879462815306330723512038204610426011466070351549704027415631836837241247576039689600427129519788396088308514777254272331029205591747276014585057349060251551437665412316051720438297146835460098290939358517343488772642451085805408400951349323129796332230871022196772745359162763697381841714814163818195573100704544570106239375376177499570495366420125012308724183572207293517513580965126359999194310459187160662802815518588098104931323703936109132267907236773707755798499348269924691520045854532994041420860942439529026397307523852507679640037085061867772290141513280550720062833804770863650216736823970792729661075104533208986311403708874696967022157293792349249013177993161539537878679704344116795719404454429862159054518321259689970114806037364666714461542872160896150965009827193161046106251536862539891472964246419673079161766421097869990073519369346564592241410359050295779164542944548642156582731829877832009971552743976270045724254683535993543648583743127722574194838355127246512558534810514267301388893328565682905169505298473411110977456139552416905118424397634643162773316017832017427743818879468702045158226139065992327293548599639743328336801072660480480937949908065765089947430127089927914670056206785396500977351413448729550959689610189965182236107977101227216967958162183374124724645008683555037578615923492543997105983317334249863765776334202843884192491919050609617392256540676555652815626158941235444362244651700362962983073757962166719352113717588529833649771273327260803315230158239019314167930046942327483928876234709288345933616862951638713160844995629536633911224235981077890315859256441897858787877090493430937615492869380698063730946213905880795967335661506339573464773913572459991006899766026443390999767141230410713514316789771027608307365591777731564298204351255365297081692637783595180405260302360887481738711795380256681941289635014979297519588990065131073828661451861164823937072438268640993031962220924792098778143460827400790295476479841398494617883367323344817852512828346811490683127669126886153206534080694713875211028797649258605062278406305286095417794634664524260205053024870870875264951744235203276099159933260573858727617955099526833165548132594301874616172660147371433343182472018925593669255191787336896069142349349526309435464640204152624277682855681841985191946061630199319550070352675095395910212864374554332648390637957493275030752939092668205054853274594367475335574826005280514856692784142287245397941883303463664853037382496764001233882443257446467664758886067082943896726414883505239617103273157630733129363087794186970701275139143521217655042330137703790583527135179651612818973447142788450387166947592109413288413842043063996960938277279453816232654516252452355927656064514717873686983557656484197799011664285976865733956673205302896373342175414073737367209994804358799979603043214043065593097594021272491535368064880200352143091261870215607799502117834459899349454367409269095936996604783063250223071064736824426448571190553113434454774311671794400107104811876972942433697744547144074743468977990488612891854292920670115292626643494183875893327193869756085072201166878251107275788238996363388087950788194933740956198400852485986143981261932207106408780173559185310118034995676829508714530668363044857217155330242163347127932897119444235062200367976450142677072493940137262109866342173044249623533902955343202443569327570021460500764849677143959082464454918531893456057587817307509600798246562321027704169966862427696819827413801854547749978195090991777644099734274995214118305768796845604661535319278638801088493790288452877396405772031232410079877723373827654782736313385257868798667888334390779616611814717643993958229795783553357921558750891394149461867813877609437661459753661687554824882678842566295408562322456731446740695338302010951419002595892583253028939781126968304391628513661097254021115934840236591728176142969796718921936566937393719997302317167849830292377907106763794630469913890711737764492446394285688176019072873886377212174291901286190732672279471680285382354214300887485171371747579211118149664573822918352641354324471492536192183795931752917750108069755542267969509021475497916859325456856598184021860725617178944395880535415662969366937040809390055889406397804753638666272401459975591826761927950794572480943221817716273263671169432837612374272278131621679211413487397990756818578327019597036886269749466359583267158605808328206490594693900322490524618543243553056076871082259511206745241792322841359042022565255580705546002362662085738199741508297736744817387998936012637242885473252099633139354249095440363319270142210981885554660332930213003723704204354712912267072480660815722779459253824227934198546424170019029835033043604058445071563207867738226974203273272985788545747836864218115187284207594367257952387388181718930794967530289333036581984547356779125029837723912493672513509557426187377634711548941732926509677729323066118547672118437985595444880791403802971417443851332256114765553506839635367591283851930820510601580171017675568308410252870606577206729284613226883349956343446002024236983444256661850150102470870151463875077736018028940651674996786816219279522967856184557786372851286043696332057633819275332604634466977997134516334101638208082880749039773462512708096349837855316608558164913913830544671386017356941551158445510270706041324268003079893850735727209715915907954057768888565746870018608998172025025356906652381942468471538493163878636938603814755957205441219915633667919431637678993150635389541777132468191956582676859911911760129211681288818944009502349116317128490961435980446055593761056814073402303850272825732065204912270825792015345014158822047538487237063129132776953165886886811011232794925362762202619340229820869202901460035092196510209638740426489596543767398611500618662435974853741976807766088362843764908840512891659715683453160844420471921962057933306987152164600660112643384514840231823787541839361338838555227772897041793200654267352290613737150384643364740993817812684956462638281165520980728564402017444288383661836974118763896351534548874464895478544550130152178208066028039277586087118308763324778825094327062317982215807268354859275976436964805931302143696215813605638785826884395333532205419800763990819470167916179543390133121603187998557494769583535640823256638491159713906173155331368625496098214749674754799466917123161739862994512895935516025298964389949000450670594924084410558902591495663315225542076023617911926108963762648809812487065254510759878600281597114443636014731198274177754068150231737880861034318569699601299725602372638086092727494338012109962842098644098495187223632787602004764492467149673042481205204986716971315605993017217027775437841042527063909078010810087475056212358762825303000258572965091903960076118251409531807306325060368786634157591274729452738908522831001052191072133398140822286823001325959007524753705331693284375347935764217174120403914582959896675278420067226317347608333285917456099145909151609871530112013061604649734890078184413400510541789409702974435460134491900121135328581286600981881624629522231649939282825043710979665115285057655486308373348878583045281055749126605273826660024066689311093047829700204129215246594804042276184736116457315076079518120316355813000152900781754436462033927258119118637093476135606752562710245961889728284837899920393015221573762198062983972820825538164436245438089081845369327385072471206748423734851427103508841631392054209337541134697480031921822737223664053486514576991101812943251138442764269436044090897581769009758144586228072944837606819087551574719908430745960939877269591120980432938709423166967261507910541006778719145202023837939391118449147141687192567135104288980857789306360464342819813885753769978206510235744621510158200020432509573858583175494222303560613461898328697026547504060959421918569870009900030095100838865426216296546998871731989623927804954103859662549086604827317777627305537351939321392315746363120742558131390483265590062154851884455295966463169116393664764903906102753714308007555794146486767521656484073258719758742416544219325649119589098188185679953423225491376570749790377821861810633416962580126816033456761409986515543033437225285127537059160570161631007226131553966430506603222824568744870945375239565046324646426658515341614660362104469921234256883730215854140154462471581743154419189504984795901954376870454370892764578434433095293476427122152571538912293948797350916000247861985188639788692963926743868505241958244204254141149528058818034920745393701419245139604518109165997447836183230774281467855304860368172529119026190697107482254211743979743038073848826351328466864809802723597540567346413429990408764763556329433612681193334107709566861639438173627804798776671800938468063909296070640284274147000452815784918673146235998795237488738328236497946031512712571962187833900461442266047963384360740029067263082465311962632419924087456617086608973200537019057753602625815129859879835462171369869142356286137755941781688447213379738899467100246390162460447131625887834923806061057841305961145963007074929771512597817418837043854504442368734554404328339740779422916397897707404463094528936805295095881444622098362664574418755331644779349044153094231561008445288743422828542091677558753704855246073662399054851473178143686227298134651491773976095386342023047588544712344483017997174233224520432802610422142581044908496557547390948667463716784822664105944467475331453238659118456660259206941844798186470157514078268973179925667355843604403465149808140436000089476388689824340214877068047564151194736915299410512354060190321268817789414692309077529462261419089226795710249965260011985764070913488650706434816054782507627039263618989875753362759158241878909592941057712524622612553203848886189245188927722139930585400516236807691277798228817160968361933991546034185568924478512086644502883729372486726206187806697287343378120174460493809724641461690347780645723927804492085324668447509170717395758970905071595475140759803516505257159496557310659300835503742459068307975357649180640185652100845060657808801629486818572955653936559946367258006784473101584346268856476752784473278712475128223473339976056151276260611606032662953626348141596614186153851762162915445714379387246178253203561122606083912485614888157746848048199469512143595885872594952242312980959906872580930227248572013519594091685166731198208917721804616744356856841983632284650856274142160094314072957315153897802085928143328993182668850819960703156857819419010618007238773673706523767368646790723053082706181934400574869256251639633239538594991994740529090184409632297218473743295948623194263827673223936715216140048289621944625173317353092128429215341698811031430116175149969592846977368417254773753404595689116174116761034245815906567866970369654337133342963383070857229186348833441193216872238727944549999652855598443085423309500459202126514147869165210493926909040665734603293983753694370141626538248101913753949595178300778088492791386457997168555289404616859839682456523978950129192227470112118453054679447379881861360745249672691053152219082355395529097175421432909656044776474734159042100336376062614645560479846929406937792789583120382608269250302330318451581411271028377738779574319435851499936199180631916987401250589042774772209541291401007981733590548015342828139967800028892524457103527202923334169319240509328138446217374778386826439319593330564117785125282402737777860690920343763793792138408236043725776332101478522870229679946793230011087087709219958591252444080219864920732174740376334423271942552836669030396647404941721265973779276546399427917374549502637721809595836664980866602360061789564449381338638733535726162098425449330769730866487278277077479409634123077318491975072634059690250947514065056533739015819658295511314046994026948603240704786241591244500924518492124128583167873563260552742303851432988115906809319281761304857389735515669954585472921783340785809799412610611221983809375731161921699086493708240867981405224142195119181788040250082858730388541997496954358908355956472699311782680822139391028818596323705048248897069133128061688704549007185343756051159610683865318667256396086997764291681421742800835568463790434318853032017092744620505062574630462686501658957795717751466324219365819105043137270639202656915560536864350762791725812986897835081294535849438291188995376963502919899663006293896965975776423784962556748649864798855344340852100787942609477716743854852195187376616183102462242991993185189224525496100599949380578908015566401409204662715565422336303530952911714868632956324254549982298589738323357104550634750509623708558587009466769210624331219193012558121342929440487687887683991298217919823182519527151830422110047473285491703192054587127779931065570946990632685216053814951284140679177855118952993763835107171107376032754579674089031533406549635970690362956676773487048746230305893485870822233702643115040811305456217091868183556319466934923903773914284753561775673282097536029706424671680186626862679286573326721480798226079477285353589722920119064537713035325870936988133933345350218874076415793019630657816856260656759624513655345781085540583813389116424106724804013704789581018891621024942259066167099782638892414861908680267070434430864778515350269503041931992970611840850074106770823852583627175818806769556683317803271748123263550716691598433934789041341825287895371717959280958518806575129640134353982700624924861799170449783202987309808430738078202478804504668405690705631809474291778691058815721578453271856845693034755734677383225471527531160501493860086863158398137693398421011302647936360951704442021614590609808458925652846151875582386103018451423692712837991221830106842216925436588594566399089972216639739415911694642140806311813510767958814276289507182411825712243793928246097169542296280468926001642194990351236047937217310894663676482583632728306557874483012651610301047754164211528545278393046952062261602322727120146367150290928375281760563343671955190013151909545289704195896689156648762744392022068191954291391215936610695374189874826631452684818785216289897530709668532148602738817703042057796349880366747774409368930895500313557167852138738072307515129417679443831818156564038388172258774664144682145374353399685599984192617512412341777686035669164784099998975857757589598663905796090149128763334632232496465695771231940600220844053596080463712406660882202786438953323320957826794031982831771797097460847316730802752637684150844193017101189809113597263932155539748295384005024281091033124009274486172233970890495671575527784338071959077618112392532007350201357634154768388782854149429679844883580820486773129847781317145741299551804264105371152499639055230626918275214929067258749198072121140767048479356832710946352661067311255872696971582400470802889698058597719191416505595117083908250560314521006565837740971553374190707521931139972284470938797073025646114021380475539069619550662868843223608439179406861718177015095917522278199133912223481016416017625321971384119966723753840215262980843165156899453792691275287504072732591664252517635632441352765625597129976446796839153464673346738022786051553191608774857528530680564586998013964339933435730718987914664788810313539459853284954249882918394230031501118628933346402220003319310189666989926914119694428851987055236193817877402064135931881967498037897009752384892447382516692522787983425235579795305938798993404539180679830297784907114956822080994693358656223184406141977505589089517695803260917541809904400538593499290797934935082572072284231716913647943377707085839148702528877032598995871210544923595001555706858318236358395621490371773223364608760167842596492128704496216347704455710058447493063779754025475538575825242131449555932160382324341677614364597588825581634694180840958176743498249449711789273500056334516467466164390066800044700190378040736852350023266795341754992552174492909069016602477530011266071044060180169405292581573943375984373744073100522606560480420071009494277058398749524894500497681511328807675046630258643094513945036490491498990266724633649701910474430482162585464777281289563115951554882809679906280734149277663994630554117164922686633413732006823265762942883651083930423407779815992065651427916198537430008859749130484239617211890901310477906312565618806628843116749579597690403137750911256281822770061525202794885473884898993139699747242970620558768341562245716971913772273075890837472600878442439447868037104102961511959984605209761806488172506993300081168327604577873276761156415115391408843788895493889832400640282552954881520213380982205270624035658111967880836293207661417670591824556546238718853340672936618674923076652664256160774290420081317269510710281108657759565574457138462345532876290309162209777414209252715494933007719929777020686479770757372057321967104881064569627038828326674104483243153111569005285280177350536906623093840350286202504299583721074562733257357131531369769795293038283435829345131061560927276394947880405093019025551480078747712424129998263870553731520768556507547895156459494340779282519098705220917066073184435135872023663671055031714836680820254762062546566942834445208494266044265293417383594683538378220144209964573982357198230715402132924174893036818649968389433436347533752099091956610215731406228983099228180295556042168700041437071306455812968600529733588522148876183311267843199726054701478674859473606905799536297898551913089040397458612690961188202273196622699350497493206824541816709189509789026956749028446786569693647661433490273537534926819335949118462869945232687481260358815386919380190038582998393437051763598462079783003019120114606958484621154608663622841967427817531874736579921170545796671440117023385257237235437491094597772168299634018718529516163210181517334159885120971121503983359898690057086536269168764722882963509069319322258800861527885471165815202456765681761568496357175569416122848010464611643518922369612808002134707358619495766739108820927788617211513801705490345904446649932574532865941186983822462806397401995056133837595960268174645289486746972363452707145382283455819117740817037493808284664908183855432771553216143139848291209311516934286579793091290828399415447390244083416086349119988148787727956557947338464470140936070869987007135919615317935877436607838290594577876559361784228920477151761756591625003421177773572978887279799124686771880076883630065415932458562240612608450797951994163336310343479062196610563710759109727500925301224009215504556043182871956952806543268150209982807154743612373335299757330790948121742629603666896738385010906233652505994186947266137681890454878188089422526047893038945860333178421496442268444104312947708022927245728092716825526808844351099549332062793056716729865057518583406698740034578239053266684964380757280634826460384294839336691100709001074267767259024482803703398887709482182589168021599555780074678115631215331503306710033048437277151023997946486518472006294818792668839758691155559113311398486971928715304606261401463887748967226811642277350098997899197665538974644702949172926179155997982566491869647627677517494087571351978380088953673152491444343385452639503633142413061046381715439724636492023215728988580896544929370083176890391603313911977235919337615893722738716498288739163956779180630212536980640557516724193112098435311394022859933510540001172640003053276052303317483402172476945090861879078241660926132189099935694131022583872928771319943882867320773975662816610597817401723098286358742228519724071314048032296774563528021060954830558873572669636476519271861410473713434656592081098810406745673268914606699943362780313918699130953096691487272088042987626439490388263258420480851398175324165672087945703348361519169875913849471788500120648653741720285093934014874600142766115714153574388787438879167850995425743417794040795922613150503541023225001308420860395358492223126035212188225038384089567918825427022651164414364276952219279398937767053642677729047065837078225423542387267291899815756113634276954466719468648952401574733001848660961253059242644464519637463155645453569890858343873187474454480518768304490347138110223952826607267842204848724935467113872553795019193912608773631247400758876573458066455333745162085208290099594526633045202515753120869544031708171288109108096616479989273497784679420380164515265340653131385580831760091140656049466833200600351088997073047589717003407987126577468365664216751943978981542514111761165829339917207741897754829807893602765453916895994795871606926755871681400219371859928153880569746901710639123460920654424292462802625903002797780245041985779476452535793546537939375565238501310153731118633711814188702260590536175516299514196346123013267280356613162999627933447629203827904056831405310738954157386997501987890968971656715115665963588619334588167035215220702454245014937915323958069162528866939053808707913152528077454720411791340975694406760676386101219969756763106031816257451368427787865918153226738259259656045279402217133374204067188861306623280170453661142575700871801911957001167484926896929561280924887237055877616726600827269571734931878742785610053293389456975446280001258459990652399067630524455334792673547486249897335915415157918744157511295924938358897780172781966502945665235609750021890815427741977692077154830274491532392171988978805225669153210871767324616993395982043917237812432835982089607239105334110131385642663208177555763177215697570241159655604110001298795651427027894066472262287846122083421785951257925434475544490097999060862541679875482063220880128589955180421807928961659956918723110348962679573743045408972787336024712664555504523593352622461157803838357496816416232236102610570562547419186780570537111402758954392728935644298326437804350587182120622535324897485985941485931061486134637775629552569234347591749926982747325076987424398227990132139564768500649600532832699008251754701296546202737974046957149307576983156950398976374552522160790123094377982353346894574108655533973864454939968307947591451335265023809697614586273824662841861963273464317221955327619311504344124813036522020231169152180480582779241463193290984187347911637496924916179836590876667626818644130193230077307650959993120517331520230108557464384875813145530975001472821122048195714926277336298808884835069276290071652613137747765936465353063832123019848010741171305220450771993930439401157597669709594157435829913342408598191439759622515177637476552144916083457429851813883788798551635004517993870911841099917259171746187028429526591478508917095427171924284226512126431606978200982069334234955410666117899857659097392512400777490973491236436355010427230246532959940983866291344104024436753107744135387074851039205449142710906305801194079617266678203417116249887056036247833170536085653726928150791671107811762845336547899552388808878676131766593149821634468750168063751309499917459530508667971437080594120444236905803732185026298216137133772014662806942611476439573349467507576304139271917725569357393278699273286210590388093175097630658281059003838887734266414010080953481006914631700071341748659515799309246067742297857696518351855787235926791100954142205699554436215315281240855766081012459123815504233198875774064012313321681039865961767517034117563980835728569594289669283487898337521244543539235661225769720424938861557778010959671590287984012638136678609372663402124466401165752924196722913280650809445229153403082131658809979322229073606596240614804733966290266996909360448200006621652857010603332732775117293778841103149025581466996017861411839888025273405345910047009740259145559496725465022255311012576462798634035871964534596917700083684908091099508969394940329826633677259102981550443660384119053753923458461558597985212237130299300448973441868279830954863848751383460488612861223710408492423554978628120871789681967286387388249271478318111305415571081512820724757499017314308813076940870080648740157593837315893827740861355413637561123175527078162555396743123177061452601282324540583677733851799728089975133536483071310861447361160196294879250989915390896648779422266035660244259047913592020201939974244973996900805143041376764775251980364432354641253367628123436214258939564189223494895505512032306820810735275626345772847237364985715309855785687332365451487762629228012299211283865835930293500895720167793363186937106102594472935966558107793258739318901231685245785634464662653297936500778564764529416700403548547350417708836355526238828912828221828548622582144555954675425334281894513507347799328729040865404508247096240887238125470943808650726967583352732360245171810137146096972999358882572856885539558644719456510711674311590030689727372438503433735078753939268928948876792318117420555670810935723278977726104550965457874937522688999454631356662002677036869466683937618890731829814052474241714328049976569259277120604711994267522923292504921869387033979531968336702486174530643035834413015290091671843413019534408733320044918534370789146925926404674334218521376875502325980959633402027613463142289039882422672013429152542408336159814772038380216168922615426355739975960399233079486556184997760745556452579993700391726760403106986850386051526179035834271828996617394087061542192851118753488452496486253195602005576516536417288265456069274327851951898726144557144936148195466114486817730323673561294895205326417770008735363705357070758995729614214442761541113421889462503917735775512244347907412746089703092615699923639620377498648114951332132119020101599511563357113361472355808727296791888228119654753198045338676194464183764976418018720000414968305685863715997830578293909267155194874080231577274847936767779219757606026471479605567437130929308128470199438031876343964628706993775950586283798234102862597597106593907234220645390401170218275157419992332466470153180315549402447372988173177666261968301173290779538648414875237859446120390722676491416503347955162879674816855631382096366822542589949573653585662327881402475151926998993282236248550100773048301937004518470798470394742870090009734685221340193960708852846500941213858203766056721563325728125404437698975739769889360822433336704838484927684843442389909059448647118634838037086889521951544402843623685341524914264447970460928544572601543496290024182958850463399453303921217139531441712270023265736389799117072759820153428228411632541645280528804076637811286178434503452252318848693234119505966263023431101455975193801730934735621621601873338344585645766499965040389851443033840716910791509554148454556839392434618207437362195375778522795433104401791494951216111279501377449076438580415608418498805529867836250443563295346930775980200663050206300160941647944843916752344755775270165484973690820326396734513042622829071967558842786478363800817679907845669686022527700512615062285482146415613732794837921779171585310016673933687581573447975667194598185598540052849618855448883345965224097291722807628714376248252706512781680994321672302090742435537527533561325888216821044351920055523373461187062974785715641921259709808990142550501254489516180265850862155590582474813751340795853133725951711659750545062793140700943367618371407813422435527249016858164205212364760760914202420195779494426148946566709682999453591201734153320369495958523947831563403755265002366890960489226200983180121140890884532645860818507648834270364428934700631136356556144971421413719824851056241473780197184954896625009305003830310444484932770498029730662504497059050245385155807762976210995791795982867535409609239772186720101022300245315565903529172673738216420521868591629198545106879163920525431606400482527023925921763864791077894667882500794206035087625103337780690343887822017337220834382930057071726180509281772785004858432023237917336886696311124977912692665965820071499576874161687405686222340096034851160952226072850450157095288064272186526474636271908375420853193835905495493378952165583967703080981265560246176406420101437522995281999665143692269013711691296428013121312981876641896451663978993656308890490643687994450553584131623571059335423052752545188598870793555277750839042771132687811284433570728414620143618904468848409538936945396357445146847983317229497792143342412819121376260679000114728427544345640909833514423008152815329582837766784274956503897240365645379771042365109009018699621090812253405844198036676969321559186277520504870972199287540299110423001058572080694024550614893314699954048191431073878848109396639311421046450624419090538537528713020368517560800888926107011597652373319633575189999741524189458464593841674099089141922168630304951978380441090429481489460623515384778875701577468596971889845605915226135270236314945234662347725813272313693303939833309095527083458315704189275808505415977379974278735161269255072429850858283001436294068563123255932468581119876077187439574364937451826936926433170121682397682154070942676434380140082306552849383812150321070225383951904005119601138641753952248427168765319937340972625956199353729116149983235669505336398804331366698451595237728463295846598185010802417130637429161795336385665198462244366240652848138975393993057054732434038044111931111921702377231767052919828719256545513671213722984767454905514962426447310369032813961828095408735434821601185428816897873931436268967083814934972075344478023462990605180477433063807404029006240881732375282622059942215235570589570841762913133958932276137703057910700533211059599634703124500339819586863449991816237804316827963206647892862438069830838517445153713387761774451367589160480529832464473567300098351427557341413849234650873832438865956908303482584006294267010522510603984139191930678108793280992675848994971244803183223898369743333574435584228701698725111604113345932385708053507030912125428423197266320878439961747502720942419993996581052871151030378931031648940637789935673328406441529206829888878514644097866861203146555856381305775476780477086232540611398554196956522964229046051223026907428890389100022816432068608473585702027684364536247495566731298765231404947961305879294231603829863308278667020183760481608890713266336260629901081289831756621210823449686807220983186438494092240201215181097461634415734042830678021451732947036582914574768641323021210074536619990586576024593574550962090020966764483003398974776036616797431511881223704526868919539736250281720058771049102286209941314511894117006613807548252063558416234664601629411973571825549419392301219150456006250720300732156505069417957099298715731630575990459850386772335682318592841360114707045469866866503218956420480438487858700970211427588630669596902947139898641115883244908101405402779142199390144161884554329550729679627918649011577291584440475810894432905423575845025540240445086631922993281947009949665599810257368497434632009148425217726382527561063928081168265310545149935955775491519797029352412306422631424055328511829529800763876181963355477918366327363414174705133467474444516188613248866847825806920917989345864540283982989726701299830194715910826109323563325739747374241119291603564947089316779710784813254739937671863802917133106100296913615219259699725413909790089657580347090761849641747929591593476753981482116803385823519558183851894959502457812804598671840328912267367028172337529640458313439376094233936319184854657150904698615422756672994081744794753564238482513426201676225618431216065532240523181192782132120307935658600870271464691671559944679689852535902311835334739133433683648430876689737068317461785385665306220697480829004027469674196364432407893347580082162178152938748074412073081494493331389467355550323732786012870188591910215675463718528964029102275949317802774579691030295383978902134726541844223863096263952206827341395162198363168215068882761435076223731255467202421686942332593487304273781938120262360890494414312178544990669986813149280081868554691219781600827632759836074883860705534105955356717011661746782676182893381471286095532962170803835179995837965309549929620419789445519299232137575721438319494179692225024264905139059350131940412477237629062242424839324290758113498150636781558731910752340983406880625014612386517921980371768880823744622347928851410508178127348000871035495073946209673638390917063860069247890274237657343782127303173801986994760244025776145546576095967990653047219402395081342330995755036209905852459312124428571170513414093035926240334217887497601921315393248991699427702678159205066267924403463357411595497991910714857194139685464928959563214955857170529577283482983243082610744786672661687043056507069403540053351541067934233231685513814065152435927579348343054548187594703315012384200792668516163256555124088223801984042261466206764025808446865436193724234806751856055793504354886298061442327047715717865152379769342146448675059982556285281380449513632064317236991764330196916949760172061297086148002388731548078283611787661022418739436864792198301095290694028046690619460405547700191457108070073534664815222038886512203155704358722147908242759225273619835934861432186065982408274667366097367102272770017466225001143948245520200234946749938579836345741104074850011297666045800198416732594327068297900489003031229751029094448860810529850529278947440109867021333236315628361582241111129953089210767682788736060929171535490885706575640294000717417183382603297229838532832827811580042359782096684808306653016775845074544460213752762327680447659770965401922938211449325807680334881436568278613721649930226797177757536746423033269168989962186853288087820822116122697384255820773269893056503122254666501501369350669665786998386443581065120539082802245192310731797647102844008249524551093773382499149895034427429631908705654481980497534139430243345306274846137315477779273662246393398318397330568513443114490607694168334648879191297237464163509909135749589196160140108894257424504422897456141666438423924848439814661965968358223373867643956722167540005891041216122846191504181296430532787803153842730539609627921597761078219882370227411725212027201445214187560085422627816520093843921267672771843959697568966279037525928059497324803570641957250100414167954253335582337911139956369729421140231889706888662137007115758400472030849839880140975115169293239647902579862539844801864738521742969348095948005760765696827557164566469919986450724600781970695160452077819641793215167708978930442126252468141599842830665405021143906664480496238520699783203970513780220319311312699297505359348676387086842739651148603381173080151957825329968085653685933783229473206676781314766526251882910902556301737706084827056569473964867241333686144190178781574498944932253526593746038429773729960965297416649627702223131464232742891175217963314000609966863453539671740931664348552883296960484924947730276487957043392836554606521862361450105337600158672324883816621382980925018713180539980231527523175394971919504382380930185259675604380730641483022552406027019763106756657345170365433407287456450077413110520791547004927579104977937447209693988770103806887521954985879828521482106127983683345181270609347921307559117323776196177171806546810724017583224686998064995852618571407288047445944599469461162145087616545789326924670223834183190182092094771063771968892097087026392301179314600518763279365384064245659864981023764330323119018511698462073722691344278996507905952433425537540201128764650334037257121157859738861417496185237530537887270304317348834342670707975716462184245729329851488795308560957636496949483408030319576080673894320808474044198701090672415058224465249491092966028376300318012379427378253853352511254141994618017337026278482253770736571876700026937199102435944823447509708980162975745193259250272584537749728598154922172254117421468750865640082190070010584031118179770104536607968019073728604005973181103881856206350723512426862561644596469237900250003150052496068623529297854045256474263047049418854197568594130007416939290597436513470418294204498036346718221508584435686424294729768392094873653943892496260666772681970651650570825229631005493615645692284021458940892209890937342762008768784965506679850474710985753530659571663048372749797213314506560648497620972210160779928297920226234000477449741162445788611502784658339719015973033068214663845291533217907850307342212320797024260117632802833277666745904347068937431381669799293066826969848482960198139360123980699543792322920958374727882454017053940727001348155204368334788361648198862203581306356063091237049797646577223332034710110307979826757697526467974653973030022014076836149911021713061193649562221231209722831908509924446457493655617143016681441447982663642967820466343746957434541876993077923320462378198833115995954834906130294807305010474869111904335605631625936117322694495573965377275309541617819949136412473726083373527127366223474982140864602503836765837764716984938466289153430686352745235601911780517373885354476740211544088551600450615528345461611090003070105235560178219815031243186774796473522549984944925801385687388360826597091678001619308700176203519975940576369814047503231050308583549075258222953662250623731997308888408239540124218339988590492666319137751338203268249456095439837111419986479903935337750873721015536825913733915741712265919159737183256381274738638325596674686883979184488883049418368145257735400115228331637533182127618778377480911129546144258189993599748796121546195129723612762831015539850695860157398595692412775830554037210789477643478731077173754918301806754569054547357456443139960233008779052929800334459761898761322371473498844597484626358035020336834588097676918129151400447799541131962849547179846568403453508173438644796437146377448246912292777456204828971965235174697388475466967638837997595397653397112223253449783010114267392538024649582286216136431739325566545397842288849555054790877764546476466198948411040119623527164772783759559348755034441963529996186995363754839864674139709355345573534573901598818305508688393463704330971186721279615593191430621559262622265173045044640429908485629089367522726596835072701728395938697328113030179499466578973995873715455323111941467716113273520309667497980795578173947773761549713026844447623651177202640993727290271918413784249080853550792917608717593603140178583504265993622175391498016599968821355792502304100109008854254431447031024901722329622868594344295106078202716386564016333781179699808273450118569615779988299116184439875879560523997560186587171269847097792449779631224417980193254293750289413321716383410725127494295650152674343331318431533924610362073344357749306882323492360722462355955346589338619697174536595831715133627398057949067249259635103675312608002024089875529320656171378818209627123250241853215211169782999565888177061221594972496199723871016093466445251359612276176846208822562279543243470307256526282107183768856420036009076606518231666975930862884907820950959005643350208786326785204019863535624476515146644495553031647150309292714601853721330042172756584808670042685621501632476857420061106711958398313609133713474062249222377314979441121785935102261428754989501351607808836595482606730168405753818903532797257553667145038823223868580407264193227470928883204610217478329111678490781836936031468319538068478018597548561201089466308655287692754194083688029946585910280282156877645394618652644872369388243011238157908981570177689271003785045280401102402546458985318917199489683033668889239557028654364154084144386570905108220193688949944474149747829560899783694334503074251516287191377162773265916204793526763506055553626177175837705919814075048830949907003386809750363559899412071487084627568040511896953478055322588153967731761389008278826061435245712162272605505625071092770636358119397866950261534424929197377168208490584894826859495951173054572769168335867740809554935279559867087542414466360310241629402573521630816145000872642761114905718528618787990891774874753273600105385998737203746538080976309833185890798628468421362089045876203590611808355893605459822568781609227544147779981724583985934494564858159876790879759166982350032276148102638600720700080431200444010747107404569629249614212458664557444588802147580624434255927711617491538372218928173696340444980717011758214048537816095529924315844307279664306340124937235221058990681825776397170827540722558068950638316470190373117833908970727868831459685447875820000164282820316101348838274483188956288662409317004125428415280510121433213364059639473063837092383913691684324196146463348404885865735544826670202674171242287164133558418637118805146000808494635999474171036665161110324651662043962527319148057773879071997966179463706818649512172491597452961866934977822962090202686883284139873277328263213167648742281809694906666744764461979987863082554149380493434516063572960545362921242585181223585148070717102136768473403972666633779531422655687178981784381217576658058601896307640347088002850937741369579454812523016064426707508974365125427419549540678270246546594619265024947295243871184636140861313087217052107927477319658450450490939396630829803094785981204125971968153467637370079015305601826692268993072897628890439941513874015694099117864536256423687281340801217396776046894138036999390467094311123743456259611486882333971039832063653281752158301898993089982702839618429738517070766012406813846046244401077448922682812087861270334548061063962099411407472421901748207376129208794427733955660258181931932624231458304467793469913968776013163880745076862388784195723090138508074584254685263910978857182118299217354044635292321978146948111663323289595731814575365982624476490105964792706570901645695639312973436302705185245182780775615599768140086874751478446502901647067955463820197941546386781323568440963280929920483007694175099888584138151069557297557299905726510586310979752297307212676115655325110553195488064293635934422427828561452900239575981913861514353225398453875234108742081334566673634980161171769158811710316108048712120347127099040865769270008875896539133533690625196816011841043280455421555047046849330622317790538863897795517528542373734002743288426834252031551442784691616623006517859630338533867608945799413078605675016546201098637812601433197986167519010643606836238329686787671814135400058277851352806220535099755379958893002111495948608070617962304599614027173735408845564098556062849989373269156966712596488733566594737404193566477700879178355939209677063284033544449116013945700292759891766008740052284969913464360189236708503086507595357714182338410752299502880480781444706685525576183131389575065229368557879851461500330371712063979623037604616399384714088709921159881754505184932365314732668192202775787613934114392144621703327383569523478534280349794794848746834646011748433031413420770275704220889374974136727087373911699398849895327577824253210565327579625057581249317652460519589033410666532099077797657380252788122378299666820149810149919480147523440061481094195590648948474150106444876239879303950163524212444827698008987240299650653322475079456083171277188599585406370783810373042377055047318815598681144868802093684909649129954388069220688910355963740790236657810619885856539397314267714142043048026668463191025742926247025003555806138450003576683755385707338589713455240091911200773790658705825285994959577616930509587016488422964448321385077049355006143623188559797334768026032860543301899443808094187623630506585504301068611963734413443680442901445713141830605581213914877618942640873031088647071741527226820513729892697098737172081588936416070768029095519318984703250674115639124976833810730331112668216574373412149006334804116400639134360134212688852950054785778403946009173944892148963515264825855842864304558373906573033429912938521509620846759859313893383590290436144863341022291178112759247726393527425451182434476125925393010063675138667457776922260048589734077767412506893183929929925211213769083120890226840391850976443767437887526894258052193591775745496040747905481058542118494707095569395424672466242432210045776071499800726140143933137184100263019902476840265890990818866392346012009046623119733008741953803783201261731652316659421915417948291651326515218722951537981217546373361552739981530773838238931943315534603479400654376376591574782214197481381945430549046280293625751279266902994980170778742095679335367799331557899274756420601925389369077294181240751308583944245897768527610030776399538403122062014159643607585528775568412205286259871625910537238724817918079564595767456867199135951950660937179973611084657283195883370123177550286280717139623268908967951896736174759296171579917420157933341238582094318102601074355960474721873705596036842967123421214524501982810498251147219899157880275494589082814586841139096621849177545390791963521847582712073479304412078222996945883843863696681683629639956070233547412461574777353997116671865369391718525857084100690746838184223685771283295442589819768622251099081916378391496726545351245507358138370825477441168344156510768304540310197864832802809836184583658900162612787822425758095848311505205290382673095134566691368201334933835571730755500547887111385653453840393720725564438892761779821677322093085893830526342995750205861676680033604247138502147651438680444244298079815474391369919625067478731848854247873484636423365515188217565887722293742506935226163837024417779350714511327971086273285666859779838503470743319845960933529118428493413718700690352619819679049982453659520183891620654188544248289771754729416881285217645142104859407715380074285276812853639415992736112723282981105945751115778825908835129205841947135479315834392473036629409187932741344445412259330208599279134460523743466387017489067776640124811894560550384653766738911430902965928806034541263858159875135161900574177671787426233065856451501864960690011607215752073541788645325655329189035056767862337066863109814551651410980565085466910876944647031001975359784194603372074523565012606868729811227274900223400954113369043247232611050136580258132070332337269385952602785713639866108558615507878135665806409419435865754482726277172094453029160207424583015780433299988278377244786472414873171597631540806457916851018650637098149863920970758178795377927618189710313719861173112870690369231579997043932719092379279089098106771312933346161640974460469755923973589621166807027493184397836859030354297190261356605749399114079033520889969974201624129227457756071804701855755328343521814124500558048698769429450543730794678241249549335410990291467755495446858778214303354497953696020434663728413732234334496478499612784674814358145839867903006348925300711137191370917970799280569186760025108062974675631147623258131440627684688805476221364166972696652595092846151426308337343596790900042274323657574001758000151833562031200729585883318920235344723297833520360625353943963590451659217894945008729033906251529110869536963315469957757251195481858672532643075593822239232874026523346514612825551494731546957456127613902599474276864924592335381899068031121250583905739474131172118318358894219308172797627277769707033635138673491184423201684987418760190461141952907725576468609131464057990998299465477042285338779990227481544365394295288755119748378330869276619017903531299174507991883082508937950349787294337035140009559215467141867707611416486986102854778867827388589959658716934814407514314150055118048420019593398761773608468682897673025960218213697387707233455639212803355196460822713460003679146587651028379621835722272915620492901608179330970629223561380125779912513277906708778090262661180920635091875119818384365364900588217015832069444391883088128344979573869150280330686412923098075741052381381090636921785171036851627686735455155184873900571490750232087101942366054657081454056837396105586472330320945157123033541500223636674152635543828524433186650887230219080973376935302455852805765704933564818735376250334060522930001422116288756945653869100676569927928229316641675857410520395023179449769071926552705262069026752187204030395982437700006208679902128565359502352856590512421773896015622095479687526524673199913745901650901388380645112721943766378833904911554951996413325028860660657710959326945011255464416779906048727060704150243612606182301947651744486282949653363901359590018483286833849552950099161769763928482393110368777217799334393846453091158180393745486530567286359104689412351455270781741123543559733539412843771678994869262875284975937533714590507083138165264159585663571791170941001173525747489144009190686183958493660765107447694607155980073087447943757821079865932569811844893966403924560110027157099500410194559534721304169519639034296860808187376115961753949520936285696519469509928933618763998419775658811651008936287839145305771177592880166826037669001066092592257496658494953825051711539095349993146517115444484879089955165062771253631045221805380186452709978838728420273805346039681534759650477350479487249462711083133832452288218843484364202610562554496829752370212661991770735342648043184367273053427734025038984859494451615367112693222920863178491038519428595356248546057711933755370230698782669518860083708819211088628111055731552704141575834297729238543495990774030699751129077684436242850360111929533976933612706943309009695287104707394339828903909656377892669972274244063793651815812654726782547921098342118685327149279278192541957541826874062732914036498921626391032958957539713940479501923675590179774049518678446682493936997234717341863414441179773698977250791653719248288613144763641548289981119078117727940965091656859321137821226132756143293008864182376466913433999304639897399222861555916700806922363840913467109304306427061987413004434766431657954759941014081005643835701577290069055617524208981273098519793418040242356826993263701825891747930462049751263075259531967487848305628414205863334220564219075741104111025930682223729548404053848404045104805464635278103849579642860820258538688282162658250372087093624497722858789927951706387709446930468977386645640331311913365271197709200156190614810362701674433653786497863751730898547287161995376632997583114139137909958674958055734480767832655581801842939544850074409863088304784780125394571883904510252572102673729435178188322332842239814097005367066184112623842069419525280948315222782691069161080227197848850676240662189678724366520636391967248068235095384638866075424494241064932927048484214355794491854720728574262809711136352782079637028718611448622886035807381535862721609096469729520631442420332343417634032501524615257567214893932260664380723613000393874803583999970947207066270377392524364519624029643949363515783506782039804817226697832354729572424544281554568885760910980037826370060996248527733991572696734579076706913236754938164400568065005667966788421182741511086633018069230767760316120643527180876335065334961434236741380263835970442165163075600743652520101741645767155773861781157219962718467510103435545535637991242134515030612911154522142169702368622744737548591813437490143009707896566235002540995382545956846777842575981250199354605206847185547422883229957286097017222354174456470840701504852270216541390188013989857006866665402465093669719613859502435576387346653899720904034256924213581696695155323291001994357083008802209184474869526066746594438160829000880452397707190637250695188191461824264917385569142845457463416960790362052785905180914290329601947003132322203853763865833224164481986778845182916861826754996727895487203355109606386527882878857895360692578035378327256613835720106520697499429464134294441227514672993361730006312281198562467784444423129542366271446512715300441374606439699509495660190907962156890543120020025151420608923943619906778053374912198088264426515860652998754307784392703234552335375880299316186216510856140061880404330823157986286783173403038408614073939247218824867885873136819853718736639001071399240358493491289873034813217505737011185310231002561225704458561219423141824766926250137535747083196459984352595131876637528982685730896800883156747136191176864889709205078664671498865693678167088831384401178966442968542674309643456713116629378610887028367869874242111034800630622586858330794252854853498118726681918539852925057559189854705069608527138567382049669171588294778387819761787154306169416151409270085678987519952771285185941097985190426459813693113426679084028249095953407395103220140126426338747558706131009003621714706037198034544093015439947501604947929912194028048206954538221825407191733682498407682286592453137435817226923353397795639388330344735308967016571289420369070517345372799215093707699079909819731662801510636190875707024153762945954302146810126715713039538155397760176516142503519343080977636197181100054461485404571095184831829936194713351389204361322771373335390284496464679992705401340500609760894988425706926303583729239186919912448728732285253947387760683275580788464257382523575309428178084554116253613525778950969410568326880140184188615000852421012997632448632231758635225775770807262293952894946207120632782893276116993323268606020404108222127980327426069498792872229936396643561650601051892009756966277877848530266056149993356092871209347889884039439592369702996989158196517620620109965632509816571628189847129665137542506433041723979615577981365623923961382156832280052262421203090178089628850315514450455771950063951176728692118103451961784953576385688973094967037182041851619130710444949740287402091327543772212075585682710739912401144022188384432420739339751040915635677375690503380840723819880577216330596062842982520638822917329652487136254090493366672288743750238890615003066660370107283871962293205249742258518391739091022685688904029954895347743070099824906460815461816489972536423823812689189638136479777989836747196615808846350691503104111746221206421482661167208612881563513022494086132971738144409626059723356097242675302044791466650068641823887300642160893184052008067016654847870318586901108547798925067330358260717869508739285497536740075340359542235947678396060135602361204447858458369916484984934838597230312626824659056878350169747244413789445407869225037502076719971430781476550135571299184897094083091631489765545502590405530276574527234762835401317875234875424491606535142284258562514938405955125617715096189249300621909842938710433809504193347103329873551309759421249926165763445530541592037440287586249254848403647277962167958455856714067618166372776005844189051462750332613009448354757677895231135595139828508453576923336225089872427357550271171023122516651911264574765341548032049600302337711187117088996228843448375665016456168984736725100112169366708466790944992448873558703005209170146059697344549234035969846142065229702811788652373711341010957220722062323167691098072690210592486747384924066502951565054284355763189048043324519317243165829012419427304297242800821977301971871262470988633157182524888844566001980062599633880288823846734221612298123603853932653850038175923120455504172145914135091370029669721531387196399563657453743096924542793229175685089024050896709233702968439326818771053465094800159311589532378962160293758777224471069500599014275053555184327262129902794965715074014471191048531471150769255125987439406492745553291503013172321150694560046289200965460824250397597083021780937662671709426675154365559688529963633514403796743846233645416242425552010713644283375257486951493431761114448705716699632246901460879414248190538265589384945540138855202002111329593667807368268344309111535086474112201062768407886808273503599390789078679292896834263946659244254173443531719521700738211236273922879954132875027501222581317687773227334178000260917100488344071532469995736696979837546746091705635464727924887759105840133313706993284418551191273132986658924351320196882347102451150804163635870188553238996809483881039015421317090561859368727900710779549028139737005718000711218669064955775583487113589814844369696422902168777745345264176405452515214715610413630107461456124767563839383487159695639981415248067036652072900486758615569832451040596742276878516858249087149480502345897381261675078321058983578759442577816486765386831253995019532354454940263388978017297619627986009439126004343311358235049142337675560624242262464312131569895421572473801264018290409374833048458966318385495056481271297711568116801453159628413962330975729465777036617379556633861589368559868261883160306920210147079637791048213191875463453000064256906788420525812161195719277680630773999351279465328001738621207176802246742977829576977418245188432755877854594432443974577105033139828723758351475730400956231839683617662057314990587715501614342976213512093391568758002071551358818434535714741609609784322306197237676268788133506672869282937371355646654876437024995886994397873629162997740669075992741061025643483253142267142110254929937189643877944941024000253877130945377256323556511327267759511114716167071156094453062550086061892138874546521436431683019754065481362393111775860388235571820088942458268571213721683277036026243656957594891016423249556837108679967538005783503798773449670787743448721100015579325606954268136515419391316453832161533907540743622022073936515944362158507194667520701023727262418004123817960557823429480055046215096073244980785639360921842328977049277875181559979985563364744559101254488069309539708574286323872864502282085357360386225920500475340782236289579813926189563829901689949521001999417946162196690837289649648176431703508001320284255342009363388708625846457380122268890053511622189969315410195608776786817406339585019628121173573180967738272188640006359507201232236256719348124748673371035264933953900150404322028193300963166508059276956374997619047233023539810810495314554661664588149667580000135073982796880602121630309606309073437513056835543559565535377075067242388573508121583528699321274369779135653028329502546309665227409720497437001822057235158856486035256757787048604865719939744932454227054825195513919455623717449034571056713655872753197878435816509682504254557713177345129926402398584032167120423721191828031386188728536726845484573812889054852737325299803804411551222817986450800681810201669727222752968365162257210500577234503518356391684175854038113304340338818241061867477865994866604685215265492261000101754450682405720311812050880689271804135629770226449783312728904270906346116435148390093813365789521367864348771418365055339947191775167347482632068589192803055829520556704083428284907689178769217797762661897186970648904984641466274601392952932563873314424351937579324225150569089317648907640001150039203701852422555080481675661481475635225688226124307559741002212652450150510258149493672011548118168378438275032808619751426369390996963474722194489335106889557622322140256823118133355656671913784156566208996620447429212043735187733700152144020142152116826744185352127523643037492528884992881628113371503838739602606948375049969925396018090154332144840228710164216059570766525473174335976195866106390640616805782479065949559366598836361464280035066790674356625740332701914406883317936244248332736701353999239944885756616772215944234471828951079884144229585380911750983248959369518327928962743229032127459727323614146457743264816826143785919720495279178084288388712327741885407764025524690625038578229417385092562941139017821151287871248314528538320800791076578640844399094697551999755027134170965382116534083625538135712271181637187013850264286003091784424135969346741744618504048596201700558960933610601316755765278766420306455578591647213619126925698953560225666519046668042853802937899378916262228963449538662954248435919138487506231038258905287154956798063095291851644063716301426945068730142165507478598530265379718717358846992231621758032474404714679759340620775698670888655791350556931180861905168242112443513552824520205637539312371081091119536751244248423595229277569729966500678748570996422674476020069130535133072402303576830804105970580685881533251797290334649239456064560061442327673510619881410134498785790351032615393364016683567432256774620796206347135508546982336209539380380328737833592290838090877699581469040156505616232490840672432079233904419742268586049634919194023328382207736094091701799165309958598203961258432546403991652881272201721120564728165358472015289120848977291204768969133486305341966603301581129182464091119016202394147796015565044955314829880839256177217180592496693048955031571217056604998553953653872902319725061752891065611000680442849125149362436850952299900226552079492066588191866702753955736078442132379344591554520035035248090419604615686663127345269715485509833996803919906761557164783702461657592849588067468451310658689825225303682367630006114082961511378132550254499338697131329964685046743657543690744234770281256709561068709335301291896499859565975784521469374871974969269841867638803462416882413054317190761687933819858239431416138644291883118764966209490963591805402892620700386462016783997137238151065628016623326379068765607507149087928093208622564911371301530522595878075399646010175420740286249036253621599298190214658342004610232173158673428494911833735154892666648026516430460724898487974682765034357581695543925518514394417062494434732795757730874775134648217704265369175211901887012473168713882497391592891904946024897030221638338096493915779783419662697477430237961647111166199451593628770401626810671832228014927410860614630898248342812941291165631140691167645134030289720180582465983866813603512242234302074814135650738713202678860578448772751703443587383213773732082765580632357657103854207723940660718693093613732034375085436343833698134393444970698625755502009860066063347074394787337846286941106931285929002324449429759812675609784513300477134188270306568928763148114879672906191485490774286003505833999886733887721608203872885339306342867565028295681439663066578625170967678113048806987648094814452154420836093678192325121426065705674653465537778195284981649097726634305148831899346098723344718071459578789658303349987452789202804044219086800208051041064271430223045481347713511577159599501240167201858810647324807240791013302104247545465088302125261963116445171250374945233983466719082706940465115761366189527903081951967574727589066784877625431327987541780265620679626117976029737599100865487598276218607653544022803150691743592252221208567480116649259403922160517715147209641127415516658462191152912022780154579892247039619476391497284726413153175807841783009886681407774925924012235440744470052940989324942585227348336482449916593781143583831850753347458421430614854592852579541537294895716819238802659887691556402171460829902515543544929161550472103440384717104217666705226905481773481267020084684385472847143605194254496578824594597555593687159301199312412004783411991816476236927860052559658366937357089672262292480649038048033576372560932768248979650813861962300455623239086057700056866129173422872003930036110219923198140678679464418051051311833030162854247061747187801788623689867982315958808490891247696800709794786124194057688291511402450134135510174927440165292501027343579288795621917420730969982418021096557777112971095709950498891442388644047954872865288234713957436136087236899748479889995598776772146824513083609494507869338410676569147140892550303614478806380688675673210946139029205245867044742186222787089887064482235938432138434932747941961326776369728120653114380091669598033603399288118865406129591280750950384577549408667251040153971764847722218199702485918848562825632514385700303911907183849635457923063107752515920691110643956068617847370258230093015616697418799284320154370831799490726896369714780235161039148206243994313942662917094413634464696805210133706753855099214325909635282138858074627441990389087437305457325810000074827803668369247183367588648427463658754371565288202625334968061740722003504382900027389631712231094150012903435195216415518046180704069877005748931905222668040265343826325950891529972904354632609632500131230863906835859359369522893074314635805405345233288501482440942850665804078520805386565867198098518321491415818785671797858702984844080850092765453460170848713684304716909654575574912648077620147645017201654403359150007649097007662568411439726348294024950251353613240374520722084184119850772337286735792385044669518653986536723092695818982079226255625469721348078118829578358315832858677321724246301739876469759766243286448301824793856034919679124399038666548240296972382174698033073977310808089865931811310104939734584415075107471123466243526262456580740120312673830743553924692089240966288045026589265481693773220240221014334763358969707312381062140149869440597191146611505863160742722524149486093043178985348516734853952219048294310154880809488123981696545702852161439013948935511864748715062691011616651777710736526825916152423404619739806733240023978686102966211358756702752315644322256103933754241059213744942403664871919216961158075605030588098844164366789075073968924966004683907933584258389958266711823163010532230346008438371555531389423502031244025411448867998034343256101624569503488408464980175594400080236016059578299627265840304474903213732695730697638446429756401205534247122001748350028799402064355202713168580522970393750920212530367722534040117897597385581903091539277298068872520675608881788675143267649897338247575427753974070311991869098743050222518672267592020049469342090107532997888624151819834026784936064472086319693920273040636661966554484229444125059108309806186634343365060194920796037992751812368776206599247309262193671183029194548049776070686830084434912483480457408613197507075780193232950337032536489409009859073272970821457354179594601813876851909053519955023753918108888130954201782658950794212652928641283698886459593160082917296038367845488204849769973670974962658317754273897871436655583604161938653594195331728752142378224961278234546301322827689122057073884615501627742781524187729763872813992280948766577777433563602806164229481983857287868468786047082711627722985741509347784946356189552229271493151841143908302275470116708410608899689102224641952876043206299255502362045890656868419461350304917237424711838511291930647596147592941255730276790436670254149418067465246014348982996108810370022687564262184618532090718572831302392733342305906883607037427214050083772636570742295471097346656706703353922052824906184050990315348628706531203837864287053125048498545931868875627591161679117972505746742849468998446782605997978221717134295337106245795037351122903566098352006609892055530583009399974454248149634671511259349452103344090205697532327269074874973390878269091191858600613081928490886176270730638714369666595547431010660059115017196627786366985962274693337999028953975415067191797146834155862250458897684065402118064256784276842681143998292308287684896737500684471000856652891282754228670354099852945512694012109121914391681654030280734033887559285083135121598233766581518736307921511499181044390674603325405491652622008584263172369974772719089730950919432192150868831683429100875887133702910806983980137764699609728089145949589870686517027965502919976069596459834541520682137327472872577698517292147446120934884461050239862398982920807177262402573695393585198395879048649369715842253235406708690308003404472076713998740244991599058858550411213721814702935927013484542863713127108381954578499994866963488862568842818348625720772851668693750228503699991876218999678618163578105900442204813727079133325664548723508796465545528015412070688269412861386636821801504718821225068869465039539854168111647077876086357310017839640549121003559688298020344963053928992351356644847429414795699011641078748846594687919491889492676642765727671638767239262797513635063097189666818847204654064805203269070807560937007242102899204439139386948007110181888413180433966049740320690866694241408646908759956105449487921962182129639285878300799578007233804340061620677234879706120513280969366275153367244958308805363219193764371047969848107080058489335776347282866373774472199364038989770650367304178187332147398869202155931907688710767143870789650301668573134253525449685513835272790114239103368077164985626339339222549190587768573815864167438141048666204005774713653026638496247227111261451234971332826235904811279935144985697850821125833121728307323847817650236398501463694750300114144236704624660387395712889437742743284476961110492655916742935051850987178605426118122105066669676384470387788616117249852743764212604814379338440215689545389571846134780166360148339475437195602617397636109772024444747596764814246957123437237896700247869320082765043445135793160670787178131702442776329854943008595698972665235340241950883869419717679566432194637318785184185760491116881276931943305437956976894501909862245519772418147880716767914345050393298297408400342961475872153171683324220826264286857016842713557862287404704088159193408028183139977993467576264602119360915561472695932588011250112607031780742960789054311588777556277949915873384841770090274737266779932813081479460909781286541788758099381797780358439144099310732096347786113351568111565752830846730717753629505801688422713918427247267910055551682737579930720739366023612435947269720163977553642667687814240242913634877470637451944173460340039775512386170837655921636162940539737738557130785616529030312864887444938638202397744350494222678558163252252591789073672966382195315841618327296877134755363536031015420434631962833120198951733453356201625553956995216639929318576067782159791296181504783736350589841539197674431186656859117381125002570915389226022054593453254478215725507980814033734264327469631884315833155676075051259795454006758813510396560620435780140746390268833883376966863488313989876212331138541027635421565632779334072503492851692109494942976017130633977972444646898898163381511318506893459377860012876336413128264371877291021652141304404915247805353698544493980700617149308663966835572928126061589478397486535496445820404981905093123433186452684810905259296617662744172120848607016442531039908773247456969187499571780366410310408446064659854947333502302011935766575294328658539377774578585935089858740200024857600715354864463328337327084963990717871303266989257373964498283414142730958697349634279755924651596621722515032647157608271608515063321785303579057480118170163304526008684385345829292145392924229733154012073646194335068505766601743890881668468060270697570786438367630949053510005513506899021717319053712540366920871293559679307248198494088189830099440811606073199940641337382742028133953160429013017529796122044535119573994290689315584468303838871805017878454196721360117966552357666155054046722248519408169490650700691091705036855545999550521834140662078277563214887603065761800562033740682530956589623830782226944891800422360414974038908513675366317441103931389600623741644166674559989790583240150942486064802984354430089949089333410060193431458280858464960932791070894362479994401251903785870214176974873956620492420555437228920262828360371594564473704619607140682606991297557130281106446527352770323716704391008027126543083996771660325098150106311606346766828411854646792432799176413920908298313227271792308287099385035088193383645634194472369071931412711122385653153916894926839677241569160515375774507481043255270948943544810351002133605390184924719132346609502009662002034968763103964940134274268220055611022787978544793650422618313380751468456787095391645703697840619689988933243595179029572294639503810963468741196767818787903131496493433425179495763256299749946106100692418622501616074543558833367255292809169501429109096725684992719033216643594324324231379788110207538407334517983299291750185231134749329769782473379665769459339979165914886043260966265339347805890687707738934848020346101977217371634623919489163322727440629387821782014772892935870540867653997127637113691416164777931873460126554404890109268709890539705986490680422185774787892677204444353507139010771391911409436073117324251232551675869597039935890686126332615894007376969942563978040267705812142892384177999397370602388960766481111221806793276623402171843316617724287665694921901361097637025178419719868377100212002414341669071906985609665552847777004362246004159385063442761016475719612259467305680923998043584144741806014717945717643564631544024390571984172981350315816951285351591982145619789556117822358383985246404028430247661505687479431047312930394593699421752914591564803988067746184199069705064597936196291442473326242643490537135730362067768233919289676621638285237729435553231034176743513822046492599526396334729843519384195485420541276963540938514514754336043055536473383009188324474723936173052317310590556107227403962993494680906407332050992419618483794712870853910540480442219354600475264394525196954026726849831953678289964680555792609400199375945824218041588571630323765889983705473150758069007295872604597216442601661370871198158994550963155546429647482165115242591621142920564876911042392436181146997884994551590581142140490350845372610943924162290182773933468447566601658724510635499451039675945487328721024608783113322428240828096637549431107953273330797312243423232347873112003484090882110944785452718459052415848684532928767947179644563568888465648697069327872700183272355277279765099182692696742954832324536577551685878298142362799047978762255907084760494772436708075230314963677127734088361309300785179890700687966336894821584509346227753346363164398738522106983828663073067776569708270636803266755469629413458147586701947108648698381832136386439434651045766115435418310639090518160711382754206898876936879993776757428994878188019335775441890775259109601267524845846932840578586068714429605251877848533816333330557002263966821043143092505741347380271329885174080410926779220741900166463751339320644936908309299359594686269071820255504084254918083938694366535742515512954721733595027710386529914719213328321991915367105623730516004351744534375273350493013944541020332622859560321853731836406060791227390268093355347251805295053055718886363972984407823748550711914057252386020576128568558386258630111930933366033362551661306119087561196567463080599689669250046808124736704284232854755287080362106675131975491563523629321790459600297216459976944596183881133907133525765879950499311911887542933338094514077240482955067255006772483059502422357511627057227981707396274511983797600456067562171138075136964657108159483831940671089746347482087315957595334459817000148573507301274797706295889038669589147190848398387438484309345578146468884340474749136173828305619867517975844194988348046044394712941846073775059320202560788837357023302318044207119911200991562460911848933121269328177985978453009230043049174288626905906357460173654722100860987336952775801147959044158555410059497617056921287741355172321748973352144279711605660209922032255248402352869783834849848290132371838921697482024808284567623940367622320276017032125848766819700019624738125153320906991469735892527105599617180126316899511503892617102481292251785906765428857420575789493393743243733999243058512937172833056104674141395577071914011944895337625519422297605012928163208416579883638488252195139359034408307352452469606932962542995752738433620331922274453755895296672325828563803852667112141979300945107537222134680684887032830540704920874473283363225292666261202620882822907896881998689441121665922323206225628362902297053774679718381458155896089012007349915822481119298424231112843977011121140491505633291440636994309323386858263071993112220339680701121725801608967813189327173257669694968173031409899874595625117679179020944127015530743225531411596817505542528594381922044358894728470777890714627820180757959295287526953388184559643199423707688749182267745663732959623073842939459438302262426706947899307260658305508758934799260582192666697016116943395037585106209701998054369380231229146840195440433551305589731626422090031498886614528182125047386618681429356240919741987049492585433781257985181449765600686940548803910862190618851363583803163252203459575701962821469042788567100211335699742009496610354892063968746281236556364706487486796608259645433261578541799477269465338803468966764922291955697712710669637241262437854423383685636238319661832898066215316486022349755066183039816414250882253602133520497022265282500743296423214500939142444240691460748309985539067748400395360184286043975085284943774451017426349626342071788961839706142900271607544015984120043463529255155364285977591766536013169715631449015782396123811904384080594311921274461556285345406277567773235869433306690186898665741050847234975563310509761245566664672430655113225739650317264068156244176229302719870609526568070020438822956970613192459298823244105578875089342427242917841901635383007032135987403305812981023787546049764438798403717104247784350841774869821114945645864378243761484687624916787415481123956474498857726335600667111153047672281251289947962500844984349763249644090433360987831261335406934489603305122457624422043288469859312745144920924109715213513804272840958626488634989948464112186166833263571505549619455982869485369706745048808844651690757534447409140681166854446693979200675158498342143292886109735011600280057439591342873092530318429872874350090076566803494936974838638513638612383039011370668492177724292729185536998287415219665740357717677242875347940497853793834104381371029406757906762199006415077024992114040764225480327210246382912765546218954132926439023244795042588236339574712121050703237250015746013027651488181915971493262218399922261872843983820298077863050173155128416879076602053580657110568505696903799861318976392688947628939855034143026257405767480172381276318861138831748991251746604749461454209402730144600229952699382272922381153478676831148725365795317790902936530798078053264524957297276728379645382681312901234792567080181127546216366435690026855620603411940491004239470780398283469299870041224905823705337097240704628192146188050680601185390390717654868103408980477961066312818995245598725274541338977661178428265078138403247041777239813918764942907870635028231773807441755293010545384873236223816884681292509585527049542906797845438490775383892896016713986979838533893384108734572394958940852688560713973750448295800355046742458892227863548909889850385966560348181876664986008933273351309594030148409366765418195967245886664165656119483093811066342939817380695118323389527432309023234246332424520230905367975632766184325576920667518547241748499849653160656239547914978776640155237958007961005721887749086933103278336941139541265182804170327814179941358355042979715203189209850099299815979083524466795202151675647637654881301197369313855126905107560718857307704103931883045769666899822341338105698984806176644252308326884002197005762396456734252949195325932039627372223752448602798060140647834045319697177719616019948102531280477681138394450526027575713900366362115994839677645331243480784718745459634607313913147802755491682285987849444738706962089633552186688825736346019906382869774827277925846763767924295140714975272637900521875001646613724611759958898222190304148545879648688032817577801281870535498137766126750858604546698943854611410003768227964123461164941511529270630262080954733447403327995942656465057245559868812227888894663161427857738301538979179069847765663386950102370311353643504860195206919191310273055494238714410020780327978156454237428359261581554849182646693831489368116407568229683155135531285788715216541237198973724579591058229998995259983555524737425526362548176175931594960986871472107412968747745121200819457353868719463214752559283050469463984497746160605492933973821653464177278819523957169127593816886964640159935526308180247180447620432767082314253193119646979470988464182447136516346109243381028312094458135575199295986748084095804921881389594104441140185075922127936706503696049012533901696439324919476763846785136771578396062033922179872717498289748035994385339503412675395652957784255358767978881916719348954840270351536910568843629597625869163845704136574074052403612768088348165200718047340167996443000372019904975175171412686942798515492627790494063331954388377420636171435839525398077982083216596740776202022690853707829438440462855803798844324487354305691996125380951407068100481130635518409505024570338601287131450930026145493357643890309001283814959336364222668834677010329389240850557195187964574949705107142780064985679288709408726532645116446944453039974650633996137448235652337037992031060269608714539754091293221753756507836847901300110698702771670005307029032688388288402225731889886622704276542955486299461636614714322854517563417896939104972335999056778203505359417303800330450702051510326938308700215937129352877258473367275781278020397538578862996865024298449604529280108014612628005628275203137461629824470838754179676762996925973892167422900831548284468442707875667934126713687127846122321520975765004010629136020190427290196735001100152399308567300512986913235408242548300259328945829801078561840540968868817473074963911541520180766208910625263077623650752436021439800694684357142241831293843780364889298293877540172926667096410735997767930791677725087305994845095189446342304387857319380044444821957906318282645901084639197643283339396615186562312450949912283360049277110539500927647574951254071259919020526320697052441157854088428686462645510722681060445201900354221621267735892458911094618336538787796735543375914259826993853959983309222873631965651108443169393833876815559561741727205944469792947510357424518750248352883064758095579668749565575411965860577847773321894985273530237092212746443456707909296384497690369413843328936933954128882364285559289663970286607566959061008899176317574845904432916625942716925940010036868371587823386647411812205210288720086769185080261380952477651204659952157602204249379276300199595717299278691831864710491191135774598423951250743241237002551704022460643208307926117059279544608901997312494150703954222857253723922149607561025818720750829167606105503373272723513584553229559417956623033688373938612245736693049274925259227846635671270415936530879593072347761648050113046951655389993875847511008555746047981821476732450418865432987714700160332305016950937894719080219794374406066412635589694243198797020538204375510968519810396578131295330483806709486001251367306370692489443273759011815294320634388359152648472777346140116290856506147457802350875370541313695452057744684651638748421012166617220918141435912925706758149951563100746132055136476596360800013677052022238859532005750507813877875791506983985894261296446278325947423203247019314796461957705535764159444954161605240590598023671045462214296753910138207893974020078826401038800535515022317854746521067904396049471255137349881907247205423478220600456814023588973235223673537772686397003320117736843958069599373038301366408416048202872878497095325707518576206933798826463070758059706518016996191004320794640461703384918089718354470613901639447136134500738187709865326936478203747724242476649291986946675652331039974328926273707654893259461790375411987975713427399397375249421199019367516750884778811716572131760552797204429265770898462193374290607569306418277151951137525933321782690956912066715126372820452144792307929693362113974246729100762089517310346367460539048014778301357154715994338201650657371342233558335683648803685687090742477249567779152173740595982916878794491517151517920325945145328383106512587914701298537594326189467079605782390505069965692823122058820152681618747703834446350305091153657500789323954005970807829126100757849666217756797585882401540990755844424584012102349964730355604979002521448828469218063243903054008676567810261957756527228304791182825543041475246035484685457077871859571344741813331608595676577399979478055233529771648451127877945910052286189651302885978409210777549214792422365966339462208286735599787343898671463747159988992540818244864221858330141482167221907928236636914034859419464753051904627018282773804981931940111533071377412617225583378949218245812195924178491771034458785800878768416794618604337505875373243818927464926871967043480794393753717069071221238534810682681897765064269914602822084323597879561488606304696199786582650664167871830784145032786419599588528981811246359936391704250031587294500995676981610917149123875921145711928696369686628049279355062901950873898698672129251130060082283474612821535462444938725191398121333000336559160010291196567157264833338889540364585774118018950459697915090759757877007363533287956122216319033037526774168946402782001187126685411861263668461116311410691609069747886461828338768632922144062895595074609087636767348535530654162235629198606716429268940453455443763563038973797624617044399542676891322270464384340426427637221554891219308668747860628330154543553874249733623269247228515136517983200751057671538825873349244776933328222624464550364949651657538339773284695612900194991906024549607588732935772334528412753426745549859617264314690005062444286193122043740443799670289029771089973561321280716436686851730266555955138318932862567948261312717308861857265466140236778853214933203399193033351351542843320488632597317397645517999618003040510307255280019365213901988188171812602051730522852056971488176840791672242996830167817726593085542117537139702499418772590179300190124636073336880420470184281406966336885042062626431465491743251441491960816670214544020455346526860434204627103318517896040266830169629338705020798408830543569659655311362747809726662325765073781600510255101403817157007741839552106241191895922605598682780468350436257419141722412909317779464599786823422631707867360810470036356855381781251159795373596326101052106398825119633821109474912504718684798267316047103321851110070805246399216046660708596694095574664742990049886785787551505715309439504025531413288754288926642826405106760030522546757502076162351459313788340239933382970296662873271511493311154937335169111072468356307266339026703529799395580130669980073171964720181228210342384161580721331151672703161811923474503198405621957473579908831921522504810977723992920167803631423639456118172992005832412962517651607371833667741373565136870473139888224328277991929018917886635973085790355658725664890659844112215982533572758082984939543586076599228818090655293976559794203086029143439961793213020349950351611961340900971026036663665277528828970510792043342526314217618078878581910110523990140031332332091050073872083601100742853007176325543670153601198311817025272201974498275338884391740344118631629328790902822242203373199089760935019355758978614048489122619481291105593287479972289009895581647780836269070239840082973993183586883719651714785414723262005716547346866630617715581617448102116153467117323123748496036788598578884657911568266715044357623130687323171126840865543185004162990431355274937508629398493554621887122269755727984561828591349838114379156463337051483633939146435688122766028721296620036861996257488727304218991273447082926860472449998980045200969015453099220379186195845475247524512984242877923126543136676675065807022119552539221382070636278512383542428085553505619049728994611754160812750898050771363062053498643956424215799194731014254762955165921422227480139594907014800040177236148875186862778675059355771070047286766230667199476497496007335848868030531525350425485430169254889534065135635455014313690734501987772835971735240723401541590808332128877364758842016990101167683639381976898446774247246721917853234337807797464261019220353705224497228939462301678880231244721433361685572752258053785770402176862679141617155338669237123418019757811918946597858256144276465284299045562927468113247598293264446911070704051886499572713088516064986992035651886957975756491121654066953704199186067997482086582851764067071165236935793445085437519044542179387487974810523420325810630288943224777820494217071176337857499299821850267292258260962058603760677904189867400047312826432211840896815140306342377952861508678134819185163805102237585072840712731736634268228986196000275598448273866191502233655965934049885406926965313407766462190671187651378974442279834153085291872001000111707869903135721973581629289543423720126320215322141168770515695680418935016021939060232098161612907864806436697844457691127867333911648154368142893699693542557696491968881687408750974739771706748923150149228232175136718354416008240309815225981480457478462657095167345473853436527523096509577932873185959416959833610665210528576235088814593895173616164307854493900348975977759115071816348023955307506753646778908530651686967294145633320499140829003779513584377443307630364875081963213969526438406937330254126613087136056334320552104417447722883157601323162036590946958077396754485815106999536485312263276920169759077769212248118310642968119798888985620030452855925863661636638170922282116303878498004303374496829530919467713003173390424881927208563870878188229600086502256711605366490663459046884801761634866756833671801324554203454955139813282067980647763934089617509952956650406421625334555415521125470844198934800268814377018694190209979807115934268197427480067407736555662886794777285679085052336484438068603948923277906382618104862158547596973983168803686584478715553807374377604826018029193577209258740942441955306761392727424339850186260927782283147321117126591946096455565826368198117465641790724337537238459268071854018739282815928716728872451300419271873423251208642596469513221654871033178057439597158852944845382472959652556694444146492443138774989213439133816371594419950316265097403833065241076432987655040814737795235134768076647506569682388903682765482461570885078815429029508025193324466222870709983768691394260430326967030942251321944465526472000878914812369411046689274176940384843488512053598687538980737256556348204868521668518973343061682464046401602540558320165628999584656277691707885621975141766528963440140263196362443742312128731619652115602973315368249559836446379415530530641191356713693835512839439834826530144320800058071873320504507050770982278234197099930115595972125430145222230925522070877532613236810785430437121919320903897338141654197726987648950446120358120691041993549720574161721342444006034317470248120406204098961095151418565146794225999246737533327095957238273780800305238247665510162914061970297448765281323679923830210419760037955489894778558641239165489896943008765915871010391719465594735656774527504219570610012312123076279419899691949412094677971828397018400105851625240674989011707022998576267294343296723101045117778215053087087329849850068793367915079824881905930830949306387388664199732506621449813878776949916735529353159728089370285781079612410014881614639526324966224014858656471266518463631895526234001478145567913231407425648993834903982037026272900927202172140107314077890587115211661179253044457487351529601459659031019655804333110587176920050502641803233063791861080746199780530177554172231939609492466004781418582218735327612794114887640242985326084703412979131295866740995119028730518709646986468196046595894213410618863127775277709672984681899103916632848740878194577470481349980419974822876095301366594162203225750310610194838642376417768989429236706390345458996868389251740652888976875462096352381944552604822441075624529819816334150043222840009813588648192279479664155282686447495777259961325430243537302746210211467363713342110557602872956494439426397854542114221483505363073084305037705195691609435195351156372626545022826064733096570320472137332640860257676154202846603866798352793566304878212072392335346254770759243173289119823770803696640138209396535955094887496821304069522751954550444452990594128989563432888377787858721121186928197470121726284197142059479173686951727179569913099770358289867451724418308956058452731615650954633988819963793512280259857301657613348277335685599728144092944887498605663860509680468482856194968474513453449976806873119817156715968402952135217049497882552008991458689746385744644765165268900224874247413845103130199699640615566796907446295956921418791281755327472054225177430290174171069770275148915917209753860335209313770877795325594739312002118180388953945420662035053069122612774828842824857683386442437749924827013404949965421262057948186128068442838170819643836610492159299275738196067189793723794821241702499277059868927504827143768004538261469259996394675363827822633337688574209326217196832513344102388954756971329708651678030926864135665505627308431501677278766101706666499675121142751837487456216954366230773149620987086560165054661320994763900588574460953128255097097328373457470585771511871596648801843992548145379594554160671477227572229433855577258973359662955914460226868868283429354819183211240543016015114404880544547479728887961855059291544302060990393821517658621301514981836869552326920759605823346885280518244051581849496095665193448018164795378594381320021010978293284623568736999887475210353228931575780432227041513063458945728152286478001355265470482061630126425779871261470713991070204221460178810951010799352302949146336315689413254311694976538522042592289726143217168842349625267990590564116965925761015842967974891302429289355211536147891981555439635136988631121201807349264662838799643641023641344927669116764497899134800075512148576902171677913895777129955033961178335293827035229770840368207400668469325732621166829072199278002669333095625992249560440532141380102194463803726312806749558925688679970136951916177466872171431278403330813868309264518709070570485612739186597684449541897481786363774641233583704444262324421931902427722405085816221943825626204908500804342309762996618443333752708053481201213073333499011557762017819056287769661241058947907496257887236326339737787193112312979094794976685669811685693463016879843075913490060688905010444391364997271500234628365468538319838752829935182634326273206039459367458527050419590908586549151699888104583015735059011624169809130916255716296516626704572113712209729800974445048214486888794608426076670307132282974857301113606271495104267706877945634252129254082813008263422733063873762859538823094549485140797898266704333372132971386838257182466775150831629389634603900111362280655182961208825583495871808305119211179755702293672265190787401649266987371364555143882153495595380090442029144758544029745606711343066824284950145813652253150911879767212056473476360790341960503660665533913384316226865486249599989592406555435003810816741033606528993919726397104086628296866234032840230572830182276710256699935873285613146133370897124174218116623000219146599616440092992297734737333198627713075258351894336325772815208483690779557655117064809895504556449721738948604741687445848919211878974710847382885486109738168425615915639669489772494942500721928577272410723059388563291045062638230487508904829783042209157141164546069615499518189140127525149230222464943840903077160066581651405484796858120399292556464586525937478580118286072524865242661096514901972991548812897659925596404757268509691065665268783228170131187004865884092320575536778135362191346650943004515698657522477207962326967593940109294943425478365312889242074279964709660561480654607885361365234633095200772188197510890480142135093706980205069428635453559034665073194663186963636893677206805238750513879635359041697583649862176437338777339149359824583873846014685615490579445006293889164028698671786954970553982027549848721691496392331566886133081664010931853182754898820886395503433322392422765220066745318749922567891319547166018519886250395210104669652544735687237551081405260985781031525448893301164555039190140929449361674228425410316728043748591916915428645780358654294516543899371855255265595732233014830625176588629955804211522509326820910938618835559191103508479769255117981754113783982447611470975317693901700618811747394438058430266698480216285446825935941538972550998566093276123964070866185960450596158733829802069134189801600526511252981042172261600576775341350067082934730380558229235001585327711089883168161863413267837692806996727045574835056055500571198131916782095469956530284809473150364676210488719798675350646446019662791580027645329366484729871467282038896099364527794931304983145000052494561288947463195595485630108218819033019100455672079290661956205208052871003266126325189721161440502753569397614884958354092391258616343484565025758461201406838055921327768477558995519194107891208373302480430588460306786786731529187943841890721912114767961489716509916227283516510456805979219710394225952960095255064493887542122851964985639963724461707166228033764177889236244110145044017203883780281754376125448948692160425046228690224279325036266719319076400671469137114569415117288518941254362355079490987976719372592576871512206695180823180872343753851986448570033684340531264315465212163279597455095146372400688233704433939867179167941615450017092158514959105703127130679436382555612712045693971959185425952919219174114139904883048927891542419411617372821868186355540812896232574178501129150072736948228903191130495389189685225592942187365637343412072145398318040868483485637207848657341194626451779450068394191876426132109177480065590877161760281756898302862432295037292553316960238524188258399512544919604537405313334260848796770281874750133720982323857440912253210659469395483320468032145195378272534952457154279926115336819274085583686362382957714069857572544981852492551865182806594492079792377759225366979337985620391475214074565970602341078719207453728117637934730528340740163211849280538515226421784470521345775325286128196448376500592681056944542292248183116115478766649922265570803028456011116099440895958172852041932042595235481727532253577214029281835385955105428170621298725964211499720260872019454950719007577446008123095351477350893873538517114538694665076760665528865809553326887466925115161470827408364243711942063826739468364962273266036365646049646777238374197142198242831169661752984571855274263156594349391837497294849511086878080769056190945520902065384191903332558284958083014220005835641753325766280913885186822495487495643716604371151344709575619286606532971804206361156793182492601955586423079483845400003670665103675891697160384899257193701998518790104083865291844346393228928725398879288869598673379691193065417789964680034264616224629178742515103461819616682863466047098570081314008020356885379082659118454852537565564796315914995620661094255728942601658629316373415574716976015352403969285105087391122062768548827471651279443072066380535666980379376776453621559549882557794703183740724379240125901282203704035562809721998605580648550942209321169902150696576947779927388864208462087831949790592798947373046101597352428176319076249434896954266880606707950391997632307648791468933894906503667115205591140358253998307231087839553896171423162880814742594473415860069197714290598955808301184544882123845499258074707873275514438453097558013251131168237902360766938657607430223741569188075341959638351402999199626467523707659329620947996763346408408173193301546703939305259409020198676554024670481088869573361334246466807961095658825717341033186442695226739073564271221577967886221981834120324095976273824807829738970907880067893816091474383443194372981729504714902188597000228428294074340273316978233003739589963095691490449977856150811628898114454354087022046675097017739138594297619604432765064275534081734224191873003480624164427816019585656474725244719368544103076969564182162655516240211937430010288589012332851308950531011102808659536036003566947111225595628202034112493708590462244568847885466157934451023664922934711504698639173464945253140540497115269563915637620518026884739455997379289678928213019752811102195116125309289627366256525641737691243314954719126371716319135311769367343092389076684135601863890064183869945428246794912490380479662064043613702535526812618335081173919800862405603871499899381029432186178331648887175191229814487944089761196834357018772203972750699728812130616955807431039809764038213418537803553054798972365379815426091051663661000732811938360901459597459774544490370083817472152098848624959731022132632538723274016163658953971258369838263305935350202372321226253597057276535012734337596318792906525636292599135261312386725050132848877293798725846520683141411787732928426251579676040289101556209712808974670562205319743985364388983683218875750956394414777196542870625731934925722354463370692059410707362128182559055590611525434015983447887645922185983703904153882374579822830376904696635716382384627880121795750675112640981741854943236746093937260293261571707434819997119417294174529637817527029860197081784531550502671374903249061767046504089640622073571313897242728873570156187785617364382497253650108623721373360259983555851405783170536547578448109245663621063197393329173465084281472782727755259385602795375609827740520900728085057291539393217381913312822536030443432894042255697851887333160475516101464119308487700658461553435513588262073049453551337563206063235259866266503079108235624744187201244907230012611034073571726437028322138943084643481330760940176542223431218893007135968039145869536550663563789918145674134723857717694857778860249610031847528502672151718390713217280682466028474911684890581325795165408769158141231847332161228170384947641606760152909522327828505896777775432896240133524704498941514459102761289746289189270054824179462943649058406774568672859158807813584801315328405728041660775187370570976190517943436141807798016861226539540978187464777992942656121955015575628378230386547055000051880197216979252976540034285498697635979997946324243656900041399853031927474609487073639305560243444623704097282183118844835009232288183832551836444489334407305642805073125024016297577672308140130866594814348600193193579404476332624621902276844369924397412731218111042344888887333937843984572168469499652967590749334275958488558578323925493895813141914026665420640637996304840037004593719577286725278254935560628428567426770639322759335233563545410417581000324439723744453211020498407805780711962381604862532980760294387129014322589239551655602280770276797543319920368630347745489029601672773034749186181990491842549695101138783063381008220919650876925170180790022511004590369144392148729298227481060497662957984650372086715595021266965613231602584844886314227805840251366508552544922332453856715546403898421697818829138329812096989702684772130511180903668583130634453119921258375593003178869472432608144081405717764743540541238141058271400728272754614895443659143684110281887325321967088951937723697334226207902111746001530153390339914411909569773714449206611433804961624491352629932402221591571261217181208677924537601185640586699669893767567276336460728077684705740560189538965040861589485336323862255584522810789200567254365962439313852158080105669854354277126035853708410085725445819223209678850853613539430095045448844792809560001876157304323726691286449041797403115770246519360108275707681807233785812150591627777720815758428340609118728092799660395753374963541656293180065500812950597332173117232729026106928713050937399867835739145079212246172541403670897544432394932802787447142013023736012481263105864014227099419137470854103025865528421883674114786798860392740602074098472546389860044375727355784966732041049010813401391700226271573781746221395095794184122624689582882590524858705199996829373517370383910909595653914148465640214577757943502214839865431523849172128185827373755671309537303430681617470366200543169258834153484902269359030584948871707980049868848532220923494190145552919418794799824385065529247546968690465026954670446438107961458775970078565746907428031163906241389351088348980195232637541028496189549953171678717477522008373206683728253134723728201348423573668734982032735679763174460750484055439493047682358920376223190191356662929883445446336475939955786918323481065226400775684327865811627313926986467057333799772155244867295077537699032724182438772254252801627695756057048121616791977072088242098924735666855850501440586795947108192118883577860524639481780019076438994782832496263660486487160463036893892844932221221134406980992663309030708340313510312693045207109532810843640744068800235277221149452187912193041194774663616627072607220079473322344309164345831861103512800219306128828727837367254819591926425445446472316728291723457941769660410551315501325860527388549529045252364456589362591422709063148151063857502408067033599168589160775468718997870930454792654762200148818658459473865033075199930180467522849518431536002935615960525812804130266221055665656349170469751249855447035171200475736462435896761667671024922334429662400634088052286502063755333425897013889500477124896000225725613445999920990167662033243543334133936423803484397383294814236673329704773045645531136733857233017668418167042050390856703466774526711653136222598635814284503977595285857072445671750536272568371027208273086580466560564156207819235920780325292077651242723779293909626896309260110695230799140227581163521720006867480648110515169351127913779292913298983106425826671787766619972067976909630114877430971060289680113643616134919415413406656209621027084130369119299266989382993494390281344412092980654438908541109383708157860770971033939020771328482037042915449491005015957401988671707495937636236684685203056909538199605249653280090071437889361194052415627856528934306790935098083835631184123240477688870232986300519926833157259542023536679008839808005149145981777668938564734222624822968030596214818076018506438933309238839087781870782974484492865628318612938759414594431417853130342387489003811021592219795250359413089004838719699040904258282729355585143644012403896120064536209762639003423675002927748047598406211287205355921227082890135809437192618574532316958609242322538409630014075551143184064608590220773024528185306490836668761716527037889910455339973165891768386422684094056379473341731567952661136071808353372982780804300093908131671154530718172878573462947261543066648516477278841924701786314976430839581203448270565026524752235839856922070194837561911302054971413901354325972632579032308034863964383407485425370763683052339103829075083346802454068154449653052773239018807239147955802136253121488532386404048367878319123081285278046780500941334484164474040341896350050917856886489035422911009246603020696274190641642983004347140514057703459073700551396078914581888845425426444652427819155158801239959351576266759631292880996242939841511438219342355651343820123690860742216047830318261356956327907421090687464178497438293243070503622049977289555508714914355010130500437846318623707990472641861861989358555104162808229707674974312796050809487602824805256125559542157965231141857557031124356283649561730697165824456071452131954276599203910197286673643344971910456382594125364028561503596341757266695521281185493214506072568668771277171427446176240255642618855802803083245151850784149373019566725490383648747832059274044403783393451524204933291582906529333403408573541593828797095565699065786138194031922267053190265405403311505198396643018610317902340277342979316216277042180634362456373853734128197529243170857080276404640481745392281048691695829927330084305999922076295867268800835110191186929640116477513537782503312372806926942167610118512481093377026380006909479858524475588706630828158685145305313411107662613034990710695918137609839054397434947926263645458357542597764914782922680371121695279605392409955433192341509120777731634612259249285875148239138479590089983274452116601835918449632627207345364334157038189405201918257578444215996020375257119787882359134126093319887152062700969059335556695973740326043243371693735210213932960309341221499403308073010071686315200472543064425746293713945169271977733837289411380917451953415058520406108018585017034796313613433546824221844108446802480390936840684587129114092249634136896238644491385635542178014260425191786928509258132751959413467021681144781793939761323393570300988849131385214310812170837439833002765116521113927161116956238081312566165840119736709117780878169106258600691866971955202922249420198337891242177748347769293772689768122513341192729110367034430439540840028236116780045710827004349865220023583795609919285521907231048705998581454701956814901185612609326211617530404450856913292416055003927030286172056921499531101005369161690515176995418374836229261489119825754936648404280001396840315484368664937736462834067718571985774020765431192214457693651357787319143812257781626797662155046786364691880407672790745490821837358732418858215443128075249350283901099819602112252049876239135061068398433365366204659108946304547717024988422386226712083969851816585516811517064315317471728902622642344897574707943385734490701532760568498079852012278612799245287857347876358364826613285265631499403824317855095130127435472135865961599127525555572526846080642876561219075804917168212897447341357689205623535520016077857091227958275572104758127013499435439905588535728919396570453321512996340387728739085378308287036592913199683409395870960457224781590796867513658847460068893936900757453796933253921765822361942544883383354290162185143502526409805958819150098787892648353700078056175676728835950190095580669579955374642965204005711809406806306878611911221577610321267670741314489975542442236017842999887414814986959337325512698759196389961454461019720536809065959850226906741554385334356797296085001696338727431022602419547826898874789211377272119067699673970221159239552653191468036147862927915402710498422381766552446400837339199703567871569517919893507472499813552948481956397229132563063624269164144991776777551463057856189597676573595574520602932288023714188219890881299039680948611993419464483518393728981080232096252295604914862333985164352094886599448187416566993760905551393746729185085963466707608204665885093098329303536836198906770118034122761589520876538492752297995764662411428657001485434126846588489344375361593232860634008213702678584408702514446634224372186454534452517843669432987540583762573333540552655462085806760483798888415678818913031677267396328927516861768353046314210112374302822216285468368207069748752793616793487462370798453496326935141459530244431769411761578684017855259977199412620755996559099734957311857164675916566724075089389347534940489704551355859572824463497296663236848999165248651478852844434987363563125773391250476612219800419311604539796859724026469224018364097486856229149015743514643483455686248318090848655882184194112496936975840507983418756998561195894994381948324057969142199825253426062692617310671467247907193144209942551256647203462621344846483695040453734648660190867254453801910419456066447952114735746794927859651554506154493469804849281240490093958820209487415977837997378938496487031149339779574865525085207057463755005507299736853109411044697738073354857110013301094838762095785102237862011281973351931383605143973582437952786703461720935488429666725564687868408430554883150807478978356012889262734622001909611147580680669318121472999365983715588873998401102274570864516235489248235945594996543214305752729070742927983300782473345887649118329569480334471549037475553858594891175360321622956478719492042196250029223411713975265499346861726450071123428216476205650573178227701736748875908103832738289809155488922657811263093380034824728397393423733487736982446411417634658403113558746716890233567303986052780993630578604452581388119304971620768821899865513948824439155082493149541650391163104642508137166974480074647658827933408449069939874859538099466957175615411930479047325720984344390895762296963511729317788334493339305335743107012834170521440747493764862358518820571645887753908611960329289133823386352057421470409011835577167803566847649638113220204017507327846607238334851987304167490988136079929895537563595908059365268416272976293170994491985680440050545615021505741731080633589928854016478791791825539935373733887660200895168240090260402582893279304538788807161264736720521196761215291321978776220670735580032430757545096008984214376856924403792549917359165722511134408866956424807517694909913495429019508265208437148934188141205186253868188918454556786680053165116121366316381111863303980684060728355798086048926457243522602525053022150410373459677033134184816852092366352394956451859755047202944548548113882761236152827998449919013433066832750883224693797945866454871361878010276047250273887120969950245013985949588297215185810239823013791805700885117148318747337759443821701882936550924588659358932009009421700158770537566963699545876305340874125380587128415236393633981550307899046817212628362703345908905797958689596444265400477741522430787503177405041378586031123799099929537864282567790603422301372430556027886958917194464459463921273993619682055942833333513592410638757293213825012815108984735236483690196096636513004996710052419121106425901976789217432704796782055834141748647876674967241346516602367091686198591224893452195256179511467468394449194550258334882963498228533717818293925341945356185822167005647930037838251756758734607423584617448202589111619130830859886280776039937557926565335541957724328134977637603318212987956796695973101753232482845762144603931033029981111102475586417667403380418370203152092654343966647674458827417208941675760210814353798487810419529042293288598085781683062149750265744060573042320516059454874694285439198062174587554384986802079589210120640587835815522437290084574467262598268533199530572345854621094110437004102554273543276126515836398567883713302869753632644446555142956337143505363260619168270051836979507031650576698951996548869676405047967477292341846118625669063832730067181062263843124128459581512894788750969377711975387274582472545165901150802051981536554565476909979468633503297383152359715886829953429501591445506783671595328398578429416650798134363550950963450039831902809808736330314825082398615354075446464648841171480010995339601535082260841931496913400794250992347264480573365315472305273556168967698309511252447493278507958609198821659010429464951130928633601211753661072017792309179379592012818102891325343027071962347548521106886106097230692446419317463149876439468682131485286920413421945360063122859454382253248216091533231503552921088955868911675695869887634265889638376066482625257687658600257250603985981077444418012279685654549367336423142529589416471801354595738913637097327774393604220574625881067511810099965073012068161365753350482864286178648904253518630759070135456154906453737749935688505383096717301795739588164944406629072640713453385940480482448244746600400161167515192797403173986596590856922874547581858382393948333859542287825928643725842471866784039718236481045304265003353794285042613721891344912182606429262895632160548656403076426935127444747165016870682901141463598594210015794774976982483630400589509929810464427096820167712722431070572737398409243275666571449330296755611577296716617217823966222546965705889887732198445266184720421931189594418189583892366122419068131694287310726483727531818877936568293615203075374164973276448558640842538578228304881627052635143313032428560550111649150204891793180075807996903675758698642417374589692584391446684546172054263463454750212387068225612224320911528726644469801928473439484459573861481082977440677611617909649919666915090088609190157835835372489624827057596656930585587111494223589432180427094082635070604254113293693626962963373165430996195238839383450821223152332166065768932908598205765973184281461202367640410604522527720492163919967315287855330970301615272709641137170928002885616319645975731567922739543601853590700929672498835368766314542027008161845463592719261457765127559346290863099740633810935838874929449450950335446949635254688443781202207782100324186323732826809294303420812145781198146532085911728745334891192043583247776445283463921423153912221485239631714668507061148361563626664616463665761831914488233832955104957679963272910559571915154977973370188685612521269276007911585587886360536962757896260594697417442610390314961237357584005623202107966469806387420289762942588757496153564242536777460013273443830581628052735721710867630991186638057289887012773813540749700325302189582117450471503602076016855691106956846642747734187436263845707964802410537017720414050873281488145275621143072991034233835303409995055523388683620964936656307372166538906053079534149561081906177439870181723542109177747968532460087773342643757481097514348797464931497924580444314987818496941678503107791145497933345444545155221564613790529531747543674118337177092170560186520657862542965165868303136925332350983113921075316406731336550686110613373727238173495180058504646986367302738635674138168906291973128150102553632589860622103939558053963376787190483881728468548048510874699960386372126756515473539353000351262610040599843943487643119064862146158061471753762614754250423476440797255502906180563076068707547672897047793959817345258862679658128233594565601262852857207245573697473691335238354648783780340565204619050768689458977151366374259732191066458744409867321280975122490933552058252686886058975665571407600028757671017470382792750379845930198439499673546887288184666379489651759676800104919932326891733823594347542258971340167120535101005808223634890348877031580666643739610651095457115596937916939753897292431460432903193456623651147601819666007430304669128661137343128485671117790744457171503148897607005426809520068859500434380646647303345808066377427652987917708645442254346647080046833893642850101631286092476232981147288908270363756176761125199667485443960969354015589727848158903317666569112289663002187626822487526922020822776309305020867894138837930540435624770739921151901519867845914439182775461375117710970226532179115068510119162359601973568266937832616437888186044025889781969509858191931627676544372232035045245567501329583140410208818921599389280687551157338853470377748983919978253659432285007507525626803011589961538374430985641150924762491036941973681342827752954157222847038892583247474118648046730747190059148153165688319527745566655760491055257055031531472156735253518853637990672614199543369325683143464733054060678454406068899761546143593299838807421324153827384331607244152859543414421783391063482476352794308658869819445876270476534062082796836302509645249813010476096265533785117848869035857700091910805580974954885748857400478328134844897457871678544011144959401506837796996744606435267581103301990278711662233824552378043617608345219486251161802022845145868882950743356703744677014174265788455809207043645847928897843987164804127153910253909552097842818049105899513256187630697227030229870062577335620113338994120092378759266420002404479272592921189432238837375882279607999600175142135131179169738677317157715691683865785779503018768875751209126998079213148821252071347676467351002582194417454766705435695528292272705324064732442412936771371911554494302647351400546282859895944937545638030287552027820867222592156536334063454425931864484008723939309767888410801394640818963900934935921122598664154088550126092768950400152740924546172704772055198481717412787902935245833959562766257221508057221337957935831252099273086562173151348149690219964300130728911186521708700265776675081845875224845414590220431806988763412456750676746481940675135910938959835609650345436371702528449544865807194760962283684767581439058645792660653849311715653680883917066399437966568831382889990747089714747483558454060678572387928653664991595574440784084262325952645739852953485399486328436732560290905264059256782395703713513765644384103098493814257868116127823929048080679202943176438327317101401715156972709003454072798320765183169110718011138404467783388714829007203573830191037037684031983183685540451125882963273489097274094378851946219090172467721922836187680051129081107347882978111781089335250549644794071286036975440665486669998187728286113736562855051279708150766822044766466839508553454569145151803958213425215150178427651835716187298544490387968900462468198828691770594876568601757213442441374157519317450556185447681293089805334677475357046191344441516300296273894568211725392290807110558293397776022074799968904085888755572185826643814448473695475108380344963914651570466868114208868187525525259484549251176808114223743039230259365743888620037516462278385778629057795371824441513272848733751959935337503647134599470343251749836765360536353302191009071825631269291449744314509393602461708598986417438849650064053691916830085134722799523833143964012337236257036595485222968108573678722710860239542138618022815919485276028728280726120835815978408603131755709627946999350844538240436163568899310938167344427789367223035509710762548780763162540184794909073002123515402441199808802347713047216093319388137811466544074124346929617086835640553550459433585937285811591504521672222486472309568476406513656431951732880742969298231649056055963396119377365119268596025166557993254046259081388735454495165184605869158358847483937253774271417374966055547364249360107925228024952454910024632080851182985260543107796346790716181816413245875479203086010793938167149489991182441581435907452190364730589104351833124436475887994776343351273899564998190080866006355710647480826014624984070205540664004515446358830929071956861515020081312161554921230725657569535565182517714440446135665194709332573221547951099805638074754332186114723951902054919051793762037954790398948711195009406021010499649707105659950229569129958095524928742401790492375092001657377820450149459701835336253282757267629437228907181493831722687026504295139770488596913665209943914408310046270033591699374535767425637869680062650729111237056631291041985682521390611376438493542742690648912628163635209766090190349120498428798715695438821323041252574546035936822576563831189265438513195848071387895578566021500153116158872752291383471953238779432154080585081397055075453460290687117618677633326096364900288025778475107384957228916773239478950881869917906729652071099769828061881355443074377654674605696947577406056264398832691497247463085800520095011096415428796749047964771350722952748293261462103338369002199224311586539012482071416661515182280263019515950596087732421720690817174649384160508422820791165575821048269073622061546266317215528925112501656337253911888912504913877015823395062412185475931106323924743027283817345799472988167311477124055398746171106705457010591227999006652519020381618237268856498806592132835612643159631761171447053465356598658700009578742572539404098204469547363535475479649539029710388436248068301492005364427741018066615926907378406165933126433305424086500044772546878957570791122143530824541698499138146726930785863695712498519973963302992533383092557799363450704052908868470495661581528485686237908876831980615917644926848341319573287044929150729400655368402114039919345559880937466062892946838684391212580721155226583610016829737094774187423686631667294188649697421246614099433517697665777664733849869106898992313754223144843190463420972417601963041858167660006542841202567618875010222112207081174681281745440579260076580906913205057690567362004383906957822869569142223758408632235193674988617809163397512465665011611601338282040049085363545081584118820894422023610426743739113311426088298779260192668691964989443838359858526515786867000170744627209463864456249553127625582392295808994500548730871416665539603903075736984185638206521122477047840952209882201056590656283083906969579464878825802496356267869514507393591767814102130822635863337623111214880393947245331685373703827910713509211442375042645244267620885830126428366306886626327946390727731541582598611950393927494211012979920392854125387220480061994922547224246411189795106409450779955526090310307476774985897772521371379879557954428803717173895184952148475447499646435980893760343171150377959861080085122903425986758062400362562920964750772157170725535870372006671120600356665957882404362661443068591942068206076639055979863388918437125326169657029215749997809547440547805767339437585901379123984679037634868700748249819504951589595988657903220586227450034231153324783956558369259375470003379975082382848206215304793280797352212611161106657951262346487048636827312084254060748089620952508282266403503312144603839829722839520801388976941965011426027260191236534095467100734421368702161516253512357346230620846604953446534149425683915294580044346273008854592302544390778583679750085424445244157161183661551464936440457083974873680371979162260322287638186447794469520786704278344103243587371533827971060776823448823657209870246831674886504020983060494250048184451078263547737300727376364903648389229201880201557733803742936561048398259025503164091437975308010268729999368363124628653210776539335355540649821999338196057338765100865423488828850538662472318598541850387653704014899124824961797288190918825449386721277664916848259014093680759057711007518748666090067316707404218567926166045062652584221112956215571752128794325994498264696127738666586642408037073478872636406699568890504906049114198834453082152461479905819794326949845140274464678733267526662732645881842971188902604754376661428423940037317622757947452567116368951540021642232804896942841154457125158585613784437620552900385844446284995728633470754102081226592698697106103502393006687614239475190581106171369989848337877653038903471681441373097123305895981762253610689091231091905620878997062137637410497682120554010283247243930285230815280136366455536364701788155419400508931687914479336894948855096618769508622925481812260517697160931740425601995251452630359225573600789749503646802276527152661295815481984617468896024046398249342280826558351706200847529369065661431575800820902293616796417069839916643107227895532743954694470982726773747717763916264791780584581541225304656682644175485470482699877062724867441568366663332082232420062093825900921438819479457387159141702301697146255707094982125409303169834223197289793264535966794472791676199799785912935476823034196043093474502499288979757314614289503593868201736892973736558219701281455666279231195618602603559510545280301733357225378680048974342097428358807375607186763539858567189008520447765827392606999345444269837692235597319268918557590883827898390058530518923541197475615930306661467611075908516991576387051459484275285904893557454253015555529770213615529435163901993813557793698662261224709901389296873512665947802673100504814198683529529687383051559302883195070251469073173260632982605539249555875371830411649376595358114771032834570710198011529123823749543530918521678870298976348157872804779863580187980229780639157898626252750070672436003862234972439040061201545438457398359240173975001761788260926803234337753526895212809924365049966647059074895197534254203269526204910413969207427726882873542587538912390355459557204819073307322768921002829321562836681343269890133759267874783887855455201028344976418325576661249935599177923625042290660696125570851210312210191475020808659321879295322987055777733632891665799073813588021708115912363636040489839081757273133102106021957843164436620899233992061525037159236794479733370606823443151872040000621293704582104746638042857068450694880568324486542668870110893396597338772750321181568670085822436361927475286905182104248741833387697796948239608439751915145644922814356066590613043551662648081586133310034118653952226017412221028171439665218541657578109750013582275589654878399694532809812984154688099873241659354025254250405657114899559085156920247861208264323942623081770745760074795178502432488728235713238716853973153382455663103250828546180693281288024570482509326196030892520879049285632204500055989073551285129656772996465457973436196665735377345655966754581652803405351520878149148026170207565600164680297708603383732101525530969836077447688948140160345525599448094658027587566970982305664475601257631311927290189050784091743619529483211081344980039532317522943476445657364598853520076415927860953839119808423688429332819634441994571739980524070951679192023763652466656087182554908380770444801684999550141005837462329792798514681747987212704694115886076247677949498244468794009913005076948634262330829883309089231229323648759558221955080544285941483426627353331642611751236944109011418631237073637687211996564439836007531628989443060251136333574464299464818533219916555304823195348161273812932553802272419915543204680054268671919231128276485849570526227569310844638821617046197042442354116091698606311738978552190629689912160887384152729463729963302109588384691853980454099363169182541478050056010707461232075286252545515773606774482668659579143114374885014521024659801582789062868156184130219692283944321104271871429397087746347035449937300965432974246920640422662437553045671940972474755389926149765427648518019287518425130549376798185392062247452120172223079515457570269554384446959749970880336308924008469867937798249079186211484104975836797882615935021611577291103979496804996553563170868061696291435180359060582925936375514342495932182794491607365879586678208829584773882992754390537619149264628619859383164873121432490335488696365395632679947861194446212886039579761327579282339342808367850199243607448401967824585208428943849023911765722114134618645589777770107890736591455871515937592971498808787330284473559393954018744876869425604103032328132224863941371428247980539841848900110717667677538685306475418852299435353147884322244314422689647932918358890367586984793895724847083340438482800482587028358988046080882130611195470665323961622698777204816810036998588487938580649968267024223937813410730235869090763009389311509987165339667579692220802557922559499474859032318759919019529512426624019835782507812656643380766519687298355075306161780298486400868981080327709200319099943765443280828464683043723850830443017798347067078282799185834930819856807504882525935678830666923701096928623524415902957364361396942507330434500907724569964676447516403198488705469637846002449570112658388173270966934241072014984031472767025711743891133627622396423964377738030189358092775589664715640239556263702567736847771536723906168719458230822510467676546705727921740752324343855911403950873838473824127394161122258599072131653918362466648958117455697462984476218011726685463263924656264327217052124968826706704156838577507472586533140662863732371238296473208329037341807677866900732226876933482707613504456900540782554235878009348687367015112056741945998594577959560472431864198320845516297127224713003582720733008930716494851758724709668937775197251666245877619150916120998515884470853379559904452278532588949967617097989785706414675748447110419437869638889033156981731787308105461345909325465549027701471205876001213492787567204128345811793939071613367115473482878693861355477203075408125621854936246004587090653088204158010076146834997351916255342541390576996926294705914687843108991493515005129875728753426710113815494107183488524596029852186135749677037729304182051827787203930526854657333281405610228427275181584102368001130512717630145678915522210092564357071244730767519665607030564246564332367555501615868088896990650838422204180205003646662377848283627782988899498185824047426874017995344798684282571483948555699476367714138238908582521087134208041812786083936137298122502051342011068594427022736266302461200649804977279267989891694874251652538784669514945321091492705215523787502470183713097418926615728645968925423789073517154523222076048216686629869690517701254301539180442232309586384146193771668958768844798123868500184817099541438317863913219463127206328658202486613564907898168471164054266545924373538943577336998446511298882214301570613374919496636859652426800049273957983899363439809915309049865656305343857865014152051415743222303721435921951239761770121834170190584588179438890343253379754102384501124347821653933563675445806864935996666627371029522793354971082330314475459155285877892828758271912278592058659971187513586361133161480091390624821668440120906784997095724108403015416425115886737874163284939302590024190563473295609100911662149130756763975499458047367535524602475223984282655460971174321811021807016637560315089158184691875054514266769239236684327078733670794919191856078587613127971648223215276359272906902083407073356217957697441752674992299783086797859080171511145946708145182984384658948981450171886502249253951575701459910815819012746584571561420165754155144484345106716527861711892076403325101784400790946104377526904976904069289434603530242694305093951283384463844548928985741004854711406770351043411114998126595361250419243690160331460637780147256634566532405700282737166165473112892183024763103810172663111915397174005831306575042112018221033508551839815121644208745231083659740814113516316488231070559989517391642431108110378629071071811928031289780064575015811600070458673981248094678451330600672966157041779830890830408287833360547493867664876666893027285083470576601758257304429775700765905909193014070237777315984488666570737839924182314215591273147355025230496186864221739026084086017258056345462724883603772522091320341940363944465115137869370081181016020429287466178245431065533109294356759765311913915652434937647837066555946469062528442134322218082244804438491078166327962044757430218247194598828868669585302499368656823817917676710286326369131608269798590447154861383520577232088744038006024082147695477864663626868623087074585941927641499158225502260731794422962386321861161474900754917810040684455628718965819558583192299453876412133579022610546151929189995349776223460304280799540653135706811920991830822512115161887180251278325488900044561061159364199051060792434457709122949103988832286859946224573466079823502190406521351967461692053643778789269058270720040429112331196894873216767797862578925028494504743045332249505228058785985815846548486033577597998335260953751056875098410067662918588228745060514532034273766698551899483063016372678297347996920032515116836260606765178269032647511653125464184958484316517037255696455932789990445450921728789925145374460239716414989800608713703515157158185277742359630651707238967478282831193663977662983587584629591780064313254362636686532292700249035260482960231873072433233151514490244934091168342502260761227257355078461895874080057435984421285704217102638153103775474121691009532466602064720049560187660048385433771512635879996531803841775006557430766999562854906729140069732551553601928993773492675215392707502806027650632871080107328315043274422906025970298542725929997416144555101463335521253332336326686063594559419345697513133530018098383080398586435010804795645386651760506413453568974325853538944921419804482843743685233146992863150744823126579769599675663507433209572373519337094588682585450353843528961332322983574713772570131697731314373090286650574209553892793862118769033126387960527308718470894708416284336186477555023321257024735805020170406639316634424204780120852710167199533292684332705915652024241924957138358557752117073026901323325802342188505006286408908310526026687110879045899719150881270157338736858875398255475455281257316347552987856919373601035523767547749495055650031353961084685272283986209661006208505447674189330586691025195051895510568856654939588412306147667180785313791212408374571547607035157093811347912676898351584957201991734577580552082716868773594226627683723010027165419034055164729365927122108825566299583935463027999945210742778254708770639104796894974480883029449127576351924344786790757927155907004955672478886126231590857623353734481648402485611151854426728249519076272657321245715465597035501511922816257680185618826340909309170311024015424152247142122189813240594739800139466741068652259429647264943064979005830634812897381218233872696090213126344700653358169590227213741001789522221162740309699508435400247575508785903799667202569997832385531992082231970140800277906231587245895607760071743293825569383856724303353909161073183189564527823388175411606841734721058964217895768534811717299512483022862246426531825080523851618115006790307508282601669146077155962850019032637148987470036008481270080584024712375507411832621096916177305104003436110403092985186827248351423424806028730332580821209932859051476085327675513631412955087751021815668179890081387387215853302975790494758822750361662257242614938035995707727037351521807687523301863729983752807405329150795835038746913032969560461262434677171952443512929395688647593999756789526556843968974082688784487666912726034451662056809295582414662116116467475529633748844366414063345768391016891626867633479759210440058163030055667775850814143297591169762405579525399911519671961634620361929754131196363171152116404275351388200738719395579941119286688863613889568575123642727580041980537987364592480497328006244635533077736687985062166730054458657876955244233607002286262823614071730720899825484959194447560741712583776124157443231076141756647115925765893874953802014238124855171214854290015599193884730516927281174514210106300599584150819996039964833064149922502867646268201711083274220242525240284500039341179688146066405920171909564942206815513473856777936502266088669385862436987561211506152572160517573405677886913875145545134032841421857595267364031136734073790037985707740309008384158859874831475883939670425375217243719274116847335418998770294235889247416370997129408031589653579204818282083636916751929564337537786666192238693762692268687373120957641392676766336788028985932272570587979201001342403791693462462724548685609307085349170309244239809664764406396260874142986214251015773443196986023100695136525599322318682899762321992225342080995962249470990722734550450712512024215651931601021665348358788983542437586792497957706424907158388580340292129798089935550036982722771614677572526882806019045912159009571515829452908042579241272320928901336391623208283652654257959783459751427362866188331681944781001137525286315711554935655359464389854704884500598372663312114254369898067634354629007580726805865095633696512769832544722179055279857588596275973787908601488957284907315948240732803936801050017027988204214440309937798519246516688999187000057037584575806752271045038361355452900782418319700824185296009875315690145237522771223639603648928544715688149690618387265951061855877796721689352513140602979514240014533348719940712056799844149775611743868345134325095129012076120744372238125716514951124132287460812942128643413641103363956805554391504883883654944574342770647488972553037959559230776718099143882207577431054344540317130304599320317329188381818698601640396374366233409954477639519546088976816098960244766328906681094368682392549415640950494476162481401310079462822398654311865842880138828871249678436794173358191453862614632191684252244111412419775055436676667359004004409574915221955786073937862649782521529596771255673045655585197785408286587569691111511336859653989841511545221136902411352051496025884717225022992783784811616604994537470992220066962348668252507323163413973666071883172892845973115808241364880483258037548243765912729508693576671826916936028458489854592187870440943797623869325012437256409586916807021206620581001486385881283412954291393825022599380060709397455190984706223837287230339406880774118257147363076933700360995550626423306898328385575724775665064883214867436926798497338454366909200004038753092336285235438467965318861026272785330541772493977700930116780835466989180514084749595032457180379109643893569312069977421494882349103383306964972453770418766727440752056325281689085442991733835913177453716101024796570127736151250651419328805856447956189306038882932729529264074374612474177678702874554278133258118147826387410511963710979953231569093485285808164008149696433148971179990913700304355105683365355228060772979293927676626412598721562413606186579436174202461194992432058588647847706668364415177158882861455598156712547849946469327201839334395713864026093707143554049301258728822799205216023436936501059902476862358425276773419664758844849284358404897914287620762355913075126330224287126316688777919505022851373464143886375256172896035732727736517881313687472833115140636206403214576748078974429479063788075082710554192391787995502813945908262989600029526803880327998687991859437341033427891968253711094913641710678162581110362333521641415206603620377338864821134618924837795536917152406256503894225142740746852455061577699042274765452091618929509749424925075620112323090856341021190453181354947017991142264382737625767713524468520536073107899838686597432526879751384106052279168573342789807079781939551137650559897593607184317400794696406354107978356963491127979420399187740168694255003855511027744618677791007563214857593578722818752026943951162660537592345291494583093632423898924035771108294397895249712561254900906545591623084934308884862133168504807772741199645753586643936334832475153909235250718792660710130965292986277804921645731599845721209824271002539497891256769011651239561704954735338289667972472592237205924387412830611125815674383735196513111062782276894870723859974115656489669827697915961816233420747015739879849829500165871762008369910219863494676417493996805471530930724520074325270978615987824242291816798712817117996749854770295354372401885385573076691275760045596791412943822996178378339561848427445906461602889986979408101685516441367247582323831197733260568088406485951923362390840886633991341755497078759892779564079301063492214355118968293114278309910421597488565665050240730320162673738654900713235362892516908047980470260304075963733711591432587444666461698820114239670948045977221800593269869520513743702540961635182846269863669022911485246386077540451103416829131625521795093690699468513507969996165293506055150071981962130707975011550976479459267542720067004345771554556648667696186474616819543684768221583529241899428237653007846997027949058392533401077840546914780535255228232737953848244185369023077148434216438069532808924962124507136796079976907818531097783414161651549572464345411342027751086695106700851160516295664082157996811504000487121457090663636999979401765654281518285523112669334983238771085976286292353185577221273083390180245850763587828866195881566291222624938579247943177868629261164785025682173432527940104623629034911902558800711953831658677942730779841241804383804476371969828884103292496648641080532226396738369184551337245606656925849595729301676624026238538283665918427048633197915388273609314853512439740492041494151836152527801164326296720065202379113512352893847822395084570881962362816051743655109419799443878910715905528423300879087936248054990766489238246436773764291850158536484755945532240235671007733620053662651313645429933174863340027860728427152482466380959382408911412003236624433684394897713333126785870289960379672797474488478457464756886552618758258214867307718958634175640470199850078945452516000752033767248329546296605820300957667243962721114976799000585145384350656065817818344290428247713474460577002546607637259092918100166744509631057017786524188794892492187789854199139183053532560390537520028144435055944153975511543313065498081738051883182353444131987795294347520884754997046200839576865643669450914566826632345740546451024393773426581427392323552989138372086749934423061930760007972003309187346105647731517129548778010700138479700220763597170106399873204720971084534525466467966844969592398267198485301014659624181001507462170330463011818863036434391964300963186260002860930415208184569588682305692071466138993036561953819800831184518382398171431724333423056804478329145224800722466016006546734949093231913147396533730840879373735552368391713544011780370004434532289145365977782654353383943945881931453462121524672623141598781514438136796650438291726443933101602969318447531354912980712648734368610251980584965026769124846409306423598626838838870046646153081178878578486065891473465215943468443480155756906649376843313112449777242337897585423727847447116989117908236785600311437237122534612044181155510083631038772704671090293085086095465745255786945262157057376784699840742386395254063384434490013328169512786522896777571523910619381046121121524784828934113510109752037586307905760391940946461653363966979117749693301199724030242438761357777324112920163188826059018648194070455751810269217021880614130264222835104535084610542359867322716080322290465752745611435485469696367009027510176288860404115459045289408063577512496197780350189751483304390165621792169637537368952861796975596728377513493051244737225619999026329290023022751481142212424967375794705277309537931172222492180730385176732471426411791214511427096189869815772525941761729463103318703872503555288520316831618075524809148973355653096064030353271825849904338984606164180988762961051481559725853768850874301583474782444839820370812988871035434694906280416995795704663393063543668625423836341567250640149296788386957145645253123515935072113621793641841473949019069727656416776931482224037094302166435478840051463684410972134527105592628010680289714511273829260732343440533777339839817243626351923013787747761602624119779705879622203895188251746602014726573593301229263355786094578612620511481754859582847873477649470880602304854156517025946025060799239165472380071386468054659795393583477081271769303440889312770722799902904367999892580293380428849742082949982851173256739803648838170908650257319996549269601927277381850744583492825263806301944521035471248917908242812913044214574249714399548252033737206122105937985354135751326551015378655251929304479251441470580106014430557867963630757282881123370495834558362242482096616372770671814876052138526630655469078893768041531658174585969048892061481312946250315061543261681153053908418671838955240577277860820565167022872414308327724086426049486544905890431112647902457713710628558263744455394734079988383795280606025146127847786068379232666656813432147972902783030019252575100927925637030774241097391474333478444012667090598678457600829458367393253784907133964695285931250525840201257805993705551481973817173885177621636747163834933837006290938847118476318914747345869365512311540765022879747758900225372666041973142250170564905646422101235769582552984296687673843128963408157872004350762211682880676749634057545911494775061546055052888113733976313134134463225683346570842700396323963558179094054631451573442851198379156684312737545842020298156458599702064080323208556946280536652710249809027376664809935392241036862309677394861535411795878565135957859657690079613277817929275022897585344339451120795044439679886670082039758182355928054907288351342509491202793853954768167157367560604094099309851132035108715470239102314151326008732772045221114709460604669392653895148865556231963617287861784548052488029415384541949081953178947412127378749893731990063850799308449808625094435352008924429397504175642619745068557960051463740709059422430087601178637867659481563404168707136102615001012481556060545719409990180793225662358257849030662900383649183590183750935637393277169688997750913113953244300768134678215555583582586339871464104051841667343597165310625198238454198026363199487447157254875358384256565166329083065738787905331263459685391904810940763153939806438475347649828477155962462323161804352381503263281167720590437139340677845817332540572519431967847013313663364517126019025118993636901441588623391381688532772867102223640844687167194705092213551608289559258618723739044616804577318019558358771446322349870577399466785264063445081064711291655848622699662704928810362365861490090160588316654330246923085602277914010479490803076010888961530969840404512594381727770754445036649951859021353138825940785093418347580678990060455406401728870244200814010435618509785685099290578520288710282113221673417219678370884040133698766782281060115154203582432868980189121140643072157026534916210439958513655122838220806324335177542391438259800713788123365082627168871828778866650375190376497053036625862199213731752611880636186724488289565058106128787928623029644713788956176768331591857833230133749052268698006417846270418492082040942991085383714035921329818315142365102916922891578830476518078848081999078683563215098277899973221437645510551454832905366717009704742009348416502710206035341073640298890170198794547308770305951724958558332388949436187458526384237102759741898607524603174942486026846197015602058595852633793898837266573288804424071099440815386110454193617795461260661189829102827285424510353894546825813544572468624907122330443688151236354115516474737433863337691472833820212853026494225433395844304125402726659623733364979792947776113574317407034453781416642737463256817331907462914211917150866799278558523284218619824388320776724183629802827250002129741695393607477401045178788848407298934572964587714218285988338090863102153744657769976458879792424818888906227696175888222557889131037257725477429954429600565234029365942080374186257947879170130266322427727556146949861252128508014543771074712893487267532045033005255258272374178665434304727959662504223178957866278700442194862756938488121527546317126983243642511884418952123660373949409127177312843913032047646627958780147873500836784873732255598178429205873645463670117385987707410808739972955352839339612690897442407119100814910204429137889831729917011744513161930091401672384611919218116235735155284524185368355286993310635708741415999320272796596278076105102120079784067344981351835951738331633477562061782159715321138560988696855003008689750792358128826308583217213966518140293394858622487441116760175771409754126872695861524531459853152217364473662383351920454732808715727591761133902690054220307728660533189445893571354641790737614946508404630212700088727818878625429592827452864106735217678605692964930841067238230689226647444379352532758398712299151166575327720430391895935755891539670349193515405443329826033671884848630400904134966904815552697796117190646031832272387052924663426136721222404082548298300421723406618681040729903205484075608727955811119163960812053470644639584869033320631260223158425706742784963355425579073976253547724753794910816414110800782613007784402155906941485743581970221696455000020520612615867090399421850923034370699073322140199560602167705345066877683761624334914539702555982756432776111823802527660475238877983536135717244396935246494622338641521852365863306787642196358919866776639025782671424991679692859246378884747437262692593099147068524210843859102404627534926392811019457656810273278808602187905204761799483437142135326770562057911653697266470562456310396701489087041494661592013773393908373390726307795126320320452992015731275750537747047060513914039158926382979830752590142007048514785590673779976608527505851483877156165058233245388323226750202294086278842101571310728919734494183375069801378116697369862285614755663403948970711544453133788677503265753213518418460777617731406554637118894738985244434876451626315265488392845758551816793562437519377052702449915495294775676241799147214920918921912286898673645102179183212212060951260906310677050250659362598250852417952012503341994551267277691621937782417241708882840785921081202019652367323769383475762529317685326014434733734747239751890737152540520313584517519387630677119351264386881880959242117688418276018953794780575830507704503360204551006651765360303776821072364756265516524782200865423764799265444914627731569755666612186782898331925208228791249665451032536124943137608097053848502836562387806441494341599017187589339016770121753719388370053811359928658783640093227903485402778709814383414286322148359575244943060031993263518241372313548825222605846805020196976494680226066879090631899488526708092396875660186965524865855683977035870106845895522293341196568838533133728965224372680314011616938030142681929596542574573449188254929698230137550849588516401310309801939220648682663394803750252971015687804262269149599998631140139923618757726476679632013553246213995042176110519006208051436997014131198282301332381298950574771417070772080850589928534730711373618048811016065517005204730067303470169589485716984253155885217979038711764363539361470290308105560743204423964751187180433450726710786110614322364615006847893597100330162027811966287587714044328171535293726839596346778141431247722829988174053986307780924306098797282318281553717735507691810785787924679384626186505320495764487236207935287923076874556668104357017742164357506938314098566647824110268742302293747485996478307894744594680680914473854179167535044713558478071726860645655289680636558036360010007466496763312789939677610376279935477642306279247227733573287110086680290744761425702932505919149197435240480769457781994666994436198129111670812963389503091996921516516339772279516596908716475333325437830603557966142569860439660601099552417956230957999647730381480932677502816424610074664862619068600996136949777005607264196208101725413653326544112266998226925047170313330464881904880647646197178539776471322217300948405554133328231116519011503530715252999698360305645658916759818099332506547526289010578464624423102805823128826160452740038886508326952158231903393258588442143425415563655291632307925010743543182112425886619107901162406340237681954041857491932516034984365701935145967911783182037766464681713147825551742698503806914761816464660451743938193592784245144298287868340851706463269787811301154713641739762719637108028160169340207468358628373856865388716432749430107605108359376077524953567230764209815477563856781965735087955569489161283726868698967622214167398139471476118975091617706877058384750986552141571597654696467619726018794679329480624035381872176138136835117454997169363291587581096795295333147361908908033488301413885095297036044169748678861648127301428882856901759616973922428209597680053577935750964912494342897058737700109554550718373562835709941100175815178260020645512673631161407853640062034357187461552857353993905285584025280739046988622617150730493944878040713321832719904593150544933362855568356618933188282671972012898382465566220404379859011962785224055555053102886832193028647164274040919382405965784221262966599726725899749552510751714805647641999473972321413491042113356304216774714290215765908947550194408804247724770026771199612991815219563877109150175758372730874444953544916466596463244907377578392856670329604978254700925560207465307463480461583687280972459437438169182194401614567031756490020795559552099425215928733662937148004847693132071540354752175644089794499380460860350299871677053824568452527907508328071943956256612872867858009778530771538580597088588388766441980392181903360102866803265419744639754147065494249403362934619615258284132676189523562322890495904089968729028765921697706797418525547264531807536019691486980443234719728466539067736913643333766404341371981142507756619792355275068595735071282428039641588969659697111638221284196910074835877536777762310933171145651703227485379993704778880026670277005752097137097723329656171461258754382036986730161903997949759656206806774689034532569589278914042634729385293066714516826223887015632251317545400814988821435129562592692976848929032927891165773538267946182847778409291592880556727518314512149774576156657646316939837398930918729976944667212253406991283835409081408715043232031982722415916577899256553040195551159566476051300865528307161348713619616439671073737674412110205736552938921251929190506892394732197353788014756996598172213856416018733457663960449104239557752905128062107832780995822385007238040814846033831637523282611506138308912256013350978318701189879446388828896949229849660108448027545035659041221381826771898227129655804752171667825943882140801342985343964355405530979581660498656065303678031227408466507075465072508260549549872894199363494911950341445926075199021272960079628933770529587141431291991170411602790249527024718284987861229283822708078681247515422347596428342252523776087466650943281492403999115291024105253853656064842279451663326541058738026963728873194448304886290672425097516824021879837871461251413043907672961433471852430504658491783501241691556306336920668314838040792039523744580133994418387274982600751012164497308807818967947266950949900079752681735968567238372106326502655857178077726540292770986258289855421515228660586557722110986921359409057555352393454642042434665402389923520330681767775951598431218230274161784221611792785648648504382421821867527263050682846016655998196314629314865051134690473800362507235988737002864996415905004844974567730431172226238742121076460728627129959199492303135009777923186973869118005359070352670575527594661734880035902196810292944298871104351870001662765256581486021623351056910315484424993021733945990014778836992952830211489032801044847676721091205991151612600927603608172175264103483144268976271170702895027528649463361776523236025929225702829008746833869373853822256159439364120037495692552043102407627496495775134449086417527581278560079691883031844072812656869506593842306089308712991799863248669310048985356102279593304607339780205029771522871347674974393345208449115289292098764075040359053910891617307074168001854500308965004812979610571067044094955043453161443215891448306102286993943440867972844001867521326405216791306375600070510113220646280131227122955312962515082773252921860991929486993379583084851638108045176026244975525679685946314076717702338362534213095532513198099042069223563955675057665464378170172628950752759773219956903838874802893517384611426870318867514070113674337273133541748140657389365900321401548715983935806154603720029651034455190644662038564519473213327944450735472731106869015880705579693851550039995484916407901596017108629302353282792058679826897056803541976783934108706136858317100522290928056853098655729080438701560453732894425279717537810247316123528480940634594394239010525056204140663588944732555305379655491932819305802298119461207569582953961877876058539831748967853995658662932408765791665471261804663729843417856638407682900745107396693230956962069654045700589313426012941853205308340633711143793760763561019321449833525704707041111522512768798264928222291689582376995645017255721693019358532700299323894161615855445903689139890703576044539111135868497991623275099130890945465845307360149563981610743951584166325610747755178184911444015250317495340465095114899038142192802653715328264600434500164231323437367120847762057021046231082047852439491256211188637533385818690476223609041982034369956493547756114421391463822611221645875870640596535340363481151956420858128841174757152369748731478698674397980323690610143236941668820996915639197820809216831928049722102021405569742819687774690964430339341630667346201517001307859102465467318829099449569055717949556515510132486148943637125293379907310080128371694316429110068845448853450995232463953987225360001371523054515129504150378417958384142871317554435849111343606642190044512216623509968536249301200335186935338561463060761366042435406784989101764477747062445187404697392768486027977641918590580394571099856100908791421571541283848547899630630119151611293602189840163462427694302944296960348008588657568633070698209746889737012495406088308582801990509167870471404543863934706229050789964411993628311744194147114941155645295782023082453246444983969824567915536403966362196420205224546013834650574850511882308544144974401440510561512152690726406791313172943787797576007571001918604201597214547704354214705950792083770893608738219388594802113891141097105663078895902065238464238476668100877375684812215977496546961945012517715023839985784651855049244838189509071418180434786566514230607098078926415669152252289528042992854098115654552738519161545025745394763736850755295874127377885181027273120899861127196776078103979316415256368434695404684885728225746293827795535905537516552944257333452350815374730077959982523795035119638390799371343876550490252564568878135857111101525916191475746765435062299866575096482095044447090696675022719713956042384302781300898071694895562278694252105459120922776188433134611155816561348811829257554707668453765451071624801021606645339632211999304796285877516099789652566503740986420633974506789020354175811501800830500816119053482989059692030429448940032638768732407580107378336317423614425505819691686009062446924075823988577961062862700697285610071435924020843579705639312202461562429812590168539885981611297563013564322263736555244838881034572837515273407444299844274761352622191376145971855441280111294749922450874780700846640373582009029742169845799235410985840042105503770482729003175159570431072256881793999093116014165932524642470494719099358474075957960107624870877055524919801449641130132464055928470708933147691951247105088423274089634245527087935019470485950301464372225716918879212508491664182447960011642268710640206534094952639800906867158744121618364586666688921549076074966853015567874797698353742934854304268453488723010893666969236074380080982469095892119322365961913433622434705592938834718697396862343332460953778443816472046020242025775976619776179522530865296373234929208996764516847904252171532879181654091024374571026414321211402892406462676105373352976920063760204562421286633379099601128342450751964214096327789246231056632401548597746890672805724377523422522785251204219522037695178074151299451735933083615819009709447369411542701118924359367716858978439833896245151340199250569222724131880659267029693520578046750668116838910063571853958086473334311604279706465199837989149648974749565974180419928226274535910845620108128061160575967248496880130132502512230924569961907133005125585027705075345812387092895253824306211819717180146632119964953077724534050041528667648071175186301194279703038251739519474419506495554368161152016533057401820753840953641479948810299549695352760619971220790807078403517105806301841755032950608747832713156915339993081928435194349156546703894309405566165344021605057634818816183901295444702622067756857085431107218162900138605146852387582912295329362843378401597072810064057006756039735418249650732449223693491689655904187613875535976315312545001706997333710399589542189908868922996450384309120140720274388520384131819879353068713907443985079886854979959617796809560779207686243165540618834813690319475861129611665479578322238729186652945799091002678584125946751874824073201574982440751937797830211810209138933903488296137229925257784965744048485073490528938300452141242622166525001063552621450425667440820361332164626472670997424296581881841937546891527373183751355247541833341564399721650054285757638170940893698393379925600661367998288210635292568290029049974585082547575937388190980325065704106018658394660979977350480171139620397225345261080434618834163106249844022295264580711567088211032525841783927362590169092112819485625155148273146609603683391023900830048099743410124084380948605277641058135412075053319241516684404053304902515310173977364092916961460418945202525516199983385878718697087211951616705672449451618976441763632941176743163516703480960971989992116881150122243729720680543991398297860673075693482069908353591188204751186714421124822208692308862499671427912067163120344261782886595709683994945299238720020320190499092692315787090042020990325359994050068804799857703957776503781251383838010282295419079246307905273974928964538631845362746901280640074288651915013008656003029943593830511125543778896007183138716886843023216124975992884456197409185982542432631771823055717036487360069146910369388608147888181280589588115131704690036794412260071293598315720723304553235630065313958459404835643805454396264202242985038411851060280984641245056404038999708085599816778514886118408497632001197122210702731335422840749065090436174204101399998007153404615545231396277443792430075629478226623618624166839723791876173237048939319813576176409528088584867488590714170716968133099841400379470242647667188442653138290616071327439948163658645826093490554161710038258975418833654837822194791599133965043608609963194270007602029071611690596026015676775079619128057671902628933561233112537038738607872269254407323251699113687321180509386462886848480423624306829131259917542333177737969490028626304784278854893470862448216038773180179889841344442541547306160716442028828304944152446853509845264671413846874712778243531570832847822816845226818188069655093193873116257589202006860150289710165391237663107860265769908127355882087132341567241863616104899616741492083712474500452327376313745732481584604330873541833428940043132772561714833657429388499399257461969006571540712709591700740000749137616065304066181410581360943396610381673584672748900671171652594900172832905043032852136611209822457793121340411401901617046131539588829818754348332678626113132039344150681674058742331460701680540114293144157770296716332272762100745306974292056635015608259615780822257002804751385505415047830655882266383985565006319979836480178228227528336594197684888610502201463206802948254987341173552341784772087596351704347445546120100594738971725000193022509695087294882164291568069501376638524650724660879059687583283572842914696736098328067959433591965313455043777145577142947313660602558070048012925040800901897984582205837237516660774249430623072720414772282385940062120633301575129373050319750775599357615792515014236309397383379224711660846374347633628772415388014517885232303691077013761346698581157271013987195014771002462221009510884181046711263910022324274044487566256648436643135040070654754912873997873015644102943819825811200492375707441111895828634967520874703787762823006535044126121590241508522730689779029559883599064186105335111344808557774366762786488542201314673619123499556680302065895466553910691699309765758728112651352013951244014655553568569659275796476385757416612682533045647975459812247358031286309227601344742343375437046036495827695135054101036618658220233323368005805828793599543796229048459245400026045658665449318564991505443783928159811451445106568641052801790894013059876875562483169607140647700421099041841179763723209354352369549529221491626375783770329282484807846919362718697090971976510984111588496712815133429096793873873941149704511584876484481966711296339265835588137691343917820099347152612718472082993405662156132524021046635433037783212044351192670805386653718794582494478841557017970040428654711768265702007047701949818601655352426298765652369996265803069418610996484914398940591210396733776414313737543676682093803087763273616831776549438237196441787151585238177851192349262782809782142560423008054397373092326876641061627051327706237071708409804562059367033947932059475864150812347742717671924297315623151682425097244608200064886376821266737437159339091353880026304281446066902085012053808586819265742158609981578781653542071019570888125484629472095134136647922019617354798598316167045528703641226157775622636872364147601220237388891035463756069352055653795933992279302971519988340376213385981713315841463589034691519958344970651934601434321039920676018545000447780781256818565803659578682927290663078675032727536946960547233277005014337410403540158122376897551889309632928117032630787978822263466300647542525183400695133910284887884245319085145207094556561437211288813593253289490490538486105299705499632242335401027524685939363703287300061949266526566215464177208813962182709083282320834186941167188963104964589918869566435880053889850362507587811132439997607727240925500985907769975255592492951051306370992939247165895412400617075706703013852155341514384836268800296015740389869629212739596346687870666106137556888020198463761517590543075235890792169344773035265303290266177741553876967169027890886352038811847688070842630968041850974521848868062170931184694370511508885382486456634363329319284395452998382915760748279692071824588447006009475836602055583771247375687047076817743477648955237958732946852336856706415540628604070294920725851756869096957415439589460821466406290672062193046665726438545070188156177669251592896285422658718222872315880493124840517278516661049929467585783826009154675621116967542654771545193730623188188960865362925052889180635752614976144287916269874771622229928187060655968329545105039917886171393561945043500483404539941093640656802769417586889089119941308299403644248746870525192286081334833442149757649521016195657011540842365597335676926692580039947416115002496499551925713040113380990131552231673969111446487886148877971974913720657144457517579303169831669304921302569083845451082011668716380459062727830023707309302689311386322015393519395448552421666387015435452021883842467904055645544046127449259601092907463033315283175090785240663231330847984989873376368468381187860072074766453989886970574789320364448164687416128466762141599299647317132190572952634634777504042557315729554225636392618976594064049123946285137895272538055886395953656356826786365554231402722200554841007253395067076464690982631946719503756179563995758273481630281626192151434825878559865942319677948635461027022691727040021305438817532038776783457622126918137866205108903481147241467369388104499592269188710683709357559608814611714989599727086622977969680004390596445815597391287926997427267199897996277540141568563089387422792425802416219865292194756975547074517518919156165179317119766843160592608462219502773133727476406632293769076724946104481185267693612186192671205971019405460286304366845430710221292019762058067280163441841259543711395633392822428204872074256348793292241747066242560922800347428924344005133000943243736457579810741172973234996673521288996329786066186197171614646880926638333407490305868587882079405912097321748361603815561012836422779734101189541225798229017110649719557948431825444697175351957110037067736802311084124124180102716220423551260810014626398832092059649262190035832931277077492654334272589099071533113061731046212978374222634186219967535876259754713530277130346521021335319800997836822150192178735832221337937562283323506905647377008033632660399563074109367265678225678424101845783233277011210771539772195353083933141562741174259217534859133425069957045176124786718837877499128965710129932674016407008214061737888207687651852356789874032625331726688069793064599417701933675186064358879845653588813609816671233317938503805598868307863958077770309794953285093164897402381393852551522169713919940221928366967429558979461876460497321203414299900550381497547775177181086154025252297692597206131047028029724714502216192952892695111614197179007290149399541267638001767018205228788249946944057207589932437300259015329128337011976768457485137088611167203323451332720261994067638101168430830039243862450093962672437725258363341052235883174556421336453565088285780256049179420024264353597222232378774458846353713511530392199759405465024134495275302943797082804591325087396979076327902253363154125334419577035467970779289088199665187720758541400420688846461361260803619553549320004830555393880432041740177495499106755332319125659666519730955301331595099637487255764423427401602328979416194375001927137888798249416390293138795861262373922255471304287557104139897120404161656374175073105111239412718169199402535445938726774946116994100059332952984266466181842114772128183681279278081263635869973855132331414917954322596516619263223753651782573675719389138623659441090136910464036282716027295405767334825833622293310425784550814621327378994226970150976103106960865031289449888717497597446626818234502261050080309332083317818657998086944322158695744490345771987150535668798619779200180026750213302761319926953419507084929990887763759018027838602587577305555338499153244869780779677002157379686668423301779259986278857059026058212445053757758104291633447754803804904215457140143967813626248452464445619897639826992401312530481152592043059667055571379803586574522959458037292807307290436489921409873307625276473299736476554627652665160543614509790651770827509504140167830454131664225107004000973950439462782242080649181729027792492766203304893942366425260488548084979283649048988553900234847919257976998462626196992450342763389774577560195850114418178469420172208378770584728635505826991820053413410447179240467591541768618358395937192711884554541461070590398627599895539239956680088849638837310238157770570018870692468634335520517973823819337066810511505234958198986227530248233440488401935381815794605640843284102223175200254602850455367847854730497894872704910617122731628229559256151160401576383669254590934289709319048128608335173828027132989358733324490044549803109760784975846900740276321555961855430058527532103730336981325744630500357797851356067656493716030419386776642164976839167663838206314917376472931939468822729136841924374555592863027600942626720872546775018688022693140996664842035368882204968485000253394441332762278405127026993250588255412192044614173639301650029222670132899990595218224562584973251587457105898226411583880451710296661729207815003699435396768323548964102048629583118525721645388532592753391180283096187686813093033106924589752189154082646740550787870295075056192488229286456548653904117953222859340491195770275608486754334112136380579894839483816693442092715667782743455891041697533896910281353485281162714315268521703215074319837828859967221410912572302404940442056367944712398794094547013388576319182355008070574020711144751372690783996103006745476546405112771175435394589094005778707076724309071853845014933303240614674650727368362607084959362798692800891980312302204238801581232132953991785210633897762700311981554933299951915440652838793925614254216393918058433384747709827660090032276819071330538313821986233916730739742839708317627416406452972583034876930784199997260804250143886091321815085185509959437255256263153379948074520475485229385937482622427975072835108637953549386683785127992407869949361587730377773177477722478244587442726105727156228078120818013838621248084392487041412318861555625128969403360027631211190836380351853538989541218887281162166713346976650544393421734641856639802630761026988536059715481264953898945033814394842379764592712356736205214915530796568226532383292243089854633301000832556142760245435306408073100122386248988932337621976880486333727881373600932154071720879906231309671619778110775515163646747540775783150959370084325211541578955428380310291022918787861211803230223807568296390265635597729493232602521151920355614555507629624352023151470041575352434992097831147898565180865308005379964816250223963870861475601791920143606149478868611387459749025814967548296092440339311657401323724853552636345855699691241425559814751792822993982401229697888524909316132215307871395141801526259868171870916523165829565959322464859005940634396082965736679668198603705499520417741887672847053327570643694539330606664689154506033301610355148328398072830176417324193347595047916975039029851974403327073134389924250046046962813181559515341017531316055662657363071210253923187498766886760689890640724433928548846282843111477985990001525417940966162295154120770912679233446627775234707110266131454193268688499430448855850216616421057398760422250917539232092292702524814731067361337933853040313553863037338072734460211739248986533569864850645525579430353756525245394831093191635402244502964798116089703715111128220952905776186445337030123147873801568477539100619133436641431496456060074108621295436994770213893959311223539747400813646772732588131526482652192105785192010318970543419064923660876465657388095323219670213032110224213516700495489581536577133940201209971567736119378086488444814155080838938729188619080006049949757864683653631132299608823144873424558103767367651818100077904328875374943757476972589835186542535660046485455369445755572070390335377639550642216381020830867870844365875063442614634449763244131135079665678839968393037575392966365732729428068902012578927211002141385737501041536104711659151269882760237438613594250501571947969934361368110691997871176215107215326947493557813726025274957185394717598148891452909107316511712651284787282756849571215470022003548124007329445419070938214827701786220643277904345538205989303000131129442780752802173126068182082371080225716065258231986748238352655003722551758082488416679309806587308678284638144194638280839007301800097611931752548391541104947966894320001263083759270994685189511650710920548368345028445439604593791262595214423421716897096333657010078218090884934631439450757259010115748366666868280535836718730343473484538768573179668862561241978793603213477697732422852046306711574314503184436436980991807008476690899382452169482450602863626612124002158371754140996648406919256905536658014870157547445690716523479231879746226109498880305810719964636166308226090565502928275721385343472750790602749240712070323296961659457434769531387838497369665428630277030281903633803725371313050096471667808654818670586974120368775253478980773739200123802713624231911467065149644093308901356152463135002977313721117436478209707566985875054532204978232622728679726120543221210589952601428219751393792964146641665141301413479460699186428546087301853070807844918109190202046696143044369093735964219237775422948497979768434466769345224026048475451941392457938750566202282232163219628494092290475458945604350598193784244401084289130644093614145878730670251848770540250083583922053976707853127094975637258537762672246307290764506502322968629269284118294713169736744954224227874536304443001129110200655851097795424273644996273160476913853903245244256212621565356301640843790044056335567445416687637017655747470635552049574744386685622146339173822570732027571726079214975444480508045479051758922246984046665389593396661567901823438623248885076597490505016628755103558979593283278785864211325569265978822672548900174137974699360991519912983081706813282640795715065733598524123333336891657361463669097778249184625896398738345230667581851057369117879632150826670495325719899092189239935700717851815676567862858335128143047723599761947156423811930344221751418019561853049084572260798298735339603659165261741297262824438788700411436286807422558300053170221430170308622611995422415395049905525190028803594416267640796912405751124124024702130607597389342952091837474792146231837357970161166788613072703229462509994697339305236470198590189000458344067592584425949725487435140083644783294334865935075957042294757090431429204123126652137540891945827211096889046607097171390777965875778282298399912075846201289453003999777259322130218925895067187822346306922188552528274543424507470084352585891956374340842980578161881926539566752862410705994115517854717696165782122106017606960229575990264667273484410448314735405044086591226814732809848385012007565441930808424808390859444519428209683969582492962809331828037216072741211967537902329154504977274574890871211997600797574901295696100460187431251439502556418225601203877539216360327500191453800994304231179135444774700841118818090705193872029094150891072710135918434551612238633524663146466722420292377827839347935187743026196264725619054721744115473498693034014303935594072954755152747123487163626424336351476899047616793156831569318762988645205384027455980218424562777940363960730367566197000253871997104286903544968125463720175798821993364496569304054063199128446506229787122910966090089864532830162509629113158140551130932273266997965811645766181058406448084660389084191806206383035609040605350942549518380420479403086483508639870003006468119519673146485824659927677523450992037882990578736832740514726170754746649568161859514968792109273880386230009799979975527294415101326661224211008505484600600013978381440751556701322581520294187727255872992881717569190834833782818175183752325621948111417884965888473212090488134670640462399500593914850897950772414961890937341407570066372565566406967896429829793811307442796352738912488269006327373965373936961243610961613206590865121304816951199479981439513545093828603689364294685840707144887848429021745081557860128678346262853077996736522418554405223354350224426530354388557111746905804170088277294465929245974834000099699313686353044967207693007747217505648293496336591096214284466251235884355883406962493120217156038090456957744253323701054552675130434309964110383157767804479751160805606452088019860135911952033793499410227318167856590138053119598929764096842419215054291592827621790621753086281060909465129386480291297820804485487366100302908816412178018353567221303868537039960436717239909163814966483032667518278224762363214956508070267035107838410984706525185408003786916113375092312030665402685994506444331443674804665301545263839896677359648943181378363593080675760469093429244708411080653719883115523681333323179058529993080514145009086371327146803043894351903062783290882544896393830197887115434289588062390543935598600806815865491343528998663626146368067617757530099621763012798171858885364065822338499193643063537756134417036619742589547868915777970042084152476353983592703079060319915112444524942920206515227595539363659594551075175168242268758636737853833952981560045760566235182951632792014677041071414672609656869168813924574626404592627727940488284730586775032589270680561901125026933894208402599893556289245155073935549206791326620872226548394901627126023453440027068319528825426552710365247620756541575040734371102313379377108427819822165921847368893129625333369683376503676014064183627557874845634063660232013231901671800226846969060876626480461365853226379047511403847932136110439269618949356289511809166745421702936544040015804029875336212749986718213588124022654612103795109497984099416966960188983442464199805873242079205625397594988283142763128897225666708605917353946785770514435802830473881887202704794401062218581721717969153537565906338679425366851817298420486353099973912931073266487023367074552182577723935774049302403107238297772306632085172347937171584270370803727566229214741221839880671908486991193720203863943878809362488566881686680662792648423163852781399187329971302038992937070825066756230489276657688844666964147789388803561327748384112684958987044299118996136360998319944475756365042022008578115738111668335448196531957607594117481907689127230092327501117907451223544390470119124032081692503857961795879265718103393440701500881004033792183937135521576285317020861896037862843163376159776478134753140713271583625244434798159395552280875875236981327928727480199790490760176924637489344093351181310179232782509599734134845081151045768248229837630366364847884104387522146975449530528311651351394182739451288174559815542966407412646866985970128851098945913899654245736678908409238362479429102884225049852501956313088628416548734866079526663899547304317195096363307092812759289760176015349680742750816440097944457978382553508282717882792428725333033493660239248698471274079829599345505114862925704973929020799837768020837463566798608096714976388320861463106096362910580800553843743109592827115244335285385294662182534871405880420601015199583392805194491371577732295865801175188919807335750605633430705173172608815796358316198586367916516898061647701461248194370236972529433987531896767465073219048002530961776767070108996057448486243575344613198608379341930288420517139466877893059968249825569266862601134755688479431953406366855128435976240134672050764884398937905483667115789269936632565768726308586457789852088965193206979896738203273339584320265586754830439588293577648919340120684768201991274182641267901341269456398314518067007779883389225240801402261200021744267829591448529389029254893954362789983895462494819298952858444816843830052651876375940943717630304939876169585073886178216459451374712077954396475148783751824681514085190839596051340205294149344446210617132865420396365474432096132401308867146777657898338175989509490702983250477549419928814738471043849467783220223961543946183774104979813217485932145595224487382643087736485153639870535030504518473098088415141154794123067175576340940473154154538779341331970319777013437679135725893295562891925883297122984553186765982994359688347226296569951049019584781064856245121831313055695074616501967730451980348038845390268328244950970845003816190175068121475933079914262255733026434339615698123593494503065021131045442700878783572481486598388125922276195492247382684490688063286979063800624670796509457486442204929462485508458855604655697646743142338330205372955947259102823864623839045581987062023065141197139924450548325936898431759420381452043997287010078392632333316095513321216958218567475030551609770344876928715376885164071272338443396551388250965447421959717440916695004318389509621274302623016745577816635725826774593050461447190386731812155136523551185778911355229814460772391656328892776230189730123941771177719443304764531571273675020106438987276544518574750491565620796247506554945408838767245533519202564005397565524764022837174834637241627548641807408084852379769949712105571869769071112658172358593062310815849968459868940479558530904469292649644699846925764094401883697613328786488964294074829602253670378908318228532070989450765391811801137394760337422333473330720894470519853123748491099633688093032447883710841222095070474809877582854978058124985337829849036742312448524988416640647031221612556794079314186710933102731200222633087847708713610170629551052939957637316130334788034757733815535865287093529430717579362247843357375878048598550990435553764761707292341224579697450879104964117293511272009655709681338626129398076504227703128059741241166654662273962332267170248713130478598786968347514100169996264332664297478774678634257994725312216885853164244605527438336811682413561096680052889529347538578209046048265511493396546121166950533741388715042080431294261719315719355870917222001803907237793750036356077078674190132918983198387503088284318323998255860374974876066637558228432361621067529041007409951374271489669050882294992540998615713836323500385193656999541906335909529613985117982475123598535975028944467787609728948106486532256849124192815322623949203098346162973742176499456917361000689124942168772275289005565572654165430356502265863024687798055649824632656087530040965928294464302941051719735856827312250333605314321841955933491736461721859892640734729333043008570768142958326413364418003913253770041337776361009828978755492926698345951359008836037175384404134587758587288243568035181434760158192464010446170357365205109573193092852093831435114087586508411487084715027369911536268030453607755587540954790314622367896603256884693823121798273222522652895127466067873534252397811850101551581243385035849284367851288715401060764123389499875327595444847620448631540371010707474146459375523792599386875560983931241782762929063046166787245636723491509781866093529675273297552390497202908150104246145959925383101161570688457757927249183776139288833158208793263665388102952068810638719165376859301237920783467798938891522124435260980953634744490694447489996698361471073650591637046195146241126399776953261850553204686708493711197893951441651783665833387137751305544248710892073966304748745084200237155040464042944611790688644934562385454400043347933627426584274798699884327866768639615465632152774021247655121502825003553115854178067415265158020333279525463752564614734286908198345483328968383199020806850652648924448070980837915984537586774596263550747544227007294868772361791191867262738610832064930799857348690102332224928129486793092630386581602710444606175263398429532305437819784668183933061488686955375111277061048591232497865245177723121078334401525437038775165387808213413267484795529015734590026571437185819530911687056620952375135327817182974842435982568757797041059684899701246057768740531459366055543056352271355242854246736498699073827953446889113653978482579683863014545611631742487823173225606572685027840022813437731715805166181617034582434216026112718442258049956508584280451753786275336993883032894571117897984423861742386937754896812550769018718390580315817547138213727743999228773361727938520590263420889424377007506670756100865262894733820562541797653550073148476644086671307628314762699970521224265513756520302468654155502117958343074566276856396757538427303752514337490090753238023236924027561577292494062733081898511078429699853067640593735477012442670697586494969974542188935087293084425023548786439225343788438264652848758631971608038001542843432342191178776068442358131942407209599033854123479211854612688779985406531925386831520762207471685956822767871396203664086825517519549309261618216273239580294879256928335791676848566230606946151649036861734185901710909875591150308543546109227883731144166682139940256820295751940012463220851117134661347021794706401599535945443002731088022458705435460058461049686837629161726065421139059398202867414123673517695927053325932087508792267921451003490878322856448706128041152314864995557299375581215170651659030988718680957451233389969573073226745183437863354879809432753408663489436914902115541018086858737716652497167572230040392040065062375058364829944661727213741187601291968447450109745975801285326077484049913476526361715032259679470977624851376087592110154128315029848899514338718002435017294715003370293532611581699786934700844577428554902516744439268823934141652299368470045815813478759331576583956981854846844441607029506306200036820244369477478663693696366800168844497487771366406049607866982349725569506174295595152290049607902451485049889971751700377425369620638763163070123946300040735095221413295593805801323380514488482312627211511005978710222937163867403610760873541658278042726509767860686040636017031783585348221931146729098741784832545668891017825704161105715184025866561044618785145556293291413545407825304147975295737376612510380329046395850842707911964967676688474546713388012016170524007762896736159937274381614307234139723593757601941588003819965519185884448593037566527094581705754446215969865542506899303897091068458994043670248497394153634674471329924618926980746974532108522931961335277331114657005548353692047876861586868769015901327081145085916747861376229420542935415241876206153757206809938868724554502594390871875460489256770949057206938166095649492905021517873538734905341697948268221110301874316290586560160154302536082895383789669681446754652868895026153132947697118226851259689997204300388890125155973536316227656525639926119519499792272687689201541638660671447440367703015855336031652326202710754597844114354337112811202630928794829578206512391961582509561354298051062334688981015876525204332233651949595663271287646565304858395729419111709140343317367539711434559015721665780178715459060560945067157034451183485644751655436776853166620494715462005409897407477158324879532889065024209338508684097452502470191257717323003185212600765208101260523433048154055735336031282795956846402412849454326450205112225045330320122371779287624868077182975679674624166202537377561988136534168429778786191298551230208560951372283831377287112877071728551140830680695544145842203475516557905013415594635902109631685847383046517389003057251052149816888358313058427425992922011413064553584761849109185862821847114437669732903455969974864926566244537767241888626643466100679829658271549120181822512789379072053257624497695889882217045546759587728046260380533489004190578426253020510606967531484994131458340384811090269162597927222204824385068934678443798451279938879573459538878936132314607409472246415160790404130400193602828636945875926616342893685366679077731384883216235911228033128317380953423997237211844885935352297072519783647882603414159923504317193832932426744149571406355811932077811962486776561878337007876075421485844367061626449599745744487022323371820857434598995992893201947133370545907022470186070379084825090890738809646466733267011156960529236079313606978080964625899314177984295929827778698804759856749896083475468389964228163077924589089942466260634778621391997407872592566714796023472157332907450716797998668285465833473795197370940657163391882863017321116951132222469176233569047050363335068765225037254763768715237529724077993653313443457179548390548158449078182426207964892126188058025970368728919489512830826299485032179399960891405954457159433455469101762403283227051848143154128628660184661719275673259274463770131258693015610240104767706832889966976904229273042804630865029818809045861289783335318636463947289348236927008391209742447465264661442294810816824312003559072690479823300860668516125498593174699912897051926813798027384913900892301269279021092654576164623990288635447423619365923365529274801432857838423878432002767913079587272418794093938414754145538852964682342554001324471714372647034453952709124438051892046018166453963806434944856159497591020667245811348431710130896083108692329202812508103151396088321761075361847788710984739576691290133503568728235418327923252775145367820161095888922700945545521462881261083549555562720981566041409987500575611831222087509769367597291958171700164464804097001204983803712796160261774197464742610926198775724480771452878264939876260767146128634985831655444839254978821919369244226917184750277659244711186847315564749909276568596610457923792160661833229630263042619138445519495212577196602932432967580399721527733271030192984453042470348491219421554513501665286931801209140944399031596205797223862960508883131917355569791716444823172256439383368309233911287314972371237664274468893448748403148867352146409428686494500768803599213941811516554745242277343119190912159912904202815030452646895025168177680594068400657574110641997963761665919014694039851199783472740038188505876940873017530012638049612125505986827720156239228306799544737834172189727959342086865514334617500256178278128527655477879213187779157589766497655285415736412453962039122590107377676228216753823234240626813310291342314017323997106485850811640403982864385874188310327217597745961463897990100823976460294004056702070456300440210755575981929976168537494845195892994040343071559869135297867810087838309577007745695398028200058365142861014471358656744402571306299804987611278493186211842139442651195853696672405665226133798391535369279925553645964105740491567819275947567859779552525824314582141596527390717992348428468994220159684577473343784063186011148390701162309659461106289615055241884233259150244969957903272792393691119996549197313290943130609831985381617332297878467835638558620238789696454962452966809084989924433032815116223829155102980043151021609867052663659831667135071667799561382783331494231698440393393017302976145892035951897578336152925471594396367990671249558305375161083141559002945705419832216248640921432639041887326552974617103275557728382219380068131804683357020750173221116487539728158093476343245838128890425884199002458864945922529741743232413633589815078751854027117455366649139330411275907418210859561818175773546607238097622386959316505011790179174224046442286436836759791948742405981573571520840591481092998883410734546393880563087985786392076246456666212279684438566364908632756164874497252360767927244948759943351040667434402516470621114458158951408286094342648523121626843256292209400313845413621498989997018175911853054174406345526019052175048947220906614778965860501697293762309509668227173767829852700375518250579266820296291085495873295710573952927259523190983306620430758691881249812605329443168148961545894600379463395067901602669572800442680116374278612214009840236492984375535818486296433798723457291987041193351857691319488626401603828364814435945851773283985203557230525580956465940087164006197297974843436860815417174440880108874153233042463714795599861262377530884929392023216720573670591259820700738369981153394527247835830536336514381627325673204196653237725976502875325831312983790254780975507410286013570559860168299213783449737620426808460558747903595258503981396909912109587052701362240608046647876593823610633794691630730629868650467360024165253120970282930134942778397595232339391237075496977177464838076413608911990199245355739231984435776615346452674055240614083506264523228060330347102371387309431804163321440323684261811563974237076056756207931941931657056673830765767723665075269590864368209744762829299636199384768400104707000695464021840427551685204216071431506726909420600813142242971857702224879948198997968128544307835850872348418114612014683365951580019764426449232724843998248619770001932093252188281737904770579508761382393965091363896249417181953338053026476780693176701326530111006862863504880171665595297540286987187269082687161356822249419656504658007801476685876599644846062297178913825583465831757735223007382120668744260861025410251888243425408686070583674113152412075621085441017744450909444116750524076289980552825003070552258446659194563257308089554204532407736774465153783471875240438217940662871657543132441557922501271141717496710851322831308794085841768809356448311600380199612655277900595549505634942545969800312309590508841058353325509176302499959534431328736413634514377551455578263421823063487151749015896346776273703744096145409459097454580519488614837037137722482345834385553889011460625834570576437487697267790603620754712451131451709554051330721520797650484122736722550415741161552167053026554883692893358069255302943325546490285118703061494766328202036054582283354749902596855911770676729976908823682751469988061909050550797464384555855549784318583267346028197283099903951025727578310263145827681176268687407274657807506389558291738756379875276458478168486970155922335792104245942937251933628007168326119351829477340191113136347982799081348053874687415382153098651251993031630163840366965605005077431718705544003253506789723828248852883502141225021256875141734260298744464588763559982483518866067041582032893829970348255248135145304539609163071371270717750282730883317589439744437918695721842571175402666045250209712713771448726111358522134537087006611662478036282861784563418489338445821634061147488881146488737261519344882262560291388549823413487862223947735359594813974518184931125296737615729421676870341547927356131451903497347270739413222194331386216163049032251306191472469608220680464348706969365958242760058982042604839366724993443870427930008055629947941028202534648125105699492798743368139418515833010939921189252744190689689491090423504437803186070296407365893924997316789042806711385432396130677615190808541722153963469769696431973913910869525169134989134216657189600609577864455078547277040395273641477663644820655841711973107843992808468718479389512947730011407980217846884806947240974515257536921002868367525229564489376821112082014422861847310518823746267895363458176708709172273256939066648676626430502497075799539592861603863942595609517393707356301477417175854096146809673700478590574741710065492978641897138284315243023923990848709297094834186687902629745247814821910165214144881235533819861147892025893988037696032141329377733292749392493428410713159857645126614204665050755008895136784712054243031484992329178060933475834602372745916220916753807490563382798440393389376343832044798204889926163084309700134728322175326646585283182103986541159046707848366531047195692450552834831073990992908098739053756166576609121896830586539224861365630393763606045426812821991425523483758622830933513890341038824589355898929642447208219952568988768682527679044825236082367887142085872866377749415168112493624861224635986557352656463156912443960695408607194635004980439980921913422113646569244579485243629473719112214616375288235930098202317023521136223351334213600262465047635172880651440422685019481839993388072799767497764629930064427903678935222123139383036857777082110092318175381385192543297428896985468994785884990645163886656492224618043234531151827292486804377468087106677952838625834670122233856792394251750526418057472501241799731329390245185897210643862552090184907289085167839843680499914981384609806742072805914602360068983517761789551503523607305487694755844254739478723408519879056676556251509669444298759153757305453777824052580783481348941772993344444032083374170367448995879238909178846477309816265771003704042978390627959195296760475971167871682611661931585180587363405336368876043586667302461059558285242624660763343138297579496100161362381111385783383136771586582149957200128714628694702176326240800197332556189741076458061957690216660543847138483427136420848241975467140126573534462618379442333634353832576065670805730640074458517682444630194736670906218354391356099095553061644141538052550840912698527454369540053535966936547067457979548436395270324215779751453943154015465561051848620617442622865297882410679706676871956928191381407735920477912035410837650314344738209259310409581822831151680541439840649569368654721107707015319290737602624972905316816420976954851223597084911769979936920443890080205709995339281311233799531727461746656299919909730515913973063342667664339605859867463516210599202446954263208612848435156492678639112625391096149151513460898769583931282636820159154828903801338716326669936366769351516204759974906107297965155289495129814398227706273092101266329562379097813692290875067481562110970183137269833719367172208238559157079832383718908951528374478367794200048989258543001454622769719729575676772388080036608705301685150996906673905542828836669721493011543327265979879733417573707023785305031625522760323014881416657988109653150599791349324405304438575935434981227325561030775508898084171482954572280301195797790940532442245025187146390584093379216248939135786319091410603706115559906826787841335429565186782548216351747713662495001654324052134688931775208745696957472160368047762925097241857623777617016838193384614938278254503442856890808415852719469620297609701939688484967977498260692000479102207911642282449956967847599799894076302378696792128880786222181609423520641018544643459426749859203418648641353207912176318898447475613071197747925576848831744370245315257855420466865141804476547881193704836022687812445127222825067542967704818663746173516829521342605947709388611582332154059488735084273739484194190182536920355907932990974364335296131385917275643140597883790768168744682474971316490573267068897884926917787554052953017843457484011079763393884735938824502564248413039398100065672894959111519894816019926013616507782050513935792733758508435054594279992199512515928299113906237162858430380451876130418518754693333144806067235029869778036672364114153091412541252939168356155193795353055403689293976325480022272472000509361152787325570568888683904660148459437529013744466079480997216511414288750857880833607649809891418174488478865105035276798515558254030416927771924193101335810919085249816919071198154349392901518289823593073401952702881316121760237905295152934704156932275674601313533217866934870965842175183568710506728909616009781497710347266653548293147458791577910247059659466193828746007618024871418725820792335232485834448684232224540573162614421092006875727545165667217912587914947622117868608751087316341859678714582401868341005175665558260981657057582884408099342307203180336995682093340239657344432705718088872442836357898029250376232687687579503858988267976711453552994464401565373074194304154055323337384660707110154037259113340882530372979457618794221723896587357372847211990351118682228248079345590002630857992946565490367710616592158182933169558207387231796147128347141977277569863780161199185046517492472330518557257325122434692685516485222157080003339428339732081684788898362443909116126648854709449297161297870225683818694763582559881963044826582957614359576828462889172174908116387940332694877146571929858681683557831056250079614349959591851838723009455994607347642798775366548105718962653771828602858808570496312568929076533074460735532462932710190550845768403658562095544881128752680008200382891209203581046695822344456451483029511080320610404437682210239609912527160937730258867522355614749894122065700651778770861145467014647250872222139842895803157359861919007810912296686086662109140179651273972253045097667816216368529284804165048801892839567144476611287971799094919877057983015603317415261876827055345743035473204706284360478147630898315466963029970129156569632309680696694615297305287768431356749102068182771711726974459452694976863976114095415160822597654565488480094520616430721384613387168372713992136775054622847725996768967096105027635249626477956916414993782431966058351220235971439831999010861643150848461952549470557111397131240607824262250375009114410717317274496419785118645592746669334932393361346604938260868756233477674560086283520931664960955972920945524118251720463713312219932280935833244602851719556124473740868890018950595933336315820593641253349303541537910678923689090135860713627811227930537018374816669037946183002715990435759700503218879400501630466770356474419816272874573941443853539802244283162914239654819747175139665599485089831179082224901365807296803967852002552380534219143917153590710712127948377002615747377993631943336113233481741672929843028252502971471908124667885362638725761160563305521618698122385040875237701482502094955493778942374754098453237980826562978090352662223863382528435860729329173774500476758634983523194757230790724133268230016063558166718168944191932515346055580446073238708131301968690544255456714525759319792287306340120623675312871302857174323809003738835705244715615033192521048572913987291423045406788672965243483021611360269602479999140988457500561136828109414272948487379576343318883189293455620161171041961590417234390205006261239281094879995044644488704159761116466152699459842488235965458511332498345913964867304275254538603430264994995614344774304234669631348246217103140758160759443394784619461307294342729555327705250864436560908527121813541027585334415778535215333350539573260722576622747687563621472069207589696327367999611944425813216094852511358917770683675603665992718506386568118613567311485092368477415804379280224243593907944115322970825275589349537591809742973922851078111581712793691640277821638603297403533043584650290460371573245746316680659917647644256890783198821287038765372228924178497881199742322007015251908672342909938555449534291845899518263591188124464948935214283173877307855387133344721243302200109771378839504372892306420823166919519594870482507626817359968873523012566386355371459945486358495944889998350436733238126068202119979227537644369343175626615828034136457148237579108126890076107518444460258284192724844156403198101854759775284860684510814064752927128647430364356684614451970732861094022963508767071340685724465627743408782994468255391824130910454454674088492304966155154854475990162283798828992814683302600943514185483725149261649673680880281414965633208504621794587467111609307948611808336746970379821423038789319555767790664473798804879149207043783537213292252383948623478657229745589695432727145808488241615525236567715775828302788646189873994549803314932201465886360663411754049401058100735020053904914739655787972446402254871534263476696332600606101649541800040138401245256616232004665727147501006736352622475376295595016913253143697605826963194015609201369584181506542146630558233753066612609917893393383166325644945739156883117758125141896309166626714835633437391909466457183479172615878995980262352815711525194321377930946484396573390757809991662348659288957074728940420890136318521931623856250856223437758580174999379380155358209656232473538341744695840035362823041632162124525353801468112065696363433669927106855686099337363476080306675118379506883331402845697661043405865327615156299396002187389175169097092874020815245157027458587214927664793488382685412215275408411621854574731102996219542057061743991695544958982128611226214387412149382464712906015719435857184922409006205066391810906861075143733849731346615833316995302022245947991887215281462229656511195434675711189532481982744759510494777663616523309443606360525674024986394208063369798623115916655912874112155795235784738082859997160707894390172927575226556899820460520439628613479979295444754699790932338256583032486235987383358848627129771873690716008357365877026138441963237097166173791599215035453623441681273361982368800679077841653513611070272638660619737342966258796096059215253772834304249640253200340917514133499937578861211524105511801823799732594340442315086060799030642288026180117796641403098154962722941277262109559944697121901538819591738408252447170634850317281869534785675918109303461652606213583164494969647311854688414522248375210918875142854969710710834733258561820542406681593600628676502053700920117305532968019922809860940285079103016812878118450252670337746883271345821385733889103830820932776250503255877045727954938645437382844674316246817630706408856306048656512591161461371065470717241271819278470940846904975320219781268404106907877639195362390548155894860502550752284259282122842924657130120467769323776218195193053855575513292713210475756258956599606398716158472646355855437087609688050422271787913107525307983235187254320193743554468335273536461628345993664927277638759259645047728734808178210845507215488683225400327719206310453393606071105727616286046823317099975458007831302289506388590375866352414912346557781053642951309422712660940711238618528328526543167866515144412593100884871729620977692791762064456173271702929231760923012431627647690280419154196110144542006609323627087311471261000348713310085359705703988954927045640363457578944564640642636786010177837755796592723544640843553844458663064497063961655701160903486608168415982659170525472842235151641131202143601961627594938687741534140019391677292745739045032770657544944205882432993613295956160716250797437168849303711681282468545078412714441700263144298285530072623213919720326047322321346349632484926487645250660932725413267827798013475926295754833662976426963586513725325913167044175274658059617826342778716585550122064026540534723150825617644616867828978073142286633613311602111350367176776231262454137602149539443509450186306834644678225504593631685781188506306516327039425481267535323741156645279034569706441504202289863818602460730125041662159170687424983257716410874452255817386840499525065633441123523319724859251188656313806713169301915701173675112305180297803617303913991428648120474401664160932252182897869825029436126012276516049949674188233453902973985682798327245427039153465323369494642730866228978456513626226446890234024199660310857642354044960495494095762283028361750062670479160602260339123052331566403377595813885150684086360575777038323330425230526127384139354013613141566738162523892517027937872931788688046645745721879245781965206592866814103936213036851381648959821791742207252857154270892089180846375277438004338137887242274457409561700027296888946485182217076968084870908168901817515753644654112126999598891306831243280310383369086285319656371759152952851667684519662483948113506658099298920191351886461700298201786213598859184847874899198313208555401949712116940453765037600510912054951352541468350960054830028545746113585947753680034747893885606565083571241249498903827157384907988107387021664581652914399961865686839603853977772332514602818618222871410403110047288148536846221624958726342744036912341503987907064038040464750238043567396861757048121189520765964261666056725935491143167147950837322982920037447610152086589988927024389661534218260266997359936281524814516166262529067190848763691056825647295207690691872424261149410922425860217255720593907938651476613357039202620099393906502978494062377441141096054133716637216717761779013237773576164489467575613881214854480334249804586495136922456572455759882145806866299823949071334842195064922536950890285023960958845742392114597979871014348408555831361755976713203532707916046287680516411516711858753264401553368449788993102265176850274475815280695729901729876060985233718941615005959584738574588380466713107781033592896851727151442796130895665503194489224876924503723605107924542157319567149644271710148025113628969539968187767293302295486371119453741094210519388453821586238587529343667091594211676581745544722792549472888101636909041395586918619696839547809728745343371690264385560865422172970530910785994331728492669114040329820121317574309676161105130848096051377077725306018628043084949217828276300937383828444114468338067731732501958635712599211417582449984439066937658417547982144566554061676916931393934454704006508966617470029564296865997823489129369922673880160592291151495956783933260432791824513947248804272712624884948988442383856793607777786207540310565071870802822724139124349144562236637080589375406156646807050995899928908824304701296377502671515547058580703009125692038706464454387181107627646721574015678854854546866960331801411082055176364064576530334819451397632755958529677282339544188532623508205135971365613718271485165156093984176338539678969107828484254259814923822611371354266992830377724254471796882211583702863500242776662910686294075329896377392907489447216856166330565284517740509632422519526451959170153330924797236585369587227511118651187839330246898694701284205088220390436844029111714357391950775864982976770563200447347240615618621819271799099573942525448259084900962624889533069474960001624021572686334560070070331695626381684119285954452607425520773562824134280725664920225542048925553814891724559452153550181518008220048605842103055106835047806254317184809451114395273594634019879670405724233091354826343857168080727904206454671772677097717084419234959498166550242217824111166356290773316191140469916258495828531291909237612859515184836997059831235313695861454100924263603117572088502077000959653525494308525053490966658419384163654915977874517953471453805858615386519653068587605070830455722166825950001662553886269442919555621642189600789471186572191894724424370501788576902105375434546920951266122028677375561872355994266820055220385406194292736545981008501155046648542487281915441310619794151930259547676931055445737774986793597945524464228103030093408200239607608225597077109109601681470233523998416902300678636177340898037457165856913304045218728458503682212469672063034662532765248921848470478462911588174912657409078039587926232077105911364468998656741115524255233420597959946439138904046314758477224180002092454434603576758607736704169768471398628064611481838990642920063112887194022816322846494870738788162949180459161525417484596009779705158068559222700625730411168390190540137884225106497031451629047046406641190066034003098697958053954685260230172269944391689441841291131268858920765056199872197718224919190831560046447184281869996125820610769558261704214865994703421713504242157408805769753736580937741718517403995258828745589896692987514614484154028820531380014662151023679245793620086772905773544649233828570274522504774693731973374697440277441904550981933414628233804119810838950742055504684579202413663900991413870705827132652685584644034644557808040170667333236496449251512389244160061373739049494174594617576218190157976007866720266252524995255650442051474567339607981831765158641083524685324901127738991750529453714631291905861943337386553579068294217627506053458449295674751098167624585947434123954227060619084564714406911909433492014871217985283563330846487956504710586069767392250993749828910978524147750712491497810196745010762461830985426225557340343167208112486168525477389939615666295891330605723647639289458451103590910652416966610636092895790113669573171829806038374958315746101610665718297257776171018991634822305540722026158599996358585209674695012558359586776685825144046840325613947388863677441950816957281148604163140076570056224362761083350926168720187785160905309838727430601376619829576518050841526923609524781207270881793987941940208825465838941743105555109987163195036964022702833384333494979905721978761412513201626832953361751899561807966198684694151771679661401284311253380546326150105925758071095395452688335103744405905860557708934049062385221901347158342346899568146835317962865698792620569750989966341246148208247449579903216481470867338881895587597139172925817300206685063439365296643066382683297884704229305295456678533807891710227876639397364688337524148669037584842672895782349094092746738568602292419425679252049953057034983210401462972121366654549067409399438442383135616021288737268747754775320680180286110134321138046228221271298943678036502844082326907584468742977195546343580008230821160330809830693196716814945733163925924470030342632342017931795304301517654213302076861141914760566878341465920729244987019575021478800151928995212795583775462387576316037294745876376358025966287341439763338341992383062681794936658135830729569711920466888323687945150912120568484416255931963628838943041149678525453090238029400413815580417898478889196079836251092899001559809857142935350691969688022066155188162977499339026498127405499261653927996236326905029324785984770414638343524835010577488088841920588953594738675044098773653221133810332839591828226881707237041150133809833525895748120177513941456494722276597102793083308426246271625331292204775982395771927734804366639687844969337852893410710725589376720710600245049577838182579440843678792849882994188986722816331754888140442121971794125496847529213800322861875777336723379454634522337298847993442110060516201433424162094492439059990693459331632340666383207822423167118918091249005443358472547646542257620951655044287713177812619645895068040331461380350740637274712875662795806059710377686957412061473134714757400603900040567238308047135769049164891700213339147791634849415741538970621758973268489581155907054222200045599280727092546581470780385840597966124271938731171605595292632536093600095968649632917000628925985994100102815829039541770913866105047634636698522005387310592355404686710637908577864771377325201767603107497250835112733773815549185950579824574796815455529848533042261506220768335771959317099352735945074438533962667358618887804557887824590965332520826142464537465731096138855368975301606498137291296058403900853192162544680385546610876730915203827272692640768787085210585175830077980252074467829247711598420126417300013315020842441251872170293787625011343295591590042018198543908260096119005368849541055679802034550879441767017338956273355757142832119801400895798644195909729586808646572940377296762073396088331254348890717399441075744350674242249777413003811031342047232514939512402740874244314350113701671228286844271692294191716060758064558656004531707773263331682794011888003605913709284422277039407232844840251634200477627930135194121993861517405771448030728694089219078038034057934112197780497448966782357523389074210277068121967466223710524702331290989746397100889167237084179419340381218617543075833679979679286814933623257709090906980701550595505093622237478561873132175876198833197201911798694031643138574757794230604152915390034706735775179029350873314634532089742108535981754322556589118799915672404121337863653865410247576217541876562744496465566814068884142875314895065400229999476943517893311459745102942282195519559741212243487351907641574673649783432023008515148595703323663692710624894233726941566481810908172534353904450635239628401921172106674624810775895622853879491319751825228024026755836607907029680610159216680583691524349445198607353856198640473088994087733072362441514586066328635843080973354719126740778305338539782357892908830511239368142636998174989827520727538041233156278805784259574992735212300509674722570852010363938097734746677538659020030983377381549219159202002182034928184693754456691404424133281631836994016432284545880132804293630567076168547722233546038948592244476927978347409228878495179431056566613883707983792020368224338277563667386452242328193635705785694551730957194087315210879280394692576035579632163739459402181280490898710418342713021721077444942448281200773415030135935295458737821320787563313169590803832299207759683967418249647269120867953033758160740944089175357303099424269972562729335973938101445928335242273910928865206662933040980292802637543557988693251103004537979416647143416315156934233936305817915467023217542967305582972361320871061211756062523969715011745442366492616163609441381697088208829632457944117603377817131178485300113937707044845425556752773407393242073550838143735068087808087449374251554985236968249800450553030082964505009854729365661584455502320494140680892819578399529902790090339794386729107279631296607058381981952832412405152926010001266029165255906820106008604855499618284394184385296045681035166276459836372809184695433485603909127458874692712961412454346306728274468220528688427539373574660242064914230152769152944134840997419361927758421583452654681754031312222247050716778185936503199816649474015480530318079426668370424669350253556096243676174596028383417616440416254787697660858953997465549965264125308600757911460036498764493870002876699359102437713273750521050598484698683822260812965605086719342246700560650562859018968510184336204259770619816395149647030743389172471091580925481534409121906359612298511613907446409604394969864112547933859260443695387529314335191061916941456963247313987355949933529023938685114617032118669800146843412309201016673367332844941660866112763364986483287273861636364172952231338481325045684446910874906584254960574322931711324991119491033588695670389534363658503942057910059158506668201409870906358991506091978753589096423798476874204852790597006044212831130162609308533857643141706865366118347283893369391276930863625990381935500642008737617839027804682970504831805223007602741589784823896166584651476701723056435987491744283510418393423528150782095911794718745483041145228140218743345774316805232702628923077271532338506455271493297972157063178550160134951055286866758156759792312594656393999336611542663251650450889346365093187653038065346884911140168873405033978607619607103987535102617741877726224569919793316532801536867310910188032804849329871396902116509104821351410388135755279189222753301642895562606409977386807688162081821049448819551084382177674646559122875910684332486389277492309119751053721610307437725742434486276845844203264509762642899863015792420201318706287401740841094365124505028099605875108188419968920917962344137507953431710001071250397283294589577975610496025358162648348994110677571530087645468357164775488613925923439941362960371091162592529461923192667672144563706320477674573136720536122081824769202354623498222944728879789940703599440268864831628721976469016631611102565171742052371040338830128401849099691520955252528732238556231039037078459686092447645064358038547320789235985898925535951353372838013121056753107804769378294212614886713348644585947982928453376354191995084338884233278383120399233959701225051420151055222744098767054572924483880254423045821442335338889677098892053562986178920136153674820440534659140513420640656952142274270692360353031195352162322561469476271293637933871181418597583273015353617024261096022925824981076604641025035495847699994596789415502796179124167985355768076861737677942428708605729310334679697090153500062758349866419196892120791736934757688054817612338262862024460628785272532648683846653109200435113235945131537423420219902509560603000561025366973773867118843834818275251917364023182894089135980147448121203887323067335526187433434743846533578368392694779194542187437310549205390894311033349540816678195920033698322715828912166324024307971813254824661892125522812394185599875363249579873395222934031362638414161287261908292517286707080025093527782787146150622739313754608232517534985869548403133699272665776141314427218627896361967601381759443148775689350564407610321684878397046041619480962262834583388157944562393647937610646978459341529840617514603034619445761785119558025820681517133370218182749576640560441320259017165124353036257209392990705587519652508573196160284389269145387424687757901898110310364109883732794152550626442920604304206637421695359434340802425855515133984149321603306308962500930282883867686667394990554586507185063170797084570892661212629814402374251470725661711994490459481250722665995975228765677237900658170308533737555777313794635214822048334025083935235324645655050139055623328795482921531173894249347056608960852055530115783559450967771082895996619741359036084702567389565873081049417442917425260452774525583807440545575529123157134211355057764159686937824273746950400602892816278661877483674935720587150601335859665112778829294534501753090141280728844962766035788498289848103775216549652065116361431938152543787468651238237970639345982693254464742731496086108955983128407635780833878244143277976465669393407480224906681470746363193586949670149453439310297916892906560451842826382481809737506692808991660308929826000694086633647446834737872209981483766271604023458176072098841000329266537768119837430396798796031794587142944570347418562812996957815162926775628107685470861400206548510568230365450927094275373460312159913565293501867365778590913204043742502160289964943559098736588813893663839314602441350045312545463635863002579261750362153450488153232544533521327640721726711030256823855774929774260455424341919651758922351510229801036492241838425037042597027238604319193539934504594865938839981601290795581982523546481194117684424286834599602794153515003249744061358356847985060411545385262286582503043892818508184851030041792484969004139433427057427403184266592163367042605237193517144394822678980430114236526468384493716817040348110784461708764883141185715851099985810749874285170713452439133346218885169769375652804497250769001145201423471463810559993820107996282888550558732733105685425721667654131312574283916868175292239526584168940744507764360893818989925261022429848151223764954003025888630592962967225271224657613857002700575661527725458191836430236501907021379364452182086878960257577434498714938817705912644666081285991531382167243967668125730346499553282318373559938898418679503000258904878398543524386644351599157913523932276256743234228376045796089862669795974752423825691337396501862416856707941151215820036378089232387680881047821448672737630768679926121442680335400198465173500376169466955161615645325620752013726622037964752968022495404376164951070555604902706435568071875585858643513688783151961003136741002600864354906714966514419843976124951282470555241130302391073922130103574574312638090256189355139482882002128284390888105707776946678343596033042793012252807304522838979486829154292880625572684890211813358557497482355091608992644428002754649924320698675186104428723553395099887642732801789214362375773724109075365635348078518951341819139842142235835804367134312348122166858973423576019667910507830321728415474100676207306376791825353662045863707557477247273378854574262838756171815767997800403303324930499515182914498154054877709029421169623986613947472062710848736633336790739576631904150128764352684179481531469222321861830790669661928730076826718955463023379724788122476912482187964092735490601596807284807518150404633146872698306859406253131494299269575736942901566469615445672354412613238364655183106564336822393426257197993780654945497640533101193043911158076582216385342418283644297972705568072630304062388761364825946178277700037539003916051113407106222734515021234060765222012592130486883469903625804595767189934557435158399797485622349979189021623266212918575826943764027305127989599435179439733343827423646887045744677797140143191521387425846160420502387956316471386679215877253834322737433666531745821580803754166765589398707807536291664945967316378022552551706688469842481930768095139656875603753612324979597643641388242215300364939752534894548848118579766717218647108237478615506198698436586364472705136958636906695832862284745729820695237540577044238458628662756845969855133920802795719912898500993268983437843930780346160945675176259800473542006154425612793833160860599955474416530851557284252527055773631780532295499702080955720550008167809187019391022551329184458173944425153654987989315674806913246036387250139144350126119525447709339844915243457537531292684497540225963880233717729983096486281718618931393099667537628780473159900962106902708195025399098963121456332523168656593442807844109819822833765613077310138572003738636449595868949747044672934327154498119117364262635066088558499355459866086000581403930129677925527127506199824873351557106190943315989855584136634006195332834575985253425897438999703986413013271994646519388726454221513957117656242871621274599408246076897510180646110052332757885379994443911330344257638239543950249448154370563141389301306833475449238671752803764529831202239235822041296317875488660787540809179481082338002392644801062410829488034813166218015423247806498661076319962962361976743430556320658311889154202653121563529680729895017184943771669113615783606747490768795341966228810514091215197804076023004189300794457890924002858892260771138688499676764689297529305312132770460887947083865753587001642334569457649169305268368487178534290335868242523917111590119390064255358681748915813279150829616763092206096623806716161399302729436652726098691062196870043227633037249442411167546408554769094290695179654270462525917166041936082349001924249300323575591072087321958314460784964680276861636066921520628785449482228397784510776281901650351405527265572541163474966020409860399200205893044908916658491318395898307969232640127412361167447537244007272373317445830292614728673073700648807236775158639111430344178755598200496704878694196989324314203972926420329430506802439759910041759765089543343051803246266954120193968322281302857691176887254113904152850326461828199917522410433533429362079437730768808278038864824038662637260578757980236798032121205430763835317571423882120190708794388604633808377352777314608101787837359338146358860667397899508823802810468526923261824802218257889949252355134170867359390080985768849150223313618838122807919512370053265431198715479317121127587710214367300704450756639173792402167151400392072023825045306483900817358669295399583873389902874171607312173408913962757621070159729218436283475956400797582775914676258791517167165535531320711924179193533595860613049535375928686332193779888341144682113936569395259743979006336879436372377245156974464273793771343028159815017591909648725701526402812897648065576361817543104926276338889829113087235520131328134454951260363136925964809193818601231135127881964570086889233234915985956479911123687760569364716267337965433303138261728489829562626067611402921824854428484735062290254755627532680627813654615701373755299082557977364565395163429940604020406196981253922351629214771719354352537131830901082163477002809196234917148690795783037346695756495793755078439239462702508164647184972216939629995632927504584410999602995191531227231159793982025782638656174484241389023964869834254334912913141599846525379905409130161521814274565732286692342363937771924980483059583201284030106930302319403836610196424317636153251413764231999860195868582088468608359800420601551270644232758282067337250322044233422731849558176607854787960640454597498438296263539632347193938881805480926745220556343960802510803861347793035733869639434956587109430074179885676706516370332733518626207468362668616658792822097252930087254203661303431029968705276737880115095680906049731992081759567987146998936174066247292478560508443412723745253712717986411858314907287992810018553291853131287343778512094822326800590643908717311511743296049120694428677112311081856025518242433818632083319243969734901570864522624169934596500364951179729781000406300570309806847844225368440992294096120655393155132963175705791528746520605832479583353847390764882762938547155798489569420232383634786015171819448763284514616772316619581096436831572189085871047930827960447033545201568183791062553190642883140146583820684013130651695820103041726027119202269896641897571990858376332713982306610843468795192805957391736196416660742098427047292964855035042093532552112961035342168490814584184962831309834802575088875721696815142096933654846106445887967032425466683676137298969924944047158105697186598527125357843449332875427090457908475952522663192940966446250542497868322832045354909317786662492070435361140182738761924474167102411244159836665709825275261300464134547464115576638222260069742872732797023449130900294896441456631626347380960284407915105641053401808993752392634238663370932469230634978002064578575233852715767401598312666725501658975125875859417506527130108629220644130304639309067025247527867264956654639509989577213038253092959360585288027590196043008492320654979767135681278926741899903656932968335081132609059130467873972489951885762060138213362792750349305107080573121239110161682108109998112599929865257199359052327041549463356945439125025324288810861402644006514967286606396374235783685487872538459602704113097512743982954535119446910813702648958533786558855947540208623937646888064913136435077016179552246446582615053438885496392542449653561741168150569945749261819773731136262627489763275037145563214870675571452100540653591720056739672613185125606538527132546864719269226959393971714083219499444798225557401227245391953096333148387806601277014147080299351132004647767306352815640183868295377952434792130929782035180878197582917311663840110139995375433845749082902474476316974846893708305116892216390975779951466625436896831867924791602104820813268850138921832223181838243724870180334999572221442997580270909354623868467541603427730668683631427941943587578512065634133819806908665248169144376248204953341922475058410423893736944815945201834811950740624442324403826009550340663940521982577358773010113583472726007037253553705315421347610003802728963479015660135905473639067927052819152270438507869524294379708188622081019659739154624968009021755930271041694766327295891315529537044890465481099812805447360576587585123758296983563438891851806225339610723161203402039911185674956056299297468561083332159254737559392604642467229008557653232968974403952677288086186578291255797700042901664128080588814592115759855824155798375320197935647864315546974827602346692843094529006666986263272026449097743491856659515158165204736116536240147286184149248261553179872877554771387457197038380036521248553722540580212894349771157064254764584793629796185812857470294791538532672672818705061235920017562550040833419642248270895395263811005828871389712282893201139648806489443790196403406678743326642245667340649756214366959233380411694616182477776361388016912245162183237504939076976473039432373323789392506861654645630787074595252554167127277379451698822928630242934560791956264615351765599115687104145201792191998675948940747898886266803891129559841541865609729317479866634232844805915401570719582761867888952706213542979794090467982596192775820701947502531281455070178121941482227780981784878838198017188618775235894722802125227959154040063180710538924656507738642043076426572163543747505751339246553790592344844617509750005924013008570517496880387375704154104284575483217287645424155902548710040965446474739804090817456544143414916196481144239801843951948836990271589222283500833415672636169627637824789504172927237916754900610260718017626549317934291051771907502347025619455471083662174832115055494920546020175073130252853886014623468594763263769286266504200274182982582681192978183965632258640277267373334566273013793861847526074910453804636215108245188786470037088365216439887637937337682516047649475571544447307338091563875970030037214992835552704313472421919716224102256704818778176343124853218271476480897198298193402005927635829605343774903297616209543808839596237231811886218776426679654476825584074910033724788563189097062536139484693332086385413357688335514976026210202513915122209184257705355707291023471760481626146848807337416801426372149060161271568320111712884846962042174186946754876118000042332631655046589706976061092398751796461432348586316415474058663849774484959123008994567529041012216353931617987050080468562934686425939591836222600741243835066473394570379038225535830098405426206422551324249394360539559839566142446199634381520146211792487958850787708236662603631952998421231027632730574257854512242374378341101752126092849555473784914214818190079966777710749982699625213439849595734048787484177762957476751277314622523099422822527368540775643449174717829443350556142683503261376923342482783516817230222435482613430516483015384176018331529985732710055882005350839213206004889102012908512388841861867050227824430210660793508459800641114014629555513654739866926694192203558771307448855601254347237530457643679685906711272245178647881019150379809751774288207161762833449747994350657124211793891850676097980017956914199972978819579397479548407911723808443458918172180781184876458631136564122042437124983784077735050597114574526546953338345661656733516009317675843010418422668514937071077029034139999065515482262681097977829585038566178231723017163747960453863715015183974806597623893716337630691770384886191094095134396980158655055247144444893638019305365263637188025526647206988418147170693217031780812714890139399634740051664448512598637510868618594088826127388518362025801479305698710165970253813109700831383348688740185742841217127637869398771877663991981928942513282859208664925148940826570528956699658585845717412172543206141314140373275334822404277082934667947800686428041817850101834751328010668313369075868226405063443525510878018278259799160997954343927213058573247646929211502296702269716050600601843018843053355980472074376421312302142895272434848226798723408871147137717515889196956834509789508032160929923194555672065300076993551932476758698070559769207131811075687406580767830613526647070527585685157353372052736978727888516129898667200647997014166185370895138594747126462342421332509151101225945045514325402871126795053170190705126769414230032159355038333839606743611732507411708480670930182178000583990023808480976734880906505516382648788551399515845357720038762140036661695878424673881582662308514740927545532698611308663125178753044986789722683859449336294860181865954123057322485959807515361824919709907046039348885971841730024359751494710210528511503516117007502854866916721851363654967052106254453985210953452057113354211587032288626992609588138147155528810467539739637458061469635502357019807064152405158309387193374699120379464118238313641232020765376097424253669014972750262563788765652141327438183620977510436002988081111382923224625319885289915798085319629040828103900778294907111226870870706149480525950094256231822047181438809133659340651046550038025034217931098862157588920031966719447863604456715431252511049197323933021879851121503525198467685975077021525366464000214629159146863882291279011993661916806122048188364168906445281705557057844553509365830072807537826734973372524131656312755308387332938232911496196771809740970682443427876627047020491392122600343188177175631431471253749300350121283073121223812269159480715943532641264596148638163474762256808514974575140448292383388473514626082984611787667133788381521982110636092203682903328273220526938740609852711035402047607218526193460042535278030172839810596554405738214919139258133827096534468228778498428028021677388328379759160508710777691058051735850146064208529637054928699555228651225393585381597628582834166446102645289465395271976112338490467306308556314688208909996619833724682284360941257776531850646132141497660319756830297267533964253131577769266045893958281082741717665989923811083226953111325880156491646846582592727707247577760275593608654674493558346564965432871829909019814558661518858586459573828571274256827950118283519760653641222812451914127720891946808628663776153353953280116704115031355104269406238905310040231865525641754985902748888471740334835917199886757642565885868248490083898490148856182127500467226901528935898568736699360241642517383495950842634018552346496926734883132279607913561828222424511184330249376925780638683549110331586520073918785985512617969197655855538091265571595271655627089038143132163372904808496888920492347175433183380907581454817736660368808507927897447942094223555144841672433940706921099080089696413935725638649060191986836817875567813384242713578282583434778486592431115063594049905605011281936969131707298668097913212266536414090950610898061559966642805200231953525643477537033934350027766597699850006795075547051720224443375969586372764092634634675550041594030972041975236904851581982120327055358467980845732121282781465392595949119123057489515977337155143065195249637039035040317148041069030323254973709810911284985327592844404205225759471863389793220914268751867670257323298904301672621786518310014506071560675178517433894363632517395541616165195630076231258571015833076249452142790431748200303438789317967809078738828142665649952836199454726839394112479465677165109355191317382091228730426580676206772854748694956925402078352191069773940396255646229498582694683225410117588317867772211902947913404620841795349151203686292934392461578069387601020097036547559604044073388987503464553545288595278188843103176756092866992091151111280709057758365693908681750559662926858817708300126980735077044322268485281836735263218506846588316076741097079574109071242553091428354622939608580392333524269993669137730037677221944191303689421356871083768595510373707590686577803990953387195567333374785475748279216281050356958059385681281630330321789105443923277813036197266500168643724291829999011388551532300355355540981495215022156138519764572338796044462266222175662223508312888170440409884043758193095056382134451174344125994890698783680330793211808218301420996991316271182103579835421585516448695382819699481804471962062575855188835637145915828941797979154165927639314230508820837731858185096251930685941761593495100103693765850691270364509831894905312630794525932558581869029007945742020460246066245253750856892063921363155694218030306314048805706732238685641878205691122652842818731947048405058237425513426701910150456598658978567661845241864704893225816300676280478231044920604936174901494714777869281932357342169938301999592977955860242340012195969810384848413369035849440263191076140663729356497769139669362852904645553809836875148075031973983131386705428708030950155586968108955531920918265822832321164743835631998238588220792813505268192259802323418692850367020766129105806156295061906768787370944780869213982364236265096530064489752426048244799012260044411802253107926688671064889086106132984835231712674710794358222210927981422887852025286368277805518812853084179838025496656827671739339816768808510542812806009891227311738615882170805346532126779386734866389575631770030117594306454062787710454322197201838709763177615024018107018266739444514141486785095081082607007653779408744504905366058558146180037519335346978979352789761574820304861925332079557678406114411631949936274910855878205120928851454191113656036609126374061408486471862936478820124678404568392610577054106088690467768981448457734103750244238598525311848607910963587892654623737092312731373362359216024737261117603043068422097735321142611535867373983094808754534998628284571431538872618961463523044369002690055190069555292802405827412756485800915166470254359658586099959257798811225692699734618725953330045899175266575758472086875417150436930048603967060296583295223590777663587525848868981008079247509679319810031335910555511275334840748535371025747035077323998099270536477690101440805284486192859920585217124668551025748094725292628058387076919766883358681079290510475475192658346206965429297159018416545241316596610282170617833506255827149392436426581265421477964997739170893436207092554562724653782269362514338121278122941204336660220587681050350926383883879644997335086819247664094328983017640701202627220779039080910737699442905762700156252069694198697546112678214504033252886769106560061819396992079600216635831591648654510261810809246341856497038249722144069596292006864669277763699339890865255995503918059650639722836680124876794495438283029075352952965891823834305434410440965068275863440796860722601902332351588919445647357695157235931686100116648168600486064736753279475954599994623826842093919673745004537084361354559322050995611917243981909399239847054654531018453708947112341638809023524943841736063439779416513095264214959097803644112213932367298183148171717608609725764229734416699082337646889615842567977212771297591950768951785810787075876328523608977603017529951483674440440673606674009590490904412558329051050090640249969518005302298967325504864185222771221996363200137663502492225233188625698349722137991740934556671511358303624705979035930665215529123216443328763760757031964221009723280816379760766441499100325555914040555527253826164964225319651225057219772276877204521733725943789559419861874532132995823387120581358944137991898545036347901063542443736617303803949264657480345840938591349231797573320648280683385816117476620438767183684611102732955752387396127614746157138116428454234948428694102797499600881902716783503387275888466038393599960764410496900306196878278927333660541685251755631066695271666090380692833041700560663605925627206948722018553950316760156181788533779860463662319001019028636368660111568519695840316533359194617209781750459790200186319722421733431714269037890355348611983347177988871198006332787008833622401526530581406010722939664345382049089891123040127220186365089898419224650183439058222285553493557460689503808132691904077658833452711902789914350574904750119408013214396073079026246647269371803297305479617369647902490422934495763836440072330773510031748861261992151142586355319840443378227936087493102091354286971239328253345877945330504736861751657747314916090523142816636795816020472642323738085134325346433584148686603750141467876889160529067352389066433553216493145070116019298402476815432913849981080761103532657927019330817327478898892471646654487305255630714086940953885971348741711600798076081737803572014981322564752609962685739544075589652921420597287528377407429630594494064775808911110975709930851038030271573063957626828710874075876860483753953942886928116499293640058421212059254648607212090829171394581795497730443331273345249265659093575650721296708906597837108871130524730541089902065012657593330875083458919673587171624550113777713201189907648862066188737025905153414429378173911054717452516838938386657385269968835637287704046099839086287531174262008653287741798151139179250434740552643444090097755479949850671313149203177894628741500582385733077277695791982800630532077292810725466261421458934277963984304648863034143206563363751802668280141970793305860621796595048477228064280120938057777032008682015007936748169760249044706852768375474018850221318628993630035541032825831011023935069477537698375361063829886945379881169719587258281012363206131393969511177517125097592477826036237814720775529524728170869578412367420557275323461873735089552487667472857189845445757846538641345697330091455005241319042364159139320103178448357034658035102957629407160948040911505646222000803140134274089347867758214836638009397795967223540686575406774132527894035555189009645798393028203123122509637600478608480501191744680036148301242543755579960836389989207504705912685336771427737330889458452329234188587095577648928490122582190413268570544560098499496885666502790234092939311890815692213114793807856659914293911077890670903687027744236098808702048395184689495391263796253382265415264564816435971331259725526755410849981058993206175148670206868421497998810177730114975210896813061461569599674379740178115864200545110304766685531722078681090046306910201296645104024306090969872946633199865327317994445331829884297702144210645076979289429301217202739139781158212297506798140682169891933862515436955644581753230278700709914884503458124357492854272546604797918730423299740740872172364476048514548705426402513285462518142127372135104888338897900388594379461667806070188531764725834867409929748830327655570834123701975312095094906434635298607887989931069251750468785587753602406617035000661616701311584345456255613221842867268524253860648915645838848800989005477202863432546799637525554961511531015439243955624141249211682606464417506326517730889561803752715184100205596783918208337000086406664562054441940814298802580807056638650147226989569544632608706273898685080659608177553244335418900701054769457435642498348095817570786669044862681691250920799371631921738537041072788706767422839996850188527283017539669111922835002911336532241365543219198775851160575609411306229973105606819336607021241762564098170060484393885582308188248268002972830213233232421397430886647157211517680441362331274853282229772983539422637368622662767540629045061866062926562656202589982688634114337044442785193996408750280568559267278239940969784322023477683498780631493580547065661887996402226457210844853454002419487535612559827640164226549013009684828413213871414152333340836787939656649102349669204116875567702255090331605231009216558058430682838324944444592351039238880831416889365172884766210882921058705748609339625203963656689849832682467869610824773679835006435934070624100931299757671458019991234521803617507839296416786695375749453880685778804651110936174739143178063081597979788585149229283828136353637996178254070522365423678365214736112763180002991583254236032042199258045953537744525370320516189676176180854753215174992485204655541444459895122895404643900606953759893780569622476485000631524563294866070931953163159262602423069158630421709661704357289472313835624535161516690002276326515065206402407574271500285211720035689146448522737244082323732193762457383860866020576715371277977858502964822293382532881010254878563567266738456966344000533225755082757917092136681765264149667178280106076109691904856373877922126000880582256561874264620156614879940633647588541936643101440822085703510638582555449152412842162160805437920898988477640688110756962291202030819651912892746507935806240389430082811684811174603655817208960484100217502903256093718286777684830945917023273776396348458612736739876815352534271490014262410444179976742499062064089820018260720222936120697942521513925285977880615281543118055837062384681636417739638976477898083924279544585499473617190912281462320447914761729310063029431226144965661677283750077918488926078403597169724083767408142765058870625598877447625768929018129559125447385107782029815695938583768881715159040712083280170725718649454282020772436775037037990479002845338589406645093062111209269434714807897218786741209458804681705739244200651315305467688013883640307734481370026095671482802146263694756158060533850997301609143968036381771251580574256820158458200413470091189311542207678096550878380877298474348531160648518934770353092229296371636121940686695486865352750670482761412295206105902060389361244059125360582869203343620738909801604743389469992598890920272721183985443427405527677744712740310203086519705774653717202516805317258852901023014600920094393964341017169047505263802551232661007800434533079092048384450939781180225157147858214660164046173875562817765228330947641317036989686765456040773351619001347779380651877263853443680096134186879538630274539591277677599850870967544542985376741507002664948456604669063637355779828333538387398882155521213913897031972305801944032831490933933794872988686888727910876515849677977530157191129714682993501117706015994536641509221915529450006131901106707691783875014527264414997571653409913306687603398360292789818648317822127793236342603587575341405652009347469019351604523310910258052961317815761387181180476819522394253515465375633860371150187928829628202011215739184485206187835740930596784057485506914448007785820579906942832597426813319033633119388479994557646863521416949349549699844326071483277809336606244182298756500917149280900761842297027141052078485010325496590272221246453984333705942718304461893614701396024692593213274432278855111037646265976691245356741809027234897576527252706456078964303076519220589464240907852179490247719046136489322293990796873167501727853767166944840769617318105031882203075227553160142638234412413462856475480819404947805502462643017501182684188550769974856799021526824665542998513157601791709596924817506718715682795887099200753073768509507852276008316821747106269260410669194069645571964590044568438127318730928531176021614780217602027078258796491597571090568830804568728252678956834950456289983867602920027793103635790231411388615059508301394832950577878278012421196824964915470038413003518401496024157507975481099853710951576551293633615855605677624119574400300084969656550598117735953596936136109175463155289072513358523809924379713857798525137762205266341973773809214038358492829611648257133415208676352211686037980284936789939838671659018176957393999737915678239034913968539883844172282464939534817998679678234792684851769294789827716966648733908272130703535911150129344804284922428398551552408952634627777848095767398195068142357650541807879584981492452634271235729746596672549139740279522766463094904721123802574270379794102298453738163147804219970664663513670499658622921607982270676124921132582695773565212301671011093354790517016538563175271408136577683591220739222497585334302449642610658938284378703452944884216518556586706086104469138308432330675850884461065289130968945653774915495739740009135810754295859736556336293588841026390312779064726087498113577000935453366645084070912672797471336962468750962266729572859042697444818913887112496750107944330462866005817049799368165302142279093181863918533008951107386578478817766355985748774767898552951564320283074993626892218798154325117533695297795125918045553705793230941739832089668488326850160113864080931483365557169108212724520158328005553667161440886764863067917981905641604285850404970085693321929472289373368922753510261622771230328846923359577767869846325066829318150260224654175901915399484593015645286950663231204838844286933031243163702834525339756216140840156654964391996595931494017918791521348018617966322404753788412232984267827525793993691009029871495363248114453253963498937164263627091028295181049007696030247814856120615168853604959361147381655235363274829077226521322199585826143900132692262451738117174921079779714399776689979197601968919838411204874415633175657575349253289513032011950967420523055267484537050227649125212157375602587960693009342736854033966528138753812712315216053248182798497205153108440026163962427515692347472432831659676176060204232551576556351529893998594514737020531423364175943830422491788995323124105541415226574861589739554832599827486276132945248128334228929630311597145015532317378085882507159786220043946581050010098043264245867304974112671158176092530024717757840093072177490510316374186597959976493424158289871308668348473857355532367011881211384430134473641029074428892929825725940992176527953267086629206897923092710362448852963304246198645065985664217177278808907856866805806328439949047797362124809646704283363666505723569871632078673879875411916112747411211174197889812102485347169149865384141876665858884528370245356017928974827967074790625482021992400991193560753778855321091218663109502320491562125535861446575673800286893334407292393766298235278734191463951876485058827714479069669178929703190186463401375040010701740853521452636987955420270171778886284296329207020779043962331229951178921012053495901991656177606305864816874888791919892758844982912845882916266712564182396418597828789781710684996787188478540119113284285167873456382237823762882254844726139802876856589577292294555831439294504543736540356487123100835388934274285669042629933795262401729766871315195366931535555929433601267851193566806565826988297918899388746908047654952904617246768188369193044338957954201979638932349730610323597666228199800218606636737284435403945728328957174154333061107056327401412811633791433561683469738818609659368717379669806734286442517560313446413277193195362022718817602475360968145141041343451719261438818349536775663777842046906045341019604731679797088027081874473340320813211798985521417176565049983957437782489639276753056559985784435255652274488485033009733196924874755885600891506091923681546327604460227723499481065612360117616915228045224419821816009774258367658886867346277431961067753109150378292358779731162224554637317766991476371770073842445867979237282691473365290365368570570854533087803896461815447374637871989566489660689867428939783290002737201239129368773389428619306305525853485344836849119915461352197182555496934180711342276118932177279006273360479224819056667088823447641319048044923211600519870845795043065760021861429408187916306217674878698731947839618199349232320394676078160569373184145323102483785922650285145542462869871010331849156854757421394233695180840225532270922903342314200998240998153752996147072216930890639784442854385967135993426181911210548518753890126539474557288667660427025967435280159155904160035294985365768074092948729235695035845019133670867950226574185272799609892408251951329049333710135506057841388952203863031023195360179098021900955105160888861599275033806186210391820356130658406699668157728788127447904495656710970422472567267155648592728176241995049230597797449357551976330768222088498831839842150761309894501597185855138470996920336583552740390815604955934841299891307407707450588793525010583429290684091156949971064666207243113161104136979026015261898936772776146645875296846424474935109426359124695801902553341918221796220897741950423211757086590945188029762807380041678965588603731854497127884092451067526661934607747143348614774300816088409463278892912412144234010535886305676799491180635561928126959212098450046992637147456761852421679208405747306496917473065300645490729480788633758182818842998930264553873647612567391807436112117405102236129895019355081503690253466208070782362641732222146589858959740072582681836882181811046164314888416327155803464200476395548728519445973046530985148622887477419935603656881256388943954481538102223609267207201071039868189250916644394616071498999491652996603649783867485452421265970864423241482361273625570456516969564168186235180061297437560393586665955381942099924366155004523633207866121246052091984196272544772477241524451909219809214769366931916223341380164826365486833451560451627770154490138762577201089587015094003751745551354435962501281921006419002177463265069313269040136382120754311201017473271031590900247780862842806596698381492169182047274521526901715109888733607971819892541796681678049468699062423891139980832260228238326542890852782537220703082774951174558597054900470618702951100751024309397192518132502875133872502423821376618859576733789182834424988844952423299242541004870486407857377463646597293572673036190005509730536515266030622940385073164290937897643585068613062718895715928852457534713897142537182556697959880600175896793609795070185320534281768635889740726807868166467825816403542594332169248726097666474474729564375481197686570738778473049154302906551643428575256702233081612917887277032900326211329001505822616299763978508886438134642807367698273768088624908478581415640788522745646995199210315671346431241106034734121353895578269758970263421967023783152841349182200480004669614662074123463350809522568468957986925817830362703890371422765568068209405002961023713206903955837892946143517685472497133667661540745094922054303748633840766083712089047708004203143374893371508156711503917778012565116252683496205914546713941263208719871886788581993301372983004219049496263901466140305588848162411673738928878051975042123439278965261416622356429383444308519058270567199942195445378570920214873291119903549505744914867751632731418884944813804701154011326370235656500043556087892254627166546190332637982881848093791740427960087055267945432773591714685750552073944193531391777282147535922605708912191372382292971318657425318272441861732241757236808612036824427375572701627841926259022478449624433742264121061377653179814458279043414853926697697379051205521446773302787137208355126403602619725196216770464394606457342337251288658991558918835423680293798197180484153636490582341200402419937394975552365203962060119111486528656542008039141673644225893606067701109191992530331410357410615558319326986035247893100653448337462735842480293218001194401968107242752535134679391530475380408922855212754197372251629572901025973736171777198328374747915506869758743659384854710599133371159921652741688060513142091805354792376327264900789965286358481977448443540835610781041108655106623231864668438445300023846302874361680358714319524151912023855176811838133270983090920337344290869515136772907278385567578022334506574976925458411691619728431597419547406032414804141823655370315742877377032567168937185440895584155588037158196094981036463355160794206269100747528090913719237465792569501726717411687873284501243387367655034917634654582258870589678166832185351884613094822544228842550200132410802453339374695763297622408905393032741030445624951307549553200801523311517511816740866632724113603933485724899574020017077129144617762342342757981485889841362837845279370079474072682815860433202549737181587828169608494656187467566783727592725073841926086888360040606714374045145826561967250246438495528780858062542479089046157126589125781080243723144258163058460603258104784498685289782016493614211760244338398953184548789387200620506147970333792215586437613570528058319889143634223330239139939101913620682492897952246402188123959989232774078222887871542586356969241487679738108974688614273737685608780917094590501094938481455271759901434959475084067347249836889089086037099512538705306159049855794327179654193034571581886727205795095737901010477271546201914348135677989256051007233773283540534676789239806334011221175309608278965853720764916512939390644133908108828717952022659147572023614986900121736236010871206191384775305124146971189300591058994583344960304551259916535129014198125997048603827544668858902823705768497050222619521444027157505501961078660198313440117986771043325030961968590044500269663217503032428521627050904702366116035596110406159571491883494689458164833061932217838729574008951375256526471755402181371104101968213680547456366699354776469060867325712050377022233162163446337998208226252743390052511605551003306987290984099291559916924602608895577317267966275233974919714747292240445788678974334129669710483158898521947611692373623087611119144333619831389659136991952189818782780753311017330148310951668710199410520373445344446994809696710636599255028553853565870086288298906555410927202736410962021752096531001097591661829775652057289868876880995875731878419856273647082182731596873883832022215023032745051905747196152940755599868082482597172929601403393398665921017399069729319191204046667816003803213348389193296776469919767070932697451073099025299756410206723243251712186112385976296303117676486566415396031399997171104133932116520826245967175125113384118214758393970400307189271767675250022615831522790589768845507099296919862880972850450711968463975987568673826372720017324246120901556710834596117399994197939782205652995807677916328965030741954382379611555077137191416877389519476848123328826376884070253658678182806994525417810688146547971052604550406849670028317714278747986172263766079585141736805381776863252571729078470328891912861182620512695825664814916667445674222744137404912905709765854386349326653737660905368399175356462828507756502769838385584238716718509452375309171381074418191605099003336448071808890184219052687078890273061843015034126220390373076732357993520635126347343337631528293362711009694778787385649807441446090023015114259220721916519070180892257288079767183194966745672825850179634145648569168966444508787096984090608475512589804762800850258915350707467902869623338880780185604962993563703898736232352722071032555779085553358442242310755972253188825262458669277147839495940621736279470025594888984580561538183183201871102519834569173970389802533473326219745182311115555341264780548023471662705315396501115036188734102920854624204689243580341382736501650587531219042680564249647730168584935276796147658559406643740142572734821750922125189025180401856065798366964439517133865624940409058970448051067597922801856705491508722861236831483654280134517790259920116526786442447213099184509067141243706631052178484363235521345065004324465287065483938559919638729321568817257611053297298630457565991873236337323838462332432294531733693060809133818731852360938656402569615188597429571935945178880506505719198359184323796171465808382573148279044425824920319548645995829196122517439519565464685942510378254738855019251963897049473446122297195077556407296450999430194363766770077664794553755981812388602271588938394788025903498326407118381674613337306921843125785143138097636076725089779821849126283117696989098567214438449004986781736273346928743942927435760511291407485586048544969764841800595254576028039174012152426963610558671190879547513658913920517742160733514640715827692553094993484795630059839586295840626523636795873913280886761961580101702994163670187638310389051296585060556447768855248072828460628961565775790046207839583564087442491670716625078063797035602932203657969917354868780239216357492992413517328892096652757201916548214930628714050753982932493517922471938072064010302789794578092184666799958206136171125980708206222365171860307643177700406606943031780449931144172484825322685560949813143783584087566287758775717674524641650199897728883120005944940327080285726222522589345374375589900758906279675824448181037666767774547687603235102979889897504773730086213087942764956353782756475559267390118842149630232440364776786869151676661485059492877950373267312730627016848436310175249206627519955912713994549184110502677933276338607200094725392708873693138366011390518116211003443025026436626222360107452386431037124630945969311290766369890487174356426314484631887326034174941898766693900331535497484300875861235380873011983189554564775885292792263684346140257004147413446293450116436282396325197115980766724650180471340017213505172010317547470393120321755920385733854592840265488714528595414121549058490686169599220943252786137460159976809388527182935626083308962593057091075746982169271738622927468098182363947123771530272893172849135600382635104992676796588736834774401188323166356876757801659710019292175655984469228035114570151541237888789792140996947632586935836916675450942052764778117752583047904302378595300123497945796017757223484735499664366123815917621370724581132577701217819643495364541087938010344879700931746232742936229642425638424188508669778853317017815457782610638852676252921897279702010274766765119402436927092578420306814949493080373935463382211263193978196453652091123165349016317318233991046296302546184377965099949492703920994141711716087808174421841382794671187769537511432734364495769045774894601592815441589289711579865978191541427925741146405776105937759938751866256518003090693636650658013205925063008808026856205995948687794838162263454983689049159796107932828701386481725315831371033749552740712515795645007075144739115262089987941364728444202012791099955549427635993076585689530977115162123181486126965953440106650488336250755822287672617963322586534890320966869383242866569427149421736875051890375793446241295116959856004918703621519766795560004360286234959485290305793514668275386249237503862632212058531479978979756924215139205486791942437859384657531531769594348822009952706740793288053514580352512058119535417485555516174361240396733762322382399200487866319036237731219130867787106474590010482596622435690072972362547611572170297194036672971150062996323015953569151741286516016490276628437340567894912446255061480009991039592066215794541022549031581254017569758489805316826554881813645019400660890624354100238858991922271430493395723345114845068515903009612842565703083075347918737189851799321096877960249776803922242854476875498381556187529344043497969715305469073670888222199954723798509703544114091006348125679544315337996155666026116994516448744987277530323407311092577962370434943893887035822847412194635678058932045853867566988519534400022443350160424810685318009346901257872034130273975378202414651033674882359337059838109096785575239243969775301748191265197930007506111237335623192237236442630251968185648266228944913143187396766356288986384369292644009675275150260331679984289369910903275647277416355499165985852603185694798221218229083775124905892536302254655836911380673878138070724159513823254674808681899816407843225782248022876848163241795010698431825093048992933292021752788172428084648364304533259956726889257047899447368539925157106327384334445717943402462840148630617580448670197981141020030952311278241362741782570824088376742011716195644869875677963563426716571073975943900607080682668555226115234209592743560544718146685369042273066709780521930388809831095611183530057403813827634238312357365485677796169319790196662657023532381328674674547798148662487923562893202306625203446220109699579985409585428849838470446457327225979326764752114459374408207580945704600630933789948643300195280311205294318749064779458255710473793909662412342848392408416216086234006635282067523412290820280059113479457724640765309842931415486604001183786796957935974792571120287557704201149046993528289417110528634304525577833462950494762598980046656878111823738187540271190049818508100043631292194832906731371094646282303528407833393659355462240753110396104963171475060225094545428474763885910294048884839478713772140664555064887322678103303273114772754817575488497544421594512328456835098493228587467803757228504819821525161978791211453097829643260470453858437055794380449750124430244349011283128277479898602916525710236651811201174654413790294212195771545937406589709655638918569981051843082340697374491529187570864345209442222932840153214388552667169269357168711329984919659489346487965289752805579995285698218904416150857431150949957982247106017726274044097779497351723074700042767651348864085598286001516408889717910769956818836938561300850543940992560313863703715620000563395528178611588004896497330036457174879293734709211716776920048398769241085678992910799121684141668983212790515237219014882434095232234064699602401860237718993789314702366975376868443104461036282426675862608747781068654766981613156478902607946649824012320706875394670815279284444406508970376106478878137705333553619054868734630788668899553014367031627863301452953506969498320761733850063475160522033340540124216562576774797511480585997176089882463215523084090492083760751679355023603616969168078286470975329691399755256338009443878925409487521272372535044792819385209741765019377303811830463531322551800027978368721745681465808397400155000361073497819547246951069167165230343331173048330950349047669466423173707246578071892277735099264607638116205651163312698744033982872382309027348749945149711647812936502022849346153243032245242886318143995528963954184479994214633078677211817895920121153288883503594539635794428552232259895657596491790174260731004353573361250319556160681240144454849450947166742720216037504173229265658323448112817412326437926238511384287742782558571421548535487198569697830480691342626245896323354322213418210324902100795895885886247086776618910499426081980765449382193606525075485602617692845827505084251976851443084834537783085296813587401680323608363741467999069843098635364428623535987645058686496264170304015912180603574150220971878362281953655028509637338359715830552941062713617155935167015994047944617190639318543534438849953154000806195114053206158205524914748921534125211798086331277055449018592020956577752917241495244164403647205124098541199967588560102358080317396913221236903905090028664077578615147054526584293571679869577389502008660619591289729194860088820250829948061260776499439783742039453128626505216446781951388298012275059096141443473939795153985076959863573601052430415197203201961845294946576686875934753592977498040904876168379553804516173047858005328802480524076964636849748916407003074101710483231917563190968361849577900528916650124509336071222064972143548892297419544197802104441899736157824105222309637772364654087004458022235293075706100041249464449239735792614145485068661522285460464496985537681463465650163457093491784367986276402945401276525233609524640576822391883521715663467901684978086521768428753321380881941909350701646658190077148407384621550723469387889261124476237015666251086108524334878911079034866559954130495275838003192279930940443567458945396670607397466633659084040126395231514287388763436939867218517917464825016588284113959046523326044947748794680764025778716501031762900294956321765706338686337152469108549618353691713177158209009052001763057517225147402922980489603970544401334723011686534785489654304909827049162448635121810886219986623787499242311696916719588997980437669645950230274913752509809129079799948327004967252703768942805344106905780025728737113023636596737157903790594608927313377697285599378317688367036316030138794256363019919886177881423581984392718545435452372208446482396117060060027344671578261128578764889211508730380873927193922536782291450623399203007763538448966916493678985523406379057596319522538704992037468024926252856692071886040524803405917598722763789325608933006586883336593429717387726565399515307924114761819433075593475770471851235574324509159553778783760456570255910911728146411815770773082429971518650404003741092512438976952749326515187464297719039090564801158120111932504750472601037959829000765411446020795236989565414085426636533607073319066069453027480800820918185813565748322859616878436956331036157668245650833201014921807303327879064940602284692865806618409411308996994555013774895639408143193693743580027297801470433230606993003177422042389104700863195986237934958821564172354300365799804544499260705867616086816047464789231139478026499819180954700023456375976187081675250366810755457073675852538010709718083888112305670496770325887180360992976324723341135408052969165792802444836673036563611032688521593575833592058317369662847591804522321245896965244430494226326799176468616641540703201353937234975661405115645057635358339281542248606551428307932152943229023640562093038886592876381377381545939425284781765806546931642979246908398561228013034207225197660088660812094014864379447260584012497643318338097314319970445359900438036978433649801633625678874110713987061927031749394648287030366047059793962821047952704652736941496790742737684500774079118683409557836918997352901009947665385053195202846461084318304502735810332484146499695711299720130379046310585817568671271454370827661557715338159696225476937173764567715468098131804350926706170953893130036748845418110952472172952430382404894546701046721869527046427843485826827903848560443117725821951533842120674262946490676606707925788785568769129439822388884931828275480660331905546337901831048432062910718438423848987139290999357339983151898193083549050440970525036133983959853647518055371999007741030177929492268710419047346403741943282019127964502425053322429232580340226148470554271779243786738955868288380147955579023368233275401634715426428468002722548705295509415215180070549199128556264694186383158685018968377513682363639690872714216106690586662372006474620700922895254431955900358589316049519543102727188889299392601456132731701248321587393749813005386383929981255657963515270798648172876867940827185566411819465919806555958777021838476042230435572510370342248018175239493867704517382952885551676198400613696630256034923923803163492801085215149464656890527752147079727115539115939796212089360153370180782258030324203967137141575637679770977545729079621410839962214015954543607419983062107285370647618245091223913389385796172358745742362756342084818873889756354755901434230288625272437648773453301600651877675750500237262545565826874687912974345148923633646452337498967773401153409384022598943858129518686736386591461802378817417009390261780558866002452286012485053198922055512749240327711700930875222854855732035250428016540572192286053777936782403099690600674780966037735001456448867428168649397554983585361561400197753942991600465822951201808884907161964246259249931814721853777496513758344646205451792351932799119144614152932041824963083723375486173071591638001754017125183240659947148540879111615926019968979754613371177629386884942089279723827503157961291125689823849211646047157185738639593347830963328643600402997685703810066349204956466047682221101185387006174109002689443837904284184005934352189323029837726623217330099781734198882176214155079193149629853267604446190726455951088391275289600833959150213008416758950131521105594234729254759329195150530090886150299332702544621718577997252838622785836270574211197592312137919678331022072050185456604973081438521867109674714241150180571528764405479676934723781779153118241823558701422956271533122200381049149097981101968450122272477180369900670213183224354423253063196246796619515196167256311090778184049832428406559063840029921356597220073582988689126110292668387603275588541146935480389381502102053708802890568791179843758017792455111919187798499229655172555780650819295488245843808278594604058590941000555015423472160507628092193644159100905376742380578168987986994599773727235373552768980550521366966662464199521220995088028846318363456712164190932789659041345422057615957406724165290002423033875398247460042260918758485919816391565346308642379627241525072470989491659925541480800788957319964161115777469073444104412605903042483329908865982452917647040004661838799276816933977921586193997214079139260663887460318754787626583020026894215839750415458152005775593369310761776114251309446768096621109338063136458647897394024469020829787344144652625545831150111618537776803154436974820545022763105247313166074066144152279003355932465056704784931392925919239751147249457667068639673049718750087196614248690902225478443157989503508236251775613106960274544819864047126777566798623503943988447534420169834946001559922626561851794804117067862650479809637672845860747215021213868209518508515182164486376340351371757421033112875151772085436762187265652722087520664067237947656146216781721984264293370215985399776870254107479133780232631385219886142978173829828078069226668830183943553671043511683412887389226536574637095784418274308197123501517467980834131279544245529427574054586091405681091082921978065952766574459785511749302391185487127385164122726510178304365353819621667150837458984278565054467361832294407592643781319402789734706488311829009439070247459650507722089143924536482347613460632465952243234138029463928235396145635519998740556442515092857146394817989249036919401931641153732782206436199659471237900407394733268192552058764618558980943846181438838279385564620401792126637951533643086232494688614914024775550567978233409318589885456514968838207847857028488136363184434067150453477328512932493654769031815367763231971958726792125088484820246902468812735668808818558725711410859954574855690723095017770663610669731017314346003326164883862558226387975381188395154005370541661842669851360757849897979913894775525790154911844073222197113327376114870711805590028731995369863345885109971613584150110909446553489432945262176077841407698253334272854500306012709139327942409956521130134770558588635794673465373100958839984597248185307733294872458467251081307056945180594212145456645108187527877052514323645083044840770514419340201438882085074468505677718174845232014558454457490414858917562057610937286013959303044880696827651186059285831081406371361776351821665996901820243590931295316014751312018443457920574293296605405903762193032404350455529594677455990957140128206346502613187895713379821759356542572408305642393236462260612601141576762039504498987618910344808366627571940331482670918688972902713245805531106868601083512602615252744695516364347727321081724258959906521026395917724131735494250502723705622354412788529518042648286317712230144159537423765903836567234963982711986844589312195499571448335249805456487674913789696083934341143580790815802986103269488552285430720654872113828042905926050032889679514919998956793592520642437363666008845923084846460121625896060387664574927807763792132325628416942422759479657847218188123591763547025793142506467220373708215109813757994929493393389391054364314789360157079940201894122796319615038457661765065544993694620662611447925009801638271129850708469610147199336898410439296104452805792553392251192277972643496359693843719787835314792027825290008521197863869267140768435038646318224172275523011577619119995230086760327117676394707384476456581300626653638951937167624577082294958913332320659829658148928787745686613597896835896115577904782965115334164718356387185411559374558629737189474727155946825941474984750815290977527585077325562227324200516126558620275394400009852795339974208238465628989158130866142189902619787464253323117458147612083391893187527718274789324510570007005051888924217578950672263353556117887160827192486823786671869217114954548231994872343720964159931956967190606392163826375081643852820761406865568704855004999922956299888826668536022655465899896086711553166157235381607207997711939062840369356962939007742521771570486184706427227318248641606606430988679919644466593943551021310957873967871267659974577634701024485792142433376640574703107466201429958493502457355518203414275200549555395285678833145036451105757720538035466915025246813395077872132584466223505320502251789952648998946046767557737028726821970225587556735848557351830498481701318595562617136089000386484728643956344668663839850063842679303615523051938257974565956143126264524679166296961939785999284013974422951430443537524917977633441655935309535493517819934076841853388574509200770402410884569781399237003933790404258180548005617970622857117356457640225761336219161643017203958174746079450434200666003092257781499180759253921706648789756698265341973721062694269178826123364316644430835139046969828625361417393973187614782351444301481181736686884101661065458790559629558186046805662363238792644854282696941718349782259494414486168187948460401573779675882245228712604826616277151854724517662165691483292308310504487419308595597975985358496456917964545157572072674853132761414864444033186112707445876603374139992054427412620053197983540321555533511268747347825459289910457504345688848762031231523843788529071508816469569566114601873049293091279015057273946271571370929573550655650229009069036888146329544317636014206420040108046089144172173572276715596601272355559479070123865644863118376183784236719918325422865373677316967067431707598899912906575314986893891318717832001472139610501045186641495485143894174966550367256797930324013429767917741824920238442459131843301994622723087815051313956475674085462893527337974426662387030946127084490412078310375568090529362290597567836503385179270653604302242809009588182040481113799179842738653468297859902132624269362902731640715242594162147741009547719345174171402235597922375439091566728075586673901814783097029075899816090002511344777309424869040750473821573087405182286862460493169995750815925219056241736747303136482732368801850197676809152741584728535896369031071290777244142228912633626393839796755955124413437036877219929308384899834592535915209110736206450810398089770309992751946181271194189246218267008346105267147860138872983040930596883004358552006058575589496340052445582165507042818756829714925336843376803699176691351476458570748397588413570608971271552779543000361567256500718084050461639530293621461233505737116634888328103000493251270266159746819326731482265617586330607006565279713878170303151278430599647894562239204660998338713981108340103308679920420870033669463596561601557902636402539341381424246547416876931707821367077032911903661652966697064358452356718181966659621472749986472415005505854151802555667347382389574272652109222468027458984373209927060925737312100106974960200858684212684004990900282170946692328275936555041006100651916541845709687917223207494336943877693413269041550615313056255283611022076768425667344478970390727521715336546612503315659875846339596874871323193979633408784517288485553160146743177738747959557871592410799641022157423341674103670524533356183436666084049843495553905216376423827587498821094498181500882057219503517379138218949166348889920452902366089315702475146563983344010517584503180135178950371422957712987841043117320322764514102769104088398371474341408558560627690421838820518271704140128418977855627771006933114714747163293515311520492909857717234463492425568738505153444332909320921715743736952202568004760759352483961266438045485734721354321201682134730862808377194073653602969479325371748069390582888791205123005392262175872524763709872189624152023950515978944758248499974953881067157816070507131414106479705955642404637339660529136136113285422534122984991906190665615887716402027769831157965421097042409329930331430763243236625222943127922474716358089298109974167531074096309611550876691450477444642621074790001820757182972531777400449506077977685765781413239895479039203050576417159803580678334347878539092580499054853545646565045597032669713120876657777870116259034089491567751270628463148190515030455636124943552945782686708394872075984668918500864998918585583495487992377440320192055595681674145298626547520787883316922087738344587929752634428692000646549537171566458168232906412069397254463628785193346357094486951365811602607253689189662152204185260683373955912344691696025182306736529645876125826013525725263741741150447373374941760041859998786497009664717237844346871468383821295981810478707472816180600119114212968363623309885583167244909059366762407538204811929885492780861423830226262424470677065079796827800002150826603275008210665549655533640715255992318397911212992038311257082990452982844315969423644287472535096052946092677151729280255233402000430983541372100916502451539877737416369636647687147729634574613782291707731402807945918282410496620032541210981892056811251932966983418755997144788706715840370427948608533928892751191527066356164794145029864141378419536780676282686553109780752267681291529702389590049552987721405721871304336528184771223321904792921066011860859727610610911324296426270222329868837956574563907657505084320777384974034297686479733227681015195222338315800499666253080883012309523352111297774877290134011671673043348849936798372676135607235168396082172700306153969216068741478834962137041047050027194530290924443239111206651814282926921329351932005481285002142447895323574414596816828248028462770309541062094035099820025009110987660498024369364548713716828592131366476734523486276645906371443730445247036679152138511817557591336232839171032540118199648211876885564141047155351753277789458672920617670920847906647328382246636541023570177424681738860572780173701221275936484451399648943924354907000618522109996044494838424524480934204414087170135226165893405501163198780675200751459586858678557006442767410356284681326079209830498377179974817367051825745871880184417834563994103671651528882467698015622061104814796813644730959871284121952558928437961508360017722349057139440558894966057236260256388906748228081497733814670491955647395401456915561531747406767386699557738302253087674849440211933643721964174265910361141193579771977747476288067736287698124211896655046617713464585341740211053937917170479385136730325767798886192056363875604483789351080241290503659573882282629759909196858297956498022756595489159669757259963234834172678216035442079993347394372735686903635315496110716336480948490118883476945628288701849257021629398188875018980176982996153133479839932013471278584763478086469557270725505909172333383552122026686333953598424364985015854823072729966108193241311701381748919733354939267667391954699739311552669263168379363552054910486474222782673936111429541564236176261826286126127040556177276554544870697121227683826321843870574092196095896038867653348058196227206354789273959575953910174884514975840606174611614852908382515793299618387838728372998611528887530947218934654779507851315031045142497879622988357776644883816406441841929050228811480474473038595597975360984692950807551136917449137069056024558690169173083502535630768330034949252377478701725087454549944752067434708894666604456675352629023262535460081595389527099689999272576536196440991227864292058008385730958734001967830266588180235452185883409414041350460500051175664941744583781748994626367262286789304357466034267948804576891280390278022828963363398008105071574476976368244449226775783195714806530945019905445364266041884867552971124922970999173024012161325038123972198489621646971772866225202986650447287286699583147918969541802192547260806144481368813574931448008281445666515937433231121160461663587352967558052672562633488397984291150650469136505472913135917615016668380081874650281077915838426350504593397675022302707498207638748071430664631260647649200974347838011035989237957470184203600025055269553370556826388717603832035013435266084637704193563728156551044470066731722878945449556921771439421800520299970380826629453714400171918753368917196162580108540318169885016190244677950714330589110843133634390294992687203693419038179041287923211197123530522669527561398034187988492291330213002437936685742953205986421872990233018948093855056610131401061065856055831346823594459007547500305414857492803420540777705892346187484663399777614513529589154532877196513793578203116327285746853109653790561446760832791344479997974655370253005896531097124523322784301037727962286914441668540286185969683660122645439034880155754053930422091984745285253646994991018054513201304986072092987789581329348723928055962248431679111167801791893291264861689737802091320933238839589556596095069263042432183032853431981470787361775657881959794636596478362925397961410804126072886658076038514321321466558913988769211930694761838084992319217963172953096897819728268458208420410467410845963290449415649528230600698265910247610216004681049322191644703867916792773162754238882537676636889038534495519629137680041184728166148745826053253230468736210165333545109686312249556904050093404211330121794303900349597085297855342828094030831313281826148130930506679767470726343684032847395268723242197321840700259122739760132655548364020256747919438407345686611030991560548493326592554752025557424975868387623448653025192288982606256670374478357231377027125854237518100468789838250418610701781935310970911593275944934508811552952431654995002229112069322541677741000164929706797688229531273712341877032542916170864921131318967840288431595358040119277042314147549754550172284004439287806235822261411541336977645383524312247283279260879994130082803577321793470992129942081627086558085546558936771840820427772222483064586536004559831390628869294881269935933656474838827676259670518179932677729397965823745006556328125726597358303572494289289107321958596534744289973912721650287005152766497291686115850982330196647346572244601070008365618871944066765291623132019260910648557713673193086597310250990336498410248488831263482753283342786349668152461711397790559738841284299546637507515273697330562408767289613778971901254132264890470975497052035055371595668850686472246185332246953598245240503431949320167971972784682867422791429145832782846226593927078165034489828639705613993506750236152877338175671490516427788425575605224644766040962280336821380442797195838016546616091661339072294183342688281879109861280308910880903925656775409792446647052853514655674086670707197738157544417895062218136339508278103799771884180117230458858808146884336347565903026792178071552783450695910353484554859234081511869161103048522018693726859914030090836930630717341149331681323173526615388022223662398926651273134199462902227929782200288553668782634958710654680456601092723295034513098731042102246992938397448597495449332532599416494463602460461695612615203369202952663124730337601259364651189805768481989749126358405514223810895879978775774411223503734110578750335066608685337701792407862589361130403051652517736842900419090909038791866753117843769390795707849385541459149268223956271674860789293873363827521841640215519132563112525877716011164483610316459989910951828269246343837246033149584118943263622884702335488253750179430166131871205244555316607910699306424022202536333823156242021530975070636266693650346794282175621228970473943780442305017375077411923566268701815855712716096548810380159009274795106309707321937032121151618707508112549961041636231850015503543832184427563326242019006683173372773329989432894516229281688725872313446001731880205315052746518149510933659907895793659580247013394301420303963850348414483029283608240595117311625270866215515584070426645223187094410972580159823531662564638550090170389363748406459445365388161865959418476868184842371611159626122042819095420218135567259062840615869785300340953624688352889026301828364936296150431532460344716083450730946665006154246510303735019844124498905980477973675100263043884954874096213274321466019115030137957747946925796658768550561307761474768404702251927864004268879520098063682773690017040233084149505527892076389079699900329380270021768221506899818618899466541177465587985083620151482157372819563173172640479129903143496262086569517795052118979653698564315927602148959857435643882018753165088271238446100389402028398476447891639945432410413523203719874975290706607871876954757894748661206889047419306687391145162424270048053922381465372138360288321815600115642160155592774027964310024513051339997868667540785784791244941796988821859794688894470966248670427702037416470359905807434027867381983243320685528056389024135909374461934339580526208236715142302726389990565071626098426074117094569253221530483090032116469429497155384779461026869326604398670259133872313727517539093250477097011318175515896599761802848132184335131314387828443142046783588026633974290178190127835070741518358905560197951347478732617355134433933462028684922026029554136760194108837343501387918786234056513540422440147143317000752179212025314382501214381690236404589887737428177799164185910289054986321388318230235904841720834704842663092949446280361677250323385453554096668464211096362168477187154032427893266082411989330811915511030528472564705493331206935930480025769155557722978796397242305390207677553538839788624869942605774592472079140141272458783409934504273356412273508504862412058623712684558968323399697591409083626662398314145957625307737472434026914601650880277414486874718962086568499992280270774435387970355596365992160065629381261754209772469527302295196478586752784311637942097819493903283513442750917744917844319200213722833557499727177873697390791848634509971500848393776951451227644886034052315445963560851488095841870835164983467964649375033239854115923576263521865448834235787713491302200888321482497882167852796146749164608156639225845689245917512067603914364986768052188924209781450123825348337289016741951051857367962959889732645543575266999760636329828921654564326520159599935148897850927085148271767837186546061945951076101562478233917343760531222979028942100097317570434298408826627989952079539128913118081773464021567845908895468645821810830858723270686752529329371073914012873224702888701817653405805167096037739483216868805185374996533319540251615963789808039475198353108497167498911760651865681570748262456945404928511934684394637921054720573629264945440881248546486505177912298186751206950602370498707526675141396657215158554059494873066135224938565224571559188209962566548168415454977165732906155123986101104887739263219785946290901668800227096579661138676157412644033563980238093431304774262453117733659356828532933695785624179091073338814258126558971366231279641800272920926866938301129662467885003525312880694660698658381619381590248543278741314489897396737943506378060281785433095227809541290697307054050364243111006391360636351503178171294883023082253965562088019435322105515096838223095230556139149110522067953540837759626621109834946289842517147391283309260842172070695007164829926910854342317800964856059168566325151256772662930855700472710284944451826231108947717182330040014561757095054198606777963788500227418266718122810752592980420542463815444630641160114703176791861151792918702640349537566629321092404043753608286439533655243699684965013697094967612042603663018529894816845516076954201405609210532865222579015818505719565746651796637293827647384432063449319470740635863422586350944408536504118023463563524921414770626295041108896145268501848306592800668466258512397650323363663362794652239947375898313043327895208405150804453981489211071622532172248228674331454794185881098158323001831422116163977456047517799778399091231657010701745870699216446703503511692194974938129379078290646990691310967083030956256825687243118386422293178843772536267897576502900298904396138219265632041979402477543641077787465132791641965821474048264149229776072998538232794363705369544540608516771800346968966262629641214146675600462756728141743191101193478805230146138275174215254158420316878245817950205105898043719925445458698685101863906949997473266151844180740968973542876364008105043666886524029157421078747372645537654866223348686088803766007038789341142908498288965987798332954021126342023502027254376985648697677361216956360441669993472704814263461430710876816205879815824681643172572807483602967934962388291555140770680135188753188883828480436980638751113182248525447975151149406119815142748928195527500143141542736342761173345154414466500568349543017809588211654011681184279328155610039427061985779744666786341664939986874973734865898451592381226520900557195985630973141499136485187092969533575345550447731740286118632545314364467954616260975804360797261031184826192522565313095972392584245975926176443737720312834988064131824113867309696097648038986473670538859150491071516504813294896075585290651540090226866265863086957086702251482347543437641697708848222184750963513342079660145678437135186825963429709490299895716880605331035250432414586473684305162564944804891363567531825455238828207203700886744418433377058036431014483702242385530775604819540483063935817823554799631928330217210508334736756538413102745768323337819428809191319605816033113242273791719212399941774987728817406402841649231344849589166133167090896386005716756017191092186498051501205013842039743474956520575142841760677118621741631204450793900395542939256274350630390924374614240342228441095100658680203626210609106476658289929768230044665048030436833598730638118074872063687199392226822465116066014919167876394151782569472453900351866074924318723824144929360536126960653182354173544430195745292772865464514168245837984395224285304280939781509657134655423809394548896931950980324597274136037475107977024072588171691736124080881068166369251852859056413599788246408971890081927748860198855926752152582874177987780934239194196284190837009357818606656144210164041583145110985912766721854697704925621570127643751187139937269307666509656387684979066667422215748195663070864284472468822722831035293598449608975327049094944892697441624331633639741833944083680014799332627974863007921220413804280092450254372309733607246642585052716630541807458329007332644748659991465286154769032137348244252897266291522214413575223685076893206120172622764388308046378600861978143394009552140503071548039207953501311119316652645511541348291417284968481243132736224679320076071811933921167784569314620456673197438026742750027395326306783431606765527259273779702695004772934380349399963347369765789289590551963403822492623973642615741857465779237865184129052452531819971985729851869997954445628130982963178723340684137814537971190494146466014161584111040727252980169721728284381438307433692892988839085730603534577499074782155037333166406133912240722641675799433217777557393871279887703631443009450813567117375395265185239733555449424226808924077660240567936377802457271057091765336896085387697857253612488397115143416276932645993083600752770246336916578569682499698351712697855270240748650464843507596391789681213659046226503053160446881445258398142533055472857182866654828838695475615494770510096613446281860503274912419800309856083960342363310567928758162599563770573424491363082170844589345934290240537020554052557766119914833658840613021502265529424718746454175465640354896237395232594881587478449073536771488985658007949851167006631644863121041521980642352783376179547622840435644250969385062174854355772292974416159283231943707066425263313676484000694227642464141811064181849993076010254805805001254688582707961358491214784515874345729945685063631625736485763529084540101391797351904660066484538736869520367054575994353535260116620476504161872969824043432763551112259069799463362753120439476656205157725702366727648551268029236247750114668274843856998267887816633498322300622843160131165215180594359089472954499967993961730871449085947938230655600741035467822985036997871597244045033980512021241629525567265427459317508464672570613638946350381146264753125807924632996965345740159931340432188058552143241444943841628808840845705074992557575855337810866687397168232840915655450558853634965007148982834329970403822086193669819705346650216728921567983941550456065278641348953138598189402288787000959081532660379162191270940151528359251777845492167549219933515378808348799461692118655244649538496892543413360009868036082520754175638681634332011084158608435419067170847945739743373055731773049493177847620081172590630897637238201069164541394522383805431666222347087276755927077903651398716431161360670329189975431531653250382588308203306293667936585402105527478953632581684276439994655010810396155170628759594687338658893872326668924938248557154471002275951627338229556918754053639214145536181508403798841489583570613342107374525289128507790268967591152854038208388878262141555631893927424061074176695026474593303499571896485979238091268412391209717956799901976708587731453225099491885280137295934480138798616281212411041601566116473154431428705270063739574924954686946912965520332067133114106663429210549387787575818749252220345823316784388433720040323267264473865988999803964479515287337414903907138349479741541113070678077622050238052628139406408373680586473469172849308368303051855957979559596637308056546790360649737075337447226002820957776982303902880223157351791438681990955696785896531413937601469794054503958686622851304389518978096801769979114291361671859383195036194199907563132332036702787001338063106471012482450662468383373877695851312098564821874241076224382337175638248520281679130775350491625862795163397536470049997865913952481115857955832345849817137291542662006708513174484417566870046098747974007926327128891568172482073939180028965550605033209730485154598993995437672449236350957922381035888915870634143767434203065034224281205474576284189682287603304343863214295253396036360939008586621633504090573464324597855056760904621905423287113819302486711860076539831433195709901865106901726285462781852282857669439226206753013201502340061555697376404733286141784070684841479275778554615330877945517037527133156830818346007096825696980502755149973033903308103276450274045260866043351019506966977240899346066128132031844944063981057742683763146195448273319479316611389808515470287198928481820370495946644036148440728242538405023727290855082822845000364701189853267216533728304259622568259159811531832500887811326111875934597060416105300496612368891775655600751496925955562674118751875544965663719600093454397014722272169925968425048759852105956373333590223155635769749840399909655520701581862053458735563410999014127968389591161936120145639161499851326200855741342265841665672042565135377411763216332550633342814642333427180377065529515254739702855392258009662163654873615251425203388739537353332363258978432989543622091503057176076035504146016644580665428670417214538782537459187354766217447896605920561685212668974474353286597320116138021248138473498334166606324996024819557027462263919609906400684747596334732525588399865513733724727944334978300816162689673302339727389457567743849862015967575419095017390758624202224059224571329391082055602350255128742605447087294745547013103362629730051094384073339222437715760744246162641318912647017585022994108714480863217597798188259236046576528185773438524994469503793348306378724900406175565667897436914771419828310222907718010836266313016596436154211119440477528497324710111952815113792725016818670150815394829119950861378486135105941867155913006137444255376981109714955531307517477466878580386916930383766525292419371073671748671249521989434906966549016613359616593432825848047552787753143009503059812827374407807270907271807388006837816826692669410535043316183406553165090454777281282528168599988633954481320356241927401746278250795436642488797350275855324788668163812014114320468511086875066865197552615970718959823232092776996058349037854752299151199687435218952654567803835319463508924779076717512796150317541785172354367253452429126167741533054436822137738687244669625546372022836714262668101312693750412789940405026482480180096042949536891799391215611182641491265115336625444137610529926956972459182086905897790664981128425401485232538501354354581374604511425568293832666732367447236001253468876239565451816866375753988912410509576585313386387708584616990984550460417208619840204623379455130404272988628732300869889099078097834423486521903232374818906213715856173651839729457629770326895278129224940010393567939193885793346224227082232176859266809699687711802126041639745039099864604338179090693438918272776574372505218498101166390458456982342736882656618740515756525943541875058243048564302170758001324277777065818749480537421537173837321510305338950124339748888759335405653791975878772728070107158962110301816957869927341308006218398284080036214040355911947425434290176824723584386238381912963505334812230185581103574105635694241793114026191058333589672730794320649850057551615533709650674402847949876215299024035321970962275102936164859261079685322132185085506736191620620671300779392409866069537058729368767359183627695844898665895599107239465967419150658023196654707193118746623509524602075590553377162786752704836936520818694636413577462449544995690984973921514289082395667415399253775224858705585172136271884611685971642283430623603354067940601064890489681699288687210791541323011241952883708757263700371531617357455352144624363804731374974235399547154775551011742721456376813939213791725460525796601123183615369109104706917782584143762287971682208968416957070241095468422369256345920695620575591935073590297560101018491391452058693158319164287726149918949790977979494200945821214577786005269584351971361406050454721722433438032022077466697750589681464894525584734505872225305449942534822512319014751967334168938243242003521222618803742021366335874495401227307760249254257153470866241937850077258004193871900205239131134550942660602097636173251621430859193417161143748572813839106307670018222652860638796798277354243250681205769760956884280624224907819959230412634673494535542729266041780504136423935922798639719595649641517217072496333357203474518118783607029415030941855313180757840714668813898437000763989118366325191283063797147929137179251229506505752729423257315588259449837187630386573239676788856647351387860547492291908829367047263719148437115717471024698874155181112195705855194113412087793774307473930439621790691924242960281196830251946479243830631397896764307385697526250729911787193889672641982093000819059434113648776869196776573452003276672988161796684676053097126286609226515628232672710743354376216981054481419913624827513072859633732962157945400953411310598872691328967649680608705782067784893403704991055382429306844440075505077169557249989909970835556856721433133016178159400311157951940975583167834434146215703308215869104589390041255659060830511736433702512559083347267409868734676871307791939557503260770320066101647435106824138725464258276602006699580581260045131180950687878331779198410249129448260556928770697106431254172461486649430085035943168226442867405787081667100080669246947575439967186262196710412952746143348413474097061047394924021475970373677538007422560374420020055650379045862460574328427916171075005571588639401107134057212355379603400093367884971752199687492414187520369750376819536580575861222701245871196378096225885782218753574425961723306391663631605399432827541608492456741165274353506358383323699194578834556454763271351187008671236554542418427616933380890955029975313818790864716981531886505124989895819098389877100887095071707940681333975982453521129129004190513755572815830398019898376893311136863364953005843465344387658502045568140740816238501346271907633708166982696763390030267811280804908699118339505052623380738400605149873017485304974895002140575166608189052633890747355255126025678752555299223929713200313854329159818518889457748434989303196339944934939477757805114225592032897812852742110549350261406861391801831985609216652515188908883252651316099292205438069571859755464583488931883997919722310734037685574383278084442892184355759188978660625356462045774841940592744309908112516424375653194563676140384657255722713911638783354915864304782439211123130833323361169343935555295918003904774409405150374081068926071864924068768994121985995386368513898473953010437918294665246149711639389409285712233029621749158860148314594402908623704542534291124699432174514089787680016484806154823484649646426369795490058935921277345287033482895728357951898301211554026367247254905732250625435459909034607063230370815811161304366025848220292046748246426647504878389450083873670581328469768174724250167547305141152558390819824433284008996418953023543474187851555684787721975504115790934148472501978405940556033127399462466985082345469961043053090148018141323587241138805849362496300673372180923396929080520613791358072734911656138383203824309541596957751294591395902082631041898185903786883069415635206592966492128599038311365418739501003518182998894320569868037130376656941600157572158280839406101859687587559445247436238626810947923177945764746170992579791498605988312012518876543453669948304343884604652949718906655514350772225000099473812602718544116500209918888791723933656429913042754902742681751950554517618242786426842923557198358556149796971387581744582163278367336070005566800727232110076719293417770772950925405171829441554177128221531471495121260650139085018925400154938783354941619079778698150993389920800178585502130213691531939254558234388120923695634061559546829153535140516901292788505539567036698412475519235071952894023435609055715113294147835282144311688168871842549427778621861782582760114577503659363863628903374101307063273885645216863829332406983084297102500901849798778343075689136970509938215729311514506191647899046639520011591005486879278991879457321152078603428422297160006862867163923401563723612384323858836727635758842894478366818414150797134184991515595372910536932476462974356626430720265430975844286471696682709006962160716818296614380465245024381464406355837046776127563346459228943751999117877548642679380508142770354980911610536752514727564931072017869033688590595160639949741159642993324677855373770577785517897772320446361253778201437587952967213512911614160053756657849824256510293786097361615051594492802803875541807894199037206044799410748098135123215008571205087878043629111617117174574645161450507607294208111713541975702254142649909951289348495098867300670033258195932763508431489380733467525034412662156338165403980887611133149126033339028500608082176056300042348362470525729833516759349826686828855272515981458141957469430456032445287896578473337390646993706160379470460774387076770610266206542245517586927209389636862171204890049319877983251206973228305300949803655524246857379738777906317406542171134935512232069853300718898589426758856732408600436810982939064680474803519184836700464601454329369234886414549733298204915239830039571648085967646408224173583112152515074650047945442037716266742123031855986069020014005121670925446359627542369175250181680345711300885743583302303555775604516121403651745462474085497401165772036543118489912586726613959146672336400688721817691527250313492642715891913725567086110443311675785388482121038885427961749696561110098408067037163250815206319683783970565705524916431865497062621519439331633708239915147098667673840534905388861816585996063088597439003774006723676747746718041524806077119650573436872736050426376786267959983549743808422123492215902874075740713280404564357635380227473779379789006989714455537572524854640694022122411514431629390305525907760167073841608611400336664703603556311098814702665280421284850639102267765370711893370222570651848288152335058533165350391250175816823654054594042854734873583763823143438512657882180459617209644388567442256935245219337254859298562192728077710111162441188105283126834292729505950877210627109760984780610102879355050241557246370194073120168084845339661878809906142603193010685133688122081768126882010740754196910993109066514772633041523583583479834912840905197985394725848693022000461055419002646665124683048091908808705338896542192177135690677860177502499104044405582106331862676882985369234159317674755034590839851286603144796129550362841324465334711686587154662262606007688945219436688711078517024130315559329343030555969514401448508687862596533240133729290977733401549574173367927271753731547423825961396168780129471437285489263614749714978071121560032707145179204373076676308357944665752466802036521177814545552773158668611540886755309039831700125387339191535610960605929022088118852594344402178552866132600007658435082689400026299264332668128907496877661482003305340048834335570998783364893937559559176853687177142481669757990751299939363723356172721480510458957693502511291280065157473051338977894706193255469838771738982508508242276414021404174867994299826003928179561715572374129943318651318100670991484628341640333372316056479992266907639060570420181214628269195738368612038714763140654351540852570512085067981685421315449107009826290869793094667284230206078991483083615811546285893251524354946350468757176966400205816651016681142602042069066643287926522267777081274668067987583965244006851211153941473001925775785330985471122856069580744360494279896153474328923639566871851747297421524840348693713654311165046878577643372904413704745166684373585208480101111586598630773908139413717845816405905183897310468982588610306286494640320476427773054207915166625362005420129921807550981188214785706403286480556461618027818696198324732702263833331996657584576532036085109710176735112074464910082382549518189726613624406602310113928591949147977689566927768686576583274694829416225689885098415763779858730076326154753265899961597360121296812389433135462394086228909485852382730687207096677138156704028088893816234033235562500775832382568738209665284521314499435542827206571174095002669146818500084035523490208026118336590885443806898110432518877894186164959298255281941432792886854691947547995935229642103117615457758660343614074260862637869925987008021286076802126622130383117031607545843631601905293654987686915628041994273896600952362795092214322414843386629951037685629817220459376724949041106634611764772235449925835702659534536407117662637735379399369418430766120666192846413839022318260935853960679158729900617693636182699986875990604402986851997774940255721506803280571680068063917851290913928190185682566193107096713049911499351070182939131880849197944916228537480538362217297170315549590078225703206538499778976352466973481852506402533000008445588721558347762802985716201275014934212273586509780611230442917391048238050357193831066380396276064622258238391764745849216248750713701286807497978963379605313947150635206283136389943304583249510722984240371461813450786047346731079754275683363126947340501590827745422226617764548321390939068046027935286989781339049730025192647079218931664241753320362987370456223881580662308799822749472128016320115968732382865726428030659797078174510769357325989097187266273650571002079184282053995045228391384184723128349659966701403005318241863160015973065500252494201704271091199555617972791664590554788778935284695333292107555810617903481411198374986863286312816918430908014166671810657827476939278366785620079884402445202028814930834049113654371524603899468393603793500152866613659528283486000945296687490436474635661666587011830706606524565753403822425042756810285195640041270770374371533970656766762731329035016919974558261313475037663849577030412038121601816973784888774884811205276802859555444372281616610297109657560827298320503332236482376794889610218546450373360376081695807619262929937989033884269962597031253461755176923160338326582117599002480902422628549840101145329252418138081354296422725850930625897914772295581644221626757335070070952965914361167720390643578257912932971212330966867639070863472410610361479843886172003410573547730417602314435154763631673877514934102296601644542949348433879539044984870643152609292315769104164750252527280195224401390807452581282004553964307543514713129056289011105735809095382014942311255220422853693564944919481306894813849288363842128784971773522399024430348081030796588523042997798073538423740186050959271717473574189096198562891730690567736489740476678067606334873122399481559556425300282183203421687908136947075330016034733442702416546636837743901912777594955400704295215509715503605970035790603394618211409075814197236018774937075129209202672475941695297765331207735277941677475826665897426271899079435208375388064285082860005589335604329559542893652326390589099294119541273529691772554487001934438206840677739755213191903055284353441745252654407915041569818075663335905399429841104557549983602866381759001279308006886356080198759913922660333926701912872766473757838495713797181147495618977436102037814081803241850549774748489676679892410924066568645384925952616830006448560901178378853096541059515311259634082941306720710481877432357292122125465382161641693396476016332024423192194673443989567085062180558765776107786631184275112021469409311220938030920919947968796370048230882150889103469190237305851618901175009723787344257689778202458683069857412092245483506234961459073481430470891291099926040041654021159304847729519765632010804770277981037930837822483311885839114436279514692781441514877912210915445878813764089662673791210677277092659442421914508054821641524305136359875160744247091933645395526893023393421777558159863653255347292995281485643173893570860401210245492432742308583139890025735789012025306162020999680341774320630115913226591854087579446501366661287851899626267409896223820561107588289069465736698611742966644827293769134508873767774568013119198167863863447204573008910901431919138152805619513793445385143444556321215162745560877226570335090441852712640265366224107363627225121645629741736572389070480893828330582229077850355448430000812787950882406659628925323747777996336086411332701896190280358322209281229758393016601307369992292871058384655892481043080369166614492449666554496557298160461768430987365125735479394238415589006879686853837813049649918989162752284377950930541536032425472010794962195255894140611671700310905292243563352048450352726079662737255310495056379462525939640349353449450985401882381356920581590516198023379856233645632102406853043944740119269157850286668761781837042319190097622923695866697288058284992943918932057972809211177952220020875296008332577099840795986486247186147026086506613654053749701448516961828426632825836085002055806951775380956099698332560392086666964924702035382254811542628966115764192955620872093494849831706475140260251873322087049817517609376999824365641814382312474838057065653382621314833110800320537964661929174027222818936236295098293479565237599601606169561855978564745390277479007383603165411452856544688262145046174213270485881835478607061517499183498532356548352799230800869768999189799348960318864426790173405875956685688340388815485225221821824847935988633399701730485746396252565057426649790246287751558538935514835454435792681779219106637780785062799125441570618007003132392979444360278685822165142955365170634300509816959062483250095117362611607331070306021199902628021648343301455064656351688145348392053094243932330639937217730532919257774577286415735352721063674651495886395645751032772493374982028846462046834688549245322382976059631114583736914467158849399734516151224496131507656363491615874615228497830196221069058628762723283517589412434733088968211341616219979880229229721783104830226503208992888607989329481041456077059942677243011645276441206594058311861060550263554968770777496481040575344599738434607998049967219642573660968146794515036202845442271084902781613826006221203693460139966307670760288930925359899032906864106193062998278057964162603940886308853269307506931554990009441924718909037181597300162047137851816117924560665632067884450941470646686087831085987481029680479703518004284395047093118576046181484718566589703072993441169535731687710374551912662941416437479889739462134671943711035061137531829648310680634243721634117541102491347230828138129829614609027279150283135706589007070676647474096081045283555621631796148538345739201152589889536148534057048195087500541548323210984452379280948672356732312725640744597048183844704793422981132244411756333840427398457913948720693862511513484542313695457334131672837304675662277431170605426952734062277116691986397826153840691397753108425613197336569704452293513094485300198316327834216653173533669294766106257202698583324382380666837439689979892034596502623299561351859573982612736316661434843786698191036319109054032763889985265650482848117448574105539984363704651525577908434178487488213564183436541886986799974605291458997891139394419357751446578695414391634294179445225888303988804897495620331564741312073992395524138155253762725678376164083379020829672116753478454561197031819328930754776770636189460676059409603070484647797534878701308344241049093176137857640103944191626637467584481642278642138686751553352248024773235114391390860851063459023589299028786776953748796823571007361127515128045859194821599721625252724212677945806070414736951643334851969257053920384522064918651004109992783988204812033833191618288125703778489656439077065587739260198805505333659751440679407022234917894987312373684207940372134488400251334373926422042354858215561089741752295737677019579221441730530639530471391303925125140050537735449026921390670673275108931492510987569844193688313084217187587986240981338366551228838603190389049418813539440322988466279747259202497704163121424446083208894941841009122790423947321002872100126777767739410173004709255644459884457792601869580996877450823978756838511767453520606206614949522650473070121281425509176889817757199077192695817334041605873165309722040360701718603070097979629569781574022961399629544986545030385296900434580647196008563241900720657020945108718659799714213866024699713211341868421945218273143487191847938557445952127817566426660357417796592672928381104764707140874580872472853914890869001292040938720549261354086483036009824423586202802047174176173433589882880806857113716174764920320159389230266072555375444135601294636960044904814527721053921733493086731508571929988120645230729613390244924164990165443571470993777302419266479586025364826219733046805674202965123933679208501829170237403518490011851366659968681140632030084608945826806019652051116316236218579574654516590886221512211554502086798191439700026727610170851936176586985877481757693420343319237154863981680276009545293338019514186091502747630153779032532095120389459791267428380880047410766913401007633095055464348452162573691105486589468514527167492733290095450849322218403300107159662397519560583886959272830584989882284136471540185297659646119560897485498591791491525439669412320679872361752867152854832746705171897916428820969031067634794968184307686335317287339073506516819105846687429273085951935292499170773486076248072190321713039088486288934535935797017990627283440963701188101646773315548156336823827903865747253049021400051326335332831901846406896037589455704947868106691541333076801985443095188875014492948637306526851066136738482380963341539244514711807828031804022078387204977527091890146466089206242467109492604531652168018790792875913852883775096274749008813385253726662639254916152757718062034923088086029428069034266126273296405564043342414707361680801904005398582866041355182613010970670202083081336273123316182563532413432308703573700389924202743349008587231501837918887962962124200580321446767544650762909997344355810763159157521280074279327457603009380236061804144705647984005912526036584448437824806936549658457165221242027482682616835263685641267995309227362786278617657118661833206591835946612640651526803200638332578640595995733186690828180710574707442160521227220903899090601906123645037334507882232809276053438159864424336264473915168611200655034968492768017047184232833078125611841663233805363731642145224697455851721710719073396704828178981708448912979374494367826992809068294918520209016750292931304028369005283654314249527153784330278893786249664887637458516161793913474401413652541779398652486115209604718596546257316114584846490609719035932171490916615817181870055583372165744515491095552755041963940125956584169244793528258145275948964425014694542367359635301493733524738766723537558628826271287593702072823302532832072396728759657383355665695255651351538411078915182405903858936346422050032258511320256265578877019788944881919025045391666858188969186165594987137701670689910831130986921330387505182041850977032213563522272695093374115165885391580419289435960184304411322867217538201429883441265758010318927334408838219277758834138652093572032412591637932124658432313153357659944786931929369841828832502002730221481588901428140251831269425550021050807917426638237361566407697212349811018604176390351615492272270953782872526654358941114185560597298430624027853453358137204515659139976693517604186209474984391586466932006571157234541727770164073558743659931674484876999374413788680116251633090604051913906177230317071223714794503015924280406534586535595703413640855023717264822507984897348632455807070715347799179521526502305577562092593838114082571890915467414736403987759651458689517254072673461335280243614827607226147783299463558733054436829613400078837278596284789324656428117769468072706325562254624803683072310960518746831805780889161625294520127345240127978946740759355958122922105772883534356426106857634723574310705519303772378372785523851497891810793935930456888587865265386468656835966067569046764858506307091079881612690171509400051986952302462372263832787598553575610058266433496996202728411251791504291181229797128020346949022254509446298666208317156624203011326443124688550917625535461292612733520884066968518264247710598731813897055612785560249563748461191060019813189393165775175210716958583721543562326800129603239834327472205353998087546487700750613225225838732076195972832698713683281091405130879008068433358448536399488775573746209373898344829810499949121897602252427105070053581666578519798901362759320253420462179464476716978353698468613748048225700673518114512844329416701171842541022900712463398819497648762210347628148030707579879185236690231030540997046346473265413273699084705012839296410403686854849428226897559337079670904642792232895808578163464426028870766418703308561947187233981626174520059804104659419317451328946136465355301448758006473509009972215443078246415312269734127914860902398102184003920118630621045728630234472689571584202080512545121631355075470729121959350497969958171191867655298612491145316355833371234481873359012199029747609525299499131903240241891060093352220362964781271301952336066359561746871758898727351242414962091737168797420552131860022214688982628511273253157798635310582483650829341830126735900121534950012835814679969066549423202100203012974468909458072654904260216671147837040434471109588807362820471866015915171147046882790176737644537308251102969014114433913090042151149805962450733082258339233506290196622913674708078121800639172282709105095248611107859672353902969873521911289347136437513421576585220478187679927224208687338607829279273375641783911540389048618494651079467468878000322226209608362777491138051552999221038081648754348844141337145326004309283117347968525858615960038451031592074433106138728282611306717460665600511220758088224817312562849411681035378212604721600322201983923926201029528919342029660770033672783931154778002196120707183600225403362907203951031514598289306904929707539898898897021557945200006063634019226921143745024259606005694052097008815400741309453332864259006022494289442226627402853201577360143974055021784750499269127065926005305066655358540015308675084584021225042259993524590236919420903359814624154860422745414350355629502515689042533602763020054523903347152163943547193724839745168767604035532482090741646157329318370787044097081645401851084042317050404751454505787572529897911678892156868477920685619354842628552577667695254039867536931364243295102349104976580808872999896125991628023283650835458357749370162321847352703794586888320972996743713119133393809766541145308494201110258460342869805113721105013916300635874260638802388145491501508858847937547903736922535570237974240241622313247054135414505339702267622169923769875609023768630238537355301628563099807162877460020295997840572483081731139830708818030160302483862370468118693634485385850201017723928898125153754262893438311963007673897178293491398894667697815891164410960500551085698632858602954403414544152178305182825097710988371558979519571193041995132658321460794895410620215045123357214660656967637169559072751657589613089712800071187708946234672258790661991703736133528012992283051885495372584009863538850871370038998770264063192242596409584140690308125798306120718340517499806193742353484147790431399521715180397545100017263243187391432502890271480807357708096488658344651845805780805209835641608774013799722531800576302143489163332438710369038051160665937412562771337733779891207962057194800393076212074210838047917683138272540268634955730257647132529430552446425703891698570869960007740721048025497404231778197727072389008560423435300556342160974352704863098724598124861962643625565282712204327034926753254771654176202775526277582820914297868541206566374377227810369066207222231519903774215846778834735874175205331750282525759328357434846149098562602242920900632400324005753386793098572166156932704613842329032931707777640569084908551660916569143611060414068696668365305418787460556030661954141306226938162731288163131100814111971970464030519738472500501520065108968074433852135331946547398786978816116733182164832859099793740773269083265791793537604125667752119628864919256678888350749076335807925656781063496853980470358590818902462543674078625517117218954159214495830463206804887506886501805118192743317200019805619978054827710434787733875810445300009835196848334567971692553132130854016723668428568619487926434500884949525728112474303048642498653477561222693904948081456222731879974699734443345452577676444294661081317405136482425628280623858712092315779951518417470049603397544321200693707933023060546987620623907554453283426907113727210504505081977305706134612320983379561364369487804218854111915474904665478397535772430673827690255255477964466634499334794683357617810057021624557001388030722113192551884328859501091985523395274871772229870270211223994444030064606186775818076326207167903211973040201773279633890638432739312171986188626910895379523168323281219764205183818655840366444184515451422840071229678544084822358098732392242997281124548818700754125075984687080776621189384997801389708459383676361903235828570104802463794830509317382311679875582769508821367908421018802066378709384787939791648864814072883413619297969523229923876881754406461135240002738954287802133427131104900061576081075745439345154848400967949810300375347145467606347044789705940228119923472503311080754154907304338306210673586880067576120887065178187662857304871079477285055124959228201095113557938022100868382637757709055781967722757752494408964486807653213214301404419238031940217178720030723096157571310510636885295895750588682001877300546113975845301685840854076895874266265334233170203301759983253565052227266233244129239815069734116148625053495938918776683644125411909827682210617863873712711174089054272982331658398466012642402251598353889178522089262174787767253885106265529710185006384938624411283410507234289970220926509714700187856699839074712727714169994784845148033867536910510622132050038598840093642475784787284258037723000200385763458005833450259841251297390996525797342816928599981808589099464821109658714478891250436618743046688070391061894094652778095324187421357033882290509523165236852297112587225288958879700219147904894924857844178449168043241743970653686549172390132526592701343073344970472648599112573731544192343787441967702980256653694129283997213514966936903108659799873756430460172233398752582089901081888843628015802503031377432503232450117737515729939956800574584385092208180868255748552744748732509005771991303083265467333417167766584289205504783740080248815540042535406085522237668777670381970396479941898189619672728982535941528598268433267609387421587777018704374614696171398632678204251285031706206417638240528419813073416359147260285192014088246647996937832363644844095873818748041573898595924951299264291808621587421433212351414385709075586409088272509487501639647774175489415146443862531902707928212201456415262314611999094915867777197813878724940517377079717434925308997145452977319473128120002317797287466830544422279098020799039094609353264046624878757908861340258266224213075610681962605892571343270695841157798690151842375967764410117303051342298757967064612728098194626366793403246571039279749000377047076499895307424639952125445951661134388326079205352919801509509948408276953133225796229510143060584778186488641601263196416931681745890692342799572349903313474420422982625187953786248466189321049667300999532005093818505588470063991577731897753486384255648085868761717020519534748277442980673306752103601899655578525343056875759392928012684602152204879487051396770773696833325190259024545454181276993526895636967927126483416303268460661499649429284957808393325779802224204755223409146934998727091715449889449205291065001431920530807752938202115840606184366183000597932703933792463267827030018850770088561308361001452187069427207329933576745541956670820878248642321169222686607506828339314346656048467759725774513752222031332054710986939533915980042054338752205932061560321558673371561046879575332208518066633512844048305838105676078739747438026244822043813279877414480309608093497430604205623629668263604629320815073516043039373552487076182894867370731919592458160521956535889821755880838953538278291691441413572003836417256797927682616523404851626638439869517562947749981244813916600060876237993593228172931209716413202378594711686007099785701035140953528986344256056637269134135273428270152931782206485550342700804655789366178401224979402942787589660080654829050365759784961898135554145178178528409542823475557029628485048882354044974330659828915545461179973762807637038737108900724785859005705844118972537894725076506958372040362289751464912537375846748066903144485985916220522371937690287159043545331097226493341583495950128856487464804341817215040502650708477566968711200683043429490824589212177435746915007929025911108555830354381618532161812568369371063299454387077909966427047330850998513879620041544343590537689049948890590448381129979606136761728024239132180834089033099891217899008028156400003453807674233354437405810472379444000761928739110431126340908166113080446593136451778776987589676669567512393301062011509717880539724545275033363784486925662949578813673603636255478404561942464979724094936978352245742282879664363428008567514250670571237810010462650166417414065379557805710016975709913837297526575386525277699264896649824836816418936358763206076951464409340408611977565223243724304462838339279405246447176234149045602300961508071499179973420685583364212848175760207263835438121496432957693550104114569967625063104241707591598859429172153971094451280358351496403059783284506024048009188477214595560737937430908569121746298656303651197056717167392041757646843855996824137358871244469265239132170098420725914461982501137256525147205620825120213215667218767862595606761915714969307925187787445655816576054603732086215082659408223720201023268616030953853021286455075877833593649789292383496972419249143382286317485999908999745202060510687777092163557846208012362645477485527873864675609581285350767023005447882532551900670978603006284021835093967455104269307507845177375163894836679705762298556999810916500446891159102328978985996741177666581342642237084549744307818285401484918793128609890032493738765583444761554324101878549812267699262949939741961190943999039554157226108244426497425073165547551801818900435507452012697068231654890387895828738162087237358974024795912716529108962319034360350941055940493570820761681555412887910386303878200791596278184599991250831371201220127101654054706061850632292933819029777460830640105898486234170793361680921157076579625240822300055324093538957800136895639075293882894722780907123595391342348866568173205075477628715561935497654621646427488314722619450545769275056958679711705729106635804514140009109469986767403128927750400492596384352056483344641874340298512412774385868130454572673240571905413948013454638461796853619180844545204301459453385202700765455555835201218122990415436718171148216247669668334328305154019826823002172810645248842238307587378437898855224594371249254341584593341141958353333202628869573446750321007925144468062454215754096062574321347237175343811244017605065642883531663053154484724571216720813062658641910097100415704229821983244560812944412224982372733796498596374449847968356118781201488320074764766078399457164525497250262872486383584212319027555288799193994317512021135351543188773318628511439902825705438374044008397936676815974755801973604027701288128484698133996602998934291586583391840996495901375846258352998193347509662445210910837462986619391815080976250932849362580060414797287399188078561344414506718480787894401002053679109540165766009207303604710941336636377809051331172028871188048813039152821270407819156718259955743591393032452626172179297611724142952863403462640125915376869426513238073822225216744938747597846243158744891064674761510468375973320053304989997867840233843807526285182045000826683726997020846026384503699995560091775420804865953907688488181572790225882677735678005518230118212170143366276305756065210851014974862498882170407440479137914357385938697895895194049874854131520296758707620063153386485255763061295644754183335300111649961738770478896564552881491883792364556819968802515324659492806676060306921222141850393711148895395150077532395622926737479538631601554894905194690686888613651004357203141458368464352067661978969820625439985236982075987856924977779731713766744353385718610551563832708875562748469340811043276066379022566647768127836430560909041408214480665622041554600751808065560710284900494983321983613254828457222328775111544148269602142588354543801489445056309414543438662493981030404885890844522551865080688730599168174773669277906880500381695533429664446958940289505555820389723446202300904324889589925960093300702045567145323705335421925173683808826122974806930559875146080332417632358208131060683446642631573416989210568641758568935403800572593681816687732610534539392077254695830510498280227944875968186208222005458077952037815065423599959489937811486154557324514094321062022396897248838312748370724459571758381508769193259547549952576057218698750845636617645817442863826615011392217929999163553540407955847201157559678376542493946963991985559307126925165241461517508372964302979237230234856919466750988746055672964843961828877145439780706920119136454167886771444367756317230904221046481152799575712202050123851718057669541448015557735209964937267383495899481939555044098228116009930912808730292234931950569122240320455077460537400432134814251054835802239682118799553771614398739272404780145274067862832010719090425056687374566470176654433531780736415996125982469327993524460481472307505191390458793153126091223985589729714647007251417677353213614725233962965854849216990102803036566761285181478702030616582637047198298110127762782777166231738370048070000856179448655703917613430085641533598407957720765327124857085180959732546502391206731193119302736328481537172026985451899488326288315430777613185427360553014777390746733418713115107984482835609835865024010790274649925849162392013212985203008566142596049445736511224628346918642007680957196335061603443717934113655731773080401792953468414899117966974981853768036964967926143753795224318826816759069326667222907104294600599942919827577843204433878289274190812248444424787605435901479967565572874058023416469506389506236784788930847864889462730769410885338318773516183859409258695452240870019450126450006599273482287496719853269221268882337708110858184538547348285668122054374717817002455592799294359261762460022086975260183131996102558642423557293160664037844030129361116707019351374001921558685652925077027280120980779917510727828740593281427954502884838232334958084151407397911231790431844907855513416445450782762608025357885415136750832859688272578219783905290801097943438046122692601625088620930824538659417564621614516891369484451563153251227469611345718157967955692553673127557039851707630270189383876848857778501180974496166032432834436129118408320271057451872640223892483724201630360563110191791857030714959685110836105206840166998507903165565635860270635979578643961493349342579724829144603448078388227018301214153774017222415767500816226346426682398841603098420282027198782723780647386586619676393389113569042776619731267050979813099388266523805592383863928490068498503487792318848161344201372931180634915483843601388928030741606489479359873346981783973355948420620561867657151548406313218833015986420855219228106569390768150460846165260740391983509657108623687790223579815391447468158759982749629012746409991213043080883610534999681021529432495868463586894541359729025039853850442109438990425757591852989507456394665757760497127444524615916967954012752504099671466815278264613441057402644892580062688057971312215337642290079788704831862922772603531145803724093684122065124328004598312195913447564911520106997147103531954758771577085397146652314611491776647994120102419603931100121617539844270926586524843780610054669519650433364921806612297796096592897493575983825018861327799206100368729306264589004836725196604161555485813313488207707124528770928867708121241160305483278318342148445535531718264075891081844064222443417008183204908890285371965428065865646513367358320119248735314484839071748467901182918597490487745600557055207124959935214658455453174245360708738565043383919531712952644105397349465121263813520218079162243451773007913644762713696932571220640832726546911399300706371376198839368263520947398832023881928126471202488270890494992230403351128690032555577486304413412479760134173511131839324221613730669212437882680487170113437426347160079329996680468278579042850970463741699420485221415573964824638570455144237943193698391262742383865210918257192693266980956025280735218953844064265966383298183219040302351532166468262812544529135459279058436934719402804828351325504720867811336151421884029826089368279434438394140337095625112590377781694419660094232013035318654386669058988159957770001733727112544599715309378669922267607224738022365786263516514442903040975536198546335281669019429262989293693084550232999866947161645598507746400451789100129387712799060004724695171259296586276794851304594306747208177872619362311425788803687016864288233767314736888114953146136821599930654143167378367415421083392232858439204938435433993091268441360225818678143053560896886469258785950503599093876078873195149088960554310694965919822931941114751354110788038367871899323926359172648110715450721406792573698883695636067679146868712540835943076715842781542224295184425227762936048588485856475813051589784271996170225506077875203826735166433368997197623202248583527853155550504061737764115582901204149069387386342485629470212415566649249611828728794230564039177865396497404825304647931840811946446660626615004591069513618615507853250825854053771382354225191718603651930277213226130796504815526002958940171015767132806490737499024686506927380499670681833363917057929315374222138342547959697638480718196984521198131302157622685160289348854077067221966089404879315841653747003859187807089867895173311757372413529908494901950891210250739156758171124492640385400240562073352137548799191921697080985894018947426045931739137787254492659172534365692355241723822736699670212708152349034497692616857404977215484190475809426400100451950404489349437673481068971763522940207147416165431787627019717387232248488246089264838114844387632687624359365214075774778432415105748327357152067657618871522613569180457658604439498112742948395638230510575358539508541173937404347333787513818891125995791494108919427721149914978472085443579131592966011490867323319701604732085236058573358519874344585335564592869557030669101580099015137701514375921054791933459248213823784128193222226653090953952986045371995006286826782022556935670885993813412517485114469906294456593638032716563382325175385277006242654789573005740751225639316055868038704384923233829754852912000458149004371673089217104731450971845326086819040168343846709533089706956029402515515910914093917270182182883429862910845806493660866550762315132769344676304324831582079284852807739643735987062013136220573396177649047636586342002448668142675604669335794247438850216726462265341631789477707620080274241750401207339699623353269533717120783539122614598767687228588813691138211610910128430744406024638123366182435661655191961188599533934047119475318635756453323523423408880727067450880207231637974780260337053295757844902838112804002956301646590861852612572174032346376147734403172300602647391959418419737542326585043074913802502089454186367882287179983790455778479699160055440411671005192548568526067058184879672699493966483389279311011210135355036609752082482801387850659965624587396550920984621798469590155530789010346987604257012504174680684328614553328476821346370735933606240110858690431729265697884166604887619923964691010654341713867185264164286142441141652206056218900857105583945284710984080425664431031450487314040853391402509423119952799281663407128979408824310561162792882708088074565871853158812450497597739497658165798345424493270593142428616848681018793471400108089576391666924512234812099518443143170588012904674941246212813626553363134891402894745295781529254504554581148517448794249280064904363280556876149753517842801254467918330097087776783187231467348126033538392572367677593496234002977100125850105823651307144666710180349794598782824987090718683396083923428417927714691350492686418259698883458367145622584981740775889731101239455214515129226697402966386472545908783710777029467607300378210648558360933268523275818517281197844863511871065295059925517769127535316654241041587288692225982834906226939025401585009665729179069729821171443752631249905295267374747070550159500512508796383921689362072937509646781588506566481635707174788572338683090497186820512658534729892649781905227535857290866565547209467245189006334000681614193128062359175609888716138998061195662095226579898375063360544552884193526825382619765378752107885396471842742897650959782386536349208583962449147749831269924222286208732390262564938891779673659423984837459579478904654194363938421414002103040449329670554495741913635564804664187317216226533881182043538947402712117556585640671192341291362420749249836245126406775297527084716305783328771690446396838519882136320248589920129555196239217141852785751520415088810828533277416519802728152145614246271824436327535580859309709373162176148216945757897660596698483105672133527246223299621969567672883137639684433415240251946568038169676837073943976019060849294957305463322643039517762204047340396924582075149201959589394786984741074776225478734252879971392199293594714854473288434254710038354208205905526475073424692696202733639027274705120530232675744914725198385261275080269947049757922354666719689034641576974780979257909436367748951694615485120268016671113222109308004859393800160208831872688418378043819510381018859657339907846340186789629112973051966768906387458451652409462788679902972061698265437369852310598709578901663748703167235479236146773445794837268578799553919158525728650241288315968107959516069224905215329847107934225195797850387406275033326020881853724203971648432976059419184156440628093922921298907688461508563110022195305521513320261503336785378701985183144946808700389807150557687824468418665260922340679370065846802332245853547024089088654622968663012147606107508334499703653913862664292071279858758445553150756392945993097457409974038661352183435959115193467073273593143385823170214444198703205587863671305074208255712519240324693331555330282729740747425418842668252239656597625511982331670096319198969163696482376792745025427104968611758618944582060890539986208966346222372622182551748531340742479324224246849543927923882957073745413792114576652059049086849583512196692386009882792527456128955733387812286074751941692377375620591027062461001100808652455538536418717298011015496006342827577172229193988246597023730221561427806222118107594545709403572596224636087052515920197553800609916151406617519895550131519859472383982340856708860306161142014713469125032209473547924376426581829830478377286593230452082944747029387143941999914318381641369975627827859988094916757187271915053628912835007443564984204463608754385240569377730668034821367623195479135575582496016280064886955019241848132979554559476618162681087091309283327342756674746078483686351367269436977351620874173200119585712351523975970503882947033374780267185818944587937833888595781676960657283786394139096560515120660354644214281571245773233565115339387420627222865073727472585271932803922799867425126705767828674462900702901659472419779425103257907384467690072468300110854855154717813817083491669401099637621478906148070648119052992017294243832911486494605972244718360289279683991469987323232298954020363668340586478164888104928243921848969998313904315102656152029029639611179727417539913426123587822793419068132605104072297947376047542894110477119876663086923574858133876841846830763248853145309950947110480178454178345928734009880577772093217757057566369832069766920255346853851151292977151112958181081293199039250085414370501337330648090496586867051620325587168544405650147632555162666407355298163728690466397367981895196533980763538614693623784968898485586650481060251685502198599650252284073014424529384422496276038194340115158964047833434100709189691768280640291042482290113354598306643780102844406727471719720361366651260514217979300788657112413675553159961389303078722329325718488937611019820775188575316432852677349504658995519402873882500178871143254313537075505028308359686517513887812965359047347592223125883050395318543046138708547453374948724593325940931238703468712783260078385250962886903146460522036195944121239883468468436847288986820839919702695574143396210590484376807547565268612522692323639323063256552383166897950551421483314522186020229284565719929498101712434570334379478314503963246226927568446270908088793109113911953299218491208648078281008782082164253098513359988352554633760257255063424257232617575115812235717760052178814644158384355462322324847360794825507572054114741372088108034429722228030530899255321449091824195181358517011944697789543155608237469491136236159101241129655018671432252283616240605897244486124560925623230113431550129957749826546986544587722956311551646924780778035115063291060713330077280006186827832165243029054813280672841477019443746897063798109740813352712894416370118440726184351182474373725072505192853340389591744460119652337155346495553293087128077525384117749905453849501333075682822453601490889270938284939479558369709768956101152811383540872191489536959377329792638002654180712798803980867951399757360978009225571560642997141741175930550964147215774242795579199580855584810836165518326168482535238336723813720763262213207500870283891358120644328638268028673692701081720590417677397295449538620987510968751345314526314299636300475993219709757559742151165255912900052168074240219025576665710190508008749563258016337023466848927705049600949100508744991630219286454034577606841252410828198066319815167562703549578918395626726286798415917079745347231739816695438644155053351355068617198068193894782383717699979896214253329260858433487822617075933765849852419395845446142486491205103855593179413797374012876535281347504766724655248944523037010510674198789374219138206421424412753216372299738323894085504949948807310155024967958069480881730930485226120894651082980692729298614022714923176024152103031677196923615031689757707200958432135975739599970334534052608540636283653549691144328371214772977417852279121697222762271235394495723777043791329371758147425555555313726712952224882210088527646256917606175378290049379907096786749006602588468546084065112498431525790018873252436569252009738205463642929582828661973058787366427925375460095934938949469747354969540353001795265230805513064246630965559031203115338360897286695808886375130698574487069938024417010199333858048458440856504794334224750926733402619988395162604460719230290430807772025271867456595078608173555428581365508781035126367634467182984405516175891344496118186803911072910053212413633497624889841559029785018731027124002324657165648097579203805125689400868109701640875537604230463481720666857790455788265958545060285452343186414949499535146396067589759096733208183468365239745602010057099587741945640356275230970776106051164868733876983763717595363622109316115980322022264628738891216103092295951294739225896683894830383890515602375720009482971387772086425330096519879456644939647225473291938817053393262204324718313220882722034724847236928390983313073976087237796229057210848775168356367252625907405198667024732942485883593294758755161204537025663173062249782134461683295699236118049644704074512329256390602500434569690346795104861206416702531000780297218774808146728450423164586505530495169007380239630471673667737007582319029917376923928045853917204234685875370939858335113932087179700227307795496255838068848541170118879145057417176955538256053491301781193623677408302404364177121130505946076116521414632623797592900868411575718326091032293810912260615854630917897898566964378247056845381387339574190826143393281307937502791772292391243578433653303364370241872561331699378234355138998753230623188749172177070300388287586439231581954595287965560493939679705405530013491440983348821702906844619856359727417806133227705463061564857769576021452407398482771780425398230152225058617966459987931993889246833553483065882946873443071691656029019183177832456113072997663197509102488265212301475403411623754197569432342759992248843993602141123089027733861045682436829103184861425192037559031209360028106306247777575184998699183930769033780416305974617106330197889526869672602339808356199069794195945532224907947137713975784972635813664403143067856233389099302453633118695228879287756837445254043064337707885098002685269889299789424535813462026222171681523076303384312899895933144463450322560796887442631333843237201639377740876999510346007181657419007198174949049939907946895967223218800352921341350066070819443938395683595967021392050667415126404652574492872230675120658647680817250311869395403071528938780159927419617833409623745871097911318454767359222935947315983362134059537078169454084603009872418990260414474881359912068913114167352849856427033264187508179063277279656936376539419165745847327800816532129710220363456571818978410390427716034669719985751510044553533713321293068465491923003276917024404524590570351479271185357250854384104390246487185967177541761825739688124934587571757037610145953814150457225260926161483847605218063034669938584590045989588538228120407303113767533848430381041830247158281154276326207462907756369689354375703688658523970256050558623123519745863074527183123303427405926699260983169505101050484653138581246957662940391514508359605374520174745800682881908644238328404502327693478059892817776691934913154094407400520845506718255359193616854484417553016609136147281737903803153729421479396960838873004911306184408264782392432034520905737540872892153192008489533496176971558236230100154304854087639711336122690345927976116479055655068998211901382035535754563768640513598498329095155872741969838901441745352270504639413416495148267871058295450222231481945321443343920854739692978038654191569887302948646202889732934636527721792337761134306284017945613426225655282009411281411651255293774252861309886269419206109739301184493227949354811459422967393427400097574511734258214884794074744360528555832566421489042329178321530315571562213954949326954987246979516488752965290978020966439687885014956014203201431285406231766324566414405367591866028693879288128569075860618564268791176028746254075027601163019484100175188208933150021277017862335848457750870680605680159721102542872089035293649070820662005728270245660149263251258878668570496874311881930894068483459773291639460384293630945017411029956947502527372490347554122384258640601867295434345650813596554879327297923861366584424919026752176059980152802355331474807721684100964174992685730561692295602781974953433733356468944700580321614790691927319538287359431830227326234232524135549647478782885017719935764748955165710293396625418369933434081872474416424405115593574507413682638042282480828557460837740456217109729026419591486231752423514344244363014826609599791338422239921893361102118162261065061713792255553242718705786928073466903084466382428244063851455247879373109043020767284399910042487566706057275878075834966803451288357842107777469377561848917759211479100898472439178850101011100990699714397815528752916867646640306057909762829352270152083048830533665891645462845203498975436420979522860777022754543869968882196390027890234153929655395099898324282175719243135551181163600343301857433731726862740543449439115440236046661304375786271859908542749958676446958617324638871510973237426046331193191206377795195588486669325400807158356516702025211658698330448739394238456803176489756535079227081905255087405444298137461784623781714566367917171083406376149529369037555311369466565341703611076013548077080945788660782180102982841655549484215538156798423315712280636474173327249641159739244391779821397734324220557360042128260501025491736237948073905948817663568751371503085519161659705387746092342310523416367445604898409566715371041309657685678081626186399405137023488087280449788843194389049740564767317703655848189681920069978286926234971866588755700318716325939896814772499250109889347480418038806770555717985008237211067356050140206115040313104730100756743190695671180063097190731298381880267024151089347921182934655039858869362854871387225367189430864475147520408819905466331822431289896586995787661826964543687504782044731924609501012954648198103895569752181243096321556642356149681114550400437860934711940706474705523773101371172595638769513197316875607532397836125435595104188232243401725375165450493150805425354315025726840600512128983616668139195017151765685195143146820082955398845175865752190710348299415027109826158484896870993155118838434616196209977675313730069889921822715247301659952626022286989807821138886293767682735696632777786477722414344931859941455095045711970933388146248930553597123995694496052957431288935046169288329586473082606133304152851642382707979743215972293987503827925911895744286378791240492211398446570812040380459568799328359844151166500734650047804785106478062811160096545149924404234575531997466015259557431786264741466666138133329498531438821422990628667353206022666883966325996211433252224156375700708308892279198936463465776524581221232226142998504808988478188739641756473622350461954747125493676889801648809970113712203989295722202924013788895240341007292548841421430502019547027039425210535104428934540416288932841677501650056718153024492756704491171048132475092547570784407428376661876105240187931469096161322417983703428595373071387934274743762657837617361713125025505167662982953404375367745202837977693959032525366428797240510374302263640043130776991045816184780862605027949423864955735746579673974818428581541506994461847818763503699454321348102595449361672504280887022234029441595786403189491235210814748823328002480247972371744632161501282917556625656060226159726512098121814719487453408701294414246840923278727138530329001941767913945731529908252099686332140863461849303623869775779680406589312313551821012122233138700930386228913944596948943508215914514980683271227028187084994093065336905684852234759460586201304839904583074424142839267028003239337955079419112194787049401449588873453284073961291353130113574976872275647761781940250828221881717743166608019748664935522785638657943750402620318401564134179862971181778076750405507545502912254792546695488661775631475643980552978231942235149798338232054958079836755101299943333654224540276426777938933599690700385509915901738553337280993208733401369997539264288661091302521022125119349969494650598363302061761153715374060816669267377874582395072810771822348366480296198835027362435078850875249186560470217051992822971062035877158806454843855216309004272033954466941726373999370748236718770684814922917831392995909203710995663491095511612253247199118276263371230013982964380269949527044771397795166840093449825820612662105421801976417915517319036829151980164153363974048743490763409836001907779195154623629212341139675232254395509860730429010155200229216150401214425308122798075324913698164187350819869883273937382768852717289183666830656823866817765550614046294612812537266496075375382396695374048556772581376022069803325795031031267396092545827290363129858644546910820122489562853241828286178517491443268270736557395744975719200286146948386100757045509767811055095659409477566136004592432773507436258972958254194090057612502447762066443416551752972283530235287207878841155849994278371521254475178695792135005575679727683683126278816010537780558396144190551060917607342828932551015222252256854950187594834212066666893656216934380085235440917080680264682596764606459650996209211684887465293673137013440661452117853365774985515659794337151809911233171029609275160663703038379449237438194644875732919222434380352342036353418174817693628802142045587256411260464842019504156709707696908617112349801084995141256680066581930013838290220550801122668892616322020473740158367362101735805560466528433445762875182023234926706646626776692278636718816587760206720024447120044629833238023172630784943305584227495580472848577870333402591982064122682286981649423582794697877828683201844384768376234098592519527943344293877699421433161948786366450072021679447330269133441820643804775938592936374648580478843464009486586512043298733387806386750682914053033722737451632079845643049852985600341261928079243783212070723778782579954634750452519847993353788884026615762138430576667876703410237578358951321225480601264180137458095011390079804805265900672227498662197990826086031814390486599059848174445547718286552285825528655567888037372444564492764596543326130105853848704513830660415717478023267168333106694786484831214203430033324418582465017315789840723116003346210754005567314690897669383436323338523968533789969110990505953397399383605111158388542979036112708968036586847516112936110645039478699467735753906719138049034957089155021611306516240644039579960276438324395136057462143811242851776322968267839322313266828841164120778775541098892292886625356615414045680937364993028361352427023682425274851186911206635042357821540747337334435652219487099273316728697222409792148436286449379375647417416495983223045101495216847506399907958568571094465408726324652954101130522696386838118882670096342671943394443532375432994725943502072551430369974538784023607949327822103343290950295599454759061120831451150637990854223780436132519162103280872005571748281226921606453125233410931302558114121847184067499601503815899131577436690909631089921507226116596521217471295333048367398878805363481662110993627313743961003781713956726668105438302816790165944166773418518845467740167996753740376821338469098483682053384055221998391461354836686791388387889377468863025047352571276641949200868393952250305743297367603885800067773326295498490254130152891601911796308614725288825056581347805690283443367759109730475762108136379596795518421172342517114357445898052601098809096503906706641905040680896973061989757925823652757423017253424792136600485126234387599965348088816653769197513461305700268208000017010105583710078938367652124835749397331180908672938648045642530445483707181605870235130304924983812616718505636733237930282573562227053106251357413064453030590109796660442371053592622254319784766404437842944713021844272787393511886010229935328486422380792475902563582849378148793780860660382319265524212843306335895858622322685267652337261135124901460548386261626718993854063346223909745551094805829863307925156688800922282721975983213697935995978093285113275697583306828282541065189436257018191467923006694351372587414093459904310268121240826722980339816063782864320577138367879859658141164965863333547497521881142414588209587014011916891925053723947973672932108709101268947105518568845203800552769828463066596491691340445551041990391188540758199184350900245185768006040159775898061203995577527143402613590872591139407293990722837714305571346771641625117214442941855124392546527785684268259575346085184660842869056947833720055951174503541617656734287456226469674485104138846721742085369246011931916167844508908314430686828363912950048919776550805642495174520062813350870404477070794141421735737829042633293890204603317148549860718857992522550496997170818960761099735518975644348412999198319983135339382051750281443828066206000070118676575147767346771353404215970425230707468459938487424262713387542839047540377640096547442940813993746338865049467206631978478787410674108450391267603715388750438871241134774250757714436856336464557502901039171708988688851846262500452070745407260920566977518906120181262657242548466414769675347693097496419672013831380235701692279250054990232663295554341073198529030726345071670492696009700110434115504482967123837752507592180591429313767301379924325647809939797613200946607140553579731254417758075814294312716926977943795818091760054420166113228996968854033458149491783497917613169995763305937666898573894630787458918184069171478357950720242178726433161752771106004418737997853358865193716695169922550161944015565052758033995113286110378234952044769516352228414630857779759022800063244552601493838686441991034836211183654035891198490417497322143049399539105673792217228831773376840258206929775282035802470237691124327968955753338985384854314757961957481240193054539025852526469414631269318939841170375933870998136245875507815392586106756312409348631077064042085568200592950989988882703632899823225081009822126532372716091881257046969046692436030069865439355517638043629036129058357468076692230246901818197043395136809488922037149532332466441510101916839594864778197987482247612102862334608843340566402014979808223939378932199097468195469164070028937803728251986289861240344616846787543032246534726826993788446065762781369730529909996213714039803737516943680553442190521900594786853848526868362959332486217476118646686870953394589448330824361410551013067465345753477109009974818502477587663058948011309064952670957404683257961528797748154870383978303258756236915231898449177647008477664718675222894681229015231065453233163126642344196706527432352300061813613591558739122450309401221849407209335622357913033140068000304980792367307324327727823711508390898261217174716346500308791787396686111209042163672819599380942688140831804067930727493595814527863573136492058295058513668276631658480204270010199898577300262258599963606815195888263594203482527007977365928833992946368460947407889497286041684902653948821047269578610109244634522386521446719459150374801227814628524315638294449350671977060244556578492210191493727394465124100592033275887660898695771908490657136482917019983533912840158612454179957978906856355734393582334622783813667989281947128302022122997409619092211604213556948418873133006309837143949222919256981113044664662116356149720947227639793258247491004175157617616603584717989614030993717698312609282047835102253060417166173396806122874920205393526034376020987101224120682835864085009473009001265245845847944694523643537636707400263010770158843359373007813040672914713931150628592390109303138996693384460399035537610368115953593012393862239446453443677394521693457031128273679265014934154180293148080452710077164470823104515153777177817082526692622915918576070991437227570191992878224660607501440739767877226829197710418624485641614336311157004892841325372930313889036030238906740585956698614146767179391287883177925350448840635127932723615153445417255136246644679667310994355430606829867852090598117054266306637997016965684857034169284156808825611710062085064383012006367557502907301504355989822169113553277353765251522268121908206651149539597393151852972256233576387224257532125031562808498653730620444778607229086096257223534525318000135974411110444147463343750086576806420674442790982518267147923422981690606082556190779218667771598028104490849500986700417122054110025019874023109425346115526066724632670255800362166677337422383808357834244186106021324450529997867148104970354728049198750486295847961432957903866404016936825954534425884973838522528666408925709610801255563740093557181027118129640192431691529118918811363336661631037536906068405573810992348059653531003060047004064998324083297333700873919060385655196174993419325959327607695266322196435685701751191297932184022628184966196704821728366635828530982402414067795470673265588745781826566968125980060299829860479726245229263652830822363036107867152028545007605609919593994382001287418271004854655648392715903766527777713836042092627268052465951456747997083664889917948567506591723392735311065392554639607187009102902473088580936833523273204074248659235437529604857997119311288511695743850688373236964706447253557058392307415033275573447092165111220246699473231116505595482689784856993052175782326481427012176577283383549746898309873907353091625601971303647835417692681792370301902162742756208685400693781550546159572378406158027895787337257706086701420197964128216061390306045118288042834470160111098203805208542470643125538959361222995485171413436190911885767208170434311313762427009979771748680108663236597611692158415449178809559634002030690324524174351871939071233790528238267945591288680157657172801967537887558222644659011567154251790223599372482058131076677466743324564363021643407620515393041101129347148503556248934454225631379003469047274038838112714797076828446709545163722337994722420922508045216311824837819439098582761025729386349326833859190042388381085175761080728762779402663282796932663995041038283553959214236317192390249359573336954090314780072871677884097757263935517727105699812019807601785062326938985327332070631680448115543874577719844807736352612723308107998457381678705352335737846988855011413321451547261932607392228407395756251584205923697046660980722078570198487782985254205216401424807626117709807212119501305831342206344452596496881031055817122922657082773076861666396288259953778725953408219377952901418297195837961789880710775801680288649607436623073275616615309290095372334600923842749301147767865302021636509273136299980113260587229045179021991684766196428629367040428751770470850196367702147159016084337842266370369913620997327514855575408567107957836586651939158316554800477260755251872530881899402688310337296556083156496884090431515585271025426567146436282650498627613322477305549744522981860408880172417355786818295592762512811273444924367217525886585327844428403313081277026823452688829341756421552173033816571923407129164812080740954987984549987139840278931903400987934071393566940762579193067996170860462279993316031353780568153445784500810083514150818320528977459555201437507180006045890342493375486176405223600887173654147240719571608662988594151798985965925458584898034196110912213170425110441420288611465352828702083970437045311498142217188377097883703594519407636273071672371544786682622066510986504367301603383533073495201723111659532869482792632056872571355456156106097722840042877873149343030072823076032007846048019821577062573042560857988908675201956271905812329896519704103471905261418330607929397783913543033390693889279477172453686409119218082482077742952368318045792728568037256321254035911447058539337297398072133663541549917586937385447922095926724512540781068384565285037045160826792273512457198735839662909854045163950382129953432924378295119073591182967167215822379300086801951085548705024195434198503182209058181909896729088542861020628437513454589269262733708142677602172891011942002486404191503640499997195637223624477613306015944136914640216372232920708829129354383318890582894810155787761131046525775311712952293067517424286801218864433970253365870214124099352681555050450624087670572859460598283603016527856328721723232925821736033860994526085375189148267917403720558506338262902945232218368242937633514302256977387166516494647937677478126899535284152417347591422229600929420757778569861447227670209371853464888207752772300648771413305328822868000968866432201009610585789777484261370908709804591338358837760627113453355357585907219926867888471706534158345600920625494107346550717756515731445497256063955597433104565646205965026481646985317732569340173385150932837508207695769078036583135386310904820013751492273699312264169070417357675146022795916813355490941189419520716334176229563867220958076745676449519362567487508646429231012301070223101031376336990581481278729308730249074508286829625597478525434337651109748051788506171026915511888761735278266101860170604091641481881160289318992265024050730081427727281471813242994780742229286214550945446088048825123427754253982033924855819717742265402363113836603584037211596963467624714743592798921202217358254225102063366627357829123515173759691646395706053214706872956239933441553056134070067930185279216795586888292952372373361196921269823640899331433427400446333751865465477975327669112947404672070523560963805374179754977389619113110755469530221348944346917653137287065572707452528990082729450177350861069665523271315393069723649964693571407147645443045966156141458139586062021657889448075006968354567107396024277874763182904605252395748783737443309923087675015850715710504386327589929682609157855960955516257723083722131863667567328450929908121216219392216690361795428502917845503141888973560481251662078124284569406339778150235809587191085107649241520112525474937081801337823252348835692090041257489186440526547737104309623795857091462979011490172142732323861274699825777480526040329022917599321889685252408987538928712715838774215848226470268602785419237146350895984629717829391785565113626093435888309001703805274237560201570608845966946715125347938281720279618628442806552494474431803367513721142187613559584923329430117972075114785860498492914999001531049570972382840157735695609720653969699715017117603852585663390268416415035374356433490693303218475157736933948119400731265985964966952905520533598003989485922270184494381277981732696893070424690452642784559838640275006891235036471370718521041688785766574361622351678734437832248343140506167348985711501996212659199188441548355929008665250654414179017081209207150473524467172653913635368199924824134108222512482948436336393563836047265915712979013028920698718341636015136029249455566445710241257926893393827712331536972854756724577661038946196497796486815008923316286998098076301899948484134627492310912793613638271441410617239906372820058997867705851289761889718699019782068356656354813107487965950776566380049590517923479300052441984673919518560584863336928170140358819794976832258524882578994422958826823375435930649016099979186221939564716581119090524089605636385758338500767387422231885577706839311968105792683534383570656755706188216851660259817468427581297109623407658172951084474254206210893067607493019370392312766076373550695633171230884938749330072242072359021290890239003680268681006981947217727745162123627427233286643445490798268378759603109337917480570207396474184297731368125671008649506746346674656492870897587730344885835059071079114321090295266948699725545074430313165745603910602468051436251332610422924094340765539123978016365357752889700966141225344470613649241633084464384233618722405753483661202438927211095833003716054865929869963650848042150690694780841716258850960502382518294747173775058484541686605036771549502034383434526699665512650289461068060061586956205971881513896762246396101496097814250167505925422877981815320839643946116922760699412980411503643590389490417199775094310927805947687128797858489154850982006722860727785880729594069731750856958534110720226846755469340028022707869505236823445876957999206651441934326925187975584683444250114156998506423135543929535097634109535911676358654354751667495575009383573172777977927643003397655572200881099350351311337609455214266260675124039062227062826885189074534927914935123023768696035674275410844072810122407869486059574207913257626923355950766412246962994085877369829108044906206474694973618483207425248143020316032960841570597970659243623857394776996066869800259776491015963501731863333375117855469879054010311779531955971106078593097421387380433142571362660770865038893792470986494300152564589352227371358537269996777149287260383135793214284404503059393603947066328224107375501912331432833107463786560743590206710773423653584447622171995752426908451141962891196306270603920492844731575688905620814761285088091482316435569901025236163525857148990546427485722273559497258581367656457830021029298137179772919670913661638576645926352764928836007457143782789761885838484229179469229363204553978794276587664654027355562318914248131003066233101674953531350830686415684717601612404435138787506504596865697735079569704474650489752523181983776981297249561427944986335432305548843851331456378039322803110751350751436214663909253860194127561853356398946363439196516476305131460996241299832800658924057702243389433997126256220265337648689666048681659868582902026973823131586663920700209599023484685076832635060811373327141894098684576167347711500365646730300881287873871848267120427982748415323922099823378796385895417554625619759659160736038684567780082769476937576118509081215241879182777830177304701438452160689011057770867374577994306569064119783033230700511587898649665468461317642986365872278302961853204731006161489243126831353986373970590552846722456569337051471943247431110940826604916104096602277544913996750701499911105928586701052987441059900282866289005694448610594882122577014280798474654396386263241856616155997771250760223217724737220889555262025846640768522547229104127115859085773104157524392518879873851199327291734433843723143859106336959753757535978244850995545138346861416848207792368845029470506605428281374255986497966286634192561380543795514736861885228654964844793151636201904129195550122271004846599478440075613476976787415084400891324852232301717924015776034951638724104281591400015636411637755825597378697660154348655255753771343068907044847048054785615339353427126541264203834882389795370340874987886696688792153480415535765942589871765187974144074998789216374348157758431726755385935570610417668603594511588154545044588947270933013112596793147478472473320632689025480146636973133091881345341061355604644570776851646057986668485343450388766397902986233346179054775087571597016301764666622851019598706692422431414979825022529349750502259897621727811285069993228840282191141013368703050541596304992125164828377315966530610595448715705155695535913709277423387687558406627409870769278116097176469985225848145958872304047008669541222908900118306301431901726750650070591143608891832662569596867709649005881662474704064805408073176830890872540792281998614729644812163076394966931490897035160448082302366134835081022893079974378930954387759151468928310097577217055399369142302357018920857986979947121633031358356140295212999880681991710353513990614140084729092965854320248401550490545847408824748468390950546467736050972914089168638063712172587083197552395091742085632203809253470499880386970389635274503427625142841158578797249506602991910165820772463775304371906534778779298370525220702717448654675559378522154561727800870509680836691536126984360637976068462768662767835057151015406540130805752346624648374472696517126541080120172433463742724930859997084786118199892423159379188549399992558379622765008133915238149888987441497453972272042299339611143139001690772607830756305447330919433274755021763998648091974855130720493826175994711642230034304459748102697515335626619530335153952595612856808988098138282621093930942518975916632385804180346035007507063105616710606356237412794708793672488975103369240398576470704713747986377029809169357272231532659053643197415776114357178409832111487707706768177001860190617226997631189704863793139866411240867252003561171375166583362328225565585050746737862785262880059714952580119689383969378351659853148010932378053391521721640762394798729730285505118760316871389438968884071153169060407187005068560404772353535053063618333074663426386552524416485481940140600783735728171879410094837584598706868334019410476970210335130878677734774074821318543322696762854263662554848583826845670740379777923704225502784520650974094383959432380624739910323508815970743248513978528560948684723870026495902560521586289154847570484943445370864670189044748753884821219692155711378348170413927934109263180394952934766661040241245340108332126481859112517861713509143943494133776744616865841781387847217573461430366469577921943110965783604607756430163257356657234374340997910807771216100564790601703357246555229967253704102489789836799571345587240838497476099819914245403423338000801764472538081376209444196272324730301612972915079873559975953588668194030603472946960829071876773481524535473403674680163855197251562258376696806376091539657723037609160761205836167140387037334517747005600937990376663873561155862291159038685073964145477125103292438364390257181351607014099402734964839300878905798301689214005355722419191231481046202797428146977808224048126342201987585591726570274606087844653300887714637430667541680910732177353893700950283148304999990823570784399862876812877157502500672272424245053759424919583222185694288909324902694816721849955692694630741900978220622163405925550773935688534663659657015344492046854982787429112828233551395702478938484389022933300774536844061050331725807703231750933784077646745217908468083714895967380275768531926555147792677699977578687988976506302234964919166785158589724690811252090669085144345816688237479247825517677436758631938426414950390361104525557807881863247772518432116009237658038711902224438534059038098586914001600202582746502692715364359520410757007750246333465870718501167536684518249754578315497983531311855781193489583174131978984557162740208419756168342013197901573421290191777153381384380283230022046821560499376959290186967091214078145932483277921061354891572275536044535623053178890459168653786197625353866719249102230345600729323881668411325053521097319668941547176484555483792918214898475088317839744551002105795265181360574994367566057073720240607987962617969336933773613099509851248584418772626411003799986434490530516292797762030237803774148940887646611965359902238354098802084206357843754877959719839862213454995037812319199599779297717044597720055630470201559247422717254973705610283292246211230350602949676503501543720075486517207814852677971493418346600624363503378552936895690374572746062775173950719533469498760014222068860315085746807185225001885594688682840148786666780727912858520634856860593620156889385934945323505277481491039078561634627544217093715453177566732639897082308372836239730453828812810767175821754390827219111535642724399559922771486516798868714682919248305101527533039904430105856939931210375300332072119439930982271589468319275267769295606708451541647916005454676662541645824354798125074183486233337973720392372186777136644653631084279576431777858693146268313259936694679871736895512916907086086864239942622913960552202595153418667909650506723948215814429417781405321833523684729927735050223343936653446579803310991031011804143026943761683229325042991358077802965117352766231014324210490603117044981086703368337913121773261725179601511694797983786833291327806824096122912745404704221083938763143067977083234439308764387194559624764132205985417942468604060912488193420260381038071323179562995628768586371882615546480957270055239574715690638542772236203589784842118571095429153801508658440759704730727588250415065487048176908356071048425237689218223246531808621802105245223819354390785604810873535643324653664825604596807754848895741218140589825218098219545572270330584959071083103368693509350467576200134907377837954716988181243108963304043379023734576801919934867264349592787456688997802518390652434449914728022704102696631190180700932692427168692675953223752346139828050422483318595557791911406491483637689565843605450900369564962384463938338714015162924647843102894299387469784302864917767343879057192169129561845714105119933115768513032990176101485957989064780638510184077855302968291570245526442271948782354639915777831308663622055025250188726368225513155034116726100992751093862113821237567546935303611292974635257475035468799869625490892461290142829789821639406044446254086638135537917828856597699960617139477789785869271199441740310416705778975676051145314781081018301254808432405880995380104279658100914350029731305331019912994837227636586862178781222496440655553026509791812415109215458613923353423004256332676032574301301709910229314053457387658816446462011816735104334179418136299303188743212992615925657723368986116268762536319135508305682732165816793077773356783165997870153263691279264394182045252978120691542546490153758541806482570932327427152227043920345641407937313083555582034872602130429870152997176506109003668159685553750627845012858997388252730512806207126531121898225602910891145809548367591010675458068665515196536121370547659090788131524695424965454418768722077328088063932568502623924749030197209224443893300234102009019976955988547001692469063665978555587535019984962931762600111674030201643336771102820539975778968615754224839184573323839048732050047635631079287633860272523310381246748684711041367069480702211878596051670168487116390265143627268163618175779158547196096056430610002654626063574563499280422041861604848120160383588161600458378109088922075961689786776453332140434407701997091786506762506736853037532053254010459653015634131280212374473524158206867377897143839042047272991489027696548154104971151091507830947262550085214247293172239398010420260678814127544957604389043548374412458898272724306154748528153215242680521756408504144180483459209787023004730809799565361002225269496800873204890048252339932561717229768992014863321903142569731930271579304584824535268159902014567877740499850889949971335806054882485612449929461643183669201691814069556823440090137517381040351079983014559731574528113899351240772580410002737660385552753573860170848968679835143093913389961615219444828524112129547860561918553467871954790936161747822835547295362639744026354073205553507105232730959830275002717187306267276345273701594642856659532006166779217616943782773444582784252169295229271581875230695783946900555109099929906416960044906735987933964141692018001485740298333511084529519964476733735875898830827597685133785623354263144234345226453102606111077592234786190096308086182651138904010654164906727407046595503055174186552540626020248768785246165053729885820883625139896904289828708473840798289577916222004769365058844903307947339725090715682440685417699462923113210363812541313513346202569542895571593474689774870359215523724656269810010935765232218781216760476245172704271624131954128903240595760323491950871921246982356467579381412401054463363366483046189145460477644321679668001574739624328984588240232587056044092168749930237737725367782060563125555239397205446912852851787648512310453684605767045691373768040387885645631226247719491944452495078931104879522749968979105525064480152572105843092944510438337492450945269587920861722643789570517790021022741876881102027272440672878417619933539332946063405755338202787111156495244710657092608807110317075822531464410571499266215343133457570184079389089434295140134348180888639681668661667332890975055001093306206248675676047036232659475110619167114926110240631220228168510616316052417505634975814092955801936842674582956307262085765010681434198187254368674935486413707051471009784809911116719068551211865605622922621344602744977354020648322327681355074543794312692471096535520943826888565866334829619020556255721406996091329456327113968799223597450507934208278951421402839823430562435894737083508767393596775827488975843520031899266410997405751807680859006566734476765562401287775921689092746809183097674821709260338696924062004721323407161742066551612905307906240107956613779056078972668679886361751859891461898947780279805173739429223180503938852288229688912607810857793985215394190358749133776818081161405489830381960401883842543051174575601964786597466535564722814507757027982291139936335043734996066326879468269318116370041784301563190842643018073230645110679556278608233691790474438638756276857353592769268756569526636178536435495564739647840493941353437543405975627724898932576703498489571234129210179420028507595491845731917986494109761290816667155508050637282044094681056996435055286491379066267407371359187047429229156777321155881813209389919192196699747659140435602125845575973084565897666278706506266126086977105848118936157272522437146365697979980028301191722266180931513262784116956387813626082335228249366648689412070773467550943300392034965691394906663451422971854929954969827194172945929799640290493775606910551610026234769281134098438198063541210453240433779164972559667875568949883474273311452602687734319083602265361145651363865155197486894174194200730821716633177977535577212065224201066472824284839958132652368051314678888763335931234081939761261329497797224789456692874571267630991914620973597937319500860853637769722414422434161309845042075315337552551040592457883763453784615674795810465868708992332201792275088238338950186892515465906599035773879125883001134946508376625332846323558634996578632529671183213733726215229727341202288485241769505136222195859394837508180549031853095746642953147165271569578918415233286821691848054232007909523126818008199218416093013777450933276060527296813284421185264120472768126089874423632855128640225698881020040199949700962545443741418999419894147931420496585167001814252743841544068099622794729875412040381099975020384799661944387155128318502258958650620350942003135469379824270695262505470097235476562968233475627006217912543770760879615617726103482576365137298604469958187309042755468411591521744920018587902758094381045146514329914769684046217546938079471281816550745161265782127191363267294868800939584214571722960100593605500506529402898652950695506852042259860291417649740314427616453298702224565184066355173014416351164154380202947703838940150773834972768506591233963208503457287127164485722107379685277869974953734642604088268384629699682132447369261786862147725458680248482772758356495923606783051878682038905188461436809554687816096000593629141953580301900270833141196803998033444490178420490756070728671805261051476199283679850956886905133385309200591095249879880744277665012665239608809117082242204469965925160133143803690144128365137969419789317414828855055432408326333693324676319696124491460452561542910620512861635481964882081137303726011895763767891455642691055788049983646737641984463017898898731644676312079672120732471283954604879900668756821921436266543522544648040290928221701236385931818565934036317452021860886058097119606711506277940958772837667544487182682248051365600441275661024743743866446045767576327203119022838109987087654310571612833955019558900138825735828279941697171344974505405881677642732966162593032516458359798865554240993545599143610484197922720027101734451395411990630596899776464495949682539704160640483970139950664169713053279473830883008665718315111874383395629896604857024821269571758558010959065098985904298638337883813498935791522763270354787867724139273564681963821407792877251681574328315852709957892126136809417698379424615174479223655847910994073782458768221147946300313746454297658719925665464524458226076373275718710505170149399838813255400933903674858056316433900051406293798429137910662052239273814039158796004499031502648786490293958524618290640438375607111638805840691643606538867072228250914649075103825518830396793869281897636027643651715528993264861860959320616647385661265483441772857644609347130365529011277305973083983096871934894401150000413139414451632396351360716798838861235506735436391745591170499850411306101432480213905621017893999729688288128423467607952273878185164150412515130673650780287531380903530985928365496610794325005538708139502719520311025801101237781599145175817879431858439927583852283982475073724335467438790442598771288665504011272437693523154305614436487108476301858003494306809117798594609025415423498730997760357326690653138089685262222728151126900618312783500462269974901918867539686571219927410809047149673361125772798410377497666108120118999737710688413524859840874557578034443665254464351687709242162670964260725458152592536404857924997120000471179754872583343669179868293720065779916160424786502312463875177010649707152056510036662538366378595358273185851292200846910161783652660196756800827121269323818371279586041327533101936190010032895303411737939152604002119758207222814846770103343165364350995030391435391284778759964353722436615371967179940905907199292117898903334119656161385596960932673424605962979694776825229197300470396073101951005039787489937847608754942515386207544967509055606333598012216658203523547263503762236797561516251118454796656703097828376753523414202064122173706791756201293546452495666046444573954185864172720532765589849893026175031213034090038616250769016283693942699402861004413512658027874455032408546182223721290656849891594042486000866625150553707353711938135946755079059696463648641478037372944623482799522807893426570829781555334361570155418979166231605357347727548707469092972006770472563798639342112305620698991050405742301576110912508144033845939208447749390391364712134412255564238793477986369587223447560578511349577461303766962977132277137655699295594876632092315817683274112472977743958638356470092058967811914618742270616123344944769638799996091375348725384824311564803588429212663457285164913828191565683929778426114584456252125409198265626770640484031674905224267451546587168566390466300624647813839187194731051458587746521280374897590360550903047843273960648711064764630869267303574406897709183880359989804440787410185784480701456518507705844965663030641884995171302820329490311128963728118177547271630722129638347241088106253056261157883571326651283700763603255666596912999847987058912389011230304318379521328086233995675999871446277631915273718608493501251302856704942133292476068556015307161556896456103022458371783210424585090189739765074206227778189653759929946217107992309839537113481358063540401296326015162382359154848372732225795114077015873919003485695861110996617578677142809566721017723011485109004471266030814441968113575705378137896898769933287467375304181119477576577382005445359095683250900089046331046341716089720344415997248166586554130504973592055424920733477685555854008103623479033816988044115180660957247824559355868576229885986192662686249248651873137997980024008327584955771645735957100167926656496084103249442971266260436133921592049120372913641103611845178662948880004781223878863766888190585492697875764637732506336730030327935415422180652603035027621163281042423044299494496033313814973550793304518364716762205997336532306224590926852874583520832531197146468035449960184851212906777398991103938993077350724605062377922200672776826636186207531125783153240206209883978069955285054665107515159490947788276509782311076051723142246513674785750074282523428400717409033732038929308990987750770250876304335999563942793384347449575938830028280440318556894129810158237237336416504204527741244569625057186631576061120105569393544898440471193001529243371930151124603241396399820398438088965679991556044160479471951266796266150625359213287790831511029906670495555729395961722204842330167257476919415615593877853115369992945189739832428469941510933204670215039609094180543726008903557109046207940527030655962419652873832783544822923676581898432333052153638105762343642934294407763453713440809235286954787438908978989671464463162010550269355340577893112499373129473668465785082347738493447873681115907675614122713066022845408376666407255512054565753885010210535034225664375913275876986571739448641303594222247978361686959383165195709928002121431462521337743952285891760497063713382628878452759072595357624242786012341960882607906167059968244322314841906662240448449840943640905118757564965466257201204037047128002883132932910580766897124324540790651745398117461387609541666632215427930773851349187756259572969187894146679924737940494458888550509681030794917996388642395960180325985623426442922357907796335551775119954256215716139523527520821148991922969020169136976732466022968339068653597873822230039899012248086932588426977535993798504825788390509371124160000757711166705875276678213974098533602882909183457810321325890701575032488540294722137600319053630533972564435255994642978856544544850510136314454308500556222374996673645028477788526331975942180497823780254871000384646603500935805836435513606073119214151445561399985268125407423613235301381632897424125787865488976818308680732465419541732600747226650587443605451194947731437449297097774763063759156752349249523356047091380582729274430935417781701271622096031998435443388405289867255149217660593330007940759343705845026831318442536657251806269951458430369108080783886631516113805575924549745989771474344424009404396775855392007933551982770088937442448147170452584562236175125803431734242378951720967941856366969951357416865789846458879797038294257403135464777935714718774568987309951498213692312825989675635978642228948327402833391200339376288058084731790936639536073297354377867877169681891072828690663252759310433721577108775830874298112819838309632174272230625407083242163075192880911224980454532243431918974931005891161673726219299562640561618350704577778503384559479705957933275144581425665212773986580650628243957985567459722797803122188189065601684020420461822844601170055262442667389000547391030853937257832189103088482797799713558080013002149696685989816360683281991816325957874916993842544533848196374244638733265420266049860226629792913504504102652171318295642701501806564704976793876431687754792707452659545273774691621374893608891741006095324402750358036060098594129896367940016350106136598015352960340001116254247687099447983761536615670710515863935150031102346885702234859647079634451397148904113812641666301828898216308031174545994723887913012606666554125028537493401160206376108572523578727335530994176320141376784117813588398707293489381146416059446425677075749576888887582349508637838928680284883976025979516642436723314458201710919039558519930483839869343159516019197312525389627141994093951155089337350306179244682744548275504637730115102303875134291467456403521686843403821191233257095639477658489761401661518956864727313724259689763566902202999432802608945667845671328762090062900997707753270658438385628156028418634093454861864243347640644960543845975656033517977284840831757872453812992485582095064853130603740573182397791639671127815346985686445393898452877823919807980590636467041306562612843177794548990596883249749690404988460488661009038706310873847767628338395897089170159925533357396356484794246584477027484503138813982871944227154872444959563570345075135187733757363623515237094730836499935655890164182141301884540430562877808723819115081759081603401348111356374615031230644682987221292362717990392153011999634761087839935274111562372331837388585488060499365245674673544469630422608057958892752734983293524765408807680539661223442632725296938450989563454503864429470969020998062725153501911250048943081041662626423511424558313699976247989804289116950726325058638308762570146395678090975793457454522696850453717890587256456697343789491475182541247030041858140784007192322917645068992716043772191474868793808881458044989027833442091665125415035390405133442142012245140707931973317917258289080829842281908847436407297814024049729653603129112217890126538987487583349718376687115359863220629941836738911958942678538150429100468042220002757793712811119797473030953398671526493967626619072335845428651825175906563522933666383859293091551802705147485183107656009287272887011301015000301331478840291188754768283612873316460148114499346900128977116343841642207954844833933773939046819995143307562869570644839043243785151023472810576566738598395053161950880279505690707789027607174733279948506998640394536060336247441466577083669914802113861485732618598687153496818237687071533342296684507198802116235476548773125531592210105196573846868338970902494077571391395244141713955799213394399087338031130838076488670766114840026241809545066176336028284662459462884892186412682762795427254338192099490804910840388298897368724362427246980245125775929422821435680012218783166842357452292209951874420685867040595980442805206114180943992066718680247347677150774745450105065588400567080581840947475003322927546806132068348677386694545922180180405367424283575887981059258089261689057897543690010493858080925103318060155612779334222096145315888800455769566500110535768037726251538206511167124727660607006248571319297402885944162093865423445397785051831928583101752313459744220548993801938595508766547481232056238056910950946457439934319791366799095023772145910949473756284857898687571934506964377530726160173925443008679924577995903252537517164697424983768662114669312817256768709894092422747869007818297932610999013447121170553555463911369166892664903920672139616869915897327392166508102001475918226460991487217889500691849284946965108227385750032314727988254109181544112890670838708854688580182854979134402539538224788654005189775572025158364170108596082023541521421166900722499166341301248392709946187116494691742969400114407384237622709954562352294483187149520291095089465016328308733664029503566829694432681913479903464266075458566770428852743556999254375269102785805839598667012878674405537464246119317017538335173945022083039512421674374781405264043276666444472897953193881354733070124769215620834441826776210253642132389839198825909398058115917819079375158935495965505066907322201537715868027279293674088639233549184834496075791820190998929110322171924377229539797396821250206395854410358569099152028984497613530178931917750686787863210956878079608123402405221990784953578158770500043795059579511925217099285983205459918056351078655534518617951656028876674163143158493313299583522007059055761473889524767510248832077201006240078893385628496557633167521506304610734499848383313189309662151998245098201805266801392177849751882113079376363532728451829193892364146154074978196028126431874840818873423969241061375610311470679545505797881906872016024608920695121552760594755714605980087518881090443133248471000355201926850214699876822845640075508748008832058374644375971420289464622224035549297547275806156763462875129237342183956873280028352655487578889349621705202852739901839831754139376456474093276763192135211350881843677525763698984646371918198966709839389337976719043642299901742685915519045287147797113110851459691642651036655891617253090314009884812991181707242772516457448224661321319760565871600088679244793089521068058379140735716726527988322385109050185873622117266336538142527003107455964005063442991886459758029554075149208319883228861973143607693140457500727025339820590079579228741773236454240467157969429122934710781075245723566129157426866251685913869854469407927007066416501840794645238392728239163482214713398846433247614395237951686843984743279354527158362442606551395320347034019322739943537513187092327684888938278461733302529542629818146338733090208380216076514096910812823230300715977170410260043445301949480789821037345413209926639968325534083729165518627773563513339864374359744554662300157111922112134854101990604297112950693797162147879391377527260442535602008956762538405561314439777036073001387704755535869134237108102502470662413585350270881825650881388291338064147411300207269120118243419764248666605870832844105763206696867038602189925835788182322794270295289533361815832044802665511512943176519806234207743465903372759806567960623353578695621597895662578778118485559333997330610055624100945832533531850753558487584379393497149266427286000847442256451828372513676401562475483928198942919686959829011071951879167500941041423729360494070825259966328256004326737679694537924195097686298862924282295928231924203338282427172631172708019403985850507857013195514783878766435284698987270545059020859612925199979601459846254948729402206428037081636605856454502574899474944177329515332610929300467302114383306265986264319543507879593696376733283788518001805683363415859473560777950556644070414553141656139474528514219766403167296890092428697511330328934513020875409471187401644657996092077923924884189979204153692811420035402041744990658801018253868840789190394435956659008343040224162920627671568029955200344236135945173260977332011538315723331976983839367682891287775241483361507768277225349040708162272846399656848456214773702834950614296905964990164832576156158744664405806593698188653376759121853510698359208212065885969864137886885468259362131908413346652447735114641448675945479847442669469163385720036285105285524234361465991064123026930306288545934094000023479096974276798505615215931556283244146270201934212185007861530147257068398317194458745493140443527580709012965056443801896926939206851291592037443089826693296211512043938697423076979831014209348378113562255339684048519108948819104199710518717302581007415886775163840896221534707514154302608350496665633630989971868016677006122976555029860687073390405967657616234348444053354761482045225297714526637773858104749939373891927263940179161859913215062735658256309265161939649232786822393351971172957986423680860968817251280096249485429998102406448142998408908275258955170550096812168486470154757167187541901632414225735132479214763106870024555977628269825462470288687975508312409191334937269870295192478162224124040700060876145906610894769501997015178507190267707352236001172596025274976018618558496053114173254172025878783244283495595058506496078152154537361874305469323124386632959133269421206863955117955512347657705567763711444456442755801894014456122219231978813917361028492809118084775598205265245168942606691215324051700496295900797256270154709103966767631705871925862934512362335376602531508033550733327440107056589003555943652751840518040878225595670426401879372683849073309089763375035561719566170119722562547750996488890892585606423368908692730147207307504449709934612933275684667691170144092106499022726562073348752326826975531384603719522701333204761506952386525170507006652868619737032899267348372939205457823332895853682222021341279265431143772483879855595566265897279665836820719087845225224514949482408294819159576824558245091675857236834618347268439897945120228900277383120930102247365142770155093275348435937634113857286442686843209103988360294217918909994876260773161710481945388019126336012380437638412607256787538837194410989383288153319966733386344219748354928832895065452260553530921996639062711254714613935500815891633710453778438644914193349841437461817766813150230707358686926018800710087310451542746840461593864733122578681564955528435509913263238621523005403772258710524229631321022330849622851754243934898422012739339130548661895577473486071914325693374739136881334260437597038277067356783287995099163510705767858598379122092567653132933615142628369302431374923234091248783609338793419629020825550977793840762528358091160473782297338774648188392074539974809191792306762405428903185684560348748634103042919061147847132038037310234116457216714850032588963931557672575461303334306323720258641011009075396308180474526361888848602909427399538282867615941989040062667813151458928004184044799644126115352664923584997654633851937679686155969560301155335451682497683451700733156151879172249090798491918671078936776859466890022249913628408198814779409855008117029773773608963331512056048346844954216349940611791440373233912099632451803793030538876832411569759442416680022193808161753666078561773037840017899327662043438922409767525845106845938831616182410327113285989940553264924161516654204842236702091654009687834320241955678705522296752077692591172407057431778234398750483526999554989124146178327410991276683978446599884041181324983052745604821333384084933165252665966221865829692275289955037816074702933629847309317527118031485243691561160862032828186430930432543560574649003715909963575160413510208177000227866394589511289056612293592753616463198264910153119187521320249907457814843651768905624245575009182521970813780144841172018417710677590680172909375608111570424375018233148935891688093748143200744276874597275209706963820521721870619750559736892463704375788507016166454757670257595477887256968775567610627324176452320585923962773195867415023097976250026631945109465885734855306315196695287366861131527881766752443362838957534388949293779194095551281928891334248148484930249341273860099704550672385146324016841992690218481449240224280641316333949292435884794550900324636892585639187134332897005932095755679907517466402009609450268578830069607712864773284654124577891510275838060735069771982935990287203397741494352557529647205494017603430747247782553529259233210418928853566496410438782979824084446558679520391862805188819082681993142699598529814766766923201033048228817347621547139081659575199358292924124271553520355131475744502692107579969191970957887816411076960488946058332188508374390037505279469580873455887612676934462016708621286944007414769458475248359160533377758007960807004917489188375216605989751161501719870031840050417838726207748336449539874196736837550731917756378921723997506941573998984755833600197720942443889006847426274387413820258652121366179611404243479256694015728118290814099217313007286159803111188417852159573098033886820984783268874451976973628457155908981737424130601792556399177492094039531090330875084321604623234921053685904985744869844900860922576592481464667254906447264638864282535890588479793231977805984114845791127400582420005556742414818189349368439224219333495434968876462942537389892576881764573247232674676133630843830624782602693336236224599131204235130656971579755463607569946433783642255116193508742464208551317200044562169586527468051328904302535705851724147123022413338867136722330000455400683572915422532968971290768296818372774278679817429415219168553435967314154749145124019759369217938133590245355401617741328673569173378765930335795441091905696651912819243207966460090147222015050708989069210777115593052128699166950039849048378281562924641534537441306725271030790479654444795229757119825254042174214755565354277000740231872747588148351861820000715558388037892728828160664805818302239178922026714604120427948282071021580408722245180909357930799428304680074045183465658247908715314384298276111060607278191334401213769444112020664180521710561120442598436089508194902514468255184591587707686847711058365034819814450143151602201263547755701534228079449900815502497230764995754276286051739692786763241248638526893771548145224483424017271232985370998385432661516105710062936566698950727355044597025915748447972796883467524159649519646564213801717960759368254733686046228342235066166260642318796441110968929005453529992090189852930227390331469414953091052281080907335033379294913139844607507136763485163841667914316424705860051826161166966636685269797340147920338362759623033032343820433359766474029151714804718733100033317438901425884626655198545325995805958640461534425682108801199930216511343683170028778299531736075188227258781175101542105959207949948030532040440014741453564629180316022393505440492811837524762339287056208276806602133781220453149978845218622852056008108012696116568083960072074866943989559032607935002405262487910906692482862507702606498396339964226798956929576881597870316243036018236952378944354862612956016651738222165522859906736801723490588831141907196969466666096505472152268467822599176162022618900840558655969573688907778139478061506394883494118206814861190275470176094787474438620708147218503517647528002245496273611776010419962395282001416050184496504597582765167012077257575465073363574956170670756864879481037765111961980329487907143074919050238472872015820076182950242950860328750813597928569361046134130091126289675106856798598828456583549190384190084727901531358668487408185335069240147179929603216611672680236836205143970429189266048651510373782081664321040144876368195816681109857830374569739212866838937352052955723357391582008504734949686970219584633183041843988010270123210083811530395140061824471708892092550460761606247052969607279156420245361324052627068848834574618555195009079371064494390355592932916918014575025421431051136117353978350039474046287289672012626063252341649615899901567317422252138054306301640809374902299087561173752349339867216750330874092961589842788909066511306562857174418939175016701783530662751990257622779480501884003481500154438499283164268537083608781484178314410393062158139061482627543550588738548078717975099068828721463789012747705373017218610715997544370758090899247135630936109747915143686265189216496241957714854011158806306390776560222484927466002747589484973156265558313382957221164363334950096052408180444305141721906665460989470040821026763471857761994210495843995230508141474139658056155571946753392856220596171379267021396650931178775457905082837596157396927150776614145546276149558466835506632331185144753929353700214607218220101039170072371485576587156240202757411313111135734860826255400471781436593842084164629431255284694576708508233762159137216790652184940340903389861709634440961467360998248144885562490878799017807432777701573049834143595470727809633656032319360647787904398392886533271650629369898825532796953175447757868208903469742820781143499637700870408127129092472044198246307853909720437892374091274965695779481403688318445733476995813526798643334106136258235628018435321711217200021996409361181519746531070426387125031516986273701868153749537894847029171851700701595993866464282848409309118535878608574307643571157839597763990992381386461593280196790181644197580615478744044700928772810063039306040491934125913959567021200915117073531560866851836986659376415035988392116384132958795056401758698879516498799732324406314888815986962409490655582902191472911186007163636484447197997757687513918981290226064445161008504925705811737331075792458873192389634329823485779295459120902148212647849003948022562348819434026138750143738976139457640686931568493889967104660879187597515862365748866845364142928377079396607100339516606181194984322315194535784785865198136211180451517007456408662805733985389757669242958038364127571784196851397855554195394510026259802769101061878685657028593203831014706808824255467079498714900522500712684392668342095479349398394378428396044335159988559201008833534697070978794257587330448522618122885726925736869900924911097914580481324987376189331226637125578519569233885624494156680153714840085165102315137573710405259893905556018933124586707775764709270653692885881688438571884282719932146762860988633696340449703110903128543400614456817569827505081030166401221245115487043890660236458244021701096337262465500139042672474717569668404733392260771887851505231404408525078622036958562248937346164053591496836914389873798839479705261245101826041672514289197507724926251869185361059659917392521775917163389206328402847917102166476873573068186272847375117914415241318711401101735115786487588576575983057053933403520703081604174473235776123501389057328709319803352115702056630585442607732993464559893159202145428780337738320727670601522698213477593837254596511206206555378021002356626992015587690277836536227287550960221101247565678502743751678779662760160054885191771421476409540408174161646680505859809954399247299569388897487831977817488526995850227459750467066986663487614215469838203842399708967402869224128949879858856436901337339257874988447275022927153391024532626431412112604214014216887277057029873795491550747749921931823412678051519434780375912246922179537731827633151036223670465932231178382604928864101851242571181424900991951773807260770259062776230608757802532455093077261405948691351362567916934274674799230655317917947940377067115660315497087531148458574392196719791343289274041657701370469127163572367566718214865030150507837716304100078039115617894600497271685725811926279445048250330859714694907660732214135520915210586228657619044070068592604632889707309296532199864927401156694584617357520920637750967417933901100088823984517353810710220358643429863976060041321049499293871351257727295923026705420737393908965460671242558768013873016640070942093031103040297190491399478455323537791374292923551571148525599275582296925395730331199444836250987485249623081692196996087600447024516895312083330990786132679069669126264527414359121668936921245842034729132277553098006477129133939242345309575474643217824070740359817011449376107684030726539819154933577120877419181554684880718205147440321247812114784754664138619772491235076797613982082693040426767949670282349832042374695651711982863625168813476474272486655616457899550776947913195017199813551781298229853973519662304611650146177642170546142227070314764178572747785031103863338952303111738161079141721070596500475253112286171905612043122571068168452847664595989653800456388835939996677418329566237683802662902657522368527400842736652155114372357940366627490823578792242846020617821570263189691092033438157158094476454157087028627398556101434205402706126258574438594229921397370888110936294101657960174254000643690635705739860555567300088935020848451768191237834979022597242526019303736632452170651604731658047896898574881038089426059804666564779004943962208019100532599785361192894532429229724773101046699530236292758423731211262975851663420265466581032743090059625676710297745983996934903713020672713272566438475090750451492157663110630313396211457865597887511427459840320288761890647624732135981508678178885054141545100499410689757394514871263503540270346377968817870945869607163169004205155999859832038515422358655720988764249001292707559801369114396419478428598893154619018931925050313493983976983210173621881742242698007375346657570598079648204627965824456604829507817327118646849647575846556417177565926044946178969293118449750807496095899851824336579646912884171256596337599342676642644424285540463679027653436619441218197792429293560736669732072816580054941951550419581880360025228438546587617135367417546857411433595061458668294078770718070933002595160110808361445631961766188426116522220530221088818479927400959686089938255886553446163434882216657772016317587282706806687408093266200748979438799311796599248750938711434084807445260112102183069931267797927595100743930039562255382614479375800415750339462295228008732395642663435845516301247380076212056251299074204014752308672484059517217923814893981695007970213708579225300432118939433091005539889842524668803487591189240208840667652025569942345992109186343088419358427589649441905298330791802630205329050450036660623230011664775420528158850167953024945823275824092608432645265720980476693788790292740049097555845977985893457946471644770149538612484620783072487573235559448420928869512384080264352008929834348622965491449032284777802874068261530535419676359063519031852385321195056711018808868308281038290230193812242885380086061359561300102077002159163094237262747139208422298701016089808786055885757252916797571400475993069528288555302629752498700261313958993154325671788478265373005001293824480168121038882525095128856476244474523797199401911889084295156849730134221185492676817484012167450010710199769069688089133925489376928008896145340684064023967682067584875977715639780317853043388858677718706045247438219726138884052244908844334821546145581034006212926378233690563766427468071542990119171044216948276854540077794040217470263232729066941137855080140818224656757589727065090445215837169306974819739515701673289922365423841373549029573101650844331800353929582720352455132135480014112455492359121494126318611425928584328037629943724479741746619322195719542691508890068017920701333120544157858175732455475774316726237932894156224766282707024904841914389572087133910466047738059666224497354252875263854676977028334981717841969789619733388207718083106182774441991442195344360234679266401748701595782032204608594005912782119838434372962372035943974185808611054207035356674947737290463655151069733849756544608541257570260350085987595841228674482432920957989758608073484327663202439847258407436873879652609954256749046416376750530077117020925509029311634281065252393724269594830055571671879215827549232422832862059200579599341102887273600245756025944070564569542328044691964679113529175720103921326365745524384964555353010773714114713070763358872780761393496798942168284496856324150586188296737464720867469604473286405083112116994443668442848279624311656506170137400311319824257218578117612142643225720286622753897122605394306837566765488133788832917973779413344051275838688589266701964552357733978155259351473202564343454929945347338227758555005101858530197355218314356639217901707920809649039210914933364890415873345250194738601909142819590281047377294023207036968608901119947339546796892771024699139995115464850218996836037153876841431019547388748217381828424700122136634421030101830404186984003550838808020894062422112726540639622395570890376553895422316945013708457311495788315987680728288067951282767716982919297099562359845545010509715407514242962892693983527834594295053258004637193627486311148742647666885073700969915059878027130624846768214669016587413246851183629419599682417644223109097031592452977915631360916498373512183476894406854751906614994766799932778942170637122239195216266183606644919297306377464082159776660501928125403562614916277589243559981972626481863256060387375815398074646118308446868088631063006223524257581019059933372267293326651173991677497250014052871781467524951237803561838744864430855479043368741709153002794446487389198588921672875444044351121674415725482471136502562848592407823313154734001150059201338884005603312766067468621581964577060416481328224405690564374701894811519795318817685333352751098204737086929675320929722190447024995730532672630598896558889352397770450776796086667297062669944919615630091019083796498565728939579541431695630318875910683637180736882835491447503295145388168650784628587298326781037089296668519664710890279325817062050854409269654913857097944952163194102421537466490905944131664828940529608945465291548825848323614527698855409029025720175441716032278350169326475783164407939483731718664934259896379462635394237244863026764649854678875966079286072624321557180225614025134356154995120793817816962140506185882459102629504974565019860509040939848078105766481141486389327481118542084424372309313227548358253735278064866894706776987630448359776591335031022265426232290630877003799463210022835890721839344765779461923487514931287790144923396605305891167804432752477804665929698575998162382268664644910487056690101276377680609811695984939397750046951128275515261157786484002486550228369687734456944568545101271022981268006682999975083245841684691480504854751746277280449523321849742777726264850287191771757014461432819043025736264634121000926587966242038856633288136990678754561534630276050178874479485613778121793824281750240194527154092972714097239270270493336069547858265347283473683141846429723982500749807077460762451960975158274943619347764670356764283599199020138382193557138019141357657474283822883003759585504473888254344864565706513049788614179469732285931109708062564992771342500086805908058182313886073042735496896700134406797753703179807803574961508158171593179213300949313446046872637183706646958818766358768754606359610392302758844023585687620153398156101834151025461704595399475060227007541259562480472921404709613687271187058292467874703773917903378868756300792568684673739157848656542039592218051464259683109829178717933101816954701324572282485370093078562955295991702878169721796413772347272805699643772495245300321535667449995362842808531273455401278698630831594093274282715003133450283269998783579206594230510298243919143828890336254744250567275113289691434888688774493712445351683422508418780226327937807386864249094570746263581777470430957898299145690164798601361956562092538858192358460570944830570993022271586086079386842237220661683645708380253988718399996235889245651199887580881750721634411361366591918255841046286309638158263772125461953405283033330228649474799035117037191579368195525550488441025274114861513028153742246481605778211553736947157860954446232844963341054595944949792438040732651382418479512018983264595180786177759511677093949489974156898793110003989796813346593021408281838671304658694620314261149404657124308177212404896162023874285191470516069725892348680390664722673234151731777992455017528546807949116812898077389964846278541079914114761739164178591829784608435983864454932904544379201477588047412930767951859336937178586311147276726991316033382235636090105889920825491114132755715253665015701004821166666535314401281604832316374388107805517328543991862259997044995321121764816634581248026646576564271885599649350726761966281040194833302030556580392609741156705818359745337664449447498549747463303552225148565003022962226218139090601608591627779231052247281051271322510478399457573021428733822465330841714365173815638220396628929022212208599141487072393774031348476804932429736225017349290915043520270165392820312506447177541497698668904062300509703731715049820630282147903624613357712871762009507790402647714819623888879047320027696599331078462839398229276038345499931417847148186812130130001362870341214502110257796378387047166635675563747483722481202508724690163995291347633045282961922894416042339371638888924572716916944698337253284276621466242748531790504753419598744782218835163205492092199455189689058654909030605338633725930588742339520344646232849194009602004975007238402278462113549617706052887316609463184365125573328585206740151304354154979927428072416258573325936487680643235416688669178579697440707936624384791542721774895205571313225738466978448591628589049165732824030898846065709334512319456441387926286121079781658031272859148075013682773816779578468618405566707096251436014390395715494395412799798163538335008058070126110279485488110824623581669340418678286509670736167768709981694118947619097121644246358477302176222178573222000993887101871002542979885532508926387172654303328527115066758034876909360134716374011950665144789840090916538576480714371263628777428811251918564519667458045250482540266665931129512583550802858431322891604598608916847221167111783328450813296884618142061102241953183965620595385917097794862472137813714514625479511260169957077353605346475456398720438210717384449583871733962084562863187230508511243650193517955014358514331072661540936132704034145171951925114791404404413813951830408773003916172580069669953123381651808237356080434095632854041145959041352284016927469823033082781542110830057426595019503257861311139369435195709546267123252842895762008126823811511603493058771299181822616302391009434146692339392353330027855449472216373266862839575218593406586895370603082750894165534672434004971096424463732871902535499906652383294616257086689483138888775499170253288677651746656855975439799428105914555693239559116532700773190503858663583520848434282649627476754340935985642871140030043282063984052368773763506841667370191269181014466470601921014366134995467170318737618345361217433180872651228193086631080743081184948675728205950030838649802283464547128575619691739713290618301521679514040336624668255934675809139589175526622348275341668140452014943949811735129160901536930386031333505465267854569341947868543267169981797960094823778918216865234774460114815714008204017925482167766640167859394954059961793209963043637890794097298763175051554785424456571222133267703192132122687738676190442058391795246766141437592360822472584204422635765191748739896107507847927962451533484189995413898638241829373061484985278945654280133046895094770286011151854836029266972153624183419700228227672465360627354658475215414351380998292792586818483020063201818781973702292784562320680643350834176823211939932196298779801210542083583271390092166261850697700836631381620400585204505327534128166142866543230976696977627031786533503680080937825677171669733254410734892836681995619325517389648666653795187636117829121697462456865288605507427927593354958178798805168136882049572410772059301208375376248375481758484462591442450034443442672707720642118125504804286753235043265166387929647556261100616154664058288219808813287005931580857216909376944274022911169075187563334065677770632081412030433632428391252141201817693171965497988076177284981002440839533366611136282836790744596790412162730078889731192774942111354092679556581704197975193124181167759573464513163021624949696885801531058921530871357286174311816444646977452507698108917302659911220407283324184767030889619906978322239399379707290840631440415266441059697667520364570572807737721009288140815793958896959618512767858402533794954084653723600716907845891792365202277745629371685650806412127527842683217778091084931722146882768596967837382742929216529902744007444071327533207016125386059704652602280755143525756563524006921542563596299322341995482980338046711250029364386022525760824209421881016391041087389271138995713694090268196648565819706301259765529708275101632237548487288448850079402950897556250805638627513111037651225721556091142997732705123506033870916326595269749553667310280690288499688677703396797981937274962611941856426154533223000339344719060275214270483105380918547213812196602274620756545998095053517522236835684284390065181865436182727528436890597268469338041098792823292173366598711245768717085876710984025489759604082708956755292027954078952389771751204138008075537234230608023496585697092221387215629902525745011853173306207636752916510579774600052253413564066749234655546124645361475366151118121508857653930579886218834864279216157809666038158056479739570964068205067789695469936217386288448383053047790699374401236902395758759459037935977993357896384070140060310293579606343168462703141560885181428058029954773084145839852510100381423966757606741686238175707650716080979432085996696231962787152226485942913088808912907208598406414039666210914422538449965390272464710928378509817158418667917686794423503815253631656753396460442321809571069605875117010804135250282630306043139427647530670880104411631778970908941325270801399024063125811300487854458743704212917617820496326142922068504308441256546736546832431228768227131016815964104197083401093097526526785843670486992803876371186188281125190144926441832734210364044434438376351896067172179686312408221782660590525711606810285113937433032976865483395848627531917232965506972263919225886228811710797968520350182379689468288175771406760531594874125783232048716641140212206387945490072660407721255339884783799288931237374573713589794566642604655861050941774246949140779991111693538679428899269887234283703213284236692206964689012861649539831620047635342630426008881399201876495346440436697729466708139848717500966178669264053097158853475608167836520778894264309186174835410517257548306151574561082382771947159043048639050569103513552868522404717642764907941715198678555948116174291930438983379067178261310842895516990720770611704998027783245217949465746378019554936877473181387960269206016182175035393200522374327033587744321366742809251943185353552886025025671014561542901005378376709390731469585171628646540441891421624782314575979434084530129829761002445698445669607780243692844545621360996398694377314551109541695261732341052852320872801182402586495891381387413288884822889409320397913663038306111567971147562361867527536155365699508669105895886248961817295452766013584555333792927784517570631765886170233155609736768092564185176355998413165901604480083899516166797681281833193269338070380929389387060810172433696826911768000063312186578339512134375334718238371505536690200105767739170009753659690860694815344256014031499609145897429726557623694740000893339401841499082654955782040275597923729384138310322869801180996332580240852828467720254822363211342238538797856648971381143049845319626161726633125073380521579471210778826849315331313789570137698456804212334515483096258820444218788585086926396288178720088517764172367146093357078934606514982012478899881609994811039722867655491278585327793223726820794275019572246942253216421288058310781833014207710252266088296523497442496503322316470490810804282349900540206659060474876528742322643339451582384297948598136870568392864299227493438467619575626180800335222681087648993553345663177956911104786567928902542205228640133968086641415821876618119708709098059938214539641175020761069260826896308639905493427839453125771661151886110018514437790261361193270103593095251601606646406633847577125160285434767079591723625984524142981211719100934516195517236393140250602234679202097296370267927674079715264226466363731080785686987238596961090270738858416829846894596655017897238054371486041120021758392500536142291099431137489127329861354867964592904716593651970038413391865847207677254569909216369843505096617594713474479289528327192595618200755449252472753760883339131420747579752903427745925972929897337133918739979742436453156544581014423289308906199510699890531027500326525730657305050447076873880845674391120934515179126428797927041042605111517140090032447374579891826432797497117465252892578664643831930193356162312090483266351262540694425372185156560404953571747243292969601424132727782209040578876809587686830748203755282742274037579094766863696184236056472224747931332055298881622228795188977602132433490261657367294874460609037699943764000805950380675970936107409940881237980445127387891887245675936963885952928802513021257178530742857631865934220115968656198805182228391533625144032150011976347686418492160967314388694898097002753150869992521331965190049713809842033973673918632844838689397966847238212208406132289474030383919940249480923576934630373171163195858134560837796553102847671168307524390550367421918821693290944400647815096252168243920883749946001751799151659332205735385196576378280379617885234233329560231304708674927502490897704826243262443666973672107225112046909394695698602384907633741578424874646066377969570811851471550487252109626500466726930998549510698667181867636577136891179601648580667488430959443204470630138435631570894076114249247489164494551599225786018176525786794694833848838329634469380084497300450040587832713419704239194049944581197135142830284731078187016887340006226199585591262747663854085490469188906721163713815821653962575520067092450086565141439908170681673806388692721794407626760461996790143453200895678907740528506648180806517566691536450809448705589954379441362152734974005433754394459522165109504439585302265623976017960281462634506682921124363356447784073804416149468426481676762059095031024390122991324704512515072621666508935465393007743720417822962567349231024915074990901428167637262462806561100000961151094102239389670952330655415083590896902841555940226241012713728409726773127758114200131975950513645986205415332315836435258147829714636362011456919587511680421469810285211457217526329488911623253969631613408815644917145183801239143524338687122478850754763896500270530406574551563154039174480655609071623860223277077225352400312658127797709145831459084966744702094339511117548850275678293028108910708832130250147014808548846862019098792191775620092101641845711966813611181198377423850923331949869691605166676495124198157052865035473019849151499605195204872024871864166652569943840704898451053269671796301216966905627153946148094244231617871726600092688490087422507991308416457344428453337800328280064834636669408790485847716190968516964702064854623164077730014117503309484164810664472397160873515769326587883946593032973944480041645562948611715164292467781703463690943723666613140859784917727081359647063463177631712043704119613965037365257594406702047929964641845102295429343417169395057010945884831698218020601571715617650906357889776000213149129975950676540582374748224570533368552777594255050308442948580991210902522725725302186893189217973488541556627548138032813612210366227745820958900641329387029175468791835570352812443244810188744349887246723891716572397219918607626541186122430085617202837912361610346860015672750474770867805400081815482324859463242548678826991439713852082624120607613368067592243035211026018130713929123330257369009618751017558956097448174112870425127673963321804924819133034091879949712135729333778222409891884581815598475290705281702823691487328684848653158177233589390008779821136431669655061820407678835993051808073848453098690862192731490823229451189315463336900788314340221568966757870456798414678470231062433585411758332398959859301167753794872741163679476866287842328147534207775065098966019735582603731179670923973767891793552869180993486837430624991222296587763274670507204364972862478402184145016211308362982928935970795365192264431100640344583898687480175353042708144523697700733973315470728235137258552723118203517163279933673893357354010575327438151313188325490292096741875844846600386316250613077578201038521556061814682805703238305952854022918233312220842289337743646010609568212841321751919044917419038205882839270506329161698861857708129830527851687643406492839438096304270303568977568711972875923733974558034431134696363590486817177298986488845595411903674212842171556940505679879504051402721764830107561622800249138715519288028503146464965379943711772136699916226095911781147226731363065550243791083439469615496676162722661329297839582632450126891218096799720901142100781820912648794394788732184096420713155220128418746285983957061912369838403132790180232332064154279556664709879161450094138218359724790632211063226506565960611102410157275234178414044699658293800075956383290797208103122432863810948230338192209596125690961989522435342011108843105315992142473016507661238811345431079108377216417493145031387774201991309769454312116703573129921009775699606985869202608639620418985320554688916629897412959249422964210041684534397375460561880017724709466634945675635337558764175207709560908312683994325802151784408841055237517065287075521930798865082833383597018407749652450943627812761190973191449938133176752198428707538434356687958186253944852683389080337665824516067973161198728712824444740084199402414928293217271879742898201778847272441815230828014205950141753454968744769929139603714086952823913571931014673473166373824593484413321848880689887321617627308035108950897035550886597187803752324354917596007144688086347966743714341008649708760797861946723992191803279373894697198891227919629155439773824722159733134051928390121362376394951363966969934699629117513551858192879858021636677266442342135287584141072087778338604474706838071202013325510905232943811843092214044299970758105683170403189505475087993089732853179717429933046935503541344289924911892198807741989709378309409758982654272519775364837815341214651213332104788025309158276217930931455175113805113206772388069298878567411982465938209571923980794316325897866847665389353826053574102506214009881148448749600003497616663026011726946502497514722310561501359351807744714694899052436624816128052435571931420765976772009390520361034410166397604710074935097563957871107864063689294412662410363577269840221413242956007484326995675432227117720839418220915665471437011041564668029189431399295645740557415879701220075583572919324258971419125570381352462938807620871508253513158402532583040908774134902427416829882962841970962505133460790444295027358126225960761459726632768124699496095915227191549083604898607989352136268697702678240978007976474920817272604351246687598155384591798309113691289535612768440392372189102593122681545480035297605686354755809085125763596294098976008243803042337124071078159578001145850886879947004249144439726120475261649990605798513702801685768965529653180838929785115163530091881485267198713230071460697821698076627923979897163454209210966252365793296403068389678965629004423867397134620071936763741380987853140556174557584939552044386256455667644824322230103885204861104543379179946491469954651616632775760340075616792550130036458921944154612694908895439878401225004822483117619781283648581843540739494334983565326611120238397037316636092231500829462316596514527442607514459759010663567668540157615574851743269673713358069804838197241083602035241728984107298386171658201901738950701506895874964610365428776857321401411365752454577530338873298697615214014294335657187067503592567102493286800647664756941613822503821950911496978756628664526992077604807891039380339629559679964171542420224065388468171338440316435591927889872958542732964880415165162274052312078818527922141124617108515312332581472647744300164440485406906136719113284302563394639035704075465169368551556596062501362605029932244921312635688857541243011165355734018302836081232126493629484008877110347946093927012441483146857545987484798810436978734848246986018542831922167028268841713239825252828512209873076448973292740159573217270541835948927858480772146815703715232156084108305811269321267310413732998066257883818615539812015872886651754054072518897925665985768883674907784901612005445981170418465325330249015693553343237108681532772138015428590882516619344691644004955262792237625532633834915077939942636373999368149005391778869983674200124010516594220845623537393987240887144812817753487372055237637436730424731893323173551141698499040445551005796241453186400207742079033109726593469030375876098322286218663234259242565935879096477381966570009974296424791130025555680369291846168853776870944276742647716508492452480518171331976972426887504618105413833292508172332624770347070417260977459680255778819225876736034502862824806807529082059748340424258498036430645547807513727724887918664491288788705113781795720923724277472460068694928994627721511294629153378370573988401275057057180381111235852209547501003071115413880889841177803255300862462129115747643562032555482673326425319513232234315477703779579983614507744347786911511622226690131476190028745867819263692324467620911458437771710421938256473767886957578080999093867116490699781727174371310972122237481632107412244952875560770637443649312137410962527308304137721712858221111955187824516277788857364587666338200755182375344331665608646409149822148349143019819806147722749420732613649491294218435227280453982717765322121518312207004335224039093721836603879183212318788624153275543964122972982173668768954710808787703638924099441708288734037002323117094923111039575740069994804059403056789405188543423438116669865504264451180996006322069831412998723202276262512027474313519992664622323346330343705076156081454570590909069787670148963993491179101049271973260536146509183806018797935817796623334441766800842563941291197009911786923099841223999798460372399560351635556888149412749093262687808640879598455063808371379218850389047444025771389306242440425452434109082202546000097125419851394433812703249584228242023755269689301809252176876696399840182814335863936553123178893996717308392297076091421380863936294930820435573533558582820873755856111332824793491893097029888351544001950991014171779003791223156579774703031103954219206756336391856522755905970958095375363532034415254380678509964915242755832967354087370948068154733571089019682718420395082618602194233602853911074482903335869179623435528631086449814965250639375410480314730446855612728516132628924644615479977006549243063558948033966936119636499517479154836338843650495829198879491508337680703189124512107165496169561352449392803416947784662456562335479363387968958035011215896540906635700131158123277079456980520094197588845316794077827522618349713774313998758239975605831893833206768526267873021207866483335688857845625894275270893828931691135303889182377282623395619050781541103322260271653058287736333544021072938036842898640133745377428839779094816171564543858528624892806473704066432741502554008754324707412334246151997805372702628803629557981287911139341227835543283277965416697899795051805642555206883545763141683155305071656652699370517339400546234522226930891320966315320568057790335408679024238697564932363282759341023561734577787749181023589977917482046948700558404259249083442199601294962848479127842590508331962207979725509564907269193889610599134042878109103690243780379709319707821532165734122638872500143140714436876822252989966962697978819953365491533722016669220875427969482801207447642562840867493742160307978012136346756380407903010239614026618004796093503913029601952330898995456131298593400311285369948227130388272837607427096652622370283931375443639937673018263584331468442276787792292795565691118220831083236357811138964366759588847811659677087524154350989168891451659858263249425856723896987156022716041142002513152020158217568865893141902220975100716081190741982416395386555225476573882802607972156407448782461406049443791362986188141774723746607594477231906392206897191602122193396774707952998503072718856408232411686973826894446388353552422434449702090196536374091867625392358890234869207728514520598992214629914070362708082783115634467392137262120163756398301624500264190304010225853454465923575017573462897881613956798267610020713553118699379336611530510144963751585433943562343737012775904284202190275607105183682659779177678426726852594957844024016909283991068587495901050965597302634923992552368606209497877161302340513833912336808093259188331704957629420734437472389613781520509934422556635454941270099343461464496982939829999054465634104983180349390244202504306998991129277822773048046401342937472608795551442577638034228275474456954970279969640388914987089173204523000389549380842749469895198256261674421661283519757856068124761945594371279743250341091454630832834205924134427839093066441052997648561895770805856041932278905462729147418847011857400002262163174040311303887310147016387710400426539342291163485228015236878823937068087447594624222303899775393172526667051544812436157657866914257071421313553162759861064506459339692539073510540258334281781266544268243280133325750111473459102804900887322152772761105263249392153712694407390707294218761427658626383530336814737917084496808650110384449112833019439831524218802150558444899246191348248893145655581315621460636668851556845629538872923667394806174234132988225724717576652420623991709553125738050158143501912580393922368684585524564678787813450584662427478968057684426400361415842898807424731044494218233051594334700971860765201633076860123150803054843427672040350575431118175210659084095001617526999968588547639252195340237699373862430923658041285268010433344291582755256953306390364717253239440010645011146404088573278341397613821642323918474991542787212732541632448173627423615427701110200488090479263425906390798553895153402068213593081067979671047615799879658433767943793461553402054781427997662313682125138725134157280149684539386484301403104599439123422611965496769184283906803340144382607503200654651404263023192040123107200310174213514039360885685863831761730987131806938242032305682227600477113978288546105133220397303454071910622121848419935549084845679640222323383250747625452731695909954268798896185164447523368286657937933669155518577570125684596138032694175962542779588954900038499317317524704036467576110819319349869686935406815556614841254916067135003541459038787374383025271387494518599343774948772391626230783486043844477688177631538389997478325411389134502614038768545167740934135864071834059535331570331216479757597858036785232445554192930612680583652996362316674170649704726616471401297795211781926363885476460407313902896981132357837477953541322468191690965062254647114571569928507502947136611183329892006198263143788087216346099986101226769658419271227699866335011424058233049333350024520557481390899421331295079321378502062881601878208730667513785936103810000318416765067480523809438579336527973803203108414294552230420493854186878408668308135243790769759769974622294611717687966562396295793323645443686298655784057742049788215011498701737645862672553803174588707476429660629031697637095772274419438872985096377660395213686378698314557893137574542234504935285145046258655901098555829778265279066300579010242484944197510850770711974085619013567799372851074619338921423600531319705913012796206913094052830674384108924253034963556663510793705194152884059561056088431495493410091199634741581555524574244230669312079968713567923588669994247993428997531834761119273394900655711087849948618083419988239342569509061111279876123835606980829858214254665521334459361248734829133939048239474062075363861297965751181352503579238470534546856655156253825484253601574847592214717082627841143004655698566499785910549802712961211953295037909829713309543862167563875848706842690700026859101600591982296357584393199483474315127621360041589747637689114510983366822377031494257128825903840737564326969381621385387911058529613372380720694708345706418410121322116419158859396167184547613303276808921118690886637859040342409720670088883440562496135416052874914708353268739569226795483845789979456038913290430780941879714012764481439025439221525216209050985261655973937847149897072860907697272714293948879989580413894239644269293837696132527548514433596445339452550907417009408518711349688523909695857322239036601248183124341632865400671181353248995355378230176165328310822181259704376268839859944368303248571220770591187753649427325382300667446724377071063001809853416911734054867491688428414749935530214513501884789505167076677888129889736046976033893661187273804284579980550364301058335558455009821887929333855836897941237369064954376457090957599371692594646177026081365189265820437418719669360312572341277691383166965196632679805049377187752281117482983003277906918878975211978298842643906762036465455053558972734143101849502925487082181900741052063881489405861743665589795189308656494223132874601970873770955603380784077362247537500664228507371243633908202868982017457350622333043018781633776894053535479882120958425250632540276614734270912099360945092168053851249206258746864054035569486203228273456190987597921387503118095290656356816584004222538926345949845785991377001579204604850066071849985067818560268666418198985873982661114998183109648596790204412406343562950342089846148072069667162670843095522686005832685776442120369150109439714936423407614193882963651268938452290894825102993606906847003574668883080637147805543480426715930947962159831199470712916843126536930588817595847146799088753015265457790503124653700284168408350365653993393309982714958960692038691767864912210907551242754135566626755445513285703869826918702902634192337976927239212734980775831324847202515966311735249320613566090120002223448112277974408845823581965559425241510084486108831795872164769757412858046218603158536355348420528615247330383333647023595996690783980120612195540412322403564954735280388212757185045562676917642767760572159309610783009442061211518458827994482589591483214530560340742798944675801449249796320782837624529120238879334136192343281357210966930589758850572551767120595431949459941301861241293852824599575657498570387462920774390988991126091253251970058721124934574077651349185201528193834056075139402084278900193006640292955087025279529655038955320048870983340400653180993012400696477680086381763676768840366570823487639729164332882509983912065534987807156178179499638108960308321310144679517371852759736814703495869566074333020488328801314913925830227019702819364411359120861862911146768643350266863788341939334252546239154841012922057436095184117107897068431379901614814380919736568963518314443759661107399921295203380180603548178945618848674408130429139750891508235973248224411880793559874320919953504893657735193324901697363347120806746339665080475697757342291076588483580571643999582816954298761145660111622686897330807393845939191309012990443436417744002363063185870974431217182703353569206293076241934443676142751728494305352918201040528752874310813819564233537222125685056329669978212579243791732534426034183368893341194341841907490630326589471433219023334345712285950088982008367946723405940291265337078106270288000397651230217760734852552847584407140947601709913640245640475673421737300966341846906461364789945271048234135962552742891899220052419850256639484906346265983690261272793972499745363729343467982716199733452512974351742506299167284683629342654599371322778993502006461762782579754135224070835877567804622524880122212950637197954735100491830775667266875777388273961727280165232055127416089676175780080105874588981793395891954826641377021442453380310490617259589919692522809705217246624096366624103826325302843009891668239742204913016355158952214924566463283933151154190009983537237221253830752413473918471490573322005857338681052837223092892891417436471317408094761496787335709197909062999627357727727180031061030565158623661523214943140208737013595859544399570454844462386661484812959512480794888629709992703278510634571781176250500963546520775130730226645386068957558383351016754050784290546100271318426696594946639029264938655919548269720621129427208903260956217355715396601160367308646742324485673315462931096147729165207671075167909351278340659639297365889787209580237689853473344685304303195438281540264331107320441213846499423409747545527028766790343339438114999239158968371502898090566275540791515387847194855187869944298724022745353092740227807004047776821519812973246689178254756800880478589803357738277343275413336055636667674647720394928507605495590490553854144196471538258081572573373723292161565279033969574432042110399047505258852569099970966224127311699214855585133994301143162365038564010990122917985484432150083064726785433320095425986338951118907110419864255300563064741522058334870781435145956012912972445453614340728186218030921923066923354119525659869577033165425989310437650301002738012321804720861378605795767836303349136576994898081608111310468350600407785165262832953790329451600273090273271975693067242112751217751583851504266855284364114894266668505665019433068712158648377641879461838474787896443741722109124969649854614887802868338232314518986320946896184022856154971003969790584821771933665493013336541722331049535651504382641551854680301527362093353742020590980972672455159730949567193888510100972113797437716363317951642181777414077763692671327360053318317728430603911921073826257678564376121378348519883346787673996984311111189720892581914575487223556790700007269265283834837423950922152273425372901970441258887901859656951873578073369196219506747556822505491904935597760912804281676280716062661463151817492252857952963419977168131461232111404988403941573967649253116278944364929378450356872965876878655274522512986130489208161787236521198325082014205538010415906352372922766954235782816879546733680227159861631881934616039903223583468168340536147224242579881772955534728703646517102595071279665070389352153987039924518838523083382089497648750281521232136795726189290921855405421658438719058732269225548186926516664020128686808989681159857304442144283479679574320560342368614085028022733155157158189702515083907552972855439419407694052938940795734221552392013617519965874823669727409056622826519923967980120482429854126421877792272384629079738094150376777288606362093276418834086468705554388544339953552402668974880362799224702069623345810118402724258749480752839615591340212693538072434391876241526352944752943527016209601815057248028210328650307275156762055952667979938755610710845099952081846848968257998502355838080809957999430696929760189711377861564467468823139946885540229325020408808804918923743926401766467472238599797679345850797207099311046399587188728899539237992075754445208926028218332613568727182003357916930160425923754998135554400015814154759841222139237735619972056939025386875883284046006321582431222464013519834210587448002872351935696954230795780652591493402250613574579562405229346752829287181617564489831698522550848530860603570716245849089858772570511253423074953649875006231369405851544868950593661167210293046188357386323330444038028154655237136963852877193531211207075062534358900523122762572701247713226143372500284143975954439992235962685175253030446460238952507523934283691848002928686230656811450201401220065981571126354642905664624662832661657240301760814876639073089895091040159337560011629786797802445496052836111694835344227959998664991758083093414290567864109957058436699625501672814499338962486692810654648068199266096270260923199613497753201923578486835286635934573621985453083184982413699056065895108376721947704986138314084378387850390476788864408944366071633769625891917049173300430981759862826347530942496791239317415032662167840054891044916631350739707891130958802615553033059522326775370130765012205131901981392618252948072134097814833556238275849799818523146954446126222792960664047896956487412950356690626219173757115826396990279387115017088853656377090527571152252366474519748840412870661563386388165495339527096077749752372611651449694875206034074189626164055557663769179094212689200555156124356141638847943598029565990991549370886283782186979425762423846641200701932248466506468614530138357021307629566017770783736042455745773105591564923925391479751575068546045338224320923653762536977112198758552909497208302318372650343028200166631998911628568371737406261074009679718504471226610550296732686202940307007772630295437907118338360719225025935459109908012487830105678972528227506979177402173080569804338997888575286731116848732079654246985149869331451105301038058930220439285309351448381388536039729013332096048649282924761183896113145032862286426314712379364734742349343977855965694678370988014937031463766245180784002955026804669539297358987347553154751105723031661145661380767471082973114142829926379005990364277626465956665861299518351843746610243090677244013420456541066809201401657485463214726771023433844874763937004366884911576698920529548677511011426808589800527058194186734457959253610595164191573079885402866751759986494183964791366648551252579364503537478827645427896065474943995579837307141687862774597375229050131014766686216722229101841440341865876249397730920863991455111410729481024303645574657842184752597024851324107723765360782330211222660623962755117734467602790003129779513591922427995395953634067369026687310642931839004949232453886161753494092584201775083001532131253965174325084968324798929032480091720784806413732030020768502024722545497147279535679146428086804323184836396244379916427002592353858828335231078058664407108265108268947646735726547056669953062447452629440948074140294125556385069598255401938047670164060600193800697525786715439566403212260235444608237674299270329959181448545302372123097886708185571402526276683407086997893695328007192523554219806614193226668694208196770181403706275179019313281230487093185892125771912388770266500628435756214204114155153297963507971301704792012518430714090947932674072839610251196913389457371606664877185160516382329249332508407538446326038583558155810321513588833245895378821571138175790796050464584020351160601911553274299297533034991644904935446019790076794326966153504933029568807931499651782039736368881593802677465689266258057710433327188509779851891010260591645287078274621196739911828199792590659260321064664344361243810445469141523640003231832856794329729463487909539264864469395054673987097944683195830563400404664627609303189598305919487520424854532922607663334524572404912574452987830961223140416514234362696279856482389467891206679146978941314243029827750881667909118225906131861815735829066349727199597566527480942020997828805784011843155261421725061795386972166275818285797646854264290065159939501917381891336488145751374307997673776594958031432782459662771980117179321417506671840089442917843406698464979007376365028577870249364019264861421126381554597354326710178491427713944783725431885664679782572268819733539438162462341652566584404951979309643598731791524753075840314546196968920084576440816127651814972311127974374516880540003815901303657717179510739150616718241686745562235827676210940294461283149713448835156798057701963293742431796576678502209456722564227627757666266206828264200597474120007031329600541251137432966189441599207214440673885717879982096035585537277269435321172354458840866324292454253030155347363447735113561678623342338149764288303628356397946557293255466881000411936191113905545652529014574219401612844430274942278058401968847568253933019150050580864400010366108451498466066591554067151313891746016590064382146711360622055321587825155930551863833414314681338460844666931013489419943277400398966641240578378588886031964136438458140657782118607161719513662797425474323112017284023976364745697816563620023603421230667980994826953940099879416980574617247960604838855870772195077257789405262950536901600098595846391883974839203243121600273550420661037870016451284072190601221340736594894763051104936451554833856668733314052752219708981299669178001570245437447848164385976989349355646190888806188441931792361438123573045983755136240472732168657375616306759097535622841745532025953917738281994814250428210876248121752935527033103179735106036124216043102703538947018223996142251576417645627953278514995372908605261509977709969410039131956931993984133590168090179447074639327246759944840571329895023115839001712323492225456620741505585631689987969847918217836050049724450441066614832090847387003044286195093133810729334075704756981067597340229988093409439896046194957450025193196628366903672741379744657798441194096302416827619882586331592120373337221706055146877119953889688379640240010246039053377944043056125884325718392821227266079428191645143241390238393087909360407086451126099677374972991900741718531434070617708318064133084205167470580663981523274323235858625415637124643769338822448344444634257702729199984548678006826045774932754494009640974478898221104880073955256303425930150784415046837332106660481015596354401795382780317715398050729343660729602159535583852556137165021084343983928349940980999114545184543095865043183232717107432486699900498241128561272067310666856866430004328830399761873926348174464458741424729374260710960247624365945508339119819029682706920909593191779312655774234753484823287083612030404431408935521602542537484407524070397048246055670214965714492621075552669194288663912327700096106731074196653659742330100622429403745531022522234261111088101799798258324615151333353215014971996466566825827741614694043241743927795630265802523132637672225501510960472446004471021048178924087404780686359665241751100181535998668241479271183151490486034477531460084420046232477825151709340917346281597904248042613669605637658354944187905314407317994883088162315392941091877016141561793680108444637306773082572101160696577261148680684265721176783568868492559805244091427814929552307838478618154503734624442988366992003110206530833203023923427735946402925729005253737047479630079872621596730517951549628456462109657070546183495019564090879108937460629380443326145024969694114247596735382778457431915655542517100937887083324280508259613880847296906307752922485091682362284236439392681933363946415505386189361999706728926705518254967136077338067091645183395558056532047255166050713305694606907329378004332081791592280016176963739411531061165369635467126454540561769008376951276550171569368898822792233741222549676357330685090115105137028402695001929406800194733122496037295191121312374187379929812662270894556481166777275420629849806809705657462204812263026671642512079479092013891194808819363715461237134053044291911295071209604990987382699294269022056376924327720025775374888490644111014260637466062193634931023943678112102932044628447568546840778330642560021878871251438306652410099210045625044880108471611442579050106103678593577910557325319556222245709132227019573159427777490117262388973043218082813540760860764417999997461748159773094742690183326930766812983492390666237228556526511000705803644380294688256772732556864931765351169885401837808121161459402523850610303802248681075631887546908838205961896800852246146390899108315742894343577084146952535614454593203775911531456103607701106131649573667963830964131725530354028299744849832276401682682714406729601387584957433622989322379619540442407302035211227906919885730518749922904832532984905468081730086579605775817047894597429737466831457264544967148944006089470917158688868969064884159310784543566755730727857553049138818272285119315483314522972316357213855349739974420636268114143640041956595911112511572125339847962763018404457075125288211791454591336607509455162354303438142412764802749873911940735301920591406735212445609132078281717159402949468891358038765464352515305210357777017707977273080512255639540187497139025327097728914196792413728155657901488357742929701293955602267923503047040897912474439239216747752852800368650424012634559568434393906729823839518167432792545335999644344645335997834655598718852502201821397921006512973916179357356524942995243302342360936450165439222570761053881534803075770241052453449994420269876614782305923896364239733123290750138806782820435276745426312796729611048307573945390955380464423988687744356882086617653171086381839139094918052326236332934302076428654714029018049130584810608081602313935605127669076188366584350483844514436130426073595790149418949879532663647611011837641259345687632228859966955836334795457200607289210384125004509439932550289519796038932823402422691772481962011358624211065408566129801808660161302812537922876181486455346310000770484465762467508723597553241699173550652373361458519967955373619594612968284221162226477467266534882091635032104723362601512264120600935777742906524017098829524342025351068974246923370208894973225979489292335797083612300591654318442567866645708089633777444450780906571674109179960854618521772869888679883396076780860957576696637446450812758629569859925980175638083182546994666834062652559510106809202868223037876848140279159506121928994216185564801063130550761008794504668652561704638627104168373766466564217437847069770559408265258300213250444530741791438219216355392866742678165150305415058528415272331773296309683687642369441672411671171112409654789214389908020442479263597574019788569387584345971346692506130743455487948538583387632814078914402314100987502704935549661065609705278821788002130535402070442247331218449503185386378267831264167832737629138651104082433121698206627367858499805314181764687657091082517485150851480450104520774991621876837541066962797823032862349658489673840833878557275904857198234540050057193486757972134856207472895046969495282547652485485603645462241369217782746660836677407881900118374213016372063115957107409617254448964147903598758003213248209086882222260321992883465971662954628426437307197599491198726487217413949109451921496125231760778697968305111076578042560899775444903985224836813736539732998811942726693333383511674973471157980716720453780352254900641868940292722826421253322701506466628618498874092425159745799029824617606337437365325720294595350111834595121391645328953871807083427930025930907071165589938999477893138971381427737012997317494918558639464489086682127315776454721241140430591877508716058685278288237455155370141029905315710459386846704879868965296080391106151329692511443090144305140115905586490963454207663556535050251518930895223106355515308635424460347837521455507234666547119838726877942288331453155288066825567401701204131752835789115960764212214073636942706854802012780812844507128106612664065328389336683812691734727757123147453829067864532919682400104153801187343368981251866411316674936576433460105777353802531592982204540826649893808509649342592143963153266056263970098169311645102078469170409235888595662881694316167176648810057819528160105987168138246535719306534793354856821394043224537625965398290883112528530356553542466638594283851278472146554389953720362163876539073111765485635627355073254298751851418670237359168882393610007798958445812407121285760381471983543035862746526559002606145603080723765906947754959239048330355408683765166510389688570762428775505800846346549418649375823636495841634892874184665107733385260602500159448201015012837521389947457574211097805571236502890958759585360223717964198171950011859133118780918138190330137047494818486864008713779837564521657217645480838245989877297434108492227071384214851530329753169321313025318653699996572861005887035642813586754927039590770435066412837363535788032362147490024584335340787328625827746944979694463883455795836094255422381110441236044438674815705881002550797833058363044799397387915031594639750582928350348437586315249805057533891502164620378352104400933006387016732068745376235887495947950245094080016105402248380022736484850904311894510559172373347399002836526267881985512248899418872483159386754840441000776380249759996907424712316510431454338858962188948891434518135629380549362887328899633715082047517260381451578795217898100856976070676144057424942080969511283402328975303739155533384140951289519103576361405463889128965613341418567171278607501540681278623007632535000111231774146328747977570352218586175286253184189180778611920076803778947120229460957437424532789551859875251911367934362068941733012610217540581260086807598651345238021691401442547886131597397438759387736296827723069342450412104516829563401141479077693513513079988539000490611029423601254129721919989186974638375410855163035860246469090221179628337402001131274851076941955269442309733888763932128392043247655061495758048591691362746139177487786170083893992558294880517626687330212390701493363574970128399357857063844858311682001140428708010913438075318888318099872319053186132093945955566873068556801545190000717029828707013385694834670296452230483025221208211451120755345039409456683606857506512515157722626291671385860378285568255016284388430966051137070540937271690218497725095181433375502142918789753883635698917303535802921260090630115638504256233061819867733381107932475706370093362380461097737148127425691862254624497528887046112499286462162138666298809119865463604881443234285355462584331432634410657326485735667357788849469819916882970605628329227695932538772206682151718206916026247531352504401314969168573083141761325072520342516594800642545385337985476901151715176258035770869745906002047009103861504335418909485672847943495208671034929734072330392260146386928416081196189616716993891149174793451440899465862846197151498666697603738916954213866023777963351258025847693609147629338516387482195600628308439584605650372691199338141430877239490121197379666667863048007999137282688014329694167077653683280790384410848443204024492704082255259307260480507306830235943130571310040336680297748284425190964112669237775043709586809067580078345383093152503826090355385872344142905798772553776985435755002276945553792935395468592320970659459160538274782834444584159914383798121735964747381349019753216819591612211218469117020270765004416087544431258972309391252940030114517418358170752364386803762319861981656825611251485556623440828260082270930026053706375714343931220105110762546909006274403154858442863720532231106276565844391121128591271418283459345811183464711513476610827630042010288855738392386077940178383120829729290507711600867270482992019995437337958888509463698073829213318147881413277959018936419985576154555860804272709165666914640858986409622370650556626534495849787856142943985296513859796323992211965235475993063568534696960924588346611308731393501278326055308466997620778556851028663653568652672122377960664897865889996942715874305748464289441106609169200392088265548314460783567930969942263146384303189721536954477514744562461718866429971399895487951303200797547741695704829130943527379856956533568958733393115914334675819648432779949692141771762985224431684185499739355857546638569413351513696402450799884660169021306310787758286460418927993895204024906922742705381511720296173762923941843089567186808997590966947530464165880994794627942003150730727641775007092389365206067806936354564283862121302620074141565844616667942482693170289905250376573898079028749886009819522986728806969605876929754470519672102002852531865133319180531152733031894461635886821508561769120464043555355450640560274706383640804608831129570613027426716787142948015623838495996512274369118297836175254676225228972951005895301158897775542789009269122041251627388577163647757149381864603754433655378473889452133673492609887472955459760204479118760540234622580567214961404675127388627109226274732674934549527049884105670191165944787883742265860880908852208146081191943669793184098750220340158852312126529076374992242159109091984395696195011560134584786287978382163112382410907532688360778072852612038747146832657062488367497803650899968755111545316660479868453782496032326334206069446130421728171818354037179130904508358403751378408342301708462997081220027386068476942742755947888963044810667697457062223755273571297141323923580509123272717167513377836236401506941019984630303473828632812897323741934331046167845827300414736449599219197445120831519561981857788034979311698506483045006855297755337320682065166229878934216485559593243439137403408451590700535004163933594132069701765775942194633313648568229999748082543689714552229092111898070739307887998046200195840580553729558942389067125676730590710184700885733326356107951728281919739834182668602690257559734857439068793434968778995467140235413461192518810679333327367512371362985275241360215728549193396737311331668239160974734570062660453847051893976891364055592670958485089302367484780691049012039628769792575958742593524657557787061944379052009764078579684840576803025122805749450699205358108690373456915189960387867612510346105739140281801187072142068368636987078973599944215949581628263175402446909022479601438387650229580626525904965822681531496635230117413201478658105573715575327954098284353508646489857915111416796089578636489505634112927453696113897726995442378004159660105444176996886134814888399585257889236427385654644977351624496336905303083680670798572221862432369818352760383228137819527283573226206175748629586282358910818070803452426972042567968557829496522244425729956267235527978952398008995579041311183421128335443995468766944020573744431055492049995685550468805091505140723751044329247792018113766025171880056945579061320162256662899149887411718699246957242886467476986311357535255763396589611000644946339684649272095414021923242581273941079828679789949368465010803069340241636052288121869886890062073907628818619127919720715712229511713436732375195714705618758839425485454459329238333953760435094221804088344748696411737825347845326668698927315306146282513838445291723417294861913497262505254483662612070781287876181510980475973251497195618664489193891024571520591433566451726251624265281954250162724337044293503116775714170490555825268828078364495560479125898809228724214920062030124057724729464627072278513315248189844569946236733785954481212472262692506901722310199771981582064781509392740710669449962513949289066227490217509521282525848256242905438917121463388326872399434984795949319800230377451365490585556695971765134105641269437920244184969020692204378717804575479015017699484944358222465555057369478353279121497083052668918264724440520827575679449268349734062589190507101929464288059049449984810501441812988256947585035394459091903281753387059611148704637139895385578286078164936209445431672267512560843727826402111103874245475036849988119153212569331064711551630940490734685508909744308917763165066017618127978085449820681694102507324638545087683778534694446139775279737969303678942829001416414230716837311341225775584608674354510339083408151738558029676312016994726025736668589123366960122320991818389623050763370520400354045346442766561320859296224458359240091338559613906718562968976477556439521500112818449473886716978396701289631130439377327153549666115595113763564740432530891644766511508249402840651678225403405735492686917714044374365725149717496794213993487233569398851029235088193875618430458559885247970701769402461316087666934399241597081749850545307786787978895381502846338068518107321429144057353627666621984148101802117302391277395575655073102990526827015260445772752328848839914576473855773811989246463150497935643473288674147426992746141176889397514745611746812378115531303965234492499211064104743860815571241132018086525733061988280102759489979089045567045701271676199755542331098862148537025004978478316217604075897471222228813430426208725716351951548555851564590209483980921879866422444301958829561062676358565308402923491055314452625537126138952838978094622806983990551005015730359220401742427626338890706135506756511553625607389974366679544986301451697773225212949478478059888348129465626599675267581684616323319659367270617953249054815327535123729671752302607357402912891336723659738388863929921323708548224698193091307415898949157102925353139834628081424787769678268532410906733204877814727154618150623106309219327595721471629725366697917293746845703595691950094855136371335684704751910135549733148511593363859452570724932629641639137029579002173857049620199505484477707529401458247632577056686764483692942329322334257813146140157788409008407121753323853248056035889971836319493248996297733282716556037688843191930176475925191338209121420908722460665598063868786876724361964922089827762073485846585373262796630803288410753209854412897036960965174901054953161306835430333852749021587593357347540831113562614968486322358170651073960846890336128156141325295764921150583140620907303793826258498762328746404099783234226697619231215980896621328279005526734444114714629924066730648624488072612959779239070430169964693799843030666504192940784464697423583428607001825859791507784243371861208364517591204135874315765958853635906890572308146914361006920859668785821493971831249614066214298439301444220583513241969057306159107921473091142681315143836617445249168178186431078974611968601421851355093982986724689794228281149998258814694081531918852993158677169098005791110177532897916538649734927504283898127138007286710580147296572628240911145025253572764071534858519096573759160715319627007151324477040954319160436604287036403846006979850183458565137430696668531732479679911638144708708838719975283379920337066919629249790728150272696579888061742313152627680941213479433086728328074856318842424968476401763823239331727796929948121685998261852608490733522802091012714393086592848155821911815565496764506299780445968351933739030946324156959817992788195023569863230757332748697641915509000513977967375057543540932168130978160672476709397785776623880057790850450711195723809782149415146728045090444987593560644102392501939136302139695325900084946525816592716389826942552223242258990670560578940732436313621916929837883128945444995015948381398923355986364660668990270225649897775297143507665671130875025433276220927631764367627063975684612323091162179507107378025676262602106855694379434737463203925983655061003454422427494699772407014461130909964185282933536527816688209972783772403983811899681136139606915176367873182335457914817482340967673714495882814745330945997712252215937263004444503760024238423412675093741587312090655434084957260443774328414644814034284224502539387646297367383006818973832985449688522191074522599662038132095639320546108889261505454123874123828954770740984479159546604308894311074530516335644326903579500464314786429154774300439993243454933681391012314319187290417369043348379721172664146933770562373118921771261016215071963659052698748071213470256120597479020917734043527547909671400560679740836089593607152125861665603550388511328672061107266492537225131443556059398531769180425077837794999558692079097338287970126497018705111125708721977847644837837297526321217673982852703621212565122707264315877072016418543572661826294204424783179817672136767513024470937387925291608247838663733203409761560795813487368159177692211704775171652463767445387590048013067539462304827362795404369948997629057295277207062554233995474162033690566345126563588632380296843176110851995578283870758345467025300413174629514620471057034253987640102335549101595607897064974066436435338322786605074055421600081510891518177032722843172820836140428167216824993292438966044613235546306297244926635298664000616641430630605294870655979212983869372499946232288056890782629291612579707911379047909400240719100515585501775524966644072331509602986364385630778586904188820990155390134912363032692649719755538098288503662709047451021006212249528289856576122115538836944760268807940755364401832801472240070494262649839232927255800187462624238985164290998425047074194332336832397636979690089879657904536016068505959765420614841550617643393928007153304385895409247095533211964170490528355091367859480914912699690789504686488782239638071460070022272369641992862722258521122656525688793250355478910552146625820589510410933410554688912193965820225629217738091607714668541728234400018005376714706891690741682301576540225118013519280064752641919140063957344756707095887193922268778824809983127073112846581723703573652946239401987307547866147492210328601542136069562933882884685336912541587387138518653681894537083117305115414764467338576693593111379502069038279306958168949307650575501163347887986451798114535670600418490577113806459871979633966298820039594295527305291751120758935138155564884238017712107131266397942221612075436308603247733995556014362645178486711204407726957319803802813728983799763222518846839985400567813934930216011575672838672764769070049642859664457414622239844198438345543233118495388650775036794246833064345582392002483833215812824430263115125325681660698760227033150688371423179615416131743398906725815808216459994580274974566748976178455819445701944709925007768614572974709598198633653846455214760795212631016733397930557419566349437610271239001871754182821365947628920081525938840687257321659736483471645975515779990144604247351358643695918442495716735872664106959490674466351174462456998662775260528226269960152571440043633657503401769870390923436071201162044776673425360772095266373635950064799910583374076724877576674270150187987701541984078141051797665114277347041647595347893411396207378554161525432503356858532087771563601097875128713593784043543740365307184631030826678971678482387047850728630795788991640799636827412912305342974699514317341530976410880320458643673803670559831117638571750939466214847270285183765958802627342193357451223446074210669133849904155719473602314160812969082520656708729312645391420007644691550753753899515613904544813877746927529481586533913079317750910930403326162101699617706616218996352708926304642543417039112741305320215095168593269670642989156074254046524315173102532921353054924701504641960869181671974713944374264800372533147010157835444825426808040619761483081424475121997923681880198345107208151280615751460677793484735552619447169590095083178590352356113920210825913744253465825751336985295605826291149211673368329537870192769025105455150751663076002317488451043447443713245619609940705247531935887647536293824181629840146640978679481502067234268593945594792382288753065938444252250684229871524790444451558347621303690680392480412077565472053387810664169628022070309899838923898608514830335713360690025765251016230756930996434859505862822239236107007169084786774002895660805951295204487033256401849640349313050727279486038024385539091304847678733371522243656208280678155562512881832985127306472362689079204601939814372225615244278117403726741090313548388750200336520651651123444468034487429383765107319965044134008850712518469187273486637870304740496507168773867194971001054007399880808491902614806764054178678110704881510429335372221319543248245661274830520182750446531500814597927016199842895522541986151997411803705018424643039125057275421055623943076706286914517407044934073917869693916327483199430664010423077667639953904298442573165712885133461713147267085769256300308206226865415377988617547378545070498110418069684684580449079098114473965879782601477622040462472451563026627967297323478535145942280041891211923726345271097227171003673107220107944523622600921336397789988573293222194120131257271840588136879399117811873222138354574444384878667780185620591622526006879368721571205273357789297243931753589492487353252302196684363772691805633130500527805911680235895683090838026716858568030222328253287820569590292337750362609672528665134519145457250173464557322464334432312903705518229215373915037510393217935865465880355140382844389897214270537545726510854964099227537976709833310025806128737313191141023235191524798923190617907916673708893923317715264288427341205801985766387780278825647700306616278806698780691031381670473249396358219664429948067361160802673163106923203723557121428937515721328750885054145309919771456969006240361672780098703983037380618191868636065010140309770250931306707918096217137790763670539019959633567517367704938448651625310476180290758371130593057020937341850794967886366317571032346292072310963918007763945806601526930829429398579936434877063638922514260481277446885820947926279384503742758328391994135152603283519829426493265067681591787259585675681355838387335623043341559582113784925618218600190941180315916066371211941891199599292381487087166978324580459243881169188779966272661836949293628168653159830938521402691067857408407639781574646930979910229865339598967460398783922421190943990715025898586598286592601885388562921109709846642909646839133411295541412199771195648086457917089093530966214685811848909899725137035216461799685613945630525126804100140936255028952524324727582158772912014345904014043513359400661438988427172100629173112241570741453217558448187831467997703763184775892136003678528307001517140783455906628258090752228469715998498617690412874953462448327380523093111676073723470776176753913064099893529889673404801270216900709244442961085348148819567736056278108559390641352324670455820333023627788079019874284624435681108060584025003728838568630491469001428264988603755071458989112586963895912863800197866151297979959581379422129416832148635804793078228038541539008755771373940461978906133611263734609992938677813922289403099897549128074158992379738921524976881834841216543654270834589842075948164058358660941358749642011294108511255732118794720948601019842968818694135300322668324993909646837332200669895988360401066200165172557661091586794817409377309823582375420042659180587768182995734271906439930301339032920623362516539354282953566360551447787165529893617468307046659651624260922267879861008433968136283225500414302621299614442707227456923300041067930456209681452638850162897807055736874534264570704900372332921587697885633168281691839882578395278205465445776461305888710508012773185421277661789683800451902583451935834092315355622854005920830096644763949569351299627041486404282903129935649725715395618483681636902554188370267783436773266682870396369158536935260492941366031194260713418937790750057414933872759919629664936182726326332847055120831607760301238463580496186799854592276952978769259452700328123871983579058733043212680210724718363879547392317528009638855568161228516961823809816732535584261354944607554095750317182652038330252411007363010292599470631302973881896710422954857454930197367664938405096203162228594310123273389397321047717516252466125632182924770198043157523365027490444032950224404559513070338508192862471448917912710985490820337197392893112530969716297982202243233523905373683634724651281005663574582256866638067235298397288879073912242589017935627330771206473768813984221917019264793277556591810336971786771439771658865029976236526580595317484319322591674214207751315537234202964122968701585295344501187208474289530753304553355212295673996305401439024191314223296885279992283329959024406617927279438426345381867036026356663972943375681346839122028109025923209754427072910778695734593798711519745413935530060743531969812377092842818788004969012345489202162548875703631605437906719611895958505285010076275578098540689731047729286275719467084940911198421129289079788408091814083029287490952137689181246070668567583134736722999141093174391970978431532515293137318293425558766467568296688061803342318521274070030188923560541522077235863329211722109748885049277853172620336014382094892313131422243831163074864399929247488674555343925734510325274235788261985631581773904426702876035137449380224004795531385265731931677090711915490530299092896266238366439572383201507242149313906267064541040542399103453016576618779636356222519100054245546911041480514253186238360433434433039625997614188580443813989373462340141194142557650129840937429408506133047225065710252423942317725767450672838952493063334702157691035052402221637917471822363744926475228657555473058162776068072168092368443372245132995077863707159963781341479263652119139148660775086780994450735285480157930659748699136496905654206790407919355153711637706650223790314079697049484793530941082881126895482264571783394479367876344630935681569700615659310345988526321997576774955735951019674277103992785781083636965727613627426742134594827515646135088613015344691213844698417620511285837636065529869285085284079924498897722042847642467794594616948249122348159309794582960617413282321791585162857427691259810475982580298006110331098485045688365618109385860710430735814067056062770457995005214465971620550339789229746505690905073921701743290420683739112155695139221112606256816285455638013226380784808814788097878995558477212821382173610090776106526244531141238105846633124739618792220327894847225245925896430675505437984790726077470130670191339254057187350247275138152679861602062765773245026968625372673501651388723361744599138665541018351400300063090500328523446021039169182604725143552267903307348953398327579792395816842423271717491146085076772488286048415834896688019468144217494056315058044103198944705896157141344002117234996942888429175457329334105512799910037618128759752175988970192803389793540469049737457193671871969536455915551799291949774237641444839057246589416852487944474693947491300307831720402883714145114570828236757486234836692680080209981028920903893742890558357683347920770552974330973207756191078512943462273666630005977420704438769528452499944485205595534443346957183299899057427967307313553773827060264373584735174955944391745701869650590443266199772214536390557360523964239837003449278453355707971613386027904261371292006187716901967330209617199073712566398439685215094607629639239751442724356962664586890007355002981118572279137067283771280249531003688378627437545260700453029497079700470303380532127852588927959382127859916843886116749503239726181242143891225497082689516632772606219592619096776584422214228007261324146727340728178973432742839219309171189856985700325481679617901139359237856217048159354320768055819859481056848555781226231033344683098648940335458567211622200564129956893946520703725108041574885357520548677438574348848652366192711406388144297631783851037436010391977350565116437747113044340858613462698262193956972820097648693083690702909858694095669774587894424643007522700140529075993046823725109005450434402648952028602558649986061614564175152268047262713115244351605039665089675120871372831131209687871686211061593913935171504132391256765746860645710269435801563683201743019808998717679018856904346280270695193099477624056135665065748183155716905737831854727318244879323247143898171499789429933879930054430710148114475039639084695334992184756840499527680296902126164482432240197798070036404090977090041880245239115828265319476775900295436503085472482573783228169644908165330517245268187321413002587177890441955707930410093555727092255620932655646698006552258406122236161834028243048654234216817864415081409481502287822340331612868562589059080708857992677613110540117534951530603721361928662110381272740851309233599921627646925126562248931331785474315204325165708995795431640263273198460984159098132268157319441584157435079707671458824613978044681211787236656111466026833046654647028297938939167623368154562919990798097449814907182468642682396198434921760337853949330260966449170691518598797471223437663835456969733397850494767001612022722431030145616241815929375046502253341191459959344167763454219810819749700827619448106351709192236034216623819828686438825016172785954445868447974146006868563002993946053744482131437071940819773204062604161444136696037547777542801992166312358221624138268215516481076667026749298859810675432751880838186993975132572037836085574117289580751674643454657601281791352675600480624456636347622529612120590151714535926345145248072535911827305899213064784596487398666006388945709185884638075812730400229587022951551522094819044773012217620453352004050050087131445349654774482324335176142086142247088508312296840797041526739134275659292007893128975186892267256188818988514721460931721836363824680354450381049918404288142355871439615615522630330261349196492296162742917322400048268386780971937012634540695041093089918737632682773161591006365150271641234166766089565511019021707470001833206053726768777492490845518541962283540262267278146557363160279866816858437128994211525915743811584684777820408667025824962719210425446294948956644230633343134675661210180371608398558549709782121397129431202309785124318737658589007638810245994354107895435272016366972068157031498057613786900042934642101689029136041102735545567760186126618903701153052229993928586367711323740859012584160930080151060300037903058878273521915413169398648686942750761146736512502430154175808968831571365751498213858204187028881999048447310283218467345660397197502416852097269248821565230269070471035155879841878517356720837398836854860074258233702735940403647631051027255446191119010425063795074542370516776936125324489910081747523491944341211191791636491338376022299694043148528713003945163906890045985439494047093766320215183476242688773135619389680450035576640629777934576927403332427667335567348846878991991576604259725743741944364156463863297508904529901501394404775967998948171279314512703179568477899817147445440028934588049743346824956885674318821256599841668615169630221789905602557307283539284770364202098436554362542423207597973593824556057121108505109982100056724806520035168644737144280932220951608304917246259477826475145753790071606156710310291366945056672654478682962545745310517991454709488630144748938353120201753310967484173992537498194516625634115581771679485282361341703747586275067942818382822353672888977433323852203719161044121992599381082205744209943845527111477025139168553273629091188757664423294772334986544616174797120674162334797828442426454979200761328572848117468434603174190834592179949453782472032162247872901351873709048006245149179593624237335917729596493183268610387511132707553637384899947216335357758126444222069820427130447876459222223221498354830405561546276127184665075500836170212554634113054263127807088872680456226147783937895898399066885018423838811348913573383348784571673475375502249702864652808489149850862069532542035893233202728455786772531222558737916932736011711346449829442365990761587270429131941220393939353147169350613417400471586534359655371938863832535677252663298615701689610708431205428299598579537004937158319228282545892119555943927988952386268034508183640264275758291289218930568627317262798503527703502353911466015044068130604325362691246938593719328998933885010102582220761504382843803159673456327938761370053022140302723949925665326354426330906519027129736155523344211397097142189468174579461821307408601956910954330333394825747027099410771032883305364926333380233873603614292042422696177223081939794052498382162765369916114387779309102744252462049531520417625892874261225477358574844111492348859861976651645000565029767706204981180551713169868814045538264762156534034601519852177175829460700668956008541302515331615604078696457363491320869804555560206952625327563097955306539249565837710789327695765749796350675633821405157640757430638505709592414802829792825791337988253605638560474687040043807851583792690666400727277661004032889800693465077695697991995452108051680422495780799002604164328620912298339721357475379924030022081297542620056770444890599728176662388215991021781829153152218546245979801522797384512623839448227072340431948315299201506550679984002121722819179466476738008684416605545078525828704800915682277009971887867653840803489471306779318004191628811903832221867823634831596236854263938097589649630278745734491067518275110193552187994030158922748365035878847544478422306942748489375374003343862773729323869853819797954771944349953664053603209468683788094252344135186253195212460360243763103756240094459496298455452383147223206230226419931614751697002531489302100048253703314691327202417210037515692794065508239628178650397270481253424986302475801603781208152405795668383115017296641758397045205401338103146521847627506052060637206141419009969246184599845798916760008810185789427548407294080667084099112813198536167907330284877312083633947535466810214095618699095860062646883696891736117080812319480509077706604899500008944771993265927492151785094114450529533743373858053559486912573600113297623962828013159215200689750841780687653535482300897297082637413171554151996346025410362263648010262413500617311351873076492680892906522435500678877764715847110367824189577805206792429320428014881547506538945193080998457170913053516095565139506684376546397044134419189872891586001093593619004427612528410003584723765659058469292446520210284112454721559265980395295796067259470797972836544029480101035548508069388917955588608405580518749045905500261016521655254933783573765341723897742489455802858755311677521201082896706894715344942046452442334421284582212592618861872051370171289542553764557456325954711953009948490818718348391187597325196852815732635316708063597198856234226710689483446394533468878772805324599802233114384246765289260604477210755199369174596160157364570582596064375794106533210597638515436159263733926840453120293236413307829016210323316388559626187748035303040695783169872532910505173022676536906886985263630300567629935359120078939336333802184492243404490361197302121424853494016355019805413786314863727304951709684550816001735665183764581777880938050603086672077451508045365493882703166682154497884862317908419179036383452362303049756995552825403210035123042230571433844263287111761758309627332435795120670540096555324850311264033805132100061084089535815815265986539772324537984275878689120126261809196235842528511743219018582458882916633004365961758548569785497133761874258615275078038854448750948446305539024518102313532798599541305412069455827245677081018525617390243507980281288782967263582466683882312752135069985256583300653036252494340528021496810225958414075166369687301959524036903471305469177343113376553381545255034531185401975149791211300297211878994106540124310339818366317495848998402150572535399746157756482526589761701363258362294356608818727295346828831337140502398599343737221614110147226883798444060847353002786005191342426760902738336678954517600971264027424660230778329435931079632635347606301533434428206602012535749684421448752305524299038813896065787402533688289391988451043854119025458650327013802334093741381840357601336770444364215054120520456435424839252960000619568215707483123410122095941422197654953997600011472381128068029049201361418591149887984979807320919535078216720393885268550389318327810208799366305935933992480984553156354252361909288242306925382709236867873105038745800610791542547028773523991567487274027434155410189383991537532539226151929190981501974450118144500713243297803057924502962398957138221152058965613632180755750033761884867213891826603955005987376876324257752309225881311862649016890071578526410183904672803307836996141774746898276373363836065819891270297999832935010140950584676476759275514097677818243232847030408742283032415557021369036288649974399998162962037355331674097858813180271810762667080534921628084462660250699268384789149218135327207051595820558581001946812119265379339824170516214639443408303716074427857812149280637521201811261350327586632840703100918658466973299187985974252194352599925307639787190874956589319266529282109571669075604342779378517061285701705393144032226048125439807590473867860747311196150287094395724442731507071308613982220614982931379182632100267531793916834313794639555503805724680844925993856608450582322692290798958453965664389941461478524655968881781258674123728810211790681054585934874880151808674598753604432763566517439614851310951001988604362180720179916253120524580310910808154887006019173490872951978159428519839442936631684469932065414257935361346148054202756665915017824498706144109674777719407109802379173165100258080937622770675176953574613541873917983639274786140800558068870487705486188264178289263913088687919246175156068092260519012824681315709419600482044122905919424666965271803715083507290057833266746720960770761383601598217264452414242714555467468390017968510497346126085992602707230635400859232798681784402186762664381465796796783487311321054153452827051416478241780102218855245236135614457039395581605524402005228119323172586414634145509150811628294961319246783261135364164458058591041460729257578140893422373541051935543439218464171005320808381952731610228492837577336048112232828117412615434431943626676630600926860272795908688492032459188075838584398963712277076779733557896736195690834363403661459892283385439725577321813257218840268560063470777168377118782587340056717463493283589154346709985668801098539517507661390817413588244369677600338765134405395208345185252475020002218069725408910691754454119164687288047873570263139889507209965574232474827383098458625544883960877288231525758520583674367970267825420664490897393689222310724908509541875728008816508237993557801113451316719033545194844838416988165610841949545765313930170943876846343422222532650515080709356857403811700816359068786765598269277210866671466977151257109215166115114668589102369215270123536622598597507075559302951219576013694600306290131394075909220170061894213836069569391923539869967192317124105043271495951435015977231062465746344828779656896570296766984735632343710150610634232797853199442063684644856342972918340230098110484949936481435637166841306058116375556805541262434827036043217147042880450144338421056583551656581160652068539602814053804875274479697152602774639306785515752109470446900534710845651689660162361908293208092514015884238940667290169016652292979026838465984598645553149393970212588803924866334789336376820370532446154786093975811673863254576029656235674624526343562219413090007010435541619627099540002263998819076511697438260856418469301642382028389962537734647469144388301010642974466165336529155447594798790947922754273753360340806636602314797748877991010617678714221525439861784731020931570514124994895625860770015132967353499888264212587883131197797288552458246649249304723980157042089275642542607669940703703463310679078805597133285199264869202674078519856171571187874541944997513980735373654779831909186106343248925338040501057301265700621591076962279241844808376678252806665388181588121046090200276510358653882303947412658641257974226490063242363261949011707703982959789526550086811419415318866486654656532417115996573964976427427133378512482260766695983504478729590573030644814983413369428831598883727523623827987791038477007671563023142321986707073346739175266912203314285209758520812828831451250153357212634525990308080447436977070815198334936067943574927162848346371989790572351571351286664603581935916001176433014923229381184341775400210029427154766485631873153682518034044156408552872620854392399775418122717526290521308996170497365156648814784042438856092643274273690825687899043938923084546947803746845574012205737925084551906215231000625281583239387787682226915802407490471902052666189416996225045988579562920802962588518616368897878377049365718376952096647492412584838990901918449823625488179029387389141894671475906301373609176935659079780136039323785002266102287896510353451810553099124934719239834765766878928662705559428228026605709527561686219611258633951818664688797465650408676690240595410098145026239258758853867880595779829941122679814847885998228926792643525932836368606974480460529221028095601376526591343251910344393550804068069038933657637554929077832511661892936049117189239250897328549014166740051239805294072839308147193504685155503417895809095951011237881033442003582664331734406002384630362051362378109367108673084141164015302614855770237544021666702824080175865516727611676468924695420860024313511860531883416197039077631873760611509551972069613311426436041641326209152635509092499683434025552130545232655170225575732443143935832678261181193451969862813891549901063809328363392914026038889277916349291126075816321308513027556752369999844173999656114474190000110380894026129929554256661266019851187909168358616540358936482966016563289562453558970989965980365600984027376350286553842502055108095072011407661033012560739544069225937080336876922873051602289280956194784613284155336928906386197879893083946839373945593904051317928221237113614216772988056755834009211644655806326568778871032585267343413139732079264466973772161973158315531233145182084073457536723404116617802052015761631976435362591544492943076107014274663179763900591604272233287393561832006033541588201733264874422648103877176232001003019656513786669592327334967038230119959318541952044090582222965404204339269065017699106745980680618023668392497089563702628580016105996481256290508905366578920987445342265325317494285479742325850611732835767609851413609108865209209171853704111329919175244685706656863150888662904681444316938772574919556166376639754120231263467479328593828169602186927542466571627423391389455499246108831805602580021776469335419561560504853531144991277558727968923527741281485805553866785727378730116514717304723682880995445081284856311491025437089899009631946518678112883841205848918697523717983265958576715540652426808633298053131155061543938706778962857473322773493146244737658589905137884186653892068815641784048904825231558848528245472771033699720247044188981181854611665015442861393310840427728283908712638148020722197774711474805795120862925442402697125587451356811932220762813139966922110475670122597582051304915168272245220566646825294880411144556636907557218320720332302295243212865017444214396211351658065332842967932501426625832810390602693706931307032574854566094606664111388533868924187339185213679678609470689635334674950996391115350825822560351291726687638878787584114557206547804472577346232959688664567216885448276529701671223793278589056251477235712249689672987606461984253699241891668695820912073254046393617755585583533745864529047538071147866652898025684125954598111973553407762051488650365573061226231235993457210622093837853672118831241933530321328162084448025636152959731058625383367208054546164597684540831479857320532545031560217748151673448362910924709705845432498076004020069369110981867542550786922343954127386815481991241990520920529546373344490217632146001880328618583268782986289119393151523756016484690168652618148705193291923038667688967483322150376980976347124226621724389948432338308368800865975226544754651486947511586594511056649804215921105864427067514331606908181222929444924884845107037489809787462935962816466662302398028406642171891303802052784349221268987837493468693388524562733493793987817478330819793998648263650193860567095955316811469373383834673029634709125519182881192530824136878210654525296483268177609607054765535248883911913137268605279270081434321421357750512461932904236921327700639181455635581521762316959387576027366075761226490015884421119992900712351898335993284177684534179207456019082547394633154870073107257925788519647389470523720866437835962649649408789341314473650720691583001501499290785123847691046527294964824064577249196398946333320453004800041834724874657138760878490680430248681847090442964649870025768367998193282402106625258215233149605565069128210650541730824101153219034970046350922637894345089944902577754514843386436144095186211343808068973446502830195704123081772508220445298539411582659084950457893687075017213230365861675493906492073485558686574656415742796113237258766478734264206490559561701828697970330467282945405981090493251367305927750578937985309228843930975050535650865354044282020189258667387324924426812593537040577401627895304072248570995215774473054530890030089076569784048046075272719444514336491907633222728207624019607916763273733449324246331257998504499359859576774205080504228009882766598214017531894101011228935174182013664124048732544686640710275979836366615542760058847635392194034032836625657538318128002648379864758714428473620770660136933797783683744645216706349118948435712426928073227799375897499882683371348556251413357258594775926290968179392061427610010758172318090638871572702390257057173611658148574668200360636992324692123989392525712611417732281463092301333159716521130931243209276546732523670807867211933833347467769409941411460741045730160577803762438145486359589525678334397901332326817970559096996426816012030748694646648260285952988608325451621800750880066628257418761539405606585379802984618532993273705823847659245482162416050820525114975740944855514980683479838564301123266068510570614840627207745524087426701766463811653900904230871623776334031116255872922592153745420783813269261593840638073510489054256006716891677178150615040537656223749148535577863409971069407978393837112101151273411361293670470126150288363268106716362366984508124936720256333221424955894017331194377610012017227619800461026514809573522667939765948427030010058205611412503609766516383274563699526452534491162510480014746263586351483033683678500167042346434918737316754353478642375601334413800297395598301235602669102455458821235457869493680640166009978745332549189517290722780790868501647521101323307675604238704251247038059864832988011478785508487151995032181349483311813174668705951251609301980737633189632193564073940319258139086629344320880219131478680014529562524061599722266117225024424714541514877203669942397911086864516119549425778388467906801171740830915474552903356473891356161390548947376256206034942971359898849246595387895734679292770666534869098536696914234010146017143446170217153411313674371925935408677724181630586700581915688901394939956806345830872851649584620684170892948354389100537756368490047413985247868355107066243484755617158992506879438259674720016632071154564945180382224681469905391042547844164007514559086104542853890343744272419174154015353561676480415323265676546917350396372831155046616656827663404602701542311702868174464644865854793420494717563395186657470905942828765905474716176001641704335291520566504789221061995705484595737186997578299863361472884795375941108268996765218186944762952450569985877742330104963167157633574478062152406884977163059155925626670937981999584542298384350284454302819181237834822752854403775778391665928493861072287914971555893760466175019767893455549913298238736250445458047131248890011576952635344354889556149594405408712951989097740920700128624244442983886384100483670537510388786069675299544959051193870163257064267928587071263148344269837529724728552603872097842712941415499537034667518949397024141758822208202591611672257090635934740252960051254946370297558715767424939445915460523203700562690136935186459772126288866970640163067991987618259602534393951887106803910910026867742179438005839695029192298812457785946365546080167231766101530802452227191765175148275574757820027145237484389493476907292851706962731607258546309066685811941435768116677553919334985582865091450227926572778076720590702362337183762991174618015738199646010486971417448610070446519151886914092715986629340981508883245163731888640179968944602002585038530975336418659750131726340917178764630157373075182973783710468610590837973609933276903862878298340688023560241638170092705501067099714192780467565178394897716860565398561776205430436274762717136676968573105277359002616636520819724921113776592290539101144058653636822637103506425339287103447248276538481489118031472471216165814590350015525393849102528237282859460902414908295342524466709462191265072493511336802670319207934661613272495647109449429566951170778922297208528237781823441539848501725518850799958214689944814956163567109975259952587797193472064747075584876064754002142995984946390306525807319530089732406202198630376401878789011448215182235057544443179429912193666225126325765660314696775561055060030439515200223592934561028602350973660579814439040180687000711384460612147288633214320228493046714693911132851530545472927890822531528644922348250754303568062932043736422323126780287948288443011408288715590591146918347921374614535628430664450788258089594479530161701106342315317075002708370604731196893731662056229300063496565839817516445271718359896054322630925455581346914099599380440947401790059366670332756172811423817104535082338100160225314505544607546596201918485339835574794671880589318855883110930068760648930578512354668044149688180485253797600345733086429404957812768573401431073288331909607969496329197369169590995200300772711717456942455303329155355367225671279167817661546943634386632829414532823421196976780777509487310556678523190346583803313175567891746329228405802456782180414379542896670892574093238534503241567351088808006961763086043087957215358656639370437962836088509675134271194117402059906139454188522177352407811439277014005542859942299438172093862363305375099578550086926032266952793430834235592079641443582117786307772061374461410447149162914986661094419988704498372506450527060844255575448591463535164632204131632395806204136014996338241546553762174883463916741963795693367035266820574188129196595530294441549784680821539254695234424634754874472671107359375384411312045382580389845618602899843537735545704395841374712598501996701682381810721720264056322769195086612401323413234718970422105525492070770742727299342498766300874899146700170947548584913568506109963050401582486074298485627306376796341343828545349306463795209907535612059344704870172822061218155924741198375561488239414754995903526883175589170140589484043364766575677747796952584501473688248436058856935386140451412858497419712962067475532406701977282505641358824796111940924301066618667496146806132014259766791952302539094451259773713655799059548934233424471402813303155973774201546293754383045394523212032797101812660604102160640557075849534473120468504187080902616697913339221563263395905455258099811570189516478795863597365351969631278322041598638026818670901616552412696135823802120975987692181090422243672188595268305000064299270259806784808579838664345587116538658251864110165009169556607885459117710469782911805969441305205329868552307120358253181842055328461223806612137649709170365808132896350741820767774141515082403140893206519859789185532533913405292480548281672268154232606632690804482466183127702258777526362351070974911136112016882656435554028794608455033405080955517839432657871578104736613488904849431688369199971872036289216038856634178520304962933019051733285923870745571300201547138870460148615921770404916313282229599151871316056452366375602953605548774275427798753523633773778581887407154314123665153886396562130322023068698973587713835776313548352245947114083629605770657321146583068735937889990742740647858546954713135285233350212346910616871917509960099117569939465242329201582843894557192266463855101385871255095221747239504625942671554879931822948386376332659760769323744415843312308111353477829436333689780625200892321561811706505815166763888674796990618956089278256580836357758429469311714712583677704354004225235534630288924864559560308761807494587589109255076190498321661031730245336923403721718764739417914736958646973137829492757938181375031692522213852142384574868528978191862017616620190130969655453912496602324026413600537773238739835711457616874488984554120735124128801511946640014162253518515306266213172384642060872985062630711019450056660302376155951606359558790787551972604659936858082042887748555635037782677394351327913038590957359188475820117958605427882733199877043813530025098417960502915793904491825318596261037268229544088911561369967796157278661185171035654783387156798586192867032338755050657262915719647120535790980910689770596862466043210934943434352946377895830470883459037714980322165056919214635313554966673112261230983713518685738974891459645644979683030410697680034725099156153696383122471269076435251645340559066124254594750670896270530889696267940111863650849339123273398059752530153870538005591197813295267419927390578469499746033128052701785531991562647782298231918647204611423014515562598355505929689428372112800562080451698697160507560941779511515403040974430971206659268876835446507250521172177001282816428979955805833193730814930610696443905529289637094170836629174721376198567766106146006223267081586307857611845197840627340149999099695109852271737870132436350735680878644337007573132109715644371548536527520969941011647296909854448557799925067080622863495743972126607249582594785176816900339436407078431568138971714659552712030262792073416572913434619273064397549015651637323722424245632268008493507830817180486669644320193722450126056793228177806591105847346132085995189946327205785503188583717851785205359255091430620960167012924075617297217378574712675006837496936930675433366977725510789415178351096191399209809030029087793394253284919610831373667039869083816944846924141238823554595332179781090604034265381088555062009136229939538925433255698338147566498729280194944721068974898197518291237715510862425949849643480807609051277659124869011483881526898061184265851437415151284635082281792849588080246299550249258815048494892106839264409752952683216850355007354909490591005954012510154909124055645022665630116054706045433163657756115595152255699624331361802037060320615432137645499466759851703044575608206726974969864380902449336737352844743481594290172014363033594977171712747655229433382398549551706354758813020950986640853994413207519305775239528413901568394739352731440799418179373503716665829372361095178561829388088576778100773899601015166325000864722209715778681703399557050231564692119223644604477984971849393986333070925461254392942439631757648836225679134748213302140929178041648114016420196359349454245499306664550506390158796413491413233708688072183761312533675345561257922449363121510097071857685485144701562054482829954180867576142252526042410160975629060799416987596405856702658126374332078229568308089910662567386795243058849674554047716172782870340621026843569565258048030362614422767021247572105686160394728043674871819623490934103462980857617542976367862273958791106391853637476694576295471169021698233372871414875314282823033501204481886678929240173109803780144249575903837492699836372131213181669860439825493145028230809218615951334899609299619032288996375742979195175313082738576201054903151735529173264630497299095135472881802198822463121991534283106454457809649356618761611312994363046418877285510233887792078304281156987573201036280308091490162888204283582364503823384415467414783306010071516927941723616196251533718887365358183271452645806206619061376831356186024333481139908303958901647201733170241688188970845870578864465923601611871227091164700784784217556946577084063098842463506464348771982595887160521635310640083530282695449311499782933355152811673828686067064170106661389036161136789068324124724613199079877508871753760617102380692342124670904275652166693087223971462926107094567504234036004067138168300979297002396194771004188712475118581074554455433875372802735283919970863804039973673055864620734859593734315507541415994482437513409951488583218173397880272948067198023924100019764532195538557711871802821100407573643114800838532829083297921704233696485013729256008177664569230146012276292366121927553480463964879424304852452169521844596775501408985973486397278148019876578343630539138062331670631139477902564321091253483502910104332846252398701180759188334597247482411705958899910940797382509436429084138110849181136738093873391366706123988010458491738310207236420462546486795246882405680896619492107348587835025320602684713407011347540544936921004981550643396687851546515194129323587666089014840543968568313340400990701243238251698504859330635471793032052929974063490228662868980293443566064923796455245292449541134054575959343108304894991619417705551935840896120394549708045288211726400224390047945012505209756652267864257193689410229702992670152494238942141994993241545320366796491045014861444589572681339849633422152387365332861319833020413537690382434217644398605717008998571420230812180851100277467072057475212023917138376395696148682961179494433631628620521554767534289172655290754819718621175436686239064216841927564573270391392532048069111108346545956073836272996669562595088322363818461974625604750292424349371992311961982056406091612272862686562520777487749610044263886430594509480632329833311817701105150515590138282097253356922346761759799924516505259962697411835978779241078133883614446881940194234464386367196430554171717188817666667655154341336640527254664198995866876230558804708805046056235725918652266192592764944484182018744540461331515246928742487949203395335528327638937533688266919393346508081178931491341589660744481957285101393998198998453330330743858622710388376476607609649410561788328663267897485594291636906098071002371776905865877175601167056791866735480345131853827402386270932116315759043983152600257290781172124975302307368063003284841835801737477053130154491684893307483917463847197160242451889563133298055547924038674892498918399158670505988317056633568254535892094677595992596351575638863201652134864340897790412284985228309706055440496066871957180656111934218770166827493138513824827044464899655386819481869100267935550522689177545828823977435490668673501306982099606776339289027685569647556400877485154004511054459603014640222839556004643863872199470431150656436344203019112803345642711389103036529034633005652248949751675097095986372380246768097039572131695255209821554483196548627195025209690028018711232602786090238201994905645515293241828548997505598646826557475924654384635222704272042999963570527590722796523469571401953180370707040646788423604479887624537287351029253378228311338013132135087202131635753127119992383833971976871255808167954062523095614683042562686603538840033080589281635261643067317663753520370799194776768210926498267837992209546057415117715550577049507675293841956523121383291061442262239049161603621122928357486822374265273444571048180250775065394683876743315921118223046563243680164601888051625320129451277740649432008886605080093468786666256978479273962305846742126958531676270081663868704321299104725797052909015331235004902847555421418697229891297855906002862683518876115490146641478603032029821649574641884602806061409480181373903439179969496846828433204510207022051512497608449947155414547543456496308425719963960002576418064390068632306897104574808082201855436371647984941928327249830239016894704918966902185291526775808991986293463366944941289459932009943558928805352601160152320132969684073272796112122568398908113919414323225144938752606997806491524898265619844097263675148751491503919810518794450003270776549808708405489578075377487982697940422372309595601214027501326471922925719646481818899435369324313213650877513125464211476251408216827461882060790884320859497653366060131033003834631966942454221392306170705640680386672860844472778458544549521302925871486817929759938715254315049299177019927484596275111605656396587585212201272030666555277410921398634146712089470063953762271260169171824336357500169773082166966083278304335098334663889314477624015103747081914588158236239327962835890270243055247563488822290817982634383248283242173843490691761182753055302038252697299913536209505174976614835888659027095801906848378245533507462888804958800045722301468793106538766951148569311668547503163273133061328144278095523673842825163859838034424349787809462561002177753662698614632083104968560097528850254962780553706928105585226995721042322784573965821575565523248904252184796666328855891184123637189274371308529600168869993433482719575890955575042430800456843096103974780378193885448556174384954236547365870016585702350946693731491932121310001773904091679287029020800884876953420898985172290766019183420538813377858779406293496178267948335117769807286264817209636431708404048570060944775322601633193007223211504647719435121052697728993071836696981625973742970577107538147419311271760179586457183470974872994147553969519199904197270270405633262873572601410969191617655985487038169102563356908100584786219522400089583161516188286396851309272171749150774494928354138288201029122978369307231168884823134615766844704320147341420750414539208991256749789075774189852871302472409760963373907111480229015358752539194270551222438726035196658978274751397677124655770278143063459821756993048166641838038556532230105613300619401202927299850005818980453232197726325848582125418920548674798589349338463733901672243141910194230464936512001214049027283917962833570021951314795847207676860700903702728678102052734220052473693475431008351140094209049512820937128140580864289957741557756850483575120452311672314135604024737770310438330959749000708130870477276584566920100821109180580869415132464063143085186907767141413507032473381084997912137329927945727327884961087472300272992624387668471133612535079054407898719952695810770905913141619924116177698952386590343624385189143721509129636704197319864921264401844336126628397847619192872095631970228356786371954876675649178984845130572842357458985393993271226284984881551629181564960423576555117771208986454686384385043889351605320561350004690622493087533513873747579674780000299490221799317605475055407133896064727166825722062651165060584095486110205296907964001068387827265088547531999394053228679706061785522176414275960764997973363227296718058679591885114850522923582894203064313103303863838730844904979466733753593716660350867358952303036877026073072037154596950654902242428154811261960771127863081767157750423789313771160398351616904287448887451422351923651485811081028556988469590424547277830813915153623678480633566884250987624327032931356311278301033207343572779309199314477228282278754594615845501225781267230887373910341086882001661140384747551680626935294019257020001703328314912055380830530156282902870346088460757309004774231434760149235244979570645983668366103485134429547717284642391070706159919061041838991918749767695079123760163773877631543474260459493072865280929473310336369065532686658911993593973461743946903876614327392519214545576668135742610748081915967428138849361298956496809587460101124908599126456049486489513982972200058733700075313528393559600146497515899309000851079610796294427561001177615572075017478369686309831807085675474581937719178894443301698502882520053757405938261143613895664641657010644445406225433384136783770137188672584068445115106239056655449117030417119557183763279690075443880153634181565287205515592023011637131325889559958453306175821123884583336841252422241044603955467205146108892532543098718968150270876883504258506802391031800207824418207948749680062077113000767506526205624142349521184573546919440823581473155868787714088743591687258042304566535315633118509873397019462817396025249148030302205625502517586682128192455266441313309465828274526126707445905781880475782760276481615454843302194804103577693110983964058693273287728869312616738742701634228523803849902476058333279820805671684850252401355894854696501793579765241070479735500295681101028389831189510118034235401505226927619840911016534603237620742571728840552223691911620726947660697078313174634679369003942407822263152198277308661197469807038071313574552472881617538634945043047856095733634454344034695966748389934631210548281752869801385056639538221270195273526167101081065680028660056419322192788864240749156012060167923620870975777010383253407660654439660008272750238343699837649414534980161604569188338396647821636552642889953423043642733801509078482557099483290091116332614244733662150849188177988744069036094855545130994742370621001353016931398398114368918874701766659113926728033094507728604124988685936554694372683034307959450532503871062354248997516258575680978001181066945448648829443963164879844800612105518723621304656599714892625677576469912841698013678949424219784359131730106693963417745387573470875187996345946406452959895983671944624348642653028597538294010234097702036138140716183556784021910371506905650980187474182471440271197725894616602602026153142150272201681080246819146368752088861087063291719883390704282209351163718983707293008320435276016949678969928656375638896773881483903236183048978959297595751161975876173467146867746853244847646465723302594179006054066513254227360512142813673511485926546435179116564292747191891288877630710126312960304788768996476826642344455258916035566413894163738767931117969232947289789473211047865761372327547269433547799220955976688460551175460128721920253543466513987075236828824970493702598633752092853203337383057468314367939467504687005647758313735560870361732477959658404208131066212392664400602425137479307955845863034050343930784477586450673264401942685779845210582388718223029845399278478869666676118140684947169126200419550054440551610944401818153834789627599097914243607680825241622290258479827626833826430681436272568116530357116157371903512414375189280497569851828371794922437010379230884447036996096665383622339958545667313524939309658782653044997545874527501387697395711348052097958404532758041364650689314710392964064146111489541877871084191749104682316412017127095477945960152506262499605703480755781763939698754513523997010429194267513380522750079878104815019205513672351835885401982731706364885009503420462694873845267443476833720259728266931663335018353417210247424640020799271985063261911756834621821179985137144036832820627698295231724183976942107692726455654549699861650240019672471073088983383110918092928117739155776257428882413744856135521936448721346341992539686066008626316388955259421341095010982660964038773661978312910287485723537361271983955667908603124804633481078977603769175766475287658826598998615475608146650519958170238005996768316617723478869716903463639352485028172398181067259214308435456617609479723724186635104680022408545335431396410346345911384871103225876947785638185941454156608177878497368808675967091363604086984119596825964198754574241222113632864255126692012479977521590217672211075414333526145977787766767065060290074319552996710744758666095218860761391258931853780992172431629032906768213957168913853567502953519528213523010124517014025867230502519969345507077199618606438487128654510297227392187934563052953013398809982242746372248802588273057215313762634416195658293429403801417679485751537779832419625150710513749023247389803009655318057878826855042209698109079007042252078413237697081613777476137921894567990735016272057680790836164933059336134351028748607504572869688111973485543879602340194560576610646375279994538408320539978304104460650977897161088901829782941231349931262056919695316770951182726114993107179782106539318041636240624259109912287655696573251799183667404509526253674288087219365743429546102233040918417275496657473097167249902015843291791273336434777717188174950782314331875722277692359003849314197781782781329297962266106262806817299233856111331199041076380874323830465613212116960244861785587136360333117455339106097915233758871352913515978091312259166219788171716896312703016563543028041022772426101553782855109683241665871512510502545625457868648812382675472967801938144561852278324017647525203617710944420419484806541488231972962172219926632621697834943341064307918966548675267436671618859786660156709153527628622031245323487935954131567482357578615627383424093654165792871501034627664888669719552850905114106571898391170330438147233243236582348386661560522111089076811884167701268023117469295108152390547320184854570447385785832143977954770714711901031126212935052116431859283973177245040084833040323626450532852767120782108561177809663806377612781633468041240074155586833128419659800845049589181496736625487676182214253841782795879385130510832813903972109340403053065063222220367908874668253566529823347656893462486926800431709632249582458088660273962942500098581805538583905533646288303720682584951948519300532999980156450155280825421237866110381527145324675539068778101232581121186527094942472539372316126158777124509514206097238742214730513548402663629244049613870131601354575543975282888841591915733553520239200424933093911940672002764678741580273416636645197510858381210942018522800127841293565623006025356127692083297552154891188451845573080436245196942361029055180165481765361169243065029146039325878548827450973966585054253226523493157573290779828140305541271708963941985116747800011202136025845387411012942939669180495907115969400719413333283233863106732546256069896487963308881457016040519425915002208643782265545013568400280343761017514199237263652909966944509654708549508824851968106538989018306213451970556894429482630603507518180853305673812759852640690052010828154044649382639216384481907169547282660580376004632887237837855115719505098705834911217641977568519653355935791556303510828374184660885959341993634110338503558537904885144041699767627062998897404913892856202345933022831645589311526644247923200346494273092589295360300941261175571537153022261436774590806974865590738978748800655820221301724622915800646722342566530514785488618822320352649676630663264684296077747830905204171581270816704788789441403952074773618899271360433134363850965091623979216816194509026773739229013569924635816848023191862239392327253231504973704373693371580020604114145434080259245655414347424949239452791097349804371111793395699075385702488002639570646224757333076702258684166611756074777945705339674550560435239956791622739348969207132665596002384143762417026622499812529698758763704531294634385852648833770514955370179299989530892087060117137155730642986085479932538997124453414103255422525512242709159943213307586432689822884973716735257691859284520715149432606528892120665250271864887278449476953565039301206651192688524494686548890085815030389921232220168069800088644720272731824506826219867313660489288468453683946448447118175056612657928403877506335567660935396271286413522406704736716384007882747535455509382176225736983138027065977692644725213440848315258543228972558205763184992188623083841251441661195245083848640743297707527784228310065920916294482478410225299111207632500928242422961721900093851230474929882883369746168106115175452741872904795466605967778795551281059254281528595736337172001896575356342381853486209480330601148584324862064148119701604497340135159595483926660295202903126920652742213538458353914582853642762311957835735617543648318516558666354812623416484190387564404781292358809877294849400244858701749357181400726262228935093176089352248438349181056230320310085277966330851398372910435603196992092271393326282205708342767630165832216556869003969890100092513295536540928439885918732441586969118765221047151850068056614750327360206680739652735252602804988340482045278478087793266298859742058216753950455453769652086316389265812594840737816489200985516982529778117961952699984135842488371738757360932009569441998217145725790514151336331255009003160704901948582680377622838611919219760996988879812632135870594012842893104691884849388225407703647563571432294033539325581934328541464082002871777174022743808792202202229648601189976643447757332142356519796904083590845337663777580827082621303251416881842576242251909347473763256574748081606408619298692800549886473353314533473237352614810496332520311360797859213034729317333124361887468460706218857774752301240360176763842204991215558005542986438270509030326632767858406097317788080221307899134481653405892429882176745235638625712766934131254593333825761630598157176774119595500052493225694817315547868644069509026179664443074616043531528755057057555467986715303291546601677143624852712509140569356442451308457253972377859838498321730309151062401210387296495587136724634578231806053893762237661733617372071848529290141729337076617261828339208082719232292452522937811923190398754540439963675381192790562258210346700566976268741687818596843570250243096938207083630885489268762757504426322530086594882729993453488722498566917253620715123276506171025919607170022041259352769744773261756731163404986988024682457439840713133699089395849299216157600955393513228986835243535125379704733581070618732517913454785842438114905410584285574015709836426577787073460842113408578387574012800010033982506088629657194934481666926878636948248845385847235922002004020615170544960060359769090470749290252638675727736336928395130471789370305883099646482333522695494325651244301534578404301159061827386329647069617711261199159473097467145747201620523275491420849011749029799497276994600414682004474707698993659793913843569241706164014948378817592849668346873322464413132764953740658362648343831079596465091390676684479648834195536954503350306923332115602963974685532685885585009105495223254020018759410963100618233388796488473573463374835597154589426841233253841312679268773767026161792022157881199977363729722248613488299430411388391295027722483117409488327848159756714063199711055811323362860561514128785370158380908029876120227708070515230999511626547204462677344942556864318615150487908996350158271048178177811020209192724952741095891704789756739523372285700332877624392709207503155170234477007817717006925179997366660692159069569598713999613031646836663558077356755773950014824828144651706430053169526645334824255252549278609424275749884014679387734251319528677221313222063690824739095096196863917940518789977725370508951140727052232127593061816270339705454614938399736183815930244754049019290664376936687702000588724632361126852449227347364774424445523873009925068809322779459597231315518303620419350314782034165651568058987578572480386787886611813267047457496055319614871767489966616137296872770740843916257836339584309997547200841442730899987899949250870363389940305649655134006804764217865950740943073546904883269565990628212004396622487396131272771795477835521001903609104396284825115267639027461154751650712930036727004836102896819781370875474387555546420328563466806435572871959830117853554929190666569645038020215659437278835582014283206008220921215474360397843042292358267377452374332969459998507266575774963543209351215384685591032012030954679245293052906109697486919907497693060953920810308667528459718248700080215059403125076576217019298303303968583837603466838589305048114065252609494465071582116112264467254405281566243936047182418261838140666709533701986957654638938609376399866670893514073065975857190097456853631953613517750740847016040648277600282322401707369092053404952211379708230442404609835769269014560863979004192696633490224081097884055326977045956657149048734545735985340892512805046618014394419036487379139286802807275771697934553642269263085799833474648898070048281989881904611021697017433291041418795175536459780252439904982937708678660695889302089928825006941701880835458761529343147950681857960899590595872168798753226692392041596925841076296832045219980517724907090957699232934176336849222500554046195054440065891092299686823786493366512335320168816634120910969267839119891846294629929913097950733750770041727337499479631581945667314148131683031390391930836485706132594254553998871008935880004553299134401713394226765866883554887070824668394642495824355792005694716484537081322712538708229604327459516621467248925260921429329138511564020847586934563764345703555805243748568569459004259238710898461234447962151354001930488878290942602341626625757805345894344364109177017814816972045148789315565641349848269688197038048437719505429711613030421369418505202384591789364093946417155197714218232789491526234021691298756846553683430619649481333101514616488826688604791765004279992107243389478626603896781883890672274542360518268848222315135933993881949029092715412071207156464262140047000152163885815916499238335068200124178081249356571168414554815674856480231000655730627195944540578666234049777157983366695687459015066467130306128479126179244138334405699882618612244159073444729124074918458644049430140024317827441116679722776062044399984953920798089785676092215007369876850390417483681537691901762140576731799128039514860499158547297860407146636253997455634976973732887125372341621189725535721698248486341459014475390575967304646447252492703976406693443812123848706912822284968615195871398421173109628404052528983945809962488612266995139709762601203553137640358672822288745412150384366332735875276421343936644838367852449037522034675366635470431461964154689072891007509346190977760949815065168447543593146144192427022999268414059579957782957899518509181199461760602999352617945640535293787416779620002211575332188325680268610650341512349661907472412224342067612936573498312008985679412960823043574200488546282255514256587803723417691570781406720990533490459453137277335877469622292289324657012646381416136729617842109409396967731609613638642947560143174047840399802376284005224644844798464153541759431030663508638274099359687396550030898449240019953578352082472029621376349519990215690235045241870968750424205199356390062646502129984868624545356858322113454297683445660343458278929159574187096839029196859832138936791933306828059539277263302934904854280443956403921947053155484220473459689333285217490051912291170916585802072255732865615243413013045737178275502772898678020062582926390527212287222573757613820811177872691552236014826665109015467137038622353369878734796055251231595814717522641423315815684964831756951112047417010422876302083792900315722481444191327252153758846967598049660414887130915749914375235128414414252814447974361834349662618551648945886150035368637538149450793040614888803279691055886841266117278405867056951071932089136144963957464601526623645496628622622842404827609622352882038482704945908814287216821098464871017455801084198850918585716133952152026455316931138854864075858360803563819103148546896497884013841817970623936877910543973779984678248245030164420971906052647825735683202796073918687220044951839297626817007396294518898495427728575191388710133219193505979635029969217461466931510318331392555144947212255450355095102008510234432024790897948531694270707861585599872126274331571758421162001812136987210426756753058373714342525077145471469229485436068447823261367990915421479971428120791881610209748294438313698126433831409982673091467605565293167287782950596915463489738873386215377274606141504041152132463859388885025493972695044095568095782189821047894597662949368783219697032365639770520828656317757469348321253471524492475652154741697800692370147885471739085661316780930138002662524924218302655313161841600085066046820496482609227459362459658185299820184266842782381510769771614959269932370691948666720621308804745259185796986192640400238906918572812919707459523626956027361427525939674635859992279990359868408176151292275955723334015675395909147696641581988600653309641155092448684371646141273924053671717213270403274034459561415871497970290042206784606202344429719453554851099585707314188452231398184391618150552676157942476058406937035020243257273737855679105991495887902904945538751325256403493161337445379535624030789977455891311248508344269741623198614046949020240264548118012905934325498050825887748014007484211472387532779373725608593138498814357842879140565179069472005529776753836754311811537505016070607235429283960066927396292256859483734495573041783420973078842957544400399240681740611673151014367041659349615849783638031975942640556886500652981955911600289264381564491999289312096757649607471010070560134189358042770954372291251195701777680658738596577176274828423752164757404440148345352153131354923408443777058877655478841496012927574405514516491793603591178439153523266430624182563114699143807012593119879048292316689058364301487035674711250377472590712264309028680595670708290760633505881078368924324415054873356129914843249148027529199922185871036288085240262000190672210105030792893129036923142404505158774642138537209756734167795110709637962986265109914893622652088037987123928925322080279279876600574273945665831972404920193841209081169566149982173500006643719224407533949523738697482575097147247495830080763598082550337321248710107863393893682668196944378670605049986613189418072642821475132538478227132399588077416129798882134591479959165234077382898162941751983560664964906717635880980745972473520312116623565643175974167013022094457545854756097092536880991898140423880856290858972910284557094820563871971455130709887350297073832063823894444631188967972495256012494788718263919267725731097780119295657336389896992178214612517094462932583107484106150219099747932430900393529981636869133552450595236181541522231808829730616674540205126690267409442656266789379675843049294630657706366388212075608374663851171160425608142845156776466840342290737439546190160405873505698124120429772528706540317516264521705486919821132627214442759353706928353118701055481099850113486063336191018448282614313125551863181717378935217543839566168106532380383469510310529470003540841519561608448391620047030820742953399791373267906943944891138293814527468868797353627863914057195697991373581360609877703345126606052601829026825865608854263006727436963931217133532444692415378999691596219399224159426516235253232279888861141451369855173224541629493486015502736691341423626383783811300312570458562278315923982750039954589103104819413112043142327946254993211780295741293359839229387966327571893175018786339910126182421268034142538882505308334590153395825009960457780172100829898202681218545163102793902565306720081167451020294630163692312976781745102896009310183712664030619000681939182145396151397941181952432482231866010930328953082439444771368125726154152159653672535393513510279238975857962702626473163689567987898319127188970683181845859072313692878612733987630707000143972841578093569365204756826376073936609667981410113210642463129874392282136799772625535940081915184909529290806834300910827339993481029030590431716586356587196878976408667848344441620888359426442427299723444149165674210609806457313621118155260016017942686784585169606381677286032808255437057867953426249616781500691261524562428788942194561867633888560321816891352020992953260497295920923055792591910854348108334363842899525145316642185939429853757946256541891639793986636858941798625462592002807733420311726484732589010779503444674760080099207002856832798982763175042197947484449749107287008610622536194779909661406743376716791486980000234611048361591791846077125262693350898364320427964487963043945054476118113990830287807284918076757976467105684666080602441899719658999544382859660151801477824464130032675156077396793875652854028811922672921572218859375725712984162411769600341523523250013490642766790414301250656430503303638609615965087762245220584242654621455445494138965688705825223161150900503802285213440234492912514280410703132798687285997927574165814901786560176627642599619611311704671114506750142486277945611931645850789327060251062316888102747803335976887641484864202891200660922783288752256232276417300700956115405651759399590056904340895036245500658791918462833526011495605031766614038444207574513873432590893998659833627212504459254176412158617358463222275630635631507625230171580928774483736554447163470476520291920565337214822930962294424150196909639542997192346319277018507070008835185158130849736956500847338033466587220277660667896213025253290491616364083071387865490706716621461989408978425032810585569502876159655267172869288398707732006244495441637726854506161726467446456821816819269027196789657260174439001356761194479789762680468959340122186405618718810742405224214157199372040767721954615000684766166710673660042706978132977186809442955952563918714438981859341832271413570234888388933410573348061690145722472938446423073713138587905989877163602395897945424044290688303449524733415978383249717565711601989410636108275529980707670503419756942159354555655102730946827762911024833903008449055943076521451716160338132382095841428791393357581256084078140276969164236330208778810603789925451735132444916458135854299101644849746553093776659115307390275267289840138696491949283596186079902106830000013169130966125079866831120117588540839253179707633207184209324763305398635896994265224954294418735765728211826309148699260222667979853615660617413868487570609982661170998889621212682538946492405487862271694557989386302517905957044635756700474513688985042148645778930317395884875554886356153239842627867741422066184738692157724958753801815885138056389824539111777217554730207753214905963936451034016868900852571467591329150832996158165305186620204395979281442725511070207511647203988050739135640644665285648686624364309945057519301668763129261227880278708047253959823124457963373893734754095648905079691881519680103021747066168257363546985393146062984274061447902384676941044902981017354805453833635932497328360517470213760446636259412962091074184308311202482174428222774561092134553319842733762092840927385558520544411746891668922929230200839389691932114227736043947083234400074099485653068367067047715177166637716949626449051473375919896132116796494174614977139437289392687475283508296338976182225000976146528611138125888174991155068306834102049149807080018872862869970342877757961875638504185923685877374563855497321692721288201996938162095860899238048949855684831980024084799963587639884911085891027241089768960304918645670822811677469290207804343492891878172403881075078588852316684061562677911725259390649531756076031888187526271411260069080816310288858891459241749480237293779479601289139310775508257507602720507973969285364808398499835678436686405915157995941098599765795309115982444818200684070231777992833111126035148950270102107269790678224272757811903069627753119245534022681744551408505406143399950013457232028591205966846825462462389554546031814373577199273413259635428755441409061655421075800973474901710517446139069535262740377528325899767562273407935815035217032994459865649182618158078366775433477386963153110762795834991119245774820606195305345957643787433321670945604595403004905965491761532668303415047332224228940523607906657821620164171453177621273705970980640632170886930568377912922670885827371256240942086797760224064245434292762225172721221503097634940829022287910430548306490473903565416567770122958374443516645649671799364927011081871473784456865778374281485817257028159925744059564712754660228504140935513797811352437552513030236797564216201256891227559075667048791736545436238203284204204318387077839755542633696802780844788396858013273305273996672741746873579353160996388268489334637658412339392936939281529592722055679465848513051015849494675233021067047249564163626942765339482192944930207692343265361433083679987997963408543838290794968468364684573748611428528524715786715508962523941158406623089986308056194328217872084800510240713505336936585913734762488013360479498840570045933028593796444194450214864181457085091418123574910902118872264095852756101354734111372010586000005488269493799111545316987240793523803837292735883026076126286238389183219392651278797466937993469059598938303893587533273355387573435848857655840879125637460472545533105298072221608637531026736352883747656396500707101870548564217744311724507436437360121731017594269872949105604504886917374656677247792555359963881816494256565355593607208648949767985536743515597706342839497554037265713570415018550022424085140845248811110220186170827167651793687336549837038585600820902908398140912689908146413140511207615435882174086854517178457712911256699762911347933555954532091114366430377337365345892061401004818189461723406890257933618623975388029903440686476118627147015214835893302056902212710911314191070422725058286110567425934570123554228520385193773764631205984829473561589173434197153564757489184850649967246791056564307802404089442391180384819960474961982990908653457588165834193884994358639577250411139860860538394787134960312949694548290215822230621493492039430674160640023227033732451829794785478869633535241045941704680295774587488293123686333816565959639364052565392706459438981679327640487632168348635286767137162738432523312183728620425608838419495644612837815906424774875918821744970252114787420705118706121405215301800666910653270016106494279381428239754647065525740791894991865627087417259923066830253464314463920531179181194162895309982091500669762605936330129625751549506238094730486025824952421283999199502989993496246656367151009417366930619755345498989141972640441753586053305335889180215716028866603142175055422729421953413886975149439972549971668911472285577870979804066167564008019002191835502836485373536295219170115172738956377740131411598739320371560974661213484085133316136132510919703931041979096056604081407499307763025919114961030370835853968484106173026564597604699518362426751180960186163310737134066092935921444411661137088716540635720822413893467614705180995755276652468334504380367130284664541894345984929781427108511265402313281055783796988774131418558480567509131147109500840167945695419559357448824252452743769038381406674838654473927719296441487778992780263517720152553282561987160228262933854446294147612300131267468005166535713532102903349754053578328156409533018455467644792997989508467729909273581561762963600960555105762728713806827188315413490396561530124497329268556945993768962314550422721551149618625496426267893053007878812899015564756708164135625470464081970004125274178332042980512869733952689455206506094387423422155212680569875932255479553796043593382115954125165630282249240781225747803664400432599416395293100015907962659139804615427987023732861083285709669328915282720187777301916904337697461573273177757360341617830504288484233595746538520879444411142090013164950670597565789770405504119423712907516110280773117787025696401568422488731404504669772412492872576890883250769387105443727380059586660004991812044453431885705615562581071831535229206931209901877523214432521486704700638570790809196788072169512727078330621524222424175328322971213764291457919984509691798224411219201892046826811660305822274979762311164218659560221481006221214878983774732159008824580304309215060586434235714625593374822261723456447062663798850427104766986572053054203404792423410921660181746761751575602958609558799289543443223661927357217277580865126329069013592568844398889284614817847076902192875389400276177144349664515529176167207587222677358580614496477789590147323581673084742735486781932190549518514996567763781176340708592303658224823852990450618399449877653626607702499982962177517104979101521115566598920710145392795839524183325395680206026171305552296553840338570067523656991171992422169294997835473418422143673573177427648904071370276349298998295637202673186230226625699551061636925112424256397852962747237309536003609133027406283908003647221999137078848405273601003535109731676899680640645745722084939272414066788819513265671732304335037907353749672748602067000744518115995934912553932802474340880290496849821851816316090658440525161489085366567225809725739006685703060020489161492427441265229879370603065116464294709676603841762134774301107287500797543611324908246990007638494026862272877159901825853628961484403246334161448763515274271579418986491551522211776133016035184632621924529344893290626515254864531870005560164470260901965086928931417019753690649144663767068600813698647964332804253883253520510600204688826738727853219417331586961453149623472120946090483727412827788841290973172216611353932067368029424117384829342726225600265087230737490985404382589734931219240927431445749413823856209833529308230330016088404739349461770000252246916080494034265349752731639528448551180176406737133059070866675469705789126583369900699077362627997474903963505898599400709515370332327665674367978795004514257782193434401551676238910320008342547447458738146325173303909440103281545287149841964281365930949780110523847365906250495799707986132500862067650189944465577189885730246626575372256105008402326361811619365843619863423769786083014801158747047075835918384357325058819229679548447902073090182559862578312844328393624079858013995816691996935274137824684814978563002728076493512406026408944113887804138832335829664390742415177399773424413759418615408118006934097687934515205888466873587011020163457981805144097510161199276521354941450289976348994249792094763576120590204132677599206188012960971504067227405290328762791988385869397229431890834467061942703090390090653267322562315038629712490686885001508063488750163641838210960168702742634345226807260947054547097769911048528255868369822551362721678785368330208404911620451420858794783186147279517902188122963433668965616405214284275392353564171066505244614363603536251797511654417289546135199960969907298797925128115942455260208526113242592710577687750200623355786496718387967345490824830601442290953521128507514981683448082305871659966173964424823721282457820210382881478381672720787022645859579147556502614931217332845166918273931183115828662239760268352299927048372909984520697992817974696857776990390856931823556829059296274386667437703614455574569410233529589555244147990334037035827985733069949829696538410028937203789348929677488504344051152886568456047158457484424719215921027341550850284969038469213397895509720801417592884607996952246521960691195954102864883725468490519154119213742576523962064644616912387929947073877038399714114935075001522582799608033767677612832120381157714574878548085245901956283176643375560994151170795086589408424714181281745421711951599890647901996767804213113917361392807370860908913189183707495442728629389349762155509337120118249685482762354660538915141281570553925761856913872949372370256617165205863679322957317933129074515628857802349555928798795742683520269982885990869642285193827359925199112880319657594254661126243428251652168677569138461306151769281604392343352151732954239129316274142855329762254175922878739927810301469900942062372276528340806544783492297403061500180063572788241062936643169249183899392255610890871444062430274336796650301149650426564948842783012499568720008088139171531648394148253392569108915772989336103642769812652397991157628912329688933487780494422115701414236796452298951799499451125034492822610770413926697501997016981621202006697778943457327526144538013862934825648851283173879182218004662146049209076363940975887386159538362368062161436446823406237792713927466402417426764089604084357949581280804230401392967204991422548825359082329055062730806302704649388144096649576609181870492661254405499240034739450616243054023780219140779932115160702915191659597263546444357426311613569264365510261112204459772643369174873663315886377475369599327542715831516545477231938911377836449596327463054338768643825177488426867317427539030917001478854798067631699691431118705007145579631386918138563852869569694301655348763527364395424844080320765522274779033856240758307848280444335808677497065180675502283581983990032886903439165696351092999800640021887969035328807540285436421969573684241159985482275579654021514986174810643826317180132441096235857263303754667240289878039286100836317604544967234572872462609257071880400278877050025521493933372937606344264649932420647900903182253299831075886739460958765368776721765812691955911776694658804111208512278928339582092524809824398973823139350013800192377945707077273939338222573815548841808355109499393381461580115960861343429785166067931916845565581808338417280414580473904494018327590398915016833759304690373002617081349097041749621740769543111497734144693637674546664762535484072351562658961185960914396630759971428407602856717887276694945971121440524376641408859137507979070954721090472775826704750779078516578486712849998820002708823694963204301175203502701775627503200516108178083558552166088447128888579383191439452775908288490593296668520857889414440812124453825274003951247712454972740922391610682246902684776505228758651705148547796498729624583852513495708877666821559897299508345236291428312426606202401136776371473106670296554432047821910553062374755540202624381131450414415999313434182113760871231148852435501110222901281134035463818410819541788156632257147966837394929016617367695267177788503733197122266969413741479881529732479257095003106166130786168736769171462853355681223947328581526426319824881274115450784507536113846026215214578867140680807801640442385159720683984945722801644036033576458374663581387584390694271118052014884970917163010497757303847366530531142413454877642841800216821687028186187382377014209563692742092798391669174607737548404154409587497267396800127375530163927131837319327934622307283116148394323632970447648720493080438207742462969834393042293322889734439000294906143221390081434638708649532876100917532533008912443273847087376488822841279733019649768989369494006715284928753620588180213034438854468951876177571693803768118437902502645236199460075126253775983077116967698332755267365771161184801068997648458269095973491010582424859217219749827321361649053189589064937601570980535707331804932133075902687522440846654273574678599254315582725619798386908158844874059454672057558244292907909399726129355980072481051971131283746356511846439286976045118383632531747253267834318986145060852656549563210236125376867528571133058304962327531141224308613955062339365509098931582559969349874950545792443768924275020141388023271725202931627344048151085509825894284390557585595937147659297008076940095777665581974922901207012515187615551597151785236518736556477431268206742465103624379584169647810668362660645063002816632497705307872964695530686521470582528069514307081816255652556274989471716867408076698685663189825771512637364149334718903273169943334622256487725026049508438812377374902292033359608717128493689868173858748710090140959715039653815295319413476815956619678931837938593202589950260078304167173275645481434278684896158494268806184432679317406834571400707117278166558598859948536302831284098829549538849368170185564374016628414027963637476963137319955483527226049557376830620343366882326579308089218848634627891729753264332020149780052448689804233049067928825049790272040205838693593357432652113795998871260508652368304012438330352655411274987682308246384483091975197667492126015784461205781078282581374832880444522339322146727285012274350587499506188883603565545033522743448579753872514180710635448050314777119320649733085453929262183275370651521718819534653901506428773389640938766372633356102047452096163228581652608023431301462704351368536186608943947396825638044930418460528430178944176101262038541543619394952383683706787260762093578227600106056023708019776088663825398722362826729235709751774524528269451031467198377843303079273183150469114447815136097699084087640855353695172878187943635003703127119193951864170671576565401726319522220146333749356383119002603722135652706160127621438723343441586382580087428826193215833388138102181141543919503982410072901156667743075452476662847391232095935872316304353138224186819161822081716813291042082119367359191396836206070733643277134507807952054201753526341476615869012547328499989662245570950554166937937818139303517305754498939831969200309527679380470884647632920487702787332612708521217826036897297006479945504934429789122477516496140315677876028465149417937019403526287471811831904566894428641379466391091127196239209944873447058832727471241351677456109504742295704469643238262643207117803472023700204433116872891686137340565053394840786845010729738984149355546983131862605881898255335387402392994439771246547426492473031869439496497838207571670988603746873058268773843540651427109443136250609212906724358689145839165290852629440634941353343361122616294559682775495600485741019629041432182519791338940251231034293052429375419040619414046100955949551643675764764844863982790184797380024059082812617216129542534892822381453517020117587588658360985208870582035803165075343356051702592492662273170416203988065635732904140823162001616755020859709803282997074610728543180815293379950939432462933397603072353829839494256987392304025545660569154187557338695627261482790915415117809459053194345087804539677659094736460670225142040526972230991605690071041549926267947167558620301099796735796198415879296705111999135602773561634346419376717176907129512947007528149367118873400419955610599792268453365761406348635522969234891965527221411054113163460388189154452923146497307698131511603625886497241840695411612740239887488143381544243711597928697671344456794232396289620505460498769739548718055790954374603165160959336474926304226157295400568860283696158667364384173335967096166975410849628588107127104686668467815176208428777192053513834402179595917089417402667499539613632111091738032156957115228494894305418241626165276017126340403651749897289538061260629613022418834718235632356373598501066493038045695240424810403907709940977772100468401309300495423449515396718294943679755395957010940062279822311869591839605401222399325907911009868053312639933634836296987566450192208561884078539893860880009988575138579888297155993552799350122742385065636583938413108436077332021756066935283111911406468047853478798170586578278502396591810303212233370315726307269677084603256144072733615651896158633871656472078014793239343033005230722628804885499389327560407522059266391866300196677632160001380985225579828303662096560898791108309910332877043654652637236117047697469945869135939054353329630024327500809552491885877869813357097253937467871339442604856227040293584735248361733704193469176313903926195282569910383567940173216455251165352833868873171957505719563190500035331633946668028603289651274493718728946038420538333059018374679028741101242698368789098201506494289107341750588334665518846010806278968183948511528636713983201201958714664551269136101169494885558192001522766347355924849623887137001272361856471537663317722267109240014809914959611501754104488196102137563859307427826582932500598918649121651329340379200255677329566573887810687110362732843944309877002948191481820721479537924586702998733504333807072213949464360622948071799729164926577408460100468509574297767576680525818889760421578038144529330907603363557949780156443797924763400778907067549161530556230713511556984152284299474065105525125399512922432085742682974306739240285227057866151095808146683869326392417274662550793787857972909235087030198470594426944556295735826257625373529713318156608067478311786636225181562131825129903980949703217136347159725576391326314851901553130270591817450637971107235831111366939220156996452645868242684482946987648195491875867670821035646432298562497074003260791818138132050981858725321527207132645545710826552661251749265039719022556067138157002255631584782138472421275679725013494678319539664532226238467144961699933110108737340190534713306769252927088773048697587698987900371742727752612714025822870089323589747964362003437756218983233466715706072632629987067068763513086705679220641827334990533769167229353791948323649103055094316111149807225728452036944014941025161244229287345700834647915409505796029149601019209581214013380751695258805683884317318899414026350061642755631711759569079362044228376970775794162219928723617461363214070854754939164175430896117459291937549314856404207613210796431011614506270534597760975049154704983816088350544382546306335046154076066762973674869601310387112041075368838517265354818035908754470304670274348838379087953451238442609615582409414339841385382025810763010445870166975570550495870516267529422593705179131454142208989435757291803493042468394570547307811832521392686617698700800217036115961735857054529048003256030427176744098833467075444728181097179734814914706450453184865254390492848785673504489517950705510643222171663841095704766290672791404322883217515175932215580068147640144518050831671624148509876809712255089838818844172117249752706579361552631908674175048960577081578099959812844350624050932498030648371873567780187535386706758762170361988427152032476365425491140878304139882967954220561286767089399230115752653945935205221172590314880974473987127918350007713065129227944227463911037295336868718273507641660787248581074561889757133559614403978948108583809795484758654646470946093440574475402458628631821750692400064351846472507021197871636680340702243732923569300435414278914354463394095775811307776872810569237317355746243155727657884097020688692230255822480763077605308934256378836323111078393252689130500526407569134514848364649665177234727268435533331415761446019076735156423493808348218613959653722834354725271372575785344138699437178792501314162967504947666309178926996838426410647122016511875843294780937184666031837841967388412892725945665502068768832594975509155521085460253075003173074223357998120459756641818711335543370215204297008243656975499350263346613016544697804452157057058938326346624495733972206882831195898145932780680489970074097470870103657831209395950550480727801330698933040947895754236908737754480356048581821789632050907941010938704974278431050270751709959564271959619921073431412284924727650419936488257344750801201192613328201575028348316360895555732149712270046647151205154861396652140544771022381568670125872298132649503477243720932720666885213006104283202135622341808821544590858190133466601572935662419648018446753090637560509080246141611558821091036723867108656594017354924456769583357204086494700473532225527554996688192322162439590760474913005700066984172646343325411538321000080562014516173548430964647663093906769704455519106474871921672778176137416240730978801272530529613380266615012533277750402586886662791401018162474736135069454124632171451135487736846965118670972094090878396414085841246110319632186869752635320848733443426343764351190113474395369368092069496190729167555147156074363718641378676118059232815134184729950225283872946732470406115465745393202315507486146359471799462890741766528115891978228885490048924113669221105181714608860189962501159448932132712850369825104301619659814865015871088538237438605897499058657470004278401574490740472660944969298565988906663425473464017585310664353800075764088271422191263966115836996931632412341608004710755789039333658012151912360344723078598617495403595798233183328468201299847583399638012332599816767693801353567516901443281256805812028242153299356177573474313554428682519046208657180961142399984003258896778341702264544693120423780050755024065089046033900336905370717437977931918252337676949493385576664618541022039241362692318721746142815920550071058038605850399211295531640190388845311616320740482419613580177058441838725788153900672209432229539002155228897912323425960362441491301242124965153017946266160037687894267311939185221008250031066906954222641527300998455851337096947971005085248529880934507668264149820332171714467309466723482213124537043397288361176147131214519323958519640391667375354109444923704865041473261430255334553305633981694498683553346726483399130145239728068772844220220340382194081378979053933015137232766533433076455780322737282687362952903460832926777368337070751757080358898686343425572773979101292648266380885728907083694130689493232236252379159853578946012583765106680723956696947238587641650821347329125556553370921588373882763585521898948019613514563107568395506799918220802901077699344223401261515812543438128449662839052628832894256316677324667547839935484873908147195844693327508710150006985384224474696205278372180714289375847082380094175253966874607752279023999948114672773691242716005674384662620540735351499029921278528663628029904556904974294223469988451246155944497040919192913950371177609809929677171950105159544409806848802258723392807719890901732929545238956091522103668786436832310285098654330164730352226971700537511313512343368533193943898830251067827385493080119065652693147257856587545832746207117873909588587652099863263741276662747780427072762912689240890923354871898318251283961084727468969404689115890601757758713873105753450793841211947377222095423503558271801706776358866966063114392959221240838208517752499400010560760053199171203500875469911626037140836251312061123485984532703618656537799945518047465532226733831639940112190690995960124659341337592185843370596286992928029004418599268776330640036553325363107572516673539811349319602910899245230215012688855443849148565499248433671453434458374542664845063526100744815711598585214922726639092392174498446174986811439517925526598000288860674871183223677542715654176896028269703489594791630625304513459996809513235665017526988165524433605348459610197901517612927224762214485605927589326728744999234683715243636193733810575032652220173777557652334906969345560700098669603480946781985465586088810559944056635843741198875694741926637225530423946291249281693590302790960250058036692349857426344957137111208347886436785933109922452239258930084501316271184792999020409623714215263126712508975114803495201616281631982023761495984232927565632451822253404864776764245235731123111590461304090019855935860904523441869936706947047161801149538514824425661034528988145351742685684267349946000961619607464668188026686885908796004592275622194872635802772624151102618844915265865320384404075261258083049366131081937876403025461216673643599331329376005431904595591301916581687226195587178303792975674491277089486689747486917834284982339302405574169535140059119301482862519063313181767623823247805331149679955044590699604449439538671400152915380394844715926340128118171609500222006638036357112760684739325767419763017065734486487391676573209820418993916322968665704043689999201235020448223663162024009597628995540953401947515204854022919655818415776157178604356727661377935467909738873576358221208417704520040642248999981983962745085804117108381651884471217902418825024651012971934150999003222654187307042050338007484724618390963292555680418171970335170593279585380154850721204783125522923849567198294974557366001890454748461151701459302884864189249023787331922552064078177824941074049751264120930209390876936486306067105997363076517918438609861000507004614425512210130840451316508976161283594382869339818744467650338541488125505126115017293252508089428765380235082918609199724124079053765456156898682226273630379717291790828700770431151233026390882061177002489726064658131683625409981486221232191828658790226023786858287276238054155697905103447236064922032882271900493545996149435055404374927761687626839731099823654385838375733703072816669961836304252344838142964570737239968274600252619521393540343217567079288792496598197745013249232726221028084093063965367657929137999643551848597904281082544988924536213584961581515383327834217432233708020766300673603035193235455519898350537468117502918367851488046578945051234482785694276638639880113696622857634189941683366041688089984644739268055249804623709583092373703307895310595494743244194288761190641797162643891559807701444773322917995826508731659549271074475422799903468453356491282453278171475723986056436638341064397459821787858996871776318696430903431443746024347578073140538379797487618828603937049829079251229849307482561615006843403358037951611195485618718911651307284671648865844076398213841842757717087713164924930806033722872800240979071314688147236505871364882692087457835729497059503425280602149127358582869965461602970168916261233388456703188027746178691162038556011338354705160113254771682707657167100142582900068277843895108440649100329971365538823531986510738010013091117564108163974351782476769340073987661436530354664058305337158404986590255592684863319266715095245921184140186541386129879692263155914912810719367382203154493956705680391384614179064485375159012627214581921076598884928267902611755203515946356693375067218121087665701424869994382908267950701789723860107508115910509932181019567989679744273545348192762883863168128180066738647868000348840844778624983543427884164636946197785965291051690091744317123283054929118079689268648583685496226708240387274387224757075941154151681272089048264950951045461860041467550131821101416993867507522988096293853017692143697261266282376503424514291732058378668579321625771251962231420238511158257372908193511271956907186961918047854362826782394001126668380475842252707847688597257201474276595860162887540660765185095475029124549181753778371748970809838807252127526295750234076961917599103107160714847891616235895622116634081773457386584815857132763282805961061085314106677481113571702221862711761197067359583826752916327679358609081195705467492556759520645136581048200566687171869735450015048533997054388040916296571609223887456403011399575304207094456717992798415606864063068942076182388125766734998336081508562865595590563310825205990175874899511932031331842767652839629659731841196004106381861761447599988807069381210809665961733028122900802748428322360661685071334458826873232465372681540840759933581146514685013905086570421134545463243987676410797247029002242804200329813926630484742285915588387224172719706207510366558377787012986385840672952083391111171866044766815623523815668966446300634018166282316676003093322119175427602683335927833952350238105958393534840459172599831223891295233743074101286198589680167718896310414354170005062630333877770306130628422437727844539415480952560576735431293498548843123543826276174220628566842442746349455571259665382641887553085263068270020552711362719226254241338897519931929182458970064239127932962967554974454535026155223705104929692483640961831069543042769557995437740186083688888536502557380061488455984709928334515277145860788400992156098583050918994106903277005372897390019177745285188980608654403534948654089627867140159066037494223157448624032910462247806775317293182466596359341923499505789129008235914815415958621768171231055199255920486106949914168507214935395429729972973149859380872541287327602190806331687367214858251225388510073936153796042822362973356383324729585001652789527839400238742033611253910128601094759702858794975800290925683634391739648430423821875584312573132063151264914741675009041176475813096694546188482042483129283055401908161551193233531731308604464938301174106713024204430305858881051484100732253532824161930597256137366214923627722212698097252781312515366155408449107985053494238237897317157892214737193762479685731672705411714456755745248199701552601295294686644494399432816923876516700957047801156654313534905282897317653821445255815395818057325216128248106721601339928603864670352890006122967185018742798086468567321378441278711160073466540477756876329947464245874950929738362682922196779934142059814855911790813721037310026147729960632410291359794461313244090700843713995484048120808428324521880878962328408892968782483715836500143326308651224855690948086080187288860040492013328801257951483498775284354434308291161685978170880045905009353902728590042229661011395764753138682241265199778025431115542605615119548338728211873455474531056014832831343208597531663502116529917016683669341334896722567370185759324086091030373340951083211591300646527869109344456503908282970295104426474736056969950576221163743344272968289998320337470170781829745550268358921374463390163255993132552391510087717554254072416106332606049171048209162289825185710449156276164359178728145589309160394280638520467462320360194037813468212508720631864674214917825208190159899477651446757117948567114705080964488661054840755597560686322578427765188326182122504982068712370978575632118075794365756103526727943150380961037881333904274157817537209056984352802699024279869528963552941999193873352473436764711580881231219214386532331544017142304123725288417192751457561272678866119481913353088526841312409441061635284445087422859350422194607467310815831203039036292328167037803578166179229514326609792007259954523680515323703763333610632188003136666737012550128634340317280083978126671739536727583488415873885907772413202127309917795818646568633487874371931767516479670537924626685047062435432307089354055311403969776014094116933036793644194363684423488442804066316681654994092540967230996574677737480898111193292395768717573454542490699111105198613668484758400415074814064653899588606846371696497864308881049360727596033852597424189928365525388852864121722317343916472718408760614690644021477939667846477209071208126107071612538904532747256496631228863103933761108619484203745578109519224028918125535540872663391952544372897667547609779875795259441581582126671246779685674458948911827204204600640148482990993486108435009771176328995908689070341020423704487484748864212298471446731879967242256925085209958420144381082462533650875898611721774173282163384220249783005271657943316418863247684552706284847345671319874039629509226263935681292054877177046807339995676098221503415868453287684618354358214041872984321350752684625934970489207779602459927336133469632678062609944312883594557650726257480187296885476247851790575798932417526818705226993429931186942495898408046328437962061372676679004655902296282287500790879805469819015935525391613173877430569617450107953460072682323231484061657709046658922380459721927178034629006984002718153919537790451919452850047012162492641408963352707969232061917578037411235713883233949121608825993384451667076171086672825882412217864895442714900851471150257296986510739600191026197885789443702857580953140464004735839029572542807800103198071603176174503086102619176910371705196510452876779827530680401456116051778628479529295701423309773073608321565521163077921783809171440877012110593353267564696964823142696838633994020584239047533429776704850126894392861908045268070032632748706750053237966434387388007853779927147121288934139163673213943652200820947963638527881397665704302863482751699705285970049561943211656193488421422192566223153281109736980731145519810630424239053117437443590779954308832146768383663747325791772563005134693848588326063058841671780538918087534276394600211273470181278987360172159095606500756173729670710550840729379449970681066018892252233904062291445532170090114863566810561384196154086904611369361286582760000446114149940651012943654605382159778709399463882778321577439811668998483494235063627583314329144330223719214857839114422272270420704698184126389892755171272676774489101569278080782868948914144055140901550895476672773386146351613172683732308093918917047646484353186756949792703794317853525870255826019839515748116709598056738529236635904254513671646127539044481613223427504991393082680078764729777288504464205402569761373210117508989786550363850472877289593573628328047203145493949958842540346665667355048500138344105922147437897018272628723195584593055628937767784147010392942112075665062554792783382673622589981216932913861928056300159988744885835637601528652646109302138320729321000621820279756343889326196846849219213908503711345545721942157466366469074739525697393583750795875690790615968456720175777051055192903383908161001130847288558754138029191303370714089973604736213473188300371000946268032568384909836897330543172437666266184594911914865770105418588643593911848516885723662862289394920824728593716025672148237932450753662098634504691030910845369455231789277586956811916837039335378515162965043028936000091741878473125430308472795399258062561423962692603663399135794073047156703288915525695510139382172666880931607360308813781344087314319551611700091274703848715429490310676810499827299321280167836776563029681459494192195317639729499086350210552937867635512645581992420675185306863925760127455169101948823606180389027178374629412988875232692894719493876275690061686378680008297313475801187708103405383613421338619094909156561975201441416767475509077130464254758028665001089458068506785202474739905810962037090070295385651103845359057513713685703808073844795292738616958293308077504945754536967886419182372290928917749146226870029148545035309564969175688854461500155517886370460474516455646699241473396507250565920916172422456849099669914157766463992323217985288751571228792623081304823026206861490125726337554331623052983378258812061909436890593465682724783584982201546969454455512536907184693607867761855857959498466988891364819158288200810717174283105563261270704333398848873015663620667208899978393610017454004225870524077559213615911885142756000921925356125843343076156154621459239266073046173386839742355948178549389438111137855906578695641644890182796321869163640396870855247480214945505769399445773782458352665348662474285474601221700125109177691039342099177878441871720387485026456545181669166534042271916609398925397497970664537658593202659211374064153989676826211980834852110759800010223490461298592849945027259176599067834974274061248691534539980518248736410602163940586741716871706450927141364218834245603566554785943660582574114028386778234977913901777887031810688483446123438038966238237709678871806614876501515031278149338032089765641828230774365579962400899384311357802541591271184429204037457698942731872336630973118757482430456519043504168010066279479116447460485525021409956456509216475763304241073259149071768800298299406239965436156706167913000662321871903478765898800070853882644121455810535487829649504579748207853986564306035587964246347435326619780144906835069320062784243551789425000735113750263416795466666326287258630386376067538490934686887012886434347186248254273820269586434201192174420144731726491975995759633928089917064378000481257989303629970717087985779163471603106713250937563955921559320018523027550270676070324530533728373021708497631278331033027511821094826174888850992465926012160338943632381363150532776417719157108400006523959644724793945889012771674735752798085411410850343748496022858547145062285349822380435716547227914032958395832349643926904424454551553038139981667909307259704499693167328649959248790482462208673375940656259348433034073091096609607784753277350032804908098127017434175474598886645393306513988073355755669371275656680568955588139323002141465218381799428613129947979999450332089143497760510818735025349908151094285529862269031128647514970485163412928218259282075505901227399712785736767073697689446720372581968020191840077338230915674563651372204594907859951656422919944711994277161049386739971127620281400193600519502271120542015333331513661471068807491830801785188335528376149535004717992977951169223525467430480567381265622401902125470226852136739568392187307659463315289617935772647793110041624805169234033625225234199816582310300926750228036584978339709357857252014187802877321077873876792057660063381819480789099727875634114353959989623971664722327785061749852031727367412716628586136733574613096087713774953287164635924768607658328214994197393917705747900803824696620599543591144921233500926603112289317486885277134898211589616118465260844168836712939562823060605678043283308176320752349049498054506482487174642292530085105646109591416410453766056749294457069015806635336757214900540170984664574811413917670420650541420784692398856698062160895760279506320685897698118595429238163764026115681858852983648477522032598493930772735441000822182597239714358862098559188627711677315846579706109963742757401719544298340105097112531764778232284171059822165400391429945500255863231908455523470745367109190606267079528059098598790078464815372372878072792325085235901494960329142671730050110549429856011015629898463639240433923080862500387237611860040430698712119671685634002466158409467748724942169581234266407878135015804754571028599588879135288468353117096390959551502129526799964700562655638112510125110482833076151523988501342640886473306811846950684096627936563406807179561071961184668099325541044490878498760850312149589660511920918806511165554170376682406507292861337071208661808827638328734952494884191496389769001186277389312309615595851380995119642456329747275593345058179202784197700397278631565108455954433261123934437635164129697695151215917380124807308430410247298187792032996629917021758197325186855953141958555109465145865705943751446843730287763203116152983325747141084608163352062983178831606842857577339060520335823155809583178717922713946901520133196689551734725527203971262805903292816366772284554319881650440244736342423478540687057886132288869578880318970879809400463446689958347334046367367440000101417560175652327087496427419098406679236615107443076739162130382943567434128377145172954423646492599899500825040730848345969449542147476076146803720875531286327906125805923777811528344023906834523937621743587175454873486711433874605832101651258287386286179322810007389133940309246837785441474752079309188955367631470459185238954830695755683859250058485781543466529014364877421309002939120638455886896501020319732892899839380928340620840877831875909295733792853042425212618618095403605792796849945768810139993139291470464626832913621043823264206697666411961464071722265554615155038541841929734106755582251168616915085218184424916908560487881389593984696547042095457256565488995885113505830056935167575881335222736775014927661239127892171503732717232435993701229748581445599266899246590384736699896239187815806263438204032617620868846580584120735924716121282540854381321254647564281785064980394791777450224698444691211853674928672088827041803345800386855033595166573328183553509394118480249448379548526554959538686696896959171541302933560707229775630831551336744193975820088966795460161053485471106480763509484907571766360895077643677081027189626878360809654698267005884313424462165253388423653063007367456393112912181487972766143331254592636195776112884486628280382819721113574840360186610176811508417040193306651419088597260660031388800659143234419137041770302342415977926114753980200269169964158244690436110417140252840125913391950974411098075614447729467176999615856678392596422704993611709050274029526379411266627882980201739811428353713967155885937670503088024321975175875133565533746338863651184227106267183991446652787697670933203888271284680509888449055503721424990937414636919412932120622894104612954315657059233654572232019259050557757994362417956154517553296647726847930543884532268400528856192255278803487047652653495708178173894686014409378279469709768613262227987260771909313692957309398633977363031358986505297156461497269430441111812118365910766166514089104212920431798668830605405871834702375180803101248585955587080866760135837771866794059564902177790213604177715366186855521638714485568745082800567764175993742172331503717174815365589015531118212677811923137658015582766757552017601062681554193314651057343184791263957418149465698799130135805110733060380779066400001113100765145357756350990828028967888117505495340790213523817998475673207169795241958215124548401651807484621552476115533228614214190383687538567265508016460217542839366801901665718445369145480241763480830070967021426781000296856012628548518959885406763467789832656545533240374900884945446708759605327323801785816697449475801610793207109285402787607626337165695652192874535053838781829239060124528363272936744688094741628119919750831349582578308384274547720279137534383032258017903619448588261871096577735115247040621987115145453604116730741853305988151924802193393546937155200436192178116841159079397140170034264115668931139153315279868656349427542428668553443050685893708639708880557057891674548923634035155748942032749274959727116361821607775326776245370938509558485063569452540072354127767869940605159882841841160549106383905761207831115379247473964721504616494993274646294634935089017824623698286869862904277893600561407487051694986599216344121410439029058284995765051334351962656907870260571823945373536696846914882673940813767835105554995234617903229363002356640105962282718440202343108043053619808418832768841363311881123047957789573775960285961460732612120614251986020142660742198005835427630206990021655570786274947597797876355944840385782945731736903144093883847322335629292023663243470586359584785284137550392575822124107376855523005394593299244261445052400222167290218775934863847715682803615201542126499263337070850964697779007371154964067425739782933455465649393252511310531308647391288301145998411316496421984621330709848473247895423189584896270607573385445060906330434408642522868085269217411452056267033345395454094038652892257901098917443524309019378378236221596589551132580669271177066023820010181124892430852644803282201459949851937648700519643680150990341369693839649964453226405397469459174982273110147645908069100387996176870239246248304042814692920460520559344733537476425658035577314786282049344665260735202020366300772381201583457612305873959173340661653493658520171408041531543316106189544732621909733332105701460751305427507101922158702715563561364027676796014112776962322811053270947377687727755470502020723114301061739584665427732488632135259077130304931471192131752905018669309360040779348230945153344853153872001007176237906424650595900324007319568263302823159805443043640184004636264275766119416404699956324802554337552911847779746332288256678961412661738188967475982642605244489966286219539203530549124721014401995531110655909556457916306909177969135260598753195051424251143612826831550469067602292648925767988798289308116586292309943722706955003753895183169404922048594179075573151363417573571497029150823955234265410768115268853925745453082929913372265983610022324293671379501120584536690982239541266060893260562924072754753716860468138613295982228144925866828365522950737560384222028532737432202965273175303551471658038087138948904149465510398002565390032041000831518896172600197169015101938245897202094310067607683930259862435435529384622389450623019360690372057927377111818738021665310979518075572236798103492005174184624160114583839541227593840416060557491352427807787038132918062131516341694451543373291209035636290774492846725866560338311427732649277871474687793139522421256300166140324237054895640301431731747888596560124493953016924540006476065397333980104911772078366917987600121632659689604896393582807275473571086579485703308392898303495800845700828395357652229506944537309093895201104220495026326362817605002851901804727157692831262029711861289727232979151077044298988349852679952268006399628640493216914580961461094364464083278425592608180243260203602154049049308466161957401051228770197966962972700483668753945121601638767504933937967799693366169276468218214355735209338297047408514704575360153019438809714171977409590271277959489201106032839865256749299323080549574615729496631314074665750045755259638576383774077979246363933211433159624543612329862805738418010726145377451391114498430138949191308248425638960757786865779982542047207213323765801725417670772349031107408708844169340104778107791502995974937250813098512525687515055148212631488514397418931475046779201064878440483514634879126751460415679989665968040173058239735338180598614519200507508321100376743702839896076957887063021194206730310521277240999351530575373368339952186372564782428124531955030513306659174244581432818582815329852467665759612630180129348647837110895960658619458738497984696558162064578670082415246180707182016459133482510024100175310658373756892077824397897862894876155652471061063364534536529518698480205865722446910234386224763040249493771005794679720260101436017196671634515962523114888144539817370648049054729821932259652636163849479342341321448038159953214862464752774955376787401416752958570268477480114951698573051950142693899453057791291185692813128726213338289711596514336638613899207778741790935154566115570407833205762727014246759484763324233573481199922280799936138541000736351410932926488989332732492331565508288094788479807990782666074520929897746127526167657777334564049256511536212709784927624330821239154303594658708909322791117090097917354041597186861771485666436446699376019435032712017598123726995903852376066838928300806152545215965334417937081872744414863094059161800842496368173901227599877080557809948294660016642798731003121298834265600444542190512996476841334809446801672276413469052620137007225620242409533035322990979357376825486094744401851716158306240636022315506088786837067515904650275731332736435182012317762850488781362535193047243104160266398647528465032202870759454844343027465287865926187876921624351295153533414684523223354655668227460645171417026593955791389881353626632389250788846833275757672756731824887432461946705887623358633994795867204171889355125154839022435794460742153177094066651464921178333317644453749693604910263473466354969415898354468474985183347590914033337820354004091026651983654803556056992052178989436277473523255855224799265114881047068301733729486112989006060980528508050227511837589566596129152955094266752081835867301750581766778419754611375310309472717021754828890768987010193243313076986652869445994225951750692158156500965774297489842539826573298115594392984180850351569368460136034462296406384763427067886783754039563411333005036654662242924349539893023913197289198507760105190725586311900801593992897683661444589995730766895703842441477996089223847726379433973394229081068509478210855750086008473540227262805623288234576845800101596110520639211265362872039337518981504672881862976944378379881317259757047649328832778654396865879708102091522729100769229730324954285720932079495200789551099876704231754094757730762400949994454802476276692432246968557770809387994986669365733811870412215334221014288689255314379616996531951871521706494810831300883811324028254862372419808203317812375190527147435181717953592161255687961654484768479861836647672411307677693702327316429217062983206774510762232133972027964087795961665383939628647745944829635568276991454998927401939323710721759209466347405796515350042290251489288111111313550186220863004745201505315757341554875562465240992465618423829119506731328624734571920065051737198837225052052589469467363673334172974589505014621980000563854692341956407232987462530615479106416070695429732979530493073257998975927942070035898461627215919650894130050870737065715894935486675025309706363651621777771177112428802449458761459861185846511708286565190020010648311803105615595716081348076488452616946374348467393534470294981152605572192295641315870541775549414438953238744011766534343765925042210059723738420898552447984596709738148478648888922737166825877269446639314871623844573648258749169342904315789547913628894376456752178884971310276939184057507188623953941709299361758749534507877638747849502550396784847029780675316984253607698541774265314371190164007445413778884312683217096789792405993887246975107105618313635813150289415849030432545162798506772226733472753736376604545143275592690444477182411184199232868601934070683270964721703674273505938626292945930153772350519295627502663453865950746887892595513974903104384183757018672987414863778510186559273293724317867180598891594177083998408170940648189828753283171831150458726999902409274609297685222304036727001341639144490528501776047892116155300373658173100068918093158121149106058217772224230060685348354466909761551337113284410372278976515929441186586047426069911332475344861133632837151385331120930652469775683460292134914522987898859223229963304830442735596082151450115667100694399933766296863441637365867389115213582508850048793182125320902825209502347721716985377534670401325695288639497158988709336400758444633673300714773485522072119766537515239917344538736712183547154804551310350958936743104272401400011566974270666201420378045573772779929509467021822718549020061286295694144364579345338882410309200212260401698082736758633748637703547556258851210135273629613849713223359672914312454322863553166150676274828626444614866521653453308598672598926648350917117298994832569236320336416859398798117070473522933502887912148531694236260748670096525122482020950762577736076374406755205659008930206254276084076532664425477639335185209276934717907360869534975297280629268155616036493451535981127086496659981045521030816528919272961310448959917326166092905332926409439733971127442316873306614582336191287910354846411232185614638224563563315882295589320136505247967777009276158508308935810140101116575767797225923203447443385869297525511908553949394938351706054422472378286792148762588462355148386774149117818220260886527724277013882869768283266912808210595263247091733399057416366222804790200402725004639573570539855649017649629408922548469480932753286810167519257931024660478868076055627165351208651565973474720601561322768048261662692555671281622948934530234795323660314673457884476653147213220674064132633172877581784174537166606866505665571602678284584751129192050013326490335108819024611584546586224980184607344420056878501973039813477494003788102963384353090001357007960735238322597782182053782499445547408953280491033714699043174452601106938614042363171225409528206784101055778782478097072870344584017725594552201257370877063371748061189943249931423485720156860476891939071856207748910342163508575553980071838017375534792205615598655126412417919576256227443294396185091261250346599805735917625015597428907955151069438205785772136606677669962803139183327469124094987467733123906720124083286114038725293251547832008971230726711568741248712709052189757843744559450271159433936312557375507142006581531178493394848061695560376111613607950688243918280569338276815325219068791173279314333985517543232097744378745916933105871428075067293330211040861559987835202369639617041025951152228733646043345375208330614314974045405380725791451238685150711830181400361948449279169131801479031051699151822159631049190773481635820649545196190957872068300497173123538405032722846424683375220166780016959283289759659237428516362047917431559259325106716034041407663315091755237182986868024994910141029040450243340091050462497736986643498245000637092965835454368808785739292505566487288665201676008426806182733411978679574016060511168887539669639084308215560932711342118108024755014756394556376452173042199933622047820105806656030899305248590916051932065647898392862948114393190278364189265190667863286891232495084715593822783893658131527519071875266670702995842968616199872559666173215923355307485256042807279496090087155085785509643640771285495145941799743533503107108074509587970624622835769024217324025262324221478402576913699882135451643932125827268781931834853136138387777305204863523918699988621138716766664740377411144369190436626412389487407300205313247667982260673534789509320214263572198056979111238613818384497583926399398947464035235465431929480489025041444844744031445582981468593326798882127145389320389650289314429881038590834565523848285368513685166572256663538820444062659988837264715018056168600244778289172471691807500173559109332127487544633227235909198385906306290839940194497492634971663935007081801166255999026996908016546300277306356832219638769614425311720285251192477742334233578716004068002309579975047460803878991907493308775592274673807901779807087901866733634085091954052097429156882605543910216757158554112487836185764329009569989099259781605488564212789060351223835742230390083152170038448119495585292585018500298508777209364453441394977398551325002227297871366284297509580228792640915476297833592345840804728747554492840475778160675745537683878261718684240674097026898085677335927095459033726931862698190539256654552181811746128530982702719064128590433124253204120929380050748610987841716627001779765711995749291486417575414117983182849306818005446499226053039738049405877071014849405517363471919360939025727959019833536597374466566049334397299243333936698325871579615448329180500745730674016253418764809893320454264071852615424780049469781410259364236403766177697073245420141839861884570047016916620774723210400407396700489629380991816268684573446683739469281236426646486476245377405923916227369422976904419469998717825562190808323998196642948845914055797289465997515536468667961584408519652509208727495948803754344752442039010306440838267199691096278704994500774535230095451257687408413711344417928496867534662559725468751652320002108209566393466909072450579135742423370933329328216752534190764303799739441400277129104716637590796162939509745304599660648971728494261166042673496106753855067904249178843397963576792190654157380899563803631219881325875694756792472281136403355456407934836389344368132173804722533368668557336355256250449182766190672537254330979682754203052208055668517805487264096358724636009351361460415432389441836961090187902025207011036946291693862338932295817090538490329198910855194677132665668041386921369870540063487867472431028863263731316112424186548824496490342067192333809883659787586029334818080152591581941827093558124228526693117245179554769263484184550855123556880408655045299944449413025146840584550100975890461792878793235292267474727801729601209602893625902409865295582486168740503690906896902942442576948139967566782166551677296431839719824784757408423549569350035188040212129747188111777773608474109657691628124344233883621614121856640534918696752333395381729769419156765172339854264280380189391227562944631263640879233731700883990617371246440129522842359600697667116475759679804833236984274560616433144189244802591305723917562232202972102185360775022751202355376577300228967470397937603239202249880680517553893899571825846085719569178114254595789073233748665888833644571360044894136455897981163690978483746296914850229860416957968923715170573461643335504510271174915723722031835786905012536720658611666618113548619062108300886156363059808650669344203570671511785793574578107953273315039846868991373223516357302960482717787407172114462984217861328510081639562189623408241748811423338717675735236004858057049502128324843806534820868332234040298722120618149136902133329225719459387723571076117368128740443045874297754372265844017363200397981804385878151135638728959254492423706541227035931068776420767757340335440231552500602819091525893360798577519641490135069018573152201400963659070732795480513427235085414556464540511866466845687843876459848555284398119694552500328484392817977185649026360505966142083436862794691415637636081349797223564285290466314454574752501329388165800104500986989065504118354711392303126395158975275079654799389939966110681104648218670318448980880903438475774813449494781048295740142321389783150958128368106770319046776052043372548029396412998063788579957541059677450296675497172237186730931644252983282364049487959795448459669825234629274442878364571946168469608468135271073867570451770854964514354813025564895402750559446480571324160874626418270837435072773132129739243812276243579747287273773831407211098873343832484677413022076091203929884767226585405487305509825314062212622473487057256971186674708647373622524172080651235815819386207323630139163023515817526249288157871362825013939408091147310171439671489046755409950082993490407732120193396817479188110051144066851607859557598305029993994767713032894503496576425158113152833627670514252448288700825917274852399135963419418715683672448300772085989394625747563755234141048548129907039015343316210808322196588835552957346894426618179814310613078152682320784020566860296292387206376069200591951721687201765256278572728244279835905038365770978999892567590608202888380227591060618092670660969907826774217380822447422655349746740651332234467426525654756612211438496850649963926588948888375833593549140437938666907985348090655085759297038463497474821610293206070918554426477968116730698770191276432825639112166026753570046182827379633299014606118340223612977574612057298400499232843686007278714153005557662615995363878347280404418247758198933721310711209195648420159656073972224613618915920450624369114535507287381641307815417964503999516376646211983356496312211321232442726544739078617117423006975828241493047550003010126980898735444532807281329339474505122053248491624794244149043771166027031588923783488815712568159494873059098641526188125278174296578865088875374819139553863346489326769803915209930807694320484938809231622305492429426063791028862226021963146546999253994816347618066584662341344854014117371219751071739541108834924271375482457471450705239986103864100566214692817498684973508271058640087884134523303140332280246991178169997012536096879136344536194874034908122234225520796635308827585017336201227873943669557085503907575203920815102214459053304061878177877036414422418733245202572705264053505192097579488248155849937672749349841607456335583970591864815812123998124423797935289064262538105248795014634590449199213314852623848042214062390695452840812808162526562010078817209147351144742618614485316717737692829066065281173810941502265847668534198544848801329202891607549407337438761630964424711801556824127534719164513712823676928216173892737235731531796539447825149207119411486679836799558246270724262501465332349760700125652507745986940946591250677363252748854753299938995082978604849633625884967047412525458603888405620163996890510733529773045524494473172129493569506958592704130540612789249774861158410227153542535508217054940268477751696075794700115505034917307836786579864478767469624943194408906137175359395795034686123273835367095565871033356351059904347189410527352642034445156528163964419760101507917471569985600791845080826095263103682394415521031616267458576992850727589992818075952777398448445161003274449465730669108461705051311474237133761900202616470068125656050859611282165078024882127777934305498975703968066621822033762595363921869610550867433358518847909344959816460286280307080056671806464331582171501243751939360145817139246171186860890301867685940013998980124747035595850620090105565279988547609429535928005067245920758762538970569754129332778252980473842783018590921476295677386321029079591470305489354335711068357117944981398207532484486945505637620355910699289774570717217365440232802397417156796804957630135661535166189920214451769349889284818137264836152526623541990316468058245122003703059969691734100148422039834583328852479126416611352028883065006100126665130705086820520395900755717389223847692858823885974692758066664179498893609190395255716797224017314281039368875831490422855849411316716921536440652136181401615482757634828975325168993576936870077529668122363033864712898250732498832374948366339307634473799905085724146098537675618829276950321297158796231758804149359207699917483171382824736772085736934585444184916640323766806386808118634240205038849240902063794674189608785156849049776297615005935204690014075860813301134359989070666661247693864569981304685192248763307850454630466224627853554872297793055302940313748931855439109281659704029972283530002650963810098108514164837208091693385819493342496097907412436235319657353485905235859704560055949871900924222078956297534589811896253963352570695310358736025097961255538951904675713865355486176772008684404554890177893871712443971905306116315133340807180940720907250623174316846767987914925195486281260758352387698836296939319914791491836224710081590023639933952632127897959771662723648171236737304020804790817045200377732958104064963087846487928313980928622936721054375253143883382944138472720539657351757537597584361131467013423886208526938795103137207632579673304453296834524480792098347016086512696845313444143865174517885182308899701044083788695322326417587193940872115122660603397221403832079705655752756102155608717222172074622262575013970341939731166328147412450542301680003648165294005867799269504789050218195754768472631220530569086719932557932787078290972709200974579008302959982605020438835799438572885273520164170534289821338563958529490026391596363711012619092376892504981123508487395956609453900262949364012623358091875843970620910702517906451220574630332531384809661689819335071280620741037658757654051011867400755580287888919650864473772780588359882144968986897557205263197498892809507333626586889494048369503588364071725304643949265996251533095308661383554179209980137004432815607662942418004131294443004879809249833861369530422517072622824147290249675101721132514692960510993411399854824155777299781389416072164020192082004188936108562209683832599456367715144353469327715045884575632268041662809611712921615665886639245966759667347018319373501353889774854896601751466683102950034122433160190443402398519278334049441796790101856491572113347139865465233982218420360313440098969554112973020438879671227075063482671642778137036680941137480335277732812798261498267691581569739529024612125847476401762321164622250198303024929299643972082566853631020663298551553793362770720871788641329114183364286891989131873565856311189382258372244133792360039474537614500079168791919869927197724691793252198149707324787430930139496279555199058125393259871731959568111504193010351690418845046325886809028689610057782534111279449679097800000998944346349320004120998883721951692137640604400315381579944843176781899143012413779272541490446050344941035044404675741696340427082107534187759868030878039688321395398852296077032129220884335306599214413007874602311020103178076940869753959512017964840071707215785502754843349285082196206320683909110768163725229523619173357187802879716927986614080350139744730802860459546550274217848300064455717277975316961016241230716431517070670309534795591272280782853328107964439724881689698521554591328490188482505267692238757520276332181160671341611700311464896002442032309230289942387710475897277092631934867449331422109433061950775123346969672497679926580564864054180436657697447854746630575869153723994500330758418750090480011131930273323322825578103120589024404157639508708950708642996933165780560405933619757568766267687689054029682807137463093675836435762291372453755475507402324395489036798652810027486274403776421040140541088563470457539943653610288093165632657811812413574983515001876794475224415630709744370767582765860992091123779523333612520682713699750053189279300111075328496246942176700553306251392999491440449486316080740108631419222319999594871339376793909782702771743760589530099910360990985484670649054565465485215566158148496587926452685712803677572454651762481385612240593978992657663608974277361487585260319720562975253174857823076265889575812252637388459791507225757205153962594993166467429562300719059345163501051734430293219193075572829110049263360912218560199146591153098091933551345724127549442210536262889603910141658607130660885212006230012850037692832158037474855525687653535162276634968182396376101078635270422057111946247434811253791186163374738308694783176221817506920842631901875120811052337649991055134061927169775898825513394357362064165790059792163002473646769272276437963048516770513124668378987179885211572258598311930501967873463594810643255086421436797093534756733655524577459332646297559973034265167231154656238311021168671108115531266473266784219632117971884744856793807628038117918493775405599758473634579117204718100740840111457604769513160013564714926970912245906787855092816884541970234653781121403933886065682268224771849538293141274740035977826119679627486652248523233731510051985144616939553520468444639636077348850595257000024090452314361907218137414122483966525526937523861244770578152952362523195929859132397068731976605667121295938504923299796986146831048149477046294121605516403801330987892757886717159885276920911896863218119986991768406695380352944323169019779868554400434891504709880135794232198372448116346413807807859341345465933942752075287644747300264757331342856969600939806479223771352596938548843505325099351043994134620639802516907189316863018078779178939462924184163057810209168087179378085521975453961050395765806278079347560600184782284522865994869998860807843710092403827926666080888271821813488526447754150296807299189549277492786137139543174813117639326912483817530901406918125871429277937170033165894520515582663264682480838604172356934194219457246978169733371114223887168098673436934042751983606531319766256837240573975923140629178791649030053384381325892611704882824190529032286534451324511740104891601043619870542016469310370724207120089217140058865854629718261180379843425406538401068385096916374034503747191674070741795434611856416433555661523974561000211578962600712367944131483087976920752301425891101444823086278950292429435089798417873110494609776452255745955050899779764247326105533139912440794224678017161177613786502365297892672620048759281641496320258504711144039484429030847265570439294209558884897528508587437550704918597664350920285972735587603265639560486090161526515951421522030496519587485450335961495835832411985614141317175059179872390626884920523673121149881011591903932084975119135778073032837119184998694347333774421284904461466346400256500610378850127664326084798283032602986479045941069443749503232878374660966043158121377084592490025014343852980422792572663206018097876431688631982816493977566568304981656523873032759162458476508170442470438535676208682073961309717890903710938845095236231436941621929885817921099575529089844948606271177578781027413718361345520453383415767902419472993654098807884884232612268095137461977275751129014102541002301688963760993163205928764141597799309447950449365602836371676066874689660452643978698423536363052687051525276973446661820978566483331390461437691319402700324109425712171924997474183934380054990161200448865077272804556029654351942322629915154423266275931697971693019420779705884477866302626008871318250323442686214579283330738728006695575547579573282535560812177934148164781247410547352851572977953067610837914524759006316673993291105781417588590987308480892573474255186815079339647942173545939817480157915086676098651574948924787641013317441312005931435498313701881913746720760291317198411071967525082362837641633462242160571871612198780316454637464290832627420257321482552855217716034481994297115676603290753819477456280281265323977914692952579307915179907414013579545909571773510919217898244470888967432285035891018961490263013353074704041452530386201763310382977876418117209780697356154486181464903291133885073419050471159296408743043543322507830087958375803322806047028385881699886381732343793582117787165182694104753527545439358269131991430160041598792437057299610196309435654220819904400144720559633511129864923199307522988389431974285535616684752605896915503980322315449739175259296034604756023501271357352554666611566304316834435887047243915262950454838245793727950157375352906637725696545462473822200595594743398190987100386364364932428200400026719973356971470218821943546059699373670292045722516275351179369066609913040368199616900429553146721082225504294589153331384235249540200378039612237416107977970905374845053886367947514818266353299588320321937536183905089546304732519708846773205326684579897045314068223915324599443607588052616587406724422849882503623381375148635252706554136824504729899471921749938271949914278707416326399759741671298955653063646416169781515428306281163204948101607935135754696678214505666054650444769616526810434503053884864572825984712913978486551899486211067174252802973506852630393748593496135317654255606633890981226870298552904142723445419588290446911950453975165077387421660236854233545739340881581460731724271141570201219377011024933986438961975025237834441618410845289577644935150016804980898596133831160476837631017574676401447633860730139176898676935160220669498371731121226934963994506711076170142712147425463262743039902092330336856148561932758056472400172306171553188094227510257310337372893314683136618757767221793757863876004692596455718114516411553180472586094787961881564827668023018797690560993363610926257212472361091383850681905612890110766260824064682876141345483375116218405959538481833956996110312022795910971340848843430163769716639124586320013782455451288126753427228237030734051507124815764236061483165737167224015799717079145409040346427997313840636188848844992065099526256790094427744706307029974737450569791653326995847072192757925053831362076336067339136405220142115336640102589355769903356178913327840969482816991275855832507807151075264553687153116520460821111433971024747555865520591092623921648139773900742938096515322408790602125568660122080978415688779145590156323895837892212884323629328023794092987247246267947244367782512271367846731584037794392858331522444245828657570684258823197422480545091281302913590071407097004355244916545521643666881743952505082480081341902970659098419924782240267227477263744210354645437105267334993408775842029483493024844827119346342688943304289158716057264518339964032839906182078449494761185741317749747914097910504877719474566791086264980803510905471247164250567658238465084039682396002445881226949058722210634748745321037316073525662417380722061783239822033029259241447688759663853743415428035948844493759404421541705501790274358068281282738762425329097735496680179493512881816470398574068452837322151475575559474015456125574607677366948333360507212998607338307979305534935881016836751418475785346308398342590081704848395719508438185469817239477049821512741220178278809062082145919709528523919514306240403979506164405905041105722006840417616429032156856543087280097679177777922501295758716066505345658547869322793734661926343866979237522946313682480938070098727035828857721686159020511661489109239500414142662747754830351629391014758454050693100066429709792319695257325970163979923020731196744110491186646847557831478436999130367264373086175589629335849485991693275390991010966261091063824725483020103377907786204416496584115082071813362114160687817011987235592953305628867259243016302167668985831185760002957079414605836327047511019315025202084505529703438772439076786908440833748872687684749032968105051355462717276809936960535269125855215536872811354779488610484857475991364555127066512998019050234064638955184236245630399978217228341966143752005112298870742556386744367314525319905115794246114883233989740917354982883804877602486847531742017991082465709300282216463365340743328169951824559125705899904520550758189334149030365285402736096717864621745907145408097807985275786648220429239762003265566415819496372580845584604071069171974745753765547242222175071262193919671561559321049772252124559717719685596092415311843226268942094012702774995682666674815530940783556039364601400513044796416575854444564404591152437347268435761039918150191152160266820315899819124337154607960231985251134088282393743125542570271725627982183700638294268992325503566609345445077850130804512051765414013957622766522667377866108804298754231494795585500327284791647635472127690404067486967007005614130133111721048948329717048391478389141872618478805625006786252723600886772980242025034834222797082528799517986755974844216688926782363613204345377134970922508546475205540223369247859472053646369148891284202134189955677273604641192971453290935678036740611346079923974203282976801814946883872479321914524428118311114790223536987692200133764590029387388939487910365394494741613734307799518050573105062935790093618699141119184580878663200339859101439546870903525817138509701300194098911791839924005380899304155726662517192337437972501273099180090905215403819343272436469161531727491924326746893882386683641999858216748402195289638252787165099428673555768039745897063124833564414127415022963725140165429283832902171753909553078933378425506273725868411296664385353647862339226522557112111761751456445459087215479292228499580524146142718925522548102907005870737250992263990636350718709644961137300937189802008729924613896658295794809589749213224314381427094479311587488146714815728040674850432133320432155791146098070414439776640464285718318293538810824269768034160984409906654924792845108813985686593416534230559727104897741062092518570493292123093295155916079049494596469786632409137920406525769466057464147514043757205330608479650971407827646939882835997958129576409555693707805089796089089974458129515614615783222397370099580098158189866468988550807966369981452529005123304875527563466475136234782048370663883692300647878449901761012075877554715209876168621378305488821674311625593001075529319211434841398897252809957167248141071909753547411894165568806412565246072886845741753313142640621443259408746026076110422509031382393225369341909970239443926834000645494073718938906125460810040270245103120485025652008016601957514057729482995431943042528059064435869844254136181385728259772397283054222923871911458004977391497044942499529676309421369628250394678344040310767198279032761466044022777184477070841046651321986047486271195041307879653622293270149611756982436713307708906247466034243342928009730179534273013161312439141891612608554338868754684193024614842767996449748979297288521981490430323581008876442825718078058982134071798199053337990534390174129462632442556970024534678533328703880080532321735300691430430033139946691988804282364368578747890079380344504224356608423828239355359075566519008205564980734216111618017957640647112109925862681435838167557732280171058922951238357015846973778170819073811533574293114269928682330393711968256294761048949981882806705479187079618277189075682225646931266371273236820424684581434098046321669547363797651126594711067287376440309207750973251109197845791198160614472275186467835396380888415820910531590008787496813647330763026638740621692003458960586886627635337597942213577361121454803365931850047431085847460138210301772328554109469686421385874112985464191267430221601560627355340046176053753875192228157306435059818021795002442143876548545474266484979658711601538010190299354694482015372607370115482221618587487918221405045975802294697930482880593820568350458066726728825123246200881377916346649219507618882723723645996452300638873543134493848934297446373693039037397817264484459000860783867275495110270494119250680059593452837120478122814013872622373127014400533386177741849445602040862551576072905173783526982517843610266012073443796631061221126130482120742613434109264667930756929537553282297704273097152978372356026193686158294251033155152156911396434263738293823858559966322253061351624594507060561178397038402659982695728802093332374818537504372764183975328507863179739092518294106324794832596438448228993124508664153449807056862777054363664989103746452765929063345581025166088582127080644065779766563528118256831143209290490807435204742876025082217126788079783778233040008369435725541569482634530459643824205665900108326945823097625565596375899120194127836728380924400838372794151369773769721362931833421718807389722608153037992714217266665042160120707546903687965431921462825185601969889410729367033589414997279735378895106080197437068146597602172224662383773803707388033292714609227611795335297697521314707968756584669643522343910242068471919379726880445037143627512730589388211781902822656851841503544859483664418350954455253065118563241160012500931642674323568010980253310687864825013233748925368577604308902035924374494992642539401364721465936367690444894953062335870163703629439688387201800974636030680954177331059929459547961059092464344110716071541536720171596585705920433318127327573801598215367162884576278820199808654459211624464873887433065739040295455344601898133841006327121810950026693540542974758031836984327217861020643231154045633631337878248336619673271767814034022823370478722524258721730659516995980345374023994737654510887147535678015306711227698288947758886451541746604120266632107888802878802909367711194486677795628307203762881204214425616568558580650977417469803307651426081318491028993585276257712193585002476413767283824251177821546870861086229582775374441708635135330733793769614843282261172437915060372955695065844013129561238945581077344369766294446969617947028165313395154049012055920985996902451006417428900634591357864583170267756624951980785492031347625809081924081155381990380040416779813819077972878963745945298109288154771864654146787950256287877394436880133372101368820520834120174694450594513888170762590593004076253143057729348919749044941676446456211809590795975413150758324063607594528421437451657879621453108211275526717828819409823605450050135689612442444262546275525193783558800253664473860706314185339668904428631444095366677710737707322650193530590368340505657110860726161896244401928087908144457871135053017652598737005676812944318516850629395930992759926753090174702420830614338320491491384182032086159633487980453316885768722290654975771173447311545587530516013452679685290473869268231267154109479802294770806811486276987975071841712108478345062381387205860344155088020167616093926322188941808096596360311639927057654230426545547935290030689919148585762245425212401550147511280846614696360623986016017420843473146318749607779450998794941633072165702001842471044415313567988765156450294999742041514092452614609746928708836910967431904870068899368832169269120211613030473366694258339032157752332735740683967599493929283197203109578143013918518852840101294177771819908631965860504800855760772502224504093831373797346167570761825430720594413168294128583695718775232877325361408224622279047371724208350000663060975426555650412483122947890433669788713181091511012272481997665648145447594509655920775655637098879242182296994466571232981246597027728137560593025699394012625344197409610354321414444292723516528492910559742569111044100239270371435799552841015224471139999988539261489766942012055164836152501875815782035027824363408800558308318611961862118278824929565218932128370529992047933128056743445502840296643347490533192289734338849123955363696169215896303843558988394773593667668564213222994599975461082731811150376458782742465292311001452751898967752285271439637121339001104246052721578110003933355833685749968281092123951104247739268805108015406177089043238528719151978617563439373434784054705870013382444909136810012273918663811649149974778325460277067923399479084824395918830483380584890924292909600190434384632903208870054902029424380061729694807350880994995586792900083066890263824124758087298439293201956180053693629577893149869930176036266822898329093666637470489502037023640131476627224407976150994383144117402451139973032512726349684710322049214783838205270549555307233669832497568457357701481598589483343706722352920540041232066258651294831313227347451077708773999420353295985126842136076575774784705842224120901735122586550958017358447661428841149308690753402164261657836542723461887272729743367777742420186645682031716530943736138618009124824293436426451734866360732040410097938829701636056221931015431661706801479494762678329481830823816406831557192987538203523822866014504195068791766319032154197188522185300073641199477422834613008022360590946934486705973488101722667231022836744902376116583949799237515715897906936856045987987067359122260579114544170963466794126559528366157797125492718265250972056097454651658977808307876445909166254415497914805368380165480289225870662806034258874555176293567662142840667231662683076321229326344695349314029178974556736197101715250845509802523224145961374043335967809945077996214667188906875465288166992559748961208782199463145455561441648953927215715642808022965892466556213925588286033104155416852453965663920647189165509760365420358172550962935848658604700614074071537091143660609722428040688618408948740173520663295434342255732364448212494243449401383683557106699419163968131069177037226025877627160114602515314506823602081022308372606096636438906293297809773451655783108977998905640872103974319527722520825474306835396358058389132325944368700647039108627187361507636906575185537407848981807323967824920364746483750847657930799506366625123734621871427576008882728890649586387766239946033333684101941980893753758593437720715910348572909976802735044745107919549746287751543609701477221776586577579200829568318346180083125735505437907009392451753886990329405026547453339836334056892368566338972169780185833950408772892763509162789766613543903359469992891081130773068526535228438234545667472381705730967024016974248677151342148016727666114857238093894018026290797351433687638363869805058849616383026535159158829995464273868533420417840702927521209747867141820683060258450443741624755818185927094380367681143922718525255787028534338923049884237463658483260519772831679295077203955383230858028348261157948418781068276066577569583797182541765455442721467333970216909556988098310434654023459801495439386006471178681411562381688887779254135228803296789832697426320363534062950817926854627006041360699277512004053870662811526856214551570827039475337601760846351737725308211094025938352004081627262605045953721409747275141110117967772347945422960446357785966245370058538514057376144782546457562253534737809816358991434699973723753249674665765675488038866001589672412085051272350219016285673401271312064190848777617662737638512575564019313560810918015547817147920128379028868395021848439279038343942658351424591372874562234839631461911736376196850887797676126038784827622471440604565139440467194528357926635370456939779163599625931091841253996809508670142987722939173586613151184471383327498117157433911715658736293846720175336081417008672057120301692287119423817474473212566471981757532864428778941759324622821906578062600345684140147071080020317581197472651235633570428272836645616426729348362770954634697317548902994613598506301833089133366715230946036905178441075397776717992704642473738977516634031209777116372640122469650149500063255025044789869203879615230839796773366739418519630892479986398849562447462632825876571487723248498659539294434972191539843468257096577229111303012447343474728836207889444890838175975372966482984186896481576938230740436643136718446005036128862743009644768622927433275284890862824584591841463087484779143933447235258834285673625063999776628782090235662673111944830046317808955362709009910243128805185928187202256583527046031676713564380946792312149501414925057869814000937667288868041964632481606272430994519932485568190760565772245521028795599292115508263888364156379218476941232231929472039248019911165986636032972591857220656720787102814854578367340035967712082720475976668793545119060512100577541927469081019139620832570651012421565203714136684933346822279015679390947119693746124811079966540167871241894214577268000576178101570300987485371426950430080543987865005260904702946658876262310360106786499687604553550930997918078458052969485198303894865304556307764967480715878599501842693923674337482992381382087327547118946473868020574534283484648165794027179768951740028808895766450108328538287369216989244327730501996047520216114801261339105513623197791086500590842608408479595880188069273735647310457479729751901974063999292812343213510005083030761909716547405314795635437028583952247971855100757127076671592759725795927512133997080674870392021966010136299736700708422616755312521027305064869784403423102963201443985145684040511695015949070169182104885872322654967855889035121600859150388069617659051652208626876451854613274784554571577955618425298557428185105130393738235939347014472661914898905633297514352739954565865240684220133550976982142318086644887551249557761962674394003629591941104381726318919028597195244506227135330291486438782662311209670985355759196232359459947442683441268043580621514961464256172136948395703058917000663872814245363679626146048068099106870658738782502551215785408840294033640034286947792515004894889893981134011641958048433194169798989416602378134076905111684197948579862574352025116135489819341449583584673817279683163812306086129351904180791695827537071345973335882536368733016101243132855305397436668184179615451565124560811186399173451323886582456664188443358799990720184076084311622297342201743830625179583990352955270670309935096865216147934629923932517842888055840012112404799307777199503436249210760131620854983228789163143025082675509548758571420136705984544883379498095652907343403831543061939195841275783342791347147839118011803315454276811102481925790882227102848884402656560998054820662403083467680410389209748381685148986699146600516955133389452828494527366431541177235091973898316864902977021441707851572818109340522773419298637542210920500408160300799905563244185745398615210605450870342530261556663719878104509390194304257891782261274466415935381229004922901181347534471029427670382505661199053508220124207764398647534869996784452749609839688641196761599331011162322002083329149979497885459189768065448887365919351119331120160893927785651499192810348832392451015208908235715098311691755096472805295838577978627937233379614772607186039168681871869116877368372044791464221756588955434253616311878535012580733513909383639568885014965498566474170261350944976690741841055471165103921017091290310148290354306626427924537204820052945769785814326457744781330990920526858211024482289372412597020882516944963422654628022457969793749880235405662430681220700388863061776101494465357443738707847090419639096381286554339497516824763809090741565071372529406502949686704262441904347307931888007527653242742631570605260236144444533275148598503596152971284513696178865688560895974567611363401399703334959742419368738762534154438880903496814336532739610162189742779599675154340527722869596208993463218124441793387578163830563272758920961831238596578353810906134511825055209303128163613348308223138042631399922387384697608983300886321548620544677639466821401915344750688966206343568537319450236289738874576861424877832006892409033335552732702235087322638749100317850600719405513972412010716234723313698720702223491289735009686297214297712249052459546789816864787506061675542806750150235291540972431052751638682624375783313258643301480977594584423440560791033975006325717000334764464611360006337452379813225736926272842320680515909377138251860677296821757956681645619708791519562263082175759616915520122147783297460285257559683049128506487511817826514895390555576734053263292509093502282348924128487832378371135820851152692954184165826153085009385648382794919852946553912261110867632405171303069481799713688025783657101044015761645479751207044424836851163782262470152567529204561912915833389315380262201683301600841720910762351294806335939380342672663014301375318688879152428883696843123142134173089131395105115373267732281497127032782629982669665334439432342618993093427888370038413967979543682559919434015091964554797712473295104369025720373381617552382506574569942907855726176581452769309959061837286526835114078748759371349008126821591173758022692464902562933666404438860279990483118494808551448801065644018508409135353846935812905804874369463739352398007830381043296146246568796142373034770975241666428607872616255625937559855952086624508192309474370395219582534391204400134642588452667259843622338978189803245721606020156661632668787713670546772005537002980043613937131160053686480022748350530499295840531517875891729423012747371785414334846411068316133397311671192067770982814573889672419026323950152633382452521065475405812232306434001701749180291004747333506490301715894972971331497215096260614687742253921540169393474233851688758065892238567171105270488075019707591567410544092024063666571054776257851509375559734014348356612538789731761715614192339287164551100999656182068275184342832743672807768786843969747763198267485192362927218165202349919372981315008915773466536839747541128162242560673663291025089788701617064442900719605347599592704036622657287153683003598622257441493101675164343973034163580164107869401158362181974173423549094022954792151313508600500500127819500644584304005833705142726737389369149489971364889375761713713275617441623419310813949899554759802112078555143686169536241888147588105363113747829802092005789206537764307185220331404575426421961978178516374449695232417439570760069043238779114758619614361675937173393173378849229546184071228523061120822630615367123239013766007203033698775427059366537362962169767683792479479028522125793395312296404170059543476347807936169659558562339334328824799064402134703859542098847172426414417316939638251747429782711988256089018647544113441390078882999716837540401326740040921668356735523592241953231629881988672636154165594453848360025595324543140728944937837491094239099204558439261530115984780344751117543524691944957419345541848625782193809972348190401771064535687886192407802145107107879902588464764708801257814438786693165436461483414603391989453403431883116665826778731614152730806682985787888493347676490265449733496026044814066507913225445638906757502982238192905838969683676087886433896175993255003261185111813749227601093228339893836277336408267877114414701008315710491257688690992197661922564528098846864311272563160319605824078462368604497282056583076537321544812406609071167111432788829176865412119332639449369069039101757195562092337312319951563433092243936335784175344532751108631613692507975735527171136553580439952517769078667822640357819687047250516447435507229268873725885894827967313952709820453225240992458951467778824930614401159510988182996556131413056621216576141576302630994619244563904442568090151984176432637444962922987553368420548179712155885585659275259154466379972700689094895234024515033704580670272070192456453448783645130185475220769194667681707781611364122069617193733889235025648147251904795597718638930303091714900049982613537988151543224275056596691542125349826878238492908059805114950462694857337829937660135336251012856043378505101624856155928963889818401645504218164333113500299914071501464561374270428193269307082759400262241533008880710246704571776890487405481019761262098888079196562204526947317035982023881676376808003289941517263939011881023920887730170475708110554698875394943566636327327040565298728922610822619920210439238884942377083399449756069121750242801822336044684928053104470492875390730773316921204145495624759151162182221145681896338462188097381772773188002839044930227577895758841494816931353023698383827589840006071505134578056406876082972913305660367561493879054988055992732396068253864099969231830666009239911312660226359423685379861365405884318214155914403856635153601017778260762642864093978005147414290958791589543309100493577267583884334211674869663250780203559159566407039500756908509150977238858192185165319291589341204732986584294464358593437495122246205296978890412229506372806898664291833265041030533057314566966940771234878535655047796988310498092411570718996078738577955189570802369184424683656257058835248041010188296264719479445924075719187195675222388896824177677300997388830617236617887146863835181897644294530475792284879415695957231961311052741942937957602532166497906758460341463631305546332192442302325715861474003619044824668980010592940368973939332385048811330771583006037435262095392165763206328804807744701700313040797360137005357965751498987131179004364562206566061928111466481801470191514576893175694578714861890491365356612043091756252585745876727693856503239392009356305178342665597979381665988514213294988153789220173834578321400974782635637964454336624460974678512318315335662210725829615613211677448701759213490280473436901705262598910762744333109425758907930818255609718969522757691602047539744614123983809033026567270650039474007614648961893237488356130783530971069156006007119389973173368167102474659073776959979130901944178804417366441851393782903273687097883960675806879490952572627930894988964467180053769928005553818554963011511728900410283949205285974249633956756789738484515902356506328722987153088052781041200377733094284182669681968268851689439472093528041324313463020306471609178895118207051801528932525928862281225218939412816471937469392475124090017512805713167024790222155784378423665122598409136718617670276432538798859376686331743503456488183775544913916686119054732337459288168208350932494103534609480251045738297768230456895946710358322802747364076870410116640787270290235994291892355181842280866185933630191715354751575566801550071256858980105166861663787652929472543236613023971272701927745613955419566782406093346707142255963592232316519825023774319815149596888987284149553466476792379154419979339053335039536218098510793145472862319708824081804561238349696387058023307319082665839250592029259746118690469074252640204082387409220957782165066069840999052976869944242274060310823082940107527852592004128864614266734744657585785390551709926006396454454471447490767522856420530534766920079427478889645635891697609437088356258743878793591277363693708473281118498787331516489031048564489493168534049547762773295171999844847859125416568717501149588844948874526021995919351218377936078134061502803495244970008990523210245966827469541316566243584038437257371123018805214395988402675107231961159185672517785687095072883729719861474703407881097666008467475605313909448876489668297764695387034083502996366322550795334230850529440823518934648855968343411835530690106462905333613519437193509316804708899587816259064550871559314283387589637850931394551227680490748594830566527907776361321005002762183353670152109135034749924339211089937519332066726411469199611081870568630018893645551852170507389956526063979672474342456034158618604370356463102137434306325862753351704604063793112520926896316366096465927420351166620790807338806521156735618452492769702555192621679232096463457523292753569861028004780927331761304711625061468943677585188946392271002453672795210739926607774228612477261080787124328517278493219296380839630100141268325876134404763424127813999708785110243360418357993539728122932313645696617742623627782683245926922428827939758213804857782958099548936928602525816308102263281598557199457536984360260823330151203847009435032681077859628319049535681382826370428793599607555293246880756764344222210020330779997202305677222846114505223658176905083222632721423287748045633505242060481973529291455480691488870262343196132590036182243679998261520903112667787437595447229837580682765867173889367453475697769904315997662214037155856537356793445519129683742763908092136800169816927148561623881461864301210357877599125348732126003969181625674814638366969206715912324820126907449994172076533819319576011617360123946186230689678466848844385108610873651257841145802474443957888758996455149219062019651424781129264247011293977805265499146616377469623146459389872363162836196814508710761363976058627061834064931523544176465961262780732403937909311833884564669083913467602102140185055884202609596432627881837579837801859270454036134962789346519713242320431684275430945349430155805508144793914038063285827475035234834814635266123151410956081380561174071466992146866640036103935485974290630640208316527431982833876188904701422435387283425505237790495526015997067610052837346785593982329846940025537638659185478363219825064951750823249873138512360289251692524877453921604693776398206112924476453234608279834697460340680046336971454312194124059990172496127584889023822800447840974728259501370442547823976439373692196912566909411721817093507344691180641590099563879940071520342698400812469744442602940375912442243490590378513214944526967286875482356515158797285086204139888069179597387113321281304107589291695516917389255316033571563067266828487210195091027938122172952470564126552490043344087683604498336671191688159574704853978004063470773113289978128394406498206317896606370302687300328408847706506347289273233480697657725520220350731146582901043212456145100034646458344057913223579474497864240266391296236812878448233489605284617322760906711379925683404833424404362890825638814732656838143068310102217615771928273942210465361269406470216088728165039880109867883015102149801127355926334759158344634783652438209169714992719171103740448382600261889179454557681621547940387976256786379586841909302144736263146441090271507741153334816293329617877126828117522864963698504329457277561664559720553883215234977787149275145267008677865535997006315948535099452645670692603230900476492367054321945257880147923477787900121792914136405387450841401330553955549248431128662644610938976752554050041596205912353263772156327812963598877281844879585387917900610275433797383519550415477540198067923942464006676436007610061548848089783120872838165270598563883394591134033573883267241446078297573568235102176035611261775478259331805443515199778979384043381282975672173690242818406280417468978502166131249367437621898614043941530618837985392784615056413379779079724121358384561508326923287791365165185280869009659578754213616205730162813082890029770450864571557479890717798843276165476449803367309923411178269112584236621558508628555767693521454017036988720156183869035317543258891145016863447710741629562599456971227071242112944613846313744682730453504273334038525767668279344251196236279857072823218321961438497204482473266313062097952018633121275486094883799201024290749483005268904574813619190242951728790375359915079178244899995723815178962809846469542505702424270414425189298739810964630149699216082802386964806599590003605891201915544682296417648765287100015994850358905392174411945619449909809451651699301746204391959809039821149076728088583177097351612556845982559900459277836470003907672106842362245543519029995957316282637325463893319031845302820382252423312711358738123161414846216067496433755700546464515188543664512226949254296516769099665695358963873268938861517620744948805836535447415998333870828647465426845153983153465542949614145932309205490768494673497878277610315509331399648675701552810330219678360833078512647164630607224380752571518227058227433563123116591403782805231269908858304742468260748238519852955534963710832456495332799981861905565570943936097186132308156465497612337242691084870446334898309402150225075449526673039301801447902630755627499544093495019319437471353826307554976752874879739131462781868748977044648243608770797771271971857691876255735289569411173383824765332865337204587035796412572429226029176249229444651229244222727960164766798218876090784910865245104945413824534095814406152647568851920843059627506182438226501282437948734561931361811122699054761062662342341368235923321474520399333117278524365880386369783099752945660205036325506920150717182163520830545519667023739853026931085189462748014705514934166398803052573271031439565965981633627955009597588096244893965406555164996889760582146527044494297070560785104337139260777977502554808594993483358549991144390656541045272118508269307982862400533088981524863305246913681245194938514559713508092371196350899500243322985085293261865784138381169214538002096334099775579749249145404713690881184785903143407391903065265063639056719815991029933533570747150700327174218176634261630038139165964315168400334987916267492048357987888833139462930808698883363663271275356051709963838549020444877952715638371834629275115310116805157047302866231233321531885969870492488921917840971611903784553453636375995712693050308099505704819692983316908031326581298111870121351972303496982442910056627562763404880164586311359182680845780356941188567283969707022051791782412872821776901388670989834374076065684284490582176918190783661762497988429783114982851855840071635191610205275110232397225243616531115219450757875670317903157512865960118290978260436165411248765026176872988515500618137751282048389094710911159990018585752971251611572621741896737996260510885232842710788624877034323007187427652544807680661743649637411578364695254778617637044278421106680728936697894709159650794476965482931100240079342124256401942973887597018596521117289817291850481868628746860483901967331724355286794534454247267785060120455838631645672496442680229018322231520822390197180250280640670214435623350857041490515791432081628682693957267138214942056973100542212815183757528587485871990948186855163808191203211371890329057862487546127675556753545176564507427735392120281059393658938152492935605001838478731211983609210560189557076509921424969289356038836646162384752092078859188469216790854608038035549196565519277039593622962919934242969199707494609507407865932414758107804441744172602732893300475147231161048417893651525105960491864745439057655779380119794704855536540782824414662444569296252483650790382363351197471904440315357571271391182257655540749620030159918800547732304621264347652044810391540015684247933844119631543771059092217363580105262416533712933961132796578183903722130756085046494991775238955880136613645989570883060491938865311079977590398004552344431777620768034668322495992164267862798343951263178229791984165350894874698502091106107118472868024921428749050441310132540366411046453490445808641535086646418984742270676724956127887821897523860781869013953151901310613631542748202302199145027487117497571281731484039682854280832920965309791470992180797883361796283885322554036785053087174545214167656293845773715256182100216361070116879981843655956383588706398388850968853549787898421634060464521718179977574720471790306284257579278907200841688684015310198411540783001864591046155946185044560252141047954479996828739940971932701175661753698543446300156254744833591386988651053488084376504414432041076921963789216015075612898384284429399675465534061013493937394364193776640613782325503881515070419286952394994649590146489091799858314656712831337003059273558065249042325122521874309241654484828562956156720410418888217296667850132427402078682541096789624313988873992801223530557730697290407546094922517175708306848303299413485757352032330359094426993788958277347697405096651424686653013417778084977686544868183074274936786653611412347740752846063802029602644768022368829485487004893469035331889795271014441208292828121435957994513270689838334654733556962965910164306424036836926402729225810355657477015396527167688195461367821354087063729206212079645581756245329454115166907424384370114738000577630002097859504051009170548360638999949376107244720735974614511946446615906065240631979904402648809907287560882579960274291635888585539452661044290535322212549680906525566024308334399975331863714479231705160029481691024182297245293078307589160490813443978255695196314632060620191925158160522409067885496455963881053921007466491541223286234828467434764684900072305625404756013145009683794628679364748491506548462061469316402714029830404090801353389073950802233443691979441878911286621646330323196326947825185608824591069453742677287433189843018663164168793454047544269750840209123814784206478408802768580737004870473226096355150294705503443657012478449427122965225833045965536061610997805214290790966154925586359184366332258318930117950152563176539776370358564149415098971893980179775295988642201657555832472196216597353153462252525043022697686830870466331089421068010189780494947068106141371048967439585179541167919151795100838993171003338941552498762243839856196321252843716500227048405800613125459269181561499147875625863150106206691007414989722535321480439582292029273628993594409531561853536575302786944819002985421027469074291068036253364139268026439867524076232899766481531479719216493880244197644337083559042538690130788268046632122596249199461565059385014255116012539704829668163542726222796836912174726166541239421115662002747151407962475478271740258964763371354490049482252860476571827161609241236090498187406076174801206370332584459597499560100430639851897294679662065421819461224471984111184352157488408125964586066890125941074624803510817004871383738006363980308531913958302487631135078185506250256661435252709815738505530089363138956610493518013819176142440979315147279675809063086016530898482548647486192182400321605666915072975822870430675560485676361649461722914793853167131827073119821902451070858034076467826120067409273061692728911116014885322163814127968967997861596982276120990322682550424368351371764936385305628968826847387086091602156685506441211446428996536492550165181478388886707026279184965091878440946233863659851445371085504933321752366038415543524172229199420471660033867790205233229185741509501601311119055304425740779143260327892808908019744820955649072439315101443616830597925678589868806882131063325522539279855473721637028532671060088834666076074398210309906498462263501863457847347394477358202130670287829528776720218478288268132174567450943479361038124846962745466762158440439670313921930876196222542800781594847535023941781555755251151693257356813370571440671541687239440900151501805342888771737831529488212100484872023758300108259592908133785111541248835654003981420685698498610301318089217180424613472822947877339660299275150469881681376216211818397011446708052599977354970181813031235577138861105202918120381979385038744470575157635754836024757643905233197465286792104820257170340916271912064633936674436574702461886426581089407601031830028325890498498544114703608286780551971216853611525908355086045538655746072834167950480109682730480422663534195543101757615850380048323926504263817147092513838365514473348683149711917523319956833472430406082002134359817911953535356308618352667863119070002301013094724784729433515069947659451999675569332234949387070435526497586835322306279082222377270532407276983203510081892555151119296707121563330128690274846596163513372666978451047170017140878628081847580139921441986795613186851294716194110732822675005375474455017635384880983728023998618198456355940870761177417912825917953123971436682898806638408572932834818326149957971359706265562999350903000921221105334468998143464447519695094712030012951043824503374199425711864142064491539729869502320279946408388677383522941141399075108074349982513970389222635078399205387640224970727132333184447781809034483147574464157409256502126853804034691928347026802510850787205375090685792478913815585947236359342809985610527692567650862099277349734330783817346236726653166935002654234609889455617716846233806172831821769594848155344628316831825318169186575122355723151040004468663496370472983263667017330810392031329311821256513059158805984184118239257991099777353004687376190897772763346547564469353843309054210945379597605260256735463188115747994330407185800145323393484877853916940624705095568914711970174908577003373663310508776098356408300397191452456803417712173146467789361832968023278499921040348789096034976025829368734684020275689951095269578858028535780739225991289017566714479612690167029075161771922909954796025139603700975392780092372737388672679527631544532324965885087166942224933052898097925276566796562199041821325969332082898672364199910414733282989893028425709685537388481147815982974413951764583838580839174898368595076841012577141647696111941499185364061607024768653326954174430021813458314168676537490405982394946539541799792669935250297943592082970014998968646026241944269855261345958539820669749086538244737588071047297508560606106850414467615977759804481902613161114297028342412667976445541165384093587531108816953984648152253516839116781279507189836673192935550988566369212691307317075547064222436534991011654951815125477070311316535358423416744277182614306747063813315868821325328646642015253154154443397714319758296644408029138863003042930074462802999991370842565651522735355587333718192867684897322788916748746828532986818783717738838721014201748345454513194939604481194570066087012103734339583669489326125655071214920238131791676698907439074681086903021131717303225534072852465998398418157600732260047888011603766669619331374354780060674858942293762078616075846303767763535106564322251310814952547573205872237078719898286463686956611989135268247694799820331844863272870871316098531764041698929215614144112975114530905638135937150437836541023469889044704280516188491733919387119619735804473572121565056573376543128879259233682127895841722043462673218813386154700072859137337995497210976977378613703572237872457057598445427957755339035256690125277177414992129834329388714119973576919627647772970299022230125536738627738556948811496224930503732485927540039038079804897133692994368261352461723304351218910845496684540543509922720207998420638454313794809756339297256449810411234883054587924127764840362294441705253509489104056487611323938929263211074852457591014621637076421936640655037893657294101798490479885932489004785420608521823963930818937671368074857665551780118211967945260129201914571045292043718567394279641313949414150065274132524550252076016857457194677857469796192260288439810362798006126783024616983811278556387176707998756759958897284119636285987096763293801541634099022554922390038256583066049996608325917942174213837406532880973324844319762866546644086639671354536854146401944167388077767886771099363246966301977199628065533590474848814831448615488618805495347230551583747338912876436561093484848802960128029219937916737917708137494757872155606986706344925644306640620851181732679675876906816864217779640223135360476136307255245098846471580190635216078856006656930759664137767347943954009914740575023213551060836621265940442641392297656977047228715859329728970909290184127704652961368700728311079614197456874886244452481344017452562005265540672841186558549396690179692593008498808410151579947230143057531107320849558619006998049810958488331433213502956747746235889846911708999373402358793527433998424375894036372647501401902782188405895756580412119219201933914135925974742547748557784420451524211131417728571260041804631718015807768099629936999345757630111994244834963040000048324462659047389212844942177722715257070583043164441032352001460915768892524654868214264944284887087223584078312231059333455828504833036603400253490662562737000554110398001588922106766450773856610592565742714777534888228041220945093641816708895355143251403476057890673517134602240812502254804951719516797492936055143466924821957176712260526133107515783193385086159682185899211412858382407855541427936867937403666152663255807324378296973445774286074832559714318611290870948541930630705244943377673728184479802547229467603432924867040877169105881061834627057278592331532413424306153777851654925715039349207783685817670128686268161338967444332692723480252995778508800240512102301757833326624804497512955527608812538034106662848769923728905341275768673374736055122467221531483873455383837892712810039811731848619703500539287008495400742018432100849357295041112715242245756267803229971179586114475790120326519135101919882554272243795780359673778023563634351546843362322412743640832997423638227286142181950508735597353734326159532587867443154518296178079909271900379664205876184317083078342549957735185557503944922390702430553316242776436906481723163549457194146896417900200403543511464396682296651910553118848516745824424730468697382117318628444188655224551658818201495470981533464299856654216833088126199206434079883518379177325528532136219308111624830685764545133052513837857775000103120116430288266815093756296113550012602748987329054746985389805598138297691073433373286397831180089747109859966805096280818852991274474197505410702436320983989193707083422287759452552413455508837794626158803257502561283695266236805137906583888997397577180192811325130846684418244337130923021147099182370275562517391102452838050251716526454450101151037737934560716938014132823510550094762500565232285270203198527506027006383797016188803260464996544686268788445297548450970816741132683134347471794161893749318145760596082187872981129747469529826813936527497055133024656625016132994254004091533234285069982601179639540999212518124519915471243965031299190670936779575754889658457151139909874854463923426232391761010566310564091480704412659632281474736343441154810289286526756948368414333632230636924358596672070648436249033560661315810513504573733915432372352109719848598548311612350313369137882007446742643466374779472615209457665051472493244090677325930008254581956923888291183742936294659966800251590930813081711842022609496281810071626083482434808970985728991931676195742784642979351469821253780629275477509326576921814873065335115444356491224891912468516522871545627771567551849955942970728122016582098891138000613968218566183267674523757951949180103927276215342986355803143352477231030367855849620801514425112748049325845902569420542282018535629109800417306190077542982058739984273267478155630854440774018519360249926801442559513106396828454404050078521200380980158073968371094543488364585257278645561438911601292702031572567197435775985461074090360824140202974809391753412597861171752593845506533104018683773647147797688970050178873070419324647226718263822780470279005065836937806548002786266299150367180424922260967512079985982425531101102824615260123553848005807464556777115532775356627968355836757436302378356929505438283444925421283967073301989970375609193170888780573634218129161697365583796994526523290857613698940637537182391542825079290451443141484168240940450029774707740271381777051293176729209673982368818655273233627901582592415441804209420915350936958048714073525965953406970788918661068906010265884255190921416002728244347501362965292970785030277275075500030423490591739760660312387492869712142930010564714037346732431703311084081014751420675769352036662270935333419538611291357836179253510856041987717630455558576976405703715741620248269552333220062152323377189805325396101325686614296158460430287155855756368499320702516081619014039894601874121986621713486079865954438420908889683814584263293522052953409867753089360380179419120362609728582197867781357574518942489002126985923476120011385784104136968075577695383392793155481899685747514420898510980539704330688526283586780858327794924070536975980598868628321895191847918610088216856985372982111356041339497654319960119243162555457264609271303580196435677567778782565996110624783643735196395318430701886544418420403781040201855120770395184474280714631881730160526456970622234213328117543565779771952760235547917569218468240090712257884162231585589280989732229238581349537283002708310594354385958105250933393793494803418715575359837659034012562761721218799260209442905109361538583736382271101343180984616742924288301861150401200035705216554137276582105137477968115307860414058063131978439195248870605694547471231461233367046756970213906637094685818503013206037522731853400106669124905893647699797181541206921358028766013283936753083692238295422930233523212051650243018894452771353759307745619031020234041066762358719877806813993253245989480051432999861886870532768236056897602037809959273632081536150444929362051547362862556109622721802892494438680427076570720029395197713614782274997791699147694869401104985136944062655307782988687977149689403517035510522582407453211843681433539666806675560327557564758557565545367835904100567633643636241190249567179484122048578559636592087532358186198159066030701010011916941306038328452512776129327287150032926326590875410940072989022662589422644438590392314876275981416679906096837954122801075260875685144937500219421400559676252701509015865078142850645213569710959293098456840645361948723632384269337831418529233580811432671123092299694933926668873834106761181854325330007451642295077276273086422418291380550803339387693347524497462781637776993319823658891665239997837051301615619545759987618419559467320224043662227608628034385053903552327667992583452848023639975910847329512219039641671747417775218692095473508918955497524472485770621484890907786126455946783668475607397493565914132717119791554839069938569943185594070110749693083183043769871981317448503447780697324701155774746203513399524290591444697527548771138545788851816911980818322475321459747505287180439340783314341748372880212324301973910935097625169057902852438144877644457413439571688228481834911763789353630454278800135112257726260850552667190497916927790626415632014394288257231889652316495547885873029765825065306365062868144675817387320936650709641437903895392837872343978558112592870052853123957898853089317913541305696273050715223153370564608021890518136961041165861057821488327379598351153499993737556281781376295870396817120084902413105210860456680197597732336172184496750683589124457172639958201721682502784064168871098260792659363602814620446495424210891891777280051103731293264105969431663017378511940096616565062640232746356548109217144876055825750770444177404540288676589190734538465588730043177525212058520726053985643882652159895253615469022782155179370232094754864156502401885773445185500525742056770050716756923914831540123165455122059630711986127942506773075281746276758525251183663710135357562024012076414390129230681824141084169636075899133094182284757287628810501409793787212694224665933682697196077517844718492531680426725658435555509156223617169121222987670855425719532319285659967304279783162071775047374690065585444117286562778997970859835434828626080844297844484468190599082200890758839395242517653608526541653830236845256280014428969098994771450991837077978515071357332483504136532402106945500154450653110815318002974324287086652984089191421846139041139209200641245175460289263991606253638016278234453259798309673634056925428817069158226881131878916582286177471697211519039617768579353044311159165838771903514552831227636637295378657901490281449298715444181734039981064785788571741809741931767932725147330148174331318836203734430938156277023786447553534955604712002872487542152253652748073391587390799302803303247927080293415194238374517083820665185754890273877443830510389004057455655059230672556027638690706766304816844296510204749373883905888615429585463115234781112467982260734046993748231623752352094061403459789337221376073891762119945208852456593838463798733922183169380389661772448442337841750032742597924177638264073689163173463710719357870949362716592751701101470238740055108750727191798497972883154941255607065755486635572910016771876814167666039680251675717675430632086701423564974817923255169789505604678192966031374953799941378336646540146502316113855744569397341865613807380339210035329058287202164814533898565630127268067867266651101277683860288261204529470679718412123156243223961363513888479889032998870593923364957483606104031781195108126293840522656181409719306757743116461076774306439852312203203837525086244206847163480671842452250851285106209663866078256236144435043829322300962285625514033461892791317251954779959891752436749483662544132162322772216008630736859412203501387158090356450878199229638775090856723162962745048521370951669362065991729993371488406083438329895699047267091305056000964648638560205032990310187192618356651744002522499688060527188242467764934449880318069157039761924134765563724544883155988234755351923406164074703945668472855989401818186539029882707784867615535802100571201878266554563090594111808868055791851816074213519138781594831029417559832570747005559610580137788767878239046724164398803766248378002491234541782812693027684513529992658846886763568926812687138392464228940737646476327683803861618463846299404615027386906815401291271834660762279613504507636445146368820806386647425632391239228087003587492975379277768820460706384487381455729125905131462848141669472328807385288627781840217170990435358810456160430503587370342108416185582668087001826640042019319546883338367365505228364755778776419390302867922213130659711020395655745695388768290722323607018203280532230645749296805110615501722561987337098104727837645426447534259055079260420784448596945565281181346344775547021091063536254331319216569626629633803618338321916864729896047085997633360871987972667490747842844776398544335202399882245842186323795626567398996858794748741666875953613724688925153040341928175344159477067955722798397862343296754576875251549100931779376832450444261373697580701423009315216918135080737358540232458612711568609659778767927946883932427641083421994666752157108385319088154498478311345735641458238557053396519840786184716480100346913832102535293917639407516530050874669816924566681593521177153331930379897207305569325307653892127788381564778586014065503154992303756222245456437119223196472618020466174676126112943003152187234876412716876399955394486352163323195912219096005900529354535152142795378603257068398183948970680264805700128667109865225690641051626490376645851483414254963463514670385653641134690866077762280230878810932738205971824908396753943275075161648544243056909407217539860934315029545725257499208163068546882438580670338620625473264716076244529589812300434399512255619567145542043852136013931668034173110566129712416594180592246343885586364525629107526058885716411189815815269280651433495171717649616056860836276621648801932037017908802062240980274498108758416201965395906840088769898214043063834018299898115874005267497650613135468004640273971863553418716668594485134304421974990646273199386299119784541842457917494493754163810505887534344567350884054749584028090059263010450239584031131575567154878276460881275729702512655957079798962948672765236002790011970294457629587894022877106467343815797357345881683021620068365300448503756792452683699553776889964543168604612565625975748352257508705476605656718906570586616488169871299532176056905761252828012839949898079290969169580684280495609437437541782441540277045028637447638058138305335751322120432403946112365850392388453798470649831988615690091435085539090452066284565126475244829287486391816715168815203822045751948211585467670678359165971941054005649319350416674096031845405268521592332752516050866298455610612391920306309949230481069980169685803396205681167941034255601049266221238479874893029415703003790735443267354018179538991512423069340752589369518106955983800255567711719618270159223680511021480302413645654099816943328212409162632907504124244678507406467624779650340563312878000007196277809550688207468800649718167973636887421319106059347781196453696802629715395777793284913233818913416557611380818049723482439303736030200369453804897819493561742909356696610095095371455980546052584147149359140876775603361089879854071878781887910591420634057482066278044927134740174408646232647565449449549909541472975016572292122632372276601678824030442559869335326925231553262422638080506465980403335848462290948278509612357049392815897350547923201080261450229590629869645360814134854792026560390056503916198014150274437988953538091132316610226809419597481130073887841889920638220145454484333116694559201940732995171649546600214182751685361022166087925737424730024731648460507039831883222089801002023569180307847501248139733526469854197382369273401153504374328478118098457941765271057430636361444934597446648824623739166371024919152994231886796924690020434055031429115190306368195952448483575496445682409643682553971419076453142945223471759956161415151700034272945895545428133077657461358816223423241863663618772504571666308726404179483316370723607176269694452152198760541872324311958622041043730427497109272456342010070078650424845411216494516112914520249165810305021547830613037507772901014511567986794800968177142031923632693908750643576583933836694882534618312231572423096612880300888589609588052811763505308460547832446577583593676213418558125350065019266484771332121701224644855999802700807445053299805713561258193820151254775515114340622419285289816680500096583315421718205265984297877579023784403939835712707770370270074117281783048809599501710126766085976180395203777832208392480486737807127938062995589516710693417085058508008955423413948303522826608164420975863582952578804390392907376484244176493630064685949519814342846839824991836544154941318207083262146906022954621922830820683565872196356321271858081280505927704508588405043489111330513738905659216059174884467818393511594371622758611025615172211697581221854614821134512646950469390355373099454996582894854685026850569188562033236065852951793373974868007062182426570979027597705875907764757677125460984557059493993627634063830928992631743703308793264513526703410372624284435106551121591245804692596938389196288073347747366335462895016511755059397126574017716836991157152144122662199352130119856142515199462942320877015833412735747578651232386175516587646177722186566107733386204210808868032714310635084006909875817903607269996258713467427823101908949037790992376393588491701933650850957989626795545903061529894672248666534551952576804305092062613764426773780022693587545156165762160190085982667908051382618916642042622264748414186632613681751358373820118841290509455192243258580286385544558089060631244571430640978519103194692796019282966535315707524242119068010650165903176457105443389837076582363078678367325984033361387618451421267486334347777291756329122743764861564391081285224207688505170673713401349767583492572548128805871495134444018054202368577812163036969405777574867399365261340877607016267920549546329291644873871194433955532761113030007724566556943787658192523480590015065176084940453044126406947069419971637716544097491446336658906701812920007946384737238601204109605325365063342630346682347092255973281733480889693881290260166104491386442927336698996543436181256097989409266760650923446932561125083060763281595979089632715004877916300045465084881856828502677697080849865291856510112022701457835922198441420045130953982275162233018109273142344105153978975655682513740163078573126964828091595340807452350955411167001690107338837421636915623016529409553138503644188103381940465356954279797217600014278152174259585365580364464752390736227017023128760320027595410542371819131609324169828204322700754447704032464726847280275281806880394810561860965282827130224610746917812950064531892539164144816712639012712163161402934125832728698255725547251331894250709647838660100355153738352690997298446186941318392407873169499349171915326006354861426168187757396560474510986759797032965224539595680779170121518918418073092238877188980392617262068459214126159138321202495514414361722302435408015067272809191691945515330726702447132107139356681241654746056097149753757312338677530470420056512664603338290317395696715071229746153495181955542803510646604969840180588022161355264698818799845175040169357200258565806445911368065497923356685651614656895520335482347357595891464968752104279146395638363319069767696794848106195722714933440357574689849250441432366536302395498682472038044399191744553608753578710241923067337062537071338010087430766549749589489956609625511360857866716104000561664189798246669917604168883580750213927547627239006592631850304208141822849756088195666586643516810305164476354229855585956013524950160352834451534615509487872706873297328823227674503885564628837506665691853192060569299565843657635624477394589687061259738633411906135319803309321353259433798345446287267574366008842361259967803365389286113101253754554902868142846307301624573816824658080381646777171588615283167843505133614327700838228188749813692674730091016285498240582586254676160599129640888152628047082027916062287235888848607502563011236465504398217856319454367065747552677967855006662566278016828336173515099868927315843927985942929285571171357592978919461797006109771544423730938671011742996787451079227235409005374734668887297895232476653709891295623828173101181391481955399675089076236413617619570010288376947776158534696662329197601643513652033933111165591917327128732246430376106867464509658214129346879397486141047610852279284081620868436605262887051999578571674850073618840394929696572074909057771207209898727820309074785087354131888126839570763276460211020800445459110717931831312323800482154915258392241352099644772688546197142059084553833638252848077441152621185676505942548964123694945621915334195660062319467598829776355155291128436282827749943385849191979623236367075387022955761562399201593127273820752641411890694058883005747304337353804522880430190168450148321230437381368315347433799870432884071205553705968509748811415049050118238032355853321063892848341981367450584928025892448256455119084154262106352016854187067208275696217745078980402259779344829534316074278106733162397845740058462063170174911392880988683882764943096434453684689401524750769432777937660674729488380243015441403826018138881895198582438830081481402678324300397419249281862434686028151008846429601508989648586254574605196959945378919878096830299252594290119682370737364686890701714448894128752990788668442644067112017002154764898209980340887116692143661036579374411298205452065674427510391351142468643419173148033809500823028062493747512142716103580417428581471436940539888266154617011518972434559922766677521385488469595350879829804069058124941786760241185319431870424146942386304648059439710847520238318257080653478310046634478935514165319350352227503474853318950519668597062209740685098675385643948876812573788437772916633286923619705863535128087199429281460637141890970621332047900860985505980551449371534849645140976749090063976106432069279809222084029241836444358210078389437744322195295372908165660742072979889280610692161318430167122056643720788827505324309147856726510422837199557833609297260992431384915585301010534680512732491318184589548316490070077474317034130139966500662853914077624765168020901884952138134195821756758764753135512599158057969636726517613345618262559711382449681458436499858106190354436528924478836059424890627779952927016934649809509853735731293488881539701029479122209754837936390250348186400968216538837972744345145486417289698725496378588610212345337864710983880673042135505749953691546674352029552740599848981784854046822295028194035655161369584739941281363222867220746868866448348527574122389798085997997243370164183659848520613362287721691633494370013402430717784609885839055878469111689331033869131870029806058462995412217891522371885339386799155008548034391293407968048067174483371943979485958824796190346960284681688152688071969619589771863768608062588213623723072063706898999435494849482627071377384571738101012369487262399836136037115486164926153663321533146355821085407283189460729288976692043900520263212134590895720679652697004663572540921392059684290142735328534908129305367264500624298752865893226219706962473637667617405721101813325579916070236308840824537989582346221565535320095228851446500078499346032503659606834374234812750685764759505592254020608494775985369462148514671934801453969510617559362705384562438112530189645935910685883106868910116891424350535538528524066715807833834521266698893627243312601869917818513607338246274300921139821865354676065499022162905344002472266320871124692699481672725772326099678158880527737031482387150491736402526952885141133255169588348048871727419881439878364278878266214760413422333045259358037164083455199320225864808155432983086827350617007844507500799807967944340342559316781992460429665338880731283537879293793116631883102218981533547785594392578974028963864084872743297706914032670351316487666580327091921325700738484243556076538187158492364440188517319049353737108851957370200182311950872056330003643699003622762543323181153408978548493076172411063589346639507706592986547456818998793230285715604463023007100787653884279993505577415427358325421087999149842924391031669219778345701042116176045373181832578474017847528446507271999649637325478317435263757710468721782872850695664857969283357770329965203737727276146510971608939093757203510465363982043114673156083752224384732585916772686125116594023577778808356623396966551788972707898803873692839923547764619550512645043468258114588272497654976148596480706273706372963185725823260136078577536669406714428432870607751936134293065369883933266409610599749719325111669384863578357989640868341800128528079087004665680232909842041708607524874214813245759851134457381079465835737354520711407009056485653157417690460801694459785901004265599874932639967087156326300280839591004811778671939099086078799421743471291093705906210152273434241146280138100554307936735511161414770982843766534813956148602054754445002321548247395635573337004775425442515408546826800440440462815529116008233094346516763112662685634626308344892841604215296138453807853930298351601564378378511463084094016706277110789446206113944291113575059295541454324465833367889214395226859073615765858031378504175184164388650844324365375893257815841790139441620991428549772083268555979994381168547448955714794321900918225744022379738348674393228079530233474704077403067360963265292876952731791314851021323497810340410438595429880803743787583026175261997847436842133933011227096348219643122446852550738133212757004327000596363627771278634769427469144536715946745595198343983521896024659325977513473939014332802763232446497618057538450142075845704782571934666093792819416006612464931892486831319499364293037491347301091949714942211980250845612624247470661267400012916274501381860176995532023202378882572608539899511549417120293775286225124076184584592991306434352347375339985470693299808267643433687907426583423054254849652834040174571674680957290619658659833022077684131876257820837910383853897769591712869299039301843650925774140704949570539566424894481494092675877402427973903211611857663114067665694368450400750227168616577700791655284680952729571383195389849050510102399040834109271013334743913199233681442751063146805366085626750808726579759777735016310512016741686310300614414754295834968402427939039311053757198446745437019397933277402203050424434200587349681746711607479553537353823300743108499590768545277620677609760624465938400881787377835005726753464855291939165331656158750632873521889299200063478578345054232172907481629138710279468311740157221219568964085341860769606802213687552007656521726580884198643632958337757883570534391688011222367034008924502067007022995017847902856004894838621187872252084878199422200073783357910122870642017018796439136987244824644172012507366155896644093004994885045862400664918886226506480450597205387316238667031111731146479566763158429058053768388976623978947833281815706262749861826547709073759830739089455685188777904085873342534863998775618466360377136892453542786296717404576258087452200173043484398846084044735635170720694330051629203457111864950574125411220226372990522740885703910029974039423494948681062624915799519210826663265118533774255413948335535283947143184639733897766060884329308435319111891315197893042914385194049714220186327303819024066155343765224031566275896663153649861900038846707075947848509919304145633193869107506736862500462148854501743238148260876394862715572416881526995470019900276239291695853811666992459637391889972996025888315077087443474272743185795434943142572643130763080329755100977503908579638842150636634914832540592451767725113895198567081946958137390905472354678193299677145926172447698600065611321614234021014574791258344766831727174394274848907632882826676309315497369699339476690165111818076207802702378269183027606561024741156866772110971445015812267976742092143633041243413797886360868752918217240134465683269526374261277543842360813174141475342948853927680590874616680438158936427656911116531220728586197932204664313054856007360896600805053249335112996271741207487048212049231682519795131391720169952397351037823094506340221089634609595170609443508251966311292198675172347401867036673878536921425338174461536496410333666558534591500030020980126017735033291674753681369760925272091296126563114274955875224815507122753378472559830518106512163582885139478635287478580822089487002018195844675498777537061993336921310674037469841940705023213830521930391587268092798615441669939543085709096629900975793186615151057792303901072225646129463652575405316612412476055658404285586363808430977009099287952595618441249272909870896226780364142066366374400070846219790931948979903022213167570989147761458671474059425326716990885163479219057383011512645970563517538134596136021241931686348847975209455881309300910795753612539024909706454288096469167388429792377233001349533205608271885152298668732429875644923728770020219734579857642378051513662862442759046303272862265671836708920243989764779714856758218432652215496532892960813299776029668274474339870616151660865527318960301908728955412225587143818516616257105810590937921434774375015362676763309361583602135036473886614159028431452746980696401447037400055567288123641705252602714723052588676309524822289778709452290148467013583542743348975943309762729451180538331033422577288598980466928601238922199701183183486549942629904571366278318708662230986203420524542547170582066915002453836295946219180580489015336101997347651086460339039824825270193890087124340888524356792456322469848981959339384684060465072317362860058936007337884332847809761669775373828420610419224793223384072800147948729037948254037262374943344407863274550563107151492383454042456936007049506850982757517613067858597399230896669240651898219682495075662234640738811857961525983899759825638816828583155079426399211564195017622726349753880296131826258595025305528266481423223860315507985297152950702986324710694254278374570154644556346707770032414754752376020516504582270384088987969351535982190878448341132174181129078913982800851751097767305211790282611672356654853622956700501321657230295329678850905007825627499674901170243159608833476283966625102619356417324444899974865663647975817800665805940322490893741145363592839944549404224878327473568677510196749446058999472356995182806841756526029971646416503186151445337298535003724842270284189729419310529286246217033200840020985941968710069389027614145726088812527069164165006882659703787713235334241682617772325228859740297852828045872707499607812743331516787155181209745708162919499279605039234161251069794415493908719188703288451365242431220076857390600879539838618096364278369579706127203983038228417479098467884426940436496532380289395762770600021401616423093972091314222489894796646095463807928391661771832005358117347316838480522587137382007317708580020863355102650638823058067580373915613258171096074591591167386537919697786494064563491924444412741299975116173166877468532794109902370945852356538873927759074246298901886659219230777996095947448934230769461849471427616789529675202558189734404906253845626598110256596854042696140296804015643146408742127501546460263879617312014604609004643011108272715815399834138958959169589638345599476754965616178466290607272993524107776975354595581425463277345155797833905937708103349902991814519485156679972200418955944013096886897133434720707583402728537875275522335199645416644757406073057010523938441645388748149172955380131366224913032555579157347510469843923380070857263444102974985518435952895910480106916596926699333722632464502652010048665859549449743996484736266096194589003196978966874270139550315335072007894244975145601963824992785706859243311098767759255600771417506507241863419807576776613892987977288087474535825524562431488214014122603773678185833712550688483755335820391812466175896231917676369469439388031991428708433579028948418707509573245644572770708301423610128356174567007148133721044370917933578714175954109298870641675156780825423457338140595299580887985287704116132994534594470257969561711418863299026821930075610380886656646971795554005193694999403267421588568578033041412254562410960649614897521082438113013702876972912755711273385108221663677937431854637606998814247157358559425742151850694315730629187659963182936501152729528553569999768848560005528088070088406381165901283358677813698503490458667865136130545314292376962303777701800361714750751511806043557080404960579029397137850738460713009850844580373763736088244118035568790298100531299729325360745444936150688818237583894210097246315119991267144610135057465978516292917135296070346888477750711725886976801293225254774322450798082998740039870237620015862767820460692426454883917276332431023883493258753306202721165714213318365459907870479423389061436510448203455640891975594073518015945592139068193980204775388370153302449526572361061929584597429172082132403072006285698923222331491250256609300896702135178370315347083037806518183742217889495740712081312746192880485924201189295934649210182778308742916039830435063900801333622719239520936755624775718291781107246826289707193485043778622738180003680359510532744283928282618823029672180420504459826010802383129327896996057408529925970902252414105955897314177153829151899515738453902177874122730847864217794098228718022221897419094919482084168512448386828953094708449740458963746180984018018918410593497235102023108526709530990735012131618341580775815016485560457952358059094733470684154296219378396293443653404628505714908183326707932160816721382770964673242903630100964327310679395379440432218047945546212084145025773593647616344957854845145534423776866005658974650153631817947847389408310919998672473861067143704134690236016531525651862819330535673511795796754500037461681640719890045889190881193455644120301816648837353160521570216259495463000350272546995734521353741010220546967909063462132137729729583874276387536291530845005436376981721555861212648286860413025961288529751712976127933213904961762538625081226886434272164879852190703273359288212613288171614007139010213190457060632654287365523186413417549369531485557034209592730653029953536638619560483068994368484849951995930009542488214052521914265111225771092343847438393662728798312285151961422396219628696381439487481737071793655229527747979752474330325406713640959687481518503919753632280677642884572189584491946765270025223810550605086872146877155238743395946647343702202631691774917304324617920634535613527769773662855419772797755818199836332224031979205046650600052811694127480081821271133139305104260784482231703186575337021701634457361629988635161422910369818721452167254275297661720180622903940358835781505733596939848797730275294119395374384161217259812230710426204981974617233052912338615764630381723833670056662913441408082397490774571990129764468306125167458753504506402491065939531763011470222255280619298494779837764049859910000190246536104715027113981440090018392452184634781878485661877897706247643290955087876426774134140629375133376160219651985402582278098704544764119591817753928784297841530317473842045352829876657275258392778277206920985125552502082975368430127690704101830316972821727975368873435575970650177164034129119444290321916468350961776159311149257527044240195556257791992526157638616609205929482492904228772194538708372348014392939712809292382330165450989748013458262243483780324053942724531394423024083565850121719456662265464715147143890834476971292617199173036701541851987871073115276829547677422304235259952177519902930507581275045563875681586393755114035048434590318495884375760648328222579538393463728489822125603123735137023250022203663105014258014540029608931458057558639868423948982495569891043777058723400919585584035581751489253790920724839554799512212233141405192437579255051990617755667553168952914994925743810362302851874366270425156650740644627546249512876973558816481168586527301412957517771452665238821274558381654671669366729383017650975076409586073562531140893347445335863841618310435920578901451212793379842244120637310494417944611638642034784989343052791333744226587717890140703220236279132296039006508391320593032117839092207664224997846136760726789097045366319574152906814604032386031365871253650740692834217141734481820251320837407781517275238503633110472372651154457865576907486936917449093102340012551414975531468764898694024934202679451915198703316922769782046769492065924770278617308967204140031875419814964601630665134941463893544672795255914401740084065032898678234557506570421220495372723399751281784070962397808346772446101339299533370958443968583333977013736702123580295591078642278669442969048890047782215318742105855990484937114399723149956052987781697805917160258579489306192628385969732013994840139527039256832036714160900847497745837234991975150426684781661793276538962306410560811540070857199917615168603446501840711445909702182513841903865308825814772597964695518976450385527836557193688411379151933622371513925715935009523274804803309958663851979103344522366583891324228933897721532425462016522613039272851822615343322944815127241875347541925737411890162764279797095372009969391115932211110816623600940438735900422388487574946498554192451751958547957152519510612646474509205739856450644196231408986052327383310740654580464177555471827424808185522266123238019506713625591384121694317933262597425211947503093936876342537399104448344461816848797136071846153369815868659415404917741331977498474078511226963028118267786506597116062969062993002536742462283929393679309663524007633538728097588474826443403534771006986497456165887217410686272352617585832787071511270515121618019275724639211355528925245468822917453499174581049202867962319309297113799882449426791333140774979719795668538411097442953111651942050298798686118443391895327018890508308195023751190784196190404335299324492986671000504127588063078658505226847116597249587955837585839310418990020827479633496396721011170222724347723967151261742946671085392534181789875360324312902914735075150164159327146654088006319219820759717265078883684378698565215018138924845040132028664621811326749317317325229876769869132438601223605888756250328942729678490721264729174021513718837117857974428890226630365013985227989656474541015054961425440558345944560576471081551045569085019686343306270347331467499697197751957815281734619713769553976179674513718916975319931010323226562659786725190943363148657942733438581373577422795103269268321677927635174618832724245207502320673433179245220347291980116382164045268436646684772615569711630986811660923375368276020251389635184631608667683621430423210423636325278243857099118929821591096618461873919261144916814624739164799720366173403353560295911130750582761215471482609438524917031045543092547683030139983399302817660742190535961137831330937124654426455916696418640772468786796580276476800327012971841356065255531280749166154821361632806935726172011960675285344867373331160953952006871795597644441142910079282418049455440953695654481383354648786735054334875443406614177310858885748863959012083726989948566277160938178789182794214682654504867247968827833134878675137716657430331755478320344020314075527269740855835739980836703303027857935236607576291822860026414675748074358438081245560715110514289342833868084773371070046329856947492493343302751599214860577411702576885358636503090691655688755756721050906652773601838752141978657716932678873939035178699800059280300104554767983130870966384725691480700370327116167781166710830377762435051286103327899921381439991983921542360568976130471143067541804524279814764754298255569037638717267779181951383614332779912574657163923691803962734747710596741006104070682472157190419554510275880938149774305127012511515686635555159866009652557158479593124647242199267476482107662643045427488512872199011603605745661015644570589435252488986139629841132149724878625767345409126765623893648619241744653045361886082062103197347508985317837199547621523090555696251331601655866113067488543804031359049455858451831917251850459265282440455896221945501554047214275543428341587350181879948524624505377864409477518275542601892530801857973433987399306318385351953181934628389370737847850586752431757885637205258528515264456494437054458903825710374216012575268590782362547341905477873012637350493173653915078201580915848676063268179124701895247215473488385815140770052310234721027619389828165015500229579387739609947942608373999556029119402110897009818451058189080549043648887897146728550931006920119774893701295503694960726489646530428103248249765819064860528934704614864232808258130135148893386802437974290022947014581405996249445727435894262084308386842118878056734210801239681614150967099284712232858965317885252107807909430633224281656648703880630312176796715324654673671781284032479933927464850932223887209701744950176061444044075519899047977951246931799657683574243664502633165559589695178588208200718864238483845443822056667433721811658877922540119961886707572817050307301460910597909011410552785126326113500420138802217648698773657149695179544052550050497713683264254516934623179456880693920682276105119995485937660614208447395788489404872257894547653942863483464705757974450037897142664172213256658056247518805553014985361196045105929076602996061872417905281568772729855220423072796263994137508718504032266768538210076321349518114004815187995604725007368883891033996209055725678967880195001286071741204984558320236167862646918536030538479517651295411314039791691885749057324876585592278220680602152648882767433673174634494887482821527065223283292995501731659328949914474418291846238308623244393742759604368571704954427286288431511802798040099926607940844510188545612380650993802289133386559337524285156292015437195651753615100121281885860772395233403326709087101725067662099614385810609224062953579384542860280006731848590421088357118079347571659336085803617985317726823199238537022412270081287441541243234166181856671100780061830054630928380680101889653965065324174417715822130770413288443766233437020318110091662729597855847864872936023486874572012523446585630225678263261681349007565931888921391937934297047711336571806518766510520688503833633058403038348105569789138595511212054800548171098363987399196637344341546536365115561511579861698622732255095208256676747719961583831718146340823790527984213353139884382952072766841006429491922783670993714342447933333489168312171448823055816243709052257408640807015211442779079953768062837784959834565684487982512498007608879782315569303184947979033478223634761469312549676868191625343116877171954267243276286224791947038235542644955467084996487247257730872329635600852911974493527228455424874449744294425894358675433607451560520507612477747222163167158813791775005415344246977852005590980513414580405880722291274616236552033192256057294189069921842279736103149822985609827374972846365755344256986933298243905868003598906674348708537653419891289949660489342684272283424972584149392684562743191241494875188360282883386033477056179015944890723497495683985788945605129276703128763487062325664299226910966534517675317050259626086543960768270554333296528778641255508815590651998264370810526836125665394252775198247347708201447391487040997637496347950320913210333456072509811504894788658432310210387135727215305542774381074128138676838855733222782056182285051397135411081787030807746901306552800219552429966709681291020949294570367587502576561867959023178109469856869827034670434748837672536610455050001233123861921956296945487527342861204714037297888984228228769416587650469722707434147428858067768904727771176958225150364721964608993148307263335367302012213655291657285746506447837720606849860712122688539015802783620461647925728499325366618694244341761244189879520526049593103842804437977160681124364572154676064582838917506008292179582853091976660605313901060110786417559208369492643525765360377319270281552888586416587061170082619218414529415682193840963508178601543902770774442634662802821882578761742176994785264719952769982819834088188407371654159192289872635503791309056892561648121351093607487607613125593169370306878236499620255119766075748079194793834641091909118862418089373784448099647172194883079783259109132846182228010319520428396510973051378099618472664246503281914633423871681302272252296395314816791888658969444936543198076390650451194460958071467119358095368320551912860144682952517235888889072179627126682983911708701235028726543697376974111642198893955668508677819102605049752611440313061586219420884570359894676482021280480567091427602842843114760547403705276005755338379456159155449767262247471460284727469535088700650365173267714925906897142600932278709786742518775322894926720218121044892070223572127161691547816396715406262676916049904710228641436721127352666491032973076501844269104227219851225619173630498383716028149381016660784885755788615769905989994105937840240985354953254667262040244972519078152782817562047241218935566582321793377971036085272786334646874205988167955248223507580842570177635787132702500841327947258099933516007399143324714183987105454507204106220102195553513327298264408555128462894014347063747760686096755127282853809617342848176608978458188337483553455472067516508580203957536625821505026877835925720350252205648258889628269225059044073587456948505274467816532599655438860273788287958482356995093662841028736098762774262708399994995118622762790511592163093296463082336010496263552320361523908153125868299781558759443257919237061418718020157478213774157250360954893558294155885247188116282059169742702903465142732120107946704702001209437368779289607221497858844593521425468518359961250523409707399718207011248135902844881952951447781322623136669474251645028852006656007114539157400502216999064964530004302692557067366177803360452950894103704647827485919854836393395023293064669239607247660077780674339095545391547652811048095453173355431916056692634565366018505146458842147135826316810439034816926147070996503422989777528962152570191492336352480808242717748299546817540036696474163196166908892656592389844827913233781894830604928535992127774681431928535665025121584267549776450916683776310679297884691630446542642445338686875433748817272285182567555629252975857740420878389462287149787101743746390955194224494555382220959412144589359535650899853212376338291176000936350986732214822773451182787701961974776768828673350853089219222301848216363464423951395774590095690769464106951702165026073093357599664331002201847081673689378609101932380791480884303453407154037736238660413332382001387770438754666760046669796015910915995968746384031887838036806271626860997737400987568631520585530381461158160877783467274508944358766314624967632527330492197330878580233882609255121093551707570531940628806330896921380649317458006723607558835889070934970062395145805162194382508659480937700640379657292964543073919310063997170085109623790784184180912235113110313287764667675227420281671090848755435696622332180090629449659613953372315658331734080922134345152287223411569782088281731804229896462227628029851281678397255106599936870805944061922801144444675438637683185758946494066548728924256276690077101411191195396109951382873640562259694085759296016757596439354738768911689849111446822028913797971247218693466032587743742131331890921380084602975195238907893430460974196036992174648260305004396792134284517598953064640981648819848304640259157950517172480685615619652661885350233620635342552850593815973783201020590061323055629481736650507857948331978174331450102523693854947155544735568394783448739470047356401843262394874085171827828563262022032005802638160530695616933438190348890000801385778689122763518344424837436099124270075281154409962232039470134227879233320681927180265797276355743682869404861215689591923423639177223837901134595079493560360619232924172370626675707575144477710848975979122469598275733388306179738251666623660153455652749604264808846020621457260093370364758741628558837827206876835248939481696366257872803615042399177727103975223740742440083579897512119811825926140430703968031891929167596689278600941427669888832958762902401083599414699716615758822743850171174452274024420011655741071007798779599908012183467189731552062963193190091532262615851359490357885014003855379238731969633527599114240814110371342425136527203483421190571864924710419237828574504958023657295578249055447680160324243122137121261863578758497524930060298856007012481222439699763337154641226181095945475994725601226548801420206644395190989763174808097691946354016905842093951824916552814897800807541026246847645953454290930298086131809032782746997124826834825457339119494214726215049566515098684720791743684588309490336315896967703566404636005567652372564422694571250755768144055046218016131193896381780038592365077908729000023124699865234022842821962503044726390579275950444375035403236172296485133243979154060959707560406335562575075561625388400258864200239736475183942561815690029432056553630913733854208190755430830053086222214627102908834347204828484643360940544243708860360129183279317586590497703430225856243867604950746321234445806470480121274939697700151574278923605146182356664106332414776205611048264462555352480452198591790580492067121053087792624606712650682963022541140228080875172277484578874312912549135651311929241378781499294640268298440440011543458126915659382797848057904876263643051551043073315104475920055919748821669530620161050149366836986875370899316012567403210412121222886237933989046956121056862817222856713769580863466082011009431236904282948109939154722575599329440193372740351879691865398276256602429869220225256430473912712436865454619016534670159833093396474062831514698088975461263789586392046603609209688326674779843258788181761384167878464659265123987430066617839400533240939390751013368928469653838063281415373017127368856832751405767552693612876504103184783949363455894285494059172382141070246483367517954010663977079294015615357498809466084955256979388749436929365320226023011747917960850057035589489863963434086608674457340397496400116780328547494361181453957575680672094954469801883893503776428940128696433580011255712773620053149484654602864501184179149398733509209186729441781132198744468536069159705623694318541789316764763917740267229090140004467239524241872879091774135555942010959844955901356585620376006424701512483925251487935593393246181849106821410020029330669635802467048761360615135788393773101087533627022397370331754416444566486092453992088593920206999729953842289154967557909989257630297718763279496691977841031335740131178824324159087701878476927089620042536298932247906116454906752225109114188059687105249781259507399378446755104450774573656185993383189709708302393642239549672394439766797860132239831527604500607265358903235790202471258319285950894878332357399129241462580271947373120403248018406183988414136683038721250677788448623954580073125160952680347596419979802003061253870587853327605900939746295484192412563008115925707522750950625538428569262740003080354599854276825601151416381443266933549414690645064165795735628898304073137941449045278406838056565465798138091154613422690362796514938211022396671455029919419910688689100326115873217944721010233276841066736082329898059051665487608213777602221081286080910703423984668544518778504681887324406260244031536295425775588137299642782358904271749576836480603414364849084180593858446710147111852124998010376527267809319845604590444685981428036257320549775524679483220224446485936951169279828773124315019941321139683774418248783382510067828455046587124115453328127276716426580086920065353012736614910740997866647282275677743329728142047034499631845023697136942393644715440670612854961271262066388522305484471070598173328972786069631096868951535574863017522450648540985276697847683042646531665649342463088732729172039619393663839226819564337023753327390293441958167110182489160060771890945491752205281243082421752444502034887447574755136621322094000668091392530948115084380344716823382087599951288413433772433429566031196031142168146429289024458296964871235933241201507467408505670236605310716147157365928873661451109690231761068680596323212172852792814808066769166064227137078605801475901960295817089311377306646907305371179174197945248581358139243854019106004131909793072603839433304592319294380364724413210345072692255931754514135239268599582291053891968927899890437134773313925226915116481892566223310621685962529281849872780833935814724191400006884594238876075777326515642730646342129844005713131348299125210475467039729030673707629704671886149246451558626239141014834897825736125860319139043935480459249868909456380419932592385114563465748692009928900674818076546992621060442753200091435089378422950629532773249535949853694767554435590524438382318377714839947987691724328030930796357710794121498302088158910438471887525753211228975157800220024604997272556340333765508322871608343646037235037761028181144000509088347342153946576518358788772468521963085716316126963058647585517356502558978393905637944311141266107748398846121744738317528974810065371593499557217083589263310405071707533404550280532126040844683508231201366412285551810780922932619901967446116538489242895253135084262852399496777735103136612446919858389490542424267460536036383612177300679030834265154162585682257579384797415733799098240354114427063737725739839659151042843479186826017330808953385075669504258678486389839014557293384545778235906950059519610952717814700911187209201510342959823831485662901415770957792478490544763897269200767933131485643816397012267529944930468597885017613526510181658897143126063186642419841497914763504145731209765781831278887655088002255635417947378052485851080949517897910144370797767990532925126581678004681860359177812706970705897990339868265390133986867587133018669457997036618382051612558262831292840870655009518396702259407092474280203168415011003854462526442876183347398151381854173279748061864212541988309455773500108969514663986936763942922262395456291731172527229232513324155379191159139859798725094474212500172960232146690810228339102081168225003717552248671428945211348197605225247225303003353360982225595268918272315652815619112922226270422564738108399966948523057533698920467717888269532621641205067311624928554708857514940588674497149516420923801005540806300750499088964587343466956866017611816107698378106250200559377555539335148330169754509379306069092991019872166713961412066690636537086435382384466743747403141055575602115300774527920943991244264134352012703196241156366807786165116992132376208808738684757986682485541910478962375342996741450933189621567013725141615151222094409717616260682473741998983901260558489698030042262648363757596005807643490671815553622839173278116502488752022695045023565385178397043084569278451047554654049769191902857359458207004982046354780365468556722764816327284548380066701951974374342767796954095514955137059328179689313646287805045583324837208535111832475182791144105233654137961101449454785844427191816756913208251473098685694293473614223158535952012208208368975557681352321561035035451634301002053590996676429415887140523387237088841107770095767975505390128310490844097752179088652363792064577431072030174318827880888856124626570434876064462711016820745873499551703250953100063832334256033596696548761795325914904019164850250838552816433874756340762986777039471388115102183108261258633677954983831018333751827772061084237568698023371409767782454764824719151776545343307683756528572463873243749366760807247047792843015592139361183761459275625292305397774125577972616672988459645723105283034762028661720369724502852314709792455202863337495623380875079702138408340022331603852556628169713143960343492460360673446226511456572696204249771107982819657973609904406076220704295840974760169604219257908765058511489479124085431501894384952971512837022425126873982974843280962300148495084775785870586988237811848266172799268431551073870496082921386050069339628863432652996327246039605288227300781536749507125826311841969834310304191720197371237491951731268075774998214408687303839841819540258310204979792567978458773729773155380338435641686516889744291025422851642368187301704652717829432624551308844158658652081099777592612468515510856982485534164821733137551583622977449257901431309856242237798888456758033525962726478277916120850819533162575094135810078954065494426181473971901310657447781874720583141715075589304270316557071081699387360351671577147946630768793230429238254759047029396486809764717378702351434809615123644265579920194914248268078797299722576597413368144632185443544827980397188036825956562725394628152436597922991294062644215342797567639900382006416426972190230656134491727990779080523402392996229823274556324781453375091365918196099934309549517068495038187621512556237858860255457280774519833739342471535280948567659568176101677191653451769985984980932811917963690529422805806656229428071678571150635828049737725169331623901862207298264683496438588184571767916921852870980042418016641239657326715228949548903605308600129515370331273853273927638752335884953606520605325577440218956758399269172153375549436797680445137220820732592093211371585156833140630114138868765911289955210427953026963510754508495299762594088031704323999652089311552301580812051668083215915790337404502256561822863531471200102846970309694429036890438316192443354506250960457300745741327141381527706827824374104725761490931997106978556810820655502614816085350062325706138657695812929034815377140302737789983747580722037788152269706080375888907568197837237458783294223097590063704780388553376929609481305442426336239793544281248531530907638156087292735824348396044868725514255201383158623375530678440217928007497379367621336637645480100215067402426109678697745716365224406426603134736634833515386804053830245494693325818726143694642982486761859988277093398726617157315975326001826939738996289912738670421751950168563500859362726719745106126411099932326737412628856270242254988954600107125158610567793113647206365684282529687268784731434372028227690568037578051476893560760260421821458955680812098321173882068033396911361715803939128155322101931336512642638693088275643781928564609258818758916766284706998449925713299246137984732943709096334393528065504365634126100414076185163342072869024311284876868460420628191002934003946693941319642986910982432360483326605385368139694588127174238833497929340868890999796155829615685522172318770140974205343694229889584063180820065256229918043490135646000288025217845228436676682489122820038931194177191128597685296705435923285343384174207556395359502992333141012630452298749820254256377820495265082791907719955301279022807228666786617242756248931558143010650460896507233936050357149046455581105304479029365069313752080606843603695096552367598679404953446268416648980514729359889407290141631654828743431977609293560817017973825976947412170420281587436389662981458463881197934480189133577360653874182164740157204045982290366407340086014313523994389518766298348112760467195638031087232633930890424394910221078974298142647602132806916771705389142429771132476662686566171685554326255283109632004332479005942960094246517603762700916770336884659800849197605211726072598886409119473009956613380250900462867069450171724728252688532966230512076770670530926520066204737475423043142581558831596013033290834656144724603353632428607821674730584079621265649755297103832092359359086949156488260858895191827724074768283107541545596654979036088860512103608796004431574211083776398843516629832869183092760229360751176512626244623787253816377216211835708873574832856235900553491456673786169297655099264185816329419866204517697310509184549499100714664071354009878865156432832580285561137106095611017759795442129478826525941861393923587145075265629019461883579259303873666213048012700323189950479910660145956811631157467583825563773149533431072766651636034551725143799517848963803215760136033000736349904390493047950446714930685301103665748612379218919532507984895596109785079922847944977201404629391085878543244866693235784862632874813215124887537308179827755127846766810932671897409528244556974754487300716578970522377299503293032648904366140869900520775368638427470947568761975682255502886525376196221607189543268379307703153892714919508308340651166315277591978917874480498432036663785498986435093887703354828271008188320374477031869416270492509049567016914152954453779049657154448536061986233024027708238877605279726887586387875406731415914617945169053177485296720393418058180069449854377353244907842588002707353870953890046493791608323038366648416549582717634918485744661193826232164115480879123107005127788386262058525414887562704161683477481700826305402746384262443075381047289358160887555704553403799811893181055758550751984420940165057057018626618639967008465577747187647087404032813152068019500566028390101317169637195643540449278331113141380585109397284117239224259292412347276140907997185499172196997556163404054225341093769600786982212334104984391427664839622081072511209453963193914143784334361274128490445631153395113456979994406741001741623201483993033670215532159158169624730561897525680211427261432384510535576592348364758660163554137211633714266265162958598315743261934089556788111742811533452524205588544756581883090362417408591014905045672424656854620488905969689224701106730508833835666170702487728152187834958461564586342852694630941854571619484818946628771754858133913324654435161753772751278599653282288806612508175530138590032156475845274595841209577855203858284396183360440312206521365604626156313304816888120339095250663155177836914422014157516517259932601007924096835423644371176195908778950833153624589127416842894006824930250557452656343456451683944216916438840036148913607633024113271655499760157327330620080771144314702696182869939730811275484125569402000401465095469161539392360688643024999426825999185224873180117117284009504704276468913589879078854436315358632151125734280754991072822206984515150942561825495863506133125051395650190667041337597607609034948539844174310951861479852711178272405022242636353855040609267711317265663217721183358339762105717227848903577020052092374035533470610049419315220014785842999236364425468118954592041370400438826216604988404749311444471276354645232193510623244662194824012216521419091623184306969412571494425290227298287497340904229266458306960667040853252085743643739274306001884085319604402224430546284151810454762987985184560867831986530860201255777110873322023686651293238182071427447263496156001331869853522190210843862960359742274390409928888115424391696523303338285732863372751066741107147794585322063477053151355950155879989143893815911784049636673701805150516809136677237381346092366491048856733812729820416043804373309440033872284577138810594971198805688306718041960872909781695855585331307466642393593137339509493922438865032887111520983459285022403772138907416938694495234455674832883802931047486326405639046294881745401737003813968344057301929685242854854951641700471770592239182338213643243003632235966215901087613766123655217958841828357209982962270009476207522192031266087799609628566932446510573594993897772017683952648032237817190610464385029140567053225441840214673625211820057391851356483222666564360136417551573915376743402966024419300822735215850815883272726663032446501313131841279652561769815982646563263281927397835813128116887134341108753013341378274242382209241133045228798502755548381829942940360819022890408943535776905735032690927569231326990046336918125818426720666673577277518335612662668656068384153822268683482054961232847193341314846374341655421564098058595279131722106682564003339807340572881056691389820808125009649865811021431105569231813711693468503970751829147597684526261283904026945789434132809576078207938043355786575791541765421750776474459559475174926819212854566134247836035308414012658988177013264860949877871298989194730808623033172873535309856011961757768228660344055042621814262417654231205491113808246648210659938166020440974137843695098813061916226273399328608137142549913875622359225340220143417748126428905050962865581168260777532187148338866117526479380757887146324255361820743261013575674072675793930511938008482321576767852770107061465842537365538786596594649134033280254030253627497089522580814612561546037759206426810372773723546812153955856957336005762671755820347067735935416238696254702988865201757757124843995735861496628388582829295189779344703646603644419253619155285585914641282980825028242311673652792179636432344146534628219228085950569707487079375100429921395863854085649060739980824273007807184037125768729998867436075134152850603823753030813194752760224002699338250877001090226634074975472382664091020147261364415828985236370677991087875416980996020567906427190090290351040262057319961927379734338614260501399676219370300355493520618744773688092401745796784450154490990956773992835236347169305118891188536012544528715291323073622684166832974998365409403161960545146771770474179025460198262651452852220592741656986607181978838992515045826999675600610583631028009593407517170197018273003196689804763747296574082940380638498395764330310244438855537660166728644374441695193048584880151362240285532023476393044862811415527517697826504481522083553735770640803317240765587654626418822209845490939881506035875448976336484470984078173911509422035628435856207010055353920117874692246026698206191086003614084216238961928333311715107136050163229969153531363409851287966203949748406037099733025925664407885882903390721464974578760797358896134480789149579829014728189871425712467667544569985386487991755791466409926859860680596664698646202435341040570352298297300869850676870912619810734687876189454394760007384168719476737469035519599457470403565296291176780561158025038051789087632484705063459057402294764070244414729099630905111443019921971932497295072088529184899460166895800259421367354401565509371600193932606364090673003882789507619450359941859126554495833562840627870754636567390860172975778992505779257269125633847331386008346725530287220079883250919045022372603724203363186111201637197388622812386089649175393716341894532470802724157054266046715347857365943704716716213272314151982955293222763132703306952535943891054350978669601856166719476990002186438343074377143510486849922665124288943537555681310580605581801717167746978019950269969136375620124670760011088685750768914418635471829771463154229361259360148232594060803896480666823585896071910268090927662730790429615120202487957070860032558435300772492266865241340181615642905230863714761736886693134719340247162629642536158747466377919759636712975971473724133437420903697711570890514569133728799898037646520036387535813582336594049950709905070346113691664968281919049531094916945730714154243417409483330979196751605121979041511548952863782304333138880230972780377293496308211979906153169649851498051277228115356825811147218583990567454587281844695781036975408170770590936017492696888954500772602528112347515880632880351263423015851839282250295086364085509438839345759581063344015345489251342768576350185771863413542868006705054671768655325310505169297775790010433497027922087849010756385758248040325395789020792346895171465660562726048769033463472807345277582099433969926439693843084930670133522025665236222473125392948309804991999373230302528980862779073898527355239388318490285869413665516367762077353462167379644377319744133156100937722701836242068653920226378832753015114441342734165194476546947642696280548980672528624485139806955213925390778633688398052014894101354679774034668739546130370781207621424947434368856610492376131444967077528462850657538445324769426020301708027185729615396898187044893024103467172485765458376426395105671482219214504373181715088780494464811050197811587475178042495229488682120195842943769294962356338700678681886814756194815824293482191423136268852666799801835530677399357539350630592033125824763888931920984439217936081570624989572766761480666749055037704258781624104888379448399748486339158385068938776840838037592067006472690418407659596923803636929951718850284767209600987158510607449674323194782637040242830220001428939397820195115461010170788249674164052209668465487509519550300435992520058743915919955195596023744742868020631085485196267738022342838427993906983422519126083425869444511807626600602325276175296254762220194522505086092167207690185245383124107142261525207966096229773677577131441224561127710211946603185539496646528692470718234454456118333956516584791503196018676463297389233729488778561922323826123051616735303952821124399818300805569176600332489407923578031195608672902966062682303895644572935754160894427852566857738256715629967436038197087751021273271333243760504738072356702346719924441926891657543551917896531127356922876341776421997352366364142875871575545768236192479495857252058383535332111578188810501281285189516660432783224022036970274702477294854681164725136777056924682409945555929545889094450520785506598145605798327947373792014895970014513357378165519328018145092555738795491766333255432031834781502406963039363086320913447745288887676825868884510063204604477832061911698982200805427827700775271112871093349819659398542520207143279762300294455147807349245967061770044413173375762695306194456467277301132645040907114859186423397759338321994918910766368694601708115226745960041064496981503626812408648140478711148208495144592314448900467508789004870636705742300919349087947111392181666391378869585416496174496531365728880427000280583085821201154291404396164078215788336834722184585565471019011878023038811418157130739989629836368322491344655359396611608735213626716859019496722333835006829550321076652770823176435004779855960056188511851737158110776260303239184401778501677490257640476670400821600294302972999145809006359632080463824617853034683360253397552911392707506868304908050622166066664788982183515302195683728152378464895863665172805901932506369399566712308076959545790379274949484079565966815303241935874542789097989315722334457160173095724795684825998774825571703706981945475172820300384325718591761898868970397741767067002922715060547402491190553359402416267456893240316539111673166761885415304943517417955470352680682864256397106252578765931107110489394599575983910034865312490496013242098884883944141426273178922368943100294070270419078359877506001550770481590372627167634828821085625079668232388710320428473571340518505326618690848422453934589076597500971601225106380360603897357449397004165531792495076458600456843971751129141349554746505684424814987225925286446657003061749869663404512395093418185845603036983180393313996921650952036672790425413514011004644127194480804706188298326874650195266110766593116415822801162515678279865062931025099151078799188409686133120716386650776891034382761565886426033840309611202787225237968614279265434296859751365440804220060822631663367677381339728392328168840175619302868847379526613538168333521621694795236014926520775380957827874553291480306135910400934681555394784188708784548633367640422041374319612178225093635952937077884082586579333340436099946283707306424624813565867306392397149999235938553625947057757280056050979461895902601909337259575047392518585297217046082408824103278456865588067363838971791138646098996242660078457382613322369789570935201413651568145635845734836280144231532623640519737619825005104087314381483342003997083186973003763205977742984055412877569578079706625162900323316096681304739965391782340903310281266461093445804975344572862668176813306108115958891762574852665408160858228839124960855984396451834998712319730751018572532469180711403046470363397456439471260660783060011141638845288331454455978907293996363591815382687415450394645893710987745393640619136635351655388767118375093134387663360938091331218920888798296830033181977479572076364377260201536238610962969814470701904795944797342946986700395709115763241360752813738596107751416105461741580806995395089543170015877161459653303160138415013231579372566613836845325282045659769918844820923066211235321379917333380934297827448079992024235339346020612328516121607939544879559341946095384898729342598895155299943291095332236581500719139732766248657959497470964293016358443662821350178522174964498839573021832874558401569655853157330907249977330536276918116352015113237096047283898038452226314085287328095676057389339450829076896870578052452973324926288089921826557441253185482140874036189253754857881488217264916620542386071277563561544883546385830768622266881561278544957831741227672726261578957031772311829723478774698971048402072939383106077558509590870170903968540086565808172287209718648970631399425656514416846837780366159154761715548185138797923631433562304656148647416141625410338234384064544195438933700531933498708685474951007169850747711424628139391875131608935287231572232457036421828932710496503160516746263506809769850958159250953022131550865460801633105674525585037855747241975798031190179059650064703189239499607928065856377924110662984742673456723860090018362219574455281238056994503002404091853008822790104484684084405676012075175329385534694601260446500603155910367827881386216072774483507446515996485329745697054426760927583954359649152966028349961060451202630954306370505246961822162525344342393562206759694334455934087467927817705574041082155838484077751768938583690282390215538250332239087664309444849321719739565487276669058377086931468884588495186386010949604725848400670709505736424655288678862548780816917653114698577712094065417251521445433768256796397297342770904256779219058606414927526542676460301698294295072625933740132830453297289907725603959789142758611507499941628989904687801554092777945609586798918253510940834291846933485412647568617529290852601744291395009027122517462691717810842004763550389277631596505851209729588944657078107172876262996840863874083783419401673588982646538299301605688243586678617061501814408108970213066566100010617978707634712448576761915205645737924409191780067485208789636442978751216164749088646057241146447546659548836843418220809209092383997686895018443165154907011311770254123440542209506216712318775199885811842648912698469969154457739126059433181217701565126199162907272664163386580622373602807308905255553952203273356107637082495616962004144775222261448373746072799207078963191378891172579344185167123951253337455800121900081491251015259433521217815812308709930332128712573673686213813691150369175639459938726215305615080056132342827752465252744817236293030619801102399288607692975268973627805657635859042199061286683425550919665695835475251236018429000655964696623670847765287925840227698169184410568604132185383153757832622881088025999508990727237861125991582230842255459267518364547660412543610901446089248028050138402231646254371103985654296071103952783789658293594288466243335138402985981435437694665026779800957480584778400090245331424278727858382674662038548498064925079184603618354426803933960881080146628862206544031623735148130719537750397718827688355548412481417395775735895740984078567817934327818971039149142352753076465993413496074296799686621027592600131111479164920990587227139174881642947071227170985846109373152590137361285133102834030681407183841288437834585459625810453254561506728209235625730171927652303896486539813977590833411579220226005569011115965559065473533914013486126776237531253707846420948939630828242052263963714244689256737222122579538229522850729068727041344258034724748113931901822431558113485750482963040078682395291572910159692840542912478220569045600464914130406425978626881707859634029879195234004853343135687414848137510822820491351616479645160374242625585528642789568240533288869250823394242683668681417063022159387426359841845040913108752218383748771443064113482929977718493304890035629256477475616761239668463055740983123187830770465381918593322742289368707165457033834448685365744390789562683649834299487590739657741610048131291935279995695546665092461928261503691203494463112371192028477198856460021310582360579552404570342420891389152064717082203278993971838351805097115826202984696808431119218650181021593604523395583095209164784916002821848634418919410255676696529976372449640960457671357292222654656404297115569251631597368920430699688311308766026736808389267355921262454388561514704529335243430041706523561643432465787975013276613943313521892024567052181241311896105441343262881579907631320907001351508587559207726131454915029625650926088275729605918955825740368029302525840279236557537148400604976095426423819992989202385678749896427712483175644463683615843739748483472498456897452059956347325780122875234155944410804891886510256688814923059859901260880448810768831599810037343041408577791364181752127780285803081541555918233688220950880014611877422731943898640798982045483533544033420355818387099511288013993838468655890987791402799987557071707577762677605460983852031504950431641176087494960836032934561110924018929048489754030224523209293211249197030938981588029366471148385200112801716919592356792750933529462859799485284848410740301843312736349544120341561892008958627225155409677241209180689619980248808015496150465275405945120492825611752219821359464861937562308230556130768678441029816880625101723523003479188463676226137768175519247094328371824702454736795521711870471182431850140219429466076034242456981384845349155499508165720173791132451815772167960546475612831471053218656109968374183741572376360486603290678948330030373078434566987589360440504765669682460836722863618642491642434125989311406993429287227042054772907166661615518261892523757748936945880114015214011925096103545258125324968449038182979952379382005472547200399085617999803101143571516174096495487214028513468802136910729172248338084846704704616370576120605855213523368455242358983135643148878128863657709981045137247834589956912345155046647432437926880150407491035777785221887923242271132767863640765904484451504585501128676390998592998116399554944813816420989861717537651118823726036211898742530233545489187197097486467305500473058910229368361696992124174979991198218661223149389876350408037605857783564179531314919487472534248015877130791651442401985243719284205879706077166644556708695883964200594214806513473852832907053210308342039489195551582901423757815382519842141880267281749669342992436746644860769880741482362368348126654313656417406782821199170825892407567110267831312553473074950335245093293730615133816699861918383050966587179551010304678031409240920686963867459182136066466388645301667980257281525194447636924296704723071147649482468990151580171463128763280135072090686454129062182801008863176599031372109837712235490609158104063869515930755252090374026540587685343829063608725417079804995182330734343599959781310931492381910439952431909639688873876360714448206660861731511425767636993014043812607605622194647442367920281677340857641288470457427436331968971032974634194657659762266133934574106635972974563911556635917768572597657648963476402760575937510470239055414974866843776314461400231626841966769004948294979860754133026535837393644258000023074797428851052350884606384985298635039617995929728277592107410046050177257511296040251964772541325078409575689168805507908822819465311878134317407716652161330412237309314478030861913404371982736453283650047435135116478134040094117006919505988694823953573394479090513986529628655722845983495804991781200640529226785847352495167470250112904041009974339373693717823769923035678178243500781353116244816200372928006686578281137746195062640958617642951358874078753814605695062907005896329748985615558914056176974099849604945877357049203772475883968762772218007958178353593283342518181483716686409581732725018924683761573167339688512680706809091301299619951390930202918202649431864766900882626990377012577726712728935620524356451171536407878385308505802055001007586183894166496565496151611539935095600152501619570313694322098211474482069653609522044711732473023376688948379406427841424922567517832150017265301795455189132401067157099045760432264478504552197588108245075804269545382705693084300543299570146800716537907952279868698581355834393945681432196888912853032033370552482250968700412166619804082279255832238551975089296215304398841255851137649363527540632662742732186489380273010826892737535104665986218431500001404430088282387723176554630017686146263718402905784599169194703938456015955011525679134687546145021088220707032708622991015190791759270723799640752056709390976137589426789934121456571395178421588754822076536572235426091258419891802408294944286436302953076726451731153647801290679430451530448582104877058170540105329879586825711226074754886437584598843222707773719503594603733510437017261366875783975005554856248638730251642015368714881981172898716751314080515224071331430957692976702457557287704779128563012604538437162180664744616886279447099815624824756111480859876259953450160607760863785846996299610430220442366610823444245384796143262809205716218954716206317634223760200210185312295094854470559745940695880199740944171287360512489848998607114872863389848168996832117320772979618709378437697231055219603650946935373356941348599990849062246599470501439907696083951488900488788410180853655308799392997749126949504473311674657494314643894732825892478307138402512038643077807963807015753168132601210520276412696271775884608886481077381346264234797237500218908837622764332679608609657795259698379095387020570345243981746706853818857796475043855056839106188871983264281180463688383617073935889751114910462475747752122296705117906044694165990366515753817370732400563201883395662968836058393077163805487251748568080186188883637435865576111986760134732811624403261808094661060119763287845731695073594569194639532888175684308479930649917450402531267036497247251432803890742073323778641831402957932429420828117973565446832072154397339297500840769947062070483722142920630793926810686951120530318543548529696919550400284302227627894093477419235274490624785104319510360129490153565163767602037413002049082940463253545011191757674823998940158818339600547229957999723205576805019472561949550037594881117698659884801440479940265924779886049212017898676139091414524358491870134001843238976136178295923114689852685567527250069622073984390311847968091844125197084585850426981065467617300449988201548283468012551583268561760150769881488273183897117533095541868745679176746909645517090996001349132221314174630768626363201989296629429035818973103968117883875503029988092224215669028864966849733251510821688449801216054072851084226712983902820304134497773891666553957137913372179590605608799011259606845655527643130668483939619934910358922969095097701033849554136973230397776204128634134211035871938788452065183633215036893027860357006794691480653645419770988465385736687083566067695352813746971813162527973671210115930164122319824451347792513886806569661346558067794780305546774901469075659101165801887728237421031868394018797218641625655854537047181893824644080562187345248536010690310168113102087289810249274278281822165857680449619269860449385162130569834172916767576376600380941292194715839067815965067850583381053769891171487592624949716632657364715808950216819682143592485580909055264941818682150294441972030634338673018492720930981666186696829002269837652730940607494976057942332677141168312887382377059596228062552860114053392915785155578939033597709948133098317105232527422294783362026025022698313774891570898225369030222475105488393727850516343544986594494463947996869848210773638151496879425627195993955866755732505336580149771245410115844753911666357026756606063112558934982845061878429759695857975454933166990828841327039158959278335165351265327155714787280371603851000920242154317126577120567702783913921775669329665366409525879401647977623485303646253891166272749771652013308615566756852835603973055250188401495702680491017025741476928351760262838017346220962773158084316985377878250363880633138663602462541147916088324111259141871696818164230365068118644500162744751508765139922299661174075041168475153023178408432180002766871504609178717052015213953783697243488812003060174907455734025971466952051857706333378078342396981785557258497767432431623384300684931695490569237470186899583468926527438995036093332661697061237281525921168917787473160580645935617098475570255109122478887714445775080284396180784666095561902563807155515273088538446653497417019335600230480936085954608136889598491121931293744441263830873263617441110357500166764436512359812066161392295502843730191569868176807313817091079549047927050327227085402553367590006085290099623113180716655542039939169510956874026204053222527350161611193113776598929202810644102040738259391821989656729502680235178666747095562718215217255339735033039306591944636092980396294966760520659236437337992416530715500150767018874462645400347851313073273889636469684566963131118002813115882130433501910897503081084700053362715530127189453275700452595178834175469433926480033002722547669606491433483288928408763311297966237378201505764064541807463057257959573716981021970084136647654369510578619480367542501464723406308554353894778912689971440923374864187018866783700586420315309075706436961673871434850204113816301424822247270331173984128868102713959373952386009383596888890640098862569834268127813669726456806013304963575904232825284365888781162044240296241156632350294734897005787747371029086099807933027905591758041542467726945086264004220951656885823388223184900415923325879614604969315957735048090946944964306752220884819449417584621199120419693299166993662375857069237587040193295842913000280260524016378032350035163215775367456263208362803729367654838017276365018740789320436299165795661981409360496436191293525627663176649300792172529664447738747957771502767475914956022764423566986716314163597306645261900787047331855508710826479990993556396364101709456428119697007456760420473672772282858803539350711508194482677518826283102691361857617744033013843042891005066130594684109492670990298776223054476369477330490907301584342566715408053000564777806966694866007243141988462697203420071505597620686904042467455633313797669163237360797223421267669712074848786743973516922704131886430495503083571605629638156240056755476287282939895289055582734629916025605687071935971135480793269641271212315639046249709889842076605063333077867081465010427033552749175353348608166841678982208451737689055692498316719873312742044716414858254215108412560146099956853088314582140779451285997293403452545402219475054124041586547759584843899438361604288702213404934805548561345184287073716565586441031046965900557171587782629772198566004017285321224874226814817645202422422238266304534052364382791766468579425199698926929841516184126836188923059524642479604462975266345716476772250611970981197121775596068938079619966035310676108459338353088194960941410913234467557600168853752146849497937467213808485950791719045231743017974216924285410040007958847775916676622150610168653108532744554654595533172383750881863557790184232382131034123808622643369870968730765111014923117951468162928803302653003575152083980904900775813698516973265662648024449623598840737500035448059523415578419725342854487823747719936374955596657303064421906473226888245515716733931669860981560642904220136633390694881474392902262100789567794216206772859483631486122344166292551681689972067612818545753621976256560210546232691320026988238230313343082693593455836710896127428328891266663053385689364743596940570432490133201700491660816184256474446356966446477037211424037116147919106558934570174901195297089049237860681296545809153840061355596465937694655533890669734305594988309816007979988187770839174825995595867673804666476063386463697971597301722536393451887304314188066065923279194644283016772210615503739463407637290706771392318848616798327243545819637781374485961666951352664762429496304232587122210879833932308257490611789990322194465434346440465515905186673248044182477258971123907568610842082951895274559999030451571412339849469309993707708222293942877963935081535511929527206684432837983382892194196752118326430735378812763348638527358282623204034772151984380577086416282803782133773802003424940653717635984419421909879312298644141463967717652962987961453870930290151363429188320506084764590556579392421392917372712068049173349817712464400529091607767781115232458332162413734090329173766125558558529657806849015343549263652526861964998940785342592756937131593600790225890536868023643639421525422521409447596532145819664053729633623557646245207925416356529495491031283618143169404098319032175456780088261494632455449874705264722692255793879747376464168291301782955919739257401603731533953699144670383976775666092136299154205203694326925998069536225793581084174461173856935779065930967160993872084481406713360552057837113297016931827089413605826091152997013966891299516726186235988490060757562793270602528429417356193687004145339648943066464589202634783976790351788826157561480006292965835408107929059876562155198249326511815523550455214331354589545605797570728407472406768571409721808946927426571181253282643240124630950396687774527121574622433191589694803191910435291672297709105585045142354126417040368946427290586074113969326447347065985139353081470984725161946302121356470066424174117474755632034486721282392308127087922643382223492324862277875338603772146933139927121142235520397157517821564457893863177600464634832994894029663734378164269676755529544263412030666853025803325741901426430208404987875815618569638658855082901005734813682770204994251576119330098270927028754950733662656543352850312269634937431367493013625610550395672063225561071669526240706474075869453852662787720699158443261884423810014860067038996321003437660219760075895972607990733966650592742578146905940454606557952845691671632433863913247172719844978918270464497668841188909143995568851873846747101300501321370465764675456949519009296960435586600671671780605564086393214460805177360016904030863351205096219849418218145804397263085571278216635483812248674639267553070888723280110584698298169209717994828905104730178129924694055976156273830292549860799191079369103385007208948133176549378405478350145747945115098512527282941726962970075095008503435451767756861487964414743899944917317286236722305052691954467640255828319060159894839093920998541052942765548350846015613951412054698140783263581062192030590161276321134540883317752756935297956822572844992572626035311343138265474483361568943079210253463959372336699651752989893809579092855180233759437155272160454604943751213335825617670811243959832901413924090932781483844576124597448570191453189159375647887169089831462484420637645703385773478488185176922191609129311433882670173443023856497369572455412425778511667059519012168945167703535463079430858612424896212071017412522779386597643149873486374643516948955030448982549960918527914488545464163433489879035390403985595811209436695165445423951933415383173953472605538612179589966302359097239402267085779205686038858845880341448483456978989895820050832411598888496127734116542909774233168458403179600420374318172501679716009386552184674861315190254449693684785667927267516996898019747608979132862862726554581096757195952265313781997416624817623005529809201566243096384113378959321419084950431397558523634869272639763385237270910293652294302852518602372518131392345972598278394214135605745783241445645265498561860878640916085913858115892645254600351728527359324683665169439631568796027268437638651787984914951269510009025365346450565269572522898986163726186559156196963069403510925094768189743145143069012635419233810828159233272498889083297736570792380310510671127628561458026117856451457266786105503626255939219903436494814590298279785255355168013760061947925740607176877660546022596156795027295364703115523509982788261298385906802700311860191590866679800595811250015033326842244890656447942359112563237677179879150421041284457944797043351289405885266042891099729086494882098607132946382145095766754407455785927396278012973981276126499789439554874593702353643709242706888930686122707754329486919438448887943386168345664742115940564053755636082394640316563401575034464756211886840669050049954978390127992249525848787912752890825311280879123172846841508317884034050149352967746313639698630995975508241332788964868254968786508730705196890470346482558058402744137193821362744663193502966993664383556532360462379511647906744197621065574619853498138717364385390074916158411253537635669620038059014432514631570017833417508180035004285164086888032608220404295442522934117627182452604166069276049023597377695453051333989534213257524262130149200352065783920049298955867048821295162958200087244460179246377317646122809420039558013105746716786588922840014582008475431613331249133916144083347340623985796383483963312304482101158153426577936626279491354576587758594157534933403803090914163512190381108831850005110853965467813473521485961803973163897945876117220040265612544962230724943728017244722395267100366502861294520135265952874991851983125397487260231006231033772581503998618108236271810114860568145710287708504529979311906409876952795215208327572966892591569755661433260936951146927202062574350010083476949105489458657736486737244838012376157168303355778351285480605501897088561924673037231679571431919702158795852324234598806042874326989679632740057804033434427459716340726919327489100906820596073457333305772328217227312107297070914076568401852958746660982607630659536947652446870772872499227096425315259840174153496825800912450678623803261381476488662802914598237127527549756202663485421645704195548882025613343858828420348668034043004367731697414484028187921498466894133579977192995293242395610018718238296489616616824944351266768287590509538177696267626509158688674865520813764317070711631745817357378610117984645382497166849066851753771824186437440725186830741275860542118692019129809212059259498657596683465613982940275036056918849751396379838841571420180240386161974304247484567681340506317541966007613648067447048297063012193521099880094911455062934299855755057565946410485036676727834363888928713485819455355887484460026097810695841717237393539313645965165273950042502510077734465532067117179516460451400390690034988252852270571788639168080489080091742005042544103519453977452061531554690216794432291308367313309030985706435138462686292711118575167121883353099965536434295514483722180169716162473561675238889937586190683160479116778305256436755855316028665885469777158971955070473058109989920286562261501812267020387732505324154721778281769920546936805076735195215580337866710714763101460074730056204565406085401169686706500442501348649814868571137300494544296042808228215535858727565486606732694572664400370725560553218454678597012580917864775672037539367309246773673031935403166737495641480609996205605657448549988846983461989751033285329381457223338660483187905200610086210386893899334106376634561090283413231156114498334160694951894457321755354963787469341999674752755272423462706962059390758161562903906773779423391212685206672795714403769089639758338310826507460584505154233080344469158895500138746649149762764219857879897084024031985902877775525199146244296594123207689472209079162647001558743183772964978894872602385480195135203806945072879786485310803805057658619811170837283945685183003723757436342669591609670251923081670521967378915423098271900569809580728091365175615549484846533972871082886838998665815077540849724850182684313187376453419273603845895847516835418075386641488899412469210445719132751130181307866451122604935720261884361064928035326730664205819001720071953280755642941913611286959657295171709446945169245880448243413231737794418634731261668363444975364396780471370731215709840536370526205670115373268858975693511007858422954600173506608279735163619585124265781491055527299482378243296617251036997529601640736505087871366719701012771443472363195909484211229650234793519642834005875891487934110262877234643280258090205603151267680387711556063376319697678317542623364057759016842903142516645957306735925941674488947467031389820532697118167317492407355356705912959904192822014840893170355954630749790390971797368384317150366022755313966344257430873135547035839530943027308924210346658847321197951991482055144678878302462810198808489432384687164211925862598961805155282093486430627228288870267308719688298810339390464542433513178262346018713729801201353726919283743651690926888557715142276712852293468768234304992769026963921104345925517719206119821292305185588646943869773265959750577115186133220024403619765598713159836679100488427265890131847568965587788917826295627834531625177128060497114113216807925344109977517066591084992276629051062826037869498729508786389621663648701611976469950806586373367683345053814905002521380626917320457565366527779873557150378494362983094239604344872811021503364170040680068952848992609973202768301436386774749809574151596579419199459071295180400220490640837423626589133664322213372528318592081845857181510155631351914107245281262086076491016134883509444073862743123243455230340025843189394901700969694738367021565659130132357130227148383541872710076395637795705116781872856187794858201180526787013839716983708694358321863746858964984587961065276088139809853249211403897922878418242650505508013357166230957307955699846626224593176282264059240972133321313704004513020926680462356681830576468592529781148140293146118555429555903410402955004738355678391032622895656921705145907717899707078954262230893684657419383021680776967668003210214672968882616159895009361806350071021196656058283967781924632207734453339246672381995776634889988718565332480761109427411064243543799696461976233582709765389888332705625389242004382746241965901307865137413642162808393967974456959923601791143237302359113530110454884532517094169716208731548625345273862319147547684409049668639856690145374875700122794475027111338837792301999681234401928850846805395057804233748181642142063419274896140867199918151595397211795830981596386846819352663742983275889374187069320691881840378843706993401064406862191243455671831260982242439599362672302968439192305025606532778165598051852668929000385132227030390569342261621303229146326162260920540615513094071287573536945293947823488133889612098221335775065508871744886038219252478019100458366473781504911813328397229225534151441354121725528194577671782005572138443895155344586236161060377027075903282988246185035000180713562890800907548449508524213971234725049564108976394407196865419129935001721727488688038084209645555484637499368128395140303459419977565670057992413949137239245851261924921122106772829956073596444458231687289079588532747203487448331383878561818276515892429899029685793325449856478436296827524475133284516171135210079663859054497153001798278493670590840432461377189975939269903410140751522834896992275334963568569320713015711282991844881415803562589582528125882933694329685051479925264033501223301681917665145204997693106049103875765952245266460511900967308790444847699825061851657021832490110028064613813751106410460443070919284265752456048038970740859889745470145392875637934877363225107461541961358871544850453236877055909468435246392683557791584202570000070545908092324240448831398725492824946557585194943660470286330863159255611065864578582461687328807365625428895048885361607645742825934596639139741236215493813485684020002429056376141662119878072951931987703806973847182067049369543933208121743777910580066543388398129197897862185831313085240985708191277713566104855910323388545656981918394001774945751804978865596300612147251264062524578935788526477675905445930113267578154319185207645138014942850754959908927035404461519319053225181225340983966359414606481991608141590028556291249598013838242266296668656609228713789658182818215525009991639061671805806303856725814230716598364914749938365119772481115590009309901823922582507465860649616525265942090716413070046657966363248999762720017458261800561173859231683308209465180152205698709218091390691770622605714047753500114065201334153119443588847816967297156445982760806084674659943665552711679326610351781372176062705198294225319871488161183107878917915798230986506438132909697497919824434395469668270803510588188032648639604659847483823321393586390903089224719872266621847582290348555076681980894812655229063994654442926828856395712873189598736936353354802376965596167510018533300156669673299901954386221300006591201398385928457498107510615983460483045502710126477490858456807683978055101442494284613838773578860827653077707430785310307200133514706087863778848233536058677669051019642613387335608241868780563580884724861414796416168218416831033914476533790587439708651485852499217281970927373731415687741252524154479892679043550048921039086449011447031973422466673677342809368205605085965857954735431794826234236564034226953591733720601142263964523725267503619850691091909056651500366023932100592016330630294443985715424128727606890658795508882297946946102921183801954019538289935015977635516418969034330993455656989138213456967195244891244139846246480634847220155128404823762101721532689122592922685606730151376814085875640401872977263036444684755600533865942633943395468637672819075233286499638423725561346007355808718108626903627078658693301892553408727679293023024948797710339657132856592927607521558173205290523407323508737832902318752833174549896806594166471747209819631988931616155503210849521588023442218420527927176153604025135931759884352601194001578938852994175766737599361402432506667064881734731400803228567977866652480707207279819948255002585095628734876066686661355525016972864552722805513094183779529470755958370962359478466963281673911659951075680663551568588843170249381878728447654969466377726000493568881339947271670399972464295978742955077654043491097077992754180501200844566000486987361695977188923153671044796299140165502482380355460476962989824940694040034559664287408504437422537413712003075707374179663009474646075272932542302921332477591790277685714959466003531284805815142249399074896940691056405986525892860284685358758604440909345412998364928697657683506744228825026227381967447018927956680867880551047728814947899804698336511403025494000129287921678455148065418590780598147024687453544971479819448163912581880190081722553123023593806920897734929303242586123398260078604300223645324510152920293796695118074466623527578513221498310118507524039060148339923035632391415086110463493875810833797569616696821733108930086137481001546420419502537223385059151630137571731557301291626997719562014325276191592028896559392058057513737195269466222605959696882691956570595215421759194456480871170361518595279527385173966242663119490637408317177115385789474290149585516069547989701178466434329007566187271417751071878605400623350721479711530096171655687001163028023345177325728667649209562810338399692877992163858293381782573181117604251528819612136096766367737009398356934864466083402925288641854774206402974360733360872211873269600757124684754692142894296625353853663108650683510865670548653715491211693031077691717591979632070418012739591077319299591282291965521931329889351591050965751226562865813912366968644220475049257276045071963886425002137387720490383749786321707148744098507094372178512141431572725943056195343938695255781741935217622256344368542625069104439125268603983226086590097688761167374651403195281805606262627441243755220997473052195633087267496821647694713089982312651229849909559488143488238639597970745299482673873868391980403949680511158615211483125336143813003031513414962342228950626551316149927734492402169619566721807012539221826610017587390397874771793237029921654041059754985277202141745180491998294613463701009080987697977732297581670874621914397172474167374450609455978456705882782598206589001755099435701551195865563522490157669154665623149784484206812141343435539693763393628779533345370321986326915522007650784666856288865564818975048427761626256990335936082296192290795261596046758111060089619598800287287263780349905751135362232179454866231060195231091478719864678661939452125461925949942803966013773888928409117795331865294109492785538925715855058235141952833053508550188907764118432999881871838852440127382439285775151196073974468662700805451032456505128751347913393548260580228949466251315912278978753778196723208880293095386327051233019750399656599458112888729864673817411301555160650197221091607012120284024878130235591772801204884381619194781543514647627296311479547913630528941241704198607067902877257495834294865877871959558518707184032915200981990561145834488938817459575433817884513423974238636942850860556684125196919259622914995581637274147957558193711448241916900093130958438560134763161803474128140102513700291870277012558688165608490198015786878513649459940033439473073275290262562067768622637311207878591129276941287061166097169847308758138950090283903664936365433780563872822463040747193836260057679880629948569728598249290698225860438233771606491044482669810124633720391730120713385802993588423070944322082504604004395042749631868218615717190947381651108243389164741364383852575867651035065319323754639497549788251053059255991582399748933678010217628814690133372258184395249586696170141877405094032126305923178401717162341720492077064739311148736262755036630128763362568809252461632800023825988465627342828496357670149473061523327096009949413836318870013439335905055289836596696691928514933220350186037463574655121601042293294654636097262930581443384305368808643039498332958968733808544807014908318616214221289885335885055602799442805426175786379541080920267485700701456015668491587835801701356222510787890382019252708285519920721623853315152989242097546547833446668779022839253918628116658157735794270705593974767067446778597972955420293684474167440040840404304469815784258166503056029903456569736117604007124005264568874615910707914045196536607019116164786918166375811850000471942183534180451004405000239422293629196455435405377771032635971876993959039998463969170204436607563029823794428759563354590961737068440966170888964357160635374066727470181493253374903201375592548092676490913166217674206406295687576852970298859842318705591514034245679876483205865765950431963871514076688826914877967445673788934026602320924479607282223382462752738876251539162039012275297305419289560413010957186843838936618150575332074495162068394001950736658824618509585758741937735161617758164367138134482110517536507153731082988118076475637003624289731976044500297656595942281243081883468436574046246059471482701566317934904075019179689978449703033607068964406817462396542949458482152502841248783668446281434155838531890309017982717992948745132144081175309186616653163409936552235625186000355911831974648737499016189123740038023268141547809700342239532837567822469069230824540826895033468322608534798962278340154387596563687941679435196900573765519726182824467240906977260195308635032646624856406489918234182984987856317644201186712570315506531842337501659373428725717428705112714169697815872804611327290501843734252933971566750155907697831693062275384328673111328816285865525176420569726292468846590626883150770210304110438600234481295147746464802630556834462876136871455989299938734287239951116912175100700140487347801224379860035613502508263875338439763875267153079464253550721040180536074924348870797531345672805064979225758795678565512065066794068636679618948192569647538809137338260991378726923610899799148407907064069849080056317194565645627796204846249525736046865646392939857468401552279534472806856783507636837810776990494034352256234277599966888230741990643825743204959135093217054906318480546531780971968019715154633809270841332019284039767577404772892384394330242892421948750659034836549848685482103614733852356983958102181119603082833559166721631956070163370196162242484988484624513649929061446785729666826707915997038947605603392835679175448831224685645971885397861702760420251661479736417207372530480270354451226042026158369165264755390754028884785371450678954594059951351813452708599195857023533299680955523577099658132525602461534177745842707073114578911853578410919271839917998945034603527246078982939600130499199351468932205843678943838749500618652391056926800834797402734943711415475280899642006068576286713871323983858257764741032494636357971699616095619933344957869344183195318129293066465272959294501891584695996363421681929084624872263537692967344780364272086484843625838603995770443962187268335897490465400812653791522948242254224947328252315713320428010737808344552990480994962005603056652588788872544812012400691576331671403345079535886274879487476349281983131958241631928460632772170866096162805931176524750204291981255026068797023390163801154584627794152465748124516624482881714076746148402654120383449559680554979079683126235528815354123149176225500821943413568156355001963636809030421436477541871107389584805344715501918223253473988138357581627112818259592618474424379350823149102183557464485562854852418182512690912416821801296907409160302334105760435433199114003848374759073499349898048041265734349843884505616200043795518708776935044763823461440005872396795632463323558424659598305970447592166707377317187687298194481810374821139188085723026564287952179294902603870360052236304414497927974879548648560325661732893682208916490986059583137907092445221541438977742535655783822685776673562349205505276902065779761375487082831291570390238164479994496687345251201779049748931719950337131573408756573397038906510158380164203860598647192731653375452659318950917767526526736486176681170112683555187307984976802360067901568980832521608832181723074319430357172396233167437912383722684392078150045458039651465528827256755860044004275231025921361947835714193429900950330834179419969620690308052236423850466792397701931959630472969847884720099259444436749639347922666566975548020488789138639325865102988471827922020381188670104302952873805812766215778152936105645080997343804425778414563897055138872076798029577253290583528184492820862776865243571233815066146446777245960924293029442633632212239793597610765754268297653580651457546379205993975527825492162303818052457919381597939683432630486586316045420019432593526023132483665680402493850664027675604543860917894477731443143573558140661088556963730869330156509934781766082401028148248351290295086395753281589383895902363945038752377463075447611424439884817731077885816572507723474137691195748008568642816881663895590653349609297554565665045983677462714364825515037686108564963279189166231746188990822916721955028162686710911677127133275604643954271870815736817817144895206157321967957049385336184135107450174363438256667109332994135201368513298727009077576737369651432095947965682235876204184114519336561335661612052355668405331579783747317506191997296688817647726615960487287947185766339052632446919176973296635892819782552825044670406836100422341754058121166692132739939157816069300159757468170108991167483263543057038199228069647016698634784358799618605527389612488873087490260142844128245151373148467212146618008840926768687491510949180366344522286800050403564870567142946968913969380654549031255481103393830722362706164472898915469245308690829539682615954900276727176395152023326254817650601515355829949891494274633968501276526054180143496711700838968143337116595651445206231604538393611259611798506853240253540938431118269448194759334552558517166553264721849093641370388611811197542089341762210663985314546287185730515750336508827803850411459725201747901109308898146033910120243851528851117822078206096421546206353771104823263790703140009825500792782051208566646109807504255284793934530045890163159580578499258656316024863823447147900274905770938711771449587101935261110735822844549261576809165015141683893733984213475021730727356653140240997574105805934195532630063268669244143500018993042009769110864702819177852890126419077522559181792499501423553929049662921969690786494589396993649387516807320563442518643958608229840192804110659826759721495633324746234356071293985743118374746054161115719845971985989477098685022564141582179916121246802125208846664378238614403328115416113203000747106898417330343824780232427945056350150132364748511453981510306953520078933162035525931358118535039594685512389607142308213803698215454470071643841818270065190040471369210700647271433420665442680670283362118924197660468242712661303774056321003828791725287774046941531421649484003348114881509920401611335720852856213004209711664976926218582744717640384766532307426001799127449346076715618601397174873369727205350053691374763326947961744720776334932768539709146229208229023309246705530428757977371382898577788170781596111631036515304372345420641919528492320859796470946534983274664454623777997772053486062257437804590253905961609926846940911461151389895327273028767148493823325681861157583882747291611529652122861664684409717290972077373308016347035534261768945449049508898599689183971029961083953295700983233763415101081221638889698931551393558493328326230158453622550682185221488572807572759782006415321795594390545709311568114010298298540378046472355664583707040830248923434901653255488338347059902647565826264267545144099573401128006198351126057013779183693819168458313013644382236841730659323370993915970967201806599612343805279939854281734701489417282301549545637379366311800287526458446478429251647443817094269673222635712540832590941163836661475116422645697199261704508213265350489751742941366707462916850965203125120859603755825004127368282971537287200064682353481733034198066701472283161254942546858277418690043081200663743546771188305063677424381168673926659383953269463090649967844078235988103256853333075937909786821459237093380348635305293022063382027651542084283762212532663526239746590595087108111381900369111303524833734465469586516564743727478897045132914578869917350004709507020998744532451187273235604856442977818635591881399537041700163488720438127269790689019101591433057834508018722066953940095406671663332490585824306179561251635789610891690378187662038535258009060905661289808718060066559196150261515758213590134576756201539271076691631270104089131855457600867848304122041681743848528416500461216057079072842614085732047364332803721414366793218868187154524797582582050826198851284873163208765090047541561267063649005531140923130221356668718082950061880293795161233973228064288252937196876564524178281182550166183864442096254362820861191166165139586547537351586322085721855598054613619453781257335359963055628850067163462342932958742582820316036397624043222037673277161069053265405896723951366886067837873852444553246164627392813024636688256094018630478936480426491499834481831953524119874792488517702532510887560617803928332817147561383292778620571953031475610303590890915182619961952461199305008862278881050263408831101087557695221884276460372943210863960684874093629581272988875401930798899876996977508740715519557993077313195551034562272484608553431011033281731547122378650296596910954356385060942824689362974015927660793874271161002254308961253893331116746433701897215382691045630127805240559160505142743404673903492190988087770310137648108426731163868466788200830814444498114649646048832132327934468476162653512129767480174805694949756444107630818238290126239545161986934928324567328455498830675328908237172868158009212866298329313064740587439366427550229783125304807597739815155337752720244020976262184091248595273567930173410866385701569407074118752964594361564489097981425004638024246576169067712380701842535001019010909020555804735394809817656622193827183037202934997235631077558208646098567456785746341566192478206731209290972807845726385758360801619230877931270616627417376059029430823762532016182077811567916908228710718133067135202080336691446402354823246991271296329093616262213892958808970379753306775792639278473722480747862496354311736572458386878795560749581596375317881460567897822699291318215318471570342895975367757193121072557033111783614852580197616260906352915724416982908521644387769308474100552065667044357246466654388493819254629021509396134465514396546213230435006232143093342665448898450595767581687741744712753748876958271550778564226158390930109829098868318739929291015602502987486859804198136703593072350818708299887797041906434274999095524162384767283163885662372577100099128021526861070988107525955688763979454794864162184417779408967823485653651431051219467029847813174258078658959293512045283129484414923839033422642323324192507551658276679780074653485719338616430649551231361652785719298680468362857914422562852651351577291155940407794267848665327531047594599037441931780290181760067296308289894623132263086914611873050662283358722800887968323614668489977983281382405495814814518481334087731733068313115973244799809973129744634595620777621578438701423508748686696899997160388844270809876810059709531212014575515590099884370174924470134621795744714617791239980994540437993055832891777292552960399378616518749907777805194282289138750246813145087739057373858774686055716344129620914156304677697174169941964603965987490508982148515708123770920503016654847536483138268456330847261891723979695346141991467042342197761431906816173861345827918013226677907034846933084025651107782987439472021245043507314565298000137270619005470685437130909292912101600124375614137358563590823993239038605347459907405375470132254459648717443821716766452663533459071286143558955819621856350332900674481284014257216614919346263415786212232954639592183349971895615134257035600433863142515327960360639171266373181324464406018396963987059452809341205722801769411269066289834408491698545159729599683311814692207580765496917763986758809538071561892495048930310047824223519131010275348311921147489646295567569238238793459110087434786648364240218266865343196737239033954992126184807145905684944662994445853633593912471692630689811553893989112635467795253986433329955185937778683057116195608885193174672559706420659694536848262260252171659110611036110291254805635238980531425971657252535186788146023143646349167485480993731971657347192155701662617525974497597305723080661516893442507118940707732683883247711349710466664747674793435838709124469979951954269398207515540764232640928864474846229721759299819486113839651082950903132598438326689949291162160167066313053082888200574867862507337518176824017282458783240209501489573430649078448956430686444866631742248265874101888743903168304686649255260075313177368323812890849361040235872214181032836040375744235044112025861916406237773713077459635266390400590290178954808567300871972888140648549560613341068871086877542959527672429918026627672102508668467329078541735419892771572884391216214854946861261802033725933109747993180809370168713264173380657031862228541269261545123803044123882395637680515243893552826156362251344892265734307802331068954598401320562836773876550208550859965767099814921670959514398017593468861445603682255070863763492118902432041483781545240507796737073668307400032743020795606444710589814809232177292414820815526063744663578925670549713937866198510461363632195858652031163137014109550365309336729620644747196388616723294347311522923493571407486041075059129507329819026604283715845930265886046592233757558499364438083443098085363712812138168454957074430507521807877626582027790508353389798008896555880275982303962588585393545037030356240617762844817830248034887146768630563147428247090072094119043612355660939282032025605727049840625035544707066767360374503308429457747309798240396762237927035522078469251927223066225002567462576717162748436909654467168545429032373251579639137359715835396197315556263511621162265131413806190745627377039813399159993057354758323014048782466393221276363299445708426154740430919133578170924146632692781657222672884581796125436543314566548805783724182648555323470054799729454216876478857845782268676052184466845019877579582393787498244097218331079144265256281993150754115648938097921144572431976273641075645933131048709171195006393174498769388711647798026922112607326008898967940261825216611073641091555837259130370950806007301436318783192554116784076398685937184980965469569448525311047415674700801249545138121481823033359831623628321450964828549560131850254402543904758246202084336323092116187585771804993098463945823422466954293431238271938625365753596408894372663465557166744875308492627397837589859055339532714763990254630587004225773581349617800139940479833589042426110791360169352775381965327944881720089275326579965202652550008099188030012078127730300599554710429850224397622185755929985048667994980894357801510058533761613074909710096025941592621594306138818955370948470794585283365719009003323015070681289979748345095878670028563346381902029012228207527252922910167091801453318233550614039155933619764002619521712628743485723450044487087916430766202775097996868135500493276374058336576972166296011390473294798710449586295145370471955294992884879944718292492355410467399503679170656076234950145288115356966276185034557315512918507981985920332818690994260441148969129979478804905618500462721215133134278458287364571970080008895866256121491189314508694387008252725299670548261637783459265166348671019984704115443009667733457757000930235259410408161291384204931733598671150684427633362893193929270963420709587956218963728095555644578826523970781884229072144995484793107393132680026105015227937865796319289353258813639117968494917047817382841383642136394354674159955281902519489393135676211740946904642460031083215763023934809533357840413022301546261055506707676753577334535162003502461486035037916447566105075734390100877266802323289375969513492675906423073190072282659695805665641489674009837311846424589798400888047024306484435233210243860726954376633648824946830134648831278583754010647309550222369044054869040117336639234169203846289628686911696126567367312378304076229699702853148324234931357140507600493800502531031635026681718814910011756829957041468898168764646152514752312782960890244962260450531750916712769799400829189449332569979501449401203118871414433016694483692041754514173559874860594824258787986938169229572594766140310129570165839130976819176835209480030141926561729614855897029260882703553687866697494611599209367093744583438841492258824389235402909183340615524005052046073933839259055029839088094720309212429669647725283143616458243438180467335022085084123941101930040371457190716309726799874998386340239376929325874469009418385314680813876629404565773118774145376113405681895071350078251777730435523948011297710898562385881152010905935650495798460074002266887436092759388596857402208436474313286781450792200092618513159786483690199009985281651454036699719853309197253267225121424713478652040851920498562338763998441743846453497966227743510529030658974325014184540785796806356728796324146733408488313826470847864918830168590112922516381885513424916512408172365040567237984102014813495397654522410465168063874346644154972397506020868235916449962635667977176531453550819045364421835164932351797709384685296032829487421474516487499370451764952926426445775009005025288162846296880314014118620050378208080992167809720587463301684739909205274334614280191322969828462676502044780005106178356272883845519007792061818057089951687190732995059678117355898775314034745925607234626589844136387586022939962713027385425024191801697386498860642337686149443816457385104168625167149316333364777009397889231895665401976324168357501621089129314123297366925698838207591331418515495317584924667118522735070371206896007495473237775569837842897886265763910699125718628074401679354538079936644796198605784898191418645448639725294507481791889687070614863869043921031829553914731440327489651470556935490980264402398515497536892665251685473269449307249399968525536526016012469057388673556767074268209360324349070655928997503292116163592768736483984950623953915289481194102722763342217390404068424503822712933546264018103455368157837594401796855402501644271463741409099297803198064904955157229576743331913278999712259134154022676819793436491095453632120040709523893337888953354425004434854560682868461897478266159443541801888947127891932359956429690912932842087912853708900728951581741924148165096483246660258860887366715820003665272594089528922933035948896862313994585223285301326757029250030055177903388181516880845517615472229052817980955908383341366503538474976225319596196206186804112478189839983404140051186147618928311040292394059853744272345783080422717890278635184797378416977562741233551077705419603032593572871205620182646407115555387960961753911023319833249483907554280658647344147936734909461952376185585577460991295855081629656070475843210299472125664778538848955096734943686027082152537833792197790947317409067921830507594624005967933119147186173905208388894599322629484060914418329693855704821537055872167715390435913299411102997597320572672070567187967667147721217122397645713844036380102603431272862897167905078491445478029429901483076809285468523061861850862639904008132996586863759725647063360910661125156299566115641125874177265828909604594616124445678081383893297355066809383146518374827286965919126790680347624325373822303442036634229618931963326563503672532581104113734234426948862246496845296052953363787028780380104361971854006447442522569244995837408670262004911941039778653501165022230558791196129614120263482633056107804342925757189255733305468138034228432707689118335680519284019857823752215739822928284498841749008150526882201192665881002904670903574352109180967108414704373576326512295472818929705015269241370128952037927555827173477460355298929488520073892539738792370738696116133257383321352280952357761903738851005563111148582607644128277529470009642119774674181486584593033121981812306739863423687585707014461541846297647203514756469735658941413963381835831894926419261479506955873600119625276411336334033830605314251140396424154568440677514557191360373272392509076440461291570118206804710257809486548731174323283038532393590765178957355660394988242363026068630678703509706451566117672722745383708138394287892914944531091262538819657411044208955035049403900042981059440787017875645860354423733587330265307780572881243057424490188499569212771234565855740305286475843730385455980962239015754367040734385803858967412425614492713101856437117297995015337913616622252752062164627494068541819782348002090421450980289837196405269106224178209077556158074123613011856453312561808319445026699352555580062082543036235396527508478507482573943255914775259042435089556995500309997904979769921292748397158681338859010590767120228429157200914408732689156035531042004872313602761379086156010168478792997826703435960695740583470508501144878296419972331533685755944781669815152687205526090504922845047445402241039723068143893186997760353720181096028185253616896533713308168101800516034701399117924631841747657236142777755101038892381954844553815122533034433286443462417918515553842464081096344107270824979066559520712028462478194381440614955907242403912336485229036227004430647905292186920089850168107701405150708385293253859139262861566183846001665057976040371672860897247236825338170506138354595397882687638323726051191317686929910478568318188513176662998189661539284092195915584972435976428653910291114261246845478488429438242188606772575934237473247049928212001983474144340113560894990462564159436421757334846575175368982553518768076198623395555883232553668045137053218275752988713860937264841038284333525296775414604049613372776854942940708834192040906824637876332489980169538891848147286096831377981984977423426108532304904627210025979084619651622302670220400225637422493636463082565378633660497832583380205929413117319036064317689086120440250961353867481233245823004319376130933729831407999331439366040857513711721432058317169163825030469224527901139802437382877764252709213486760750477397420332852759012861017463326693031719447467637733637691300371885137600757461385329954901543745094147852126771351540560767087801534130657824318074457322272909136693219925849261635774003033562797463065043768398549554086019356742450915470726067459923516876052388563058401019719715146591422400540634305323780041048292143644715290832537852335520381462924741395700626432009890579086393732038558986745981667220849361146611648502272717155047298766583827401995711901609912004587721067423776892866184191568175101833401084696506414716767242417734189316784801357138997120791981329901569345814658101147051920618916979532572944390230559791300106687324903081306868888391313913011784388500343631552975094933743473730433908454149781610405309602464500816115708849967041187409989149577396772059693612702078509465069681757160236725699397934231096210601308723313292629503003014871273268269811937157421991664246745645425636953928496213424780665865399370201787462029023960425166995586237461024201596659956675835739723521573735152286663238258110258113095606868654651074033849356375839737488247499592553392516292189908880500292463324029001061739666422765711555194365106743852516479938530914586895087803649343678321885741609515999304901968593392978088061305006782775008326650662938063680325486763802964364703046501083097636902939591294157477575005736782458113300556320130496923428014296595986201471787053736836085423413583556005801414686070851123098413577974366008172154992874212386165198276984991014768361501859364474686930134182120030904152197358280849401337144086489379098119760704708780131631953195266857087609233914953062406882715717812705067337672835794366727693013548331889201318508268042460810590248014992474092887682468750211030448507498954190464406837224161362828025377567703539214809501541795279724288103344653503432825311030879146061275350752513241293639820089260311131235626481964734066393676093709537633763469517410666593646082521554022823142187664305743791274437500988226220487863941766486437103154344209666951083646167399835887446405052504731984701008527809176746113788566452135035070741368804158714990765004473800101851424132707431941615424746778660220867197809848040174153654065774495513513070937783758587602080967206016001849231224744510664166825428223648598299810988721257510794847542351778130051622630561478166588447695104301318453351986733951227251001651596546318541208477286131691529858075960512195731152436505619073355398282378697020510376871008346275522711632015532484170614417668946976734273124619405171642831715812469946629436758025951001356204279782541360128966578438877676884096364462720015557424001992031242933222565484985352151365773154360924887044975639592202720074239199552463863605788130189755589590480549082734106848429917454005951422676710110282652461522843391252532042372913412385870210463341037681517894469259448617856827627412456889931441536219428444454377578162401707885744000225541484150875188458174214374778937704632131464165724346199900971607897019182920934016628923275057027555436901281345367419731568888402916149641006539437525690907082404605590653792210346560237179875821709975796901938960217557601780475901068428547314720189941537267943781731185301242679648374379204836975555281163699558063026078509984871404168032857001063838219001728857678592881314296466785951209474191459929633597052649205197018205179571591785212413383841464483528759850553633045447508511874412646081869338812089520170268819888099363856474712763243857824204446577989645150616733600080789113302989280960045577058796642696490625603259114787560901118901838577349367834155001496290525851205500281057501104484700502893133467805490424993336870958687927512952552134953491029009954842160321190904036866427433811474180529623515593967274381920174996759311982250115590496125597556025541177760416239265935575145900172864386655414380954329620506322493020770411494463970595850319435941001777810866188118239267177112639624301699116904548029441049662251404088108192511012639888754348639429239789575835425155902363143177423304525025031145079145310079102056266987692467625115912896594947164069578337677950688004062404013844927250139836626935434078460436136594811137582503913116747217538856744833269882226250128543085479370494058652574162709593790495297219972342408980034293603877122982684309868531096177488767731658805205821927900018108003860067680477516671178544650474442876030719119728263730052171179534575059674970788161375017689240415368203478202915203151497241619288385647149705864094256579628142743902865681725421819197098209065382354147478443781259762149007078167986018867328027481489778871490402862213195295494408412961593615958489152458629863013935336375159226306269525785790134699216870587356161214591279338079515236322499823390526609242058647047944028960651616472393188210667148245045238213381842236776110525922096507725425964752202788767323436567956158230478600280750926211180841076780112206363100677065789312572562472360199949666074793489356946429703464226798803771886929571875356622172880977633984447992432668538907467009606810700062036587672270605435869035604286751720574956672660072249700859678564906779778070401582493771650411860084582983039270961266791012037679438390784838237905455428715313545276038804330763214808506049753271274042775952354009552740621785707033206903064328323994573183567073948257773202239612294158471079743837650170965549955992868160513764216073524122314888388807408942773116710729405429826095533355361663478089220903397569853485097982810463231062958542744477325883792314281335629634970707290003277115044172964899281995907329210895355128727560367147760259798096003970733577536442726199901004850231793572850302611186329255580333124652500222178832717363069440731770555425480360502538875135556719499056158318850517126328913429112276530094497434356367676152945208054769683680129974053444310226497720277175729868276063644709502144859235349171323393386558133058860496030952829836546306964472064404248155217396988995393860437931807049606568417247725876466666509264449476591092575712270297565954201216625888799715019833162046067928742582716568849394324637865643890041617863473799627061817532757318965849729165813988080138976880044417702448964785434894117797594494371706197544331809425100473542567037635322543226126405642016580708659170856720011206201183647617401087967157044026327930076939509767175288729625856653611707842255136450428486678191126922719734875164510252887287058335682397575721329519609516057775502051410495612170224505051710804883094328844227416422351154156238321086995004626915702312113176941998990404303777914966905617434639231434757538613081813163600420887946772247166189428871040916856498867882386698725992994015168483450986589103511266402221062280537178185153144108036530964470409648895029067800943648333758181544036634103141050194155590527695806213546638995372694475671065644291290008937837704970984042753760180535320543900454849340528358227525371601974163551129749292351388664240301449832332303913741352019238703717644859352664122684056667799423991308056251594028553940642923978784782021498860767631355374821856149991076870331671294287220764853276993333234434294907178822542619700107620255401243385704526745443064554986811627903663926210198456927777911144557645200842037385103368192857958750350349994635812266387755497322119888013615574481868845686591259611095208407554355077987770766249364393710590314914946782215474999211412893595704757816579645186455303974882389040419196927336101385527548805554928841477876251733056904802304102773286877695602807161345678055817131911784198756180274327154800795629213765062552066658232399424700839936998869687733644306978046320933859741239586271954887363257941022800999481616981867699552447365999188695371707467067598530337402215981812342581542691548629054951577800630870659868172687440106368286970069218899543636146498292983472638417164330975243345732369190721108627620434199927648223259530290448777127370515692952331550123984727629529011337339888586847086162413600361945822991840211614610823672687461218738540639182266919614668240889637899980299916758876125970816284821363538058413408028917622996582155926298342233151457376342992168545704201276836196640919059130378783151538929805259074956507040356154461936811453843039006484098256906774644667725524865497663319147900428326000371137042004727467359902855684675926639485439481674798377158407478438143937197566744668952632163858203047317823970066423279898958437115972774476813551546265502130657861875563076528954647355326854805247049811527243534112956649974216059689962246287638021525837682079278429477906929300860865262381234303620233189142525742990577183007840599348198074039493658925828470070787798180724854182265074740041836515735484968419994199405848340613150380389750767807305411545530132686925756766894100662308690807812794179058608651935942902842393751202474343987760162316736600618728945474900112391103152801094189052969751588339620284611539403361442766432237917372186151775622945851211421449145765576061626327520056903167486301814760194402575045907695338876331549425206334934361716742664569267020503727310848751323534769501351635194981223599806732214019675148625600998616493824457508486279602046488870838659034951403323616670950540330725690764864304089475960437586112321231668232482664160192672420336909447545041739190932573044870634571908852227959348931394152690601937697604362235786906668153539326778559783279327475191977569873040866955210665555336081341385630409866616799453066749206661174513718111616116392558189949828176315978671569547374418405864604462775831175602735795488299726776281405991144964073623601871007401595749232138398219974785085660845559379312688538654119116344908473514137436273240360615323049021940331888456973740436809600043378131513400157520010670110855577654344262079696443439046408856965848447713841604925924157917590271310602910000390641228991741653258637523994482351082592256768290069993219731437635190114061037359371625907567940931174328173559637958832981946949335443647812546970177358929037126145804012698432869355224756571462124340638197918882850519015929533326524451197806832919813845673134414580352465073926449266187880390305665109870632858347407119906292776531047425301429076079536785442686908390104160552396631970203214915587586862961191505997267135352073309864478600818625422175630708378291007459439390441013153229681057096877182301693122242166462915268013196526125118242552840183290997292865244632582285095989740327065948307463752642380104529557203795542296852239928639987379692250865105325169910275854982529259618787966538258122593395315150070762747679215522035031856072212190321122250261816550938598506724714504544430749279241054817651762112085538132858416250446459456927753772099566427440034729540106840449131434257746665781225623325251906385163896838037737046948353037309178906086749553805923007683677969702674805110271990747566853506505625616907895394697557070335578594613858294731966183351839420078260765986993780127341299370385576867871923107841621450609018327042396551071640993450614911493103805146639187002074937949785515214084611580747413291366669018950794760621865892174338035566815226543035387339804798248180591902849427792496109418540321757282305010067378286402946435019985965351931477822687653293168517251142872787215844286227697467985091884579114889537411611765906834791831017102428032565505169281069142314612613894572768400125209728194496071689370013699243222580029015727164101429653074598101473443397367776520166866616773127717197093896991434675712021611763496599765056246966425745724556810431374501029846766327721978214213397775870081462541681837393641766482048658616156489525815926140340275455592228401779647987027857015256431456324043702023452774416927248413663927637432965350702933688998417080534445336826357823392259884534290515825666433292318976209413268543044406169055038718102969730557110394171537763856921991073481475307927628203762379743359190536554520504979764366465263075767157055937565453324836192045336634955960980594292618180431099560961705488979708025214603697694322251624253986883777899935641708644184592177514172444474394381524938196120808715685886224483403672694468491660822958398155642329201392961987422362022893388216682992050505289386973678688385100964101350229330007666878107260676786831478048382780139106937423320290380754404978445237623334225512560284590745407340642770616562751654741369270778098522478773806070005741981539848831051781143408185577934922047294637945900492034496020450272877116021191927450126433530615050454606639061080324242174560441352019714215959871376298774964274644257459012419210999527277823905227555418574988138692209916205821674786986423907937361752828399439483243185890966888890133630250517591549014043750913816830601119274524146994830431891617316165767163779319897640643663800892372552872329999399556349889218263397059065935041759501446912898375796187124276043191645312328092396976246242939408161701501249682344771977269012010371600992436726508727472307788101016614762871895885747979082826709182464501846369698940567812302800452428424212101808299516591509942451929219819960117329996711819719470977143669606698652508839563028381950274161755068849731004200118871582066109561190823038093178108907322713868887101744673762539087695054458675216350011347206489274758822772189277327455442769032693625829015452497989277950579782917406017421456587155575728649120335173528075223854471252750983376116596998790692195649649795307769095048643625282947566113799632210809190768469724543087185599978816873197152486591120282734040140229166973997432413503100181623434761079864462392296274416103052628447170046628776763984451779548053810888425117613863901419755821550595058353716771424439455194181942570242140110791545263826165063673468118658448565076217147710444088978722871447900838203421906459267375180000474441987155129364945157599893708396958812266048727311762346232120766654699291403118810647742777035349546621348116215949372878000670763285906251925515283048413446569458340623983927384932881469426236189477679249980327603067451962374027538916079405950977714248917710507486879315896626721510228977240595596706938454644407754970962272632671067633831081384778133657711145550169747674368456945200821865148756644729165932956785864693322517459150313905952785890430013563184085841047450915517068074484391578206059014000351017636443217235967659790955624226740111776704681651822480839367131961095207049346192502223451275587697375027338421143044737467593613158108417507708248510712720890697234874396195963554150715769637204339187843893793630477221862827619793277891282115999812489589509496733375479308859344612612067487310335158841756885355027808193559466254520250103137771932813660103179523902531275884312709630000663242741958343671679418386183038533048731140462320924182745637545377982458677832562649264631273893489367323308367368060343320962371031945198084569386457677928227120454282821536656181238757007625668953837961054000016482340759157228182351550400560184719371424782869994347247355235167887135688714697771986684049592428657421589620888339746839511410473346590913072089515427766607915724767430903081885877593584503531333171817264646611785361416172222614398900856989334712916018712996665045954135943312706871598931913965988558938789061818284924067441710745306717052660751183323020809836942967123149877557914743429308296599708919154904407105625902656427300795581378079011294659333226980453198809873860638558095422452602810441489058255374879065686658256415847876800436656959762017890393444159533181619801673632681244400691861923032733401777111559962586751876009358873118637283732752142429627292249924841931387826508412874915602673022106612170263082452105761004220028363425125243147273569024303293593063739289248385795565064040234467326336702000388269582510852071363598737346714099329398364659955946309540709604107255896601851073633554297799279093771605412369003610943646891794353133657908794400389276635926709533347696789825025641602711353207426003431516511600768601027267192296599151844689313085125173868990745219861355492423995675749204909596539687732120016400904277718773611049086041929382187812417520126697715637097057247907227319335505253357288859622115402134013021622439120199422413919479839875251213722027543292275599268898050287542955960519865345778580902246569351249056187877328428063816268429717538523207014908174572541358819665763936802699063643120403389683829413183180807430597951842311427919622247241962252275138229218860632110025249592351540769058856181102329046632375200225084426384716454371480775346096499087641769836071514171150285063870155556971246992497069317463379340794243779504124634927166023787888582318578874298535228323266573157651672785336547309816120221317246647902627293605879693225421846377466526462801133913473721836262042193408555078575125775582868223874202353188923239117790642853410075798594333848900304737808358827426139014998363032718710781923336683947001495219238485830474991245716482550816318140791774607791525786345498708494211938449736536305552879656215364481423512136235044053746138126302725735745366432674884196276774941315264093726176546208967792316712202864674962955430904590028511107911404348081770681985254457381528712704877477944115011103512285268178737788256456768144432786055367404484155678221510278106151936278027056837151568853377381164076684019317279421894427988809250289011987926899969806705721353947097610343730358133729287264689087356794824636933545343182557574044737529514287603306291882401401420370760972223148328546093898038260582022498313306097881686814168545239066008326215622046425006558371157496255493083706394844513873813004679210525519916437787522396002819805078085499036578494008211850109995605183952800507777601224301747034613930950478375453907737270843261300474232266815155283330263696873737264518089317402358194777872519858777100760297176823030272822177197373897686023847604212963475811303604447666326093162780845015938145795535134571189176338350008643109803014326290714603321177020639742391485190852452223339493133570203650277030678095154030151403772380806844215756037429418893165892696053377510039639871752884139234916734052818420940735091053899587388652575636956281999655547711729720591255418641746182660776264041945045641190428487290664457482316502549180378873230777091312965068584389725770846785451051184756208552292424822033346573220101770011047639884509042539348716477162437399733743416184949990546308674369615205536689664379561518714903709767398794714807474600680508286864434324152320974746371362834533734303179018374720797619548818279675485497520067331806300098448668717443860616518657870125488726203275575988881956449879320753210839590323734747249728858536621885953985530476910959159068703750435448954599316472498708724018344711051033822546626548121796940022277037937810223047605177058243135720850942363235807668139375485218930792423004084044431761029540203429674343263715864983705526128334015316251582431893189941876418214768850870938721376979188497168635129369059197596029475065972740965892634217536774867236548922519349972269925106263883908442952615216291883711670927941371940866850850483960665095618481108509041040234610508426725205866263212873701345163262263014600392133722263527350134305424806574294021157630098437961282482282205274734383125472029980577817652848193345897743865911105027973256502383507963828702206099135714592834120894550831393681692190418548941155750497548615749500201704472498080415579373092035940689100405554430436805552274272269060021586053748591130021158579125910234353866692037423528837062747969365116034103265665669004857901292486827642263232874503064427863474394878906061308140934070645882116601726742938064996537415900936878633741455326833995487513290918755901634012522251917059176931748724141942721467712600857373656351170360857797161387135721626561216245123025687536805313696817977791274349324893656306690087824881294636077593251908585404882502968878147163379585092682607571849377295865248091057188627654011458198263265438465598538677709970966142206163959459905321212796732656987417751890362137605336455502805078523457344950852429904575059733827367656516384115836613061358905411913910102590244053216693138819149179146773064073293019394225540980451029222276938548890339420008185331774356109965255837470717607117172008747262206971111210991944742806031561609658801815857598241191165619381229424608027938052773263857936597614250479420662341459532812952803723301874616970891995737176676518801768465058960791594091503717970221984494329441681517829159387071123993945697475723948279758471518317027897465021683422196083026046278353026806263922747649841300144527651678267807401813067022246199793912139166960165209912735904916710685163072437979595734616965078055630848695944650234541763124043397494090013416771792162136771800781442903738742895248505818039587531221076681463345155363242789017920964013139067669442764205841474664523082382928651881180080199619244194112684017264370859962662871068810910375463075145756268362241801940559809474550385061106859063935838693894786588523610275737113836292988021221222902994465767730485102193225214886756961965277662571114306432311483362434703009400086254833780818397873185911026723844092665838149531185426600684137112067294036219524595617513970372690375832083777483646782202849842246086201588887488635598855079288861939755414347011066113332297556861562177779301572968593252505642414057325591353059580283651291273270182615178004151647736458520395875448643492309391118090772459358685073962522634028060280069000096892691325417099329491727004559326998415776560426995704778226521339448585757891513385931806901458615755783799982111503586259687790086102515758111631804862882314073334701679013282176629919145272852545206280109498224713171890484076679421280304381427172421969582958254006194141678450969998866757042243302150980030683061142013727618517482135238402248915337388141159895377114787235210136293971058814697545787200438474683929620741954181885396726402197921605644234768823615553530095035022539548364754381769147482325773977961977378773786347912184846127515867115583956793169033320627603850623341209449667780249435113156112633695679952205326744449431915375077966778270648191811004563905394708370031591147747768692890193975533629244644032863298866498267966978358317878111050291440812696476747312561226321701955377218064115113493664942671852108872701675295988596864962914118875415175333657036435493058205028534139525298428619859158841824354646695443344280695667901275069973616352959849403733639853408099031920902630907018425310174722462386391384254441408762857288113758568553875528536098151637726563398351650418932015839424893602144529794041540238130116769446149402425733044065262994899308003036574463157085299528958048165812474084203729732125297738091421335628858737261039720088985939428889588389116218855017206340570636071693680711583148814541983082815652592124339148597296432254353964885789083145921657684888644447581753521260488303962186663344494703308962826952184578680955079899726361990520874331682963073119817898733226399909925493613038263366315180457431599015018872638383065107253757212244747963146253813580830754519525850578077303623757343730326431146580176758796994331641856663815214349971975006624838908792075074488411078627558055113212396255594736354852347175288494778892556877363993349449329065372418201610398307350841906359676127811324352193115601912269847353145853131846321396767175938436631552836965992799338796960170923038065985647593404116865958432919770890601839547084301659964101144951629108241845008130099135710160504835914750135401630952423055359418657753340735399845141762693544901323512829043489567316271896596554280433826014278670743039820547004338721351860654984189609652810764645279011260009136961241963604668191751893120000044266665811885881289032901897207625963263964005934643531718874217925253754252910362556121523834941119613516720970819841293468195454585273702894675932702471214209847376054135358668901706648022024544097101722027301083584265005148184174388519294801132767316066721256613593823804257496458152159163452679502449315547426198830647358971509794266958941567806967015286028047178690576545438194740314240998309500420661634326492457597051311435591422900295872265227136076268505791308861388233070366639025993831978050005066331673378394521300619149971150900712133369544865959215954458747874212493640184258570288959654785932080832274700276095267799209244248654006608281232404201705809678327796857342479413515957063566168434549656740814931124574529600656038774476021366318286157630034732971883782363465904139678810473796624537827478247070945320415939703866079579344779181157709216308500115717422333171830862314972270537628761636910866444174507995296363222514575479514533848108488564856786836404758382745840735777317848623480432718952869920465664344961188600149513314219956104620295706917577283269252290477137195844640337698089404103827772512059852690948656137575576839359677274247466584205603619678112441578367686991375083258486174584791695182812980161120185561396633099701068433482855556913855714867425740523353931385199544116536600821198019919646225452529014014746031290382564408572681143963748312350218981470783245073307497547577256207387240653495685364897343765647483677477214998541127212646994850185645051051114041311954428295819411012442377973272589455826466519075066225321114414498850661873301282008905664825188105493045554153385662812028796862207528588708756183786421333567056877169685082010696610020615992739347980070820919110387666434906747303760901349935163259993243562121416114434951870373655601132911564420382618310695247683102190938562532169598001733630067884572315569165187433347307310371842441160411832243754007360623038914634337642312478350394865548944029985783655106814541789830206197342164955068528449103364984389983380417475092471276405992199781835345969206121710495524662513780560378320964774556941899517544401876912405991672367764665424421938253623981626415970722755855041217257800065226551701930071644437596965143759745281240097432247523300885485095525359746322852227937482337210392030870171061971502854387727838021115863437442548462882041581579398561998173435877256075406557171096457006740320017915103147906452318250459859496215489977403475234453170026434764395381738717519213939219809317718710090571947942028045520625683846270120054120402822655609361466476812294903183152201267164090093723237564458579272905888814136341716835591109868614087112849886962593412043532315124728375498963036542514957201660031638796732947014116153520881105241819240344794270912040594928571038882706198176704641345075636665379836452003143535555594626950698524991404569839562535386332195429634935966046014988248982491439407401471504434221902959513345872937930621289999959661940049045631756956323973857582131359491890362500752776262823071872284320481414315559178732231430478416451313294438052705082196345551503036079367700055990293692110771627656996093988077328749748213948015686038378883382969560374105839837836983615855017128951518879673776338589628259751667970998149931331930902383278497046043028722627596625444956119082502558336685606955984318447155018800830437214698342113797583208707953670045060993881085109053694796776992443296203872062318060528860583378274834082604313595580507282883070214853482901558858122992752411816059790588978917217110738520069782194862598437413428275903342252960291749543720314321154926118022350013739839318954871403754110507694213346737933599161198069071754083179688835000883876143886222032191677494854701160710033333303757975134103168090275074869401096705030884619779909220739071908614361642462255293855049884401486038071020192378077206761007258956332440120705617638258843629306660591842161389741419644704355371998675357774982759183054071380334566015153626385988010011323568557836113707863699249662699486622482953092218594473873655339665645500930509514011127761395981926639104786943172963958700649201552849030853197760856883017142684936587206991274444370715821702021176510987779810518332539768024015602575801865913516075602522282871725370750905837737951579963238725037926876597022083972666164308786109489467424090468478366712071735896557695751825654793210974611124635588997349080506322665958901380727363918215119542233937336704218119242959928153136344184818688602429377335605479526787367191721344161810817863762546161250511090447953734364584669869246234893567943574957133212257136097379049201965645726458960499692618723168270708738223060203927784119907191268194962946676291416317625850681286667152641778447526003529926436975923690124456180828868194531547809905969636453340921436300837107988924183636507533786768433548532294781981398005478817171941756543758479463247706357469884357316960952431749478330657990977814251068996872646477045367903091120564661359782885004960049221425486694460095456222893480238240790182664075987548296922961942024537495429940856867113943833666220480263076446410069306157322216292028612989257245090356490873024974840247943996625177888990128050654287152218086911210965777046709085745721761102781842127306695587535427872561987213701725059768556107755953024138789383374963743770396390048013151117132663315036196683806986345514523142201618014324966732500990399768923187115661494587217376351792091557927504766146758567738122861156466104737362250388118977978666984834201107532471685282273330156575856182856022760948122068752808849377026090360149021436381050918067423574540186969763371037058561663521335210755370682667999983423237539139989047694998863412944853890585091421932309874086079949165542126572498014276391427693242091237329477563152297743200106537296478167954331294551170043495674893502899949380241335943594378483211515102757219573649490074993409611720895365077587749233940567889905471467941419477059016611921483106164890349569697400590232718213742442448608956573787874950725818911650018119513747623879903136378740441043731325457275584650306661611948118990073604530217842187413129424999372575618444495895045030022649961776582761943622888790007802758819046449755439167931066900221186396413111254835630580180101966688317940789111746799855592941502906801616709416285195726192560811017526614457985435424898721312955419420604357455997751690134350916219249251182873416375492978809676087686498871973601277651766085334508706614157658841073238235370332402469397747744727615919838356638488049324926921733389890709934789183146081579121370275260167101817829000841293566378558859090873053278353136552439567593786874184647465463368206448735156161267879923490431572828531006172841151928210943269071479685598541825254463808017065874755638507717831894017548243307214887684772876086273792495188553064967386974602412488372656728280486040760611344267001948812883986460572241335682635049239460812894626051502617126623324532420354851582318937878528852683218022869163083685849781636411408472181011039663158531311697166848802415058047009311039151264353105515981361593958639713735103781170944445476443933997634982585777371111826335664482926635851526938255761998445134320374548967722187258238000730583215516160001174032613131745478773890750200172731171907003988661334086439465197994516788304598487725886751044014680821770049906132573168348200864209859373273678677982769209149316544494325435615900989539384329302477776540040601869760160988944286129223398544098073349551007742116074791102070768578621116302029332403323427763357662484945476830619287253165295945877795173611290025686603852382289094368707319216538867908239528434858316182478997705800521571509298304355186784037140179656771420242094813679843438694301275392054971890176801745617455895446290002795015250203942999337988879158057004596713251938832463259622387431181676404446389094074716246606765118131288343715744822307296251060486149749072022292092693631571511914248138036736205419810506250798763871090611140801672289871548855245993019946567113573149630256713886977346873927600129267022445564795999543501699481796306095251673840653140416479243274359998443889902576215816884030593525640854376964689181140697133718682260095751185416231169815246689305385579631106914928615062259973751479104054892226100834349987836932930220260475941484882567950707947928585498792909652802053605829448754851233688504246819974980706483605191625373623507924709256228061185081347087250313390194121371701201748076995167722264177126213672530853056427067944514844641901916205684051887733352890886139929682260623177181755577810150660351142373472996203567579308015140094451764405081938708815740675157881405380258238969508507860037289741679528153537284083153340779789281620928252426257896882201839307721172674663419292833518512280408818069717265506198848252715412481765928000311077775788957938188526272430379133711458824975337292683110625283873993604901924458828433636666463881306998736208953687503946055392644362504827775786527314476872613406599046639417750122842126853373127048029083131118284550947462899261973737767750538060148466865249771138712907525549600972231719101013418414092486879594815230347636825569013237382979907930247826033649339357985626021531539868714554732496534523452888054694131221964892891163275444814220403773124355370563562112948323953257348943410810111583685877060837131568830470945056682788299633983555557845501237247511508553797011886423135731593239244325395070878472431572611567376777628629925371242952655300080273631234205502082103836796415936295003876654743214669257888223187634151805477820304516116069601785863318202656868968916411768718217963502558274139259096972572768512189438764983805186652468537042157072287730912658964117532758991524620189857395007492443516949922537682346176709993725483763727930910666633785370055259255607800960758721238576889264779508209100772133977924024570425548869332045284879207801430809297156490500410705367606541516682505123352878759765246819053473559066681431229325321451899326598213092182886097606040073144490007450391882367194398264622727215557516558807684422322603529587036015554644862253118101055648722543235364294595221014493490172513315331303866521353914432373080637317081363238924546275555724008540258432874548359529094767015610403071986213444374110626116691816844650339825597002284100592756057420470484522609642378049215459604149984138714021079370776424271439950677409250397663738630128108910793983935069487656155310190919570037583228564375367287008206289389054737034246208717245763597584432202477852589198063778949063083827753255309861084540532072743140123413058214635573001687641885002280192187317072306747194128756408444842077409155624751573060666328016948829498290815842320856340179774281890395025107607790355803529050764259633637215230957079795441009695366097644429413807524543539103090708986825172638911657130061914092793868104707747442234431135981523548642136739472620503528506393253461410659031349414989863581351235905650566128491975337858936607151958535870135227405030423960431860504945411180346574419184592774646161098921145784083612600582914560656134296182487150193711548723244403276879847755604751508991782547583238599097206765181325857868020832797315244852134896918277560991790085400479808558029021407517497970821625071148385494384869984046330374396442283110680989394685238997782533656685207438239341627240753513858677573867911783197898614463308255645476937693757113002853035332367028025390684889284812974401088743831817643925721278186415042812044693332065470848703444823475432189826113084222931973226742265914768688777215388689892399996516965065786717421928191334551406017899473594766394557360341913584225528153496108025968296739546923791096623465402120469173334918847381374140639259535153522074360592979821734730778759355839018659540479962999882551602828558962845326032380493535534288127306735547240287078348363464414044899958717309386794466162539056813001622799620832747769155629760288404252744984048106168826360850708933219297318921276871983202355355591946701694630481068323301969640945787575821128858158597048205269865174602103515156480014769942749758083892973308589663008983933200316224789550809341134743788406223578596302718201792023591036206764175204223574462596668995575886733749873906831528416470205995356612717381183804532004770547614466458986362857148767735027814244815625768117358357509791306085326303735491116028270973975648934873246065881200110678188639920278901727913934901964756094012509257184706025549776998086952253747139608197321559489319404840810240088695968056444412841759452382370945380054006023775549641714854048367491167041034875348986663552929771404405307543409118519475156771508336937559305604371891425334802926199989868584867855896060987599911757191667555035016792701133960704412341650198590282341346737560889269427523321514965037848542139622038892677508717620966985171355900593338738228238946377168297459233570924724117557355029281482697810538617551329999227572359025686390043732745905681684249353326126806756973848079380129839414844277917883771863217937165405136910125354789401836384604120438362162447944813832908726863046286686361942085867536228458872842149452959424595013579922451168365944021032962573018132400861818762942351318117251559654741844298544346875551853268153997319114805026759799456644527893248783550363963770950984120736871607494426414839467184586009201587073519359382929229127016016953722794887170667457384431699567762476945419894812546851601083478565666541059981422075547248059278010435695743320227582192399381853573129986115093812263183424675563072193119389006954059696764155135786471814864083488474881454445826934972149961199583036968344143963076472548788532026381759219661711228539210405767023848236586716715176689361383446631857027094863367489897243814432942589649332281978734911692966648202260091120527732540058915362715758859145632087784106444119355768338009908372988817317032957781579349916703460957635595363762732702351558646903568167040587143217939338616953053664903989341444088134796880550454464392524555099167656869130775522227972537919133178815408234708313778156105495509046311970429250831087923859128737862829623177103350348854691230193711085381874430045767630597120094526105811227362913443697377758645980364126924734887588024673025638123534774492022114083549205011680077643628307612666884517810576632447461378086478671344920686143829080353132878238406593946501984882582745077900183766074910827611661879690891250318141643112293777487138243382490211199644014110181438536161625361670046830271121621808887996871018266745846273014295556402052768692014087607602900782159037322543990714176867934447334757123399072348964288326404543853551813172413489177587630144071480108728238959211747032025563381250563040029101459056277407714359191039266179216454381679929282893453131953464673729072118393262598351847113674365434369155829431096133484185803060310804533345028953105285527460162553373339455307349098144614640226028705502380527370575495137932129718161078028384267458255009673931354222050820753136398965849532728199794342341810163710085878467242469499983027877575969912757727667148439337508713355535523593993860398454737345505772839886989684216404171137576859398682335780278977163805449787632254221941873914908454109802108245177644488507107457544717403749979647567301687426049326823902765091471987087157269289961028961801962812853603849787677323450350291434202103636757733235228936764858733892223847674342841216362294849038025594011249050279053926055460973182955711098931598958564587820430984053989484383061944702890865486843311599940822696132764512064416551922267011662094731978481025629834480066493326448722604263785587780912907157211424356729680216397565590444703136872373610511445928362695079164211575540909540008880706998262621574095700536434990251074733256160679601137100240405572456390540757145197826245251995410845037690232490391443392871322838638625879036551795640954942936487136296750498250081206874129743746890115085989813239209928843650239012103762464893863695230713146142294798414456721227788657434653342389524028853364039868927859976493254629868678373800800847655805283180478634917552878825725232130766082870212430396229462908565957141883358300592634826292695329425716819203490120820574669675069884916418687923039448271152548793171204715636301322201207618660217266223695755306358637241475704422012794285886475013821976231591497116075018503955397135370680244092264693960496657793836645587930696782988636848866601562071294487760020755343209661056213798057909477807377427058220647134327081927826218386391531882398578933860666031117128899356577525740062122210549684077372686800749351627225811348586881725821276038529349667941889017707440438276221404849582165000671871167792682748887690050585872136625123650425021993849831889987171601853014993856659133746427101303124244354690106893851694311632474472965092872227369413750456084868776060577782194042043815808341705303299407919312060786165770885833186455350635859661976372749899920295368324689302972144690270209573313845799915781783864124936570763877456794194361604436977070111048322752526023751828806179528732074601287176744549997686853205517290952303715157831969490833066665025759080729809773332636369446239862010304943535143576037758391137108548622924546186474756889891228195186234739320982620496156240353802283846365866346473808576137281904067408877686736437648186484618156770872526534848054339358044442763375040694293138767448547954570434440439955771843999963155012667578538709845861855779802039400430057308748684564065954467860653798804613254907495141990817269744616200965841689039244070111335861174107071174519536098619195614800461992756135663726645760241060624779922509916878517272697209806187977231703605524907482464092582514663179217183613381980110691549993414002825946946067112757528336267366599448431847096463331408235962139799640967682564312178656007756875306629642102709295794297253087650226268972422079578009370926888596690861867419170474964260804747655276038321167065165310625893507424126180455560875745781719966833260469652106313451354586106434354557884627424461042080937694921358056602603501899554106747949402315028623250170548714100669736385634170077781434543307772990559466173298229120148045745192242746906157540092331347060615859692364942874632059676285741549759038810824980016236607518584359892296816501988932568632274602701605369524909871292200755751601302429072973564195971874605068898152994150228069201268643125957167013335319381128143078647535256444598062991665965291345381808752676316544836119741120974157499218995131918738846236449788536915030487717256415568493970582551122565684188592812562514380058632893559183088685415057126513281533058641522172055163840122378803223417854412078642461240538803887543742886840103859302564620341191720275969876618256164265823586962209016346559287372343305863655499803001543117923534224415220165939893712394073963701613382407976940200123132904684602036200145101391630463975430998195385508054021804854255522257971982219958845514835976937738186081908684617354686320058591700222220998021428587231644183402652700653180306056942700574003793987599028953108104777249602533224940064066568565006165345615722161853955605000457974535558279598519157588308288355726315987958785530121904989931037907560626395601941565758778533187272328884833628504768985495738721752961922136713970226390536139165669190292863507168865516817669895037145092615611657297538369389370817890685077043791602873460937100689038540286048190148862770834192119919884173103944896368556769689064861041715413733185090006486927891431751885545727037891752284474017282322393945272962348295489839613722534717273209728839870606561634204817754088354604562257998653236828599291519329151791082233229614333934775980365721521992410580646759758284535346041704651379143521302199290640781911358564254316648346450866039667159584275777102970814179353765641087062290689273754268103737918398730006299452906965285277778301235992830851680119188917132467969365563313818120135649487441421652472931043217998189357413962947782661713633470198233320254656384475298026540874690533622263446689879050536380598580710445805743915379904639605300359162921142450425332014033762017462403118260382806258946891947681113788741431584374988504296294986705589767362240110920298902734795001372177746393200255898602490161280614550402329828429944034893203673587646628003242577324759942424517888840250662339029693976059404146136894686362884320358974091782189184431419884081278138129506837343383087598249508135995352059511335892741902809974519550469415161286694252427803249106701595613493218927562546831751080259762053115806457371726968560781918294158212915076288612603610330198123010815670983969206644296348358870742280710406144626430945914827665542824816279397796283921729074790182293079030738238525218068619975441382917141163395733381571197382917599515581267217324260700917062175946556417542209072551647732280598925499113259256038646050662252834282703101668937438959841346652505637877139787930773927917362753041648337154298436513355318768947406604224563709444911611935208706949308271883585550548669317501015404970335050034139078935617405972397955739387290375236722211880419892880044732476319643502789423581666832806152346895883127651435246786169812829526204801953739454258870216733916805175075533467488064336054002009516197816677425393843049828475021788599693339463993224763491993988870538862456018547612420402298455011536449569265188234471937736639749199567758421364688182154260343928579792088798528672873974252269591151861826057036534927895304283088578451924810474957252717161125190458404118902095756152862930288074952457790520549200849373937646068864993598275280127142926151779735500783840138986000264983296266235972298369403587980180402035476774855360460278760157942272273268237844671219641605568175338568604317442175754930468938575074134692285988764474068651190665495769702336855954109980545387331120460383580099757744631089531527292068846387803928809454064063950437213215011016312193703879089503509696249011909677731224577734854183065940991323844495180794519875225387873099638159580181810691119945451315443703942084655463026923659817656248747297597191592405157978694242345810860729155721290044164750660834989955279526618270402687416717116270751142001678152552821599457801962141515399911923686034915838920486528504845537751996388720044576461985071366750192496275019748462434890288590650782516151077345461178247338842520366886058013851414331477514859562204906157340357407215511400300196727285921396841727227347716860246228942403435817932707033219200034374211422501330805845856950079161688075195308332679680048725232029676246505807702530019179914608560161046673121709454420483973591655538617566886375609545867426008681820455879899009809191646273863987193868431545918529275116933788147804874484837112345130266428452564913972261439381943699178558757394407719195224604497906559307538819836938561681632153173444850004196574267547722048639980879397417616007467096710244975334081894016033208854654509713427246923277948575392929550743565426456395779516918871768140348380019235189884600469460280046807914730525657488990476296698669231499833526283075860325246595161855005133035125872983361372624080569560437649850901353386313167756486147900112552128723374162359460249823855098004417798818670007808694076533274700614256308635587777227056401482245227186805871996994942218373890551915103676265118086715804920795288760905161348353466409410746555748905766315533435796647007932418647650397605761288784804584329588620296123512429413871460507021212605060265011741243962306177148045738705866055967146254460814582236609367219865219882531302677082373190948883733683212946557183183715345201204808548570902447452241294479810509882510461009575167364409850550440232895004320945992653043552393896605949806965131280558586127193510815969947135567854351223557625457701972723708171287491467215204959558872664896818986166433760622252397574409366903350017207725529606943974031724401192630365129321206001724527428709700685011127752795974853833851438759277755035874386546953667863010595280837921268516401369493812155011896151156074432737695164667674371360468560679980181692630265148327620504567079908578308161311471296221602315801568989445237962291258003158550460445494627025173212514093757988698900759645916160300882295816402128876202804748564981825858764158105643845609969298865712436971744880341756465880469545312101582801391268432214485856170725153796707607523942107688000956316472298042505684639278592966411220650143269665787796674250652323672393259730017903965955019226488847957575194284679188960786669370398346624547385418347337573537394654673688911052929472634201588399008020733523458028138147827756478408690591017192030125450251173786988648192505100518323646220977874115381641017397918276121847820865863965903959281972189935516495307167948422590607703232693926180011873538938224050499848146640212192864121053965573960527114170639864389985554799401935978493255764820257798214549016549200794850615108688418598987501499546306307787676418125075070955706163517262989344909992945134261986563892345251555342192465230776451865070332435947990959195540366667478531183969386762782786515667881552293331043374533029529061826730434596639698535601216220734928401892922051066036226857422938032845226397761363030591063423506588795015188403491104232446935443143273237739193097864194871262499730568820121456566863125644483858331282895724927644887423073246559033280973401627330718408930624505092035395578368484514841962245388511024401188740600117790511022806470650518377813843587241513115957500714671988154957131932897691019834928194413900765805640894669788332606739190342679518954399611035533587336036732051142436822998503799544753408259939076052846278528882770803686206000734261030971570539357746524555948988208973550134746200770309949051349841849928043444660762853924992667854914786873412299359796432926285062500110920062080193134967268795732606827673769069667438714974646756145982991902971163560013863193844466142926451048120992859528527598661918658773355473089359970786153091269989974415159876021968072803344751230435202667879814069957133338182257652125880725674450728692357110158108676321263711895552380447690849777788203575961795957423516505352204289891115687948891322203435048555226108230975972822883225314068943168352303526193863119373224644967635750360641998401696727262222030782212464919609113187249216539770950165998418042652996592861446485857954961836843603507757173926642224647778318520885486888922436162034788558338258387292593244015714498428780298098610087726334774289192574652598118899975420778009162309009463749656132025742248503350401381869636279946415451214612934812321394252461004895796471388852023324016253074716213375954827801841089435512201106115227483928800131106365674027942554498234531933869665158376385260777333656342078057381113062599571815999431459680424443464524615338192023201781754826356591572830108756639330660350619035943116351624298086847226400930392632247466552585437958291921442867573598356769490994777187938708542925760260761561841031589912082584302834485887096431742796275338213403748047891568269932009446360598732020123143432711212959531369894345288430383875601021923624603910119762027113197744105870500864953975595622739497668299808595494809901470372677750032737952814585321981203877643129614053829843045446649406692086339397350518721007603272593063421791287483803297686706249229617230290414121220300795380305331599075087134310308091960459369126054130856324453580714817210712012407436345830058931758242573164421863618037524928344010416976601656730881453089180595062111254625885237284977734262193044585146230679342043677294143503452619085416850886321027264600447817766071690241323702126887372010030435257056093027064957951317501236510771158597091016794660141131570580145475930711234279486861562740682862666888122557276872488948731043691419439407480705405483414915632715734191420586602321356841851567620522541843307785201558266784557813635363530223627714788640589829373250148724579670186280205030353537590133180477728383397355230861264015527448546513289045035756351058756085741561288452429929260232104740097637469651033071121127857432282204309410867811539505549075805307402111782108775783790826438983987309006553618600727168518828716891860546475641789929187442291282644852318519682600919604263711701533559667951785465131942902978222581323754184689039047973289799304770486873649770044124427737379212064950162561914874774931774197608163710825805193442759571148493798380864728720272585100463853090197840112293168574103935176033348190369099441937945643677535049987946164724173691803451275924652596463292645115585997367606592494452873061545847972835335688475780407138218920798719438504596483694529367237294956568689527237190258621794282444788460419368663244872384255600244964236364679857934832740371736630043234016160952816520130928518064788621452313675932351188133468159955680991716844178158736330780902678840206072643165286730044746006306961603489110848691396938260312966316935038512848228389289825737363553074638996087375018069414010245881804297903781036239633207266164707238729843416295033920799482917891247704718816631699838513389518629749726842439176540142716122537784819966481677596965965324773849452258058408863051902179130092089933390495524791381136849465627308347214274259323384242826948247703471981889043198884075020712132782657567707623175055292991824879145101246258875917578222361495658233100598265931205739131755238512218097243766060244396884158775643954504358538934500346628273546892982849213216115672678154827923396178376001532305306094366050118253316534596221974723251666718811617386517450420059272424953183271379952872516384615547538862249397150779413675773715889862845496644548275845601017785542534316379218418103202742540201661457103916333443858141806147759987049608204328437088930588313858501272972965239376721524410390886998996182686205529997920658633761062316584991036615271354780231555079002700660292368821544638122593782187223361338839883518248478158549517389658822276633705534069126885981374089822540628880415503590260672602653822193436705396938098633310954796944485782386531230206497748799013027232511836031767838438857231352567878778382385687083521229196146243619200088607333553342383504877710789652002072911562286711907789710081768401354316599451365785315322944259753812867638896761887434980544457858318701477964902791268417685405719396369327076703221005700824345923822037163141211253797355854360995396861554907462108125608179478167770960934368438677055314717226204268179054990715662679566361434697647543344003992934336508582651300749186961418200033007360948849926706875100057738783121183771494912630271568097116122190372945725101372602017698801401223484895542603677469318199041852701766636345846876171367142950579253426618505744299801656845611428611845556565504355956145913536045858895635275182899571502717341769730289896910819731761074281692216319162110512552277104771490217127457619684348231098451205940576177190553450144055208082293161203621654728740686215793382296703337150118869894491472237448184875460371706632682308133845685429710004880348995379973488972494820186760447976392944717496573997173952641027472552369466760207593346074030321263687728967193724886850339870332431163166842238965630295845706213246308188615161657500803702029172798408243908225265744902744726929729081670486043463869749633716443961776006698706828037372582923248530354461857914204358686206896102180854817917577320908238435994144043889270184268191150400796040999675399676067686750474436658245606330247485980227444104858078401484467944730915300985842173558873035543257959875873946856204857548279738005871080859817479156231257957088996345064596670683555550830346269773384701514677388952845859953018074569931702622370521417226377188547596065031527151755964550583859328666495913321759260432692575093873541223303034168406879153304813848002096277627023213484692131219522363935839812906371465772164917486139029501243694195684445782313098275832262967823326930470854738524983067214505513061398633117688859453535326974710738057735254970003352750963357634524919498981651655208032398466150685547502853899405174799073533862926331354703751556950810164849269320370966732049415149886676433852392920370954042265264596447191904368867972560408619043035129347036777060511137898514707935489735167835318797753201857959171697684525866359103700364782644523414278907608200977148620315615298887971559910092601791444401196977242758212386667100157793915565785613437408513675614665323662679131884633277111572456474538502871436433081673370316949956881671969573922184399352137055531869288553408517992901205566797814755425801067823857286282645674180152248643826288214600928796102281407082605252774010549513635525777416550914356676503364326153117803856511338477254515079339300153424206133800044723552241491954767968004553566343195099777550685909279941135561476215936822269136257791843082231736869262138815423403083381355156134534082022317945879419372373285423219935765334973064591794070712657611563498472276146631383297573033252154666803744283436967362706288434362428037596364038852474790555006804290027252470314649865576738475056835960415706026152333830537489859134422314776613093937598717744432029875417676654128065130763096782187049370882233146731973394000127538461196256356033587288882346720544421057950003009683986284921553264777545667907580927671085881121639832345897321701270169095365200663357205587335152053981592444658288197861776588723365650753843421926793867789644315961796347266865493184136979200111378055117545086582880066594225801298985203501369600394674743812327141950110165314833071443111253737641806641399733067178119681107379333452783704411689026819563719312481501750090312258276592744335392540332737239124920389762432433729241090037925919695233102738401800193271245337025610682661959498979666062565220912031323880419598390767358033301638528016999194842342313911155450838055464729641767209265321889376071217134871288092806248794964094538026482313573904635840354577274994206745111562211859129251176371609581000073765651844932603155884997641197580188761200661239075266060683717460863145325385515315071415556469787239486795605397182620168369504517802167636598679482066107928375400847251794985043213796984192616000550223637152850433664742027347121503653011343762802963471141832241750490539864394746586022803594953770837800844469947931090325118175466541022863586165907180630309428296259301552339324446567310984330422670674345407997932660136651748311581007422718279035238438702796319270269833700784253600282936832880018372039370844288586519095629663300668738911527247768047134711955571229014816527659913624198127850062098949537613701247421385359454519248182780062492494636358610963059768313748452021941534549087185491252719821271844108629471654791741558400994232872396831124189935153641356565040875590029117098120544117275573151563852489044541049310422601085084748365484988566993147301377270850637465300329358460060732077121133162695783448830216479325132798752332683120960758686284019709316894967957863251085393036490944419158875707352253692384335737324602516754563943834410711715403168070318787328390312231287562441576884239182216174763714409716221987878509214834298256394553848604467238401455054068358030825183360124583389946015565572364299828638742314848158746763964869224722599909926209993379545086963481438074559504265930401539098836413909073111673009156999067553349677935986430661563636934121568439751611736165075602428996755869706133234466936544972930729273899349239306413825148187418461859024309142685123929359567514472980197784793069345811158258746583854269711690781384721594365535469710411685204011039608273965463890840688600196727071658607839954406574445930902163568075834828331532777614340495033213321348591546616142568431271144317239732806910044527148050957100814771387642339155141826132753957887376403460482934980705441172097523201349613425224198433228801464917846729928674234904471711159809165507163127170362273289512913648274968856289596230846819785198109748138945461742550201649636829345176230348163518678713821108244706123896857160756187325725489588288122302385624184944647448226705774413241130032991564203402109625255936505008891321806549108007263828092988646198135052111674623421533939222627183659360527249635365236128927455782464843927518298165338376326673639069826189044997090254983804503437795556214811074560518575344273386381715467122350154158651708714853769008863757240434532366840069913936967223549938264225581456499566793633514563281807495946333502214111708196106104086892461853266070485253280167781248715605581169720551408507396863014123771021696763228222738940897014581871498279386596367611850514601495401227691860764938359831246017689241930800362443733052594797700456414483376089828016630291649944156381780528503877012610827693085733224861055777528248086478922346326424688966466798574785920154283152324330712370700627481073996241112369491850845818782876023872294485428212135411317953476325543590857659051081624750107202475762260045048940834406622372820467661339216819185882715726696417795889528504811954706672121740570443965461786929075794073535505956530266654649045922876414606625286396232159093349231730125132575478226139963812760724832100342947809421071728929350452932117599750847468206465526687512632177347406648542393072098263751194556707052492121084381104189215113579004252402054051954705789233954658262922946639946507894278137353062111424629905531071943611292719967321781081118273853508912637032177466550333306716179941938666024835680599693417964902624679796678948319827249603286549171225656846418180130056492622106164586074798616291835447809340048290684181873426209214141364077317306990867881554578578131008759201487793395379570003641323404762938471758386385572919459525782769121627426092111294271609470789053183735772582521709900474133271929851822559102096839611616688713613189194264482434706372525256809271501411430496580192852416062195717467466013323189852182839330074718343312446483925446111312725660282421283456739265877173636597982968638406909099643860696202876292053538351472787403142111920712572992557142003864851152157289584241443111185751866499517450255787059285443466776011311576617712562367652732129979205850592727556531987071919877182233756495858289771982103585391476408034794161881078365054628929605038154196576257276070088044030106981920455413654713988470813849404632487187732895759643174852751400688901530276385075551810437599563273487586460966510286590203577090370867437020767757804791177217323251552245802271235424998985018377046501254677879183990124475107177506899486810868793971634655738661899594043071632000196127964930642131971542708178237083905946066617546378798388251352704347890545533558521545895005425745939291778603680911431715947925473329159107074862199333441963847243356508131477016220330393406521053307633739062137914869865708530613556391410802439709497717328911062489459850065383119872595509518456973730649720708142063898559415928133300739427154142790924895081897695910547221868477682137376824299461574188732584786664247261277166310874851794386711715624685075055873396071881734718969660183408950512538668881532086669675860730883883869309231558098380184564401360545710810567694107562462476726165737826382834404725331805254058102102333365831149459955372348046858649675309893113878365675789954078985607062731740913454969667595561964958569743431001268873645951177639756552219039252434372114995841678384346660125305240323113397639663389619845556388201213574966730530730243117696486550677069264646504302602994754782410519453110202252780287382495141238133299819598493041137453571432757669037513626173762886358085327016095613619368303185781066983594356454337533156585252304366096266460581963994018967779077314416891926438090211668638809631904019791931750354404589243900951501339822718473285186982163185621566086724866391751720447443593829355865664423341499972955717906039343070940211844154825526039864762773906543719087910770640168440806343849941062048978869226443095635564524560403807330614366158245582173325337088670085709277158909711690048474046555994301525172103417469809907211227205171717619081737557112866603279121273579975844441675191052945795300271875825052732063804981927124720773862750495415497321274173215796619302868697832180656087317839754673864748016064876306012278520464028982677550954946157366831358441909802848962021253464179034289608514836781689806076084148358551985514607868419526916909643829194182265525818152942668368902088710848019916448213026151965449156056470305650833908678711987021871769312149423393170433983122359838515919805575738091273861058891732458478979380479412953149910890990873156862992444394187338568620830500529060938647431779961742385515609554919292642736776477009635611390216353648507665839233969971125449977921544364342435254724160812217071424965478850813075441140084833552655782715201771312965029946967330688067001598399380305650602311553094152028569825749615822280871493973514737805799666780751081572615202329498560798757954297134713014877585809958769680622643326058130388209972504756818775846493868428902444586808242914191864479680781133499374429630666524388720601861482723940101511663613274857980155760256861061819389193705018458606255149861664357281774764772231294269323983289707734747963692399880043386136847983580115209710600062687283198408904643018673217406419340438373676349431097228863355034334062029073466796649232810500462127707165150581779189746672128952718539203988663275036295834880805944458284948979100390422157760143724925646757932919377466402362048621992618522642103529882115836313357013905250307653164439162002336639124014196988005918177244094716685201057905488887216325373276226148012121533908814538725531014944559870935735611238427853921690987579761478170589153611153487281978276976930161276306117307042316316664496833085533064085120312659199329083744745007264796837641157336897197940389337120736610417105548047563837080141828263112361722892166046317999876750577428177568679044745913229721791378071960033657579964823601691124339485750654246345148047915175751253394214190014872839620731187326822964913382198161811643015312457472206693094044904938430399537072613760069604902250427398327532318950994127652752268204270544050579824744247733326794243793163223988609779351166544245981062500711311542122292144544052857977265634884245262576717669665861780974464327782634788553618909854461804369164506273151200755447317570566334619321045698765823528290754343267308632789550695204140390512883678079039051685146770969838644207542144002595761302826718473895163270800957806322708224457669628711988280863390009135302643870156804684340038237401778240051109181485271424027863873879726327930902180229627678765683325038958726973038412677203693189303186932546581034555095607919631747724033537632872510228863422173508727740224107681535951297168274605167994808728688096448257535291776738756947405837725422724024271850769756702679202098779296208626990560456059028873214984175617135347230963526185746662118443752255619438531302767359390020135987975706508516004730415867422959737172376888888684238374314932381446122608025940235411926906268345058138892441939094164725112742617457259473180340279580160922400119687006764965404903741405609477276389318044237982205600295699057630292293702693800127548879592116693845171160417367411689799811421409482149110403347520591790490067337798614846674640597730148555040133678811364271834223388208245128805799260456774071701138479912121371889432665950422761381145298506126563593932716893794017496911147358382022966896318569988326054180290375334326261250458558969605433347823091293880144199868592614162781717194769555366539424626304792754758550467380544055176449548528109801674921216226243201851280177930396939276659335616180612188965677607274327104701647404961525343264821623148355473347234319280012242946417771942997161573938724843794096227913907884952791937435385760348835187820153322524777612416311215875088097409097348145862039777275315071127406911640709478110836897009235744096793020723922499652673114200833796422863519835121223966910376237299365336810793149368005334361544246592052149924348365182983746418540704944725364972527083871294775377699004212729364829308051105281677920108778453689563175736010372131339073325320465114988185546858097021179455971653530496965143943786031943596405237076398774380759135061321639698565183011186020379461994321440593115146826014713254386558218611559239360223140393071546320305313537718869335568712415217607111833162801332303602876314704909882815822145818967032005291298654107990518372974832136298567463737793747368373906244325120043950869070695081631770524494885174624048647600372642607438057341700505912250158527112951852672304420197593541978891358216776974445797120325532354686535566188374099123733592804112837254254938505681262781395751816969785040291509026388590753400920147639737541007667864139459210867907944136876304236582186721702863358843582035515270922892139795491162772284606896492783372819147499906758274563063443715848541117362542020592868086672139606983832954069031548821773932787846504857261590091633463679998077763013927858702982379650662491692891740416995235249882615844763714173712791528856700102194613772672338811318099335389386262027998720528190705865357405620802176013145796767917589279449554398019148995842274322266278133623871649691407673106001357272714605216950686898073333750905618927840866757569457679505546494601919846816452985234639298405365965184621463593045474577770784053564782468687539344533777623055154178500354976397340096654451674814158586197594015004179326851778901549995231639220671999521907925001203393375867553484296683465773452620980908310324104318264543380127439318950339790123474670137136200701270554386882526726439736336069140144571342960973699150392543253030714404834960406884676107035918685693567829355036610137810272068337207339603416168328740844146907966535904474559727115835740620391676911674121608100808584249535701892617485621193447853798877744796400133759817058987013554774371058571335358015814468586598223901799189749457298664120724936811385556910098643919489760792928663801821904069729287836177049069282514671910057632566287702552950914405365995180280077980128558872602451049535964248092424466538371632217276387749638381455557084698438016749346491085342864900778496993455676078103798812186682452459467145076487403392701603211002746350990810010255370361340207284268159546835582655471705750274239725195920415715766774878781804255011481000637854844733969640468280604288621538336030562884956602791057094172930585990811725787096088246642679860709054918238559473462925522625337177434957263246090056618322264107847394528296574188485653579227445914318760589017476466606751949495194709500068496833815943158633504460293104177212305457658921204481328439047701988577377553693403525629679939414366506111126664900549386560911527232300868673507350513991535022774992361140617453629702335964071368093424225023672182706669974328183077127160109874652958505856998159009351817451343184986587498476200436906935577930030267715255867652055716020937201467768706752294637161905001200786154687973887406949825493937743348803134524374914742329171713754511963690695399246997359044696866675663596764411467376235601559330079964938220356166345918108706334598815167831251346507422692315246334948860537044937394782501275052462719484366200477118012763324146901805054339837189775876549932228405798634824225235168691956123833370007352169860755564915299875309459686682643937631219345217471805272565707697469346698353356195484198453173480563748063326738269219044606286803486628473896311457044948564932610043907637071318300142086775299285981381088054011843475018002878702497780335639306955042993903819012747771917168940622973160833690398137756080430410211160564551330273265562384292439602171649634523537179535414704806467873462994832187235198250643232082467936045580210608183741465990511958960140938949824146996966948721259344536267949792532157292120550361001115565016969515261477111665293877819504065048970369090491821143541028676500854876384123196417942488232050192419397227513709441572508834712765076714402333339111449861635679039687151366991297817642579268474026386247589792787702463149467637158056970655610061100710428366525338890449367470438912520699680779961600195619717073197101605262841114401431157830734385629739029490782484849147199427503302460889124192973551501720546697955825682449789019163684864615963913519165017632019703183169136452231707811692695210189734255282463342822856740367584629084256858632766731812733129799314780102878664539341259153397153845661369085045695296512718078131650704059167484241683602514393740924923810507966883662309228171977571195584932233680089702934377707178875422530383549531099535261620034007538956001497392722810780600065086185799083991614205237731186566795905841501574589988053050243509597743616775932745233431453504956519661431500434697148671858665392141119445188216318379116596192425831283949045323074317602363276367393092446386690123714856210072120018030327333999218909017394831275152909454163490679597964155768164158575491835646806661745271294343539927516796579413644790091305158265090092824732484357612957247709077927505302517754300040757911314655741803740491927764509140258999667862856704156338344242585313419271382263136795012467314262591949753061984018143141951316661662184254617734818350184023983697383955297658563650773948063795238556985078451628908894349857767252954989458005632636297406523716856681361168563672279122777851679091876845883799687196251887869951912749879792647134750723455642025482360363256283596749264132414503184085521934533320985334244130776675027981803660763329273181649303771405686932366740445819865636514050178733837612851890336871389758998686616012470163119590763717457436009894787196397654119047071943002066002187116683499726322790539514086396775050982881734082383318774034151058949918980753286247576877614675645556311428439797401305848256066380988274765207063276122083276515721043162545219410936851663671882339800934968829658101485756714598243702472037500735392256941905638610814404624811551716483728502994034200323248884571276261313736557654881191458404228810936748912904993810843507482789637619115873618484892239234305330676323466317797096988247531497358025679215128555907960016943775268326160205460347844759207027172439854226233196069610722095519606877788181059978122386403248059509958177421592607832460084435526012261833357184362031467178287296726097249573179745641290846568500261523676225666770705948414863390154525313939029094891304994485401280375818380010660436408587803987052527392714459977051598192237318729769258627455686818778073370811149831964054263266462783423282569518687977402433934759442030140642529598911101122320371040244586181862889674856429354573220101282869722820451250827577501463124205468444101820548224709649105442230582238158960319694460552159573299731014709729136719823487282094812537601433587932229048566762304552284197133126071849113024085814779553646823130684586749749891499439031117272169620478230382099152712121439367984269482164530060326027525023670231607986522314483280041172043751978476037226321836758487977329712685708366998669155680578726986799263039391820403496208276553154107103703845615000425411045698616774099836480039517407611229729171753618711182902026359901296123806731531626134906811492754800121237473740083548869609942589154069763666085923256304505970599017643733154869036157279922284469810248295657857078261914028125921599076544403878012681502308264712842421446704553853274761030131786837551814456107447457776549653151194075460774093159611875987425905332605771722326564454491700236097252463813138252971736985228325040978912565615054170602387433326466275029720770745016681597432009934346483530498882520531075800961070702040789113942685117430140002928429929528988710676807620461784803058209599646808256840610438509493685216886735306001508436367174834716818905689452219068498908807452532077034153671978274119011185183772490208838344955200611075290741238871234665488635613416879416960481462682203259797060940812474223539598960127768604131643630735575697873920428363621891507937565114455419123411483480482723361282519325421102778495428232944968912181392060431791555854370837798962224474160901343102202630154650174274890283199126853423327295599158768791718405693675430467824903568889032997637410770769176137033356723730959459463954440669018128935354973640276056087264650996461836353313248003436559105213673800495671942267809916847552656200781706665882658118994609955787079289343605028871235798142438951712909130322302041229865467692887505042948805565895561816952052316571166706872131812528795268115586723472832438334524085964319154429259151749250983104176521984916994433089374332719535863846529728041882968869430941282237899305692280209502127011352200854286953606536330848311276417542104581290352051894467174813533587729396023218359800872193717816293156248776177325988134238813070221227597603960922061464367955619760826414944802390651520066380692815067251315312362661160639490465346349308713538397162052941768975256198642113439630550562767180273606469365303711450609490718449154919522868999933522960023250402270489689002440654260415426193587913782444461652367512524996020043754533675840515893204677895809821304538423027269698098127847511069138716476731998895577371761814345589980489653387087568116392072579777763190691531374700325425115544740297286672248774537203317250471645756455373901016347151003983212751212633674512694215390234341410975412925134804983139917857634213083853116379504600212557420568054037878645256575772397341247287209626074111253809689551886991634881961516361814155541066179561783105888636364786458534756336831121068080658629387746153860762937206779481772212955822514884114953058091971105477814607880178866795452662320376182939383453327044212070668680225688101590865179471444547613439107920039020568633548592580478645964128424417574225674767777780654985733119148063908046272348280042194882014513986123189726898171483880484380891459068511715065471108818107694928533135805708558910358981689618717276843544916569738659259428075219372936816738357495923304225293747821265851855064719954085665089534198660592924273290102994405695570740076667817744375314153510721688785106079401672019099516394050807239077059904203781098104342290758854232893776675310846535904400241258552240698112421276939061814735278482760500665479241678765344347088554693611667997984909414989582502342054942741732921350262796509094485408148594124353102867254468895134178321417305048841069804348473963417239057236063990669611028112436709650175771345935031087169659216026927530137626048480694089258822717322706675192124250020238917124652743737770644574701227683724393627031574410178154270286356113251662783821090055306213533048528538497050925545520534004227256654959485957521287661735172129488424612507780425196914890759441477277666093304107548944466523374662611156818107495712890484011274168101212298988508307073722565313285064381095836982211638133700433455800148275885164302738958718784612080796830777106011931754835331977201389219524437918323740816618092595726194649898897412392822229466737804214084446717419628443391994676885632181091072024012207572828358063829951160067130881673564769441450780658164681105676422290385903142747754244854662637590234195502649863613141096339337452021838844302619006677180396380952816670889286953157723879164739325271678667686237178768977740764881530503565014582781379415130863398941054985406455397876006626960896213015410958494778343838008285710526643502947008322471578615107533203650479027523755980002803190692708086167937132335390965330268690877334545678789578421384226163048289763859634233144190528420539453425019442458782913930641949834073984884609515863861590864719838916010339161942175241564308627996245212238386246365494139200562823362640589353972274028271504477093052338185187545239341684602536544401035164570572755673704318189493156418850003838363193116419872077591629868939358796673197017075247984529796994577059426628456130384525880139855090919185181950497672245576562607864633155375183313348155650115593519216447037724382069317094292877760588740884348801564588443155128301830500900105938156207980905838875174708531916831227476805664394295734238917875892205783768614008154236542867890892714714027864365585787095038325966762885841235506333997629195352877626430322445775865661256746978295178115439576264373483459992075775591056580854561259837594112199729706823808947689181117074296619677679447356424529244387036924942298777612346243726128169461395133498128084869784005678001618062239356733993241832692650021139318259091636661822254446023481311015754075217844882375077111211198769446724005162901597412986280371811051132796778076628185658463395730350073591197686090073998940196776598213431873069042501362716078809535880845913114467148792637218130565444381283376724461458857434654865691806760854352196886376575945995021118244883171538819448639272769544931538001032337567475417327852112758573430816583909767613361897034462332894682747191880679518706052084783232784648347671647106983838900153611131648296572973950833035919419711020278154475820209809864441373669080510914094785651168346387444863889191857265578819255002439644422016863427098913921210235800217759481064827138295142387233977785553674795305617038256075124444580172806130931369202808415784216002473193240205370189294711406049646997561327600024037273805831320770570981334251433474529207643640203707722412252580255394961103015420604571372505165066737711329116982803287884094394016269738992569129123027949925385201940141891207108025048267815945429747027274362585823285177741666570059749771839243028184884313103695616291116198598879385545798541301585504607554247074153461470625026885765259672444011905799640458893434845594906536210914975341807028828696686530695476332950776717005403147607420637427544790973499454080894894310120288804719698152303415753925715898805472427195719689287744319347531573117777527128751626712808883712061502408762929314708935565655054788360298084441843424269263271173024138901319105930625899700116455256774034507085414748480018909467617463967812543322847242375797701593249735743628393982911055199439136065297246686813218964458472985287275605783323402918531998513981794465275187853992798729534011902374338307666804816131234041072907937389108534070027851854110623509677333345489707073358086105478618942899305275773352222683455976625967608252569572788951207452620454721497591902205709384816327243994512362514114245355375301078272182698372238691344218563877611799294476415302144500272424990916741925327039951231954338258284871597298832101411817621633503250736055135971815276640426036769537392101970471961613246544047182302840976572974649450971333537127315064990331478511522748564211148603341307499000540440053301523880117088337511487905853764148401883978444473336048128420828293018068203706799566250921793857279370077071137155380156397576815280236410585433136301443808064368671893850089689282869187471109640641679317412995358689827041056686918956337752833424435454789363974996445377332899834056472590745097239599474292095093608147309794262811399247294521041197898348195702522062798408007487229801174374581283730953060106794049471893251830379744007137718545239941382071601898739500362558429051593179525593073403152974559017093154350790492317659728435501345457095573490230718679207216265301432810507628088148383779622179581352036578905026077041357139001804866122616364431371818202618339833873433738613044514435713597892602241685921243699193360630572346656759301021751618885404424251118776391316795769258531817885963141534136561781514101803156722205387532414620336226593507484686477734036748952285570103432277871711327307601034855641306833864665444315643955871049913777220092704282911842679283596330949199605855036214027219247238347941726046109122496943663499152894040016697300458475728719627893629790570008667355977795696295152352879547227992318154048470569334889519369621635933699629745351221437484257911250944122412922185774465189578107589290740297165926686545728160048152445126379651877577310507042224032702257222502314298344753774985040703851526296085925361400275827334685400306959299838567463434139139839557589322679633283527634398217362900389739277950972912991316895106680157101021902379197210281461086458881887770875156387550867368686831407287884308309984736389817428205629808799630588608398227131667169848534420100273691438559902381919041098257651950085542347062797782712262777532551752452867566167570036137215702909153471306318876808333312953920298769742985329412257727019415918464181124005856895134910888689221780817237712674373921771049487744001484876895755635448616919206773085370509054209135893994765667143649538289484435165882879397555292209935918639128724434182208969244274382456421628826356629973407083264013157689823873351625969881898843201976558328552572455978885080310978120669964097373102269636164763295215860324112872434518991805410361288021333651985971705002750606596383301628719422221982521721434179220074975083023035375800126334010963954572427258967477829844140845133953592318740506938733139299867018519786754375880118698524119147739722432008492068943281668003611882813555913712279027755666439542376142057568268187200152036642766599515366018573412446712075816799880283838626848760024509756853175732927736842842190956648769328378224937711615409913494876450064586545038821132460491908410326778530651305067879594358537881493311157505671572782468288885811296106614722938415523850149101064275054160388409365093785448650973562472152520702603903961840014928843479422390144278824515951815251039242216545255402795019425677909156788991271573895681588496499854267268771861847974009207494551638531216372753705632645752277821310949194321451810055098570041389127760864378047288203625332836696093175715691685073282043864556515000658924201369883645062877833840033772883175101101985353126965561156682364063448832077379470212531159899291181508714451017767448403164511326992263493130537602041361836865130623799479617424221110832314936012651615556324899446098178861439915185293555460570336908302681684159887759890340119307594522172187099525597660144583381898246893114999714139018105866241102217331295496715948843788177176469744258803373175511109878367651639511989259387729701593806107714696522405719263992558792679182489240722022975086622716359890142343014281616288051980085195681055274053755692841973495263778727425847003864723831624511447448105166865693783713507432707506870601194131103373124692111705774494707676875047094954532363859393507459181442810273113847752570154152574468665085573053224235067011551526058651877498261705936431299053266684226242822943848005532102789379752914370767272382709610191673692423798423316287146587813798729876259542817816160400095110214872760952901292446047417902574481394581563904922289409108937974011357240241937906483538471873244344957414891859162845997596979598280332728728765313964331684108432398846838205060409924882150706699427121570580185310013977633651714249537893243708024736797352580932276089776860064541733226997063400939106318539605261793483917007753224787505818777462203052249814112862048786226550229926971348623319794554205149558057211140691429819970431308508802277054016856509392940991991507874711731788921466489142487056686189654766105793574846995366564906342043121781272552800682700544355165167506190327246457025629161039059906430228668769615363238717400832024253682237944670014366860019349748713960444105452284593656185764504644398228627272336729817457077923770592684823647328602578967170223887137449514860209230402080085884327624350362018355331383489453686535998130743488958540147712979553498879172368763665048313483059867593187443925075581071854912622446893308925372437288644996954974647436869174848523329002358302865443868642952519910415599036767055734495593730294228356816344571274734586266732397087429874172274415916786693591013015742165370646599170252762838672786245232837889706249557234360066895843864179744335299484850905963575543175977239485094303494865306232597332858364828548555520091817751818257539187122120139926006369279067197128952069081300352122909996467279268283788997496058977942900792497760602369751076132507410551574508177484740391842989238917436877772628793460000718396092744437216830803279545088127222670661791396057249877018078569573977862354482038710580398787064743026806135752651378320078131035402729204327511698596304085130523871044227107469957690839329869468992465861217174248703946149218986972461726046716656513658993493978836707643783802886657431066178021639164031773285299433774369488669194532381679341281703411781197086759715004323230326417983455401072005972402713384126571600170413088203515716716038231479559874646198368653526488326118738528771828451643360132796652285423054552314642659451299968650983938428147101380120677545429106773570444457635321296441585479463883720233376459407306239310912699523053797977691085452836333549720592233835459192313166954509186621679757900682316023012185620345448172944300990453444505874735973107914932843530681911886650541974496531550848983846041721144947638856874354879619791117352675848793933981939110382017277806908695000255095933540161993740936788949200275870826196433204372093855019374618713697527927723694504713500990205919437885904015602921518620595358540317468046975497527287083581862266918621609065651707051106488259638343831061408248987569646488875516167873002487826719777034977049250528579471455498532193732293818617668295979911792902201597996492238244131922271864918857412267071527236688429374750419232182182277299063098760988708877132391364948275973128255307159385287311482131993314239064941959334675631169198633977926724992116944375517875138238817516474380586542592370130324662869064251206736662013446952522969714166907963132490696541595096021237590178526594666358930335274627271651941352311053863945553495456691275461454983443189131362512448044870044661208621661176440616356861715165281856464717592220455318684031552051634962712701361186684293402139130779772352139844109176052781838083303815812422075442820770346779276048147460438974577660671166537587176499005042337328098301029271846243610254609246299867454950616002040050101248236974652338212904967315831789599081484334501278291162205609365046964351886372882531760497399344145957898940698169607601005643241395304015710827109069077937874944738114588195598758821291704103921408733432852705890399679508057898551624245350463035992223173911855028389226389333177926840734644711554584223553123757345422517852742109886987088521806399856529257896079835574210730142343904121347825257759072473771751868689420728584966962562122410005768280342814672934788500419359286406344506941073694360223959737924032285614005975204809700734566653188011793290552467096136429848945840473801354899023652917796266546447528207835433741555381987522273712782424687237947491351654414128008314779087773688722051652376916428576395267239833825964616145114936724198880311646662010564372735182348612564224320340675152076375157812023217368078502495955894942353874589309486028891283962477496074778899736408145774578974930854061544071826246344760966305151074543803599898932730261555764787271965445209060122270813169227661126978363918733991457528157982633576097727335867394558478292634220672366011489171731838915521139083384907416389423233501544717523805760349540573748330060197632802394593332494019731196375428263538710156608877745929114365979078319422779619749253585920019415756648775145381410798671296469487994976600910271569468901087746065142348165062974445738769239475698659812081490576492344605028694501270098416786684018734689324500784027327451522632154490972748512434026508874493991454030509681996425961174069814723149134842805996500059792181109872923331233374196652281799296344274601302710614019692239100460605255445670955614827468724362007995820135192226213337740563477447859656879707424261326146872227834889764554245928334015594914292373656345258728279033460768812749519690591946759317116413986904882743738897708645062170488251716408317832400084138515956389927904622919793115669676767020207057748523399008847359718342566895183826900293253131795114258003077823071523166568854333976308059992038481320111049277654349993151881826228698114171001037552216241318850381502526153488882931785916732671175736441066357483830787917019565401084084884445313313507126167873361554619317962357940236753017677227642290662918919567551932077657825782484162900812215524889558449360344498290907507303049180264646469895174111770749040823542194185863078058780226674196079979786112831282447552172809882454902508729609062246847013164651500701781671740516586998302961852542677866180288375841036804721951216301826340791394941372049289553578803792987187011910251124635264424139684386476002686536819409399264521606483847703053389219739740602800359905475060831490733425184253375445665115557753163377930709488321007959633991523193179788410108412890725881803743318010958727326929430873721645951268738134942498108335634184125678662674372851910045317411831810189613422054586566700844848418745345533323370170048060256458727440405230056199858203536185650049104672880576225299839549710601499247928028655396901886064904953533139721752502363029832422825958547905234169682609585289530223633277437814124423312635102799679338354931033096525201716997769566858872950352655468823685695085695268732496246060421298206318959977010830353068841383921393651328482942729626553468940557595040958853582131324282544646668812053848510247929278163555575871755431884052203796557941532604928255961781353835052363467322247314680289809216224215106210509141584942941750592257201128253766558266338354496561213057452442933465094555018407906538779743325371980996125377292546722371269208799595625484233378755034653746396882359447378183274585738371979105677916944180307205084799044066107992739456698544334253158109969397843342232362775093074000474103473025438470486832495294032432237826511007011824686712423258061501489745485678524867008004562366539022312063201443906609282389885071371637323345488645568974206300424848618474729758241817158536103481719328497034838810619540233893022308358437361106313004774950185149783021630931435964975860325540310118499912293060226086551016070884023350061371260856335256385688007579253802390029006909990424149889170877706417290233047272638230674958610577835581937532488335638852909102415848198090557451919114495801578653430472148390183171726829102210029711203272211532632261095551028094795500589445669451815484444799992514429300916826402908892830254756086067609309664223840925707919906737311924520560309361544012012213073889557017219347550801707913018758032919277736330781516809535417208325155326408571002518444361756541061653255868815501254717432438310585235047485147132288035045059439656260712321320722357135353678834551231027155233388340776701043787237000787411597088660415062792555270913132478719670526384392879383272348074088665490614035011906874170132154586059187492333628351075657999513351105955056390430558893053053479536175794453020683727624260145418980020791351206379310927653391971627682194958599257948442949582744077525261045581074232540659854687885231901785800681659785729340939142355457082710239697677698977359557073493802709227529826192414933302767292018554796486335731321437054622872813305544717707099932070476859653499367081312355711572896834628202987124926232659013843832563493335979076689339671556272164707202814745315669487702258704110543902809438077326473121309054407203756382407550988753571575564531942570334491577931853307485684124036452186846638399961002834619781075226289702946712153934808275476414052785751661681018589408990217748882490163981612124554016925683094289658007226187852394213387300123514195201633216837509070389101452529609664094676897013126517180593368949286073655116218505847158922294755208454154162431829760026592428709159256572733004829549830821494790017319793835314446719188296617843157033326259142825781382547419670202392329154994044227370034940525246832054745606972750257589025942810574919025492665432471239948930125876225821564997994635878303841435977354490122118237373039665483148549200112680318073943865664866880004682696823654845046576641230928588852206885394765837416377551155318238508476858006474515043201145891125601432824031227454660033627536371655465739016306744278535674970770110398913856789490684755834443208101917804528744240522582499462565901013546433670111760516596017732853054379889878564008908985104627928685998044683176045696905589983659597626592725309508443972169084099187086990793533557462468899178195714974626101727623718257714420444717918364735154647826849044765235441177483972288375743398184794747891851074138474616169714136369059812208790082142350822083462161850923310412224885664384801724107102123995486078341786127843944044919062186967642293392307846375847397833296986874371097115027942094765965984850732721963732244738031237010186726492520534295528280120098678086453495805981114522787013237074239756705557243006326309609122192740982736880173439269664994024889307503241947210550082362962765742862627022589565321285561056468656031179594860385382741500918986020552831365256947054194446158202729689778101202511806613168048266931873358111883716466323655037128061809132024012476190250840619436208165026827229372871940131036595433013077237894597379653958744313970724736305600885005189884643690214417534506292315105565207782451851161807766359126925393787806848800374906011958935056617333226965866600230229546603508830527371014499979429219784671287560803132874342047521460917003579547522182280728074436326619268429879336645510338086094711723549616302786920988590360732507221110709250644277514118437451641168343493564950351153832607633480563851089599434960005702347668010669297345663829515375533908900281826198729793811569664706682941925893926154803368960231945302348020074459824765928272787663241148035583887089419009252077366645158672896438599021692698137106405580184342082531513146425763159632011930567071944336420714300450950694294422803235959481627796727595532140306049763293863910807948020461847947436579323130929802233715619356674642523733202951088534393051573925635401042771729907240331441907430128169361346234264927818442111732310573165036856981364519827621347811393456493360931118913094254287994138334649087516307880367447598387412654009553524371812010040186442161769985499327707774995693832692503739429898354513432676045422226670337212608606378581593046496180866508905019003062935043509386809329903098216995147278023032272242547146814855988886008762483389411559915858565567191706067740158905463449433068190953645288442703103138902103531344970582866696177694644838339999202215499829761698615574325954291988180537848112885485937786583315609436779382385306699294836233334628294124021758857132583919768732022202091616553998251451497541899782522870754392861392842320447218441286770295405786020504378075216660153082810804143350861237279869009338916491591799238649240532110981278062868371428908522892824916562913156320640446368314192049497834068674180914462601509927184497022890862485842316212287141684752855267723223297423869743861254771241532711410561274703038654889547616056349817699819101638023039055795575512833424159844030015063929712338729721934439107703838927408220696336148632749083999951050307872498729981088954036530273464798585580272877999417885557778781017643752564190802631685864231289265190727429084699467040031686828042501776292949655657459039944030113672167729138817756142651859092057036498468761610009925522461465299733866437195167729884001242943102664004948240680328287349942480798614213529668176419557067649705546179877687384810624596921348301130355519757295998216114354838580267384133144042270880335165013749949912074347587053487759317421893916822542863652196946812770054826001723496434347214425314495650682112011222159263280467409060497820491454790673016574134112413723746182637627307012918657371367565702160569104050855487990691529587172386568737068399868766502971696208702575853842822190739829797600319921461079189875984053117700358099285636943245046726245919203882216372803956038107509766739609769160872461698506892750130274093290730726716039135224387034984585822893227638570787231529577135106779951072443913948143985747764931422341600489014445277560047953480083171583785787223683928422931527320586235257068398269718762698532394215959066251415890370947600993262351300471773745950554297860521299190516142889651064329042143868222642256341965040445116045730696426420617292452462873726058157470126642112585540418542452592333817379484206606939134445362966385026052172631558342516416835603911943440429340297317248441794455350045031760826392250405014440569389282550899205202977683194188091852630974462098053656375608669190622323199717065357794072081399977971594167162824869879614210216342560504264569008441436691217511326524392116991500179642764318482219322211109870230419467501625720771780558785734296515107875813664614772523124188835177072639376702544011474358742244023174919230925077374894157837735905445416594036716640555101014750918920717160388199228583824051808235725110911324508656401648995896892718646397898426715349850460177910698735491710928450353152540196529044400475427119556032283613645115146014600796077815357420923170506720762978267755953816099525748385302592518735883951838726959576504636160195294218093555635019001348690050196010277533601112510867686024677567114111727648572535782239723884626052914192857600967657574266434415626521811228456293243357980506843988828935868583535737360802636166598794889065527558903122687738025876125104421281559814273702579579908145956154965600938967910303014068958507563160431606729292133040504917237710303732906581348909785820258549868187429799418141166713010183498985632513337832382230520140300059814837495432636592836911281383792440025904350429772758964070481477383934436358869939176558698231564659346930772703088310153086461298553975251927219533327375836093949742706557106549265329477565933926772106263449885464719950177482407069709172035356738943221004742584072696087444568744163914502171814761433038324696379164754376473408386301136402285925749196097279981976040235723571409674539299509392464142251044776350236533084923572977050564415056133804841283330346608414237840943480363347471122297275523246577137829140246352378344918540427689234085678878922826372116069228044677309524951512943356894175564909512524392543428726189848820878629285140715398049749497188348987384928178258625019419088906571129107651952363291200874637276986224119010004985418072808247801929538217285539750618609839091056640716266051619752963335035195777601044460590687065569535661800276398881619327793219751966751077581667816801383134333757637277998168310668068550105112147765613293334765948856313284004271209509342613648247035892959809249636810567570994141557217458139073498559735412822739276488747919889803895379678001718252305759133208632493470315725013545658678032491504581604318048667342915801710163498135115128608555667414440357028254622106348537610179982898712320873566441554740901211565503983071600757278928620531608865329508554743927327226780430939680047113630520440878091149138737997411167342971651845014931756673252134733445095674977921414057841180619859054231244706241245089081823504460001925112479462997325905837651179340508833129684980660358380721522822153570341460082714135870648000119702618182440427470591251199649753520649928674869803357490750758518082775233520386340072957973038889870797868501525186742535093376438350189045651696784550929800315032649617563921656750610945690517370177492404996250685220622395364328198831707696414971747973663431730051830808652544889873288166047601608187161381080813501748448438580400909934185003882293421926200366034101126315243134768722005605674167046041130581604615895069185508783421990556403507282397763449612340349586708727329591578861488883829337252483289680202795197218375434922347179807539495744604140801940904835700407383168227012184501999792519703271048830506709163878381423925693283531653711195390333164444410298384862367289402604038703166913440738402898308028761260274165101658074663185508390213515694378382322270269117914244666146779428283330086322705367770596223708982240945966732489872713271397214879467416928023152604262402676800933284705946455719360060772364173877862503308868874738220285135064380444521017705646332962041590673657876976547217306562045217700954060764939800915948726953526842843103159404474571871900395718293107763493020934575288416137096991915755016758181804841310521263258901153521450635387313832745762138340650529880331754039841271134355827127276676537227462615810223200802692771813240230395521710201036028409773411199873066868302321117381034767218828340230638426957061412435771001257402350861541849635973500217415018951468673287206103725706853791234131048708106678682461937325963631151640086480589540703436554001570618245872636166337076038614340282166743179339933547897417255587755961695357524750206579407832470148150835184609951139178367424468553092111627975726996493160411402964298000078210351933773284030547347983855695510775543523952837980733943238935446436669205860982507422738980627065200804193690152298461995538512608911274768656642156145165716927766788140016983897744216526485574414357604711078174356739960868941568123280486178966848116258693053773070982646345648537152851617206675149198343243570921061625234704622935696767605295974428022251756188366147077272202636546771913228425512077688389649007049194946660261839919562091882229218309067185559882621562420027213594358776099441555944817644220776384603094335326958543305945552512517905000054997982666546728715836040914940594018382297755481955138868152502380377391288705273116962065016224883285306783846861110100149186869384279898221538017335209889103788477907002150267090065976850193331034384709291626973379394780669126696973603302956738738966208125440860198831675281933679055574903131577971447476207015608860133460593630297627892512079395871338333790440689059734925427414791465397104489756556894222186126630296679761299407425178308615705254513829199806772378333744038548535033655910477619082818005068078954543325935281834377541256043471674676679614851614560625070805670117702553381261023142709987494785980088603067517277212255778630263087977014942060249689449830954326593328844404415396450220087607524931826262919852328527718968693676483000072314379302057970469862516452139190105320457454680685040414554497829002461245346180595752953928383872394508620628784266969557591148565511875030006740971287372099236121502837584359789760171183087405512967524184281951958191474012466240260927011921778115599619741792378937012705792516576667512113029970164972711269891229909442083394558835332804270952310437545466714254952642986900549554973197292010801325361357693074930390219965209679879312381559373063474030724879014690063875665547430289062310245331686335718221560323744546911218470162002048386341296275756206484324434628160930333385922486188437567029198752886665477911414058982993274834842387819190309251174658598541969366254228214693488223209898054923558419416455176354744814221809388833419429729731701910946560297235110883526869253909649499333701013534502962603366929558392823968067760514176393046747787540408249968182656420762834178204151862864906018179818501947805227157468939701555498442940209578918148319877438499043176977618351243640163545487910848095741661901422959607705233022719749821205074088917577953006366120800449694391676344030932559292308566921736180803207621587408651937535341198813225317173003500781731918545085255463672797854415660461851663783827375728011971161445873781009113039408172973427582109221229546499617135646627574562791264322707704043790924838947571848296160237693536374213043011890773204237368982384521471893164986593651316582220927203708518362424795499955397804304660416548823134801667701825209902537363073643366842991963277684907785541298462497909107355104397742472073584102748531455597259103873685173666741945898661996730205678180741253660700509224600226434652037708471542316534771470351433745980155324152111833732055565604018906540823366348352975632482476431344952394515538772939806725087713290752563462953575059564098363374822360799316917942441371852225393211774273310028175844240061583832386748206047629303728496201166687790353220567912489879612280669234933315335393532575554723688781390647817500512108159170223060078221859771358630225906531811873661743926260314417926287986496466912088933491409586373674946658140781526234088592835058469715071399102922306668484753503406249679477105147680434195442384147883423201820050099059871675495943382582063818641900647936006957587377294796298773811120844086035938200796190846965762607486921113984586290260578755998232112936216956727744854852740828277305418551156781622755367543475783048261260620087172891879651580287870643622459970352480668173182183406865088125386787625821976201709517535961797210243664170651981161786711521583970622870558143866919091755355532752840345095090827192794484202482527288130100577368910723301146029506389145192906687794100739454346656248246348548486612869580658535080277945460572520987704277184422734205980656377627926465003817002881382116085216676596514267352140316698820056313031436831628560551172226467479126781569386456914372509992998342105511073071936263267672075270572012077688145819177219869698100207550208057538231354328935587701585253246913716223365006446906318817803946743607997954192505845934458855092679975728906891577052971377342363911545546230665536435466929565538277058268904585919722349191964376622306886795604560872321038745127817779535660806673222284062777816500781210687327929990030973227817548730211968232395498077144432465014834796023025612135158800210387775427508406845002865488534024281988691916484675783769227128200060702010757498901273061852316200195289283767858128578414392180110888552518122138766613462604774203951555074554617325192931817330054215665228823055558292520009792819182365718076458659468389036655422844666915354667751810438831768235455859828988367619362376093562759118935636734995941345672542159308777862268296037046139939320880835261949961136701195223662021991747580215581553631717746178110218457941037860156255717986198056024120124628920998138153322132925850131490647112906708925410498448459513175667422473697012763492230558299247464875096929888426924800300080300000770103297963085472931645650989872581394605868648831905398640933415755975398701592617243952132616779249248061876199673412231857770214800720061402702418404844729402492300046071540001449449626158558393986448076319070198347242211973089369818234227638399039622060217395608266656912801093274203391974989910491025753186923898883465968449306277419097295103585776448005747926492371932216805185993783303153343544307952532951561865406265717673559639275488656970338972623935613730076108642712317951318869809479276724786414926894056973305815177237969519614572697050885772573902509584435430766220882920153309477499394518794873012734026789571790558820324019186689408836753948643726438023068156404075255890185824465640836864209999049348017859178300670377293659654442234229099968648720432429818295396555447810736328422146222199293076493835522127209974689988893370671595287700943425869158425001871470952489804653485009496213660952137323531927660659075726521684665191803949376833696844077663537270040365063773579214684881365752840185795450587663019706580243710111213300568209360753511578916914835442345460836266414308360989959753660297954588048761606151920779058945621846404298379528101617684686381835267381502344968479442747228306794295105147251784063245811588545432988599921147515168088472845487196498826571263452647784801312803210461976049753787277318388303704877068661323037357557755260811815452539810839086852626149489842904521241222885942029485828173873770184313146208901870678049019280746622264284658084058169891625291939702250822188784261629045614769010335357716885739121294309867972764353566034412551253628336758214230961304756315151382297375177724650387484739797863795300762050906593313690477083338986606974535910689346132720276960952920902016506587247878955255870683667764533452724658614762443505354427935277366923847333870896949967434356784775003111783798294144819144051124256247579343810374800867271604164921449586461863687338518180593044721848549614516001181892813951917500253728931446506298463835835496021694146961766832588228818277622653723558462888509716146038199294493825798073817640050328157775726486428979897949139576962316494647537270763508685997175867975139937083003729086551086751840242890007006340517292642598671476248794608934328885199055557505632723921464443840185280609122745531867742827418326391349163178852893850372809015551499657650048102035507865644622751879794311943758550127160677821992522459922275770446401249991648106145584093145444040925272566217543841363620470982499805593173624045049895063832382688581091883706723589335474659919351234640015262736810975011467101144346351447424419168867612837496086070038293302415451126221369981533253534060730401886248763020020888308479901511377422173061536121271012789971698944110800419965575460207433244743789097612313513921832547164653415526753103459263907469868395407948908530460604462242508696123178519092640711870139817681953496867071184404341711669446026762667041191079970543739227501903314253864840096945427347585222076305968371399739042693346314532705187326090768905546610192078277026776117716467676945519539338865092844526970355931621055656535784029208959308994899491658575095696659850377226681514384573257853052598539119450470742031382061404140860802816652916408080197638449379584476878840156734114763001796526490689888912433474609275757979623299309798583132303969884071629457292287433720879278942213648234602117321412779476175715959788652665549125425271303093352061126570681902669239802835611551636955858080278675638364403709272632119788905497297009038641305535798621054476215081752912933936450941580249623294185224959476945417004264589884426881351358631877038213397870352845476068318940108643556998252243606257457865560984394714946785758709029559598739925035748707002238496966735079153474245989258668657794048484655636444287692059432365486701592652003957153815871525863474691762538856920332811624562500291642117243876228175763246956347724120432881054809584579033643983574540936987820461604069144185289821093019356147876203078595075082942896668057966805523495878683221664817683071204355923927184449912494895920620860740487761192971566656582184940154532353725230002153771043589956398872384477446629254799689145935488238316145487336384146528060630322794893605552466860893435475597980275417443001359132611397039203650776310694133544598167457031810158330315261214449368841866245183057484603755456077351597973466949316575576355768857365191102169749662253783422467245888170822969580747777572428576425896667486403134109668471099477242929297106004059614786344354573163125356733482836424055481005445075351209447557826365839893355818051416226478929941701719457575847773138404231362243337133709678337757068114937768477072308900779260130910463928604457619555246589957368915938929308691140234370949487718539137826600563519686097932060352789214053755013841508676127298042720308954582235327854546012817954321288626050179245444520060439091837325383159035886711856848244121383003295422007978711198296725284259276333430360842602544887259452244546865841444109722809980600268328085089256701213984013812121286629011529603442127670160426913902955423885656934971566823045959011898348360108405510321559285445340748988471319890875904816998511338818854696253859111070726240664080168422453812172790776793660701052936941130327677928347323901908282310974535984504869331629161146629585155796797698475069283147470855503461524773159235044508609002234104717802865847143282742882264107465747529499089666290322005186580434803510523529403533324313847880155853971578856674895230590096200047670754062789657723953017929994102156027828585540539362701970735344738182197531085653980072895940282131500765527904005930611336478216622189952574352333312066562864115496208650184517278322970136798525324102410015122828253820396017533986876535194647848774171606103038219355813191893041461852171451553241918432926749563458694006511144687254246540544852522929172689178226830541756456946841021866606158769454198516620946266015994870557686547017042430659147506208879444624158830873728689475801412649656415419289452985188355727380267224012604210395814417287355829932905853167451584383609823548718873409723383220666398296861347885671323042483692605875209143053854206323735051269667812091386608638687639268925974080776306237370881286742984418934121554567936579238401420849837918113649598342737923532647801836779656346978531022985488154993010842524756152349587493810058997181154576190133807860573979084267000748464854729281566080059304948361159277231168797106466452133125066760753153264630952479591284780234662392863942161443949032941132546185621260981004854770479905872920447582300347991439713882623975672843450306869793974448275910838193434013595288238396637845746001926479432608160860048765715917885692702851864039353647508645489771910107882252082584052634073239118792546258839612207582587710010849017801475290234637382140425021124777769537413350548977585910050974910767465179846700436010219685373803069628255837849605437628991718358730062710267206587765743478201937522587368724948525462532044782005244889299453662280668604736543937423799765166903811200502437176657233915258511253135699235156747553317547434638997828074770147000933566415843577998714088990878076084361744839279583054794513313911509857925937042053472666655341677667665058692596911088007756732698456738489134576324937797879055852816087490569341212555583635659579028439599901098324469857810390277958218605781509017499999101471198304424080385418618061624655295184678342555242379386316166766402409774931007749824667003693430494682331701102513435633895718852651537075987110873346198232580422429254765042461357799206251727066695452619390978936288880603372251291571945825447820831382887498231218006384828036494402667216386150390027966812551394343274290050353022174184247213021308198898394471611127467533180556638511515551208864558769983998804382080676369611333423021046605989835051252958296967850896836705344649506176997688837221158659979210918419496127644485637692545058487829506791807353664239705557917935488553405430575231098045700799732916116412074133527332998055815035823493832799734720795691323756887751959014030954402247082375823863113590079927026637707593287120971536482586910463245563627330415546912592628511836546239515912892061734762264926239395632567283489511495551043875222922578527721327608910330071695570753228054026536086396577814844080211391936429293065182645071729561959460985104428334950190152466366016375463193782633991750839470442455741833741938692467409057792475639740485080303779269408838489730568519322495804234473056292321486931708559799011223539449544136942850025443376238746136842657581439967725327929404308584441019341964923415414292437467555821702704509702042426502644532120904048465448754396408136985948176803702919465092891165674543474821052213355311321601330760808906991342034994171927534860352088935223661774577110195245369241151445203193309236105227048777196487793117629283528650451296765162873642732932125539932115682106284750988245568911733435132446472459376255110235170135048768811720049617834903203672243956269755239986566854022833118063253480438376660186072322472589138547821782052858534650193116515200067878964746342927222596344925204556200403782695786284473396934094167777037860562100617529585936951460504186156346355310663538022504860223599351200214418741094200722212012717194152663585263968937592269730561170081292845920530748218848358091672312938561102431223390972084692981260331221787017616882995287824920480632234963939873572313498998403698083797031705614625717149588698120696177772511472194706096081384140223332645290258213210307920370544038334389618163258880868119486355202178233223242015776328567679579851012038889421919586898536371184079762690202936241709567103156756790029008780166113693583314318744081832129176132504225850064975610915282430298987639877258896391216580240256450065850235888488093456117427510744365781639119546622434218673030979495290262432607418457732795753479455080734075958689888780191102630359573117432853626768568167833835190165028215887599189807389585024927551512314715010238405514661891508347542064103618265575874104035535543755171781802272576601618394979715804774979125748455666484939453702751374967374792978559183729075582793742386054854000884596247851841606159071469003095070393726734768414509986660214502024224873544809664192889441697692165800584877678270968278663166140852746273342844301774006862286050679837796218217263443925526244493474426021176204616491411998423710540543844334710562775195294913156808306333262547689111018638833810203384112600365461955195050964667408924019797765120208853691379176754179661953151677003401413844927939251860355451441580841825296286555123055656198790738429070471266648651911616062126058498473337387893768832248729839856036250842407475463121404499548151386007712746879844639628990909714306278283250379303531311406135943839827208142868996630671899745167581489757786104523210768875057496719984166195810019434485283401764452069034492898209834590819785275650952608113361595657075400747475596143111476021692809948147512539434333367741568739038839121839923889785279637122653143680368888829921530441502389689676243997106114941245116943974987831733664056413210364855715707306863727676494073004295913311740995348864116415803690307824899135745355461236679398832645444659374760760740408081252296069442904153345208836349797238939166100765340520498136095767114697388139534136271418735019266244991490474594597428572077073803979402881440080277518402224265960262156949054578808351679858794522971816440913973272427238126518526040829782297109848690402226270121436056298938871182663782320146019842994599319148410856555772584960614372179159537383554911863282941182377568563962360188633214656862621207606458590750195907816203397818690417467407624080529332540718562155545809626675671815067973990635386959074295168779136691979837322717736611217088150818289556839996916670951888564415182622594884897740581899381458084247966969732326304659363342426326119081104039634680128210466337007844226475174848792072142815991463711666604028160440062793303799992121251752263381720760864058629971944673583646589425921929522789388167697642794178953170156018153358024088644634566727549500810611644013790479801807233523016106874782198419433942932420574554401250117279522712659419527959598957858717057679683233478762158350579144547806030588162168009387497331578601865088198531105534267706192223098178202825277920330702321253033056757241141734595272924010091969286309554782114540249040357043937421275161486609591835168239607621700834273924647566398705144047943373435418734472565478999123710440289671651218071777660823996918806165191311277222335989330142789852630204549591291193726174911792889081258362817661104543908540218979546179103171775607493622880100206152215746150754156363010150295438251022732945099879180483042793828467606771995657198903938674525649439844157779797388648158922377941226742161387800880663598443774797827729619201857448362415118683005223258527433091390626796798957263266174243097785367462456750960949575514335350550271794842245092502136023334474498912999718011088433945101879922821148022454824637765677528156536723344788166431945165163103142155147668359188992944745382488393815506111569474802749154973603326613133062512369800992069993746279369738426442814303272907563927249934634134702430101352131425106658559975102627805248801408426026839572328971790311901242800695778062939985430208416607773910812447378020783264838152126517462808350997245022049197332239446860476941043344093423170774569215989693747167931591017432205928871539069046496436579270697889626124728091670138149202381992017282175212231530195435615204487714353425158263505580039009045201736465333627495727089433126281749792564574316353825360380296110687032103576617899255849488500265965358963725640293917939445069714875584684959632798936739634862094611526514562970032891802682877105294260270143531277838168370816867509503863243249651943990452945360966902751295031792125393356493072451130297868032506652312030153349966039586162722295329473235566121151582505740227848247876629503213319325611322167776330646419401421172001669129336800923250549409727723605434094063180628909914872781342679416722133191021549985831982465517043728630204638220949965705496915258702858417637405883329141509175691075082964395350139513528149191916997937967375650513526903349865885663236703934819457460075302004821337202109934720451852678189160179144720443410888541371203753764877805158317977516666993342317396816295134373365103839916841829931697312379155094218014322331699984414597578929983969549869201224027560083350544478429897954196383404285093962489971257122934100174463681625710948364602398113117340446842095946176202112600398470637320594794464773839719542664567246836760201951833991292069080861751043151796206739624527718443779524389121267144401135913964781069139315213121322707891587258856239401245060208392713979277292858198961435317406457231487529148276407090844781201016542505678488729705453505773721550789353187373680544292561994017457128272832992524389522461884871121300006916701825787246626730256575604080827932415637773029050054834281743549969398629384271535887280348344198737315471801051918492407773790738581077970648684481044799566996792219278913870939609129298468090695904814934157880308187960295664254769070680016837953779791866428620283027491502199734544154876976690942567869445842801717242067701315491905655262291274348026514191905872328091481613937085721205548035347559104223588723469102033342119273166491101347290968883275960927825003430612048147205751091710439859844986637884241517657454965767171288155930605663368402301679098554496733195827858673118450801257089101504196543357191741913695390209424131539241240590347514753928408611102222805956501469887347467671309378433377036739979218769693636828520017246961502527535304255128462459286050316118782561279865298573518330636879205967268848265258453568620489339300053056865359483038454975218202823484144329019410086119051116864016278188594971103148051484915479728935527754561037009783966005913586813110175439135527724146583433827967554280762002198040595371778503455710219503720039169247837772718146431387399892696100169403171319588940525898901376835241653380518064201906606232333808535170425705193834205950749451414025483909273998734311753508635884498436697374333337970202001929054990975877871260692968665021338368034665371996284263721508075285193329719442251967754554156029857333196207056170783910633692701528948298648375549570557032862519007338664734671708641050183151129334749734790143652005131755660631917976585256468075440663710375244689445245294515459442026470874674280819753041375341927017492971172471615148223515416552960863885585424594520314882203543996343559879750368779487888374125463857968816271168942192094002926320012175203646229772813308775620068465289386807337513052978567621132472892514544374137120758064764821221674106579049048473857403250356671646000714818408806853528394345280907968113135006375207250358748483776710494798574991228063687950780532923716502506426007466349659715716808869989483409937607425885714482319236899554499733782378402982479162270187904044487941132330818876588051385960690288439622275497335000495224627578662595903865343815430889638382245313098792588270589877241595964324886397454870188027378865735873910678840267410754688996119092657919804358876276356779549339502626230357963236594963237484281594275714456003935556734330386317464791161859997681152186633805810237221991987537304123515375651913547230843207087384046021523051551543610462618185144644728295571075816953179075271880912834107521358613309286759893410332037395793908090163587916524310008503192830663092037709884504599019474632635451201221394441484124701552581640030461867495025718850666322509672010006151099778210493042933089247628547833000834215795994621277254684427922756775458323887597138229265880258343340037649136819375622271571226267277284053311771933820844190392669165952926850632499753598055685970323386481662775192300236234564358706186330003418257119645949280036629701745076533106129146401862845282524320460315542795072369474706175554302388061220631638731731960756657632075988363198661594433751873512604876749692197944995435327234922432749368705442202592671335384500173822043851075534696109229464481668595127151946215893516792613244526434134280106168828849196756459060974796552382478234082061570046712833589229538067439366279480163918973073611658425689610371057299000903296652812567456279568890504318314186772958978083056521008473023121585486554284746474341055054637248222686259840044606653888896234146627850456935080297011262555086005278096359219794591093280733140441636584239454160697577053773145507288246182990935568242721988461802670871492687212484279350745939829443300686244745403015471532451016895034729376162970300756525968226592604398063821338970696815990566519326060859484986609541665117653667660695213164322049855220757331515012406309790884630834703954961605350048008024177696777529965396697731431772993051333972877150462018974052274326055928900933523424226522671621665749182531850682373952048402068698297848549318044971394297474011539239830921312114149270643924019646932342104837330251375279691484947130744118346845200167374324318392021991470635713495542017055033508001429784935089737767681620333690720306195825598153961162349880285132266074884489910134388250200409613361117736649948073927835156483927323168011241863824235635516106249683094219645694288517693320134275009694051781133925760879662023897924820353910268113053266790925627377620311222610675841472446400442453172318259594670860682640605497341553803888820681439490980105302997678047492274948273275868257957114939481410131237745991867387181862688985654134160897330444151650538666588835994754212192620051679107422829233478698561144454580737796634775653623148624917592039350007924303025457982906597354572542075747509242252721025431516408808160409301334277893256011540780669619183543254621260331883869449488826604855723751799645644599714937386987346367216236876750135879168641906451852468164937395265601781526399366892756129255659160145809179877503945441863684099382983853635651615294411855728695390536808368329394669622433687635288128615907335259234702028602448625486224194767591718310005093407310856882456600733657061124560856412703695370087267087302383883282521203153422521178239252804065219192943301670886618022936469563815105930802787114261756606260413244518982741936162562411876174279243866098442390829243837696175705230343448691932658249718416260230294060736785775683670523018089645757410077436797518893156254517602157338283150888593016998424412403385765533788084626112978676343833024128181251317278357462867694458127469550278433336322992143531273659069208994134229780721555222625415903753390863950678846041569780369950044697036461289373677811624331078060240740771877179644292892671890919829090998849459227293169294337398805158779196673696363487360715129001048496631708475823572982576600102539180969622152245284913247213336498089374170780245313574721728932185664784656474845637434434652079942606798369016569518165128236726555915194525297800247504133364563993109893400116292420853979646890356746781608996060654059184381095631349706098248001426227887185402325546614644791072395954034627746980498260021737793550558091318952013749848967325576019200554703211286457400983521654963310634590475910510803428469481940067912110948214254390113326827670180419629672564915556398159819742942963251363776023831818787001968901945289263219545781586364151709691249941068899793222119990238566850698250424302971811682097669680753425490493199731402582775150456614699192033477180274270414494692822369985843399402280867018704860749029364132772311383803544415864746250670180346016911980299348034937375994890241370586348001036727854329409548031057708366559846071300703227922288454090958459946783520282226312375055239191071569581791833143736213011976567273957690009246305343777979335768274802398578201407897728476086480447926799116689434618904380237953031101056492696302462903964764605767257955651566778867571942609084983032598576431103303292783504754234969288259537189876654261070186074015738508647625913649963698534815376543803706502420689520043510826684798430874652785521446008092806242778460594898098679806313030657741064194381184036528136410215197852006743126589891140788980993287283135049411883398751979747529195031787088596550468401409130053742140424596446239080872547057315353117996821235637527586871735409477916204774896272848390809580270990225901670011656532757881544213548867899029440571000060498143149862536091162792423372358117396284077765104989150742697495445325411726949078686243296570917871301606949781266160428120614659320736909342008535773620094573173663736317729086973783721876303688103438101279556437719659650868801703166946121861893619538318120920630537135881190320182797256888817949597702576101981869739763689640083815082727963910936692868173393325377812581910456165061996709333865493775850759924668851760694782020971049534516531407027966020186787785797425622370812812675132836392169880241098280888828072436311869704993883284089537461438639316300017486255465443413175349196247911903485634035448597486552803323904873342997576688756804337795236661802639420785415965135769706587406350637206641025455410075004607416236562659709111050853641053506721931851026704149682730209465938531793948294328628464981350763129915900329957017512553064343770569654743335044610879239047722139761688262537072208199992354441275442920809707120706822687326469655875529941393324483081148717097447557426919554047609199892579327415904660555873223795421410172274850340640676202417557713328222884386277217406537108182725401992663184953634552568837840664577046233503809010378763238694266681989400834864300267029703181028994419859205713453770243270386801390971606848482368419968443467725298126726924011127249969784547882974497253404503566614145797446389390114400013968819455991413392819235795490889898897197141408646268434285436072121284577542209676368675988646186521880694546616515740142436954334479524287109361345106968530844941665170112841822386758087200992831903365241125573035501292701416988927560576421048049758181970414282009368136093413159242087422378152513226110705298648536891349782885933437852107487087400243368857477109653831583452537770551987390640011593337807585889790860801176565540282528530655660583157113617094156160760008910052828594669664245109800583663796659979634843638944486296571268162294304775729503477540972640906481229396286622837984066308939202356059829705458836187291470522677512552019282029045234025434361580648963303816738505856341409661245523691874159926114414453317799023328190444619891818896764126547254915922585174480981574073389302185932726292181093678641213748029350187236538315280778110807737249889298058567734084802951733270935623593275696421065732624098479985533878278780330815347213123130332247444639027105157127817941601202194240036861417512621519112730769354899439201200921607648003912515736630540169700493883109112194256780142308943379289487039590963300733610046495226801880286784195237998659048674880699337394849643321335399204941533996207924701840366776633623899840927499455455545968428599816856419112021492978662022385572036808840349697237211412975012889073450672446798883895186141939651107385805480269910459067233172196032971511231872633881958902675430796699183663814045823423175138259765014241398612944577921953949724164826738517648191914464951031816653156963359886394846117828189247552535111408142454110142805051628514203989189483215211310750413430966738772132562842541506877866936775260871988064196237706747293332004460761969006117965072301929289919861741714684424305626405577111564402754853244443739561683607811076424275799546190365957065411878960545877924485129217829440417132024033381761363964783722574360815330907988370931992771834566450274721377095401920257664720978800878169894787605463008230108895866795645307230186995880100762142719153716409510244057909606953752065383510991296192056200577228456153688857209120878811129978647869866028449240738943886382481840265284121504018918077378394557514111887877116504175536821800141610106992470747106156429570038268879121492808806679003770581143887624933525940822166752275170575443925761305574522860109745628265677770708021733182795613086888653836710670648918899914478804023111757586519655296189621031646751493637069402563499874441464080213502247762596476546763416485756852542077295846091623621751502649610732078534884893715418019190472341979806041063037802886636181575555260406773372999653650825402180577096297750800333664555772671932267480089992387977365733928860116102048598171120062296665806825832565361543082425853385639763015979382028888586433674790824787808336290304377348421259120472231275667108619080167005111509592910742361318270823704212922545453373749490001205834127233954479204610945338292674958351340021133738811243347154001773557983577410958774703810867643469993025022819178523202212975443292389722856567636807468482575950965372428998932821744683240745777137123962283055452125615382051428991047110064701835503058556590137840136008028805841518180769450340151474711999547088482955610604977671728886628394101083120318479534873663361150367382442023043313838759633859587008239085634006969072138958198018185911353294271997463692035590757525114517981186195531773029722353651316236737739622271501878042859466013371915239163145476253197485688979443185385246807272850674072623138701773717100703721047781513179496273067978693408908310804021279136277215349821188234236295098889053878783066553827137287074086194948183264522883198037438204545657434026781753481349595077200175895393403620590081908212707883552899365352609832942974762466392747585927227165879603774805874206348226685487157981476018573945297497073847682367497711553367855541262929915931365304350088366926179444289858043767675552533127790903578825621902458751571878888910906564027013864581253747965292900551356276046298535797404132258868251417557803225499586454300671014698698984463071677192087227095515463330527910620990017362428639610400637003592725051378556693238022159738666709013900317581075258938081606199995132571362496284914840754537578637728019117576524411286961305266319907756436788832357463244997844424894261812526551193383310637223719610399798228681943580478583123310503200701528554029662112397893514023166205960583237924886833513095673026640958115627668436518939117638901648609584402839865984727806480401666584039369369899623219611584620792650414742953126035522246887318771577931410181319056525807663266034373432433284791309249301544440042842929732563484908630571798813540935781099865192949373557335219264996957779578736533480502612400888158694080094247468698199944413849949408684796027411576663689282428935919121058346435797963410773328646057069397201900444674683785761068872655924516748671146215181666525799922803095789099644814042107317580216004393230437840394751897137438186274959092892153059814992708624170307298252339998192119904135304712018938822756947702218478246987200090058960957628807036293816631852081697988903157622191745321577694916998020197570027622746032266693305104783249848299566355088561113070611113321159595917299728501469037920116674434608051439643843799701961891806841152301572997587832558318129874262624618838908265302883279631844494536550914031640535547378673741823506467077522263589669670810679912547320531556587580226157314001567620840251275122323928109668047083303612678429494755437048417391532036152020526475189110949405948319445000251759361439407611732979352446908034577317604130981085658806083695418286287736981012644731332369612737796369427609852902241263167161640016199448855876529415009894325778729560288173493153117797931706989438525897657456668160833838963602985730494141920033933607622698759205083554426078289081993177897719079656211700942433564458379423585923676712808508168042959943285167660118725103945483283132079568088246259020039894070324265947586064416117973246465591100356922189750456622195536670196712923796415983303035342393704885119988130527233927306978163865623599327196864966523371700275911801512239369000885860020395548191500523318622812233740989905957057273612131664146584816540257267852606067264617107351265749224576473722613391283322674339539625587920770485152898019366476904884268329327831714217780296121282431700910062861866192216865281554215398304186235862589504767160930423464781211477376093045897914520813659154535346997701510846275842893347230948949443085895782606747319315806289699540871855656261024098481938134455173933812389389607827970935440565548365928507315873760832118047475832881770627910370493741994992358569426423116037566821706146284940658593912803247412966903503287190163845182705798824835034956427790206291217415684143837661692806675024543806493222137509942752915819806706873937829278033281800479376257601924258110386029963675499392611098556481196281258051743454202450650493845982084845355750248938135513982152545676943209424170554407054612731835023898786533019423540452539208859703910072619013343125618314778264180045038130523243975532062401551326834735826965062215975112285498780556820755338655389433039398949259756653011015185319660993406873677198557238417999994580363211185564666047078346714783085504197435631939416944074294717470603862042491703889356112915647042991431377978355769763437543127435995052320907037567188202778260180970892778177562505591784362418270199733995507062219384354645164132830888918519411499835968638205663807082531279745435833609506742577315791491604831705970334862317616827712029576482118728949712246522629032621826150086319965214232953960200990779336114172498417610808206847963928447766456169999483178804121862988969458043706452890736750498663827158016449008016623392576183884665392647144224357963536475399663161385175527925736491384876636876376737918830705660572204313023001972722920365877443882588942427012487900121766177631318025725262551235388968359318718878207751066700225488336541732258861859653401976687304942754613920288143290543919067695436897936147691921621761771761395338488785484282449495867006269784676117189628216071991299190818702026892303377160740280771360773458673883708760595740290720015868477777754004573024370422357363252479072413303539774241596833391875583107796629371891478882236638942162549733180693724571587719869527020212687344224338344994964792439194887391774554805947365668741224892362586615645974523993460491571809305636727500395971807945141432304192239702959038029566213131800800662046031811275376254889861006237360037970658578901333409506166622464665066771122288640059075421030928509893413169149066324146127380767913020453253753200080815243796491122880816196105506782938809614853586255265977149316340589347281697309481390070888951301502290879948939683271023936330294823949800278523944511283196209932402132826753327588499177371306632057766613024808326200879685446887136175912209702519373231745229896057667261128055227556497859425795080245350023349574957451732444089490672353047586654417273391052840078196448381149944270613133819304142507873824223981608722166281549477831698384868948169737300133468930307963188433164290843473014592191246138062860622925910984192007331164188892932233345465713157726965443172680719620642196936070464478611260706174207552501278510133428712300527328338555766473170089374340771289623623506100261022764286413312746725215710502263710490559032888051074443260012583183269899590236581281880466236270354526189454660603387664788736388255118181250611986588254745526081290047772610973440209642229113260433933142455189753642123559539867560036596538655947118076584242760376583095646944007758488270949362050406910668593865806197021525526333113367900175308918605612633867111547464093551000497436387355919570633358913708696435782696004458150031613156291117788033164691118960703156461372344512121466498241129456102025712922376726013183305657349913603557591194066974477628743138258556459763517792941374471546417455466950291915489632499407379660655570923476158564240761643762863232258647147998951250476803472568475839439784215997504934950077072666943902152633529759656269952866451453820502680857914956205615204011646217585996850209738964929463114857158734725082311103726166083089562324326055279729482893593651747774315246677868231934690632880521241663933711916305808907414548286504308862131364505984822698189172497593952915691774292906683462053924023227579497961056658452375445926007476431677468439908788379101356528432710676077919305142024267371040187749623478444446812171900729412643958137840783283107516365511754755799802766557018568741155817940742111894444342072409646599338306255716659572432632089198112065259817051784191210358634741360535297533769430596668045561496208517548228100015202707278947690056380937571900398770885957122267238079946251763179607331835828388707502138272506396294870937524696659746438200670946805475746505969503493459919936685148475447565150950790860254491084311655243760753224228467332606973763525576295912594055965588229313318764228377507835895784452917753925222453990955233407035607647749073768305389897103423106540438826366012615811475146650333149663912611954705580073842371075093662629637769301696642381801688020933604293515579894053637662751505520060406122321702540019552524420530447958910669490380899340806822369023982175843709990334612517935861609416733859857299495121107845175912147973278170805506570789177249942656526988585697708370337155148585195280095369772329198439250052888681422954442497110890312747754284831775374531414777835862052995633103843670710841514780791974010279687420926587291249715105308087316359502088219190136124006441731958467466807102412900512062636617374896759666918456817208027896627013532389035288690408535134918831260953422288265733648923012078950489067515689195396886762850508025818845739188371512133809643411579347762871628796671318986696096218029293158888021970881804946217866527723340788034384917753308571977280590854377190743580721990766857212805762548709426942138311866703948456580529005614637343711174854937237526776331100206780502824544941422664711455816592985520667072653657680966464097882703115298310404403402679020265622725478497244075644625245911310021541627279764115904341728550949243114751641887911478498060800966846099878946745401022859113805800359884061446113999357006350920799784443326750599736957633084573386065696140803000306348784126389242609657126969447588240339506389018756668568518963727695595684495288120894130605439838592797077677903272014392399103377431490301229962726695993909964101672259695937390035546587431054134001204058594193633843678726972261960618123401075435862647996639643203977120433246337588926216546541158554787911065241160182375487931464329856061702131997010900374887330951073885896473437341341797815783778939926549624953290101022523890402850937822834988016720214225650202459746373139542664109920060959194508733365431912578890611091596459451308147337978233114187409188507309074640024769086503283119715625743052767964456216054046729521385753745176875489050355892110202331628829590136102589218029840272772598983860722614998074743744913394451053179847548825460084347606052046933761281152887554811761345830678182126483235664699098766314765759700565234147820254982254974148431046609588277984703329919808589816227042584861032617709142203087226607604620105285659996045775803903417804134285213818346059443326944387447827441153349515542165549085739715390462869462501365788844242536295318895332658919027387879920140744041324357742626649981211313938273147289030102426775656129959634008125432585313410043319882999519897249161563778800496479187693185822175876361458582427631736682362727602700841094848674274330582385541158170643412176435467700501160616633388599381006655620771881856113055604109464082240496524969822519788436062461741089405202697912701525879205134272954405769681400753168564161048945178017870526426840018163014382528361963534282438372150737192863201193831825277800837534552207303816732135063535162463089747172623269795481702830843585165144723058213731474543992739799384289786223212138839113563155041706349899463674974632781166563016279169947991055435027702863254778697839454874848361509468747115842621146824423917538832498645795513394638183641009489931733639179424116012373428153007691826528690952580262676172651017505265301962593169464210167473637387566393892481846223921004557221425785535267665998281990039044615731867785081962266279869033769503275522395814282497340272796697971771508304339216411060466873342746746676935733370260901221819914553154320400768603020491699832496223693769991534908756104788641038616394367489170671828613006339765145692289876231012276929883253862750321847429201311607116828074026064823926298645352137014584339084231606811392991711834785808484691500860149431261233433693173944318415772810530671366365863984817160813437361256978930939298127301078343436155921009419632035012785911506152206564658326753421357372674691382559139552864932426771517996220963795445817045892296099070673958913492053116018205583109170509170216144970147474209203579008623709965274422677649442542967195702450680931563244889573794045585146466312720985513378280473729061861611565868100832577223809705509843273921820338446139075250295482601953831296178013627128484827102183418722670427560590727761625527525807080263877583179459492598590464248851007866971626917465108214362379048783032079740226450397690512648110768957593859571868559225105458470863347234164231009043254392418341569193060352357091632284764470545131426942444499377503853570068361173770444629073445360660368415848256785801903555832274993504279607751385506085505174729879599430952593081037297382328526937611628570767283843500548698423222210430140398820067729381667225572554998864179248694804551413513561639690142707382956375281196457426712236827990376000954662232248518193028773243281237006325320632368930700113428423613026320177848560609506784284349775961031285514242624269000587640849107721494497509913093172065566974743462660801911880741185034038926780103775864524119329659507328697791954408420793239490592853607004257601940328522608609602014853500249899287499776651282146644078596509099310252204777339863366966026059523766281330898444662308014924941970786432853387207768137812210946642103998909069928148345232252755768057674248999055130114093712862530658070161038399743687233502182103036774036145108932547506574969254082252650302726511089387360449118148534309054054513984096002606193554207289035326242037266406928548809971451514533062890709059577917295635475164039253687636606804949595736744797003155343616700165890328252253752364929664299012196406462169570112983663112089913053734009724126145079322596276464525437092663075051333857863405052718597325798775814579907174326772051365893601041318823584106280295696032258701148570277450452642298620688368664037716971381587113549130145903273519998512202467994265696602962981930359839398787910894498375895067360742637232684652200720461318622683174957443391359108939265775799640625178799455019763447604552988759106963156768678711414358738263627560089276561882053582774948572244391174508376228673695627374300285860046471357420178943496248692686941247142080330021745424054865360862499480343510981288562192495692840391992140386429714305833903916012475949016631402175373517727724912149085377080458533793074910951150652381983809497169167294268723776620977654899393722238084719133451017003426717168078669482979313885518002784314876669949351487506269375845134046386355726036780000756281470841886232490064595077423860973989713498820530680063085727219343363803177775449398093094879168394992842082529790740292867317513333098503591590848301863504045776359408655391762659468770444192282638311863376610740041429140507230616205364530688593074919456645989249627008658131778343643129954098933950065924899776057978328911612243623551399335024036164971096778913051252244428827075038218711004011479462397328331783033606493145109558752084362918397341785606490873605421830010342469546334505741436139929197958267355174831938571290114281750266268998617309224212260508200200348536779562631008911980283344775473002579710310113960254491959527776152978587961341105196602397239064207657824361224208026246720027759600446309912909817139585454670147259687734872606280590470129710653956893382063494149475241041258312108352038547211835470438375246088365671838752183821560395012837121730668931557323092337590738865541937979137770693052836428738462139961710681550735857800396868510030588568316270981327523157771271736843180223404141244857485754455280141369399768586095825857093674243642881696358347710317292011915438414788665039107215303024312867336554580219155294746274355842260210889469665417670948716596929144013980824757057280223234681906237777605281447495389945675646256818814649277678623053341888332086542069226314473743386112079207057525921220034036888291803946790358764765680978109343659555055152304989234329954256021133350580363450476914406694886067440796870605081662817264919314082253314168145462754353112182690277517285527975132147951310477511156385845219627372796434533333790603534461955490822448456214281007714013390401115354794803655176504444821595868296832435436715334321003130039296702337042489124195281927493648684561355503526022632375477869564648837619351416514773239146926623826348142899396383148226047406026043714353800502842942718080678698380968452017726786815495697477140238997427664044858899715270592159093276622268743524323955717383160249424573830369004526346672514979652606428016543070937316732515188124919828483815763407629907147285967575665091635343667373533479987570624252464048200074713935282092601771678691141442047167720208528623544507937756364621889485068393587687075696817431371536070693948081698606853236192096154723558759584601578719167956866357263359433909738729053650373218008006784737299826855519238192154223863094516018708757815221269646695526721533242141218359539499141322043386833889740110639741661737102833142592603621867173748778903771350031301392300846789626184215253565082639285339103273864582410744845819416098426030329355482795480743055539129888630268919266062369941421618204711880488478759900994249749247881718582876576378207189782139448468933184857541495626392305794137100856148641270410504451834063441831658757074860216504665393276947657313989364591875378826969273063677166526277452641674519580941094926833427223247912806610193871558552224241675827321600902366267428803892093948930654865451476645793064049472711564211439190144737665935323635181241571396556409055258304496283690299208445627449130423625425447433948952535994219541610096102539241702498420074201320292894487337009251897115677880111838464472057016215642018308982626898995745640116131879005823071656306250843406191239950384720508043782758632146100735280031798267478923296533081688502980655291394053030470036686624552076736330851272715903919549248681451398757636019838488579849602819574173460061619502246174523287229210277388566911615849617210406979614244253149767959427760647493947614871089183795832025918439681846123349996728451614797205423089802327167597916245324479667570528700493798261343372293533322632980477599529495766467807213149136326915640778162559607151611107461380500656302231144254277170389809087799747126218941266830853647753571806214120450264046770508296588057219051922896363897224606651284196403412195122377281228451876578864098737095573460404803735805630329019351576665146260267728666118894527175127078818842812126062375012639622569183973080887251435720176935692307505773716224451802805934438257976868116945736685004617325444037098529568762299353455308715613053309771156183382196774073173624560834160042192288790441262621378178431747810434615823848696300577759907796711701527394116400371833977949047759352278324549576726706139755024635285033917629795575455922686330741227505327768617859942450077119881929622199859501184718116454908388217161600605179900900799457979575911936802838350470792757226195306208147492768505064117056827499532181316090151357798366086250124547965189218849433277148852853569214297810605504984554687719313040965616284609166685798453779757995082961359707715402329673489373330675625478001578000798084319123111572265973571409283160203218063844626625473335654543494957546689672390287088700011490738019191747424131287828327787273147296583166178388199695332658978762113910710664510889913664243887288388845111726933939916939031752615484936870654969528752877243629084308528839138468897851954185108386977344997241155187352999063974223283211044625974473040139643165525904988341608187550654442036604574292320811220757027012603297193154727647916545634788056544917658063471103218768966960648933011886725202046344881548112601916786907511635125782469780910533884876346526939006617151311442538732821919125233338666689557503952997601793543829715879448016441391404727714351014217725127458389746774627411591332571988994792394290920143027422022459779919414828250281688043905525468018993425799120469003692620750894245883787133649304479079563765706640876261049790392502770268454339057029322106726424371059325988675288406852531479763371752404326357379128894194013343976415035302238361658674745221232949408830628127106058112079936098275995315166485807304098962627417886514877452177007377138381761497061027996089197148961222983449670026981058427388797444825999052619427909739580476997159407659452434657392295397807255466197457893203286736465237356071932144955896985772917986218162206103236160933223521654310719257991562709290478943967690257285743157991810522471890453679219357526098522611006543120437560607919216575792199303277657426954712898140935558915653279774989718900476740469518511103019308657231749797974180547733428805723122016231992605528683728994355789667224619597651064061040887061433591949216867631902149845628632646824054963003026243069419717544224155765119054308943936390522973763217557178042754447643281703498548329804990592170857822284134912617013906977125223989235958967410323526704737943850570169543212510752072927333636285592901550822153413457461554738658514501449526707023800614878477906692803146347109837884957851135268632832199485721815472746309374923141014361608183676835802853128057934989024292250199247912961290857927221622834173439485393582989548232787359240656237075328308091458974762824717769028169383414196712710716228777272265053151102728705384107242219435649983611746744372472823924249571492216357058389263527447336497157296379484429081120776497455521526400092764641801794991869924816162495460212941116185431036717254870662451933187851961611343759541448677402238463382904243551130898121534830157104891126769458354472463060483344944369631910233597827209933121959081169207429597828646110498360744359317864729737764386232812467355149443630982180943954015552375823196291418635125669215792576756326943878577055023436439383719633751534504107287598418237225873983455931273132542056602035388134501050823215898612382621630032671446793459965390634430532533353876604523325826238988903725170593628510276768735440795130993617127318747585005102448963281069580939315516724740618223041007411962705229844377140764187505738379929840727357762235951200371023661540510335288162581786634379503869961261760752898459202062584886570127958959144284649002601813371607103026210349153350710367954037613435554036778147130078353522266274813139201721153166316484056204210985592818979272145877247256303164366307075039824502273279063254522345556933195412738514552084629537792490970447866428050403982136141920540968597495836604648286215719966463509629002714570941661872021970746345041118654313241152259265944644773122164862685720654410699866122134283306756027013741094310529003810528459061839779224666408698041695664949365496080640880216182916038065653830176293821306853405213154180546044348796764645260840490193496163109893689109301791972558249266194449429184358108257798664423655232690443065638212774161341032126042927661731071763918017157023243705071184413956398155518989738390177424923198440337373747253199952656083840784129543036391920975669828358402223247936665628989989804894949873792538532657938850187465530516549899969776346545873627879390884402912435246112826794520128213892350283069045922905320615361774650905073788922082754916952017270821063521830652797153685545423530621874042441612270003084016418214312340873119121363864840855186018280616879148552738082340224122401864463095839310227963330474837109754310403317437162422717377816796273831840464833090934689149148737532748212836868670227565218920919266237515502671857861269396178841431670114552708827623110687982810940336470280657395264764198240157795977762402065996966292249687953594784398666975814514432711746865922518619740664193259443212853384228260199122804939939108132318470641770116608045267055867410934481311523866609100394888753220698957146531748671405171574262578851116500356353990725732850478468989509751144345719140821198382886604327806552375638442623074079602198306337501242451252389546811959551872944890404402457979793689945923841967783269461455292820027047774274193265824697299804655346777888010210419207854175895256327948765810544020189421171950590248721698493774503810374049568110997928814272584890546404971271417827624610230820990980386807231832938330992103152759243385894798655666105066104908923556063445050204904131707172144760457161598553548118941350878054146245868397761684163759011507607604000588414780352445240212269879717548195876861366581216659316974289471261857148499552569700721676358481560049255976689963946822341050962349458102466739052703425265014877314703632604297368030707713190663320019953403183838848452905071918136556735486907956829207650945890838563204083817496792747144857240015187780128936687902359283682536095717137414362804014821494637601363231559197265793542181282523310373022435810809508602834231230346425846244786354435668381120728354554563935963901741295867130612103543743197392628674466295923154799044694875545376202761791284033225339439345014242496404969380530227146349190050241992040403922911828939030707265507278833778748541215907741380372218142846909622190904471119259088178185396580313525564303323142175147932804815076077100269826548855682344797718185994093490548340912994833573453808815072923678818604670467001197631822368095509992994651535414945574626919438596646261619081539221728273484420800820835290870584981384390052991546690835339745259242337197300374644257405889497063674213667242192429330637596558036233388021897877450668580955706749360455964877087494612800041381057035648878847329637508261392475423237856678394373398640262986912626634893227622520589018446144928292607323485695603449392127195121901389562774213586477718234503672558765855766012314489383277914390277702407127870363045084982781201247077019772841490772002324530128261169260334777448133694543128551809184607517763056291476408644458774866370367768965785753819529214557267087210736742681422428890481843290861157439144392049482369126243657900134016785758684917088941639698803147969530587910461817783293971763890461195894543846969281932294111942436171990200472150376318783159247422761884931827484483089152167490923180528986968129132310819814680598510394799217265494208934531754592008423923114755509126522093817726218467566321889235653514783702423880658123057933203989530962699946482491457715239001936147592700599786212344260834387970192974688782674349454468635039759630175895939285585687905126625215364596339103873165510285214582382018496209939618199994836190973793040254987989390569988084638808170548344965664921196370965742605665402324990553364156282111411868496608151830470612410203299259267425522181317258010219546210700265501280308740358662275231870041655373485671161674794903797598222675105166962725805740127435989046836745516402314483797664733263614276097049540143730686185085798291841408143744347489758221342481853594462342869420477668631685392744634347074414841633186985802561783217572132393116715773274045348513471912456993286343309968262092786247921924469520288370604049407132127498339487069777129460656552301659837255189858572643706539339575397036259260621308476417269413995126681709070808882830566496063216021224466229652026523869640985300301965670401132048571117981808688136787946694279165578207316040901082037014691277359953358008383710308479896466061379018974325483824772866770832536866459826398368183129898940925221937782610826980033453200122132888801192642211133920730972718381760941388119769223348411531586654668439288899475818983795184070276324274636805478527791036614381959242517719990240055571999742512950063264764620333804388558644369293375850175774065112786107508379641677875850072526094951342635116563454921188585749385963282291972230106084051345142204906161101523562733871871627534445106642248306064623728801013827858691266689223509088204671564496019470710369107742276347220484545080332678547499670665191183209868440676649629134955608322440567768931337675910734596134643669024546796025722972794614067622108857135571906362107464129583559882147622098062167432476327868802588587756332880578742228337913590050982124557555707119696957403445844285974320006035504185553098219688241817789690818015620131627206251332566740502821363205955418422530205097231639939388795513226723487599715736705832715015328275335824364908607761294483977731028604266547832086993588460617175677740751975927344425243669762237393503657947275223987283067460753189755444022477269919712644375377260311463375983062656121378339065114560146319082348848970329838711315180514200891686506657369678664707841045353730052218971788505750937220832897566144896979223569983615051134131092272447489060646576323179788308428327820821153438315584293383451862972446369503490144898484937825652884756089817581843409373916087986545069501228706674977862930747858528732177856704690086235309884243077744306961303454393398547974613868762302570205477698259866336828529554873011481258751982188479564051318056702237744603074373574873367483550906969249788055552524389137826647518364267840933836701331193081051004357585819770383397033618091531634244702587897238203726734298062208565156208360964805238872231811994993477804009184517871209816085980502019588724299542714925670660872984120726554659064221321002056450668994002394239464664304808584336820741604964398310127187231595826846137004475649403509178744366029456867841414771779710505762380287252496757089191753062028051572143279730504650782361196546653339713904382621164767412070014811618577225779334360591252568612923866781816970957815986955478098876866774311756584547319440012354767167679908363008083973640513273473200652504284755314330074309171497229783155015808770688524411025474833362257200920290648857554110707321606950212104359328856786887564220548440690375536412379486195132038475162766752983725866404343971057345516252410687206223984053992107011716947993179845299027616787177980276647073297992352123440567832789492301508240269365073143814216316380215318353317880778090115763307358995373488953351650634496957449336343363279708394613734542152588928360463876770267626993136976083387461785126116358399814415940212156227476496885694823891101053712949425154502462378623766194335122645540507855868734472744077799652495051605751837823755695103415320052369132754207669479001328587348902437903706236968762966393313297363279762877245026835010738135570441563867097200602282853569364468014745277586359630649514287515886386456861284252888692741033142774452532739891976197556972976696776009972868396407636094466219870066106558222564074054007488145698211734868417387180132022080334323035394559709166069232800829401326540841566219113110532212181796420726023193149860242668077113723236205653644475084659713547103803895450317900588542123114156720290317673428863909610582081797848501393546081071098986295222249447356854623669054137257032856669469916632203687425524907743681872470880587493446033133747968958138005711025200397851759451241799248395140721792089009239577809379720727772902470861929127277077428426321875345159570020115856321864475694426272387232963728287934605802821410958927997202688133577823809240955252300113507945594732928774813617652432764414547492808138039870990909331326715423947577538653193238607938404525879522185108938806997782547409024699379067182563807821499048943967474546001022769479819330767700476314908151609563503761599375317262478625706047721075907046680913249176882478578950014641353230497336133377456831443794916720354079491116431344010214436986433653294549592666277718174162939393122475319990160610350662483854791584153659058370380256918138362847485261421172998081340529925881588188303205863293654832488110834931909862043331799591455477146274371192830937155478460217044714851514861104020694361374418653653496234887826971661267448588206865272801671624736500029979619900276736770601303118512433176485327476368574775495789749708550164218940588720899527917782142301070251231172243479393095638322635029410850839818351533082781573280649768371774001379434213703852733207481898298803992713925941250808941199632945662657398675524591594994560242620951550520464140941592076362122052395265622969650608435113888019849808287667274072234949826687146570251516070571848379427321337684156917250065468382164560746192718755742662655520451154014123837578664349709789667803107130474906858290694792382955364315712352754078030142920680416862051278701141901721369185844016888784899595198088080802801300201544549484390299213429083038428694007043637890743378134230188550025234825789795922012598760790358325992983233350621072446502452022354780997748368109192639196657314642260417226026925615494076780888225472092259521505072427625166301073179693315344289491118415671833643296749082015412666464349965044836743051355054465145736479339574830763998117902552984539825816324054407236123476104870748676651836771058168053429037644601964580366876022909232993993295844879537699863194330348580030315531785739614775630723951132566883535047953632491973680489071257032605931663680589131043845486575487448094476174536556430209700490707312709000940973821706348782936010237215914480478899063690951243391797073884729189795207164504568297893744397337144365683076072667778146565902391700640094839432945155182020066888078453048319572336223612601819117689373169490219012767843939165497552781471230637304245217134217298560235154383334324190928858676568814572638943798354296114797671185437729481171520540994880465511056317097952480682451914371377137986884132310115059981324805415037420456299721284908042905226828084217276800231816504217833767057538577705004142942110526885178217227821578612089246656107298132811001646531967522047188864029770473052099616154742443229562860899719347652537867866218082099560074438887596558833865224296844933989554209011851200276917588026387434976121813179037055899120587999470180347911119278599621475711321111450476872804859077423468382603060375924422459871406739734018984380562845023096490315895601863277179724318572327854169831055235146412719725232266928847707181810181319888142391208286375754748686555843683439024285377547951000518407890451343438918363291795099445072874796635423808532384274726781621883893561301802219120712355850328810150855371537673386064564460760393694964735373879199981314804337828427925318041244233025703139743051421273942008252558802336156019223369686552426711869449405961392158598765753733296849332732152635974777804439047719926139688331747324923450174571812816074818407076700813304991915813744752916071338815855179937564112114306223019709429593111467172225318272202429545038549591516757073108557975530487981065784641919734330412271542916308430517487763660045473169182218871818548702644766078150301177143478888707047707538977891496359470110888607647837169901432369498922422337097368325839727817981317088547996460866079790552934001020964426887427686570112461651446395964369254918538486980632059712941096658448303742242424127150869049508303539707089321826191092758691599797312430446122026035643694676531841966456793825314272706603791639873034415562939287991637478205326468273203111865072303709616945194571102335474168689044473405798235616564358236592792036045206121134049232131944315293229569739218105638062077707430542514980453833286469021956711369563407092399848972498089551658973003588665590163902713012414983802402246489981028471080474743853883219057209046741949267254825061930384188537247657304348190665430910461920905772826124645262667519158013580260966187662823532257128597818104711294228586096191387756402189676376838407787791969582670663951360223673410152916390175452709811411744155252953705324587185834592295718141318438516894424715213689713581910178254212485864173085714135166969163950019988321737985868714850655689798137427658482293954156096802527955236079935294955136570217642946546586803089794865790005335107842919631508267055457937648986865010337681077038958423180763265385356396719583016940516121835205032626175174457376814379656158179142392924589270158385048407481869241777777074454218193386282605538988254071052147509257376051139671616316929166765511629962479288668904209297271390246522103393358936091009805306452750538992817512168669507919282709996889118594707912517392588374081139768400190882442116363269295280961679958957692230624941095170348827495694237338682736525080600323427890060642416742405401613841730029074140881799203071827368608240855771050547721152962525312003895673259561693573749401707664634239373829126252599149462130686965821154741083488603743948804903208541725109946246254376467082881981352394881839003811857934140790882858743926753122320512828137452180665210290190792891788309305730624843701260718565567658531319103312211185162434407557122607710650224009460974897411382018378467194693905904877807148165846598845413141774311667968008095819118112113107280942415673986415428949856333011227601703650495663988945909946263279389189311825149631136992048951490361216602912679617075826646965074976927944113589605380292269427453351366330159610294567116572207074354260216217877016795167156387895914113206670436645705820652322744996980043830825891795149920657047222168209693369596355847945663514514789097903610195030457240391220439621072516209120537401243258435671836944817531646537567983294170978369730336068832664425388528367515210268117829760673289769519510920527479282273268158973425167562516740499929309768270046531712799074360671161015651224057852992729840070493171832944528282980553092609305607713152402469776068142496233479836786122883779822270850937717869304217646138687150532478876705093586249224993676560607443264559605515701981259608311391760000027910091392813349250447020209899298311846770790039414246785317461864624313384471562932655823626402088533609986890627754546199762707575717488816348106745137925650541536964079061247187983228213215145766599055066659626433322696603275137164569294046948924379849784569159877143119015320750400351057428146678777746776426266143768034061185892998428372651372268485350178031783088100335024729485384607308877889136448622083011624226160053039380567800490626473151965948290861650330706909166012627213187872660386134693269847858570759327021269511399958565143039549232499567292338523125459770663323392473899130529801464606388800762043557017619455834545280593530005956351565604895427846004344352353872793780350716057952782096068773762997304171291209028457282035114988464573410725440657397066196927379008247981797835608792858937594650422611684361526253902414618466131972025049705154559153330016124122898167928193531982044005294986281213868936651929376473330060479593907660612743496231986943362022713054309127376198033935175432679470822888866976526468926966125263703521350380461053354618682412859537133118400369522879842987335719516188939204583100752729266792055326072495657648868624518121836288341094761906212073973773767667414051433904394076343631350092128814400615997887038065022064872920733391291819575528906798690468392258306627140452107940229255185582023731303021488625960484182169278649957350416267805478359562406119360363837088828020505614448222850361442089030150958505580963155709255931999719521241127162260172811585358403701996879246516453048980793699299438179816392769588044612272680253605925597512468073955661968983042650893445472578665744681076107693350367203558628958381542150215174458458697920042929596834933604919472067035559304884255654285816917362567696095287608860877290939773202510808138995181963627498590595421337911744271576421962162155436922133067549768202891477015746169781679826992201472319663371176258175314675315080332020969791229555179934010947562765082015014830065073064961635245943045859529047163954274835917775562756546300054681162733394027390922106555428047180727628009701715328659342952515622360134424829031954785408355066791834345201100345930730016178601973115445286477229357159163985248931540989263910569399567113880605097635619989065701479318859619360850303864423357819908672946115903476373714462689278384023376475110102145997295041409115180323409068070781173130209312393393376041976810502630567677718871768045385410074119401457106267459589521432124203737640823663774578151493742546544872917653115120438268817923341034993006113631570361394821213483702587233165876186738512842106602230981334824605705204908431054545425419369079484945785463583139330733924444389707195179464526729370663347474666545452073853735888160373908874489472986825973102695918411471125244261973743365514393998534338752666831066669623976896217498712870433754575784294319033685507953573754928089541788948369008630641844098576236785357587456634661556604669101770783061243871672097697904542614262405470941198171833051883569889662705186995683515575330227848550732251908503889655037878572996564541255301477999142171868998633887786355439526769675675783676683316021477287884660761735355701156930988048826243132998493096027750261260892727321585560255270640702847989680618155734725484271739893938316100659434418360461099893996126016551661149744866383935985486148300205644897572260135045737206631654755805107238693010503333306760581342869568895018114215145642662130020295935647035314267106899357466008710314211418975291504927343175577552525562060258470206303668716422002891717204007739526900250520285860925454142663644722039621525147356397031699920590275471072614096817798184536217357234293831643031875351073721021408732878955194326450352679322703629146705552717853070809330310079045629935967762141547198773350164274030706747421076779471769585588699614060109997058770666025394367015581701685365350264622221926662159095709745019922771124074950272463094608531802191617667354372823301608464171011896572987871602692633465743078832008873613095007565537030792502933997257905473529855431297173542105122592814822893773916193868489707522785161736753312995239227966632769226310131173085005145415648150863374359451505284795446298076514221639151126250786583055047501578840667886631947723561743953851551639010718273149309847353970404491308106929800986178367717409959132562077666255573994712477105389354386600852297590854576033128716909534319356014133037509872160499979055168100450810013542525482707246501881763252670026498673086488889523532297583028309836122860045823938435353507023834910585023569796861786710987954047892523707065030500475438013534148770057348187892905283639643519466348173674307285901153938861618382762936886582065639220123432022687797195835920439750545385510505432668269485719916779478174584082957324822790933505949388919194477617921936852039459508463420529719372010152010953384972251577811647969074255007377412131153841406349870099263813497166755612875008228040115602964956157681776577013860382423193543376698775279847269683593647765310836300638123915280882077629251364383953569024954565814628886626711367138004368152464042620401231414517988484360249840876198571791902620033269228036281893877624014885089163039066718139228366268859680335561068015349515492518387907568535801591568043443399188370214416744028122677868763629141261690050152466634312638899912319667350922608646673718540913133054730728327228153129430898161764593553612825804294898816748506807179708875159066877525471027178311707279890991733296840515148671146554068779655273004877966425072697385189553244943483494199125184317345085629817714075342112774553219812407556462529221679163903676323497539514910770105552039901299741137997150552352232434266491212013701486363829445951166158042372985697981108629192962777124156427279996195839828458521484990920472752332523396033962051011268610236354603635574690653411916329729387732992307888954413910076457145633957343653602750969080070526564976749148895305829013633342444024511981381037632880171129723842520768510327366340199235890861798102164331167417320687929993040194572203688579960943522303175548901794409720459381498614113140982911167879980218915656976940870081298298118866687946168416012298678740322647333558314828483594441696236977245704685695397461135952151754901211186113333078051873038222164633503503468512577713863592772553388094129904150814063000193376660148499198592434550419253178781635229828870563445452864665519437740508302089044253338583378258293217419640405934267089703769240373211239874389154017815635870683782602223541035291509906380601994675186047087013221104152969471681633651459526847332653064427567768146734461575544840276344728016502687532288488723130303640630914803666732130054653662352611427505622345189694516822841802308437207050846537731796041547890801234258363278805486613063421327271351966199731065759165591418253981553196101160648177093776469084907106167775514759153679927288350568711578173844354486819539405965430772447640979510784511394670402129698693679261980685868775707008922570166506055781728916227833780098482855717119354910942501210634979127324581215842118118306174025913084568969349868153908498319472560747824199259262362052268686471945735121885052760495431841135890411382119804969597178709786656084591607229694572127981595367361782231754196236686508487859287379560973139889442235964029186684025800159693618530049763184800597923870818341615505802295488776557833743010003604517286524601472809989800410071481593129381297800612905036578158947591833899577038935135677388867067748197205686586253610378563733821800453402135470102059910189456850801355029500899235308728268283115737534640026061441971471676789665064750571920455608049432829100186028859260691711525376961325731793083004377254240055066717343564176066490232528663218044119036250078039706398041691772890681689099865633250347711662320134513028137280107058450599217691050147331519622117198096786518569273607598684615817748225623866782322684268992040252389265749590333688045505046130827207114524632034791977618112710503918430616096882283884675083505311212204397089012085488769525139852400662875671195172728710848379987621303133681890176139420829016780372533999599620523132220401009586246810067798947925852107023756668707050304491807475395185848581290358681657795202380323405416010095444098067686965628159508477372853258225068082284955628033652173292364090953849576877616499879041074370069716193656401116871146821352607946400833454803369532948223858937155581967346342318282991428043828112130893067237045553175323422970179799038162775007543443442259146744344514968853643039440822242625401146334575236410913582813418703056823062825156727478848084069583941899769412243563152299511339876880427494174706098558452866614796297685929217701769733259838337206739752255485102381529926181461096667189325748125233689420675033861883349425257448869991582962593814107442452364922165175144591391305584880425863845334350669682976406936257913770688655855216175614257829369748183754961936736445396874765502822108666143669229994097706932294500082351490116132577494788757732781889523113607728646662774802007245763144955910725824050000011299136460969110455683724227969197705343258177603208329421447646646941744527047079948452914632693602547186233773205419017632680717684281927956213045235330586906305965348347103053725226355066853948446831051403403530618790721769313841656981312743640600488051025121617789158549127474067963620367709232525794884939043196377753311064529054115751969850960059864782045351005958994824685396668465554259744123722764996139307984964164221295093562169183521181302549200982354130562064900553632442090468521219480687068803881946864215928912968873471222130580077819661707994195865066178628415090377146108684809738805089264582432801508080986702901261981241297221582801366162802536952435140230382955320006963731234639379135513917572006686608313183045363397195121734958085582824445265360320204280860317709907339583497484087632927706371484700105705500375822839358723785872826585257968334166803628504888133356009921370339325741377837246417911088699624112501876988966424734697628792052359638394949576401028113018748371550302121524674349660554061967129978869330357791389209418669098261390791260410847251470001634514917033941402966324595798336259644145012148570199723078934836652693872185942644896357482831568785113384066977812573492649619317555967421497490247445087831446675812761117995831656712979009694576285196472629618359212103845316393922454328248544459348192102568101845314942393890586172904838544883557543526025994662930616664615464487154018585278938362424191392157707010469214387313656890250534286770725788722852755145250958086069434029797174605430388437437076248415956356698235590537203324498822425955823861820994485971674979684114122016758164228052119086354208617332850674807385484107687455894715640039704514504746772195660819950766779687624331835712136683028204712231174241325820039396596170071882337826455942173900600225063446777221914813445658260560545758588957840519429622837272291823259546225138585713524911004214589712449646200167487430348029917863716181878545455211356640160047103362296604533467202926283840384396899040246422854971475529018981967152226983228241084872788866951347949578906918767090002270524048716677137518847074263304676630801693071591226317124712047893350268837548326534186309289614969286458868483519259956620850712096054567529033848495593863203727266483205235082001798946676650588283155440496098151588557852579518668469606926856280725508032930571957404768603383310614957648097613044724717085426059605909104254203372666500377738980719456703745762295121474417711319836276780742428359819025053204417533803528064106516365841941863676841581946815555678950123284862232748843645856232447872271344852846625325883490532892339225306311964104183590089980045222400289925504271081592852150012394414006427793130691451817628346454376390556653262951008139868846247968611558552382821596128352074146677488227792783791947768027562904414896963009271901306588279690137175620789567920227909203780418242888141290969968945109003477778046887752857247644325615329571908498080756252922330136324260637275703322604952154382534952082853225031267595202305033378614885399844405547242407073890871574829534326737226815631004982527157303273886113551765069109576461616862552718583138782667551187685701419860868870810873507723608900068476471749538906703402808075614694943661770638659339058126143987587507676421431481738323317217585961612314523930788993268430078204419592301357548456331397203086842813391106625499155505677919107802321999210023300485014285578287985919673906285736551609229944270913282831245121989482300183938572129627596975542359173090686851331364408978436208827336757394480342674650210013821991417531283444829836450838328697769209383207614015840139400939176845130682501854929105515473104138015671843896600195558225199712979973168304076994867868109893023826102956016175820734746172612101791149931026640960427877891149288118890730787250472249535958869863533557432760902619859493097897556223327320973737394391648875568443282633976431568101898989969136521341691567939132974655714482785544727759301558413205176221326025912856287856361678179748331425862224558393733119509108847964215183359806100658788472152860506584365030068247745861686186854302062773830364950785478962918200536312823267593644201877733304765797316216815024103363895754717464969196513881039326076417818308831382543882226912078797081663746541131055245777294317887818182482347681543076425588114989759757122428114561725297097359886451935584837644569757023310307978015717948322102472975081452170973762069111290493016960060008873591346402012645374497406556890809170995671502041852000430452934658008842078221501200152382057902255885233100079588525326808181136233290938748170609029329427320399602873467728754253985764241169557341629502218742141373882582981134906371343581490025781152546822473967601288786631094002353774852066399497369671730121011704354819339821030010880876704273270788404824216286184682832756228621286970212587762405101915120482181469298213865264843823498538095209498896508689663951587267639737557551083464871493314399333810372104378265058442263683352578944978372716186978598379857338910218579778313611617757820064751939592285665696170187241719261856972271544103104088123580788665771037635770473208436554512924862481047892680008133647013486786195605200567327175602701177468527235435335943516372586808545056877884477762036928206793203101052708809122667568719826761210342189708123426805207299777425909380533159143500974446400545441733557519815626526632416477298110366712923805025629461372700264458352765051608325042425090122355608633015595720910740735786305082763217419298232559704003702696972804517287041145449168810125192079426895260179374486519985389940886704417840800273588742404894648680631860414198700449978616654791004430847278677666256078802318108086941860645153529878593056079503170929128549431581498736520981060579743260364428493523007780572534713807931615603965197171432049894704497775917369677312021183322322585580086897016141617051372520476773987610807789831749763806453370373275452162805844369095603515618010876227902377553652086573218025180539827868792910078353209356679018884117936228317643764313457305093639423856329940666681292901341946646046028458957982559984069760522374808661460365197458738045375194196588387590288713416382008068798653704307431243203849640179596664826437410245143249576909165007805156038470829218690100554742296064642715771927089259184328724148336152477956537879330919102665909417234746717952284457885930134564265794072168043781709102642273226279874158246492420403127588718145819720383992318587585581414598785436956793105416073838567493421201128267338992752437723509672236418252101146466190400346438556686342880405926209388265124792773645331893886535220601477929004234888995068883637611800652020267674722256991019542060082123121193147316970446346505011825547165079313678694158734330551788138269962683795225316602432100428329599966073357390731722965798856468425191831371585417822317514019368896792891909213105471629433991259276363960410678594568779106937672635459209877175062368459773615794965249602230374834345215250146402285062396629886151826006167343809167016035339399533312653663458403495366635646515606430432115467637200085710014416615393698382863283072051959639088225657794610653827489059508025372617673848059329095409840443479371843339185386101591143034263228511250228258487885045290899211770329138865377074227168112335673153170421774439284724236777660956903512273098249060154359208662561956758631366839441006576832522447198851714411680029616540573488545134705150238764298193048452353866329372295589959740988791623569783216471403363631276982878865985781197222341781906550613400394727000895065764890847228454743086443407827062718702366781704245748845399240985810592289988551729086362847585871056782187563272244277559654341246133782894367070332530290130785343190845796294608455329588017313079505945101498747540588105108342884937156701472443584995318195602826688839621136292823641479734139551549150614435880140549198120885972758722103539791339099498325479105901584579356248981016886430446505560257890643311919968322995769234613646790407024489078870522786389360321399174589070966237827642837728230181863647440299351326461425589198902365966384824330473714631530781873943971165832863635894750647439402379055306337735271164562156681375439412403197862906374615840959345177573649307808811403682216436681235336820662157633198956529998670508704622877514088617550249013821046757105629459909058606319922800609602367600456798027750944025279723144189058088436173079726328546206916688226575667871892195503074951502997841851001474930533003337889614543398813859420392760802321642762005061397313715047050328177285267679960840681072180073624379055956518833157704271395975705857848280718813162749349664149501347937781225626037866033885938211397512189282998854937030383242117776279694033342744710602838837529392143913912931271610822254303374223932663500915145091158232240759527788806589599627706406172104261037769943992539394317776387922290091235194553313445886070415903402978817769676607192230378513573677029268489618184052310898717608248907351975554003802379978306561394155341732058183658895445024535277236929749590066057928601981426478124934306771373089353093795062645536702960602319244041284640104734025034193258817351447261754272895997206933510437137025906079323252103899634345056888193998387528330117870736826666222153295360515966963333758581671614845730426848517357354755702032238062047354245557626479331473916160223428280206131792106551070198261046083842856684994946932708852950050763273638620732487126767107933824892236243709726214974625284933998101672387473200360241224226732440290983878942562433392530477488285491511445248209116617635266173636866083982560872785226766000189136557134056986477983220121946207386324177537554285817835875108457043180763794365175194663813682544815943331854683118590989974956572135222872943553087634415795350922794528075351863848147353018923253262392830677055048387081690493825823076278938095128993888565212611554310908961026274016823427583642511631999822937880760244594829378313074197813053329884845277673658379778811603564546520322391420005733445261256019877255274759019007108665020091071849724346681296058401961514242122128230874128877055497323669606571220889014540478727001370889914126329538326910197314940815168670159971648336122808888571842011254874739347463336936317222676694153052888613206666247025820603222534461617996331721932093180441809761914427383799509526453222802320746212817010592135656795628408255259034291426167877737691297892962656919461767164176849761720574525709768620608933068298375038343799239441418882898380666462163603195456832281441923729389419230269719744447321327674295743343678180777611763842108212926345620924143956842215475077266033263052139002311323552385523498955485000222851407467818548861591574425593429870315157246837316206163740724677994405966302596300582784307342477321338533102010920583401215456549917091092693505423154253016225071793741979745335675669741781358230647987297297131105120498976377912175150720693789928724063394557061251162314297126636783140432125001351073428210711759240606555367951436590290998358909923270469798685512011734494066361460023187853193546070658465988175901418062056233945692854225365736916398075913229786487196313291165280156643313590587532068138971683862319752144038564960031168689829683945240730513846169002995978040618266588446287142063566887918017120051160496237890378832709483696451419120258271576032307506220501565546170555685308278676291001197295014102536756584635706423473271760422348969471959744664125142000477085381187480821958012372738570301918113135435199652560746015023651192044503900013465253093557690297813386763108924743211423282053948204839452009859004622953774007231576340247867665323307454335616922708365909798678133160427580303970999245346500748008258525958726733372151731241958785891222573513887171520545185433641432749866969478689507255294107779849978992821245535360076376601169434365017810625472917661306391410436824669629457123657504546912282553665802331450085795566111177207894977625726471932784419658380131545919023512536805417984709478138839471037133718782177850154838609441792872016512060780828328699714481625829286296826929240653028263062958931138004304744919758274001109573723791015508505948899394942978812594609267024641012046523001802907479961315503244210567898562528200911613450671882817362331977888957173887980454655589236710158741369406915209555297703844905629138517725109121531023752016406925318327035353865085986214008378572689755019981968311177061062095668473556437814558659700416955655860805500308313884943327911204747605075751572845247007593295539542078364959979375959455526223517463520828551318178840264367178120502048347613796285870455607588158842075532691393814823663521009102581791284599323851639848807711737475042724043433648437045552433171629456660414908982685695736663331788214864194454520080398698762457848001138476411044861839904277279236923347847214589108140616126714551372410304516244991130702900132331882532442700425714015793138004067840728372096368307140191659631144706272366369749632339291372407754270652309865464036239945978975003406445784744301525536030961225022944470287587286220732699247983623887047716453731104485084085769569952586032006984367909463744949520677166583415962908255490863582850239778191572484443182253455938463776188371769047902167831435201834007016429796082575603267936552764551160852580881988535471360061032733861861461711313785777790909395047651808002032379387593341741764836297759837348836657849554990970822116632635339598794818985202933089145953408511240942335914554034238178828890858577822582026212110521710611018249212990136426539570396699573536906343125649481276154882740488076377489502674569114527567797094391028352053314747461573567878303787003322697055592880866885439017307617763801722334080169766078704881573472866467499815744576066100713168575530691573954849746834697887936174282096094635723693218050411155554009267796058343559476421902762884783744093333419035778240486243233334140641168273244177346928914605053219393707984132163631549404585807655498338990376454035647804160664222500157297259775708718104703391457042965466026446811232175959658505264136610663190453846652592575660263809739614116291679263907900711410718888363093150928986414376958014293284350808301664489381837710683325945958875910380527168316391380498444228879417414536960099668015877341726213321945164876571832530505299115614809966182310726130852831413473285903507289232649247061548623503321334799842359946997257675346529173451454681543836039935743610041406500580767755751466875806786117264956761700390900628503549578519679897761358805943324347539551942930454602419452136734360626370891924473837722622635155737505389648474746036017262263043064743663391319395030700670385287695684433182882713515657215159003325727306834411758260255268086870185982120250027376622539463069964670306712127507796687156133599624342286793346204666509642034056347396224458546065640549054829773322615296156890586440384015313244701678620665255012613181640302819975638592630720521988223862998356310814081784374164185075139399115301352777593350235512638274981775450880345242166554195319801949755395603305568258067064094462207124575051379320974967519640530973928170693486597394559956836143589471311307491455889885063213517747076533595254550352285658648071338739037997944143669153496295366461296530349325712912158017820672055136473413973155254971637082691556582745914946720074893888469613487537172039056474589409230844311849531018759698177130791035292468337327755354262976042709100185824829110052346730526241544345559619008703240727656734202736689018698008112954148989503012282103702234555883232836559199077163726373186053535770488996824431427415512156910885337779326174439340153642903781672437033206931198184463928710501722402018603149638945374312593711264851280079847602799777378152622797102084874523978896806055282142783150248993464025029934606095867929563139675155199712038329411757057623387583007146011060128302533463605431723699105902947706214650498596937812554422578127340471379602095069742831197384747806611993582171671181973859141339832676850418641107164578237401436172044333356446580460137416002562686910816542998526206308082657050485416238680391017413828736007470520656261606320318810196593784477932052931905475685217507708407677114187468585060810505650569151190989812855756382587682792415876485093263902611807844172175436281071259484106912720114781222179881888657383303503474146741165947159091559079324090871921861493954634117101714651108059796220313442792056202976314363452074208309416136457572508774773574062925853758145931351110530293699952524838018545372255018629446520450529453149232932936854446405248314166238920129987794962325567376171616970316072034398155289747507475862070672114844358147005409394729250280970495954972736232265185662606893865659590032858025506045149448964005705004097030911164115681355234915919477004307605522033540642822301654888247663213111798021888675179917760687834858938393880203062940013735732947145595869919378983850253150484524405845985514471145945733782200628240836396183634284982738204031598353312152849353688213792964426802715709174056917259783648228681579856306536100165422195030738898731927981287985340190234665282952646337273177768212293557355023145805543621090125204030987966161611019396596534053584334200381482454383421106892672034417262345662829884805059595855303063359521171696556366547554164688312593012430792655900642862266486151601991492457670239974088210868450756718248889850028435007853082196980352798535262324200329720507121418371809976310756613487807397804915100364003029523703580571466743301877350167718172680317587157187329850392642719500254898088793614163861096975076181009896158639513718707060293439948238850094493057961893412380776601595688138181176362470131251971646225307370271079900830496832568891433664017680148047078851282561831812603495272517145831227169097865050622206265031141464535506191970029583698449086282326443501382945818705304010211340882125579986889870550803635428585436914155306948320862042717672697060585161987423178280828677682432515355104988223849747320742143902182946322153044413420003550005479086082815628599634859159110111010861379925604740018846108298330908282389792603189172908137282378069126745059823282202452447622261186621938219908940015109690916452669944518169810339228501902890117648864110395486609287212272864982025339589099780096669420338333004168548144856749322308734043762666272932601463418354392477593751831314065522300647045442623699290368949055685566211965781882673859181894043554998425300668999540139172396271908821500976404666824994778253906887615932603673393282622177867095917613470666409663834551126226550265765025921661284833288921845676046441195742275951706137687371494186426883899969392869848347827648297583162862444449539882883484989660228028111163090942312006563281259556375175112343698639012748934191033514156705057994472140908067680139902068172545086732970635695143436935051410184263466299136700928143314285239605396527937279710665988358412844979625669476535443707818307889800640868092919621275315640155772322692123748231041071527750653400311689286430953309118443289645065090530433174469238431314460381232408819146359398512639455630808531180255603237503991280289493230842201406015652791894038207542464764931163801973498197620601469635005749051778335298472026797505925625933799579860949531941394278525048963680048852287657549994365497333300369158044571050297501011737824206334727142504831751119808126292949751117168700021605164626461709109066518827810409367710093237752029809411081364195602306335548694187100371971104024871501754421258518756633001616287644734078353794004280159807732044854529002754404633373676697057239705187207675835697436552194800668404058799133247461315010533685288843954725089320425240416529946146488916036449799430754131250010499844388555444678813129188328128540471534685634900669189601544396602920465556060107584778197852233240693999702490133600045790546272298994778172082203820993142879633871268723434660164151597713929510076110396616120939283999787362340485250242219600768470011471367642124219566982564208972714999685475822489797012245645512507280612596206513177069248888393713965179498444012878903193590938981923370574005722579570780149864612473608314122584929774778044204836738355105681729942041451632173809067223625936369657947487410456026041938963255045046919083613224761742885613940341438860399029425454971816118362206344432027364957536321727617895631131269652436132719834598128950410702385842448017688153872558931723380338020473011759431976688706322547993941263946604453677414535347846664857889343451430634243763422001790282253444580439587507832610564704539671977665023013646457351930147023874831926696007033960944674576154896776538131621025544733120088206747346054478135659215539513895568831864159918203814888483910342482307294392142865505725148868762171260164454295936120184915721416817361415617750066548806507023081184214000463249190073879626049029558064728836346188911764448066299636758446509910059665107023573552614015197812548671253053844989044938798111768249565000693614169059703911534712336898447412016359221351222075793810069997477286504991856718117174866587676199700483189894776891775946043274030816610616445594937690411928330424201159765488639712797105295618213682929310756668128924293913456477031135357413599690646616727354180133316453321587392237064268298538556115356050319237482852592993823519598347964049470295703127344324058891120349623370233901682366062983149616602481688213462963547400516591552958157384613980296042674201180820082217436258587565896796085707867028180791065057915206860248347460746472968904347593649582597626041139572665685470202964117015182503479503878675659576020105176391990042397764743910177271506916765776091572910072925327968229764372456335164646084028869287096502889650948986929420278011024841065968230952300021933335605270089133895491776656143699283810577678908023242269129338716944522878692815839416972686041417338044548400142900888459008591897691949785445286092886334555247979176314813367334474713206083099066267879958035745018979029319208096158258592569111244829126024505252737073554362352454691782914225855194721930367262211222358376879612933239997456247243922667674012535417293699714498697545730297892392956897808097570586187672582690202463910990370510610024193615334265359070139498426108477048411462662925595223687085737426851441028765413109209014600884779503805341931165742577829517182523223362646203634595005229828764953899268215047136100364646219802136792196608926836787199107942988269067282290170192667656837746573429217860895682052651061041729131701789655923347078129342806590478844706638752198005634734403317047805291472882230451638958086889300777638295224586887609891607415631262158237519389627447431306236967796638126995027371937751914787449236542909106701086941133250699834796166392852934923432169570831110575016042689958985712897778735887356404729637850873272495080979423107716000624814550197756943667996414629942890584431584960755002640355434974637500757043941023281620514910740484404574979045297384674981305160638475827159826338458273136705349735296460558249616946555722988034232056645248830366537060947120785340860565608375433178022610973855026786073261099048948165072062037407693865493015411672415458867022335933117659775997043361656090307566925105245023110700791673357555304326294044448621684860337412833438908514692012362153835991624324570072565323616148011270885583268513666646277920484765366334321974926809065543313806647693411722238404278443401588978663910085450481963528016412680697912528768060794459621739907656049968536301603874301742149659578431630291840358663270181508558571849584193174961637826993556157990807472629552222921149401008932951055185536522263531550177773998057146380673892042078278462361021820483582355340065073793340744464180315974642171049105945435288749922596009004280950418242911726571838366199500350525223921563323123566286390013378302622891193134396078280451175469760244701352360756750690425353322408181554717005394923890203078447052241984557952653341182080890407592735610444792903414394412977053148697910398602291849969742503693947910870810735293412640044383674427496975370799325808411372406184926829976451344922569103484149056102044690487740057768728989990271443416424238386964270394414558330783189753722822066153538126626454092032284032915956816261591356915715663259597384363406826223918991828147450404735523925965427932909377359684903449491381912274420422247814577312357686795535656147534390555830342223555235710817522850390062053619793328192612902006874682700802388509128778861124613978229259468831407027928056075047921338213012102722696800138095274301306366627658572163186128494955832589809041905256499165220816399956692502640905265630179844639914617705187987920050650572430648125899067064250365177458882017761139360371939417511232970619697022379204983570157320368288569616328487762447527269062837616913144673816501792458498247687774453143876982812777580276835022637264259346326793231516565851117818468894118701926916873196201719528847101657120648312923285872450367643522414444429592135435090851982690187283171662694332134135366729656293370544009761966646854128387220036274413389485930709425585758346473184653687081573728474004234408702298140463968374600180908634379597409600325934396200479448237241228943699078663493968868301747468036738376646391162702109667989203564851046101279495186782892254512840070560049904588007784886343740181019581638086259362385763623088549916238677841007952413046922195531788567161134868685370275957036993052585979083719086913436103019595705588910576600984570973659906262599121605683218205413368240384782271413945721349601923195123246430966937704642913507611001948005874376251051620205757587959333113191376562199261673663076633176778618383268667111158868653949910631706949917595356668939370516547629417243788861482705891761791713053613513198868510440513540787722216466968720678963862630408747948549955657698867800899796245336185798548158019141783450413422704036228170848368451528261797834748301327984117645336001466378420175424453481549823494094235119418842273717018790373616289336378541652737874485779026016839227246640256304301741462065638242249317504838168245444286167020434210893237043425238798287676371103872007098992662474629990879963090645701065284479288722518195617438746870331740630098705336819101903908919964054891346613163129025135129796672181713692898169016133335106612353722545544319224884174188830501409240207356656168902224244704789868567241055439569237032756398955419034446491309866494979680739972592423499417398132927687894813214370634505922010189829988306479560622924231280576376084532547688045864467475923672860993176929412960144964515791474041031083417649207826455562310382980924319086720907841806585150830588422543950309662312996209205052088968817200535643761953068087037473210530322404904173950930888777199081496971940716473976734468222321400965680894264096323855260892532893250984457962807100886641126645815989384828665142271850362615011825041890158801151613956593891641250628438478378705165036977771233059957901757827098380144499014379521156864819502406828434001463506403393206849833516979071246819184350355195236597956096593451763000733399028179634948527188316037033760799763146903564261338320415690600101499437025780452031646753430504951093657954835794509879154771104802739453601210119612283456751666974124688908280139896216585413306586468721770474305734994796234176798687250493267094750369053157062819315484911943851082375757263430948738018879833949565060605930164235182112230711411986236099996435610728881729688429351164903783123757574690552575707134419715750574152991683421899831198641928322441515530523507306743664805268534063716938777178059976244027564799181001066067377129972970392544295433946732210273639460191370730361127572303023440964942347540304903238620247170793063228188528747281225716108132664874756281747693835689498373491140117598897359177914351781449905575794461505072727393628432381676980598828118798032125992695160439985980150683729874189111307943904887031081116333542817999189082105246649427501590713728420693450015253625769424522612087964980144600300129581986749023798927202631077604739798044323977268175978379459044664512431774934407098809406192067700891800676606748833862707013089244097526845127857065353380012274852324346703413532292385322440418955044318101734702181269005091373719501896697553750374438631524910579904708120371113226658751083618757391679094671061401844619422012046462482751866141265661976071158476972817940278610585260463459828809068414700802141353446422492047621024739444954871437038157417694306906828009578039969081414433364791222160026541072421906663540680786248888319361203852337025945622375022730962596269502213816711165225766791582316458105123642747772916012360217971250672004573552758042475417756901146167689621081474202388654572424167058063902785589353392442987943377017886288338702517886354895575731563535714943006722613703670955712681797563357304922219019749290013470541931186284341568598330253354082147048240703357317645740968638852522254547080717637344807530957733603253760038815353701418340871345606401262273085135853988273500914686278694341478574375579146722929148229727332366051308997843842621755579032913706305827761040517443842824775881188124792361724671705883501706017145715992111961474867176688546265538613693621761558553888474979964645226774531995561602879575950807180254726842962769755160099123132444221212488919745040410512928212593887534520706332590916496845656855118201416226370103600041110029644352752012018373750439004040765401530243779439742419811753568372806983191697567035789807370525262447368706460384591271720141567601851457178436359368710432242895748808654675912592063667814557133172807183380969304456215936561668960299619809762648654828950256062417570459259836132262427360679387244846744305592687933156458834592158950425175634392150700788022714716513341754075793298928061212183128620400549765582126439236900696268633281543946807360597977282744739391024810806431017848997680211958162977356996246645445666168891942781292469318344450147305330226722428883358439170878223784984324739367901731042454428049863479100273494661268541120985427827964666683469076715838244524137178124932767232115844195491192013391271842325393307343384483346648678468777309642530871880356259607528469691427400943477207624828934099715127945971089121931068478391755557341703532830492963548561588255665744233625995072776170337814279432789967103002422435440550898098927692709361758516140687067170988070459718749003656722849923974442460941929988381193247974292057889070245063562298760182743945437287385482313571796556684692604602629204975786241985458680958147453331969349210411989565029609185259177214985779922560168249399037894435613181291761824241822478045366574231258304962367496681454575308695122544291897904356906211172176009133567288780372068850525617834360825360258331978073740283294552021366660355676667212106790112388780161180077534648386504471918136022057397924568076794498054299051130072526432648055010665239959965918049024498944138319066990587297480575876985795416564393992975261141771861551339248875723142295816569538918226033414557979210712297533802981334384304004429961308854699860532605137113531820675740640962908794154193033008467167465039869737961456687743351996825191674390789301487805364631822918116087983448594934495683766969479762309468548440855433122084371353528282153083530064625114449227161659598820822705280652807196400068718330102400832231698813909454343248961835924567861573885105345484273195563958395081920308378258601172724029077962750938716720193233084636101802470046018095142922919402534546113041076437697596800480439470469858015391825392931032916543321498514374967378792257463517426246615058464622863524474500192969117646229853878582872348756562641399120645221110187698092325581204863881895807356668333596709072619843477358465675709532767395142649734757828175668327067450109755315306524049332296076170435807007919808719644237493138451512600650011000540118223658568761627448126290592352893908373845620877581612717310451858158350545317855003312577932951876513386760480123507315083639089186700371529680164426111260272426946671897729334258506351060443136373700160816391475359655294360999259916643453273512941825436108925462712753498529820092626956388110647880356085682885201636489501292276738255546941885237642592770061224472899497645983848476204133281510336632793392977895092633105069687053186992645793423884981972523386882331017842347538812779719913154562065486419231813178398346255982482283662287148023511386536712584614217856770832617340854051964256424773602405370952344989448731463311648893652868180631576086198629173227631080465881757891105372644139126732612358659771249404531824939985759186383653509453131427219376244651410781526520241738682238899413493884406389925032445864607896560077654242433674482128498545370071011191311951465852194575311382951182333409033890729735559711259400919688442191928567919708046446881829219041279257906685420747855985220322145566133658175483170920335431238898183746380214347157461257425802376439215537728448039307877536507068841791916122389272910168614402910836571356483700095494910655287482491585469540899988770033270698580030703157358078259125494709293605814033733035587898132737838159285743903848716672336598350416752482685917280729084054960981414633970147302836464352033256922494731644861372674375019061607922770124552405782017011217687694661567964926409208485120445215479038924495001918636482137532561882227685075153833931695785789315088537668039054218483226039259300084754444837058456033374142550839857689495799821581196717800865498427685633360224199462785024856543878123315256345193542711512088701341029795497709160263320648587629610202880331519688302669149500762258106684782322326586739200339502302195895317292683809304279698182516685110426127087730098861771291486095146982236667605876541070420536464800145631746145172201800214776086483954423057419704963653279912256712544407665557949896433292857081983038084224846248854710300915545510958175429060499627669453608492052551106458261770888172484458802513583262197402874750943632774782290196905994945955995649275863801764957270885214280351372599885708821660866203892663160263127107899690851444902851193243219846438053822412789151244434248847993244095033579599031833227504315292768039955298354706606601551633175088043373694037397116509665821954276357524197336584492339173301344147907928027108261104249042015870011948197360396247448827843662733398405598684656207496670771513989397001114741395266359253391436956713840230776749956265005064351507845514934713199989231319315993013014051906409642405702140681310363792625405826867113629279055082336978947770524185663391197864131918633985528600970417051657751209592453369201397484117750634748056033550320733838894013346076843454574420928908979982598496102360216216817369238648630903096228893026461864430068343211419150331663826118844992704080289258116242214102568368890513762871890147911022684784478308537182863406419446110821757312191707348071623610183576676066051126826351030853926607047942264133035741310847959552740546077946798636577716633903710378646627091522885967563978230182287472685836723425407726368707651357818685868412943992457214625011051550203186733943162533682806725485895047811261733020832196642002062925872317933272919803865392492149769787442411762584768354568256856211308358308613233889205638415278682810946304408091930196393090357659268506440643354530690662171004496350606992197175888091303802253791491686995198871514185020227558052965446604801184657742121738778548301257062378075367646408215605734509939002626205648447597719105366154145244195357640314180851916089782714402220792794181745128903658552113021141598018159094406929162644422243942003625444956135893315522711714364405258186881955287675232607777461096042647415382978042737946335024025655235326909437358258485635114164900633201644564941241220136516173972048708280311322016309385692555445063477265706324186096229384152930092240035256537038296025321557274196082319113525097217947394143322661089359968195610837801369259138699125579304915106605427992326539798463480256951740370502694184149419882633522604536230525229120217887219924364082616038537544040780433962976933050139595012119684062681339333929411583940330890742363460408084298241235823834879983809719867561431538153315123517623513941102105951434353727525345578908815949463283135385355183611825424906938330120027953586837973771825297516165179177257718614962324601857555317417879419963329732645361817471091847264108125721238049779096891388891347274569907271891634865834650195117072048757133240753625381433784578243911916510685435740697924015053063965444630793727131245632957239538818125959270710282767928788506260674622993446206462186772914985314511561650424561116671791668255989326452055186992293212315892880477828387961207492332790699849114053250785375443223437088247216455206661570935446045898838277168242512955034956346960384809079949030024379850936935493641946069254995230488099994742566343642382914801050357196133697264811489754630745214276437216039007483833139569138772564885949465411550247991287871247642142306995191074195532580393847554766182820261694444052766376213109471497127157718996462432888807581339898559422423776994441747015691300729445193195622515491828328408310406780052267618640360617964632612813322190830007876127590232619822732040618614011342492652279735086605485536640671193708696033299752429205289132072035076825803675994321040766151748811984967117589770279709382032091274118632186633688737417789532595035161205572708672832271399246424902991144945199942321724834285393022823567930077425970965241691047481988615521894343807791619243126883851133560884936084998968399215775133360202259316300347097605380318217661757855945589293442166813375415265992485739399032319719263482560252266937271443612607102977569733850516771545857740317815551224252987107692016530555905242105088144520034074571752729347677043637774765485095003604382264825765795592554528766490592076197454275974777547020588757293519087901156308441678721288843702297425853634333690073002176964292868266750009664842559686619954549549124474358792620803847113205737784355730921115072115554827329280141894291091881742021564851430241541123472567279022768329493613630943113840237036698632658893354851684410365274514834579591574365843046138714758967644575533962750458840997607970115022015759101207411962862488039016065542784549120681363936132939155247225026629665340550824666370737197461560282798711268630971445462765183602758011834810456304526813069274564811293771230425181899610094238622266274047091117269168945825424997811015203497643919348465303551978044068053882146294950940915100514982898345396782882070426760319727177373223662667687707761406159574289086264608697910333928362625436556609290422738177471109770838872124461109531353138459894414088552614809305268590186216338224728148876831089733845432439169903143061109861563007581352289885365034376396726836619255772314135506062922845732476727483253528278952804456430258188610840490590689435565973761904808809289688771130845491689109138699548162475540353683304927965805259057293671301665943650768581239157679711138911096732583542501369857000913180611512538241350421811340403053429354381155889891942383970363336900099185450375879169996884198472824189491973235018769244428489759105460589175820351517027189190104543571205006712456794904560007993799948889931743398181162439741591429979506749893245463457964144495659210586966984705868971384488399014295381978824154324585896415707697479188015202356561748760350866378905289242137930164175489390613529803183546675361665230732439713750543179886763390253478903464525100085823030377002749057494182811122588346637089911121982160614931983469927990943411253379514115252229072264739142309061320545317059947399184451236151811329162763760172347957523928180758816043957775316677833063514833821880057823615603761882850801630017935005521555615387711238363901982008150255039992575512656444865192453501647763714635264927164552764452512108146867861142748371678897006139538345218772481387224621251864192553795403903956514096225215768063505378058213704108728052860034384773201628905076507143958690026455306369232311193094142040109965263023298797090788838609749178659739254864140981406799290793743555819756684377234462732896393333927663773281841742293801779910681173599982907639255807543265110703862389687007428387208813040861623748272591181273912962537687201014924723748052716665240947628802800156142900367804567255362879210076692033307662719174156112110008483275285840952216651327923289426376948033127372083226359743021132144254067830131281684540652773051809497027506624891345045479162132911504831599953318873676952741600096338071289641265824451349711173933650228237364417990619010813880032229781588680296961111065205972432130106179393900809466699629299202540674585410125122299658077162377405115288957704408034218323700524331461385769274895203153898623278368501979162926051228974115177133258739257908295231433768902611134121157843291562304688179836587888318192642802829120139918813161473251285877483596631216334258588865713507864748243250194361501064692413799323266979922642270411076695308389011337067771571357757954090234805089755350824059936482815485121609877522253368681066145305714643349604945620046746529416243533648278978777120687883849099355793431312377550879324324939090154061908221072403781609435640862555738951599002693581055329652356419537718887623899852362087255033293625217774717245852335219104836214191612226745561197051909897110955413632036499571610974687119564058604918015931793245695571909282175662454725143771751212378589277203480821236237311204925811935114577882403854136147803817608017441984018426596066731166917955053065625617429950400476526351848468272250966873300651519922098612640815635803699361521677080232425116433815618889262002066305866229169971807648216121946680016695387623386695286069806533486738464553810337924163906659381605417153397875338616348272032207006476438623112818072822427459056017388201287342997243701192712159586760737822117272888121560521833943703703101724431311936156057220875934487762402498839169910271214814531680373000649649308979510115713740048434712525400691930241345696844097112002532404880263611616184648545852645646402591456706949073232984196586172929738661199565587550492671784712742416874468926523052468858900537038429265523311895032557268747210535114169582981129449216662480068469391143391145833251260103608448999306699482951761462060102507025737140805347836090671801822895675385217955273871380815085444764467256277070038041823721851075918161431177465835200696024118235885256538712432076455778966404227810936412390703896156033675214146941853630463334530501710753903042948840015195645808319918854212832575567928020836031280111545026575199219073877016828770734835823493044868458392864268653383597170970326108796410425075748887714599293563102963314299955821287648497623819678902807827264110798587523315276592289101508627016231084741594540163486405539050497751139533400792266804838009278413155953378572307369939745714269672709078611933971554317400975876569426259411315512262880945055604512249084677969788445142186041664671875447673412844733688837997948591243455092775869675521480839379176739946998327642144191021560406331286936500529908786389764191608291255640200631128382427435430164984063554579814639372165629825789819693931868315177528626604938371781505311787993900443756925272642160122883128008775364157001032823620818373647751126125593075445372567357415347027815498188209255004845951819705487586505799471538336004667914020568284843978406231451608305862811531783864733511640938108363194009923193640636426153768651947496754443033535808541547854379569324305288062874480503958947067201767178937430970668799536764217853035029169019515822625156850358625939195985851873418071701040299961639812604456956527031047342020307143544061422254589282531213923082840105593881885685285439835989492824999612433673140599765968094209816535463793439937098524843031660278651966182063486342570208050416930120238313808510725405263555846204984240263359526758853063824347414573115562906810114251211059416100637815972922346307749516130154928840392779971353384864353532922010356401891673731342317015977062125250063868908015900093448298188290285230511801318423865733902955370237349294700434876633141852344378806694529266068385229210768757341741734852738217573098758967723744333890109011684123009751765375829843658086775036010527906180337786238485670446930354340935282668187361862632606680896659796505678975678162792075542077313470930442541246162422435253345144988150731118322729365234134068944014685642217209954057547434868608950003768967000316300634747139854404226598327228304451390457455096440275081613072202613801919147621258221295498449945319234933551331519800616620296098731964056680522096329979302937410911575394864295676470857475755011821058202119840845707108439631670245650124129016482936617959579696405500207964852567115606490529568952221616024377416625113267938807636147436078872320426437588691959557340218102842340925588506361935730536842629878457018588616999930052693436248976771902150127558272423404874963220488921082294828064134470391988287240955519533392005077525547742213199840767506394602201570806073092978009045034521728348340623150087144352339471543750321155195111072946912900810944129152017867729318344162639699622730948414580003186585274025893564041835887934913292782265997609999632104550967983100362709797688290417631647760129772372364478415381858508011872184358711400221501025508437636490101975492414847060299781517555696957689625174192244468043209716170504320717114118310829720146446167369745941004647015597046533175677554026708561533474993203540842374280510706394902707216549065548949652659632631236646871430481870391513229760473414114709496902271229035182826799460815313808804476176531125171335000557004293777164538190844858092895221708590754090502244313687215656201397774726428748830088023569143035869823642329895000241599928303821784060676388087607707341096152002133681872405442432992561098449682735308954237429006656520023682338038926550858944412246302125335329115409463604713294535300591886252992201812821458065476455945556962623951319969099140251824610318401737128676415207269577469653770043998111298730119691411803356841629937397507194676482782507618446383346671896535672685112217865352674107549845190905315163236985022785103457670085308062338565374723466956332200530310149542157183842389438934122759682172859443886417132179472760744923197701956608240534897006977675761231718400217788204111866667026206368620096988398329463107135917293801491444676738825095642677687630673706155631964905953641848529991142822471064217818516330560949888945092034194644315724174488759893076617063892860160821873089511788530194869537990699062975064536774465069025130540558388666310077554359227145692736838239228906346389064820952938441170598555532273561051226241027620291113015594998824079227691276816661424487288033543766188931494475319058381276317098818118760551733275337077914941998802833601914950797192522142305764366774264202180843254832452113802582851563430401379284124312936527629687933492370951361651150426510449372829368439584855729448658471789386874790022667783717178478481916770497599086552987307024171509328909118906007825491174697205252660547195994859280357843210147829161266702650401456106926941691560789256014753373224179271093272345160521498781078639969288259107214821272629234644719774945260066493603271175579946751932876610505082857176126693409995671700125055396672461945903592536265152155036492574247152054887674359071093141472908953713700408945654972068998566737817155377474276879860664967442690169300666282593468466607739555602273899088231503659583097289286221922900422257790329266534175384513368992333823644313937238885898404346009671296320331850128053598122691348760473518845569428682918423336927829151459636939692344083085457402988331870228444800343467569147974668252545653938238986700110342455131799711546717098635993158120180912755621642209464067710668339223580276569606329134064662635717015165931634057386129224739435872953620621371507640165349434455851043913818322491389206625375888443502438115174138593819725247205333241477519430591891546558834016834131669476155466420213719643286981758539307008071462161073005138325642053176794614659653822839843421266848672592829666715813345232232764799038997255043898897327358504891476569134132429339264001901674717557369084415222773181984099571243950542111003665880142027449280320538125787000351318089339816485871518875342745172961094027975870496703499839445983474749044955763591752525575848298704493292835222359297509899477452708312427648420604038464503680667019452202057273404966681340016514532500472696771609555843232400417980720134015194450245021180072618295663445090998967973416337763989460184461416974850614214082941441616529068351804738614787258749623776667977083379978721575817079775946030091072314367253915548503662776287982419945617970406807663158902070405592684549513812509823764334235196354374797757734220289237661261217369815032579451154417416536218694158926216325246463197042882368335962163452372973603886358985224666497004530881596095583759433116700540736053036703906886524413120512014088950472120591149177182966954243108197794949812029342535235559038008837816625013864385570850844130094776709589507693496911745389641563307653183151524931553473483913400487184701374442522009399591073325768481205039843576274056339691739319101193363544193626555583532629761026106084339944864106418762198117040858333278172513354078203271099712620825508546754234459888750738818303010320417726715167480761420841147768211046101087437155471450990474926049145098277984224097068903254277905778304627855419329054463117747496308805584776111822357603245731648358850396422213380538349858962194107554589587600265795427024929948290271208713621328684980936889766541437135119405844771851737264885660878111509520202502551679935450735702095185037150926307827400832317097639937254565535547186327105338797402635478123289004096694118617392320038907049048961326854108916006768839610761554824628015186991567618683427293241182615330380179437518385406159871738911053314901329432465271556680622349560564687403446336803383517301116534226653295783673214182583943803630602715683396703241023971275388170810741469994308706824056769686008090703365866051062513892503482379322640342942737249094360146685527514796241813244673171113085303575991386054199971448272871081875315316390072218590676482983867308772885666948701187134079054965478640210273090833485601185859195831213158733287781379747709340585598248384538188340086908877320400322953131395404829300450631620779739950160525597501391846868472581814427262938795833066160102230129306490557216342974499376516691072367721269420917949531099490031535329385467217847233918275533527146020909648636228338966786198586329578947663203740313790746306085297131446088712434104253209912336270858517257210478528541319433021483540692861897762143151593691154833739925265819202449366108529654529874325041911548892098163433525043893958860145329587054825684347561822761176905728200044929675569764543661543959280139227748985489545410936374043192526342599876422653575488254452520105856368693445501085636452392202584842513390153445591853552528761099518491015398384669656622126981159460834875675135093349327786693190722688163608048361389306111248825474424490032865354632436304547942118989818254955979393373723604319823655571443055360938261003884343861766134303405055561304061550763344452586216491397046941509615114960859285513957353496599228883631288220393025460604721904654720598212233025595958255879737170635516073951640288801109475301423036870303546378253454055315008359799470768715262111354214775646550686897899719753784236984712424256636805989821496166553774142411733479680665812379991345218686844790667771771846089114944000189664757927652912464233297826558705682921847746986320345651241216419232816346259358851932657956569043512511200107467539503078822111202073962058273519980710301776984236957715372185131238388554285404685852546689917856875740090765652591443715212603897639237182970588683423948808381624991124252280307063008825273138053575780699585204632259952641242649120231330739851299940099340373524014114126208779518455343903098382492843732007890007873918735163916717218022160778343809806636948746069690784124672364498049487498592664843377804064601777185784645780875437195969301596291707605503370347432003812222298876652510663295006441363873497001981037421303864281312906878947227443246008257627931312761951201816016463734722656002702461430032694059490792418675001241624496414369989612677156427081114575075988071657266642769829817708865291473139741624286868869656470529353062946680107373984539698106576613328222595135580321325143138831389717604365859983439872054994113222223095813114832943261339474271593876941404142856208086793117972280791526372296417322047954143558082944330143195832020014832198031656926513580585376368040385091983805368607952079041252843077362064694308696385798180178519999063587654173768216338131812033794996657041205485604240959577071972796129852372705840416734240486972577739651644746116243346751774925414873299769794116165531435173930795724879355569264188415001018219710881386670504817723041545789902016518795257203181835014349861364815455223893266911233887225687781223166213831049562227902165613759469939075453792175053695239135951678902701901951323611758712634683134014033750451067057180964339443223252851991617626714262721468257190577511144166726034625355326705169059469247203556458783463552545284916012119950062982615382486849573570848215136516362387364139395107749649646467200930214612781948974904487823688494115158115617067056630907615950548901140229702949367046189427615726096916517408463348005338549104124999621455389642040688999331197667394412320541923626930823317765606879086518011131557516301717228461923164459630527502430998046915790391142828991409167905147428268668165320809546511491674981155122794542735689292049042106864816079272879708230671118509006986244211609981678253631152112831489429787666015983978093038357992423541571038172623711625949220254693392746640055606732429168652485911290743571132924199226639109786539679567031687172786282673773909131285065169137797769238778438047293722352576984870615495850024377461365498502493713278260766139251687637512264094162356915628679251412014666810429529993513639516451364482393477624139348623572007459565047579716970027415733845913024702674131400739448602088651549334704761023921158489282215303241115116809790478177395836621223623089536607774662976215813697273907961446617453758517140648522517200106655596185164571063515987102282369188667899112441818267448437663028991601824603373141985991733381783264541469101480134892254236321017101701348254010033498186999644854993322638642339520632224601012206570926362075128145505148191546762900059468970564975812548360050013382290193809421675896950385575244629070068901269438403490411303502280794882185774938310707673727545391663216643809703194935787325180178953363532584304932067729364178030295915647559579473603304678092482182905188166294235580297468663998314249626144637866260059788259662102493721397689487555949937334818146298918156517013140429266879760098563874147770412052967799789947527353867713683816184063313060636730861265732636815659232528533275473210917602365774932759506327627512522035709364383852741541784400900964877520473256009639094083149798742805434935549014386198811613230910299808291516941248790632732100859945817407248707644090603980298273892320194761366244890734845505433377157883278858662677628555787316026352011510321722615101287105094148979498503772578967857976678556142385049315601193307421886905224257375766198797813304581521644720356897893981755397003515141443327926647524462212906135462067345833385316827015291946046235433106228377939233201351325168988522427752845769019053342856658861652194258965872788621542682124412046397445867388010567549666329853085500267174426222942573186978315790530576711187584335303409881804191549737050030936364839731245603526378650714944469406741479906163451475533734328413711678079882828330525800738643179550611168248176431387466382985245265659549638432366580783650276899397581735445043761120386192432218742285445874886301162509701375700402096525674010012214935832238606107810970457006906808779642116801407455974310899063048046593756645331741524624944391583737034970375599289432183884610090379394756624671231014861597915905721858390459163135420936305252170096459132836997970325056374240580964008341230042247980953534048102677408033643629423316084932237459792189647666639821427074958061438639063575257710011484235655471280005416386000850514150757202017663468757071886993444391480618882377091565347910331304314232786148956605322727716819949298929900161917309665949087496315835060305490295913251604443063299570537380932352898983681907587519750289420737061483537391051138467495126492743224374241307377927234473610390421621787269635933114686107338328115184413515160128191148656715994338783973567365442567651951652530252022007130688015089697383852931903874497985852230400419709257526607099894242592259826020560944132636870886143175246495085630345088098016263991263395640079801599059345720545556636395421674010237729514045877943236652010082094363082579217900646581935020170332238905409476973185200646875772365228097773185472955844050550237002651865426630642001890822025813837518415870764412700629459218074473886134043696634697973413007804557032581784313704432863072613639279031669997591032141320473445147490805576377215804040629677725918562295637965803802480556608812817345080460432227537790338746104504225857081278277888489657313033576144548276320552221096567286624517947577577105689235115386226208439664842408976192195255915814372084801732507627990641403059442690712111168665585133362374108316807257539297251312798033599689745328094705702346005073814939539377278915470740367290903016727938456638673694677258941055275279078768362703168201925214919540307479907042520344786601493684316989230964046166893356051826637366433900917802249391921073191681386217505611999987524792649798850120547979470744534235209059314603291966644380431226486219279027488597914823943808703149019523478436789584319514311416053815273688387796966174842520620956922351773875229357162749508838800353722665659968071504454507633319594743367641560960997833031753715200603400499325882765252657228822387589156318698088766832762309689716228393404331657885513074865028028369937377716302767818636522221118451078068074133100568444500211746663243104449933997244561310803527785131892763934253219271772406349495926040964638251279040335599743200935672232843347213385877923627821863428156467181107370520666954826137530374641185624089397403230224501446246926900390357266656661265485044072782684278000712164255581324768864754523247700627862202981958561260347984995186311559592987945620401461177411164429554340561094596699197199448481361333955346799551665268762284188408684710917985439685948890454340368883580620491786127591689995685606080831889608086339878793327382257680010419411788680036420089182220741337896372082214063416576526208734312928446723478621503488079015661813955891757908895024183478007408563675656794834491098590041306958233714851617484003144221843499684112429397938174646536840605715826447210344418036031098093894153575763113706749966973262156020071728429681064899493449466907686532829716856700238876272053495901704779878889061041429167916155666209043317369452772324150336146498671035638193941326942737011946447980489142955748099849560778049749701621465586684479881425523955041151804895100505553654225368022265607739066026403964456903009886727074378574455123349927824512732202626380962175619058027959776098446429419695393780775492692631544240097770775262641227413621287264513156164247906396211488938995278704712311431104281374563022989799765873026406942540614483902743053398911903685027995964171405465607147896963914498477286039556907519144343603115807623983895503662132786143085590376430144034727030428940400217367587846796588013382953927603541788409573893607877468438653248627598488365765576286553711101481588523170103725719462418504252097143387700878155618394317194843985887811746539411508348580664176262767587424667665887448389319224469241410674886965442247128610892299328857361808689615582370808848872485130988046523306895725467327010584395454134920548211680769490699454943762193488566721613860470490843809006900879445807737112515834484249203395442032057654866418616793360052236151184538414437148268619729056277623652218314964727840208058210255074535730627950388223278409594656714510962309355305084128274652669594084353070363752840101228026397598155927758526028009015156095920997049109582032418843150401411294246591267994511824521869451821461240030420492457625312519562591241372337396932537039496756262650805254258977483108375596066954319112522927391419617740229955905326403041452744060959043635095233528946911113400746948426907800237526441236797950765465029847625077431673258135190580567108750110087931146031765868684727799840009059819817642519245906090609509530632398835563507929245923598002376382552988916496416752127814044462448254791231339025919594507632325253149452345099188877567081428262155195808550740951954772122003631407173406492843868014479398017681495344377495941900946798961660526683011298304501192283891981586201880681471422684073941169476989492435781840274046913946505925899269953628850205348071731421806417795508080661973067052626653478359518415545418466426677883148186421782878690815610716154023734687069899403329853465883677428390857738837817266838198470772260017175558243269622739648743952152476797806252416554121449355175410767125053835929370924366347992875051830849840264977306191535833538773904129557397790100702973605735421951076736630481770670030290282422521069873202414426068979029178840276567536604105681787034728999037286627129458101827170831139882757511335659113106359922266175865998541441798561958267436056966700272001953746460782182123335595832510717038608582420619261907452729171876472535483982276630747384644097941506274136662808881935344216505007388836941101467497433122387139204577898603476147888627467157185948406317368977360091259072530546823123398802737719977267765950950311139335210458630082732452252761950624280050843094641985531584425984389274802418023533729451000938422290730849257993757509074471193341950565035926549637424487091792264921688411344360513627524271381134253886791143022816152305562826011446715260356467870921280351484091466569664986980623476054507528635514417227561775245280891862706399522217959255050267692624720412132839589504173717226310142954181674587415293668189860596099857377373765462642198433694286212119528376831297994552927452776105870858947350006377813066651761163037078811512142719002113824740757983161022122329509112595745888507029435865768700142575374961898175834468880696531804934099191098306900057915971857860189478181186764929373977928088349657714854160767331475257365009865044463098898991297595021702225537836157304032697253277649798522841960475888328752628741892309214396366908349443813943129085114980441408522744617554497238666293656190333343341442215405903043986356619531498346158593528985648036521287536208345324587469100715849084718963266188802238076314629443676016686359242885590424133855658189893602458622358255448161922980710772054809467002350778751504261907858130112948710370060476899407066495540941363509080287172939338962245764339929705354743161653259794103506034018137197775769616240771990412527646931830544312430070211081192423746263028358322471466438063488557038725552225883401007276966745938679544084235333978092177451163304960837354307282285448636902855249412156000033065241644067622876702245544476582090796029522849826035380562187682467534753015925092995733562562995377712431484030705666196988499111884948544835762120579877834767030080600222416548101759123170873885264596806841188711528929326975968482970455016565409557494636722919420894502372580021429622720330664253183165829243801246739898281810439921397994712017853999841280508251736916772259437726248037970575281886726839935737229515662674929680448134230778129908422099463216658444279484030683306150948790233978755630168972430534547156136426118225452844720383199494440780991704781967724641189712146421602599119828704733718568934562188445346216924072146334510487749697181235677635916744048993304108233367221045064854235118397842028441451871467012672259657219219235569708977751177314896989807402892479483030661120460925876186304917987229276905051423749370185787093282097447551155918679558844080424185598610088272908059902443075546549786653963055034973995801148158906599321380303881215804767202463680128432920565012563346414405950888154839463210091570395746951044592344120238637977157587961750143979907889779217660377731399907477719581341651653430097459999945889461772771953892279015147191030440815274324251037877610306207869512584915978069641340591311093097644647851929827374742500391497290136184342895454923818900406494725341613968682655821023636379930206686353905141652430015340665181661672200740686405730557906613335083876652759457339108317378113419996267924209718425372433082335856254418856289585817556782884237069566641174064773835054698360666273940231303692144203493143211782760842476912198913592655404492610143034794331850149980221824457901841151237259333363288586430315968401018873126131564950823271525960927035913387251247053241789720030150385385286019681865813410788493044409018405466145443121205481576196187894865955512606274380645147839043548181732053982156411787996439018074938906532774818726916559298864329104069186234846470069186877168657588719409978332473573480291067540099221916939745373719497629861919058738598787991525284223926409616072956000917004217767705496343547762845469796567529623151246613714638078137217241926735849432656157458173014313097894460497594214883161107670696297654944434822174495642945789012773104497359112874263662344152558584808929024464516877401427260532396223203866542450970786049586397296759856494683011277566808490304854150356834027809287484416565780069659771785212074020926367312645031714307597065437929949097809427761015284364406233045303979331886797220681875491582742246785132625645105466980880001696451447665182086597144145071677645302095977520415609903165354620041246318563959186019139632059493765218403523638915739753728976290763428067848625880490612683901809232549932687502888831028381298269635076546585234666802943352327100067502794689964729581355760419377252996950358741692253337919086221723464590301242752188166819215172185689644784888906144659684596511588006891155598006309394472927912110457598489392995785231764638302248161819025696963742458763515302767053179323151509537575321939166481285073677775218349141737894519048456210003156060617704012468978761165702153537488235033550751658251658533814598076885183616199985413779984314509099022740323878713990425209977447848076034456091030597099296109781688701082856899623908993035319612280090462154247152702849445230491245230645921127228713152511138674461450486749857258447914394307440631832258646764016387241088410012215176997998775822282679190829627585302377314158108197839441267138208215523619531841484875122736543201091688410754745287984415940934283538196034745867646674735745539093773457751639975653284236634598400030838550459848237150063514848119370778672278866568814823786375560532881575445826124313165600055106950749267263451860250430994773378140552986794851936846060841911217359534698250568553025067731009327514582669812840523128826148615006860928232101466868962376645298004574614394360728127725475493670413638685735006028561622920165239122032045780467954389705295344937841233401327563064570521348227221795098614191734789563113951887393297589339093124046530635481937456269878280133066254932942522199055941300809431039953841879025265729503869456835104722767089574090530074215142481172939014666435253774303604114661626725879538575420995548146206316593438469532448379134759061037232742508432879235803889784262140674750029771473226102776601975822200069867768135650278595400977802880371507844956910506739494094151614023694017709100365449948778738899051000637033811552545680761081278117285321537310823275644557520606136056073166170479487856412575116482761822585025937421360492695753433859333566309381437035119649773036508200042030201993949228756866902791082487366451647958389456277708288819837243306486589645989980924229836788854560558605386415185754651143465173767925072893493121273518309609018551334020414444561585533934519951384516316561758942250612798451872217158094810861397354996124163897632486062851335574174534791038769120581343553348675048644893964464180409747561513570204086310882721920134166905462846228829477469270745986713465349199077600770562379594557095818659988896431833490390713284082355232075236870148060358034340348726373099377197925209828421308058332453510316968372464283038910632665264502233623534373354708535179042950360268590809524215743210256795431978925095549383424931228854534983191892746951753663532410551285797673218700062518635319798794047230445134985327896153998775891174791501278005501038719542417248682963067181697672625296336864412364993750020319304534748446399629817138887108487044815016562432574873783951885695875737169281361696500777228936037886537327791530692239796931562675778575017760640198792869653168790394425132133870415907752772957812665734513207171413746335185470913731630598947929049678644155851353258243339967434514087937564885109430435575527543634318369404776620498704429978081657315103512246293094505287442567910170803526789531154659164254278999285062376667085327614714129325764617609960861962746624997969104986502663104370460330310366911722247303235739907427087930780258118967406575156594237982092836139164143247503035269870966969951299100459747203175811433422463227540513572856429184972122755995338682894484979116126299907009366756696866383850355789018989169064249882987591320463794808962344975393876093048479994472855109870711048199361980361347029704028043267043436448489253128618057277840946942033609417291276012621587958061625910352960661809128619380538824792926977019601984052614135331565203366906694296727009280227952466435741731420209011220666264045804802034334989359694337387267848108814434321778285642940395614878518210753745293807192428388949955547472729900882536820081549650330349385798369136607757707428407875317770576088197966688098759961415448558873084883972008519473000797763905217354717984525567323605631819136727987858687945424630671637662072443324789500563475775946001825523594541159676247422324557991734691268005137884753050128636804687781987611570522419198872953840729421091030119857665097147817573673075768439245026960071844381817772367686238503728082682979139693735808248327399641905574615475544506370253160930736139061547363615047839543772671700408163444431483114587799397983765109837625773925780639673216434484845958112334778907433892998828096300762139454565908433295175667334176215452871993793428343914686537531486427667994926068626741811198103273283745935389508625497760376321840094895199288423933526292793550769068817251816157737994700155597317936126715185619107841960086348186391166844115654220753329865756313168836643804731772599470629757901185335573666022040175881510818986390684859424910136990813408072755002389251686232379392067990107490546064359270772675312905220743946963252175957668930491254256294361641242091838935524585270218602487761234087041288199043507676009346201533684223759582615019011249437250962382792297320629305125774448158496837127729059429679327247780607859251991491663996263314449993401815289287336609025632151132495824613679097028972724806301174281771553067114879870354848564376218930313682026733022852215993007210621466721680380591265251295839286412531605813969561755344375729140640119369046672507011167275041979115574766763060394021241101506616506090163236321516980641163575212627393197130756835741881597827157610535162286939247733124430177661186485846646248757985596241640398936829290785941768380139183493906545131811530889150874585726904615580619777053062799129871332338710905170034717692247832712934412910508558537178075044020047711704439379425818711769751469051463852393938617948335559305034019589221033693537880496424679586542230995877721290274583624136724432147270934805475111097484868173074309280314584294000366319297459435582936064013328847657853858023773030795224554689942059925408658494005637521868072625918881025500720220283492511472571396495830244527429236668153003075812612689552992712856076201036343658841108389071167964608225811251531965534762212332132129011749862651632522110175805714226427768417478658257373010304523030527392905789970789391819184777254811296516710883542991579554963680519888408863405961460696818351697550981207225274237931425321076937451131100273283758747956900472726563023406375227720089510325746203916547325863704608419443809334109859909141490903156772573610732694099550427495648140917711852069960081340110372168355794231927056254659466192195579793600798915115129682265806525004576339796603281466619395619951240517051268789658788200463030161585408177731951749137607114658591603867051373192699997530090235229011834284472472638971996567497140950773548124099638393847574904257574226069523166860404887635366618007573845049415628219857890162105094571948059633044697755405417905245437867027853023151702260448786518529472357832338569317467785851171377835817042136727252753571406174379940064053566341516662996780347077716391165355458300509075431092116832118773202693387864636277487888172017645377613343495820461585833239887574083853097513432080251757437830668439881117453111847252316414334976959752092206359763839341383005666764414305424530597632055278406912185777954002383755439395384432962651327073916317857349542845936656908381872229763938002193691786051439480181604685839404675016904819592160605262178775357860141474177435244316689657077992026730227577764661881707482260253739311748713188329632834823272514339597685067686652094427458130218278698181855277332979516044231708427633796397677928261741496514910932068119378847075705120100354088238847836998392449706215679312012210214815126874240787210561970625410639642425004732496432937618148678825226512497335911756028479158504842773908601933180092920849711791000048926032044036127735605973744822562820497712127771088217523291436655720692306868497227385090948286060556794673094441665442114890223843877801212204493367798134267222335737144061237687636192843381381810458886241991701637267608181564837027413270157081690612117865728124360240508434665925947082413629590254806575211977274330244130693826957331543577738469094101181733292486383403325066248739053375050348254225537984844840511537565049893711149526050960980409250421674778313525092624837931704283395805840143735415376694282305086061032811236187166573141061251330581104407730226288904148927373303490711766307028937477155615977434340899188111378178403770256181522158190245077058802065535258780483037666479084461535159146342768576707209338905193327419387625678035970868641102244990688743042114717673162004790030415941419364062181996150335829907936094636157865308435834478222712499758410066924525022877036465882542934247401746770330764974602714595081410038693781355179332761196644396493444155230610504572858687497235885351923598128347716041202220611467744864220347924233324458553974727381450062670372035406785109295286935352583270023285949483191332160647307221899445664800841464639639294301088998817270162763614606911415396164145700035799951427845185576692035662835688113943283938666106979502399502192387363781288282196527096988254450555108043960570532896509077990509990739088792887684238163090380095589051786957523571523554526868766574168263131831546092477826877739161864859295069129128491209215441024195767432609820637588151928910286365140405847879491542299913064037166975749498580876508724127355223989164056958237520912950218878906865565813169192195843011729688030147664540705433198357478871539659403794454862526237502785438337631239907797026950078730490742415933067717816886673538724845619036997299085325587027757100054863888944510178443072873554873068953928509956199735075057402207857999716876703851887726931081666628821295758343724580084540355267159198142197257011654690119439043868083461457763936575636146590357417734527234545128018572034672959790455748629887609674310163196099480103305504440331290266765481643994072111609591372011209173611155536050618629157778697663490197486807195456165966478941510923240421081075726465022914413793889870070938119899338508786119856825666109865657591959712393146966686408229214767694482678002551123536104555541182340629209541831354110045553699730640067711618236176291731358037063222099799771287281546888545011989894677373399898245636127393195961910000378978711240652482431043295134273083701765880909334600266299018245855939872147912726654269679303726462423941848019246266655582066032471045484500527513842931212764626820974339514403423573629263578262670902166664272093102309090704386528935019622564758999637192816305395893508371333213932315621244666121617633450300525754950904769208063557161377018594747766093279860345853450714001179373744777853384063787066710580450424730423412934363511919667791383872233087419233665410380000536095703493194955811924074532249734087048560795660454616065310984672565676210525630920758293291734832568096729717235972283842160321784309837450815599597135250817915793218090101224593060887398803205885533357631149614806916150715771504014110190364775673314282159640967450724436442417021204465697222803400836584100801923999418680158322728138036284646922431617569238656044543510216218475704184637710384310980492731404976224873020947313752354910774191568360843111868230014613286347776423047664232807328414184769467709171421410100838314150302870112943064671033595292149691062986325958625066413123145379570947269989718770718618114767352237881893171594624870309398815814734475597111596138075895443288833446319665081674599091142245746154980407826192042890380376950328178392835078732648725559787833209685000170527339016580627686155225773297982368338372192726111667215128103395482911984352784016435645498811486848677017259006746934281727226051071413830644695402799615776721328573633828522865898998421354118827244832552273166530381454752226496475036660743308973940666219988163754861902717550098633259642079935088786659478490066727122446944493990533643323867062012695265701314681415112773266517266427215528241111891338923541273272898471231220015056124034107077029442947087066942383833558264843859631081650256783867185579830505355072055906929373465226515815706777582829710601465983538425717883385271325645521775159210290304901639340104542926362598941288664672023960777338005323012290517255412260581452438043378960269617359360946184357779999649921236185564218348484937682170284395783464352457907042763968195116928682008940591851739591962443535156803419635305705561885167469478750423837640212441291933298932537193133032865764907757234226769655040293740490451661526608570772789211347229725079055808814704839416573199406471732810983552053143521524603650518064073201334661555109446168973702037649735335859043348919593351094873558966848759462858801640957391413587692666201880162435452148313519907011743541323600684754736966662711509583794023562163489642884931444357254265347201119062710737243646656360364369446721420068278548523565392107462490164699778084601510010245802121834248891916571293867479622721161995506153817886405846175733419897803208971858494501156659312516021218024579761942773995223775025493062829887119537319177250300503224672209436042157611478708747813088795509483598646239171705664580634070663737114864516510075572483514493608186388480129595551742606373114484004298890847224044006815770719914564884422007330166564760596464026254090833617046841077537361738738781386450388624709750076349333069667744700460687676867210611581303602388618928405477064978481479233381098012196089430025708294345853151583849252610996729554686251415267319099678332766651021773559479357298909477580113892273003354061124716631132917044094151446190255990666689460566323288903878535953014993756923182095734432994737754085925633246030420565541145988481345322660097591661070080582055022182583900659127022911625509543131655797421642603079447030436685528807371456232612393235206531396408476838469880511171807209320905099027273756933322917955617202865782930572655154133847891670271031795867102645769046087055624371055422617552898367636352259210346822955761825683201143749646612531751395759999389302838207360839464327652462469524088137882325242156993026895715614424415603204772951384149961239112424739692614535881456459783803331806402329099997672046027717479758664920069005396081318117703851606782174099429671115630020513782478741341814834660652855893243286980580421720423529750478595394431791021073740232626474989872350184676000487953566858614798122480631869777177890582158074760105142543881511028190887655120106656461906085389741839080520711226745394519735561686446172057951112969064691288422882921511428441059713749736385174196440217757637086357447308893809057606388677832197936913860252252747578760776733105683529880089887957294494872226050906307299936741714186488737542628096212394898182200187181661845352175048761944646355039040362056135233705790639507196501477741960695919859477964610440164246529056536095628926673398331708793710069525933060058982216405820473554527066526449525528685731790041439205747238856819826976757656544783778533527981547954505724058604465206789878394502806430641982632469839432926652901059536556932918924833324224851243124420152908773631794799528574514046630110891298526047969487915518866166171250290932973220903176390081342373914131626872333601319872312525977136556817163961177339267788927545415671919852142725853471945239606230086752408854641288049860936887683816624905027354769646333990721742655899542801511447689351368474477678403042347688050432634040564643959320665586169924209306392575936622800440807904789978133343147660049569421247511878807404827934950507248155473773948015506310321689764235655569820470685001059865464420974414317704251052647762600073017877174094053642631574934748912658777472954808844036708054620663947763989506250177725584724537186133718054298016503908515921179188069854057260206655209882300024796634322314826336258122808518894185181996658778982028964549367906772959486689047463853418640365160823340743383483758092462561479078220290108553036421812007875815143702428476826295391297656269233510811537742556622503755770804935513534404048658067280969530363552289952241979794593098846572105669307457355239041726393785116038896183873863471013602887944178560708608021424746214395128125563021657732119503837332763590961699677767047684266871783023021192753337496721511959025066594884883356416725371195449149078535916530392789801731563456886383244627471192384035487115059104856883985924313783436651238087568995691923589309849072514674786194398622696830086992595160934567149466663602199777908598050487547967682444521857854303867497866321380678985743777257654994981209028882537260723778481931491984939762542360572240300058892743283400189113208389267413366364268296236732503818180219945376083507143832476747603426309285591455409471186010600907941489495304959328943285633250356568117756997646366131085595528636544115566363569475907444378990348214918508670328941756797443511476143780916581786600610197008124489015555836709195624237174731628830082498773544459030051129610514133947016124028500725865269811933690641197567357787606551319241548451410224308621196315257808998782087583716645371662477987556193476876490026956551669424382929330027489870785797074991536958624522594358583175482884656970927126021822804653959361031643684006077266909804764939387680219308235771518513158400331803726667492140960922127198864349806132260630263008628015549539314141977270396483453728453713650721515034533195257173919561864892809898894638372905988762465159455525103574947492156997438321505825913263621605770276462860227616641504636364822042556410344907550212875387017339942479675532810749638235760138508317908382684923140070832005562345901642756356117812273669845600220077632218064961274139941637612641146927984946077346450226161336332706604291047015743612850164183487577822147749153207301570467164560337223520704879742692297121530540613925291449723033875013789668541811175948935426837899866792059779011985393430595440717417641102770655017289533485602288199501009560150313259825962761193093776856147139335347115792752823146136601877287500083818030863717978122640363329928917625675276157908401728465356069842224861930021704495868476413819186776909113297081150665288099130472990812992199202043248380032010862906032720130287233245326983005080388621466594476619634805347963975771135107349349621792886772655610031640253630121102054505494275393432962574613296200476928185141789517742676755050565076807351021942961657892281007134079489758647649903994248829100887025402810363661494486175307333570651487836947879472559213622996009992102969477051020196164083742241650958354817886165740683585273779355626593336472943580062359910310012668282571083022256082113790630641627510077502912765453561681546409415704164304665130984272963030931304502742498282994156079500104742444983311565535389338438594693382434692351107809589573733526515453154284773880520452862691206225433432705201579253332447673320753524037291755456451814445380893082916266017903267474990941264634877745706423826722139792231820171792184289621408816671243403491431711338275663180960285950210147083751512853344046609278091590498939788466740314860735381460224411416611770975763701150994680031427230324514024181302478421204896654198481082072364448479519462887163893584774698677058619628171004999568171274278986398296911794300730241276774691374016181835174895293510969042687580593462583898812922669358081214510695528551325138205253374901539030084965739338838462464881714590688710938078558771601149358248042314545437041034593241127219464840972513940198558248210821587047037629728400289359671779876217654318691691765020175012493977114375171299675338636631716806781496024134086056348700919039857958318257045793189811739314187426701353602434072151998646739198593684439202698984078127047453939668586184453640064987214833521210621350050114997280227470979853738736910384813015636201365112002112604004702273878493463224121569557200921117091838019787498760630796407340379436940417435644734168769077933828109611634232475271602287360940005959932397649230568665237779916055229895301522295904066502925892570728099858293496738792087271636013424488867904109244168589958742224668982721730632280506403044235520137051413401769780779042098307831514403498289964374432231221022633682954799660025718911989170664291849570290539541397843706937973528605336666098880717802047273246977147816137630684926819537225929013246178024622885112972604682582029099441364447857343730063228973171549337998268045251576074602228742975965352647762840684014324431071821096354198286302425760256926956057116956999912509049041843312624713926276392951821108744127180230209654688030923751398105985895260967690202867998923985940488999573561246614729586792533927644794914195860324761577273760026895416449244463746172469441158369114617154160916246012521294460972858537908999491938018753861579873691085131592857434313935836251344178366379303270520931377395947334166178948585234412524356798407821965769457578885383096925712630853982582417057954972645905947303474039531669590685690746808583822687839245681434675561151967662779915556986055239031686740221589180665644773256884616660218289646181837039494649500029235810427582314275262148703709505304838373932004845822012985899621826185033044499473119168190817913997506275179954854111313731270095875793099693383382095070486324926256216561934585499648591625140891537904366024123109464272143663193586075607121036809644699505110312604090773560242901156717724715535574804265786779158947862679132811509398422144706996225083614161761669648758869674369430223552133185665611672772103363093392176892280319970373113701178488556007109721304196959583444503027977880945003544847155686838838371669193100150832168016080496609237986202681722163720527111851615647784470179393510710513655428707153756897567515030261410731544877574773090577745763837739321281217298730610394702632929534761560252880024890620731499932354881862758144877467088715241940901860527857379057138449728256934084182267012041124396182257880770873141190068135601588537176820122809842251760135653320302778075999221609806965847602743834869021698906215376983589117563585952112917900379782902058051306919287933596050157025866041002852491275947661451844978222492676986298213000174128860240688831169750906931774189783232125481132938865767182960490339849318094489890779465398658537386125407626420684733694571324866948711509430596458753375928766545867249698269187655186543529314345058470657696778032344082045552032215122192093133122264769820789237397738156632897553757310455920797465722332510346478271017190045810906247532954509556899706878569035265269087811437883832851654539846001902030525946237820067318010500004977017220510853658765119092875725304538503518972099388872646804909855877865529149754784040472897500618590086386742404322150478003306026513938271916234788512306520668891086219160403960255409849212535436625620827496601582880460311015335080279472175520097469339597147684023020900063932330491933713857989749246303591545591283923123604717125377701129353028158723529310039176978820387296028416788884642180901075058238845336308757456346847991066260259909947139040532973268408161582321754816371499294939732652792598268124778293861211871651273019347733125406573092113277550526284972342210302628483333872270190186802780987313883820151158026694484278816326704945830475238567714865488180015253911457415645272720833592119083559111484789110624985786908352148360871731466081393839299698026762622855720255367051620244128550114431787653425426458211012300654029200554834496908481424127443132335886239073392585199074682373828684765455331042450025499511753714053846897435446778005700484858148934445791311900675147365166915546394115100984437597905600843133279981913665292882971809491556362861503438444703940952515395688959208655654540950861152838795410408130191869667301702691996346830850388000729720429048360440249247737883664388417661599094384582149936358119188613333532783240510940257361453661136717646186495008652295505861235943651914803487932310444456760254285971764980980587061800038413167989776025666110185117521683398170596781441849652789670902827273734970034557195345600119459920722529435912721650768472751468718801414714256244927931295131929881515736325931613692783432800057932047225397440892826797016153908149714406961752917656676878596016842785697739915318139526547846732644789090403446495024681866684212099135273727882454032504022352885346393218730322056387334354920357593584870369900510150899661706771296806152251574983113438249808289764114390385397917710188593874935404075788055087804899447219080069363718434763149104086628971647242431955586123866465493681478570161085543725053993683108611582925025181058807025379014924483985745877595756419012457547163168053644673563447062818763276228313255242046323113698231212071626282962153748908837401629564634076020235499112852259804550177417395719296646127575547693536337955958152829384627086551657879591168875986485803877868472711166177078119437644797836005726488304214780174026051469358587516596030127649910834221746414689583156699591650352705941987622714162118387133101359487238959603314998563756451186787631756949106334830562301153487194422575812547624634931613062996428169450443485347230262710134700397332801010867139497952724772781073927283285528800520291755840289854014836861043247681771224427939443658183160549490761430705684809345383370645790406840654647704232268038973232374721370553703555675427557485360344290959228775290121287358410272075972236245630934547739793090929692037330227713740760073833423942840140846229154379400781142558829352864246874026846697959735333563805471609443186230585733202354929648418042129749567130672716201171907108750244749705695452823975179052441222484789467215848911739541573961763656485449725924665907971406869456236838270338370367770096396334733535245849164709027183689721665838653090506372048531690359845505233890060931868991774557503909739608999375742079861154431974732270033252049162186234708904679033320928375734931111552926690092114593443979856426032242488717034097816632710630490347239497606889866682919347221317022967251106535367429412791622638288480801450531323145616224389666058655195368353324212517469802864256646860809034125519806347859445607370169340971236738830891046306733655175673761349495340423239265258696260214213173488018274210232320172761426041801539494823222479069863814814193122683860943251331951676976428578319179026818147472656317270226078147310389024811918102753935913893680386336417827497464215832886792631178356065974592732280741779529873552319668124417738324626073548835295733528316456424918552645006862984127551997943801009077985920730232250529097850853963011557584753500255105222522908081865638811287984452791162067729085516848894433611658576100966179540756663367219183353491381728653013781815398117329922298268571689420068394403706992444750694320806068694903411920568479406274695158451870717153120678186457377299695434931303530821329095483870575430364121889176099208554371372486092270492835857913534797574761119357342255262930891102764190873898530856807002432877712892936087341252680793634551134867403404659405360983482712100919493635218901024812512304456866239513198721823556384676841085323192092083419764380849372430829262022653347110647095310946724600522968525909999681541991477118280554013637389875317484709464397765818977534198592258196085883943438940209463936711781257831629478688477391237879561854139547292956412364104453620458087877579700408299985393015880575701148482206055122991031186872353412881985878839976501690024718805562297765406637755169624801142690607831555279756425537181519435013504021616223547759728946174480914320750486270935918913176487879446957002888188583987308322861655062494301298065538792860332954783794804875189342499165004178359327064683730465997774845817773848048774796013134452052649271699503437576482779288477871727714781488503900036724943249891230534870301748959395402739768439065509363370620535769502384586031933887782896480094836894500935292542547957764823526212730000304913448770953411704448798690997874341486664513643470660640413616219807899415940262686453886421956107448919800101052360322874491461252221267816945930561875251885372371298219674615234060292719611498986637156848670282934522227198551531433725616517260575597758346201279498186800294783454352356185512178381680988665417590822078179007613042017502745412482307739395792862884269207283770677767552218838324937683980409463965821730038767126022974994360882554434276108291175510529190338431076147390956788682162228613387289408431224948863833027842372573526338510644669472844414234429739624132192554683020155768369820923304340874374032709190614943051412976614659080740672873355226226475668570801542888077576039481403816992486252462999922065758184775062933006496854718373729332607576800941210803923429509204252414165904559887057822307500339452901545062464198177126565009737814444698402389271434305201681602514010123601632904823549479224488628159458992334383423969501155729329627145595869413582797678282017133772846219912481974079166918364399800232011613404619842026034451123079682993820838160532040790631304784199921665615252143590379086431330979191579903546148389877210498813942800601000927481485322604500390506346877482987353623186248191788502318280912435690982697685799520801300072478183693075866265105167932962850420095928268606747201100790306773820276604850037685315724972619534732214958702653051856035835189649959282577124688540243864144254259114897991133271745259771578213266415950461314469224477910273012821989332301592606987813426782252397136065766683401387641503181056779702856234071282806197705268882495301025126177406514896496198376505249567903548318216331309167320207642605180901472684784654700199937024006811771813761163813009430185753407988062674413717426044580458152567486836922014046277988511608912760245510471480386525748108225204927304952735962462203172728595910926537557212565596461998033168094838592372115244569929307592480715049086621875806383196602867167259536343432746780766927204225497006485974009867482140958869191628134541507687647530006055291112183440059614633499407363617427734215879186803852074579815057642822745161216050181813662186708348877406727687649388027200353265262888796319928228552852366559364026875447555542339576943120593597367153843398243405618917696263109999204416633530621693793140787641206529906234481522029090283646742089127765807538299439202929519680826560779625910382578448746472863752648692301178150188690188929806252270207631185703906514671081800671823500324674739629298311888231938682323734699724726288199389729473019675500082409125969564043211674377432272769410575044152213807065593182295038899166722950552658256417597029502960943778152050300374612841055833258359513420542458441218019307351026227096811550657249233078996154898292518646911030102424414005220225426163484090111192962652835060339734378805702656274367524474631167612041527122042358718427905723188740837145226148277275604066962008698049978264799988835740968587818891701546722482633769544050649567346048217187985753674281344972091809260906085357886072343845775863059615000676522292496560728608140473130360385386974829301166906813193195817646885579284445500644958400695495034119972978568076022340144042931497839070284403760068015507049685604934229611238646568347588690654401685676565554799259460688081446306073906920432431773721377002831205382039280685536696339488585323727298131642303556786701646781891621543035314396403434751743586027786654646025600481880743993676746201949826993705576228093576179307325433564354264401008971086495237178029298685257544281452043893019379954624933563894427377126822966148320753827625465179590401262899033368741557479265974553649883732140689904379064942440187313058854567932642719289036364591976407996740872357664259283069584704953072810197369632201624148621793035058943884975438594575000909954011066154867905253385821609180331445603206339497877357869545000720431218179492107659784271286485105153791152555682266887974492882977867692584853506874178797005572148402935801544361521936343597713503628742754201383006154884683480051259052096741598101821152901070962439292893927952414099746746195170951146702771649146036813595929680298528270832455775140230120479706620586172966158004802117868825016434186048501896872019491411396053444843635944133901275439139724728962198930347317344361833111647666633068777445387476230043992301086520063723881932861623418784761034496529212661588389312885211520846756304045822769415714421321264308825216279326038332986841856394815850482305804875121354126291313908009383552144519969324938454910756214085591861254900671225962405971373723672118779510821381506289228401413898594873719023529103302204784325831961099584517669668637087312986111474103229821987390759708263814492698875263289694046428176039699573244737045646832797868449636171153324798189079856836381087333379537879449290631383286069553435030314521752845856847535295607339888868282837683938284078179004978938559395646353440347301798644976750793408388815299076615070580040352585522971896056211600004536883113483574821776255014536578106672481736089343570540745148238442082047582449333613114590935999372738280382384649064836762642593603825855128325441101248891663933431212506366890143433057495779850472279280292033610086280553707093734273062603425314415754523291078469448891663357614585247773290254485344216581863384781175329735061449879660803499050596276119992609068985825815970054769170916906517198792535559891951998528168276879585464259086917347863561303170536481043254950917652669407095360861733736505427168984103668664557951746694571005317967262460819983611620340975816381303113030330324979892254227287344116827735394081661340678440047017312445629833839236570289205487729501816823682963081345684554587956840504231458905674200605225437922650549918408122197305902859656784876945671784606442224561220947914777360247590008855061704870481842150763363229477551189576864304997888999613886626881861477759468101554982274723718621978332109211623218604092335983362344463593151780126506076981882419654588810367732397285445326459658880303026751903449465504761462163792962458115472694461579478854107704459275068274331070048692562977126015006956225646945667859158033551007592552493299731235870849034300273982341889371068315283508354616163706771651016566851639193429171344949208005848977069828002791074439163668989094050734026358146150994142246205614971017281048294659555779706018828807609797105891697174657580073321234649420709045539811313083080652326068973716356252911271267883019662482800493738756062518596032903852081952686205170235043621816081127662264865626292202152346364802947074232539084850726097326635131966138022254857890047943812523365912726596679896462565084332195641765158019117812578905619452282961703141081267001074455844124965383834576929798517550426990957892936637251983722704977448799511379280491292381801054501697711273500108159881065261464408259707039772682520585847016573204132618959081263018586259606485199497260930898364756723690530889099706389087561497590835657877192360499145361215760052348413987153508297827829419085959031632128634948998290318183412004665893204807031175535336079103734999620799952371084124225891104584290803527725450127215008354406295328964907595463503817759809188767687094749256316477489725944712622426231656352014099583826195171011152556908077361329140836407782379511722194982145847337842162384155929271408222025354037505474689206966337134485478222048717626721482504011359629802150524994707264819917653662359753151454533969589317582489663580935393087828094381656284514420361617990078891790120424843579845893471373702331549339138570376478552373850842847577242352499991002951145382555128408363417654610762904221042573759982743379779348245880317853369265281161233024773686846045647145681887787748442454400089318637358747897216634770619247525867133200135764529066801533098036978619738397146238166686435751720507760370911576906964779824447467994740178926495830760596484762677244927902586757203871148469797098214385940949135893171559140787834353902103783307142866844212889600088527163331827075989613751506643806136717985513490974001348536334419350815037437488215332683822808621963644345234602301397693732948192418117699595927922980806141030410727851547670351828504599216026503717315902329302809909617236270056193198772012530036890222630290770188032304094512025926657240626750030322661538237302155981610311202327723985720180678896050132339466727927116547785716025789334399649621720983461201987869458128343518882245553228328215371873419753258485592491612868787733783247924573241925355516161820090086550688564302507788707083015530886618979523564709317676797958719644906556500473609371035958130299947849763540255910991398958862268570056581102120444526584788937384725327139156448175204318097705513723239122675178709258611378026126950768498584833480056679102317415236202487184568361022007530811332644599319812092877662896156432316876216495575431892256307800847645130193012772276977127108621182073085925337497972020057563735510357647642881362173000415602562607362281064612735058024372958540045477822276410394515360958851857443595337214738565695192771886122396016891949567234657382970861146069587716487724479240478361192061711426259821746300794202714117861687330651875230457228881215590741066225726156977232579289504761177618266781480420306491453819392801708339046262904309506467989831211510067964992932062572013557815627621393716404337789764256630787434668486137933343742709590363436018702991247144801410708140415649252657519453177586561983541957603077117505603069583291961674059975516517981342752299489296891623207433532037297010480928202713763965464968144768030767413573201816061545179426212635963666928309128026410647833374988990628987827830197094619200098204683025458393987250551587671659600161369196006334013270991812436732757630389695127335089842950013751105063638118878206162321952767638589779860293910551195058733860005925527459346303331389970681628626065060755519722646080461426623315476029091055529037490431997025584877278567430354300934440792706801682011457974648818747982733699252026224070832651867299466679990812941751938732901248799426839435014669082743957714258400879773319726979633861329843625377508699248065673063754739205424090842787453324467436736892046592290916452950568917454657070439119399312925572795018037516706418633685224184466721639825865532028047886932957118886771690469650565473634942677286910087376453198641042263212623355808279790053454467756059995940583332554656048428287227331958877253566951302435067894586638869237704753158116316578940661990128761603664428112898939876246751491429001562932978304050272469515314118428793462247009641432788537839542483045768949983002605711202965657852734438547714043708595920584006926035961762690521950611883805920887735522761796400307954939108192569665111409352335717434263024348626099095417773374525929900131477800802461857626491972268516900809950690570291659399619818214970827334233976905875409010160891270012408117521530252851666462897726260966605661438270507545522784971634986512341578915695313482127069473582974986389620701244434835237164639387953101824767905097746725905938687794878787676329611612863044369679405750774105984484402722431602310655477844471135382272430079313508396293145467355067598450073862650563046748656883342993695062996630959690912261168929808799661887370191426470077084218026358256512485802471166274823606389094405296359285156880133721584052815413794199018713376942927268787058394491894764497325720611078855379478635276369092915946582751342668598055112817426040443267584771217766578167473890523186662048406548702038723009547446445946929092314120900874092941405237779978577280068703265804128597643318336557839086210503944072475839582691188322136427939743309557841722650055594391247269059752439459829202101581353061846359572454708543878564617008619496047478943977343557033655452658430643246588336089831017267838563040748670527618246327354017859690603998252625072872423188443670856600805952899699707304547691776355864415308491853629920729616218333195423612961572864236520617851504459371273441443081318889804610212910123664901045073613288852021368292081568161487550734653357888915974321186081989083532548991733930790838533148062976143955844335631456876922351769649423245614311611346718896202410800143386998383853827537940412433398649872303470583501572786457650453774576305855536252543101940450862654192512213637128336318477654102968044166031342626980325419798692743277167936091681421908998058216432835504796361478283985438806019808967552612123564085570111800081569677192219957036794838432872186343193080728692864882625858034645155929606273153861704600667686711630914043564494848144228884051965387599135076470841795795650135889801777180877497634575190863652013866531492305643241810642439085144534825024190227898909136601954768103751560416665447786750906589274050973162581286133303313722685116184285292778202579495196984193192255948715276988398988804552744986891446591068387674104742282634108973513855387282080644774655521137838762603559460973975463250328724475382131730653779785507354765873335710051816257219809548357639193503603047894683899025455654297548533350787092044435092585765161666632054663658080608915923204098676413526018439959721742931319353590110207514103357140556271256240492066213082986940409587864685253986515807894286249936309393009549704241137002823252919575413718550394266482751017764070802899398193641923406102010738478186602903861421876835752001257912529308800261372148514032420057103133968854101323175178010035440694525828812134589721827727509192096454526838573813102562638796935516916396418451308134701052102210184575677499436163407977400024098954339797313654784851479715064829292190365433408678775051800099033341558737799813462590658058934866039415106334692173621795626761447221186691717886484766643488192648246309274102296468757129255235415434628525836231701657025116382019878887273525429623775946897290549069575947192041972670494241665745095043711030413845322437503729524201358494545898004704795451729601083846703424875482421195300837688275489201392642416714813018840440305656058143081122794448640456189492995229485688113633686723375293834070818635584782817756315603661413002173742910390355801979937482453110824287319049735304273572444768154731071061735187201886762544765264125512743632814227946753075190899915084608626814425460546651335372072055486082593919920827967655388644803701528653606362305100237638298434279449741655596489463658448621556350643955472202430012188783339303502274593704900413353871267277248232300862847634508481450807718392135345813785183290912282356708786816070624709500523880085809489862701937348853045883725231882596063280908074171728923579401454408835561294742329592867974030165397032118832157128658858206798971499781070619984982976380261452538816608665563131467695842929754518883663525571107668279293218833902736413525517276718678054199970746687615989865641731928785190592580349304349584421366051156431379217184027921076048387761310376527647905944964305372344873832451784395082698439449687345105191277686524717475828066546499197005921489481856096178453752364742447154742856248675585357994479367802959744707779760203743516706916430783738114882649241064228350922159901988341146189695346977612092803138375929592674752246274619755838445736478040473989035179576629434683159512236506988088181278671603011652196504351832984119202965319913520738694807466147228353133307643733607362350339420672467552862532315579535626369838132290373423926913860613957384755413829169448449183171556161721430233039738021828499821590090257036544598841131849988998010758252646457397215046586634147010228492580423093095224420627741988129084797596456699425350725980591191397867628113651729009845818055184506909295595269355544269714925846058953288555478689168821298471682088624136932451083924642086096938649176796515097588988450115974982486355869607232274299751259633059318503553047294947287423491514750645647353884149457394633802049442070516689033162504265543847419772433188769455358392071488558874397236235923322194458280449815632129527266738342463936324596591822148637063849422900871167854357667999729689696686099668169206910077338128083733489168447857022985053193229311782746831359903328283503190239863245266898602089976052235889470819897300056546345672246013910745535092708304846515521159763059375087597068114316216100352278858803859833165010459726168239576881000342691004945448349249260754802692702509948156764376582224423778341527324996897175344424676123340117452895976629886416034968803365198361667686154786974487151909945056745855162651311106823690736339272535491230407271297434591037011172664736208564851477175804455384152916524316405087291523384597242428859344416777860183180380134862535776383570510117353723982297246478027725462045425974288470698009666643335664214728657566246139438592005294741209609474588186911179763701902922534077440251282455641297844648228670467360431066758496631013816253560587080644000315445472997347073538721721384279966745535906586594993540749604944463433944592831379553709683267317692021159561120847597825871282328847258912169947070472493304301427854979540362222841721124309727872679869792582084023839815570300421667479830065159042645090386351272120127939319447812416649398753116602405456853504719852329034123416844099291626805937122158787126475951507412007674050296728580493444921726259589968430244681442987058668560322529692891932221279821052768445959923269725844327812332032638317272772685755408811510917178102177977718303984451514563351943118140717971118446723406219645581885192226579486021243210203378628550827949265970759982974362577701502779332500164748917400707473982250367882686007293793080688809845529127273826778868161984029035431655473497568738106080391888410518605347645801300700803713485760275109577042477484421137450924066740939580207728409976984323265042255598080481940417011908898740002832881005896146774088217140612069138937276517950122837106674093871812673173151325753361755322803030923683005880012416272069074738429723951704377456149131814841966321814890416234363346261261320853525404878855555444540895802542226238894727907463665539161858681091509277513183852605227106235897575511521891825330640187661676465428491641591081862390309780303399462864358991845070623382199890116684531242579554275421651073353944706889196180179260816351641823644232353252015926795610093247224309484266001943610874076208698350383833084511284261694283622780996921364567985856681508550124869188366316852854701507771224188256261650274661979079820167450515773078355359420983625258395151005918996596199868120258034050418357176844496018566207457899244989104267620226541915133829627242117880453749769126737261219835272654865250994821318888890330642363964024112014683341170854618185740547848774494997240107897639843442380703204503970930801912489884198333302833897289458061667141688997032704628962425212474935353805144256400552770094528601481328296596544222105551404114726806184935075456465637465233885487405858489527445273669633701385606473420051633125265849447966872237128411453266998048958271501522828837186458517283686384539699989506507531943385982557901121360144252441887719128851284463564550983824976880245013742273744676289123219902983326183407196376990187517265979693004619916276778271710335338194129830347835827351437757636902487213280161379799854943463038547833245125139156755938160785311703786969367720863145053600141406031185557760859319432103797464226135503360416829640299318276421300080756211840433843978508229036555388886483423482981333220799134423501195701878337646880721695659534619117819166920205922380893545273380564259697292163240228161620808532523163398946970717237355355272844446991417792458338510736726465543061001765359270427519744950347218047720410608935639585612481911871407557022901529052989332437851713377092029845068021203960247286361572941059944090270703469990724345490733738957619726468298132332201609453511579603422394971772139953262827180820038185599002277787755190347288625436117224121022306962839299992153823541865265425101990131067632634860055070880489081645678816741267396132259124341590038328653525525219440209266860235191574240591861260232038397426786215047780515750752902912333854862553976463993732740638448158732206787472607895850597751137925757384845125780361140638254437364815998908138480983410670226736869787356089053407392968193176295871809785868086288789115180528713869247466656147066516817016547165780055207595603809208691935294676698807065265594110026877171998806070588148454384127000955257044881925736154774650353560952400298911977007560263448616850315466641627265741837452295662065440603771879202882076550612356389559861404796700031343195696748149482960065638185583854593921921057556992379242671322585160994679662854582852813592930537172704892507627784436234317898415387517990365684108811230585979406084299955006793274101305502458407181011367444553062685639255608446818434414910370732076383312041195715281131652534990575014357002790257495387985871859625621358857083384868860311030744214733444349164097313548655409663292380625829913990609304110173080381728109042705786119479634133950137248647742479129213210258768341228196475850472906461762370538477847682110933638847459596401455877830057839594318852352646354622884002077284539954862590308021942507773028506833156258325947385627438638582886770406779120351631235542596130788075429754955590007203376715112298187471523245108855014936718678264012033708697602837958864812388627069494595194373406363784230774032217357578944735737421220628833088518343948798387547712626634212376176605137461180343612927815842067571717362967945806307461973984183818549498224414890051214163154645477483192369280550314192834163737551992491611612758630720950883150091558622918714098421162323745607730167132363196345539316641084399621686455033406668531875884285897422548545514772488915253770290528651566690364982971817034069244817478394640307255827746736466181867736205795426348397291505361086356508785901880823789867501107522386666573374377107970365821656473520536611117333933880235235596874302146378922734787149728477066926158826102300547249944916945145587605452949237109917983587068634042809579384018340116270019972700242511493650454569099517854026359992194198779345090764924501803480327433518521614948009004144369988291866379525376178289444261924403843390194450973350491927541671327572827065872913356507674306485424899832925145472573108531552424570440867848517794389858694929307283009532556990244199861753162966199372643782422706479084575392187876296145563387221859906841343580433389578507724334525755880136190772017398767272637983846984484187379018544896630073302155183064154669844683665481228990430938056622139347016775169244773706579386208191389488371666132202505260473869171566061667412824071321156076097610541820024615016797137510557352458030366662350600622154929990519174177232051871597440855816611343867631273027215352730244520764454936730267767570395208612313072095993291892053733291329816168084409004477453481993894593213437732098156337287489687672315741569349391275074161030590797131008648058225464470802137807242748234228139200242569490754514131286076179817485801977603063897350564444526560915723969954810191579571333985857989767448601868570248950512679691249718028201849092483024359390647074552008628414685266592839985455919456370895120353992022805930181779128571971544115542875367083448647446716248824099515126056119937333533144489365674696474582180214927318056983266415846969593185038407661333086684569674461515162812088575665943878605613341253050564024339897941255820148070341314332964357059026178348270467833920775851626562498244918937536092965077975890720896084087633354779652257268881506626236263222644154781645008958860565107156892466195052772553260534339770278437134729345242651299312726465358041741798975712372819598486133959002624373655576343479886478995197304253687815301934621272883330258523288493993577373806206691052803217830129793647336495455894276054253011091147449855843676938554439319851887653610080841847380440264250959043840476030158831898278150508870365301457618210736173560153060162344862825556599386063078063648887224953508041669112209274263024491340666653019707257076207087880630731260147768870134800414482362493243735904928472411330089042603635993844855805544142426660328630021705723427857311361480836115689508071694719112207888341430120916091100152378320192951082665124191228945149936931449818926393332095755601494952397662498650483698295741239655729587690876417995414950181833250836878323254001616202445106534028610495495588379627576460928517576250733043991664229554864117694140420734246630902629796337819668566626616814796911455394289488468843076270188014322502974869522899572422155885768300521410871277356929548707104383390050351811165357201521400857373464143636206931797053753361967859704326169050050400931984205393266729829104047812356183509588466961768620724550531206684207566643538213344837639447181250967235697638415629948584914627860337945423647880576816434009869498516024770809174834308660647088660964961079390478331315517352570616611944463691274942081067908927082439481816893161172103953541640000304401795373695046659787777670196574866792915363561023281027787457335061905983555250968710311209509111808633104702462047198711823116832005292363999304069652688196848754857123927487625063852786485814673521219645790663615131799909108036694668667964796214938505513309497719205450558705991420611842351105466646772202225427315365852032609207707260743384336160264586121337402819666130478808272816851506707453850710679892202685401342025709447781502316199340198899153927019211938045547033040864420917005325478484463566617989503245034407672487777420250230547287472382535640019270921969391811990268277054681228236383261109992718744456851831294498114949304443965059700286150907350398121169438830670065347323350182597507835258429421685175559499948605537576506796120901222340967186478308109241000190222581603088456904312439844508648036269255968365201932756631372551350876834833912998125438994895113492103512507429400473592873236180785917991682314172548374798377017634525191915861335242985276159756063581886759232912153209209565944431134199980407060647159165518146939337572101514602792118494961006084324043493720314993234357474076527182616803990471293095496077108640039859819082524377794524168688805184930145030171141005583512771616285776345098903167674280894880081806393508416819498437857542436290880833127743177206932633963810680694432878418184467140449522738550342666717651372808389816896204267752886891689527714358549875378166936980400265753798634128249367073345121615769931829701345991106543641703579897628026717739218424223268472294906476188669440854124485536781333571480698834615708410972025754353445282299893773989522006725705812752989166926633897936213867109509851407812140792655252815059299754139823893769007060815950401483272919731318774313514513351830796710487070169686070732847852536964152197542729566325940944458242623932171405447398196550146895712030855976840560088357168120171578697305881571617711349864473547575459569510568625726137964750014045422815453829381751026443511153096409956837714416385320031789618124505564754151784872204154683705881845266289700633607229190295871396764154077975762482819506459093962753534401167110806182342471321930496434695353634502724956721401371010108136952871503432778581526116326500512294243989817938212525805126483078215124605342702351953252354146753284165492487910226955623306800072713827062457008571427239708413051311955795999729039835003065902926768427614442250367802979357535694417606059558958054094971873664465795149439030171575319634038652342758952527050535044569144877953437752221890516025225706595867199884482220207564970792866381468297881543226999101145084375239670983252562374461974391651872326022185632081056442461359508319647268000566055437282770615378965438278729875000031796701651074250607846283052424794472607313811638188902079421267638134456767410109273603591368134020426659425241880725159683496076558892180202635511059481827891700900134601173780847978309561875353963437146666550963297229133470485242176596609620603981175554680764700045594959130899009474152861550876991393865284890123701753868626374995079066577068189282592352771373155336400561792423746478721718368009988457653510555423407671438044931895182205109064093549304209226155745165006744265630356069739349886561249334232882065744849379930392290856757745587414356280236924953800212199665484855021244721130373141016909097208232190702469434467064588442970780552985295212142019288863105158299654580995503599091940464660792861666332915183862371743183631456402145459913802969761075745257363753239893421152003736126781898288591507659042159119654947641944337213816766286278233390135910813827832841894650974972228896664082646338836007232265554068323754340781814521985934912200356646325240437464203806907418612152129840159699665315288358837308146963223254260973469078886259199020279158401029386092492440119471804467301489173498318460073300893979888726435490699372268285772298072493655718926082628682319047475978393780774732424934384047261119528326509001108581583607520518010192176575767603914077487994033670265510917030301292233997027551645794263465835936613162864046763630291855260660679459870195495671693951470555021164256276944859833545068231817986314058195480736788049360165070103363374916202419071619666161476312965398333553768712902628933538782183405388251316493204396451076214907620636829364329009486467827812611888619295176435127194552706649697376583586698829507026497166010668996558929278776626027960220477155485335891727576804271872591276878638095722249352544947785785805095409584982578781092669239534939752087873428567766026157566232494220809200459741062590792182939761769595285839568070490590635886878151472884170068118597765867849681414767849569375273422191637667051725606419957725099513161701665898884886507941549667052946885560556345422721988821712067854283490308097337300261898652970160497139509847085080438131466292349319069790158396685747969825525114823184765960846172742254755914623397729351789570223832118853110533717072239423407943775998343110365474599083523635084629195193659362230613022415284165084907534981878945196097050623866718539477938346848029264076681457071697586763138496942351179767445782034182377807317233684660884611272600457715479195231038976305178522794619553281020698762546897769549718393701804511800299518540376547439217094558169701056899151349537102957624942488158650088225065063394236280197352680654979615636741733377702739918495577531768072325874936679642064011107459675438869723381322627711041111637800034466851148642680013969000833323480073986492355684105687515505016143745036523084832659036391157280259967672569783073249482290467587237419791208997500124639629841706699455354455017835693088642665049098231702172620325859525853893147820707903411370640666664164001517753162054687427072870533574968523537395840642592180540293494621937796301907356890354275379951302736041491519314788225622027681952242705428590777268606357548661728220082217013812858777973709025720019013812130075918530643388784774075971958336467389910868159743992627655799958399675039307102188508732208709027782209970232412677327196463882598052276312135325948544517580164849640185235171601041227898398803670344523649115667048458527600829490980631556157309813886381204097142981520986051735268181701104312382238532307216653627129631638275936191028947297541222775677211651012232322913239903859775240756632837640903986677404398156103795463700799050392664681031760828251306004586550407170458178380337421266163211006273627461705133754293776770604195932637072786729665451808782211616868964257455416839256900083857296197495025835433831453413411176438615932010067709927543194384914057364884546242972484390954094590521717326008464494545124873369722343197373495513087576455857181416323991053655667879840222088090845237028496686269228382279051427676548292155499033203429790349181496933705231627341851105346149976344966054828986547786925535757411165751056432851084636488078824027295158582598619183783892067123046684105853559415706333697671984436548897182738955054063008053632993804060826262467412482339327830620529397057086029233086257616405728014837782540592054502967197653999046647871830617445662474845379321050397312291702582633189802212357088597573717151506190652171062883261335260258616137536565666844905480915326994517269802946007309136037097479769777878375689653346731596338109478935139073558315059326321424631122938836156951111680507125783445564731194421540181706434844154298298168750946422603753125802593200930909803263003017808645363758970062046391794851217682145515887373923191056690133511868328255401192126225149703346815007067138594648083692803434136511206394179192650550564610210499355562189605567618785187339858754670734337487712367066397123512918334479960683022193179376769141309323000365307201194713993223966672288638761804530277328392502213689812511636895494460027065033658590662821879673547828658993917749089827577870765297602104057422789728704858576842137892473509304805248479918898821063160018547987849929637853829026888771054076182530226886407951845227117092099660841259494742762270521125037816651804586817160216248044894864747999681359324104896952585105611302754481957264740321172554517001626584074046254159449923549479950885207413543359588753600995527944623675321353894129181980130543457383943651697749974941780956863964255722242125886279221432294195569491450728809067415781788448564034955180074606182468516571929662348545302078216070818252761567437597867967864406640894840249241422306973065087954184026891732855109680733681277782488403319571427409115931679578561782092600565254917690960333360752122532981847126103581793668117580335776557458974461862228636733115815630277640966181575197260093622456435782046551126683379938746955326117174907826983686608738742053478440032620364816747086224293994794177641522236119478104547345552923224809386501610120739994780755711908768785583982045919541712445515421915188448695013251969830308925460069158022716704869781109823045937391579297167482403396973418401486103790270697233164884046100060678921915438172021583031350260217349600506090999038057738707135495088297903749479804179886643597361856079855427669185459819603095382580144100405070439350468266596048560723516200157545675742331222662872114374662846997376977903418598707760106924526993425019852710494823155555631831752284563371109396128812221492229097837463733564816759950316167092236179570660680708326747903775574796394045382406341626894413576160043628681824059050575525556110507094712724412369202645556624854880415263589063051696833095369307708814781517839557619707275756630644335958928451926107399313165257098061782705502718850617608219151674705965777784267260111434126781802095094944772903082304338219690494680528154602572923558978417161191084719740379145851163290365672052565228804575801262156692746632212929175933133420955865768323122072743410840668689967857879834090232880219718645381071625064827171096329686662388384360618483420867299742680935813278044856168437102795178223718893952600976984837589366169693058432449118016967398587623158731327066934024672168514083105321310160541350034174190125668914712458620754032363024308251281782696208967798252152726544812814689689846031318929444903362058907799387710435810641247705985450521636169546220271262517018004383847687384945901117322739928145954184458477982535004747374068747529990664107997420305030602169535443630554013302699770219095319209923511306683546852835081810466715083046935255211642087844554940197430678358169474010400303272643952245251874183148986823563810578199526476967808445240451057824903372530448790671346934316034270846227817593202191954076613317152708279679731579713698319199217171731767206548726833974841851563740692336486773324900493130840255071032258052897009782740433086951457491330612548348316536010839146962501114950183660067799278553545311373826391010916321431138673202373594691703333885239303203865407143101621376955228882630343567290608294152035605910688588934389545638991101097796658451098622289476684156538994127432342482172567273369806487102736779430727986551318700268468167505360792358115755387400580415847580518854205620888155628167299825502772309505432625736155600658884754454120945647632282304255401883511551897944677669419069007716647156426289283667053524719742756376027784829027836587387347207882585626841131793129127117121175793118513220387422511473903858016721658437203510015815129361971841990205203119991320616950247667416134237285438701835051087369686894917620811255247455741155720140285291740853174208096750327939055543561137634415320028136996028301341460772512734547716500316439664860905991815366689267767422792593722289574203848838404813833997629590960280887127143517135713117504965341148418519866422807420892460721762857006547067991692168993869746134810623561893506808574500500329822855105476505291828280455217902755512757039858529414771391825262080882098170173618992230091572678649409303558168378770096502562805657237792674000277530637203930174079660337740579264231393864623368714918841773408552203803212383001861918427788473751030683501698441510119858329363250132346184260067578905933974979823471325562362590494424952372751057671548678181205867261437570587958889282083550398979483531613888987970501276706043988452434592036048936500020500111661664078646171346688182608963205648705842605998792036993576381976997551522697546097676859231274812037414391081390695908711087171742854088027085714573386716633374053831019156359478167940630942171869819000114104738527633688732651222224848043253843438512330565111618968549417096895833730276357142856019887552975701066870415397531517786389679347809096779004527293407612723872118477642555527279399977026288540745205090267101572660284841313650774408806634132004506730308487484329960363807988026732472899159388918575056477107875389000233466527781807035278471899938831465472677317359236247794438446577089110855885674066973347096147107218845304941335506653808767345951108161578054996129897685223399598151461492032150292814282188662468088930842032841833531837822465529454530955432725565151504403562285275059181943263727539183691451426284101968000352335213852235598875294824519081310231173952550929700707410517769064627407121676219752984752230042206145874762741169012596452214769915861171562045986274599672971636675830998386739308399400050722736124944119293021761774606662220013128091937367443828827648064978763293355682807859323505018309355054177630775373861783566005540638894633878969142284222574132196790189471349560805337065432095209086819968388026113390671334709851326126507300594288639855814996229408788753065581093938534591240994212904226911878309439068400178060069052067787588757664510857865698350841497554269930412494537431298918895347382648559676102405072707083333287958350882227218286136120134631790154702474786641917838964637075196879870454610521042310281931596664742897785869857394494256953213130854247175088546202197842639769425513521901149644302664124993972559600997139253044097627064999736312627390899346875630732966544460262395877674272671095120401308510665340504353657663236214083606257415387477159228627136825640952051906101275964944193464046050427182207057655320386808540154704329371751414435715429659786723339422155871143686588684144085371337399858276548943641572617125446096380271444983814863210249584761365277584863426974021958993619805438164256727761530878595993991451695588875337515501674733466009180968274927643372847012068217055044017324996917688450223137273429319206109979237001556821081542637728609304171988616861243293333265541504091686556201080602907315162951076196078159072310529950228185811976901871704036612795342229846511374040790910414104128483621311209273474160078866363307873792800087196361303739562536244550440393559980526605628781312162168874341805786382050436202405910938950823460545274574673322596335666521375812872168741338029054847229155580308134234088122532658080187285426515588791755861339036716600337693224939824345065087929325058797473172989316917250904294692184531687504646103900750165951704083634622608477590735222684471462876656457159118116473401973469865169800714021073314682275797142818072474445144980317449951371619807537429231445631100981322835653697430542113718512627216757531128422565669119344245576838294754836297869378663327736973395272394049721448257222395593899707141332841122324716960518182305339311283355272902135891982214899406914700425491068429956366514866908816772355145809298404227383234916897700726745456498145757329297469420676570058081616658106744287787334138984036161295953322343609630957857262967438399066824093235569850611281409196892761855642805206879233740622803513246582478867034795943220778997989859349561844401889370167958232558948199611693801572847277576370798686289655395219600618397940215299665863513144027497825722381729840926746238360352396851292344478106077423473061441716185719679780367654737921039363527837356126804935661389658655649800382494746937411501534943198075778723986940626242463660455368484781319836792717269789176748551460957993150413229949057747795937118203032529610847984802634903411113882208994469865884943630232596617669314077604174366991415222293104883752295133978332619790628769976910050898516156735524354839827735660102446056900644945555142570808741979557253012828990605874297722229056704713481274812266471930721265127438776682078501096834961108004789038419204983874802713584812740157226157875932524169313353069812365037283527382295559605606377963123032830496406489600164585521726934978016963466375283117628956572866433116764302331957564501704637247427339478080645310295838653584101280523334102885203225574763773895856355164375823971499115583153339217837845991344493913707657544464589117938332743817159419308801768037030313935545794299738676688482649210076683598768097389029883557815658152117654730285177911449949423661669996944479998992020730038546882415474282070360894913479851776412597686161254885405143584691271240166201921796823049397914441343606790911795228595082144140345718851063416330971898699942157249549080436453881663520356716720875083763538850062027839004773623585128718966939261392351543175934563954085869650450207666817010921202877068973891864986354393221085606129442822087713427530052168144627968880215523317075985919872393287190782324144463305968351548830569935050150757976427603832443507618510894258908991288798612521581385148762581216617629850389321766529490382343628667066957828991707467105803170285091309334338434223224198583130028466320306922687220729276851929368410963080794658088018517791079698753852117924704296918528597779314737090344829624118397476278243437582502893226547811948087822487162893128512492471782912348384772933750470488355883205895567281353528233460023414509305300301892977968701556623453110626910095669404883033417451134091721496646669989776694175314438508589691030262072065989508981293221920703846215543971886970921399852126132077269781189809692839179721105254456900718092203607654716714883670498911592071320159209657414544035496344088829133112896237969443281163609605701333988956639814430342648564261872577451765507344593487428021534020261849753424929607337239460566265723649751438804295876864022113394408155702836054628372478597858914398610244059122758187321812150771665832850223316651414760285135516011095213498738741839321332979955171565096808783466345642781216482048766952818895470470858723776276519951675674292247954570553501413574251227961881613484612829452038561117046224718959141722381997016225261033235468837266214632236530992317899563020956493735425633391727592594481376869944738432259078073352880113960934261488093351130795673227834790851398472717243531325601003318211657735340930098314062620445025768735898792320426620520199316673564450989570521592329627595307542147294403857817678359212740032332987712751638584816345733073421089344777552168713571592113881270076496326553531771973265208812526832418460780255324328225067823121233160145016087730811548188024974869873333312333645356503783895245358631506837206334348526504172401612589387093051944149023708105445848577210325360045920788881426207514851642423483811035883758058945297367822906172552294014738035212494397130714473703377206734238147145985616939999456986836019751346500653510853770071238719010311528652475429108516553655894377782189700182527431531582819231486875070581838363897861686556692556129553806289624260281477888167940014048948309950166259382017701944132648737619764323780586331710636339782802728587872226931640912350898747980885416151685945150223382942365165514567793839290603401219116629660594821880796214476679011826084273436255032394925713431459904267037926376885000097449742430843291390670513201124398806834695304091401962886986061301019686438435403340316209896161566040883755665070915958897772403866506602909187680675855683122945880670671162221970232174872698393694699787583673395220897167757657215931904500445375989860011851874392257215688644258918075466325447381529543900340493974923073123803748382372416893244818395606046105969903945007636954215878794853657054909151580899255547941291822972642347241536550081637911058420697415988167057919627037976994753128423626097342193680386043653386938287895391872916315665463905794156730662053921922368149271377200584629822393934082512087775183222431029554508129815143447873047012231391884843634721005981057119201934036723428498042223285503119430820529579184630715658671557703000023852596628669290623079192119998194528958971020350942468196017789131872273097993454464977475745678888020507725040302534025203513030102998872919341463637256580247774021115460389696524680679521059002191094532054258706108225030198279686358506919588790804610072393774201348937671938101397981892572167420909127831746649135998048676825066533967726400783455312984844851755098887609892032892079043131204891033615728695366041077114005417029970336542896438938352091697810858377240701802026427500220278117246386403602370282390677416825988069452735582557038827405832303724849636323646459195646392016042643544261629028891588929479473148410643085254794311472367076352455639725629593530452269633958221493618530545578925205388719001812358086855634607282261325025267069944393305635643980643117997586215044985693408911777199665628471056432251694871764676853562257786537974750079230660317135658866346659722634360667158670430493300886827196242982386198596506905329310463240495484916078377440323987680283678773586252850941891458471872428902520543048109364396118214828171781032509632475205375571815832638511627749699863977831546375082656649282919256271988425322249328227680631082078766306893289848599416894183868685691873002577267648301245979502881692036897588869034984712691372861776263391813588547185581281809501604763086375095317595817366645304485219653774304096073936025166496906583431265273917632260137308664167605893775294801686907176564372263014615832398244842079996352653918588435110435627480084919544216657092476257065932523206576560640905029363747219594689812490198046326756700259114322396127113012945639955714297853835093252594720950783550537888710571972843343964290144365379798438007343234323991312904287917298270024060718683604963881067031075348000720556426515981130365195283942404294023967821834821266089853883081594172597590973219701610331466349161849609318670592114075671824817016642158928938621498798060380381434893254998816444740866503215349155486543934535116462410134090715975297875051767777152641058051540854985429795772156746850611789004654914753838731257957489671051655308336935313302543818492439840098681724336292780062658469797230925308713504305637188299156540921840596665240373514268106760545058297574153174262087480674780709026775193262320871150194579667022897823994869415390332702436728953117824949539901597977492698969612058335251652565782217321010299240411166265901668514434799565461273712554952153266706544378747699685602094365347137454631217113112808917352576250171559974071432456429012603917930789468675654933231184685881342408762848078434155131098245153733166478569120972687846668476738284041422484232925918099102550522440291878439339025120818704487863938494486383841593233034964929290729407688323783267602958143141798537594697880537952259818106803466090023226288320536073347596354222770003044730951601923465418441602177013285293713693114972817152417020189644406138784557315648964767391404994396951488423403622295809132426136469659072157547086300801999822452691348171147297749740634719691876118980423919199577503360421353778278460805424934185192674450326656039697900888746770987742714149068183913832347477214623430695793702598409745182691202093009316682241632393281180610598512608552788110939073396680175170875257339438046964678698326775469516674052460845642920786728756614917257191334083284805014077354026144051409392855996140617827773756917009795627315337579271231388514475449242475156654343026707917890170610699352911236807409321558213763005592092203624006650792005867005380290628864272817559652716974446031589702811909068444098200057526985030368363857726594030072939584988752728966874290316629761777265082166693489426991946691330106301211299027220108933884544947848190598674363702156614259310932519100777669520302441532854581059434447155074210172862175069197282753577422956260067020702353441396945774897772266788549885902930822909338222159257395391978381334910418802537552244206716493246679065410101137133891331790550217558130446179834957642999688718253149324258731704210376868632228616394278212423315554778027326228983991606327354255975463039929431256572801501926765449803971787184210838233471556318071835690395941308631326389058106618707371188541121018752176227973671969191837431397969931985394306817852007041365857889823511159245508196764727203632129982293423821622592782675825844615648167855604887122730672416598219778996523559238048518573022008783948370065733285150497182963436593554839282419492702249781052680391838293691627241115724143007006236377582091559188847014306008434471066512795495431199457368966145912774181058105974936374188567795621782810166958602071967580574643095362508939211126921728461988162893851345518716765661572741326494472964878925983062266408613873918642900482998297024981599222959152786775908000161437352790856402051796271558045722836343291156117329660665009382932507913877781960853628540612610024889139687358068119844652830549660907420902762090865022238444111913195893242244931729221350400331680898222024421079098989144593316850234219457784175487423166975437286915394766760585829833113160815732201807119183629569527343931098437238686066401029219290741427817646618422383598152439741269193656640688383827405563798047684772206712443166150117705733885352607064593047076746347374036320924578459784060673212654819774220695093628025759624705449576951347652125451428800652321515505453534592219917059628831470177315848890849089289054387139854685349660201142192595649744543372482258046040478183092919772551250864882009897715545115913779328844137769876570086052721542501807100508622839291253723964747407562286720610690466863327176300304447161147551819930218677411975515100257669391222063958681394935538379955232737839808136857113645217161068053062999043224184596780692357018335396653254021056600625218251146751887808216484774174282350956942196853675702439090965125731068856343172739195552489579839882489414717986601034731762597508471609744429697002542339270032062448342362440993142825239208398800409673115002082440838768217276379399155384977763503756125566247305137607426549387328583744944882772923029312851785188668554661176107500723728893161930738888817356093799445236076220458000996992946619319459041447305181135967700816496569660315648045311058635888724516071329098922284099302429486346236703500901809682333071517937672933101941459047912319829773599606848247029921668313250052654005877149063917673867150382141098442326492638874037511226580535527855273274796072619549559620833961084430568654540289168189622956990923111759073426766500647727524309727956786188367721708325372268187689375470442660524122199429045155643709560356744694597938200521977483619184923526046276527870393605557194879559958601811932328472478262440474362084509114704001986553199067077935433814853119158464714547067950207626019831737909454775690527603764384952095409038275920591262701833859420288227836931731284530557319292965857616044654939089165526783798456902968745204267827413739353544451549910932530788749337331281812344527921891629807149686182817318071137208348770000622747547075210703703884026967290145925534841189204295708884920219712264557952653829157347581077308621854632857280958010979145935960176395930853229330893501548932332004749064066321116262179119576836830637784944963913238929507975016735505438440033379262692278157197423001204304294623912869323634853263673380679344039301416703506838358081621480613097126197939922048159493730749588064689999281490300283030079950918605494651611536917360446793780207174667570887390615591152594804360184740336389143673827620140479284123352636630719307687507538168453842353986590673097059150129693108788716791508341399745174174814473443380397057664415085289769155034985415917425844552303168529320903213526497200460268805664411669821471848994203035206386912797353472632290012557492034219433384389050862381629202907727883757859675270596330939631313066945429250268218952338095472801502107107177383464606106963773745084947359510953945612865040603005995533861038967625091690484514048428749514363011426132180530539082167734975819616656344653768570081984522977499767371996595552344102580381495678771795087935909941094503544617524839986363509325370890839053861112527963028370668635368592676649462998807318437903656212703857263599436223797771164295643222442597515514838872380093406154173741396493181930457573864731279323861758504928250156518053810649606102286818611259135183485293663988723778500892044051487228181974702919749823797687422266341172023907810351991116664336292031876726140662698182206671696797240451188602247977031839101218103190138040023963842801988158430524013266987248971577810225276630343429374224487176233639983548922463466838693914071992526952055146946092536631664809731242573923089426763773356707368811020935011581490217357335965847969864681752460885948996711114303888429197325102125357140940678278306938093595998053354435662842207303794465660705555189314077669971423666408927971437711065349482177293683095253018145720160339412987690521568098709750041110453284945558711241597019733235316415474535119046068347887213120225412592123149921889677087497179876992067574564948727093338742728575228233152342953843571527085839927389305685003102647592563805241316021595364683866609530623252355636696622728415682252393126823245667980427154908174500765935351023550465238944008836601220290700899764522999073282168910610286363951335410833842657935523958472270224770436135658843449530648613401459336673252717976621916594312605260237542755636979404112573385149127932080428363824536341312256719095019049236999444989012077456891719816519493419373563540284542865639914991508976187803465885052423962127924335972551821819939849542570156399464076637358657962406722003102331342628575201152704802490854436887258453846116925136911482149848348021606421140018839254539093994642648897172727052026987027978364805109519865569102316079414558609090016449562484161937602363862350336282379671633792570274449712966090949277434165797498659081369872208320662343571594552648106281819558104005960361511616284171658088559291107269695071012434012406639114030589003464218324875702742934737940913649615744075058745121108094480699301212913323344714702913078018384292620211400181954040163046667717419672259439073638909210023293601176311080670381092837196833154658358301879452179207179042740500855857814124297865798682689941369322170749843552886292466108221070813758226356487277871456865831433525800277644346096378721483711501250647476073625550764869499368998776008417884419452145928554226542947180906885282066960615561364422539937524567471158360615069117109303261777778792192504813581916871561276402955598955775390542641716302988381196991013991784113768519153558649445415353635655774708528861609248284551707630336879612338906340164049385851104593218307518624672417890128923142990895534853535608931739820323869918134618507513077406266438365797232555004376296471478110831398883842924972124390239349060008762760520836943482527782247936003822553719607485168733538814770123325312172170309990019983866533417188049876151369083865811673269785162533402181948296006494251935000405987992534652123325068850382417421358697635469514110299166846403437391757161364004706464901861590624877875156674802083285122619807518398901360376477363448091181640486768922927650937142764570711170001197658049385662087966587257312893748909663650794537764261413234568950174836777947487133274534596795006200720667541283084741789989540131238733946466549320498680752231615298600622755155281257783139203290586566127268650893824084938575366231608003828906514261791712015318821028182573653363852171399299534575236797469250860164991744964970063306726390343585506838418120908884884280286178233108584338239524931343333040089477139391376739707018543106206342259489904892351881022300609610610982325188878161940007712008612847368188406929842872630613709897644154081002786354728895529375057960209525703931686931648964458713556441808619711368772192756149980515638061736963077238969074410118782099326323597021937355619336026019522705106800322036487882434262514141338763947847089087979435013730802242791390267877968061747062424855159228115173090584269748453576285011562385292119811888851041062172696107152760287506248342248104549236546065914951510455618062687635489053715656176817166394845437771650206766370567040504622582947862891330022465328980056708959382663547305334767359454731190315889636488239914517978334075297692820909436786820550223847441171502833222992395477155475267674173198112391318336305009941528406543412734015996739320148607455135434732130734144118457473660158669317185810583215708648815786604979979932725788628970855473800086156853784639920272160851157432422518292861558998861185143510074208060004997015031499361634012854461970449421816824354455518727873363312150771674955599654381244077826579891678088302772477251694994969316652741046037327439619248023823082461564468172089760712353058936148579211544295201576125575721010990611157610876287352705074686766469661653843177729148843385489659170913350553560791959647731947600766925960108461415876232756722462350382118036514635067339357030127737503551599613549157800726930132124705732849064950595225458235624062800700551312520944486126100956135816531922827626971186649884494822211272757225596372928690971968653957137573000022876173804776592837397210015958746597256850896890303883559187260774603741908931082796600846701559098851525955583470118508101220753853735061013753226830783116657950048929657567368470283685983401483260910082315346437214220267524780517138920486864961699404667836597012251275313361721108318247166616611334269909929092972601961481328712257910656066189771364825654910983021761084780584789949169890061921842107002857764918085202950330494754712282447032797658366004820839795630609685198628807812521377537566488456370845933885871869385021189133045024235581862459206939360490213299597786143064499091095542652797880088401318129937333632054669632199345734336429079330862342108031314810247396967452250870362077367958338015272912337506364266270580314467129041625750701390316225515686199915302409141786476005203756463338497242313799741226394148501061565143198059686244914600157224642293048598453059965407061602398643605499694899200954836195471868886378954049751379462636130461366638654280922233803180151927273936226456251134671829658577568482988064193100885126848016936473509335797177677876950925266464933012731043495912567441555900755016929821285039352977130703027319414491718771698832908619107253354934784960694476746204007257367406150814003608450557108932210767336144914160361067851690527565857432680273550258396632264740335941150723944458218630387089961831613724940271359810330984239051066787221929354619621019780206668927410296814765114867750131405096160164863079905845193484801805198011290026214268779159978531225166928517158513115813469274108406512112480452893526112195620789038130460626130582267363619930636278632820866527340851571566704976656776335226028061002198693927562536870943994461210862828034309214367369598356933491175265206595667163065081213446582813955901650816425504489865010001674299808362338815766086255540561950907502025825052761111719760960192988386934307434942277225355289313230628503904798082307888138065854224937970160379110816249548774099580869558141001993475688092348687890799158460210111856193889997643017582797073707403462548555512615483916345020724427310061998738217415555211319664637872482464744087151396053629373673556349159397022945348519825255776750661920037044921116534564029586361615018061154074263072137699329826469537629664203531349159177393865192624539627994086691430211737112414661426057162330510701244822058076773223041571711494327707519725129599088275642272934652292547027996849778634385576786024121373370447653250871048296744613225112482629274450724489927641637354920590748678040876531202108323836102928760175795857341785755760867682341294892734527139740657023753409969043364513333773221312713076147602778109539877937619965986638760666842094563241790245332517237670892787574924045597849049750447406796138737171157241892031648429306753682081079184577021323637891636859246598647460229035254024712798877240981758189955353695535999002894564808467291937280424031645468240910939258763825959353240305217552770193806009351159492655375640696731495012457509170329954497781777048813436574123638416821412893523286443126107750795381747731300444025493416002696046752719242472293740871017568965952387025417930594165117229195472234132815587478405733723223326132305462422311568291381658911184544721887462675238619292857706872133367075286137074689437506007518505350677292797523403136087078100109443938957791203952107546261945950638990293792352609442943593248358630714998413733405136449507945162170387339916473643573753937618479919942461598130073128078828514979337073576300886151722032470012971443490930901509744778518837240144597527418016980783017658710498756388634328144697739582191322083238603949767276115171739550528625706165332122716368846774514106001949310663284897350373617954564188766426993309172968274487928438383402628516021222814859896168582690627850869103856583302503075048884956014331558888455032513096931288260671538407585743194852466170934452187106830769415151107484273158198522361040641036625986888648056022671268329540042781301591765899481762444837748530864944125559826805436443551242696320798101495506753636584870179411401923423938209159833350746227299585424581582651219235413080272895221226907243347779510837114995368743558219591472535375978222675692252442258092911042976735218916815044127697349585137445764216891706329438187479570883945786040684666276705021798662592353718432126782738244318377174618525004066274775814144095453946986691979395950321399407512967153933757966859929912766680600084252281953668961753711005286412483186707178770737207520701357148856189295280069159382414405987724963110978090229342244834876877170705903900077773965695505577751447272766485254168011870049546288269543104966589568965167521762973231222109575070014121675759347225104380499524776317439404937850077508697312967860609026644806464994779990072448180523497845561530784134340989779636974215718248316032475988939654820202452001717748261786408542527453389211239307513250123829648242174486110233207153695420088726661272827849633348463561761604913177944391970769870596775899321844661634850500127434066968865686312593541122816358882746569739225913209019688203053399059648058981991507854676132653736530503669522991659194273783620073700588109420460391626670661697314105364376882307204735316018689548481168110993706168014423701522742520827221113367665945001663395869963433547254635885432180643743648125752936878314995798389458874282132936226848337293117444062443621220993822837040529329653354237700283441416562342108408268371316119062853747117078565741138620250730169096820622317908849554553867179495531298401076451756107795671816626014933787961995457065719670870838181527335166452451348315258523909891548492672534137875428399183878696763297681148192843055978762347686792521097573797482275572659610370266947702729606859695942908251375156130648381834323950497812093668198064740111932781709423919816534928838687201171061500143528000779156299079959634913211993045239135507928854234015708840999738096188819193549752758477298104959714380477385900069329177858756826178538920032397400466427070410808126218808075229108755412399077105107459731603455546722411604755832389969392862485741213940484749995923912908497802797722941032455994390024787334169676250808787746985400146510456389574755383126467429821991257912515676397042230144508038040614036690024744088968816583153141593305086697036105379413413490426401742899310795674435574854890286402549177409892850052166103395783699563812698903076210262759667493126264399560446056640963158231065448463934114718417704703277206510509192803766452144809132119612545579013197896540782005812342002911700239805487669726801850512162522610519680716678968837306822001118657533556763757541298401896507563405165983893642747912897670286106081572230206564168367757623324459167177420055156389802489605042439308480279559483212907031474876680632893120594323800985957505567102413121909873273708402329803850437782135628136751646249081998160031099545665850639971325841661506709764720543673930332507353025943444879354304144395080977556190390651336440445762538857179241158595252554749124116054972152761871319006382998344156343031600096083117312768485182355836948235365715537372376470210548373651858069420624146503109743707563148572684708213640584486896453568678679043315491282658567796327610350297478113673682914047915744308559043571336273014522434864779658523891202791227408725228868667442399990021339082544029875733774817476660042323830495167719669778407105083488478841960347998143074350986354355578593854616417545051769021328282296170328950497360505922606288850661779884110368478528306425954102650344046397593542878872632965423599197007683801093135437076555632623178925792530889437076541238838774816428604418427892909525636572186925053960631435827966589397261612551441285926131195901826114956395580361430326220340941549277617047108402777181357877652215543432300066797970957810749989207536739857451884316521953715377990613276840063007245910708402357228319378711439047876344916128497615437552610686578608274398736785752930335481945006002225673738335848692089368933381198984286095126852915216468475169155874755610801685556419643687716211705909617321969088479810878256857780424748714263047439321835948017429779193883729305837843020035114192018659838363142787370936220445069314461831269713873644736792338937557566457289264529070079496316262842728762250549970755863629111543479690968903662500594080348542675700973114091710372621086737445862183625393639777107129350291895440136959467253044981767415190486590807668809272234921007449413288724455713068202619774398806487469382926006346946065889198022664316794807135760841794744208678490353229869446472278399306306445180236686167022358209194020243421142052408817068785903086851822487261033246145876239806577828267522933111218833119257278238820343885873321076266362516223295777870793139019771504510609202982379567137308828834125406758310415682448335566139174029964851465304757739582248045818030678726547651508074041006566398673803263254267803268786478217015515178750310511543509191032142795998673707950889297404169491179680410131002149938663948476804100283448503516868195594432912183853507855769848779615665547319847540153404791531968926956201792065057500123454768192990694617334416260157903452700184872207061762232692040642579931358358027117191057079127294636945003271152863577984748733272264972508506495113666982439710398102555379584556585477315903857191997302452786039171379126153929418067815641626107678358877978534628968542864682678004229309479110261515987327188851437834389708389993828411459691556281214527055840250989547680771181990161451503057806599052959434953000221335937225107437951724672857815490665845656651774132768748160846485292034009485051647283372098106304869412349446658608329315838278798209308371701565884941991471691478180620732342949656937667105120784058982873166865958421150578581566599619311808151718810707651244468947019654022467126200347373207455671461101609254030724911053670024429337500261711468071190756525081923197161041123981097217841719743761503427831899802362527979090510158442178096314289735820783474394887276924920055865701764024456880926040764659117766409229288360697303213571725045791851331618574537702201891706173334260120197080701552997992500713400259720392328908186823691858616565306278180492950860545621229489941825191472497401549597258961664632248914555682252588772825019973736771161354346799403949319309010979748552388788712021867785569462659190646260974136729721374956010223010066426561416993854201991259553662188587851486739038754935055245742028364713801331574347039087463066059906378005452420868663142583264468073424309827391612844582269633392788229247245882648354644892027751007395773152749355686647065538747262631563862543255136463106362150519342063931522964606898232039623774067040643066312072528260950274624077422350567747344440285329944901089902921927548883483277642568302945037106754382343546380197723957619992418028248688741962601346242717306464404110002507673240261330562647100810413418574009580686730507404085478195813976772160924940485274579633703716573479574091942776393771200097980069736680581463320341627670560181944723945518965732367660000412759952402624732921965631156053004256348436833104394779796927307448920971210703019910756137128421206508094694446019980100093575818122728415976602151805407958242069419180942515712136896644508190653789592764432470460269701955217270708201290890043995946417736118968083106382583464424274518823719633113692918580963432514793747980855777625615428059725882406537666073739464335956635013975007183063237475823875486944469681904182466418700945186064815638911839496209606089836759422210682836974046288715868425009610012340882392792547109249138500448519400326324822198396701955392108624496801716003138300062660267920515624700343377718823280426422346735766298652615766866383017356397241421557149623236232196365317057568031287091271698386746482140873799480969549892114481363077958433310071519517717848180415836825640320783032919265039624625748238305935544086202655417537641153444475467076733179759554002973987830685902514862127538729894487677998316202121523082020590103108647985772122894883017908969399393397156245021202928546754323765071534864475649124600691929017507691216538020698191175818261331199952235568391000956772893605287030102484747859161190063413179341974992119235006689244855862425383483581379501106905851413780098312806631452249734419061663466282146534886643348050639973670776417790151392215790470272031939254375486512277382746009951389704905567738176836712670370495285569248132567824195085686778222837572844578020474658333169381786557800232271379820549820775840672174770718909940978800362692589778175601670567681177140769706242085326244249363509270350996213513570260735357575216929269982849100416585956670688170450656897457718950468696569886917652763358545839175680521701624273018100756443586631853043288483705451871324565345653427037642969966510806060673388599239715961524327344099877277377212147912595015538782971465728541908575778776726216066715782589668673323036338472713740169228376641448482093813301041960487910665294806542489219792019540588289875923860671125581725336140495879811832255891851596324087065534218768060745682559765047967579647439269253103632531968983285509746181559605226028070885409542834803615079427069394230086737584753819471608702401109311903786442737154576011134283723773781439332869911736178454863452264780010056034260323820106889912038645404507689268880789481531229196064446916981165839235319405733890088327175742509197868041676390105787726107699029527908406204305823136275428606024690029127334358496900642957609487658606222523374256972851233667088250923914989290331040100581553604626493750306862669370023213996712897973204055802606721906015173598429780555770656694654677719998627944394656570269628993515665594551784481816402710049999664095319595674885922391662317998004775835195872184625554290649576558115401880518122917333405623096398350738962776667965847280339645204763085810110770326270304142697732693429873533290399005124945562898339505563342233572070828497527030486348643821928359507857399289044878122670443948696490322698924323973573077965837436560737819074477301878950249106669660097305693193711423931657998429251006110052798441370783548707554660208799671401046399516375858967713483890883452066400650950725056622051109677164057519422530701593767602523165593602582777836256318887717465767081317379079030742941508430038240511869243102383130717728530938009236629540911369122462333861698353181932349824885288688234487853918273791560275595896308814730160649237696961781820272228643180067472541044814032359327620554795768102637836053890274061466195549683584028477859790722055385207207701022127777032264041549216196746736252811095812866543364723000881614797299129888216133976297620514072935217477274948928790862853297884094681554805499117585671290650162946884319052420959255688254628852423639139784291287324957901760755365826552148514119210294608498766461423596549582351703641536935791751657730186976281609538470970054362163288008593297825688994188599298225748883362570878676849861931355204446580377494622097115203857062453950169131125754453082735533059393786136538319680652593697207806382768424207535503308830028669780751566212601617755395785911078173386019206746841510623977340027661497473647191803777216007824707939664577495549976344724768255012648289051898054546978954632854208632072570603352801002430433245956288714423770991700788059397309910826243727509487974910268028616002882350038240618952542706271024273864869091826316814830359417176147258498370230025154843432761505240544165411842985913655397974406045484215514147851556570528843006326715889477606310940412795816436565798121761855660743491474693398223831618825015715590788199002024271314584899372547186850673585516191977180243049196860987893316353563512320368610397542434088908276932003893464260894143091818852553424812749900144842428017374237476918975368041103013278551225173306677970774526867205690422048186905263992719093193786695102442603464477429680799523187953426444017536997150304905372187490880262776247603599628513931320668617090395098815424511621608369513554772087921116647748084716574987150852877655694662979038291684553566871964899628191980012916218240384700829182799947777972657330493099417644080727351058706102272974877316707337729002651988640366271274820521620941645259678547449861177467715276731721049047322811902560095306096566265965914673987135409654626313039917422330868789358527818407287241673289712163026171253517956409423252095883612613386118910594912574716230533534438788553305701652139155923899660772656604845440397715615961842117778478766621747759331000808967104930305961211128520689646007910499894318061962519754583324864857612608039266989907889604406043254426041848530400922108645067236713281257744106779574179772187523087461196811341794629521164378516331265037649968363408721849182784313828586467213083573672485131315124519680902033773239021484847376887180158102319418144128512415076128796392960061824770693738675819022551588077866784565405292677371646245171613280362803676956065082277004506833680085058404905644430954339825064845102169084289060461183220751986149494374836498114947419923651398027013045853265530480118436796300676268189396917584615832980923105609951365075769044381081739885785991792650823439788893636353653415393342788273619007068330673335424447243294057916687818278394139994782732483913747476272523098079013773645381418973253563260020997679060315318877473663697559093956563861304780778352558719842721730292058970531381398797975112436983721879216657667950275824169720066020377338343370551543460784526051809130013300873172512873278731037446500568714804745440801365557102583375279957826149122522216181352142311265054865025020542297372446761134851045654487274781015413355901124572134450776647643893670438302467086523722694439253228753848929737202410872163387040419473886999042514698814030280040131992556836928733814140430515133387006192193930695754876130391245537487288081848617300542045652260509769757062098676280059426931189115189155680210379548720616171109552313796074741492345951241416726893223618893720366748249993027647282185445376893560914848635509286559138830710195968998130683121547487005459741016939406650462472545547988554658737173865080501434253367961241474853513270392617627144638776917990692383177616549550803137659929492419765326617542157098606224280967275655479535739250763439163097340586121901190862175054699461086517444618720640325209310217942972370694775565177445914092004496685693673917442485815945435050921241362154464443999817856178952933967804965418057567011383488976144404215823677932970631379165621927304284752864503647911939057509897788344719782500561081051465605693064797286193490684772478536741126704775374005321108085886140591117820943842277973638929426393358382395524501718092558673869667714855731509215791313159257412075544937196488076712726206387607740616411715639292707455851297038574598212612433397457225296819373735110068186353859137617762373534571009952807624261232998995340440369496537420989394754465413824312691080623388648602193607654188983053493795137966504098712965587634226973113220068916584909156966518566144222839989331449285059004171615160609892266531858444305640257585203995801227372463536094689593951246726170544423406096937093035789792166875861317951841207329928933607724972925748785796679664941617067648036328506067048231590703884836947004036829219315881662592912709434351682818723109940572528532445145322454996187106928917390813639995721162881715309370489449789996758068281427280169632477117136150552647316263534765616998945197763701466377060883756907104112357217003708701739491786762722496356810785670255008529971228645977444337895086175647051844750579069593268115507176394980910459933504759033234173472435823712350284930217050902241120227049914673018658036127206989596745215339727630505496725181861762960306499432475577618922105924073299412781990231859425875634598485969431722190041203469928059929599140964466546116312853742761389232566448584249003676545044873957703101604628374316515638831230236185752140270322692773539068618472699354188291921753773897574903009427447568108125000629898532886601361868882834584981368629053210278856772267564674659728112415601251859663413723127890887938505312149933500442562843305899136352073323969927136187826499109993070054459919914109442511696534129063219162660137517551477530198104519708788293051004213816447507964057467755472792280170854463150346275931380224899904241818869554020162600450108563133020318730861170979116524279578188756448858873718193139993124844273183655079038771425826475049920522680572009555758523178188288456693006897256628568866015607356371548338356575973719400698589295922988528976129044726172509397323909053906291101267647855290283434375361120018955234688187236767108895624148199799580838249728509471268229033647897982168036620773609912884757403449237254022356109295748880026310991774251191708118567193192133886761843380059301823179305945537575715767305132656008622849727250643407496771175559285585616347155400762877425848077176361608503993729457030502200766574666974127178001914823307465870520297090176976103198585835182811429722176910207839312869983974385130215752402684675005435064517994108389361096499912261888097636457154113412908410001245524459079671211401120110291096817338535128348381552148986330934982699778895332451296532996199710266177963385226619473037856366182895144301186261112017480323205199340549025331177760005570896379058867353179180112689812651826727819386165689539695581161812540410484066490448842295799064225757096988171010560325322251289311558233421292034768284332371861712467146581835379779555948496100186245523245701139993330596616365819050621009892816353800544204887840933680472035346636146072454570524433380071766897214273867316671807906473366669276527810909385837946127384545276131082528681244600190517595444328575024043856824156523058933862316399783412556340886450951490041429508532992984706027782666613762698868266763726938593356376329207696625136113547477240645802238372987440442840723256607931052964749052499359083498088629461189154735813120443395185978392040099349251812629670696446921188391425044391680672302556526954288508165766301058581409742720422260660248061531369177949667338259989799367447971769207349676658102168822919855832957045825873662409179422273511851382281569170073912174931552414903080965657577144124565428073507567366129783233444623121650929394450397006331547468330755269247255684751334452064508814201283729581340339503106646179562145275086014759894940473869528537713449846874860629987212010679636848965337640666256695174541247940170426287745145565002205945060854776705572274085544257211263184340511973637167128144621630992195057409087831230213931734396862938417456523396716928680326332850181401803573466499577362097489275653602666713436808999017192246898804176617501297514313963192687184810895539099229655509523179505743849234484719006741442084157417993164029913273656551647552242083949797317136893051110703973239063554011758849698793396900665534986675396039099393076877695709408503658046020359115050485127896887221077849789529822242098468167164311882394382652547630210227524943656018120672489390123393692065836810750926409867421070517684037055299661824078616058165684239650266124137930277535500118419792317255307149896898324274093759558998952097004187047704612334653801967672271147578913282482265349411586646327331614256423963624736486698449501241766222059280739827405533282643429801670532490752712300200500027822191955579662196831419895987304347772711806292873032673918656541495975459978716056794939196532333191563086524350498293125907784491106296102018458496363123401859922899934978810234003911814027084118126137458732834504162064583322334015005015988139172464257051453504445686423960220950941272901758262860367531158381178237821102676374195282133289370817368820182567890933081375299409388825769563383326040040493213344994678880829164409772031831172309794741161056683660035531419218826462940269617736205339590298963360721647759691074908881058392480092554796962690990966476706640327553876941465931546164040026632043996733386773243004314590705876128741177652001872832384850540281155398556997441022570392049626716458446146435783156883501471506579442316957425345089593730647544467840061734612309190836666884126017620816626448942503999174119177761564740412173060302527337352710562490553500966680847599460176009610948566905470280037718563604755010374164777242360413971618643605554293874617460109481571848501423846289564054534189336693259476765832433145398550519539052341696370603194691339908311195492934006553540124822094164894290259326144037183017150237160341553370948659537936813757355628174396246125775280069142434984427430269587797789878020973334722312501332743201857463483619897774225405041561753256431368372108275447482780028847227399843958816858846079496000799412446466640863751198581035052557046259629179293616068790542908328839317865353353196910151666494269968833077598597466305409848221228958546409012234105285612766544488137177462826781884353436730483132159164187338513327481933905488999501327637023984133107287962243585174379349491182184603820785794148890439518989547136078466699600425471331403734606216210101207445611384983925374574031106058878602585894124336584932811148854564577980635253753986869451238229600505828999323759468169742568180201490263998813093798172875499846417678852185436003411830379353494916912308639155823030231721396226711674221575845487305400113408634773977708011264492757219520562849824876969660434444490763873955799277378039844485320845902978439440448552126499380963080270349154123826228085052035577010373389715130556956170823241905052474713397672093484893802488523141618700866154949634941707600074986969271479016206236960400589286736349833515733961501907137880601837774509181627181473645367414948740638788820112297327879304734796918030028890094775370029362591155853237785813472917463470792476922170050931649403782070429823416478051072638889612030901158580583476862070078319991737167514975859179118623058996195236542758121894278033827932752544424554426952554747156200636379405649127897049642607109147527529085137540446731469836860446013737139229773192328737149315496363421593659685287250965881453221145265110421620725458979492145757318217970831003939213477648967815772066056759332953040032688687970212901480252065859025506312163258006567107167797702483781837877668212601437185550867526452330348447610232970554343413508398741385781358769289642938450649760726764634449749441976469213306275902080564091494300603347755376422946998637495302392324422110069063437298026933345841905959041433752787087985003736085511716924291236686452811070986678814842025885628322361347417564607007083165452954625028316573218059198728544935731304709043343379793938313103743393920532959074257685065247469393227072930532788071949617039568151994247059756456326194211584443444231348099193366740972567413275214871633516112055297795858999552502267831987449465466859633248332964202543781210938885570174602482482802192798413464959449308787325399448566360621603881259109992158874037708357142880840220032368693904370584558006769447724492068037253633438148217495092029862088908031178325551493865406646362271323638064372917072885956003813805165291473387819096431762184487489664587437051009227966130256728693170500994100969275177621243624629337808039561759348089843453369893669521047683867043325414589691380486288469349833515437161147318702634434506800071229816021411954068613015260636279041287561805797353421706573414702168879314563931214161692508703182653297880910888151833468547666637503597827025161657029184649587252263155965610613972995702840878766891322909547178620164915134060216855973949023454159744345300193079217462110974312551592959264361056102164686213525846707762533778890374184343960344991437388313935332908498979159316243493945353586067729154100171702355599636273116351342036145846146032614294772555787840629578718836009785279441547698241643664386325492509177967474474345129650589975428995560985359742972723282859981104470457063104908314017524842600910685190228808157613598112528650155584401094224197636036875968174192707438959372115946615863553132946773277389684243584216009297488941576089361617049828626387063579183612092275506250668463173596938844824508762771664390461787695245658842183970052618794130532653996706710036049018551238561361260878605303121905670124040592505115644400622766004334785707809308414771745593785865955637730220267653231947651813651304417172259065878635630730847972001243568427865476765248684539386991585821848613410181568977982283424418719176695700630375732265352408504350241664841414587183280609226278894439459359873074843527613204982195608692620533315952444662026055502884201962103464672631660916513123241560923002847511154386566322900147318794722201833925542569217259029072578049905250897704375822406364931922690625016851646720508263760205297947905826851141915463342769367350175511506092177349362944043310384086799522713621522134766959092603531736883576255742056443461601885611329605588893097367265201195546688867126762349799241767988086256388009480608952556304429618316625968939291642083839067863501668445080673972566071890955967334488810109245254971465783155371929238860168129893295849448248974136054033326797022585889482486491145721334960955821267174734605671797246773892978878451811227589232803560643516668393131934979016421549238138785089764772421883408756082784889808470797145965285597491804507149351627711372336246979999892884081831433754147963387436172562696359386781488479975436463742614266027702008244833323090596706118983085942744767377273158278877989304846614562362879690318318131944180866383504388861891718382688526639493573073610756305743282067493589925254702068174524626929486339694539797154328241838857744781053002820896648715217196558901396338389534023522057435743858491056401619104212805752184413542904038043194401803488010172430529390959342966672015886895074609627922411850705280639664803726648027338389121510462430752850621528802994205440587193469152245544967115577378537034421929941051198072815131888104614379128603142467773137657004796509347476094902473922356196407824784096445170996788319489368153533110471760004708854578636474278586843414026510826027841430908403136065595701345524450235902581312973772045644540713398621188973717898763131722611198961372483651756550278486781202092480982016085684544464588746428664198748145624101164276096572483485322672859219678452130331171133848652167088618564389846050769858685843761513825954718801186288932339234828457521858982771446052820564683455846221738211081118482819364026197839773440460425616607053178138196038142828404749250093945859662668159865553916250735750436588882331119530338208830319455876805022553099255016862624857708777762746449584519544744671509263636549455035265363522337406702001610930054380237578090877161559078409268910723837391888456122285281295451085524272970935529784955984785710450068494340385764603889869005558288244326285424303837448518845919894748847537344899156245729035592526361067685993885828761207194291353560935552926427403683414072015056672473863577609468270409169640364331152136993510442804061998754412669439874804975842741108066362656751568989153136530636341387862483168495871093055161750162788722745326907017071675881601382028225135128763046524276923389897078117879326163893810905920422032247422580856846765208522930368208124439958542517355545169989998055950927575025954699946264308654751124309813477032323168534582560470280603677797995658165362579302385862460995027373098003374335511335125880911771300612776957391285454296514530798561584251427920945563828400088618226350241217371631302553017592736912686728483329509793338537755157997921616125763356904566465795146964898206622522662861204771174666548654330633045085568479963664473157109628804710390318532031838615337546872502773644902473143176893325825549442235495468271062046206761486961772229724249207749301291905119278144475263081593293413618191179576221140195822868336293536203206784286372276544098569769804234058184365603624692323224632888290820481502911444576892586667154209259637739118054682463389094333546390997702203599558520958837266187924966544269855097406743178982852890979648690858853643014633067603848176521271080926332799154546745085422374668374052752764643597739109125997117547923925569106170885952203661048145248377218265252739491220838597524017311811528486160251249707037925922526886818464362137397146270633260096001130119270752616119617305745400180396846593870800994473258289066866983286913646719461819092727578846025273950469528302366305744768711486491240627284228834850630627345484096709724106754988655524197764868466203676219079416949782405569764139060246453878017286829548224251001105518510550236548486360971833051636204382804372847822317172570939981030424600030166839467241989634608541980073466144633836336630351072539036690224816136474043134241024805407223107663017485982332544797932537543029737558920764341553641172964306563463428780076032915779679448152620006375016589993904814614309784175434804073888202833249989584585773915571277895816824993016040658919333357281348840375065475847787611992726388744550275404459183321631955291296693561343182205460721034738172685636529504539166690220623635383716291611597122977995056547206846414219271133019159471567513133965691605700069476733767100822607331339913375005024353190539990304087015776672869201452336282025312026389488163257275649328396386778848177945077525175343763994614615349836327828990556377919282473041594978885152248844666440117413869246124111955848186509467746089865347050191948811354545662172846453586732559702115700615147856063725282610122305502359736876551791341931061074384656788993098673696501292619963447025844010107834534169016166545393746675584435345738537701880806390836713328798888149483183596526649455464536534617206532359547435781724910703753582621966478184093576221722035583794815495832096967713128903502873403288240002863896329426190599650315641384058987071958657206121632194684226815364339104464666494782552881582822048103865004092673289659967983311538746958715243150798276808327910951394067851175340627119970414260700217160970238304244303003707464443266343794461773112092764858720322705187891143020870423547631589689276847700835777247237675170219930518956287823298908131291235848601222032399828609107694238414049645881155725649583644756831839032794275909292167443875849153012876986304495405441497303284996442859344889123829351930716318425030596881035253129469223301974734964442837940557678582817832555874750442481455348923195920579628381126294797337817258771327237056256036335761723423421202140897804753653318609008148640221024006000004006642561152185254587707364195559047861138255017294708877410972083602491908897479819331232530573512558144781997305158098410285899357020238385070870551408396758461415010177922698932862456911022089377615509897010579831947496445207042771007281028187787546934393744251896622630951899158537789950330998038175112556867438224811773008814650873184530609344594913229823063315198691570153838651528489660414759633204450508975983960157571626728942262397554176700362072260654213548359315510439096730944405429326695383464174750125530557491051282947281374717540470642800312044569146895332598910847086807212254383262985207438384908739254779432084746570310417847898500544426651074283070564226607922797969104163858924951192399058466079739098792656902573621437102182295109252886379504850457126175098485370242584013417451302224636877176017048197962069044504229614507104040025256284019567925293274262142197719066614350437193828422142474424803534570055967175495218399054404880820314634393200427783239128996508583446269082066415143395337570214893537463374937149035545320976470995580670849187143319472702885914599445439514979817049647551678630288776956143079178716399443120899704262699782889435770407612552630911789930002441006855722773915105670786050686096575361578702660463106275074811577589276578684007507082950238435879120384708733983140949874070682387155171638037219356284464295672892327259694496594369886888196087355215120585691811980154327587532453810129712009670911825166839104050551053203559503613919104517068859614963482336024658578939171395180174159558097720607688176940633643732692119886313417229323302983584981773212645942440025227385701943811613562898487021004927406922516532453868518905078231477080931087077956571829111002992762850328428829285544421284730874136452399628269333263826359628476634592691212428583211249776098179481332017130782868346720945482212945688889103115343127161658574876267514956763786874723752702570956958676614164349504467327053069403987917235819318352394329106639206741527069573674956537307202815216324845489371321887227339389460576408711930207383985843740960064339202044930779892966306855965020352165628235302695469641815638989584940963576546146004220282738862328046360010054297245062230584618500984037131901953820980186022735667206740333826588089978285865728441006983192149865213563113281109858724574259483711111093682750585134570809227050368798336900035752728658041873899915359918077511578702006977257553658948159561555038918117071441646738856253933971749655360431228203170520328059273340700674571415970928715621869075880280052612412369824942874227657698636200871046548903178390723376506526794902627426840306626631815534987600179689679126104337683880282636887860982470869685800104587729230148285024919270673450830625396861416227290456983326597455945008314735218477402252416139807464253586695388744085866604666667515212144898173049547630270946570979500303516307708213564020442340167414935860427888640017653006042895809158321575763704354289623016103089993938533164757351176631303081204319810620328831428141378806024929874687185682446966302691673632394046412881873250246728119588915258746930808372119770617645041640849411907240531761235710633251078346429090257380292114836078117927438653918950172716938045939843205299861416298933798503474946701117289818611804436558409346780127448931644534581624558837795771131239172098057377913202864374340067424388526510490472526551566315767147181593802139301692040221381261416913018865535152352959992699404496907912278990901809240635255920154980936568518942715553390183072741755530922894108652124821533543036837517613534759609407761290746311722179254914621821872321565617919124298232399639120101671389092468790203708434401121277406382990167004840220811457026093294472784811441604276965695144728842577451044186270093713906289874387792919995536300489642934542580927211027320551922155379562712670830743308253100424557756614482791504511896364989856530824987273716150042352820535617383012124242962005845144742445708303141513170169145529932225500879001098311215489871494671798297155053326556224845595008187334246689304163710761055547230859056527616829208073045286179750954513054452409422603016798192504783009195167359882008400838377397472232560560425555131126278167258132066177930959508518200092779933641749206377520518607141632977294348243182220459087803804455328365915099643426682414280193762118848315166640952393975666788415537730553267192370607110468043495013578202700057783453981462105804167910559224595916974596962086440499362985541425834526103205286420662092547656898682222166649390237999761483441541223848054575591074253519519002142637516477239506751556576597547175890986091057805728877153958743042388270204818719705338324835972911177493782161273066790171320869567504925723321576510459251495060679869126147449099785056113450323937726728348142766307556742964695595020017348159689588580120021374495737283273360215195804100202596327035055025353527731458233202411191247144238331574818613047729612530622616036638566242395124368308094607860815227666524151896587203779581551059074827827179057480836181214533187436392069755369033194607979965420239556238193379886935769481713302752656050839989611380451803799657808728118290312589930268705309579029104315091762334336990186515064310615943577003368075584224750512566152307754037306010434772583417603600967412221789333523316525751283790622624318343573774295395314851684398376229865716449257403006845461673971302911718642381852559499123883976258635515893426897615924791989960551530347383153351458012886821890864776793207614561032252834143454642487899455521570963276159046700159825589775505647839554152404020449505190430801230647091556701429920042885209023263916362466616016516631795130689170811225901640560078026869261485449271737350711353544915964999741796236973492140107145555184901098610229761417951865471901850802508867248537089548779583935557069026263942782137319676834158578498408099880678787734522365015924842689306073229072347829357387854285163688859088605306581031754280749009311286423908137981991753772127298455093638036547370523434700865053478822632084465003277049501491412162888888216138098503332602923957503305224612836815036859891975263458475441927872546122111992663275359092789629635190248176106705040212648106421634816040803020929450708222867939798504708173985802006519924601083177215515844451611492028689844861525163559172282930229610120578535983590240516556147394529505289378638349701874660459360643100451576846230441035000318179099830702927932924806977535356850840350734824288385820866515816259249647363851060672681463369520877543931817757902056947906416538098506377175898195347731127342745985945397390514570748053925206042683675269258348221751048739683857940607395863351658845177391161254148914785783270069104696233091022496538559647019097255410906584894647260291891197952996326184044483361411135175988457536891458776971579060918790876349531049900826942327945615255351039719668499489864603383515068367556926402283490496310192783304110048635888974782268053436363898243584113243772966616549142726075802554997833264458423983570930978920204072431293082100880831733878261802305789051214934602225461338212608851228251444851850245405541663821113905892269241988179102121266729354721053347742017202631159622018715135244357208808052692551490957570994986303486898067264518005047895343866489529754381618580098634352393606780002232550603797498082194542297684713074984627228700362029567608280738831125624441383306312975713315568019472349258489811925758245029537571206932665548216898075956695238139612866804050551899826107805421231260809180519707253966204989312688683842786556014899639847931789772305578680154711943371604042600336395413309097972544641214610526688977456074160030297247304655362677939497186851079648789633324020597543255010411533023656061913486641505666422362339359108044832878217134522876422165886862354361446901608734841530181261697037371990033800695811575824331080248672164227920551225664315021511550547319308506450616705540168811570502041242255442051443272772669519367029696532734790239928625975963834918985615222467426511502783745358859295926816492588301684748558711903996924568435898558578966725079006895025154048469655548079691362148608510992370765501068096483735988484569813671338356674340122755117201056692140582539355777144047751720755554821736427737552482165334409442121298116209621782245951614632313975230707086919837738435178644767434536322318892791039828161060416320241096100310172235003878792058893565025902114206084439468158963209097742895333121785260815793215963482393521918824486201123548662577377114427280080470665333014436137961921992901614598045280531105372453045937629393482997463025202939592800444206610746478004157049846971499579491837402032449603767808840518313419327494708560146263976333078194503397925074158678596335537262563459153780073701038527467036566337392949736887972703271229885041539361847373199530832159899932933062409573427372361194330502789691488746314587712427151385781485095083859829610876110969197304378964249761531932645000623526510087244308474852505745526618336409268373251145080471718307676674706042084354634288160264334381891998709901825017595640456969712358773876436730413749452487902655662724612227845636259347625943077203631447441736373767667569508968891709639042719962825937474216542135552085667607229251756074660044989398204081970061624759480215970792574419069168485477839417884495109918903715508120092331904077425432942884997391629984447145303632617893541353258265791808331676746522426224411809941518253477325849939019048853268981838353324670893038687731453407446682991994650821367926190347183557620058099334531771686849959918053252419457450675189205403112799141651590664627480982155092349181014170129818627732331320962640587071499591773360770436420568589878737293727365496751430580841182231417439001481872524672379312319434782892450277877818152297381903434938417364104789764752307413071263054717803187214884384472232183306301438965430530989064319817174341570022637613184521010451144391758106913596622058572646454844955070732290658674396850516823370537501423512080331748839851968338053063588180180938422323495254602013521404731485275669991744794242929082287603117626728036576340621867326936486489189641670422007542858708363013990339821707684484697296850530591780153086333873101769700564213245003648101839923973943457738253108953038834682219771587027493916342472178187274529336437810114615892619861471478477421708753517946517181945238794657477079449452865483126663309569964436727824132314278426188024897069469040384154414990069490996647139539496759662778996145707908050913141956250039574930282436499178694515778230741099353555401397703014547394816226687630368558664247155705488945814806558136332772351900192912052099277086342249142648843709209332639329269981790211855658404184034464730407311020208586976436094695102037165844313856303399448162673612472340612779466823072185700359413329368343433541479831271990721788360452316230099507897947001784672335584619609704153220948712207967957921131895196474178803248886145812212526003132886524768040056427945741458563034895048723178337530059834214093317157457746531877158252415475385021505543362738499129833827294413812975828915499471352173490059907442504281151209075009661137114089673670650488782391914994646045665138240198957077474939676684392394116403614400066569092473682203697552030642602690674804571931379624343305644847187276673209513418332673686931267678643933019163661965677414251731073580842820038845116645820246928265693466928609223477930907318432991082559441173502242326831029716704520447402441974440939673033816665090231886218058078338663666957703669956894369085995397222862133791437636362228443638523372863080516464385455956922357744116787595603839893629777746089742741176854432270028601058394361627590639204641200540535963225169791624349252566717907406040070615100716395238542451737006361321993459143540655360229880365224101992731644484663284077265670459088338518932214191966301156853783306605305592461896009826202549653473081871134518966559678114520222427560361270925635283407896248552990543262756715425176970472755980544764819661895435616502063567225803313851297470483046655455911374276007585110013057351051327687163575346905459075819472722255605216971958359012755115407674953264609846707836889795738091933571280831617473301941911095304539769792561359402681591371846846571326139507474962999101969330358081085911005194019924462854114148513041460065794725119982556048105311038020675310433314311250351043385770680645291174961445926321231155265474903876152051350045834139395709164011812567890891902794162528483852129239889821687635517227835842460703005854832292264346066559723418107124663425968857511242129185897744873995964623592633182691110667100743078096908390667365403020648671052898057492352943904176632431299137364968567218875194125748680553852344720657870256204685552843481680666991955867573778692739228861059949728594969437687586319305324199750385564792696770386664880416025249303495137218389253783254769800839251340548381704082766986888483737623006666404635431988679687803045136217598173961914428138351402391534306465599256048318570749490015659469863654809028248813811615685718945210812610908287104265957372229369472304454960300867400259676991710785481972089182775081978912171594064655380194258973241919772817028405132023211649363555875699261991341977607408390357559265096818038745410352828758902694033045234280038060042770975490357676805974343274133747870097153989921314055228040931525042129680605577726065441588089360978794096053776175854382743257330622759539375512802554258193186002220560650023908181913967298105808355061979200418030917956724131044486784166776241955892027718601342055596601027071144376015465609291452391686316934426341782556504734037830763803937746479366239772092186226104834248026181279292490892259148095434930787586981335980616259066817153682843496693680694849159724560323282152307892379011566807296461631443559032712325130338437604021066907191327205547452659039095230274425135490232008672108945061339056422472372616815977500084983682128518376455082612791791168833435824758431995451841381225121720390684457689167145431729129607727791671419965074440850335519664694584446977781218312325918267862486460657194760032012970348823631486404659310555338720876864024295200632021986790733637533766946039058580456764970047362730296046331934546247512798791581037691487139082721810764518687857156922761934389190052087058609155516209169139047125938661396044097846213190842877926045752287529813337959529168745007581370808473568872857219643975780446969172227646051271695684335628200336975799817240422208712970534032619925023168788526254260970912781312242219595980663275728800199334693961644071097568798676247422412101832104710172610000350706445960017038848345623550871739679898459813223015630690740544984135881420877892521275338100374685212459351970125907941358115955505834591033802312790932913087532355374984604648506870413842252071754213006665183322848153784671345626709898498982553977704885862578498000373030609092229548539210416308084742233651105431761156430671609551703225712385862524485825908494092071629014471587550267425080525652938069397590823354719642327729933509843519407780994778413867797374384001599940019321950023614220879846589987679541828145493096802422201372104741851982967788730894901773080307015193871925383385694050623335990055895358500524280671891590944756856760395664880503213171508308503699079461233171378411848577206689612098442950112462041574548712580313096407903002186252076392868220454412811966194399924168948811297442723286123415143207152268751314693743819870926094069407545984475455833229418590183023189211288267677124642582825159637085371611558808999087088390508452296734411995490828366284151102046108357914390793886656779257647073326324765040969805428370425372170501117426190393248850518021007217753947913435701008701724475998746676067836850689890682578122103935383193283377355082367978531873927990047886714750326763522681863458427285864820990021374092116353334767539944909088835117409460835110294292854090543589697555623291659434855342558263720796069484638156328029607139272169015943547178147879717519973553788623976395524791157465652117835545570689159020962643613253870853166569904789195329014431866924710402143340121793038788038741295746363640883264129482181283575639881475410824370073651420458649300423550166474676588517978881281068255245017622854217607919160684878933882295374937070466953257621317525013067928646679728558665266867504851701374081583994892608208229257627566299606630834143478366107686556684953052589795018303795284180610508362432235230933201812821905555115708830037377072727861883499646815634570742996551204904848844082338624118507710584859482833779052668952756055545204105430107399077681699374019208627189066495312387446171568324950341332975187462794293908942647096889163161684092221319680720593464613651286993761858028981541425613701249626572719869988474606051403218839034070868954750590212146764685948764974544667526021038383871559768543604920007508277113574195541649048746938844645096563356888613276150273146946570216595149927314114932972351929976431880076638014893676663476704036130223564133368089970562390960661371348595311049297504471181936705169666813423817709727713408854354139502349431608162773638062924272952730305297883277351872682861210353923580648563552557078888233203852334392114747200739105221525156167737762933213149137875746268671124337906181566026618385885635155909018874445728640549905876198151949101748298773125559410403941095314133444125423369841267395830079699651466619930054771763684642839377879063290234111301146538473828603622273657399085017216200195505376490993084218148093064195801478068625905802522639896444994108109504185288421994697505669570830588153568499187808611057625276777902302555281318832028059493383542490869758105160108191447037148142378149307395961208181095006175453372761052424515096181799717378279525629597876649222061982104712198556658658627884026621994772350595368354275135960367817942368209426066906450860012027553153288534886133547981749064845204265095183648268468868224676457505561154338383513696321951088917128007133270310776672693161536524274726904746450245508357643398413935010274216453698612024977410487063674046555761265092274221436542008358422157793610511443824326203167652063846675708261461954913011223474834792449386549430015290189634469302032119131570915446213845761967307568125842535584549004144343986263995826199032319422251990091750243317625334436615646125002965568346211622454053868162755770529848761037634251987766781581942362281301452104426083553764735435012510044310590603407363798688435306086481423596967764185668800554514831895694015402658165544436139229575022966489561095934563994514609370941007652110863318267648856312964678137548615937905270294092787839117033633177239769051623825084849886578442605702520190082963264766619319757672607883621858784279415853227927934211539454412761202869209285798353281437185126923437025234224508530632529693407418290041289998333859763047901424801743109590568542837574647371347240638342064191994135517295216873420687208584689532698824489965221591443427452381920454429894336590755069722739857962173984812740649230239371726336109529030540127094772081936203775637288676577521801774597658850585806621241198611155165570667953215243683456055159282867173259379942200056857214885768300147899856794917920577334798506380288522469930603426799170792018664434631092181857377161031508954084014818945382428778599357888196042490701336270205198311098316120672371079647695287803749490321597664684463706570415023370362755905319108588132078538042541586053067065977483317244978405077191825203239798115719757735709242324597565604492519008094134773380894595772918509131154271739032370884458865542253211146336071962692373780038486481895075824018258051276348862584554168249377089601546106354875654491975705011395724428727515362574788905171932838119234490672057739429111819036812423153137979771151859150548669500216630560390722140148117525792194007792563609256355617029411018045797520007362557810607723931186058972121149054820210210543728468473711190447826045448290224196733178184254828403786298879983998376929397887942994888230192971908676903607979843311069764022274625427193440167870556769652870675990313741728185448295619169649451737372919781794608344115014565794186717091876167389966928836298416700280823657588109794486294711666461294844498401046865252715228889189887703057872280149089428302661531243242981218045696382134147609759261592019415461820230594202424706603869793727305469586744817639712008245682482118427501289766968881106303715779498373424266488151762814624193541599869069792712352550352619721242642827722397059041271296052802362426304857926294105105120252216860704724300162638718073240034721678315675234402091019269266699518077038812981068029071308553184039455718943667110927123350918002547695262878059761781551880694327663298378783056266697577826163902759864502745698000143287473195921738900886140631887991675838443632325044927704349344245307620219014654650980443423365832188412592703193330468483408692940372929787699185507891791235486036300660846299931956660359225828513568113021893156277189730673763791494013253549214876180443219681759627739575394438775974798512319332822316582463573480560398232254866484793866544561951243940705395065578820171985095752356561827035262252892927286446760629581834948103406112548792696439716965204798992613608600761998340290144044194880126302842000447194981636809701487971850307144520379851546993853540645158301794365577933824490563509580538382282896557710143264876352745553733247034572480543290144552378687877558539368099391415863530232667373606488475829018275186507119077291805782305613410190651539188669639735717860380661694418554524053614473505224788836207504103361102229833435768729422890439744583465316567234763459877721575112567159107956976792833249445599612476403276528178238362053487168676601813500782162587416488833105443835041582564983075661520109763624816736374734386740306946459736667061467213762178502417015926651651699373348637205708043034019678618119281265258005872486961529532657360603127813590993340566850611114460469538498611878346797124253598882099440847681437517085433727605391209700599635273013694887006712734217327825413471652298001218446759385458046914168213495266388195420297765356075085293294514677358320297686757282908421325001312289367091075428756355270257230894134683035164812961311128865224506751792994342825939607752675367690819782206695305105314005572077965124222824798457834526153297061124468256095853821159997859460964866917006764937253661563385408819053094643406482548470476980665323604140429247176793982305718729518658942035939630759249971542954232693166596286328531765501301576198223130032720036539544581584067535507432585005602744150490833710016361819844940323924176138732061863615245230489647898288545078080910512764471691933013503193108066769284680726049466546080482293813722584935276657709192654840474574579461915495182734443978337070445103056110379710099586221524450242637650913135416485114187564826943304421379395596391558848136169159441631888104280776739204583988520728772142159326069194187985266609950271696383717834869408844572683612122872448043516214305602012807972103662484164855881586711321224402328175000745110949178950889596866520663609442443830116031263064600224009988205723594244723289809692127328969939875950475060339327893334871306866978723078767164772800225934066603012073977401260760023107800225509899881249112469292470656527719620161396584611343860974132675752655581114855103026297909198456886418185599005239325166934237204191909314306782571480428691743936901090838404620639323557969738597536188609355621436489043852201620990297902508943363545921885448661694386693197268490409953348620807181359620356559317978592478629930607799291072122830513807828714630223070951403818073130935833623567017799116859748773627015599020245006093076212761371442729075210787848507775843408998712898283843462335426328268577644575976802259862266574550484536752785514395198898565080173253893819072859170290482881180530573793488037763878150640752289778509454332019380860310227213927909012464587238787626713544208902323110390944438901671602780506099281407180316310100339082433482874832244691417086178058377653199941508241619005404527408276913434112687622732868688970636072014586525698181818428628928253262129537861169199171942545885735809543153405468727191280401454492606779794818520188996646240257101849751212077840052160112427009500550198664159385824094832450661946867223544749332497306303025913365892000001699608750264559951302553341149496360196228978945301045437623092252240009754216285171578337130556817459715443431935608799480691195394264371649553092936528102614389368584260478682566286215839757944171470041326987559950388356560806257199047599505648775205792420106567079748857690519905657159331182260511279438458714227429675609251365015128694147730340785897657137113876739046231450265363868031157459250421210075817057849711236466945299401027721298587039031853321178505742191069285405121169962546594012833018633308859377612567042549373790705261079169756124067191146755846298506076717418221454373506057508881702320729972017352126738377563107806006620054566427964513000697758813279770633031239549197718031769790475185001664708806369579946052804349007554283636571535129569931863978775283511436539266951074610843098043726198221374447286891144499219741964112117114788200191835924021962592317403814761338945551164367908024156543453318377572720907153197922283870332769948127929133705988888329635200394209118983240375420692110829524767016307645153405864938676569967546468419410952183384303283611678034811576221130254139823870281405987333438381892086886140302139191558690920047257091606821548415616070864586173291108300552596437151814947435149685505981363378537640829719871253409158710101034701167598204558629224847865287289281696506830161650179202283697255648501664002200499136357575071105809436125630264335527771648626329629328040338400576115747900854561443879912889462005974657607213514462212784347775777372852257463573222587720464341580188770732725472633534021099555939751600824957911565387107731883608775032190210570745543535797919620098276501465939108832278130032061447082031565271292181720596321463093475623018236533271747563935562755453396329474763531624158200678454085089966810859149815433916378099934314410136809626825920158932212410397388990187291476112967225626454755974417425749807091054827693443269551281794312330667596454658027041735958878408061343688642545204820542731628358017492452204071339574722530691576759167357287461235883002346398371255294019584044725163180739771538158629685307955332181127337336911128695064760803269000409173943417947389196106487328365202294075857046406498794850548201754406047900548389972373110793889408561882350298584918927784885426760750188823557743607436706410421592338800374941831534325241543444394321650799495487317183677908378781868918692439310980996397981437482682192875395869373350020490008860482529205913403259606600817004444314810169835498691589667466980228173859357619613672660178550626824169608571894091612591855618362391468209338498699277224443689927993418144869663234106092931436239240749951705123409769481771514251421404883732008680079949576846785568576922952842997863639474728778969857746568700923835641616341022100907539413920428561203564040535872468405214055348211289186028975183303184963235411912787997093246303110053842361629304697257132327980492618323731394085338662893694994477882092857456211755346429092438508107086217772312728089135016187159194988442117609396761302450990476559784156376076568763377367872403111851193389456997365293847987841210828787592527577981987860757960054055657127067526341630002011869725552103645687903102455285198747984596311195043523114346455364108806854150971229975695574447152746507113460142833149862756824732831740977755402317540370292920758038197253564170802346753041663491860769920651404159621428063305605461395049203353378902090474619272322770540476474277067225099215380459625920302499391897398365061451696806930126818390868432597627464000492481782697995589416617488368948381104020894352738754333544985773721899695981034272807339801132503605967948435952752483019044288963157823829166345214458930215276770889152010500972969517433024722452724577962839088500889002439081690999911533486334309005047960657133977776670717536357476352285369835441980102769077849265147725669400603054342584340522760491564683635809077260060830237574289065234419551628582722807378096985645265416929301675957798387955730520235223807995489964829738641864726205003583905999175166980877351254277711505582817242188513060451784852703997248341131852215978322727926426876619452565080029911723293641501967598056781254225974247874786199500633042905766148325327251960832849816723028055813208253716043907763266106163553113848238506336346540659504502403969432985847711888905814086151458643994864405999537413871603961366534413869335409341227493148721527497615535706785916968882384860823490010691521442402260033807783844761111709491097977534114916508626743939303213260567577958569248063705388133385065789053446294900886252279888759686884133944214643101712584004506403179685599660324344538815002253760090118303853121178890803739496644149586177898374200724004654383607309583803417777195189579110963122093569554490982989360623538793698878336661970445754668371009408408362727875720693410573207012413015786141703256244410231111144293950590915590896994628784655958051590486941604221940937469383669359737468025636580989899400928790289025357660469017036744658642742711338263260955749916443091997522152608647550708114056839702538362767575027580581712555370279273750714219117269924437350972740074426724878950988873289331468391249507117635099425998979418004270712228768633655878291411896901125717927342815092124634652335784399165936585246921477674399481441892651529188197703727655646087184031874767194420194643094083142997348678030415430643038125672926651478974241708692798446683025501798931251494270214159286017501118884876622482085032154559539567183794896371273589387259856668686207014264273478095878052005155998052637931113234149920505480511024983496322972523826204113129758083628487794735293273545897085787255154549480048976283479082090492515964116339436546421870054109508064982452655698635838065830071266071465739023056284413892676386220842173336719601397961795810945289929869315280232101119508367622629727693281596630669072356498019480949797394303837410060423568566193240724954028786237071264148178161262473620583283464947692306531289606830252707347634057629250912602476058044206085525332418503042245313376442857786777784214960319671066549833631899833395123796972080866407794475462156454328225913186331613364386168355919637716148159520107961407197287614926215229440167784612915847082179666884392294182256178749117755356201390772205083348525804428631757940868034964587799140942043742496680445895110610695898834064195942461055134061620589565022969190415151725798835987796732033377237657415064653819877315578305976757281477210958226542860505595894851349762698062399650541711629329260238816373320998754281051656789316262659490960795896305588666789372837390559224663666387544633720101463330132472350908083256838977259255876245664874242534698115873005838116951358683249274680759092354042105788788911490550743471359497984984414107921079250482434361350976288725958040970703861403920080229966134622334828261374990367880196160082391832817127089416801751789180962622799527959256681101287760918668464474073412697748419950273885064305556443802188494741620126650813058354494056844328569907706979526189358070198217486109652473548774756615890415468519909147009614237121909629246067860673927395555749398501297329898322108438577650693571314173144350590605821139738440818068403600229946893643616490456085617795419771550544436697586614879498472140748108051812384169775566772223561178436292769501127088954885079080653618887899378310330534272845960390824808286976836921376942003937228366992489375960924698533022790364861083568665435633742641295935629719188792994194782155967238778028800909074030882329436699401449822999621223939003722692037342485213653551811762446776250640735937450159580942462769228894381622076958813261383186756598862592596348264992824470340381859434856160919577600935464567179252649390508209477219445474500581756863550968954305262618958159180490615743490355298497093323017516404438022444362605091031699962281596171745002402153703918743625690223823142056577454601772226153762321134550416473338564146552637710854050213704605545163480675731659521528540218675033258561955574197879894561507908326304095131495164872416854788197270476260549143992520396985781507096854143475299150184286201199469478101877328816642112557245614614505124209907679355282300599838520654994905392891080456425220035566937667738704572402526224430498497351442656969762996982341367541066273096714022347473622027778383780718911412951317744930170994152174047991969182150896808038311680872307529623779128202367896974264722097803388541393803847348119104566768041680038965630053300899465056458973374860640293079034945523230443867396193215538015701617581353676424358418385234592328292519706280015410189265798370180293937733041286839293175685142898558009066759638843299797782457128792518046607732791600814174215725503316610954592575894685067347435877647485925154074466463259070646420860881433075574878191302448569540234340650786626352516253177038742357865491522867445477083308179899692748490989433671573086781223021635541728339278277336028798820894400289759432922191963309598123941128620624753118512896366903855508802083243524294193460962490063927080588374404526642438661028379791918054156227055580955997508901488214325440951477669564623111335125960554511144176641713364822154349662397676024155305392501830794121471296670958494332028195541620134290076241336857200195746869219510757725012596760958279463521778036670805988751158071203856313193411529193899772715977302124218605922160184464715096805014892488158632773392080837898714607238894135241243242111062276690604686134227025784179485809247478517935897220124602198610040519248013319003475822300563655187734664766994417302352309347322806633602751729172877347248238215368675783262788727296560094041659867132967001788197854878675925741934266947262324183141402360205989567654648909505287109316947363431160911327081310604997041119779509928357820827895789319442955957182789937606520633094379598713083356827545378486194634916056189899591254498875636854045362274100992212631957269567452418190207799956825910460670708770995921140754946664373789470983846741952054126384308503848709929929741351341559666860657565837191870479212210810757342697337491825682647061753908735988199765574214838873081607390124083116057907001441784921241849082248512570093440581011680649912681131564404584733459562746489156852162468175861070437595303405612751242220753851463019900170160854766044005727040110937209226957954389006718411196981330470866954454418815510373660208200486824313777616393518023841355796538116341304684423275833812163951970590081328262501663444567314837358658314788162649321727430455486796901848443550652037783319971879529664716782057913117016698165704720056338134876486980848808314068415455310261023742631618133685477065473396047118485624434066594841266029642279155470780554890479868969971599615643263994099760377546294137212074718017835543844642222341917555344173175050807973449458271940562378278970042478767986124777039013361797235229892895246839155000970434197710217806724552792217923863091734943049827402242870729075789024571062485383509595380727927856747777494276858729857587170218727290844931020925677560063480773302104776713635993353840411855744939476322832003641626678485679806660598873383484394689880235990837584771207833543051896128836737290174251900228307921841258544825852569820467608634244216453617903616664276141144172138560737402802187174882004171525514353556955431694721270805575897296290290146182936801690856031451648541795847976111193078981028325231670070578313000045665155897082995648444037178602545427443729135565900814880680634712806285031858297015430508054722333867561699659150658713099608931472986664695504738985167356434152981303845160666324174907290901995264712702781781003031245737980662043239435907886332153388625908441764431032298863972805890408636168560060473747216036468859741727209463113222135655755000424634567416303876600789180866274418971322821950553460718699797648056144154783705637475714138839492345448146611653035514516749652566136715835926646626819116315654023229182455558009502265340526924940154040462321031862744671255471888644297092429754703630053801826238416398153355038929768531686190313645185817395820468504655707868252207166804579006590067089028277947775576525585876224569047691403413050392812883982588638232847792330190251898443157674088320936444518016910012499512038444299179643071560849355473759734939252089663189156841702329240733951876586136281980375908956007166832043462314809889759854038964289793374789696308369848070860272385690332157782551858075223298096468970285583237381204426653171438127118350597730185767948590897439026679360126082740126669062790455302156382868492644774623507536868801433361199746350191328925959295489091811494796356469486106529464123975201520844576434939389884266122020617746354083304695764825815129008531570780799121534882807442769825394848338434055416065381554644791857662802279075992531462963235395040449048157142443370723659708114405301269615446120639434748781914672645879266840108991515392712659070077233480475919143222532554361105214227100703873536363394155159485998108846478103386098115255459887361583681775188770537133993097104755169766682091693638882745342825139841722604398929650905757738267853683800611598517418206538855977214428383218983236379528432152323275143203869101714446427369795736528916113024832131290674057863733784188949527535958072267955018468617016463016220129262564979487748482067412439205157214931984513644351941270462458581526106799625181061033496172931231183950765299096250029947463633527943301983405804596600577660273589903815634853028972199280362258169404791223673497202425966719871780839814412460481226588509376255261336620989457987372657790180552780968298707425217893711275788684997640296969278133297861474701917650757919175962115809329923867213248053685910108045050487713017039913107990880935577934366849883626245271475049023110168506908018294717668000005277294336373800981693444147719757898017112300279816142376892378861905154864313482020661348424747306944456683087806602180262871973234006609712312235054704527535357707111886377251638213059670238360923733675468473568772215257723633309902621434457152395389129153545051187389336102872175025333261420344638779230704616974604499467123336803338941775164799060029030584865794256585761917192165833490099032501804971343078646679721259555961344195329173202431438451303507681273093064666350756539219972943441471078563774890171570639346020748178746472161818899574590388943646293433360136877745565947448383934330383794956181639389696672280618138215321548075638579388134430109335310056180456319438435825270537546271961631884390463314894797954404038024649401236508788518010129279200698784945259110950854879613525575295732488230448678135889717299841240969566849497624286391999162309142020059208950464808396192480744028355481499787540631884455933498843159917835526644936382869986151677164992217218370627863694773011910545930140885460008090075361621320176890084408862577134805267498893822311545873566839233829188571623559181224261428455081716499683092876207658778390221259808609612428069423135506433930184545297579656839664389495163169557546411034188398788713054569287249363371026804524893925208379991343519270864076377608245040710214114646092993170744137080697744403940164645868665714461270830734117436111479266440320107834948959409180682473495477179693588379530837466801327708343720691764642160301161013232015868887444646436625770391259786284724070424351974021184871523619964139508834157901437980516658094887434158944842709379574832116867991892432075024912841213843352162648554278569756436670349471640293915817857374649406699258962051733386862533527146230261296913307870789860057341137112206042445726174417159955656895462307956476954113667616063962291418886833772223396611895150662853887919625606843178590211780507214583405608895159321938008463385790359867359359886896274016199434548510659772705347116205634464036176963190721050941720912251938942687832580181449638900869434873485926231464940514048325170775444383662492810766034595864908256566496261135664059901523266040751216044815484340091423483645143904060610994951011792694200662945743183311874103648888132485396492357108832539104436390073489150497249191971865251469572660128920658108216830516406158890452171968545879856540854846818554901429115904620143425732373177677831740197704762920200636459129529929564788380071748723755829593949996640709371540981255927095710275524064832375714750096769383087898506172440732545466348227199575340198700080450356652926503015948747870876557134913966795510714140773218121389557803250813715092344880436440226897468927016647011064996147574303516773756996737197564183015109818951219017677869224603935062077139813675317726064803896760299344461540221697583468164889039180565564271040759871766305509284600682568788935420869307919526367591255986023061741374530340984957631706301976038050193049580023098122120748385891137918391527600787001606944410673699212853951806219725232904660330890135965782288710032043833461388969370861469186289648570713685687646709479081887070500202636389691628073054948607964881910910528303587467189102000536388067380578541946582478878845313328463267525394223855214548727343501480164534958859242020727463629936257474803178795454723084461190156354195413899751714372514793289372768970639991249681822485796221455515512586261464673068922692558137034569080146254127962870116444487785769259572907709420275850936003425269610989534891728764205371918357927552780549438056412658782115171398801028988340421677900438827460297799493969252074964651863225693770364266710361687753720979599565583557203563446694323096820931444345217917054125527802087729965471990569500940724842573827851548336780880644165098892679934473793925598375846295208156380085597705956624257813889652549695705417660089977612221196012411975527479899873167303535197178002233995333707695875127126055196317805036275998370451821123455397938072797133890958188506028885214591182229008419273393424242335534934240353165384480891064728044720950473363476770775276713768541343606621289075699816308689588828996118772861357771610314307292662378914297813683619423963532695799005385404860046640815803548126376166967444709121268844131523239169422680807369828311935714402095269331163972157692556535886759318421892759946902979247442030559056346399557030242088685753733668273449107997760425677090694699074465569259494778994015133251695457977386493817882028498820455319122385546443033923979536578184231584040598076920483982319991491973490160156801659099468863718544921194274803709202032309643088202528056632658857642353003583013702587900198151481438929904670982236281046049423902178516003176074841787887935553960915571688666286907375233867058002338721881818403436159982818577402503129999380144499751421034474306759406842851060876869535066913622363985717185655088000422544718464118395158024980127629242200065575497439552412771884318443359275601595920870781037311838568397756815253810384752576288767235565726408667284231635594316482379432495109512957496205121619753832087009958858682680782774952929975009609064597253164823446611778812516497462130280264244300345958926723724958527696417606618192770752644148100509286634485886062592168193839390047661118372420084147891987820143234798813547772638424343485639712806849743208790201219127581157991024571222020077027467696795260657371417598642119290125988542178396772920281586920133445982035894903748155859878239244291894466093688521546956625092876849346371779544227667980908004239602894471318956326068287447724175666573185756197932199228356917451489940026395204581617344863958164262409528624449065413197636416955968591643575737532841872875062846851269597847864631540063148532662093800471402944872022293094731381352803915649320459894391754775443852762148771014891319638465815972261049597215004565542012419386827737488439300834812120175045173642608554095830881582344422546594146492010596181197439439231475484497729220845543345477589745863131968222803694340126586718181304985105553099534353084938060708646952455990122994078752258505749699447000471195582458067002138224363455730792761250467735200921174599670841650184826269817206231324905837665423704838528339630923926471563027868864982191505341414030578850723333062035298841444885059675598025487477610041883304409507645061372566461821206134984873642177777281522067794252433337167826603855448042436073328989122669187010266671420273764215403911644866716588605286895745607321423673619470161391108574221006309939439997712538140806718660191601604026130582432555486465678818638230953088430933558303221077722706110620325285851225579848113975373406680760464872558831315233111982136646163588406525400057431287003766091744767649880115872022125818839323288652593988635966452534136251926510581436840548168043986322427489142727350868505003020015207342949345691826276050073895113201677615463866432750335759644224198191702843288305945692712899160423383257032895473314867448531373139458811349801747081930624855015162366105157448607141679658620344422035234588073722735037270705217520382335369324351640141018443766211397568670110458486678667642282225118289467612871215110358422292161566248193580472136087796238756125116657226727007716488059500138213607629353590928416955009710668464815027568459795015077739300152981264498771132533558039327613355240906988653819806551822845456440145513351116997437399196994444541279912178649979146130355635752424682282959220230942738019373142226992581262992200274058712953127623482324920823051892532040026782396578685019325966237292865831383376724862347074454974063520024313843215663618639090599605699278953328131772392067793296524844018893395707812514801019934755240924829459659539369244957779756256819535576534052526055954587699576088693575999008933629988780336570295927797285158714393491983366324977347183298770236957587618133780653268841741815588643023407453350594544568603379597882904026029251460172213711641134076871375361255750876522916697884483431601783629616745824942084588037126900234791133202787802904929716560037785302674631940039245923351217940788840144107289782958692518120951086802886602172866838488723358164637405190443715926884048365329512273553443232338164175310868577921167838929618103280556455131481149325612048688098770090391399044331166043408253134952177892677263494388456188032620939797635698719250814070818439296135441678114632512378456240425777928988724860258339133472980852702108930918730421424698776682000686012476618762614880788850021793568866458045608801380052962569939326979778945271671316792406330648739607660818821669021768851689673534116156245402274824837563761775246970437997867628878910143466111737258759380025211536010586536777567124406776198308794992634495353501457761405088243426470417820565878011650671826148000972509584713580216507556140718573401179455777191584084413977580922527728771027521464217409157821150381330372623469969601320679515165367549047483174888019683858301303851923003675453355628064254416139419195901434674916386746617571045562347791084876008598804997657782208319898017410707933673253248957911597253350084171878628759939802176116514012199843444350660382836961721630124134371461653640365539435355170129158976159330075926449651570223169452432736470396875965060362926429387602613574091856560185288695590244673883267719816763870766828064217597511272379132347870051447036202415734598236847433004692659645314003416116887185550455772813454010141738303129295603185716727087819989742503852297299014064904149745710657967554682916280291826289057631421248035755995025280502062507779107714859236891261301161781551633442943431589288606431184160362208510206615217158508378264877653987013177317733693259283607693495455901859046780722756527382508111469083341575967169601870985013731415262878116931891770836593114773086327257889826213349593952668799957582065753242464608039691187537563835705262524168515958810832341526616903796441764161765127660218760026943499471010893955094032602708038294902981118388936223337503822119999314437624806082242040765995485443130880562968329889465701407241614338894426055770681267737833650620522003233303352063587967144643900546268887703103471670090777553881287486677454740136153544214775881059432656812576248493166282978772993269114848323512094735383625443203891136938818392702130905238077465388714927556531987984318584801170195289687508026416201508954294210686841649959847653075485034528919832370645314654136284330601462613372537860464602107028763596179152605449364696490458790933208372283855173559723421399656523045379273523182545606555869389334101426288553949783950052905981872861950072187484676874384084094465158475797854381787710183410494623810774378064775311849346573590694652765434107991526725558922161220361420667936438025092619463165966317345525731494263167684592908034795838257487360754757699038051075242443887896172745658606235911888669441910084230465836123537010226863580129727176148856734487598291370280967747555609198522907898484896211839731019476344317445848362728398622251298149712752103154336039267179360800769146504161860488039438332359229890866917912681847431660401148676891658602307994474239291314149011702612611274666893541364244082417965528208864305079366519534688866270922519906497630291729502455438004024576134961020674280069045282037525099910463132234316624143976272089897113414779584674117496965216811651786663906622255701970499603763585880862719499804591071806945990476865112800778370876605086889969633813524564175855675745922949294707763693855931962373738802000012322222250476036875701629672259468504206893912876189244181789010338837663270667507966086474662077433184941112798721331900936791506274574416229125366399432561801360128839977087275878797922607563605675020094614704071105606527886188195321623441457021341163558744296450842300363105625873942535528521688681644942628524284672073618350534938812498327909875454323963866583072649589058362731963885421047951898017126043349102382875720829901865160260628489606352161000815361409432935977618396770543965637917926727216037713587554650858513372760979065756669549157013844550760174862900148635887002413066025047297901655932231571722110215163942860506773569993914724228658834689448641160916589153715523969925159465802557843739328820326355421744557304693277129826207463406861581556569057273189878500485584954530327952622579496570093410053934270161822346338216420141247157568132316610928444584265590226673611838142033241393098542078305055647163544528223301765013836414679871029671989921882477856592394864474670813477872241735696445933173817606588489923260639573438454569663595607402699517063989055034000850778719598103102914025830906211685440321608977909720282667774525681096686722288944026950153736550707319318123989011723484846847351048149307247301758439939283759843815732042679876033623371104248207492045846035303853868713372568927374563601661809664180574659629662670469128456424543449771997147591481458855912854057027521017421574646929220311462515473599868561661651661715819347848699034176389417538578601630301030703932489262171633705669430339637438474401797487450305606869279114170697796054728674515754273221096878602585833413792196174103667837833068160304871342200983130224484699659477785970406592817983033141638037392692752955807402492501570383306670669699543431569841949469312390470841128961389887202493844474368104178805927750526819172056462318093241474793480116257567384156500628231472331584419517373010302552717317323811469819490570359735856066496815139720390992269456515798351665675950901085128495592185599472866107082601863280912787764122298409142995335566954956009953920235415821822019311658081092599033780680928488195762067161995330334787156698468744055017905517444217065906872413651013204431659813325979255305064546875288709936797654238349753380575257464695294436070512845942575064564718450321534872287668928915895746702771412441417488513239929871738781640158865663330212586956545048805556181777293419222984623909293099240886586982546860821453061277586990156956530697819941248991777282132395665060839997536374776894880840390953877837709511157889940942608131494025306104100425303003581147455354692507209019620686434402478639278871772449910086154618753442747995119661053563775122208364750353256868359162867070681808597671444211280667774267584744153458544931627046128957966894525298912530301665805311434576963368573009716227886530237307695753008165082196853069009201310683083114637716379069526052576772550131681431827138527301120572531365263327670005156791879139986257397681586334078663511750454362130626341608008013225938020297893572049453848790923517597520483136270885072656708987654565538653620238847653787580107671593391291091498622666553102465383497238061919099024259532939378546459467831188096228570923603307600235900611489128821474891063992423986864988728880176157351430762777562519373032566688055101179591429600711153470013950208847056741098002502179194860662301151267486480411601295106137571094409039757765675461531134583919500156205923909208737916868522772652544168876121324528628030213470650045746080417144571069145469640982274119199497823208506685412258536071569475746746557569605004558052692925287554888834932627773980350205604662484623208448951424861598720220821756665357984028257526952147111939270117758198619550723265381467581181500449994780017319751163959997971952481575311345099674577550907326783183882795400157413305089679565086151179422563666819967737916717386111851298772582301059026852596859142492435861576963403130051056850209805024632266901360426500886372468360264068272428579528338036652556076465014864804322272603162627920015603694995971410544141662222770314555651997734856812268243796643731910591411414603157969965009880861874265479348866434315736900082946560389252898859015812850622076318073154290233665402871584255040016744524671520897230965492078502851130078331691825714316192988421599187952788624419010531578878137547586229171005367502770220869424722812497681812914185000816387371258252191199748299015810246275779321953136478652426905101503840705525223449566258674586148653218070163826672891779650105092770557008652617519584752265602594433257099985516170385985757176899454889175548430603805014070275035105911062301274534669513000269540805405894202177399508634655069528302231609622876095127046670202886473731059111776206319933157209910090541432617619624721041541768281485100341377759942221296699422923125211083790842750540866059380340943557891932922359738110570375406830888496116057312017138131382128830341800928336873047733756160385946394654787365072457074861225706923916457887685777271144818585793125561728928345097318977758912058947167913072024742034709353728725312924089016317212422500517387312443861065982893993367960210116482394381368433653281213001309392110336621308546868773034705862083498369788498986505564621079723942349231667343399037823564528373279396844542576022579028435451904761703299051328148201090589248119807725625760241246131639425825109106049352502411724011022413616124901719275406582670529593497934786519689678819249764869643065269435680542717497149198879463850165524355714300128188589913831196745617015649085589749608690862474850230270835400493196992692644846110994545416294566685096307951447674097923902425751333941127655957776528900241516759275646608017929792223373100054382767025492710750902012402943332911535190122188415046522121745665023353590666677406623300544206589386863639816673323924481043512516308259786753845749555973119631009266093598747957445678338283386661956078891463742618271349675607824736227685061022662473266156095602934061199569623772138122599920568638473419292225634810126734570149246209965079443370891394678164078309689742922030399052596757071606404961412789886275364801551859806050044767417828427303227326833110882955770127317457084799189895321010514179100982112461666561353681134855034320457915567134832209882266995383084388578929584942778240206040132497125817173572941600781490030355661855384620967251128266195209151431899867644109726308755495484314581912120388693575936462884809066436133249102453946115137514751225831514736062996748934648818097200103919057788874051918612810521378904772691862109368519111569958933238698643230383669502211917207340641155851941150960834328159982136426507572659165747679672148244915742430261721937480374785010455697569519441756141392119265605593362240859882503484055369251970571873097967875869583002882600784173503125041109988531226927311927262781576428551437267496590024186768697619407782507331459037864495203566728852137184295085973442515641651083324428034434720199726632766984542959597314144245206359464937536178898869893443109219674032336741589147324234167697337670028798149309372610650806997189703410697478734463930575769786017375490640861765436837811659377566898953710309448506160787920112535487887675368346387713580591577004773465588999083435047129924653460645634771185050224747800396364378035371575407792152742932875531109428431733388750360658049814522554643244392910095771583278635270272714840731656976737579761331070321627601535440907933484069664347384544376715623379531978835736449288573055073598630399895949684337059098019034679458477256412081065048284545803253590005970002276319844167454290860283160133468489203052174703014856365494821902527466846237670853126477200318822763536047317450720696336811094944375965061118749860690293985416354806276380683850926571026254057210360740351850535383632765329829303655252802502697658113318817497350484350528432090186365919271664124962753411205924236870491532955583817827441287818900723013307783516788672101523556823782291524375123035259258915432924101117363685414672362112975579251968626007443845025175193820914801827132777716428684007997325929727203375897081958293208296689054201937442364508671609992132604985977744256168945085772050933335534826592492361922398178759209629596741578604119142452268361331890208605562211847286218104789773818884500345334485982398346257984613585758254078124411290669124423005196714512914844633158881457575698119751599859289601034227316555496429701928982660063179726228720951819274822200039793143707946577171558576386807197439570183299942598329754864125524740287859454833891768853392260919300776869936453523278010426243922076830680260097681098725901586856547492416842402131948033154952169478082045998700984329326888358136702948758202939829707291918296870382833018660121860819915644634375949936361263526526856151593861764626182463004468963899184254025519481589141647868014328291274646845564918092126071812573753463816576509437820337362588607288756325518872199525572992059290439515745535286687909008794986474521384136313069072459442679300320682539029553039057321715854736364906015386585568298934720277817253291867064471528419557047762328028173512534228599013119079870383659880037522590154969656270443458889502615469043586626171136487581362048605653985773124195523753382231191208304851527394312126915139754637104510157862137907077117230037923764010848734915577606661460419638526539110498241239015819465059957778561561368139673786621353056704004227532823330324358772471874751318030415748497407573493748573518187203691962729433072559769690019462181382965744794987472722253622917403752015850141884946709433900800887439121715427775617674929171919712170949260727582889243544733897274168364912239795764677250573907268448453494742914282275487342702082756684640457391521721455172130898828018719724581964542444317774554825395188512108995116405814021126704458261815044042777103129028460028016041990957776414537414877176314096691846821580329257714187314995086178244629841879596491571965480761928961865149639499381732504416946833168543432849535202145614851615397206785328145087410866823459320401662119326692830720304284610067233291249592790625656045189677005586764850476121425624302330370790562145843435051523004341243732987749071252790855543007348542322116121561956681661072685444434111426192019444630013529244132527161572908348800093389738958999801729317633376940287814379068654509065064975688809604135546538788867615972384269937455203786859159979037264291460248209845508093681517891705480127293972144343591962366250654685368684356346370306820089570174656043706367689931587999738412845646669426159020433446846035505250604018355250899265842270085746103562482419033797440896282420607253703174886161730541590973979725803951142140928107165801420617881587720929746925367174798179275755874592540716766230702805879996840013020490067668772088171126075686200537791359949334991151580819712792444433057329578540813234706331861676623431233707172874392829178218606709957380814413536592912274533753203522244311118725652774056286640031575528650437644669538007779488893049743097064051368993105766206510165650101964439401891726838998028889876930447663491386382993396975616217266054476545608860336739398272834483525630179154245335357089449805725612832985018161088450271500035750531820571252935276383202666429942728217819320268481383852993578766548877482392943462501480598247166623442086293525056847591708298925155477423474952594181017382968465066232645075503165673953584424386514281948241997224701353223795253671522530627761569769215877510007367321685525187254840228104343754322726565866036822022945057056582872323271271921389480601437167968065592596251065102195249681174112380618408477445682305340961196906526787233167052863074378419754938399246215889991218566886279003564257539485995885182338437306711431151639393102222424896115156259066696916398797333481977966440207259232766174055368781021965680132581151561732577110019919317167749195422070895497071191939432705606595330330738566987845292780319304122733858672330391546534643013425912946080397591123907625555240984706195679797092643092290978519621682441532935688296726635783635378318398285533005704042295343377002393880802027964066852488916173804646508644518795720945159832218612222555522324134462928227233477214242732441948912421078315567162019247387748975435811651268324322068533618224186910229770132946232682124605276058543980750458065894354238651553991450227503074363481579281527442876129599684291788125662767086451694193810468619186404203449656251292761753814046573331564932047534623440892361539643464066094419332635247130735907419524948280192056056601340320257531795336323417425210738378512639754260834102196054117903717596729380681357888253817609752892765146136443264358225071562802700689999192895017341245446351540256971886723190971491928355145025990931112312189507929357316186467561558010055902571331317418484740385348021861268174928097481370126007958955453588061432429377317372952225259708808845507188471669041369083601904134062741145642863098326191346656397754249043043125051700912749312739311377076691527733187683621719254829683586962461621943100010213415944488403496252701669262119051740984172704647243578019556496740826773727677807268796432393111070234353339263921772477088334845274354443482986773924239009491002721772486571168120070828271932543869856440890029020977447058098244614364128577824626245129349902642698751165603624795681104855439461674817977390816950235254591133817352899003326465492649525584996608011710973228122150548059773302428094760261338509307551446369021260890987449855886286543924021369106287106873690755993256442670616619898537926910718250853446781763292461624617694800460448695458236315027563121846934514666216796891488929172584494906830084307741115515518482340585221731179342741908859210630792472579995754554686795981710679748669153493589984986288055997714266547549926977097876141583703373717274653339380899334717769270388310318778066833988326781398171141943187894917466443300491905641665706593628607874267445297796268359788337919535644211399711912935438776065564726140198833752236807724347590903776937780490566573759014592643321101777542110456487906872542340625888549258133695558854129600963051104134515694409814419090797970858007899859141417796741859123631728029157013661099370522325501586154760484361613454600232253424681118010595010689304471702553900111262565770639684230414958345718289698370455267225329368263410457416059917027665182233141600305686639676120642349087992256948307669573662661178131863546688635664238093579732888761819654891478603756360493752363789080303119669169622099781492045749933683180621608817622182313234222750767452879692634663990233852590740488850804301830222807358644725746936628686119139926710988368227915420417381939208803191826282266486564363591018769342090064602271565701253452298991443124144581505973786003377585150233174887203256795283815477558878317501072323560028241163082308435391943493216092809289075814789868470174937562498990282312638797836555264452120367121545796686209670132916516126205460941340501882324950432336186156304573091341760370244011208147839239036912162446093124875667705257630765151536417489287239181656017414981060859056670265421651924453367476374394057706391776421165438439468979230129662204956329079139105595053451856761577680494047156524287371205525219732485435940665317153611033790183740404132793661009498234718785479913391996342945684108078091096691790630134702116326854936778372986106118294190474599676410920024749228289719864347367482621440456427445193368235079140947238580986810842192366477177971867064417754614535772803281154702477353146088120629077860329831526161311506972250347161838161777177502138843255268346407541037687450523957524372902728783813970895824946259029076336797953806353049196762570767390063675908237334100709448053002713523539764405682140814791881970885858562539790943266960628952881385237379184593377563390737272682070851964754280250618274009301368407502680951524473210581423045516818868132499708104360387768384298319888521670260994714920074265400241731922142042463184172979791711767302496599027485976553248794285668191881290856162532665418366290732420070063651588526544864274830001033964322430292080496901252690388354761023581116263292994041247253008293550575204847094639248382213306723012915270341665139953720390466470181005915587792487579639107041012974205822344053013390383420776579864426352497209347701611812744430872648985395532458798488385179104159972435957302647815188187057029141988774207780746970766441383922000470316498745094522833693864946967023150872959889356199008536974191940364917435795083585722117542930146319938848859047885855152956826927696579494664234814362793418034724628274614744387644466774237624560925410647982443762306026383209060544361918859675027514858899827019544961481446403840270059721730503019348444035689048625759111366926305706810912379923430831748061892937801328939453120619698992412510033329396180084583497656165136161093623333486767874118864574931950570982755456689484336060800655003953234830354037466014676943145403636962224217987938969875061843209769328076301363225848674493648784224125133044900086245263670315946286105675978664383236616370657633409181960880472043208665283748312227746288450932428176735677350687468741506057473927725052646236082984940566192845865236708496823714483930902112079789203754815564144634690877469365000299185280603979706390508161680926850512337605307646373885501532649322076558091692788469202898047840703582544468426336246436804648817960894480136577876477095755312377046687859868309575065898554321653689761208205798897026396362546378483066962229840135921193166782622399888489247573735721018160327728708527477018868816333496197526632840188491713650802868279348412499516800786460942494225545631082022307584822485977936421023362290871622898825936942210176049525699633641496119394385228719242490369635644827757129981313660399874355751837277247258481447662152424094726978717332594434340123763817289877016966736860200242061180457356322503151526484198177596958707450698558516740619200726905900791304515812066916299845587925386129068972222166297812059146555016510153944746164904678055322519727177400592959603924336576821231305253064222651902987175537419309577150089318730849950804425536732932369642359614354508107686565399245429992516530592930652651901638907688948526469832788802401302150638886055039095139929181086730342054216925110127645947798703356711409443923974416476326182509166556154378359707445121618978230213080406927556126260001038742897656589771508917292884502854213973407396269091419156197825171089322733778706743846929139861023073636592758801987796475380676059842112666403470577929313749048170819867598709118792750858647375089692785316784397496281472580004493340523023352949394040491218608437911205039616477626375292035231405895342332333570930778577916341172512304353946240069045690273351828375033414857613880452834727213847525442464992596180283185179019636039258395476863785826541589378073921534153161095441399756926997125108283616363000951584771012449220274022687545434734602909123168093180736137301511731865902324615361610955514164254008466909617166918946873051846639367308776677897452292742642590460096440212108797401812559746761275373578324855340480905489599496136393350883015045375952248922002211190450917153079583459996776633503307399958936164380021354726355088353882291671091391083778884846419341418192305732589267323272110541499602854714850480738853290144485532549491005761697534174270570416982546943327149085988028770775044208875323331481813350994341564477044432652551266953709226272178816878909907382308636566160576981254843484636221917715776144754753203437808011804259267824425319999339800268498628652931444783048664878176061217265825208157150504829846053021712700520010952083049318898400071570789523848591963517736256608652130372721322345964224132412807111609592424232657375626188725352211614187646380382694684268400627500471800277647063707775760225297834332391133495023973639606027627857041450231635978888568118678063841391788022169131721660732800366642277251045579057909733774722979222800230396396272481091517729206814350478894713394666008409902714227211645585797259325033403339109765587492072068176385013680422958968082543420756011088522918504059800734060908078061207840208855507829095415965650617982840502374115038964236122592419835552038561985120912888960909222514633836078828521961391925738409183168806880716774758755793720314053194681522139896560850212397821415735504705489393515604843763090909303993710987775283220537225709573701913740119461351891861485038780440608531551416451388376597961445226197592898501551386169399011327403126704723682499658743428705109979176554357535046838426133712133018803381067150215514142824797732897588922106354453761671613241646276583566971568164983017841550034779973725186464280085642856784955909361163254973730905459810748041333294151038921556344920299410329774056078386852337108744422083909124117057303631310817895619643665592585652701652519843937131985737335296500413800751536192541783215797536864370494977533197078388686815277039451299465715396266348666816725195697354152636338802776325874374208001122499941641416338007481500718013856346869628355671028992347056743542540647478786427777086477653142572788889143683715136487430060508692514713659959762650102238092809170474663819615299255270714562485979935883517760679473958448929217935157165995857376853285504803401392536835251139984879380050261290106857181113774722421872041773889629943151596486470630426912919316618575258875855374784728055980564302644065773875769190443078830563525851021845683640684445502262443378058322998872492471853855318303053655558896522668562990170389959668232982465448309063937315198646411474478409864848055071054269308608213895445695844160675909649066292038386884290885846361524042363505715945356639673710911110588336562705806368656540007090047654843197409981786399240984371686494024507081090020668731109843747790173786778353128586210460685501962874096627926931755858024451482998470957785540578371400358827994208101641429029052679462658136295381174471090047046484481033958469083700430599703217875477197791528543741653091676710040724135057473275666792185275634658008134538666892451485200358441526035225088770026139676337050995080524555312909679782727593650308652405584953476132598963538391874585938806113923578612921329732402593999538823053963538138693966193159256716691685559061560263948369215120748919272347126978127816478703012596709504446599407634760795927694451689941447952035505253116603819315941291067203545337042433951378797681003760978973118476208087305824483465308282018038686783566536987713953569293270916474600001662792729259982020150373776045752955890998808735965415608499790712818500846056156964634818613796083395768198512382845913794754180022643993355106985752725862292883438577233925488691501122025749508199820536517065526435558399056990261694990633818703000551753031975163797509266165900767021558473021205567386839209616207965563064791328190847902282391739255734484080468191352288359180460830654881080881672151957275875751280040147142696863614933167722041255416163972446306598032542929924794958953350456392677520172077385992610670430467263480845758661694458503496925629860312984317277582778365189753988650508156259317460527389510981569861859629243395639950573707043578853490601820010761618447552418240701564087052581760075357966853588127599854140630117920686903450054215738120106988289315678948890143811807693034287440272328283445724733833901084957144244818232990112353656432898903752485224386032996467569766847448365096580418887286053274812604567568679510294419810599976577718511782692738846976508699456885121983303307591126783537352732437661426918762759381560469175953741537605140970050585420084463085109779840299802596183930710060357861765739659120631330628034688788581527273632745101639049067919216760252452732862588165331160561277129103155997999847640244657702940716508877288756320000509031107099012432951680761290858288921175433208584825834673945385780842552018155103359668502714838439677311167450400224924153023216120187101055441491948762818721514066936759365545855714258121018273358577602711004647821747237312099800758624113095665104435529830974439046767358714975437357759281075703201758728557792036921466236037229815443378585372898938572628271727368094767286496940986842874657184449842832788838750237060231919386750365013317747433388867787802211266791656784507362247356389148079510008622032082639469848300392974115059796741684127622215482420425723180714360198928741919716171166999451184546407757087737977091128153077193836298309020852542978714013158757321941449212913916712603463308744008030168569517298175587970642359069055918504192055635428962308714959553249788016270093715265696340575197258152227268959081478153541622266220709466403377956038590040754332915224069263532850075457177485939501043092352907957641323594168299230824650086078803233490766541086599450634965236932123144540966128626189901147459335860250645285188697837336246363419894161712497423340743194819256907129054868566267913105075186595379971438460755103799925906104214522397666041328583930079112903742597583525201273948412747031134392067362322527902996066764245576035730295316924867713173154235192674707869418160233937987984054908322108918971680609628953312555237435728838409954274058957062494569242251066017099451802373733060249744484414718393941812780377441081498011618336082198090793107641869739838840583786184055523208376965566198721371085752206092228487095333580660797787405041655062845320303195014456335289378402935467498618487032574540082091996537050326946313812039999798499721036822321893999744478779280413461356314237747619958681830520960470002498181480317701969865868307365759531388826309119608729256537992248629133972827957064408348387304385649667469970923948947546165152231328638868535197630768030523925854242347633558106603042976736203513359704152268361421874629270250950960401278683365993884478315108152669090063073004856927128521004342371039532753651017262563508770592936331830987943044826342840798558774047529381083995979064184751871762231525858685030695130537641768468481071392180095946268456656955441172375929992109532511961109207648418185225501048464765347393591535839050741641285159761981050377904379129531549231894711069982938598133276402841348852308411534924439583771451535461509157990054650465531582698356101176416260610264616746977201927410534779235260542536411264353286564445634966670391977468474216311287931610903741994089144613084976130300228176759125041123106042998444365625381318590504807546871593366609266167013444993820597683187025159633961281093860238280431651283531567846589495016698014850182888160569669483517196571746753526620930952736947983249724307106037863695426137326993167413616223423420909474309280864864741263820499416645387458525919849184083808470359399121926901047694793291631427531449354853360042104528611494336210817630891559273613525485911891948866472736121112404155355256032559678201060678592454731516085685792410478883950884369859653849142256873880079072755905732566007656832892076800774024810925660770491389501291121401959933731645633641637334156630460619397306124707577914692700265747835675161098693903330501909651812049951877080247281851511834557697544956582154158227667911438625199952485740414030553214781687075276549464739690667144942181758043078497858140363546996498858261120162552264222604642661942221687665234718403263234720138628397368976763511270062755060522073679803169222235311239131063084277139125764505487929068859408702293747313758086718135274709883240967853750791562408099024545682128485891693216149179038836797798266656044224592139112424289472335265361060116576036859361004199764541434729729171293396516895620008271414257038550274277660034587301157724520155292418081057142639035625626158252933593340627620956238623533460780505701601622039949583236451627441785497240949862531905438642115837172151421258451129549880099164503387741087632080985376380388211475310658993022293804959650770542203742943803419971910145080311337175659189366024551320228439083245494494245483100220034722627794074156353965481665009307297528151867000069192837215911749545466702921062751419009073377936115120602943545950435490730025952175354705511050845355776626853359536005800344977360581876590270871494948810855265879305221769146087539361991990097335936282195276560587278194941166932195820144686105635098423853947587127165930292304740121668378731959649184487799780539014406382187548272348858675310979885486115249043349565947033519611882387862957655037405229040666674200591889818183413874642006797703981927722905803580934919582440082736317680485187182178460377067403198703320601199437882129424825162131247143753743776756400059997271526187300714323828450115815922191191785928335803800622044240765105029089452355169757662667563890284515864176337452165678344353634648504576841537929266270044240586606450889934644990160361010910375868950189990721802113120269607361824091029555479903281277985788526842014144267348226568465899392322834446408843679183975330999091847648788233642420435505704199986889377084602928827928324863848227076454935552923833222087101186905675258121250120434648421838371288846293680824063784369840914161969911012424339147847132882697031623194473081941583656406020236570912167607513142053061545619655702976319037119085139990278415488949355770545853949838476297481707078534802591718658127654334034558044581787162079018084788673258602639227751706193111751406165469703506656949082218377144377369583898917082780311178796331400897016928794581516135702444834254396246825185539454539953628237564985345985457895867772238472608756779353364677999449362005647036344659844148092451591676185024662910706352618074491979567875179134488957723157436195965189476829355238287109305389832120854130771290815994164382075281459437481991237480156039120559583917650634637272279214363450008462526323638036723777106155627845014216308592784304226858958665979166223378827682783453708320279259415199573194828710355986520026402512727815537906410145082772386586085425445740513796042388938369928303099471226494365156924792881818111176440891276670619665014935548952818164090354797428665065951968145032127874515627653542104694210967855030157725624318590655088125280379740914439319140866309540728585077476849195559109563118917080567357237423002083937527235236265366116106526054139060214910167624803546002035368348636134645366820155991623625096906368286287377952524975195513167043713783265340441192908846135367410132144454684182082239221542717411982936716036006702413892562202304948422344337474523837322684588162179664552126410933434869750870310436152234735402850078814580768593417727909144555142557291174090309045726764498654347235282845725601197097709914991529632271991497614953164126782282470344432651618555100363625464684982056185458131558315916686993313380540798682540896501713214717315534516238930038505984533752534782938950693027845329098285792517956989560194666206809557601212562514052204056005216473125445673392346841179725637250126866245975546271876199577404256107397903312088801641359097789617863903456504090633631608558165829204615926684126720485821591225702375559553541487928444326229044700426064244922340053632134961964653041315979591350414101239085551404632803572957972643171376493192655583234803181972392201037788778738307780324483452477811419643494396564169836372355031218434674103358045662469507079929150178986367914719758016696473994738681735981839786228974841645856418960181890248677955017632677570788327024441159696839827352691854021474538754736107128005913562328235204867292344878602041463705575683797156051941397038291413848065397852112361973900949366920691111203394754573573355927789675492686057534242914170656552697986689769819436550419933157853241851604524460690085066905771907850069568839796631917859773938677025995451952291701678765149089568640747048109748322343558732206001329620824395918836811033002503432286881076060625481061159253417539520282682022795540593999450704073880754579390421576220636508135881588424341489484733945481709443716928466865791598830109936413856599773527493475298701951191347895263376819506581357572215360690539571077672954055707650957961257027209341850171965612074703635681027853193396094754692759183905525341295059701724829961550704679456557946750392877725241032824379825512890366157035090600918368712737710475924195137453268133317914142343335010517043711542385131202677622292642441776140137308638524247734673224116494318314393502404867852584514663335828715544067842909736792700783893684612493066259410873387447617084081161130114151048758478273253926518942573703567364309571666389417320288156075587808362632718139913826182920436986742218883517808150416459025937820237229713415322555596003349820769488002790196023526718238158281916363455331272908350374117308446871883007383930163903270964182746953088491180292523046319857147417531280829046373634733616349910744086685688908001523636582424145458464423353430512049783424862826527101124769387013789653610383608282796151816864561383073229740049998448169978436675917380368826828877168114493423427427743931878521216608351781189227951989478200888458046467978735713337285370750274290686876529590286899515122131029695095291148549649353858561903138507967068499659694072026434959579025856592537993766694204009256605358503014740361436195660660623735588718923001236605113093800191971831983850586111151558137317908481513119318576970510116461071732247198497190233441768840448821699883093760087363193310991739464030390056357385394249880386451322447609483429901101324658186575823780276708614061182936597223088298370751275948583518266180050752849000846126060411281327872499629014282264503594453158454168502701936847427569868161815421700448970716408043797996751073682210083772866919082283982110795643093453607108009420162818402568645019324593910215500798473963688613618603586467069607633036212239071748164055021123367173412157854823098799417207719602019917870362657805339294864770882926090715234753168461753567424571906962550187747153340865042900071099045254539669452123607849928516341021113104299285810906940345212346831160434415835974867155220876188315170953637756797659580231920566025741090623928889842807104530666455519417066929882759918736868345486834014745256413994044002519651218659074197167010013906368079221428029217467193514470462182611095787626638659110697123262448384785432087593529888566476680422380918905185774400012475776252304343392751885496068561562976949953869849129344458581409211955750209965220206201564094072200755667472698868009558992615223528483405010569501786528314355832151025970173411185866944144755999585495942839117626869980736686229443290981003137473130518254393012923685916072137769801707878567751371767283994032200579837254083983581065053686817970434648659363734747195045807405734757814630786070623700050839555173770885346931797062618179689614141837804081175620403363262100316823601541277684371450730973835780101849987846763891613671141436450840225683622981833457341247617111716014319019106736419326649192315263265304252788640648688425545540016941581541401472578258868414701032496545799218107093799464002539796938886383583975635378865080584754678220868769537293096598212982563552256976944186103237995864035220609278951070982700769411673424406311902900689523891573573053450411997062384585422964911679071164686753855483471668133415176804359406005935178171593964242396512109398339548321361498989115577357934680418923239079334352381244758504442711684461867557956217419149785979948745650065599848166637997961459495170508534337909581659013449779364873669643942959193285971871878476234739522582531455565959209040812739100326382178103841345707538167425293858414000730896886259105679766752475907139250866473357340219319865055441216654812401921553135605827300612790233183178419620119752782123131725283864594187308589892069167995458162615623918304993385047992961985788041437323768340923129780124957598192061072801566609286673817109313045622004814612607270849581629770345005430727438886396003059518335432057161061231797760016996704904504177387473663584661649776532700217724918277424735580260184892224900435072223735080390779841287839248000165703360100834499346150304485133260553253655368852901137080050027750303650979644515378173100954324014459024222248663009541827055066262995018688189948954976032841972805589924418745534078626819518121299620003790490356777136080014757746995584244242681096454097345091493519613496608772691810006857755160335213740042532832227116356246099055140982143632257689958341331056362767053990602880451985313018877800196911972631215323431737798750606529253658692556906570030656079138507604125762950165815322387922408367435790517601422794229539567345369970836443647004282602039453403139851252652257361856368791707473436104979227679779746310386107530208263658634481695309053589554883532614889944185493373122336279890358097045502977070885854089255194205809337447365342319650173905884025375978593181412108714381170183784822765629329400504959823466091916360789948693760043999612926192691885117301983677997474427767824057681588962024200265004344937166618671095563705662701521489775998670675299573229208775255928616201995787551424949701800579379245075491806349801639759472570373495814364901675745816926855008361585519730765911031829436566698978769078445204827966137102825072682770905997786005909549317985791435194347525168801865942399734064869247519165362792501405323323677606204847150030627474835628519949902175038914391937842232425438946954627597257592833652641207853958686142817490563804768373924211902547661080099326118920445869741063454327097125436449243748149472974888746467991615828007417322085450860446983626479029697892340323337586964109684944760583585965782558229386082328125613902040484573122996757479448447760376670531338669937102837779823280356220244805985928944417585440610968362692914189698312071043318937842507628292113540375046583996700168675928679486527554852142129496541466787327712837690329472550621322316377836609058679790851302753044297051905739421931497631512257297146317355420126639852123567879921537840413633137818752554006386932788622717983669278565722217740056931790000339391269902640133173794922415422929561810152715205374102483336851369919534196153750457716337693508761276072134483447994385135179677149485977156774794158881622953167035356876151473655481213139329415366587658128842575298829395763105548640381953042259155266001657287632684305733723481503687595183428758423162272438116990822324606184126443400449853364298988252289015593458311051186493044217592391280484467082814524175826933730945305256591891274010198791246430605424585085627646114865476356150924137115578770835196931337735999258439949581603281316357069756482697882184098501961215830823259566171699713773697321897101011118361330238991201506660430499789809223151649202354133810621594516069125907475311862670050063689969989838267797401198910676808741572767271058902203885982816833252837593762230745037836417189354441198321327658004217748550328524284932190274896965909244448586393611144888346421792735161802145867131885257203161053591048165208556541289191110710001797536748662808817700151332675137565751232373086706433253098620548744865295277320495278817111337953386759151198954083627327251473724543212001535198363157581414002878689668462997145913550503943913573202176719290920004139823438455919014564396846928642986323724725829255209692217504124933698610230602464139617031869869442169038253217675691375917028224556193436448106385105724563891512952995123102596002332155241132906902737116126875127361370212471565213911584447390854519733745035847286402957507409834564678802245010413418328398425390182548597605548343659762221741718237123282673178671522134791431700659149215922005253429574578147197276543180522576019233708831227067388698215533575308475803531700897859349573880719170714065761542930266894621581070272825619138329396631960442844850432817039376178817267902030146221329352181965757916213841260430719219579778577821505451749228786146915894562112993001308360885343593028053200580366441252322021304325586487912156734816004957819842717991981623531776794334382704508068511632693709324283734597008553253659193891093535009117106542922598373128588932168721836625229969792258141039335726135600156571739762685563649034661673380203768032119775248731594422132857924692726858682034568499534827063291008066114003522467832172521819455984860509778474554516830815108628034638395686763455671752637671257676483941841175029567889924982243984990152029798845298442792310705195940282593038841950640529056415255278308248180227790199096493754900275963929408096008409727140496391850937568749318092035567618154940233086354769716703893506973075308996810403531724854834644672747446415526478198406253348771819866414700403544706173928982338252510066673983142483487252198800505966287255997210983660487881264346086602750331265311626588467032406023084632328871989904776500066754293311698149540571434428361613552838512424908361442846350679026834198975679587255553536539580407947115092449482856151526804266313272075036665738246201318561931153363995780064149686960028164635495171360780199300768229437738617944884997585373044237297202413113403630530813609891278829120237862924982932775206212058371701127184500296208178794173769168303969650689311132724473825184272192537890419174941149985371148942785211628874480054135710757169832798423115389387879528428853104212514111643131821591495003601485904798643726169978149654794826900023079359350355653010857364837425487735138619318298248941795893760321368275859803703165799964092357380167921907220818366526077326024711963653068528128040958661188899767610786535774942959864920862096882405212032137745593598782489857258218450837999353478381332942400543220669662678211390231778359851306377776728898312166528776778597227875960392597813598791991330621712112632377395326385700871065327059966189023124972009302026135792255708134852255585471611039531472152699601831683464732599404631857203412500570380389052397154167712230031785417576762002330675570383307818423264688482775241001391466501925760856952057229827497576888849902084816387134466263620141789205204046014803586836199409585490237209455347838210658995388563845136376864727496196099307203706335899650278167830710885938154013919088666080936246069784052444335733074180960253551207786169320966410302624902071495465805354085019503115325196445586991667088386906586426556191460521037769607320727717368661850858043877256425202718232735379987696160327010649354480854947689072319222778613339557813840718285525797754488764923034067913613938549023832108785320928186395610778200953371964481504463107202266974842509337641376686944573491943564299959977927117052404231709328482687332981597601119981830230956045639705002019422284146995875647519984939923005155319590813753536555270947003487854268458942844793714146884635186845572922055724764052205135531483950393690476720826732829368390621505755914173251685849007290982023708277210478707092583974219830244097241538501146702605682835904060202658855360429278300880054390108884045402550034687342594162764140054571334793939054699024404310812490547672585136814251543452847098821677040462716996590823581065295221645558428912422816331524104483927147552360721769952600137662883557489395046290427897396515816210170364788003788355681510592706765426411831118729115087709059062779147120320872393225791431969573253734011822828991364426816121361236865612394923084682762272768621771074143851283721398719154238106278787767817114463872755576632806696656008506503622109540114468691088360757403213173900470977604083832440128273613812525618387726505673262880374451555904338021339005443547766448941757703056515189218907045601108637228592069446651736965962118978475369548127032285601635903295744403398146073396963775573168064042059787198726912054514605393211614316794379410755320963234915818900306329145245410409997508235633419701485677355064216299842129512824450100303295707001795552409460761863907508324219780572182921430298278949226300525341375231533760459676237141714702209874795912983509281899239506887251116921340635761179966385701542210904740569113481433398972193561189913506515305881922061979279488774736703972110214386075130688879688347429433869072093192420093277968822773250298022230813495845408045768741719575469511598148627324545617362754858630161718199137973765258964042184196727629258199742427678438507280935983156013560772343948126390456218709866784857093909899365835472292624924626965000266224971885359043097297665113521510006115409744998637607145657172121888587124017260095120668882937180726059981048224343527568868738067094188453382416377985647825590533507691862576225864378229906214740901349492204504437831031872247979409763635123688262223709728924799219827667505206377330385718113461519876324993089762155119321095101140376541602655326045925218573289303155989512530065004608726912320348805266266041286934071732044887941432564241722071790594774979887700143401725049894857319393351171845743241277113728219386311619861588195622119045693721189317287777521778515717831192597352890330442079823141396868376860070882484760818727176230105044616750910401970376847795251645599532744789557738045971853621963137693544132557334323076395370420227130131886916597894596648288382516243806504074040711325979184576157173181790919454045401947800224813420285479480281601376510946493761065938288260868399460117991296039247040991990762090292164796133200805950365287970696094699109058541985433564686644619416925684389698413208710740367632431072796460382264579404284558129580347163182081161127514681474629685188311031698213681842515288137121351000697441781389813893400943987072922549202326292588491890799511987990608704885406171099951176872335406364740830963125027216304968675833353452935691343703065191118777777323757285476136623435936573864593864307079377656608208667641519630687608904438385727672933508918050786632337046188077927345875507374908491426275550439970824316231183950904221931771425651254978375247426635310901637066915249144069325381680784263500024917371098294114002481417553769444607931656386097919166959251160829931071076799202868327332554210881539118652442374898350740811882463563189266489731759319213522631437572701013072194083536711835018078130690037786786798694406397994838334692088911278278918511933316164367363399414866109723927928624725076630358172498103997716143504630890562170436676274775155813236836638066656459176101895595586479773232173122952901078445603136633520274547319832591318563984850624465329569565889993486617313035930585115815875558799874769964446317829341614994421515286397301000766571109515221955605267937793347427615384424605827985681490713408407994982251911945596640976042814829019696273181704810757435243397816524465481927218061217445058100315086495494362402746629627573889649915810315011578672220442271690122671553768361595570161728252307331636838885065640976352353424732876540548592951627757525146457172318414798786979922437951604331565553116310644789063794666337609978099324421928595033117918223413315949271089498654184908849803688278986570906621935737641644189081314798001963000814369420742749056013212427823473784192545163840114683954189375558952789601868775617700433303964196918245541364388717802834627862295243836180125545134066818067333878692326643905139146226068909634301762050924847310451457185745646001254361721339551272766198149315452031007766235470709928295723447208762453835614928394133571594157775666783413568855853101058528868086880277604543180298236593759093311927174933713547558542630448852348098691987214395417111632899974842529612016529192414537656675292180745742011342737463651999140418575357355793725555183957187475141367369113725217714676689368307909560166007740090594375665001149918078471980990886601946891982112682221302921544734785947376612035312759208119432700694340043522633375697054955543771720021060753794420429429715855895246943518592511446489115678798678507734808571459617803757074469293841976696215408646604389919737279091692117791945906918454357471407101727951074381295095275740211833825819812792588992755626096029032433678720412401159139780028983297545139178292448549244432540483353053225694395458944462865195363699950824072059386273395487287749646068647797900225258702760199332339782208988300355740543029575455874675907186192939800155187968036379762421812847572296576296014529121857751642767086330325144639372383060166781241520576577183465084773493804466653925580513382267903399421487073007794104653630109361594873654807052939695380207810913894268924449734111593219917169766907248906456479040093049622100561770512543500715307538932524065919437872457041897190517608187140833313058176208127692618237456970701219641391458875659910622550379294785415705207469490930910595966112622096865372287361906915601205293299244859892972747248325472901700013764166690424120516526333331936256431320922179963054175013640485552335058901463419994243506213170519993079182573466300714672626846720587956234621963493023282607585799943282860083842590231355899828709764977128154785806491410657136150937810247568856829015177491484222729787895815003250883902048323940734135444316422372471601153195903892231508298880881536542104745017355681147257012818591601595351886652957421883196280960140214217000066776385256798129115516742011276098333326160165181733852336881044448516363454675740207586306391394526636542782252885355336298133680256205310454498165717667386334775979276699899788526821341869802936359517548988267201718089982129792678453404604272366406897242030381262494434821059678479312535967847046668662388138169922915123915608284366341736287523470579904050563430698269782760560753464285497772300777947397941034433241770506875234950151694043587892911872543349399027756824943648987178276774466783531319854777349613381841435027465694996762041779786017173527098553608650252990178187788947738149539869075764270376374412816888957941884889615770758044280238472434244349031927838501408965815255635767991724433994064856515660817857154030277089580305776266858351130440120234780312027017739327663722783797419030962914371477632762629607845548428282673857104097147693231687660893140269761198051067436672838899645677191578939744689479517844100473751029401775794940551144049652031488994328613932491453315076928861396428118029457575224582793512130477445378289312245037361474311210004130087733925133585270783915330640752560010913850547869792888096529196191480259690504685409638426994523687791408973139498625904518514635616504849263900180820544965245920481557594121182783925746456088571877604670260077206113651756544011613566150437691339470803823758171032412437045520098192874760488317846812275212278530011993762427351244676934802208865303669885988830882342454519715479630827929768871482271076194597937470463477768190424171100110956502387937919167980460639861917583672311746348647119795594071774009171465967672490128347290958897368467829061509915802844541207619083377014390776651905490269736925284920371766317241185551956657671467639392432031922062403401039421708276154844754851942524961208752608746354057221277172440475287109242825361336211533446803319124618402402673789451019467212785860297811868259867177383795231062430303959580635460887094596266085884077057751391381075346023892876766862739410619272068698811759316436872240072230524068332599216987662118764247482718400510709647650271904518730096832557331580795644848580864218138382368772103831760027482679273519636183901958963788494192474505715073498510490012720980261672265834021050117924014789625217108622591698500986510509315219228370960910831751896429850830536886863419170207337439173234342476454823982252306008106258978159408442770446707990934235250367406360102925303137116191835594005822481393213365881513808875319224115358866771800318753256713843799362603301538310530040245458683739370187373137605473913605774493929686128979829984402964452828475636198004705345264538355332271118521912334114700886986997509144015165903181803210297166310189203109948127807835650197668121541379717470522428356641918794228903657795359837796076096983710874792047020173040963872507891836141192622763385623872035343923416753582546125790464610685505164375730884861516885989465544855198064414572821109474422728675431004807246059166591770297636910004021660306993193899880112073612670996578329035047528497798672914013948727829415935983865208380485580089499161863539211418456293317501109241040920500509643407899693554396468137939195385658687793083790527242940055702445669264735252174924141747947305187255752092659322411602137580379555318031909572858726210761112346380188287780861468882264541035576283995879929279226401903956401657258446232226877681183017644790354312519417699873566035629221377726282517216706687619397977519153146990067869526110299617495151554787365954969092160237570368455815617496083445711422627599868017402640538690608431037912596360990360395081067064044069177652793897408920187608792491312615285054175004497702342158310304492945310780230616143242881478384400058640039716251957370655624292162361356854096292879341460241511606329189636035767705667964208940777902823917956797209883503605236418636768884174302547493768577803284736354546190072013811394897369668414210772532446644230526727862291334535330847076411380219897000351621442634269988975925138274063126104944413415338316124465912094435141627162406410240856212999640521805154021438693054581150247935877202926720844150077892245842837333595634869982996199634644930175459473662919340910093554937571612086376588344108206909291974740665170069154347794075728590935931765413408399671771735278522633785363448508286924428331067479693488251507648176767243222863169659900759512639989143034494511639395338225363648356573636685711398044205586558405641077172244509540757072372932430971057210140021106978808778834890486914539370734874146724473193774259676310005446309505005215567607559673682272559077773114611437609413852473693947538049512587005268439281069941654252340039865168330450309398133285193698277882808347194972270231160062814595099454004645391637526389034720668725830556121794379009758960651081383923852927161389987096005489685173994703152602710198164017477069148145138101747677005716293605161045236260794419576199668558015436274832586907863378942070184972317642504754893594243301148407600641793921305311388512651432639163703805611298321173841887055029784871293132635999194146125012711862498915656527052180064760255986559972852447148197781510915023918730569866053773225864655076348828562615475995438258442616036399903273336465567102756822403323572727521011669235687498014767298008610357734071569437017287769730176127724157427923698238753853599333245064907714704214186545977019232150400308711914218581352657032572014246637938381030968104795189748119605656684755438448330588819680670215503524826740029509470233024909610762250790960102087160434108392056275959438424937603696630614677749824802428536010805624825822998212114601176829043971035072248035893182453169000964830602540810687102897756425098730975957849387435789399971852624940247464522728286343289879880493686765942224004854466507387914297649432250411420209784130553350427435889734158464059260698416434426577246764083149832771829150011354033227438796029373455572830093010354421757815057579009119171365484024401108772072529842551061257653132045596076925452908548236941495503729521084539169345906412594742746287652762258523658443006265595729020402556301652802168950201895887677706960812487029013697727384313559052711058746970099819648313339615830829474925083200796628331897731101268351922973146967858173621378262363059297985615852386183023949057422922726105791207242147350736524609149112649519379876287602090015593289566341123627188615434938670108584514365336984798892394637402072255733652365053575607270145552716875062370140376741660828333945675898100913202630426082685495027604216946414247233767732010081832182288363196156467294460585609943756409116374996106905359535226787206368339970189113134994965863695983365586522727718735549576383983598042701231530907827941085448956580974520387713966008109119550947034468510726898003326825256540623027451365848275708562670385660407589557526743467063916686978477749979911183507257893759972891350801147986634938396656898472904462351911125243468563600459894721795700794548312314908207070712246059283364680725635088413050989584425488776068470663045630443893135824926253158398879051629740294669564208741359608313853723295105462153337350716092704742912752431471917331221055408444139527570622072021109345594142934718081847673896540162540848386302167631388371615441905131629212613644905295748240131428034316665542376246114587629152485604895811908265203344449203337221011621375412457178081704707573476351541762969328257172891868705120588480698093059574396833722224223945190297155358296305581252439862354429893078661585444094883759946397669492242960729918828300704368831872308286372402140331595293224948965613766053615845597911099962764651635876909068954337131746072801789564530206633067609921780514919807607298410200271880667509800811659678814375551073359912284496746461296254148804590586659452444473845715068184185197034303212384075769608735357684440036603300262186559069486643256655912916097037702133049830775172355365566197807193693534172821796740204521256310677175649136941886483631841057789092558749551257616164801184346381440584180317526401007118812999104492851461739595849781637751921855441728284952423198797544270002106961823338066099143015127033556201095137855308940220050518928259489741127353087451981011453537557334351477346493928978462533246472416889497752846856211126217495484355005507827796609697859174020854750578417423850427814954189208026906545042900344735721689089461007170035944823396091748908949127248455763044517683435215078423562189418019271141104927706304660019919247538369255704451645192734049596306857335249241550368845037297250491788492357507050629658708321529682386722622853970033589389395273225709587078348765267011038513981857843454143087155247894087325757477914027606294410184820110854967465206752138489496895742995754608834206494469256389179751466733884768414375405137864116880255493492208856697563079619726271531338285474644665285941339893018297779256738517460763257851446650961523707037115581852452551173765261828903668549330059638164632836411719794955049961429304497146209183255687578288167679131377463408681821906673743577553638683329555921074808347797713784855898222696473224667171853584731235459505687676403836539022924745669990459483513851292891480933527641278572558977942872136667530129133121884855038717799527955881436092351102016044806380821059834720413475742227516192574181629186717360156777757265164426285733476081954786655570272529306955250067810841423741024075149281427948060390667266113848619605731010155178268350347219668943291470853924889362126193863454340065478392450658319660387493578482070001303694936128713627917928928743923335056694327181595378701751707630347662589866048592939004462026360287479289741109905478907859933246558174992991253635651335474639656223652133924751044788319425533901110242762878162676396990699338252361972798822275246795731727153710370953090863332949178016250889254152355928549481643420581768750887924008931371835942861299648123935986838634659464155158999090158906797862933931943078118980835506475364628238811443866870424333733505522423440545732798532054654280297457301522288715975565609335335197279284474385367296780714309720989107218083225150717714029516283416326276231040403327083258485276764185907917787593362138095830431505815532348842962894170832862231896299054998373769255075625657145421500099127920104536587647700148833397846510303129457496166939820209324713048036107077555652341717257504831613198958604273546302118661096591820765893394514480377320437315174995548486052102826794329968301266254393777347833539043007586417334090141494017258498051988405460536884632872619812393390413719261619578934350234804490316808914591339477953614238873809126760126078830628725785354165021373068938053258911441000630064039390637263371803313738600084858276836542334642457400503180578724595758979193465810861022660581755449759788713850124833412835072909597882231382865570616611060024606008487038523402764452584421338596980750941928849497559156375907937737509650140458224183467216348764517213944293088483143936590463216657038383604956700661450795234328924059839799968086605104066393340504286182606923694760227303005040408789751122919913708187760412945540999778308532882052187379246830726985947169943956062041000713519522549277496446207703185157584286502182646301741384676396648346559029538291796810355623528911088090896976579485141906950892761000914277643882723027284276755630650138005520888977334318716045440067173001268319395785813686781835687948976499399267911503187529416233111045868534262442298869229552233617184087235443185929812917267307819937121589670379719799015658530191993942902560280110586107088911173159260753204428209976621833183202677697374702294666121612830043356763414299391391332430529784656554107123130020883906030503802254544527581773136342008116936276183087171616571672425430423112380704774599502476697617335233420124391871547837836671000631805353487244329124706229841121791373062637147745894338154001656013577889558230975924122467919204286975267098153097434016232632429388559049183892444961880801797739712916027202637656018881333903705534273566864524267401556576058485564092870268276917113301861483123397022646842025601173024202870655637842966812736538935168434303514821064489114013684660859562312393683343558644388309744540553609755489872159519308670124297031093962597377364606781317993244370862504082337427838083766853836565914428041956688403633856035969459643671190328134750630999044562621101331316872143283463144918761736410745636359029840023840643528284389952647028611369210551535641423264411813225499202591101098543988959330115590433907611745880967298204166295481181340747849512842323487487364885183715828772340802345519081013727335169982803821757492958764991644396425790841157074280781414834028914018990369304490437878316937675396479025636243046206149747572168229881736734031500069573858890799205886024029012417726193031410312451907305576550597232298963225715783128787891577038302737843330216945248412365114226878854723076612040190145066866748924336776107755124434900227713855657936211536548335842129121531768739028939487011466087231066979627710626399564914628557108064370828892133148703848840639184841463724024796905248545555469734433061753874458645769794279031026363671781784077240750272888659616316136053183665364494932777825524062319257015888229773503226064837310373101592174588856517230686507676015006494956630276957165177609412498518152726392657239436848713135980335865804045643423093648511318372699738506423944147593098031836287925158189018747805963141133742921061327790262121326797355996035412170090285142254676043621606465557310990261770386696535306267491848697097886031617217232315396991009573185237084361196527041178408948388392588972563755006192680592839765904040887784429567702682911010474264225733516151132703028353537867213864422558811640670114625339007193645448816815389102711298145997298970321086605172263724647304045266084625601645353650630752377595483604353719838955521824039180223192588721061209392950738262806365949610508832317254075023330291117158198948755424231294916024095889020313458600591580278671696532360459483731014011636080215868391328430448427627289646007082072484143425554572544944951912863453024469216162013124777711914421859070933792525663706586817772707892110965042847511735344522435485826270587471266777824319841303094640310319224233483370586858535497126884030340857667483892470338175022099402130022329734726486046156149986426701384661164263488847331430967772568844001763015383195131798685888008050562397061607645322774094787885387289903967156681720331209508124070444340893336783547054091318599128638355904800301169253167069774322197088578268842759850589970455211178340656739968564586944408762806364002157265597967693455242918308348435679607181558648526972004413816766372306264694799580667542545791018613492570687807941895073248765848140885703864104613384339522724161410508085834785914083315867117973562905606817622618945888959380607766933677888882231428370174625557103499844143804546159801288182427931526599641565926957984345857727482502751698465248645945099715242179020268607138946337194516076775126618815591728226769949175280939304158987634412922322886517314811243464639605234801885366697860101183743786750009081350341917877987708974146194032848882544356409656346531864682875207019580914233123581864981534546544897659098792765401934987867499938445357885596549129184382110695510434646948547107577829591403649870206338324641674126026984648927311137184231161165051210878332061206083937573173239902763466455576971726933176025274082989214608621146170057021492798739509777232196651235948656906446066242557861676135468156456693353482157316527959952590505915150906588413554471298103126728558863404620014134484452579635803823384935456111629457955446819767594686330437616506978135028416266303204116325481434004794047544384637483711484422712965380406327885724999853976581440728108958950394591992191844690524180418627739389454285408454585355577063338060629756356555914409782544964681049983216801320951506361057365485514383761322045611333128774725312839864323607842873669670753268899319667732258937744529931602839531926276711333845848145542314697108652289424104630429680415105570913093845124130672250107016846483802715423911200248224958979912362594537684413477726398942254451242830011779511695265176536821437731819461004558957210612640335957848673174328829642760190103029639848726779427539259874442057560280062836787400926072223120671454646656015361873717752784312861569671825127005237092026462411619486620877442988270336549642207727921748483113237349729576775044947774799062994476452071802703812271007644770358543513392400675258892470129514157225667154199933579185981929935168734478349001274404511332079155839325941247704570487298742345491050985491172980502565154781705453574079888836308315222632722621483644756274098595603170433029751765676231834197886538381923681212620012249216478846327267106828075139097685462561095706778952442667662133787415130461460295197010341543976584068243559080592667546571102515803537034929902278208611912485582359927259689297745986302934834729535045448532392062611794782528633994793515622275068017941853864677795621490977412254875252252834403844020665726509426804536348860903683466215156040038617560353397236966269972692487096675791792884573989030458785128120511533823651566597660869924908735600523124629691562009542317078141778211474857302955972522524006444067836431475903412555443434986523733937886035034588723031596595864540209314865588992127372095378636020092087565899928091614040977284595730320724754176321559759654431629520838335703704552251741318871493097928119929568628673700509806421908214075393355899532372301229159977915700362351582244393997823381064885811845538511118899747079626329207402278011383663691657514166404857732626297141313549175506014373462379852002026514653306838523289839003247090942378361566598173629688155933213786726756696974373364017461431630371629891516267620853541236428554029167955593955997832490789981002323429067018984736299158808659230963121596164165019737098818449507355332187745399415010811902573564248297614008491414772946584868534841690867310375286635071798581583540405634554043162417360692482485343572513492219645796961025349138260365725146084398436625773838534626280172838861905754690991214072965392667750814425906603976667489183089332102954822043170231917635397673733081813256064596099974593344971278404902132178553192937988032577717090125209997367773162430987774053262728535747497484983173048805306987100063146255131537626322764496297061332475658344532163081968344492651492876074673734476484734859600791101733128840980936001645365889472338800673879207200296956086690529937284345129747489611109083569669352997396528841711789308450824507608729079682673281852211437674157101152081849010496497951465319161614368918168080962339229635774176347178002530454701522502619787049979345966422659197407415352593726427711966381356529630047817054962876804130689545931927645966653104262998722182306293963909703592143636629093266870839388252261631973852345407406793072723635800610646267834201025800845253791819119885752150801408201279782258316632061720634146024268273669606935256743563833053965923737246583744098475753575931818428426994250906469861901650888322416478914038015939035992300419572590876143465998615548628313797893157553816889279492106167246142529479794241996280153154783667417728542378496345039352761916504897526423789414287269135350213152836611568491213756995080228828538210220361736215399904829115445080970189144846366905720073456575674428223637737271566448630476872814049221502576427187992156364384191224127614599475288664347963248105140805176205091363950142988436816351528436555240874381068399215067730719341648968698873469864421202992762987466137460516563653809882871387918034252266628597834177373669314737463739640865943509272879764682885665190004633735672609596532150704328897471705685613828960844622002623676821708708276443116706608869546900589194565440265323977870588000836797138820186711582188805347327815271181624189240170558141480850753686733223495396084330492985125375040075670500421309716381175810879812841002332980879006073029896753352964811629313499334906847722902912854637270220349237566617178144468317030885304451423422791520722167876117852885897294375141605905326689055065164351323225227524798410049086102493040235844529175578476089361291690794066155205949401111635528044288392597947941519505320961811848297718562307481344862585410564406236566500563418595580578854019638878938498726173537043652252062111113045862842269182983070831690130616607696323708607492486778191572134228488081865600580641983218451633584580903468189759408753392911167761649814423335023118136601439007357363303007190413871319410651319698983011587475175147944752631737408986330285461573186505898691614663547749995153307139740485530261084162910006835087692146791344902698733750643481899032205000641277885891460239023136576142698299361897087933806812230133370133070272347804655028193370460722393656587739816125143280826945480852007361004390255894775468514636704469915955274240621879719932942952574778818651349804719643951471189374600659050025463572165600001168054105515760956592280448588114165323911055589281102305863118815818025409435511265591125226170163157574746104786663146381392282384336400867673121047032207420562458837778340603429722616453938099013655433643530957278585165125165597912068523985736931993213648694764023416764291648211254302121944194002769825865805535953086052727113958631236738944571851532109022127342527754204142201759936254232998035206316925477459227866387559364070580042737641249841150732225876770405989257402593136989895387248273139784402387175290635451233059722109746160776743162730087893102288325099194085463142592439311576392900651390457382641678041768820098584672345032990942499342596555938892630473321422382845964518102583049345607827795455114358323241559167750202312994272365898105987839729992731916161034999789527828350273063706921203601418868138142079226966650411577045889971052330360025390069428659751646057652282034512999322669151096459704160280457536637950798000251305406641322056456405061671212072901510010663194549117950759436469763862683431007958225415884783347670791953699151948350724852184833068052240083210695144339121740183086602646591395202402231464899691512452526089177787648878578621947858242969881476492568032970546879612957901223722377852870089992125829390098172377186486541463470216104395001822375300234314419457195787728648993063447704470453127240612057341044027456484392614193503221275393704404166427962070867713356646454783208698642956990300293206645917562116931082693193985935567855319832305926024789451396788536519445171546132356354245123055476903612792015600193352123194598553959611834965614054006166671638581191024268369328264388815165204473717976243655692909418700310980280352758337118097007338344623354218069305823063878966468246128465506654228727834634539904993073635006193581200920838256697867497695868807883760960757726259613799798792120517632490734026362276079565734568973018101969704033616428423760912049821451092888040932935336649708932601837284081576649942774594998386710574774166185863039223000043242734635312201935363688950154989268228295379950371283249142826207777668528250743338283887064730486501480331035172551830260214049672960659277468815282771105800615985843507085579308204358115358223755913952470824508208643508296506668344408900181083175019185265022122933494072550423089666411083048642851113061379273274950479532909489474957936970374130578025113952278275911252056222732251014061458723006302597166560758219473047441095577673527084288433240471487474375431231284580262189722001772507340263724080140884003816731958334237147072587574693952404485933297712467049042801655579495999085950640953510062007591402163396988926151174767588143676916285834596452139130390107279467322271414358880031017581631288773728068199540930782787517482312242887723700317340726288709862642280258181572061402021667968941432353003050894142572510362193524768582526290201753342417946474956814338247139272175158862935652605754087653631848166679770865894621437977189718033987481883912343781728314949387297653618705624374268634669706783347980383196876145009932586753180073705874311630620063734838670100522391622620265461979989873279400018149649535198564421329047455861427109073838480079709682986182816836115027123756612367882190168362574103120574957417316713408138484777703857068163583279241661937903316045955378385688525503035282522950878642749888312955470317783023612204601614647298052417590880650373075685443060321420211656199598101495632772681482418182136593536085067404168147366692753896900703541245262303162233383075181986710002964580238430810542053121992374507030662772873301034696397809787627988325308303388473259815997320713946892793547605485069499107187122680805744527301664282226752030362317007718863251898554406836895530056592730774876726797065545271714794716279815482010723794151312147486454532475286623328464840242163347176429294848956234162929379636645599536286562290339897971953504008460336734362127506747979891645347426041248967961413742215267169138218769275121582482394465722955956177683470485824890412545850093415691351817708844403384030982777065295669644324731485261122640762775828675312573017646849885591186191312965318764095614878767639873991582417641660206821957352880776401774673923262166335635265791643770976114713174833200505202219456015436739802343440319562966480931317491448029887006156793897717574193789618887597403710652692932309029117892944276386595053742480388391620006594854487235041683108150055604955491914524352935069024266786742551846937853038399534443142385306083574188562558988369059389075475116469877884667196828738474860264543899919362854959003936438848199179525655158865703020614800137793131200471859463199814197387032870305690604312983771745105910073101823782511930414639193240317131982464782465986427894455448519653736032316014143948065702351320589087062868508959617147509281317491223433194735029433039723326281128138646585387539724759449092537280952370267967384747439306336711458322372744027466903988322283634718958741668824511762583980561777087316933651019794188340000719716381708559491198741274399744934262357244718504987998393084210740354689505312116585188939251054540163435154412093502255666547302333774696317793938274222192914478288323714395847832695758537473382836720778749432462197534416453404667084861515423133682378224963903359911036504293135526304666012277881080007500251209756699543271115203079976610292656609693761561636184670269287796527708219053877295866393403223275272775207309525437079440448101779091673386411729175411992740058213849490502438915457789371107845469792793499968970029385609431459881980392008704130576849799382529958760936069559339488799706284221168701016834097984181574273454919415412788560302302612044320114689632339584937358024828179163124979121060048173751602977371812313120994876720001853681651462586495578006338962866008357355769651227347189527597568940715428241244935578242531268896531855229757322594750345840607429464785489801259092580251942492732261342553047294550395865407577707994452795808861511713785093334977107304010775790331973869785966713071088727972685390942019485891780340792976216584939421481426021272919375186679598347986976467784737823367943079569722285379241382935810800212909093350330897299031571594862458007769364538316340754127809136767413890007933257131768450752448651587975030492298182432599015229278729551223761517026311387283983817707075537993867194706385995424874867435876667774020305137888678888322703521063065975017591826476872298893213396075574300475156288468899775860006558876323105404616960670547696382789817963046882368009305039166899513221931606969169524685577038035351229771404255404296625105406975245413511047868098064018056113307321585030798243896256452022807664530119712179968325015452031856737435133215297856100249045241765545080466141116304614230903396913181632374442014531922639694615639287663442125208649571721018629783976251022634686200066308911176374222698765446543350890528624758402235883744190159420124171444714107910709452927893935020709418993036652205426009056223475418192569427760986608118047895595952410934974862114640193184685942541429361399386876046031540188010486713957458908990604026449089163530286388743346575632549676984437735292546213077250502508015391823623614366206644926801592785105044010197248533493951835690284432150776024495758311108048660099532443332598810399568262604237455438279458214373800356391497421353559592878660887010190322643315908721033608008110411433792330715562782726318974182414225898941316175389780647486621259865313692008063805231268203418480168508218978855377002974317388886061369628243598860150790590550213532958265542140100413130412206627318488610267202141350657227023404328286796391103172544865382662576168644927046322306954030373430165115998077972092246499366841346204399200226167844598978200436663347413793732060954909367223770225791324365938682155941689127265538297040965303622399941085365365666580185980832008333363681704721416307296539527996297439491066858274707283838332825430282963479946253606173791550340493883731177364565884655616961948708958934833164578997177383106215472067521444856411393707180637167816625543198084613735357691700477046322347570544447435803105185039016115460140973581780329193941906921838854486558934055820105564536701756713783153797805495145228149790756807141050103043708812913918322216163484018065966956818137711581570049736865822054115463497957380638685893946974361813272845872729024229368164388537612836607850833274534439310736498291791827089588270010060880230531795056580697230374515833584500165623483912411690611315731396071463205391938391958375644156910743200349138221756949281515458474038327338981091510203121926800934689095106371658633968202630591177745193429200793577495743249422612857701399404254062977194122032840811146127227826098662605925835448947787522545190245886402138119078191653987512290610515141283316935518057079466040220415145825151023828211564608880637113755656138484571653337192270244709358535189507356846573869587536831712887189327347604315746631304814829298448598382907994353277972682391514927657265933685076930391619145323196589824975622234387525498615901836102312113524087481946602688340811426101579716468107384158885991335724534901270849086775206184145981735611218041839808543631298293400238010387811494404186228724175640650373913799407450444206369946304074612647208501440533308648594575937528450215436596890057487109916372574727709400589435437205025137014721768819378356840257161269523856523170316797546474476285179588710811200394153957040074809110193629248478423873565106255522659688533741365302726949314816112348263411735248933803913121811638397683199756735534224136484490752203103638436013790483903076694767206962881237487331891340162611451023936130970183106423132366680147850314707774897773008779153051223402610074288363882347646557058219026358638809467108130178633077246243410554857104514205781744177943671402887861994828329475876652954078130760005449960817773153716443583967289636056061112395536629597082545833402408480051959618480340045835107940631925865077597787586390387354369360090584430464523930899805060218563627308443824257701977586006030260667627880727252341869235373326746131250638371237603720635354154786825823264737661200447320615564053461931454032374444684901485446773693578999503498309977515308673939758602341451103054952620451106467601433727710362722930523512498118316570369115114091126081428087242446746114368027949961864057208679724285840743962057116160393607493839110009554809828959897093609152332123957031128706946189941594230429099485598934837960318368898326694808385252336979769352011222874073717611011923911297169760607499886648298548688687338043112535446353687660460557201263746934670381387176837614156861658024473803367627085810114664849459623086921542601155723636141709057702512865493064450504277270294762594754886153051488562368160879560128829835249333093002827328811503709469661900180740124858345618599927296141849760582328156393472342694709095186288006165015057577726556687552199785168732351293776046210938184709510467585678920796548943178223920301359405039163605668180725164239969727331732434910463873208653435232128527216714244005492812664900022416021540405628932395867818449934018626042060533409119151892982311665401099134620261649646138224352896659172971183508487720511579858602611368504397773081551485319362161408619437493766137822129143946920297396497765241088608521858656692519799793984225734338261282853754881130967955301256368553730735755602137713089982482056144205760362820752725781263300419130452010241964101250234500395355199457299633836335456730726847093024808610193774296078441493351657996112687142212745160100254408218062142228244582830177868685049746302729750114598137715146613325941413942114477153744537714937775847450307761512846760085492144870983217644486504354988861476058172826701617853069299348912926369801493319835281199797375654028403429774679010497453298930382357815234086912737952026376166561625623677798708526307568083134855177562487435663212239077330792659301888723511580146901291288249138354550387804385591702536353430417241152792277437313376274828148184279822465248601026251548788252935133098614254840887423063260431899107431374280228628666542873172040567990750526270987845790176105945427899531433890231137034547913666929352251488443311799590541555864994878962067072895338204351210697859457879463782072407029026057524976429408001547800794801220424786131165616116031456533211888435774095749040769716202979944709251100769573076725165192548400544709407737239710174842719257840281210308274318679704786869038541850359997932287522742641676282660933842120904285963341466750262388477789012760833364201628727636361384812312462225016807591414366796770301970994297195347332989222565296181827384254712511258961967464350791651509747128015856534613358850702613675574244621991248432087463993457545711873617066481780689098748715789776703667219481062662896599463750856190846122084539529166691952771911593362469127415280537137033645465544275467142602518190985512464350380145649749577330859247402776653568413571034157319248206009022508718172166168307945663431604661928520380008085340148679525598476782401430373441115202079543558125651813500039121900681118989437866308679196634910228205999539328653969908954764168671169364146894043087621550001362109891300879042885382016033356671739656003306641041502848799699281790785548915796659481296047131316119703099247660581214937977661895164378091618827162302434938112591189853498269539109357697643707290436875644527103446893253548895877429528576708453877091487061940029000320114910338718971926602951437640580053925614105930419124059195314070325048008705782746290910766076547021789635686227541429345102712384942728570172333596097174417080469502370101789403018578764544017069713738059518132046586462187510923781372392726837448130173593272160643189897399500575339055460778339022410465026659992603775165894131824085105070202941865924436975556618033901319686842474221928294618453282389852130952458717034512621545462471761380875414620212649531372359830922097208373312863445990080329559442210241807878229991525158676834500541270182455636886176880813807205523113841503298088471430884328375998209788505729285170144675237425720190572025851124150284544090131816687408763623783560394481203486613855483592435451754012248156938113212042883256318576162346672827240431576915787252110418854133202643297839865265701101731025007512252701681004344937477897510671077634861261823056384126887174804122973622784470709829449879141515854906860573935049896716211182319323985991205611770999027391592165531772486653998474152996193246262812897825642575213497342748810072759591013253176144236123546346413904965997894562394828631732718095724487161901757839015690482289423287217011169388217308147235156207235358405851732472508570583997261412684004907414988949954837068857248429543238939278946833215993877984068747563762439864931164556060977474611838953655466548270218786959713740363419615965493547129295331332852673008529847610777406344358544407492777127053772089329147250899607238960184671446096065998324011365636888174190771605576228729184057506237972341861577467101685187841199381745302586657849658464125196836054469700603999635812481421633118298362251622677382821736607255912289900868577147640747188214814025108118875537781241508583017281252013026318565436762319572961064552248985915496969950075454826182013007154341424063551139130883099108984094031427922891544194743602713954631254324733156214445428177065244133740324969027736053180030007308702272020453825661039482487696094623889369212029482479140922643652152761923319635932870716742936953820645723712862958232529488046286882802951404369846187799874649452866891169376056859313342497061684326479017296001447243011924198384514556319204584599051406668818960386250028010136674989459305833743646420445621151553223016230484534009388517926066925267275508281361532318676247642240815043538859304820061174235262835929069061829368286429769262863643555367759651044274785424872904839931817235279701314184949259226737840987066198286629264631166432680271290137712632367906916949143330020259787075104733696391627096801678560031653992932319635104116376983103423949098018081418667730430478022329358065042511863841147940229920545284499958482435661597250749891076062691179909497556713753756167722782340834747431824097649143189906268004059547025002956019898830244076330099830467752542015319040005310015018334426771731253133631845668983335487930808569255414427334815106414464212552639160064617954720130222895485614155395870791522127101986484883656694617877160023553239209725051371159445029457425567996526721803616314446440381965584564426178004226414453571762781676747878087609868287284088717905702526711078273166961978865247352435325100674549275176069121704616049606593567421033959550183385277278788689706649114930773029207782692761617583234200712957440863835502770484724465579289835542269056792894753902348485911490381567863756293610319376638770284454796792202320833568209923203637851430213484254869056477775302239914123465338340126291183254227824690490860530656832738524485971838247854314903421565440353273163374894503399066389051405423666228853509618536152793785925138241619257758717492221981952102453582191120800783043673966776389735186673659929170800007562382005536379923142950298441064625336805245775107860160394396016210338087009554761980803537157444726507058085298481422954272314130389646450410940571733802564225900075883421656755328970500629662034756431486746956483890242040688656879688701453204172317923496909368809017097452687119303473496894273053944344277305087741269987688551150932361530075571297504466434992806442011430764707110464495351623457602365512762741615859239850983115463498043011867041152454112505214080569928605613186112687271978479591443833572106465045871058822622649860832371996776459379254201362086335027457977188655243359480965152685780976440882267958101618133017510666884300537455211134584953218697450112017819234457667819429926112365513319216429745298825110912388722260724486956397517019121055046642047904927833665670222443471167689167970822502936067213255006273824582296849427151940301298453005259952304937155565692046327952141174484963876879303174475357788577721208108081664765484609242244583519671798029766252034112837925274162901870382395598789648961957245188182854994766247595196122386666953515748803540106340076898037595066540714862337038393160840468749503154547018079468813997421241904005328478733919029475260941652708099155962268221339074154087268336296865018356302201334456863575048834642396331622124127857576880411885855398785022926165537452996507066956550879651973000766436482024806865447051881969550461292686483073329838950851432692608343151187636537229526930177872194161777829748883718827250836873090409632407921008319200959838236647182597962177703566479560774201094444140289139952462437250791242753170851901445335500130009156271205986098226929672004852632373808043611409233964879316016429546852848060301885404775930803272530250270189382230721468434903664288869074348836826359026073883840606603072595779761657568754148984089664257833253429036840712629250386288776385622005425906287410235213945994865138258362917235810624437136005426483155719779506942559971235537090184958781093199817079942512201836441959398412027721624664733779938622926563545009983076115776279197050746443137296699390471521972988848491674783717455510809749087562234348474449410332884624103098405439952448195147726188376904189880767218955546171812088560832150876663184457206738484506819630563140474573810508335078574614781580508737769354296564964670248405640081720815370903240028537345108764949412171384077622336809865348157474880385670475144281966793952462057469516615860923563056589470940783300984463802437356510247106977969118233843784337820871660841273422530094248597743471536587682379587361594349151010013587818757908007293319519979635443904577223031595720195692217952882294814255463972019027615048248076983354304925187877109504348375406802894188848474369774233361651755067263639230192132123619466132539477991143533597356205092278167803681362635529488322125786064264055543472707709228532803726478305782668060429726673634401376861740368122250066706932652111799852963517887117453225998122835875358068609209802788495781629642804945459229689730760457313146999326488515233051910764138799167153504731048870959952586724233184873428628151140775081776393070855057366504444124235285736271998120186010384823086137107180125503324573544259491913616154608801478185471338170960790799983804047752506988519414081330139615085189750619457092190466690872775384393058842045661773848940013780102745815150231843701066146056931965140831889764424977872890185465640507649869604113795936184348790320983264177964204455865813424151592540594852689104915333681199802472784064068492526745158759969565664548704625913518781449078512841160436318516086520034782345430190323030628837784287213031793700374738189463601907436600420082187258211179460672810250896999552821024536152135916080219505473308960286308001615084570663031042174612805430276639127465318700837985798910427439537039442600766778303124945739915216538394945882733225968079779009779339044822720482485580604965125475558689099443842137108875033715996871211600198174462678187013623116920305716808316075013283885599071291801413666370913005882291732524319149844588126131156816188447340318031367415589631275712289951223050930619762695315975285396164582567996333855608687197225667817142740236696696740837678301509183157800646384761396180789725575488569605562784966852487882630151494788931903539357094000618064022738143515380440223525699023094339750258297459348419343352438498359455212482332924368850766279325990704509042534280198626624904501889553828667437667650463843387939482447458286093163241338080295712827868137440854484652273674736908922755173043540351074359208733731114975675502120346606977177635865232823238763553375389546308108395099060353902931684227581760473249028934537260473716075628014029218025830846442349633413040780024039796190144587308248457005153045050948240421831176906296786686303340251486570640332880927217346447488300946778770036085648734420810794348160945744142855326866849510070968795836465298424802820268289495660525997704107742522482343564928147173241866151054148282001291104082670631942696170590002809818497070801507641321162732335935015674525754080494878266410183972162089245961046872759619668330657085329696129292183963373634917111175696309980924148467995430282491217608273544398718661140916643204106289488426287390840855598609408025943453026775337378281667226452033463009949180528921101848827413767841909324283056636994410261458243945689908636216358259710800407954613703171428038673573325308586381422227947892775292112498161085210435643240615367161728983016303394703669309582350981328052781349079085891696770662571863038730098507340612474527256729812878742107368198791762094606669686965871155893959503472665146260845030687668089057133832244011875926579641920738660544992951316190129188978993087173016047019641771896150718944007065456558438425911458561641323117298400515762868301800091933056095147267238398943344619702731681455017876452675197498806930591131992797414829818220712918920366618899754971530691842338124850557151911779264887190184800835717579206551437454458640810724668681030912523210680795010161591010480275588103647207549233634352114423412416350851899046226802937455778166141339227795690184888072322493667266190586234350778721791640658045681864150106235398762805088033235728201785811054332750147665315346132084201202937207290435754597579176408529210717462819856793053462589902178766639542355754393192417789306920994307363328770787350112805895815887838112562527077182120764945269019351146504694763439149749333446539148789761760976178823305547304932483446714588226973192937516637955152029569171832665057352545830651188490573775183447496325784040332867299867388550301087544913972850585978369494237674707460294442713320110186198000022038518312883864099461544615056639138026928978927118704535743463155590393683880239453685820431019698313193059489702980448596213300287941560615340518698129754756487094032451407084097598491617332254603402938510669580086161598245607047443602240031189176649681833309650091106050174600210626585717082649872057588387368435322912111406068672185122010793641022815552985324541778912444375963343689275252611476517900678420498048224510199938645962582885745116662106593525112987358006391266494556815455934925727544016911113431008124958173585568403786177515893633847619327470155658191264748665737176725942653326358449094939817998731550310895858987243551788053641311578520571382413235258109479837618758081742895164718385242321765291688381983321835737637156749931678498690996642181138268105191552389613531021198545803733833532972858336185215628620965226466265231834151271710141240529240297215126188363185689756957370301674603554475659086151569777266307760296361941812333829402704508809967861361405685221352712736952398367154681652707541167190282558960479257015798139771985695483875862065264394201466386394238535916949278381693580523710662438026500642096124117395380442274086976847327156755240700040899880759691075433688346328540357401836692798993131629330655311648415848434222511180626088276194131692444552372099714194439950400003788540312572300969375177954086248792049420674839649962354312445896393615079630411898592898842415111625653800800696299130112372531988173289547971194724148732910915844866605146920787676091039712224536479674091415768443369323434460268991930100425479256808585491772866255465481548586318874670879044569668974560386164532168570356355805154527104686013960154820707149382770389061531364491316856194815475796666782773863586709499739895861377476710315786202573477400759519770882530611240468835015374594675565398645741015370892393137316039364420171534745796933720162472467194524951718184584782713055827137661428255625625473607523855918965750324885904460937767595628587104083430525014940321052933237156725389803543522455414970149776374817228984592215447045117402725937283058537641780131617309956103729118947784947770947479859228281489419126604733597448805598856010937446435923930651085032533647333766802948846982725818292174695332778452270380863461858499397695185983757402720840966519421622144299886797982063149850897804671173415398341112342177242903985046673139959411726145882949817305898372108755862226253125724047841282918109461742485567619625425854536233205768659494423883547849559666416675806999930622944249351205160519400152905581039070798678417796005671996185350453598891800370875130485597418443918125115318727692478686415501555695928401810941841045495667819259796417751253103601656888919653371764637835686127361987537993377943513633035691737823324383431890607198919195316676244714698991057571786016920141128860120512987891898929135249034845654398996716576299961051434968677795633350062009249905935520284104348911420994799684912604902326353756468433079300171909887537219236046732319195425323345100955692316790282205965453005615038753062717928379636972665157955582947344678429288370143190629202338583617109081208131898013013591418212470652552413993664100396425512207404562045858199537984958316612117349247698532562237472628454629388975234744697593115351285957533218975308151081632996629123211534736609851790378216124636981501195071249588517567531016011329390775840347287574306820330893831224897106048536048391914098891015091650657211040328975511851736766791951653659962484856116548660794586584615337618404535661589536941328182006917040875099786704025726865977077187710574481920611971988179147218611534992769041403751291961191800129103665322616827058461146704681121091171221075540473914775501394020056950330955393394969370817647047862109489295973600791543414327096077665701531392555582566341372316880641965509986883821389178278414240964424183364709264103907913075951003891260041800356422151514432187694347107817921474150830645037808125575142501191649654172202651979438379003373037469595273128041298907369060728338700144091985261234827616280910020468547548004565107082593951391762208887953451689982790409942264568050694059175605051916046353602247154645081643849685583203950523713463892795265406213346385885047255616809089738191625742200843637891136149441420132543437144525408959182296496416790345812885876161050789068744163273781811024266107257795012991402444361685915321290274087373831690526033295307353125544048749838139337532105255051683827897543181111878003005492681019081977891217860904981769926201535480992802115435324166929347926755166969589370193193027881755040641646842734493240312816270431828705996839885785186622153000729038061181399253939194775211801625979301623797637696628345167042240797871368249002067437146271842856924731226115622198364486446979040629505779646945360558423989732626567103965321557632653176469850590728481037802164988938261397041409622759232584266764693737910643405257221361736207959116353157682361030637716182084237401165793199811371790941802560005409624087389404406708791046283741994231242108176190622788720837786174959263402034326043994800080250935281329891982046454978607547680192612322628856097342590726875824665554303938279639535510627446001705490562284461627275198638321703680322610688719395339538201803907002181997962731296160594069484054885564824229129838040557915277838616798665319694449879036041106146454761263042966493600729612471125274500966465860691856446122874215707720728403334084782734082219907302049289707131999338654341448194270723300004578580492331206295557941101530034626434831156809255144376857205107107425217245782940891986598146625524159516381320227245154191860903212620585993467378140454742896137754093967132855968461141371223572784971044378842855617571038825853338594180630829053483610517538937739051744418704280048709039546231724710894153134817081569956924027497781760581078587665039148720069741449955723075694303027668517502770822112230082436770575228495333744950887190982035757656548436656512649877141951266085110703997749304578065308882157345484336162522175466767924385137160689538161397954400904947729079497956679939592794015655724192928266681544494857499410103796711006758515079573860940510342809034443514914488208053251436913386355490707157540305264363482579691532871173937823551541771263507897089218606414883483881034069347820389581873427273293531086008299219876346085868539758761568869433700339921419580109652499747358844987293036884062189050683648944970375868494418567898280903972169706375475470615948794880358486573901429337060456861745658885121261904425975233973203364989450866138433942879470559607503475235254101170784581658588466307554263696210274071034490329640430850548208162597947663059010633527639975222977925889396445779456154231684272602531119284984668774923889910517428045558444394971877982178417586723378960735402158423443069814668074730080960483088475399233498911447235559878969468498479545840243277928487124004949539777740566305038837001005205691394976023777683051215885751955243963827467190582020854287688486224946922688351782760204891428163052297097717132908130411053749281755916811959519078528513028080448823873613932924353785979035754825174939157836166056701565107810831017464821620363030860152819452717546244886951063642052589101911026427627842454297860127914397045000927472452845343472928858927157919660213396500778411029033009947804646270678429017463581681586676632464700354714759415157914260925078149474179217732185547113735431017683351019189656574980357093168581527803946359072770385846276913473160684920823080877105549729666469117490145774907370504052232924866243149068190232929592807952515199557770305088063398864848710921256326522945389499730717859007718962214742760497924340587412123643302327527517674699436969401123100930964690402746219516117837295243496642869609500451818771174258796812051219136068272322586220032940526162397822671238425792356041660860831563910773067511918638231138495956876871068117896783701426334359571930069012106955570914322097298067148395611001465673587680813763789118926755260346013823014021686454545762792074526657125861381729059260555719826019638306829548734529927958365189004800249492551452211380795444756961840678776265438799795676166706543691213064126964448988350920809606447924326031328523419003952904478782608551736489265698955549706298686948384664588600813813333140913361270250135196473837358537799183782946147265512057640784335004152068635896339982509232824367675689331749255274160489024935854612005286846082922937660198044648866361670039792853363595958128524278345328391196913755683028285944359689413965709392693059955232947779393672416256905437086647573059700163168845316199269724131102278135107394593239707043543671707081549901571980736381217270138617016773779429885823419767743996924190691012730786004435805518847718875134522650378173606403908722335461910886323118965175554342918931104245593262579075122411931405762155464903565492331978866743503938246902162837454805994118249179182114826747388427439931511853276653210250737146796561378922881857514921281987665707225620416778837974715092749912245073530152885266424665169538321293654122638090208670931253509285567377575965849690153095513608824667183688444853126734375808318144581951606634281949341628380288363579010575575704293067679423780129608078877132980989981460506568605844666570978306174828514096334707926416493617266506459421554552051071853316565453498585542048235173241649442784693037316758881493789107217491945997498308148064587348557689738139967506842092617249452973231136217778469985197629861128695557395632298830951959933359238295602926856045013341559373523399228340345219647903914825036554771767940774589574805003820151764158686997609413314752734105009626640899098179591787757988953844768966662282719449285290854211560257064178158291739461141342004323870387350422710941349236294950843223908952417030723713763764762230222846557688384608432655169202003736836941689755637890385712421233216087973642645637436769637190694123545029346163089658885622780972786287154977881545794340979201440078358322773259523701108666406350371573563231187090610500955884539824250552006543700323634502135167013136001337593176929729807106286318405358887949645152971477635032022506489710282863036089149266642768531652090891602813289731515113867959008597781400697234624075059589418648108103465033836477185523340462554135202869868380801805319800971761529172031628876111947441283264854804581831605043979722459711940038037734318835107478432542268896716512906404143394380633929421494686794273845330597909417728927698478234925903358010010741677867598035507976652289829521783740072857427148531116698957040149550575137088349952592857729243597168441882733795957524721614183678144089875040704631387381777470464620735051083958806752289441658907943353913969184054384145079020822665297415047771232611656743413692588961822938522483835020904220642896873364478409446985477488767873783218223546467562118061829675317113772519352409380502013381095146590411856744805302116798503459209244867343092870520475151987167318323714224247447203025862196234766486241703156406825503183722347813888423280786419187058208478892231138970779227675344759555351330988775367167072142190917466777501243386106116742432192029609383956972657334544233563269423923364471257810606113560077643868046580171568272905719778080550321677810837430217504094702982936959486173852358778760196435310526785091572856051514388873940581097096486754952805968020342772696542896215380855907731693555873895225211572719833048120653341143583780095813454972566807032127562694050725034816807001842872007395038970389474746454203467624745283455018052475530972157493093415446828626278864142454776202785197245355825952219600189712500011027099812954204209023886449847941889516323718299314862651574827948229491342036384613810966287760816560354357815218296190830711892674189877795915060283503809944407740562271510277091369847917257585686429759449064825492710780957610282627896523788505794581963547026727240869689346501218775746681906006102876158701307441978367743647202010791976033968318044611783390130205265863999140128287478615785947020242181419470850742286955954117190224380028124286680587423364708051626128687246724569480291629164277399287098144748803569686104475929028682987877958600045820269925815334213656897662202818566191550166802471302622382339680979884199043005527155301619573953966595683112429826111902734070554818217410464952057265723144959852292674969470316822224209641567644990654397074148037581990704971082396353084815732730332218578947207577074862822583113765975768114260731059950618222944420008846464889114105291580818009134876516331082328365260083721329321616524375250075194380999838068457404435494835336955362336012234003251729698149628188722846460227081543758242402138870427371959346240268982703605557546692456528078086973751067934969985993716985176146400403196167739740219160727284634292155441092903296079376484987470220309232798056336006176953513972695112264748787929891053790888394491296488038890073396570532146043757241311733882358163125435113313437517741539409251005828893967214209811482980576817659250485865457147670070688303052747679347322283520633091888350691148051136158722169360205574342925777900826466121269813078210219468351535403662588242370370250297510723266720988681740239741430239126525789161342136510956991239492971226706540367910775959927999750090472865493538620362554484599000382866532258279410635661454078620486827839722735499927422628865401812612150367263333738074969509553101515103694936448577697069686030636084208589118473856829385886816338161870393475030105276697903590420310753798084653814299611087834100166487890339330860576260351558672831519254614867728537718294655593079180623671776975418070481501173942903611887786780512534907033911185717841144102290303601980230357360077429929406814764142530663744860338344167464704651821378978421997068988882193860920613006635166522127629528991468947789651951074820713775621155045200217071535347153938679749751214362454232245902001073437590227536639391474123936985879366751004868134650888374901945695322595738618643090487831129788925439590019771786276066855901756105133283147006962186640095516469890282840742482423585276443566467537480625661772343667523342691225492781153018138906304597544664483933459588349748796097649016716727826069931071052036577517438445158474360890638959679671000772496886885530363876991083879121448065186360466480560698058230537722225940818879823249823038374328208141127226121389108023260877647871002606611867144300488804448463432518812127157096457694274375136973101814726738273351176452014123877625555886108840904420098196734005292781999687068176282876480172636687733938102192540810301608426857918209743738730494505137102364390287190240348219964818508834499576002100132855147166975265331820625360331404442053177840110747277511470656670522193883033509190031776038256510179367399262098374106301523520970654405097899184990938304752453922441857986098013340330864898236680338579781565367056877105546098507054313012697009220794184016003616985156017339688189270373590226462392621712559114305241544894566544375278171718221544406630314536544329418880549792948852962324015181540881989772481818916966610094056172004121200582220213335703891700147405899765102729031547765936688076109553819828038072621924724266014045739999782187405171365788832048497942535155687042261370234416716139300766071447495185170949164639685654759650154992748251623508835231751763025074705095778002494603023573558937940238044194781116929110480948638834578700006409466454530897061144365477213833104461830231650534318795213796624575209810415154957157447005294827818727843425451327063975940260808834571131515391733708959626266986451959398636740433942444063939319292111830623808362790733447128946406950939060897885467226169470255182362704976071681682278630635071421667575212178966038997318175885148713488112564580993753150251257779464703135685326222850545958100839058002702023752117825183386830261279396426068098915903642666516667162492743549881125565703448487033075397023998932215194116133053187101225777106713600156346148906236645844611700806237205929186443933514287283686707031776277124630360350369713644266569227768595408044425042324507099918303959388313649741133152332715078555723756388961404768633571472598176681147007209766129784819945279236236230669516524623428864067029542461953728410469875309079973459333757872077543671721530201427862247874346659639972215906244579899526572055868935413027607137181012144738816396830374708436411461490275872910900756119983547005176600509626420756700665979644972481928222331864404799013577666337853020229350639720542937725496467163216346741358274810271072011843323661531304740237300999918446663124141318361600705897823786874863585639289798401996477995250119858879995827146846538953423919692956986116566526419315574416251561532532046149130299880527491739042640335110567883288663420180459380618465817510666500106067019081038950318126018899355061428185242377039089360061280667416371649816321934761547413594631119373542396063632375007843065949403959383551145263979802211303965862394052459340159383834602676079508801493746501234837942215440870677515938663704252048271566759753558267794913805233675393513921023423173158170207212035698757104015504727097795120803664371288039245673444504558525128694104614394929886105932722712760410416676931057341281954023695362299869131696034118079216355221920813349873407447352478524493653614906801396991367928224838335349549899293477154941097020139516373413442584870198411948211555502495305666782442615954050812004222301097234968560113658907344641667031662831024155753526442376474205455153709532448914313566791153591131569270524199365779596986982247597356553269476564965484260428273604627546933763592424565906321920929196936253010658382267222097959132584811868591686130474608694523524293047149158115760979163985306190719909660112268421439293253321272364751953433165694370717061288777356739513523373960828132301444405432031741532664799374520553072738674501643510717768172431182763571096945671617996960938244583166834636844131687131293864520727461970517980172969134782764681602672300295913920461675748780157404321834146870840402083163090852658441166121121780695433104200946869158572032973528082279032610161128161587986976399206356460251224939978796383228032720570168243121065893225534355273464019540728058578620216284077708392048810096234738947648361640013876212888637921175302325030465944853116573769348066446654347366159438820745359485886410327989119214224644615536476075261363875442857429344075412923879507472399981182004961727007760219280389380373368735628372470666001456508621357970562384420846528611970110283622642600934990599592612950121660339460705466406119001783045608279864474755773928171118811299627993818238545106179951064147519811341978960890424550518366378304865635511014909122276395830040412727620261194688151699693544731296102715584293062536787362158322325853659279259451856408312401566035698260482165161127825587172482992033290464989866581741709939831871494540482614544708083206982941884707213306845285204538226344174915157343207450993147787456379424496532056024185598895248024773878673197520103499512556167910261757373632276071883068275418216946551098916897822151468005051957155665110036732967654688847521435305306823617841894568030497646827482723384049973272569907901020617648647186297155484106779667701689314770289743298469998817410535900506568842453895124129183395858921960434981175857926383925720623494079312251021057507942046464047538011039626612042605937774133679310925838961585690846139316183619039159016855987643233892776649619470808916375736507070090871539153581434886348955960451176212861085080501723973777327015148830476578911322237264914248518373143739173839263964920387109687144038424338158983608235228015568356855761134544622152770719188515169981993295110197134979872382394494169109205915525823673897190717225939504159792159036268443554260044495140963590072642143495936044457340247390331451749150649114467970097193366146604059140251434978582082816127623635820316077582983954598288118720740175729942735488331427719902281326980711078455282595050100687096009369886182915523600333411355545526167619508606210919693405861912893645028050203588512391000530529940694016364510071434798663027828696098375399196916998488222146090493645323846671792587335396125134354363669468860574961864658859762379996489294048611452387200274975417013711084121149293957106100946461746544623996856207913502498780443029979274031364016450448797778670684945934999544487621229283961655505791347610596630476097978686687324887884609204416334239449246484239667569744916800643639343974571385651945553685055219570820955570574343100436275037067282725510897833545399411061054843284300231589297479581928462919989412209873573705208907421629441375017973236477360240337740076714251654782390639708865509817535088084948862048903285548499579378837947732097789611450314939005465099413926546654868736287732289395419206873519183792931165974903398515871307996815990116790349356137707981652642155717387618517778701326839610326861602283579191640087408658444580012131769381108581548048068823954022871285279952830266841337618720815652278034316623220495776800917695153581278180870455768056311294252422785174575169944546011697782739493809803087121389391078194982077060157514201575794554268616399107847819832981874420683461380352299225020444823265443279278652993494398914235247174710116083639434269092686371134400304963105761708451400026962999491875921317426385467021326957083383899839691053016798853213617054025009823280264521165792211497254664314141773172560064534215510972897588450725886196434696083059989548279901351974129980494683442612485673030975433238935208963297643906014035278016995311968540122150692151515556318303826240307051306257083239132283495491370539951797422459058830682331883770356402263632654259141487272638841424084462328290304488551481987007177378669619043947564593215920878778886328398546179253907512090745198625934952542297904587821945943946362536130900667524568206346537889402620710949517033186750010394805114696643147116014600704836066917043266319275159002927319569061357389938705171188727831484841706137661970601098758661061785270616900546168281279898592487820695578504276596594444905713871737682057596353312028136970282925295644818078820426068917846691847363584394651999763568858984122146477850581362350601831429042565632878565300503876003013216204200691396670540960957176054099594631384141200234384970814595264054271888538170083322205020971569683563182990943080148326469180923584397925354882229313729657441430544367972537485594235818367859224745944221993313157144487065910662599872006985458355135353080164283324133563189832132288849972193231949394061815458496747960153256174056720292727351708869399869669684981427574976937168692776024440418023726622141528896773925009244573781466168901540050309844655719143091349141495019100865754311352335980215694506362846479967816213775306112064320300780307092830177273576507647697543262208430285028118742203984542352115896744055970468731745864819918420735745572672198200103742051513777092707279559634410107250517158459646852834098609444040809312125559721909806799736817149088207329151886165308883576976378377203966418550502615981105986380017524419433094895067565591964200164502260060333975733978603309172686674863897910110617514971045109874307061976592604301988944838286820245257721029617405567139087593637258419462204600685811105710125394765746927533107097630042665082028503988992355546682493427508510032894446942970963631705620467709606086487581095282708801113770388012171445316503698547767612884238335283541655068888991912821804857532834529146115712174523965913727717915121161560587255640983983710113066293513627836395811987145573202025922086575146836511684973103766399843000268730549258373394283349831266646115448102343851782181429161453629317931683158868546434561493289276937867940175850974894269053932034328594771926677397364583168875767278882783799842999675158460551940454399100896843253412708239802378080040240604129120291254897504409517199860162793563662545217875355872546683640017688689518003878479753591967660084193877992404420368450735104142592686404051159945898557942783348887312162019292794161801814959185483817368608338899429129442214704399645807277659254643200637509995270403933413141309089615567879491996805978285986736188317586032006530523847216577092150923401540811389640720290942783570956626358074485803325166689497771731171286609167869801012045934534964307593087277248785827645492152475482193299780752845967182257827490738319539350424317550111487010316587930536873860113750835444629511926050033905437599214542114040125590402324343200305229324895123526850529643974837549702812412907817775720400126781782665276923131085759763601215319809897829971889630915604049758755993886590582357752327904995603591454608908372828552813686936205106705066171933004524236521112335011906607556641767987760646000272995331810858949518525448316804236156280170699198827628188811915639656045308166952635143814518554414693218153993733004558568364933826092815418100957645332345299584991246759742593272019276349164376186971417099242233390138728360983218472915741281154601479805062492320625281229115366757622957985782146901652317787725839979142934880096396370993250453484710054933220452391274645289731121057449577013347095747433009030061622466350476729627795479174695959337660530402953141787809399960875969643047597678622392547567670101795635712028041454517686757016918048772837701385297820844985127068551585806602773410739796442921230593047388535159569532911569381390220437903328536022314499975983686093426433362180802787740046915914394706322557376609466808495988038086898458195120091809120033987952556690265687188016434351552041780290273045744266481759519799513878960732482565054392793134567469992345404093894762207077827324426303720373112534293179124451922747516044607900311187992082978193441747028156998462638583553767101407404110252319825059826004205165707908826765189850932694230986670302006815660104204058271892920914157141547628678322278097256287339188706023170850864093704206699305593846118365941858334410621667161154183208364085857071242558274407247665784973945410269976243313984071976123664304017120555206306452024398722491510921919359883386199887029212345054652847681740933059091287713625616684298840756353152127339948504189965938250246332234926675460501106493950679039666064804962193631801295993868921709321425370615668012356249746486712564417186714056309434224547461447363565454917551823064868265569291039761684458022239771797811331422778194241585688981907042245988404093212966442983435015632323142047824950168171151558889354097280810216164176716826882076403359269438285777949633202422609445892895327589358513033277188599046783030647025829358412561985995886340908428055264079156093618635991679877785056442103886392036986277870502864509315162302808790027215723530462058969974797064007352031186610186039693105072029265955058408935220298345331230033913920452354206686730991340677882601081835478946489906963572069368373410987712849784823783140277987612316585120067965237554208113269954215396526537352416926434824017005459504515297119389793576910978011263779700847033291206169954177514763378134544254007841594236583153766293235764789938661996708905752602656041876470498234082381669331831441970218327517415251317976654038946323988577802425826327971580636244759203019602687093581181211599314657335910125835494913429190782069312843474157920790436483692139778630742728213886478556804255215938460912168404718431327070105327072892221388678569813734862833226125964859220513938853641165687994202727110138150168871028409934099187555746397516572635984481369079788374950680096625060944422806409497575432745859230107460209922007883830446926090882772858391096536544586578588616413428936149433757421295427473271685591987104975255004055936539901893894136456799447709137819617170891243622639327457497526852641679305009536996609702944976458565716902715081246092138636971030525500755671657044204206089414155700439094709106309895504918353726855164536673934120502264735855907571314574459715210220312910130132701639890958485490226316406303767942946022367041625769819085114136136394219442534137618551686085120651371245207811390565639535919074653083018818447344033112368466698977228040646387999435848446398299312941397818980615907864935360012499754151605731393705311768810863924448802579225704521216234437087425838239677896435818478775189728326434234654664746590155718690533524378030807043507930836853923744630284146992028997589782368541108503152272302039453013723595798107420075511019928775108715996851475532693467496919431018822184404146651430433888594588108699749794832953989319816509842466488321983730877917216039962052197085145190737912687755330911952924131475096297215956610855606165070217355335543607355880973146810726943622014937345802451237897494011925476838523025203415021242464206749212995432355815722380263350465775506769195139322757638526238165271049157963681769436800705571167042216114154200129196989328704478432695041027089375232202336688227110728653110785236500557922835729670082006656401472457957420804552057995599617782368875788833606459288284488494819503858679366578746758974031261915778420249815669985842136195318670107209172923887243286284612326965778742350010685290136376394512700190747689671112952879599761247465284406048512623669898184402292912965497340934245935367195748417363839189352564760025032812516430163918022266378055819652248805785135457098233904897012610303305034764640773418519869323743830127721233090257642184890930597301730586725596813958052446191143651413708430542809608923494762037076243776590495235216595371722785328879848990638865985445833698481816836513284545364390517300293848351740444133812470413771498813103106760541406061752108791956900529369659904520179988249174983866549359403856357499325870535764861193271030090214447763140625844266498156095915498441784408017996827486458303750646657082154552853452526112314493372366721427502113711250888288185653791511138433157945034067756448523182741419352111650689569374223301031727847481227872959595260639855353519131039205318670463749062172797576711734524892850733124353727002882353958325526677242146586673181533544677492271089578595767911887009033295179238375666897501143244559541401400482982494492312704350045202541971571066491561963797940371530751222086164911198332954349170870357574964462159512973903425885580254686318369633146002818555122458342752179180630530950248977934586760987637595339704037747378881121340095485220625718952389823257611187402835381858174723735394915185049595265967550687537596556342770075396215036349289527134219648413213183595995862184675363290080686584027991018404547219499144479408017293677877307789206978458186976527822687413114428561518012108017117277376315480701784018243709449053736022413184108985332050183217807072145761894002926936323862712289306239218950510286429735496980890195440485349035580541645876368116348849200202478605048278157288992698727788604390862634842418106865195045899801529985976401084021943304177503988543714050953599751887664547849179893111595920453677648883041147479321538206534032274636319246214008540578010271237706611838081212828295272046978407254574402550983619317479793911231757945733927598445940644835776794792474989854434070629346574815219731640174185575382275420735118771065626303056864252713962696639271132741446623427120202159225091061522344512026484921896547434643918011617386122020753218263443620306507758397358694723367586664732637809001259346432619302377841959963023087267650340161841635424746525732309789466980389323663646419848026054572366772322862763436633873712591399369136450349312047300347619730150705347616939956713585127769514937739114505579259469689599418019445383767493649043440960175168089272755372678406390720802398177851043219498332251206821941833788244009395663143772833105913671466488311150024887284640977533242353132570096017038214489184956150071515071181246702825844492201359729996650014746210378379882795374654446509680852787294641105135309845612921773968182556612430788863766911545352612492215022537325340639218846870393111916649777148623480092029487501265099389660121669538537734164230035557899800417994786102366897750563247483887230680973939874301211665535784147295618607948615764824822595960583531722728270860934000803896333131802461756146697458862096229358302556328048056180796318435288462866838533194453819108418416910476725124684512867167413781576236017079078049255990207116372312048309835555957574355856598283008611422832939912692121688100078569709929440983295543074308956498467874831218833739555990402265779920662073698453304508939791861529433561462865784390895545406334650993440971677421992271990021668905121112053644382942689050740021820527834046291559118404256094273488018916152341564303626714006364467963184474843057742638605448700747589842453828992811620291319136016127574384878194503674021224894748003197378820268530357889876137850449999548537311857009624442253050817408176151445357955717882952698536900846645587376339079493690528518583777194251360941913101737189407715135072751877310038231901258791574004238022824131046023111313932625924766620046820540025620147177442270621755188820196799776246992947808210303147257401395656977381627884661292339362376118678706165697114889363464864460794295102449700470104445328059584231861277776499341852833449662692569243993214908516194634848432467100288479113669572533632710566324321168668380467907232327759655541591428935218981395954361454581120129637069152290433421455130286665165149537434847688560274049479662119714014652930611992508772844734588143498342669540381526082984630847251992050396099404221977834306509420259087109796591606535632435887374853230917109695979139121265704280730403726124627192421022924391791466126525692096169075193809191754533412613704610429837328683300129645546096601617444409123387882766131993818982129294028966415264483107793276654191759695483266498749072643749407177487089701672741048530057976449764789462332765357903632499327816151892491042214986612456138070855341790509311845419161172063398050325333952665327933207644645904730952545866165954053236394666950167982073093350649946150038603444034465758474660568204740528764542734972903910123988457953416515431287038257358645956980535455181595932038224570787204945532606010649348156735730791950049166396018825136462645189348676713977007353809228873856122857301014104653660038252243869647447340628815551947117570839282996351640918324532185929486027342106891435252461076418532374636457084531997301777964279251500075056562324057870971257752953283635608346669815684460355446175572244522060609638886627641660059247205963003406477440050330289010789033534064961783918175365960222221982004228352129311882011012404978432439116850222471391064506704799781926904171375802748436874162767711927800177643546490113300343062173849198177337356802871645682279376752052973377202830886462394093614044252231789431907788218016802978749115595653828834406274443783570567743743733136973985521445553979118102287783097469627402793855663092038540457537844083733091262238925392537181460590885721690580945601889915352749310762539361855353859450717086249327517944781739970730824867613054123034994659915577014375286812649699798657299484116354055584396074543124459533931815795910336076774785954222581510148326441742837393379962372976021623482451991971208564477572979064778671809579717727988739718434532036607734948009467669516354132265883733116200134491012314661877814599544160478801433069915546400543838107431561470474327124643822048261819360847164337780564456318331974706938464046530997071779529927797684406871635809369447865568333934490100505297342529056706620361279367703889368002080052958606846727750055762271954387302015706142422517897358422862413459650448012812068347160467359827969995402158912138435368941744834711106740332778491638896023057661804424926898591890441660835531517368919434657797587896743131609896432287168538956131966244513268558363402377051355799720188748780797466721013466794876477036471968964575707539046626259368183342653041696144637420462419666314420460394332243318062899641987972867352793114705744014018553970661047188305093497661660667891269648969668708606896366376647900468081547009057543766672531151035147277697059652637459043022806556124614444323805596270893270990570681758455778143936216036804688857358529900016912561955846968639946249934495710486115631543944650286599808594387970547948087645338114772794412212796569309883132136049484158751977075760277916147377051601462727417854907694458716701107086089052786847194581152156349149639948008300331313645462945189175316506366599246296904898107422230475223494093712082512765105297574230466336806715661325523042804406772603614067747380368011498192421820929695579443883382242618799903936828670717631185920335248700847239680625396892493153711735017703922561036654686788837520524966677889460053676729152575727591538393643616055299270564851305998851326188876789971294387817718856419693942602298541153147290628289319978772917950087855643228490457655353221284344837183012574256842477487533322495205328662814982429192319817244900057192805817828240008035882984553092694419563547461362742239133744576787196235333783647943960085843291855260133969446222787683217997621298092489136542566679369746348812582994192298059180961919364851946140121518643001250518478319731627756786826295306867867933932227901576637515343247048890057966191488239262367332165318599733559222756163569535316947149566919531327754241676961034365106715886517084179194786564176640272689301145883656204881195187807993174772264647444802684120859683005158000396689641904741576643227657568839261140935599219626003140803789378676076087469608347635472007067697291211979893251744000814751075685631900790127833794364787567627282692867897423245085733956552424442273857976189254113038857051376574105848155240225716444759135103201601095592764670126712930978830699144463775664761773676391225189053196099231546914882142916628301086632754613577269716419038597645697497200097165448408777203224033719243888194445793741977615994432346377135155013171011594534205117597099569599751197696796331539261939512622007335310057716949117411148404096557758237679044665822418847536384363184477358596555752555166669646071356151117761534561987161180822485125234214756144100982176117541759329027314450096003518744805607167890179639439961321434519137171560002191275289373692120136927229650638390268591479531113124546995516342514109253701633472529037124069604936754762084818792263418614093926327425782698498647905760188141860747847776709790634407994472461139321765564539723969145290770952370481712802805975804675033853181161616765506670030212645664438002655252464309676585262517047672420014185395099381632017586455315952520549610233503179611490356252293374258537172024543903629333191396137779161701296466035522633882465161895179669052562995125768962160269902958803513299556028058935394785462916883097321542116905186891822550548301764352592864797684961577021885279172388983765567514640726486092878914217018375258573095267557159543519462088898711500452949764292752749923220877643002279889624941500610394766357500480200008512238688425401022556228752951607818366486867980766372192708776299594943103596472825371221071917483878398884632930573396479361267511405156687765189263745373668251868343658273069036674756745877663682130472297443454956261060649801802263011670594120592103037059349109902839918704111285804657733088236540210410656796342728788557709917296838622546427912922702506023880506345560422984178551351062310381406341787664045263662292400307025610281872894370065797584685126069460510703356063953436390666466524469707159477420117936473247117871635640328120672993910596699860262699964273123199334737522590476808964985184451266058021702701698836231399597857200514362750720149175550265507871017209541380725095783402178600682673396704831607020877245933928827107830482042699170696765518921568282183759640328781444289335987179036253018338062959586236840168868873382844641118266882571621551580969610432596022680570838648459031158549271835842640932477302129992195636471073201886678424553269732908703090551235033187919434761861656143682762730312683892933571568306623917702781288601802655249762301999566561223537936465291569983155935682940239480829868498471547302860468325625458451465591535399033710755998055465564777946582995353570196462015902165726270269401904639713355000821172536864526107141620112263250238003799179466856389012946566296224738636749636444324151576937474332167086775949262277097517365084780468387497608422206531069329307438303870959751323989644079769915291549737381408799988984239911015939220871553758680025899549353257768854927065113168740704262918155364482163514331274009372242159459612335569536282418469133320809174331631102316313580679561507249939269409959737365573592007086136337908324732443258715735261780129923865908637821367183530066506076801500840740589792330135676349004244180497678467910655097482990796935903263711576420511313407418117677030656894070375469118940215398231995037887511088080081103732116049263791989034425106586159386190288186437173041177086178051072717629954991346330126255825615963536082880144022088206530196788566893227982606770099190732914455690600110511286567433011695245960228346233729564298312791598976579251597346392516752771152954341641062216365046352710673967676435711717841751921697960400748578944232520523990772695614573031622275156569409888574953401054980162301289632796741712772549443313928023513305505169449364831463341156245849033746668286191915941399007521841463859960887726055253933470550759329494727841805478413528692509162825756136528315903630091430896081678452214211549934745500001979997201609895655679163919103559756674858532693711854097076718712724444528900211590475543174089736057496959812487777639979868159692802229399239525661022469125468538409042106842288319265256765140524768142980242971487220700913979065248888828487080116674102980958721238275920374924038399742286577575883782138206841403408938307503847940335123643074105512677801769205451606037358126843611714600624148723742051570076303959401944510154160313367573540385580637356924942874332574850904248194290824282863465841267663374370955731631873890722248875576689826187899716464034074837303191608467059657543644048991838267992067543525067972110068492835055610307890435756031275100600414770189424444080792393535416840421581942562672307690819259758597112892657094812243065786564504194154532461368513609592476717290500056930805732522238365212670915395066073257888274497090730859483074728285486565706807934455372429498258055821826067464379088114662813518095592752604392061204935446128664476489329376734172280114094325514836671984072419275349846804683316140708372934019597106082911330047969659321216865019525026430827484589036622285619334507896384110672103413497027069912398664269976576553742494123650604735893925876082231169942626889613487185696089300409988758845069177009068931654609852982304166021902364775805976557974611175929731605770239148568666181603273661041745270856951228810749002136280200759770087966041441786308894533025039673655279019768306070345633832010789710121260882832098090162925838052667011617347134916274537011866514808674184416823639311488147301775657939244695121373869127389526679935381476300597716276279846630959654382933822076707519864236103478005756035843796585208836287887412599245873764410422974500604213054413711420058511593171980038963370529969861982821484310081961773718060299476137761252961470143344166708569356751907215684232110745505127531725803372474809359043219731612525028881351700633479304196309821718046694612880623592022985717020746618745471819039030519646198618962678002343608696579223020313966426866406167963989153358046411017067023162082396381943890955986883528767174832116279153794083612349400524231639748121982422179334528892419890523731788192865609080767796415592265925997663810192020114067289388186404595140454257225695412555191508124540502722346850843309624508879073815957351150525437668156758913193000917735339500690139144524513991816881439723747156979595617598010130745489179547029019989114566094512228190177384911009286328758549041542520468222099543972684427847093154692457416761379267833114880316183036804198620689925167146014042369152830200821449416852499823864736573440190230328710502075616147137501384465695950014729223504236085506795764571388111671609499612385584772671658739928325315582240321384047107243607508371245972938197230664746160675682202456181433201893818921040461262307968295781789011064146663614935405427524629481978875797201752267902832485396929997588745235708830684686017100101542584939832631270888505053996421970068691327589171099582484514830316454124273397176095433667326053036070275782777674906041373478809468642197692791102332848418699861633589539807246875353173836084219355386519116663791397019285105758173099705836543233446213078587639177027830341179252326987069413437214384744768272969307791202052192380472891426195330062821584269660938415018154144827344469956041165311466517260565441776708129336415802554787930991895049094200364953301966170347403078985411816102737783547355826154557969510343024595288906575913219431578260931933982669269997097055066004539172114145945241816267942124739341334446031523209639046750807431414849388122877778128435292412217653729762319521462700137440887794939307234217249747055124026419924451896144620354406800057240887410682797642269214929723823109798111776641496443649876790103990989344412690741457190759453557003701161566266490389435011021998469671623451552070226321507852084734549936519844178933736901543453951143156658842304488630880857237125705187490491611077291852312429767375899523621080013968079865862022635841076173953197285318044007817125131727710036114905514444806507267785071985847230090793488823134257160932345722962284587672467499603913853758494879582852469260386424409758292629477194735765136765781621613985239550004403446846079031767000346594774801707686722773784249644521512764101633012671728297126637173978500650751656530828312301745104296864771446134325520780820053851361950587135217501631616435763368495043668866723161701286635542918580872864925328900432728700752939636308262103783612126862175811998682615122075484788476974368003783323506759209907876265943180541858257241864406713629721462714627509576354256355626621402090254555189844013019814706359657925277889603761358857732946418839220737018562624947309034342469721991891369268174387191171059115471204464457518447086368852994931500904990947676885300403265564810005482203922890993625179834994360449775493743420659123306899147948244182271172477170446022874519173361638402170663065611039069353907792024921803501469211361299922958917995917048738329486644059985717734640461141462674932477257181716525938051496863988758770712348122898563563050196812559303004744679605361083610228389006033310921098622408477177406929068895439191423569699203579231576672117538672390045021089553966075721695191856526224448681165185468278489737255133163487180051983232686913615660611395426469507148290729823476240638596480071853380286256031866042666541414488608228161515725194082148321030068536723842025808275409328716975911928124922063254076604261639668810996940368093379010202381869699657961073248540421560728996551745167911629099183593201255500756572051156080221380655523522667150703528797199819672029039982193110370868137947336623209296387370233097861660474134799155089356296619494848528191563276123817449071720992128179703035762355315872404843285848710680937884994498287817080357138979439911026023468603497291673662258435788220543952583936895836395115227002763618523270206350222386438814480546551579385210716583594081965919679268877652852682378585227319998900992383959492366189088345642614558307071282672405946965986715910558086325912890460812268277401367250971202616809350799831551289341540192284266945764676818523646890493486466600413096315006134272051459801784944971490547379597417801373424462319493536647818418985195151357450350996546500958424058238317013104594763698780562790237362610604054620137302086923214563817167773957277684832902055242569710293067568185932632751175353721693806851012941144617158054948972457147624760126927604348750631379158809112992470682031726034674295052235723561543479282374713965432265271040950742785784396873049573525311715390829322345292061618307767207273845219603555353324703609374974176220047965946986588522404182462295054564664154687522599564691539478154687638395786837507552516647766980901485098881248161296689567659193167184794481306311796785953665668301986247830261868530619684895414411799908845714949339082564949612191462727333673603659721068962136093602380280511501357967919226365484842836102684079062876697003168696558912979559995431038599022735387081559755406645475003428983272934181265898621761378051387705967447108999452064090847864154061584793984929017885891028851759844309160063341538724168149183619419522892137212873323740389761127212016872569314283786862834163980958773901629298149291727692333882384986537388346803040052508783661570367992558055873538295095020516946663015162254479213269454924386273970666104403718326585468211576733667195680070569507262344049296531201394905772631904711206300237361754442005418606613729137031616590621029525970868677532545418331823933081051619696893299378641358129427720196027965110283515486186983011781441415743426635953548607251316051402358103363723539763280724359423244276706138686571689139887922018465496011607879810576860901514548849630419782636067416951703381723447338431215163051264776170182873867654529418158693195927076575640434151575846819941581072400806873571674124069496922145059841707495820563592103414408722127622588291318089906176310222810141852390912263396244871118840843909485425386062498027457694379387746944461883834647104937012837544412909976408620571821817272923905458048746402149315431224254165316610198921840188647300214055641813512851063345829534788664278049066872755900617663245470194456820661616098695711710221444989237434615713982275389070236991794234775261499010008714923075216028819266100229058418776150059053635349090515975473414797205310646699900475831238655331704668525423820166344185406646012784349677489912077462947755739661692822934368355913777267939051606505645312426444850496835055529183745085435926887409129277772428734779588651463266824982338836039268116560717431052441914624372276323476251355608902025812066279650583545225669083117586663744891262926396216803988549438568288553003821036156690298560136866431622200056922004461143051842379509649905046677765589475197471753516961786922491208682749097043015571999439456281632932799101059552907349910588660173409773438225860692083596742280225949485952619182804393964965994358245280453178165824680913749021263061473717912941144330913787674377777105573741371208225541676828031519337621927508333577814027582911032447697214320830558166064776052380107066290227475473302881241677162980345644297306813338184327861625252275861117200518485881699943586312699596799595445310722478981841681850026244240546102836302775992085796901702593773018684256987931214953149378546766483043269567428200973116430850797437353067907168073823537037246474119948689291297909224999101860061002780211986670312442545210278137552520251359564404224965259182335813940167660532198903579429859006716514743585289733860116263903008115995430293015786499105518354503074768079339844201292743038332042835508500681471513416103391264544951494540490950663090927983596559291988018824052633176218994626545570458646792233458671977048758177323584438073805339235076237292375388197851326678446507534267309195628925212284706786198391399686389026716715859419097805971724906484668905114923187550655683594339936738631424146749970305209616635685453847094511528260316411508397087878308167258721441516980851651556238365272306686524921555180186595484352431265976127658906933553163532356498614524702496917535453347721623761470301166007740789183088206510131821042293867975301689466483590893118362968846237396379444913072151044614160093216297011641010557233604577486814441109342786652317527236135739634532222006126602397823559048989970243131272074795723192160923389238688564701220432902523105757122945832700260103824699992442639369167881242227241587183679829865340369551251166309882813971256270822878191643375525450527718881308139564382425881271637445103200449898972630794789997743190609539748770599895967349900214979623870945817783701656906123059630295092791876271041585570075991801037203257183760310631222714704429728287084790443737652587005624862991354966996304750781762659671847266040929357824714305862537441086577024966358575238463755128150537941027680050160415462949732882752070990505694716245746231057805526286538091798784867917972342863247467184473329723037371354008033203123611572423574369896363314758100077275736371939604719571160471545159792960659357364897536122560816462510340023445152177226415149315512896563875413665767471486715073300715973935418126119970563729683246232481456477100314645069604881494856378321193082160519977939881250331182325256648545865817301537533678062013474965687867367292354371333213614206440817067498107015821070907227079361433934084303108859247909682725956024626099792709562977046324790469025491124197935192320169238494136812230861882933208932073436667915649274598654787835579412823502708468242058980841585626091988438060832597294474854019163048413809402093319969679804964267134262292761778540484957831855009793183950567813116508627483910795258545681570321947544863676794917221942853864357902235561483847167890995881914708516497231627610742329337057394595391957667246439890293415010331578295135513800254003723349843376637766329606777561995651527313322420232260310165570251721006762248589669003483519899499578069867406014006967963651668638890141086640341714342644486512422292154249292978523465493704359853996312017585992293901235867878105204684230769642266079499334125293191349380707205765222330880224213507415001266543758053627603869124724325846733485694905570912317420238829091222613283664236305323819640749701951768018338870475411572828830581796869494532658160186722159065255081770565792962054664363207497719750263086775540647218807650060604314019466686756770156458215727428388924467761353970790503458047695855182007010123964126244145822396465383629087757934767364665018649923877335941544145273296413612631917537478999612670366509761082750811421025712558239579032727837188403438965977523077492109192475390841024704238471283528046973056517190143757777839171073411874164118838172895530524519548478032505239965202486045406032979169496999286490929031802886954625294437563276324720692833042212576186579466811743986180846891211903745583393215351346104395397302838665227219959715096093118204464301967457776419447844099157707367666003516127710313736546546758929539466850752073946119749022150975001341465927482171083913736751764895358477213550897241749585831376321671574713272118158384340893407414365850251983370509560914537397927994640926207569636256466869438518757144154246460795986126113324711393461584127283698050844042738364816795284319670548817785036287358948003602891523691153988663807288470785894464458736302683858562975429100890308750516811762968648587253090611154272029543946475202438894134247776033829335036787753274129551841902775526455871581129894867210132860435350101071548164286917317965173409241771260357648158657500044349473726196604528885276819106414841764274523927710747334948486149037307372860932946254983634015053691405261965402217713189917220259949475127618938774811911867049506886652911531324527930091775591573617032198017528509060098987233456465256114108341148807577732363776937927376707586500515900957853641457000969658056368326949573328981593830346698081329193779993528310836156953889588444168158989593102117982530349882154236408099237439024615383175460532196985453330382725735230530856390066279970402526170508525799337073624172685372762067605418672804662789629376390431091498717309754762989100175414710526612121888012564396865446296361092948398110953596963707125200753720763945146391703856182611074988044153661341379147616879827003783699596153320423251248194228530403430671689754371939122370558822294481669383204372766473941128179954037800593034809122831532214833602009860354071257033959415735706768692976672075618596926101536230724438487143142718270068138096494707388424698311252739340766811497826466107886089276402569025610466628381985145075190956197238156923988003942241191966138220667477055763552259753471777989907099844670596673349478141417830289883591779786457685799673633846747064639436963746922328617271865833837244928529075127851443049453015331039510660310422580783233863405136183454856205281755295885822268979120515975994134198699276166002276148722990902949876281680871583801878207326297977090651292935556864357661418274669132675570775471249950789166117581583289096809195787681522490690354976899176264578322668250266395569377523030060409672201209534219270471442407423572480134209339977172837540635778451240252924849246192060745034142749225170755674831458280293578686179348528345438530597821780442986641181682818233601279080269257076914725319246352153164707552494681683443767269913011875023599797159884841045261879245893089604047507722551606306424588337114276147370231517937422462368328864042943899532574122272603455242920165351429606947361249905833086484449160168404477683926644967868394453056944257593602440002276392090746125981113770012646496479031888847569124628219734818234551917794953844055632639365098645753256986215846200093364136889465364899958065170743214579875854118350916013982463718719608611709531869879140019308821550362924277728895620661719670308683743518782816307830267418269326915800956035885186125771660028894041787176180524314086585167368356190351555065427894086438525532006396775794495821833001946092254374129350497729287748562433593547702303537447951864291099612203369735717341519738833493061039417734217734430645419826026380312327491952333433849004778105578608407774184050664453411283673097816105548790652368000869090112330700660589969769706681961926779652368171023690551918972312229755839727337724548662139256103432185454811829058824518096636903368434087222086550016118429979445224458694022651541178216030582415632029663730395110993252814030889919731119377493733931725892974648321835765976694422750773140661006751034615998484456817201468577525057941554252651774090990454450651335634294260887874182666067711060152785559240615920563903984752727766966303988781164862158608891483461811295051660304661935439930099909884026897779660022366643012831848992248012617044072620293298449294055255728707080546469455737365771820611309020268208944792822539656391579875894366470039112839590348628162810645791678880525225061764335768425925389564611151419507282338298761129594909410306720354443291501556710849125844271943605978689845869647801702896003435803915255890935665721420527392676013025255025584935074438308644925979125166464507218011775815891360570629443188138894327965240672424707508799179941895250774617326468978695462049054272826108574849789721202006100537693772903632544416235072494324393897476026546981740548769776348110201478822078860928071924053448014347741469628609116080545521993756605249765626646008271113592081624110090424980203232990487854171497889875809112886962967192431926706991661856772155082656877689492731404343370245069005447919480875729777270002649026628868692888918054147198329051647690274982129802047604644105926669655908871242614752524157643522317465362110802312277659462674168356782091089143712263552506231493945929311668003239688160684114504878948134259556290130420940387311545463263472910170539133444398389234883453110702678368056169573763615758324831351837894721838818752226663081808694507969375775541173715533457787668651818984722189869657194617410759171824060164413185826328074885498199150653043243934519134893551659810309971539477068013859686694221302153434284204079490871069290014382190381409303251574645442000120774468048101920341175349684643591892849555995118015984399258310414803399556123402606325463339678166791603272104307775494532449987988100735876095603114192948397280824068433187803143610267519892891669102106239284972843037615114401184594088155503551806234355318096007558118848079372631676278160534497671259146252419999380527766718468400943458332540581719530557197553256510049967006309679439544693993352672275220077236013780420989083354747985187292278435404187574341978890279103362450722244102980313998109394700773693324002412995731711494110258661713307522562005908625343987498205193280240441266638922654631525010234922761941293656780781867589990596926886852284029345993993570163718160916090601653556166582977329624595860116218785189483196915536010151341541930317716742493714347179292375762950682752861379657582487606702469603718303298988207018227963165620290320824933979707255174587806220202423679967443592054119678113478607276893995675353988150909782367769322951692692949045476290911923009582537475946327142623898227326979566753034723818774536808298544713579068243823711440448949950387831673279239821018025655521158179492182725612373755100864810580627077210499258170305869810127176115047051493623219677554910201395253273172992024112524977511735881990432285698768719041826682739926342235350926872204484968059709091019756021397475249316810367588045962740490240652160337147646762128316092792110484853048676001852175646532975342552075407245063709777718263279305828425861498098097341474041995524352106125919056634744166196149256886809263921791574636328653081213129558853425764799051784183677936610144547941080372367417857225774915769777002960506906272969967705312766691842040761714716283567637988554027179176478285414955920068791245867972423921123164770382399150211433189749284188919535087961901254603295882956929536059729484394938523875692240369295710976769014386862972785230271164525130769226568789519942628646224183464087190152802030143340891526621822859275777994978480557861442550350550934014688453957238731912586350495054213755783856873417195140503592284607273009107961107706277436297988063978399639202645043899158335517695253411746928928185192558223734539713488628805537107371808844996119939787532892854142804412908409680311391640417374058395430573536862036831500926194428958165773096238947095074540214517933260716185441504066720911751696411970482948496201826487846902421603741365022684861109551619309397135970616406331974976832029722343192316816273139015537377830097148623959665720334154911440795495801664336014855963620445729428775779613837368889229886007375364687838092052488520833503150303185356568840053413673361398188903720261202654060532237224788811584675125637333845879830696090000837684821090106641951738606680982601221956204520925889870515327594282008510238846776017107529338655373056032543164390414501664673210154568114864356561365035777676747043644516975877254558571501339227808149665365355281101951746453432423218789057645876074657415233048905220744690964569283568470016597813369015997320992907065700956416565248105456887138471966098950364261500844263730360294473884708879293120498234589860567541861154045914579758530456980602504603047814050748156178079298930494649198692241796131919038294347192591472353709750341822009482830373297199934987096496030491042257252520659301655747843446025561728644541042149108430459531406910924056617056933462306049180598719087110747921076879828437483228623798902076241796448545947808516538414445676044456813604687869678473619395464179765449694750412528950634025552319285929676133749928572701895736866332627585178047562110315846729586378099729050588514262238505209446082410286788626028640825626498437146777224704884488434326987179869662193126437892330495157181234205508867832977325439628274949422450772562862231609384952783079017007157174067067366806505583988911322205750169848628702116219136936578848149123030493123227523230419824590258023040278644638522729398616372204036838223779333665289568041403742922622600455695814674967521644493746241807104760346542171446560681671721751264785784607751218716380015067821178646669624945376287891418974462401285033911917516426861305908503026971057079645248298864192195886511763508749120602052338877191920197635568510019926408213698712934902669878759566284269094720100147279639450414323808189051584608128100880830396746203603491958633461082996188432472861677247479757407740920272625850475959187165401540862145822596578903666339916734315611747416421759265441753953519296078767178094247641496385430847855844450007307597095257365396115152728270804021201684561221125279612859721050361391668198800194029825223044347448344351650235013377002599083974160664412720094646192475570051507034364562306055996879100777765489173291801969703033706210248421442029010286747066789114269451624732886242579603096349185561023219044557919836629477443393912313063085109605369591455176201452894611093464339544119923857303182588919818293844796777187561191600356941735449422999521677267599507813917036517907643933883261823334582434917119884932745092234582069211595620010533645839177826701500478321636772278650349889835906489681618230861749568190187532198591110138889187218583546614615551781187873642387512779581352602431839555928391503949767388143775327224948393421614353553812737161287296985465815462994181146321937901569540730059633315951310721267773312795103559820507352625244170801779129933408120631533748051363790480645640234387077862757637152104134762855554435109794859551385237630151081807067428578670907829455178066122558057044690541421974108204595319764219875147201619325946962678771526731522751671861165174300563291720081887541041843207991054024496325983101950450390585518825216302112268500800312660439649997901203084455865645281593185828412429194256469380793673565714588193005921742899010855893970852377159702011401456699447825583210399515099600222175107591637585209011897282006927937018763876625075477709820347357098349478847471803941621888016829052125077187680712073118659996679056457678326145308317855627015033585873656084211594431148276552263414951947079720764528904925247488710316876170973153075014532632797398366595225260212732852932413144857052710647808972121222654007662862965976041853504465540244142193414619785000828847959090691262398129116025736828765371068884730842868343661301295615584505980709979052143997358799672041020799605306781946298003160953107337604311878263898042291248255910897852572524056834343973501870340304067530991078879553097408646535956761161517676739452133663672994983089369761270399388305312854168782923500042767972991491017840152886626422216066247147178651317434797196673505869102549569255207085512888818112807259573824823009812997356835374096963619756992262479067271477591565498729359382003844322313949087661826860607112731390607804941430290280927181325357123687234887320113271921037062177555486532829988145133385582003855800105276013415170904141271720254507320369444187400917466894636253837110501243077147683198005840336685720088858063716373993233585461120047764462569934295352692405066658688986501457417383290888587791138261965335030335316990775928539799054213087904195945626034832936680949875819429145087172392876343262755644567748753450389172440307470384215341617965681326764393861820964443948927247521506614149522882530077608830734094705634814159744967484071492342089631818794900798726941462132874834838485113788561311441727368865405560337962190060515976844426036972498632047982415961747579637352945301671612408199081783152712169045357554248349589050641281495164080757081499777972470878379966600247078804273845028112003305066309116839978414472327847535137344995938880884273860551602636205667714077819623915916767367430961823998933746362225990544672732066271986760291005166839252147672856406614919749579086388961424428150190599580701135585690373126159666397749915273085357907248088988235359230496846946725478961130596676790254804192272468821913599915834286466401167104732052321155731003712626102379953553114312027425564095674017381906173646623694302057761652390272002734500450271651337907723289954761020688882207417340262262132277496023965724616833084416490509979508258919649855870356116641629548806255069411866250891754530464512554812463020614822147875444794517697001979761193754914056168943077683101543047750746872571195007244376802693086043677980956142257894836701046671315239258225091699095264569741857451272685316816786098504021749943705054813316854119813548503904975871403929740105017746119142989985122375604780723276484852158613608515366655274925520464141458973178462405313828930772996067273216790635899160359386016214244315663256590676790843157338692560403522252504726457535778651554408213260270355944806979559922012252540725229378613995149103170725461764898354854913414042238934584758470329408835818957949119963450708820743824193601882895296999471184142414010959981541601027658095955642240454851745741464819037110796855627560529100617316133460315778017179333157017866627494172397558987383030196265624770290948941867877624840220489442027360627001055076601807259151917336037399779059786325856310804181259503756346768172784011428129345486649539057553860059868181008378090628392821449651049180956799743836861317383191568539634220859707067318353010759690701055191315839551807470932846471114412166863089236559866004482814554588662343475189789057805090958360865559160553073741856280532375601130453510107961068020755344752434613763024269587849613601784844974086236590092862096735813375203227111241706453886315299260064362416734388282240003354757933941057285324575406648792996899735624618633676219343951546242350096518762404553009350476510930820691883812587902657658168901161773809555577973934860557310602049085741572294284084745358705889871174491212726008801122394279581774354199219600287023726928959414142358505762504589142016372235754765360636721530214751778990246759757879624199939886026777020931587724675094777901711510185936730346478117992962865218631830714057723237123138026385333102993193317262740775399211430061357815167788958127551601133715445679854238072580358783536937866050785949573797084211707731474769598028925742588515440476700453801107174513908580861975110569939862206346470794985605714179647057513840944032584437500903371789586491457570830503921544559516338725959564852498367549764899025979250617100235581199007341977933276445876627777248859676650220078055676676057784295911762612308486808004483112268144210008827068333475256888676716186903461714277322959379166875050983504870111035481486410489704221609144951397803584464827960802114153020803307331767906338055270998854912506556376422006768174909331701198149715835190297616664934085050105094533459730862079144039944202527152537492053549491343823721543545630805832402540065114622242283177695175691503157707342983907045881306248642473922358998758027025922727690819831932764456647941175305128242185053473671522720347470168515195700600562448248964291427931939779385540264035502051815911599963342137992853672198785742340238134544288004454041569756595389269818275686685914622002045148065230494504110649110619513270084077349501232191774333355185794772802692519895561803542387723647709579612675362312638136689557481068154084698131194014014774399018983506923809634831020361423383366032447228023745058055824658660614470023608605458762923579266659666094046488132689474191447410839860209788286149701642491928455815771766051062151260194237767567562143248111772237667834106227175062210280023353163127694782891610731822730326236080369358263792216465580530635452061208521426852095800327921920836052116121692191552326785233460375357875608311870309219604578756301209996540149849262005612311740432628397644593990307336263954317088255019772398710546862965358353333253295252193804145586249744901114645418827525002396462428518686042511651638290074211086449773635984601033084875759568799448236865210617397024967264925571253052405642994109213094769121663397804676667639653633379336827730354989651237311373890808786222178349180952213160381207879771482236541087164271007955904800324051090067847786078737957019688579888522782508162702292017129339408798452384923951482851284045170475992260291030058045165275258951255036433077102521068835026207885736864758733498539962449038826171782231075853711157770432795501425857681817795190277566281100486143733193294067815676319064663631763871403962526353131934370768584910935549253600037418997746049966799597668757528861444122842279543258702886995457468130050599209676445169356649094377382954024259807396872741809202698023962499040633714533780470149510528052884759455233824377430554260796834610068323538755440789933634676456685613955368929973036356168894789125784012612207477573469177749026823016717807149892486490505383284794065310881308109996785230589125841704149924498670638562917695372157405490411208607950965130205853405590030832891938765132003771784314418550831587199725448765501310557669020774074293181209553733292214860501983452685334268847431818662176960663770135282058158310462863144714896564188140162993205874461955461867083903263187762895411188641513006713190258826761496485941409476223426364868591914049774805607383596309047012677526389679758686156284260487951709778961275600157516375208426673180351423112084393211960043124210875358132948319079814326669670174062604226735190473306385506463198424848531517543307995665178243385344793434278635838026309377519020263340489213910695420366828648178063925421360166523513593587916983193092435065951998766140779623443586326442260899009084867317589119870461089943212458144726481329490582156503935261527373872823125128402752996267868396826186539818610473488699746045975493327798787120579995776342888466522511134667441281660215486657364968670707575100327245641044399188647011257040781049399867306893907059360938295304367327579308329879710820992403617935722517317019673721975740972567923382115301362189308589711942149368042841686303533918900768079398097735689796168694003650898883104202178530668761833612757670001719711915335747761490008375799649780190116029572671665931407603900790408768639880562036183282837765429189896389145648216746762050293309568595263056893958243148421722146768002844916132586995564458962819352251859103659702894887230778345621222995924843697311833476437874313431265332167796961275960630697345671410192203902328876823556511114235623178864849157337789377603277931303366534726805092794997161804054469097959506208883369326635008576843212411757220704943803896670348001912361883041916309948624196471132534106651337642029096825186470829146675752069833053568940446165805192034649919413630960644890372591563731550425862046032797552568229849191343802228031451936866846931862691343811592126941873344159815351947888156129517309032689693159645944378379103380625166389033251917498852498176819642062515339831915454672594325251136553774125052748149940556395659514463529122747899893898223531704466924960198710272771603312906638450363797030373703690220770317737430509994710994154146730488099335616606095598347290883009614711154298480704894940502996381596080014576584148672635651101130991863563313266894562083843085794907444384171155010497332475640759866325340215345552976521759238949535956373150423575341783941594764023981193640342232445189095686340681996533009676203756243953466027639850658105490824880817478217372213890185961342754802045392564069317079452646517328786735190454802887682854915616504538700818002505751247594581230658923952067508219872858338924668771369705494057877055037988525492919660987480635177553715628401722320583431972818677402532582565413825783063856841870776774193280938419693691929441379528921624595573509587283230748364389208885727498585977065130600448961196726271123148532166583495996578564022416968232556848644435203619344441245205476879228528413074036132436168732235407771899944989871501006790650195875645710305427943759825355296680335943912983008413941302122802934352007967240926769255964692405509156758936416307495557914566508413690202648376372210221935748122193223919611953925592514252663641084917273467888115118577457801096112596149432972362156806680578661291768199742434602253882221775551410004717172491077076996606661812479166487212990124666205132920936110770081558973302673038944935600742843241051252967726746035636981646783852422741314627154976951822777687275808236364945502316840632493110108312214419781533683896361080379317822375731170914772905076972220639112691157147113674050764301983534013309935229846876545757971009525977527877886339470636403386631362015538636408228528839634280227238982971095049651702583971842664353190132600352904779736615967330859540443787674718107369454225729184123775106083652800850077025279272025682359650750766245629106506359851766262596634773470512156413457913934090753677995097907482588200877941221369235566797815888640730990755907305683151580372882679489587797152286060538794370298054224768239386208420047533234870618494260752569011689934060071305053525745337762755464737975812162233078201894376145696961775002603999948915789062535306750671185435543113820879570330214568085617297683026058712536317660620565901439431644517227198068038473754983592835421278582562491431027612172743837367605647912483453357955371720070945979459100074095485343948260856589562188511985259977228328075607313854890180083392786179445112858023344525099942578011868916040268024398034197189490708822384228752489663792843975628633839962678480478720736488200352672466903023972051833868524548898642273994000493314167221144929595843973240237521002217994104571147953836973784875304190611027838244840535006383394387806279636300440550811363565287006130202616702624167881549216870789981299225145751674226673985977825272940224442970682575562253781898639155897752515068792650940313438605810464151185553939322427684325767290569012324755500255728153998904543396835352822887419124077405178941400221337520271640282357913938465058176827898850476911050594913912269705438492695920957267488648200865740234215984876870178477108304101374778039320185603842466266382421612954392759880173837356081684780815545144564938618199930656059847590623925770390028042375246948321550281552925347634762813923324745600445544630679309367835369552682365432953421992272018906688697621078287928301556726600846984321697114787429685334111243399721246146073762178109511529539390497477531581864264820690216738480845353265701368819612008980401098894109960572101158243142114027727201240868890896219827717410404181688580191495921300682540881183423899370105353530236569041835215855496075464968419837152687316681340032403725220188550967261981130751315328974900247131351717210939287638803198332657396319211761196353253009961014714556913820728797341401345629498328466085520685089681498632964450384079043856793209654429371860185022925779707777216677757040076196049070426115135124765237528077178628101836889716491419321511513122341537729603702492410156705327819600178023450203840234739195228051990352401752372679834673186387418002255511240848427479022768107516220207382277009502464569710193281425191321043961356297248031248103004434982614302103164339048943971286771930018994216621054418426064498703165743800007462941499683679717192074521111940382108448600302858934462604311772404569516115670763350735530611621018458650904943630577574939477166349549504710332681121738352339127870087648319317440175613480623363729435412923045049530623618919908169858637003999544665194025155799860880482474788495046460734470736629497103359260462177964688200705715282200443661213902023740681211110275705587565692781558842883219263315722162147252033654991316991598201431410808317681634995258289239529082912711748656140209743535124647149563243730464024710980049213530522913479947731922581158301798650001392115256322406125147214920985796728390638867512987872521042883688553711420014778060752155265983325629071717297796372830176042332983994885409907876169648190119280894456268331086951866928952458986540154811955945049045236706845799847379165826674035167809925167476025342645027860856766952645491539993876381676059179603695046445031330876601627282047526493280107943770641430747488578592250389036653984992416507068347906871000635417137420396560519683148033244459182824525450963315430630735507282242786971168743497042936759122217709743097788701618461916563453515570879224388171869790754857134806156670831908588660698202756908532316053935943230469690387611756770998084576184582284940860905075651947379328240633259709696160090675251389884954598790859576446824551187490647552929047965461188608168474255411112828396092456250508911276799700359663399572154309778708922576744078989402930864941257319487197135284899133635061640562164245634956536698748390317564246736413017706722284961996025727910260664376048131577646813571175035309699873443890443097085343387031014423008985336112627464353161070048299028933963392850191491241935371149033920912171089978256739390053134157395219765602504639675436067803075634082282494338441784807496450514426078993823149895908205316001340675213503457898624946641046262631497784174480757226333863741951816135670885174658257330126054765261784085909449985122459794154974446536559330550922957275075451746947060323609748996705741061349094407236798302328483939652063004691521011529481916499732136972713133813024810404873020081949332115620895901373623272176629543421420454848270898951115245771944178851877110594677478277294879341891583728313532670331103010309022378010697392968712900243460388885343716472300606486975731374093621038934825076447666639267439073714553855164702877134483069836934197553110339748633074498622191878347595766338851637055911047221114420326037659324994854894861419619930833313091675826131009222232808138938226171098897839646507121792439737534747046072109018723509796806888997180288568522047103492219078752576723931346524917088738546452728726407494082407000734934448674976846383348331405076963388890169168248592247265484659332275571976623927101033186613315495918397076028055835621028978734479127237865511506799240622890188858121444963940599205287097406839939690532197235450070812511501307048441679158835755312002949585375467242189785931113989180751007950907744124677539692607524365310744668756448261451519700812572519749243796788248731956344580656158567872793261663529225284858266996474291980097243868180118799758545119454174211073858042326740002399397247036977858566220784595850375646653528284170146403136637887922002315073093465299099371010504598566439461802409541366730620532967210698789194578748782319297584059491295733693722312151976472611442467702896464085120192042447637179484935252177687988524913238743636950727844453419996710761657051562467495345154665783644607028812162298153284130869115158936959488426283939768839582965726343204788615985162494785428171896917283973125425417641185533312144931933102805924611611100590888635718323024326293304422336931457919546521136849897476151550911489472024510923427219140806128448330765365397367294144246716412101793517782770346512222881864872424144253139623094773561511004001793082906507687676301499366526875796131300157923121408546255170165763226074306978843536827417052349217936866674200328675808635976167154836508097757989006141683673470944630077932911217227214114178140640004981608122191077871185524776322733670503300858330139419784127545394292275498295504100166216229980272876162923297010107086938527309266083055016777122378132248668854587016794944719053322260551747399940073978350245854972170028899429717065775565429291119245879041061348321048985013145155313778925889017102006259241754261637108003724855206494893815181160656078197933888561921528377679763927891539950215922310858928859540259326885734060441239690037366107818485788841237824233371496415710675405871063039649160033797671586110741093926637765996141299052709756480491513585896175315097785375634164838296979510642245423372449966433608714327620227776354927251173186804525185500709434974277251597355728283520568216368263317348913592999036536026659602394943483751543536425732205526111859146421496123841279421577286532208954793929311460069963812189999447154457747769411957368580795098158291992753342893152435221915655109768302534307707878393217248098714836277009852728175865724884332709362483803153046111737656984823531163576337987882154202614040321130566276443212117436901125763995922587586334539266122858582947178793139407535476912132578698963895421727848497025231123886742805343817148808422559073767284889763004793574505976985524480201766737008413753854738086819316265417050950640482071777577369775717994444832018287739764377346736798968203910431125905357183580172819985978603617673244340360760815390376876513471493599820793603834762821657709391266256776091937312938352108203679443239615547043201672346633089189516527245852031757270954440828120472074481519375234045530463013365792443603770859017927311315175893214208639962075448052879260495876759678662682193656354643058173044660166580175466582724500745142184066685161055846079674350432531302990398914848612048640302024754984178721698198868706173703839871775204590684354509292942798832566086441528373206990640755365664453352099437579192535957457524469108689508163155107743785223515597605791282825280381592144697405585399286124815388753979203324542006034921582460527913699473379012289691590571361310287087654793302720657164676299142470568274228818454874538243002309497287452165426724795928051862493136406277903464339263847756914811061767309868733068165781444690424284656405938338229858029647215480924236074240875501878813818629194172127056610001966823270315772273647807722870289767640132032919691499603790243485503928684200771572490626715693636820278075693220131590240309923093353056875768755330757077540331171116844325769427769796062674865425097470705428627163580143090947170984635070098628691849210248085600364751483189076340021002565871343695831861194984903381562522280821247628071882018510849031615432191804661343072424355537901935577488030898650181471749429060652052114889796810118548058451553633426431728771700987267758444794241669003082009877547845911795015667470921794146025812969982567802499021703631891007626070375999580538344089805941859234299169169973363397580185896427450322600362515933720580291788585616301399245736589381823658575866792883865475996991827090132682806287124069737345163545791937098312604180311706197356561679445875176882193926694618885922508328594437699678018768301311692113892394776867353375678751309439592533905336843014267246421959320665654845133346597645638929651852586162522752186814052364757510693880944915472791186910927366928343365919099472708053746879225920604789035229403571247015862766401403961313401915442493323890855288452542751505168338752982899724572535958093529066343286073971318063118977240345251659692201836056603118721349966257934688596146771348279644024106688359476500374616592801584752122479914935334014313802919392046277790082997958592746069392779859752221537130725590243564494039358749131252263441008595634701722151939012011768508580134047016797505153671692062570001980647113118375988870929654690881878379098296167420054955755319911212462076289863707192444737640588556278072048387941079843643308467578295493514845162432752840132276932791833245832879920128351627643284690648531983077112397278240428140980405801423535386509499481218647775082569729865879010793715686957890108792137943307186016519152238391012579788407139621397366873863019908067010188413951372861722547522465951687100874193176069198546231725160517109766570930977221787776714028686931167442385590610126370563741287939335905957430628315135314430185465635109215406940166254859729354383898408748932130209756912328020385647722218158287736449054211825304490719973303202775259267213530911862678554045695288861491816388309925785032029777388196709190139114697588367557647153169521040239736140046022175755834678377124446475815076183942046650297568997271435807333670534698324249760678501461075236341854562381509413056585320327703684683587972093722911080493738554707408466840925080768629789563856601665073717394788391734717662059079110341464422014993530022517168985090351502292944187447925763570429336515428136910690534190162660186383855506525269114778194888262291561000394301927001886296918721934609648118082924635254055866330604636246902475061406745173684840381396315395782220785078273520547381272363919540827468282663439182184098283214120824597707222539614496399119650726706417532642970903506051034372656710987874803526789925480204778740828872832419025471539714849737562522326325216348885887123535974818970657738802014128207640319527151228890601830133670654926186598035724925351590283859548628227538462834732426291614598187512177850219737967857618523579556164898833025656401070061478547010523210195402978457231505933064020299558961683583892456225982351544902550319803680300509794254619565919271954035061361919290791158854308021531399054058785833181213603540950365360787111101577518470080145865715647553683946312238744601417810491277268556145564976025448042605996627608097951801156110537768032218606705770947824037226875973462842325417366794646058848518338748421274026335681224206447663514309406049038314926287566833536210688276888839723062400444883268698968329334377496323473328875701337165698744257161366946097128822543865705907816987837154758766328163633628125070037340520618518900383002028978668967045623102738916709530822640899612059116294239538278170734130452137738357759529227586302438812934698379076947823741987092274941791631031367832641016170850368669082986623915456098430098570101816518927043048360825567222489778179147730669032354500605745087322998183150557878910567159576861631197733594806249298554547268584441069030084553467568943245333943756654623901723679747564469213814927322202914550413586580078431121784726251574779050157954187171363896894723237584024824222027660865612030862671775523047180386992620322560237804549390177623716942337784608263997324031460248463050400255934842423632245493484222872443323630399642623283245335757003298689109839763221169563390533664213902597914494276691394713640600511088809990349138420654026984843998584252358329723576275040564698429459746257092315392088072394942900530231680812019177352176216623554586522937919181780560450038212954897113811001745625730584453277934743859181686083256234038176017148749516537434179525178172203251057073568296002359521086021896336211435429632634725297890037525467732505387715695099797047980417585231391395755420209735806822480430392248970026313008043540476024625744246463490264555124808256498483396834012679387046861237779836514267519994713535152863358594439782263069947950505608069478701243481179638109948652954215881831531195064204377222970361449202186112901003872252709221992219661190705407940972495412387480013405373256539209349863436903173816814704517229528635151540648939932863587688176688061203026333787176262019592213268893315414369536451386710671641375435056577474896957250752917999504559024782762461597111135674406635566156857551388309974919594275178242470662915842158596190672813678714008215469605389340667713435783541977855882269362873670954028804932463785208586992724686450908542234268145600545000371228054252662791850356279550759471573731248191326866924354480334571885623019884016121633172461847529982946214863745842907996512525575064291571574710514762861312541541979072204914897482948278007165605030856966822894447477586871981431890006456973056808018043316657439263174337471028817946749686631541433206795119935024886179935566264868054488022727767273074713316531206574810085126099273871207411706731019508641142476061032279826910278162070778871997687222586902985426756523163024294249170753237456758001611030325113390669798035390223537361992594888930115198755212661046634738122001629928406121501852001310444302050403007809359109264070830891005310542696753592000262085794593064908431848251146257805237382047121227054730817178861775714518773729260101824748415178855372366059889687348127804077407509612307546247813963344559654810686187281538885367632509382525078489357067586233521295047502941571575227320826682115083260022490867495388802587343932995956780270191788578136604414229734118923883112813783094447043909179700488099078871270399047898411866138600975714228968363531728437257484576822677060115711015950631286268880738964891202777526169127496099306067965769811129379380682013491004705310559048725577059879142628028876774778833875982466115603771201258786530815702492436077494609810170991120410450073855849261562515283455778456548027430712922153665994993692248880263879007878640328276802800063931058701381020516889878701459709924081824076644199564856210703025073427746320726413503539191316412655145385109795527039278189571991767680495891226489755975729208846127604913399850214212051966969992113776170301313026148217405235175972962128154345371807902125005543644956172906127280550196113285485141194374778653755143321196393753208756930776503022963716595181574793629014909142601352449285912280529437004033604386970632142141093868803711752885031278733280535528157822954292844009460893746055984994902369183132763685291250781635217913793038179164680370951048695980149717847258386446255742920246429752639104611137830132221913070749077156029309962062273644106085848223684676409235689738193035219976150907133595575418201647019449209250260126564734821360690887418781475049481771921760141256149527368106114232117316507021034246374329226433734683512207342199147695851310115380451281690949145642834897301779537936339582289597013637765660726210374879477324421685272160300667899214803079754378375738412007766687120389442129391663098849557095397223845893092706177169133556426128968028954356697009074076909216562208913705508806929895429007054892922942911356126100341322451091978306909526425611471828567560602803327400481483437909799090372745171081407519607004305393018812446307582222252759454435030759457946579005103711773930996481007316701193941964606972674524314298044748895486754218198956741217416302585975497219130436094011477786438793759424790575137873008772790905809610863527368230214844874726832708851890859160950737351276046892685485648566759727152295529399629868791856166713828525354680208144742834573397038990543596779884818814144617709865303907550150643144673773055978322923982226098445954037134895115702408103291076344444718019667161624962253144051355328243134304290370489385023840546191217035009884451484046357957183975862545435661813567256426455967462575446979047589405932558213518348137085776042238822628946268901008923677911525739832215823461460111815011429939552463760003880910328900941038070394924709614311182182382162336600797960285413140377656415416874816691155125789542080494493735233488558432794121939339556480565637325227166845254782094790774611882412421218278435604866610952547427094778111095010840409002141916705748665353647292230011032337066846764964124320763287957821035004264839184618900142576119228840411758446622751874213826024518597984687604891584815411861828404602082109765036469228027230910164049816606845727050028819031952879328082977838902626324252794995019734353793027502656301795192614642475151292304289750712783919304354646337922044276569821657099242111895083595790217235323829781634321360270764410555600300673959491789574098613458498882385991967421590639357699126979496735190184065688746365398342911729159778308917306149791271488155132436977790093586050729266659412198770513390395424032940773690265283540975888203423461310779568728469550302791227522444724272221691848249412410443038885047968657388431840723101336674931056352116258184527783398088165217252254576954615616719279706727909952424443991087184116955071352553773809834624750551855164284184219296354747550963054934760972956988836520808101313349151561742475701666056041974274481305676216427594470266010361338609246220635640850647052752835519150620316033745998710572235515799730812336332729141452570740773990103081668876626551381698761890170900725795339900447499213415396306873337262770387675263268456219957835570662786993687742217835365142850881592534035230605784091691292523328210025830036830212243460287078383721966943955709595088746311689361399777935923600750418881862480500246040927321868154567207743935887713103589753988308725911300268364987975375543217215889866408547991883774662957531284046367585668290871113734547560365761230638745213692898348493352011472237855457811154482131726372663852275053081193041156645458384021989047564588077850710531918823229435776628402647393048600994481665163094502806031345756235146558853328024231562891796918601410915544293087861530868074992108956426687826206763433886682847860197172164988141585183241672093557096226048570468650556703697930199146294889504805320623329400355303088237522257483858574736375173957786266942820484239486971664858210062355529862107397477191401425382407314148729755651407504453588083231296210162780985588099344195145865978370598746823742375352663269082007649854325644841080083101036238722652188340151453128210263632911332567881198801518871106891879135732318067909194420530771415726819235235610708961846048690005867167940258467068819686629843549504618927017712944831002891057485457798286947993711157068972232887688231600614102707266735800077456748210216087016269089818687081681820950652691884019945302386199240898322852173212958224968414048741181492461832950775975669740250347943321090757590814307666884907966183591693968098028454305396640246264541044411028481988446750785164882180372303339807186998660586844965195572601370565596479556366918272837912944674319335777812245439585654789602016431866000108834260174956980207221670434972041267537391455166829713583988047818983422355691033333373544657661718224397210280996201053321929129487600894110302040767855769781571359405707722209972427882057492149911038073619848189356411539020135301640657051638231465849071443632986766154287901423090391446703077952264857661285189028761109325779161850972143158159014403802027609565288521799877785348278421781172562879435267892873471234819269117601808058328167021775126708636307121011644745004398497065364957546179671092353748339951769094445324039013511939681055401034254762308632290701750061322900940758221816166150226247468690287489767834166289829540585042809785405901289946523544971340351660681106088183474736137436711834746165160633455356105822233888179563284945267105130204699238872413572255461065098888919460505201174811237236627846388372158681724486561697055852176697849277867643283915481795625664087364483821976089199218245354987730260212714373336373606159170188353896214765804977516079922203891791780549850121996822125365773095404808713966776024211305535286409423158198651131994411428155113866528154014043353786741486593293566296114463677690940344011732288609410338184635069690306857397590645184149074606758086223340994626165479694057011461834624811417355926163882528697951962804361875209083764394989872784728365318525370969038965673118954419128034542548103978330333680152860779282361535225415575220536038907343989611615354770796303597224964630119791625445537335051028385634172857513966659979825398265825623034800080198079747762590545993606057002381680302556369897613712585048126447757058929259441242677930041608120601834869013836258562267400816734968098845469516878987916701057761821724375786997016012662709927240197448217882323148970241327250623864931974859694368813718882752273577201897867441437875752086352467695173636561191130191261794227302543208840710648620475756645010258218288349102401708243581201638432737338043337603283085272848718698762464305569971692693720226972958720602800518947851522789098007352662828832009257773618168128131678071437968236063262303588801849995022581547531863731636866235373543497563591368299142558352425507350529008919172603864561007667047228288046682321439241301546304669343303340549023568106736437602300616478643578157886779482036246220784192410413082170496310399503874767485498168405521369087492102371767621631576527185146394703231064341260428023257601581000295734024754889045164258784641232497236520672591487944146776118531757936641096501962072576138353090531730057984679688601405797521927967343909421115544663211565073145962712472611484772969993856613520464829067689765305419815865869503934166451103038065487545321251717232719283676693509559434142119952736426487661722794507078680581309729234183836582108572834768561409564965949025791926451444304417078091978279378271881147906920426270789301763397509007978751021409917898139789353253179465876649853484014679994411758968179425490199516160121611151362892313426830618967761238012231623400095398841975415019598278453871739281309647831581639810166716073064438571522667285343984142472717338787188526159425072643757562844409360572350556941468212916276983041951451183622426147829193112529383365722466288141091388681326968902975408945673649212869315640444368288091855498670970981453586222938162155994524322320236863280606037068647920547874019257774493464591186182740824706784318177274252036879496673662272281916699636463599496077926089743612371272584288406176960391548310721758173150345755975859183037633004663858944832580800078357426337405404348173694449060860241710823114328389524745541408272759721195770907265913510361556193978167708147982306500590605872757577003185489680183527912495637349365064372616055650390884654799651667691270137006327505944644571580416469331084023999037037053699158267976707221649707770694243019264359567809503082453674931630675284117578560449869780321500464430744987639718198217628283744771784124354189375738688397670743665031813118848202930056071971904084511028789763224384556348527783619351277701671422938888250864718024796931545835159169933540746441514520937970758383330097485069823422032838553084386927597588107845315689174267833222176541666570763074206300463994281537484671267982001408743011839860972029072959578340805924346306953475549546105070180479009090286648580633628598791336671345595448021369625763668848190209945845097337189944093037460177121142018454863670733537238213436625996350192211826094134315478787226142758083606193726005843253829549833497781551838880679237929916748806751161040621744767075815768444275427693741911538666646962820352691032685848941008812771423029981869894150552390087662247729763657942717391201532587357877448196720575348980264437585058868443666071898225883649817448413541110641959174365872138939348787054485357318171539467041714872023820080666294372423806435153967283644780294245541306170270634098669799381704035124323529160212634817304543948297790793626710379075295996287619674482148378558332980206101111792149657018441674855205100616471638562995213611278762820160648072918370895642511605612328777032157670777116009046219159538894551876820361878360586881285519938536460200984192346369828904715657150680556973721368925562791342407498757029124000621203188015360615624778573074852463405057354160997208547196127391184401160935373267582767879020624554366136862338957305001073487051533387392744777256992638424966492181632716797212080425621966043083974605673180541666596649324826679705709222812453758911046314225427817948054162858290059880556489604143140812497888060077157291079843582604666088054039241318496516700991362415311787185215125838424298448932093752466060634282468381265607359471888585648048653422106914182455171524400104416275906464008410859417539038046092112759364625841862277795035784066170435951831870723181314475027361374854872258027286216656971990546895844669863111646104225849721163399336123294677464101181092148762735286154759746813092440450860885257713836899003769552182503100913201295139582180967020920350645880539069100924451789672267929551341724435481333247956678081592727699863093704485053889688426206780354194341211100466434305643898431983351456996916392120695792353421441120745806753849324406702877113162756616909990659295538824508028851527648064396988932007750994161525594184093970347281606747292502845102373698834951152197449244885654903827170716557827227039175033976126882980917236101136626519959850062364682660388594876137271810669915582846548878530619483555833452932105838271335248786997653594263958475957218800906984631400996684837227434228510929138193389608614700932258210312457025134835082565259809346986563242125182787254240733667543416417560933133293366821753212636631582594668053568781849421672499060721188438830884181466614868317236071513022379472145043120191687750104485610332981241526763447963477886947478563804780803996079163287005696722715075280305875921816735168785446414498339613681827015912974419872296393397202346476089074758631358621185018060614294490532471032942245418918820149203151747424209351887707375060888370722628057798012995668296662142266074692815352709613657222716030931299689641439365179046449638389681173596514866727689578757267663093966226552088086000367622041948695268821471995156310158542511724423909967905385850492890759752349293291740433593405624383286141652173276812011156753653351657571505550454736076128113831405317547042652559444546363541866738974423601484551731900450154916024960148172163863131180696981784813941767977730541268414506469006591956784991339773623983984338053479333098161319465633454170709258754662326955274539902932780800112069307064353080951998033083788526091782410305432169370352837139503871576818199474822181068975522189327047654990732995709489932612447421036831900991528354629816346808059361156728985874201129935235149055594696437049123792577116145447484213046342983109263905207924573607072508933519506099366377807040123842334358164875967283514960537027867310910271757853015636983545689747327953437421649587297886697006944592480831157014388921992652231952716474589016632745934434995901142088980087975427669234380455767640360610636958039632481977540473585853339527714038939014918892724173573299329372300767488416010659685891715064422943120240822684933465430545792600114959719044012879970493880742397812700870404819442529519227604679764801421648765073960571368891728441053451764208086893235499185817958690284987805781076795305050467654066931303781856058878652114607258874895511479855464233176027495955071526009463726380227576310554920334495219351594400195506285621628597651529016585605268922319992146329888124178936812369426029154288920770590788245481102491281777277184045109101196862135322359863956952261563403850440148409134333538496704725275865322749739757271278187918203855644296280598288504934683493723456942730721515559620115135807212609520171443681158275961305047962633538359501196753165108203317480398385607503537826100152564510601319636158004990933821774288728195921332395265854531924561121213817970214921396298504302794381954728576737177484669181223521029263251729287235209813142751445236024213507455747022837319066073135572291873652739914809305655413986230510667634578316894495850554955625980863786185149129380192645050896188481412307484252280402057852119108629297227769868153832928840552855353200409380752789023814227100739640358284793630751103260358979723719570603106748951645206888406424385463914768286127692753496889071271884208795523418401070800257021260738584804663893310644327627379624510047607302364918256001516337157393032802934101815197135808175891527413574249430674997344694465518193928633979498621685003371793523321963898420124649779676855820740919908799914685084642462390573942708222866345096947821518880090632873943423752629449327133929279721934666858144414016792651300293799936318627188298434659758401424006531746863332553484742343936690845772994494436505640271469027925915876453188669543946936432499164820532145720428997346578385357787174550185681811906927461514452919272536564689337519997654725462503645536149196349914890700611021867164592064851121035869161379732702541903620971007103234103075540976310538940402526930038845410184991111378680687017252796948937970153521512643039919106913324518259882679001134804767061205642241281615541550515216958516114990636589204700571658732235410011531775536127568678248387507285874328071801648975726321014578323368995982512965100006457744175575511100998756987090767437519974498082618290804410633887824054286027854412768990652438640567957758039660316433712921620287239202552209397241020055952202775740723460104838338932854343976580078963115004281179549530922999115348756769372073754906318563108676190666326600772144522313813837896461871665980282013186461147102945742239931460319495886413737515690872901049480818441402259528454222870106783001251270409651849475933712712255882291130320028539000397426911038980223078121921279584923855551334142789999354118774409185107005534818342810356381785000860208198425312045075559721578180293892673418044741549097096851573357493045349076092162338693600056853325099238057626946576656296114688021622311070892871995188176738739695246659522153722550427819706587884735446619890098226648539118348580909554242184703543239134677114779675383985497180815009039590475470257343130030736514156130361360538356010375494720999706115186189541713512052268879847992456392318874844928258816994063666431589413813111047683678593041347017694951295751456509043098645710115560469364121441753030836424777620948856584090567849917138436435909250389598997362524222679616834999944593975911392025890081613596793157726351179243901582799643992166609431954069614985541196454962719566000289557209045552698523933336119725989315493462381432132785830654856364238124184617349316212203018054811009709235368025972385065764988349641291882354757125834651897350649595583993402224278203716875344063222978202886063938395135948714725614470483743772314102489073692221537207689176217290116872550183054875506995037706725897089533663336888158807826004847440683338450089036830239029354906992633722866905887299859445982154797639249781903872788948263129201961329902823536790826048802010797588844303834873279144828468499801511052597459176242714172912010694144286040871780391363963328566481266293225360653588603063650004707547794055264260631721077168952420190459462659242583882375615267269114730902486023766105341674415368602878241700650088229625206625377256901197317633113242271349550956037111171241618869830053288699881856374597710448833657590779568790843093666436789142500508142375062893959253744694019402877693145986260124367827329900884135525977381107535952152114947996160169937322527895746276956595253185518125173514271432593179605527677483280582111094289962191273318417675101963805091663467552352906019227923064821027166789712256537453617624455701321326652876525620399463753272763189200376044074652278448112162925101902898963369993161588176618926349622249002545886788205753540514775747676265198129249124300004760556517549309166209726723221217044596121419727997110523521515100720234504664137563610630507697792165097757149289647874718451397157204475252421538300319871800728453426829916490932421852300354117124015053946200834766423873497229379135045303638808363044706280660655173041680562886457610591752964694749186782523726440911657195723988065473627911978083637484521753004638812382607507662717152735673992017886831436770256706315007346639289701214412888116033934138685909473285009693534194602701313947412302315081587960045878281893268276847807413809056150330066256032654331060037682414654503714003813520817848036531236345316658095932719520462902121827545738978940061052685736801348216440594470501911353350673364246451023232610608152699999363114285764205907605450934811679365290089170213499112174306661077428494891225576542904745886390588985454970398862778927829468234474869290980722966938255646311324238540229726962132810455069130433772540345113445250963857361241871400710293384285177707419270423376139005759177547678304508300521273950936227345883308472948226478962800310189476088461904635733925240152242842921767447263669321510184952915674402128148314003988069951446489724867679443819009244416338599265699410670065654029725859069490061967965814986140477594524105735755110590240960757314777244258985122846451407354410966972777412477992568630683130368816929931477980067393899192971998457337062792282714996076592556840138639748050245831316820052674937037721627911174328858796337161922818162824883190215917812563287685226074054524261574375765727483244038807002616771471483770626234188965601505846822409740608177511055587204483371502471825178324479452845511733481390388341587036576146413290067392768381219480970359347770928453165081492757009573774604701983226719932866449000594751397691928915059035959214244775149363981555872806940994249992278740093145429623810753212613142372864252718887013274746723900306152751905552535976493737482629769854383640762057657700363715451019607226608664845486122389814872184187471087034565232213898143265516004435373248564864480991870613512146279419485743949542664426141556116971638408200087308499532968469731370886124764669615561816120645551072209777060690786933743434684063101544390669290798831017561759057878907393808138402803251549668268832982003354095054461620884111903581740135229288332266335877221286494723901567951189575500555831166825128693329359730378374451783181159425387786245539772111981312914337075092187054800975641613405989581224633506555411763904761372500903722006475670475171741043206972529225835441764137842123258877382532116496551930369391873448102752744997497893466809528654222685116093837122863121019221337383880521487444341439243095308305810324704791069354858459111696466416820288709354798577952061706534579379855352214829730799842249747597658264291279905667419861946501471956621760569950781522754708934151076451057637259721537165191441512539337201956405678768446217466985601358342764389581733145692068360769483880049404243945228765786370622778406348005775005733130875067766962727497425049941405845442792232851916583482127355111319126387162901922865676925111720022919386095785802147575007663765138419883620012741704772042327422512986707406189138273621533561971928610182405123299435449733138683843452495837502306861933989532851683718165225527392106528995582342191369459023054467770948317897722173146333218904138248415336215451377592441404241649083346375481157440057943693009299917637163169497561556838095970317398925332534026178868183294600397757506316435519807768524341461751814874290136257742851058327020699841113641562651153647078065065244039377939017678979393674485542017318793961336027679926476415499451238358043826461227714742703426643824153291740112029639411608129847769026685881172822351729116539752398847984187530958361698565258885603592145368188090892663394984960986643337100981561336560848070720951673276984958888176846689931292280089073597104277149884544171854877718610047486689459253367214700707650797045117143665385145788466191612167944675199964735917001237256761032420787500660459945806395057567725740246080891617469306379908471561039054634347690095113945962020146925809103536256325295031574629789028133614683983147038340497029731804725425891420557072441302573384148537169176771517514612998691309992728075115271236422881115473192462116865491696403811089490672535771806890946799722800757167111302561424642322795116128410716648073038164063445247610668103470353247727734155391504525783679412728677651820899501955057670086061858611979164113960810118983970358879563773964461857935481500907789952761447883458048762784078521767090942223870212760804922096625713236014369528716157289673992704147936924107614507419762536794058921626101222011167790549506077502845696461274940908090135490857693173630547843587065260700547667764190882989544827092779959996982158108498818166038654405762995902882438033156517121600835973262445141943045194166809843134591389372521898248452984139951932696234623341942141145280470623415546142480875671994481734195813899964312420853886309632277127292704303597681500616835691951369880462647640656560007813977180528823983723090713721434829983994616697782778863994412630283865777276796304901868772251156661082275173056055476028158813481449717561039490443788226149540521662631943452342922749536887852036083684077877133321679211180284171184089402064192959816261344490910292478685012068258512616836896139074732235353189413831937263318902468720147097071656738795318826984779543441441754691598933036780294227730618321446286649837844010108447394155678427227368931618848411298160936401668508460365523587344684022628003548297222073108225104368975055704395425554472074291601694217197164904646029479896344573971715371051839385590535382423644980822392577601367252489059136643219820062595693461302004303281645118547044098226981277838433476581637542122385153764681207391209150198384398238159400500726931198789592722567353816335050091852705396067080036668016225916588798056377080897085843483772907994580881051573774519346853707392147051556158364636166034215312747811444307378667699770532952525411403009127888588954356028184935769671337513203155485621236891828498414357390911267462032209581082360869543777468593132900571735321278996794854750018092858657294322329460423526139768373662656310791773212800459022770337553877975744040166362873873508512398302267959898918376262281908346078539613520507490242060489471811438662164601330140311998675995577576833126446269812338145758450102186065428197633693779805363775969024222607856344405362651875530472847098262105151594223018631492954686343154459396726674980372407181227352439370530295089283295638267952820045860694891818477587743355490633965692977961083344949806859504659492953821246936277331253452373429623586357872115103572659498954280217129500872629622366075161791335900757643053000696680963545777695966296978347122264048744293785163053597627162403973817508617491014314739462857498390358747844781323464419120220109720638086558004137157159081610698262137805005426671489161336723281360712595963013561723110303331334647405939757209638489233382110634782877295338556524068171415334895522695831223057031349857279169977994600612025132697010925812961090248262276424717075681808816550061175811829383258399233120699505763656264066414031846886905021837327314667828315000731026348615617241149605890402017150563582571227417795791473734330112286997231483335324897535458608724486501206629823074097473152432315214541092943139466400320760286845769379163083883344888467334250141122611402903480353547024753417020862113147181419015220043084129554208755899206907524434153302465191661698250396948208860723420902777679415646006170719363691652864757745237135039517894942216138846442018552625820275946674277960176049876314650883255896672761068037788473356615483728889913601352695255450717381572660053624224962204541618761763956506155266255202885963139964097538098298421879876500017680219891005256074933309636538826488195837853882385346299962375567834387879913522544960267524536181335830956178723933447307317205705087802181750890051296901301983866432083600929209213820782344497162458761016390565970271922399215103549056843363151292773126825710298691288173357186405117432860192381416789251961487122520786705004288496758616282189925124024635736571298132249007458535452160588303285371481783276218372029262183288250258588892642183484648486041738753449990631638641643861120637134811970869553370659759775240425155995112585924205086595310710461482932833073800928981128903663388002302124735455252569738843030888080550672537209670592057110185217728378645408600957067027240284756106590199982930158698278308859371645191128180532547549336477194763068405944173659563524420682761679539328374892954911712729830499394573460940226422143697599885387937375207046252571437352633861543538587043969324590342823946987430161005826316050552013364781194058344789784227283052795600949441726324838982096670769985433259351169468448811395846985160581863156903106067202315215675118979811271923825249048343072762080888589419894166824537871002989492055827010454088490661051090640977781543426433255632134790001497197338124280491797220297556593952201279439306807242122301821382737422469135416114596541591368447567460591941290202704435444845608000318000363855268418682222097626369098021411577391024545673873786491770341357359526784379298006397273891119835713900830169817249888174034446093219033801836250299182750516376709421681167319164737787912851480813338984950977862092262462403032191020257892915683420630163418204389794522447278278823425932600464760042294897698475230828997499442196684897268366451921373307933000348735315061430294776452265879843419785497440137632778117931836159782085346988983077465344410043010857682673681971225487358667441833578816081550052150825196451662821111538635450299558145563353011092482906855287070232263460390874545608657601634832896021223813995215043918630224081927442227625586946907096138459616832083727062154097278400881156054959500904498605855724612546455452730441972109921452747700139832116148716618774190777542090397129322234968449615395282410028530558657007096703038446866593664058936173003462967206113793284778906559335970824539779689394911536034724792918042448982794791287255031773666749603399345296116228649643123556441797402685685412551008938277632830403252769091761134446441513227463766042714751643747349210942035061268287221016062130629963205167660328783316318299930280204920907617193682761195066188630708334524617580457486289679081884101283936250162932435382909964234527916843260248218414745869329404105834784640470987820405512751457349841811873802653391760445566014246615786249916313165864803729297522840832373699828709916132005323464013583187357571990711705908026696719453893058321656310534481401567493712905471537116864446973087519587906741760184937902675383309563555448696219678008726648277591139414641253610958587660491183568209140341266035682796634309303093108040925303940753387186865209441873434846925597331373018793079278789052156692253368156583104925334839915534124168937729875644279267589264578999301020306579175391070196632758040110403392539076512781983890433765946831359305044201693307621276959528479730027113670384554685340544703402072455770031948723267535105183776976872766562858967206974978004678826724795288293207632975727332081983837585232915498515293396531022845910620202503765349907622670726119458935150698423325807245204926545684135348883325949407128921013447687338169506155140759569037932465563560063797527100605749844228238571974304308533828308546252083522714614723146690616887479464262065467110732534875544906368944093082567682446744518841032505654922084293689623008390278346633709763067316515672984609982105948538361658226409436248778810899787237027323934699847021793103724403914550994533121956168386192063590814400366967323171070841400894574332498119962407366400073055453840442255233243094423150534293803803168161184546321204944239404896470827756466047234059875380674904162462535063975755946296988763436852743044251626646699518371438133053402590674482300242889801310127948947659682569142870710211252398144569537500702595798365994838498017165690478710113211854471938078413272860701741386476676765130814528339245638370765453946566671335443933077533538830895963099666202739096167230680223280667899320457234081321454850065092314446551881239653673643040147033188010309817991430399152481755662212561895438449981912457272468515145918043858285031324742541776429261864946791517486279438903403699430710746605540844912684467807947958073197478876974241244588402763572798801141231932512515764344655617938533569015866324174835639798512553819223352042319832643311194507734030886565906394868941407929385688702304754858070536035873277501842120650135580285071671649285369520147530763556036068732082806340646302674015827379019870969391371639411148939301713937118676996983869303161914054688377230931389448320109725267582473000145848101833102777478878016017375977451856937480722971430426700169657269234551539005293315536428506887167584542048393250032613702127570198203301411234909072553662248461164911451816377543707142438668805090891649949880940429078153592676780555570204552064237750317728446000344878568146289209089782238151593967065992900535079286168343319712517068756865218663556347677252681486608177174507586457434493240645306970373065305399257030961975365481992174929302085117332938203832202540062989840434469064274486375816801812029302995889085284459149670486049795987207443952964212716192241241586626038161554762572311518144634823216507585292857776779239537892502340154348522978242018103333390271438860764051602530491463088079218687499090665383970783426658286717993894467995105340306414042318244892972652521776553393458317858886473552631484937816454696492293739629093655778434988961314527973238394580512258082610305134698203174636278980190204320195353086108887228597971746667714741790433072376140833487937012864275780205004877324496510081340918065254297908431745378581283770666602380328548680493681638012676375670754025667979428208257313270005960601178316665160986064712025572201203752803186964445852011298747116529448862436041241790739488899555718686444368912567163402728879949204672593300015229398108060928630910945411256728833581375987581590030691258547673784911363938537894517563218818984340252035121559617530830443684829691521900746560742792762562175338048412418488193004080697031112688463137641311740677557757302851355960765586753124398580221307789588459779130722399198627135910311602947841114625965666704538104438808509253940466398459575148715926325324282015135553542414323753815045397846476552869985763037127725041138737878206420907910200894237550733360573481234871772541915338422928307987553016112910363008898767717653855906289712080689214143349612450748570995151099804415157720555015157882967663911273569345348652979713745047021779355044642068698544769879161082212676122117893915336623854166514546121149679174446015220066220786980047568808315339963612592046665035780983341781208967341790588712426220019025186639120962627219684877101160396314377365855905934066009434064596085354938116552411176699797012241687694396077512251181074376632660356875558967323425393468612764531077367164325372453580901889351685185513478711505139915408366313255067726435935058948448344007909548578424720494874119722755490241194898415827336374720603053022023516303669091319566111759643757700814871755045830359777508455981146906459536952385178288041831846533924694937155072077644269302815144208267144305072430380168875590520350424603964654902217937434014339002272198920167912031657176363136169355575634851372810125351223742945194359572903344912092909412040152146638543039117788285329666743008702404022754566459561881146337622253095125176850149367588282912186986008058499596412808715276126183797239403876449902616134877841323386310764102708422617736676720889648395409049424266650921715971423516484616400075703312008509959817539075230033798038959217691163511953343567134090117546720050009952164615241896072759983129666774540870251881072620664440460741312851850624404405955444628420219775157152559386158005477754252367685119210540901214425327656337290851814234200998526259531880368234872919934623058975211494297835384175084237127766428801304425814491617325356674114958594847472766989565163156648019815589471278857996818558660979350761930846519257142460258305810172999681061314944003533979899692425328403734369755502828715219028542410067423206804222931059425079508225461197395248147459167453065606601644218257036883461230623562057852708219925214200279845853225647707525619657022270882724871485670628112010698005954158262221283752527315245168443140133702017925189803607398810905641374307588331522271054536076979416100791508513829737751707042579866620895217974730603623273552179547359993767893894580068033913937002071416310200731203974306892792522562858979868609783596770173272214064240517035550157810224794891083530310822173999612178587881116646449646086219621988007840353868634006415216435826619374604875593051801846834585224725419264076224092880030650954229238268318441198448599218562228310100698971012998286144311739556793677819277405012774200604376031417543479638109133602872158372994586020748187258589114028031167082193939622106768799812928229855827134753152470257724738734049867385173745812738339011555635611444176770834203167416501339549574754932640645544093507680591591164965516672659068647895273893190614655010165022752136989794410450512455632923702013720886200597136503028703894417969574543295820810660228240307008722330550171363590499893298412502153775521362747208494445659475381349748821526345372471600924793501625237716195377145291313949518455965596452381138745079266042998733284658399339633217211929409863796261023730161868231214574176463689940859257550435173770735702825092509113816065861125417661291038817696890101578577282280483705830097784999384909451917386127346384003585515585883874089183826483660148418070357170000512168889173810230046786775362739247855173209156132057911311359155225702815429684228391261135689909454061742318522607179109970791240839392332506072160943009815144260384380793649511236098733193332320879313444570406617022285050362981359923262106713657246037895069678844081582617767906895532284785060096248478863473993704233269853398273091755454952163864105303560753820469174138162103457478757815344473811296365193802952043920084179227820200536749636050237177181830239706197200153021287497473200119992062723916392076124408066086019999032713377648042620127076708754440533207160653562765445700388408177675421670303874112287462178815439835258991870424289164850745667991708001181173029854521677183072807345485703653205166542390789790451829838591377635938877911598864487113426306940904536306801161738905293807144391187988393980756771453104009662823139760888660856713809593619070578493767456474847341695011161699447529730923841507779486022897890983691531103702974505290129661302660627669660171395241893140670882836312472614541682922654130528952805946105228863714206254480156374811742713703219857166829121288679801414238656755083192472407652969099995865735450180424692263744939202636669535879841153066552635092678603018257411095311506439513104837802997744368054640649162568409567293238010663336226867396659546839269901201135035522668017576169696891116581348128028526862423925560982519233023959743886646372270744663890362919907845232315024828230742108096742538497317657066757656143448203279626173772486341820185124348373089597977729633610056986170281216125492186966672493369470509679776355229200730203113384538948213068612624703167479216800453470048837606551311296326940679431255570214220247401655213844776612250483219143159335701164127045575594435554495881762163527783290743264820693787705084194171463153022101693020718598058234628935547188934604991912241919471751209139077736815491893800194005154299836852588718659788073212878566758117883559207949533802664377430142501640882334223912041262037529713992316578269490065125403383626816569810492989943268602021182925311299598930587073191822609364867944930111590517727882218687840808819026071523509863218026592410616911567360646406760978415096882067705415389445498124828506663909227118449558428938570540583250591777855748093886382312359015837816975573458002203932395787541585340706347524715279877682533123445252348923806457696521616408404369679475170897320374713447831503663758136123372345119247148470835573836902517712580494826654873498142039739539403631487861198164914887142238804438224613539681231648283610160769115597804322782404006894352564362402285973010886540981968912902757368415496677022603861908866401506161447922066052137862750279284396428503876909435619393216495934674126987392553697219679743524212283512995035184337975006937238794920529080962764967722218916791164848912736065932320921155631780726891766926929892610656768962638407107374304756807574533390964381902388186946452939689520141412341038352566458052318287867239004498037251242476847619883678010330872195568308069211437787808538461237033741331286711708373911220769107665866664107755372986762201833633781893680455491528242553582480321152996583898576838434585411167494882586921589950782767190709764646400781658466285716782521702336954998972374231276522755216284085665335707893666356914181730503084688774920703337775178336892315233320144697726660547563791102293189066109632614577864990185002589719380838978962698567462037988475876566515576612970868808631237979641715602025457511183191174570959584411965992456934396028071673894047580241802618368744851086120695296479464485405853640868058252093369773890104703958511260466953198778260466587150834459113682420936412214672384090510262014057785742305002279689743583540682239004292998982788416788563907574754742222676437700206873160796716799321736156230705463541645809259374916527328565825621104176150651074107489343059508428023124219075112968927748159893395713323078090810678771172401830116191788083414859348865620259645184135310812031146009172303480791782870365167339172291902921733863085491618293246498591764765717078370627451728009496407589818782429320396054480022634299902436552417796234081251331263346984357976459955054259269998190138408419171835733886865541684183506048137712534194131730449993188343146501157440939511174150354822003155641201277765023750696703719202916902496149083878552711489927188464902825412030853821512573302842597372009647021257368339101545181904343023278264065267105003757383230845726348194875273413611811201948736743222406365922637770580858052431403455697813919905736148839521996235225667430030023912309728146701483276557616722707267012801972943016937114996099465180284014089485141306043234430818187835701048857315703730300373587618870255713349797808982675944081917237202334089062577924245246190965424711430279770951154314067501075898150041120217499725847835614324103186426552927994584288305886792747839502814129720564134499022118369198761832406506458071857675401107713798846575062074944606956297454985112045523594916653201705075429040742142295736160156280823966451201088835603544254537239406075141600734698175478672635299365854083446856784822136547763590215713863970551035243259471656695915955181836901579005828998738153191523741464694190170648138589820633200539743274945799633183509006179384866802880508157545220959740784429116861646119279675115206698771270216082987692721382944683928480196226152791923548040633211236398607969098151659805157811837800753622908942555535863839413854835486212818239895989962631342682297388054086756486465860569035156292098652254990592620514480300121010330310971132843492079819498287397615859862771785964191729051683452830054841700504980852878777106516106519070876681149257093054664458151398430444861654526873690225743201566261249255889919620118382141631052171332997076502972826880979969811184786296017154021244428977776539194510390533868082469101832629707977582858885718214251240528372503100391758393000946383746300838603249419886897856721780345693690784497158188380014015813540642920782730171971439713473182474085940960180345090475132069424368765582687017329751759278627286575972889916621502689776701418635152127023758749377221307853007599369752945968868976674561129597802230040703400496440742498098670602464488303460153988934758284119179140704618419210928810052688779678595097151220056021531881363398002901916892453367723841736017500394395477769900128028373596837193513587955757287632894699079826592588213987375225206346496494291437807078861716875868717047952445424894594890235983053032726503554570141922647577012141701280063689699321092689209878875352528766546853265652879461853298722430589951710589652555844632185654110787693349304335217726408503655363427691450996130085461743541068245993614018895535823852110859621996469413642096238969528157356015210523527137268605924075088722232536999926046308575863909393967960207409146404332363385352755394969024917379121993187357145709923294423859016898221074231136852849348825483471743467167260059581836436726500789525055168386686807402194270277944072830069856913285919903542631226988245391882891680140764340821812495910714560628867481517046822925142969854141831045650449877830980545448228541729167222241377606427163956317630550283675991316934119370061484610976932620491228677741027704406382235599628236776458966609401368246143425108560686516887485518174819182666225129482044751597161387662801420655382899419524831291151267091809746009987446314223727324416635074561668861443696578889959188801324484023508133877467060513976219394899767433908467266897773121302700613433989224665282272414634916048044695506019707000336489744025103502067479284004199694149159939156779370835842406813984703770622112743095221838556493780602738049875698564508182189264021680665526757865094775016138669129929319787933797191149462891987158578409360706414477712702864698874237612628617084225418237676179061146253862478090019676832464401236952523023902933608399354187675502673827907734653470673139279333096097574776132300377277804024457307563096824952969815566922397451909516854116493515320272837307055870425963322228496310530235536397687818034768787806930303238875983114155837031808821750710443959140427771566041197266647605698351495723493676356765791801455714491980687541837871996517526094554943832506211770470686036200134516595646543876293907518229940525608129790351396252600947144788107637207095206219950163836951190425539012730444840305705230036112315366682516432434366617163703252397163208796568607480565392977763777146273412471358151862558418478823340818991325221030067716726629840964791454324433757957014872133522556545813316035713033126304894496054896210885163044268871917693445778514303420420150197682531116469706839333917434117468511202772032529898829370002854968008918671782800612116181606228960968217808631103799301186205846190166627259259814521280379649463346743265096775827052076157439989738814599701514904240415996982156848332920914136105105734891149631387491496674138982485821285831120075254141881963106267610138334409516767247728532564449644302174994266412134977276036887953526856155177347671228844596367774509032493613995158512189260810051883529923473690248962723628327924327354327761650273146969483499655552894196334497968090568032916820749698213551544052571890547550078154210556865469851745496616357126737586455353746067698135311364333063584764136302712032919980943414571518864479196343474497968986206918833954814447032951171525769311787800594592256293821360890968830981191977680563946030328436842850655156572991991831770609012590194401649945435810303357101405620327186912126237558488506811265861711366583676085714290805888440413700960428657408788372659904293622159096040756118273566368182653816837939290517589687712331225521727236178626823922444507282843711175729113973742369373101222555015071419640949502118932011680682308548138244133122558876340885838710689502974448016464801596262872876096337101323276437924359942365345450505076070820068425755108505344418173748719254535165023957313163774664751010997019760026276821842836303915986738644904529616649002550076182514707794458799070700451842360957469099918018819381019560745774004736153620124333991763879279014805154684724207084580189303757524585253145860104142104843019361916868891857393168990280886419201329513934175826589341888207607901604376429164426383678830689319090752944167073253485436150206763299827794259801436832322464238457756475085186340001939761740507770130684845301646939965816515212928549434691080255861306606603642631578915969817825893454689755169734040866970518292206166991963947012340420628001048938796927967523850153543072422857815903168157804862386322764070162282308570769901903843951014766871391503252792619824883278172959910098502885212309852225538725922105393512164799709435347160997654411168696025208584956235891612040810874821269255708811587816928237767932499677343503819581157918796851406253295588280185743670048014156708723167588008513036175863206409274620388628194166743758103202479655445083057271982294305357461964842134021171131178506874302513154798320427827488475149307295626936557733796036311694174214334125834738193876336020942095955174643970473545207929621139378053030668707371257518550060931814221704421309865722417769227353336294188494266139765674026481176081916559198237499767975116733867351971100884375500592697156605345149449779503519876268167670342130659451778380786661897406204206057451175126340391552438117383509583894751992931586321264593225169524742000497728153165419602169136568884961773039409926436530202289928870957696903325652845970957436208373182075026965056799264487117900434535840258553018733652153069468094044224876162150788304158455497037443058796162266181948672652477713766626854651170796026877820146074183667308007091306408263383303058459570405819238306373280136012301299824861510631433479201439066943087738380784304596542034787949841286358772350409690526368893312051378245845429810184803611532515524321957643553709582272271813719977890446535159491108668847254928887281520242290946463957528443905719668126817904181480232302950169014596094937836198903415448739467339534671873316078300661805182050507965758444412872663950243182546793452915869919725141632304731540158447862281579260144257561807630702145030521732084949163852129013949869297522670777120589290253674532390080699409971074937713895633158553638050710889712922557593397296316621852891327843796117221080915406057303752518199792430796188762225885720723142498671098185153080985887792398501526437260855295829316745277910244791311300451656633679430797994945528484445975696497741811684728686788346985956741351687811852246115023672545937937360375359004026579588228054913585223387794563152689865630351711022929679040579464361223255605048631655013148336880085324988637586229312477863358949023276604432552321517702367532489766809671810816366242491864186928131235396111960490070082328204846736853861668443775938762502465540406760889543249033718545498375683134114982760717515121085254608534044638158906146342083806010822463258924004375751337289400647459060105866204518283589050537086353045756839056115872353060360258718387508932646047910196675982454547839493860074127872764451031197292425242099598728141659519207700214446322025639578323672589078618177312342655375473223444367480079596927759129480641008571139497089489378181120872929476215093742063641455377099122322268968906839046472347766511424368180337164970084169109568814392057101936805024576039119412506188877567096355695450320256720928210058268625299597266850153881909590406898079237650519811690749322693556320040511197760134166029773202695618546997730524695739096331150238492989753886441519055967121061153645078181616856590906496592437401227183087348480956769105068589976664441988106400672417140563127443491606816116128203653924980572657422468225024210417865533100133286164673769684658471214906524723583082181462422374234677848669373334366843829073987853113031175641127111005695221553327689415805761876526809048654190605697781233885869041219498746184055474092600205251710597387868860994558933778238833150630419675367791575017747673271081836467809120881232050584241394122718027391718603671160639014340632068455435201791966249406746521187543946098763020331477149789559011444886197366091251098749353013989068127874594153589012392301269382781744961524686131360219754906069843352925958371820443623744457998987273403303351207771069961040261018442242374816488219099195120458823164627011797248541882789772829326075655077388437956668834467076551097962761604364145218014541487574779993441164446677309066413606869282853643697547634358749280036400139198206153944461801903503842035601332595694667169663391201608619366140560749584793004323656805704864974864545456918470305706272328053095079645435957838429406154830868628224621826365456866361876781002845671360359532293518652369687933308746768332820604767173516397728324399853729465143259081436724223299533523890621553518655554446800608915034217907590627357555148034003563777805288364650996389339169815999411026546445823153645634644928665491374351746438421284139916204636615977042191756791522457477792325884080556645264390330263766809444764005680257680718993870928977722036320729059179844520185884504751428252033047934972494661079105838853202369030016086547640504847824765499650035164794866717254714476130121883989626750896656219608285897762348797231568121649263568798388440571333494682589688110704995276116124081315088838039864966386029426034614824014839915898433192853110829603312921193724712647855902956774111284633005787626570453944182810229806217529125605762859063483595393433427312232406934415956581972893287845849898974038486340302218220898670152886865033052797512665006338798604931644837233838412542514990699030331642432043452148130904354217630511770780123385984915831987275735234366815564711163432966606037671814514897450236117479411595605965140784806320920045273903171500885107736319287554329937720739208219806529740668331039942422686180432346030976739027639210653666771087226957701179666022433037193993017720965555138656280430308732958426619029270658195480610282762134234062402555675250985009189588297334154984852406964639222445814002218853858028050045367157892006245909483312476669367951361377181200439131336888503761549448971853590219796248488794540052504552330781939118974545373589991567939831521237074302080593435846608646609665593514356748799164609485169992614040179893524654014855989192378237625254456899641903706574620201597161381822856492265089858466020118958304727655022056715387161263983843850139532499953987220149040250174139811849142690251528711161936082065587512442377451540855244329541292925606281920706853956056286177472044031532231787754996052888511681895683110799893383218386565845074847126410667558064205475984420842200956837552686071065374474793288782772746185283407779050127353031047599019706067045536474358873314406598381042154278117956248219995579992253733155541885850488791845274771416215501434863285463997244180095554677414063580866671992558247968517682387521461400222181096771201514818362541862886671598268379714265972052133709435298607307869833967808793529621372406980491467791297422982894951456901632424541837082737396100198892712599740591034430038154997886159394706136874449906926534550116257364630349064154261168599056524353274263247986523805682706175525636423110790593980124622762131693217318502675461717176142887492118719605286699419401992881590005050044197416215534377695694378877708067899252232932495483290239337119002628599549534221951321950069766843830312215719252592896715890101579653589251399399308619158699027898031045700655003639644319792785205852881366910609895903459387564211935522583951143619648492453500096343036054397264716354913161859220440750671040544503645553154865577143055341403778568586179452513784193710922561642428719989851407613017662133860805143554307371380655894755360484700452210222743089256407942855916922865296546288288481339295581338411517183410690097485888065732578624179780254210379148568548039983642911720131300665222693943310360309460903048173619889230529161517006150518512277333291685763850072062622007610143415729475384914002441261981328406256820190137693782326348007154158592744344451199078827855797341057194395415583136584100971139732838469394042861118296227235663924940382616784335950130684127635853117725770090501237966838252405015770577843399505219266070186860523410930682034605543456141400991293895530831593830017223081599606610033615277488221623342421934529434321105722478736734774736978651497045961662285868410778466582479872823776960474415264996595487878259527652381163189798818492479534733728098059531502782813869288694023607904976295206484949453936932678197987869069251329425294700987139148095123392059934730164305108142883478797223317077395825389890711481316154536135618649508874563156297502326863590224866304152185620290889293145156470232280151276564745948876303039938934774003670792286967548798385276630562594476375048082245098129552327460878630267686184279252244267002057403079316278919402404810569820585085611222236699563933773006885476978250606812486146849374705472016311875607632451971043953657030928273092136171344076599169727107225963347188648851380878944971808173135745541333909138382534583188288464869031131824046647109875141479004228511268856135228381987389019944885655428885637630815477168970642861439595027940961969401881322051419485782103035238485855034189783108848534437387911816069983874662124209464223644864055062473969053223122984086763328208661801662657860989265929592398394144998584575866327034413474369053690522672021811046085065178938005746055282612289245784466502427817832445267521527280294747897901970063648855223169129769264343135716165807535030254847273588175693106520988175017909091239610625583823943517779425524015010794194787542041877917685496619702602468589616413749225530929028158580718483628132866200475141424212634547289180984070073308957085917054593087326622486257692502023883384688113963719878650290854072750251475056168596165628958945072290535896571090140633660652702172169591097971361437458712686589441703192210973960566885638853103203697578384884359990824149427200729454459081974621019730802205612092538148658839892337884088717796850240095767602719981969562987523907763993257487967074255194281502568662696473386298194718701232019449661757620981949501269129162147664292602281349693747992525463580816212407222695763486386679782089571966039050858316568509054514045458267515340274582266845063067728944237423247703476820688567132803487510710064429584865594065997236090902808356056366896701346621499997999511921291048310603316932608303250337172319010746437360240916141131268963285960136371381019422965846964094955270111874025513926082308673473868692610756719702195905939508662005372807987453713632859190783953862224342653234688492576209684985846299200598697641926560071053317551618078730709555867118021171744423890111414860776755659655402926970273895080327410162241223902693057663191528575833991615082767781086600145321478778762782748992005695744778511224235279396814853750280747668651830239373945798109999967802569605260926212580807761532272688944348265771686941066813437488699080404284094650177653456681666707508277828682751105496186114519665322985124014160639197937923260496587850963593397905152956155627194137192157932935989764612368741151556867231290300628749384290097577663603475088010628894587115897967877679009194558283661232430122928402599045044396176104484371987715447594136211343004141511371046875380984015049552480031515136554450436060595581724395974246019512536887844162595834695555293189320898507722029132807391962827049687994639799867519026168015242798175096744462645382122964330754092745149163345785518435981900817047369195158368670089633858126721527848326603911946457687984203253480698853952076263481017445070712420714661700056700196201939410753824327141342964491199519032969890017030479333661983421471655390978827335712737536825298081850561684585721603733558400522020627692359257335117865568685137260665305912538182286923024895758956958756018326746332982700848482209227291822825775191589826001152550337293038368655217856171655781217035025013626661648162098870969949058954783313598298210858961349253934084761176603696803901828242061509917488112408706426223623069444771483890314309333765829346118707391253389021749194527770893939852255211078845768887240300883822447163705738528003677994663470047185957037958579378904562806923746256862139694592351907034967803361133981380275348221971741869101401361042973755027125565803270935796493526785852406344074900716414986457237143672067554352647428618537371163228740283594892104287275716680100438853978683592470709204787510628529658132559349436283787571771927452383127348438425282737742768778409516810944270559506786046077341148553674681637380675319211664778449950026526299772512967412860437833626445535051190499996611806796175275053772855788193923023726504931895826796902242934609747501151387378618488108635227144660699607722392548421470197742285100818349187691696890873649992666408507850012009491618292967514680957493810751011070182962227565528704915833073487784055302232568285201958118275839575713599196262713082833250906888585218779256926365259787827893082615590166328818875765838181221332713015134475954311379821110601429653216398002078141251671693622403103885895253451125687963596653676590400803841251251848646112613509142901336374525300086715475243300041834543599927329044717098174690710033300241460138797664870939395907525195963463679123569368633057597623949569596613469182668526280918332400085842959564605223452498792175755505296209211857373255110664817716394889321263690656607971351493532021793705854057885910978209883997942533915742379740756318336272145174225992602444078553494810619207019314768939177483112887097435668020746564211785127579206877764283053906145586065446810958119345696562869855589580914037425768101822898729181609835122410221024233836841980201717488932972328494442114653255717954561254482078419276762992598932720981921152356843062129408661190702793435341759647125742410147890112140766063036106227944167939309920699565243728731293319854840145572129339576485713141950118497817361105732840467610896896989445125022997845623816563161017726371783090776265053611521011807199794807256314308064441501242220084201399653016369498169728598327004890936056961027757792703144562761525424487602098953154600534495783238441810384136791981606610518439815446913356726507535840803071549143483215022162072139159159780519713532736741055593993952435063409584583905143810904635553296994145801963370828989351922587827858338080281904534067563891100960899587981351130261376084023649007163781319772516553354982666097482850635099454249671385598415234280854280036949129320829860883584681090218402229906538895063867548323448384143233237477862188592374555195703066033791428684335183955733182163961059928050330073428779992165604595301268595061085608892171381240634553285628543484739717015520519342864567572201980448380470583405025023091996511190221505201102886354855823534895240448509037056155158266048073329743420829345779718099313905474564012614122488786016734705422411421788542387060168538012162918648001149648129211530769130596758242441678578375056086882368179952918582595692352316134670184570626663084241067576365660242059917544444424401235242726810349552615859606349371005918686810359522430932676955586693461294058837310347663181263680926618613395459384715922997456284242837302747959028177919629708789407495196127119954033393439004505478134592923902032173962105242418082192537020617301293950591460411351196193482658887548830324109731661951491633073160917355014056358788832042466207803423486896849093042282338041976086131882195487215074622089140528683054147446631485359891625632064382530369013637227071908251857550166997598290204632668022072967434638522078017487130154953450757629096495133012234143520602554818190866975089937841705474064327299650954331531534586643663287644230477095323283720939709832657148615702017370330328955443480875957563577807578251822106324437280958132673903562130119318206784284128108532298529520121252904954631944514927915449874568895199978860732645080174670002540354983208772213764127729457321398941614382386369938791806512816475314085195918112888124803563743991422053736810736097177001771014891190952589540571659053630527935214654691104634969349875567943767094985218177401732350728910914116383951647242012629630862144520527066580754181677229407015505299425859856803033890107745607061907410511729200661892421589593470900440386914636344452893921199445766296564647868361544021196678843542602778706314891079685534648135606066679636526293360190558890921617371508799360157896001524992860636081070182502499009611975436354075663464220642298085870616999584229486290315034123449048945641024752830273625297609769403699974155346057294137269385629975394320571262549332801220021117666592083394620668341706856234679558619022808893903058130570078106840046030795500681289785074732221541208664479834282346015030809242025895851503304326745732978478314919218241986399480931969540908193550937375640111590447196105711560172090759864669525179404311719332363107618772528970803539239533375385373619261389264003739339892938672420620729024311182225016649672785900027578476339088412739078706585620770827349329740162098914449055249304897093817867724493204779603942547011750120430779649880544838594244211440331043145715093935280843559650778522900994861876158419992594590400478472920852256555259016141278672941130431944213079684784152641737647718329110383611233375245888356036489547454396441327435511621422842839739056513826165980696720213628247946419647006817546255112437152513438744897473996419051282908035706460632193031877361710759353415350571181389736151592217841827805983639805420064083910329861273093743627634990291846769534721824219881433625804516180909195950254810116023910723522639055790961707463325986997421489331418049872365355834954639519276116781970430511103126331068227306543159403607035857282233538896667191937495319492184657861127818297477918735711346556648742771299182787038663532729590579848415486169125817530562325972789869310947428231872177855046691688236180477694387539286493340015755082236976528356023029351956532387027105882848979953625048781438559173770658337590698432164960962331986552129673000030952077425981930109107397381550677710568557590533522436085561634392992053533268276321739078118874642926189536969169052566549657781964819031090943313287033590088168044414707186231010573167502857873322964867076489552525681201463756128640070210228491740514802654363076924026418133225449078778218361220823329298081366580505363346026712741666047525049916754289385523218719149914501124793918813672890622987028964629256958738242865988187616352135314087418011774322624177505246923793688906123976188873459220164107850044500250734169130704105174657428488641283938354568894576591365304922537195547778773859791507413774184393618602796821351081798073286469157184552030811446127736194089513308835106724423944667818752982972425911087139343782721207715849501034159061949936131852430017379154107385720797746094215834510289846534780645673628805759000099725702784443835211550183830647007275644320565277213879921335360389622952672653463575621019803852916007853735083368825099902366658154882453846039512781309736654702172918710136625552482828542428732122695796091406247487198191347870984052591023902679641362508034072167521320705108957625938510330705257943083462302695296915920304843688188263444177107577163767116214858247104527228460320284376305712874023871896189014348103055758095438964125454238720573345230721905992407971846579578030801773568160884329068964416899637541562944085613776240419170664793704875958335290538254940412083276015919680353488463130445017407741512373151644677440796317850999859478746071307008464803720112570884473062371723827134311366509464992037189054125069254354800236999656654496804321332101304557598656992218412182805275814362597804227901921632740832313505423415359125486644672923131973346764756262631635337805009042547651657419697316898804301955489234558086858410021638845233404168701643614397435014716083694265571014661696806269024419359090357590562684608906850499219889884749766176288239652134362698573304533310517008329186068214341813395033803930823928589956154716671593034989392158618004458618400373399641383153697703162072914196914123947723400766376662956934079242829910490233971876245716127982977190298815736322440689935145730741171759863571277541066549440567583066612115146734183766699808573409332745065531485084809991413615392596800591628515270536670851560514365319913508645168881345133782426875771141964666447499942019916148471436490175152459156302103466198453614489699988353162493079455141482697085766207195810908071168711311435425686239734884658633927387293224427755522730063235305300673852251054965897411552339139782666090273384599928608729157646315192220770302279633621062674905061595873422241891366379795042658171267751015928269924539139578977320394002634625618334852189535355217400677678431686363521515620043934494586335588469522993607870526260997261029681207274548308227666866312446631569496496138278354885773795821979451296984245507100802132103028583579989967515179297747335680646503511497390197378116849374110671880448048254948370592215673055851163448542591032411574496500902591024708191723091704388066470167175053893764308855064397457732775440895113549090244611438416559793072330518026887346885474162054408048601705990604388997041264674886785205224166739197511765589033005891980323958267824239268552350855670515843837309780475803552532035881520885385201362829196525618753702746577347018113334445321843088240897663899536054259421427332068011007032398264580074263156532405454727769407225697514750118548915452524522306384988800849520077809429831557385169107873245891859335093092524411112070125372103842722997039308828597436586339905043591108827868229623744463267189898406292102858014842397911556786722572976774771101668109192408991407294041508174488787234164731055102154262579416279706955817507130678766020922170084738270315583174923058553909752807617003454391077153674423694761302554901308611297536535844456485087730188509987492786890845296809852481256110442104296852310712809853436608423173298716605913568840161930331730105628765664318234833298219814097374317530450500152390779773980143286906819489014588207344917932860132934213142619294033345548847503096220041421886184901980829487033887504015742904144280438692367250443806594572087611571172799066683831232189689851288789134148563035116163688580063523223928283946033250797831298690197575797335562566971244924356076177273379624055296698698621251171431998342965849148304557029460221510208026819990859987776261921816892450416606155451748808546130952751441147790542218917769338846423240566188309383866881082393803835961216565912068838465840792135571712528977828248615366214292638652765885833393132719695629555361591328487928861896455708932496854791415087153073187976757479138901420650801027297405144830219061961625902091176114529878144998742889048374546127586643097106283707029861504499534470806442041738506101060682000050172921870716263488046721832992968632899355330337669857446571004113764133636390084365020171932604052685576482924807780700101708295761796747828686305831529503006384399717058807944270229661897691248272225958792715584089236144863557318218822573763797207950660179093144963131680867979896640908022619883970014112281861030108416896172297639904553016964421334404222554250737696812720483571433883250356811889978531244209654320479106810449237247455469505784637756680018346030595435168965365978589349636392796323979383272926921961740039951261724530764568388485889615906885163966209987584616956286112481908753585710033846588033421336325286788071921663443313334152964648806932542684930292013861786221187149655217126140448912913976857190464136448974428938178792376478188317213176388859321898256317006924764375898818753571143098052908354273510492667048740228494498624416237396610030315025943452385308537198233960073719432759148070185301611497191678900527336621037067045869456153166475961100580145215219363006242932939651175021645744299136088614616821213454442612246948732105176250803841363152997555350667244407149320255587040094456883600726451306250766003722722827476455345714817614253582033736394473717052810790494039205911212375452139144954888302761555783586790800999653358152302407381706320148519810635917048435843844798466740611616075509376092273002883920302994182287460970910886935033395947470200865080485450887883127004985901896777845108532600602273361399500791912348176645248496178302389833076429940304227237516144762448941775981287052293938161806039343966498288002732248953855194411433875637415508946884602045030315364233883679279925482039564337010165853535840209358921751244644141736695477485170373645572265774111588693557232530568151094469701724640565231995402420193547698393235786119213598613289104718861341623899506061567695585641797532508378016029496240351274379033986132902782377445083878950651717382681047587684185216561618733281875423482096670802482220025813107330814273632795525426706464318967977073260716466745045111109156553415845327949466300266779815281896788164857533556879466522432834649674247386537786954076211849768797953471583420974446598015135130257767117814898943148347297254116606740065819982442038457764190152592111716890949692781544259727568993608677528436444228746821587556409550069630497710635224811577825613970301650976803427043809862602999988396384168983131005530765651662752592338119950033913984429471884054902639254114290783214317654038886810372898401081925128711631522837745087576700951470713989458137119388077086508776056482913991529972827933368499883080002796083522739566485359684672033888877762373781250505865823044434428140361181560998888196472993686670082631555513956962177602647813046019767301418145737242634147169882079456912339205404902948375392028459177574033918126232099797604587125748917953436630850157729913375837236668665965501090557243471588216919639477474519897552692723690879775872167770715394963259188108104540077650518465742562122952643659037291650432768596676357329490452080467596971017000526333818308640282584067733508801797398524755304732661946299805954536132131022490714419243645768990185998630543249951110799110475415082823002489788896146120772792192537924767172157707411762885122870616815193715552405786834861198189671931412171853807684464473052020849757385414073908763021226028970050899905552362594560759473484788952089737611175273853746509194833174081969793051284895473400143759891967573412692302885522385448827630223659867791253491647537755803959550181408217081750104648946381345476014511223826217561952413452225730945146820120211939223240924599886059252322960916077648061268011735233106774748704070096015064091469952302854885954658176550233008005116305546151874575153077496967146763523388453788057060884218915360312369074834696314528949129941433394039338626292140253362688959115347295813092253986605277694333458770047151141106848976651922566164487179804575042624031180448993154240669327493022238249915606577222237704710329045941759871112754357933576452861767892017548865478093921792532878019872385035613980189815541828263375916647443178149727061378502713823781168821912091193639723863883787281059655558757086642473075173242660589372952909401304731400700417048660148010370705005366555470222003125887203533940072999291031572649044729083969424658194555719125307152906181714335992012176469000462372929324726844895666067614806335803620615551137905590273845820553335014519521010372030789643803787320048149344350902601872410874174638171451204496523730220092730803720887327820421749014225397621718703045157353072346345014293727286120122855220774302619107089477572103244809208234806271376343562875541599972927989585559015669448324807511665936829792565470019993577768386457069116224027543608420288261816431983374918877273220467289894049429429533698575200601682935022361191385130148091827795587435905098891299713458179919683245882627468948045455785547567162168043067455978020248876693669360475466336343306371082802705129694906118835647821445015797235486157432887806684850248336597323506454949960526415373042011674190715885744783323185155741163225080532964121641717780543988224002271648410701185932044683987418723156476583549838227888675266897751006110603044784153354112966445849846540180893281668716221018353233285284548469540243592030303030059975732042954493028419322742203446884913478852911195729749633886712599322176966874883276023159791626246750955773615850443918435600046198141510723749440840678000100220515617455922766692591012759554005714605887905232140732462059519950062281006143509614171708443424045676157810235226645022469548439427536441805552758630611907595665544041560140253263609490626885429945717002233811713109109615173730314795667872598132474775718716694504785750197454698926775115254184300184909340921129564790136857267104566156017410490090363941043949326029030399834122453706710081487227103229925235516754540684732491335686592770619110080951374218054843943862644655966059777607279874669092665542191548084855950100808536299637521465036957329799825345773613604046008415260354791332911705499997096889575324632143541429057412885226252571736891825563973907971912343091239169563071597432323270780812150225500134545461026445711441519735549215713140271485068602730595901409081541283350939872015013278067186753753442609863765044789812833651632420379210290204562589555761847278323840720121590369944762675027028636177931394169401096826777504136773276972868204952772850077522490955284198774693320853084276856606956724537704373922147869057953069596408168891656762456644748672862353350797615642099050261125102558072850748931893521525540310088261719471847211284397870723848968668244635578009993983748321906872971951764537103331703951270959459220652323228018777839722393072421513073260996192824647870767682341746930629779672751765051428999490622997035751741179273678680752880053733248835620237764917762500895578507382834213459768829839066561068217021612540163857795969948859565546834967981926823920880102257907510558638830883558728353660487705475465968635395052484776069191522194455902879311834299810525064857380279375105745895639427474306615628651721126303843405098616872702016621465243183879418030464049665953478767893829643068633097238097256800218538895063162629975610954066164767191220866719003581889562638375635524678453440162569854820985338153904039596001934811360501419207735887638823649308762802440314890534739776353755587656529638585929555953158661443320900715728284088416743836526917038238341883335012361562708230413717585699455767707286639534285266369233173275982989566939875767509152636319020945861577052707077755197644096117229518220991672333037906388450732642551600405672468620067914640430253518132674783798710418286617793178137034850447385516192551732636376959440679781913960368071343576620014508088151523289988212384623836295107050901182018777173958756537297619270445809839754727629792949438785902174201156441698534784391280792663835272671440771756913468265102076779314290043507925688924404938786317251992568461385213486977218687603035516135025441995823676338197181585469574958023625783354780533699475885348843020719293045653741239197478455465730141422047217305428295144177499753790281787104959337325349161653898384817222421525318542245011091600053246299331959222476314580675511266941911244734589292085527504578267615390080429508072687942864574517059792795575546199638505415291218037031620770223148975447947097643013765103559272881961075045926423607559975093429256008858475891030568944941801841418151986468325398893845497394498397248643443718713897569159500686039636246073707660020138625864459490081051951140378809477845450980461789068016199553490888462707674723181193319182168455578943150107592820868954236172954606906541913353674778314105903151789442437485971465872814064889530971426285703095355233256163821869867312883389306844850430643964497676057605617442093473497606496514587808833219875253830883849714925565892680933314241213673490111703986468471268183725585413940168944617346199484278346196087194094255796574310081550136917382872613036978069153483797871386169432083478553567699416499513394423538873052174400426245188686473580657846580949437750426741361921543952976554082585305371727846663777384271959267000458908897833240041329796451479848978359648403278277433282426447681994189940823683256544241091894326356315709354327292102739877588754430594088165837332137502045085423005597591185690650886076168269134522928927696666284845026194207669599042998393062547699897867953752201607546171123106037247694864225546848135969927220957569507701922456993200504806325977164857151348322415643611520496419569284602106560634901275417206546994324596308985034012423026457671641563201956774866693010619813453950399691632464839461324498226665936439651373511120409816537341136305480900114309920090485733210238862444821946233171150443211092313999900180741998810264272932222423385772193090828371301617628378372725476052805669658326887454802473489307927604899029260025225361568059260440548428954571899205765167270691834620923462968786441024371004216516060744771921280735350082095434408846145385906521040650482165774626154579871551116370061603478152520215783243778505661471831256602103246255658567097038022532427499052403766488427869976399482540628447434429201308345948394859617858289472288446992133730451406049890266667816506883355131374656054408061443755596633349295816769717731946358318988507790145137322002080919606619905145451733128978607430908309738693449937024417054067103501449438552819812151139577563962000212169934364317323087074022048318867731907881455273955403744628302181841637194869670163093194695599144586553056035341059587476585733570378101016664072312112631153420484766140392415163918838682568038096251094689015620821698462546288634322332953877192779936152221129155956282640214051371850656913185318935525399299373433965900184202955836460856865598349310194560962542909683886221563206045300039886738660511903162569436253137217851122140941244689341300229305901022814796998510584177234936294840483890183155798292152705513881750339923860854114907346342640264978980244502718186846266364680338763590847278953711295444442203978671062858876367982353249603312974586892885290728608607226742072564757209947136442092289561806691755181273453164996807900126401492370084884635912904408760504483742183310813072315785726890878984720974917276178376577072881285557169062930649166149006050552075855055625511447903673789382599087345182948462937172759077058594032544019527516106651497826171737837687478227438494620752742332248218227587483974537511666494563750883255466801187464392599662775409887679513587381977500577124355833497532540032990214508001837075545041433234804988739905006644492317692695266303961337404389149499218363893480237675779315297192173578234269813995313004479768076525890022365661082513940460580151385833997708368100653925805261544975659662138104303550528843932726542638876325004679011255532958159946552175407081502782851793639768947373597216590006063086274346241030062819480096849817569317424370604503926996920823676244424209375860545883037165325876348165044098148005816109526340114542321303072899364863342052298619410488467666634895937153702107996668631718420330705001092837532165117567049400004274942367065050235215620367374046197320399523910057425478167215524141031897669068642231721375093330228133739893712904266292963222433860862917025969495425404343548604425264933510145574489093275125482221833217286168490269703158414689001179888486228957456425398692707403838828408297721283184809698766422220954379841774902917627226537831446533519954045662207627706992235738990226040752077723731037829457403267328561441428340488939702666605502551254325053134886661427389281370439775840471969357289552560858255773061293738099506141755302433905065517120065428893049040932027246798172193294853017285138841477655879549458369269129777825431997069346745067149169714337378735540116461193885847474565280161383584693538735644217034481324862217426159279177144036481049237478409665745241034061551808745783458550936297363014562735195098407866832144780684788094156456529503622693570526891798698968106154039487573112100035930856754146341393081677531000134918609999775075105825057914430802732564028856086143395312967105464519879367732305787277738446222900435392916289839891271344099729831654791257925999501080667603405490496499359974319224842708703922086845250675833709848043925970906419938819108700932977975485432533050362776282755096161815015356264597842026375905638448294340907584389459185637882692337981317028545546715760237064179411456268724645943442840766082571341171863432532204757952349910200457140217818207774654082241712322950600258187205219366782818797316269418943343354563798715436356269288241595478003081222643801990659798019136426128912053734221236344759026769397955569382682244306354956774989585634755734524008599569060867943871140637255564802632552264852423945250458497929774109805260462586915873329634075072221441583328943752904716572973542740319586739769688449686130553852318755283120260015936815154792572958628394427627737105028007304118138506132351339603750892472386263145431616219214177307487127250382876380848453036560464871764007953254257594522479879142703534415796610135139647321448392904563428396963379906026909671238954497482510963817575316385588806705823764886600680052401778565868117038892317792667660781407827756286819381867367320475491210051424989145028084571738708846857677587478803619285817781077351767782527356386861228810342161704859970840978948408780604265747758086626260059609497795190013092565630382265148433865140131512972962726013825292589240732547472361587002934556698222131280102527621262809062570000873224547124657106835007400843755988268722655373326174770463290316664056493738236862390356282753241742676345158373953590132586038710241502497751394866018383804314315817589851899195483388971172505006500916382617613585356121282854912639123461331347589356370582649259415251927525128966944102360226574544477179131306806384553832494159600247976108886648115056784866990068909092938579430816438501120395088643053571886673773855234714574859734194039103083762678612875455633023857363169976190382301890034251764699523289163579146717526510883171555419998193883925827773419133949560993549755313164046519839656835120397367148635726035319983746701547312670004840326286432135869302736519551478882792323729411619888745836184449669692136003631598475868434779747164912734446540903143858251898890110226592175979946334565465368754259892960570644439797747167265495476971578300102261065860003553511813714717533463457511634434106645843398667738151724589356275351439775850982748914824614754620159066996827358865748890176434730750806585920413953033471359164980036913689294120038478078776918800705288090318008277958684245474507680565001423847337424277161154304806413733952434820233179841712031139890749215839233967094349360494939702078617048170092366985994887502439115165807900564702182233195328808452439687308307160173166908821886866364432644433866050507997209868744746155299783156610250685967431244423896549668422416467159502486179502178909423782931720518647324671423107445230449497345347853932802046082021495802026949257806531708201269579020081289123688733195940645459739672078862784305214876961078622207780708595910356169243069719088440047209802367850967915389984395200094519128612689124792527639435165562904648066780138353172450427423637446751698757156171801577600968922904233201140684650120031360268783913267099810118952171932071124793176114901571435897247958036318862312602781074472346862780108316121035935189829477080816678507742035555111432034984009981176405610794679182101709537256329557623747120036058832709801060016880362919564610812268252252034503719927086398175442672809219377631941456145814980432855179303076427367443172753952221424298924188435282994973214588642303445822399516573236680850879590965403337296476723427367790964077382720898389253366226344808494590659803059974677377593252421040218784080546101544851218894600488793152467760391776445467525242554614201801647159173649506952409954001446842125865318168683621857314323488567841077482552512317058770606492343181118014815783152606350817202214397951267275951948009151024365608359106195443899931388986735942788197989643539025488878565008083585602239381174211696067940543281897809270655549135648932339869623207936672694842575188904546524372857247459922625673463888418716008671578554877860536450263480304968399742954404407828552768996143020539589285051640698581972595905513984492249164581215122524064576209662097733805816808612588287936539944388170612535357302122084695039752359412882467779910009135847053011894756545154123239480124266266216259145043842976062923191886285386947234629127989437928935975048601360240237808481327244083274282189155570256803128247680502624181967841703550191136558254232738943007730704598115167985179771540215013968848278600765511046656067111716250740173923399498553151964827738465751099984078386357782469322737839361563921079339406666907289511677648707743947034752301025884545495615176283406570764658610298731467106124490038601820863098129719191326938662004850112708914723220523364004958186720726211940314541659189422740885895048353353598965245878508130597305712199212679906157908485575793050534012478448181664246456921755767337474221524322322193486457560435163631096050520352164848616023848727177534789036994408800336908301259612350107411074428501823993974368469727388595623935791404601552307699421051695317979514864865997892763037042031612571913735115689266314389779761679197026752008979833534426350979645964805063886530055323785108640969178622469641726763327927266444316705156443339499534961604664718878093313485351391925527655163340681512295178693019274092685582442059472026759894636385863483902435165675274676856892388654941472321025647931491983942645219244544840200432497702553719827434440497445940716537472207731462943055131189347068738977143584007537904368234855231623843788445946672980617330477390051000700723034808960688842601399471618409638294859384029635071354999645203216844028340544738350848942891383771612403693610074790014235846332671048385558509283513872428175887957020973070169737889124138190096828973323365667344148312381901039084493935753805241802446265183690172500506159867543295501358175097563665006590801813399893202034362094893682883048405902881932328888720140117401115243642875163478089218653007695353283122785751413020014792400033427040158272290869782886220914071197207502540825660112005307996431477177309329376113561801719968660043306069087171093455281606171189301893802005088991729962270014914348721663530474522369560467983887136943028742875145516696472026996898883118666229538177886010432901694760188249720119044386287872864107176673322353163411445118206240709566615293394383635328764004779948883248612364343223816545883263546914048160437321579629109634042182588766293984541728159369418849164591430924201202332162542445846266656243387894954910086064144648044020162278317322772849200987931403795418563376249958020513981846585183146975589586451981710071523213235263081881552806706004534304696339734289472574838147951172401883910541124204169892054386352937350189767979977012876972279172450142308612433510167596838334916634141584316327790262302910857549016830953280198327475117292891667115997449122572303059392296197408130104381492496139571086465910516560927164834872560818584608396082347625721602518769174853578538944500830206143202128275852326829251552901866395609833735930005529774184222589066238269705695902574526314703362128899293019742325662804197531036826648471864413437585960193672133965481013022016701200660478787653187133883904937620159836406005683919891016332652263749590792045204273919093774994648675006336283116272732465020514465343717458432426634379619567821135688667601379055436551565613316890877032408797459516667871829798235545195852376869646000903240516419987110511802045683392836141343444667300911664594277381321515675716461297622741914827048322866833251584898076956832502134620581015002429297731525667166981423597415643254099152955440874852097262593226930036417630139861000435131532096376091196904519531105662603720710055691056757180477804389798376186691805972526252867260190599970202706468420972549912555036283933789160115162123821055069565638793871291155591165358865992924565863362464992775651279260388285888388171197084905675808344420917835731868939370030035338603287785458301391755409333069290159430679602884396178705719808696224061703769477455448543402542100905245644534458797637977845814988312585703956758904214288854750896273387856751721982728037175773534814165739704602055797406152987359979755990378433956954529920448085780669660037245314919437143369546492005743626167168322741898394970871782647341041581775234919713238798772813549707719407768176804789460116860023013982084286520535724921315769776952045497720205474208371005356838781751907958702799565522064240991426483237484378940043515731330401483844237934576211823015928311039395030610296432412067679622888545460677845271460533297542273037576738589569357063329645710469074102631554679100393583545089487787011520089519218756429579769408723244474266300248974138425036864948857969316402659338376424726884327547089496006330029293838042984401938415727927436106136556055611146660492119510047373358729830516752934359428234014032683548225954530902979654739394356995233916681374024535634234325971450465421718410822093878135933029073083340268712468136318496247301152033260863459880673457528766517772649513185688961795541683155566275990288018424239113168916949227111671591205899110772044038965202138232641639988977501569633136572799209771999378258190660795518089553472065445141020949898651265411777579637539099129977055786119897092703916132710121092664617318221442680514125761631293525519454244982777074335182926525230652878710033866420916557424873466034369405395185297137922457429245057476755955029368712251017910529721705052449852811412105018614497493582277627021674165536550908892995392702104671950265927130470860111278219932959031070367351140629217920886827630546895067442569646357680639829715662015619119671600186136455033784437375075790078363817620960636121879297569435845998234523005737018178544357677476190269734364704951531745446245209182217669866856244177520469869051370547831979039632204819838297945489387972498946898458026416481536776927310383587569843661418169549551487344409046611184338133169279462719217287689645712578703721903413691953753001086366960488414764690391518025176537043287946217056488134382624851472145022364084741852236250957206334126741679555409719180530356791712094980932467847996077223181884848295081912890829271244735319846995951442921870252385660467502248417262184247114619472225717141005209025151991974905579318483687958132126313570489466000197946177947230399257080445932437401067706554879977707031225197393535494804204143657306851556182758168932086826829359677109596329442214924517745875432264214628875623880125397238920385008646023336992369151238505673761271449420119511011881444497512874002041468232225452146971872680822236065998114119277532493637135963616184393843953961372669402870471520838825541788011163538519853188988319302686971703251213795486853154785290838920111952691995609499316394187065421006681423729474554369518370633042481424181304824400267357893790039326850336544332556001713295097282383606202662954747346409221562899249122126932974706032452513071863289802774927872201420998165830984301350479350462153580781397410159081717386729111368782947097771112805600249284698967763875485468919690020677446162152616357300732399252188274846701620788315333561225462639018994059073571893551178879998420173223587286378961065961032040712608436319985002311601389188372439035641877182986828889092311692627305297586919199289136579020572292886265643205245617033397930135355051153500693681025406225020712355137369818259064528053546076653371079911633794408069116608482426863176784971037884826588391621372863366190725544295848002732155501916867564560388287268700847159197134585442727187463509814991292530224550302091010012413770228952895622307982785951587129101711455886405575612276757097965862804755225752993826789346084086845651465971058960716678872722355157030366163584545653245770766656786781152621826250019792606529843807396260300238799582366793350551672854443380640720999460052802361901450436317574517734683685486941788535804223682783668955716830310304800498752210998813662699450643578312618629550161690282629354056339802625259795515073427912220123568053464317399319227799969951609658785410487996503277687280837856134720988757961403895031995762292669021237699943106286118232279863158152987817938487563495131543140157194535326212676120458026685417469629230498856882303915531668015278302462195218985814001829583157020550887782400814213253932713342037783463377882725700641527024338687512240536527130393298343610805059713238244371761829513192951545417342082657536904555000934321371598068670753164782300342965521825275524364580315858718919556637699750110196935269267669585722400672010726476850249963388719590670635358826275214284027652551424070673918901309438398428078342050396651893683037283267304100818753693942702467370048602843837628684661900140246460249687229089495747149315161682422158865421569687615358390526825953885946828154831473028849506858845776293472893050343950556789432954043294568967036048865721055858059002907704563266113887379471367818404338169626635957268520222687875443104926856501551586159290148827245021508289839371659370082583637144550527439224393516997168721074008558996037272081401332167733454628815724246153298548767900885032862778591585954064446533121908586721604042449805498930389774906907833579175151847094297324062234451158271938841400804832114305446742401623680766585427170415876376100747377836681634818341773597523251755838156436459983621756907959575713260899560029654242455672284413629736211514180015837692454968954604842291639664709136873658571887907128285060860216830617664266731187285225648203279903948990556762130036575590560520543872204891988905686956698848751072314607650622404078625225798939069128868457406424412607187011495437838867273451897104369278273181857734184672844165286191288837321325504586026307286588265051002679385252762503550269576842365490698145468280420712875648839177854103315965532872032547372265315638541992191656549034513680817441769547989493961572923474753092885244608023166275631239832671797228980166580010203938598137391072639889141621905133830288268703401044783509583325806873883668521885587091012359361585815592702073791627155649831239426889373477922238830604373567497566024163892318369892429404664396486175469858313713116170812291840851467024025274101491994137458685435095310941687591693294465176708889965780620969664945035287369683082084900519765846887075006817448617944097780645829764990296677348554211005812566827656109934370542524536099572475759088690551920862960891453974722576020124928941711696418164630414204468830409147696299084757778767798524433017504873219685886405947980487212438439899664783954898411640610448280897489711681347897141472318157625698451445623291190115642716141934912169073691135376326178650435674509003499603197308592088345828833380422559778618443684035144772435062033449577126033411451644657685891101788200603245353135432396208297909109135245848204147239665496538882820340019033407631073446359906683510239372315981969350148070603264653586571575944918813267113587426199819460043807605973878914530779678426221144711458697414330693573392663115820087999668341006288902584941891751470862488854755174787205434664800596283070124266854721914533395527597601061377868421145356269901120939805576515389684424058097142628736959969407270089842988234167414585238162175249493233618635265424600735035302429130551384841146060638768178009170413648600737693956831056189229676102427446325836571844537703302695107871824982782354823936959184812901507040861769653652911793270033967120542476813862673280932249922870039793510506583727128817486832389789471738932261380121447403758197404338347506716347500829778737027639303295967760428036645062641197821587181359706804850302024349418031543949787819609849589155841132287355703794215565663966337679820106463625371069067704464443436458232160833459908614820692497274552636392106416226512310601842971230054759835287193688764843212350003661527959025400252775536142217000403354208035201286441305222396188822556177327795009824911619488552451062646216845241723499661881325411476029186632912547960893064809758165291314460377024021249488452527229985098623108018622432416569419342102891873390963726071333356032534330666371777564490641401490265720753976750594826576663293938648311140344298641764324652971010374913056180246967644513560285761904958302937265996471137427980152925258175833554074784122345421402887491183485063422529756658719578237595425199750506565841007491749007047157318715335301255500541295601080128882771258252980701750345136583825976153712468061118486051669363023486831580663601678434590601948907088229330411004994470005742202368991651177988632733482706584064625556238996809037947125229307040383057133600227006694459431320939846396438560942619414944438670653099090062727393412300549456118298104058390796740960935925285926174066515436110694178481138306952062128849532125875180878316412748532862995684859274402058077365537137733068839409930803829423830249179326696282061682029003581031044293084479423890545181296124317899259296856918663970035630078799503933394845113643641462416905112204325262426799741284498222702400156851578990721093304631341637414073458676697032268576116082004643842024978572962116432657396114875420237731027098347984564121710461614707463370888593354021946983284912360744788207219446178235944597555312392821369800476606019660981671639225534488313223690996178954990875088489142583559757430416425757027026450963969685601743948888671798576648239196080626908707616724584383284458090080383398089948505282041533016436934657164110835413070129801381558079459729655317381582418763288687073071860049201444995488884130846365061674510599772117805032175684556174818128247011288592259378577367545694943413330212662970910216511940654693616582009023718164904077933809029684365275282799902440518954850136511046161560085354212513089619180037384730817094151975088430101868593443617684334364165785705404128595755738991496505384932777608202636548500646372063692861063592561046267282110610811419797042357408409272420326624967049085760347606026822756990820974132032808086243241318918688968102812454668593117221336503559058169934261931977058354083614108110613796032572853571476592911281030893453992511056519451691810777273989890710995628408432526281242066511571653867426441813871680220894536292281120278128419515446873149454906894574902345381614270925469859082320707781920119693324784779294449592470383730264526768684135478786207326817289326737136123405629310633844253761602081517448082044142822402413849164902495865229932551658397460877169672983949401426355142370467969513577028201565488854974454069024051218712020346769961969198165110142718291909982561487934100418399249673309718629007762098793023802959167009632542697410805660467686150219815282482113231613517928627318191913862898108857376925493773611813169461011431601737096688421475106173112580710166821990986234694001523700507915641224476940523061138410918751011197904353128667162125814703488356283805526555579372509798756616873036897698359362113764107583060503513972658988748238222634584904192673749080925790651726816071159974209617157468948781371392069539696035099281591768565738296029079485747970090658623152064382963870498380848946931324687064422427682937819915138053712978766004656194069059153579759896843764743930244146486815891537913174452418860385377370876024154520449593273849453956139507780217899489883126625577934995477722327163869828227320124556505879092762320160374492240792202511604097013988679300655193410812187099672943146697881000363296998530968748669041484034111876303933683421565453688141477900262405401446206538577953053236317676620695907611196763505639234667163782326673174995085268948807410283016010351314873925012918776696579216818454341171638153041332256240952205112021912786594520407516874890828451756732181749229874091846867150550314231252704058716532709976039173670526452473994317199696284075247190397572006651112165638976980069596024190631702639453396221324393974579755053315950396340152699783692532688005846292701633664571896005038865052747171908973533512768272468967415333700745008392919188519383305553781820290427760694597459158978012869736614810254660097014993778008831873278096662776718117094387966578109188604401689860730888279719643137939818441815534018753704913519847682405678317174982754776759918991710071814640085630989982598451042148349144477652181141210544995327799787958100785590797781912445548953430323599980885129764153762466163894591698376914164162009382212623494319399944086290871813763636456701721283695747018917418248630530370312960460831673065497667655109434785048819467637691316928926681850232240367062007698059284956990734036762990862001314806408487799872595091451219368015196335401996765088598202578436608165005730456709975677240634104851754485935481832113195203925846942811988155749783402303054909198054697164105386525786702405758614662871534175854170856087134629871431213568430207335128821684360526933364696158133186746159494430119883749657541678421161512031921830107859101542390975326177732707115207137782903870525828356711185861086131853956151100975682475197994667112635923166287606951351524298524736595893564684877295987319003723122316429137802065666633742544705442786015131543959899771428677136105109074173386945228379168636701853485521258648998309474986884824563578929455545763064622375556465565942320864266041406886333985754703126577406925068961068614273860305115792150180083297821608886225000316665033063294115984156991236704205508733724392707472907238745694902051291784622610871569267152314464462517152735178926470186873156770227987519418070320883409537295658076302902021437575319645922104915564527463560899218267425423014961185144369669752147162560862759706686269428545365578011433987883893329947716273127910672253598124129168689782352308043515740843218397419933454053215984843632385371429355365589958039853544143256991126310282272887072459731309047978716434831843050353748085907841624133209889462511626597733958937120866803096274500501735092637192337321421736757719479699246128662156742598974823730053098958407125094547779455867645339970423302431781323537118992245706496614484941001229348439287844972937075431532220782818199332410233847070770585235419032480897314987049126564120026467623683851657472901707413124743818467525770333541725247957879202730152610921232131649145050784104356523038783751767410008525832263620204263543167417131358546284583140382592348298405305873361577551307395492671658598113983195359696882163817712388473670502892646548958064009705278642384163360332812962877231531539813022531883704943436391530594328621193192755997690068066300466062662731442113108687671471184061635174709137082396556515091062011408838655625110968653334017641881676761061761928244935557757199555021471019533447222926544651267748257369410155468172454493788198922864094640364103451121175323204348124242189172117191673151672030311461978552888949157582214654726509628570184258482403920986019062262137036572769948532922168621751463958636507604548443497836980960370992402092613166320338030721246647961073797465678019502945856256605466503863797258970197628628123852562844153995997103055602071135186343430923128514810109063735634857346109125492518391561462187851714163141572346087992135230313376071387138024938154586585112706202319950865983414015273392024367645155345001404865638251749398960242825294426890749928080798520821148512782516955395690645201886585542963617094835915392587861753589144861087299185656078685623316174112966041103559849247985799371806086693430093856524487667847325267862593802913265342635603899272944820553849043512153691774270808309013004401585383562371325861004291231443933650815309296184534786328894718017089970347347053474058141817672459542953683964779386578510973681078011273434084061924913872368164695180589634348720889389900744005689842343947788972335222569248242852224040793593977188779347037201046123753355643711073100533253018366385130067780622781635475655892653117862775253560222769886711587766033435102039105495956999625379260516745801147555960752751610410217821205991678655967340979097773478083908624973839020200396237612020623497697185046624856459787220059783090885065536967791484977906355356296820374825317181289803944012560860860981803033126497062197671364055398576781577575390125627876601388883079446797321680571111336633202193343632510539253439142881143412716510075957376062544628590459387366277027296518584526322699204503281674164738938014894688128986891695731333718876916977200023643764944535690261319201982285301156965073718682895527422383749045356922764274891784819642321077978299606064203324594611210618886668639929014405860036251937021560754135822249243105956448354435034090946247123106775060883828438079883258534519711674644116417063018019701479640073826200583872618884116896080520791712561918907470406914344544042058748459972718978878419563932356983394846586100519205035008092496862325816826806130931374887554155959494766373335718361662810560286703912940833769854653341999287313483164065428644586100068660549712442170971596573171405015855183615265588685738928283935870286114834228494323817402517848900692413099145401350489576616969355542564782532828098475548488851453259197262497288523253385160551971566908548917926344210569431272052243678576688901641344062937963063342318683675655474582257840999961514971247121765593805014183006080626787948140785598914955526180426952494874431965375166332365945135333684180215286619494285582804380912200683363992579431903473313740764053332586097432229430911906568401385381448608756376975935046540925097586818139090183351769007396734298586263048533572933208399011886253183379523301300487992229383756675098030912531718610771321542660360850012125060055188924469946529378569819157902212911529968815514300199754419064433649228862798289085548072668698126521060517152551190351282238276334911728128586549219230443325769166661964451513949873514245989449469416111845177915315874940785020823976308935476377489487436469935310131855972118057056049581756682722356768563297055900659535726476198759029355152713189500040046963334090086797454572217831076763734559715133839330572552634817984430393458160311443427505116135336267714311297605703190944229648443881209303002761740277702599717304981880343388753532839884447846433398196213192642059095695085499507489124955334889569339058445156163919560811010319921935233213535593361908003816459456976161266542918103475601910284087589480672087421395871957313628431717781428259271762104649880569049087925708691057573055638884270303519449000050381262132795361628584000729527681210596899479424171750109904394256605585535718232207714318376215152079068012300047051518312803756117173575039638841929027710460437799356946978916555259976621627900162626938399735648604934367290306652158406281110943587032219637221612742969404458035663880403957913973209874539720925995642100591153713490888308397850935077533738391652053744303297041645940541336133801482777711775417340098025843766131219605983390207883270237757696178809189985741138823193232457147043936366656997241727652630695343871364899087514776574249645134691567688002351920247068531333430059986398452172746852156247853161273638085166974954931612185985884349124866842645048086640500836432557458950965553842330334214923913676249522199496685149557852150861192474385846882972450630872989047293189260161776247093444072728245012893691224871938279430496670668167448886661663625476811389624864564118798974144568935431318426531088575249244647804776460472355840318057166785701958866567890741135808117610250794567514652155886786159730376597644975700438936864873894706391801738179058214062281159033425222844716097624621506445617422893529665010973466850718817036766791178238471044975386556343277826400656343652314613017471876339949409626575860588638465056719680521529933410367742050156137500053966513772767329779779401826036293614311355093648011264488221539878633051411791972352932872333718454224665496931706514736306552761850042769919765001509425420455641552700568141896577499302613604028388529285696873227043175880589693965058118913279862395683285131201607846319078990435218127585732434186242764490641382529433458709279212746826812335971193425515826861483077776055391544174141634600272365069765136592479771982179224276028446551659778588840586797200256090145894369172544259749607364202474835355390916965332424166441499540925143060873576709380741871553023673898711410692198297703021953381213260391467020322358335663959185803420475757098545989296134254413313938695378628954729051278929912970248932054605744371691048666041607221972163948358304950849679489933261509213947843303677057071991400385827763543648139064978433750982257301764468837716739885408117945491350516720427596311782529041462143794039340890695307984649882454886148826217896891241457144986933110018650362987673403131175850142058387690759658656236347108338226731770063710642201154665195699011135056211196398609584846057059900347445425133699330350608138266312298366704875438847977074033886872612997253422530283182990039819903054669144470380786054072183407239631244820937473508045794042009016640929417208588950975445679682795623295187856374438867606892718351187614975343218186441801496244430268899364969012771623532356064907201256039903700957583284984712852328400233922564991305936855684194539401245485592853569161459588005343890379019668759538818411042396917926042931094257517181851956314196817950118130199523490529496970071959575709960028652210897395860120537667323957246767766962117411440078551319302386297724337300863014950011152997725322085111528653458046355180303850009083909964338004334207303336489581784884182841985713033516381313559374452616881368748679749131876215458754742927382666100312854257998921228198310770329370258344353312232017848660371825556449840775294988951710634299153701973398761232032658216177141299208872772464346741713466754949568365940597353142148353842739590899897515303534710450626271072461241729394467530947273764122725923337196290692710011526802974802029974626793615621417837113369957532285788291725120390683269262215603986737623863726906893877136682639350303103605044692865149975430842628557296713136948146376417179885946144543594122044131715186878126481146031471229585956291252289371496536242921601073880242227710030784370561499961305583613777341880226169287574840058022232961995246996405217350214061548759312475707631570058923769955465929232113681990674111281401599886166349296946481224018190347939936708371590082181057278123114026399084910767964298580833889471107209508232314690155511532316613405677909559017534983055256551403669776518325574499158762426631042437817244659233663920192006834115519772675156599717285816771021586291449112202171675785825470086396067320559557435549972185703439806977132156033491425868087456527986346486409867745199579244832038651356100934003123274956043122669259250129965877336451415135732093525479733935788652630662542490250759930916217522589381899883277504156963399082716512782546484694509630266568132852734298953081461428675338566313663824595057758793977252289931248092891968901406507379271114343788097877536001383141788779772359674520452382245603818082152666398710594187606238952282204614876101169073422745850046193711255154619086674416098340923086542070305816821437961540271725061235830836713154289036357102579129237943746548326084517554137278505635187548977729704778492846176148360218488191002031928991945668509653633046730566185086543018943946849035090248372272007271678786209610467702367849727549544570277980101647630760384605425860658177857910742620753859355494327038202768148158421783436911335742313496081061175169487117456238466558563079687112838571383990584051214541903726099759282230566452521497467264665926176418904861455368641843999378378352803841708430465457858898044541629424022143129084861339884846590411880211966802960560721610674972130828743643912634556084958684592603078497651594349133152578172191752303457604817354982951739567220196343062508494515153379324278794441733985983927160519462517208908267448173377784952457304642997793207140388580438752501661316896266388414952163090260968180654898333480727054724703051355174413404813828834750739939637318196544584276558011163493402088835485525289032425719288841799535181748955622293154226713813091115182304848706909618302086401427743165147342562015361816517796963933664325053704372256906706572808300667923978600940221495081024084828756912534934777967731212172025238047008283971031494198434037403726199389878634044903018098629748095137321866576200532983409249358218782670317249411091040294062130564664794541086075367130427586793415272131020307690213604910964440750078113054207640961946573614221567615006171802109032917878469776236996715200106608967323545515599948915104677072153830670410648746054565281871710047621029513372860021623102995431384262902289166690372503787024240545542515915965621377638080014242171234124088619345829531432451424462642691580543671886787312524103957445584542354974938282126869002207731610647611311575711465403885491789346426408443126265811200346623164277287868190158918576719765368944192909853362230798357744186920184545528906263000225677377064145528150257234173727267794230913594592969063799628556499402806663023327586745157014438228911203662640115279567004760274178699973367384941957475163546111120705205924510528943984914834866409216325504107789529247778305145900523872477915276367388327750535413619771100843638780942933715405257598197802744574089949116890345725036099108749009837608921950882661948696803269798341043157380579245189115092198549510957891678410784119826902592378405713108439717280674346746388944592266159588541031037116691169335035695217112834117138503616366657387735684480438692742458816620725559879227167707648870460130048383657836063678538732186344500251341414159798112732458920140025912972313223260028104163764564500598939688966972747801838122376717083326147128901323158358193352311556420690727899648737281278695203156117872211959304792370297956986249609184942563858846311301845858938285924215897584792294763677320317805769726115658554536069059884704354072615238652571779129138761620973114249450673448278847528288537188965018337771806802209661948161869120706620751996850668023683008477297871910256822122083226387239705914482319009685138705300724960378524094018921959368396128573133118700224611409893230828515522599492939224196654475050763404729042677142709539282204064891118983572647046243327601579244271236231449578129540861527264530972373146918334479419553102828689151239103141942593809329252049420992821031980503243495296160544909630993739034874793238457075584784746610839408490317729096042498231178023026576109170881155548909136015071798254865442130560772615009479304055601229643599095699398912264058648852870169834411325447299447561362501613947665646339827433243132236719194848121084229061859202631371124686750524113028757499176605671704636358769526101623908787145983163464991503566911599869933721423849958471388226367595338774461655115285520854658495576062187907736646456374907070923093267467361053766952764655168396715564427259830945177790831748793013132345787800360193940439903201440280693235246888831215220055988888391822782856791363111977163221716571277988406107426431517442842375344130394693025122267639948565371533627834592065931210886404098973483471018148029256344597021854010685342394649838277338741249501765810679660421234970027371890096412249251998619791750436614074037294645237176617155927580082303575135779436783504121730838458414760622625361957960896363176642287350701994905465680493969887392451439306872123652637670896197780070901541821654414476642701524139646737767243828281874805914163126062110930366128801399832817746135280461602263157113503105650724894707248547673431261800009332487776419111228844827998102984236149219218200916837069472200887132505919308198739533394363078944053649710747119854614648114658941030819975821117192890918702326829027670831081509775248531926648974955734547223844595634105841128373278631183320165927694905329182066303187431401108561358209077140588503355569509948570656884231634669096997591478174881070113585819500182077514518711268868305398855016533476463101360504889331628959952309564336988407760854565645980029064170592158596521008301209510409960553772846878442007623371453778384051818315726647708093502689980971727818380729336068149793397846409925465450022886908312494772266905457906720641493876898992846384047594850517316839570374763207951704370179365125262778643018327337347878358727832194251949755550154079849198002346764433539245960505328200826511246485491111676819220151848297293408296768774126137884063027891501250770749721959065887538887819319841109847411564911764598007210353834916685768641924818424611517813519570052694409268142082381613327831189892610227282737567434626463908674800374696058076243558966705204343135026951215669225940126293682959127204685694131712369006618406452970350448065608031042794577798182501796268320870884832537368930528615928210608068717729943519221600956723045770784448844881549117730013311255284781554813113761637785197372273614262356676923648067407088068481759070533513914810205954806790155639663702948586613140755428680840603750745333757145718313115904906960988483980116404127088931937657304018682754538426561560344343329757921724016081731643725634992003104488338972419926951492270695874372608539967638292638781598298581916892856948682084578773601941280975874484480210751757718990486686889064102559199223638905869877250944070768191337204024510969554743323685249419431508808920876489104128456225326444443271466890461862190727379014069418889401703418959243001225727420454622757605148713358228158155464779877307265136246719568058820278044520303340387489849555766570758077934708613856426095929263257286992663223259502353476770048715738927552910473595220673177965051685593881307256943514773036667241536581461098648886173002064788206703049908214397355069858635080064302776602486161689515459305281201075154907915297797225261095905172336451122099564056752681510419440225199813417100029896431038104085652340990549027366070101644307408715455488519712486908028819309954869583577416753975172512609882517760412660608875796003201761498787070399411514206531277210199725851034336984248999004480841780249497247534381054774141548818976470556588003946013109406481483441097388180029420871706936455059453647422580384507482171892234352672954818204678319494216095660446675589884691181308247151782242610782382597142305480865057986182633452769585607145004593458016007865550605813498111994081425307084771911827295393554872821754709712783028933188702541324427497262249931670399694675526534216816379472332123093548626122030634407581974936220692938932163755380138650551749547537962100547865378165305410276985298678575289256393943051418626469043258137812785327231325486420458232143544014591634449071486410900044078656763053886109967790934500553443828401450066059519039412294253977761086086598324953734158907545535843395117551138801954252436653551511817668273148679476465181657833850551039206807904803250459633073500018696377264386031144340169016222721330385341585140893126341395037014513283970963230359773805740012364253896178892269393699703816209699212600302610317636534436382453022463921673485928571147585590234093803413084022269207910235525344350589159711909638851404596062571693879854723927836399709086859626603201343968626607422578418368904739161963735612297485002874934821394805843773723103333568430053275963232402911325859657417346394406719179137794573049359432296420399465018969102479097388547392242640295947609149843924441470318066278506345776626661507821242151083606960908102597547700034542003638485000331720625817004851223487506240083270015565616118768484200737545367285704246541482680047698195543964784007469909397766611038089837933740530225191017764752693781007282310294157826839445996934695674140699773995928300183557667686101979965236906239977662168367371323356604254110275769081448158244210226617754782263809503226658179470196381763060387335428991436929823751372594624870536619602151865652944933673630428955580050563974902475440932365643329885564286878111392855577146108819880393816668161864390777630965599490835006467598465573699434073917286616487623743806831935857208597667862791148542961624076333336650428534110012614292219746948044272604063618017296820271554883911990418754969493809123639860003840054904124993763468290514377142843626525015482554539181296418994720469478159429158127702816213788937436511579297510675271850134748566357916920942491411053513938103139869885527571166111545918640151481807849471315244903783126336661857872900253758610059701218300385103388270349934219106408600306067495906046188331110791612947643233798090509742091869117447112871311108056353118464418578319226837690968058516892540010892452089580144468798757892150819021039145012035442386639967647335493370174342237865286490278821190936853507906779944248255545788374642248206791607243863980339593703275560878417674044282638774697245342883664786725831279052062960093290836065823120018820447917157497846052035783986387457271629368509430409112236300538601960704143154554484116351667499110108951628368499949041654422872692776146325230680092647176727570039294332723924042619758937858208871756597847698436604124369534826110665823612359018568360954950493920067953029952134976746884474911712764917393684307099615080213270469144465644889781413422621633897783853427065552731264931666391527949187274392422082813791673593409665892756502400389132045706713714425892023488820930354789190854300293064889805251450982678910680627586581296850053133945453378392788514412407168715671997201331980327911642169438072611419675617939924650761158100622424255564861433838825500429731494890324912516816316070990803864159686547161742780453271434571196275819233146437151142853296782366477671565163717133891744089945994139203417695981571366064159892425931043668334675653640343390012155143802105319847562724433106126155545263530589377921760111246781392271047661375874719932912082187045862334115518809809684990310323724282358216667868312891954165389891884285344739142691562651449931484053408194323798836258114750825276772037040706127130078028771948180847951566457548052740908569859312437633423391160108238519175543647412136604424029084807449296191626722396217701429734000772192061049177567597770754029083231752118927766423398041075226565069121273060465903191726175950489371471075077267229068823902590928559783507647277877809689063165138907343009181720297197491087173652019866147609512151517010158091074652367787845795968902557505205476229714933746079212419925665895222399533986834442036829547281063564412758809078619055918591637772350572006797075488320493771816982108566421700663012057515907602761280317955734447075976163117348555267137875337204403715368374775077459992286697773603805442875230737141642556253201940599370316931041173869387308271641094967834426135699931773894018366025930417226802209810951782991275192770832066665963955488716924940313285729733901424055678166350686902883266998446465410833021141586246084426843787948744662182335858688637056269657326262115156468753635780341057287374223378673951158951785153724852951809010791740467668626227150227177006665474292282902362029032297541291702716386383831297708276398416622154748583200037068787854692098827712507048263364412970366590663053511044502706394782202205100318558095796067356953965704519922335742795593079295472907095393692369257187506514235799812993727882777011985477032975966850293993695366312079868369438445498852262887786404663360846245985987451252539771160477030394474208025951328239412079127573206550896500543834051664323993068682067649781092897988394454904799151892820584161891190226897974922150055341110961237481170977391625622784207111790420121735290278342132610902411309823719425234840689943019885990281729034093898076845871285946031155841502448423122536262911228990312291979601373515426161685147630526594222881191482646728263194494973222935822353629460849132267000636156062383164374772477077893394265847413472489806513584167518982103976092148050852321451421109333955652322615308889530135253145111170712207673958721752075280565122271815274422954886570724367796879110721184901457036037633898735349197874182335513032342609263536590615204697078084504787140801781917800903779251197025231299997720022065859812760379191557846399542930775874180394126027314963643517822947953967219295409859747054199332939934666875969978148951108508465715542190576228580980770246950351545167510648899392034106635547193250808475658020963178934639919471241458930961560470321509538667628825598514821592794036655686475222570028189142494801550795292724848951039786905739133855707957710741779768668048235017670244247241598998617466441347587334393282213771679911225950995615822176852924932458325271095893765378820630689178266412592719938734987046831674314892632637112216373442475991225846979238053679345755091806214481751793482987895164190428244156858239593635553956482413060216824706919910720676589916550694008393303926170790425390511538964827305574733141083896388704217931309917232037333977659218702120275921771107713305815934278169406851027295923540695916336945586914175880778554441317435590733542937083117900451311571267302435707790442203202200068895607332344478548117206551368169578718363283337049934567977001844625656361974115585116419068088328546701606141844078169689458819662210675547284062306528023479003435450847484348787675242809083008257455972447791883969084841726811711999274526196280387175952711281439858918996423574320831452212009847017956830429898872708634381921439209759740817253647487404774839465223166173241243407625978263111561665927278073032613824210415516959212049886294054890669901945384988982676092295456363609537725476680208288182547944482550064308946420561919583238787038028481520295635007774619446098054003765550323236013992452274370674437748123718933405885856699444520604587632144312881412718401323465845769009184711791208033618571137032638131258477053539963012685599836369185634883065037188258490379034026452401773523259023100942057627972413861937505086927315715765405941434683838937486779160206716443619563533831954556579967758314594920333719717558712634777114919776882529399908335187449020686979814809266074967922288793153247442500710620186069093020825439267590535390215249771285615612890886195975876004133699313472464646094967962864439093529298671194655978221457786923088805440859802009652554139043479986953778695313685951501175709091106229119043492736319053772611923682914311367394051550711414666950108814145284655248698917952398570041296361275893755907338248622952364962270671487247434440317256416006569817039772876027822435171954518665671040849148627389521893565882506152935224636875788839375017904611456800706007942512924807524408917658529682290118208597645958756447233249757458975752035905261497712126716534047073162709259062218312124554433255525565408580838301793786068759900240175765635459251462667699382274093446176389795473311108509103263555231916491127056879923525098225126153911228284215737000304523487139660912588088189339653141618360785901833116861812831608781758868876271982565896203362738475149166628004591998681978236184634547914139927789996256535935311028716666449433776655981319602866141565878900210060175131849674837047903839305746644793279594394986384600078343109251700824050589600759502518699240631512121006687510418797924935862582627515022345222928088304778517018401095305783545443362640788140123932594416983573963991900936023503051970027113410195934101377546258769120041065019507420747503125753208461325970078750237611846996722729183819783607298541879144514349779567652184397264280943280657654960042193461162375409308515574921083270207080445013493933453308814623860360392718309734639307185072452214881895397397926990870371108898870745884793303020962991873591468728983800952665331121494829632443132460136950630180416009331439136610817121889376315052849844589512173216712313171109542960253377429435063096965095149519442612711589167510808858202961101336199113933849290697851724154488174839043265035683030332652618208364130403696773513344713445556731197631749530815157902342972251461816596023202133380067722711232967230990621361521203427958770527737465794598027566050063812376096899372564019599806513700804002744806249117243030215300681987656962905317985522058526310873300265117113344076279341078233234911199078511837286792978416742828073637180216713398673182558317593259797494555487086453263803988997429070253310546683874338786084220538952117137648741911081646255862169517921121531904441435078455031156404939806896860391126804853123935804642677229368524161425808474939772568450580034057097117317372896435126691023210594956897833269037568045121641704961214785400057103567779938105739041419880785799249096410296252343683086594497180810950056856843010222442649219673301238210103194729069652518233883843488736761671338370255156637511297723346390019670614186281572677133699176159538125463800668717354405923506604181472384996418537226556178257461751062105572905301707821889940100955817448978929930574702108320804000190575320373969732803163994098554925157873219587397195328304856169788792179506110993266353512180361324803650865001393341606379367530034620678603118246912404875813498225101215482294551058525654710056059188202467546113668607260978489348337459167129971485945141744206962610787557361420848359707830385612836234127203001949229936681685840275981043702688544553823386671016908290655201210269672410810166310223784329827809811804337380813787117012773123903161566461466259522282322521754760756010757177396318032005551288965857889044858812070858291145005781047815402366710235281102077913023012405337485791666970671386214561201896068463790824220308814264035312489034120463726603883164938324262250735108234782236262804720741811941695487277722272212835123888775799328299065632014562061464178127993596009581471469883238652167067918772964058181541589361032757707971001878103151585742257322974884574397502434340309456396826555569778454382499967439807024561775198824044689864368630266181865939587096902960090314590123250408049462054305985857876259279476054146683524199644637199318198586132418045474443288405028396074515390309034354342343605798526832785680904196419590054957959699471824199865347538344701770739023747826076777644932054637179646664863823008548950535643867544591404951571746135329145998201861524937011134755551835655764732309522450937820521260405544687970152094216303462081611245480794997151902511203954841101152150503635222017410037053299163990663922203848207485911095325592146946626739162399623682050661867872975185505948367438240162120091815702828953294813502150263235681368293206692316970931431801184796360261063724243501285541608868297089916243546424598928177757353532964518404621940093106220580494469406046271276538581103056946073238061050640407078610464594416555037775734803736572929656520988428322788476806484849278802140062057849588598100654624155875315168573635509284546686727966853403592199390505941918388036971079695584682399648907794269793849257582813423141737654228675036284685816297249396100602760097109633902696763045773336579359746993425140221485404823230035888059266871529987940662593929052617712025742624498090108466344718311532025026471583694902550089111082770114383335905319452918142786910718901054954504579331751766507796674969930894693380352523465847338581718633725036694124154803459105788582799471552338897826606846415309440301240763884317247695398880053672573934604478266258297794393863940717184231850173983490666569500217816168128574061438340670520954027588259896880353927569911199447605130221356782768118282909156141463609590521322579711334118524483197684607101428506946619535110149805011450867387006750870694295033672656008233143612938190372061419052500256489409323190452946452410006829211343107721280015404061421505006327027358172493998338669528782926154383879686212024590092833303817500399318615866466959581536250523668019005841233443596002860169949754089985181972994451746497391013356102849308239742436503879474985115376751576043818222968932868979567015959981818777032123349087432543845466872718273659000234999151347816943126031743541455324617878765286757560846702117543110636890454332076036823916837660613179624752431834462320966555749618004753856089115843101955294039932412836676849656651814072367518042489323587359591226716617934188555470057781752447734747303391063462003282832129303388403237265347570734273486587618132113671286856922784185299864228878853883909963938149068770240345690041991577560465416898868943846180069989273532184487329285365221995435444168502863346820933070532150101657392880299860685969832710984931430175126371864821260488384467126001590375319498063355227105437945206217883362867002565849811613566687579855514163686113610990842083966830122016738064949162445622623471586471138096847153442954645203821677215197396337450675849110068158819288952309685001765263049869321385507365664378982219823915177588287810387327169414074816792379342457774632298630537739524703561645325590016677259451473319860150650001235704913048552004757912445306466158222596301916752841345341537181201901832531826778796355887289225617951903584436516461382511265296849933077037442657732740979008376496687004062208474371614624495340593144622485461618849543933757652277772415806331427542442577629153487808910130112367056138157176056872093342929865247536373631605381023448080661822304436853936800231372458285795869345219734424117653711771891820194737175727692549332960266361067146789869553271760122260203981426362429361342415897722696665192994827509091494059349121781810357525624559736473976382184805184336275492463476358879274651290716675782854179560649255703366219958594311476363973097869950066869307005763420587362111385767853592274204543827616416569971236087668984873891315705571284340761159770109897045949962842466790099475319771999609454409908474385799858831293296505325042566409634059118732928819458701053460642419770765219161129706372492089004367609516817399281267680654445599969000498711093580534393028221864624065089386006418353718937122085570307809078279612624471982159342907336958796743464851963281697230072031093388350184596768905449723659322578032594820033385962489401735436178419685406501457341542531004613939750609033030900398349282417457843080284884620075336111112445719037024243821893460438817265059425445705187682530472309524800607111916444706790356517858569601376892519499382739135063684751114172891940960255457303700803936276077130885772450357977416313952314215864737899010435510445702225414184236282172176235913988065232273381990249895801129700164712657988257570739990747842157262538094263036211639665734299228996413255206814563722086211890121234231345973514603291382563064809975967476558866406485543796902832413663098231994030974236654615387039054335839652013815737060386706186939062711561536794581950654820209344517785169468405926304665542470627000366774942755813503591264319348023052432461392576497439703678656723975369343366795003273891239866211615259231189044214279142164595758868517956183023941059462133213205779257302556974364588734140969571761177450032561886130727861404927736419389493994695596542459166913617215890870219551076656851634118933215529277516595810765731578600833334679065880022904772385905927215627914307651935710027935596370870449646795186784987394321225618192611749571583076615789220418473199118607877281541000706868237712791329537621138269866378139077607358812349867416543904913849209078719539147405080783081760442502524359606003065316199150930599863550161817776492724586329145348428666818252029611633301349620139242041924693094154370414408324689151161042163460326895927455596650362848231510746645454907798052949842429547363441982780869494036832507519544744849291018884129501127512128539336625875932290839784834623458786279007202252431143066325597860613386184476181427697932714299520743771114745926376864762248593699180924121345731333022009894026382321810341322966989891978686395539901315495190894844240135775477818888570599581067633331064810224107435894825215579511746993672551271521920438906900816737014287380417877023331113865381092497593925725012588895146628430546619802023695605584063900812796837367521314837318564743725514067581901547256064167683730061887635516252185055380185623795095329203686944324530052436289469785164959064373099676116205756886515468615413189437526287646642903655094247135757435917581200010099596972633823482905153929200784331928033354420346684165837459163472923959970835117481856954707052593801310165571903896713319096551113580958473151116793631658815804977941699924151586974982035879858130098604939338437595337838671340986877148691861796161538933469869013034095720730299699242167229107989236415039080194415328455978467626319321424017003018070096119326630557851633864932177513350396876321373101561542392472452653481182275324429508717112699484910703241825870475929736960774500195730601260829416789056218156778605014100840601332333722526171119328381665513216956535355556195223789832382324487850174193676656118513186385365128012494433752953764129316070691641490716994750307642458870673591113327513129795914898729412061324686905531040755880228886513418619107894892330445868689159997407509355024112453256432426985193452729037043076021436644825349398273450625239823209838753072215529165002932846712931318123064061779333098623324335407827132384342869745319400008062550348967514300871727104241214940095788608465084820893356615709156429442328716168182831918213609859447076325856990067609020342038841506220548064693718462577433796134523667099580546986817778934147287176767461210891107829620027068155844433833797359803301935465358875343930014023702034927642141445775116133171892430304262427522635185108074286113479191445826168400518302427633748986630237160735685413529537674905125602833742082869507165395679560908522331546320433878988083411382630665760763990809128250547868430162404726885193418664069848253467517467343297335550899910963083664193487652200926349231452531325749123444232301803377453207234795525525740296511105817942455576548472920627694914161862802932279500321926829952928160508444214980913324226050671652797831697316791068617098038237377631668327185566660258167745589258580603440578224294203917314946358683086265092110669237277103032887279644683339525327512041735055760754858706875795916916873610460880168381384963606243563610580990590720525436345771264557026504807154517962197212084327945228904836318088127233072698544677764024415982674060704837360862124138367075405710663926221852222106448678852946285027823391243344712287902781237816258209122541601168090942355258918352220023243628418773333353986256842667216408647555639028974208198808299107262789097811293367717065598074770737996029282408673991305506729900138194953520517926768643183281159499007475563155657350610963657692549116077533518798449232979220150824676037001345743192470508511059486292549577465184958510527107870407858169709245504993102700972359806509520572731393472161994707114847983322431815892014274341370037747157656888360642853742161493146616765288263358649357042262769022008147782461599502506040757655574574908213844771468059099844369419895705880914762267461457082247676122568790086368651884018009025151606516712253278008153647002048949645778496168421816886340373303800336187591899247212046900368248393505355511007174871695563280553675955545017115336596445448641196571076861138889309170186705987057018926679910119668778039949709317300917222820465740964015479409252461789496477821340383116408329412858552613273530699196508861643695429393502587447130536807521023210173240374065339350191330394265729128119102717468992286955981839319751514829036770071430306306792483535595206441078161680886302744386693517012579070970100986988177910501775562594381267775943953305744137964518790448295629181510460388952357735418164159362439884987659552153514440912431831765140059521002029460922195649843188995834971563279975344455285545106386670226773972746240448224304026067160601155395155679986086731349483740472945096501447495386498002595919861216432800355167321775389674439714592543970020934635068363852763284714583521712673682989874008364790678698054216904954112205163449985947820812385173424718137050595736592842823181744119652062017684929859852993533233566657608021669040545482703654579897630095999544816950329279710685503428864078510470126752735325315993806313468879910943190109288223659916467087522686285140127207769706998723884111592608722628009113642478880598068956197072572435947273449737967030670623822850708223300895437778654777017664906996576804561008225674700592712089627113480861112089991972799731086641665877112553781160004483120714691063993394190201976390843996331611039545261713999252542424104927784853963138633152231140847930401350725482876852353128271499175881625289695257793474182546693248960376658754332263384226699983151771750495313683333079407176101337198738531925841608660495255939838055238382384356807760685205198710953876525688284968730246666654443523862624696870153127847699442914196041883531653549598833122394036437199030933762331916804685271352141129565064787828274511996238246397404884454132946666879715520085075815447129067779998122351247019952958081057717437234692752511848044844469271020322677036507687598148366782484326596275216639769984643152971371938101925414994909537059505981223178468462014491691732734931888263588997519592019835629375461025546657224450152436587065733971054906063040718676969951090934951702021407480606203947572829874747626792862467207279702753500265393431526567652259266128331893720608234990704013381009900245699494557037138400636725660274876140851979577443355441569420435852511101362902868138329407405698715179194646035326149739685984595238876521856333020494421088629845166657313410833895989311131983031055776387574303395201532039478781883955671879095576679763103317784635130767241808128934540960823532787768145897788041451630300348114069314429488051924157209460851421516363611299003697045856990983442796287846602802835958071672051231210075866301964384408530718531361354171621661121362604677746348908488258067051848460144822703346042802916241719360038453156947916297878234370704773147259984966734843792879569919090047613831320493487827214764349488399130039243543943882331891080982671895043821887508555716857615673600958405854419454746090504640983482185442500290118855496527721796871679612510432482780866993773136178758784826493369030964310403484938917796414329497540513679198203076914311082090367263625271575790642643606553485394372796460087990142246318945972856994028106663114528163673449280991790047635130699381222632953184743908487443763916710975164938806139488385918660268143716817263447475941778307158046720192246590988685899461998600178182874313538471116432197292241034880842700234991295886210217691402984272132775680230206499073471938085676099317375505985498021647421747991437864935030724285248042589124599657343461790562913649554288282533082280884456710972695565890076374231397474754881620225356420849222038197280515467950704981886458594586945026536621655745884962534818943165154447739244760968861303879619282097525081837163044756029128237286287178897772539848797701681328599357092198626942394349695575469165592727119565199028303680442975471284927019372455691736184176941697921750105429158626282124382401152666156033031595474098942096694872453411559875962410684372426890165451556695032476351357716354573867595248406584212123936903672767243400287784247426811898443225212733504448074886647758186598597118463309489051048902601682813255452356958184635290164415681366335760566266412521970915221452749081731993085012635647186216793177215196935050329362468974749710155158630125865572650909068388598495149199770739543428710312006142799654419415633863454522881905340396207381950209388915783813559530321989603957723452144604986797904456619201422362148909940028516107157826396301614119116351517055847041962123140222076495125478662138028631106940725746119839834004733568036476835807371716440457566293891438017803711127661294607857113952296718042117339869285031466058293105304369326294948210929934720310241392582831916509763560817750856039161400489337808252186544490551427359627426144507372266068693426304143171670492913632382385084243576845101368224342191497695577828454483976679356528205709460293474711224712269856337091017287543630862511113058134116212682542914472149928139782869242848570987770702215786060647156200234116820970613002776754093401527894933934226790752540043828347014752362775373801735314582239753531448741623017943811266060110081920195945267071316482425152698554092426246148896935923871173336585577090402546621088023251428549799970443420984700152242324466722105846450950163727842301678495419743017132507812683102339489561414687269825433003345367169604494042492646084011769462790866364541496813668574735442789290210490469764842056215334870650296275789109167251900191006391127476144870109891665092451351850286063449942465697213847567411571489233759001162417337530150417406560794902039723573223372895447230869083843779453324985459922309553051901617688535573433036065824950961019323701708973143762188613717630573037665808614022180934933142074540218501710596045990272086816226678364759223564964634230689265013422194831406569488157406906784098678271416207537447356137893749432289387484377538781023702250100029560674605689757047807854558853380638720625236853503029658602533482053175533904320563726002768219195751361834350657519449549562478898771585930883713151438577776768326217278795051147572060319496954810004944137605934882603038804612243324263315839473584455225456386817988449768688777985574271947994985970291918615727541045384162126707474572295795888303647475935960512013549020578343573895350573644027693983282843625335543465643389954491648909108485465477611198391325764892716400881624372984752813745549959405659492746302732445519962454831351786081557763295553083052655099521811563828594047989118730469228260084536292724782311547066204996438675954919840089031134575957272320731443412095427293788585239222689471086871053699635588316470992989569711016307065293783056836613458021598283716654672280483384634625145528343691422495843079531247685719966982919008090659096691756807472495637083117638922641293121003304648181497537492317303898973177923758061600787346152521558379771887511346659673860951105920854964028124143775305939993143981766396520187781872984030103247600406496352942742063713466899668189267589925542489986580791039896402602784553331110418887962609338173806631079541210467026362494897450691407484702219410308139667268670964742430798650899604797364022172681874538124290294646140422214386928655523318487521986831909197351813635239360458310462131453098117896755446215409643348234935564970016274075779884201062530539557398213990643400089861841321113004107000453356610782814988740640672066869851712124498990619380260734746434964609431365804964174443912367778283393409863907257356732921993850281523332434639671039000349379650244691295851693778480785944944146428310621690538720615636101081194708777910892301795440282770759156413860956517926792412667197787452275577340872622180925312220646968703788112450920667402873626682235183140981257687075751343988090197253262281356369899630462232900600613953761219442661509661858081629309763184549111380611825985809985013439494178954823018113387641055508555157574411643210419091959310319601707656160891016377520001424385400869404670193144757448219850356642942335222861786142270024379617344391934847693461912573312882359135506369209160734346051244404852180016754856466211130323279488285948585463639172591140325244641777341540433621321786705566540891356231074416708414127041736607352507799457079588031192139172080737220764834813263000973717233148997911767371032455526678265772054661627268443320974747125795177681940270063331737773296360933595452025878802109881539428522186594240080366221396613774841748621027330754548490707154133779450296320252893251541766883426001328123971780905049773704352791599304817077686717956903099732990035097094662025003363238882153804137978672348633859881590365668999492481267111491814256508879446158318532242531490971084771171008378885226324666595545623710931202762235057157361661129950918207559483077697824758259275891223100508143207068348818826771754338751113320072166894609283743385459414386398108378994016070648534149831996773313355921917695311765974053991644250979442946682692268480098511149521305565723182674726379176241757333048717391680541658834750945567583683902851905254942651811238411299190934610415074798032097589219072513567823659957126730663625742539199178639380465523659502083871321715216079027056553299082327632524522866102604749096776905960532047520029419749655212011086360023541044691367046495619895161483690410544911961181783222934363472956396987325193557946635943819290614903558121490921489843104870830477826840099072866011717852773473052469556992276233099639022240147805395810089077914799305240579175251742988575445213684225538234168712499565000613709256616465906330321479833181241307498448009611815455913420524876965237302742082815726860724265516559324237630688602635105390245499855137729858922719603747114451370486346197540394084816642817541423810169554197731388189334948102243296242785310731375933527169697165559192097963628636013421740314452867109838034139836298911862097887660649633802609595217640760185594488812969097867257067608723759145117927992867869486193646003925859144766209768831915783674247918994991252176627315936147267697875247640509990198753760336657038224448570677538982456549441545632312588891962381170459904448410277417565411729032597632146119780231913447541588560668131035345372972313549477763517608452199766038931929247375145705912481144014560642949218568999363667176232917715079898148866033047832201189922271549593366989642067887936322526723819262087705202878055568187720253056772445630743225217598146609697734226425442708904953085996159424330384714104643697742245985910760756568313038202605079187909177435322781213738653040904134963277448131164558456925060426101590197585583638507280617759984648343505484932709149606113373682979899979834520469466326930975455040822463194950833267484673319813641168234020476360422405597657218147113550931831377676197249709270723000563446713643229147717078751478807547557443061971105335743570788051378642822648138414902507091748626548101607075966115905455468147142580290554247318282160480630820429706614790509082008322124202196015812556822600487161849936661705031895947892208761648289983094227293322029513453280012004969080808998667818902702829241638534050575734910867248353858027221097723777734245602474592139634330718773986879812527698848591436621981290311291341430243835458431815258279562701977875038856211059005077611556756249399087443962495295360252171955478124574611159342532392149776680725098440951696392300865871338819578632710777328636769987621483600758744366951869014116391799467424651572176706781548866345135700647097301470801627524710308891048425356224876873291635329804758336979531476403548372843348319109423338387474929720608112224349367803611559538772929696400025289313007127318201295633103388964741968405226725043680757283379843676681675249404806806999739308502495152919835822934125668223670620359080146651260253632403609350103686172788876500959241176021962789178318472198476099664665788692628473190210158794023484341943303683553263290177498463185899084335845912261859766888505464337917291851688799308218134072422443773462683770353641256287704372981144881661648251841063901050098678807923912356325987084427750256514945329688828742695202301019820730042357642771339602375411599986158242548470120623421897830370125348738256068755087674650179951175201547476390534218597006178827709029598607566015360514924367713167399102122418506983552574876984117525721892819165663132969283516674655686507052849477432386954682266426498795442452671036057021790753265161985587375095298535274270921437617654915069205450045517207189460534775463274201320979604955275408565740713717026713987231057593153797258244833252695203364478784285613502177422186196053767691696986639751939558015550518281409375822358101826553605261437283644311408797280643898620773474942944481248129066551521290690854485615442995864735474682245423619606250575510748965497570372669232347684729842720491361359995492670693536764877914292212809019189508064748130120638467539685954735447104027766028863176996689037552664299369107811209153093900090303017310325082279851791735078677760373642903413431360323332057829621955980055775219305690368601803810122243333132576920512796706774988125855257253744324985850972646175382363885396758392278370532939824206632652456235129252374421071371512923258668721607941408684462753051506634344308825704404886225229074174291170868260128157279260365298994891679011589110175011077766895695398130677176079005018893128878149045697988211595536876194725547512532979894477964318030670435126290584209629606303389907686491074533999617068637819422726507008137936727507741197974703511088952862570004842599489456231909965885432029485908875723176530456070104578153399294271088301477508934239004149822056835254770035410923151239985353799203182194232717997162911146541082126266377299295976204243208070003635096250415155331958578133629772225561609070503766673132520014389996413258636665496074476526313139920648005958077150466015726357620663999144972767641171178674811913025841990637851629895453806483653047065042072906130836776049327296515194561749769186411206577508944823403105255240641808275649465024674308738397302626103695207181060171049366215197485757282429128367038339939854808615708861035940194933337907015332697455888929290563677586694525825242144875547277284768380057034130915978673561923116228277726413840488888565368925007629063675275165935403359144894549683867334415199388502748510883394871288275463612966265222692711881293325968064540550824341218714200134870405164181587858679418735277736475179760897968452076370002900689223799773355214066470473946916525952832993351667623248579712005940546924666781209464951440657000744542084632556270355666920856339228732814237799976630439583527060447898594271915105719183437882142483289883368900332607878534088114498253052728640583763078842012045520846754684695971476084333817834742646183294517946219430787287280225824932394118257900292992908668160006173328880297693627460762012563641035332768108785175245947231436999734981482692733668961515105047268968301079513767788393356792910612008953191673923151645049625790507824412267996662808049594286753183046146100503701794300488747498512529350851363531065782512100629031421212793654674042831402391246122373259816195859300677233355965848603063552402320424891425766745357403525736225538199538496496818845750743006693669048766855412717323613041318741119182224080522972501560836524696555140508967013034818654152125901319986173121062624583320874239696024279178521868250801815657253932770568778767283273386625495969729369267908265385011200005460311075530084519192087853530774756156142491168963874059047660203713796040212562373812812164234263426661138476160779665811493202868929170556954943680453496151046669689635333770285742632971832678977126135571801266578899207639856104634073650560686722863958182582667137295813569156387155679686062266650429284284335122041776551741018623485272846298918554711548091707513623854228740422316632181616365510523317324743518692385600285617172852202415555091754247543376843365267296976996003887139243922020430345386440126766320874873663583836499612683538488539063973079743590805460308559426026253853214127078621215250453401989008258773293960355664252294420979529163653282451033066793895196816799825148218674433553179400038073534764362399164290344200921208780165488625939731505081254218852836344322954315898671235269521057663007241326462222214416558107404610992178663583398468050806102308816950967888155647906970274828365086298500908771481146608138251826968615665184023094857323983433170963511193880303684219625791220469815623295658792777069544311823237721184799394379310446120705690962305280639330243673180086875123630569921597158153978884448464047680365074983262167131823112735039447667180992862837795788165972214944787303758452952486861879484257682971817509496383637712389313788634256628150150790990157780881225329849172527686462556083108445888224468833736199793072468091936236255277013455674328253291917471776611393333653031293378703985874989718711111908123310118042443893075119228599674258470659708046211854125417947710074161302262018272942451441434810454264599292988598746694838529544410333938629031068140712641281316912081166064991631106634922568929527534596542820164791391415737915249999832327269649887802054159805844939622389899723048475990514328823889388896816911670485579289647762716440472067969521318442428637651686497129938055515716410170916834572783340803748964168254775321941210953001697800985156430700560616995734427776526737509056479836575613385660222041294432547457719662060374643787772880815077299541425345610632818835225904802177266780234342434064620981109442473365883202168152421891506242805728156868527494407251514947947552460277575946983268358227574068176882841047778644532366309240417426000984413162578391569062999601327292521176209294736778011385637193895472201475366028679868406141245397260376973576126436119063883617254434005040198081787973430185261035723972439423256135928140162043948213923972952705924519439773230856913141589866753540888945701866230738312194898291807858275483950582338502129277374082329239521752367282012168095580738996424925398981589030527220893826435479799777938913099579063704428987846186895603892846518004936622171056226079851631115386352568397597781547027428219935259875543598175860932704058778935799824677813704830151092619848929974007378187415974375890836476656599952316561845406234547233975641125425736234493682654388159610875642443636037879084899463240447691910001532884009234850628587937821847016085239300957260718017357976390894625765833619476189898578485262254656559610413147682555459841625252325012438559917697917158879139105329467922874867178429230139864226386689267694941177704325979562352725424749743577476965021966673035646736835431355033172429975761218146795512466969453163191789840626676599594727198807356936213682143291463286390755860220313153434055538341408666040747070112828023851425430776609475865582720271507948900712786576892235402016819225489830442858257539712636876687791702756858117337597330758610443147334484374101249152039750175263441575493219164210370980203710731804845041800825437285864909644210251274044401875519232156469085708086062668205483404196323583367167948725678845768670058931906137911887609763051742008524048097019004349527036495136738394651662527195643204984436036395396934657760613783726490126929838901154896119283156168480277452834343029026862521944361168269719592867530527470598276495651098860743112874042577478106635570990043923064982667885841561611803757532512444934524360068287599778873856926276088327806984443718799480504770494784306659020938976009364437736577577321719748561151171211521484548499983660080342740387742964531992722421729942096149742701298418935444650198181973599450852993679746182664734689487768759158473449440430941573179350623154212759472627067480293742237510568906834175078718949881804188429682824672258719478874292280313847935722214771277512401006436506968619770968197763582373203843179551993556417449190152201425605068619791073454468028175239255430687601160027472283897455827971600823815545541962846639185545394718480399387525587340073156057832903058248279109929713781542132500983570472349043838362513513616299145835058952859141407948181271396383621037939421420718168042280009601403565965291400999283708449409930355955088410140341616871520072676395931933808567178117580523368398504018942618162766191054399530210554859902394331394857909859017894730058607593804798407273752983706650357344681339741798113656009185346433611300215171950087730223242564531953136660616295375132143403883776390456580543901067339795722051836389529352537816683899341375722177543752281457360277444207183021497205518850992150340088273304023725853672002869783334184029125580826464307571551172819780820378524695124296972087643036063129065149271769290541399067196686308226353129660607326915122383985253182095417936428379279421374887132986051964205876400022386636505619117859534811946167034105685512303338807500346838587849823562719354482561806669979196506971796119189752785041771224722049377088033657365424597166177297450153977382561288977334420715472721848497968370456696680895192206218272763441159560931126459691896190378577864936317944712153413905815156022313492894715489858280005257099448897667440258288765479523054471493191794460310516562020842574564534347220867153229954983248835090095842423067464951109708685009595361190386010322005185914409468839759465493928159729254145164728019949036039692946513742524845687172171784650429076377534793812756926053015925639262355228152928862031085549066669331321846421039560814402847633814226440588386327100107274767439231291150578011667506711641890613609062441405016470905449050317635437387456380756274006034339766394774287031906844802028696574178465995479532314573228182412372084417480206014015848014132807586859171079026382843979977941907110055180201693327169308883833364987133956634570149078613096591149501780003937438173639542426925832678978675437746254632044355170572974425554525515925673334024015510551007850284880911472582786814123528250291241145669641037415515065899358775125571605530182269987789478676455029274546990818092055685122117641872581866168695003345510497765169979633375760465352214138798330366563962800685645862744119065898038214660614743026153353673783378390857538739840819391213561719934463254990587676937772014776309035505640927162674710992335086861306321265109303496792813501850844913516530690539874155039583490223081069755133818329838116619936448260132289390556455989265564610572185408898040537842590172298280005482020587608311986931620984885806358741102384307376481791490440026594474450630841154601623930185076143491670897790997952270815900736944829879318461845775687599198479114746150929168510144146269783417925829942893206951812191692195642957414486976016250476004750165582802737419817990180559459471685311097734032140745824852472996526740844156334594046727437472945902367197970660504556207386686456153392791818792661020561900863119862397657704712794285294070105959885069436766672493520124271852056602041879633060539764501917913350508235076655773893290048088902814604987832248612794436155134550537671206319221805851077105096482329558056725998874947346871301872281656702885239717812926069738192934262574994434673757779808999229279578562145472289280460470385133656359623728968676002349230080191865168224670254299875431931372479708412984623546171544618670596866791484167162082310074334535304620979723027874780786519549500297987612473617017651058096110030561082213555056639284138822652727024025671826705197608964798348591725335591043743605811076137372647227927684060998299201725253834532527561175393723803436093848568789273463766022103366990906788132260916675274929638936255091778451206003490127088612654395282157054595773999142890708096498657915909818017518933604248720643409578244612044163810046400250727087704917891778640693357045286855150887358734028060625588960429430263723097056637234084582738107945166265673952121411067945120729402571990572116376390180481192258173509897858270193613671968599502652745363653825057606130027813852832364494512885733646444422913290887207346005600669328393078710434045786664653850878200823694937491842853304541026998845811768498299919795093695583223150834276987795244772285573214452324291640396306276379949456652849689843590719111862491601711450903076325422736168099055174657891529159274718964721640406376440475947932080890407245604413277852076256540250529979750605244860694331243742976499158916464965674191579415112033857029634580619654175327301520978614332631522429430772081876180325670942596197250536285212772316371091135510149276785742228543871558736156705380778213536240091415433075434632082196276588940904223587927152680799153975863366990044923963488211901480334008192609154637026082581430542168515871025495788404937723460677955039434362884716442261143717698748300335379823184202414675185734706081648766289417699459484971949849850445922382397310230260757197743934127122473476200543343796086687637798404081288357528284134370867614970819743709608380898464994494394545875028487787235351569014642418999510624714576912071045148561355979833922848117227904456084172938337266188438141881692792571948592859396953670513964641115783084831958063314765674160086401606745353340780029768839420582028356622611558067645112212337398987032432873549787669679529020870258249562371791856776009571997736430074911828021116269320931995758572747404500766581887832504244510632038931820424174418975364956943272649345197064133462948762554931790368454877797876178813070902590005438305893416284030843366348622150558018077297633092817870982440227258878787397095386778003090981989595754625070979087029537133181599840076612703897630608353523422599132798490081180883505566206921216025889989150311206458139690001131391908430394960489446404237429485489571421692086176893338968990805058408559753578193171724080711431610271905964180653599990706928407360698689110269013998029235817005500097582645792929523954044244951220349334459870878045698908682566901595798630158379538161756280989793099371175961744284927940079365219433716901074001105320999884157722093050664763633783954694709031904226409872890855696431700499164647637801723042245354009250116520069812127773923653735672353244979451504657092880963810509109938315989536455010255591582389051683366930723110966158903165456118872723175015269299403198703219295618236700736236564949945195735614277053716468581200434035926348639498481511135720498152454407791831281556868905859433051909313504983762952770915502334652287928239826914786693797528734088228277932827240867122537275482612583179308818805455234213406365922242478218255901694950681048919448715089264647807679945939738775779042570555323948428147160788837086345208234389341866525313639338179153799049186831224675946924348691515960457690880918492131788087557524651909852834286859675350930020668413942982921033014591671867647510297669796731468563298263090458775611444817951376818408561247313922106468289542331957935486118902824362243390475904898273578825782606418082618574496597671067093932462423932626972020823590933916248569033431663243995551975517068937622585766443105618354810568070194330087935291460775335318296074984562904001099831959073266343195219124345152864407097322494652331611219207583321967720795958729634273435019227522846305852536958046017157819052239072165600660528365475919952235354372130207303666044280572849034411856245789060275446591808447011024546229437993789466829558910270694421856961047985904462258339898837314291024850580419017392905137309307790363054832175789096138495937593491021463050807651092241467247449474734557882797544751295192333453138360604374468739193774118260172580624810067141114657284941582258127781171331884929885694114444287370478133406797008299896012042623375151059079742242614916269703027791708896265935550474746671195317290345400194912534808888141905138658582645233656409393768483361054627866995442675183811452455759410995424171542807040160312699106003089907092743408023843377500591471843018760333314098840517936314901863892922515032694416380710020603447633019381223034444356595985922778332189345918283961802925867906647169647859536078273567707834935666863608453839783390860309452844483842737778765397280921023192518653902952355045022232047193006006549019617997700600711544406281449824001655691237021108884957228336319699053839413308551402613958690206399654619119484594307132876317991846466710434789090945205707529337212717377351075656910259072849835702195756380965669221617045814302315983733353652276146103746327262166402588926975802669909819586206868807884094240025351367320614020084657130110890915864132194805318038846428608884133692028489215871478506499508022196174421024379277165366059637943416352796773975288819721188913020260912884728588811974744487580899040676051466256727261887931164584843467792788081574586879113784471328565200150760640457527344807288778924856029508794682530138572980315468592575960250940185410594469181928985109044966174218144666794038157865572297894783369351117321678450421228188101331233755458999963764941750608095350007759817045027646496152559287900383288142284968219427592385967184414499237456943162045701973497413560082912131484889052526444612291285693721194075360786290400085951818426408889886682930646896161767585567531743151462185374830579860330242418310986769626868024951789810812736578708572018728721940699725640791082673023645526751506703325557086374946165937845636747220443913337097504103323999997045054838406772315328848812258834102393927834979061350611825170999820687026107083156384415550235864849354649193776906381744462702519282230660300562923025134461842005869349382937384862185394954896079924917767336286433794716372916525059531971126790025614719058734908393152829306472433504090295386651311064381258274475337604483874464708025117583269749749635963295450929669148997816611107559156304656305091489510007505733460903078641366844506623125278332333770018056615210797371731603123696283265967499504814503744709829336590301670202657444705117432281893851452501797043013900257224149604166828549620482589824370464455997621895272161718478393829342574275848389573633941225057179152755401582730770355797738985602766947559723389620744350919145365488097466887400378235903792821042613195490444333553780034502254216688618637084867500547746555103155012522395528165914842152854268107256703548349918126992801972045187043722850370162176198438665576277667057728682359481460922901778956590587596328388524272891763916111762156150132111611368367303296305195684527194869399151909157962660770554332063412517588928423610843273205496708164482034874761755311186716325969476529959517475900881618723763345697940829250440942215929316888996261637821962631925515308050921533397279715475362166349680220374965038437795179418002746522284300782054406844880930394647019673704936290666274095949229075511964894240941689858620919474737098989475768365984547208110441600123373910273697926576083030063611790407240210429324001780915960315796431282949946551718853411131887037657311028443114465501591390667750793820242576492496930520415235304395102483009350176087306307382489725738055932061985330956462618683230439523831801723600871852987331838842910020431463908852541067311822420616313238533764225922750305538380536609693460410052977423510725665073251171817727001711831631199539503647109723479915618727134004892622128887517473512682204070572791323428692625994025431639775232582314410897015215352265416864135130253415399560206750914033102006517829509119901369245545755867886105134720500149255115858278388108364050906077744670244885563682145262703439309902013358035201779084490030549503740467607534889379990106635450720710799994537475308194304016554574128828821269491821114915460455988652695275828088639377444944107909215842521809589672585816928985684834156880119380962098724157332386673714112713469355769568415718227314039182322127023751263685730438635626170019934405204018509768832781211050938465284032455313828282610149715254022315802927047207661674909255397550555748954948711485090196540738616920558015708617765500581621827798972620476424964247584358918457035620818600354351704895930205096202736774692714180856964241533209863952961299758379761503373212486917859068769405401558232793913129380073671114946388170289700236963617445677029499835816725502332811460803289610618820426143287565444177419900216198861683219044249616632414932873551007499567587136428361124515031094173966641244694283670917934388548637608932736553958812148474682022867832963602121451625577874471439264987222824649798596778248825578293413213400215911851516191040533945269242560676511560572047582496227569344219690005657610919434534680965459003991384624264543674707902894842899096951076111064291373446608666643680007096253563074581216850987073042599413941485326555735071398996397270428433347723954098518395655888068052768467538880951320897886426562884575710542734278249887065622709886929215489411846028407898168598797075024062854334313623758165799967439955126950956131562011189478054797660663803535200755003432475177236528924493351798231495447510954484748515435530625278186569405920129084273971797163214906388604694171390548530335980782877056721731157298486919675538258790742605731749047041738410459345094423444910691229979602650056451932258750891614106300390678406555756404747852847017348035613884806206912487793268581630651385565686509134169495756998323906447698349208584017271793200793512785638454593934155302759177352820961718795261871788485197281423388092045934573912573387913247874483616442505325394159161475614380521212263073171954048265415274153909906555419547346253083759643461293674441385791815213858193448323804304503993951286354055056783326505052573635961691633497825062863152315653118288544874683936995485538610796751786977657379578796281399066505034111727419935495339054903254662533578787870728882871546961094497918760937066788056819955862987352807439727138608509658400804451542835133613137431670258703531969636560921175855175642905033644173364124850642090959294059206850651513875367345481459884220776527805664481062957578564153803657846783538675458100772179534381424327949659327070513084097467680038760487928749658149029649049819355539404821931276228752049575587585015576525244580294785547892846718279366243219556292489709485120204419009790550919395721711055186209981615081400847105494613337985999628843836121061046176489336701293139174602117811683847010390894559458756345251528968737233885062413098057289734946781201892940888560747241521177142552006848718534060891164526874575665147796350817131093130732505064213659770710383062039495552314783926648105858296411044125926963100181929803235346217018121560368812459863213611441321661152148965177886254032197062467652720155044423611684999779395054131618172107197554543054272646877281488035284046594328610207722703828996887577442381828023215469353980347247592170523826581638091134396679888878300394504084914219278283083200462236951257899872766744708813013127955366600049234616256769372037772834617807494754149541002829953329712474030689454708053454208573987144183815797256449463197001121719173300509475682451854325605347649486443545225209065869282478453433640258013687228571442866297522661305959823688834798374400377060890910860913704776733972217891270902080898155244830207119811060541078144779440081592830149435398683313333297372597448626497109962697723632110729445172812919950303416246079870834621019373205356554112928629703751198563058730168648054061818947768104301381366509409881086764386088559849541111606238950568702172554471547626058773870412820838042623975398781854833937483587894342470847159617728341444895178381134423983130068563179674100431137121936008934343633019587348100481960620705652989701324078586633853203929459290819607986509385931837207989884856060832587935000998624045754853963425769448911681828193843362349284293447546246130209628753745429586688353174783004493865897273751496603803093220115653774634992084106503203111884059541303262147573466621027822270060691845259076191656044885753017018460184648984791327128406357628186490522930580717618311886389935693051378659276110213924596144549026759439889078062822997192222646288395336394796498320142980982804396016286602589038831135363028452910606198694349015343212869360182554905820698171494890683207515134906281342208604835013574002947694005929734571140272757067511925526586067476719212913879154172057324702253793165175873952576769226805364583972117576967418514291912363967289245051873794273379178033661820705647393906203843395049670985644281947939080491978455862369994184721210988116981912745288826069784693282510960727689655898808142679752537120519339355729345308662840347463926014391957544003467400401960179012005650011193074064924746856291393644628685455742744854119786181194999494592189022789410589819927057408984553931876970157710533486343438775765196114946964361631935630868405296396747562444627665602979802208825891135424078095787495915946118350334362631469823046632352960612205640311704575602854423768466465070595982757615027776569666909106688643342426407985752026269850385140615956631096572041985510984400510412685589092687944123806564872394917259008528542081183682805340162796037360782769173374573343933870131452832756910716056593067698522352991106627284668828895881770770672066651719329801999983711337295231990353415539741108813222850680930875324469369657908287541168994490186540146450944033601868129317058136004433109587122301593793626408896057974178128938069472651953557219537776938514232610133842958189665292716685444034648414677287397289741438947555492491867817102788338250983295137277871546410893226047091355443523942640809207144838129329975882831355973731466892496628265995560364512867802804685869572168996461219747587771824569922233036654841034168920021367159905794725082894733751232348206149382280653343950973663190316939228464464443379954646269741619970245210068288695051724043453860056891689325184059538843340044449993501697023412517703829589285414919955436032170447968096518260481803877477609053028217633912855730444017651412705032424673398339684758181144256644656065099552862329785640009501107960944423243903960652196683174859790009337996139398895476006943926430293556873925856160252125867600635752946255423864874337392942832637073313042054324713490573416139957805471201739361258131064297439678655605644929197060550348792145479238224891254593482571853019357901130127815152079856357553102998578020674034973370788277106520541829175451572444764604309727806059336826752000212480525814123004013072636374233920353726912696726100976659356970923654701108697554807438949383160582121581682654864961140790570550594114865202073484888881947856568526497337882062609102591416788567061475265038164993030921654726746332490301687293065001599240991896340839010414214220139192755716615042329701743160980531131343643715544677309919839734811743104968380799923559230653533026997717859556899991846862528334486858426177770391104443588336587826095762146001286929842616172796818085876190643744951644983592787212981330224559050112869941266147435323147072642671798930615551746091538447735674269264413126627700494271491698353385384796235834484175182771427520387635223987340355664117146790421072473766581898675160777592758585393397100576561227301634778667957877261219932157726654560567563026899899518188391371733264424402797490201515007680491899825941911197315952892583244514817809252449801257014378371447929145605233727679956173437955004027084838941518127035889148700684965516400328788813281637595901197088190606157693419123021455080647143479970529138090724474200358802553202109256995979987969623399011398428000815578511594433577250024430357809623871496183211320980263721016811423348780657490180388514127197760596853862563431849396901217618569916547208133826361701489038930407210825830983615526064757878587670391300281825817516259622713482481251032063208757536856417416406281527812136286057726587789684118485199353594402465709987662963351237119184027395726419130817410610747613434784458223760806965000605953542860155321934153725624617380380906117502184259464664834176613654456239367189732085788925725292085359805773945876304409375309026728483461325493701859586659953222457442749140302299377825229158308136163489107561414701307069755215171152741071957911581001464797100417612952131101450120507413783447447407704603585037000733222090333101278248915887254400324136909131372941649577837782753917860673679850596336106139775736070223725851515018638595705157337939431036205207232690475740268599754137003688260320674838451488661403257747782975035981707305014723832152819318132989979367819715781959447666373524154041665229157109552584258888702163460651534157337820456297835157244873820855762641664903723920285389338358683607385365426695792390760864862689949918260795549687534549256498048725079297914073401315346378259330092028830348731844268185981888712463668626771732570143978070285139952319278620885152019801122243302729182141982743706071975325438633857222167053478233505081152475788120604997440430363320489157683429515162287984283929450788573729360122145271421474329383306081895290950374973163922999341116408084817750230105490909819162542912920871628878290201946395765174699107132069333892602948412019159380032636853355916150493361662636025233003515662721424678916864234796819182291021868449042727769572219810596754946676515482238845866598971367862658514747608691464751321968929863815772756582962911598771833839794925189536871073438215950518305179374551957718408056402530569283386074961097372797437602631045460867880864632744300652081853957806907333348801864853246276086430231732899792062986277517197333200934077845828009630418781856639621516678144715038919457379632385996720812168267069911729909385942865176068697031385982883773571771505439541515585904788665947847683599921113891305412683689474887658322652204151476661473138589052248692125136936443367238972667958623501918406970357798282945593679080643199103457733696792501161536369111623956305840833352636035488894628239098024533492734490582628646061239324010205151046614329304076960625553524933868078938682633063152704673005163101568926403357946534823271227308888040711766006088192530163927354466564827134913511066820532051353860612703208641568191600245336468403800643923666923500038348790285593009636736379444115300044375549842645903036304491840885249792229906504606473597926591597671990467501144576200846349434115511671030236090146417506606658856469892474518069044934551303123115786456868755009905136907095391530021898002845583799290934590458253594007180607761586540392024636988595316494797591971473544097294097868289331691146815452910755428153145670240104052423414105040637990738088690378005935172612193902194131944472630400877234733720747176985264086930908611757560032806875125616440137708783195967632663439183475993239959498653591280699471715009114900017220237147219501185708817758646026737647515967270585078263336970569537154892917036845810197523704807778482927594326135581087136124748981223008477208044717447769733294193652988336220627430283761919119874477773964154352393846117342236424631458279734700100644686013737832855965438649371273395796519471673018716580312711904184604711219055496677865503268768743997414271853009606191132143006260438579420130252345893817656136185375233667831815048260696857283339554780430044460221222084251812411000550473801778307579092583485778166528187572223009019469032553347915571252583271035556201844532797336142047056980984053875402210792850107303858405356312392098662280388674519439689434640968566712549583667555902601130510971064603831316554304502777180939358475244147072155224125637340437092005635211925704338345588115284240904096768296073347264548013779311793507641166438477082080537472603305288551729906759836553469665927916585257212603742728161167410940827721026961568495092809766592365284340833294228385750049683696397191649421123016640611500126240174991860882035890020739417164673181963853201774276692079028322286732469873156793932269860969726192952494851143401028564485293180334868668737929943011154310216456357462085481723895928019601714941348272134302318205452014518553069476832162850024693945546553670580657107090168312799207778722019412326749073314215814832991235098417124803717885120946595936184980588213654846015490039098657940823983242788872489393894630004780607516770499182735037568580427815449602001213487444401717997776763842023204171417318069986152985911644195042619264495518115978699189470511065730863915117430717183356486582876426017380838898556324952524590788680065808534629823340771592493425077981148124244493942108240604010471422264612116382509845867526399356222659993425633095897428651507863613392564280396683262820409711540533385151480337905369710418170013525658768250410192748123001440646507081060570720079004313262349963498956685236286733772603386305928359753039571581022527762126611665961826970342559223244747405795220387650760577095076789589229824810174286980651459157965115322168560742021703745942359312407359581799245979030955718677559184567223939906718191608890471805378468473065980975895263237905984434433149777551745682671652788690393801945600433612853809148757223759747743775804068275687062088367506483577098074462623093176516905468283111052855047076157831786107625424594143723452793085339241571892666525254371749023724493555562379763638969925041430492199952108404645603182425176797700734746861864777211334196668700492073817018380536237473196858775760335611140601095305549269250658225751140074861166348251862306969619764316639468617570489071386364537851706038064167415976250704006865777994101985772702075857279897949214438242102244046685193441737392662258959486095647553771836695027134980679050349440475957990284705712143482546531904946292978764368922123377706503801085111212632045658147520385603152188823816854763781512913773383141012554298816272522806919062401946510089402108167922864770591655325802073124603237865071206748662449126697532320641235160664731641935825217220851699806087135439261431852174129574730101658438630088219305955461216987633543962147282638471883120819439675584469843601614144867228478105659129604746953479590406190315264372111955854587582464328822528735281526894482551303368574187613008139665768565222003577464359151963581938282192677677355272115862132900671108816112248144178986476468463282014126883919704286124054243821180875489692684328924074888078364029186935210660008989487235316017195961005585249497924589495721713267939160385476226202870262290900771806714351592265126122197227026895668578671356557295271662211495712042708457202871755059640362351444255300178218497554260409424095345769635401355860249559604101071857185090007701919788390497072704789185815462412590905729964055870612540877720758511570645201839208200663606702099890672246836803918115650906397365354536424547315293001547069699144905602502521776898340088389695205844910353786179829716745416109047877133276736640216365375391744416220461837654902184257123779601222840559726988133513519882496137374225826510337061886290053394547609186477520924583956224536630342802838816010662636322029607789217749943544856027803001462265299588055978220728953581919880828124425402090324304273638528944598749639662109918697925542272292838566529346686282387496787542561945460568663178940759255305286652041814999665378393266388238182789003611440875316030227409513090352077044296743185240422162116140998685654298159160097769650698678437864790995838142570762813963456192644049720604785230693058754477555701784510983105568001522075448315836111255106237378550088307852754911443072494139775955880230910389734615191842876438816829334074318595139413028831126761395410195410325747549301890909299882291534018459993798324270166181294473646247762023528696060411244936765248197537533672912683387719602882800110716427593102213428871864772513365123282970957126544799187250871179191688427475494010100968389734268986385191076650083286952390800089852924740369865998819314146844528951259065413732874714929376429878186445787498178269771300557083051625215247104605362418840892071223997102388472056931811356253426587376692173593656554070202386007152020467149655566660371113702518768931071303467336451785584694284540263246594568830690741509422336490307350396559743104414987766331229086117423496601439749912221327072446075920305534364603821774168747224775193317398887892968897158159689280515935854959283454517536567782943446050547286016846457225482693981316637162683098152967895785962188087910817900411112483607103845311763424078917306088526550610751995151166725968995991232160873672951783936966359563486498984447296332319656022319989346020109365421261099958166207226361352990213260249652423374043052131871326609373035195006061241085787321481157785538682691187882850620168647224939599821075236065379137945879361138398417595897430127021653985501323726984652452921817791276250595527234770894117720622750599173215889599052716224705844567170290752555336585912984695514474297150744581027887985946621037642857880006629928819404415671231867843369371462451829769669516924178890493348886807938706889367729135139773076764475821077595762607700463478772634295737354816843739308676916076289543686393468405664919045504623519574776176315968439151734929995673314567250814650635615884050590193246088194072614844306703602792956148940680133676596883240193001609956041466058420386429155859330001980623314915614672155019590904877390659139342290773774021847452602361509960442317492875153101106349010717501278658530192422581128128416024917428512432393923605631595284462724343967592925513819216824900741155457580816944665149143643740091151362867049329749227884228099805720870682626069942826053792751012989172815520001178409036480354032720367037853120206068757258634435911475304345739710532594744903846554074711058974545026674293177817653995198948346944130447659790583410190540723053831166961504769604519998520965001878132034512215993174746962058798828168867579606142452770060408739818410111537423448007129289750362766508783317970022379102215905541948393373699701606726883798511378423283760928991838901432814549136077201998321913769431960167006227480765226131168145382791942769327199169625078662331473746412502741634287102207234539220839376669538187557934420690255362264565261286564985556143153290168350272983573586087258985526484734018286171718810863117713950630243088435988249952792974527882342590693756785324081152207458999141672706899322091564024592117824965910227935598787463697734008358035098717188897905035931779577696654088995760811451559127300955159167497948459255197094970214624773448632914462351968718082507784913821110435002952397871332090732956778069072113383768460677729665759090752172436786732860034834999586629346690585712988107048515669216761223533602079262496626898716101287810488929430491865794110641775235145959401113816567977656285296709436619972060780679366396033330309611239281304028860767925904607520687785205824323169648852036915874454156681550496864593833426107901863571568425061204342497399554416449133894203010395685671908682205150894018254216260513925010496568186930608341869477451457586083547776778124442259577930934382147787786120123730845514701064294090015650288557858878306610841824935654714205903658906833316556201707824360586956637360176504265361480592675883799451523377884986540618024329446153987197746157805869621420793788488482185420325973187771376602600685859739492363967875187903026107270001584416692439746771409261588325342630834300333242219862288015638308632171482864908959637319015372132359564582861063816826104059894316374706942839875521561230358622623248362722314083414882704254736632301444163021147014092257542078957001782350555295456307750782288839182132983558270874516169910131284329598567349677163391238741667671403289456226198067237602211899216895850734936010089590387003771742444399357945480583257703241116500980738128245493731086517417050655462656870478407835052374350012262239898061567427449386380052031599828260983653936215203064728753980515941764325850276243357027563485519402015232150122415461522938979843861622334059635699320788731898507942984093967849262413723470730551303985307074528719004568951574621422664106431031095650687740954601442810565412864576441553184560239486228871553549306095224197264383357486789206597617062290114372226317035489455645765688703946882102897656636497437380807659529531158647439023958827135753039029221284219945263544044256867938765726538698596234158831470187608657194254611785502779756611578585490890348927190572317302358982278289460465506836410345483182833093342379475001812888343582243519669506872857812772446605012752591227643129983251628339989193172074728756748870586776578522243721489611337549522667800453430416078672726606094330734270012928762692227965919099407401674043830670946594766615770931241892368250170680809468877943157758137912701285677113132500947661220288600716732030145912956373621312352491109493656860491287913929706435055480557547475478308573125760219688899346809283301007077976052659744529921657114281143562638748719227637078615010541242872255800268701449091250046950417407501329216206511062574105136242525257496901942576386120849856272144902738079132447613051696142274124124086129200321016870188570255664323680975521146581013639590645632399927983669740112101630169978502373324025390206118472049054797190618912422273662531020309123454964018606321923592635015890787582956094746676129013472778335498594081162241461490015351440908179512389704029539097044439946233527595775867410646720779455546788174512292129362195522951615416073235952602659986663374494159149914026171809328419487082704120724992075310070717572447454524290854447738357178880649077453932749638046461018434543326366110045827293382088161087823777566069622909433186704383808430958423945611596308145479977669558543818403504042282893576548247026252538536918083941104761124849010767515291536278083928735485843202293300295133794292125130443534503487484031619223829030309991630979533837703068539066677695597509391788189318022733354348448453317015932904239818932111397416880549847656727714542505676254269840800220227316016418548422073701464318846867791649604331771090691599512082065003725506359199452889355216878216982127759251827852110781798524021217362089992138380545650314429856203364102806482630548729414276360172931435316699162799646868327836396517816092497798967951616989375107549540930257668684666730319858841353923500635955393896996863985739954265894757516521527644556912688950641639419166114798290301155641193794886716671614965714878079144546138740589872951919250181149891868005762673460568689326838876519531006256888665796435730736801612752228465249339002753387644586350983513346608847765969748594571206191720279212685661799486569774298697794483399738195935129164411941991319292684603594533970819548623681216088508594722776572249831686189444391646848974660446291666992851626819348630128286698081638500607296854481683079073218142263712118817803503216693248775319344034739975229040309502457591508874974808147837278037402812330185455308562576565274560238211297312578229307380740271074385565402678314674482271088076078664200149030553239826103814572549178066492413060368729758525350925245796037198260168845747101453824698920192376889275853662472148666989669313416482721511452635372051611952204029693000405430411298150088368919938059404929368257449413984969537658017265845832714038513180810857847415798781689665698206914328376150028591308316025586441313024884873396746826592157943270390374510814093005881685343245521867887303088880353516700123919004999115368964041520688496026501617187062459639632392846702512004423957160231288891702827243951224035355929203613699340175565929232636322478370379642818481245229829357588966410093477579434599829342763421678904563225803215753238047080618877335276292365786056517354306978198451247706713057251405530120518856296144049621978375467428171983378408938797531051826537517565770965819603904728968069928345969477928896752155756017601817352606922128106470223177811221154239134157825356173719358985270180693084341116864676757972560350137499545681502528244101181567189299749821991751434290360338426838714003149519776628674070161640734576475847715730619081339102860262692219367526276769971670242156880533588605833425553485622228245858855862285525554029469242374028042992301877821428433100607647664580081140689829068964551094985891117333388304929573015791809165367870705145651006253097842021507692969607968206784403797223735659271935134337315859721242374832512127249283708979487714690958863366254706006482443837284327131547872645519932362674946202832859876710806197102485575780201515766307361129973656301312216973782589183847477933331974049172139058275915326319771647785823742443715508212021035403844912601425410580098823453003159163758000752631257455357860193444031665606012547588615992741636807779251703387565960330756583035570334416358365049349982785528900067003994574656742567899963419554471573478953715974143129236994570929106603586878284594855481324628216153804661686124485974248492624666501402609862613243938837682960393035914019651239199547731665268553199804846572715241029568702068384647898460797340262977389847644854644262790316784144994462383578536588108600200213513197067948378041788333934103403117125150406196267405193721005938388687022066526495457124907905134036730474899557208909166647402209758395147877305078097353529152276103649694491583323869674500787401514093489098026359937123180226887375948113398145010831962733726935180784945983046231310530424999446097434277997028696974991524209762584592992904501547797911717479180537248277819938962697915826851287056946789216275533778666825522365889847027688789812306290172338295313657307250916727092977526336084936709646162679648887907583023846373118475861524012417998028951229232406539534261760846862260551345997516354322480764404508058829997886505705745316666124143323570935930915702953248496777260859956514853257046952311389754355860428658114133867440727245437819702765904013241323756521144888267192736246545467186959484626344428255846265807627600230407188248144526215120285838561065671177313043209117085972748362309449029381569593059143905454133393172941837468630209454539122060381022473796460853739498965294313971043639099740817017361480203224902446784809843396717421546933439769344321392468178385561264031315814642422848077732655193644552794576937198150681920393409346081523865635407674185004584429236769638552913001140473984573724415762489756172823895628113599183509116768748608266333920896672718268745743191324891843102098925631928062856537940375641683979968284542471842189534905756702009478445854796131722804768299315903506064921543226057135305094453497362280273153941796971446662808002883200386284560372704610435436011529068871064471421980787885538848187682418325032175323019380063247988712949932657501574839013807562685444975079607510513286626055705679394901308669758531999752767210795084309224962537315481631169021149117827292114337088710850237708847039625794232038278113641102760929071517975079117956186075933144887628981087234168387487693815568293507779490984399141905365956623956854504437880264428466282362957176491718586860104610881917880151041250868225121332142339617853915195826017516752250945487172513086268107424757766326032299517582440669974117586172895370971162017556077116884400687583655935712669752287696476456130843506130634992266306289042243817965689937715542397813781405844401093034170308005307041100752961533724969944101665306409237413604786789292381050312875861302649642564149661166763098780546649939520349068036947436049134523239342762041706774207095564367771934820116341624431653350470943284187309790720249233313760085565874791500276238787234676383578776192255936373141868044762921219852869792169262868880847431592612159991829362642393168555965786874049636869198732367474304023713251348068508681911148775107826514354006539788828519732443904046371838533422207561598900205308315263337818517998265248702843786103788419680553562171673767846014513202623898170524386896064282275716141853079483958589959288300704473917012125944682464691228307006167700795664062415404320070602370647532620342391052544937733494318816405446535199989428033934916435746407399114479562430494366646939006603402790826875080105457341766699089132323448416891995259326008753661064785281712894829788146411366323065257774745378565308411282440774209693922104525567750187604548436664285661990633153243941432220789158168471096458165661655401514135491716145777140441280051002298991318156386345050352135165237605509574422103037110231583028581844387307532290988416755486744600327642950911527925221156676139652419334253749116251538183215240509078629902349222134869538279021279467516860312228828149785666643392495825546288266005360780747751082148865030874544748285978844922084525380222147133502147157903846832613130597964579287018714760034696411460520681660617822082454942649957827472764037168248337914663604026941254937215516664775812561377121628122590190618927540581988208970484991941762511245936828496580390117573989726989723759777426596575755172384169920167833037362757486063568642787106909858866507538042784743308334863639994421468815439569115757274510734449465735502961102394159301124173025002769504548423626059662210512338223499269659305272311501525566716296489256294987030420665132340862020866535791818224156638180527237442073512800190564774770180299241751054522455773730421969472071804399663487642454866995251605264592287843082454440930155480995651430598785068453156263183835828908339511090082408829085393172167724452457210918635807090010289831723317959750863607325241232298895276132513073682612317217707549287628021865376921898394848650168370457544198236255412240816915314190541531472780223786452774123613861047230620352328577964457624617760097366943639735623206263802534583119224616137256370605275654967800211651643455479703888112982589726687075707105639727064730555179275025311864950497019508937090793641000597828067870246229131978417660533608033433554726969523266511193445606456011346882157952332520247554268176910622475190794136811417984109502744014371496690237706204678992891239614237873507027129677617187897250943769882818062551069949168369060696276645966190939039586831092333428679545338413860240545836005052233815155266585692211889041261593959676968272484530748441967904926685534498254087411085124074017576295713223704414991832557431512499195280953709124193021660200555396703207322099305392368280923460536186715491845859263150791857446140584811603955100745563274115203367802786572430984223463274886513178701454742571270583479980831494395751447967596865523454216345168627960458514507445450726010455522207562590055562078254143573457910269555375212493489093031359802792380513100295711501183324675345539582036172071304832646263268106314553521701901216241490396851911087548911319649269317739351483991378287418165243949449350028595550438553241607357668940294248677258345075623821099630933680618873109449309369512108300007772879308037995643506738066142833626721261312727725563887599870713925704344736670838313317149023490995993401889889651644097224965355725179941396253953273692105909343711668231576730245694574513973408983740484829865183883580019051578270663698676231069469444506928034814323687615419772624462805775847469796423159308202723544203238523087185886967261432591083068873513978278104043138495014509894781579802186113161478694923620533857479335872154661539719098791423279492440129063501802343037126239546100901669692149949396989874056687870957385302178755097301252674046849592018989927033246737479384067273464142358461769555716576430560947726663230782805448595697783014445161776147396870183313077678156912173632719239548664609680214271408011566697810426641369694526341009607705341923300960655546754435022557305622315335412323556274176555942236948086652433182631488031307262766979387864143144142340030864463520497347937807674762147810769952170046657511223396301735162255203029026848003252390027906749035356050562509662381315807613251403361521547150984069772446252063249174489022979998026048537198823427364652751726571975360868734551557391088076302297571881363021298078518717843724275848864789866143036745264421125595501996774126432555959836050205103439678445182410134546836805453020909384768979894595852214510207644148469899150744101770915798271536523272028912411477629079356115024354334346770756586348322267781591737462798749431188979927646548484447241531772497498209562509464210297994267125173230248167039410647986726799820462508580677857210326858429358171163770814461391103429058982591136572518718035621277727075754068638308620459811402151491833041880823898744088949924914040017815544504443182323436553003484915366156845578039594772119240091386137630170470695773821868125298000565526487558819306460500457994323947394712737789861404220047515686657742508149904254015889430478522296050439152369671988206738764228045292680738232907819140401321275820106326923061395489766221058458992688892611077301540326946018405728762501424841517860944229202615630399721398686577698389010506559328083045920639038078877907399683135995387042188507085502866077995642667482988041280097035278507232198643153572937745362119123171279742308746088313282101694340858552200065411686704271801879566068564628461598791491590732420233401659520653484709335974862573924952064351673828474410921087233381052163781177814506761398302429447742678452321636484902138014179071834043967525497843786070177946224701098392465290792471080313390522147299907851266086498637324303671465495516217201361313793197178734979459451857836490419691164941817747451018587643427016658926866312057607447130614938567685467438013777490564511961299756493554812045219749668730532169425568667322684414326478567029612545260204719564187789973191790321673125068779477005576050004819705047783531571434546774274681283835976936333604928661289737500150623116468246412127450092913884972035219795471893679108139697379187714088796300442859485875193208628643266728973322883249102139354597701272596551956411085542482837446362348698249269304010588813932778741869797046305605326824856050423104223733489602926442841442119902528306349210847446092380516146096390908584234130839338335297538441169898087711109605412179379753613280441755613427924733154180272329843957071527320157077290154505187669450208364345336875449257474495332765765635113224903351589673097366727706993247511519304331177480970681366422137204808155186961343524653747884995424141909787702931063499788814852027466770153768834307560459726587453439152231452401471445529320510894301812369682710195069073394513116370991881653018919886064607098991144035328457856990982166669142332876663735104384231925393049671795475873739619802798528849682983751376904137618025290515980555533213742660780249852070154787764873636151776332607001717930127260414733094585404056641575437458971531828073540248070167392088569967526668670841068102705804532070338825490895200221621729991906347316213336640411528314955152167623282447518618268923456583438339816385671214506105394636748463852833398435312469880766973596546131746828405802140035806906245525325632723691871882272102534102696884219437169547738354535277707118184700558275790306422037989763869281685436094019741235269843068197483204575882129540353908014190784317477505118790096837404448902898479614186859345636874984554883438607856507074643005421684431134690349574478276545269799638910520591755448810534010624700290593801177118818498358635872573818928306838056209379209192558575585064399511133272488410653995019252281131561136823360090022505086246279600612031478755709372018764806023454285947823016889258483139304100513435494746900695333752707320391918383788064949982000979860082571747984026507946394640428542505420538558147247567323802321870704043908553307384901596296749389768065586252478170310603444746765146422584772281929523502768500690977215710126907857496582179948584797994558421799455175421073214082831208392253569023874682871180464750795583102699175708733011511292547382567202917739047107003043068322343887659432162100164809675438089444166139762218344354304717497947095412792045632982323643830324712158897957255700183514208665874847533131684861445205077402361560318778466419719874550403668397674200344317607139296563949568479269043668615699620183209457743341444609876622939279302143313609518852408488477636012519268813878012503282270315508104570171068897243585501522367270893247523879380277200321753427144018481630342582566392715243778643766886517929674161629767467550820828978848557914919463006679412655196999689277668305106953247092993390612608553674210330693939851498018551578122475832941030847116501468451039065079452622414937718104092140738831981793237869318830344644684120857679838129065492239188246535540000059007041659239088255524461842533945543060207233748627508563916796311805252689870471695720988918910956538137261330634426518978131262904825078535409344295887550237584156023303188769948113784432099095811062351852489374306722254992757622532093595283585662632452278784524589291454773190765654379070437270750852621244009575336992408273912806903727921769946219386740204147867281078931739826344576106293374829217115551371655377294723747007043730187683136149276289362667102891288734282462414796804831684475839576129208421691213211970828226820032351816768635564019319145024915968884226752661217117019348928047717407009354544940920609678015318971704878357907222171482391879576192763914836294520592009214054663829516296059370294277132324505265595962420900923253228044776691218265693523961052528022690517425006778367944329337347463075780832007757010143625008560078266132729941199080813417510694091588279095113663325289727696691275503398205052416017748777570376128118397065760956764945867284908788603105852875000735213777910138900355051823080759482061265107972204293340631960119200067415148386920245778501893975581799283076671381967630466837727891588962511840212371686860004135575325989439807644546168027934314013135849872460746420353572481581350219343485491836783685933815117737943833547004453128349961888225600978543658954794885188917318554866981974760262726707935390461219457351964540896461003931962857827249079755295148715025895898235107610251293822641542754253143363695277445092811065104327394092740824658390398164987401287655693419252002861185660674980536240895750234574217098095989045099067792661659402605400531982220396698565379749033061318154316770273613175469987803595656023158106483372162545922238851119977346529133394780603643401497017084303928803172762446737070838289151482979288081166660063735528077159550831341110561060486261297384295746718888689273220970551167151551613366490173686903353689681173673418721622251842835774258423126842827015717951294838253266718756519043567275623695056500238444485897466132247802509965769550822978607642820879421120431873054543919219991729916927986919013104020452015402593783695398302216069666423536912041557513718573624276248693119371398082671331894726620064664170497002591394873653107044810273174724339579796275883485141331509792899665058653052058017576422786510221388240422159246097003996427699021299044497287720601034211424676010236780187026430047059633589119399887154368481866474092506713755555152681875977054110501727585652877356275818945912912079233287303592325393197499134293802727692884417222721253061130521121016094915122595868559452711502698965762509714372441027312802457019229925025722832744362448482383740179514084380166521879413028806960947908034251159275730050214231731659237058311676857095680248999958125101359655151314124931369467918505582647196604667161789612052696166546450653809530502413741752777491729133281718934974156428094602313025325626640788636656111194561335851118352954074246297788730639930574159909692220124799251741980918754846068683380189541412056143968231770697168304885550020410162281127614035596863587311803802189472256704972749549868077203538666913677820831712817424772616214684423548944398328822926406424308835978634038509169359867890853681856767372864707639776263090071624023887731093303862460650827758461641827929286674645104755385582929587480517828356224923692615587106752856906737948801851020279340188038303637694701100712447804087449137094405486077719872229546599831842683613309616613473710268522790200320761775846799474689155444069488544880556271209765488058659327753237266336909876974673421107093366031847259586281471875243497676716740202784702974828843550639356193157016179438241385785068182366669086367815704832355883398843633275331694273312074971679495244523134808705973791576415047294455016502502038249297757438147399086366400970479225659691565580936052781260194597503254620578300883457070720083429641502770533707037205088219842499647902095014940944281997072852175826424902511371653897027111255421424018242754163336792440634929594706451591482537176407816504743071020401109383735234521616943568987104855114018963371938566415402953305143062148369367597950971430347222810936400194861313888511687276269910951188722924815149882171287463978419564283684097474482132540156046563726335062211821441902877163779040465899990977910783548615402282059131290280987567620443147559123518543003799843819198887067139341622071979348277245863218690957509189047261119399735334246769758817068817234543497330293037617396479792246423074408886862797733857420908942278255922020375792086390162716292738487524539302861320211272524918928669976533346083393109620848492289267886792920456292882615829632466247670067840506762105647720974315866882975761837778983229945201616596737093053634502896266251367368562931495316357380161119391997109826815324602858903613746151201514708918232328636892981117396914705060872158747643417817853127598554214699893310719328617799394959695518268178512962540393293029493179710171464346166806026413383556108683481020521174069235053807112388169836488084127127627933419652227687712589171594628437568735420413118836367180974569429762770997171125348478273620892050178896821926989311053651918694245948340778026849874091847058517429941673905132863382891882241705775289308260664969635441572981001470912636493086438042165527502195498584052529174182368576635023558812868972493739621611784597321151349553980799225418386630402321229310647713315275669317307017707714640558468541647911692857073928960506760603260316381385114615039180299833543220469504502549077715958351792359392356821251920626686484545575149695566994812667780548239477904310132954528321113533290782350281605311768930056587677544322814657334054096304256840961799556284160475275122598021074406553204571369464786512038852786832928017172289974551287787750121622265223142950327910740022341865844933719396981575562535879881838268006005572108482181749454846107014702018502735594702862436595720056657542569169203888740535522302042966185160166262870177672097668414852179181077025393723556327796946644909581440874785231472078925760476639662558374106274155792438333455456973029060911902666109001931855399032324650330210087932526076672783669987874089120389832929664424032973809144659502854043978943543002825400876621202953603078776684963435957985152123096655409725558239136490020555919783041157733745588267810478657118904100625145280926923237341216813269713164894159939910656629923928412148980139874618526678735071203454222409262196786378310128742447239930731483596702409125412669865247480612356445511110417921776012168326310774642720923902621110346697616297089844458842880197756839224541691418524946039035642344025575690232452631581311274736240928145791818840705399840363177534244501357118659213242336665537078066818358026997891090177225798040093006692397401985186044783520725569514468076020217624134431900923415869224909015666861553116654967941848371550228594854061939878769609553451483265281161571023104134540234337491582609231269203433359332492545429574618133046745262502894691002645725057346574634827480194354042715152962925796475381984705434137863172764689871392031435166833041393555630378714988398282911171900956255993654064254642145479062570883390610732596736396795032162812774210807045008101576925700400896728217018104229631539321232318050017182963268054349447317897638160481269452987556547133320576674611245720994212964856179422473486111717512296529487544050341823339454152514443993488191484400122220485108895633175763451681491802387437051794542231988640970020837229495475705214503754367144419962861124712742396141185922056519209403872466438455060656377863838386897652916117945261010177781314452739590325352232138514065201519656644385911069931919965531002388359383616963292647894831386928678915408591507398066495269301182247531532450936948451595937095968170778264759433433840624314960433572953293214002482062061974771779840254687045851818970997844943212456936505051129397786223097564577323056178970146867001802461080347444140265547889831367026159708479454066361580364870794939278880763178750610181654099363917907308551854948940959278305664084621932746242785211149771453506939919786974627670727645900031281229648087562909910906424674984612527488922153602215631615519362773070341156089425595126269806855479785312195659352024853197518652202297238917718317325167250129252399449023002590955045686978445912357756295625894215596894582435603671511521963559373497440716580903304700368634664150683805304072229871675640268377149629730942796981906329595593081250754895163416447562747502334112834100593567386359808596527383868981369205837518005566361463267594112111781991862552977735526686098128829170738946582567676954852798255172071424943896418895895785347602059189290118411653046757102069421041890239090509753753798267047718992483675677945148646174609561368804597105140264587346173293203542700389911709798219292782577463794545035543993007419197496203801012953859880992683783486343352014111309632732815401182138293476515022985549819882283685135875101190578950398613568547532497353650148141762516935037075543594776490933917638950240038905765674172472378109223914295290051293506607924481282866765836130853097755240664689450094947858438578764045491535783262733742557039481716978796244949986909649083805153347936990636049562402959438528813900099075870627217558507498819745023934688894498863299560648882542570050717107980883252133293281409202714950034739574647254333073265153925165998160002716693559344941939732136864188745407038033970755348788574131320497348362906848801232785618380815593716931912275000143159098132713921883737093195006578931348949500258951561118631217809448895910810060791014609041029081895559976525490639748228194725365806461284798961989438125196944461559703632038032371612218530445518993872257721334088324749508137675564930959417482904639584281253849681574546449813128958899373570301790040995078120515930302599067509651992468608217630215572862537431187899415088175762234847093892978780874127067476911635682545481969460920583775411025946842076013367547338494870501032789640714301001117722262245569257881734687862530727136493234840450500372027001901686273436613850928800544805799222837706574561521492111353354070266480092894538061424127982389587657367668334265790719221993247565852912918186927179151923131113603524894067864488399162302309304071257741409536675950719886383458509252523227916317028105028670329128276943884528751312154778420647322587323444586155902156095972618768962174546279186449439851822436224915803149196731796726596091237431310662043611225330045870922231764597545101118341249215177500316909049479206181687720981616367300263089237336515684383369081211150087948125367996101751608438466491230993773182084054744818250140273800021173423762995922644275066249331672819109514361674414202076614339569209476911380204511685097997616304413366077141530246258710196894865675421325233100736294805943768795869153932137495593226533917272874036141128909785084861934635904845406436187547008988052197378554956402170377170748180698805880127356772151098261529256174195676760257387352989893590682125236868748911118883458202436451241208889122173316529127265252170292803448658167022829947990568533174105231852434546413957207738841033288553221547891718742247005232682251585369249002534031613644518024194558679981885809555930286213469762581681366290398441314920833346181932938858651784569635937640584987983707973837492153759861414157054177185601703843913326563814478599113067792166407999343011501508363283300456218212036343949458358093924476657472847012319544206051079169548728882779487735147242744278209470093978726438914316914421609442569711135063426296707012361724961524016828987232933188558250237065534561027456647536858617460843478299984970215467848947648752148236351493389217168687374232312170842657409037247780900616280767679581604891263229438754988351596312018091635929956255322013085320252025692789286956936706245354862711193915589763669516838380337449117182791571990377782517691701948759590012314174316586451480139293377341463841115217388931700860359613826120594408366538212223555917672148905843244227247358380153584462773968553818587006812709218682579563586063900721652845543432616025865006870067689048973604279664368181893363525605142265979234294358687399899357080861180935856779517963706322421711202283179490997110122205559186652142513003180464850283865123234196403464641412997705568699621944212898828981744575710524502558081299884604652301653818286218960439095805275063759005602987977624735142741592185221937513437455817058602352691628289190646776916841121091125361565385734784524111234896709491471186867335590386352560092968379005092813572588468370551399805391344297878649007891321073296218681084991226493933921849994813594496368431605943811650707005572381045115375394428445214022748775822236743237634801635449785112636218925951696219363384958687945325798996330535484806336180382263372690347071621264608433587970930307764991163292699822320422603528546533161535256541088982874155309210677735405586717780631831575583236711338368351150299626734194038260658439279254755362502343848225152534491600299842495514711783278905649357634139083757005552977646778507143766751470194983993000017000804637150444920968185148651835291443659105844111839151573377271562795429474640078156838351062894394193016682028334208368087316117538140511896249496016099004811953997294717264421824057814975001228507746261256182099421701099143751353327625420806553693143040308027363458426594089796598748722786790972348174074824073160111095900576616095150727911504468625946597455439108519770133465285207963247252552306486594327210890177262021775123713342972492393498537300949700112369975778614689881267657339294346970619504005551878481919224930450224330378596287569844341431758010181780367720022657298352097089324641024544733713322336600382452636758783265589889633050548051150334549593892573010942450953279710029198305054542360257855627442796358503428461540126695129502846103354617793206511791315383628827503946229893640892295405394869573077482055575744720265308716779380472565127409000707277069326487158180470117950527278885664889277420769193153931847594349886273288460888101681048435429013384287303312992628657169453594019951927247367103160883123342170279372752421657936101838980933745855257698711650495329845942990890295202640534652906710072747169489961463947806973148634680893008817407182834101094974063536821715673485644269970511340938879913144893689532146005972480640944529440972669279079395733688161337619147898155520610569904996819189597220449315234082339275572681006653498358843164294982520905744902687545352895065271399751513352201015495349410559672861177761925526580439808087849217527806922749894792471485349811665671692770084937764333921211235760843485250077750575712317243970828694663712111450501545675381356264195978623770297580768489279686375356379033301859138915776265479173248912843078751664020314676131715357073758788542459064811080689381894546480999314040063693941116020368335889470805005262381762192837294781259162209335333849965723611268099705150965378693721626993433625992901853468221721516318321193653174203022605935363970124039776963273299886648208122682131318309048441467572420852186262193726168252811308765026157239773905793258023841567177177440683224826269888285289530652582478951173648056246309749022049216291784451642565376605500986761636969744783544835194875232650717348770142063938836025540585306013058917950991487573068030812058063690150120570699416903387992330057003099213911368994963822688190828722329016896402016311186437278291115529325455661207912335304284078438581019023364199482521384058559857979707412103764091305241671440309211461054471549181459575961484306815929856782228214949500575556421148985823274845370502942382598854889820286828968062600025942787390553900762087600290448694486568999875704091516878706260363756709202798695496137131092674819666385151183687858425157379321188912395414767492220314693325707316726928185819802485489223027742804439745410536933984339469026944187056784917766454229715217176696988749172082742601628961946231400591500554323872232733947857765772977162402516858755365899046726860735651210309848105256586828213289720182931443124758713113013467058333497353333295614586300543348370253716378912911478026759644341242547127711042661556235946934852951997061468490652291390839447043824282127063823554188024976270091957145803363501439954954762204539616217937583538249990774365720982734114785106431268599480750222119031353674997354333753444232985877842208888860837806823431708856102958155408600831701638539611154942510452240948610642881381911588575153818782856050632097256979475586125232885043713251611800299346788347201813572407898816176369722388183928154948811210671395456595572198239532292440903016776792374426677820263728513282335805378913611588182198099476410417010024047135120768843825573254688008013242337292121702439391490670844752261899226271746623093985708425292108849074359798379850292769993535881803809547599117843185697741003090736103727514954252530534316434820115226462569805084156985423648129558339516668324958994625933116935756376178334025949576766397284473856389291860479478993516997623933137306553635465904559307259691026863550744977746932063022076137960705558781025638899453233828393339004897503187502913001492520248563745284587568331001259833389034781064292996564519861772985091174516348439612296473476984850105730025466243817043090712755917517827097862698875261528840829753074487985295551182441334051016403781045415869834913742800433992848499714583502873858137616138183000520915985057638716526182384926661877731790378938506315364462644977220465372138180810891670084094296348354195088724247415297412323083791839909833654820555990421364044964067268519098985505521062295170580508962246831302920135863581502809414074667070290687531389825179699000433383320787776324401667664617428909888065729522480570795564408670098952708337448618100356976808938467777429078070782632735226915021853267853822176475561428224708527633362487262436885707269211665888428740352140553778779424209395288369581545366019509119616185810807771706383429901607853510222570587717726685496494573345735034828718422928221305356230970761401222720389642777585332410289900265733796138531338999725585487524153660664451315722180081314759498462422218265787457796664151509247019546452670206187458633950358846957892777951035766263993382903268141797759976588121039428537860559553285972919806022714163501310104014484191651119319402901057298456806372349448792984409567752997411771443701867090642527414034854202558507109265957632584886180904598858653487735082020969457261943485135310312400301026416688289873831839079783926059607524669868930814027341921065119459952182888504221806266049366667446783207555887850762827315201526413176415562121040158582477923506621847809546425427003823763458412773743653133853539678308462094484549160898702090104847635332117383066618826439884606653969566919942299869922252966436391466325007034489900493969296245685185099738329341633066868528137018894628430488563572777025990944292761713095598126661692501110370129958667490750297339887001767832294106199821321345180249651645385946169048143427439133219583266954473661413072093496074855496253622404402901834535405444050813601526741097745554594260107956348096549900854067974030702678973651858936589728295868775807018914391498440260911746607804273555699394175927491431685799907016327364326644307001117848766582608945741475267442763822539855761035750798190738914280470412021984525142577665773289672829255517948645374812581648939630012155594737205158932528211628018855438527927913540159721561960333327923051101614591783638403316887779032219203165436366010560407550607485240082783560898717097424634770690512887136086347714721733795960366248308002744448051460390038192901188421694525828031021694074623603821269335497088756870772235266052958518367439010126590924635769740749085298956352642389253598608221811319680213662636268689358281955524970959309503363784021667666546717144332224522095645593667385274412347468475860352552865443336860226476178223544724005599161245478554395951732765159165813338015759528572730550083943428941800316125741432493759110201243536087534657922175256375202587336401136083788914607577833933828437111723370944990441395330805139355458848029292397835808141699774965665896251159998265758593562356773815257841686222438063710707301823951124367127711958236941940314823690158943105325483187756369065846170355654087063428532960589534273786902482007167719937492446207806333070910955180958545559012495965669873929210379012909936886658585886129258276679992508496484619940747244911529881249623870510749234499155508561259077569587589105819063007929701081897344390540629394209735171338342633542150404342494612488228850959486174919866357509601087395333316553156014107718975920091443304688497828639242197840211430899724823563618228405172450485455369665754190040621227901492363833470228789900282812500072574589406514260905419660039214459653297040827015958965141072209821012566574342505663078412793335566110482597656093114535653051023684154688006007607512026967960701915160840301215251706685752042895282926387023158333940888233270238220104487842829902389149102309840804600386552864827039638285852394082536498934646690677954757655822217765281987287542469370918190639715110636599615237678600594730714574995258124745563135201476403845270702664501561530074068611930747973206796257855603064741417238287285133772823310515420338132780954667161439797387213091444294232135380466575334083171117813141704235596803069082907611752104129750648064267983874027238337324778708133547357803373694769141354381270476431029458664868085837758035209425187438322607186800594491444589646122903291870941736149531310934851057147319716305416708878763890222593183109059129966176070476492934207944551728943815203736327805930468403086412595521188429411079977994363256749849923092043623307597386496210466190181751139211925145099279225235183904845554760613066041303679613053089678345718888368928561694644065823099257219216801947415680482089693966838145129084101031845321276822802997258728287343414341949055115911656825578841524088731565573412514659040984975625117710117871377564160140239175736469963974886859883556517200302941363616624183432867158782205084966584155256507570014832725987557287779029305727971960139708428261411469292977638763732813497963206033268321213231487392638718807963129732114129709116663032550822884900660836580846308313153858394987872649453502282790517875733451875747313397324137049899081305976415598973862194148333633943610665955780118557062747672337851254391269738210423852848933776998822665697478250796182370808758695260875169429119536911113271418135326971242935021799962614799531215945814465937103199495922914814102896622924537020848876031062595512412188803024263378287362413849944155865178501875659748417850082761004521304459298391923303752683025462595937816758924733319761208223224837290465187332936672556676079131541414423462932144720257681691251828271444273842725134265812469089085135886381915041231921662662935001504840728269238000460898487094610451839440729274726993166263076213225803496374125891756002411518809673611796606840957274988131760861543429443140416674232822282417702115869641930716869381146408362275539661561972776059008678443933068689265821339988172481256908824200046267907689503159021620087551260367225010622481675127774875859302016267413801602532953689476703437370231425614468470555652035708776502092846273313167174472769740701863338240649389803834766827627555314061389244216670891803519095801565775049285043127190530918900422170682512827476679872348390239656137637623946001761942950629047930192487828614112366044588311762268315457352058583391207955691942114513964934080873569055987801433152154486369021571827101629826439890523323977471032506959408820532333923503189519530730098214919162213739766234592295949429309061394017554110634755544000486225322652864252072629426370300955472901660601458037545719376406301879836252101266551195065634440840808655737017171779557300546313746491528030714537877726749516118088436857912323478618429610635107309272932714914420539287883011059700242562713969585446136053487038402282042278926727007566014007124413527261692358441237632876005750121969051072694967022395136139131005473328135674196161453855552202991946432095385495204764221131706727719680977204370496973360370681128728234055607120917268110697459593804373722828234286225229057443913496869367121033104600636979778303921522073965594382105495297710236121117626971426991405167980356596446935223452292148980766358474485192585376027118938954136255184231160477210289957038288122810648034130586190304331780336151555334078427291927759575724498626342637426294196565140918012446288241842044854667000181033591330333806201489140451461688843412118191151011485424677104671089146322084330709419699720861132395410892813740848549394025110744514723126668306004180149961181811751930807477164655318401884253463920223783068955858254562596293083706184307790490482874041860063133929359367339388193876570570284724892471074338060980133125067974175452804902325451704939367900729284043617051587424942132524916180139118538294685428538177415245353863859590513179425530383833153448149031337895384333214682364241129089638478885398169029221723591347531416645483558247003774887524400125467564266686932938612643369693052313854806965544581208102702780089929781212423186372842568387599030291796115198721776552003891268977115798465225158749684414637248936522989335520023658607802840651159876330548207290103639868392770092425640847393899012880048542819988131641343376647230497776466078919425142839777049430473261062106883043836441224845624181085471506879090262805828045237202351469709288521277319345558791741542725458994747473426379244994621331479854482561435158411132816954425212153362998694790628322052501694624870130740760021829915395407678526784862407643105112678730507147400806168344080452298776228702904550272907786828646872055007578422885177106407586375037917217407879009369336094965248942945924361459203750031644730024750967686827959381769070265415018831009563155924371837252386441692488535414584721173430330803523078635492945698385239419023978804332868234111812652041544047487739632986520083301649167435562017402760343768994139329275707660300811421356387011744441856627160395569012626353963309761298263960047901363378257230771010661259570017383214864841746082175088431986506205913917259415386367998828981061274174881653265445527632641779687253143791372365755805563416348979738789112235477470185982628155660317537316411501078889072305822120414397660137690669309429561406891225513521816807441206438984640631430609681777802684487761219048704592406639707118597110184588485269313790344628117890063836913770717294448239753434457974253818660418528353311893532109208120070691696338621818110004131530562345085072047643815888069909020487364226465178651349769024353093100615537576254565560300169585341495108803759897251314469220712881225204979185040788271743090892446841209202908775149029057896069982792559485360206143562613438127599420372298953404579469771109168616100113661201940574353939436058523601382082179849828554995412958496003532281992913657700178164485917323899391759122245476862649584955631683831960228625763669795771845083908455137770873205049661598622225128844605935056602681351045294247844653535730340514032793579084172914770819361626310932965639014501090661064284561009514751310759204646878988447602980996977266398640524175077899470976827393777633451165728845262071327032260772891476443068679935499263446803925994424258400060630561756773070306036420626828328285508114028734179286089108617348328329529760113691514165101215046662458699756331625110787117621632267229996094610180642450334844389007869756728692170896195554415889361341257925216877064552153019747326380504119368864172457112191778132198288581349470781667184832500334730452214203201346216852590972171720672613421044883722927034966088349684803481438300067664817916491191748183534704925782054590302811646734258076726516615015062631449980823657239829811324086684106083451739613202265780871449724557878396686511335961854293227584961392431795692426336920093000807327370312327908872777922697150947055666120457122836922951582070426070284142061374153811725124653828512204609763163659572027048909366459731910732703119869162040052071844597727397447408002853057614791231287976531932210794170991584058153940636446052458681989390624943229579175894277793252345712406233851303839966765664830363578926782436892134467854106895917465852825726609417639017776940628495097672009658004753458873521926886490913085906601248749599893980812755795391908718359577661007978771878329202152706579738897113897735905537735143711228866925032155671161040658165267469777635930392270461756890906319324037627061809289269398730026738547773606894367929031916092031315370918413741885304879368621188029685478716140518582104403369376246936297969705360930571153096831086846191646146026129144443264778694845119159494481845592698070147838156928919731218564073644353810712294285798491097327747953665229578441917197214932615467036783174790897981154276541109508523071110508076782334932989628427182148561604112914800844081344126822713986161601778629099960790405463682394697059232791540225628359510484224174321116174440644648250110082907176424400452045873652689747137509658765217894891011838334478220128892194560411076453900297806788070569642376316169774218954946131222586215404737437666232910480495428035425860677666357914887002565185453220871212317850794222741203330809119058070029181333280291096425273324793300861208332023067676083715011451413514495644336892281538319063957798374125494967660840936310799851907613737390606363720809979389887914051959831152704174394151017133835922434498993751445967634398602718962346158581389545988521020183923436445168676801210280903876624950640328687456362848401267294393660320801443590367685124148540528966700616395268119786836778559090846098626999854565350623962406475248211475025328884402381245496912654458848565300662214226156391922411097129108253869008207586843568981805245702617701038542042642882668894581688219316044791577968906150632497402890612935899031541014751925981482310168480288056073426875369077227371475942973414340758904077659655744945323554589944421564552148714976334678070551599788041484557456811067084030642849969961362775190905025149484755943558547256271217716867269683930604491235779255151182942865007634257134177459676994828760136743845551904286260386339878096613856463392645820131861867709530662165021830019365028252384667086689254449854265594808412069211294982616073879655696363631873322195150567513473126129758856388082470182599051562121722379847393395148160539901739425798964540932054521741824195915303431118949327278677454390632772493819014736654556606433384692067841141264566873085556410837916138924614178546061417317999585724031422252168338648659787583805963395424684233247235526725553165983523416852022908954723825710632571370845491437225724431863528606324723259976624749355352332249635507215191916893063862564572525582386473424479822886024263926158863230754508548623713630506181280954030245947542997600440775355446094804768847468557988012320474268349788931766540431497686506421291527203047741246800608451349815129354202968541337141308569069244348880672574949109016736944631452579558929954241933359492480242336251696418611457588050306259913560251801671796324887563256110202321147185510850291660499292030520515963472651948587489125188189335793682538047329946323374337955292839222613311635810001864881133608385026104501045874579076201634319933061621415198981665046445332972697720391623533376665367314313640059940534746520917028656869428997604913412149338940822577397705232563111270256524022712789092188981750945117642114558755467699601195586766657723772348414093399415536230605247150867604456945902654094645823831737690220072921182896764421674526737529479745129598554595652474798376741478914378001247614186844371120297850768323988585869962032804293873255143270308733892481009739349090783575239611320502641389859840205604884695725823810301221139218938119352228832949905718609818249065725962345772491174577914242578930783819735197602142480133157931985427898603973703966829170847251501507762531483673069575724262585112801612920455409356610303503992888111741996744725077002087467112688390590954421083994331915831798800721221710976808893314743958284465877825415442786944252935289792547241711428078257509730198706678650430347648029524491955495204821811134405799710621206279186009419805585304419837782138113851348332307749948366917717227353051006545272017469288581049329628609690962991090581967272586801185628758188658272473982715884226722193263899658750095112122581996816753712539171852399102548425606858097799375101044505123968685689722140525907031323983922985069587646260249348413157718454141361065104417959648975196071656490435634262571972827786407184783240963983025239744126652674748626996859095801086948276359437162602347031794492472060904255383852296108139312605294172296408996653402796573096779586676541067784879675488181166069227265135409072503395151848484128129965751861408070348469232769979036253183315124895011099629913029767736996660070639287431622664167623344480056259510977102483247121434291949319289705475809000287406006636234882937936161743150606200992414161718987932998903579688886008589906609455738463777877082730785272479749563747517224730008865951043492324560250855259195483340753970649974746177682113621308416941267640810433590668379411594287975129374889846956983921935280800645756177282251184474309901864355140050464661372529250359607661122443231007449099690390004233469630495202345906989617050316027495146211668482310837734766677390771053635590954928534734720136883974409529308956860384642270581762735838496906605648556740821744372736740321557900926339033214303590786390155842460234846771300985110275657524380363655840330060456070586126883186888885317676283185625452214298687222173765165753163218994833178999335998482064651890173075168183665683965829543691444496970515396230508884936514496168554903662607002592737944209200376718259187293623312476045124574685934588651604298095204588364265165632654023982481327201265060136743644855061486918774773794269605533820910226647677395733661645951017719329834965858823423072531107561295973230941462917380397182901571488009105041496563344967386396269597703686724706663100587732052607312161729330609383761387322415068247162485955484543679722202136164882997415129023136692637372392070545671778896781345681068899436385360880591208942195532053317561851927131195349858877563793798039535863065551576351827847959494925653742703497505948693793768009053331893879850485128664197156434838466898647484177923022907392152778220381741719412357298460347529050117511962563269079171373980205180959946548507805994666615322914321088489965880234304414724296108351516886044878373529819474140543482370886847576765347680845238733981891453078313534599663436113497559864930145876256731066326760325422760498084470224977719426391097031920592403765224735021030201928742703820252219238521084006954351028135157539427951964167995542530303699732615307617000672622298140225089329230541690699334628458370016159444292194916017173388144220791454706462480231312303743004972187285609267273119106928542569955578113140541262364372097673779888099798012143243897736097607522102895297297664451887428318496616879371187494829455305862162131644345384509275140806952687651155396298107143742190290971206423968356559788519591407245806630261529877872313812710256313164075783886464157104759231972842811592096823249617854241686243007838780794738761802570140797347362345992220349062213795738124976349967563249340365878430102401089959895660404442887809655218222828384642172406663842828615216295062755108772442685308244321601776870539676897482644136133024041009111784452656764311207660313599901724473882695350983393545908767686970424232688811423226742133990194774868551794025913003309445719680292877596998698851825248359804621395279873402870385945592011677065016424349573541341944289810285559430612320255211900485430097800833189907868314674783152312303210634601371215648306942723652379677060767286902105050802227493186938161086190220526495760554869836164086960203119423990655173508811938889173759243101406633139684472417432498219168638364757936417896443594014993387348069357455770812032666484324295440766560254839870628305621982061563209214249673975930856621773459690507250899918670904435408384424259012053096555962892333862354162436387128665333944312785016685523976714287682450643095479721757076623909561243374645417027779116520140820599501448387115335220860470380582698586646750340527918565249202471640541569076697794772502761088748407875624638065589928180488229608610614915381047541894157682194060730067944551305038703407745860958066870724970167696016213740029646676386892526997586484742398584397697816060934077284441566836169056127932298722049163808411695906184143543494896068695411790422296971491283198865053236143590751348667789524564870852387110793947251827511376287518261345656604946347525917371242807054073168802086258544860056997593624914679324611736035248435895131896273582301118206780455507558527604405878128274258933970690868218657785413395925853853073066170408933312666930321449945711632653569660316526852950876907871337991377406412837756570684925730266408653711582952589721934977790596728893632146970582808599715784729569562026479996734223161550013363542905216672946147859328116713874780085989616877286547694603993330436867055465271589469464231107891379900359016292628238785565416397027559977842780855225913807112390277445357721063205611007161718583664074017970114217745637372372767077527851191800620410058174708532485509193716223281334302479159409953179275238663461543104922087559536335734302537007940015755925990071321892980626908887335152676425673481218095358074464926732519226320314727180690782831105642337506306632733812262161663286907775761439660207381882048696510231905912647468634767231380140567075526118308722186169332580102473182436980175213749695670012489996813746348149430797731576805674447410255712492487321105236126496066407133036498959565197997436652148879972840842949819388607245174372334824708242406483269162599863636589408917868636121726719836932727337286858788423426431754778318822336631372169763840690356483427669255129490362704326185913009619377118700874454636064561200203575608425449198177330466676890508353124949573662665593287810840112195224867225892979710532757407965165877078564424114150037034362237166752504704424479663461887347583198967892684407302229345796989144456816546019406736484194150333635026020889788905323618879718435964730746951338666320096818051837257841084508739586402427317369173594297451167555980818142051334495391979664079033923839722035771827029213831246774629400386852574475917879934643705584259130723875559453769672933073259018971372302683504488083080345402385021349415573936975493574865607098804554043097637326551546407989495326385283823214820948104204941740418037838305242061884639339335467368044475224929755919215196300950826351236791130882921755942898533378095877857388573257943330183896656373276762499156109181117874851681070127589391448180890315974530583816664363691280662412078687884386750792201608509093145493448429042391653288781686867117345787030559792318504949181025992132794381880722300566328351834271481140042975665739551139911638097553300313134760209872008062592536720413379999255219000948208004521008887564530279104868340576280430222866998769291408206175888294431628877147988602032808924072604474052457641198678773047577730828754267719499738939677356459673644760601673607487084488771484984641271272503180592255758416356806722789183138926347114491541344304381457712440488922571901786701393358105047767891247894200978091753162763278558666970035400120903984239397089626051481057519442735330934959588672612148753729299852725846262343168107800290625731858117118977267826006857178607717113598988956888988347729067732891406103009034629420065860405621354394187381681864611617467502437797892264396423388947869249997594749015417424056985851338825339878235690060672079004255632070701205027863766015796299201577481596851322344488871301494086048494646375847119898547041794098698023524707655267387175824040411659023006537743707600149671872789202058737021864542739400541393608526176718868503463379766497199191328659732791185392654012102718679007494845627317628963102698398429400729147298887901170308145076091235803687750390731757072650072306814729413315006487719690233413481653985018329613535879446127767773758683068816241395270699813730437001588134886661444265945773136187041212747891291828467009730504268060410158529620523052275378675731278014491362960989941248030394959692318540538063433975204887391244395686490608050499770697981201796269529130123828415692648134280057933220723520373838766769493630905656791152058755163519298538869116119481102207148657958818441642179385522291347559872378100498479420113433468702982217888515764735862935702135173784024300532295256033495201129038764015249075941029590573716802689939315311873069627916742740963029775924823364224579834308818590152910048311865755268154309343378408544042711791859561957908125567680710997958555688918858342177660265654093638403732107440418420802289415109354612936187122444645373203123639781620230917855284205886059161244271586727006977764745390888057142248753392723329352732819049440901744492545670433024543873635096905124596959839851494901471949122035448957958080398665204565037543580126099459651393781448529531188629213769014866339042410215611089191327276158685475132892608515725477896789944341231343118574291425334215044085397696182076978213570491035870876862419149854329795727767279717998145218282155700189585540988816246415771384483188614178968733056119099925991168595897729248939015050144841334293381685033478828513235115188785331041980299658155944875614296100988435203540711649308481933902312898558258255358211381987492485850786717448963185444911070118935258274134973337618788399546101107758297272748379938149279345164567858868926066456494120246660751509171019656878657154152063954349364780205097185564591664085825582064135032611705497366982473305743551215236665578263668214461164421222294418024608387161340568027432059307353581264455176769829021045694561450930618781349252327371530458589454020642016391567101314284261264743551716661411258281177202838166537723753524815773644054619764074289936525470817367576570679855248295624694854967596772235219498704982237144247084123265458426711882757337469319882698741792036106708353828234564854845607137249370587462835433881226850925779292025421643454792808130327209416511054947131533348967937653995176377768407089996568257974338656622723283597913940403561008965630425904401340948235173249149798327255424310549594288760998050403100270082281606325979828496655286966160025831522333489892640088677557573458989145156736996907139239065412929707570950794359611179454398342917791877747858792061482603258010271411727288510075428200527319817634270808419804279474875813638400261572920232764517936069842875208728213893763520176720173645270270541307643634090567733085100138807293897393970924461733485392207907755990951821020402993678904470256390931709116391793398901138745596804617056531192598373318478105946330072146369725239313111501554595066044594729535329875118351441579864894211841963838548488311203174583064914808624774694605257183934365116420285769694938940552202345734057938434668452230943186155400461188438519330486906143282828775046184288160867272356026731789952265784705734950598444098706598601743065379981693459783129158117840068614401405519825986906546040901531534500035028791933145512446159038361289183965615598425744700348744914228671468670048655710537623686476435335352642314383615982457274944259901755267942691116682223914537112535208881374290799942809362006485963016104142404834213044589933648222011452876338416553941752848135439202755103636934794070407578694966627581962266254692528313264493216302087684308016128880850918501522240218324719145221545394319683812668187754025826561632601031790460378520027496971913415178696891006349997481711873479064862139830433733831201761046795659617977664275307667185331880674862162485035635199552061812540094813991636174045916507779690231980793229092824423549109917825166065948915489598726236476595593394496137716720992821288516463043044245275334561469014701556899897134033808619311635349819930581391973586608176459256580830947331673985245138958878523081076395335892943777260960635195612420463928964052565488152360464374079319586181945178123092644561420275302653487982742326034559863964936460343745853352924869317777027751655326447340533015579791115542971555722815537371485492798273001137769882704566334437265645518946604844251545310155624883274495133884530056345692529835311220039196978484995439887296402529459890444591242727191739257220283467642747616116436572931770006120544392913023713125561796405677317762556674115563001413020698746190287322285431512968614062579525041549652950901794942918561108585817030316462960107513122529445240685272630612612986433129705266419157588825972462361016363669374376458600386765130311312714904079752951700162762871738628934781141692488093709041192397333992997327888087578979621845681166843947869010697498572413559323508651372570007504443099347235634726163473455842609366653426214581281643975878907907685280591589966607227865424933209610157435354411105214214765520593987159149815684471693125099237126410365338299150794309336708719929930554920146623268037747568832075592452365969180551251249164526907304354682408078853863009044341626103351481302758056442537689877268030241418829461062213306584040591805027486338011760082071163109059676684135429607518136531100374512017719505012972349652521070329741120607700582437559655927961665414860674316924722253671006451093549209859657143469029751257785053975671504161981562999773565343992907067804276203189347636808763341649606883784384302470649030049298130203348226237062414859744286016141555256784273505118199943546735986098337420498643846794876224118980405873051879918048979810380519330452371929604615634629109058755661404492749979770867184060409545253764659805815980128049750899981436044921497726209830465667412333536587941533134671638203172841560346939953252245461442208778792887965654380945055689915071751903841166717555754731478667660238252132892193529242931739736607516079827377425574367172094011623241821306414857046848654423277917809159819859015130593715499917219583502438576984201418180257815678849971915412874663703824745123488207071468599873656509333577119726370611190217308335208867795955068149656877506295684116704465070122933397329936208685903076226708185432631793266757109478519245829674323083566007156524622460882896639865306667381396708754810022189087760519094195527373742794327785597629615018668877443372084122362929918662192502487168129905677072206451603171487663331187498727184924552764289314692588920921845539227354628502006453600943482945196531749542929451278569379493443372493382659940007661336815677772067665595290663407405333734109850410117182335662039177522325706865253983660325338675076636111860944237812448540157543693557293998081095514333045722468310696882096768805855053550236311073061597402073477368683178273456121831842694700710801895515578643726444704830261226804380493627496795414619745179232083647044942258946531115268058753881582272347184763523440472135735484707678222022323034313924607314191858826707972106613701327128354250757305582778447194993430744850400463773787618278015622253946244077928343087338468209624347249318887665751281786968599967229431155712987363270005511889632354129885765803862478520247396966929419727468929640098438333617221381049200190966425323604444595633316612530346213768989619178813739075498105282075792941333950768713201500970303024449056315074768596969844436800267347341041444876729833711005784402414731015703867979893781684282673671807275147549912403603589698035097559451301592274715581655744570619917580677628712037411964376103854565449932707970364656238342090702603998301527616840656196739453424247256382544323040311732663645688435082258223677034597238990373308797265569131178369941337179082540979977266413698870832618251846065043064445112383921976634219556735290466178230061599460236703473165675370973624260345510138816398520826161692338468422139165273086198848999918422582285125058224866376748580385800177160230087546924346422128770869253048908877087633893391370270294804304895088277977997042364128717005708127620834945289512169584867673609643736117615428801968758265264399061881805668907847003707543359782068712242049445666554851628481567429481657298701248024279729784566010558966327391996312034950970924998647604837621116744564450942725165625300587694877409037776668193362805919419379947903158004929957085910633351035629937976215840570426498423052580588701801531089590579676992314868380367118082676081867407753918632587364299223731040824424335011672548987320425641958545424891678332083261142358660840272834454872278244463660954920229591858822008919638672193955372940350772192579236456432227798868429733014702603211100781177297521771907536851903356004402104014766960403951560223605775746320352180125992525587314788078575437068004452245672889820215184074899065599654889390629305820457099425348046433878628490272321430065369704447969049013265117579237235332768951159282998358886548469697351843996106044550606596456815606784239999420721618742943238421112736084020331042946001937244051953882613502368153367823927087723717045513723774892266620580844142481809259575279620970122495482207501826237924477286172662333988220467714824843552777677751831639407430840045363675423517368149525907152719999220668219007794221736158840499786886482482515381236823136468412254997308873750154349625615731751313266772454610777007612377831671104253078113417593800381263769439279273143249393625934378693831095585208618559852416664373794770130620874844913865486336410982802638991526401026846778150362711145549472230547755876776146157608649857336444483712065605975692154317044954994448863862433064505637021601311184797072852450658714011954397472651627675606434319360185660369790609083997425494204343836087433599559267482502310118912311388508820654905678464037713941881957616572498964406140916531689676952616465208841392142198561837433431916196909878556596656520715525719817170542113701843035584064073283979783582922548228479424848189209905320515089415147989183241192926350276416034868943010450046928951435088083900205954964210187869838833627889736625945595889550462435735521985729254373778290344197288886961859270292696407753870183847662756410236411565404388482712000368973845935706404284002092597913905393745958481504495836328603917030632644907130421893154538977675640857447768343545807698844821512613531374295306185133870618160643325605272340749457369999914027420036772081053469032705028093766256112987104439948867062492279352581511524292694043239286787459738730154857764027506398325968268288850544010775124758473702531691839524031618747572650860791028329751609136609964442376660388139947078125299900863516683151633741165964193622671198672325672129851910199388201528812070921783093541399469496267502898406413601037171805507088856554337611584424482626275338558629691577795187759055772166996938030375918466001158891991591728495542709698953153689791981644447513538489618162428354203634628862102687648141119231046975388108062581912307485863698946546794722429908860857434564459919451329045428801954620128860937018567096506234565647420158492633028625644815292409499494120819277785477611296484403216018563821683293334654516391293461303374816370459913221122832028740929948404547450680127637734277965529126151050251218662600243544518267644776752365557628522855141568814169001558441046787125841440222873311542270442491811541263363852030232050767636949498710425331982487082728054681083840720089602538641635288948338046093145683823189520697935234357469308101371828063692625170507052908735329072124437340446241715025430342925504690414390593188438121337185588327729457333812693676391376972378624534471667421887478043260006958256285626400516742669344700109169900177881555131669754456053776612482917015060396431688803548588991749192486651484585625129565583098003873933522724892337634051737168472827851557775055530550202657665700466205741174769873923191076962876986165492596313125970361470153148648692228292427328676898540353479207934172956391780001274564420901460024973810392933997657050255945766373481563172853554640469893277803301501994905935109562107179179484052503663071706720865947299184137735626440134238469545776441648948501523900749109357283866877555256284046353759150522613006840313889032037769266818383293679750674922035653242152739918966938462605135711757588086993050071174270868871718382555482078041669481650702938732837103992578062374823971129008480596726672777057316451643163245859868545100332507335713228336827348712250958466322936369324791363426213394265026097455783348550277564791217148917049943536856807528524454204758835304896839007431138273210066252233070422615553032028769565534483010295251306062874004516073841010671806459951206827428905395882313314817732729179134889622322044678009984713052866563053696235738125733423346966789239629275835560640668947412495484492234801061429469871690342533878798756807825821188290363734636092075908724186791118862503423729828463877111146221081626499131096316181296612153929988505735854335314393630797361371503851731087259728931850859527541931781589013389639014057964669400485262111240449919337771528185385791718515247779330601687311469507041681183547710224081941278840112994602259025444732869983503142555525363958119888697462330563487366647855196878364420073239188670968166285812714048201654463566711989642232522077016371268673662390032145333459955220838110355516486154674250962314653411129174187592874890471138525817739599940253296784069423655964811824926305196561262405075445890995309401207217346455248377120900431406914896806466688295934351387954087900867491611649367758286161986387375753309394274957969544955362616540520900833899599061122467580886556860522285104730069859097313659233529603363135111421580929201296619637958124756945486783726171836225214541887672445026352846842873940353151290882897887657893707330853835213720684825371295071222945523335615615770240208105314902227056953775535552961631489052310806005285168336730937742010996741645608563249713760460403472781060693861091895070519804575623859042313226016878291071926203595875755737150885144458146133961088412569353731081988097743289370586758540310860788210899947359022487155678501528482696941863920496587509582510417434276043964006214697062339797651104461111304170977709260098848568483473835477028097533258115838159949138234066947747149906628327870645194476794884042924774277466684461815112481702436604581110801865341306124373884701636666532893721266779576304901897080658688411743933956121029304754699484309447473144219902534346389888644705597540199475020791309662423809787318471961322477017997396739989831931596691341732657555904145121576639771670729191106443430170524069207130091020424458562231828786539030295242520242208324929493072580462606347062981618882768692395886161552664609722060229476243409238979680445237743379512550813962878751534725740583662163353744510053026865906154712682935822254487698957121260189571879170402871333227731225949742965872616763929764896405319577090756495387030547675392121594175749071182224183868123387624485395461926501524366186481591471463531084487677508288880978204277870655445144762980027678094794189550663766653209433555679603409608058345676963676181319325834950705065356223633464803340685408106245202691623564873425678238237425058004498000200070904130947597178437593450798291397853528380112352967945074650666595588489121873487712686777158804300150807913615315695485089259901099789784662259571452872908004405444511654523960962070137385179294168897292920945330064360201827920260052999717411175574210757984402830470079781681688511797345223786940648185228999401854040833076564530998496641164720586311984228359438952736116533531883560830903829992771371517972299907702800038627193635465802511619347688466154982622161524774700127918801976340727976161029040643825518201434590942508721108917460407760556191214734124050708683697336725641615063143171499525152177508040573696520531801775403716079565539255989146922718304368954602578197836722401887616603408103015899204014959506763583305698642604327620308050452590918593957483434874243264886978040027924336928603076037760407374617922837518280102021235797057733480527839706441302539315971968336745476620717916754273627718126719858132455576595459224638648087374186314184765045547501797374315063163135734483486370071708631663171418665482542144510197838986142317617637100095094933571881379468557248993225546232999637307990031901782209963547536157551858904854810632464565536837182542769230174625780522836236935997565951766690341927033732790627677888791813820202280243384361533629552846896607630901622367681946304246599537193031283199209120605100319982158005486802629443453768120739582432850002260100692870334423876638280051340384632281387007745713277221886546184468906466033589700992217926348600447295649153454337502095518816378304905302613914301100838227130155401385255868369705791018094212822036295394290772407939680824829916555959799610369357551513321045817968716870311385242198674723590089210351295408950905886055934632317316757671646534606296524212873475664800246266724543706631118380747961253800080229464643289643683783320441432484141958035410043905339085988178915649352152828979100406453358309537446689430324502702027946249289428980707325029492004662957645922106479869410465645422583959671725794173457273061182365116866201060397353348075975833515072414760218990998762778304859257089989509709490754166218827034134120266405512514092949879424960768443138081779320300701302868627171679287252668513536775210831902060721365226062505891576880816654357532205127398420216675132025012084386364906680698157756930197112386304679340734756217289884140946161825396490523868187126459980304798443867206090778024689476658823482943906218701726761069711669896520380769178057191450134733574232335351112925929135719044098703136677243679823265572571826232885758759116440172595764550582839449263814567489286836779386515230136883473222137964639187020065017201970443385751525042731779501460509440247005234364438363829276653440693558871029381179996025454220366759121770128659225375911987229629762618981462505648493094414173950968340677505443620677388296880518635798490741233751802408234462416441040179140358103141713460828076396540607169610593260871516927224061127878856662933002387779102979774091913749277145492094945126978076403126330469945082627939272501019805102986320253602298899022381548112930680429323391902178153711710554269029798587758112014918014652770171797444470716527613039071488309678579684905626678036434737733407187359899688816793378716366846399155331173469058610650388156510412164604987857077665752595029563637937644433202595960048983535405494713346327657983931124466267791085764684661705461302981738030279314939605188560573121728241708807203500271156428509618535215473598041154715566680868282039171784222948293542858234254181298688824669604822729075256279300502626014486302847626568458974456844419800719608788497565984205048020921778830015161184734581216265260355190661925539883946463659355507115304005273635519267575099611766177878006573349603235739213267314046808878954785600358871773754380157870948065697919516852122903882670791167868185893341995473233338122285458255147726656141499099347580240337112970653558637183794324351522146573712065888090595217131233514185337843508226564847998592602981499528389549778313070263968235666455104432102414732352830578163406108610469479121652408806940920710760268798113879219307978881332303118046435731284636007831100773688192298308218015088074004233754829448066496353786529061155303394595699267248538480925572456461622911871184994680545814925834488633759915637046392528668063049304051963158770277953487391904809263627303864323305411499586154941455961972721391406440282242727208511762207395148273765402691393553314270122632828220728164883902124034852610063263890646553464357983626957791017474741986195568708907520711498394584206045743749569279730328911593133730351462338089875592484235582766107615786992982281097999069239115173226109947973076777214804848083502574734207646283179173062757537133031855689915753031330410730634721261950931296078141385347398886737616084529350894651619009995450312099858986199753056182495217355941237059345364878922579137195045678713837270000349439671596965432535120404546092219123589125649096728250797644930244824710988216098282711586297022114748884179418781825257163853993434541335859400313097057677645805961263400249125786241793173142820434348258636480838836943799902611743105279579578615680478362789167658664811887483960676785738272430656750046628058563838170549418172248771889545691641636206192950965278192374707677058587965311669663920916712405420139952233760992150374643931991966603317068341447425437187692267749750839695128586390538991820787438413667907063501881842347773968632920227933541792050291451334768661876509253229585597665785376902968545643852150241949772010111041849195083152671995093935750794514219715928801660128475300633215468683893703780801173071165857634361590757785763519169943832988014834763379963583383427789194790588420610229053532679481002400171240828471231200453769643938813196334898168294611115047356681890419058154501900043082391556784919719621790247615109935456735323556766925114401443237216668951417328351515002619332375721434478868995877276922148290384796064279333263915904817281211198094540115514194044596777528637484920893615427974895563198995603661336636613462865760635776724579685173294238707555342001090709395357040652127364181797375879439904608463241416973231612901586579984503740927700447223895006408724748593566011429618635605487732453804189275711262215849951649258079226044800809752838247112386185491550194575895392409447697303093429436239845879127229667296575374026623699915774680734636783957306851334251406051703356171303568164686582076984047560788785665973185262065999238184931870425488596837377865673216843648870765428801622030200040626871706717190541171038373266282673401079174533497124253560636012791878386134119040000812209333343236841063209448424772518883669014891775544670022372704819744786395363913299312444575178589678021608366061998040690347587415321556785909024046572931385388363427762122241391114232855365904021392945109040500097292249242097246492391629731162892611790799281278417021733580662343510296190966714715248466641975701826649046592090181855862087460316236676860193629299264830076526567362952499517812604540815599710922843274857436478442135571095791697249574067568711169436694473566155496822125152655215746743562238665260504541636065667093261965645475903254232633900841674404260200867526108011310428583558047809076251930163029006762126988799534129831909933038626595659022870543013961884626304713418217202544873061831574443927917917316271071754058040160615126313425553719231302629210954959877989820590451318755880283657145934652097643895150163298477946937755559789560138419957746856047992257481761976070367939820016817926418468807517854102184702349613541579389999197334090800465170393421598134332589241973086186531868661148035037252968292119414886726855987538770603756975264975612537576257881049834431718807145890108273809046237086674329841648448211926633319130289339213131522805851000951694899443571652734463962111270381504647615803107551603650455255835025205732887231300569444333681935155382418968292666920649198465403009506477487246232510987887741565171990480575115053543180016266994244705390525549222736465497455390250211901306683469725801930307993976361974176349694954227763479834421754029476480308666131970414514124625250519590500392224035698885169674425143754838370172942605957093850837739298012894333652656511419948335644595513161677127284671706407400471234395544706265341882518317411928409156934955573870830828602965985869789877030285176376382933920467116754479517104919444188531591119910924875193844730431035191453153392218253427500642541180538215771411025684002836299567087040801306166089698390212575583496247517674291280360878538693539305656543696230643694700310977297332094406146139763398698543538759902753131725023409481285202794081812566123425720061486948945232047135929437544761043839649103636256944426206763113344974746444714543238277349616950188636593338328724632676773702072068195840903124102608549079625146661281335214248513424474700655973544730633368577225214354585193939188957329015059821225932399969787504697209087688809800797595511295466760721394767971955012443942661781393992094310070037824045027112512711868897546096942128594001955738512339066624264867779510580688243162721788785824138785095777738660390557228133972924763755885242924116171085040662805834041115822036844058535520396572969979160980378959633355813498342666670089640408749292602382245600927079327844654714465121675767219583856094424399122979583256169917433355147348519178893859327218758942312330301271301155954234619600790303889286241843997222980137735275181289451800160671700057980489415743311805994499135522079620408448493676108938018406570065122235557131094094727259958618988920653408531598803726409791964918306623368945242988926709076420165946491476952929611529550812797122727397394723084841708684163023083264970969721534400771505617292093699824192541886215066594107673655458631646818938672295588667583388131753921751512985333333829290515199578244010915258424142445140889013468463147598490152534066135796476153856554426815775107669238250320367284685206692549660192231816747147740988068528271456760932974160238620546752988927683875419980635387422129805285690257988536754971758985021382083151856360349373247420942512454050659898330774067740331938326587805296833574681415497714276229040867469025913078625511242687308589530564860145849615156491905918792671619204085333941952254144316259222022206326933059917512622921795061417741926782702127824564359496844660188559946153281569581229061436184703555081315997325433645432587778863201466904581211340905453282999907681105589406065232241329741408336579760716919029577444149292291367778405472043708039245980069317219637375721704878035008642802451628864192081067015353108804959619250012592904916362723884221226679264130572872318479814676400306780235815438328897528755462246701040053422245952084523300760540975399161288204614069656299120506985680024022960477082275673647799254681842800067332731918122881639300651116355318824859868583395444013658079744977512987039420931537784878781480944979468017190011400355504065456202297512312083622088333524110773945087489553427419995267470892189735142124732620675121214379879012577568883393914245436860181217986557268203357272756757557748476101694645061372391288331430166229260614369712706327139429803203893480815483731537138761330301386539153197389982484055613208708755783526143383584391922578485720953398579560360573064591419219246562434814327211549136891684737740289171946107448607481498906797111042407418701141866155683023554517274735747323570779549642374384435065316931810437685775967959555341632435245337410882400387596185315784015064636803543838854613418699854793762925580684706328436961730967660303108329136753625991270715564126067454580351702623218619015760855114554602312011473670274226993526041582218355618178257697589435361404075960973200658851467441279713358821105486259193782229608074164403857379831755106619314606444419867795812089607980754330788881902970924719475513295064288869351810692136255384140685858849408801379679718580762031746861352675979296586723759476144949842358150727817219948451071267438456243111889608604817395519019764405182323677212107226767005541985604052659930502759321312547406488390107130046638715868068725486106701697231120106465117972685749386585819055447001386094962513326632091658785617146214272856244590117787599878846006391680071277460269433380462402008514341549739980086518017189617557023777218782717614125840575732902822067011347101992361710530182192089522153462445374814431660971225477162022696548091326577423584037748867371769860340534142142849383721583618222231473369848971409578704621717231849019655496624548776918792310432831729550832260967912502527631914104507333595891896344296666101662369681024439145714780556418491986436222839388190478911209809071044851396984613692517420229633580599912428664152152731628318059066289717524100321289955893330820279583032011262619001307594935220918446285432899439086973854625530958390498854048964353951022245526689033823105297859299711182747870137207258938990921662819887369317444418463505395570479088823611599840277381197546313421223600643540673357565030312940547501949611864184679368991389847681824436080270621034792105438380908662679531719611231094560721547795172979846401783544269548864397745494457241857341644961087431378833907378110889695079121529896380575637957847192339212350916839074365322019242179682990652892359231532947780627986648486852027342851740580050696788654572617871485046649797121299727055717289545320621259332278385659348495739364272130841437313506996341522951535713790650800607149140467558028132386217947367661203403426989760315280075240914015674147115099145984461631845499447971106548943510912845764315790908170880370410454987517627751702820593568391526766602849785636754949702565980334016003366001852795212049246104431192550502949307591557850188594147892141282361445815570919711030607505739440333036839174358191362617432174476039645785890560028949805427293762582538684759104582629005169873649107943927347252025709648495879818126068950639709412941448955424021342567682539305191976204000779085360093901920663531936678308501851169466121294245219364451995867847031205137233491578122137415906839449797027005324084797098652064749550039305301412774432425028172988313666519426030510268438175964742204385166656316285901338473121465805291970351004223890413133153937990217345224765108037487419625011923791940169872887430803349139962462752909762743371328706042959907210015914913749417016803543241841610303026235605685045550484955336899238977020347750993736192247315927598369664874226359413211167679528071854698617106691931239628030036113886394489405324850737195115263392825021801091200985716373482386847896539356960746288741611955032529221590570948795126079973208652655686306276438541055166482003187700542843576749733970309376528542860493148444316206218367539599055274971695615035262173867291435097333016290538933520626887726106360552074213229061065696929699755939055343322495220355320059657859306536350705180870791559329827950560247866559463919130071572269420888905820625653355570055995939371125089902085612239009142172219097504539389275936434627272889446791293444166843242965973577274992302956814588806218972286558137831942582451731241016490884234247977955504328302599112179692033112608270184194498918997326349299378400046848742887815459436643156063161986284803594804239481524910269099845202647255512212086877089171141525647905976359110484456175623283958017478524394873823564192101247791898416628078937277956099559172372870203278708260426142675020886930881487855772580627337936126163700937549705849284230522485702478933685128462417102031872940757463325345968747128885752996404764769994996068155569787664906577438976154239477881893938047158046027974084258917331173691857498068731138907341206324951691329788116223676184468933806820474770482936218929960846710201497707728594033040039114421647782596274798879162857109711061309400496516550241478040209701744698341889853836552617508258728344504407872853003724988790323786228221663380195302325067204491389256909794411954279230905553405019318499258171720556145825360333704506295889002064775431307271031285605151197140781984588475735522553381126630549580157030039022406322283220182574809395514080130334338799814554210656496326780350657038692535328157721466477035651488597622211140901697722774586312006544120709215936292242719323153886124463650289166330301078696588477087735784861068529135882831227386714814371848700613438639556465550462220269928591356120932836664732445761511028994213112315816893980868310604582565444385634145733245453976151513538252607254326038814424225631299044879425597276191514093901002288580142601534266092017242872905001891772722430632411683214221111623110277835264292646428704645119108243158757237701444001218438428102450291378305554619890889352028315910157215873105502673191040002661746329351269252881801832166311846332891809798145470772308350634813626013489513706958715603054189880149919366418540498436492840865731311684970495461842695138452682986183434519565128671511858851345256946655020499011279972157517519383369633649509617599551962534478889188038133510125172241888989522624873786877811988731664873075066543798870552131097517974810031080083617949228036002509334582343663790404071268519973240199981980658473573274333144026933714989199349817941593480039493398683761494520538936325397683171441714464284503359595313909242481265217740560628194804941020921551104480955984784058905392503932500042081906399314160575161372086248149271046062722100780866279212867867956687395486373313875624787057045082890703013253330841840147495934583705415211069606691260482431202460267555732539175635352396805620810487322474493367831908813261178933224724957239153979921805010734658173734644406618901763956311100380135992921084230304295524243714785890489339326807915397463611248234085430652061841405542224851921870299173478253110041453695068444201410386491001502494877065601944768553613234165960757370491770458518494811897084063569919170330664967892936585602060639539221070861037667722069560803709303111787863559313688431999123516990570489512079572815385613280012456150724973736399386139483501048003038556563140269080619005759183612844193775934061190873997531877821640329155363812858980027138372383530059751214847871066065410687294606886165077644231310085951507207913265124688837841740692037140862970714960465166362484208858480500543031353746851571442575461465195976265667738168484659032386513702861022525938470647245022593582536473228141192294118840896860245493207505614576599755262642591337612248480949357871288379943020541723209690029232615732708640223725302590926602410920354035481174220100266568211246590037606317449665661752984963199738937167451283891420343109981151741256585973936848310793569982653701038380150389069770468137991075684295240516921667870969625991700130174260128371967620192028806935700961635969551012293539956441556997960517523804853271021745132724368603571528852759870592206325040102021314148399222559887676902408768083924241357606005946688160515079716748572041391162330438989179889978868508110074614407076181563081040467219099599131367999921284500639541369324843384549063124041690484756346610963976885658583755714264883689720185601609811195733925757828248058673153863621978835878258053930996152646118591582345139671509094560633156583714512581573406384378877716167381230518480557030012149426304892744473255058282093819006694339982734431368730745678269843079649978339604112893777987271540586088630104693331788681465259471648795743057431849197538195500947868297503516719825893198820573780573176560411716209521032785358156031478905899468799250589446200068951331913931119712563649237298832732513631555021064625628360282223396394583954956161856019166762652175886293678521057170022786278614824451457483126908148070009640673926295631030353275679717494855027347859896232421836369068969899051680035342760634754729516240207757504784987685020888129176466792060025229604684796797887249882067246235663366909342300446426272876058738770387047087725291966276339688965273129235013241745177799302574020520400817216314474936274490165935089512302576236630636215679521092399040856969459228725088165408672935248238203482497236813200894593259742564146003480944102974709460761150514227999961591352454554158626645874839339075898777437318178346243100699975310518343312644826805329546856415852873869694529008580664821777690353614175041339755742335215303610015550795389209908943726722769817801379055367146105979112576859029122448827776745807908513948882532335600998379628704936803510510594232948080914439463778015713658894961687333870167816590172742041953647123104043147412868108086161881757442654385291229877155523782717111089517042524678113615430017859459187576815254454890453125239503575450475401268364115372570459226124567079414275686346166093430238751367826956555999188758020868899523820128497031241207366452465916480735640144986016827050051164885501882555314016426805226667273713269681368077355380811024257783440721340990128453611145095952353560563382182521215396709287360444834817650105579197615661838018584505845218671571264076920648966967302959170617818454730869856730316566149079287534394799299613998341657802138646061238497895586664692819785679423264822280609041561598433285740223167740080167618082757435674759743599130764009037127075638101974583142026540150247161702828952745707089782546105420261439035233194636136450409681317281429966275015140983486081988076151728224193189900424888145966463041469608597969850739459728877358753025438814181823950884661143104905811707321740666314221017251616137602434960476068993163655514326557034716888948881905468881793513520035170342402582285338138589310034516757992229963962104007556651960788793313286307750459510092979064103111911155035904764840285346906430020641723924268398899775461147238766415586530810422589749169818188581050352774043183683973473332122719940852737797505167430267720812470331187270699635612842159483535455350048155020050532193103895759210640964053918646808118516785955745612674046699531165574013652419975579501327948882195974321345889290361860864574594595856375879566401819510644906867624746284651350902389640080067250831966504761399620857034225385536245630664800952235471710272411803411644121580824203022300782166111703493869906794983382607356032980472639484617938768456062333977802198812944999383431996055085907743870908525510096218775911046265419080879814028933859188222293353367421139998543654421025469565213810672487618523612631595126516543450920308977099706662797240973840219156963226372080427082148369178976407336647985835445240129162242125560413571302613739344445077622563398175944325304435464374911075657934082311588196921329832536077070204416516696682449205280677079339839389497864276227673083923897446370084443308712590062363311024344010322525510167469404987000588382575817198325358304725061316528039425635935340208012359548916869772847812293507898711968747890802595541426445183476435931111259397128374463410723243828461366853579620993158391376323609796519849394184892351128037157762274597978687834618679372319912484061755691741875703333898402396177256351816303076461893656788620258289244570092264476657721535315667140154085818971679880685156134385755128677241266513040956672176465394319787822633365241827308703985246002816152147488951979571360081526021966153481049302165731803060820053385805215148782888111996727142635941058203237312145347806656136399052452376782087403128715404350646353774421161580597050897307348440153032015302735125922696947854148514265900647023022864440400722253517069127611237736479997279999010329049312057257519550081370248104645647539396239283683310649873009023191457077287995653031914741883928161382627046026755300825223461517629745537739556648016095069450262666719448951095427309598636995533369592603961183826381313193486753146230656716518077839250856086931861321003314431044249452299899302742297065265783159272884852526046602874782959729622055806536029524607863898832213821559686911135049917790230630823376465537520001916090472749729792373698306021832336985565430170651068180741900026069329521027324509482193563985114661256345731705346086715472625830824067067398972002799531892904048618331072076635278049870777251932123674559129435525700836919932528043106532663345440462857683485220058422881838256900026651681623854350476219065842494266296990218828728046734555687038741107021428953035522798945264873598892441398903194855538487006754884657759232485988253003769969463161315071436785108392468357850720677217281335063780608180170139894817207053582038841072006865152245765494758145011505372237705430625424500597113427926063795742089420038083504080364665461460323331202174002645806984662230886249257810352505535691624776356346294366710547288680399111570029360151455002942074706747641888442524844244247097590854467085063701474800435690501661889382121087464599882423194222209850384730655997521382965577624931631673183422441588909847040789476746495529703145525817777587483007391117201550180414201051757071806322748365337992919028452152378771582930894267151377483221724734458919648682998338449842504373536047078861976910464733403359483617737370254680705328342933670666461006923631315749183575582770509598341572042316459829408707137300778741526043866811444229001011069057304532608714056665804635564738039022690354129941783323251147195641810617999641633257239964639990728550079890709712153047263137941993276327508109571048847387502138761876903392091025352984395850153195125124199935278606995813407071551693927185170643796872544160172987165760038181130352389336502610055924044567576098210655081638752574227479996662249016096664987221537823360708874228632852461671397379832014073365675449729179767063435518998569956403345751798769754234782990353064985851858823315411683255603142515823549014624673223112657337155329290017645793478628948608278259015307826213942032650854868270610420885351750945052307423514720052649196051674081198769251044879409674087003832071981743850372413535486228871466854261331309272962589844937770966383364271523090923041039782469199481789230570649233288637656971252245051043006324597079795986225831891431751352846665779552271887944101452641627266950236584259764922944468397528932652877217721400922236531697028548815269427077036339555608037758615906591913153537679669415171143701465004365830014939156482490667836097183572766848850361776733746698053774353096399174712069592105774246221632616996669206751539254340366177832104364553572208241485322528005222951730584913225678556235873447245833381716115778162326906120917459424109746844938903741336259322925779003150877576430242652509046292796263819560698204049462364198718030563782839150761567287567069565920832094036329848897281113429659539877776043289071050443563731982537888771695713759430916774092693531869277989073451750333660920174040552393098661426086518190514754203158712352669158341201749608282531011622413647914056134541476616689285603463185889354375263996198241961889576177515139249278335931345837493309636937895094245291210782605857359646648345969246120245207561580587220210280266414734229059018786958125147893012515193421976579364311869642135018702804080455768102412756810118988235902194488354348739186131489913797743674870308903697412340901138507731243019882553887414661425274478319754310214274542103034836187348964688597255329187932879923845034229302460349258205734653105487722983135808221877745935671509603982105853120698194087016895202595277459102203281650939484016956519784680016874119700049626330281087748864280124409872474080224912330576966116186653530608660173139826916675621498641510367871106438389254838481742950603614070477822553254974781823983183408784654944751199146651366837260373265942095110709939645993031798486115478832339183079487951702924538596674432667531913140635178174672879614132071530279317543180014540039829950530176019113345185275348419287010064445169525469195819563688437087931719379770164765473685452887535495513258256579589270520670952767667581606753076580179819328848086563041403045210918426800377191554696817039096269158838560189029059230382797607063782337207906016122265532400378584226701514174900632311267464268633348593850757398628104043657105968518261373200975788481552247439830340298915745227727688701971559931392019926443357937460210877784771610481144243581559903677304171953380860002574075181651511074096051133210642931796779567808838594853352739731499270138875751581678095265626468386850262018849811828929517136856736701686693697994067024816446322424539412968641073019229106251342486831302556131267561074039252630211929417649620243425101696619172211191818046946547826768093702898309129080771279006750481461974228869123350496769649138681145060442469743883892602081422147385487288056759758143234982810405778646511050918318271917001642461795218883888239548896234060723506255929807509638944247180192115430854854131477309789748041275587699757681157869670959331866604659071798489940081648715045526649224089904696516147320255649146429621114218660865173317213278041624360611730527741929954210428551830959539413625961561717512258244303889877107623392561672353555867223490368622918470970428470240810878981894029851962323330199760307653094516597996672059486332639493056282994233465283863556340313986943670429771133983013981777765064671610128881967686615063960917250047883979807439640345911409930354821179275863342417929863676770185509758870118279039389191066572489146158200357994964043455025578883531112653842724447422323889409279031476363784919167723949824235268041364476492161207026391873928395450940982704331855697134963722853082599910765296578680149696482109400588440308954799452908311625677194999057578957352118573748891056796227152601781526462365958899611347515057592094885640267791107255868970569925523029118345023797910845911439549295014135048346422538197862332233139835070980384268081369950845465979966528885477071072886829772289531349145309975277076134347769751487523393963409229227622676108101521744270719952811214993176302002115367968374315542544962790436341856894106540381959518656823735707269007614050081145758922108385158855303605500165285069344075766761104869699029599716390345909372698579875603940243081066357083211324571527433260325851688446917804527358372883774511126488003393560026524195243765174631117199352409392612123267500250942521476765607613468663343143693552744450623954482538291873807408426217975428061154899802232258211086505442755696609188432780063023910938595693744481618238343715877979698136362450872794694307419155807443833789456799622937531900812852908517131231297839205204944044677209472999326923067307847647085310470274495002340260920771001635398772028830771940711219007850939734436593524913691800644477283358421417077230646734316793991459092451640475585851362091311941036135981940088789053045134895695746078296623643401106136740326397069803934828817723369164760547182977636644222240862151373185390667941741695422525784160304309563711889853349044269930970097156767728200361200185218960736574939094225548171132772024239310067097306792146612869216908864052468028961256223452909449493626991598515127548116450574292306619832552234482874043418731992397086867610772561216741111796710560748795376343812784048284356056731156962504563706193546789724208291106048129336104232835734905142691231846847518609139580983399531891727526470162291638643044495406896752662295549122515922864545035970125760582073988381227044120406808291568195671889767606892068121229015026198104673896207393201268167734038631719917135082408755653746927078417182357926211760123480590148172032227445052435152766504697868473646815296822109204360011452121055032426843828647822461257239219735943114138459274399457213283145003203624659597599562675952658108648986518643596424323324283568662808772481377571256770615451979752304703392688447798723096677120594842743549945422536551333763672025420529949735469598463371570376348122001363649309138704060350208775885714456411173568740247194806949024891100663359529166543312665402147787193757352477661169800122438476958849011003675407131757194741231883626354718951204007725266034374711364732779648375153929330467191494590288002202632223590510129477883621965794807432722410323053067879003083324857699334413192336070170716933441827440870483059095670843020198038993495705918961692960373194680759356807349462867158754410536051290238444197765762742008563910282524317440807214734971846172179523665321697422104192993420707924768400890471378247979199526976506165237108286091651863740402285186267786130809787616696797417469673777918871746754887780710299280804202404950152621494713061131442005581827150196832595064948667961115895253731783429210409866225048708561456293701093198776632463002013577441208796850919709229133025742649415609838905192085254011777743680804890360377694434621464326863114297103980766224913155182363990706446777882846412756205881257932286299281559481391090650193505899969090791318374624489626780467960991610576442480915003968481444449719611427479697567100059743519596778776367865403609213407069244936760801208600043503566448302791384931286065495242432911502658212069765677237410695826792839470410227798231416374042044875593517650844621104210222153186254768321932805353984635652406944054464317566236477140941051906181923982794073482897695926865275066274337175373800550962649633157698327224040320658266095689888275600035555811900310714294113615241337560807123413927431065445692377299084547970026653547720924705111873646596120608640562501129307761132817030048228022374944880707721096607537766622518631865143567830717519693568080606563008025646810948444377506555760951295349208372506248771159652311626418127092020440347458126784601132520999893406398097738982381204245805916497771765413263939154316748040372473809747415891273228939195540079492276983263056782348550465095289422578747883069351796978863449905324055679065385275415036189031659722894935360794110386264187980585484687554971912317035488541574718313848129171482908412123963227630498838416461980991593560421527793702867099406166795160834505630406715080542168156223558545736109494012117712503991605855986098054973440948698052568542699171242225147563373010543979125484196463385248944836177954664326896097430254995546758443973375270178261391309027647716661575151968638362559022952690192332224906244421572277631804552705862797561880969054265126202409782701557970875052132919293580972010872509935359178667865109030200634241042198007325380893733175210415425145701896524999098844861944728529120537794358381409912116658448756031174830900585581626764261972177418017180006673161157721888371822252206989962607549849443812250216071884654539140801099588459868100120630040590728742798475869520778424739659294973890116588583823766724070596639848557856841319989991588561263778684006176631234238430166446080780958039383730358000823120083146156997762050185704549090077917982090244823340798603870346832211658023724636215167145843967366113525209061974691183250875013736435375200186126304515901919949901425024336355508434391776960266378112584302919811310182400625101504679517115365493843840613716593581902448458823066955427385324754658576774870261570207865429399976665423424319967370086376271672792368638332712809839395732737855666506924570915653172466583883255676461779108526390046408966514642405111767075065635395675690190233412042961965222424972525944510343374009152680461811701592808909427789025690766865411413972432569046285889279227776349991686006497658909228168293868524571809796401102914424653661201655276535320494294730363674010234126074032348764112027057357066123002722599744301514968985133834415768445188207843377433459346280433635741855875290452042862538720648659438066044387847960390192001668862031345143880638742405502526793107734629464476447049609030262473433904619925875807201288638605090045970954768094690863496911072783416144920244420579612309744017682569536605590317618628281947461206395866869102972540518358159951092233113204496733096295429783263021262569260597293544573163460195491490745766947390637470934052184433851217693046760818673052488854808900528868595475443821640065064727502699620030391497921855049201583863744217928141216612754224057783741081961438143288308774898161299665157964802248091125122068414626597518594059230511914578554644510883861784791881132640538735299880152208464698346961969401961558768621163310167632173157451270370583268468111514612552151855165450145776609195193430238151010443866399592170126443385827742989836533206984599487232353188030375555422757196794782783812914109420790468953902891783171401378608630527055270675842811968575094117314970631836386048378747068588371770045051487869402023785677890324963862152149662422305644000963489537781232611193142135898727728433972657898130252988421531138210862689202865928667821965087864705806177895840435349810556488563587853295174905493001216182417775888604333257083022362979240487606532772839574136631247565321438872815060278682843147397256271915702772310848216883083833876576363130079467550548605652578333339114071782842501527283916836942516637881188601616793025762574346896759415734741757710799793148360251850865316448296580005819511387706925690923395114212001079187572625929248734223725956503882254571044538363764612433604287859922291631806894192235207250810666330526198252909399734394285659665909764091275734346661957522701405100171365431196788559307896533139794504812954997804773962632142389480953288088230033989430856836502931289807992893400521822617525735237871242450238933964489299913218823931596824484286211827642449759511669864247595185231966724574763382301574186611029098951191682182142476259205888873999860742289159868327769432402360111158187121790387468971870973304866730538136237681901817697254402344383608381094164440451314779808746215342451667925065469861260306145916050223728045496995781998431244828903370657724921842565127459508229633970689385442999646550100912732848659458225585427122102229057747000706133288316613940703623420360950022943082903271409806701130994969628886031376856513515247021548320813071554441494892900219407337630428608326715158223065959612822985370981982471222881314972045607610867848666411383181924222254539770996288373656978292481858952366061841390312410966558125597131365381324673028722197545805794556414453883251999254375987003618518005923259288940662426647665914032375162853524232697173311599595562260240772789827137682293686641579388845548178151572087840303265565901885698983943950973253250993213857632921450677775460121888611789145744428627991139701218729725650173952328549582662157212351939135456269720569471423775975029139586842349467788966077607251667782213024325825421281807804199173751592740552488746596599725634676625852431216696721984749326799781772192050177746968495634906897257282183579805100963131567930386359295709582423767122057608040646006243719460116755080995925619176710436923592452040742638812326357315808879146056428651630515562779906631189206597949470296714873187124167049776348743900133774604483975563722556779691769350005378712001664669498810155374489395942608231790778045836851809636085652829736888447674640290775692149851724655234508628365630158084959679132869811779289009308091340517104010424595027116575138008585914356558291866850519667493264503311955355406506431439452672322046366363592423923058905590202540223666224390691316591198644430521198720953288957525316903445762854127068167582138644461061279561102369263566455029467807251887602996229439856907308017941591629016978419453119340552951100034615367983231312125200603591758896343744949243280526705150577926463415237039887495426047944378589106116135126936007636307535832667128381166035921611070831449551827305596420847762790545041692136742856975210322558409915415292372749411444232793361520661498687448013651269563403589361021377071789735783273898205575810502771425953546334436433602160542023771531369128122741617674685261340384495157483673035174001715587129975588153755159600999499263996026445862042328985122632727267684872847605731776279211875490874185118849578697030462098726826782998246024360500883249109725183864005888747002905954100664876969943855867647086942395117339520023861164874873166941864980863363063305304630913854212310052737242659143206544520110884777654822076388792779791339711096107292488077909214961681252138661968712170002525612396945069182815123797903110684875748679604464695173394375992321859759942049620647611044849161947592176135199831412371858736979029947954148128053443306439491587505958332490690895117041678721398589250574006899225363498688462623322177587838430867974490533168721969679595450725131070946996958688427068387208546378708863030455006830531676529662966507362537753075117090141167734919737722944586368341238071106435885949638694408886109953229888263431101580345292895473036191658287566044026785020432112169044197544244491197727586807178782209058382278604618197153192454225193976883318546534990468425858546878141534183976829564707176903742002651993057973969395664380635581420755611580406237872787150475641672953147670633760876885727352110225627027851135665750294447366598301900315645623910553137488200286428169133582374138336657812414998205217418988901811841879557484597290345600209362226094422828121706772562722455039466491095548524762920694478779993125690677540766011851716804010023340791544179681399042162717242316432101626294307916008397351240046493903240107008515188342383363689868627432677832856864573528720822057368434900168063704468824252559160345121258374775836235835356405808939293198002941791383919019092034010347893510004753078189037179489198247708156143653697145500372022917642047959190250414710863183672949102392472887833911254004144487470741344639710049527583153913125321306836592977950003391572950852181261888426529851015102168112263701883470480148253613420558853696585726951720275016838461092517272654099106765700931777697904716569865143051418028029966030814475164615387945628859500430177759009326896176232501464748772469858912303285760602677851036917332700094928317711535877099090599782132962936203764278155297943264581484167259323809854984394933370795641887324959111566624453432471862287305551702551252337603468531521724214713225307824507125438511376574993826452748347047201552516657863311127777733335680823000671491337889444203672927777031217504945406845181416281355908751637839815554612197108022354062796574339001285558986882238307145773601411145287641303523487021387471750428464842529770531167879761245796911791361311571606152057257012243778724450745959051138611662157691767097251150225940916792939034595542182129683547093566667675898428712489701762804753175096060713562239250956879515632794637560248067739531347955842814677148729006652490773461642308587649777291532723439767479552286053215562896943100415648917373325006829917501441594259873205640907183928468594233924814043563022278720564743577953674889104549482996058457929996694423444526366704330775831862651063756997530084124186953306952869902359997294722542855891680903755079536803480021286416077518130671613191267283655271600281981662882635925909958747484799150040072338072465983635101830105155365415995126288011555728562008795877472425160352527981214870059572940931722039727185628922487205041071027917181717965414859945565932436607355408517699881670665506569046263859634596033548497727316907307665962492314731793309885650066034078215689895241545005621467988881197284805216666704637106580745816682838554337262612037498552222431375130873029794645182780927787072640552840723806536397044770188751003549423823308322245430907644516096766896438629875592553146764833934296877190081736688684269922859616627597387194779255705093504012898507248005365909251438609028012922918147964466843993928114420240822300812019192339027607054714745428789357097679477818038923969059110406290839418534691796232075175205178143045331676313165402630088434933045536463352982293520550960546858847116269331891884370798578312162998209963899394186197021462006659014595628115491559595903866910557434746966205977737148227293858482188736331852653476589555065583742703283428946352737156965079473652956311416376211791253059465689137374742363202912320851095574493446382628030659425813384878337160338693513073530611293243588241424161370609192929398410862935223026227287223524395392181597497255508144189009851792536771671131953026550500392428954807554564748634609479413087674925401640522167816536571745326864118748267048032413035892041605194702394443270063834605340530717760089142689328132255839591449490942096511309064843043822063881596194196784253491817272940716685908238606131339703476644133770623941692738247192638202689763879442384084251913285557252117355374328761251531166744521724457154065601895114450374840498884623538059050256178111260207936706289900385022063627439990283913905747625856510717763738774254698104529697142964168795006451752315755688171041518670700106236052692843631652757935657865352119895067212615053907316875059938459669153164944768792452969362811615007169701892483511924194212757167645749983994206497771125209502113587974766066477892403636278635353454291899341565828992303866309242349261910306483252225750321240643182691039618395592934492217120282877205266263333463803438539266438191493159834540303915645531194913670184573667203932086512824958821833284388326814052191164865001607989480154830720300736994468343308356673384515636444767921283583039343034587694057188299829710714381040570328418214541900167314144099723621865387464395750228452022197027068535480599242851647694498303897426268282313879852136545792007444663641062678771264864832844096501038774773040002086952180532067774827323417868980846485961251957142257476235093375846433880079295087780029636303317968713866584111495661959397251478744131505901838968744267479491365598774619957317658321222525638378674624932260385462866090795266272272413139681611444191833573359167992320647971625160272917682208882963733499760630780454815746214962600156750844181054859981538824947742834769909901510833461937647242762153779326582059065854299759028546693235142296661299257969221285282332377761473514534107665585557025510591732697381970653193373992744000121506449008487943164257933395541843626605770530250140661531732368363047128293277313026250979103393179821009669918320919651828839974645184602028735205622528021078022854490667288986958214548724134824418155487655731182530341337232607677074925671449729002866912785282907289355283384402333147608010016337177865197514801207403697470813992770343355292115672545109061721787758329919619514491621236375733370237593853505613370655144608893288028624798150818842336922039652450990701638054501859199198962936841611623448480365124299765088471503342162089041363275894075051273156525682074341095576993375253723957983603189743392947106196219483751021124788037668891866850377051855334639237220788201891611296083346080665118890004219799095544179484070361328244226566081577522133056307750222233238180873757546494645459426374684870658006881385249551990802584167908957424369357025635331738197676472368293834842738548893600239609056009750303441805392890491247066975385056947260309263623449051616884575978967618640417011670700977641439625468838489439044202416337532908692019407953327858727523645261681029431466602316313622070337379600322590768546814456245141611644822062217483239388484141340627813655937720072681705568371540286581048292846400531624198076392677735817598073702719660982781780188153354794333535630470924890917774961207047065900007761441190440420296515992490350001596772047269866287340835641815981769841701724850755786619583519513553097637382001997716602248594252539836966061266464148937466395987831479411117270987175892454909780615631852478144201113913343080995929107286352077398551560629567393490694033545862209853441655585097930033766791771826987255079747707514537691212889612608193776264184832856162212288669939712414195890496213513801246336702856632796170557846336098255775684345550580374161277497808075400248126532759642633591942287364092939982481931595963472673179610109942240103139332953592326034195791710625594807134578713344068839306823028580176263467016103851535206719592921023103667621149502479304377692796961447282373621570153378312101983365345661663236787732182104408733370042468388271466079710119024321750083695885431924019513638561137095055828646977680037697610170824449340753717021475921905514876230328258218259663603015706754270344236592027461289542764923230811788841602504802884587456550982729515479685233947860891891256676238320693618021756512514045878668751091892632028162259960732299576624019124028168958971388128905188794751246342026525786839270416353940708011218296920404150475949186427153940145633886180812872478061807028383084664875231004879776961958673720571115839964606135734978849006798282704806221822617754628270656690712979195092492004041956833339467198460448663908775527149679981047640058146001268022551036838994454756896699583491174567538883625404019205681687280878830396407256785439735028410733731121297906967515444016449164752902564142519362289792006768383218731149257988324263622797494640672554941076554728670898015136048113730849102670034154236055375986115698183562185036950887114843895582073191556561623465981054183387587221152487129941339707051891534135373579415931195737715104790240765724231407880495359288748627691233223516932803538895207848923165263974581559475845967359359904064833620855989453071181754440770662742162717379598762719679436645487203840244205522639414169294954409688527237187304981616502397691075548505028998845260562815498879881469745054903353330184957219116927998202938807009385005676546149108189796286764829500306241466920055885387105678500301896754456267919717987171106201170961127752274063668154417896457577383142381796415237211279640116688319773991551625431937996062542212727485674240408251240156142732904969245712022636824452092166242533786258380308966597060787352026192275556165757942189193507330641352176701014862247629055563601346545455886209560506393390340525387309526458877640208446150784450628607562780967028725520549025729346312629053320628711430763349279589546675962488021497294167379545329734775250206954167944404993496972764891552553036169368741245336713021838818319603273454149566178911912619457117013382407181904721884433636394069246153380473391135163823103782034518444106882460611256890334399707183557497702534951623895748798137156284455941150813969582414674990118553506046744325736483445358052786801984226271756141841909412584499150901450315467299521761763905040192426752954526294221586155100538958593627379714476833010102627870927675403682748344253203948959584891664116595706043287530260275305788223428665445574113327948906168350764005646201490168073538555925468613031278915232865781317010029448005392458326198490235190547004823433744513711749103691658785137012758090207679767951887749083542272025276574532149928607866742538566952477009982824906283814777785169942219200858830945396281476556195823197433203422064555590602142995699242447713309666184630762768401841867644645817453594228337007064536109387605888807141664706085960527430214403824644859276111094793541363198620166344595393946276850087555949463874380842452671962012640721861798599031788841211231318599280690369710136123722470947919279583494825002594789894391110718826547632865625128374921481443230790975611336863120754942136104539584757778678377547445253697874701738685058469604299801150096661937929345330399100222594163081035824413744947231216223515614653208749531641071294026920941577933398390670139458355163426278398880082314858713568137594324309048928306727814176842188718531083604751734640415740473815904178868481350209822433056035651531952540328289714488693669732095498888404414444925160964104536919007382606277904436543694872109182216949965404139928770089490810691497814538627132071992922463547826216954186959040837711482483230880099676233336627954277572449825806083273993630012108243197357834292741021323239427061009569266243503671976112845200774539207590261473273550869958419401119247130765102713384690740744881033890042279719372616530036683213781012174511814942030106987385776174857308538854870113084624645653018725803304306920267250885657798106056065456383505433573923519519705245942043610269884252838928308337137219363529989440708494706482182171754857588698581534040772428471250117274558910796533222812057471176638374804626246027661935623519613553168020623801666511202736125651990541558027947690982711814080918464737456201305250757179819142944517389711404971881048923194360579913536554073332347373016656566931322396343444599117608479438868467324947303106920054286161718596085014017865413467927525627479290864149212361200696832087181432591305668682606469193840933250645614941530727068383296566607249559020277061648710333088097136456533213098715447844006464887510570668852171661719064437318427493452604932450118642301426357318004501423690126027246315288286471240294516713786111554507847544797095988843607102302966882989271738742528552541666677093969198434892909977237190477417184980073170805938977155851085484901400876766970043239672423276704736115188470081226156482131043566722469949377145179957025668365066710680065020956850799706758817322506527564910355363620932834293761145163277619527156494158848000496347453084567500611149485471135067516575914502354277668955587517084042486036094489818292501063044493574179858296720512351237910363345417915583208017521726287650014797506365749015516401751353697606333544978545192890031143518585829339910856212016147060794012717842651101591291750455454813391835155050738434396355592653343398920372036320064275734823894480804056088495825333049651865259796471149201575721930943393123254444633202579004846218054949125283424088258948132068775434118126832179112249942308097861850986016370467577403677789194242128024615564391375182911707332150689474547890668073071443260592743017520260266862275942139300521151779692361482443092747451976369345089643630593232400472222127408881515218995944776467361106400637717019481396682004121471676984828576005333228383251073929656500148098788093730098117373097941015058467820627927635744387015115825599635256820346214531509667072445256030741840843492217919595295064039321580751556322267888181349693369257257220223684688757384143019095977942239737320447525506686173859446239216254055818352938548145415544700882770836805610020957556999821259589324169838405293289789251716700244802911100147594452264852969494786206184601568625920584507608772681660616892726001262241483145485439268345536974111688987283286243474093404467185176413452093693663232953813871458502071450569598812494863685636822186947667876736962523487626705902858569200702495029779307201525197710795369693511504604768190451723723839854002140332527797175550498537672062263043863062216105580763437955972487826421698738924727283360337740509189784731302421797118634591408850170227606981377707029077457589378604867142357023707915158743429952332070391715249023792436500268695845078136411996921788819088408308629676245480417677636678593947814049609050736579260644435379049610355829279343214290555354862916626152997970897049282678065817272678278141653871357842904439293520945752675701953719622851824656215401353237207127449704681775896202608258599730155009069783118426577078857769606283682045081786512032558317494849813993476033751260377532458194625950590519232990084776181461667275141555180913485076417426322002450545900655861944166078607880203647886656221005338102017374764279507728545534140828812303952493217620519201478244943525055282431626206558816806230255497583323297796621068418391800735988010515821870872609944505605178708345096717034393471664093026223625776705629661448489105460151908940243791724781372654285273090639978843799335654076696189806935119099642246966551074356366491914011999746306034444427361358043231987611110731837693296642694692206844549378209830030906905886034500871748477535021736746556547802538701897759919175437531980452104725260782969426228245035382178168197111419897900864695209909979927281924397846929214425298853557889038664905310204810986737322947293255951448152946451205190895697086977463938485457342254073674744120614876290480950057078428548335580676917463725718916359534170545712944242291562810172214592336074705193225558969318571434184783095049106186211830218141612790621465787452759629386105132396902567099882909287448090919164546419036021261945469669867045950886493014635948931207427458434203002154200141598825546657136772340243037047869280469414601040416523748053437992321255285129332724525270925465828501104034409640141817444944508550322977843455160759717610392079769509230563221377404663585624024306348012178098282229989293103088186358432660125031309853125259803479925540394029619946051607653135306395346757617185745109728222052721820724052868763757102677829949919394829341427573385180007473646557279913391123784996509875126022034422164053802808212659795819696058360259816678204282070314580903672885490726977277488508748863154732283227940690119418938897812926407083934375060378468088675543608549711156015731938651753678244046498929270568534541848972871372503635580320704952862528293098386664050214444200663216533829308383814134658884580011580461101721886154422596899951919543424936821748350618008019182532159078724922640621838640289102343211060319000396255035068806742116092087238661706340418357503972354100487796134942790505105709686929000917751673327900820309263494220095910618015104536671029277851671743396686633315189014170927978002323539219053844651977421986680220382314200485231208812519855703912585389607299717574308348993275750470815504899323724609974707181897936347657722732213486678209841122078095087690799862331353456987519236918498882629958964435688959875116881023845611707060794078429257824106502373369172023161300811914305223951259187370517089161666503353156522561234435018084432207886485669922695749360673419377911215421267644890958710410393811371266283165716017066821464723178001565516737427821678835805847998911562946732286727326294085691798098110173763577656075188313072906801431700303241346518242418808257127997109984565889062620824026295223043255510636323821948837896854101878565648393578602467576634291922429771887761658045279801603793822513152739123771387917359140343703127205526574962384671768351891640113023644828258989201215346891968124844575145536421464445773617246819799982979016987012408780914019199853861749239956226904240062862094968084769603552096530487428841706871523983142740947501886877558261070351124862215317875782145288796412171648553936239385417667318552375505818765956007889166423448186475398964658833447477882109324277893848431890153242305309735561008561510851533766722007034481971264921028332730856728890637043588784761851017208037919871070956205184548722264215885561682270107627496665135584035954268847149035290026558746010234459939901992441218868354846723038834725747786116109673538309015894960356956957478994662542548729784185982598041915617248197362559789735168151209517657769379448109939226706930132684681133993867205709333677790543292622905938322079202154837008662331645856975630387096395772432813368605106675951081166385453716316149061261112276676830300072696367369632692441906579042750088504758167048909358738529449352744644322498517377092337266977289680715979734843956180729299687051789546390451941745776710321449964347281148403249730753870443271044128220655002252016103183620691339902085632652581377038001395972179387849853056794632930515158666441615245941353419027451902565119131460996208633226172758604488844544120899496039160325525332680728379231169718261058892448242672907939550576486142331795049034549456060803725309170526697618622839278579206819050076409606104199307117744989306452654971482238416196156933930602901904726050495512115358859646780378264221511303880054606041816514236250425738356910923620836121992445268402112110832789607968511485475214703498587129934502351039392326929255002281693478193506170743424936177285122381743910744169232133704539608103216897462054254694029229981005798290707325540191038688703797789709875617020824834266704334664777730221656201871150847879800837268492818746104832029295904600979126306273754094350703017810916766396991842515325942390591573704837275394132925455016749084117137557521230855622092010070191513856029497605837008421602399581744134070368422771025096322858111502806975891053328170995859336820553019444580732294929262771722321250962358307774352596494192021383211713876195902698863742487585845075535060431849133564698317318609278754364914157409860509294032456369541079885898939074237624063751346701619933674850196374550481143982311740630062047527594154063621133938494330868871698195792246040869171840872148055041234456882417964220758035342659545929983454052852462083213880865922594094132437888482969778055462601807336983370500923761089205504678570655586794686008565149262467719273652281421000963956573856159467826374820621733582298327362362232012929869231447397135811015083220583279267897540239015131964844133791613940459590986529695108761560602462270441866996232602638447553221091117406384007870975075566307287113273351770770333483853727943865176669401267417980359277881109922876497884130797101566733069874667576717473195397454553514645316556973518395892724295345334492914339573307992139540188034176515519023671103590950878327674771832552507078133461386271827391750078482257648116686871664679601931579775708732354069443757731961522834275683525036787370975601797799208508483273579401767585742166115421836257307535302972519598610178436473589908565950509323863119714454037785832954271718289365463227127319365286798072930613254181147275429833112620700202594724237253023977786117910275094729383318316435776657522674335417609819002895306428488477809680382698662013344501914828779046225542444476228701101704551610040487985043258619432903217665209630611349779480775246882144296690624909910891303502759589647424144977471583485596202324696417951233288722779948011313754123356186614442052222521971916145289187033848486951555372080439890464149626442058795502408699115885642716344259734035751328990299050476540460341547879943159183849272287838517309462131967920060627643374352333855815107693843851312386518813659773011523755827447562299328690337738183421017539849512730238934646315218577422847826660482014093251720611313428231491945355767220284854002693110676764911860145494214244718270259924915460330041841454734818868154013362672369636211672340350566416656174075742838856220837097502660100962287823845333489102704230445353738838264172414477956442618830789831001111514851119533868312690405255122343770730674824561587941675974104904294556528951398056513749155311632423570054992446049735174770088007273340326098168521458472617085594546429302306224551380918102017903526280165326077996484275180002666968725243059882735133010132548274328603261141465216616162604402587058688927014110423218979603705720078042249758161582895171320900843377268731207022694004284593856323352031273200136209928166734853919216103986143083019394958180351707482123836828281206525811421239168000319485238561090421939336448210963944308502738780437041239052286984434635172822110345268065164529311997689305102000365382695639659212561612243674081480060466410973379078901210216645908304162177939395099416569252852222099648542297679961659770660252977180776519869259281516602142460477443355105181325190314867609938429019938424080504154944148085018119759075502425457052473640785802416211653682420235762358213642370094676382578094289865221872295348098002454562129585447048583100011758854921450551147489245606286587926931137248650444503716841372422487747184850006282234568876215068821036994826512253120271511043431284105565558106201448841954730860031713969208247150440895909539976479749570013036042269769015048017810374151085566538700023053073704605588582438293482187716701469342749911317419331557371231998064896526296870931470338516737892729530070064152719162444653928658127417500640898783202819316040946817766051482056807024345766729249831535451661722051832412764481433414252697267977214784445010300125674013594713769222847764257152437816667783847200857352108608972290197520671299317891917671197613724886630837860909264229237224713836316428137775000923113183938361726882004602531144576682161874986703543833128485854493685175993683057104501840961324127427804855483670992154005103311107494446190699361089934396572921492068511672780553338078016189375822430947926592890289372903154948728057555725237795491266670893536011583311564298296029684093216426793992028394758162704750460678100770001711464545689788377593355447630751610309503695844184477430033852531494860266182818427721632855299461926990175056906553430603591505601159596603378947141760537636929629029461358584850042268681583289052222582819221836382432095341268035709454886475559525537157454930558654588032126610861847404827607656403454549156578981090493607638230132103316062729293463004651856472716123925276501299183130445334794746266115432466765621029711312478377525817901894568655399237608535670629157111025242700620560515342353935378626707360931835460620131560041652547968460310673511377319168546243663290224289042718631440078321419708009845867372578222295597013337515371158286429010808594835780037452943183499981862136646089751579085567215632127844060198232202657042191941704029135204634456499460547343029581826181043585111776241371691475519488740770162031784072219974353445617437171493076560637629352787242622262929747796075984244565070959637851773682068727223285410651273748202548818976396563850744207367780561365756539388299628405980193764404834966958644448067104865296909869533666809514336011172953254438706372446747273665564278995185455513247399704691947124954066897452475507743087610952221357607204188450117675267273317966840133346079481546190585575345186878851760824624252957435166694992593443160806103912347783868901939974197392309435493951760858634981710653859078193571922555584866026328440411449797992861271649596066997387635981160039176500309729903237908477817880211689988739768623473171309664580689259264286474076496121035211938256408047295210203354181691805333598163013668284030177924190524226186558928295217792165818224364728070361196693683732427769940528576552120688028812335984926402381962758329758704130472298849093206219875065447811024644490965228449080787459265971824945549138899955085211137806414862430198935108791040651535772665237323887286928185797337605695156226065538290587074104366161917466946189715628516468125205171559469547713441893536265925327984800592263953363880971514280839692141447527667633396316501936006353706074809872280720762223756292079202001297534393296520873889868635325695732933821079671679030877532206678191922777926284044283025884906217447012414790233262374755758862231359258869152347939014255356362040965436926568873041249743188268706471772718398254858193400084672422075504049001175374783524740671120505377975118794049948468009614219221248806369923684900725511469901326180174289359596328561343750970083668050290946455449740438814950261621199644113003045199636746199439166351906770805951472607352617671061302482309141835570951510455805310909121391822508243207184907792957079891159099774973077811351425484908996266316456225176159981496380430095461987626602772010730518626520558522899745912374819584782155014675720730206803444971948106047422086180742033947826403669494950247665613752979805548886171023300076372567047305193768593859689606306471175376200235387941612550750632866971285926594892040479985619607383405466625012850805313857948501033233104511555968991022215539572232824093305495887196771428723686126173646924449470742799409238328213695810532926766586670986536149807668860590186712650974629810963207414336001090678441394391804109547794033931562934175330490983770463076654794585304726109500294605761575013545701125905916570073365591321101421665103815821885861690760257654156836688262933878312288898382626088797720502548206448530038856778576540661541802071396771455816166748345684356177903937223286693359701226540503980212735253423773820854693151112776494119621912929664518947777079710879315141601016586414965321344038935859493042518576617552358854634158443309481864118845618244496425303680850371542360074302248960741310465046131263348156553748448010123087515395105510056303196117613733222238916103275341123577298381960590211895365520846935862713085276799438920081486211194611508283659149140700334554201326870116858893379352999811092589352200894325213797851248204383557689125072054517057833554768124614014729928999118571537394302159625451024233309154687600134749004072249868574659994323427878706194437599695794543693986055587034471685010133172189184535084422391790355929406368366677431521645887471020257370162642308032175897245869742440666581028189095770722336178275754920912574949777806626899388552667649526081306185654295047968975511062703612848787201359053633526643660621454518191337032790016182402302151259431178922044660234764098233279016644360614686822290971806555546036934475261837464467880986251353383543732902028044509069586175739779246540084611848029208866729997048602917016357154285632071668051668675258950212051724774981616219192269219403097780339336649971458991869303869976018786794648148402415217417042417835831595807700226702140742185014715676379514793335342235628135728508475964309448457990700395060405199132355624430684269724884598897047446676196849269726526827918607590479835675247175143995900566881548920446009044924019156486111890693123387104754262420234997283930113512037272033832094494542322228963909876050102174751050922736155201618586210552650658998266384628082517765365286108159191031776893862054141753318459968597122180637460796878260359236425942879088781251020856944182236302677094790064801700536270610130815700359832588893637855829674056225628198719975774770814600991284365053792797296591101023345458988039819964125662972965897022401255885458535801755491003573616033840329723301231403190385104819338678677277130300029008421286727022510081129207334477979183432149527465907521078127340977111207586114273891476910225546051018705555767897255457418897144384217378919562738813832354078028801723377130566939090134631590966306045813073098639919181666668489035144123194472106774074908501189274980605553531895477353106372124499593114079696522982555566594678796117030589892798217914994805361198883857134283635321304889519907107281163317136357564304599828437505150544226722187305568995494743081062212659140293072781369096088911332088639902894682476659514014451732026596080065430874850509994144280608935100588531068124706578584656338940236968893944610087490308362111940420055970793383573666551104409116734530212574205223961003920273780612731956265155177063567425960119501678543658083778153413675108737274688351385031283206209134738788739202042445928623510935328792484637747808348929235211414152163328887424568860373855265613288427535832481133688371440281818849690126804955798481868002183828876077061970634530485190914517727996457023026146028383309035207698296438172848626170740309203514307751490882250900072945690925507182720264796927781417695784225389539313849065988327555670423047929992382430500392527682019509337617712761603455516099002530802997071177478338607909297445543712575151467705881187531633612967974341614101769592063286676974138875087517569928908264689428104737995530786912757742807197245992862343856312980271165440559571232241807127157412878688431018823539150673751687938914551160914457084166119362489774417878519427750618203920683149158588544462956674157038476640278446440364414748772949285892650166870058839496372222309371739016269918208165251514208675438771637846418221077365131072979905433999184466546915658742087574904148295765148153210845575531303369845327790057966779007336421337429950788074238496431332066710280347991164070244493013571618279098773301799685374979581695208713965374003933255192362460674919590114064663305594138418546384986368452512675171812206214475964949048638414049258894114776827786253674787145247263810306452455467332511321967090460089219128151896662450196479094822511012559539477476350605411719117630273889457030282209752147064917219654615546135905985525446821797399829690538826643025539950559323104130798036670768914201085425274410276320903990965271400427381525626655698064856097733881893210564616854588354075452635019298092592851677226761201707290593931604104943346577203879822404580389429076302942915285401093994626095098519651150272820474353682753657327795640265863643908897690035822973604042367648980022407676305534109206707021844651038888010953222543590684895138641379178814926849076759812379043908281029681340343747995096185851814182505630849963146845497571364704627741856446398896394789320713025261424996564870292825179191219532562697504934987024417903213165060412517575388207154518861256528962003495326904341185513648741436004264975388749780150843426729525919190637039642806300201005371274095614797278711141344633991539083113574001086955591320856485459606984152040794024113164983332877090727900201848051772783808407175282034231073694741607035311024814995070828214956112313081433426620127192618143582855294323000304121550246419988813521956655720144918150180770364817479958693085531947117714043338161697059619583350302956719448207812382399835962704645134933029096436195910591927971019432016981237011029147597580297445894629499399968051356145689020447730077008921701956803973934005321640878371965717094474407862913128241780607367853585889146661134871354061046380888714905158643739952841452094442897842199815949752839765456139738293940821112392027489474869731583525545620546910120573897930004459690904871842368603688062009397691417669704470123717552854195418929166193290995589331474665659889023454494040932324282940781362837676097203627715266124063231571745002145830300850112951379406574703705910372053969446392453514818622830617897542830783401465064343614165151506765983882129408983225872565861251922641186035689742778946769576951176269498478382898153462505364486471727984713031418082290376233391199984480724612567191797864916213478970552019141554226017455564762548263816035579906812758352057029148520724883271823413216226375163579507227305002475213443625147130564045841071138500390281556895478525865225966188666050320833850894946303198459929229565955833961335028321690106001354084529483647587042788756142609257451598844737932228119109873412378716706852782824087997867058300242847527957382536600549467100423103474601646141390347311228174660228776427575735372531148431661022399644285691814297067324649806540462795598317989520256655309491665322167934157232630394007934162593768967424258506485806285884085077578371102109110598772488344432178843459381045382813873787442106512981938780024499922794756854285909729753653063938598907553802582357931383691635380068960446399446649026022446568165176911930448607225729883948896248415033335468409404710633790466052192094849740599946047207219447785723127745736447659133824858701903130189545690336930915629562876345277077367751525381640333323869763581468797151677131061716226853533595813808084123698582901677034353230457228664171537160038942932739766148844459215787644712782630499483598107551971938460755736672908962660240829940337543513007078207923562435306972959153095492454038892786617285936069780492816681865416383909276916832831847130664319513336499302938348218723611656015943623455771214920440498756105120893333497272389118825130975518794984865914893056966733378235956817699008090536343113533421812243919158729265815209478181213687589553986139600275403555005869559086561932285993042484943101959412007983067863174337631197322381818435694325965134118970602855376947186145305961765993004568801222652497349447486354120105144968663680934640006060486093363743104710905246978761007243792980789407137801684977687835047338021412311667992032818401099065943092146972606185040729960504026301540613171057792772790258241679785176782049387503270038871240714510301573692248121643389826868333517767012229620696429558425260828650893027930413170840728894098451791643001427823177124037115471482740737950335919008235451882769087501918542828247435693549243828478428055374209062386759372702855915410219293456607443512132962167588015156827457613126301154801163960533517474600219780484317615528342999921020236857390346539775646291897074482698521388791840797285427583391968857074396216893877292149412583888751742563527561032406435152595862942339825197560005855135344005563550815051697795158354099589233756950769744034872468777844638555892780879371530901467036094924304555055436977720924585515657028610834876777598990375434974958416884233237738767451681843875761384960836178765858609043905270585764015239970283487307517330981979978933500225899037941423662190218459507298126718486884189339562957740969200956804591128214611854876428989041888928097577300573576473989792018529961468359349657666705436947276998915625450464081200415671248595675678637109968318442978620903543230598954077963541598620035760655283131466810767169401028078284506296778995891154892463008977597369824874904165094967161370980782999475098738369686065817009139282878828591371709198331129975898274753892069016594257388687138733299517808131909081207673289400920248423726516693673110583698245457044598695567924996774879662058653084899129572869025278053457206759098751188993636580566109084344869048592027283246559885264981781807861260707099296426185331095210349556127626026363450754690535051432748974579952355166101559712713507620406236893672626846334898870900038696429098131283894189864853558704616430787171027191270217223893657571883407996547484944905903713080846709442703109472067218546088874827577752395546353839375547083343202778438050006617230776685745819642592515973488132383287267830127822670509992286581543834594162485375977359347044392443889086752323716103763148825302095403549187935346558091247152299305411776278523777854994972394673994280365533839719120322533873489347961207418337484331852252468946803500422600347011825175774502230992111335960980942590100846942680472893424610855197879508829034326741299873220823214151319571972216330445078716506105135440813801326459226103260715041062096418387233771442083456157782579770688793022662503160421382003780569743164108067091034463320229760865891267735055813669669946204541943925743931893917146689135269434558251057260997000387349456278333325455943215193485648380416091851837759918710533538820224831202372605403921314628354874996113192651849831038558035684915662912289707016715638652340643441762512019545663499683036539162647515348206439439071363821309849556433266557462886383889201994321962597138494424890743413762367548824045023409075144089932828306307087099223875102485984852888374233121727528535560355609581864127606224017854621457226960432277071614704082435463030362371508247546652415079119776643850353536402548860346421900252083774648211890428223434489272462196377636474063367867391680020073303741506663171114759740490984059134476964482858074309680671822225377656145451742924982772168247078863424238917773261861974569034077034141900148969602242434233603467418165323157347446527534704919795406976463147934010328879705649872682018243035187876843771410403709240203232166835404682409340710740071332489365131855920030576997974771826298959550017984173166599993539288144029160547554332915201919090673852023189306785571558967408190807879514974659042432351526302128221536482374681281008161740450552609704913222339096193832568225557973403906411488917427735948227083002369563248591619581635373575976489140896145031985075694168210417567891057570573123277306793533014724473278617623318122659278315481090470560909502470829447560327801054089238073009261493705489207781657904835960270856506248862624247833833088011248753978175381020894698779350732056427637060815077861989790707237724526497550998060204184184292056419978818793014720139339458282556267996235814320946615203130846361640578942258676811388120511489287557472910326168224602843250390038663536806607426966420613395567549575289135744334142911908404241192092626659817518924733481506863788743950083688270649973999342993493780540117453823700026872085769163212291041746459706833607565862554600060052441024570406271564742050027880590500364899524316249484676553959551849842333060294957583582242375551300540668184004258061106269878817887683470689689609171393733935378887366646042277476085360377307627128601594057985279924646723973090409658259752946203193067868571616005748207237978368105096549145194377727057282644289946777656373422135190940757969380113758833939622499054853493718417280186075339040339518095854973334712441900130077961752448386056991621078209047954899371486962741076534144172023143443575036452406512749107261420315840907819663212052575017033394294219949369926199006643416882617357644380724160751348656460351468131751387056626294581318368500040845531353367570620370046115334655292030718364591110489984946598762260710173378344243935259316960655459993472216121699157197886013310177677932032406452965553518722599722092090833107893673375898149526030266507134546487066785190370285958458407066825214797511398836240379950371595857781846744833528554158651329297080526738569300162789046295350858603929042858014736288799739669357592718604127706725519780106380502898370909838037156884749919674294159484689483081694862467355437333487307936710165860121386808138333787236075443772529464635625387148122168775271173743830172065453044409819866605710644135229714989741418439006863684572580050412516913440179153344255618202513269301408579631431234835104980591929104362601707289030927855864477035565327385550332177410012103779479496448134796959021658445275327470860438168802994131577654687537261457419510161285657903910200937122572470987407529421568550813399942053208703902493115762017897728929200646343858134906729535746641481397202746585225793751067918141688996104941107179396910531062750319874449342706476923942900380011918329081124817339251448019294885155762970475126674505225020316421263898554849010910460425330866104392424342004344096095451742560307504704869997567185889548863548470901707652325046176272923249781071478356277601733336297637457285570961476172679407381662651052433328250741248388289205040287562568765271594934929679995544191495616280526759616055917424178152584770405402623985272564107794610413782066024186052622794400233955935632725896784311458721780098058917794616434811872929181112223326284127051229141388904029581910553809409883383348407635390786876429376184117924363810941888528316406422338303155270575507419750984518529572948067585018336125656508730078765801374677403798605022040045214126820970781027495389153028146831670664814061160973971373211933333110342260561621237656600372147090071341760216735456774625304423390547221070119653560760695099398138213202696267541133553970452665589266891638104735434726610232967182471694177246847512422512311750242508618607263395589306520350242018501239656760549591171581785941146877007854953936954925857677327541204448807915174846403731297371647080836998870647248987333708690175392433231262347146507615382799218529228447008348345953594459512578592060548267475662020437321810635000387593376379708446300184728145321836277813625291506250000028304217892586949143463123280630124037097063246662692476492138484939760640893112364458819765999254584741518668630409996971946220050684143541489059767620292020081107448862717706402536475210809878379294035178001661143310338225329516646572874938906379376336349040228172405153862264786832570474290885876257932270872672865646932533444143447782008420651560621750822590821955852941070033284975524589613643681017584126911411014413861004447519854297024958760319905039150317635235144446675366411462127568813650378820327681043794397040865686421743971276384766615799657038937933397816915400597263024546874988373338804276067782721360274881018968905860813681321532368320307109761772835912480087195122528121214931563139475523753692121964087649738326026557300731541196087402662739959749667479822106356664105256042577031828038363594355967195790447580770099852705633580862379583669388989294086750680116587909654001744415119093741836717758681630331407492746749383373264463341628066610193357010026057797880104713465397188395845001888847823618737904286685966131674314633500718039160004478241808773221554223424817933140638299747809544756616655705588159626344510542575327293929349314894998208208582194925389881512741573452988381505465092662953539124338243215505769193010887368746097088965945876645347121120819355579095133330437864747386736155499818548171413525563404771539313923133895382500343762945382738221394073660732444736152515739440305172601356400573039709547349513761347757643465716493167478925927361284162821631701491828707465988994034619890600895757472896939375211040928178711730124645897123585579987534749607781982880294810117415615331731532674396063500636566975756055634488853178390019091516427940753391366544604414072752945165677306653096330430460502134295650313712783659094331819992022465207874935014452691945872070943523430326343069332620814604213597647873363086191820811861862315986581540784946968494375580758382060231807136072600499752142842974652095223798625147623982723402155412974632910303987082646438888444649550062557605308457288008628753789677225048696326561795460772935430836782750511194447601122180705025941884225717329609669517946499440813154218936013225661758662458843439691855484057821576579809609578064065180021148499718297252133697686340399654459021592811152430885287096419958158970450769969974451341686789774747066018224306281982717198950089947565215184241323181533070790311630925732554892985552033565162312347097631834730423620835398487776076225888304147334591615305449883360236546794542430636110455580335459143332699593072494799403779420297316053717610542412924840012769919134454574836942362096536678313332393045909628238050100559313710969334488510165424421658424647721204472821422606757111896140691260020709001773492129511664873600377413304300896645382650074820195399135246652609132238925270374271014979972643928763412314828168961140214158289546416101698493849047377804353027534363731972284048274544110637001008426773245772944280613827543653164809122416091753500950912194523979890479371722496868168585174349803553911189967015458969467775254959832512863082164011037732719696059281187183510248818218807805724770626163378338656105825109845215969655827977144551620487417690621024269701336320612295781628522752572961541300533413606495645359498513915426130117618291477134838592608659435974696119652954710496508242480784032586132640849147163723857589098265825524794319517156641679207594532082816367006032658978749187846965775882409946365761425906331321918039320978385251289252977184057932230953026974438290795521729281103199028345967763980087641752292209135174344459629114693202070891457093089610562013259691808106622545720419057259516713327925396335346423328532381650639569562070752494539967353092599712102957396812116172794658829723999875583235988460889082096924552497121767865164220152321128219481512411815363383044004995989539815088061822377314741321428368618280432212564160018617864875862992596942380112266097485963410480010604480838830769549268859632534742990036831898707463432960468687759854410778422827987738281861354936396543191922626268757543655208298802940353985699773050465340623624589079563592282400954603727695435522592544524746877714610906236533962215620288696918545197361490302535047046394644076241489340461231526225073398500860644911451543259000307266813343554729796016757992823645398049343268682735363953385043490621221807200233678661495158625930838661099531657756865910096334346906041973232742903548680422080453818384812339523954640047551056501001347786377021827524154719413240827040986888180132030733397486072061387415960956008963549627778980320568611555142388466032894502843485081825155200017280619849781900383318350644274576526074731981035281293421776647094738626859740500674649721737533703172771879139557320870159180964340310068093374303664721794943358480103021225320254370744118954903233167363146433521742803273730669779406019746275029502535275620701668003731275663037824832462949017435669357028451078769754371801265262407354687783901756590107980951402417051191872099192814639343808484789830489078730509117625348383581692825671780713619795114587570714224808880380425411507755911690721772319474821392047145558205283450824311828228329756425546336617706606857118296743062572450776234702756234786605172602838953172196871236099034805112365233621714268171702900663618885616072941781499198954746786480975311565659051209894043596763922554189403278944928504041734130326351077100526915410004244503489137756019400965171215088670699090051283362462423486155922807557934906910127066831325708655742177207924888829033644218874641765543826305041842750888388712532047606267784056444977360132208792980288613239597844448489711955803094582415775861532706017261963903796158770013545489914505500991217413499184370436021093411442777777646081318787074065128179941322575614362432303255978884395790055787354282882836155040758180069219708290965470963903827845353065523917291732689932557864786353999339975448134869901743390732681506278359033142450897810500707083757553234217694107849631417621886629412670622947842006473531782172394045912115736745526222332928565860651806567836999957114256729762339593151161309776413716842930921177337756010261586627064183687384917237372446926954520313668130341337828847556739649261800375670613675085970479786321885332209181537178871003843922150972942856570888749932974796382490774349121965856093214506443676535030565812193893591638538594931034723200298454748479117275047191231813107214736229865812963199526942266727115773625748184683076093429239182142530804862008463805332834219188366857331877524555338646464973708074924738170864574664477704874047459981586096278548344456588752085362494795041683416099452571539895135925423456723744136313215213402143818512047374687680660354082671858323782842963583309658657551566073135798313213557320986657313687391133210610409561234484971607936253955366813785469803133236109053868081060253337282838432566101296765544197971129172150966342580333075358974354251121622971287051302718915375980520166758234900651869265299593965603721336284324090867999858972516783010182448355389621240030730455207085033658880584231561744400408018025581993748747212795811466108391395637912448854497450999732636360908817406475038039122618184082829461542177202091307831507946260077352352433395628194004964493767602932149408633439040789873673714719777967794815279251356733461861168295654248693067981369262116074604195890156983317264381498070404948681629734300696008959238261193544954120986300626565680824508818995851638198169438710390243500762848324714727578100639206213823093666537460823143289496785741593675293049446676293743841754211026201914054153291244444168564520376233952160088348647460879352169545682575590409712635210929748275740881295628171772099306492097947515422365217972038007495013444388120726911780316985328238601548075668030784388287398469311632862225784017414992867267751311120398929692740907179566551711246943410130501896030711873674222182296826555895091316061874997018179587293941552817463485036172145792534637716542730580008434452640680290893465349490772823836147567985716721269253761937227300619670755662545823235935437462011287528201880820848572693607793817813579358679172417671959720631228857123187460735737851506605729756110798458290089169330763066640435283293789037506771795004150263971954341692760153846713938094441312244970607229038831962064768585927844414441351328276801023045522711423669557193324271853448526079571023562906029772303076722909704014354010788186009557279281668862904723768756616444702583263087029825560084357064431142434339964171647817426212139862691715301942221135656343453678110512405175575925057306350342408966449533327053484917154015041980610718841779212465690161351707488421757007149070730745183969729658712226978216294896538158444459381656991378735486173068459917821063157584363956471463784304553990002949540205941473682996398663303008474916506971675877041153411642351013436016299826442947741625930156977076192606495197801383944881834340777408616440335946604259218792409903964664872792606853574864607428576582261824529349342197266537908465411703864137418426472200756173156942829046064232171525623490824187937500248293776738622539565191268137758832367325618295226032946232794788412451031873896153416032157772964817138613427305869275016282843584540474695178879131815066584704056183823846625023602754273710164828182687718538567183748116417114930142230765387506996383516983500393170940673658233388611784028669034167321975984008601553622054402259185728335433213868375282651535016297672378401134162599588216065607815070384436504923086302801224734372334458858103153977715300663846625943948820631286761129784199194104685407583127854157516036235210601629297849507762773725945801278512589163717066659163803111038067451037705612212193424465446373885830233591639858187642668371023723349943572725869185282557921865974746391762460703701845790715340942816486282574639611806164191358332077123376994355383276194915723239614018746414341004893783634124351154210904049130161263478153020545143378721690800123659379292285609149083720149574629228966496590995749470827943222587794316269857251721666863199873412743716766794031715288879546200488847658507225895008003089091960599032915463136091365124398596069815583001637285288626087809201311026695087422883903227935654743003969187216238987233015972666373574289040312471263714120317494242430783526046386420623266488448348925178146172971784650182481972573737146834659578199762082573074135190662528804208244012949996122072138403568560598318302800559523024824589251732262164535604348195644416472851405681662298988419260315410334402037151623329979459555150398936010118439454427837438442956223552360948498288986633336142004418231031146658521006630083598893476090760930976853340649662838134910083472318903503121553182169663052572964918488746565288397650810324778351349334584075828305549765415883557287703463247742470064278868722024901005776215853519339193223360009668210098576333873064267119565111864237573535685465212322449142675950209515586473671369431201195074531632493726790296382684236281211260414158967862699231869944954583517456493999684780828238824753462718123631847614085878566365945258748152457399560176153198166528521449320206223420219064808562802349940643547005611426539810821718047105320755255138876814611974979917107301854650912821562884402038499151235827586419815960184389581907414699533341814131605857880657715290337973695719152518335806584742588188695327745273059851936467510805366477110352546077195152696152714046848881651540597844129515714658410277641725802754722834705981697833119369282927912780422765896859000400504268051290231526327135634604341975802571760219818600221387609125479125728868995919229096832303312047805450915832815457984798488419555536845344775276798012874294141727996343495086434951004484579064733854329181604876997098747874977856964337216417531367602314188333418207960772509972655712163373700595520289535627036606456406212810726867641557720481080296407132566618721909588499007747063458282967550448281318215007557479797018180267952467434638529227947594077552823161065408954519209307466557298326639123441620105275115804122033791137835142017473790230709894471870174914144028209285524060587163466360645201754638486275154379058684265659676414579619339189658817295150622475288173449428195813803664886918505153021342799884609116992740243348995930744587684465675814896522037245925503286517359533135911508692399689258602123782290247310311276542878567355343535050747338199692223281820665524419909629597949483156812879412097186886917105905751037957920155044352043313149599754479826376557208313674102805609979289610843732907677491363643996687019387269328415047614082897484652272997269365518291375355259136906978629741963791425479193492614574824976955786883905572168396886078553498497789416755025622736370330368838189537524511070014808413873889002290889590241259440034769683611004380566278812316939572832635259192466366606670030841203927799629441404017638097797227105750535858336715973815706921301563552043308266869217320721051991955263946648095586400478446206148191056145538401516021734571749709304431611900068099593933203668912172630674388060489840524930410178375955625076768706583383511682428505295172910749252900087446185627394878170474312278074983216719563853106369776898694358347873104152360630746390626808887422618176176745349500481161473628353061393389257240495194080825644324082492640589261049856091185022168984279311135563029731750730397341507862726248149722034721640388128937941339171564046234355577690871462791424947595248262357491492481205473507711272185547710026676183270451248053622774959138822119927324142974551618341776208453673360493660061106121853248752554332840517540632688516264061724846125538551352045732900478735660152604769717887624821338075974203882499954870599166195755615823229661589707050794410654499718807517535436412890448891120360783884344344779777398494393423012774624102449455337319395268745189908469535033290749183296518338970559200647004619716245436056500231039818314862167292879559053634067529828490511512627573040179109986059102758262434343003927421844537967764830677973197869545904600354624000710071692638988097489428213027461343689076154562958698304049558570847606725077615376179642069690874454893387820942066691385466874244349598345296601087950673843948377504051914483123659327399431304784243114014489233380649158034910868752901448145316831661962290546444775433274330763625075576964203312320505076386337241360356956885984935637079605103950985374165995541029904203307152939758573708726040642381057768363073021893058322933847026572725920894873427382666602021638224489000985821092546601040032510759852051710461027895895524326918653268727886074778821831484462630614159426344375303593141295844093607763093653505135703746189592054522856118849536464039923323915712137889983634048078222610240859721554042982628364873518773252814133841454288065918463963459930824219989329804186448656837857690418664673375545992447388515415873967219145632331386092005328773394530828079700328965217660541658041423844170047272233806821147907749838056889712453227036290568722240577558053940139281888194182565096288654196783141288748108614384397156191626257209611390222957264749621916326323506100475455450580197174022432957094882718338263347611463406019237429591193026534846386812442483093222466116635373622552944551592404970690458305141522866289781321910834534220408915880147498529848164384847316781905187341946984652640035723663202270499945748273893562465330182087707248427339854912848415156532183194306153835926244492522500800487749628144549212855209866484515733292516272717644368244774172785711692566578007039354445527737264329454350957125239285040283871221000723861915576693286174938009517473806523588930790858711381797153236325576502096272776993643167702181056774433766085847578022686389128076635463116120297426454838881276502770599667723914607821327114584722614530267687715609307551244672090595235719660183508682698413677918972128357941867849764773679388033591911973412480570624303905952255597401147104202111828652986119744305215794413119366455252151447106188307378519700292797951281050430159390820364211925255613739021922357553394504227446386960041794623285803451941455420206256978660688677508063243111033973637268509104039455414181808485750816757193872774633436298221954938051073561713506212376698560762956795195370380852573752709546589160205363736393231253575615093075474445117958221187852919039527701640708822099859615972615562027090184103257222224336717514417417724455601357140247375488619376945646856092014562531895987280834930341942511712786351615690169971411831060878054360850680130024965090749558578892550370657755085827276228806387041288768788126998347253214598155233409166483269280282274056287649315663008415167478215382050713605492428279190558588043065540616931891642542780892858975254188997537534423356674370291425313989184059732810458943182431611434855361194508914717169121744795316715375929369425021292372846342097334984258245953371716710899415165285343136399943689413276686610985938166593400853024231587917749865529043382556347480476009219459248610078670690820031122562434834355085779937259594213276922712317099805389952755092332589674880835002158623312315027609357558843562584219315487844811262470322561987156808365078998369802494227785659064554175958309886698092004965397838268202605946467801731211094651232191815198908120190822284316962385135784680675915292178432634878140098768326520024044833526355445581128760664981128575872154579815821499327470534108617368510478428900926496595800832509869165300586679604326622989767152291690843834003492535185958153241576071660185252014283268865010656764748202598740874690420009069238800622478829461164304742632121016015155481398248382874988782172471482175727335963810948313336029396682263157517771395042801176353088190336551416425044312909299629147622562671232966496105760841083485452331595072900521809266425124421818547947954210525392081748155718407026367305214177380898398379553151555887251535035888981034420211547570429741372788956451243545810130613772933464912091286767405777999818410296812787571784196097611386079409822387987224227445155473002270440282216573127272957026003706030602172244656048199249873717498467062797946664171619503463021193062973836646884776682928688081371419935181718993413145346827755720074929070182163753204015744217449424165587827305472344092451641964832125071071832629566814460251916384433096397471370694861396719083678361255856001683003048385003599467496784496469538422104314236019060917025883962774501036501128240544357694837172757146092544872465781051250435119606494321991243298420058217658039823338335839560830527872908363016044258678025915718608278810936531421008609662787650819314616875857293472072980818495443825584465076050693127623676946253015895852036530534581913393125348051496730364254807181295312425186633597873310921314276670317820596953592507691117261264753187364528680628200011856208621431147239540224527397095420548460582293580644936824523778338929553539734748058563427150384185253102564299503492909771735335581854426113650610572916057011220836969167714465547364294903641963851551923767681178033421341899189263316598026235335454115509672837078325020273197886383643983050444190651936556594105048146023298930718146860863725067004690130317356913383763836191840402629362628301362834620820210343605851740214438751206193972739998396870298336179703900387160254541196754191732667724647581425120105987130167201219652460872087657701475438610928583373272581868767448799794474162159635413818356654104381030601642490585085842378514840205835820734884856353047441717072292520322826954665239171774363417375363378171093274838236410610725891928675510228617101901497363163713790093085762109176553734010277876927504594363450987852303481021868970946015552804770054908867362588715922242743810713453992634390292355694615793013376346790386588371650293448002650311414194741745749432949174722530467088450446623208131873409000057909779853896336238793289702289002559888548408135325153204008431614270670200196678819037572752034544659197773339753071503639068916114065725448843263706540971005104912545187660017618371791374097830522756972700100634661573349770424225699641447573879694362440714170040288815306537772811423837050810507489787136174286853509395929798684979439427842776784089861301525610298207836730679144869689792754187479757125596920008588040214331597133547949260785675715925204358273655706616925883637294933543982445924417460230544508235314442390654215541411090193282206925133744168613231430375402645180692139179424710215870789064406663677870366469543870555694274914720266706438746687053192273347661248146264285627680896459108797633463385675103818608743226101954492196143664902254571553321397874920650433262231984736535926120223574300983348761510885869632176671938203219631071379293256219014597332157205732531993329029085738983552251427793626985532623740913536357519279021363228438833768486930887612925513584884889934108762990172094775177133385018732868814125184172185563074265317281817561584539297978516798608368839254675333744711064584766186394922815232955083866224260560092116621602556417208601769543013043773643002427284477954424907762984147568288588557007996721542724079910621772970137301030385257955009434764098239514413506414425260445987356717221789124317035895934298715116695683659388982983572987362352779648367964281537540346836909753933556201970479532469603303714561881061900417931127834668776689655449728927383227828148518559990143418956425248182790199476223597996611953056325009668463856753427924911065007037243656365884968261397203272434281601554769162247617758429045307616525676255719041555085882284397940450048418801786313090495642910234463988742936600748607740081483191110886202311432364667425374592078013464365907832480852485510038324321061084326887112461097628777241846844742239297462011567459947231873205969446194142082679800746336756487116604225536043199945686904179508948187103766682604930719330031734176879718680451849941928958841011462980895469946467895583260692065663584968791769194844498022378659839177145722990149545208431299791687009814142590561278540283161459169516807489027188204709596923292686961054866536218653734495090362685116027644701437478779633413367313332842217913179204654978370871170172056893121514918180119004858343161901256764494424813287814244708735894850299458721091064014158605309507891917201329430471192135475931674298715332228928582124482352545005446251173753746825613245211414688372328852973143009727515780745398745172896891807959629977058814396070443322636406094957300248714445509064429912991323244137962006175245248240622514085284048268323772080313086820272880151614912089152272758518657751050342089081190615061797924036153172303180701821299133473768666969672865723290082600416021013788664038338797944168165131734638893552586328365967491051688287058306738199100235869560131854449848952402991256508034673464000519544980373560387295539514936564202067713669498273432913603697507938860543417068850965219351096147680717124724783387407326707405754912332496400679241705847230190745944386606124693779571675738942403690035986552683805597199046587984887295062992772740361068438632194356948385986756616667970748289119204457545645759408249446626741266501270568067996638465611814725520966524938115616117204010074599266158793108951569288189175821622820583024229569453368105628986402148641434494310055336549558336918369577897856222996301902724650319897945944802395437862559283386347865062432109193544917160068985603178106184651772164190890671867516851911632566471409178805602366532889706792076066494845125953870154380265451184899255457397586830569350541219072763876781629395527664729316940502189875232352602271793698235649470682307966166820805180900907340774169734033088540277680010949351243417042897670514669575446220079553220284986319322376037984965231271436751405822904154769196979445514261787757061388458646559688152710222320858966641349235644208150529161571804979843825318752930217864836511553635835635296411553197378082590873434383799625782245619383036971149533977357998898120894925353987311515399623721265275478306228509344259351592894148040832457868713121156883725146473311578975621876270150213725050632867533007789753304716731342266052432235646668982159128806776923119194289425699161962183898122976507637373254789817942339637826032805080390117886456239784894817134678109548167450606554693330189805511639764252669203735502111138444458878935990242526776184864456823657953018706778842033577873661516473594484702175824810642473511227508012951641362814241028834936050602137083599551963185499250368609395183683095803899833952434854688215531552004324671714715742587367090114673729835039641093020259550192324868829179799230356026358293480306374236387711018772923146655750707589605213945369432696053301577359875774286011641445022864205874661476052130558704150113455714820801251573886339975673341408235008599346341355508161917583690031910975147061759597747465559215679479729727433263547034559940704303857142929258198622521516350020899667354188029739786628537646265835101375235853431342836862998789086370328153260623985942469772128673257998583804127684103656933570423405785176773398852560834839242221607600984751737646627174556762488605973479655333712079349780190993974911330180697381726952494061876074900404297903203466602191758728487359257551471058856916318885667627445369222037662863396807802505123994465752342348412138267683606817591564937493309718283356238134701754186459991718174475447848459618769680145785936285138826846644151732858930077882322683515919318633456728282991921771203960403208713852736091743740164760290246836582424623809724471192075491974812433658023709790104960373042558847527353445912034409622912829741919345363655424075353315883626181062262391920256798014541313785299012393376217617244789447833755728414791550544408322690385096120420531392586142605147067389807661607870000421600326151321224107172733024528803919214762426474454915296416959061000994266435557417718596843245715489495360793987739955548447639621543860241281026119441598420171857556415732962837731369680922285659375902734136254333127480372768817682063287597591583092808467005467420928091613911024139252645869189187277099495922887585491159347080156795514300115812456842038384100747950482647647033898659376725840904390234671848458784291543524883588967233115609040253512138147033848298907946717553628754992760014109790486265100928659561658239270390758983505109536584990555490487620825525261430378106693883104780528426144201746104313956750892746400784657083391286414969883311357866946875800477679262682530414841486882930473087021578785068422177930118680687070990720984033494151366434612308558925282819152905489383191047958191644362235279902316832634497687224712033006612443519676191848002445557873480884463418785025361293702663213606850295647986614055576843683686571438707165355612038834587871099534882316185051895478187215049388770439658641955377555791241629514231084489752823412992509943326768182622976919705585975969303673907836353977748384136676768928903677148972692004326712151172398488353679971569488460267737225532057752811248300345117803095395643217877503396391020187770391754347777169040239496805348541936105313208536235974994407947908833271127337352101655532006212786232791233327280964181415714330673466439043899148421889352657017831289448649615750670920047003608964616253621423271559483023745966468149252333827483671509355713473679024678723647860946092604330963222384567004403324033460782767529023806802414286566286981186473877401582097555935674467530367727143512161859457809377706225126835496486266048798974138329876020968107452893956828053693515582394745550244313263236120836888905395617095718213621307917066180001878602089429522557301844998919893222322240625944537924429930074348053442669283158615471331091897543785298142902092530617247386012493073389142377525478058208743954218741314519016758543122471559008470328101695560468341320549574280273208025061356679327494798949979753088839858721622564710413289096317728476846563167100325407197444259709691535737867224247365799218829551768755369100402142849742575180158875542150222836432724614742006486127827378266725708953906099511929714114386161823741356944080887257214971865020036541413291771236939641441535166760249755962810153160755179558982448646434273331268173989772705825411370932581496892051002784181331271506389322575179651966756571680842987316428646838539886300012694748854513941395473264988216532776714028205019810279363706400872812210760619841607790596047589420806354058196986522354847381040737582524457180660045460440010991444111492041711250946967850362579917641331380164742713722623124095688967377941063903602036279623603845579099288694218170502921935176602839274400905890279177143515492583784929069020012882698606128990413205363617438510282829557489177278297990516044897509117006697036424532480378933027731934133242385840146241450534510816604165835540648150120629602802470650933368659356682154787439248939475528439419616740317427880184094485808511653126607761490709191309344198699092231291200841645666992158917424300523334568854083796500525047869608471419892676185713746073710462821038992702607051441281550907855270356682288977381214906753798230379068706489390885800485985581811706758470333609778328902213587949223135987745889255363755864509827577685212355465091272948135810752142549455253256506393664713506846489353969461093358569290570326285633253983679377451656892624218800806376306338545344078063450623797656723308053061914005097757213195636577818071913954879844640982187005967769865024490614973349962187129194438452736606492541816203375341630777556273779881115886571067227480395142285516146679459814837599400430863288901525700112148213314943147592705872244369284279787260418768479012753109292920429620541922533058469278409796584941138661873713296264883661709967687997647745383119896977069159335804191885494870206589918778033019036588686783546600478326637904675628924997336651467143134501877198336256468931897213809379777362111716825910280444610344081207733905642775921338476354527666876386400767676514522371727999631424393747214515330114765305155306654020353733324395013332891672503686756799846581054133783401920255839998628010100990851990621531366465312966676965824366518154818912372506147242891845381386741066311224736719394196271490202445109798217619676206414830844860367976397019695121201297464799921587678503227196226539419906187134878155622915944160753909734893734226780522664952770382768674762958231834148741084539477976934810444520660030698991405402927116146062886741193196382165880146594269268695130219493704190266399513082625189821904605624695200072251166847892786206178180985217037677026159664408532565308046664092976787457932376507912046431313943217298525237530171383035505417577483940678874597327210137739250162938024860719957749020431863049807189887889055436016969500621480580543967828024485612918093848821680930128924276275662263134224902758506858167386966636442403482156400215823909051737961197710938222008982449938708387669003636893777370641672597661295104171693190841592492496758891336601057588323164841123577435822342945382494460531296358998530770482342794267679979053932648007189125917221085097895733986978316507160549189514896011032482524761659128759177019653710414792729371756208668874424766824731800321706289683752289050520960186309651812779867240348578797807312217272114053329977602757949967618623617824265962651436814680254582966384424833419227378266255722892934906734171942413241764469702660312726785521947159407068517504402065007677066212503573706536437877886274829622618928018226036688161693896362984880913536327190867783272818809491879627658936039519244192087275027813225006532953795395284260454276628353206662998805259586987993308443473641383214984641671981806427400845781490168006003660984243046712800186808617052304914230251665136471934945069894078140012804386449120484712912499211629803231322442646595454247007414990022730202946000827910545003260099737588202668350716067242489650668273720760163219471627306523227977555868934433944346005795048765408208028709960497853087851632413576858953698211526162798468180240690586169631382809856032673635505379471081755053246958261977241004247050571228047365614308139715162209042494654878196754844191196370356028971656650801102505342694352081204982406967965887909250304079868288179319724332368174706689803606288047013565652353268610045041146635988614979619031649458166144442313202895383769774198763641003686272168984919241758002215880698294615421373562227523788815135196798243702731626084390813780531196787706259316970198858629062603228250930672814501703687803874960208105273923078762205212856480746597160183580984539547405282086737058161450900042554286025872911584802079706648315855556283514236055267942516335514050657512467985544332514388079601427778296766941544722237680931802684438847108651132233400294014443687497314273128637080604120521110374710116865455661273445736613321139621128416551802917680431840071342039738658968847638430165404422052288108830529806652273328580855158136032198592670174465343798037505632778264372786969017859700165307321609248180522110843159701638656479678496175478675115584453847636738482773241301086506652550292904899966471250875601394621097654648771100025952070439291058718874098664145501148304497244093248134941592962553606528058589494079999304548354031864307334330279178461067619631665263140158580257667888317607622006002316361114863320153339164739488917600623490455150675173408286762797721262393916044322932155125304422752763099123048622661541866767191614097539318528060255952533600609631560783890180003039528665989786914953438441065883340513872261912009273665777099025823649441417277833541846532816135454620963422989706528928563616331510014148249872462693001014222969856421399811649721189562435453801097315492410844211575775907527448784315419016357792517549076086927091244009351053895941088800901223175574548143633112819385751119266586756224192589126832272298236200994541260323438319908672428926380653432100528241116365490104954385133360507873097734014362887749958071901382166281641390115091250976668075864444408911314860145112796546377174116002870467752978643244953704477327372719881870949338033099757932204406158751802533223459977993691670016165768154415319844955048876399352136011515332996152075128269476075863886205726970783132218995408990807811899800532629126553889140078796884387601072983499424062977765921825413361206427554200718779733821080774994559004805228210036414987900465262668364812361192143095736505874453550842046418554870525582468247557986059094079447182234449037474531247544145169846612182803345977258310168215527689597512264416289716172250916120021818285400009320538030706069851712217601462603251320009240431389043422902108122991457039151895084135856870765414350701762071221050764226493325714818321538177488597682129080253475921665878205984768931704202510695146700288280856912120485584632171637736896003072313904332334569639859093170885425689215925531496734416577922147461260912107750714440461235990131465731045867964376482591175880416471680654046569463992123401266957437004987067043270352875778366896373457690780029991975716281180177613484473840190444656513143168872307339017328977984376353672716833218674917642947680448617242364878210072826248055176848806427660281328382556818345756930883285031240083741296066433813527397997970140861511531143632740392169031324581009777322058182257218894088509494879786572654227558287191502137558289014271524549587209838429897510392046655062938270646438546422611247856317335036424108709607152560880438129934316685001611634242186682447478601855104161346647586042655223877018413129411451012967927569997012525959681525028621341248260333367433983593568355367550974127105915947406001007046367369078575841057889741718225650018611610697830999761323197226681332219694585125496978909754685584195631945673660557365379562962150885545068626379500325700630361189917924457599997278402008338041188079800501347102512648383862709139987054293020748904725012842249079813257945755189617529891966514221420757457750348699616100204046260915709627580086272046685648967290004961917868978625626786144559833105009896045745851793957367876535139230963991263314966718562656935418129095718443694203360700594022341654516724906430669270709616465345806739281690743104588206196944550117107842502567228119729093719338875279585350532650959619972133631083801149332681485492735804076920488425950774809455280222755260413094023380086911579353780557880598414382982212346674013580580611647377725161455414163595924809212666016726938721024676744909836004778717426927386759471375718662792419905443100130121471411828657860504201203112209734905537220597736824152324762956292560132750305996756214994723580095074333963949529294630057336781184627081089220903699103121576139691579439165741575502206422804977091214657672863140980475964900220470766755983598391719438321705757823573832419005059656080381376140040289080473379771347049703689018343663126939472467603069508155267056623606231882466441196357917248080861307783467410965519310851735229862273506198497318438891450316302225482783211326714747778453295467909527056473128766801015137873308557975753842984794038502353878016503067431328970878506221548688363211503477981836100020962000367037212048594265002631545999916068636530825876191888665362235886574765285296981155497783616093268320246555088033733751446083552052117744919135043326337979026435287940623591638969713818315121975917540276813440002554391346035797986472816496414426966802125410027794194408645830112259184617728322309452262393246736582594123668654267725842130164354880395149608896079597904947928290354200754343329855810021759096861317373298846686483064365384089448929345262417960115943115078167462518968491745712235108469431533777335332301821534460431501332591338302723086852485091322135916816351125198529542270370928267768741346185314283878106503807628126257224522801639414650292085137792080731393962041408882283234430473519395768256647355052036990086627616581812298702793889439287296605442978775749072250621469927793853485396895464717111082056124743323705856941730693087008864471822965246203847243585321159499669505121539306024334902463081299906119173344287957624089350203850616072761907405535139847088318980006226812289769344945013033297817901072272503430878572559883965123759816953392487567992868252953774436107092141907272356081515983646504662807936648714862899088298852340520627814945754936708801253986473048519805194375622395075759270843719394727876916646451297959304450853040271186866434430437584763526267343603567310792100419123151503944215554286975766981471889470944898518216210123138575643404765621218905293489680721476637761047472998795277102764570848138645241008902568378187650240539222851439455942631865305703785521338636600561158664013825061734839367586739142069502008097037091296959435647108588766304082550478273038776155577047368835860822524618479077472738125422228372035765181009240750413238647994319799133796444977099517134361972040483733706216977710202060139668061864451086185752751949745607143800145694855540160139607374327581749620046703068900586946875054310067827609351302245023134971036836531850759894760813224508438615689287458368318793483104340752529604008131876340105495190304455692139763094554024682754353090103204089008725298656848052840844702395244269546591869495931573195879925483232012009226572131436751407917628937669237598330106014063243108828439159468437519149995729543836245351004952443976410715739690674268348472980004938551688399907366462661040101266009169316567353716672970860855008903913068036931568339639676043531289129427564434501033461458428579591164410854647965399308002511120119810471032351097709795980713812997069459261271472646034051402327030614312598468538097089416738988913414012791209817333192905065354079021171648762650453152998626421422381824307714212449278379250191640163552175869737962076267589636080808414578043076429828034013224429210953224155885702640188840486371777035624234539740841157746552753232522428714431275236976521475332492071449559453885208355259586022124788688246973944502279789135544067486404422337230159656078141934800484227821741556294102685082988966697892232387468565940352536922721440298390554049328477553898341920257092909135650213115531393981180300879730924506777461875757530455268688595567560951964593982131461540231000860631754461133415349220543606561606355082326484199874379327616046640844968842760951477770412950079124040608818328730012619716389858379667801784528244146525523199456962948714138036006156975029125477218084551869872188285992961617137311856149061023069544847049720543679113761795237299390623266296692815275399761837810273055675942699629900253349420648151783358169672386820121270260178423503049467187008385441850800495817030361826283590959675167783498263439469072886584564544997317888798389633577245916325160027757402073015156369502196639175173672752327696509193118982923903935169822978764165554646501997651187437130986929516546043633255756900898850407358460240089689810349293104018894877793596621323797716397557540616860880810073463734768358452796193102970529102067827563397942691541267452150630673982344247290533452516965438365515465122914268484154587491478256959672398567006017794661091438196836696017192877628133760864681427626009665774679421228438281748194251455222133943323803589587101133112883509103257425929697320142152034127191422104643746537110099023012035530332580811633409820060832168099388637929233182487287997420054675364316590819663661360732729086764795583927407057273900769254819787216477762152694263626380158973440596601990737201795281697661745253376485549157139254321919646203521310257522638239170819532199266223407931819754309664319903093137727848901101439234015400938255345312194900054604600872363118805986415884743262840690633921448812524543548562334359877464988270134055831352630816582011216185751428308715157184583975485927293999914831104594325143447085966533900118947899155795709236379700576951938895962726121129907414156997118272586407754220115605563661453844524512941331943171650346065199756264994142911954666462534955853349269023495624041074163972149053519858364944628270341901062158533367438319176511958831687369032931497447456238965048903744530808606478775874612122341914999761239492693424340489117625030092019428058919417220248227648083649077658567051963380256225447832596346069307573676385975567288922241947708190598480705505323610823286331678031976907595050429923199679999545131723398265522684188534988582984497200029626452802479874140433525301526431458281133246019159123415173167539859502513534103909860428731894777532822155798963808419432055883933994276706814601458553314416319561989394093630996882951872543711210454949731218458267234261366752845056423902992692038942751701440775596315865675019663152208428776877222540774899826792596659743542974168690574163299259999603799279764954130978325293966972299098369777302790348120379850549887210939304874712056463204213450798838232259820732801620436773092677182498934273039000090511723322321105871480814442634574216211184522993411708742007173681594222609555408724293530385318612545924628435891674410499291977599667119446989469306815289124104228597078439749909748667009676665306660281638367679846050710493038496901037404153708388424348573569975208867919912898623778285200003023250045161545059861193099363296953149029277051737093445727980235738420866854089409601908610725084436383138906205700413489096635242167474255472477904463158087292907104255146740746274171748855046344768670568529602865177565253449188137961673244931120760035425894586337394938270711622601300010919357860829217405790688497672112521683187473630536728858832362450071343062163679848387272702742624152793935103583088143041572098009650902760512536931573188212026836587811986604567491360488702255719166128376268736263881505070664254830744308512091042625412505440611927799821424804310357991384310153987569183796521164722050055938304083872159045637825435768801791102185357275906954915884356205560706693209215403421359658280490197238830761626248816527450179257632996857563281728635082242271621457946365870767123335111284345975599805627907722021206562281611248387328987033054229369293301820083101861582439749301284457352710867875754053087198694670128763444819465318717121062784992306810442219924164961952060331786654541215185032447613300395026703529744389178641893128575626256490249201553659405947041556443339160729437381544345294781875257117404917065426405609420332784069034151256260358442586700773020851831296771284476793014459303494187591155673684322141311276051752173318446030840719013466812171545831947002914391016440602772816093756536094146019354553051209480962578397677112146122324035614065927214265837973725922731112665804903773264261277069100188979547084221799848113227481079898436656291462232382207764296388522442449863435950871641744760636684074913414332902451816628842299996939649324689617118982338310501564822602683368489505267281803929084517279992753204802241216013648544136190325039827433405956734742134290948558683328904939676586414817902796005252636946505187541895658638745383404231611247333024722250640570494273661626406436096062764286358843948880192278730036931973245809538802497159454975767523484636501327300700168373096288560594149117525997981562413117920301456741420326602116875701069806790192763195143913242649465907854686772801361616869686332680629233682686116067998505038664252554373331314540850211131672595348846706751223614312851207330200098401637105753348584525678185647079660785175683563758629222845269950803408689050674476026736173040628809729837720454293426938185208806007416406140084157879424007564656407587630767909045885509600787933773647310113881137246886702884964978048880816849322127937045513901877060212187571270785903315165183232468200158216084852316493340156067637931852379282126986064311197293649837591000327277317332732297629599360016362360296289808163065418100222975231241859528237939905863231473923039449957736967306483318264461231277584592042891617650296773051563340126930100134085561805685277325906069141243326287344742767206541776196973911056680053125414667096003601989408744879159888810586529745472386562779047899674498008137421853785681979216496426903083348308309920547946944785529080389845666677789120670333563341048362207824870757919990720795292877397078885040536875606993470479501793616065368587226532621248269535768639433494950034125829565415054510959695530742634822677664802754625635354967555542619984047027801412811536235772733100085418788469272505053877282129103546305517019827202866211340330361701833836341970809197666544119855095478301356698469427291723392237203006035338173564396695057831805972739922115329601545642160291037920191462155405016024704153940132593578027487420933805941135866855153929648779689166454080986795056681846195212256253313970582949586588562511847090496135388200768617929774265623255965239373596434717053252721566711882446281810978843305628133978265160206268065729301812260890974622653038265114820433548914498849527076449541124722369881020281064819638586306419739687659075969364583208073143734173275326884293690732766156895615289449167628963124390643590578635848645673811183584292977666385956978380887436312978797632640338721078054576482653611634960680803879799348887309538185148723404797094510698475833187755708076597201651158005984009314377980351983343620217167998649610169165047610293647744051699197646782550351035763291512301587267292674705824365072402993762651300723195704404369176254441477093574659700700149091353833419140476303837960590049683191817685785862908959708637276589159700185458224530484938827902515654439899062606890985323623151430928104241842071599405686712345568852346587390753864619582519107219042606647036658111983014123248995092709042937321143902986093167079104294275119211878102888504656552819705142911245990498153501275032052927911609094276821110414762639094380237160985835414689587427665276062071396613688200759182869231030366872825698833423109290821639200332201523351526203983503408343390426729792505505052039059652236809320001127508706274806445890523899837601181521788742035150652463061779785761534301462833710497363263510975082961018114013540526293334096710224286796906617136196568036680791775132407754710814579697892362824864562954768256532932307093594740917634616306787130399827155657109403348051166595753767487115025486915995294131162467745447571191866073143332101322504083233372798476140711276379383962752442370370502796225691800019234236331842164672151968397081678961899658676157169976991696845361623372578670013951336604822167005206395056406832241423482458767580376786691146482356187020165740644544280333656667865660787954277455107279956279545264606088127585947194511747184851211328762895992080688431231314712508328467145614050812116424912919428807755470735411453160632495520637425549544408257990679483520200993178781331497133019332534756579280089491735426190434002876397241364934315057576792626148552550741785756088411294461397389811258262933064742564593842692114687675310053555395896696677286080949674661775799196681561115620855149431172427409281640286884990804430293603290223339357581738825727153584679481993204099897549451636815934437652034489621196542128862067276885500292880145556335346558954376509731007651115121971653929410446606655146614374535038213717494869484647984099955654994984660194267325295151789256159480216262884719087495067057139680264600802782317979193316700397752852730792911585071895741736144490917251848428229012751971916778213831294034088506956298482615671809669752459042774949291691844378355757111500587912229000476934564882376974132982067120821033124020214383230940718312210263822967859673450581567802330901743517377708967045609977936630142853750386063510140023670713179384697588851244075473906032038869705916604534560533672796769459322458073009864004660465599920376570655707430292591254670016375916911882696044683860402231345233106550355038157686748412923809227182220075773689698691507132310084548905720924491284413986010925059265457338949481866070372653938314307310687859509569830829984017739846163337990334641870343765048342753638781605678750240712040853860873711350696744954444406565180009796415697502609785086943045870884889520722442782669578461346232039985379462536215880486771656945937705277039403593007987519653309254603854005749374218228552932515580907831759039170577962079290574209830686865819656829715984564299523026430927840632388572696051397457410153046504011240539253640895668536832890936334869554987254886506330240962675984271336401449241760431239713580519036801124395030539390469315770118350773012508163027663538897569391981100899371345462445800804263969725344509814135416125321047788134152187470555242539244504309066172298857680316970993867602924281450324101946595397432892367841193340969804425149482334416135989335717087219649962483525687300221917048080503502751642196709047842478224753647297249865097896294144751905659087658620408403348424117053273772260298540787593525620935374842847673044773646400053135430448850601961898134693455359761514290848864785720098480223644313426797739846237304926266615053713165119710186773076768176559239419939380313806653333811607318995725415939163518943399947598387057055240031836102192075492534077452129209052617153938410644920621268429910932541641317180240110792213832652785215787603016698583293038241811537958453278367794082181062581782493878121054148017492031901594356634486228498658202249158953685942917446924629569708617312689275367833421790473544078246965684433060308889184231638125812413552510480191559187491890368231922942678729126939017887683499342891732699084962795951365107958852793455914704054135561910563755383923217623555726264568136719423294614445597816677609523819778836049499995560629368412369976143440486584818655169566150623721136206599381291460329408972070651363675311460215780339744631787916196248956440737072812239910326209742164091368878468796948483675218361371597596241671947288003964988670208696517612458050236973588533061325606730211460356013945998188908778577868042048844483497708993086052931998702736442783270213020208691731218456369865932739645032969328883973760877814427580626879807971078056523946400376155469871674640475992495283871700163465889307862217066501942532442224772321151442509317854181387669095781488434900192276653943166841060353592531707355616102751618432446361616504010412825706472121793034422644013802206924132224675135617419058589380000009253386919599465218669272244114569204477986427014796829623679639147174777017513141495762899759367353751886003754087783866491150968503910390440590997172767067143149197102396798686488216274821625074253015156167695904663661935242752191426151749580226903216134759051125114869020259089635353028131636168726824776956740746151145520882003527838496134325183720166984625161200773242268143484113736228706769727410683381983976128664101126131249329122451849088110558734105714894612004431982286433194649367912782108183665453352333272387496748532214557007596439013208083757070053944234849823716613810217047394347497894450097212086367286986069455653850190929324833381661756205948225456103798096233648328148174738129804751290983337335663199375657726009815966497846560859139107993733971430969121537508820521714245364531757863882369599609873921734645022494645636578612743389137359849058886669634433617144492641798741670344862362166661615222259899757310225461919632127397947652777000876640503456019149876209030768132947770226877481206129300151507232926410181631000197341709263203833434610353997667808277219050372804531643612016150701003846128520300882713063536000357227460530716098636411120829694732542625710145227353491338600096622067577239784582890754706639917485480963216200442232763413181808099444836028284907952215535165338580113076208430233219519178569564240964134075580006404701236306600265423734848726900021694788475424539745471923842437188306863050264631990366645082894373619224451630051793381684313360462145794892686430137106387931808026989891959391574071729502843302379973321989315074041350818539929669534426949920875977864799824544754543575462817885257095621353202644556518770849104550520497338903157852361357011039741517117368109175639619626989592562375980907160914302850889375607343894107843054255326741465551707485585210157945604542743594408689061792982415342058274656788021770209248710510457828089448769975784085155126789541881956439263227691459148785626601754743765387012974704131341904461473270781140669553057111824426855214158309331645086775697907155426605152674316086323847460496113734949309619691653481972146393904180737391898460981700869290970273656696789059425105240220361258011553169427805336116338271167549851677926612524148146728417922326781550190037204157872698127545679456808586957018494063287741664124086880454574166271714430114736685068906594050536687619476163125264307862493098394068781209804903858913629734502082235220360454092261645848628363831273418507112986067999413253310241023133843669067480146142943302662107016396780791691722802162556002846593967414367939692178065918961282120185924679951188561772506706778768308805145806577213370685247505721717269995713168688871990900979613854921701845407760250720413031991496334440437406219181709507867207308869470141887800965940522891833938505494683362389371730854243229080304817704210073126512327293637834575084830315621867291302418870333032805243846183413222605410136873532252873249249187684573573036613508991311755729973108317321886298684700240697041965139435957560223028662725635338480696680119874976065577748679892728213680008809588769823736925256671724084896593529973957410911442214473659104756588397649587291297999353208553669628744993518362070081684465811730279622766994589633663121040766165384121319344860599848006607629754171294506235277134465292219915214960384927676861077712004521874342683694528676115271221263087294752735735364341764651431892711565437276139772497593643208550566240758673685265247756259117051454184160043002668250553479567108104993480741916124457901211258604417111604127298377215384025795935708551272019465631613539150072286328557836646141465766276660444125468425249004084605082147226905147499422135576551989987839903053628154031862244478385177450614755886967162756123787183051644279342411847678170994576488880636870630350991727626675953863668915351537450987136132134669793511357078780595072422266333572411974071534659895168607156954187660080401446728930836261682524999489396104828392988894466356845080800500599951446982836318355179982098768573953038895667679213575878806141359749886579860643782550920175135393809932582969330139108187273465554004086743969045150870624904021299119529909045984833934249166002001451230654637210750423009425417521515023676043923934942016885124799027746270849716282029526327924649986379969620634711367940194024208919729632071405639433524740358115633775527628124610046220843673620677143370960960922867219711829010369628661976749601978989261081188180120156141390951517794006166970571809600172790395265421915768302438791061245101774846811006224498007875000258444723172054350505947179058680678898545522522570140006464296972745194862603304950953669326842387169003312100093776123208350566041892488012031747666715502919205940540907807343685745561007095916699892461326183736300810538759312041436135400220330668501609460972090667162928154118429792125792043688346808168847912538432765501993249289667798352700742221758055552336586763766435107868819438827539530358046377437085539550924099283648621616820096743066829467261466657347704205386522347642257861105904911303461883472867286770007843501712759443624535166772060953341248727078564487767837158247736979451382911469777662445723889480892472294882907928656882996465838662710959636136014289907102467964740889019628053457193183536263326268706513921950483774575166349490513549311875889402363957440191787274151100955092739983885849834142365286551815180528892283638819252153245218362392814303594439915672398558463281581805328284715848592678735795987005929340588725939027924124736136964007107197247399320763498256121992767976994824395308555595663767378264547799986735650093025733998773981734691712229065756892721000352327700694740466851613414602244291129034961875949410874127632344299214178921116141276245038907088107470018042738593864871625080580243372107639591215722073718144798177801016970175292196664985734373610764965886204554031947480272671833747606368781412384390455601196242435776543947893523628435991420015938381633222883852852886308288783219256813160989634209209759694890083280041198486847659974801971355495192430306383940623715480665736411660890704707530399528676652555750742943804988668441336665635028166804468083267904607576838218588995292300184658821278838647222970290570324172375494554440619127509402965976785668306410207582925382115183959106480437420540669001853523111826603498767451426333666179409064161233479271491942000145156997138176979818685180366123209333899871828243337706982687479438910638050192804326516837544709848608902829616657555389962816225301716136678509623197842336612966434293580244720302889554560087102427264985393506303718613692981976858711443144918180323003889075987756365808467953413857253791456174922036593482242488010329878156310115453692862455196987671852738092741793182766163852443750391786054980671052718278707392050293123899082184761918733281483881035323983087306768774914330836227990343656847561837293398603483766047750076980495390011160734696479581152441079988699663196331458870506110928768997927976445477475941368079980085985922829303925556264706970625812502165017928287251921358540509339370353397219436891983760429200329962779348029385526863296289521808648128369809545034793684451781238892961495536658459485336923227612381571113386650540145902876830698983791996974318211013345528571973414295913476146167735345895149155522202662892834847586908093734053779920268843168000770367163674060857894906672284280661120028573864105129760832762060875393730286757577849599855365249381638227046523578054585971736708440273755436987853456841207597909554073304519467168660970882933774779091962561036535413463687048240220119206277432799798107183560269351430864608264413489071139920133517597513271510298552155524369649891807055540985423961646201365110799744374522418826016541172921895356058402665529871718730919091399249961390557142613329738827774205022936863042063375154219720544230247759430443256130796462550604173464413730024952085588961713741543272082572962751191738544443316864656190360774183294815091466145343873130598272691672615723408137429442209126748710709986431931902468100338704144917996858524695846583201708826854636127561523073199097317813678412715042691945368001199575007141350588375234019801017922956452182720077136542634994891134691554743388706232806755868190503228928725902981874444428310453239286714161801559137003721619264778146032679693828717992957815066462528232769276577288504150479765507133903730599717907799368035476912774991269312480555567040033408853595208114863717499699306040554253440471678961802570011182246310951916656560787534278327873829331429179130725724667205040434402993019146345984512380439103239092599782594485817296053250695273561830088940357621863779063177774293082578535699050876858631463459331768791559437024118731022137555333655116310142523293977076320877026255045424195435938337888390697188542764910595089352080086013644327976206186792411628988406309050671117002085139362903148150039202286398807464905123090068525569861702071009325710446207271045336069461781468701344518336309459835172850832540292009485564968383961184312046916636353398954377056815855509026162251404295657326500129523558173566684137554346596701043559697618184525308707483038425093663048141970913383542690980224526538236371003561280494985595245642194033998526850939024993256090444875937009140217257804926797780571286873792016372089360567360515670559205778112277582661423594047271803780751259038357759518221034783730855237664202695220243381156063823170163910602059683469174923191378951262934917410226406333371602708582567690986014898722434520996715417518983028141163346073235979065504334412152250188222479474492104716348680118240046801659624621148241317095411110041115272121762001396699220923460941903043203431408202443224747206251849726613655059636541989747173425317514151176214075784124821303957399737100394341788971999675196059216965412004723974669216483482680859006931013403627219889021777162982590401778634075464128717881290613200491995213639943555784264676584612380732381183333662276913650126848625156084823938813316865104303650549783524682756596758788029542776161488296181703661260017643147937001585753185329698590013371489428309803398565913572594891704880435057366418254040427305882792271518104243785240184156954068684657289685375811691628926294769220837493270360770478771016246839193517366803207870779457993131596775631257419004882981407089365779039531965880537947604248666338568000025624767494211123321821357855352311095842908204910407529289822568972298581049439543203770449561252354152474107514268035708041995421005485901072532657566282771762538583168505513964965216812399162955868939056160100844316237486035850536211360950726950676572802806026699037223725060300468518842837534719881101805532177944879935296797619300904016822447501681245919829056220342962861037931138816042515856739344107557036437275606038612425176990219690758667127565093816430567761125010340928383366750585924902066331527493717434414571893851795409085072780243057439204070181909104500696169466188648283923587235480325452190558920470512773996696220119267977425392209463250516883502644116893374025102864359066252877191721848583287269968900675223389500574261089546023461725094028230970814670142742662346074848479407750889700962815686338004651821103692588427936472550258238463167470085510507113558591771047518987567919856904062428895541628052322385769293324558041329526143359718479392749029899015472117837328760913160258925087226415226122082652923581214258173213934589213798538723064378791228562411620076217314621741462674202574411350615520375157090728861897319909914084031403014485273938277927714393699321850303747160415421102637992818738134974222614170139405859245705289042952701854022546398121430138638253118149469807255272083693386332002287877048900180367090953295882740229245513087836553803977665885434911411631715715402162234781941586818907427289038874803323513985677295607712498908401720401570721486880430417201224398262686484187725916228974946155363731249907111276806711145949511395723756940491967238437009615326085924893327171910123273469531192557791218535807026937890944478905167717978723958782435572960740710544583238736926575708595905854877934793772183322146139608095441761797349724108941496132142364055315394421150102089817909394156088950281284165388764289153915932817551002937746916386584483592401470242870126989460212328529952510720485907542331145522106459826355673770562157579171473486590929421376913338464875261906203165707194977324377883452632330952808961063536706277246286980666132653689031138203280055327423043476954277531705978449282014981350512472851455218758653027312384228326676238173014591254898527453977626134176870553220304620498715210160336819512795897659197716059527390505994195051184246896189098010496744888153008768956590896923205777778843976458018756336014485929031975708993617317522067510342829184910410697199711432448457770794291711887331592234024479807977785038449761437956537310482224641578054993597961979850470938969919821700765426360337857978442505906966561049422473607594910589144368250030109217583267615013095314142703235583060619669249688315312823050305636575020656775751218629467390288992165089260676749884018416107764776569111753811282185320589760148870947803366546812890495210801941051973970743191041856919452046278350747999431552532088156190864182028494492317430399727334987122248505219693356338055526306813662710429141220220898617323625550026398886087037112844453875007358852506341632638877224312228250406886385253580098055052138606272522740130316945027945882418248388636656315414313039574074971302155310430073489011480648235695853663968463812709700712465329292538303535581587985733915705516630123622885754812227803317055809865070030769830039414176875752383786804538393150187259661874565046709024707869790723164720572522335138093073305475868467954405756247511252232232268831073353841945006006364621824744235648404486215881212965998463991828959991566533983593807967838336098015169913611602253374411073327493210886671369375158780975889380034936571682556848128905825719037584387742549454601934169090814901086235064774920720808980917522027246564142598290985573667481600933465279322199953468078385376900261243579605998888882321459504476990402770706784545822510661189667604844490494997607527296082886469522383396601871174993202083609113364215944075939009735191754740623856360802362600982937055791053927760720438526022591705242285110530194345805684917320486227004940730955842534572724816820928239510609501482734056429604277764199760204980301474221915832705785834731033741753408379464699201825500700596359753278836811662563111302466920323688536808394472814778990083740604026641467366449496252000914489384653105712472852040012304892818479343943720417972729560583996380929293210007485383980528186070818693362587314273163050093071814899648233938434188805888992288731077529700633628094590239541450582293232268312143610759320600818816810841478879654259979266988181502487083608619018187652461630131541285640361212761960841740533833970698923124987280009660767607511123788921724785218635521739605633808653642261914497155625312897876297687996212858832401120712016826750678008026798598222883165092209071004038698046593798383711719065223874490917563176094284971357463570283117004464901071246837440627376033048433254289588909815773444164645315022941144478952381460844400145032845244350528641757268391776504505794411713462922909161749140698923374635212952983542680255577221518384111414408907301804353939766926787496606351045994409994469813676958124984025619938950561369213017430208139522817297718222400056304267680994008123764433848064939173086658487863165166560866222291208064491639660939766591345692815018581218470832781744896694054383847266565730193841487784864030196991702072254145352326132309455884252171093283628058112385725022220909891089239031655274112545947013976732325924107680561281437068025704335446347131844159590524953742114793466567813356788729103805868969260382493427615875750332648943328218638012509533469080446105790022520652266620681603971955370406758888607277786232368007119913280744288938225926026106514147401341831234890291757182046120961416226679575202563227547107058732146716681400503087701682053764035748883662540361564893751434355227963588692692938075583526907044970531712417403772505953651220953505261661827492077533743951268155978764230904404922144580334045704861949049411347198130354574660253870810587583925649038156094075712997293265418969944165992964616181777586483151051561666423392659299097043193002242050095347810941242091814652307599578593436265175992069516590784926459961349672988733173955112946103567586080646594501228308472749114769170338872612054675871698793642484544995746117791159715068815124092352132202978090894464591855749375438179787057232961912668794156982198810209218189698424346880811417224982176351546389725904128346493333581223134862739121283299615114599798510395336898942109518797720877922496469112237387034748152386484880181876152726560879751590987798110140381864799827205968919434870644398897260417041711895705488221610079703034082486804768722138720410836788537282463552570235638168939761203152009574143718818989274147156875023958379971033236714744166713020409012458462435271265133402227843104807970865577923851310860522882654935972913386464728910360113264893503988779066050651939609747940204736744543813493780504033323591687054976681939713398827603528637132729539540330337344962665371675315441861108997468639391118833324588232619568867718079443381972976477494846028495769111988578847547814383587527840230710322726293063250977166616780578850398726423920668232173739507808677088685314651557275504969702555129189559958759544637296557481055706585354819050357561487586282161131856346141737324036229821812624547766737652134780412811573762691666683322730996838772116993208995245162558590939908802372599974113401594375455194699597239465057319337364672152877235083765172650572480486754175786139998710909735949496657122702347912530310213246159032041896395313731601243218309221524321043869523323413547092582550402331359838632762763118213293761228562132546607424468050291840152589135533401682271026902415297113997234615507799927557844127771874653232667500302852312514731059102752366368827622772194690428174005136495195308090255608913540270079844216888104977241874389430069964946471463462086676591285742889405361495328518676250277599905894524456693347131042923595321938725416317246033369149520986714823377778733777645215233333171701363621598177429282561165111711669192928948079981991082696606587283013170329768928374841592257461101477268639025787434137380330043903712997566029331480148005132463048880407857081956210552274727922914621748869765597205591591401781468020171965158158539669060998685573872704525492718801867914002356206685752685303523691216966461761683899209643688437414546038152674600959810063539834935102750054504293585486347251954161744441421985441160309587623070320484943913586784196171096171300281295544235390233293074858329900912845941845190737910246194225335405634199614794908135341634462502327948237155429063555122674737017875749779528208119822534505220557889011915128648876188382290269007417403178978433554129592611516627133614085392269195384802471902154902938123843077177929170277679528447235681423127801460097313229866679557548686407049574237810227304248695748165628279296049053936441692110288021663299461998767632166033398732220961242376552786644449143170867116098893450706816375275058752806684790089809199980243000649713114980955585175751106884088707438382662125856246813838667172779923073527155717740060082397605947058118581677261237350655750645165902734455033773571895091957012427844566614033491228218563669838645763146480141180775899481977145733041670362936411463424925469407314677842257555839346565188575681902738303530806433396347550206199208717743112323913338206838908587541524360583130498131022361194074272430301008876436446403858003814596493632301475935515426026468495057815419436668887166701778684273383609564824020059397541028514633122913876593746260808627927664059900689120205642578263985204730162265867901996423159187953526005824299574058787089465309602791815320068509111851428431861764501487654005111896356374496587113787318951147613676796100977376706175829893989828554664864653288473631532288923162372548831718675138101290241253304609176306538206490360467453724534273245173006727117669969776679256253908447828023508525475103259163053792985633360027025333545172155668566322462055932193251513472371650963768537990782957294872432490137965315339247594064556516629084840980280757347428469402639291676170402256933491604186575822757644364286096620475542662742697413973622955925235266424948475909243664760897410576905009091069088801080597086709464498676162082195195889741135773746659043628508575718914770743569192199759319503206978885657779568712075414966220078068488206284707222516591482397224848606260932079165883475656535154941110172534870108143216340576398903340764590676393483903055158944577674471758221559614885380665107742031242165444562804569689818570204079519495365490473542625905133412891649219284112177732220968994387927072747886048348558812614673584716800435337635979146722573043448253988739445676844276743387331175140175633219078396066954408689226532335614755411997452314152693888964074861988435838653607014427497977692098727478766771434730566294452840157643329116329907127836955683381922479838101168901970169603274875099372277905133111896592012572425858480711957801790701682065746371961461573699300511477936365725783787655696515008190630324301609130069748927975431762459992473264569690333037228405944494784225363199827575427987197489184014433329491806888787427299785320218108057472560031418803531645947742741727881209632006345294603660604042247364067503313764649115303439150300477704364474008622789207474734895428755052792028974561602483316099365404198416227882299535702275688414659457192370483296481230835900301277418525039275244048537989894843104844074456681962724187623518118147282313067500534115679972431301696645082703941873176591247739594557364988797192016895245203422595324529904715548744996229046390209525955915874781639611717403670728611208425960035071335659393688967517614461313667591077972203976239571837657529977890808078854634614800459193593154195607642619144220660068587720907400709109442191065844802231880430676212638224825688467849447419802687632759775082012400388093608509555171531545838716981568137581398254115305694810497479420669494965011705508536493507736639961467068493707429714449531778537722751231846847704763952297750054941508465041238508703206662270347630011827266276995899851178619547341757045940546636690031056134938714730746205858084247499835309980883314728443035474064830462377333880002785213635354705865903266917923800035158328248527911164678182324054103834873015816987010021020466777123345137371931310703828523233349476614743805587895052035831515616902656806697000890332586715942141111912510235090807374553471225456711079029821267606993531903502482091785041417559613513327765248099408053909787429057491067748469561637848405841725465619360972348429130110151384742830707042216437890926084206616111327714108930129392649698951106572017454336320838674456635768476155696587059686754485480541907438587181279062419216488112316550526998506684690039609112240727458097431524128310229717001311825287821513682797436662275821030329754457245755343491826700716613642049689950445661053089972555242881573035514920509906416265421206835180474096339253365372294828209958222193164741054451731098950449695363770158780645988018309263017649750796941146079612347715272603087997875130204027712208662205066704588837334648231033765363685902193141132387422761010218987164826608399473097178770544366021666919542775979639441790522867342381348126318504532810895825582365027220841546473107689877444551663798263325955620962756187554122403520587772467993028992424653050320763071214550587023962931667817283880935511748302952359023914762444268853393171915396807082361145853549708650986946950291983769605471645630463039410419806103892227066239716555560409664084002463826976167915177827947923919901356749810774086696892664612936653576797490787836108370942577939458646799739254959523277340491506795351344181788731161712853243670725870048863080393999962844791183234063865832360017984161229978152497756773360566623585833615435084122206663465145577420309425595656651944879567683522320245996596335680181761631608906070905451737092831834948683851378652136234634143194306427065994926073657580425629501193696201311912816022766277893480408318302298622952050244051995945601586824147004647401516997585332596547311712804970318971799067933920260999523870707480499889156374730813118643800356248110456662260252272488396746119994594267482937277834543846822831672637763024834441804525879735966689304132805347489503996855907522338949472250738820771585451434011159648144717994580140247934135572264312337821772982664859748793339603378777951412719735476317629369431635801761864951115034627873023275163209138525890098786284895377828480877052984810668766217706174033141891703845831069253501456838626220283660114971898923305537081097288010948942450096789536087927487837894306467040176804736072653837909432952289430719471815349541261597004839599969632732328750473221249959186367064153042369464403620852642994501832886424254878845073630239907805403302442695034642938954771859400330908651602110686486020975531595815135132074676734580118226715545627327123434961686328061509865107415592820745008945695526095510117784816345614712225033566783965086675626111041198114865185542362320405790749197340036346488930312019469232264171469974743641004961627071568230710631097026597417561152080512552686754858275164083397453018824176711936290252199001025983563916583739337072717537082615529513260827783506051398753863174476121660733903324269324276041828120864246603576246858988345613644477932175778451264211681017329462792101485983877916562874539709286100276546864096334725347937066976596144716860918485081463012848757233916536014724664442775764948352461945742935299906470512821969163439670014818907062454321115097714833112402911711087086534486596272763281947534665758648209181189917596982599909562085990474361003038835443913841115160788324270742963539043293685178763539510183412554064290955775039482243357756607137723422199891495451499834099879127044344759154559667716453127789968086387323499760490231222450494523409423914714708864346709443130638100555137071372371547491744406647282745411370074983573030243564087298715433216668649352080090860940714155937296934026991613186401922983950609403351527360672640764866927570447491937417978395146919974171910465189617646141341938620742650077444623261438508309497021015123199800923354960008394593831952803242951642923651034427830144967594702547853748686000475794931785114963682504711544950120545965011922904273899737983468963004096275140065099013095307992145412416144467329580740542892265900143835862752539848486339299633901065241806450315081881313299140186838953574807239378602047782038934490819210739750677493341328627459190307018384683955978515726320838063438600183770325488887781513397466624740691098360107534538843489299665581751617979730537063449000537210292857340127290248216953276998276696117967780777349415375684178697387393966427997590735785548922176845316705674077581581903308117090158565411496626057657762010113805647785052066338496587648296236584182078865268520923784011918907434804028958148799570043091994362944472615006193268763739762723211527488254542490192165311214181350231732247401176098807349338454287173545951822231675766939713735160417990468718938901360025910535018587801315304279882162735958612740927026628025447456702265953401572609576980236393795916819524061772254412459837450344566022720217108152153624355023020148446311950160894209237500259692862369184349116406614457475713422193945496764872236482039571059876678229191810065124497054443009616121554234319907643620797381335088747479827733241453075982170614547831148670285032249901244756956289413950809280946847031501851908572936621692920629062929136318130335436147353144383047995035495465572164743770725099334734259605184481778481424405690259819425949900165623616185772706640852307933075599906422275844367691520400060543791319293690249938223369724075480509235562611013773901718480372782110292213493533438603170696402424191870299822337893839396779890923574404978705638650251299824223029114692986065262751966907295212133351536630539025406182578057471223156232070601595411156359630522662768157659921418983460238943165968400034536009094048608304677148901856918149154512742907329354549416490865891035703608129520029102843318581660769280783259054428417926243956688988786782356875879082807930173299487098577784982366529178453445960737375434143426666127280711718113904970015062207021768918058381332933197220200830926321004936982640645283858031811198333387906195282080320319456882479148420375420811341083364340345198116010261395712666467305610217103536886469989191030540531428129432537470333808824421330930858403210821343092623650789472299263530521058851138447407614650077524656163889423752259051700842077783268808254683727696411202941101233617844526396807713876173835505988703451077122119943740868335711957141447286998405311834359183114476200108744555284858287412311605467560943763335255261246718103064674804735763557777106707679861539542854708815576024446233674799330852500976619604373978226407937593914631811536651697394243039313773958370516010900711119698195099240315319690453806084952772815938784792405832578786609855017936573279605896715643996351425898193598175755535471320577569665071493416257600377352465320262420235417899420368808261910768131035432217927343046659057381249210453925671467123668545246595647949097406734157721293994693833534548347809289586689950254086435771302800725136967410350619772231242207365403060943842342618036904355041889117861842667289513943658615818735633685171170492084294883120220669175838462160695388303398832660935973097867561060094142484135023698044847384261123436710833582836679714161287385024413483712637646935201581476204824206607975216581668974332375707553510637701089652990753653548814474391645049401361858644322346701475406328406190092546774052801288719501873799276320100337861985386261435672440754169658499782635489059164172870546250254621118786702666994567261299823630428739481183714879192364283284501384725316569541102155417964011568231339919985208236203416778565420919150992953068310780662491864264049099044680708536861974477416637699225902534957034989418032835722268063678314133029488624674980966303292303345106137638481039632691647142910210618060159286624841594261150105402001078318514422815607215905424572140955666575582636707212706264641437293796844057484230760571815662413900156266315934162774671944050133481556598228008790631769517013627496897994339416604957320705844702753660017588205991663747537743426621273081379332712168353260402621103942540402537820040657007314768215802274286478106200160147778092080599295424789824316481547218539150743461671719948919657159759580112916724398028731868866116455073652408835569196184616809673326375274107491320646902487520411859227453712024364329069639502032757728012485438448293170364268001519990937312472750408634556944652650700325837195227809678540623391636995726398506129119516107739457467017158761827209191206343643845509221594067481709463266194821447949705215116725844443924048033513353901873129378065265029594254622235379317712320522920855622827730886181341697233922126217623549272605308569872682047946883785496180551556453057384977464699556783438894877554010043764105354737594249308554967151144498265922732799413594289728003094872389511214469216524013582030111391672013173748242752544640773375633064914033096551601535505785630212225991512572105875331818757791665907093948192768052059585399780429957697182094046673410933771833653567513732084020428682006990765443763190369717888392341063521276348509036271643103186703696841631313311959359539730575748277791957115380318501980766372850134270840613405755556591883786106042724227167280593775493955888496908927216740428039240396677158560431661366086323944809060181445055591180220974704676609956203787577877606569001471581056757234540761914541264498849080533779488531333353279003168437562684129136240587780773694549629288113918184834075688354128599762061346813482711965995070730646001747217101900954322420682436927853628299263939938732397518257989630853911202251968362916279595498420402196689515477146004516774828791029654467712045067734417307250400986652954272512152806239052781397793657304571781400555008483402063827732541023243106977501396265868557367127052487127559207570981657156657841354002432637699912089025831417813715194139775136012496426112205335285025448278156229083575954295604646207759613916785133699427545357540002671727733260355476954247330013138718978514266907402111665772872843719220142410624688108709779201088124038295729182409130550103254673239824441892446018139796642031838455498764679660918672747674412531838531133765447181181372802117334819861946930734506926874428276942301347021500615093349291038248553702914798027288127286590887606142092362198336165651638336999690419864115704695007427036865234601611028122612810924068987427376537688640094233820697604093090032963964633234693698098863603922231496391543281791787853190414862515677078810524432760500661719329350339566830102960278165999895939390776012379316823421094310960979082122076550665331692040712778131910600657001854714188678239494920536101446357523141168198678039557610249501040480757785767113649423157724332616578490468606975219923673678059207453417465376375723352890429887924638672232178614840054409775975675932169768035976595234606729761964308945343989339750589082437780909242884165886211649257965573491833068754810838930504282179205774579884924063226349131877136876141707686354447919477152206570006736395143872756159130600354058969630011029086150209588250393710905112230173411538278871407503168727392940891737237005263015304689627264000089255675937945578755320367093403299710195671770146919851573628045814413600808177256932860131889852684217677657860931598781357232409697738974962516460101829659974232844395280902147221541227999226790241400068503240814431299644708598027409555356165585987293288794131018831188524690804026217262198261683615268298581839951541129194101169503365200888029295172415270169628563796560430386090343245535833170273068493196912131483850743587981011272244490228935983664797721035866481884516283411890694582593614893367697992163444869606299780609509526425087809801134338035166086614591264130411701161852348895049675901823418146437532950999270077131239888212785577135024740130901276991271776061075162356738845274040713932530613108237980375881198625911260224075811807838153199805643183766756081981063871000284851252475532621634263049682937931657224550527636668297741082070009514257428640069976399919995106844003039127070303764218056687857727693979330745387209909743549468302001542953002724228799051638199443135622758073707498612660568563528607015006534594169106041165146088259819535044283566295284686093241190455265619961860662979070409768909361057913313936942992150704514050520551314126481331032182678787890090315799168729812983770675178874611157795378306425406464454548946150913770708188687492663897611185292163331799094410686148674440661117554041779516721637882841704512992661625474172456332897971568028636825209075965251590214575137868119328626216396479869140662178263798984368034125686945901475192844581539417013278374410794075584459386696716001880491991055161623251820403467343903906412918919423400283331000475968871741211114490159770217737464354677030525930823295806621046127365882079808428583909704159205305107674928217641714429969372766693992485534109352059056980142000997252107536121072317435512314855784881339694803428065932088315580204611220047355937934914606435122485674411071738076301076634363250455896870751556157683381434458483765473878431261511395761859729673895894031340030136430191622598333945243624594137368923773692258518801689415181648172196633137622267246854979712943521722464511008859259863796835697713246885918570699774458792735353044078225793121635721450940679735612939035663779429815288317017800582388199848201774868362691071892453454605171926285071268259958132888687954635699453225782273125183950737258280579552890191830759196911924186391957867468276018098991234744063666747645712669280472793294441644323287985342382138596135477873863311954125885025684809020039719842795752831647754713203853718385665702022180640806372874945253919668287866684885915036209798711836658865123782839607431486904918205850343640447815414499521487524074364116425384500838507644150687772460572571849041903799851736522355235227129555770851633827779646152647849503361370725186619964506019659259180808910272673101329679761335976688689734142687780217928847151608950145616094021915393890059956372844932318296646239254969430214751409325610599368394100644746805058270169404067593090784328812987430235955468091870873570741850925881845160562131181704195796246901627570490305554073942542589699784897762506539107059683873663737075100399860014779980831059159207512569168010866838321639614191864561500159886445301284450711318704802924509640079334000429497577105035490358066464244484553800394483284642476385981001513781936871554255220048038395439350889844157789775688481198700267661126757130442515084532424525665128195756004981980445045848053686964445959666056995854431123715425661054353965241886912339618437247478010153656348263523406461742079991303903486266973339216972432438503407596777385436171619024901756073929573429230724397990484317465660175508087021791868608227779309887078051269610535767256116257435811122059075560571186790254251484394288075396419821895245629652184956435200144827991570074397457636059267592714112267499126907540353800842003639062781561216992475575588772574978193596184125691374878534658696324969524436942075858268526980868099261459825656010116023484669927494864539198174581364315425741042694996272015318713242146128101517114122166964527053741719552813234601544205737498903775257417708431709885786290451108468191858202827515753604731862632876429588525046839551440602385444344259484760721557324498795238609692756824535560192595683536936304147173108158995239998493301137814807267151707064182276092830485866748776458467527149919188149076152882237725756965581931964679461763950652770183337322621678113426358970094367586605337964579263708129185946187664981759867566482398337749521871844841594850573209801362355302155793966137565197551456292180117550138233126170713241934274178310108662438331341001824227104120911245809943509079342845081381133392673440712557879675222947620614753036030497179091680562460370478447715483605297920959968235875461081851101817786124497339947411649645432566766031005841782447655128170713628947872572988123687813124438350524139993526483241007404766647751067380106308222700004495290882779466851347322707570794994169734637647116507281368311974654105240680204752413934644486807805006955781019140814368016941436202783227168550790797908549764772363353189464629446433281972638088194527839987821238761411063483576212376274365246399328777941846680777960106154874150027022485803747138785142046432806614042863761882263110038870176800559791703781022499085098268911939964566885331017384639094879749812798715868556652186313718050966568374368547269029466393355067352009621391989314130839010929701866936398572335324700407066607344735134912828603514352205843393095807677885257305066344774618034851227630494336932516783333015920139363238788614202801986773167457503277907816704030292647103805313789274745910413118469858128445916451073615082006777645335473551954809524417215660404961456223184370584809968671708443550962309511953953572799896428605050939022681866055751814457804491050897791255768849694877685005224023781938796391975812795661840653663034371592659456020709254851823762537986612784311731567160676757465193620486420952678690952929659641473841179052200527990260781147848547423704745037563684802121202301323310083107354996044847288924379359053478444116207629915200921376692751042742409210908397891162880385699750058055837113712291258149723328636054259999287245572912078817115888707386543251699861099645456198796419336177375210535210598060746742088846366998029219572237262364838845968622703254243241243877999334161016596352072889784188444346106252674395449583132800351397087950606512582165610649658086798280227026368460617434126548779606632635325311937727833553155635068769100618109550015541964431137072232973941577660653800040412717245007834270369121760175313844572265744258863511553992970027751382626204957792302173061386356946148828142826459440665276199838252412575211781959630670874642881694647902144817552996954082640690835427771420917022594036964931750774298363778525508833612583419582067470531228898245865941230766495609847271135868590525363620142121284540658226408199061489944284964371945741057879125030122219801180602583354354719803899613912948010562958970169351520011917275248805329289143291792129644108094379221158789793419823159870641508932320721696980202916278180586966593637531896800304840035472053542118403696715302211807235924171012359323286424458929024127068783119068208922820379340527771842592482404614620158394863315229725194410974412407267751700319377650369814559957680848326953963713345650764980310320906857645464263096312006233281784887111989713372643379706694412899658476017102159515629786284210571166809278916507273046539083144566072386614948369864408745774012732239887595374840388861821940624804810863546831147577738483249633959612963945412639322572227010482425599459395569285755567661953284516296327573638860169817944704650183456630449689400293461518230875542746427950174510397332761126777332372931517599642468431504308236281782390460046882349147171252406138744608283373580216685010859924227692108147383745341503325387144484744832406804543679566827153463198496622520745413570557928481382407002674527408913181097139993064962582351217536410419532112116012448834119697532245746673066272443604580954713269553061270948834001853570670060351143472142728293336264938219705219207571394934859825002826699358062354325464301194384058916090139085909539923389766175071605602637619277857353246314553352055546069508639203948826916063955528442462245953281095506574576525660556925803988349380486224963992091189417879216644237018165300872873966726129083414044007364154210339248940494387826710395031395458240628169634199696964689981743771055300705895035705277147026784251854135668059066246630320147867554756995596210907542995778381407324492644706465022226864415750275797089740864855327490302048900047400984120696808848953814320565049063162805868852861772150717081893325728778575429534961537108610403834463793864060673106711444190166378071571137286373391931757857266262849909710427372646376013080492779396839655851184671211860688226254806222971166849501665029631309655585261681090173592977616302136352867373454693425171939515447295521887060412944639849531132497854696046622053442718197542734643297923258286933269995403225362300660283463481821185789246777018142823498184521550483451423315038610144319058901504725520862713187770564767244470669227967250311428842848255725227857380083766469407773508859526873482131187182334952841414630148950068579692301263543884033080499183634383876890143447361718546513904715772623226565132658473452861027673831073156509742864031748196468587295458862466681463234815775403843594493462290060712235321324732589222417425763534092874530400638551454440199618318654989829426616461452597168001156615219550049544530025757952488059481793140036176752325900213922445995277742142105554373314725930198904527688123166950571185448227701131329238384330557835909276480140423561017324476389349002219690311491760515687641149572681451772584904988734681142517746260857003960357507189307385176378503448884499705408233378166426871363847108571127498251713973411893916596454874801645661842055078401534710304603878154092634819583091098749937059045263358966470802561828619872537926145845047699863684721206627492884395653278649778224689052784652119530386255981634599351043444606718649664868323989721300216413630032256144447932381252184285815842318714898233182768252187921431035749545637993072455756857948986099104052179832484316746193934223560561472524262873046587970671862279893710908327913138555159667197734934920391487949562879119603046266866518983903660109518669411216587980985151344538796936091899398523763004650383897719174170131945653580737663535180112829949441692760836348351202245994870119101096691967550047554879586526839724901659820558136325613161626834551989452203803017107666097383432317544266441683825040548584776869320874199323506317468092764900232200098126881613266941180935590513904307555161504592499357946341079251002596818184726607794084172173836855419050102430961861760934431032770778943326748856532685068536751605016305261722760942823688833867335900514164291969028309136601965278294389626013480909133264598245358076591984508433029318132292404089647436108678078756772542760740022715590062515124301019412025737314085959180459718175870454816721412968278028265328977777781443328499943946412413053976092758313318748848783970815200804233656669633606151009044395008227783709651994396154266398027237045579497683655946816274998009914658958539927782278619308706815603240583594769743550819162523281274703834426877806247427111575022261806003918858334537356615105365264964335503851008213691364102232218512404878906183927260530414789659501979612000719424492045200921108832068915813485296005868621586524265556888544152801862601460040313241938002867558161349198585581127144299624257219433706030796825774270110045699743624945669963697792511303310382360024733694652886695954114077078596958974435654863314768100496118585689644120508797502592504157084937956866130786398072827335378064051396848070794875060181881356264107525451015460168130873407564348500684387586597708255283880636927605541026640136036012629825790596306988054776755906478527221973580245403350717817054982988174629305798868637921565761550036987103317355512716356045091933954162085989972687146413800386176996182877207820387602299510930328474054083249761699374242797026982662824835423193120526719897634046913022508815406799738184792954422337597774531794869325729775134417367585472930118385718631821895549137198303061498966801319647720898307778722187876018438636165498260667070920396374848322361091190419734725379125364367064828534704106958666684418054209581133054953904864973513345157632850749611721510875620108920713703726674326278698532596591527092094550559675150170266854746585619969988249492029446695036859537177911288193650517800975940251777648431661476546238470483065917129674459787511823312098092892213084145014790922857692997935251583298891964014148039965943251046146668516908100636674155486440057059299920555257526160548272546019048272722089334849342084229666861330169901541900690952551523064237955219672958261029831385068230780670374211964561908334389179047469732160080006034407789726695815748536288210418849019598605503001957605591570052182703088529568443097393954605719799103144212013322543038746149313318828155448949112741162949029600149735235148617553854664700043953126799882252382559334025905931015847574738030203002795917816116549033332129844708945113213970631958745284778792326463126907939644227004481197323765306982597038356346402196092379805184655210752867262786529468432006149075740562296610505073940041629510915088278659932393838982693267825504924240081328014909143494694803181795367457395875816568595220154178636238839539153060234072391308928537160815147363385993537114955652019386605872290669665654291476799709166963599048443043097125064694716081362707538845945443318303464368461805802188752005662658795544700798477392146979375134319025907872175521949174797441715518569614813735731718953737463770189346303943905026495888234110979675199945801372762415864104743027849139304824002797680355659444230120348388697473848777263033988307339317190363145894676909661806416732586686887959416117701404586415192737649759958991705846191983969794861803025317487413607164274973734331220523396469963351819782167783256520019789610824050480062635639047607626829893745170910492689409290990446306741930806685827023214537031931724044860183884945705964537311197068584415527693589889582693120648128666970669627453162591741761326403153089206909957733780306162891322542021010712075360541280787459551184351420409340328418233731364636429977522390572183607144675082427769541289810924213245629595663837605093879368226701864281422278691818658106472533275358167461707570283080206861140718557989184844439239702988421985927366102969000810071611910845629077663441757516599133746829086156225307597005993075709319640281492377026868197213011707349124239339418720104116438143834391711406006956384815881037563796201275904637410881702283499909828092532408910537765590917960522203762483440134032289308724926666645894237656019917128277492937585296389028917351051366402118120093988202393037503500360437402603345892051854311527080262851033636775798213892027341165831261482429195288188154321706682291630401253760898213242536559743534924622211749483473787733873235095044980301781519361068969320084602934932632389806446637176054386674019081007928344512908066495257165796860022613349458298230413822934376153919462319575363623292820265410465181278001549551350683919120410468287467560757663717488928856928710780174164720748000944571201234000197035511178926983032866847430475921158932638993332784540680645893525823387685171704090427499014678812973129858107937352917174700998916947650711813032923668822152267862187610373808990604940822630011979679650666650994598148151085689355986271145998043468478467248470893571213042113069123134696220267328243571154752611021283523084496429558950781860887688594651578009860537914164049465704972139309879881557455396157445502851917799882861178128919692113539545848781173622289611857631768602437339238141107112767426504143929884098840021058346514187837631306362523868264397173901448501852337550282256187985954368381403541900566608806032275524527993122606988695769386008224375363506956852747040832454136121607675221236100631281002527121979934974215604419629771941943728145033618433679108312615470665009312797466405063968658794411517079266220310215286363237143808758785904964001914912219191548258804254569113778737260723520275703652516268148475973338136892191626772178364042094150045437407630595600608072479835459991780751311912572990228383846058977657833522813807032140531433811653744478630595884559207687565735777929856428143384875134409963262138253533016865312519625891356748084096013880686590743901082387910919607458112597963405185515411331245863023504301173407120225558436626775950449581095961114650945578046270126494742495000823073699948877157406960435592108838629655511579322976819125783717507335934907326924548979717608286300827220913641125807978097036194466712262124146429114869201531601391624233201846934696922949941533087965294758368279653695184982107024081152316087174854996326361991120102907495101574355394339531720446823865155003414205626376765580283473930539684729150171153705028894334583113072033705572770917175547235318257963242623434060167698149916097566718094293187416295358768511639993778957489898297408579447939963026119327501823615066386283336044357295847273189168980200992577471138666249311981829950668975483865765312692393306855463004981077263844932852251700289593812502650591800487345664319933866545417292702467590047030876225667961568143513219501165579406040001102638677906482995049401488882197715727809447491600315384636633535160360093726046646331855140769909439101707081430686606242599020610929587050024166643425652994386526997952387132297456542674943871920984995155742671158962251396330166222259016046927422346257750555703274569913624894169468295892764591149983918192531206184853592253849494182795223225146150573148033426636239261652556032011630461663372064372363226032849046948798600657564704894498058841624835087873793960803579449231778392190431428723289538094198847847071311148410997019320670449456592308046996948199908411191578969097674167543965601897547453503266992943847061662341799536987963932013184183042635877403846866152161017922398016397857622025320091998196156288921637623776363717425379915296609092124459792964255303283918803477301911657744420054923748061001545653528601138550647397063642499415424994777422607084513330551365406724441961293315666790361016578197645466586167160808182802198656365858385173119664435212397588405197983721098832277329991819696474777744951210500957197332013078701427536417124045809590957134870592969988727503858653717535562269915638289276138983045161976987105513751082024206824239008494169324605781579261898941585694287973413249823677501519598724928532604225230267862515202929863899159563256103296254552849906482578992016265531303080938599490723066590212567326333464455594689193872277042321206163529630147162062522895976195484564059933197041265497649464374802413845906927474229594148559366262058176676195991093974404215712420761005065656343736956267490733011599862930536124689997347573709874687525568513749038067634879860501259127521504622573988723085227648307306481988734786817216356995369041584668084093645917383667133442216111433999004628287761153414829951615621352527699228222302452857242883108171531703092233739696960609435124500363150241692281822143693646712439343886802653916345200507585673908419676187854832314355752976043225165112431552636350887923606450390545612062861292117085952987956524798127987831687742713178200389216999975582955439869610258193169353922498368529192184416384929436671875061413161968031004222450178167709868948162923697928562276886409190231837471982186397289889792207447208381337193717649475159777125373161623177012836358933639578745993966909830473922818975756989762901085499220602690971327077413097821513686896221980821449945473395695705872134780759441436915142785009612587194246946940028306810479847111446850386111014695267127937545524023751473220342249841697173510889496216757957595393436000243843109050642157843963103004454154635107195874150859658436273179433663352727045021198882190626689421462146018300185023015888949521799796552977531573789744230739280634856085497089855557295479543476077077305234241452130819152775806507528587453727365195176586748719758377682750037331381622757918880929795955887762516881690422621524238219872042801607032642988993938405555286495399272482086177703249932066384957785804474459352523464053459219355016514227679576483370425871067318695730976520346435090554611867202444201455191896105119549918797714820153318750628658252460043139385038039150982331530033082430905940591426519940874845783447286873431749401059236181965969393987607098328684176589761270464623207597723922228682588412994086171549507373371306043478802041290366443462081657484361070355904703173801064952589217505707963578903353039163075006020694382692569064393720587092334339171059926017300051571731135593085527293336528768575836244228327878248484183242435236235665176778850288121965282860767442284732745416772531788879463907713746314695230253849620764921409342051978617559288821833754002172927528053826122220238171834685056371067734048354275529552053742678377426673329029487182991672069644703196171691472681981794507835985345630443400591370136147912483759883673343182578089560269266978595288584136588318043931557345965390197368535290249409186276794672473135298698010997241352569075763979532883077604061022761344756523993098356378070294450427099590266148235869962626148412743269861256036159074793862937106519449788094064989825546515254361355274846153737054064508322106915722429518301472694132439753545794026227761198228504309575930149811698975948971992786379248414527235231710175234615014728444096738316761746459799609523245486847055061544692704727397326037359266074015760832255230752096469558173673360664231676115827648269549047996876673973592570062402655885588270974109151627455647537007981762863084743592566367684379325392617465529534188542359862061566292484208714877846026768075997597455763226152853102414450851022411543168617141692368602490548621951298439821987841967944300436092605711394868670533082643232086744746070044695385875870580351774025044649235725213138251527392756442754164725685490338060788583911569303205741393665912036743505474628416914415792448093765115254034868724205170729458086332697567941538303250008552509961051469361829045835709519899192254533624313075941250497726124428741260590113090322072654533775662963670739554788683559116412157653368588994960570598216318991309731180199485072317053384521959025923173988851560241689890800840060523310212267475828757243892515179655668444564024012862156897564831569219291477691118481609621471416579772471046125708362577758212480957794803766109260682853751041775359560136954253197835084799915574916931060965012129293472096389325822318812732614741042923615594607173968509956816496828248398712733443845564181137739639393712339431758552109596374143025187019090630632957992478444702179121195753565706557648816682055172626832131864572516782779707560421448133675878088628272499869122990867132848107955857971346652958922788180098469277290766774535252606785946291306784203305760487243425693163940769573374368896388129022937031845640399104533675066093295893342249964368311488783602217199810568356048503071155597574757194710047787408583311474154666278196801360214693537630272131379781400495667092025154826493045844956116388212102880894996487692875659864494273815181908278592504492635876434397660296548951695014313772282112902195351376012062094142907159684211899571286654753041252995024573172068656201009610964898978236014321634019206625489727497661702755492262554363973141124838252530970686517547577847544602107981095108858641239544481044467239127168078960121571301077310090616247095844964045953305974478881907886097542297292406500350910438132018613347155969806867752014997715106537595423124786923751362655694796487685906898618504239736124509349263260369449145368461951552382226437789774844319501591742974102926195764148129724604367090511378333672124452347220979977190146856161271136665967965989863829378990020475718975157108766560022413480086917944603648604507811355010478079682290053298197850800250751228530291124216216431618824293852088634200894718177073853577416572590595067418961940100803135740071343925675946165040115904519464300167197707779082600912657534864866540507555815558205246023406378580751198466415225505977483487640878136272814723990482248067822276946929945493263636649712951551898815553500338833376493526996671360370220209716016287388125749983086897005483052710786759831401222347749609311984793818112550898679273977065891543507611647842949973173899729822581111327944659261112147125498802363968388969704301888382549456763273513072976283663416654145480615271523335070258864285471091858904388474215197906037703151958620922831575445989768271676637613931852605716900738532756216347783398754083967871990400094531416139782899246300612300507128584193439537758704426526687579055151907760135685678510994904787336507087412724678196472440836599726064561817541185016343281360796019878379879584475373453987807021653188486965260271927962595578306891703446449491244449727835058124137960901942313384465195735567047019015690992901016893085686080141406699381496093933576634319775975660040477639820351870850532665448978878637514540029539624895502593153472219364370442024600558613370895411218181990718826295264725362320870929599541863352233679384408567625238250776768144212069426425650298612142923331751306704219556836164783831363376280531871831078624243205393100522344975648627909150552320403303357808481336029892491960050344553798660728364127488253291013247252876995048796276147864251996728992310279174379794051509514896940636041010420783066482187049456905418285506580007237288644961744552288869022675275708245826949885148343496743513033973041008520304926500238138540170274441118559394379851547278789626297434072539747624347757372198283610810021202239354031691700309062856569026322374168136925238337604352786710752158401852675711450531129087258807064746472248830067878256210643177956678236904385902446434002498948719538298191854679782195830382325530989543320884332273764299941487003259154783462416547778116291901964038573079380217386268237951841592020121922533594990316255919063318439742050692943939943207095721334193700699304076520318530422095808680607627444816238217546286093060118126901947704057859576998714257841424848939010593380149775950586545162459566307836487543774415440910088557954223652585679012652671840883872221011156356082104611382849273282982632992140346274955786164066495786440175201460065193926915194064541785832087269376567100504034001243449607435989282734105203529138540425718250756008255842668724494139646746807304844842866182515270702050367598734830409606374188282044159937381914632970855731096563044789395645407685401139818366346621338626723871061181931105821135604949491506299320032421037983141933377312065369218309833413756732470971898638032211506855875178816377541415425691211347030193956436414502173018581248219553075929726905260224931312291835358890391760197440667134731587003551904937420451019822323479921912532648073960907003757625462821135777919119830647897193431072518087186017120635855844564938363372536880773197076363399103297452940184888352597695770834605555386062273170678551101455080149484531545871101399437280460177521332307190229811591706474964752502839458811810542320105069000179926966998291146474296446488526628640936126024398493123382253894260026877101582489409986810450001580422684925050581327391011545080309309214894495079596189105816473789820412687058832354636043677418009377096588126892303430872547854728540270278628519825232687072140001481831489822410827559553285915742877518782805043507838320373764926816571763556279715886377886187276819507659612160224045836845406981018123590758395050966791579373387164238192616360861338028485077728202564888568332049996369130173868632528551621183502602708751413569119414865124752429900329843193641736047150335447205250977654576532445794208989756444949632575058134625754084720785098643766809379278921124356092589624616172871133645892799467509216694865358842915188632135649445944073739710582970724784259483162123073060793362507730246485922511826329021541213313172166119910116568879068228291582982671591831503625036572025420495696119924795158244205538948047365914925243017392305220838713374162854299931010910699053933012856117670959237468655411315353248465363347855647402329916222818342012228895447928614296301588501515268924818648024032558265965726131349535605499802193556973686390467008746524897486223345735886406114995281638114008328287584016006832689205376958038552880335478516805812859875560193625873639443728078504836948937946119680342334221387722347943633366390911291619280166787956783393371799587396751339220874858959546066892357806302511852354149756371925441054361873883894653168872159995284375186449492544671569977318558514263458202675245056347209473360437159730346814609872746235592912751100665030873110381850849832311705437544359580245971528193194046004093796846267904047782549154187350124747841136129601376332995986492148600466050562662931973476572101270195069063295790331654636795128071607254054101072611141202128050886230724925551076179019730037713778016946220771488828769197418425020057714520397527405360306523594747786870490541726730396975428224575821218362597109773193836180260504074623780153927701226867520482331567319687326241862382520008571745013520697652247396267245966354948353598718702323869947922559847218866854232089320065424994443171221760490740441736046000384630558784619704657238328036542163530993317086668371597015778758383468974926418763920275920607483999659586865135781185246119625986653909400139011982841104489441651229406859178280793554344081039187122073748679660598375874543107957192700085231130011876088263166290042643490048099262541116053137463817037858235291367178701974067287082695746980707292613854409348335816556470387980096224148492801885112430628727249342033853647808096471881240350388010906355684679618595473980497770151682360259614951126489145541697389827002002362476917958563681006320833680032425489644118696978641158628357067986662154091325240509175142547441393481652093914629254192376139157467208381702845146759151369743102679311256266263121894813357263475395575907070328073619542771100661857781059071869714772843101142209061781670035819555872218495951526894370626380879388380441031220207852127548366755230491863241369799882434176476799404766000976633220243036518329210684215511014148048236084270072885103114759052681127240080128967196320791887851829301167083041454375569008082893386501933011676276938760111075750448058721380407424692601405890907246685412641542781204462006810209518808423343109386755378475189182864223593065280424501990923671768923778801424073502565478590612206367512613281423885238177155505311507397499534923913899058019655387435139642148420740479282065048267689714176880313082064237453345191166613677385571746651102964276956732691759071379972401158720444140281802733696219365882729504066071506493018403963540036172503672448551264263420342807251864028393149189125444827727203935033844054333172681564333170195432915196243024659795131330907211801969240844792503803737462375739578265452495794298213224354635266150157689264287995819222738717442088461778133575196348596213646027636479205458716696916870686694088680803373087232907976855088317690917663093875947965266911240328666500328487660657251655742569835704482403780234622950404796943130540218927388683160085246492757680544367935686407666730809143394658584115158817918663613899289265868076026967564726862476808011120189662502888852893139723127887836894964818449739766390122173009861649677929178855128486965547994506144549796447837479313225137636663846931742010500615063172392998130595154662047749034550376502283412602720511455485409457555582886630954454393910332689426776913477683339389368221805553614638318659073185116939035448571069834791551595162870023019865827800367421691414421380606583414187299369428749352548047617058392786186591405436832247368028210831430989640659529256454865379053092773588714426562010968465252414693998051330379068916911360545338828260525432081162149364237786649578109078226453943768467471593326343353996881610881082292046456179901970979525532965682100732174970921952792333103830325560721527333003323557785203535641086598762667037209167995406762693240789342878550363632051781179586305968543518596019042142419464749776698444921552918584855746218735709873539869819322831449499787767570013371792388895640847446865729609641757972901431046352880151767400457706069296684675430018027632393874721536202569593974999717531211177674367771662685714754387525936726215964108519723476134554328014515156918447490970611968892959068950153262935681892663896873389934608821556508295350557788052485183792677057769615429691541685294559814855452230633227283128472777915111689183632291134480895303134943164572342126969785288367139382698295815779342682735495469760404410870192290202634745839404217341528145672761666330288301267783665115050337212068261453567551582116642465561676827289948725634196859572719150809161155711288840757631627650644686577071688803527516068431877612198898780172044668754656561068850651565269854581639114460706504822354144052090871227210452508206240404011059267427443879364658864484489333275399048939171058762763788095575089573231474881448957871864795071413554334513892170221282671693974908630852872364669490884493498127175965130229477077407772505791287805707295639942154145472847993538506068967395649827048771992860884483625905585490964774196014354360737621830020259349123864703958767556937305849290599657999101309228339527007422233181778526193012952235200993027866341730378803840706386731219200732110797914675952051544656285487960460293196717513474628345526934952634736590242494358575854005368955542374670741187282576828433089677258616604963722463213864923705890010570675027318771545860697019108936575515366521875953625998449586014428379562095115254834665574747327757136927971401864664465587590384045357003121259119090685255020701997917667040697554472074289634576549437879000951694550897482265260713908937485928806221750319742875625167757612475664906638103710867656095073984736110603679578658624476412132865966671043360760796915638873523650724452748978282460073638500419723559441258184610598463058444572691541782213639513520720598468342230536619936960658234573910116841234137386279714122986419253106842764433761671734466150268322133484833191686835211074569365023000010282649096263831478009017282087026756984550782201882083568195204783035353949847517866673297193799762230241857235529047948513467003842080991819466831577720153960565582598426291757545012234471507019121384753935884834200423540303591745150906078874566246822481903417473721694986495387151159788826869425072735052436759497145348246390071673543328234647747101807108696196915700846021828917963240993068494836188857488562293469942949418525656877004737761013570961719012981541305046885183198911980008668845220000938910907458912720778374020441890944763310348755722062096301362457374099664300146915842441112606924848854865765975589097760539224029796081450515076872467277585257743540078910813065134999545945670361728025910267665089889407562822997441623822894712711789081028273317475938252276691092735747418604957907843372437408930951697907885554119058313774561144426313824635779710683262808928276424666879741589709226920446880178020699172858129530647314373287010149711921997298388108778157082872551874144094554425852564074313037949781673955489999572038785833696249506380908282404737547043091910565446810233042095637894309454050515212408321059609712079311294126568116396838179038610281647006790154132688053368154562982957529376235023974174302220454825224431519622778051700218370875181892751594507396411880943274481835842207823299726217521564517944160548800738537821144667569339115316758945826986921739879009835393727627688161508302364445249169018586677340963495381190158007011221768496002006232723411905740833772391904730456821920747013823305023694138425650078041700355829278514959403881986045599656303654423420113634858981717771311121752455176303173134180761870847714739113460876409928826449116512573153144777178984115531943426830144634609301103108183350576963089052586970984438902930964283911483755742868645721027249495313860488519793220624585539211875234775775419372942723006700973591319235312882631310932675860084719753377946550923255525117703380256459105597589436054460986904543700032181097266041486761378562489724823057207259682724999368962193173301311093697415600033306156058733428527203938125893459377143674307551441905969534608250010482687216750321777238091145028621284818931331685594866313795767229929163426559138441200571812802958267935234029375819968133195523944574737432585555663385294193669197733499762947950807179008120393508629090389146225679567668461357914011493930052656060657005642883663857133714417158061773617512461830149641206629064595388678814086393095378372888707176586339792135388632243871647221530822169359874223332617741243846356512457826233742678757844660295856581765407243737622870020360924489777097502893522121311312978382340786762170908825213741432776943025653759486225797637401525544376134171630247491089130464372769145176403071016780119045805820889584292963922181575877525496396843074071082643139005365980039371684989853840751688536867665454565237835813820275408609975608108953627723782915649782884732377176741967189577635998721802057437101485548853126059929834463575391288650748437106028261749851940797095718676410243494056509494205844606204638597029765476297309769876030842369461568362951604133327238078426294023076493841215270010611367903492472414536327617579772841641846323237592210780375152520301519637157552932153972840024264451110782998329234108564560516024647025360695059132488799366319117958920208368007856009703006409110920849088289665843626605332755291186039547218244429067793974166824219995698749345251479233150290216737077837484467733279209310629001504104305834413416993125225947057188460184057347744028299862242934549969221354278702017397934064795913503812959740669225722048522867797049741055582002646700022743905237087423394026131963028858998056076592200743087367926615499483126263550426560747422963201817097148365444828100135118972786883068854658153354654812294582357965556374208059402692143782615561156241851252851493390349360404479883752737712394367378553862076622286444171797040925777939949485176318883695386639627213664423027519352602170105361254139353170832660271633359116609605252597456364318918620726194018847459328453594962051087077370711452747591546533683130090878352299255166884737560719506698059634045552965896937972534957067332310972046554144096336530309475862300825034778863336074346859804398843810833414729917920367328991111133932057226575072140506557979368336361747489500962185916326140707224748493293535097505644397479795388829609896677333634313537059544706520683294330460624744869872781695041300451743872141142648480241301823058411624286867926861211072338999985620469226784830571816590079521981666788313739684334752111463433755206197952360787074004357675024442956269234247835443136789912355790965494414366193557530216768934116136440397488774975185265580898013351895341202462783063671202904828288306003345040141927606346942714341467484508821768154135404209473723078359535189140599233936827815748026092150318866979299486655707534460749461915922239594816606362897282477251145637308753427987660517927990171377575947377773719640801015713653511676778356488912648568274568847983802369550374842911447603864303513626525379837017591898394437384795101998159629462452720226525916209640497848532220538701255063530832971109155287529326327732042829196142886834076531228174970980743491932739885489145385890801618403925000584205876354558317623733068842681388034610765185457490719777522142738347433381113989184856855861214255289006435765469727314302443027378639077390533922000422534596471851446715603341863265595002451984567752100661063637504776400178132126410041350386170260317740004943608589315916040113895612604947343298046179071342026406295600877230553904845125206475862713529488978334562763984193408139496504083291850687855464451026496329631318421216512669613671676644674516550327335885346385136357646029921531363729381093088182547965273580164007782778946124446113935602346252179428609581214175483486724720070507746683260452438178123997508967312694468102433941947929395831103479711867586375555332430866849498935238883097782464437478417446585884699157151045301548835005038260278702746732154168906278739984919615186578651318221739925356726765488326800379527159350865132676695401504842796668578754674631215688273878974400170600234079264790809183506918482362786912797014516587809329332846732424487660745446615437756903955545530093443174911637784601461291197839108362166863189542119641984021111348644834628804315160865762640743642471836836716155017722124313579360041663686235086889836492449778144606577670059731222298982671908717341718043970007887174567622419280095558819821782959322533645430964878919061557498011873159278047402378573097074434439681245224195279049515756768127744879601894903119238773066465514688849450850739105444497569583169987543296038024033384133007154233029589747530986673569135379151316379532142757114549425447169678083295271055058548139004095956768948241366933280273114507945919179314752956337949711047943885161803499062771987811615476175629949973272396594869120672238942220999743508635631595314613861554149489785027540593360586291644091894947901057161245808019848794598335927181249146923179934174102345161031316988121869238018089498302171703147838608322775002319614350500497247182708150860853706761066071061692283668571456656923588036610025897018036125993159733694874165189880691053670433669426382859929607197178500339035690189316852206829263780447490605895393805804578217173688528026309193617491203485599046067895243151735797989571285440977265199098502451666713903568720494878221769036545438450003976417884797566178772069967667282277726321717291233253686048435649914229211734100231144549136185289392138442256832546206616097480115372166156164914620639489933089171210517290652876000750899761677238656921375565583532675985673254574095381982132166864547131310071081290251945095981038675638448489935692924948157122913056500079768631077659631612194412897335884812757734506715159864048275923637490211380210749270678267196588208216295784115555347013166273704749591960413096458399937358014998233474561717623643978213233425128663218725857317745458579586332413182228058330062034322033713342217553913032160327338669104944364918820083431907671717957685240260443201980026424920011535358079848569315377521808723264046805099404461451856351971040907041097538416806287408136524117047930854866779774332809921463635275798851077648112739862834350787035238146280087972055659309776087722867770110353305366697519980781618386028024113212650526423088234704970407273181682556532856813952526791480000271858788172013973910438178024825511507956079758381793348029172417525804731611841908451104394011906930318952207745072202191427228157039561488910128649378573660530197650309389884020951509515068486557910060325852846593206206912188896991979839585187728612505140752061134584291839398791348454121405980749503227716064577826901259671423465472782290251788671783958190132848309111098845696520309202516426424361731966727143644479456643594701537989880213972489873160271166671411036247143641884177930931414731709273646256110306530000921480999533991982987730439919724399602180922648714774109198833703300916935625248474860934425690289328248381287672997832833673039418081697174351918392748696461177253130209125798212057440429248176970453829716347103691190701144012580778395187026102394586067985385603367626056328437390907473710973865066354199699716148353765139765814187683308788141381376476287667371633673678532509872177345800864252572261442348905417467228479015848962116675802179560107443983113316197547407439158354915212844508035850379225315997418999330662775711774956446406478944698808459487475511263922495623895673699140358276468226729322179450865551170805108515146813010578984978576199508329195667006604376517377352473493926454955846656955917101318941134877673272081464790191390434508672890556106539181413240212934307813300106961547977435830750616866627909705919160238518778100929355304620522655874185469013515501775712075061569909541332265637040663104877730821123287846413772741472675121558134933512483424268187419799807447031675457581741590171475489857385862111311969840627773942277286671642603320902794757378817401732442698350625057018922904618770048150550969866053406799296701524187990356895270040868376701391295025751488499172044216171421296226888721144850919787426621817284392677056410052440987384763308096057702127064727943103603364684158878774468338437119369396154630507374576604713239521151850569985262597339365778486534570978303585969927628867009142507262916388887485512357450025414355762903417913967839549281520716793260563574080998514338972444174762251811537282044982950904893095271416242912158970731958487031736461473117328329414940161479625118543032179056013787837172843071333973304339334476805218450544825433014455033908701525894472367970404109917040537287082752488062739474352380281149884009238176708626221692862027909718328039952753874263960793186168789382050307393194313080768681841929634948620261751990444495167699539620258546056401474707584148621345938633988868801321110988207483122753425541309664959027940138180130937589194027565570029128712396586579906364086839372830236608323981506595532489400606897646643945459072625426597287399796342944222908838421276325235509881840892051034928322155306382188094778112582211464086034754985448233456425759964200596708941157177563813984928376928425311228229305470276999891506647110633515829720593067526956372931517777254421346769259423483195892158937956563944901334597795377412548897115230714104076363172920566750345272786271677230453320625800407232858153904336933729641562041377656458747708457308828417470623089907841380714824743354361714830826631759990551536754438954871847761607655898930132185378472827888789163405742624941676958165096416050193659661428036888864739003669772065662646539588696802723302690486248357458701907759387348300480867278221053727664813237322085806095271133610105583578435912212458209923968432084631428549190028551541774341125108698523381186242033371486892965684038590369565544982109374435184650437908937059801976992568657618326657174296888117990562617032157182121433579547566403913197604246575500508249956954960495069983754162482499728463449821989962378057528329691877930023819557590115183395288700192226292438284232270207794880651795120133670950380016240603456348849071647828643865221392646421026303577337913880268060797134059481197091450552404745460572471924036408309108698746573308845061024823797296378029131112755145826753882820838048281972915947894276767340775703690349097274830805510895205761212553272518552457966203888307994631439804177566016344231709649319004064286951068084778084312878372058795892862825731512366276520714644623910390111881605929773297773482766799687063430766988388011528453563260042454327888843446479330203254339103570988280319161383639766609267992823874318801736162015447419407396332695530072203077109860190868185719649367788413064911389843985540955898990996261594674305836427830666371505685596832264923925548837321729939183303732843742526530955637720712307124805295162623387415328352746590069214418192883055087326662329807285594512982576275607808942447807029093088108651939813581170925712446229796890493346603560343273696811458054219127114001064258650577769820917337681436355893574254580825217854014163636877264350205336239534123542999283709980756266186203034082631005631218851069247585115359254090530701305123573819385684315678677541077215306804529733565041922907966649906281845294285481821928455606287729748873232616839345402877964437686244790025625381527131909172673030529433448542254401577452619674999348332493501813019791327649002591312526812961048524866086901691822132053946126679948669460376418142904931538718239206875354046223706654757377991191467085697940062690760078171959662675472979278977612369794442264090942955306018016307107528130123544919770167683839233507038179161415054506631237573385419668927888973961493958066908091180380819599318229736405906219378195801219095415519802327848919037013590403212301598974600949800319976028797751040199719838128229729164492526477528930009319437860418350154282634627434018413559883831763178607734725400559364273388795194066769555962335612686592184809431112400535077137734495362334445718438143529681580935257420198410655329226443568058375827398117727345331997489310718585721480700223552406168059762184058504332185067042676467961665971654654250854432473670093110146067846884785443980787562671794559182400839997960529342346862606394905538255467340487719249498856559416523238290576504484608784515093816900469054779102100191171482828605034306616854427272736466045943892793756657710456110412328403569627148599715451147991740358680747603554958037840387863102716280427699521479133208207823676452309849925149284997125776007998162603325507042756439806711058310824515931560336833091857633457190714631189286013229332856616145462793862736246158091963373146832589279120340107769133581942346326066278044058527229941304122464121756978913753003605788333883828382323545174504201081886801072025695245181148240976036353145765661369800706601049159906319815356836552708325554713961248427124082146307927300320814772107877995135018320218260608385912732847179464127111559466828270533124910100106205924865584833705166310364964341211014817037382398577798059964773490658955751357589136231023828455384548862403773796508120765983679559840935611110838476035457280856139594520255468257998098082030713351610393200556914805517449052305373017070308957418089199344386485067127706770178455405721228212816932661751365664627144317753362312185899539126336527968647325809223980651775026913428510925390318564101256211064242181127039971562767915726202360194642253940331079305811567065023939938599004692918893530274811456274882727138497837600500088783624472684220039875848777524392650124427579636455635635053171369847205984647418570191323627112671825455575532193136374067313449010627369099673867581572092454395261265773863393509144724863114433223501152191163893001073674418582136880825895535089279716079560152583653263896357498713271600875229156575546563089466210770761753415413845712486961799465788251504578325813805915485844608600337031052836064581993655445253082807392335776865528335161995105432819974100814056031495864356048619501459351415756065733122905188163121246460087220459381707609813793734775472716569226728261770146416034964463705267762324871061680286044983341299963606689655695318334705842037153412846487365436359194975944357262523197354558060478788575764503501323784116194051070730476458592782011993866026187654253417267396339451085616309797934906029526031333017263578871690709039584570304683951681166513009494671397991167421871912948589130611509316107296963815774498032077012201339285832711063523315543768931069304276110265480923025157097153759175423310874860756630499905623322703131277833393201487751607051360589944692631948135045766788257276964369694844318666461490479148045337043271477250154154160319682104038095269882510364057003446746731541130986342117770062811480537787742277903187518486239317040519618041755483919772926579156382780901739637625393641663468713859278429606261742664305942328765264327073113091751976887343434199703048226140180846911089388471928064591607406888220015110506117018185504809819348919725170890629631243919606338272844547909826306046282328107739290065451102802403041662451497378001234699360688558327805885461673330434938255675648446277265241970191842669036600578094227875931528022613349227110145340305668979349752107932620638961409098790279922875621300240731066801927871920703676105049235323207226670524557422600089077752873663120971888292281178026485474829500873799396458616986832333056726440649899155341083958255276402343327376269450683541610179564059920462164367064981785707828742984846186369858200083034255157671245600840497233641739874473424227098145976934223642593332892243461230104069845377061907286308197243223873107974829328985934347084939631900684739602360904350165100438400400543125064709431909218567625768395098273789426775361159755782450852566986064223159187976373897545426048248121148099116345691290291899330925410339697045778081386698864497725642801855218537959572359445183310241584471200816515573134142778984094934016616530276226415544113005278393741197591724902959113655186364711259947628252111565788227847237688604083414517586092430826560550809245642698663363555289217556342539162205713874569098086492635869765633264792224694038315861195709655028493866756127497092596716824054797058980210039942980090694393489041508361034939584417059533642734351399567083810675662360343480592130371872546539419207366869610469804448788238937303783994842675404330783189705221347743774594711164909225538349144653465457035028768049458524624527576339694978328595077798896361643536669396411546927253252847502825653496342995495517093077964844393694696389764056597580157305302207574044405182455000150983087263521184996800963920603127439877107406718867619090743372512382140171526761344005300773681867051441744417775823586178628439161813596660411735143339789630656226113444426351041288466078246675850180770450259342455123686494428316176538821565931235356559976585056555585276164450177657782618502717265186262833547142422536638155359244873287280713528896794260154991301508433254458242067501017182998149849249326315514777405376244519740268734545508538546615916901826395334254556498891471434106571494300033655436264661573964568732231247923706363610228909935020833812070039914530264953114076764262009142396530103522554246824898020302812690351160404590330745549851710453153450993610163542038766862384589528795356809476462275173386080630765778849115760391506588253471268437838118857361759396868039276686792721537302929423333655639216188876462461064116006761880442065678221485500691679821045669697854349965693089180298560511342005161094557154396688043744606046438410948270535014763792949450695850058674400142668590708082143558463116010164129690777155615727670681956229436168376344036922064130763659480700304942155810507058429063665450358142741927900788617555075505474154530984508247037523146935960079129162774554961989331665251721017525680838377810972818152927691976207011105576017704633490231060343610918501106012960596706815870281739970592966332325668912434651644144972344743780703386730286717200133122743657299187962880227018674953101479338818623495492246827256361735227089472114795122339686803189417431315318708165129227824035866232927965728708582910934971920483379904644272933209092790115203364648032075500909787500899610622610714269821994699149619748412945269857437262984376819400378716005946344863812237778190611707578130382018865060037453294312478911272827216952365814430158592142873319586297410718294853781006324432574883510920237431039037215981843353424514930676454713214443972730828157443175522881676646709322673897811588455579038762213200450900050429254653082759404009770259269328770044998102198329296642653475763341632145389372541600286809818695211811758616646098578271789517392781681238383386792058260455993048229300990760280997821273452599969753044987863280358185916872846134394342767237588422338601907605569327622411343834493893894135806036574215289543497818152524328586780524657371394278053840155406504820958702150905756309867641405286850078968807934929360365830995156444314824939495754899935105444122942835311513991936956254359721230204349254874503578663389951951797975852303843292672701255840824621799199004903716825277361780279183029692346254799399690647104821185220277599867513045316948250867666943392041942350050884223548831172852752146403810082788207409959880397145686225839909021374833261278613111547484441020319455469712932365171171721598149060771862412456770797948330586366229775065385879275302238929158192132509183587748772039119489091376139168590888740996007301286131822802051374510019652288074929979552819074248819009858053501137830480294030992142463459025932373083064492502311243076487651152795876063908230050099166621257110331998245015009209650434370202674223178547186343998532607979313585033672719118879435268869771768074399828188211432253010420060959351002871051008254907356428610049696264261223891463341308894318828692015602273307755851746298533827722788318395879265470219807673950711611059799018668394552037845693770700754099971015306549830957437910922988448782666706995005746672164393928871600055979445770790833877858076905875104843528446859058105109569222257799551025233890154131258228267019640011515634729463007034897282480454087215721106243758482147411843379038292806274317347553613191751808576535626075674090050735480597441014684556246560115742714443957178938341990920484086142783307090645453269636984089321434802740824839279640797082840740199606893326561533059444815741133086505723145157195272767963439126420526176447643074782565333774261768084206687722291285228917544104407033409225556989456344959754831496271400262941834651804665120411781533760667358343373090387538735011018056577201670778436714045612095802902842880776290287024145438843674895140365238059263124546182065018337384725647623650368737363717490410112843965322427560377953008746635627024209630546141114698786180830132758017992188571136667139035794771857584757722657916684515145063085440559228831936352364983257045988237012935274208555493404223845369562318869534249856113914883442411839437104513760588737486712116798882755996771546883316952260358445114858252512127284658055384217853858264709916274773732579266905622580652193957505335095563475493774923615572700393297178671673206768047103325293837450073704850043197060939505026602742692027383029329577331353674765654201968011360856024411302139988788400378541259058874149460808342123504637844657924419897638325914716793655353306518372273038759907926777780070897035032179452569628064306730035810521860610394886735909712971295479982003075525560707022790380281621184270492684400491882207559525242428791538368554761119528128149168450668072395407493508878981026648365344857232520058155853696104160124608257529906203777038952622528962458918556361169136462714764901221977750423497942754864719210932033527482800842139818376598249051509698631894749326550061432589954971997237431541862112240950145414548396977128026665634768547286641065318987839896386743159653084357319650483202433955936030158907634792918610003124496111708770333643871068203718715200874988339967523951528677007343704731415912392511450407217562330675186738477795135865701541999837217624712865677723950265389402060428786418902846336103448651680413624878036406437595853471527840118766076646879106076314296541458054687975912779397707098911168264419042966972818289790664218914251556797943655857016263506331529415254737512579488089467679843305058549238618450533396697123305745785396070870458735018303580383186810213842200206495535815907452346611002273362127116793167547947011189020999648568603741782355240131281653977659638130984966067552053117259780146436470492225794463307170474856111655867878197425113308560915107933729553308306824910836656357277418160942456355020753309520138748444883161524727823242765804843280726446374335365544203767665500528483109791233112201270279782138545953537630770405233384813041359286041245859177935413026745821623154759802541902174593240000224803942180354036589746016694317652232546766863282603572316190282758597794776206551954916586314308662891678575551379151706512174019777265426184740844918031318116346643205497781569516567654300403628050720306346609489421777360750108209719234898629253525225206033182402117044529182655913570783697610777135365629181343141185208701904213304864046985870011624869731265991420675086869298999806274368744162338968549021383960484145479887199028210687241458333384072754119772309322922183403924449148198274326348423348540027623626877502871562695390590348529747692419708097819380192898223412374675151745642810105653026178527471857151122146114303679156615005520993006903970053567787244382805305033132210149838131038376543690280425661909775947993806991417794853591840254537857737133586901972969937533692661053708958915434088504649047609217169443699111466602794692017824907425580916426262977701316536226234649264077941610428218938514189887492155743011893619770797793199028896547246391565546631287437406985127481944286221550273309962756089069475117321721190708202055431147946073705392690647411253217735303092050637958813125071804166667116404842757646235157933751600317623577129488166325709736221437182422293021600798997076632689422432137351998661332567903310305652988605793239794575305770583804872010537350457209325175996970262890147639128487261335166182759150570658617172230242130492133345067400541782679619761180705793331140850158975925848926070320634614078625642468905383212721721620397115313000807721994222037085400213800783546026077265886968674699418864240940323221794821300585375041463599603770422787006578639752115014100894130191398064529457743933048322273046891395372436618312003200365172879584352155179292105438846137216188936634830033789511896614407684337145983138589956357533826380154524945136144064890823304678079214032148644542340724562693789451149585357506416417103825247491265035499523365428242008752467062817283115388199526436799956760432699881131137567407340709442022444426249062267368250445097021812346413492595842922919929775009539767802989666695369408639144148606308425406230004174791815838029311775209979559621783569722164654106594286331110835897620846719148298785060144220020641950602012039072205081660969232454165574073365547613304036174791174399432851343050040307867261983683868005874058898191946523870935005941178022501917550260114316496758075865451177418567574733726450411712028235032245664438191769506755501851200810385078019228455388165559730023318487003326888448877286673081820034038029227139657576415337515686993576425930626770803988954006623510865377671861346080543617033997674374289556235051481021235899445352990881318605997550459047984215284845754857668969255194950285090569095140360937479939707349529617994565670339129090891788904700133822596687069133923222956557161978569483346266473138001188275167725316744944490208700523285385856105063234733590062636699560185659712520390466662040886829960009726338927398353098584991479785239827776983348305970200067976440856160524690825751313193139262274994168443804100807122956166233610032441086896731610865742280462846338493601577747745361894351213013500864499673688577599879147691564783459315978846683446511839731564826999977479847728096453057712397419401663085943229254746706300315791778899606760600113053859754165534011338110064111442041571597227290474951143895728192324569436710471447839300681430063042794312499813026616690846716912364364531707887487141788540490755500136141966684446748242789883529320891503639306109886957401831485266463246564259082509451224404766244925311483687180125803897089237348316351771374696717176043541856119040818656335466853313602385426140196598574882253646133085879051451226708735558485169127708886314335519095987175201649329849963497149994714254557513827074167333533295710205289376406287769917307409863516827296836436036764208586443840455539314677968059864223443209755421686740822761615149273553498293133087816336932811908787662076788072332211255998619361332270700500740830277989997700159049792935700694855584608476228933918621733156384230721083212151730832334265638250102881173449668106352584194676295215008975799077714768574984747835225413856080198862349014796714015997595496946711739710360066450936763871549105938377361813240513417686662708076943909118081566076333312176354631481167426620475379197714297413953531022881233242202335182897849600709972621082515283880013068776509761550275148748918165560117942407411502604024659126871091723474878895108665772325820819907065663058963776572306978398172681742963608680802433111483970327894091753367898013554508141280802316877285152774304941677998345801636666420065932705228951230273470528885850074041846631922487628684386717993461212490711654948398469448570657329120666123728041601047688099871562199858363825050936595096510378074794842416887079060633064557514007422129572881856550102491522889665416718944155288168461950927829549914035303342796526892269117597014369127716788748940012998187129011092546894153035366872115086879949788421939990011768530071048218577076907926200421854402899436212098265190109387081526711494957182868065411631381238118010314920823308938859008738959795538593188416555643451545448506133517662605886459197523725283538647800998983381820576651683816313478955782884417792899834338274446073817394358372983700627916477465181109544233247778385172354410600351051180954004640380752119584471902229860192921991895067151717904660465791369102344109430689645290906231376943331818203986655381173668886258187086935550066882179922985840305509211712616138427660505497263788485032471404543569462168442327758905636222690414913455620175953053482324517420387820891620366977771515097326373893556645206447891132120253553190372972393631823958652848075237623236792471157804151661933549596575927406767361554492936519143023991517313133016897374883485489434985141470832047766274421305652474340380683094682896095111821388602803161871615271132147297609587012663162471675660650937330657098379237079437057158494038634127315782261399521769595615110584554270484949724712170724591387131064526481111814078189359920488100714454221207727408798795256155021856803893360495486190900182980748588006487404024140243850175755955698846723967698827994467405603784720887959713612833023546483052816536936474322017655900112904869928465719469705012656393813490630978693663955193816454059488244217925887136352601056462122510255659667745270205616512869547850662084440589581571748696643853892129207341172168750380837160298397990803607974492500307760585679063638702912556160490025991686148652691895418846705567155875469607124321638375898337197228542323977219001098839299833236225520641014973283570957221339306149487398884936580875312292907824030257640624972094329803313707788127332449752020462814767702565213854829141880895078480464952894201634034832188503364254685819799063227558246018343747846164357776387075638963415571639208821500846760555386096671267041891339571997190110016481633768880008462381491809547518210171976361057896501420979407499147697820794790061977828706219629322134147843564740719354768509869774232815203856702328316342743314904322603853476174288891447316406736022958098498021276535829986666347318494426550422414681151942750161359874077130384020160422914420672729926636543841826267354378375326063923872649008706610662785952410474774728127507385912628620120160813507447134354852308307312661333992892252702770103391179004333160093170948020651197711754916084095067156627930630208637917895610383061130596491213788250911342289431211500329719333487830022253584890335195096283305906793865500888923091975004780765229355706636243988251151241921435362287573992524597980139436223663051089795526014572318707720154905285739308250668277367302225678097488436081864534186273623237276813833692239898471834289422224758169095572857761402553780700754900175344147159539185894804254728242030527564242209325280156513563659273051306027696633947562408887112214245263418910644459959913336985829725384236545614404273264500437281196932582299363481502949159537444843583850508821283772420977785605840338962385697203201273540279855527786752808724785410472783428940462226921475847257664754442344177338289102883397020126394615867888509946646115458234886993806568550345941384730186793849571555479353429555221869036907637899699387132921610957611271504962740124654642059936605472359427322087491177642688615166064289678964429105353974286091110795494216370289598170508729581852398654160378201876282415888130959276221679430187044455609949165392274177335473030803897908854809632871099953776045610672775848212836188694237176544452207956887152961105978952264400780019410772916793040934250171402724271410808448409244701133563902173015895321134187097293469441951431217328944742114364383597362041651957071205771505531978823503911454224753419626102482574706329171806663781160302018555727065812121099936169402373004206772305112876149954365503246865139092180971069865224438286796244303094976752927608175956777701606703336166854728820270751165555443321405044696652441770892174839613881845224963799779433426149537600478889637103384355899802970671661555710680633151768728010230390305185679288704377430684625951975768406284901901310777362804927055084077045077456184527420847531593373287687344074960853002315856069960992206585290961576033614557030930498235009959415836129838983651843889154622879651233494211545081850287097328675763670785031556187399749865188328194302871036625108862043018673925206162049105977500503666933404052525197089825822520068587992165721473270201458802964737493734068794378751784831262521323510212137060535852924563962104893758376262677355646262752908799059837392467708887083363116567165845657915467893297809351819849698426415703779370063247449503481683118461318671960493236836366019435925021198554516335441249759016225299261337841038180026390460406821877768343437815129098737729906947512595185211625418140358520687974439287887114028065180901634229798085601318916724401713799076320282477264548379643786102495277732168468978176919763575171485259419510940625453972190059803983530249811143632803843065311857115808112262289459638837977689535460029903555976611865441578947253695241438431579382138408230257967493190940895879742399570294122574660725362480123404444946915875360257208408837800795298513914760929075967146597513071701625602994113327287477638564936010562519935744762196668253140608736789614049772792912923144143578816431949748366868928845060774838650785703792333472306986215561804699304248928646396786150864701681598284693780481868342973716210795288001354035354289018009720791268146363241397251685296813779944587027235260362353075999447158513181749430068624498351190035963395240938364677826941030401671793279176919238710972400591214494440447786426725442423952965190384438647540831274415909783549944196825660939492481578677947631227166476864922511373441153838538923821548657379004672475050537984244931956068317287214157072625642010602774528500938263252979909218210391082510143062691262523826580114527804823106453389832333405888208145281132185761547270112022902674580564940232737595797683073452572974207713373788024809691692453251375786193434288853997468525944185855008569970502692281137017400646074804694007279228874672650668846030767857016095091098602015589456801363275520912845884662751156186458834934075062283948626717161587414527275859744296914337220141883764707792199735007932253214644507121214141281068382868524740690668115543597601216823961388139698742978941469218259527156255900296993390640364552532604069439066814243889502498400154779216229494997614812023092088188063401385949857152114481404527441460908108476219721787878814136443873878535228465290225381937416258898670246337492682911461301433742049123127882925355674142469600681020425507785124740978796762718531343692114555782174838322221604522241634705972067235958235306415622600562815171574832967226247170171562915585337866155298268223513242866028521203481866639409718932245216307736461747290749964930910678198046544798750205019727366434295316387520075672724309830888560327015132300810032573188381785165213055428400406823196866926714816135004202821014809511743303472519646138384334208739486744659598018164338702842969039574499637846691366769012037234269775142999766769974766307351905400913165100074562195080675874252579171586546570436465009107928850094533471347392171113377027002151840869416712046902672952189767392436261720020187564225187019022384064989048138528558096556737310129717713877319138699011192184526780040034735579692119010346587855309633832919406832725139064596903738683601621512913614455994162388363247186931502070767279517864592426218587173156273635109957852326497828313638715604020424329214585291126357848526343771938051106035395478000276491698649775972307806906481075978812585387523212284463184761195308375931146542731872489707553534472737812734040626824578545453387111051435259049285223822992674826623827323905322743813379609912845353325321701785930273140171545521588196800307147282617386892413974121999547070382383680540234591979288415017429786414577618079392857088507799176187425687651426038918748774356372531703621713830914427886833120773791716982195144433514284507032749855939161441847684169349892316309699554610916098652103841733210174553044749837764092489036841411116520535014129906981948732171941090598728913908131715971575136864913482158088640519221836420824281776710106957557424690073795733450869983479133851697889395566762534936054575348342554647084513786188637406670176432565395519573312047333870539207632979266560829878065631156644644524894440544857169779903223973882247355893355009578165854175846633775341511825503478724556456835866332772729821996080981795380097362758059049869124260718309502368175655881399868575673728202261136006052084746614161228708301397963526813703867598297852790877190248657049254547784691638956520735765267809707690478846092988668676726428277718581478093526819789896217466581003832577778796606619715659450296078156788306699583794494014414052046801578658270930590335405089157395374952996377785218191259604403899249259677278202583609939202610483581266742349376067633614556837482423323311382844582831325241789061268540113756122082659097023063578633076173439435219686075904349337166325759187554334684354165555969999673765870433210887618210304332500738294289180143342751820742970383513070552739588743828917337448274574929703925526469496206412004706038857464183975558415671799694911546302700168813431243855018469617962689648072176682313409337561660087298724289749506246073186552586041693270086632728198970886465232113740320227765453155750398002614092227422759606305822560657790689435685601342294532727742629326325000608008180631664188679629467823209158623947792810843260482158974071119472893757950510061315833009956455997304396801715933861659579324531114588312465263616008514691570405517001254684473178742681862733302693132994163651792439754996277914190647261832692480342248722424037987023562408740354388075544108977167427001752254809741300963086934534710208581940158692464806194216795775294760095689630804801614070879574186222315315667366459015800774315614173369027521303030344907440943112270929250712050457600215880595985988713469214571397719863189618645063198775904145649544530789932506834040738420478693162924578702701262837704859034189385968154101374189780812940128835830571437875452905231789269764666872737887103457453112878092113217794018668944491801520426642371523501815437989159831267807474577060772695223857509214638136444851933825598819741494984399924848673004545764228898548158812972935719115720575125367128941823877230382355791702129950449492188258437581234047187423428806658924511007355757955890368753854374875998710095259540729722290265514572480905587726243404992921583594364909081261417899323575132164915828017011401203163106278308493822343992005027935094851698235782332061470151110704743419677043092034224411910090791597452484365987682553359416944623400346008028165427946017966810239691442711912091258524771216776597676359105673732006476593817908532553936288661950441435873605469334818277661983361280391680979001621084082472940111306370956930012158235955834465528376983957566437133221140510179827852920275995737470214407364587579912084826294448747845035828084875138107712327609938393423009617427596767397509601719972265241813797373613998043187213380002301345319007840227274512219289574102885831009630133161619036291592053532227575138415908135975485060697152748995876412191181488904159770653138292541607612347925537158857472863311107715600034293407997433770217511061464638889885187950559264998538136982099454642993309112423357064828761410374921766756940953935297129292716280095359675509823649904515359699369595318677930062204070228769281314297888456682818280225259944038131630487194654629765567807972715114461926053679999280063668178410408890107412781985495847198101581875505103232771326058268966530228954942031374475815260077241114066083110222475737709940072093363786948480505672531035072815682899131142443293234594181823575569704564512538270700988118333970719820181969387894469841410391664669145058346180132479781694191836524226490758225437401816197221424414993599662312744806618230539184284734050606361289809595491951294512072732549141235239671882076448233436949599476995901280442935945449304617207463110873320988200156230067537949982042288484566348216838880937148337092891581412686980596101434278853508547705493257686163537727648320957567501816752523862951965562851247645818203700025879427289556183010836642546046871076848866579751597859965027197443932410848892937934795794232098687365727107690695067841816985802451634656076007909927351435737373624910640738670058997878390216677145292567777082423625870852520919909578734479086063835005398611686210942498015198076358720813183848729600808377091404037652955101761605551622103611991243722918376513865081032568213720183301321128503862760399150187224632402639685789631963071562025933998809288070572671395967138933667778854447574985213566354539552751064295969658813533483528858548870345234922945090794794833637054822256045719201714590911534100696214868104443851905702237950056971406691478570319804010500469008740593461386152423624994930856257105525588421395624708824792548485471585713338485824878102524967258349507657749589276940212973481368656019213728672075504818056338142698735367100019193187855409600433117589751835827341396858087287782618866022691572655497668669165789479383321392662498214776804208084542277085433683000079517318794389878564872580909061545193658908688896902982518670392921708011708657574501159158016007611412376183110247678501539190338971560568849325733129684760724878520077780971691396447358955268848314215896264371140105236269570404902734346497060028607251660584899066899981730412086404898482110532312322097202467266878864003677307019999487124432341367102173424884611985531684896056300014475572009782866882390275595107918685538921824717901325532175251037661362752677331870898339179389196503839860431369240010392575487949209604078992045885824304728475907423896946691675685609695850299142950161910250308841279285263009468086490868695526150120793147156307761713415333944785165767831453581537514854628348060427157510585646097418369063726271055060414634800859938645134415720913594466462306152110925199529003479456455646841340273017295590807834704862996192338915953852483727659659012039771362645952421253899275490848191479190225786895941254893804605158310849518342798005007650203472754380499712141986591354570527032493184031290911242166420354863532038311099240082317367744789616453365143863715559353623461410862851042618569711617152664081426688442431372871466139004319632825020223213861007733499300418463078255415755993292486216404824316364542808213559220765139279398665209874158652546673091098174009512353909204707374670738931776854020176751038937824318601053007329533942847257081792928035420132976583374355546894258964028002693250840607650933509806090221606916954450959437839407156415980916845344608972585227722184445389721538263501113712186586464474032517130441880408302574375153672378324827277747955114146437510748170178890134369535589310887007257636451425847629231852475067654435895041952492545512202360778189185991425354998466500422059268961072300932968302396933143903988379179523129865314991159858009772598390170824089500206154190860918391816140239948362312642091119122253573120188164205734979565528430682274881484382130061466568109614087876404913033625788555131818533951923432403820171853348563525217188107152844220499077408989636417216962384598610535815356016302439939403006156542383605961181374721178449806664101590679444353547729825925772380016662079147952893214692485208183572306552360709425162070606021846130958239994342293189577125212925319744100518400478318836838115976923095885250587004619533792161169117603945078156421212038633772320760056237084738363353807324046747846138746724475506129838918346461488045745498680711744376396725218416218158186881053227598554383766504681707870915201108022253805516757905422016479752101448430172475273409312966293929518352124771892669023586719427676856221910247899355711705485917039340110219575746381994613608673621449824314392742179659887933175770142477158472633007018930199579849806289253119946747155341134322297844933426946371127464824752612445786960524778306286295292319780358591199800221082780553836271539823419243768818956288097744363440886622032176935876293647430032738538375119874958407629726601999214033618369310938414185914303230974486139857276412690454273381023446523602499902421222541188909033501577842737983070924168650415405440276324427566945510818453700588070454427913289430511977546341005478655546484407639267502632657727894999419611742220895208120639461216301278235684800600878267798082985522132265015867721209081249218777303707712502581389939375762181608775471400239210474266015131270775812496990689525140621789767461640297497219137997609303712829707747151155027871648533720724235414551710118522766433290096430243554376683181544540510424639847363836233332071581497994668911159421888217981386156568417801870222161389378155402354114007748460076476553136845046013068044955003682768032811916062857898466757888837727408953308962275038125848476879176606669906127932795663356121825045432706918468525438202312324847768610547072603662227030755230499102806775851485706292489207278443548088754695252269109685350697696588242906828832851572144376313364214199827882750099966755420056187679356939038695515941100686311143913918647948168153096613384657135220005919514068336681415703833451606196244920800665243123135885212298245193986231323595512431981031766785793798654331462203495392187548496765498979688933236363684302303288395909960589016253165491077334252603089555672641103935723746156225452264709074858234635289215777982654469544990598657276311758981560660496959892693055292757782750163709342445813288714793479881589508183077481214917632348354360658335605898139155131127342570969787636397643472672488764717614217342409369014163640439980872819781450219958827680761013289232599587309839244396766976954996686371474516901415002631389046057466729731869335520665096459896380721173641226178940154612769719756764481141126608094411686465025662172105216632816225883842211589786589097588895448267178471786116486688093724639724326650909219407840839937709101255801461467612446505331031324846545923401844343169300705606266278676709127211715425825025655565448154345378266470478637301969036661499616061574917507081219963522862693277055048689828912272263639496796088569103323269381572295841018312276523016591684801854619742933973721601030618813563677778490437235773211299849837680728009079736789490421477227726251777183297776497978211647397825168906627882115335485119668268291227754143794400154664532531564843879375622632192331488340300571154132829112359211335205915430370901956232048052824091295264753255864742721762275673024303993604482508275964230709153177891545715314340929542122435285186671876148525810278320789402422840839391659084585214433083670113035990124495694281107757294189049517103938136112351718635733074458276500208175655425248131440015683784897560386417852376521896719040513340109201654843880089871802331021088778295139464956340299166576902445688083218849713514565464191509856989897756273091318799239802107511978769572446596458143241688038909625916969005031530777052867805927605574890866845502091707388556479725992050509786979242711234334754006100311003917779846341107478731311985853866808199483029368414331196206019542585811267482438182625320108284633495949797000699890406598305266734613615632121357746212366144701388698730095468173174061637282583624745378524349038506320445004245377622521364610568065222507757596889320576963915822781443042846445593016119165391588175059671183232451242419825615339909340779367933198674021458871337314686306234941259004316922030622157418468728842357841189320319081168563240085982552671560812193465301705951707972244224467056422409559931108738393493298913195645636383530983738739029165334431099201968936930063182445113754532340625076488263992836290871679261527931784824913426467412797565244143234931924235916977468663636861791619424057030235543423272695693505431327837818959673349630253129384602494221716588190331724216237281110075608352722428196068808866023192909645076857877075236732636160219539773534419014894004730257355404700457631743838271925297027606826786935189364580875633002412143538008323181795599861895864701225488817446591655292888932383573952406054579549884698385695642021728115606295093354102174494941150095076008541455500073634609159356241224586796062475989748439011043546155120650930937011513708291229863235974141819220653411289178350292704659525149897315185140985461808743359420838950929031760386691093129906024153424935573930798040771193110309785100128989211515576767233771122427601807734696049485016818558383076628665720386974736023825138885465065264901338373803788409898455929312681694914696777479780950945008274589465960827517743660661733505813562426314722520757898248817350465952863145204685982890004698682210585085393990634771559240574176064835860950816898296535082487470294731535874428401663414435300022469808927651544051532953480957337432780084905697981570049697385940742104195904760346679230144938119495736386682696512849886825796410468676533032473923433735763689038305471446515413791505113924090946029361163284223836109015267859980938416404605712334153164705074924089488090218167785146929160309476861149794581481144354098960129121358180259237109175991284734687053340486577343202981731212220180733208619467841551373087755841536469994589413800272294998936148920946058916625546587101951018859022092708398322268565115721150176354980614689905162189223897974239445185621754489791194140518355980262329984216215171580064088439033213922450991175301478122079719845890806097023579338965931532828452192188116584304602760818182591302846211083494520102191399336951777526257722925944311109741820562629381093424029816147087136136824121496843643969411961500176622234008064516678375331366022480335124245958768763431696917917142520422893015059662364671835194127328425472244262750160839224642260109445709448667863000064736578678092616894853247094175397576247438327203848073322948702763562209624385742173732904949379632540631038771168723983291071696569602941284154300927524303116172624170406833896580801472241393511470519919943098128089435871297194997787669687808449283054060213971158654438433916943042128916401114346535045610075775729982552458713514480386858831344829181187256384861918202243903429144011777531501027042819558135150729590140082112194010585367038024689927067916612185915853187430117088893283463903882631362943040084351733627788417606894583679599995073750077809457658614743886728502959772269189618337426362867559013682509912520973722805442235461704993714239374256243343155641364291067823068272702955954868314579234125670363324384081304448064028380853630761441066429377472122242505924888923444295814402073328953548427706583607778261312663693566133770144469096546014138052276118356331409033851854704644886146124459372830602114799799284662159965130121077600607775300446121444813688281355842622630876752481687557965376734761175020662236402178099092639071143101635003551465278268808572585089629652425699048708873232527047472135087095474244529332168961131966465013397155288512929453911592626388049128011457578553890282616822482641752591055435221882377981882491817117901727938028463707510682499554249984144064338178554234025587146384999223383709526203232745393742277665954705638606089477558794091809622028079649897791592428823182702264775408386448067050689228144786068720342265466580988078407404965341190041563487416765086736003225453267519706620094608713295700470616581599434981115311803904149388926128359327678959845764735207917728422806409175000206722040993719679067492312344203998330643807011082201215691575835613513272680870892223634959500371679993051559217472436147222842529253236934260026780577110109579382312856234401094797581116261010181829970655539853655934845989530719094895858069925424047342079298413283592964408460485222643797853481367825953561000166344170409141873898824089539568865694629555661123302589620897847599185143835041635270622328051994508738053548389587539992790703064399441886330618005258898246199084805037253854737657010474294544658296735295966967798216523716225170039516164842686271546459552950617324454332794931619160231167282131542111609394176529391436221357284765536143862531762038189090005001634034736399036813302281843479028638996195566192818354426491528946827357659887006170743936212041446627208387568799967217317569517283699295938478940055095704598379526456373289829676308051064593564638325197590179614611058333923518218111630185735262870869310858366696910460544311792816109904254781708204073870563344093099912215775086493283953604475407544768482271731657852966466010802531883370729322010146572152937991522245913147323153481045950883269778709436491361536710043983292201995590919362363891378420965191324638669680094873418983871906398248231837681730427766334233573897893945340513181340207101822062007220299578434448059502120031269550488789364760708208237588830348190352628296011771734413335392536259666530656166489823459138963599071979156630938875261641597470294831485716273897927313017403713002082972352241362447145482779323484817683972235356080852971725872252255663218355715242514265880824616177706633441633491190677325213056210483422348993545486752428089376675839418927190534276379678983091770553010996128102094548703482218387697909198985521415983085289608058975795331517409289771308064423970986118891957265273898467956352498561269339081444004200988609853122931587385082816718259227739789393030529228483464691895381503455154799916591830142223196782789026511236111149612835145379035950282400334206638130514068744527233619779125178487656123932683350228933620209594814669902079131719742505967344079125855855852528881984622244486582393519126973473155203792895565516248559852967211060532953541452884141674122405838142870553099761894192685547099573005478937571104402841048915234713547985879699426450339653005285245479392804769911747515759333610598802404028329719423603076962216487453732879578040344639736466729591431165089737129419839662796892714421753343069345017663029235527350895940442068263451859935881840084361741677943115577053168377273487236067918064634966464235859020390918118086764759999810572619062655005855556719256365921667720553601699126697716796773198730741605966112606917607265084747941022106951172300099973764202233698336481666755045432065449815107429962859340153226639171096608736955769431660343840119368714279606529287380325139270133489159790753482158150376344492796039414236472308699333990460292667934714466362083136546759938394336487229539970913110957075726156104715345715046343804650765347514301753092436437300753283795453407806604982390997344367109685775974739274048792974009643679731193027173314587122818127362224515528820785902707511001703364968030864491061765449283996823537490560830938832962425678526128162127932190500874957420119296659077049224424300800221863745586740803256728818423073152351599357494786644264820292026738286551793662784098347574359391907611273756253842217717052924839595082445287566442174562116551025717009522126462913037567338731327520439328423557742835178033326266502554476607961173309591254969057397291209643815103380410255798327793079383236496264504131651291618459077181536644918907059771494273398594248796282184707957146631675076254456020494654888181596118720096136127210757840577861486060034839729012790131151541519253755138829640453903851103166754392209414591312932871422642421909502149442959206373677042846814697106268553931219676629896245404709073043612193708572649007906343665862653556906062834965938416485372875963468795117286929026848284738038612283169739226864739839263920694082398386107983026221132028976411952721421666395629013268458923893413143642318586559550295023612384706796096044762553990171801200081295800632159120600419940966356406866465490244885436107654681157370613597178235407614016874169939657635708758835942081705595011040661801358650845625134741887726877525144192433722130652197433207934188803381442086412062339907500695296126347810027091745894475747725764169196203469953152548719743671060793237172754649269462283507433673123476085802816224088342881278353104198086832985897590757978519437090352506054037497676580523928419987282936690778261745132111623928964087410763278547009216943112331657138310502843169112950069714955509281675266682321270700057684385085959393710308428556480666139087954183312715992275908751158279756600266400654520122041319289067579708555964495416121453773862499893777353306230200055931184708414510647283558793872383095170953143225261710627705957441868604834009195838499099918909211552512982812312721035109695050365397365426355285342359036846367956884159781297712059609800116268771334338369347292812184924980587766473559462562097562782757426363538877163790050677677216294326259543389034624477438210065200572213793475094528878760571382449221029516397918043049972058597661490357050795949880985812512494373377991878411914574448415600209098980655286289561667119369677754007207380420638188079606010800244355689243981054815408739536671317166400880147819403058694445669676686006422413550430519968694370292883659289490560950559022519186418927714035642137587246948091152295151658538803402368943166283346324670519880358099687766283341381316133195827578752087216623456534740392776946702040450994895807832040252282660828051276051958915630937044891731383890673136136795786176748911990473915414766081552945478652520926779132659986664612360754152651003125037214594404179029780173413387532062136415965865702023252431791035977285539232128512650892881629627201899370339780476800064668802027164196032942562400485343707776286875174754882071140341266067061291285126413264065048192635872087910875666120258982738630104389769616365071253318926169470579346328161629879542333040685373061672504341919967996953989261167717873648120570744906377371068822500905539614983697622977177507237255127901097692876179146447638192542991943700254167322719475417350581229988533353316658882248055155092833332733406963323146040758234195170178862638329574496901937376384615682836769637133566052401146956788091814376831440441604723084955778622222424113936111790688867329345267007551733894035548726666404513001213814185785239279320654364916025453833607593524486135679767895294609512250531430145273402488834662617616830535736642988448184151879508629634328779358053263094624278118324049407989003688114795353559966764862316605452582376405337565614287057370480499436112831906355965936532558767707713854550561255789008408105696216982204234109486336140719167228386271904318587720872678476662785878992798359355624886407375735948990647318457469040950950957451264942309766083928169830552564582231512963678344865178914711447176697526887753769257448852044460656980892435040308537682583971605290195689445396182466764063958748873366988752397876705125709953962626643554721498988241201743931325964886211531838005075799493864154061125870651190325489911245493476292732936256761867709412049068745041056556190168262220128897604524149158764113153155014389913811379716684891531319704406848958377699319416995603781785921816520137805488315698654072120663677316003341877866075118481682686986292911926889713596733450410946203723721034282667797311200480997748734010027104940248158429271874799953798903037861576191975477819106112589055834114216804074731970607961950842169568767602476988334262562985348865300896284086369024183052305018083115173907004588055459298575505787493456466847660718278682328257600462481441255311871817088802971093048120297042461930086006018664710562177852366620723299654539442793575075170194706859361712807262076921841474426651216844973628207480320027046810436151870830847148896661200233336370829856527500740640116180880506180339602425963745054279647283145024316677684243473820997709247791007030650419547347407669641833958373862320705295874328741753281071402708674294984372001878468255871970907656440173404266855109813939734500452227100002731287462799376394281417415988975322869704883280553989947270984030567640605660372946573966128463182297138737883169242674136125732438417795068829868092587930200808427014675508486866520391634755756221932247899104561115205090307293391312612542604256743719388558863998401232586333563228948934548278382960006678822930747260323698041866031837853808815163697066808743590351630253306942075747682218444775310661367924157021722527540781868842109484669486345950435333213973218078624406439883425583843018233638350650431364788564354396334864702023253958868752112042055279201390507879883490177150700812537877739831338864633441451300230495477327216272207248515345972101868442036966657957936434012104512304371398018697010326999819283842831791549408079832528528222940710744747227087009083604353759347468215286544309597169836486981950464143701784365705331844809514427240433242169332574814971030740514594211106706824577867919447724464544115049474389937573556409887419271713468489561154851690477040882155502350552481429813056362199034331754767273734491720864750627437671072732899108173465867343988273463171108548759149964192468817208582672608419937760409241025742508903124044877601124566212588346752960806739819182736966824961187476323275295602358760393608295783957035134732803974044731539425848052255369095575365017971523104627821532053844596562169868774971431679099051132959273908162445821632416398969406849338774418867869296238333969295673757428537329737622610574090941616234460066293134675343408159562775767384757495023041835383174486643486592839667557422898031479300022862448571778234339718069196592319282108609913691697782210658217557385397036968269095530226151679524334520384087203695760528940248513620215177019973306515448020380403733395471721707346128875740348834121044975720918819625784259704780130150036287385528761681883395308975129121844227772092582760885507109826846056496551918499152261429180287032904645957386036365735217339454255280382791160276344597846302763232085606478360015100625940676311457255954284105595059640356270735026748861951018625053228051661389092229945688845190395012096039379563858420293956766310457358858586186257577122725910041109058572775109196356611331395543443352941564791640002082984353245042475598732666381788450199116646234229293031536294746162760177041753174620684859000827203228356488261345040237779863051609030964085469070601280710477764097969003519818507572757416274202423511867984529480101093840567389237470418301728941151520816539306156907556295408988393570966398806495033246458617755552603165614099455819335427268811612726444768952838676354143407433077372799950968725006944800394335412171025755139499448099231510408307307317028727572107318318929026041064670959804431329969342829509365736881843245037882289408460270955323596091072540721788270812250721467158999415063933915269699985375416296673457015407667713767718913203099184845024904195167735043028784085748828308090970615170115421671412918977819748156488893183178309710722593060404131158222553490010881998263521861990694099110803350020686182156615791907913628407148028966248356430394871107982159038735062722197533292829395170011881388352002793940179270100559798844200876115003073861361368297948368928516937761891850156926601374906526502220163582899674812102350146971744384283398370161825394916039773144174658496985148285228680096230630803399788451414590395860532953138890133740195904865245847894613298259284788537304952792822501132179477578049330350216777897648185019268507280167444471900138522620102446468699464899960837344155435807853813640864521758708163199000708232035369118295872633789422743238926561014603164996991938372108051907039548349155119832041008529572034206810391290297075336355503768517887516518389613143533685869991609586984082768713121811151259941307415290808637523353866211539506232210105287173256290954608333542957453093900117285705807336696472993037344687054500004321796505850191873468753201705768234896747383957282630158705533939860940697951772946293962534493967614879333073193866461126211053298921776946489830040581872695695474746125677091760278986534023687646585823307544170442533130018823284672786727572032086173415353881438513896243650666601717094260510907096494757062352903242190501994858410100096265528931559710244890847152228124654020692643026633666205916679792032336893598596083832657743274077246689637441842900389813970965694889692519742058235906475171864110733257256058552480012132166360687058895474292704099213439816549132578935716977651256860339057014157910433396118425050696065804993590219320881250436794912459675096042091081758805102439392719066696611711457869849472239974510598229997394804582232269801446375154752960889605860098812221272610046192719238357119964281396645309252703667536310427581665100976148779476559898525973515471494065987957603407426243073825905554926367568018574339654155071525298234638172572680401554457224808930633636721475136716035785715266030748602469677956870432154058160418304098753892584118235275450054567191259295190579855504189171780719620550517177233846513044248893927796441712875956443500933734859959518673754859434081555841195672934122239278384921686838522128835511833980885501702433277591571660740362069481775612504546163714230387282009584995675664977463207764151923276308897794433752338431025184597364848066117550130401729033261559709290259992012546061915329502114155353783708781403546449009191961827813229368658824735263877673845358300227642514311890060043939629023725622890007243034761087551255198305266919974778605064537493801917307150737622232837945489013869432965933756072910057555538199621269869255161416593879991310065876540017473003098579712293230942762854701197503603885084899746859838074834073363056975753557270286594703065053928166776301815607221102690345173349499412898557110144950138594563548690758196423600778892758045462380016276967537571544561483859717825086758885092427747531072722661934091910182649482817677507787499974348112091847497902259496303876074920396193741825076818617838913886121589846060281858459227565183784554026318347579556508223514155695364053718552342650393750712361968267952842127839957329832776271326097932973609211894224099050312649908127531306087070029215712585435008497211022562665961039053035563836412255580326598261438411833279710263854989973647322516644468209735644180926163016534683413764636885313247699691659382566319266089607116690159654926600828445910492793068516163889737656377414727871360553126906029506995801232681447675777461057076505557651012810730951449271220512541863708261410285573373916083124848724487705644355830330058343517215442404250312834192264548918186566409768111418393877288506212295520481765194997523055394035813442377235949243971507423755265440546984751694972468103551125898138686618020320373995837504839905716789244398913388088818363398701491945911845261340678573091210123629317915579316391767257355675777113640488215907404846401072876272534149910577365858318316016189975363914089474400545124341311019605556103106564618165862512803364432370133808570534011862589326934003685304166525672015037275555206408685614027024347370497003160886398373993610122690084054266756050581187638626880698613527709495506512847229459090535045233325861225136667628345602058454987259646338475773788356079736011138634540177031419149425933084121805234123883562930435967104093267128244183710830255451091185771831531731036570087968013966266302961196396311290307652921643090881017172616686633913539047477055812734004340572391100722714643812568124712070398816397239919654755271647616153499933285115620444071057551033078479409138229479713952989421323630773715504305285492816841057815988981024622767572293089657266916128665756203746106916623022138485570520716300988410470766738109098679156482441575246863874210735579131521048556736144761827379011396883451027723006666188102091028227933055454368971121422507080190584105765714409269972814197126579414470386491217752680892030803163062779839115483304285328563083732002312797989526312753593176768554790426039125012250042367808283568988111366584698151969377867745534410402558951711051760590060599445515254901815769511860395281692136761008258877366081253530687180431621010892592110806054543926348652460534728237968402218834254044866950608142305547415630629886475717016000011053416041967475914987159723334378151220431748656090846019889863961210194041608278208837604551199987177496069810689409720057786944711800122332488389275143881413164628016979839405749138875705870504164696640176315585080464146858436132719868805164285237268168125800586950820336216220127311926203038920212352987983147639106877067470182693796819019854341021857600030167474875650164982069655476008188834786107595082576130009985017223031242902757231420783063606865451549348566173790796849548005851973428375339317557514299472398214200922305974599803295776212154856197613692585253029671463227971205349438861951071107545913229657665506055317739017773242548947910766380312075732804638780095826694974832084728229848078116578597083336845215195154937974798285599882651843259549618951608585837233835714764832683708103946797076318507317437737011083140026725128484829376284845155008009702828500250712933083175249053430029227383948337066824999923082179798859639871423709011319601600169880728996223198946404105454029875860903729803092890366081886977947634400046623758116864115009370447158077420912342150567006514817239567782554897116495168491553034696913591428542025652199116822068067239249398924174356930173275631445750319181999770971771837034587176959320190669270662783562702252203039482473455013092556444245292586742409169140429256505773391036815586322682254191615357801433619976124582774323050706411855774196473020680194891997131546566883166508295309003122479501170142150143758770572399203074107204480649983971329566760630388081968446280136150464653333306020326181484833374742021057748172046365938519527154451991185320176653187779696577575787028208356243840433704398138214795158807699954890753090477066835832895427157043002973410459468633658624918707743064802996238538060932738741923583004160997406487787618742421294507283056878736719672090844113440149710559322322531206816994797457337986618187608333143551248862365793289837107233444043754260270753953292756726084410963149457368644454073237235476020756215047494396862976091854406796466403050568224644142737394746777410032187940994755091297275416941204169960919685712173462384999472028987086419233724612947942533032276927211123516061700396281381352300541091644789695996784998494437680165892795971233985123812837709701061082543387028416569325435625828299182594712402679148317640431042899674871913349823363024490999015199238258274747534586935058694932949099145709649185770565977820149301883221511614659787980997256487000745803419921404266592561788392306463291663748048449872014126953547326087266608615055292682168785606841164904594168081523827626048002790503654919476129473889903386590673864211491749258702054920319688327891735264300215670419425950002473998173783042010576010335619437719545683667393757428266573921863665110370730911985742612966246814247290531870412301677952268932073626816870417464022352819041573502702095147737841686200554407693879638290965063546386316125234388239052600122509570998861455381962465710453447779405226350361296643202785355649036724805890539040317804306112211467583615923583106230823042227054709784556212235147001720181197047629376662528400548994898119634240177289648793860798350108906183332816622863437503500779959311316647381065306886938850137872073799966908943261006561958086905603150983650881000215734417976966352583184988149720538639263377386133383326926056093552532617833799234530990585883346400000294869515846448880473934496382988216242083120389066866720740267452273048949945745867236243379683944445343091242607559583674857510724833583708044041458340569506682109176355801331381949242511627265230710635316889492654513218200079635609469440156617498521140053591739142601332203679563129281789478388609637974143636751988572291650383958739882476632323829140465215527127931117951501771634550408166464860869794542580458055839251987523207067334486545975833339884193216116689517914841032022059108098520924321229810471982299202642287350143301755277625228999455012553289113476713043064961892423438584929502482374606060067884695138939620154059692625762113041542415419218978959190384070309995023416241495910977123749146140675162102631010881908833445077679690030822829499550399580674866171773613085724099232849304558345723587243883963580586487775608409621664304711669863831720808321720559410985119903821525216011213346091044090682459032903200061941645699248704930108149543982656901829127471031166902776817439722506585728866443345638699003089517131197466741789169076201647239126606652353127535154303085645420412351937307024287249506951423801912851355622347395196706666949740130132826284596865470466209583294958439248963608514804471452073708374513658580052143315599045241934476711291472121977645168997745792597286103452035028755996828301111133762238934565278439629444548940493182017946118018246969903878740357584978052036765353981716713590274841747011351918087452793007006404678620359203826755679487248188695301634780911552205552023719488049207875850619076558081418852343466652304636921819188862976371764303250692117106249809789224889459947095206899700038737334306826799149636481675476177674175654623888457432869653195468913232969596913120139846291623094406237193986613525845894005176814006211913399321590661889079328945378650701640956726374466738682288792247855683234573949999703736613830350639336216576508193308252320573693617551276160334236830198222091934929726474393566841539422711799497649549720666268284463441964104668419690706351175163449564080008145245491944357286576407796508993935435042629017594631904690075986172657848581459055052959325015966006193985666717072813197995023343880941609816428983400332564953708756625787707041606777943518944471179192603683667731572809249248844311082440637397271786343628880177900078811637587714918778293796761484522803216861764171594916718132186964141839005331103494243452820547848938429748332451327799691927320133109783097703969311828879460395001458506537260046947831969789254576989336963219115283818153855821719585165828529119247968360850087597233040736721960869899996448192318342345659900809165207166170799824738651595364749537627039787711380040298965035642511982099319192118694573445164777570002254527505538404632134965693792968904633837261112686395127393993014132198527405067113602875985878487393266829985754519989181082856484416842442887071421325106067015375185404617358829776711214695201083621270615036539750784306553118611022932044869097860243785394103836166381179417470650870737587316585633316230815638483077402080477929534230732865742149098333021042262739450338773884007189305385893049667914493344997895860051997796298168840484501600138664347830039018481312735639382386257361595992985786640272593676596021521640199267372867906417997290655397874178878240285308274782425608505909352704238927678097073102892665332208719981206735763329198450670795017367352684949346860175982040385009217276460249635014519851073392281128993866529179535287249505143287250618367670244319904179612442338048725045971564379364676323212120310143150615475045776619491777002028138530319574193919606377862724319544120973772528860245933161917459101707784254815390474478062983345487852900695139132791787179023375220016182562576701858927027310436872438929983297907378895569508556289079094410398102619259251437474439953260601038236959270701011862359738040777430566439946805198408718147875466940083156876492635462713746300819374121830613619205178233128771658191785206413340591336943536012514504874591462059919899260465196236804667365965272957300355877944878443805137400466894026786745765694564096899672378542719285204238539616270919247108470221033216009375118945517039551049182753748697001862377963960611350571608910091012622705276730124038700379788685171452341542658424374389748306621888929766556667685883715659955152575873889658882147478236083984429365589710896200882647294498529592265104483258370143528764976429517008927884408804235701980713313063575801735675557901840709271022367642675334157509384827576791113201289791692966887923160740751459832504109041718657289495807722213740081497269194056238894107105668457296099521875533147755678481169116156497797074473168797650881447188404042051593608130247719977248239731428216649103246560758662956063618189835236008341772952620300256562174131899160327605441809020969573445801617293314175940479694685886591145594326772998425616063775934982429758798983094907957206596409264069337550682072643720323739313313382023102506386603198209602754417909815876860972844253418315480746065320470213179135485125313811585436725291947868659795976178874542133007658659319629710987224480119158388086965069854046303279588246385533024884539472539094542725757371916646224252741789050483562782954001364198173821897445751145357141592718057941839874755615949920683718944056048269986348261487440601903523697282554717361106923610994044694814312142543831239576273886293021039791464432616149355920892683944211352128167725804652643892720664582028560700375630317452275115749816875243022444546374799418654492492717457956495173499365586312938320404907253010103077236218264541455669532510521765169986061527786439743149663634320870200062919737609089561525143586885159388969583388145102996610029082010451573792778598963218602260648409873784245750655712242723839591003604937261065622110420240378268985968279710530264338622848437515901943411917231647035839846809677878388176559814914179009051265511742055707154350424852323776593018331825731650631805630384636136927757862220512630534451325504124179454805702621791491933945303029115386031311392326791156603811375189081362977168600345112653886941799351978592941692927135064329870440728584007433045069231828521477868410441263532132306791894933653677258184282506281153906911137551797757549473322906084234956832771657904894323499688822331708488101641006478948269845725698704981079543056867525282753948308154564341974082574803133068632004449622210062822442833460262678512580922477552381589902744883077529231256249867908766263335356182717989326027096491841283877736161808946488684769301148718541868631843864605870839579224270754411977610825998107424012552060578418769752291762816576743518474806236214636056513761496582292344771677648912054784684682830524341142444276019387392175295186232661700677171403258565796746460441098627612333859096021856151155911980566184861995112386211951132898335590654346732611336275011559232971045108183186157231691425059462654323454169500366526992720890360939397150008185080537701285244226706885483259930931441971934903621519819407458019049518743153091175307613093386195151216181340151717707780817094930927795119308235835586280638905316491708234065786258188842040549261352053105311148694578486728516172651672720695547892965547594733861654790110469421980379053868882148513786197904363147677146862054312772196671997397032587953792519835618272164697571098751303590879389681274659861470539849774132747609539631411206980379616483750926483257397469156960934323954024425167713588516301809536022172420959442786395679594117367572693449808081336119902803121709401892687895423868581203279597101534054451021705443256539955316493983005387310206051275650207524765263633578160000432806152767051098729957978578107798024627164386392681147902184617098676899729822174328148044013263053392178138393268175763434993267508617032480284679013902031806436945919770571119619897923967701507602735596795603328164227541457330517575154918861631572246646016209592382665782190869523214661997077216129961765763303967619013846390513299938292518970064701597528246606117785779444375736547373367892416489926453994704428363641372505957148373070195571285405061721897440021512543150414412782076672239240848470835466467800716084931457926335740565327693053047109342202122560288615783913232086935817511634776070377949147185815880733683624020426937330295115813974892356090315509404906342758521207387793727361601462077488128516160601336561203569445862854722601616046240197484895694558516936853211152817575548220714230536104531946757397508741386186546748439247696290546037069394333568110510536293333277967519824501898182189178839822318324547840181757487294291559065970368872844323061783008670731937323815954430142397197381142358670985872490072839030086904583583133284812104397130250514518528279221032912337473502651554999429381756323413382604607544103462356055823196596461456205410132403896636330238868616278559547759301825954590691667732719124744221213952643936692771543101222637798330305511485706846072924721458370685358301598657583314616880865530919298480405632924841480151979645175245647104175240594864799375235078826062000886513135497866774818666191059746186224870567029685969502948652930310040072042045278046163364557280328343805691526153022065574217283828729753532687922805466277697930872020281581567313606607278090933446841514281156951380318762709866337682231234517311379721666156841992049641085284653969458691419760925263802265311870493925834716857099502474896285595143015684196388421762217898489045754108833955903226199380691189942295523213701191377686331292467758984077434376742438351841643127364597768515206104758079923772791161064022063836077979113952766117228334009200796918652541979665810296249226332967610143314555995660224928505010119394699795741944146388964567999429757885165808876118090791620110277186123740665361680831955126384974431340952037442899718095003691374381203555619474019097579547260873277614750621736174733835147555040368316533475424395327286627256906288291147699974931790908395053481279745760346983599850143165542232242868702306304840165267002045231323160915518074950379202319669333692388885088938188975560477976086619468722396704292354301257270265409919980790492553321621233664028722217826282060301699737815481839798849590976550360146821117182831835990530632996613945119484318129891902784249663946806820900059170019880493028049408019522463898428023253925570819562709931800414478770816584327227132523075060724439751803896197282333195357380813075859891360849630912043032388513901588831001921733389241893563768872867128586978487177453725024809716312386861529258219491287798755219582107489584672982516007825333308329152373611975299341862950307621151160444189628992115233000420940697677424366026625583952238132528051356351013236045221214534641224763467506565919629612649651818617879844863981335785162888178864184788687321398714067558230138208340058661012721929803259830192590401567706754508666831191704766335335784040741834417895382977444942669775348048959175945230564202420212865581742785834162807300005205762031016275669436244712586651550421102842821663142710568819874129291915372682124162335422888820683535380548559203218172936607988894369082001371016350402864137892226589836884108766465656480253026218208217163388919346549166393174161495387399475041379597556462028918741487359699743051167833112974858828528350067875470118552363195360092332157132142468549817145459537217060191442556982755876852530099526307927721812399023915307629329733730099920182369628185682048992683377835027032559654885179589374739188020314526270523386432746481369667038285677820365008910799492526018220103587522834084840646732148828851719667300364784516024645297063125738423193596389412976544757701567137341062326091743991223825172096927599700611823268853365436025868566790917763239089582493918353308650734535680539191974898764715608126351460890453207395113246916511798644316762904689987914052907861507241411404482384092653395967719947017932216874066368218541985834116821651288414155694473554214491420287912731504858121148919280547537155552567138009722273199584633848262549596152092136890752559566098592315198426239005685945282735593182590182428040098282345186501663109242700975522906378728441880856225587574259459263819270211140102744508608756403176498171409537551150370753101967453472033015304484044374047279450728135592030431456964917543802009405344849075346827646377605852276403747079452101302672965599758503340676791013695832549036293973750436143502019025983424708984604019274801230112809454636196511357296471181663578505587241918124935783649539482342149005565016831718423930964494950884029559585500332907650052444121604632577867040804792995430363669415112554110653823994887566331616018407928911221031733721780085245668684439594991841968689560559729264833896255664937653415632319095041757596592143515638232665264112003940485851102478364797260491498472839079090819198292637839974368211113265200755866077430629741732810928904261738485199023691290196314050425459274777225091133586772695791004949055901729112239353398505337049033114465403165837358582942596336188598054345580168300385984726290959580671628357594484329926316002661587863604609783405191542776966467703946467534988926968584992766212183180144094202553128263029393656276159333081003503534834930945887458672900034819430143327393422259023413357852762753297035786752468715521916954299278186779670753269387587307258561336077225842060978292895028395052871029472730841774599905096408461688906155679163482732135622060474262580619202415784644715435905660665685784028779195497996651249666870063619643148239337763706481983312867169622237253526194795391883686893787585539487117524287250958275858155072849235336617869787769755113655166724054178930424551548274000718455824575275991155099758803304287222484770200672385791964364349683340408668366409896846376006017319403665864274766841552241116431575455568723247250842891618506237210061798700098484166775017829624255052691307844094858030951121724215415779203829348948774466353565045912136509124062267272527655351739296103505688757791131448102006882629730850888778518182172535603618972045250657413859218760890169879202765670016537735441080433080217676987779087517473057657558292087331283673226870544710426049593430886424287819604008673193237557706889805043303720828029976464095568261006916429358316091944808476345946827447340065945599958205234675652814934825875523507418830642494674441884188968588809373774882011058960627511503140822454218399406661813365161518857200577722622077411552688019415244720736505639445016608967208078782843154832412972021347136443090532046893811894685189304764721841710907297364567037211485737006065145344984343801784335866104466104535640432655310452340457613376568020273531527404298650921140910166085862944312084265489480539456063126537627002707821716693922062910613338367049483217115209056285181643195803982803578304357549720268073665729774022510372449563078845358002556647274104768935293819431728930840074374754835763375295400792130465811716651595725925504679954823982227571110584692938976016386397383101348142674407719089051654082601517189275155032399333388164605281715703073626687188931646620394400280981679298454120623850737740566816555226351569506656262220631556611222178994425299256141496980845860838249200624623694941291090474824550255190989359418883441505642723890213163207617838055363392125393669490544787763349229586766321790149481651592089306241699490970964200349549098455360093501615476868131131460913392039010792319465384696436639379800450718530251588851043071058739102314308990666250067621439339741106174710098096666535213210919982527183950596063374529242958273848188296688221907745416710006862652787394993150535909080023914891272296339280388448962705346202422408986583632857028918651394523843869689973913643323073616079553104806913710487924130824163363163217866925313763496015177316772909375036146997509973480554051107798866125140297057359349905718279748711526571349452349086272128232989980205548879416057997970535000885273777731041244532924730593665737600590876210073742861359119441012514553920939583075456325893305262947765084053114807236836628397147512195529184351155739377946060124458281423083254349702550290839791094425532707092958212498688970773467366327087912562778271509313961975938382228644415279904958682928091882228324123578397008822862579347744002643436086127972795121780293592026095571340999364764715595346145897573369830442936170613203449083216675652803324830687888500694708727196239409866006229891162444218559571358700305583266534283899986199155356811059036008912091840929104529651502100456459070574741166887549396458697923155591379249470549020934741649501493446789790426430857494121715630004201513422102867450050891209598616246372527009705785751501721007649097192852155024886945578582111075968394985265058451074559948950461052746586964506965264986526876925119298999494240230652770783938495774800021853183198546619218456714036031526326844772372451050259394208636082939298308710638216375081738258044234956009282180417530276710397144807714033302194751660628709768871110943688170088632172954174719818798961304509980485354745375652817380173485455471596865179332804625077196050364828742050157383795661778636318452206591553797902842288675163728624878313629706510656692863268555929761999706000656493716185411245253409192902475457535185608781882815959951004364409651077991968638681243228494208736558031037911995432718555610131002740759272673162278316286878775214137699504725548971179632599101849860325192915980794900614993580709566298245355422453719601752756396797496206989444152428293292748937954249052369795673036386583500097995583288748356033400383122750933123251773026958679312512097149989430632662586190988130219813961282442597381514288843109976483422190935222903971831564765725142737192057529340446058782068234952892099086259426468377577221998633181697299104095014673982255960548962345117880573706330191324550870458732293480931104657657107416529594884240986892641871580419245233238278689468311513197655872261776151478609633053308253896054314831045395995497970448921532153342895942734124189600225456032858228644574370786338421280000192469446649342074941542742995258189606929201893097101609690278988670026772458280431184349580537958113898998853882799889648064522620167092175198360123218590148693593369181357378095291886062506970742731283092829839885915197760954899459497657699806636400523015428554801611556281520954820319185109025332419944969981404893317837847796801620767501130982918488166367342907015072663394620140194918741390318597154096034395049064833955555272427008189236137083174508752518729925104580558348091242722586556551566538070216025373990559145727723925995454835014210800473844355751595813110476000261472795186018260983923861714514467550763440479034379539459540358790004207780401461219423849355347866454857278356414616815996029676606875308773401445423415942136953817746776049668483479290793654669106335556280324623528341199666744522911477220228234862599448513120218161965515617048973384418223960924114079704518631227714459411707360137665133332171922373744826565689569254643675166434658764997385330772392122198149453356153389953976989453072957543050208963332990092794209186468974428070060232527453290680539859538223035296611215384553598322951643014879559732153656393826668878463028305716606823537730204826829599111997682797346592490692396350202308176170800404417108227354545064908365822707939629780233969592407358335663055972723879861502891785140449695649775248103378662054560700980285809719775570284424771388304335655655812563597593670448927093740903076114723366946419122003960668703915075048504570457338145576063368480863947368004389930751230199093544029434379610859477984996615833120787351687592601709637800166988862898444910876418161718334610744097227020229792958284732237273854066661824638068953092625354223533349696586184766876021154600484111889793463498694428882863274156454094800891455301888417237198075400596189875186944485291141700830395438136238456323941754926799422911549498362042639107554247822139398587895501114967333355019350595062831362690217045812125294912338764707396761621075812558328500617041931504516277191504466225845206686962216736018816408384178004756076621880219954763295746375131322188222595208349811933684774671946122660518124542513450922469846714792004210500494916725371491672306377257837938843926254656821884062057452897157154523481486015055074573077148366644087942604421781597866630396344616127112318452175603358469392994308203359231940465854449383374939482815252181351393983663435162584280617647917600235131978297548368268538708581613037405521507552545791455639228495273045234271734668825377933596114756637773412036165158730921016717003282485225210184882917340567536912860621134626104473576167642468536422329363896084575950352687944371730284184574167327312921576576704098678707860819390648348330860077223670996559897807691082885695723034606664885342266398938273986196922748856654393441890223450627694636142973218329025684916420371820278869830871550344327940730746646239763122973860591893677962305659951049715569680924485681606412008037820243315221356922198627931742492201057137827047665318360934921727329734930111744898149728661203202220242811140887866267536495699899608000198439582550879183984705933740601715744405237388026753494654714767674599633767414982652312855610067654840299728957451061408581542676167806749562992353653274656832326916748144674139576243597164932979743642892497985992854388311956541340835928767878268368392305764583128159874485467580354617328335033089995990342758678263522878520319155535314766934881412146090615106781142518189423688393657941444126432357042374753546754773859710069159355762182992235341270691084990182838674933265273242688104538669991840078186965884846093033319185759888405055033141260224432202129651361480530227003222703337016824099877434022110868371820721060261657883155926955476967731509851649060076260299771459863346083511630373433946430837048030769753802122730387214921059169794738393488160005572261111952650373169644322322273081804878905508505839381429881152269639738187867170903341970695158852060930611763260533869573753023298350617013971051791135407415124081367431315780708527297570645463359018354704407376074150590002952825501381197191670345943931291779209355659287176181739094331009741276262626540383285703436595156186482054736859919571474408165130638440318302751434217069963906308224155582300135699230132292010289189967915059860157698684378949143086904436052417476212920238029345878948998525938685294013297158478522323186452149258956158711848587844215103200471829532243341429777857159136928590507809239460394567405630138013705664958202854272095803748328034357648418673775288014859026397860085409353528048583345297254366576965552695158777270075227611873137992878177916474796878405499441850005333725948352452677194575261334005768527564159516739062347101045976615922130923776499920339597897994548176958731555516759025814102321559018961991087118219650975093064067729904074476875116469097103989445564219899550292881836403539470114584206594885457057413625037415604470132612646349999489449082252039255947927798331498204468538860308900609511268510303160010618786439125031645540685583344559990002948720270862475854226614731359299465935101307258408450233645581608845871734188978607656212906481543450583214893740271814794308134640558692391903849895176060816613761786178403308488121361614357492045917888520465972639753867649850490406810273008613156631342762041565909262259738986202209682304874110333120067884196901567904267218252865110249308524204841199139477761134424541883114039426329724823288104054898088725710225457906716349216914596663130504840043537111774527817385519045499801333399307422222534798295202130187523195617351136483264674078415128205626319739943810260135200614985356076080786781909835731211212332854913955955965508305039342524662002587444586477357537064947676810428576831781903145193546895446851044546122821197589592113708076384759469530421232385228753809604556222569893804012405876498621721703265482375462775085527494354442182962127373914887009644677674836663034256877530810232436999745470322954146929595709709501975045623267623814755679899080975043921256014318249080960327761529918061993493545700426389095552835485270562964262987273410784764401198834348318937676781477937321987574087808671728491335873969941274692779017052445467746840899568916995488552683681038332408288131044189604421453603941159115333394427647327808547993962623886884773479689807500575984723358215302229341289297140053225130908452388781114480409967337038696906659208433341775139177046280131078783941023420628400532742432444076869533435268413255949087903924195726904656591063006183771541446537913567011937013691614733282781298199872737001360325747114626018409623588438021768995098520256474594551668714970128340294700675344254612640062250586256329359434232384264876231889637902677829203679081368856252789797890817996741761112112666183916598938296388167885257459286499295639264038016834199697883656839211202401803806111396953994726543271921070513896203633803752266362251386143598916355193455345368965130744476125911091636287146241928983103172832998562306845916611562374377832229226339662832953713224788232457273403713107621863292031288436475339434288107563888141025122632952320699163650043455877394501273274074850513167895835655759206918735891100206820134768117435631675238201213198978915540873210817282199985271424270228011192353006946924900338555755054769690346155804463118330466702830642929901054607303040640130775342838247700222738892543047573256153631687537349448785921769292056447459575549244843128507363305213534543470000912349804899097204849334616941593395384779461306236433289552352114263470555437257551556264611869106789383164329251906077035187850118986756754158287742542150354537233777897152722527793996175709663055716236274275160068237578850473508762571543736122996743745140089515086274419362459516732926789273161461793855567266731469720930696512220658241494629598725528014572635652633982933743642333404006921912497027262082428260200053340732432928867827979496775939212231655835872840723786768153764479289017133678066447282465466458404587711602310284959941564772227379102139825848088160340135734622749864303830057860553520680407092888717953816314582716407031357283410354882476364227972768650316521637398693720521932993925967871802362437254858203543306703667555689582804252600055101312629303815764259644888465675586279321941584184296712135395301599334820019715206136666583658013503884298667383420796433799318321710535603154782274341652822389350846719911372726447326839177965764642396570375298361371264807845019696104144402275881957193748774022489322639787201921149748889665676189534084869935376106663164299891252320145534580995631291642392987848689538657268068373731735927282804790412473784187228581912845801087055258482895431219816828099236967169996270629757110301984957279745147770070199956595124091348856669395972372637879926032773402898463969247007074269518413431946071992159023815471272483734728594326339661735036825957112530046978449458703029932977766923032309602909042762078792239986889905189305174797542298785351329427967747864051317041095270112262195204649891075859633488116748161641644865436561268763933727785517921283839679042692383946787856046685488808923668731866016348536841396632241318489775784220062478675093813182741742702159806496007723449209763617982030912588908763263669853814800517050481798283924731947204810730434701989344481514946095948101724449754955389556361715248821143605278454691420233151469748784484919381603191054003371116845996091365779423697232152746180287198524399575743116888851369879808838045723228030004697522624646729932853394217982630164363271855844071761319920826340629015275830330672752144030949201863080007673938842071670803557455346628288834674899319245862441600699961042978272697459399943824194991686878693079122745100353663026489536448850248727366633953820638708425059076277434757204056747420618988377824161622028660047609158494744323975717745971680338974235794787948562053721614809710302678389292918437783906243020360439261918636575079010030604946479933919994750225055793432628631980911612274060691294884368215628375856639729540646770526280756639620547742765916360941788416826702067611233318558101991972295027241951751918399403798052819806084060767743932427479663488136346421604404098600291353363047921107680731148914292863614654489352523217380564210302215235585058951086966484584493430283353691096830500319174034521358839449620374948944617352227650518326840335846718223528625988606918985124607691847684798268967931672526369329161186472023736075655758156313155426987878194037729722725176768347687403366957297157522256181847894432373802652912295257979465306843471915551120907349737347686060562272421297555377452566520919746536919117342193287150156805795553923434580477930277676995783107633883412074709733114127464036339900804521777137430295430859265041667764263286013447857861319464980641068299317221134104179598501203780082948423131891201218197747890920126320698327699661584803049352234173804299290060633219544798682566983627707488937900200080551405587585865321788193388262783676344093437538401583430379498564493207151710020762179957863375263729867279121114776242156096932743138653452492710568823920419790544130495178870154495070583738010183375470456428693959132661811896664772749712775512796590266871034344069824495711900884903097705439479844917258316040306679792388161164799030184613692262301432341721159729833724209070197240284839332558485153246609475656949532561114764921206736449683263016828934999361896309535605418520634958512218568506022633135341773372018490525620057311444219957354853313118003650965468468666667622256135684088264064202122928352451601849091655558147541301236381622204296972669485345934428406141555499989268911231369891275928222822190135853500777153870529982422720177035688688020882317279325337956983126900496636808121310520379798673855733052047843855246995678295781758491281584369201958388546595370596669624009634401398728128665066867514493775519985165103827505219812138724937966924896864777804652863489495307969011079723249938941865668720803172532060500392288825744424985527567117885317287431377524725085702217746035919174658866161950801066335025319985031802152585493300208970317234515539541190800562072674101392432881824864764547728446935499232485255328215723381430959303480740549569410066334095240917072943816638713271398363016201549132479980630218480769715607377381253689262412320480964341946174050053619043633963544399446171644452929302749923619912277516904604758612806643491660195154219431947577417718687568754039694337406170082085494075537367063081139961287856762248130208600521228811808501868294688880265326920423516624788833527835082698793486526637526588002600249765313770586640072080343745831415958535182347127634777486500873012506621548563616428016848148697897029630903583537324088508904724752737896126127672445126175515470117889287763392212178830152016723628369970820401303280454058771708737033467200730649309425172166172880629038094149395581602465097767479841789729992123059611797063406021192711807680741477989070671150258860927177499330377511846206255953763135322506688026650985860607073964225408645338870866364697378533402725896526516743957736898453250937390387182369043354745602889862959179438250961747744260610549866155650096395414499000744710729517074951200023822501591195388976532613973208172958502794765161517261604281768760018407297178425635944754175810225628036074166704458993714235251345576256722088193000863604032937968074881516412187481673668353718157107749105206634495333165984325994295164764988682401646702504196221597073054317417390315378831624153115561901108616104424686944931274494962682320684737020534685649596685978202177165700850822314880452006998880434812398826223983115298190333081299449244795602773273578288000585188689562495165956440744167176339515320338470678208091981924265827306316095083866437770563368614290675488532552729979587205148493612871618208360764851534280629944951928862637035564490032949513421611733900711995835654987031829865491668769296929248996435467047051594384977790276343826653656369027395253989696564616550209356542942480901081631420190245566539350600168070436143509720523671568273428694473550145117025614215615035742958055158328157837010914677285882404580983786468663402911273862353085689365979496696662106472949219875855349164672577769496565378161440812250231104087416680148704505746732928150733442272559978741985197970761830187358065627683296199727446364190133529193157459264439598536922408849285824382570074453230400820453292219480344184852896631173794141754450503162601830851554716844089866710061131843145213420556693643364225642195145626825928627223190436398824562726706059180042426569488455434038228843455378607103755207487861567052129581331307119940565706084937551311429264126598644325409032416444464739258954552085277589041306595183188916694708285390418089238852472704001855969973511442388907588415396485009294269343287127025502856314590099307825812375770512508669147180987690125233579648962415875048606927487594281359551768206638333927432754605147245254530679308479670464886688956178632042088675181038729026073049484613131983185795473139298070315575023346545106837252778554106945619549098672264958306580703518939749426069753325218146555018668703506779388806594817290891875303806972798993345879197882455973904791893676910883765141653838168771295037282369766240482852969230878878450719117175960863350440489088453621522540508004137026124336810551291713176180307353179347623346314962394402704777637501007532901227467809035938431747729248062376976324242588108811130079666240870608097657564674592910501678387068267767158595334333285794813052301896400484001376509168156262971955219661469756534574461718021197213481281081356312916470961970009376430746014065219635837038029153296494732389507598504342452104438341006281842936780226365564434320734136821498890085127907273380730035531099403992383439531976963119379059997494517726823322170800273856977298620365874946922718087593441787412372625036142195217246549237252491813801743186676264895159620680417600252223675572350935840226182667113490993993671782340451289158205759723740026424007660769429064159775784124609812604944045527291492626780603198726070476872632365449157921876390941585117361407839362708934558703687984303623999717559741968229536623547667042450267586972145752352738223536512967265377566237434551610131656230831124876246874156188540518524461873408563952899798700907195548998203142566685531853344342368790153840064796646835437485663420502307179447743700040388130290510332030729397218322528889474159223345886719349544451467353864598659665556625537253484111038937082122321341491620787625750677424444947054942211357399639786581170818849109668560140014093755395812445862913498169437771416637797591940238418733967972461576672412011767032159700422749642435947339365993905708616945302337096834480185745236029442624916424211035233995118170668097234196262922590432774779344686550878719727390840772861695312087882092043424809142222373346451832567807570122201792436809909156352858970489341203043673860804569967684258753219939830797961812166635052872228884562100411524504174433656935625046324493645336879065456037505382045330149631142058164940417933999041817096011744636722280232458483933090638367033895064307869291908052113359000786247968422825457078840783118911920706252799651068179370007731708815298280222754310405819017124382201657394082638805910923587927528638000703928016769132269680870558142590488243672524493838751499063510014805663498312307493757462076283617209880189813850155906840887948961088434754008863642556072434808905140870830099990592035234661509109254873222255483174342045265783703718467125036463503548267997206389669952072410912926771559105310581169747595297467013299606447500549489945437973993104877125953003569649173572469119801320745168153092189844878471731069835110205786783707520221079592407342465000475929494750074076248337078400187924379472515570178241311766024325762250393421990328212256599642677826395308916435188402897974452126104363813410517174790104899285125115988935614494264506340717122755289312685607460061053274603626541390039002638392609573976157764971771177113183247508104122699269558764894513356212033481666496566458928560202072888481824665711154924944290019142224224708540132087201946665994865257561147211714259541229120645947886499625756397918894165399590047289325887067385983097046002155968855252366212970033452702751200506653022531182630318400139795750880685126368223270116984238347463232080127836050217092946843954011067392846203820991363884775090023914094449013618074147468909802370474361012085150922129917972884475378652622627874905693629854509695024773439351560540415280342247009983401694927720114428069235009721561441136318641736981581403554345204279075027225450512718324925777843051519476056610331584952060795364365492845088168886094666054496451021477017598584783177555469133428831695887257178024891106235339310038301793168096722194295518490210063605595720387491157762625899150711755215151992302861232918315264200377435835376804904328600056124186804910309525139608223994967716037765470082275138883621503105409422047173840325153588714510701568212316925578630587181225797714163096611982104845847700352537732449785493082501602094488027976368454033549812864206519692862351804128871544178763318800966622459042478961949579735437297639389503564801944180940170852295325768663708239470606530901920587518983571770859944574065477035158578381386092719044703534825482107510636281884334004760202010948081953620447695339132560023035077399281605073615282454004821397252399867619707019064567219599829790549883374947096045822082229458587807067554176884703445844997677728464415323101479516828706925288415315107659433082224581300046929747894089138915454548901128686604485884202141315285108765343646024235439229665687879871254634593657898231217076656070449679223117173475216078072084245024123418080818112239933919025654574195766591239596265564060836191123843837085150377214644584551075309577667067852729475243781821261255831385271117558684934083060920754859691857531059092214101610744380941722664079947479757779779457428556143536549594110961484305350886373278176904384058927619623682829885520671370652644764007835829234259307005504669581812782242585648631103641657002774054344984131691020360427213546592255977875522403230051220865583426457326779940568110047435149996599551517506227319071362026823674592668241786555554369409237676503620512194025609621824303263688921418271926967375509803404424842491484425910634544808438531309824915854843078737444087755918245722894050392859810071839281530217281055985717280625521032730019123934830121500625185214249918484899887160771190117692269615380301630359856199547162170913270713604142246768754279644359046155156546793209958666848148261364532820406939603375381448957285778015761174899630074995271197212801509160461495598625106492172354424629363312009621029277022936591058642523736981068526186552813328484758423188473901839989743476051776036328739368251889562626453495962638239396038586396837625099082010705380601781972622811473601708691462802474603481954347452469086115080656321114405385899636400836051828467795064194263247403552633318786867222846353520670183216887464105123512437023155815482468014591538876861967003048547642161005876808121483393494132089457841329024720671895640286495376099626267710039584448382728020947588846095269604393169016619100935434814014793414197116839110966680944783375878282772308357262140447006853477230555546635055661968418094873039767677334190173671186483401271579616395398109565313516513700973774242901016025474985724162978275462928082780525360415610843693843828749763284290379592775959111530184975541915008253724890322492664809289849586984614291731859001349773852514050505278383057875561617757149660816352672901416999238346098609224813058222793124896582301755493323992059942690832720760526646334818139270894989206878310396141578396488003341159024752864413822993591865319804119587653711837415312632721509462745701735049280623978318019360716162544772190436120739685786828623863829581250770970799468476101774430605095226671060560833130367068706560200702537727798192457100742762508714398767239864768016629336791099537737972297470333576284991428902970086506716433696450105867030386064744019127244099163708959613259077082683826429120920079858749393514319893782491751920339686918648609465437146488761309327742193659393937614120595348865833936964973824307325074653486887053202086436166734490435796149269783870880866034092751835778146059177237196179531751821860034364608170260723524562136431958159754609511190352998750832873773084468434656423503111502807057149466506690128466301575841990122436244660775894479837167873787996989222612944366692420427004199055890669429724809312101125352703254421203980356962390152301060261435702084804129364574953697741041434548371886376446800162136037318528653295702964506798876036541927225483783696826098335650795020520342640449317754859732200277933486475796382617473981137530658222490440846708908022127455144253808652985305287473514628211088352239933376647838152671925389492420746749342219083958189567628378682134374942601446991658392590423046841734886753687527112027506327567474862960670070679216556056012728890505109722962937272465252291060464270806455070851658483454522627255298750783401737498848049768082815459764289275183906150619603947464696538067325049744612295151421935140479079766862485566493075100749990946532970505317580921384218002241978104044145067029281236904538834630699862754386618777918247184920014856678948958756093538466264381625805367892718248411297712487498032074870030429440316826141569888688333104667747839359005520324436679059852071138956554267120225143068546903737413471052746542793664600006074380307202952068942526624693334476973373986388962025710905291127620330676628818166182176858420783211117000731315659317018447297114475908175951720032011380910247492092110753301578348690227606716043917834246642570552844884029680412606206613899323380452859157460876605787369816518682508163733115498774918335772136548274227625086934312781955964123139359287818701369269523051970989404764324390482401886869043512422662233931076642920760238361677330388537005310439017995317341223103414143153115893740965603024438825635711054968679175494148725804799058582350083757637250196740987646155644061475498160115746515608880725839144113470126539503006319494001649592682907762732235804258785929840643230246001821445691090796111763654787758838455338381431678171715543119389959353644387615752030488804779679836568629255778276433336142877557489717360928268335080620805122072441916070354270338043118335776276847810992605368359478966396256633889907184971941214849899821224509979172462089075910644037167689175371856109632950356010770898819754135631766139281641815295694294519433050602623396013806938058619149591300587319357476371564909701703342496378174086408456131660715899766639681208934482040784337031509217789242187631490475259475828345937929872835551066641323144776698689554180250411622765153263091463801450071154779272590740097334778625128148158798914825324662848994057088996468650902681699553796370709734572036273688696410427539256217704129192198652898511641776852804525747229272560229750761065635389205824291369722616467977979799249084155499915212414111206028202667395635912755857361774260968467250487403033388017376598205530512404681971040744903251601409050447718989677636318219250318607120370769480592734997468412687184032979879063565072068480198532549758570669562712509803098723797494335057023372361973331573912508208949042361118541525507968453970823706820950350606250120168955299689045672763291827021434959548843361769321247457057053600854722551102878108413539353603583371745800763689675796025367698235250610279094830350804699600144715876754491063620270045163821747730630835297616856938107858684820324388905696392005631091768485654851150385041530962648066894956240191093973372439760045036567444691322277053047831814285972486268628838940945739473728744953789075794837818952559984319120217864583163560749471510929251734584233085695298038631652583114739823740547002352752837449307435937153567813390539654294252759309799859296695819087000040089052403482578893554004083559217452906696196231747823855118862722205336562510397602249179325568007077227560781111463502766714771397545567737677274466107949815574695005526062333639983922756425683812769412486886331753208115729658833787240767791744029072194259569043438463165586128217359355460776743345601241804876315760425726044183753708620080069381308121610044787629387231221017462146407263414039283730044107843869784586653657166058742640761712987647699311517413683216517105661318540357198969905380641415854250660932450413653409092479628835363039212429029654621174323175028388247156349230607195118135062992803492621615269415953371700538543947645618073514537317201087455621442842486410472211629626856440647099422455288757365282288191234435045539363235107477949117634113130409346518370220302837000504996641122499564677507704161751092629758448522087428067459371600023237646494017743692177804228762339353275150623173870773526138918709942010115510645251285067066591255433951787276072172232278812133476712843068941411368323601513267519443003009892459322204349821334443470525838153800982828871249383650598311914163516412425326993210630541463912952166360484630620645110764426490710804183960536644168141155130155317346620013533198699639134617914117886428050070000626878579029833479427980304637598325800382502939524458423204500833441507930877881294768695966188994992606402476355848252669923668578339239367081991796173081556043561766845667738040733505579755779576631966192451748981060105486347592677363842327215909574425855212127445361763611566195441238545561594342386981858382437565358862495810004546238038116618279421579569123291013882354365252299993011869622691175146372175345130481787688720626828984372746287101713102311669954699855139059226927438540735903195086250773577672358936457729098217630560916567768919407734412721420605676555385027482495114614238367569663167230783771078935390362536361546230031637413409744402260990918144181817521898847826517813106945326400599495331796113616016342517928108404859219989939960966332079834724623185347025352526231653109288089543790762297661069224518351683840022485147847949690273627821252745609407895608958098268858290880033080853058985257585197440194432898879409907764881337744778334072540866607603272715643684876978799277995319813250330581384551842597262722381816988435335473480714973450358001960627472930910101877812148393858632436677295895999724523736194019868126141663061313499498137088325949711331169900716045175993061443841317960064794059074523609217897699636729085202885278280159505742788728660005624575390232174942150891800590197817399361200659553022140992912937405229593709186412646674493111223392879818287347233988158562579095438430479612288004683151299777140081035146490887478566168550380100073994080347740280619477861155237047072905339614239258285726560128506412575868964704863069927646914984651246151899942360571443035205094156140612803708682915512757495759683033319576923196638300246855201387712364776291679086123289101978815484085297690040083298003209231075953230518657071607943404015756740775500537733383907784351678961287490378459003109574043404226609065193517954794817503379906790851873392849369257402600661991000874087930135902756051800348865643769758485246175978288013924899924901186024027942176782435402581436473468871021475608619929835346725351888789829545959592263653017034886526405338247557227207875423788000590274973454354502072085222461410749318805096372289840362713467428782866094031613016582002538085495842688372876331686954157865859103020788946277049338551762118242223955694670848379015055829724446375424253855088449662089037407036842522020057638052386618513327944691194730438695582622699061414955691251951362787402295339474776421085390994298063582471759286593720559463407113182290727240981060539028154487834613285680643694901954859538551375600537891623390534572194270292236506880463689542404478351699757171792446807322236018167500322073180412408125368235281657262243533448302992022879348451861838171596416941063914346046622136201832755889646740122918811538683236082374672664485855682102738382958836771969279722108784615507598460387476924478288482360366151751964421565983400442693982605976557903367456134134855742342366946572117483033887401175222617929843814367397555286490299868874646093925642259839175201339115162550287521073868943660005697225707621798259644871669865642650567541580310011496100087012829308653848177729490197038139557761922003949210377963277204411466390523600628266579115250889281529454798730918089714185015762688384747409474118095538775760423443042752683819963429820317389453823483374961419434497438759895148453621290991203388362813501572593859661240692696360320457446093532885234792439620634736625676271459038196752694124932976416261451528299902941214195488732643071056981179988557477736219530754971545749381981052422297002485297579986746071377429331029907309030562172269613057030692026306046945100970901973470705080586571523614470078003439610078687978857904540016783421467273490151845396511996112447679102256128512722644898958940024888039631103772155781612687492728012159758237864542203203015482874379565166575204970636563619831454351522461736636045105342020719784731694037793758856524546498696912880590525722342629686225182512343311948441283996254019228723530667413374572903214353067690091935291176138012179216492165781251688100903414859399471934345547603421911268348489936016871804687036237152815847445269745963618675039246344253482715852361596712381997438775868211120662186218600958873935336967269360559597817696241735253030169892842150128220509340581495437556656172033530950457759061265287947365781403933125336494004173724299371260708366566422291880263273951460228885356531168555416655935425590818077714387857381270928865062424335781606968535981744110907981240075708597284587939698427349844042155721412792847278889618294042393627697436886177181713161881556220557419065715684180105359997199822355732768252540580359914152016984324632896832219090670980033987307451260909741822980688854306789847469520766467365025347859060035891574781430252415274399175894816526412579338733097780015534045450114852206539103746873231866597523630484416172335233034005217782919062949197262367580161338446279954179923622980434717798566915421738349437969603781564723059325805498634360261465110536208783380313061722120488679341719615481202333449193619857480852573861323113985929383831922073713867399072666517050784068376845123965536676812478847798011912665022899955142280265642148117544278660237572825652727112065852075678652559322269248880072500673664968066813637191930448617267716874771541362462723201863363173662714077229337396956383775778463929457382996004215550105330041511283766620642042696756730756526517689229781745472898817888556445446590634163769115452502713373154673806736957909997639953906951973484126315220830137372682224181636816871760005382945030088982964666874832232349675863410888508890360443602191094509862173080435301283872426108150283854625410492302899856276111826882778411936132386758210468545086353532753587147503271858096825133926210995906066132337301797624464652018913958018605366248026861886736508230266027311985010409240647400569751299738493638912865368781600461839606555400121818882357982677169455568948052261910173375017519125210583648490270837446527543541168314855748774584676156211241111548259289045159277803323277544766372451790318251190737798740343848410107766244124104414828192939144067277579093786874007312934917030152155010700136253998134777596884759051742028048797896838824194358928627440564513457478042452866147936653821032725567458740742797624127736591002542341085391953843261384793254364695326405401585710120232932982967907009429258360207960633039836692886854028870497938340219035606840895645763067555068253499528050028021384770182436023152338992766530179211403203162918696713627642118189887711303447254828073382746246532427188810504754517704779979814928402759899589861028992557413348635194099175604591961359294111768428972275588126539155879260780428062548510350451662553582971877256914826927701501321652143997116979887057678526079475852913154502103104567052185356565035632395662723414184302165183086134172393984604402695514306771767905792549549173057111588388402353815520770020063038741057090293509528610894854163387475619035238321211904681263867386375397071426073637286930187180650573606064393659498860728721695361742276033848594148783466244620296361206773152979824973014377774423810889822284673419803112942237584473876746072273405517327951755948337884364915173526561763447621820534936081030067098639052564965779706181255504897011737669565382337867962602150203202693448162536871314680619039560998172743756733146584934161190449668966419305129484485484066317798438685372579741219655615896787000298088287798804531794030063353795356175774717573842357073785777645250770144698625862081560064660689261156057359603733465053943979100240711299053599404973687709549940117940907194148251640721020849710930588187587838547251702686169514829729687393243835120835770279379822426085775935880775959631117843811539133869302530651385772838912641594881378251969548270570280942180607938170420387182094306669180632160617963654348370123428371791017279203359069414784105002088602997876350117724651560911220909205941152064913920174209572817549163404704846366075719417837719201873573101953669648183614845466179652372641891649317469011534088866377228334187531261589896256109682431308273102978219093944663273572423083473688809211602873091935621607346332021366975085899886050312563364770926965004187521950308704446519690922857183089568630228874962123147682945235154824122631045075278250168945799404509454131008652546510742950932176224239853337959175139171232407729777613227848335302391368338162312163516144707529889215922122997582650942420175451248793793132248384021020177647132839985120926158120411225250964728180682594854879194714170024177147833909561809929262408149311146108908434430701131339745417037662300007834830033597097038661939137819123840459183533952299905238798764623995299401481048283070214448331676402649740083118002370752539929397698598392713382562336933694662869103072534239354214768821023864097791725963244269857336608719040590303691246368329786297836694015048926103782869505102356246622526778077811515694074835479850990693184892510632066936966335669864642797604621568648166626060632351151900512905105047356855750801970072802570169808365133420457512276715055629463854791374965865583098605306021322128316391847080591794463032602068067287980227514174575170449170076943796607580212358456814898817908526421163888429956874832860347946043853070941111454370573842108987325986525234535023064868875108970127582562055619153784457233122159680511868955059563812496492176461896954758256921574294753521928781683200252129448657736447083880964335636248047520415792362842200340930018747706075298197416173578012304888866642819155006197514660971885748515893582946795216366757072913080575430429531600383608882609873343173439567261527830378633623196986116241171507321800105403370193651061334894075039271387107557728654404483723581096106784055397299712531857620570959643183317326690038464716347751127473435311458720344704659373386525583332493205941445573138603564929046486880018376517812456663313444654411117884977142784295492320631733626476925872341264877146757629472458958569233736120408379643790941913080339031476203560374127300227581613677062697596486094240398819157600299940758035109581194836851794290529894937424380952540138977880888055102465050062207708932323963728773463464647428554701569300405470013293933198132825522953308236600223106521384150314196789313386959577379461884974785374425362077898117815236045720884949933400184326219563093770170386957233499677675204582803962156414848026974301605675955713458450594793804313302846114660823511635079066508969381517871330968942343125529814976136967516126768921635950504984000014996920389466566359449978877375472487944235386324438117256882542358099144292248101287189177138422492425232287265288928092464255079150201111340695347157937034899961640562688986485175981442892590064538162783696877597557434642017691881611975673284668549319523095710762895297389421741659419767352369283074521791564214227187810251999348874204308515089142343913398937695765436319085836246966801091102575926575432251774737917238083037579477799549422964086624609833730862363383889956527467893076014396792789789184136256933242624372455794357493567152695702573508947113528398103639886945060954034357262294559550655906264401153371976022849740956355823463565861736877990504530593922395990704889182835928783382796383438639328869195777371377183641206532633857915220670765756522729634444631512587126855657851174429824166231855069031752745242796223649976845161466959061416965660701674678280691008833999690792359272432769901835977750364560031267582364050069295654255261339448673374253506546714480991698055568288251052048840467691954776711854165429971261698958170165253951037557119505115728126533972041897474168870196994028121496397343967189374963415610721666399078322256694854173479566473326242767617773718170994956853714897540608613745483829278561313864989329561051110734154059875835744889707087405270066749197980752646552271775816950106034472675086645957230308152467419250892945584750637489028291057837836759345179914181701285658363453173056325837058315547754606253383010874276955364618708872577911032075523394749301068560584510955221274609936324332534434384730351953373050623462651120021536421367149852322625459009245864107447932232122580387923467122813249152999913688735284668705011076107427966954993224269746551102734707972671779659028508154876118489901396007341572150421947124001765100100466993114080981575381485532916609085287884986401574937993922752967190183760055532996783894614433266230136985551811126876015571892615886848891560084798941367672355914337149278844739278735715711388593337877198382115706076519723343919625805324378633887847768057144685901433745131082186645480963364259485946799329689319783743261970131004758294854933435654986852009713066740137444170682374323973727383485063467175296694245387005546359069708028177738614411490831751376304245951788659002631852928060696909723299368092313184290866560552876960981129415553503108919974212260022665144271690595088667207392163052870705379051566558675495580148401626528513349332216679578341251593507216984645248427463877902182683021610777449833837677944529126901288273098816555338126144615931326131885767985440880859422761301954695778874613386528934477279499075098721954365391470778407952753784670289439115887719800156630632669290954698485048735981048016791448421473768386065593553512323345442407630148119174997797554426829589205492633117620315380836291029225530876848924604663537318055477403802187981469556082456146755611995510285562405304322275853494580773972653449065573766141185440828351934144735671334538992028702207219696962715656945961312527820405027848828039843806156727881076809109099939464547783400281222923653367706623649693066161056603702789899624951719156343002964331680069136047276848894682889072591397402418052751955495988363427168029694194825559756722517227152854173952088476829284507684205642526080287161877944584206195416060717103333200279679601372575085422579959745251694250498035873961354983691887303385442707489165849313689160652578330571651812760596827370653392235283987375740923229986710944572158797331078481185952731930703621877063578951425671281606724675421668160513118043548775991263798619221718537388404443286810560342928553073789331401792518826664339735850946160674880598441108078183113916956786238516233391206278491770247296431489572710004926294178563220982645556129281839237906978161030526725677607782496918874959174792982741709393286861212024451914775088188892379434165409012502849595823845213043921383199028802472188106170509506746136776282043346146700338428242757601045469797881340340233977902509443412240367468774020955696673025801642797533093682962278889605234478295358953082971108042314900727773718948298903818743597412879435584218309201846010276371855216202616236363852539013593369821503536635326884577583205788487810625045291502139288335872939894571535878122198374411945705792630833487442077475390576941639733432215255777481871708647439018398954120897836808828911934964599088103274507123663325437410468998228277197499564918130795490856032461779282581386100488624942992595126012923931833924676065418024766760524787017633084134834739922284719473683029922376429961143857531322599144705271623093815681276650815734472039504253341614586523746994985668757848156952146828932858486127103900642692598861261046018314439554108231456119127353627321201849478292501054412191862475294607522494537299185625504113059198587928024320610233393046867384992712710429993720977048296681363011124763809574266647490115418805136531612803107339117836622722531971210351227966802780798677650394784024013016083256152543450784513213927550940634513212404225642908106558320836213180858716623263910735070937653936236794023484707221252699780210002042473287484036534174006364611046471806694736429898291206443528871578595632438626348533955265955779104351339700492578122462184011211699323170928147889722239888736926077482758384610638023070523668825781074204096247453710182095487083615357232702129687620104868387222073836578867061218328153051525967428274112870667892359820695011213135639044773803175366988648472010489043592760816053466208751182283666436931617913805086108669830425051065497873626964992981484423670383010418590577661604474857754897717358054011355904708729319774488913924674590636680172325735520841538380697121492962192731657422822805846284549586190425433554566781900864238987894221054172526038779817945535424106866186410349035495891408202786402363169464693426687615290397267117416030959199681447814228441767768776263946960310616191708131485051452296840933364537939130656650935912206847556475945112237472483464968186684308577892183440134131366434542100767095800779792842969608424551523558961553972104341655360749076570276932630901807220010614232526817967961079572601632978613926571371329384357529571893038440350454524314282002323669015662339854527231376462732584702412867070860895205089980185411595275218853477179594581857721482781668939278487014130581815293532249857663154305669129326179940046067533385418018485763892438612646515398818864543016717967505722198837200244916252200701851145620190521490330125666131329933990957878188198482709759592583341733611985957364309114421665600632028241783009965488412163560329072639129920481011836349637397683943590907519570316337774185633444404585354240473253116041993917955542039756563359999230634163273874981544358605299197115925250347785745522088980935832006132826019448164584455909304297673737255046585823719422288643615551927752725026150102772716650156313569352635569776900260592820208996885816480277538953132035103325205484946451749468872797841008608085798147751691432129711290419806174054954146383542127849129319140513895202450537014707482866492605404182258390582870548232425376047926399194410966694943491713296139947606034667444690961629722756020271108881303432394657086257001656355304081629424656018573548428482116449824514321996569084822654285530749373176202333461471437515427263323967745702558625684473439294939020616724984974511970702286929078760675418307599530866057614814897799348345260927197347976531261459998723218910586796745003983568005850408793378649960690639841674282649464507508809224436302429767489139593382598740796357259761712204763389450010727902524157341479146463061930701052330766272594715119979238890649170486137145643873376251779837148342346434678160893034446661280224731181779105581521285011196966676793084421699052359110653789242591673678386604326969057675889236522600399102272252391049440992641684418808657943386154086417088180979565973708659652753960608971975838724124978922083311627529328163149000130487269048922210736431850165818144156647852063067728802342155321135178458281282441406929136947922883739472848284467354882513648809631165066442980844175523959593435859372709341024136687588635399342101973213666456393563683536782436656440345690586493528217222969824994123802968774451974026784711406705656838726180182168765727908153857306322992748820478092738500889497347466738561293447673961807223943858586092474497894874326310622486495276796682502456106071918798881795566210223943981506751587353878173852232121663056355590039277926343835063380753841928584539487954878616166828256611747889257471024922458778604981686767373603564505324244943709308677528655911257030467001780748818841899813793644796726428225509369798458441619463946814430322610582740854153402228009610923477988590412639105889514821489799056315753112626877277052756755803419673736078190757708047253828326881190940448652673086707617474616890857896061833135489559145258212913026407483700049444618905396500341909485737666167357017127509200349906519604672380302087952171683396453734534015990369635404533920129978083773190206353347812253196647614378784040901975471984843260072706546897075401116433454465669125899866853391838508284277045157227896100360008989700054100465626456788518560545335834547481958430302953861862232930006515868542123281068624365404323450527860198189965642381759163747851262055914675219472298588733226022389155871386145126148859277726273728662627030293778750253573415448601437098434911045245570478918916600158367996614528212946684663847237563787421573295360018721662049948173918370583772064645068098113947427966588214123951147074245919511444154009340803120742704900634737321212961966651056050038136288906429797793996563710657033024701051087087255853070458918286432352368303659505599669569140031494631995533423858886422526853611173323030760246040197977759217559331509167714763991878005756811820711442816464703706947463065475748588770581056014919722819201189997346445195614633797494561041299621396583744507466936426888448724498568018780420981723007260981456235321703251009275100097516002569284221769329641241329103262433512182518907017486303374622280759455445778575615231259753710180282851055231752707112324089234229265527581995349758378824210072769224891276831760348747516884314592264901572749641527715449499349686821419954975563118384217965669598071574405727577404795490507741263666499690891648226945522432988317748889449761658410083949231086899584574615505402073891870898385917275342143913879415236879411739146103975755487309389053273349277488604559910590217838582546364175067493604993550274857855002935082085107870549707309064569803646260110646839142677132077158433610572316992299214081420449555001674217623864102256142377725933820380854346031559662920127549474527206494760820825300973764295002292999556209026113124725338217730202005486160313560267261317796227700871837055520642706489686195405186988533544360075124739926000560694968025798109929720357238556042065575198045084006809068957405151984393516999494249554634283824642484195231475490221629788917301178032812530795205020891453811136471799791119356466851408333364190849223787305221337741501781973095892287743477644521888511992598087246926524902774598180708471182016796887342205420221434804465594193700198202784212696508498957339864105596663436152034910770916797197937350759526175141309088487493451795488708979305930469627409078969413241638792800972547546325709742864182143163401997245653892944102456318230471143399132607720199296516979929463385860316402885963832508653455780332541685139446073305407857831079028767225698447287816533888478620454954598751519357945624679482671635860580776163902414919162391979120563029455590539074923369295472772297570954088488526982437581153024582881949786259126317178041894003836714136107514735718895580576476732174449805412457201147430726731816118411710758783645848819964584517456159884264365143777002272469412715831666115837491448079610415664592389331611144209639889022789449884922978752242117587076375460922682716914536560010640991881033832669789620140483052049710425368200434716499400351285504081143310599909275665647506520474343821701832018143001023640792523136455429466501701917116073056086377275101742410483861733739200512402658899587549714055862686308361267367605914368473065894100679210904211383570655066716131401477299166653108322858850262788718747072258088435412720554014264762562019205244386145124831997411472663875993600369616606652433069094454629429444283695574191148272409906441985180825847474982192474711850136388235970421208455565524373015875777624572755734641396263467028813987865354407378959228547285122618825471927158681418967389583324058187829500084329287807440432600434575219807945744338124396734303282533893918739796253831550944614331737536433876859733975683356300975096377631426211059032995721090409451260453412031165083193461099752819250397051285517540903895625468120335644873236079932973006445107471940575187893204850720686478217268927603862325325439796802144379775235732884865973547982787924608517827077153908834865456153750458373108322662788279092018345368280972722688602512105552765342193764878541904795932902358101615872044560199249195268010421262345394597806722589264603226894747891719725348209098776351695380142799229777148970020331683148411174005572094375223215907962851350643195635410156687537197806522802167785719190577744107123843288434889091924465342465571780371185532438903222564839791052654354459360760315475139267527634151977084474547549933682553793440865581403328085184500505809880581633609725264526759947454806014636824784601430881208440512096970705965986353754305643874217838784148534858478660183089690121162290616538068373320167720252635778423333206215984936249119845526684695923987519733057460798910973537230540286843254081067595004939688326983232981899371490105149123489257840678585145144431943243244946082576294582608737109215452803573263730460181617477577451412316741619412047661641107755273403808783311156581985648129228033256566512763152233244470329857178973924450602577236343787532333070265121668587713781249400200301280127043680322504443746736808933167133551949958864703852640913614538729757395139596161127607656090879496894324298522683077211208340850884570283311132320241749395509220847412456369504809213090772973208614519884080200064708505957178740998340923176744277226800551767645674202960155179615971880727423638453207776014364920919829335053545856906651296359509927640878194053592058140667918708588363739311552717042487285494762919780531483570733979743005492586445451070974896222363469130032227278370659530481878272454313341155555071976993312313885920932961447156791971651054228264275836814724697342104908785730589967892947708721362159368988873932173463485649641478732638739652007356832032903371687566771260225205147382906307812937746282172799313158228572691292127472412949744157961532916372628297964318675611850927414513024804774130217416623579800599798955369985874777565372418186307505220637941245413763724539482247901636437023681680186762168794756145125247527283007564820379906863892853803463559207263753079764544737269803605577435347174962153541155302088693394310709118858419229451013081235846128056583500521647602123940895512204364137973671924628857717133468863078738081322606919662611342108073736984372953606110179902002128535116887796912784324144491303487475801415348741034164971192764613685405107496840376895579457879060904408421376095061906774171091364751220058558351996389708443217069443813484954534257654351356518521537668763425396083549485449207453877703154237012459686980401784321181234891391907843881709376187988952514220662617143248038319636430282899900268175664403270212551337127866986794840230763443977365563884723886195648743199881291991493200203271980199556235228600291792435260987567838431631832807983386964585599954967283485695523235019623479242500896497296440249167658295983226143445235742432651349057831774482657928336984542752829353130059410688643704129014602043214844377039214797547462843628062535586588762386980682470240423815251318740472493556986345201693508665609538901310684763748363098417289978797408387626374402424656284261763063770302759810992680403130928820531611182195468237140220159348000500035045840364431854057501924536936949997858885109383906191418422217713795454476437992303532503820146834860479318150496172179333879173815988786382251895147168902668881436595971034801416342686688241298189038517066232138489118627335892130698175051287109783408694853606268968805910366406803129443714535804702716711617636345372191597265407988542772941783145111766586059897063430061152437753208552871841541084340174078473420424335840078877589734823855574980744343663511943980010008638375994675885588599285103875694211497495672231658048957247703369136428042604235051834665162390010277008687862802284864242416104645188121891265557970716430295155016258599045005389037859507536176726638347087839666779139728418022302347106928431495274489258969136066417090437111302319680794733618707790705205113784177093959822219269536018189395096090374812931524881640344439900880182590592560663951321257737385644439567245140857431734851904802982142223268987130729931003594768450903821473750955285121461992125806200206842824614153423053940014528058581632890980214290969637807067592100099539574387196723989337892974269824425387442923678452394377821045867462733757985143504694966238604678974072725314062537994314855070140222786855596003866812391032758992871564318778172891173190238155494287813800746056484295685890881106075205549404789395599928522757392950230096399029808028176081307174391627199280782430770950586571241208556312713087919137063878006056337288467877434410439600220031104540377834779595962259556434491559471621494381618279262246720743178697653161260048263786178611338883587765859204427315887603536012561790887817994873514782893065924127304294508517692410558926232797905176175397810400046777941474054920285732252471310982999872905697151485957365973041038311011467902263963500622658555155577043818153166853803542297241875916561543909783128713593800704148981241968792943856930380591138512243549539892255841905932722630459890035494686951857637673180390984161085213922033984042253784160656201448554237788665601286195422026932187606629987081591396633454404964571923994194700577161577588289484475432532901585747683185598470902751440107953747004140372716289537805138792960652579542638418307281065135149292025906417916685401414692820858434967904814715502056056571642357435999330811380919371106309435803853922549503830589972706135522277783337327237317552619709735946380658374155190831215163138496931342656825435477714193764164681727941302130542372991823399869025138940741029327940588892791697816666730583758413018181697144218081573397471670700634631508564533561098594964925880957673611839108034351273026019707101672189349778178737216760725473540644151778763054745203738429436795880034127566021193328620693586747455670647849305513784105866025330188170918116877529060331778337354631250420276980080321339169492706345036212950510457165900438182882110871911400849504317359098511398929032747563840016099764403653591734319510710858926017771196717472846374433800664452574944735393353117502086416215399515287636866753135536380608648083233241143645357643687099788773467679611365177133288716589958500288781993552961218865772279531554271523775010210364802796983493731032334070346586925105844880911557544785945382280221934531285751214512116985743423242179539164136128098194840777853671542830038545864233409514716868911933850517299377613380572415745034611739948328703635214236800663150668924137554519460150747667556656523284217268547614869778789012182865152228356296292596699005156825471790846246641127403374270198783643102661624928382763228570840333384145441299453844725405569339349082971102460131472124837129814563241086206696434958989556753430528417165664201649259187996686754897592727471423267085400940266100438833877945176554331306816635803582079286150989460255816188222804783995591063964091357927189154579008955717661116266974874000219684613284535331612146526000681263362613017881756362406423609676939513184179176070606227253326796997169234698361068470946946635724134774190358893061819408323382041905562820792760940659453223055667696966671867574146342121098437332308793870295608741376581778634876874228807649870234669717138773692466439373454654213998165491932212509751512824139055823677353447216744363213244452163124397886285992118052877852119441064602978101204957409781943019703720143054996067663753124391006928092098123909209818892636993524332873011096867757785951263512547793974808600107279472312326602246814262875655474733465826910179917274477675864321968786102849541773764964748421009992138040444555281619284411169700887651495039918696656516439388123343590370302309035716310815281426200141667560085549240949713289977054758632865693924702046194170647651363036162118817483374374639793785767915730374590851952517208985751176632799872472208514039086225411269626048458546666576898793160278724627500431642815713184057145705788839010829416166165036407090878504656444070261172259696166912037660492855628605255337999334184313352135055870107421454135522099826959065530537615582988845585518549122292071601912774794311460062053890083182413375020544316115139231972507711151324349674118393628647304523488739543987174355257362586749424163572319337617438161523625840983989293368347687487500802549948419047575169293037094133362302573086134072480456215476111277998876873716215863641006802149414412089702551507082603549729662332951545083968495616174623676665891026277465926348617008513311253534389601068700358808781499765244953622844172665935455891846963277143867218611745474538421288637584714605658548528993768312744327686602687171115823967898086016989978349725421930305908461125197609260775665110575046675601936498014640483095724236257308635864839251482794150407528171053404153521467348330417702343405317433800374974602832298102066514822720155384369691009446862360779904583327343475086887831578507116677006129304052169459121376144014879756038469504363002148628752691759942830823511852216039782840663640215466205563958852939919634436608794699146391336945446175693179175996546243117027287975979154945163789503687134788674663937052569824038862525277939238171086072328703534546529753794569250377717799237179774452584241399299610158666101711535154297966059946218753720235385608565172519390682201925861028436136453340723749588362626278481049296108221982244488539355509202896235343825323181640010279635010926311652292433345949157540968149698702438336142789750367006278535069659649789295355393629199769674460739492973773359039083578163109982667921951970150432499015983763020169272799685276544350104815410484614253435869811180489004129577593489879229661494600509870995174626025956792265074748556337476818850569881563063180809956431805137312991657518206128371942068989384431048439786339606569774662685451041687062359233360400587965716434745814993875192651755958067595862932087013160337475182866500883547044464543094773972944944389907594961468324953732576300710657823935151464139576724162409525633646260490193618687667082849278129577785854666508841113841683152137882856987339830600968388455811391086270335546834361937063764333044387500366687561862289292260122201958579398228604063145308983855843065064871753774362447737527970027527929324439357077080192898557923088170626342711397774267111540554840527879231528154036609678674726814760274257103712755425579107168609212753213632850504865841209650550869465054640722622786700381965303427828279450878372758485556318968000832579636732343173222503761549498911315244663739356762009304263673149149736633805032763822314923555389870128467855374247899411541956422525312812138810902974910858648169786229618438703796850207905151538230955438481370364071271638729064071303296248569926099554442285945631486169608036089843871288313941947886084726445551691264986896540569854772976528016982031767065173708511190911896052555461477581211725978808658084934773702699201291812522522205850363689303696725638705911731315338363255580315195358194370046903031039101084403557633262058918488018320499123045845920751334332495277351726659161850063099182238048183928550959118243122225083088505905234245651009911787490589345206824850157174896179200910496917436413191438531035511910004941953602340548834731628114895622318775504065086359135821145496242732834416803474281952957197174334064265754284110063407475554901177792776419296453804228296936178391411768748495691722441331511156836673491997273188614820417054422578630481961125388862587995797179239806232478692399165067028145562146237198183371124376247180159505394670675185096032605167967733331909603885891518972244716604932936892156960152069430381783625018702207062278894210824256019164771080912545933305944750939151517838929729601799754028215865812294159380683318473189263986508444617295135300063093986776314249058840324775506230037006120620196641056604867576961425389974766268453316421277575906415727680545621299236151304541439956961388417135294832888761627018575857186398391224255100701113631119338825058924451153332545181510831998549938663869809775695936690020872402724239209891448253494742369161767934494174000739821770849441167066841335175420873751046500092519204501429897125531742023016726807020017676497577450123544856617572947351911254563287100289750133014775088760547961190003041150381747682959484335240145671101562040307025340222731005712092560276404929692379729370042716768569064611688874646881997812858393970047339059262891802745289729681827165592454923554090500293582446219812896692234952783659266990427025813849109673564121564850566649432201685999831045672351764755800695849097567548682819464211871187697192132846267283109063141970501085370246532574011817788401153198633624215755331272976374463362518418703864536371051294829872428570833632073083674643627783881818651611069867831376636403232317772799892448421625549367591609422554630567963800312810749541974162144144519302338270248432080473413204412090562210877589989450938045987075392512652325625537209522416407464835570273440144279768066413816699453843837181635348726894224513982747101630792252177611224049413815350930948556250070136153659726245188971708139073076037573053022028927368127957717163618826537561885585777730607664838660064391544812583747772690298084435862977466737198777987046952817359591501949908754010232907065308757546091642739684832744274061796509950533556671804564033470419703291485667227499943621259988549007303726675501721462964251035589624393718636444095928057156475395738566610114674558523387250693127679506711904823489552905359517432826660448097967552228288437513670140094570900828780570622629662104822476380355362879349042061784513799310663109567908018556325256815772957114747512919380569140444314878768725061818847493444775326762180577130290893947594509886636166695622997668442473426787313699338099648510385730945662990206824486179042598975165685052522003792366052955997664842722267337070047344375634785677003564780300769012182056066684943446383895005123794726265934553366141155344723856222063824611446967306467232593958011240303482877934878026467334733177791889856462959023088347876639029559286164552274281269644608070372129768135280416780790962695096499669950931987928649628578691805854405179278019612155708809444014758585337979213859252402322654697929989614228686939735686071005044006506840555641637726519628587188431100076406905382657642403421023925022247400156346249825458045153828542832949937760001490574287687030248908625088008456779790976540511747880472128161890921123414465541229360216308045595243213296176203191822293847173350584359072227558035721866104922548211043784806349068804518126102212871417345505682445776444856294526075451012545586804607455872588548389526271537309653054359158828902264348466485688102161737802064705869522973286206953897430463348914528569172750244200654014016755498866777689675969347879553480744886962542560869933432337569592361623753258260501686899180351448855091063944062728900058930767319563443617427720038003612596687977255062829380206587909188066044893977914671589651192001974747188460273411008186525511552413894873549622846798305160416446910495665272573874170137688418339102538903401657548469389576742042363776184549439882749198261992825204028941874444915412456286953113133798574293304999800237990488855409848842171239992038064908158995508028003554275609150771897328849893586008328321207360054893852172634891796718339367729473513399172213463890001368475164835488541645808336066026911352553931438754974506161688440032806018601613158158170236230411338221380638694153372228276382214279737597722145945714793154378359781711324754229009284713177137519716807816742400507766125911731920412996899488669432160606441956862155694823353276393034965661622304187889446005912344409736442892410953698360027975844947090396193277633450426151687030673969110589276755692243118155437671390104953838431877475696624423426025389436298344252698652648489951275093566329229093818543211193164868235087974595892939270115844101145602738777955013244735221539862324894670593735143842478538939495880745381749530391405041756235200315578471511744229309133851421767130412640656789657099805611169514434566968935013280652296568361625510228013839381374803900112195908277021612411614545095225141411839877993196943065832584643143170481779190645994006335109202051837307848947888187830801862539626114688120986177928129798191038283036645346133435747948581175682377194274610059352862333929962553015057022756147972376312745660950076942660314756010838652144382209050583835035490881677008013224881686694705574556701951905448693345713289177319993860911053656873846229487817411053389235474394155846242903808267905418021108501481385352462429321043654703081449457938358549222931165380691427680918438269910783395582335688184788858776331725567261557802959597519073783729973965566893868582196493884757629071761776555791252586286278471446775252017819234217636301102596002272672512310852340160914850114529806081839503051181873635242269188018726580664118676160539028926489204866183876431269357256439742204379453536648978947865740213234623613053586652280534924213421593804143046688086051963233464104904850304252206225755189126575943891184986794951155851111323408730237264145577294540871656608833600358828827033890652180679220132795517516728591119130910314778034912685388399451920864518287695549336973788464948102009964335832868773204442522536455426028368863720753185480252456218144949108937774072003994142228620598709566950180493381370760329379473561935137835193673875066692593866874986533201313147145132240526812010741612412959314709856132273141772406102689236909699111173611467773749636138537359179952948197722654535738006312153978471550187363850622599123761510146984670943504313825758805373038137441673559261701153265463994159500040671124193812105371316785577812215034393920352054751791816880072028628014384084763586516971570795049831252042688990042755645544363919121580264801607474704553121817987569637392295551384657878397784189992890154523247809447614444506011664514018298816841879663793199964236016628104185215632866584439184620634393487893288526515581937021928081969455212100614351117488911262656492574113799669288847821858881043172043475292834313300770342946384601281645926035910708553944628299510211773038087359768224196882984287664397933768479523174719164137552645796669481111303405162232442255124920660968971826114646426908212588448403167809701999917885253251902109505089689725787696732509684258051228302619904217595554629324825046803641280659071381321623129509264302658402866356595365262398620084038079145441374168191252431642452077712047518564076999847332982411528463458263445748823224832802020190199700602031955604976332442707376528003466412047938729374060652116326492682748689839092858298771414204408360254854106139075753879893493712643878257658695033350310011980733934856852288622062835296559960314586777008731271840970527290347041292675782711352020345548270022148706478582798872101839486966533471707592077231248998899397057251476239289451701120866012833528483567405974204538288241489089702244394080326714400065484064754764013006744300020403380229137716037128655131472642267214612070376328909798729175815600695994991399505764358881849474495320482858707451605039454135634244507710392811856658843948915376722542210091410587900937923498000939579012014206605792083964034392051824848169967404102595708005053299467043890421897679726794526003491020375442128338020679935925598828240335202396396676294656133736936100385504148272965068089535530267617389924319911886654080290768872721586891573805243766483437419087282845241250215534508499887689774523949108895032487514702006556487388832825945574465372917287430766540458610359837688403907544619539055804025380489824014680304168564058510078287530159910920441661610157066671248056401412998398560268182791619460223071589295638892457482085208925092781699047807807772678781311440140508797543577895975332084671974603378120356774216620423419396773958287191609531622601956362412581263156750035654760229085528370939875002686383474018605672512509768298758572578396937754754130313438475006204753427453472228544998456942239588666733005754156799002393104483495027286861339778839701721544769286271880058426054482739607638533488810412193326950057372391744640153072007660443980426301108840262950263401731301664715117595306007124783692013536452875180165164020128407337228126256105956812443864117142757758040947583766140496787458597399111252552487472177275753623849108930802580472089293156160810794676577750856265383520870027739979713154050738483374287133183237642285127787464604662303908005768916447688020252010513677587431829358642312665645894214699143002637430069857766920558461893238910657317956950427395749586971421545006383605017130908571162440999679212049161665115061204902186058674707225789344148324409603587489712186044124776175561400497055342187566667703499138818881198326535607965230385002934333494764492908921721516680589890414087409812562751335468537616583925378771085674349651532327896921022205967346086608110550434283061464822688894834190809738352458028919119603683714309795359863212903718446766643354621973104212314530141046301793542774088687266637025148171721604654447367494112014135236841913338892188289191444318073234654865206999280170160257629986966528051895800368208049625644514631278685641561149548218536870941251215451888179447938406316643200728295135628968302715114987289444269201423085500042233642130294199731497574282923640486637067883029858448807187020569372243536003539478368315177317482241275199072420021712031345659361972516589690712226295694711333014290844677469394970725489216833274927683891680849325526188114692873876518723597371535587331841439864308894279468000651314019788025946344517064917841412688693341474224003439712570735779907067575162949208820076657757147497192968038160150312039518555956743912566083769372060829126105901059332582803411659678269683025383061691420594416651997606351145569255894856992079543390392336847742138250902669423520273659011313286868006871231482155555654727754362156805581921344673762562567948051321672635436186477729086160453074389350138327197166871238820216626559620244812878621768640159534822363684153245004211056213605150831954467372194098603907666707569557944514171628693035144121279765946023199071154989353640342744890746155566917759293588768649033004220526019576627663902223293730132775902687002907257805057177195201500573058823032980746389343916421606039971372489928099729460716861643815116287108486017658020179743358757306826286806888789321674538882501183230281206165574680517083904191014130632539808797298058963959019745321021317731100491044756868798820768873375413651794554779277249904497792763125163698779737646328808832061486909247438173404878780144253992254281329002190698845771087720385888809980027695822227478781802805910154538716621480497307514744229955657315978596369804781614870581455754510298788643792258501829455899616504023445349905550610924427361487691598446368047124072589920238857673914816233340234648982429892943156691357068926192414641157944188697972823889323046167429503066133546276146375550605045623113504877881829430082480216689889905485686916869086336381049297503491493494513245651500153540361005613349485511705947092719658347863722600188363487856319782270202621561345835468267070488170368087029088313030434171187998482921803465853664566716344064671733023340453198459263333481328996549063880125483486755420615182475068040156504847152314342839415283433064198836379465619068062322808808987692695139117357660679474082667253232741642553526499707793177001665809636356034351287756042366143617249178108878741409343870009284054542058772261024620576351031267871294902210581002519980358061113081679429334155317404305889224877122210151444045606973002363662228704868623900932147887803854412102524783844683039878902605588065677573022418243323505536961791473811633224948607357928824330202399519808083442444391419640049297364965757479969543048053662042863434184942354827254237436311839025650139984606936531204166212150434494617021266134509023631046405534433290481843649055738551011687793501208325899400575801149072518854296758878384724648583505399460499495985942865799391423860964102253865493982431822866691918231769656625221067366410119759995537026576096725377174602704721441087313824028872125391974198118939480491862996647040360008544435174588843014324342740927427362787883432289179089890547493832396541026641654875975851117744752217076828249851232750066727006299219376490006100267523319580174199360187365594366134651696594244984893193475713747785782877111259901046820337894479171579595018768943120634059658676667474133151349570231910721898736265251633375489477091313935384415271684059913763871601824149389991305443660994712341756054913986545515754045774339279130883512489472815623872181255631872458183813245484287418892815594456947356839984295824269860689007458578657740714559754181767310342256647405241133067741287081033236133918426576209837069454300508193357087582289668015130394739789076190460054292277133242459627666660266917687907710599685577307329752690902583012997184508647498066194596910997615896426566707480219425446221728631034395865817378319039338661798751355530158108800724405436752520917380371000878200246251975148712885330327197618452975595458850968555770325845365926966900502577342577647667395711722554138452555726599493829388306972239286849360729996443442145463156563576978755775401054424720336219136943542669494860578852391760165676193105662702292745110850681563144519354896138516360081709501557374592305389237173756355392465179024813236175120258231808725540967605157248563431001723395123526080433409400598702400672380568934424521963648179844273809805785086761029498616934298411237359649039439407528769252455715953673071821497720369724145007490519490628548394619890061753968553945582050316083038889731011504419938239320608565405840192102568768653273625099824495773160769045656327166834710267014958192879493087804598168170871523446969882832796504511372720472221810598401643218102189395344676936549440188309011689427593205965235484664062465411070250195329266994540543101070012477639747765547401550657145978989361779963152121188494466191112448925250931278263829613907625345225079671213889551530817238004350820162410089962017031892748045565287712986169755281225688361199626647610829740485678387113895939723137362033804857407639053159246735458767708639432227064310772739776097653648776992980663472752450699250250390038073107355851217238148682257477545128050444163788944828826925095949926016350838627877302833682211608401543477212069146660317946445192991004904244956015274617791514124783235923770002268468211004427150185696238341780045126803913190767770804008225420714453913236922189176506216094538469374853876753606333265127847764760592659262207465411029658091141268722070452376577948016983038931655291058749180532137234291132664509510343144504073784346139282226399609831569752362996408063043756726883130553436047763693704954077419888271945959134394512622488427664472862692367948794587189091653807124746513611767051630054021644287406425877410140462233966110707136211308676339900737254205441779213005743239958689668776350833997347287624033116782777132932552225765696048886803123305445673552177556130386454010975987409563759453467052401576512207634510467774511671602109279965481664877609792517363943306653473386256878339877286625209566316289716431788365265076725922194326582400463837016049037759984568817851937411344171127729558665850207109628201652031648708573602440411480511980927392319701193262348632562762268617591765384409419310134712025161384532410547712765817420521714794056847076195455338377102373375994579043228714689916629890246745720044787169709629801109342530286720645053816281350156694177569423710834758836494623618157401439067172821571022101764139952619283260386095086231389736262992658799701128271470728612888921123851323065065307796275224420297829761773055396610114451525355980282271745194079446852296681465669541377816172326159513070992309295631328520471510492123680287509906107871003582983269036794695323776529556973853918108543320143592205225965869667460788442665296089924322576657086119037471493721018260107804755074193031257178906592529884508546955793807114854099219823012514059322645873256173908894867588406233217875609249439902346531521188543024371908378444004285967332731825131966857933434422368975548975086636665214222341092286206951458747251232960254995058876927700510489757817747856399961923693354109348381982762932970643178833669313213327379827890844334447858771893132350696413112511219021740098430835462848999586544334001758879766469204757132571705600556329329889229478991728296444342312233009527346188593025820130225099680177660373526323189617613160280444406400821449652837082690474855105950519686364704441157336004361520335459223540286447224954924541474992531432877853695138056179826988360432198455828420420038302779543513686077738635210107735188137305924447576984156118328124094771868040847099174103871190113859183436611423745470799729050869561368916684377098615758007339557946008617275765454401025704765293595311735538341207426035289941313263533763510642210443718933570350270296254508834631443357851221110486840001668507885976618115134011550556265204823875131074985728088803104477120968295737841978651749080252708151799548117069385537273429915570763408801869374839044502191870404230683012972888762156576197079758607639289836971291716820014263778205656304912733828230840589013334839517158027469733141596297513506956072337217597409087835047114814756580840956207077691482540968007266436103770788415711771466101797986905555714602448139059185469920602637720453411962441400581670580238462479992868943434040994175454498447257127246490291441495263856478080230298775958930632092443359009086590563098773410784982017233811569092647638458033097565557323899237931909016179618942242013325191309540182510050607980999786313792239213094300745948594482745746537175667286725642705808163268976240917170240534916630077799330225694591207171231802698031161602967029380381270496787150525944336097505113088823126974724623229720714998514553320179093111463955011137500113583072168614983165783804944940718430036876382754136371046543433975118625358168071875587339851733096558019278766078925889303798006800873315873127326040329935196810937360737399581848792961646515571315153731010507150992407540528917296543424340922286321316531031343653555438563892639576026795668866613162644195481624733831164905643034981524422512774083130137798744932019634736241706728015318318863025071349509248949868111394190487482537623233725171524536851267744798637088313638966200482329729597756651428824405312974237256680533235925547462174454484828814085020960513614082682933565129860469276417034388901543319900376405342123756002803800808067391449009347164834878779735637391023080046691194759067306488052962781448511846212574620553030339228262314416770625837857771564681058260515915042175519763448692432870220798570978155079780605287658969667974679668429623283297929402125463879613967342500972888419662155734653338388979927802713722704206976797947469362469698118776894969038240736401033043075059789931547844761902086847328652804826711211417507529617082524507192700246271548746912068492466927659574640695749162807954301872101121051387221616248809696831283614002707407030006393366901667235196259817686693119663332806576782643991872875963738474252980146250504233292874925480446728596102031186737085905205191394481577715052660666567164252130592185147982770126651735389713299980757993605940331990432967238279758518998916896310518542496537511753978649367916978533121166346740035404823415457156262671197533703782477446743160369635621346757632051013111162891683918929652471105900421271617720821918468581496555634406376069400599074910130591517816424392872135543262509430604539149233550157092219536512996932643221144303216209061589709392148611787497888733857647099739704879423504805956217341732305000341645128251286127052920773773070412692157484250652618640133027584225624741771559184943202502350871596298045897455798196135879763357006662284575869137001663702309642081215916161795817702689329920814268531691507045620370317922765392880172399962925974121907282004834610733186484062761245045006800788133298371816574855851571731853462714504432439036452767192636300527134040093461927823195790484311096020612401016703297420750936004878448730698456445950553776524431161082613611524086871916189131405420600506914196458841270519589429320935526076074841857798200642190904986978768921477373468338024910067450106035016152826443785424080216127251319235108476487339027790385142688146744672401444102283751242256612854715835034666480681834273436683424069618879502157249441289472626243075318823498104570973391100250120786308715281040595083608113722989355171166262846439250460452465639775797307788624384681712999946829668551907239280501538485078989374168582413498868465254255535568045814939830437775282482786484599624671659410065622025952589874432409169487061126473486987860741797242277489616556083924611222037123898235747746134804154146943277507851310009402466706877962255736612694605357545854855405121453176124449823506171160692061985796144946494223994900865258479813364748035057007296821778644253648354970787250628288088883619814978816058925441720482744697649597301233512955352128886242630762700721820729056686935408191784891382629186363704235930932878375109659822229242969105453569621358038968743690317650499533773716840867876659337474996173652279107763173688932942809161131734255840414452902366288286106720471708004992520697940558245137300822242736658201962034441520388698389627994883383527960121205138594946852263162959211260018068174838615987967983258400323908528966002124523250214977819150968967303498572534515033916343695918844826022594681526181833799854096952024653388805041915183182639124432356396892689597976026438794010324682568629241358553906222457827418138973559019721900590947877349407378624838292899705633836782657050700582177611485756979252397408780685889949260086264176223042415756818437017156051124131031552943447961061746724895254046207460043002050838073063649919643380980314210909089404132685816676930804202900948936796028560321248577031080102271263142198449788324151067252424756809195614977145225398142236953510516921531959703407419909125954152126639379368590377639706313782819956219653809656058117302383641805276160365243559015012616023089535487034027544073631995652550708300104622842690148817201713538350320954342066242502137749217711592389694630497300108695583024869421236833175976794144171514411490374266294029328688256402882479472489220819456644667096897727273288107668997572761051098136893947000610060049802143090426395608456652298486336582479725014725850066204245929413031656031521679812839891056491881255298946935650720364359937172916768956313448178851821661658528955284881176750317874720334010356696978170208090093191397999946070944112572108529983699403480019348725048114961263130094406541716957672085628343808336393947290036048324861840509961561837516467915136998283971748029809958540527177745739952552140350568031691224076896515427065697216221977638161376492064974092525327652481314997238782281304421452770943826805488361570419339739619421343273546305639098304795224987673043810533586053463706281505064662368083710067737810604405149236908138902546887824542581979449654325670205074703869775740921127578443681302831513718279967463883840408545097622177730577465535115845891360372836376095863432807961575626728938767455576663617538204405243170786893631652739905560987951859922226022830498348115187193529170544865380149793901176451716321138102624799934460477732910069029096305639651494048458427603071277623073575915342219408864306267365468957406490106798081139102778735441213015984955798698044084366554857655628806441127666510291604991779447995932187223154611016798564592776893951591802727380089528846518153833364267435210161795673001918667670500736416230302947834134594423685157286895567799986729054074151107260681870023149783392345264846864401545069307067071541435041776839217454775280958900124440687230742270740282351200686648636990899120725443477803896308623775182500255853940669410635080849309727779768266409285355567573024199845251811760028456884942630047516669906165052412173254846616093787181883623923271308318373593954491352423987538545565352739961932374273730898169987133683202155258140952283174873511297427419432122386144872247115463030672720649627021781549578357563139220163311861645941931775469971772020039962569222022964142838579342228042144298182227449149707744565877344240633902774786626514537691717860536500894729311782035018366490492054336285173271620346845215508614356284027719200558164749692074042363650561537316961698637888463841114434582266912719318614952005624252562536929059391532703935438346328570901608596657575698079363727944229808684010181285652996598341257052684255675403919713397603261166540831241920203014678367772339559307074217981669328095371993334093361410114185363971780278305829367118015100031095181460005260054263616188521436151063736790840005954933996608918031372702485058290025166106719900046959354010485312455271653225870414093527287299072525373113084452982276433873867606190937295791050625427586857806367502284338753931014038872863104580055134510439233640663809813289228714129434241638452010452748850030476192272771661102411174108350531441128583205861965165399484154226481521502719417234896131957404365850880426459194920176605792158766281667212646241045197150100533825679097743375473238367518960544844114128608735519292115492923351398470152227678325716720823775544313157438614754695350705360480225544338600648675974009856794438635771151749344199756448384963257009048291167037572140261039813677251271924921913474911309808794268293552926775141920902005414016037382472339659106357776488409032654249798226235063288406842109014455636474626898423882515254221088807619047124129975865461940704281165751995099299767058342268403123740460117850714833172022832384977577826048740236713602106093454338920879416532130671179641186791376157130429447406318790414662506775637855751634091859950038797539292200479960584389354677744491587660459012599908081901126972330559871630586166702910516803439789479343826657537777472213398733764415883968181695170951694369165448083453523411062773214196533175893565904129965959174980001165207799354217761031415374458282216183892353916918753957617329788728132488594175022447552075529361133914384976670272718313979990167755615669146217387048934260778768579004480424712749571494809606484712546385683784914093221725330295647334242042171977975295586185534574057221850602541055720898243245226834132667029988821077182963998769028302322601188416065487467466009653480969324577318628817948950233721401708267448015512207163878205256860912389098344802535172006461158609077537113821430237833487651639207338361503138380159149886484537185333496055289441246637975069126421458015161703709853380288888090996686177080905772684209097260232178966253308513385267083964578063224490968415576003546213198238158559701552303623037237436720094883677194498395359187497187750406213724887091534793573460508298021137542206688471614644549761665728971895340070290931102480726469900614647214827517245215088099674561723022579801344371016063899674731914711734415797437390243201898343277951032915109659400034299363381402593369309241978005859092424801610091582694172081759408489000197051778091908517391818671451067637370002383883461121379045806642505201540403057883662710299365808425386039321821872039852937979590791715106663157080544966558609458140814355474397483017439466259544246946773550824675077891288718384951223622403441323899177114208802671698733177105773123551932501570732494152304697409051095692674148414752474409591986972515941591881674093710037865056330432981417865256392443329238418546358392455515999167701581375560301893423748480893977370733562318706883881448193982817070218788977095212999451693012119733634468804762870082450645056980448797959677619705626472819426468125372569233363473179617592451599313847383415223193923503820099499724094775648130822358718447939060504544952813517078792372488587025722567284755453424844931214379760564992846497731699919318098614959280553569911022626063944545760166122975838375423635471157032066701241449957747977066869887027383606205802110396210061304716183687827757167005489650103791394124758039088867015430610969753317660548153861649500556574922688005734454234326345740701807245511590578568586553840032223891209399584416034058553580307559915114577033753870540566805197448919732946713721382769064338170508439842603401205640960446068812940792296292783313673961956051066034281811223052266684667159753091172099227169780436310354107437948037557411149438319293211323517091840051879258653893855841979626934220746933447196014970294302094916151295308219418054038386976974835371481670056483811914765635533929989462149728746354777638177072385053281164588834180832797373060125717019750111506983284313516046901635517714578045396688394196930924132012565095762125283088003244924972338516000335288984598498421476255116369198931427040431088250319569351631462725709603542645548349867012974688864842422177954792597004596708072830108303570647363561721771548266632473422182502973130063709536589165903037606570014057199792710249925250327423880000324194354457527355320055165192632026520116070294115827803366004004767384595299848924557843665722103825787450642533950974797618454507153111457101214255253843945185831539652899840801023825556870920325778478333281118324406657478928260143621488312176223312362986525867744729052351473835713147447024040938531109584812178757175433700568826257456677733846606934390655940075738369421539155767447065637181109500717529252088537986260926234582519366473931261603756225104914297378257033109694987681804361910871607373808907950807570780934633930387957384858918320577688713918573428442991958698027817163538928112918289491714899612976435119096746263335752266376030593034901713051851668430209872834489801889316672261401761591792847877120722616178264408904025811121375830542524048836081226040468043749410912591861295221555058766317464805260182123424616541144347522778049316904155545906114670202784700643408594428728968375650458374274807998019972977935060904042258037638342637160620368319974894985156609961971663998337035140474051803277881313078300989093586810487020514337252083647743072645787210945866987112547538126487162928820015735079930936402397779092802114702336082145215997685198100409783450704355675730640891149423878611786181261285560858571702088657437703437997196460794135954716983726613729540928657076486489919761550442117282192886536586433223260661385306159459811226422435630698383793882666904174410916827818589941662654530409236301404851043272647915715955645889208856158747253750860059136269588744998749714159741858932951426558528798556456643901463668712493164183751894070929013252888825430941940064172398604660955179556009508146231967455195907910048104880347118476065492087607639903766420798482898922683147751131877028197282413386030943179838995835548863325468245964127704319644913752541021368576182866815284369567254329819038884907718094938807610818033411135708690732570776141744905085250770524804841632971465634304446589971083110908218949350134716486355190224619306008518539313593922287893596334229233175994844423607880452193677781041884343890530332349334124484887054115363815173452668032397533712417173463934859076082414875832682226623747245433103671379792472416566746709108772601992971353247264698736411683258108487103253844863505985296909140232486089769924107916278013529592742273512107298351363891161138929959135641802685961168456663546916618994211720267183617139266881088984000017554220578412089231335221768206164314541441406568151218392553746679366243203621777820253242771630016677145423964830006169677656175964372558553904284680086039982029395733529620828197574584454916777987330325857899252084846092428248490159600870892660518246536938402262979200106442790879524440073214244011756931116483009248531076440667473678226274636051946547203455707229503325721509397395111134169414069496402894181287287016821467751527835568451479326419194490261299969251005452345401762208894562010507867705055604464754515399917840706250607902362186823701373599545126517026337409077244708289882912904219042463067238017508085978627023742726934715037169605779934090744176106265095424540877927105788604382346381618562531344254512777714031097390944864839132997990371782764709641827247677416217024146248210141721879474339675209740566365944361353049149114238819765392676176816211863104141735044547976808346408672655814896952325731443663112946075509993801059856872008688900242391203685623263552313765569582624999439960486950461078642289999025512710180388395211352974351095013627184596272148120474450410318115674786179639852142810512267496864595092863274140249215328894243294857431712019297837126131483947169436060692900318856198395057097546131650266532537299990598013393387719410689036961971042678439173204623821803941330837850509973239597876723135310709109177972008944811001631842864385149785006324527767692269449599828361769116345509784753400036312192251248899710429719395674531837216473481050039048083855372750425804999391787503369993074712408753354919407365480395313801686235715468333418412877732897590669852933940886490456007169201162584625686576784084164785731948137769177452865743217679088717968908042194473098078369347745921930641260341957217049513582737485853873670622675151060213169070069286679740114012100133749276292113883591372752743396976782465244787531539750004527638302220931690649404711018586859262314556176408668482563811665716503576892259053354135206253409389528036001809964414031660871803165993588282841683150652532179652125717952092533149647192949607459150570259220793136974003747402865358672762577614496767341832610619227904320151659533860428142957868598401564739786437293201075916775341094018930077410719550582767369515753937875094102455896851924092039264369675818488358697206497032034199962095249230053537485346097375443659097416018267721049064022816722616791387548300418951815889798533120911744836566554413198425744221164554463193679379397678638291417791388507290703660097624164010957834624891129623954733620613248934017002375302751705405244165131216788668384441955411760915618501873817019948032201650223964733946797662147287145284231605886201455543306587619985497011176999789937811872768504340671993171554400082665123196264946256888304560124980414218230104113150603495655090781441605940929121359762041005392441799121178676810959969289959817910324469223333352389381767481779509836718301579871729639307601431219865202384747653795434145180747021212076954775725102254397272897855297312613736793807256431849572718905003316037952676258600858774231935017228288980756524523311446188548618559426334399573580107389880062016971354357648405058037293614320460274792222687114914449897519890628013262409680339152175093163259108842811636465648057214362789567230033908133650131257536649717365787826288642637782225552260072393745729323845389094690870936550312868510098904004347123994628252542968167513913507367728017595662438513555597609771347783088771346532936953008588188045863009340242097587296718698376026982386208144002816442334484709766470332307151910687820082175793159102830985211314432898120979937102934179061463995955603066003814529117444711159037552981856088921938629049197396560661516796761669675921170043934912791396176806283759268308526735926287403454286241972049662647742509521011050208172166542550150590186684770366266434033118730586542845836766457430241449337684535586523956302737433996883369512703305777968380781038066519400053520649123760358658300685341793272584495606532883781585333203493206243424185575636366776544839464556051133416997210730408490872460652552314159502268310018441523033698567665821349000082956493947652936488109890588925044900828864238223248225064562387727706648473091164255265790247842193990260344902933259696420760569839993390073957675751676707133650476226489573349130488920320104507432331131278135671418581886037671091673920572108313549498142568000225301266443063502706016152648725292700095037795444890296980899314134507930003437633862285655420762247554056838287018893556618985636433809432389636989777266193023710374336979750726422359763600512323714116804633980557578076140184566160789294494803087469081295493760554403304839201354198095656276246388078860856759130885210710179397880015571902068343004004102703062796501819419130975973558419809900109689387245590624099874631364985984901009446754477290399517627223103505666841196740820820292396017954695587272537229442930422971592414179729993956660946961644810500319676063753887298127783809471166440484339739070259481476238680539262411535753318137745605730672061663446632030186046648834470770476721226295162977554428813624782354400254956188794802058321992948828478796549338560143112764989177100406196431674442715591708169908763486894668955855864406684059614724247077566859510372532340608659763564650451333346390934126793041389954696301788740166134773934758752218089781463176697962241560229858468345844619514579574191055246597530299706002313533584610220677962419050974723853965979150095436559603279124497570461309870217421626926114005287899965714380137620361008217937240721666981435541618139629892732556257474076488711592830297809439081500230222018082942561236976719241913399547952046349844675335673175637849831378862910091819678700743441936011016552200076467573812774091345435888799259575753895365715957775714191508587974601574610562090766717306066681890333616918404019588436097551264867606697336023010763850564854582615581190803385356982471432365400121481283784623566625196205297919027290012643097113858771297573127336978826783549846833959429595339910985997320609771136492896061365494241657369580144535244089253713795320234520405309076829643145916473333266633892386796320855293606569742276251426406920542588741001810182468783567270753721962585330062355523868381078746370515798507687334871576445302884885129034262918656235699156347048691840063402783954431051431048494961598138392375346334810963616078312747058385634642400933980818838187072171352783517212444752383489506906392658887075764155175424374115316167189633723432890280274428984919384815731870827038187364090616948944805496758751302950707106939686677587157881871691704012727043523445530235686716162682413209939765725063155292210574946750059453595208578026652788031826767115648882001593088243245019116954389837881778931181695968565770618636872341329164816501079183115981883121311015678021569298014628046133572784299492449547819760197009836190653141563021314470962869028122654427921085314574367478503780663501338174177700239596956782025242630284487452147913789338154082415135590434996835279736444811347123809725328390797095498739246946740336751277746641329009541047202246746785623932390061817260790993281401559863065992264042222782701954698351222345987197395853735165544416160746840149815047070165156137323867939974753007592997010643416556358698950207199049933776335148145830407214634255534760024850339552797818917208147014390647411300784071398346991998275131255472641300064041074344985195333590011268569460998366491068813826972028307917439039751871160005860853963545611112778055384866011837402606125591982152248446461141528759138314492125968614356159548022690808588792603060643871875778081142634773472510911432411417700328434580352100875756201773770705488735064690387533909922091366191316372101216399050987857002258416113853674379068477303068103694603319958418618081859023672355501479426023393785734840984175508972660116583254829722155236935050067593479237106481878936046102464507714035187854983809231058477780584044963249100826824208749729809856395533367303850525916959398970113191185634968491987520772411162685284677918601173054356744466094284750062274749041143141411982740639760978903802420039738058574524377448597114359999873800205672122897929049183161303155432410052048183799586928312957458345448674168900431278501719456428304477428556000588642104168609661063581004719177162791185798710022597037606604245840152716971623553331021320902309509839168916961664644395608949992727155175849824623849189130770713045470734844472685177060872194007771921274528904823430590259156592497086343299833551497391515931927522482276089403237609942835329716657104408447027321359258525108993752777774182276453228213689732659247993853811215853152649035448270424657905354401395285032514237017002685272019371117491498644183532034480417555927070689147717073579653941278304385791079113989240813401306501230924993552295668529555339377706628323404402202389384406363342461605326450953864688835596605425267880305337079974641545447306487637760197636392391205262874789188614315709904844845281075261309262058557731009077092691793019617411141529199218479835785528299440206973423667988401381735059237014476173723273823828124376957337635602715647600672494795598541748518125790721285255921565288399493470647517116405151848745821839963459204778357038049504568775777946562246651028593367834370424192970477611061309003465887176059875175904623073545370345505575115115039510640323255369548812770700240026852234848650474498906898027759550117376773059544004097511490471685673367911508949674886598723451982452034814557057180913929715226580531789709040800590916383184002405731527279600715504356374103549712043316551281664384219150009373421848935057426880637883536981665969949523959662188028366941212238527929086035524659284224437224689179190820955538247183603368527740717844975712796374414586471595101444960089165065136355657927176159378790349217116719632346705370362142225683798547988375715389988052372169620188009449220334609563527172900451470481931264604848967220598990831762889270653394521269230738250912869552874412341823569389467327001188879556854557672893981088004747588250206299706832999072365274149524476105539668013392882263494899751718529956198020028943225543150981375401205169634632360872636808123043856333250574373082153940137535449396807417822338818529022554763034740537925490261648574126221043526822881857522229336049231227019666131687494779074243711501566947274580479090690769676180831959778035750556956757881035769656070753272713928445550605550721356786182586746641887653317239604103822507728958332175239748664369228885028878681530788973228165223764573529002188417562456417185083774067235447443415149438055288910525312084862259845671528070314842004110319097043677912918617101322840294587226518086915092241427144231902137748877236956881173654806789375391126133703269414598184146221784275093441594084967423701401043723855196537240842565675048496361001557699360441600919077248276917673079011821160396705805513110514532816941668532793637642232899731048302414363790715088247382739366368025486809775809962160228002584567270878558881817152681627535107872316330941269729742175917928901773902699896644043810252643504641900013118481753043024773412868676741847751205348760651600379240201611673938053905695268719373193832550145214990337770260254679506538782555552476041859722718180441489426225769347654199309479349586582947792165487612562090150449907003063023687395758378726295693382771673712994936442237174123369248932219055105414826641188654124604811757647626224934427553567651916503872894815664164216230424836628529300290674071958678314390264488659013982386285983585507135131125321270101041847494778773101511441951091488694563421259668292720659165859820919631672812466452900717182025597788267415656165772375359094844382751967039961222948232134749335218663436367683650392681778960937008714762836538119613473140936561669437982094460543554106140918733642571269908814609085337334625076015949378581570942056824294856990488139253961414591039864931166512116540050997921822075494017758942628862975496824982346238394220312945601088132951184923711259954876394101853721571789711993861393346928349073688556507379842701581333655126239763260141516183382176714227555525728049540308384334798863950825510421594185634496686570590357029937658247075673201271862620335240917193748622228918379856018177602911882945495151843703131655605807004891653176265153921254449332502172363936535744234027834864584823009976429493004703433339449424663340086365043528697087013647440426520932066840048783139860776558298400143125314378446158596530002720649022524225690272554339957710716080386675312597466837185934865508454132480677359213301845600076001313062189406477360922630480598241985211618517959464424733222584317696911529651263892776448149968782588447423798561181826724921072681404590041874951210948798158290747823820299632652994596005872087196608833707197287472159628237612458373739322713933549711425613840869852345999216251424684815239277243774047669481252214328369527889475243204732610798897490682870250773800830956900075445628290098150090092983523756013945827307521171846800699770574555497360219903564619594964978446442039062697938129940917398159162594698184814758170838716329016007199578891382026898429374350001355479869646268599559023621996118463686007958839838767318581525341567162423804149225914491425180621014501940857573818911393361885809560442997054194301482910265873471647383494594587033985675455453862667256744688430919244939413346284721639574404637973196839967071870678266302957021905764051138992539684249703829496428530689979676707758101198971222070609572632197142993993497056154829485001170653173818047566418611777705557266474752137969193128532289834783218749886575597080734323312110457282334932340328792810039935748716376631200814046266583369519105270341277929639996948794593895193097836357691707251696653556599242377980708377034648480055925035133586179612437273688209612520628667264353555913855163777892168885103351634788550711329444565706486782105850708965187199121616832766439159484341415282672659894763564728608385560084212742294061765837877720451687857156492515458167512861472600446583476154137732281993863128664787946156313249893800791151564493468836704275467113907738652891265277367044046696792946045105697816710245739844820703635353533471387933317910313029895820030836324197148582697760518976197827321028571729725895626638323237389240124417197992167771012920932264657135707646963061478696006497397360472882706177937145992664299386627998808192291460133164216611760440891704014156579838020213940490691948161656483414592136031489142941237836492129724857306902946366317781455030446581583697632823613138452910300445842834759341753194570227319066698244585531322148508010074645121685997416836268369122864884443251399719603477521518681073070226722818980033257558159490589202486503283987367692326920873001070902382905208829530723243622937983288763171434504125271755066796824031964965170992994665613323350790434922449078932002062977767333156891092703784976786944783708175510662673433400961840142081134966368759109379815247568584803749996077776094919866179864718738846277723272652666279573514763599787323902007067294444232700805191695087764357361698361468490812122225985582344872276776315364206796093522395803534155529448944542799604674193461920857282612516851342014254287679235625586345888270607908215598700888925094062720010049856934913911684375319011025061304804130542811577705744026503892103073452810052766477510580256103738498560783562700345104478479380042828078594276254135057078239234434995412621509368261380483798285702936599591898492973641130640855817474302993193814154067590582756803915501751829004628757406954996284812643988894387892040859174430958429711355916859910315436448499290355638514303109628450306997240287743292730294211355844426699939813909152629532643582880903066334080245432050780329805372275506356422933611686244741477667461509097170975245640028642194731796135407786972827899688674870852329071383377677473919553845148755566768630097853122354439471270520051557341851078774170766706797282119847617940329873585643132677217461935914056249101529459241627634466515433781110427054236146986448555693437690133958045738931622737958124206810124827488139028683800025911736687751438500855322305137459687315404676440072403503692634282972503802755240805923776366933961246974792864367367904155368289100261758592391948841916612280613978355118987714656827554071767602085432381775674405245275779541053420779378905477331795367206962676004719952544659620767910515672554421888649021906886796761592837393343447252419902613439458441875189753239460652024027871536781675263123900976215230973532048258942808542068448258357031590719475248183572829222360512724536185568325738886821370810202512729244304729022173591589274831700385854733089889816818014953804209922835416945673258092281259801834526288705802295185674496319660416015381212205336541140043599441933977693573922402451325717568169906172914079553332759300313002025750848227009245230540281811448861275243233959302309534763440873421226806929264885898756977469648830985079165875207049138007233128605602641622571362562340811561733963362906682645185027190603744234180752272272402179252427252557965811557978376750411947595413780127144835322285331698091992443303511459861436472578253992553795823097401514462594787065899868154911395211560286879973093786857293783330487051597569882662846390381214552046218705717109490199410848790533953046365330869793013583867961963223912874475770495547804046870616858516709205060227498512182153001685784539928310703661571064028660425673059427013984609660484548874624948724898821104311012936636374683860555180519020296872787203827854467845879031915403569165064804675401539910856773119624212501509828478207265345054579334866100585952857079668297174255890932455925643995308935243134852351358015094728308356090875094985715106110951536239810537201231616112882285842556824745773142303804496374534808307968249920825595089363164821135536290613024615252774091516701908776887118182486109431175680454354750293617080806792863988715248944704507191530295211091792613546202888711578846375722617438816110147383996526596675606098435412032036688192511236326667053227852813312854759591166847578054122121618297852800955481961783820164529213202312013424637000160901484478223039496054235683182935838554029402169478987051998326738088295209134728984197649044148274915578841469561317799907640965759216706631799542997265696274976811763888474318747593460669168214957727610329052144684910639045379808713064721573192823855697022202456029721763282814236373114514891185964307746469290229359094322024460141273833731602715597654620488674370444402259126354058154278522509251238874794052175336445081453814801358972084566580533756821367573056673838226867370567431722217157270343400471975104221836641145956072288659004529654719438636044078402247441526215624354324841919752727251797224827715828236610737500132461129137143305598590350847744843484851928753795295940994906216287902667709514009795076606991687773348230667864845953773015371098782647529173603937371858556383162953488552844448026527867931098739517811305775201405580874060790825147596069599512184602238990721932599646170648771945369301133518384542543173377713609309424862928649599180190393849473217398911066567398166496389609205752584975291906892654027213858002412153214041689450168733005502257447194999490537974700339484112560033634859734016884858842410547938817617991474064240881772951674073101011007824202601453657073013548608195793762612114587696720706707544815765568933022834394163398356456100239332564547432768924692749224785209448575625593040672937879017803926223735230945174471895647918834776977212335060182422020723900583155029508874047213829322339576515283383585759353609354427300742604671984089415675394555558234091278909644719300379100860332235906395194679175546090986952665721036119301115457488727064159028260477370587654683142266246835717865304687723069990213144902634309515978802693908089464021094086569465342922207675527810958495886837615473371053453348595229053144109096648459226635681487182244373755051588727870704774917899528786871706779680243339536066661698390033117844332088531701662946765920339229199207954981624881812017648461611238967011047992682985447612915979890751812403169377116757770013326775199729826801370570924135381474818403529664975660993613579424988725378590282378027226460782676341445526190866782711966407201256868569497727671035018762889925675931650817335318231250706638634467046761921611177755991865375701224373379630282537114353444485867535711984158890809062039994442076461734234066436263748492266167527814528358604297478530927497282800565677990729168970728840565923875817419826611261884675346882991933852745575800718456681311185679092628436276012754179410506255478544385968097369336040221247424615816775069303300307697103916488619714009238891675355078991613414559186840052228852606590625593222237709167948362044853975606854296964807884024968809248687825461784357598591815375542661298639622624997359087849901491850132541134523899773383188597844715476242170587275736824270243814921453365696868864793438610098429411582440893397404823374865598819804364586557245425724892424498665837637181657967844317530836463262707690510569615628681884945410129473375268303758466331174714705874153823336315371892136137930898959056233036692691062895175712953661748594953727602073103574307099475088000406426408167552589272288402655241029931714878561815445612650485002672651543141836077432197078113973851148914053734216162989050164481441983078580392299275865389511025587559050433113314587340445756662067112163099031676856061214952079952208433131655379803706574227602721007413663757036616422817834120684084451970114703594106533249293723295931454765861122718065594039037643531132848667478142237552598470075073198812521537564384798558871210035812263759560867969036404640095774170752965684471516199197319416454733395254238709152805891075922908710195804500060967338215039079583282987917912204260528420752736572738765903359078409195987390022943713381371790377992240885964021168571073358812594043718797228639987229764052312044941162746209487936227572275914641365413565523219423042746119502298580000005468835795740282706117400722676724336240148071853796851648045739969363009817930358896642665018440844323974293640426785835512033177910785542425393444275984319643902057568850595583832227069314201935516882131113221632754183164517089955351778367298527423690482636226434041899338675795411604737131276568521644366332697638184139248195249593877566020392344573902308996680098293316280174643802129404089167819231856777337244602705096125225342743805753345384322740299367313981113743784827494182589195448941832547772460598816784453442700912511690753552261763499514954726020530983862387327666580551085319850043888075053484316808035257146773624917736678563797764026712079084775487817940883923466063925558516653343969688057915596885445103406236538570353715681568799742943591584844552550580991359615335526068796833967664559774345726005031263609467405237277908381567486095136424217325837165587511336624542581337429569127083163601117175235756962054874434945845081480250340304634583616223521407846737488386952492061209318335289774901860460541151029348062546488101947778386112595204084570542524415836927184574888369088280774667216196431142467815647182613100053113108235127147006242018892493492137319331965568642766835491888365929372847689585055740099367477599260270431615084126872207500186176139344964232129964719286036565034698390458073766573505033578286070398350707636969391481955075850985721326995774187189296992431174312922158228197364774724677833389938769840778207126983961719212195137410022027556599567095892296015992755654939870653855318684385122549143542773074100788238838288057545794346209392206360403548260075048857117232663282227373107390368160110995448943790215831491676443490758290804616073988231751967309542547272503028894527669158923247492055281948348489163054905247219221993684531334044623452638488788972984921083189467160412955452697568531788690462643500167900280478654173888789130086044489086031397256371342024484475824177660439485317265469373934834529373184778881756625575484243616351600587530781683928583446642125176022227356278862235252380026444592640973280895552856170067406548161417638739889280223317054405362584803928691913373425006050070059495290902727044994623938057366386453794319533602253909080189013164844837208902949999313693822616800628658250376534983769121429554925619475459746320059141024567074661994800773676429468195107680723424910833871345987539685954010273685514139374848492984977861835185807510939286012543214379186414771843028257753304934248971865303659466352952209530938432019391673602291630126828216239016253668898266948540796590086667637018560207638053216464360078808589811824937555446970768249530455286495897775182571750874617612406463573161036505909503042255303024471526064767653325249415782673091983608803662082840199689327196587782502093592109747213082369038700396578611810260627790189526137944428584787281925123415835453115838291137652489609067581250032895208762793755282735686379129523915388653502607282264046158491168850758416370578138449608695908488425166508355546918342379202132162393340131377489709349811032028398623129394679217246803803227270886163198699671801234724491710726465877247150749042228512866365735108570054184757954726028993508085949030605064851909593733446614412114829333357966873572693887335738337454194686378969069596192803509381538409231543454272452412581969859972287546592707512965746319952838696847963917078715056930190033949905355064770602249442268995597778591502014826814548685959776960271349032855245493268324031434369400025890139645409871208615499735762974235736004023452056680137243120631066894405041896255374403921163646272408221283634775726402028438245974640960710317721521322226847715758719455983297863883677126009356136354017631431201519692032740192778619779952773617337427184564425008030131453713830681920484581016517507393213000113227042785479149821797635335867692981315074474507222270857604290035042348894020720765730901456811045445879646978067693259010321859686577400546919590429008986817948281955836645992169033885810650662601657995277499421412464317578186598993251981999895569943669140139376973077744761919369499416788945961922480715453880883229928503017661480210993687983983209231518782005566558625537156349079711662317841146803169259649536814811623022248074081396240567082878741763609132684099123196568497584005893462389383965317926777336757333837415316974881209835034121291091721509560696725674492350397630736992711066204216559754585980637357080263068255823734380867397943180261694971846468385247687276473803354559871768364312773980437616357352475959448842897795918523938985725858375944387845381210163936929550131592798597653699502383967422592329287093214840739024756506989623589526390519185689738854481618898580289881027941549854938468465394708942803914033202061936427110001906267080436620477894624700521811703748192487206751545238045203761031537946207232315548468715577202018703725388864386210980938105433579843432265205903607409119533856882906709516269018750682097992150673112661635607581530522827284887652653928791000168748144288194347882189760073843030859974004732902598414282283276774023577363633137397239701980222921172190478333087592271313846675690598145847423801878829632759466817545271700929374109795470002185250931136480133801295078988644301211448785233516748554882406542041319983776403636844623266534627538581754479069213043378187813549807638478481815436712761958457208608244826875129456294761706200235988210529172814714440587388962242856688869847221701798347946384233079189765049864670928950011664485112157381872239393518164685163128033393092919982767406925560147378593815273412035191910436778270271160487864696849838203652249583043084985873093574096216892754272869651687840065877303163406543152608549784871040917383013541730702289670288995908531361125324441773841460358624620527879569670303271731501579779533089635885369647345334984950584906867498049517206353422154239976595229870871447595628853852110930476043207273873412869306638733243896481691257713735280640584156808905133082941866594447124278419072730018290197729812151703875005921577205025788840132224301866829262740444072933839967278450767802454095315528840753866839186112052469689451016663829956403633115836397859896583818926159148304788637093662651328198770564387015087006142126810342575615481772919727872936697690932083844496418135605783321527553003313420627482458241128002860854685033326255754753840969115160196307018297182747838074177700045173848673095441400103921265309388617579999378837948266697343438774828971735193994977592015333008804632366202042338297758535222347740813039290422399724576238949324567859947796238909832586317509509847937894850367637621458075866175983645749385792697580742988884801013369627989985304289410125019646699804186054120355247201817748405835934925301326837513394162635010187558201928785597852278958164944849153710761034208218527733535076271458026228629478887584168299495737325643087626290782863876599997733901111653308501329227904202689795004562138913390938347241935507869228029127667071466680473667549725444815348005250369177130619651260162046182762894750249926716516563357025103453307818081136456020096103579891917986146751568729117768870613383676667035497854392153981565822147790602957079664553989200659290044683407261859433897120867793626619249922887032867937689795004571858827620365523694004998375884118833356688598928401832750784880563762808355007086889197781045990879130886728223721965601571751950899964783208140821195237583190875500644162817018835910230097302347369011362807815480703224063575597395028690751176299799584072813533336518317565389104790697396046428374362684082135637196184217239245662322035842492143337118192140453941255481417850628787471849402159108383310974131308138025600561645507184933728936218820643872956284757386171960754017511075662188494111791940020986265911882042843141439692588940370061418560212762814179095313942591526854914049116533449361021924003574420687298422598418109200381122145687860580813676008073144029759562365945087070987727920601884088428013151457581009301348755667652832639065998575796691146039355198756585548031975327355015581121528752327288903108868075034961374941524118336752015168697010630980173567710562578248631458880757868625517973218958653639121175398287337628738509206050466539646649955182186587410986081043086293995204761899164431334743604544052468240328682888231237123142468124407007279318128467956228348701444489441757872140425007952606948214220625965831721427993038075827255228401730380279275679512805256242131757854480603735239616149474532584987600659370160994128515241524972436170123740709433978471884834223050562051848328742247914920747049725780796961325036776795174663064858542671819720279058490157504102742917962018675193633647552933680155466316526788881221716381171545669269162403907072007273758458767660164429892390718129008945931467484902392343537794224004345390837615399390307701521862354368647866589155736034228332669602415106263047784778861650829921834153669639693330200513589312913130597493115142045849888172907157169811864198637364113399969454633936602622817196561087434173532080855065984717865328859951096915914380647684561467907216278846349710528719540129392699539866207717480970141170548580959643723664036479921396005329806979874199899234282159458223918135503282688840683797974340943515562476736793328248163711838793667425350009978226098812286470881011134200420385600883713345640540798049921023551960542678644733648071608110935071457592840804056370477216129495817631896388470575985505979041408708636160364667835982617417835541544457829482542462603149285444574337945441427562818890888946812510904982787935487602696349466197599493155419426627992345413745811313751231783578711317186456166665468735859001684392835083117809305823603070074513719319025021225971542909283914090865038215411799892782574902141100746213094298262142493203039236306993198176758986754084712105891197417431189058504241171187208867404444745026471316174978894138522897556415062853926215297781863598989588522858425180126803037196291415930388661418967239963305894825712932298103765281522030243770825922341768764780287189682698453187112038323358252968712698562067632009530376086784836285099496959114130046482503065431183039218003814848300482665879550396164404939183590591084980401684317370894922819005503708462707404131108980501790555018167053352204276533011744111721524856397693773088863225420893028125660687080936771954755506709730730001638216169594861451433753733880767958056732126187318014678875160084356287693477680783308969910839384202465825764466769432428737891628224227191370705662021427873420918016394862219310024661863662543138940873758010260547121075599542549733078076792012218743143723326217003753508787599579317187321125339401137919400795264160690828677726161663606720452572106129743811142777309999090601151968695075163795085747743965116577559846405098960260595171987871911073873493211021429072317955645210167287853523625403565517591820599588393306313199050189757732301016647400451168227056022731468399991944702122833017023377427397171492526431390045083204296852488571439003265023708346260694068159674075383696822577806624608257606479640355010934198219881139364422912506953828314105166377478204595389791449821416727105581687930525898360989842226985264791940308575637912019504850327236890507750028577029800240864945288063568819041617201459749944214457593237015887817797372816039510788479420385791564514372548452669672228312257701332239857864612065121796605928745804550606067224940797018504988960663970245634800455451927247989743756708231604676877834899536963572386115729225331615100604573603260292874789832147395195901659923631958825872132571101557974813692722596167392937501824560497294800162149316011056470479719682908260109914791022173027691946424419946674695586935122316256648782788178501902213376211741373123647885720871302671989014617246345797272301418938503941577796364522329014201287002895130098742548601671813500510615458876440871676865532535649758634919245901759652861075755667620345471222149914797097878329204204313479752129186044249237530541916701476608533743849836001256798242155313994088044837251022642850175746231117149476797331273585619459697430422067514818991972871746486430264869404020929324641642416118216209325111257292822660373184987146015889027472309199667576329815702448746349405104560289106748687976251184834041985538396990797608324588195598337048146966861167169461718869592354785806383088831395834561481298555190905006829364686361664722775150310009136275688552283996398994676796003036284556235909775994678986193729270801665822541175078389416413827275770980451170024360201949010103856797434096624167835207545636736979055409278994947886398618992323265018607256614344341694575715274981171835258014408550144509599995917490019389154814051224423286639331229854389226819713070445433125149047165060868940552519412182572940635142036450954345241732657333849436226366947821808178713568059968150356934966600779509420218373644174025297965492413374232190934376679471119140357911136232678458624916846028336421389378526017337777462657136220810561489483272224748699811095718984253009726408598066606074925871508830906974067011249683263960056755407902869574192060345572486290967386745451495399754285719102897516733223901028301944426936016134729956973082430947171185156668647313800754406967375180623332590546150372234088885938833197576920231755248462812206240349278318381323890920311728983865706364029558600219077439116427077316857321249899000432093640631693042967792911896772407724346965615162476854764100565191974028169409083829939603207711477329426573899118651571395330166704226347319890774909067341591884735776863890038618311006367790682226596574132842885743972082067696225818122383762030794789148939498435380973948893651574750198652397472044899498202399213271564205200106407604367294501567994105072656685925919691301509324617998437239466339749480427974455279064522513891123801183907494271170933951903010706240284519314443267256803950587390338194933481478405655703354453768833032564177377550216487526233568836533379222745712271180643530125934210404344290506725344654829032792389407073142752364788400503264918077768238107372896312557135349191508076336687586510969747391132366731724170138327159030863031191996426703442406296829236377365392030742524855118704253527288967493836991836682527287663046478064972821425601571632338540725833696818006563826940180204668665196229940656080303885184399978380893972983087126701410729709358999301924575617512733755642884774799768076616749627254323554870078978352272460274545965115367364716639004738734190468850808407740421083741501380081720724638562220923492684965802852990770518239312337144664096082602343464813237894761483470248787230898328370937942424201795024074933801014818208670924491868174260450052848347104504221588567831300619073704460791018370916618628048741781310339095417335773308468421491937399376138045010859641061419455071267897740352654722591716434980093899546198443271302754721796148397627118436737656237743107054964639822283803855717673321130567066118518077789406730794726311966729680917209656422775532921159163777642813801165161773998605401694654357721853819855799875881852690472321900287182414157646452118059530617435896957368525779480752629184207231291116312730172617992460136078417070678255224044017353815981858029796904954400134465086290653950202550474122591022015365488301602632643270578772846378230705643913234191576602078415452971527492985653412274333007812172176219742233487787797657545486828256302087562278008235254506580758499646070592774829226197807118790156583443162577864394672682239049659061448815727085751774086442619009102062695943801965320500388172183744534933505187723880114659538245254566985554168908712451204798266082580290578731775102219240509362191555504174028055943893424248268411151794558274212892564680108618763949777040872766873388135696141920278821557580587227117474405470704659743115196567106385805100234254415545664702559509284740987818151963010805260056310933716027777110650814433397429962889698846065495390622618408055037373760213298775585566141061858744696266739904485577870460286116962562201109552231872749944922939217377536433342249043663457691853001629740876589679713282072877279427842722676110903273434823416051492557661785614460471134521687298325343343371079161413510659136833845352643032178087296164112822539107497658297468232359924157416195554959997258356779256028515950162603386707199550162647909548502988997133722290914864335160759507245413831482449794287124778790975995653901208504626832600580984033200212362079472083562793352615614723647931858008741151448779423844032749555958840241642006575947209420810673070548011215726992518858765852686280157730415343837133067299246513237850587215794155200889848062450584842930163316304971918403657978475187917936434633905138730952811330541775084506011939330717727896834168358792734289484728018491041488955305619533217014616495375731559015475738057022381094461895215820464821138552039003315738812523430616286662551734953904926871225579657211077251042821626214333663365428277853710660266272272205169433792483366715077619379428172619932938270266205118807182883584642180957265373971851298132385578216395427226903931749503186067258853016317897876447585461030061682494187554568454188423600949858996347002764481223009223173950199222126737072141022331610402998711018166481149669422611605895945633041919698575617462340174285744490251908889657686601324952691776881230821597595139199808521796506217659244042741386442937263243114010969069881409202820473863239949509325834903513039764567081817151393331919824185517485269162687947276461662834030121213203634847063619622236060194309975359824404224198327922226867070084567386573697825336151272412929831047764735475725831765566491222610654996808843893682894485626505537356766175345546721478846126168536698379691606469927921245058227087456642091303173586317917619539172546052239437800772567720225144290473778669422155713746874480422722298283503344511216294899536576930852856442744842694693377215934056069052130834018974652378400752468643039068143137817157286382921417951693062540909766745680672120519532767107038559532158850159447612546226614404371219647616965848784389088066598069863666356734245617489106863333339740569247322232238186837721163790689808146650328297316236925574117495473626455347285831682987065533604715563174369918291907805271609818500876886260475670417077522465360995769570678189469670702586605716735167005860696202023197919114389952606398429986640887831524048826542258793926621745141407935135523383832996009875699961596089201708845394638373874395533639547552162075930522957361658158188994422104437927037620203619957438184158119569129759732296363038370860469031943006714098118607711914672852663369720085418801630695929769010791382166977775701434026086523670393023742616629938468179923600806577616038741677149099510307056626901169514914845585832443770594948865428132581150590947572728547178361405665153463823375657177339333129866383202235793981324951717155912472377875198170452662692489771242451106221016354619948255452000782343550543320288909796358745168662818895378818237367370739246714485525360132962763850756698723458492841152669279775506996197077186376725208208953897926358903591958495457513327373421166993394226018113643939281162866845619216954020931017817235841942009267983109258571770302703869462718750905604996871917965702919615596051460895762946430189669432855892307434063046067803085542947036389869377470280358138853049893938251475485342951826686995135126093399039542443788259194593232971630589659435323529785674753683975627065453759997571790737710651064564581250975227662470652954761026227476179712735230800606360226090770377217724511746115198332418320782902352411372335973237182945166128895738689294456030414869941321658348215184345554541508943127985367545361062055038117704392149285428768289133563741704336830799778353042551266452626734500290437572524488343450047547066474518480158447744924818320384853514388458820586169672045219432514538018673622767117520093229271529593594058026374484044927266812044400622247831987850774463296865366329779789513640067528045856887405279005439141649813521198529220950915670651609377680140399283511721018026028170392214884275769743544998963816317703133256263933837169138346170617835993476782151759341139755201239402864721003640661282721789139460952549550481916085457118153716862542828017045257264852543495324090510578857086365938696672625363749863796344036397703275701433807214946780376575224592405891576399317491539326015979165531821499241941462615039176038556399342651113198986013342596131178534950799585431139855419778425262014130869130248451668887452160389317276092080881325591200145331338198852258024300239066737015212325009311231937228158201834611472154978174491366556154049605350078976091834308156345158955029614510777799837536112961217489987386095393112670905558021110481638583744100463054153887015133390576210715391233651094918167934168884906353398106154615713430822887088368202904871667303249276456491872809804149508797222337410154579953157659866595316053544671239842518874271811295194131361693561119765131697263652363371203502097258378160397357047692358451634429443075001265021903292368374665132006993210424196180447192689467615320587507587431579002745337625201711416559663953997905478759707420527193920494867590577894443182990676635465968842539629112255715451821735149097892409315906885261324252958517488518712674186530993197143753372663208283169033894991464017074137627525574303683342395190891966176037612457699287374273534562559282940784052251115102227680769791804146340437833932870632746443025663445469580739371400702123048008464153555014975668663296912256758684429510291710747733403433644809847919999790677194123426699785085726921536323141267709556922738897238950227851154681032278977787331703832723993166091514184295428368268032499593110812425032863194499365546482996784430080748295142433021832548803439779512574614215820791721531402001774842458963818481566040559932422520804746757922667272011449466773713951868215325370141752892677784471829150397148587177643996560980527605104985873751415465176623146834305353765215234979277654336027908192307687681116558872004454038490552613041933292379825132924893958457700402864492944866855358717688061505655169155783449831334639698817460161099579761617547924858401904228638298400237691171997731271917508585040141765404594935522238940185430109222249293813995990528644345091292078841435033342344726842861108442629496937207984091014426280740959020174178352555741113864141558817761365784867182312631536846629314739127140132571801322838558312795218835217795357125721251765442298772818728469592139572514480337849494275151888822781400745187790556751650300430526345051729275854891851386519652096871107263906225445695124341501489260658930465846669420371586065629626394368935066675888374995344488711814618074609864245344539358527350325945130770898717245498054694639889036620732247129198065493034172682833905015220297013587331463893301390150233962064485205618620148636546847404222400023264533619625354505764648422854126416546147789688706777255848066601310179573849639420161033548534533534431241076205702757233316605041536108183297626002474914661345716321853284151646509811801420805070820419593264920999766099144906876599884381465964086238572972032565282721783690095055117579535192482661141160008006940765163481425648456815655750961906367135007453024543819413027099145551358541560455192995394920739991419272471342939538223563141162931350519485384786292147515524267049088789979908741733253941977738932246174105265729856180482242091857886412811544325300931100013772864164422968927010080562755769407564177038910813120794850481222908626158035045321654384186883167950767965927060935939444181884220356531437329389679871202752179282593899963041622298119900716226006861562227071857976245197415726517028923217686219658512286846174440014084969870613532300531151986281549690945542057005588853308285872522207634159110595995606621329279821135838134952604515228436635619985919863136780170049509397958029029911845549142936644156806254431936368325886812284916161726736394108642748463459432396906974686963810187187936437344039251390937821489242207844693589179935173999176386826025506433790695812073678915457978440133475609548062274341751802609392180452631377122165261279753943363619341214531610670557149140524386148410077076576868682890228845661579575644842860558097368515313041934089961990682074842077191156223665790960297354835175951483808231787922525308491209739573987161501611110367305973955842538804998921947326161490808056683836629175584850477429870242682130582396825209619629267483400969579596888592982111973959029135072290529927954171689635601793105271523505160695859165982971100040481677301503024610216076149877353258529006752906093712540056503900572168604415168479244047279007251404901574486514712234571193139624448586100087020378421464405597298932229513552703637610777823465949189523644760008446126780325362663022765613694439837252734008815961660311067254309560147146968393128185169989625372215892965988731626854679272190217497696632867098597775024456295523031990371866506248157984218809353530121845384255946426397169176474380101820464588675910881204513164665426922600398279270677050971679938515000177935693819369115583368158177044192634901903171965373283971883398186027381117132277728065809855497173193579082056718014095403211228242856791840652705336389271880135269455138372370927893914357597669523226799809544764998051059051416322545214713341711213241931676695609632580514792984147733889580588973588827369615103150426366334682673389675164797974212934957461060264814199693268244070359574041753911497130199042524231102191566406543197947004996737089889913218404102424847889259441058740357877599148840297440271261907918796426625934249257197407736837695759237055701041030969624174839442123453838371260669670078778259368017252179790421972064477929459354425562081717474989714548430155386980135988026299816294921236008607658819435648734342472679635243710703013566263216518763993026177978628818429713017271492880700849231101854568959805945863725951938639330183948321241197563732946581495489611920378875546018366995223904598179403546840966641200010647768960292812065121068051983803115250980256488830940077856685665176529288030584222030146273614440081238919839191357224231028751339860610964094331915753408245923245218999244665439423796650463782262817277936694175822275020003026380521325727684754921020549163844357687635449111069784446558127892971737443513985259553492861146275559470579360104428816923234451238129689471553707520172058467433274212242733655131425352278209241450840982631885463605550272703952017275713517904157369076281788709810153913311762878229207406576420626706798734063845888877091318801704397816559168559667655905320907076355843564574508616733374457950208013894095859110576026631243025031394630852371022425434448060653222366003848696673826017114384264860409699414479785301209188130546930626847290819299556377140015378039679053674857352585768948089223196461939948371538669739816206537578015858510638486795288915829419802749591244443673068777869100745025690058204993493940071139117329042689405988828962181238404689256472723572874780653172327273996463532555887218133090115676897935347007867882599468383130686398057231141034453614054193261584418580512341901038926561372299303730353719815480287027886098982111090697768877672831827456108104255035716184520954101795830856437348548910534730814027150779055577091841305704469287065208689463298258010245006639114103297599567375880457280911367817995031986320788459987823209742145971365109481335711625389742940223686816721475481919340766565979482983306564119932232856424892638594555575438598915735174025052371454817440517348775014223705500722293536171817678562435752037672228906049436801418533963089828702225736854662552939395687127712000317738345367599725849411211125125932376143843389145116673615268426387806646597021423549282628915463796328781781414916542028343470645175837997303978953591644941303972895173713112046555625834309668864869020168726965134918153078065067601952867738888573750262463094866115226069430720731755710982870655345873693851116542420021792031534578813225477594025401986497068923623456844716386473864729042839253910372153550786617810918522330534498888935851534613045508898248007199128207989443530308568297431781115030468588157421040963876794169410548456352455245559342274677358000850914278870753620374195125877604666824989222696288636570426130650424903030670989626576001476892419630970283787726276955402423832035477673490193028635184991875776053521976828911814499987415613453074634793673130658864187866629546930650214357616138721980704969883522568385919343124659192199960673374448871902822927782079564344163142897062485001772367512188894527537211162397759779412281965492496917386858955191201832805754130572301347428969321041683733269602411621694364821777260094988452174055700963553533567665455698168765030846977761577171142803700619427051656658547567439057118685968090815157990675429925948662844427639176922882365426790985693485341582018777198686587133831712484946245758015776802029438765651101105199663577509850823437133462837206463469464541290541705250441790052746903059667935947876771425561257708458829035236406002581465347247308012782285926151364475571038724775261503429715690668985325503723217716512586536307718321834154435102084498290031082041418898466337782878739348524435633416689597522631097954487141957910765475471098880453113337046546805059706279810712389019061792533820727922812891868888282917619391773603907747986277353972025148404129892558172383163687277609882917613605164878916140733641158741568648674548202226689895210134555560720514505494527266222001667172007300038736499648729989561029081644282698142903233213336836224838673853453378313577529301102958714096528895979957750339976936936542902035122340734734233011024700664349481293364596770754854832913146881707957913783448548576760917258279955262946957233149663246559382099960539287710844791782963624401681223034095724927020769221079771034614215304158711734119541943751891679226019859281260360471142750018267517322097752793696434549127594768133669569973093723710771181579038424569741775225752174319062299827578544070796231194434669168116473584947052770909895562366410951100400693806265011148603305599916882801361245131304690328072898925130015958449253093727282479402648756516182675306385944761027652812750084667959871258472799373800297925831899406468660258942654578475667521464942630409796012519856418961011057339520053802206226391350677770406624244909218976342634027868215158364211248185120056509125344445364093669220158165416936419926233873975338030002989858206341943158619466388599571048278846978750963465148914721271003584258380904304284584240523332170598833877081673818307247294161332880997083977227506104641502473477596623617508740312723443859866260461857702910393146381530553225341980173191442573566064002857040452034480700485279563811433602213784238227525258847917613924732976611029819818622196191115098059249024813524036781054022193870970827941771655450447569298020115462749797759578506562026014687807197908217383786719333744144889236551008667556563199184289531636667019104151548679447282025995657313533551109466246654046162509914189293569168609646410026045611710129080291541348600711127134607099586670876045048307111720781190444795946902773352114034202053157428389150218965915783978552424948849374815207389221081488346758811675754830803601897434635734368861013121767203154162300476982558698013613025598373335219216970168226099867360432488888516442959810226832115203079450671822949551636441370952304244037017389305837061708173807286640877975589435134310808084592999991064335923597256025483429805516527076288703977543794127582809531689694701106236062569961724069013483776900103337165868255554012309533226795251492037071541452666589983674579113443297024219065592569068768928895663283774079160318260279822121358421132184411971179319971601593179837536612457836860937167154330763527095973185946133893795376065357038591211392918519752246022176848813313991165454761064253531939933021167534048005554415975484873411254776120163119135729846584342678558038043270896558922671932759031380450832263230958313088064452131706933363880103302469726879488234816652232128415980051194195211781155052295821726438214372442784627942511509968444887623321444548408713200454235083627020125156904526713324289540606662881637698630567491691817480001619293340452672173157153289326913136926861088269271451951373802608993052094055714076113638113170617062832021947561887645429181722207811295032521161978398136362015222709064728981044008736200722999712021554853245279500290958392672448022867990492378413724791712311604532231678974215395491659789419939169084108848698352149331889658753703051409501476595034772033667217395403395623241612056791852057830030663761243429661475782173267904026590418931943998988136877111159892432631060862623890825317964076821634784015395720538726538536834808606591796471841518424874299435997443216424026739321198557650664733996860343708364281809030405137867335625834706202758808462195800823573793911690511692627867569433711911122779882605133238333019973968185550710407761240691856061872890946672337613077811038433492433050455214407887838015612557757344902359340675150269793085719503878424983882215153914364609957332360024250276863138645879609190242560875912080341062212917664696637325997754332214305777715451538219735879508680835082381870003668273083339838236570041409732030958446744986679283951527186930350216185639154999822922423403224728486810027805343510610209754495371386172430992279956462900731973058766785662274181280437844675443753845513204842852749816518840697320610444122299909265099703607954272948861363803163171962430078890568393393324740724228865854848643990484966057082264566752109844355094633268416386612211024428882960604518517372600622004716448339485881998491677779042001332102191200297675518104704814543129191148476549620377195701455858688726540967677990558721367510192351780135548117562323797767606515929802112062123969278935747700476797751242398247704694187493457514081470518784536468623797589755109158766937202522044551604329956848044483612909095780880330298831089555008756314130509711770560271853066189841504191569945879226660101230364072572164713877007539721593700369136004693249185907737712226084683536433261806187506817125634526615649842484090643653196151229519845898085536376684373410163363470913447883317679631121389216375692006814191640851552116520483779797260723463979777880222613520368168600913876727812225096594993391734170186719740407412013917937590603548846888548938521553387385599235032997065705998808499158052075448550960861247167804804013895331399622056281751305029561649914115372558293283089523045174127855927393448602889232900780846196844570399921452535256294120330459123631914559004163752693865701641366601161733204752213266963175342736794326143020461244043972836773522314710561351068847562038343902958360127043647227100503341763637699841893597402984874758930695933797207827869677270247124198498833456120102461474903452947061095549446277181695831576161526500804507997898833787493425424245913524004312420873553245152646265324071872108952820006110902383421703612390939131010615582813894628650657890972791232686525593717899009037434209125564052790420555181650769042074972989300431780834070258791099218711541504953871395053079258108744280434447085799340056816157090858307981242411906071844843300623129915947949441657606185318214349510887444772809044358516092307150183299379770730379608518604964702312795095508327296987579096348168004222566124782378441211572902674827701557152057909927980689656845791764137906541248233034029382636637953843534116165205475823152597386790588404643718185228375459822050957225029713687478415795517196342629434440598441790406506157748755191020588493424856456619384093540217578559874731577636357068027229782643056052915506317366509179635951340025884544718538166992020992776931038224456924392849170066934696722468688154898190234595975515035751239493856626727721413137323205838432608479587141640588497342133705600212726310250671560666941503275779162337942400832186191454809266037867782816874203613507865150534661928572918237544847849785597926995375058941284495963609924803744554805586578671889637367001072944451245919291534165133753184388286031663476713669578150048678611217660543560553913239873527878910028389583949297029626966837640675341413353611725700164301610054803330364954978329489560514439840428649714022542771590034161189930993433860916024699960097105653579053741578491149568364713497885461924764075093262638246343508494499945136977936956304546557367914358667347204735466837819695117748611864851882196377957505234793187272240886017851888892226906938765930026994155675261188454457747505917001600278294460212857296519191373329718234847793163089394867949610958812074213114400744082613589680986268241724913990261307996502359886364573228087782741322017461792583040273705126166738670774664972545005386441216725164212054405115010184976305714033735600322312824502690256490881437312475201277608280410020956100459284921817415060018036302280750875938037645255051382811356687628841473223673177972335924143894529441950466953266844295434226484783056658520097945198108577680798634321163130381614541247505593072303585106222275731264079307949195327841076839311827985949081401364053474038868138837704845797805126370833046271493095535850819675255687161347320131089560373882038079369517806710187185824363447142971648025786295586701914858644690585321303046935061214708244797892898682426504120947357649546984688602043577094185521335980556723477411981553709839516339225332239618013407185637079618793882995931979047593458645015089428739380406657765628316333933358658221168613527026555592292214830762617208855222192104989570365790893536502367925585499344296485302159442992754897891982726374281115186046955501703533133913292917295060754390211890410563045961264157878375965589301824560034904652064761428832460360209369563247200891724992049397379846537698411315121089196706688106044234771375553370984686924507669045377051630679847150481981848122572873748321720428897016961574050400469671973180304240200419431407615522930421127037207867825262233917656122606401863850318667429232009349809557750800408850913614787956121012405150908401362832171736056052314723872601363923760186486901858686475393556755805650550216040038723514892146521602823430270034179255724793113353547627718253715807236444417639079373946872846323580701358139638818814006284817548468972795594978929709246071534124716326668332908373599235370528535647432849500567552438211733060821266081682264780367071003960629362394368326246315494510534833412359455522409411495689624710181044829789440718461157952322528447064815567602997108294415070118531103859064284556841501761833018730466307324249196208029200485124697140024299168860067770169483281002477773288582688968679811765172411108913297942886505866398323766313541389947634038211284062079714083418408445439667944369746045789248983379704927306673608560542130622684928085238713254985177802275629902321526593633694487784691657380620259243343955399070229549543119531658826380131825007015384394536613616844648325623358864286256656662543435132632006091380751259054125962929471351266551423335185153954002439668753473457569664957440993793659106790683667792463831896248963805167091099534719874001628014606924518998506507389225923950111236958908780046965940684594272808703836382515359771646027848258781788312354272285786412232377370044479223858013190843663492522302739333358719860670119128770709701083572492642449111966169227650615042615618625181805069713922086093534884787878472904250117738058617159713641729843762048122103574900039538123106369770898742051211681278102632664159223763994202578495490008456754495599162092899754530678771977727895005424433647281008138591412230782151937811671350074699540613695087892809724909436304146939438730810784850931092913485648956107567371955997439374067753087933901434991218374879956719189329768245736132407321007622423274752975289626231761631641393649705663951727571630979165874417109744886453516127023664939883825865035705550907186670734359950683694625606969971025341591234464911928588668309795326068958849355346219621208648365436048371477205686784558296800394081387658313058743567008897874269190698268356861319604236686928605482195152288163373325946548047458017130060711016397840822105615121724480341404249768503758931022593012220716871063716980989804505181163087719901184407672999712197277775362432036365558951219064343661927915519826068002480620263427559565137718702675153660533959066746948732607583454135778650414210213912973264355760436040988895063848111374870234705198389287207478668769335319664119698824787760496048764901090640560684432767430796597183798070991473292818674984173792437647734611345571263124249161308064452098064191991278743085157763753593107267194661573631899056736825089142714243631070758427434274127816170825882294602263871419761759709382809576421435604437054040581606883812350765663636030311027767156232313689606765536350632847495361350221791316767826562275549842176326969444877720513131350283516704768484559534079204225626355809483714143448931365419222647010667094805171606323394119691036277593986850047846902717441399802567744279612965695423247998754651632507276785035275720589156219626955045885068927568327462154874606058585353276272975787120543754725266583665699367217880743654458073848202595094060152382961441733667011738667157479944642083650724870064704643519918025225450651364137546777618818932156374842613342909096418389408005034961776012905981043776198598674037497287033001052414923352422883769863993296271102425888550340066747540736838772736974901988207134317470444342826242822987808259930259728771352823876703358771954321007848860916681013281742161411321887793273771826639445453197363785992171952931617139566024025784790727606131097926939127076068274420386617814648627258197663329179162403822933027995745203009445710520417846749889449102181117287610634142335882851383706274124631860989167648404499397057416744816269584900091745603531652156842827529954184043628521667699413605007432498033084304964915690188987188617455671348118070807280165664385477040729676793210589942842465136573288610028974204093127080895818612909091197594540425431906895369606012086197790159739861287276943376742149100575029564773133072829244223610550858543921376731606264279575857179374565890297333969249169260312093223013929785538457769966424055296137478383782065986917268330151118650406223327480044377420249961285886685269693677579558616287353043268446586651464390108455718291054239727168762160548778155299453699897369452798100515775745482720330082606499499566390387369457016510116330883836381003140187141481023177830373774415790909876086863026414337076800312869355876864400388330947847694596819528017440823511370066081079544836740840095807779236343899083085608732791728028419165495710695279487289850414227704344693798172766713958283734465407213178934528073908095259045708834255332938032111619473135329698115185969358323978785571451366108052131735081384178416661030389506906584083304023002244670345418610009702449242451536351832586408617080872168456553518326007976340308407197276678511835427121402435703809503880297413472083421019370234438710453755920956397982108672807498090113234416765045839905117380854409377827017538439292986868543173553894765467133174363841720912253611352449764775393781134883528425351395084320646035499970229846334549902701309829807811778896775145291516243769348826788050048913249571767179481623536983252053921067857594840179985584269764116011324466015361190033702413211927772390862216783694432302156240621695338796377517214130251028843350401007138670712899628882478805441042937767305561851597484698478904294462673472716091141561514561616747565303266283348635248600050543226439182380685145864637618633930125921906740423200544474920199423815734416499760487685876807640611247484162340958694559841181484312911513159605256187421285123184440655039106046524716955244436281914569691975423530048425189767795208555945982263482743959423413421874402323175504443440174570618092716875835406313944828706141364597539699407226761653711808773894855793525536334758748850910624572607519617874366980732288144031132551979406985381678619535262220617414137640374107973233690838537231291380950434872189179097519207887768218118757487424349683160219787409870668403846479003456849085046994703347849334099949930407580383617353244555317504984997652472029179508892059943700580282614524107897453765929664881975597961642651677851385224014826018265819889431554128715887274555607525595981576066690366707922337316199183245984004819394856204484233003975583968684594356850658493564311193418562916519550958763573041130157163540346109976678962996796904743135414588895076540405278855485576831776898646508489047601989279485410792079607810711912222982871323444055125893534376165937713599821602411679021583583918422132677065288957076892767938683992637159499076254446027973713835655950607761812631942539725110191387238385847139174020523839600601668347600939598423382510187412027473177284011808315086044726184803536873310845578483157166465188101117160659220756912686496959686634721394921042861305188353876639444880266136040184815198578715753217180469482763048376273284489496788519885736133696467756155182893177772168006699446200445535640226991838960867508390564220187333251438927568932074573311234264786460642679437383453986110710782160662706827141480697365075837215865506401543788878180041562208583239538737396488349156822907085214415359558321966843448590269141982920002219443513008596930006850675527156808912904332874082259676271316823466728497653077731915229413955505253029845335779213533622667087645177116082993797861852993269685700091978865647115609039411941585771939540250735819479218476289395642157219555118513410483762931743432542211645048254956230583026781240552012095799472266901184284550691460642412213819799478048524511948773652640992574859955742117725058055185356234818816768205573556050775081427809224148890225584166735746535205624041832533553722637342932474516155535805306979562823849947418039796749216168515780011548285192639115580415934958002581523596601087494031193115476063001037067311282431380105091210586704664392386325133598013716722254222797797777906457816629950544491162055139006534983503111246404882501701848339651007628828553455630443653966889032519570784337423573897306512251448163184394620816359925960742341830221168091004284484769299982027116938955876183348576463447556727322121644780399377873898080835701079033024833674451455801914468761338173332953183281098293796361968447995478305767430267533926878405648552828781068439208967121513650645856129467401710994685188597304933504643235434315328977493245794171611213832486157475123207082584831957426584753735627763752249898193425154414871354042198660779660863172142901810020393524617226209486181381616592385642069871327534469964979494996358290255087052514533268741122454620786936121113740101719232625363311892606750635078444201174559968922570452083525487223579643473329741673230338523633055455219824807148133474972235610752033399714080744708603911320431416676859987534138620496485433580242460860760986342611370389455186320427347365334087630634955315302106043269811244294053978075158120600970811432381501032395350300868341848751610303688132176740490059515552808777593466665581754771881463056857541151271183456886065956543181445006455563103246522935977369990702798446048844533030029043548436506462659537052451275085260995677749051032878884013288363514558720924357155943804947422646698025241649447130900565055520993082598118999946176764372396457571987212671711120734135411039659454309715826972945237795813586804191809193514926512059049176134036370428912396846668336982626477400068413576504632071060611160920369919990958751153172904520297024453406528696989363010149643157075211110927967867760953935860035083288963987024994098321374588640476991586622626732707228546674675342836960175634278752044303659201346080933600538001811977804684364259625505451449926956410890273851758128105829064211431063870742501082949970539772423242454549904609403235150812126156529868032861221434044917502666156991969798198933226263770707589055327058336457102270039382756691022742642804994107583379571522400867231239148777725171351090733888331671685439036112633774698511479964579587880519825286116104578126157698815303970627318371239186442180993358286245303553468010140671140337521954191311508767292144164363551196071388889820309000273357678361659281741714434258834196816795741674902289221629641867332578243015872577472586730950173541599768372183578441120832274442587460068511241320622255798064432141019785089110860485688297504331403509254799294738800186779764415249702261604101085196095960525839965975916582498627032313998893376467468857447434075850255955459533363747538041118024466127161600809002306550446788380393364623000833729911273380330332956279723217779541581531587401775501558436069874132064123467703347849695901428140433601484178010145053850027421728288074834350994246075422087013628163194862869948145006897306357536910168806940827465938593202489109973202668372981449355612190288152386995837473932179572976860582433835411491484928619522169368188977694975475026128417154266836317406355642190587443150802206323048365949798580583897843017667329504093554295555559760132581766541428174384857261016023209108862226418164781877124394966628634863617709570936264764953737377297000911308815559146613287505771305577724209166600546209578340539546215045711014399599299723464180198559244102917972344741553629584154577761244777157693429929666851849030925335247738792194565302346138948877757026689173857104257914694024117437789097921053885421568979826434106065365642408058997923629341292299091631804642051860486524559129764817283166135610580992628172017239151248712501536563667325959842344399780338309382203756603963146728075206229768996681232368176410400607933664765221132193119966498265357640374202859277264511130971327062493393828229287133950936023590841775371943900624795103527014052236614837069706219052389045191513520072634820019407229130989034995164345019574240290913558702421947594538347852060395503228952906692003105547541261691350255447423526170880697210466460113600623244288784937016807862031447332293343910514953038098998435600390700118493863940032677371302933740062064991819155003583019390433622585184770037953507670365106558337568056582582755757780251022752923508696424417822078342984134236519965135503792837047853290659606293958944530501711089891982831389400486484779695568975330421400255469369711703614335273381628418980478279461752994186237492629028937976003916146295442006815771700977053732156614537592769349218796578697547875168792806960997157212932324845377012960406165879607015720305869710979643867124520910638225037154179203523887289426165998380499983223797428905199481698719253497716505668551502043837639685779572340432764331529124415290031029573204186265745508021996241500449555429248802649586928268483997969090002385814146033700022594867143688492500932437192759415395650278572837000316309507690931764491306610902572637240316357631170173209601261931884564169022718867269404164740018277981525919004192960897419913279556775631119702545171074446541947432430630706841342041981660384718223805072081555416143355020162193572007107823474559974006927893829351593886885094944741307506948345978770517288923327634470505630019024577470550951155951580701764726849147113780784789943579905931389072891213206204135265919076903217345313850391199482402049094199748558245206283609478173574856523400952373700994788648938232423585181642536598331790540222089525369816260417713338754935318031626652307919765935078253133534467842999608511259680313820335406671001295801451650757662661800796080902689284761472877138260892195964572813014869114123360542006127507204028815854241686637055925878360979421974015452276866709605900268102152424243643434386435735063973204509617391351824178960436877373483672703975649570043121416314439724690794538943152113218198726586492918046014180398806364236747324125001164397400311719228479730899340378480158177974500428071295795120867269103301501658692262327344938173592856942690270935129528057774268148067762330148063605836208110438431986969756624651875820518564077628931440301874404632699105559030623296126148021622469163713593022184401827568072119960484289681151720740679733765620546508209117173153648933699926486650162930271897150461239037542764260601786210365932954956926698331020652549106258092086483459777600239072603863984384397095342514200164312304333449304600385231656203624496194671928599090583019684913615263687551462552867041846508884563637613131307049479663693592374561261759962842513674515138057765361653320482565242272493321115766477664031996848048728886951540199090537601080239642227163263148507688876762203058727024143151423653078853586897606336798486020082263398768666735865141246498305818063506173237381683179721146010629635514309301067295901331471918272520013817780492529180204789695437085950339518764184067880516182794896936636886457606565506270330833360275466560615760934541711162985726659838114088944434779912998300609059079780601581743523948455560119411325331656542962647555238116171786968162056877018632547954331647948382640932559986518870347902001204184474744186423024711406039803507967762290147819105059997690786858370873217809663314855515827711559648655881252996179657529100173015276326817587678401094748784651346003683665345608544052856806231125374227636702537165573009199108242936124426252375014301069299403747677871789110225315692876772281727826881416281426916109087235673405227213733214376561751516000439180568351639316909801374706027719378507730554201291885045765266276928562269062248584175042367892160652437833558790932385978147484553173839796376572644018894148263268609254813706438128123755998985191226088019305992001239824629676962071752462860363634936249165639071831785744711162270243891156034857970043614318469552288294855026919910420489825546460168990100411555207109394901844253934812732780507232748416668047092892552314741392260046324873307201568891390234204198112287881369987445661533990658083597775655781969546852595606306835524341563628876103066174793806078467306716507269754296567598405804478973421188576557160984969428966048746672597937247795717515444143938581562601098706841031263377828391952884047532443511492251216795912844099680916066423784610914863003208289946126289360712622367827933599274974254222004083312002261461565190245585779509436284729783953014022694091420359139808227896670167619167121550745309294184535265390764382548672357917439969316555348736870620986448264845195466702877101535195144644928186020579583218380772440804318351510581802939706263944775238317797459663061742906928147167723596351903814668718617220114586600916122260712616122874224937106846003021787806666159942415719887222242521240615896537644016620377011373952609060640780450680917579960351981902430487200922315200728924455805437301851374417678234886883403201513899953564648179649078919005799983483421745767198271526362005046953324101042205419945984350562509363442825818389038077222263035954894165737233233131917892456684702344942747928331283795604087113086103878380955439643909025154505937383586025004947476004104382433287137864924704274052951132107467930511210993852729341024971695583999735800794164355917600897896282931529979963931681906371039734499067137646554629761655086273303317157596942702570777026592330316604242097393987136587712724429500802644634328562584672250432737459889810402761479777267863503918296322467177509956012238308671264358373225461090383899883945825799921120650877858009118069134984977634975607105240403948117310864048829948054979104729062743197487417548481495676668752295056486233944245355403579278437845153576297290727166177990061502773862972888199353928790763744510245263825007676026468787881226556717982310823217865429708143550132974174362001985890445108125813458727473050552242139053519415780879272006179098001419527544442916928917641803031271907453112654065407916769002561777983236510304576932596604352168180035905267605233565021675347193672186808913767005904080788813199806662918405607881371031381656295825767841188635884369198054711429123831595494518661602020869698525475855084072946630389197486157306059214333194154128081564523542691636978732679519379940697921331301102973852915381497587516193220148560234362454215815871576314356515555722128121140809570165145923205500832672677373928695969894444916064624402771657008312461702035281348360096059556727999047535524579397189361248300179083678494146909701731126793490313748095091580709477647817219509574153596850607996179919538096911075332200543722850238285729215716085355643317798156687478669295163061833357126276654909348318650862416869985410200193783528614724762824527539200204415518397378787561637252335989772825805618321624502795034246347827805886843409208899582131946053416217718166907944571443732703602685761780359201732555716133831790303128829547007787248796503783354288859337566918991227058467329542430188278176114453135610487808256491639631304492157966444260331448354751783620948206275374234377421469746852049545426878055185387631748977178845750509326701109940076728634453270232384109849826790807308013236913212793288879169836872104522856740040709618468891286770062185148119475680482991027180413846401646115907100084703944136627334950065042363724526448472384046279326648722903133582700788116271374441182118813870644179378302755031446107742025481097085351805980839911564671004664125510313248416686792519923551087301525116354814567442733414160587827305565662001589930941985203699077614929079394333181889938838270511803992081955935666368252231075017849444570951583014248367221031149726480342925524368196034054306588231334771887899936255044158975776305630716978037444104783048255287598197689868366748572538493755874538027239690937168028992765014073838830065556501873503524176561826360009847566283394195111681720391014103434999819688672016509725323577641652255660264191726190243214959675533640528186702622714505442141348209937384712524747801898978659053450877511060816565275343248821341417874115098343339135379241220486115235642158070925168898316943444987186637529789176641484830258603416782825371145307329808707764955121609698439893266570413649604561444398743401374202303731525270794422978208147458157199582247639602089229743347214980736201538991513814397930632423295024188010912245399702071413876237079264634056400721582083104890676005062654135394778305663403967206520035244136124910605357977152655649850179762430398009880371203388402002249384654573358014191286477343539852825303852061468242902190908496740501095073788889552581551415400031012920498299717727363375944135124856643804597487991053174659624921262001003798306228259358313573551613058276072950274803267739940218012713475137297398024212343811565149799837525158121858772121772076929407378084640267153390302705598774759977931158816455015309068792568034718447352856332065726757770123543194297560312944146150017846087661331938253117703436490283017177740078629680352802600635249468024616826554285315175642322372524232944224319654038847897769983347428415930483900416422634148258618446358350273179325935032270092409485951498166613604684868693122310665981016664914409162261738232918929905942589424926344185614025431836907934597498610654462085959655097490915249093605392833610386521282500357556122179707977694312454034120941793430705136292165445466309957392042072161386578674104230604751465978939748812118936969144095633351066249177894613025801860958969037763930410416286170579716601959195935986632046262772299833978158243336410863819488990433500389096106066437312290403322469005489261411983122106493663166639454399364843736219246734244221642630356285708816456981832725875366743860280466267012952735146963452417477309108047913189368586210514671487886992177754002042395033594585993159999002190359266377693844117546890065817879177895978215412277822092055950930810645599646618941839734956891183074661032054390906035254935857470529079005479344361284463405005238764243958938004892651090389893622344696051433963833184314240746464231554391946319379098738849125898107854497991637439988999525026585886897498637277052652571374604407460723762342107793572836245017666882643365504982486998637939729805107723613824694870854469995835572211635735629658165187844917052735790117055865814030405033650311739515689513577801224572400555296775356059641768211447920958694053921406419906531269253907074206392314979563326600074889841067841382721408622700417457225176540301743686657461314611890187851263481925602350942345438439486804866500529416104339349962642126297282088386122379807338525876562834516410745304125234793436363141237829489430932839940556087082535364091709179444716631204674450531035333732074381191082016503695783503716805761000165936391567665829469457270094433069187005299505098252758008064151788374427846708370770281847381772677290803226546447473132292418718292542519076231873440803586591046476141849471343393084359863898486339222014423343078621158269040842773089699806536564644111847671882969055503354153365026870459421933045345592604208177797704146190981476577132162799713549060979082283799515120508095574306267712711609907402522890130890284484354489886179449187191797148909392025178124369503098835353940887841124513349811487483341864391437294507333077643030754264857277148214536455825623691005040177372430156942995127423330860629366482387684908149461761348067607248679535335481801133939855881599526738614490763439028071565146316449823483140739715344684459863700743529556692191313718897837329809616648052479672471556160377782057994449534850851268535442598195237692744473469102835317627345359193453038716531075134584659269363273849161819940558903714985338394850708572954586634130507474848947266956204040557215659480495512050674391755477498317860998038297327998778072841362558711373150111618594485237657489175573485077395113551006206419328048645777443123768059408996374964028229023351238832702834324345565872346922202451523243415646157480584182720248644117870920938856805442500894314197317043774599696380358582750893942334818020680573561395912745060025352379539283994274629627642896857523010815054928441527636761172227799055361452611449287306321157761073305861221661376551320882587479694358691611137284133566076073255500395513953045263304496629501777269340444410794937936059425060695301792778601527153412441530199783758136148833234580067922225777133521730536354588686820106391016798745465413479109703252382863130075792072460401670175872285265372617083849314228936514487813540198829226535357600314849453401474153474089946884005895108763643801446385001891706982357164580202305354830377662187418635382683831605358673854440150667242897106730246480941147193590387812469434499374823399275327569847357503715569717736588216797755741342472185936497345140805539097345505432030308533054493921081429876213033755906586217349592207331285315226407934378050345199305530970917974465394054236801911587975030778648980051755060782290050953837369893027272755126794524065983113463740149443337553302889453152031546137189388376338166981044546244119285082483173352165602847458896910423485331689294845357621551330547114890177375370842047720982778689625201813380971959084116227822945786443999356154498826406529679817534782879207548552118807805157736537902623822038928581744755373374046334944831342618451806486357221056632438232176660399289790444776780041506123047874049580157162682473560073942123109041810046234074673740072336541535931576772320535253624408882265772666848979485048968207155581477664430550409129499694274723626014178076734260401190929625258017286612688572516521041626104954108584829621854341762302234824867732425100590491895304657246219634453654012640717125809557544707709643048848781954503655733755396987899405083131501797318066584858666523300428439294543063867103290461177407996353067699891812349401886364972047382899268654020411850767830587521169803176843644392863398806564443023189906049592814408883629702332191818604668612956867387708964648920341374917945380357195364135024992997924157094347386287591634263511877449032922726415722698851903638819844642867810110646858144268895926722048593919066003854779074603241669006891031281803491488520269532663114454604879515480213835027592032765145475404667295986775913566611228211694161805772733953678474787649423153953893160952687117795044021459481170327332695279002810598932134204596869818188772307976156869763558159474080890569484789969983135534279800165942516753611141034830023382034180275089641256961999346812962752179225428343636882222505007157413498504964340427129854438395556462631460401098675409571548234024088293990694845922765054375250654065227297657196990129222803690770396609579665292839732479102264796132184064969071509206643318700505272670522973304954223367034189289444072645561597680191894724946853033567254258952165206526921714460531379482861404960413234558079129427337385204031624475113149426305048110697867540375869819947652463264050448875975166250122992163217879731534286964832251927200222953459145102131386550868753281026116234827088904127388639747318998836513480258952299243935685792231509862092175747282918245610713630295653870491303245194350436062613030901956211345101135697339787349141265233234987730562243228207122340083534047334007656736329247727722630722571247487207281059679482570807643697945525671135936718711553800579873930232652376154568494507250090753478915455572850471880265870757480439793821215678809551778023902578524139381776655157243770377430409182824890014450735957209351854505707373502713663726927132408852528308431477868925065795117223106972275737543247326174052362282756876970505553767894673766149037677949593531572359164831608884314917426926928665706899211514535728607610016050760368340586073100316211204504752445062942452568629791506848395814764931683011624139479532311681853245291336993848625726788018666775526561576883742466453580952414763537969728362778816910315368749027423777567451491478181469247752129411176615975607000025545588262072760709553879519660354097736625192683484723317479241747682782186234933362899039082269824541740529979527349775239653649137540969726075298996962309606251659915036663483929098621542914341862256853831220030560096383736022171168810572853410053140233297832128490148098480758907706582205704132274398490771136425587383369106507894275720546953647837788712041790413758116697412923403636228254700261112369826390073664715994664957351589916996448888276106629645950873137109959698605179883146622598778538351053095907484224494668078394930431749438725093998475209517992428438824824629943661418922569221306876993230644768683385829119447503702243331126146916198544999141738763544288444311346600356205071940646160287083641536887068637011365202665978138739098653949036074348019609391804225728767403793741367470338218208989060092290936231498153305354503711557860758893689926600564766879938429409646546938564848631195447842501620309753283926622434648274179315129238538613573504784101504979510448259225854988962600768387873477100329357111276478311904743505181607639877932464127818539151261636132537551248977615340857940797871160224656308317969778587301585189323317688776228829394735175853019462440960080768484480783135408235995802010727344402202609179163513240452591893293333240022530156089710330320876530287401055736893550349538138115914772567238358179870343865659608141572043563531170153977546710715630377246426481062363033316975402004964321293477521612234516548135732932710178555639060928081382211608818308421526168462273890172909918654021425372656930367227223776272880495979611310045266110284697110541411513311806810472517324276222692515194899437137528657315531984713155712831340233574787929806352727757016270485980745094696023840158476203081073701453257555089786673247447454463046146135614158364644596641779556946565376962684243680787294156520558302161652901549715099040022959473127416807317099516632604181086924883194315562795656993757666661736326190125722088366924776906924113181882492589225259828262926441523043846627425279031600578052332221726830541963717011043443633583378402921268973933503662246652886073171086568124521981789445439206416418469209309338303351703120788055547951339373930065318962497152649595591997859821705522076161029642633715053746714318250067282724536515580199404360558535068195095153355544783462155279349697689464148247353490729301984157813549059571049070751138554295328223557600822353507101059684971211913848890688918418386097760794473251737826673815687164468842618624985037369771324248490831682979656691494353288779863062967115399237294631046062647338600494647176672113245824467553040056383119390786369366881831086487925204203640202980034796536130318384642724773144315213297599931044754935844578580139395502004590764556884339450645334400934588390356673597367585829851713056909243325362853372687827962407686572888434912204768889479019925442504844797471627482080874351224287842764115278548584369439578231623885199000065874571004142146720640881380275398104149347188804486499428615085206923444948145755579418865630371183311795137899190612713487747740306651317522682373923954439231738658313971815613298547649300894406787912825568872614769072441819526442057445720065358139225329872220974847900737852234219120458466996114389812020576275769878542799094104983743601048579980050838905211879910532702643411308314962380799889314425775546214593626687348578140404008186131274936428910730767510623105106694797878887494203470477974023050074760455773839299673814245603065849757680203961977646683044789814023269416438372038916153416784663337824026204907851843270762425583020984144550078079305935924298000780171526560022123491772454851620294648968661749490521074335662045503473563731101599388208563733095086418744834680137068499707870777364211637233478592894544237313929340675620918692602899358191259690032266994923144287605584921918868433578303215837783595987114996652897162666894327386389633185931719775618449059500464697521402982837110996903202294168543119693733479484495099928399153757849369277572437527303606641133681250958535050926725298587701539720099539063106110310024124044895205741994130377047542508235162580913775113603800956606444196940733558253066796402675834167001651876328785203697768678440619192377594593296931087016742819601124744120542991509479441568260823478881104854091123650970326468517831566636275221348637014164437832265419507687536054174987587247494414147442799139720586059182577277830076020802667562810601019223561562898172138823743379125226796212497326580788137031305103978862334338239951555940264041303656900208789924403077686901113963707891021594741280555334617702917450911457466551157292066503376205214597689907569565197475429731814896980132067738936469361529455082170304372320362393354516112528724857937054957222699032532238434697930302135770433175546772720362973389208377261747558417438109360356570672988692455729847553785577656995751026951949476897016730456379637977309342238521833681307513846466013253493042725919092479113834271460582027161467687475006928331247016733810238696429651562036179630281450141166253320043763426825652140829678541251085187899649571165684187568129503452099689422560077204424678447195284301770277833179943981200367070148618408134109823640425248223831436863706312388042718149081105266534679433170381703638098909057909299248628385661306345085088309952479276000930316528662266413392185823648485584131660602869759939087113833955257069852881761549629911119514690528537431604199222484901177553096592030334286913212413612016559068136094625600790070658028829032641101784292197202230039101042998028187420903471885073851698217961872021104011292052370059278329026573969766306926224533388770312288646663084920512697498525367171471814776432340539842741345774809773085473213719482109528207931981290561844776373115414575423558735089906384480695061880085593229580254372433484990107209590684725239766601006083782893164327592097606733200394047017440495679434315061324326753677730851240550783693380469138817544506799869125872321291521897282199960191599933018124599906957368177535025794461271543685259020183752219972360801225883206164573131036837463944859212706000817461338162391828614064685665136311940402373284530075174051569223245723017420569129581258216525238662623495954682750087766189403082073238344719103894925526921989876200974817312078619989124920681489333930022435334788950505487613217502567121524076999066363332324763817219364242653377644355803056717656941455528169182077273693902157357881018960474152190307586747950721765938399244056595603650423465634110053673330777583540088808001444773238476643637841911307406139036307720127883614423826548550957709982289657186518285842136344025955446003084264412456631170314609692897556918068963793992207885868178819627920186455886033489306787001996702061868422999544664715348137478912503223217522397200146222055821230299755732047052413689230702434247168914616603489889065045711445371631133808287734043719111888964237062595888584948253068956128597859013810311706907283452592714905089285125395143257406355115315027021362919576522434095685779170622088847063922283497101388264173948742347497498428213418796912579500365508445230340533040311945279951246179012100826034400046935967198118555513726776058102614196161342419758890421157551243048288212353385226063621191057921561239352438909763481170883995952177488226649364497778973978261866689305540393462997292169710350349031239285826170273080016042180885283165813046973968320748495048961291512219020368339385350797419985013331076282403350816818760496367479424868000940898622500991800167618062877445683762296492463253644614086089309586985485288395636566762817006077967668387837740776039488206329476114394986213311478092610721150017855639620958739461973328233449877859202863362063761514016912609451977265602924182198770522501422094069895086702234922842814155414415622384403795167913624386872866970429541049119489583439338529214350116505356893270470406669483785438844703801706826459641480840547772997214759010033221845176118551366534701244747835139264175164676157338312049768427892856847378379405236086751066900128243903854841346487164348338395545643532989749630120734893497791121878164412625625147998562632937721889402652699440148380111317482665076310150318716049815455146238172482179538072593100062762064853690671417807692201096768568396066508277136535755920695361791405738898993282924084171790025190302523796563330213983674969003108047105404769903671095888140036516618074522151710339920829581733190124083134157352083687731914190830243730953267831948983844153064395635678104200129734317235899310087701064652612145214213866894482172262131309336820480997378864884845557907764788838535644449219450172894846149830410750840679377101675334297118542748195493657800530063476420421072725403325988759969687087812201320984268260222420294502940552260750922261598977791726332701150125063659844968453688929552019926562508016296916305044291833756072992694817548309021886750557959873816338350763337311162949552686746878300672674759347721024276414707614760241716679577163882033369668919019911419564522653567731344544152298929263445943452334478332121280229633382713439684069825979844765457779233618178993969229140138725015508860180149212414004601896558036300787706492438183117558510833998472858354024685198789876152942930835548028496750697638123057869563020808828834141269500352431941439035573254401985196954470353069119824726209993901916116944181833171496799809395660628346818564095977565971453088508023913020175304743244284428877747961754677469607891838964102047448152159471706541689864300911981712459995161230993656859845736649052251798882031995204545046435042469420590825117682970820631024700480216768926867056192527447068538971663842875796212703208533720679025613765115514737919031154868231321712044878325263831808972343679181630876150812325715510438342736415806860825145883746896655388971093363868976736277253541631368282873924371731229431215448019078157195046883740326298676886109844299922210856527087428942034467873421368275717091022351119980387638409596777972228255944972255524343589052607988537023222597841898538079628710316590399653580109275803467826128831294295108978455241563786072382440841842761810916260586484317083926740512190106828993758599512957262874429742953353407611878249263043750909453190566064217091246615880781171280782919645811374670121679858675670321408808004983460092391094696263920921929356529181018817285347054415208917337097026312711048958754223298885981652186638321159952250216396462735861622772373328665615760849765034247026192115936860366817042586050074358919671008216214674319304601148064138239049743086757626712821476971005095744878058561599137854695522583802615089715918079725870144846752141609304087158192755651424256954799270461511017189873899615604314458736920488622541972339198273850011201590186939387743345126162965252677985361024482962570490278490717843833366984790902314767984891159844298962408838309059220498270271602143603425818465826975461169825613189587890667788684059996593562522317595811203947813163183771698773989000621907985777894002173108400911335776996084138701447611856249262984613364172328200344937153178963776802149234187184072383115968714390086007703948214882436588432025753977667464742224951224615242055511633795092206202486677589331341432080437846320743553569339621796305362168816070967669016174121876771663160345341086191043047981307216015978316583431806304441358240937135344700714431943235579448879763361280376438115756031967150767152444683057054863613384074233622253233160806515731743586687149969172768452668145102041990641448950078835839619604106785495432613397179593267023524821119950617889349076757088374317342375234868333224937664623168560405506855202796576485244442282062972229347750270815632558125454890300056882324895164587449685355605595505397188920326102164625885624085578527064995163279066120297959339447628978515128694747573246145608481858088982037082482328166532467202388160448376743388081989777798432041861820937703458439933776713023620733044151451142636006446968852027848538975511420585844326450740621899249058658682042981301754137658393289254812357444092384338571456834737705641045520592483512083536052979695470351171201550591443704168974028914190254254660901951419564497063971548295819023935759740468449043005344998336720030664952251054936727555900888093819874368055072750461831305179268459363607553612026724139830622545412736643827690613703116632161996782368538188905431784659306619757118196700601044723876964441225774697335936838609014055803267582735758279005847990700222433615003506126578904262164736765145223525573503706069840062823224008665444772428362847253997927218926337782049257896810516127109341388914419068485144802146811039904881548142351295088292645260945034582335931666258265077335260075428468900669550562434862561273393210322176810120823424777771877395720439932817523773613675856211243551199790503018094342325868788295976607038624281508861328164255679200585133922586466108558198975986114489454314610691449662019803817953820142264693670280840181580368144707807996424309876156973659199917764935726618996077193643519611207341561868066865449344508411905680607754895528264059488869146088697195610723707002596109716620612671766053857926388166566461834068395786477346797710277074881268264005361223919104048543737875068663778330494490998932317674890944289464903080636044323873079373167149261777065937923105080883798395329185450907944615972756837328812762526585842645034251046972788180847550742203778579316244501239916389059603865399958180932803532019666455725707333786488047713402710917407242651385486991576669141357605469786294100928934313875194894059212717232127429841646860491404994418585366408369885014632999171185986245104718050283388244705026795921079358859059071072772990376794148080269389393023100302041732408402912044129269204320955942925507864028488499946029765221765613368868268752455738757980517307338086088270397051450809081897414175230255657802247376605481154768835757084766753897312553411997797090387573400713580268340935758317746969041137361761917478221977816123675944384560446895186862898212652116622064209889801388339387457675792464159337483493085845405804705810863226476250101253038611795347212317622997289749393272333574287739236220524336049373991193485639716244394885741108893503075285477427307039557242661836455898324892725164928333800408377409335336408136020448045758160876879354951967670199526010510014894346374309983499414603417629265761326526213205045729418066407006904628782767587123221416967986108928687854068250641061039098234277100583908541673456651773874788895664350654431649655718243162406853967847541973519498501099338147978998387543073916801297516453537709361792906562343472277460436994726974070453086954805236206735920859371384368924078233128864659656010569009713575514669040295339606886020146420861905320885787941799532920205113452992879764403333891436369692431697544487634624930728525143202128991544454531036177904943417191592065674161174649353532152239347585690481899084808864403578632596915022116877980410898978509425578210192156848919032632945661778401399133751631223540120345449386425971466828071432149981677187192618135434796557218409777270796416105574887907254581200811431080737991314053410469901208597039231336136544275048779657135946741143608117967370458737820477449458601793983153012779736594604096105467339396346558941131863422352352955765862075694531330239242854972787878422832935497395774882891952830476001640651383869449800009299643273095539970772940922626470215518592551425502550279343620598855397886452018092727016648556272327017662726518417935854504157806637971327502694532039634902038648616185150134131321270070522212815736253245320422399831118956513029756152751360090259008472551729856262774905913210867357024033900128024993180041633432790998310830930982183041076109394385695866635873564413642755466398500749909126429316290159971193365657646154627363304719252117629490251652396320942234334147349137510806046957023097200250008753702366145420708125112834493040896822005805487002103337570900892051314453623448786407202030827655225314650655440317926212116424974543202211745247925994492334547707736651212168041700498569726295748686025348301731444833138046673142077508628021028338817223533828673137512432145474883393242555217188976925915498762436208029021854651518859134027570228227111881651640354594838975086387207921734490206100735987569403146623945771339374892076401997499243529510698273163270822455171775966400518363870469966147085722017958142167376186570138621952414366322948632976976886223741932952656094340155254512216536221136069287334698134172997207147652594564516027848672313863659424802080079900829764042679701481216218589746844648603066285399724862771769869849011277694432710223423390770985682690794208720779229389104823122112679711878634591483572743651210681133396383822811218474895614177736919945662218962642162013555326156755072513236699041681963624842821255095937994765361898980130533327684819489297341727543364133407866417844151151392280965424751413523074948188280563332596680756248335544209249976309120394652896944010234944053741159976135316062114921588378822878726095620588612148384751827421530979725328480159731034266429938309196068417930002568969247308434176245960809300199165802245006581957081111872952310223553769429300745254915591096761065539050998464948914323755745330038387158891817653832190849744620022410382885484373165959335943033999543770180351021579099136317404271906793544563054218401096067141694578738057410388057965734059449590149992371274625291161333652620688039743503977010304203592418402948751831171059503149006275366820694832920808850171067559526201579909893719225289657360211200754158097089532677179253345121537714142755933334589279138302349336173489133103802455408226269584163062821673420606890721949220482676195192120099429831730500107656543230828752464902429089552379687434771813945742356935429616092533989397620650549955361707354659604982363829893981736105216317799976833149517954172997157080044012665507409497691878199190219161230671774590790013399817375215103931550032650451919622056881276132307423762967476438498880531853758010873594053015089796968126058152856754845867322322274876113160654775678536600431802960692808101567866311306293332531851765177612284571934545632765684916960944271557790434998208658466939881567658589665051918751477913912791451466102102265299119598817498585714677819814739457709766939845291267258957068220477174819320117534443066270769187609775905254422693896292298362009910140307006282760098088111066946234866963339284105461577810279560739451806606323230758057435436412806324806829905705892984933065038900010295819703788245587662846556880065308676362242986643372340510236258600967215353695538472376652981805769721333770806617054532337641383832405258615481362054950607183179486460017926902958591600722032973669633123897427670708938271729922727616947274216993693609265440974230189341968454469010925149840212334120720886097772275361263039024537875916423040827316721028490256966967293945154256962260411840594066731981908189895994281591406909763412117073416788430150410033185322116188151367148306475205141868315581523668559934891982050112264089184336786217123945674698177733545738139079311195209354245951748607924408230555016444508613849572131436740942786511791295705391021625700733936376302609134078981251955186647987395867042544109273721554330158327620093505426660863631479255201885249375568275737807126533223805036580828964701338402485183931536767036631587262705434495481930640257584613832971723194304315351833437615692753917204052602318811734949549745573625167713293648489959878191775130062842863811639089765425696275815184070353664064492932816861782739254497943265776361350814077937368739480284823135879949093646004965295331592038861191246176740379102281464323505919533348473867280438618979256971568555559174022444527951475433121373285127095963133022375918859909358139902820401473018106498267053835150979420368380535725814696857236211031571395455869150300232370443943171427452057247522258979631554369440346920820968383110263611340417263253251901627271117165488323071332250612689632358724346395792427726127130032918953759727765163356882834899412254581077019393076218324172748914315484995993239529216003050072128917109517673346347442797908318722285883655417632422906844597427653466825311713908950889636757625336479627370007344146257618529653504416856500015303005934643097114431008693851068695936616231537447047647143241864866010440496152528458070250139697478106001433221272882605011187389013017056460192323897925537640115844623780468103264720115618199965176513521963635287156888103187012026693674485408100545833810866675209289165726251297053348375676852887550340659951117568104453856529875610925956280348541371645466025637785881297994222399712257880458503124075439834191630816887831317425074001183952528020920370574415973691231219547542949983992641139105025507887972982711811712058491016824141653398992772118300886620446916506030468079675385100119600545299472273231628879533427615078393430342962058562903103501383721891853784107506878052151808765205441432510028381527711756514786742382791476483243618097564163452826032998930206847626263316400106305398525369992431613433759188922873128538673152692739147441554099405792454384756049625314199402290145728242880379096043922333824259473866521749873033429189831346217031334604326568409764554649827179960706013629677099778422609481114743766252918776862310670008875564158434019994419982285281044795055331095326283175528513193360036608369917430125262888372407902748986123715721158103723686459641847625434407651141694392939359909714686597598278385931001208720876065258762637539269094513178970840153635304283666270484895550247079233464925410859483638318598869719397518357810429102897331229863466215120171266299200580113505297523212032431654533231669148761219622720260075111708038743948375342715726509337183135312533586056387162736703928261053156077021000635358344819538846152255543549308172218799070105575608392820513304066209682686072803214811684885668828570049546658862477988255021167471553646995300199792285935446502713290453571162908800272037758506426500952095936143129953389291341925100714806627806891107169202023424190092639870809898584432850781810811711233159852247070337614812925278617943839498303309347137184933575189942113589967813513264583109873758437776525876428857167864423581052889205620058806974150882177299531649375635821672037314001973577894824126731104263881033247077797251751526398244169954913876460915149259303222771871546081564376763584623169102641856068726237462232363221144124607292206865787708759843485432671126122206084107222082463838789907989944086013879990586830060861722744048484320113455533962885632850085191541658472309358019890941743394075700538458069269539131302367000627613351925018873453373062781378624594119293916848891765505600508390193070951933104035464538474721972430160464372854149251379244847023879577327831836652086749146577784143556806129344417161926545323536423458460627474701170771091804301125503035091461360874893040307259289420451490556644910878453323214005562150196760637482286889497184546177226243108582054788093453102665926063527547300010636896430911246771145831760586784464685982808621288314739566351719821497774936686809926340168356257405781436972843325357185622621339660460095348237063734181012302127225773445204611774718298736299179916538855295091622791512312730359858252266483752836395221209586125043861661357228336794403433233394465311771025951995782017233170752145882773692732829597166052876629792700603693086427247495970000875404413902813150679786231362990158947662622027620307053678133192783682783148682539644739853352034150172006787505688325333111770934149483955480189150852091052135172547146347284652700135039694504590311181600709174090594716277357034316942344938446192273842942625603573271056532072035528880809440523215207248621580152692376543269868656434363588640234097431341344221490215016998620066603083630584838779670003589874467875600360446553535548648841927397789133342266300295511176490275484846202128844669424040395236586046966787844299390614561565243016847813634401972424126057430494341415374763475779159614916190601510306786685164516973036588436047079898792894672963481401094470392017832386501875385568737551911010814292637587813021110383901174249937906813164036925426663181401804767088773257109668962667474555058910024999204059872603276955546724724343367047560365140182980450683560586801022861848032842148741576707538621919071409355528788172279563083305506479127137487948055814802622079748935311018205342426545449369504132518941365581684775714599251379362462774691366408749507966805675307895141580160756204111528426150374689096797443462856376016714601350838798956555714999527015274755392456580016617309659186287588633576383613693182183066609600148808598644094174423554430986823914770274966209455215474909914417467853235182385734475147903734293360075387006880010111788165701478772625318261346572577613131161844713452103913959533136713050600072130801495507139210416633468250449380651064044070472623854013552358556467810323083428868339678193981985745219382674984097777967970838107934517221631536934295082729110228422146186475732374172715121996299680326432715634066022176944199033760711251090246547629917603925263291418462072556192046913252451318216750957028240094411779097726648744533364047395072424754360766964604163990197185459840006951055756864776593559515321086128950026922788503761555552889248326078635133747263045959671166359957469197983946474721557999207783717289522542409168062406938700229851492543514123359348254624197227004025508914523063242218561505777117822499518512454494834566035408521686652266372248461261498314809703688107155344503745032685189078003080280699892563680373735481148836847755620267635080438422363527863468403841478583293019624634194219225094979093820309152852920668965827462195289569351868692430379742316814608756715781066577314169441590311641794002777576444075097865744129878307124684735291476795838715377916939459674115226131410633451942718675998450632432531703951717653088579712209628908575705262851276993924869602276471985420349863303071516060548849451730042300269116992821674932885016858903106319955976699353725560949683731772204066933025558444108478317056585842975154151562299301025090502296353469760694643467126128354804726234704583568442841338142683267913887941119561139255633230682292291617379215015378553095274538552591541464344156958764483527029406025259132049583286525614893803601494208163010486998781009550265086199913470132112231907635595793126930566938491750591649697758386186304691481984415105213455777699220378175104367264020363669287410960083124267659069868075505143090785784984085186827403852407297759742358649043966537830572868607555945042739805489287055143521884764387035853309202408207193104613378464585224319859995056661506001996087161937347501739508476127315413159501722509224571293879333290953147135384957496779096728237551300555785269982694771249925967166231395671700699015010653243063740617033299612621234049932720596638834119816566945249986016527789734455741111360197776322569256779466730382112148480156212760685315199923393071154911145173962242305991322161506075239583321979579040530811459081620001768376735827719888802556521100843619314638918940963488837453138194327259695102095516980675212283572363643629324268851058592270939839513678661035597905415943580029201980568477242108070825156142792450880203365576932898110671447244596349138605356658045563472561541225923716056224420469972380658554533483773335056999075235267595900142327859650208656585435103330443640946448912571911465347134270880474049639942037022233695946223316399085538741413458781050613616647275483388680789157902811870834750455101774437520118215609228413871483327767398092146498417718390012696024465455351333216428002628960691280193132877991537695817647225176935838139147781650833319284562807912088885512200294848919057338557783189863484203503685878564397346609920846629388171862112159725130726795263512213764790197658653473854566094562267229441293329792876093920512362381965742738781876431418950097444936750793707222348662130582268273831567642483548799064856510539981398958952916394388568848382776156327479993944995033541630967793769799773207418924881809360977028419626615043517360122077288014677935391630199370371332895913481683293510980408669408004710583259197734963266969169284020517414899689207154765007879221072424284274488759656948430926125585073594460378496844272021254812313333418005933053631900018478720105824396584374194229503912157043804763964885554071114431531804387222116507171542532380551443755259907668894009470417492339085329245866858181054268282891275214879539510901923937914911588502846918994869133968707506360493222698558647238255603666483110563294492217876219019587621077519821052637784474668862724185720053805622249065463012922722195367214774834486610134990819045899457509773648250216648305975999697401157248871133793632335825762319189322546694651553677770980509826780217020387200426394080398645205732175970012192368743156469904415040542659912326589207232183442216228843510123361847972590856165453327790003012146788302640429646762661046868068507037701470706164931064857800393702014705619526871905613026817076077421942184243947237135797360592429445331567742067918248191930125964680803973162858388495139966256475641589432228072169369071389056853966870577395213078088025782027594998137573100137051289685842675257795815227043098341138450138955964506740245736718669020541382687237015746134388872771306253860420567061169464743215053713025702823146406165421140660036424304900231625527867615295111951062578311442137645142477251495895572657717876496499113379324581229287461186092876930480552533027291998362007078644082404253041717907110289557370327442464116887755393789749494823357970975469448330010575625792719521671536053778105740556038112976513286852825607209499137192883450179019318777932106151528545431621322683194718474708072384976035167102425921934665692877521813718366588609562390802179968073746642270101574749982883627167454934453414388272927216112391698024362696306228778950232617515240798298567916515292555292438474375497840610934476460365380088517638617061118950856797641047224718767479502542399878723705293490602485992766293384277889297498200261808000830070277919081005891878605227338035916323797979565674408545975021290424611626714730561998736943820423998108818007407796483392128420650557744363153907099150046139614780642336725323413816744485092686115287924473497573496221115334099370840073616635493485952081324456150541782983585017050486155711678663157929784313055530992535981244847481013187067224296997605414972032008681754503791254212681607616900011704895586836793142271027511740202384843278046891997271134907647821473658186095749096764704851138649760378239642956766464722840927096113918397049668293496572327488922316443112991451977864384773293078561834883849520505848575309582758444813690201639473734478014576399917112255974623145287615531425907516670241260645835339034432414678200439163758386241393742342723263470622342945069255756129843664028455755930162492445743064581598922770653596554943627122380864455894880698730206167729946528828566292126557551762518416598068521892641097845070750434023120069686722588435167202044701593519135492987702831266616664580952106244578165794689717642089530428096354339543998728821413181856796539017292752091813273055460729421482915752394711489281750386375913066297287973586006152877931827781613975924757706371241856709451622110140286068240557570682192836807471504150575408775997994845538685119461826953982513417937899404058319984267368201722610423934267337582932039550948403845166972048862177889426766255210652274860118235036285407681174390108799908844645329108914161989237989506581596298265023154171785955176123025065113689815982246829645785726244450610094248154841812239545771713437957244801880937622124904936824971308310550243850708794707980461396198015987306362898964952201363088058678676977067856665446494630760587865152625094825439198781638509618871927817481482609478377730151009653832734537715808969329135034011226148678787626499761660845486364672663393579774284673747439658305705026867109453573527777408633339531467086399034267051443444645671527455984763663161112137982627953801431443442155169279489665185077233050589996872326352293232315015709194112784766483445596510342881234940809297342954007853033375235144246059839344393939383197225579839336102168836136795866267451014240038661375543756544291520364369759283040865052549256539240497277788801769229541190482032423985991497684068504890823401013791177496605253403564730749433888414336894718659381750805238676269595363611459333624572014570886171946451650203515640259955098824784268632618923448871670664662091882906272502280109948212242735492590616994751550035153642997583223834692395600296432556829586532786971358619921410959549330698902428678220877755089951684965338340544373005064909682537567150137888075445458119314686535313624621315244501050364525402865509771268799856932746131628672433874165621605687308745786757033348327366144117141923832194440752680398754391236325704198871238836430867973569164557822682800289247406401980876192959001023971719750186210994540289231087496618585272122507204824702383013543107681164373623718400676596951493343243141121153135568531688700008747591348707083021741863701081720811005201365979366298611974435470820199853821356595342769298765376317744795671719312006982579393950498186534368516424654349606801172059794574821158788319810351395030701082334795756285968215306265815365277205956052225259396415594175830266707930029830309178699758326154762525233060129393939408691904992783413879749686188081019009097436065059034822937412876739994850521824403656815849699472401314991850125227855959478415666584542205841644341111156625061268703319552917209146766810701331476518920793932851395583538139044660575561577965181990129587847490076481339300440566907965761914418071500738804753738461856660599234471362795193395427709590828351968258518047147490945158092785101048302947653117672834695855446994670931555438758794738246017398286101759744996524813975797730670305448470023881272031030659199536512212044407382263514854132236528266111926945812180231790960322179623046183495440839044679555197928164710770867671452077988254884730167772920282394639793263571368046446287467878378832948298733372544917110619578409525666314912870076129103201881464345719657529493125219464346859545509142190340128686334204650005375919668696145739633636891458963691210316730892483334770130915578469041902609203772543837684923729191906320330866329359735238362084937961459321394171841279082470551499477884401492114093515592027736046799711754816954725439633727320913378540196481409888157910238482952082382951123537793336628822272582311359117822791312032669082343899481542414979023216377058572742436757845614473565312363374579024475222641363900225222523095668964992239178742330085128710617671308975556824943729040106193439089043670489967636304500243442751277457520991810900382266032647387424923293487865468735763146202981049699765601042996606485105322063566398202607829650345889304575437339097335038420345396064407993921414966423299814203338976389618617837630098503219607883728217438708175805746150226835852878156119141123285791058841079410322586951368977951812339740620024109843219834791141426633888403093954275749872736863357218294787945218357683080326638590013355592179645380607821413816902960760905047944489700977815021254380923467190841535433418544141169733055777239888350268835585074481560920984883963200657450694863975276145153678357037534651178414932787964054099817490342567049968515240968450396718940069680350531107438623999852916607360782906789520071408940077397059442309138510554792220348991822180183630847420604647056724655504733075349300436531616528718732368261080520107632720518213106348646686860749099836549785656916061153755185294431218499857744937438087081201192159506787635897813261409524215913255453328245969469713809160082922871894814302842594161735481910511894269403051407790688498518804609261624238370644911186923482528024810560017370181624516882632762757433181131716346377911323376346889717907644404148986755438663621271784319051446358295636678656731242500521327902841419920680182675659175619207733947668663628602852944358786316106470704691021283552036871647623309073462297214097193792354618481119719079200583781357987413852386678787682289116115629561247426867527202286328935741011975918635634638930035306304211080397821170661680680240431167110380672346577489219279171755431784315289055252834404231718987266089736259357546219021515624034512401948364170382771610292350342440061119603960896640378240484370585257777972288165524793019704645390541562712797595780054205608458368495188840027161119305143355573228689956652154163009605248738454400460935126714167004146257238825506351361309759773079849774887029001145659589169698134415227026101144069810025109874703357593993157934582815212543123966260870933495108332517676216953757077900907940658534615434611217128501287352984740420573677646685194291949411134627851041108212162517484868284969939778306041462226994144326083456391826291165852613123167611640921306867029956270196391124382236519766322294075462215670793390684334710294048581816177771301193429668669217270092772729789049954160563402144113951304773240486692436573609091740950426510327126057484703058842017178234384166383655545470792826242864180749123443362770037044456649263777673995625494884685729352777532418381288024309469947123366199384960374550796840790269813031206728644840348868592895465921982318910488859255334735707570917779472283654042109613836190468425714160318389291708723043442013705172849710602261114340776144120243605084679477845898007824714099514667795252094460403311031710931316130316963758819837174102081438416611169246559135967399029909522358877975182946278337113128816666896321395286267565646927395462379726917216749603153184120993096594871502665855577612293185278428649222313810360243012514529085024938434426030997126003697602193827682111061803331121126172966720911720976913319653410424517715289044067893320808774047752450081189615458151092898177480085187785065846263075434139596266930344888612475388215050809904787686576249700985079157040604713348724508402951592012251365316534322101342812390193311730814751401445754600950387621291359770772791757844120375108932677966719274010506897422359032141879265661711470315983348715956998267277311769002987454812363349742366876746521267073041448642550239303680107978160675571962710689308501497787116864312967308963771338486350904156006796087465742929276341097539237667123700750702940998184222712353319892729115860085762395917435565552908807049715138438796099927762444990775828988911148335110416622934168009035663178544627984348685630094240144064552109381524674282587779563460730650867900302792326798361557605409191771257881472224531085582497937990710406169487650874758823397919818590026158512638400095104889096668206363658673327492114569022838511699908459492473162177874040228891944508754426140143035461696241314863390994493669478369220801688262484839295919590571354397270430616929851283858970283323850923713741869729694572784112283692491946180648565965506409789281567164257960178057049725350367488076496500245174177615281277348237537149428566988618020153939070844709408161913930632825453250853147515938703124393588117517669929998389423766887292942806010321978514856995819337483424477215594540527862690465699225730362692587706261875813400569819602671614973239611605557062993259572451587493431097626176615410925517816040550704245082444858236321290974980461071468059034931745634707406769384989708955677853576875727823453390274888193665662532847950485052708969779066578650456762991249797354438460635683980039553338895922443567996870615150940919998514840131624684378963999031765791654104774186020313820139272549472023799530692589705851582016015469546645339254915595070358471920438803478914129594958975090651305658889020373030491616616867508001825354658404517928620032580390175314411662641366514966812657506008262570855345030275942032844647529456854879203097656476628651433531395020456684344196760605709503003262172483102683876760793059904845984329134231494123224641738973046090715076740857454372663013681849784016688753382466271000925081836090340032410834937609701955251861666512126607402212543203630961318769586642486227034656733346734321559752808497332020037376096501583720146257579598940341199336885204976350535378354772842375555284052767957195054658633359584914034987739549717091737151715141792518255045299554440778682590751494744889808861339775560656913112972886439089312447665531851555183186172120879812579026287284317478483345298622798292185184845108256895197829065537207725214576250112095585590873528268301256552475482358298053997032286017032307367313286164076335088119467426683280624962579327236710181857328104144681192233867717226283889600717367337276858700895060735888030045504001091245252850295946186567531115742971488085952914373480319507258456850456396785749175310435380720510194644337345213582476214032453818274059835302408316089358279749396435600699065030414531682680714204024678356496826554694921125054595791239289841304190197990003614805904314407976551568952447348349905349326090581842127156778703420112452324411865714798774070617373786985176754174062006499520337468848172452213617661174932732824385945033143923889506920993236927150621127769488844872070724446517229334138987104244308256486064245390117635238492294121343084516292183390410078594540289341228234552127015733346730962287037730236206204995574495108687560192787324080900332221567731534864546580501469375052348319861793351810091506315170001164397595203344166721802189931364261574667092719626704243771513500962127086249561592170661619712443090599077278317490854850669033858633491788879557067005697897455534435824219788082534833805490076169655787863455623419644259979714745188822587554487916013208225558707198255668344899069642809122796404860803484243320988961909560312605004044660779472792302622413114479506907905571160182898692677451457617239172845395621254042054547328806969589838364438702950308475068161609662897227633557906406422384018235002712141562071865767062535522430498763005174506283215882332113945237807529393868292599765031220309933829852233011887274791783272022090833647017835837502293161656545351728130544117390526452217359511816720569860146937111984529071016328708235339217581020010228846176884586306588704429101436474790068969982027104461959000701720575016383900139653551355273023526074995405991212813109772483563227213541035387625449868001680231780445343784065671979676681340813420928559815261982960858112517722845014802946673947261205833492102723350108592381212265141306419911147150256460027457747211979957516633163994070079559895115614757233008615557328511427879293458744627386564365380428568825533583469667680376469767438458149418226730332979183683693793448678811447850134650700354857878506275604696827242430760489334457394719431743597207783785992021422295911222459674827101420655336807595601239717453782219017427622646408640706006060878808698201059524325123689320959558815170595915110106382416218810049690058609395550430169746725594882506827073597522633055894477334694304688042498853030923774362816766942325952578847502507956479465241813188416672334718183284383363753421251330190044495874697793867223787203830066098804446525012425222143446709692338271837581197635572374824646159423107335233387841714737746495184686257797954070273769114945102685176367818683242336853554853645068884698229960102555538204163770577446857984150714619580855703509518785419312806498103398087976061841259925752216629381957141918212559631613325359941753686333653309406000774399478846154357795454134069810145266638034403975969611527078250468908702789100822792024296480789429076173025418980607335169848599236152784843487842730044813708921869681405311620112152039207807113997461131219265083846661328661456063440787304928859941387863268411535724916921327379818227633079365306254283747089699582572868093925096421405854642059588673548379497900546774614999000818898996036934896062838146551994223826032680259808838394045830581320878128023890142699484239222503919252342843731078792069629717910241202503939286648335662748403955669209790995420899948071834044807581942858663666141265787213558175532283339504052394470248528179920596721048163066217526490137736239638491146781893935991442341952164506607358857715676125361343865887988800614581853271076063587288880147325167671205681544377837945551773518546517265698380793659467267350405972076477438988082528860191090180747669386389841700699479768207309619183035057634431806453127694710867485590646897158679296670491360578866372714589868179052298865576622579141047949562821175773390553901971566927460107038904480629671516247564067673211068116298431207202159378812278269624022715605192152496924207858199464661026121941602829278761901808532195602486777850330558293167648812107797392983974114622589889159847921796268816193930729808785352325551692993561144600966618399331004766895329755525821636997457704880324518987227982578343422592770980727395323317928309921912549477167743855104067224177311573323222845628888270870796157722485452163677339566190250329148529445632720497537620030959194596954182754813870183240059852580998157431177895088038358603623349990380607113450311886227288775751134341293007220619413087844711769383781390305020271929660553594521612104291506399429688623695285108656523601377284361668580104112812254974531431323250990319876149137593293102555547137744988091706941518732973460744593714906583100448420538547474935507676772682269907191320212277896011238502962707056221499519655127275663095123996365828424028668032567565478900849870070642666931773953183231832430151727055037037473757565679579975164668613177059208568724365620854926736420122731441270796644829950215017054730969758157459469841748017912891784300507440488224149367041820850085784650372768663407190058733289963699161613347415061913882175981923120288514890783172230180798520236170036417591018820914042457519966294313503954775764537321232673596050453163082476394488415578493450255347598947407182951499147491530988639737662156651733031559113415033114549112976591704153713989453164780535775813081416903058226562288315029274109903214097993877522688433248308096960898219141516211616488957867278634791280455722252680246510218524757084856227415328844431590860299546517156752024405294153871435035745254367372937578477111431012500524513006257829397886598809436354571065308107787558118167608923295746148719687422149900987200704914267704832702556003938418555051182334165719189390612160743929044820740355546533843753293540280081727196252915176963505739657879935708949073152328188678577314499877944038852311125511684822612874607419906459227121567973453056350467634149125747296559710306626113917006753536565466043441782620138689987126025276955004563373934950137123000328144195726063988149203117544276770729743924888856949440694915066836727292524368172546561350272657976126818870615618412639475139927875922829679575738116280935954890748592092912687892593152105882429208452725052263696392833709983153109814673546055581874621148298552220400507841447105619900392838797470311021099294058685732047774926084436282807258252591683950559176740608702935511693048719289320522347609747368931219039467519618289475950562848771912657568285537304497918458756889525905376295137748837252559783757866839513070612917991169928109698889662220867162340083746823756653170803484408642028155495846882464508057024601211589469266282932199629219510666775024865909878394549145650647627021319066197462195332774604524660279312974797461322764089414774217877881448760798544824176970605901412885995601376957059365681922468326948493501204353320470400192480440835633529191425768269036987784041701428374739817245800305180551946649384526768876605912177744878513460625639831017110899739057851231169063520061506354019559825410932203852683479959444509165382199611776728096824733187155439201751192102852896421489649114264088039973510518060637985356702300448330615144128614844460266649779749581572875413368991730960714765171014185979638413898638785096325304771948177800929261217019214901436858977446020015598245555686331766858112102243146224830388855209612025021036006752792182490099284655078884340319500817013582757461968789522783334708718794935732765496097319523915664762634544230345809792812271860627123495248101180592505934321312368720706527891160616089036277275657270678824039280929991266607119655876748074105555869278009713059108537439660378016266750825065523007209099172326177753668533523404218987007076951335413865628478900246625391003952358145946545855830897152131571607717370945307282245731754755890701144392790666853051742479475857781454835493905246451166419766436219951960019654901140660796170923588827698541668289042526233688091220078197757957021294474147818836043002782953990436784833975434253194811929512255669892624324422625743397265431588014196788168276969533811145461865678149955165751818930656116342885531245869643166879662418835225243841220115634270585542599332150903931516815503896373320486243197544785419934002651973407446928449917898465508956404335102285086503162551822175266063036488001304991185965881240165055643821771504721059740172484060716602097317378790475513083386162615693724109673816027651640681968058500814083456267805323221362997762128518996280628444884883089572884712579737118458062912720723723845704519417126081500077038166208364763263120842528063952601764862119259864701726107283450328461928749997455182450258820837229615854067795534265151397632083688407950816277885234558366749340164999505082107905628131261955043159457341040908380700095149427620993987341565682283794744055887335590085598225851618506816331486752180352227384730209586464192477600213919015211519763211768922761852536012632576232534579446793287452079355089621867463073203789233612905900270408400404523401688329350643526506230637808939183599267012926715948472646709062263076763008269073889079403302684806606327109767350434639137933965752892150975867787795468371660079935179814128561038221974350265946108719736957487133567024083982880233929364580233061748860874214467575476078566263716606357371336031380680401666443089926507703547726982895537594298399020554998306350106839756478241504766916051896961867603968115277652445623468040830360385180391167925320476112590200347686798352294022709091745376783723448598176215367839724100370790375680194654210858794361959040195925459426201272061574163748790315887993100588517558161295963525958582042721394211730421232051423473374716789775269585622924584519723351800241860191322433138891230207458563222907417728547837551214091723998825473376504192402847367612270539386676287512658063462139358367775968125562528614647746048950639846391867250252010490866740525028262533029845205799842517105472270420271699530969193330333826803830519594346752476092777437082672379388730775393929232448746709256321615965080463296181068892497232598314570701414029650668700406317187078512098837716922533797415305258874366044101519396421768008852428965507988421806187777168745871052089066120038273943444686190340804462710919780578685544482084730016823166062780284944949572989654896405317454075893590645837305992932239801621610901674319998112467974905481193269115283538359582888574322666292303988955382799501056694424999244719890174532370391933360031106396721291651730756072706108742268183931516541641114436204856967354598991086732811905105534171779280284336312816152727970483951146502853348744664022704970705203532708907940932760175081317634337839316998638895925547238376745562069244342245280326227553277511487462682873006555453921791643312304578685663341422848916768306131395381656979546668668673247817994052265295262584388071964112651410084495922596430439287337994588080512294868597987895077579588721180650357281154879649447557603635574005683356317533141616418681033958660672087150279910329774871274377646445277708853046273194480613271655147246222181765854684663517180596784480236307807556610832844117443849898814641390486045512573151847832991856842324834963709252767011834034889184272950180128044704540134174650877982039206540869332000457875774380204576259400152611415516234376869483985396124392604802103109977205449093034949825550513635885256768053075064654452367449884932811451472440858786168692378976819245003634679296396734877285864653394154716470259803974983409920512082564814668893103283355674694446491420789930579155061329334293094493588896640523132018043104743983892372171028514776348982518635113905250976901719212835471439668856991905670961009939441850969789008153807798516763429408580384741976951662930556474954630713686013720744765455698830737360583439827682747787242111648585233709525773610056255909787974566919554345767288146808697283452721773454786336302024031854266378551664126625502640471355127083809925558099279694768501811547481031924638041434850387348213512779958862309878204608474211749977398824755108211365325757753198073779111818106434336891959725579214159155664423947083932602524713806142381541879651148436408233955574048035837958516099352296699086427747371824362583160008700221580473114298192908276506889012258957621631281908615465961289212016045916140138693401875779227494906422990018821335136296713404847861119940433292589985112517721129694285836398416518926883289496506626411582074882548097125485188915862400279459607907802338251659851677755616590208720199462180022187090280521122747175594270305954401366851306700239281706718620621656363597004700069266636512212158947450919673558553342448798281506608282379672739973380553176097039956053309222082343688890264827420149401447088555111170652699846156251238217992231631971644588406598028382309119146664855399630416439996503712825928272290530082665235121045599077490227182681302455376494314041429230262090879035078617438469199173825042240105225034404974516392001755291861271666484974856119071126651185527362039399665885082906042856194765116129598403202554618450440653864298447390360933655266240738328786707863959506264010046930972676459204402616088236370247518024419990664764724479785242438207119318582116485588560821200884963533747655895776325199920135664877381307999815032160398897394480855910038090910725102143452402889287410596221310488853654401967735427452656033662298960704643114717225604320666087519890948057790209876913321077690710682611135407834250939320146831144339788873993794905371829401509142149998109638844865677733898570999915328922783442480873719107305086120008083188649968492984618168329509136498788292700853218886288538185363383050110225330666188180344700388430620005395109013173573693382289870349603282894403991423624473837796747320065880644163128878614795045516029289564951987145722990394930491434114861722465548039120883107272776127835702821966606154786376549986524470448006657553324254410966405859231605524572878473462464163758585690475338144918368529805051198265329203209026662204348857358491715154842565907586814548437088830764330095519828802360481212895997262380258450007714806423812157844236364097937353825618728840558294076634280583173377411777943838611349520990933526915170061236205737640010436850173655497427285226448135997525172171676046807669037903581048381582750165891684764311355811048468387794739250330110838637603580066754582565991752977829410304545768238243064853659403606774609908342568507031128604758231862954788037843252695306863225636156195180402481163517966832247825499251072114739824507829404317222704881298592440776473439019674472986042659683578187563870182293662861102923551488053466924844619148189000355683136251713474164646302211281177346031173165136691148956736236323309826018818928732290306040372327630198569904644233406062535058697173875084719416463125647071094662740191056773880884585285158310500924604524447501165833983152950322230211497247319579849384917635179777228635836343562394099960902027600942683568149958294806984930700363108444962920158162551805901805962846943130548686082154358591580275555021900195328801815302505970422125792573241860569987966420429128033264901452532129231333653150530017843039427375494841641120897974536470633379118538154410897516622986811811621793721467412196172893418699199895345937847601725505466130036917059542873831371765954336314802451286150051590910998427476797767105492024673628337117546194661502595162300544809298571706725011733136117288184794562715419818301034134448014095391058538781900292598970400714344396245826482791170088823108884717648179014013894099413070293259171295365516592435951961591721745865989150027426002765689830730542168622438835018778117053872663314383501274267955341098127391450115163014291121613493004274020438629745535356577620860439850213337512110922749880407757847477588073950455502641630052774880965553340989504646149891191513182444486007693832334696631612090102097160730419410812930071187057443314684948189850708034253976206194325417174330760274784843175162071087155389256013126358430875294654219092539336240004779702916723371588920808538429252806438268005767015965966277421221395259673861882189329055183108569457584512466670567137854744442976759362102384021958096134831196821753014567747328270282269513753719397746083650811010900624712556826647647817393568414366079158790221487555123345874385172356749914173754679364121800163313040224612112338684776820627355885090924532622286182661622225090154413570431214206683872111665253424835004525231760893827030825971473199851711677538704684676219335662937605023440111555948887328742364957901393112084860381485901165867827210722237557869298254980822458982775738729750425885366503134975389284068928816069371386824158934392688221753768998206561541451352976768775981375583143175734585698799821394807173059550921359813073057618080071098173415352107008337474219819741842189379666696626195996334817777788737181665239129066457372330827937500451726515050467005431301835274510592760140798709154177998533812911387396973912906942256213377156687225290704944867055979235368803594504835260680921081057706124136061132746862631925654744905469249721476941888802992628443148488197281411963468524292584214857137369433803734632127558403696333198330570413355716755855201061488734836721409762150593670885374612953127514726819504855217566974496406821576639354547245206860220770318993733811703259421252818829802832719613575631645892646011724008475868022717920778412678741582001981147781035230095918270386968192090270935319293334417360494270085237972655128526421924173090518941737636687448216361607087480349429350341119615118435958512161554151148217039507798376574567354271662662175190788953801836556644250254628087803145204278387105479887523336489315412145162516618316396912689759291765672924857980433298318680578374707546729735278226572994711442322171748955187170670017277346844789271508631374672596774926794085862234647270651157724095436666921606941314505745415405791986494471979097857467420765677649296551039324957607024387799347221871826178341301097034367137338797338537815066786696069005840893909402076333768724161756179530896369110215047501785409590207716639775194154083961050340280247060952392693802311037523906148833370652686239443596073998013540691657874014048178622560135088936435993844505751146105230011277316254436525559292059963427197971307705534603208911208387450806612311090987255096958511941129312934454369629168016180444928082899612571252393439473524976682019574973561592687105838417921153117578934736566289210046089754363308000730760153221537785341903721741764808616475675754527959828161460050468624908715879259644996342764820830173392808331942326088144098784129360902660174653951619027447489948109934535435309774869587532706517854219900855617210995275146120350852288466555555406693804814245793024449615336140985320011160619131881817021406222897187556155972241569548412724144811609681841973975968161980684053888488241149851329541455273641315550418349843530199665455638036846463598323475582990693957642194659508433987202337142767745871475080585538145480674055847457705758626834220100059366735337570640143064074377285935196607669921958172061138306986716893236038599536610381759614854710340126551397178929413450187561628124465776506313661705819422548045782500675815574996741350740566288169397137102951455624829695377135764181519820607586624371275322994942086334529635371271911995242962317430811515057523318594447721864860791521808905501993227470273463162609628928259770497825330579087598926094518575045668698968900648218172673330297939642449825315112282458305048724841164574023908142186146144329649954968460434005141852347322831957517587903273895268794247631523165113705529277964644906831911779667021216510725395757990586111800467955918304007395078409987256873094426133272149536391355994588255329721967062942349395565170268399132111300771775240502317632720946452749312969601655239007020082652926180334754519143260742491416306712090608208487448336962715016770215353644083009070078403991204072129757262549117901370555777796629933090716951916807578335266049598960742945971737084969886934850744628347801601749084328145870026485565417802133347852609245445949361448498397806193749790493746782204360045616786379854192849349516436468342899361744644350787761888279844262768495141635490040583349382363480791389063269067348214411491786781928041238725516700081815467701282580120838557419647595450269314896616269773165308903988719021962747716767558304235420219894898537164206950747680800748462797197887100018211099580033904609666819308390200068558743887166801121195629572893205309553546978845476508479491608325135719732379347090076254155538531747287691662841248790831678400361129809893936919917261379258510305220637372830313360904114667050537675365040451324130002362297462722009480127562786759526053105144824076813187149543969274808584971324110771336981043783574123792018886204902001064799747618554284606322444596241491151971121783722685704767032311356878285101403118703514166153873826555981998709240270419995432149009119465387883756620107398174636716369881786537624834480842693008504921620624565056034305549131180795698634339220345736130950610228654210384949239444596436078137969864330832669566453521980709345151109916849670097015941229237089952177190509420555873312739225647743907622437688236685735821856034457786656561256108764835124932071831734921953441068007002424541132762310818075606792297817626256653223623434488392956585635639592866506050182595549947542597946874050499886314459561916925692544071251234700747531558605167957591405169516305786624678012053121122605803981670064929825043760849126867962503351254516382603139993027232651407643125677053341765917132577876032572720034414266786929754961335706080028232850844074659333292372091056431458924989355060793157905595389524572285031239805417784215460582171402195069520030256397747592374613994477660569906776515429559524801006849983028595208751590026932498030311973545152424454357868199904328940481812708887612030351796908461944348557572036485648729720294245922299858399149820993304277939773430793737944320141959083406655839705573289958255368782505784612049699430240974548278803353427250163663692960114462449174564515629413152462619504383894461077996814949060242398349887954847878004738969229203015008161448777448154880762598329490372708126804871110035569315419712791190196994366390801385760543709761894996199761586723680887541880943048597169753389957635877494682172081058740026849377381172466187241111522826940830353708585697778448148947113116753614551062486055937831991376141977174678061023359252950348449297518993627041445305258979174921051887288911877966962011335602818977840651384135450886628064890063942014514077405084283171876992245029297984726512006509778269313086905215017031441451445410127574873642719127207384560006983055939757417049761972293145921197805399278691722843889037117219177060900576726368905776827924257270938323804737407893165562585450202075943403188103008623996429345143213532244593057034057572309389391783373052421395702403735669180363515454752741368437778116370598811295287497476149675681325127136495501141699449712936850780236045400657644125381928480838266109941317652986239321228364311510271544492250277812881938260235669482652569628799389652539529370784144358243510652891263851909182500367747545626758772501254468649551165050452720763564475488517673673842684657561577072085548687407660386713648245363684257755101849916234274880540934521165422617450370583871056155004878699267686027921520515656454075098957419801404149003189947874502978397867251062791528969958174131590177145891328161213991873454123830797833656969881048228250016173242101454580319170706540033864084166176459243562134491244111309518523111625580075272795176596916354227033771989641170856383495910575693909936312073456363383247971076899715155674397722927856820932586546276095339692861794692855503566989199615514973400254263792520832601330854641648383616353450104626033682475381935131990828169637493594872776006619258725205140391733727457134462832267845735535617046169240066495494288229953767428894589733975694155443235599586036266833302277741572543382874724265048726537682232459647916658862241304516390738680633703935407331555411339903451560206763579824964927019708624557662786693325815597046989915311112571960041428088065892532907518319844034415398300285994300325179798070063121428836590176083383754120171586635637876422348092124895366016251309338799740738568133472154805921963666511816219371181119222295856505599875805865808256095033220845833049577285215792608068356670939594461344354560455584042240605892961670195185621039320500330386390605435433617860485137596807768652898515313436955083578957306460494710507342606328138054771927883484505631079412256277809260389952325632840285673288170125442107883947086442124138491866075316205468162010002184569896505393882548498700661247960325117316438384394639443094288912934496115770840597072960313577626715615508557329954464072524096381694929284969940755367363107478417368571320900642496347830591997039496713188180413444039681471198630819844132489464622891030246455849028812834269626127212820803800800170026870550604845788896986199784343362789780097378362656978207216232232097300038572966039485849610552833092524354900169755215163160087563077368394600744551589631208378496731427676199823721432531782557255648298829689962804480370357208744768508683805385985687535493161516839237548557462585683735496447195900560531666486140775070906600115968872582988252562707977506583426583626096519843393320566723340301779746617430424541388399373166850387686054432637196970550654782158528246538704087124872924123630386462467877419570998009351358863702372406585123013268201449828284284117418330295957665375482956421171937789738891979033170402620126683955395463898313299715189014311743656022883516539043812014236990035971456246438195592075641741008485028727170113158845984485325198848156227849992328398668643828067425705087305223149346915377381038834372493470215054053557995455243599121814759120028005100644537486472566503095142620160458517707683856161328731690974344640855971218419944304560830625641951978584289000246185232002402496085332640353454455663892434592462440568919737896240567814526372606216496007404150381476701083872643185252950101048771970173955730597104494615659929946370656178460003063332119082771530513376469314066072824700725281653215615483568122118205959935195499066527536954078606757994232787419823758807866399172068911160842098883921360780066633977828961821775075541615413914160564452103250143251881622881191022581954533032366790602178292153750951674605305371760508626121610563916894419346423123606823110026263675997833649961487181648519545559067350382264034558900222968250479225734136221342391636395100840408043831439461351599672169293130399158895114910455312923531318371027932250923600670449168946830885777966829954069282421470408502972830825557287020645260784226698218310855063497847595428449156136654229034594894259798094226643332115966280123265233718002869814203342678184654057933377547603198406010029191273859594226281449277220391891839774806003606530152054585490962266005960325626922868747154677368696927960615301275919722508525087776380170885076550825665740515238772161238678916520181813970082034379007636011020542195089784145319721584451256208049893967532955720422997067359059047106411506319258495965418907946226325846697604327945512765840189547866738401547560180196955535673076576633816780665643883342724361928198224607705915797976540555851671483880375980048802787249545776381701779560136304089958372354646052154609882938118906564874002156426638879059114495966168225396979857962445957432488346565891276278856859797408881256647053921540641728689463373778098536640880325724334669280821287333968092206232184546022258680800143981662379537348713146311092264670010573819128060330600928820879577556675066287638194516983332094217793438725219070246957280951788542349708662879279915680640147193741193713764809598955514395613287981634435695414471930303631022608433003995336410272315619552814030922659788585173477570349644285069662533730034103569241526526817124507900779335396203753568526902912660267943119574497021879010660002595944236069300319447037743012082687466121346095719706867040979292133080879610350875972286373550074194421284523167861223956102840716740912912529707650799902693426462934099555868647196814426500773195829415171090251776590254890452328913183362163058012619252605043057255612592382964412126543933753166418209042959774641630031005416679978319614234197630657969735802954757767035130133047335949036584546370511505741946732385957631726898789241555405446266904156425997725692549769329248743833355707981069764995964097072686190026549929576072792953693140026166133232521484147051851974327629894083784664210843345043257774924803237169401166920087870889216540870347840739174861487759258458533965388152444053195888490311938808076238897773669895751501011808659942751449695687086460315227689527316803009138416248706852125501339815354872770027058098280289441765077703256979099813987779652763062321360803346581140764071886658508297858224031421796251724822745828058360624640081074705768410323740886277657586714578278649351144951571163927494337833306731334774580444898892395187099771658572263756384031825357649311723608527705789363277886988542901278977998146227869588884284150840469464386096795257982450399418015306887670130745083668872406052366457562897038376817745176331641865799010247276596886129039125256806108294126991333339889078429710537226282183361922151873105206815514492867581612258919533760817728534824882119734367837871622233539039991166487432255259011169300952405087160104535145099681889373805730225816230717668207527215398070806395309461746084058182739608827193004487622067370482595811290310465037108573506013422571627487424814331359015593357862744135416344084179919975908871844424270052811561364190657773568623717972768925159480005235763998773447410497607468738074447838478978858034560213158088224108421240852572513615168582706996807706533053155136671266340113847877442599707071284027414689576126866381366723604161143334990887230913301753539978539526240847161889788742933846362038804813809064192697493286684643318746973393150365066507118883069268914782345667337292518364444744101166339721384560688366479580120982249288906040380216209593817637350195676363437920126428685853187213442365343086262088983520244665732397877872880067036853156098707396375739332993370418492354969835089186969215495168608943207693312569890984806152109620776420502334487131506096267042952924210563961863647355362253441598716852394148325415917262665323683655636794700866121397644232097980429971321703998271338778675664237250019351470020542500203907527472348695983791275083355862465624458210890669479115885314490428492723346115547312791359094326997931010627488715695984536967319058979962324972747953230274554543876055626328809376958572853572585336369978652828066629019084366553813195680781356782017252541696617482038352646804094433583810348581464599058935602776329920889989157934181049607786707960221783694679690674583552479157982969252134195523476375090527654022970884191588804377033071529425361925749533383324051536290849591222878625177721319663489711976008838497804026304678144996779536824107764775413315751480644914445039058047554149965861428283312814376804902548496949827900911855568366107394881659133373810223903345694491712670615357804881584736701890826948865183438982665172807471119630447767318346117072422667502848233721787754022350894404159849131638245909980182908799530792313694439052801481868494372638742371033477612063960336598755201055948104289253242564920070598991409923059190435200457967334036831121925580327370330470363674168329785528776332488842137975635668434440471280063673463591151930650843583811228364003061482013589205547953000893574184850656286443162654801972458098019002763276987515754251414986899469424358858502366190902228384758719223222008813576287820811514588536547511478179676809577009763533963603713840710104217728893995566944221313025220125529499681076226539475378167804806965054022443152842712923407823043430028969608830374281315703976979359712413668577840111729751525792832300152662733664362856278639942281811823380735929671556258530482659188698282792325005994664868736200935096835969916195410013345026653787980787125833788137432994447224810093533793460196075811937108254999700626528575526835236558987805781768089571659198311252583796329209151879125181129545778620080757996052254237795768560222744875257519703153898186150983564208181113841266340427696004255398188299036364320483466183479336399923009342868490975504410650108407525664937977167295526322877404096405621623108019794738663291681863819388805335323857280440344019898112336698441391585164335694915174693523066410912547690072231493971226154116744740389924241825029095947289865176399302917228580667279815120368539994787741606922799289650315315419840087128790990874080023732951031734050092697268770229806938899561623655954105270694770772634370263217223185507588589002638250623642028737544730750300679947498408533798795631094258131186166662735414623567628471153527210357918951471330300365356923297956147828271513439618407526653541997391239085213816658394872415558965350317390482896917895179334606281732540376831732586502771350764196504234373597164246839031142603439247490735530853325500395341681517568321281795329925022091677961135740859860785417335209676704446930386752977657812182372871360816913521087015200478203535992566679084975193261315284849595128909954406015604153287836413606407660470030301974317820922505303025454368704036231631748490456903182523808116332920189911447859569769092651405068496671943138254025297064263478621005479120216119555221920284396985548659529660996555311647756779961493152422188109310441199492458460220392898645000120008179367361240575330752961212998121653290269912434039124267242553497295311028479656199645057851349829425204235459310628796036115431279983664490726642667808820555617873346248862388149634479461105386738373305664333158471298744790042838384270711503231201825481716043761983600995844583433258270032007768161196191883590889406708668883569364564362058130970999368342878216478919118378421060458761118686481027819266426601400082320950805620004743882995457562150595629744191444160026124062233204908207330575791090394908095342883067521431250933591677600254901503130344600736599815248152593229612915514465901594983039867690281873897282425849473975566274836583231324920737276155831130031155694978446743553890020222044840477867732658476373102946780177707384236841358233762797896878763030502835034505329969417247280631979651466000061217463527134813109164439512518161757256682017748837708926939092651845107419798529198826676090446838252836289144788744197455424940435989967792715773373046692958316457870196502599984690475776972154853406065968108065332113184995003690262197167746638184216517617118563618661533012422187305652943934602598413280451538997908007576026664105627494307524486373701870105535837353324656739583428558756090436542599478555856386642012307212116697818831587956433161177041109313848325956658600974290245288318527634765914073862050551544655271366278243162950298699483597149239025544218161249333605025985047342501615654007218232667079092434720319097193936186317161204794421615770909492968479293261882282157752671105926831042235149009559244427311993861493514160097035319235621035420027429141063070489723718853371462428282509709534952602536785079910022073129877613446890020288111311077271345263927741609433282143892459483589213148579803669654273328837777043415133601554636346767808063726892935597080434463291749971041987374330230083241975427377187621804464282655463907827950988383737993191445906595484783091354699861839708090471757293746609233101379637360657619691454121089242221835400182780974926969855914003736320645564340022004459998228326793442784559132237523392023225961946343133792331969707974782946748707513026679154796003884907614607803410980468507898187507860349642815340264686046330276154323937161467622178944134400787349937474349465133917493040981063055952390714803497779822038362119243311365918236345620250966324204623971957340746785404163807903018741903798517653933478859585032818490615702732999317610348285683332621074403244972204718945310926123224007740975049087036062141479247021584405053262917271276932828628166437048339673863802504633766317249094479688197450432264422882767239403746120761239254897597901019719488289677489102249241389710254996892818095888093565595981058809753961670219721995267055224546901007678583182054646990880372198742939216625165262922982354005135111124720177656692602361065230407517264024559350554386024499810953791424567443658152735999612328713824136209717153737999321407957869906403708039018402593205892597639265460613512415152646467912879043736616023056910431317008348017149283288764253474086897943860148370789733305480766374840137615432513797418475806873573371348376904434152059210438072013991370463947663158200844866679202839679563177900227516913416671584166646078961991093591279815132300699366402941160120033601452230899026403377045635297576522771536805806747371788151069967621126246537237247159356974348245335543900332853344585677206395549731873977570092116562137249083271438424408130743020544759081650936147876447609666957245514192985993973620636530512708539322920976840135865262419910077239002110050210035112206118997448417001198024061877800314294382962033805043687341826434641982177137667168209667651732851075712813406409694589684344207654648967390371684371901286493041615839657904829631112029303361566185715786016395533980050381757853390225940846442284806694192567427613488664880022376177864407707191253660096919206351895802161006352622664819790702811014343197012953373231645070716890695806497986915697112180640581453183233679822836244953523707213012787211227603646884253023561908465284557969930959377216199730824178852612422926362801194245687303018561681338009093154031128235705418383300751640322232138140120735896636692153461023833949684718769310153122266115941198237640450086934319055323162089135658366851292063821931866038027551662115512894989210347412753584827103598068349430525447110420512170879324649867653014248241246153662036127941168832163915103236913267840065521227311266236994628497395511265019802037957957864022999462663386053031814868558305938693741295174846644120829485680385367391985828126744879738173019757552932592804634993966990657093607267778335212660011211397490288763732968039965771020407575975413429774703857234751326695772241119855856208666566948968821408386786705692908045744155332893021618371588274324681136541573631988763859680582842910771137820760801442597977667849128038943903906139589436244712972146567098327122786535652569367301159972492580504310155030584039462200256521970454168484900012997660977705976798680919491041795624820314102900447463090194662594171421628873588237601225653617215811361520308617603093397185256482568898619802773299121350865387374424717081732223835209064560535764129348260963371034071799776505704080668768386857584502218715753678894817177664546035694413072830148590112746064872201280550291337164869988498022500502013481768136794826870543930566532163498717231506487188461723887170385664794922079217846080535926185439736248891378428934820033575358379411382853751876644185860719962689846105856420159366409837260602001629515629924772684347326891353580424689607434052497354276010119011817253420091693504229769087329886330332039093421222515397266415046273241582353646967004868798794410898312087927040506963517814753301566543743200588846499633595295453342225510231046638332940927341908765855751881151913042009773942319975721937741360233533907608694013736404183465888848689396502727188857773068539284485883198267191530965822668797010455172427285868018600329400352711334645143631003933256834781845578890576027630569123254632386064298192130827711170152759148352166309469886965596882530973725664184889039520132643706304919096940190414956083084718163562501440005570744802851168027287583015167760838702115066863086410778518642388862523485799518730454972173417690542959023866812026211573710658623966110971757466875434941740945447413387631687445667851429634162474698331373273581104260600588422239091838096153437099314635294440404457255499450189090529860642326870277297649737834833313040767399199014223375717018476195517361039723646525923018496579977077341647614768131875674728193146558821039212369650090836464808393606148494038579627433170261666302261258871951248202395716353153391968695950802238287577867291344632093664927258171906269632375392356864597795222043620657854562428159322616785298252801972934764208062050275016422102812243025384705039224445125608134355075306662792606989471667967729674037304504452806487040159976889770019822688624767466178726485447611223824861162724531570816422502426107682809736485453476988378584584852073209225390132135248466285327069765087111445574764837979006135835236151728702195178590087446361731967639049463140511281087909969723721114910938108764218262680169776366069572893702967198382419621699673901853731333952049461085804656422844826269028569002884835104940120626496603976878518016326621386439683212898827934871376826346224759588599467170287463790654669309598301511411300595635417663139716855355059844612305147753660278739793108739939503310691792463105315832239006966875176784007885041280548442876106406371518561614525020302510145013613567946450972933040201771137663430094580614759187232481207138694488487183608686336648895479129267142025719747081631769847490728422241867269702270471216398455818285037711483351878890476671739339384124083879128968658006091217847231678007472472584440154970022379357979890999149322765405378710035463167826510844225109555399520660763255356420012374731144474372581489066214609900094393982640827294789423764451475372650454983613285400142871621457544248036232360018905518025621176003423268355131048691875584925235649815923096968574662500597183907896723611211404170957412099565076661821930709708308521676014723707504509178056948230109052601136614349290714385332261717493762035284048481761442387915000750655681018240956212829691255031917925065788763922417167781660871066863894051725605419172954023607719529055792102176245422823078387795978968364450646316156487295218270957100374890970669117698437038128577245065090961631042127701247857326881266594468059183256944597248185704264757880740072166684479542561417758402213468572019357597921841620297992756057529678089313101159366373831537509921461629054201364107504641190024079134280366673450459111391558572687798499952161850001331090672728675021853946102844166345447623504085963365295554051210638780801460151069332236300452931176548461017047411117702470133974673221182240670629157827634127559781025670501142922288318383259501227061689161390888735880594900933570048103117718320227150743742881066311462881656791801408025479473166051980854002543514448115174153480425580461265791464837101880275176181018802763138699121788790972760794893566829268395608164087183242630091598988320793417247645874163492106975043572775131287038815677946021789506787481753597965153747257129597455387014341017946260714987754530547783109650213693249152158212606633919372941441085137596385679517831637638207371410718558336207548996249453265118674245681755631922437900522770927422716973230306865701522496545953398709461840862990756015784884833615941479811495654088982438318600968251101064674896316857346908315862742906418340933195885458131198609340354076488053234275639622925982585337309151373987733304318091454603004658793543560224641932415487224996677746580613243406200642951099084902375959960712556123997243111828392428964357887870970498374424490294110350674388681750508512609819029822291865893116559981352949795841886066960880537600396976672523624877211776020277839078554668002524514912208928627210870241755253369245642971577153722214357412212779435445599546320641116859218487132270328185983820767753899941602369262521255258654487423653459458428176060844868821714881630319216829622928227376798998102573364427574725653653522347875351323845146270386798544966837616568399691187410487118850340016998114640654960960593947399728083887730512248586674787460117993598923196697290594075541362774156025489920157993928694021927376774782453105830340681720210674060120862725403747130152075391132346360147232104956895234945995023843014760733612708056783697712179355804394397417729672482372273919723054974002833901223278498341411715678998323823308287910407395074178808520696836089756394652166819929442457860202771607523539120893632055130696594833111066305632925978428302132252180426989637459754838180719296304483284617355018045320882225332891614857332623747643520117906247403009950158104913837281250089521159269952729842832809142279358463198044961131157684527030646589132602005479866612123439653194292755276329367081776082199257813679180348109088432467112612930064839770408268533568232396502586844297547905839158243015502579658765762395899192269474035995328439025066581538215940955299814757551198413987636866763665277871371869695553818849345263942164533737567178191153897036733130075592053058608406446800898066900429155223507109880559054506130374225421297360791921901733018653089847459118370063898662829678004035901997542039612584767849042472263351434210346220003510440986876742555878871749683202573557765741041691619580418890739507598432157601092747595076954229621646094868827974367325497740865125923297704142594486429788180033143787774131203641109181365862934039016054616290996786554601458169199090850913389473866467533009559700092078237649408345221287727998379919199190348007777099269707415075551876243148652418877065660470058293763167373540023257217012297307808205161241486679494950229962082673301167236579874655105224212677535109915807807641776223968948985392451231203955648279462950505395530072119767389389396368448276013252161014832157542848007009474809510414276618187068454072647608677741809761982560086089466442901967848631020095700850712021864223535097247340611246320139834341408698146395028063539795953055111882697571307584067956234328421468153203144581455969756846175249550791795278645592908121554614181661086132180186123268100985959336709444703484766942165205499429248475518332122287193246242288620244679453435563308308981786933842153027299337215755499768814741403641539047676931358318324726622450596107997175129701121084885621464163991026275192367347152707403143885973227011956402543150886704937535424851149977222672095616172287236629888601825773937773957839988705585619894728847668461680475458246947364764109395866187986407334298861398614255089813439527795128001122304435414874393630081647408606422683438680323186733049238956825650564617112610535767349760104376274425933268779918947537919073991854956932997731680993302830278878435725900482217728182690922526843961318204012792206298193868241188612200957352867646405429625635915435936241910192262969202205935698736209724873822689855300760149417127831402860605312301311996044779347478587020251499563943328594224961571205112677225715211303752199485777843453802275824682512615920172198674660397721873539137847216132127385263105218511299081505598321438883596917897295754803008343576254702906944336699249102481849120461461767351814501058844851143307990685635142737754749780175147584768340668809030122193033480500543601380757482809152138056235401782189705747478533601598048523458578821069101361415846930441714953801324485374661038164527659808857811179634732390908161403506127955764506123865494851987395390726519886544782774704061800664087867266415411803331670463754064458297602709732543151518985808202593185305841819873180132206165813838648081070498589925258455996594637733653564969643960813435353800627338126088079419948009080639930898514003969225475939715101492718127901335083740047575942506120462916058362087435839574345301290156184682313752020035778120065626846869209305024203807245470558078009533771527610667001827756862712661022651077275468626661571419044577822643350572088911247361329346408480806281809072263552904164718911595460905057507709635961818141781908794654613518333948329296235789789057585429720095499399596446633811579091447206909198454568518286523941549869594178801665289453614862652044730824070845753299928101868106804456230687119468969930926419787818771660767284519471021289645249752206962350388327824623613807549618425514054159054005041620595080311557976408933092084282427950068291976560199146003006167503389746032365343785774744658499749767511344040271368125760455843880479075505563199892006492594456167580970663239766512758586878907377860473416377407322906204750320041888533795153275148200967271203418963441518341152842156833423494989838219242795623806030079688785245277084481937855287283826238965167695423506793370461302484148282679730124343057353171635351244065181421376808827039427702650898730833231313795119786282099998141696858394767053308265040887586213012366896696405047300253598166171203513408752410965650499142379132256050272813684379168447714650015725617222291231054258973734357441181613034676197530309158195474939666886180384811405554695987842554600615955844165327552264690363414383828593181595204489075194068105104207856839100863258580044724606211133739819058527202328653745631990370530127463341710609908752417056241663473534584101575615996743953692614149540024631853908801543958003365889377777981833991742591547293433005273440970611657750228631129406789755564912829164000922165100859125080682083570099006348512300590284045474277737599721218851025692788903154641863663862589717610686101965523195192691470877470935420242049393988136868207745032878251516422738332770625225760800971863948513699076862642989921179230879460190973911271249455967076414133380000468405328199194054629427439281512303862426272186552696110670060060786450272189521613572213953756504830532973342281926020130153328119379685652369420668583761200360744079099236323730237290889664858387755441412454933542941587960536894612782058181835202462526947160562449748719341650665592387482428199933944657083397582032467601214934936476162527795260571257852457508168322367418560853940566602774725510308077872736666163806548878405879248916383115757413687681366867175999047859290037958404327645404222014803319939985862075056803703404842224957679063199239356136999658676603475471721675065396613156622211365957979209451162020036039636670841661795591373246200013249799226106904154247453339893726574269572162869118406139997034502796603721992894056833355553553988053250649607276670356220821878793246790364669458365089173121506122524233511234689283473039495334599364537214793332837567574965378972062773823614779970868140931308955975198905899188780812287632690822117602999133641596262130275760929404025836857713503154228183343343729788880782107558381658796083128301755064037546679182400986373254559277871604710205044708196115269893297887632379124007850674702443668974863349558877158492667321843494017956942499387395041708601987505364666123352828435823588470558063377190108223895266524492861694222039523187193316804297076052152067612638453121268006522604306402281515248085199945578305068688095391556897609584673967447130245023898703209128117910155326828408807078654861188997171590641452424941671809279605553285763060319017435359595651636956652138686872491640307051110997885909015059685612470938016931637803433635083319085958956319483241114571926754505870219151278529422120827648822611072474741786730275584458875146276881525392625790782755503004959870980106796342146692648445735263222697216456818829080835124075389745502914862819345353999211748785461548309935986201417145009435292391993044047009665918056015800443356394609150061697720668681437795827765325179152813633379352892466191538405634338365437834186333658271662251639543235546794435672681410342494209258882849415888759020810546637801402340049664922822127827809957487694368315889001861875285979657467077624687034297787113191736832741120932575417743065298189867865786670272575448324124963293687700790643262034147843633400436310129364232206309467987415024650410214391560159692737950063400906001727744236923163994220361547752788967054460604632866548236332498761430061282172560470480843865759652940347261463306717109585072227948517528853439131426309035707258114743423079866356294481063752944459257905455591075528814223093120596106351960529010247252245545915645482376671998066199749256532853995360773464378387880173086448569011050350807316133642570765110887153222729649978343906616912824457493518260998236399148145791294093359485973530525057240835952155683136196692101246961322515479889604635117164102288649703101234810791910209319716890579400610289962563658118944997149917390485790258018219203526893751443108868268177789443249388574482538186793511255939325312858962661581366973527990482311964256462147456349755338165609675149614731322349997709258006247601056262443734876894819586309280104285946676348172833512449796913736994789265859774132344644591647138755782019377278879598156668142045156210312133899167483039256938137449009524845552106968768230406396747239363640681217206581065363302829997762495526670102372990945585671637016719226925667657115965829780679313492885350343857263727143219586974550163497157379075508274111826809180666705667615861354708464811455378057197749016174987942106814361716212646725594809226795868785311078821327606356741926347239876980811660060423193955753939747960323663464151675678070021368557455612812167396669658332468085169567215440712625614622825502196622415252496258749766899916106489890665806277824019784854649555219974310203446138659779534336003799249807668724554636412060901010584208297045914916930043154537584635027009492978083300473522386530373477665943321994329485110812413763135460036797752641744752925494315687806317155170141652589568769103954035365579650640821374135965972628013989888773620697475422417864243095838453652610641769358926843083109886250541780429736169547264516359537308085875042659082324617454951839513252099962588049653329797624116867212712029163828601108714188149721026632176240659650793635979232876048856020664624450393981402110044432672316946633397146626935521402668765022226474500967350146562870672987035196467767154837871006573495081721468180925994032809496776811513286659816315225328145764753548341177170142467571658292408767724973470053756346694297095909637417032284947463142264145554771988541452750652206859256196506648878670451720491152288922929464567982466407923639124153464360741440650528064213347846685157912416601388985312741627098395623296082444213709059058835989056977934388504594038366776843818559939855811102833268324079575456293240416485694617486804409378939504636743820014356529564600770440427186107375728946985999396138324871358796250316622965622671335240545784363652439115272749987352015728331839713398918644757770766035873077129339779013390432394551499955952649361348025006556242759091370548830841183336117624153258996377921497150954839905954225130647564340816120656263182675355283245156975127588661642607763766878365160091946211427741881924972376274731377519211352451052680406304926362602667221251277380692081688669441089804389901595041935021759112904785614579409916961584656677593030840605754373858772935482585178633904368787889282575624187110552204492826232437130932787743840107796274718721006618049038908865832026817752787022366845232141994139234669628136852357356205529499153419903265168885358477389330687980285920489699088862236379453270260725189412169657003332822749004250994069692163591460396649778441459475437489012440297015827333927174270418532547687816264177800877754797081901068969243232727859393847253308380696142770004424826173210025831398227123041181215669315869833448921205287109053458645782601324854300294458217612788124910315410426472426669273492415435813008328550283550681630834025242820323536228425409133056613498013749338886982905087569658439720179927445234579620312860616850855399346033309741595008089626404139539907718115157458478656724621975741830934804028275647308254355256217396030812083793290976613769125883345165090942472732066983916592874903794474459190975598271378297238772159817367487154995579636289548592428023561548221986542790339735988413587098631926759597431551115475133914743032237747568826807718490023319737245060031296345734939730335379926268920144803416290142292366615088797122377563902113312349255320091786505617515147636417785598395240429430548644793594800198459227295826709743218736667079811268223816310995174631845128565972976070003219304322192636785395069864956828737343224302945532762489774908267121127374474955182565399411561462110019555726216310617490352815954724225162272642478777880960366453597818893217613146898928991857035795164954304679002151637451026019626504831939875271653082031388855419804027274861357441082102694421641814123481680384369618673656423706720288276450772697834632220431370039819859442164760896501444135314280397890585967656394850517619598802393873734645665318116770834638962755640693241053524138616085087204022195470059246325955901992737949012254865673755077863315829537923341775302745429277753375176087423125007855287064647204093516530849164341870423283523069679459940702242129285522566640497231597361768127884973539779850961246158886932961444081496007439047558033772438302416757542110963494671721317520952617780177917929734578076784142229757470392370346474006319703179612991169296349909186135742973725326941191920619277237295991909268642078968557013484956184285564013246413507367784511854315274515247429754178419336362005373038721519100424596485475420610443486688998025762078231981854646987778607894276394971029206244788843113110124071239876852348462361360414958771456713405146398680789041076589187142752494389566971701031065223360603717287232238165296107313082524457654813908031686791002380914505051898142802549707853684585804053484007079255873950447458616995859536330496105575627932551583207082731078985490745014141048508897273497981628831296138468213835790265706775587299295359533819306183335571743720222105895439854149612511232083106022090499348359525666310955005501193812743279261617380763615859649624177370210578396957114460496469647944211368814564166390510531343634124371705563752032953974704806130350566824382650992323893197653685501316907849597035684296774932839665587170753369822039193476501478765640732912757741457415176272251297763905336242968064917934973498970224182687395121695700584002935570931448227523599789391747144153859288747354422023435631366663883402144348264833733074804909727023143018359593258847882819891830462430310320769542862647088497338114705028789870234458937090775206815800661491951491076372349071749194614756984339526723075897823652100434508749382604915698193766307234529809006360262239458409899939522266631901271694476018067059766594277994288436648127948060305264809826575202572801983845735977025641917450362137185221335960608240803010623970261328027557375169717338104442511125161756019798315968023785791468874028870467532592889211899677494504019118746724397040355727412487485129833324310107813819264396268590497072726297707227511535129066280716244473944843861703088073867030079580579459903852746234738430212468529716559105903063580143781790129564143418108927784879617796419008729153046761514203419208377555874851628232347535337963353551229813746417160919718718357668575577084049930910305907550445284571797561760876172097023628080028581050114671800297907260526929426008856808908365748046706993086446617106691375703878675094369577947077802694529113405478053067146390961231015600023906277998815520774811702045581913979479725284513469831672289026253032071343793870063390166224341210333912108897578367789676113705908611866167211095573367805368504128786583606824961024631790679993843996310608295387143480688528307703690341907405299187386287089041401548514781273229905052519168114568249089369572295021541984777251805617199224469101889901131649304726047669241322444224878514554256469297117961232945117903828273832879803981969089824552031607022645008323379367494955856524562844342841481561644693827198886999290353931448218679130110516863114953157324352509715677598994378791960584931321123347175586671706593962123175827066086786755633720081436801278476222352419897742435845538689264198626949360604389983585900595751382304120630170290065826525233526674194108829519479094830996434927303422713056598883922684627906330670753339338862346606555816160067203422093462073270934482502436488814972395074619629083395877072420249523136147800872314702361654758676871006065834823889147574524361048614098005987111018683882439744225032694074066352219416707684064729247418594973099007430969439451636742972965095058531072137279065437599233370455877455323416091020821508671364722245153899431921039290462075776775199124918808615600311479339654994079362753207511034431998782346576645487109295126588458052108367557892376228039020609640105813652188133736335607290611213321100304083421197958988972232344954441379719718756291692621670341482438829132458176015704216537626949744508921513060743570958236355696452503056196786703998928842171696055672652847011389196643145577423137784414062416973355868277470463609704842827954881569382125622975764736907826212741706470912315550406391260189378562284505308955490854872814801196795163335531952683402626662635728091155050751007796628025183782214904549958894750553425290977511297277587157871741560604636435724252812335167307133410617436092791050153759118043726699900294980447594349052245229900813612974213735286509783834619708057361539466911934201702867046851746209678177460871459105020730610791287858310436706884072605270077618761329810683598197834546174729069195993328745564158930800933412481657325388742384188960275690020439506686651235146647007691695336618229270258687783756961468734407781816949897345100857381598275198976072718187697834355906871516216535969398470367075786728351308497300900673765073045169526793163767903191513218907285509781407287922158074517820567169102894972285000406288684268423541016955966789000824219690194048726979591798606171590024897218234631572734079410082951498430468050476748799718131764486726530033963592252789802015190639337268577331850620123554251077151232127754966131198238607486090905584577372561398040682079891578037646017725402690370417577606825607559550370088903541311664829386623506093292075394599968520192534188741393383749729547998417462928226756157964528099791943931803637957585083326910131450767636201509770062981667222613361095517419440085948092465341623380256206902260289811672607236446408994109013740826928958979008594381610078844752190354873551397915817941543425106872892761954803806627955580561144422425103520657388328009286944051310797727130197653925072445260494506461147621026301742484021568397564069961676031031066297427113995286557150179829877521754165459291846606349228863450664559153126584485312385532232390373665828612886248156021993081020874764939628935443389414301788754480530082737755660990775204631928958207199992726866319823882571319243453707256151056129044537111486570457491079290697120697016570181184213125332437837360191991029964785599226077495346273725445149961549714328085021352373940609330198209705278973575154125770844205633017033971865098439940071757960618588388498115527780579454281878518442967288658681260704388812038729513015085875648520529675006605132053146228203352204120947875958697555890389945688029849993046419179666726895133335364762595530904950592745256977143876514032001101783030459073573028782342748877487597375355216619680988385939972194106579164227848811776041931510878258837306454086325897452177114271644965691338837487187153755422862126076805340063379357248025911409913035320323026481523160459571596396782314665758828655223747306418017405107055923255383245010748630764940847181458938764477693047480859955941309129598927023378021102029743070061427829890701635143626504237363932127259816968866422652821152421377494916870252862856224578124608748186249276770340310930442643664132253356526120521016689761101258967439616272369381137343568768385230460747864596045606912161722465411226868674619230584611602127656175609488477464752406002187994288391760077235200960053056541109364499558170438059334741502396756259144070086823625167772876118304702477440391245347539757089411025519360555128279755176496867082530895619311960604331204141139200297497574149392646430756879847418132561336263797020322003043273868790975417386136747233093812830820776626678595158933866693325347730296614290523538320711287011232649941736633670671176275286120689251748230515113347532662838558448218039536289264512718928704599804232536584589823548472547833517138148348509286593198156578584531168988456893525271982654605152400535059642703723176073472331388213961793784272504008296136141625949018575247099041747784839438446622128944909311006092331021821672814660966665377653699319144940755006037814773459720956315379032137962117054427209953527217799749451227299939756957095556965971123523163990018265598030748720486674770144286080919467622135623324162728963987491414103126342008238553883804765798894203108085553372603336449887042376967094903297745374495299112651447080193345487257916951695811022251990982608708616155242644374825661556168551341613046566730081709949171229303480780354379969749552918589862183791113477257433315473141245916799773012845963250303930965895950961618433155069769104773371584019945690789565002271753200292523097231930746346467988135081862846133641804377388784499023850979171596687492730066280470380998075294335271890346147733660807618810506848911226344731430129967599367758635332531650678206892435630065774644809565457383714738653388774480354402491322867289622598332407191765254811609389418224180326467989058547906454314640301059710770859964241707402257624835266797363252553793589058026702271471718935340618209310106231679884257071596693097262243527630963434605529064623036579264609187858027455704211269793185649657702838461054353326597851525550002604560570217853961564333489979657001413529721090498333016594517703006409775455413072253624592903571058462753899912095844833791345931355234800391630304044480652702828190547077630516926356221622643590657983086611770743164796063842105828615166135712289163086709691288228975997109052632947051407748359387166448908446636422567561523493073315058818010527089406968560021563093848784962682380324111083587238951278481528774486708047428906866381616369483371318727037328959113263188492651555039811306899434799629514934641039275228922135060597332760177998878372428279510354126626814346523779442020630421451903292389108541151514814675233569138035680568101054792366270227444119866393320572533343718029614415614108745369161508178912596450319384626295118678922416862533965607947261207964925218782432223311087638513582544066136462567312904816380267524651755907597230636809937086770432631233787355641607664946688749297998748229944347637471579281973201545900499386119641378890405572585398288375295272854099142430166855907419687077180142169006511490798716399534793996894192048633517802972393960891157459316634866759783597550043241161954796320865668432959895191506315862784200764713309347194836273655493903970458325726070628367853199172405656169728973714154542771904938703975730795271726480952265488172060939630812995346739339955015348564691920240657653892272364843132155031892471388333369677720654576762448545331630801701174276453175493493752543226191808675597631629089535312175014492872834813310653042468123456168873832055939386225016302733908445350557923741564490778394974107564689630530096217408648927583071238124156159111993369736715832627483837475901282501928761951814113447934100072728483925951529169662187576415945071817745093304438168369252082796012994890453122620150549495989725654806891926181332365251519248823817159205717519438090920934045515509327001177504914936813115123450203294856530265941754569862113834720005631539544043272312564189354594295248715583710596866618399437545451841410303651315124330052308876519692581075622113542988456403808390995976126264973365188279565334552209666183935595889521455197458905900757065856421295887738257854682327772564781625593890661349829933043983098010444546688986902934506813678283894659685005646610488651353551736695742667156650659337115576003822358988858961420117981175510434462693659486829855574110769715571225447846029592531263871482952927985697001436288367095863209709112703335020956630832718395867282403177335197535912895436833027778000478002816499913589054285751196499381183068525720762692715781748776552177393731659132523028359611998570711596808684453254638974183411005882169976997150311200332497973143035753743521348849821267032657398467439481401830319651500663343448389596195527193265830550626534784607981464602209498043302554817300576680275880489420710207147835459155403632865197455521348250239188514507489389291999718459754024117089760162350483760528234394620774164278966186824638874513506348615494356459334422985247695759995017235835542743904820428468057521075330667163648002649793598396768199491663622549500482198926655573648344423161746780001786052832881733216326214502189358388687638945779849502032567742083280629109129101319405873824391261338814932601302600903200033365786318668191099012845848023415955146239058219124662120624311899447396885464440824919771061965809440650722919759952877422901417274334568912228109894427453621716499209047207866683211943868777463961891803855335192373448542982307676269356805632746734010190724814335116568912963048231010020153303339173214668528272130720601800844321537895818125929306345228244706285192811865910303245769273639327525001518511556508615627738772049101298640830347183381466488734437855426145101141650805553204146691170496459531747011338567816806955988994983490445840678668546255429551249732644277606256998374937617908189907236420101408481005424591553337690600872837569080711864139740615743375502088735921092505600334165078692506867964538900216588286499327255240561575598226884559113278364559148746548265746904078594985501596044071996544758365929612045754551369756396518617418525571033950937739665273118967994897473787371006007877599800771318066431560778617582468876098941341731626275033579260164396323502926040065648400255610036919864588595770394206593164993564816225712429987740051006918547527252345724476818722492344150044318276110491748025199502202889852506302142887151956539128226247027642672417439736842229223301217387388253700464485730133163295570244749979583422781076114483869485843139120599615754689208315274752761558147840754527219732960692162811759898649436405510616884897625289488872347683160719190814354080611877278956184296262065300887861389355735947425696854564122516306339671400395663225262775202998115960871965253155769115211542727733457612183906338900421243655345704916554826092817636855980539520145819250855571339896918659270146971536893939567308159476601720267042613054388781513391322257997123502707639035171869616688017187892566410540734877422469491997655116842521111532629210816906841731135384927670881833428680909083956340027731522149285992900416423864764223722173671972602679870056251728436742954938747797457134004672272231916212181670507606265294549182053059439621125358292958063836931964243795052108723853228997765134845750546933435939922797348650783694727879489279451194125249806787516906777103446947048646512790801817086932384873774039292795389847187216715653228516565329765840661790056458137765001223775070184483954261914451118712121006598049978799704996183655948132548387891578701689094121464402361854284857459492524657628329286141917806150764019498521421417719579563139255575489627833800357328509126545987356050289240186774546107677759599815863247659424911151680866681184397274449398288206020783342617861957515628185742602960694758976299399164286017351921278679100104212813488534093884300997181903654021283358482216636104143437249019641370956341660728332603312753519122306950120386741289271029955586674898349671324016743626258624068193532096660205058260938187033419754847582182093905283836189113547998503394182153848871286392814179338915358711479249457544242569567340735756400604214807099834258129660432050788676514095151106992563707656425436528543510457295841201094955851538983058680978931268556750954159386725390605050559974024454087464133750195816625648941780974889775685468732046856406587343227960567289081714209258435294444613139032773817370617916460223164444079653520197759718232915954007355042526341526032306702560928260447139908795700459120108958153213622850446348776453636209572332728278452471420879151362885695833512747375519051547921757291491744862498092249899858205123117161618200742483244868848613408613272638205714512958046668888336290703955338397589736631917697097980690076992531298980259011643379073249093240421306705118417090589511273932024564266879859050983292003650702206410653916463798845355282561627303658010815498182730247413263819877903880478054653215752139017573869277824783327902335992441672254901963568477043421979185079446769459273884025033194183113343152479232482261899956242705295019902987384094255824425229459455704241495945000606098305970954264643074671696485666317897421952020973156609029067912198359134189733385321322617431710669808775978244492221923697756341051616765348510698773846671042801118903348488070907901662396811346017348115229142643479293964907613146894448884303677506212735392087569081858211847329042220890004030756766647001686922226253787055586695445320541945244113561931536815669075343813545348288448031058108335479659697972197122356661818780675032408338269947494861084560823696390782671767131908412806390556251429892699146512701825396520679326303603708082581062990700955159792714765404286048387705668548660856293495423538430932863251528855102370746737541798041517223716007131035657872282960378622426760384066995143402773018237952766973512863084983300624478058141094398314049565878150683434699011589826009417156134940950100453818944027280321529688397199277482826415720060993137019707995612246305436013784116221759793252220856950722706640613490918636461580114150965918199943699586435574875057411750618230712482400470967521039227226953694365723795023428266659274745429613506791717887447454430037125883919772486790773253646302636088164241869355070837371335669054209922411761963537202327595782098441383617085640040896499775388232828856507945819801676939489337762982260333702525149401679092542933838891132518514066661430928623069966577552749812973606116544555162276007484283134707418394027154441687859162721143004661535551155302235568026713734994142896216949440075654315667867178810541719834102715935032893891800897747225872533311263643241282146403057093504193401245769495941104576411445543323500909479265766726580614227087406294429357767447260636904245107044590390176531423486286917778349173562857787579300999106337176991237943781383282258859006593888330605745909089613843264480284414074108350856248873850609319301720227549557496976413773495537390053206569932527091535735409243134157241519972567912389231820999301570643659112569185914317470810524676551905718995102528299757894846405133447847323038660789320902924737343717525182393174031322255383059336693417000261578095743615110433031666555334613844472257696507852403534149286858861399556064390728315503931361881532019706629363412514171962480357884614512168969288586612457273753021243564394480134232665116115310499988360961437447466876238551385763875082402275715834821683927706181473895526773971597643264126105738956577944518335648395840649880281581209077429104014379460573131801498609423117085290407596260932593371099344992728773526818348983322894662192751609507025833031737706343082307446378309766112441694608759893487561709197595799109719359228086549353088571834948375898926479254581897676444388671392315845270005411949644262757954297023123539566171832865658115607804399728666285635718636387039634747562545947542308536844988103249932259164852322735850200953148130759872132732760116871130632535605909023993474160443743553863621661284391177283883388473160777969030556927919653599912946821619871280294365028396977419400505101639961086758746152820234479872224007350101385600948660899576352584252401450877625842748418966284613937441763839220798005335644814340884144618793517081138256731185360656372873802301555226671195701204387953539225366905326532885846683128833827600592834151404788342067361064275645350246953154874936350965520143931374014229915824414513935657158371389342995129003325087193541487968785673340742177230435126970951924260379071501535970555482237978230121209429891516639305792018069715894302297796975256949213536675125408986281873352142053434006435560783063221936936988076859808664927199978366320651533275571928151313131194798707333385219149990710552869475798076817408831495303194536868195237371150725533012741503749621302427662719553621448387637457506996605813753020087214415321644425007335711720469084094682431223347273460258835338396418159051524080560529863319878973545178348227109231658326600174844937724059523009338475969794999532605094430600029357857928879576311327163588851070892713676512325773164959330636586191669949258444087276546488161538128406787966320061409976529518718195572661293422477065134709155048458399213840371156011139503051406296354464152067157964420543950910514882740912369413576254500392602671232880939454393730587539873433043905411917593914524802342834412564080824671669783412409745018566275034849983717342115226839782730845715459130870492121709576808423624318189614760284086846792988929589853062910598177965016291683205130417362423431446776114364860209145438329640808559228253707004904570638775171112525585641636120538151430088638266191161962055426391309413173567448867645124455537444315741469858283043679760607633064223529909298451164250980031233984451413070965186467670534467316657360720650495214424700313089197056268938303921405453120843851535484986903383126097498921838944843130086981651488876525813883136079794618138301303057400696877053039920244489216621122069984435994162741120947023022477875570568216290516914838283693713472573050523156057183168032498120567293811152043950221674105346375695003000241763097114611208551540548588747727533914618276279021468278297412811006675947137694743701256530535066899331600887476260383651467821512142117322166177808953788267512191435187068054035849342827936881166776894415885265295046625242801250989887650007499673967473006645727412454085954787443430934319663681070153779924758172867435337383240355315102178781229706701043726897996753192136345554098964895596677796089171044980447484837212962794383903061988348146433783807085816456988931009584591786198194302721616402570817255621409507908301511613493197557711662614302834204290343575063082346793771310934862333145231820731739310799287189616335216606039207260353137546443711995512145941973422523740081786343086969846916165455842131961605202765897209249532849283293877555680139251444157515368532040825423821688003991156775688584254108720033529125728602643630415748223179948978368305418997252179886373879531508657295486378097782081031999379194597604516407341181996950931417110625936430777134715819422405585802768212838754337977899959545675801115909986845089466792114905116374795719944046732582596722599727438317057656825190195877822101927086451408530891715278745334837327289843462158256518768012668749510617895931357529276820226121231946546934491298689153545063034105690509748021362764802238696574107697423887187688905510448107011565105472430678987554207712634954035086936188625347097051250986406060588060730754433717079944437860630356545846441453519950146705904495018208588575344687499003420002220836963101131673954924950008300228551158388325989009129586387125679622972189547737410164594412811642787239959829679949348748990038462274688152371009754469132804780122187298045828966681017065668857406745762819613692571062842789785509861161817830183741027857600616828226004726686115896315172177070301819259078426059321617620904026157436408721659640039535937334771981406462499384288679639112415536926924286537199546663823957145626975741483821513072379160587238728940364268783529721757387099061156083474329486586815552164800592816522212790952311253284040964427011467153356080471906976310903240573714277908780398069106449931449659873905655621846045751870676414276268389297039931805538010525049575873357621537478746259820421522506018342390802006534458546393716212205690791240955273188033686032761422991418812793495913443897035673480428742268994072620181446163993639973917657918373953851194866267906685495851301295807518021490441188121429722802488884788923140262468527641172119783015664269702017331601051521734456082779590330721799056574158313936782052750382434536026057977616799678906024811490199766283836655897137475132916042491862369646020904686850067491566895965535852932509995837908306617484121674773300835022349269486311541750990712895085005083236112576439982510039092252075004885872339437900239515951083333125989782764397542708281407584441178202309722500504234320400347479984314687541204775793005109824333665496100217038570912255354983531108940163737733419804718558407395353856126006754926155036691043381330131307640882455540337975591789477673170149903536916397918296011660179227399785813204989618663498203630392854025637191161626129125491491627175506386266254510759912063416906827929161655339697171762239729976400115099153271186740138123071800384933059826935118914207517458294888405174414421025251709904453480648457279194033882862473343668534365895650987569855810125479741772706554164109169921372358095261761550014646194186637539373824978474824597259292669448660323104701689296916909400683756673368683362082591919311858904737981545555044017916568637247406116424995803067863363898232265005099121177317910173331721472329727819652055179606403388752207564651828096641783569374994031551181015070211609275045522103218882159879024976326298827650279607556224396183462547264308569893379967151099212128105896962337878217731909302876591814903492319017680465151771259638179238431009456195409092676615788494155875798209641040533639467743320952315211419697085612684185838792627991514535060986681268642724046085999587608426467291462737564113282845458000585208842661923388540196433011382055918226148989191712355765699319290431196231747587552938304353804157768113766946494971652969001413936584969961499059623208529574016897708735858849638912109565289516822785996844515144772760225199359750152776688998235413827054550706956702012352993172513155156013247355287567348287617282227965175924834366669156662538887352364856742354465190389751243712773467450175008696457028041521546227795781752661832736208080812320605519052106993716086750195074672198970165426432838551399139193441235938422792700872251171639614722416936910605649241575245945365332007847164915842784050951941838005438505109902125739433245284495631378449038663991289820763534920392003863435171608595435510264841562961878583785718480473341843699098847476674190497002837771743516851221255885732130605594783446143867440213375180034140781681209805952866794292226150458758775354264006001919633153997341320457680938083152823962314895750920382709109133037847750761938400261202599911841537698409102003831467301684404371921794695002523385329786906246095271779907405246861275312362210683897290720558852210085038967590244813092189404417635607847201013547838507871350281050052437504949774875263788175886153707552788929607047863981967244040668638911017050535238140981365796055094129999754898437972846576144868613434821672979286021581532435101063496625808626594547349017268451542023806635211588036358476398446199344375529461311320543300045314763062187796038757039770718131789335866538672100166641462976655342495025440527893711908832860033925596206766303999013546916542820017272016726288376773201304602040874721473569787005870334449672585924936311270669487040386162109257107721287776301818054295070271911087887111071161039597239264426815646145024520713386445160676988587234949925706151024359235981644941765016396105370751481402177363066309667137056167166781672643141555185090821103199218514501685086327277273856673135467402539109168840204189845365813217801601595469117894141841530173761898712380992398442552099349473056615634614417708411300150311131427469145777405915200259718324007160484588483413991855669664268973287790868063067052548051002495660161679304820601691014574112443103459995948226040514935980408767340164501075425159952311024099202055053862316336417743957721214844499390829529873936985667765646883707129581317354181968870698563948398144287419789242976264526752392377846455357107774157949078108271201965417115763007928462707718521018082866816269873388940069002568837912322664107349254748303223402403452605000456265024635097010821376124662278947766203703474525335384990949328858496439060735356361183165947203886072459074423098215372746139113801478161149153508799612063817967480007756986965911569205167367694444514551436196323209468585877062881210792433611359479769778472606962895451099292141129107164245504909248312737506195556334410125693751666381486813132434057136344342479115274786119319079355744925990963636443282045245004346349287875704078345027398355586776149421115797814562173469272338450639717233117630769579578307919445175425668020291458375163324011864341667830841136145271374595982479229904450422367932234412783278150086348125568877739317522275381669935184728851191991674811229380095588603799059589049280007065200878343001110209890503419232848442644267826248541354271848753579794897810653356471805579127555831414425561528030574517149767941095159838163260873180132755956055969005856514247715890334919210004608059610514829989570220165018560783306130425482798872893339152898059955014620663510871133728008852404659536405457824603158933840402284719445940233246903262625400172789858684011234369282873803798464682307418894853467589613389192097294204117642357127087825250481880668322437177326076475743902617719719404094051542775115604838927981586376228599324141635616518106478302353880140798446654852318745585202255518653291363230908839020298208850649403116004893518436137223202531068999937207025939475705809977542861914682080483246526227870899945260162539163690711206651550821656856214236163701487159402844338669269921598151952686310699548431143630252221014689118709335069486985472565298416846651074963369619028447613559165174391228632880633708896217745585943515685188815583193141713923352531107178836589416317548720078531848605535154316460449724364623754721035500630831167366733869632604958644476161408520336518016659990668636583062477725453430600687357915920374014761423191179958597042834202916902627471614503967366218697754410326796181942386529862533485981128699663866904954897540663568152664383594256003512429071795411449714514290395205322237166927965364507915402894617634683660907454085002587194630226656937947377622975897371536234190977887113008559267386961438657211000838772168201287602433002233174043879735168912676700247175129909346245068557980400900680126204985305916770813893842571142323647399792376720098258685095048255838452414379003803253822875928834953986834496882089525296259111289414040165840579690434609917445588946621454949941826348384360150323033275048508172719604091809136524600154469785348991809478455015700404131534600936833815672097305122072087587946356393601161984277951660168541027289825541523621018214695654423028584919735784693771367585805842760213276735017773372293817462326990643393357257023631163551276956618038914295479441668171202376723492970650659622348944489073509638251156901658974199737542061052697948727610422839661435303286223472218824529084136667452830960567629651964031583337654900721190814913257885359917675576544496992237647979069223001658254827800494751721529469712182896593734140263830788442134424656745476560544551285217307343787453479179078898811640634274378494046862738817649896831069455901401529773747155053148248754386326066218979162642835078270627269948518591823890722579234333712624610633948058797108415916252886381051066945520598902717654761490748600045756961828046475895234812713662170760903459338285286914562998062531261084028390681350095256622984748380580470340885712741217058900813891214537784218895753544146203363186935436146525271376751049665108224127909434778312622366247675702215900681282542477810393954040280753353977622782527847136865106644370878411465332070025320600226340951670045712571960564486971376183685993979552759297996426353837325158852819060008541017611699442072999155143570654716125402355290813543140553292150721022632306770484160616131836392668345182678005958422874443035432707251951939721044558961864201365553665541376840804761331313132652631903591536393050517084998900516151130688789779474898527859794102538795088333495083519891543497317988851944913109449367858070605163253279363255439792555239008358193572629325996882600214236989524825129278832451419608682605636815680140949268598626370544656473152678396743778873991745081057630653826700283009089909018477685585762848656170920889557344976353558059642328242208573400770339440884706994066747570334979225707232650226781434102981888844630090643007152536557635235062986633914571240965396503510885342767931467897508567793342602511588988978414853949945162009400797129795179757660982543028925356758683346495306366008542415804589238380181027091021184890985185087030393359028212389439874562733323290537442566494018467068991410571249918927769380870690962173475023885017945861148679216264921701228779704506299566649883576418579310630270316398046570568057692228704772329811505785412671174182722474138317572350132090579140597780847216620406890144682567824031604115034536165158412715456025468968190807527496364105681365351614725902029259858013829385168186861993060201121286742731847989444909989117209501296440189790503605264075809125976539226611533474165013430869620788073708744868633360563522101698259977132037446569857790956888331771279549383342561543141670873522957805762036294886373328062428270982970110674064354770070424214569452619898712475022021661775681869667123771147411441066450147339766433713569782565693493113041834398876448398581670081624866095302489965175591689309485942707268889936787103012532203660009844878921098334834448186870284938962966913171111282001228014158340990689076732355373821401980018990179829393931290687232056284658544216050202396765505272821333384958997037623316207120602809755718463107020510851163229442788334590022513964131983695102437776806762538550767401240797433635932106569250769265910508343465004984870807247341072095062774063126540669514666505468749951999299481737244924545980708465733094452534006788405295101752378860546186121966832965842171480643562331687272761222976662306236828129516133525867140390963884123574479638245061313173228784907851249705655649069251870519968757470883319093432688727924246731600137139779458986849498804267901698673452413117194446547431063197307520432366700145884134779052274659503646038352112818763337156528482671115004483521946280239186439451341273622227358632819666219734513227595528221382972792558029123139228784340012720865588149956134847226668977896676763798991385546585367060386513948224498473248598732741740754533824554811263874167977633360203678864768818424045290271309929144484163992542505105201179405536930471870166810178425574983396738226719620462912997923276978987494519316131793136198812355478238200398501124852052481443504285165979272110325296614225390285220576594711579322572348821328868110178674812639638049502134673309542954153051267970945028723818035701896681910614672515925546767713055869213746268269313657433127034368593709219816848855316166718261041746337072222210623114193606354534745405810523812097559145301210385910523962732497476124481956716122248993491745086064534687240039054008012063013457580738601570191953216875727209325155928942721189657525221203252803716609528560922758433216782353907403109559846964094249819034714539234449380513262502785289926787426774345132436136554546836470780210479830818616252638093036448750757127890794096560762056461910592001630425118470256899279833035369842875708953487174108704413654244260020633618908922705898549042689264578728054274445781577695977080786849229023120850976018704364769083132220323417064734171200293973028047153236100333710642049062275956655820481853936627630808247301606899931553855119425441136489975857282858597465250123935631959123098052274237236639460965742298892924715526668085633023561975983968866677709640940730033171631033096443287333124269577665570679710084555012969161894554886295721288163664649951781843393632619541655382600668912255645436894509687703538259396574875627241898569715953007344852064728441314659983980648156667257067479311119243968130807097929682192949452035568695448152939447751180259463390043963660898921761980274159686076136961237540807902860608427485869937017399576911886653840340672091490437520433642549303725008153511503267385140632600622777782703347274767543004886451106187363351161097347863522486822027745173129778879622680109847798099618331077190038524799309292338368193853995739334748223222646027670754623753716715651888663849316798865368672003712946318766430094032483613814316612009378277015629648510610682981125215036265786245068740125040446052984195098211031001677975117035344664006534103952340098830221936060610267425258136397811795481163522352319973905726324655986852021334456396502876533786881669366154731704401624704050322072582978651061627219361428890682381056262043191371152942680376541032936999621101730349893236303538774587767318786266514269281201095849037907483769789456812033253274192027027205755360714546425004942360190843201977645342160332081858098595974483472929079488322261794959855578778874902039597660774560219175901607044527041358184213071823602049794855157725441287105529932542012435115638261421070666063566311046099484221099659525279028643853921571547150703279246725647539630539939129674026820742368271576828564487704819850320257431798072384418247497727814296444946402941143306068665118573097209120086356623506845714609946123665198872060031194101945134890793279519252216707667806426333355641405702609674148137490355241389259178900681664628501510899953662691191503782862391291589940657079107384025954906718147935409052978722666830881538053504284454428239559901112480310172094360560993851030847752364660332652949304963586349846893759963538816035521913323251376390331836409066766237304949545537365848914272764087508650711428676104518021521734019510750640633744097179322672694237736775285742697920187089310800204804699773406779682476774253866264163075096258268391655936755023087661155991857415424963164870443551662184002427212063741647907482982080972186734215216468607745929463877762209118958008294078552457134938184755467418562060231124943936553294793850206124997284159108960722126481909571416030562423215473696981163075581692083282235834145983798749424763199691999286771736229622773484910849442475409204627823567978113444265175087040514766787840460689995845508833646552297913612382575094483206444351749201239331634735804903420724142982432004519415755155305261289296749452381659336420165619870173814317861174752696021611307453881761798978601910491817434467026626482549329271872259510099807711421319513305639989637951309415378057909791510551422829615797721138671743442720354354589658389671825867748256119062856449386093873091470604712585392122772961536731606846064483845261961047144174818369572266713712323935077780844132422221754357450469531641580578254927725338523684038325621818589841077679247314467569667548951703175966602402661772929882717549538250866607562513567741209891407217694180968575727773342627952840668403939421733500691702582830925779628503770014611273526710192038032512681908555751799298795772385485303316580308760316300675998379968781458803734895618610924477376156815796050510338255087167215035395184157449371658186987193829394575898411354888110323129702989532349179385365320104765795381562102567670187746075257147605921810036642230462371391405786614712447834292117161486232989143373759540371940186176497722373011106450823145927929077939616463819960565573038833090446009819331702849123353776751310520047948967225883035436234450493206124631733980835746713751702956227428904158597935740744353288109409620046470799316125532348799763717986698134241094350680960019798899053321687441898420342554890501670323392115725307270436759521962075747325830858262420961261873680161255881539767612863224559027332546727768594850237836600661691947072555851109242229418583327590141926654618818327374897677506251264211710364965127859498370660990422460386830356052287205848021516915034085267104733421345568903018362062562550780511263928211882648982830531669182696877104702426733032740276377435718594083217936286161786855639260996952311298060904309629267082562713717941599911978263150335868694313921357587095018049577938980471133004771357680813483442705578434195207742224718596922307940322993747813082712586776815453298965047164473732791970619110160121650248316858009790259061956274642767727297879084130875846476202987325758087198848784017109301944191961815213441877933468900339716965440366658679711359784420260363071326458105723608067984796393921876570625612384608009270214228872065119800598198293219897887982977877674932706924478716494398350371088503626545895929698700063702564319114640818614191762788738474214117583450830716440246483254072057569664635665854102170495876132000188224792769586468128068320961247591655606693713604545309070749133102024857954828637272174001046594283061939179458824587617147259017341108645926689718675223190437088851031889799607890165454898400533377090431257437254343123095080501065043347500699841569772524933211216122540095780851140033165655130002966817761987082806522513779061636508927367965083929210616757079907853379027701601936300510069506809486458733582984776999394355306304160521531567883485509402275375074404315935715316510874721820946857936306086415766961650940594800919219528239174061900633368199500646174585216033048345276112255384300953322259182320955622600280092653109567916602735961897098571592813722631663988341971406722487220969785891550928073698251579376845305402121210647132409508970818505604332733049521554884055108680572123134756119387163805421282690510264395115387270845491431878897184552933680410474220993633550360984451168392213581724820176719585388943580753884768782686212012780529872574717851372613006811462283833116285839044232220404387732467644732783799328635304817949535433260649074114098075730817505126253440313957636745662890999153875090730296254079349838120180870461174273293903054634406674751206791309828938018224115060801864378308412574878986560898868612780756720281574154898966522077169055643925835078150146598340698393318053034119513818379836175425051086896664537911242497653513096979318913534409281420829748038712082229872919446989194949184149590492473770010809469188758471899817654340546804675423758575921407743241126067001308766173410458198445407683849546136362141486133684983062783159417275080872653337487473354398983483733243995086072353176415565052624427345417614118558868755114917051242005247480309060919101535785972642247602246337332731238627272274167680257546540357744645427922119984554926815317471613753966270777484665592525583754757801698888550540825906599143399325434148362258506098628247016151456856241795678958844780158054555170667141444574003447645518001862260957935170767459139446186110643304126540010542983732056636114211732218584643086301867591591180844939319862071843612690972839653647136188657156956549310430650587970812481307172178370086549287316068158147238938311356824905096471453410123411584181261467251933231204249415324607353047700136460076542586710332008900033238173954299803561448361885404065631027331151242295720410572390885475114917867850179115090309558422689339346586529647817125630573111546030028617865666879040718569061122045946436804856123937078992762029335372331910533205841922974816701181510111337747908715681229574871370480959204840812819507192445777186705261942291964031710791685907446521064504015119841702558735920900399681071495574410569119887693886093171268993155113790133646409399035644734347113154107462505060366054725823800702539955792232015471902108303022221160911171603120439033751647857658399923072400882062582551756266192871765625243365987162932464663476606183874296568946930738241477075456015439449669710736237478578945523148886554040032099989733783005786060605295406937063286773231544372375227725562320678208892035262490678022976198168014511765682939836837162567389246760866202627467592942235749139127733101977790702479288437653235501518585269021132161434495213493046094760698227690461566913931979862732897060967978016714999354185413532655621619253328005351974670325826240301252902379691005243558848333907359015179767571681673810504754587889192558494391754641299785787640561455123570611739155378165952266244849796945225638705084624477932245570944888180918568819763515504845770826375937811775700126438518399403921457367514625624080866298747710954624811315310503122745129448742532100477534972888882848743588195591495332652961176488827621829685474989577629209012990681524556386396002963509134213002457021940078231068005640390341941655543953768833865400419221838658112497331643805117758702246612194780571907702617212478922299317551004564910282699824137478748152997238307651539895104784945573790160043204461545100309965265997380280501831319506485656199514617727903564221049772055006568271898874962290964938636821319742788448193620121916453329750710783866871523263499101665381480812702361693095541964022809071481601147567775364699421877710336477998062359934226244818766876417641789247484641253441282441437834178037580138353171629702688908626229459016818267162199868958112493831155345008311092372226800005752010127813729822641521166377242849718300026360349762941898005977672066800883689738853186387119266215960683441926647644212226177400307975004600201740474249884994141979565114685286095133322832871461281297162903047995469176996944155490120291647846042714142447076778377850666278055768161095446293938201383165045602345476839291895147002805015514960548667151307913021284728931325851848532407351899691614201888737519241072176178695635914632992019437119700381856738318301337230092727084925601714828128677548689916939682132740065513420097875115498201389798156330446781755730065381168100270035618294768327908795853452633137231754487848984645308147350973102267785498120941184112828416637821667868675256742961038361169789268648672891495686035336980492583612198610983127006348938826850706516979579546653477774321057335292824807854046986941207619262172671700900671263032605145431515036310635974837075082429209638154134555544784854941728032363010701213876037814235322318972263848347323598334055941760162080809860393108595964388827343196451410608561473457832781145589596775720962234584395750884112641987983172506684908325077252851182254897341851569708965134823895001525018176025350586599992701949437238194447241861809517178126355892032642514372705445543925892422095981959848532194535019870307738919830574491364939646952332192699246310023539496135958059747886974679854853032012500012115765056536089178202380268803251271989991299012809014776666068593237001061340345298908503902301631337144711305853440206690055309864372000543880939482855304099773963801099284560780164299349047627296676598361031705832658432775381950289781409366532551795374692943237029342742688654366905401683518252666206399502111801924338191472548753973364435981822255834935347975547391605777700276547791778976099241127115261438227555457119229808340263898187465619027014211185038168502718638925369862834188301063064771189023756100935534155374978705547930097938371174479955506062345650640298533197593704183714127783072465378371568476775966558810620569154904276813307926759973667750315118145689396361317036885528178063973726699321588361729983060128579219612756028616978286540313252404720340250893767729315650412005671028854564017178196140191513913557011235487133412906210817721866074699421767493742324619078968543221661286851168161119431729741272065480370358812809024236699499538750049740695402616363001685329233374367529895503711993893152416964050459594411241402854492415312044993322309227729924961969072551518441393458691128322053752289747376355925989464138420578975730793661723840533044127693522156214543456970829317451615562874778963067957744163428651474987084051834517774511778197726845091313205136595540147332980690343945981717101803707908982784140990131201571366166272317003002156021604295424677347337737113570307119473805459545300051971631689637144510131228713470226665485244718287770635455274315832086615906730877571616797247448230616804240023716490719710075028861408097381460908899238803387605934889437071437896091727279994639126578547369730137137615951736483437807541929278150617344933501014169970766838080939338787665287808146800795897230138148739661529516667499900797054833063970767181155519070453305379727966378735987292506406534119899857647621949467902182257188765613300802568694971774448418950840413251976709385711780524713230641406684755669068623068635882674806259488305290108396717320926903136370002717813942240922084646875599555509395024963020148243404626570427600707687056220823682739740567748097361238887847299126927698196699460015120319751645093236970877304395663860327818428117992622252503102912445175819674517674789522451277975088094523854344486887642637342313358746917599762584044525285538181010948176652625798408385192691481430405817641355171383884837890627236636093549704965086396438298722655730132167194363973988681814402834919925309106990149031758458373755826258162150358712861100340247441707295797928239471204535550943266232379376697798795676229101324796098916980276171535689744913683547142852694207174593769693705386387367213797510454080413426567277339911905920951251637582047545739903226430886353985848512435384176926816054087300750769022709544043302156843743186652558420789539811070053946101908530538112588265515725689493989596480672653578288841513711992267842381471398804040013621222241557248217116686417134391290790773995770150913190237953275221676925275225579447725928193785589911485633166938222753143764526100860710383358197823306511195087402471683693495000032706038736865805790806573846353497953964773804794818651184376906536631305765821874385659676838932941051200146153487073222951565667005915461086580726243034054195512344546162577543809175317707229113877411190662139559509531940884661539997949848918105078546649226232679436465879734005050014935310794867930182457694848572483211820479553169034036823435304477745005303076273356438915602226737977511489954544110608603496180620039840105792871652949622768682983049742745570350170173398539172918876694353176157758071759747453321718846278523573215384052172977984754258881188220212400885575038253312602554273277190439499771530068341625843632507549237853585891296533359007005046172114739251217533116511548533933941986891142395197916426070842687773979324778731041999693256489534834493099373945592615532958531011256127910801023774218891108371994398733701545470464777363679041164888623910946161790279360964927607873204760524459199968596426190621537835554938072137318175922560988878982260303549169411389429777701080186321256946293384408099252281998818493632560232187966650845204789837693503754640697170583519402004371820272849204048272141626589853830171144802469134303689273921163314752959562215908679603563879315890410360357482182368678622530507160798756636709892846855963443061735964148471003176816687226865906475462374118336935880420218612702160684743105634867524613783510085873725725616774572117352922657010852465652228419751562775986270984531392311393440194243435293831498934131179647842544554444086202753396572814333148442188481849363764793630997724058971868744376720868635753603153138598215277322338706680454858904403427575364634813526007752012662187776219344327405909215865087935978092743556047165778971312431031956863783123724858938421093030121146603104544510005040470431180215569097478190934483502549281736084502338297130215614156707223218808488196942727650072148144004922945766951041482776842505247468108452914590809529805348903769399000584761366367954215812829656830359088238378310219808812951130118833122866236461801167261400140293713082849160202068926042967037578922748573639574249779233762006117478552419897858745617056644031719091882628835696981683712692672035265460886337574179542865299214429361067456805036678284347459927667038269197487153774867138747545757866611990619673982261485198215673253971233298738116858538794326140636320842213718724006557491341290131943217988396176493783236701226322609421288452396148274662934373722523553516556751812846916600298485268297193452305913000417764573690420459122608508884807267996346596982971504474686670963382549714007710050505591864090235035422893433277180360960542234737779173352999621679750743980057430422472165681213719340457132286236331272862435353513188693790607859225743419135992038713425110955485603700540584737840721143168112992417459866725110657861450089711440218074433667470517509914532215620319748024009859840380436140283107762408419428607869470095461735048744299995369940248826953486285925706028219750472895339632129804549608106626809798494814628379805396952912871473157286608376957390471728679385709697276950765132882077842753218549292736566894440302341266754737965819298628063130752652643011877819228667409635441189184834142045827522412598471017968464090171258750436014148324399129169326206341195959190485972851654644081390791462273149671966941731937843612458331949423225303537320290992090753643140827862317530032709766285897785632208702941556240682047838508180628787774636280454133792501356940622460521604538542416289182198760540902023417727188821271658539960370217452658758651241132214965146070072417683804218990471618522676611282101099041320563333822859369504264817453465719834455665202623278677352379462666331912375151418480194464749943495157050563342989935181023573124896525487455942171793673588022356376510956449317580687517213393773130640973902882011725921868791126444696339549979614657200149347256350600293325599760851675908571379687635263651123253382939817230385820762333867581746032234965654868826963219472888064558155868234509953573644786968843524049808181441601139078532495672194927682638957271555744542280963510623209512134777154889782970238713722845474577736969558702961615125772582122142367230559264166279123839129937137383154872108117074760115784705422397697738601264015940384360098824535734948275058955173996292459547156554688770869322388305593993543273033799257277332359783321917935748227754581508624603640682298348281976632266107558503991853508803799403747189545543390954833691533997939504420038051847781032881768683705482665022569233424727649740183424897576164165145214259989279283395767839337556428757506856730526394406678423948113397912309750836025689590848302562455861767958450292461142476943034625449484407955293046250211232699360772976566860299595087953476167044625757298134244051993206679171324072769908484456762954733777434786277426248065770424272752998870853712929476320678549622796585404739606677048436730529661748137287072171691518894606015790823831389297526162645393115733063996609937079924757981784307580446027064127549683282612035229350220014416491470870180595939136897965534636625680398444681693588777535556315286990515308830903241839151301905391792196310049428555008854456118535266602692532293232376386693675602954880951982673517413759841169515618528028635190339942077787759205816637961793309583864568341973442507981098803392195059997258316194126990730246867077474094760741323465638005265694724437348954273813356401374555711313662928553236455558195408156310981568653436996983457907480373730293861114852314441807099602858530980999483011472971067360957916931804388539022128405852677452218613384518164537642610446713562940118197364837273129222678955995493195974716813035800963047988713812019922002805265534102078356635158177856600829042356736245946766774285556084953824269409841880016891184727391810030289645386294714062381954937340355245113797888972435707240938011016240879659751418327410498936059968480167995793217737693791830224770517434433349266892471312656820207668013464474273286428824446185753647415384011232073937192793902289207316921445568720487392179069270859974701423735823453378658509385621377845263698442612693983775030165680784193538481717986362602103811948574599147174460648895033257676363248524164818606524773357704708129852379916445175944928828155325187014403012550078539173690072916365391181342783736832413603916194088234132043433088163574860603495392592190499238615501935237445411510063091069573091165584425189967976943451457236519453823072451031741336703677484640808685762154403118826025565980146760413689927803740802895005852582129119909055248256643114591765765805130222604511346174800003123559339000281076502551983011977331816975711458863380814603983688512842945870987462292475333808312723840843387443557890640056277556519980966561829007057775890520093327726679925874162733917766877808641874806621937723206349944606251738291339656510386423163088293081230384594481738328459482944082781618308666795315619031158539823870478954707830031202605142929141635992007329864758720328863038921695670639756871462875723658471017738782852799240375456795758594710386377837869499219457724941249768263858506021582581899532214380646589060186196577039962308169363413636597542141996411899747086483623782878356091999218508306715413605753178718675198016460493847439507109921699472408297159672690277288202319869052887457975815018172172611385582459332492037623644072508819244796188456592737630904608297619040365097579723454363711476252892051135586980027763556847241795469992187679398145272820486895249244093507387086524097161201671462104836074812284738936343699229506916640553064205073523158822047504762569661969757146632190723791078613921347772768165622314092040125409853761294246301032923607355621057847794659397472078673178104326525124796935377529127562164434648566548921953353075339736604955103458166340056268376504726029801687100973887879931561762635407150341307442943752428745722187950646000318545902001403526282925959084592280509795306339378249573717539082211315509074532210365529958356957485620278498684916265764836808516478120052883351468703715012184515400846973689391314451573464446144745058733453057376901301473341489142754804374416685735211164509988353902142102358055689037447657592788663287303577141797024127544916698017120952269474378728260088095052942596007725222814409595461632178113007738846392233688405303460327057303612933026964361793463009847660985145100956776339912239915771493193127770766836506915701783538589302573760460551706947018107398961681397306653327861292463118761864234153857213105075568116295528038331468179155774439385558426344414300976884526985170333596500775714643562043705464133033617153769113822063611306333495368831278992363985093490244949337689709895232374080692107573028349401894596718614903005332886001995928756631698589673906223123583927823505439918693995813091264583355794383460523087141239987265527174640611999670535328233281471839578376326852092329392106340600367125699167624790742010145935218249637056324615599670426127875693147467907500501599160841911651717660970352539847678212511032090199843234214090522763851244455935483690843351008656605286845811397664335754131374048724038645459053946970502641979963542052580760092594214918048436691581363461012699509132214587908205171785109959503943294377099083564950087079064026182258275322860218442163130595258919783866455396101543878060015081325883836132068615671019674721179040344094349306547508538443990728394088999527854538833814367349001353725391016806010068859972198418591389432596702592785573735548820902465075216947396084646404904606275136034907996630142535882752030118887619087476397994796610434327208215595987705364342362934629047666270766211394917252039339888905086919551205471611299684596655661005921316403503526283236506975319244399778554336549000915719314364921606336081331532569069701971908218911321206539779027867510340645241711910305423002401591990053353373949161884999562901724673569972121957974960415203052371608287995673542314623630144717887140907413567712593426550013116145844812964909603265476967248484945075010008393630497198277417932228636442098227854491448191538453894014922717390370067910996955550077602348743626842840566738198911669210888229720103707030953644921700773362680961736325556115205188762601572473471749350109689632384566668622737184954831854674949134076102477938377677840940590833310746855169845075579267630974771283416707776944604130445943652443811723782014392066307388879063961684084949149837367376747766975994406911775128331293005693137936940532977855135232352920626731931421916803445492562084063665988157187608556470870699115989591523379164464437843179107944807924329183684987043416008779520241495747318097203825776602402956918761700033999048912375598161223552752975893070295169777881677766095366926663029994822278171455761017431226447204839660965675521634409074513872272363237357417791518829083067249186501154017602690959010657615805626920928295101233091579775733590112713158980571941656898154050404005187109878141160388633128144595456522738596404085607663164533222655944934788904787410533365740676368894942542970830821570243710793827097281319219424079361499173070285711667648611423491348474540727662441767461855201855416830475287688830457649418449446910826579691831034703928820231243271638039823051485156108503992836904961872095312329635064784000466591782171708882177788069562841239751445169930318600715359296231390459382848012945415917738507343030712941751651503381772257431907408069021750522862786827496662922575566245436183452624696182498100752492704919747473546883922630626193494161788270527867209974294127473028796774703001471464936653422924059228797648693920344367785799782510002300170331737077334847300155041451717378706817352905197454511133988415159981336532331679041560069413401834413028011490691649762215403284958572719901205398090484312805247903491190345761621017303235904463572413210005482910732583581655554804003568806278472596039636192896521583495314730115049541539073721959005501364818180612518564182297492125854774983316864531898332506074810871405639172194221158594835312909725604268143186446888424045533690817134613462006258120367265604391880902535791557288217038942869554166103295540367717833817205429463547816835993761860894392338557903880345412598954693721204098152080878936012448669856991409897728584110788523015129289820893178285661351940841654203025172284197376227688089109716150735880106142794643618898096484436347425934932091139633576332347744317172816396502281802575039050396876815996509231333925327040232762413775861377578152307416814078831825491073481316832488153403773608381476162782832531140659501885558768422488666326607842142369891621013928078811144985878408433661207925579561466928653563091931500949465111865607209986221790470754891619429106325897047503685413783661539314582295803633982931045177591652882443838426768569349609907918032430930372640003975238994651192923314011957093125220753867337932368478448020053355845414525679183322069423737490515732617858156453505178973606614090900158251593947291125258096922261577035438970890068816647873017190334401095542535085203331781975236705273277439942184692296586110473102471756964551479521698141216495660213124481879579262936127151123751727075855147819753559592581876382484957268638165566416051139773977974732846906982600288738642775827497639446551442449537094590358387529626519090392788947451979855196450745436599150593460728662138582739802179391648781620172209063301676072962737369470450078818276580582365525286776844060243310895315026926805260809094714984413493241908534472171548499551531440908771239869316272308809640294393464260790202759273001532897881544582542451583960411201556973403401513246608585155574699845673410573302024427583335832983811145080894301136558011073668734449979900080273328485702751344404134020826949789911969371324820203872762970472555525592102912253370389362330426887877416560161704126415348931721806165131686795197951658503173984567272714136470100690472845651637987885160431609101417669363398835000480200243839002309261759952101605489349463420325968813509132716367878916401224666199359704651587408699641161601545176368764404827443710254805510453661049501049679442910777395078643308067060149632283277534203539401753092287011937685760379661148770834677634671680153090618156060999436456694407483972943949909713034111245925872959882910162657193758500992337429937448706105331375772849255491734684773591289872156644697219008368415670372879512393991141484859064496832356228767002850053348007496963491910392221516990092758978659132500796994094406161809909290494985746353020889526914999521661240023440909136809438692414796972271337468058241305002436214978615423735480148640630042197266434731400387375220151102830867331612775078581647015504942171153622626894741180569292027095087229103310667876219059916944707839801574420574111132381685641290150616575461491769901962015777759644848032217703295537259752344355222463654844304837683330709432754987701050853430989325915036850871961388845541918781033994246425274021003717582707995600227551165424642032179703574429167746147496990844011658834792008567279806514022507835705825934259973259050857722003711007842867959785701058691168401120453526718435254109044566509563710365561278913201269850183899771886833781076775753924836202916067485719754995451234653153711539035504368162797199374329766166375898750122493368660139707821127005392365645164124570244275692654939146619146273605844042130720710392693824891371676539776624305277026873715617346871549060784822528502153724473612024836434120386322455481466554832663142969669603264263886787696774573308706471536054733617640164677176487158068177635453136924739747636970664737728481616180291171704979152892281778940315506871129528308171674121606830248796603447208917338496820761191714265634855241186014246797558145208116329851719707859683979679012879339637407409506989088705224222020350700262897369788839861649126900383849892680038684769723346573967330876005736723830058974636959770365884940535096057037264169906648333212802176632662608338243577897469512543246379100424593023526647548396210472682041891467825057684067024846444977415839328983389684535718919256145824070510116360975084524067135610759656060451760195853294969192984763903523640564431531123373511214609102464791289322713308645398899438413030999996215699196047213190301908084744262550992933094246747304115804673034534021875002066998590310123376501193186765418733488699893833757324375949506745949997289767696727077781554049827273887257296668516401626617733871851196554195343509675417823775059266436491949413177893279718538274561183936455277486342196863838569328111155674119995068072627429510192415866051081729983259523468638048424247466795638482829607588825824339075234636868615513054892695544940952487642227903364235639584860787842627504017070367478979281872952154522947784214320347110547651956152556649084024094982006131962766723712787184622028749325113817301952707116839588221200806987605745000824137706776527060801847214116078391757509583722873629820279561977639759735007707175348048744802083395728059025909864052424504862208673627217425022427742767749250864077545439280503378937366398475778368723908087051286893760800564434818235234649379213515110559378041397547757108028946270200287920457146316172914131960125328463884470324969147445945385967137201623122275928681809661889432592515181585570484672033621645080739738990650749860815470475716046428432956630551790981265513366413732043766725521557100789172185788128119348102860544881869838827609603637283691731836187289548037119520791892730063123681393133305405156651356153438307830920483845814478920614685918724411749167663552197739797005711767311786202453524440119489410455655080432009084065198826537687485229639055601163797262867080612987236662694649713094340903268676651794315953595827687804042170387286711848680831713242035980261714436523994338740562469127894315348110094660109018861323739342022850322086382421207890631216373607459949719389751334170104725358742109624828781505112517508626597117356951960780573011501925118934874026127443503150293942951139268380268944881799392939272919530987820185563553965826967819233862183004061705917198131071383989445188186958217772044153856541275325678855878992690053013108159477527067041857799447535148760153927413824197424009689054391052349182954582299003842454489173616837503897387779165668389568796831513891547145530737325021539045514366939624737789860606795138979892416293294373554301075635443133224701256776160306974372836239269037268748096665000438429567754670006677390392787429707126808230987199826320236284168586466481119957373175692656145791976736473507801584166019046272851206833203286433421232529206333289683157333414270114661242328831913770922098727283452506396858457980806306621188837058748708309554964746026760348776212182170030691319887201618839641526335186947299128314017120487733621690324569237741806696242740794800560456393829532800908712019567674700794995353139731782282210023413460287378130646175378303456036424027699114763795636475663654183727456278662402410611035540148252407850962006337355984304634620984674669799079202078941685490825985775930422505228849231586534477596591787227896356770178198543407215681519246997308854204452472994074481003384295886988546561281635548876098612366857257482244415853163570730002468920945407226003005560923795383157400767633657370733862199248986503306637466505300448488916978288340764049565349959594521271523231140688476196215707668508239658147794871032964194487271077896595838730818511850685337683784999517025285228306487927354387151864980136188134477994011633763869549493285260739363984362247386662871775130033916558543750287515234541297013831920459850319987914351880694135467169586626369993546279556706361695557236291758044748690664490505058661883463900995174597329738789564188654923045876520192804352138306580622701393673015742377563311596087999477058568007867753253500585458455120828003147236269654831804162707321654456662194464064958656708313596676828389175376287539487001828086491798917292696352631764471945503088142847535171818153086537017187819360106355908493259234793552943123892034459245322643330822959693268511845809160681264840034312831571910341167215914365672360235706871525269351662135876200576060034688699242087209358833231076373105435614692730231931855188903998548298049717937621954726515851930853179658280859282170475545632285555910225241804062356581863968859500718815373568188205527724595495270891209556033181651806814989728287972938713431594113654012317811982373381576442067150214045738864925127263178497631100720711918462278487668588880909841868892364917229951441213910417552859824403419065130914033153318351121644623854940221680070017722531116445215121515926562648911891955168738821952213288471015223607660882633260248205611245770648149814789754440644995346588503283390392999990081965157327890075487592800561358274895959611788752230714793062939562012497032469782117279389655187247863604218926406043322863188955022850297520496042791427900408065907681098181476388546892994851982456480897639480023856200013421962822862576417779088220597837702159527678225423322118814691844205526181878197780984592697827136595327566991107794570604603609047246434742529738882962099810183648964690520355855295529567133412423256925488549402552144333420970469129534193409360490001317743292369004408346085254593547367754699270093965506134106696197275202012511314295402182582944351725102403168815613444581968382040381549250464660577693287216972541625717429727071009710394456980076696511941008364116123151939572750613241946913422771405123282597060436607669238998632224701225818026606586655467155898164921618249199398017434635302275984656060328714775990099794197518043278428104269518871367836959634185349133492489981106720335278009946374780897409044248929020425931122850616398341475882437585727492959194210561510939147669646324515073615140897791757094896552638507226745677142432616658219934024750189446811651221709078406791918593999417981781894566336671932558439721714598971226004920006783615019785983285552981587964063083287810104746788132470499683920393594245630554826574693580031410665375374062440746595240877556821171457817342432957953368359525312598241830151386284912342644170017302686656345405900980883108393841990548641655578984648982847388908365905631293032073220234784425432136049327029990864142304329456671558472161670190395736590485041445003288617565831384002564346822299944498812853991089436527678055225526142955296439525793253552550811354131262882373825915952341542615011202608201160994023346992770207281571084571474355519889677590366082937230314578019382931542914283162553027269832586288020313261336503066459893395426895699315895459227070786382926015312878240265346301860657948050994486849864921265192633664516676673258164403960531347998634341663575110646147444526374923355434139428270273549072444019150139896355237538843792056215400820006278825931436681292258469680274167314235019077850506371741428050026863753831966724573606627482999597275823337966748302187608803827840387286129332094889767438723031453858294746603517227706516948320516890287425286167044298334199838303684285316821106461058492235941281522660436375959296408725302738315442982943188273993124433254599547041517062542648060995690705795858186857484687355932685293208989938375526908104198439048343417587499363476554660580909850452215681282466484923076270953436816889253118915760579523139009481104342108083988370358885899308973452818787098026412965871485965578424058133623664223668418204055775164068124435510271543688928213308631996842348214605326654873806568712309780711048808604695787314307304504124373126931522114694770933879229159643595422815974085916339471502483979921668314723119481523314642355408688481940709660806200942992799723738429401692285442706838823251386620142097950455745095009678434672522849829295650164739049329097424411470744769782301336112701800615587008070613961578109516317963875477560856639439113398507195343465395346004570785885429315803400194080151745463528641789885787518223142036490161529474015700948603812046681041431335398325039901239572660864606191603348667992313632194795605024537443741234363517592331292438239540708216960987323466723634964413519601715859252788102595676838958710730717723601137888518947719539213268519097794326810554647601633038480329965475331491811580038545678941602787027939373230413666810925038670799043730982119856671179268334594734667253158761021382468213310256360898470762579476569241251695610675268704112770101477195983200240318793033993240065355587825469058584943452775128961937446227517746004407893706572979638941290609768622145900865145180470820748033748333854123005667591048760533001408925635551413838242461795076796764696356370279399486819917648380331403805054221875807700715915807931200058208453339024533767981629954874808892859477979004265760116286354254737280405662561587419767338374625006672747385671488802658067404130366232341664922593525563530556620378556202856573661310852766353766715137088232323982081581523576784021419679492258136946079660049350612116588869621980073732467514140324935866040828567134566999814487654470158053742795074268167524873136252301332630830783687667380976094740388098642359151337583318358452940683018787676641081958037940662778265887463559633102966271434682534788049994092959997872511029054903359096359536229398119435762670437402354987825850531260537073328063357705248359890266736465823830943778777758134969120931497115597122172025123186930821502603911102614804654535626292441588136414427898051177501923350306336856192988308188679458604281800369773509970765023260671545623831172496394090823440048785146087186768516032343795979481426098098894653020513176812294650763654123191949033891730532069705092595743358829833973219677862322386762729941074258172759268297447290908474436959951782820482304729554828710135968444994182553808511708226861086305252720329448460129188030788678043945884670131664234264990137822670852828758774755071046737946554402501032475269785547744596008928464732136984327379706117890634005484070677825660918491527924040818535131495947144270588164423851726089283395065124927986365063531884266049452113466553155117100227969207222395448033751793937991277400176720989465312462999890187761980253926717728441850109982025152041917566253340393094298219097106008327925968713085742382823367601277854240949840437534294703615656834900503170629814603839643325136990292594983552410910422604888619264161715479975829272626172469550335544368687614300307252841795996140443047613357966231122600564869306118539146455884275194864833471780416102523300928633103668386207870352230574506123620869002700327294933775262163089175520233186613250977896054126922544566542981603150219593322924530885392647820015069169719335066170331530393799731315239019111083363890672638737498575757529564998634788833276387055344872244204712998848669442426527261259320861977675773337988002617682776333821844656667243476005922870533505265880345229705759180652068722879796686968206978911568060337087216451850562137053971108585371162747887157852122459420149335173197638293195444090601936936647943804326672537170150742571758729782611063561721338778131436003975576534217232564567209866924969143253986817251483180934729556892916070978951980476292251758297859516175758379528600083460408755391293676760820039015213093214278704276599387655380637091842183419933734734743272598338901250844959656862892593744791189039327833192863625015209858758060596627932966200459872293861843734303567259078399258594759133682362003286811216613715845637154360089242045925173850182198244932929298714538338948435119824521177878926817112968306054986302019278681013079249658403576397561718260012760958294957931520307062273886660557614242983130672876025612360647989937122367585558472194021486447529629210233148804219981459009621118259786566302407388366237228924506516641527414355413274426907950410076228061518237113949288343912650439162054665202143910165209802231278678757622063121357538211275187508935503285859111509273484630654504113024121193220870182234792757809674353020855651106943505668646490951124422880959444430601539980419017106842329509553899121101079911172112444643146472858047620053332554740773310364171563506956245435552492554058158637257683734559779437972328559929155605176540057950681836483544624306601715759292426256645693485048098500040401867544272958583311395000507177924576678447449423566412525799304771874847846490632701264775652395943853277780255762686954659163480892752316038055228864743701098637030391750383296898642254725528702559198960305503971370916529626445673562698355205317731556014542169694359791039340640877189476477910259546663311830660609935624737615356251667099770796269720877874806728394440222328036251670583021747581995041520785388052473053441278477430200396896694450851064322532848662172891999369623336965685843425929990568650164837034966522930321895775803047492554289576553070867455358107974530634756464885435077798233800086425089414987626944047294948931111206406979280452460177564990612383158333150457890640641804940336580360885303215003072884392879841091167983699043645823261161854395468292274206722752521853382770932331976749262829617226188756282372333202208075755627512818453077180566927958382206789491473174084713490259184401900038654606719703466046959211861584363037039416981488075724464618482981357453591658521367445645854799811911969028041374468911398628266544987241735736580938312764669755239186562031287465613296411932217326515977751592236967243518966997522337972006374729854480634449096540906621464134117499318789784101427114999256692393895834986039118474703860163296972841968018497538938022508478938194888536679362983879445290335051085698177838977124487925663473773714923409542572052309859530016904453940086779372896314405294520848860512769789493452225043615525091153657573580917091050556646269583532516986205079120469014216782502159831844719204042242703411008690598360463303044226977162422969615532432810326010814290043593909089450367354456215314031807365844602037621627235376866404203719975347847754228432345265486841577085290459268712612555558435861955840182861018254884541313025302057686315024114113259192927026695880577141672247952222071578443260010753533077447136202541131111158658578498752719469054985289475239890834243238204955780384291266498014017641294787881191672159664975119761074614989541587628924728483589326241182128287320727140934381729610078488070765806574002386777592003316113399500395191065703252318936704660630404701276712455729065098868294832724032386557645254978125766178940778232118864564817317485970909609218027066205730295031414626432349381362387906931162690697276008812448375901645399178993024813403042914998015589090236826366629387052710187873316709514767385220011560729957395964063424325522411844488286557430875397466648653126795230603726078035344814310961723458176974033199535629852080368318369689758292385733702770952438649633360199732841929751757732778570930793481080747697505717131581244814565254443443538535289238614179597313039853324468102003449084528702943890408883277232427861454672616326035260225406367879281865725609521876424705883257475461325268722375858381258979831618462788544582695067500875094885227583548798643858838412488445435439275139253988281074344384421377700482878219630369042151949073624147862933213289983217047980243276822553047573699489469820665206162442939006515908191589562957627908517804699606664363169370304427672776826083261276013847743419467739767338335035041313524575125653674439689127551570840515571916978144357812511139625257939845212238068970673223533199112463533246617256734094089439789898808269107826201115737299571396791562599309008655708614201782874093930598375439408159155984012272383442483177461205863324821481911493789162385291370982756363628596945201605233045488154654641739158905478856694502439955643043032722447787862882692423282764212238470088265941027753613276980604411911282860430325276497872703289053295858964938641450230010426394506490955289459619698708475246254054732542022488691203690438002171036514499568834909126074717993397262223125526348698841313164344659123146487799914424365093490733221807153311916388804865158113082079520842976901998152567428896058267642506847865547720317560020776578758636888028076735591252342358501831441848710913722108351929153090569312993424810456302225837647360759763038710207216138445353610576170198664271947491162627368589965390190627939516282031158578629508507479116062776676180474587466509347503420182558036786306110584477564848882991759684040608685936507207777292201974682658229983379605074163980789337772558573517318407445777526466648889290729598030759488317928413623023282365178139229067404047628306452992614470602163166167009391456111925048512823759512399144289506076738263231007985666970522547913476135996103738784286674624433788537439263631836981919583068383277149297535073350800889134027912226738733288172976179282270249850646374046786237117727465056660957931427223903093934303509641375529526715111475094324582000360496846790753002817660593915979222013205592858980527785142845141251323992616536949080615023801093114469625789403309347370627932421366793948996508832331365521534973816819551797912572322720993354314865973500787389759476191002784523634190314909792916417018626811320651199281005203350387622506861152883607497420339731828665287543119044055184877694929305386020375178728476732416594322769635893192794323084761810562290422256001709839189407369253457811116439485750569196988257485024076314011105602475516967062791456069140871289015142944453103214748902477544964538683713911533748090838491698253935228292015071264357698008426500427630232311348290970236088920358487719522489030126011637617511975821339412840685898406541677265508123962040421773732736034660487697080813275304514573160877693538835834109592281275005744648688384503141727744167186623045376934991472709679716074533443266430640749878402020000289293049969104853669460695138931828162936163244918840623184720291176508112721015837704897368892888965969869776011496903160610343936231601843776148269936186815093720979284922486326913605398793256255643386810007746431445891470844107077744297105620104499654966699011950344507081818717251249540012765739885596656199209159932490402030868812091136668370508054930458015941715399335647618216457081428476582703283163370020189949623272858193839573862984019205757194059186638757630299297309331055641181794929454640607908560804501250398174178088891781171143095305603670590803633339922492551575170154882270742544382629997545667792466356816826067647414679251170361751993610664168552617174115167516957063828110161079591942541140214365190910283936333328438408057906279288128633656564034337801227371576686783033196126675461378659096150142049271199419745682181720120160085124944567085438400339872047219525137548710410878855269433915761478772914203320359263919680580812427805798483425609714070487743576213722108073804525859841347592382672046161696238155165413847617714784107709028583429447404546623135895833770653903224679368767416896750107425721779662904419796926331259660724673957752411704586215786990258466952366680105225522169253798284138998837473912784459304346658404432555330229846829930075284033883817634214291021314437177492932255171146740824280632231013553615758206196348675710818584614130796871928722942550431498202018689664708264307149640616579278404508941556601944152669221847428179330325198152078383547761166261277518954743826497568976610703330431221574346063676993649317454362067250274072008281604798124597703641667209246624294805211651348290788294532223564372883715291906844823927796799461984445921546095085967290667511721484687214006511889419640687043942095478562733866444242249521586738262762595915286415275023629387055057556750733200213305199011859959173667712096320592426095588282656909284061801721088421545868554374271437289234900573951294700714931950986590333248869397644290361863548442580306536029980768913293339049633903644621180815061164533933262071937045815100029528579969185437286523581151687546817151584682463133677997927074286406471023053385384224818584445272515717316996352915417809973780956755654217180851283010810438193334215835190530654382424428677046245112588892111744740815324678371110528495988213204157821690612932047549422580202825115197675168950538504303389698721654607466428097292483527564824956965044012079633228182796530460963013679680538837374571447917725749915236602247811650217566302378443528972623941278474340376276979672778160031238866216685227358999488309346928120726339378706701539950314525248714920423187516999251338251559546965069915238315664304695361844767443053302774134012966969042470172785653892237282640869920273555134154751946121061742981729658213171388044462249642866392184392164137851915536058532944849318225181141477513578347949637261412186751070225288272118369645987138495455418666312489416494269960876805705008313091285977437438264516598298053283247549171429588376201071697570215310909476199136966675545552504989746544761003536236717146209093918676529077056392106990028367507636676576339531854364245732050580168139562330291433165266548829105433323237622497843268114321715263841056435161034045068677629630735793598969308223582304000645481989998871306033658942361646874683943866004738247251138824210551833152931125835826474995916261220055418642666985195596445341411709060172601982181677192701259195400292771477437467008129667767140222180176313906446886864935482186327194416321463257406000013060314423318895320177426450167299397053809190790204518299024911316479491438030960388257637835819884147160954649738410934499640595680720835046953204102047590594796700026418065945909736721592436913311510660237956753360788446186489898458002490606343042243780985523047830067694783405105533540535428374278953874487055398157279179442875854692323963705815952186571496156467953926867341111628400453900483140630598693140714602121709024369727308572367746746146056397796554593641315307429020192987663218180899982317430443369819222520785896534523500699342508797489302011954038420291526403274292539035369614475672833792527756350721752324612683352368102635212161507814021804641550073283746663708555553635971807344010161827554529825848193597063078383667476589778454395902087365680159297922035193101373615031028465193080639425020121975739856825838073616529989520598810926746502493250056248346993685635589196529586688464054625419508158307161816356885003117499190547160800491184104297677569082028069177475432884598490881173484248797239926939289076052590746810585525968260778638115880482418924243660659148471572553400227975574206238098220676458034997652966718789410109537675205722103666019420487713711885001955916165481053701053467625646437848354450412259997182692193019361495621847695019658402343197447535763063654415271484653754366210879538232033407545012040459076589564649597500273530122586970442060300365347889602224645622238225056404769034633051634775426718841937559375535903232469692428780219440517151060785743908713548026089116985696559174353463615860025778577576126679323192144423981608116204791593333005377482210175819623947942695302779691622947414939745323199596452737532788849617220623039961471779242315184693068140222537375272987499050934850868091406670510440402852697367530971599693148312651319376360053551014015812602359695459489383844178764292778687689238805054905233938797974035185220297607267323760296846319374079736829734825056267388658255616152252869842603198156089506236618252599300469691861960873838666659524025162471146522270679041053180225059488160757895747974235356341694021249270849450883237330600436580273541415119524487966183303208817087552871593686850615571150508965913004950698982304506283796533283173417031101254926688749759822388760381058553942388955497942362175612811037814821022841374906923449663434607915086197405671643614273777767091952490163742321198286565989167245437759598172512030294430974245480693385823239685423332733424222164961568350356033247211044841475630079815429150525120872710659895518725311145621006036893000654608910524544587467758750718723883583541009925415653263798215380309788385374008672571380583768794507770728115242649785649571742100377243934996898333050187696298139627064161402051893789958070466868669842982627807865026951871757105641079045939735002631396202491085106245083673354221326018150739122105381973913058510512751762359599530758313354615076345637119987965812672837909301190180139131410916577393438558696288747074013285508979146807056527703925241907391244882734325685294442229931533159619506536733262433997780885366413183686981666499852433471056208102586834615322953861631165218157653174972825983822786998322940807985035183254462980883203717001212305707059688108636305225980920895255480338608344607468538134430002106443608430853613576343309188887437716644888730580616470167066673457553562066940185811404411359768142096932294558837297026515401091127536452169147540017513129435965911623676953063749632089869216287872822282492438586045154504380512666514978671733160285708400200117964409472900653108174681720604242840248441627997879514138203109423657848575842651464508088347878064154147651336571630525728284439652073112221402439637600662059098880418222606683238270679429994424995777091199010554184952317048514640951294078990845033744329443434376544934484235966875809462676849266646092785238818003703274802640471409902723110459014073627613457183669782935935487048109061368167253614793671032617487106514665029925867710267517644726556220002567002378643754438044817860246204159370010425173020378184253639737989283177581995345980824137521708749661980940171727966361808290212097475459709894999048918699630290626617167795121508592011021313663641957401871191251856279180494946828187693058496963100201074059632074963676694956892792677274470274942027341232392060240498121487725633734293176465055945372739205102989395905888615007658305670319451184081444587703609372774971159280499350196040509554555566538468426250032797873721261908582412386761814820043640418568020349875742547671639194687929694773736388400345143997646740434004727220536632921808628797356565395340270345705646819422445406565583716492637202243147350335838487371453424135950750510479580951903685115090951143578314706981552604263419865154639083095365924473208138705492809333073921485129657618792786903795226328505539943667487133430752557341495661099956489608923941207230684555815481459647476353653981544863448840961602144678129527675511032243328517987110012214196627864084012137298679097198543849590595993172859463872981004170092711194205692877656473904997448268309321916292241365334022851983305420340582551190820388748913048430031693062694809611249277674736052881288904809829356297598701111607989328426626662820772694843276409423480560454032252354709417084996817103727029157753223186603108450280971959469292074628792594698039042550005520150045326859422426064840243163639696657546576349029674240697374798512284125336027613712169530513277853153430145677716595703191496434707683560201855742044412058289289334709842631827702973544274789132749698367462360148625942225982701572010373821862001426789438065845796730683791617763272771311984002638380300016767143456426865241875013767001012808005136738761772329509049432765180034956617436105495497744498788463603692555920534784885848556551199094911767911026162578910305277389161847533198478491457655286805943738762185192687996235050179353723145615193906005105473662187362898270776250648473907345093565785889771728154041362664931909284484002323469727363630634793921079575729639516349952997700182886989245005769034407625970144906162274810060246408497493599986376208669752045624513554664627148977527560808089485599970566062998349856631121483736244169174210827154569236848824583983189346107150514482183702230348308674272143962032021444704946505825094255907100856008604327646819776464014475166118261537157667526412915283982709219916158676174087651976243926864393089802944454020928698692053881362629962352418877950005073171292792193779623481449719070017359634826592059843811792514742054354088238977982662233911608094190801728988154531676290961866544006434894362414448416339361516425058087860016020998851812071009724813957197773910385289939498509001219902513893761366638378006693310873389570384156974280859332730353825438829157834248981212375070217027224338293112379633327134780227060394584873085564413374460989771683212599150433982439146676651567355077284014480097453886056741036072268092310705081542675704020267819661968622486376109121046916348385423983206549868031373959186806753212470117131242364066245755080863129319827054603774892864303022675139602680137577177232013295088328906238071227627759039832170058509080513208182049899696198104658958353959660846201187075637099596063836165943980759202237017892116616202564941243087025456557088770702398651490540376051483460268771611748675416798245692109801020951167219200635303837582047613045025794310720806407922249283778765253577036536686029741956415316240974642544412294842162078491091788883775794461511906542136612817777886528776323444982840811468098960005066510507656182305142313930751484838861163545727814375009047101894911892222020849355323431247919479786777497224166695742023510594737087019470879363369043703397901716113866249473137595078812447459022292039276590905784717347516132249796287005291732907853753881735044041395220293094745247420103635614494272325301096233550388155723708283869568956060672181123744084247260419966041736900097794801214222951446942095400030292365688233719526453496717426943408389773112860712430706241799373213545605934579653377777694366962160125401797884267890162779091874041169706874621233897981891449288329965964477113675708477768958591098087633784157298123174074384814644518853367551362648329571720180507645128286704258003381779814958054217395978415692362515446346060735843764168331356379616990146866533104849407226068131597827543529944186709406001589625301775903535883265020098610981577396460105077904600261726518922754258653439247884962613895906982621473156366289124494461115846390615829433373069368680041199530190786476893607400678257829645242800536977514079589384218383963012223639225145572559229650376680387390028432606423496059948617328907855625902962473731047102013025412622104072931207331579379780661540808760385740355313599819712985338103874349396754407906032806303971706872640649118513173044092719513287733133292443371840528025393608273678785230697745385650815938874716635022892347016724036522216734069010788831853916773619945727799335959532464914491213142768284658840920738289383225084171436651225427171862937755389124841416473351296429528742663241046385481747067321583802000892223883268192637912409308481639587846610704286213259775740140838522774625273704756305633509719251785370270605920695676250078846961367903152525192303585475832767776613960277584500257234126945941632667001570109194450407719498284477648039464985806039338493746195427051746399154313752227315650615247965574401165515516626322423266531236622842743129515544077883328043624860887823141040230451484191475052623847660974476169960345984397322668904721367054365218454940533836084534667969409010783414890008185368347543616013307700871601133325278180912375822961692416879658179794206849326869704589862625850478597364864720971081774896070607914450987331797293212622416555029631708359849291682191456456518335521932907735771351762365864544945231400409521360335750143117873939322259760693096341373498096097180401235096657344305292340378838506602735142489132647425977344870459042572386151533608599326172310714088274414911747817336607933159026694609725556284772859628630017489072916217878493189106825136160430174139450382755744721615378275915122070396063404179473788739288495317699307527001908759457107266885080091584800432851957742407687588219641216738950110380493872764895505454153742406603884293613480954863030424479037771119645651366449005934747463847099046573745129161403712765835267369080602537430120627775716305021948631867330893177010823765439944812623944601082488693133664435483127289330881096043398694595331890676244300288632039741302361338161505757681590273097358776359624813985522596530957041459887926987101406342593182705375672615631860959275192675070404192201088688112588067636532630244515297818795701826122528780975384079801066507260650476406583876004079973533658814589416025204969305836535720262692638100912760231068003471029040467076153815341109284555220657616558345582936535245743039942325196922292655430673537793988026815591388569113804197441270990592073856032524676610899724707038156926118461918593373261557757319174888589004237710660570010199547791610495920455768800615798015931086121003289545782673643258274797765215810015459042560694442360847556799327704059762739937857492566546703284499101963501850926453693210279068132225123596850139477981567961157246600052489704493815937976356332633078390966701704183323754291268676820657398926150579785111584963808645645369240251513374866130273901113649958192551057277407421825748307728888229656241735513362941724313872306057208759775508169987278661809694595102398020093319657752832472380219811462027503259759846188645407908951907934653072102325111419898557626152271576854814601222386330229267509408894940015974951623660428878515994054379843691077522631974436917046236346109957054421880945546354682011288129903486769297564414447050810082054944889191226577451544664756372500741811170895269534026500695842735686374477257105052137956364020496619352930882537459512212302887878179493174540579837769751419383950545649526829423457580775855613554683602070843495463779219124850455213826528561697363193945156780760117817903820669444033115424685591340225677795728243243457334322009053173676243805913784243299566893950564638723542244012305736612600619679986497098061736107103542968672291728181964153516965801104946628914938785534512224624007848938522057518653423819074710550542661016834865597412245999644658036509453206391882724568697691177466076420486763025633209745943904423033448108376483098247006074796121263701882528878675602291262291377735364222467731758146358414850881831870247657840878128349755492819148380612670555039542925169423084348542822117599006758659354566398465195932558606884728570977501924544915963365928549223235709074482047415380304348836873035822867483924393167791137126614132483327158834358625818164685314229756680659333258885315472205086451508162366000894686415328924491327009527648607387115559064287725987714658801172800922990403910908468071885227222542860485960308225362560999790902150222998301920738183223170799928529581830590494056756058287575093390857676022600221841627642928258981630396278702194024651032436662690858254986207891803167085777244426799559030827508580760170661234646948144591154276347866426901405702114326403279965341321365037242622519386034504473283628806380223444969109031780631966631550383567851509990081916681789995896813844602823376709955044923594077635378280300240313952028298210238965362599980357811966920428051050754740988594539146741509826522013457663272689274144289090339375259822382728194102831893164698276253030382779026378584583342229841563181287550992896397510114246109839481091528782519766660459298449848178978357987751302255280566990590923634656218063794293722321572767227729292178594054130208946229977095874000676244983470122477309536887064740187834105938066712751841034742293856171828188291858612455388921946573770746439423585046714673525512971100428284097208379369454955987824790455457698578777857102206487990776313532455884364850748589682314543343147088806655521050043103941314794713601359561988707773083361198895864502272497835770408070286337741781143726737062808743090233886904863276374473439313998949528133298270280932220739705414246822516947070261122494599171154879524858029336875612310813501707609343602097452394225348225329346351507242438708881215482153425877872613476372630758863539750272370199747304981138918625176537142608433354604506952644089367831264569215586666441804793310633971261186450030024046809325409683834199089446919235756686884129980372882188696594415302143228257195213478205755000442720380611321605844457584211009959223043722621016113125279328692636781734069533933229873852154490685589622233638154840804135660625416296903069899590005726261458320877435764216318169082995983866909297239114187386971466234779947775537931117799470725104732034704753507667968567649449118505027657828524642368202915955716396205303099551338382128946940579115012863142229578246182453726794649657452998790272024889190231987452242439554964333806297695264599738832016282579572972313387056449849241383501574774387172804737680103905165965858274414402348981947923744445860221920680756106324750479407915300160460896321920204740695246233474748292595974187260716827911293017073968429244489525075448334707972888561350301954608486129054297243760295754906257496415443699756908502022714417062657230110627200208767197243662047744694263648897530301594401390909218348512034593475300804184319281634337179264047688491374502214226139936054409152861022562468012144673530807736131643658495608930075096167202714775535142894312381303877348215582346002343436517781687644135429773873904194100546018430625773511429354866449507054023902657519711126206846065661819073306259883232398847435756540946006118775305638972303630223708418781620396581851568782826946422007145763362537825164063882693635840162604281471820400345590607602529709122785276643691863380647971863756785034173558296407656544732162654122745262021298509932344148481276846814376129087716571823743416229205211925160647528171590238736130194852318847798428697705866490390998298326980609764552234088800449962014320201326520452358053672686056547018277619648833239624628883154222555429724339449395592618954281200327770292608766721280737204819073011032558075012694181482234976260052779975607486581632217210258733064225246908958718082676691378190274064128577066145108165860499716825052164564944922584437888278564687726172250974428634908199175903835321252789507750883025687355704168910848148768301893292176373454030935516885783147666358730706851989394981150741398044543466578415130503217005773655338605408949389857015214610049381682225039941255211859167468133901169936169676165403912569447819391237385162223413397307986967097676589166871928682960482428495469180609199718392690431343097443728067232452886684059313024077121245340436284526530307987548593556672373958877299185850757399161113560504825427560470529053283067986297232527677962282245182429700762877551194093956722640277204483231709785757491436146506319081718006497469609592376072055661083019383570349203851298460933879940387619743484594581108522374498981039284997966183231368472653516071512690304012222207481569668930821637200262336018841649268752655175901741945467866312792209126031774150030754770112927040732407313269365070548513534765313990525999088049574297070189152333679766941878251303843143379724660905980760167508959833231144925454187571340223596386888803321038766069438866301138035360414722933612287942239393877153573995782953856207671961218969415007252785304574213356180114996813382916372360973684107073471377037819871013692801903714023598983301495022263272264766623695287404494673921566175238646485933299229316666763590006965649664321239671551982622210130725163252055968617697749325297042584049188126214689757953718125792226759036668775666598070803812859064299674543714526372922477006617438860092360105087069666876411201482373561259089789754127608385785257368463972123690618346558177826083136208207344120458979691526432689047050907306149243987810337483994090348907716989323173809269314639649767699799534499009558382823895892767850105942827614240680791239727958366716715888533270506538650433800312858551986705499765956435330750166284662800199399109688464084884465010759112435989186327202637557256838242931072313897512593820241436905338838661131275537484693700814108695366852471497848938996314169180415683935994155238288518003013073116619845530941745706810521374666694632317203816341509515148020841395654249721166008207594524475714230645417783658932256498439994735702045949892510346807599234386862559022786988688648591105434309520690014203622704323580853455426300831756153695793624864592693139634712275709456404182989805954221948235450068346498687164318746079821681166255405973309135767248197849063062708065709173375582649580987178414428413971504276784584805105104702995001877740404005388817800352518367697220665978924468455156231440955376396360896252475515167090745075204957776205002141587255469945477208265970930586401086313601603725528347022040792663459723095016987473015312451768318880325326387790716596668048160729673503837665385945117696557349337200499106301455904184226481551790379209523111986666919337392025793053405334638170451022862708093110862466905046038229890740447710674785685202502569955793460054130360654291030371870516919078192962242185242870038825475078398168645340815582435747598933185403988282115607329555237286407239547937910206811178290034424206930579955348068250251381968084898507555304427606032573573829005656927083865518897423827358755752696796902368953456470045829043315788430989758129905809376628704102783274144275180439355409544170032527050593076653893837939573311866535775162775989960984504645730240338200036160546934735049230140674087230487855418758860644292056223787899113529704079939525605347407275733420213051191727831319846347221719363423975492915930109262272232940066735719469250388406601572129185658688974090477837031592569433342753494349009963958849902816685789941052536870145635654231747958849020705038696793422583179711489067169647777518822336610347155915300106652686739457262336730421172070230859441166807591483467754309528616453335721724422021501301311945836925240483687315858458477438035330341893898409464045867726887860431836648602175496330826757088812407895913860540207240939881276153143393035775768503924086596441726686481847232457396279878150435018874608486987283487834755936997544930462822226669106189522559697794210182945948860391398523973172636141903464878991849006417320062321877258189151837247407855509083728805902016061284061366796854923011681251619876026786103730101895460496484550276772760917890320317758444946387652345652478049716638955757875735929880765962328294464906772506395992580351382790925214561129018512643170627453359851891153132842889355687195214209361618904537659979015473763855270379884456603556265669271765864052803388216496890072483195151188814709699419445260079842325034570997637086615796396148471849499338192182524723919155355157695100606857531242151222874332751337485702318292679644894501554486491615002177828991037537583090722591773124974291650388717710153489938830241027722941920323675885246565717232961605948987353195354391994039608998000319487137614154813277072873416905555776126720246349788217856767618931201257359639390633730066374492097368124862394335442820990965579520082698108846569573584326809237890191013903310404293137214823389921202968531394469905269781640388552650852160351978391328569818527082627528497550834404862292407229593755938302331380234309309222346295904716062899990045777769006462793836460294031103817063771404345438346298371852846784569685576995026070536498270865241665449365173281269427330986024165705247638153128400267299728112607246561188869852444582755061279179384958935475016785267367176160041787647492193938299811027665079844566493701175796049786157388795718693841877002724825792370178436921429895128184156716381251127814724074410445266208323481248351611840293144138542852717813098934715096468853482968384161216247674989084768547002971730457152180574944655110614812554515101014154991631313505634908782692573494572027416337628505400491700921022476043311621298127838011580539377614427987895684053283859600894439055441478663084051701722371366358769200912498562558120239220390941118477012040504558742891169215842876308096986834191601417832539812710493080997634872607232098241150401693159402954963328715594866729922022480233249637984632707932984881695995666717453787660922285658564953488409971987766314481409503689152786761280594236085362913838339050849518150465348926638916137588054097350043908950130751455195284526416985562689052816634598496609710314317082721645147963854959954071136150880707311444849230560028875262661923245277300212547582943355022298191204845208172174325088382989774799876240648490622346999687527965481410432510649960422624701476368486895750508167292272732316007635764905943261133096623482082675526977279441740164498878633892318386999193665301647776699993956920886052886479897045025759649872694122666942732566970932121110443559891682283303202329678643566447262978436925364089166425822163221559101987414442220525015575442877526580132803654245145218804950530233963827126914415388169709621634231988890563963450666649066286530222059810927911488865048138800973206927271277330754671111520730729053335957414281569528257894076575510012227640986217308963310942010559247033288591321647588620857824330185376227513685953888301218337833457379781859780084986138147710891621399428621360270776834627098217125377150421100724913673551486827993578765204443533713240695043343041769573614290713224699656801966225108081179336467192813694194188796867232321914358861728910134607279496484355124432212957815320339447399470029180606825845710840688497111634633471447479695653965200064945748481566773381610879188391074449950465998254923636295044063392356989797995398846664587035751746507276497204477320886940012639698313938092764267177053561428860006319357456684837392360377159857780963501601359326840764296625449887337833045449353541570185363522161483591664890119152991116867583149509908420699292909887686772650771049739786832039994586592106660819035541229300707444386103932260367023050531963295586160441827386999924888441486971663905213769543279725667900540104757940911182616640297002830112926744873124468560241424453913599340773857044536776836010754171327463907525099122820803710073080508843426640746890460798758391855227144030258621832801190147826806651986551757321073183021397200116446506676920895713578224545636587313467844002730876897218538386469804198492883100920242941044731969657250488200494455187256037702255376379373916883704142645132199740601703274418168704335983223941238919779195492961177069592519581477572450054717202074041036163235151216919723726248397697540954342781579726676139657020542114387146052037853923666183997983084101549959911222102726074803531154296843472762879685211786342670773968507874137701291805398959854858929843715419205223029921797248163995142070756092142992803304023768416479206739846127144415515203073979450600391549515970162178292680764278606677458265013742117912988419768479231926628267078957439810632015180031653929966881926151298158990685200978739613194894885872158343341030929637231272072838250713792094306247985165129387490153451395727699622948927835221631678271834125602892015276870245863635401582547750085794555513770015497058457709362669901960715524312244828797517447119728618793446619275910426133713416506005413740617453110697107100950035948399287525675743154290662756460752534752386799798591988879140537761763198002146991240858938173099174803350520283437818237587323632998758387150916140045140532316825465067845290916012895078938195652518038551250248105970390177377241894242647677074320434689129302533428793476624003519475362922067659674488346145591700226838866448554809650915618721297207588040810961954100213929947740554251943165680749843077582565792960556440316364184587672465019048357629391418703799945940425665648325097238651381724299903621602873762836528248624196177946484677006125236089037484721890711987336834235919345692773454834681865534018199671502333964073645634289645658521913661632982120919744763655446478458324569815790127061525693112193346784206066518726210596755916407566351634283792431404250741291506584968820809929613155926206408363422369887219331594504618295935530436624586471492815036384156847070434698498243726747718067662861309781247741292866604160985964771710947335682548198991426297922219787246097623763775696066772898530399448506758336683095167583873008345629279989504884524890318376584566883224425192230442335325147186456184087059339326684739330665286565388359188663212481365226005499868103946760939164609396022909838662936488154284961087051091010624513277004610523223857138624683268604777267267294857600219265803171055848306029738037670120679542069134422935754912671930043019999485389010608734506110126548640055327587426598795914474182069342808987366211291754745152112547821575688672112995732417842320875733450340191181253357082044047804636307547281864428282731131743645172001138536084834220236783756021789226164681759867559805088843285657675005816951181630666001544756951102581438382571825920377721260584235526245297441392256935155345937858528685165565346319443921646628240417657852614475693344203967954090364157052019655837636423560703569871068940071856742576339709190242713003895077031691588785530224605516429436858835659900052472956679659399444213886211674629718195161202634835516679690649899921697190058274350660194649633192070481378525868423654881065694498281150113910567331192502310751763857022045865993364580481917755874950193859182090006082829258414511467261964895709647302418187306211507760311279516340164703376304089009148216159472980027766097297084520162404350404472550430571993460879661180329072220171200193736893486531390572880419632676694716229523305904439970172542343019185707467600447575208861290330205778342201776721484255802900552396497445379402497829627540986601160530533103311385491490751151782387765706895244951413028064983198374467613745395573093475944098078841678079621288840138468848806033895825893309840462419481726201082927258919275247537461675244504376043348158267742701142411273593839329946188544074863696400163366215915964387622224568169501229752230397212463561164497493716737271807627615189612636081456220619892720010658506101238095378861230345125075764067151097958396917901685555976671407457478901425310728635331951803656917010022909609213889532374480941859483214139550500915671231418049630234610865930727109233497738146016178126241126134210410229357198015136270448593945486463192768007915439055156773134908503706934121317361791297979525401244654405798518508538933002747970240263200249071270362664747575203906818529538246749310202745260630779562044517458793030638996477909762197567143224577196247980302935514586053512611519319011538404948472243699316556176804061139417512155952796931403531869480117768383289191743418454067968830194076001640692818203478488015721689506595645061405398328180711568297766107188793056378905734254359897155898795555247577248764866091771488196342219730068318658364042185322529289262189899909645409376220916405949415822916664656118755449057639174391407863875091321244214764502984605869822320017595799264808385505698856132447888550672899870385249992114591604695736341211021439961705020293224311926613659949364115664822902070117737291302049411982016384978537733303667182913489079587711155444600200234207003413339814578721791903174204437621990595653422607778859688273646689420026147029103868378261123139447058372053641072644450926588597272720763097389346277789640543446720284037747607636523463936974054566765646395354297962908201189504078773086842794428116782025162800638079272584890134229583461799009891720640944090238262762093975214449823744235321416657258736093248769264073986392083515765596928366563055420134779327289553084071415171054314860258045782571437306189524575888319835110881486396196492411458875876198892901832175448804022464308512226784859940713065980049152391172509796772195033995561208177204449350128937853153147257003968033835380163396982642299020957456816482562623537181797244978222461240369236700391689191534675583669898611562381893456045542679694857018830315208843915854930115786720740128363026151860998570630718110441553004011463912974701310944454416331505969600242388609256009973085416939450691646420065166217588548966514755208874210590877324227169443336616180728372227922127409210435440005391127650208860193798959625949769967145394223261976463375274730902096832573443391823484018301265575000605874269546042875517241464282665710131298992453061960084688734469538687931886156185635132227338431353433083225742120440849770348237238668442298022144795804963577602208820190796534689540119311800803904819347680947220919158281407100277723125231851744032639461716126518694327507580159801599340313876963593379739580076523663604739729426393463093519592176273761650042770918774270083269165994068662651984943959240344275404819573946636846744496291410551995888744043447343202419804598895169615673638183412282272701729880510952662950715322437470991282006910279241881134037107393663143514958654260002125058705824855026808010707007566783185036624859758099769989633875483741514779140878716628310183947567759436607524480555344974200329673043823510187365650283950015399737554022449163044895704268847882240170826563537141392806838670247873179805346515862786186343148323614792044049461746526963256184617637373419210895389906475437952959406383119381913702545460749329773064202072569892128912655915090848666550768378822443235847864161664630905771688152407166642827736622437458424732286509625770692238596762835502280353347876278119293540052322519806837391938428417072491119116601650597774460098339533492512919265701799370625836697768039638013082310841418818105697657465786481168923650792423444620194052519100545696794292115380039097477302502526682992027056521263678125921129315362272829793114051279450761160239504283516924428556068410260316861085491186534817518422462673541504922651698522333292513175204401258131712792740822221078302728709760057964773611762226584945942158981463951216070398731878443248021258844724241616171338394364770963468949366675043162649864588470127097164910322591188150129467862198433002517750213424598235495745224314804396262864768592587820369821604997120325419745498442594689060113188968311141274457608911674833604015339545776329463452524646582939196185241184191124180391248855870827725855387700897393008663638160294345728606784535969775525494765066003175042307985002089375886436730896755734191982646695683503483060249868045962938534260693701936434645630637333789794553528180816738641611857866883535052619822213277348631017489887515220526532142103481353332010945263858451675575504850003635153780238887699319195915139128532676652637537492138386676578019181393447973383092709945129556909016669378641718116224354411274033772694190315131142661040511115185256482250153399421353201470929904586837245801177780109691411034921716852514036032648562314382612489712908555315400482076863053256731253234413063724411119998622804211059441501402192490369108004762068318473978213229513642394966553022989932872703823865745115118196400547272050844235170115344587384724256455578964797655606479410799570270163728848144189421007859181250313612544477552016935803550925058916958706734274861570579950205412435967843193855240899893387693620400866822788757314913441869950461741287674062658723861788870930455991743203178404712795278474755488421736425493791604514965929784532950085342418634281047566589067420530588757132395986565429472284902523200383513211038861666983689403336159619557638234734951972230238434297066501658700260741655762834097228397501252927097572617334198049070278469039349027472776007592694981038974592113550700896715981864861784252130864804222391005561991271714303733869956358300231076071718733894987513267342464483823627764210650772956971157383956356956440477677864962734663288840107706225404894188911013284352585052587931735574188829039161842204183035584437594144244153863634665543528905752246980421085911370914326698143497254363368018960605524901788787936731242385784678426521485327176855518624021937429550434866571868035208486853996679913650999391261709470601823815228783541918413700985773233428547010765226961225299453999875725333070837049662557104623002163639238954714226278538294064224035045933547067962670902872018249627599610158943875968959831875404541238687144741623646366754981208818637710574186736577745774795223106172737600943711191707687051508304568911942794847318664539164243303884339734111663688435225588876812823542557451927817541341407498944548146896717536225490487757714725493418973471725778991021489759481213418741728095069042540191995480086760675571963000974050344056121777177960236792889734161432979091039032104333415269946277989424088289593064870884230153105045422978388444643049444867725297306537467118724795915409986645754414084491881820993827555147758421411194932233539054053334290322703543483908009820000259870535419588424261763821063889332216820518493439040827527104036127305404398021973350915713172530954387219258354208517148536048170297907055515968876988387522972783810991390337783021363493261663219041581055162997202960162190045052341896799125837473130615020523576795274862593311949690142889812457568030764746701107837895411440362198463152795035239714237066369543565453642180042921036816326074719483957196597144038078179941240181453707183381957695703430179536720787995831524692240762170941192104915516620044594347433258101415673204091506784802056370773480548994222679121107816515013473493562676162389214285170848931029252843490161437764508673120705765475080690906649220398525984165686365328664205454740022653692941420453695338572734223578422779438140114173956748157036513919141936856211948289530105141704590280781359514038422697425263585841729890104765926025321352439037065579906182333143952742244482293107212307396198101598266010451095202666261523445523929999758991239204441407826122610489494013871665624386932227814727186024709950184889489148311411201001775415586754129707134977289445536059297440027792833186323578022970980963142598024926222985586327957385802135062143753535279914154530861984035184966333718478031587916793641603793098283280946586324109952523227560358900841460721675273875141618958921352550443587183672817459738694075985042129319850388036678190864948752128013643713474118962671358317456148607690600003380412972470617206714563589761274024030062443662506150029001238834973965869211767280902707325055994840416627623158497755166197555830887626955838869363536868080173147973426704223077622487454777417821987449105369961106726473339655926850783391468729998394149702785231472594531905933651413162396193305228981162331282375495487622918872475721282277988618051622209520571195763207055515620380917568385133700316060506958607813147625124431781416487905668281763222610695179864812229787033427116079206454834849200619968254086935965366393031239067186536025776617985498108288301975306049514370017909254057781617112688012702043923578231004173194598057470827689088023670026024347484743952460623387668184552188747210021205282405855527882425599709706668130246291608135618498461367831193506710705314073550126152242060981115826657861688683141858142192685394038574483562143992450115366251291538265119118892748086595741132129623927981244180618255527410830425306959040291847493031922864076630544119688219625572694387387088045645412453512148769533210080419282772938757892061950948191045332686922697537548301914585833972172503241349896055436533191961701149480990451473615728809801653172485605978009484893053068651983374895823870656427371198104831801791378278460904174200860383460975270979274556843576279765018383891840551121161017334483817667973794402313594145307370106589806776675661608740460644277777208554320258189397713779207948664404922920428472694106763005679135467013981350965248989318783438439461982421656531977752676498154924525989615773901833885158512801634474088460178310428145729326695623068518383669101417958420546295887668896058475594630233382046324658695756559331652234842579887702303166455100458263725774130449029435515988033349808259896227202066859791982941603635688504297989081715758526602301004809787858969777330861131530822622166163892129064686715919193515090289836113257806861279278576467517625619740405592464294934967426400878697959772651860457038281739930093898384844212082488238643341538065035113981211034858233452143307669975437746679874487302565328611737398419421439522535271136458022985077386979846233892792395977733217260413308572373166297167994718162865273530340892676195197923925999469278843511719753719189756886202011762965222644127937382367809292002011264371233736020435904501043302960780850273440739531962287943464627731431061130880359305231498530607661710385373559579105206717830406212961821552485258190845597681938697709249545590861779198303474383708683360653781175978743051906574676377066899555830378554910049478393609807526036007311246995243523881704952731523556402335170277995703536259692665223287574728068174268870701014519202909029587194045422803968319247817147283295836118727504374658882774522031440970252841412083741809691030727996883422805251217510088387120902901144978636237285635140909192372277668644138231605035582935125075000935441541353349896100985368812202267308338990260045539372915900834983072930317050522357375287216775476730669842156276221335767685064260495527981008857042005582002050767472247807706766754382326621555627452027140095902770638203440439680707474717411959895188281459071855010329870627828451339810124882354527685174978515945371774654625580982596987002964017180112180224315338250244544876725199002099331131045485229306812685086020108195145379441264860851267684365495443845662907202237267814533884371744558392083356122470054958005597381615320098969475557089882646560786313678116781144785767718087054696923522289397709321055385899225619789711528882504155602103122078216714649595705850024894977671305841932543806494384480339054902923650375782679539550679980944992502906348776187034040355653117608823212668396397443834245690064547036562914713561628086486177999715568719479762854116674840410983975095976222030774023872470238463278127585661521647066906620147219636223005491767165201768919432397624669203344168901802273888604551240985597628778794511615855022740178759065135044581167679401117204289544741136301740592952365670956977414448281190142203604193931819219842941191787852903312411635522266969038486466543338662424193118010445227104018979572605452274966913885760852329022381547022711280051267231412567901564666669213608038918844797500299185215876658688077790604325648392256571411536011109277043445058266541049544627426396596740977193639884165990595162163146074807008682031272976553357200295070452936787396709774338164347417179322830792936110638684035180976753321159127767479057309488057369980639513946911198068538590930710085699198989379676987264886032972336744651586774533002482858632048789376580735799431131377837407590833162994075098618726656423399374063184026103202251996841870760527893717169380191640670354517302569165007485831422299185459768956477611817739454805079801547022337731437826375739208006458013028927331845068627103631854696713581831525781555002702922216591107370130469482298497797663750992877371252914837314781893746016874726784548723943632039784388964183639088766538096538466667881330927566019823183103982500818482124574141506563056095268108642299787859302462992672106182793828043792860496683025254450427787573504971450290042798730262119800054463118664732148762584933350276898421016480276297220131176648540785104854219679562204831193803108834873458633128805908329096983291528656283799709952263346717207865691690863448445372715131607226195260704221667356417540911832218378100485815433104331640464794397820456523246913196481480173092005896424676321976245673760981167701209544492210363535893895152081210102686454103582296083161653922277803155010916403195498809528948545676714813282221009198729289796466766902289460549625358648985164737364037526966886396565526022946690748003560674408661293124088920885554570169511722271663705609068784008164725912629017467838410400643275750761686215811369992903833483300543365062147933817131368583180565988980309041377332145121310986294031365688158355765459713606648261232036777697703533366699139328948689112306184629075819049679078061381455787905679442206113866295893911575847380398578818159086662913832752855570241208718521940990628440775332418167598062704862239332078502871360268970608127665331188053867561908256054822173490385996674046943350098885849374704216326506288775799702303423976905221306771569024656498031169049531135409368856644956385887875161786875316929749874552985797070336102994498121466461699368091226019208705902348500215289102948003125520704765914948747701125199035366186554504760872080761746124950551659427771735405182989308817282003583803902460685986472514815243518104362950721830564917907710692161178004769735579517057149720717995532259705660736507438537018945540746121464189285917991020579657418963661926115158720270675257940223350114044476922589527935882578865293342238607760630213910472764364741424177995839874800961540183503247367971856145390351121856942855354626835950777374261714149445094036328746075737075639973210990706863216770198305573813487817862114479072584657330876133155299581490492676250748472612841049490841482258592931217082893260965657527890335155268093285599083337754899056087652073525200882636226900717257739728165247400045500193918098448478188794007690719472715165809588671383591184139583058475684907456745161447433400302207884799945263185045243085780809280498792679865370007494104615242262771877285235344413522766520157977405192152264915613750993412059804000575296642903287568411199652548384031110101204104699721091445805678777584436609364047284253812701855725100127158985548273379889114078932439830481483344926148522660192134147594328805991479661106272353655791517221589474188640029614885047708931366076446224264586719043446006864078599240132209506396187500112175583580026595673059114907952444403388971216533166331545880086208264455564439256935604865795804627155183192625456114357580974316698364097568172073435770510689801949411330410502185272223795052012469455721648031687585389630222433418402501898831743655580963968369829406458042009328661304705680568834814110004792842742162526648894926089930210347045182970535024944996262206638336073455035865043160159617989554412998186718319207177795282271818195581158267143032208437390685024871656980271741642683622723089373313257193032645785948985180333695399916093357868005069248288931530577234649851343996242940357313794665669134621578171193043164473935689269970751794481357628336921805631515547026447355237206238405943396429416517584845814734932415032741041314402168555619034028162778037399170654465438271466514495851256681807542892503095771226590550740460228059980112023061478615377037419959740398608485543443003682985066311538658350415809991637639746718453297655447826242243872615531159192952721782649429027916954647374711317637639663177255243226686822012893068013867884213480182033056785383957554211699836217703965118351105133618457884575728324622504673585503849921427134223851502548021211320559282762439924578638946000927616728256358291013306910011081850139459761473331383589382909546311497472159318293788096267398883189288078481646182434069183468976465633232916690056197666993990898324972693619299251297667190370700050726168020302741271697438764632508184603194572246428778687735757305306586775940200507831518396850246850393589422931835571727321053634465444710653280049460261076651773076785923649971320147921213560919683711182568759926448601863809600664890304004392080566796903046631479570049122268433104534974676463458168028557360315770665154514625344710648808645795668839497831516441490539924988528111737492626058839444756358173187067258579961932882101295807947590190642488686378167839428109014015272045977702532855754673942608783183805066883792013929592355390231210461787788777662045366599726441290563390068553105406712341705753122636960989091529906182919822702645756255945733351117370837254748716471086659649069984563512038015875793727020931948553134279174917910221440464711716488624330694150527916333544700653592526977998904480730387157182333163565463953644315196945540311103188811530737180057689165253353111087144784841764581312977597772642042934949466652569354561769521707353947910915217439298600439981841191222508043253909717708233384685486880009886929528136817230442905897405520132927748995462245887237716184827792357735604309466133355762613472902103805269590566002084715691967852603448961880268278845838516614567088850902650155670926214728223167553349241937129297795490756864176274706265686645727009947051753571695180442640241119424641085783213052313029662579833584136676654148552700848829328002483816486140101908834995880900184605594257717205673301734439716074692113421899237825185743811214506771118129041419162344350431101688240120980852212606140789116523529951841260730211221234719873261480785795609446239004954211907561565611046245661754766718118386706922158265277687821314252718319272529614764732724445441022752855021771345823553133281265530259956179712032148325461913828673031717601321757189423766335182475064058353066469982878775299625207086038543409716710374549643271435763095884850935551293933042786660871190417380000979435308580850974125529586104734314282835469923405557651085944362178857036908759973290945383056067350287900865448173214791383189233002766445118436687162112652577811492331149283538147905827028547770267990280979879834668102035174395806364700198974577399058765895229202284598351532507043652252843101677800502641912146365776604878679480547389243816509251184045453310546478718619920289644669156858044132310681495166632674293184957707901491953356544640048829612655162005975006530133877456732991056619999910207414370180775521096741198200799904737055211550761165038892353842360760173823594124772039016697379111987943768017142194407302339659859244661994314748929404490229605973286856207091625469769036546284308003689047332129611342842923201494247014610058037613353063930279232805748430316008106371622587317362537998365873750660992791824371890227161756763851151438577655613774436963201156320152532795235819218748952334542395239486680246425811706455879354844921448528965309598368518169082575181445872347339576212887300700347198281851490845560735876813277824281417188336673829489027486083558249016072773275834983060414410643378563801665907638878018919555276057699561282660092015398911305504519952487050267454961691427167893685734224575847436163944656644620658377818847894136362121061292944744706974673044557827967581651731047966272608859586460080249603818576259336103002735039630734650698677517644100114856440331542925758784074650999540745574022028676167587666840685171011801060551289601272388680471722184625233594824609433737699427132006628046940465737799472168090660398579644738816917478889358022166021078451563477488443551157137427537777591912769114442525550205892488077965425868536060313129841543553732011988502443700505053542376444983392574157157038791786675531080492816354792957349334370093666817596660380181248555501693525477163467992352049655100775680523127825489141813732637388987191371687901802699415740116353379473736758682763423564926318350773161851162051455579644419683062682610847472752198350010980525701653301545309563290079794929357039513595922944664186932859521641486483925480885860593250410209976819847130838373965403763005297521239299772907612458431272595540250210009452286471707655303737662030336664358574291623241116278329075897423019241273611837659070702739765923965910570176947526505295052032819130677394144168894944556916156146087396704143831629545542108119640611135494879188371679690618632869298024615657031525811716091050395856330549895106765898662532580030975660797914963759638543298397618166502259754247982934878618969565618079015182883946141350507710257140720882336849294129461216749258240300148149880565013950077596888396908567089230561851730218850475020460322094759509439885203162232857445896705598828607956851088047129369136390529194429825818152171773134787627226020610785151948160555932097390620110961525460763639422762891611706786317372607319369973887803827721862058993841584983044563577133120226178162643535754544913758531660585431773098593960108608294799919373790454799254706621571720387125203521109197077632498163379137075562394199441862006078593332368508891627415742806353883109688717370982835563806962147790020789971861755921599613322144565006549967277879864109877491146178511391634365079143030362745642008629773664820946488897882680708785885672961122734195265678596754270113952493101145503672925208342049315046302566081292799952297995642295914807237421744641644297381656383589527358610423552886150657111515541169393668760198801190909561449876443549422833516557152992328658882477433095905503159109430418540896446243002785498631249592611186672045354032811465123364457901990062143782892040869306003409976252481297436131087138669267577300576606398423979520510062431577626725658549791572561598871406403862827470107325506044169805303725524612635720473890681998973183746992267292129544120553005470354230582719434063482324749402786769632936902678948686807027316209487788216515865784966505711810538755371324897317177421082420154695568245643428502062461430116090264197702801830632981366517243353889836561635147427411271951094621772947628925808712205600123373834555293399925319554741225686848625824495125395120186261341418608535753112140403752646896871228311784049915858808919302514661969554705072388899219962083955617760332019269955118578061587935575791843259135199509281306555120238616172156841095411187600921198403382110719952577174614401496706436509810860169654437307338460535562252037244567382282171398672351498295411454383617518159681963172449378393675463204595891281345459885170575094810375952338094775081316078459150678081841247124544614246455913807057564584200778938806283404437968802073209180408531062533422324897903482458568233571071256472124212914576238840947282531766546129692961007985130451819568837758708388382639698915709720255040133445424255657545275326083687397040106455898745063413244410139989147009219273704320272971514886757380878433919403955205388884667372230931487439533630768153631158340512044557576702865531189272620735220309573865108388944185017182135262782963177108766437594263265957603154780447496817802580892087771873506463140246787465313164846424558585603637636864179366594202404425168891808069997957374216293379790103271473039364614325914944196645744618424487268447349001091084150545898172885461121452071991776111498011836293287108888404595377372196116938814475322938469796057501928873676600279629675526734404609684791312153771357827266888751987740311589268701132074312681381722241424495350627367670202504288545245558084467068810813092063534454177098082884551722646098009390919676997091321062483136888681186899636894062779663918928018433183203809655383864023336360942025910804307126995765166970778877680956340152784028498307326250652702321281603040440828587837812540899128270455191154099987009523024199738647775018410723039455860750779615195286041390927495854456588050574312771475570050836805622533769191925482361730332789395408577165841954149404683055209208652174506507654673450599638164988218275710199078805108922599346643870554714517561261917218010503174931222988221838964440655268760906317232868710808244589550628186197041272524214122316893301666821983693845882911886128999137794929688326734825099805772336012663255185770806395497521859411790306254703613890354765332274688077965761834035745309033975524965084026620571175203707607712432843886793203971411394545508757519405008608601763477657349154340886532079655054703577011972711998120560969664762482687310129890664922326736100909688681062937662834404341424517573122030850537158872824744322393962599211694326568869082632891592593054851923022121464064320632751417429392866538014121192406917975404788358052263534166822551787581679535879185580044407380810148772015669861379861450845877117019273517110049158980860512915681561795497127520798061057462385682268034574916802361087788437412625773231206535708604885348123097381188130440682015119228093681671023185680511627245456329305954743983950020306546969020099315455621308856055536637650672711082033514744771637401708487296723395268903985850963992661572303356821716933050527419341020868293214639001435637035493197815805142500674227172066213913494489370002401064412804642827878751721772700488922880142958515365155824430250751365927474783797709874480848872422479782465228924765134842001408080122010565647251990394936934677664835105587797484815394235399922981446813601648420921159482443325116177247081924333108808226747868593776808487456300060169528529445935963507573634396389226143491151225655208144482459659641893097672006686684951816485813285713344935589685930115137127356461985657139279417578544405108842072210020155643163861813680596739626657530952176589977899016695754269086365064152569181578049037048511054103996614272264589540246112840011793345924042614434980881268064071783008297705685512181807932506290155374559307935654080929507740689613422848259014365958349882195322864996934586858303618714445979377245970832658989034557379472856165295978955934729014708688858901142124113732879148558950264495920998148088066935398998638138549688504197571486373220489133146144259165098900570884247768797553741189930846441892303427580918428371572014619944011239583737478447553633864236727027687745832592813706730928700401497106753310712986650986694693811568428916903323472017018135600426002578054572514487136413395015262678004560887926058270660769289024334858114127225809766867745876988776322374452931108177148232973053082963207534535274839076840565497410776733077519106174732136538509357008627057772364820531962448448508924850474907817158927847349390281410465054196810111309570219908632501509744233293736913389922742551937532459941064047350097207219818050680288317233072175852492331959265623155186834777958741691603979586184387052486845121064973235142324279688752337401814913072253530966507276034455769040363880098597188961673624275860720465217875003062882969957782174020253154423011206103545652354320845433299439882179546292829490780792899894642019663366885541977449085997008888631728954529058509065595668114488014225351564938071094713020476636573850928116691759931962450011003629460029319013875698409987790677761226045328698547292699381558974127587842781709784841266799172035777733727541936167260024958493707093171668764635267208893245803424517385562392289457406829091086624808349922621850346456222249656230361796941090716895473934027180126820029688271188068711545358870293397504687277371318252949121360977256719534267197027679150365534483213080463426094343299507185531182488433124772444320843521654279128561134058974985194381503832056925137313842755887212296891570169231094182315989732282670723572028504856530802575057854188836812602187093295130047043137191807724582706093211142776414706457130087366402989671418179037040477151738254760296908270351447296601229186434790443448284227620172706514641159888388608925408835568030106647814671061154270755318688927494344036601561258629527994709529052874883511235190128079788274964344500089343775187119064186070972111868038738193510738788578378012337674983949973888791956275272247407720670742198367185375146337338532486442317481395309863461587954253463737814814883258215512009174205824294326496919064457949870970946793543618917128071253728542969527587662298801776397526634607414386507453924311355547512345131327960493473908963031518696180653768680039814411475684726289483078660746637806367718606509298048432465292128672818839153655825740955802793848414914475891366620463607164098296962492803457695753574261619090309093144589781497278494390259819275191423412188875671563060190539844975640980779218274735195577781939781837922279659791153660030744788414689737447425132911987144840162614200200311002617627407832684740078457988052738822427891234453568526846804441093751173907506849195509627226285958619221446713041333466689459666760603777067966757441040035090046590395434328357329446907771721847220468124967033233851461165553549599775309055322739077178741868134120875709570899537196516885162548732901389342903653349661470906419829231878234315724718674133855366554092818666662872050840191475971692399752585846755049669691280743782335070036026607539067174600564774061310713298981337650674938825484178395903845254047549250714406960397916206330479904305574511109486888922035473514603496748048693884873345649614069225466729909818111835933806565850010957093164749569988273165220292024601643557305298898176395235241402957561013364893648521194249351601306167004936783157069043337631919095820583460979567751113394471996996075336343615631627310341975386108348698090879115149866978619216062922563542125002796170961316267350401203024961223652290045937333565173023744555403294762759708020101138360535002579801042611296569347256718080603022212781842996392110308069589652111857643779700642032912099825054332378166307703919355777841216824098564319570372148508217226309752923190274638399663126302693524661993030896085005357156195946336785969442519143060981190880989784047997991044634321202674550848314065564535703042431514367101242286002207008170261452642822120017574437009463937636453569839360327122237745199768848763891572327218624653839597023635793483983912552123721808889753015929886806856506672746703476111652592750557811901074771883904839790459951364194051291304780654554845882316377212454348651620757944240117587312355578809361146601083736971634804472134964632600093741870570818344354320721031063592418205635703304367595492014262090175912005462595960313835409045639137641493904596513687672990299980694044428282512172816287561774185413797960914426793217825049841582289500547276302834153466436978868669462689199380786820220434625336965765403046819369692840279146969530833316321223863525332303124673851075316186211421702085214869160183012054265220490038687808299219221189047143407328232299443171275453751956787952857350108112827678944165248496088981591119759510923347281152228825459941507328222314239982003930917793549267709623659112849122892642607526709416222346138596179785233321532778863170649713759518551540083720298954620591975070705054697244304801933275297171328835610517237782564620078865836658400429335627661104251669270059198864283587134734242009848939307997075320581037390445627755357759179735037808011862360582721593584275331370384570959941432546287658577457897205037393898405416683874215089342364564201692352459914395477379375316321092169597197702480636201169216650592105768899396622190407053397353916685087609161486757139015001183793278142929683546455559520008381215359655159121382984262268984968127591419231751189091534832482863867866231992026090640906664528720916273934453921819286849401324310965935826643169598913239245439403897269032521530401465778297920072119250967344272420868063071515644857456839690872175483764929087668567927909150704379296374154231200369017078832999374975634437977161572445628109733869944710930116598735178925713904077919436449011557277017866273021860461693825064678756106635637540497391845689447846642430487027790697523657424286006085552737892870088199185395129893439561441488544528687019404381499335966562228738339495169588660278098400216499095578852435836062725636780634347983130603899495454197777144059790261005010792911822550735996431525911998238547199492835349861085963522269998772735498756423433478375853886313562077180424688114677421295769987907022801215179972893656535080100530036144450785510254361123632422113359703470825774419547072831078593744468176319163580661227142770118958749041104993844335766974303124766822408586452204961436525626495040509037525110333229750468996776497111319817379867179681005322446853876627148539579089206819075369575536618800724152594617132403458306506162475981667065318872966122408575396207200208581665609040361033912910118296642600081191904726311912012097456691546150844200293900570593990346709552069414348371806209093252294051582633858022784846655644121953616125266366765777426959786825185756100975612236074587780686066473262855289119330311169877904729000292484063798341125928928119072583367357185471519748557004643495522897355272542908723375595627846523958166525986561642299820747649533203002939670635805052674787269586574075020430426403786973703690811486663601170095124625039589406796460235602966430111970825944539727111875974728126295405589832574193365378393203323345337039126898245357595138750441128018379744927837136786824704985203916459554482744574021587394289500894156087197395090137387644610603480295271150723166259545209262600345336322317055685354545785477027618869546945816486466895707463486700840994055100689763088322461731245005291477615361165527478101715294707129873755189598696965757240498845419940787909925830828387855991449569204066080035795389787283269858298283226871129463184291195921028767521506376657925258652877857808071389610565048320263209293471557048933025485792870228546065136347706349568643144358544495880761650466379346361704792132591226786113114870695298396677471818459843247370638242400163873576379744060226349619073589558749487075275675161509244532561007889813961533065492447992133436139010149191095172804548989398176979549234739505337177684901734600652152924956853603914547042550378537930631487389417381836583158382140644760746392966705639636817260516972497136295994605954570694245753480340945280496122724713135230951268588655452286836028906665679669540464276171210775755443503694053653962628885051366109227740325100718875511387481216354264053512864911090677534213837956957125386470169502560392087224698931927954974993187005442079528323099362030286154330854721912629757351062379667501219043619527773488619365170271189228887018566206604692622838585932177836151560366039297276723035148386638962955461569433784010638072018479603944938510331105627306502026612219815054581460751609337497743662062105976337908493176732443085115666535894923226403821242029909247976560614229675299073038958741522332678175706006581273065056807643663794309257199745719814226059196982086183726922750415873423346344436519484342055108594399483162724203591061973981224011432486413127917732849507687860249972474978186885094848776015273594839011429568423032238148142549331990806778878001222426538805591226674687433997871061201805332700369300649683446302689021234226019449617852522117603728010839313045776307386612242710942292816500609230466047264510766394012188283705682035784573784184170643717767294818849439558157337916773787418937492761207342160322811970730098223412742429219706331986951764990358709062665782956855713605268898008228314235969952492706474065906823891252534480503436152772619958102184542125524694696586960236123345426381543258857063837267600999619732036161241194434633591324261291975279898962404986617563196134664446421792769481835039794409949885714950070371317585583288057986629086425248484304334941732328625868585348805518551616256620881109186840931040210689591230289062873449975628731531427933913409477920888814923959095961678960255901292945383481022974833413458295418777967262616033757482822126325931290285311364613004861355605738290670211143683348734061752882428487436233331263282251702627371605046631892943112634110561294021887871209383935837473327241628677787209566267868182201826160653414053294607021735327239417074684744706068241298904524382388573494343436201948091327166479799066948226619696909236376154738147381762864405526562609356924708037249835326324766951366809302197272114863335974496712461577910089109341537970861610573688891442969484282010757148708162293950665259373554625640126775782495476637014245769558152341484480455193368846003615535855025216173415401013187666210279774705278500654428292368985947039407774769428556556883520524058535443201587698890954017369586359329516223117913367125321677282226100386826436220880019038001737073814848561744040460803913353664329444284089311156391782220081303553058342576981566838915964319849320832277398630068986078276300796505747642653844174577578583063615294231227519151856128799551044139513407034921490327930804665478649253172957093638564611361846951324159572107937530854509108055540654505671966191386204472490479994837802707552703609679077468821054079240594178317273233070012270337046237819758260468346176045967617663295243462287521804829948229716957259252618876312080252518678390304734632785222882473131377389402487567530348909695665182073693555791268343159475584689601708879565321525940056192696655361997240102021950480520437247617479512228113133038195919687850901182663826229460729216228099564914016134621078899026388018211166037787626723101926943001762472796364386581170197998109140697528520306572351801758905896266343336612462824847833163706317340125581929801872677191045427636708435249042968722603416560906258108935017578767339062661880789883024891091370743238965892681750550033643199708108805840234980274184615161358677454373933499460432795646291608468293896165943881289454140117074736133027676777918589631199074455690751144655973110068113970700264839094114243455600084089022611813381021598834638523544915512224600708895717248427877354508402305455791523359864885238333879838992642639391577303014333110987976937047912665482663289841591790500899513275262271704612131887194282371440766329042691029235643955342352453386747654277811404220815022906448935147776634537638311747967753789806942973352557902415446939893766367646286730727669937184934835446338156551105988752088465973217379387579763754054015216160240117485016905916864412530691743887048108324889647265018678323577226803981981809656514703332670177919638030403869431003757780375643469625538364512917026162211859391580989549101942642430037640882902833503007602911347400805553512933322314208525375693321035756016372801053348703430798282649670404005700264706330338270944634547965456626968395161030855416270966893894658697701022360574891846776428323684968372550881084798759595510604205770850350592448992359770713831128933375040866715708252926902090731675740344892490905510261867012175237974043470242444419915285559923843823197257016594873029282801564174061782411504384556417217355688244924621374441978799223054442320024097346508894751717462520872291336813394020172297549995521731498641475207890752886678446672345263106555889523862974471682770563886909062085613833178820387690080129692758978043305560517120830203355232816899973409492248752767450595983589931562789676948972004934194769114205192607518884634422146557403376422317889308863706217241280714294093784074609167180472148736221274777783395365803888871824279183695043447696285620019242613556830420900019909240211811128329797533172436793219396955656838748670301003339704033979101084731473601022708049547900946311966194138416950812783595134379794967449359186756992761492186035428929864442825171867614150412433465343140101409551308114322314689007454924766229882399006022495011821337484929958961389950614732301215078822296781488883224001153071740784940697673982471617696863628828924961854957407833999059306805040094089063505033881954584999718657966131282386735242844718472376453992306195799358675660271790757610607216598638047819650241336480561557137146592503054838434249512846720831983580711812828637999312966104345897959474926015827710848961014947232324125543418145031258413391981209028829714739997115003054659948484402794550083323469046822347216354867599277826380314328038829017106553353369828415315357539082976307790432851768243241177942612943228734289559541475184481862694816446596050377078433657396797388738122239962800429134874107842207589992020745491171610951437470081146722779110181687545549206321774517294841205811255801673710744121102001333934220397105764460208908963797068218236088293141476951166423976576658243377445356488521319868446966770342196174669348938910876400228985101554736643720472246225298863610280620331356092520044625973695176899348424292918592707350562846007384981038301627151513628622292431751191370497637554017246049620930404486906574834233743921880806335604305583305829446603323282123897883916544894855173098056619252385967573794820894852744730850696244245546507026484373281516916493672347050756013671128154340669591031699674894604315593124487127627549581598628567720200760919562582229926638275141261627607030538375868508213459083225451106319588700586473311271362628667973424572179516401597948701521603032265281515207585466011878096637674638271300046901300526995643074700675545862733971283282616585177510135853805389406015503516120987809512593287372352270443836509005003268989652470256119367080804994611025656750509984430508902989353709878977634144813517984582322755220290096590847590120551029650858190367083745801939855466259584546576528186250729640538575444891919754470409549816764535610969054600126115712033363898065866681739530573727054704743685719915477115667078603520830063982817817187178860863556397533475104348555661306644077119473943763255400617307364422894861568685428612070725868390394695648055444473030081046281934678727908041978298755320556288974631682222676138287908599032833466440935286392189411830835609325088305006178626183108132576190706538347466026327800688629398938760354979639688523897488536098347556658411779366549213893563892300146617299149804984142532213449553819196991419611011550827869219958361979945389801255609296801073663154584778916842666665809931578400913837062966887677639928717064419416745214961752829948105753379914057951957511348733620098211734228843806657715296144861910490129158404611221594415340980172158780082338732101492345429577314150638188245976757393975454598284288696949936400811511820557968848185005645129381003473375305766684143974990151700483580150474019729398383687590522727071246834285882433341638188210728271090542726122896293930299869797356995001506756052696407854854960808275501287548703595882709284339076311983126011728610523911887223876539819296027301234463922875946294028842014531115327007213706783445828980109256205843680148277768445803930960212665453922911470577321614980242773970789823595237897967845022873359587716681879527303007149220380913504332735349574199868421928438976323049087186049526306821179418361993893619129894154706748253526485113290589452790456093228046765147810367484352651819910205777327753278529311602784715758566813594474783460495766094971953511526581273978034568218839029834231791320249527646938744958331282401468776290613131974984922109472775774966494349904328247735971458496677549868589244374298602827907519236991202354918706333600656312056288738029012213706739854376369957308773505055007705839169442440279115173989923535442591489132880469309660544557799668583558448632339284685042396057558281706176925125618722234472160402526934658452336854192830692681219743647823380308234795867544695803058700587844053485076494018070209070117850278636101302430778266616650678180509781022828918177640146113455365990060654248746710289467556122378893844587254218526964043328849052057411894911140195891621495211177301294169828760855860307942095897283394602021658311405789880228587458802960406034381916548932872954278940034042687359157107919619865017357807338358658543454014654477734848627519764084056560374954332835622623863523279503952748343030794718030416270218103291965896766741180528062999298152480037507216645446938967896508956689366996874625549499763078301043818093691519286053018026002276304558827864609987388327499634072541856850908255385325265596310716388533143572243860954237963721765400848771041167841599855138345963917773107955811557411986744642364282900886840342363295453626361605243323647603394718983532279375685516547834519355235805979457811887147539275516919608340477821109705106971437935903860258055904914334265001361604595990702526259373111514859187737260955562927072640567502985808391285167132795239566460917822634455546071385479673778101521686295663870456933336307689097217194293744732238785525431410871095609931999139901951930827280921966073060538850995710705663595450275838751806904266429506928208804566779823433669546901900574952473877658323307415242987645239063246945209805599584732522888155689236536871674755709806448603440479828874571177886578200298998513678921159435688730409421196211965678994162982938032207969872378637306259813438497512399300410127405712897792304161229953201946896352122436646932062715211235704016143309142408469664612379455597280778023294735081018967697918139456578302127980993310845566747281576802688914783760849855762711751798665868135814332058473630146901380498600093018126333467720278925683192780611491427582375893838483715268000714156487210872521872254843485274635627033490846260229214100015071454355064903079833406222464611101966339696620579741174176838320263860465945110495578218329819600836303103986330570502678574195193038312406761128220232016182402040105077541411864907673075014854681521655626785223481925467417894439323833644169174394194033254535803101368781512394368288730189139175755621551301741411330633502801498513806069139080734217191011311823841551564312358443757129460279009013428798632317498655519757588770074825480020331043764975543067370291704590855073682000174458932924389390719966086825014281236584133207727229421822104413512370114953864719997230171442310888848966081472687164834222934457946925897922287604316490901808737679265935145467962170846933327349668038404430484677372630112282582987115496208063252742065922320708723328253287047219449509173786719437596902010698199150491026590298956327190519604600190865549235195692608891957850173956170628214089880013717620150732907750592533304967241314877539028937183093708581162247622810342909166297413663712105078220420720626246262391373892552589311853901668698794903485537616758842718655388429125667709170275267375653512374344612217540941670495620625275805731255160879693244368432766253341229018402613327188767610097607831244508263056028785610055891965389016183487486398823588104097326506915179026061102676018907684177275783966303789305144453688197448765419027886477823625824437666753843670983812683120196774478069446904555492813197443114114425641837207129197744517992795636009854462880061393045908258789689752915733783965857557035092335153664973651460143363805717244878020772701153891966250987029930875082916229758874876387006602457395388084213604190437125460816383313571367792027864145333815474444822133758976810465165802243751315610777187669573015803319188756814180724641229422795100686833961524427280178349191893695800123879508364632471949528006098700096763302603116761541045921994195862072443992002473959768989215017159778722244425553126425968992595870972180901515372313757246764740956726411490795524383936518210060818524951124508046717769093072976403692243482589827517564100247386512656609729900914173875102446933578924259494395495571713864900753164893514862525408958116319264916723780357224309849769887472681133464845755235710196131343305805530588739802217302225931337660266675280977361899695870584503042620301378151919307303130184370276619581190624357495463357110301394256754544700956801530586692460930269309235276627041705270494211362095862736236710436503473262306276955721240807246593917128165262961408025960333050983491559165674655610112754215537438176043257812560940455515056681714637874982089908828756272751285004285566745038016235884560637093505156462295851842183209950573192003905716529204716689076852021384027035620713156890339148902867117766287239995495698670872433446044405044674169099187472381826236589369156200745599532404176051904588838546490497844400984084126772925305473425498309317084645488482878962132683886082170419817050705352358743287135015955171114905992252774398732419372390065121459061108099525946899342670675032123565530518621963570661460592668976673750827795305094883753794590524701324566063566554116018183655926176223474889085959888878827971036319981754489260713306417770566228440387591756003028755645342204965210995573853273196404491067663423259060082584091959887186209082747730248357764740385587922561886695629446044778857613672181736492330839168965442155648097834694740818640525958373539963888918700425630799845087437433271774707426282168853046584527557510500556307761882389381202039916390153092103665248726830874157949663102944520787042034193029950872649313209574767515065082735425726567013471991824524986968976841999227938915184916409908843130149715008437987402791219623822936373142498020642767684380428761379514654987503685465148013334544056394978014606807986360609402600387860393555051459989058509675674742077562260405022928517479170761749416996527449294297841686667191556627117157236721068926162974651473953928932673268205520123441334466331075176909865181504904566788992369070082419834221861994293197212890610712371783646266625932397205333262501259739593562223226391125736265647939895235627198271647507995792352063716524244569787894572084858124843910557777925538482584403817823689373426840608417759669194218802834042380044831019811814566755716853330109273438438307080919785813413073626205121969275550222165713837607230414889159347908891968035912052725768227936822759184817689850192214041388821520303765672995765466921995734700800130384826157486429404366381993009978402264594858109641290952478152454474376309020937988611220780128120085550319962405574874702153687069261793408053323966400797660716343198341031887140240612859811399326827069674324847905766017164596593099652749850172220705296236240214611922316475777676999257917473412187071332847648757744158439134488835727517518766822519115817695800547532455566948510889249521680184935926680823522470514615165501502493287801955042407194496034374879432123393408603174414655246273107745910524904104524266629741283284638849166245796628939239283303866225828914653552592786764379070351161347955048989853828267624592268917971246464567088018585648479830631968092553167780373632621865965915142427927194788237558654684687859885157472929179190733168508251693388363435829938731172768042416313891906871962645372437234138799374066417988421108823069025466465626123301679216640130311051284694642106198440154097953673614864739449251747897982302765051315970198148918270700640792445072094319245469566065440540551440783532293518220764439579308775648480932777211396399188612589343206708011715306787325883399149833213543791211266143407143268530538897025900755154684460259797131950399150159419692318776697582348292844607614846929851148318797837752305838889921074331772061508806012512512586377870976615802524717752184627122757539932706969781715594747189660873722558062876807000144650217254926591006854716392509233375863209944002262587074038160389232891420596988922402603275810073284620492451512478072826885202758509480307231490093711397101191795193670236602559619083978551392871504368202695303503122728807778092644247304324951066764227904899983778714378290949415879114652726998297255864497971920119660052519160871569370663410494866978545109521058604620092380445472215228046931304039241759993590791588358264494555484110987496551164953862927670258204683103976534410097991213482681297980136630159874105914864826193681102044360095263370320110460778132507462823645058074726598215254750531906166369539832388459513060876022305798208268112390622931530522940712411553065489956526673003699889828901309518227571669432265766610077714414086193734620761090489621602187165338138525025231850713791301681745192624452305596378289000455146884281432769354660955453145175241098740375350971058497246198303934072875381150838502170554977832824881846448132467752833445771120500509784044024182356779921689300068998036767642372314292089330041301175707415576460237952143436888200634654613418410412665004565743460714521216675019505837512514155785293997187002707942314220437606936395745344155565089691762057257003145233256365327875352488127942764958504657226081753533313555875088474850366608587173765225699890361590675682930698977348557189510329418092010592533843661171358744165925167382257708629522130606356876807540752055718257957268312230810657292119062551418329670545032143627872057379250204671584166820709334184767088146934955633259766110796111407312151912351269687761807360386298659351990822760230479343002832027089818009791660189711037685718612804645089930429133238904800950658799565947625459112497722440863209160045731946264124380480153005226178473055810846672878725106010135963054338447379195425828528408061229929393251486552617041275231738115460653241180137622099106628538265115830728306192644355086322900068677348884478478625619055667817417051234824017538824737105352805816895680566086867144378965523175833725124507099370887925899229936780521622759084097300099704538724238510533516197210258080314108017524934429092164644152968786165817939016980977468201023336595363541584949091508416304987796007423536043390185321903076603770860055763822470146518435795485750347951305387045827721620373944144681414461843318733622089915185347408362197125237638516054553740738701959582358383628078189405290445214732931145876453846425049427591050438022887188707869698865623649812933202960280745782537460443164668464278876852247313559931804295979396490192347921978686096877094036078707344522388684713336054259600530252027153816296457579730897166841889519327169769059615527518758366849808484478258607468063134792638015897820761688488697924759980502475012951325433380609821314941694513216871405565540529140351668645643651315794967384742733434621841696368038217772760899327374413433442952603546970322082854031703759090108549474532877409241803612842822966503338994028845942149784880133039725626931544123734223954519798186058415373551027278977744098975493549304291412523164972756239452201653283648563885903892748815542146067686721889223461288576996384519613049956254040487337242067111931847384127384067450793028597207580244179711896840650231006069527261890900763083634053065232517445062476674900231064585767203572913545489909279250399087523865898053584222245539436370618022260693486671211443207768632484920454820592379693609003541867603132264562422762909378438170847702820783568825289104660866566194652076685158430464107860496920645449055324504451601239955582964839497972519653255122270490162621249266873395230477769861360823103948564976502471257910749065506378910446781070965058494495769642133452459844791836047543283556085414093069184690134445518901331471427849182451415777001057926600263116837218301993915365019370328676248773995695168633616964517778170568074747072212973169021639757685396857462283020562145827059508544405078501079559532553511076958496221477851551026198162452961641665657445496721061652324578746609535795669653650870365469751637253445371134333625272468022683987449585650524611656437841210413945734665498448931850927116247602636902338993897387431792393024180940142005142530489585327766695687112173263445270460716471352219730567596871961130534258772092243656777754842428810797752803160320334829835918389791274795091652456554113645939685440144972007829942483738071064554171289658062585169116202658540749430830509841891244842558531307796651430854883549658317633228394592441506307163587724398755513775464113319592415601216927041475824460354026097691616571827183041080678158041800046311287333384648698988557908757446385384250970271611743886117642489397056848793375095144845455619300629536950033050463297367087743101641727004181503697282455117833988019721714976704099971903773642579152913898669058575908016219882390278040959735642600190774124321866044685531513020401661616400744802068539676744084939613618373522257174423088881660060635698596025529198238306532040426512480698666606533507747485902298277963052771572114486921049995369093559696197795485576214041905767339440895056976244787701044218317826257746503259598771869505295041507294908403625270700844573593511281966094861628362653886781248153123585258954824997550434438945587768740153958220059139987694460738598377364568289712232849656956532630375710907909645844767869466118882782581443764958532575747673855282609380651204788495722061338418087194943100020271745636993135479874486387931773829892464179929705702613946388663143793577710739787662291509338705130185358367827112297510076855517347497849429435522192473651899537586266414336887920635921786782055148208669292679082533874855012842017889930051405126110034874998962923074357174794894800822695706836829999433823277572452947335829268817498784578013837805016675171709335865842894639330749486141441442369643757575399253084959303707208432320199329366436334011509535855844547494887744754097334422088452104079453726420514388118174440779968333419409099177334996344478253091369650778606590563474793143523825526181564464367727830462849157597546532231298294571802585053286983696717852438858659209594933638721872478734622173090668095660985975674660906482631141140138067469228356486088905431511848352054333869796487951322383255509307136525833473756461297312093536942759987668188318052344684921203908166947707661730730961664996611763899970149972922222015061990412457964295930353527700014737961165874860472504229103644938274294580927849251017935679763909416876384625575331082417613664492248213189036471596273913493412695420355447449646151500134908796376120037699006468426672428759195087314251250216381955601390677947967722295787360954141430615365598347124573997178224982858257875141478589687926747506738199360149063371786221037211023339553673720594358247558532019674451023393675146390445221762118976490008929988133399917464700240743025542664553067488515935573120041956581578120965911240208648028989264318226634724584829284859623444181982981533923508275279579415170983224649802760743430977536166208727287899774267998893411156186566600827736050698747948468909762856611517351307062336398573207943625155056728758228525028749885114659584214278087725186912427970409949416263309649280308438076646658574784958186089452033681512686779041371679514851202805402227869355776385933383980381728617934472195763755749690135457151042151351582309794314441690431847159639948924369072644819563096260090150944977178889190895530657013670580081905181149054668318937142526941944157891106632345417575298170476389762902335662475149861557734334076023098626740252217969459318026853386747980050778936593251433024719514439544922475417909390914668395108616927648970311347808741598561976371053587344233696948578819164279662661418329641303576250600130949150616593630384650788045689171691800212804982816456636420997696278937183600017393758722288454375578102911693703522796226847732107517968122157362048781744438146579275508402779864102054204623184709016467301946135721578658775986879720971964769221382364021294293490739638036717394191708650267998929529988584300911716074740538184398194054049384100400726386249094598796671978451748405830279369246877972866110810271250261317880319704603597578699997482731117041289591025311247841724040647131926703721384628785552600875097882116748085767366537093568820630747536532062185740040493856323490155853934820990452952794376256785071367559545172324426898837733870948621034224349100273836898636417786169251767818746611494107566018096748443481981366431266124521038665973069022006736414879091096410401916750765953050071478264105532453990078292983511815486446887302586841684747681468165670368593221938234277705037511014054284094569284837976077544301760808978244504661249079397005246463845469922620944107337089266874341470619401709505798162720029923380940904558380263931371148783930131105198591769323513184994289246658789631158472792103132887592985099999968714607247097956443975375330474016228014816986216762116573391186243224388722415648183411399498849438823301043683925915437405786204449197008336963652812821806652618048158425860709309584705033936509334795119442861828151116535655320499832988894074444443815311078386209390381607198465725001352612380369643794176745934600768225864994586335084267062539173914181419126240851191773857144975237891288811422621438352772449588080382890477550793049329347209848888482863291058229296502837016122703147958157060514955258918160306362902198098073846244424313190497596560995589849105648017332072322631499262906644506857013756153340080743857586817264930336498387884490536604676585902178015728475206672588762955736888747913647453904589719689582623248230557877401165045321396902113520295321270163213507004728417173302517713156477778188429363144348875128249301241716613008986932132786687152381506662199116594189457283496694685808629181440078146204138657346665442081455751779913044573050109299588126641352072608652378525539798173129012936426026146040450205814900934632934109369643088319958773461988687369526731717833090544974565171767089228200494407240949945389351797380290794641696509913529662757105218058372287103253900216734728936815830064609892788295326003425946559517475479656728000686371576488229705830241723742156732055804081422297442438664113577507149293071138819796638219797323066244984295989705422946372586560091482539425531538828071747181225222920594640261084859616767238189560727730551677553516264968464947069788255375749871641224055159094068266537032554349354200418251353986445480272867401608582668703024448777605713616260127057845235316080041584589329782208611813937057721177997096556602267156440378886991781632191386660427604186784800365982824363839341609938899358522947830647482636228024917703027202564522201793993022238261511312310721923585259309542775800233805625682127481846717318035010696961597085512256599949499008207865485360548386356345510725550505143826424575562402098810198492732209249817347004955254949657062655152020610787300521047809245447054878475787935828491705687517101157113696654248660642790257814834228138017662175991632610900790746920277317015455044585077700378589911085128744718233093785784600922189007276985813626162159710463158826593434201766817726715367354305581912803551351188061949643732656285119449878257086580574132656815963652271624987026189700066958004418331043612681457708447403705439114291874685488912767010009761545968138260842122682062265186174043029884516284587813393311304036035120159519156823807407220636827911118615394798361738500273337568734314701057006222976294381828061687621454731574072479962358959927601581623185598417780083227781682048423539321049143425250658701215209821923733249438175620813720212319216227876561769920427612066438884699066540805854743232517013527577908116386363184849286180779626817679678126282227021749219506493687357498204642649934897460644919611931701951647700307067258273671384758209938970017261855467329723895838763812488696637065735630581383370084938468418911170605398455832289396743249157454279400184965095283932417243162034165304037425571743923935832465871197703530114936980589415092755223749192889912222725756947502251362905611475116389918791374978323134255999911892218678816288328347999484806840490425376506294288156259340928525473904291649531213132375292785334447099054612071408726130341792353154874323118026501428985235120666255835486792727401311829735484148633679172087760336302410431117233668012693206490607975624192801007174414379189588732767780014161840565788311677446866715178149811345674392469823129878308949342946505370757400872255005699028280184394036502759221228779099788284221424041843969408748022447735621546151900009029568806629750028487981244615764114094182606420584694448667458465578865534509179475519629230527100143938546664090835117939970215713582530817440330328105342075810061462100381753476473170292899534448884113665912566101917732738120240467120124920731500766825048560481172059723837004037320528905874973082438007240406431274943831195610324784785238319079453836199126040106507447759128976055810556164310419892241465921660089833665950466891991582428826512862816446327224716990862038112460590107315049316882622558594230586486116866907952978825263551454786506758397574167979618797161405459718928628668822705159271471840596987634622236692002296971842925945851955856641880310360602530182099967972323227236327291554305593554385175616926825334666867225117111964253053920593257363615168017030326200542188463586829878532224656794518444703139043839202944836901791897211783569567263823405015657244132814586052206885053387700551325481605831128198530181969295141330427181665205662636086050961491470178577728641932711593082139398380569330376510269963391379589306387223161747756568056613248034201043006220938640956807068379516121950077660190436625120513247086196446963196418020381806851018405350434086535883622083675017178888609023835308834081375888803134777259459517114385135475140643681525787623553424629614361852763831720106609537361523094223438039011478223319188910776877747675138461730436555216920708592702484279095494363376443903712254482289057575657428459741136071187765795723293466920071942554523340459552647442665651293926910724502600075820087292517813496703867081664663720040907096723630485408725827602403374516639863162035885546008605141270467167058362120423747179031895980250257540482713021512901391073727591632315696281258221647362800907800550653309128634257323736228402589494852283835865414740905163254510301734478354107714840882399741057116186917729189869328225017766368611061751832753376835134049816651672800574978186656352323389198828636395479131936540737666673488161707873425894397860156378462127966815243282726604902768467950875893222248103386293884903892598697023278840357883849247171690558365891633091083468328739094284852673087216513092589667517712886812109503722216214510621998017448606234772350863344530625329229502287525403199186096051487026960971709906616900598339515749966061636938326950113153649140557230982753399390418357322318059458723449581772838914641661516603547504165902029514724692278047976260131769685229206715826063776865078600076610178928344111503643032427364315359933003960450333569133701599245666722740635831260895802148388500679129692236374211609253326550104489983845323521011350782810633778895483106689672878075665189203208083449819999031261534838491777603357197813934060345902332197751006427419281634120106188657829578668594482992732141129045583979828073131093720171179866702918210370470191850310000989310782904624018191975374597754757942334766676939179577499054598002787811351647001977890568299520727050266274272952730136521312562153718635314197458168521714113263020673552553261992562703076938240445165647878966724613421067001626043869375654759856344657503740947564508749977737547490153632547831786913541107390985890409979989491720821988738476823032270179147092258082958502796577837518813802966710455681672538598841275313078754028824194442455902263353467306838224740858020698121417453189514669750535598638623173243791277455257915934880125878569369184477433864235862949501292566665882214561630940036348136445112225082877115782063378910240740534639227723266614671839596082287071047603788296192524644990084931589522032113521039802802569763253853727335180730045161544001727386576624261757832607777318888759192667043851327937411636742401118235893300984272433097783152886242420580189411093471039507335305412616415930731914071791096914246653953880535645595405907958013373786017906862716880631898517415627892615999669421143724108235807633459372019691315322377574966226376653089628232009613583410380248390555502344685222632533661764566929112988489968719715544649760090810375389757940909684181349144174249333402412777007818560678157505786481466113829815249967711961084219175112509676506058723012918224330579896235871979326932449672943978508882345136452835362991403147141717468413646849166109113141924532707070719512410469798664538247066031574462463209746174342859815207388381083927624627326872932404322059350131706363355400528432351731256985326946823267202175679414164033369978208534649942134432748149114772082563336055255116014061347367896065704770886213325686742870061357159732332912985625746090839424855694180658116869407392868632180434127703899553809263311162908813684557904728542504276155351305636380273059858595609149340826695349053923544166519705405385262733149034302117693954658245111327547460090481823376342435968113915062137742853670404700589932805651597953512957277776939997846081669127324526811729221573210454866420606726831953527306579908011888623314100920830388588308713780264035750102515695058512658008750019129141082530031050186033614103805626062788420778869861469447809941989665015273114261794159721630609881963582214148619460822549421567071313492975643700970612463319064943967942277688505166518005704230892677744420664738799006305180624171726612732450830859394216022504033958412037466758673347643575338697618096875401080494101618822641669071648506406624870870587815056947227218854251999637400277673295518078810483529727330048126065597017971545538527132362497760185371421650385698759775753046486216435145766389437232819667044359868025225214522431629122266460947276711785749653119045577540569510737060463708715302137465277689341586685710673583340828688487847982957029663478329936111767145245795355550174652944889661974784582117652979965588300699797034824556076450996610188823893549560658661900858403239144240278015546385488059121996308123540349912191052343419270002697552455244153521988717047216042375383505525622093674713504872112148443744328929475694334112991208032614654051702593068731997850904615971407947814753081597981358877261003228878681805923253057022504413843791591662815599092629912480652741811460422416293233626389441154655167152171649648229346312979821198618065365907490072331025846680757100368787720180835267897441006059914208858808596414168693835857516472444245707187820939311612021307998442720901336250687010409331717194385065395902200527850790465503483863019286784166195673046753095011125719605935486809431629536795393776422644375024444692407567653003370824129811150620312975299683436862413257722334633936481905515129805896975224096483845201563042513067230702655041443919797591693225662628132451584727493111111632897561643448699657000311363254196443999172185839848018381578435247951559643886134705468636406509578018796758540947125152998568835278373788352478289884828728857219738221237215146832204288961146858128664410671325879888942884185254262816006543925130334616035059553936650708811622157350950300025862995995960046440752644166304911241775794300299687134933447247626230675766807541398431533876060231438038396131031415176512022251677389016841288510561377309457781482856278103033064139799546308873481346910235086697059759508285703467587099586835114821283424461561047896312260495982814371231136000177052166495083237522800255776714872422244001663421705820429790962537371264189224327184833896323343593243721214940830709331713964043645376201024757832930376731493807416365869208354525912132164420985280466942877756986297504852187179516275409750565887049903124853449241084764770395669361945213386583606267878143360976431851090759639811673714037832810407805797515059055637019519653231224810759827201247301624254375795787820796780281095434285483144422976086057520548582811665986992220053344189463284442177103335916719442651007770928573311269827892215690136645648716538996748192346462053616283268169766089179905137745763037399859611988139255489921134506207953973106067160377015688930415200329178701505685504595434509887011973571961594329935773682201436899977877637650371825925559938010519652868791804959577204337712374850152725998265648816979985199288924531091604760964472722788428660140251944087500659559568130567640846528274952005871222720294678064308527063740407095887939417047160366635415669941163011603364227969996314014611357586070212643115941953369940049719428199957298989733065543109709682943779453281213899065178239609436259298759546777574827730862470542315174161610377499682189073104535931925641902923674255491493656529746384426591890201221256090894470098995690929652187104290505386456882657208629940506772341170033264011602614357013142909008954859728806368992909730464035998309143178670281346541414845018886803857868937579869107419540081773748949556861561288989074636921931764140769165279189137588664078078920820249919562374977457907130582808868895830173591095880869101635925013108717892662307652500935064520720825002261851292067270772558658085439754243464077450777109355078000670868075593774585131428574238644677339967803449789439563113894934726026035329224684927628275214139823802963749654017137358299496706089911077782679879699445951324271228321392314835182678794165480876917503371648095331923692518284768764489605516680626428451001808666196617422659005741124770626110861346092997517100790234209141243507785971947896318942118111028139113651707287460033020890621679037839486605729169112682019069616257638346596795511695155994125464806793023505571249230565434389954036879445785300917256949126827015155166114427037797288244688088408011418792544188190575500002127431457759356186815640721219228975839043658677204660005339897481032181372250194432227336039037761618963232152876299908803829501170376111359977735850814964248252643843306515242943274051943136100641526699760307927272060078470730852224257366019268214972637704313489842144450825624261092619528831061559477441034253352773806853624994424986685824593582330183355526357308574100675864546996580625438502701489794672651710321665634624281445141903568370910701877376395966726546259061136721687440366758193287301801462664797048489307228201978424711792913834930750962541270433391296999693650722828683485548335234595444893253787733875626898327197267981913654705331751766115670118583936502482947648464998479280501647934641833720048015938240948179090049149388558026530087203674509698975003761402214842995912446009423411428570971624314212034490428899701967486562573508327379670512730574400637057395647086926142258918314868702167374276752578926738254341647503908320294074088310830031879295469175702100011947708715565176506952460751831390483659621548224808693592708904488152527216355550694911196164937718987773434790734585262357826744713816116846659310749918210990730530635533822748043232901609965751180286256101390162001711700938300350561775066097943031465614167518141751652119396259009013116037815260874578158751742976984564722897357910001250337856197819122959559548478770669383658241399612671898054230728052117287959037927744287249927276901884275757196696876452346914006797871551326362700616206208794151299997822371313180948309001105056101450141525148599101181133482789031117587017829903166882926530125643502360536899903617733053090778276719935116232076701462136299982580511629210207581319776203720304021112565232679843060659873921012337820492466010567708155510832844403970122435012428375078630261067921761983894592011200428622144214478294674058421258398777289040390649852173172312119373066602164690780910626959488462635543331992355319964177998249195087955481101012461463284759245202089741039761859337568556329605920441236739255640734772273218305329922010397050927009039489256101563446680930655219087421229168136282287393603139002717383602543593170277346009697353822149072134241287604755444280794429114986582848122872148147440302662544961538625421409453966012934991089298048926659537787677051177173373551097776508422362265528712303583115495611768839004345389924838883409366714753090537744401254220855042945550689592049051514136037578971901320311587429870130187787677698213817994321886284510077693222547695532590334629318476270470965208718485541685623211730146409819451631649878927833838239184003430711876023077793854580763126202672638634456542289471574868622404693207407170302965382345588279595678403754355336673758003560372293680406669011168202853159091959357470913109701756621449701139916081260122363013715178705284662236923393278645829010537275535128851236171494972087486874500690814529497976784312683869200466782626205972862188721247338133074180780554148166858358725094236180680867405228755827013171815851073342578639955942979904141794610841388498900070816222962897937265475897726944573713121297938225195549313470730912608949367092601581293677803547870995661782615292623185336926263374501268607104148436086767657029859362651044583251170404319360563167527980518141878220487852957105352997042114509492743242008630247817083455740827371595611575838297559315896009611893940049116997631757892758913368821082769077162205539831358957692166823356999236741834628020594271274460398073774754494022401602527236584100476366713380625071784849443968495979183007972029764504337174297938987209484759014587581152960899573064954752146748125931225293161034701040032802780756552707955052918935797963804895999963318033800447428245182563778017802814550453543170416304228088183859460551158991568219487426091840704462545386904387521050678431148658241444364182298982445406717700249360093451547067670959554593184985926293553748864262516393901623000650670297406838780095639534648890441734060715832012548521441919552689926082458768412876982968010064196743316655861013903176936770646580183381056301169508003470487468463634381122130138522782856700384937340505000825502476571033478449276441750655704908395709188771387471932785387969333306225285378819880103601002783772630146609626660390237837486104217533200087475763930383935391934297711778125752902465084990088945916987953400258442442172065374109556511193920630588750262558648661899002980803691855520580085546642797914265245513930335673790814915533865162627508347165268517554105754478429525224785161538956836303370533915943044559933439608630137351230419616688342992400791149984772259249905518266876092982176805415039385906966658145482783949982285657073212570707186049351959124815827028301798973380382500872134811853314163895189196961189929613087368245365609112926453249672303439186789299426498658327065311336657951398300773496479173799676423344688308213752685992906974095410222119965859135368762388664211158006615874684641396060677196484575948721736777356491817964344127655559483952398468887743927910205678954218356345800742373100342893792989760727482535371304362098062393178957583182455015416435549803664191143315123684485092764813721940873336509070614001999948159329308190266510407077153358513564238723898928854316929552231654823706912238975761101043726811654377199817878612554144188633169486222725265646963761982550217130066695085661760405072920946924793931859729786659851776290128389524371562830886353484255345349509677785541886477404733637033428368355957956490689419423411087905350613476656431563921940374234875561493376112281778495060650942597113433096519104709616868988957089997068329511994817750476094008018299600711098583975372198590252169434778560486689859339533874049364714079561439721720650096516517857880681783680456726583445186105520038820242356121231517920163716866536710920727075452775665791357935722414763383831753854764129033708943847591481885266870982542149544121225887500047709755546529618537057706454090970603137538200133359512742889386172153720348672338964975069623499596505150590086703935282918549633159484061145784579614363081549435159453797093075454304298691355142618217181170573196039506726084643081873713234143243618161584690308292941719798002841668498871304763890618711076095865097730232512240013021587879513007976301708876430196739721680310393242739584890770746478816713487841214770233763492539333078623334776281979454790030387131606202500665907376201941780701828905174170715316765847515322697862415153647609346529612317804507910489392767965991843186189373421838236972445306227412199346924967486301408973703692901218447647867379139278849670384505331663153443826356886545593640796763455461121573599152133925456268936310121414597894612206170348418100017433612430837372160044074565315125447241795610951734434966421988072613618129999812389761226101380525458655480606714299355765013113394310610796935534167626595650256776909679090319042765759712740183717974872985919462797072949774849207356617637878629533167533965660126158607675529467382631272841934135690997292568001654210049482849994348326095176000722570089492064270034174233562700303334325108178823255882694894418361651358767092593959820020776985317207602032365595396064425303902923118191492327583486181335022102804933490033811825913159039524250026870249457797594086031668122075546138742491144505483349317681649483214486667983952547125299183634307448427430554575494681699350034370640693471784330229007365949298144284074707578722238614297260553071154230902192438574994170760456454602783466307817124243967530769760177264018551882753481160870277600427692997373731109281397506497287321413385607924545216025292692095977061421020909442557066972991195103189004342211942256052086056969256196823039432071168069911777222487990104585503143298243746753118699436649173267112873207502803680515531793682492063122107136761733017581156064836655206454396234026259128582800729018959422341989202125302008317393330424775934732095986459659980535446904824571101795897196336513401686044842807231900636827841226786075288710466247484082117415448753419886673629409349959584911982312200675369144509237806180753899223682176632318385822737040328902334549296106382113868109780849544313732466017392931732362961301868571484533714603678823917682901715758731635882218076752831084606028274683174087636678672714362025276533147818842215063320002180121505530283385041255091650348355031035363753123193248641168077778952406457431791234581941489538275623242898048145582105023603570075401134844068913737548788201315926885470592796457460802870277613561186144691072987452853432955788176477312045125143037728305837995765753843705905394777996737460491882040982481382221261387456223726425516014139377712949042014016892394452721270778829012938805334962659309145516296741709533916099112828402487671145431610565451340028262608092288543119917708940908345007530558827304672153867574553957414919547268580670419218347464860468687054082925370357755095066278645034676928394213776508650009956325367785980882549114371957232537019513915391195642475721328882307529249013343858436553010359136908404570569102775140308820436480055656810989813537172536048665901435407098111514100506270549699375653199815397116024782243307273719699297836344090471424032160923526834282101409370669677133607287199327893988533924219041031926259718215380436136698858546532267942689951174302564864719582651530931046404842448846308317135523119097355209700510973000564990693861896647948762813739625088564210745509686221582404756676135393532403236974401087848422934621260207053742585633251532327730288107063907551185754822592176408485048821773009814340304766593878054461449001323221958514906077742940285465541913584228170231752847481039781209200244491046995043247874462859602558728766470598972068752324876243554816392137503241198070495142757885037741031287043342899925665770585408978459383746827028755247524093715594735933126057897849577489814041502375714293080976046984813258458024552401556150061101262704693791212531601807899043743175095644086122063714200589892495589139247691733684106908060488012334542408072536203853381528690234054861603257990042375557737981176251224401833318067786625583206917881945299360701115927707698602596374333132165518187922715205474251152426412232568013748206871352493679210125683622438347123713688477711612947236197760079550566009948518258278162212401169846662527170667857058696595508241080940926389902109371824522933443489880298004634476047667086271639505859973386842110476268520692155764286302090007024233499107678947674137745553843868601986932960146918388774257071291257930083146184937017811251386918377563869891092296315144886725694357591176042811197843697626327558643744345888770410009015528998451770956139912887582732538299783223506306378741436448310466621725084559866552000153360448150802898887183097706960600335528812200553227104219674377355431380496961689850906136345251770907300175444668293848756089970525144699032217181740993212232410270533062662527360600799771058800601167993750606033337050207929656366119551238286805814885488825510793435042858445677186823907220540930204281870077860856853926059634449549710563803955773924816364434973715776944221539275130693665042590862820125704163980712868358027243373639606482134118841325152076329517947411280960650127091027545325852282066100831405382142826001724235418444147599034449960060556398468859822242742500882290616401128498785786716125367737780724387656103642774637986904610286035842986323113955294720799177042542627620850911634578445513687174897286317339800743858839725541967449315422821340857448091645556758791078809199977329081147985261883317338884316430300845145234644220796722246822882521799100050300020529223695292804405859469568091590002038355399394045759790142049596506218872419564698973157565655384407689007291093334573427573022831742917099802408671738175657732777340284383539134750294234901864761472232981806248784216672504316823689072033587444931574434109100524491898191686312284756525056066088582929850713462770670466508519715660432651981864419985032705738952873846431489106191370914270193375337599384622072144353681849387430609214650842949109559346592416967561561502160355032083157140287857282621033628355187635648912610225798880358862183555363689631390401798291914083436107518513290079856144230195899058836503651031020116913702053208471260882302154646688959014212335576737147376672014519180291677534066849807137674920877563859124360125337511385893684910423924093036832880284355857630206650243993169329435239590041670835345537631452423763365859355331927583716939438923697403820529847685070336783668408309096369199269786359620776565823770474902764480128729542340954697826850636311735664237821327207474396964057515899000036932004610242311091739810248802752065195551807476105621928482684091822491772710344447474281216821058088206719357346519488522297458193472239018984592170596328236195214451462877921136551203201904165294356532952481087281337014907312166720909412496102909551101716088041160634007632673073214304664874259061726296223472456929959171426711070666975403239114423038670045530465156329845073963457045842742853900305333827409606681395204981376632212952062308809916366173335422103392328153409984715368631765525437315591118261949997540578858786100618040636888584014514699632080366458175805674786145035091637700162175563358047353311118985257470964000314774797922599827958643956671581087377556026871863214534985287532213465075632552559891808139908519488241640758910789384621808875936146690994110841864874766849638088770720123106051622810021945738930472280032341961453119897802078972831593006332679189497307299720320580622666587462088270152232109449584285742592451907009177562422423553590414975718165853088050153090586155004394974183100162705417612088939675490185058497846999054441237978719438704279549547035915302046056485102621294812343350269100723047541414920476421011599180686866485668427671069479737126334029191570680057342595150202807184765662613528649030619268996832399601664995642194846094515370124452229378573392108183714790039352474874021084436573638781192441053321616610132675082167960559044143331546901261734903931651697124211946049226307288237499262993752078951897500689720602086630542722342225032238714654472379430856324061140777177541891409910872670749384850455960268332805283833697938267368502741044567597952961715147585019584073241762552971990654114053064064874528483676037588884789014887709756834681608066636581468239146682384032083103521079308571568830623726260630831482590445477615236402141292022730918513485014998273056937212167782383563319440474835815785783161181797355417299251897930652682407970507590466213867218192077990330508796848431267841779294617481831144814313202345476635188445030670829531304972964298551989907749616144965139993086195941259024640261410893949682800318438475782492686355381619312391826383882044031139987463234566626653356540317534316664778411607369702875569320996639153595983692893866506633460747627012260070115893197080138922516842387837950796671501219267148568871048596955480239022591392749349588767913531298260812440977081074271113965290721135384176267045907053526814169802303856175256142185438348150577580890108088231359551126141369541815772308242928817177439301136098995412365825087661498457215318781774281399615103692441122357271382327424720586937106725751362902444427275695902051693905044500107436723364783840312046707363783628277497842718339477851587706435148802058210091499820759111770937627966216865034361221132161858415333137579331260175715280044742087549791278142543792441006099945256173675381829929407882785288990919154822607349505061335291009270853122859028551324127083734713936477255768563005122710313819669223254951449585657641846724872140449972822256468569368437622500936089206279938554316025990687687834965290939276048055976448931833859055767416034600291448301128569606934560483353539643289515417264717901554431341969901564530095784766932005176318683250307252081755596529942787906688643685421620745648905404507420846646455447384323052608985590657486445752956999633376153910291866621840212435393908660917318029511921476137053534326247234808231986219117276003842102719203861381282776746991872091120938892841383941146101949492263204886927819472653892498485901310086394175716534025135178732340975279832154939129167360507460268946771407704655514571446367593999222242998722125021007695256128134722823532477542642230634460718421322982182797552595419291672009744690867862594114448880638883445848642244779382540587356495391662194828201875434348607715754569717411670343277262996473495136697512654925462545635055151964476172697801962767439281680011281277253550352177940948430650873096008222489549394308499654594817352840200409921062308699341571135345388453725595285050633504313118484211803206123971970895777812989448149388225817889447028827814826806891032108471795422764580613819354369071934126196231499223997519036810994003462245968083312139164038011855727993130014842642220181043049816747255883929547528826810387370782696710714175080710590393944126331045599062797934798962932404201982925219848956366938976431842235740244622789715286962284907150223771536586156665693363760114480643055347313953134379993394159120993695483452370781036206408011074257708834585965000908991106806611533033049610140870300850877649146442763640742567589019014433100207522060125089786685565054649525072642823768184574416661854435284390377841477118903783369362849643688972229219033205489885759088172761657909317112126886711080285892208304408905207976388828834850978495173200285945970839944842494364526849426169078074176696548976712533718045103780379515967797452817125907701672039825314327756131664716497095436498296588284053938166206662868155823226787465569058477879282812577634438603234326577694506802463036695799847390132393677512761058150525606267103204934051515635546985047354681214029558577817997106803044076132585427278839487515406561805770080461619597603709886723329502238305909476894934244775753554204891659736883545422815525827802362711194642191199604849716942177864607923906002552357440739611349899848942862051850242166725307367544345417281141664755349631980586933763570775968162324102524155886655074662725973412662759443378881993067262277848434058289109325002044593520334232609054953711447730718345700649846127011726911221669286602935337247351443888804593328242092986280332671864993301792781104762308421257067999581781087331845212587114964844293876355125309230953143151154667560376107053129279275615656378006131799564359191682122506785741830151841785419394191602416612821849634232958251895774113970188334205017098839831229836138621729671870747889408846743119944107721518768974884922907817993380811899168495225414815234516063295116963322013254629187916053301993995179058741690297156809940952689357265875245096274018458814729373262149319504807377787886332358390784428030227576069762211534821959861635972769749153545544840087979398862135225348018158410636764936842517870151033678667083898503231848504831652328375531690086408026713656287433033292361209893085387005097364462475962861081742414371555083797104110834809365948312008610250788421492720032063265343571363965333693788137778994310540760402886457636627671330801447845584788270997716191913744362558901225499606497988558411950340227730867165296775811623511542022921579325579241728592187392285567684327490332808131167205909744422567692168043023101236699923079188376833602865856791591853699192106932561389437390007177278532098854945613488695815608587077749773182752136719967096048915960904478849986214525339643281712444739125928427492347194156787308915077849679315174159467474779980145508995286805828933325383598489928824078006536496787895313933301359400460784102914975772179858813375877728374887596948167722166469712579262279107047401891148715084411524956832933670831596984142172643199449824982440832696435479997495963909120001616028174750232503628049239443016615333957747342182762750302391842536619236620808261639108190618062348611230067760729491423197954649033825997622592555587665430582154317616347194489825131280591137074057420974251970870142962571342804250582578582473829311266747500508676344784017250071953275213004679717471889418070043296160848057569906904692550611527336122653456595919253356006809908843733599629246638887556683200022769322342699282839894349297783785769757889131795760657003304237003610112780455246381748751829585355493417532228965901363389563035381614765713754083893510782753747295042629014773481934479416579935308004176713193035479733157715416525030733598165622924938913840077074548837381109065887085304788116071914796277451269316692259402271027159297979532376967388419935694029933531507448793998591353656661076196999285718130346001312181891446710408602442952583621804932214548562296946183228806653291751538705951832411109082822483398488841702619906734119919538877276915734624525550190464812256458767053257729310324235279001975057419978085071687800735868813129496755859433427196314799822824225576233523401488355854424063756783021756701019111908914621839185631070409907132035431849316247752207037341254675712416003242207512875454027699246321257990486085341361582928220863002200592621334468157614586059505493634753417029023454698546053482021695225412099762484011617750862507873676539221609393323421171054238799166305212971941468483278204271212896831131670593286588730560434703659443771708623700027133806764713209373054844514103444390382061417280481740036872081168921678208881723950304455825339611633152562165820703479601790032867682830831424118945135520930750410361596311394662931609459370392748854432649166893176819071135296167408071613696737543162763035761071123368659827002402497812985961854037767676985890634434648983256967799002311952048735980676296382917284927267794651834040551491945940741419130143797485256239132156432846749315190545476453965844028058653982529567540412489293150446816420333193651235295357455753207073550310941119602167028292291604141714905643645481298153551463898600099298488579578627358801490768005928599457698269781037792966009043342135326069243648056547824264021941702945690514391878240157516645956148946470041767365329873415932565961913187871490639102468296616999911092292097018170773361280239563817348360648778725280383207406005431897225447528320842834465941803798558373535591880927975023484648295390847585221628973194472441360278021256238007483430734164625632697224530057673820451331468109889842019047056183489125690606958250366881546039446053597507975359139571126529056806883144870494499114119783568411729620271510369007728946173909937799939987098120670884858474665935604595919111532399644933998458960581147594016214772928163965295106916097045593046753065884062236592300771491276122989406325457795486456202632243398701311563027145145624015654131529978504504805737082275595178773835678314077865702945583550882402086892428912596376943101530533683014718173227109615828620257382219101551920940307785247339929652324460179346351281699334791572761747598293871768444093571217585500393507933347655356652767233347238883349880615858637356050686885356264831083995190014580917565264928363132346536958823111012045972128819521292166480065343270014345692529359748281506164558366568849197527469141769928886566883470344822053446012603165116133873090663577325166346173534874306615408249077143055590380979230576018224369208633262940148864929855770182176143878708914913883670472365555331767665936789473825818998517299251158318241770046289944280039395221205135944790073132044229043806628863628060617695743512492553495775092589711256986836960121280779372005858536737152877654590998250595210820931379732153369904216885355853866681656012540480841977987418648571705827183005923381787899866937936610760187531019535871937751646809935545129593899736051827600228365765528551408177881564179138481854122208620442531457937416726548376243068874862926955012805872519664186848370208375235401666298985240658408034870551887099890167302825401981770257809028508075776186348054373555470162101746481319404791000495358212353311815916221239217114018111511317845428674974738812758610804199253976390915108171096261008644744283284768442237981753380331109964737271440090815059981625919759723074969908018112119456222172693564192767293645999704580197080781971510339884551765279937410255200082596445040082555609199241063367614616184906065428007127353565802949511137114337397600670126243114075559057552657210743189374602873981375258559814991379917098634915417180006192584876262798765252927357841507512103106972126779929441797335960082535659760811488377376691510414193461076096759226210400951181412311860764051274358932264537680009771789352698597153391004044713449955906761783367822839189105602057181627043962751804053828755979908709142003257027799684931029915923544423611949913642618170209159237991182660721376194667090163176385940399177746342149996568157370802121430735659886874508766405683462403741595264601196306398365476404854278638369150225315336961967222036864005595272345904235065300383255062038662495168057548878757143624653374926830504084116677662329280514637763682160145840495277628844098012882529927577400217592682014267256029354988269898630096153966225429195406993386471246707511031678415637133454869999458655629623473198845707042884482792484736690644661343956792524294100355872067698268642365294262203295543363522224389041882122210735357832404893864233340544669298186393248140229299614339090928053426971363919120220393443519943291400504929264588197047812164075937180078448850218486222686681322190033335504325101899994640796421143675967993242264632502733332048382703386043549853386138335811068471254753442201719955518525736093901713196094384138070091338839099204336037152386646643719445400068880093177981471444751374888803676062532658891702684511818814422277436895759512583477903119404510717824603331255866519693339940909607145328369786118230191657835961823998359750024588495948650066339634742676745975867151802627293481456785861058450054204155483921479704172456729449489788497193253195503224455269043133826156431557374861636247684422037381349593578415116293695548715633431508708621436235180578144624199089359878769091883499289156383717442776970624726175976205460598162362191757350637461545550274169105449770919620891742662705188160883872177421007213598127333965029449428150274183944457570830195808832103974117870245101247436630651186038297286011774601797406876687803378090488197889612121244442767793369265437175946280428925267277723612773321556729047078393540816903835472101789162463869673616529692884473812231886184468025600244729304232586792065290395852665614271316986777376444217125916445412536945721793460026202455138539655243893025642885314390994853132745615388420987142927900094644931221683147700754933329476913925783312633694009629797179519706833811833150015598019175025991774994630862167533239412835842127557187382550919111772992032883114265090662354967244365651336627262660057504172926440885956049139932587428746314518648280249281822114395897527593177673296836536232445832782073405069825642326120423840812874901487715421230277170173762173977099340024538639501847842989949358460229500469158540203565825102635832304140519412353243893703619680011665574654128431522843237274594271161590664693156459317283178106442764286086695032328860782186594868316094915823561870579094895097750195770861526255504922766181753790531571032850774001951577702504706414866298869579813583573076451903362030998303549679555752841529266688016396952131481517135104564017165832795849342500947178878390926193849396983195956734460439558071088697366234689525526575881074518675017583747959648884346093056390251172438891264200632901912094193159046612400701183802101142799456981835871204116353327179959730763899276579420225002611825583941999506705893912500266365503222246573683311417870551694985499990944371693565995561717756049827916778664280239547675247621186156220880934089173924397386446535983072354998712210544407070219617498396753759934222728935344101815316322796675378356482559385772472900011410593085252186751141607062669705944371841220579748249502337851602969250153837207205212285679915639049662497889827977958810060495930884370383618444598905314426633750373122406072232512406207168174187543728305681353006532630400300046083690966273132821824445126987395813814925842409666727840880638764664343951305602928256471031692401428230537428239987601300883833284783988612041242269923503496284414255859721088385416213948525895936972424379406144913132002489875432641720161597813016899173311149932171925226703250003986726471442625742531493048816229238370592558282143327704540314127143136272933549360454570494452263338221510409746795485343135913247451068451059959776235414655479399878524793389536310093722357609178259339092574136338731080649683406799546584635076716542121166665474439871414416269790086735532411470259899064031024984451180551115100117779434637382477643450899769615483035512140428021157946375486168033476990639160140559859326995412387881352531953032947050779314094128907105261582436238905594580887950646725838832728509540167868064034559647145373437170645099432785313738994476834526845686419736136635725056159392322665745322544692044728182172870311358886136094343507054994672315177414224620123774716632895395164278428942141013543243030141066515056361327855566184541247467640832137612982267618407258430323316127441577930764604586745049669390994635465113231114668953274881282389364116953935968398628586425128312093484145831201238384012689832410237547463045568044283442676535563637574407484324937842881344029065073243926918484532473970239469037353732918145178309406497525680716747596645589656672977884151707147734607730224329841500231988131503965447763829198839357944044674755662210818823692226893598641602235887526073370966259537298697074619726550252485010896204898155771575698494820119300719706448445278606888613432056452466554613222491257940327460981394829724821450284605639895976840003071586988373725800096111705606258254865066583652008658255630747254692647132470207570102668515862382879664134690826587835462883308309709142455882093869402973394223167153763168320200661441095043520724221592280628951831208296234819974857971788954747535465151189903282704007274142466346569567116787416005873883329441101753856324449071055360028468004229919231576749904248626309437757013556915912172138743285899455514567700995443720745234898223283355985083951541137728108204526858241316659576095088125901694079035393302970627695365941126419048948843745908056689252452642914515734288399925774655109863611238181526478109893847111375205437634463386643939415062481568004232312679759971474520186652473577466010472426454104045906010989264563075469644090789578030607152959235060678079231692241116276159404186646535041444160674035532522401959408591180803462291477033286073290011569211549219256001747496270978087163509483717933516485285196083216860249672378050388596021858453739574118440680243218681231890548545966653172092169316282621570537597265225164444692015512457066495735498694167030516058913656622713312156498426687917950544385574536027175100368507847825238731734776807945613870496690930099850404712126718465777614142235875282742532599416467844762293732541003550249137380290957546522348975235065149886286435771216883611869036476629060140431655829947695738282903532492410394034480233262979957823939001894951343966971714553831023025412356651687498399434929291707840325149937026160998654868026089926963223928135189916038230306709855777422021374243467579248175977300820770735649216232084438884505613985253109882162959403650606919343413624163823846724857046742844420370718223922535282415517877267873645056949112945725564078549641389842496177366953339219394101325315150997937928084340595263421626007755263695983064523357629078570967480885531176285385468391391672029808325599192424394503398246306104356073878121174329376318674638751995114376473152356384392592352193791617711007355442413619892296339203236304249110899825389308514993930405614362208291983083814225542529367866839350624657897515372838066567041662327549836106179074258630850266794570771913200742623737774941043170520649076358630926312985728494987111250893179588359929320083035197787930032757655208043799840780714631840769970561885495196285984810323936842632301549725539821968543283118179783499507700804620230014036721692618336528251019070717613060356066194365979152401718415991806863737313626670169559935797054491004539339759136527364690063345323331074564623323941414380963535774769609384369499911291914076431698707569019317393139299446895353907535929359389699417625258653262882465835881513570452620379072087890715583739400274481097256279115537405011754927707894700507191422471072099569448491188903158193912134226667496869320551781302847686860089681943293425715214109183344570314126420007086591194406078828892682191176789471423487046977383807524130860095480761809113231453616850672100195893333945843827488237939940439223625463470432708707905176390177867404462320087534893642850410415596079624111254403377333409826369354455944247692762587649461748222738303219868515843195047155637412345289934575660223680742152330951320253003373866624025552477715032678403219561933126480862523226711715328290321502234516735671082572488062008484611896902828833533422306120713537820732167647997176712871974978602616337613083814649221076610225480518139016788077958737410167565802505800382781872126976675124654514663005776368782734967440189095230519665522974964229717032608060211812518741037846491558571670956855388783606532359959579152437537973524431063253271414494413466807560600413644655827553003385216555351475934699229114781578801757646065734161763096602268407664319542420592263682437215648618781536163301835128290942336629341946181933238719565155166422675492529332809706586646485130628952029857153888898429471833480442581565728256855233367581061658823128195136351816761271107460996942139767528189334771722603493551753952186555947164230899951125062614600761509172822433417993339806874312120934149693600895475427716367706190828602552953841997476839838337510812103785817310959273469248174309468012930395162090251529964800664692456212540581975253581747916724029301891778525384953448041506036222140922912085968472164424638365427063052775702501930780975781648327316278187378640472333641262316737965685453801605308099008921454305805747810540701395437505260678102880718549894696622590976734548492476963106103850741639020003263278409821556237861203395206893131012215292884409139599243771106300147390352673548027414038466475476356840399679064595959956129106426658462290543301653076502354973800461914428451871885705602281107323306212195309233598380417662554933050938621709453116845285598721238383331514317851173565948787780779880363323282514032312676733786896462215731926020339434160589643673333222376854013366879824070320645394817203953268913578167220740620582193301463156910188884532204005507196513590079173694902386923900434747583583392654482955827053602894207902619309512138483575873794772909333828967487337763427154821602849683471261552313521665599937597675389207349183110376656926182824214892246273071672313872277660387309360422561916584819387575515990152447736894453888197575073451920419698374777473370205813022502808087266799206080508754078604345741687238202776008981706222639961264895800022892177012274991421914915694566322281566410182585239969525911200937589983740156864446910983710354315994639183752953391075020509509230472291910552052074201085143318896354962401075639862245875242191790987025216857063891066198722532940266248981574312130395719156634541923494346161962497332680634150184863117497650957068532053206596699953977406734829631492615864650784530246756253327961482835437184449833537482965031482073233674237008389502398462628630828650297657348727504878313659153391917312988687747366963832591479670088375066519952068520966110527368084159562824103292576451397447228393536177346900638612218633679071230359086196882924148211316980176517745829836469459822452544087348214367245424911106636680260132942765529434383151355762306614999293586226469650368336743980246552407097026781636307505678562034140632683405408349426671185160243536854034243135575465780482953078682555846706119729916610353345355782253685849993748485494865405709917222922616031113709257820919327795008217425332243053022432792155235468967062849362276149948545060865344969594464799111251521273956741679511919777801484243348340301946248997071039358536822984015764964908144893434992464764712254585911365565173225898073687344287552151536590483096127520895689073804481535779518994274691314886322265388029011283444581377306936567164385391620102661322790281313397138451991061683638092137243819842192639422357789485750699077926594165699151299569203370593560874884094189861639183169447577234360345559814448548482949276861937107527542005406215154993029462124118326023999770562588865694658081459087822003439932833597591174798411958645047170851822021455375909412387956889473992465631365507628499857245439373931933986553639047797993239427821444009427315269928615040291929433584936447805501245219140734000996104083146317765744415464907666913107087435669328311304990439297631007539458908306236539569770191374592421708591299374480639391101662996850661831569628641719633829091431077107770013668054780580320222315116010935038990854065523950392460502330532468620787187002127873479400438073059083582562956918904116340475302216730819943763906378313485937841460759735845188952602311544006877233394776636592122772854941758746131415777006483325501175497472811426080485914621006461125794250842552424544175245097855321375807402606562801726858893240009712131534567560538416049135488111162140935545723189413179759423972321007404677233672264325113414798918570018121185623221225235882541170436898961787759444366359854945237864914991249176793249970939312845007950358034384171549794301820177930175943087510729865054782240271214159964976412218847443928463035511923031109558483134184318921015256598739313665523530040768923385344752554376876244447730211925015788026397742449649083681428379853203889873085763923080205728821342430144420321861287801231002770297130779044513192382711378225582421114588316194236059792162741192947032758053492287338140568154109505096706852264084007077548968824251082081459488438608398814362572838626693856046893686424155564360050301594877177456943411976074966964478345982656730911300591924748407110371044123167499704663508384896415204575584159903457496014502358662774300412224301198951038240621450298974637086045376353191869508946237166365009192998451288274270549243396406215749863876976375432646102115303244455154619648364757448519121789953742935428757879278047152727285535038945493455509113139354166989520549268313704516569877704100512084648198291714282103581535444731915636553904974765323482259997867784362261608923022906071423491281882726353125350216026185671890080676966336466357789922759074935950211859518297557656395807317729257087782145320421091491836527084598699467080018923490078082674060561101056312622179886395885964096860848997585985666917169920797563339742058554948827800585614269560365326887275678226424155704021941735344581542213829631510692866402158324263563995043005470013057676369234517634639540412458999253817334016227992006823815225441352846454120710163877845434165010475268085955043537557632895947475291538387934497932789186406700703162891534525869054640649415058717497310244643040052818130011013652964472976295588671409835571577106221833727439423614959226654899958864850210411200457860648794636062298493270196319491756009786132889798933588357609226194170225279843262830668368915200884412501441793273676871449716220257529125812406480927599750134019957802328206681020456871312729180373963239540921905688977300835681642370681896384230311844530513595894796109990607823290699383915462411839271497605390354008553657395781320197283283795128150473270782961875199447254158355673404733631774266233122666353077558995415661988441215209835704534450588330063984390022988229176613093398448435821500020227530746680483835426359714658409674749272122214862139426811654737223954141858331111905831178881676001445042330666554110767242906867136742764367278795725435015751785638668336750564581759281058800816623512937158090151986249259543449446987928699204573131301870865943415810591104331437384467647231516689225986928349782655536985722528213410139432209520223104127280064009130348383024387951935582010604784836954284579355587436663098146136803686273503945055641792106291739114439860045598808968695339652766841344556233403308595408064192078475288683961968948937251376228392574018782281629091405596783105684829865014577229359389890009700486926524401818521528576419832925426528511289792526938349525017330958225687305523703818014499782835882354057643954444419625390499544399372720723597340119855587505607813233883490134825622498906492758421975388272854667172401296418630474086674763620678350410158254839869305328445056764059431374715784304746541655426586197556551798196211952949426628926383786311713518014808994727959642106618363172292506455092268322289165232656783536732610855543214182035583638647701899446637498894278605421550037828182747534715487087816004011625521379860282326139700881050976244890507024562585366290202917152321860318494669398092313528219595344950295099431782918762393574437467942938018714588365370525900560490548766626717645117624516180919586501978526264605828429955303391976569816538046241374210330081859482573952180389756910094072247684105460498548160788445291171493990462803253888203750867965900474100851832712349973676308024277856963380507539601686662631515578548550243532074268662717965360126145120181267338625338892390408581628213018568774595433508130318033500766083116347018126815721830916494804656764332501354022230625592243896311349967420590768204530623546617004460317522268320112904776523123856865961798005193946516928361347456701079044651478147173601814528092742434778557135842099561168550132850083881609435230767710640385616212043999329211725922510213221570276670468735125853016547660317534848464580352061814530569185986469136550915208478354309927314119094518856680655729651260383267830423293801726017778945952400524858293199078756926108669664670886181721887550581444313181025169755967871902055710131935601633543979787300013729823326731426324707343371142685528380269070089411908405934475153378644074339725141868968283033822346658494503156690300442699241265913384467597172156923504310931920339084164556670287265680141044256044181541116030381478844327582095623392194774218022455875474548117749036124423766552612765926893128620233927870165957871354883325413056513295184084844976481428886581265889077419464141125582474581721346206103640547886021267765624767309765069520066752628573835449521357598461964595988474236333267316799012773619964613553897535202437508594593433285459480892622651082709021265745212560267882695282288554236505220023091094970926121175298378000907949902927241715360449369489932373749932974651809903000108286134991033962982556291832253478977161110965492256344710842328677142227346718670937715390813495969960200941103396128048270391097442957294659320044959911835061620857765338385884882089880800137878776724001154504444953001875346113929636661701214214850091281811079955196168151672482406492394133812242264600425580090714216528423238854671965719424657903793695671069436870590923931364459469391815497480944941053657275334370500753765927867145590266232868641061641999032430512536144636914134453664326570847559895401646961713566909725908227409393515093266848022533225036475132817133594509007878304214604249139934651262383170117522612708308863951084451525849771429406652330700773232589392184984477296338041412463348769649152496327306398282993174613531094852896037581382027599582648258556546056182083529306222073247582486712939995421032565392250175777409232998496348509633705510415765671718236018917209299770464949609298459264694909299011685623566922505626300545620964641584627709068985400058672418096174042303084667190255539253946020236996135997541238336833708923419215814562719768441396208500744694619163074496283416315523218861284487799474650600437335183582005350634469109339409069141429376058112403963136679180348775135695846517965249531307024221301430470520767675578636966487737437077688209227041154554429061660200385693711864432445881999982190567912888716856889814110473180794564084992885563702880975315108540879307366722609421354914749408354965197833333338070197555418831953174675645118378973279330579774552951120274373959261901712137750400589309814192344598743134925386901638708227241766943382644275435009382183209783466411605825135932749914800397010504587701214018182704215359926057259949767094038945066165265713601206199691445534883793662731093756897226790113751100207543155297159722403446904953385293579127083328696885957034723520817888463894528419616214594563460859986367802270623738810839961091532425897823898141373570409602214799139559242256420877471460990524646091262501137767553309332632036049212407951360088454486391173744647206368107162080674307081807832343923180531364550419682027272843560849283018093184770810659565149107533224999125412122289097772664769231868491774423348535486062178136711612630751500030919545253508271544427149233032303735232705341951400680410667258071545835914241003100075699905484179672357711878152000188612850465391735671443992037885588075244513192249247098262081057863797236530886630356704325941709239111707387552524550061903358549638434323881867566497173310039158034800674556148718053012009720651261960868331856051542105352091056073297632807288863406366015827916971028060928614671306303137448572331214980143573370108309379839248632503452173735424318350401818445062955730995189114522703088605249721348834107910069973540460101807455884491867275873033785703190961769896627114096148868647254032262090281715496671468334558962273917520590545252022023977097278700632816618638576209477761846959898072716014994055900321670578472457036956845348448190844533530426751727041317095178862751196774096263790234761305036613683435162305546954656397402765353522720101925207985384102257233169862497392552577654783300990177067240719937311938474928802376062676783266003253233848918444446776975352278430221683039656930957323111200262936339811163063500301336682432152058072520167851232842002589307503978374982955164783718405517413905532390743466374756625579981267191844978022587684464807290054329979599605603191084486273386938436539741622791138812239365777943861279527232535934589770616831782610246146077515812471975422679261700707520590764225263415768306284647023220491704051187248997066966088278007920856773840709389732528625146376294319628960861991262146709791545561529860977402231762581065700335106518684981065214149947153280019136633973919301886309329146267720559348765748539707123554585172565409687037301855117117805478383546057377735811575263933227243008536455721647549647050592485763717546225784397475288809113077024769631564080289186674281194667533672636333138247668173629685811253983267127074320119297614678469230160040011622139160399281734756392262105773079875411601879621527371728887363388176498714012708398860992437357446860702211265213447268674578907412759514257853347283212800406611284504154390067003261718337942210417169829769396024385164333922103927616717696427785645114941059208156724963665032331668286218777290703539410702737636283500659663437606844019114551839752455405691347565758032059898928932736401391872709865507849664419631615271897750996747820394611553698818477990293401512605517632739261086669292347661299589700762402844942406720899470272410549981718419961809212818737424865944141329641660859418621678714670157403628190299045300693296116548112578847663206217660953123362646260794301915083045919935550968999861383757805511102610934153354190194486713324266360818834702324632681586241738202260931654824108192497622389346331570635106791059479853431062911594760505306783772401300875380328764369043251113139304319018811287700515645193097940149863199745224501517397991902593529154603230902540216923929193630755476834997701501120011389400849276639784345475971326537217086629478222242499292562299716180617873324865323092124879290651758042371176478698092039677155895297226010700898017747931144951557031148286098893948240768414134458899748910425925110113040692285219134243874018271283990138132728678680809508633375090171535948751737804828794705942819728583072989691556465619718878375692410894612322184013269620142896113436799657329792843822689882239110397757535726460091876460052392729147333096250844170390283101668688182067667435214147826817891961456280910046513198777662130613002516367003152916381927323969577139958065316851070475281997697499206198200919708861566633995237940294941602252931622861520604321683468268488931460852239144945160197460542081476716969883945988309970886603018856971039972195804883239712204366846347720531409747642610395963411088893504305528778456664675606942477123518398248046153767604034669629014528332498274135575580620326641054890757862444791052487815678555542802572336485422120966217091137004664914579042818025303049402208806044738966922002736140003620227406544201151528609315489210466927858448224368816433272685859410759200776286889762050350260712605918874020894794145060054283192915199985718825408351526550798829719412692281812675657237985014203498713162062055780258025076260920148183989196799817795323651172531830468498675677975781990359999189837154936400403055090835304022577145544900616542046983506149847754639452642335808069911485703603032964888862459307468792576002263796112737818050714837665813848832155950044058045223082519378745060565381282464668019176290524538179240532504310217438599895242182835925166452904745762747743479041034444513255188219199664462002849282846277639703860361112082355391822921793198805132332874883382517638378966540242125494716132116668826264961717897135782403765400683816511793092917626978939014657567210975782581335834574187164241439477909165317043008205573348771841062484037813783522421938188681721941339387175488266129784989969970505169345691880385249142860591071783997995340031283113178218257871364727291309809918620342454002984632865095371069792886879256242662661426304420359537651000132143670770344293250933526553014171248584885997045163764310650598035094964045743938072865788558561210546750639191524215104139580542525942553822282961491069031263860348477535406193710792479261424470306978341036001692033363883395319258685094381406722243883404016638923251085203688674731459325149706355494042807514156790528301033273144718931465804375127744627865765421314057701880970788285328731398926645862060430916011242982394651398997262065944183264831725179428786136622322014621603003882334304189347103256443356761132317553313464801926446198573790286171177489373947994464468127100230467689552586948924950030942555323307021501467075763237108219799242772838432325759461890097014743883910382159700000594883284908552632994239672106209457724469486119777750125841485947307065120094646595529912966881163408066753355564311492724823804124350416279518551472958938363254298826798903737856516482272353085910682372547265314242152017039311301938233125464269753198996796315665899176810492702088747871967440721782246365496504047096169806289165094508404481078823714521373922960803931375425451288007365790170567425038706970296477181850816209452266294545090522024788465247513182564698914763085900193451266305883577878760356717664508420817300094531279914179894836543989583469119787933124770650240822641305705850709201599959603074489298051790432809016657034020278860875360214654737375351931219924979140646208520132550296395116524713814366602659994235808746646915249106637540664347416785344838715558618506796388028535406674981035485349559191463204056953297913065073415964246499685857556153309916077199797944714064404741206300466237412930903890685962274233815428692639138814459496235016463332539452430603633705224231823571405801053071399551523634399900424120637175661328485642432254464199666790510866391440769738624923737694673747751730701318957318176229649710203413718077636443924595123466090402629126919672439553990168904539377974574091721157041305200583217939034351405251101768770185459567816653193976307748787199302524750966089085358985362919726624005525430389641105225841302336029741723682202933585153602612531227948994036691549849811136318740438045364242568671582525148117484967635897046313604101644429299591541285071159236242564530185389912672062786557032855271654561940209259557034179941987335727564497606873572011636641392903768801862626056280214997293137791366255971250456882440535436923495296239490154000199133122147068684494699712970192054646911285417889769920101619465908098572503334162516194025746974657686549629401210479933935005576221978318766143742830337276014305541628307607180538409302071097404063997886087709897789034755158167767350262957232515605330343624841479642641079269691524737600745442496229375471050655339637666562861894023276497920514815455344242586615338028245580349476223730502654263019389607151774267783297166878994394331640002370916778759994439995126464156865068794995228242863599812495798215695724818410778303033814264288615640208666598311925271911434619232670873973945433762050057324515748093978760704077678729739791182024685765544592919347063634850424893728934793007766418358768589551893104234933046270493930364257999504728855794634399100898507856815118336792093891545557357712110586028332035581568442826754062439059830346179744414901128735719913874395750092298597646648697554931219823529050885444294877050221502352396353529590046926293116977907164384633236006759687530690467215548090291540840407215880607352238153167772825652644377007438855843885046499987949106178190400415792493325924605261697320348963230609724725588993929450372827980244325930515923489658739254739123967004075730339072674808652209354139331374168067684882818790194363181020017464713859328687054309402102046654877131812469168432855710275364970235634604012607317413571321131415024345139350644255112391609798775597937630495261507917997393761917567973905971735648529878387791994029021297862358230333929476507034108372010576853839066580281678124407430657173610940136850851447722932530335449043789219010971696868323522914094667655851096573524610663099985146885435543117012665423631921099677529299567578249980784163001127632678632898814267683526230802358706917931484732387052379420487172190031870451273917879931603416385483416202852791948799170607577595007925738421871905450020561074967618836297402210723391237241181908024569515451121723412925989046584745205685574846189422092419462539316005178621991848720486697545363268811774910616864752106352925185569683151708387642037592582985440694192092950306897688673827995992400418660085469386790109399848755479236493336373520390664306445015281783002284319147327820833598839614717452644100042541085515519560353620534403034216643179168533025033605797623821374375530086856154112982755259766402749018668141008032285703073271666752656076918757648495454407842623537665089385685826875043708643065250155186084574784349684230258921290341217227949427661970440284231176999365416631192757484256064921130297590378510168310749426992212338190047102062238725146480753526060615492915216563223066840124687160282345222246767211527550511228149416357030911916276561245057830196625866992923152831119056492695919315811686575534257492727588223109231068619631516655224835734229137857424084737241202390064626950860699963111136004489922905419189702993803184947085440976341107348805076238134412338588993903554890500190786991075407158953537764968387371229401514470730719134785214117201764820890077769560410504391755869122963714883189202710377479883233775102945658377027063267903041642030323007538008883892037414028614724652175743427204024875227589667755432682746736525969267053863235113476863481171686659792643545360678239508834465171712112545809825289473304928878738750811065662892799042906494548155792842928640027274942917986568190544268511363324487154737081269146886108787697332108472123516636962927763235127741602861420845989950297224025574753129537747535057871465021562227075172465834549271999344237703854282700705603470979641141716436721967356892067636116112774760570123601725808929054487395560924816708996188265776626400156357030589689019183834358096484143123443302464076976271988454012797784860327623474486900052967279047778691953260821018785927751429155107601586828906955027690936247088565297862578449257899777143361858024197990749210645252533469191176872285204560356033355856024250850143890891275884053350333597374978523057045723863933415703116350955073799763874911295298557819823104318452565296944435400651785637458317130925097801288065568482529622315666425537313100054671711903083220919399565680903652744567695479764086188790875937540950308590083936741156712133777566467720744030063784596636370827168297907196063858053039388459856173187616837896430775752473212268505484796607521179310851671561659817024982987722958379764024915389218825051707566961246954563442336616852059961524958257178047370741682044244907226015063335559950039254275280008494232712366159870599135681241177866801662857258219088956882855325425529222734651119158728922692380510142680227503085265751794996801491130842051254874944102850531238837328746188092180280819129839056056182725407051189197986656905689246944571135393659708443903180788829301745739251477267900650741055014147428993222840615744582590929596410729535668759175880758868664155625878090707332346043706482093461668327771735509559127003592444838317378645957273158678996669321384794375421979581926352417702232306793043215580572699251228329106992098862154824258221809199724038939617589102011991794784939980595319913458789003944186545679386006570459523856147488609268454805409880166376070090245254685067892811263694718916596209115772778774663950212073427103707955008400018301352557730031015711798823403883787091257968096556674901456410980740272419109298723726413852327783119309310776013348844592948055894497748057002974252942651472724552264144137280793290661798745272585576476376341816337857625510867053961828509557393666807581188771177165809039196277505369442142905671504536931383265909603953724578432304791461873805300795815864471562281664978153579318417683817528902452523236289268990430413436205500380971757554397199251039862390294183924498575602937876265889107600499448520568093050687473004339956098143944732954647303766394434246451849359416785652761411617873374805456063505225459593387011927770118412863138547856817177281687991437417511804952678345763418211555626497411531780889302225178990367519605110482179313415978737349562378958177512919413081144768525037653871080937357656077723344588099893909274469576816857480616102676597857045795314221000419667923276555728896424477047599448694783455696950163110624282545869062802844547434455036360234465329488277480694150007180706459542770025495369010360184538852079602878739634864953260235891426454971026126227600361181888292522854265061771497432691187171072627564687043370207362158179429200395126603240867445577385333997867225852514479439737571362423662891034736690981104711984327630611901272045080332622361412003466769274419282812680070120809474340511331065679574720998040338160395488586803872433098256525377725062551352070683165721702157917473589921993829490206816065356502615126806152267279018265628991607110651379702137469757045917026236544477821258149966021968067451726508781779416585246484184599768024453976144545003623431446268219344460878836908005430113392096064278196274980509776563622989526939580939118672947502460020745924865879871242738755451774426625791324360859342335555033843145657334339206312133081609511575557378204554635495555082454908661532076440792142602621241094502904812451412596501583555196228807717494535267584081371226407646100890268711548007591400288322924511643131495851821827772753189479065062851057752962328757076586204328590771952523875254236929662067948473691844185113330845435976296245350655360266925594222504911984534134242210589816933979433955474056584036379168906191347125111880725531309352996165192007785521732997115855666968494312800755280296717763453979971898827416240584462412256312284068019430489713813777013425332449989831692596158031063069091990100860936973675469140100782719485215062505583638163289218109851123967604072090848615872101559168198363939820381651941624643907095788965970261126130422191440523500942691237713401450535348102206468777206681929785404502676625593303826169074589250184420732222005397875181636428809907929793794222209318363118979000089055857839028080199149527679773942466009670586252330667088597568313641058849397748956937816254278339740429840368145868989484292511148563743086165724162902669259926134682753371800290508175790911404553001194554110627910500458359786168015640325447523257397337325340300645380837624389558735719882174578159529948414833242068561233132628446290746770127777346178375611307772081362064465912111203862866293563254730055331588812030076642840777202663379467888187992224708350279477610594634281728251104649286024387151963093278117620864672907219587279395689598589432419644808676920239192994548363449281856592063491069920016609811940038182276678809547571319160435418470354370053189964394185109834389573197991345484313908949405411801533675106757413904960021306192588167397125895289538728853450432586025603545630636204996476645689529541762150727148786566820445928316910861037495461779550729766513547354264137471936958839972230895899843881295990974456301057188474443660677369464012910797605186634673884871576534568631360526483603854961022559629801862221219693590862736101234368661036426188390776055254350620840035142977413009846608664791469618305331501848093163974125501781747259081130036631138151379770878014655943519048744883227383266211247001139237692965092522247333460496141139148179024062274373553863744094518414936029346338278631339601384352676639074499141040196952999547530541878615558725569129728398062868563183540813117400320434963673241779844244823134159706816010502451692198440417211089946552339813411570086653835577605000253567611025736450941019258007175293951000153542514287155587412408603807182344644620374105405498764224560627294978752590646745899615129732982344948234653531492088821736709837723122060011438021582480987425601249452974233836611978777036808844099793502793866525736692371253298852027661892570138966430583260396993542412768974405450970396128225844157563717571623046489729676514717496732597679820757435094047857229504073574497954206955306761845383842519311747611258493326149098161751645835150045859014138244920612202829286216482617649364970917414244810536893504347246986546674267854202698481478339673123653681525526182652628326047436826357055307524743515407351272868455833128180566629660103807297860685385509413624299089396118789197297238542595871829311175740406471930919774153761155857325162194417289484757155061769321218640402301386417806510677280855759485963797161558763215438314082146346074112107667672426141678574701607326415361046912587590909366258787397308336766402406203889084001473837875462150095829050210586573631535136534684232578817689545099815899974587273786134000809500162822571874087105186267004705465342806889694166484372725091477527730160052656128880389600865445220279647591182302217520035087699984218815254424927717632915182102544784039101314572384006483585066387678878311515051894811787020987478362290999796551153564057721373232904830117269093199973490724092426224085922395361460017790354734751671598031598239027990456570652692829739523502516498074906896334785135607405828013779292147147393282409643163316701052878835345313121791333109662013164655444220558585062180158929821633133726024845157949867222040976417389264683051924644261298873270481835072667233249359191738190085531833461121167004319967658628094137017543213054074611522820827592627140329186930441463872463536250015504274162615412718548511131244307402884769019090334152575834416923344098673877011153159499828713225836363925115118846207307571301798262269118708622786031530602635371960250784588266112235241469691207093054403413525785397696591117630817047822732317047858418415918424412782034141854849305652828226012383840384550501855064546162800105210667272322605288899985140012373559999538523518222075550952621159875148263155082058487534347826472741192951252894151917948859003244364199035684781772421914330994423737248506767831448603608900324901266197958801255203172327876073262526341473021150743107123314564326648526356729847425771662993860375937527072023746402214806610892072280862351164640575966512028842245323304893392812229506816850034779047944602519261736163842871262485316537035528125706543812687572301923049828946905519871765765920237208822356310143815454211527286055675416408562341243715106007930642013461975694381099841966924009689119078730717098740103162562419572765713896379293416125173052561961528932770422377016536377067177716759816356862366718935594351451053814915254593673675659842413227977441618056803695383558554118481296194327726997340614557540433530421288859025720092908799459178630387359474074145755164636667113167324976880942851838600444894370404930396656080086921850593255629202398320477511020687189557188209015612671825067236040341296145375576010461003786717738750603154858901179835489402461883288812515691281423327707769601279330913571498511337168474813838682298387600432338666325721642318830389465032407748434434809554986030146326959343535817068800774175535608557785473950844306935947154329099617040878759805803395042844235519496083051683611101351275043786391226741151215629347960532715152503081312113164843232286719484027005997415718942658335734913978123980763254538287094632714863032985647297229316030673776578017032221907563199211359987321606721309973462634231255515695002990859959663235136654279013984854203425226891628842678099784991406834411849939234690851868812917864556650563092814565920281072777612008392684956716072027164886222860003654925191862380709101704299445566354123717657372755507508684307862952784629104663774996539309051552423115249561931392649857526383250657642533914307158080076019317856195404541196678643496936232128274307087934189299151371008490558382277576574612113981919053081339440957104295656110389974312182547516776935291384860128194228372572052884677699575595929575513315104852256023348564638491018811717228553995345677489254535832254258662571770960545751459812015679155912809815671624207391282941324124998143841332959966094948302145547748740192934644225630527529635767343952888368608001331647451813805942250788399012084168953612309512183112315933366602440529283815795147368403144265453270600423652922574674119722529151239310398041819276724647989549693528134741679513158499730499011756289199488671639717868928946279659166445097249668982706817648200710566415907608739026963594424476473912356407007618720119174634829092313614099597018691124149002563601822557698608114665052530597020744011543473748543344566183373057815885291644134958109840353001567018104980399223805470127859449530029320102500025337752912997794132346204251394322672134630406064017864122067970005528794580908370084111784358915158664281108858844904717838545311817071475432006495030581639497517654577292399335183991206337159978106965198433567142700582125053392974307248840387863985380506667454814877054665429000105448193750588196632680737909928208838421341348498433162720519948106026354395352879579782652653984756895855988437406532505467917772478472349200146180080017050524207146981795462349893486336179394072450454389988022558284510866935056898179906106193836628087318940597180590748334801475506090861728435855147633056167383041251772524583260081623404371096016681759790036927871425389532808864914160000940191210836040668407300661032257333174125469714299116372387202614679283410498267298339460799458790354820639207871705068300690253340916822520671098505246363220294186672856085687929746627169439425853908291400415777203649580983556261667026370958179754192214100814231488984820363675090631895613071847043379556782816113977417448957547508823706974487138258534088882667106692704058544136216245246689313684167711309338944181452223899893170712127161538142852398666509555567830044507802714351679626858441220645802631236663602558616852288431600904517235856075749117347372743998049931073105618542942778027758349296623359259480196738087444029898606830095329793315811825851077560705057765959199781927744008162819010244508943340634928027481195109807011951945833103794035554244726186528823280517751187628232531343622922628484440457044928956164094973397952801389737793517069802661321165239186110857250323117181440701481572956689786224663113274192571466149427780462650199669583965701354848429927043228501116716916135319829939311824145563193305630740486556038364118931134060061129818654966082395144926012124864723045172297664012982319834694662684517979642045735382308408772531521586403685768662707405223583252155940133212174723130029604105258658510989821280669435934388674999486525258985254500333113127914878564759815353252895405039092478436876000986533159882266052470849758842089732736036263992642829140046969168295722174947453581979684827403539957282024358887037923113059535880402053582906299662717995774407581865946453636350629851194813771592547178183699770746024106458845224252602905881939468266319150322009709884883255762789476705101204555677510044050787546766375553865326117787488978196676994148158849083750600734624316989592590753089244012062244107355149673833760696620526301972102480813365214843785349181838398301502122931945539612034507344660893953846489058983543213297616681182766605451652023532431302568025665703621366910472262380384781321232896582847891653412813071865845001330170947649930821839891163427165860455868009757519669137821140672207106561780237952099287484692069345416932246839510886909702319614758341711214448207352385097396852864226795597157637214355932336231761826717888501941250156150247148662751248066972902077357810306807351074558167088327670071751898900589968354269726087116677710937917477987839893076091249701408961630337829515044809096820494443431876511959329860774617756570051170695672019559154865780555316874715977311370368199884072044522681844779722962925515152221341318616653548467666177538653143462116490554591838992875160919682190742077291479662739757282716116046301768014804612704858389506757482221894940324149663299202426902463369653306476975802052766434414287696507521671161307646920466025484781869583983637321089074717200367724886674476706581986560516350574460780335533497668169120743108600599490762195666554348997192569827985258190995731272898171315579579531213633273014332166513215615627467544458841533117199622538323766642279508652393263803852264228795651624625249393630696459223072631674444351109531542105842867238402347698041986318768129728691803083986763143380100231529038322062963390821561831641410704755680446162544341887297074656717930562412976700572974669207119414234864724989657414308222241379646623932832751372896413808117426750955037046324275762548396647045585902127107286122806706717076192884843670069456044294064303706843243447129126894995597051503592044480421071622924297727517299895295435502946036148881483281366920981410941911160818164404859137756644293339080214472153934628965294271434655593941164441084791894952031830464037071387630081549581495210256008694813959264324164194625237549881522422605909870621324491506666651547275079053324643862524694186853958823850119927241609815409234185574148713913743910563756192982044525462268343954123855187280617843258928382611110178085630620722984010750831954201382454055063282675876179072393850553485509450241901266491128109742462093574775061510073528201355924702743703607767055087924788928546184902769719626636116612165176054549990643629377007297604393900570717538262039263952477423580125713459248399269266507697075714920863942406594878532758906267182637131329521613414046668270823716436188421961126225098281029206038537498636128816281347456187627083272025390464143952682953439791025973668043667123820863268689316093867997536212373437154232988773763102297809721541535486313281283324326715082064205319775302010267102125275989572682449368741579507515032206035779763521404480168989000582654689553197073547006181277967922763381978605535459630379170903789833019485886346128856979455815366482291204782038953791062654627455507686775447658168426373614414906121865043240668450263919325100279438057194127791569147832784774301117463975028190062138497461116127720672472781225784256997534813877261007018463487258717920508700699883824143671607944998075086275709020188313333129800021803013020474699699263075448579405571761917825283837769826177757989129839951024617843017242141668810453959945868699054715588417496948423578983603347311644381445961244668729823561983931785423725983475338030640377810527618818917539389558228978765882185838961654427222209075984913626842703774606967216057715611423768450413185021657031537200506458991826191883813613567696063899073733059888403735071492018226382943513982943821747378931247754463796410426005857845609300648909200671245853805628540706231620760887964563508130732856839202875552586921246443229274942049843904389229120756237386730881655459473071688566503723654317080708107890970605239914749163815561986525889196380635233469324335539912682288593961805888641751510957382547195368040878588814736084085637253034678291402796713723699769861327737832284003299154412451906669981191630732013465199419251897884778548479210242948174663758245134642067017128484015490730945652639312796556695172070713845732916111796073045875383390805126116714860372370260238766484597177628775228835745358639361543594491890930454620571734880439494641582809761801474710211964871678328660382601299450173052291370896055823506575391094739352308296173212965095247942714899113876356151999040217715812922554549402297411558633829789017348680793038096980086104488926633869008180892258263167150083143399521168358756016623824165240835656555570817018773012575427211899555288250830488630188519456945094037344232629025768834724360002701722164695861489424431229039920933153452991276405366629725104930133717844676757717952690820309715730424907949899934607507763404368122433902045956282636515465580922022380782977208145593747757148839876549380117415914236607648964283801697533017582380588603874363033855619454399398241828045857725251119354751971560235243727379979500553429355273423385542260836661041397722007210309105729776350512187129247335526635099383022056715836918020269203575172157681652596878778905277258150702155834773064484302464044416083952542074721081986395882008283452249800804421877203052476022426397007530419756529504918882240517256205059242934723050236466681601286002995305210350803888977635737721877874321662158550471046298623781203906004982091179241399743395843803703787410996107652523026108282726945776515469099923056835131931942566340939754679763231678667395978617557360596793406365652933820615446846199264903021038532300474941662078157390454554999984946177989447546912451660745148387522517357245595789233459581645900684369241348027258442028677973868513443745115317820371671829508949674542624887070204701491709599364754400311038467708366143907832826926782025918172982103909832959099173756406942806150071176914203957147671262428828871612317969972871269853708708228737881603265834891750275820263565761077554022828005995014661336255511052769993123290269525949253062940189022164543487928922129618341142834169654384166341671355305503715331466083044864031456646508024754389644411537672641339446608252177349402954206347544026650458760476958765954150600878203848133050181162984531775338047534767116241689949154962003172345485085100956151435170670393811792933161434310619688585897056092142586182637175494311814781972640505658332083344391772310726169779598126236533673186037887634887284447266950120180489979648135025995445932064224763971177870688826942397244377104944552346894200485400169195215935634450596316673953501556756973991942878559047919351276208435620130955319807927204779017347572313053217901121286872201366359288920031530567109730521228830486920536020573536997760989935250433756274302250116955600352754579841120226611874146474058308812680929271701238670009784517049107518780975669968926052677648795401513377549146021861597765352877154322545228455530134178032783089049799760082418660627039240298547225476229879522501016038702092770106653462463556793494704472914598881872569458399753847997993881929008418887579633948539510221469898598320131453135907746755842526833364375009458871660711466572090694384452840267010888532355525709759815994974746947517571072238924782719527618837665652140666271312561514560334987798935712312445930567619504577590062430561227444151752415766367918502971278661809677166369554029466317310863024520591607411843576627414793238417954847615519540974467221809502275712847052044978573514305819159672070437191465624177898148505004750317371112507190072558144552359951276323395327958863047540573557871031007627848628354412825670888185458794314169968554544061627312938751623593439188256728215450432037472168092102457883118265749310235488471722982000072183238677158513581295093200446612809977409806616874986673703508668163786812913888164176144168591164909760938143930790514082294440928364024242009982802060631869527607816514666545692066956685846277992297539504662662706307517893598066492775182609503586929818231125430516904796933042578561293205895429410141009470548548998984922324347864293274157027500159853896179162040528903267124080409016101810432256818263375698660676904151362098797043684056147102165786148630771491557920731300446822421698999938411842009387269248280219513103128926100323008737072429917632446016676902651704269271371056627065030530492208123380438861588514866273316860354369476997627266411500577065089923279587959049614917801462891646272379344704257830603737348837468439409689068482574440058171788278192755905797794171591000909773703311316942584967090553873164138826294822958441196432082960870870457876206414903877461877984889950197731529881504319514805277065224743751297360986712349791306655927662746823853494182492458252430625174901448775429003403982869624399642808207257023398747915237424009944799160615012070995566382669543937940093320339956352335256211052101301108289341570678174671913233869518027954696780236136836243947067441817157282409211401389844629646214734584623319596400808894044965383476357652251447861762582728734864779892066527832602464502672232868234394828486900419718314426747678237581761954082974236284612185162535812516001081501684978111595466755488000445692404210681969336897333433071253636326225079525668101965627436802351531936667202654582704951543450193145793758484977852368175245610169903984222231600103587435894145328683075379833405835803317073000853706266692030656326516645544827511967936751628363999576484853776558583399639409971137060945901512660617940220237582169235752256144857210960164833091721007615164268822060258546883318675610617108519450590754399722203705843469080926986511949610601257324783961380969578249422400936379455292735069548416973111558127538995673675970469982986235334028619262797997885747069504345610156841505097646716298913552265868602778783084914626031596841868810459070482535345545970529023750348447624726992828245750411866506577776038239461900568085769366091441354000597120014863829575941147580554871415266494586074821911701847528698231956669837619979411343705327494745728297473428284904790221537227478567737416639355650750742417128288010773379513343312030542165059411261666031511475067143851126652940244507724245652975182663597623204897534257564203457959178432617756316159165989951847546463476598232608723316745059856403142788737802072306283754564002293909150301836841415677501700041445697416123321316982247578913624644172192325185012921964606253044300857221395461865036516440946200069745868586278270007481008586460708154292441685379701647085070570970768021241723202110198628484178264058499704326083536969367575559782953775279947833236911312670838252214668961116055254798026698282610068062955585008405695394959193279495177474950808702175718289919996413697225636520106928764795789334632236942711687925697966911264258320194679330328879908666592288095568341145040561503642660622307801900969149539508930642622338078873212693609515309618795568730112005845292015540223587313332344108640001314808568447227561175569954672492099796490886380481170715730184158738555568726372168177428170675330725573143936030387672481989642736878377802629849324541997954839648807700505377351655684928984486582365826011767775070820208222889100220384432466949040840325640034282410020496316170127050352128345412324979709334905541232405848964598501068187394818388190801025957215797621841287994269480494141020752022835548374850508937188901725145571995533565652053713532696509941341974025092283585168395237624310010182182172827093276000679769239825985220505217214028695180451245473899227699520803518769093061460007587894626853170362717783374599557611520468212795628056988302316325065982931990260210349215162523796350419155309217417286324896132400772464033583443762965168654123126663236498741587976695892641887480800327642598495478905895521200525684055505205831145641008856161348197041173576553364291532392027872305899534514437041807138084086633517045410089317728940020470754052621466250413849216537527728672241630666994886158349548196168948477544776123286536801117033229989285400777658946154180578195744328152440713395852222973073055097494558561097323600551325959890169490046918671043633450754412680068674666884634581768159701433314423858813672194884706910341936172175797415549773697009286057589484272088793803474385874745738567353119271725446358094820483983928742550723736893545008855417296689056728387240409326904668461563686356547928860677392420677481940897096756044946830230052679363513188301743851451357769232336268631445869144277093694467291582385702241234021530167731023741955572631389329942346447912530692465216959480951984400092805011092459223876247034593451415411408307403370975455491781358286803784679655261887946794640309331765126998752764610071494713226704970358431080708559531653277199998490825135963264661178071138363744986712447300052797464477724789570976861215103620886949779479863076231419618004123468423273239996483133005455646384622312450048337367328638405832469406191568417949994046646769989977996523668381546344212691198905114099872946673814904787660128276013634425498620294048947720421534003657176640878478177340582743948704586799826300524377191651738499843390126722851862781151368692079089070752993354673825899008039493486442008634323171751564978577992590868897334570070271104629180787707395716219251693973046020742092100393575598939537762729776799326975053271945204296561089432259183329441625774983624344659955704851967594029430088547906401793047803824488156462205868730420960452231923485065176331823293318071829574123440357881479673118367077437054420740901360828449513845327570130366633284265923236797295486665721024343862633635643221101802172656300629256766769907016288423847686667183862847029105751234312842763525899677354338843098927156306413148688993576526004522493699856773796928925466413475732940498687264236833150100265401691164374051716751785282761990750413322957924404203443012364574198792546143375163135225480053602229082824322250789275370804837182431894066777198375703186692742166192098217086162456735868850418392953097366129736765626001129031931931746558620641016687924709008153974228507637180508722461169777026850040240074376165797595610629839310937149819468048894097707764104199858125587516462596027717440259042306124596451563063678518680068220383385165876470009955649241009528815665182351979676732753717244676811118934624084728617449440534058371343460410525828146004192401767857723362490497064078717141808364540388615817357916886390324235985076165216243514532350133238912163442908090308005458635246222905890647210755307791330282716366790925659846237456659475355232436094924402568926196598948853608927528108640640926401197926069585692940371122595685590500439621609744334308220576723373107960084221670326468659468223817146736972391962235388679082549031666397858724912560342102488050967354683160108257457711814361373054757852385312021211929698726678206900932140101521327770945346606797870410929879506833966270373592462659276378553463147594012544946176899867073801879489760996234247380015230149068871900525528872582121943594958229707652527688741657636987794914762967269017370347562919798780443160424244730444298832434337812598539573026609133823131523823775536549116376954297865245914641145384533149287374129094740465935526791453049019008302687568840515723632988247024521367139352846497879658788082652117181539964780079496987526034705504422793026294984796082188293940411159041109561600567619040084468000787535233159563200909125412613115077874213356255147951602262520671585362806131690799307246257997846593654257857832996684898670138572664141806598551270420205930386841745529744857827313419375958520786153138935403430867254524723861715770587665018217582526569661499902735638227660190546436796285050808241151032059710817170498793509004233531489772260964827600456997598221346478979481070071054770192197382328992485061961545724179423203501803136616798430370398843603284451141408207784326332219963789338395905047888148888791621235731316373932375018596605837155019700044135781998135131817288485766307715943526821418457655259118959338276653439415173028360263304679517767921251692347548897849824077822377897834062701725082014536497266464656546585607910287488388751952991303960031468486172142349487883428133527223538923752773525076090133024315555203653820002167900048610601221197002672264071834458166102010142579668619807646905867866989035344326842768130522573030886074308379180391094708335503560110692979287961543270082354407219048769564406966706971888741887658545020491892985915014896732353059179691223402357492916494046219562639435567695770550971645787170734272177291540757352699408325320959429312460434181104968056619922149588432102756389953462286985799561591830211070471455614840699692845023817364776335181834717193348123865232897881543108985481708124157619104119629066809511159409081349556797776444276134595493477230130569676545135212353340529171020755244519972074918486507893215876055313667617986175732463331758477409663282132344107485256243310093509757451600376879813554020669809693712031594186148660982740249897824612611465281404924303552610712336769721862915922774662699088417790629478992912249388978845893111868604749339746126301931852000247295761699826176726722880573816192804261180170208723051533201413747034112656880248647151322814602265169277731783881281734147499416984941746503636126124006895540440609051937622507636684152275569907672402722499852489616202256201979771157453728921525197399123072049904881673984631167432026532462254174965711966989214929157380437508366875387426909478658674740601040358001761696176968336256458268119197308526774905716654410665397863466492355782012194606893996029665658060857365353628148408735674895651217495327694391233890902610664457308179951924834899895659178482233701596124728736967667981629955583030855415161912684674769701306781414881050197323387755941777203007016559418553507739081390523948200287733371993655099078996846793403944781580051012701849189165353710005506948829083945120631717962545544586847838334800335184635328625947859875075651169550092166412593204105859109016415904158752151732082276073645162154904718610913608709692080556919995809160589981809509262251780596455498349359296607966604020369372991811633003262070820342523591091581889224506091482347727996374120232768120192187298847511140936691427711465410005224631589542569989671342391643235475308063521919136898841588057037157161515268954472384251335976437260453402871846767134640374494647176580698663680903171583944377873060855266731883670112486559843183595220092794640814779792724003486787504606206926838038434174234607049267493117918691565478687488153179869724243176220552366376440062785646130129523613989476705474461564905373612825751268021566483980889938358495019177687486581334323734379797528881250747973478988469813834469327358848029865357544961734889924778328785920601976952376573025687361998043931625184571067193691380390629362970604829346782474532118331165411953135004805530966736009484107452446075351425143416951845243464964062983046677862249703329468828044205267726320842575426026361588790598113601431177514348663229276560567782254564434405975326996762965945211942995061777078417139095060702822797080941619016385266316599417503040991291028635471280966761416076043946139137693128460387359656069556656660251142676122979292339341528646864918696052567280701633848556789320275665673733229558909306681530158537664817826840415528868825934225746654536748713917019862885787253401867140639970136893538800263119420524653582195525489722022151072320535608117500741164695405650152019917344349458202882322512503657433707932341146585245789902631224642689764704195985444655763432410528768191333273689239894596315839346934646004012215478538235446146144161737409653242037105828016012276087530085012340979373490007380518272258779271727849982375884648599066502848207165587194892863695933525791271317277414157706776389630006758419254901142998450858487987140969244292002795246455009043149523935582552906077955379972889949629783317523919480081464164320925067405905017022148360754500221625215200122076308103245173509524285079355061660489003273363374222580021473611424703713217784730538185976553259235794909277848356377943882273635036202746375793692564248993634924612007928495029794744802884111782470662216762726063639241421949912434652289315509671942865293361706552903005003284461223717888690887625754149061603388974848469920902903991889706347893857680909247728176371016417758415945733514149823873659673339691920464492741471184303699387790477371653632214776798438323363347087038503128895301735058355175634267153877901551258899169035869525126684244315470809604270845816160647577988374997015362917650845796215556549764539332191283931432128772921372058625390077414307006934631833240357873897559584099550576690406717731006219196373819346403364870033330110117083077186782256733415759691586951730321209433259926382723312313859216718256232642518420396663928652009813409051854455658087645506136541978404132731362256235508025666090721745217478029828832692446652808142572147601043770721877700495409727977626890177541553833993915666324528251670060918150745262779928656567085730739865019498801462955771240862184437042821882974540734396290745138780696213329722687156866820283457288114570882693816725033600360024471165064783681128669752482108288606901615999063216037480721198450188555109628256945004349407103640239801745330399434575026660710113248078719418044587196895234242524628804049169369111274865430180008954004253573149630247192412314897873871927550180943491045367360975319530550090625091445839543314406476749180540165615498768373400648139942341618713877208179279703799622383112197839023010397229731087387677836236892213996523963523900267048851852322018073170943408936554845578090264940115256048349836963551100101433850425351524511952696320361143902370903883505248336013843358561913092482379525484937676418935285322632542349156010562625942549321468801939558063264969170329412114534708584816284689511189201002014095283296276626364216874834522001055819842392458567789472583008070402772463056482317352546583743302809027384100530483550672002158721016727351146717810083985873672456128731892246936029929969502072714716671101405010373025672716234223576529012840808602564144689351772150661472561685790568795657707574144143582438809247930763722005960856224103763238874093939101694561580806566720538747692792915272871885861106020687684054815723206272745007241716475476500209750684535595859533913367358726548194575128784030671095235388738936794226661514449243260367445292453732479515911503708436619000814990506759813280781343758469157675560923241714670866115876878325891959431974445574656849805394701958024613782749434212331854685821765728557402391551691532603337758418484207633979965206900569140577037439303664904938399170131094864583337423346894624435132305132610101374543319480302317677356212975615919156515447731072688988002687105288950037016852931663866431531353074036904169455982876757324267527266070538653442312453701920753565445463950816447803869883411690268240101821986307614640313620888841659229033542524162906386643629275556139697503866439999022043965663231019384494725009051382290584505320554130130008117629119835264436835367103788348394748246147382525641782665857363401991483049026095379988107857293988938394114303362071337325353326132164458274516961432179925943327387152795160323228538122532788154433531495938999535651556671437540642192450521088012491499367171807429223563547275932124890952646200368591661575080530729082223957442080852988021662693998407265954083551389705941520053376333004984554886161983906509995118921782414757924815129111670698205044464306286825363734440190200232323388378467222696119371847061307500506288829986499332824083102836608349382876129561795116664136369647153566039573870658434429428021549040324113360249675086249804427779690274284218623609957954226200419433733526718952140355276703140474468310668896690481941406736797783050844568276378134673892275757190884276004218489440543093924697348804856076886193089830629525843911236278112887730836587706366704252384532863818174327156384622951754028146224983961860853812194572351275926614900265606917551157202644701226613129598177713862490059097014662314160678654501942929048587460022830905832611768810106474959618439838187209434913717996824208783112796791886868285801103417291621427144941964127666184433290367572295195718367972714496385247086084473506058059732366233887871802047177084322045500082083955630510030604470221156304321679043673079959354760475167523298059587925550386793148327321538006626474033476875366489659756231271408865707470194470594108486489833606505520808928409975870157712173601090453413107472196149409234490348643218122298022342650671417581205608316846758502604864617717904668462361610664173888932650966842723244202598415169343660204494080661750851206212974010629598052082692882753524853207520628698594110398342394437586589420534700346154512838380998696983565425242644397981810576544276441434367834380743337550076456367695193667742031590056600198315223612512111802401320634526058859241001740382201546829432260450001541620272861052635976476843873675751871333259086099277942333429263705588423712264234908519485074025743860626884882385286044967630311130615083944636487811108726038253672801622869821186430241297821975691826722864483666075444353460034778236345467374184215762267778224745709792245089230405264097684739590081177552447297904851036442535407244399152023794004904300439588113744157166604188360276832831112648792632564836698648462643043068951567604953174225878455193429700120269884938761123374668753370295277365338403173866905368807161256033059487420441482251682085672874264876823178120293898846134902427367411280315539189893221448528783590892100805947237039356257006895467002399472311378161841157777400202335989951304089750048376782559352384513112152869123657037257427736036191885250801898050094753270217374838247620584023575422265345598759695774369539953555759556053489520990865413065338445238556617710803650895522562023699381410819108529623645185068323207737307376065245355442080110175054552507307556613633226202460117556232862308329796581625641269476623406605027776693940545004228229832325815657782881518205918588362333493332308708399719878626533398000698134919248846119776870095771043044341601065096594807961224274074840015288103952117351041802925939084478229931838130341479679615928386065570833446801991071683657769984635047756057292199909008757825745129681185277949763343347967378758462082934223395468609890949145286220100956287854353979213563710702487176712780031167237675927755921109222737518987773831204384164577259579868012099233649837077742550867197191310430247123946554836061016729160799585104892267102480657923266155746891352555711266340689209209956426608347313378850957855743550166235201244853495845538970769765502530475897603723923560993993418445967707900784959782774023770431540312457318771439826855769363801709744420990063157189464710431870074773269344727819310965763728978520788145121084064533035418040962452626319341586708568908300196044736031563893580651053934921063687947320298751038649910062549581855064202693625966291217049310308306152854443381118451984394848273955583064331570450790920299645682523656682146994110984823960851843324821587660571894149988654535921349094709687470233830963602540987531749308761731692739953872665540813038351098205015999386395950404978678624584589854137198480166883862924394304362121624881025375760308033117607869955895632923113206465474022996881073530879203904182773181023842711349491317428389597127765296152799810259064254706219002772750228764944362777481853822663104267811530911399240290733706611972089433114950391852136997339184030876021710502153901742021109812881048689550072775867079157414321793707974486418351365240539509587536093027932476672322557359682296830380755959107018253295948485335820690375501736862881257280592306474420616949823671886509721433650059886411776193379155225739107380031875387808213776485246573444759155327784686729429981765224864541004105117726147465677025678252791264771789045035200793413921280736756721928271230374620682458190914414722391442447127051340707924840982470951702052233531592149972638831270196753023556886868783533325131233747875622846605326707245555602819405669471312928463229185902784541794148421523060296884589389881620144562688902145896727139075730714108000822063926312284136270482846440001040479803211084350884926906644295545624524919615931563019129353736296903849685387943670807599710456932799007099607379222006295365123126137270233705548598648836496271431182995655826797951247179200695757813334265977996813153050983185116650809252116760168958567218557489481880626723471712420783984778989159661646194446503582676017754385699721293723429833969510636930607837936732025448870350853618675505570889753885086805527483300746628736954672945579866095241425828365177088439054355303031102760956419498819504082983522259943193779345496092682674790065344520181768192194965548354355671327553336076291801132556981484380410547270056025256308983124077127829078669388852918050671710207656372221276205945828646105861561791811510575458894300568113633939941064991089664080203817100001560061952177598683949920384917279077376399920629969934108134594828325059682870210143241521562795336306004301059264384953779027777334687211512903957962954198081678135097126221641047914060523194782039209881470466249535674750584766117267259227416732408526745791346491293959500946152404438256028534684178309850170829866895545117094248288323247250555821215396647736320703363945262260432078530032624188775056834849865046201062009805128784280167348408186538709239900397452856179262298437814879599748229264817034487304043751920585009899336432316765432677761822218160315051940850238069324611822807411413202978810636302797328246875396940157555940337776858474384245757701008589292312667855593476716446414234603528295532586168718097497246828883404979690259814254657753982598481398846834334714745421029850287748363945627456977091359826727398561927678475105277508436087739514241914508996629951873605975682199649492153562421910089279644935650768227570224359074361405461099477038014857893843826552680634120634943840123808516014179700003802764264318300702447782409990428068520588792523040159379329889465140362724769020658718725776409973217764230537878531915701988165464293223781615545475326548337164616719722692280022636213528632822831751625674878678086471309515983916814039178571716830995989894851146533101006637533771160177890345690682806331836652650919948024163519369591225010078639383171222183725332085432878502382548982247279380949121073922315724146331693875452426821759966873667806532356708394862734713757576334528946183662973005517856160282563472045360582338597776518805327773245855958586250861439368431281430893806042187531449451681012916348179748541788067431112180649531719637866672115737297630033354162758379678134136410597369786569449350790884313209888811228732858349040130361897338609297126672773682135352479309277004338922416774473555363518072335735968911127563649988847117521650228374859550757071997159572136689375749659276763417953723687586742248523697363974679962435870201014310076003613259140315117070582768247966151259783119112034562163262486874709589024532331795353635072921151047053185832004042090936230561015850949171613440053811987799677816714824609507229211980432212940814615443513040789207282432136616670901939454138929739440034405485398391678476204791187622851328708121821123610027906154964406873070600796766290362179148076233023311270345356357759006095704311034799835596705079083654616930056819888561197626791572232557876285500184433744984358429982938120848743847881269884185206229415061898897809041431993904827673189539675466551263027594364735552223069924427443414088257121304631313257131032582133953281447160254322968842051426224039965822020929852990800422172657973097829368247058993569388120653362852315851582449120229811280396050639730632713223724017899480488280216755047918243256322447161170340684193744804833388280289709374360999784385484028798440027682400538735826828443859092603924387645915130023201584951534221332702247819547547905063162555649667098806828002933400617530570189828309352361164654665705050388734381065324833976780618868030974377807359726981069125020222868828464362523573996724665041969383114924138027047573405832018115313285786598834572314945062241061282709598200295766865379921182820259445979365631645830597112385072232517046397128015014693558518325758610542437418088502055697888238897467108188792643196625574505806619731991454039604193728715198481465762117459752442393866932775036798918735579182148499264817161445385355386216646703039404830262642985450458741577823514637782477511712752256340043993386227381173888327720133603718693197215918300354557019364870252760502795181850147684718517221642788963977939411027086662753567628072224970677768480196216251230608799910473077960354896076705766130135919958340643528371268497418291466045074149824076566145574716517127831453715118281450877294719790330513218649881878000082664902599051197378528318348323967733579054941743132751807887829614540174036493220708522027243339890241346015379245041509923195830390089274720066204885901707977148728473954642371217491280720805481056030157765442558387974722336576544634653933446421183048645966469827989079740324588996324276421479922869427359407279076562259259650591076950836450099736456527198359261636315437990738939239717130121551617852103625499557414915386370919451076572148823560949599007204704747428770967882979536144653028570836857192713573737497072831846723506947719231597827369893447500837863903992522123389765137601281545678027837185879533372726462038991104164655881096214355544790469181882110404149633494072635858097991650340765746283135854042560137572107834330811059100372673451641944328450854789224561277344147599422370000976391540339990030687588175936521494773025126398442859797135679471561678182800814231647203952120039098502691804780706646753512959528001689416382587127017053977852434469421078209714871583689270507035736500508310751177776769890164723839148720759544475845713874239077895356111342414721619808852566504737414794161292114251918194202134814176353455086103984207054467326743678327555191532106006689710257208903070592363200917205529769371093490038729161213384522417693633314968015362881214384588917202415332792531487736902802436795256088404308097595538404081226614748743163910179686150142828536581984573531339852398448877162205988031056136654991007577944409798876981694019294621260163033646720575586804699969987669670444623637036874618731467250908643370167372772351515733156141516547043252607742522702686646312875292508638919322867883128542956234298037966967583015564710474749341313701582524507086938892991763980804787059472678944781504803706951450108451771248873069771964487467512332949832919272133787407371298725052099566434807097516678367733522714277867668741368466812247435182015709926866503765333885479427761541189502591057552164043391930863630151124719235397168617718056863944095994213133074521961372035059842399730369824943365927015878592238334872415121019459255235474913460965556979051434229995123767973734208123550364527731484081591319672386873654207928756265666129003923372987682400873198109781687973738166994839806612112430680870643011231881376365135092239730431910597333137960907961391410615247969678857287667426042654544603571078948109442083504480553597352900634039316505620073842655370503385705550123833393257860051279164623962364826503150399324873282622067529052894338648347767754872403519771907268816331224761389786259032317582883730586343284692838087535330599634317837584614808287714008208235330360809292335766871610099236884832161120074695722444431501559468551245993928645053482134976036266244326280119935987786219641062105830443367120593059467912542238167759949249409457814298786540422649526170498208665770532588174356986954753546784171357174699093263416732886311075593931165875820813032228907278319640021966082900950797181480107129314459039505351910621439071557224411893559009170043292332480333176358074123649498068373127801310025820505556563926484837658087729878770153660292963961918860118184718431739088819574215020809164623291592125942864917249514875219636264188275562887438688422782748730774178709991766186166132006649602638524481419413129222473484710829389088184846448377159217951116178089319757977229735365926141641378619713577329800200717356968489555084749728544706423318925872435144422816160182858744557010092740148611138220540366455778764825159796565958301199348084420738104049973600302255199184307156695109518482669152375094756943673493076296627679711818622155458833807413044485233374432519852490568881209614620585247053024659292077734281317275343177385239795450259372931638551742366386353049684352493018002571782759642152653583628252842396190739643743661358982052110975269661022711040739715927008461016057541203686570643631156011560390386727345520572353041375352552067165459542602759538429029954700775921230602008051512910018151307063968220890011899307310737677797856246196475387272520919559274217338522864436946708036873302095955163948312374719770502772671326565113180015198370945701373611640943117269781279589489433327809964577025505030895530430789527124963665131171113207225399715907467438117574478175454688021175751143752939016307550988024712614297700570869591074461922429983157427802447128256846411539331132230783925015848799200010170108336017223977978622205313378091593247676599672041231232464441799303547707733575122598802666831671913796747444838347367266236115432445412478615962528837306546247181079070174309429788031122284556568979477615570577083151011376219128338686826675778110125608541673709114822908764770427223841191220974483443782329930046153702620843299795341476379876754139609644599367575879183393726879117520109758684204907571858114232561317493734145991421024475606509807217597352017876005177484853613280537772006375106334744216515837812169679376809863605471050411355082334868847783346920316243467301369758998363161239688103135385313090505063126402711305886430914488960634270357286822830031443579541448948228589061128103511771132673768323027630124417800498539930338857173335972180817413475930187875297754783140021692779636547190315848695489858594220535945281345293407620223534605036984554890999553160311754935904955103376446887186900238025310954571254687440054647694089918141879191721293166426158006465234048693330027139788861773527750549861458955106558548264510871508051017391022272777272826177696819472840140108348546917261466388638601693124344333140962644644664839298773101998193343500097418507467237906376848857576711745744842631820744309963367802181962523433942516780093659605583594141938544811314693985504533506255435976889420917336883487196475216140029890696525957652875101660187774557010223935112305932118102997740807920912613679233054352552733207728308833182217433297501010968262356209200520896947584625245285502422379467966689049795896618002484651641229713774628086891604918896462993146902854718514999563626391325777345685756883831237330250393044704281859337240266991409291313253940782338125960156479844396152441712568170869134435091605178738914148438700817672802022371218053330682839779281410209454507240142313351860461512566191348666412224863478613882022222028456560457013604708634000668781556398680527217153169261361470212199135502147696579550329214638283058674439676175716061270432089326455284683540260504215874724466455531708552287224042671476912165802007816830891702180999615703836997838762251805015722697450732644611181152791386986427541419822433828961293189764675587218116319142496405708740838790343984177980085201612281193578656292504033126577323173166978698332866585457332236427390894263580169790955678049071618234003286183448400762686674681374821297029602673061179195757449757777639039713437910925437152891450376271489522470580654234858784284749370815920548912699696825865724586334521327772100770971097898106081286811320385902851753603833667529144622331180351317490913982661170326594606021554583193216681816788396940206299327644797914954405713600961977348292545438770365374839953339829629334206293257890101389554454185399304687261553141199835386864752285830883625676577177634936870783963891848246228238086831872065742097742550019187064642752374336523801486355269031633666641178879850152225142141484371850549649569574998912153597028696615885539121180878175240749802655378120181486532535834384076243560053309021107743969360147855046511891243127618387023087659087326500695685448691320682382967955656240901238226956730619438226586211417509503523619385608195936096724786655431132167604378542235280060255489077839945982010351765456623634354652477564462259262416651923970407365459704982013735436659966260074010868590286457111600722802540437805632729931627223825049929694137501662545244516616347054813566969663482116780854215094617743319872511266718181441124952829468310683795784470246247281076428724599474922180081624738137675093275922941854299072778505086471482958161178772697851263342846938206218483615261896014642095635723431645506437670665293820515878951303377008941130170438048617715305302860740774608288235393216769175637254817965866256460909819140221872038193684477865961239319230972002825525646281223298986461333639070435946619092831657182817690160465934625300946120383700144175207938158304078346830064465157235207478911891335267040248168532628618738439267023025581359697728845633653052436505172582022942228823097222011185006430507874222837065765746338320748129299517684961231565626034489749882986740883614740190710056317722899075500728395572741630781436633197173518829441422468007755195179273123325773229756310499719905148886894818534479019723222126516206328615892504737329845405881274668141875471717828457187566495701045845002065023140782037470022717535912823351143417849178381169440060621404516790260287743429038754575877563929498794908520065735766182291392085365386101168417256309565145323317475270065410143164674126824645583499637857865147575587247761817233246956810556142155537635919555123556653808201769513266003778621864916472275169601591762425929670212543326982564755672622776022062753995583013242007126771537703718403651295994427384846612528307265469227075595291111622369570046081270701792634412089960230595972469636503381378352701015666172612206745981020258155615567341816961553532033104617470766950504679955278812049036927162361760768131316432706607076607512247986435764993240876739352516228434962899596919449879722960231616857070462306180222393074846424778208607941697171636964091407133986729446409871355362689345747283061331315399087697469128820884032852456662494950247173882962501696066192642413426987805617600722084390018346049973621827046255793429502525275832016658302095291611587281906921661443105436630980160927280227825546049109369683394668953356772752036987634119973701278212832569441485208421734202650525979425076654564149054963433193769239366671051987473941160143452919000586979419054625260244249112918365509998094844903178735675744143895468871093601509027089122738603182514419030076195481390785762179278677285843928444180287142050886847881473279374099898438371347733667972807588213092160994699057843773301850519747243895930933169148295609756187713095093115994580705568613581989206300932773301963927590173851822265657085553759823930418607889314517984458858278743270183167650765827275438216636168939196863670068994733569416343678092538345075170164495913533662285099665860456566059606475256496108670070178296339085297949684229217848731413548317660699311464362622639600353547627024541204059338506956664348770457048022774955677292585552753267831577560431809569366004757639158616311498670408906953792205727629272315889312192544028480146626375391734487296417847695239266867063733025133539928351453752855500342176958937855271000839204516948426511172195150236660009281859592966857035652826048640547616795551048951767033535281352613308988700885327144762486074487315220403397628894883758439673065732023260246982896064320115020837773690851338609841465977699731429723215627862274133684611737138293841172032043982721161315623906889982543090226250786941494639836348941255997569006409536746055099530410114601588779285788297454302489780695580201661901115282913855575043124818046476424420783343266013377768595414216090438943247215344108570276198717124557271512845236423694752292506937917670565222306644088575225933755113056680119675579163185971561348781226648527548410318988800347462771420405705505871236555946963139130331750562912037409434876508213987485553100901554088366452184071677142798414760314293930270804044248639731205541583376453571990674040878265585220073784363872870435146349798717799343979196679549247862046050440611183106169723697193152843940818006331322626492741255021851534816309996889204811099292295253891979614039688082555759124363546308324073027988632576304561331387091125209424942417757091663389160490895297969506003726465290398821923073571960774598097328654852286179103029927146796232075833547448429959862416819275440184248167146975438584288884031985788458463566861013908957344904385061305702231676680126925358180218317653584589664961276963288146964317120350248782549003941246989156918438322563698259538971662297822719683804633901327400989448412189194316520115622341177200241950110086044332940397130615043492593593028800799980673335497875831489552783536781296673163211403704791330606736249046482501419627856701865776337865267773428017346313437941720131820937687105417580375237268402947004099660915409106281611542170992235051857847752951878494894641253436757033526585783996523941148295162454506889226598047587526677331293592423093928199408220271799731625892119088533821467737295639391492092994287360371742484823602747797453128470103103271146753296703387444826179940788498128381529514462967242934660039068048201241296832568644264046940356056727938057740667474857843531421082548435198012348982209258345972342751440933277951999766392113356873733804452502147016733946666764779060791022959600200505842472809586978022786687635109274733847707139921148803978614748198281151325815681767306422216153351213322005862617191039031163296689525260049044425063636697347681176777252045134424185050117744416364850072741275119962420122124497561606204404315940771976917085876593780230730672315200383609413575284043235842935812789535406790883553505923136012224097643319559938992775566353039333980243643712606925443340722415545739179245578520604504039703615866989397704353507513178708798358038017158626106416904139161377775965924963984065574935896558672754959526034061366280288477376223292463314278843307832548115487059167747924316846958037249658990567571839922429891343199209935121683511553516055751198062000618198851568681280789883874254167178152764981855936498745971095699371304969790253218707262395226902982101119205082608381491411388242037877575885107357264114636530594882332267060908190046202723960971791296317169372013545708539257422797553829697247650024960278105392731095681116286513215002036269364183448585385030021610686261587582906597654843372193413158581250959115308231731947549694524301076735978745868856859650765934005303898657443388212605984669412803334625517040283547967277251411503973057308796573706901176260664268025163616125556464083533016807091965928155037072997439049802728031970446582915878439887229750719868760817770285949062228203571442395785432057843534351566976061159951008023857557252992058002700130870769027207114763841174004763868321129240494708082842111542957892352038733914864617384758289182131034982842091885099852143321619911304221186288533593979190171715807430043560468755750939526850899322284430259512002462869271441427006286060680494085124674167529645676189796088523660900902775741037106094097248705618918761475969313865385855333265102962093743166239098437796746856097935111889729516802372151230157412633489355890520871076828000329996133349640616438417363442112836377220178742576267911399357075216716486265260805625523350769106267161239918232115996351607704105817666143233143040049613771758668010508679361835305665718864406213942371813539050545303541913837943280161818289500281870623702136466174353198767704597976237705987866311826012718256508401766482443337070792319067451354560484061127466027757894456917679255911021030743926572182811672290899891388300918314584054480919554215208346332199026956957267055341339571425997387930711839568181891072597865553741870057038699451559448520914590908541159360320332237570746361357772927562330929780581290325429106251940705095032188282532424211452409748895845304966395009830751719030288945733684326384058038268894708734699464090046498117086504536710929754680240480175051739560887451778867783278945376935794298255094445795373790138137784659479999793148143247904110259630300077326364467809193171826430252041194533077152988372812616024469374354612902431576375089812227990344405112859877199255989651934923799270199338956818806884960657130961947406535453251923655587082341835500250894694085398266789036052725647187589390450562233251948049381111954423870347187114258069334457663537866130200584540443849277794662978160409644016831006052023311191962711251691589768679849595454415726581150057858535211530336246881194313723216310488147564903879097885451250899677192805474361873652275483088628193451029195772024470176636212463301322957600386490054365815258603683891736163992899798416591484920820018462867036689368769981575124980619808215049910023331330662721776344615261304307627599228672614621121691610024621642351017026758030719845166703321758546242281316960616807673802609119814275108017675054134498507183481545701614622823703234397216013725323630213089133732204086049442927158073008104604369244490488485033140911349314160774259294898160695445596835182682697220333329967420645887169252750623418557736875039851541445698740194215864804856019626675850536897662618758180665364914380171906090277883134094068989731620315375415973861341392288782058258810346572929768380161718579746011827328568130429467759874584327477687515942226071752688115678829525417727934644437051370422535841700198474313536106993830447424992338139903975161540015883392023686124978294755882955936874889824804538599463230879503614127192670231115997446178463220961904672972543109801664431371119915125561963615164045083287822238982191611058056446515026784970616153321232302460009476878857353628864746123245185990389267104433740566177039492829542798659054189328494824210942405174785251327644307388421299545708851899975746204009355528373442400196802162897795935815243012874141864640982839849565783011926662850394231144656772011755386397527484413349425790376799300862815173871657773513614857719097636836096606896394184543009896704095289143030516654462527858493772663289616982261294325367359328565538819586558543458197344089880419311289429178251921800734682138928576893202968948956736948451151622798878287522142891200997593749475149417410101971821322878176646712156461087437053097326079265207843913235815981179814784008904490233061565207477691892342767890892840263154497695290206771056604420908450777335935211672007981268800733088358439001224880848316738829457429754694375859996961426200117246594345866194076980719046070082938579095470020562439750257320042582309624668973135972969374186826225193634419622309475868714415583219373315561414091908839547615939634431664288606288760565153418329646505346080602536429338031883798051749576975331280867101418828145962526128627989589293507678552691564338955162541814563930302086104887676286006428560270720685044730244841270422259062718832359779879754599531549043406072965280727174782043061637758985358089573852285979314351839949527084993107257169177405657131641388987344295692178062516723571600015044856671179251382655588281151625977281137144235600311658040079199030122102993675722915794483842670185620721405847533553514611526128293607976535044156481332669842393218246559419240660673681485989287607916174290514662320270823109845212772604994473353101851618503623916355731097520573187663748371245633352891741150540934087989542991677638371793316137789704044211733854126363751181468759131619509050203960493723120234141416682242609413669826076101631120076774763036787343408734228373957514053972359812740565092138845971440739933279911951889006625645538406809868222190486231434998860791750967520563148735456320484373979234694688627396798122215045021514668208253460296284516635887634380188993401875942037928132887641839872657059284014933924364463006812237988271230589722444549506591928601151998578648979231719699539189972480988512215887810380438173046139156032623241432792937937773362412466402186095445097339318850025297514580924010682342641956233887470245056710925267642928960852914875590958924011963632462872115208455134921065225177619559554699346814832787876018961198502798093416732970117753374805998380830876791311843435602177434529883127691229573309112136621271469939347127143462139267278604186826583715840483374636405186002843486536493495591684382966556969150177070506851212985853140648081601639991771694274649605084421262307212322075253811554450510741899964817304396418018174050265442350709842663195079111783979347260110761440781524988683576879983849188538936168600384952414531978238863843662224118061527925175291935472015843772691250035630350883027290685029821156756042564804177219395510124235863640183854810760250984322101715069260353229284810601624236219165347933497849594647824565218945236304039373452609015382596542871618750067658297647060462373797138224256745841553062522301204979061880650849435627142641857979819302679396710061784163285650177426177594765219083486735336058065839292708686143805923907256099529109353963151471272765889232622051384317574275564508384673422928384286000001747469470763533073254005190079130327018060849190013540646270654491898988362277134365329809815861015910600131023767204690404649423671514059448534769529889326472840252268481811585163881790232608939559026302150666149109825357466828798798551810015177803998555730140760396711819140289510487861657519723603237389148265696457886613952352688864785349724843914804709779403815866776162999060585737208797174935756255054944371098514539731736479983717870434627226414367250359721528356267255192860254581317806863505169307558254401243331701054209312583686380293089698606693931391752609171528337637849594931848603647797666975847857254678843211226945563947953128804969338484204515078370570144950402250738918744022315501260445713634245702378089262837793571388128334128118020311130069005117507302864539284055651075461413565072674972097148109824246730842409309907441009716329981409149992996886220948209871428893522132940013610544459624989187727789183003675555946701281831508479459715347118868326714074584270348817888094154712850683122519680092224275884420591409257696440728588137158806838143223175681198841753908978681607274340069130442330915850101732674920481940842975045826280938591971614482236871571251446605184371590218891267780657031522412652726643163750486154984462051851381011466679146533746990023000245811806421635896648147291610908307945533575580529950894474803438880285145052975541461367915780040514439617875814834859785732173904231408323713871917764044120295726166847239564274505419094508017912862628496730959540661744773649080748291195749849907350573815562985712779078822962256442951811335737647635075041694859317484913291241106516910012579285955400516465096692720916554574961092569047146376844259025308357137543948012744901432683837437140308510678532234743257854545351688084393826891522335294355433670792747718456787502348766260649251743322126732992399001683915766629192656489661359616467355298079976531918087894775745953936967738510240680274483027761874884388196561027791232708238964206552639379149998140297645484700030589799075215796526253552512558424027768291313098985484086632308646119370492385262377255924362169792593340928076642314898618919752187986555654152684043666524795325795914544053611072821388591460141715505175237212721354711334936364256776570237414994137421397339237545593622948339867772904776888130940497756375010285236795440292271598994940541087759921634020280411472132477246809908216285267876894258620157174685413454502461136637480233196967771095749041555158907873516985307260647524926386496877184642297489438951136553485384073182668647102397419583329299748136946023523578317911981094322922981253489915900085688185234837125127171507916051611404549402289999684259739036237028051750623096801342188776995769200241425752169637121609098920153840017613626778534702731423439694377388004022491611721957332319284653627220037287341395205861489283828933781638852881615690007861130430314546795704498936587184239050781806375059108642972675782808187308466663134141560488984136427139522873545044855296564473849728107562310189075860317818915155515398919709144372065036805456237097399137648202862097087427769658911030762758032510478321519370683128539302664029651028861685558365214553666382608035398790566311253507952680236917671440109082996661059133301818964129524110353791023471591661702703645671129512781343877905807130474728397837191997055204983168335557975521323605491925962587477650933663099571829581790884724803159196886477407226451215672313787538801820986903332159208649778269462908632195829214779401627760918828256305593658982536399465307030225067241628165243517764151659047420453365303317211091465630286902680843640829749956028590963894497981355307161065081461028117530286987369927575483401983827815332306278688132215923499468389707628737338838154614763238704300967292145865548363124774784975940605376073997630887465828967310168425833636956601607239622541671917934395227040994614342353331180975071524748736821214220209030883169801721688799834767873388532410805202541126250017820034653905538592799578191340286660749747144831657490584703888071756086398461374341769292835216111084656323721943555137500354920792293470121876426212949325368244869966127752290165798691753565581584715665352774233087415200032959235572652278554337487987841058775607844001975720502524197315645620120370100593154618581669842287300652694891177551585569389791175437103378287835245190609483378196520113276769110682046653207100673077795897559353893947965411766607811933395262562464600976034945076836307135460234595046041603711864642315416224798486186014178903906106894061552787555020140470530159712351182390362621509399916507751956821536496186566471490692276104669749115880914643136951023851094142139393107447125887322095927510835789196779314848902219200181249342504904073462135610177438709192689676524718518231524777951494557973303088043158411505416559199396518424122990962769509013426480694130725763611255269533756713585214081068098522789413642976018204857724874979560899123975172171065251295449547112898841733688171713665021157130277540106745315102496853911779326438060769028713590413149548143056657994226125951250481503815132446561273135156728574726061996161060835205896802215953822827470515451535626783628843387591043593315165306255326976058213308785150715809860006263038915142697831172691823148771040524750300974384613491081801657846607135807924898408145636531864864533539534672006936214404254452624627921855370971267131682750085696626636540352292776198750603552421775845875951376797142640434959967385068695973413415615361823180336321201625131124912518468501264524958008039273043943769875771095736718130240901539959133137775693210197296955322992387449323062805432257355478487625800268887449726040189568235274802829244803791944762273260702037046594091881603087429259526201427462075057134575912730236248037443869040587264682310349088144085032236911282492012098691767203059649015089078499486847810865964712049507183273176378616837667995895843654927558089450349537959636702641856702303989281484522570670726258784879591617850678901896579589048237873277890398509565733093312977780369801636065670568511541205264746969428506004912012651754390956883718126819519032966380557131451202117821617482220596938836754668069377052959550929782584694708107591143703206079370711926585737462401882215696312969782324916022592113435387673164971343558218804437298773328234736783653098811745826578640205799541638278964993330561121555128887166476256133383045212376555825934204175067500253519442497317779593727724667791170432427054892160851293962119015280924128992060128220949117664561555024880327211670099285275637265070472420329762205631004649026625984498170785776480299318429939322689783024669242597767047683682570005082947555737881196729973336661219875845401962269853533117609930927420614314093325793680814115391675413296086435186250385028800547370419256330939445392196251511560008700139615982335750969713548164203202373588989191081732405712946805193865698140407318254866828538021451551181495250414270536835605482296465128379699717926885555414978673788749928675768171281703253896387485086672532405454436399917749033598238538291838738295550029175922289911736524803735349721326703422832176143518838120785730218576311862362107678093349100856452426472769039025360214776804080435735528070881477402709325221121145393411173930933217314640387434445497469379238760022765000139745565792303108006872589317540867940120476033963565868909396117107677418115579831878072551064631535301244256802820446306563543991703722553030372453959837975540750283991453952719980646084441748525018079994539782390327722264152707914592229356463984598102578308537797424324473900880083298782467454226550962404471960720939443917509609045097843655099762433219765724579271079434455573063624315238724203644865350669776983579797952577216294794190951102067660074729913273097626936295385196225264360980030774924072805202428799378760487343390194703338047647356524708759416091153081660468160816942243074541155481690709564217409526857067444805549200324395242528565212181756939851547552825619561880912510686196116489237895141243683469852412802626131850228620052542913338724727392485219225466821112624307804003517185025466178649160271246427562817976977197393037352138735347721035367005217262259723730633678559020215985190057823417976294761209900506986648331337550295368723772189087098626945318109505891408694333493197165216300873701492766897618055562184868266129035253211253013065319974816477294177923744276976335749351693710466988958368792980112003909114407658282821332590007565629074476076020921348138747034518651235583973262646774427881304981677827323045867415075145997831220596355623166401893648175821266027030816865717194647561270670318713505620174419444428807174428361450563903820401346691334512699755633159663302688736522922414579213395789170248501495429322472647429459539043407272561607601997254457027467358761494186940730634324590004854852148860548785136159410197614886364061710317298203738027801604008984387397098167399210380498688832935165276770679295874408781215987285264907684582539008144894924969574019425297230960007334402789373573728053462406496716554394048593354642676645600919969596864022630376245198123638982740697556679378122872947362945206810876440081338368661834036006231869361070783226555934796349671534356569782874997736526204720067749225273239028551903556605041546440848173356467243477875879486202280965042386886361294277192470447744471025918513269960522899228850119644462676769962573416557889626400298187538372050363370945268918172217449443158319245192760812446871916326156359984932917535618449361485820713905723461999202456327477166918415048989163532087543083822839229512253224028618723484749002213590047881222080167064065700483953342799345189659468914648158575037040067022405009745035532605012206353389311235650357242576719179988590362779843966042062515617585848782918008825343256181063595316193414916363257544740510994021142669063592376277334195241255827897600035342967247576431646802362718271574517804015157057012229731556234019807073047912399763458821290893801414240397826182420411175533033659020969181585503314566739675075366740365560049811685236161646322663569469673852640027354421207760750248503513365763609345455759203806081114898863235831473443067981426272308330175488410963995326664129714299291312471266585881463053247192657489546241733214384884910291227667132820589099102477535425629518723797799883710325243881538579485794405421670317454457183678738827391891354940302220934888995303726364383165986042033012344734423239989351859794656983215743874231648833771576493863483836717249711012930065154905734339192780830040363545070907290540055913186563361094946153614424990976534473986510917891850266238654132890572400941259590006435208730756505809509158778117623037468521966138677318188382359833234570423635225333709169290588678828057118702742675922977679909550156462813932069477755888264422319040667237182177673883109005524061032968160537433460530402055802758165508772154552569308829044075555794095778797830597167753248392661319797477740567113380897235507960412297040413034550411310462990883616751222973676609080254460758684796051458716427110701977093259957029566899856453532097130520208198772410997708926521295576341269263287252523618654833656403119646258215901614722458836154659567114252735370827520750883723384410113008798071283200939562140179385159415570507557230308187496587910985529790873003978167083343383228551902843350495444340506655468020137052978391943311825242378484995255694094409848627409192483843714945248273177609583171106015458968571350006358278885898374236790474480363063426490241428443673331659273782905145625626384666626165851971384861799190392404352173900887193954540403434789618640626366522283731004594954190061564318361465396166422508828698292165910246181343183012095762776165099359018748970961122766826460856582843109024501175692015727024817894062220726435037600913272798004866156289511176395056101227087395496278945385603761879625962129275735017370504008700592308536465504739372612570861111142487198384467275293309744354367551897704500090516924214132207449155418422420912072214943361040252823040957154336137692698814750905678162656636593163185483570833649239143012377262545177636496539141330263591925960954741171243473762341706345839831705800380336853942483165432662512849167428456057387235573021885637024117718572208919082457344578750708866082946618984929426873254120802240857919683241004702834594193489122659122354990966280525600483945063963420215216508531137290661246720392485067096847269038270280699212655113168836092863198855772559202138178882160180547393794930660357975970953067774125362476308762018640388967073479274039769209671600509177915357417486310163661656552873278383720069044475474998357320797409445412515287695765125428427587840284985630630503438349516808585221966877504463622533098326557466368336228799983729976940290648901189608758243228537942673858429293242013578001054313252902498976187817670460199289022691226398674051149213635715852153381033548076544763170016739825861655400819079931809828925268342793000143553851667487640900906320631512078556635245650581620736623439924370779578514946155773562537477985176197874906152873130513625744400272446418631931451872425531089152958753566242645318869643799375811354422758964139913146530808780166334652500646086288313121366582523968596830716818527418619157891616535909327920777465354066243427457917816817338749933326745338325734051701090446831318931407156396679615810436881131484248893421369645811677025452444322639178110685601429034438069176221668642778242910267053855478723889944680944432857329187801460433557832722068943332073614724938961991610092657118284996101139299136609816830706638353208065526167221228611657554901608140388430007685467698130085418576548701775195994626708244836784816108830057510832392100125895755222830228538739210578236173292316754745276474723192338327537104137368758136841796481907156751969153734496739391361508993235746027797610978285743807283150549267057426234447570291954642212577003989149511338564056694480143265654998387096353855077882554885107054225759063641108608297526818620226331677171694236303344375363181610743410187559689330943769884305403913114642883547317603068172365876473284028386462387415253325968616050104441649045074678547407929175136608457242870353948698467067214175712495080758620736416049702769401628210979082559424392163776312443374877747788469681532309354554701921425422055080672235184615185129054039828334124460338888969971016377556335075080931799567295630638048508576993678054638473484819756931976724725095880755935112878765782914379334401953767580494508803514119667292066267260536404187358179161973440807614937153409368389084661951135658535621459923744568315997274940680232665544800362694475646567745409750514751005478892224830682326304512391485919853323246731209564661908337284907540382899377722091926126151530780322453471545617505708974862801763813041481281441230627966155429438469807754526859005758734971570727959049948939502969104435900836404686341753158986310917766856370911967591732303141525329889616952226111679803529194513508102757703796717557965770206119528023389937786941442038352599708700701235864686406899639137083427073501178195088938247567695430824211641080153093808755432669913033626439133512774326989250258294924474530288780158294967996142686714471929574186002568932752652091691194112377753515577842813552859427941754554635427687540077414017223401107879092201770590552663315422313649933431199796277043224943250930069462803064286737116200927603140036065513871675997656707582669668488909296144630628450816204909902196080681238369125086428105764654101176870417318033252606277161177036441071717023991606748264439534090001236738128862036847093851944644111688628195927091178525249454838715059464130553087084159483632849619683274473708338391458341115245701646750367171076776265992816504077403502242496074738659524980249803826568092690713805278902189782855342456469047388180232070300643399184161390615955591448112663564617386113764729310693629468263440082909156804152746315230833028334646056325828359422900162637408422847317028949482431348994126530826875172476938481632850407993841100333762869861459831780202831487842652482185816176222530053818923959999587436195057731628437412001669317707467531522503785312557636378848090933502501080790664187648596846465027992207149635133113555413425725230038727523205709012704207994111644887730880657899228198805451268407162292732426217596298339690597976107950977807276154530227168959798001925034303520688016801927145443377845822482070229445952531844812202294734988645363937352623113281913325439413273817864483100716744564274143215686502852837136846334102818584465253391049422739933843609898411096942931812226197266790321435552672761201000770472176867260190566559834774551566541583890839428998534804838022024086578258003844658243452035871585672695761137490113096873694948524043288194613596921405900774128168859215123165637206300018945779262531976466461462885382545700635944414655474697247408031516214506396048339181152609880509562403018597443300413869182020824153250601547769167311571838234721098535664267225814029998302795479524580664332896115095645811438514841703834817603919951755343522172912618489644091023726114674584233736838899707831322122699682390294520026658036226999335391192411896030197351897002348868487030540951861676744699266254364847294388725251243986576625409030913701515786909497049927454471656034540867595233372758258441561638594580244952418317193494397700884459178804945914207922509291996497638058909601122731679022196818699863783714072949311793932873758695034411687395773834527555280614226851536292358246482604290604217577055031595380721546332257028819023948084259733909023318330934648586829186387737032952540033069172796062212619809068951740089278056349626639081241755610186537332104333461482029631997116634045325608841276502605603422719018788386314605031110281601453916646705704454296631837711095898055919083359071219171493486388120099837165808263913959923737995279551053364821932895840213114530034890561566510423044234950327225370231748457962123382989022305191766700033447407720854961265924477566680426386826791344086270416790563749427507286892698501807143365046941619716985215795577636751246562318689656532873589117972749715475603316159735792055548714645758203959551297677032484494812974260202297537531895795140138608653537396828459134053973503363247441253149226825503811093518447971741951067713910307696765750602060342051733807918433786585306838174639125707089020015793453850930990790561436325161337502984797346992459767320356263480966295335735720626935610116863066789816651827085939087691437950558065993218608355488640947277235847386957909939597375238379848171649010661323831139958982901542441002104381586161346112625217247781062944515638200486086921643760944556458998029915227174409657863379055059755053685648341243637828996894180717211258705251981718200976468133920503915992553273466824895105113729769002879904132442737796873832516385824674783228297642690088196259798651346982732632893449662681928445325973392893819859052188448387352819820958812112215760586793818381646957821394823675102987963743721698382272084794104545746270066742287191406430835671512004436200116194793472191216050313900868638555002869718612389421481273637649948024975542700278530014126458304848627403890783225631827309801550615054314165565723996031146458647686108397848989520612616330493913551026865610078639155153901967991991322544284789950578653337106187201945242915625624287066346031847572745804232391803176924631518707660402910796687804248490377607211127558806960753947673235294825699054279688009973817822940841668376723689906207972695717641644474101379627057408783356387327455302542961931202908773683538770792127572431683585633005115769361389028207028628735479073186747314356668353608508159745229903220652100291418661488630865256694780433901018931089549759219785929517561287654986623159498385188361652712347988428810621079701425522821211789864030195235418453503951370442929583552520983156766596575380402381784603788283589473600555667285182000774892319572946459893866409565496675793759951815312067629471376477171874130639883749108478905939538853664909795077359602532265722251642440921862527774024128815820637089351085401552887347425278979452268301993060866309127562141670093543947015668631800772218267276371943071289485099030980090133758939902749144545887711473866249312241304778533665714500389630111325477412808199904248634737627145802961043377782585960972079581981339625797171949296385736906732933760514369080626691053761625150701922241337507028815027847340846145589093660839084254196157479385321478862875335296678134618215855650207957561329344562417650998270901244006489184023258701101189219505623296261853643291210569286573929745150035167502372461258155498628648578392871808587296150778184508457665706529763295648318181132496511146664939379551662426615708440934933551040037970108032117654482401445384366209536505290342398810432259407214419602169651524339137462222676983394311015083042950591697853229082002167409289725103857375189221499482464818387101580517901821703602483027479188235033322450970738189888277878212158518381743678780052999519040793997197109146786327436558728815076720535419094090332566608446918078992761691191100453132526417715838110269334589432570586382600228207089774095716340323037538110699270004701607081898902675785378688958118415249198051688420402176545238512378540074906611956335521476546262463766476456016593208099370857508249176082893200863773214969870839420971426196851398736526555557062915923340810006133746495092169766517997049135056808241788409197997517404566334636306267106051323274927893554444577569677978540128519681101516046119362985627860331637640993813555222201093475243689529801822106190916664037054169598385512677539185679669152998832521969446124081252060948928621284207795881179961697279582885895250881340730995477618502934267738951347569056022993022306263414381205052505100906150798160360155956256931728429207911237543482530446045020969447362064693421917261447016623052185945376492315613769842173100292933793448405503692700945391481895922223332592672291494002604955708147217537927751064891453746741079578734622601003082983376774212756226560850307143923792627241604305452303934264293330166847408495320502919731748276068579001237069858815244740249174790739143360918382013501888213121465576974014841554930229129414644881403210607653980792972219043021972620820053277898469632363004345446468285491245612436434963936011897518563055224159982451539084354858429453935633126086990583496892599007941608177923050565513952184567715012454968488080438848957140872752274234727893128284171641565183430004834715996680933568000077506871479078515441864131945815497100807407971413280627581731212068543427025170163538107415151494202861723744550067992344797265047016300741446518065770473119712521837577204775045602973486497993442475906603111395196833547679637515819494498819719430433161254374897271005710863606282315087862465566916212971982022749577978403752320271380066999747079851641355812330344184460366760884674338995397274797613949742433418493138252947208614104430655762316418890230054941889088643071022678122678814429958126316854103156379978125234659283992344316870691450181566842271814758855411656387089176065532678777579444032049950647820418906901077940919865022701319188399967341657742863695062060664797917769881421523410289805909369545498249445553858781059437248414403573512780561310240818612290545376580671214021084415341565968180463445938454205683920783501323200330164295620293018306925020565945243903406757794235592615010103406054962421561070668627782957987095278317287698281163515850986479124303531435082604728785847633562622775659635930936452081743069456792365846199003511770203358242210504522035996459742667816893283387135765436125581312668427969141431109183952992431706728221454139761622543063483554413298075601532232309402606843630530058344391807046572826656854580659106925023818194151978025532069867664577662831152552897071812339415508356907786608566118454106582501424560069166116204099951232841686801567021245469258673193932604975783647177455454125745643403219737540913013107217480366349503940743119123507889106786131862242806740560419866113249790784513259479236876887794291750447038367715167291206289020302856577436400761545241035612825583273739539873722548391468436193921887589411323109651401779793731013264528525438690308924357870889268665335692929616597131804948095070084011869014572997257702032760309242862338739506810249770557968235803876465248949006856847474435316311950197082306458146570582087592885615769375547181129483089265462204510303016922334018357399231542506938029055163119504943718495495091690253339520244642312007493611504903365572896395768608257131162816039495999760723490993731424774817138957975932164980873219592955440472222158498208639185125857673428583434100155129149745146607693597153075970293453861598329910224407497319821510219791924129847872564192226435893094207654588741630552216887897701039279470199287718925765180938232593288509299185747203359894933189147088762877560915790869959581751058379744291327514824296694091707155548955669515790957315663125279462404577429332647395169094035604369346163675645585775386204553529604962536867389183383848055745328390046033486795118887439438702652829296381208998652056231923555804150043327010165523687105475447769219569484049925542926653917143858039262912033172752790980737907630006873949291526723477780908620372050116740375300403112282292927757906780286722226204819951472522511080057769400084694804575595746745096622009375198328302339321451521565269779660494294113819996864142021502158480679809123742415855778868042511818458643977468742029874967131494355056763980641185466510387952578261843076035796956829492516854633613838671830889458413797808492965883564607220401246178323146552591283601689306784230957597648121274464724803925440731327897248942763109412679358028254048968005456752755934468716392736303616331289930390519853827869805461401052719693942237694601053231185670557465351086260086729452487926457271031366648903685864628905399835380568478478346339071192368563399342503850250708518972095083839442517257622627845988460651718081742152603314792672447344352573031623243170749603540069816193704347412855665356998228950472301005821179895958205097790447874544019752293092312496362750289417320968515948412258466558078976432640895365509619504733779830132216898616786194636216149298646831945499370485258801053782748085342186014578539623091008879851425791277083048964632652088296305725027231076057042271273839749427708338886717211716802784625195799734720944091429642564678600449885301962009765271121885537975697676550076258135532619064176611966552549834309366713085649926239860469068590009754670385124681439370584022088981326416404420886429244517872275683755471103672362307902637220953437620617243671644231241766144572597583705835438740339417886824606791537642150741896580885596314461706209155196967035689409668602961066047945488415054217478378244826224123745720265979421618292658168710015483074988315302465258577610157270782618360006943035533575692390302484943162722921147236633857411359130158777823009584841848673663897102372555559542647134487879983820860839896611291346129204235456285412349227548569680133966344782406596994048781657804201380477013714629443220808544018056014871669741791952293875381502111460249234534774399011343632887528555927470546004108219400139610478707275901599534079708272227500619612674507501875402629615149279497942699954721033291721258013120597464641595111536203958641203652199058889500511381299833980661144948541431159209542715449505057938365925802798682611539999092056009267084867575574625752420863981930018168854898848179248839087300909558286652735928404617501093234340580542776372504632676315403617208902124252298863886598918689664118935773007611772895954440362664354299716622548925822892842903895713171633752241397785256326474665735653041444423703153713310425056110492883435228297650393808789253698444866615728947406040287473408263546769619413228415062198371999492402879511012168631989154097956917633742179874948570624490432349280778415158877342987239934242863614880635583362352226445267896671598884568049587206509893269805468592074145682040550915455023068566764532872808671779526593799265685849588866303409169845739617518339256714758559877944613008516353668629124209668083547497435060178421148410633624481622806988650901195931662156107519490130208834202076974870200906306326670620690963179052189842068142686942866021430750499901926875964171996778234845929655328558255668907121455057389443428314678951806944208386723686873979516632941012644478670462545040380408966102998337844984861286261472133534641364055782051591497623908323131117738313209843024452246405308268319284464908979382642335146966917227742906478428932061516513793607496342758242535843896254705398286940625750148463073187762108152300803021568064050811460233076303512176120799630833026988158130447639536930873566194458475185663501166969867684255006661649118513981872959420458006834233609426699705035346741271283482000467424169802754655588347135489238135320505847516146619661098605434528020710179086812361567732084213810591659131845598501274571695532252132620123702141785803639552452607866904102618843964290288831726682769836928641373696994854380561070941750710966575522372122423507902461345614212483923039558055008757478669301646878947080242972492629267123971979299582305306924228257092871143024762368780730440226525063106457329393613362736843059395052380657068001682905509303044651492838759856114256516084969668770509633332818490028337301381961723556662502698610054802793532545985492545920753503623705846825829294007145052458109338731192297133171628129035959561385327651019075438744264790734489548562239616298540839942095471610147973966514714690370026141043418667248526234641390089451204078815525226287605320084048339214008970915228484604002828684499393942932936688778275232799919594916756111277792030377753532844495000306382223052068389954809049621963202137211537577550359364051702996294096391857196280530592137104592799957995388062357337770558832636869630583147526752483444032486079759374605868494029564718125674221818802672346725333800282957613693953565636842519167220132259597562501795945172178129112981338924508694650677629593639099230533928625900084835037747503518282320643593567282534111242325713950105287113966854871514398781037294145783050011638403892188243587474372670513690292374163183720359868745545993782659319439329716039011594621806713846133317872650169539595325224574510302770657387551563175427183767112326701975805718646522367110550740878134139240325109399396312142635493299084128572907420528460066782170697060249292913601647156076154750653342073237551557433843859020632844226882300265192813998647530603171714280100729728068104234824433450472346964731882824947120394355442978737877950052399851165561381309766159430818575224792706074486696089953497162693275556990483592347709066537100176209536940880380716974336331586412399110322516848223799606660849205885686069789739084409898307087550110263100248708465863793030450426754343799412346670048170717865477918326183804996572487759553936850349222630678163716128480372213610669605479434030494321063782871475236231632754263295486908812584427724775715911516400584110996932011854187877753622948675129366242128659425544351942469126210918854321095066346026477768407258348955176691657783824369185183583764910144992647629633257581050781360982307164950043118207522945036453997033432383699503629477950905358084986167963559382224048167457086046419412049280161198968233002070083151886914949023068686914872935676871130504588418084515442326308364837398669876096962460872862833306357378455374167193305643349393738748807484739068886099971279056185348433366159731889211643172638869767241240322611214424774296427834174929283344806984655193018258890742070166769586288429323322995126228340482464439044730811307128277587955053349669245302200686410931759824917640918274852089241928049045044943220968960187228454066391055463921928892919118367647283741864223561073103877040769511737245243320488622924791798523350910368630293145799477970501962987856645484552326674930736725161396240400781242009416854690395558087221805288094056756588659367994493009969204959919136509820278677676500668768763085624445285394882595444469510658923174246488162988355795880118969493191891371332293918787466335996750900227841762111567107268553796192895651520149801148746071817815352576811462514117533774788156586514316253569072066264332281005474101826239329519383357465501833006199361737892114070503169563780228890106825583262778202860206503509878260259234958800454307987003643393654095703337278994397032402569160292514543503497988441472943732436953668381282680115103679967341564641303135411809376873317251024160675206905830158617038288652043324898534220233857642507319757473163215218399443790690080694553070696241376421461728460701624289280695062598386731210476359557255537577194792025595575221200880645031323746668795717322263502213032124191732734263160949670671267912938169602660430577320804446823058356369184358168502587062755940153585629959827039048578819436325544863193994129871347649334484877216334880911474284914695713355172728520946450423197258860039996650501732857856447407624904766785020714610398553189645838374831791614725385314072823683702562219170101755655281022663221115329542740926532901585634848655548725062143579912640574154542638612768243334663988878101156068419467795613674494708260773063578634887310820821234648591814958036044948043179133017889466527689462407590030153636509307753958874961191187774369893185727148237419094388633709258623071494202608569085998022138272838869682755330241456743058947932035947817493870313427247619771426391093377913400397114925551730586757427865092314429912074935169949329890816062841477058658962313717851157739890484257480413400093622184436683294763867009142753850610048620715049403820305270721902991027223446359640532514177641589200238517389494878500038464338062809916861056385766911754532511560484319285472574314853143201759340094373151978718201715476665207174093674170672316567667411359650891388666751074428879816592036039750213361881724256038061775813172677181628312603580815662158127298574380971706427293012338814305408784300822320767415471446091140383085460162485484615796652907792340534895687649666176328871712775738096976164315193015953676083015977194006415377105672663417197907776302352909884214827270706595328312392742780509793808752674644327108330335170707867187959007978736684511518072037381885230127275392491529674658955967147194464235250848443120288247017388617271966315104881215770426365984767244373980135217926094827104687470184115920189275699523854187860057741198747214001579562740346085126425149712390269169736554914248991828633981625051577290462001472874148571068971606382535273118352711382567238493042805310511327402910246028838625787906951022874058359442361919720296508925900997527210084286110033135621853022810117459207216283109512106562081938936850223893916571083852996000513174703717819550106222490618435463283262194406861540765786094030460241630548169587765940081464506357719172696414503993002523213523685927589239118105834001531295949025922999983945844030707768223942913017328764035602792729847650385501389046259013820860919656815952510590840624471846376093875475496218422591165590296987119835623379633647455342417113417815979503626953556505621920623795026729132608673664796121080276376249819261171360759492086131985493502695693892316467651505914510554510682100484603273856484654896189939698734785883756064302849617863161922513468103150704869356650614076898528533420464726171114185480054672575463113795044650787607479578857045819054473096792457786110025108902830892344414357299396900399783744097751811179638036385009467331394675380328381610902850108958348507176100151639321721124996170441766172379364962771859456066182556566737270901309642326784403580453578556054621872870126695663183999545750127444173817855138238888223063918163931405306351884566027081086187812333781919115818403622027937928648088385486683743025338071710272842068125016786307772485533339110775268815375969584330024237715588131954457478076392006263082634016260978968153345423094526971398387174252561698734875844489213470631510542169165240807295470933423577090262828892567197973042540900762923587018412125732433071353281994483725749537890644034804793913190557666147178431529085315830147113430927333280696277538085322178257422856321567444829549768688272096993483353991923219617612008825800692294145163823324873579600521613573498585389954932586539073729209412561575472877031488439342831311725107633711922814357775407590365962367745996477956452753676045389631286169743759839021215826778401056615848327787394625845438009091119371758916903898270391195970488749503306464418917268565952459747138447962522863051546279227395028832430914869225404419347152269403470666734267629213935961941053770340004112320812181926483148847746501700006423794809980746891412912136695789278540340122583503767427810927949287766621113393705371068768897043869175557932989409261305391000777605439525978531426226858161727680928616940584927836534507201419730551380084246664166034833568608521684480467106347803843393853425375754959415304873740337864268803626978961989717204411473178595500078611677671298291835417357602065317782756052893423548469033573310711076231466436768678797265068700774007842258811260727416843709824296156192532363601570135815672322550738743569869537960015150242075385019388277673009266167952910602438279759983473776175660900295677629247491510638891028386127530652635732350469378196839280233842632548532221784701869499648879484139190142255694772157318487558309787731668524128517081417647873899413826204843019330788281553563978515067609892954406661944106398280289437459552534559445756195221944237937582008173991246491828696125825202119743119815924529328459794308329781212321423271403703075609535492356950727767010424252959925328820618009427317482359519174284836279047475000117615116588525397474996231400606013520364416282296318340402321228325110926683864859079059353807791140254058185019192698626321257742734593411966303790597240834906958054831091383778972341420699593719091647009895919391017107976477450488123370619463124788189076413199620879913474083171770413327229559885016615318520642849210814648518975475367180803901217436144213006898197294523852349807806897612187204034097745693418441576992712557774528907829363502977340808010450241136777831211580383933651565502912482837224082803339757698892853153681146027314120887640995306135531868255715684158526304663185232021233426143612143846810999436713024464006431231481639184763538547465913185529861767753270562431041964297991035749438141021937310489127389294056896648619211690175342534208643024544376785405126945548122182892113723749122861396458866013928627396874474566554639779304038454906375074524092992976258283371184782009198795304952749812731163665119080958471812304971083153827669780343315349165845253794497312595329185685603610462311700485612416232014800427150508022506292589782119750847966739544137665039765484619470134056278660427833071454347628067929295298329741031670336226119004600113967295194152967080804608226540043766285636798056604538281661159861292769686273260774785102835875162310668726296190983632355558091302294961148130476577234287712609095173899240942526873832200752680640253774886565448052494372940234869468168713477603382293654564985814928460007861969206582006640881333452638996902200405217687293677544831338833327943821780023331551054189014752841706416032137056019960855175967478577325049847042171153506867718518813987449834298075807758297453228438691508368610620928566698082579307911494004492613169684797563081001148193155831807145372348974502733994898053408789003778433032320649329912014629417757764818262495566163474039206897156010687473149726005184052546114137933662451748803850426150836586101605000100508054465299918540834696352802633587378567919817882459552325665830224787626543048926811026987634817000026472959503603714254590716336647218532620986231287853376874475942195993413687515974100765268871349431547773504680015015951094107495253436418686914396273335633153343632152056164384674622282139875383558450044013772205289047212159376390767773594061833666299442706492357768409423427677612040016956111776031411719867380418096220454788456761274129888737588427819054681612847677367347733294005982797368762685785154189173711986133586619611460855042000305208227962373621618803404592097080187322420721879219073139547323849547868407720194935305051550273756611952750181603392278012349231135921092323943570161000991091714739241931373255193909346604473300614423707918162832605427606549017396817059098095110553867650301107459736979998658088815281849925748162864576173002851768845678016241424731780264312535486320569003464733185129120974281209993899313227390091001536928428428584293312317835621531631796168336669740942915693793845431671038919136324604307189846499142790288557454694377059176466352772076540795069722463153769263261232199393997596196335507697400677218646690786999182729968993538192343315904252428262943961009201037602688065477546913835607764753672749053192290188423960311996964017403829261806345817281144960490224355572855831887496218467865039753347812967168611872280192891320447222119946831597052442578012634096919967335588881974552152821388872497722702478553989796909778464996344537474161222986229583284902939753765146567309144358307574424525603258413418923001449524156899094904667367210232927004411841523630037641688828698264892204962331388666543443055074336223290129067306040435611996632259369628447165718403960744014381001919945025545688349529543732221531697234505618445480376422069975358311930522967069513549136134505636360451701034089632206449540453309541309575627622654675413606043236887121204518132176431725373512261937500730139774846327109875434070337355696966364345774377272208613024727467272495529685063253244025047300573563481839758049569118513506508683901844779820488522228603882270574790709712405136837229471043107399345641903200920768645759369491106930171512446146376229076174652004578129192556337614319092626215311364484346134475681805680828819137293490233454001498116083506466490094214246785116559321020125814146147940289155412857104782631984245799288753282016483805745567434323568646984021966552778374037430035010890496500577187924050149703339363697111042157732031460498951599467838468031282573313381308809024131566984618921976425068309398503068794566548700386747935594382568142616716926939215119179668641412770113533239152566292203404617723930921153166688833469186796993073781003969306596091852438619415650168774354296169376806067040674785395508521538132558314960307079120935896100054240645758920291501725173377491542229636845328937309104436628460975722054854759645271861927120403034708656856305413654263091901985124647534421073077694406770267076614345114915363544422788138959215181614905861906407695938659355738827675944616266107076148533247807991318004527854667718180705216796491019489011460776016503320778533809465556249363365580240687576099771320367280316544759617068786674507153677515879576134334069270014910935283483178782729158944744955992928457140008337082769306974649963012180373514919287989848588192564927588695481263720792851338966815639373973847779464078652240987263086318391888951981591390997618958389814077318966047997190278110381931908813439359668187591589542080407796595532437250430097840934660974756588458870805843052079131499278504409818986340812450061679586238645876860997561227688397685370854836863756383187447347324901324085719834820383746454119102988292654441421665047409785617709964121962694659436161672314311214138728573450844223904491405688305461063317713006553754624027637536677617935982652867417014238392525728724286734598474616645211786935422086612810962827067460483284063488667566089930300360440707079586970017229287149854927223440162133276113580485833502199643827819912772337814079499852492547142786040628310942911890658476288917771835334316773852574069369842060813290170915546344931128374380336620483349721687817054785426609183564568571240545118521157698487965432470904934486938518888362712799555401174839787897181695313853722048735021967548363936265376867712968108576576695955623853917712987320879553770288758848413727414162054277963807817856687704596423676159846691261471277231355550990504157287267172897151075488571136732760632419025116249729727455149304145976047710309992180229968333688241033432481559437078656234204083445068272327927230160987749466086171668183953512238224074901695442182372501106600106394181293543116921879860128714364524278915356077848048022097266542922147425191496969857659461238445053308695028417456335483033167220332241929696134569087287200688593191798470108607460477946843926210954687794110771348707571852319997156469715555623277045795190722969246065367216575659290903972972898372882721039977405810214500069839221084030030881083660800340854455260197234904414499540870887710113226402836820681349991875714219773493253925435123951627106095254291963928225577199060846432218799968733076734737162903282608425347498601213898988718656735294462799358740132244132515347625950181014682875103904888194930599123160526016050576794707173634054534977281878981413324045039093233433656780018670416759175013514551610611488286389041678210640837636258298304446349010420483573282953138688227969290043922527534670815433982236414425934877386372279246860130230833898230487572343847667576513339875644546123431435043099702254532959874919674234117835481148603105324096950667971003484772380904347630921110590029360958545970704014702811769614213549259198743639546032893777472930260569198206889293253314861722693696265324987194105198056647128184271280222229709103393536117028020910364896453379197263442301959731330462173502146320137409702134690172042916811409053909180961243140122005386488686741006319053629473265420433444392727683447427442990740469450764687091447947374202161421670657202386976441045907887389269155340002959975505526092690276437539242736520685946603867450507684675826682073854336474202903089827605124150807894117557536471866829890696119878300477454915045450010678029183958523917083017312467966338429129524991252446976857802320706948050335447257594015233657333144921365235532848880225988977145799627952368579637521981711300951183885779653331490400843026778402507498106129650613900961982871202789872417338019273423318054844575457776564868688508457995128437862255718982634568164588622962396156068697323076605911982986494641626110206698608503150368551821000218648382708097732083644038085575068827450601180752639850626378459537655827699540469498167559404867047912822821321019629812382511580097238401184092259615247817485450827146357889627822767652852651648446337354963746271170696305917330686488169962527073547365528371190453848412403361551686918463182117424232300822734621231786430016201144388307753915653711526778764280812485640825163701148185246095588935687599062561738959723646849843906547741025877622208216283108530537778737854190201796065669455565771019379147767303323022262385932905634143318805397548983612178233420348155366183798070030826518355473466477773757954915426286722980324078246874218578794699857906138483960726885410994568775095362526760116815223773652214207263631593293324311185384226031662800172934649489941179963271192504580298311223026266243759078278639309920306124993042193503336410865048362524419344429932199887536535139129846636173496080371286112274817189848944277576985774734816555026791274312099158519187238288495729094181891893014827534315193665121294778547616277050236034817786804866151467218103929744304658566511006494599967253857718108320044929702563330748404096246589378589224294312816922528904324084140396398978890695632848510760695500801810779148433579325620745501300746522851309618006494598085299856177065862652051720523726731451752052080771576071296882484958010939831355448674709890339284777236004411804581792180274103663952587674285717087901101689089345197818153217732297326608589163566648773636626724983671616599648994083255742872419438112889045593443351617164827400147804323339289786414457241141979795689943351958122218700907680997734386309062442827440263064016957449733038231514942407389763674261432111899571306014726623461958031609408919608682420846468904009769640366439034900394627791901033610090416575774779183854658774702253622166760890480772584250347627894467685366263278056148636844504845024711157371597392510593624145354474108712838617916631265678532298347939992089666913666823331506657395774602589910828119308715504559127371996908885494102793631621840224415461181223540941150995942280056062708594829744448199570802861947951279942017217974781307130227123892786559863434120879533050993066815663444922906628713022030762825772707118664543539558279461512668121097996407852589616713675635809115481281209478857631715578395647518041950811994675282060570554104048834615392105895190703758368338359768395157221632063428795349485521551760609542140535039871697654382867555700565268625984512433988837432354344510409188161027311210930738510259826949488197688875395511032521136698103058241660518226823497453668982796618903577989558135170847715951706798279850976194794323637817219393568684424942774849811106469736597048252225323019696950776074985661028601832818436026538821096621117243628374820381452017577948358418087826348909065428151730594441236693199155730012058856444172471682818123040607891039048034600929627586730665272715315696878277239605771433788555938979849282352308587660115824097677772472480384483254188826413147701214933762560450214527244644939604774267778129086027004654078932853721098030616304178498755709400171298107569497247629594903246030009840712299583297480322880727335567263730377514976797087079542189488914142991736053699404347308531610557294383494582446346323936880830407349980268353875540623178655117702036845129443377185590669962558652439136960522029437427751983021047883568669500478737734857663763060736989701596747629394167797429445004568474064106225727069267038235631112962197048575495660706058403205285168053852809194672813490728445445264457197021878685875389948856939257430310324830226481296271635345732231045496416344141423832083932632944894536604595178373131556256711471682441457717395349409182909839198402950867834936519476879271780167442026579815803453879980728864441568177649785008230490464451059746757926722061438579733860893990637398376806369660599956912098705657412436922265014868555786092235495037728394419659358448140615632117295261790329068980244985508483353594559440232774805346380472589030069170137117799869668658189211010663781975895970493023137721222547890258532798856975098987329514731832744629764511102693428245822094668521437710733333258581932784334823500041767886257711581092666046676435458262883773731749267202404129984434330426771689549780712800642014581965040572277742307424672767454122836738634214484570856324207796507984651566570498011224411482735392418796322229034392378381652070258053369536706238084984670243676241235173233062822598591888810746423639101135878990472828580172502313029582636536570784907937098235963762396181632705448994449371162592993104402362441931285015506321264672285473410781856369030157244630635307635259717590628513498845448762392355238357099271126092087746973328881300477422635172171852885861690171946071838722099732301949639055022413077852435975763042763297889185926443325208164084767302293954301848594771918323469983950427941369645433249080480069488001565872108904581298620195498912134203681090763218335869426099003654534769545528310860508009066040301681155515829888414271680538957150325858752487324048683576617959513517309759886244812903122801968233265603152488688052928148974540491943108122654298122629244227981948200989035781574374111525287413101443389630140461505691574337799809019716062425949000430032514732920432380582550773424502344781705786207395351837090850826185173114123315415436468668085958303706520755355347282403402361228579276905382522747499791055109347840779232516146858263220624754758952392700769307427937361747727892004034348059829564715882972706476621043730868075533058260705420410689639008789751636566090859898884231332374742788613227821784562224258566542846488688924748395897705971543645577761775098486916081688497811887741781661070370048543509624172125427860148747470972084205338960899437541938081161623823022322824375733406046799691435310483573183713788289258143727319085533215856512121075662190092069385928467010803180799122892247795623054447092148565617698683916786382386866172519388275839105655527494571634541238219506462517653222821275998398201072875205520296066095775599085049855586836042558806867965557884075048426779009901165692867800492778380734270051322392117010074787371470703220340300955162791067841993837693556240503278841098686729860263906773067534956383666808798724333691538455693761785864540844717742281959035757842413501889288028885845769010370488043732168689756401133993987151951937236014241972480326902128325731662626787179112806248790537356599244404592030882681422980049505476314197196312600134014256403584263736833618881354971166866474916727413472058370743469711811158842313989995748680024240072463845700940424303990599681046320995685645663580253060042028236162734313089975662391863015673357246481232939500150122360183710866307515832733703110084655411951615721594374990019587746265309481614597650028429757601408446248671702230910248039364501031929041054513393646906759517127054543300895782852771052466346280855347129370667143836455447271886475473006101707443401958339178303977150047323303335274475923829025891187429033930268015065531688415259979918658019109408348368559707617527725617332060484121552412975807818655797625865985788095953230169484688629438978910065313716648332474344561016351771751959866502348052837580206994994280358361013641436456144351469726152177624472622471611694914726440643290650386650022110118470045194676378854260085492769553799820153379392905067185001504219428226604016163456276951510816791107889900113791503881763388317252470007879840316942215627138677796019401843956878521898476711588976431699620611995104806313210357298704938510899930106302571062506475860731656982750309135177525834563047652564751638941872341373557370940283402967287035786422327926405003102040661363737403553116313810797389454520385302273439166691623874245246855402831794425372353044530678394527832761847477267034888640174265635653898619375278354061985084067722216356924279374743984689186979827093432848213234916978503588759745177467779688833827994787309191435428067694123137744462223849566112857514488346285600032439554865551707179999296938869656870119765760723958061469117815922030674560457180808523164395121580696081744806136758501218565059693865195594712313571277684281851812868300872404674363529557282369857747584855889613660935355707797567588368675386408856732583240421262234784133825975950802108295923170405604376954614008860246794067989247770129328783467061065914855055921333640595506332029547352084883501912566779430965301439584539992149831553763493640185278181098071031397336111825126765781471601062442091454125294392190063841971328176569676083826149138763276402470593722981623633826752558814671483851240585077157728165523586160119948117490085511795308989362827552228486980205690041554943035758774025689970342300269666024952639966144679645888068202971785002206850497635389033430958282371272664115631905331606599101240674327090921317549946353908811073504413705131433424430426439907229688897024753634490900030365752511775001248135380801790786135021414435356037669782617956673461413220200016060992200039839809410224916597241155273789415208496923487157108129318688551490341322981951104839590962927420846407905601000035294413347962929390637238211880639782303143863656978923838813382153096502256730009092438212889880832665556730519952247907449557971479741580865662333925536070863103946314697943439966149153191425226125537523626194149143018478957134961403022019021098684465425080461029310853033535456666484870133496056784285327525831611875290496989181297591108291852770726702397812298882872604469142476873886198774709051178572484229414664757601717670427397245652911520452933676121828660334638304365052468026577476860365421555768092449458108899076736203027289558184372472547217580836068371514949233586616597299143186231201413867886732529823970759206664988793405911273230974771409761097128842606585908683121403458807474231182779051452651381860252579509179355667903542507051719254327365542719594458902010038210047058022722613248085250264161958994516743203441867353048861120067121920527658717392423218288764118114554371166780693143248167753457732010511006853629590039805320293236181646616276415960356311452804622717706495879665744756380615488717401315536309821949667130573257646420665996087683473366538162494969428838043298151069909191534024249318509611646268098358946333841860842894964483713149025773000764720766175528453019541310628557858094260343687068448104742598620082700995994348191403348513384245046654480284203785494887893316423592373004958149501205451320412144645709998215353195341577198838879301008837917423852046369975785280722890672541019481274052546485254034802277730628461217895773738038428801748588512018908608008252487523034494337807486598142655679452389079615007756837131578246848194396325076609875234308613182535366709264058561029376854600706335798007275677683805105199320076050893420833049800717963010350579584166412531590583248434179378233886383190686036219635963034280897800028145101962211143882333365156196837203827152643991576612557482835674020277767650838817443073195724363441728694458933464837829314809297208600809334302177838279587571377783004758626482177251851311835360399528613810810545120275501122736829758595736050683645296217062735921392302183261451035196444223333984808323159969842657066080508958741987339346957406837864459126827527573690066820898169985385114393395363520024290204290556022702187658768766534180755732090875821657647569763226810450193688658531820201705220517198112884252979276801101624759211110184147424373138112464012913881975493796642953903738929543796899774168078711780916480592021576128001350539150725921077374677554687319286022941192981301016293097153706156389434762771909805028562782841826700776125633659568031191348008473646634139898010894612302058124500501319781660316003484700571550154607775476998543233079877622714612525440871228678258026075020315237431525468635996741850556484946044410156601983746677319769061790934344818637089514297771909427969573124962768011056641228235463409213407858956851173234396931745131959816089222742424621311523379710734238589779920906691821598471079211230240948792284611612608067015056976195104557212981448430610154865104784785437510079682650254913867198334407158895776639716201359754356556778527300445334645524333580413613848454683256128424613875669884709170398870739430401521831936847936235857372778991895355877649677468350286856168787914831103806345834820463594528275348210841250804886783327771166162352562821658540539994148996457966131055645760955703975527605178732811765989260784892696395660895403921204676934223921408426587937956360385435523679106500274661030906329559068806274970848642155926856771497801422341989557409528024347386681834902186116612380792385979741883862994357856439894384217189611003769865232090702136218927633198478223894808032574587875077418779209600216061175716659980806013583771495399369872468393799348060199885023332833443548623543362259924725891793489907781437602453259829426455325157467371847786752842697393484149591751236789950477550134496221611013812285189858641222227069914380947469046569328473972526209310271790588882851469999433918379212517606665244138487094959019518021310151406563902903354619422086709402541547891284042703823144579079801313036744893255333854627758145006833603639747666493593942168227172482157117377144058180950260831618917476366899981459342137652902404970456987752188946197623318322525937822849898799818454670774306067165487422253466806850625834706058074239539057034283989520119473086362665201459101914690969442549832223912708170594651576349170803814935842926412962247555080705038850488203314635430789904373573344078867751507306050629065430501315039974362297868946032628857230461915683447765860223550065546478490241217641541652236108756309616957133665390323249090864661756633204871726595856683377877062784340993913087669118524761628975835595561274271777980070237387995720642986699843140539346321626853594141558336759358604240167931672652789258383202558553528573069685849148166952092279647764284963617228923106712024140709741498563967631383487287894303298882181237429504174894611027506531519665590208884708415050646157212146969988083598083932996302574559897749251516941852562215486890267180310189276641110444725852970997114335994669746191017297376277479443133298866679419442432952921555636885934254547327319638328920747707196463679904277551267990072217970323661439699841956956637040554613627855046758788791827484154084102768370257437500534840791862963283022419772600803128415350496868100355659601961384127518468251973226663447952078398525055799499792972227319263943009148397270748225540612469135989797229923736062005947680122352712450641769446119022641155114054830037176083641815852381774577690765438271396472641229476236106469760574006682617297645363205898845168002439526463038598738476532485796805830356886278666651347698047363068465394422393724544310004945804176863864656496312777613876956729557986356815481885656644888584207067459820806853375960356381514302232610550159767908924568642101011029164480552016926804650932408032178067794482787614138327193903755678354566024864800289451283361665755906212339136999750672366629466657264962801926123391433080372245838569707603367898975909202528654421440763704188096324433874702363270122961589464671165700709867447773346975857825931713820283547033267295496854187149035102583507407776696727587242421463325169394563471210122719804893082013608452915385184212302999913891585513397559031729941427201085316392786987705269969381460597928393448818523954613553796782405263754229886121929128569136115615747239797977436644642919323405510863615453438349360436424753750432970757142641506792166494717712495705557963674438697658589095551133882704252300438737998934066348013712262389390786379737372278717435122996919051562063792072283472972303947598701946088049485817474008637317183933291352425914288849430237074797034081698427416832944891561817991743403035881494904174477865760128962340075627959866555226479080019495977941392094156537757612611486754028997738451943809340891153998741224704440412571795306980566300726445806675109217530439995747280749544770193880617252976620665210103374492406780373394704059535440124358396861491242703107763433890248667505237446634275227631432332795307338582795883973913544696052529028434004456525068980080228588776657730909505696376085212192546594726750299958681298384941881430610716168914224972840113731165624571594793753350166246227773756642555153654671563923603651268081980320702278883058209479941421768031875028041450145656246870582389003788973650741299158467224478911050039024965071595262711602697981405801160984446799226995051323011727578634449369106970030590286274457150147971886130101784237314299111490426634630117910381562859290819094330528831100051600485526422631220815339841160688742712402562157122978633141160570054279228190068754026738856272380024062134985441525545544459764864720922003805328734824763223886629755753135032475218638923234487280429200626879398510661818370747449072688588646828313825527097132397190231894677647189261849091773409528561637097174724945377905955329806963422693482772645929667014222120641292860890027164288971462122762754030785881359831424631151571212499541471788530110148849870273260088242935591658346067062717082025627990690929711118206512518748307875807320249244417505470531176307287176920320077809291194266255798752568678087344125307727633811554536021649258137482506749993137658894331761998440274055134805225451873702478674496142011033030852386562429005282163603588530831997912743916956532056475579015804734525015108097768700155808926363894793879182133944498985564137545272536207522456680831693380222436115031557773759371120681912055421391965475475931643490854496366656219864038126993430517135846343144206133203922549864590597157599958127858662157232359519609245849249588103254808171844941714998192906496096934195989504989770083587072557153514612347269281606616207023657260185147804091755322609817917916539401160270061631549128520815830130951035311963044106872637081090994696358131112636777766957180460293317313189747680160043665573486621850066992933112546053365048169498896616412621929411435969249077622925856144031476542072633724516599014375487268589983128789162931683302217450854209073108978168852599095502632344133607908496158017332043889476325748462071839247083392001487121783656799291083226034236982608118375246039073073965392554464398114084752455665384879578024202851991996139067939501570775511523151833448583964803412056101300940464875065560353231564262202326625675207205778500784026096344903113185124425069569620503149136164133142983920323103439874020828662589004890470158061356243453076743633668442786015733558022528776524003571118969928883653615508315112868142670236772186926138518818634034242288834207567453978836466134416155661278651854663167304319111906637999964464143020334991371660911154956523214902440288154417227040480115711908615627563954031900746805940202443435520178688592511169643963281114792120261776071293656355627802422419186003217272254569515375431067876729024814414379620553422621152170823307597164042610750493167180170253749956459596043132459719163154937250829545333801642970168092733958017268885752930517848667324347615188335653501000943944229270154048301405774785383083552689169245123461202469105963260842087397478991379176347464382474627618745678117228745375475399266673683986945366667864730661552662060077599130319083594919677684661470103492759158175242146707263251605608781351439637730021314161812855610875345419120751771180314523276488266552826466570076231168763353842919918381527400833933483449993268835276022787127790392924176804744814347679161056942060569440780177379656814054799280309188336732958096576578622534458365568576639052861934709740731055428853408345434532027447122041407271740511058274056704595934446495103386461981996350275700869048003436901102371818877524870653586192784908284055746000416683216293329231597861846976313748292555410409105651386646304896222191734926410091960503850686413631745902278549588566109015376231996259188341999758914974528725858756620090885462508937389317723748970473009745002880145713735073641401773908790852683009355641751898594879585785043857704528532042038520862720772957965618106029437516083035400667391623513205193592593597855612973197362185784125900377520251696368078450631881757951547606485233570039778772711881670610314097029616168965716621417054428151671932289924637081844885194840697839469538541051070788383805545504049577103720910932204828859475892240748132325749931380685682255067426774600440237666351785130875035539574356436757427553119618131578188317988764733871198944542040063160374451661976689575570889753331362438173732997926472314434560357155940020685535280338164828264744996125987301499897719481587616351571064225652773391133349017029850068944814633919466824992461055916030435114738820780452735029609706438189289273762935006269031513456765713347675704312700895028672149883083485230870948174101542007501808268923355325947589788239394338313844154557105025314613864602739463359710775585056928117034596450225210455018702672591036129366057636577087467337313574444943721857843203723196226986548713657213403178621986338197868038249772540233583870757434137760820572501404879063112131233944832132047381412434060606849117474165856457798114704219060272073307502917598219417882343926971003431162268336691830858826672061258310108524823167494317387040079112446988260358899684644080699433298393812609794016830295973490364192848592944609217905321914940716489373627276351566008670348241934841661133398109855713639711239907398357764419358952710951266172958658236326135749715015139679229470314613435196822466129264096356067045402232664750846667274453973117851620231292761299514899286263823583065254653149070473106814753026572398143621449281504255589691364697545787952809526129040260395025936387688013909969290051390747605684365029901023538595012300390642649803844789812953731081268654988589877900728760167132559149301975194540096276496512305921129742371320380999543522430771936510728689282788304967681875903301441361794065303194666729302015393638965600637124932933547302894396122649253948639147694949374650942535313394079525979993083045562977838199441657408990820602701839068208088402356332408835234147693471149811692416154761191596321932258628926349845396530504964864367104745314549891611304414189467258795397227786103147085631712710369920011393720991959951645210500599944696299005047561854444810389575273742884119938384050908800235723536850972494520748388877783438630779800879596211198628287054449634805461823517173394411271431882281832046000788364864764852994995107154346181118706088169063277840134994310445738730826280295031125671225615019205426724151058122644980595112542423813154409530540274818549449232432839579139170679211950037914460266763094918935158785333248438530942428030049087003862445120049641865656566468359829715026563623349481590720005637267014587106974721087952174362374194856156257327445873194336166145908849680728107613823136877009628767986098243285724139161834465161551922897291352691844849420571852054647644959123779881554524676032397637275286146057351210579718610741545603432266192396170808097645799394865419389940013002417622727608267239269952921242918768745064438330335290164590483840097004125467483191537923063413867636485335864330782137468515744883984365404460910707592950177966730670359693855991866283145215926006742397203222285511658087881630425255308676940612664062725769690927104204909678451129393141901701272365007461497585745817768502421615296799597197036821147703009168242053282025256890524977520401469310081476939390850014828153420359753443154157602897156876354671541279922067083889822916889583031497394616261751177389187648439087127492062798715425783670317788943291263127552557205982132670630356156504203059122508030104819952026681274016778339414848114858941689791835779124703876624091797004924686185118503647668880498121243540249818346999235022822522627307333128447547771463810980499379519910994270137724482310054329168874113233925320590054174569870366384044419637137390718869672657849842255156589099704215855671106497652830023734806190274972654560554915145913994043520186141480059495173409282383107509847809890123892369927918950699403808117508147586735372758480259009441957261678421952906397910588114764197955760099846292588362428937838172014006062921334172079225322904705843959402014528075287393352377821891899041685579625367331493880929710370054287353142288067950151157446107114437712013993271130248161312891646262906692225131558070265215115860228578506472807693247864065848848067668335550707873158819820118956722560320498773914709115932438555707126677687143180978192526821510168388033214073012444108725412484966236371484374701656784394316341431079751401213744049371499517654449904064283317944577837261120737689029443455892859726597627707604720268753399647720366884309130622971129884892534371847446958931214939239405659532267070727797977452099849805853494215285832037928299387100063290714434199983964512226282270641713714801417168856115015664517447119452465199059264961636692622692552373915857161095413172192477787727185400691963616656312114721250071240080582481139752739562869073099831657489632856439535864505782367014359137862460521344582923326134180887758909107253938260455581570639778955566626892345321656181273353297743998724158443661494308227593477422503351558065022400479816728955327982724563188896838611674069857829815340259526780149247849223072486324654389166197124405515501699301215880974733143851743093329888203478371691518586654189102970901290614595543444547694194977847738587910683299173239808233737824970385568377637672825067618123505485621660267137760604930897938678349684431264465070529408535019844477976996419247915352239347756346125951058562878738758805502942451109731051120030130677623981937754160576564860378766188987383693197772510981375069290977884715499652124846988632578659865156596511685945715363458689174629398493319658812335812120923313702937915710966844828765615391874622234147515915449873011611696803629066903821774506275210044146044945390669327057212370064140634225293932017736413304465247231728745956588640706210429590261248671802515339196806362809386311932387139353375262900521222416222866516000628426521062854325997052372210170292310106429410843857401212600103441985048002457447810429236243574269773011704588418095217326191396234537646883375604004475384221070668532952198220755634966989146689143319155125017130007251455909852141766734440842911633970993957678907931840888514012470314357030721936852696984181259273796164009113211867414420283522650123402126335954970691610316185498569093745315088818213465643897611624853407190608264941849755492778664475895908169908611744719592706699547889536225620413029835076736474248679082583687519025148534776757543580337143323353575544039651279655730061132260440302068102442561886105922348845686832283867720254051703942076714464378369368865340839939361862408359796274977236466313084583163293827458932039584731098301667367662769281999717117318995284172117917541646008073121237669912813526143503613463908100181105195953203455945497010690659991660143816443584661447792680210368241330039208490100351229089949264543821557083592632569937992596077497405127494113534697825667637589826784253561023738863400246430033573998690418674101167207092650526556821539401496392807820973118667152314950639624831463159825763922995171166912824883358936986342791123310519170343279031811773511355025455549557929130921148316044686299572716385679303918989314579910160365409641322604357135134673255893322000374829945703864456727708303010750826049256892587397401789027258119258705915363041203978454170021390562585952933905430565177693079018042477082481213507873467084993896640105886750269189105658155318887793324823416182348753645583126997181369450357972510904939097197760179264688461046167595175548817810557103777595485940825426154594229990714271046516405624445132847509395562132482308185603990737732424604330471935412940551606232944806641147280311346196584418181674256152298591372082807198575427775605390264741131681356831581637510066309125003683378108087840017232782463420297709411362103174100856789589624759207656443425495475047845533841672040531703181817142805503284632654104364045824634175302385619608503410781373648637261332214685434016495089014876415005144898047597062642784891929567919222032873580550376330011572707850302583197391816931597040098723899140487817561698418332546748985015125318947053520124493393529383153787140924969342427686413822272735157196066606657290616670280728214340966739031005091473169067251052920322395336454740350269278919417962369088499381509527062127698730123227167325661391977371298650684192502750225836059494322311039172024622516586593784192692728189342305133222835750861497410099230678274204786615548396999177919886579933026206638204313186342710148858337920719544018058543718900602214167419911349493046386512493970216272448214687977761781018422181755499629699310867639678706106553153997330646565314407873071015514662546711954739987242564590756052739283174984876789745968159942987734567387081889873211865676890207064013434827745787745138939173018489339424950195500250749521268275378056107240673491746849083580108618217991226443580456709260416112913316827071433533472948855963878888675274478717460542754441687134987080822096591109533116725685138969376767938916054347582969569109410431679239905043427642627593415719887368393460556397581736120134514822454011767286678200506341681343005677211879679861614751791962980246163145083155153507847702282281115093341890125092937377649731140339982375637757915665806031313071787883790533264287705680832489683165846549560832423733676407022833537924005458839142177415147325162558515431947163944661755298564528919532231025282053454260472345426490478510360041987396982459872615848894752569436386589888594516217555187231091964470411144160454248067270515447705780813212785304647530041594065218944066888690225615642497568897444701703732673503681489707733023428280351811688692038277663228239284482816590068302788126141989653434437512591655937072682060168424100719429928267723517599947585533626549796761710553584184205282977812337932094571661195585270298592172503882942363967811623548591839224242688412189831980874675512686542146589183881189296032336578042583218573852404881878920069006947843742080218516669714876452174080573403399785248463571937539645658477388326333009889749648658712514529679452478919740391674226598966629371904563393556186397313995098808727279361149546540958406622592752580602689316421278026206413111451576599487999423158619636780826487062358873809508483679135502720391401880267816375650563815934190995438975539357539377874882853447261013870213104332365560465940322145701000114076575330321577298973330282014379495206901169784690993188608681095205694177139273974305195736514596182786761157324172490957386683809093889262544974487722866910042964449814193237414079043571282324943317083753584846195847497930670399980395184993647493217861909847847258237315032184559718025323780237815963633172749043160615269637490399746438150154511575186710993556989736730977884119311648104412794341436306134333668576133187966176966990350540998104082734069947339659071823372273320151832959293551113031256446606779073076379331262132523019552674684914136442002832191406588148845146058400399071584756586663335072344449022701814878964727223877924492958937147350472941625214209221116348042826597413592960324266835896989394591889422894136934599500408878824586499263698310017812831745217407157186221171888878105279293119299099002209863675380673217984185463578448810203352438016151721719487733341609817100917396048254514181308741783499155581503859648415625708194456602594478711251298468509272650515025119711647378122791105554950484022164460138118335877815984539022925803932272999748804831433927133507411450780548327944451016154507816763404813119388274010653238268162850623775784525036915472469048533756912904666952359639971308955221706336160629271510622172536940505664948574306007985522417232012298109659290960788896268766418249740358464347865423625559436101318140626621045555966823712395104189414095202492370235785454742347849530814296482174688797547485719324984268421125349076504297627297174441407138596663639227484789499104293119912078923273113927453460251449302187731659070776518293925742907021659205860490032024818404422435867509864844545850073640692038104614445000615411167136394905857418263251927771961622212497135684346528518958315633242808278322429457158057644886073308175498595996039246546025266804387051164485996199073377516939978340833236625487939448432495246164517770110550914495488288919970928575774576927512744720901470881041826420638936372992156729158792672214996610462044682383867799598354740125237065470599771019393647278487457474534952655275157363331734234470914490084626669682233088697150639694224889142232163753759462296877818766578509776876382661218892925934184575308203852679162190143178020976245479884906650318376834913058180112432238064842019919350219305192194862025537829281214884739792198250383540314225262296994950078212777617431761816971796353845031695747658247548647881578228526582194489172658876205537871715493932043447814125317642337287996075119883479298081310434085063275907374751405535959255010584543178607598890923693473336232639920355478726728307653052210523840967005731180776519920515408578921760988049243707890571374724395933584906420470757875880164038274011443033718090611797784253144243577749319258703432068009709246504085465245271441782978219106742314240542800689957230520327313642945146527886704428634177396163808917688793144668927733706071821977700958673612821199050080165138623466038266023506207324629081343515906537208745579371266490676441379913619889087047202554073056154644976081872869913366363535711414216964789893897819048674743047882581628400312574159255644214315203902006308961067665719270337793396054862373563186017662358931057974848924432730216994912744020126789728827818451488769937508872073032035190818253993480725482973724909512126459742153709382697152942512069471872234710925480933996616699033739213079433523854125205738925006178635618024763763638464459082822981104523913046783669185376402552533360174791424161512671670006974322013242681431097557182069834534321677219496263192455475739733484335345438437246207828952827391209091141239979786367240013163254666274635004018745634457996844975966170818591180692167968186019118201101278386832479581125927772330187564565970299223159378900489441506759391768729645338395121775812793892607740432280597447961794449194269646278470249015449860409276804707339867236435364326338505117408420330304051570763215840848872456694952605353873142862436304023243110669427690597321400246173293679557808995241609137763220129029495986322698701587801628821202264017064393239750240180948602311585609244962873939411647156066181295913878041858803809644668188309858275784937367358857848887310444354384127645493700047798885491111463552825018719950410425851921768057124346428932292752583345177159417646310281070754513135837664527703092569691173231418247349393656175592525937386004421402173621524343518245588458047674391086479389537149196027784274187552776476271836141292478692732155664920575736418966537594028566215582744631838248546900718761751468402027250123047862140131388698212771376259443160333811608297418916311223011931024811133386042984101410175626720372747640486212785923404332455446782712608196719481086408762735403746949290862608281451645572722752610415822838063063624895426313799401796151974663484546335632946831111465164934552684900486032271711087357272016999459130113293639011954981034560159890162653314062373354152874696492012750133164300855309512284505739951497904790088459031086491710828843520261632242216698407271989991946194240621198425988707655592557484966066517027030039881307770047913546841608808023282870719314400630126288695480921853484252841658705398576505780717989087228751247327247640549726281849826208535686032393431061927605884640548870089800039705068394736454526821899344625526848306385932150103678898702227124970346332769933621779214718825266143622883467135281394754313639371266411690044633992768696707388213969372402851853463888855145378540577235647973196365606486026683881078461472692880901905350536175993728743785752794648360074505623537844077860116905655372617077502429775149997761784537964992898316802340146214248659610689796300383217095456983899391692519276531590723031135356597536573795775095705019548617299342410263684340489931816941744401610618711031601160610083153492265138850705070201843527457316865746187897540048677945659158462496722665467359432836257183258724402435144257050456136177424420336271533739815195681924585975423405666919134954450286976980286483502331324593491291973991579562828429469750530912931572863354352184969977712081571813570069022498797416957443830995404697186045798827657212666861515262845985596057566228174336361342096761514101668543299789095657057884543828507548836649048280303658125713312355045970810055122912953044029209282618779794313785804180727443748992046421819561905480663655559607917795491218628844416896713519172282574125081331539567561107441608386531960965525010416907940649988411517444164720235592798068695931346011948057046226597963248136927573731415023916827077568600563504859848479858913168831396097574721519858332722387938817344769881498847901790258699292228640392860091836917207816492524456952295748446901032118946428137055812629280404973385218456725393998821329022799672985963668649366356649300335926089945512503763688317283894865320988361014945457023360165500437285416085072158624050050496385061631443192665619969644366822934536535616587128653247705952431184240179147736365068375809893167245967812426662468237704816602327979276195873356444462292052321321739880231059785206057712375780018759723041923474149758260915058602172969066227305043232918561344637977368365688897424011664617502748410709941580614734559248685700434179659435646640999649109539503820810481609463092110258092905639955090686831998815945303685159856105514014380640172449575048391574847114858853255139168071145391647314165013823635380319377104677860325925814792617886929934995203839342849090547923196003857183072996116114358084227695646150514188830027947556757787819563006831532820060986519731655059657818048129872777532052764440810192568171570506378685458071081629067727678555474046544713355031378539162706806474090157389253538700761016344598448486066209100583444800251745127858782834113522069894534973192124220275645287834191927028387244744963221587817880995243633710520117328978720071963658389991093770417097151322353932238981618349144076057961493060864008369537430617760595236179314272102428450958833441332078405066104335981873420696699307337186775466715885719004287790678541722628679138106947867052779412928172398043966420633805516333049136867147399764415221301692537932626906335459173640659660555022256662665960354836449901353733289795822646572432694250697297457085248480790191545317412201555570948501481725514276957958814451991213624817247044257910578219146832172096820189674227226345206497536434789063260589872875563440338710330657773294064924730038884286275194419124722255456295799594036205121197869063475160845170021602178888644572763512287996463496119749749617301407699780361449383777460037662677733280209842722476315615238083147230073697109550566169369069252733705746060062046967355955604627682260296449659610249617668761516321444183513364396219615939649298128368134706370385502016881033842926291901403418261300915087611195979091220664017533916132291834612212537022757115736513761241909161213039971399215453853442395100124159820003863485536240984393401652360572821704765423524121751211155920801206810151791472389004773042720696273940341803920048821700408500283476413407998138849283717701072081999116331020914988074202585362066783490805363329373775383305795002396242918641824277652139447014837249914994723644337370763317336050194944598332592253903736386001284756709037440269091794624088285653622321515813553662114805798327460087282190344277944395651697977807689758239203835271687541807370913230521939818244572544409472571423768548950794191836461705784327523080352556227416917905023313082220525244707058468750356252156059904450598487301719826523605888538015908480685775867728254823521133575888799589962427320005080221762136980088332561842173375567152298742710762490920815982989819864556057159945089421904796743668165368851672093261620550757729489070885695708271066779677573101805664103022552204515311276398438704697530228364947595432460799674752646194350356353306972717572412553527552076601912189336537659189004270375796811477616465144793144081239166675961186631030794695898182995937450976282877939977831289605469012899108613219967865541097994932150513950645689025852413447083015937883801378369019222596176099475614053114219560330539371101487691357777914135016489069206978254580671026722110512118257486113251389854437867986282991022199313927764614836741113679753172725488979673198398051843274039644851814789398691640567686132493640468257677524179626666672186502297615828844841158788228964936808460608464536221127228335375330553325124941638914357389165551604960549030334942968451047805512636899490375661450054345841992092420832098453831848791617122033005751234323144537817704074392652406885896064783745245015526459945007961190930996241106966879830375784499712452250854319762929488170262281542395499970543827151999604674733140230128288708747639784860465298896592003151568996056372003351152645818113911451443032769276018297445599847989789106423954024162625769835874052442350706168502467100749648967471299991623900280789672929975098471299813179174470990857505390608409437644687330022410461276392168400794803740883136075162208911574440885963277172834460045416305274403769025289154537142983987562974339338838845062862977480686974531854076261838268162707819416886287326764524569122580483359404694053953895517183633518935360006639865966729603555015053058101928900531681172438269729715337889686791250420455148600805954880920593220576289039690062932007069693754287926214042004038284901720708445859962735318013678114379576108915953046521195223581099383172768651138021468677603698089600991356137632632550182966839950063956337523184170399526792219844853659330965392751945187376322599046063000670589444685539057140872087851133967887249635610264346125970423763574237807688323131431536472164035498263342800735114269585327445119290445594334003514955223499384489808293723315185818873378480158549692758336563144431913682966231914463925570696093965301107924269533067649100474593985670353546074326933670905742991110160951375414421527907011125404899259922285989432093564042574126803441347142467809231266663669197087874198061849986396691184250440553157381417515760767257496001518051234248491925460516093287579038621950464216059622807193610334048746755104192831936575766552376694267056643958145605078209082176898302303634599432787995179381659791401222525604550286903151360175875582771523794249882681946323372324358354692347992405909643713997416549855151804838151497907615041383303116774607354191991533086643524993666001240117650229708937153154756368545272533529709803991029877084144843974965848246575929432457457438175587142153264624311897248924205963961644092730897100127367464844853289099694170856194351874256439126440415648287740747852762598235565300639449849118361749152959364503720325116095547675646840412261013725308058463586264252613692015865288571099802314929797795787101044371706123245539041853075199136371370510702816519511729216848213101787754485131443054384301598971191822296900139834262301421872813503132736366278998146306806194597244273871299392878308569837523648760318615692045417443180959039340514708064416010421182375616172332237468316236229082877707331862764013176429146965745890317326714821911224528430791710798011271521273227366826398797335116939365181164954786201433018596205795478788684939265781626436739205654082503833379814504006871081179675426363682416424330449274776333305839585362336785026057562567234324259690754772025852884156621341854866132519421027584031740063768303146981417015157172329836235367413735604039923974090860073970833038392511532520607844029404209783173689309374633974988924819807874125756645230334266634645159579938875143100984465776449571802232815381040913091078084604905499165760475886212104398104773302777668254820616939585479767688896192523955641027940076703444522537324471353783151085322722216657267297341176700079919765121671852694171969153924783801253978148722041725769966151768239251521537942390456411290800337593019439282559368380085389366480884293230036227332934986198016834033792506928250625192432046495459451273598216923827527843517477031857489109362995627856008567304644917532623068577095615077664509327603962398017906459338213360389205510998500587810405633607329403058665656492904833973630614185123391617160196293289185210206626658561877234508112753283619399698109662251360316247985831731956777256222503396208216178406381414151043949783673638681456996605761483529662712412568101963084081651860554972351910180508545647777734779389710847375462840501754527796949853406022647575433280678184903836576420044779155487958630846841412837831599215080125914801436621837749545564686846274364240238953616329387373288399812636243737399309576960428765410259243636045941447201263285661982878584878459889319670968319553023417908361988944734293623429004488413155175742150181925755701146781357547877204226713678232998533946603283829880192747316840151940749014960149291953057466673166958476271898476065763167853057682540617067050214790222193532122953907883425985707928511433713370882466526325793338793478949610974112804004928582204612718253028789704731870676540636295682459970033805462709337509828493329645562386281990468321617574081497122043288529195536116918891631041176258923087174616830192606592390253244218879844606222488754316501467167868857378574098471483097782505652366196062133581072289380506921320256797660782888940526804214255757637966675400611314787639630464810685240420297195971456812966087418481737258839240296157403164148950656659695405013383193969871188716603470829331687524382522051429808881299573805378417492259140682867902543013829257019029102547885995355279243620527252755129301009516571429245990762334616755383921013276690295946264652331304225312194448713575534833953994915528642375695676871465808343043795006075739099057144052303216071523192868582386190119271107425383509501422135900952039733333099569975408186151976889062252922276164769656981740986690256366008761460747590092859536203211905499563795536511704495618216431317824950077982545605821167043665007937997400784848488702302914065889736713540554886277445854555854320135394254443038087907837614529115115403234284595126252010246235423798717290230645960616781948235223863218907348127399418953379672271016456537109801903670292715781650523173452092945165377111344771775355077621998893563762135434497528366109149664586590288086414696729703675547312466912672145862377018751900444780691015095429269345039869712238478168737344653493891418905046268050678783545206302639279730382185752429295896407292367442300851501378614150349894642341186924549736903527589987050589838267086224890551483079971612169696686483872157535896050141322966062037805563203606032455812872562199473451894752826767279890830440114267304293007984987893159812112084750289375266829758923365842937599339532185700517685856047105054156913921054899796152033202941253768174634006410820325262224998221164415545634083056529595490999896694449471147483768064560232958491943450456986801119171115644455297712539593740232883775594719617051797002556092209624061798177205207326692428616201183931293418130882226545841427176837066322099468815398331132012997271854696238703640033361846282191356954144418033280459340940339910789416997118806635269835331320520714391736463831596639482899658172036446016490848711621598639676651614927986912196644746781962873331904078534253818346073631348675914672724663202372047689469474411509738334259888094654700533804495886980227595804030217867377677814064344752759409997416597340923660841263189478330520255249602151217997164601032084124331539727690733480820060947649801803546502032151721265286268702669874464244400238609386877878509587718524891485408533931895142879992535750145024615595526190542280781143741861164919672381651685716424329096819796443165477376963902717832517847828673969320635560490371938290821244773098502417875402952366063356755797288467165934747815439812423616090962126567218827886497454272063014737715018380227199031584359010625077199418924348474466853801099730667471891240657628831253453776129220937108235368860986750991589622871286864865875735118167827293603543466617932145751319121200631447690065153030637169295543391029492470974710975614230801591677764113399024913553134369902148771832090790171339793857968855179690728063511445572812290690620776381805664551687460960918862780475489931261777931324141581871267592924072590486784089332732541779849887180613213199452275735908676234957141650613512446391411546946965167345174523879881467861570200321661863299811161749524565273273285338746170098578546451964004997275046662131080151623271583072924803647934095142619091401446306513658053079869496170570028443225940951008046933384610244236522783838534348875986286756978003129087355150901494018072873141363987661718746699142887015382966811286217954834201006385462867287072708597761444770652462708077293237151909464583638762867309029211355805096548031241530438688167619724434181630001022119360722654567887617966073264127126035760845778612723628818178956631087424671504646937444431047358426423946787344306411406081430724947496068192321145282021145914753143350274634986121005794533049823296930623348812118706365428231129177921937032944292017599080211512623910995928561892692275205023082654784588611920939129127150035026153600396687647751576666183502114252074371692216873262754262369316290719503430724314181728220861484530776675085221749223515832121026866287561078413691919319275467226611872756186305647585745209214525226601902872616128725654866018016943150644862294624050546622751565562242963328817697445286181424750188552097403885110782416540823284962913325529873614739640856038611842654576650343472566041693516518964957633919678700792838856737051069250587159358542263986637415418754828368795053563995993334157281099413967384370983865030587333009332944770921870251750228856666538216921882788181907232095395148912233368628054223404865595851545236074718335099663302610890452098266830042187699094062168876734309569459333147019762224147422928039535431065281853739385713525110183436759139080300689668361689407817504120170781973684675697389603657216727535530005279228247650951737631004951983607974036156920579830124488275193144652945995833819119104157645956448897495579170644216224616390219074054957073903579359635097913666518700285214969879401949374668339033869689624947111701077727486949604538486844849297857948240887645830655668253191987058117968850197520140099917456863524676229877380710276878022107243875267470033701346902869995730661683814440734565119356359404962778409423545087034614566081202649652583766258470831226720900997562456975493602509091233389422141612405359921264580331636332536939425939355414949433105759798533973855431631015789563123044508530618960997334126047854654986056904230832400124147463209467189833811623041120416947962482514117334665395227835079275479862328203088249255511094090042018858596341560779702630108572329998541779646530524872448093735169957633703656609197313073006858289796245655322812002652688694970455528579800493954618525026838398329031683001990072225569723581194715502749990708976655174921137671471144610271126632165216310684756956652920882812372472446076520002472206563436807785825032754584481850965429979262024734023911419471847798217592148028103177444805603747473525771202479297122670831565857271290678594492387645767037955950069788317868852033123667288765101317622245631143987131468020014826637330591664395204270616785171521131754575096297661865078557173096960054898225876581325062534726915903362703280519541366459015354797341927648912088313914040519562651588833280468995230177603426558337028824730590267197107482982429775841959055281030991781872332888563368098541038202928880862603524481837737607764531282178991049626169269091226294819369866989803547001207290463380180711548818427455184830383650017406363421360052891759482045760498059588062781896155677479759183432367427925491903903461092345542062464200446135117778556026682558471595804781834630815427491135855481242530261327613404542422918662683818401473647239882723437108047791130975549420883902999849843996067973523034328984340609221465747158336528645537140498167214865916762728278359261244145547206703654336719731118747779599799958046719112394440583413317445989305097551528319098189720821042189469460604965680147953827864553867693801252421102423182734198494553340527484908453469841869415610897098968333213478789851530214290849095863721509984758354933568388099587094059892803520020148332586537841354055743081489103154597080797956898237394708654936300509396953712499857793098680003417813110467239399037706460014638172742906819202320829808946672272598897318450057822695267073990332289562609456118713267029836597455127887024394604975503936927222819408272021504076018333236738755480459832129621109768396463669286235314083618291108129459879015065718617475158767861256642444744545472623526661234221866919700111435734674713362627396926299405774961965924445563084701618641242130155575687131477036790389324977650117492980982550206454330522866161510722233308070577907122068571367741946462487893655715834581640764673625653515130639216934702398564603298959978383946409795496437429413619518535298500894144963029654923994762202897088923431275137314171934723837995103618359295100783820499768604273472750404065940441927025989508863367886472091653748222604027638617731211334594541706713868690841919179484923273431968299161614258008701238199385478555632561384091732403457578727045561504335942141124569998489868832069863619756451029428206259978277912942243525660554698741081152232960486253725952676688549644375334477108677472300738852128742842660258533525178219890970023780234439561322568015201333262809657499363725110545821920710462881286786510390728524320469897984590447200879512322835003326703407185002366962746836308404534856278366683689011158331307487554250194054523911835657233528970632982998183945431577141154685828579650721345049049395495795609201236665669132592539957083166732327503572509576233076517931995135780848849502563699035796795251627689733073698030261946381415052322743960176329200122500975707834236917846717763318227651756640735132783563943628285343527085984129322445130385460197159290217723149955988912267346223496995759802409103609797246160724849702894325992544301306535310017971767667813782823686815158629209583724327040304606059452581013761204042188112452497712966370077220649309886182392633196856000703467729524026582947919623984294109103565587128422602209686660995462304156078685797381098994668912322255625262089171618070894211534825083701391376317324457894880393628416835495162594104493903287759869651249693143126951772790847846393671989622840816545733692223004974293580346089753071327220537905093631097538253031032654902256013582860585037306343071925964594494995474740127016795014142729064563149918017859049603859742393559558481712580435793220718692673996032432577401005689216520373205794581003979837806472812752868391885598160731027489224372237098151901771181029724684541137495982310957315548443753556339826192664553965849118583587667436229767347465431740469956512614647776762544693256541670030760032893082655654485073605714169669346331968580339059065724662682944853891981403338090111981213686534767131710782915871476123324010222896010057704989220956896561091277357604209900488710261611914022698295875459799784392220335186246643618905258733627914814195407106763798654271840059056618775613421503672427218176514179092428263407475102916203963411124242198927204714626098301522356232430672394799896576723880164506123223973988887538568201591357906441072022530729295492949953130702614082555526418994311224421271221769520026443755940877860459874267765568833562453824349048232796250100898044886943364227920696437940347009597903222125864822035019448855521469045653939667154131580777722281825400153776017885977844588102148998085774671419861086037222687136271644087620881491377505710121373828815398778033340231395565818609647145190106745772105035583378619407791520385021068950963943831348357757396116007906468393960386510005108497422429738443829941027827318357325660147222049994536360973665928261391945446618957405038567336611343758108927399561145907943645459643506510924071998966249690702026402987721986068696150048809042105007612575412501569404717636329486754333232104398171837245794226792651870485825484297279218290323092259338256456292302365565162157229242436397448290900043309069463863703012860564134756942657435663253329815833333595930578545816841332309180247684381933719929020486050173652868128753763490934274510765980585778770140401423267988660883872606498028855501667125334372415775169818146145534822812131323159446874580536305338430338114125101741144592681859368949331818318559740458658832084020369220010269008987609007349932445580060395210491912307253606895313249030272342196143779440314103182472139038228895911219326836419699391672288109984389363775053071290571809604498700077303125465981527928905271311567636695726897262357251612807457305216746328764985901914292622522776966647895277178011641675571804270641355176367526946722506862454700245898612929537071608863950230840294907281039760269891019102372885403262208531889016278462778777254717482892574103000660050581829069734780214818109411302723387732508196667253488902837748037469801373865658877054986288427411747801666636138174053508603306467638381398371568419105971256774765760848397506405432391306929459657181002688247915160027239633148675308006976769212086283792969066903679356203219388040967257489995274198372074512809347870874079157363405903463357770157418625742223678458803367479149895491317132891238382144849438292207413780650572080913824184602032392185345439425875793631308380863466896836858988698277863330467691956721045097441238679151368152447105942443869150584601335792694472446415093628560312255739933012828831095033906426919754806258277141311811681626828539510958632959666130261152797234300897354696820123898385060145352889749497482959736404796868306997885713336423401262027443297609885560539616599218925083169759111140591302591626858045394479573421063493589080229773396681599772653978307691439405184602858146932981972505591451666429455602961075776016748612195886087736859963414305831661866358878070169251710789275519980598988181325853861639209190621240995187828407898133420878542725702850563403750890144868830046914141586040706190554771019597428169092375996765455602253794536482707507255316839634798978829359655715467135905199848477288309143427686757841152759165994798588825064429066383977678582024429328680714815744453368947103660932697700432886059056339768378719053437305743619337820801640180127922511106107175173292868659824684503081302724475551160042527392026929054847974902477799984074432706610970703940392834129154830436277856915163644312646042057741875004074253697945160099194963492912732656591050895600614918017684773802611560537181805594960797810162498933518568928902926426582961184773511715886831096211531193727938632107946539372054370635487177035154869298821511062906386441372548901794833075078871842602597929943127002936853085636280014675794311569712413265054410745627504261022872609947611397903052839582169868756301814317521438814296055567860942618160884138533948213079391197332794112796811480163836598575816723743979577813710359682856364464838707000040484656111938274662101541609081477022769703523969683515623774353002297948607426240992418457095401158742622880843551197360502719712535822532626107930029164780249500212723874239920285554058025510089851411468361065712460066691516904699690035064969720686407621534264863960342096213560479099808468192821803623735708640829241003187406168817269126384086882056745361371750107047281588581398843586749259562231752538874893416025720877347347334778910137889349651106377370592087310582978270146659540053401756312983205900259504379966801105768180215896895673180107709018529247321324620327299739830188496556634702672088165953383386518042962896243517480285009351374325832338025010281219326134290632817607843703007724935703314893858103685774000861017107533776794523018396400257367138706492988210842723471670096869544753731793801821654233036783852414639030726911407672346410104912829867172719082335230741643826132146461069993091238608764316998759393156910645349909556692796639435077017039400799562601631583619253959914374607534811996408535377938059842494594649649734052342426844841577783319046520292648708356933738523185370587391703000813759995348352106800143391997323217455707058644553779783062307684640738585328696130451976064042593827191757820112212096922657184316807637901041577428692075401913896731221326588678911016671222018122988233788257996425452565364303779483283126405365415292418643440408612783565258951803896129473132623758321521566897819280148128527574816664578346488857783816285084142755697481693328234228575977207834639366979583326838488651794079374007593001512161385515206182185983094791463688276869683443772402890339255344963837207385643088306097989589322804208426477428922383086149713543282872444289294685738763713909468976306478353566811116721832753388086665166407206775592470507531876706754296569157566564121067548642457931281291944958960927372875186361008126094397317371343034338143607877066553512294277322042429759013395418771870096246355250371951496255735280471688925074385169229526631362468318363015198591356808688976684741985619777832463334320660833613655606637988172809856043122377740118591563461567643973033241300051133542719583698393817877182548235797557237400432779727806669768913015407590913867438026745460673848398954969902555565476463041904914741482371348802533010423264970520926930443189786217656643558664264975495737885617451785300450403340462294024558586206409801670105683294962984024787059126855999172705842197590999241199148317586679122839138007066810714509628486215202966892416316103857530280217723123884668033018575184720084240782914744981868243278017557728268181063614350714487881435273779032517697012679393389775894529663389351673707964762076167915919960284175933821177875915097265293498966041195904462802811998726116182909043581781881097749750086812941750262755160738337921097705548047840521044506203962760664015640731222429405381247994809420114608851040242637478866177363558320255318496666373047108608690870455453013042097534330821702567925668254304099337471127818227689505100065114026695791167508545031533117918508009920100744054818692410907576205451291252992760223192006047694718512351356126236561435828079437057082367092090509199329339447615209980882284257322042530969829922748494772959261868765755903583330612291685910507391207133194482440201903179731940586652351199505344109263894441290875541877283288547817499277783205717270243210687281877409219122716352161708809238026265761820222633540797570886962319968644458716726777718339570822530873222432403374257774976086535857219038611404770776841894152011835761107258637268947076147620847806809936031161750285027362764624407316821646273182515534246449163799122867560298932947740336586857029236888582863943986885853341334440464012184650055700030126412728959019650522403677533307412804180935370308751896019940016855796003106345820609566125646814932103127505662967685378911498001646055574071362946678952179025673151500773748590706212304929904887575732972657355754607178427290596370087278409272560228749380510920439720978396261466619801602130945323813071425430521683232702819316463675605459929033283524341515118217273112726279721125934923489711317893068001315250714033016513435034776937452263041102257109355122805452540107254934469897033688926687763646124911837970738719751188709982568805184977980687054102507653074536212037691053454462123473968820311655765014839447254674533363088869087404161518899811719237010876924020012044252141437441356091723525899116902111806033727707119689658584619148587397298025311609669931468257210308085512945680367827612962964432333006284422847034173290533126662579672884209854199531424604954753919186660077516361327609672877775906812723313825606903857715397238946005149225144102161271345664433463155900383095707134241997614810028064866167157793845880146150243159455664829998294570084599205325977839088767401879061444062577855209320291369207293908289569331569010671781086160046441875867402865701872223675124294045890841814470712048663776806273590839462201348659216320503642184025530678643234694912717555053229078050705153169641762953723266400816060027688038013835874343054696680483553954404463615799007548992506906303081482562678448042797725562857503183591158692989438982064326465793928368238305912284113533237663126454901775202362624393070068003541348660780411777186847276990664723710685954394204655020080775714771992672813275895485990930699170494026165370553212346781704297662711209346078110358793230206172576726009423972036274098455143436173031363255926117252772574078742486838901364937510391386227664882689774638583662907752854774576048105260740912189092292356759745375821803803183073269760553869102467525074760381152192719664013648996388877048257284216148248493828818364968377822087767678421329946708467006642313955404006988853512439631773451332259939793684629011266993572181245080234760283248324373168542748050729376817429849827324920639316730379667159607939336194610464563694695810589561606967190527374374787407886017091866243227319691391338278180663103329930633535704159973511503306070664082284310369508631355861943218149970889082804157770590574658636950086221061472950905912978326546701543845191073138103844832817579141474653239978639971910714112566121525228311804912128632892973906717383345389901559660968345448877773557142911095005247659303043571511049707243357607767797900376225241024439905643302524492148434302105795050855395575570656477159024121746087948096966757021357857832028042157937328812203013617609736191907773224643322202877055100059474156024492434504042931928284181411742900405478888165047674026735089887644988621960581951962839058228728901215753178841159076816065800466890917095300922000283750515861001938045101637263200602525805865406819445771738640882662903865447329770223382192089902983175472533100301231402568154738468952760095730561077601226261857270562677716159833241048444392892785002079353251816933559345684480346619421348880725079077216462115512643178782795304311282808090655344675208852651562886470978104725206843609760642379972220831730644968996099902603462621640207711668421715763000724671353250183943964869425980937032881890637372348981908485989747552663011666510667660936049849204983149580032876406328730049775386115596387963557171362918102117379630908020853049815625779792509750182756598608163507445640515666412014601154299203735615367166248348048378305369847216131230453596686056257861035778745928687756893179713935312003823896916247861891540673038054974843269966457170013338392535287537630248706736374558996522035124611133514333736902952193108439074912533319273644344647091034512109214476676419206330459882707768776660788876613512879515696790846805388961889726924226197042785109985552038810504732768042479743720535776960733635251852735586373203220769258972971023219457036649605850731752304287349127739505944474172788045755816958941873436623330123244761227071768271513639228678590890392380542278529946484067273736897138739954293969597425903918764251077540554489508649347939704971892059541780782617340676326266104428493594426310588871184353742138519939931615217517962372285520594606409194085964373224750286870994205495430232418870544180616165477542098131031050548571406770825104754696983297412706829476888974510435702359975496422044164726292814093112985120095895547685614071112592299547495237100358089610726924783834794989824371073572437860112866765298261334187135769674136524395333440128414573489175062966972154045842445427701444142023062600732676640166374009745657518904002331852698700941009645915516758511790495649254180974685415496042888779275339569476910667889955998541226701802754380529985142331927214766351600630947243916148336305783176216841940093760489940684780007811785803999190086439641785075108609491189521996937656450259228895620265945252982216106041091629584439281260127134161368950959254251542855635705984033902047352231038232196771224342820436410093249424530651773119108673494840314643124585389060965545330579754609979104308249938923167437731205705513776293355393717188470206283347670824804673393254669994781486422617497264359468696942950422135259973787143100494248251445726085194363591759633350414198013778204853145300541413303822064836006236309916455429024154827726603434280932058628743394837612779333162187419283017346811209178687351150986202232495917715711976096057250212850369810731687594260452545771884932740765094836619809386004500396788580552888134634729166532713445277784723315516975336542035003361160657086868726163007707215343026221974970648407142651580648299827941909197687307466430457236244074658486191344735491394918938285884885455038142143730116065810240272252603004736051726094007020256260534837888355785905227539553306059918587698471674559622251485744954993688567564895499210417385382803615664833385183677628072002301600432996956349132542939872285033501316553931620873126997847849253693135041484568690613383126104076238785057927940418328439169128341058267795839738570190598100591198515178114934092061197901541314386717679768831978959036403323768269448711128665478325829311801120892921593456261611233851474536862748154586190249055624927027264105874988959888785768012455805757639116349297190161098275006656858394940065097936418805386175697995600920543223048480028398524659880674819712415900661765865913610095608559325476116194978210809849515047907146913557928236254462204787190283232825403588199126384586182796967377313083225248355587843350333976111096586556225575039522409453622842983671064433213347066648041957275836773948595867561629022028256678149002897494148518628677432970510348421153387149770638733627804037928498484582184554410134386273478390002463617958831660924972732523490443767446089636251695695471482916956607123879667621978365201264873103007098756894689727857809215928708692302951687912419226080406329133345813622018021422192196423358122467021828982198414336094623052917695891705382120912997500972565000314521980840138319454992173984662023277067718915004898375920467357826007303695808458063003920823629420556017068571930307827951777187408590549214177210629088771427926719602844595228281024175627969753540596418827053377194763301695135558282311026421364833225809387147651835776978741624829160572377071253542739975936420744143259261405940768699404114563534271883419137034804641811623244553287188199091079225356274327305430037029227825056267731387210829347879385663674668438339672153241106576492388878403690935959987597784153429659949332163464400048346435996479525940813332181302575723743874979428099133144494404990262754557219671783947806682174937531673627514519110913723040895522861294191178637218395494614846161771532103936197542840993778538826751434490779089422001129084511457282625428954073620101337364620596966953247961900227072712303786549765467349246928119708626080210103592223704497396977908061472684994818411675401552108131033698684470681937209983653596967446140354859344379664639024443342233664943340692309594184696654372746656606642091555578520101712016469540932644140580102828660312521440909751289921902956101164921195046079974764345635070987811503630452878807240740256165329047537559248084678665838321502726659785112627938259592958206752020927005420886756004382643463116184796393762850193211952507028584463923544692854427409183919347308855045399965108055707019001528856339963405192772395595863725342937698723583818996385679756121195940733283278332738309040363804465467910793556845059922016751751987695292736429129535576056592196770449631024035343378171317274583326700700519955682786623247248103693697306723339638785809104100674023621448594299463342677579593247802911278007591519015397130782234761228769269847546941363428426691122009370384191652912554685197707653563053666124810320416378555938483934466058722549539672267189281724266546716627557689447342755818417591147441251677680232071035582541666092107652994100580779980820227225904012420007615109151330061728954432564218717915784029942119096287338667530717001042126736182176138018857000200681518652538199949754207014137911523916646452808583709897163046373505791950425566949066883971857204284613569055354054310549358692510213620018447287013723147037666765305310858897399718804684556067668654996684967363754307270456927716382615020263265793400796091006139713717456513028303656732892698869887350758760165974461059513179681165202515500890283204527715071331557031798474770517426045769381016309657225589384657280211713478993273827517748921207108776177584800500033344455997546614711954846265928279300542396194825276463582053252818657949053172781399121978891977641582408615599745245489527787515100336806715327809426264938044487429141510222820228005618685069954389233450399513654054360017705295154319742689186559094582546811703625630374918666551323651202637906083645666896300038578021878787822552950463756136890513874160603550603668795960195209775698209180002104442979710251578098291734853694658823530873955224273047661744770570338524337808590047737571013349395099444969055054864712562147105847385995639538643187195384509145933573102815215300537637344969069701840421633615425010797160146780859150456509302004742964038643136399317197262450826235720954146137101480630244570376475515446159187857344158449861607228234934100447371149927419772116408671051997747109218015803613493884609687322705804138018624160654509829596955206281893835771128407555636927775810865677191784761009661427535427815856337908153127464021108393274748341350473177110280266680036916407585637698512972465841586218213012528111415766020778007964778481369724167522473816699979784820374580537865976908460960379134504081908106217804823972981155702451904122690931243000087604049855558841575529657811947489303643211422189224927789870488533308482701397695369507779789724137514621726470070278971042137185508011129904155140667718910893563650717234515363435700154325440102406608586872428001529143819074166373592612774860969578085450236851512204690899789761038789052100050999628538850211168352344872672349545212427459122573227789799558842133082025173447401354624284629004090911197451398768536295925196870235292766523943926788396411224321329918134220481712514092619300821328761227021185256921045858253688680031985423169572237513180206130609555683069852895367219455032222794955957890216841497896375450250005099333074521030645057657237601838574798785571469095277833008257124064921789513458488281921072985526173912591181746422256636257603581724235293290038240024233819862319232709935731355773109362125990347903978801680530288881043410084777867065709968839659720308541054892144814560716643093682082532160424101234663010070447494689433139370030369467166184365424234520097663416091810028276600604935692179633061545380662872730160571527204410661173969767463022376231785174627594008639543192795674628403632919900852666716047361257543996949636258253000556427604817873151200878888422057701761674085100031368300567967132877335091067617376057159160655975396934868237681754941384602153421239631810070779501255734584293950772642748740593706582528862895422085525321079380827797201747192047412556259195437676970043837897502801111882650898758323940211030674889488316864111404965980213265108083518918917063777765168918759881877259073025174643878998733882971216738548600043943713896523127980130175028218178954729532928613692603419265126239313640468208603708807020374587571429930173725836476767025293925684890279639314936322614066653525000018750537005579836785175747160971422263272172210735312699435937319386101788259596878597146756796400966316157536117373522933615455460613140063920637707894790062000027742912457013572954318588986431471171635597819284199015736435266158232395058011483524662636455996774474045664191283176154635722311270155210838620053537469182186931723752936216367846661589115741630901511986923609936594801920580285421391430190373843491288409901278997848131118401233926236471735375664216654232928058630794741699625822983834038999331573443024397086699875517105808432960589952534667491663999960561734006124102452145603402818685791886191098937566061203338875960586928673387085021689166471473744653615763536411793171853380105829142029407232241733639441714284203746912713644682156737774181796561630782340008226998297001119636252411407416992240935753164732581374854183806299351126521737079978185654993950442782415422438981009782727138751226646824800411209832761853466780514606003544177877426820119872918913660080773591714849535124519260261820557740311020402234972917028124193238046092599954042102535606450371459277225361946756677864766909557084888577285531143717929848530682176683020805258658468419258022254929972525549105577352401201223038943714565118711119624752089082745075895493201686738813911519112283760517016547111175729133575841489636821148458567543912806889537571677082738691058160519393206203142440678493114685292991954157611945369133864617746103638790048308847754978022345232720849282584609169749364281326602285075507599066446289790072423058085769765972524667575777334114373035570932856619230791964445334854101458401301203516390292007696012840329568594105104181994909525557178026404963701421591479095007285059233294679917191202401395384860192031250488063956163641716692896141007956570411852513150191840724662819349583766901046967837070828871247437054955966440942258766868113886732430399163709791618341969472102309185971870947242292237712903923620453129319499260823711842055372013572543816729000575085171302805828325620116551627670399186277556828234332142681107275826373147086300479612658642522116497903955412448774068335468656989386835364266725775559942777026808995472481253286644315506354636052533476752778414049816775857923783636915878654888994169138928808089311279051850328626829208495590326017254716886208924758267420425626725090582295782793738164922128370645237947879731586042109030797234929754846985789839539121038808444270881493298067560943478310122654928764685576585941532073650388066522283737027604457713864066140566061476046279305601214157261047874287191697912504579983367079672595559271423823886075635569626324746700916565755443183304000974794055130916578474892690435662688868869243217002120850008238727476503439638046175223873787740660501007188493640698538285319573494487221666184799004796723211804320916453874333053569026902500364122225739667802352737935368157369924365969383325152654579880169384862894913652792117016623479332480091475583212981473968668226273401458968484404872506711145908840270905051319324828740418445946538680985886193046002067565228342846280727719019157621576437589728309775364549962308335397092716178411122991590648912440982499023126079526695452880812507382832879894622177677044238612890776093315804496669683169499113734407747040266496806984787136620789652767119001171593422535767786882431849543284708850218335175299139617912470906611775134802793165248724366219679052265046238255142248124727083416175659771292358046510894235652153964294953721001725478865489867796482070287766382323142071901816846021104544112729203366458173496874749986015768773051732182864809320568697895215273844318099197553251712124109697677961167251517293255733979465830673149009942838781649841001873525382392220286258211693124852440212494406890004439760703064473793039291410311847411820672840223667593519571876420044300160255113607580085359446965327243731728467356363971575936142019643666716075962769801482152084510880291720416034365638205708807934347509682513894206317816121477289709719789599912479579168853359477603731717730724923625417513241224409612441055424866724017993540158258989360195062125924981171026069271074263116698808127130571323518109608209578830498883296915341095384222709315949694977337120576530556290640272668316759171886884988487204012296229227488180489904229831388537471193253448803338543772127951820979252401881572722139830403585423367602558766326195683698580883968363062383249000461682588002098745961325610617737170818854210387363729666326642909238243531301791547569844714220511797335540907955283695440659623968455995287388975757950131671654645057831493145639454733457750125458889679268871277727702325776055455769551922966194975817755368612735754635327546147833371950020850757611652468582797514879415082192044352507276958861544742079979209434609868416208497243486044522203066817797404392078179108027863593388444244376766210026902273160736524363215698337016669767872403162551990891956594380311685922601528527003775773002162417605130263020412579696121425087689385698750898517353863456430442731668035580722004749777734755645396494606137313492468420336905126474955537764285865754434553774756390354885813646541636825996346840409228678386867379670481267958927627878621730498499775245978774585219393224241862907813331862610957405234523519182518081861842207562751463954144313135692537139606511590155645071283984071727686900220003291609328888646183729691221008150781848461751700704597634362935916751650976180267875581657479096490625858051936569541514138510440538485811945806418718685953101514093253823650152390767695989812086163739241489353415371222038981904348603438416087810266729275997487668989972270899011051613231198040465519915510644454207373464473220981624868814509273273483802793351015934636437418551760250620725111737853967535942963791457350771212929238960995062809556108075270208874688402086850971001950306552593090113813491147765155308823068395684940725414856726245666314392957586333305357291147727469331536908117221144963617658136870714746751769523905102951628876452700463462598541278618458582171564920800534824719314271396998226345913404653394140285975945949700319114014425377286227288419644822971778900757988721788881036244765826402375571949622885229031688571872314216537795584194253890295368507038161034462847438337227620051685367196028806908316691465737243651984534574948290314204025608877105630524328874344878872776160750787545012237569497486775065744697130794552551318718155125984419427316614480568103905633356575301708572747322644665604960901984753388617692339701127853483146248535191227111319156198936353908661585045587243305701576689145311644027756556074520796103004433869018768284094656464317835708083505626763291607576585672276737260818187316271325334909197068247647472742540748831064570234339114860518243212988413997477556738314166466198483295398667832547566460419946998510659155012215887627944848300668268860381264622895334979583711798458601455316673342476327310129944684812140033296533129001622849883773573983373396984908712177922667407770527097271956231727375101661515474831476355076352549777149977421148464080724033790642507175996725957118287178679963784040792955361452969991701389765966023527268070039207749778819491471249152549596486925150764582380129926829614460552303989512407763332410601642871719238263052610092835097275824409338998893392878850861912402157499653873141632638181951061632516759904735053142534363233075954366127893907881287541661622863453703560787815006330406885823584851223255481951882009819182801000809866012324267557786536589131745671939734975832906311423068678128832166974514270143769338161434731333001488467511154461475060438893341397182520835542748302238042674360475885016636527200999516791114633537512308472748225278565074049575395093370814630769916301022006456157655852963098650150051619448563210690023675804664883601510519092196728442572712343772940393743326164417113661117887298673996460846850739299467881360925488508074197220890958404929861464168241871821674475027134006899509321859722114139888431377494938861697669760661543020899154583671641446327191154549456617669425032513251141287856979442868595444317972520836221264085933335565285616529181005046971368718209827523485330233663012933348888013670838027539264130472513944943942134316155383814843261693200242344309259193272178331048539333096531091263333876559901403580989010096355419340853336770530826147430257805027382794459181720941270398063844937952730744498061541675563469370061537010409042503377750737125097841031291465507995186403613034533002003251444568460992328591434715025957030063771905114373795496431262558367609481730248519644643594149258341625107029900795070538891674549969333839852914790495043109896856176876892827381478674823842566948062131599954568219663471942116051540241293313360630455530268494268955917658204885918157145560628731436063211103906602860575897480745114614365797855422831224574327882696299397308004490782039018905932897742226717731555100946144619427305523170668322099144612232073409142696977622478716541383690168767366660707564408127695146149202210893969849504389290326330539319879584318820628200391334941489036674483762061050973496468496132909598128689577717672574575917015580941934515452169223296991386301464762928105801366886666811017483343210696219324134461258108925180987697406360093567894649652079948602292853567074107528611951817609823017702308589773126227320473884046997352636299667847561568298696957607836280641505011067234586524577878003680560791670828519296969466773976472320006146304762688978093063751105708844996833567490888854983588220317133067625578923383450344306531957010549353433959082614962689167332593472802476530846569051769786194795200283361825646240113068284152974545364016622537433359253484970711245723454903238880222828453934614226512866402458296819561718034015367373963946776292447373487881118375336603495626750163405129837790944889149865955833715536713560830820717839476719332646987238083708423475171665163507486905588768346669198236957645376435586241827897383120972328399532236432395949385837010260117269645303270060019008320208175221342361245398929493677777935142141363063683352476479578223357625252784286065765281958513430482964695515423304679258632092168724411456118823661621290836620816342521003314760766368696904124111078264202581348074475625901491732629218380855373994810530186507531793098343969908990253024740074116036914424541751820596940574326829471939298675716427637668834286502396353628615911897353689322674435807844971920232027303240642617866244185082986660932804397971916430846159406282534931549524837532258604333643315431295798359030633504093667399884643366625350869198824518309195198118921021592612040975113762492766169844823946623408526156711887126944180263728444456353406747444407747984514405969257789537478276049398658176127840121585019770259880718723475296490145775489626305914999991729894423040979281400553399038483065564746525762757667002480051865551624694749563652677818514441396493891973563995012127896839854567216395437350629736409776588161607668463448726822343929433429486432131835691889782069972574363303327841183422788616449199534883557644197242220421280233076733009608693237513191776090753330160931919882158991775610367663441434344303765986624702560029436050617257033002763239622117714143288392351896214522100063907374691490274883319166083249029816194883099330260479461355541531544577511751907365466255267093873039682387753721949615751206204737719737470615407628806272451950917548500481266049149480214454215673256315708214578360346924311131053163703989166890503816195466756204128728047206487673910420555794690318767749956672482549132058623753039809542101968845549660338031002024495739248827470265234356034977248315720743021139128153961162662760416463513002895622126481179013541444117609808909222180650892908620323337848653216974801514142971248502024975092813698585988094873351070711099698982986979202189805960900694169949268318149324877481812698088762867235371004255634781251304175275102475475260965359395592780104937415518903194596151448281566489938052131966767383911090010878804213828318988262770514485994820976785409597508762451703443110900931055841126395210096060683486280784368408884337857426091698479549409517133145259171230127419168756345742845697208393423665135525618274095470546359166522462687203528246209199733417395208266353032503556882406756376813773276762386565555012142979247158045696613932836355797842627409166473846044625083593542007400333414904700348378433101790039270023452940582189078098892504387895827555519541338580424896051345102367897774484472344328760423289497